summaryrefslogtreecommitdiff
path: root/ecos/packages/hal/arm
diff options
context:
space:
mode:
authorMichael Gielda <mgielda@antmicro.com>2014-04-03 14:53:04 +0200
committerMichael Gielda <mgielda@antmicro.com>2014-04-03 14:53:04 +0200
commitae1e4e08a1005a0c487f03ba189d7536e7fdcba6 (patch)
treef1c296f8a966a9a39876b0e98e16d9c5da1776dd /ecos/packages/hal/arm
parentf157da5337118d3c5cd464266796de4262ac9dbd (diff)
Added the OS files
Diffstat (limited to 'ecos/packages/hal/arm')
-rw-r--r--ecos/packages/hal/arm/aeb/current/ChangeLog627
-rw-r--r--ecos/packages/hal/arm/aeb/current/cdl/hal_arm_aeb.cdl320
-rw-r--r--ecos/packages/hal/arm/aeb/current/include/hal_cache.h305
-rw-r--r--ecos/packages/hal/arm/aeb/current/include/hal_diag.h89
-rw-r--r--ecos/packages/hal/arm/aeb/current/include/hal_platform_ints.h87
-rw-r--r--ecos/packages/hal/arm/aeb/current/include/hal_platform_setup.h109
-rw-r--r--ecos/packages/hal/arm/aeb/current/include/pkgconf/mlt_arm_aebC_ram.h17
-rw-r--r--ecos/packages/hal/arm/aeb/current/include/pkgconf/mlt_arm_aebC_ram.ldi27
-rw-r--r--ecos/packages/hal/arm/aeb/current/include/pkgconf/mlt_arm_aebC_ram.mlt13
-rwxr-xr-xecos/packages/hal/arm/aeb/current/include/pkgconf/mlt_arm_aebC_rom.h20
-rw-r--r--ecos/packages/hal/arm/aeb/current/include/pkgconf/mlt_arm_aebC_rom.ldi28
-rw-r--r--ecos/packages/hal/arm/aeb/current/include/pkgconf/mlt_arm_aebC_rom.mlt14
-rwxr-xr-xecos/packages/hal/arm/aeb/current/include/pkgconf/mlt_arm_aeb_ram.h17
-rw-r--r--ecos/packages/hal/arm/aeb/current/include/pkgconf/mlt_arm_aeb_ram.ldi27
-rw-r--r--ecos/packages/hal/arm/aeb/current/include/pkgconf/mlt_arm_aeb_ram.mlt13
-rwxr-xr-xecos/packages/hal/arm/aeb/current/include/pkgconf/mlt_arm_aeb_rom.h20
-rw-r--r--ecos/packages/hal/arm/aeb/current/include/pkgconf/mlt_arm_aeb_rom.ldi28
-rw-r--r--ecos/packages/hal/arm/aeb/current/include/pkgconf/mlt_arm_aeb_rom.mlt14
-rw-r--r--ecos/packages/hal/arm/aeb/current/include/plf_io.h57
-rw-r--r--ecos/packages/hal/arm/aeb/current/include/plf_stub.h85
-rw-r--r--ecos/packages/hal/arm/aeb/current/src/Notes_GDB_stub236
-rw-r--r--ecos/packages/hal/arm/aeb/current/src/aeb_misc.c467
-rwxr-xr-xecos/packages/hal/arm/aeb/current/src/flash_cksum.tcl173
-rw-r--r--ecos/packages/hal/arm/aeb/current/src/gdb_module.c137
-rw-r--r--ecos/packages/hal/arm/aeb/current/src/hal_diag.c557
-rwxr-xr-xecos/packages/hal/arm/aim711/current/ChangeLog112
-rwxr-xr-xecos/packages/hal/arm/aim711/current/cdl/hal_arm_aim711.cdl374
-rwxr-xr-xecos/packages/hal/arm/aim711/current/include/hal_cache.h290
-rwxr-xr-xecos/packages/hal/arm/aim711/current/include/hal_diag.h86
-rwxr-xr-xecos/packages/hal/arm/aim711/current/include/hal_platform_ints.h107
-rwxr-xr-xecos/packages/hal/arm/aim711/current/include/hal_platform_setup.h260
-rwxr-xr-xecos/packages/hal/arm/aim711/current/include/pkgconf/mlt_arm_aim711_ram.h15
-rwxr-xr-xecos/packages/hal/arm/aim711/current/include/pkgconf/mlt_arm_aim711_ram.ldi27
-rwxr-xr-xecos/packages/hal/arm/aim711/current/include/pkgconf/mlt_arm_aim711_rom.h20
-rwxr-xr-xecos/packages/hal/arm/aim711/current/include/pkgconf/mlt_arm_aim711_rom.ldi28
-rwxr-xr-xecos/packages/hal/arm/aim711/current/include/pkgconf/mlt_arm_aim711_romram.h15
-rwxr-xr-xecos/packages/hal/arm/aim711/current/include/pkgconf/mlt_arm_aim711_romram.ldi27
-rwxr-xr-xecos/packages/hal/arm/aim711/current/include/plf_io.h502
-rwxr-xr-xecos/packages/hal/arm/aim711/current/include/plf_stub.h71
-rwxr-xr-xecos/packages/hal/arm/aim711/current/misc/redboot_ROMRAM.ecm146
-rwxr-xr-xecos/packages/hal/arm/aim711/current/misc/redboot_ROMRAM_visionsystems.ecm235
-rwxr-xr-xecos/packages/hal/arm/aim711/current/src/aim711_misc.c597
-rwxr-xr-xecos/packages/hal/arm/aim711/current/src/hal_diag.c375
-rwxr-xr-xecos/packages/hal/arm/aim711/current/src/redboot_eeprom.c159
-rw-r--r--ecos/packages/hal/arm/arch/current/ChangeLog1844
-rw-r--r--ecos/packages/hal/arm/arch/current/cdl/hal_arm.cdl397
-rw-r--r--ecos/packages/hal/arm/arch/current/include/arch.inc78
-rw-r--r--ecos/packages/hal/arm/arch/current/include/arm_stub.h180
-rw-r--r--ecos/packages/hal/arm/arch/current/include/basetype.h91
-rw-r--r--ecos/packages/hal/arm/arch/current/include/hal_arch.h421
-rw-r--r--ecos/packages/hal/arm/arch/current/include/hal_intr.h439
-rw-r--r--ecos/packages/hal/arm/arch/current/include/hal_io.h304
-rw-r--r--ecos/packages/hal/arm/arch/current/include/hal_mmu.h120
-rw-r--r--ecos/packages/hal/arm/arch/current/src/arm.ld356
-rw-r--r--ecos/packages/hal/arm/arch/current/src/arm_stub.c914
-rw-r--r--ecos/packages/hal/arm/arch/current/src/context.S159
-rw-r--r--ecos/packages/hal/arm/arch/current/src/hal_misc.c363
-rw-r--r--ecos/packages/hal/arm/arch/current/src/hal_mk_defs.c150
-rw-r--r--ecos/packages/hal/arm/arch/current/src/hal_syscall.c122
-rw-r--r--ecos/packages/hal/arm/arch/current/src/redboot_linux_exec.c528
-rw-r--r--ecos/packages/hal/arm/arch/current/src/vectors.S1311
-rw-r--r--ecos/packages/hal/arm/arm9/aaed2000/current/ChangeLog394
-rw-r--r--ecos/packages/hal/arm/arm9/aaed2000/current/cdl/hal_arm_arm9_aaed2000.cdl555
-rw-r--r--ecos/packages/hal/arm/arm9/aaed2000/current/include/aaed2000.h377
-rw-r--r--ecos/packages/hal/arm/arm9/aaed2000/current/include/hal_diag.h71
-rw-r--r--ecos/packages/hal/arm/arm9/aaed2000/current/include/hal_platform_ints.h115
-rw-r--r--ecos/packages/hal/arm/arm9/aaed2000/current/include/hal_platform_setup.h269
-rw-r--r--ecos/packages/hal/arm/arm9/aaed2000/current/include/lcd_support.h75
-rw-r--r--ecos/packages/hal/arm/arm9/aaed2000/current/include/pkgconf/mlt_arm_arm9_aaed2000_ram.h20
-rw-r--r--ecos/packages/hal/arm/arm9/aaed2000/current/include/pkgconf/mlt_arm_arm9_aaed2000_ram.ldi30
-rw-r--r--ecos/packages/hal/arm/arm9/aaed2000/current/include/pkgconf/mlt_arm_arm9_aaed2000_ram.mlt16
-rw-r--r--ecos/packages/hal/arm/arm9/aaed2000/current/include/pkgconf/mlt_arm_arm9_aaed2000_rom.h20
-rw-r--r--ecos/packages/hal/arm/arm9/aaed2000/current/include/pkgconf/mlt_arm_arm9_aaed2000_rom.ldi30
-rw-r--r--ecos/packages/hal/arm/arm9/aaed2000/current/include/pkgconf/mlt_arm_arm9_aaed2000_rom.mlt16
-rw-r--r--ecos/packages/hal/arm/arm9/aaed2000/current/include/pkgconf/mlt_arm_arm9_aaed2000_romram.h20
-rw-r--r--ecos/packages/hal/arm/arm9/aaed2000/current/include/pkgconf/mlt_arm_arm9_aaed2000_romram.ldi30
-rw-r--r--ecos/packages/hal/arm/arm9/aaed2000/current/include/pkgconf/mlt_arm_arm9_aaed2000_romram.mlt16
-rw-r--r--ecos/packages/hal/arm/arm9/aaed2000/current/include/plf_io.h89
-rw-r--r--ecos/packages/hal/arm/arm9/aaed2000/current/include/plf_stub.h83
-rw-r--r--ecos/packages/hal/arm/arm9/aaed2000/current/misc/redboot_primary_RAM.ecm120
-rw-r--r--ecos/packages/hal/arm/arm9/aaed2000/current/misc/redboot_primary_ROMRAM.ecm126
-rw-r--r--ecos/packages/hal/arm/arm9/aaed2000/current/misc/smpeg.ecm308
-rw-r--r--ecos/packages/hal/arm/arm9/aaed2000/current/misc/toyota_fullscr.ecm326
-rw-r--r--ecos/packages/hal/arm/arm9/aaed2000/current/misc/toyota_window.ecm334
-rw-r--r--ecos/packages/hal/arm/arm9/aaed2000/current/src/aaed2000_misc.c537
-rw-r--r--ecos/packages/hal/arm/arm9/aaed2000/current/src/banner.xpm332
-rw-r--r--ecos/packages/hal/arm/arm9/aaed2000/current/src/font.h159
-rw-r--r--ecos/packages/hal/arm/arm9/aaed2000/current/src/hal_diag.c297
-rw-r--r--ecos/packages/hal/arm/arm9/aaed2000/current/src/kbd_drvr.c488
-rw-r--r--ecos/packages/hal/arm/arm9/aaed2000/current/src/lcd_support.c998
-rw-r--r--ecos/packages/hal/arm/arm9/excalibur/current/ChangeLog342
-rw-r--r--ecos/packages/hal/arm/arm9/excalibur/current/cdl/hal_arm_arm9_excalibur.cdl426
-rw-r--r--ecos/packages/hal/arm/arm9/excalibur/current/include/excalibur.h376
-rw-r--r--ecos/packages/hal/arm/arm9/excalibur/current/include/hal_diag.h76
-rw-r--r--ecos/packages/hal/arm/arm9/excalibur/current/include/hal_platform_ints.h99
-rw-r--r--ecos/packages/hal/arm/arm9/excalibur/current/include/hal_platform_setup.h506
-rw-r--r--ecos/packages/hal/arm/arm9/excalibur/current/include/pkgconf/mlt_arm_arm9_excalibur_ram.h17
-rw-r--r--ecos/packages/hal/arm/arm9/excalibur/current/include/pkgconf/mlt_arm_arm9_excalibur_ram.ldi27
-rw-r--r--ecos/packages/hal/arm/arm9/excalibur/current/include/pkgconf/mlt_arm_arm9_excalibur_ram.mlt13
-rw-r--r--ecos/packages/hal/arm/arm9/excalibur/current/include/pkgconf/mlt_arm_arm9_excalibur_redboot.h20
-rw-r--r--ecos/packages/hal/arm/arm9/excalibur/current/include/pkgconf/mlt_arm_arm9_excalibur_redboot.ldi28
-rw-r--r--ecos/packages/hal/arm/arm9/excalibur/current/include/pkgconf/mlt_arm_arm9_excalibur_redboot.mlt14
-rw-r--r--ecos/packages/hal/arm/arm9/excalibur/current/include/pkgconf/mlt_arm_arm9_excalibur_rom.h20
-rw-r--r--ecos/packages/hal/arm/arm9/excalibur/current/include/pkgconf/mlt_arm_arm9_excalibur_rom.ldi28
-rw-r--r--ecos/packages/hal/arm/arm9/excalibur/current/include/pkgconf/mlt_arm_arm9_excalibur_rom.mlt14
-rwxr-xr-xecos/packages/hal/arm/arm9/excalibur/current/include/pkgconf/mlt_arm_arm9_excalibur_romram.h20
-rwxr-xr-xecos/packages/hal/arm/arm9/excalibur/current/include/pkgconf/mlt_arm_arm9_excalibur_romram.ldi28
-rwxr-xr-xecos/packages/hal/arm/arm9/excalibur/current/include/pkgconf/mlt_arm_arm9_excalibur_romram.mlt14
-rw-r--r--ecos/packages/hal/arm/arm9/excalibur/current/include/plf_io.h61
-rw-r--r--ecos/packages/hal/arm/arm9/excalibur/current/include/plf_stub.h83
-rw-r--r--ecos/packages/hal/arm/arm9/excalibur/current/misc/redboot_RAM.ecm60
-rw-r--r--ecos/packages/hal/arm/arm9/excalibur/current/misc/redboot_REDBOOT.ecm72
-rw-r--r--ecos/packages/hal/arm/arm9/excalibur/current/misc/redboot_ROMRAM.ecm72
-rw-r--r--ecos/packages/hal/arm/arm9/excalibur/current/src/excalibur_misc.c397
-rw-r--r--ecos/packages/hal/arm/arm9/excalibur/current/src/hal_diag.c334
-rw-r--r--ecos/packages/hal/arm/arm9/innovator/current/ChangeLog89
-rw-r--r--ecos/packages/hal/arm/arm9/innovator/current/cdl/hal_arm_arm9_innovator.cdl429
-rw-r--r--ecos/packages/hal/arm/arm9/innovator/current/include/hal_diag.h76
-rw-r--r--ecos/packages/hal/arm/arm9/innovator/current/include/hal_platform_ints.h88
-rw-r--r--ecos/packages/hal/arm/arm9/innovator/current/include/hal_platform_setup.h981
-rw-r--r--ecos/packages/hal/arm/arm9/innovator/current/include/innovator.h490
-rw-r--r--ecos/packages/hal/arm/arm9/innovator/current/include/pkgconf/mlt_arm_arm9_innovator_ram.h17
-rw-r--r--ecos/packages/hal/arm/arm9/innovator/current/include/pkgconf/mlt_arm_arm9_innovator_ram.ldi27
-rw-r--r--ecos/packages/hal/arm/arm9/innovator/current/include/pkgconf/mlt_arm_arm9_innovator_rom.h20
-rw-r--r--ecos/packages/hal/arm/arm9/innovator/current/include/pkgconf/mlt_arm_arm9_innovator_rom.ldi28
-rw-r--r--ecos/packages/hal/arm/arm9/innovator/current/include/pkgconf/mlt_arm_arm9_innovator_sram.h20
-rw-r--r--ecos/packages/hal/arm/arm9/innovator/current/include/pkgconf/mlt_arm_arm9_innovator_sram.ldi28
-rw-r--r--ecos/packages/hal/arm/arm9/innovator/current/include/plf_io.h82
-rw-r--r--ecos/packages/hal/arm/arm9/innovator/current/include/plf_stub.h83
-rw-r--r--ecos/packages/hal/arm/arm9/innovator/current/misc/redboot_RAM.ecm114
-rw-r--r--ecos/packages/hal/arm/arm9/innovator/current/misc/redboot_ROM.ecm114
-rw-r--r--ecos/packages/hal/arm/arm9/innovator/current/misc/redboot_SRAM.ecm122
-rw-r--r--ecos/packages/hal/arm/arm9/innovator/current/src/hal_diag.c571
-rw-r--r--ecos/packages/hal/arm/arm9/innovator/current/src/innovator_misc.c451
-rw-r--r--ecos/packages/hal/arm/arm9/innovator/current/src/redboot_cmds.c300
-rw-r--r--ecos/packages/hal/arm/arm9/smdk2410/current/ChangeLog37
-rw-r--r--ecos/packages/hal/arm/arm9/smdk2410/current/cdl/hal_arm_arm9_smdk2410.cdl422
-rw-r--r--ecos/packages/hal/arm/arm9/smdk2410/current/include/hal_diag.h75
-rw-r--r--ecos/packages/hal/arm/arm9/smdk2410/current/include/hal_platform_ints.h120
-rw-r--r--ecos/packages/hal/arm/arm9/smdk2410/current/include/hal_platform_setup.h273
-rw-r--r--ecos/packages/hal/arm/arm9/smdk2410/current/include/memcfg.h172
-rw-r--r--ecos/packages/hal/arm/arm9/smdk2410/current/include/pkgconf/mlt_arm_arm9_smdk2410_ram.h20
-rw-r--r--ecos/packages/hal/arm/arm9/smdk2410/current/include/pkgconf/mlt_arm_arm9_smdk2410_ram.ldi30
-rw-r--r--ecos/packages/hal/arm/arm9/smdk2410/current/include/pkgconf/mlt_arm_arm9_smdk2410_rom.h23
-rw-r--r--ecos/packages/hal/arm/arm9/smdk2410/current/include/pkgconf/mlt_arm_arm9_smdk2410_rom.ldi31
-rw-r--r--ecos/packages/hal/arm/arm9/smdk2410/current/include/pkgconf/mlt_arm_arm9_smdk2410_romram.h20
-rw-r--r--ecos/packages/hal/arm/arm9/smdk2410/current/include/pkgconf/mlt_arm_arm9_smdk2410_romram.ldi30
-rw-r--r--ecos/packages/hal/arm/arm9/smdk2410/current/include/plf_io.h61
-rw-r--r--ecos/packages/hal/arm/arm9/smdk2410/current/include/plf_stub.h83
-rw-r--r--ecos/packages/hal/arm/arm9/smdk2410/current/include/s3c2410x.h521
-rw-r--r--ecos/packages/hal/arm/arm9/smdk2410/current/misc/smdk2410_redboot_RAM.ecm86
-rw-r--r--ecos/packages/hal/arm/arm9/smdk2410/current/misc/smdk2410_redboot_ROMRAM.ecm85
-rw-r--r--ecos/packages/hal/arm/arm9/smdk2410/current/src/hal_diag.c328
-rw-r--r--ecos/packages/hal/arm/arm9/smdk2410/current/src/smdk2410_misc.c477
-rw-r--r--ecos/packages/hal/arm/arm9/var/current/ChangeLog159
-rw-r--r--ecos/packages/hal/arm/arm9/var/current/cdl/hal_arm_arm9.cdl141
-rw-r--r--ecos/packages/hal/arm/arm9/var/current/include/hal_cache.h554
-rw-r--r--ecos/packages/hal/arm/arm9/var/current/include/var_io.h60
-rw-r--r--ecos/packages/hal/arm/arm9/var/current/src/arm9_misc.c116
-rw-r--r--ecos/packages/hal/arm/at91/at91sam7s/current/ChangeLog211
-rw-r--r--ecos/packages/hal/arm/at91/at91sam7s/current/cdl/hal_arm_at91sam7s.cdl518
-rw-r--r--ecos/packages/hal/arm/at91/at91sam7s/current/include/hal_platform_ints.h132
-rw-r--r--ecos/packages/hal/arm/at91/at91sam7s/current/include/hal_platform_setup.h208
-rw-r--r--ecos/packages/hal/arm/at91/at91sam7s/current/include/pkgconf/mlt_arm_at91sam7s128_rom.h25
-rw-r--r--ecos/packages/hal/arm/at91/at91sam7s/current/include/pkgconf/mlt_arm_at91sam7s128_rom.ldi30
-rw-r--r--ecos/packages/hal/arm/at91/at91sam7s/current/include/pkgconf/mlt_arm_at91sam7s256_rom.h25
-rw-r--r--ecos/packages/hal/arm/at91/at91sam7s/current/include/pkgconf/mlt_arm_at91sam7s256_rom.ldi30
-rw-r--r--ecos/packages/hal/arm/at91/at91sam7s/current/include/pkgconf/mlt_arm_at91sam7s32_rom.h25
-rw-r--r--ecos/packages/hal/arm/at91/at91sam7s/current/include/pkgconf/mlt_arm_at91sam7s32_rom.ldi30
-rw-r--r--ecos/packages/hal/arm/at91/at91sam7s/current/include/pkgconf/mlt_arm_at91sam7s512_rom.h25
-rw-r--r--ecos/packages/hal/arm/at91/at91sam7s/current/include/pkgconf/mlt_arm_at91sam7s512_rom.ldi30
-rw-r--r--ecos/packages/hal/arm/at91/at91sam7s/current/include/pkgconf/mlt_arm_at91sam7s64_rom.h25
-rw-r--r--ecos/packages/hal/arm/at91/at91sam7s/current/include/pkgconf/mlt_arm_at91sam7s64_rom.ldi30
-rw-r--r--ecos/packages/hal/arm/at91/at91sam7s/current/include/pkgconf/mlt_arm_at91sam7se256_rom.h25
-rw-r--r--ecos/packages/hal/arm/at91/at91sam7s/current/include/pkgconf/mlt_arm_at91sam7se256_rom.ldi30
-rw-r--r--ecos/packages/hal/arm/at91/at91sam7s/current/include/pkgconf/mlt_arm_at91sam7se32_rom.h25
-rw-r--r--ecos/packages/hal/arm/at91/at91sam7s/current/include/pkgconf/mlt_arm_at91sam7se32_rom.ldi30
-rw-r--r--ecos/packages/hal/arm/at91/at91sam7s/current/include/pkgconf/mlt_arm_at91sam7se512_rom.h25
-rw-r--r--ecos/packages/hal/arm/at91/at91sam7s/current/include/pkgconf/mlt_arm_at91sam7se512_rom.ldi30
-rw-r--r--ecos/packages/hal/arm/at91/at91sam7s/current/include/pkgconf/mlt_arm_at91sam7x128_rom.h25
-rw-r--r--ecos/packages/hal/arm/at91/at91sam7s/current/include/pkgconf/mlt_arm_at91sam7x128_rom.ldi30
-rw-r--r--ecos/packages/hal/arm/at91/at91sam7s/current/include/pkgconf/mlt_arm_at91sam7x256_rom.h25
-rw-r--r--ecos/packages/hal/arm/at91/at91sam7s/current/include/pkgconf/mlt_arm_at91sam7x256_rom.ldi30
-rw-r--r--ecos/packages/hal/arm/at91/at91sam7s/current/include/pkgconf/mlt_arm_at91sam7x512_rom.h25
-rw-r--r--ecos/packages/hal/arm/at91/at91sam7s/current/include/pkgconf/mlt_arm_at91sam7x512_rom.ldi30
-rw-r--r--ecos/packages/hal/arm/at91/at91sam7s/current/include/plf_io.h212
-rw-r--r--ecos/packages/hal/arm/at91/at91sam7s/current/misc/redboot_RAM.ecm82
-rw-r--r--ecos/packages/hal/arm/at91/at91sam7s/current/misc/redboot_ROM.ecm90
-rw-r--r--ecos/packages/hal/arm/at91/at91sam7s/current/src/at91sam7s_misc.c176
-rw-r--r--ecos/packages/hal/arm/at91/at91sam7sek/current/ChangeLog44
-rw-r--r--ecos/packages/hal/arm/at91/at91sam7sek/current/cdl/hal_arm_at91sam7sek.cdl79
-rw-r--r--ecos/packages/hal/arm/at91/at91sam7sek/current/src/at91sam7sek_misc.c79
-rw-r--r--ecos/packages/hal/arm/at91/at91sam7xek/current/ChangeLog46
-rw-r--r--ecos/packages/hal/arm/at91/at91sam7xek/current/cdl/hal_arm_at91sam7xek.cdl79
-rw-r--r--ecos/packages/hal/arm/at91/at91sam7xek/current/src/at91sam7xek_misc.c115
-rw-r--r--ecos/packages/hal/arm/at91/eb40/current/ChangeLog97
-rw-r--r--ecos/packages/hal/arm/at91/eb40/current/cdl/hal_arm_at91_eb40.cdl301
-rw-r--r--ecos/packages/hal/arm/at91/eb40/current/include/hal_platform_ints.h91
-rw-r--r--ecos/packages/hal/arm/at91/eb40/current/include/hal_platform_setup.h121
-rw-r--r--ecos/packages/hal/arm/at91/eb40/current/include/pkgconf/mlt_arm_at91_eb40_ram.h20
-rw-r--r--ecos/packages/hal/arm/at91/eb40/current/include/pkgconf/mlt_arm_at91_eb40_ram.ldi28
-rw-r--r--ecos/packages/hal/arm/at91/eb40/current/include/pkgconf/mlt_arm_at91_eb40_ram.mlt14
-rw-r--r--ecos/packages/hal/arm/at91/eb40/current/include/pkgconf/mlt_arm_at91_eb40_rom.h25
-rw-r--r--ecos/packages/hal/arm/at91/eb40/current/include/pkgconf/mlt_arm_at91_eb40_rom.ldi30
-rw-r--r--ecos/packages/hal/arm/at91/eb40/current/include/pkgconf/mlt_arm_at91_eb40_rom.mlt16
-rw-r--r--ecos/packages/hal/arm/at91/eb40/current/include/pkgconf/mlt_arm_at91_eb40_romram.h20
-rw-r--r--ecos/packages/hal/arm/at91/eb40/current/include/pkgconf/mlt_arm_at91_eb40_romram.ldi28
-rw-r--r--ecos/packages/hal/arm/at91/eb40/current/include/pkgconf/mlt_arm_at91_eb40_romram.mlt14
-rw-r--r--ecos/packages/hal/arm/at91/eb40/current/include/plf_io.h57
-rw-r--r--ecos/packages/hal/arm/at91/eb40/current/misc/redboot_RAM.ecm58
-rw-r--r--ecos/packages/hal/arm/at91/eb40/current/misc/redboot_ROM.ecm65
-rw-r--r--ecos/packages/hal/arm/at91/eb40/current/misc/redboot_ROMRAM.ecm66
-rw-r--r--ecos/packages/hal/arm/at91/eb40/current/src/eb40_misc.c89
-rw-r--r--ecos/packages/hal/arm/at91/eb40a/current/ChangeLog121
-rw-r--r--ecos/packages/hal/arm/at91/eb40a/current/cdl/hal_arm_at91_eb40a.cdl299
-rw-r--r--ecos/packages/hal/arm/at91/eb40a/current/include/hal_platform_ints.h91
-rw-r--r--ecos/packages/hal/arm/at91/eb40a/current/include/hal_platform_setup.h146
-rw-r--r--ecos/packages/hal/arm/at91/eb40a/current/include/pkgconf/mlt_arm_at91_eb40a_ram.h17
-rw-r--r--ecos/packages/hal/arm/at91/eb40a/current/include/pkgconf/mlt_arm_at91_eb40a_ram.ldi27
-rw-r--r--ecos/packages/hal/arm/at91/eb40a/current/include/pkgconf/mlt_arm_at91_eb40a_rom.h20
-rw-r--r--ecos/packages/hal/arm/at91/eb40a/current/include/pkgconf/mlt_arm_at91_eb40a_rom.ldi28
-rw-r--r--ecos/packages/hal/arm/at91/eb40a/current/include/pkgconf/mlt_arm_at91_eb40a_romram.h17
-rw-r--r--ecos/packages/hal/arm/at91/eb40a/current/include/pkgconf/mlt_arm_at91_eb40a_romram.ldi27
-rw-r--r--ecos/packages/hal/arm/at91/eb40a/current/include/plf_io.h82
-rw-r--r--ecos/packages/hal/arm/at91/eb40a/current/misc/redboot_RAM.ecm58
-rw-r--r--ecos/packages/hal/arm/at91/eb40a/current/misc/redboot_ROM.ecm65
-rw-r--r--ecos/packages/hal/arm/at91/eb40a/current/misc/redboot_ROMRAM.ecm66
-rw-r--r--ecos/packages/hal/arm/at91/eb40a/current/src/eb40a_misc.c91
-rw-r--r--ecos/packages/hal/arm/at91/eb42/current/ChangeLog83
-rw-r--r--ecos/packages/hal/arm/at91/eb42/current/cdl/hal_arm_at91_eb42.cdl298
-rw-r--r--ecos/packages/hal/arm/at91/eb42/current/include/hal_platform_ints.h102
-rw-r--r--ecos/packages/hal/arm/at91/eb42/current/include/hal_platform_setup.h199
-rw-r--r--ecos/packages/hal/arm/at91/eb42/current/include/pkgconf/mlt_arm_at91_eb42_ram.h17
-rw-r--r--ecos/packages/hal/arm/at91/eb42/current/include/pkgconf/mlt_arm_at91_eb42_ram.ldi28
-rw-r--r--ecos/packages/hal/arm/at91/eb42/current/include/pkgconf/mlt_arm_at91_eb42_rom.h20
-rw-r--r--ecos/packages/hal/arm/at91/eb42/current/include/pkgconf/mlt_arm_at91_eb42_rom.ldi29
-rw-r--r--ecos/packages/hal/arm/at91/eb42/current/include/pkgconf/mlt_arm_at91_eb42_romram.h17
-rw-r--r--ecos/packages/hal/arm/at91/eb42/current/include/pkgconf/mlt_arm_at91_eb42_romram.ldi28
-rw-r--r--ecos/packages/hal/arm/at91/eb42/current/include/plf_io.h71
-rw-r--r--ecos/packages/hal/arm/at91/eb42/current/misc/redboot_RAM.ecm49
-rw-r--r--ecos/packages/hal/arm/at91/eb42/current/misc/redboot_ROM.ecm56
-rw-r--r--ecos/packages/hal/arm/at91/eb42/current/misc/redboot_ROMRAM.ecm57
-rw-r--r--ecos/packages/hal/arm/at91/eb42/current/src/eb42_misc.c90
-rw-r--r--ecos/packages/hal/arm/at91/eb55/current/ChangeLog101
-rw-r--r--ecos/packages/hal/arm/at91/eb55/current/cdl/hal_arm_at91_eb55.cdl299
-rw-r--r--ecos/packages/hal/arm/at91/eb55/current/include/hal_platform_ints.h112
-rw-r--r--ecos/packages/hal/arm/at91/eb55/current/include/hal_platform_setup.h218
-rw-r--r--ecos/packages/hal/arm/at91/eb55/current/include/pkgconf/mlt_arm_at91_eb55_ram.h17
-rw-r--r--ecos/packages/hal/arm/at91/eb55/current/include/pkgconf/mlt_arm_at91_eb55_ram.ldi30
-rw-r--r--ecos/packages/hal/arm/at91/eb55/current/include/pkgconf/mlt_arm_at91_eb55_rom.h20
-rw-r--r--ecos/packages/hal/arm/at91/eb55/current/include/pkgconf/mlt_arm_at91_eb55_rom.ldi29
-rw-r--r--ecos/packages/hal/arm/at91/eb55/current/include/pkgconf/mlt_arm_at91_eb55_romram.h17
-rw-r--r--ecos/packages/hal/arm/at91/eb55/current/include/pkgconf/mlt_arm_at91_eb55_romram.ldi28
-rw-r--r--ecos/packages/hal/arm/at91/eb55/current/include/plf_io.h72
-rw-r--r--ecos/packages/hal/arm/at91/eb55/current/misc/redboot_RAM.ecm50
-rw-r--r--ecos/packages/hal/arm/at91/eb55/current/misc/redboot_ROM.ecm57
-rw-r--r--ecos/packages/hal/arm/at91/eb55/current/src/eb55_misc.c88
-rw-r--r--ecos/packages/hal/arm/at91/jtst/current/ChangeLog64
-rw-r--r--ecos/packages/hal/arm/at91/jtst/current/cdl/hal_arm_at91_jtst.cdl297
-rw-r--r--ecos/packages/hal/arm/at91/jtst/current/include/hal_platform_ints.h107
-rw-r--r--ecos/packages/hal/arm/at91/jtst/current/include/hal_platform_setup.h162
-rw-r--r--ecos/packages/hal/arm/at91/jtst/current/include/pkgconf/mlt_arm_at91_jtst_ram.h20
-rw-r--r--ecos/packages/hal/arm/at91/jtst/current/include/pkgconf/mlt_arm_at91_jtst_ram.ldi53
-rw-r--r--ecos/packages/hal/arm/at91/jtst/current/include/pkgconf/mlt_arm_at91_jtst_ram.mlt14
-rw-r--r--ecos/packages/hal/arm/at91/jtst/current/include/pkgconf/mlt_arm_at91_jtst_rom.h26
-rw-r--r--ecos/packages/hal/arm/at91/jtst/current/include/pkgconf/mlt_arm_at91_jtst_rom.ldi55
-rw-r--r--ecos/packages/hal/arm/at91/jtst/current/include/pkgconf/mlt_arm_at91_jtst_rom.mlt17
-rw-r--r--ecos/packages/hal/arm/at91/jtst/current/include/plf_io.h179
-rw-r--r--ecos/packages/hal/arm/at91/jtst/current/misc/redboot_RAM.ecm58
-rw-r--r--ecos/packages/hal/arm/at91/jtst/current/misc/redboot_ROM.ecm66
-rw-r--r--ecos/packages/hal/arm/at91/jtst/current/src/jtst_misc.c109
-rw-r--r--ecos/packages/hal/arm/at91/jtst/current/support/jtstflash.c364
-rw-r--r--ecos/packages/hal/arm/at91/jtst/current/support/jtstflash.cpp253
-rw-r--r--ecos/packages/hal/arm/at91/phycore/current/ChangeLog49
-rw-r--r--ecos/packages/hal/arm/at91/phycore/current/cdl/hal_arm_at91_phycore.cdl300
-rw-r--r--ecos/packages/hal/arm/at91/phycore/current/include/hal_platform_ints.h108
-rw-r--r--ecos/packages/hal/arm/at91/phycore/current/include/hal_platform_setup.h212
-rw-r--r--ecos/packages/hal/arm/at91/phycore/current/include/pkgconf/mlt_arm_at91_phycore_ram.h17
-rw-r--r--ecos/packages/hal/arm/at91/phycore/current/include/pkgconf/mlt_arm_at91_phycore_ram.ldi28
-rw-r--r--ecos/packages/hal/arm/at91/phycore/current/include/pkgconf/mlt_arm_at91_phycore_rom.h20
-rw-r--r--ecos/packages/hal/arm/at91/phycore/current/include/pkgconf/mlt_arm_at91_phycore_rom.ldi29
-rw-r--r--ecos/packages/hal/arm/at91/phycore/current/include/pkgconf/mlt_arm_at91_phycore_romram.h17
-rw-r--r--ecos/packages/hal/arm/at91/phycore/current/include/pkgconf/mlt_arm_at91_phycore_romram.ldi28
-rw-r--r--ecos/packages/hal/arm/at91/phycore/current/include/plf_io.h72
-rw-r--r--ecos/packages/hal/arm/at91/phycore/current/misc/redboot_RAM.ecm57
-rw-r--r--ecos/packages/hal/arm/at91/phycore/current/misc/redboot_ROM.ecm61
-rw-r--r--ecos/packages/hal/arm/at91/phycore/current/src/phycore_misc.c88
-rw-r--r--ecos/packages/hal/arm/at91/sam7ex256/current/ChangeLog42
-rw-r--r--ecos/packages/hal/arm/at91/sam7ex256/current/cdl/hal_arm_sam7ex256.cdl78
-rw-r--r--ecos/packages/hal/arm/at91/sam7ex256/current/src/sam7ex256_misc.c113
-rw-r--r--ecos/packages/hal/arm/at91/var/current/ChangeLog503
-rw-r--r--ecos/packages/hal/arm/at91/var/current/cdl/hal_arm_at91.cdl209
-rw-r--r--ecos/packages/hal/arm/at91/var/current/include/hal_cache.h191
-rw-r--r--ecos/packages/hal/arm/at91/var/current/include/hal_diag.h85
-rw-r--r--ecos/packages/hal/arm/at91/var/current/include/plf_stub.h85
-rw-r--r--ecos/packages/hal/arm/at91/var/current/include/var_arch.h95
-rw-r--r--ecos/packages/hal/arm/at91/var/current/include/var_io.h3329
-rw-r--r--ecos/packages/hal/arm/at91/var/current/src/at91_misc.c343
-rw-r--r--ecos/packages/hal/arm/at91/var/current/src/hal_diag.c373
-rw-r--r--ecos/packages/hal/arm/at91/var/current/src/hal_diag_dbg.c349
-rw-r--r--ecos/packages/hal/arm/at91/var/current/src/hal_diag_dcc.c209
-rw-r--r--ecos/packages/hal/arm/at91/var/current/src/hal_diag_dcc.h59
-rw-r--r--ecos/packages/hal/arm/at91/var/current/src/timer_pit.c178
-rw-r--r--ecos/packages/hal/arm/at91/var/current/src/timer_tc.c219
-rw-r--r--ecos/packages/hal/arm/cma230/current/ChangeLog392
-rw-r--r--ecos/packages/hal/arm/cma230/current/cdl/hal_arm_cma230.cdl330
-rw-r--r--ecos/packages/hal/arm/cma230/current/include/hal_cache.h350
-rw-r--r--ecos/packages/hal/arm/cma230/current/include/hal_cma230.h105
-rw-r--r--ecos/packages/hal/arm/cma230/current/include/hal_diag.h89
-rw-r--r--ecos/packages/hal/arm/cma230/current/include/hal_platform_extras.h164
-rw-r--r--ecos/packages/hal/arm/cma230/current/include/hal_platform_ints.h82
-rw-r--r--ecos/packages/hal/arm/cma230/current/include/hal_platform_setup.h63
-rw-r--r--ecos/packages/hal/arm/cma230/current/include/pkgconf/mlt_arm_cma222_ram.h17
-rw-r--r--ecos/packages/hal/arm/cma230/current/include/pkgconf/mlt_arm_cma222_ram.ldi27
-rw-r--r--ecos/packages/hal/arm/cma230/current/include/pkgconf/mlt_arm_cma222_ram.mlt13
-rwxr-xr-xecos/packages/hal/arm/cma230/current/include/pkgconf/mlt_arm_cma222_rom.h20
-rw-r--r--ecos/packages/hal/arm/cma230/current/include/pkgconf/mlt_arm_cma222_rom.ldi28
-rw-r--r--ecos/packages/hal/arm/cma230/current/include/pkgconf/mlt_arm_cma222_rom.mlt14
-rwxr-xr-xecos/packages/hal/arm/cma230/current/include/pkgconf/mlt_arm_cma230_ram.h17
-rw-r--r--ecos/packages/hal/arm/cma230/current/include/pkgconf/mlt_arm_cma230_ram.ldi27
-rw-r--r--ecos/packages/hal/arm/cma230/current/include/pkgconf/mlt_arm_cma230_ram.mlt13
-rwxr-xr-xecos/packages/hal/arm/cma230/current/include/pkgconf/mlt_arm_cma230_rom.h20
-rw-r--r--ecos/packages/hal/arm/cma230/current/include/pkgconf/mlt_arm_cma230_rom.ldi28
-rw-r--r--ecos/packages/hal/arm/cma230/current/include/pkgconf/mlt_arm_cma230_rom.mlt14
-rw-r--r--ecos/packages/hal/arm/cma230/current/include/plf_io.h59
-rw-r--r--ecos/packages/hal/arm/cma230/current/include/plf_stub.h84
-rw-r--r--ecos/packages/hal/arm/cma230/current/src/cma230_misc.c213
-rw-r--r--ecos/packages/hal/arm/cma230/current/src/hal_diag.c633
-rw-r--r--ecos/packages/hal/arm/e7t/current/ChangeLog209
-rw-r--r--ecos/packages/hal/arm/e7t/current/cdl/hal_arm_e7t.cdl304
-rw-r--r--ecos/packages/hal/arm/e7t/current/include/hal_cache.h291
-rw-r--r--ecos/packages/hal/arm/e7t/current/include/hal_diag.h78
-rw-r--r--ecos/packages/hal/arm/e7t/current/include/hal_platform_ints.h95
-rw-r--r--ecos/packages/hal/arm/e7t/current/include/hal_platform_setup.h137
-rwxr-xr-xecos/packages/hal/arm/e7t/current/include/pkgconf/mlt_arm_e7t_ram.h17
-rw-r--r--ecos/packages/hal/arm/e7t/current/include/pkgconf/mlt_arm_e7t_ram.ldi27
-rw-r--r--ecos/packages/hal/arm/e7t/current/include/pkgconf/mlt_arm_e7t_ram.mlt13
-rwxr-xr-xecos/packages/hal/arm/e7t/current/include/pkgconf/mlt_arm_e7t_rom.h25
-rw-r--r--ecos/packages/hal/arm/e7t/current/include/pkgconf/mlt_arm_e7t_rom.ldi29
-rw-r--r--ecos/packages/hal/arm/e7t/current/include/pkgconf/mlt_arm_e7t_rom.mlt15
-rw-r--r--ecos/packages/hal/arm/e7t/current/include/plf_io.h250
-rw-r--r--ecos/packages/hal/arm/e7t/current/include/plf_stub.h85
-rw-r--r--ecos/packages/hal/arm/e7t/current/misc/redboot_ROM.ecm87
-rw-r--r--ecos/packages/hal/arm/e7t/current/src/e7t_misc.c260
-rwxr-xr-xecos/packages/hal/arm/e7t/current/src/flash_cksum.tcl173
-rw-r--r--ecos/packages/hal/arm/e7t/current/src/hal_diag.c375
-rw-r--r--ecos/packages/hal/arm/e7t/current/src/redboot_module.c132
-rw-r--r--ecos/packages/hal/arm/ebsa285/current/ChangeLog852
-rw-r--r--ecos/packages/hal/arm/ebsa285/current/cdl/hal_arm_ebsa285.cdl397
-rw-r--r--ecos/packages/hal/arm/ebsa285/current/include/hal_cache.h367
-rw-r--r--ecos/packages/hal/arm/ebsa285/current/include/hal_diag.h94
-rw-r--r--ecos/packages/hal/arm/ebsa285/current/include/hal_ebsa285.h810
-rw-r--r--ecos/packages/hal/arm/ebsa285/current/include/hal_platform_ints.h128
-rw-r--r--ecos/packages/hal/arm/ebsa285/current/include/hal_platform_setup.h266
-rw-r--r--ecos/packages/hal/arm/ebsa285/current/include/pkgconf/mlt_arm_ebsa285_ram.h22
-rw-r--r--ecos/packages/hal/arm/ebsa285/current/include/pkgconf/mlt_arm_ebsa285_ram.ldi28
-rw-r--r--ecos/packages/hal/arm/ebsa285/current/include/pkgconf/mlt_arm_ebsa285_ram.mlt14
-rw-r--r--ecos/packages/hal/arm/ebsa285/current/include/pkgconf/mlt_arm_ebsa285_rom.h25
-rw-r--r--ecos/packages/hal/arm/ebsa285/current/include/pkgconf/mlt_arm_ebsa285_rom.ldi29
-rw-r--r--ecos/packages/hal/arm/ebsa285/current/include/pkgconf/mlt_arm_ebsa285_rom.mlt15
-rw-r--r--ecos/packages/hal/arm/ebsa285/current/include/pkgconf/mlt_arm_ebsa285_romram.h25
-rw-r--r--ecos/packages/hal/arm/ebsa285/current/include/pkgconf/mlt_arm_ebsa285_romram.ldi28
-rw-r--r--ecos/packages/hal/arm/ebsa285/current/include/pkgconf/mlt_arm_ebsa285_romram.mlt15
-rw-r--r--ecos/packages/hal/arm/ebsa285/current/include/plf_io.h265
-rw-r--r--ecos/packages/hal/arm/ebsa285/current/include/plf_stub.h84
-rwxr-xr-xecos/packages/hal/arm/ebsa285/current/misc/STUBS_config84
-rw-r--r--ecos/packages/hal/arm/ebsa285/current/misc/redboot_RAM.ecm110
-rw-r--r--ecos/packages/hal/arm/ebsa285/current/misc/redboot_ROM.ecm114
-rw-r--r--ecos/packages/hal/arm/ebsa285/current/misc/redboot_ROMRAM.ecm114
-rw-r--r--ecos/packages/hal/arm/ebsa285/current/src/ebsa285_misc.c497
-rw-r--r--ecos/packages/hal/arm/ebsa285/current/src/hal_diag.c536
-rw-r--r--ecos/packages/hal/arm/ebsa285/current/src/mem285.S475
-rw-r--r--ecos/packages/hal/arm/ebsa285/current/support/README9
-rw-r--r--ecos/packages/hal/arm/ebsa285/current/support/linux/README8
-rw-r--r--ecos/packages/hal/arm/ebsa285/current/support/linux/safl_util/Makefile13
-rw-r--r--ecos/packages/hal/arm/ebsa285/current/support/linux/safl_util/README42
-rw-r--r--ecos/packages/hal/arm/ebsa285/current/support/linux/safl_util/sa_flash.c366
-rw-r--r--ecos/packages/hal/arm/ebsa285/current/support/linux/safl_util/safl.c403
-rw-r--r--ecos/packages/hal/arm/ebsa285/current/tests/sdram0.cxx240
-rw-r--r--ecos/packages/hal/arm/edb7xxx/current/ChangeLog1196
-rw-r--r--ecos/packages/hal/arm/edb7xxx/current/cdl/hal_arm_edb7xxx.cdl695
-rw-r--r--ecos/packages/hal/arm/edb7xxx/current/include/hal_cache.h340
-rw-r--r--ecos/packages/hal/arm/edb7xxx/current/include/hal_diag.h94
-rw-r--r--ecos/packages/hal/arm/edb7xxx/current/include/hal_edb7xxx.h405
-rw-r--r--ecos/packages/hal/arm/edb7xxx/current/include/hal_platform_extras.h163
-rw-r--r--ecos/packages/hal/arm/edb7xxx/current/include/hal_platform_ints.h113
-rw-r--r--ecos/packages/hal/arm/edb7xxx/current/include/hal_platform_setup.h562
-rw-r--r--ecos/packages/hal/arm/edb7xxx/current/include/lcd_support.h73
-rw-r--r--ecos/packages/hal/arm/edb7xxx/current/include/pkgconf/mlt_arm_cl7111_ram.h17
-rw-r--r--ecos/packages/hal/arm/edb7xxx/current/include/pkgconf/mlt_arm_cl7111_ram.ldi27
-rw-r--r--ecos/packages/hal/arm/edb7xxx/current/include/pkgconf/mlt_arm_cl7111_ram.mlt13
-rw-r--r--ecos/packages/hal/arm/edb7xxx/current/include/pkgconf/mlt_arm_cl7111_rom.h20
-rw-r--r--ecos/packages/hal/arm/edb7xxx/current/include/pkgconf/mlt_arm_cl7111_rom.ldi28
-rw-r--r--ecos/packages/hal/arm/edb7xxx/current/include/pkgconf/mlt_arm_cl7111_rom.mlt14
-rw-r--r--ecos/packages/hal/arm/edb7xxx/current/include/pkgconf/mlt_arm_edb7209_rom.h20
-rw-r--r--ecos/packages/hal/arm/edb7xxx/current/include/pkgconf/mlt_arm_edb7209_rom.ldi29
-rw-r--r--ecos/packages/hal/arm/edb7xxx/current/include/pkgconf/mlt_arm_edb7209_rom.mlt15
-rw-r--r--ecos/packages/hal/arm/edb7xxx/current/include/pkgconf/mlt_arm_edb7211_ram.h17
-rw-r--r--ecos/packages/hal/arm/edb7xxx/current/include/pkgconf/mlt_arm_edb7211_ram.ldi27
-rw-r--r--ecos/packages/hal/arm/edb7xxx/current/include/pkgconf/mlt_arm_edb7211_ram.mlt13
-rwxr-xr-xecos/packages/hal/arm/edb7xxx/current/include/pkgconf/mlt_arm_edb7211_rom.h28
-rw-r--r--ecos/packages/hal/arm/edb7xxx/current/include/pkgconf/mlt_arm_edb7211_rom.ldi31
-rw-r--r--ecos/packages/hal/arm/edb7xxx/current/include/pkgconf/mlt_arm_edb7211_rom.mlt17
-rwxr-xr-xecos/packages/hal/arm/edb7xxx/current/include/pkgconf/mlt_arm_edb7212_ram.h20
-rw-r--r--ecos/packages/hal/arm/edb7xxx/current/include/pkgconf/mlt_arm_edb7212_ram.ldi29
-rw-r--r--ecos/packages/hal/arm/edb7xxx/current/include/pkgconf/mlt_arm_edb7212_ram.mlt15
-rwxr-xr-xecos/packages/hal/arm/edb7xxx/current/include/pkgconf/mlt_arm_edb7212_rom.h23
-rw-r--r--ecos/packages/hal/arm/edb7xxx/current/include/pkgconf/mlt_arm_edb7212_rom.ldi31
-rw-r--r--ecos/packages/hal/arm/edb7xxx/current/include/pkgconf/mlt_arm_edb7212_rom.mlt17
-rw-r--r--ecos/packages/hal/arm/edb7xxx/current/include/pkgconf/mlt_arm_edb7312_ram.h20
-rw-r--r--ecos/packages/hal/arm/edb7xxx/current/include/pkgconf/mlt_arm_edb7312_ram.ldi29
-rw-r--r--ecos/packages/hal/arm/edb7xxx/current/include/pkgconf/mlt_arm_edb7312_ram.mlt15
-rw-r--r--ecos/packages/hal/arm/edb7xxx/current/include/pkgconf/mlt_arm_edb7312_rom.h23
-rw-r--r--ecos/packages/hal/arm/edb7xxx/current/include/pkgconf/mlt_arm_edb7312_rom.ldi31
-rw-r--r--ecos/packages/hal/arm/edb7xxx/current/include/pkgconf/mlt_arm_edb7312_rom.mlt17
-rw-r--r--ecos/packages/hal/arm/edb7xxx/current/include/pkgconf/mlt_arm_edb7312_romram.h20
-rw-r--r--ecos/packages/hal/arm/edb7xxx/current/include/pkgconf/mlt_arm_edb7312_romram.ldi29
-rw-r--r--ecos/packages/hal/arm/edb7xxx/current/include/pkgconf/mlt_arm_edb7312_romram.mlt15
-rw-r--r--ecos/packages/hal/arm/edb7xxx/current/include/plf_io.h84
-rw-r--r--ecos/packages/hal/arm/edb7xxx/current/include/plf_stub.h84
-rw-r--r--ecos/packages/hal/arm/edb7xxx/current/misc/edb7211_redboot.ecm50
-rw-r--r--ecos/packages/hal/arm/edb7xxx/current/misc/edb7211_redboot_ROM.ecm58
-rw-r--r--ecos/packages/hal/arm/edb7xxx/current/misc/edb7212_redboot.ecm54
-rw-r--r--ecos/packages/hal/arm/edb7xxx/current/misc/edb7212_redboot_ROM.ecm62
-rw-r--r--ecos/packages/hal/arm/edb7xxx/current/misc/edb7312_redboot_RAM.ecm111
-rw-r--r--ecos/packages/hal/arm/edb7xxx/current/misc/edb7312_redboot_ROM.ecm101
-rw-r--r--ecos/packages/hal/arm/edb7xxx/current/misc/edb7312_redboot_ROMRAM.ecm121
-rw-r--r--ecos/packages/hal/arm/edb7xxx/current/misc/i2s_audio_fiq.S169
-rw-r--r--ecos/packages/hal/arm/edb7xxx/current/misc/i2s_audio_test.c231
-rw-r--r--ecos/packages/hal/arm/edb7xxx/current/misc/kbd_support.c465
-rw-r--r--ecos/packages/hal/arm/edb7xxx/current/misc/kbd_test.c115
-rw-r--r--ecos/packages/hal/arm/edb7xxx/current/misc/lcd_panel_support.c223
-rw-r--r--ecos/packages/hal/arm/edb7xxx/current/misc/lcd_support.c509
-rw-r--r--ecos/packages/hal/arm/edb7xxx/current/misc/lcd_test.c126
-rwxr-xr-xecos/packages/hal/arm/edb7xxx/current/misc/long_audio_left.h56580
-rwxr-xr-xecos/packages/hal/arm/edb7xxx/current/misc/long_audio_right.h56581
-rw-r--r--ecos/packages/hal/arm/edb7xxx/current/misc/panel_test.c117
-rw-r--r--ecos/packages/hal/arm/edb7xxx/current/misc/prog_flash.c322
-rwxr-xr-xecos/packages/hal/arm/edb7xxx/current/misc/short_audio_left.h5002
-rwxr-xr-xecos/packages/hal/arm/edb7xxx/current/misc/short_audio_right.h5002
-rw-r--r--ecos/packages/hal/arm/edb7xxx/current/src/banner.xpm182
-rw-r--r--ecos/packages/hal/arm/edb7xxx/current/src/edb7xxx_misc.c578
-rw-r--r--ecos/packages/hal/arm/edb7xxx/current/src/font.h159
-rw-r--r--ecos/packages/hal/arm/edb7xxx/current/src/hal_diag.c552
-rw-r--r--ecos/packages/hal/arm/edb7xxx/current/src/lcd_support.c1380
-rw-r--r--ecos/packages/hal/arm/edb7xxx/current/support/Makefile15
-rw-r--r--ecos/packages/hal/arm/edb7xxx/current/support/bootcode.h131
-rw-r--r--ecos/packages/hal/arm/edb7xxx/current/support/dl_edb7xxx.c438
-rw-r--r--ecos/packages/hal/arm/edb7xxx/current/support/io.c172
-rw-r--r--ecos/packages/hal/arm/edb7xxx/current/tests/dram_test.c347
-rw-r--r--ecos/packages/hal/arm/gps4020/current/ChangeLog67
-rw-r--r--ecos/packages/hal/arm/gps4020/current/cdl/hal_arm_gps4020.cdl331
-rw-r--r--ecos/packages/hal/arm/gps4020/current/include/gps4020.h175
-rw-r--r--ecos/packages/hal/arm/gps4020/current/include/hal_cache.h191
-rw-r--r--ecos/packages/hal/arm/gps4020/current/include/hal_diag.h72
-rw-r--r--ecos/packages/hal/arm/gps4020/current/include/hal_platform_ints.h93
-rw-r--r--ecos/packages/hal/arm/gps4020/current/include/hal_platform_setup.h121
-rw-r--r--ecos/packages/hal/arm/gps4020/current/include/pkgconf/mlt_arm_gps4020_ram.h20
-rw-r--r--ecos/packages/hal/arm/gps4020/current/include/pkgconf/mlt_arm_gps4020_ram.ldi28
-rw-r--r--ecos/packages/hal/arm/gps4020/current/include/pkgconf/mlt_arm_gps4020_rom.h23
-rw-r--r--ecos/packages/hal/arm/gps4020/current/include/pkgconf/mlt_arm_gps4020_rom.ldi29
-rw-r--r--ecos/packages/hal/arm/gps4020/current/include/plf_io.h57
-rw-r--r--ecos/packages/hal/arm/gps4020/current/include/plf_stub.h83
-rw-r--r--ecos/packages/hal/arm/gps4020/current/misc/redboot_RAM.ecm96
-rw-r--r--ecos/packages/hal/arm/gps4020/current/misc/redboot_ROM.ecm104
-rw-r--r--ecos/packages/hal/arm/gps4020/current/src/gps4020_misc.c209
-rw-r--r--ecos/packages/hal/arm/gps4020/current/src/hal_diag.c253
-rw-r--r--ecos/packages/hal/arm/gps4020/current/support/download/Makefile77
-rw-r--r--ecos/packages/hal/arm/gps4020/current/support/download/arm.ld21
-rw-r--r--ecos/packages/hal/arm/gps4020/current/support/download/download.py126
-rw-r--r--ecos/packages/hal/arm/gps4020/current/support/download/download_bin.py50
-rw-r--r--ecos/packages/hal/arm/gps4020/current/support/download/gps4020_download.c184
-rw-r--r--ecos/packages/hal/arm/gps4020/current/support/download/gps4020_start.S216
-rw-r--r--ecos/packages/hal/arm/gps4020/current/support/download/tty.c204
-rw-r--r--ecos/packages/hal/arm/integrator/current/ChangeLog146
-rw-r--r--ecos/packages/hal/arm/integrator/current/cdl/hal_arm_integrator.cdl470
-rw-r--r--ecos/packages/hal/arm/integrator/current/include/hal_cache.h182
-rw-r--r--ecos/packages/hal/arm/integrator/current/include/hal_diag.h94
-rw-r--r--ecos/packages/hal/arm/integrator/current/include/hal_integrator.h405
-rw-r--r--ecos/packages/hal/arm/integrator/current/include/hal_platform_ints.h109
-rw-r--r--ecos/packages/hal/arm/integrator/current/include/hal_platform_setup.h136
-rw-r--r--ecos/packages/hal/arm/integrator/current/include/pkgconf/mlt_arm_integrator_ram.h21
-rw-r--r--ecos/packages/hal/arm/integrator/current/include/pkgconf/mlt_arm_integrator_ram.ldi30
-rw-r--r--ecos/packages/hal/arm/integrator/current/include/pkgconf/mlt_arm_integrator_ram.mlt12
-rw-r--r--ecos/packages/hal/arm/integrator/current/include/pkgconf/mlt_arm_integrator_rom.h24
-rw-r--r--ecos/packages/hal/arm/integrator/current/include/pkgconf/mlt_arm_integrator_rom.ldi30
-rw-r--r--ecos/packages/hal/arm/integrator/current/include/pkgconf/mlt_arm_integrator_rom.mlt13
-rw-r--r--ecos/packages/hal/arm/integrator/current/include/pkgconf/mlt_arm_integrator_romram.h21
-rw-r--r--ecos/packages/hal/arm/integrator/current/include/pkgconf/mlt_arm_integrator_romram.ldi30
-rw-r--r--ecos/packages/hal/arm/integrator/current/include/plf_io.h250
-rw-r--r--ecos/packages/hal/arm/integrator/current/include/plf_stub.h100
-rw-r--r--ecos/packages/hal/arm/integrator/current/misc/redboot_RAM.ecm59
-rw-r--r--ecos/packages/hal/arm/integrator/current/misc/redboot_ROM.ecm63
-rw-r--r--ecos/packages/hal/arm/integrator/current/misc/redboot_ROMRAM.ecm112
-rw-r--r--ecos/packages/hal/arm/integrator/current/src/Notes_GDB_stub64
-rw-r--r--ecos/packages/hal/arm/integrator/current/src/flash.c677
-rw-r--r--ecos/packages/hal/arm/integrator/current/src/hal_diag.c455
-rw-r--r--ecos/packages/hal/arm/integrator/current/src/integrator_misc.c367
-rw-r--r--ecos/packages/hal/arm/integrator/current/src/prog_flash.c300
-rwxr-xr-xecos/packages/hal/arm/lpc24xx/ea2468/current/ChangeLog91
-rwxr-xr-xecos/packages/hal/arm/lpc24xx/ea2468/current/cdl/hal_arm_lpc24xx_ea2468.cdl341
-rwxr-xr-xecos/packages/hal/arm/lpc24xx/ea2468/current/include/hal_platform_setup.h123
-rwxr-xr-xecos/packages/hal/arm/lpc24xx/ea2468/current/include/pkgconf/mlt_arm_lpc24xx_ea2468_ram.h21
-rwxr-xr-xecos/packages/hal/arm/lpc24xx/ea2468/current/include/pkgconf/mlt_arm_lpc24xx_ea2468_ram.ldi26
-rwxr-xr-xecos/packages/hal/arm/lpc24xx/ea2468/current/include/pkgconf/mlt_arm_lpc24xx_ea2468_rom.h28
-rwxr-xr-xecos/packages/hal/arm/lpc24xx/ea2468/current/include/pkgconf/mlt_arm_lpc24xx_ea2468_rom.ldi27
-rwxr-xr-xecos/packages/hal/arm/lpc24xx/ea2468/current/include/plf_io.h126
-rwxr-xr-xecos/packages/hal/arm/lpc24xx/ea2468/current/src/ea2468_misc.c458
-rw-r--r--ecos/packages/hal/arm/lpc24xx/ea2468/current/src/platform_i2c.c243
-rw-r--r--ecos/packages/hal/arm/lpc24xx/ea2468/current/tests/fiq.c182
-rw-r--r--ecos/packages/hal/arm/lpc24xx/ea2468/current/tests/i2c_eeprom.c181
-rwxr-xr-xecos/packages/hal/arm/lpc24xx/var/current/ChangeLog88
-rwxr-xr-xecos/packages/hal/arm/lpc24xx/var/current/cdl/hal_arm_lpc24xx.cdl429
-rwxr-xr-xecos/packages/hal/arm/lpc24xx/var/current/include/hal_cache.h109
-rwxr-xr-xecos/packages/hal/arm/lpc24xx/var/current/include/hal_diag.h78
-rwxr-xr-xecos/packages/hal/arm/lpc24xx/var/current/include/hal_var_ints.h117
-rwxr-xr-xecos/packages/hal/arm/lpc24xx/var/current/include/lpc24xx_misc.h171
-rwxr-xr-xecos/packages/hal/arm/lpc24xx/var/current/include/plf_stub.h85
-rwxr-xr-xecos/packages/hal/arm/lpc24xx/var/current/include/var_arch.h80
-rwxr-xr-xecos/packages/hal/arm/lpc24xx/var/current/include/var_io.h846
-rwxr-xr-xecos/packages/hal/arm/lpc24xx/var/current/src/hal_diag.c391
-rwxr-xr-xecos/packages/hal/arm/lpc24xx/var/current/src/lpc24xx_misc.c613
-rw-r--r--ecos/packages/hal/arm/lpc2xxx/lpcmt/current/ChangeLog44
-rw-r--r--ecos/packages/hal/arm/lpc2xxx/lpcmt/current/cdl/hal_arm_lpc2xxx_lpcmt.cdl278
-rw-r--r--ecos/packages/hal/arm/lpc2xxx/lpcmt/current/include/hal_platform_setup.h160
-rw-r--r--ecos/packages/hal/arm/lpc2xxx/lpcmt/current/include/pkgconf/mlt_arm_lpc2xxx_lpcmt_ram.h17
-rw-r--r--ecos/packages/hal/arm/lpc2xxx/lpcmt/current/include/pkgconf/mlt_arm_lpc2xxx_lpcmt_ram.ldi27
-rw-r--r--ecos/packages/hal/arm/lpc2xxx/lpcmt/current/include/pkgconf/mlt_arm_lpc2xxx_lpcmt_rom.h20
-rw-r--r--ecos/packages/hal/arm/lpc2xxx/lpcmt/current/include/pkgconf/mlt_arm_lpc2xxx_lpcmt_rom.ldi28
-rw-r--r--ecos/packages/hal/arm/lpc2xxx/lpcmt/current/include/plf_io.h59
-rw-r--r--ecos/packages/hal/arm/lpc2xxx/lpcmt/current/src/lpcmt_misc.c81
-rw-r--r--ecos/packages/hal/arm/lpc2xxx/mcb2100/current/ChangeLog58
-rw-r--r--ecos/packages/hal/arm/lpc2xxx/mcb2100/current/cdl/hal_arm_lpc2xxx_mcb2100.cdl278
-rw-r--r--ecos/packages/hal/arm/lpc2xxx/mcb2100/current/include/hal_platform_setup.h162
-rw-r--r--ecos/packages/hal/arm/lpc2xxx/mcb2100/current/include/pkgconf/mlt_arm_lpc2xxx_mcb2100_rom.h20
-rw-r--r--ecos/packages/hal/arm/lpc2xxx/mcb2100/current/include/pkgconf/mlt_arm_lpc2xxx_mcb2100_rom.ldi28
-rw-r--r--ecos/packages/hal/arm/lpc2xxx/mcb2100/current/include/plf_io.h59
-rw-r--r--ecos/packages/hal/arm/lpc2xxx/mcb2100/current/src/mcb2100_misc.c79
-rw-r--r--ecos/packages/hal/arm/lpc2xxx/olpce2294/current/ChangeLog71
-rw-r--r--ecos/packages/hal/arm/lpc2xxx/olpce2294/current/cdl/hal_arm_lpc2xxx_olpce2294.cdl306
-rw-r--r--ecos/packages/hal/arm/lpc2xxx/olpce2294/current/include/hal_platform_setup.h231
-rw-r--r--ecos/packages/hal/arm/lpc2xxx/olpce2294/current/include/pkgconf/mlt_arm_lpc2xxx_olpce2294_ram.h19
-rw-r--r--ecos/packages/hal/arm/lpc2xxx/olpce2294/current/include/pkgconf/mlt_arm_lpc2xxx_olpce2294_ram.ldi25
-rw-r--r--ecos/packages/hal/arm/lpc2xxx/olpce2294/current/include/pkgconf/mlt_arm_lpc2xxx_olpce2294_rom.h22
-rw-r--r--ecos/packages/hal/arm/lpc2xxx/olpce2294/current/include/pkgconf/mlt_arm_lpc2xxx_olpce2294_rom.ldi26
-rw-r--r--ecos/packages/hal/arm/lpc2xxx/olpce2294/current/include/plf_io.h66
-rw-r--r--ecos/packages/hal/arm/lpc2xxx/olpce2294/current/misc/redboot_RAM.ecm108
-rw-r--r--ecos/packages/hal/arm/lpc2xxx/olpce2294/current/misc/redboot_ROM.ecm116
-rw-r--r--ecos/packages/hal/arm/lpc2xxx/olpce2294/current/misc/redboot_ROM_minimal.ecm100
-rw-r--r--ecos/packages/hal/arm/lpc2xxx/olpce2294/current/src/olpce2294_misc.c636
-rw-r--r--ecos/packages/hal/arm/lpc2xxx/olpce2294/current/src/redboot_cmds.c178
-rw-r--r--ecos/packages/hal/arm/lpc2xxx/olpch2294/current/ChangeLog63
-rw-r--r--ecos/packages/hal/arm/lpc2xxx/olpch2294/current/cdl/hal_arm_lpc2xxx_olpch2294.cdl299
-rw-r--r--ecos/packages/hal/arm/lpc2xxx/olpch2294/current/include/hal_platform_setup.h237
-rw-r--r--ecos/packages/hal/arm/lpc2xxx/olpch2294/current/include/pkgconf/mlt_arm_lpc2xxx_olpch2294_ram.h22
-rw-r--r--ecos/packages/hal/arm/lpc2xxx/olpch2294/current/include/pkgconf/mlt_arm_lpc2xxx_olpch2294_ram.ldi25
-rw-r--r--ecos/packages/hal/arm/lpc2xxx/olpch2294/current/include/pkgconf/mlt_arm_lpc2xxx_olpch2294_rom.h25
-rw-r--r--ecos/packages/hal/arm/lpc2xxx/olpch2294/current/include/pkgconf/mlt_arm_lpc2xxx_olpch2294_rom.ldi26
-rw-r--r--ecos/packages/hal/arm/lpc2xxx/olpch2294/current/include/pkgconf/mlt_arm_lpc2xxx_olpch2294_romram.h25
-rw-r--r--ecos/packages/hal/arm/lpc2xxx/olpch2294/current/include/pkgconf/mlt_arm_lpc2xxx_olpch2294_romram.ldi25
-rw-r--r--ecos/packages/hal/arm/lpc2xxx/olpch2294/current/include/plf_io.h67
-rw-r--r--ecos/packages/hal/arm/lpc2xxx/olpch2294/current/misc/redboot_RAM.ecm91
-rw-r--r--ecos/packages/hal/arm/lpc2xxx/olpch2294/current/misc/redboot_ROM.ecm99
-rw-r--r--ecos/packages/hal/arm/lpc2xxx/olpch2294/current/misc/redboot_ROM_minimal.ecm98
-rw-r--r--ecos/packages/hal/arm/lpc2xxx/olpch2294/current/src/olpch2294_misc.c111
-rw-r--r--ecos/packages/hal/arm/lpc2xxx/olpch2294/current/src/redboot_cmds.c115
-rw-r--r--ecos/packages/hal/arm/lpc2xxx/olpcl2294/current/ChangeLog74
-rw-r--r--ecos/packages/hal/arm/lpc2xxx/olpcl2294/current/cdl/hal_arm_lpc2xxx_olpcl2294.cdl315
-rw-r--r--ecos/packages/hal/arm/lpc2xxx/olpcl2294/current/include/hal_platform_setup.h243
-rw-r--r--ecos/packages/hal/arm/lpc2xxx/olpcl2294/current/include/pkgconf/mlt_arm_lpc2xxx_olpcl2294_ram.h19
-rw-r--r--ecos/packages/hal/arm/lpc2xxx/olpcl2294/current/include/pkgconf/mlt_arm_lpc2xxx_olpcl2294_ram.ldi25
-rw-r--r--ecos/packages/hal/arm/lpc2xxx/olpcl2294/current/include/pkgconf/mlt_arm_lpc2xxx_olpcl2294_rom.h22
-rw-r--r--ecos/packages/hal/arm/lpc2xxx/olpcl2294/current/include/pkgconf/mlt_arm_lpc2xxx_olpcl2294_rom.ldi26
-rw-r--r--ecos/packages/hal/arm/lpc2xxx/olpcl2294/current/include/plf_io.h66
-rw-r--r--ecos/packages/hal/arm/lpc2xxx/olpcl2294/current/misc/redboot_RAM.ecm104
-rw-r--r--ecos/packages/hal/arm/lpc2xxx/olpcl2294/current/misc/redboot_ROM.ecm112
-rw-r--r--ecos/packages/hal/arm/lpc2xxx/olpcl2294/current/misc/redboot_ROM_minimal.ecm100
-rw-r--r--ecos/packages/hal/arm/lpc2xxx/olpcl2294/current/src/olpcl2294_misc.c109
-rw-r--r--ecos/packages/hal/arm/lpc2xxx/olpcl2294/current/src/redboot_cmds.c115
-rw-r--r--ecos/packages/hal/arm/lpc2xxx/p2106/current/ChangeLog61
-rw-r--r--ecos/packages/hal/arm/lpc2xxx/p2106/current/cdl/hal_arm_lpc2xxx_p2106.cdl280
-rw-r--r--ecos/packages/hal/arm/lpc2xxx/p2106/current/include/hal_platform_setup.h161
-rw-r--r--ecos/packages/hal/arm/lpc2xxx/p2106/current/include/pkgconf/mlt_arm_lpc2xxx_p2106_ram.h17
-rw-r--r--ecos/packages/hal/arm/lpc2xxx/p2106/current/include/pkgconf/mlt_arm_lpc2xxx_p2106_ram.ldi27
-rw-r--r--ecos/packages/hal/arm/lpc2xxx/p2106/current/include/pkgconf/mlt_arm_lpc2xxx_p2106_rom.h20
-rw-r--r--ecos/packages/hal/arm/lpc2xxx/p2106/current/include/pkgconf/mlt_arm_lpc2xxx_p2106_rom.ldi28
-rw-r--r--ecos/packages/hal/arm/lpc2xxx/p2106/current/include/plf_io.h59
-rw-r--r--ecos/packages/hal/arm/lpc2xxx/p2106/current/src/p2106_misc.c81
-rwxr-xr-xecos/packages/hal/arm/lpc2xxx/phycore229x/current/ChangeLog42
-rwxr-xr-xecos/packages/hal/arm/lpc2xxx/phycore229x/current/cdl/hal_arm_lpc2xxx_phycore229x.cdl425
-rwxr-xr-xecos/packages/hal/arm/lpc2xxx/phycore229x/current/include/hal_platform_setup.h263
-rwxr-xr-xecos/packages/hal/arm/lpc2xxx/phycore229x/current/include/pkgconf/mlt_arm_lpc2xxx_phycore229x_ram.h21
-rwxr-xr-xecos/packages/hal/arm/lpc2xxx/phycore229x/current/include/pkgconf/mlt_arm_lpc2xxx_phycore229x_ram.ldi26
-rwxr-xr-xecos/packages/hal/arm/lpc2xxx/phycore229x/current/include/pkgconf/mlt_arm_lpc2xxx_phycore229x_rom.h31
-rwxr-xr-xecos/packages/hal/arm/lpc2xxx/phycore229x/current/include/pkgconf/mlt_arm_lpc2xxx_phycore229x_rom.ldi27
-rwxr-xr-xecos/packages/hal/arm/lpc2xxx/phycore229x/current/include/plf_io.h69
-rwxr-xr-xecos/packages/hal/arm/lpc2xxx/phycore229x/current/src/phycore229x_misc.c139
-rw-r--r--ecos/packages/hal/arm/lpc2xxx/var/current/ChangeLog145
-rw-r--r--ecos/packages/hal/arm/lpc2xxx/var/current/cdl/hal_arm_lpc2xxx.cdl355
-rw-r--r--ecos/packages/hal/arm/lpc2xxx/var/current/include/hal_cache.h109
-rw-r--r--ecos/packages/hal/arm/lpc2xxx/var/current/include/hal_diag.h85
-rw-r--r--ecos/packages/hal/arm/lpc2xxx/var/current/include/hal_var_ints.h111
-rw-r--r--ecos/packages/hal/arm/lpc2xxx/var/current/include/lpc2xxx_iap.h104
-rw-r--r--ecos/packages/hal/arm/lpc2xxx/var/current/include/lpc2xxx_misc.h81
-rw-r--r--ecos/packages/hal/arm/lpc2xxx/var/current/include/plf_stub.h85
-rw-r--r--ecos/packages/hal/arm/lpc2xxx/var/current/include/var_arch.h80
-rw-r--r--ecos/packages/hal/arm/lpc2xxx/var/current/include/var_io.h588
-rw-r--r--ecos/packages/hal/arm/lpc2xxx/var/current/src/hal_diag.c333
-rw-r--r--ecos/packages/hal/arm/lpc2xxx/var/current/src/lpc2xxx_iap.c172
-rw-r--r--ecos/packages/hal/arm/lpc2xxx/var/current/src/lpc2xxx_misc.c513
-rw-r--r--ecos/packages/hal/arm/lpc2xxx/var/current/tests/iap_test.c133
-rw-r--r--ecos/packages/hal/arm/mac7100/mac7100evb/current/ChangeLog46
-rw-r--r--ecos/packages/hal/arm/mac7100/mac7100evb/current/cdl/hal_arm_mac7100_mac7100evb.cdl379
-rw-r--r--ecos/packages/hal/arm/mac7100/mac7100evb/current/include/hal_platform_ints.h144
-rw-r--r--ecos/packages/hal/arm/mac7100/mac7100evb/current/include/hal_platform_setup.h133
-rw-r--r--ecos/packages/hal/arm/mac7100/mac7100evb/current/include/mac7100evb_misc.h67
-rw-r--r--ecos/packages/hal/arm/mac7100/mac7100evb/current/include/pkgconf/mlt_arm_mac7100_mac7100evb_rom.h24
-rw-r--r--ecos/packages/hal/arm/mac7100/mac7100evb/current/include/pkgconf/mlt_arm_mac7100_mac7100evb_rom.ldi39
-rw-r--r--ecos/packages/hal/arm/mac7100/mac7100evb/current/include/plf_io.h60
-rw-r--r--ecos/packages/hal/arm/mac7100/mac7100evb/current/src/mac7100evb_misc.c102
-rw-r--r--ecos/packages/hal/arm/mac7100/mace1/current/ChangeLog52
-rw-r--r--ecos/packages/hal/arm/mac7100/mace1/current/cdl/hal_arm_mac7100_mace1.cdl379
-rw-r--r--ecos/packages/hal/arm/mac7100/mace1/current/include/hal_platform_ints.h144
-rw-r--r--ecos/packages/hal/arm/mac7100/mace1/current/include/hal_platform_setup.h133
-rw-r--r--ecos/packages/hal/arm/mac7100/mace1/current/include/mace1_misc.h68
-rw-r--r--ecos/packages/hal/arm/mac7100/mace1/current/include/pkgconf/mlt_arm_mac7100_mace1_rom.h24
-rw-r--r--ecos/packages/hal/arm/mac7100/mace1/current/include/pkgconf/mlt_arm_mac7100_mace1_rom.ldi39
-rw-r--r--ecos/packages/hal/arm/mac7100/mace1/current/include/plf_io.h60
-rw-r--r--ecos/packages/hal/arm/mac7100/mace1/current/src/mace1_misc.c102
-rw-r--r--ecos/packages/hal/arm/mac7100/var/current/ChangeLog57
-rw-r--r--ecos/packages/hal/arm/mac7100/var/current/cdl/hal_arm_mac7100.cdl128
-rw-r--r--ecos/packages/hal/arm/mac7100/var/current/include/hal_cache.h191
-rw-r--r--ecos/packages/hal/arm/mac7100/var/current/include/hal_diag.h83
-rw-r--r--ecos/packages/hal/arm/mac7100/var/current/include/hal_var_setup.h140
-rw-r--r--ecos/packages/hal/arm/mac7100/var/current/include/mac7100_misc.h64
-rw-r--r--ecos/packages/hal/arm/mac7100/var/current/include/plf_stub.h85
-rw-r--r--ecos/packages/hal/arm/mac7100/var/current/include/var_arch.h72
-rw-r--r--ecos/packages/hal/arm/mac7100/var/current/include/var_io.h471
-rw-r--r--ecos/packages/hal/arm/mac7100/var/current/src/flash_security.S78
-rw-r--r--ecos/packages/hal/arm/mac7100/var/current/src/hal_diag.c387
-rw-r--r--ecos/packages/hal/arm/mac7100/var/current/src/mac7100_misc.c341
-rw-r--r--ecos/packages/hal/arm/pid/current/ChangeLog873
-rw-r--r--ecos/packages/hal/arm/pid/current/cdl/hal_arm_pid.cdl456
-rw-r--r--ecos/packages/hal/arm/pid/current/include/hal_cache.h191
-rw-r--r--ecos/packages/hal/arm/pid/current/include/hal_diag.h100
-rw-r--r--ecos/packages/hal/arm/pid/current/include/hal_platform_ints.h91
-rw-r--r--ecos/packages/hal/arm/pid/current/include/hal_platform_setup.h79
-rw-r--r--ecos/packages/hal/arm/pid/current/include/pkgconf/mlt_arm_pid_ram.h17
-rw-r--r--ecos/packages/hal/arm/pid/current/include/pkgconf/mlt_arm_pid_ram.ldi27
-rw-r--r--ecos/packages/hal/arm/pid/current/include/pkgconf/mlt_arm_pid_ram.mlt13
-rw-r--r--ecos/packages/hal/arm/pid/current/include/pkgconf/mlt_arm_pid_rom.h20
-rw-r--r--ecos/packages/hal/arm/pid/current/include/pkgconf/mlt_arm_pid_rom.ldi28
-rw-r--r--ecos/packages/hal/arm/pid/current/include/pkgconf/mlt_arm_pid_rom.mlt14
-rw-r--r--ecos/packages/hal/arm/pid/current/include/plf_io.h63
-rw-r--r--ecos/packages/hal/arm/pid/current/include/plf_stub.h84
-rw-r--r--ecos/packages/hal/arm/pid/current/misc/dl.c89
-rw-r--r--ecos/packages/hal/arm/pid/current/misc/redboot_RAM-BE.ecm54
-rw-r--r--ecos/packages/hal/arm/pid/current/misc/redboot_RAM.ecm50
-rw-r--r--ecos/packages/hal/arm/pid/current/misc/redboot_ROM-BE.ecm62
-rw-r--r--ecos/packages/hal/arm/pid/current/misc/redboot_ROM.ecm58
-rw-r--r--ecos/packages/hal/arm/pid/current/src/Notes_GDB_stub194
-rw-r--r--ecos/packages/hal/arm/pid/current/src/flash.c445
-rw-r--r--ecos/packages/hal/arm/pid/current/src/hal_diag.c608
-rw-r--r--ecos/packages/hal/arm/pid/current/src/pid_misc.c254
-rw-r--r--ecos/packages/hal/arm/pid/current/src/prog_flash.c222
-rw-r--r--ecos/packages/hal/arm/sa11x0/assabet/current/ChangeLog351
-rw-r--r--ecos/packages/hal/arm/sa11x0/assabet/current/cdl/hal_arm_sa11x0_assabet.cdl364
-rw-r--r--ecos/packages/hal/arm/sa11x0/assabet/current/include/assabet.h153
-rw-r--r--ecos/packages/hal/arm/sa11x0/assabet/current/include/hal_platform_setup.h294
-rw-r--r--ecos/packages/hal/arm/sa11x0/assabet/current/include/pkgconf/mlt_arm_sa11x0_assabet_ram.h17
-rw-r--r--ecos/packages/hal/arm/sa11x0/assabet/current/include/pkgconf/mlt_arm_sa11x0_assabet_ram.ldi27
-rw-r--r--ecos/packages/hal/arm/sa11x0/assabet/current/include/pkgconf/mlt_arm_sa11x0_assabet_ram.mlt13
-rw-r--r--ecos/packages/hal/arm/sa11x0/assabet/current/include/pkgconf/mlt_arm_sa11x0_assabet_rom.h20
-rw-r--r--ecos/packages/hal/arm/sa11x0/assabet/current/include/pkgconf/mlt_arm_sa11x0_assabet_rom.ldi28
-rw-r--r--ecos/packages/hal/arm/sa11x0/assabet/current/include/pkgconf/mlt_arm_sa11x0_assabet_rom.mlt14
-rw-r--r--ecos/packages/hal/arm/sa11x0/assabet/current/include/plf_io.h59
-rw-r--r--ecos/packages/hal/arm/sa11x0/assabet/current/include/plf_mmap.h131
-rw-r--r--ecos/packages/hal/arm/sa11x0/assabet/current/misc/eCos.xpm254
-rw-r--r--ecos/packages/hal/arm/sa11x0/assabet/current/misc/eCos2.xpm260
-rw-r--r--ecos/packages/hal/arm/sa11x0/assabet/current/misc/escw.xpm264
-rw-r--r--ecos/packages/hal/arm/sa11x0/assabet/current/misc/lcd_test.c344
-rw-r--r--ecos/packages/hal/arm/sa11x0/assabet/current/misc/logo.xpm260
-rw-r--r--ecos/packages/hal/arm/sa11x0/assabet/current/misc/redboot.xpm254
-rw-r--r--ecos/packages/hal/arm/sa11x0/assabet/current/misc/redboot_RAM.ecm128
-rw-r--r--ecos/packages/hal/arm/sa11x0/assabet/current/misc/redboot_ROM.ecm128
-rw-r--r--ecos/packages/hal/arm/sa11x0/assabet/current/misc/redhat.xpm254
-rw-r--r--ecos/packages/hal/arm/sa11x0/assabet/current/misc/redhat2.xpm260
-rw-r--r--ecos/packages/hal/arm/sa11x0/assabet/current/src/assabet_misc.c163
-rw-r--r--ecos/packages/hal/arm/sa11x0/assabet/current/src/banner.xpm74
-rw-r--r--ecos/packages/hal/arm/sa11x0/assabet/current/src/lcd_support.c632
-rw-r--r--ecos/packages/hal/arm/sa11x0/assabet/current/support/README6
-rw-r--r--ecos/packages/hal/arm/sa11x0/assabet/current/support/SA1110Jflash.tgzbin0 -> 128673 bytes
-rw-r--r--ecos/packages/hal/arm/sa11x0/brutus/current/ChangeLog186
-rw-r--r--ecos/packages/hal/arm/sa11x0/brutus/current/cdl/hal_arm_sa11x0_brutus.cdl349
-rw-r--r--ecos/packages/hal/arm/sa11x0/brutus/current/include/brutus.h58
-rw-r--r--ecos/packages/hal/arm/sa11x0/brutus/current/include/hal_platform_setup.h371
-rw-r--r--ecos/packages/hal/arm/sa11x0/brutus/current/include/pkgconf/mlt_arm_sa11x0_brutus_ram.h17
-rw-r--r--ecos/packages/hal/arm/sa11x0/brutus/current/include/pkgconf/mlt_arm_sa11x0_brutus_ram.ldi27
-rw-r--r--ecos/packages/hal/arm/sa11x0/brutus/current/include/pkgconf/mlt_arm_sa11x0_brutus_ram.mlt13
-rw-r--r--ecos/packages/hal/arm/sa11x0/brutus/current/include/pkgconf/mlt_arm_sa11x0_brutus_rom.h20
-rw-r--r--ecos/packages/hal/arm/sa11x0/brutus/current/include/pkgconf/mlt_arm_sa11x0_brutus_rom.ldi28
-rw-r--r--ecos/packages/hal/arm/sa11x0/brutus/current/include/pkgconf/mlt_arm_sa11x0_brutus_rom.mlt14
-rw-r--r--ecos/packages/hal/arm/sa11x0/brutus/current/include/plf_io.h59
-rw-r--r--ecos/packages/hal/arm/sa11x0/brutus/current/include/plf_mmap.h155
-rw-r--r--ecos/packages/hal/arm/sa11x0/brutus/current/misc/redboot_RAM.ecm61
-rw-r--r--ecos/packages/hal/arm/sa11x0/brutus/current/misc/redboot_ROM.ecm65
-rw-r--r--ecos/packages/hal/arm/sa11x0/brutus/current/src/brutus_misc.c142
-rw-r--r--ecos/packages/hal/arm/sa11x0/cerf/current/ChangeLog90
-rw-r--r--ecos/packages/hal/arm/sa11x0/cerf/current/cdl/hal_arm_sa11x0_cerf.cdl373
-rw-r--r--ecos/packages/hal/arm/sa11x0/cerf/current/include/cerf.h151
-rw-r--r--ecos/packages/hal/arm/sa11x0/cerf/current/include/hal_platform_setup.h322
-rw-r--r--ecos/packages/hal/arm/sa11x0/cerf/current/include/pkgconf/mlt_arm_sa11x0_cerf_ram.h17
-rw-r--r--ecos/packages/hal/arm/sa11x0/cerf/current/include/pkgconf/mlt_arm_sa11x0_cerf_ram.ldi27
-rw-r--r--ecos/packages/hal/arm/sa11x0/cerf/current/include/pkgconf/mlt_arm_sa11x0_cerf_ram.mlt13
-rw-r--r--ecos/packages/hal/arm/sa11x0/cerf/current/include/pkgconf/mlt_arm_sa11x0_cerf_rom.h20
-rw-r--r--ecos/packages/hal/arm/sa11x0/cerf/current/include/pkgconf/mlt_arm_sa11x0_cerf_rom.ldi28
-rw-r--r--ecos/packages/hal/arm/sa11x0/cerf/current/include/pkgconf/mlt_arm_sa11x0_cerf_rom.mlt14
-rw-r--r--ecos/packages/hal/arm/sa11x0/cerf/current/include/plf_io.h59
-rw-r--r--ecos/packages/hal/arm/sa11x0/cerf/current/include/plf_mmap.h139
-rw-r--r--ecos/packages/hal/arm/sa11x0/cerf/current/misc/redboot_RAM.ecm132
-rw-r--r--ecos/packages/hal/arm/sa11x0/cerf/current/misc/redboot_ROM.ecm132
-rw-r--r--ecos/packages/hal/arm/sa11x0/cerf/current/src/cerf_misc.c171
-rw-r--r--ecos/packages/hal/arm/sa11x0/cerfpda/current/ChangeLog86
-rw-r--r--ecos/packages/hal/arm/sa11x0/cerfpda/current/cdl/hal_arm_sa11x0_cerfpda.cdl372
-rw-r--r--ecos/packages/hal/arm/sa11x0/cerfpda/current/include/cerfpda.h152
-rw-r--r--ecos/packages/hal/arm/sa11x0/cerfpda/current/include/hal_platform_setup.h323
-rw-r--r--ecos/packages/hal/arm/sa11x0/cerfpda/current/include/pkgconf/mlt_arm_sa11x0_cerfpda_ram.h17
-rw-r--r--ecos/packages/hal/arm/sa11x0/cerfpda/current/include/pkgconf/mlt_arm_sa11x0_cerfpda_ram.ldi27
-rw-r--r--ecos/packages/hal/arm/sa11x0/cerfpda/current/include/pkgconf/mlt_arm_sa11x0_cerfpda_ram.mlt13
-rw-r--r--ecos/packages/hal/arm/sa11x0/cerfpda/current/include/pkgconf/mlt_arm_sa11x0_cerfpda_rom.h20
-rw-r--r--ecos/packages/hal/arm/sa11x0/cerfpda/current/include/pkgconf/mlt_arm_sa11x0_cerfpda_rom.ldi28
-rw-r--r--ecos/packages/hal/arm/sa11x0/cerfpda/current/include/pkgconf/mlt_arm_sa11x0_cerfpda_rom.mlt14
-rw-r--r--ecos/packages/hal/arm/sa11x0/cerfpda/current/include/plf_io.h59
-rw-r--r--ecos/packages/hal/arm/sa11x0/cerfpda/current/include/plf_mmap.h138
-rw-r--r--ecos/packages/hal/arm/sa11x0/cerfpda/current/misc/eCos.xpm254
-rw-r--r--ecos/packages/hal/arm/sa11x0/cerfpda/current/misc/eCos2.xpm260
-rw-r--r--ecos/packages/hal/arm/sa11x0/cerfpda/current/misc/escw.xpm264
-rw-r--r--ecos/packages/hal/arm/sa11x0/cerfpda/current/misc/lcd_test.c344
-rw-r--r--ecos/packages/hal/arm/sa11x0/cerfpda/current/misc/logo.xpm260
-rw-r--r--ecos/packages/hal/arm/sa11x0/cerfpda/current/misc/redboot.xpm254
-rw-r--r--ecos/packages/hal/arm/sa11x0/cerfpda/current/misc/redboot_RAM.ecm75
-rw-r--r--ecos/packages/hal/arm/sa11x0/cerfpda/current/misc/redboot_ROM.ecm75
-rw-r--r--ecos/packages/hal/arm/sa11x0/cerfpda/current/misc/redhat.xpm254
-rw-r--r--ecos/packages/hal/arm/sa11x0/cerfpda/current/misc/redhat2.xpm260
-rw-r--r--ecos/packages/hal/arm/sa11x0/cerfpda/current/src/banner.xpm74
-rw-r--r--ecos/packages/hal/arm/sa11x0/cerfpda/current/src/cerfpda_misc.c168
-rw-r--r--ecos/packages/hal/arm/sa11x0/cerfpda/current/src/lcd_support.c632
-rw-r--r--ecos/packages/hal/arm/sa11x0/flexanet/current/ChangeLog60
-rw-r--r--ecos/packages/hal/arm/sa11x0/flexanet/current/cdl/hal_arm_sa11x0_flexanet.cdl355
-rw-r--r--ecos/packages/hal/arm/sa11x0/flexanet/current/include/flexanet.h154
-rw-r--r--ecos/packages/hal/arm/sa11x0/flexanet/current/include/hal_platform_setup.h366
-rw-r--r--ecos/packages/hal/arm/sa11x0/flexanet/current/include/pkgconf/mlt_arm_sa11x0_flexanet_ram.h17
-rw-r--r--ecos/packages/hal/arm/sa11x0/flexanet/current/include/pkgconf/mlt_arm_sa11x0_flexanet_ram.ldi27
-rw-r--r--ecos/packages/hal/arm/sa11x0/flexanet/current/include/pkgconf/mlt_arm_sa11x0_flexanet_ram.mlt13
-rw-r--r--ecos/packages/hal/arm/sa11x0/flexanet/current/include/pkgconf/mlt_arm_sa11x0_flexanet_rom.h20
-rw-r--r--ecos/packages/hal/arm/sa11x0/flexanet/current/include/pkgconf/mlt_arm_sa11x0_flexanet_rom.ldi28
-rw-r--r--ecos/packages/hal/arm/sa11x0/flexanet/current/include/pkgconf/mlt_arm_sa11x0_flexanet_rom.mlt14
-rw-r--r--ecos/packages/hal/arm/sa11x0/flexanet/current/include/plf_io.h59
-rw-r--r--ecos/packages/hal/arm/sa11x0/flexanet/current/include/plf_mmap.h136
-rw-r--r--ecos/packages/hal/arm/sa11x0/flexanet/current/misc/redboot_RAM.ecm77
-rw-r--r--ecos/packages/hal/arm/sa11x0/flexanet/current/misc/redboot_ROM.ecm77
-rw-r--r--ecos/packages/hal/arm/sa11x0/flexanet/current/src/flexanet_misc.c157
-rw-r--r--ecos/packages/hal/arm/sa11x0/flexanet/current/support/README3
-rw-r--r--ecos/packages/hal/arm/sa11x0/ipaq/current/ChangeLog386
-rw-r--r--ecos/packages/hal/arm/sa11x0/ipaq/current/cdl/hal_arm_sa11x0_ipaq.cdl401
-rw-r--r--ecos/packages/hal/arm/sa11x0/ipaq/current/doc/README.ipaq367
-rw-r--r--ecos/packages/hal/arm/sa11x0/ipaq/current/include/atmel_support.h140
-rw-r--r--ecos/packages/hal/arm/sa11x0/ipaq/current/include/hal_platform_ints.h104
-rw-r--r--ecos/packages/hal/arm/sa11x0/ipaq/current/include/hal_platform_setup.h558
-rw-r--r--ecos/packages/hal/arm/sa11x0/ipaq/current/include/ipaq.h188
-rw-r--r--ecos/packages/hal/arm/sa11x0/ipaq/current/include/lcd_support.h74
-rw-r--r--ecos/packages/hal/arm/sa11x0/ipaq/current/include/pkgconf/mlt_arm_sa11x0_ipaq_compaq.h20
-rw-r--r--ecos/packages/hal/arm/sa11x0/ipaq/current/include/pkgconf/mlt_arm_sa11x0_ipaq_compaq.ldi28
-rw-r--r--ecos/packages/hal/arm/sa11x0/ipaq/current/include/pkgconf/mlt_arm_sa11x0_ipaq_compaq.mlt14
-rw-r--r--ecos/packages/hal/arm/sa11x0/ipaq/current/include/pkgconf/mlt_arm_sa11x0_ipaq_ram.h17
-rw-r--r--ecos/packages/hal/arm/sa11x0/ipaq/current/include/pkgconf/mlt_arm_sa11x0_ipaq_ram.ldi27
-rw-r--r--ecos/packages/hal/arm/sa11x0/ipaq/current/include/pkgconf/mlt_arm_sa11x0_ipaq_ram.mlt13
-rw-r--r--ecos/packages/hal/arm/sa11x0/ipaq/current/include/pkgconf/mlt_arm_sa11x0_ipaq_rom.h20
-rw-r--r--ecos/packages/hal/arm/sa11x0/ipaq/current/include/pkgconf/mlt_arm_sa11x0_ipaq_rom.ldi28
-rw-r--r--ecos/packages/hal/arm/sa11x0/ipaq/current/include/pkgconf/mlt_arm_sa11x0_ipaq_rom.mlt14
-rw-r--r--ecos/packages/hal/arm/sa11x0/ipaq/current/include/pkgconf/mlt_arm_sa11x0_ipaq_wince.h17
-rw-r--r--ecos/packages/hal/arm/sa11x0/ipaq/current/include/pkgconf/mlt_arm_sa11x0_ipaq_wince.ldi27
-rw-r--r--ecos/packages/hal/arm/sa11x0/ipaq/current/include/pkgconf/mlt_arm_sa11x0_ipaq_wince.mlt13
-rw-r--r--ecos/packages/hal/arm/sa11x0/ipaq/current/include/plf_io.h59
-rw-r--r--ecos/packages/hal/arm/sa11x0/ipaq/current/include/plf_mmap.h131
-rw-r--r--ecos/packages/hal/arm/sa11x0/ipaq/current/misc/elinux.patch911
-rw-r--r--ecos/packages/hal/arm/sa11x0/ipaq/current/misc/redboot_Compaq.ecm73
-rw-r--r--ecos/packages/hal/arm/sa11x0/ipaq/current/misc/redboot_RAM.ecm115
-rw-r--r--ecos/packages/hal/arm/sa11x0/ipaq/current/misc/redboot_ROM.ecm131
-rw-r--r--ecos/packages/hal/arm/sa11x0/ipaq/current/misc/redboot_WinCE.ecm78
-rw-r--r--ecos/packages/hal/arm/sa11x0/ipaq/current/src/atmel_support.c469
-rw-r--r--ecos/packages/hal/arm/sa11x0/ipaq/current/src/banner.xpm182
-rw-r--r--ecos/packages/hal/arm/sa11x0/ipaq/current/src/banner.xpm.bin74
-rw-r--r--ecos/packages/hal/arm/sa11x0/ipaq/current/src/font.h159
-rw-r--r--ecos/packages/hal/arm/sa11x0/ipaq/current/src/ipaq_misc.c174
-rw-r--r--ecos/packages/hal/arm/sa11x0/ipaq/current/src/kbd.xpm667
-rw-r--r--ecos/packages/hal/arm/sa11x0/ipaq/current/src/lcd_support.c1453
-rw-r--r--ecos/packages/hal/arm/sa11x0/ipaq/current/src/redboot_cmds.c235
-rw-r--r--ecos/packages/hal/arm/sa11x0/nano/current/ChangeLog217
-rw-r--r--ecos/packages/hal/arm/sa11x0/nano/current/cdl/hal_arm_sa11x0_nano.cdl388
-rw-r--r--ecos/packages/hal/arm/sa11x0/nano/current/include/hal_platform_setup.h364
-rw-r--r--ecos/packages/hal/arm/sa11x0/nano/current/include/nano.h255
-rw-r--r--ecos/packages/hal/arm/sa11x0/nano/current/include/pkgconf/mlt_arm_sa11x0_nano_post.h28
-rw-r--r--ecos/packages/hal/arm/sa11x0/nano/current/include/pkgconf/mlt_arm_sa11x0_nano_post.ldi30
-rw-r--r--ecos/packages/hal/arm/sa11x0/nano/current/include/pkgconf/mlt_arm_sa11x0_nano_post.mlt16
-rw-r--r--ecos/packages/hal/arm/sa11x0/nano/current/include/pkgconf/mlt_arm_sa11x0_nano_ram.h25
-rw-r--r--ecos/packages/hal/arm/sa11x0/nano/current/include/pkgconf/mlt_arm_sa11x0_nano_ram.ldi29
-rw-r--r--ecos/packages/hal/arm/sa11x0/nano/current/include/pkgconf/mlt_arm_sa11x0_nano_ram.mlt15
-rw-r--r--ecos/packages/hal/arm/sa11x0/nano/current/include/plf_io.h59
-rw-r--r--ecos/packages/hal/arm/sa11x0/nano/current/include/plf_mmap.h124
-rw-r--r--ecos/packages/hal/arm/sa11x0/nano/current/misc/readme.txt443
-rw-r--r--ecos/packages/hal/arm/sa11x0/nano/current/misc/redboot_POST.ecm140
-rw-r--r--ecos/packages/hal/arm/sa11x0/nano/current/misc/redboot_RAM.ecm136
-rw-r--r--ecos/packages/hal/arm/sa11x0/nano/current/src/nano_misc.c394
-rw-r--r--ecos/packages/hal/arm/sa11x0/sa1100mm/current/ChangeLog133
-rw-r--r--ecos/packages/hal/arm/sa11x0/sa1100mm/current/cdl/hal_arm_sa11x0_sa1100mm.cdl343
-rw-r--r--ecos/packages/hal/arm/sa11x0/sa1100mm/current/include/hal_platform_setup.h378
-rw-r--r--ecos/packages/hal/arm/sa11x0/sa1100mm/current/include/pkgconf/mlt_arm_sa11x0_sa1100mm_ram.h10
-rw-r--r--ecos/packages/hal/arm/sa11x0/sa1100mm/current/include/pkgconf/mlt_arm_sa11x0_sa1100mm_ram.ldi24
-rw-r--r--ecos/packages/hal/arm/sa11x0/sa1100mm/current/include/pkgconf/mlt_arm_sa11x0_sa1100mm_ram.mlt12
-rw-r--r--ecos/packages/hal/arm/sa11x0/sa1100mm/current/include/pkgconf/mlt_arm_sa11x0_sa1100mm_rom.h16
-rw-r--r--ecos/packages/hal/arm/sa11x0/sa1100mm/current/include/pkgconf/mlt_arm_sa11x0_sa1100mm_rom.ldi25
-rw-r--r--ecos/packages/hal/arm/sa11x0/sa1100mm/current/include/pkgconf/mlt_arm_sa11x0_sa1100mm_rom.mlt13
-rw-r--r--ecos/packages/hal/arm/sa11x0/sa1100mm/current/include/plf_io.h59
-rw-r--r--ecos/packages/hal/arm/sa11x0/sa1100mm/current/include/plf_mmap.h131
-rw-r--r--ecos/packages/hal/arm/sa11x0/sa1100mm/current/include/sa1100mm.h58
-rw-r--r--ecos/packages/hal/arm/sa11x0/sa1100mm/current/misc/redboot_RAM.ecm51
-rw-r--r--ecos/packages/hal/arm/sa11x0/sa1100mm/current/misc/redboot_ROM.ecm55
-rw-r--r--ecos/packages/hal/arm/sa11x0/sa1100mm/current/src/sa1100mm_misc.c143
-rw-r--r--ecos/packages/hal/arm/sa11x0/var/current/ChangeLog472
-rw-r--r--ecos/packages/hal/arm/sa11x0/var/current/cdl/hal_arm_sa11x0.cdl163
-rw-r--r--ecos/packages/hal/arm/sa11x0/var/current/include/hal_cache.h398
-rw-r--r--ecos/packages/hal/arm/sa11x0/var/current/include/hal_diag.h93
-rw-r--r--ecos/packages/hal/arm/sa11x0/var/current/include/hal_mm.h192
-rw-r--r--ecos/packages/hal/arm/sa11x0/var/current/include/hal_sa11x0.h726
-rw-r--r--ecos/packages/hal/arm/sa11x0/var/current/include/hal_var_ints.h148
-rw-r--r--ecos/packages/hal/arm/sa11x0/var/current/include/plf_stub.h83
-rw-r--r--ecos/packages/hal/arm/sa11x0/var/current/include/var_io.h67
-rw-r--r--ecos/packages/hal/arm/sa11x0/var/current/src/hal_diag.c547
-rw-r--r--ecos/packages/hal/arm/sa11x0/var/current/src/sa11x0_misc.c571
-rw-r--r--ecos/packages/hal/arm/sa11x0/var/current/tests/mmap_test.c293
-rw-r--r--ecos/packages/hal/arm/snds/current/ChangeLog155
-rw-r--r--ecos/packages/hal/arm/snds/current/cdl/hal_arm_snds.cdl368
-rw-r--r--ecos/packages/hal/arm/snds/current/include/hal_cache.h290
-rw-r--r--ecos/packages/hal/arm/snds/current/include/hal_diag.h82
-rw-r--r--ecos/packages/hal/arm/snds/current/include/hal_platform_ints.h107
-rw-r--r--ecos/packages/hal/arm/snds/current/include/hal_platform_setup.h327
-rw-r--r--ecos/packages/hal/arm/snds/current/include/pkgconf/mlt_arm_snds_ram.h15
-rw-r--r--ecos/packages/hal/arm/snds/current/include/pkgconf/mlt_arm_snds_ram.ldi27
-rw-r--r--ecos/packages/hal/arm/snds/current/include/pkgconf/mlt_arm_snds_ram.mlt13
-rwxr-xr-xecos/packages/hal/arm/snds/current/include/pkgconf/mlt_arm_snds_rom.h20
-rw-r--r--ecos/packages/hal/arm/snds/current/include/pkgconf/mlt_arm_snds_rom.ldi28
-rw-r--r--ecos/packages/hal/arm/snds/current/include/pkgconf/mlt_arm_snds_rom.mlt15
-rw-r--r--ecos/packages/hal/arm/snds/current/include/plf_io.h289
-rw-r--r--ecos/packages/hal/arm/snds/current/include/plf_stub.h76
-rw-r--r--ecos/packages/hal/arm/snds/current/misc/redboot_RAM.ecm64
-rw-r--r--ecos/packages/hal/arm/snds/current/misc/redboot_ROM.ecm72
-rw-r--r--ecos/packages/hal/arm/snds/current/src/hal_diag.c377
-rw-r--r--ecos/packages/hal/arm/snds/current/src/ks32c5000.h239
-rw-r--r--ecos/packages/hal/arm/snds/current/src/snds100_misc.c285
-rw-r--r--ecos/packages/hal/arm/xscale/cores/current/ChangeLog64
-rw-r--r--ecos/packages/hal/arm/xscale/cores/current/cdl/hal_arm_xscale_core.cdl78
-rw-r--r--ecos/packages/hal/arm/xscale/cores/current/include/hal_cache.h409
-rw-r--r--ecos/packages/hal/arm/xscale/cores/current/include/hal_mm.h252
-rw-r--r--ecos/packages/hal/arm/xscale/cores/current/include/hal_xscale.h150
-rw-r--r--ecos/packages/hal/arm/xscale/cores/current/include/plf_stub.h94
-rw-r--r--ecos/packages/hal/arm/xscale/cores/current/src/xscale_misc.c74
-rw-r--r--ecos/packages/hal/arm/xscale/cores/current/src/xscale_stub.c783
-rw-r--r--ecos/packages/hal/arm/xscale/grg/current/ChangeLog98
-rw-r--r--ecos/packages/hal/arm/xscale/grg/current/cdl/hal_arm_xscale_grg.cdl304
-rw-r--r--ecos/packages/hal/arm/xscale/grg/current/include/grg.h118
-rw-r--r--ecos/packages/hal/arm/xscale/grg/current/include/hal_platform_setup.h343
-rw-r--r--ecos/packages/hal/arm/xscale/grg/current/include/hal_plf_ints.h85
-rw-r--r--ecos/packages/hal/arm/xscale/grg/current/include/pkgconf/mlt_arm_xscale_grg_ram.h18
-rw-r--r--ecos/packages/hal/arm/xscale/grg/current/include/pkgconf/mlt_arm_xscale_grg_ram.ldi27
-rw-r--r--ecos/packages/hal/arm/xscale/grg/current/include/pkgconf/mlt_arm_xscale_grg_ram.mlt14
-rw-r--r--ecos/packages/hal/arm/xscale/grg/current/include/pkgconf/mlt_arm_xscale_grg_rom.h20
-rw-r--r--ecos/packages/hal/arm/xscale/grg/current/include/pkgconf/mlt_arm_xscale_grg_rom.ldi29
-rw-r--r--ecos/packages/hal/arm/xscale/grg/current/include/pkgconf/mlt_arm_xscale_grg_rom.mlt15
-rw-r--r--ecos/packages/hal/arm/xscale/grg/current/include/plf_io.h63
-rw-r--r--ecos/packages/hal/arm/xscale/grg/current/misc/redboot_RAM.ecm129
-rw-r--r--ecos/packages/hal/arm/xscale/grg/current/misc/redboot_RAMLE.ecm132
-rw-r--r--ecos/packages/hal/arm/xscale/grg/current/misc/redboot_ROM.ecm137
-rw-r--r--ecos/packages/hal/arm/xscale/grg/current/misc/redboot_ROMLE.ecm140
-rw-r--r--ecos/packages/hal/arm/xscale/grg/current/src/grg_misc.c131
-rw-r--r--ecos/packages/hal/arm/xscale/grg/current/src/grg_pci.c132
-rw-r--r--ecos/packages/hal/arm/xscale/iop310/current/ChangeLog494
-rw-r--r--ecos/packages/hal/arm/xscale/iop310/current/cdl/hal_arm_xscale_iop310.cdl403
-rw-r--r--ecos/packages/hal/arm/xscale/iop310/current/include/hal_diag.h73
-rw-r--r--ecos/packages/hal/arm/xscale/iop310/current/include/hal_iop310.h675
-rw-r--r--ecos/packages/hal/arm/xscale/iop310/current/include/hal_var_ints.h156
-rw-r--r--ecos/packages/hal/arm/xscale/iop310/current/include/var_io.h170
-rw-r--r--ecos/packages/hal/arm/xscale/iop310/current/src/hal_diag.c456
-rw-r--r--ecos/packages/hal/arm/xscale/iop310/current/src/iop310_misc.c1003
-rw-r--r--ecos/packages/hal/arm/xscale/iop310/current/src/iop310_pci.c456
-rw-r--r--ecos/packages/hal/arm/xscale/iq80310/current/ChangeLog540
-rw-r--r--ecos/packages/hal/arm/xscale/iq80310/current/cdl/hal_arm_xscale_iq80310.cdl119
-rw-r--r--ecos/packages/hal/arm/xscale/iq80310/current/include/hal_platform_ints.h77
-rw-r--r--ecos/packages/hal/arm/xscale/iq80310/current/include/hal_platform_setup.h872
-rw-r--r--ecos/packages/hal/arm/xscale/iq80310/current/include/pkgconf/mlt_arm_xscale_iq80310_ram.h17
-rw-r--r--ecos/packages/hal/arm/xscale/iq80310/current/include/pkgconf/mlt_arm_xscale_iq80310_ram.ldi28
-rw-r--r--ecos/packages/hal/arm/xscale/iq80310/current/include/pkgconf/mlt_arm_xscale_iq80310_ram.mlt14
-rw-r--r--ecos/packages/hal/arm/xscale/iq80310/current/include/pkgconf/mlt_arm_xscale_iq80310_rom.h20
-rw-r--r--ecos/packages/hal/arm/xscale/iq80310/current/include/pkgconf/mlt_arm_xscale_iq80310_rom.ldi28
-rw-r--r--ecos/packages/hal/arm/xscale/iq80310/current/include/pkgconf/mlt_arm_xscale_iq80310_rom.mlt14
-rw-r--r--ecos/packages/hal/arm/xscale/iq80310/current/include/pkgconf/mlt_arm_xscale_iq80310_roma.h23
-rw-r--r--ecos/packages/hal/arm/xscale/iq80310/current/include/pkgconf/mlt_arm_xscale_iq80310_roma.ldi29
-rw-r--r--ecos/packages/hal/arm/xscale/iq80310/current/include/pkgconf/mlt_arm_xscale_iq80310_roma.mlt15
-rw-r--r--ecos/packages/hal/arm/xscale/iq80310/current/include/plf_io.h124
-rw-r--r--ecos/packages/hal/arm/xscale/iq80310/current/misc/redboot_RAM.ecm139
-rw-r--r--ecos/packages/hal/arm/xscale/iq80310/current/misc/redboot_RAMA.ecm98
-rw-r--r--ecos/packages/hal/arm/xscale/iq80310/current/misc/redboot_ROM.ecm143
-rw-r--r--ecos/packages/hal/arm/xscale/iq80310/current/misc/redboot_ROMA.ecm106
-rw-r--r--ecos/packages/hal/arm/xscale/iq80310/current/src/diag/7_segment_displays.h94
-rw-r--r--ecos/packages/hal/arm/xscale/iq80310/current/src/diag/cycduart.c483
-rw-r--r--ecos/packages/hal/arm/xscale/iq80310/current/src/diag/cycduart.h161
-rw-r--r--ecos/packages/hal/arm/xscale/iq80310/current/src/diag/diag.c180
-rw-r--r--ecos/packages/hal/arm/xscale/iq80310/current/src/diag/ether_test.c1144
-rw-r--r--ecos/packages/hal/arm/xscale/iq80310/current/src/diag/ether_test.h612
-rw-r--r--ecos/packages/hal/arm/xscale/iq80310/current/src/diag/external_timer.c419
-rw-r--r--ecos/packages/hal/arm/xscale/iq80310/current/src/diag/flash.c572
-rw-r--r--ecos/packages/hal/arm/xscale/iq80310/current/src/diag/i557_eep.c549
-rw-r--r--ecos/packages/hal/arm/xscale/iq80310/current/src/diag/i557_eep.h97
-rw-r--r--ecos/packages/hal/arm/xscale/iq80310/current/src/diag/interrupts.c1138
-rw-r--r--ecos/packages/hal/arm/xscale/iq80310/current/src/diag/io_utils.c257
-rw-r--r--ecos/packages/hal/arm/xscale/iq80310/current/src/diag/iq80310.h551
-rw-r--r--ecos/packages/hal/arm/xscale/iq80310/current/src/diag/irq.S115
-rw-r--r--ecos/packages/hal/arm/xscale/iq80310/current/src/diag/memtest.c709
-rw-r--r--ecos/packages/hal/arm/xscale/iq80310/current/src/diag/pci_bios.h489
-rw-r--r--ecos/packages/hal/arm/xscale/iq80310/current/src/diag/pci_serv.c242
-rw-r--r--ecos/packages/hal/arm/xscale/iq80310/current/src/diag/test_menu.c217
-rw-r--r--ecos/packages/hal/arm/xscale/iq80310/current/src/diag/test_menu.h143
-rw-r--r--ecos/packages/hal/arm/xscale/iq80310/current/src/diag/xscale_test.c1433
-rw-r--r--ecos/packages/hal/arm/xscale/iq80310/current/src/iq80310_misc.c80
-rw-r--r--ecos/packages/hal/arm/xscale/iq80321/current/ChangeLog334
-rw-r--r--ecos/packages/hal/arm/xscale/iq80321/current/cdl/hal_arm_xscale_iq80321.cdl410
-rw-r--r--ecos/packages/hal/arm/xscale/iq80321/current/include/hal_diag.h93
-rw-r--r--ecos/packages/hal/arm/xscale/iq80321/current/include/hal_platform_extras.h278
-rw-r--r--ecos/packages/hal/arm/xscale/iq80321/current/include/hal_platform_setup.h949
-rw-r--r--ecos/packages/hal/arm/xscale/iq80321/current/include/hal_plf_ints.h67
-rw-r--r--ecos/packages/hal/arm/xscale/iq80321/current/include/iq80321.h234
-rw-r--r--ecos/packages/hal/arm/xscale/iq80321/current/include/pkgconf/mlt_arm_xscale_iq80321_ram.h18
-rw-r--r--ecos/packages/hal/arm/xscale/iq80321/current/include/pkgconf/mlt_arm_xscale_iq80321_ram.ldi27
-rw-r--r--ecos/packages/hal/arm/xscale/iq80321/current/include/pkgconf/mlt_arm_xscale_iq80321_ram.mlt14
-rw-r--r--ecos/packages/hal/arm/xscale/iq80321/current/include/pkgconf/mlt_arm_xscale_iq80321_ram_altmap.h19
-rw-r--r--ecos/packages/hal/arm/xscale/iq80321/current/include/pkgconf/mlt_arm_xscale_iq80321_ram_altmap.ldi28
-rw-r--r--ecos/packages/hal/arm/xscale/iq80321/current/include/pkgconf/mlt_arm_xscale_iq80321_rom.h20
-rw-r--r--ecos/packages/hal/arm/xscale/iq80321/current/include/pkgconf/mlt_arm_xscale_iq80321_rom.ldi29
-rw-r--r--ecos/packages/hal/arm/xscale/iq80321/current/include/pkgconf/mlt_arm_xscale_iq80321_rom.mlt15
-rw-r--r--ecos/packages/hal/arm/xscale/iq80321/current/include/pkgconf/mlt_arm_xscale_iq80321_rom_altmap.h20
-rw-r--r--ecos/packages/hal/arm/xscale/iq80321/current/include/pkgconf/mlt_arm_xscale_iq80321_rom_altmap.ldi31
-rw-r--r--ecos/packages/hal/arm/xscale/iq80321/current/include/plf_io.h180
-rw-r--r--ecos/packages/hal/arm/xscale/iq80321/current/misc/redboot_RAM.ecm123
-rw-r--r--ecos/packages/hal/arm/xscale/iq80321/current/misc/redboot_RAM_ALTMAP.ecm70
-rw-r--r--ecos/packages/hal/arm/xscale/iq80321/current/misc/redboot_ROM.ecm127
-rw-r--r--ecos/packages/hal/arm/xscale/iq80321/current/misc/redboot_ROM_ALTMAP.ecm74
-rw-r--r--ecos/packages/hal/arm/xscale/iq80321/current/src/diag/battery.c171
-rw-r--r--ecos/packages/hal/arm/xscale/iq80321/current/src/diag/diag.c90
-rw-r--r--ecos/packages/hal/arm/xscale/iq80321/current/src/diag/i82544.c456
-rw-r--r--ecos/packages/hal/arm/xscale/iq80321/current/src/diag/io_utils.c134
-rw-r--r--ecos/packages/hal/arm/xscale/iq80321/current/src/diag/memtest.c370
-rw-r--r--ecos/packages/hal/arm/xscale/iq80321/current/src/diag/pcitest.c121
-rw-r--r--ecos/packages/hal/arm/xscale/iq80321/current/src/diag/test_menu.c251
-rw-r--r--ecos/packages/hal/arm/xscale/iq80321/current/src/diag/test_menu.h143
-rw-r--r--ecos/packages/hal/arm/xscale/iq80321/current/src/diag/timer.c67
-rw-r--r--ecos/packages/hal/arm/xscale/iq80321/current/src/diag/xscale_test.c324
-rw-r--r--ecos/packages/hal/arm/xscale/iq80321/current/src/hal_diag.c420
-rw-r--r--ecos/packages/hal/arm/xscale/iq80321/current/src/iq80321_misc.c123
-rw-r--r--ecos/packages/hal/arm/xscale/iq80321/current/src/iq80321_pci.c190
-rw-r--r--ecos/packages/hal/arm/xscale/ixdp425/current/ChangeLog211
-rw-r--r--ecos/packages/hal/arm/xscale/ixdp425/current/cdl/hal_arm_xscale_ixdp425.cdl324
-rw-r--r--ecos/packages/hal/arm/xscale/ixdp425/current/include/hal_platform_setup.h391
-rw-r--r--ecos/packages/hal/arm/xscale/ixdp425/current/include/hal_plf_ints.h83
-rw-r--r--ecos/packages/hal/arm/xscale/ixdp425/current/include/ixdp425.h133
-rw-r--r--ecos/packages/hal/arm/xscale/ixdp425/current/include/pkgconf/mlt_arm_xscale_ixdp425_ram.h18
-rw-r--r--ecos/packages/hal/arm/xscale/ixdp425/current/include/pkgconf/mlt_arm_xscale_ixdp425_ram.ldi27
-rw-r--r--ecos/packages/hal/arm/xscale/ixdp425/current/include/pkgconf/mlt_arm_xscale_ixdp425_ram.mlt14
-rw-r--r--ecos/packages/hal/arm/xscale/ixdp425/current/include/pkgconf/mlt_arm_xscale_ixdp425_rom.h20
-rw-r--r--ecos/packages/hal/arm/xscale/ixdp425/current/include/pkgconf/mlt_arm_xscale_ixdp425_rom.ldi29
-rw-r--r--ecos/packages/hal/arm/xscale/ixdp425/current/include/pkgconf/mlt_arm_xscale_ixdp425_rom.mlt15
-rw-r--r--ecos/packages/hal/arm/xscale/ixdp425/current/include/pkgconf/mlt_arm_xscale_ixdp425_romram.h21
-rw-r--r--ecos/packages/hal/arm/xscale/ixdp425/current/include/pkgconf/mlt_arm_xscale_ixdp425_romram.ldi28
-rw-r--r--ecos/packages/hal/arm/xscale/ixdp425/current/include/pkgconf/mlt_arm_xscale_ixdp425_romram.mlt14
-rw-r--r--ecos/packages/hal/arm/xscale/ixdp425/current/include/plf_io.h71
-rw-r--r--ecos/packages/hal/arm/xscale/ixdp425/current/misc/redboot_RAM.ecm128
-rw-r--r--ecos/packages/hal/arm/xscale/ixdp425/current/misc/redboot_RAMLE.ecm131
-rw-r--r--ecos/packages/hal/arm/xscale/ixdp425/current/misc/redboot_ROM.ecm137
-rw-r--r--ecos/packages/hal/arm/xscale/ixdp425/current/misc/redboot_ROMLE.ecm139
-rw-r--r--ecos/packages/hal/arm/xscale/ixdp425/current/misc/redboot_ROMRAM.ecm132
-rw-r--r--ecos/packages/hal/arm/xscale/ixdp425/current/misc/redboot_ROMRAMLE.ecm135
-rw-r--r--ecos/packages/hal/arm/xscale/ixdp425/current/src/ixdp425_misc.c412
-rw-r--r--ecos/packages/hal/arm/xscale/ixdp425/current/src/ixdp425_pci.c159
-rw-r--r--ecos/packages/hal/arm/xscale/ixdp425/current/src/ixdp425_strataflash.c98
-rw-r--r--ecos/packages/hal/arm/xscale/ixp425/current/ChangeLog109
-rw-r--r--ecos/packages/hal/arm/xscale/ixp425/current/cdl/hal_arm_xscale_ixp425.cdl210
-rw-r--r--ecos/packages/hal/arm/xscale/ixp425/current/include/hal_diag.h93
-rw-r--r--ecos/packages/hal/arm/xscale/ixp425/current/include/hal_ixp425.h317
-rw-r--r--ecos/packages/hal/arm/xscale/ixp425/current/include/hal_var_ints.h136
-rw-r--r--ecos/packages/hal/arm/xscale/ixp425/current/include/var_io.h239
-rw-r--r--ecos/packages/hal/arm/xscale/ixp425/current/src/ixp425_diag.c434
-rw-r--r--ecos/packages/hal/arm/xscale/ixp425/current/src/ixp425_misc.c431
-rw-r--r--ecos/packages/hal/arm/xscale/ixp425/current/src/ixp425_pci.c461
-rw-r--r--ecos/packages/hal/arm/xscale/ixp425/current/src/ixp425_redboot.c150
-rw-r--r--ecos/packages/hal/arm/xscale/mpc50/current/ChangeLog52
-rw-r--r--ecos/packages/hal/arm/xscale/mpc50/current/cdl/hal_arm_xscale_mpc50.cdl272
-rw-r--r--ecos/packages/hal/arm/xscale/mpc50/current/include/hal_platform_setup.h583
-rw-r--r--ecos/packages/hal/arm/xscale/mpc50/current/include/mpc50.h92
-rw-r--r--ecos/packages/hal/arm/xscale/mpc50/current/include/pkgconf/mlt_arm_pxa2x0_mpc50_ram.h14
-rw-r--r--ecos/packages/hal/arm/xscale/mpc50/current/include/pkgconf/mlt_arm_pxa2x0_mpc50_ram.ldi24
-rw-r--r--ecos/packages/hal/arm/xscale/mpc50/current/include/pkgconf/mlt_arm_pxa2x0_mpc50_ram.mlt13
-rw-r--r--ecos/packages/hal/arm/xscale/mpc50/current/include/pkgconf/mlt_arm_pxa2x0_mpc50_rom.h17
-rw-r--r--ecos/packages/hal/arm/xscale/mpc50/current/include/pkgconf/mlt_arm_pxa2x0_mpc50_rom.ldi24
-rw-r--r--ecos/packages/hal/arm/xscale/mpc50/current/include/pkgconf/mlt_arm_pxa2x0_mpc50_rom.mlt14
-rw-r--r--ecos/packages/hal/arm/xscale/mpc50/current/include/plf_io.h52
-rw-r--r--ecos/packages/hal/arm/xscale/mpc50/current/src/mpc50_misc.c184
-rw-r--r--ecos/packages/hal/arm/xscale/npwr/current/ChangeLog47
-rw-r--r--ecos/packages/hal/arm/xscale/npwr/current/cdl/hal_arm_xscale_npwr.cdl118
-rw-r--r--ecos/packages/hal/arm/xscale/npwr/current/include/hal_platform_ints.h69
-rw-r--r--ecos/packages/hal/arm/xscale/npwr/current/include/hal_platform_setup.h906
-rw-r--r--ecos/packages/hal/arm/xscale/npwr/current/include/pkgconf/mlt_arm_xscale_npwr_ram.h22
-rw-r--r--ecos/packages/hal/arm/xscale/npwr/current/include/pkgconf/mlt_arm_xscale_npwr_ram.ldi29
-rw-r--r--ecos/packages/hal/arm/xscale/npwr/current/include/pkgconf/mlt_arm_xscale_npwr_ram.mlt14
-rw-r--r--ecos/packages/hal/arm/xscale/npwr/current/include/pkgconf/mlt_arm_xscale_npwr_rom.h25
-rw-r--r--ecos/packages/hal/arm/xscale/npwr/current/include/pkgconf/mlt_arm_xscale_npwr_rom.ldi29
-rw-r--r--ecos/packages/hal/arm/xscale/npwr/current/include/pkgconf/mlt_arm_xscale_npwr_rom.mlt14
-rw-r--r--ecos/packages/hal/arm/xscale/npwr/current/include/plf_io.h75
-rw-r--r--ecos/packages/hal/arm/xscale/npwr/current/src/npwr_misc.c80
-rw-r--r--ecos/packages/hal/arm/xscale/picasso/current/ChangeLog82
-rw-r--r--ecos/packages/hal/arm/xscale/picasso/current/cdl/hal_arm_xscale_picasso.cdl421
-rw-r--r--ecos/packages/hal/arm/xscale/picasso/current/include/hal_platform_setup.h310
-rw-r--r--ecos/packages/hal/arm/xscale/picasso/current/include/hal_plf_ints.h137
-rw-r--r--ecos/packages/hal/arm/xscale/picasso/current/include/picasso.h65
-rw-r--r--ecos/packages/hal/arm/xscale/picasso/current/include/pkgconf/mlt_arm_xscale_picasso_ram.h18
-rw-r--r--ecos/packages/hal/arm/xscale/picasso/current/include/pkgconf/mlt_arm_xscale_picasso_ram.ldi27
-rw-r--r--ecos/packages/hal/arm/xscale/picasso/current/include/pkgconf/mlt_arm_xscale_picasso_ram.mlt14
-rw-r--r--ecos/packages/hal/arm/xscale/picasso/current/include/pkgconf/mlt_arm_xscale_picasso_rom.h20
-rw-r--r--ecos/packages/hal/arm/xscale/picasso/current/include/pkgconf/mlt_arm_xscale_picasso_rom.ldi29
-rw-r--r--ecos/packages/hal/arm/xscale/picasso/current/include/pkgconf/mlt_arm_xscale_picasso_rom.mlt15
-rw-r--r--ecos/packages/hal/arm/xscale/picasso/current/include/plf_io.h239
-rw-r--r--ecos/packages/hal/arm/xscale/picasso/current/include/plf_mmap.h125
-rw-r--r--ecos/packages/hal/arm/xscale/picasso/current/include/plx.h85
-rw-r--r--ecos/packages/hal/arm/xscale/picasso/current/include/vga_support.h80
-rw-r--r--ecos/packages/hal/arm/xscale/picasso/current/misc/redboot_RAM.ecm96
-rw-r--r--ecos/packages/hal/arm/xscale/picasso/current/misc/redboot_ROM.ecm150
-rw-r--r--ecos/packages/hal/arm/xscale/picasso/current/src/banner.xpm196
-rw-r--r--ecos/packages/hal/arm/xscale/picasso/current/src/font.h431
-rw-r--r--ecos/packages/hal/arm/xscale/picasso/current/src/picasso_ide.c137
-rw-r--r--ecos/packages/hal/arm/xscale/picasso/current/src/picasso_misc.c234
-rw-r--r--ecos/packages/hal/arm/xscale/picasso/current/src/picasso_pci.c364
-rw-r--r--ecos/packages/hal/arm/xscale/picasso/current/src/picasso_pci_bitstream.h4067
-rw-r--r--ecos/packages/hal/arm/xscale/picasso/current/src/vga_support.c1448
-rw-r--r--ecos/packages/hal/arm/xscale/picasso/current/src/xilinx-load.c432
-rw-r--r--ecos/packages/hal/arm/xscale/prpmc1100/current/ChangeLog56
-rw-r--r--ecos/packages/hal/arm/xscale/prpmc1100/current/cdl/hal_arm_xscale_prpmc1100.cdl301
-rw-r--r--ecos/packages/hal/arm/xscale/prpmc1100/current/include/hal_platform_extras.h222
-rw-r--r--ecos/packages/hal/arm/xscale/prpmc1100/current/include/hal_platform_setup.h301
-rw-r--r--ecos/packages/hal/arm/xscale/prpmc1100/current/include/hal_plf_ints.h77
-rw-r--r--ecos/packages/hal/arm/xscale/prpmc1100/current/include/pkgconf/mlt_arm_xscale_prpmc1100_ram.h18
-rw-r--r--ecos/packages/hal/arm/xscale/prpmc1100/current/include/pkgconf/mlt_arm_xscale_prpmc1100_ram.ldi27
-rw-r--r--ecos/packages/hal/arm/xscale/prpmc1100/current/include/pkgconf/mlt_arm_xscale_prpmc1100_ram.mlt14
-rw-r--r--ecos/packages/hal/arm/xscale/prpmc1100/current/include/pkgconf/mlt_arm_xscale_prpmc1100_rom.h20
-rw-r--r--ecos/packages/hal/arm/xscale/prpmc1100/current/include/pkgconf/mlt_arm_xscale_prpmc1100_rom.ldi29
-rw-r--r--ecos/packages/hal/arm/xscale/prpmc1100/current/include/pkgconf/mlt_arm_xscale_prpmc1100_rom.mlt15
-rw-r--r--ecos/packages/hal/arm/xscale/prpmc1100/current/include/plf_io.h63
-rw-r--r--ecos/packages/hal/arm/xscale/prpmc1100/current/include/prpmc1100.h117
-rw-r--r--ecos/packages/hal/arm/xscale/prpmc1100/current/misc/redboot_RAM.ecm114
-rw-r--r--ecos/packages/hal/arm/xscale/prpmc1100/current/misc/redboot_ROM.ecm121
-rw-r--r--ecos/packages/hal/arm/xscale/prpmc1100/current/src/prpmc1100_misc.c396
-rw-r--r--ecos/packages/hal/arm/xscale/prpmc1100/current/src/prpmc1100_pci.c164
-rw-r--r--ecos/packages/hal/arm/xscale/pxa2x0/current/ChangeLog112
-rw-r--r--ecos/packages/hal/arm/xscale/pxa2x0/current/cdl/hal_arm_xscale_pxa2x0.cdl153
-rw-r--r--ecos/packages/hal/arm/xscale/pxa2x0/current/include/hal_diag.h76
-rw-r--r--ecos/packages/hal/arm/xscale/pxa2x0/current/include/hal_pxa2x0.h658
-rw-r--r--ecos/packages/hal/arm/xscale/pxa2x0/current/include/hal_var_ints.h223
-rw-r--r--ecos/packages/hal/arm/xscale/pxa2x0/current/include/var_io.h57
-rw-r--r--ecos/packages/hal/arm/xscale/pxa2x0/current/src/hal_diag.c343
-rw-r--r--ecos/packages/hal/arm/xscale/pxa2x0/current/src/pxa2x0_misc.c417
-rw-r--r--ecos/packages/hal/arm/xscale/uE250/current/ChangeLog130
-rw-r--r--ecos/packages/hal/arm/xscale/uE250/current/cdl/hal_arm_xscale_uE250.cdl430
-rw-r--r--ecos/packages/hal/arm/xscale/uE250/current/include/hal_platform_setup.h310
-rw-r--r--ecos/packages/hal/arm/xscale/uE250/current/include/hal_plf_ints.h137
-rw-r--r--ecos/packages/hal/arm/xscale/uE250/current/include/pkgconf/mlt_arm_xscale_uE250_ram.h18
-rw-r--r--ecos/packages/hal/arm/xscale/uE250/current/include/pkgconf/mlt_arm_xscale_uE250_ram.ldi27
-rw-r--r--ecos/packages/hal/arm/xscale/uE250/current/include/pkgconf/mlt_arm_xscale_uE250_ram.mlt14
-rw-r--r--ecos/packages/hal/arm/xscale/uE250/current/include/pkgconf/mlt_arm_xscale_uE250_rom.h20
-rw-r--r--ecos/packages/hal/arm/xscale/uE250/current/include/pkgconf/mlt_arm_xscale_uE250_rom.ldi29
-rw-r--r--ecos/packages/hal/arm/xscale/uE250/current/include/pkgconf/mlt_arm_xscale_uE250_rom.mlt15
-rw-r--r--ecos/packages/hal/arm/xscale/uE250/current/include/pkgconf/mlt_arm_xscale_uE250_romram.h18
-rw-r--r--ecos/packages/hal/arm/xscale/uE250/current/include/pkgconf/mlt_arm_xscale_uE250_romram.ldi27
-rw-r--r--ecos/packages/hal/arm/xscale/uE250/current/include/pkgconf/mlt_arm_xscale_uE250_romram.mlt14
-rw-r--r--ecos/packages/hal/arm/xscale/uE250/current/include/plf_io.h240
-rw-r--r--ecos/packages/hal/arm/xscale/uE250/current/include/plf_mmap.h125
-rw-r--r--ecos/packages/hal/arm/xscale/uE250/current/include/plx.h85
-rw-r--r--ecos/packages/hal/arm/xscale/uE250/current/include/uE250.h65
-rw-r--r--ecos/packages/hal/arm/xscale/uE250/current/include/vga_support.h80
-rw-r--r--ecos/packages/hal/arm/xscale/uE250/current/misc/redboot_RAM.ecm154
-rw-r--r--ecos/packages/hal/arm/xscale/uE250/current/misc/redboot_ROM.ecm158
-rw-r--r--ecos/packages/hal/arm/xscale/uE250/current/src/banner.xpm196
-rw-r--r--ecos/packages/hal/arm/xscale/uE250/current/src/font.h431
-rw-r--r--ecos/packages/hal/arm/xscale/uE250/current/src/uE250_ide.c137
-rw-r--r--ecos/packages/hal/arm/xscale/uE250/current/src/uE250_misc.c229
-rw-r--r--ecos/packages/hal/arm/xscale/uE250/current/src/uE250_pci.c376
-rw-r--r--ecos/packages/hal/arm/xscale/uE250/current/src/uE250_pci_bitstream.h4067
-rw-r--r--ecos/packages/hal/arm/xscale/uE250/current/src/uE250_plx.c237
-rw-r--r--ecos/packages/hal/arm/xscale/uE250/current/src/uE250_plx_bitstream.h1368
-rw-r--r--ecos/packages/hal/arm/xscale/uE250/current/src/vga_support.c1448
-rw-r--r--ecos/packages/hal/arm/xscale/uE250/current/src/xilinx-load.c430
-rw-r--r--ecos/packages/hal/arm/xscale/verde/current/ChangeLog199
-rw-r--r--ecos/packages/hal/arm/xscale/verde/current/cdl/hal_arm_xscale_verde.cdl133
-rw-r--r--ecos/packages/hal/arm/xscale/verde/current/include/hal_var_ints.h142
-rw-r--r--ecos/packages/hal/arm/xscale/verde/current/include/hal_verde.h449
-rw-r--r--ecos/packages/hal/arm/xscale/verde/current/include/var_io.h112
-rw-r--r--ecos/packages/hal/arm/xscale/verde/current/src/verde_misc.c439
-rw-r--r--ecos/packages/hal/arm/xscale/verde/current/src/verde_pci.c272
-rw-r--r--ecos/packages/hal/arm/xscale/xsengine/current/ChangeLog54
-rw-r--r--ecos/packages/hal/arm/xscale/xsengine/current/cdl/hal_arm_xscale_xsengine.cdl355
-rw-r--r--ecos/packages/hal/arm/xscale/xsengine/current/include/hal_platform_setup.h355
-rw-r--r--ecos/packages/hal/arm/xscale/xsengine/current/include/pkgconf/mlt_arm_xscale_xsengine_ram.h18
-rw-r--r--ecos/packages/hal/arm/xscale/xsengine/current/include/pkgconf/mlt_arm_xscale_xsengine_ram.ldi27
-rw-r--r--ecos/packages/hal/arm/xscale/xsengine/current/include/pkgconf/mlt_arm_xscale_xsengine_ram.mlt14
-rw-r--r--ecos/packages/hal/arm/xscale/xsengine/current/include/pkgconf/mlt_arm_xscale_xsengine_rom.h20
-rw-r--r--ecos/packages/hal/arm/xscale/xsengine/current/include/pkgconf/mlt_arm_xscale_xsengine_rom.ldi29
-rw-r--r--ecos/packages/hal/arm/xscale/xsengine/current/include/pkgconf/mlt_arm_xscale_xsengine_rom.mlt15
-rw-r--r--ecos/packages/hal/arm/xscale/xsengine/current/include/plf_io.h56
-rw-r--r--ecos/packages/hal/arm/xscale/xsengine/current/include/xsengine.h62
-rw-r--r--ecos/packages/hal/arm/xscale/xsengine/current/misc/redboot_RAM.ecm125
-rw-r--r--ecos/packages/hal/arm/xscale/xsengine/current/misc/redboot_ROM.ecm123
-rw-r--r--ecos/packages/hal/arm/xscale/xsengine/current/src/xsengine_misc.c119
1128 files changed, 319343 insertions, 0 deletions
diff --git a/ecos/packages/hal/arm/aeb/current/ChangeLog b/ecos/packages/hal/arm/aeb/current/ChangeLog
new file mode 100644
index 0000000..b96b682
--- /dev/null
+++ b/ecos/packages/hal/arm/aeb/current/ChangeLog
@@ -0,0 +1,627 @@
+2009-01-31 Bart Veer <bartv@ecoscentric.com>
+
+ * cdl/hal_arm_aeb.cdl: update compiler flags for recent gcc
+
+2009-01-08 John Dallaway <john@dallaway.org.uk>
+
+ * src/flash_cksum.tcl: Specify script interpreter via /usr/bin/env.
+
+2004-04-22 Jani Monoses <jani@iv.ro>
+
+ * cdl/hal_arm_aeb.cdl :
+ Invoke tail with stricter syntax that works in latest coreutils.
+
+2003-07-18 Nick Garnett <nickg@balti.calivar.com>
+
+ * cdl/hal_arm_aeb.cdl:
+ Changed values for CYGNUM_HAL_RTC_NUMERATOR,
+ CYGNUM_HAL_RTC_DENOMINATOR and CYGNUM_HAL_RTC_PERIOD to
+ "default_value" from "calculated". This makes it easier
+ to change these values globally.
+
+2003-01-29 John Dallaway <jld@ecoscentric.com>
+
+ * src/flash_cksum.tcl: Accommodate latest Cygwin Tcl shell
+ (tclsh83.exe)
+
+2002-05-23 Jesper Skov <jskov@redhat.com>
+
+ * cdl/hal_arm_aeb.cdl: Don't run cache tests.
+
+2002-05-13 Jesper Skov <jskov@redhat.com>
+
+ * cdl/hal_arm_aeb.cdl: Removed implemntation of
+ CYGINT_HAL_VIRTUAL_VECTOR_SUPPORT_NOT_GUARANTEED.
+
+2002-04-24 Jesper Skov <jskov@redhat.com>
+
+ * cdl/hal_arm_aeb.cdl: CYGPRI_KERNEL_TESTS_DHRYSTONE_PASSES defined.
+
+2002-01-28 Jesper Skov <jskov@redhat.com>
+
+ * include/plf_io.h: Added.
+
+2002-01-23 Jesper Skov <jskov@redhat.com>
+
+ * include/hal_cache.h (HAL_UCACHE_SYNC): Fixed to use word
+ access.
+ * include/hal_platform_setup.h: Set up mapping for cache
+ region. It should fall back to SDR8, but that does not appear to
+ work for some reason.
+
+2001-10-02 Jonathan Larmour <jlarmour@redhat.com>
+
+ * cdl/hal_arm_aeb.cdl (CYGBLD_BUILD_REDBOOT_BIN): cygtclsh80 on
+ Cygwin can't deal with absolute paths correctly, so copy
+ flash_cksum.tcl into build directory.
+
+2001-04-16 Gary Thomas <gthomas@redhat.com>
+
+ * cdl/hal_arm_aeb.cdl: Add CDL to describe CPU family.
+
+2001-03-08 Jesper Skov <jskov@redhat.com>
+
+ * cdl/hal_arm_aeb.cdl: Does not guarantee virtual vector support.
+
+2001-02-13 Gary Thomas <gthomas@redhat.com>
+
+ * src/aeb_misc.c (hal_IRQ_handler): Use CYGNUM_HAL_INTERRUPT_NONE
+ for spurious interrupt.
+
+2001-02-08 Jesper Skov <jskov@redhat.com>
+
+ * cdl/hal_arm_aeb.cdl: Respect channel configuration constraints.
+
+ * src/hal_diag.c: Replace CYGSEM_HAL_DIAG_MANGLER_None with
+ CYGDBG_HAL_DIAG_TO_DEBUG_CHAN.
+
+2001-01-31 Jesper Skov <jskov@redhat.com>
+
+ * src/hal_diag.c: Replaced CYGDBG_HAL_DIAG_DISABLE_GDB_PROTOCOL
+ with CYGSEM_HAL_DIAG_MANGLER_None
+
+2001-01-26 Jesper Skov <jskov@redhat.com>
+
+ * src/hal_diag.c: Removed CYGSEM_HAL_VIRTUAL_VECTOR_DIAG check.
+ * include/plf_stub.h: Moved reset macro to
+ * include/hal_platform_ints.h: this file.
+
+2000-10-20 Jonathan Larmour <jlarmour@redhat.com>
+
+ * include/pkgconf/mlt_arm_aebC_ram.mlt:
+ * include/pkgconf/mlt_arm_aebC_rom.mlt:
+ * include/pkgconf/mlt_arm_aeb_ram.mlt:
+ * include/pkgconf/mlt_arm_aeb_rom.mlt:
+ Add heap1 section
+
+ * include/pkgconf/mlt_arm_aebC_ram.h:
+ * include/pkgconf/mlt_arm_aebC_rom.h:
+ * include/pkgconf/mlt_arm_aeb_ram.h:
+ * include/pkgconf/mlt_arm_aeb_rom.h:
+ * include/pkgconf/mlt_arm_aebC_ram.ldi:
+ * include/pkgconf/mlt_arm_aebC_rom.ldi:
+ * include/pkgconf/mlt_arm_aeb_ram.ldi:
+ * include/pkgconf/mlt_arm_aeb_rom.ldi:
+ Regenerate
+
+2000-07-03 Jesper Skov <jskov@redhat.com>
+
+ * src/hal_diag.c:
+ * src/aeb_misc.c:
+ * src/plf_stub.c: [deleted]
+ * include/plf_stub.h:
+ * include/hal_diag.h:
+ * cdl/hal_arm_aeb.cdl:
+ Changed to use virtual vectors.
+
+2000-06-21 Jonathan Larmour <jlarmour@redhat.co.uk>
+
+ * src/flash_cksum.tcl: Fix quoting when invoking TCL interpreter
+
+2000-06-18 Gary Thomas <gthomas@redhat.com>
+
+ * include/pkgconf/mlt_arm_aebC_ram.ldi:
+ * include/pkgconf/mlt_arm_aebC_ram.mlt:
+ * include/pkgconf/mlt_arm_aebC_rom.ldi:
+ * include/pkgconf/mlt_arm_aebC_rom.mlt:
+ * include/pkgconf/mlt_arm_aeb_ram.ldi:
+ * include/pkgconf/mlt_arm_aeb_ram.mlt:
+ * include/pkgconf/mlt_arm_aeb_rom.ldi:
+ * include/pkgconf/mlt_arm_aeb_rom.mlt:
+ Incorporate new fixed vectors (used on all ARM platforms).
+
+2000-06-06 Jonathan Larmour <jlarmour@redhat.co.uk>
+
+ * src/flash_cksum.tcl: Make sure it invokes the interpreter correctly
+
+2000-05-22 Jesper Skov <jskov@redhat.com>
+
+ * src/flash_cksum.tcl: Use correct intepreter.
+
+2000-04-07 Jonathan Larmour <jlarmour@redhat.co.uk>
+
+ * src/flash_cksum.tcl:
+ Apply the below change to this file now that it's moved here
+
+2000-03-12 Bart Veer <bartv@redhat.com>
+
+ * misc/flash_cksum.tcl:
+ Avoid problems with Tcl on 64-bit hosts.
+
+2000-02-29 Jonathan Larmour <jlarmour@redhat.co.uk>
+
+ * include/pkgconf/mlt_arm_aebC_ram.h:
+ * include/pkgconf/mlt_arm_aebC_ram.ldi:
+ * include/pkgconf/mlt_arm_aebC_ram.mlt:
+ * include/pkgconf/mlt_arm_aebC_rom.h:
+ * include/pkgconf/mlt_arm_aebC_rom.ldi:
+ * include/pkgconf/mlt_arm_aebC_rom.mlt:
+ * include/pkgconf/mlt_arm_aeb_ram.h:
+ * include/pkgconf/mlt_arm_aeb_ram.ldi:
+ * include/pkgconf/mlt_arm_aeb_ram.mlt:
+ * include/pkgconf/mlt_arm_aeb_rom.h:
+ * include/pkgconf/mlt_arm_aeb_rom.ldi:
+ * include/pkgconf/mlt_arm_aeb_rom.mlt:
+ Align all sections on word boundaries
+
+2000-02-18 Jonathan Larmour <jlarmour@redhat.co.uk>
+
+ * cdl/hal_arm_aeb.cdl (CYGBLD_BUILD_GDB_STUBS): When
+ building stubs, define every dependency required here rather than
+ in the template
+
+2000-02-10 Jesper Skov <jskov@redhat.com>
+
+ * include/plf_stub.h:
+ HAL_STUB_PLATFORM_STUBS_INIT->HAL_STUB_PLATFORM_INIT
+
+ * misc/STUBS_config:
+ * include/pkgconf/hal_arm_aeb.h:
+ Removed stubs as a legal startup type.
+
+2000-02-09 Jesper Skov <jskov@redhat.com>
+
+ * cdl/hal_arm_aeb.cdl: Added remaining build dependencies.
+
+2000-02-03 Jesper Skov <jskov@redhat.com>
+
+ * cdl/hal_arm_aeb.cdl: Implements stubs.
+ Has own stub code, precludes common stubs.
+
+2000-01-28 Jesper Skov <jskov@redhat.com>
+
+ * cdl/hal_arm_aeb.cdl: Changed description.
+
+2000-01-27 John Dallaway <jld@cygnus.co.uk>
+
+ * include/pkgconf/mlt_arm_aeb_rom.ldi,
+ include/pkgconf/mlt_arm_aeb_rom.mlt:
+
+ Modify memory layout to make the VMA of the user-defined
+ section 'reserved_not_mapped' absolute.
+
+2000-01-26 Jesper Skov <jskov@redhat.com>
+
+ * include/pkgconf/mlt_arm_aeb_rom.ldi: Fix bad ordering of
+ sections. [needs to be done for .mlt and .h as well]
+
+ * src/Notes_GDB_stub: Updated.
+ * src/gdb_module.c: Set date of stub on build day.
+
+ * cdl/hal_arm_aeb.cdl: Removed stubs startup.
+ Moved files to src from misc directory.
+
+2000-01-26 Jesper Skov <jskov@redhat.com>
+
+ * cdl/hal_arm_aeb.cdl: Fix CDL display.
+
+2000-01-24 Jesper Skov <jskov@cygnus.co.uk>
+
+ * cdl/hal_arm_aeb.cdl: Minor changes to stubs build rule.
+
+2000-01-24 John Dallaway <jld@cygnus.co.uk>
+
+ * cdl/*.cdl:
+
+ Remove obsolete option CYGTST_TESTING_IDENTIFIER.
+
+2000-01-20 Jesper Skov <jskov@cygnus.co.uk>
+
+ * cdl/hal_arm_aeb.cdl: Add stubs build rule.
+
+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-17 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * cdl/hal_arm_aeb.cdl: Add -mcpu=arm7di to LDFLAGS so that the correct
+ libgcc multilib is chosen - important for the AEB
+
+1999-12-20 Gary Thomas <gthomas@cygnus.co.uk>
+
+ * cdl/hal_arm_aeb.cdl: Add -Wl for linker options.
+
+1999-11-25 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/hal_diag.c: Conditionalize def of diag_buffer for only when it's
+ explicitly wanted and someone hacks the code
+ (hal_diag_write_char): Likewise
+
+1999-11-25 Gary Thomas <gthomas@cygnus.co.uk>
+
+ * include/pkgconf/mlt_arm_aeb_stubs.h:
+ * include/pkgconf/mlt_arm_aebC_stubs.h: New file.
+
+ * include/pkgconf/mlt_arm_aeb_rom.h:
+ * include/pkgconf/mlt_arm_aeb_ram.h:
+ * include/pkgconf/mlt_arm_aebC_rom.h:
+ * include/pkgconf/mlt_arm_aebC_ram.h: Update "do not edit" string.
+
+1999-11-09 Gary Thomas <gthomas@cygnus.co.uk>
+
+ * include/pkgconf/mlt_arm_aebC_ram.h:
+ * include/pkgconf/mlt_arm_aebC_rom.h:
+ * include/pkgconf/mlt_arm_aeb_ram.h:
+ * include/pkgconf/mlt_arm_aeb_rom.h: New files.
+
+ * include/pkgconf/mlt_arm_aebC_ram.ldi:
+ * include/pkgconf/mlt_arm_aebC_ram.mlt:
+ * include/pkgconf/mlt_arm_aebC_rom.ldi:
+ * include/pkgconf/mlt_arm_aebC_rom.mlt:
+ * include/pkgconf/mlt_arm_aeb_ram.ldi:
+ * include/pkgconf/mlt_arm_aeb_ram.mlt:
+ * include/pkgconf/mlt_arm_aeb_rom.ldi:
+ * include/pkgconf/mlt_arm_aeb_rom.mlt: Correct memory layout.
+
+ * src/hal_diag.c: Honor GDB_DISABLE option.
+
+1999-11-01 Jesper Skov <jskov@cygnus.co.uk>
+
+ * cdl/hal_arm_aeb.cdl: Remove define_proc comments.
+
+1999-10-28 Jesper Skov <jskov@cygnus.co.uk>
+
+ * misc/PKGconf.mak: Don't strip symbols when making .img.
+
+1999-10-27 Jesper Skov <jskov@cygnus.co.uk>
+
+ * misc/PKGconf.mak: Build UU encoded stubs per default.
+
+ * misc/STUBS_config:
+ Updated stub scripts. Allow to configure for revC.
+
+ * src/hal_diag.c: Fixed conditional include.
+
+1999-10-26 Hugo Tyson <hmt@cygnus.co.uk>
+
+ * src/hal_diag.c (hal_diag_write_char): Use new macro
+ CYG_HAL_GDB_ENTER_CRITICAL_IO_REGION and its mate to control
+ stepping through gdb $O packet output.
+
+1999-10-26 John Dallaway <jld@cygnus.co.uk>
+
+ * cdl/hal_arm_aeb.cdl:
+
+ Rename CYGBLD_GLOBAL_PREFIX to
+ CYGBLD_GLOBAL_COMMAND_PREFIX
+
+1999-10-20 Simon FitzMaurice <sdf@cygnus.co.uk>
+ * cdl/hal_arm_aeb.cdl:
+
+ Remove -Wl options from compiler flags
+
+1999-10-19 John Dallaway <jld@cygnus.co.uk>
+
+ * cdl/hal_arm_aeb.cdl:
+
+ Define cdl_options for the memory layout linker script
+ fragment and the memory layout header file.
+
+ Define cdl_options for build flags and command prefix.
+
+1999-10-18 John Dallaway <jld@cygnus.co.uk>
+
+ * cdl/hal_arm_aeb.cdl:
+
+ Require that CYGHWR_THUMB is not defined.
+
+1999-10-12 Jesper Skov <jskov@cygnus.co.uk>
+
+ * include/pkgconf/hal_arm_aeb.h: Add CT config of revision.
+ aebC instead of aebc.
+
+1999-10-08 Jesper Skov <jskov@cygnus.co.uk>
+
+ * include/hal_platform_setup.h: Disable cache for now.
+
+1999-10-07 Jesper Skov <jskov@cygnus.co.uk>
+
+ * cdl/hal_arm_aeb.cdl:
+ * include/pkgconf/hal_arm_aeb.h:
+ * include/hal_platform_setup.h:
+ Use CYGHWR_HAL_ARM_AEB_REVISION_C to select revision behavior.
+
+1999-10-06 John Dallaway <jld@cygnus.co.uk>
+
+ * cdl/hal_arm_aeb.cdl:
+ Define CYGTST_TESTING_IDENTIFIER.
+
+1999-10-05 Jesper Skov <jskov@cygnus.co.uk>
+
+ * include/hal_platform_setup.h: Added support for AEB rev C.
+
+ * src/aeb_misc.c (hal_hardware_init): Use UCACHE macros.
+ * include/hal_cache.h: Fixed cache macros.
+
+1999-09-07 Jesper Skov <jskov@cygnus.co.uk>
+
+ * include/plf_stub.h:
+ * src/plf_stub.c (hal_aeb_reset):
+ Added reset on detach.
+
+1999-08-12 John Dallaway <jld@cygnus.co.uk>
+
+ * cdl/hal_arm_aeb.cdl:
+ Define CYG_HAL_STARTUP and CYGHWR_MEMORY_LAYOUT.
+
+1999-08-08 Gary Thomas <gthomas@cygnus.co.uk>
+
+ * misc/Notes:
+ * misc/STUBS_config: Update patch for new hal.h.
+
+1999-05-25 Gary Thomas <gthomas@cygnus.co.uk>
+
+ * misc/gdb_module.c: Fix up symbols for new ABI.
+
+1999-05-24 Gary Thomas <gthomas@cygnus.co.uk>
+
+ * src/hal_diag.c: Clean up direct access code.
+
+1999-05-20 Gary Thomas <gthomas@cygnus.co.uk>
+
+ * include/pkgconf/hal_arm_aeb.h: Move RTC setup here.
+
+1999-04-13 Gary Thomas <gthomas@cygnus.co.uk>
+
+ * src/aeb_misc.c: Add some testing code using a second timer.
+
+ * include/hal_platform_setup.h: New file
+
+1999-04-08 John Dallaway <jld@cygnus.co.uk>
+
+ * include/pkgconf/mlt_arm_aeb_rom.ldi: Fix SECTION macro which
+ was missed during recent macro arguments change
+
+1999-04-08 John Dallaway <jld@cygnus.co.uk>
+
+ * include/pkgconf/*.ldi: Revised SECTION_* macro arguments to
+ avoid padded output sections (PR 19787)
+
+1999-03-23 Gary Thomas <gthomas@cygnus.co.uk>
+
+ * src/hal_diag.c (hal_diag_write_char): Make GDB 'O' transaction
+ run with interrupts disabled.
+
+1999-03-23 John Dallaway <jld@cygnus.co.uk>
+
+ * include/pkgconf/hal_arm_aeb.h: Modify display string for
+ consistency.
+
+1999-03-17 Gary Thomas <gthomas@cygnus.co.uk>
+
+ * src/hal_diag.c (hal_diag_write_char): Don't disable all
+ interrupts, just the serial port during output.
+
+ * src/aeb_misc.c: Add support for "abort" button. This works
+ like ^C if GDB break support is compiled in.
+ (hal_clock_read): Only return "reasonable" deltas - hardware
+ sometimes gives flakey/implausible counts.
+
+ * include/hal_platform_ints.h: Improve interrupt assignments.
+
+1999-03-16 Gary Thomas <gthomas@cygnus.co.uk>
+
+ * src/hal_diag.c:
+ * include/plf_stub.h:
+ * src/plf_stub.c: Add GDB break support.
+
+1999-03-12 Gary Thomas <gthomas@cygnus.co.uk>
+
+ * include/hal_cache.h (HAL_DCACHE_PURGE_ALL): Add macro.
+
+ * include/hal_platform_ints.h: Add additional interrupt sources
+ (UARTs and WATCHDOG).
+
+1999-03-11 John Dallaway <jld@cygnus.co.uk>
+
+ * include/pkgconf/*.ldi: add copyright notices
+
+1999-03-04 John Dallaway <jld@cygnus.co.uk>
+
+ * include/pkgconf/*.ldi: give all LDI files unique names so
+ that they can co-exist in an eCos build tree (PR 19184)
+ * include/pkgconf/*.mlt: give all MLT files unique names so
+ that they can co-exist in an eCos build tree (PR 19184)
+
+1999-02-26 Gary Thomas <gthomas@cygnus.co.uk>
+
+ * misc/Notes:
+ * misc/PKGconf.mak: Fix stubs build for new layout.
+
+ * misc/gdb_module.c: Update version. Build with new stubs.
+
+1999-02-20 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/hal_platform_ints.h:
+ Reorganise vector/interrupt/exception names according to purpose
+ QA improvements
+
+ * src/aeb_misc.c:
+ Change interrupt names due to above
+ QA improvements
+
+1999-02-17 John Dallaway <jld@cygnus.co.uk>
+
+ * include/pkgconf/ram.mlt: Relocate the GDB stubs
+ * include/pkgconf/ram.ldi: Relocate the GDB stubs
+ * include/pkgconf/stubs.mlt: Relocate the GDB stubs
+ * include/pkgconf/stubs.ldi: Relocate the GDB stubs
+
+1999-02-16 Jesper Skov <jskov@cygnus.co.uk>
+
+ * src/hal_diag.c (hal_diag_write_char): Changed
+ __output_gdb_string to hal_output_gdb_string.
+
+ * include/hal_stub.h: [removed]
+ * include/plf_stub.h: [added]
+ * src/hal_stub.c: [removed]
+ * src/plf_stub.c: [added]
+ * src/PKGconf.mak:
+ Changed hal_stub to plf_stub. Moved generic HAL stub code to
+ common/.../hal_stub.c.
+
+1999-02-08 John Dallaway <jld@cygnus.co.uk>
+
+ * include/pkgconf/*.mlt: New memory layout save files
+
+1999-02-08 Gary Thomas <gthomas@cygnus.co.uk>
+
+ * include/pkgconf/rom.ldi: Add segment for ROM
+
+1999-02-05 John Dallaway <jld@cygnus.co.uk>
+
+ * include/pkgconf/*.ldi: Remove LMA_EQ_VMA macro definition.
+
+1999-02-02 John Dallaway <jld@cygnus.co.uk>
+
+ * include/pkgconf/hal_arm_aeb.h: Correct the specified platform.
+
+1999-01-19 Gary Thomas <gthomas@cygnus.co.uk>
+
+ * include/pkgconf/rom.ldi: Modified for new layouts.
+
+ * include/pkgconf/stubs.ldi: New file.
+
+ * misc/gdb_module.c: Start of module changed name (due to rework
+ of exception handling in the GDB stubs).
+
+ * src/hal_stub.c: Reorg - move common routines to "arch" directory.
+
+1999-01-18 Gary Thomas <gthomas@cygnus.co.uk>
+
+ * include/pkgconf/rom.ldi: Add configurations for GDB stubs/normal ROM.
+
+1999-01-15 Gary Thomas <gthomas@cygnus.co.uk>
+
+ * misc/Notes: Update for new directory layout.
+
+ * include/hal_diag.h: Add prototype for 'hal_diag_read_char()'
+
+ * src/hal_stub.c: Take out memory trace buffer (debug only).
+
+ * src/hal_diag.c: Reduce buffer size.
+
+ * misc/PKGconf.mak (SRC): Fix path.
+
+1999-01-14 Gary Thomas <gthomas@cygnus.co.uk>
+
+ * misc/PKGconf.mak: Rename 'TESTS' to 'PROGS' due to
+ changes in "makrules.prv".
+
+ * include/pkgconf/ram.ldi:
+ * include/pkgconf/rom.ldi: New files.
+
+ * src/PKGconf.mak: Change to MLT script linking.
+
+1999-01-12 Gary Thomas <gthomas@cygnus.co.uk>
+
+ * tests/flash_cksum.tcl: Always swap to Little Endian format.
+
+ * src/aeb.ld: Change DATA address for ROM (GDB) configuration.
+
+1999-01-08 Gary Thomas <gthomas@cygnus.co.uk>
+
+ * tests/gdb_module.c: Clean up to work in all configurations.
+
+ * tests/PKGconf.mak (TESTS): Clean up.
+
+1999-01-06 Gary Thomas <gthomas@cygnus.co.uk>
+
+ * tests/PKGconf.mak: Update to use tcl checksum program.
+
+ * tests/Notes: Advise on required zeroes.
+
+ * tests/gdb_module.c: Update module name/info.
+
+1998-12-22 Gary Thomas <gthomas@cygnus.co.uk>
+
+ * include/hal_cache.h: New [moved] file.
+
+1998-12-21 Gary Thomas <gthomas@cygnus.co.uk>
+
+ * src/aeb_misc.c (hal_clock_initialize): Set timer0 scale.
+
+1998-12-20 Gary Thomas <gthomas@cygnus.co.uk>
+
+ * tests/flash_cksum.c: Handle big/little endian hosts.
+
+ * src/hal_stub.c: Remove unused '__set_mem_fault'.
+ Blink LED1 with GDB I/O (semblance of life).
+
+1998-12-18 Gary Thomas <gthomas@cygnus.co.uk>
+
+ * tests/gdb_module_ncs.c:
+ * tests/PKGconf.mak:
+ * tests/gdb_module.c: New file(s) used to build FLASH module
+
+1998-12-17 Gary Thomas <gthomas@cygnus.co.uk>
+
+ * src/aeb.ld: Change log address to use all available RAM.
+
+ * include/pkgconf/hal_arm_aeb.h: New file
+
+1998-12-16 Gary Thomas <gthomas@cygnus.co.uk>
+
+ * include/hal_platform_ints.h: New file for platform
+ interrupt specifics.
+
+ * src/hal_diag.c:
+ * src/aeb.ld:
+ * src/aeb_misc.c: Complete initial port.
+
+1998-12-15 Gary Thomas <gthomas@cygnus.co.uk>
+
+ * src/hal_stub.c:
+ * src/hal_diag.c:
+ * src/PKGconf.mak:
+ * src/aeb.ld:
+ * include/hal_stub.h:
+ * include/hal_diag.h:
+ * include/pkgconf/hal_arm_aeb.h: New file.
+
+
+//===========================================================================
+// ####GPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 2 or (at your option) any
+// later version.
+//
+// This program is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the
+// Free Software Foundation, Inc., 51 Franklin Street,
+// Fifth Floor, Boston, MA 02110-1301, USA.
+// -------------------------------------------
+// ####GPLCOPYRIGHTEND####
+//===========================================================================
diff --git a/ecos/packages/hal/arm/aeb/current/cdl/hal_arm_aeb.cdl b/ecos/packages/hal/arm/aeb/current/cdl/hal_arm_aeb.cdl
new file mode 100644
index 0000000..9c85194
--- /dev/null
+++ b/ecos/packages/hal/arm/aeb/current/cdl/hal_arm_aeb.cdl
@@ -0,0 +1,320 @@
+# ====================================================================
+#
+# hal_arm_aeb.cdl
+#
+# AEB1 board HAL package configuration data
+#
+# ====================================================================
+## ####ECOSGPLCOPYRIGHTBEGIN####
+## -------------------------------------------
+## This file is part of eCos, the Embedded Configurable Operating System.
+## Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+##
+## eCos is free software; you can redistribute it and/or modify it under
+## the terms of the GNU General Public License as published by the Free
+## Software Foundation; either version 2 or (at your option) any later
+## version.
+##
+## eCos is distributed in the hope that it will be useful, but WITHOUT
+## ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+## FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+## for more details.
+##
+## You should have received a copy of the GNU General Public License
+## along with eCos; if not, write to the Free Software Foundation, Inc.,
+## 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+##
+## As a special exception, if other files instantiate templates or use
+## macros or inline functions from this file, or you compile this file
+## and link it with other works to produce a work based on this file,
+## this file does not by itself cause the resulting work to be covered by
+## the GNU General Public License. However the source code for this file
+## must still be made available in accordance with section (3) of the GNU
+## General Public License v2.
+##
+## This exception does not invalidate any other reasons why a work based
+## on this file might be covered by the GNU General Public License.
+## -------------------------------------------
+## ####ECOSGPLCOPYRIGHTEND####
+# ====================================================================
+######DESCRIPTIONBEGIN####
+#
+# Author(s): bartv
+# Original data: gthomas
+# Contributors:
+# Date: 1999-06-13
+#
+#####DESCRIPTIONEND####
+#
+# ====================================================================
+
+cdl_package CYGPKG_HAL_ARM_AEB {
+ display "ARM AEB-1 evaluation board"
+ parent CYGPKG_HAL_ARM
+ requires ! CYGHWR_THUMB
+ define_header hal_arm_aeb.h
+ include_dir cyg/hal
+ hardware
+ description "
+ The aeb HAL package provides the support needed to run
+ eCos on a ARM AEB-1 eval board."
+
+ compile hal_diag.c aeb_misc.c
+
+ implements CYGINT_HAL_DEBUG_GDB_STUBS
+ implements CYGINT_HAL_DEBUG_GDB_STUBS_BREAK
+ implements CYGINT_HAL_VIRTUAL_VECTOR_SUPPORT
+ implements CYGINT_HAL_ARM_ARCH_ARM7
+ implements CYGINT_HAL_TESTS_NO_CACHES
+
+ define_proc {
+ puts $::cdl_system_header "#define CYGBLD_HAL_TARGET_H <pkgconf/hal_arm.h>"
+ puts $::cdl_system_header "#define CYGBLD_HAL_PLATFORM_H <pkgconf/hal_arm_aeb.h>"
+
+ puts $::cdl_header "#define CYGPRI_KERNEL_TESTS_DHRYSTONE_PASSES 100000"
+ }
+
+ 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 AEB-1 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 onboard
+ debug software such as Angel or eCos GDB stubs. Select 'rom'
+ when building a stand-alone application which will be put
+ into ROM."
+ }
+
+
+ cdl_option CYGHWR_HAL_ARM_AEB_REVISION {
+ display "AEB board revision"
+ flavor data
+ default_value {"B"}
+ legal_values {"B" "C"}
+ description "
+ The AEB-1 eval board exists in two revisions. Revision B
+ has 128kB of memory and a flawed CPU which means caches
+ must be disabled. Revision C has 256kB of memory and can
+ run with caches enabled."
+ }
+
+ 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"
+ active_if CYGPRI_HAL_VIRTUAL_VECTOR_DEBUG_CHANNEL_CONFIGURABLE
+ flavor data
+ legal_values 0 to CYGNUM_HAL_VIRTUAL_VECTOR_COMM_CHANNELS-1
+ default_value 0
+ description "
+ The AEB 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"
+ active_if CYGPRI_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_CONFIGURABLE
+ flavor data
+ legal_values 0 to CYGNUM_HAL_VIRTUAL_VECTOR_COMM_CHANNELS-1
+ default_value 0
+ description "
+ The AEB board has only one serial port. This option
+ chooses which port will be used for diagnostic output."
+ }
+
+ # 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
+ default_value 1000000000
+ }
+ cdl_option CYGNUM_HAL_RTC_DENOMINATOR {
+ display "Real-time clock denominator"
+ flavor data
+ default_value 100
+ }
+ cdl_option CYGNUM_HAL_RTC_PERIOD {
+ display "Real-time clock period"
+ flavor data
+ default_value (240000/16)
+ }
+ }
+
+ 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 { "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 { CYGBLD_GLOBAL_WARNFLAGS . CYGBLD_ARCH_CFLAGS .
+ "-mcpu=arm7di -g -O2 -ffunction-sections -fdata-sections -fno-rtti -fno-exceptions " }
+ 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 { CYGBLD_ARCH_LDFLAGS . "-mcpu=arm7di -Wl,--gc-sections -Wl,-static -g -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 CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS
+ requires ! CYGBLD_BUILD_COMMON_GDB_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. This is a bit convoluted as it involves prepending
+ the image with a special header used by the AEB firmware
+ to keep track of multiple ROM images. This header includes
+ a checksum making it necessary to build twice."
+
+ make -priority 320 {
+ <PREFIX>/bin/gdb_module.bin : <PACKAGE>/src/gdb_module.c
+ @sh -c "mkdir -p src $(dir $@)"
+ # First build version with no checksum.
+ $(CC) -c $(INCLUDE_PATH) -Wp,-MD,deps.tmp -I$(dir $<) $(CFLAGS) -o src/gdb_module_ncs.o $<
+ $(CC) $(LDFLAGS) -L$(PREFIX)/lib -Ttarget.ld -o src/gdb_module_ncs.tmp src/gdb_module_ncs.o
+ $(OBJCOPY) --strip-debug --change-addresses=0xFBFF4000 src/gdb_module_ncs.tmp src/gdb_module_ncs.img
+ $(OBJCOPY) -O binary src/gdb_module_ncs.img src/gdb_module_ncs.bin
+ @rm src/gdb_module_ncs.tmp src/gdb_module_ncs.img
+ # Prepare dependency file
+ @echo $@ ": \\" > $(notdir $@).deps
+ @echo $(wildcard $(PREFIX)/lib/*) " \\" >> $(notdir $@).deps
+ @tail -n +2 deps.tmp >> $(notdir $@).deps
+ @echo >> $(notdir $@).deps
+ @rm deps.tmp
+ # Then build version with checksum from previously built image.
+ @cp $(dir $<)flash_cksum.tcl src/
+ $(CC) -c -DCHECKSUM=`src/flash_cksum.tcl src/gdb_module_ncs.bin` $(INCLUDE_PATH) -I$(dir $<) $(CFLAGS) -o src/gdb_module.o $<
+ $(CC) $(LDFLAGS) -L$(PREFIX)/lib -Ttarget.ld -o src/gdb_module.tmp src/gdb_module.o
+ $(OBJCOPY) --strip-debug --change-addresses=0xFBFF4000 src/gdb_module.tmp $(@:.bin=.img)
+ $(OBJCOPY) -O binary $(@:.bin=.img) src/gdb_module.bin
+ uuencode src/gdb_module.bin gdb_module.bin | tr '`' ' ' > $(@:.bin=.img.UU)
+ @rm src/gdb_module.tmp src/gdb_module_ncs.bin
+ @mv src/gdb_module.bin $@
+ }
+ }
+ }
+
+ cdl_component CYGHWR_MEMORY_LAYOUT {
+ display "Memory layout"
+ flavor data
+ no_define
+ calculated { (CYGHWR_HAL_ARM_AEB_REVISION == "B" && \
+ CYG_HAL_STARTUP == "RAM") ? "arm_aeb_ram" : \
+ (CYGHWR_HAL_ARM_AEB_REVISION == "B" && \
+ CYG_HAL_STARTUP == "ROM") ? "arm_aeb_rom" : \
+ (CYGHWR_HAL_ARM_AEB_REVISION == "C" && \
+ CYG_HAL_STARTUP == "RAM") ? "arm_aebC_ram" : \
+ "arm_aebC_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 { (CYGHWR_HAL_ARM_AEB_REVISION == "B" && \
+ CYG_HAL_STARTUP == "RAM") ? "<pkgconf/mlt_arm_aeb_ram.ldi>" : \
+ (CYGHWR_HAL_ARM_AEB_REVISION == "B" && \
+ CYG_HAL_STARTUP == "ROM") ? "<pkgconf/mlt_arm_aeb_rom.ldi>" : \
+ (CYGHWR_HAL_ARM_AEB_REVISION == "C" && \
+ CYG_HAL_STARTUP == "RAM") ? "<pkgconf/mlt_arm_aebC_ram.ldi>" : \
+ "<pkgconf/mlt_arm_aebC_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 { (CYGHWR_HAL_ARM_AEB_REVISION == "B" && \
+ CYG_HAL_STARTUP == "RAM") ? "<pkgconf/mlt_arm_aeb_ram.h>" : \
+ (CYGHWR_HAL_ARM_AEB_REVISION == "B" && \
+ CYG_HAL_STARTUP == "ROM") ? "<pkgconf/mlt_arm_aeb_rom.h>" : \
+ (CYGHWR_HAL_ARM_AEB_REVISION == "C" && \
+ CYG_HAL_STARTUP == "RAM") ? "<pkgconf/mlt_arm_aebC_ram.h>" : \
+ "<pkgconf/mlt_arm_aebC_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 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."
+ }
+}
diff --git a/ecos/packages/hal/arm/aeb/current/include/hal_cache.h b/ecos/packages/hal/arm/aeb/current/include/hal_cache.h
new file mode 100644
index 0000000..c354dd4
--- /dev/null
+++ b/ecos/packages/hal/arm/aeb/current/include/hal_cache.h
@@ -0,0 +1,305 @@
+#ifndef CYGONCE_HAL_CACHE_H
+#define CYGONCE_HAL_CACHE_H
+
+//=============================================================================
+//
+// hal_cache.h
+//
+// HAL cache control API
+//
+//=============================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): nickg, gthomas
+// Contributors: nickg, gthomas
+// Date: 1998-09-28
+// 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 <cyg/infra/cyg_type.h>
+#include <cyg/hal/hal_io.h>
+
+//-----------------------------------------------------------------------------
+// Cache dimensions - one unified cache
+
+#define HAL_CACHE_UNIFIED
+
+#define HAL_UCACHE_SIZE 0x800 // Size of cache in bytes
+#define HAL_UCACHE_LINE_SIZE 4 // Size of a cache line
+#define HAL_UCACHE_WAYS 4 // Associativity of the cache
+
+#define HAL_UCACHE_SETS (HAL_UCACHE_SIZE/(HAL_UCACHE_LINE_SIZE*HAL_UCACHE_WAYS))
+
+// Cache & SRAM control
+#define CYG_DEVICE_CCR 0xFFFFA400
+#define CYG_DEVICE_LSCR 0xFFFFA404
+#define CYG_DEVICE_CACHE_MEM 0x60000800
+
+#define CCR_E 0x01 // Cache enabled
+#define CCR_S 0x02 // SRAM mode enabled
+#define CCR_F 0x04 // Flush mode enabled
+#define CCR_I 0x08 // Invalidate mode
+
+#define LCSR_E 0x01 // Local SRAM enabled
+#define LCSR_L 0x02 // Local SRAM mapped to high memory
+
+//-----------------------------------------------------------------------------
+// Global control of cache
+
+// Enable the cache
+#define HAL_UCACHE_ENABLE() \
+{ \
+ HAL_WRITE_UINT8(CYG_DEVICE_CCR, CCR_E); \
+}
+
+// Disable the cache
+#define HAL_UCACHE_DISABLE() \
+{ \
+ HAL_WRITE_UINT8(CYG_DEVICE_CCR, 0); \
+}
+
+// Invalidate the entire cache
+#define HAL_UCACHE_INVALIDATE_ALL() \
+{ \
+ register cyg_uint8 old_ccr; \
+ HAL_READ_UINT8(CYG_DEVICE_CCR, old_ccr); \
+ HAL_WRITE_UINT8(CYG_DEVICE_CCR, CCR_I); \
+ HAL_WRITE_UINT8(CYG_DEVICE_CCR, old_ccr); \
+}
+
+// Synchronize the contents of the cache with memory.
+#define HAL_UCACHE_SYNC() \
+{ \
+ register volatile cyg_uint32 *cache_SRAM = \
+ (volatile cyg_uint32*) CYG_DEVICE_CACHE_MEM; \
+ register int i; \
+ register cyg_uint8 old_ccr; \
+ HAL_READ_UINT8(CYG_DEVICE_CCR, old_ccr); \
+ HAL_WRITE_UINT8(CYG_DEVICE_CCR, CCR_F); \
+ for (i = 0; i < HAL_DCACHE_SETS; i++) { \
+ cyg_uint32 tmp = *cache_SRAM++; \
+ } \
+ HAL_WRITE_UINT8(CYG_DEVICE_CCR, CCR_I); \
+ HAL_WRITE_UINT8(CYG_DEVICE_CCR, old_ccr); \
+}
+
+// Query the state of the cache
+#define HAL_UCACHE_IS_ENABLED(_state_) \
+{ \
+ cyg_uint8 __ccr; \
+ HAL_READ_UINT8(CYG_DEVICE_CCR, __ccr); \
+ (_state_) = (CCR_E == __ccr) ? 1 : 0; \
+}
+
+// Purge contents of cache
+#define HAL_UCACHE_PURGE_ALL() HAL_UCACHE_INVALIDATE_ALL()
+
+// Set the cache refill burst size
+//#define HAL_UCACHE_BURST_SIZE(_size_)
+
+// Set the cache write mode
+//#define HAL_UCACHE_WRITE_MODE( _mode_ )
+
+//#define HAL_UCACHE_WRITETHRU_MODE 0
+//#define HAL_UCACHE_WRITEBACK_MODE 1
+
+// 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_ )
+
+// 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_ )
+
+// 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
diff --git a/ecos/packages/hal/arm/aeb/current/include/hal_diag.h b/ecos/packages/hal/arm/aeb/current/include/hal_diag.h
new file mode 100644
index 0000000..2edda5e
--- /dev/null
+++ b/ecos/packages/hal/arm/aeb/current/include/hal_diag.h
@@ -0,0 +1,89 @@
+#ifndef CYGONCE_HAL_DIAG_H
+#define CYGONCE_HAL_DIAG_H
+
+/*=============================================================================
+//
+// hal_diag.h
+//
+// HAL Support for Kernel Diagnostic Routines
+//
+//=============================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): nickg, gthomas
+// Contributors: nickg, gthomas
+// Date: 1998-09-11
+// 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_DIAG_H */
diff --git a/ecos/packages/hal/arm/aeb/current/include/hal_platform_ints.h b/ecos/packages/hal/arm/aeb/current/include/hal_platform_ints.h
new file mode 100644
index 0000000..4f7f9fe
--- /dev/null
+++ b/ecos/packages/hal/arm/aeb/current/include/hal_platform_ints.h
@@ -0,0 +1,87 @@
+#ifndef CYGONCE_HAL_PLATFORM_INTS_H
+#define CYGONCE_HAL_PLATFORM_INTS_H
+//==========================================================================
+//
+// hal_platform_ints.h
+//
+// HAL Interrupt and clock assignments for AEB-1
+//
+//==========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//==========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): gthomas
+// Contributors: gthomas
+// Date: 1999-02-20
+// Purpose: Define Interrupt support
+// Description: The interrupt specifics for the AEB-1 board/platform are
+// defined here.
+//
+// Usage: #include <cyg/hal/hal_platform_ints.h>
+// ...
+//
+//
+//####DESCRIPTIONEND####
+//
+//==========================================================================
+
+#define CYGNUM_HAL_INTERRUPT_EXT0 0
+#define CYGNUM_HAL_INTERRUPT_EXT1 1
+#define CYGNUM_HAL_INTERRUPT_EXT2 2
+#define CYGNUM_HAL_INTERRUPT_EXT3 3
+#define CYGNUM_HAL_INTERRUPT_TIMER0 6
+#define CYGNUM_HAL_INTERRUPT_TIMER1 7
+#define CYGNUM_HAL_INTERRUPT_TIMER2 8
+#define CYGNUM_HAL_INTERRUPT_UART0 9
+#define CYGNUM_HAL_INTERRUPT_UART1 10
+#define CYGNUM_HAL_INTERRUPT_UART2 11
+#define CYGNUM_HAL_INTERRUPT_WATCHDOG 12
+#define CYGNUM_HAL_INTERRUPT_unused 13
+
+#define CYGNUM_HAL_ISR_MIN 0
+#define CYGNUM_HAL_ISR_MAX 13
+#define CYGNUM_HAL_ISR_COUNT 14
+
+// The vector used by the Real time clock
+#define CYGNUM_HAL_INTERRUPT_RTC CYGNUM_HAL_INTERRUPT_TIMER0
+
+
+//----------------------------------------------------------------------------
+// Reset.
+extern void hal_aeb_reset(void);
+#define HAL_PLATFORM_RESET() hal_aeb_reset()
+
+#define HAL_PLATFORM_RESET_ENTRY 0x4018000
+
+#endif // CYGONCE_HAL_PLATFORM_INTS_H
diff --git a/ecos/packages/hal/arm/aeb/current/include/hal_platform_setup.h b/ecos/packages/hal/arm/aeb/current/include/hal_platform_setup.h
new file mode 100644
index 0000000..a9b4067
--- /dev/null
+++ b/ecos/packages/hal/arm/aeb/current/include/hal_platform_setup.h
@@ -0,0 +1,109 @@
+#ifndef CYGONCE_HAL_PLATFORM_SETUP_H
+#define CYGONCE_HAL_PLATFORM_SETUP_H
+
+/*=============================================================================
+//
+// hal_platform_setup.h
+//
+// Platform specific support for HAL (assembly code)
+//
+//=============================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): gthomas
+// Contributors: gthomas
+// Date: 1999-04-13
+// Purpose: ARM/AEB-1 platform specific support routines
+// Description:
+// Usage: #include <cyg/hal/hal_platform_setup.h>
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================*/
+
+// From <cyg/hal/hal_cache.h> Need to make that file assembly safe.
+#define CYG_DEVICE_CCR 0xFFFFA400
+#define CCR_I 0x08 // Invalidate mode
+
+#if CYGNUM_HAL_COMMON_INTERRUPTS_STACK_SIZE==4096
+// Override default to a more sensible value
+#undef CYGNUM_HAL_COMMON_INTERRUPTS_STACK_SIZE
+#define CYGNUM_HAL_COMMON_INTERRUPTS_STACK_SIZE 2048
+#endif
+
+#ifdef CYGHWR_HAL_ARM_AEB_REVISION_C
+// AEB rev C has 256kB of memory. Cache is working (set cachable)
+#define AEB_SRAM .long 0xFFFFA008,0x00008000,0x00048000,0x00007c04
+#define AEB_BAD .long 0xFFFFA00C,0x00048000,0x01000000,0x00000000
+#define AEB_CACHE .long 0xFFFFA010,0x60000000,0x61000000,0x00007801
+#else
+// AEB rev B has 128kB of memory. Cache is broken (clear cachable)
+#define AEB_SRAM .long 0xFFFFA008,0x00008000,0x00028000,0x00007804
+#define AEB_BAD .long 0xFFFFA00C,0x00028000,0x01000000,0x00000000
+#define AEB_CACHE .long 0xFFFFA010,0x60000000,0x61000000,0x00007801
+#endif
+
+#ifdef CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS
+#define PLATFORM_SETUP1 \
+ ldr r1,=CYG_DEVICE_CCR ;\
+ mov r2,#CCR_I ;\
+ strb r2,[r1,#0] /* invalidate... */ ;\
+ mov r2,#0 ;\
+ strb r2,[r1,#0] /* and disable the cache. */ ;\
+ ldr r1,=segment_register_setups ;\
+10: ldr r2,[r1,#0] /* segment address */ ;\
+ cmp r2,#0 ;\
+ beq 20f ;\
+ ldr r3,[r1,#4] /* segment start */ ;\
+ str r3,[r2,#0x00] ;\
+ ldr r3,[r1,#8] /* segment end */ ;\
+ str r3,[r2,#0x20] ;\
+ ldr r3,[r1,#12] /* segment flags */ ;\
+ str r3,[r2,#0x40] ;\
+ add r1,r1,#16 /* next segment */ ;\
+ b 10b ;\
+segment_register_setups: ;\
+ AEB_SRAM /* segment 2 */ ;\
+ AEB_BAD /* segment 3 */ ;\
+ AEB_CACHE /* segment 1 */ ;\
+ .long 0 ;\
+20:
+#else
+#define PLATFORM_SETUP1
+#endif
+
+/*---------------------------------------------------------------------------*/
+/* end of hal_platform_setup.h */
+#endif /* CYGONCE_HAL_PLATFORM_SETUP_H */
diff --git a/ecos/packages/hal/arm/aeb/current/include/pkgconf/mlt_arm_aebC_ram.h b/ecos/packages/hal/arm/aeb/current/include/pkgconf/mlt_arm_aebC_ram.h
new file mode 100644
index 0000000..bfac8ec
--- /dev/null
+++ b/ecos/packages/hal/arm/aeb/current/include/pkgconf/mlt_arm_aebC_ram.h
@@ -0,0 +1,17 @@
+// eCos memory layout - Fri Oct 20 05:46:39 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 (0)
+#define CYGMEM_REGION_ram_SIZE (0x48000)
+#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 (0x48000 - (size_t) CYG_LABEL_NAME (__heap1))
diff --git a/ecos/packages/hal/arm/aeb/current/include/pkgconf/mlt_arm_aebC_ram.ldi b/ecos/packages/hal/arm/aeb/current/include/pkgconf/mlt_arm_aebC_ram.ldi
new file mode 100644
index 0000000..460ed45
--- /dev/null
+++ b/ecos/packages/hal/arm/aeb/current/include/pkgconf/mlt_arm_aebC_ram.ldi
@@ -0,0 +1,27 @@
+// eCos memory layout - Fri Oct 20 05:46:39 2000
+
+// This is a generated file - do not edit
+
+#include <cyg/infra/cyg_type.inc>
+
+MEMORY
+{
+ ram : ORIGIN = 0, LENGTH = 0x48000
+}
+
+SECTIONS
+{
+ SECTIONS_BEGIN
+ SECTION_fixed_vectors (ram, 0x20, LMA_EQ_VMA)
+ SECTION_rom_vectors (ram, 0xc000, 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)
+ CYG_LABEL_DEFN(__heap1) = ALIGN (0x8);
+ SECTIONS_END
+}
diff --git a/ecos/packages/hal/arm/aeb/current/include/pkgconf/mlt_arm_aebC_ram.mlt b/ecos/packages/hal/arm/aeb/current/include/pkgconf/mlt_arm_aebC_ram.mlt
new file mode 100644
index 0000000..2017fef
--- /dev/null
+++ b/ecos/packages/hal/arm/aeb/current/include/pkgconf/mlt_arm_aebC_ram.mlt
@@ -0,0 +1,13 @@
+version 0
+region ram 0 48000 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 c000 c000 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 1 0 1 heap1 heap1 !
+section heap1 0 8 0 0 0 0 0 0 !
diff --git a/ecos/packages/hal/arm/aeb/current/include/pkgconf/mlt_arm_aebC_rom.h b/ecos/packages/hal/arm/aeb/current/include/pkgconf/mlt_arm_aebC_rom.h
new file mode 100755
index 0000000..3d86c9c
--- /dev/null
+++ b/ecos/packages/hal/arm/aeb/current/include/pkgconf/mlt_arm_aebC_rom.h
@@ -0,0 +1,20 @@
+// eCos memory layout - Fri Oct 20 05:46:21 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 (0)
+#define CYGMEM_REGION_ram_SIZE (0x48000)
+#define CYGMEM_REGION_ram_ATTR (CYGMEM_REGION_ATTR_R | CYGMEM_REGION_ATTR_W)
+#define CYGMEM_REGION_rom (0x4018000)
+#define CYGMEM_REGION_rom_SIZE (0x8000)
+#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 (0x48000 - (size_t) CYG_LABEL_NAME (__heap1))
diff --git a/ecos/packages/hal/arm/aeb/current/include/pkgconf/mlt_arm_aebC_rom.ldi b/ecos/packages/hal/arm/aeb/current/include/pkgconf/mlt_arm_aebC_rom.ldi
new file mode 100644
index 0000000..db695c8
--- /dev/null
+++ b/ecos/packages/hal/arm/aeb/current/include/pkgconf/mlt_arm_aebC_rom.ldi
@@ -0,0 +1,28 @@
+// eCos memory layout - Fri Oct 20 05:46:21 2000
+
+// This is a generated file - do not edit
+
+#include <cyg/infra/cyg_type.inc>
+
+MEMORY
+{
+ ram : ORIGIN = 0, LENGTH = 0x48000
+ rom : ORIGIN = 0x4018000, LENGTH = 0x8000
+}
+
+SECTIONS
+{
+ SECTIONS_BEGIN
+ SECTION_rom_vectors (rom, 0x4018000, 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)
+ CYG_LABEL_DEFN(__heap1) = ALIGN (0x8);
+ SECTIONS_END
+}
diff --git a/ecos/packages/hal/arm/aeb/current/include/pkgconf/mlt_arm_aebC_rom.mlt b/ecos/packages/hal/arm/aeb/current/include/pkgconf/mlt_arm_aebC_rom.mlt
new file mode 100644
index 0000000..f880d2d
--- /dev/null
+++ b/ecos/packages/hal/arm/aeb/current/include/pkgconf/mlt_arm_aebC_rom.mlt
@@ -0,0 +1,14 @@
+version 0
+region ram 0 48000 0 !
+region rom 4018000 8000 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 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 4018000 4018000 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 !
diff --git a/ecos/packages/hal/arm/aeb/current/include/pkgconf/mlt_arm_aeb_ram.h b/ecos/packages/hal/arm/aeb/current/include/pkgconf/mlt_arm_aeb_ram.h
new file mode 100755
index 0000000..7175db3
--- /dev/null
+++ b/ecos/packages/hal/arm/aeb/current/include/pkgconf/mlt_arm_aeb_ram.h
@@ -0,0 +1,17 @@
+// eCos memory layout - Fri Oct 20 05:45:39 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 (0)
+#define CYGMEM_REGION_ram_SIZE (0x28000)
+#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 (0x28000 - (size_t) CYG_LABEL_NAME (__heap1))
diff --git a/ecos/packages/hal/arm/aeb/current/include/pkgconf/mlt_arm_aeb_ram.ldi b/ecos/packages/hal/arm/aeb/current/include/pkgconf/mlt_arm_aeb_ram.ldi
new file mode 100644
index 0000000..d3a3fd6
--- /dev/null
+++ b/ecos/packages/hal/arm/aeb/current/include/pkgconf/mlt_arm_aeb_ram.ldi
@@ -0,0 +1,27 @@
+// eCos memory layout - Fri Oct 20 05:45:39 2000
+
+// This is a generated file - do not edit
+
+#include <cyg/infra/cyg_type.inc>
+
+MEMORY
+{
+ ram : ORIGIN = 0, LENGTH = 0x28000
+}
+
+SECTIONS
+{
+ SECTIONS_BEGIN
+ SECTION_fixed_vectors (ram, 0x20, LMA_EQ_VMA)
+ SECTION_rom_vectors (ram, 0xc000, 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)
+ CYG_LABEL_DEFN(__heap1) = ALIGN (0x8);
+ SECTIONS_END
+}
diff --git a/ecos/packages/hal/arm/aeb/current/include/pkgconf/mlt_arm_aeb_ram.mlt b/ecos/packages/hal/arm/aeb/current/include/pkgconf/mlt_arm_aeb_ram.mlt
new file mode 100644
index 0000000..f503e0e
--- /dev/null
+++ b/ecos/packages/hal/arm/aeb/current/include/pkgconf/mlt_arm_aeb_ram.mlt
@@ -0,0 +1,13 @@
+version 0
+region ram 0 28000 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 c000 c000 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 1 0 1 heap1 heap1 !
+section heap1 0 8 0 0 0 0 0 0 !
diff --git a/ecos/packages/hal/arm/aeb/current/include/pkgconf/mlt_arm_aeb_rom.h b/ecos/packages/hal/arm/aeb/current/include/pkgconf/mlt_arm_aeb_rom.h
new file mode 100755
index 0000000..cb21147
--- /dev/null
+++ b/ecos/packages/hal/arm/aeb/current/include/pkgconf/mlt_arm_aeb_rom.h
@@ -0,0 +1,20 @@
+// eCos memory layout - Fri Oct 20 05:46:01 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 (0)
+#define CYGMEM_REGION_ram_SIZE (0x28000)
+#define CYGMEM_REGION_ram_ATTR (CYGMEM_REGION_ATTR_R | CYGMEM_REGION_ATTR_W)
+#define CYGMEM_REGION_rom (0x4018000)
+#define CYGMEM_REGION_rom_SIZE (0x8000)
+#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 (0x28000 - (size_t) CYG_LABEL_NAME (__heap1))
diff --git a/ecos/packages/hal/arm/aeb/current/include/pkgconf/mlt_arm_aeb_rom.ldi b/ecos/packages/hal/arm/aeb/current/include/pkgconf/mlt_arm_aeb_rom.ldi
new file mode 100644
index 0000000..c2a4ab5
--- /dev/null
+++ b/ecos/packages/hal/arm/aeb/current/include/pkgconf/mlt_arm_aeb_rom.ldi
@@ -0,0 +1,28 @@
+// eCos memory layout - Fri Oct 20 05:46:01 2000
+
+// This is a generated file - do not edit
+
+#include <cyg/infra/cyg_type.inc>
+
+MEMORY
+{
+ ram : ORIGIN = 0, LENGTH = 0x28000
+ rom : ORIGIN = 0x4018000, LENGTH = 0x8000
+}
+
+SECTIONS
+{
+ SECTIONS_BEGIN
+ SECTION_rom_vectors (rom, 0x4018000, 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)
+ CYG_LABEL_DEFN(__heap1) = ALIGN (0x8);
+ SECTIONS_END
+}
diff --git a/ecos/packages/hal/arm/aeb/current/include/pkgconf/mlt_arm_aeb_rom.mlt b/ecos/packages/hal/arm/aeb/current/include/pkgconf/mlt_arm_aeb_rom.mlt
new file mode 100644
index 0000000..2bdb7c0
--- /dev/null
+++ b/ecos/packages/hal/arm/aeb/current/include/pkgconf/mlt_arm_aeb_rom.mlt
@@ -0,0 +1,14 @@
+version 0
+region ram 0 28000 0 !
+region rom 4018000 8000 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 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 4018000 4018000 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 !
diff --git a/ecos/packages/hal/arm/aeb/current/include/plf_io.h b/ecos/packages/hal/arm/aeb/current/include/plf_io.h
new file mode 100644
index 0000000..c3a55b8
--- /dev/null
+++ b/ecos/packages/hal/arm/aeb/current/include/plf_io.h
@@ -0,0 +1,57 @@
+#ifndef CYGONCE_HAL_ARM_AEB_PLF_IO_H
+#define CYGONCE_HAL_ARM_AEB_PLF_IO_H
+
+/*=============================================================================
+//
+// plf_io.h
+//
+// Platform specific support (register layout, etc)
+//
+//=============================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jskov
+// Contributors: jskov
+// Date: 2002-01-28
+// Purpose: Platform specific support routines
+// Description:
+// Usage: #include <cyg/hal/hal_io.h>
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================*/
+
+#endif // CYGONCE_HAL_ARM_AEB_PLF_IO_H
+// EOF plf_io.h
diff --git a/ecos/packages/hal/arm/aeb/current/include/plf_stub.h b/ecos/packages/hal/arm/aeb/current/include/plf_stub.h
new file mode 100644
index 0000000..ce90142
--- /dev/null
+++ b/ecos/packages/hal/arm/aeb/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.
+//
+//=============================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jskov
+// Contributors:jskov, gthomas
+// Date: 1999-02-15
+// Purpose: Platform HAL stub support for ARM/AEB boards.
+// Usage: #include <cyg/hal/plf_stub.h>
+//
+//####DESCRIPTIONEND####
+//
+//=============================================================================
+
+#include <pkgconf/hal.h>
+#include <pkgconf/hal_arm_aeb.h>
+
+#ifdef CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS
+
+#include <cyg/infra/cyg_type.h> // CYG_UNUSED_PARAM
+
+#include <cyg/hal/arm_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.
+#define HAL_STUB_PLATFORM_INIT() CYG_EMPTY_STATEMENT
+
+#endif // ifdef CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS
+
+//-----------------------------------------------------------------------------
+#endif // CYGONCE_HAL_PLF_STUB_H
+// End of plf_stub.h
diff --git a/ecos/packages/hal/arm/aeb/current/src/Notes_GDB_stub b/ecos/packages/hal/arm/aeb/current/src/Notes_GDB_stub
new file mode 100644
index 0000000..971f3ef
--- /dev/null
+++ b/ecos/packages/hal/arm/aeb/current/src/Notes_GDB_stub
@@ -0,0 +1,236 @@
+===========================================================================
+## ####ECOSGPLCOPYRIGHTBEGIN####
+## -------------------------------------------
+## This file is part of eCos, the Embedded Configurable Operating System.
+## Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+##
+## eCos is free software; you can redistribute it and/or modify it under
+## the terms of the GNU General Public License as published by the Free
+## Software Foundation; either version 2 or (at your option) any later
+## version.
+##
+## eCos is distributed in the hope that it will be useful, but WITHOUT
+## ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+## FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+## for more details.
+##
+## You should have received a copy of the GNU General Public License
+## along with eCos; if not, write to the Free Software Foundation, Inc.,
+## 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+##
+## As a special exception, if other files instantiate templates or use
+## macros or inline functions from this file, or you compile this file
+## and link it with other works to produce a work based on this file,
+## this file does not by itself cause the resulting work to be covered by
+## the GNU General Public License. However the source code for this file
+## must still be made available in accordance with section (3) of the GNU
+## General Public License v2.
+##
+## This exception does not invalidate any other reasons why a work based
+## on this file might be covered by the GNU General Public License.
+## -------------------------------------------
+## ####ECOSGPLCOPYRIGHTEND####
+===========================================================================
+
+1999-01-05, revised 1999-03-11, revised 2000.01.26
+
+How to build and install the GDB module on the AEB-1
+====================================================
+
+Overview
+--------
+
+The ARM AEB-1 comes with tools in ROM. These include a simple FLASH
+management tool and the Angel (R) monitor. eCos for the ARM AEB-1
+comes with GDB stubs suitable for programming into the onboard FLASH.
+GDB is the preferred debug environment for eCos, but Angel must be
+used to initially install the GDB stubs.
+
+Once this bootstrapping is done, you can use GDB to load and debug
+programs on the AEB-1 board.
+
+The following steps will have you:
+
+* talk to the AEB-1 board with a terminal emulator (or a real
+ terminal!)
+
+* enable ARM's Angel ROM monitor
+
+* use GDB with Angel or the Angel ROM monitor to download a
+ configuration of eCos with GDB stubs which will act as a ROM monitor
+
+* talk to the AEB-1 with a terminal emulator again, and tell it to
+ write the new module to flash
+
+* tell the board to use this new monitor, and then hook GDB up to it
+ for real debugging
+
+Talking to the board
+--------------------
+
+Connect a terminal or computer's serial port to the ARM AEB-1. On a
+PC with a 9-pin serial port, you can use the cable shipped by ARM with
+no modification.
+
+Set the terminal or terminal emulator to 9600N1 (9600 baud, no parity,
+1 stop bit).
+
+Reset the board by pressing the little reset button on the top. You
+will see the following text:
+
+ ARM Evaluation Board Boot Monitor 0.01 (19 APR 1998)
+ Press ENTER within 2 seconds to stop autoboot
+
+Press ENTER quickly, and you will get the boot prompt:
+
+ Boot:
+
+
+Downloading the GDB stubs
+-------------------------
+
+Run the angel monitor by typing the following at the Boot: prompt:
+
+ Boot: plugin angel
+ Boot: angel
+
+Then exit the terminal emulator and start up gdb with the GDB module:
+
+ $ arm-elf-gdb -nw loaders/arm-aeb/gdb_module.img
+ (gdb) set remotebaud 9600
+ (gdb) target rdi s=<YOUR SERIAL PORT>
+
+On Windows, the serial port could be com1, com2, etc. On a UNIX or
+Linux system, the serial port would be /dev/cua0 or /dev/cua1.
+Examples are:
+
+ (gdb) target rdi s=com1
+ (gdb) target rdi s=/dev/cua0
+
+Finally, load the GDB stubs image:
+
+ (gdb) load
+ Loading section .rom_vectors, size 0x44 lma 0xc000
+ Loading section .text, size 0x3544 lma 0xc044
+ Loading section .rodata, size 0x164 lma 0xf588
+ Loading section .data, size 0x110 lma 0xf6ec
+ Start address 0xc044 , load size 14332
+ Transfer rate: 12739 bits/sec.
+
+(Note that the sizes may not exactly match the ones you see on your
+system.)
+
+Once the loading is done, quit GDB:
+
+ (gdb) quit
+
+
+Activating the GDB stubs
+------------------------
+
+Connect a terminal emulator to the board again, reset the board, and
+type enter within two seconds to get the Boot: prompt. This is the
+same thing you did at the beginning of this procedure.
+
+Commit the GDB stubs module to flash:
+
+ Boot: flashwrite 4018000 C000 8000
+
+Verify that the eCos/"GDB stubs" module is now added in the list of
+modules in the board:
+
+ Boot: rommodules
+
+You should see the following output:
+
+ Header Base Limit
+ 04000004 04000000 040034a8 BootStrap 1.00 (14 Aug 1998)
+ 04003a74 04003800 04003bc0 Production Test 1.00 (13 Aug 1998)
+ 0400e4f4 04004000 0400e60f Angel 1.02 (12 MAY 1998)
+ 0401ac00 04018000 0401aed8 eCos 1.2 (26 Feb 1999) GDB stubs
+
+Now make the eCos/"GDB stubs" module be the default monitor:
+
+ Boot: plugin eCos
+
+
+Running and debugging an application
+------------------------------------
+
+Configure eCos from scratch for the ARM AEB-1 platform, and build your
+application. Remember that the AEB-1 board only has 128K of RAM.
+
+Exit from the terminal emulator (you will not need it anymore for
+normal operations), and run gdb:
+
+ $ arm-elf-gdb -nw executable
+ (gdb) set remotebaud 38400
+ (gdb) target remote <YOUR SERIAL PORT>
+ (gdb) load
+
+You can now run your program in the usual way under GDB'S control
+
+Notice that the GDB stub runs at 38400 baud.
+
+
+Building the GDB stubs
+----------------------
+
+We provide the GDB stubs image in the directory
+loaders/arm-aeb/gdb_module.img, but here are instructions on how to
+rebuild them if you should ever need to.
+
+ % ecosconfig new aeb stubs
+ % ecosconfig tree
+ % make
+
+The newlt built files are installed in ./bin/install.
+
+
+Alternate way of loading the initial stubs
+------------------------------------------
+
+Using the AEB-1 module tool, install the GDB stubs from the provided
+".UU" file.
+
+>>> This is an annotated 'terminal' session with the AEB-1 monitor:
+
+ARM Evaluation Board Boot Monitor 0.01 (19 APR 1998)
+Press ENTER within 2 seconds to stop autoboot
+Boot: help
+Module is BootStrap 1.00 (14 Aug 1998)
+
+Help is available on:
+ Help Modules ROMModules UnPlug PlugIn
+ Kill SetEnv UnSetEnv PrintEnv DownLoad
+ Go GoS Boot PC FlashWrite
+ FlashLoad FlashErase
+
+Boot: download c000
+Ready to download. Use 'transmit' option on terminal emulator to download file.
+
+ ... at this point, I told my terminal emulator (minicom) to download
+ the ASCII file gdb_module.img.UU (probably needs a different name
+ on Win/NT) I had to enter ^D when the download was complete to
+ get the monitor to come back.
+
+Loaded file gdb_module.img.raw at address 0000c000, size = 13905
+
+Boot: flashwrite 4018000 c000 8000
+
+ As above, this command actually programs the FLASH.
+
+Boot: rommodules
+Header Base Limit
+04000004 04000000 040034a8 BootStrap 1.00 (14 Aug 1998)
+04003a74 04003800 04003bc0 Production Test 1.00 (13 Aug 1998)
+0400e4f4 04004000 0400e60f Angel 1.02 (12 MAY 1998)
+0401b608 04018000 0401b844 eCos 1.3 (Jan 26 2000) GDB stubs
+
+ This verifies that the eCos GDB stubs are available in FLASH.
+
+Boot: plugin ecos
+
+ This makes the eCos GDB stubs the default "monitor." When reset the
+ AEB-1 will start the GDB stubs, after the initial 2 second escape
+ period.
diff --git a/ecos/packages/hal/arm/aeb/current/src/aeb_misc.c b/ecos/packages/hal/arm/aeb/current/src/aeb_misc.c
new file mode 100644
index 0000000..6b3a226
--- /dev/null
+++ b/ecos/packages/hal/arm/aeb/current/src/aeb_misc.c
@@ -0,0 +1,467 @@
+//==========================================================================
+//
+// aeb_misc.c
+//
+// HAL misc board support code for ARM AEB-1
+//
+//==========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//==========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): gthomas
+// Contributors: gthomas
+// Date: 1999-02-20
+// Purpose: HAL board support
+// Description: Implementations of HAL board interfaces
+//
+//####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_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> // necessary?
+#include <cyg/hal/hal_cache.h>
+#include <cyg/hal/hal_if.h> // calling interface
+#include <cyg/hal/hal_misc.h> // helper functions
+#ifdef CYGDBG_HAL_DEBUG_GDB_BREAK_SUPPORT
+#include <cyg/hal/drv_api.h> // HAL ISR support
+#endif
+
+/*------------------------------------------------------------------------*/
+// On-board timer
+/*------------------------------------------------------------------------*/
+
+// Timer registers
+#define CYG_DEVICE_TIMER0 ((volatile cyg_uint8 *)0xFFFF1800)
+#define CYG_DEVICE_TIMER1 ((volatile cyg_uint8 *)0xFFFF1804)
+#define CYG_DEVICE_TIMER2 ((volatile cyg_uint8 *)0xFFFF1808)
+#define CYG_DEVICE_TIMER_CTL ((volatile cyg_uint8 *)0xFFFF180C)
+#define CYG_DEVICE_IOCR ((volatile cyg_uint32 *)0xFFFFA410)
+#define CYG_DEVICE_CPM_PCSR ((volatile cyg_uint32 *)0xFFFFAC04)
+#define CYG_DEVICE_CPM_CT0CCR ((volatile cyg_uint32 *)0xFFFFAC18)
+#define CYG_DEVICE_CPM_CT1CCR ((volatile cyg_uint32 *)0xFFFFAC1C)
+#define CYG_DEVICE_CPM_CT2CCR ((volatile cyg_uint32 *)0xFFFFAC20)
+
+#define IOCR_CT0G (0x3<<9)
+#define IOCR_CT0G_EXTERNAL (0x0<<9)
+#define IOCR_CT0G_PWM0 (0x1<<9)
+#define IOCR_CT0G_LOW (0x2<<9)
+#define IOCR_CT0G_HIGH (0x3<<9)
+
+#define IOCR_CT1G (0x3<<11)
+#define IOCR_CT1G_EXTERNAL (0x0<<11)
+#define IOCR_CT1G_PWM0 (0x1<<11)
+#define IOCR_CT1G_LOW (0x2<<11)
+#define IOCR_CT1G_HIGH (0x3<<11)
+
+#define IOCR_CT2G (0x3<<13)
+#define IOCR_CT2G_EXTERNAL (0x0<<13)
+#define IOCR_CT2G_PWM0 (0x1<<13)
+#define IOCR_CT2G_LOW (0x2<<13)
+#define IOCR_CT2G_HIGH (0x3<<13)
+
+#define TIMER_CTL_TYPE (0x1<<0)
+#define TIMER_CTL_TYPE_BIN (0x0<<0)
+#define TIMER_CTL_TYPE_BCD (0x1<<0)
+#define TIMER_CTL_MODE (0x7<<1)
+#define TIMER_CTL_MODE_IOTC (0x0<<1) // Interrupt on terminal count
+#define TIMER_CTL_MODE_HROS (0x1<<1) // Hardware retriggerable one-shot
+#define TIMER_CTL_MODE_RG (0x2<<1) // Rate generator
+#define TIMER_CTL_MODE_SWG (0x3<<1) // Square-wave generator
+#define TIMER_CTL_MODE_STS (0x4<<1) // Software triggered strobe
+#define TIMER_CTL_MODE_HTS (0x5<<1) // Hardware triggered strobe
+#define TIMER_CTL_RW (0x3<<4)
+#define TIMER_CTL_RW_LATCH (0x0<<4) // Counter latch
+#define TIMER_CTL_RW_LSB (0x1<<4)
+#define TIMER_CTL_RW_MSB (0x2<<4)
+#define TIMER_CTL_RW_BOTH (0x3<<4)
+#define TIMER_CTL_SC (0x3<<6)
+#define TIMER_CTL_SC_CTR0 (0x0<<6)
+#define TIMER_CTL_SC_CTR1 (0x1<<6)
+#define TIMER_CTL_SC_CTR2 (0x2<<6)
+#define TIMER_CTL_SC_RBC (0x3<<6)
+
+// Interrupt controller registers
+#define CYG_DEVICE_ICTL_ICR0 ((volatile cyg_uint32 *)0xFFFFA800)
+#define CYG_DEVICE_ICTL_ICR1 ((volatile cyg_uint32 *)0xFFFFA804)
+#define CYG_DEVICE_ICTL_ICLR ((volatile cyg_uint32 *)0xFFFFA808)
+#define CYG_DEVICE_ICTL_IRQER ((volatile cyg_uint32 *)0xFFFFA80C)
+#define CYG_DEVICE_ICTL_FIQER ((volatile cyg_uint32 *)0xFFFFA810)
+#define CYG_DEVICE_ICTL_IRQSR ((volatile cyg_uint32 *)0xFFFFA814)
+#define CYG_DEVICE_ICTL_FIQSR ((volatile cyg_uint32 *)0xFFFFA818)
+#define CYG_DEVICE_ICTL_IPR ((volatile cyg_uint32 *)0xFFFFA81C)
+
+#define ICTL_ICR0_CH0 (0x3<<0)
+#define ICTL_ICR0_CH0_HL (0x1<<0)
+#define ICTL_ICR0_CH0_HL_AL (0x0<<0) // Active low
+#define ICTL_ICR0_CH0_HL_AH (0x1<<0) // Active high
+#define ICTL_ICR0_CH0_EL (0x2<<0)
+#define ICTL_ICR0_CH0_EL_LT (0x0<<0) // Level triggered
+#define ICTL_ICR0_CH0_EL_ET (0x2<<0) // Edge triggered
+#define ICTL_ICR0_CH1 (0x3<<2)
+#define ICTL_ICR0_CH1_HL (0x1<<2)
+#define ICTL_ICR0_CH1_HL_AL (0x0<<2) // Active low
+#define ICTL_ICR0_CH1_HL_AH (0x1<<2) // Active high
+#define ICTL_ICR0_CH1_EL (0x2<<2)
+#define ICTL_ICR0_CH1_EL_LT (0x0<<2) // Level triggered
+#define ICTL_ICR0_CH1_EL_ET (0x2<<2) // Edge triggered
+#define ICTL_ICR0_CH2 (0x3<<4)
+#define ICTL_ICR0_CH2_HL (0x1<<4)
+#define ICTL_ICR0_CH2_HL_AL (0x0<<4) // Active low
+#define ICTL_ICR0_CH2_HL_AH (0x1<<4) // Active high
+#define ICTL_ICR0_CH2_EL (0x2<<4)
+#define ICTL_ICR0_CH2_EL_LT (0x0<<4) // Level triggered
+#define ICTL_ICR0_CH2_EL_ET (0x2<<4) // Edge triggered
+#define ICTL_ICR0_CH3 (0x3<<6)
+#define ICTL_ICR0_CH3_HL (0x1<<6)
+#define ICTL_ICR0_CH3_HL_AL (0x0<<6) // Active low
+#define ICTL_ICR0_CH3_HL_AH (0x1<<6) // Active high
+#define ICTL_ICR0_CH3_EL (0x2<<6)
+#define ICTL_ICR0_CH3_EL_LT (0x0<<6) // Level triggered
+#define ICTL_ICR0_CH3_EL_ET (0x2<<6) // Edge triggered
+#define ICTL_ICR0_CH4 (0x3<<8)
+#define ICTL_ICR0_CH4_HL (0x1<<8)
+#define ICTL_ICR0_CH4_HL_AL (0x0<<8) // Active low
+#define ICTL_ICR0_CH4_HL_AH (0x1<<8) // Active high
+#define ICTL_ICR0_CH4_EL (0x2<<8)
+#define ICTL_ICR0_CH4_EL_LT (0x0<<8) // Level triggered
+#define ICTL_ICR0_CH4_EL_ET (0x2<<8) // Edge triggered
+#define ICTL_ICR0_CH5 (0x3<<10)
+#define ICTL_ICR0_CH5_HL (0x1<<10)
+#define ICTL_ICR0_CH5_HL_AL (0x0<<10) // Active low
+#define ICTL_ICR0_CH5_HL_AH (0x1<<10) // Active high
+#define ICTL_ICR0_CH5_EL (0x2<<10)
+#define ICTL_ICR0_CH5_EL_LT (0x0<<10) // Level triggered
+#define ICTL_ICR0_CH5_EL_ET (0x2<<10) // Edge triggered
+#define ICTL_ICR1_CH6 (0x1<<0)
+#define ICTL_ICR1_CH6_HL (0x1<<0)
+#define ICTL_ICR1_CH6_HL_AL (0x0<<0) // Active low
+#define ICTL_ICR1_CH6_HL_AH (0x1<<0) // Active high
+#define ICTL_ICR1_CH7 (0x1<<1)
+#define ICTL_ICR1_CH7_HL (0x1<<1)
+#define ICTL_ICR1_CH7_HL_AL (0x0<<1) // Active low
+#define ICTL_ICR1_CH7_HL_AH (0x1<<1) // Active high
+#define ICTL_ICR1_CH8 (0x1<<2)
+#define ICTL_ICR1_CH8_HL (0x1<<2)
+#define ICTL_ICR1_CH8_HL_AL (0x0<<2) // Active low
+#define ICTL_ICR1_CH8_HL_AH (0x1<<2) // Active high
+
+// Clock control registers
+#define PCSR_CT0CS (1<<3)
+#define PCSR_CT1CS (1<<4)
+#define PCSR_CT2CS (1<<5)
+#define CT_X16 16
+
+#undef _TIMERS_TESTING
+#ifdef _TIMERS_TESTING
+static void aeb_setup_timer1(cyg_uint32 period);
+#endif
+
+static cyg_uint32 _period;
+
+#ifdef CYGDBG_HAL_DEBUG_GDB_BREAK_SUPPORT
+static cyg_interrupt abort_interrupt;
+static cyg_handle_t abort_interrupt_handle;
+
+// This ISR is called only for the Abort button interrupt
+static int
+aeb_abort_isr(cyg_vector_t vector, cyg_addrword_t data, HAL_SavedRegisters *regs)
+{
+ cyg_hal_user_break((CYG_ADDRWORD*)regs);
+ cyg_drv_interrupt_acknowledge(CYGNUM_HAL_INTERRUPT_EXT0);
+ return 0; // No need to run DSR
+}
+#endif
+
+void hal_clock_initialize(cyg_uint32 period)
+{
+ cyg_uint32 iocr;
+
+ // Set counter GATE input low (0) to halt counter while it's being setup
+ HAL_READ_UINT32(CYG_DEVICE_IOCR, iocr);
+ iocr = (iocr & ~IOCR_CT0G) | IOCR_CT0G_LOW;
+ HAL_WRITE_UINT32(CYG_DEVICE_IOCR, iocr);
+
+ // Scale timer0 clock
+ HAL_WRITE_UINT32(CYG_DEVICE_CPM_CT0CCR, CT_X16);
+
+ // Initialize counter, mode 2 = rate generator
+ HAL_WRITE_UINT8(CYG_DEVICE_TIMER_CTL,
+ TIMER_CTL_TYPE_BIN|
+ TIMER_CTL_MODE_RG|
+ TIMER_CTL_RW_BOTH|
+ TIMER_CTL_SC_CTR0);
+ HAL_WRITE_UINT8(CYG_DEVICE_TIMER0, (period & 0xFF)); // LSB
+ HAL_WRITE_UINT8(CYG_DEVICE_TIMER0, ((period >> 8) & 0xFF)); // MSB
+ // Enable timer
+ iocr = (iocr & ~IOCR_CT0G) | IOCR_CT0G_HIGH;
+ HAL_WRITE_UINT32(CYG_DEVICE_IOCR, iocr);
+ _period = period;
+#ifdef CYGDBG_HAL_DEBUG_GDB_BREAK_SUPPORT
+ cyg_drv_interrupt_create(CYGNUM_HAL_INTERRUPT_EXT0,
+ 99, // Priority
+ 0, // Data item passed to interrupt handler
+ aeb_abort_isr,
+ 0,
+ &abort_interrupt_handle,
+ &abort_interrupt);
+ cyg_drv_interrupt_attach(abort_interrupt_handle);
+ cyg_drv_interrupt_unmask(CYGNUM_HAL_INTERRUPT_EXT0);
+#endif
+#ifdef _TIMERS_TESTING
+ aeb_setup_timer1(period/10);
+#endif
+}
+
+void hal_clock_reset(cyg_uint32 vector, cyg_uint32 period)
+{
+ _period = period;
+}
+
+void hal_clock_read(cyg_uint32 *pvalue)
+{
+ cyg_uint32 value;
+ cyg_uint8 reg;
+ do {
+ HAL_WRITE_UINT8(CYG_DEVICE_TIMER_CTL,
+ TIMER_CTL_RW_LATCH|TIMER_CTL_SC_CTR0);
+ HAL_READ_UINT8(CYG_DEVICE_TIMER0, reg); // LSB
+ value = reg;
+ HAL_READ_UINT8(CYG_DEVICE_TIMER0, reg); // MSB
+ value |= (reg << 8);
+ } while (value <= 2); // Hardware malfunction?
+ *pvalue = _period - (value & 0xFFFF); // Note: counter is only 16 bits
+ // and decreases
+}
+
+void hal_hardware_init(void)
+{
+ // Any hardware/platform initialization that needs to be done.
+ // Set all unknowns as edge triggered
+ HAL_WRITE_UINT32(CYG_DEVICE_ICTL_ICR0,
+ ICTL_ICR0_CH0_HL_AL|ICTL_ICR0_CH0_EL_ET|
+ ICTL_ICR0_CH1_HL_AL|ICTL_ICR0_CH1_EL_ET|
+ ICTL_ICR0_CH2_HL_AL|ICTL_ICR0_CH2_EL_ET|
+ ICTL_ICR0_CH3_HL_AL|ICTL_ICR0_CH3_EL_ET|
+ ICTL_ICR0_CH4_HL_AL|ICTL_ICR0_CH4_EL_ET|
+ ICTL_ICR0_CH5_HL_AL|ICTL_ICR0_CH5_EL_ET);
+ HAL_WRITE_UINT32(CYG_DEVICE_ICTL_ICR1,
+ ICTL_ICR1_CH6_HL_AL|
+ ICTL_ICR1_CH7_HL_AL|
+ ICTL_ICR1_CH8_HL_AL);
+ HAL_WRITE_UINT32(CYG_DEVICE_ICTL_ICLR, 0xFFFF); // CLear all interrupts
+ HAL_WRITE_UINT32(CYG_DEVICE_ICTL_IRQER, 0x0000); // All disabled
+ // Clear and initialize cache
+ HAL_UCACHE_INVALIDATE_ALL();
+ HAL_UCACHE_ENABLE();
+
+ // Set up eCos/ROM interfaces
+ hal_if_init();
+}
+
+//
+// This routine is called to respond to a hardware interrupt (IRQ). It
+// should interrogate the hardware and return the IRQ vector number.
+
+int hal_IRQ_handler(void)
+{
+ // Do hardware-level IRQ handling
+ int irq_status, vector;
+ HAL_READ_UINT32(CYG_DEVICE_ICTL_IRQSR, irq_status);
+ for (vector = 0; vector < 16; vector++) {
+ if (irq_status & (1<<vector)) return vector;
+ }
+ return CYGNUM_HAL_INTERRUPT_NONE; // This shouldn't happen!
+}
+
+//
+// Interrupt control
+//
+
+void hal_interrupt_mask(int vector)
+{
+ cyg_uint32 mask, old_mask;
+ HAL_READ_UINT32(CYG_DEVICE_ICTL_IRQER, mask);
+ old_mask = mask;
+ mask &= ~(1<<vector);
+ HAL_WRITE_UINT32(CYG_DEVICE_ICTL_IRQER, mask);
+}
+
+#if 0
+void hal_interrupt_status(void)
+{
+ int irq_status, irq_enable, ipr_value, timer_value;
+ cyg_uint8 reg;
+ HAL_READ_UINT8(CYG_DEVICE_TIMER0, reg); // LSB
+ timer_value = reg;
+ HAL_READ_UINT8(CYG_DEVICE_TIMER0, reg); // MSB
+ timer_value |= (reg << 8);
+ HAL_READ_UINT32(CYG_DEVICE_ICTL_IRQSR, irq_status);
+ HAL_READ_UINT32(CYG_DEVICE_ICTL_IRQER, irq_enable);
+ HAL_READ_UINT32(CYG_DEVICE_ICTL_IPR, ipr_value);
+ diag_printf("Interrupt: IRQ: %x.%x.%x, Timer: %x\n", irq_status,
+ irq_enable, ipr_value, timer_value);
+}
+#endif
+
+void hal_interrupt_unmask(int vector)
+{
+ cyg_uint32 mask, old_mask;
+ HAL_READ_UINT32(CYG_DEVICE_ICTL_IRQER, mask);
+ old_mask = mask;
+ mask |= (1<<vector);
+ HAL_WRITE_UINT32(CYG_DEVICE_ICTL_IRQER, mask);
+}
+
+void hal_interrupt_acknowledge(int vector)
+{
+ HAL_WRITE_UINT32(CYG_DEVICE_ICTL_ICLR, (1<<vector));
+}
+
+void hal_interrupt_configure(int vector, int level, int up)
+{
+// diag_printf("%s(%d,%d,%d)\n", __PRETTY_FUNCTION__, vector, level, up);
+}
+
+void hal_interrupt_set_level(int vector, int level)
+{
+// diag_printf("%s(%d,%d)\n", __PRETTY_FUNCTION__, vector, level);
+}
+
+void hal_show_IRQ(int vector, int data, int handler)
+{
+ // diag_printf("IRQ - vector: %x, data: %x, handler: %x\n", vector,
+ // data, handler);
+}
+
+#ifdef _TIMERS_TESTING
+#include <cyg/hal/drv_api.h> // HAL ISR support
+static cyg_interrupt timer1_interrupt;
+static cyg_handle_t timer1_interrupt_handle;
+static cyg_uint32 timer1_count;
+
+// This ISR is called only for the high speed timer under test
+static int
+aeb_timer1_isr(cyg_vector_t vector, cyg_addrword_t data, HAL_SavedRegisters *regs)
+{
+ cyg_drv_interrupt_acknowledge(CYGNUM_HAL_INTERRUPT_TIMER1);
+ timer1_count++;
+ return 0; // No need to run DSR
+}
+
+static void
+aeb_setup_timer1(cyg_uint32 period)
+{
+ cyg_uint32 iocr;
+
+ // Set counter GATE input low (0) to halt counter while it's being setup
+ HAL_READ_UINT32(CYG_DEVICE_IOCR, iocr);
+ iocr = (iocr & ~IOCR_CT1G) | IOCR_CT1G_LOW;
+ HAL_WRITE_UINT32(CYG_DEVICE_IOCR, iocr);
+
+ // Scale timer0 clock
+ HAL_WRITE_UINT32(CYG_DEVICE_CPM_CT1CCR, CT_X16);
+
+ // Initialize counter, mode 2 = rate generator
+ HAL_WRITE_UINT8(CYG_DEVICE_TIMER_CTL,
+ TIMER_CTL_TYPE_BIN|
+ TIMER_CTL_MODE_RG|
+ TIMER_CTL_RW_BOTH|
+ TIMER_CTL_SC_CTR1);
+ HAL_WRITE_UINT8(CYG_DEVICE_TIMER1, (period & 0xFF)); // LSB
+ HAL_WRITE_UINT8(CYG_DEVICE_TIMER1, ((period >> 8) & 0xFF)); // MSB
+ // Enable timer
+ iocr = (iocr & ~IOCR_CT1G) | IOCR_CT1G_HIGH;
+ HAL_WRITE_UINT32(CYG_DEVICE_IOCR, iocr);
+ cyg_drv_interrupt_create(CYGNUM_HAL_INTERRUPT_TIMER1,
+ 99, // Priority
+ 0, // Data item passed to interrupt handler
+ aeb_timer1_isr,
+ 0,
+ &timer1_interrupt_handle,
+ &timer1_interrupt);
+ cyg_drv_interrupt_attach(timer1_interrupt_handle);
+ cyg_drv_interrupt_unmask(CYGNUM_HAL_INTERRUPT_TIMER1);
+}
+#endif
+
+//-----------------------------------------------------------------------------
+// Reset board (definitions from watchdog file aeb1.cxx)
+
+// Register definitions
+#define CYGARC_REG_WATCHDOG_BASE 0xFFFFAC00
+#define CYGARC_REG_WATCHDOG_WDCTLR (CYGARC_REG_WATCHDOG_BASE+0x30)
+#define CYGARC_REG_WATCHDOG_WDCNTR (CYGARC_REG_WATCHDOG_BASE+0x34)
+
+// Control register bits
+#define CYGARC_REG_WATCHDOG_WDCTLR_EN 0x01 // enable
+#define CYGARC_REG_WATCHDOG_WDCTLR_RSP_NMF 0x00 // non-maskable fiq
+#define CYGARC_REG_WATCHDOG_WDCTLR_RSP_ER 0x04 // external reset
+#define CYGARC_REG_WATCHDOG_WDCTLR_RSP_SR 0x06 // system reset
+#define CYGARC_REG_WATCHDOG_WDCTLR_FRZ 0x08 // lock enable bit
+#define CYGARC_REG_WATCHDOG_WDCTLR_TOP_MASK 0x70 // time out period
+
+#define CYGARC_REG_WATCHDOG_WDCTLR_TOP_17 0x00 // 2^17
+#define CYGARC_REG_WATCHDOG_WDCTLR_TOP_17_P 5242880 // = 5.2ms
+
+#define CYGARC_REG_WATCHDOG_WDCTLR_TOP_25 0x40 // 2^25
+#define CYGARC_REG_WATCHDOG_WDCTLR_TOP_25_P 1342177300 // = 1.3421773s
+
+void
+hal_aeb_reset(void)
+{
+ // Clear the watchdog counter.
+ HAL_WRITE_UINT32(CYGARC_REG_WATCHDOG_WDCNTR, 0);
+
+ // Enable the watchdog with the smallest timeout.
+ HAL_WRITE_UINT8(CYGARC_REG_WATCHDOG_WDCTLR,
+ (CYGARC_REG_WATCHDOG_WDCTLR_TOP_17
+ | CYGARC_REG_WATCHDOG_WDCTLR_FRZ
+ | CYGARC_REG_WATCHDOG_WDCTLR_RSP_SR
+ | CYGARC_REG_WATCHDOG_WDCTLR_EN));
+
+ // Wait for it...
+ for(;;);
+}
+
+/*------------------------------------------------------------------------*/
+// EOF hal_misc.c
diff --git a/ecos/packages/hal/arm/aeb/current/src/flash_cksum.tcl b/ecos/packages/hal/arm/aeb/current/src/flash_cksum.tcl
new file mode 100755
index 0000000..6ae0c27
--- /dev/null
+++ b/ecos/packages/hal/arm/aeb/current/src/flash_cksum.tcl
@@ -0,0 +1,173 @@
+#!/usr/bin/env tclsh
+
+#===============================================================================
+#
+# flash_cksum.tcl
+#
+# Compute the checksum for a AEB-1 flash module
+#
+#===============================================================================
+## ####ECOSGPLCOPYRIGHTBEGIN####
+## -------------------------------------------
+## This file is part of eCos, the Embedded Configurable Operating System.
+## Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+##
+## eCos is free software; you can redistribute it and/or modify it under
+## the terms of the GNU General Public License as published by the Free
+## Software Foundation; either version 2 or (at your option) any later
+## version.
+##
+## eCos is distributed in the hope that it will be useful, but WITHOUT
+## ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+## FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+## for more details.
+##
+## You should have received a copy of the GNU General Public License
+## along with eCos; if not, write to the Free Software Foundation, Inc.,
+## 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+##
+## As a special exception, if other files instantiate templates or use
+## macros or inline functions from this file, or you compile this file
+## and link it with other works to produce a work based on this file,
+## this file does not by itself cause the resulting work to be covered by
+## the GNU General Public License. However the source code for this file
+## must still be made available in accordance with section (3) of the GNU
+## General Public License v2.
+##
+## This exception does not invalidate any other reasons why a work based
+## on this file might be covered by the GNU General Public License.
+## -------------------------------------------
+## ####ECOSGPLCOPYRIGHTEND####
+#===============================================================================
+######DESCRIPTIONBEGIN####
+#
+# Author(s): gthomas
+# Contact(s): gthomas
+# Date: 1999/01/06
+# Version: 0.01 $RcsVersion$
+# Purpose: Compute the checksum for a FLASH ROM module.
+# Description:
+# Requires: A working Tcl interpreter, V8.0 or later.
+# Provides: Command line operation only.
+# Inputs:
+# Side FX:
+# Outputs:
+# See also: 'Notes' which describes the process of creating the GDB stubs
+# module.
+# Known bugs:
+# Usage:
+#
+#####DESCRIPTIONEND####
+#===============================================================================
+
+#
+# This ckecksum is the 32-bit XOR of all 32 bit words in the file.
+# The output of the program is a single number, suitable for use in
+# a Makefile/script used to create an AEB-1 module for FLASH ROM.
+#
+
+proc checksum { name } {
+
+ set status [ catch {
+ set fd [open $name "r"]
+ fconfigure $fd -translation binary
+ set data [read $fd]
+ close $fd
+ } message]
+
+ if { $status != 0 } {
+ puts "Unable to read file $name: $message"
+ exit 1
+ }
+
+ set sum 0
+ set length [string length $data]
+ for { set i 0 } { $i < $length } { incr i 4 } {
+ # Fetch the next 32 bit word. The funky tests are to handle the case
+ # of zero bytes.
+ set char0 [string index $data [expr $i + 0]]
+ if { "$char0" != "" } {
+ scan $char0 "%c" ascii0
+ } else {
+ set ascii0 0
+ }
+ set char1 [string index $data [expr $i + 1]]
+ if { "$char1" != "" } {
+ scan $char1 "%c" ascii1
+ } else {
+ set ascii1 0
+ }
+ set char2 [string index $data [expr $i + 2]]
+ if { "$char2" != "" } {
+ scan $char2 "%c" ascii2
+ } else {
+ set ascii2 0
+ }
+ set char3 [string index $data [expr $i + 3]]
+ if { "$char3" != "" } {
+ scan $char3 "%c" ascii3
+ } else {
+ set ascii3 0
+ }
+ set word [expr $ascii0 << 24]
+ set word [expr $word | [expr $ascii1 << 16]]
+ set word [expr $word | [expr $ascii2 << 8]]
+ set word [expr $word | $ascii3]
+ set sum [expr $sum ^ $word]
+ # puts "sum: [format %8.8X $sum], word: [format %8.8X $word]"
+ }
+
+ return $sum
+}
+
+proc bswap { native } {
+ set byte0 [expr [expr $native >> 24] & 255]
+ set byte1 [expr [expr $native >> 16] & 255]
+ set byte2 [expr [expr $native >> 8] & 255]
+ set byte3 [expr [expr $native >> 0] & 255]
+ set swapped [expr $byte3 << 24]
+ set swapped [expr $swapped | [expr $byte2 << 16]]
+ set swapped [expr $swapped | [expr $byte1 << 8]]
+ set swapped [expr $swapped | [expr $byte0 << 0]]
+ # puts "native: [format %8.8X $native], swapped: [format %8.8X $swapped]"
+ return $swapped
+}
+
+global tcl_platform
+set byteOrder $tcl_platform(byteOrder)
+# puts "platform byte order = $byteOrder"
+
+# Parse command line arguments
+set argc 0
+array set args { }
+foreach arg $argv {
+ set args([incr argc]) $arg
+}
+
+if { "$argc" != "1" } {
+ puts "usage: flash_cksum <file>"
+ exit 1
+}
+
+set cksum [checksum $args(1)]
+
+# if { "$byteOrder" == "littleEndian" } {
+ # puts "Swap bytes!"
+ set cksum [bswap $cksum]
+# }
+
+# Tcl up to at least version 8.3 has problems on alphas,
+# Tcl_FormatObjCmd() invokes Tcl_GetIntFromObj() which
+# ends up doing dodgy conversions between int and long.
+# This results in an error if bit 32 is set. Rewriting
+# the format string to output one byte at a time is
+# safer.
+
+# puts "[format 0x%8.8X $cksum]"
+
+puts [format "0x%02X%02X%02X%02X" \
+ [expr (($cksum >> 24) & 0x0FF)] \
+ [expr (($cksum >> 16) & 0x0FF)] \
+ [expr (($cksum >> 8) & 0x0FF)] \
+ [expr (($cksum ) & 0x0FF)]]
+
diff --git a/ecos/packages/hal/arm/aeb/current/src/gdb_module.c b/ecos/packages/hal/arm/aeb/current/src/gdb_module.c
new file mode 100644
index 0000000..cff8745
--- /dev/null
+++ b/ecos/packages/hal/arm/aeb/current/src/gdb_module.c
@@ -0,0 +1,137 @@
+//==========================================================================
+//
+// gdb_module.c
+//
+// ARM AEB-1 eval board GDB stubs (module wrapper)
+//
+//==========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//==========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): gthomas
+// Contributors: gthomas
+// Date: 1998-12-18
+// Description: AEB-1 FLASH module for eCos GDB stubs
+//####DESCRIPTIONEND####
+
+//
+// This is the module 'wrapper' for the GDB stubs
+//
+
+#include <pkgconf/hal.h>
+#include <cyg/infra/cyg_type.h>
+#include <cyg/hal/hal_stub.h>
+
+// ARM AEB-1 module stuff
+
+#ifdef CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS
+
+#ifndef CHECKSUM
+#define CHECKSUM 0x0
+#endif
+
+extern char __exception_handlers, __rom_data_end;
+
+const char __title[] = "eCos";
+const char __help[] = "eCos 1.3 (" __DATE__ ") GDB stubs";
+
+struct ModuleHeader {
+ cyg_uint32 magic;
+ cyg_uint16 flags;
+ cyg_uint8 major;
+ cyg_uint8 minor;
+ cyg_uint32 checksum;
+ cyg_uint32 ro_base;
+ cyg_uint32 ro_limit;
+ cyg_uint32 rw_base;
+ cyg_uint32 zi_base;
+ cyg_uint32 zi_limit;
+ cyg_uint32 self;
+ cyg_uint32 start;
+ cyg_uint32 init;
+ cyg_uint32 final;
+ cyg_uint32 service;
+ cyg_uint32 title;
+ cyg_uint32 help;
+ cyg_uint32 cmdtbl;
+ cyg_uint32 swi_base;
+ cyg_uint32 swi_handler;
+};
+
+const static struct ModuleHeader __hdr = {
+ 0x4D484944, // MHID
+ 2, // flags = auto start
+ 1, // major
+ 0, // minor
+ CHECKSUM, // checksum
+ (cyg_uint32) &__exception_handlers, // start of module (read-only) image
+ (cyg_uint32) &__rom_data_end, // end of image
+ 0, // r/w base - unused
+ 0, // bss base - unused
+ 0, // bss limit - unused
+ (cyg_uint32) &__hdr, // self (for module identification)
+ (cyg_uint32) &__exception_handlers, // startup
+ 0, // init - unused
+ 0, // final - unused
+ 0, // service - unused
+ (cyg_uint32) &__title, // title
+ (cyg_uint32) &__help, // help string
+ 0, // command table - unused
+ 0, // SWI table - unused
+ 0 // SWI handler - unused
+};
+
+static void
+__dummy(void *p)
+{
+}
+
+void cyg_start (void)
+{
+ __dummy((void *)&__hdr); // Just to keep it in!
+ for(;;) breakpoint();
+}
+#else
+
+#include <cyg/infra/testcase.h>
+
+void cyg_start (void)
+{
+ CYG_TEST_INIT();
+ CYG_TEST_PASS_FINISH("N/A: Stand-alone GDB stubs only");
+}
+#endif
+
+
+
diff --git a/ecos/packages/hal/arm/aeb/current/src/hal_diag.c b/ecos/packages/hal/arm/aeb/current/src/hal_diag.c
new file mode 100644
index 0000000..12c4448
--- /dev/null
+++ b/ecos/packages/hal/arm/aeb/current/src/hal_diag.c
@@ -0,0 +1,557 @@
+/*=============================================================================
+//
+// hal_diag.c
+//
+// HAL diagnostic output code
+//
+//=============================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): nickg, gthomas
+// Contributors:nickg, gthomas
+// Date: 1998-03-02
+// Purpose: HAL diagnostic output
+// Description: Implementations of HAL diagnostic output support.
+//
+//####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> // 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
+
+/*---------------------------------------------------------------------------*/
+// AEB Serial Port (UART1) for Debug
+
+/*---------------------------------------------------------------------------*/
+/* From serial_16550.h */
+
+// UART1, 38400 (Using raw 24MHz system clock)
+#define CYG_DEVICE_SERIAL_RS232_BAUD_MSB (0)
+#define CYG_DEVICE_SERIAL_RS232_BAUD_LSB (13*3)
+// This is the base address of UART1
+#define CYG_DEV_UART1_BASE 0xFFFF0400
+
+// Interrupt Enable Register
+#define SIO_IER_RCV 0x01
+#define SIO_IER_XMT 0x02
+#define SIO_IER_LS 0x04
+#define SIO_IER_MS 0x08
+
+// Define the serial registers.
+#define CYG_DEV_RBR 0x00 // receiver buffer register, read, dlab = 0
+#define CYG_DEV_THR 0x00 // transmitter holding register, write, dlab = 0
+#define CYG_DEV_DLL 0x00 // divisor latch (LS), read/write, dlab = 1
+#define CYG_DEV_IER 0x04 // interrupt enable register, read/write, dlab = 0
+#define CYG_DEV_DLM 0x04 // divisor latch (MS), read/write, dlab = 1
+#define CYG_DEV_IIR 0x08 // interrupt identification register, read, dlab = 0
+#define CYG_DEV_FCR 0x08 // fifo control register, write, dlab = 0
+#define CYG_DEV_LCR 0x0C // line control register, read/write
+#define CYG_DEV_MCR 0x10 // modem control register, read/write
+#define CYG_DEV_LSR 0x14 // line status register, read
+#define CYG_DEV_MSR 0x18 // modem status register, read
+
+// The line status register bits.
+#define SIO_LSR_DR 0x01 // data ready
+#define SIO_LSR_OE 0x02 // overrun error
+#define SIO_LSR_PE 0x04 // parity error
+#define SIO_LSR_FE 0x08 // framing error
+#define SIO_LSR_BI 0x10 // break interrupt
+#define SIO_LSR_THRE 0x20 // transmitter holding register empty
+#define SIO_LSR_TEMT 0x40 // transmitter register empty
+#define SIO_LSR_ERR 0x80 // any error condition
+
+// The modem status register bits.
+#define SIO_MSR_DCTS 0x01 // delta clear to send
+#define SIO_MSR_DDSR 0x02 // delta data set ready
+#define SIO_MSR_TERI 0x04 // trailing edge ring indicator
+#define SIO_MSR_DDCD 0x08 // delta data carrier detect
+#define SIO_MSR_CTS 0x10 // clear to send
+#define SIO_MSR_DSR 0x20 // data set ready
+#define SIO_MSR_RI 0x40 // ring indicator
+#define SIO_MSR_DCD 0x80 // data carrier detect
+
+// The line control register bits.
+#define SIO_LCR_WLS0 0x01 // word length select bit 0
+#define SIO_LCR_WLS1 0x02 // word length select bit 1
+#define SIO_LCR_STB 0x04 // number of stop bits
+#define SIO_LCR_PEN 0x08 // parity enable
+#define SIO_LCR_EPS 0x10 // even parity select
+#define SIO_LCR_SP 0x20 // stick parity
+#define SIO_LCR_SB 0x40 // set break
+#define SIO_LCR_DLAB 0x80 // divisor latch access bit
+
+// Modem Control Register
+#define SIO_MCR_DTR 0x01
+#define SIO_MCR_RTS 0x02
+#define SIO_MCR_INT 0x08 // Enable interrupts
+
+
+//-----------------------------------------------------------------------------
+typedef struct {
+ cyg_uint8* base;
+ cyg_int32 msec_timeout;
+ int isr_vector;
+} channel_data_t;
+
+//-----------------------------------------------------------------------------
+
+static void
+cyg_hal_plf_serial_init_channel(void* __ch_data)
+{
+ cyg_uint8* base = ((channel_data_t*)__ch_data)->base;
+ cyg_uint8 lcr, dll, dlm;
+
+ // 8-1-no parity.
+ HAL_WRITE_UINT8(base+CYG_DEV_LCR, SIO_LCR_WLS0 | SIO_LCR_WLS1);
+
+ HAL_READ_UINT8(base+CYG_DEV_LCR, lcr);
+ lcr |= SIO_LCR_DLAB;
+ HAL_WRITE_UINT8(base+CYG_DEV_LCR, lcr);
+ HAL_READ_UINT8(base+CYG_DEV_DLL, dll);
+ HAL_READ_UINT8(base+CYG_DEV_DLM, dlm);
+ HAL_WRITE_UINT8 (base+CYG_DEV_DLL, CYG_DEVICE_SERIAL_RS232_BAUD_LSB);
+ HAL_WRITE_UINT8 (base+CYG_DEV_DLM, CYG_DEVICE_SERIAL_RS232_BAUD_MSB);
+ lcr &= ~SIO_LCR_DLAB;
+ HAL_WRITE_UINT8 (base+CYG_DEV_LCR, lcr);
+ HAL_WRITE_UINT8 (base+CYG_DEV_FCR, 0x07); // Enable & clear FIFO
+}
+
+void
+cyg_hal_plf_serial_putc(void *__ch_data, char c)
+{
+ cyg_uint8* base = ((channel_data_t*)__ch_data)->base;
+ cyg_uint8 lsr;
+ CYGARC_HAL_SAVE_GP();
+
+ do {
+ HAL_READ_UINT8(base+CYG_DEV_LSR, lsr);
+ } while ((lsr & SIO_LSR_THRE) == 0);
+
+ HAL_WRITE_UINT8(base+CYG_DEV_THR, c);
+
+ 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_DEV_LSR, lsr);
+ if ((lsr & SIO_LSR_DR) == 0)
+ return false;
+
+ HAL_READ_UINT8(base+CYG_DEV_RBR, *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;
+}
+
+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;
+ int ret = 0;
+ CYGARC_HAL_SAVE_GP();
+
+ switch (__func) {
+ case __COMMCTL_IRQ_ENABLE:
+ irq_state = 1;
+
+ HAL_WRITE_UINT8(chan->base+CYG_DEV_IER, SIO_IER_RCV);
+ HAL_WRITE_UINT8(chan->base+CYG_DEV_MCR, SIO_MCR_INT|SIO_MCR_DTR|SIO_MCR_RTS);
+
+ HAL_INTERRUPT_UNMASK(chan->isr_vector);
+ break;
+ case __COMMCTL_IRQ_DISABLE:
+ ret = irq_state;
+ irq_state = 0;
+
+ HAL_WRITE_UINT8(chan->base+CYG_DEV_IER, 0);
+ HAL_WRITE_UINT8(chan->base+CYG_DEV_MCR, SIO_MCR_INT|SIO_MCR_DTR|SIO_MCR_RTS);
+
+ 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;
+ channel_data_t* chan = (channel_data_t*)__ch_data;
+ char c;
+ cyg_uint8 lsr;
+ CYGARC_HAL_SAVE_GP();
+
+ cyg_drv_interrupt_acknowledge(chan->isr_vector);
+
+
+ *__ctrlc = 0;
+ HAL_READ_UINT8(chan->base+CYG_DEV_LSR, lsr);
+ if ( (lsr & SIO_LSR_DR) != 0 ) {
+
+ HAL_READ_UINT8(chan->base+CYG_DEV_RBR, c);
+ if( cyg_hal_is_break( &c , 1 ) )
+ *__ctrlc = 1;
+
+ res = CYG_ISR_HANDLED;
+ }
+
+ CYGARC_HAL_RESTORE_GP();
+ return res;
+}
+
+static channel_data_t aeb_ser_channels[1];
+
+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);
+ channel_data_t* chan;
+
+ chan = &aeb_ser_channels[0];
+ chan->base = (cyg_uint8*)CYG_DEV_UART1_BASE;
+ chan->isr_vector = CYGNUM_HAL_INTERRUPT_UART1;
+ chan->msec_timeout = 1000;
+
+ // Init channel
+ cyg_hal_plf_serial_init_channel(chan);
+
+ // 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, chan);
+ 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();
+}
+
+//=============================================================================
+// Compatibility with older stubs
+//=============================================================================
+
+#ifndef CYGSEM_HAL_VIRTUAL_VECTOR_DIAG
+
+#ifdef CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS
+#include <cyg/hal/drv_api.h>
+#include <cyg/hal/hal_stub.h> // cyg_hal_gdb_interrupt
+#endif
+
+// Assumption: all diagnostic output must be GDB packetized unless this is a ROM (i.e.
+// totally stand-alone) system.
+
+#if defined(CYG_HAL_STARTUP_ROM) || !defined(CYGDBG_HAL_DIAG_TO_DEBUG_CHAN)
+#define HAL_DIAG_USES_HARDWARE
+#endif
+
+
+static channel_data_t aeb_ser_channel = {(cyg_uint8*)CYG_DEV_UART1_BASE, 0, 0};
+
+#ifdef HAL_DIAG_USES_HARDWARE
+
+void hal_diag_init(void)
+{
+ static int init = 0;
+ char *msg = "\n\rAEB-1 eCos\n\r";
+
+ if (init++) return;
+
+ cyg_hal_plf_serial_init_channel(&aeb_ser_channel);
+
+ while (*msg) cyg_hal_plf_serial_putc(&aeb_ser_channel, *msg++);
+}
+
+#ifdef DEBUG_DIAG
+#if defined(CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS)
+#define DIAG_BUFSIZE 32
+#else
+#define DIAG_BUFSIZE 2048
+#endif
+static char diag_buffer[DIAG_BUFSIZE];
+static int diag_bp = 0;
+#endif
+
+void hal_diag_write_char(char c)
+{
+ hal_diag_init();
+
+ cyg_hal_plf_serial_putc(&aeb_ser_channel, c);
+
+#ifdef DEBUG_DIAG
+ diag_buffer[diag_bp++] = c;
+ if (diag_bp == DIAG_BUFSIZE) diag_bp = 0;
+#endif
+}
+
+void hal_diag_read_char(char *c)
+{
+ *c = cyg_hal_plf_serial_getc(&aeb_ser_channel);
+}
+
+#else // HAL_DIAG relies on GDB
+
+// Initialize diag port - assume GDB channel is already set up
+void hal_diag_init(void)
+{
+ if (0) cyg_hal_plf_serial_init_channel(&aeb_ser_channel); // avoid warning
+}
+
+// Actually send character down the wire
+static void
+hal_diag_write_char_serial(char c)
+{
+ hal_diag_init();
+
+ cyg_hal_plf_serial_putc(&aeb_ser_channel, c);
+}
+
+static bool
+hal_diag_read_serial(char *c)
+{
+ long timeout = 1000000000; // A long time...
+ while (!cyg_hal_plf_serial_getc_nonblock(&aeb_ser_channel, c))
+ if (0 == --timeout) return false;
+
+ return true;
+}
+
+void
+hal_diag_read_char(char *c)
+{
+ while (!hal_diag_read_serial(c)) ;
+}
+
+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;
+
+ hal_diag_write_char_serial('$');
+ hal_diag_write_char_serial('O');
+ csum += 'O';
+ for( i = 0; i < pos; i++ )
+ {
+ char ch = line[i];
+ char h = hex[(ch>>4)&0xF];
+ char l = hex[ch&0xF];
+ hal_diag_write_char_serial(h);
+ hal_diag_write_char_serial(l);
+ csum += h;
+ csum += l;
+ }
+ hal_diag_write_char_serial('#');
+ hal_diag_write_char_serial(hex[(csum>>4)&0xF]);
+ hal_diag_write_char_serial(hex[csum&0xF]);
+
+ // Wait for the ACK character '+' from GDB here and handle
+ // receiving a ^C instead. This is the reason for this clause
+ // being a loop.
+ if (!hal_diag_read_serial(&c1))
+ continue; // No response - try sending packet again
+
+ if( c1 == '+' )
+ break; // a good acknowledge
+
+#ifdef CYGDBG_HAL_DEBUG_GDB_BREAK_SUPPORT
+ cyg_drv_interrupt_acknowledge(CYGNUM_HAL_INTERRUPT_UART1);
+ if( c1 == 3 ) {
+ // Ctrl-C: breakpoint.
+ cyg_hal_gdb_interrupt (__builtin_return_address(0));
+ break;
+ }
+#endif
+ // 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
+
+ }
+}
+#endif
+
+#endif // CYGSEM_HAL_VIRTUAL_VECTOR_DIAG
+
+
+/*---------------------------------------------------------------------------*/
+/* End of hal_diag.c */
diff --git a/ecos/packages/hal/arm/aim711/current/ChangeLog b/ecos/packages/hal/arm/aim711/current/ChangeLog
new file mode 100755
index 0000000..def9624
--- /dev/null
+++ b/ecos/packages/hal/arm/aim711/current/ChangeLog
@@ -0,0 +1,112 @@
+2009-01-31 Bart Veer <bartv@ecoscentric.com>
+
+ * cdl/hal_arm_aim711.cdl: update compiler flags for gcc 4.x
+
+2009-01-24 Bart Veer <bartv@ecoscentric.com>
+
+ * cdl/hal_arm_aim711.cdl: switch from arm-elf-gcc to
+ arm-eabi-gcc. Remove -mno-short-load-words.
+
+2008-11-20 Bart Veer <bartv@ecoscentric.com>
+
+ * misc/redboot_ROMRAM_visionsystems.ecm:
+ CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_CACHE has been expunged from the
+ common HAL.
+
+2004-06-07 Roland Cassebohm <roland.cassebohm@visionsystems.de>
+
+ * src/aim711_misc.c:
+ The I2C transfer routine waits now while the bus is busy
+ instead of just return an error.
+
+2004-04-28 Roland Cassebohm <roland.cassebohm@visionsystems.de>
+
+ * include/plf_aux.h:
+ * include/plf_io.h:
+ Removed plf_aux.h, instead put the prototypes of the functions
+ in plf_io.h.
+
+2004-04-28 Roland Cassebohm <roland.cassebohm@visionsystems.de>
+
+ * src/aim711_misc.c:
+ * include/hal_platform_ints.h:
+ Removed unused RedBoot startup code.
+
+2004-04-28 Roland Cassebohm <roland.cassebohm@visionsystems.de>
+
+ * cdl/hal_arm_aim711.cdl:
+ * include/hal_platform_ints.h:
+ Added cdl option to get delays between POST codes.
+
+2004-04-27 Roland Cassebohm <roland.cassebohm@visionsystems.de>
+
+ * cdl/hal_arm_aim711.cdl: Fixed typos.
+
+2003-10-02 Roland Cassebohm <roland.cassebohm@visionsystems.de>
+
+ * cdl/hal_arm_aim711.cdl:
+ Implement CYGINT_HAL_ARM_BIGENDIAN.
+ Use "-mno-short-load-words" in compiler flags to avoid unaligned
+ access, which would cause exceptions.
+
+ * include/hal_cache.h:
+ * include/hal_diag.h:
+
+ * include/hal_platform_ints.h: Set HAL_PLATFORM_RESET() to
+ hal_reset().
+
+ * include/hal_platform_setup.h: Changed for direct initial
+ SDRAM setup. External IO is maped to 0x3fd0000. Changed LED macros
+ to use only the first three bits of PIO.
+
+ * include/plf_io.h:
+
+ * include/plf_stub.h: Remove HAL_STUB_PLATFORM_RESET defines,
+ because they are not used anymore.
+
+ * include/pkgconf/mlt_arm_aim711_ram.h: Moved FLASH to 0x2000000
+ and changed the size to 0x200000. Changed size of RAM to 0x800000.
+ RedBoot is used as main bootloader. To be sure there is enough
+ space in future, the RAM version resevers RAM up to 0x30000.
+ * include/pkgconf/mlt_arm_aim711_ram.ldi: Same.
+ * include/pkgconf/mlt_arm_aim711_rom.h: Same.
+ * include/pkgconf/mlt_arm_aim711_rom.ldi: Same.
+ * include/pkgconf/mlt_arm_aim711_romram.h: Same.
+ * include/pkgconf/mlt_arm_aim711_romram.ldi: Same.
+
+ * misc/redboot_RAM.ecm:
+ * misc/redboot_ROM.ecm:
+ * misc/redboot_ROMRAM.ecm:
+
+ * src/hal_diag.c: Implement hal_diag_led() for the diagnostic board
+ of the AIM.
+
+ * src/aim711_misc.c:
+ Implemented reset functionality of the AIM 711 board.
+
+ New package for the ARM Industrial Module AIM 711 cloned from
+ SNDS package.
+
+//===========================================================================
+// ####GPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 2 or (at your option) any
+// later version.
+//
+// This program is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the
+// Free Software Foundation, Inc., 51 Franklin Street,
+// Fifth Floor, Boston, MA 02110-1301, USA.
+// -------------------------------------------
+// ####GPLCOPYRIGHTEND####
+//===========================================================================
diff --git a/ecos/packages/hal/arm/aim711/current/cdl/hal_arm_aim711.cdl b/ecos/packages/hal/arm/aim711/current/cdl/hal_arm_aim711.cdl
new file mode 100755
index 0000000..09f559a
--- /dev/null
+++ b/ecos/packages/hal/arm/aim711/current/cdl/hal_arm_aim711.cdl
@@ -0,0 +1,374 @@
+#==========================================================================
+#
+# hal_arm_aim711.cdl
+#
+#
+#
+#==========================================================================
+## ####ECOSGPLCOPYRIGHTBEGIN####
+## -------------------------------------------
+## This file is part of eCos, the Embedded Configurable Operating System.
+## Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+##
+## eCos is free software; you can redistribute it and/or modify it under
+## the terms of the GNU General Public License as published by the Free
+## Software Foundation; either version 2 or (at your option) any later
+## version.
+##
+## eCos is distributed in the hope that it will be useful, but WITHOUT
+## ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+## FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+## for more details.
+##
+## You should have received a copy of the GNU General Public License
+## along with eCos; if not, write to the Free Software Foundation, Inc.,
+## 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+##
+## As a special exception, if other files instantiate templates or use
+## macros or inline functions from this file, or you compile this file
+## and link it with other works to produce a work based on this file,
+## this file does not by itself cause the resulting work to be covered by
+## the GNU General Public License. However the source code for this file
+## must still be made available in accordance with section (3) of the GNU
+## General Public License v2.
+##
+## This exception does not invalidate any other reasons why a work based
+## on this file might be covered by the GNU General Public License.
+## -------------------------------------------
+## ####ECOSGPLCOPYRIGHTEND####
+#==========================================================================
+######DESCRIPTIONBEGIN####
+#
+# Author(s): gthomas
+# Contributors: gthomas, jskov, r.cassebohm
+# Grant Edwards <grante@visi.com>
+# Date: 2001-07-31
+# Purpose:
+# Description:
+#
+#####DESCRIPTIONEND####
+#
+#========================================================================*/
+
+
+cdl_package CYGPKG_HAL_ARM_AIM711 {
+ display "ARM Industrial Module AIM 711"
+ parent CYGPKG_HAL_ARM
+ define_header hal_arm_aim711.h
+ include_dir cyg/hal
+ hardware
+ description "
+ The ARM Industrial Module AIM 711 HAL package provides the support
+ needed to run eCos on a ARM Industrial Module AIM 711 board from
+ Vision Systems GmbH"
+
+ compile hal_diag.c aim711_misc.c
+
+ implements CYGINT_HAL_VIRTUAL_VECTOR_SUPPORT
+ implements CYGINT_HAL_DEBUG_GDB_STUBS
+ implements CYGINT_HAL_DEBUG_GDB_STUBS_BREAK
+ implements CYGINT_HAL_ARM_ARCH_ARM7
+ implements CYGINT_HAL_ARM_THUMB_ARCH
+ implements CYGINT_HAL_ARM_BIGENDIAN
+
+ requires { CYGHWR_HAL_ARM_BIGENDIAN == 1 }
+ requires { is_active(CYGPKG_DEVS_ETH_ARM_KS32C5000) implies
+ CYGPKG_DEVS_ETH_ARM_KS32C5000_PHY_RTL8201 }
+ requires { is_active(CYGPKG_DEVS_ETH_ARM_KS32C5000) implies
+ (CYGPKG_DEVS_ETH_ARM_KS32C5000_PHYADDR == 2) }
+
+ define_proc {
+ puts $::cdl_system_header "#define CYGBLD_HAL_TARGET_H <pkgconf/hal_arm.h>"
+ puts $::cdl_system_header "#define CYGBLD_HAL_PLATFORM_H <pkgconf/hal_arm_aim711.h>"
+ puts $::cdl_header ""
+ puts $::cdl_header "#define HAL_PLATFORM_CPU \"ARM 7TDMI\""
+ puts $::cdl_header "#define HAL_PLATFORM_BOARD \"AIM 711\""
+ puts $::cdl_header "#define HAL_PLATFORM_EXTRA \"\""
+ puts $::cdl_header ""
+ puts $::cdl_header "#define HAL_PLATFORM_MACHINE_TYPE 140"
+ puts $::cdl_header "#define CYGHWR_REDBOOT_ARM_TRAMPOLINE_ADDRESS 0x200000"
+ puts $::cdl_header ""
+ }
+
+ 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 AIM 711 board it is possible to build
+ the system for either RAM, ROM or ROMRAM 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 the FLASH.
+ The ROMRAM bootstrap is also stored in FLASH, but will be
+ executed in RAM."
+ }
+
+ cdl_component CYG_HAL_CPUTYPE {
+ display "cpu type"
+ flavor data
+ calculated {"S3C4510A"}
+ no_define
+ define -file system.h CYG_HAL_CPUTYPE
+ description "Which version of processor is on board."
+ }
+
+ cdl_component CYGNUM_HAL_CPUCLOCK {
+ display "cpu clock"
+ flavor data
+ calculated 50000000
+ no_define
+ define -file system.h CYGNUM_HAL_CPUCLOCK
+ description "Frequency of cpu clock in Hz."
+ }
+
+ cdl_option CYGNUM_HAL_VIRTUAL_VECTOR_COMM_CHANNELS {
+ display "Number of diag/debug 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 0
+ }
+
+ 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 AIM 711 board has two diag/debug
+ 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 CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_DEFAULT
+ description "
+ The AIM 711 board has two diag/debug serial ports. This option
+ chooses which port will be used for diagnostic output."
+ }
+
+ cdl_option CYGNUM_HAL_VIRTUAL_VECTOR_CHANNELS_DEFAULT_BAUD {
+ display "Console/GDB serial port baud rate"
+ flavor data
+ legal_values 9600 19200 38400 57600 115200
+ default_value 38400
+ description "
+ This option controls the default baud rate used for the
+ Console/GDB connection."
+ }
+
+ # 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
+ default_value 1000000000
+ }
+ cdl_option CYGNUM_HAL_RTC_DENOMINATOR {
+ display "Real-time clock denominator"
+ flavor data
+ default_value 100
+ }
+ cdl_option CYGNUM_HAL_RTC_PERIOD {
+ display "Real-time clock period"
+ flavor data
+ default_value (CYGNUM_HAL_CPUCLOCK/CYGNUM_HAL_RTC_DENOMINATOR)
+ }
+ }
+
+ 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 { "arm-eabi"}
+ 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 { CYGBLD_GLOBAL_WARNFLAGS . CYGBLD_ARCH_CFLAGS .
+ "-mcpu=arm7tdmi -g -O2 -ffunction-sections -fdata-sections -fno-rtti -fno-exceptions " }
+ 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 { CYGBLD_ARCH_LDFLAGS . "-mcpu=arm7tdmi -g -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" || CYG_HAL_STARTUP == "ROMRAM" }
+ 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") ? "arm_aim711_ram" :
+ (CYG_HAL_STARTUP == "ROMRAM") ? "arm_aim711_romram" :
+ "arm_aim711_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_aim711_ram.ldi>" :
+ (CYG_HAL_STARTUP == "ROMRAM") ? "<pkgconf/mlt_arm_aim711_romram.ldi>" :
+ "<pkgconf/mlt_arm_aim711_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_aim711_ram.h>" :
+ (CYG_HAL_STARTUP == "ROMRAM") ? "<pkgconf/mlt_arm_aim711_romram.h>" :
+ "<pkgconf/mlt_arm_aim711_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" || CYG_HAL_STARTUP == "ROMRAM" }
+ 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 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_REDBOOT_HAL_OPTIONS {
+ display "Redboot HAL options"
+ flavor none
+ no_define
+ parent CYGPKG_REDBOOT
+ active_if CYGPKG_REDBOOT
+ description "
+ This option lists the target's requirements for a valid Redboot
+ configuration."
+
+ cdl_component CYGPKG_REDBOOT_AIM711_EEPROM_RDWR {
+ display "Provide the eeprom commands in RedBoot"
+ flavor bool
+ default_value 1
+ parent CYGPKG_REDBOOT_ARM_OPTIONS
+ #active_if CYGBLD_BUILD_REDBOOT_WITH_EXEC
+ description "
+ This option provides the eeprom_read and eeprom_write
+ commands."
+ compile -library=libextras.a redboot_eeprom.c
+ }
+
+ 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 $< $@
+ }
+ }
+ }
+
+ cdl_option CYGSEM_HAL_LED_WITH_DELAY {
+ display "POST LED output with delays"
+ flavor bool
+ default_value 0
+ description "
+ Enable this option to have delays between POST codes shown on the
+ service board LEDs."
+ }
+}
diff --git a/ecos/packages/hal/arm/aim711/current/include/hal_cache.h b/ecos/packages/hal/arm/aim711/current/include/hal_cache.h
new file mode 100755
index 0000000..4f93624
--- /dev/null
+++ b/ecos/packages/hal/arm/aim711/current/include/hal_cache.h
@@ -0,0 +1,290 @@
+#ifndef CYGONCE_HAL_CACHE_H
+#define CYGONCE_HAL_CACHE_H
+//=============================================================================
+//
+// hal_cache.h
+//
+// HAL cache control API
+//
+//=============================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): nickg, gthomas
+// Contributors: nickg, gthomas
+// Date: 1998-09-28
+// 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 <cyg/infra/cyg_type.h>
+#include <cyg/hal/hal_io.h>
+#include <cyg/hal/plf_io.h>
+
+//-----------------------------------------------------------------------------
+// Cache dimensions - one unified cache
+
+#define HAL_CACHE_UNIFIED
+
+#define HAL_UCACHE_SIZE 0x2000 // Size of cache in bytes
+#define HAL_UCACHE_LINE_SIZE 16 // Size of a cache line
+#define HAL_UCACHE_WAYS 2 // Associativity of the cache
+
+#define HAL_UCACHE_SETS (HAL_UCACHE_SIZE/(HAL_UCACHE_LINE_SIZE*HAL_UCACHE_WAYS))
+
+//-----------------------------------------------------------------------------
+// Global control of cache
+
+// Enable the cache
+#define HAL_UCACHE_ENABLE() \
+ CYG_MACRO_START \
+ cyg_uint32 syscfg; \
+ HAL_READ_UINT32(KS32C_SYSCFG, syscfg); \
+ syscfg |= KS32C_SYSCFG_CE; \
+ HAL_WRITE_UINT32(KS32C_SYSCFG, syscfg); \
+ CYG_MACRO_END
+
+// Disable the cache
+#define HAL_UCACHE_DISABLE() \
+ CYG_MACRO_START \
+ cyg_uint32 syscfg; \
+ HAL_READ_UINT32(KS32C_SYSCFG, syscfg); \
+ syscfg &= ~KS32C_SYSCFG_CE; \
+ HAL_WRITE_UINT32(KS32C_SYSCFG, syscfg); \
+ CYG_MACRO_END
+
+// Invalidate the entire cache
+#define HAL_UCACHE_INVALIDATE_ALL() \
+ CYG_MACRO_START \
+ register cyg_uint32* tag = (cyg_uint32*)KS32C_CACHE_TAG_ADDR; \
+ register int i; \
+ for (i = 0; i < HAL_UCACHE_SETS/4; i++) { \
+ *tag++ = 0; \
+ *tag++ = 0; \
+ *tag++ = 0; \
+ *tag++ = 0; \
+ } \
+ CYG_MACRO_END
+
+// Synchronize the contents of the cache with memory.
+// No action necessary. Cache is write-through.
+#define HAL_UCACHE_SYNC()
+
+// Query the state of the cache
+#define HAL_UCACHE_IS_ENABLED(_state_) \
+ CYG_MACRO_START \
+ cyg_uint32 syscfg; \
+ HAL_READ_UINT32(KS32C_SYSCFG, syscfg); \
+ (_state_) = (syscfg & KS32C_SYSCFG_CE) ? 1 : 0; \
+ CYG_MACRO_END
+
+// Purge contents of cache
+#define HAL_UCACHE_PURGE_ALL() HAL_UCACHE_INVALIDATE_ALL()
+
+// Set the cache refill burst size
+//#define HAL_UCACHE_BURST_SIZE(_size_)
+
+// Set the cache write mode
+//#define HAL_UCACHE_WRITE_MODE( _mode_ )
+
+//#define HAL_UCACHE_WRITETHRU_MODE 0
+//#define HAL_UCACHE_WRITEBACK_MODE 1
+
+// 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_ )
+
+// 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_ )
+
+// 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
diff --git a/ecos/packages/hal/arm/aim711/current/include/hal_diag.h b/ecos/packages/hal/arm/aim711/current/include/hal_diag.h
new file mode 100755
index 0000000..993d000
--- /dev/null
+++ b/ecos/packages/hal/arm/aim711/current/include/hal_diag.h
@@ -0,0 +1,86 @@
+//==========================================================================
+//
+// hal_diag.h
+//
+//
+//
+//==========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//==========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): gthomas
+// Contributors: gthomas, jskov
+// Grant Edwards <grante@visi.com>
+// Date: 2001-07-31
+// Purpose:
+// Description:
+//
+//####DESCRIPTIONEND####
+//
+//========================================================================*/
+
+#ifndef CYGONCE_HAL_DIAG_H
+#define CYGONCE_HAL_DIAG_H
+
+#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_)
+
+//// Not the best place for this, but ...
+extern void hal_delay_us(cyg_int32 usecs);
+#define HAL_DELAY_US(n) hal_delay_us(n);
+
+#else // old way of doing diagnostic I/O
+
+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 // defined(CYGSEM_HAL_VIRTUAL_VECTOR_DIAG)
+
+// LED only three bit
+externC void hal_diag_led(int mask);
+
+#endif /* CYGONCE_HAL_DIAG_H */
diff --git a/ecos/packages/hal/arm/aim711/current/include/hal_platform_ints.h b/ecos/packages/hal/arm/aim711/current/include/hal_platform_ints.h
new file mode 100755
index 0000000..3f50ffa
--- /dev/null
+++ b/ecos/packages/hal/arm/aim711/current/include/hal_platform_ints.h
@@ -0,0 +1,107 @@
+#ifndef CYGONCE_HAL_PLATFORM_INTS_H
+#define CYGONCE_HAL_PLATFORM_INTS_H
+//==========================================================================
+//
+// hal_platform_ints.h
+//
+//
+//
+//==========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//==========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): gthomas
+// Contributors: gthomas, jskov
+// Grant Edwards <grante@visi.com>
+// Date: 2001-07-31
+// Purpose:
+// Description:
+//
+//####DESCRIPTIONEND####
+//
+//========================================================================*/
+
+#define CYGNUM_HAL_INTERRUPT_EXT0 0
+#define CYGNUM_HAL_INTERRUPT_EXT1 1
+#define CYGNUM_HAL_INTERRUPT_EXT2 2
+#define CYGNUM_HAL_INTERRUPT_EXT3 3
+#define CYGNUM_HAL_INTERRUPT_UART0_TX 4
+#define CYGNUM_HAL_INTERRUPT_UART0_RX 5
+#if !defined(CYG_HAL_CPUTYPE)
+#error CYG_HAL_CPUTYPE not defined
+#endif
+#if defined(CYG_HAL_CPUTYPE_KS32C5000A)
+#define CYGNUM_HAL_INTERRUPT_UART0_ERR 6
+#define CYGNUM_HAL_INTERRUPT_UART1_TX 7
+#define CYGNUM_HAL_INTERRUPT_UART1_RX 8
+#define CYGNUM_HAL_INTERRUPT_UART1_ERR 9
+#define CYGNUM_HAL_INTERRUPT_DMA0 10
+#define CYGNUM_HAL_INTERRUPT_DMA1 11
+#define CYGNUM_HAL_INTERRUPT_TIMER0 12
+#define CYGNUM_HAL_INTERRUPT_TIMER1 13
+#define CYGNUM_HAL_INTERRUPT_HDLCA 14
+#define CYGNUM_HAL_INTERRUPT_HDLCB 15
+#else
+#define CYGNUM_HAL_INTERRUPT_UART1_TX 6
+#define CYGNUM_HAL_INTERRUPT_UART1_RX 7
+#define CYGNUM_HAL_INTERRUPT_DMA0 8
+#define CYGNUM_HAL_INTERRUPT_DMA1 9
+#define CYGNUM_HAL_INTERRUPT_TIMER0 10
+#define CYGNUM_HAL_INTERRUPT_TIMER1 11
+#define CYGNUM_HAL_INTERRUPT_HDLCA_TX 12
+#define CYGNUM_HAL_INTERRUPT_HDLCA_RX 13
+#define CYGNUM_HAL_INTERRUPT_HDLCB_TX 14
+#define CYGNUM_HAL_INTERRUPT_HDLCB_RX 15
+#endif
+#define CYGNUM_HAL_INTERRUPT_ETH_BDMA_TX 16
+#define CYGNUM_HAL_INTERRUPT_ETH_BDMA_RX 17
+#define CYGNUM_HAL_INTERRUPT_ETH_MAC_TX 18
+#define CYGNUM_HAL_INTERRUPT_ETH_MAC_RX 19
+#define CYGNUM_HAL_INTERRUPT_I2C 20
+
+#define CYGNUM_HAL_ISR_MIN 0
+#define CYGNUM_HAL_ISR_MAX 20
+#define CYGNUM_HAL_ISR_COUNT 21
+
+// The vector used by the Real time clock
+
+#define CYGNUM_HAL_INTERRUPT_RTC CYGNUM_HAL_INTERRUPT_TIMER0
+
+//----------------------------------------------------------------------------
+// Reset.
+externC void hal_reset(void);
+#define HAL_PLATFORM_RESET() hal_reset()
+#define HAL_PLATFORM_RESET_ENTRY 0x2000000
+
+#endif // CYGONCE_HAL_PLATFORM_INTS_H
diff --git a/ecos/packages/hal/arm/aim711/current/include/hal_platform_setup.h b/ecos/packages/hal/arm/aim711/current/include/hal_platform_setup.h
new file mode 100755
index 0000000..d376b5a
--- /dev/null
+++ b/ecos/packages/hal/arm/aim711/current/include/hal_platform_setup.h
@@ -0,0 +1,260 @@
+#ifndef CYGONCE_HAL_PLATFORM_SETUP_H
+#define CYGONCE_HAL_PLATFORM_SETUP_H
+//==========================================================================
+//
+// hal_platform_setup.h
+//
+//
+//
+//==========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//==========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): gthomas
+// Contributors: gthomas, jskov, rcassebohm
+// Grant Edwards <grante@visi.com>
+// Date: 2001-07-31
+// Purpose:
+// Description:
+//
+//####DESCRIPTIONEND####
+//
+//========================================================================*/
+
+#include <cyg/hal/plf_io.h>
+
+ .macro LED_MACRO x
+
+ ldr r0,=KS32C_IOPDATA
+ ldr r1,[r0]
+ and r1,r1,#(~0x7)
+ orr r1,r1,#((0x7 & (~(\x))))
+ str r1,[r0]
+#ifdef CYGSEM_HAL_LED_WITH_DELAY
+ ldr r1,=0x80000
+1: sub r1,r1,#1
+ cmp r1,#0
+ bne 1b
+#endif
+ .endm
+
+#define CYGHWR_LED_MACRO \
+ LED_MACRO (\x)
+
+
+// Use relative branch since we are going to switch the address space
+// around.
+#define CYGSEM_HAL_ROM_RESET_USES_JUMP
+
+ .macro PLATFORM_RELOCATE
+
+ ldr r1,=KS32C_IOPMOD
+ ldr r2,=0x07 /* set led display to output */
+ str r2,[r1]
+
+ LED 0x0
+
+ /* Check that it worked, otherwise try Sync DRAM setup */
+ ldr r1,=0x00000000
+ str r1,[r1]
+ ldr r2,[r1]
+ cmp r2,r1
+ beq 99f
+
+ /* Sync DRAM mode */
+ LED 0x1
+
+ ldr r3, =0xe7ffff90 /* sdram c+wb disabled, regs @ 0x03ff0000 */
+ ldr r0, =KS32C_SYSCFG
+ str r3,[r0]
+1: mov r1,pc /* actual address */
+ sub r1,r1,#8 /* + 8 */
+ ldr r0,=1b /* address off 1: after remap */
+ sub r1,r1,r0
+ ldr r0,=40f
+ add r0,r0,r1
+
+#ifdef CYG_HAL_STARTUP_ROMRAM
+ ldr lr,=4f
+ add lr,lr,r1
+ ldr r1,=AIM711_ROM0_LA_START
+ add lr,lr,r1
+#else
+ ldr lr,=99f
+#endif
+
+ ldmia r0,{r1-r12}
+ ldr r0,=KS32C_EXTDBWTH
+ stmia r0,{r1-r12}
+ mov pc,lr
+
+#ifdef CYG_HAL_STARTUP_ROMRAM
+4:
+ /* Relocate text segment */
+ ldr r2,=__exception_handlers
+ ldr r3,=AIM711_ROM0_LA_START
+ cmp r2,r3
+ beq 6f
+ ldr r4,=__rom_data_end
+5:
+ ldr r0,[r3],#4
+ str r0,[r2],#4
+ cmp r2,r4
+ bne 5b
+6:
+ ldr lr,=99f
+ mov pc,lr
+ nop
+ nop
+ nop
+#endif
+
+ /* The below are set with a store-multiple instruction */
+
+ /* Sync DRAM setup */
+ /* Flash is 8 bit, DRAM is 32 bit and EXTIO is 8 bit */
+ /* .long KS32C_EXTDBWTH */
+40: .long ( (KS32C_EXTDBWTH_8BIT<<KS32C_EXTDBWTH_DSR0_shift) \
+ |(KS32C_EXTDBWTH_32BIT<<KS32C_EXTDBWTH_DSD0_shift) \
+ |(KS32C_EXTDBWTH_8BIT<<KS32C_EXTDBWTH_DSX0_shift) \
+ |(KS32C_EXTDBWTH_8BIT<<KS32C_EXTDBWTH_DSX2_shift) )
+ /* Flash at 0x02000000-0x02100000, 5 cycles, 7 cycles */
+ /* .long KS32C_ROMCON0 */
+ .long ( (KS32C_ROMCON_PMC_ROM) \
+ |(KS32C_ROMCON_TPA_5C) \
+ |(KS32C_ROMCON_TACC_7C) \
+ |((AIM711_ROM0_LA_START >> 16) << KS32C_ROMCON_BASE_shift) \
+ |((AIM711_ROM0_LA_END >> 16) << KS32C_ROMCON_NEXT_shift))
+ /* .long KS32C_ROMCON1 */
+ .long ( (KS32C_ROMCON_PMC_ROM) \
+ |(KS32C_ROMCON_TPA_5C) \
+ |(KS32C_ROMCON_TACC_5C) \
+ |((0x00000000 >> 16) << KS32C_ROMCON_BASE_shift) \
+ |((0x00000000 >> 16) << KS32C_ROMCON_NEXT_shift))
+ /* .long KS32C_ROMCON2 */
+ .long ( (KS32C_ROMCON_PMC_ROM) \
+ |(KS32C_ROMCON_TPA_5C) \
+ |(KS32C_ROMCON_TACC_5C) \
+ |((0x00000000 >> 16) << KS32C_ROMCON_BASE_shift) \
+ |((0x00000000 >> 16) << KS32C_ROMCON_NEXT_shift))
+ /* .long KS32C_ROMCON3 */
+ .long ( (KS32C_ROMCON_PMC_ROM) \
+ |(KS32C_ROMCON_TPA_5C) \
+ |(KS32C_ROMCON_TACC_5C) \
+ |((0x00000000 >> 16) << KS32C_ROMCON_BASE_shift) \
+ |((0x00000000 >> 16) << KS32C_ROMCON_NEXT_shift))
+ /* .long KS32C_ROMCON4 */
+ .long ( (KS32C_ROMCON_PMC_ROM) \
+ |(KS32C_ROMCON_TPA_5C) \
+ |(KS32C_ROMCON_TACC_5C) \
+ |((0x00000000 >> 16) << KS32C_ROMCON_BASE_shift) \
+ |((0x00000000 >> 16) << KS32C_ROMCON_NEXT_shift))
+ /* .long KS32C_ROMCON5 */
+ .long ( (KS32C_ROMCON_PMC_ROM) \
+ |(KS32C_ROMCON_TPA_5C) \
+ |(KS32C_ROMCON_TACC_5C) \
+ |((0x00000000 >> 16) << KS32C_ROMCON_BASE_shift) \
+ |((0x00000000 >> 16) << KS32C_ROMCON_NEXT_shift))
+ /* .long KS32C_DRAMCON0 */
+ .long ( (KS32C_DRAMCON_RESERVED) \
+ |(KS32C_DRAMCON_CAN_8) \
+ |(KS32C_DRAMCON_TRP_4C) \
+ |(KS32C_DRAMCON_TRC_2C) \
+ |((AIM711_DRAM_LA_START >> 16) << KS32C_DRAMCON_BASE_shift) \
+ |((AIM711_DRAM_LA_END >> 16) << KS32C_DRAMCON_NEXT_shift))
+ /* .long KS32C_DRAMCON1 */
+ .long ( (KS32C_DRAMCON_RESERVED) \
+ |(KS32C_DRAMCON_CAN_8) \
+ |(KS32C_DRAMCON_TRP_2C) \
+ |(KS32C_DRAMCON_TRC_2C) \
+ |((0x00000000 >> 16) << KS32C_DRAMCON_BASE_shift) \
+ |((0x00000000 >> 16) << KS32C_DRAMCON_NEXT_shift))
+ /* .long KS32C_DRAMCON2 */
+ .long ( (KS32C_DRAMCON_RESERVED) \
+ |(KS32C_DRAMCON_CAN_8) \
+ |(KS32C_DRAMCON_TRP_2C) \
+ |(KS32C_DRAMCON_TRC_2C) \
+ |((0x00000000 >> 16) << KS32C_DRAMCON_BASE_shift) \
+ |((0x00000000 >> 16) << KS32C_DRAMCON_NEXT_shift))
+ /* .long KS32C_DRAMCON3 */
+ .long ( (KS32C_DRAMCON_RESERVED) \
+ |(KS32C_DRAMCON_CAN_8) \
+ |(KS32C_DRAMCON_TRP_2C) \
+ |(KS32C_DRAMCON_TRC_2C) \
+ |((0x00000000 >> 16) << KS32C_DRAMCON_BASE_shift) \
+ |((0x00000000 >> 16) << KS32C_DRAMCON_NEXT_shift))
+ /* .long KS32C_REFEXTCON */
+ .long (((2048+1-(8*CYGNUM_HAL_CPUCLOCK/1000000)) << KS32C_REFEXTCON_RCV_shift) \
+ |(KS32C_REFEXTCON_TRC_4C) \
+ |(KS32C_REFEXTCON_REN) \
+ |(KS32C_REFEXTCON_VSF) \
+ |(AIM711_EXT0_LA_START >> 16) )
+#if 0
+50:
+ .long 0x07113001 /* ROM half-word, RAM word, EXT-IO */
+ .long 0x21080060 /* ROM 32 - 33 MByte */
+ .long 0
+ .long 0
+ .long 0
+ .long 0
+ .long 0
+ .long 0x0800038e /* RAM 0 - 8 MByte */
+ .long 0
+ .long 0
+ .long 0
+ .long 0xc01583fd /* Reactivate external Bus */
+#endif
+
+99: LED 0x2
+ ldr r3,=0x00000000
+ str r3,[r3]
+ ldr r4,[r3]
+ cmp r4,r3
+ beq 15f
+11: LED 0x3
+ b 11b
+15: LED 0x4
+
+ .endm
+
+#if defined(CYG_HAL_STARTUP_ROM) || defined(CYG_HAL_STARTUP_ROMRAM)
+#define PLATFORM_SETUP1 \
+ PLATFORM_RELOCATE
+#else
+#define PLATFORM_SETUP1
+#endif
+
+//-----------------------------------------------------------------------------
+// end of hal_platform_setup.h
+#endif // CYGONCE_HAL_PLATFORM_SETUP_H
diff --git a/ecos/packages/hal/arm/aim711/current/include/pkgconf/mlt_arm_aim711_ram.h b/ecos/packages/hal/arm/aim711/current/include/pkgconf/mlt_arm_aim711_ram.h
new file mode 100755
index 0000000..b558be3
--- /dev/null
+++ b/ecos/packages/hal/arm/aim711/current/include/pkgconf/mlt_arm_aim711_ram.h
@@ -0,0 +1,15 @@
+// eCos memory layout - Tue Feb 29 14:11:30 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 (0x00800000)
+#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 (0x00800000 - (size_t) CYG_LABEL_NAME (__heap1))
diff --git a/ecos/packages/hal/arm/aim711/current/include/pkgconf/mlt_arm_aim711_ram.ldi b/ecos/packages/hal/arm/aim711/current/include/pkgconf/mlt_arm_aim711_ram.ldi
new file mode 100755
index 0000000..091adfe
--- /dev/null
+++ b/ecos/packages/hal/arm/aim711/current/include/pkgconf/mlt_arm_aim711_ram.ldi
@@ -0,0 +1,27 @@
+// eCos memory layout - Tue Feb 29 14:11:30 2000
+
+// This is a generated file - do not edit
+
+#include <cyg/infra/cyg_type.inc>
+
+MEMORY
+{
+ ram : ORIGIN = 0x000000, LENGTH = 0x00800000
+}
+
+SECTIONS
+{
+ SECTIONS_BEGIN
+ SECTION_fixed_vectors (ram, 0x20, LMA_EQ_VMA)
+ SECTION_rom_vectors (ram, 0x00040000, 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)
+ CYG_LABEL_DEFN(__heap1) = ALIGN (0x8);
+ SECTIONS_END
+}
diff --git a/ecos/packages/hal/arm/aim711/current/include/pkgconf/mlt_arm_aim711_rom.h b/ecos/packages/hal/arm/aim711/current/include/pkgconf/mlt_arm_aim711_rom.h
new file mode 100755
index 0000000..fb65ee4
--- /dev/null
+++ b/ecos/packages/hal/arm/aim711/current/include/pkgconf/mlt_arm_aim711_rom.h
@@ -0,0 +1,20 @@
+// eCos memory layout - Wed Apr 11 13:49:55 2001
+
+// This is a generated file - do not edit
+
+#ifndef __ASSEMBLER__
+#include <cyg/infra/cyg_type.h>
+#include <stddef.h>
+
+#endif
+#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 (0x2000000)
+#define CYGMEM_REGION_rom_SIZE (0x200000)
+#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 (0x800000 - (size_t) CYG_LABEL_NAME (__heap1))
diff --git a/ecos/packages/hal/arm/aim711/current/include/pkgconf/mlt_arm_aim711_rom.ldi b/ecos/packages/hal/arm/aim711/current/include/pkgconf/mlt_arm_aim711_rom.ldi
new file mode 100755
index 0000000..18a0f4f
--- /dev/null
+++ b/ecos/packages/hal/arm/aim711/current/include/pkgconf/mlt_arm_aim711_rom.ldi
@@ -0,0 +1,28 @@
+// eCos memory layout - Wed Apr 11 13:49:55 2001
+
+// This is a generated file - do not edit
+
+#include <cyg/infra/cyg_type.inc>
+
+MEMORY
+{
+ ram : ORIGIN = 0x0000000, LENGTH = 0x0800000
+ rom : ORIGIN = 0x2000000, LENGTH = 0x0200000
+}
+
+SECTIONS
+{
+ SECTIONS_BEGIN
+ SECTION_rom_vectors (rom, 0x2000000, LMA_EQ_VMA)
+ SECTION_text (rom, ALIGN (0x1), 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, 0x1000, FOLLOWING (.gcc_except_table))
+ SECTION_bss (ram, ALIGN (0x4), LMA_EQ_VMA)
+ CYG_LABEL_DEFN(__heap1) = ALIGN (0x8);
+ SECTIONS_END
+}
diff --git a/ecos/packages/hal/arm/aim711/current/include/pkgconf/mlt_arm_aim711_romram.h b/ecos/packages/hal/arm/aim711/current/include/pkgconf/mlt_arm_aim711_romram.h
new file mode 100755
index 0000000..b558be3
--- /dev/null
+++ b/ecos/packages/hal/arm/aim711/current/include/pkgconf/mlt_arm_aim711_romram.h
@@ -0,0 +1,15 @@
+// eCos memory layout - Tue Feb 29 14:11:30 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 (0x00800000)
+#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 (0x00800000 - (size_t) CYG_LABEL_NAME (__heap1))
diff --git a/ecos/packages/hal/arm/aim711/current/include/pkgconf/mlt_arm_aim711_romram.ldi b/ecos/packages/hal/arm/aim711/current/include/pkgconf/mlt_arm_aim711_romram.ldi
new file mode 100755
index 0000000..491b5ff
--- /dev/null
+++ b/ecos/packages/hal/arm/aim711/current/include/pkgconf/mlt_arm_aim711_romram.ldi
@@ -0,0 +1,27 @@
+// eCos memory layout - Tue Feb 29 14:11:30 2000
+
+// This is a generated file - do not edit
+
+#include <cyg/infra/cyg_type.inc>
+
+MEMORY
+{
+ ram : ORIGIN = 0x000000, LENGTH = 0x00800000
+}
+
+SECTIONS
+{
+ SECTIONS_BEGIN
+ SECTION_fixed_vectors (ram, 0x20, LMA_EQ_VMA)
+ SECTION_rom_vectors (ram, 0x1000, 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)
+ CYG_LABEL_DEFN(__heap1) = ALIGN (0x8);
+ SECTIONS_END
+}
diff --git a/ecos/packages/hal/arm/aim711/current/include/plf_io.h b/ecos/packages/hal/arm/aim711/current/include/plf_io.h
new file mode 100755
index 0000000..16f7bbb
--- /dev/null
+++ b/ecos/packages/hal/arm/aim711/current/include/plf_io.h
@@ -0,0 +1,502 @@
+#ifndef CYGONCE_HAL_PLF_IO_H
+#define CYGONCE_HAL_PLF_IO_H
+//=============================================================================
+//
+// plf_io.h
+//
+// Platform specific registers
+//
+//=============================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jskov
+// Contributors:jskov
+// Date: 2001-03-16
+// Purpose: ARM/KS32C platform specific registers
+// Description:
+// Usage: #include <cyg/hal/plf_io.h>
+//
+//####DESCRIPTIONEND####
+//
+//=============================================================================
+
+// Platform doesn't need address munging even if configures as big-endian
+
+#define HAL_IO_MACROS_NO_ADDRESS_MUNGING
+
+// non-caching by accessing addr|0x04000000
+
+#define KS32C_REG_BASE 0x07ff0000
+
+// -----------------------------------------------------------------------------
+// System config (register bases and caching)
+#define KS32C_SYSCFG (KS32C_REG_BASE + 0x0000)
+
+#define KS32C_SYSCFG_SDM 0x80000000
+#define KS32C_SYSCFG_PD_ID_MASK 0x3c000000
+#define KS32C_SYSCFG_SRBBP_MASK 0x03ff0000 // address/64k
+#define KS32C_SYSCFG_ISBBP_MASK 0x0000ffc0 // a25-a16
+#define KS32C_SYSCFG_CM_MASK 0x00000030
+#define KS32C_SYSCFG_CM_4R_4C 0x00000000
+#define KS32C_SYSCFG_CM_0R_8C 0x00000010
+#define KS32C_SYSCFG_CM_8R_0C 0x00000020
+#define KS32C_SYSCFG_WE 0x00000004 // only KS32C50100?
+#define KS32C_SYSCFG_CE 0x00000002
+#define KS32C_SYSCFG_SE 0x00000001
+
+#define KS32C_CLKCON (KS32C_REG_BASE + 0x3000)
+
+#define KS32C_EXTACON0 (KS32C_REG_BASE + 0x3008)
+#define KS32C_EXTACON1 (KS32C_REG_BASE + 0x300c)
+
+#define KS32C_EXTACON0_EXT0_shift 0
+#define KS32C_EXTACON0_EXT1_shift 16
+#define KS32C_EXTACON1_EXT2_shift 0
+#define KS32C_EXTACON1_EXT3_shift 16
+
+#define KS32C_EXTACON_TCOS_shift 0
+#define KS32C_EXTACON_TACS_shift 3
+#define KS32C_EXTACON_TCOH_shift 6
+#define KS32C_EXTACON_TACC_shift 9
+
+#define KS32C_EXTACON_INIT(_tacs_,_tcos_,_tacc_,_tcoh_) \
+ ( ((_tacs_)<<KS32C_EXTACON_TACS_shift) \
+ | ((_tcos_)<<KS32C_EXTACON_TCOS_shift) \
+ | ((_tacc_)<<KS32C_EXTACON_TACC_shift) \
+ | ((_tcoh_)<<KS32C_EXTACON_TCOH_shift) )
+
+// Memory banks data width
+#define KS32C_EXTDBWTH (KS32C_REG_BASE + 0x3010)
+
+#define KS32C_EXTDBWTH_MASK 3
+#define KS32C_EXTDBWTH_8BIT 1
+#define KS32C_EXTDBWTH_16BIT 2
+#define KS32C_EXTDBWTH_32BIT 3
+
+#define KS32C_EXTDBWTH_DSR0_shift 0
+#define KS32C_EXTDBWTH_DSR1_shift 2
+#define KS32C_EXTDBWTH_DSR2_shift 4
+#define KS32C_EXTDBWTH_DSR3_shift 6
+#define KS32C_EXTDBWTH_DSR4_shift 8
+#define KS32C_EXTDBWTH_DSR5_shift 10
+#define KS32C_EXTDBWTH_DSD0_shift 12
+#define KS32C_EXTDBWTH_DSD1_shift 14
+#define KS32C_EXTDBWTH_DSD2_shift 16
+#define KS32C_EXTDBWTH_DSD3_shift 18
+#define KS32C_EXTDBWTH_DSX0_shift 20
+#define KS32C_EXTDBWTH_DSX1_shift 22
+#define KS32C_EXTDBWTH_DSX2_shift 24
+#define KS32C_EXTDBWTH_DSX3_shift 26
+
+// -----------------------------------------------------------------------------
+// Bank locations and timing
+#define KS32C_ROMCON0 (KS32C_REG_BASE + 0x3014)
+#define KS32C_ROMCON1 (KS32C_REG_BASE + 0x3018)
+#define KS32C_ROMCON2 (KS32C_REG_BASE + 0x301c)
+#define KS32C_ROMCON3 (KS32C_REG_BASE + 0x3020)
+#define KS32C_ROMCON4 (KS32C_REG_BASE + 0x3024)
+#define KS32C_ROMCON5 (KS32C_REG_BASE + 0x3028)
+
+#define KS32C_ROMCON_PMC_MASK 0x00000003
+#define KS32C_ROMCON_PMC_ROM 0x00000000
+#define KS32C_ROMCON_PMC_4W_PAGE 0x00000001
+#define KS32C_ROMCON_PMC_8W_PAGE 0x00000002
+#define KS32C_ROMCON_PMC_16W_PAGE 0x00000003
+
+#define KS32C_ROMCON_TPA_MASK 0x0000000c
+#define KS32C_ROMCON_TPA_5C 0x00000000
+#define KS32C_ROMCON_TPA_2C 0x00000004
+#define KS32C_ROMCON_TPA_3C 0x00000008
+#define KS32C_ROMCON_TPA_4C 0x0000000c
+
+#define KS32C_ROMCON_TACC_MASK 0x00000070
+#define KS32C_ROMCON_TACC_DISABLE 0x00000000
+#define KS32C_ROMCON_TACC_2C 0x00000010
+#define KS32C_ROMCON_TACC_3C 0x00000020
+#define KS32C_ROMCON_TACC_4C 0x00000030
+#define KS32C_ROMCON_TACC_5C 0x00000040
+#define KS32C_ROMCON_TACC_6C 0x00000050
+#define KS32C_ROMCON_TACC_7C 0x00000060
+
+#define KS32C_ROMCON_BASE_MASK 0x000ffc00
+#define KS32C_ROMCON_BASE_shift 10
+
+#define KS32C_ROMCON_NEXT_MASK 0x3ff00000
+#define KS32C_ROMCON_NEXT_shift 20
+
+
+
+#define KS32C_DRAMCON0 (KS32C_REG_BASE + 0x302c)
+#define KS32C_DRAMCON1 (KS32C_REG_BASE + 0x3030)
+#define KS32C_DRAMCON2 (KS32C_REG_BASE + 0x3034)
+#define KS32C_DRAMCON3 (KS32C_REG_BASE + 0x3038)
+
+#define KS32C_DRAMCON_CAN_8 0x00000000
+#define KS32C_DRAMCON_CAN_9 0x40000000
+#define KS32C_DRAMCON_CAN_10 0x80000000
+#define KS32C_DRAMCON_CAN_11 0xc0000000
+#define KS32C_DRAMCON_TRP_1C 0x00000000
+#define KS32C_DRAMCON_TRP_2C 0x00000100
+#define KS32C_DRAMCON_TRP_3C 0x00000200
+#define KS32C_DRAMCON_TRP_4C 0x00000300
+#define KS32C_DRAMCON_TRC_1C 0x00000000
+#define KS32C_DRAMCON_TRC_2C 0x00000080
+#define KS32C_DRAMCON_RESERVED 0x00000010
+#define KS32C_DRAMCON_TCP_1C 0x00000000
+#define KS32C_DRAMCON_TCP_2C 0x00000008
+#define KS32C_DRAMCON_TCS_1C 0x00000000
+#define KS32C_DRAMCON_TCS_2C 0x00000002
+#define KS32C_DRAMCON_TCS_3C 0x00000004
+#define KS32C_DRAMCON_TCS_4C 0x00000006
+#define KS32C_DRAMCON_EDO 0x00000001
+
+#define KS32C_DRAMCON_BASE_MASK 0x000ffc00
+#define KS32C_DRAMCON_BASE_shift 10
+
+#define KS32C_DRAMCON_NEXT_MASK 0x3ff00000
+#define KS32C_DRAMCON_NEXT_shift 20
+
+
+#define KS32C_REFEXTCON (KS32C_REG_BASE + 0x303c)
+
+// DRAM
+#define KS32C_REFEXTCON_TCSR_1C 0x00000000
+#define KS32C_REFEXTCON_TCHR_1C 0x00000000
+// SDRAM
+#define KS32C_REFEXTCON_TRC_4C 0x00060000
+// DRAM+SDRAM
+#define KS32C_REFEXTCON_REN 0x00010000
+#define KS32C_REFEXTCON_VSF 0x00008000
+#define KS32C_REFEXTCON_BASE 0x00000360
+
+#define KS32C_REFEXTCON_RCV_shift 21
+
+//-----------------------------------------------------------------------------
+// INTC
+
+#define KS32C_INTMOD (KS32C_REG_BASE + 0x4000)
+#define KS32C_INTPND (KS32C_REG_BASE + 0x4004)
+#define KS32C_INTMSK (KS32C_REG_BASE + 0x4008)
+#define KS32C_INTPRI0 (KS32C_REG_BASE + 0x400c)
+#define KS32C_INTPRI1 (KS32C_REG_BASE + 0x4010)
+#define KS32C_INTPRI2 (KS32C_REG_BASE + 0x4014)
+#define KS32C_INTPRI3 (KS32C_REG_BASE + 0x4018)
+#define KS32C_INTPRI4 (KS32C_REG_BASE + 0x401c)
+#define KS32C_INTPRI5 (KS32C_REG_BASE + 0x4020)
+#define KS32C_INTOFFSET (KS32C_REG_BASE + 0x4024)
+#define KS32C_PNDPRI (KS32C_REG_BASE + 0x4028)
+#define KS32C_PNDTEST (KS32C_REG_BASE + 0x402c)
+#define KS32C_INTOFFSET_FIQ (KS32C_REG_BASE + 0x4030)
+#define KS32C_INTOFFSET_IRQ (KS32C_REG_BASE + 0x4034)
+
+#define KS32C_INTMSK_GLOBAL (1<<21)
+
+//-----------------------------------------------------------------------------
+// PIO
+
+#define KS32C_IOPMOD (KS32C_REG_BASE + 0x5000)
+#define KS32C_IOPCON (KS32C_REG_BASE + 0x5004)
+
+#define KS32C_IOPCON_XIRQ_MASK 0x1f
+#define KS32C_IOPCON_XIRQ_LEVEL 0x00
+#define KS32C_IOPCON_XIRQ_RISING 0x01
+#define KS32C_IOPCON_XIRQ_FALLING 0x02
+#define KS32C_IOPCON_XIRQ_BOTH_EDGE 0x03
+#define KS32C_IOPCON_XIRQ_FILTERING 0x04
+#define KS32C_IOPCON_XIRQ_AKTIV_LOW 0x00
+#define KS32C_IOPCON_XIRQ_AKTIV_HI 0x08
+#define KS32C_IOPCON_XIRQ_ENABLE 0x10
+
+#define KS32C_IOPCON_XIRQ0_shift 0
+#define KS32C_IOPCON_XIRQ1_shift 5
+#define KS32C_IOPCON_XIRQ2_shift 10
+#define KS32C_IOPCON_XIRQ3_shift 15
+
+#define KS32C_IOPCON_DRQ_MASK 0x07
+#define KS32C_IOPCON_DRQ_AKTIV_LOW 0x00
+#define KS32C_IOPCON_DRQ_AKTIV_HI 0x01
+#define KS32C_IOPCON_DRQ_FILTERING 0x02
+#define KS32C_IOPCON_DRQ_ENABLE 0x04
+
+#define KS32C_IOPCON_DRQ0_shift 20
+#define KS32C_IOPCON_DRQ1_shift 23
+
+#define KS32C_IOPCON_DAK_MASK 0x03
+#define KS32C_IOPCON_DAK_AKTIV_LOW 0x00
+#define KS32C_IOPCON_DAK_AKTIV_HI 0x01
+#define KS32C_IOPCON_DAK_ENABLE 0x02
+
+#define KS32C_IOPCON_DAK0_shift 26
+#define KS32C_IOPCON_DAK1_shift 28
+
+#define KS32C_IOPCON_TOEN_ENABLE 0x01
+
+#define KS32C_IOPCON_TO0_shift 30
+#define KS32C_IOPCON_TO1_shift 31
+
+#define KS32C_IOPDATA (KS32C_REG_BASE + 0x5008)
+
+#define KS32C_IOPDATA_P0 (1<<0)
+#define KS32C_IOPDATA_P1 (1<<1)
+#define KS32C_IOPDATA_P2 (1<<2)
+#define KS32C_IOPDATA_P3 (1<<3)
+#define KS32C_IOPDATA_P4 (1<<4)
+#define KS32C_IOPDATA_P5 (1<<5)
+#define KS32C_IOPDATA_P6 (1<<6)
+#define KS32C_IOPDATA_P7 (1<<7)
+#define KS32C_IOPDATA_P8_XIRQ0 (1<<8)
+#define KS32C_IOPDATA_P9_XIRQ1 (1<<9)
+#define KS32C_IOPDATA_P10_XIRQ2 (1<<10)
+#define KS32C_IOPDATA_P11_XIRQ3 (1<<11)
+#define KS32C_IOPDATA_P12_DRQ0 (1<<12)
+#define KS32C_IOPDATA_P13_DRQ1 (1<<13)
+#define KS32C_IOPDATA_P14_DAK0 (1<<14)
+#define KS32C_IOPDATA_P15_DAK1 (1<<15)
+#define KS32C_IOPDATA_P16_TO0 (1<<16)
+#define KS32C_IOPDATA_P17_TO1 (1<<17)
+
+//-----------------------------------------------------------------------------
+// Timers
+
+#define KS32C_TMOD (KS32C_REG_BASE + 0x6000)
+#define KS32C_TDATA0 (KS32C_REG_BASE + 0x6004)
+#define KS32C_TDATA1 (KS32C_REG_BASE + 0x6008)
+#define KS32C_TCNT0 (KS32C_REG_BASE + 0x600c)
+#define KS32C_TCNT1 (KS32C_REG_BASE + 0x6010)
+
+#define KS32C_TMOD_TE0 0x00000001
+#define KS32C_TMOD_TMD0 0x00000002
+#define KS32C_TMOD_TCLR0 0x00000004
+#define KS32C_TMOD_TE1 0x00000008
+#define KS32C_TMOD_TMD1 0x00000010
+#define KS32C_TMOD_TCLR1 0x00000020
+
+
+//-----------------------------------------------------------------------------
+// UART
+
+#define KS32C_UART0_BASE (KS32C_REG_BASE + 0xd000)
+#define KS32C_UART1_BASE (KS32C_REG_BASE + 0xe000)
+
+#define KS32C_UART_LCON 0x0000
+#define KS32C_UART_CON 0x0004
+#define KS32C_UART_STAT 0x0008
+#define KS32C_UART_TXBUF 0x000c
+#define KS32C_UART_RXBUF 0x0010
+#define KS32C_UART_BRDIV 0x0014
+#define KS32C_UART_BRDCNT 0x0018
+#define KS32C_UART_BRDCLK 0x001c
+
+#define KS32C_UART_LCON_5_DBITS 0x00
+#define KS32C_UART_LCON_6_DBITS 0x01
+#define KS32C_UART_LCON_7_DBITS 0x02
+#define KS32C_UART_LCON_8_DBITS 0x03
+#define KS32C_UART_LCON_1_SBITS 0x00
+#define KS32C_UART_LCON_2_SBITS 0x04
+#define KS32C_UART_LCON_NO_PARITY 0x00
+#define KS32C_UART_LCON_EVEN_PARITY 0x00
+#define KS32C_UART_LCON_ODD_PARITY 0x28
+#define KS32C_UART_LCON_1_PARITY 0x30
+#define KS32C_UART_LCON_0_PARITY 0x38
+#define KS32C_UART_LCON_SCS 0x40
+#define KS32C_UART_LCON_IR 0x80
+
+#define KS32C_UART_CON_RXM_MASK 0x03
+#define KS32C_UART_CON_RXM_INT 0x01
+#define KS32C_UART_CON_TXM_MASK 0x0c
+#define KS32C_UART_CON_TXM_INT 0x08
+#define KS32C_UART_CON_RX_ERR_INT 0x04
+
+
+#define KS32C_UART_STAT_DTR 0x10
+#define KS32C_UART_STAT_RDR 0x20
+#define KS32C_UART_STAT_TXE 0x40 // tx empty
+#define KS32C_UART_STAT_TC 0x80 // tx complete
+
+//-----------------------------------------------------------------------------
+// Cache
+#define KS32C_CACHE_SET0_ADDR 0x10000000
+#define KS32C_CACHE_SET1_ADDR 0x10800000
+#define KS32C_CACHE_TAG_ADDR 0x11000000
+
+//-----------------------------------------------------------------------------
+// GDMA
+#define KS32C_GDMA_CON0 (KS32C_REG_BASE + 0xb000)
+#define KS32C_GDMA_SRC0 (KS32C_REG_BASE + 0xb004)
+#define KS32C_GDMA_DST0 (KS32C_REG_BASE + 0xb008)
+#define KS32C_GDMA_CNT0 (KS32C_REG_BASE + 0xb00c)
+#define KS32C_GDMA_CON1 (KS32C_REG_BASE + 0xc000)
+#define KS32C_GDMA_SRC1 (KS32C_REG_BASE + 0xc004)
+#define KS32C_GDMA_DST1 (KS32C_REG_BASE + 0xc008)
+#define KS32C_GDMA_CNT1 (KS32C_REG_BASE + 0xc00c)
+
+//-----------------------------------------------------------------------------
+// I2C
+#define KS32C_I2CCON (KS32C_REG_BASE + 0xf000)
+#define KS32C_I2C_CON_BF (1<<0)
+#define KS32C_I2C_CON_IEN (1<<1)
+#define KS32C_I2C_CON_LRB (1<<2)
+#define KS32C_I2C_CON_ACK (1<<3)
+#define KS32C_I2C_CON_START (1<<4)
+#define KS32C_I2C_CON_STOP (2<<4)
+#define KS32C_I2C_CON_RESTART (3<<4)
+#define KS32C_I2C_CON_BUSY (1<<6)
+#define KS32C_I2C_CON_RESET (1<<7)
+#define KS32C_I2CBUF (KS32C_REG_BASE +0xf004)
+#define KS32C_I2CPS (KS32C_REG_BASE +0xf008)
+
+#define KS32C_I2C_FREQ(freq) ((CYGNUM_HAL_CPUCLOCK/(freq) - 3)/16)
+#define KS32C_I2C_RD (0x01)
+#define KS32C_I2C_WR (0x00)
+
+#ifndef __ASSEMBLER__
+typedef struct hal_ks32c_i2c_msg_s
+{
+ cyg_uint8 devaddr;
+ cyg_int8 status;
+ cyg_uint8* pbuf;
+ cyg_uint32 bufsize;
+} hal_ks32c_i2c_msg_t;
+
+// Transfer the I2C messages.
+externC int
+hal_ks32c_i2c_transfer(cyg_uint32 nmsg, hal_ks32c_i2c_msg_t* pmsgs);
+#endif
+
+//-----------------------------------------------------------------------------
+// Memory map is 1-1
+
+#define CYGARC_PHYSICAL_ADDRESS(_x_) (_x_)
+
+//-----------------------------------------------------------------------------
+// AIM 711 specific
+
+// Mamory maping
+#define AIM711_ROM0_LA_START 0x02000000
+#define AIM711_ROM0_LA_END 0x02200000
+#define AIM711_DRAM_LA_START 0x00000000
+#define AIM711_DRAM_LA_END 0x00800000
+#define AIM711_EXT0_LA_START 0x03fd0000
+#define AIM711_EXT0_LA_END 0x03fd4000
+#define AIM711_EXT1_LA_START 0x03fd4000
+#define AIM711_EXT1_LA_END 0x03fd8000
+#define AIM711_EXT2_LA_START 0x03fd8000
+#define AIM711_EXT2_LA_END 0x03fdc000
+#define AIM711_EXT3_LA_START 0x03fdc000
+#define AIM711_EXT3_LA_END 0x03fc0000
+
+#define AIM711_COM0_DEBUG_BASE KS32C_UART0_BASE
+#define AIM711_COM1_BASE (AIM711_EXT0_LA_START|0x04000000 + 8)
+#define AIM711_COM2_BASE KS32C_UART1_BASE
+#define AIM711_EXTBUS_BASE (AIM711_EXT2_LA_START|0x04000000)
+
+// I2C address of RTC (wallclock)
+#define AIM711_RTC_ADDR 0xd0
+
+// I2C address and size of EEPROM
+#define AIM711_EEPROM_ADDR 0xa0
+#define AIM711_EEPROM_SIZE 256
+#define AIM711_EEPROM_PAGESIZE 8
+
+// Interrupt vectors with AIM 711 naming
+#define AIM711_INTERRUPT_COM1 CYGNUM_HAL_INTERRUPT_EXT0
+#define AIM711_INTERRUPT_RTC CYGNUM_HAL_INTERRUPT_EXT1
+#define AIM711_INTERRUPT_IRQ0 CYGNUM_HAL_INTERRUPT_EXT2
+#define AIM711_INTERRUPT_IRQ1 CYGNUM_HAL_INTERRUPT_EXT3
+
+// GPIO bits with AIM 711 naming
+#define AIM711_GPIO_LED0 KS32C_IOPDATA_P0
+#define AIM711_GPIO_LED1 KS32C_IOPDATA_P1
+#define AIM711_GPIO_LED2 KS32C_IOPDATA_P2
+#define AIM711_GPIO_RESET KS32C_IOPDATA_P3
+#define AIM711_GPIO_POWERLED KS32C_IOPDATA_P4
+#define AIM711_GPIO_UARTIRQ KS32C_IOPDATA_P8_XIRQ0
+#define AIM711_GPIO_RTCIRQ KS32C_IOPDATA_P9_XIRQ1
+#define AIM711_GPIO_DIN0_DRQ0 KS32C_IOPDATA_P12_DRQ0
+#define AIM711_GPIO_DIN1_DRQ1 KS32C_IOPDATA_P13_DRQ1
+#define AIM711_GPIO_DIN2_IRQ0 KS32C_IOPDATA_P10_XIRQ2
+#define AIM711_GPIO_DIN3_IRQ1 KS32C_IOPDATA_P11_XIRQ3
+#define AIM711_GPIO_DOUT0_DAK0 KS32C_IOPDATA_P14_DAK0
+#define AIM711_GPIO_DOUT1_DAK1 KS32C_IOPDATA_P15_DAK1
+#define AIM711_GPIO_DOUT2_TO0 KS32C_IOPDATA_P16_TO0
+#define AIM711_GPIO_DOUT3_TO1 KS32C_IOPDATA_P17_TO1
+
+// Macros for usage of GPIO
+#define AIM711_GPIO(_which_,_value_) \
+do { \
+ cyg_uint32 val; \
+ HAL_READ_UINT32(KS32C_IOPDATA, val); \
+ val &= ~(_which_); \
+ val |= (_which_)&(_value_); \
+ HAL_WRITE_UINT32(KS32C_IOPDATA, val); \
+} while (0)
+
+#define AIM711_GPIO_SET(_x_) \
+do { \
+ cyg_uint32 val; \
+ HAL_READ_UINT32(KS32C_IOPDATA, val); \
+ val |= (_x_); \
+ HAL_WRITE_UINT32(KS32C_IOPDATA, val); \
+} while (0)
+
+#define AIM711_GPIO_CLR(_x_) \
+do { \
+ cyg_uint32 val; \
+ HAL_READ_UINT32(KS32C_IOPDATA, val); \
+ val &= ~(_x_); \
+ HAL_WRITE_UINT32(KS32C_IOPDATA, val); \
+} while (0)
+
+#define AIM711_GPIO_GET(_x_) \
+do { \
+ cyg_uint32 _val; \
+ HAL_READ_UINT32(KS32C_IOPDATA, _val); \
+ (_x_) = _val; \
+} while (0)
+
+//-----------------------------------------------------------------------------
+// AIM 711 specific EEPROM support
+
+#ifndef __ASSEMBLER__
+externC int
+hal_aim711_eeprom_read(cyg_uint8 *buf, int offset, int len);
+
+externC int
+hal_aim711_eeprom_write(cyg_uint8 *buf, int offset, int len);
+#endif
+
+//-----------------------------------------------------------------------------
+// end of plf_io.h
+#endif // CYGONCE_HAL_PLF_IO_H
diff --git a/ecos/packages/hal/arm/aim711/current/include/plf_stub.h b/ecos/packages/hal/arm/aim711/current/include/plf_stub.h
new file mode 100755
index 0000000..66b9a03
--- /dev/null
+++ b/ecos/packages/hal/arm/aim711/current/include/plf_stub.h
@@ -0,0 +1,71 @@
+//==========================================================================
+//
+// plf_stub.h
+//
+//
+//
+//==========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//==========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): gthomas
+// Contributors: gthomas, jskov
+// Grant Edwards <grante@visi.com>
+// Date: 2001-07-31
+// Purpose:
+// Description:
+//
+//####DESCRIPTIONEND####
+//
+//========================================================================*/
+
+#ifndef CYGONCE_HAL_PLF_STUB_H
+#define CYGONCE_HAL_PLF_STUB_H
+
+#include <pkgconf/hal.h>
+
+#ifdef CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS
+#include <cyg/infra/cyg_type.h> // CYG_UNUSED_PARAM
+#include <cyg/hal/arm_stub.h> // architecture stub support
+// Define serial stuff.
+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.
+#define HAL_STUB_PLATFORM_INIT() CYG_EMPTY_STATEMENT
+#endif // ifdef CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS
+
+#endif // CYGONCE_HAL_PLF_STUB_H
diff --git a/ecos/packages/hal/arm/aim711/current/misc/redboot_ROMRAM.ecm b/ecos/packages/hal/arm/aim711/current/misc/redboot_ROMRAM.ecm
new file mode 100755
index 0000000..b2c2e46
--- /dev/null
+++ b/ecos/packages/hal/arm/aim711/current/misc/redboot_ROMRAM.ecm
@@ -0,0 +1,146 @@
+cdl_savefile_version 1;
+cdl_savefile_command cdl_savefile_version {};
+cdl_savefile_command cdl_savefile_command {};
+cdl_savefile_command cdl_configuration { description hardware template package };
+cdl_savefile_command cdl_package { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_component { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_option { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_interface { value_source user_value wizard_value inferred_value };
+
+cdl_configuration eCos {
+ description "" ;
+ hardware aim711 ;
+ template redboot ;
+ package -hardware CYGPKG_HAL_ARM current ;
+ package -hardware CYGPKG_HAL_ARM_AIM711 current ;
+ package -hardware CYGPKG_DEVS_FLASH_ARM_AIM711 current ;
+ package -hardware CYGPKG_DEVS_FLASH_SST_39VFXXX current ;
+ package -hardware CYGPKG_DEVS_ETH_ARM_KS32C5000 current ;
+ package -hardware CYGPKG_IO_SERIAL_ARM_AIM711 current ;
+ package -hardware CYGPKG_IO_SERIAL_ARM_S3C4510 current ;
+ package -hardware CYGPKG_IO_SERIAL_ARM_AIM711_S3C4510 current ;
+ package -hardware CYGPKG_IO_SERIAL_GENERIC_16X5X current ;
+ package -hardware CYGPKG_IO_SERIAL_ARM_AIM711_16X5X current ;
+ package -hardware CYGPKG_DEVICES_WALLCLOCK_ARM_AIM711 current ;
+ package -hardware CYGPKG_DEVICES_WALLCLOCK_DALLAS_DS1307 current ;
+ package -template CYGPKG_HAL current ;
+ package -template CYGPKG_INFRA current ;
+ package -template CYGPKG_REDBOOT current ;
+ package CYGPKG_ISOINFRA current ;
+ package CYGPKG_LIBC_STRING current ;
+ package CYGPKG_CRC current ;
+ package CYGPKG_IO_FLASH current ;
+ package CYGPKG_IO_ETH_DRIVERS current ;
+ package CYGPKG_NS_DNS current ;
+ package CYGPKG_COMPRESS_ZLIB current ;
+ package CYGPKG_IO_WALLCLOCK current ;
+};
+
+cdl_component CYGPKG_DEVS_ETH_ARM_KS32C5000_REDBOOT_HOLDS_ESA {
+ user_value 1
+};
+
+cdl_option CYGIMP_HAL_COMMON_INTERRUPTS_USE_INTERRUPT_STACK {
+ user_value 0
+};
+
+cdl_option CYGNUM_HAL_COMMON_INTERRUPTS_STACK_SIZE {
+ user_value 6144
+};
+
+cdl_option CYGDBG_HAL_COMMON_INTERRUPTS_SAVE_MINIMUM_CONTEXT {
+ user_value 0
+};
+
+cdl_option CYGDBG_HAL_COMMON_CONTEXT_SAVE_MINIMUM {
+ inferred_value 0
+};
+
+cdl_option CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS {
+ inferred_value 1
+};
+
+cdl_option CYGSEM_HAL_ROM_MONITOR {
+ inferred_value 1
+};
+
+cdl_option CYGSEM_HAL_USE_ROM_MONITOR {
+ user_value 0 0
+};
+
+cdl_option CYGHWR_HAL_ARM_BIGENDIAN {
+ user_value 1
+};
+
+cdl_component CYG_HAL_STARTUP {
+ user_value ROMRAM
+};
+
+cdl_component CYGBLD_BUILD_REDBOOT {
+ user_value 1
+};
+
+cdl_option CYGBLD_BUILD_REDBOOT_WITH_THREADS {
+ user_value 1
+};
+
+cdl_option CYGPKG_REDBOOT_ANY_CONSOLE {
+ user_value 0
+};
+
+cdl_option CYGBLD_REDBOOT_MIN_IMAGE_SIZE {
+ user_value 0x00025000
+};
+
+cdl_option CYGBLD_REDBOOT_FLASH_BOOT_OFFSET {
+ user_value 0
+};
+
+cdl_option CYGSEM_REDBOOT_FLASH_COMBINED_FIS_AND_CONFIG {
+ user_value 0
+};
+
+cdl_component CYGPKG_REDBOOT_DISK {
+ user_value 0
+};
+
+cdl_option CYGNUM_REDBOOT_BOOT_SCRIPT_TIMEOUT_RESOLUTION {
+ user_value 1
+};
+
+cdl_option CYGNUM_REDBOOT_BOOT_SCRIPT_DEFAULT_TIMEOUT {
+ user_value 10
+};
+
+cdl_component CYGPKG_REDBOOT_AIM711_EEPROM_RDWR {
+ user_value 1
+};
+
+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_BSD_FUNCS_HEADER {
+ inferred_value 1 <cyg/libc/string/bsdstring.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_DNS_HEADER {
+ user_value 1 <cyg/ns/dns/dns.h>
+};
+
+cdl_option CYGNUM_DEVS_FLASH_ARM_AIM711_SIZE {
+ user_value 2
+};
+
diff --git a/ecos/packages/hal/arm/aim711/current/misc/redboot_ROMRAM_visionsystems.ecm b/ecos/packages/hal/arm/aim711/current/misc/redboot_ROMRAM_visionsystems.ecm
new file mode 100755
index 0000000..f7a6214
--- /dev/null
+++ b/ecos/packages/hal/arm/aim711/current/misc/redboot_ROMRAM_visionsystems.ecm
@@ -0,0 +1,235 @@
+cdl_savefile_version 1;
+cdl_savefile_command cdl_savefile_version {};
+cdl_savefile_command cdl_savefile_command {};
+cdl_savefile_command cdl_configuration { description hardware template package };
+cdl_savefile_command cdl_package { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_component { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_option { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_interface { value_source user_value wizard_value inferred_value };
+
+cdl_configuration eCos {
+ description "" ;
+ hardware aim711 ;
+ template redboot ;
+ package -hardware CYGPKG_HAL_ARM current ;
+ package -hardware CYGPKG_HAL_ARM_AIM711 current ;
+ package -hardware CYGPKG_DEVS_FLASH_ARM_AIM711 current ;
+ package -hardware CYGPKG_DEVS_FLASH_SST_39VFXXX current ;
+ package -hardware CYGPKG_DEVS_ETH_ARM_KS32C5000 current ;
+ package -hardware CYGPKG_IO_SERIAL_ARM_AIM711 current ;
+ package -hardware CYGPKG_IO_SERIAL_ARM_S3C4510 current ;
+ package -hardware CYGPKG_IO_SERIAL_ARM_AIM711_S3C4510 current ;
+ package -hardware CYGPKG_IO_SERIAL_GENERIC_16X5X current ;
+ package -hardware CYGPKG_IO_SERIAL_ARM_AIM711_16X5X current ;
+ package -hardware CYGPKG_DEVICES_WALLCLOCK_ARM_AIM711 current ;
+ package -hardware CYGPKG_DEVICES_WALLCLOCK_DALLAS_DS1307 current ;
+ package -template CYGPKG_HAL current ;
+ package -template CYGPKG_INFRA current ;
+ package -template CYGPKG_REDBOOT current ;
+ package CYGPKG_ISOINFRA current ;
+ package CYGPKG_LIBC_STRING current ;
+ package CYGPKG_CRC current ;
+ package CYGPKG_IO_FLASH current ;
+ package CYGPKG_IO_ETH_DRIVERS current ;
+ package CYGPKG_NS_DNS current ;
+ package CYGPKG_COMPRESS_ZLIB current ;
+ package CYGPKG_IO_WALLCLOCK current ;
+};
+
+cdl_option CYGFUN_LIBC_STRING_BSD_FUNCS {
+ inferred_value 0
+};
+
+cdl_option CYGDBG_IO_ETH_DRIVERS_DEBUG_VERBOSITY {
+ user_value 0
+};
+
+cdl_option CYGPKG_DEVS_ETH_ARM_KS32C5000_DEBUG_LEVEL {
+ user_value 0
+};
+
+cdl_option CYGPKG_DEVS_ETH_ARM_KS32C5000_PHY_LXT970 {
+ user_value 0
+};
+
+cdl_option CYGPKG_DEVS_ETH_ARM_KS32C5000_PHY_RTL8201 {
+ user_value 1
+};
+
+cdl_option CYGPKG_DEVS_ETH_ARM_KS32C5000_PHYADDR {
+ user_value 2
+};
+
+cdl_component CYGPKG_DEVS_ETH_ARM_KS32C5000_REDBOOT_HOLDS_ESA {
+ user_value 1
+};
+
+cdl_option CYGIMP_HAL_COMMON_INTERRUPTS_USE_INTERRUPT_STACK {
+ user_value 0
+};
+
+cdl_option CYGNUM_HAL_COMMON_INTERRUPTS_STACK_SIZE {
+ user_value 6144
+};
+
+cdl_option CYGDBG_HAL_COMMON_INTERRUPTS_SAVE_MINIMUM_CONTEXT {
+ user_value 0
+};
+
+cdl_option CYGDBG_HAL_COMMON_CONTEXT_SAVE_MINIMUM {
+ inferred_value 0
+};
+
+cdl_option CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS {
+ inferred_value 1
+};
+
+cdl_option CYGSEM_HAL_VIRTUAL_VECTOR_INIT_WHOLE_TABLE {
+ user_value 1
+};
+
+cdl_option CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_RESET {
+ user_value 1
+};
+
+cdl_option CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_VERSION {
+ user_value 1
+};
+
+cdl_option CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_DELAY_US {
+ user_value 1
+};
+
+cdl_option CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_DATA {
+ user_value 1
+};
+
+cdl_option CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_COMMS {
+ user_value 1
+};
+
+cdl_option CYGSEM_HAL_ROM_MONITOR {
+ inferred_value 1
+};
+
+cdl_option CYGSEM_HAL_USE_ROM_MONITOR {
+ user_value 0 0
+};
+
+cdl_option CYGPKG_HAL_GDB_FILEIO {
+ user_value 1
+};
+
+cdl_option CYGPKG_HAL_BUILD_COMPILER_TESTS {
+ user_value 0
+};
+
+cdl_option CYGHWR_HAL_ARM_BIGENDIAN {
+ user_value 1
+};
+
+cdl_component CYG_HAL_STARTUP {
+ user_value ROMRAM
+};
+
+cdl_component CYGBLD_BUILD_REDBOOT {
+ user_value 1
+};
+
+cdl_option CYGBLD_BUILD_REDBOOT_WITH_THREADS {
+ user_value 1
+};
+
+cdl_option CYGDAT_REDBOOT_CUSTOM_VERSION {
+ user_value 1 "VS 1.1.0"
+};
+
+cdl_option CYGNUM_REDBOOT_CMD_LINE_EDITING {
+ user_value 16
+};
+
+cdl_component CYGDAT_REDBOOT_DEFAULT_IP_ADDR {
+ user_value 1 192,168,1,254
+};
+
+cdl_option CYGSEM_REDBOOT_DEFAULT_NO_BOOTP {
+ user_value 1
+};
+
+cdl_component CYGPKG_REDBOOT_NETWORKING_DNS {
+ user_value 1
+};
+
+cdl_option CYGPKG_REDBOOT_ANY_CONSOLE {
+ user_value 0
+};
+
+cdl_option CYGSEM_REDBOOT_PLF_STARTUP {
+ user_value 0
+};
+
+cdl_option CYGBLD_REDBOOT_MIN_IMAGE_SIZE {
+ user_value 0x00025000
+};
+
+cdl_option CYGBLD_REDBOOT_FLASH_BOOT_OFFSET {
+ user_value 0
+};
+
+cdl_option CYGSEM_REDBOOT_FLASH_COMBINED_FIS_AND_CONFIG {
+ user_value 0
+};
+
+cdl_component CYGPKG_REDBOOT_DISK {
+ user_value 0
+};
+
+cdl_option CYGNUM_REDBOOT_BOOT_SCRIPT_TIMEOUT_RESOLUTION {
+ user_value 1
+};
+
+cdl_option CYGNUM_REDBOOT_BOOT_SCRIPT_DEFAULT_TIMEOUT {
+ user_value 10
+};
+
+cdl_component CYGSEM_REDBOOT_BSP_SYSCALLS {
+ user_value 1
+};
+
+cdl_component CYGPKG_REDBOOT_AIM711_EEPROM_RDWR {
+ user_value 1
+};
+
+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_BSD_FUNCS_HEADER {
+ inferred_value 1 <cyg/libc/string/bsdstring.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_DNS_HEADER {
+ user_value 1 <cyg/ns/dns/dns.h>
+};
+
+cdl_option CYGNUM_DEVS_FLASH_ARM_AIM711_SIZE {
+ user_value 2
+};
+
+cdl_option CYGPKG_NS_DNS_BUILD {
+ user_value 0
+};
+
+
diff --git a/ecos/packages/hal/arm/aim711/current/src/aim711_misc.c b/ecos/packages/hal/arm/aim711/current/src/aim711_misc.c
new file mode 100755
index 0000000..0e2e40a
--- /dev/null
+++ b/ecos/packages/hal/arm/aim711/current/src/aim711_misc.c
@@ -0,0 +1,597 @@
+//==========================================================================
+//
+// aim711_misc.c
+//
+// HAL misc board support code for ARM Industrial Module AIM 711
+//
+//==========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//==========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): gthomas
+// Contributors: gthomas, jskov, r.cassebohm
+// Michael Checky <Michael_Checky@ThermoKing.com>
+// Grant Edwards <grante@visi.com>
+// Date: 2001-07-31
+// Purpose: HAL board support
+// Description: Implementations of HAL board interfaces
+//
+//####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/infra/diag.h> // diag_printf()
+
+#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_cache.h>
+#include <cyg/hal/hal_intr.h> // necessary?
+#include <cyg/hal/hal_if.h> // calling interface
+#include <cyg/hal/hal_misc.h> // helper functions
+#ifdef CYGDBG_HAL_DEBUG_GDB_BREAK_SUPPORT
+#include <cyg/hal/drv_api.h> // HAL ISR support
+#endif
+
+#include <pkgconf/system.h>
+
+#ifndef MIN
+#define MIN(_x_,_y_) ((_x_) < (_y_) ? (_x_) : (_y_))
+#endif
+#ifndef MAX
+#define MAX(_x_,_y_) ((_x_) > (_y_) ? (_x_) : (_y_))
+#endif
+
+//======================================================================
+// Use Timer0 for kernel clock
+
+static cyg_uint32 _period;
+
+#ifdef CYGDBG_HAL_DEBUG_GDB_BREAK_SUPPORT
+#if 0 // Not supported yet
+static cyg_interrupt abort_interrupt;
+static cyg_handle_t abort_interrupt_handle;
+
+// This ISR is called only for the Abort button interrupt
+static int
+ks32c_abort_isr(cyg_vector_t vector, cyg_addrword_t data, HAL_SavedRegisters *regs)
+{
+ cyg_hal_user_break((CYG_ADDRWORD*)regs);
+ cyg_drv_interrupt_acknowledge(CYGNUM_HAL_INTERRUPT_EXT2);
+ return 0; // No need to run DSR
+}
+#endif
+#endif
+
+void hal_clock_initialize(cyg_uint32 period)
+{
+ cyg_uint32 tmod, clkcon;
+
+ // Disable timer 0
+ HAL_READ_UINT32(KS32C_TMOD, tmod);
+ tmod &= ~(KS32C_TMOD_TE0);
+ HAL_WRITE_UINT32(KS32C_TMOD, 0);
+
+ tmod &= ~(KS32C_TMOD_TMD0 | KS32C_TMOD_TCLR0);
+ tmod |= KS32C_TMOD_TE0;
+
+ // Set counter
+ HAL_READ_UINT32(KS32C_CLKCON, clkcon);
+ period = period/((clkcon & 0xffff) + 1);
+ HAL_WRITE_UINT32(KS32C_TDATA0, period);
+
+ // And enable timer
+ HAL_WRITE_UINT32(KS32C_TMOD, tmod);
+
+ _period = period;
+
+#ifdef CYGDBG_HAL_DEBUG_GDB_BREAK_SUPPORT
+#if 0 // Not supported yet
+ cyg_drv_interrupt_create(CYGNUM_HAL_INTERRUPT_EXT2,
+ 99, // Priority
+ 0, // Data item passed to interrupt handler
+ ks32c_abort_isr,
+ 0,
+ &abort_interrupt_handle,
+ &abort_interrupt);
+ cyg_drv_interrupt_attach(abort_interrupt_handle);
+ cyg_drv_interrupt_unmask(CYGNUM_HAL_INTERRUPT_EXT2);
+#endif
+#endif
+}
+
+void hal_clock_reset(cyg_uint32 vector, cyg_uint32 period)
+{
+ _period = period;
+}
+
+void hal_clock_read(cyg_uint32 *pvalue)
+{
+ cyg_uint32 value;
+
+ HAL_READ_UINT32(KS32C_TCNT0, value);
+ *pvalue = _period - value;
+}
+
+static void
+hal_ks32c_i2c_init(void);
+
+//======================================================================
+// Interrupt controller stuff
+
+void hal_hardware_init(void)
+{
+ cyg_uint32 intmask, syscfg, val;
+
+ // Setup external IO timing
+ // Timing for Ext0 is for external 16550 UART, all other are default values
+ val = ( KS32C_EXTACON_INIT(1,1,3,0) << KS32C_EXTACON0_EXT0_shift ) \
+ | ( KS32C_EXTACON_INIT(1,1,3,1) << KS32C_EXTACON0_EXT1_shift );
+ HAL_WRITE_UINT32(KS32C_EXTACON0, val);
+ val = ( KS32C_EXTACON_INIT(1,1,3,1) << KS32C_EXTACON1_EXT2_shift ) \
+ | ( KS32C_EXTACON_INIT(1,1,3,1) << KS32C_EXTACON1_EXT3_shift );
+ HAL_WRITE_UINT32(KS32C_EXTACON1, val);
+
+ // Setup GPIO ports
+ HAL_READ_UINT32(KS32C_IOPMOD, val);
+ val |= (AIM711_GPIO_DOUT0_DAK0|AIM711_GPIO_DOUT1_DAK1 \
+ |AIM711_GPIO_DOUT2_TO0|AIM711_GPIO_DOUT3_TO1 \
+ |AIM711_GPIO_POWERLED);
+ HAL_WRITE_UINT32(KS32C_IOPMOD, val);
+
+ // Make Power LED on
+ AIM711_GPIO_SET(AIM711_GPIO_POWERLED);
+
+ // Enable XIRQ0 for external 16550 UART
+ HAL_READ_UINT32(KS32C_IOPCON, val);
+ val &= ~( KS32C_IOPCON_XIRQ_MASK << KS32C_IOPCON_XIRQ0_shift );
+ val |= ( KS32C_IOPCON_XIRQ_LEVEL|KS32C_IOPCON_XIRQ_AKTIV_HI| \
+ KS32C_IOPCON_XIRQ_ENABLE ) << KS32C_IOPCON_XIRQ0_shift ;
+ HAL_WRITE_UINT32(KS32C_IOPCON, val);
+
+ // Set up eCos/ROM interfaces
+ hal_if_init();
+
+ // Enable cache
+ HAL_READ_UINT32(KS32C_SYSCFG, syscfg);
+ syscfg &= ~KS32C_SYSCFG_CM_MASK;
+ syscfg |= KS32C_SYSCFG_CM_0R_8C|KS32C_SYSCFG_WE;
+ HAL_WRITE_UINT32(KS32C_SYSCFG, syscfg);
+ HAL_UCACHE_INVALIDATE_ALL();
+ HAL_UCACHE_ENABLE();
+
+ // Setup I2C bus
+ hal_ks32c_i2c_init();
+
+ // Clear global interrupt mask bit
+ HAL_READ_UINT32(KS32C_INTMSK, intmask);
+ intmask &= ~KS32C_INTMSK_GLOBAL;
+ HAL_WRITE_UINT32(KS32C_INTMSK, intmask);
+}
+
+// This routine is called to respond to a hardware interrupt (IRQ). It
+// should interrogate the hardware and return the IRQ vector number.
+
+int hal_IRQ_handler(void)
+{
+ // Do hardware-level IRQ handling
+ cyg_uint32 irq_status;
+ HAL_READ_UINT32(KS32C_INTOFFSET_IRQ, irq_status);
+ irq_status = irq_status / 4;
+ if (CYGNUM_HAL_ISR_MAX >= irq_status)
+ return irq_status;
+ // It's a bit bogus to test for FIQs after IRQs, but we use the
+ // latter more, so don't impose the overhead of checking for FIQs
+ HAL_READ_UINT32(KS32C_INTOFFSET_FIQ, irq_status);
+ irq_status = irq_status / 4;
+ if (CYGNUM_HAL_ISR_MAX >= irq_status)
+ return irq_status;
+ return CYGNUM_HAL_INTERRUPT_NONE;
+}
+
+// -------------------------------------------------------------------------
+//
+// Interrupt control
+//
+
+void hal_interrupt_mask(int vector)
+{
+ cyg_uint32 mask, old_mask;
+ HAL_READ_UINT32(KS32C_INTMSK, mask);
+ old_mask = mask;
+ mask |= (1<<vector);
+ HAL_WRITE_UINT32(KS32C_INTMSK, mask);
+}
+
+void hal_interrupt_unmask(int vector)
+{
+ cyg_uint32 mask, old_mask;
+ HAL_READ_UINT32(KS32C_INTMSK, mask);
+ old_mask = mask;
+ mask &= ~(1<<vector);
+ HAL_WRITE_UINT32(KS32C_INTMSK, mask);
+}
+
+void hal_interrupt_acknowledge(int vector)
+{
+ HAL_WRITE_UINT32(KS32C_INTPND, (1<<vector));
+}
+
+void hal_interrupt_configure(int vector, int level, int up)
+{
+}
+
+void hal_interrupt_set_level(int vector, int level)
+{
+}
+
+void hal_show_IRQ(int vector, int data, int handler)
+{
+}
+
+// -------------------------------------------------------------------------
+//
+// Delay for some number of micro-seconds
+//
+void hal_delay_us(cyg_int32 usecs)
+{
+ cyg_uint32 count;
+ cyg_uint32 ticks = ((CYGNUM_HAL_RTC_PERIOD*CYGNUM_HAL_RTC_DENOMINATOR)/1000000) * usecs;
+ cyg_uint32 tmod;
+
+ // Disable timer 1
+ HAL_READ_UINT32(KS32C_TMOD, tmod);
+ tmod &= ~(KS32C_TMOD_TE1);
+ HAL_WRITE_UINT32(KS32C_TMOD, tmod);
+
+ tmod &= ~(KS32C_TMOD_TMD1 | KS32C_TMOD_TCLR1);
+ tmod |= KS32C_TMOD_TE1;
+
+ // Clear pending flag
+ HAL_WRITE_UINT32(KS32C_INTPND, (1 << CYGNUM_HAL_INTERRUPT_TIMER1));
+
+ // Set counter
+ HAL_WRITE_UINT32(KS32C_TDATA1, ticks);
+
+ // And enable timer
+ HAL_WRITE_UINT32(KS32C_TMOD, tmod);
+
+ // Wait for timer to underflow. Can't test the timer completion
+ // bit without actually enabling the interrupt. So instead watch
+ // the counter.
+ ticks /= 2; // wait for this threshold
+
+ // Wait till timer counts below threshold
+ do {
+ HAL_READ_UINT32(KS32C_TCNT1, count);
+ } while (count >= ticks);
+ // then wait for it to be reloaded
+ do {
+ HAL_READ_UINT32(KS32C_TCNT1, count);
+ } while (count < ticks);
+
+ // Then disable timer 1 again
+ tmod &= ~KS32C_TMOD_TE1;
+ HAL_WRITE_UINT32(KS32C_TMOD, tmod);
+}
+
+// -------------------------------------------------------------------------
+//
+// To reset the AIM 711, set P3 to low, which is connected to the reset
+// logic
+//
+void hal_reset(void)
+{
+ cyg_uint32 value;
+ CYG_INTERRUPT_STATE old;
+
+ CYGACC_CALL_IF_DELAY_US(100000);
+
+ // Set P3 to output
+ HAL_READ_UINT32(KS32C_IOPMOD, value);
+ value |= AIM711_GPIO_RESET;
+ HAL_WRITE_UINT32(KS32C_IOPMOD, value);
+
+ // Set P3 to low
+ AIM711_GPIO_CLR(AIM711_GPIO_RESET);
+
+ HAL_DISABLE_INTERRUPTS(old);
+ while (1)
+ ;
+}
+
+//----------------------------------------------------------------------
+//
+// I2C Support
+//
+
+#include <string.h>
+#include <cyg/hal/drv_api.h>
+
+#ifdef CYGPKG_ERROR
+#include <errno.h>
+#define I2C_STATUS_SUCCESS (ENOERR)
+#define I2C_STATUS_MUTEX (-EINTR)
+#define I2C_STATUS_BUSY (-EBUSY)
+#define I2C_STATUS_ADDR_NAK (-1000)
+#define I2C_STATUS_DATA_NAK (-1001)
+#else
+#define I2C_STATUS_SUCCESS (0)
+#define I2C_STATUS_MUTEX (-1)
+#define I2C_STATUS_BUSY (-1)
+#define I2C_STATUS_ADDR_NAK (-1)
+#define I2C_STATUS_DATA_NAK (-1)
+#endif
+
+static cyg_drv_mutex_t i2c_mutex;
+
+// Initialize the I2C bus controller.
+static void
+hal_ks32c_i2c_init(void)
+{
+ cyg_uint32 prescale = KS32C_I2C_FREQ(100000);
+
+ // reset the bus controller
+ HAL_WRITE_UINT32(KS32C_I2CCON, KS32C_I2C_CON_RESET);
+
+ // set the bus frequency
+ HAL_WRITE_UINT32(KS32C_I2CPS, prescale);
+
+ cyg_drv_mutex_init(&i2c_mutex);
+}
+
+#define RETURN(_x_) \
+ CYG_MACRO_START \
+ diag_printf("%s: line %d error=%d\n",__FUNCTION__,__LINE__,(_x_)); \
+ return (_x_); \
+ CYG_MACRO_END
+
+// Transfer the I2C messages.
+int
+hal_ks32c_i2c_transfer(cyg_uint32 nmsg, hal_ks32c_i2c_msg_t* pmsgs)
+{
+ cyg_uint32 i2ccon;
+
+ // serialize access to the I2C bus
+ if (!cyg_drv_mutex_lock(&i2c_mutex))
+ {
+ RETURN(I2C_STATUS_MUTEX);
+ }
+
+ // is the bus free ?
+ do
+ {
+ HAL_READ_UINT32(KS32C_I2CCON, i2ccon);
+ } while (i2ccon & KS32C_I2C_CON_BUSY);
+
+ // transfer the messages
+ for (; nmsg > 0; --nmsg, ++pmsgs)
+ {
+ // generate the start condition
+ HAL_WRITE_UINT32(KS32C_I2CCON, KS32C_I2C_CON_START);
+
+ // send the device address
+ HAL_WRITE_UINT32(KS32C_I2CBUF, pmsgs->devaddr);
+ do
+ {
+ HAL_READ_UINT32(KS32C_I2CCON, i2ccon);
+ } while ((i2ccon & KS32C_I2C_CON_BF) == 0);
+
+ // check if the slave ACK'ed the device address
+ if (i2ccon & KS32C_I2C_CON_LRB)
+ {
+ // generate the stop condition
+ HAL_WRITE_UINT32(KS32C_I2CCON, KS32C_I2C_CON_STOP);
+ cyg_drv_mutex_unlock(&i2c_mutex);
+ RETURN(I2C_STATUS_ADDR_NAK);
+ }
+
+ // read the message ?
+ if (pmsgs->devaddr & KS32C_I2C_RD)
+ {
+ cyg_uint8* pbuf = pmsgs->pbuf;
+ cyg_uint32 bufsize = pmsgs->bufsize;
+ cyg_uint32 i2cbuf;
+
+ // read more than one byte ?
+ if (--bufsize > 0)
+ {
+ // enable ACK
+ HAL_WRITE_UINT32(KS32C_I2CCON, KS32C_I2C_CON_ACK);
+
+ while (bufsize-- > 0)
+ {
+ do
+ {
+ HAL_READ_UINT32(KS32C_I2CCON, i2ccon);
+ } while ((i2ccon & KS32C_I2C_CON_BF) == 0);
+
+ // read the data byte
+ HAL_READ_UINT32(KS32C_I2CBUF, i2cbuf);
+ *pbuf++ = i2cbuf;
+ }
+ }
+
+ // disable ACK
+ HAL_WRITE_UINT32(KS32C_I2CCON, 0);
+ do
+ {
+ HAL_READ_UINT32(KS32C_I2CCON, i2ccon);
+ } while ((i2ccon & KS32C_I2C_CON_BF) == 0);
+
+ // read the data byte
+ HAL_READ_UINT32(KS32C_I2CBUF, i2cbuf);
+ *pbuf++ = i2cbuf;
+ }
+
+ // write the message
+ else
+ {
+ cyg_uint32 i;
+
+ for (i = 0; i < pmsgs->bufsize; ++i)
+ {
+ HAL_WRITE_UINT32(KS32C_I2CBUF, pmsgs->pbuf[i]);
+ do
+ {
+ HAL_READ_UINT32(KS32C_I2CCON, i2ccon);
+ } while ((i2ccon & KS32C_I2C_CON_BF) == 0);
+
+ // check if the slave ACK'ed the data byte
+ if (i2ccon & KS32C_I2C_CON_LRB)
+ {
+ // generate the stop condition
+ HAL_WRITE_UINT32(KS32C_I2CCON, KS32C_I2C_CON_STOP);
+ cyg_drv_mutex_unlock(&i2c_mutex);
+ RETURN(I2C_STATUS_DATA_NAK);
+ }
+ }
+ }
+
+ // generate a restart condition ?
+ if (nmsg > 1)
+ {
+ HAL_WRITE_UINT32(KS32C_I2CCON, KS32C_I2C_CON_RESTART);
+ }
+ }
+
+ // generate the stop condition
+ HAL_WRITE_UINT32(KS32C_I2CCON, KS32C_I2C_CON_STOP);
+
+ cyg_drv_mutex_unlock(&i2c_mutex);
+ return I2C_STATUS_SUCCESS;
+}
+
+//----------------------------------------------------------------------
+//
+// EEPROM Support
+//
+
+int hal_aim711_eeprom_write(cyg_uint8 *buf, int offset, int len)
+{
+ cyg_uint8 addr_page[1 + AIM711_EEPROM_PAGESIZE];
+ cyg_uint8 const* pbufbyte = (cyg_uint8 const*)buf;
+ hal_ks32c_i2c_msg_t msg;
+ cyg_uint8 addr;
+ cyg_uint32 bufsize;
+
+ if (offset > AIM711_EEPROM_SIZE)
+ RETURN(-1);
+
+ if (len > (AIM711_EEPROM_SIZE - offset))
+ len = (AIM711_EEPROM_SIZE - offset);
+
+ addr = offset;
+ bufsize = len;
+
+ msg.devaddr = AIM711_EEPROM_ADDR | KS32C_I2C_WR;
+ msg.pbuf = addr_page;
+
+ while (bufsize > 0)
+ {
+ cyg_uint32 nbytes;
+ int status;
+
+ // write at most a page at a time
+ nbytes = MIN(bufsize, AIM711_EEPROM_PAGESIZE);
+
+ // don't cross a page boundary
+ if (addr%AIM711_EEPROM_PAGESIZE)
+ {
+ nbytes = MIN(nbytes, AIM711_EEPROM_PAGESIZE - addr%AIM711_EEPROM_PAGESIZE);
+ }
+
+ // build the write message
+ addr_page[0] = addr;
+ memcpy(&addr_page[1], pbufbyte, nbytes);
+ msg.bufsize = nbytes + 1;
+ addr += nbytes;
+ pbufbyte += nbytes;
+ bufsize -= nbytes;
+
+ // transfer the message
+ status = hal_ks32c_i2c_transfer(1, &msg);
+ if (status != I2C_STATUS_SUCCESS)
+ {
+ RETURN(status);
+ }
+
+ // delay 10 msec
+ CYGACC_CALL_IF_DELAY_US(10000);
+ }
+
+ return len;
+}
+
+int hal_aim711_eeprom_read(cyg_uint8 *buf, int offset, int len)
+{
+ hal_ks32c_i2c_msg_t msgs[2];
+ int status;
+ cyg_uint8 toffset;
+
+ if (offset > AIM711_EEPROM_SIZE)
+ RETURN(-1);
+
+ if (len > (AIM711_EEPROM_SIZE - offset))
+ len = (AIM711_EEPROM_SIZE - offset);
+
+ toffset = offset;
+
+ // write message to set the address
+ msgs[0].devaddr = AIM711_EEPROM_ADDR | KS32C_I2C_WR;
+ msgs[0].pbuf = &toffset;
+ msgs[0].bufsize = sizeof(toffset);
+
+ // read message
+ msgs[1].devaddr = AIM711_EEPROM_ADDR | KS32C_I2C_RD;
+ msgs[1].pbuf = buf;
+ msgs[1].bufsize = len;
+
+ // transfer the messages
+ status = hal_ks32c_i2c_transfer(2, msgs);
+
+ if (status < 0)
+ RETURN(status);
+
+ return len;
+}
+
+//-----------------------------------------------------------------------------
+//
+
diff --git a/ecos/packages/hal/arm/aim711/current/src/hal_diag.c b/ecos/packages/hal/arm/aim711/current/src/hal_diag.c
new file mode 100755
index 0000000..18254f8
--- /dev/null
+++ b/ecos/packages/hal/arm/aim711/current/src/hal_diag.c
@@ -0,0 +1,375 @@
+/*=============================================================================
+//
+// hal_diag.c
+//
+// HAL diagnostic output code
+//
+//=============================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jskov
+// Contributors:jskov
+// Date: 2001-03-16
+// Purpose: HAL diagnostic output
+// Description: Implementations of HAL diagnostic output support.
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================*/
+
+#include <pkgconf/hal.h>
+#include CYGBLD_HAL_PLATFORM_H
+
+#include <cyg/infra/cyg_type.h> // base types
+
+#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
+
+#include <cyg/hal/plf_io.h> // SIO registers
+
+#define SIO_BRDDIV (((CYGNUM_HAL_CPUCLOCK/2/16/CYGNUM_HAL_VIRTUAL_VECTOR_CHANNELS_DEFAULT_BAUD)<<4))
+
+//-----------------------------------------------------------------------------
+typedef struct {
+ cyg_uint8* base;
+ cyg_int32 msec_timeout;
+ int isr_vector_rx;
+ int isr_vector_tx;
+} channel_data_t;
+
+//-----------------------------------------------------------------------------
+
+char hextab[] = "0123456789ABCDEF";
+
+void putc_ser(int c)
+{
+ cyg_uint8* base = (cyg_uint8*)KS32C_UART1_BASE;
+ cyg_uint32 status;
+ do {
+ HAL_READ_UINT32(base+KS32C_UART_STAT, status);
+ } while ((status & KS32C_UART_STAT_TXE) == 0);
+
+ HAL_WRITE_UINT32(base+KS32C_UART_TXBUF, c);
+}
+
+void putint(int a)
+{
+ int i;
+ putc_ser('0');
+ putc_ser('x');
+ for (i = 0; i < 8; i++) {
+ putc_ser(hextab[(a>>(28-(4*i))) & 0x0f]);
+ }
+ putc_ser('\r');
+ putc_ser('\n');
+}
+
+void
+init_ser(void)
+{
+ cyg_uint8* base = (cyg_uint8*)KS32C_UART1_BASE;
+
+ // 8-1-no parity.
+ HAL_WRITE_UINT32(base+KS32C_UART_LCON,
+ KS32C_UART_LCON_8_DBITS|KS32C_UART_LCON_1_SBITS|KS32C_UART_LCON_NO_PARITY);
+
+ // Mask interrupts.
+ HAL_INTERRUPT_MASK(CYGNUM_HAL_INTERRUPT_UART0_RX);
+ HAL_INTERRUPT_MASK(CYGNUM_HAL_INTERRUPT_UART0_TX);
+
+ HAL_WRITE_UINT32(base+KS32C_UART_BRDIV, SIO_BRDDIV);
+}
+
+//-----------------------------------------------------------------------------
+
+static void
+cyg_hal_plf_serial_init_channel(void* __ch_data)
+{
+ cyg_uint8* base = ((channel_data_t*)__ch_data)->base;
+
+ // 8-1-no parity.
+ HAL_WRITE_UINT32(base+KS32C_UART_LCON,
+ KS32C_UART_LCON_8_DBITS|KS32C_UART_LCON_1_SBITS|KS32C_UART_LCON_NO_PARITY);
+
+ HAL_WRITE_UINT32(base+KS32C_UART_BRDIV, SIO_BRDDIV);
+
+ // Mask interrupts
+ HAL_INTERRUPT_MASK(((channel_data_t*)__ch_data)->isr_vector_rx);
+ HAL_INTERRUPT_MASK(((channel_data_t*)__ch_data)->isr_vector_tx);
+
+ // Enable RX and TX
+ HAL_WRITE_UINT32(base+KS32C_UART_CON, KS32C_UART_CON_RXM_INT|KS32C_UART_CON_TXM_INT);
+}
+
+void
+cyg_hal_plf_serial_putc(void *__ch_data, char c)
+{
+ cyg_uint8* base = ((channel_data_t*)__ch_data)->base;
+ cyg_uint32 status, ch;
+ CYGARC_HAL_SAVE_GP();
+
+ do {
+ HAL_READ_UINT32(base+KS32C_UART_STAT, status);
+ } while ((status & KS32C_UART_STAT_TXE) == 0);
+
+ ch = (cyg_uint32)c;
+ HAL_WRITE_UINT32(base+KS32C_UART_TXBUF, ch);
+
+ CYGARC_HAL_RESTORE_GP();
+}
+
+static cyg_bool
+cyg_hal_plf_serial_getc_nonblock(void* __ch_data, cyg_uint8* ch)
+{
+ channel_data_t* chan = (channel_data_t*)__ch_data;
+ cyg_uint8* base = chan->base;
+ cyg_uint32 stat;
+ cyg_uint32 c;
+
+ HAL_READ_UINT32(base+KS32C_UART_STAT, stat);
+ if ((stat & KS32C_UART_STAT_RDR) == 0)
+ return false;
+
+ HAL_READ_UINT32(base+KS32C_UART_RXBUF, c);
+ *ch = (cyg_uint8)(c & 0xff);
+
+ HAL_INTERRUPT_ACKNOWLEDGE(chan->isr_vector_rx);
+
+ 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;
+}
+
+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;
+ int ret = 0;
+ CYGARC_HAL_SAVE_GP();
+
+ switch (__func) {
+ case __COMMCTL_IRQ_ENABLE:
+ irq_state = 1;
+ HAL_INTERRUPT_ACKNOWLEDGE(chan->isr_vector_rx);
+ HAL_INTERRUPT_UNMASK(chan->isr_vector_rx);
+ break;
+ case __COMMCTL_IRQ_DISABLE:
+ ret = irq_state;
+ irq_state = 0;
+ HAL_INTERRUPT_MASK(chan->isr_vector_rx);
+ break;
+ case __COMMCTL_DBG_ISR_VECTOR:
+ ret = chan->isr_vector_rx;
+ 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;
+ channel_data_t* chan = (channel_data_t*)__ch_data;
+ cyg_uint32 c;
+ cyg_uint8 ch;
+ cyg_uint32 stat;
+ CYGARC_HAL_SAVE_GP();
+
+ *__ctrlc = 0;
+ HAL_READ_UINT32(chan->base+KS32C_UART_STAT, stat);
+ if ( (stat & KS32C_UART_STAT_RDR) != 0 ) {
+
+ HAL_READ_UINT32(chan->base+KS32C_UART_RXBUF, c);
+ ch = (cyg_uint8)(c & 0xff);
+ if( cyg_hal_is_break( &ch , 1 ) )
+ *__ctrlc = 1;
+
+ res = CYG_ISR_HANDLED;
+ }
+
+ HAL_INTERRUPT_ACKNOWLEDGE(chan->isr_vector_rx);
+
+ CYGARC_HAL_RESTORE_GP();
+ return res;
+}
+
+static channel_data_t ks32c_ser_channels[2] = {
+ { (cyg_uint8*)KS32C_UART0_BASE, 1000, CYGNUM_HAL_INTERRUPT_UART0_RX, CYGNUM_HAL_INTERRUPT_UART0_TX },
+ { (cyg_uint8*)KS32C_UART1_BASE, 1000, CYGNUM_HAL_INTERRUPT_UART1_RX, CYGNUM_HAL_INTERRUPT_UART1_TX }
+};
+
+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);
+
+ // Init channels
+ cyg_hal_plf_serial_init_channel(&ks32c_ser_channels[0]);
+ cyg_hal_plf_serial_init_channel(&ks32c_ser_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, &ks32c_ser_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, &ks32c_ser_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();
+}
+
+//-----------------------------------------------------------------------------
+// LED
+void
+hal_diag_led(int mask)
+{
+ cyg_uint32 l;
+
+ HAL_READ_UINT32(KS32C_IOPDATA, l);
+ l &= ~(AIM711_GPIO_LED0|AIM711_GPIO_LED1|AIM711_GPIO_LED2);
+ l |= (~mask & (AIM711_GPIO_LED0|AIM711_GPIO_LED1|AIM711_GPIO_LED2));
+ HAL_WRITE_UINT32(KS32C_IOPDATA, l);
+}
+
+//-----------------------------------------------------------------------------
+// End of hal_diag.c
diff --git a/ecos/packages/hal/arm/aim711/current/src/redboot_eeprom.c b/ecos/packages/hal/arm/aim711/current/src/redboot_eeprom.c
new file mode 100755
index 0000000..6fb358e
--- /dev/null
+++ b/ecos/packages/hal/arm/aim711/current/src/redboot_eeprom.c
@@ -0,0 +1,159 @@
+//==========================================================================
+//
+// redboot_eeprom.c
+//
+// RedBoot command to read and write eeprom content of the
+// ARM Industrial Module AIM 711
+//
+//==========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//==========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): rcassebohm
+// Contributors: rcassebohm
+// Date: 2003-11-10
+// Purpose:
+// Description:
+//
+// RedBoot command to read and write eeprom content of the
+// ARM Industrial Module AIM 711
+// This code is part of RedBoot (tm).
+//
+//####DESCRIPTIONEND####
+//
+//==========================================================================
+
+#include <pkgconf/hal.h>
+#include <redboot.h>
+
+#include <cyg/hal/hal_io.h>
+
+// Exported CLI function(s)
+static void do_eeprom_read(int argc, char *argv[]);
+RedBoot_cmd("eeprom_read",
+ "Read eeprom content",
+ "-b <location> -o <eeprom offset> -l <length> [-d dump]",
+ do_eeprom_read
+ );
+
+static void do_eeprom_write(int argc, char *argv[]);
+RedBoot_cmd("eeprom_write",
+ "Write eeprom content",
+ "[-b <location>] -o <eeprom offset> [-l <length>]",
+ do_eeprom_write
+ );
+
+static void
+do_eeprom_read(int argc, char *argv[])
+{
+ bool base_addr_set, offset_set, length_set, dump;
+ unsigned long base_addr, offset, length;
+ struct option_info opts[4];
+ cyg_uint8 *buf;
+ int ret;
+
+ init_opts(&opts[0], 'b', true, OPTION_ARG_TYPE_NUM,
+ (void **)&base_addr, (bool *)&base_addr_set, "location");
+ init_opts(&opts[1], 'o', true, OPTION_ARG_TYPE_NUM,
+ (void **)&offset, (bool *)&offset_set, "eeprom offset");
+ init_opts(&opts[2], 'l', true, OPTION_ARG_TYPE_NUM,
+ (void **)&length, (bool *)&length_set, "length");
+ init_opts(&opts[3], 'd', true, OPTION_ARG_TYPE_FLG,
+ (void **)&dump, 0, "dump data");
+ if (!scan_opts(argc, argv, 1, opts, 4, 0, 0, "")) {
+ return;
+ }
+
+ if (!base_addr_set || !offset_set || !length_set)
+ {
+ diag_printf("usage: eeprom_read -b <location> -o <eeprom offset>"
+ " -l <length> [-d dump]\n");
+ return;
+ }
+
+ buf = (cyg_uint8 *)base_addr;
+ ret = hal_aim711_eeprom_read(buf, offset, length);
+ if (ret < 0)
+ {
+ diag_printf("Error while trying to read eeprom content\n");
+ return;
+ }
+
+ diag_printf("Read %d bytes of eeprom content\n", ret);
+
+ if (dump)
+ diag_dump_buf((void *)buf, ret);
+}
+
+static void
+do_eeprom_write(int argc, char *argv[])
+{
+ bool base_addr_set, offset_set, length_set;
+ unsigned long base_addr, offset, length;
+ struct option_info opts[3];
+ cyg_uint8 *buf;
+ int ret;
+
+ base_addr = load_address;
+ length = load_address_end - load_address;
+
+ init_opts(&opts[0], 'b', true, OPTION_ARG_TYPE_NUM,
+ (void **)&base_addr, (bool *)&base_addr_set, "location");
+ init_opts(&opts[1], 'o', true, OPTION_ARG_TYPE_NUM,
+ (void **)&offset, (bool *)&offset_set, "eeprom offset");
+ init_opts(&opts[2], 'l', true, OPTION_ARG_TYPE_NUM,
+ (void **)&length, (bool *)&length_set, "length");
+ if (!scan_opts(argc, argv, 1, opts, 3, 0, 0, "")) {
+ return;
+ }
+
+ if (!offset_set)
+ {
+ diag_printf("usage: eeprom_write [-b <location>] -o <eeprom offset>"
+ " [-l <length>]\n");
+ return;
+ }
+
+ buf = (cyg_uint8 *)base_addr;
+ ret = hal_aim711_eeprom_write(buf, offset, length);
+ if (ret < 0)
+ {
+ diag_printf("Error while trying to write eeprom content\n");
+ return;
+ }
+
+ diag_printf("Written %d bytes of eeprom content\n", ret);
+}
+
+// EOF redboot_eeprom.c
diff --git a/ecos/packages/hal/arm/arch/current/ChangeLog b/ecos/packages/hal/arm/arch/current/ChangeLog
new file mode 100644
index 0000000..609622f
--- /dev/null
+++ b/ecos/packages/hal/arm/arch/current/ChangeLog
@@ -0,0 +1,1844 @@
+2011-11-23 Nick Garnett <nickg@ecoscentric.com>
+
+ * cdl/hal_arm.cdl: Add CDL to control whether both IRQs and FIQs
+ are disabled in critical sections, or only IRQs. The default is to
+ disable both and translate any FIQs into IRQs for delivery. The
+ alternative is for FIQs to essentially exist outside eCos.
+
+ * include/hal_arch.h (CPSR_THREAD_INITIAL):
+ * include/hal_intr.h (CPSR_INTR_MASK, HAL_*_INTERRUPTS)
+ (HAL_*_FIQ): Add definitions for separating FIQ from IRQ.
+
+ * src/hal_mk_defs.c (main):
+ * src/vectors.S (start, FIQ, IRQ, spurious_IRQ):
+ (hal_*_interrupts, hal_*_FIQ, __fiq_stack_base): Add support for
+ separating FIQ from IRQ in critical section processing.
+
+2009-03-06 John Dallaway <john@dallaway.org.uk>
+
+ * cdl/hal_arm.cdl: Merge goals for CYGHWR_THUMB and
+ CYGBLD_ARM_ENABLE_THUMB_INTERWORK to allow selective application
+ of CDL solutions within the eCos Configuration Tool.
+
+2009-02-14 Jonathan Larmour <jifl@eCosCentric.com>
+
+ * src/vectors.S: Use .type xxx, function everywhere where
+ a global associated with code is defined. Otherwise objdump
+ treats it as data.
+
+2009-02-09 Nick Garnett <nickg@ecoscentric.com>
+
+ * src/vectors.S (start): The loop to initialize BSS was using a
+ BLS to terminate. This caused an extra zero to be stored beyond
+ the end of __bss_end. Usually this is benign, but when __bss_end
+ is at the very top of RAM, and the hardware generates an exception
+ for illegal accesses, this can crash the program before it even
+ starts. The fix is to use a BHI instructions and reverse the
+ compare, which will terminate the loop 1 word earlier.
+
+2009-02-02 Bart Veer <bartv@ecoscentric.com>
+
+ * cdl/hal_arm.cdl: add new architectural CFLAGS and LDFLAGS
+ options.
+
+2008-10-07 Jonathan Larmour <jifl@eCosCentric.com>
+
+ * src/arm.ld: Discard C++ EH-related sections when we can't
+ possibly support C++ EH (no CYGPKG_LIBSTDCXX).
+
+2008-09-27 Jonathan Larmour <jifl@eCosCentric.com>
+
+ * src/hal_mk_defs.c: Also export HAL_BREAKINST_THUMB and
+ HAL_BREAKINST_ARM to asm.
+ * src/arm.ld: Revise alignment yet further. Maintain ALIGN_LMA
+ at original value, but define alignment for use in compliance
+ with AAPCS. Expand explanatory comments.
+ (SECTION_text): Comply with AAPCS alignment when inserting
+ .ARM.extab and .ARM.exidx.
+
+2008-09-17 Jonathan Larmour <jifl@eCosCentric.com>
+
+ * src/arm.ld: Rework alignment further to improve backward
+ compatibility. Improve commenting on alignment issues.
+
+2008-08-26 Jonathan Larmour <jifl@eCosCentric.com>
+
+ * src/arm.ld: We need to be double-word aligned sometimes, so align
+ LMA the same way too.
+
+2008-07-24 Jonathan Larmour <jifl@eCosCentric.com>
+
+ * cdl/hal_arm.cdl (CYGBLD_HAL_ARM_EABI): EABI has a different C++
+ EH implementation, so don't let LIBSTDCXX use the default one.
+
+2008-06-04 Jonathan Larmour <jifl@eCosCentric.com>
+
+ * src/vectors.S: Correctly conditionalise overwriting (or not)
+ of reset vector.
+
+2008-05-28 Jonathan Larmour <jifl@eCosCentric.com>
+
+ * src/hal_misc.c (CONSTRUCTORS_END): Fix fencepost error.
+
+2008-05-19 Jonathan Larmour <jifl@eCosCentric.com>
+
+ * include/arm_stub.h: Remove CYG_HAL_GDB_ENTER_CRITICAL_IO_REGION
+ and CYG_HAL_GDB_LEAVE_CRITICAL_IO_REGION defines which should remain
+ as their defaults.
+ * src/arm.ld: Add SECTION_hal_vsr_table for targets which need the
+ VSR table in a different location to the rest of the fixed vectors.
+ * src/vectors.S: Allow hal_platform_setup.h to define
+ CYGHWR_HAL_ARM_SEPARATE_VSR_TABLE to allow move of hal_vsr_table
+ to its own section at a different address.
+
+2008-05-12 Jonathan Larmour <jifl@eCosCentric.com>
+
+ * src/hal_mk_defs.c (main): Export exception vector info
+ to asm.
+ * src/arm.ld: Remove previous EABI support and instead use a
+ different approach incorporating into existing SECTION macros for
+ better backward compatibility.
+ * src/hal_misc.c (cyg_hal_invoke_constructors): Rewrite init_array
+ support for EABI.
+ There is now nothing copyrightable remaining from Chris Zimman's
+ earlier work in this package.
+
+2008-05-09 Jonathan Larmour <jifl@eCosCentric.com>
+
+ * cdl/hal_arm.cdl: Rename EABI option. Set default from
+ toolchain prefix and flags. Rewrite description.
+ * include/hal_arch.h: Rename exception vector addresses to
+ names less likely to potentially clash with applications.
+ * src/vectors.S: Update vector address names in line with
+ hal_arch.h change. Rename CYGNUM_HAL_VECTOR_TABLE ->
+ CYGHWR_HAL_VECTOR_TABLE_BASE.
+
+2008-05-09 Chris Zimman <czimman@bloomberg.com>
+2008-05-09 Jonathan Larmour <jifl@eCosCentric.com>
+
+ Some of the following changes were inspired by work from Chris
+ Zimman. Further changes were also provided, but have not been
+ included because either they are cosmetic (whitespace changes
+ etc.) and thus will only make it more difficult to merge in future
+ updates from public eCos code base in future, increase code size
+ for those who don't need it, or break compatibility with public
+ eCos.
+ * cdl/hal_arm.cdl: Add EABI build option.
+ * include/hal_arch.h: Add extra CPSR definitions, and exception
+ vector addresses.
+ * src/arm.ld: Add EABI support.
+ * src/hal_misc.c: Add EABI constructor support.
+ * src/vectors.S: Allow variant/processor/platform to specify
+ alternate vector table base. Use pretty names from hal_arch.h
+ for vector offset/addresses.
+
+2007-10-15 Sergei Gavrikov <w3sg@SoftHome.net>
+
+ * cdl/hal_arm.cdl: Use ACTUAL_CFLAGS whenever possible to avoid
+ warnings and complaints from newer compilers.
+
+2007-09-11 Andrew Lunn <andrew.lunn@ascom.ch>
+
+ * src/hal_misc.c: Include <cyg/infra/diag.h> to prevent compiler
+ warning when CYGHWR_HAL_ARM_DUMP_EXCEPTIONS is enabled.
+ Reported by Sergei Gavrikov <w3sg@SoftHome.net.
+
+2007-02-03 Sergei Gavrikov <sg@sgs.gomel.by>
+
+ * src/vectors.S: Added a possibility to fix ARM vector 0x14
+ (unused vector). Some platforms need itself in that.
+
+2007-01-09 Sergei Gavrikov <sg@sgs.gomel.by>
+
+ * src/arm-stub.c: Added string.h header (`memcpy' declaration).
+
+2006-09-06 Daniel Néri <daniel.neri@sigicom.se>
+
+ * include/basetype.h: (CYG_DOUBLE_BYTEORDER): Add proper
+ definition for VFP floating point format (uses "natural" byte
+ order) on little-endian ARM.
+
+2006-02-06 Sergei Organov <osv@javad.com>
+
+ * src/vectors.S: disable FIQ in IRQ handler to fix race condition
+ of recursively entering IRQ handler through FIQ handler. Remove
+ unreferenced handle_IRQ_or_FIQ label.
+
+2006-01-18 Jay Foster <jay@systech.com>
+
+ * src/context.S (hal_thread_switch_context): Close race condition
+ that could cause corruption of the sp or lr registers.
+
+2005-12-12 Jonathan Larmour <jifl@eCosCentric.com>
+
+ * include/hal_intr.h (HAL_QUERY_INTERRUPTS): Long-standing
+ bug: this is meant to return an old state acceptable to
+ HAL_RESTORE_INTERRUPTS.
+ (HAL_DISABLE_INTERRUPTS): Small but simple optimisation.
+
+2005-04-21 Ian Campbell <icampbell@arcom.com>
+
+ * src/redboot_linux_exec.c: Added -t option which takes the
+ physical address to copy to. Very useful for booting non-Linux
+ operating systems.
+
+2005-03-03 Andrew Lunn <andrew.lunn@ascom.ch>
+
+ * src/redboot_linux_exec.c (CYGARC_HAL_MMU_OFF_X): Fix compiler
+ warning about spaces after continuation character.
+
+2004-11-23 Jani Monoses <jani@iv.ro>
+
+ * src/vectors.S: Allow DSRs in non-kernel configuration.
+
+2004-10-07 Andrew Lunn <andrew.lunn@ascom.ch>
+
+ * src/arm_stub.c (target_ins): Added a cast to prevent a compiler
+ warning.
+
+2004-09-02 Mark Salter <msalter@redhat.com>
+
+ * cdl/hal_arm.cdl (CYGHWR_REDBOOT_LINUX_EXEC_X_SWITCH): New
+ option used to enable "-x" option to exec command.
+
+ * src/redboot_linux_exec.c (do_exec): Add support for booting
+ kernels built for endianess oppposite of RedBoot.
+
+2004-07-07 Gary Thomas <gary@mlbassoc.com>
+
+ * src/redboot_linux_exec.c (do_exec): Fix test for valid entry
+ (was being overwritten by command line parameter)
+
+2004-05-27 Gary Thomas <gary@mlbassoc.com>
+
+ * src/redboot_linux_exec.c (do_exec): Be sensitive to value in
+ "entry_address" as this can indicate if the image to be executed
+ is valid (the "load" functions set it to "NO_MEMORY" when invalid)
+
+2004-05-24 Ian Campbell <icampbell@arcom.com>
+
+ * src/hal_misc.c: __mem_fault_handler: Only do this if we have
+ CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS. This allows the HAL to be
+ compiled without stubs.
+
+2004-04-22 Jani Monoses <jani@iv.ro>
+
+ * cdl/hal_arm.cdl :
+ Invoke tail with stricter syntax that works in latest coreutils.
+
+2003-11-05 Roland Caßebohm <roland.cassebohm@visionsystems.de>
+
+ * include/hal_io.h: If defined HAL_IO_MACROS_NO_ADDRESS_MUNGING
+ use macros which don't mung the addresses even if the platform
+ is big-endian. Platforms which don't need address munging can
+ just define HAL_IO_MACROS_NO_ADDRESS_MUNGING in plf_io.h .
+
+2003-10-23 Thomas Koeller <thomas.koeller@baslerweb.com>
+
+ * src/vectors.S: Acknowlege spurious interrupts.
+
+2003-10-13 Thomas Koeller <thomas.koeller@baslerweb.com>
+
+ * src/vectors.S: Fixed broken thumb mode exception handling.
+
+2003-06-30 Mark Salter <msalter@redhat.com>
+
+ * src/vectors.S: Fix CYGOPT_HAL_ARM_PRESERVE_SVC_SPSR handling.
+
+2003-06-24 Jonathan Larmour <jifl@eCosCentric.com>
+
+ * include/hal_arch.h: Include plf_arch.h or var_arch.h if platform
+ or variant requires it to do overrides.
+ (HAL_IDLE_THREAD_ACTION): Default to empty statement but allow to be
+ overridden.
+
+ * src/hal_misc.c: Remove hal_idle_thread_action. It's no use.
+
+2003-05-06 Pierre Habraken <Pierre.Habraken@imag.fr>
+
+ * src/arm_stub.c (target_ins, target_thumb_ins): Added code to
+ enable stepping into swi instructions.
+
+ * cdl/hal_arm.cdl: Added option CYGOPT_HAL_ARM_PRESERVE_SVC_SPSR for
+ securing exception and breakpoint processing triggered during
+ execution of application specific SWI handlers. Added option
+ CYGOPT_HAL_ARM_WITH_USER_MODE for supporting programs running in
+ user mode.
+ * src/vectors.S (return_from_exception): Added code to exception
+ handling for preserving svc spsr before returning to svc mode.
+ Added code to allow exceptions in user mode.
+ (call_exception_handler, handle_IRQ_or_FIQ): Added code to allow
+ exceptions in user mode.
+ * include/hal_arch.h: Defined CPSR_USER_MODE.
+ * src/hal_mk_defs.c.: Added definition for CPSR_USER_MODE.
+
+2003-04-30 Jonathan Larmour <jifl@eCosCentric.com>
+
+ * src/vectors.S (handle_IRQ_or_FIQ): Tweak below to be conditional on
+ __thumb__.
+
+2003-04-26 Daniel Néri <daniel.neri@sigicom.se>
+
+ * vectors.S (handle_IRQ_or_FIQ):
+ Use thumb-aware call to hal_spurious_IRQ.
+
+2003-04-13 Bart Veer <bartv@ecoscentric.com>
+
+ * src/vectors.S (start): fix build problem with -mthumb
+
+2003-03-11 Mark Salter <msalter@redhat.com>
+
+ * src/redboot_linux_exec.c (do_exec): Call eth_drv_stop as necessary.
+
+2003-02-13 Mark Salter <msalter@redhat.com>
+
+ * src/redboot_linux_exec.c (do_exec): Add missing semicolon.
+
+2003-02-13 Gary Thomas <gary@mlbassoc.com>
+
+ * src/redboot_linux_exec.c (CYGHWR_REDBOOT_LINUX_ATAG_MEM):
+ Add CYG_MACRO_START/END markers.
+
+2003-02-12 Gary Thomas <gary@mlbassoc.com> inspired by
+2003-02-12 Robin Farine <robin.farine@acn-group.ch>
+
+ * src/redboot_linux_exec.c: Allow platform to override memory layout.
+ Also, give error if no "-b" option and base/load address unknown.
+2003-02-06 Gary Thomas <gary@mlbassoc.com>
+
+ * src/redboot_linux_exec.c: Make sure RAM description is sane.
+
+2003-01-31 Mark Salter <msalter@redhat.com>
+
+ * src/hal_syscall.c (hal_syscall_handler): Let generic syscall code
+ handle exit.
+
+2003-01-17 Patrick Doyle <wpd@delcomsys.com>
+
+ * src/redboot_linux_exec.c (do_exec): Round the length up to a
+ multiple of 4 so that the copy loop (which decrements the count by
+ 4 each time through) runs a finite length of time.
+
+ Fixed the calculation of params->u.mem.size so that it doesn't
+ double the memory size if it is already a power of two.
+
+2003-01-06 Patrick Doyle <wpd@delcomsys.com>
+
+ * src/redboot_linux_exec.c (do_exec): Added support for, and
+ changed to use, ATAG_INITRD2 instead of ATAG_INITRD. ATAG_INITRD
+ specifies the virtual address of the ramdisk while ATAG_INITRD2
+ specifies the physical address.
+
+2002-12-11 Mark Salter <msalter@redhat.com>
+
+ * include/hal_io.h: Allow variant or platform HALs to override
+ default IO macros.
+
+2002-11-12 Mark Salter <msalter@redhat.com>
+
+ * src/arm_stub.c (target_ins): Account for PC prefetch when PC is
+ source register in data processing insns.
+
+2002-08-29 Mark Salter <msalter@redhat.com>
+
+ * src/vectors.S: Avoid entering thumb mode in exception handlers.
+
+2002-08-27 Mark Salter <msalter@redhat.com>
+
+ * src/arm.ld: Undefine arm to avoid problem with .note.arm.ident.
+
+2002-08-22 Mark Salter <msalter@redhat.com>
+
+ * src/arm.ld: Add .note.arm.ident section used by tools to identify
+ architecture variants.
+
+2002-08-21 Mark Salter <msalter@redhat.com>
+
+ * src/arm_stub.c: Add support for large registers (e.g. FPU).
+ * include/arm_stub.h: Add infrastructure for support of coprocessors.
+ * include/hal_arch.h: Ditto.
+
+2002-08-02 Andrew Lunn <Andrew.Lunn@ascom.ch>
+
+ * cdl/hal_arm.cdl: Redboot exec command can now be disabled by CDL
+
+2002-07-15 Mark Salter <msalter@redhat.com>
+
+ * include/arm_stub.h: Comment out NUMREGBYTES.
+
+2002-05-28 Mark Salter <msalter@redhat.com>
+
+ * cdl/hal_arm.cdl: Tweaked description for
+ CYGHWR_REDBOOT_ARM_LINUX_EXEC_ADDRESS.
+ Add CYGHWR_REDBOOT_ARM_LINUX_TAGS_ADDRESS.
+
+ * src/redboot_linux_exec.c (do_exec): Rework transition to MMU
+ off and jump to kernel so that it works for non 1-1 mapped
+ platforms.
+
+2002-05-20 Gary Thomas <gthomas@redhat.com>
+
+ * include/hal_io.h: Fix ...STRING macros - not using index.
+ Pointed out by Thomas Koeller <thomas@koeller.dyndns.org>.
+
+2002-05-09 Nick Garnett <nickg@redhat.com>
+
+ * src/vectors.S (handle_IRQ_or_FIQ): Save SVC mode LR in interrupt
+ handling as well as exceptions.
+
+ * src/context.S (hal_thread_switch_context): Use correct size
+ for skipping new HAL_SavedRegisters fields.
+
+2002-05-08 Jonathan Larmour <jlarmour@redhat.com>
+
+ * cdl/hal_arm.cdl: Remove -malignment-traps here - add it only from
+ packages when needed.
+
+2002-05-08 Nick Garnett <nickg@redhat.com>
+
+ * src/vectors.S: Added code to save and restore value of SVC mode
+ LR during exception processing. If the exception comes from a
+ non-SVC mode then handling it originally corrupted the SVC mode
+ LR. If the program subsequent returned to SVC mode it was likely
+ to have problems. The registers for modes other than SVC and the
+ exception mode are not touched, so we do not have to save/restore
+ those.
+
+ * src/hal_mk_defs.c: Added definitions for armreg_r10 and
+ armreg_svclr.
+
+ * include/hal_arch.h: Added svc_lr field to HAL_SavedRegisters to
+ save SVC mode link register during exception handling.
+
+2002-04-30 Jesper Skov <jskov@redhat.com>
+
+ * cdl/hal_arm.cdl: Forcibly add -malignment-traps to the compiler
+ options to work around problem with recent compiler. This can be
+ removed when the tools are respun.
+
+2002-04-29 Jonathan Larmour <jlarmour@redhat.com>
+
+ * src/vectors.S:
+ Don't use .file as it can confuse debugging since the .file
+ doesn't contain the path and therefore the debugger will never
+ know where it lives! This conflicts with using -Wa,--gstabs.
+
+2002-04-25 Gary Thomas <gthomas@redhat.com>
+
+ * src/vectors.S: Safer clearing of BSS.
+
+2002-04-15 Jonathan Larmour <jlarmour@redhat.com>
+
+ * src/hal_syscall.c (hal_syscall_handler): Add extra sig argument to
+ __do_syscall.
+
+2002-04-15 Mark Salter <msalter@redhat.com>
+
+ * src/vectors.S: Rewrite exception handling to allow exceptions
+ in any privileged mode.
+ * src/hal_mk_defs.c (main): Add some regs.
+ * include/hal_arch.h (HAL_SavedRegisters): Slight rearrangement.
+ * src/context.S (hal_thread_switch_context): Use new context layout.
+ (hal_thread_load_context): Ditto.
+
+2002-04-11 Jesper Skov <jskov@redhat.com>
+
+ * src/arm.ld: Fixed .sbss rule.
+
+2002-04-10 Jonathan Larmour <jlarmour@redhat.com>
+
+ * src/arm.ld: Define .gnu.linkonce sections properly.
+ Remove sbss from data section.
+
+2002-03-27 Gary Thomas <gthomas@redhat.com>
+
+ * src/vectors.S: Use interrupt stack during system initialzation
+ if configured since this stack will be much larger than the default
+ idle thread stack. Some configurations (think networking) may use
+ lots of stack space during system startup and the assumption that
+ the idle thread stack does not need much space fails miserably.
+
+2002-02-19 Mark Salter <msalter@redhat.com>
+
+ * src/arm_stub.c (target_thumb_ins): Check architecture version
+ to decide how to handle pop insn.
+ (v5T_semantics): New function. Returns true for v5 and later.
+
+2002-02-08 Jesper Skov <jskov@redhat.com>
+
+ * src/arm_stub.c (target_thumb_ins): The result of a POP
+ instruction changing the PC must be the address of a THUMB
+ instruction.
+
+2002-01-29 Jesper Skov <jskov@redhat.com>
+
+ * src/redboot_linux_exec.c: Include hal_io.h instead of CRUFT_H.
+ (do_exec): Add nops after loop copying trampoline code. Removed
+ one argument to the assembly: code only works if virt==phys
+ mapping anyway. This should be rewritten to be safe for all
+ possible targets.
+
+2002-01-28 Jesper Skov <jskov@redhat.com>
+
+ * include/hal_io.h: Include var_io.h if present, otherwise include
+ plf_io.h. This makes the ARM HAL match the other HALs better in
+ this regard, allowing platform IO definitions to override variant
+ IO definitions while allowing sharing code between platforms of
+ the same variant.
+
+2002-01-25 Jesper Skov <jskov@redhat.com>
+
+ * cdl/hal_arm.cdl: Added RedBoot options.
+ * src/redboot_linux_exec.c: Added generic version of the RedBoot
+ exec command to be shared by all ARM platforms. Still needs some
+ cleaning up after CYGARC_ memory macros find their proper home.
+
+2002-01-08 Hugo Tyson <hmt@redhat.com>
+
+ * cdl/hal_arm.cdl (CYGOPT_HAL_ARM_SYSCALL_GPROF_SUPPORT): New
+ option, implements CYGINT_REDBOOT_BSP_SYSCALLS_GPROF_SUPPORT so
+ RedBoot knows we can do this. Only active if indeed we can.
+
+ * include/hal_arch.h (HAL_GET_PROFILE_INFO): New macro, to extract
+ the interrupted PC and SP from a struct HAL_SavedRegisters. Used
+ for histogram-style profiling.
+
+2001-11-02 Hugo Tyson <hmt@redhat.com>
+
+ * include/arm_stub.h (CYG_HAL_GDB_LEAVE_CRITICAL_IO_REGION): Nasty
+ bodge to fix a tools issue where an "unused" label is migrated to
+ where some real code is, ie. the wrong place in this case.
+ Problem applies to arm9e-elf tools and other arm variants also.
+
+2001-10-29 Hugo Tyson <hmt@redhat.com>
+
+ * src/arm.ld (SECTION_rom_vectors): Define symbols used for ROMRAM
+ startup; for some reason these were not in the trunk. They are:
+ __rom_vectors_vma and __rom_vectors_lma
+
+2001-10-24 Gary Thomas <gthomas@redhat.com>
+
+ * src/hal_misc.c (hal_msbindex): Fix calculation.
+
+2001-10-23 Hugo Tyson <hmt@redhat.com>
+
+ * include/hal_mmu.h (MMU_Control_Z,F,RR): Some extra defines for
+ newer ARM architectures.
+
+2001-10-11 Fabrice Gautier <Fabrice_Gautier@sdesigns.com>
+
+ * include/hal_io.h: Add _STRING variants of I/O macros to allow
+ writing of consecutive items to the same registers.
+
+2001-10-02 Jonathan Larmour <jlarmour@redhat.com>
+
+ * include/hal_arch.h: Remove CYG_HAL_TABLE_BEGIN and CYG_HAL_TABLE_END
+ as the common versions are acceptable.
+
+2001-10-01 Jonathan Larmour <jlarmour@redhat.com>
+
+ * src/arm.ld: Make separate section for GOT and .eh_frame.
+ Make macro section for all reloc sections.
+ Input extras.o unconditionally.
+ * cdl/hal_arm.cdl: Don't bother with -DEXTRAS=1 - unconditional now.
+
+2001-08-24 Mark Salter <msalter@redhat.com>
+
+ * src/arm_stub.c (target_thumb_ins): Add support for pop insn.
+
+2001-08-21 Hugo Tyson <hmt@redhat.com>
+
+ * include/hal_intr.h: Only define HAL_CLOCK_LATENCY() if it's not
+ defined already (if it's needed at all). This is for platforms
+ which need a separate routine, such as sa11x0.
+
+2001-07-19 Gary Thomas <gthomas@redhat.com>
+
+ * src/vectors.S: Support ROMRAM startup mode. Note: most of
+ the support for this mode will be in the platform setup code.
+
+2001-07-18 Gary Thomas <gthomas@redhat.com>
+
+ * src/hal_mk_defs.c (main): FIQ no longer listed as an exception.
+
+2001-07-17 Jonathan Larmour <jlarmour@redhat.com>
+
+ * include/hal_intr.h: Define range of exceptions more accurately.
+
+2001-07-16 Gary Thomas <gthomas@redhat.com>
+
+ * src/hal_misc.c (exception_handler): Allow memory faults to be
+ caught, even when GDB stubs are not included.
+
+2001-06-22 Gary Thomas <gthomas@redhat.com>
+
+ * include/arm_stub.h (NUMREGBYTES): Define - this tells GDB how
+ large it's communications buffers need to be.
+
+2001-06-05 Gary Thomas <gthomas@redhat.com>
+2001-06-05 Thomas Fähnle <thomas.faehnle@tst-ag.de>
+
+ * src/vectors.S (spurious_IRQ): Better handling of spurious ints.
+ Pass register frame to handler.
+
+2001-05-23 Gary Thomas <gthomas@redhat.com>
+
+ * src/vectors.S: Allow platforms to define a 'preamble' which gets
+ included _before_ the vectors. This is often required for modules
+ which are run from ROM/Flash.
+
+2001-04-30 Gary Thomas <gthomas@redhat.com>
+
+ * src/vectors.S (__exception_handlers): Platforms must explicitly
+ define CYGSEM_HAL_ROM_RESET_USES_JUMP if required.
+
+2001-04-27 Hugo Tyson <hmt@redhat.com>
+
+ * src/vectors.S: Platforms without CYGHWR_HAL_ARM_HAS_MMU defined
+ require that the reset jump be straight up to ROM. So you can't
+ just use a local branch. This is needed to make RedBoot in the
+ EBSA285 work, for example.
+
+2001-04-19 Gary Thomas <gthomas@redhat.com>
+
+ * cdl/hal_arm.cdl: Fix typo for ARM9 systems.
+
+2001-04-18 Gary Thomas <gthomas@redhat.com>
+
+ * src/vectors.S: Add new flag 'CYG_HAL_ROM_RESET_USES_JUMP' to control
+ how RESET is handled. This is normally set for ROM applications, but
+ can be overridden by platform code for situations when it is unsuitable
+ to have a branch as the RESET instruction.
+
+2001-04-16 Gary Thomas <gthomas@redhat.com>
+
+ * cdl/hal_arm.cdl: Add new interfaces to describe CPU family and
+ option possiblities.
+
+2001-04-07 Mark Salter <msalter@redhat.com>
+
+ * src/arm_stub.c: Add support for v5T BLX insn.
+
+2001-03-30 Mark Salter <msalter@redhat.com>
+
+ * src/vectors.S (__exception_handlers): Don't use relative branch
+ for reset on iq80310.
+
+2001-03-28 Hugo Tyson <hmt@redhat.com>
+
+ * src/vectors.S (__GDB_stack_base): Increase stubs stack size to
+ "enough". We tend to have either RedBoot (with no interrupt
+ stack) or an app (with no stubs stack) these days, so I used
+ CYGNUM_HAL_COMMON_INTERRUPTS_STACK_SIZE. It defaults to 4k in
+ RedBoot which is enough compared to the previous hard-wired 1k.
+ The overflow occurred in RedBoot, with i82559 ether driver, during
+ GDB connection - but manifested as "network stack out of buffers"
+ because of a recursion in trying to report a trap.
+
+2001-02-24 Gary Thomas <gthomas@redhat.com>
+
+ * include/hal_mmu.h (MMU_Control_X): Add - used by Win/CE.
+
+ * src/vectors.S (__exception_handlers): Change RESET vector
+ to use jump for ROM based applications [safer].
+ (warm_reset): Only do 'swi' contortions when starting RAM
+ applications from Angel.
+
+2001-02-22 Jesper Skov <jskov@redhat.com>
+
+ * src/arm.ld: Relocate .2ram sections to the .data section.
+
+2001-02-20 Jesper Skov <jskov@redhat.com>
+
+ * cdl/hal_arm.cdl: Added CYGBLD_ARM_ENABLE_THUMB_INTERWORK.
+
+2001-02-13 Gary Thomas <gthomas@redhat.com>
+
+ * src/vectors.S (handle_IRQ_or_FIQ): Change behaviour for
+ handling spurious interrupts.
+
+ * src/hal_misc.c (hal_spurious_IRQ): New function - called
+ when a spurious interrupt is detected. Defined as "weak"
+ so platforms can provide localized support.
+
+ * src/hal_mk_defs.c:
+ * include/hal_intr.h (CYGNUM_HAL_INTERRUPT_NONE): Define.
+
+2001-02-09 Hugo Tyson <hmt@redhat.com>
+
+ * src/vectors.S (UNMAPPED()): Handle CYGHWR_HAL_ROM_VADDR if so
+ defined; this is used when compiling for a different location from
+ the base of ROM. hal_platform_setup.h might define it. For
+ example, if flash is from 0x50000000 upwards (as on SA11x0), and
+ we are to execute at 0x50040000, then we want the reset vector to
+ point to 0x0004pqrs - the unmapped ROM address of the code -
+ rather than 0x0000pqrs, which is the offset into our flash block.
+ But usually it's not defined, so the behaviour is the obvious.
+
+2001-02-08 Jesper Skov <jskov@redhat.com>
+
+ * include/arm_vv.h: Removed again, compiler does magic to thumb
+ function pointers.
+ * include/hal_arch.h: Same.
+
+2001-02-07 Jesper Skov <jskov@redhat.com>
+
+ * include/arm_vv.h: Added virtual vector accessor macros that will
+ properly mangle function pointers in thumb mode.
+ * include/hal_arch.h: Include arm_vv.h
+ * src/vectors.S: ctrlc_init can be called for thumb now (but
+ requires ROM monitor to be built with -mthumb-interwork)
+
+2001-02-02 Mark Salter <msalter@redhat.com>
+
+ * src/arm_stub.c (__arm_breakinst): New ARM breakpoint insn.
+ (__thumb_breakinst): New thumb breakpoint insn.
+ (__is_bsp_syscall): Check for actual SWI number and support
+ thumb.
+
+ * include/hal_arch.h (HAL_BREAKINST_ADDR): New macro to provide
+ address of correct breakpoint insn of the given length.
+
+2001-02-01 Jesper Skov <jskov@redhat.com>
+
+ * src/hal_misc.c: Don't use diag_printf directly (rely on tracing
+ macros).
+
+2001-01-31 Mark Salter <msalter@redhat.com>
+
+ * src/vectors.S (FIQ): Fix broken fiq handling.
+
+2001-01-31 Jesper Skov <jskov@redhat.com>
+
+ * cdl/hal_arm.cdl: Get rid of CYGDBG_HAL_DIAG_DISABLE_GDB_PROTOCOL
+ options. They are replaced by the
+ CYGSEM_HAL_DIAG_MANGLER option.
+
+2001-01-24 Jonathan Larmour <jlarmour@redhat.com>
+
+ * src/vectors.S (init_flag): Add explicit alignment, just in case.
+ From Ilko Iliev <iliev@caretec.at>
+
+2001-01-11 Hugo Tyson <hmt@redhat.com>
+
+ * src/vectors.S (hal_dram_size): Create hal_dram_type in memory at
+ 0x44, right after hal_dram_size.
+
+ * include/hal_intr.h: Add an extern for the word at 0x44, named
+ hal_dram_type (as in hal_dram_size). This can be used for
+ platform HALs to know how to decode VIRT_TO_PHYS addresses and
+ vice versa.
+
+2000-12-13 Hugo Tyson <hmt@redhat.com>
+
+ * include/hal_intr.h: Handle variant-, and possible overriding
+ platform-, specific interrupt files <cyg/hal/hal_platform_ints.h>.
+ This is to simplify the multiple SA11x0 targets which have no
+ variation there.
+
+2000-12-11 Gary Thomas <gthomas@redhat.com>
+
+ * src/vectors.S (warm_reset): 'hal_dram_size' is now only set in
+ platform code - no need to mess with (pure pollution) it here.
+
+2000-11-19 Gary Thomas <gthomas@redhat.com>
+
+ * include/hal_io.h: Use CYGBLD_HAL_PLATFORM_IO_H for those platforms
+ which define it (relieves this file of messy includes).
+
+2000-11-16 Jesper Skov <jskov@redhat.com>
+
+ * include/basetype.h: Define LABEL mangling macros.
+
+ * include/arch.inc: Added.
+
+2000-11-06 Mark Salter <msalter@redhat.com>
+
+ * src/hal_syscall.c: New file. Arm interface to redboot's
+ handler for GNUPro based application library syscalls.
+
+ * src/arm_stub.c (__is_bsp_syscall): New function. Return
+ true if exception caused by bsp SWI.
+
+ * include/arm_stub.h: Add declaration for __is_bp_syscall.
+
+ * cdl/hal_arm.cdl: Add hal_syscall.c to compile list.
+
+2000-11-04 Mark Salter <msalter@redhat.com>
+
+ * include/hal_io.h: Include cyg/hal/plf_io.h for IQ80310.
+
+ * src/arm_stub.c (__computeSignal): New interface for
+ HAL_STUB_IS_STOPPED_BY_HARDWARE
+
+2000-10-27 Mark Salter <msalter@redhat.com>
+
+ * src/arm_stub.c: Removed uneccesary include.
+
+ * src/vectors.S (start): Fix use of registers which may have
+ been destroyed by an LED macro.
+
+2000-10-26 Mark Salter <msalter@redhat.com>
+
+ * src/arm_stub.c (__computeSignal): Add hook for platforms to
+ check for hw watchpoint/breakpoint events.
+ (__install_breakpoints): Support HAL breakpoint list.
+ (__clear_breakpoints): Ditto.
+
+ * include/hal_arch.h (HAL_BREAKINST_TYPE): Define. Needed by
+ hw watchpoint/breakpoint support in stub.
+
+2000-10-20 Jesper Skov <jskov@redhat.com>
+
+ * src/hal_misc.c: Update __mem_fault_handler declaration.
+
+2000-09-05 Andrew Lunn <andrew.lunn@ascom.ch>
+
+ * include/basetype.h: Override the alignment macros for the ARM
+ architecture. The ARM compiler only alows a maximum of 4 bytes
+ of alignment where as the default is 8
+
+2000-08-15 Hugo Tyson <hmt@cygnus.co.uk>
+
+ * src/arm.ld (SECTION_text): Change it back so that
+ infra/... range checking can see them. _stext and _etext as seen
+ from C are the eventual destination, so this is a step in the
+ right direction. You must hack if building redboot, for now.
+
+2000-08-14 Hugo Tyson <hmt@cygnus.co.uk>
+
+ * src/arm.ld (SECTION_text): Change to stext and etext unadorned
+ with underlines so that RedBoot can see them.
+
+2000-08-14 Gary Thomas <gthomas@redhat.com>
+
+ * include/hal_arch.h:
+ * src/arm.ld: Changes to support new [anonymous] tables.
+
+2000-07-17 Jesper Skov <jskov@redhat.com>
+
+ * src/vectors.S (start): Hack to allow thumb tests to run in farm
+ until vector table Thumb/ARM API is fixed.
+
+2000-07-07 Jesper Skov <jskov@redhat.com>
+
+ * src/arm_stub.c: Changes to support CygMon changes.
+
+ * src/hal_misc.c: Fix warnings.
+
+2000-07-05 Jesper Skov <jskov@redhat.com>
+
+ * src/hal_misc.c:
+ * src/vectors.S:
+ All platforms now has VECTOR_SUPPORT (or provide alternative
+ implementations). Removed checks for the option.
+
+2000-07-04 Jonathan Larmour <jlarmour@redhat.co.uk>
+
+ * cdl/hal_arm.cdl: Add CYGINT_HAL_ARM_MEM_REAL_REGION_TOP
+ interface
+
+ * include/hal_intr.h: If the platform implements the
+ CYGINT_HAL_ARM_MEM_REAL_REGION_TOP interface, define a new
+ HAL_MEM_REAL_REGION_TOP macro appropriately
+
+2000-06-28 Jesper Skov <jskov@redhat.com>
+
+ * src/hal_mk_defs.c:
+ * src/arm_stub.c:
+ Fix compiler warnings.
+
+2000-06-21 Nick Garnett <nickg@cygnus.co.uk>
+
+ * include/hal_arch.h:
+ Added local variants of CYG_HAL_TABLE_BEGIN() and
+ CYG_HAL_TABLE_END() since the ARM assembler implements some of
+ this code with a slightly different syntax to all the other
+ targets.
+
+ * include/basetype.h:
+ Removed definition of CYG_LABEL_NAME(). Now dealt with by default
+ definition in cyg_type.h.
+
+ * src/hal_misc.c:
+ * src/arm_stub.c:
+ Removed use of CYG_LABEL_NAME(), added underscore to _breakinst.
+
+ * src/arm.ld:
+ Added extra underscores to _stext and _etext.
+ Switched over to new table creation mechanism.
+
+2000-06-19 Gary Thomas <gthomas@redhat.com>
+
+ * src/vectors.S: Changes for virtual vector support.
+ (hal_virtual_vector_table): Need to protect if virtual vector
+ stuff not defined.
+
+ * src/hal_mk_defs.c: Add symbols for virtual vector table.
+
+ * src/hal_misc.c (hal_arch_default_isr): New function. Used in
+ place of 'hal_default_isr' if virtual vector support is enabled.
+
+ * include/hal_intr.h: "Fixed" items now exported in 'vectors.S'
+
+ * src/vectors.S: Add notion of "fixed vectors" to all platforms.
+
+2000-06-08 Jesper Skov <jskov@redhat.com>
+
+ * include/hal_arch.h (CYGARC_HAL_SAVE_GP, CYGARC_HAL_RESTORE_GP):
+ Added.
+
+2000-06-04 Gary Thomas <gthomas@redhat.com>
+
+ * src/vectors.S: Add support for platform specific "vectors"
+ which may need to end up in predefined memory locations.
+ * src/arm.ld: Add separate 'fixed_vectors' section.
+
+2000-06-01 Gary Thomas <gthomas@redhat.com>
+
+ * include/hal_mmu.h (MMU_Control_I): Added for StrongARM support.
+
+2000-04-10 Hugo Tyson <hmt@cygnus.co.uk>
+
+ * include/arm_stub.h (CYG_HAL_GDB_ENTER_CRITICAL_IO_REGION): Only
+ use this complex version if we have
+ CYGDBG_HAL_DEBUG_GDB_BREAK_SUPPORT ie. the place_break &c routines
+ existed anyway. This is an artificial limitation, somewhat, but
+ not so painful in reality.
+
+2000-04-04 Jesper Skov <jskov@redhat.com>
+
+ * src/context.S:
+ * src/vectors.S:
+ Wrap the trivial thumb stuff in macros so the important bits stand
+ out.
+ Fix dumb bug.
+
+2000-03-24 Jesper Skov <jskov@redhat.com>
+
+ * src/arm_stub.c: Make place_break thumb-aware.
+
+ * include/arm_stub.h (CYG_HAL_GDB_ENTER_CRITICAL_IO_REGION):
+ Thumb-aware definition.
+
+2000-03-01 Gary Thomas <gthomas@cygnus.co.uk>
+
+ * cdl/hal_arm.cdl:
+ Implement CYGINT_HAL_DIAG_DISABLE_GDB_PROTOCOL_SUPPORTED.
+
+2000-02-29 Jonathan Larmour <jlarmour@redhat.co.uk>
+
+ * include/arm_stub.h: Make header C++ safe
+
+2000-02-28 Gary Thomas <gthomas@cygnus.co.uk>
+
+ * src/hal_misc.c: Use standard 'diag_dump_buf()' instead of
+ private version.
+
+2000-02-16 Jesper Skov <jskov@redhat.com>
+
+ * src/arm_stub.c: CYG_HAL_ARM -> CYGPKG_HAL_ARM
+
+2000-02-10 Jesper Skov <jskov@redhat.com>
+
+ * src/vectors.S (reset_platform):
+ Removed handling of stubs startup type.
+
+2000-02-09 Jesper Skov <jskov@redhat.com>
+
+ * cdl/hal_arm.cdl: Removed some fix mes.
+
+2000-02-01 Jonathan Larmour <jlarmour@redhat.co.uk>
+
+ * cdl/hal_arm.cdl: Add missing CYGIMP_HAL_PROCESS_ALL_EXCEPTIONS
+ and CYGHWR_HAL_ARM_ICE_THREAD_SUPPORT
+ options from include/pkgconf/hal_arm.h
+
+2000-02-01 Jesper Skov <jskov@redhat.com>
+
+ * src/vectors.S: Treat ROM startup+ROM monitor as STUBS startup.
+
+ * src/arm.ld: Changed PID BE workaround to work with ROM startup.
+ Not just when building stubs.
+
+2000-01-28 Gary Thomas <gthomas@cygnus.co.uk>
+
+ * src/arm.ld: Add new section 'netdevtab' used to support
+ network device initialization.
+
+2000-01-26 Jonathan Larmour <jlarmour@redhat.co.uk>
+
+ * src/hal_misc.c (exception_handler): Replace CYGDAT_CYGMON_ENABLE
+ dependency with just CYGPKG_CYGMON
+ * src/arm_stub.c (__clear_breakpoints): Likewise
+
+1999-12-16 Gary Thomas <gthomas@cygnus.co.uk>
+
+ * src/arm.ld: Include all SRAM (*.sram*) sections.
+
+1999-12-09 John Dallaway <jld@cygnus.co.uk>
+
+ * cdl/hal_arm.cdl: Add big-endian option.
+
+1999-12-08 Gary Thomas <gthomas@cygnus.co.uk>
+
+ * src/arm.ld: Add ".sram" section support (used by platforms
+ that have separate SRAM and DRAM).
+
+1999-12-07 Jesper Skov <jskov@cygnus.co.uk>
+
+ * cdl/hal_arm.cdl: Added ARM7/ARM9 family option.
+
+1999-12-06 Gary Thomas <gthomas@cygnus.co.uk>
+
+ * src/vectors.S (software_interrupt): Context save was incorrect
+ for this mode. Note that when entering from supervisor mode, the
+ link register (LR) is destroyed.
+
+1999-12-02 John Dallaway <jld@cygnus.co.uk>
+
+ * cdl/hal_arm.cdl:
+
+ Use the <PACKAGE> token in custom rules.
+
+1999-12-01 John Dallaway <jld@cygnus.co.uk>
+
+ * cdl/hal_arm.cdl:
+
+ Use the <PREFIX> token in custom rules.
+
+1999-11-22 Gary Thomas <gthomas@cygnus.co.uk>
+
+ * src/arm.ld: Add section for definining static MMU tables.
+
+ * src/vectors.S: Introduce PLATFORM_EXTRAS, which if defined provides
+ a hook to include platform code in the "vectors.S" file. In particular,
+ some platforms will define this to be <cyg/hal/hal_platform_extras.h>
+ and define static MMU tables there.
+
+1999-11-19 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/basetype.h (CYG_BYTEORDER): If the toolchain tells us to be
+ big-endian, be big-endian
+ Reported by Grant Edwards
+
+1999-11-12 Gary Thomas <gthomas@cygnus.co.uk>
+
+ * src/vectors.S (reset_platform): New function used to reset board
+ in the absense of real hardware reset (not possible on all boards).
+
+1999-11-11 John Dallaway <jld@cygnus.co.uk>
+
+ * cdl/hal_arm.cdl:
+
+ Generate 'arm.inc' in the build tree.
+
+1999-11-05 John Dallaway <jld@cygnus.co.uk>
+
+ * cdl/hal_arm.cdl:
+
+ Add complete dependency analysis to the custom
+ rule for 'arm.inc'.
+
+1999-11-04 John Dallaway <jld@cygnus.co.uk>
+
+ * cdl/hal_arm.cdl:
+
+ Tidy up custom rules.
+
+1999-11-04 John Dallaway <jld@cygnus.co.uk>
+
+ * cdl/hal_arm.cdl:
+
+ Output custom rule dependency information to .deps files in
+ the current directory.
+
+ Dispense with the need to create a 'src' sub-directory.
+
+1999-11-01 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/hal_misc.c (exception_handler): Check for CYGDAT_CYGMON_ENABLE
+ rather than just CYGPKG_CYGMON
+ Include <pkgconf/cygmon.h> to get this define
+
+1999-10-29 Simon FitzMaurice <sdf@cygnus.co.uk>
+
+ * cdl/hal_arm.cdl:
+
+ Use fgrep instead of grep in custom rules. The latter seems
+ to behave weirdly under win32.
+
+1999-10-27 Gary Thomas <gthomas@cygnus.co.uk>
+
+ * src/arm_stub.c: Fix typo (CYGDAT_CYGMON_ENABLE). Also need
+ to include <pkgconf/cygmon.h>
+
+1999-10-27 Gary Thomas <gthomas@cygnus.co.uk>
+
+ * src/arm_stub.c: Add explicit enable for CygMon package.
+
+1999-10-27 Hugo Tyson <hmt@cygnus.co.uk>
+
+ * src/arm_stub.c (cyg_hal_gdb_interrupt): Bugfix to previous: ^Cs
+ were being ignored when received by the diag output code, because
+ there was already a break in place. Solution is to let
+ cyg_hal_gdb_interrupt() override any previous break, and tidy up
+ state of course.
+
+1999-10-26 Hugo Tyson <hmt@cygnus.co.uk>
+
+ * src/arm_stub.c (cyg_hal_gdb_place_break): Add this to the
+ ARM-specific GDB stub code. See hal/common/.../hal_stub for
+ details.
+
+1999-10-26 John Dallaway <jld@cygnus.co.uk>
+
+ * cdl/hal_arm.cdl:
+
+ Invoke 'sh' version of 'mkdir' explicitly in custom rules.
+
+1999-10-26 Jesper Skov <jskov@cygnus.co.uk>
+
+ * src/vectors.S: Cleaned up LED code a bit.
+
+1999-10-25 Gary Thomas <gthomas@cygnus.co.uk>
+
+ * src/hal_misc.c (exception_handler): If building for CygMon, defer
+ exception processing to it, not here.
+
+ * src/arm_stub.c (__install_breakpoints, __clear_breakpoints):
+ Leave out these [dummy] functions if building CygMon.
+
+ * include/pkgconf/hal_arm.h: Add new configuration option to let
+ programs which do not include GDB stubs still process "illegal
+ instruction" exceptions.
+
+ * src/vectors.S: Reorder context restore so stack changes are
+ protected (interrupts off).
+
+1999-10-26 Jesper Skov <jskov@cygnus.co.uk>
+
+ * src/arm.ld: Added support for merging RODATA sections into DATA
+ * include/hal_io.h: Added BE support.
+
+ * src/vectors.S (LED): Added definition for PID board.
+
+1999-10-26 John Dallaway <jld@cygnus.co.uk>
+
+ * cdl/hal_arm.cdl:
+
+ Modify custom make rules to specify file paths relative
+ to the package version directory.
+
+1999-10-22 Hugo Tyson <hmt@cygnus.co.uk>
+
+ * src/arm_stub.c (cyg_hal_gdb_running_step):
+ (cyg_hal_gdb_break_is_set): Provide dummies for these two for now.
+ See changelog for hal/common/ hal_stub and generic_stub for info.
+
+1999-10-21 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/hal_arch.h: Tidy a bit so the breakpoint instruction is only
+ defined in one place
+ Change thumb breakpoint instruction to 0xbebe
+
+1999-10-18 John Dallaway <jld@cygnus.co.uk>
+
+ * cdl/hal_arm.cdl:
+
+ Add cdl_option CYGHWR_THUMB.
+
+1999-10-14 Jesper Skov <jskov@cygnus.co.uk>
+ From James Ingham <jingham@cygnus.com>:
+ * src/PKGconf.mak: Make sed invocation Solaris safe.
+
+1999-10-11 Jesper Skov <jskov@cygnus.co.uk>
+
+ * src/vectors.S (reset_vector): Always execute PLATFORM_SETUP1.
+
+1999-10-10 Gary Thomas <gthomas@cygnus.co.uk>
+
+ * include/pkgconf/hal_arm.h:
+ * src/vectors.S:
+ * src/arm_stub.c: Add thread debug support via Multi-ICE.
+
+1999-10-08 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/arm.ld (SECTION_bss): Make *(.bss*) rather than just .bss, to
+ cater for nickc's BSS gc improvements.
+
+1999-10-06 Jesper Skov <jskov@cygnus.co.uk>
+
+ * include/basetype.h: Set endian to BE if required.
+
+1999-10-05 Jesper Skov <jskov@cygnus.co.uk>
+
+ * src/arm.ld: Force output format to BE if required.
+
+1999-09-30 Jesper Skov <jskov@cygnus.co.uk>
+
+ * src/vectors.S: Add thumb_func before thumb code where switching
+ so GDB/objdump knows how to disassemble it.
+ * include/hal_arch.h: Change thumb breakpoint to undefined
+ instruction.
+ * src/arm_stub.c (target_thumb_ins): Corrected branch offsets.
+
+1999-09-23 Gary Thomas <gthomas@cygnus.co.uk>
+
+ * src/vectors.S (call_exception_handler): Change on 09-19 messed up
+ status register wrt breakpoints, single stepping, etc.
+
+1999-09-21 Gary Thomas <gthomas@cygnus.co.uk>
+
+ * include/hal_arch.h: Remove FIXME about GDB register layout.
+
+ * src/context.S (hal_thread_save_context): Change function prologue
+ to match APCS more closely (keeps GDB happier).
+
+1999-09-19 Gary Thomas <gthomas@cygnus.co.uk>
+
+ * src/vectors.S (spurious_IRQ): Make sure interrupts are masked
+ when switching to IRQ mode.
+
+ * src/hal_misc.c (exception_handler): GDB stubs only take over
+ memory exceptions. This allows proper handling when an application
+ has it's own IRQ/FIQ VSR.
+
+1999-09-16 Jesper Skov <jskov@cygnus.co.uk>
+
+ * src/arm.ld: Handle thumb glue sections.
+
+1999-09-16 Jesper Skov <jskov@cygnus.co.uk>
+
+ * src/vectors.S: Always include thumb exception support.
+
+1999-09-15 Jesper Skov <jskov@cygnus.co.uk>
+
+ * src/context.S: Don't trash r0 which holds the thread's initial
+ argument.
+
+ * include/hal_arch.h:
+ * src/arm_stub.c:
+ Added thumb-aware GDB interrupt functions.
+
+1999-09-14 Jesper Skov <jskov@cygnus.co.uk>
+
+ * src/vectors.S (undefined_instruction): Adjusted wrong register.
+ * src/arm_stub.c (target_thumb_ins): Set thumb flag when required.
+ (target_ins): Added BX handling.
+
+ * src/vectors.S:
+ * include/hal_arch.h:
+ * src/hal_mk_defs.c:
+ * src/arm_stub.c (__single_step):
+ Determine thumb mode by looking at T bit.
+
+1999-09-10 Jesper Skov <jskov@cygnus.co.uk>
+
+ * src/arm_stub.c (target_thumb_ins): BL is a double instruction.
+
+1999-09-13 Gary Thomas <gthomas@cygnus.co.uk>
+
+ * src/vectors.S (handle_IRQ_or_FIQ): Allow spurious interrupts
+ to be ignored. Some platforms (CL7xxx) have non-debounced
+ interrupt sources which can vanish before the hardware can be
+ queried.
+
+1999-09-11 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/arm_stub.c (__computeSignal): Synchronise return value with
+ what libbsp does and GDB expects
+ (__get_trap_number): Don't shift right 8 - it's already the right number
+
+1999-09-10 Jesper Skov <jskov@cygnus.co.uk>
+
+ * src/vectors.S (start): Moved stub vector changeover to after
+ stub init.
+
+1999-09-09 Jesper Skov <jskov@cygnus.co.uk>
+
+ * include/hal_arch.h (HAL_BREAKPOINT):
+ * src/arm_stub.c:
+ * src/vectors.S:
+ Added thumb stub support (except C-c support).
+
+1999-08-24 Gary Thomas <gthomas@cygnus.co.uk>
+
+ * src/vectors.S: Fix misc THUMB procedures.
+
+1999-08-24 Hugo Tyson <hmt@masala.cygnus.co.uk>
+
+ * src/vectors.S (handle_IRQ_or_FIQ): Set up the pointer-to-regset
+ in r2 for calling the ISR as well as the DSR. This is needed for
+ the cyg_hal_gdb_isr() for those platforms that handle ^C's
+ incoming that way - the ISR needs a regset to know where to plant
+ a breakpoint to stop the system in the interrupted context.
+
+1999-08-24 Jesper Skov <jskov@cygnus.co.uk>
+
+ * src/vectors.S (LED): Check XBUS setting jumper and behave
+ accordingly.
+
+1999-08-23 Jesper Skov <jskov@cygnus.co.uk>
+
+ * src/arm_stub.c
+ (target_ins): Check whether branches execute.
+ (ins_will_execute): Fixed HI and LS.
+
+1999-08-13 John Dallaway <jld@cygnus.co.uk>
+
+ * cdl/hal_arm.cdl: Add path to CYGBLD_LINKER_SCRIPT value.
+
+1999-08-12 John Dallaway <jld@cygnus.co.uk>
+
+ * cdl/hal_arm.cdl: Define CYGBLD_LINKER_SCRIPT.
+
+1999-08-12 Jesper Skov <jskov@cygnus.co.uk>
+
+ * include/hal_io.h: Include plf_io.h when appropriate.
+
+1999-08-06 Jesper Skov <jskov@cygnus.co.uk>
+ CR 101032
+ * src/vectors.S (handle_IRQ_or_FIQ): Moved setup of register_frame
+ argument to just before the interrupt_end call.
+
+1999-07-28 Hugo Tyson <hmt@cygnus.co.uk>
+
+ * src/vectors.S (_eCos_id): Remove bogus version string.
+
+1999-07-26 Hugo Tyson <hmt@cygnus.co.uk>
+
+ * src/hal_misc.c (hal_default_isr): Call the special platform HAL
+ routine to see whether there is a ^C lurking in the serial device
+ through a macro, if it's defined. Problem is that
+ CYGDBG_HAL_DEBUG_GDB_CTRLC_SUPPORT *is* defined for platforms that
+ do not support it.
+
+1999-07-23 Hugo Tyson <hmt@cygnus.co.uk>
+
+ * src/hal_misc.c (hal_default_isr): If we are including
+ CYGDBG_HAL_DEBUG_GDB_CTRLC_SUPPORT, then poll a special platform
+ HAL routine to see whether there is a ^C lurking in the serial
+ device. This has to be done from the default ISR so that others
+ (which must know about ^Cs is they are still to be handled) can
+ install over the top. Not all platforms support this, so enabling
+ CYGDBG_HAL_DEBUG_GDB_CTRLC_SUPPORT will not necessarily work.
+
+1999-07-21 Hugo Tyson <hmt@cygnus.co.uk>
+
+ * src/vectors.S (vectors): Re-organize startup a little to support
+ ROMming of the image and stubrom creation. Withdraw publication
+ of cyg_startup_stack; it's necessary to do this a different way,
+ using...
+
+ * include/hal_intr.h (hal_dram_size): reserve location 0x40 for
+ communicating DRAM size between boot ROMs and app during startup,
+ and remembering it within ROM startup. Platforms that don't need
+ this should zero the location.
+
+1999-07-19 Hugo Tyson <hmt@cygnus.co.uk>
+
+ * src/vectors.S (cyg_startup_stack): Publish this object for
+ passing some DRAM size info around during startup.
+ Remove the unused [well, ignored] array hal_vsr_table - the VSR
+ table is defined to be at 0x20 by the code here in vectors.S
+
+ * include/hal_intr.h (HAL_VSR_SET): define hal_vsr_table to be at
+ 0x20 where the hardware vectors actually read VSR entries from.
+ Renumber VSR symbols to match. Do not use the external
+ "hal_vsr_table" symbol.
+
+1999-07-15 Hugo Tyson <hmt@cygnus.co.uk>
+
+ * src/vectors.S (reset_vector): Invalidate and disable caches for
+ EBSA-285 startup is now in PLATFORM_SETUP1 as intended. Cache
+ enabling is in hal_hardware_init; so, same results as before, but
+ tidier.
+
+1999-07-14 Hugo Tyson <hmt@cygnus.co.uk>
+
+ * src/vectors.S: Add some startup debug via a LED macro - which
+ has different content depending on platform, of course.
+ For the EBSA-285, flush caches when writing vectors and the like,
+ since RAM startup occurs with caches enabled, otherwise you get
+ mysterious traps as CygMon is entered regardless at the first
+ clock tick, for example. This may be taken out again as ROM
+ startup is dealt with via PLATFORM_SETUP1, but for now...
+
+1999-06-22 Gary Thomas <gthomas@cygnus.co.uk>
+
+ * src/vectors.S: Fix names of 'report' functions (debug dumps
+ for various exceptions). These needed changes for two reasons:
+ name pollution and naming clashes after new ABI adopted.
+ Improve support for FIQ interrupts.
+
+1999-06-16 Gary Thomas <gthomas@cygnus.co.uk>
+
+ * src/vectors.S: Add ".pool" directives which cause assembler
+ to dump it's literal pool early. This is necessary because
+ of the limited addressing available in THUMB mode.
+
+1999-06-15 Gary Thomas <gthomas@cygnus.co.uk>
+
+ * src/vectors.S (vectors): Some boards have an MMU, but the
+ reset vector needs to have an unmapped address!
+
+1999-06-09 Gary Thomas <gthomas@cygnus.co.uk>
+
+ * src/vectors.S (reset_vector): Streamline ROM/STUBS code.
+
+1999-05-25 Gary Thomas <gthomas@cygnus.co.uk>
+
+ * src/vectors.S (_eCos_id): Add version string. Useful for
+ tracking when a system was configured (especially ROMs).
+ Add initial pure-thumb support - only for kernel+application
+ in thumb mode.
+
+ * include/hal_intr.h: Update interrupt support macros for
+ thumb mode system.
+
+ * src/context.S: Add initial pure-thumb mode support.
+
+1999-05-21 Hugo Tyson <hmt@cygnus.co.uk>
+
+ * include/hal_intr.h: Define HAL_INTERRUPT_STACK_BASE and
+ HAL_INTERRUPT_STACK_TOP so that stack usage macros in
+ kernel/.../stackmon.hxx can work.
+
+ * src/vectors.S (cyg_interrupt_stack_base): Define this symbol for
+ the interrupt stack and its friend for the stack top so that we
+ can publish them with nice names.
+
+1999-05-19 Gary Thomas <gthomas@cygnus.co.uk>
+
+ * src/arm.ld: Change symbols to match new no-underscore ABI.
+
+1999-05-19 Gary Thomas <gthomas@cygnus.co.uk>
+
+ * include/hal_intr.h: Define interrupt support functions for
+ Thumb mode.
+
+1999-05-16 Gary Thomas <gthomas@cygnus.co.uk>
+
+ * include/hal_intr.h (HAL_INTERRUPT_STACK_CALL_PENDING_DSRS):
+ Add macro for new DSR handling mechanism (was override of a
+ "weak" symbol in kernel).
+
+1999-05-13 Hugo Tyson <hmt@cygnus.co.uk>
+
+ * include/hal_arch.h (HAL_THREAD_INIT_CONTEXT): Align stack
+ (rather conservatively) before use.
+
+1999-05-11 Gary Thomas <gthomas@cygnus.co.uk>
+
+ * src/vectors.S: No separate interrupt stack if no kernel.
+
+1999-05-10 Gary Thomas <gthomas@cygnus.co.uk>
+
+ * src/vectors.S:
+ * src/hal_mk_defs.c:
+ * include/hal_arch.h: Fix up machine states, initialize stacks.
+
+1999-04-28 Bart Veer <bartv@cygnus.co.uk>
+
+ * src/PKGconf.mak:
+ Remove the -n argument to tail, it does not appear to be required
+ on any supported host and causes problems with some
+ implementations of tail.
+
+1999-04-25 Gary Thomas <gthomas@cygnus.co.uk>
+
+ * src/vectors.S: Fix use of 'RAISE_INTR' which cannot be used in 'mov'
+ instruction (doesn't fit). PR 19906
+
+1999-04-23 John Dallaway <jld@cygnus.co.uk>
+
+ * src/PKGconf.mak: Avoid backslash in grep search pattern to
+ workaround PR 19923.
+
+1999-04-15 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/arm.ld: Define __bss_end at the end of the BSS
+ * src/vectors.S (start): Use __bss_end rather than _end when clearing
+ BSS
+ These fix PR 19750
+
+1999-04-14 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/PKGconf.mak (EXTRAS): Don't generate extras.o here any more
+ But do define EXTRAS every time for the linker script
+
+1999-04-13 Gary Thomas <gthomas@cygnus.co.uk>
+
+ * src/vectors.S: Use new include <cyg/hal/hal_platform_setup.h>
+ which includes macros and definitions for platform specifics.
+ This keeps 'ifdef's out of "vectors.S" and makes cleaner code.
+ Major restructuring of interrupt handling to support full use
+ of a separate interrupt stack.
+
+1999-04-09 Jesper Skov <jskov@cygnus.co.uk>
+
+ * src/arm_stub.c:
+ Moved get_register and put_register to hal_stub.c.
+
+1999-04-08 John Dallaway <jld@cygnus.co.uk>
+
+ * src/*.ld: Revised SECTION_* macro arguments to
+ avoid padded output sections (PR 19787)
+
+1999-03-22 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/arm_stub.h: Update copyright
+
+ * src/arm_stub.c: Update copyright
+
+1999-03-22 Hugo Tyson <hmt@cygnus.co.uk>
+
+ * include/hal_arch.h:
+ Use CYGNUM_HAL_STACK_SIZE_TYPICAL for the stack size instead of
+ CYGNUM_HAL_MINIMUM_STACK_SIZE.
+
+1999-03-16 Gary Thomas <gthomas@cygnus.co.uk>
+
+ * src/hal_misc.c: Change how breakpoint is described (just a long).
+
+ * src/vectors.S: Pass registers to ISR for GDB break support.
+
+1999-03-17 John Dallaway <jld@cygnus.co.uk>
+
+ * src/PKGconf.mak: Remove dependence on echo '-e' switch.
+
+1999-03-12 Gary Thomas <gthomas@cygnus.co.uk>
+
+ * include/hal_arch.h: Add definition of 'CYGNUM_HAL_MINIMUM_STACK_SIZE'
+
+1999-03-11 Gary Thomas <gthomas@cygnus.co.uk>
+
+ * include/pkgconf/hal_arm.h: Fix comment (name was incorrect)
+
+1999-03-10 Jesper Skov <jskov@cygnus.co.uk>
+
+ * include/hal_intr.h (HAL_INTERRUPT_ATTACH): Added.
+
+1999-03-09 Gary Thomas <gthomas@cygnus.co.uk>
+
+ * src/hal_misc.c: Move declaration of __CTOR_LIST__ to avoid warning.
+
+1999-03-09 Gary Thomas <gthomas@cygnus.co.uk>
+
+ * src/vectors.S: Remove warning on stack size redefine.
+
+1999-03-08 Gary Thomas <gthomas@cygnus.co.uk>
+
+ * src/vectors.S: Override default stack size on AEB.
+
+1999-03-05 Gary Thomas <gthomas@cygnus.co.uk>
+
+ * src/vectors.S:
+ * include/pkgconf/hal_arm.h: DOn't print exception info if GDB stubs enabled.
+
+ * src/PKGconf.mak:
+ * src/arm.ld: Clean up I/O package changes.
+
+1999-03-04 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/arm.ld:
+ Unconditionalize use of libextras.a and add libextras.a to GROUP()
+
+1999-03-04 Gary Thomas <gthomas@cygnus.co.uk>
+
+ These changes merged from 'ecos-new_devs-19990216-branch'
+
+ (1999-02-18 Gary Thomas <gthomas@cygnus.co.uk>)
+
+ * src/PKGconf.mak (DRIVERS):
+ * src/arm.ld: Support special linking requirements for I/O drivers.
+
+ (1999-02-16 Gary Thomas <gthomas@cygnus.co.uk>)
+
+ * src/arm.ld: Changes for new I/O [device drivers] subsystem.
+
+1999-02-26 Gary Thomas <gthomas@cygnus.co.uk>
+
+ * src/vectors.S: Add separate interrupt stack handling.
+
+ Fix memory region layouts for AEB allowing better error detection.
+
+1999-02-25 Nick Garnett <nickg@cygnus.co.uk>
+
+ * src/vectors.S:
+ Changed label used to access scheduler lock to one that is not
+ mangled by C++. This is intended to make support for interrupt
+ handling in non-kernel configurations easier.
+
+1999-02-20 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/hal_arch.h:
+ Rename deliver_exception -> cyg_hal_deliver_exception
+ QA improvements
+
+ * include/hal_intr.h:
+ Reorganise vector/interrupt/exception names according to purpose
+ QA improvements
+
+ * arch/current/src/hal_misc.c:
+ Rename deliver_exception -> cyg_hal_deliver_exception
+ Rename vectors due to hal_intr.h changes
+ QA improvements
+
+ * arch/current/src/hal_mk_defs.c:
+ * arch/current/src/vectors.S
+ Rename vectors due to hal_intr.h changes
+ QA improvements
+
+1999-02-16 Jesper Skov <jskov@cygnus.co.uk>
+
+ * src/vectors.S: Changed set_debug_traps to initialize_stub.
+
+ * src/arm_stub.c:
+ * include/arm_stub.h:
+ Cleaned up to only include arch specific stub code.
+
+1999-02-16 Gary Thomas <gthomas@cygnus.co.uk>
+
+ * src/arm.ld: Changes for new I/O [device drivers] subsystem.
+
+1999-02-10 Gary Thomas <gthomas@cygnus.co.uk>
+
+ * src/hal_misc.c (hal_default_isr): Add diagnostic message for PR 19145-19147
+
+1999-02-05 John Dallaway <jld@cygnus.co.uk>
+
+ * src/arm.ld: Add LMA_EQ_VMA macro definition.
+
+1999-02-04 Gary Thomas <gthomas@cygnus.co.uk>
+
+ * src/vectors.S: Use symbolic 'raise interrupt' instead of hard coded value.
+ Better GDB stubs stack handling.
+
+ * src/hal_mk_defs.c: Add symbolic symbol for 'raise interrupt' instrumentation.
+
+1999-02-03 Gary Thomas <gthomas@cygnus.co.uk>
+
+ * src/hal_misc.c (cyg_hal_invoke_constructors):
+ * src/vectors.S (start): Use C coded 'cyg_hal_invoke_constructors()'
+
+ * src/hal_misc.c (exception_handler): Remove debug message ...oops!
+
+ * include/hal_arch.h (HAL_SET_GDB_REGISTERS): Restore PSR.
+
+ * src/vectors.S: Use separate stack for GDB stubs exception handlers.
+
+1999-02-01 Gary Thomas <gthomas@cygnus.co.uk>
+
+ * src/hal_misc.c: Need <pkgconf/hal_arm.h> for 'dump exception' option.
+
+ * src/vectors.S: Fix ROM startup machine initialization.
+
+1999-01-25 Gary Thomas <gthomas@cygnus.co.uk>
+
+ * src/arm.ld: Add Copyright
+
+1999-01-25 Jesper Skov <jskov@cygnus.co.uk>
+
+ * src/arm_stub.c (__build_t_packet): Rewrote fix me text. Added PR
+ number, but otherwise left the note.
+
+1999-01-21 Gary Thomas <gthomas@cygnus.co.uk>
+
+ * src/arm_stub.c (ins_will_execute): Computation of LS/HI
+ was incorrect.
+
+1999-01-20 Gary Thomas <gthomas@cygnus.co.uk>
+
+ * src/arm.ld: Change "etext" to "__etext".
+
+1999-01-19 Gary Thomas <gthomas@cygnus.co.uk>
+
+ * src/vectors.S: Rework exception handlers.
+ (start): Fix for new startup type (STUBS)
+
+ * src/hal_misc.c (exception_handler): Allow GDB stubs to take over all
+ exceptions while the stubs are executing. Also move some common stubs
+ initialization into this file.
+
+1999-01-18 Gary Thomas <gthomas@cygnus.co.uk>
+
+ * include/pkgconf/hal_arm.h: Add configurations for GDB stubs/normal ROM.
+
+ * src/arm.ld: Include HAL/ARM specifics.
+
+ * include/pkgconf/hal_arm.h:
+ * src/hal_misc.c:
+ * src/vectors.S: Add configure option 'CYGHWR_HAL_ARM_DUMP_EXCEPTIONS'
+ which is used to chose whether to print diagnostic exception dumps
+ or not.
+
+1999-01-15 Gary Thomas <gthomas@cygnus.co.uk>
+
+ * src/hal_misc.c: Clean up warnings
+
+ * include/hal_arch.h:
+ * include/hal_intr.h: Add function prototypes to avoid warnings.
+
+ * src/arm.ld: Add definition of _stext. Take out
+ GLOBAL_OFFSET_TABLE.
+
+1999-01-14 Gary Thomas <gthomas@cygnus.co.uk>
+
+ * src/PKGconf.mak: Set up for MLT based linker scripts.
+
+ * src/arm.ld: New file
+
+ * include/hal_intr.h (HAL_QUERY_INTERRUPTS): Test was backwards
+
+1999-01-13 Gary Thomas <gthomas@cygnus.co.uk>
+
+ * include/hal_intr.h (HAL_TRANSLATE_VECTOR): Add new macro
+
+1999-01-12 Gary Thomas <gthomas@cygnus.co.uk>
+
+ * include/basetype.h (CYG_DOUBLE_BYTEORDER): Define ordering
+ of words within doubles.
+
+1999-01-05 Gary Thomas <gthomas@cygnus.co.uk>
+
+ * src/vectors.S: Force AEB-1 memory configuration.
+
+1998-12-16 Gary Thomas <gthomas@cygnus.co.uk>
+
+ * src/arm_stub.c (ins_will_execute): Fix warning.
+
+ * include/hal_intr.h: Add <hal/hal_platform_ints.h>
+ for platform specifics.
+
+1998-12-15 Gary Thomas <gthomas@cygnus.co.uk>
+
+ * src/hal_mk_defs.c:
+ * include/hal_io.h:
+ * src/vectors.S: Changes to support kernel-less configuration.
+ (___gccmain): Add new dummy function.
+
+ * src/hal_misc.c: Merge in platform independent code from
+ old "pid/.../hal_misc.c"
+
+1998-12-15 Jesper Skov <jskov@cygnus.co.uk>
+
+ * include/hal_arch.h: Changed HAL_JMP_BUF_SIZE to
+ CYGARC_JMP_BUF_SIZE.
+
+1998-12-14 Gary Thomas <gthomas@cygnus.co.uk>
+
+ * src/hal_misc.c (exception_handler): Change config option
+ to be consistent "CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS"
+
+ * include/hal_arch.h (HAL_THREAD_INIT_CONTEXT): Set initial
+ PC for GDB thread info.
+
+ * src/arm_stub.c (__build_t_packet): Fix thread id's which
+ must be send to GDB in big-endian.
+
+1998-12-10 Jesper Skov <jskov@cygnus.co.uk>
+
+ * include/hal_cache.h (HAL_DCACHE_UNLOCK_ALL,
+ HAL_ICACHE_UNLOCK_ALL): Added.
+
+1998-12-09 Gary Thomas <gthomas@cygnus.co.uk>
+
+ * src/vectors.S (abort_prefetch): Clean up all exception
+ handlers (some were just broken).
+
+ * src/hal_misc.c (exception_handler): Improved exception
+ handling for GDB stubs while accessing memory.
+
+1998-12-04 Gary Thomas <gthomas@cygnus.co.uk>
+
+ * src/arm_stub.c (target_ins): Finish single step support.
+
+1998-12-03 Gary Thomas <gthomas@cygnus.co.uk>
+
+ * src/vectors.S (_name): Add undefined instruction handling
+ (for breakpoint/single step support). Plus some rework and
+ general cleanup.
+
+ * src/arm_stub.c (single_step):
+ * include/hal_arch.h (HAL_BREAKPOINT): Make breakpoint use
+ an illegal instruction rather than SWI.
+
+1998-12-02 Gary Thomas <gthomas@cygnus.co.uk>
+
+ * src/arm_stub.c (ins_will_execute): Take out debug messages
+
+ * include/pkgconf/hal_arm.h: New file
+
+ * include/arm_stub.h: Add PSR register definitions
+
+ * src/arm_stub.c (single_step): Support single stepping
+
+1998-12-01 Gary Thomas <gthomas@cygnus.co.uk>
+
+ * src/vectors.S (reset_vector): Rework exception handing to leave
+ vectors in place unless GDB stubs are included (or started in
+ user mode via Angel)
+
+1998-11-26 Gary Thomas <gthomas@cygnus.co.uk>
+
+ * src/vectors.S (_vectors): Rework to handle SWI exception
+ Changes to make GDB stubs work.
+
+ * src/hal_misc.c (exception_handler):
+ Save registers in global "_hal_registers"
+
+ * src/PKGconf.mak (COMPILE): Add arm_stub.c
+
+ * include/hal_io.h: Need to include <pkgconf/kernel.h>
+
+ * include/hal_arch.h (HAL_THREAD_INIT_CONTEXT):
+ Clean up stack usage - no need for 56 byte padding (PPC holdover)
+ (HAL_BREAKPOINT):
+ (HAL_GET_GDB_REGISTERS):
+ (HAL_SET_GDB_REGISTERS): Clean up for working stubs
+
+ * src/arm_stub.c: New file, GDB stubs support
+
+1998-11-18 Gary Thomas <gthomas@cygnus.co.uk>
+
+ * src/hal_mk_defs.c: Add define for 'HAL_SavedRegisters'
+
+ * include/hal_arch.h: cleanup comments
+
+ * include/basetype.h: cleanup comments
+
+ * src/vectors.S: Improved interrupt stack handling.
+
+ * include/hal_intr.h: Add support for interrupt latency
+ measurement, controlled by CYGVAR_KERNEL_COUNTERS_CLOCK_LATENCY.
+
+1998-10-16 Bart Veer <bartv@cygnus.co.uk>
+
+ * src/vectors.S (__interrupt_stack):
+ Made the interrupt stack size configurable.
+
+//===========================================================================
+// ####GPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002, 2009 Free Software Foundation, Inc.
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 2 or (at your option) any
+// later version.
+//
+// This program is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the
+// Free Software Foundation, Inc., 51 Franklin Street,
+// Fifth Floor, Boston, MA 02110-1301, USA.
+// -------------------------------------------
+// ####GPLCOPYRIGHTEND####
+//===========================================================================
diff --git a/ecos/packages/hal/arm/arch/current/cdl/hal_arm.cdl b/ecos/packages/hal/arm/arch/current/cdl/hal_arm.cdl
new file mode 100644
index 0000000..f561a05
--- /dev/null
+++ b/ecos/packages/hal/arm/arch/current/cdl/hal_arm.cdl
@@ -0,0 +1,397 @@
+# ====================================================================
+#
+# hal_arm.cdl
+#
+# ARM architectural HAL package configuration data
+#
+# ====================================================================
+## ####ECOSGPLCOPYRIGHTBEGIN####
+## -------------------------------------------
+## This file is part of eCos, the Embedded Configurable Operating System.
+## Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+##
+## eCos is free software; you can redistribute it and/or modify it under
+## the terms of the GNU General Public License as published by the Free
+## Software Foundation; either version 2 or (at your option) any later
+## version.
+##
+## eCos is distributed in the hope that it will be useful, but WITHOUT
+## ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+## FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+## for more details.
+##
+## You should have received a copy of the GNU General Public License
+## along with eCos; if not, write to the Free Software Foundation, Inc.,
+## 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+##
+## As a special exception, if other files instantiate templates or use
+## macros or inline functions from this file, or you compile this file
+## and link it with other works to produce a work based on this file,
+## this file does not by itself cause the resulting work to be covered by
+## the GNU General Public License. However the source code for this file
+## must still be made available in accordance with section (3) of the GNU
+## General Public License v2.
+##
+## This exception does not invalidate any other reasons why a work based
+## on this file might be covered by the GNU General Public License.
+## -------------------------------------------
+## ####ECOSGPLCOPYRIGHTEND####
+# ====================================================================
+######DESCRIPTIONBEGIN####
+#
+# Author(s): bartv
+# Original data: gthomas
+# Contributors:
+# Date: 1999-06-13
+#
+#####DESCRIPTIONEND####
+#
+# ====================================================================
+cdl_package CYGPKG_HAL_ARM {
+ display "ARM architecture"
+ parent CYGPKG_HAL
+ hardware
+ include_dir cyg/hal
+ define_header hal_arm.h
+ description "
+ The ARM architecture HAL package provides generic
+ support for this processor architecture. It is also
+ necessary to select a specific target platform HAL
+ package."
+
+ compile hal_misc.c context.S arm_stub.c hal_syscall.c
+
+ # 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 {
+ arm.inc : <PACKAGE>/src/hal_mk_defs.c
+ $(CC) $(ACTUAL_CFLAGS) $(INCLUDE_PATH) -Wp,-MD,arm.tmp -o hal_mk_defs.tmp -S $<
+ fgrep .equ hal_mk_defs.tmp | sed s/#// > $@
+ @echo $@ ": \\" > $(notdir $@).deps
+ @tail -n +2 arm.tmp >> $(notdir $@).deps
+ @echo >> $(notdir $@).deps
+ @rm arm.tmp hal_mk_defs.tmp
+ }
+
+ make {
+ <PREFIX>/lib/vectors.o : <PACKAGE>/src/vectors.S
+ $(CC) -Wp,-MD,vectors.tmp $(INCLUDE_PATH) $(ACTUAL_CFLAGS) -c -o $@ $<
+ @echo $@ ": \\" > $(notdir $@).deps
+ @tail -n +2 vectors.tmp >> $(notdir $@).deps
+ @echo >> $(notdir $@).deps
+ @rm vectors.tmp
+ }
+
+ make {
+ <PREFIX>/lib/target.ld: <PACKAGE>/src/arm.ld
+ $(CC) -E -P -Wp,-MD,target.tmp -xc $(INCLUDE_PATH) $(ACTUAL_CFLAGS) -o $@ $<
+ @echo $@ ": \\" > $(notdir $@).deps
+ @tail -n +2 target.tmp >> $(notdir $@).deps
+ @echo >> $(notdir $@).deps
+ @rm target.tmp
+ }
+
+ cdl_interface CYGINT_HAL_ARM_THUMB_ARCH {
+ display "The CPU architecture supports THUMB mode"
+ }
+
+ cdl_option CYGHWR_THUMB {
+ display "Enable Thumb instruction set"
+ active_if { CYGINT_HAL_ARM_THUMB_ARCH != 0 }
+ default_value 0
+ description "
+ Enable use of the Thumb instruction set."
+ }
+
+ # Note that when building a ROM monitor we include Thumb
+ # interworking in order to support Thumb applications running
+ # under a ARM ROM monitor.
+ cdl_option CYGBLD_ARM_ENABLE_THUMB_INTERWORK {
+ display "Enable Thumb interworking compiler option"
+ active_if { CYGINT_HAL_ARM_THUMB_ARCH != 0 }
+ default_value { (CYGHWR_THUMB || CYGSEM_HAL_ROM_MONITOR) }
+ description "
+ This option controls the use of -mthumb-interwork in the
+ compiler flags. It defaults enabled in Thumb or ROM monitor
+ configurations, but can be overridden for reduced memory
+ footprint where interworking is not a requirement."
+ }
+
+ cdl_interface CYGINT_HAL_ARM_BIGENDIAN {
+ display "The platform and architecture supports Big Endian operation"
+ }
+
+ cdl_option CYGHWR_HAL_ARM_BIGENDIAN {
+ display "Use big-endian mode"
+ active_if { CYGINT_HAL_ARM_BIGENDIAN != 0 }
+ default_value 0
+ description "
+ Use the CPU in big-endian mode."
+ }
+
+ cdl_option CYGBLD_ARCH_CFLAGS {
+ display "Architecture-specific compiler flags"
+ parent CYGBLD_GLOBAL_OPTIONS
+ flavor data
+ no_define
+ calculated { (CYGHWR_THUMB ? " -mthumb " : "") .
+ (CYGBLD_ARM_ENABLE_THUMB_INTERWORK ? " -mthumb-interwork " : " -mno-thumb-interwork ") .
+ (CYGHWR_HAL_ARM_BIGENDIAN ? " -mbig-endian " : "")
+ }
+ requires { CYGHWR_THUMB && CYGBLD_ARM_ENABLE_THUMB_INTERWORK implies is_substr(CYGBLD_GLOBAL_CFLAGS, " -mthumb ") &&
+ is_substr(CYGBLD_GLOBAL_CFLAGS, " -mthumb-interwork ") &&
+ !is_substr(CYGBLD_GLOBAL_CFLAGS, " -mno-thumb-interwork ") }
+ requires { !CYGHWR_THUMB && CYGBLD_ARM_ENABLE_THUMB_INTERWORK implies !is_substr(CYGBLD_GLOBAL_CFLAGS, " -mthumb ") &&
+ is_substr(CYGBLD_GLOBAL_CFLAGS, " -mthumb-interwork ") &&
+ !is_substr(CYGBLD_GLOBAL_CFLAGS, " -mno-thumb-interwork ") }
+ requires { CYGHWR_THUMB && !CYGBLD_ARM_ENABLE_THUMB_INTERWORK implies is_substr(CYGBLD_GLOBAL_CFLAGS, " -mthumb ") &&
+ !is_substr(CYGBLD_GLOBAL_CFLAGS, " -mthumb-interwork ") &&
+ is_substr(CYGBLD_GLOBAL_CFLAGS, " -mno-thumb-interwork ") }
+ requires { !CYGHWR_THUMB && !CYGBLD_ARM_ENABLE_THUMB_INTERWORK implies !is_substr(CYGBLD_GLOBAL_CFLAGS, " -mthumb ") &&
+ !is_substr(CYGBLD_GLOBAL_CFLAGS, " -mthumb-interwork ") &&
+ is_substr(CYGBLD_GLOBAL_CFLAGS, " -mno-thumb-interwork ") }
+ requires { CYGHWR_HAL_ARM_BIGENDIAN implies is_substr(CYGBLD_GLOBAL_CFLAGS, " -mbig-endian ") }
+ requires { !CYGHWR_HAL_ARM_BIGENDIAN implies !is_substr(CYGBLD_GLOBAL_CFLAGS, " -mbig-endian ") }
+ }
+
+ cdl_option CYGBLD_ARCH_LDFLAGS {
+ display "Architecture-specific linker flags"
+ parent CYGBLD_GLOBAL_OPTIONS
+ flavor data
+ no_define
+ calculated { (CYGHWR_THUMB ? " -mthumb " : "") .
+ (CYGBLD_ARM_ENABLE_THUMB_INTERWORK ? " -mthumb-interwork " : " -mno-thumb-interwork ") .
+ (CYGHWR_HAL_ARM_BIGENDIAN ? " -mbig-endian " : "")
+ }
+ requires { CYGHWR_THUMB && CYGBLD_ARM_ENABLE_THUMB_INTERWORK implies is_substr(CYGBLD_GLOBAL_LDFLAGS, " -mthumb ") &&
+ is_substr(CYGBLD_GLOBAL_LDFLAGS, " -mthumb-interwork ") &&
+ !is_substr(CYGBLD_GLOBAL_LDFLAGS, " -mno-thumb-interwork ") }
+ requires { !CYGHWR_THUMB && CYGBLD_ARM_ENABLE_THUMB_INTERWORK implies !is_substr(CYGBLD_GLOBAL_LDFLAGS, " -mthumb ") &&
+ is_substr(CYGBLD_GLOBAL_LDFLAGS, " -mthumb-interwork ") &&
+ !is_substr(CYGBLD_GLOBAL_LDFLAGS, " -mno-thumb-interwork ") }
+ requires { CYGHWR_THUMB && !CYGBLD_ARM_ENABLE_THUMB_INTERWORK implies is_substr(CYGBLD_GLOBAL_LDFLAGS, " -mthumb ") &&
+ !is_substr(CYGBLD_GLOBAL_LDFLAGS, " -mthumb-interwork ") &&
+ is_substr(CYGBLD_GLOBAL_LDFLAGS, " -mno-thumb-interwork ") }
+ requires { !CYGHWR_THUMB && !CYGBLD_ARM_ENABLE_THUMB_INTERWORK implies !is_substr(CYGBLD_GLOBAL_LDFLAGS, " -mthumb ") &&
+ !is_substr(CYGBLD_GLOBAL_LDFLAGS, " -mthumb-interwork ") &&
+ is_substr(CYGBLD_GLOBAL_LDFLAGS, " -mno-thumb-interwork ") }
+ requires { CYGHWR_HAL_ARM_BIGENDIAN implies is_substr(CYGBLD_GLOBAL_LDFLAGS, " -mbig-endian ") }
+ requires { !CYGHWR_HAL_ARM_BIGENDIAN implies !is_substr(CYGBLD_GLOBAL_LDFLAGS, " -mbig-endian ") }
+ }
+
+ cdl_interface CYGINT_HAL_ARM_ARCH_ARM7 {
+ display "The platform uses a processor with an ARM7 core"
+ }
+
+ cdl_interface CYGINT_HAL_ARM_ARCH_ARM9 {
+ display "The platform uses a processor with an ARM9 core"
+ }
+
+ cdl_interface CYGINT_HAL_ARM_ARCH_STRONGARM {
+ display "The platform uses a processor with a StrongARM core"
+ }
+
+ cdl_interface CYGINT_HAL_ARM_ARCH_XSCALE {
+ display "The platform uses a processor with a XScale core"
+ }
+
+ cdl_option CYGHWR_HAL_ARM_CPU_FAMILY {
+ display "ARM CPU family"
+ flavor data
+ legal_values { (CYGINT_HAL_ARM_ARCH_ARM7 != 0) ? "ARM7" : ""
+ (CYGINT_HAL_ARM_ARCH_ARM9 != 0) ? "ARM9" : ""
+ (CYGINT_HAL_ARM_ARCH_STRONGARM != 0) ? "StrongARM" : ""
+ (CYGINT_HAL_ARM_ARCH_XSCALE != 0) ? "XScale" : ""
+ "" }
+ default_value { (CYGINT_HAL_ARM_ARCH_ARM7 != 0) ? "ARM7" :
+ (CYGINT_HAL_ARM_ARCH_ARM9 != 0) ? "ARM9" :
+ (CYGINT_HAL_ARM_ARCH_STRONGARM != 0) ? "StrongARM" :
+ (CYGINT_HAL_ARM_ARCH_XSCALE != 0) ? "XScale" :
+ "unknown" }
+ no_define
+ description "
+ It is possible to optimize code for different
+ ARM CPU families. This option selects which CPU to
+ optimize for on boards that support multiple CPU types."
+ }
+
+ cdl_option CYGBLD_HAL_ARM_EABI {
+ display "Build for ARM EABI"
+ default_value { (is_substr(CYGBLD_GLOBAL_COMMAND_PREFIX, "-eabi") && \
+ !is_substr(CYGBLD_GLOBAL_CFLAGS, "-mabi=apcs-gnu") && \
+ !is_substr(CYGBLD_GLOBAL_CFLAGS, "-mabi=atpcs")) || \
+ is_substr(CYGBLD_GLOBAL_CFLAGS, "-mabi=aapcs") }
+ # The EABI uses a different C++ exception implementation to the standard
+ # one and thus we indicate this to CYGPKG_LIBSTDCXX
+ implements CYGINT_LIBSTDCXX_NO_CXX_EXCEPTION_REG_FRAME_IMPL
+ description "
+ If using a toolchain which targets the ARM EABI (embedded application
+ binary interface), this option should be enabled to provide altered
+ semantics and differing linker section output."
+ }
+
+ cdl_option CYGHWR_HAL_ARM_DUMP_EXCEPTIONS {
+ display "Provide diagnostic dump for exceptions"
+ requires !CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS
+ default_value 0
+ description "
+ Print messages about hardware exceptions, including
+ raw exception frame dump and register contents."
+ }
+
+ cdl_option CYGIMP_HAL_PROCESS_ALL_EXCEPTIONS {
+ display "Process all exceptions with the eCos application"
+ default_value 0
+ description "
+ Normal RAM-based programs which do not include GDB stubs
+ defer processing of the illegal instruction exception to GDB.
+ Setting this options allows the program to explicitly handle
+ the illegal instruction exception itself. Note: this will
+ prevent the use of GDB to debug the application as breakpoints
+ will no longer work."
+ }
+
+ cdl_option CYGHWR_HAL_ARM_ICE_THREAD_SUPPORT {
+ display "Support GDB thread operations via ICE/Multi-ICE"
+ default_value 0
+ requires CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS
+ requires CYGDBG_HAL_DEBUG_GDB_THREAD_SUPPORT
+ requires CYGDBG_KERNEL_DEBUG_GDB_THREAD_SUPPORT
+ description "
+ Allow GDB to get thread information via the ICE/Multi-ICE
+ connection."
+ }
+
+ cdl_option CYGOPT_HAL_ARM_SYSCALL_GPROF_SUPPORT {
+ display "Support for 'gprof' callbacks"
+ calculated 1
+ no_define
+ active_if CYGSEM_REDBOOT_BSP_SYSCALLS
+ active_if { CYGDBG_HAL_DEBUG_GDB_CTRLC_SUPPORT || CYGDBG_HAL_DEBUG_GDB_BREAK_SUPPORT }
+ implements CYGINT_REDBOOT_BSP_SYSCALLS_GPROF_SUPPORT
+ description "
+ The ARM HAL provides the macro for 'gprof' callbacks from RedBoot
+ to acquire the interrupt-context PC and SP, when this option is
+ active."
+ }
+
+ cdl_option CYGOPT_HAL_ARM_WITH_USER_MODE {
+ display "Accept exceptions and irq's occurring in user mode"
+ default_value 0
+ description "
+ For standalone Redboot based programs running in user mode."
+ }
+
+ cdl_option CYGOPT_HAL_ARM_PRESERVE_SVC_SPSR {
+ display "Preserve svc spsr before returning to svc mode"
+ default_value 0
+ description "
+ This option secures exception and breakpoint processing
+ triggered during execution of application specific SWI
+ handlers."
+ }
+
+ cdl_option CYGOPT_HAL_ARM_FIQ_DISABLE {
+ display "Disable FIQs"
+ default_value 1
+ description "This option causes the HAL to disable both IRQ and FIQ
+ interrupts during critical sections. Disabling this option
+ causes eCos to only disable IRQs and puts FIQ
+ interrupts outside the eCos world where they cannot interact
+ with eCos in any way. Disabling this option also enables
+ a set of macros, HAL_DISABLE|ENABLE|RESTORE|QUERY_FIQ,
+ that provide control over the delivery of FIQs.
+ The default is for this option to be enabled, which provides
+ backward compatibility with previous versions of the ARM HAL."
+ }
+
+ cdl_option CYGNUM_HAL_ARM_FIQ_STACK_SIZE {
+ display "FIQ stack size"
+ active_if !CYGOPT_HAL_ARM_FIQ_DISABLE
+ flavor data
+ legal_values 32 to 0x80000000
+ default_value 512
+ description "This option set the size of the stack used to handle FIQ
+ interrupts. It is only used if the HAL is not disabling
+ FIQs during critical sections. Otherwise FIQs are translated
+ into IRQs and delivered on the standard interrupt stack."
+ }
+
+
+ cdl_component CYGPKG_REDBOOT_ARM_OPTIONS {
+ display "Redboot for ARM options"
+ flavor none
+ no_define
+ parent CYGPKG_REDBOOT
+ active_if CYGPKG_REDBOOT
+ description "
+ This option lists the target's requirements for a valid Redboot
+ configuration."
+
+ cdl_component CYGPKG_REDBOOT_ARM_LINUX_EXEC {
+ display "Provide the exec command in RedBoot"
+ flavor none
+ parent CYGPKG_REDBOOT_ARM_OPTIONS
+ active_if CYGBLD_BUILD_REDBOOT_WITH_EXEC
+ description "
+ This option contains requirements for booting linux
+ from RedBoot. The component is enabled/disabled from
+ RedBoots CDL."
+ compile -library=libextras.a redboot_linux_exec.c
+
+ cdl_option CYGHWR_REDBOOT_LINUX_EXEC_X_SWITCH {
+ display "Enable -x switch for exec command."
+ flavor bool
+ default_value 0
+ description "
+ This option allows bi-endian platforms to launch kernels
+ built for an endianess different than the RedBoot endianess"
+ }
+
+ cdl_option CYGHWR_REDBOOT_ARM_LINUX_EXEC_ADDRESS {
+ display "Physical base address of linux kernel"
+ flavor data
+ default_value CYGHWR_REDBOOT_ARM_LINUX_EXEC_ADDRESS_DEFAULT
+ description "
+ This is the physical address of the base of the
+ Linux kernel image."
+ }
+
+ cdl_option CYGHWR_REDBOOT_ARM_LINUX_EXEC_ADDRESS_DEFAULT {
+ display "Default physical base address of linux kernel"
+ flavor data
+ default_value 0x00008000
+ no_define
+ description "
+ This is the physical address of the base of the
+ Linux kernel image. This option gets set by the
+ platform CDL."
+ }
+
+ cdl_option CYGHWR_REDBOOT_ARM_LINUX_TAGS_ADDRESS {
+ display "Base address of linux kernel parameter tags"
+ flavor data
+ default_value 0x100
+ description "
+ This is the base address of the area of memory used to
+ pass parameters to the Linux kernel. This should be chosen
+ to avoid overlap with the kernel and any ramdisk image."
+ }
+ }
+
+ }
+
+ cdl_option CYGBLD_LINKER_SCRIPT {
+ display "Linker script"
+ flavor data
+ no_define
+ calculated { "src/arm.ld" }
+ }
+
+ cdl_interface CYGINT_HAL_ARM_MEM_REAL_REGION_TOP {
+ display "Implementations of hal_arm_mem_real_region_top()"
+ }
+}
+
+# EOF hal_arm.cdl
diff --git a/ecos/packages/hal/arm/arch/current/include/arch.inc b/ecos/packages/hal/arm/arch/current/include/arch.inc
new file mode 100644
index 0000000..5065922
--- /dev/null
+++ b/ecos/packages/hal/arm/arch/current/include/arch.inc
@@ -0,0 +1,78 @@
+##=============================================================================
+##
+## arch.inc
+##
+## ARM architecture assembler header file
+##
+##=============================================================================
+## ####ECOSGPLCOPYRIGHTBEGIN####
+## -------------------------------------------
+## This file is part of eCos, the Embedded Configurable Operating System.
+## Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+##
+## eCos is free software; you can redistribute it and/or modify it under
+## the terms of the GNU General Public License as published by the Free
+## Software Foundation; either version 2 or (at your option) any later
+## version.
+##
+## eCos is distributed in the hope that it will be useful, but WITHOUT
+## ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+## FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+## for more details.
+##
+## You should have received a copy of the GNU General Public License
+## along with eCos; if not, write to the Free Software Foundation, Inc.,
+## 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+##
+## As a special exception, if other files instantiate templates or use
+## macros or inline functions from this file, or you compile this file
+## and link it with other works to produce a work based on this file,
+## this file does not by itself cause the resulting work to be covered by
+## the GNU General Public License. However the source code for this file
+## must still be made available in accordance with section (3) of the GNU
+## General Public License v2.
+##
+## This exception does not invalidate any other reasons why a work based
+## on this file might be covered by the GNU General Public License.
+## -------------------------------------------
+## ####ECOSGPLCOPYRIGHTEND####
+##=============================================================================
+#######DESCRIPTIONBEGIN####
+##
+## Author(s): jskov
+## Contributors:jskov
+## Date: 2000-11-15
+## Purpose: ARM definitions.
+## Description: This file contains various definitions and macros that are
+## useful for writing assembly code for the ARM
+## It also includes the variant/platform assembly header file.
+## Usage:
+## #include <cyg/hal/arch.inc>
+## ...
+##
+##
+######DESCRIPTIONEND####
+##
+##=============================================================================
+
+#include <cyg/hal/basetype.h>
+
+##-----------------------------------------------------------------------------
+## ARM entry definitions. This allows _ prefixing to change by modifying
+## the CYG_LABEL_DEFN macro.
+
+#define FUNC_START(name) \
+ .type CYG_LABEL_DEFN(name),@function; \
+ .globl CYG_LABEL_DEFN(name); \
+CYG_LABEL_DEFN(name):
+
+#define FUNC_END(name) \
+ .globl CYG_LABEL_DEFN(name); \
+CYG_LABEL_DEFN(name):
+
+#define SYM_DEF(name) \
+ .globl CYG_LABEL_DEFN(name); \
+CYG_LABEL_DEFN(name):
+
+#------------------------------------------------------------------------------
+# end of arch.inc
diff --git a/ecos/packages/hal/arm/arch/current/include/arm_stub.h b/ecos/packages/hal/arm/arch/current/include/arm_stub.h
new file mode 100644
index 0000000..3023f96
--- /dev/null
+++ b/ecos/packages/hal/arm/arch/current/include/arm_stub.h
@@ -0,0 +1,180 @@
+#ifndef CYGONCE_HAL_ARM_STUB_H
+#define CYGONCE_HAL_ARM_STUB_H
+//========================================================================
+//
+// arm_stub.h
+//
+// ARM-specific definitions for generic stub
+//
+//========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): Red Hat, gthomas
+// Contributors: Red Hat, gthomas
+// Date: 1998-11-26
+// Purpose:
+// Description: ARM-specific definitions for generic stub
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//========================================================================
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+// The ARM has float (and possibly other coprocessor) registers that are
+// larger than it can hold in a target_register_t.
+#define TARGET_HAS_LARGE_REGISTERS
+
+// ARM stub has special needs for register handling (not all regs are the
+// the same size), so special put_register and get_register are provided.
+#define CYGARC_STUB_REGISTER_ACCESS_DEFINED 1
+
+#define NUMREGS (16+8+2) // 16 GPR, 8 FPR (unused), 2 PS
+
+#define REGSIZE( _x_ ) (((_x_) < F0 || (_x_) >= FPS) ? 4 : 12)
+
+// Comment out to allow for default gdb stub packet buffer which is larger.
+// #define NUMREGBYTES ((16*4)+(8*12)+(2*4))
+
+#ifndef TARGET_REGISTER_T_DEFINED
+#define TARGET_REGISTER_T_DEFINED
+typedef unsigned long target_register_t;
+#endif
+
+enum regnames {
+ R0, R1, R2, R3, R4, R5, R6, R7,
+ R8, R9, R10, FP, IP, SP, LR, PC,
+ F0, F1, F2, F3, F4, F5, F6, F7,
+ FPS, PS
+};
+
+#define HAL_STUB_REGISTERS_SIZE \
+ ((sizeof(GDB_Registers) + sizeof(target_register_t) - 1) / sizeof(target_register_t))
+
+#define PS_N 0x80000000
+#define PS_Z 0x40000000
+#define PS_C 0x20000000
+#define PS_V 0x10000000
+
+#define PS_I CPSR_IRQ_DISABLE
+#define PS_F CPSR_FIQ_DISABLE
+
+typedef enum regnames regnames_t;
+
+/* Given a trap value TRAP, return the corresponding signal. */
+extern int __computeSignal (unsigned int trap_number);
+
+/* Return the SPARC trap number corresponding to the last-taken trap. */
+extern int __get_trap_number (void);
+
+/* Return the currently-saved value corresponding to register REG. */
+extern target_register_t get_register (regnames_t reg);
+
+/* Store VALUE in the register corresponding to WHICH. */
+extern void put_register (regnames_t which, target_register_t value);
+
+/* Set the currently-saved pc register value to PC. This also updates NPC
+ as needed. */
+extern void set_pc (target_register_t pc);
+
+/* Set things up so that the next user resume will execute one instruction.
+ This may be done by setting breakpoints or setting a single step flag
+ in the saved user registers, for example. */
+void __single_step (void);
+
+/* Clear the single-step state. */
+void __clear_single_step (void);
+
+/* If the breakpoint we hit is in the breakpoint() instruction, return a
+ non-zero value. */
+extern int __is_breakpoint_function (void);
+
+/* Skip the current instruction. */
+extern void __skipinst (void);
+
+extern void __install_breakpoints (void);
+
+extern void __clear_breakpoints (void);
+
+extern int __is_bsp_syscall(void);
+
+//------------------------------------------------------------------------
+// Special definition of CYG_HAL_GDB_ENTER_CRITICAL_IO_REGION
+
+#ifdef CYGDBG_HAL_DEBUG_GDB_BREAK_SUPPORT
+// we can only do this at all if break support is enabled:
+
+#ifdef __thumb__
+// If this macro is used from Thumb code, we need to pass this information
+// along to the place_break function so it can do the right thing.
+#define CYG_HAL_GDB_ENTER_CRITICAL_IO_REGION( _old_ ) \
+do { \
+ HAL_DISABLE_INTERRUPTS(_old_); \
+ cyg_hal_gdb_place_break((target_register_t)((unsigned long)&&cyg_hal_gdb_break_place + 1));\
+} while ( 0 )
+
+#else
+
+#define CYG_HAL_GDB_ENTER_CRITICAL_IO_REGION( _old_ ) \
+do { \
+ HAL_DISABLE_INTERRUPTS(_old_); \
+ cyg_hal_gdb_place_break((target_register_t)&&cyg_hal_gdb_break_place ); \
+} while ( 0 )
+
+#endif // __thumb_
+
+// Also define ..LEAVE.. with a trick to *use* the label - sometimes the
+// tools want to move the label, which is bad.
+#define CYG_HAL_GDB_LEAVE_CRITICAL_IO_REGION( _old_ ) \
+do { \
+ cyg_hal_gdb_remove_break( (target_register_t)&&cyg_hal_gdb_break_place ); \
+ HAL_RESTORE_INTERRUPTS(_old_); \
+ _old_ = 1; /* actually use the label as a label... */ \
+cyg_hal_gdb_break_place: \
+ if ( (_old_)-- > 0 ) /* ...or the compiler might move it! */ \
+ goto cyg_hal_gdb_break_place; \
+} while ( 0 )
+
+#endif // CYGDBG_HAL_DEBUG_GDB_BREAK_SUPPORT
+
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+#endif // ifndef CYGONCE_HAL_ARM_STUB_H
diff --git a/ecos/packages/hal/arm/arch/current/include/basetype.h b/ecos/packages/hal/arm/arch/current/include/basetype.h
new file mode 100644
index 0000000..6f3455c
--- /dev/null
+++ b/ecos/packages/hal/arm/arch/current/include/basetype.h
@@ -0,0 +1,91 @@
+#ifndef CYGONCE_HAL_BASETYPE_H
+#define CYGONCE_HAL_BASETYPE_H
+
+//=============================================================================
+//
+// basetype.h
+//
+// Standard types for this architecture.
+//
+//=============================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): nickg, gthomas
+// Contributors: nickg, gthomas
+// Date: 1998-09-11
+// Purpose: Define architecture base types.
+// Usage: Included by "cyg_type.h", do not use directly
+
+//
+//####DESCRIPTIONEND####
+//
+
+//-----------------------------------------------------------------------------
+// Characterize the architecture
+
+#ifdef __ARMEB__
+# define CYG_BYTEORDER CYG_MSBFIRST // Big endian
+#else
+# define CYG_BYTEORDER CYG_LSBFIRST // Little endian
+#endif
+
+#if defined(__ARMEL__) && defined(__VFP_FP__)
+# define CYG_DOUBLE_BYTEORDER CYG_LSBFIRST
+#else
+# define CYG_DOUBLE_BYTEORDER CYG_MSBFIRST // Big? endian
+#endif
+
+//-----------------------------------------------------------------------------
+// ARM does not usually use labels with underscores.
+
+#define CYG_LABEL_NAME(_name_) _name_
+#define CYG_LABEL_DEFN(_name_) _name_
+
+//-----------------------------------------------------------------------------
+// Override the alignment definitions from cyg_type.h. ARM only allows 4
+// byte alignment whereas the default is 8 byte.
+
+#define CYGARC_ALIGNMENT 4
+#define CYGARC_P2ALIGNMENT 2
+
+//-----------------------------------------------------------------------------
+// Define the standard variable sizes
+
+// The ARM architecture uses the default definitions of the base types,
+// so we do not need to define any here.
+
+//-----------------------------------------------------------------------------
+#endif // CYGONCE_HAL_BASETYPE_H
+// End of basetype.h
diff --git a/ecos/packages/hal/arm/arch/current/include/hal_arch.h b/ecos/packages/hal/arm/arch/current/include/hal_arch.h
new file mode 100644
index 0000000..c4a1c2c
--- /dev/null
+++ b/ecos/packages/hal/arm/arch/current/include/hal_arch.h
@@ -0,0 +1,421 @@
+#ifndef CYGONCE_HAL_ARCH_H
+#define CYGONCE_HAL_ARCH_H
+
+//==========================================================================
+//
+// hal_arch.h
+//
+// Architecture specific abstractions
+//
+//==========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2007, 2008 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//==========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): nickg, gthomas
+// Contributors: nickg, gthomas
+// Date: 1999-02-20
+// Purpose: Define architecture abstractions
+// Usage: #include <cyg/hal/hal_arch.h>
+
+//
+//####DESCRIPTIONEND####
+//
+//==========================================================================
+
+#include <pkgconf/hal.h> // To decide on stack usage
+#include <cyg/infra/cyg_type.h>
+
+#ifdef CYGBLD_HAL_ARM_PLF_ARCH_H
+#include <cyg/hal/plf_arch.h>
+#endif
+
+#ifdef CYGBLD_HAL_ARM_VAR_ARCH_H
+#include <cyg/hal/var_arch.h>
+#endif
+
+//
+// CPSR Register defines
+//
+
+#define CPSR_IRQ_DISABLE 0x80 // IRQ disabled when =1
+#define CPSR_FIQ_DISABLE 0x40 // FIQ disabled when =1
+#define CPSR_THUMB_ENABLE 0x20 // Thumb mode when =1
+#define CPSR_USER_MODE 0x10
+#define CPSR_FIQ_MODE 0x11
+#define CPSR_IRQ_MODE 0x12
+#define CPSR_SUPERVISOR_MODE 0x13
+#define CPSR_UNDEF_MODE 0x1B
+
+// The following are not supported by every CPU, but if
+// they are, they have the following values:
+#define CPSR_ICACHE_ENABLE 0x1000
+#define CPSR_BIG_ENDIAN 0x80
+#define CPSR_DCACHE_ENABLE 0x4
+#define CPSR_ALIGN_FAULT_ENABLE 0x2
+#define CPSR_MMU_ENABLE 0x1
+
+#define CPSR_MODE_BITS 0x1F
+
+#define CPSR_INITIAL (CPSR_IRQ_DISABLE|CPSR_FIQ_DISABLE|CPSR_SUPERVISOR_MODE)
+#ifdef CYGOPT_HAL_ARM_FIQ_DISABLE
+#define CPSR_THREAD_INITIAL (CPSR_SUPERVISOR_MODE)
+#else
+#define CPSR_THREAD_INITIAL (CPSR_SUPERVISOR_MODE|CPSR_FIQ_DISABLE)
+#endif
+//
+// Vector table offsets
+//
+
+#define HAL_ARM_RESET_VECTOR 0x00
+#define HAL_ARM_UNDEFINED_VECTOR 0x04
+#define HAL_ARM_SWI_VECTOR 0x08
+#define HAL_ARM_PREFETCH_VECTOR 0x0C
+#define HAL_ARM_ABORT_VECTOR 0x10
+#define HAL_ARM_RESERVED_VECTOR 0x14
+#define HAL_ARM_IRQ_VECTOR 0x18
+#define HAL_ARM_FIQ_VECTOR 0x1C
+#define HAL_ARM_RESET_VECTOR_ADDR 0x20
+#define HAL_ARM_UNDEFINED_VECTOR_ADDR 0x24
+#define HAL_ARM_SWI_VECTOR_ADDR 0x28
+#define HAL_ARM_PREFETCH_VECTOR_ADDR 0x2C
+#define HAL_ARM_ABORT_VECTOR_ADDR 0x30
+#define HAL_ARM_RESERVED_VECTOR_ADDR 0x34
+#define HAL_ARM_IRQ_VECTOR_ADDR 0x38
+#define HAL_ARM_FIQ_VECTOR_ADDR 0x3C
+
+//--------------------------------------------------------------------------
+// Processor saved states:
+// The layout of this structure is also defined in "arm.inc", for assembly
+// code, which will be generated automatically if this file changes.
+
+#define HAL_THREAD_CONTEXT_FIRST 0
+#define HAL_THREAD_CONTEXT_R0 (0-HAL_THREAD_CONTEXT_FIRST)
+#define HAL_THREAD_CONTEXT_R4 (4-HAL_THREAD_CONTEXT_FIRST)
+#define HAL_THREAD_CONTEXT_R8 (8-HAL_THREAD_CONTEXT_FIRST)
+#define HAL_THREAD_CONTEXT_R9 (9-HAL_THREAD_CONTEXT_FIRST)
+#define HAL_THREAD_CONTEXT_R10 (10-HAL_THREAD_CONTEXT_FIRST)
+#define HAL_THREAD_CONTEXT_LAST 10
+#define HAL_NUM_THREAD_CONTEXT_REGS (HAL_THREAD_CONTEXT_LAST - \
+ HAL_THREAD_CONTEXT_FIRST+1)
+
+// It seems that r0-r3,r12 are considered scratch by function calls
+
+typedef struct
+{
+ // These are common to all saved states
+ cyg_uint32 d[HAL_NUM_THREAD_CONTEXT_REGS] ; // Data regs (r0..r10)
+ cyg_uint32 fp; // (r11) Frame pointer
+ cyg_uint32 ip; // (r12)
+ cyg_uint32 sp; // (r13) Stack pointer
+ cyg_uint32 lr; // (r14) Link Reg
+ cyg_uint32 pc; // (r15) PC place holder
+ // (never used)
+ cyg_uint32 cpsr; // Condition Reg
+ // These are only saved for exceptions and interrupts
+ cyg_uint32 vector; // Vector number
+ cyg_uint32 svc_lr; // saved svc mode lr
+ cyg_uint32 svc_sp; // saved svc mode sp
+
+} HAL_SavedRegisters;
+
+//-------------------------------------------------------------------------
+// Exception handling function.
+// This function is defined by the kernel according to this prototype. It is
+// invoked from the HAL to deal with any CPU exceptions that the HAL does
+// not want to deal with itself. It usually invokes the kernel's exception
+// delivery mechanism.
+
+externC void cyg_hal_deliver_exception( CYG_WORD code, CYG_ADDRWORD data );
+
+//-------------------------------------------------------------------------
+// Bit manipulation macros
+
+externC int hal_lsbindex(int);
+externC int hal_msbindex(int);
+
+#define HAL_LSBIT_INDEX(index, mask) index = hal_lsbindex(mask)
+#define HAL_MSBIT_INDEX(index, mask) index = hal_msbindex(mask)
+
+//-------------------------------------------------------------------------
+// Context Initialization
+// Initialize the context of a thread.
+// Arguments:
+// _sparg_ name of variable containing current sp, will be changed to new sp
+// _thread_ thread object address, passed as argument to entry point
+// _entry_ entry point address.
+// _id_ bit pattern used in initializing registers, for debugging.
+
+#define HAL_THREAD_INIT_CONTEXT( _sparg_, _thread_, _entry_, _id_ ) \
+ CYG_MACRO_START \
+ register CYG_WORD _sp_ = ((CYG_WORD)_sparg_) &~15; \
+ register HAL_SavedRegisters *_regs_; \
+ int _i_; \
+ _regs_ = (HAL_SavedRegisters *)((_sp_) - sizeof(HAL_SavedRegisters)); \
+ for( _i_ = HAL_THREAD_CONTEXT_FIRST; _i_ <= HAL_THREAD_CONTEXT_LAST; \
+ _i_++ ) \
+ (_regs_)->d[_i_] = (_id_)|_i_; \
+ (_regs_)->d[00] = (CYG_WORD)(_thread_); /* R0 = arg1 = thread ptr */ \
+ (_regs_)->sp = (CYG_WORD)(_sp_); /* SP = top of stack */ \
+ (_regs_)->lr = (CYG_WORD)(_entry_); /* LR = entry point */ \
+ (_regs_)->pc = (CYG_WORD)(_entry_); /* PC = [initial] entry point */\
+ (_regs_)->cpsr = (CPSR_THREAD_INITIAL); /* PSR = Interrupt enabled */ \
+ _sparg_ = (CYG_ADDRESS)_regs_; \
+ CYG_MACRO_END
+
+//--------------------------------------------------------------------------
+// Context switch macros.
+// The arguments are pointers to locations where the stack pointer
+// of the current thread is to be stored, and from where the sp of the
+// next thread is to be fetched.
+
+externC void hal_thread_switch_context( CYG_ADDRESS to, CYG_ADDRESS from );
+externC void hal_thread_load_context( CYG_ADDRESS to )
+ __attribute__ ((noreturn));
+
+#define HAL_THREAD_SWITCH_CONTEXT(_fspptr_,_tspptr_) \
+ hal_thread_switch_context((CYG_ADDRESS)_tspptr_, \
+ (CYG_ADDRESS)_fspptr_);
+
+#define HAL_THREAD_LOAD_CONTEXT(_tspptr_) \
+ hal_thread_load_context( (CYG_ADDRESS)_tspptr_ );
+
+//--------------------------------------------------------------------------
+// Execution reorder barrier.
+// When optimizing the compiler can reorder code. In multithreaded systems
+// where the order of actions is vital, this can sometimes cause problems.
+// This macro may be inserted into places where reordering should not happen.
+
+#define HAL_REORDER_BARRIER() asm volatile ( "" : : : "memory" )
+
+//--------------------------------------------------------------------------
+// Breakpoint support
+// HAL_BREAKPOINT() is a code sequence that will cause a breakpoint to happen
+// if executed.
+// HAL_BREAKINST is the value of the breakpoint instruction and
+// HAL_BREAKINST_SIZE is its size in bytes.
+
+#define _stringify1(__arg) #__arg
+#define _stringify(__arg) _stringify1(__arg)
+
+#define HAL_BREAKINST_ARM 0xE7FFDEFE
+#define HAL_BREAKINST_ARM_SIZE 4
+#define HAL_BREAKINST_THUMB 0xbebe // illegal instruction currently
+#define HAL_BREAKINST_THUMB_SIZE 2
+
+#ifdef __thumb__
+
+# define HAL_BREAKPOINT(_label_) \
+asm volatile (" .code 16;" \
+ " .globl " #_label_ ";" \
+ #_label_":" \
+ " .short " _stringify(HAL_BREAKINST_THUMB) \
+ );
+
+# define HAL_BREAKINST HAL_BREAKINST_THUMB
+# define HAL_BREAKINST_SIZE HAL_BREAKINST_THUMB_SIZE
+# define HAL_BREAKINST_TYPE cyg_uint16
+#else // __thumb__
+
+#define HAL_BREAKPOINT(_label_) \
+asm volatile (" .globl " #_label_ ";" \
+ #_label_":" \
+ " .word " _stringify(HAL_BREAKINST_ARM) \
+ );
+
+//#define HAL_BREAKINST {0xFE, 0xDE, 0xFF, 0xE7}
+#define HAL_BREAKINST HAL_BREAKINST_ARM
+#define HAL_BREAKINST_SIZE HAL_BREAKINST_ARM_SIZE
+#define HAL_BREAKINST_TYPE cyg_uint32
+#endif // __thumb__
+
+
+extern cyg_uint32 __arm_breakinst;
+extern cyg_uint16 __thumb_breakinst;
+#define HAL_BREAKINST_ADDR(x) (((x)==2)? \
+ ((void*)&__thumb_breakinst) : \
+ ((void*)&__arm_breakinst))
+
+//--------------------------------------------------------------------------
+// Thread register state manipulation for GDB support.
+
+// Register layout expected by GDB
+typedef struct
+{
+ cyg_uint32 gpr[16];
+ cyg_uint32 f0[3];
+ cyg_uint32 f1[3];
+ cyg_uint32 f2[3];
+ cyg_uint32 f3[3];
+ cyg_uint32 f4[3];
+ cyg_uint32 f5[3];
+ cyg_uint32 f6[3];
+ cyg_uint32 f7[3];
+ cyg_uint32 fps;
+ cyg_uint32 ps;
+} GDB_Registers;
+
+// Translate a stack pointer as saved by the thread context macros above into
+// a pointer to a HAL_SavedRegisters structure.
+#define HAL_THREAD_GET_SAVED_REGISTERS( _sp_, _regs_ ) \
+ (_regs_) = (HAL_SavedRegisters *)(_sp_)
+
+// Copy a set of coprocessor registers from a HAL_SavedRegisters structure
+// into a GDB_Registers structure. GDB expects placeholders for FP regs
+// even for non-FP targets, so we just zero fill the fields.
+#define HAL_GET_GDB_COPROCESSOR_REGISTERS( _gdb_, _regs_ ) \
+ CYG_MACRO_START \
+ cyg_uint32 *_p_ = _gdb_->f0; \
+ for(_i_ = 0; _i_ < (8 * 3); _i_++) \
+ *_p_++ = 0; \
+ _gdb_->fps = 0; \
+ CYG_MACRO_END
+
+// Copy coprocessor registers from a GDB_Registers structure into a
+// HAL_SavedRegisters structure.
+#define HAL_SET_GDB_COPROCESSOR_REGISTERS( _regs_, _gdb_ )
+
+// Copy a set of registers from a HAL_SavedRegisters structure into a
+// GDB_Registers structure.
+#define HAL_GET_GDB_REGISTERS( _aregval_, _regs_ ) \
+ CYG_MACRO_START \
+ GDB_Registers *_gdb_ = (GDB_Registers *)(_aregval_); \
+ int _i_; \
+ \
+ for( _i_ = 0; _i_ <= 10; _i_++ ) \
+ _gdb_->gpr[_i_] = (_regs_)->d[_i_]; \
+ \
+ _gdb_->gpr[11] = (_regs_)->fp; \
+ _gdb_->gpr[12] = (_regs_)->ip; \
+ _gdb_->gpr[13] = (_regs_)->sp; \
+ _gdb_->gpr[14] = (_regs_)->lr; \
+ _gdb_->gpr[15] = (_regs_)->pc; \
+ _gdb_->ps = (_regs_)->cpsr; \
+ HAL_GET_GDB_COPROCESSOR_REGISTERS(_gdb_,_regs_); \
+ CYG_MACRO_END
+
+// Copy a set of registers from a GDB_Registers structure into a
+// HAL_SavedRegisters structure.
+#define HAL_SET_GDB_REGISTERS( _regs_ , _aregval_ ) \
+ CYG_MACRO_START \
+ GDB_Registers *_gdb_ = (GDB_Registers *)(_aregval_); \
+ int _i_; \
+ \
+ for( _i_ = 0; _i_ <= 10; _i_++ ) \
+ (_regs_)->d[_i_] = _gdb_->gpr[_i_]; \
+ \
+ (_regs_)->fp = _gdb_->gpr[11]; \
+ (_regs_)->ip = _gdb_->gpr[12]; \
+ (_regs_)->sp = _gdb_->gpr[13]; \
+ (_regs_)->lr = _gdb_->gpr[14]; \
+ (_regs_)->pc = _gdb_->gpr[15]; \
+ (_regs_)->cpsr = _gdb_->ps; \
+ HAL_SET_GDB_COPROCESSOR_REGISTERS(_regs_,_gdb_); \
+ CYG_MACRO_END
+
+#if defined(CYGDBG_HAL_DEBUG_GDB_CTRLC_SUPPORT) || defined(CYGDBG_HAL_DEBUG_GDB_BREAK_SUPPORT)
+#define HAL_GET_PROFILE_INFO( _thepc_, _thesp_ ) \
+ CYG_MACRO_START \
+ extern HAL_SavedRegisters *hal_saved_interrupt_state; \
+ if ( hal_saved_interrupt_state ) { \
+ (_thepc_) = (char *)(hal_saved_interrupt_state->pc); \
+ (_thesp_) = (char *)(hal_saved_interrupt_state->sp); \
+ } \
+ CYG_MACRO_END
+#endif
+
+//--------------------------------------------------------------------------
+// HAL setjmp
+
+#define CYGARC_JMP_BUF_SIZE 16 // Actually 11, but some room left over
+
+typedef cyg_uint32 hal_jmp_buf[CYGARC_JMP_BUF_SIZE];
+
+externC int hal_setjmp(hal_jmp_buf env);
+externC void hal_longjmp(hal_jmp_buf env, int val);
+
+
+//--------------------------------------------------------------------------
+// Idle thread code.
+// This macro is called in the idle thread loop, and gives the HAL the
+// chance to insert code. Typical idle thread behaviour might be to halt the
+// processor. Here we only supply a default fallback if the variant/platform
+// doesn't define anything.
+
+#ifndef HAL_IDLE_THREAD_ACTION
+#define HAL_IDLE_THREAD_ACTION(_count_) CYG_EMPTY_STATEMENT
+#endif
+
+//---------------------------------------------------------------------------
+
+// Minimal and sensible stack sizes: the intention is that applications
+// will use these to provide a stack size in the first instance prior to
+// proper analysis. Idle thread stack should be this big.
+
+// THESE ARE NOT INTENDED TO BE MICROMETRICALLY ACCURATE FIGURES.
+// THEY ARE HOWEVER ENOUGH TO START PROGRAMMING.
+// YOU MUST MAKE YOUR STACKS LARGER IF YOU HAVE LARGE "AUTO" VARIABLES!
+
+// This is not a config option because it should not be adjusted except
+// under "enough rope" sort of disclaimers.
+
+// A minimal, optimized stack frame, rounded up - no autos
+#define CYGNUM_HAL_STACK_FRAME_SIZE (4 * 20)
+
+// Stack needed for a context switch: this is implicit in the estimate for
+// interrupts so not explicitly used below:
+#define CYGNUM_HAL_STACK_CONTEXT_SIZE (4 * 20)
+
+// Interrupt + call to ISR, interrupt_end() and the DSR
+#define CYGNUM_HAL_STACK_INTERRUPT_SIZE \
+ ((4 * 20) + 2 * CYGNUM_HAL_STACK_FRAME_SIZE)
+
+// Space for the maximum number of nested interrupts, plus room to call functions
+#define CYGNUM_HAL_MAX_INTERRUPT_NESTING 4
+
+#define CYGNUM_HAL_STACK_SIZE_MINIMUM \
+ (CYGNUM_HAL_MAX_INTERRUPT_NESTING * CYGNUM_HAL_STACK_INTERRUPT_SIZE + \
+ 2 * CYGNUM_HAL_STACK_FRAME_SIZE)
+
+#define CYGNUM_HAL_STACK_SIZE_TYPICAL \
+ (CYGNUM_HAL_STACK_SIZE_MINIMUM + \
+ 16 * CYGNUM_HAL_STACK_FRAME_SIZE)
+
+//--------------------------------------------------------------------------
+// Macros for switching context between two eCos instances (jump from
+// code in ROM to code in RAM or vice versa).
+#define CYGARC_HAL_SAVE_GP()
+#define CYGARC_HAL_RESTORE_GP()
+
+#endif // CYGONCE_HAL_ARCH_H
+// End of hal_arch.h
diff --git a/ecos/packages/hal/arm/arch/current/include/hal_intr.h b/ecos/packages/hal/arm/arch/current/include/hal_intr.h
new file mode 100644
index 0000000..733e1e2
--- /dev/null
+++ b/ecos/packages/hal/arm/arch/current/include/hal_intr.h
@@ -0,0 +1,439 @@
+#ifndef CYGONCE_HAL_INTR_H
+#define CYGONCE_HAL_INTR_H
+
+//==========================================================================
+//
+// hal_intr.h
+//
+// HAL Interrupt and clock support
+//
+//==========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//==========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): nickg, gthomas
+// Contributors: nickg, gthomas,
+// jlarmour
+// Date: 1999-02-20
+// 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 <cyg/infra/cyg_type.h>
+
+#include <cyg/hal/hal_arch.h>
+
+// This is to allow a variant to decide that there is no platform-specific
+// interrupts file; and that in turn can be overridden by a platform that
+// refines the variant's ideas.
+#ifdef CYGBLD_HAL_PLF_INTS_H
+# include CYGBLD_HAL_PLF_INTS_H // should include variant data as required
+#else
+# ifdef CYGBLD_HAL_VAR_INTS_H
+# include CYGBLD_HAL_VAR_INTS_H
+# else
+# include <cyg/hal/hal_platform_ints.h> // default less-complex platforms
+# endif
+#endif
+
+// Spurious interrupt (no interrupt source could be found)
+#define CYGNUM_HAL_INTERRUPT_NONE -1
+
+//--------------------------------------------------------------------------
+// ARM exception vectors.
+
+// These vectors correspond to VSRs. These values are the ones to use for
+// HAL_VSR_GET/SET
+
+#define CYGNUM_HAL_VECTOR_RESET 0
+#define CYGNUM_HAL_VECTOR_UNDEF_INSTRUCTION 1
+#define CYGNUM_HAL_VECTOR_SOFTWARE_INTERRUPT 2
+#define CYGNUM_HAL_VECTOR_ABORT_PREFETCH 3
+#define CYGNUM_HAL_VECTOR_ABORT_DATA 4
+#define CYGNUM_HAL_VECTOR_reserved 5
+#define CYGNUM_HAL_VECTOR_IRQ 6
+#define CYGNUM_HAL_VECTOR_FIQ 7
+
+#define CYGNUM_HAL_VSR_MIN 0
+#define CYGNUM_HAL_VSR_MAX 7
+#define CYGNUM_HAL_VSR_COUNT 8
+
+// Exception vectors. These are the values used when passed out to an
+// external exception handler using cyg_hal_deliver_exception()
+
+#define CYGNUM_HAL_EXCEPTION_ILLEGAL_INSTRUCTION \
+ CYGNUM_HAL_VECTOR_UNDEF_INSTRUCTION
+#define CYGNUM_HAL_EXCEPTION_INTERRUPT \
+ CYGNUM_HAL_VECTOR_SOFTWARE_INTERRUPT
+#define CYGNUM_HAL_EXCEPTION_CODE_ACCESS CYGNUM_HAL_VECTOR_ABORT_PREFETCH
+#define CYGNUM_HAL_EXCEPTION_DATA_ACCESS CYGNUM_HAL_VECTOR_ABORT_DATA
+
+#define CYGNUM_HAL_EXCEPTION_MIN CYGNUM_HAL_EXCEPTION_ILLEGAL_INSTRUCTION
+#define CYGNUM_HAL_EXCEPTION_MAX CYGNUM_HAL_EXCEPTION_DATA_ACCESS
+#define CYGNUM_HAL_EXCEPTION_COUNT (CYGNUM_HAL_EXCEPTION_MAX - \
+ CYGNUM_HAL_EXCEPTION_MIN + 1)
+
+//--------------------------------------------------------------------------
+// Static data used by HAL
+
+// ISR tables
+externC CYG_ADDRESS hal_interrupt_handlers[CYGNUM_HAL_ISR_COUNT];
+externC CYG_ADDRWORD hal_interrupt_data[CYGNUM_HAL_ISR_COUNT];
+externC CYG_ADDRESS hal_interrupt_objects[CYGNUM_HAL_ISR_COUNT];
+
+// VSR table
+externC CYG_ADDRESS hal_vsr_table[CYGNUM_HAL_VSR_COUNT];
+
+// Platform setup memory size (0 if unknown by hardware)
+externC CYG_ADDRWORD hal_dram_size;
+// what, if anything, this means, is platform dependent:
+externC CYG_ADDRWORD hal_dram_type;
+
+#if CYGINT_HAL_ARM_MEM_REAL_REGION_TOP
+
+externC cyg_uint8 *hal_arm_mem_real_region_top( cyg_uint8 *_regionend_ );
+
+# define HAL_MEM_REAL_REGION_TOP( _regionend_ ) \
+ hal_arm_mem_real_region_top( _regionend_ )
+#endif
+
+//--------------------------------------------------------------------------
+// Default ISR
+// The #define is used to test whether this routine exists, and to allow
+// code outside the HAL to call it.
+
+externC cyg_uint32 hal_default_isr(CYG_ADDRWORD vector, CYG_ADDRWORD data);
+
+#define HAL_DEFAULT_ISR hal_default_isr
+
+//--------------------------------------------------------------------------
+// Interrupt state storage
+
+typedef cyg_uint32 CYG_INTERRUPT_STATE;
+
+//--------------------------------------------------------------------------
+// Interrupt disable mask
+//
+// This is used to control which of IRQ and FIQ is enabled/disabled by
+// the HAL interrupt control macros, and other places in the HAL.
+
+#ifdef CYGOPT_HAL_ARM_FIQ_DISABLE
+#define CPSR_INTR_MASK (CPSR_IRQ_DISABLE|CPSR_FIQ_DISABLE)
+#else
+#define CPSR_INTR_MASK (CPSR_IRQ_DISABLE)
+#endif
+
+//--------------------------------------------------------------------------
+// Interrupt control macros
+
+#ifndef __thumb__
+#define HAL_DISABLE_INTERRUPTS(_old_) \
+ asm volatile ( \
+ "mrs %0,cpsr;" \
+ "orr r4,%0,%1;" \
+ "msr cpsr,r4" \
+ : "=r"(_old_) \
+ : "i"(CPSR_INTR_MASK) \
+ : "r4" \
+ );
+
+#define HAL_ENABLE_INTERRUPTS() \
+ asm volatile ( \
+ "mrs r3,cpsr;" \
+ "bic r3,r3,%0;" \
+ "msr cpsr,r3" \
+ : \
+ : "i"(CPSR_INTR_MASK) \
+ : "r3" \
+ );
+
+#define HAL_RESTORE_INTERRUPTS(_old_) \
+ asm volatile ( \
+ "mrs r3,cpsr;" \
+ "and r4,%0,%1;" \
+ "bic r3,r3,%1;" \
+ "orr r3,r3,r4;" \
+ "msr cpsr,r3" \
+ : \
+ : "r"(_old_),"i"(CPSR_INTR_MASK) \
+ : "r3", "r4" \
+ );
+
+#define HAL_QUERY_INTERRUPTS(_old_) \
+ asm volatile ( \
+ "mrs %0,cpsr;" \
+ : "=r"(_old_) \
+ : "i"(CPSR_INTR_MASK) \
+ );
+#else // __thumb__
+
+// Thumb mode does not have access to the PSR registers;
+
+#if 0 // These don't seem to always work
+#define HAL_DISABLE_INTERRUPTS(_old_) \
+ asm volatile ( \
+ "ldr r4,=10f;" \
+ "bx r4;" \
+ ".code 32;" \
+ "10:;" \
+ "mrs %0,cpsr;" \
+ "mrs r4,cpsr;" \
+ "orr r4,r4,#0xC0;" \
+ "msr cpsr,r4;" \
+ "ldr r4,=10f+1;" \
+ "bx r4;" \
+ ".code 16;" \
+ "10:;" \
+ : "=r"(_old_) \
+ : \
+ : "r4" \
+ );
+
+#define HAL_ENABLE_INTERRUPTS() \
+ asm volatile ( \
+ "ldr r3,=10f;" \
+ "bx r3;" \
+ ".code 32;" \
+ "10:;" \
+ "mrs r3,cpsr;" \
+ "bic r3,r3,#0xC0;" \
+ "msr cpsr,r3;" \
+ "ldr r3,=10f+1;" \
+ "bx r3;" \
+ ".code 16;" \
+ "10:;" \
+ : \
+ : \
+ : "r3" \
+ );
+
+#define HAL_RESTORE_INTERRUPTS(_old_) \
+ asm volatile ( \
+ "ldr r3,=10f;" \
+ "bx r3;" \
+ ".code 32;" \
+ "10:;" \
+ "mrs r3,cpsr;" \
+ "and r4,%0,#0xC0;" \
+ "bic r3,r3,#0xC0;" \
+ "orr r3,r3,r4;" \
+ "msr cpsr,r3;" \
+ "ldr r3,=10f+1;" \
+ "bx r3;" \
+ ".code 16;" \
+ "10:;" \
+ : \
+ : "r"(_old_) \
+ : "r3", "r4" \
+ );
+
+#define HAL_QUERY_INTERRUPTS(_old_) \
+ asm volatile ( \
+ "ldr r4,=10f;" \
+ "bx r4;" \
+ ".code 32;" \
+ "10:;" \
+ "mrs r4,cpsr;" \
+ "and r4,r4,#0xC0;" \
+ "eor %0,r4,#0xC0;" \
+ "ldr r4,=10f+1;" \
+ "bx r4;" \
+ ".code 16;" \
+ "10:;" \
+ : "=r"(_old_) \
+ : \
+ : "r4" \
+ );
+#else
+
+externC cyg_uint32 hal_disable_interrupts(void);
+externC void hal_enable_interrupts(void);
+externC void hal_restore_interrupts(cyg_uint32);
+externC cyg_uint32 hal_query_interrupts(void);
+
+#define HAL_DISABLE_INTERRUPTS(_old_) \
+ _old_ = hal_disable_interrupts();
+
+#define HAL_ENABLE_INTERRUPTS() \
+ hal_enable_interrupts();
+
+#define HAL_RESTORE_INTERRUPTS(_old_) \
+ hal_restore_interrupts(_old_);
+
+#define HAL_QUERY_INTERRUPTS(_old_) \
+ _old_ = hal_query_interrupts();
+#endif
+
+#endif // __thumb__
+
+//--------------------------------------------------------------------------
+// FIQ interrupt control
+//
+// If eCos is not masking FIQs then the user can enable/disable them
+// independently.
+
+#ifndef CYGOPT_HAL_ARM_FIQ_DISABLE
+
+externC cyg_uint32 hal_disable_FIQ(void);
+externC void hal_enable_FIQ(void);
+externC void hal_restore_FIQ(cyg_uint32);
+externC cyg_uint32 hal_query_FIQ(void);
+
+#define HAL_DISABLE_FIQ(_old_) _old_ = hal_disable_FIQ()
+#define HAL_ENABLE_FIQ() hal_enable_FIQ()
+#define HAL_RESTORE_FIQ(_old_) hal_restore_FIQ(_old_)
+#define HAL_QUERY_FIQ(_old_) _old_ = hal_query_FIQ()
+
+#endif
+
+//--------------------------------------------------------------------------
+// Routine to execute DSRs using separate interrupt stack
+
+#ifdef CYGIMP_HAL_COMMON_INTERRUPTS_USE_INTERRUPT_STACK
+externC void hal_interrupt_stack_call_pending_DSRs(void);
+#define HAL_INTERRUPT_STACK_CALL_PENDING_DSRS() \
+ hal_interrupt_stack_call_pending_DSRs()
+
+// these are offered solely for stack usage testing
+// if they are not defined, then there is no interrupt stack.
+#define HAL_INTERRUPT_STACK_BASE cyg_interrupt_stack_base
+#define HAL_INTERRUPT_STACK_TOP cyg_interrupt_stack
+// use them to declare these extern however you want:
+// extern char HAL_INTERRUPT_STACK_BASE[];
+// extern char HAL_INTERRUPT_STACK_TOP[];
+// is recommended
+#endif
+
+//--------------------------------------------------------------------------
+// Vector translation.
+
+#ifndef HAL_TRANSLATE_VECTOR
+#define HAL_TRANSLATE_VECTOR(_vector_,_index_) \
+ (_index_) = (_vector_)
+#endif
+
+//--------------------------------------------------------------------------
+// Interrupt and VSR attachment macros
+
+#define HAL_INTERRUPT_IN_USE( _vector_, _state_) \
+ CYG_MACRO_START \
+ cyg_uint32 _index_; \
+ HAL_TRANSLATE_VECTOR ((_vector_), _index_); \
+ \
+ if( hal_interrupt_handlers[_index_] == (CYG_ADDRESS)hal_default_isr ) \
+ (_state_) = 0; \
+ else \
+ (_state_) = 1; \
+ CYG_MACRO_END
+
+#define HAL_INTERRUPT_ATTACH( _vector_, _isr_, _data_, _object_ ) \
+ CYG_MACRO_START \
+ if( hal_interrupt_handlers[_vector_] == (CYG_ADDRESS)hal_default_isr ) \
+ { \
+ hal_interrupt_handlers[_vector_] = (CYG_ADDRESS)_isr_; \
+ hal_interrupt_data[_vector_] = (CYG_ADDRWORD) _data_; \
+ hal_interrupt_objects[_vector_] = (CYG_ADDRESS)_object_; \
+ } \
+ CYG_MACRO_END
+
+#define HAL_INTERRUPT_DETACH( _vector_, _isr_ ) \
+ CYG_MACRO_START \
+ if( hal_interrupt_handlers[_vector_] == (CYG_ADDRESS)_isr_ ) \
+ { \
+ hal_interrupt_handlers[_vector_] = (CYG_ADDRESS)hal_default_isr; \
+ hal_interrupt_data[_vector_] = 0; \
+ hal_interrupt_objects[_vector_] = 0; \
+ } \
+ CYG_MACRO_END
+
+#define HAL_VSR_GET( _vector_, _pvsr_ ) \
+ *(CYG_ADDRESS *)(_pvsr_) = hal_vsr_table[_vector_];
+
+
+#define HAL_VSR_SET( _vector_, _vsr_, _poldvsr_ ) \
+ CYG_MACRO_START \
+ if( _poldvsr_ != NULL ) \
+ *(CYG_ADDRESS *)_poldvsr_ = hal_vsr_table[_vector_]; \
+ hal_vsr_table[_vector_] = (CYG_ADDRESS)_vsr_; \
+ CYG_MACRO_END
+
+//--------------------------------------------------------------------------
+// Interrupt controller access
+
+externC void hal_interrupt_mask(int);
+externC void hal_interrupt_unmask(int);
+externC void hal_interrupt_acknowledge(int);
+externC void hal_interrupt_configure(int, int, int);
+externC void hal_interrupt_set_level(int, int);
+
+#define HAL_INTERRUPT_MASK( _vector_ ) \
+ hal_interrupt_mask( _vector_ )
+#define HAL_INTERRUPT_UNMASK( _vector_ ) \
+ hal_interrupt_unmask( _vector_ )
+#define HAL_INTERRUPT_ACKNOWLEDGE( _vector_ ) \
+ hal_interrupt_acknowledge( _vector_ )
+#define HAL_INTERRUPT_CONFIGURE( _vector_, _level_, _up_ ) \
+ hal_interrupt_configure( _vector_, _level_, _up_ )
+#define HAL_INTERRUPT_SET_LEVEL( _vector_, _level_ ) \
+ hal_interrupt_set_level( _vector_, _level_ )
+
+//--------------------------------------------------------------------------
+// Clock control
+
+externC void hal_clock_initialize(cyg_uint32);
+externC void hal_clock_read(cyg_uint32 *);
+externC void hal_clock_reset(cyg_uint32, cyg_uint32);
+
+#define HAL_CLOCK_INITIALIZE( _period_ ) hal_clock_initialize( _period_ )
+#define HAL_CLOCK_RESET( _vec_, _period_ ) hal_clock_reset( _vec_, _period_ )
+#define HAL_CLOCK_READ( _pvalue_ ) hal_clock_read( _pvalue_ )
+#ifdef CYGVAR_KERNEL_COUNTERS_CLOCK_LATENCY
+# ifndef HAL_CLOCK_LATENCY
+# define HAL_CLOCK_LATENCY( _pvalue_ ) HAL_CLOCK_READ( (cyg_uint32 *)_pvalue_ )
+# endif
+#endif
+
+//--------------------------------------------------------------------------
+#endif // ifndef CYGONCE_HAL_INTR_H
+// End of hal_intr.h
diff --git a/ecos/packages/hal/arm/arch/current/include/hal_io.h b/ecos/packages/hal/arm/arch/current/include/hal_io.h
new file mode 100644
index 0000000..fc69cf8
--- /dev/null
+++ b/ecos/packages/hal/arm/arch/current/include/hal_io.h
@@ -0,0 +1,304 @@
+#ifndef CYGONCE_HAL_IO_H
+#define CYGONCE_HAL_IO_H
+
+//=============================================================================
+//
+// hal_io.h
+//
+// HAL device IO register support.
+//
+//=============================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): nickg, gthomas
+// Contributors: Fabrice Gautier
+// Date: 1998-09-11
+// Purpose: Define IO register support
+// Description: The macros defined here provide the HAL APIs for handling
+// device IO control registers.
+//
+// Usage:
+// #include <cyg/hal/hal_io.h>
+// ...
+//
+//
+//####DESCRIPTIONEND####
+//
+//=============================================================================
+
+#include <pkgconf/system.h>
+#include <cyg/infra/cyg_type.h>
+
+#include <cyg/hal/basetype.h>
+
+//-----------------------------------------------------------------------------
+// Include plf_io.h for platforms. Either via var_io.h or directly.
+#ifdef CYGBLD_HAL_ARM_VAR_IO_H
+#include <cyg/hal/var_io.h>
+#else
+#include <cyg/hal/plf_io.h>
+#endif
+
+
+//-----------------------------------------------------------------------------
+// IO Register address.
+// This type is for recording the address of an IO register.
+
+typedef volatile CYG_ADDRWORD HAL_IO_REGISTER;
+
+//-----------------------------------------------------------------------------
+// HAL IO macros.
+#ifndef HAL_IO_MACROS_DEFINED
+
+//-----------------------------------------------------------------------------
+// BYTE Register access.
+// Individual and vectorized access to 8 bit registers.
+
+// Little-endian version or big-endian version that doesn't need address munging
+#if (CYG_BYTEORDER == CYG_LSBFIRST) || defined(HAL_IO_MACROS_NO_ADDRESS_MUNGING)
+
+#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
+
+#define HAL_READ_UINT8_STRING( _register_, _buf_, _count_ ) \
+ CYG_MACRO_START \
+ cyg_count32 _i_; \
+ for( _i_ = 0; _i_ < (_count_); _i_++) \
+ (_buf_)[_i_] = ((volatile CYG_BYTE *)(_register_))[_i_]; \
+ CYG_MACRO_END
+
+#define HAL_WRITE_UINT8_STRING( _register_, _buf_, _count_ ) \
+ CYG_MACRO_START \
+ cyg_count32 _i_; \
+ for( _i_ = 0; _i_ < (_count_); _i_++) \
+ ((volatile CYG_BYTE *)(_register_)) = (_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
+
+#define HAL_READ_UINT8_STRING( _register_, _buf_, _count_ ) \
+ CYG_MACRO_START \
+ cyg_count32 _i_; \
+ volatile CYG_BYTE* _r_ = ((CYG_ADDRWORD)(_register_)^3); \
+ for( _i_ = 0; _i_ < (_count_); _i_++; \
+ (_buf_)[_i_] = _r_[_i_]; \
+ CYG_MACRO_END
+
+#define HAL_WRITE_UINT8_STRING( _register_, _buf_, _count_ ) \
+ CYG_MACRO_START \
+ cyg_count32 _i_; \
+ volatile CYG_BYTE* _r_ = ((CYG_ADDRWORD)(_register_)^3); \
+ for( _i_ = 0; _i_ < (_count_); _i_++) \
+ _r_[_i_] = (_buf_)[_i_]; \
+ CYG_MACRO_END
+
+#endif // Big-endian
+
+//-----------------------------------------------------------------------------
+// 16 bit access.
+// Individual and vectorized access to 16 bit registers.
+
+// Little-endian version or big-endian version that doesn't need address munging
+#if (CYG_BYTEORDER == CYG_LSBFIRST) || defined(HAL_IO_MACROS_NO_ADDRESS_MUNGING)
+
+#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
+
+#define HAL_READ_UINT16_STRING( _register_, _buf_, _count_) \
+ CYG_MACRO_START \
+ cyg_count32 _i_; \
+ for( _i_ = 0; _i_ < (_count_); _i_++) \
+ (_buf_)[_i_] = ((volatile CYG_WORD16 *)(_register_))[_i_]; \
+ CYG_MACRO_END
+
+#define HAL_WRITE_UINT16_STRING( _register_, _buf_, _count_) \
+ CYG_MACRO_START \
+ cyg_count32 _i_; \
+ for( _i_ = 0; _i_ < (_count_); _i_++) \
+ ((volatile CYG_WORD16 *)(_register_))[_i_] = (_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
+
+#define HAL_READ_UINT16_STRING( _register_, _buf_, _count_) \
+ CYG_MACRO_START \
+ cyg_count32 _i_; \
+ volatile CYG_WORD16* _r_ = ((CYG_ADDRWORD)(_register_)^3); \
+ for( _i_ = 0 = 0; _i_ < (_count_); _i_++) \
+ (_buf_)[_i_] = _r_[_i_]; \
+ CYG_MACRO_END
+
+#define HAL_WRITE_UINT16_STRING( _register_, _buf_, _count_) \
+ CYG_MACRO_START \
+ cyg_count32 _i_; \
+ volatile CYG_WORD16* _r_ = ((CYG_ADDRWORD)(_register_)^3); \
+ for( _i_ = 0 = 0; _i_ < (_count_); _i_++) \
+ _r_[_i_] = (_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_MACRO_START \
+ cyg_count32 _i_,_j_; \
+ for( _i_ = 0, _j_ = 0; _i_ < (_count_); _i_++, _j_ += (_step_)) \
+ (_buf_)[_i_] = ((volatile CYG_WORD32 *)(_register_))[_j_]; \
+ CYG_MACRO_END
+
+#define HAL_WRITE_UINT32_VECTOR( _register_, _buf_, _count_, _step_ ) \
+ CYG_MACRO_START \
+ cyg_count32 _i_,_j_; \
+ for( _i_ = 0, _j_ = 0; _i_ < (_count_); _i_++, _j_ += (_step_)) \
+ ((volatile CYG_WORD32 *)(_register_))[_j_] = (_buf_)[_i_]; \
+ CYG_MACRO_END
+
+#define HAL_READ_UINT32_STRING( _register_, _buf_, _count_) \
+ CYG_MACRO_START \
+ cyg_count32 _i_; \
+ for( _i_ = 0; _i_ < (_count_); _i_++) \
+ (_buf_)[_i_] = ((volatile CYG_WORD32 *)(_register_))[_i_]; \
+ CYG_MACRO_END
+
+#define HAL_WRITE_UINT32_STRING( _register_, _buf_, _count_) \
+ CYG_MACRO_START \
+ cyg_count32 _i_; \
+ for( _i_ = 0; _i_ < (_count_); _i_++) \
+ ((volatile CYG_WORD32 *)(_register_))[_i_] = (_buf_)[_i_]; \
+ CYG_MACRO_END
+
+
+#define HAL_IO_MACROS_DEFINED
+
+#endif // !HAL_IO_MACROS_DEFINED
+
+// Enforce a flow "barrier" to prevent optimizing compiler from reordering
+// operations.
+#define HAL_IO_BARRIER()
+
+//-----------------------------------------------------------------------------
+#endif // ifndef CYGONCE_HAL_IO_H
+// End of hal_io.h
diff --git a/ecos/packages/hal/arm/arch/current/include/hal_mmu.h b/ecos/packages/hal/arm/arch/current/include/hal_mmu.h
new file mode 100644
index 0000000..f4f9d07
--- /dev/null
+++ b/ecos/packages/hal/arm/arch/current/include/hal_mmu.h
@@ -0,0 +1,120 @@
+#ifndef CYGONCE_HAL_MMU_H
+#define CYGONCE_HAL_MMU_H
+
+//==========================================================================
+//
+// hal_mmu.h
+//
+// MMU definitions
+//
+//==========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//==========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): gthomas
+// Contributors: gthomas
+// Date: 1999-05-10
+// Purpose: Define MMU for ARM
+// Usage: #include <cyg/hal/hal_mmu.h>
+
+//
+//####DESCRIPTIONEND####
+//
+//==========================================================================
+
+#define MMU_L1_TYPE 0x03 // Descriptor type
+#define MMU_L1_TYPE_Fault 0x00 // Invalid
+#define MMU_L1_TYPE_Page 0x11 // Individual page mapping
+#define MMU_L1_TYPE_Section 0x12 // Mapping for 1M segment
+
+#define MMU_L2_TYPE 0x03 // Descriptor type
+#define MMU_L2_TYPE_Fault 0x00 // Invalid data
+#define MMU_L2_TYPE_Large 0x01 // Large page (64K)
+#define MMU_L2_TYPE_Small 0x02 // Small page (4K)
+
+#define MMU_Bufferable 0x04 // Data can use write-buffer
+#define MMU_Cacheable 0x08 // Data can use cache
+
+#define MMU_AP_Limited 0x000 // Limited access
+#define MMU_AP_Supervisor 0x400 // Supervisor RW, User none
+#define MMU_AP_UserRead 0x800 // Supervisor RW, User read only
+#define MMU_AP_Any 0xC00 // Supervisor RW, User RW
+
+#define MMU_AP_ap0_Any 0x030
+#define MMU_AP_ap1_Any 0x0C0
+#define MMU_AP_ap2_Any 0x300
+#define MMU_AP_ap3_Any 0xC00
+#define MMU_AP_All (MMU_AP_ap0_Any|MMU_AP_ap1_Any|MMU_AP_ap2_Any|MMU_AP_ap3_Any)
+
+#define MMU_DOMAIN(x) ((x)<<5)
+
+#define MMU_PAGE_SIZE 0x1000
+#define MMU_SECTION_SIZE 0x100000
+
+#define MMU_CP p15 // Co-processor ID
+#define MMU_Control c1 // Control register
+#define MMU_Base c2 // Page tables base
+#define MMU_DomainAccess c3 // Domain access control
+#define MMU_FaultStatus c5 // Fault status register
+#define MMU_FaultAddress c6 // Fault Address
+#define MMU_InvalidateCache c7 // Invalidate cache data
+#define MMU_TLB c8 // Translation Lookaside Buffer
+
+// These seem to be 710 specific
+#define MMU_FlushTLB c5
+#define MMU_FlushIDC c7
+
+#define MMU_Control_M 0x001 // Enable MMU
+#define MMU_Control_A 0x002 // Enable address alignment faults
+#define MMU_Control_C 0x004 // Enable cache
+#define MMU_Control_W 0x008 // Enable write-buffer
+#define MMU_Control_P 0x010 // Compatability: 32 bit code
+#define MMU_Control_D 0x020 // Compatability: 32 bit data
+#define MMU_Control_L 0x040 // Compatability:
+#define MMU_Control_B 0x080 // Enable Big-Endian
+#define MMU_Control_S 0x100 // Enable system protection
+#define MMU_Control_R 0x200 // Enable ROM protection
+#define MMU_Control_I 0x1000 // Enable Instruction cache
+#define MMU_Control_X 0x2000 // Set interrupt vectors at 0xFFFF0000
+#define MMU_Control_Init (MMU_Control_P|MMU_Control_D|MMU_Control_L)
+
+// Extras for some newer versions eg. ARM920 with architecture version 4.
+#define MMU_Control_F 0x400 // IMPLEMENTATION DEFINED
+#define MMU_Control_Z 0x800 // Enable branch predicion
+#define MMU_Control_RR 0x4000 // Select non-random cache replacement
+
+//-----------------------------------------------------------------------------
+
+#endif // CYGONCE_HAL_MMU_H
+// End of hal_mmu.h
diff --git a/ecos/packages/hal/arm/arch/current/src/arm.ld b/ecos/packages/hal/arm/arch/current/src/arm.ld
new file mode 100644
index 0000000..73f0c22
--- /dev/null
+++ b/ecos/packages/hal/arm/arch/current/src/arm.ld
@@ -0,0 +1,356 @@
+//=============================================================================
+//
+// MLT linker script for ARM
+//
+//=============================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002, 2005, 2008 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=============================================================================
+
+#include <pkgconf/system.h>
+#include <pkgconf/hal.h>
+
+STARTUP(vectors.o)
+ENTRY(reset_vector)
+INPUT(extras.o)
+GROUP( CYGBLD_HAL_LINKER_GROUPED_LIBS )
+
+#if defined(__ARMEB__)
+OUTPUT_FORMAT(elf32-bigarm)
+#endif
+
+#if defined(CYG_HAL_STARTUP_ROM) \
+ && defined(CYGPKG_HAL_ARM_PID) \
+ && defined(__ARMEB__)
+// Note: This is only needed when the PID board is used in BE mode without
+// the proper ROM controller part.
+//
+// In big-endian mode, merge .RODATA sections into the .DATA section. This
+// causes the data in these sections to be copied to RAM. When the CPU
+// makes byte or halfword access to RAM, A0/A1 are modified correctly.
+// This does not happen on ROM access (unless the proper ROM controller
+// is used).
+//
+#define MERGE_IN_RODATA *(.rodata*)
+#define CYGPRI_PID_BE_WORKAROUND
+#else
+// Keep RODATA in separate sections.
+#define MERGE_IN_RODATA
+#undef CYGPRI_PID_BE_WORKAROUND
+#endif
+
+// ALIGN_LMA is 4, but the AAPCS now requires that double word types
+// be aligned to 8, which means some input sections can be marked as needing
+// 8-byte alignment, even text ones (consider literal data).
+// This is quite a big backward-compatibility problem for us as a zillion
+// platform mlt files for ARM assume that 4-byte alignment is adequate. Really
+// this is a bigger problem for the VMA but of course the LMA and VMA have to
+// move in sync, since things like .data are just copied as a block. Still,
+// ALIGN_LMA as 4 is probably best, but there can be problems with this.
+
+#define ALIGN_LMA 4
+#define AAPCS_ALIGN 8
+#define FOLLOWING_ALIGNED(_section_, _align_) AT ((LOADADDR (_section_) + SIZEOF (_section_) + (_align_) - 1) & ~ ((_align_) - 1))
+#define FOLLOWING(_section_) FOLLOWING_ALIGNED(_section_, ALIGN_LMA)
+
+
+#define LMA_EQ_VMA
+#define FORCE_OUTPUT . = .
+
+// Some versions of gcc define "arm" which causes problems with .note.arm.ident
+#undef arm
+#define SECTIONS_BEGIN \
+ /* Debug information */ \
+ .debug_aranges 0 : { *(.debug_aranges) } \
+ .debug_pubnames 0 : { *(.debug_pubnames) } \
+ .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) } \
+ .note.arm.ident 0 : { KEEP (*(.note.arm.ident)) } \
+ /DISCARD/ 0 : { *(.fini_array*) }
+
+
+// Following not used unless CYGHWR_HAL_ARM_SEPARATE_VSR_TABLE
+// defined in hal_platform_setup.h. Otherwise vsr table
+// goes in .fixed_vectors.
+#define SECTION_hal_vsr_table(_region_, _vma_, _lma_) \
+ .hal_vsr_table _vma_ : _lma_ \
+ { FORCE_OUTPUT; KEEP (*(.hal_vsr_table)) } \
+ > _region_
+
+#define SECTION_fixed_vectors(_region_, _vma_, _lma_) \
+ .fixed_vectors _vma_ : _lma_ \
+ { FORCE_OUTPUT; KEEP (*(.fixed_vectors)) } \
+ > _region_
+
+#define SECTION_rom_vectors(_region_, _vma_, _lma_) \
+ .rom_vectors _vma_ : _lma_ \
+ { __rom_vectors_vma = ABSOLUTE(.); \
+ FORCE_OUTPUT; KEEP (*(.vectors)) } \
+ > _region_ \
+ __rom_vectors_lma = LOADADDR(.rom_vectors);
+
+/* The following two sections are used for C++ exception handling
+ * only and so can be discarded if not used for that.
+ * These are both included directly from the SECTION_text
+ * definition and so, for now, are not expected to be listed
+ * separately in mlt files.
+ */
+#ifdef CYGPKG_LIBSTDCXX
+#define SECTION_ARM_extab(_region_, _vma_, _lma_) \
+ .ARM.extab _vma_ : _lma_ \
+ { PROVIDE (__stext = ABSOLUTE(.)); _stext = ABSOLUTE(.) ; \
+ FORCE_OUTPUT; \
+ *(.ARM.extab* .gnu.linkonce.armextab.*) } > _region_
+
+#define SECTION_ARM_exidx(_region_, _vma_, _lma_) \
+ . = _vma_; \
+ . = ALIGN(AAPCS_ALIGN); \
+ __exidx_start = ABSOLUTE(.); \
+ .ARM.exidx ALIGN(AAPCS_ALIGN) : _lma_ { \
+ *(.ARM.exidx* .gnu.linkonce.armexidx.*) \
+ FORCE_OUTPUT; \
+ } > _region_ \
+ __exidx_end = ABSOLUTE(.);
+
+#else
+#define SECTION_ARM_extab(_region_, _vma_, _lma_) \
+ .ARM.extab _vma_ : _lma_ \
+ { PROVIDE (__stext = ABSOLUTE(.)); _stext = ABSOLUTE(.) ; \
+ FORCE_OUTPUT; \
+ } > _region_ \
+ /DISCARD/ 0 : { *(.ARM.extab* .gnu.linkonce.armextab.*) }
+
+#define SECTION_ARM_exidx(_region_, _vma_, _lma_) \
+ . = _vma_; \
+ . = ALIGN(AAPCS_ALIGN); \
+ __exidx_start = ABSOLUTE(.); \
+ .ARM.exidx ALIGN(AAPCS_ALIGN) : _lma_ { \
+ FORCE_OUTPUT; \
+ } > _region_ \
+ __exidx_end = ABSOLUTE(.); \
+ /DISCARD/ 0 : { *(.ARM.exidx* .gnu.linkonce.armexidx.*) }
+#endif
+
+
+
+// We slot in the .ARM.extab and .ARM.exidx sections first. They
+// need to be close to .text due to their relocations which may
+// want small offsets - .rodata may be somewhere very different.
+// This approach also allows forward compatibility with targets
+// which haven't used the EABI before (no new SECTION_xxx definition
+// to use).
+// One glitch is that the AAPCS can require up to 8-byte alignment
+// for double word types. For sections after the first (for which we
+// "trust" the MLT files (probably a mistake)), we need to
+// ensure the subsequent sections' VMA and LMA move in sync, which
+// means keeping the same alignment, and thus since for example literal
+// data in .text can require up to 8 byte alignment, the LMA must also
+// be 8 byte aligned.
+
+#define SECTION_text(_region_, _vma_, _lma_) \
+ SECTION_ARM_extab(_region_, _vma_, _lma_) \
+ SECTION_ARM_exidx(_region_, ALIGN(AAPCS_ALIGN), FOLLOWING_ALIGNED(.ARM.extab, AAPCS_ALIGN)) \
+ .text ALIGN(AAPCS_ALIGN) : FOLLOWING_ALIGNED(.ARM.exidx, AAPCS_ALIGN) \
+ { \
+ *(.text*) *(.gnu.warning) *(.gnu.linkonce.t.*) *(.init) \
+ *(.glue_7) *(.glue_7t) \
+ __CTOR_LIST__ = ABSOLUTE (.); KEEP (*(SORT (.ctors*))) __CTOR_END__ = ABSOLUTE (.); \
+ __DTOR_LIST__ = ABSOLUTE (.); KEEP (*(SORT (.dtors*))) __DTOR_END__ = ABSOLUTE (.); \
+ } > _region_ \
+ _etext = .; PROVIDE (__etext = .);
+
+#define SECTION_fini(_region_, _vma_, _lma_) \
+ .fini _vma_ : _lma_ \
+ { FORCE_OUTPUT; *(.fini) } \
+ > _region_
+
+#if defined(CYGPRI_PID_BE_WORKAROUND)
+#define SECTION_rodata(_region_, _vma_, _lma_)
+#define SECTION_rodata1(_region_, _vma_, _lma_)
+#else
+#define SECTION_rodata(_region_, _vma_, _lma_) \
+ .rodata _vma_ : _lma_ \
+ { FORCE_OUTPUT; *(.rodata*) *(.gnu.linkonce.r.*) } \
+ > _region_
+
+#define SECTION_rodata1(_region_, _vma_, _lma_) \
+ .rodata1 _vma_ : _lma_ \
+ { FORCE_OUTPUT; *(.rodata1) } \
+ > _region_
+#endif // CYGPRI_PID_BE_WORKAROUND
+
+#define SECTION_fixup(_region_, _vma_, _lma_) \
+ .fixup _vma_ : _lma_ \
+ { FORCE_OUTPUT; *(.fixup) } \
+ > _region_
+
+#ifdef CYGPKG_LIBSTDCXX
+/* We want to discard C++ exception frame data if we don't have the
+ * C++ support to use it. So there are two versions of the section
+ * definitions for .gcc_except_table and .eh_frame, one which keeps
+ * them, the other discards.
+ */
+#define SECTION_gcc_except_table(_region_, _vma_, _lma_) \
+ .gcc_except_table _vma_ : _lma_ \
+ { FORCE_OUTPUT; \
+ KEEP(*(.gcc_except_table)) \
+ *(.gcc_except_table.*) \
+ } > _region_
+
+#define SECTION_eh_frame(_region_, _vma_, _lma_) \
+ .eh_frame _vma_ : _lma_ \
+ { \
+ FORCE_OUTPUT; __EH_FRAME_BEGIN__ = .; \
+ KEEP(*(.eh_frame)) \
+ __FRAME_END__ = .; \
+ . = . + 8; \
+ } > _region_ = 0
+#else
+#define SECTION_gcc_except_table(_region_, _vma_, _lma_) \
+ .gcc_except_table _vma_ : _lma_ \
+ { FORCE_OUTPUT; \
+ } > _region_ \
+ /DISCARD/ 0 : { *(.gcc_except_table*) }
+
+#define SECTION_eh_frame(_region_, _vma_, _lma_) \
+ .eh_frame _vma_ : _lma_ \
+ { \
+ FORCE_OUTPUT; __EH_FRAME_BEGIN__ = .; \
+ __FRAME_END__ = .; \
+ } > _region_ \
+ /DISCARD/ 0 : { *(.eh_frame) }
+#endif
+
+#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_got(_region_, _vma_, _lma_) \
+ .got _vma_ : _lma_ \
+ { \
+ FORCE_OUTPUT; *(.got.plt) *(.got) \
+ _GOT1_START_ = ABSOLUTE (.); *(.got1) _GOT1_END_ = ABSOLUTE (.); \
+ _GOT2_START_ = ABSOLUTE (.); *(.got2) _GOT2_END_ = ABSOLUTE (.); \
+ } > _region_
+
+#define SECTION_mmu_tables(_region_, _vma_, _lma_) \
+ .mmu_tables _vma_ : _lma_ \
+ { FORCE_OUTPUT; *(.mmu_tables) } \
+ > _region_
+
+#define SECTION_sram(_region_, _vma_, _lma_) \
+ .sram _vma_ : _lma_ \
+ { FORCE_OUTPUT; *(.sram*) } \
+ > _region_
+
+#define SECTION_data(_region_, _vma_, _lma_) \
+ .data _vma_ : _lma_ \
+ { __ram_data_start = ABSOLUTE (.); \
+ *(.data*) *(.data1) *(.gnu.linkonce.d.*) MERGE_IN_RODATA \
+ . = ALIGN (4); \
+ KEEP(*( SORT (.ecos.table.*))) ; \
+ . = ALIGN (4); \
+ __init_array_start__ = ABSOLUTE (.); KEEP (*(SORT (.init_array.*))) \
+ KEEP (*(SORT (.init_array))) __init_array_end__ = ABSOLUTE (.); \
+ *(.dynamic) *(.sdata*) *(.gnu.linkonce.s.*) \
+ . = ALIGN (4); *(.2ram.*) } \
+ > _region_ \
+ __rom_data_start = LOADADDR (.data); \
+ __ram_data_end = .; PROVIDE (__ram_data_end = .); _edata = .; PROVIDE (edata = .); \
+ PROVIDE (__rom_data_end = LOADADDR (.data) + SIZEOF(.data));
+
+#define SECTION_bss(_region_, _vma_, _lma_) \
+ .bss _vma_ : _lma_ \
+ { __bss_start = ABSOLUTE (.); \
+ *(.scommon) *(.dynsbss) *(.sbss*) *(.gnu.linkonce.sb.*) \
+ *(.dynbss) *(.bss*) *(.gnu.linkonce.b.*) *(COMMON) \
+ __bss_end = ABSOLUTE (.); } \
+ > _region_
+
+#define SECTIONS_END . = ALIGN(4); _end = .; PROVIDE (end = .);
+
+#include <pkgconf/hal_arm.h>
+#include CYGHWR_MEMORY_LAYOUT_LDI
diff --git a/ecos/packages/hal/arm/arch/current/src/arm_stub.c b/ecos/packages/hal/arm/arch/current/src/arm_stub.c
new file mode 100644
index 0000000..eed6d7d
--- /dev/null
+++ b/ecos/packages/hal/arm/arch/current/src/arm_stub.c
@@ -0,0 +1,914 @@
+//========================================================================
+//
+// arm_stub.c
+//
+// Helper functions for stub, generic to all ARM processors
+//
+//========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): Red Hat, gthomas
+// Contributors: Red Hat, gthomas, jskov
+// Date: 1998-11-26
+// Purpose:
+// Description: Helper functions for stub, generic to all ARM processors
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//========================================================================
+
+#include <stddef.h>
+#include <string.h>
+
+#include <pkgconf/hal.h>
+
+#ifdef CYGPKG_REDBOOT
+#include <pkgconf/redboot.h>
+#endif
+
+#ifdef CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS
+
+#ifdef CYGPKG_HAL_ARM_SIM
+#error "GDB Stub support not implemented for ARM SIM"
+#endif
+
+#include <cyg/hal/hal_stub.h>
+#include <cyg/hal/hal_arch.h>
+#include <cyg/hal/hal_intr.h>
+
+#ifndef FALSE
+#define FALSE 0
+#define TRUE 1
+#endif
+
+// Use bit 0 as a thumb-mode flag for next address to be executed.
+// Alternative would be to keep track of it using a C variable, but
+// since bit 0 is used by the BX instruction, we might as well do the
+// same thing and thus avoid checking two different flags.
+#define IS_THUMB_ADDR(addr) ((addr) & 1)
+#define MAKE_THUMB_ADDR(addr) ((addr) | 1)
+#define UNMAKE_THUMB_ADDR(addr) ((addr) & ~1)
+
+#ifdef CYGDBG_HAL_DEBUG_GDB_THREAD_SUPPORT
+#include <cyg/hal/dbg-threads-api.h> // dbg_currthread_id
+#endif
+
+#if defined(CYGNUM_HAL_BREAKPOINT_LIST_SIZE) && (CYGNUM_HAL_BREAKPOINT_LIST_SIZE > 0)
+cyg_uint32 __arm_breakinst = HAL_BREAKINST_ARM;
+cyg_uint16 __thumb_breakinst = HAL_BREAKINST_THUMB;
+#endif
+
+/* Given a trap value TRAP, return the corresponding signal. */
+
+int __computeSignal (unsigned int trap_number)
+{
+ // Check to see if we stopped because of a hw watchpoint/breakpoint.
+#ifdef HAL_STUB_IS_STOPPED_BY_HARDWARE
+ {
+ void *daddr;
+ if (HAL_STUB_IS_STOPPED_BY_HARDWARE(daddr))
+ return SIGTRAP;
+ }
+#endif
+ // should also catch CYGNUM_HAL_VECTOR_UNDEF_INSTRUCTION here but we
+ // can't tell the different between a real one and a breakpoint :-(
+ switch (trap_number) {
+ case CYGNUM_HAL_VECTOR_ABORT_PREFETCH: // Fall through
+ case CYGNUM_HAL_VECTOR_ABORT_DATA: // Fall through
+ case CYGNUM_HAL_VECTOR_reserved:
+ return SIGBUS;
+ case CYGNUM_HAL_VECTOR_IRQ:
+ case CYGNUM_HAL_VECTOR_FIQ:
+ return SIGINT;
+ default:
+ return SIGTRAP;
+ }
+}
+
+
+/* Return the trap number corresponding to the last-taken trap. */
+int __get_trap_number (void)
+{
+ // The vector is not not part of the GDB register set so get it
+ // directly from the save context.
+ return _hal_registers->vector;
+}
+
+
+#if defined(CYGSEM_REDBOOT_BSP_SYSCALLS)
+int __is_bsp_syscall(void)
+{
+ unsigned long pc = get_register(PC);
+ unsigned long cpsr = get_register(PS); // condition codes
+
+ if (_hal_registers->vector == CYGNUM_HAL_EXCEPTION_INTERRUPT) {
+ if (cpsr & CPSR_THUMB_ENABLE)
+ return *(unsigned short *)pc == 0xdf18;
+ else
+ return *(unsigned *)pc == 0xef180001;
+ }
+ return 0;
+}
+#endif
+
+/* Set the currently-saved pc register value to PC. */
+
+void set_pc (target_register_t pc)
+{
+ put_register (PC, pc);
+}
+
+// Calculate byte offset a given register from start of register save area.
+static int
+reg_offset(regnames_t reg)
+{
+ int base_offset;
+
+ if (reg < F0)
+ return reg * 4;
+
+ base_offset = 16 * 4;
+
+ if (reg < FPS)
+ return base_offset + ((reg - F0) * 12);
+
+ base_offset += (8 * 12);
+
+ if (reg <= PS)
+ return base_offset + ((reg - FPS) * 4);
+
+ return -1; // Should never happen!
+}
+
+
+// Return the currently-saved value corresponding to register REG of
+// the exception context.
+target_register_t
+get_register (regnames_t reg)
+{
+ target_register_t val;
+ int offset = reg_offset(reg);
+
+ if (REGSIZE(reg) > sizeof(target_register_t) || offset == -1)
+ return -1;
+
+ val = _registers[offset/sizeof(target_register_t)];
+
+ return val;
+}
+
+// Store VALUE in the register corresponding to WHICH in the exception
+// context.
+void
+put_register (regnames_t which, target_register_t value)
+{
+ int offset = reg_offset(which);
+
+ if (REGSIZE(which) > sizeof(target_register_t) || offset == -1)
+ return;
+
+ _registers[offset/sizeof(target_register_t)] = value;
+}
+
+// Write the contents of register WHICH into VALUE as raw bytes. This
+// is only used for registers larger than sizeof(target_register_t).
+// Return non-zero if it is a valid register.
+int
+get_register_as_bytes (regnames_t which, char *value)
+{
+ int offset = reg_offset(which);
+
+ if (offset != -1) {
+ memcpy (value, (char *)_registers + offset, REGSIZE(which));
+ return 1;
+ }
+ return 0;
+}
+
+// Alter the contents of saved register WHICH to contain VALUE. This
+// is only used for registers larger than sizeof(target_register_t).
+// Return non-zero if it is a valid register.
+int
+put_register_as_bytes (regnames_t which, char *value)
+{
+ int offset = reg_offset(which);
+
+ if (offset != -1) {
+ memcpy ((char *)_registers + offset, value, REGSIZE(which));
+ return 1;
+ }
+ return 0;
+}
+
+/*----------------------------------------------------------------------
+ * Single-step support
+ */
+
+/* Set things up so that the next user resume will execute one instruction.
+ This may be done by setting breakpoints or setting a single step flag
+ in the saved user registers, for example. */
+
+static unsigned long ss_saved_pc = 0;
+static unsigned long ss_saved_instr;
+static unsigned short ss_saved_thumb_instr;
+
+#define FIXME() {diag_printf("FIXME - %s\n", __FUNCTION__); }
+
+// return non-zero for v5 and later
+static int
+v5T_semantics(void)
+{
+ unsigned id;
+
+ asm volatile ("mrc p15,0,%0,c0,c0,0\n"
+ : "=r" (id) : /* no inputs */);
+
+ return ((id >> 16) & 0xff) >= 5;
+}
+
+static int
+ins_will_execute(unsigned long ins)
+{
+ unsigned long psr = get_register(PS); // condition codes
+ int res = 0;
+ switch ((ins & 0xF0000000) >> 28) {
+ case 0x0: // EQ
+ res = (psr & PS_Z) != 0;
+ break;
+ case 0x1: // NE
+ res = (psr & PS_Z) == 0;
+ break;
+ case 0x2: // CS
+ res = (psr & PS_C) != 0;
+ break;
+ case 0x3: // CC
+ res = (psr & PS_C) == 0;
+ break;
+ case 0x4: // MI
+ res = (psr & PS_N) != 0;
+ break;
+ case 0x5: // PL
+ res = (psr & PS_N) == 0;
+ break;
+ case 0x6: // VS
+ res = (psr & PS_V) != 0;
+ break;
+ case 0x7: // VC
+ res = (psr & PS_V) == 0;
+ break;
+ case 0x8: // HI
+ res = ((psr & PS_C) != 0) && ((psr & PS_Z) == 0);
+ break;
+ case 0x9: // LS
+ res = ((psr & PS_C) == 0) || ((psr & PS_Z) != 0);
+ break;
+ case 0xA: // GE
+ res = ((psr & (PS_N|PS_V)) == (PS_N|PS_V)) ||
+ ((psr & (PS_N|PS_V)) == 0);
+ break;
+ case 0xB: // LT
+ res = ((psr & (PS_N|PS_V)) == PS_N) ||
+ ((psr & (PS_N|PS_V)) == PS_V);
+ break;
+ case 0xC: // GT
+ res = ((psr & (PS_N|PS_V)) == (PS_N|PS_V)) ||
+ ((psr & (PS_N|PS_V)) == 0);
+ res = ((psr & PS_Z) == 0) && res;
+ break;
+ case 0xD: // LE
+ res = ((psr & (PS_N|PS_V)) == PS_N) ||
+ ((psr & (PS_N|PS_V)) == PS_V);
+ res = ((psr & PS_Z) == PS_Z) || res;
+ break;
+ case 0xE: // AL
+ res = TRUE;
+ break;
+ case 0xF: // NV
+ if (((ins & 0x0E000000) >> 24) == 0xA)
+ res = TRUE;
+ else
+ res = FALSE;
+ break;
+ }
+ return res;
+}
+
+static unsigned long
+RmShifted(int shift)
+{
+ unsigned long Rm = get_register(shift & 0x00F);
+ int shift_count;
+ if ((shift & 0x010) == 0) {
+ shift_count = (shift & 0xF80) >> 7;
+ } else {
+ shift_count = get_register((shift & 0xF00) >> 8);
+ }
+ switch ((shift & 0x060) >> 5) {
+ case 0x0: // Logical left
+ Rm <<= shift_count;
+ break;
+ case 0x1: // Logical right
+ Rm >>= shift_count;
+ break;
+ case 0x2: // Arithmetic right
+ Rm = (unsigned long)((long)Rm >> shift_count);
+ break;
+ case 0x3: // Rotate right
+ if (shift_count == 0) {
+ // Special case, RORx
+ Rm >>= 1;
+ if (get_register(PS) & PS_C) Rm |= 0x80000000;
+ } else {
+ Rm = (Rm >> shift_count) | (Rm << (32-shift_count));
+ }
+ break;
+ }
+ return Rm;
+}
+
+// Decide the next instruction to be executed for a given instruction
+static unsigned long *
+target_ins(unsigned long *pc, unsigned long ins)
+{
+ unsigned long new_pc, offset, op2;
+ unsigned long Rn;
+ int i, reg_count, c;
+
+ switch ((ins & 0x0C000000) >> 26) {
+ case 0x0:
+ // BX or BLX
+ if ((ins & 0x0FFFFFD0) == 0x012FFF10) {
+ new_pc = (unsigned long)get_register(ins & 0x0000000F);
+ return ((unsigned long *)new_pc);
+ }
+ // Data processing
+ new_pc = (unsigned long)(pc+1);
+ if ((ins & 0x0000F000) == 0x0000F000) {
+ // Destination register is PC
+ if ((ins & 0x0FBF0000) != 0x010F0000) {
+ Rn = (unsigned long)get_register((ins & 0x000F0000) >> 16);
+ if ((ins & 0x000F0000) == 0x000F0000) Rn += 8; // PC prefetch!
+ if ((ins & 0x02000000) == 0) {
+ op2 = RmShifted(ins & 0x00000FFF);
+ } else {
+ op2 = ins & 0x000000FF;
+ i = (ins & 0x00000F00) >> 8; // Rotate count
+ op2 = (op2 >> (i*2)) | (op2 << (32-(i*2)));
+ }
+ switch ((ins & 0x01E00000) >> 21) {
+ case 0x0: // AND
+ new_pc = Rn & op2;
+ break;
+ case 0x1: // EOR
+ new_pc = Rn ^ op2;
+ break;
+ case 0x2: // SUB
+ new_pc = Rn - op2;
+ break;
+ case 0x3: // RSB
+ new_pc = op2 - Rn;
+ break;
+ case 0x4: // ADD
+ new_pc = Rn + op2;
+ break;
+ case 0x5: // ADC
+ c = (get_register(PS) & PS_C) != 0;
+ new_pc = Rn + op2 + c;
+ break;
+ case 0x6: // SBC
+ c = (get_register(PS) & PS_C) != 0;
+ new_pc = Rn - op2 + c - 1;
+ break;
+ case 0x7: // RSC
+ c = (get_register(PS) & PS_C) != 0;
+ new_pc = op2 - Rn +c - 1;
+ break;
+ case 0x8: // TST
+ case 0x9: // TEQ
+ case 0xA: // CMP
+ case 0xB: // CMN
+ break; // PC doesn't change
+ case 0xC: // ORR
+ new_pc = Rn | op2;
+ break;
+ case 0xD: // MOV
+ new_pc = op2;
+ break;
+ case 0xE: // BIC
+ new_pc = Rn & ~op2;
+ break;
+ case 0xF: // MVN
+ new_pc = ~op2;
+ break;
+ }
+ }
+ }
+ return ((unsigned long *)new_pc);
+ case 0x1:
+ if ((ins & 0x02000010) == 0x02000010) {
+ // Undefined!
+ return (pc+1);
+ } else {
+ if ((ins & 0x00100000) == 0) {
+ // STR
+ return (pc+1);
+ } else {
+ // LDR
+ if ((ins & 0x0000F000) != 0x0000F000) {
+ // Rd not PC
+ return (pc+1);
+ } else {
+ Rn = (unsigned long)get_register((ins & 0x000F0000) >> 16);
+ if ((ins & 0x000F0000) == 0x000F0000) Rn += 8; // PC prefetch!
+ if (ins & 0x01000000) {
+ // Add/subtract offset before
+ if ((ins & 0x02000000) == 0) {
+ // Immediate offset
+ if (ins & 0x00800000) {
+ // Add offset
+ Rn += (ins & 0x00000FFF);
+ } else {
+ // Subtract offset
+ Rn -= (ins & 0x00000FFF);
+ }
+ } else {
+ // Offset is in a register
+ if (ins & 0x00800000) {
+ // Add offset
+ Rn += RmShifted(ins & 0x00000FFF);
+ } else {
+ // Subtract offset
+ Rn -= RmShifted(ins & 0x00000FFF);
+ }
+ }
+ }
+ return ((unsigned long *)*(unsigned long *)Rn);
+ }
+ }
+ }
+ return (pc+1);
+ case 0x2: // Branch, LDM/STM
+ if ((ins & 0x02000000) == 0) {
+ // LDM/STM
+ if ((ins & 0x00100000) == 0) {
+ // STM
+ return (pc+1);
+ } else {
+ // LDM
+ if ((ins & 0x00008000) == 0) {
+ // PC not in list
+ return (pc+1);
+ } else {
+ Rn = (unsigned long)get_register((ins & 0x000F0000) >> 16);
+ if ((ins & 0x000F0000) == 0x000F0000) Rn += 8; // PC prefetch!
+ offset = ins & 0x0000FFFF;
+ reg_count = 0;
+ for (i = 0; i < 15; i++) {
+ if (offset & (1<<i)) reg_count++;
+ }
+ if (ins & 0x00800000) {
+ // Add offset
+ Rn += reg_count*4;
+ } else {
+ // Subtract offset
+ Rn -= 4;
+ }
+ return ((unsigned long *)*(unsigned long *)Rn);
+ }
+ }
+ } else {
+ // Branch
+ if (ins_will_execute(ins)) {
+ offset = (ins & 0x00FFFFFF) << 2;
+ if (ins & 0x00800000) offset |= 0xFC000000; // sign extend
+ new_pc = (unsigned long)(pc+2) + offset;
+ // If its BLX, make new_pc a thumb address.
+ if ((ins & 0xFE000000) == 0xFA000000) {
+ if ((ins & 0x01000000) == 0x01000000)
+ new_pc |= 2;
+ new_pc = MAKE_THUMB_ADDR(new_pc);
+ }
+ return ((unsigned long *)new_pc);
+ } else {
+ // Falls through
+ return (pc+1);
+ }
+ }
+ case 0x3: // Coprocessor & SWI
+ if (((ins & 0x03000000) == 0x03000000) && ins_will_execute(ins)) {
+ // SWI
+ return (unsigned long *)(CYGNUM_HAL_VECTOR_SOFTWARE_INTERRUPT * 4);
+ } else {
+ return (pc+1);
+ }
+ default:
+ // Never reached - but fixes compiler warning.
+ return 0;
+ }
+}
+
+// FIXME: target_ins also needs to check for CPSR/THUMB being set and
+// set the thumb bit accordingly.
+
+static unsigned long
+target_thumb_ins(unsigned long pc, unsigned short ins)
+{
+ unsigned long new_pc = MAKE_THUMB_ADDR(pc+2); // default is fall-through
+ // to next thumb instruction
+ unsigned long offset, arm_ins, sp;
+ int i;
+
+ switch ((ins & 0xf000) >> 12) {
+ case 0x4:
+ // Check for BX or BLX
+ if ((ins & 0xff07) == 0x4700)
+ new_pc = (unsigned long)get_register((ins & 0x00078) >> 3);
+ break;
+ case 0xb:
+ // push/pop
+ // Look for "pop {...,pc}"
+ if ((ins & 0xf00) == 0xd00) {
+ // find PC
+ sp = (unsigned long)get_register(SP);
+
+ for (offset = i = 0; i < 8; i++)
+ if (ins & (1 << i))
+ offset += 4;
+
+ new_pc = *(cyg_uint32 *)(sp + offset);
+
+ if (!v5T_semantics())
+ new_pc = MAKE_THUMB_ADDR(new_pc);
+ }
+ break;
+ case 0xd:
+ // Bcc | SWI
+ // Use ARM function to check condition
+ arm_ins = ((unsigned long)(ins & 0x0f00)) << 20;
+ if ((arm_ins & 0xF0000000) == 0xF0000000) {
+ // SWI
+ new_pc = CYGNUM_HAL_VECTOR_SOFTWARE_INTERRUPT * 4;
+ } else if (ins_will_execute(arm_ins)) {
+ offset = (ins & 0x00FF) << 1;
+ if (ins & 0x0080) offset |= 0xFFFFFE00; // sign extend
+ new_pc = MAKE_THUMB_ADDR((unsigned long)(pc+4) + offset);
+ }
+ break;
+ case 0xe:
+ // check for B
+ if ((ins & 0x0800) == 0) {
+ offset = (ins & 0x07FF) << 1;
+ if (ins & 0x0400) offset |= 0xFFFFF800; // sign extend
+ new_pc = MAKE_THUMB_ADDR((unsigned long)(pc+4) + offset);
+ }
+ break;
+ case 0xf:
+ // BL/BLX (4byte instruction!)
+ // First instruction (bit 11 == 0) holds top-part of offset
+ if ((ins & 0x0800) == 0) {
+ offset = (ins & 0x07FF) << 12;
+ if (ins & 0x0400) offset |= 0xFF800000; // sign extend
+ // Get second instruction
+ // Second instruction (bit 11 == 1) holds bottom-part of offset
+ ins = *(unsigned short*)(pc+2);
+ // Check for BL/BLX
+ if ((ins & 0xE800) == 0xE800) {
+ offset |= (ins & 0x07ff) << 1;
+ new_pc = (unsigned long)(pc+4) + offset;
+ // If its BLX, force a full word alignment
+ // Otherwise, its a thumb address.
+ if (!(ins & 0x1000))
+ new_pc &= ~3;
+ else
+ new_pc = MAKE_THUMB_ADDR(new_pc);
+ }
+ }
+ break;
+ }
+
+ return new_pc;
+}
+
+void __single_step (void)
+{
+ unsigned long pc = get_register(PC);
+ unsigned long cpsr = get_register(PS);
+
+ // Calculate address of next instruction to be executed
+ if (cpsr & CPSR_THUMB_ENABLE) {
+ // thumb
+ ss_saved_pc = target_thumb_ins(pc, *(unsigned short*)pc);
+ } else {
+ // ARM
+ unsigned long curins = *(unsigned long*)pc;
+ if (ins_will_execute(curins)) {
+ // Decode instruction to decide what the next PC will be
+ ss_saved_pc = (unsigned long) target_ins((unsigned long*)pc,
+ curins);
+ } else {
+ // The current instruction will not execute (the conditions
+ // don't hold)
+ ss_saved_pc = pc+4;
+ }
+ }
+
+ // Set breakpoint according to type
+ if (IS_THUMB_ADDR(ss_saved_pc)) {
+ // Thumb instruction
+ unsigned long t_pc = UNMAKE_THUMB_ADDR(ss_saved_pc);
+ ss_saved_thumb_instr = *(unsigned short*)t_pc;
+ *(unsigned short*)t_pc = HAL_BREAKINST_THUMB;
+ } else {
+ // ARM instruction
+ ss_saved_instr = *(unsigned long*)ss_saved_pc;
+ *(unsigned long*)ss_saved_pc = HAL_BREAKINST_ARM;
+ }
+}
+
+/* Clear the single-step state. */
+
+void __clear_single_step (void)
+{
+ if (ss_saved_pc != 0) {
+ // Restore instruction according to type
+ if (IS_THUMB_ADDR(ss_saved_pc)) {
+ // Thumb instruction
+ unsigned long t_pc = UNMAKE_THUMB_ADDR(ss_saved_pc);
+ *(unsigned short*)t_pc = ss_saved_thumb_instr;
+ } else {
+ // ARM instruction
+ *(unsigned long*)ss_saved_pc = ss_saved_instr;
+ }
+ ss_saved_pc = 0;
+ }
+}
+
+void __install_breakpoints (void)
+{
+#if defined(CYGNUM_HAL_BREAKPOINT_LIST_SIZE) && (CYGNUM_HAL_BREAKPOINT_LIST_SIZE > 0)
+ /* Install the breakpoints in the breakpoint list */
+ __install_breakpoint_list();
+#endif
+}
+
+void __clear_breakpoints (void)
+{
+#if defined(CYGNUM_HAL_BREAKPOINT_LIST_SIZE) && (CYGNUM_HAL_BREAKPOINT_LIST_SIZE > 0)
+ __clear_breakpoint_list();
+#endif
+}
+
+/* If the breakpoint we hit is in the breakpoint() instruction, return a
+ non-zero value. */
+
+int
+__is_breakpoint_function ()
+{
+ return get_register (PC) == (target_register_t)&_breakinst;
+}
+
+
+/* Skip the current instruction. Since this is only called by the
+ stub when the PC points to a breakpoint or trap instruction,
+ we can safely just skip 4. */
+
+void __skipinst (void)
+{
+ unsigned long pc = get_register(PC);
+ unsigned long cpsr = get_register(PS);
+
+ if (cpsr & CPSR_THUMB_ENABLE)
+ pc += 2;
+ else
+ pc += 4;
+
+ put_register(PC, pc);
+}
+
+//-----------------------------------------------------------------------
+// Thumb-aware GDB interrupt handler.
+// This is a brute-force replacement of the ones in hal_stub.c. Need to
+// find a better way of handling it... Maybe... Probably only ARM/thumb
+// that is this weird.
+
+typedef struct
+{
+ cyg_uint32 targetAddr;
+ union {
+ cyg_uint32 arm_instr;
+ cyg_uint16 thumb_instr;
+ } savedInstr;
+} instrBuffer;
+
+static instrBuffer break_buffer;
+
+volatile int cyg_hal_gdb_running_step = 0;
+
+// This function is passed thumb/arm information about the PC address
+// in bit 0. This information is passed on to the break_buffer.
+void
+cyg_hal_gdb_place_break (target_register_t pc)
+{
+ // Clear flag that we Continued instead of Stepping
+ cyg_hal_gdb_running_step = 0;
+
+ if (0 == break_buffer.targetAddr) {
+ // Setting a breakpoint in Thumb or ARM code?
+ if (IS_THUMB_ADDR(pc)) {
+ break_buffer.targetAddr = (cyg_uint32)pc;
+ pc = UNMAKE_THUMB_ADDR(pc);
+ break_buffer.savedInstr.thumb_instr = *(cyg_uint16*)pc;
+ *(cyg_uint16*)pc = HAL_BREAKINST_THUMB;
+ } else {
+ break_buffer.targetAddr = (cyg_uint32)pc;
+ break_buffer.savedInstr.arm_instr = *(cyg_uint32*)pc;
+ *(cyg_uint32*)pc = HAL_BREAKINST_ARM;
+ }
+
+ __data_cache(CACHE_FLUSH);
+ __instruction_cache(CACHE_FLUSH);
+ }
+}
+
+int
+cyg_hal_gdb_remove_break (target_register_t pc)
+{
+ if ( cyg_hal_gdb_running_step )
+ return 0; // Do not remove the break: we must hit it!
+
+ if (pc == UNMAKE_THUMB_ADDR(break_buffer.targetAddr)) {
+ if (IS_THUMB_ADDR(break_buffer.targetAddr)) {
+ *(cyg_uint16*)pc = break_buffer.savedInstr.thumb_instr;
+ } else {
+ *(cyg_uint32*)pc = break_buffer.savedInstr.arm_instr;
+ }
+ break_buffer.targetAddr = 0;
+
+ __data_cache(CACHE_FLUSH);
+ __instruction_cache(CACHE_FLUSH);
+ return 1;
+ }
+ return 0;
+}
+
+void
+cyg_hal_gdb_interrupt (target_register_t pc)
+{
+ // Clear flag that we Continued instead of Stepping
+ cyg_hal_gdb_running_step = 0;
+ // and override existing break? So that a ^C takes effect...
+ if (0 != break_buffer.targetAddr)
+ cyg_hal_gdb_remove_break( break_buffer.targetAddr );
+
+ if (0 == break_buffer.targetAddr) {
+ cyg_uint32 cpsr = get_register(PS);
+
+ if (cpsr & CPSR_THUMB_ENABLE) {
+ break_buffer.targetAddr = MAKE_THUMB_ADDR((cyg_uint32)pc);
+ break_buffer.savedInstr.thumb_instr = *(cyg_uint16*)pc;
+ *(cyg_uint16*)pc = HAL_BREAKINST_THUMB;
+ } else {
+ break_buffer.targetAddr = (cyg_uint32)pc;
+ break_buffer.savedInstr.arm_instr = *(cyg_uint32*)pc;
+ *(cyg_uint32*)pc = HAL_BREAKINST_ARM;
+ }
+
+ __data_cache(CACHE_FLUSH);
+ __instruction_cache(CACHE_FLUSH);
+ }
+}
+
+int
+cyg_hal_gdb_break_is_set (void)
+{
+ if (0 != break_buffer.targetAddr) {
+ return 1;
+ }
+ return 0;
+}
+
+#ifdef CYGHWR_HAL_ARM_ICE_THREAD_SUPPORT
+#define ICE_THREAD_KEY0 0xDEAD0001
+#define ICE_THREAD_KEY1 0xDEAD0002
+
+#define ICE_THREAD_INBUFSIZ 2048
+#define ICE_THREAD_OUTBUFSIZ 2048
+#define ICE_THREAD_STACKSIZE 4096
+
+static cyg_uint8 ice_thread_inbuf[ICE_THREAD_INBUFSIZ];
+static cyg_uint8 ice_thread_outbuf[ICE_THREAD_OUTBUFSIZ];
+static cyg_uint8 ice_thread_stack[ICE_THREAD_STACKSIZE];
+
+static void ice_thread_proc(void);
+
+struct {
+ cyg_uint32 _key0; // Must be ICE_KEY0
+ cyg_uint8 *in_buffer;
+ cyg_int32 in_buffer_size;
+ cyg_uint8 *out_buffer;
+ cyg_int32 out_buffer_size;
+ cyg_uint8 *stack;
+ cyg_int32 stack_size;
+ void (*fun)(void);
+ cyg_uint32 _key1; // Must be ICE_KEY1
+} hal_arm_ice_thread_handler = {
+ ICE_THREAD_KEY0,
+ ice_thread_inbuf,
+ ICE_THREAD_INBUFSIZ,
+ ice_thread_outbuf,
+ ICE_THREAD_OUTBUFSIZ,
+ ice_thread_stack,
+ ICE_THREAD_STACKSIZE,
+ ice_thread_proc,
+ ICE_THREAD_KEY1,
+};
+
+static int
+ice_thread_query(void)
+{
+ switch (ice_thread_inbuf[1]) {
+ case 'L': // get thread list
+ stub_pkt_getthreadlist(&ice_thread_inbuf[2], ice_thread_outbuf, sizeof(ice_thread_outbuf));
+ break;
+ case 'P': // thread or process information
+ stub_pkt_getthreadinfo(&ice_thread_inbuf[2], ice_thread_outbuf, sizeof(ice_thread_outbuf));
+ break;
+ case 'C': // current thread
+ stub_pkt_currthread(&ice_thread_inbuf[2], ice_thread_outbuf, sizeof(ice_thread_outbuf));
+ break;
+ default:
+ return 0;
+ }
+ return 1;
+}
+
+static int
+ice_thread_set(void)
+{
+ return 0;
+}
+
+static void
+ice_thread_proc(void)
+{
+ switch (ice_thread_inbuf[0]) {
+ case 'g': // Fetch thread registers
+ stub_format_registers(ice_thread_outbuf);
+ return;
+ case 'P': // Update a single register
+ case 'G': // Update all registers
+ stub_update_registers(ice_thread_inbuf, ice_thread_outbuf);
+ return;
+ case 'H': // Thread set/query
+ stub_pkt_changethread(&ice_thread_inbuf[1], ice_thread_outbuf, sizeof(ice_thread_outbuf));
+ return;
+ case 'q': // Thread queries
+ if (ice_thread_query()) return;
+ break;
+ case 'Q': // Thread set operations
+ if (ice_thread_set()) return;
+ break;
+ case 'T': // Thread alive?
+ stub_pkt_thread_alive(&ice_thread_inbuf[1], ice_thread_outbuf, sizeof(ice_thread_outbuf));
+ return;
+ default:
+ }
+ strcpy(ice_thread_outbuf, "ENN"); // Dunno
+}
+
+#endif // CYGHWR_HAL_ARM_ICE_THREAD_SUPPORT
+
+#endif // CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS
diff --git a/ecos/packages/hal/arm/arch/current/src/context.S b/ecos/packages/hal/arm/arch/current/src/context.S
new file mode 100644
index 0000000..12f6e11
--- /dev/null
+++ b/ecos/packages/hal/arm/arch/current/src/context.S
@@ -0,0 +1,159 @@
+// #===========================================================================
+// #
+// # context.S
+// #
+// # ARM context switch code
+// #
+// #===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+// #===========================================================================
+// ######DESCRIPTIONBEGIN####
+// #
+// # Author(s): nickg, gthomas
+// # Contributors: nickg, gthomas
+// # Date: 1998-09-15
+// # Purpose: ARM context switch code
+// # Description: This file contains implementations of the thread context
+// # switch routines. It also contains the longjmp() and setjmp()
+// # routines.
+// #
+// #####DESCRIPTIONEND####
+// #
+// #===========================================================================
+
+#include <pkgconf/hal.h>
+
+#include "arm.inc"
+
+ .text
+
+// ----------------------------------------------------------------------------
+// function declaration macro (start body in ARM mode)
+
+#ifdef __thumb__
+#define FUNC_START_ARM(_name_, _r_) \
+ .code 16 ;\
+ .thumb_func ;\
+ .globl _name_ ;\
+_name_: ;\
+ ldr _r_,=_name_ ## _ARM ;\
+ bx _r_ ;\
+ .code 32 ;\
+_name_ ## _ARM:
+
+#else
+
+#define FUNC_START_ARM(_name_, _r_) \
+ .globl _name_; \
+_name_:
+
+#endif
+
+// ----------------------------------------------------------------------------
+// hal_thread_switch_context
+// Switch thread contexts
+// R0 = address of sp of next thread to execute
+// R1 = address of sp save location of current thread
+
+// Need to save/restore R4..R12, R13 (sp), R14 (lr)
+
+// Note: this is a little wasteful since r0..r3 don't need to be saved.
+// They are saved here though so that the information can match the
+// HAL_SavedRegisters
+
+FUNC_START_ARM(hal_thread_switch_context, r2)
+ mov ip,sp
+ sub sp,sp,#(ARMREG_SIZE - armreg_lr - 4) // skip svc_sp, svc_lr, vector, cpsr, and pc
+ stmfd sp!,{ip,lr}
+ stmfd sp!,{r0-r10,fp,ip}
+ mrs r2,cpsr
+ str r2,[sp,#armreg_cpsr]
+ str sp,[r1] // return new stack pointer
+#ifdef __thumb__
+ b hal_thread_load_context_ARM // skip mode switch stuff
+#endif
+
+ # Now load the destination thread by dropping through
+ # to hal_thread_load_context
+
+// ----------------------------------------------------------------------------
+// hal_thread_load_context
+// Load thread context
+// R0 = address of sp of next thread to execute
+// Note that this function is also the second half of
+// hal_thread_switch_context and is simply dropped into from it.
+
+FUNC_START_ARM(hal_thread_load_context, r2)
+ ldr fp,[r0] // get context to restore
+ mrs r0,cpsr // disable IRQ's
+ orr r0,r0,#CPSR_IRQ_DISABLE|CPSR_FIQ_DISABLE
+ msr cpsr,r0
+ ldr r0,[fp,#armreg_cpsr]
+ msr spsr,r0
+ ldmfd fp,{r0-r10,fp,ip,sp,lr}
+#ifdef __thumb__
+ mrs r1,spsr // r1 is scratch
+ // [r0 holds initial thread arg]
+ msr cpsr,r1 // hopefully no mode switch here!
+ bx lr
+#else
+ movs pc,lr // also restores saved PSR
+#endif
+
+// ----------------------------------------------------------------------------
+// HAL longjmp, setjmp implementations
+// hal_setjmp saves only to callee save registers 4-14
+// and lr into buffer supplied in r0[arg0]
+
+FUNC_START_ARM(hal_setjmp, r2)
+ stmea r0,{r4-r14}
+ mov r0,#0
+#ifdef __thumb__
+ bx lr
+#else
+ mov pc,lr; # return
+#endif
+
+// hal_longjmp loads state from r0[arg0] and returns
+
+FUNC_START_ARM(hal_longjmp, r2)
+ ldmfd r0,{r4-r14}
+ mov r0,r1; # return [arg1]
+#ifdef __thumb__
+ bx lr
+#else
+ mov pc,lr
+#endif
+
+// ----------------------------------------------------------------------------
+// end of context.S
diff --git a/ecos/packages/hal/arm/arch/current/src/hal_misc.c b/ecos/packages/hal/arm/arch/current/src/hal_misc.c
new file mode 100644
index 0000000..1bfdbd7
--- /dev/null
+++ b/ecos/packages/hal/arm/arch/current/src/hal_misc.c
@@ -0,0 +1,363 @@
+/*==========================================================================
+//
+// hal_misc.c
+//
+// HAL miscellaneous functions
+//
+//==========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002, 2008 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//==========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): nickg, gthomas
+// Contributors: nickg, gthomas
+// Date: 1999-02-20
+// Purpose: HAL miscellaneous functions
+// Description: This file contains miscellaneous functions provided by the
+// HAL.
+//
+//####DESCRIPTIONEND####
+//
+//=========================================================================*/
+
+#include <pkgconf/hal.h>
+#include <pkgconf/hal_arm.h>
+#ifdef CYGPKG_KERNEL
+#include <pkgconf/kernel.h>
+#endif
+#ifdef CYGPKG_CYGMON
+#include <pkgconf/cygmon.h>
+#endif
+
+#include <cyg/infra/diag.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/hal/hal_arch.h> // HAL header
+#include <cyg/hal/hal_intr.h> // HAL header
+
+/*------------------------------------------------------------------------*/
+/* First level C exception handler. */
+
+externC void __handle_exception (void);
+
+externC HAL_SavedRegisters *_hal_registers;
+#ifdef CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS
+externC void* volatile __mem_fault_handler;
+#endif
+
+
+#ifdef CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS
+/* Force exception handling into the GDB stubs. This is done by taking over
+ the exception vectors while executing in the stubs. This allows for the
+ debugged program to handle exceptions itself, except while the GDB
+ processing is underway. The only vector that can't be handled this way
+ is the illegal instruction vector which is used for breakpoint/single-step
+ and must be maintained by the stubs at all times.
+ Note: the interrupt vectors are _not_ preempted as the stubs probably can't
+ handle them properly.
+*/
+
+#define ARM_VECTORS 8
+extern unsigned long vectors[]; // exception vectors as defined by the stubs
+
+#if !defined(CYGPKG_CYGMON)
+static unsigned long *hardware_vectors = (unsigned long *)0x20;
+static unsigned long hold_vectors[ARM_VECTORS];
+static int exception_level;
+
+static void
+__take_over_debug_traps(void)
+{
+ hold_vectors[CYGNUM_HAL_VECTOR_ABORT_PREFETCH] = hardware_vectors[CYGNUM_HAL_VECTOR_ABORT_PREFETCH];
+ hardware_vectors[CYGNUM_HAL_VECTOR_ABORT_PREFETCH] = vectors[CYGNUM_HAL_VECTOR_ABORT_PREFETCH];
+ hold_vectors[CYGNUM_HAL_VECTOR_ABORT_DATA] = hardware_vectors[CYGNUM_HAL_VECTOR_ABORT_DATA];
+ hardware_vectors[CYGNUM_HAL_VECTOR_ABORT_DATA] = vectors[CYGNUM_HAL_VECTOR_ABORT_DATA];
+}
+
+static void
+__restore_debug_traps(void)
+{
+ hardware_vectors[CYGNUM_HAL_VECTOR_ABORT_PREFETCH] = hold_vectors[CYGNUM_HAL_VECTOR_ABORT_PREFETCH];
+ hardware_vectors[CYGNUM_HAL_VECTOR_ABORT_DATA] = hold_vectors[CYGNUM_HAL_VECTOR_ABORT_DATA];
+}
+#endif // !CYGPKG_CYGMON
+#endif
+
+void
+exception_handler(HAL_SavedRegisters *regs)
+{
+ // Special case handler for code which has chosen to take care
+ // of data exceptions (i.e. code which expects them to happen)
+ // This is common in discovery code, e.g. checking for a particular
+ // device which may generate an exception when probing if the
+ // device is not present
+#ifdef CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS
+ if (__mem_fault_handler &&
+ regs->vector == CYGNUM_HAL_EXCEPTION_DATA_ACCESS) {
+ regs->pc = (unsigned long)__mem_fault_handler;
+ return; // Caught an exception inside stubs
+ }
+#endif
+
+#if defined(CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS) && !defined(CYGPKG_CYGMON)
+ if (++exception_level == 1) __take_over_debug_traps();
+
+ _hal_registers = regs;
+ __handle_exception();
+
+ if (--exception_level == 0) __restore_debug_traps();
+
+#elif defined(CYGPKG_KERNEL_EXCEPTIONS)
+
+ // We should decode the vector and pass a more appropriate
+ // value as the second argument. For now we simply pass a
+ // pointer to the saved registers. We should also divert
+ // breakpoint and other debug vectors into the debug stubs.
+
+ cyg_hal_deliver_exception( regs->vector, (CYG_ADDRWORD)regs );
+
+#else
+
+ CYG_FAIL("Exception!!!");
+
+#endif
+
+ return;
+}
+
+void hal_spurious_IRQ(HAL_SavedRegisters *regs) CYGBLD_ATTRIB_WEAK;
+void
+hal_spurious_IRQ(HAL_SavedRegisters *regs)
+{
+#if defined(CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS)
+ exception_handler(regs);
+#else
+ CYG_FAIL("Spurious interrupt!!");
+#endif
+}
+
+/*------------------------------------------------------------------------*/
+/* C++ support - run initial constructors */
+
+#ifdef CYGSEM_HAL_STOP_CONSTRUCTORS_ON_FLAG
+cyg_bool cyg_hal_stop_constructors;
+#endif
+
+typedef void (*pfunc) (void);
+
+// EABI uses different symbols, and constructors are in opposite order.
+#ifdef CYGBLD_HAL_ARM_EABI
+extern pfunc __init_array_start__[];
+extern pfunc __init_array_end__[];
+#define CONSTRUCTORS_START (__init_array_start__[0])
+#define CONSTRUCTORS_END (__init_array_end__)
+#define NEXT_CONSTRUCTOR(c) ((c)++)
+#else
+extern pfunc __CTOR_LIST__[];
+extern pfunc __CTOR_END__[];
+#define CONSTRUCTORS_START (__CTOR_END__[-1])
+#define CONSTRUCTORS_END (&__CTOR_LIST__[-1])
+#define NEXT_CONSTRUCTOR(c) ((c)--)
+#endif
+
+void
+cyg_hal_invoke_constructors (void)
+{
+#ifdef CYGSEM_HAL_STOP_CONSTRUCTORS_ON_FLAG
+ static pfunc *p = &CONSTRUCTORS_START;
+
+ cyg_hal_stop_constructors = 0;
+ for (; p != CONSTRUCTORS_END; NEXT_CONSTRUCTOR(p)) {
+ (*p)();
+ if (cyg_hal_stop_constructors) {
+ NEXT_CONSTRUCTOR(p);
+ break;
+ }
+ }
+#else
+ pfunc *p;
+
+ for (p = &CONSTRUCTORS_START; p != CONSTRUCTORS_END; NEXT_CONSTRUCTOR(p))
+ (*p)();
+#endif
+}
+
+/*------------------------------------------------------------------------*/
+/* Architecture default ISR */
+
+externC cyg_uint32
+hal_arch_default_isr(CYG_ADDRWORD vector, CYG_ADDRWORD data)
+{
+ CYG_TRACE1(true, "Interrupt: %d", vector);
+
+ CYG_FAIL("Spurious Interrupt!!!");
+ return 0;
+}
+
+/*-------------------------------------------------------------------------*/
+/* Misc functions */
+
+#ifdef CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS
+/* This function will generate a breakpoint exception. It is used at the
+ beginning of a program to sync up with a debugger and can be used
+ otherwise as a quick means to stop program execution and "break" into
+ the debugger. */
+
+void
+breakpoint(void)
+{
+ HAL_BREAKPOINT(_breakinst);
+}
+
+
+/* This function returns the opcode for a 'trap' instruction. */
+
+unsigned long
+__break_opcode (void)
+{
+ return HAL_BREAKINST;
+}
+#endif
+
+int
+hal_lsbindex(int mask)
+{
+ int i;
+ for (i = 0; i < 32; i++) {
+ if (mask & (1<<i)) return (i);
+ }
+ return (-1);
+}
+
+int
+hal_msbindex(int mask)
+{
+ int i;
+ for (i = 31; i >= 0; i--) {
+ if (mask & (1<<i)) return (i);
+ }
+ return (-1);
+}
+
+#ifdef CYGHWR_HAL_ARM_DUMP_EXCEPTIONS
+void
+dump_frame(unsigned char *frame)
+{
+ HAL_SavedRegisters *rp = (HAL_SavedRegisters *)frame;
+ int i;
+ diag_dump_buf(frame, 128);
+ diag_printf("Registers:\n");
+ for (i = 0; i <= 10; i++) {
+ if ((i == 0) || (i == 6)) diag_printf("R%d: ", i);
+ diag_printf("%08X ", rp->d[i]);
+ if ((i == 5) || (i == 10)) diag_printf("\n");
+ }
+ diag_printf("FP: %08X, SP: %08X, LR: %08X, PC: %08X, PSR: %08X\n",
+ rp->fp, rp->sp, rp->lr, rp->pc, rp->cpsr);
+}
+#endif
+
+#if 0
+void
+show_frame_in(HAL_SavedRegisters *frame)
+{
+ int old;
+ HAL_DISABLE_INTERRUPTS(old);
+ diag_printf("[IN] IRQ Frame:\n");
+ dump_frame((unsigned char *)frame);
+ HAL_RESTORE_INTERRUPTS(old);
+}
+
+void
+show_frame_out(HAL_SavedRegisters *frame)
+{
+ int old;
+ HAL_DISABLE_INTERRUPTS(old);
+ diag_printf("[OUT] IRQ Frame:\n");
+ dump_frame((unsigned char *)frame);
+ HAL_RESTORE_INTERRUPTS(old);
+}
+#endif
+
+#ifdef CYGHWR_HAL_ARM_DUMP_EXCEPTIONS
+// Debug routines
+void cyg_hal_report_undefined_instruction(HAL_SavedRegisters *frame)
+{
+ int old;
+ HAL_DISABLE_INTERRUPTS(old);
+ diag_printf("[UNDEFINED INSTRUCTION] Frame:\n");
+ dump_frame((unsigned char *)frame);
+ HAL_RESTORE_INTERRUPTS(old);
+}
+
+void cyg_hal_report_software_interrupt(HAL_SavedRegisters *frame)
+{
+ int old;
+ HAL_DISABLE_INTERRUPTS(old);
+ diag_printf("[SOFTWARE INTERRUPT] Frame:\n");
+ dump_frame((unsigned char *)frame);
+ HAL_RESTORE_INTERRUPTS(old);
+}
+
+void cyg_hal_report_abort_prefetch(HAL_SavedRegisters *frame)
+{
+ int old;
+ HAL_DISABLE_INTERRUPTS(old);
+ diag_printf("[ABORT PREFETCH] Frame:\n");
+ dump_frame((unsigned char *)frame);
+ HAL_RESTORE_INTERRUPTS(old);
+}
+
+void cyg_hal_report_abort_data(HAL_SavedRegisters *frame)
+{
+ int old;
+ HAL_DISABLE_INTERRUPTS(old);
+ diag_printf("[ABORT DATA] Frame:\n");
+ dump_frame((unsigned char *)frame);
+ HAL_RESTORE_INTERRUPTS(old);
+}
+
+void cyg_hal_report_exception_handler_returned(HAL_SavedRegisters *frame)
+{
+ int old;
+ HAL_DISABLE_INTERRUPTS(old);
+ diag_printf("Exception handler returned!\n");
+ dump_frame((unsigned char *)frame);
+ HAL_RESTORE_INTERRUPTS(old);
+}
+#endif
+
+/*------------------------------------------------------------------------*/
+// EOF hal_misc.c
diff --git a/ecos/packages/hal/arm/arch/current/src/hal_mk_defs.c b/ecos/packages/hal/arm/arch/current/src/hal_mk_defs.c
new file mode 100644
index 0000000..c8ed4ec
--- /dev/null
+++ b/ecos/packages/hal/arm/arch/current/src/hal_mk_defs.c
@@ -0,0 +1,150 @@
+/*==========================================================================
+//
+// hal_mk_defs.c
+//
+// HAL (architecture) "make defs" program
+//
+//==========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2008 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//==========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): gthomas
+// Contributors: gthomas
+// Date: 1999-02-20
+// Purpose: ARM 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
+#ifdef CYGPKG_KERNEL
+# include <pkgconf/kernel.h>
+# include <cyg/kernel/instrmnt.h>
+#endif
+#include <cyg/hal/hal_if.h>
+
+/*
+ * 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)
+{
+ DEFINE(armreg_r0, offsetof(HAL_SavedRegisters, d[HAL_THREAD_CONTEXT_R0]));
+ DEFINE(armreg_r4, offsetof(HAL_SavedRegisters, d[HAL_THREAD_CONTEXT_R4]));
+ DEFINE(armreg_r8, offsetof(HAL_SavedRegisters, d[HAL_THREAD_CONTEXT_R8]));
+ DEFINE(armreg_r9, offsetof(HAL_SavedRegisters, d[HAL_THREAD_CONTEXT_R9]));
+ DEFINE(armreg_r10, offsetof(HAL_SavedRegisters, d[HAL_THREAD_CONTEXT_R10]));
+ DEFINE(armreg_sp, offsetof(HAL_SavedRegisters, sp));
+ DEFINE(armreg_fp, offsetof(HAL_SavedRegisters, fp));
+ DEFINE(armreg_ip, offsetof(HAL_SavedRegisters, ip));
+ DEFINE(armreg_lr, offsetof(HAL_SavedRegisters, lr));
+ DEFINE(armreg_pc, offsetof(HAL_SavedRegisters, pc));
+ DEFINE(armreg_cpsr, offsetof(HAL_SavedRegisters, cpsr));
+ DEFINE(armreg_vector, offsetof(HAL_SavedRegisters, vector));
+ DEFINE(armreg_svclr, offsetof(HAL_SavedRegisters, svc_lr));
+ DEFINE(armreg_svcsp, offsetof(HAL_SavedRegisters, svc_sp));
+ DEFINE(ARMREG_SIZE, sizeof(HAL_SavedRegisters));
+ DEFINE(CYGNUM_HAL_ISR_COUNT, CYGNUM_HAL_ISR_COUNT);
+ DEFINE(CYGNUM_HAL_VSR_COUNT, CYGNUM_HAL_VSR_COUNT);
+ DEFINE(CYGNUM_HAL_EXCEPTION_ILLEGAL_INSTRUCTION,
+ CYGNUM_HAL_EXCEPTION_ILLEGAL_INSTRUCTION);
+ DEFINE(CYGNUM_HAL_EXCEPTION_INTERRUPT, CYGNUM_HAL_EXCEPTION_INTERRUPT);
+ DEFINE(CYGNUM_HAL_EXCEPTION_CODE_ACCESS,
+ CYGNUM_HAL_EXCEPTION_CODE_ACCESS);
+ DEFINE(CYGNUM_HAL_EXCEPTION_DATA_ACCESS,
+ CYGNUM_HAL_EXCEPTION_DATA_ACCESS);
+ DEFINE(CYGNUM_HAL_VECTOR_IRQ, CYGNUM_HAL_VECTOR_IRQ);
+#ifdef CYGPKG_KERNEL
+ DEFINE(RAISE_INTR, CYG_INSTRUMENT_CLASS_INTR|CYG_INSTRUMENT_EVENT_INTR_RAISE);
+#endif
+ DEFINE(CPSR_IRQ_DISABLE, CPSR_IRQ_DISABLE);
+ DEFINE(CPSR_FIQ_DISABLE, CPSR_FIQ_DISABLE);
+ DEFINE(CPSR_THUMB_ENABLE, CPSR_THUMB_ENABLE);
+ DEFINE(CPSR_USER_MODE, CPSR_USER_MODE);
+ DEFINE(CPSR_IRQ_MODE, CPSR_IRQ_MODE);
+ DEFINE(CPSR_FIQ_MODE, CPSR_FIQ_MODE);
+ DEFINE(CPSR_SUPERVISOR_MODE, CPSR_SUPERVISOR_MODE);
+ DEFINE(CPSR_UNDEF_MODE, CPSR_UNDEF_MODE);
+ DEFINE(CPSR_MODE_BITS, CPSR_MODE_BITS);
+ DEFINE(CPSR_INITIAL, CPSR_INITIAL);
+ DEFINE(CPSR_THREAD_INITIAL, CPSR_THREAD_INITIAL);
+#if defined(CYGSEM_HAL_VIRTUAL_VECTOR_SUPPORT)
+ DEFINE(CYGNUM_CALL_IF_TABLE_SIZE, CYGNUM_CALL_IF_TABLE_SIZE);
+#endif
+ DEFINE(CYGNUM_HAL_INTERRUPT_NONE, CYGNUM_HAL_INTERRUPT_NONE);
+ DEFINE(HAL_ARM_RESET_VECTOR, HAL_ARM_RESET_VECTOR);
+ DEFINE(HAL_ARM_UNDEFINED_VECTOR, HAL_ARM_UNDEFINED_VECTOR);
+ DEFINE(HAL_ARM_SWI_VECTOR, HAL_ARM_SWI_VECTOR);
+ DEFINE(HAL_ARM_PREFETCH_VECTOR, HAL_ARM_PREFETCH_VECTOR);
+ DEFINE(HAL_ARM_ABORT_VECTOR, HAL_ARM_ABORT_VECTOR);
+ DEFINE(HAL_ARM_RESERVED_VECTOR, HAL_ARM_RESERVED_VECTOR);
+ DEFINE(HAL_ARM_IRQ_VECTOR, HAL_ARM_IRQ_VECTOR);
+ DEFINE(HAL_ARM_FIQ_VECTOR, HAL_ARM_FIQ_VECTOR);
+ DEFINE(HAL_ARM_RESET_VECTOR_ADDR, HAL_ARM_RESET_VECTOR_ADDR);
+ DEFINE(HAL_ARM_UNDEFINED_VECTOR_ADDR, HAL_ARM_UNDEFINED_VECTOR_ADDR);
+ DEFINE(HAL_ARM_SWI_VECTOR_ADDR, HAL_ARM_SWI_VECTOR_ADDR);
+ DEFINE(HAL_ARM_PREFETCH_VECTOR_ADDR, HAL_ARM_PREFETCH_VECTOR_ADDR);
+ DEFINE(HAL_ARM_ABORT_VECTOR_ADDR, HAL_ARM_ABORT_VECTOR_ADDR);
+ DEFINE(HAL_ARM_RESERVED_VECTOR_ADDR, HAL_ARM_RESERVED_VECTOR_ADDR);
+ DEFINE(HAL_ARM_IRQ_VECTOR_ADDR, HAL_ARM_IRQ_VECTOR_ADDR);
+ DEFINE(HAL_ARM_FIQ_VECTOR_ADDR, HAL_ARM_FIQ_VECTOR_ADDR);
+
+ DEFINE(HAL_BREAKINST_THUMB, HAL_BREAKINST_THUMB);
+ DEFINE(HAL_BREAKINST_ARM, HAL_BREAKINST_ARM);
+
+ DEFINE(CPSR_INTR_MASK, CPSR_INTR_MASK);
+
+ return 0;
+}
+
+
+/*------------------------------------------------------------------------*/
+// EOF hal_mk_defs.c
diff --git a/ecos/packages/hal/arm/arch/current/src/hal_syscall.c b/ecos/packages/hal/arm/arch/current/src/hal_syscall.c
new file mode 100644
index 0000000..2c8d232
--- /dev/null
+++ b/ecos/packages/hal/arm/arch/current/src/hal_syscall.c
@@ -0,0 +1,122 @@
+//=============================================================================
+//
+// hal_syscall.c
+//
+//
+//
+//=============================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): msalter
+// Contributors:msalter
+// Date: 2000-11-5
+// Purpose:
+// Description:
+//
+//
+//
+//####DESCRIPTIONEND####
+//
+//=============================================================================
+
+#include <pkgconf/hal.h>
+
+#ifdef CYGPKG_REDBOOT
+#include <pkgconf/redboot.h>
+#endif
+
+#if defined(CYGSEM_REDBOOT_BSP_SYSCALLS)
+
+#include <cyg/hal/hal_stub.h> // Our header
+#include <cyg/hal/hal_arch.h> // HAL_BREAKINST
+#include <cyg/hal/hal_cache.h> // HAL_xCACHE_x
+#include <cyg/hal/hal_intr.h> // interrupt disable/restore
+
+#include <cyg/hal/hal_if.h> // ROM calling interface
+#include <cyg/hal/hal_misc.h> // Helper functions
+
+extern int __do_syscall(int func, // syscall function number
+ long arg1, long arg2, // up to four args.
+ long arg3, long arg4,
+ int *retval, // syscall return value
+ int *sig); // signal to return (or 0)
+
+#define SYS_exit 1
+#define SYS_interrupt 1000
+
+int
+hal_syscall_handler(void)
+{
+ int func, arg1, arg2, arg3, arg4;
+ int err, sig;
+
+#if 0
+ union arm_insn inst;
+
+ // What is the instruction we were executing
+ //
+ inst.word = *(unsigned long *)(regs->_pc - ARM_INST_SIZE);
+
+ // Not a syscall. Don't handle it
+ if ((inst.swi.rsv1 != SWI_RSV1_VALUE) || (inst.swi.swi_number != SYSCALL_SWI))
+ return 0;
+#endif
+
+ func = get_register(R0);
+ arg1 = get_register(R1);
+ arg2 = get_register(R2);
+ arg3 = get_register(R3);
+ arg4 = *(unsigned int *)(get_register(SP) + 4);
+
+ if ((get_register(PS) & CPSR_MODE_BITS) == CPSR_SUPERVISOR_MODE)
+ put_register(PC, get_register(IP));
+ else
+ put_register(PC, get_register(LR));
+
+ if (func == SYS_interrupt) {
+ // A console interrupt landed us here.
+ // Invoke the debug agent so as to cause a SIGINT.
+ return SIGINT;
+ }
+
+ if (__do_syscall(func, arg1, arg2, arg3, arg4, &err, &sig)) {
+ put_register(R0, err);
+ return sig;
+ }
+
+ return SIGTRAP;
+}
+
+#endif // CYGSEM_REDBOOT_BSP_SYSCALLS
diff --git a/ecos/packages/hal/arm/arch/current/src/redboot_linux_exec.c b/ecos/packages/hal/arm/arch/current/src/redboot_linux_exec.c
new file mode 100644
index 0000000..6f258e7
--- /dev/null
+++ b/ecos/packages/hal/arm/arch/current/src/redboot_linux_exec.c
@@ -0,0 +1,528 @@
+//==========================================================================
+//
+// redboot_linux_boot.c
+//
+// RedBoot command to boot Linux on ARM platforms
+//
+//==========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//####OTHERCOPYRIGHTBEGIN####
+//
+// The structure definitions below are taken from include/asm-arm/setup.h in
+// the Linux kernel, Copyright (C) 1997-1999 Russell King. Their presence
+// here is for the express purpose of communication with the Linux kernel
+// being booted and is considered 'fair use' by the original author and
+// are included with his permission.
+//
+//####OTHERCOPYRIGHTEND####
+//==========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): gthomas
+// Contributors: gthomas, jskov,
+// Russell King <rmk@arm.linux.org.uk>
+// Date: 2001-02-20
+// Purpose:
+// Description:
+//
+// This code is part of RedBoot (tm).
+//
+//####DESCRIPTIONEND####
+//
+//==========================================================================
+
+#include <pkgconf/hal.h>
+#include <redboot.h>
+
+#ifdef CYGPKG_IO_ETH_DRIVERS
+#include <cyg/io/eth/eth_drv.h> // Logical driver interfaces
+#endif
+
+#include <cyg/hal/hal_intr.h>
+#include <cyg/hal/hal_cache.h>
+#include CYGHWR_MEMORY_LAYOUT_H
+
+#include <cyg/hal/hal_io.h>
+
+#ifndef CYGARC_PHYSICAL_ADDRESS
+# error
+# define CYGARC_PHYSICAL_ADDRESS(x) (x)
+#endif
+
+// FIXME: This should be a CDL variable, and CYGSEM_REDBOOT_ARM_LINUX_BOOT
+// active_if CYGHWR_HAL_ARM_REDBOOT_MACHINE_TYPE>0
+#ifdef HAL_PLATFORM_MACHINE_TYPE
+#define CYGHWR_REDBOOT_ARM_MACHINE_TYPE HAL_PLATFORM_MACHINE_TYPE
+
+// Exported CLI function(s)
+static void do_exec(int argc, char *argv[]);
+RedBoot_cmd("exec",
+ "Execute an image - with MMU off",
+ "[-w timeout] [-b <load addr> [-l <length>]]\n"
+ " [-r <ramdisk addr> [-s <ramdisk length>]]\n"
+ " [-c \"kernel command line\"] [-t <target> ] [<entry_point>]",
+ do_exec
+ );
+
+// CYGARC_HAL_MMU_OFF inserts code to turn off MMU and jump to a physical
+// address. Some ARM implementations may need special handling and define
+// their own version.
+#ifndef CYGARC_HAL_MMU_OFF
+
+#define __CYGARC_GET_CTLREG \
+ " mrc p15,0,r0,c1,c0,0\n"
+
+#define __CYGARC_CLR_MMU_BITS \
+ " bic r0,r0,#0xd\n" \
+ " bic r0,r0,#0x1000\n" \
+
+#ifdef CYGHWR_HAL_ARM_BIGENDIAN
+#define __CYGARC_CLR_MMU_BITS_X \
+ " bic r0,r0,#0x8d\n" \
+ " bic r0,r0,#0x1000\n"
+#else
+#define __CYGARC_CLR_MMU_BITS_X \
+ " bic r0,r0,#0xd\n" \
+ " bic r0,r0,#0x1000\n" \
+ " orr r0,r0,#0x80\n"
+#endif
+
+#define __CYGARC_SET_CTLREG(__paddr__) \
+ " mcr p15,0,r0,c1,c0,0\n" \
+ " mov pc," #__paddr__ "\n"
+
+#define CYGARC_HAL_MMU_OFF(__paddr__) \
+ " mcr p15,0,r0,c7,c10,4\n" \
+ " mcr p15,0,r0,c7,c7,0\n" \
+ __CYGARC_GET_CTLREG \
+ __CYGARC_CLR_MMU_BITS \
+ __CYGARC_SET_CTLREG(__paddr__)
+
+#define CYGARC_HAL_MMU_OFF_X(__paddr__) \
+ " mcr p15,0,r0,c7,c10,4\n" \
+ " mcr p15,0,r0,c7,c7,0\n" \
+ __CYGARC_GET_CTLREG \
+ __CYGARC_CLR_MMU_BITS_X \
+ __CYGARC_SET_CTLREG(__paddr__)
+
+#endif // CYGARC_HAL_MMU_OFF
+
+//
+// Parameter info for Linux kernel
+// ** C A U T I O N ** This setup must match "asm-arm/setup.h"
+//
+// Info is passed at a fixed location, using a sequence of tagged
+// data entries.
+//
+
+typedef unsigned long u32;
+typedef unsigned short u16;
+typedef unsigned char u8;
+
+//=========================================================================
+// From Linux <asm-arm/setup.h>
+
+#define ATAG_NONE 0x00000000
+struct tag_header {
+ u32 size; // Size of tag (hdr+data) in *longwords*
+ u32 tag;
+};
+
+#define ATAG_CORE 0x54410001
+struct tag_core {
+ u32 flags; /* bit 0 = read-only */
+ u32 pagesize;
+ u32 rootdev;
+};
+
+#define ATAG_MEM 0x54410002
+struct tag_mem32 {
+ u32 size;
+ u32 start;
+};
+
+#define ATAG_VIDEOTEXT 0x54410003
+struct tag_videotext {
+ u8 x;
+ u8 y;
+ u16 video_page;
+ u8 video_mode;
+ u8 video_cols;
+ u16 video_ega_bx;
+ u8 video_lines;
+ u8 video_isvga;
+ u16 video_points;
+};
+
+#define ATAG_RAMDISK 0x54410004
+struct tag_ramdisk {
+ u32 flags; /* b0 = load, b1 = prompt */
+ u32 size;
+ u32 start;
+};
+
+/*
+ * this one accidentally used virtual addresses - as such,
+ * its deprecated.
+ */
+#define ATAG_INITRD 0x54410005
+
+/* describes where the compressed ramdisk image lives (physical address) */
+#define ATAG_INITRD2 0x54420005
+struct tag_initrd {
+ u32 start;
+ u32 size;
+};
+
+#define ATAG_SERIAL 0x54410006
+struct tag_serialnr {
+ u32 low;
+ u32 high;
+};
+
+#define ATAG_REVISION 0x54410007
+struct tag_revision {
+ u32 rev;
+};
+
+#define ATAG_VIDEOLFB 0x54410008
+struct tag_videolfb {
+ u16 lfb_width;
+ u16 lfb_height;
+ u16 lfb_depth;
+ u16 lfb_linelength;
+ u32 lfb_base;
+ u32 lfb_size;
+ u8 red_size;
+ u8 red_pos;
+ u8 green_size;
+ u8 green_pos;
+ u8 blue_size;
+ u8 blue_pos;
+ u8 rsvd_size;
+ u8 rsvd_pos;
+};
+
+#define ATAG_CMDLINE 0x54410009
+struct tag_cmdline {
+ char cmdline[1];
+};
+
+#define ATAG_ACORN 0x41000101
+struct tag_acorn {
+ u32 memc_control_reg;
+ u32 vram_pages;
+ u8 sounddefault;
+ u8 adfsdrives;
+};
+
+#define ATAG_MEMCLK 0x41000402
+struct tag_memclk {
+ u32 fmemclk;
+};
+
+struct tag {
+ struct tag_header hdr;
+ union {
+ struct tag_core core;
+ struct tag_mem32 mem;
+ struct tag_videotext videotext;
+ struct tag_ramdisk ramdisk;
+ struct tag_initrd initrd;
+ struct tag_serialnr serialnr;
+ struct tag_revision revision;
+ struct tag_videolfb videolfb;
+ struct tag_cmdline cmdline;
+
+ /*
+ * Acorn specific
+ */
+ struct tag_acorn acorn;
+
+ /*
+ * DC21285 specific
+ */
+ struct tag_memclk memclk;
+ } u;
+};
+
+// End of inclusion from <asm-arm/setup.h>
+//=========================================================================
+
+// Default memory layout - can be overridden by platform, typically in
+// <cyg/hal/plf_io.h>
+#ifndef CYGHWR_REDBOOT_LINUX_ATAG_MEM
+#define CYGHWR_REDBOOT_LINUX_ATAG_MEM(_p_) \
+ CYG_MACRO_START \
+ /* Next ATAG_MEM. */ \
+ _p_->hdr.size = (sizeof(struct tag_mem32) + sizeof(struct tag_header))/sizeof(long); \
+ _p_->hdr.tag = ATAG_MEM; \
+ /* Round up so there's only one bit set in the memory size. \
+ * Don't double it if it's already a power of two, though. \
+ */ \
+ _p_->u.mem.size = 1<<hal_msbindex(CYGMEM_REGION_ram_SIZE); \
+ if (_p_->u.mem.size < CYGMEM_REGION_ram_SIZE) \
+ _p_->u.mem.size <<= 1; \
+ _p_->u.mem.start = CYGARC_PHYSICAL_ADDRESS(CYGMEM_REGION_ram); \
+ CYG_MACRO_END
+#endif
+
+
+// Round up a quantity to a longword (32 bit) length
+#define ROUNDUP(n) (((n)+3)&~3)
+
+static void
+do_exec(int argc, char *argv[])
+{
+ unsigned long entry;
+ unsigned long target;
+ unsigned long oldints;
+ bool wait_time_set;
+ int wait_time, res, num_opts;
+ bool base_addr_set, length_set, cmd_line_set;
+ bool ramdisk_addr_set, ramdisk_size_set;
+ unsigned long base_addr, length;
+ unsigned long ramdisk_addr, ramdisk_size;
+ struct option_info opts[7];
+ char line[8];
+ char *cmd_line;
+ struct tag *params = (struct tag *)CYGHWR_REDBOOT_ARM_LINUX_TAGS_ADDRESS;
+#ifdef CYGHWR_REDBOOT_LINUX_EXEC_X_SWITCH
+ bool swap_endian;
+ extern char __xtramp_start__[], __xtramp_end__[];
+#endif
+ extern char __tramp_start__[], __tramp_end__[];
+
+ // Check to see if a valid image has been loaded
+ if (entry_address == (unsigned long)NO_MEMORY) {
+ diag_printf("Can't execute Linux - invalid entry address\n");
+ return;
+ }
+ // Default physical entry point for Linux is kernel base.
+ entry = (unsigned long)CYGHWR_REDBOOT_ARM_LINUX_EXEC_ADDRESS;
+ target = (unsigned long)CYGHWR_REDBOOT_ARM_LINUX_EXEC_ADDRESS;
+
+ base_addr = load_address;
+ length = load_address_end - load_address;
+ // Round length up to the next quad word
+ length = (length + 3) & ~0x3;
+
+ ramdisk_size = 4096*1024;
+ init_opts(&opts[0], 'w', true, OPTION_ARG_TYPE_NUM,
+ (void **)&wait_time, (bool *)&wait_time_set, "wait timeout");
+ init_opts(&opts[1], 'b', true, OPTION_ARG_TYPE_NUM,
+ (void **)&base_addr, (bool *)&base_addr_set, "base address");
+ init_opts(&opts[2], 'l', true, OPTION_ARG_TYPE_NUM,
+ (void **)&length, (bool *)&length_set, "length");
+ init_opts(&opts[3], 'c', true, OPTION_ARG_TYPE_STR,
+ (void **)&cmd_line, (bool *)&cmd_line_set, "kernel command line");
+ init_opts(&opts[4], 'r', true, OPTION_ARG_TYPE_NUM,
+ (void **)&ramdisk_addr, (bool *)&ramdisk_addr_set, "ramdisk_addr");
+ init_opts(&opts[5], 's', true, OPTION_ARG_TYPE_NUM,
+ (void **)&ramdisk_size, (bool *)&ramdisk_size_set, "ramdisk_size");
+ init_opts(&opts[6], 't', true, OPTION_ARG_TYPE_NUM,
+ &target, 0, "[physical] target address");
+ num_opts = 7;
+#ifdef CYGHWR_REDBOOT_LINUX_EXEC_X_SWITCH
+ init_opts(&opts[num_opts], 'x', false, OPTION_ARG_TYPE_FLG,
+ (void **)&swap_endian, 0, "swap endianess");
+ ++num_opts;
+#endif
+ if (!scan_opts(argc, argv, 1, opts, num_opts, (void *)&entry, OPTION_ARG_TYPE_NUM, "[physical] starting address"))
+ {
+ return;
+ }
+
+ // Set up parameters to pass to kernel
+
+ // CORE tag must be present & first
+ params->hdr.size = (sizeof(struct tag_core) + sizeof(struct tag_header))/sizeof(long);
+ params->hdr.tag = ATAG_CORE;
+ params->u.core.flags = 0;
+ params->u.core.pagesize = 0;
+ params->u.core.rootdev = 0;
+ params = (struct tag *)((long *)params + params->hdr.size);
+
+ // Fill in the details of the memory layout
+ CYGHWR_REDBOOT_LINUX_ATAG_MEM(params);
+
+ params = (struct tag *)((long *)params + params->hdr.size);
+ if (ramdisk_addr_set) {
+ params->hdr.size = (sizeof(struct tag_initrd) + sizeof(struct tag_header))/sizeof(long);
+ params->hdr.tag = ATAG_INITRD2;
+ params->u.initrd.start = CYGARC_PHYSICAL_ADDRESS(ramdisk_addr);
+ params->u.initrd.size = ramdisk_size;
+ params = (struct tag *)((long *)params + params->hdr.size);
+ }
+ if (cmd_line_set) {
+ params->hdr.size = (ROUNDUP(strlen(cmd_line)) + sizeof(struct tag_header))/sizeof(long);
+ params->hdr.tag = ATAG_CMDLINE;
+ strcpy(params->u.cmdline.cmdline, cmd_line);
+ params = (struct tag *)((long *)params + params->hdr.size);
+ }
+ // Mark end of parameter list
+ params->hdr.size = 0;
+ params->hdr.tag = ATAG_NONE;
+
+ if (wait_time_set) {
+ int script_timeout_ms = wait_time * 1000;
+#ifdef CYGFUN_REDBOOT_BOOT_SCRIPT
+ unsigned char *hold_script = script;
+ script = (unsigned char *)0;
+#endif
+ diag_printf("About to start execution of image at %p, entry point %p - abort with ^C within %d seconds\n",
+ (void *)target, (void *)entry, wait_time);
+ while (script_timeout_ms >= CYGNUM_REDBOOT_CLI_IDLE_TIMEOUT) {
+ res = _rb_gets(line, sizeof(line), CYGNUM_REDBOOT_CLI_IDLE_TIMEOUT);
+ if (res == _GETS_CTRLC) {
+#ifdef CYGFUN_REDBOOT_BOOT_SCRIPT
+ script = hold_script; // Re-enable script
+#endif
+ return;
+ }
+ script_timeout_ms -= CYGNUM_REDBOOT_CLI_IDLE_TIMEOUT;
+ }
+ }
+ if (!base_addr_set) {
+ if ((base_addr == 0) || (length == 0)) {
+ // Probably not valid - don't try it
+ diag_printf("Base address unknown - use \"-b\" option\n");
+ return;
+ }
+ diag_printf("Using base address %p and length %p\n",
+ (void*)base_addr, (void*)length);
+ } else if (base_addr_set && !length_set) {
+ diag_printf("Length required for non-standard base address\n");
+ return;
+ }
+
+#ifdef CYGPKG_IO_ETH_DRIVERS
+ eth_drv_stop();
+#endif
+
+ HAL_DISABLE_INTERRUPTS(oldints);
+ HAL_DCACHE_SYNC();
+ HAL_ICACHE_DISABLE();
+ HAL_DCACHE_DISABLE();
+ HAL_DCACHE_SYNC();
+ HAL_ICACHE_INVALIDATE_ALL();
+ HAL_DCACHE_INVALIDATE_ALL();
+
+ // Tricky code. We are currently running with the MMU on and the
+ // memory map possibly convoluted from 1-1. The trampoline code
+ // between labels __tramp_start__ and __tramp_end__ must be copied
+ // to RAM and then executed at the non-mapped address.
+ //
+ // This magic was created in order to be able to execute standard
+ // Linux kernels with as little change/perturberance as possible.
+
+#ifdef CYGHWR_REDBOOT_LINUX_EXEC_X_SWITCH
+ if (swap_endian) {
+ // copy the trampline code
+ memcpy((char *)CYGHWR_REDBOOT_ARM_TRAMPOLINE_ADDRESS,
+ __xtramp_start__,
+ __xtramp_end__ - __xtramp_start__);
+
+ asm volatile (
+ CYGARC_HAL_MMU_OFF_X(%5)
+ "__xtramp_start__:\n"
+ " cmp %1,%4;\n" // Default kernel load address. Relocate
+ " beq 2f;\n" // kernel image there if necessary, and
+ " cmp %2,#0;\n" // if size is non-zero
+ " beq 2f;\n"
+ "1:\n"
+ " ldr r0,[%1],#4;\n"
+ " eor %5, r0, r0, ror #16;\n"
+ " bic %5, %5, #0x00ff0000;\n"
+ " mov r0, r0, ror #8;\n"
+ " eor r0, r0, %5, lsr #8;\n"
+ " str r0,[%4],#4;\n"
+ " subs %2,%2,#4;\n"
+ " bne 1b;\n"
+ "2:\n"
+ " mov r0,#0;\n" // Set board type
+ " mov r1,%3;\n" // Machine type
+ " mov r2,%6;\n" // Kernel parameters
+ " mov pc,%0;\n" // Jump to kernel
+ "__xtramp_end__:\n"
+ : :
+ "r"(entry),
+ "r"(CYGARC_PHYSICAL_ADDRESS(base_addr)),
+ "r"(length),
+ "r"(CYGHWR_REDBOOT_ARM_MACHINE_TYPE),
+ "r"(CYGHWR_REDBOOT_ARM_LINUX_EXEC_ADDRESS),
+ "r"(CYGARC_PHYSICAL_ADDRESS(CYGHWR_REDBOOT_ARM_TRAMPOLINE_ADDRESS)),
+ "r"(CYGARC_PHYSICAL_ADDRESS(CYGHWR_REDBOOT_ARM_LINUX_TAGS_ADDRESS))
+ : "r0", "r1"
+ );
+ }
+#endif // CYGHWR_REDBOOT_LINUX_EXEC_X_SWITCH
+
+ // copy the trampline code
+ memcpy((char *)CYGHWR_REDBOOT_ARM_TRAMPOLINE_ADDRESS,
+ __tramp_start__,
+ __tramp_end__ - __tramp_start__);
+
+ asm volatile (
+ CYGARC_HAL_MMU_OFF(%5)
+ "__tramp_start__:\n"
+ " cmp %1,%4;\n" // Default kernel load address. Relocate
+ " beq 2f;\n" // kernel image there if necessary, and
+ " cmp %2,#0;\n" // if size is non-zero
+ " beq 2f;\n"
+ "1:\n"
+ " ldr r0,[%1],#4;\n"
+ " str r0,[%4],#4;\n"
+ " subs %2,%2,#4;\n"
+ " bne 1b;\n"
+ "2:\n"
+ " mov r0,#0;\n" // Set board type
+ " mov r1,%3;\n" // Machine type
+ " mov r2,%6;\n" // Kernel parameters
+ " mov pc,%0;\n" // Jump to kernel
+ "__tramp_end__:\n"
+ : :
+ "r"(entry),
+ "r"(CYGARC_PHYSICAL_ADDRESS(base_addr)),
+ "r"(length),
+ "r"(CYGHWR_REDBOOT_ARM_MACHINE_TYPE),
+ "r"(target),
+ "r"(CYGARC_PHYSICAL_ADDRESS(CYGHWR_REDBOOT_ARM_TRAMPOLINE_ADDRESS)),
+ "r"(CYGARC_PHYSICAL_ADDRESS(CYGHWR_REDBOOT_ARM_LINUX_TAGS_ADDRESS))
+ : "r0", "r1"
+ );
+}
+
+#endif // HAL_PLATFORM_MACHINE_TYPE - otherwise we do not support this stuff...
+
+// EOF redboot_linux_exec.c
diff --git a/ecos/packages/hal/arm/arch/current/src/vectors.S b/ecos/packages/hal/arm/arch/current/src/vectors.S
new file mode 100644
index 0000000..014635e
--- /dev/null
+++ b/ecos/packages/hal/arm/arch/current/src/vectors.S
@@ -0,0 +1,1311 @@
+// #========================================================================
+// #
+// # vectors.S
+// #
+// # ARM exception vectors
+// #
+// #========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2009 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+// #========================================================================
+// ######DESCRIPTIONBEGIN####
+// #
+// # Author(s): nickg, gthomas
+// # Contributors: nickg, gthomas
+// # Date: 1999-02-20
+// # Purpose: ARM exception vectors
+// # Description: This file defines the code placed into the exception
+// # vectors. It also contains the first level default VSRs
+// # that save and restore state for both exceptions and
+// # interrupts.
+// #
+// #####DESCRIPTIONEND####
+// #
+// #========================================================================
+
+#include <pkgconf/hal.h>
+#include <pkgconf/hal_arm.h>
+#ifdef CYGPKG_KERNEL // no CDL yet
+#include <pkgconf/kernel.h>
+#else
+# undef CYGFUN_HAL_COMMON_KERNEL_SUPPORT
+# undef CYGIMP_HAL_COMMON_INTERRUPTS_USE_INTERRUPT_STACK
+#endif
+#include <cyg/hal/hal_platform_setup.h>
+
+#ifdef CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS
+// The CDL should enforce this
+#undef CYGHWR_HAL_ARM_DUMP_EXCEPTIONS
+#endif
+
+#include "arm.inc"
+
+#ifdef __thumb__
+// Switch to thumb mode
+#define THUMB_MODE(_r_, _l_) \
+ ldr _r_,=_l_ ## f+1 ;\
+ bx _r_ ;\
+ .pool ;\
+ .code 16 ;\
+ .thumb_func ;\
+ _l_:
+
+// Call thumb function from ARM mode, return to ARM
+// mode afterwards
+#define THUMB_CALL(_r_, _l_, _f_) \
+ ldr _r_,=_f_+1 ;\
+ mov lr,pc ;\
+ bx _r_ ;\
+ .pool ;\
+ .code 16 ;\
+ .thumb_func ;\
+ ldr _r_,=_l_ ## f ;\
+ bx _r_ ;\
+ .pool ;\
+ .code 32 ;\
+ _l_:
+
+// Switch to ARM mode
+#define ARM_MODE(_r_, _l_) \
+ ldr _r_,=_l_ ## f ;\
+ bx _r_ ;\
+ .pool ;\
+ .code 32 ;\
+ _l_:
+
+// Function definition, start executing body in ARM mode
+#define FUNC_START_ARM(_name_, _r_) \
+ .code 16 ;\
+ .thumb_func ;\
+ .globl _name_ ;\
+ .type _name_, function ;\
+_name_: ;\
+ ldr _r_,=_name_ ## _ARM ;\
+ bx _r_ ;\
+ .code 32 ;\
+_name_ ## _ARM:
+
+#else
+
+// Switch to thumb mode
+#define THUMB_MODE(_r_, _l_)
+
+// Call ARM function
+#define THUMB_CALL(_r_, _l_, _f_) \
+ bl _f_
+
+// Switch to ARM mode
+#define ARM_MODE(_r_, _l_)
+
+// Function definition, start executing body in ARM mode
+#define FUNC_START_ARM(_name_, _r_) \
+ .globl _name_; \
+ .type _name_, function ;\
+_name_:
+
+#endif
+
+
+
+#define PTR(name) \
+.##name: .word name
+
+// CYGHWR_HAL_ROM_VADDR is used when compiling for a different location
+// from the base of ROM. hal_platform_setup.h might define it. For
+// example, if flash is from 0x50000000 upwards (as on SA11x0), and we are
+// to execute at 0x50040000, then we want the reset vector to point to
+// 0x0004pqrs - the unmapped ROM address of the code - rather than
+// 0x0000pqrs, which is the offset into our flash block.
+//
+// But usually it's not defined, so the behaviour is the obvious.
+
+#ifndef UNMAPPED
+#ifdef CYGHWR_HAL_ARM_HAS_MMU
+# ifndef CYGHWR_HAL_ROM_VADDR
+# define CYGHWR_HAL_ROM_VADDR __exception_handlers
+# endif
+# define UNMAPPED(x) ((x)-CYGHWR_HAL_ROM_VADDR)
+#else
+# define UNMAPPED(x) (x)
+#endif
+#endif
+
+#define UNMAPPED_PTR(name) \
+.##name: .word UNMAPPED(name)
+
+// .file "vectors.S"
+
+
+// CYGHWR_LED_MACRO can be defined in hal_platform_setup.h. It's free to
+// use r0+r1. Argument is in "\x" - cannot use macro arguments since the
+// macro may contain #-chars and use of arguments cause these to be
+// interpreted as CPP stringify operators.
+// See example in PID hal_platform_setup.h.
+#ifndef CYGHWR_LED_MACRO
+#define CYGHWR_LED_MACRO
+#endif
+
+.macro LED x
+ CYGHWR_LED_MACRO
+.endm
+
+
+//==========================================================================
+// Hardware exception vectors.
+// This entire section will be copied to the vector table base (by default at
+// location 0x0000) at startup time.
+//
+
+#ifndef CYGHWR_HAL_VECTOR_TABLE_BASE
+# define CYGHWR_HAL_VECTOR_TABLE_BASE 0x0
+#endif /* ifdef CYGHWR_HAL_VECTOR_TABLE_BASE */
+
+ .code 32
+ .section ".vectors","ax"
+
+// This macro allows platforms to add their own code at the very start of
+// the image. This may be required in some circumstances where eCos ROM
+// based code does not run immediately upon reset and/or when some sort of
+// special header is required at the start of the image.
+#ifdef PLATFORM_PREAMBLE
+ PLATFORM_PREAMBLE
+#endif
+
+ .global __exception_handlers
+__exception_handlers:
+#ifdef CYGSEM_HAL_ROM_RESET_USES_JUMP
+// Assumption: ROM code has these vectors at the hardware reset address.
+// A simple jump removes any address-space dependencies [i.e. safer]
+ b reset_vector // 0x00
+#else
+ ldr pc,.reset_vector // 0x00
+#endif
+ ldr pc,.undefined_instruction // 0x04
+ ldr pc,.software_interrupt // 0x08 start && software int
+ ldr pc,.abort_prefetch // 0x0C
+ ldr pc,.abort_data // 0x10
+#ifdef CYGNUM_HAL_ARM_VECTOR_0x14
+ .word CYGNUM_HAL_ARM_VECTOR_0x14
+#else
+ .word 0 // unused
+#endif
+ ldr pc,.IRQ // 0x18
+ ldr pc,.FIQ // 0x1C
+
+// The layout of these pointers should match the vector table above since
+// they are copied in pairs.
+ .global vectors
+vectors:
+UNMAPPED_PTR(reset_vector) // 0x20
+PTR(undefined_instruction) // 0x24
+PTR(software_interrupt) // 0x28
+PTR(abort_prefetch) // 0x2C
+PTR(abort_data) // 0x30
+ .word 0 // 0x34
+PTR(IRQ) // 0x38
+PTR(FIQ) // 0x3c
+#ifdef CYGSEM_HAL_ARM_PID_ANGEL_BOOT
+PTR(start) // This is copied to 0x28 for bootup // 0x40
+#endif
+ // location 0x40 is used for storing DRAM size if known
+ // for some platforms.
+
+//
+// "Vectors" - fixed location data items
+// This section contains any data which might be shared between
+// an eCos application and any other environment, e.g. the debug
+// ROM.
+//
+ .section ".fixed_vectors"
+ // Interrupt/exception VSR pointers
+ .globl hal_vsr_table
+hal_vsr_table:
+ .rept 8
+ .long 0
+ .endr
+
+ .globl hal_dram_size
+hal_dram_size:
+ .long 0
+ // what, if anything, hal_dram_type means is up to the platform
+ .globl hal_dram_type
+hal_dram_type:
+ .long 0
+
+ .balign 16
+#ifdef CYGSEM_HAL_VIRTUAL_VECTOR_SUPPORT
+ // Vectors used to communicate between eCos and ROM environments
+ .globl hal_virtual_vector_table
+hal_virtual_vector_table:
+ .rept CYGNUM_CALL_IF_TABLE_SIZE
+ .long 0
+ .endr
+#endif
+
+#ifdef CYGHWR_HAL_ARM_ICE_THREAD_SUPPORT
+ .balign 16 // Should be at 0x50
+ice_thread_vector:
+ .long 0 // Must be 'MICE'
+ .long 0 // Pointer to thread support vector
+ .long 0 // eCos executing flag
+ .long 0 // Must be 'GDB '
+#endif // CYGHWR_HAL_ARM_ICE_THREAD_SUPPORT
+ .balign 32
+
+// Other vectors - this may include "fixed" locations
+#ifdef PLATFORM_VECTORS
+ PLATFORM_VECTORS
+#endif
+
+ .text
+// Startup code which will get the machine into supervisor mode
+ .global reset_vector
+ .type reset_vector,function
+reset_vector:
+ PLATFORM_SETUP1 // Early stage platform initialization
+ // which can set DRAM size at 0x40
+ // see <cyg/hal/hal_platform_setup.h>
+
+ // Come here to reset board
+warm_reset:
+
+#if defined(CYG_HAL_STARTUP_RAM) && \
+ !defined(CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS)
+ mrs r7,cpsr // move back to IRQ mode
+ and r7,r7,#CPSR_MODE_BITS
+ cmp r7,#CPSR_SUPERVISOR_MODE
+ beq start
+#endif
+
+ // We cannot access any LED registers until after PLATFORM_SETUP1
+ LED 7
+
+ mov r0,#0 // move vectors
+ ldr r1,=__exception_handlers
+#ifndef CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS
+ // Wait with this if stubs are included (see further down).
+ ldr r2,[r1,#0x04] // undefined instruction
+ str r2,[r0,#0x04]
+ ldr r2,[r1,#0x24]
+ str r2,[r0,#0x24]
+#endif
+ ldr r2,[r1,#0x08] // software interrupt
+ str r2,[r0,#0x08]
+
+#ifdef CYGHWR_HAL_ARM_ICE_THREAD_SUPPORT
+ ldr r2,=ice_thread_vector
+ sub r2,r2,r1 // compute fixed (low memory) address
+ ldr r3,=0x4D494345 // 'MICE'
+ str r3,[r2],#4
+ ldr r3,=hal_arm_ice_thread_handler
+ str r3,[r2],#4
+ mov r3,#1
+ str r3,[r2],#4
+ ldr r3,=0x47444220 // 'GDB '
+ str r3,[r2],#4
+#endif // CYGHWR_HAL_ARM_ICE_THREAD_SUPPORT
+
+#if defined(CYGSEM_HAL_ARM_PID_ANGEL_BOOT)
+// Ugly hack to get into supervisor mode
+ ldr r2,[r1,#0x40]
+ str r2,[r0,#0x28]
+
+ LED 6
+
+ swi // switch to supervisor mode
+#endif
+
+// =========================================================================
+// Real startup code. We jump here from the reset vector to set up the world.
+ .globl start
+ .type start,function
+start:
+
+ LED 5
+
+#if defined(CYG_HAL_STARTUP_RAM) && \
+ !defined(CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS)
+// If we get restarted, hang here to avoid corrupting memory
+ ldr r0,.init_flag
+ ldr r1,[r0]
+1: cmp r1,#0
+ bne 1b
+ ldr r1,init_done
+ str r1,[r0]
+#endif
+
+ // Reset software interrupt pointer
+ ldr r0,=CYGHWR_HAL_VECTOR_TABLE_BASE // move vectors
+ ldr r1,.__exception_handlers
+#if defined(CYG_HAL_STARTUP_RAM) && \
+ !defined(CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS)
+ cmp r7,#CPSR_SUPERVISOR_MODE
+ beq 10f
+#endif
+ ldr r2,[r1,#HAL_ARM_SWI_VECTOR_ADDR] // software interrupt
+ str r2,[r0,#HAL_ARM_SWI_VECTOR_ADDR]
+10:
+ ldr r2,[r1,#HAL_ARM_IRQ_VECTOR] // IRQ
+ str r2,[r0,#HAL_ARM_IRQ_VECTOR]
+ ldr r2,[r1,#HAL_ARM_IRQ_VECTOR_ADDR]
+ str r2,[r0,#HAL_ARM_IRQ_VECTOR_ADDR]
+ ldr r2,[r1,#HAL_ARM_FIQ_VECTOR] // FIQ
+ str r2,[r0,#HAL_ARM_FIQ_VECTOR]
+ ldr r2,[r1,#HAL_ARM_FIQ_VECTOR_ADDR]
+ str r2,[r0,#HAL_ARM_FIQ_VECTOR_ADDR]
+ ldr r2,[r1,#HAL_ARM_PREFETCH_VECTOR] // abort (prefetch)
+ str r2,[r0,#HAL_ARM_PREFETCH_VECTOR]
+ ldr r2,[r1,#HAL_ARM_PREFETCH_VECTOR_ADDR]
+ str r2,[r0,#HAL_ARM_PREFETCH_VECTOR_ADDR]
+ ldr r2,[r1,#HAL_ARM_ABORT_VECTOR] // abort (data)
+ str r2,[r0,#HAL_ARM_ABORT_VECTOR]
+ ldr r2,[r1,#HAL_ARM_ABORT_VECTOR_ADDR]
+ str r2,[r0,#HAL_ARM_ABORT_VECTOR_ADDR]
+
+ LED 4
+
+#if defined(CYG_HAL_STARTUP_ROM) || defined(CYG_HAL_STARTUP_ROMRAM)
+ // Set up reset vector
+ ldr r0,=CYGHWR_HAL_VECTOR_TABLE_BASE
+ ldr r1,.__exception_handlers
+# ifndef CYGSEM_HAL_KEEP_RESET_VECTOR
+ ldr r2,[r1,#HAL_ARM_RESET_VECTOR] // reset vector instruction
+ str r2,[r0,#HAL_ARM_RESET_VECTOR]
+# ifndef CYGSEM_HAL_ROM_RESET_USES_JUMP // if using jump, reset vector address is not referenced
+ ldr r2,=warm_reset
+ str r2,[r0,#HAL_ARM_RESET_VECTOR_ADDR]
+# endif
+# endif
+ // Relocate [copy] data from ROM to RAM
+ ldr r3,.__rom_data_start
+ ldr r4,.__ram_data_start
+ ldr r5,.__ram_data_end
+ cmp r4,r5 // jump if no data to move
+ beq 2f
+ sub r3,r3,#4 // loop adjustments
+ sub r4,r4,#4
+1: ldr r0,[r3,#4]! // copy info
+ str r0,[r4,#4]!
+ cmp r4,r5
+ bne 1b
+2:
+#endif
+
+ // initialize interrupt/exception environments
+ ldr sp,.__startup_stack
+ mov r0,#(CPSR_IRQ_DISABLE|CPSR_FIQ_DISABLE|CPSR_IRQ_MODE)
+ msr cpsr,r0
+ ldr sp,.__exception_stack
+ mov r0,#(CPSR_IRQ_DISABLE|CPSR_FIQ_DISABLE|CPSR_UNDEF_MODE)
+ msr cpsr,r0
+ ldr sp,.__exception_stack
+#ifndef CYGOPT_HAL_ARM_FIQ_DISABLE
+ mov r0,#(CPSR_IRQ_DISABLE|CPSR_FIQ_DISABLE|CPSR_FIQ_MODE)
+ msr cpsr,r0
+ ldr sp,.__fiq_stack
+#endif
+
+ // initialize CPSR (machine state register)
+ mov r0,#(CPSR_IRQ_DISABLE|CPSR_FIQ_DISABLE|CPSR_SUPERVISOR_MODE)
+ msr cpsr,r0
+
+ // Note: some functions in LIBGCC1 will cause a "restore from SPSR"!!
+ msr spsr,r0
+
+ // initialize stack
+#ifdef CYGIMP_HAL_COMMON_INTERRUPTS_USE_INTERRUPT_STACK
+ // use interrupt stack for system initialization since it's bigger
+ // than the "startup" stack in this configuration
+ ldr sp,.__interrupt_stack
+#else
+ ldr sp,.__startup_stack
+#endif
+
+ // clear BSS
+ ldr r1,.__bss_start
+ ldr r2,.__bss_end
+ mov r0,#0
+ cmp r1,r2
+ beq 2f
+1: str r0,[r1],#4
+ cmp r2,r1
+ bhi 1b
+2:
+
+ // Run kernel + application in THUMB mode
+ THUMB_MODE(r1,10)
+
+ LED 3
+
+ // Call platform specific hardware initialization
+ bl hal_hardware_init
+
+#ifdef CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS
+ bl initialize_stub
+
+ // Now that stub is initialized, change vector. It is possible
+ // to single-step through most of the init code, except the below.
+ // Put a breakpoint at the call to cyg_hal_invoke_constructors to
+ // pass over this bit (s-s depends on internal state in the stub).
+#endif
+
+#if defined(CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS) || \
+ defined(CYGIMP_HAL_PROCESS_ALL_EXCEPTIONS)
+ mov r0,#0 // move vectors
+ ldr r1,=__exception_handlers
+ ldr r2,[r1,#0x04] // undefined instruction
+ str r2,[r0,#0x04]
+ ldr r2,[r1,#0x24]
+ str r2,[r0,#0x24]
+#endif
+
+#if defined(CYGDBG_HAL_DEBUG_GDB_CTRLC_SUPPORT) \
+ || defined(CYGDBG_HAL_DEBUG_GDB_BREAK_SUPPORT)
+ .extern hal_ctrlc_isr_init
+ bl hal_ctrlc_isr_init
+#endif
+
+ LED 2
+
+ // Run through static constructors
+ bl cyg_hal_invoke_constructors
+
+ LED 1
+
+ // This starts up the eCos kernel
+#ifdef CYGIMP_HAL_COMMON_INTERRUPTS_USE_INTERRUPT_STACK
+ ldr r1,=__startup_stack
+ mov sp,r1
+#endif
+ bl cyg_start
+_start_hang:
+ b _start_hang
+ .code 32
+
+ .global reset_platform
+ .type reset_platform,function
+reset_platform:
+#ifdef CYGSEM_HAL_ROM_MONITOR
+ // initialize CPSR (machine state register)
+ mov r0,#(CPSR_IRQ_DISABLE|CPSR_FIQ_DISABLE|CPSR_SUPERVISOR_MODE)
+ msr cpsr,r0
+ b warm_reset
+#else
+ mov r0,#0
+ mov pc,r0 // Jump to reset vector
+#endif
+
+init_done:
+ .long 0xDEADB00B
+
+//
+// Exception handlers
+// Assumption: get here from a non-user context [mode]
+// except in case of standalone app. running in user mode
+// (CYGOPT_HAL_ARM_WITH_USER_MODE should have been defined)
+//
+ .code 32
+undefined_instruction:
+ ldr sp,.__undef_exception_stack // get good stack
+ stmfd sp!,{r0-r5} // save some supervisor regs
+ mrs r1,spsr
+ tst r1,#CPSR_THUMB_ENABLE
+ subeq r0,lr,#4 // PC at time of interrupt (ARM)
+ subne r0,lr,#2 // PC at time of interrupt (thumb)
+ mov r2,#CYGNUM_HAL_EXCEPTION_ILLEGAL_INSTRUCTION
+ mov r3,sp
+ b call_exception_handler
+
+ .code 32
+software_interrupt:
+ stmfd sp!,{r8}
+ ldr r8,.__undef_exception_stack // get good stack
+ stmfd r8!,{r0-r5} // save some supervisor regs
+ mov r3,r8
+ ldmfd sp!,{r8}
+ mrs r1,spsr
+ tst r1,#CPSR_THUMB_ENABLE
+ subeq r0,lr,#4 // PC at time of SWI (ARM)
+ subne r0,lr,#2 // PC at time of SWI (thumb)
+ mov r2,#CYGNUM_HAL_EXCEPTION_INTERRUPT
+ b call_exception_handler
+
+ .code 32
+abort_prefetch:
+ ldr sp,.__undef_exception_stack // get good stack
+ stmfd sp!,{r0-r5} // save some supervisor regs
+ sub r0,lr,#4 // PC at time of interrupt
+ mrs r1,spsr
+ mov r2,#CYGNUM_HAL_EXCEPTION_CODE_ACCESS
+ mov r3,sp
+ b call_exception_handler
+
+ .code 32
+abort_data:
+ ldr sp,.__undef_exception_stack // get good stack
+ stmfd sp!,{r0-r5} // save some supervisor regs
+ sub r0,lr,#4 // PC at time of interrupt
+ mrs r1,spsr
+ mov r2,#CYGNUM_HAL_EXCEPTION_DATA_ACCESS
+ mov r3,sp
+ b call_exception_handler
+
+//
+// Dispatch an exception handler.
+
+ .code 32
+call_exception_handler:
+ //
+ // On Entry:
+ //
+ // r4,r5 = scratch
+ // r3 = pointer to temp save area
+ // r2 = vector number
+ // r1 = exception psr
+ // r0 = exception pc
+ //
+ // [r3+20]: exception r5
+ // [r3+16]: exception r4
+ // [r3+12]: exception r3
+ // [r3+8] : exception r2
+ // [r3+4] : exception r1
+ // [r3] : exception r0
+
+ mrs r4,cpsr // switch to Supervisor Mode
+ bic r4,r4,#CPSR_MODE_BITS
+ orr r4,r4,#CPSR_SUPERVISOR_MODE
+ msr cpsr,r4
+
+ mov r5,sp // save original svc sp
+ mov r4,lr // and original svc lr
+#ifdef CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS
+ // Make sure we use the GDB stack.
+ ldr sp,.__GDB_stack
+ cmp r5,sp // already on GDB stack?
+ bhi 10f
+ ldr r4,.__GDB_stack_base
+ cmp r5,r4
+ movhi sp,r5
+10:
+#endif
+ //
+ // r5 holds original svc sp, current sp is stack to use
+ // r4 holds original svc lr, which must also be preserved
+ //
+
+ stmfd sp!,{r0-r2,r4,r5} // push svc_sp, svc_lr, vector, psr, pc
+
+#ifdef CYGOPT_HAL_ARM_WITH_USER_MODE
+ // did exception occur in user mode ?
+ and r2, r1, #CPSR_MODE_BITS
+ cmp r2, #CPSR_USER_MODE
+ bne 1f
+ stmfd sp, {r8-r12, sp, lr}^ // get user mode regs
+ nop
+ sub sp, sp, #4*7
+ bal 2f
+1:
+#endif
+ // switch to pre-exception mode to get banked regs
+ mov r0,sp // r0 survives mode switch
+ mrs r2,cpsr // Save current psr for return
+ orr r1,r1,#CPSR_IRQ_DISABLE|CPSR_FIQ_DISABLE
+ bic r1,r1,#CPSR_THUMB_ENABLE
+ msr cpsr,r1
+ stmfd r0!,{r8-r12,sp,lr}
+ msr cpsr,r2 // back to svc mode
+ mov sp,r0 // update stack pointer
+2:
+ // now save pre-exception r0-r7 on current stack
+ ldmfd r3,{r0-r5}
+ stmfd sp!,{r0-r7}
+
+ // SP needs fixing if exception occured in SVC mode.
+ // The original SVC LR is still in place so that
+ // does not need to be fixed here.
+ ldr r1,[sp,#armreg_cpsr]
+ and r1,r1,#CPSR_MODE_BITS
+ cmp r1,#CPSR_SUPERVISOR_MODE
+ ldreq r1,[sp,#armreg_svcsp]
+ streq r1,[sp,#armreg_sp]
+
+#ifdef CYGHWR_HAL_ARM_DUMP_EXCEPTIONS
+ mov r0,sp
+ ldr r1,.__dump_procs
+ ldr r2,[sp,#armreg_vector]
+ ldr r1,[r1,r2,lsl #2]
+ THUMB_MODE(r9,10)
+ mov lr,pc
+ mov pc,r1
+#else
+ THUMB_MODE(r9,10)
+#endif
+
+ // call exception handler
+ mov r0,sp
+ bl exception_handler
+
+#ifdef CYGHWR_HAL_ARM_DUMP_EXCEPTIONS
+ mov r0,sp
+ bl cyg_hal_report_exception_handler_returned
+#endif
+
+ ARM_MODE(r1,10)
+
+ //
+ // Return from exception
+ //
+return_from_exception:
+
+ ldr r0,[sp,#armreg_cpsr]
+
+ // return to supervisor mode is simple
+ and r1,r0,#CPSR_MODE_BITS
+ cmp r1,#CPSR_SUPERVISOR_MODE
+
+#ifndef CYGOPT_HAL_ARM_PRESERVE_SVC_SPSR
+ msr spsr,r0
+ ldmeqfd sp,{r0-r14,pc}^
+#else
+ // we must take care of not corrupting the current (svc)
+ // spsr which happens to be also the pre-exception spsr
+ bne 1f
+ tst r0, #CPSR_THUMB_ENABLE
+
+ // when returning to thumb/svc mode, there is no easy way to preserve
+ // spsr. It is possible to do so, but would add a lot of instructions.
+ // The purpose of CYGOPT_HAL_ARM_PRESERVE_SVC_SPSR is to allow stepping
+ // through SWI exception handling code, so not preserving spsr in this
+ // case should be okay.
+ msrne spsr,r0
+ ldmnefd sp,{r0-r14,pc}^
+
+ // we are returning to arm/svc mode thus we must restore the
+ // pre-exception cpsr before returning to interrupted code
+ msr cpsr, r0
+ ldmfd sp, {r0-r14, pc}
+1:
+ // we are not returning to svc mode thus we can safely restore
+ // svc spsr
+ msr spsr, r0
+#endif
+
+#ifdef CYGOPT_HAL_ARM_WITH_USER_MODE
+ // are we returning to user mode ?
+ and r2, r1, #CPSR_MODE_BITS
+ cmp r2, #CPSR_USER_MODE
+ add r2, sp, #armreg_r8
+ bne 1f
+ ldmfd r2, {r8-r14}^ // restore user mode regs
+ nop
+ bal 2f
+1:
+#else
+ add r2, sp, #armreg_r8
+#endif
+ //
+ // return to other non-user modes is a little trickier
+ //
+
+ // switch to pre-exception mode and restore r8-r14
+ mrs r1,cpsr
+ orr r0,r0,#CPSR_IRQ_DISABLE|CPSR_FIQ_DISABLE
+ bic r0,r0,#CPSR_THUMB_ENABLE
+ msr cpsr,r0
+ ldmfd r2,{r8-r14}
+ msr cpsr, r1 // back to svc mode
+
+2:
+ // move sp,lr and pc for final load
+ ldr r0,[sp,#armreg_svcsp]
+ str r0,[sp,#armreg_r8]
+ ldr r0,[sp,#armreg_svclr]
+ str r0,[sp,#armreg_r9]
+ ldr r0,[sp,#armreg_pc]
+ str r0,[sp,#armreg_r10]
+
+ // restore r0-r7,sp,lr and return from exception
+ ldmfd sp,{r0-r7,sp,lr,pc}^
+
+#ifdef CYGHWR_HAL_ARM_DUMP_EXCEPTIONS
+__dump_procs:
+ .word 0 // placeholder for reset
+ .word cyg_hal_report_undefined_instruction
+ .word cyg_hal_report_software_interrupt
+ .word cyg_hal_report_abort_prefetch
+ .word cyg_hal_report_abort_data
+ .word 0 // reserved
+#endif
+
+
+// Handle device interrupts
+// This is slightly more complicated than the other exception handlers because
+// it needs to interface with the kernel (if present).
+// Assumption: can get here from any mode, including user mode
+// (spurious interrupt while standalone app. is running in user mode)
+
+ .code 32
+FIQ:
+#ifndef CYGOPT_HAL_ARM_FIQ_DISABLE
+ // If we are not disabling FIQs as part of eCos, these will be under
+ // user control. In theory the user should have installed their own
+ // FIQ VSR before enabling them and we should never come here. If
+ // we do there is nothing eCos itself can do because we are outside
+ // the scope of the system. The default action here, then, is to simply
+ // mask FIQs and return.
+ mrs r8,spsr // CPSR at time of interrupt
+ orr r8,r8,#CPSR_FIQ_DISABLE
+ msr spsr,r8
+ subs pc,lr,#4
+#else
+ // We can get here from any non-user mode.
+ mrs r8,spsr // CPSR at time of interrupt
+ and r9,r8,#CPSR_MODE_BITS // isolate pre-interrupt mode
+ cmp r9,#CPSR_IRQ_MODE
+ bne 1f
+ // If FIQ interrupted IRQ mode, just return with FIQ disabled.
+ // The common interrupt handling takes care of the rest.
+ orr r8,r8,#CPSR_FIQ_DISABLE
+ msr spsr,r8
+ subs pc,lr,#4
+ 1:
+ // If FIQ interrupted other non-user mode, switch to IRQ mode and
+ // fall through to IRQ handler.
+ ldr sp,.__exception_stack // get good stack to save lr and spsr
+ stmdb sp,{r8,lr}
+ mov r8,#CPSR_IRQ_MODE|CPSR_FIQ_DISABLE|CPSR_IRQ_DISABLE
+ msr cpsr,r8 // switch to IRQ mode
+ ldr sp,.__exception_stack // get regs saved in FIQ mode
+ ldmdb sp,{sp,lr}
+ msr spsr,sp
+
+ // now it looks like we got an IRQ instead of an FIQ except that
+ // FIQ is disabled so we don't recurse.
+#endif
+IRQ:
+ // Note: I use this exception stack while saving the context because
+ // the current SP does not seem to be always valid in this CPU mode.
+ ldr sp,.__exception_stack // get good stack
+ stmfd sp!,{r0-r5} // save some supervisor regs
+ sub r0,lr,#4 // PC at time of interrupt
+ mrs r1,spsr
+ mov r2,#CYGNUM_HAL_VECTOR_IRQ
+ mov r3,sp
+
+ mrs r4,cpsr // switch to Supervisor Mode
+
+#ifdef CYGOPT_HAL_ARM_FIQ_DISABLE
+ // Due to a small chance of contention with FIQ,
+ // we should disable FIQ while still in IRQ mode and then
+ // change to SVC mode. This only applies when eCos is masking
+ // FIQ alongside IRQ, otherwise FIQs are outside eCos' control
+ // and the FIQ to IRQ translation doesn't happen.
+ orr r4,r4,#CPSR_FIQ_DISABLE
+ msr cpsr,r4
+#endif
+
+ bic r4,r4,#CPSR_MODE_BITS
+ // When handling an IRQ we must disable FIQ unless the current
+ // mode in CPSR is IRQ. If we were to get a FIQ while in another
+ // mode, the FIQ handling code would transform the FIQ into an
+ // IRQ and call the non-reentrant IRQ handler again. As a result,
+ // for example, the stack pointer would be set to the beginning
+ // of the exception_stack clobbering the registers we have just
+ // saved.
+ // However, if we are allowing the user to handle their own
+ // FIQs, we don't need to do that, since FIQ will not be
+ // translated to IRQ.
+ orr r4,r4,#CPSR_SUPERVISOR_MODE|CPSR_INTR_MASK
+ msr cpsr,r4
+
+ mov r5,sp // save original svc sp
+ mov r4,lr // save original svc lr
+ stmfd sp!,{r0-r2,r4,r5} // push svc_sp, svc_lr, vector, psr, pc
+
+#ifdef CYGOPT_HAL_ARM_WITH_USER_MODE
+ // did exception occur in user mode ?
+ and r2, r1, #CPSR_MODE_BITS
+ cmp r2, #CPSR_USER_MODE
+ bne 1f
+ stmfd sp, {r8-r12, sp, lr}^ // get user mode regs
+ nop
+ sub sp, sp, #4*7
+ bal 2f
+1:
+#endif
+ // switch to pre-exception mode to get banked regs
+ mov r0,sp // r0 survives mode switch
+ mrs r2,cpsr // Save current psr for return
+ orr r1,r1,#CPSR_IRQ_DISABLE|CPSR_FIQ_DISABLE
+ bic r1,r1,#CPSR_THUMB_ENABLE
+ msr cpsr,r1
+ stmfd r0!,{r8-r12,sp,lr}
+ msr cpsr,r2 // back to svc mode
+ mov sp,r0 // update stack pointer
+
+2:
+ // now save pre-exception r0-r7 on current stack
+ ldmfd r3,{r0-r5}
+ stmfd sp!,{r0-r7}
+
+ // sp needs fixing if exception occured in SVC mode.
+ ldr r1,[sp,#armreg_cpsr]
+ and r1,r1,#CPSR_MODE_BITS
+ cmp r1,#CPSR_SUPERVISOR_MODE
+ ldreq r1,[sp,#armreg_svcsp]
+ streq r1,[sp,#armreg_sp]
+
+ mov v6,sp // Save pointer to register frame
+
+// mov r0,sp
+// bl _show_frame_in
+
+#ifdef CYGIMP_HAL_COMMON_INTERRUPTS_USE_INTERRUPT_STACK
+ // Switch to interrupt stack
+ ldr r2,.irq_level // current number of nested interrupts
+ ldr r0,[r2]
+ add r1,r0,#1
+ str r1,[r2] // if was zero, switch stacks
+ cmp r0,#0
+ moveq r1,sp // save old stack pointer
+ ldreq sp,.__interrupt_stack
+ stmeqfd sp!,{r1}
+10:
+#endif
+
+ // The entire CPU state is now stashed on the stack,
+ // increment the scheduler lock and handle the interrupt
+
+#ifdef CYGFUN_HAL_COMMON_KERNEL_SUPPORT
+ .extern cyg_scheduler_sched_lock
+ ldr r3,.cyg_scheduler_sched_lock
+ ldr r4,[r3]
+ add r4,r4,#1
+ str r4,[r3]
+#endif
+
+ THUMB_MODE(r3,10)
+
+ mov r0,v6
+ bl hal_IRQ_handler // determine interrupt source
+ mov v1,r0 // returned vector #
+
+#if defined(CYGPKG_KERNEL_INSTRUMENT) && \
+ defined(CYGDBG_KERNEL_INSTRUMENT_INTR)
+ ldr r0,=RAISE_INTR // arg0 = type = INTR,RAISE
+ mov r1,v1 // arg1 = vector
+ mov r2,#0 // arg2 = 0
+ bl cyg_instrument // call instrument function
+#endif
+
+ ARM_MODE(r0,10)
+
+ mov r0,v1 // vector #
+
+#if defined(CYGDBG_HAL_DEBUG_GDB_CTRLC_SUPPORT) \
+ || defined(CYGDBG_HAL_DEBUG_GDB_BREAK_SUPPORT)
+ // If we are supporting Ctrl-C interrupts from GDB, we must squirrel
+ // away a pointer to the save interrupt state here so that we can
+ // plant a breakpoint at some later time.
+
+ .extern hal_saved_interrupt_state
+ ldr r2,=hal_saved_interrupt_state
+ str v6,[r2]
+#endif
+
+ cmp r0,#CYGNUM_HAL_INTERRUPT_NONE // spurious interrupt
+ bne 10f
+
+#ifdef CYGIMP_HAL_COMMON_INTERRUPTS_IGNORE_SPURIOUS
+ // Acknowledge the interrupt
+ THUMB_CALL(r1,12,hal_interrupt_acknowledge)
+#else
+ mov r0,v6 // register frame
+ THUMB_CALL(r1,12,hal_spurious_IRQ)
+#endif // CYGIMP_HAL_COMMON_INTERRUPTS_IGNORE_SPURIOUS
+ b spurious_IRQ
+
+10: ldr r1,.hal_interrupt_data
+ ldr r1,[r1,v1,lsl #2] // handler data
+ ldr r2,.hal_interrupt_handlers
+ ldr v3,[r2,v1,lsl #2] // handler (indexed by vector #)
+ mov r2,v6 // register frame (this is necessary
+ // for the ISR too, for ^C detection)
+
+#ifdef __thumb__
+ ldr lr,=10f
+ bx v3 // invoke handler (thumb mode)
+ .pool
+ .code 16
+ .thumb_func
+IRQ_10T:
+10: ldr r2,=15f
+ bx r2 // switch back to ARM mode
+ .pool
+ .code 32
+15:
+IRQ_15A:
+#else
+ mov lr,pc // invoke handler (call indirect
+ mov pc,v3 // thru v3)
+#endif
+
+spurious_IRQ:
+
+#ifdef CYGIMP_HAL_COMMON_INTERRUPTS_USE_INTERRUPT_STACK
+ // If we are returning from the last nested interrupt, move back
+ // to the thread stack. interrupt_end() must be called on the
+ // thread stack since it potentially causes a context switch.
+ ldr r2,.irq_level
+ ldr r3,[r2]
+ subs r1,r3,#1
+ str r1,[r2]
+ ldreq sp,[sp] // This should be the saved stack pointer
+#endif
+ // The return value from the handler (in r0) will indicate whether a
+ // DSR is to be posted. Pass this together with a pointer to the
+ // interrupt object we have just used to the interrupt tidy up routine.
+
+ // don't run this for spurious interrupts!
+ cmp v1,#CYGNUM_HAL_INTERRUPT_NONE
+ beq 17f
+ ldr r1,.hal_interrupt_objects
+ ldr r1,[r1,v1,lsl #2]
+ mov r2,v6 // register frame
+
+ THUMB_MODE(r3,10)
+
+ bl interrupt_end // post any bottom layer handler
+ // threads and call scheduler
+ ARM_MODE(r1,10)
+17:
+
+// mov r0,sp
+// bl show_frame_out
+
+ // return from IRQ is same as return from exception
+ b return_from_exception
+
+#ifdef CYGIMP_HAL_COMMON_INTERRUPTS_USE_INTERRUPT_STACK
+// Execute pending DSRs the interrupt stack
+// Note: this can only be called from code running on a thread stack
+FUNC_START_ARM(hal_interrupt_stack_call_pending_DSRs, r1)
+ stmfd sp!,{r4,r5,lr}
+ // Disable interrupts
+ mrs r4,cpsr // disable IRQ's
+ orr r2,r4,#CPSR_INTR_MASK
+ bic r5,r4,#CPSR_INTR_MASK
+ msr cpsr,r2
+ // Switch to interrupt stack
+ mov r3,sp // save old stack pointer
+ ldr sp,.__interrupt_stack
+ stmfd sp!,{r3} // stored at top of interrupt stack
+ ldr r2,.irq_level // current number of nested interrupts
+ ldr r3,[r2]
+ add r3,r3,#1 // bump nesting level
+ str r3,[r2]
+ msr cpsr,r5 // enable interrupts
+
+ THUMB_MODE(r1,20)
+
+ bl cyg_interrupt_call_pending_DSRs
+
+
+ ARM_MODE(r1,22)
+
+ // Disable interrupts
+ mrs r1,cpsr // disable IRQ's
+ orr r2,r1,#CPSR_INTR_MASK
+ msr cpsr,r2
+
+ // Move back to the thread stack.
+ ldr r2,.irq_level
+ ldr r3,[r2]
+ sub r3,r3,#1 // decrement nesting level
+ str r3,[r2]
+ ldr sp,[sp] // This should be the saved stack pointer
+ msr cpsr,r4 // restore interrupts to original state
+
+#ifdef __thumb__
+ ldmfd sp!,{r4,r5,lr} // return
+ bx lr
+#else
+ ldmfd sp!,{r4,r5,pc} // return
+#endif // __thumb__
+#endif // CYGIMP_HAL_COMMON_INTERRUPTS_USE_INTERRUPT_STACK
+
+// Thumb-only support functions
+#ifdef __thumb__
+
+FUNC_START_ARM(hal_disable_interrupts, r1)
+ mrs r0,cpsr // current state
+ orr r1,r0,#CPSR_INTR_MASK // mask interrupts
+ msr cpsr,r1
+ bx lr // exit, _old_ in r0
+
+FUNC_START_ARM(hal_enable_interrupts, r1)
+ mrs r0,cpsr // current state
+ bic r1,r0,#CPSR_INTR_MASK // mask interrupts
+ msr cpsr,r1
+ bx lr // exit
+
+FUNC_START_ARM(hal_restore_interrupts, r1)
+ mrs r1,cpsr // current state
+ bic r1,r1,#CPSR_INTR_MASK // mask out interrupts
+ and r0,r0,#CPSR_INTR_MASK // keep only interrupts
+ orr r1,r1,r0 // mask interrupts
+ msr cpsr,r1
+ bx lr // exit
+
+FUNC_START_ARM(hal_query_interrupts, r1)
+ mrs r0,cpsr // current state
+ bx lr // exit, state in r0
+
+#endif // __thumb__
+
+#ifndef CYGOPT_HAL_ARM_FIQ_DISABLE
+
+// Functions for controlling FIQ independently of IRQ.
+// These are only present if we are not manipulating FIQs
+// alongside IRQs in the standard interrupt control macros.
+
+FUNC_START_ARM(hal_disable_FIQ, r1)
+ mrs r0,cpsr // current state
+ orr r1,r0,#CPSR_FIQ_DISABLE // mask FIQs
+ msr cpsr,r1
+ bx lr // exit, _old_ in r0
+
+FUNC_START_ARM(hal_enable_FIQ, r1)
+ mrs r0,cpsr // current state
+ bic r1,r0,#CPSR_FIQ_DISABLE // mask FIQs
+ msr cpsr,r1
+ bx lr // exit
+
+FUNC_START_ARM(hal_restore_FIQ, r1)
+ mrs r1,cpsr // current state
+ bic r1,r1,#CPSR_FIQ_DISABLE // mask out FIQs
+ and r0,r0,#CPSR_FIQ_DISABLE // keep only FIQs
+ orr r1,r1,r0 // mask FIQs
+ msr cpsr,r1
+ bx lr // exit
+
+FUNC_START_ARM(hal_query_FIQ, r1)
+ mrs r0,cpsr // current state
+ bx lr // exit, state in r0
+
+#endif
+
+// Dummy/support functions
+
+ .global __gccmain
+ .global _psr
+ .global _sp
+
+#ifdef __thumb__
+ .code 16
+ .thumb_func
+__gccmain:
+ bx lr
+
+ .code 16
+ .thumb_func
+_psr:
+ ARM_MODE(r1,10)
+ mrs r0,cpsr
+ bx lr
+
+ .code 16
+ .thumb_func
+_sp:
+ mov r0,sp
+ bx lr
+#else
+__gccmain:
+ mov pc,lr
+
+_psr:
+ mrs r0,cpsr
+ mov pc,lr
+
+_sp:
+ mov r0,sp
+ mov pc,lr
+#endif
+
+
+//
+// Pointers to various objects.
+//
+#ifdef CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS
+PTR(__GDB_stack_base)
+PTR(__GDB_stack)
+#endif
+PTR(__startup_stack)
+PTR(__exception_stack)
+PTR(__undef_exception_stack)
+PTR(__bss_start)
+PTR(__bss_end)
+PTR(_end)
+PTR(__rom_data_start)
+PTR(__ram_data_start)
+PTR(__ram_data_end)
+PTR(hal_interrupt_handlers)
+PTR(hal_interrupt_data)
+PTR(hal_interrupt_objects)
+PTR(__exception_handlers)
+PTR(init_flag)
+#ifdef CYGFUN_HAL_COMMON_KERNEL_SUPPORT
+PTR(cyg_scheduler_sched_lock)
+#endif
+#ifdef CYGIMP_HAL_COMMON_INTERRUPTS_USE_INTERRUPT_STACK
+PTR(irq_level)
+PTR(__interrupt_stack)
+#endif
+#ifdef CYGHWR_HAL_ARM_DUMP_EXCEPTIONS
+PTR(__dump_procs)
+#endif
+#ifndef CYGOPT_HAL_ARM_FIQ_DISABLE
+PTR(__fiq_stack)
+#endif
+//
+// Identification - useful to find out when a system was configured
+_eCos_id:
+ .asciz "eCos : " __DATE__
+
+
+// -------------------------------------------------------------------------
+// Interrupt vector tables.
+// These tables contain the isr, data and object pointers used to deliver
+// interrupts to user code.
+
+// Despite appearances, their sizes are not #defines, but .equ symbols
+// generated by magic without proper dependencies in arm.inc
+// Recompiling will not DTRT without manual intervention.
+
+ .data
+
+init_flag:
+ .balign 4
+ .long 0
+
+ .extern hal_default_isr
+
+ .globl hal_interrupt_handlers
+hal_interrupt_handlers:
+ .rept CYGNUM_HAL_ISR_COUNT
+ .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
+
+// -------------------------------------------------------------------------
+// Temporary interrupt stack
+
+ .section ".bss"
+
+// Small stacks, only used for saving information between CPU modes
+__exception_stack_base:
+ .rept 32
+ .long 0
+ .endr
+__exception_stack:
+ .rept 32
+ .long 0
+ .endr
+__undef_exception_stack:
+
+#ifndef CYGOPT_HAL_ARM_FIQ_DISABLE
+ .balign 16
+__fiq_stack_base:
+ .rept CYGNUM_HAL_ARM_FIQ_STACK_SIZE
+ .byte 0
+ .endr
+ .balign 16
+__fiq_stack:
+#endif
+
+// Runtime stack used during all interrupt processing
+#ifndef CYGNUM_HAL_COMMON_INTERRUPTS_STACK_SIZE
+#define CYGNUM_HAL_COMMON_INTERRUPTS_STACK_SIZE 4096
+#endif
+#ifdef CYGIMP_HAL_COMMON_INTERRUPTS_USE_INTERRUPT_STACK
+ .balign 16
+ .global cyg_interrupt_stack_base
+cyg_interrupt_stack_base:
+__interrupt_stack_base:
+ .rept CYGNUM_HAL_COMMON_INTERRUPTS_STACK_SIZE
+ .byte 0
+ .endr
+ .balign 16
+ .global cyg_interrupt_stack
+cyg_interrupt_stack:
+__interrupt_stack:
+irq_level:
+ .long 0
+#endif
+
+#ifdef CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS
+ .balign 16
+__GDB_stack_base:
+ .rept CYGNUM_HAL_COMMON_INTERRUPTS_STACK_SIZE // rather than 1k
+ .byte 0
+ .endr
+__GDB_stack:
+#endif
+ .balign 16
+__startup_stack_base:
+#ifdef CYGIMP_HAL_COMMON_INTERRUPTS_USE_INTERRUPT_STACK
+ .rept 512
+#else
+ .rept CYGNUM_HAL_COMMON_INTERRUPTS_STACK_SIZE
+#endif
+ .byte 0
+ .endr
+ .balign 16
+__startup_stack:
+
+#ifdef PLATFORM_EXTRAS
+#include PLATFORM_EXTRAS
+#endif
+
+// --------------------------------------------------------------------------
+// end of vectors.S
diff --git a/ecos/packages/hal/arm/arm9/aaed2000/current/ChangeLog b/ecos/packages/hal/arm/arm9/aaed2000/current/ChangeLog
new file mode 100644
index 0000000..407d5ce
--- /dev/null
+++ b/ecos/packages/hal/arm/arm9/aaed2000/current/ChangeLog
@@ -0,0 +1,394 @@
+2009-01-31 Bart Veer <bartv@ecoscentric.com>
+
+ * cdl/hal_arm_arm9_aaed2000.cdl: update compiler flags for gcc 4.x
+
+2009-01-24 Bart Veer <bartv@ecoscentric.com>
+
+ * cdl/hal_arm_arm9_aaed2000.cdl: switch from arm-elf-gcc to
+ arm-eabi-gcc.
+
+2003-12-05 Andrew Lunn <andrew.lunn@ascom.ch>
+
+ * include/hal_diag.h: hal_delay_us() is a C function.
+
+2003-09-21 Gary Thomas <gary@mlbassoc.com>
+
+ * misc/redboot_primary_RAM.ecm:
+ * misc/redboot_primary_ROMRAM.ecm: Adjust for changes in RedBoot
+ template - DNS now must be enabled manually.
+
+2003-07-18 Nick Garnett <nickg@balti.calivar.com>
+
+ * cdl/hal_arm_arm9_aaed2000.cdl:
+ Changed values for CYGNUM_HAL_RTC_NUMERATOR,
+ CYGNUM_HAL_RTC_DENOMINATOR and CYGNUM_HAL_RTC_PERIOD to
+ "default_value" from "calculated". This makes it easier
+ to change these values globally.
+
+2003-02-13 Patrick Doyle <wpd@delcomsys.com>
+ * src/aaed2000_misc.c: Replaced explicit prototype of memset with
+ #include <string.h>.
+
+2002-05-14 Jesper Skov <jskov@redhat.com>
+
+ * src/aaed2000_misc.c (hal_mmu_init): Fixed warning.
+
+2002-05-07 Gary Thomas <gthomas@redhat.com>
+
+ * cdl/hal_arm_arm9_aaed2000.cdl:
+ Standardize CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_DEFAULT usage.
+
+2002-04-15 Jesper Skov <jskov@redhat.com>
+
+ * cdl/hal_arm_arm9_aaed2000.cdl: Switch to use arm-elf.
+
+2002-03-26 Jesper Skov <jskov@redhat.com>
+
+ * src/lcd_support.c (lcd_comm_init): Fix missing rename. Disable
+ assembly that breaks GCC.
+
+2002-03-10 Gary Thomas <gthomas@redhat.com>
+
+ * src/kbd_drvr.c: New file.
+
+ * src/lcd_support.c:
+ * src/aaed2000_misc.c:
+ * cdl/hal_arm_arm9_aaed2000.cdl: Split out keyboard driver.
+
+2002-03-09 Gary Thomas <gthomas@redhat.com>
+
+ * src/aaed2000_misc.c (plf_hardware_init):
+ Configure touch screen interrupt.
+
+ * include/pkgconf/mlt_arm_arm9_aaed2000_romram.ldi:
+ * include/pkgconf/mlt_arm_arm9_aaed2000_romram.h:
+ * include/pkgconf/mlt_arm_arm9_aaed2000_romram.mlt:
+ * include/pkgconf/mlt_arm_arm9_aaed2000_ram.mlt:
+ * include/pkgconf/mlt_arm_arm9_aaed2000_ram.ldi:
+ * include/pkgconf/mlt_arm_arm9_aaed2000_ram.h:
+ LCD screen needs 0xA0000 bytes.
+
+ * include/lcd_support.h: Remove warnings (when built for eCos).
+
+ * include/aaed2000.h: Add definitions for Synchronous Serial Port
+ (SSP) which is used by the touch screen.
+
+2002-01-29 Jesper Skov <jskov@redhat.com>
+
+ * cdl/hal_arm_arm9_aaed2000.cdl: Use generic linux exec command.
+ * src/redboot_linux_exec.c: Removed.
+
+2002-01-28 Jesper Skov <jskov@redhat.com>
+
+ * cdl/hal_arm_arm9_aaed2000.cdl: Removed explicit plf_io.h
+ declaration.
+
+2002-01-10 Jesper Skov <jskov@redhat.com>
+
+ * src/lcd_support.c (KeyboardScan): Increase debouce stability
+ period to counter the incresed CPU/bus speed. 100 seems fine,
+ using 120 for good measure.
+
+2001-12-12 Jesper Skov <jskov@redhat.com>
+
+ * include/aaed2000.h: Increase waitstates.
+
+2001-12-11 Jesper Skov <jskov@redhat.com>
+
+ * cdl/hal_arm_arm9_aaed2000.cdl: Removed custom clocking. Changed
+ clocking mode to generic instead of Agilent specific.
+ * include/aaed2000.h: Same. Also add idle cycles to static mem
+ controller options. Don't do autoprecharge of SDRAM.
+
+ * include/hal_platform_setup.h: Add idle cycles to static mem
+ controller options. Change CPU clock to synchronous mode. Correct
+ SDRAM refresh count calculation.
+
+
+2001-11-29 Jesper Skov <jskov@redhat.com>
+
+ * src/lcd_support.c (KeyboardScan): Instead of just debouncing for
+ a fixed time (loop of 1000), look for changes in the state and
+ break out early if the reading is stable.
+
+2001-11-27 Jesper Skov <jskov@redhat.com>
+
+ * include/aaed2000.h (AAEC_CSC_CLKSET_INIT): Fix definition.
+
+ * src/lcd_support.c: Swap " and @.
+
+2001-11-22 Jesper Skov <jskov@redhat.com>
+
+ * cdl/hal_arm_arm9_aaed2000.cdl: Use HOST_CC instead of 'cc'.
+
+2001-11-16 Jesper Skov <jskov@redhat.com>
+
+ * include/hal_platform_setup.h: Removed unused code. Don't mess
+ with the system setup in RAM startup mode.
+
+2001-11-15 Jesper Skov <jskov@redhat.com>
+
+ * src/redboot_linux_exec.c (do_exec): Use CYGARC_PHYSICAL_ADDRESS
+ instead of UNMAPPED_ADDR.
+
+ * include/plf_io.h: Added CYGARC_PHYSICAL_ADDRESS and
+ CYGARC_VIRTUAL_ADDRESS.
+
+ * include/aaed2000.h: Added definitions for memory areas.
+
+ * src/redboot_linux_exec.c (do_exec): Use load start/end
+ parameters as defaults. Don't copy image if specified length is
+ zero.
+
+2001-11-14 Jesper Skov <jskov@redhat.com>
+
+ * cdl/hal_arm_arm9_aaed2000.cdl: Use 508kHz timer for kernel
+ clock.
+ * src/aaed2000_misc.c (hal_clock_initialize): Same.
+
+ * src/hal_diag.c (cyg_hal_plf_serial_putc): Wait for TX to
+ complete before returning.
+
+2001-11-14 Gary Thomas <gthomas@redhat.com>
+
+ * src/lcd_support.c (KeyboardScan): Reduce bounce time.
+ (lcd_comm_getc_timeout): Scan code is slow - adjust timeout.
+
+2001-11-13 Jesper Skov <jskov@redhat.com>
+
+ * include/plf_io.h: Include platform header.
+
+2001-11-12 Jesper Skov <jskov@redhat.com>
+
+ * include/pkgconf/mlt_arm_arm9_aaed2000_rom.ldi: Updated.
+ * include/pkgconf/mlt_arm_arm9_aaed2000_rom.h: Same.
+ * include/pkgconf/mlt_arm_arm9_aaed2000_rom.mlt: Same.
+
+ * src/lcd_support.c: Fix compiler warning.
+
+ * src/hal_diag.c: Calculate baud rate clock properly.
+ Removed some unused code. Clear more registers on init.
+ Added interrupt handling code. Also enable RX timeout.
+
+ * src/aaed2000_misc.c: Added more interrupt ack details. Minor
+ reorg of code.
+
+ * include/aaed2000.h: Fixed SDRAM RAS definition. Added some
+ interrupt-end registers.
+
+ * cdl/hal_arm_arm9_aaed2000.cdl: Set default baud rates to 38400.
+
+2001-11-12 Gary Thomas <gthomas@redhat.com>
+
+ * include/lcd_support.h: Add frame buffer type (RGB555).
+
+ * src/lcd_support.c:
+ * cdl/hal_arm_arm9_aaed2000.cdl: Reorg LCD support, separating
+ basic LCD functionality with virtual screen [console] support.
+
+2001-11-10 Gary Thomas <gthomas@redhat.com>
+
+ * src/aaed2000_misc.c (hal_interrupt_acknowledge):
+ (hal_interrupt_configure):
+
+ * include/aaed2000.h: Flush out interrupt control & support.
+ Ethernet now works interrupt driven.
+
+2001-11-09 Jesper Skov <jskov@redhat.com>
+
+ * misc/redboot_primary_RAM.ecm: Added.
+ * misc/redboot_primary_ROMRAM.ecm: Added.
+
+2001-11-08 Jesper Skov <jskov@redhat.com>
+
+ * src/aaed2000_misc.c: Set up RTC. Added interrupt handling.
+
+ * cdl/hal_arm_arm9_aaed2000.cdl: Calculate correct RTC
+ period. Removed prescaler option.
+
+
+ * include/hal_platform_setup.h: Also set up ether/GPIO access
+ details for RAM startup (to support running under the ARM
+ monitor).
+
+2001-11-08 Gary Thomas <gthomas@redhat.com>
+
+ * src/lcd_support.c:
+ * src/banner.xpm: Minor adjustments to logo & screen colors.
+
+2001-11-07 Jesper Skov <jskov@redhat.com>
+
+ * include/hal_platform_ints.h: Added descriptions for external
+ interrupt sources.
+
+ * src/aaed2000_misc.c: Fixed warnings.
+ * src/lcd_support.c: Same.
+
+ * misc/redboot_ROMRAM.ecm: Removed ESA settings.
+ * misc/redboot_ROM.ecm: Same.
+ * misc/redboot_RAM.ecm: Same.
+
+2001-11-06 Jesper Skov <jskov@redhat.com>
+
+ * include/hal_platform_setup.h: Set SDRAM refresh rate according
+ to bus speed.
+
+ * include/aaed2000.h: Added more "clock and state" definitions.
+
+ * cdl/hal_arm_arm9_aaed2000.cdl: Added configury for cpu/bus clock
+ speeds.
+
+ * include/aaed2000.h: Added more interrupt controller
+ definitions.
+
+ * include/hal_platform_setup.h: Disable interrupts and MMU/cache
+ before setting up SDRAM.
+
+2001-11-06 Gary Thomas <gthomas@redhat.com>
+
+ * src/lcd_support.c: Remove unnecessary HAL_VIRT_TO_PHYS_ADDRESS().
+ Tighten up reset/init timings. Improve lcd_clear() so it runs a
+ bit faster.
+ (lcd_drawc):
+ (lcd_scroll): Add hand-crafted optimizations.
+
+ * include/pkgconf/mlt_arm_arm9_aaed2000_romram.mlt:
+ * include/pkgconf/mlt_arm_arm9_aaed2000_romram.ldi:
+ * include/pkgconf/mlt_arm_arm9_aaed2000_romram.h:
+ * include/pkgconf/mlt_arm_arm9_aaed2000_ram.mlt:
+ * include/pkgconf/mlt_arm_arm9_aaed2000_ram.ldi:
+ * include/pkgconf/mlt_arm_arm9_aaed2000_ram.h:
+ Setup for true ROMRAM mode.
+
+2001-11-05 Jesper Skov <jskov@redhat.com>
+
+ * src/arm_mon.c: Fill memory with the flash clear value (0xff).
+
+ * include/aaed2000.h: Added SDRAM details.
+
+ * include/hal_platform_setup.h: Initialize bus controllers,
+ including [presently disabled] SDRAM setup.
+
+ * src/aaed2000_misc.c (plf_hardware_init): Removed bus controller
+ setup.
+
+2001-11-05 Gary Thomas <gthomas@redhat.com>
+
+ * src/lcd_support.c: Minor tinkering, mostly with scrolling.
+
+ * src/aaed2000_misc.c (hal_delay_us): Rewrite using timer #3.
+
+ * include/aaed2000.h: Add timer definitions.
+
+2001-11-04 Gary Thomas <gthomas@redhat.com>
+
+ * include/lcd_support.h:
+ * src/lcd_support.c:
+ * src/font.h:
+ * src/banner.xpm: New file(s) - LCD/KBD virtual console support.
+
+ * include/pkgconf/mlt_arm_arm9_aaed2000_romram.mlt:
+ * include/pkgconf/mlt_arm_arm9_aaed2000_romram.ldi:
+ * include/pkgconf/mlt_arm_arm9_aaed2000_romram.h:
+ * include/pkgconf/mlt_arm_arm9_aaed2000_ram.mlt:
+ * include/pkgconf/mlt_arm_arm9_aaed2000_ram.ldi:
+ * include/pkgconf/mlt_arm_arm9_aaed2000_ram.h: Leave space for LCD.
+
+ * include/aaed2000.h: Add definitions for LCD, extended GPIO.
+
+ * src/aaed2000_misc.c (plf_if_init):
+ * cdl/hal_arm_arm9_aaed2000.cdl: Add LCD/KBD as virtual console.
+
+2001-11-02 Jesper Skov <jskov@redhat.com>
+
+ * src/redboot_linux_exec.c: Updated header
+
+ * src/hal_diag.c: Changed interrupt vector.
+
+ * src/aaed2000_misc.c (plf_hardware_init): Cleanup. Fixed
+ warnings.
+
+ * include/plf_stub.h: Header updated.
+
+ * cdl/hal_arm_arm9_aaed2000.cdl: Changed clock setting.
+
+ * include/hal_platform_setup.h: Removed unused LED macro.
+
+ * include/hal_diag.h: Cleaned up.
+
+ * include/aaed2000.h: Removed non-AAEC definitions.
+
+ * include/hal_platform_ints.h: Added AAEC vectors.
+
+2001-11-02 Gary Thomas <gthomas@redhat.com>
+
+ * src/aaed2000_misc.c (hal_mmu_init): Map in Compact Flash / PCMCIA.
+
+2001-11-01 Jesper Skov <jskov@redhat.com>
+
+ * src/redboot_linux_exec.c (do_exec): Workaround for compiler
+ bug.
+
+ * include/aaed2000.h: Fix daft register address typos.
+
+ * src/hal_diag.c (cyg_hal_plf_serial_init_channel): Enable device
+ before setting it up (from dwmw2).
+
+ * include/hal_platform_ints.h: Try to soft reset the board.
+
+ * include/pkgconf/mlt_arm_arm9_aaed2000_rom.ldi: Changed base
+ address to flash+128k
+ * include/pkgconf/mlt_arm_arm9_aaed2000_rom.mlt: Same.
+ * include/pkgconf/mlt_arm_arm9_aaed2000_rom.h: Same.
+
+ * src/arm_mon.c (IMAGE_BASE, LOAD_ADDRESS): Moved RedBoot to flash
+ base +0x20000. Made LOAD_ADDRESS depend on startup type.
+
+ * misc/redboot_ROMRAM.ecm: Move FIS and config blocks to their
+ default positions (at end of flash). Removed
+ CYGNUM_REDBOOT_FLASH_RESERVED_BASE setting.
+ * misc/redboot_ROM.ecm: Removed CYGNUM_REDBOOT_FLASH_RESERVED_BASE
+ setting.
+ * misc/redboot_RAM.ecm: Same.
+
+2001-10-31 Jesper Skov <jskov@redhat.com>
+
+ * src/arm_mon.c: Added.
+
+ * include/plf_io.h (_ADDR_REDBOOT_TO_ARM): undo mistaken commit.
+
+ * src/aaed2000_misc.c (plf_hardware_init): Added PIO setup.
+
+ * include/plf_io.h (_ADDR_REDBOOT_TO_ARM): added.
+
+ * cdl/hal_arm_arm9_aaed2000.cdl: define CYGBLD_HAL_PLATFORM_IO_H.
+
+2001-10-30 Jesper Skov <jskov@redhat.com>
+
+ * Updated MLT files for the new tools.
+
+ * Imported sources from Gary Thomas.
+
+//===========================================================================
+// ####GPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 2 or (at your option) any
+// later version.
+//
+// This program is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the
+// Free Software Foundation, Inc., 51 Franklin Street,
+// Fifth Floor, Boston, MA 02110-1301, USA.
+// -------------------------------------------
+// ####GPLCOPYRIGHTEND####
+//===========================================================================
diff --git a/ecos/packages/hal/arm/arm9/aaed2000/current/cdl/hal_arm_arm9_aaed2000.cdl b/ecos/packages/hal/arm/arm9/aaed2000/current/cdl/hal_arm_arm9_aaed2000.cdl
new file mode 100644
index 0000000..c4e921b
--- /dev/null
+++ b/ecos/packages/hal/arm/arm9/aaed2000/current/cdl/hal_arm_arm9_aaed2000.cdl
@@ -0,0 +1,555 @@
+# ====================================================================
+#
+# hal_arm_arm9_aaed2000.cdl
+#
+# Agilent AAED2000 platform HAL package configuration data
+#
+# ====================================================================
+## ####ECOSGPLCOPYRIGHTBEGIN####
+## -------------------------------------------
+## This file is part of eCos, the Embedded Configurable Operating System.
+## Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+##
+## eCos is free software; you can redistribute it and/or modify it under
+## the terms of the GNU General Public License as published by the Free
+## Software Foundation; either version 2 or (at your option) any later
+## version.
+##
+## eCos is distributed in the hope that it will be useful, but WITHOUT
+## ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+## FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+## for more details.
+##
+## You should have received a copy of the GNU General Public License
+## along with eCos; if not, write to the Free Software Foundation, Inc.,
+## 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+##
+## As a special exception, if other files instantiate templates or use
+## macros or inline functions from this file, or you compile this file
+## and link it with other works to produce a work based on this file,
+## this file does not by itself cause the resulting work to be covered by
+## the GNU General Public License. However the source code for this file
+## must still be made available in accordance with section (3) of the GNU
+## General Public License v2.
+##
+## This exception does not invalidate any other reasons why a work based
+## on this file might be covered by the GNU General Public License.
+## -------------------------------------------
+## ####ECOSGPLCOPYRIGHTEND####
+# ====================================================================
+######DESCRIPTIONBEGIN####
+#
+# Author(s): gthomas
+# Original data: gthomas
+# Contributors:
+# Date: 2001-10-27
+#
+#####DESCRIPTIONEND####
+#
+# ====================================================================
+cdl_package CYGPKG_HAL_ARM_ARM9_AAED2000 {
+ display "Agilent Aaed2000 evaluation board"
+ parent CYGPKG_HAL_ARM_ARM9
+ requires CYGPKG_HAL_ARM_ARM9_ARM920T
+ hardware
+ include_dir cyg/hal
+ define_header hal_arm_arm9_aaed2000.h
+ description "
+ This HAL platform package provides generic
+ support for the Agilent based board, known as 'aaed2000'."
+
+ compile aaed2000_misc.c hal_diag.c kbd_drvr.c
+
+ implements CYGINT_HAL_DEBUG_GDB_STUBS
+ implements CYGINT_HAL_DEBUG_GDB_STUBS_BREAK
+ implements CYGINT_HAL_VIRTUAL_VECTOR_SUPPORT
+ implements CYGINT_HAL_PLF_IF_INIT
+
+
+ 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_arm9.h>"
+ puts $::cdl_system_header "#define CYGBLD_HAL_PLATFORM_H <pkgconf/hal_arm_arm9_aaed2000.h>"
+
+ puts $::cdl_header "#define HAL_PLATFORM_CPU \"ARM9\""
+ puts $::cdl_header "#define HAL_PLATFORM_BOARD \"AAED2000 system\""
+ puts $::cdl_header "#define HAL_PLATFORM_EXTRA \"\[\" __Xstr(CYGHWR_REDBOOT_BOOTMONITOR) \"\]\" "
+ puts $::cdl_header "#define HAL_PLATFORM_MACHINE_TYPE 106"
+ }
+
+ cdl_component CYG_HAL_STARTUP {
+ display "Startup type"
+ flavor data
+ default_value {"RAM"}
+ legal_values {"RAM" "ROM" "ROMRAM" }
+ no_define
+ define -file system.h CYG_HAL_STARTUP
+ description "
+ When targetting the Aaed2000 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_component CYGNUM_HAL_ARM_AAED2000_CLOCK {
+ display "Board (CPU and bus) speed"
+ flavor data
+ legal_values {"150/75MHz" "166/83MHz"}
+ default_value {"150/75MHz"}
+ description "
+ This option controls the CPU and bus frequencies. It
+ does so by presetting the PLL details when one of the
+ frequency combinations are selected. It's also possible
+ to customize the PLL values by selecting 'Custom'
+ and adjusting the options accordingly. See the 'Clock and Control'
+ section of the CPU manual for further information."
+
+ # Note: there are options for these settings, even though they
+ # are compute. That's because I initially thought the cpu/bus
+ # speed could be calculated properly - for now they are also
+ # just set as a result of the _CLOCK choice.
+ # See table 5-7 in the manual for the setting of these parameters.
+ cdl_option CYGNUM_HAL_ARM_AAED2000_CLOCK_REF {
+ display "CPU clock reference clock (crystal)"
+ flavor data
+ calculated 14745600
+ description "
+ This is the CPU reference clock. It is 14.7456MHz and
+ cannot be changed."
+ }
+
+ cdl_option CYGNUM_HAL_ARM_AAED2000_CLOCK_HCLKDIV {
+ display "CPU clock HCLKDIV"
+ flavor data
+ calculated { CYGNUM_HAL_ARM_AAED2000_CLOCK == "150/75MHz" ? 1 :
+ CYGNUM_HAL_ARM_AAED2000_CLOCK == "166/83MHz" ? 1 :
+ 0 }
+ description "
+ The HCLKDIV value."
+ }
+
+ cdl_option CYGNUM_HAL_ARM_AAED2000_CLOCK_PREDIV {
+ display "CPU clock PREDIV"
+ flavor data
+ calculated { CYGNUM_HAL_ARM_AAED2000_CLOCK == "150/75MHz" ? 12 :
+ CYGNUM_HAL_ARM_AAED2000_CLOCK == "166/83MHz" ? 18 :
+ 0 }
+ description "
+ The PREDIV value."
+ }
+
+ cdl_option CYGNUM_HAL_ARM_AAED2000_CLOCK_MAINDIV1 {
+ display "CPU clock MAINDIV1"
+ flavor data
+ calculated { CYGNUM_HAL_ARM_AAED2000_CLOCK == "150/75MHz" ? 13 :
+ CYGNUM_HAL_ARM_AAED2000_CLOCK == "166/83MHz" ? 13 :
+ 0 }
+ description "
+ The MAINDIV1 value."
+ }
+
+ cdl_option CYGNUM_HAL_ARM_AAED2000_CLOCK_MAINDIV2 {
+ display "CPU clock MAINDIV2"
+ flavor data
+ calculated { CYGNUM_HAL_ARM_AAED2000_CLOCK == "150/75MHz" ? 17 :
+ CYGNUM_HAL_ARM_AAED2000_CLOCK == "166/83MHz" ? 28 :
+ 0 }
+ description "
+ The MAINDIV2 value."
+ }
+
+ cdl_option CYGNUM_HAL_ARM_AAED2000_CLOCK_PCLKDIV {
+ display "CPU clock PCLKDIV"
+ flavor data
+ calculated { CYGNUM_HAL_ARM_AAED2000_CLOCK == "150/75MHz" ? 1 :
+ CYGNUM_HAL_ARM_AAED2000_CLOCK == "166/83MHz" ? 1 :
+ 0 }
+ description "
+ The PCLKDIV value."
+ }
+
+ cdl_option CYGNUM_HAL_ARM_AAED2000_CLOCK_PS {
+ display "CPU clock PS"
+ flavor data
+ calculated { CYGNUM_HAL_ARM_AAED2000_CLOCK == "150/75MHz" ? 1 :
+ CYGNUM_HAL_ARM_AAED2000_CLOCK == "166/83MHz" ? 1 :
+ 0 }
+ description "
+ The PCLKDIV value."
+ }
+
+
+ cdl_option CYGNUM_HAL_ARM_AAED2000_CPU_CLOCK {
+ display "CPU speed"
+ flavor data
+ calculated { CYGNUM_HAL_ARM_AAED2000_CLOCK == "150/75MHz" ? 150890000 :
+ CYGNUM_HAL_ARM_AAED2000_CLOCK == "166/83MHz" ? 165888000 :
+ 0 }
+ description "
+ This is the actual CPU operating frequency."
+ }
+
+ cdl_option CYGNUM_HAL_ARM_AAED2000_BUS_CLOCK {
+ display "Bus speed"
+ flavor data
+ calculated { CYGNUM_HAL_ARM_AAED2000_CLOCK == "150/75MHz" ? 75445000 :
+ CYGNUM_HAL_ARM_AAED2000_CLOCK == "166/83MHz" ? 82944000 :
+ 0 }
+ description "
+ This is the actual bus operating frequency."
+ }
+ }
+
+
+ # Real-time clock/counter specifics
+ cdl_component CYGNUM_HAL_RTC_CONSTANTS {
+ display "Real-time clock constants"
+ flavor none
+ no_define
+
+ cdl_option CYGNUM_HAL_RTC_NUMERATOR {
+ display "Real-time clock numerator"
+ flavor data
+ default_value 1000000000
+ }
+ cdl_option CYGNUM_HAL_RTC_DENOMINATOR {
+ display "Real-time clock denominator"
+ flavor data
+ default_value 100
+ }
+ # The timer used runs at 508kHz
+ cdl_option CYGNUM_HAL_RTC_PERIOD {
+ display "Real-time clock period"
+ flavor data
+ default_value ((508000/CYGNUM_HAL_RTC_DENOMINATOR)-1)
+ }
+ }
+
+ cdl_component CYGSEM_AAED2000_LCD_SUPPORT {
+ display "Support LCD"
+ flavor bool
+ default_value 1
+ compile lcd_support.c
+ description "
+ Enabling this option will enable the use the LCD as a
+ simple framebuffer, suitable for use with a windowing
+ package."
+
+ cdl_option CYGSEM_AAED2000_LCD_PORTRAIT_MODE {
+ display "LCD portrait mode"
+ flavor bool
+ default_value 0
+ description "
+ Setting this option will orient the data on the LCD screen
+ in portrait (480x640) mode."
+ }
+
+ cdl_component CYGSEM_AAED2000_LCD_COMM {
+ display "Support LCD/keyboard for comminication channel"
+ active_if CYGPKG_REDBOOT
+ flavor bool
+ default_value 1
+ description "
+ Enabling this option will use the LCD and keyboard for a
+ communications channel, suitable for RedBoot, etc."
+
+ cdl_option CYGOPT_AAED2000_LCD_COMM_LOGO {
+ display "RedHat logo location"
+ flavor booldata
+ legal_values { "TOP" "BOTTOM" }
+ default_value { "TOP" }
+ description "
+ Use this option to control where the RedHat logo is placed
+ on the LCD screen."
+ }
+ }
+ }
+
+
+ cdl_option CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_BAUD {
+ display "Diagnostic serial port baud rate"
+ flavor data
+ legal_values 9600 19200 38400 57600 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 57600 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 1+CYGSEM_AAED2000_LCD_COMM
+ }
+
+ cdl_option CYGNUM_HAL_VIRTUAL_VECTOR_DEBUG_CHANNEL {
+ display "Debug serial port"
+ active_if CYGPRI_HAL_VIRTUAL_VECTOR_DEBUG_CHANNEL_CONFIGURABLE
+ flavor data
+ legal_values 0 to CYGNUM_HAL_VIRTUAL_VECTOR_COMM_CHANNELS-1
+ default_value 0
+ description "
+ The aaed2000 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_DEFAULT {
+ display "Default console channel."
+ flavor data
+ legal_values 0 to CYGNUM_HAL_VIRTUAL_VECTOR_COMM_CHANNELS-1
+ calculated 0
+ }
+
+ cdl_option CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL {
+ display "Diagnostic serial port"
+ active_if CYGPRI_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_CONFIGURABLE
+ flavor data
+ legal_values 0 to CYGNUM_HAL_VIRTUAL_VECTOR_COMM_CHANNELS-1
+ default_value CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_DEFAULT
+ description "
+ The aaed2000 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-eabi"}
+ 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 { CYGBLD_GLOBAL_WARNFLAGS . CYGBLD_ARCH_CFLAGS .
+ "-mcpu=arm9 -g -O2 -ffunction-sections -fdata-sections -fno-rtti -fno-exceptions " }
+ 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 { CYGBLD_ARCH_LDFLAGS . "-mcpu=arm9 -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.srec : <PREFIX>/bin/gdb_module.img
+ $(OBJCOPY) --remove-section=.fixed_vectors $< gdb_module.tmp
+ $(OBJCOPY) -O srec --change-address 0x10000000 gdb_module.tmp $@
+ }
+ }
+ }
+
+ cdl_component CYGPKG_HAL_ARM_ARM9_AAED2000_OPTIONS {
+ display "ARM9/AAED2000 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_ARM9_AAED2000_CFLAGS_ADD {
+ display "Additional compiler flags"
+ flavor data
+ no_define
+ default_value { "" }
+ description "
+ This option modifies the set of compiler flags for
+ building the ARM9 AAED2000 HAL. These flags are used in addition
+ to the set of global flags."
+ }
+
+ cdl_option CYGPKG_HAL_ARM_ARM9_AAED2000_CFLAGS_REMOVE {
+ display "Suppressed compiler flags"
+ flavor data
+ no_define
+ default_value { "" }
+ description "
+ This option modifies the set of compiler flags for
+ building the ARM9 AAED2000 HAL. These flags are removed from
+ the set of global flags if present."
+ }
+
+ cdl_option CYGPKG_HAL_ARM_ARM9_AAED2000_TESTS {
+ display "ARM9/AAED2000 tests"
+ flavor data
+ no_define
+ calculated { "" }
+ description "
+ This option specifies the set of tests for the ARM9 Aaed2000 HAL."
+ }
+ }
+
+ cdl_component CYGHWR_MEMORY_LAYOUT {
+ display "Memory layout"
+ flavor data
+ no_define
+ calculated { CYG_HAL_STARTUP == "RAM" ? "arm_arm9_aaed2000_ram" : \
+ CYG_HAL_STARTUP == "ROM" ? "arm_arm9_aaed2000_rom" : \
+ "arm_arm9_aaed2000_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_arm_arm9_aaed2000_ram.ldi>" : \
+ CYG_HAL_STARTUP == "ROM" ? "<pkgconf/mlt_arm_arm9_aaed2000_rom.ldi>" : \
+ "<pkgconf/mlt_arm_arm9_aaed2000_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_arm_arm9_aaed2000_ram.h>" : \
+ CYG_HAL_STARTUP == "ROM" ? "<pkgconf/mlt_arm_arm9_aaed2000_rom.h>" : \
+ "<pkgconf/mlt_arm_arm9_aaed2000_romram.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" || CYG_HAL_STARTUP == "ROMRAM" }
+ 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 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_REDBOOT_HAL_OPTIONS {
+ display "Redboot HAL options"
+ flavor none
+ no_define
+ parent CYGPKG_REDBOOT
+ active_if CYGPKG_REDBOOT
+ description "
+ This option lists the target's requirements for a valid Redboot
+ configuration."
+
+ # The backup image is not needed, since ROMRAM is the normal
+ # RedBoot startup type.
+ requires {!CYGPKG_REDBOOT_FLASH || CYGOPT_REDBOOT_FIS_REDBOOT_BACKUP == 0}
+
+ # RedBoot details
+ requires { CYGPKG_REDBOOT_ARM_LINUX_EXEC }
+ requires { CYGHWR_REDBOOT_ARM_LINUX_EXEC_ADDRESS_DEFAULT == 0xf0008000 }
+ define_proc {
+ puts $::cdl_header "#define CYGHWR_REDBOOT_ARM_TRAMPOLINE_ADDRESS 0x00001f00"
+ }
+
+ cdl_option CYGHWR_REDBOOT_BOOTMONITOR {
+ display "Controls where RedBoot is in the boot chain"
+ default_value {"Primary"}
+ legal_values {"Primary"}
+ flavor data
+ active_if CYGPKG_REDBOOT_FLASH
+ description "
+ This option selects whether RedBoot sits in the boot chain.
+ Presently it's only supported as the primary booter."
+
+ }
+ 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 the various relocated SREC images needed
+ for flash updating."
+
+ make -priority 325 {
+ <PREFIX>/bin/redboot.bin : <PREFIX>/bin/redboot.elf
+ $(OBJCOPY) --strip-debug $< $(@:.bin=.img)
+ $(OBJCOPY) -O srec $< $(@:.bin=.srec)
+ $(OBJCOPY) -O binary $< $@
+ }
+ }
+ }
+
+}
diff --git a/ecos/packages/hal/arm/arm9/aaed2000/current/include/aaed2000.h b/ecos/packages/hal/arm/arm9/aaed2000/current/include/aaed2000.h
new file mode 100644
index 0000000..be88f31
--- /dev/null
+++ b/ecos/packages/hal/arm/arm9/aaed2000/current/include/aaed2000.h
@@ -0,0 +1,377 @@
+#ifndef CYGONCE_AAED2000_H
+#define CYGONCE_AAED2000_H
+/*=============================================================================
+//
+// aaed2000.h
+//
+// Platform specific support (register layout, etc)
+//
+//=============================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): gthomas
+// Contributors: gthomas, jskov
+// Date: 2001-10-30
+// Purpose: Agilent/AAED2000 platform specific support routines
+// Description:
+// Usage: #include <cyg/hal/aaed2000.h>
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================*/
+
+//---------------------------------------------------------------------------
+// Memory layout details needed by conversion macro
+#define AAED2000_SDRAM_PHYS_BASE 0xF0000000
+#define AAED2000_SDRAM_VIRT_BASE 0x00000000
+#define AAED2000_SDRAM_SIZE 0x02000000
+#define AAED2000_SDRAM_MASK (AAED2000_SDRAM_SIZE-1)
+
+#define AAED2000_FLASH_PHYS_BASE 0x00000000
+#define AAED2000_FLASH_VIRT_BASE 0x60000000
+#define AAED2000_FLASH_SIZE 0x02000000
+#define AAED2000_FLASH_MASK (AAED2000_FLASH_SIZE-1)
+
+//---------------------------------------------------------------------------
+// Clock and state controller
+#define AAEC_CSC_BLEOI 0x80000410 // battery low end of interrupt
+#define AAEC_CSC_MCEOI 0x80000414 // media changed end of interrupt
+#define AAEC_CSC_TEOI 0x80000418 // tick end of interrupt
+#define AAEC_CSC_CLKSET 0x80000420
+
+#define AAEC_CSC_CLKSET_PLL 0x80000000
+#define AAEC_CSC_CLKSET_SMCROM 0x01000000
+#define AAEC_CSC_CLKSET_PS(_n_) ((_n_)<<18) // values 0-3
+#define AAEC_CSC_CLKSET_PCLKDIV(_n_) ((_n_)<<16) // values 0-3
+#define AAEC_CSC_CLKSET_MAINDIV2(_n_) ((_n_)<<11) // values 0-31
+#define AAEC_CSC_CLKSET_MAINDIV1(_n_) ((_n_)<<7) // values 0-15
+#define AAEC_CSC_CLKSET_PREDIV(_n_) ((_n_)<<2) // values 0-31
+#define AAEC_CSC_CLKSET_HCLKDIV(_n_) ((_n_)) // values 0-3
+
+
+#define CYGNUM_HAL_ARM_AAED2000_BUS_CLOCK_MHZ ((CYGNUM_HAL_ARM_AAED2000_BUS_CLOCK+500000)/1000000)
+
+#define AAEC_CSC_CLKSET_INIT \
+ ( AAEC_CSC_CLKSET_HCLKDIV(CYGNUM_HAL_ARM_AAED2000_CLOCK_HCLKDIV) \
+ | AAEC_CSC_CLKSET_PREDIV(CYGNUM_HAL_ARM_AAED2000_CLOCK_PREDIV) \
+ | AAEC_CSC_CLKSET_MAINDIV1(CYGNUM_HAL_ARM_AAED2000_CLOCK_MAINDIV1) \
+ | AAEC_CSC_CLKSET_MAINDIV2(CYGNUM_HAL_ARM_AAED2000_CLOCK_MAINDIV2) \
+ | AAEC_CSC_CLKSET_PCLKDIV(CYGNUM_HAL_ARM_AAED2000_CLOCK_PCLKDIV) \
+ | AAEC_CSC_CLKSET_PS(CYGNUM_HAL_ARM_AAED2000_CLOCK_PS) \
+ | AAEC_CSC_CLKSET_SMCROM)
+
+//---------------------------------------------------------------------------
+// Interrupt controller
+#define AAEC_INT_SR 0x80000500
+#define AAEC_INT_RSR 0x80000504 // Raw [unmasked] interrupt status
+#define AAEC_INT_ENS 0x80000508
+#define AAEC_INT_ENC 0x8000050c
+#define AAEC_INT_TEST1 0x80000514
+#define AAEC_INT_TEST2 0x80000518
+
+#define AAEC_INTS_T3OI CYGNUM_HAL_INTERRUPT_TC3OI // Timer #3 overflow
+
+//---------------------------------------------------------------------------
+// UARTs
+#define AAEC_UART1 0x80000600
+#define AAEC_UART2 0x80000700
+#define AAEC_UART3 0x80000800
+
+#define AAEC_UART2_UMS2EOI 0x80000714 // modem end of interrupt
+#define AAEC_UART2_UMS3EOI 0x80000814 // modem end of interrupt
+
+#define AAEC_UART_DATA 0x0000 // Data/FIFO register
+#define AAEC_UART_LCR 0x0004 // Control register
+#define AAEC_UART_LCR_BRK 0x0001 // Send break
+#define AAEC_UART_LCR_PEN 0x0002 // Enable parity
+#define AAEC_UART_LCR_EP 0x0004 // Odd/Even parity
+#define AAEC_UART_LCR_S2 0x0008 // One/Two stop bits
+#define AAEC_UART_LCR_FIFO 0x0010 // Enable FIFO
+#define AAEC_UART_LCR_WL5 0x0000 // Word length - 5 bits
+#define AAEC_UART_LCR_WL6 0x0020 // Word length - 6 bits
+#define AAEC_UART_LCR_WL7 0x0040 // Word length - 7 bits
+#define AAEC_UART_LCR_WL8 0x0060 // Word length - 8 bits
+#define AAEC_UART_BAUD 0x0008 // Baud rate
+#define AAEC_UART_CTRL 0x000C // Control register
+#define AAEC_UART_CTRL_ENAB 0x0001 // Enable uart
+#define AAEC_UART_CTRL_SIR 0x0002 // Enable SIR IrDA
+#define AAEC_UART_CTRL_SIRLP 0x0004 // Enable low power IrDA
+#define AAEC_UART_CTRL_RXP 0x0008 // Receive pin polarity
+#define AAEC_UART_CTRL_TXP 0x0010 // Transmit pin polarity
+#define AAEC_UART_CTRL_MXP 0x0020 // Modem pin polarity
+#define AAEC_UART_CTRL_LOOP 0x0040 // Loopback mode
+#define AAEC_UART_CTRL_SIRBD 0x0080 // blanking disable
+#define AAEC_UART_STATUS 0x0010 // Status
+#define AAEC_UART_STATUS_CTS 0x0001 // Clear-to-send status
+#define AAEC_UART_STATUS_DSR 0x0002 // Data-set-ready status
+#define AAEC_UART_STATUS_DCD 0x0004 // Data-carrier-detect status
+#define AAEC_UART_STATUS_TxBSY 0x0008 // Transmitter busy
+#define AAEC_UART_STATUS_RxFE 0x0010 // Receive FIFO empty
+#define AAEC_UART_STATUS_TxFF 0x0020 // Transmit FIFO full
+#define AAEC_UART_STATUS_RxFF 0x0040 // Receive FIFO full
+#define AAEC_UART_STATUS_TxFE 0x0080 // Transmit FIFO empty
+#define AAEC_UART_INT 0x0014 // Interrupt status
+#define AAEC_UART_INTM 0x0018 // Interrupt mask register
+#define AAEC_UART_INTRES 0x001c // Interrupt result (masked interrupt status)
+#define AAEC_UART_INT_RIS 0x0001 // Rx interrupt
+#define AAEC_UART_INT_TIS 0x0002 // Tx interrupt
+#define AAEC_UART_INT_MIS 0x0004 // Modem status interrupt
+#define AAEC_UART_INT_RTIS 0x0008 // Rx timeout interrupt
+//#define AAEC_UART_MCTRL 0x0100 // Modem control
+
+//---------------------------------------------------------------------------
+// Pump control
+#define AAEC_PUMP_CONTROL 0x80000900 // Control
+#define AAEC_PUMP_FREQUENCY 0x80000908 // Frequency
+
+//---------------------------------------------------------------------------
+// Codec
+#define AAEC_COD_CDEOI 0x80000a0c // codec end of interrupt
+
+//---------------------------------------------------------------------------
+// Synchronous Serial Peripheral (SSP)
+#define AAEC_SSP_CR0 0x80000B00 // Control Register 0
+#define AAEC_SSP_CR0_SCR 8 // Serial clock rate - Bits 15..8
+#define AAEC_SSP_CR0_SCR_MASK (0x7F<<AAEC_SSP_CR0_SCR)
+#define AAEC_SSP_CR0_SSE 7 // SSP enable/disable
+#define AAEC_SSP_CR0_SSE_MASK (1<<AAEC_SSP_CR0_SSE)
+#define AAEC_SSP_CR0_SSE_ON 1
+#define AAEC_SSP_CR0_SSE_OFF 0
+#define AAEC_SSP_CR0_FRF 4 // Frame format
+#define AAEC_SSP_CR0_FRF_MASK (0x3<<AAEC_SSP_CR0_FRF)
+#define AAEC_SSP_CR0_FRF_MOT 0 // Motorola SPI
+#define AAEC_SSP_CR0_FRF_TI 1 // TI synchronous serial frame
+#define AAEC_SSP_CR0_FRF_NAT 2 // National microwire
+#define AAEC_SSP_CR0_SIZE 0 // Data size
+#define AAEC_SSP_CR0_SIZE_MASK (0xF<<AAEC_SSP_CR0_SIZE)
+#define AAEC_SSP_CR1 0x80000B04 // Control Register 1
+#define AAEC_SSP_CR1_TXIDLE 7 // Tx idle interrupt
+#define AAEC_SSP_CR1_FEN 6 // FIFO enable
+#define AAEC_SSP_CR1_RORIE 5 // Rx FIFO overrun interrupt
+#define AAEC_SSP_CR1_SPH 4 // SCLK phase
+#define AAEC_SSP_CR1_SPO 3 // SCLK polarity
+#define AAEC_SSP_CR1_LBM 2 // Lookpback
+#define AAEC_SSP_CR1_TIE 1 // Tx interrupt
+#define AAEC_SSP_CR1_RIE 0 // Rx Interrupt
+#define AAEC_SSP_IIR 0x80000B08 // Interrupt ID register (read)
+#define AAEC_SSP_IIR_TXIDLE 7 // Tx idle interrupt
+#define AAEC_SSP_IIR_ROR 6 // Rx overrun
+#define AAEC_SSP_IIR_TI 1 // Tx FIFO less than half full
+#define AAEC_SSP_IIR_RI 0 // Rx FIFO more than half full
+#define AAEC_SSP_ICR 0x80000B08 // Interrupt Clear register (write)
+#define AAEC_SSP_DR 0x80000B0C // Data [FIFO] register
+#define AAEC_SSP_CPSR 0x80000B10 // Clock prescale
+#define AAEC_SSP_SR 0x80000B14 // Status register
+#define AAEC_SSP_SR_RFF 8 // Rx FIFO full
+#define AAEC_SSP_SR_TFE 7 // Tx FIFO empty
+#define AAEC_SSP_SR_ROR 6 // Rx FIFO overrun
+#define AAEC_SSP_SR_RHF 5 // Rx FIFO half full
+#define AAEC_SSP_SR_THE 4 // Tx FIFO half empty
+#define AAEC_SSP_SR_BSY 3 // SSP is busy
+#define AAEC_SSP_SR_RNE 2 // Rx FIFO not empty
+#define AAEC_SSP_SR_TNF 1 // Tx FIFO not full
+
+//---------------------------------------------------------------------------
+// Timer/counter
+#define AAEC_TMR_T1_BASE 0x80000C00 // Timer #1 - preload
+#define AAEC_TMR_T1LOAD 0x80000C00 // Timer #1 - preload
+#define AAEC_TMR_T1VALUE 0x80000C04 // Timer #1 - current value
+#define AAEC_TMR_T1CONTROL 0x80000C08 // Timer #1 - control
+#define AAEC_TMR_T1EOI 0x80000C0C // Timer #1 - clear [end] interrupt
+#define AAEC_TMR_T2LOAD 0x80000C20 // Timer #2 - preload
+#define AAEC_TMR_T2VALUE 0x80000C24 // Timer #2 - current value
+#define AAEC_TMR_T2CONTROL 0x80000C28 // Timer #2 - control
+#define AAEC_TMR_T2EOI 0x80000C2C // Timer #2 - clear [end] interrupt
+#define AAEC_TMR_BZCONT 0x80000C40
+#define AAEC_TMR_T3LOAD 0x80000C80 // Timer #3 - preload
+#define AAEC_TMR_T3VALUE 0x80000C84 // Timer #3 - current value
+#define AAEC_TMR_T3CONTROL 0x80000C88 // Timer #3 - control
+#define AAEC_TMR_T3EOI 0x80000C8C // Timer #3 - clear [end] interrupt
+
+#define AAEC_TMR_TxLOAD_OFFSET 0
+#define AAEC_TMR_TxVALUE_OFFSET 4
+#define AAEC_TMR_TxCONTROL_OFFSET 8
+#define AAEC_TMR_TxEOI_OFFSET 12
+
+#define AAEC_TMR_TxCONTROL_ENABLE (1<<7) // Enable (start) timer
+#define AAEC_TMR_TxCONTROL_MODE (1<<6) // Operating mode
+#define AAEC_TMR_TxCONTROL_MODE_FREE (0x00&AAEC_TMR_TxCONTROL_MODE)
+#define AAEC_TMR_TxCONTROL_MODE_PERIODIC (0xFF&AAEC_TMR_TxCONTROL_MODE)
+#define AAEC_TMR_TxCONTROL_CLKSEL (1<<3) // Clock select (timer 1,2)
+#define AAEC_TMR_TxCONTROL_508KHZ (1<<3)
+#define AAEC_TMR_TxCONTROL_2KHZ (0<<3)
+
+#define AAEC_TMR_TxCONTROL_508KHZ_uS(_n_) ((_n_)*508000/1000000)
+
+//---------------------------------------------------------------------------
+// RTC
+#define AAEC_RTC_RTCEOI 0x80000d10 // RTC end of interrupt
+
+//---------------------------------------------------------------------------
+// GPIO registers
+#define AAEC_PCDR 0x80000e08
+#define AAEC_PBDDR 0x80000e14
+#define AAEC_PCCDR 0x80000e18
+#define AAEC_KSCAN 0x80000e28
+#define AAEC_PINMUX 0x80000e2c
+#define AAEC_PFDR 0x80000e30
+#define AAEC_PFDDR 0x80000e34
+#define AAEC_GPIO_INT_TYPE1 0x80000e4c
+#define AAEC_GPIO_INT_TYPE2 0x80000e50
+#define AAEC_GPIO_FEOI 0x80000e54
+#define AAEC_GPIO_INTEN 0x80000e58
+#define AAEC_GPIO_INT_STATUS 0x80000e5c
+#define AAEC_PINMUX_UART3CON 0x00000008
+#define AAEC_PINMUX_CODECON 0x00000004
+#define AAEC_PINMUX_PD0CON 0x00000002
+#define AAEC_PINMUX_PE0CON 0x00000001
+
+
+//---------------------------------------------------------------------------
+// Static memory controller
+#define AAEC_SMCBCR0 0x80002000
+#define AAEC_SMCBCR1 0x80002004
+#define AAEC_SMCBCR2 0x80002008
+#define AAEC_SMCBCR3 0x8000200c
+
+#define AAEC_SMCBCR_MW8 0x00000000
+#define AAEC_SMCBCR_MW16 0x10000000
+#define AAEC_SMCBCR_MW32 0x30000000
+#define AAEC_SMCBCR_PME 0x08000000
+#define AAEC_SMCBCR_WP 0x04000000
+#define AAEC_SMCBCR_WPERR 0x02000000
+#define AAEC_SMCBCR_WST(_n_) (((((_n_)-1)&0x1f)<<11) | ((((_n_)-1)&0x1f)<<5)) // for n 1-32
+#define AAEC_SMCBCR_IDCY(_n_) ((((_n_)-1)&0x0f)<<0) // for n 1-16
+
+// These settings come from the Agilent startup.s file
+// [note, the WST values match their values, not the comments]
+// CS0: Flash, access=90ns, hold=30ns
+// CS1: ethernet, access=162ns, hold=47ns
+// CS2: GPIO, access=14ns, hold=14ns
+#if (75 == CYGNUM_HAL_ARM_AAED2000_BUS_CLOCK_MHZ)
+# define _CS0_WST 8
+# define _CS0_IDCY 3
+# define _CS1_WST 14
+# define _CS1_IDCY 4
+# define _CS3_WST 3
+# define _CS3_IDCY 2
+#elif (83 == CYGNUM_HAL_ARM_AAED2000_BUS_CLOCK_MHZ)
+# define _CS0_WST 9
+# define _CS0_IDCY 3
+# define _CS1_WST 15
+# define _CS1_IDCY 4
+# define _CS3_WST 3
+# define _CS3_IDCY 2
+#else
+# error "Unsupported clocking"
+#endif
+
+
+//---------------------------------------------------------------------------
+// Synchronous memory controller
+#define AAEC_SMC_GLOBAL 0x80002404
+#define AAEC_SMC_REFRESH_TIME 0x80002408
+#define AAEC_SMC_BOOT_STATUS 0x8000240c
+#define AAEC_SMC_DEV0 0x80002410
+#define AAEC_SMC_DEV1 0x80002414
+#define AAEC_SMC_DEV2 0x80002418
+#define AAEC_SMC_DEV3 0x8000241c
+
+#define AAEC_SMC_GLOBAL_CKE 0x80000000
+#define AAEC_SMC_GLOBAL_CS 0x40000000
+#define AAEC_SMC_GLOBAL_LCR 0x00000040
+#define AAEC_SMC_GLOBAL_BUSY 0x00000020
+#define AAEC_SMC_GLOBAL_MRS 0x00000002
+#define AAEC_SMC_GLOBAL_INIT 0x00000001
+
+#define AAEC_SMC_GLOBAL_CMD_NOP (AAEC_SMC_GLOBAL_INIT|AAEC_SMC_GLOBAL_MRS)
+#define AAEC_SMC_GLOBAL_CMD_PREALL (AAEC_SMC_GLOBAL_INIT)
+#define AAEC_SMC_GLOBAL_CMD_MODE (AAEC_SMC_GLOBAL_MRS)
+#define AAEC_SMC_GLOBAL_CMD_ENABLE (AAEC_SMC_GLOBAL_CKE)
+
+
+#define AAEC_SMC_DEV_AUTOP 0x01000000
+#define AAEC_SMC_DEV_RAS_2 0x00200000
+#define AAEC_SMC_DEV_RAS_3 0x00300000
+#define AAEC_SMC_DEV_WBL_4 0x00080000
+#define AAEC_SMC_DEV_WBL_1 0x00000000
+#define AAEC_SMC_DEV_CASLAT(_n_) (((_n_)-1)<<16) // 2-7
+#define AAEC_SMC_DEV_2KPAGE 0x00000040
+#define AAEC_SMC_DEV_SROMLL 0x00000020
+#define AAEC_SMC_DEV_SROM512 0x00000010
+#define AAEC_SMC_DEV_BANKS_2 0x00000008
+#define AAEC_SMC_DEV_BANKS_4 0x00000000
+#define AAEC_SMC_DEV_WIDTH16 0x00000004
+#define AAEC_SMC_DEV_WIDTH32 0x00000000
+
+#define AAEC_SMC_DEV_INIT ( AAEC_SMC_DEV_RAS_2 \
+ |AAEC_SMC_DEV_CASLAT(3) \
+ |AAEC_SMC_DEV_BANKS_2)
+
+//---------------------------------------------------------------------------
+// LCD controller
+#define AAEC_LCD_TIMING0 0x80003000 // Timing registers
+#define AAEC_LCD_TIMING1 0x80003004
+#define AAEC_LCD_TIMING2 0x80003008
+#define AAEC_LCD_TIMING3 0x8000300C
+#define AAEC_LCD_UPBASE 0x80003010 // Upper panel DMA address
+#define AAEC_LCD_LPBASE 0x80003014 // Lower panel DMA address
+#define AAEC_LCD_MASK 0x80003018 // Status mask
+#define AAEC_LCD_CONTROL 0x8000301C // Control
+#define AAEC_LCD_CONTROL_ENAB 0x00000001 // Enable controller
+#define AAEC_LCD_CONTROL_PWR_ENAB 0x00000800 // Enables signals
+#define AAEC_LCD_STATUS 0x80003020 // Status
+#define AAEC_LCD_INTERRUPT 0x80003024 // Interrupts
+#define AAEC_LCD_UPCURR 0x80003028 // Upper panel current address
+#define AAEC_LCD_LPCURR 0x8000302C // Lower panel current address
+#define AAEC_LCD_LPOVERFLOW 0x80003030 // Panel overflow
+#define AAEC_LCD_PALETTE 0x80003200 // Palette
+
+//---------------------------------------------------------------------------
+// Extended GPIO bits [platform specific]
+#define AAED_EXT_GPIO 0x30000000
+#define AAED_EXT_GPIO_KBD_SCAN 0x00003FFF // Keyboard scan data
+#define AAED_EXT_GPIO_PWR_INT 0x00008FFF // Smart battery charger interrupt
+#define AAED_EXT_GPIO_SWITCHES 0x000F0000 // DIP switches
+#define AAED_EXT_GPIO_SWITCHES_SHIFT 16
+#define AAED_EXT_GPIO_USB_VBUS 0x00400000 // USB Vbus sense
+#define AAED_EXT_GPIO_LCD_PWR_EN 0x02000000 // LCD (& backlight) power enable
+#define AAED_EXT_GPIO_LED0 0x20000000 // LED 0 (0=>ON, 1=>OFF)
+#define AAED_EXT_GPIO_LED1 0x40000000 // LED 1 (0=>ON, 1=>OFF)
+#define AAED_EXT_GPIO_LED2 0x80000000 // LED 2 (0=>ON, 1=>OFF)
+
+/*---------------------------------------------------------------------------*/
+/* end of aaed2000.h */
+#endif /* CYGONCE_AAED2000_H */
diff --git a/ecos/packages/hal/arm/arm9/aaed2000/current/include/hal_diag.h b/ecos/packages/hal/arm/arm9/aaed2000/current/include/hal_diag.h
new file mode 100644
index 0000000..5842124
--- /dev/null
+++ b/ecos/packages/hal/arm/arm9/aaed2000/current/include/hal_diag.h
@@ -0,0 +1,71 @@
+#ifndef CYGONCE_HAL_DIAG_H
+#define CYGONCE_HAL_DIAG_H
+/*=============================================================================
+//
+// hal_diag.h
+//
+// HAL Support for Kernel Diagnostic Routines
+//
+//=============================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): gthomas
+// Contributors: gthomas
+// Date: 2001-10-30
+// 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>
+#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_)
+
+// Not the best place for this, but ...
+externC void hal_delay_us(cyg_int32 usecs);
+
+#define HAL_DELAY_US(n) hal_delay_us(n);
+
+/*---------------------------------------------------------------------------*/
+/* end of hal_diag.h */
+#endif /* CYGONCE_HAL_DIAG_H */
diff --git a/ecos/packages/hal/arm/arm9/aaed2000/current/include/hal_platform_ints.h b/ecos/packages/hal/arm/arm9/aaed2000/current/include/hal_platform_ints.h
new file mode 100644
index 0000000..f14168d
--- /dev/null
+++ b/ecos/packages/hal/arm/arm9/aaed2000/current/include/hal_platform_ints.h
@@ -0,0 +1,115 @@
+#ifndef CYGONCE_HAL_PLATFORM_INTS_H
+#define CYGONCE_HAL_PLATFORM_INTS_H
+//==========================================================================
+//
+// hal_platform_ints.h
+//
+// HAL Interrupt and clock support
+//
+//==========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//==========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jskov
+// Contributors: jskov
+// Date: 2001-11-02
+// Purpose: Define Interrupt support
+// Description: The interrupt details for the Agilent AAED2000 are defined here.
+// Usage:
+// #include <cyg/hal/hal_platform_ints.h>
+// ...
+//
+//
+//####DESCRIPTIONEND####
+//
+//==========================================================================
+
+// These are interrupts on the AAEC-2000 core
+
+#define CYGNUM_HAL_INTERRUPT_GPIO0FIQ 0
+#define CYGNUM_HAL_INTERRUPT_TS CYGNUM_HAL_INTERRUPT_GPIO0FIQ
+#define CYGNUM_HAL_INTERRUPT_BLINT 1
+#define CYGNUM_HAL_INTERRUPT_WEINT 2
+#define CYGNUM_HAL_INTERRUPT_MCINT 3
+#define CYGNUM_HAL_INTERRUPT_CSINT 4
+#define CYGNUM_HAL_INTERRUPT_GPIO1INTR 5
+#define CYGNUM_HAL_INTERRUPT_ETH CYGNUM_HAL_INTERRUPT_GPIO1INTR
+#define CYGNUM_HAL_INTERRUPT_GPIO2INTR 6
+#define CYGNUM_HAL_INTERRUPT_PCMCIA_CD2 CYGNUM_HAL_INTERRUPT_GPIO2INTR
+#define CYGNUM_HAL_INTERRUPT_GPIO3INTR 7
+#define CYGNUM_HAL_INTERRUPT_PCMCIA_CD1 CYGNUM_HAL_INTERRUPT_GPIO3INTR
+#define CYGNUM_HAL_INTERRUPT_TC1OI 8
+#define CYGNUM_HAL_INTERRUPT_TC2OI 9
+#define CYGNUM_HAL_INTERRUPT_RTCMI 10
+#define CYGNUM_HAL_INTERRUPT_TINTR 11
+#define CYGNUM_HAL_INTERRUPT_UART1INTR 12
+#define CYGNUM_HAL_INTERRUPT_UART2INTR 13
+#define CYGNUM_HAL_INTERRUPT_LCDINTR 14
+#define CYGNUM_HAL_INTERRUPT_SSEOTI 15
+#define CYGNUM_HAL_INTERRUPT_UART3INTR 16
+#define CYGNUM_HAL_INTERRUPT_SCIINTR 17
+#define CYGNUM_HAL_INTERRUPT_AACINTR 18
+#define CYGNUM_HAL_INTERRUPT_MMCINTR 19
+#define CYGNUM_HAL_INTERRUPT_USBINTR 20
+#define CYGNUM_HAL_INTERRUPT_DMAINTR 21
+#define CYGNUM_HAL_INTERRUPT_TC3OI 22
+#define CYGNUM_HAL_INTERRUPT_GPIO4INTR 23
+#define CYGNUM_HAL_INTERRUPT_SCI_VCCEN CYGNUM_HAL_INTERRUPT_GPIO4INTR
+#define CYGNUM_HAL_INTERRUPT_GPIO5INTR 24
+#define CYGNUM_HAL_INTERRUPT_SCI_DETECT CYGNUM_HAL_INTERRUPT_GPIO5INTR
+#define CYGNUM_HAL_INTERRUPT_GPIO6INTR 25
+#define CYGNUM_HAL_INTERRUPT_PCMCIA_RDY1 CYGNUM_HAL_INTERRUPT_GPIO6INTR
+#define CYGNUM_HAL_INTERRUPT_GPIO7INTR 26
+#define CYGNUM_HAL_INTERRUPT_PCMCIA_RDY2 CYGNUM_HAL_INTERRUPT_GPIO7INTR
+#define CYGNUM_HAL_INTERRUPT_BMIINTR 27
+
+#define CYGNUM_HAL_INTERRUPT_NONE -1
+
+#define CYGNUM_HAL_ISR_MIN 0
+#define CYGNUM_HAL_ISR_MAX (CYGNUM_HAL_INTERRUPT_BMIINTR)
+
+#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_TC1OI
+
+//----------------------------------------------------------------------------
+// Reset.
+
+externC void cyg_hal_arm9_soft_reset(CYG_ADDRESS);
+#define HAL_PLATFORM_RESET() cyg_hal_arm9_soft_reset(0)
+
+#define HAL_PLATFORM_RESET_ENTRY 0x00000000
+
+#endif // CYGONCE_HAL_PLATFORM_INTS_H
diff --git a/ecos/packages/hal/arm/arm9/aaed2000/current/include/hal_platform_setup.h b/ecos/packages/hal/arm/arm9/aaed2000/current/include/hal_platform_setup.h
new file mode 100644
index 0000000..e591eb1
--- /dev/null
+++ b/ecos/packages/hal/arm/arm9/aaed2000/current/include/hal_platform_setup.h
@@ -0,0 +1,269 @@
+#ifndef CYGONCE_HAL_PLATFORM_SETUP_H
+#define CYGONCE_HAL_PLATFORM_SETUP_H
+/*=============================================================================
+//
+// hal_platform_setup.h
+//
+// Platform specific support for HAL (assembly code)
+//
+//=============================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): gthomas
+// Contributors: gthomas
+// Date: 2001-10-27
+// Purpose: ARM9/AAED2000 platform specific support routines
+// Description:
+// Usage: #include <cyg/hal/hal_platform_setup.h>
+// Only used by "vectors.S"
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================*/
+
+#include <pkgconf/system.h> // System-wide configuration info
+#include CYGBLD_HAL_VARIANT_H // Variant specific configuration
+#include CYGBLD_HAL_PLATFORM_H // Platform specific configuration
+#include <cyg/hal/hal_mmu.h> // MMU definitions
+#include <cyg/hal/aaed2000.h> // Platform specific hardware definitions
+
+#if defined(CYG_HAL_STARTUP_ROM) || defined(CYG_HAL_STARTUP_ROMRAM)
+#define PLATFORM_SETUP1 _platform_setup1
+#define CYGHWR_HAL_ARM_HAS_MMU
+#define CYGSEM_HAL_ROM_RESET_USES_JUMP
+
+// We need this here - can't rely on a translation table until MMU has
+// been initialized
+ .macro RAW_LED_MACRO x
+ ldr r0,=0x30000000
+ ldr r1,[r0]
+ bic r1,r1,#0xE0000000
+ orr r1,r1,#((0x7 & ~(\x))<<29)
+ str r1, [r0]
+ .endm
+
+// This macro represents the initial startup code for the platform
+ .macro _platform_setup1
+ RAW_LED_MACRO 0
+#ifndef CYG_HAL_STARTUP_RAM
+ // Prevent all interrupts
+ ldr r0,=AAEC_INT_ENC
+ mov r1,#-1
+ str r1,[r0]
+
+ // Disable and clear caches
+ mrc p15,0,r0,c1,c0,0
+ bic r0,r0,#0x1000 // disable ICache
+ bic r0,r0,#0x000f // disable DCache, write buffer,
+ // MMU and alignment faults
+ mcr p15,0,r0,c1,c0,0
+ nop
+ nop
+ mov r0,#0
+ mcr p15,0,r0,c7,c6,0 // clear data cache
+#if 0
+ mrc p15,0,r0,c15,c1,0 // disable streaming
+ orr r0,r0,#0x80
+ mcr p15,0,r0,c15,c1,0
+#endif
+
+ // Initialize memory controllers
+
+ // Static memory controller
+ // Area0: Flash: 32bit wide
+ ldr r0,=AAEC_SMCBCR0
+ ldr r1,=(AAEC_SMCBCR_MW32 | AAEC_SMCBCR_WST(_CS0_WST) | AAEC_SMCBCR_IDCY(_CS0_IDCY))
+ str r1,[r0]
+ // Area1: Ethernet: 16bit wide
+ ldr r0,=AAEC_SMCBCR1
+ ldr r1,=(AAEC_SMCBCR_MW16 | AAEC_SMCBCR_WST(_CS1_WST) | AAEC_SMCBCR_IDCY(_CS1_IDCY))
+ str r1,[r0]
+ // Area3: GPIO: 32bit wide
+ ldr r0,=AAEC_SMCBCR3
+ ldr r1,=(AAEC_SMCBCR_MW32 | AAEC_SMCBCR_WST(_CS3_WST) | AAEC_SMCBCR_IDCY(_CS3_IDCY))
+ str r1,[r0]
+ RAW_LED_MACRO 1
+
+ // Set clock frequencies
+ // First set CPU to synchronous mode
+ mrc p15, 0, r0, c1, c0, 0
+ // configure for synchronous mode: FCLK >= HCLK by integer
+ // multiple
+ orr r0, r0, #0x40000000
+ // configure for FastBus mode - FCLK and HCLK *must* be equal
+ // bic r0, r0, #0x40000000
+ bic r0, r0, #0x80000000
+ mcr p15, 0, r0, c1, c0, 0
+
+ ldr r0,=AAEC_CSC_CLKSET
+ ldr r1,=AAEC_CSC_CLKSET_INIT
+ str r1,[r0]
+ // follow clock change by 5 NOPs
+ nop;nop;nop;nop;nop
+
+
+ // Synchronous memory controller (as per table 4-12)
+
+ ldr r0,=AAEC_SMC_DEV0
+ ldr r1,=AAEC_SMC_DEV_INIT
+ str r1,[r0]
+ str r1,[r0, #4]
+ str r1,[r0, #8]
+ str r1,[r0, #12]
+
+ // step1: delay 100usecs
+ ldr r2,=AAEC_TMR_T1_BASE
+ ldr r3,=AAEC_TMR_TxCONTROL_508KHZ_uS(100)
+ str r3,[r2, #AAEC_TMR_TxLOAD_OFFSET]
+ ldr r3,=(AAEC_TMR_TxCONTROL_ENABLE|AAEC_TMR_TxCONTROL_MODE_FREE|AAEC_TMR_TxCONTROL_508KHZ)
+ str r3,[r2, #AAEC_TMR_TxCONTROL_OFFSET]
+1: ldr r3,[r2, #AAEC_TMR_TxVALUE_OFFSET]
+ cmp r3,#0
+ bne 1b
+ str r3,[r2, #AAEC_TMR_TxCONTROL_OFFSET]
+
+ // step2: issue NOP command
+ ldr r0,=AAEC_SMC_GLOBAL
+ ldr r1,=AAEC_SMC_GLOBAL_CMD_NOP
+ str r1,[r0]
+
+ // step3: wait 200usecs
+ ldr r3,=AAEC_TMR_TxCONTROL_508KHZ_uS(200)
+ str r3,[r2, #AAEC_TMR_TxLOAD_OFFSET]
+ ldr r3,=(AAEC_TMR_TxCONTROL_ENABLE|AAEC_TMR_TxCONTROL_MODE_FREE|AAEC_TMR_TxCONTROL_508KHZ)
+ str r3,[r2, #AAEC_TMR_TxCONTROL_OFFSET]
+1: ldr r3,[r2, #AAEC_TMR_TxVALUE_OFFSET]
+ cmp r3,#0
+ bne 1b
+ str r3,[r2, #AAEC_TMR_TxCONTROL_OFFSET]
+
+ // step4: PreCharge All
+ ldr r1,=AAEC_SMC_GLOBAL_CMD_PREALL
+ str r1,[r0]
+
+ // step5: set refresh time to 10
+ ldr r3,=AAEC_SMC_REFRESH_TIME
+ mov r4,#10
+ str r4,[r3]
+
+ // step6: wait 80 clock cycles, allowing 8 refresh cycles for SDRAM
+ mov r3, #100
+1: subs r3, r3, #1
+ bne 1b
+
+ // step7: set normal refresh count
+ // We need to do a refresh every 15.6usecs. The counter runs
+ // at bus clock, so the delay is (15.6usecs*bus speed) or
+ // (156*(bus speed/10)/1000000).
+ ldr r3,=AAEC_SMC_REFRESH_TIME
+ ldr r4,=(156*(CYGNUM_HAL_ARM_AAED2000_BUS_CLOCK/10)/1000000)
+ str r4,[r3]
+
+ // step8: set mode
+ ldr r1,=AAEC_SMC_GLOBAL_CMD_MODE
+ str r1,[r0]
+
+ // step9: program mode
+ // from page 36: SDRAM, WBL=0, TM=0, CAS=3, Sequential, BL=4
+ ldr r3,=0xf000c800
+ ldr r3,[r3]
+
+ // step10: enable SDRAM
+ // step8: set mode
+ ldr r1,=AAEC_SMC_GLOBAL_CMD_ENABLE
+ str r1,[r0]
+ RAW_LED_MACRO 2
+#endif
+#ifdef CYG_HAL_STARTUP_ROMRAM
+ // Compute [logical] base address of this image in ROM
+ bl 10f
+10: mov r9,lr
+ ldr r8,=~0xFF01FFFF // Bits to ignore
+ and r9,r9,r8
+ orr r9,r9,#0x60000000 // Turn into ROM address
+#endif
+
+ // Set up a stack [for calling C code]
+ ldr r1,=__startup_stack
+ ldr r2,=AAED2000_SDRAM_PHYS_BASE
+ orr sp,r1,r2
+
+ // Create MMU tables
+ RAW_LED_MACRO 4
+ bl hal_mmu_init
+ RAW_LED_MACRO 5
+
+ // Enable MMU
+ ldr r2,=10f
+#ifdef CYG_HAL_STARTUP_ROMRAM
+ ldr r1,=__exception_handlers
+ sub r1,r2,r1
+ add r2,r9,r1 // r9 has ROM offset
+#endif
+ 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:
+ RAW_LED_MACRO 6
+
+#ifdef CYG_HAL_STARTUP_ROMRAM
+ mov r0,r9 // Relocate FLASH/ROM to RAM
+ ldr r1,=__exception_handlers // ram base & length
+ ldr r2,=__rom_data_end
+20: ldr r3,[r0],#4
+ str r3,[r1],#4
+ cmp r1,r2
+ bne 20b
+ ldr r0,=30f
+ mov pc,r0
+ nop
+ nop
+ nop
+ nop
+30:
+#endif
+ RAW_LED_MACRO 7
+ .endm
+
+#else // defined(CYG_HAL_STARTUP_RAM)
+#define PLATFORM_SETUP1
+#endif
+
+//-----------------------------------------------------------------------------
+// end of hal_platform_setup.h
+#endif // CYGONCE_HAL_PLATFORM_SETUP_H
diff --git a/ecos/packages/hal/arm/arm9/aaed2000/current/include/lcd_support.h b/ecos/packages/hal/arm/arm9/aaed2000/current/include/lcd_support.h
new file mode 100644
index 0000000..a68c825
--- /dev/null
+++ b/ecos/packages/hal/arm/arm9/aaed2000/current/include/lcd_support.h
@@ -0,0 +1,75 @@
+#ifndef _LCD_SUPPORT_H_
+#define _LCD_SUPPORT_H_
+//==========================================================================
+//
+// lcd_support.h
+//
+// Agilent AAED-2000 - LCD support routines
+//
+//==========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//==========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): gthomas
+// Contributors: gthomas
+// Date: 2001-09-29
+// Description: Simple LCD support
+//####DESCRIPTIONEND####
+
+struct lcd_info {
+ short height, width; // Pixels
+ short bpp; // Depth (bits/pixel)
+ short type;
+ short rlen; // Length of one raster line in bytes
+ void *fb; // Frame buffer
+};
+
+// Frame buffer types - used by MicroWindows
+#define FB_TRUE_RGB555 0x02
+
+// Exported functions
+void lcd_init(int depth);
+void lcd_clear(void);
+int lcd_getinfo(struct lcd_info *info);
+void lcd_on(bool enable);
+#ifdef CYGSEM_AAED2000_LCD_COMM
+void lcd_moveto(int X, int Y);
+void lcd_putc(cyg_int8 c);
+int lcd_printf(char const *fmt, ...);
+void lcd_setbg(int red, int green, int blue);
+void lcd_setfg(int red, int green, int blue);
+void lcd_comm_init(void);
+#endif
+
+#endif // _LCD_SUPPORT_H_
diff --git a/ecos/packages/hal/arm/arm9/aaed2000/current/include/pkgconf/mlt_arm_arm9_aaed2000_ram.h b/ecos/packages/hal/arm/arm9/aaed2000/current/include/pkgconf/mlt_arm_arm9_aaed2000_ram.h
new file mode 100644
index 0000000..56a4b28
--- /dev/null
+++ b/ecos/packages/hal/arm/arm9/aaed2000/current/include/pkgconf/mlt_arm_arm9_aaed2000_ram.h
@@ -0,0 +1,20 @@
+// eCos memory layout - Tue Oct 30 16:49:43 2001
+
+// This is a generated file - do not edit
+
+#ifndef __ASSEMBLER__
+#include <cyg/infra/cyg_type.h>
+#include <stddef.h>
+
+#endif
+#define CYGMEM_REGION_ram (0)
+#define CYGMEM_REGION_ram_SIZE (0x1F60000)
+#define CYGMEM_REGION_ram_ATTR (CYGMEM_REGION_ATTR_R | CYGMEM_REGION_ATTR_W)
+#define CYGMEM_REGION_lcd (0x1f60000)
+#define CYGMEM_REGION_lcd_SIZE (0xa0000)
+#define CYGMEM_REGION_lcd_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 (0x1F60000 - (size_t) CYG_LABEL_NAME (__heap1))
diff --git a/ecos/packages/hal/arm/arm9/aaed2000/current/include/pkgconf/mlt_arm_arm9_aaed2000_ram.ldi b/ecos/packages/hal/arm/arm9/aaed2000/current/include/pkgconf/mlt_arm_arm9_aaed2000_ram.ldi
new file mode 100644
index 0000000..2fd3c66
--- /dev/null
+++ b/ecos/packages/hal/arm/arm9/aaed2000/current/include/pkgconf/mlt_arm_arm9_aaed2000_ram.ldi
@@ -0,0 +1,30 @@
+// eCos memory layout - Tue Oct 30 16:49:43 2001
+
+// This is a generated file - do not edit
+
+#include <cyg/infra/cyg_type.inc>
+
+MEMORY
+{
+ ram : ORIGIN = 0, LENGTH = 0x1F80000
+ lcd : ORIGIN = 0x1f60000, LENGTH = 0xA0000
+}
+
+SECTIONS
+{
+ SECTIONS_BEGIN
+ SECTION_fixed_vectors (ram, 0x20, LMA_EQ_VMA)
+ SECTION_rom_vectors (ram, 0x40000, LMA_EQ_VMA)
+ SECTION_RELOCS (ram, ALIGN (0x1), 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_got (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)
+ CYG_LABEL_DEFN(__heap1) = ALIGN (0x8);
+ SECTIONS_END
+}
diff --git a/ecos/packages/hal/arm/arm9/aaed2000/current/include/pkgconf/mlt_arm_arm9_aaed2000_ram.mlt b/ecos/packages/hal/arm/arm9/aaed2000/current/include/pkgconf/mlt_arm_arm9_aaed2000_ram.mlt
new file mode 100644
index 0000000..65b4c77
--- /dev/null
+++ b/ecos/packages/hal/arm/arm9/aaed2000/current/include/pkgconf/mlt_arm_arm9_aaed2000_ram.mlt
@@ -0,0 +1,16 @@
+version 0
+region ram 0 1fa0000 0 !
+region lcd 1fa0000 a0000 1 !
+section fixed_vectors 0 1 0 1 1 0 1 0 20 20 !
+section rom_vectors 0 1 0 1 1 1 1 1 40000 40000 RELOCS RELOCS !
+section RELOCS 0 1 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 4 0 1 0 1 0 1 rodata1 rodata1 !
+section rodata1 0 4 0 1 0 1 0 1 got got !
+section got 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 1 0 1 heap1 heap1 !
+section heap1 0 8 0 0 0 0 0 0 !
diff --git a/ecos/packages/hal/arm/arm9/aaed2000/current/include/pkgconf/mlt_arm_arm9_aaed2000_rom.h b/ecos/packages/hal/arm/arm9/aaed2000/current/include/pkgconf/mlt_arm_arm9_aaed2000_rom.h
new file mode 100644
index 0000000..62cc226
--- /dev/null
+++ b/ecos/packages/hal/arm/arm9/aaed2000/current/include/pkgconf/mlt_arm_arm9_aaed2000_rom.h
@@ -0,0 +1,20 @@
+// eCos memory layout - Mon Nov 12 14:25:25 2001
+
+// This is a generated file - do not edit
+
+#ifndef __ASSEMBLER__
+#include <cyg/infra/cyg_type.h>
+#include <stddef.h>
+
+#endif
+#define CYGMEM_REGION_ram (0)
+#define CYGMEM_REGION_ram_SIZE (0x2000000)
+#define CYGMEM_REGION_ram_ATTR (CYGMEM_REGION_ATTR_R | CYGMEM_REGION_ATTR_W)
+#define CYGMEM_REGION_rom (0x60000000)
+#define CYGMEM_REGION_rom_SIZE (0x200000)
+#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 (0x2000000 - (size_t) CYG_LABEL_NAME (__heap1))
diff --git a/ecos/packages/hal/arm/arm9/aaed2000/current/include/pkgconf/mlt_arm_arm9_aaed2000_rom.ldi b/ecos/packages/hal/arm/arm9/aaed2000/current/include/pkgconf/mlt_arm_arm9_aaed2000_rom.ldi
new file mode 100644
index 0000000..6f0320c
--- /dev/null
+++ b/ecos/packages/hal/arm/arm9/aaed2000/current/include/pkgconf/mlt_arm_arm9_aaed2000_rom.ldi
@@ -0,0 +1,30 @@
+// eCos memory layout - Mon Nov 12 14:25:25 2001
+
+// This is a generated file - do not edit
+
+#include <cyg/infra/cyg_type.inc>
+
+MEMORY
+{
+ ram : ORIGIN = 0, LENGTH = 0x2000000
+ rom : ORIGIN = 0x60000000, LENGTH = 0x200000
+}
+
+SECTIONS
+{
+ SECTIONS_BEGIN
+ SECTION_rom_vectors (rom, 0x60000000, LMA_EQ_VMA)
+ SECTION_text (rom, ALIGN (0x4), LMA_EQ_VMA)
+ SECTION_RELOCS (rom, ALIGN (0x1), 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_got (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)
+ CYG_LABEL_DEFN(__heap1) = ALIGN (0x8);
+ SECTIONS_END
+}
diff --git a/ecos/packages/hal/arm/arm9/aaed2000/current/include/pkgconf/mlt_arm_arm9_aaed2000_rom.mlt b/ecos/packages/hal/arm/arm9/aaed2000/current/include/pkgconf/mlt_arm_arm9_aaed2000_rom.mlt
new file mode 100644
index 0000000..6c49df3
--- /dev/null
+++ b/ecos/packages/hal/arm/arm9/aaed2000/current/include/pkgconf/mlt_arm_arm9_aaed2000_rom.mlt
@@ -0,0 +1,16 @@
+version 0
+region ram 0 2000000 0 !
+region rom 60000000 200000 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 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 60000000 60000000 text text !
+section text 0 4 0 1 0 1 0 1 RELOCS RELOCS !
+section RELOCS 0 1 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 got got !
+section got 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 !
diff --git a/ecos/packages/hal/arm/arm9/aaed2000/current/include/pkgconf/mlt_arm_arm9_aaed2000_romram.h b/ecos/packages/hal/arm/arm9/aaed2000/current/include/pkgconf/mlt_arm_arm9_aaed2000_romram.h
new file mode 100644
index 0000000..553e537
--- /dev/null
+++ b/ecos/packages/hal/arm/arm9/aaed2000/current/include/pkgconf/mlt_arm_arm9_aaed2000_romram.h
@@ -0,0 +1,20 @@
+// eCos memory layout - Tue Oct 30 16:49:43 2001
+
+// This is a generated file - do not edit
+
+#ifndef __ASSEMBLER__
+#include <cyg/infra/cyg_type.h>
+#include <stddef.h>
+
+#endif
+#define CYGMEM_REGION_ram (0)
+#define CYGMEM_REGION_ram_SIZE (0x1F60000)
+#define CYGMEM_REGION_ram_ATTR (CYGMEM_REGION_ATTR_R | CYGMEM_REGION_ATTR_W)
+#define CYGMEM_REGION_lcd (0x1f60000)
+#define CYGMEM_REGION_lcd_SIZE (0xA0000)
+#define CYGMEM_REGION_lcd_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 (0x1Fa0000 - (size_t) CYG_LABEL_NAME (__heap1))
diff --git a/ecos/packages/hal/arm/arm9/aaed2000/current/include/pkgconf/mlt_arm_arm9_aaed2000_romram.ldi b/ecos/packages/hal/arm/arm9/aaed2000/current/include/pkgconf/mlt_arm_arm9_aaed2000_romram.ldi
new file mode 100644
index 0000000..c123162
--- /dev/null
+++ b/ecos/packages/hal/arm/arm9/aaed2000/current/include/pkgconf/mlt_arm_arm9_aaed2000_romram.ldi
@@ -0,0 +1,30 @@
+// eCos memory layout - Tue Oct 30 16:49:43 2001
+
+// This is a generated file - do not edit
+
+#include <cyg/infra/cyg_type.inc>
+
+MEMORY
+{
+ ram : ORIGIN = 0, LENGTH = 0x1F40000
+ lcd : ORIGIN = 0x1f60000, LENGTH = 0xa0000
+}
+
+SECTIONS
+{
+ SECTIONS_BEGIN
+ SECTION_fixed_vectors (ram, 0x20, LMA_EQ_VMA)
+ SECTION_rom_vectors (ram, 0x8000, LMA_EQ_VMA)
+ SECTION_RELOCS (ram, ALIGN (0x1), 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_got (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)
+ CYG_LABEL_DEFN(__heap1) = ALIGN (0x8);
+ SECTIONS_END
+}
diff --git a/ecos/packages/hal/arm/arm9/aaed2000/current/include/pkgconf/mlt_arm_arm9_aaed2000_romram.mlt b/ecos/packages/hal/arm/arm9/aaed2000/current/include/pkgconf/mlt_arm_arm9_aaed2000_romram.mlt
new file mode 100644
index 0000000..be8d0fe
--- /dev/null
+++ b/ecos/packages/hal/arm/arm9/aaed2000/current/include/pkgconf/mlt_arm_arm9_aaed2000_romram.mlt
@@ -0,0 +1,16 @@
+version 0
+region ram 0 1f40000 0 !
+region lcd 1f60000 a0000 1 !
+section fixed_vectors 0 1 0 1 1 0 1 0 20 20 !
+section rom_vectors 0 1 0 1 1 1 1 1 8000 8000 RELOCS RELOCS !
+section RELOCS 0 1 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 4 0 1 0 1 0 1 rodata1 rodata1 !
+section rodata1 0 4 0 1 0 1 0 1 got got !
+section got 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 1 0 1 heap1 heap1 !
+section heap1 0 8 0 0 0 0 0 0 !
diff --git a/ecos/packages/hal/arm/arm9/aaed2000/current/include/plf_io.h b/ecos/packages/hal/arm/arm9/aaed2000/current/include/plf_io.h
new file mode 100644
index 0000000..120e696
--- /dev/null
+++ b/ecos/packages/hal/arm/arm9/aaed2000/current/include/plf_io.h
@@ -0,0 +1,89 @@
+#ifndef CYGONCE_HAL_PLF_IO_H
+#define CYGONCE_HAL_PLF_IO_H
+//=============================================================================
+//
+// plf_io.h
+//
+// Platform specific registers
+//
+//=============================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jskov
+// Contributors:jskov
+// Date: 2001-10-31
+// Purpose: ARM/AAED2000 platform specific registers
+// Description:
+// Usage: #include <cyg/hal/plf_io.h>
+//
+//####DESCRIPTIONEND####
+//
+//=============================================================================
+
+#include <cyg/hal/aaed2000.h>
+
+//-----------------------------------------------------------------------------
+// Address space translation macros
+// FIXME: The SDRAM translation is only correct for the first block
+#define CYGARC_PHYSICAL_ADDRESS(_x_) \
+({ CYG_ADDRWORD _p = (CYG_ADDRWORD)(_x_); \
+ if (_p >= AAED2000_SDRAM_VIRT_BASE && \
+ _p < (AAED2000_SDRAM_VIRT_BASE+AAED2000_SDRAM_SIZE)) \
+ _p = (_p & AAED2000_SDRAM_MASK) + AAED2000_SDRAM_PHYS_BASE; \
+ else if (_p >= AAED2000_FLASH_VIRT_BASE && \
+ _p < (AAED2000_FLASH_VIRT_BASE+AAED2000_FLASH_SIZE)) \
+ _p = (_p & AAED2000_FLASH_MASK) + AAED2000_FLASH_PHYS_BASE; \
+ _p; })
+
+#define CYGARC_VIRTUAL_ADDRESS(_x_) \
+({ CYG_ADDRWORD _p = (CYG_ADDRWORD)(_x_); \
+ if (_p >= AAED2000_SDRAM_PHYS_BASE && \
+ _p < (AAED2000_SDRAM_PHYS_BASE+AAED2000_SDRAM_SIZE)) \
+ _p = (_p & AAED2000_SDRAM_MASK) + AAED2000_SDRAM_VIRT_BASE; \
+ else if (_p >= AAED2000_FLASH_PHYS_BASE && \
+ _p < (AAED2000_FLASH_PHYS_BASE+AAED2000_FLASH_SIZE)) \
+ _p = (_p & AAED2000_FLASH_MASK) + AAED2000_FLASH_VIRT_BASE; \
+ _p; })
+
+
+
+//-----------------------------------------------------------------------------
+// Macro used for translating from flash address used by RedBoot to that
+// used by ARM Boot monitor.
+#define _ADDR_REDBOOT_TO_ARM(x) (((CYG_ADDRESS)x & ~0x60000000) | 0x04000000)
+
+//-----------------------------------------------------------------------------
+// end of plf_io.h
+#endif // CYGONCE_HAL_PLF_IO_H
diff --git a/ecos/packages/hal/arm/arm9/aaed2000/current/include/plf_stub.h b/ecos/packages/hal/arm/arm9/aaed2000/current/include/plf_stub.h
new file mode 100644
index 0000000..a5eb8bd
--- /dev/null
+++ b/ecos/packages/hal/arm/arm9/aaed2000/current/include/plf_stub.h
@@ -0,0 +1,83 @@
+#ifndef CYGONCE_HAL_PLF_STUB_H
+#define CYGONCE_HAL_PLF_STUB_H
+
+//=============================================================================
+//
+// plf_stub.h
+//
+// Platform header for GDB stub support.
+//
+//=============================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jskov
+// Contributors:jskov, gthomas
+// Date: 2001-10-30
+// Purpose: Platform HAL stub support for Agilent AAED2000 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/arm_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.
+#define HAL_STUB_PLATFORM_INIT() CYG_EMPTY_STATEMENT
+
+#endif // ifdef CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS
+//-----------------------------------------------------------------------------
+#endif // CYGONCE_HAL_PLF_STUB_H
+// End of plf_stub.h
diff --git a/ecos/packages/hal/arm/arm9/aaed2000/current/misc/redboot_primary_RAM.ecm b/ecos/packages/hal/arm/arm9/aaed2000/current/misc/redboot_primary_RAM.ecm
new file mode 100644
index 0000000..577c8ac
--- /dev/null
+++ b/ecos/packages/hal/arm/arm9/aaed2000/current/misc/redboot_primary_RAM.ecm
@@ -0,0 +1,120 @@
+cdl_savefile_version 1;
+cdl_savefile_command cdl_savefile_version {};
+cdl_savefile_command cdl_savefile_command {};
+cdl_savefile_command cdl_configuration { description hardware template package };
+cdl_savefile_command cdl_package { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_component { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_option { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_interface { value_source user_value wizard_value inferred_value };
+
+cdl_configuration eCos {
+ description "" ;
+ hardware aaed2000 ;
+ template redboot ;
+ package -hardware CYGPKG_HAL_ARM current ;
+ package -hardware CYGPKG_HAL_ARM_ARM9 current ;
+ package -hardware CYGPKG_HAL_ARM_ARM9_AAED2000 current ;
+ package -hardware CYGPKG_DEVS_FLASH_ARM_AAED2000 current ;
+ package -hardware CYGPKG_DEVS_FLASH_AMD_AM29XXXXX current ;
+ package -hardware CYGPKG_DEVS_ETH_CL_CS8900A current ;
+ package -hardware CYGPKG_DEVS_ETH_ARM_AAED2000 current ;
+ package -template CYGPKG_HAL current ;
+ package -template CYGPKG_INFRA current ;
+ package -template CYGPKG_REDBOOT current ;
+ package -template CYGPKG_ISOINFRA current ;
+ package -template CYGPKG_LIBC_STRING current ;
+ package CYGPKG_NS_DNS current ;
+ package CYGPKG_IO_FLASH current ;
+ package CYGPKG_IO_ETH_DRIVERS current ;
+ package CYGPKG_COMPRESS_ZLIB current ;
+};
+
+cdl_option CYGNUM_HAL_COMMON_INTERRUPTS_STACK_SIZE {
+ user_value 4096
+};
+
+cdl_option CYGDBG_HAL_COMMON_INTERRUPTS_SAVE_MINIMUM_CONTEXT {
+ user_value 0
+};
+
+cdl_option CYGDBG_HAL_COMMON_CONTEXT_SAVE_MINIMUM {
+ inferred_value 0
+};
+
+cdl_option CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS {
+ inferred_value 1
+};
+
+cdl_option CYGSEM_HAL_USE_ROM_MONITOR {
+ inferred_value 0 0
+};
+
+cdl_option CYGPKG_HAL_ARM_ARM9_ARM920T {
+ inferred_value 1
+};
+
+cdl_component CYGBLD_BUILD_REDBOOT {
+ user_value 1
+};
+
+cdl_option CYGBLD_REDBOOT_MIN_IMAGE_SIZE {
+ user_value 0x00040000
+};
+
+cdl_option CYGBLD_REDBOOT_FLASH_BOOT_OFFSET {
+ inferred_value 0x0
+};
+
+cdl_option CYGNUM_REDBOOT_FLASH_RESERVED_BASE {
+ inferred_value 0x0
+};
+
+cdl_option CYGNUM_REDBOOT_FIS_DIRECTORY_BLOCK {
+ inferred_value -1
+};
+
+cdl_option CYGOPT_REDBOOT_FIS_REDBOOT_BACKUP {
+ inferred_value 0
+};
+
+cdl_option CYGOPT_REDBOOT_FIS_DIRECTORY_ARM_SIB_ID {
+ inferred_value 0
+};
+
+cdl_option CYGNUM_REDBOOT_FLASH_CONFIG_BLOCK {
+ inferred_value -2
+};
+
+cdl_option CYGHWR_REDBOOT_BOOTMONITOR {
+ user_value Primary
+};
+
+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_DNS_HEADER {
+ inferred_value 1 <cyg/ns/dns/dns.h>
+};
+
+cdl_option CYGPKG_NS_DNS_BUILD {
+ inferred_value 0
+};
+
+cdl_option CYGHWR_DEVS_FLASH_AMD_AM29LV640 {
+ inferred_value 1
+};
+
+
diff --git a/ecos/packages/hal/arm/arm9/aaed2000/current/misc/redboot_primary_ROMRAM.ecm b/ecos/packages/hal/arm/arm9/aaed2000/current/misc/redboot_primary_ROMRAM.ecm
new file mode 100644
index 0000000..6f249e6
--- /dev/null
+++ b/ecos/packages/hal/arm/arm9/aaed2000/current/misc/redboot_primary_ROMRAM.ecm
@@ -0,0 +1,126 @@
+cdl_savefile_version 1;
+cdl_savefile_command cdl_savefile_version {};
+cdl_savefile_command cdl_savefile_command {};
+cdl_savefile_command cdl_configuration { description hardware template package };
+cdl_savefile_command cdl_package { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_component { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_option { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_interface { value_source user_value wizard_value inferred_value };
+
+cdl_configuration eCos {
+ description "" ;
+ hardware aaed2000 ;
+ template redboot ;
+ package -hardware CYGPKG_HAL_ARM current ;
+ package -hardware CYGPKG_HAL_ARM_ARM9 current ;
+ package -hardware CYGPKG_HAL_ARM_ARM9_AAED2000 current ;
+ package -hardware CYGPKG_DEVS_FLASH_ARM_AAED2000 current ;
+ package -hardware CYGPKG_DEVS_FLASH_AMD_AM29XXXXX current ;
+ package -hardware CYGPKG_DEVS_ETH_CL_CS8900A current ;
+ package -hardware CYGPKG_DEVS_ETH_ARM_AAED2000 current ;
+ package -template CYGPKG_HAL current ;
+ package -template CYGPKG_INFRA current ;
+ package -template CYGPKG_REDBOOT current ;
+ package -template CYGPKG_ISOINFRA current ;
+ package -template CYGPKG_LIBC_STRING current ;
+ package CYGPKG_NS_DNS current ;
+ package CYGPKG_IO_FLASH current ;
+ package CYGPKG_IO_ETH_DRIVERS current ;
+ package CYGPKG_COMPRESS_ZLIB current ;
+};
+
+cdl_option CYGNUM_HAL_COMMON_INTERRUPTS_STACK_SIZE {
+ user_value 4096
+};
+
+cdl_option CYGDBG_HAL_COMMON_INTERRUPTS_SAVE_MINIMUM_CONTEXT {
+ user_value 0
+};
+
+cdl_option CYGDBG_HAL_COMMON_CONTEXT_SAVE_MINIMUM {
+ inferred_value 0
+};
+
+cdl_option CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS {
+ inferred_value 1
+};
+
+cdl_option CYGSEM_HAL_ROM_MONITOR {
+ inferred_value 1
+};
+
+cdl_option CYGSEM_HAL_USE_ROM_MONITOR {
+ inferred_value 0 0
+};
+
+cdl_option CYGPKG_HAL_ARM_ARM9_ARM920T {
+ inferred_value 1
+};
+
+cdl_component CYG_HAL_STARTUP {
+ user_value ROMRAM
+};
+
+cdl_component CYGBLD_BUILD_REDBOOT {
+ user_value 1
+};
+
+cdl_option CYGBLD_REDBOOT_MIN_IMAGE_SIZE {
+ user_value 0x00040000
+};
+
+cdl_option CYGBLD_REDBOOT_FLASH_BOOT_OFFSET {
+ inferred_value 0x0
+};
+
+cdl_option CYGNUM_REDBOOT_FLASH_RESERVED_BASE {
+ inferred_value 0x0
+};
+
+cdl_option CYGNUM_REDBOOT_FIS_DIRECTORY_BLOCK {
+ inferred_value -1
+};
+
+cdl_option CYGOPT_REDBOOT_FIS_REDBOOT_BACKUP {
+ inferred_value 0
+};
+
+cdl_option CYGOPT_REDBOOT_FIS_DIRECTORY_ARM_SIB_ID {
+ inferred_value 0
+};
+
+cdl_option CYGNUM_REDBOOT_FLASH_CONFIG_BLOCK {
+ inferred_value -2
+};
+
+cdl_option CYGHWR_REDBOOT_BOOTMONITOR {
+ user_value Primary
+};
+
+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_DNS_HEADER {
+ inferred_value 1 <cyg/ns/dns/dns.h>
+};
+
+cdl_option CYGPKG_NS_DNS_BUILD {
+ inferred_value 0
+};
+
+cdl_option CYGHWR_DEVS_FLASH_AMD_AM29LV640 {
+ inferred_value 1
+};
diff --git a/ecos/packages/hal/arm/arm9/aaed2000/current/misc/smpeg.ecm b/ecos/packages/hal/arm/arm9/aaed2000/current/misc/smpeg.ecm
new file mode 100644
index 0000000..85714a4
--- /dev/null
+++ b/ecos/packages/hal/arm/arm9/aaed2000/current/misc/smpeg.ecm
@@ -0,0 +1,308 @@
+cdl_savefile_version 1;
+cdl_savefile_command cdl_savefile_version {};
+cdl_savefile_command cdl_savefile_command {};
+cdl_savefile_command cdl_configuration { description hardware template package };
+cdl_savefile_command cdl_package { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_component { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_option { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_interface { value_source user_value wizard_value inferred_value };
+
+cdl_configuration eCos {
+ description "" ;
+ hardware aaed2000 ;
+ template net ;
+ package -hardware CYGPKG_HAL_ARM current ;
+ package -hardware CYGPKG_HAL_ARM_ARM9 current ;
+ package -hardware CYGPKG_HAL_ARM_ARM9_AAED2000 current ;
+ package -hardware CYGPKG_DEVS_FLASH_ARM_AAED2000 current ;
+ package -hardware CYGPKG_DEVS_FLASH_AMD_AM29XXXXX current ;
+ package -hardware CYGPKG_DEVS_ETH_CL_CS8900A current ;
+ package -hardware CYGPKG_DEVS_ETH_ARM_AAED2000 current ;
+ package -hardware CYGPKG_DEVS_KBD_AAED2000 current ;
+ package -hardware CYGPKG_DEVS_TOUCH_AAED2000 current ;
+ package -template CYGPKG_HAL current ;
+ package -template CYGPKG_IO current ;
+ package -template CYGPKG_IO_SERIAL current ;
+ package -template CYGPKG_INFRA current ;
+ package -template CYGPKG_ISOINFRA current ;
+ package -template CYGPKG_KERNEL current ;
+ package -template CYGPKG_MEMALLOC current ;
+ package -template CYGPKG_LIBC current ;
+ package -template CYGPKG_LIBC_TIME current ;
+ package -template CYGPKG_LIBC_STDLIB current ;
+ package -template CYGPKG_LIBC_STRING current ;
+ package -template CYGPKG_LIBC_I18N current ;
+ package -template CYGPKG_LIBC_SETJMP current ;
+ package -template CYGPKG_LIBC_STARTUP current ;
+ package -template CYGPKG_LIBC_STDIO current ;
+ package -template CYGPKG_LIBM current ;
+ package -template CYGPKG_POSIX current ;
+ package -template CYGPKG_IO_WATCHDOG current ;
+ package -template CYGPKG_IO_WALLCLOCK current ;
+ package -template CYGPKG_ERROR current ;
+ package -template CYGPKG_IO_FILEIO current ;
+ package -template CYGPKG_NET current ;
+ package -template CYGPKG_NET_OPENBSD_STACK current ;
+ package -template CYGPKG_NS_DNS current ;
+ package -template CYGPKG_IO_ETH_DRIVERS current ;
+ package CYGPKG_FS_ROM current ;
+ package CYGPKG_MICROWINDOWS current ;
+ package CYGPKG_FS_JFFS2 current ;
+ package CYGPKG_IO_FLASH current ;
+ package CYGPKG_COMPRESS_ZLIB current ;
+ package CYGPKG_FS_RAM current ;
+};
+
+cdl_option CYGBLD_GLOBAL_COMMAND_PREFIX {
+ user_value arm-elf
+};
+
+cdl_option CYGBLD_GLOBAL_CFLAGS {
+ user_value "-mcpu=arm9 -msoft-float -Wall -Wpointer-arith -Wstrict-prototypes -Winline -Wundef -Woverloaded-virtual -g -ffunction-sections -fdata-sections -fno-rtti -fno-exceptions -fvtable-gc -finit-priority"
+};
+
+cdl_option CYGPKG_HAL_ARM_ARM9_ARM920T {
+ inferred_value 1
+};
+
+cdl_option CYGPKG_IO_NFILE {
+ user_value 32
+};
+
+cdl_component CYGPKG_INFRA_DEBUG {
+ user_value 1
+};
+
+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_BSD_FUNCS_HEADER {
+ inferred_value 1 <cyg/libc/string/bsdstring.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_POSIX_TIMER_TYPES_HEADER {
+ inferred_value 1 <cyg/posix/time.h>
+};
+
+cdl_option CYGBLD_ISO_POSIX_CLOCK_TYPES_HEADER {
+ inferred_value 1 <cyg/posix/time.h>
+};
+
+cdl_option CYGBLD_ISO_C_TIME_TYPES_HEADER {
+ inferred_value 1 <cyg/libc/time/time.h>
+};
+
+cdl_option CYGBLD_ISO_POSIX_TIMERS_HEADER {
+ inferred_value 1 <cyg/posix/time.h>
+};
+
+cdl_option CYGBLD_ISO_POSIX_CLOCKS_HEADER {
+ inferred_value 1 <cyg/posix/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/posix/signal.h>
+};
+
+cdl_option CYGBLD_ISO_SIGNAL_IMPL_HEADER {
+ inferred_value 1 <cyg/posix/signal.h>
+};
+
+cdl_option CYGBLD_ISO_SETJMP_HEADER {
+ inferred_value 1 <cyg/libc/setjmp/setjmp.h>
+};
+
+cdl_option CYGBLD_ISO_SIGSETJMP_HEADER {
+ inferred_value 1 <cyg/posix/sigsetjmp.h>
+};
+
+cdl_option CYGBLD_ISO_DIRENT_HEADER {
+ inferred_value 1 <cyg/fileio/dirent.h>
+};
+
+cdl_option CYGBLD_ISO_PTHREADTYPES_HEADER {
+ inferred_value 1 <cyg/posix/types.h>
+};
+
+cdl_option CYGBLD_ISO_PMUTEXTYPES_HEADER {
+ inferred_value 1 <cyg/posix/muttypes.h>
+};
+
+cdl_option CYGBLD_ISO_BSDTYPES_HEADER {
+ inferred_value 1 <sys/bsdtypes.h>
+};
+
+cdl_option CYGBLD_ISO_UTSNAME_HEADER {
+ inferred_value 1 <cyg/posix/utsname.h>
+};
+
+cdl_option CYGBLD_ISO_SEMAPHORES_HEADER {
+ inferred_value 1 <cyg/posix/semaphore.h>
+};
+
+cdl_option CYGBLD_ISO_PTHREAD_IMPL_HEADER {
+ inferred_value 1 <cyg/posix/pthread.h>
+};
+
+cdl_option CYGBLD_ISO_PTHREAD_MUTEX_HEADER {
+ inferred_value 1 <cyg/posix/mutex.h>
+};
+
+cdl_option CYGBLD_ISO_POSIX_LIMITS_HEADER {
+ inferred_value 1 <cyg/posix/limits.h>
+};
+
+cdl_option CYGBLD_ISO_OPEN_MAX_HEADER {
+ inferred_value 1 <cyg/fileio/limits.h>
+};
+
+cdl_option CYGBLD_ISO_DNS_HEADER {
+ inferred_value 1 <cyg/ns/dns/dns.h>
+};
+
+cdl_option CYGBLD_ISO_NETDB_PROTO_HEADER {
+ inferred_value 1 <net/netdb.h>
+};
+
+cdl_option CYGBLD_ISO_NETDB_SERV_HEADER {
+ inferred_value 1 <net/netdb.h>
+};
+
+cdl_option CYGIMP_KERNEL_SCHED_SORTED_QUEUES {
+ inferred_value 1
+};
+
+cdl_option CYGSEM_KERNEL_SCHED_TIMESLICE_ENABLE {
+ inferred_value 1
+};
+
+cdl_component CYGSEM_KERNEL_SCHED_ASR_SUPPORT {
+ inferred_value 1
+};
+
+cdl_option CYGSEM_KERNEL_SCHED_ASR_GLOBAL {
+ inferred_value 1
+};
+
+cdl_option FOPEN_MAX {
+ user_value 32
+};
+
+cdl_option CYGNUM_FILEIO_NFILE {
+ user_value 32
+};
+
+cdl_option CYGNUM_FILEIO_NFD {
+ user_value 32
+};
+
+cdl_component CYGPKG_IO_FILEIO_INODE {
+ inferred_value 1
+};
+
+cdl_option CYGBLD_MICROWINDOWS_ECOS {
+ inferred_value 1
+};
+
+cdl_option CYGBLD_MICROWINDOWS_NANOWM {
+ inferred_value 1
+};
+
+cdl_option CYGBLD_MICROWINDOWS_NXKBD {
+ inferred_value 1
+};
+
+cdl_option CYGPKG_MICROWINDOWS_CFLAGS_ADD {
+ inferred_value "-I\$(PREFIX)/include/microwin -D__ECOS=1 -DMSDOS=0 -DELKS=0 -D__rtems__=0 -D_MINIX=0 -DNOTYET=0 -DUNIX=1 -DHAVE_FILEIO -DHAVE_BMP_SUPPORT=1 -DHAVE_PNM_SUPPORT=1 -DHAVE_XPM_SUPPORT=1 -DxHAVE_JPEG_SUPPORT=1 -DHAVESELECT=1 -DMWPIXEL_FORMAT=MWPF_TRUECOLOR555"
+};
+
+cdl_component CYGPKG_IO_FLASH_BLOCK_DEVICE {
+ inferred_value 1
+};
+
+cdl_option CYGNUM_IO_FLASH_BLOCK_OFFSET_1 {
+ user_value 0x01000000
+};
+
+cdl_option CYGNUM_IO_FLASH_BLOCK_LENGTH_1 {
+ user_value 0x00400000
+};
+
+cdl_option CYGHWR_DEVS_FLASH_AMD_AM29LV640 {
+ inferred_value 1
+};
+
+
diff --git a/ecos/packages/hal/arm/arm9/aaed2000/current/misc/toyota_fullscr.ecm b/ecos/packages/hal/arm/arm9/aaed2000/current/misc/toyota_fullscr.ecm
new file mode 100644
index 0000000..c809815
--- /dev/null
+++ b/ecos/packages/hal/arm/arm9/aaed2000/current/misc/toyota_fullscr.ecm
@@ -0,0 +1,326 @@
+cdl_savefile_version 1;
+cdl_savefile_command cdl_savefile_version {};
+cdl_savefile_command cdl_savefile_command {};
+cdl_savefile_command cdl_configuration { description hardware template package };
+cdl_savefile_command cdl_package { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_component { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_option { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_interface { value_source user_value wizard_value inferred_value };
+
+cdl_configuration eCos {
+ description "" ;
+ hardware aaed2000 ;
+ template net ;
+ package -hardware CYGPKG_HAL_ARM current ;
+ package -hardware CYGPKG_HAL_ARM_ARM9 current ;
+ package -hardware CYGPKG_HAL_ARM_ARM9_AAED2000 current ;
+ package -hardware CYGPKG_DEVS_FLASH_ARM_AAED2000 current ;
+ package -hardware CYGPKG_DEVS_FLASH_AMD_AM29XXXXX current ;
+ package -hardware CYGPKG_DEVS_ETH_CL_CS8900A current ;
+ package -hardware CYGPKG_DEVS_ETH_ARM_AAED2000 current ;
+ package -hardware CYGPKG_DEVS_KBD_AAED2000 current ;
+ package -hardware CYGPKG_DEVS_TOUCH_AAED2000 current ;
+ package -template CYGPKG_HAL current ;
+ package -template CYGPKG_IO current ;
+ package -template CYGPKG_IO_SERIAL current ;
+ package -template CYGPKG_INFRA current ;
+ package -template CYGPKG_ISOINFRA current ;
+ package -template CYGPKG_KERNEL current ;
+ package -template CYGPKG_MEMALLOC current ;
+ package -template CYGPKG_LIBC current ;
+ package -template CYGPKG_LIBC_TIME current ;
+ package -template CYGPKG_LIBC_STDLIB current ;
+ package -template CYGPKG_LIBC_STRING current ;
+ package -template CYGPKG_LIBC_I18N current ;
+ package -template CYGPKG_LIBC_SETJMP current ;
+ package -template CYGPKG_LIBC_STARTUP current ;
+ package -template CYGPKG_LIBC_STDIO current ;
+ package -template CYGPKG_LIBM current ;
+ package -template CYGPKG_POSIX current ;
+ package -template CYGPKG_IO_WATCHDOG current ;
+ package -template CYGPKG_IO_WALLCLOCK current ;
+ package -template CYGPKG_ERROR current ;
+ package -template CYGPKG_IO_FILEIO current ;
+ package -template CYGPKG_NET current ;
+ package -template CYGPKG_NET_OPENBSD_STACK current ;
+ package -template CYGPKG_NS_DNS current ;
+ package -template CYGPKG_IO_ETH_DRIVERS current ;
+ package CYGPKG_FS_ROM current ;
+ package CYGPKG_MICROWINDOWS current ;
+ package CYGPKG_FS_JFFS2 current ;
+ package CYGPKG_IO_FLASH current ;
+ package CYGPKG_COMPRESS_ZLIB current ;
+ package CYGPKG_FS_RAM current ;
+ package CYGPKG_SDL current ;
+ package CYGPKG_SMPEG current ;
+};
+
+cdl_option CYGBLD_GLOBAL_COMMAND_PREFIX {
+ user_value arm-elf
+};
+
+cdl_option CYGBLD_GLOBAL_CFLAGS {
+ user_value "-mcpu=arm9 -msoft-float -Wall -Wpointer-arith -Wstrict-prototypes -Winline -Wundef -Woverloaded-virtual -g -ffunction-sections -fdata-sections -fno-rtti -fno-exceptions -fvtable-gc -finit-priority"
+};
+
+cdl_option CYGPKG_HAL_ARM_ARM9_ARM920T {
+ inferred_value 1
+};
+
+cdl_option CYGPKG_IO_NFILE {
+ user_value 32
+};
+
+cdl_component CYGPKG_INFRA_DEBUG {
+ user_value 1
+};
+
+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_BSD_FUNCS_HEADER {
+ inferred_value 1 <cyg/libc/string/bsdstring.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_POSIX_TIMER_TYPES_HEADER {
+ inferred_value 1 <cyg/posix/time.h>
+};
+
+cdl_option CYGBLD_ISO_POSIX_CLOCK_TYPES_HEADER {
+ inferred_value 1 <cyg/posix/time.h>
+};
+
+cdl_option CYGBLD_ISO_C_TIME_TYPES_HEADER {
+ inferred_value 1 <cyg/libc/time/time.h>
+};
+
+cdl_option CYGBLD_ISO_POSIX_TIMERS_HEADER {
+ inferred_value 1 <cyg/posix/time.h>
+};
+
+cdl_option CYGBLD_ISO_POSIX_CLOCKS_HEADER {
+ inferred_value 1 <cyg/posix/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/posix/signal.h>
+};
+
+cdl_option CYGBLD_ISO_SIGNAL_IMPL_HEADER {
+ inferred_value 1 <cyg/posix/signal.h>
+};
+
+cdl_option CYGBLD_ISO_SETJMP_HEADER {
+ inferred_value 1 <cyg/libc/setjmp/setjmp.h>
+};
+
+cdl_option CYGBLD_ISO_SIGSETJMP_HEADER {
+ inferred_value 1 <cyg/posix/sigsetjmp.h>
+};
+
+cdl_option CYGBLD_ISO_DIRENT_HEADER {
+ inferred_value 1 <cyg/fileio/dirent.h>
+};
+
+cdl_option CYGBLD_ISO_PTHREADTYPES_HEADER {
+ inferred_value 1 <cyg/posix/types.h>
+};
+
+cdl_option CYGBLD_ISO_PMUTEXTYPES_HEADER {
+ inferred_value 1 <cyg/posix/muttypes.h>
+};
+
+cdl_option CYGBLD_ISO_BSDTYPES_HEADER {
+ inferred_value 1 <sys/bsdtypes.h>
+};
+
+cdl_option CYGBLD_ISO_UTSNAME_HEADER {
+ inferred_value 1 <cyg/posix/utsname.h>
+};
+
+cdl_option CYGBLD_ISO_SEMAPHORES_HEADER {
+ inferred_value 1 <cyg/posix/semaphore.h>
+};
+
+cdl_option CYGBLD_ISO_PTHREAD_IMPL_HEADER {
+ inferred_value 1 <cyg/posix/pthread.h>
+};
+
+cdl_option CYGBLD_ISO_PTHREAD_MUTEX_HEADER {
+ inferred_value 1 <cyg/posix/mutex.h>
+};
+
+cdl_option CYGBLD_ISO_POSIX_LIMITS_HEADER {
+ inferred_value 1 <cyg/posix/limits.h>
+};
+
+cdl_option CYGBLD_ISO_OPEN_MAX_HEADER {
+ inferred_value 1 <cyg/fileio/limits.h>
+};
+
+cdl_option CYGBLD_ISO_DNS_HEADER {
+ inferred_value 1 <cyg/ns/dns/dns.h>
+};
+
+cdl_option CYGBLD_ISO_NETDB_PROTO_HEADER {
+ inferred_value 1 <net/netdb.h>
+};
+
+cdl_option CYGBLD_ISO_NETDB_SERV_HEADER {
+ inferred_value 1 <net/netdb.h>
+};
+
+cdl_option CYGIMP_KERNEL_SCHED_SORTED_QUEUES {
+ inferred_value 1
+};
+
+cdl_option CYGSEM_KERNEL_SCHED_TIMESLICE_ENABLE {
+ inferred_value 1
+};
+
+cdl_component CYGSEM_KERNEL_SCHED_ASR_SUPPORT {
+ inferred_value 1
+};
+
+cdl_option CYGSEM_KERNEL_SCHED_ASR_GLOBAL {
+ inferred_value 1
+};
+
+cdl_option FOPEN_MAX {
+ user_value 32
+};
+
+cdl_option CYGNUM_FILEIO_NFILE {
+ user_value 32
+};
+
+cdl_option CYGNUM_FILEIO_NFD {
+ user_value 32
+};
+
+cdl_component CYGPKG_IO_FILEIO_INODE {
+ inferred_value 1
+};
+
+cdl_option CYGBLD_MICROWINDOWS_ECOS {
+ inferred_value 1
+};
+
+cdl_option CYGBLD_MICROWINDOWS_NANOWM {
+ inferred_value 1
+};
+
+cdl_option CYGBLD_MICROWINDOWS_NXKBD {
+ inferred_value 1
+};
+
+cdl_option CYGBLD_MICROWINDOWS_NANOX_DEMOS {
+ inferred_value 1
+};
+
+cdl_option CYGPKG_MICROWINDOWS_CFLAGS_ADD {
+ inferred_value "-I\$(PREFIX)/include/microwin -D__ECOS=1 -DMSDOS=0 -DELKS=0 -D__rtems__=0 -D_MINIX=0 -DNOTYET=0 -DUNIX=1 -DHAVE_FILEIO -DHAVE_BMP_SUPPORT=1 -DHAVE_PNM_SUPPORT=1 -DHAVE_XPM_SUPPORT=1 -DxHAVE_JPEG_SUPPORT=1 -DHAVESELECT=1 -DMWPIXEL_FORMAT=MWPF_TRUECOLOR555"
+};
+
+cdl_component CYGPKG_IO_FLASH_BLOCK_DEVICE {
+ inferred_value 1
+};
+
+cdl_option CYGNUM_IO_FLASH_BLOCK_OFFSET_1 {
+ user_value 0x01000000
+};
+
+cdl_option CYGNUM_IO_FLASH_BLOCK_LENGTH_1 {
+ user_value 0x00400000
+};
+
+cdl_option CYGHWR_DEVS_FLASH_AMD_AM29LV640 {
+ inferred_value 1
+};
+
+cdl_option CYGPKG_SDL_CFLAGS_ADD {
+ inferred_value "-I\$(PREFIX)/include/SDL -I\$(REPOSITORY)/\$(PACKAGE)/src/src -I\$(REPOSITORY)/\$(PACKAGE)/src/src/audio -I\$(REPOSITORY)/\$(PACKAGE)/src/src/events -I\$(REPOSITORY)/\$(PACKAGE)/src/src/joystick -I\$(REPOSITORY)/\$(PACKAGE)/src/src/thread -I\$(REPOSITORY)/\$(PACKAGE)/src/src/thread/ecos -I\$(REPOSITORY)/\$(PACKAGE)/src/src/timer -I\$(REPOSITORY)/\$(PACKAGE)/src/src/video -I\$(REPOSITORY)/\$(PACKAGE)/src/src/video/fbcon -I\$(REPOSITORY)/\$(PACKAGE)/src/src/video/svga -DDISABLE_JOYSTICK -DDISABLE_CDROM -DUSE_INPUT_EVENTS -DSDL_USE_PTHREADS -DPTHREAD_NO_RECURSIVE_MUTEX -D__ECOS=1 -DENABLE_FBCON"
+};
+
+cdl_option CYGBLD_SMPEG_BUILD_PLAYMPEG {
+ user_value 1
+};
+
+cdl_component CYGBLD_SMPEG_BUILD_TOYOTA_DEMO {
+ user_value 1
+};
+
+
diff --git a/ecos/packages/hal/arm/arm9/aaed2000/current/misc/toyota_window.ecm b/ecos/packages/hal/arm/arm9/aaed2000/current/misc/toyota_window.ecm
new file mode 100644
index 0000000..13e1268
--- /dev/null
+++ b/ecos/packages/hal/arm/arm9/aaed2000/current/misc/toyota_window.ecm
@@ -0,0 +1,334 @@
+cdl_savefile_version 1;
+cdl_savefile_command cdl_savefile_version {};
+cdl_savefile_command cdl_savefile_command {};
+cdl_savefile_command cdl_configuration { description hardware template package };
+cdl_savefile_command cdl_package { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_component { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_option { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_interface { value_source user_value wizard_value inferred_value };
+
+cdl_configuration eCos {
+ description "" ;
+ hardware aaed2000 ;
+ template net ;
+ package -hardware CYGPKG_HAL_ARM current ;
+ package -hardware CYGPKG_HAL_ARM_ARM9 current ;
+ package -hardware CYGPKG_HAL_ARM_ARM9_AAED2000 current ;
+ package -hardware CYGPKG_DEVS_FLASH_ARM_AAED2000 current ;
+ package -hardware CYGPKG_DEVS_FLASH_AMD_AM29XXXXX current ;
+ package -hardware CYGPKG_DEVS_ETH_CL_CS8900A current ;
+ package -hardware CYGPKG_DEVS_ETH_ARM_AAED2000 current ;
+ package -hardware CYGPKG_DEVS_KBD_AAED2000 current ;
+ package -hardware CYGPKG_DEVS_TOUCH_AAED2000 current ;
+ package -template CYGPKG_HAL current ;
+ package -template CYGPKG_IO current ;
+ package -template CYGPKG_IO_SERIAL current ;
+ package -template CYGPKG_INFRA current ;
+ package -template CYGPKG_ISOINFRA current ;
+ package -template CYGPKG_KERNEL current ;
+ package -template CYGPKG_MEMALLOC current ;
+ package -template CYGPKG_LIBC current ;
+ package -template CYGPKG_LIBC_TIME current ;
+ package -template CYGPKG_LIBC_STDLIB current ;
+ package -template CYGPKG_LIBC_STRING current ;
+ package -template CYGPKG_LIBC_I18N current ;
+ package -template CYGPKG_LIBC_SETJMP current ;
+ package -template CYGPKG_LIBC_STARTUP current ;
+ package -template CYGPKG_LIBC_STDIO current ;
+ package -template CYGPKG_LIBM current ;
+ package -template CYGPKG_POSIX current ;
+ package -template CYGPKG_IO_WATCHDOG current ;
+ package -template CYGPKG_IO_WALLCLOCK current ;
+ package -template CYGPKG_ERROR current ;
+ package -template CYGPKG_IO_FILEIO current ;
+ package -template CYGPKG_NET current ;
+ package -template CYGPKG_NET_OPENBSD_STACK current ;
+ package -template CYGPKG_NS_DNS current ;
+ package -template CYGPKG_IO_ETH_DRIVERS current ;
+ package CYGPKG_FS_ROM current ;
+ package CYGPKG_MICROWINDOWS current ;
+ package CYGPKG_FS_JFFS2 current ;
+ package CYGPKG_IO_FLASH current ;
+ package CYGPKG_COMPRESS_ZLIB current ;
+ package CYGPKG_FS_RAM current ;
+ package CYGPKG_SDL current ;
+ package CYGPKG_SMPEG current ;
+};
+
+cdl_option CYGBLD_GLOBAL_COMMAND_PREFIX {
+ user_value arm-elf
+};
+
+cdl_option CYGBLD_GLOBAL_CFLAGS {
+ user_value "-mcpu=arm9 -msoft-float -Wall -Wpointer-arith -Wstrict-prototypes -Winline -Wundef -Woverloaded-virtual -g -ffunction-sections -fdata-sections -fno-rtti -fno-exceptions -fvtable-gc -finit-priority"
+};
+
+cdl_option CYGPKG_HAL_ARM_ARM9_ARM920T {
+ inferred_value 1
+};
+
+cdl_option CYGPKG_IO_NFILE {
+ user_value 32
+};
+
+cdl_component CYGPKG_INFRA_DEBUG {
+ user_value 1
+};
+
+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_BSD_FUNCS_HEADER {
+ inferred_value 1 <cyg/libc/string/bsdstring.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_POSIX_TIMER_TYPES_HEADER {
+ inferred_value 1 <cyg/posix/time.h>
+};
+
+cdl_option CYGBLD_ISO_POSIX_CLOCK_TYPES_HEADER {
+ inferred_value 1 <cyg/posix/time.h>
+};
+
+cdl_option CYGBLD_ISO_C_TIME_TYPES_HEADER {
+ inferred_value 1 <cyg/libc/time/time.h>
+};
+
+cdl_option CYGBLD_ISO_POSIX_TIMERS_HEADER {
+ inferred_value 1 <cyg/posix/time.h>
+};
+
+cdl_option CYGBLD_ISO_POSIX_CLOCKS_HEADER {
+ inferred_value 1 <cyg/posix/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/posix/signal.h>
+};
+
+cdl_option CYGBLD_ISO_SIGNAL_IMPL_HEADER {
+ inferred_value 1 <cyg/posix/signal.h>
+};
+
+cdl_option CYGBLD_ISO_SETJMP_HEADER {
+ inferred_value 1 <cyg/libc/setjmp/setjmp.h>
+};
+
+cdl_option CYGBLD_ISO_SIGSETJMP_HEADER {
+ inferred_value 1 <cyg/posix/sigsetjmp.h>
+};
+
+cdl_option CYGBLD_ISO_DIRENT_HEADER {
+ inferred_value 1 <cyg/fileio/dirent.h>
+};
+
+cdl_option CYGBLD_ISO_PTHREADTYPES_HEADER {
+ inferred_value 1 <cyg/posix/types.h>
+};
+
+cdl_option CYGBLD_ISO_PMUTEXTYPES_HEADER {
+ inferred_value 1 <cyg/posix/muttypes.h>
+};
+
+cdl_option CYGBLD_ISO_BSDTYPES_HEADER {
+ inferred_value 1 <sys/bsdtypes.h>
+};
+
+cdl_option CYGBLD_ISO_UTSNAME_HEADER {
+ inferred_value 1 <cyg/posix/utsname.h>
+};
+
+cdl_option CYGBLD_ISO_SEMAPHORES_HEADER {
+ inferred_value 1 <cyg/posix/semaphore.h>
+};
+
+cdl_option CYGBLD_ISO_PTHREAD_IMPL_HEADER {
+ inferred_value 1 <cyg/posix/pthread.h>
+};
+
+cdl_option CYGBLD_ISO_PTHREAD_MUTEX_HEADER {
+ inferred_value 1 <cyg/posix/mutex.h>
+};
+
+cdl_option CYGBLD_ISO_POSIX_LIMITS_HEADER {
+ inferred_value 1 <cyg/posix/limits.h>
+};
+
+cdl_option CYGBLD_ISO_OPEN_MAX_HEADER {
+ inferred_value 1 <cyg/fileio/limits.h>
+};
+
+cdl_option CYGBLD_ISO_DNS_HEADER {
+ inferred_value 1 <cyg/ns/dns/dns.h>
+};
+
+cdl_option CYGBLD_ISO_NETDB_PROTO_HEADER {
+ inferred_value 1 <net/netdb.h>
+};
+
+cdl_option CYGBLD_ISO_NETDB_SERV_HEADER {
+ inferred_value 1 <net/netdb.h>
+};
+
+cdl_option CYGIMP_KERNEL_SCHED_SORTED_QUEUES {
+ inferred_value 1
+};
+
+cdl_option CYGSEM_KERNEL_SCHED_TIMESLICE_ENABLE {
+ inferred_value 1
+};
+
+cdl_component CYGSEM_KERNEL_SCHED_ASR_SUPPORT {
+ inferred_value 1
+};
+
+cdl_option CYGSEM_KERNEL_SCHED_ASR_GLOBAL {
+ inferred_value 1
+};
+
+cdl_option FOPEN_MAX {
+ user_value 32
+};
+
+cdl_option CYGNUM_FILEIO_NFILE {
+ user_value 32
+};
+
+cdl_option CYGNUM_FILEIO_NFD {
+ user_value 32
+};
+
+cdl_component CYGPKG_IO_FILEIO_INODE {
+ inferred_value 1
+};
+
+cdl_option CYGBLD_MICROWINDOWS_ECOS {
+ inferred_value 1
+};
+
+cdl_option CYGBLD_MICROWINDOWS_NANOWM {
+ inferred_value 1
+};
+
+cdl_option CYGBLD_MICROWINDOWS_NXKBD {
+ inferred_value 1
+};
+
+cdl_option CYGBLD_MICROWINDOWS_NANOX_DEMOS {
+ inferred_value 1
+};
+
+cdl_option CYGPKG_MICROWINDOWS_CFLAGS_ADD {
+ inferred_value "-I\$(PREFIX)/include/microwin -D__ECOS=1 -DMSDOS=0 -DELKS=0 -D__rtems__=0 -D_MINIX=0 -DNOTYET=0 -DUNIX=1 -DHAVE_FILEIO -DHAVE_BMP_SUPPORT=1 -DHAVE_PNM_SUPPORT=1 -DHAVE_XPM_SUPPORT=1 -DxHAVE_JPEG_SUPPORT=1 -DHAVESELECT=1 -DMWPIXEL_FORMAT=MWPF_TRUECOLOR555"
+};
+
+cdl_component CYGPKG_IO_FLASH_BLOCK_DEVICE {
+ inferred_value 1
+};
+
+cdl_option CYGNUM_IO_FLASH_BLOCK_OFFSET_1 {
+ user_value 0x01000000
+};
+
+cdl_option CYGNUM_IO_FLASH_BLOCK_LENGTH_1 {
+ user_value 0x00400000
+};
+
+cdl_option CYGHWR_DEVS_FLASH_AMD_AM29LV640 {
+ inferred_value 1
+};
+
+cdl_option CYGSEM_SDL_FBCON_FORCEGRAREA {
+ inferred_value 1
+};
+
+cdl_option CYGPKG_SDL_CFLAGS_ADD {
+ inferred_value "-I\$(PREFIX)/include/SDL -I\$(REPOSITORY)/\$(PACKAGE)/src/src -I\$(REPOSITORY)/\$(PACKAGE)/src/src/audio -I\$(REPOSITORY)/\$(PACKAGE)/src/src/events -I\$(REPOSITORY)/\$(PACKAGE)/src/src/joystick -I\$(REPOSITORY)/\$(PACKAGE)/src/src/thread -I\$(REPOSITORY)/\$(PACKAGE)/src/src/thread/ecos -I\$(REPOSITORY)/\$(PACKAGE)/src/src/timer -I\$(REPOSITORY)/\$(PACKAGE)/src/src/video -I\$(REPOSITORY)/\$(PACKAGE)/src/src/video/fbcon -I\$(REPOSITORY)/\$(PACKAGE)/src/src/video/svga -DDISABLE_JOYSTICK -DDISABLE_CDROM -DUSE_INPUT_EVENTS -DSDL_USE_PTHREADS -DPTHREAD_NO_RECURSIVE_MUTEX -D__ECOS=1 -DENABLE_FBCON"
+};
+
+cdl_option CYGBLD_SMPEG_BUILD_PLAYMPEG {
+ user_value 1
+};
+
+cdl_component CYGBLD_SMPEG_BUILD_TOYOTA_DEMO {
+ user_value 1
+};
+
+cdl_option CYGFUN_SMPEG_BUILD_TOYOTA_DEMO_WINDOWED {
+ user_value 1
+};
+
+
diff --git a/ecos/packages/hal/arm/arm9/aaed2000/current/src/aaed2000_misc.c b/ecos/packages/hal/arm/arm9/aaed2000/current/src/aaed2000_misc.c
new file mode 100644
index 0000000..0b641c5
--- /dev/null
+++ b/ecos/packages/hal/arm/arm9/aaed2000/current/src/aaed2000_misc.c
@@ -0,0 +1,537 @@
+//==========================================================================
+//
+// aaed2000_misc.c
+//
+// HAL misc board support code for ARM9/AAED2000
+//
+//==========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//==========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): gthomas
+// Contributors: hmt, Travis C. Furrer <furrer@mit.edu>, jskov
+// 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/aaed2000.h> // Platform specifics
+
+#include <cyg/infra/diag.h> // diag_printf
+
+#include <string.h> // memset
+
+
+// -------------------------------------------------------------------------
+// MMU initialization:
+//
+// These structures are laid down in memory to define the translation
+// table.
+//
+
+/*
+ * ARM Translation Table Base Bit Masks */
+#define ARM_TRANSLATION_TABLE_MASK 0xFFFFC000
+
+/*
+ * ARM 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.imp = 1; \
+ 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 = AAED2000_SDRAM_PHYS_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, 0x600, 32, ARM_UNCACHEABLE, ARM_UNBUFFERABLE, ARM_ACCESS_PERM_RW_RW); /* Boot flash ROMspace CS0 */
+ X_ARM_MMU_SECTION(0x100, 0x100, 1, ARM_UNCACHEABLE, ARM_UNBUFFERABLE, ARM_ACCESS_PERM_RW_RW); /* Ethernet */
+ X_ARM_MMU_SECTION(0x300, 0x300, 1, ARM_UNCACHEABLE, ARM_UNBUFFERABLE, ARM_ACCESS_PERM_RW_RW); /* AAED2000 board registers */
+ X_ARM_MMU_SECTION(0x400, 0x400, 1, ARM_UNCACHEABLE, ARM_UNBUFFERABLE, ARM_ACCESS_PERM_RW_RW); /* PCMCIA slot - I/O */
+ X_ARM_MMU_SECTION(0x440, 0x440, 1, ARM_UNCACHEABLE, ARM_UNBUFFERABLE, ARM_ACCESS_PERM_RW_RW); /* PCMCIA slot - stat*/
+ X_ARM_MMU_SECTION(0x480, 0x480, 1, ARM_UNCACHEABLE, ARM_UNBUFFERABLE, ARM_ACCESS_PERM_RW_RW); /* PCMCIA slot - attribute */
+ X_ARM_MMU_SECTION(0x4C0, 0x4C0, 1, ARM_UNCACHEABLE, ARM_UNBUFFERABLE, ARM_ACCESS_PERM_RW_RW); /* PCMCIA slot - common */
+ X_ARM_MMU_SECTION(0x500, 0x500, 1, ARM_UNCACHEABLE, ARM_UNBUFFERABLE, ARM_ACCESS_PERM_RW_RW); /* CF slot - I/O */
+ X_ARM_MMU_SECTION(0x540, 0x540, 1, ARM_UNCACHEABLE, ARM_UNBUFFERABLE, ARM_ACCESS_PERM_RW_RW); /* CF slot - stat*/
+ X_ARM_MMU_SECTION(0x580, 0x580, 1, ARM_UNCACHEABLE, ARM_UNBUFFERABLE, ARM_ACCESS_PERM_RW_RW); /* CF slot - attribute */
+ X_ARM_MMU_SECTION(0x5C0, 0x5C0, 1, ARM_UNCACHEABLE, ARM_UNBUFFERABLE, ARM_ACCESS_PERM_RW_RW); /* CF slot - common */
+ X_ARM_MMU_SECTION(0x800, 0x800, 1, ARM_UNCACHEABLE, ARM_UNBUFFERABLE, ARM_ACCESS_PERM_RW_RW); /* AAEC2000 registers */
+ // DRAM is non-contiguous, laid out in weird and wonderful ways...
+ X_ARM_MMU_SECTION(0xF00, 0x000, 4, ARM_CACHEABLE, ARM_BUFFERABLE, ARM_ACCESS_PERM_RW_RW); /* SDRAM */
+ X_ARM_MMU_SECTION(0xF10, 0x004, 4, ARM_CACHEABLE, ARM_BUFFERABLE, ARM_ACCESS_PERM_RW_RW); /* SDRAM */
+ X_ARM_MMU_SECTION(0xF40, 0x008, 4, ARM_CACHEABLE, ARM_BUFFERABLE, ARM_ACCESS_PERM_RW_RW); /* SDRAM */
+ X_ARM_MMU_SECTION(0xF50, 0x00C, 4, ARM_CACHEABLE, ARM_BUFFERABLE, ARM_ACCESS_PERM_RW_RW); /* SDRAM */
+ X_ARM_MMU_SECTION(0xF80, 0x010, 4, ARM_CACHEABLE, ARM_BUFFERABLE, ARM_ACCESS_PERM_RW_RW); /* SDRAM */
+ X_ARM_MMU_SECTION(0xF90, 0x014, 4, ARM_CACHEABLE, ARM_BUFFERABLE, ARM_ACCESS_PERM_RW_RW); /* SDRAM */
+ X_ARM_MMU_SECTION(0xFC0, 0x018, 4, ARM_CACHEABLE, ARM_BUFFERABLE, ARM_ACCESS_PERM_RW_RW); /* SDRAM */
+ X_ARM_MMU_SECTION(0xFD0, 0x01C, 4, ARM_CACHEABLE, ARM_BUFFERABLE, ARM_ACCESS_PERM_RW_RW); /* SDRAM */
+ // Map in DRAM raw as well
+ X_ARM_MMU_SECTION(0xF00, 0xF00, 256, ARM_UNCACHEABLE, ARM_UNBUFFERABLE, ARM_ACCESS_PERM_RW_RW); /* Raw SDRAM */
+}
+
+//
+// Platform specific initialization
+//
+void
+plf_hardware_init(void)
+{
+ HAL_WRITE_UINT8(AAEC_PCDR, 0x22);
+ HAL_WRITE_UINT8(AAEC_PCCDR, 0);
+ HAL_WRITE_UINT8(AAEC_PBDDR, 0x83);
+ HAL_WRITE_UINT8(AAEC_PINMUX,
+ AAEC_PINMUX_UART3CON | AAEC_PINMUX_PD0CON | AAEC_PINMUX_PE0CON);
+
+ // FIXME - all platform interrupt sources should be configured here
+ HAL_INTERRUPT_CONFIGURE(CYGNUM_HAL_INTERRUPT_TS, 0, 0 ); // Low pulse
+ HAL_INTERRUPT_CONFIGURE(CYGNUM_HAL_INTERRUPT_ETH, 0, 1 ); // High pulse
+}
+
+//
+// Support for platform specific I/O channels
+//
+
+externC void lcd_comm_init(void);
+
+void
+plf_if_init(void)
+{
+ aaed2000_KeyboardInit();
+#ifdef CYGSEM_AAED2000_LCD_COMM
+ // Initialize I/O channel
+ lcd_comm_init();
+#endif
+}
+
+// -------------------------------------------------------------------------
+void hal_clock_initialize(cyg_uint32 period)
+{
+ // Use timer1 for the kernel clock
+ HAL_WRITE_UINT32(AAEC_TMR_T1LOAD, period);
+ HAL_WRITE_UINT32(AAEC_TMR_T1CONTROL,
+ AAEC_TMR_TxCONTROL_ENABLE
+ | AAEC_TMR_TxCONTROL_MODE_PERIODIC
+ | AAEC_TMR_TxCONTROL_508KHZ);
+
+ // Unmask timer 0 interrupt
+ HAL_INTERRUPT_CONFIGURE( CYGNUM_HAL_INTERRUPT_RTC, 1, 1 );
+ HAL_INTERRUPT_UNMASK( CYGNUM_HAL_INTERRUPT_RTC );
+}
+
+// This routine is called during a clock interrupt.
+void hal_clock_reset(cyg_uint32 vector, cyg_uint32 period)
+{
+ // Clear pending interrupt bit
+ HAL_INTERRUPT_ACKNOWLEDGE(vector);
+}
+
+// Read the current value of the clock, returning the number of hardware
+// "ticks" that have occurred (i.e. how far away the current value is from
+// the start)
+
+// Note: The "contract" for this function is that the value is the number
+// of hardware clocks that have happened since the last interrupt (i.e.
+// when it was reset).
+
+void hal_clock_read(cyg_uint32 *pvalue)
+{
+ cyg_uint32 ctr;
+
+ HAL_READ_UINT32(AAEC_TMR_T1VALUE, ctr);
+ ctr = CYGNUM_HAL_RTC_PERIOD - ctr;
+ *pvalue = ctr;
+}
+
+//
+// Delay for some number of micro-seconds
+// Use timer #3 which runs at [fixed] 7.3728 MHz
+// Since this is only a 16 bit counter, it may be necessary
+// to run a loop to achieve sufficiently large delay values.
+//
+// Note: The 7.3728MHz value does not seem to work in practice
+// It seems to be off by about a factor of 2.
+//
+void hal_delay_us(cyg_int32 usecs)
+{
+ static struct _tmr_vals {
+ int us_val, tmr_val;
+ } tmr_vals[] = {
+ { 2*1000, 7372 },
+ { 2*100, 737 },
+ { 2*10, 74 },
+ { 2*1, 7 },
+ { 0, 0 }
+ };
+ struct _tmr_vals *vals = tmr_vals;
+ cyg_uint32 state;
+
+ while (vals->tmr_val) {
+ while (usecs >= vals->us_val) {
+ // disable timer #3
+ HAL_WRITE_UINT32(AAEC_TMR_T3CONTROL, 0);
+ HAL_WRITE_UINT32(AAEC_TMR_T3EOI, 0);
+ // configure for tmr_val
+ HAL_WRITE_UINT32(AAEC_TMR_T3LOAD, vals->tmr_val);
+ // enable
+ HAL_WRITE_UINT32(AAEC_TMR_T3CONTROL,
+ AAEC_TMR_TxCONTROL_ENABLE | AAEC_TMR_TxCONTROL_MODE_FREE);
+ // wait for overflow
+ do {
+ HAL_READ_UINT32(AAEC_INT_RSR, state);
+ } while ((state & (1<<AAEC_INTS_T3OI)) == 0);
+ usecs -= vals->us_val;
+ }
+ vals++;
+ }
+}
+
+// -------------------------------------------------------------------------
+
+// This routine is called to respond to a hardware interrupt (IRQ). It
+// should interrogate the hardware and return the IRQ vector number.
+int hal_IRQ_handler(void)
+{
+ int irq = CYGNUM_HAL_INTERRUPT_NONE;
+ int vec;
+ cyg_uint32 sr;
+
+ HAL_READ_UINT32(AAEC_INT_SR, sr);
+ for (vec = 0; vec <= CYGNUM_HAL_INTERRUPT_BMIINTR; vec++) {
+ if (sr & (1<<vec)) {
+ irq = vec;
+ break;
+ }
+ }
+
+ return irq;
+}
+
+//
+// Interrupt control
+//
+
+struct {
+ int gpio_int; // GPIO (F) interrupt source
+ cyg_haladdress eoi; // Acknowledge location
+} AAED2000_INTMAP[] = {
+ { 0, 0}, // CYGNUM_HAL_INTERRUPT_TS CYGNUM_HAL_INTERRUPT_GPIO0FIQ
+ {-1, AAEC_CSC_BLEOI}, // CYGNUM_HAL_INTERRUPT_BLINT 1
+ {-1, AAEC_CSC_TEOI}, // CYGNUM_HAL_INTERRUPT_WEINT 2
+ {-1, AAEC_CSC_MCEOI}, // CYGNUM_HAL_INTERRUPT_MCINT 3
+ {-1, AAEC_COD_CDEOI}, // CYGNUM_HAL_INTERRUPT_CSINT 4
+ { 1, 0}, // CYGNUM_HAL_INTERRUPT_ETH CYGNUM_HAL_INTERRUPT_GPIO1INTR
+ { 2, 0}, // CYGNUM_HAL_INTERRUPT_PCMCIA_CD2 CYGNUM_HAL_INTERRUPT_GPIO2INTR
+ { 3, 0}, // CYGNUM_HAL_INTERRUPT_PCMCIA_CD1 CYGNUM_HAL_INTERRUPT_GPIO3INTR
+ {-1, AAEC_TMR_T1EOI}, // CYGNUM_HAL_INTERRUPT_TC1OI 8
+ {-1, AAEC_TMR_T2EOI}, // CYGNUM_HAL_INTERRUPT_TC2OI 9
+ {-1, AAEC_RTC_RTCEOI},// CYGNUM_HAL_INTERRUPT_RTCMI 10
+ {-1, AAEC_CSC_TEOI}, // CYGNUM_HAL_INTERRUPT_TINTR 11
+ {-1, 0}, // CYGNUM_HAL_INTERRUPT_UART1INTR 12
+ {-1, AAEC_UART2_UMS2EOI}, // CYGNUM_HAL_INTERRUPT_UART2INTR 13
+ {-1, 0}, // CYGNUM_HAL_INTERRUPT_LCDINTR 14
+ {-1, 0}, // CYGNUM_HAL_INTERRUPT_SSEOTI 15
+ {-1, AAEC_UART2_UMS3EOI}, // CYGNUM_HAL_INTERRUPT_UART3INTR 16
+ {-1, 0}, // CYGNUM_HAL_INTERRUPT_SCIINTR 17
+ {-1, 0}, // CYGNUM_HAL_INTERRUPT_AACINTR 18
+ {-1, 0}, // CYGNUM_HAL_INTERRUPT_MMCINTR 19
+ {-1, 0}, // CYGNUM_HAL_INTERRUPT_USBINTR 20
+ {-1, 0}, // CYGNUM_HAL_INTERRUPT_DMAINTR 21
+ {-1, AAEC_TMR_T3EOI}, // CYGNUM_HAL_INTERRUPT_TC3OI 22
+ { 4, 0}, // CYGNUM_HAL_INTERRUPT_SCI_VCCEN CYGNUM_HAL_INTERRUPT_GPIO4INTR
+ { 5, 0}, // CYGNUM_HAL_INTERRUPT_SCI_DETECT CYGNUM_HAL_INTERRUPT_GPIO5INTR
+ { 6, 0}, // CYGNUM_HAL_INTERRUPT_PCMCIA_RDY1 CYGNUM_HAL_INTERRUPT_GPIO6INTR
+ { 7, 0}, // CYGNUM_HAL_INTERRUPT_PCMCIA_RDY2 CYGNUM_HAL_INTERRUPT_GPIO7INTR
+ {-1, 0}, // CYGNUM_HAL_INTERRUPT_BMIINTR 27
+};
+
+void hal_interrupt_mask(int vector)
+{
+ CYG_ASSERT(vector <= CYGNUM_HAL_ISR_MAX &&
+ vector >= CYGNUM_HAL_ISR_MIN , "Invalid vector");
+
+ if (vector <= CYGNUM_HAL_INTERRUPT_BMIINTR) {
+ HAL_WRITE_UINT32(AAEC_INT_ENC, (1 << vector));
+ }
+}
+
+void hal_interrupt_unmask(int vector)
+{
+ CYG_ASSERT(vector <= CYGNUM_HAL_ISR_MAX &&
+ vector >= CYGNUM_HAL_ISR_MIN , "Invalid vector");
+
+ if (vector <= CYGNUM_HAL_INTERRUPT_BMIINTR) {
+ HAL_WRITE_UINT32(AAEC_INT_ENS, (1 << vector));
+ }
+}
+
+void hal_interrupt_acknowledge(int vector)
+{
+ cyg_haladdress eoi;
+ int gpio;
+ CYG_ASSERT(vector <= CYGNUM_HAL_ISR_MAX &&
+ vector >= CYGNUM_HAL_ISR_MIN , "Invalid vector");
+
+ if (vector <= CYGNUM_HAL_INTERRUPT_BMIINTR) {
+ // Must be cleared at the source
+ if ((eoi = AAED2000_INTMAP[vector].eoi) != 0) {
+ HAL_WRITE_UINT32(eoi, 0); // Any write clears interrupt
+ } else if ((gpio = AAED2000_INTMAP[vector].gpio_int) >= 0) {
+ // GPIO interrupts require special care
+ HAL_WRITE_UINT32(AAEC_GPIO_FEOI, (1<<gpio));
+ }
+ }
+}
+
+void hal_interrupt_configure(int vector, int level, int up)
+{
+ int gpio;
+ CYG_ASSERT(vector <= CYGNUM_HAL_ISR_MAX &&
+ vector >= CYGNUM_HAL_ISR_MIN , "Invalid vector");
+ if (vector <= CYGNUM_HAL_INTERRUPT_BMIINTR) {
+ if ((gpio = AAED2000_INTMAP[vector].gpio_int) >= 0) {
+ // Only GPIO interrupts can be configured
+ int mask = (1<<gpio);
+ cyg_uint32 cur;
+ // Set type (level or edge)
+ HAL_READ_UINT32(AAEC_GPIO_INT_TYPE1, cur);
+ if (level) {
+ // Level driven
+ cur &= ~mask;
+ } else {
+ // Edge driven
+ cur |= mask;
+ }
+ HAL_WRITE_UINT32(AAEC_GPIO_INT_TYPE1, cur);
+ // Set level (high/rising or low/falling)
+ HAL_READ_UINT32(AAEC_GPIO_INT_TYPE2, cur);
+ if (up) {
+ // Trigger on high/rising
+ cur |= mask;
+ } else {
+ // Trigger on low/falling
+ cur &= ~mask;
+ }
+ HAL_WRITE_UINT32(AAEC_GPIO_INT_TYPE2, cur);
+ // Enable as interrupt
+ HAL_READ_UINT32(AAEC_GPIO_INTEN, cur);
+ cur |= mask;
+ HAL_WRITE_UINT32(AAEC_GPIO_INTEN, cur);
+ }
+ }
+}
+
+void hal_interrupt_set_level(int vector, int level)
+{
+}
+
+cyg_uint32
+hal_virt_to_phys_address(cyg_uint32 virt)
+{
+ cyg_uint32 phys = 0xFFFFFFFF, dram_page;
+ static cyg_uint32 _dram_map[] = {
+ 0xF0000000, 0xF1000000, 0xF4000000, 0xF5000000,
+ 0xF8000000, 0xF9000000, 0xFC000000, 0xFD000000
+ };
+
+ // Hard-wired, rather than walk the tables
+ switch ((virt & 0xF0000000) >> 28) {
+ case 0x0: // DRAM
+ if ((virt & 0x0E000000) == 0) {
+ dram_page = _dram_map[((virt & 0x01C00000) >> 22)];
+ phys = dram_page | virt;
+ } else {
+ phys = 0xFFFFFFFF;
+ }
+ break;
+ case 0x6: // FLASH
+ phys = (virt & 0x0FFFFFFF);
+ break;
+ case 0x1:
+ case 0x2:
+ case 0x7:
+ case 0x9:
+ case 0xA:
+ case 0xB:
+ case 0xC:
+ case 0xD:
+ case 0xE:
+ // Not mapped
+ phys = 0xFFFFFFFF;
+ break;
+ case 0x3:
+ case 0x4:
+ case 0x5:
+ case 0x8:
+ case 0xF:
+ // Mapped 1-1
+ phys = virt;
+ break;
+ }
+ return phys;
+}
diff --git a/ecos/packages/hal/arm/arm9/aaed2000/current/src/banner.xpm b/ecos/packages/hal/arm/arm9/aaed2000/current/src/banner.xpm
new file mode 100644
index 0000000..7ac3659
--- /dev/null
+++ b/ecos/packages/hal/arm/arm9/aaed2000/current/src/banner.xpm
@@ -0,0 +1,332 @@
+#ifdef CYGSEM_AAED2000_LCD_COMM_PORTRAIT_MODE
+/* XPM */
+static char * banner_xpm[] = {
+"240 39 65 1",
+" c None",
+". c #020206",
+"+ c #FAFAFA",
+"@ c #E61606",
+"# c #C2C0C1",
+"$ c #EAE5E7",
+"% c #BB0F06",
+"& c #949394",
+"* c #F1B8C0",
+"= c #6C686A",
+"- c #710206",
+"; c #F3A19B",
+"> c #404043",
+", c #B9B7B8",
+"' c #EC8F9A",
+") c #353536",
+"! c #EA6C6F",
+"~ c #29282B",
+"{ c #E85A5C",
+"] c #E27A7A",
+"^ c #300507",
+"/ c #1D1C1D",
+"( c #626262",
+"_ c #E74844",
+": c #141415",
+"< c #E2554D",
+"[ c #C6C6C6",
+"} c #5B595C",
+"| c #E6342D",
+"1 c #9B9B9B",
+"2 c #7C0806",
+"3 c #060606",
+"4 c #737072",
+"5 c #C20E06",
+"6 c #DEDEDE",
+"7 c #E23734",
+"8 c #EEEAEA",
+"9 c #F4C0C3",
+"0 c #820807",
+"a c #505050",
+"b c #FEFEFA",
+"c c #CA1206",
+"d c #A7A6A7",
+"e c #7F7E7F",
+"f c #E62419",
+"g c #950E07",
+"h c #F6C6CA",
+"i c #550206",
+"j c #0F0E0F",
+"k c #CE1206",
+"l c #F4F2F1",
+"m c #1C0206",
+"n c #CBCACB",
+"o c #4B4A4B",
+"p c #E2322E",
+"q c #A90B06",
+"r c #888888",
+"s c #B0B0B0",
+"t c #EEAFB6",
+"u c #F8D4D4",
+"v c #FAE1E3",
+"w c #DB1506",
+"x c #D3D2D2",
+"y c #430306",
+"z c #DF9D9B",
+"................................................................................................................................................................................................................................................",
+".................................................................................................................................bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb...",
+".................................................................................................................................bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb...",
+"333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb...",
+"..........3/~~~~~//3.............................................................................................................+++++++++++++++++++++++866xxxxxxxxxxxxxxxxxxxxxxxxxx$++++uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuvvb++++++++++++++...",
+"......../a&d,##sn,d&a/...........................................................................................................bbbbbbbbbbbbbbbbbbbbb8d4~/3........................3ebbbb@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@pp<tvbbbbbbbbbbbbb...",
+"......j}sseo)//:~)}e#sa3.........................................................................................................bbbbbbbbbbbbbbbbbbbbnaj3.3.........................3ebbbb@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@f_;bbbbbbbbbbb+...",
+"33333/d,=:3.333..3.3:=,d:33333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333bbbbbbbbbbbbbbbbbbl1~.3.333333333333333333333333333.ebb+b@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@f'lbbbbbbbbbb...",
+"...3>,1~.3m^^mj^^^^.33~1s)...................................................j33.................................................+++++++++++++++++bs/..........:::..................3e+bbb@w@@@@@@@@@ff@@@@@@@@@@@@@@@@@@@@@@@@@@f'l+++++++b+...",
+"...o#4j..mqg5g0qi^^im..j4,~................................................~}eo~.................................................bbbbbbbbbbbbbbbbb8~3.......jorsds&(:.............:>>dbbbb@@@@@@@@@{';tt;<f@@@@@@@@@w_];z!<f@@@@@@pubbbbbbbbb...",
+"..j,e:3.30wk@wqwq^^q^33.34#j..............................................3/dl$s>3j~3............................................bbbbbbbbbbbbbbbbbr...3.3.3),8+bbb+l6=3........3:rx8$lb+bb@@@w@wf_9l+bbbb89{fw@w@w@|'$l++lvu!f@@@@@!+bbbbb+b+...",
+"3:11:3...q-i025kqqq%q..33:&&:333333333333333333333333333333333333333333333.:dbb8)j4#)33333333333333333333333:33333333333333333333bbbbbbbbbbbbbbbb8)..3.3.:=$bbbbbbb++l&:3333333}6bbbbb+b+b@@@@@@!vbbbb++bbbb!f@@@@ftb+bbb+b+'f@@@@@@vbbbbbbbb...",
+".a[:..3..cy.j^2kcq@cqy..3.~#o.............................................3~d++$).eba....................../4/3..................+++++++++++++++b,/3.....}$+++++b+bbbblr.....3axbbbbbbbbbb@w@@@{8b++bbbbbbbbl]f@@@{lb++bbbbv_w@@@@@@;++++b+b+...",
+"/d4...3..wg22k0@wwwwwg.3.3.4&:..................3..3.......3............333/db+xa.4+(:.3..........3j:3...3.&x(j..................bbbbbbbbbbbbbbbb1j.....36bbblda~)ex+bbl)....3$b++bl*''t$b@@@@7ub+bbu'''u+b++l_@@f'bbbv!_{;'@@w@@@@@!bbbbbbbb...",
+"od~.yyqqmqqw@5wk5qkq@0m....~s>...............3)~)/:oo~j.j:)a>o~.......j~oo))dbb$)jel}/:>>~j....3:/))))33.~~s6a~//................bbbbbbbbbbbbbbbb&3.3.33rbbb6>.3.33/s+bbsj..3rbbb+v!w@w@pt@@@f'bbbb;f@@@@'8bbbt@w@hbbbtf@@wf@@@@w@@@!bbb+b+b+...",
+"e&j^%w%@-mi-qk5wk@wk5cy....jre333333333333333~d#d>=x6r::)e,666#a:333:/r[6x#4sbb6)3e+a>r#n,=/33:34&,n[&)::e&6ld1&o3333333333333333bbbbbbbbbbbbbb+be33.3.:nbb+e///////}bbb6)33/n+bb8!f@@@@@fw@@p*+bb*f@w@@@f'lbbbf@@u+bb$z7f@@@@@@@@@@!bbbbbbbb...",
+"s(.^ww55k33mm^-wqwq@kc--y...=d.............33)8b6d6++d/)dlb+++b6}..3~,lbbbb$6bb$)34+enlxnl$e~.j>$8xn6l,)3#$ll8$l=................+++++++++++++b+be....3o6+bb6xxnxxxx6+bbb4..>$bbbhf@@w@@@@@@@_lb+8<@@@@@@@_ubb+_@@;+bb++v*!@@@@@@@w@{b+b+b+b+...",
+"6>3m-qwwqk-^m..0www5q%%w%g3.)[...............>8++8+b+&/,bb8,d6+b8o3/,bbb866bb+b$)jrl$,>33~nla..)r~3.jel&:j:d$o/~:................bbbbbbbbbbbbbbbbe.....}8bbbbb+b+b++bb+blr..(8++b'w@@@w@@@@@@<b+b*f@@@@@w@@9++b!w@{8++b++bbu_@@@@@@@!bbbbbbbb...",
+"x~..^-wk5wc%qyy^5k5@@5ck%k-.~x:..............)$+bb$d&a=8b8e/j>xbbd:(lbb$(>o,b+b$).eb#~.333(8s...3....:un~..s6a.3.................bbbbbbbbbbbbbbbbe333.3}8b++666x666xx6x6x43.}8b+b'@@@@@@@@w@@{bbb*p@w@@@@@@hbbb]@@@!*bbb+b+bu|@@@@@@{b+b+b+b+...",
+"[/3.3mq@kwqkwc5%qkk%kq5wwwg3/x)3333333333333.)8bbl(/j3[b+,~/3:1bb8:1bb84.3.>xb+6o34le.....~xx/3..3/j:j,8)33d$}j.33333333333333333bbbbbbbbbbbb+bbbe33...a8+b+o~))~~)))))))/..}8bbbz@@@@@@@@@@@<bb+u7@@@@@@@fhbbb{@@@@|{'8bbbbb{@@@@@@!bbbbbbbb...",
+"n/.....y2ww@q5kqw@qwk@w@qk^3~x~..............)8+b,/..j$bbx,s#,nbbb)nbb6).33/db+$)jrb}..3.3~#$.3./)a&s[68).3d6o...................+++++++++++b++bbe..3.3)xbbbr3..3...33jj:/33)xb+bup@@@@@@@@@@7ubbb]@@@@@@@!vb+b7@@@@@@@f]lbbb'@@w@w@!b+b+b+b+...",
+"n~..333o4-qc5@5w55wk5k5wq2m.~x:............3.)$b+&:..)+b+bbbbb++bb>6+b,/3..~db+$)3e8}.3.33/,l..3en8$6n86)..s$o...................bbbbbbbbbbbbbb+b&3....:sbbb6}3.3..)r&&re/..:sbb++zf@@@@f!@@@ftbb+v_@@@@@7hbbbv@@@f_7@@@|u++bz@@@@@@!bbbbbbbb...",
+"x)..../dl(myg@kq@kk5qw5q0m.3)x.............3.)$bb&:..~bb+ll8blll88o6bbs/.3.~dbb$)3r+}...../,6..(lxe))),8).3d8}...................bbbbbbbbbbbbbb++&:.3...>++b+6&):/en++b+r33..>bb+b+h_fw_'$@@@@!vbb+u'p@|!ubbbb]@@@<vu_f@!lbbb!@@@@@@{b+b+b+b+...",
+",oj//~:ellxe3mi0qq%%%q-^....as333333333333..3)$+b&:3.3lbb&:)ooaao>~x++6).../,bl$)3ela....3~[6j>xn>33..s8)..d6o3333333333333333333bbbbbbbbbb+bbbbbs:..3..31++bb+l8l+bbbbn3....3rlbbbb+ll+bb@@@@ftbbb+l+lllb+b+t|@@f*+++llb+b+l_@@@@@@;bbbbbbbb...",
+"&r}s#x=/ebb+=~~/>~))~:3.33.3ee...............)$+b1/333nbbx).:33:..:dbb843j:o6bb6)3eb}...../#6j=8&...j3#8)..s6o...................+++++++++b++bbbb6)..3333/s++bbbbbb++bx>....3./&lbb+bb++bb@@@w@fh+bb++bb+b+b97@w@_bb++bbbbbl'f@w@@@whb+b+b+b+...",
+"axx++b81&bb+8n#[xnxxn:.3..3/d>...........3..3)$bb&:..3=bbl,4a>a4e/.=8bb8e}e#bbb$)34+}.33..~#$3=l1:333/l$>..d$}3..................bbbbbbbbbbbb+bbbb=.......~1b+bb+b+bb,>j3.33.../(6+b+bbbbb@@@@@@7;lbbb+bbb+*_@@@@p'8bb++b++'p@@@@@@|bbbbbbbbb...",
+"~#bbbbb+++bbbbb6r&xb[....33=s/...........3.33)8bb1j3../s+bb+l8ll8)./,bbb+ll+l+b$)3e+}...3./,$.o6n>/))dl8)33&le):3................bbbbbbbbbbbb++bbb6j..333..jas68886n4:..3..3..333/a&dnb+b+@@@@@w@f_*v8v88h!f@@@@@@@|!thuu'7@@@@@@@@9bb+b+b+b+...",
+".(8b+bb+b+b+b++n=}6+&.:~>~),a.3333333333..3.3)8b+&j...3~dl+++bbblo33)xlbb+bxs8b$).ela..3..~#l..el61s6618)3.)$xd,a3333333333333333bbbbbbbb+bbbbb+b++e:.......3.~}((~:..3.....33...3...rbb+b@@w@@@@@@@|_<_7@@w@@@@@@@@@@@@@@@@@@@w@f!v+bbbbbbbb...",
+"3/dbb+bbbbbbbb+bl8bx)je#xxnd:...............3~d,,(..3.33~(sn6xxs4/333)e#6xs>od#d~.as).....:e1.3/en6x,a~,~..3=n$6}................+++++++b++bbbbbbbb843..3.....3...3...........3...3..ebbbb@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@{vb+b+b+b+b+...",
+".3~8+bbbb+b+bbbbbb8()#8bbb8:...........3....33:::3.3.....j:////:33....3////33:::333:j3.....::...j///j3j/3.333///j................bbbbbbbbbb+bbb+bbbb8&:3..33........3.3.33...3...3...ebbbb@@@@@@@@@@@@@@@@@@@@@@@@@w@@@@@@@@@@@f{lbbbbbbbbbbb...",
+".33a$b+bbbbbbb++bb#}xbbbb6>............3.33.333333...3....3.33.3..3........3.....33...3.33..3....3.3...33........................bbbbbbbbbb++bbbb++bbb#(>:33....3.3...3..3....3...3.3eb++b@@w@@@@@@@@@@@@@@w@@@@@@@@@w@@@@@wf|!*l+bb+b+b+b+b+...",
+".3.j}6b+b+b++bbbbb68bbbbnoj.3333333333..3.......3...3..3...........3333......333.....3.3...3.....33.....3..33.3.33333333333333333bbbbbb+bbbbb+b++bbb++bl6dd&1&1&1&&&1&&&&&11&&&11&&1&n+bbb;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;t*lbbb+bbbbbbbbbb...",
+"....3>xlbbbb+bb++b+b++l[)33..................3....3..3..3....3.33......3...3.....33......3..333.....3.3..3..3....................+++++b++bbbbbbbbb+bbbb+b+bbb+bbbbb+bbbbb++bbb+bbb+bbbbbb+bbbb+b+b++bbb++++++++++++bbbbbbbb+b+b+bb+b+b+b+b+b+...",
+".3...3:exlbbbbbbb+bblne:33...........3....33.....3.....3..3...3.......3.33.....33..3...........3...3.3..3.....3..................bbbbbbbb+bbb+bbbbbbbbbbbb+bbbb+b+bbb+bb+bbbb+bbb+bbbbbb+bbb+bbbb+bb+bbbbbbbb++b+bbbb++bbbbbbbbbbbbbbbbbbbbbb...",
+".3.3.33.)=s6++bbbb6d4~33.............3.33..3.333...3....3.33....3........3..........3.33..3......3....3..........................bbbbbbbb++bbbb++bbb++b+bbbbbbbbb+b+b++bbb+bbb+bbb++b++bbbbbbbbbbbbb+bbbbbbbbbbbbb+bbbb+bbbbbbb+bb+b+b+b+b+b+...",
+".................................................................................................................................bbbb+bbbbb+b++bbb++bbbbbbb+b+b+bbbbbbbbbbb+bbb+bbbb+bbbbb+b+b+bbb+bb+++b+b+bbbb+bb+bb+b+bb+b+bb+bbbbbbbbbbbb...",
+".................................................................................................................................++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++...",
+"................................................................................................................................................................................................................................................"};
+#else
+#if 0
+/* XPM */
+static char * banner_xpm[] = {
+"320 54 17 1",
+" c None",
+". c #030305",
+"+ c #949394",
+"@ c #CFC9CD",
+"# c #525052",
+"$ c #B7B6B8",
+"% c #E2515E",
+"& c #FDFDFB",
+"* c #737073",
+"= c #820204",
+"- c #E33533",
+"; c #343232",
+"> c #E895AE",
+", c #E51604",
+"' c #E67284",
+") c #EABAD4",
+"! c #D8D7D9",
+"............................................................................................................................................................................&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"............................................................................................................................................................................&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"............................................................................................................................................................................&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"............................................................................................................................................................................&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"............................................................................................................................................................................&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"............................................................................................................................................................................&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"............................................................................................................................................................................&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"............................................................................................................................................................................&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"............................................................................................................................................................................&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"..............*+@&&&&&&$+*..................................................................................................................................................&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&+#;;...................................&&&&&&,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,--%>&&&&&&&&&&&&&&&&&&&&&&&&",
+"...........#$&&@+*##;#++@&&$#...............................................................................................................................................&&&&&&&&&&&&&&&&&&&&&&&&&&&&&#........................................&&&&&&,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,'&&&&&&&&&&&&&&&&&&&&&&",
+".........#$&$*...........;#!&$;.............................................................................................................................................&&&&&&&&&&&&&&&&&&&&&&&&&&&+..........................................&&&&&&,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,>&&&&&&&&&&&&&&&&&&&&",
+"........+&$#................#$&+............................................................................................................................................&&&&&&&&&&&&&&&&&&&&&&&&&&#...........................................&&&&&&,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,'&&&&&&&&&&&&&&&&&&&",
+"......;!&*....................*&@...........................................................................................................................................&&&&&&&&&&&&&&&&&&&&&&&&&#............................................&&&&&&,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,'&&&&&&&&&&&&&&&&&&",
+".....;!@;.....====;.=====......;!@;....................................................................;.;..................................................................&&&&&&&&&&&&&&&&&&&&&&&&+...............;;;;..........................&&&&&&,,,,,,,,,,,,,,,---,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,>&&&&&&&&&&&&&&&&&",
+"....;&@......,,=,,=,,=...==......!!.................................................................;#!$*#..................................................................&&&&&&&&&&&&&&&&&&&&&&&!.............#+&&&&&&@*...................;***&&&&&&,,,,,,,,,,,,')&&&&&&>-,,,,,,,,,,,,,,%>!&&)>'-,,,,,,,,,,&&&&&&&&&&&&&&&&&",
+"....@@;.....=,,,,,,=,,=..=,.......!!.................................................................#&&&&+;...;............................................................&&&&&&&&&&&&&&&&&&&&&&&#...........;@&&&&&&&&&&&+...............*&&&&&&&&&&&,,,,,,,,,,'&&&&&&&&&&&)-,,,,,,,,,,-)&&&&&&&&&)-,,,,,,,,'&&&&&&&&&&&&&&&&",
+"...$&;......====,=,,,====,==......;!+................................................................#&&&&@..;>+;...........................................................&&&&&&&&&&&&&&&&&&&&&&&...........*&&&&&&&&&&&&&&$............#&&&&&&&&&&&&&,,,,,,,,,)&&&&&&&&&&&&&&%,,,,,,,,-&&&&&&&&&&&&%,,,,,,,,,&&&&&&&&&&&&&&&&",
+"..#&;.......,=.....=,,,,,,,,.......*&#...............................................................#&&&&@...&&*...............................;...........................&&&&&&&&&&&&&&&&&&&&&&+..........+&&&&&&&&&&&&&&&&@..........#&&&&&&&&&&&&&&,,,,,,,,)&&&&&&&&&&&&&&&&',,,,,,,)&&&&&&&&&&&!,,,,,,,,,,>&&&&&&&&&&&&&&&",
+"..!$........,=...;==,=,=,=,==.......$$..............................................................;#&&&&@...&&*..............................#$*..........................&&&&&&&&&&&&&&&&&&&&&&#.........#&&&&&&&&&&&&&&&&&&$........#&&&&&&&&&&&&&&&,,,,,,,)&&&&&&&&&&&&&&&&&&%,,,,,%&&&&&&&&&&&&-,,,,,,,,,,'&&&&&&&&&&&&&&&",
+".*&;........,,===,,=,,,,,,,,,.......;&#..............................................................#&&&&$;..!&*;...................;.........!&+;.........................&&&&&&&&&&&&&&&&&&&&&&;.........&&&&&&&*;...#$&&&&&&#.......&&&&&&&&!'''>!&&,,,,,,'&&&&&&&)'''>&&&&&&&&,,,,,'&&&&&)-,,%)),,,,,,,,,,,-&&&&&&&&&&&&&&&",
+".@+.....===.,=,,,,=,,=,=,=,,=........$$.......................;.;.;.;.;......;.;.;..............;.;.;#&&&&@..;!&*.;.;.;..........;.;.;.;....;.;!&+.;.;......................&&&&&&&&&&&&&&&&&&&&&&;........+&&&&&@........#&&&&&!......+&&&&&&&',,,,,,'&,,,,,,&&&&&&&-,,,,,,>&&&&&&',,,,)&&&&&%,,,,,-,,,,,,,,,,,-&&&&&&&&&&&&&&&",
+";&#..=,,,,,..=,=,,,,,,,,,=,,,=.......#&;.....................#***;.;+$$#;..;.#+$$@+*..........#+$$$*.#&&&&@...!&*.;;*++#;.......;.#*++*;.;..;;;!&+;;;;......................&&&&&&&&&&&&&&&&&&&&&&.........&&&&&!..........+&&&&&#.....&&&&&&&-,,,,,,,,%,,,,,%&&&&&&-,,,,,,,,'&&&&&&,,,,)&&&&&>,,,,,,,,,,,,,,,,,-&&&&&&&&&&&&&&&",
+"*&...,=,=,,=...===,=,=,,,,,=,=........!*.....................!&&&*;@&&&*..;#@&&&&&&&$;.....;.$&&&&&&!*&&&&@..;&&*.$!&&&&$#....;.+!&&&&&!*..;$!&&&&!&&!......................&&&&&&&&&&&&&&&&&&&&&&........#&&&&&*;;;;;;;;;;#&&&&&+....#&&&&&&',,,,,,,,,,,,,,,>&&&&&%,,,,,,,,,,)&&&&&-,,,)&&&&&&!'-,,,,,,,,,,,,,,-&&&&&&&&&&&&&&&",
+"$$...,,,,=,,.......=,,=,=,,,,====.....@$.....................!&&&+!&&&&+;.*!&&&&&&&&&!.....;!&&&&&&&&!&&&&@...!&*!&&!$!&&&;;...*&&!@$@!&&*..$&!&&!&!&!......................&&&&&&&&&&&&&&&&&&&&&&........+&&&&&&&&&&&&&&&&&&&&&&&....+&&&&&&,,,,,,,,,,,,,,,,&&&&&!,,,,,,,,,,,%&&&&&',,,'&&&&&&&&&)',,,,,,,,,,,,-&&&&&&&&&&&&&&&",
+"&+...==,,,,=,=......=,,,,=,=,=,,=,....*!.....................!&&&!&&&&&*.#&&&&&!!&&&&&@....!&&&&&&&&&&&&&&@..;!&!&$;...#!&!....#@*....;@&&...;.!&+.;;;......................&&&&&&&&&&&&&&&&&&&&&&........$&&&&&&&&&&&&&&&&&&&&&&&....$&&&&&),,,,,,,,,,,,,,,,&&&&&',,,,,,,,,,,,&&&&&',,,-&&&&&&&&&&&&-,,,,,,,,,,-&&&&&&&&&&&&&&&",
+"&#....==,=,,,,,==....,=,,,,,=,=,,,,...#&.....................!&&&&&&&!&*.@&&&&*;.;@&&&&#;.+&&&&&@+*+&&&&&&@...&&&+......*&&*............!&+....!&+..........................&&&&&&&&&&&&&&&&&&&&&&........$&&&&&&&&&&&&&&&&&&&&&&&....$&&&&&),,,,,,,,,,,,,,,-&&&&&',,,,,,,,,,,,&&&&&),,,,%&&&&&&&&&&&&-,,,,,,,,,-&&&&&&&&&&&&&&&",
+"&;.....=,,,=,=,,,===.=,,=,,,,,,,=,==..#&;....................@&&&&&@*;;.*&&&&*.....&&&&$..&&&&&$....#&&&&&@...&&!........@&$...........;)&$....&&+..........................&&&&&&&&&&&&&&&&&&&&&&........$&&&&&$$$$$$$$$$$$$$$$$$....$&&&&&),,,,,,,,,,,,,,,,&&&&&',,,,,,,,,,,,&&&&&>,,,,,->&&&&&&&&&&&,,,,,,,,,-&&&&&&&&&&&&&&&",
+"&;......=,,,,,=,,,,,,,=,,,=,=,=,,,,=..;&#....................!&&&&!.....@&&&!;.;.;.$&&&&.#&&&&!;.....+&&&&$;..!&+........+&@;......;.;..+&!....!&+;.........................&&&&&&&&&&&&&&&&&&&&&&........+&&&&&;.....................$&&&&&!,,,,,,,,,,,,,,,,&&&&&),,,,,,,,,,,-&&&&&',,,,,,,,%>&&&&&&&&-,,,,,,,,-&&&&&&&&&&&&&&&",
+"&;........==,,,,=,=,=,,,=,,,,,,,=,,...#&;....................!&&&&*.....!&&&!+$+$$+@&&&&.+&&&&$......#&&&&@..;&&*........+&!.....;.;*+$$@&@....!&+..........................&&&&&&&&&&&&&&&&&&&&&&........*&&&&&+................;....*&&&&&&-,,,,,,,,,,,,,,,)&&&&&-,,,,,,,,,,>&&&&&%,,,,,,,,,,,'&&&&&&',,,,,,,,-&&&&&&&&&&&&&&&",
+"&#.........==,=,,,,,,=,,,=,=,=,,=,=...#&;....................@&&&&#....;&&&&&&&&&&&&&&&&;$&&&&+......#&&&&@...!&*........*&&....;*@&&&&&&&!....!&+..........................&&&&&&&&&&&&&&&&&&&&&&........;&&&&&&;.........;;;;;;;....;&&&&&&!,,,,,,,,,-,,,,,'&&&&&),,,,,,,,,-&&&&&&,,,,,,,,,,,,,>&&&&&',,,,,,,,-&&&&&&&&&&&&&&&",
+"&;.......;&@.==,=,,=,,,=,,,,,,,,,=....#&.....................!&&&!;....#&&&&&&&&&&&&&&&&.@&&&&#.....;#&&&&@..;!&*........*&!....$&&!!$++@&@....&&+..........................&&&&&&&&&&&&&&&&&&&&&&;........$&&&&&&;.......@&&&&&&;.....$&&&&&&),,,,,,,-!,,,,,-&&&&&&>,,,,,,,-&&&&&&>,,,,,')-,,,,,>&&&&&',,,,,,,,-&&&&&&&&&&&&&&&",
+"&*.......*&&$...=,,,=,,,,=,=,=,==.....*&.....................@&&&&;....;&&&&&!&!&&!&&!&!;$&&&&*......#&&&&@...&&*........*&!...$&&+;....+&!....!&$..........................&&&&&&&&&&&&&&&&&&&&&&;........;&&&&&&&$#;.;+&&&&&&&+......;&&&&&&&&'-,,%>&&,,,,,,>&&&&&&&'-,-%>&&&&&&&-,,,,-&&&'-,,'&&&&&&-,,,,,,,,-&&&&&&&&&&&&&&&",
+"@+.......;&&&@&;...==,=,,,,,,==.......+$.....................!&&&&;.....&&&&$..########;.$&&&&$......*&&&&@..;!&*........+&!.;#&&*......+&!....!&+..........................&&&&&&&&&&&&&&&&&&&&&&#.........+&&&&&&&&&&&&&&&&&&!........*&&&&&&&&&&&&&&&,,,,,,-&&&&&&&&&&&&&&&&&&&',,,,,>&&&&&&&&&&&&&&,,,,,,,,,'&&&&&&&&&&&&&&&",
+"+!.#*++$;.;&&&&&;.....................!*.....................@&&&&;;....!&&&&............*&&&&!......+&&&&@...&&*........*&!..$&!.......+&!....!&+..........................&&&&&&&&&&&&&&&&&&&&&&+..........@&&&&&&&&&&&&&&&&&;.........+&&&&&&&&&&&&&&,,,,,,,-&&&&&&&&&&&&&&&&&),,,,,-&&&&&&&&&&&&&&',,,,,,,,,>&&&&&&&&&&&&&&&",
+"#&#+&&&&&;.;&&&&!+;##*+#*+#*;........;&;.....................!&&&&;.....+&&&&)..;.;.;.....&&&&&$.;.;#&&&&&@...&&*........+&!.;)&$.....;.@&@....&&+..........................&&&&&&&&&&&&&&&&&&&&&&&...........@&&&&&&&&&&&&&&&;...........+&&&&&&&&&&&&&,,,,,,,,%&&&&&&&&&&&&&&&),,,,,,'&&&&&&&&&&&&&>,,,,,,,,,,&&&&&&&&&&&&&&&&",
+".!&&&&&&&&$@&&&&&&&&&&&&&&&&.........+@......................@&&&&;......&&&&&!+*##*+!+...$&&&&&)+*$!&&&&&@...!&*........*&!..@&);.....;&&!....!&+;.........................&&&&&&&&&&&&&&&&&&&&&&&#...........+&&&&&&&&&&&&$;.............;$&&&&&&&&&&&,,,,,,,,,-)&&&&&&&&&&&&',,,,,,,,-)&&&&&&&&&&',,,,,,,,,,%&&&&&&&&&&&&&&&&",
+".+&&&&&&&&&&&&&&&&&&&*$+@&&$........;&*......................!&&&&;......*&&&&&&&&&&&&!...;&&&&&&&&&&&&&&&@...&&*........*&!..+&&;;.;.;!&&!....@&@.;........................&&&&&&&&&&&&&&&&&&&&&&&!............;+&&&&&&&&@#.................;*$$$&&&&&&,,,,,,,,,,,%)&&&&&&&&>-,,,,,,,,,,,-')!&&&)',,,,,,,,,,,,&&&&&&&&&&&&&&&&&",
+"..&&&&&&&&&&&&&&&&&&!;..$&&+........+!.......................!&&&&;.......+&&&&&&&&&&&&....*&&&&&&&&&!@&&&!...&&*........+&&...!&&+#*+&&$&!....*&&+*+*......................&&&&&&&&&&&&&&&&&&&&&&&&*..............#++++#;........................&&&&&&,,,,,,,,,,,,,-%''''%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,'&&&&&&&&&&&&&&&&&",
+"..*&&&&&&&&&&&&&&&&&&&!!&&&;..**+*+*&#.......................!&&&!;........*!&&&&&&&&&@;....*!&&&&&&!;$&&&@...!&*........*&!...#!&&&&&&+.&!.....$&&&&!......................&&&&&&&&&&&&&&&&&&&&&&&&&#............................................&&&&&&,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,%&&&&&&&&&&&&&&&&&&",
+"...$&&&&&&&&&&&&&&&&&&&&&&*..;&&&&&&$........................*++++...........*+$@@$$+#........*$@@$*..#+++*...*+;........;+*....;+@!@$#..++......+@!!+......................&&&&&&&&&&&&&&&&&&&&&&&&&&;...........................................&&&&&&,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,%&&&&&&&&&&&&&&&&&&&",
+"...;&&&&&&&&&&&&&&&&&&&&&$.;@&&&&&&&........................................................................................................................................&&&&&&&&&&&&&&&&&&&&&&&&&&&*..........................................&&&&&&,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,'&&&&&&&&&&&&&&&&&&&&",
+"....;&&&&&&&&&&&&&&&&&&&&;.&&&&&&&&;........................................................................................................................................&&&&&&&&&&&&&&&&&&&&&&&&&&&&@;........................................&&&&&&,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,%!&&&&&&&&&&&&&&&&&&&&&",
+".....*&&&&&&&&&&&&&&&&&&$+&&&&&&&&;.........................................................................................................................................&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&!+;;....................................&&&&&&,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,--'!&&&&&&&&&&&&&&&&&&&&&&&",
+"......;&&&&&&&&&&&&&&&&&&&&&&&&&!;..........................................................................................................................................&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+".......;@&&&&&&&&&&&&&&&&&&&&&&$;...........................................................................................................................................&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+".........*&&&&&&&&&&&&&&&&&&&&*.............................................................................................................................................&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"...........+!&&&&&&&&&&&&&&!*...............................................................................................................................................&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+".............#+@&&&&&&&&!+;.................................................................................................................................................&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+".................;####;.....................................................................................................................................................&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"............................................................................................................................................................................&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"............................................................................................................................................................................&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"................................................................................................................................................................................................................................................................................................................................"};
+#else
+/* XPM */
+static char * banner_xpm[] = {
+"640 56 88 1",
+" c None",
+". c #D8D8F8",
+"+ c #D8D8F8",
+"@ c #E3E3E3",
+"# c #8F8E8F",
+"$ c #828181",
+"% c #575657",
+"& c #1F1E1F",
+"* c #B9B8B9",
+"= c #F1F1F1",
+"- c #9D9C9D",
+"; c #494849",
+"> c #D5D5D5",
+", c #737373",
+"' c #0099CC",
+") c #DFF2F9",
+"! c #2D2C2C",
+"~ c #7ACAE4",
+"{ c #2C1F20",
+"] c #522123",
+"^ c #852326",
+"/ c #ABAAAB",
+"( c #9A2428",
+"_ c #C4262A",
+": c #CC0000",
+"< c #DD272C",
+"[ c #702224",
+"} c #452022",
+"| c #D1272B",
+"1 c #381F21",
+"2 c #AFDFEF",
+"3 c #5E2123",
+"4 c #EFF9FC",
+"5 c #CFECF5",
+"6 c #B7262A",
+"7 c #EFEFEF",
+"8 c #616161",
+"9 c #000000",
+"0 c #CC0000",
+"a c #E56B7B",
+"b c #F6F6F6",
+"c c #BFE5F2",
+"d c #60BFDF",
+"e c #9C9C9C",
+"f c #191919",
+"g c #E58EA2",
+"h c #109FCF",
+"i c #8FD2E9",
+"j c #50B9DC",
+"k c #656565",
+"l c #AB2529",
+"m c #20A6D2",
+"n c #30ACD6",
+"o c #3B393A",
+"p c #C7C7C7",
+"q c #25252F",
+"r c #3E3E3E",
+"s c #2F2F2F",
+"t c #E22F2F",
+"u c #E23E3E",
+"v c #9FD9EC",
+"w c #DEDEDE",
+"x c #CECECE",
+"y c #E8BBD3",
+"z c #E25666",
+"A c #E89FB8",
+"B c #EFCEEA",
+"C c #E52525",
+"D c #8B8B8B",
+"E c #E57B8E",
+"F c #ACACAC",
+"G c #505050",
+"H c #40B3D9",
+"I c #E24B50",
+"J c #BEBEBE",
+"K c #707070",
+"L c #414141",
+"M c #CFCFCF",
+"N c #9F9F9F",
+"O c #101010",
+"P c #BFBFBF",
+"Q c #7F7F7F",
+"R c #AFAFAF",
+"S c #202020",
+"T c #606060",
+"U c #DFDFDF",
+"V c #8F8F8F",
+"W c #303030",
+"...........................................................................................................................................................................................................................................................................................................................................................+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++",
+".........................@#$%%&&%%#*.......................................................................................................................................................................................................................................................................................................................+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++",
+"....................=-&&&&&&&&&&&&&&&&&;@..................................................................................................................................................................................................................................................................................................................+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++",
+"...................>&&&&&&&&&&&&&&&&&&&&&,.................................................................................................................................................................................................................................................................................................................+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++",
+".................,&&&&&&&&&&&&&&&&&&&&&&&&&&@..............................................................................................................................................................................................................................................................................................................++++++++++++++++++++++++++++++++')+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++",
+"................-&&&&&&&&&&&&&&&&&&&&&&&&&&&!#.............................................................................................................................................................................................................................................................................................................++++++++++++++++++++++++++++++++~++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++",
+"..............*&&&&&&&&&&&&&&&&&{]^^]{&&&&&&&&!/...........................................................................................................................................................................................................................................................................................................+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++",
+".............-&&&&&&&&(_:<([{&][::::::}&&&&&&&&&...........................................................................................................................................................................................................................................................................................................+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++",
+"............,&&&&&&&[:::::::::::_^]{&]::&&&&&&&&&%.........................................................................................................................................................................................................................................................................................................++++++++++++++++++++++++++++++++'~+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++",
+"...........,&&&&&&&&|::::::::::::::<&&::1&&&&&&&&&.........................................................................................................................................................................................................................................................................................................++++++++++++++++++++++++++++++++'2+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++",
+"..........#&&&&&&&&&::::::::::::::3][(:::]&&&&&&&&&,.......................................................................................................................................................................................................................................................................................................+++++++++++++++++++++++++++++++++++++++++++++++45++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++",
+".........*&&&&&&&&&&::(::::::::::::::::::6&&&&&&&&&&...........................................................................................................................+++++789999999999999999999999999999999999999999++++++0000000000000000000000000000000000000000000000000ab++++................................................................++++++++++++++++cc+++++++++++++++++++++++++++++d'++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++",
+".........&&&&&&&&&&}::&&^[]}]^::::::::::::&&&&&&&&&&;..........................................................................................................................++++ef99999999999999999999999999999999999999999++++++000000000000000000000000000000000000000000000000000g+++................................................................++++++++++++++++44++++++++++++++c4+++++++++++++)5++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++",
+"........#&&&&&&&&&&[::&&&&&&&&::::::::::::1&&&&&&&&&&..........................................................................................................................+++89999999999999999999999999999999999999999999++++++0000000000000000000000000000000000000000000000000000a++................................................................++++++++++++++++++4hh)+++++++++~''c+++++++++i'j++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++",
+".......k&&&&&&&&&&&|:::]1l::::::::::::::::<{&&&&&&&&&%.........................................................................................................................++899999999999999999999999999999999999999999999++++++00000000000000000000000000000000000000000000000000000a+................................................................++++++++++++++++++5''c+++++++++c'm++++++++++~'n++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++",
+".......&&&&&&&&&&&&::::::::::::::::::::::::l&&&&&&&&&&o...........................................................#&#p.........................................................+e999999999999999qrrs99999999999999999999999999++++++000000000000000tuu000000000000000000000000000000000000g................................................................+++++++++++++++++++cv+++++++++++c4++++++++++4i)++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++",
+"......p&&&&&&&&&&&&<::::::::::::::::::::::::&&&&&&&&&&&...........................................................#&&&k........................................................wf9999999999998e7+++++x,f999999999999999999s,,,++++++000000000000ay+++++bgu00000000000000zAB++yAaC0000000000................................................................++++++++++++++++++++++~~)++++++++++++++++2v++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++",
+".....@&&&&&[_:::::(&::::::::::::::::::::::::&&&&&&&&&&&>..........................................................#&&&&....#p..................................................899999999999rx++++++++++7D99999999999999f,7++++++++++0000000000Eb++++++++++yu0000000000ty+++++++++yu00000000................................................................++++++++++++++++++++++''m+++++++++++++++)''c+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++",
+".....#&&&&}:::::::]&]_::::::::::::::::::::::&&&&&&&&&&&,..........................................................#&&&&....&&..................................................99999999999,++++++++++++++Ff99999999999G7++++++++++++000000000y++++++++++++++z00000000tb+++++++++++z00000000................................................................++++++++++++++++++++++h'v+++++4h''j++++++Hn4+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++",
+".....&&&&(::::::::(&&&&{(|::::::::::::::::::[&&&&&&&&&&&*.........................................................#&&&&....&&...................................@..............9999999999D++++++++++++++++xf9999999998++++++++++++++00000000y++++++++++++++++E0000000y+++++++++++B000000000................................................................+++++++++++++++++++++++++++v4+c''''++i5++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++",
+".....&&&&6:::::::::&&&&&&&3^<:::::::::::::::^&&&&&&&&&&&$.........................................................#&&&&....&&.................................=#%..............9999999998++++++++++++++++++F99999999G+++++++++++++++0000000y++++++++++++++++++I00000I+++++++b++++u000000000................................................................+++++++++++++++++++++++++4n'h))'''n+v''~+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++",
+".....&&&&(:::::::::<&&&&&&&&&&]<::::::::::::1]::6]&&&&&&&.........................................................#&&&&....&&.................................p&%..............99999999f7+++++7,s999GJ++++++8999999f7+++++++BEaagB++000000a+++++++yaaagb++++++b00000E+++++yC00Iyy0000000000................................................................+++++++++++++++++++++++++i'''d+~'h5+h''')+++++++++++++++++++++++++++++KLLLLK++++++++++++++++++MLLLK+++LLLK+++++++++++++++++++++++++++++++++++++++NLLLLLLLLLLLLM+++++++++++++++++++++++NLLLM+++++++++++++++++++++++++++++++++NLLLM+++++++++++++++++++++++++++NLLLN++++++++++++++++++++++++++++++++++++",
+"....p&&&&1::::::::::l1&&&&&&&&&[::::::::::::{|::::1&&&&&&.........................................................#&&&&....&&.................................p&%..............99999999e+++++xf99999998+++++w999999e++++++ba000000a+000000b+++++bu000000g++++++E0000y+++++I00000C0000000000................................................................+++++++++++++++++++++++++5'''v++++++H''m++++++++++++++++++++++++++++++99999O++++++++++++++++++P999L+++999L+++++++++++++++++++++++++++++++++++++++Q999999999999P+++++++++++++++++++++++Q999P+++++++++++++++++++++++++++++++++Q999P+++++++++++++++++++++++++++Q999Q++++++++++++++++++++++++++++++++++++",
+"....$&&&&&&::::::::::::l&&&&&&&&:::::::::::<:::::::<&&&&&..............####..=#&&p.....=k&&&&&/.........../%&&&!p.#&&&&....&&....#%%%>..........=#%%%#>.....pp-&;ppppp.........99999999+++++wf999999999D+++++G9999f+++++++t00000000z00000z+++++bt00000000a+++++b0000y+++++A0000000000000000................................................................++++++++++++++++++++++++++2H~+++++++4Hj5+++++++++++++++++++++++++++++R999999P+++++++++++++++++P999L+++999L++++++++++++++++++++++++++++++NL+++++++Q999999999999P+++++++++++++++++++++++Q999P+++++++++++++++++++++++++++++++++Q999P+++++++++++++++++++++++++++Q999Q++++++++++++++++++++++++++++++++++++",
+"....%&&&&&&_::::::::::::|(&&&&&&::::::::::::::::::::&&&&&..............&&&&..!&&&p....-!&&&&&&&o.........-&&&&&&&%#&&&&....&&..p%&&&&&%........,!&&&&&&>....&&&&&&&&&&.........9999999G+++++,rrrrrrrrrrG+++++e9999G++++++a000000000000000A+++++z0000000000y+++++u000y++++++BaC0000000000000................................................................+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++K999999Q+++++++++++++++++7PPPM+++999L++++++++++++++++++++++++++++RS99+++++++PQQQT9999QQQQU+++++++++++++++++++++++Q999P+++++++++++++++++++++++++++++++++Q999P+++++++++++++++++++++++++++UPPPU++++++++++++++++++++++++++++++++++++",
+"....&&&&&&&&&:::::::::::::::<(]&&|::::::::::::::::::(&&&&..............&&&&=!&&&&p...;&&&&&&&&&&&-.....=&&&&&&&&&&&&&&&....&&.,&o=..@!&&*...../&,=.../!&@...pp-&;ppppp.........9999999D++++++++++++++++++++++79999D++++++0000000000000000+++++B00000000000I+++++E000E+++++++++ya00000000000................................................................++++++++++++++++++)c)++5h'h+++++++++++~''H+++5c++++++++++++++++++++++S999999L+++++++++++++++++++++++++999L++++++++++++++++++++++++++++L999+++++++++++P9999++++++++++++++++++++++++++++Q999P+++++++++++++++++++++++++++++++++Q999P++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++",
+"....&&&&&&&&&[::::::::::::::::::::::::::::::::::::::6&&&&..............&&&&,&&&&&p...&&&&&;%&&&&&&.....,&&&&&&&&&&&&&&&....&&#&#.....@;&!......@......@&,.....p&%..............9999999J+++++++++++++++++++++++9999J+++++y0000000000000000+++++E000000000000+++++E000C+++++++++++bu000000000................................................................++++++++++c4+5H~+)h'h)+m'''++++++++++5''''++2''++4jj++))++++++++++++U999Q99997+++++UVQV7MPPP++7PPPM+++999L++++7RQQQR7++++PPPP+NQQM++7PW999PP+++++++++P9999+++++7NQQQP+++++++MQQQVU++++Q999PPQQN++++PPPP+NQQM++++++PQQQNU++++Q999P++++UVQQQM++++++MQQN+PPPM++UPPPU++++UNQQQM++++++UNQQVM++++++++++++++",
+"....&&&&&&&&&&&(::::::::::::::::::::::::::::::::::::^&&&&p.............&&&&&&&&%%>.@&&&&>....=&&&&*...o&&&&&p.../!&&&&&....&&&$........&&..............k&-....p&%..............9999999J+++++++++++++++++++++++9999J+++++y000000000000000t+++++a000000000000+++++y0000z++++++++++++u00000000................................................................++++++++++c4+5H~+)h'h4+m'''++++++++++5''''++2''++4jd++))++++++++++++N999PL999R++++MO999OS999++P999L+++999L+++MO99999OM+++9999W9999Q+P9999999+++++++++P9999++++NO99999WM+++7L999999K+++Q999W9999W7++9999W9999Q+++7W999999N+++Q999P+++K999999L7+++Q9999L999L++Q999Q+++Q999999L7+++K999999T+++++++++++++",
+"....&&&&&&&&&&&&}:::::::::::::::::::::::::::::::::::3&&&&p.............&&&&&&%p....,&&&&......&&&&k...&&&&&!.....>&&&&&....&&o=........!&p............./&k....p&%..............9999999J+++++JJJJJJJJJJJJJJJJJJ9999J+++++y0000000000000000+++++a000000000000+++++A00000tg++++++++++b00000000................................................................++++++++++++++++++)c)++5h'h+++++++++++~''H+++5c+++++++++++++++++++++L9997K999K++++S999999999++P999L+++999L++7O9999999O7++99999999997P9999999+++++++++P9999+++P99999999W+++T99999999Q++Q999999999V++99999999997++L99999999R++Q999P++N99999999L++U999999999L++Q999Q++R99999999L++Q999SS999Q++++++++++++",
+"....&&&&&&&&&&&&&&{<::::::::::::::::::::::::::::::::&&&&&..............&&&&&o......&&&&*......-&&&&p.=&&&&,.......o&&&&....&&=.........#&$..............&&....p&%..............9999999D+++++s999999999999999999999F+++++B0000000000000000+++++y00000000000t+++++E00000000zAb+++++++u0000000................................................................++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++O99W+R999S+++U999S7V9999++P999L+++999L++V999V+V999V++9999M7S999P7PW999PP+++++++++P9999+++T999R+L999R+U999S7M999O++Q999T+K999Q++9999M7S999P+M999L7R999L++Q999P++W999M7W999U+V999Q+L999L++Q999Q++L999M+L999M+L99O77999L++++++++++++",
+"....&&&&&&&&&&&&!#${<::::::::::::::::::::::::::::::_&&&&&..............&&&&&/......&&&&.......p&&&&-.*&&&&*.......$&&&&....&&..........*&%..............&&....p&%..............9999999,+++++e9999999999999999q9999,++++++u000000000000000y+++++C0000000000g+++++z00000000000E++++++a0000000................................................................++++++++++++++++++++++++++2H~+++++++4Hj5+++++++++++++++++++++++++++M999T+79999U++P999Q++9999++P999L+++999L++L9997++999L++9999++L999P++L999+++++++++++P9999+++S99O++P999Q+P999Q++L9997+Q999P+P999Q++9999++L999P+V999N++S999++Q999P++999L++Q999R+Q999P+R999L++Q999Q++999L++R999N+S999M+LLLK++++++++++++",
+"....%&&&&&&&&&&#++++&&[6::::::::::::::::::::::::::}&&&&&&..............&&&&o.......&&&&&&&&&&&&&&&&$.,&&&&........#&&&&....&&..........p&%.......-%&&&&&&&....p&%..............9999999q++++++r99999999frrrrrrr9999q++++++B000000000t00000E+++++y000000000u++++++0000000000000g+++++E0000000................................................................+++++++++++++++++++++++++c'''v++++++j''m+++++++++++++++++++++++++++Q999N++S999N++P999Q++9999++P999L+++999L++L999PPP999L++9999++L999P++L999+++++++++++P9999+++999WPPV999T+Q999V++NQQQU+Q999P+P999Q++9999++L999P+Q999P++L999++Q999P+U999L++P999Q+L999U+P999L++Q999Q++999WPPV999Q+T9999TU+++++++++++++++",
+"....$&&&&&&&&&&p++++o&&&(<:::::::::::::::::::::::l&&&&&&&..............&&&&%.......&&&&&&&&&&&&&&&&%.%&&&&........#&&&&....&&..........p&%.....=,&&&&&&%&&....p&%..............99999999J+++++7r999999fx++++++q99999J++++++y0000000tB00000C++++++A0000000ub+++++A00000EyC00000g+++++E0000000................................................................+++++++++++++++++++++++++i'''d+~'h5+h''')++++++++++++++++++++++++++W999VPPL999L++P999N++9999++P999L+++999L++L999999999L++9999++L999P++L999+++++++++++P9999+++9999999999L+Q999P++++++++Q999P+P999Q++9999++L999P+Q999P++L999++Q999P+P999L++P999Q+L999++P999L++Q999Q+U9999999999Q+US99999TU+++++++++++++",
+"....p&&&&&&&&&&#+++++p+=&&&&(|::::::::::::::::6[&&&&&&&&&..............&&&&%......>&&&&&&&&&&&&&&&&#.%&&&&........#&&&&....&&..........p&%..../&&p......&&....p&%..............99999999r+++++++FGs9rD7++++++D999999r+++++++bEu00Ig++000000g++++++bau0CIg+++++++C0000C++bEu00a++++++u0000000................................................................+++++++++++++++++++++++++4n'h))'''n+v''d++++++++++++++++++++++++++799999999999O++P999P++9999++P999L+++999L++L999999999L++9999++L999P++L999+++++++++++P9999+++9999999999L+Q999P++++++++Q999P+P999Q++9999++L999P+Q999P++L999++Q999P+P999L++P999Q+L999++P999L++Q999Q+U9999999999Q++7T99999OM++++++++++++",
+".....&&&&&&&&&&!@+++++++&&&&&&[(::::::::::::l[&&&&&&&&&&&..............&&&&%.......&&&o############p.%&&&&........#&&&&....&&..........p&%...p&&,.......&&....p&%..............999999999e++++++++++++++++++wf9999999,+++++++++++++++000000Cb++++++++++++++++++E00000g+++++++++++++b00000000................................................................++++++++++++++++++++++++++4v4+c''''++i5+++++++++++++++++++++++++++R999999999999M+P999P++9999++P999L+++999L++L999+++++++++9999++L999P++L999+++++++++++P9999+++999L++++++++Q999V++UPPP7+Q999P+P999Q++9999++L999P+Q999P++L999++Q999P+M999L++P999Q+L999++P999L++Q999Q++999L+++++++++++7QO999S++++++++++++",
+".....&&&&&&p++-&&++++++++/&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$..............&&&&%.......&&&&>.............-&&&&*.......k&&&&....&&..........p&%...&&=........&&....p&%..............9999999999x++++++++++++++++7s999999999e++++++++++++++0000000t+++++++++++++++++y00000C++++++++++++++E00000000................................................................++++++++++++++++++++++h'v+++++4h''j++++++Hn4++++++++++++++++++++++T999WLLLLO999V+P999Q++9999++P999L+++999L++L9997+7LLLK++9999++L999P++L999+++++++++++P9999+++O99O++MLLLN+R999Q++L999P+Q999P+P999Q++9999++L999P+Q999R++L999++Q999P++999L++Q999V+K999M+P999L++Q999Q++999L++NLLLN+QQQN+UO999++++++++++++",
+".....%%%%/@++++&&p++++++++o&&&&&&&&&&&&&&&&&&&&&&&&&&&&&>..............&&&&%.......&&&&,.............>&&&&,.......!&&&&....&&..........p&%...&&.........&&....p&%..............9999999999fx++++++++++++++7r99999999999D+++++++++++++00000000Ib++++++++++++++y000000a+++++++++++++g000000000................................................................++++++++++++++++++++++''h++++++2'H4+++++c''i++++++++++++++++++++++S999U++++Q999L+P999L+R9999++P999L+++999L++K999N+R999T++9999++L999P++L9997++++++++++P9999+++L999U+Q999V+M999T++S9997+Q999P+P999Q++9999++L999P+P999K+7999W++Q999P++S99O++T999P+Q999Q+T999L++Q999Q++S9997+T999R+O99O++L999++++++++++++",
+".....++++++++++=$&o+++++++++++++++++++++++@&&&&&&&&&&&&$...............&&&&%.......o&&&&>.............&&&&&!...../&&&&&....&&..........p&%...&&......../&&....p&%..............G99999999999D++++++++++++Jq9999999999999rJ+++++++++++000000000ty++++++++++++E00000000uy++++++++++E0000000000................................................................++++++++++++++++++++++~~)++++++++++++++++2v++++++++++++++++++++++U999S+++++P9999++O999S99999++P999L+++999L++P999OQS999N++9999++L999P++L999WK+++++++++P9999+++V999WKO999U++S999KL999L++Q999P+P999Q++9999++L999P+7O99OKL999Q++Q999P++T999LK999O++M9999S9999L++Q999Q++K999WK999O7+L999LK999S++++++++++++",
+".....+++++++++++++++++++++++++++++++++++++-&&&&&&&&&&&&@...............&&&&%......./&&&&&#......*,....&&&&&&-=..$&&&&&&....&&..........p&%...&&........o&&....=&o..............w999999999999qe++++++++xG99999999999999999s,FJJ++++++00000000000zy+++++++bgC00000000000CEyB++bya000000000000................................................................+++++++++++++++++++cv+++++++++++c4++++++++++4i)++++++++++++++++++V999T++++++9999R+N9999O9999++P999L+++999L+++T9999999T+++9999++L999P++R9999L+++++++++P9999+++7W9999999V+++R9999999OM++Q999P+P999Q++9999++L999P++N9999999S7++Q999P++UO9999999N+++T9999O999L++Q999Q++7O9999999N++R99999999R++++++++++++",
+"......++++++++++++++++++++++++++++++++++++&&&&&&&&&&&&&................&&&&%........@&&&&&&&&&&&&&....=;&&&&&&&&&&&!&&&....&&..........p&%...&&-....../&&&.....;&/.............+,99999999999999GDDDD8q999999999999999999999999++++++0000000000000CzEEEEI0000000000000000000000000000000000E................................................................++++++++++++++++++5''5+++++++++c'm++++++++++~'m++++++++++++++++++QLLLR++++++KLLLN++PQQQU9999++MLLLK+++LLLK++++QS999WN++++LLLL++KLLLM+++RL99K+++++++++MLLLL++++7TS999LR+++++PL999OTM+++NLLLM+MLLLN++LLLL++KLLLM+++RW999OT7+++NLLLM+++UTO999LP+++++NQQVP999L++NLLLN+++7TO999LP++++RL9999LM+++++++++++++",
+".......+++++++++++++++++++++++++##++,+++++&&&&&&&&&&&&%................&&&&%.........!&&&&&&&&&&&&.....>&&&&&&&&&&$,&&&....&&..........p&%...,&&/....k&%&&.....#&!.....=@......++G99999999999999999999999999999999999999999999++++++00000000000000000000000000000000000000000000000000000z+................................................................++++++++++++++++++)hh)+++++++++~''c+++++++++i'H++++++++++++++++++++++++++++++++++7PPPU++9999+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++UPPP7+P999L+++++++++++++++++++++++++++++++++++++++++++",
+".......+++++++++++++++++++++++++%o!!$+++++&&&&&&&&&&&%.#k..............&&&&%........../o&&&&&&&&&!......=,&&&&&&!-.#&&&....&&..........p&%....=&&&&&&&#.&&......&&&&&&.,%......++7r9999999999999999999999999999999999999999999++++++0000000000000000000000000000000000000000000000000000z++................................................................++++++++++++++++++++4++++++++++c'n+++++++++++4+++++++++++++++++++++++++++++++++++U999L+7999W+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++V999N+R999Q+++++++++++++++++++++++++++++++++++++++++++",
+"........+++++++++++++++++++++++++++++++++*&&&$+++++++......................................=................pp...................................pp...............>p...........++++,999999999999999999999999999999999999999999++++++000000000000000000000000000000000000000000000000000a+++................................................................++++++++++++++++cc+++++++++++++++++++++++++++++~'+++++++++++++++++++++++++++++++++S999TW999Q+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++U999OKO999P+++++++++++++++++++++++++++++++++++++++++++",
+".........+++++++++++++++++++++++++++++++=o&&%++++++++..........................................................................................................................+++++xr9999999999999999999999999999999999999999++++++0000000000000000000000000000000000000000000000000IB++++................................................................+++++++++++++++++++++++++++++++++++++++++++++++45+++++++++++++++++++++++++++++++++MO999999W7++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++Q9999999K++++++++++++++++++++++++++++++++++++++++++++",
+".........+++++++++++++++++++++++++++++++&&;/++++++++.......................................................................................................................................................................................................................................................................................................++++++++++++++++++++++++++++++++'2+++++++++++++++++++++++++++++++++++++++++++++++++UVLLLTN+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++MQLLLQM+++++++++++++++++++++++++++++++++++++++++++++",
+"..........+++++++++++++++++++++++++++++p&&++++++++++.......................................................................................................................................................................................................................................................................................................++++++++++++++++++++++++++++++++'~+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++",
+"...........+++++++++++++++++++++++++++-&/+++++++++.........................................................................................................................................................................................................................................................................................................+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++",
+"............++++++++++++++++++++++++++!&++++++++++.........................................................................................................................................................................................................................................................................................................+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++",
+".............++++++++++++++++++++++++=++++++++++...........................................................................................................................................................................................................................................................................................................++++++++++++++++++++++++++++++++~++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++",
+"..............++++++++++++++++++++++++++++++++++...........................................................................................................................................................................................................................................................................................................++++++++++++++++++++++++++++++++')+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++",
+"................++++++++++++++++++++++++++++++.............................................................................................................................................................................................................................................................................................................+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++",
+".................++++++++++++++++++++++++++++..............................................................................................................................................................................................................................................................................................................+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++",
+"...................+++++++++++++++++++++++.................................................................................................................................................................................................................................................................................................................+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++",
+".....................+++++++++++++++++++...................................................................................................................................................................................................................................................................................................................+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++",
+"..........................++++++++++.......................................................................................................................................................................................................................................................................................................................+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++",
+"...........................................................................................................................................................................................................................................................................................................................................................+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++"};
+#endif
+#endif
diff --git a/ecos/packages/hal/arm/arm9/aaed2000/current/src/font.h b/ecos/packages/hal/arm/arm9/aaed2000/current/src/font.h
new file mode 100644
index 0000000..0323ad6
--- /dev/null
+++ b/ecos/packages/hal/arm/arm9/aaed2000/current/src/font.h
@@ -0,0 +1,159 @@
+//==========================================================================
+//
+// font.h
+//
+// LCD display font
+//
+//==========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//==========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): gthomas
+// Contributors: gthomas
+// Date: 2001-02-25
+// Description: Simple LCD font
+//####DESCRIPTIONEND####
+
+#ifndef _LCD_FONT_H_
+#define _LCD_FONT_H_
+
+// 8x8 Font - from Helios
+
+#define FIRST_CHAR 0x20
+#define LAST_CHAR 0x7F
+#define FONT_HEIGHT 8
+#define FONT_WIDTH 8
+#define CURSOR_ON 0x7F
+#define CURSOR_OFF 0x20
+static char font_table[LAST_CHAR-FIRST_CHAR+1][8] =
+{
+ { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, /* */
+ { 0x18, 0x18, 0x18, 0x18, 0x18, 0x00, 0x18, 0x00 }, /* ! */
+ { 0x36, 0x36, 0x36, 0x00, 0x00, 0x00, 0x00, 0x00 }, /* " */
+ { 0x6C, 0x6C, 0xFE, 0x6C, 0xFE, 0x6C, 0x6C, 0x00 }, /* # */
+ { 0x30, 0xFC, 0x16, 0x7C, 0xD0, 0x7E, 0x18, 0x00 }, /* $ */
+ { 0x06, 0x66, 0x30, 0x18, 0x0C, 0x66, 0x60, 0x00 }, /* % */
+ { 0x1C, 0x36, 0x36, 0x1C, 0xB6, 0x66, 0xDC, 0x00 }, /* & */
+ { 0x18, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00 }, /* ' */
+ { 0x30, 0x18, 0x0C, 0x0C, 0x0C, 0x18, 0x30, 0x00 }, /* ( */
+ { 0x0C, 0x18, 0x30, 0x30, 0x30, 0x18, 0x0C, 0x00 }, /* ) */
+ { 0x00, 0x18, 0x7E, 0x3C, 0x7E, 0x18, 0x00, 0x00 }, /* * */
+ { 0x00, 0x18, 0x18, 0x7E, 0x18, 0x18, 0x00, 0x00 }, /* + */
+ { 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x0C }, /* , */
+ { 0x00, 0x00, 0x00, 0x7E, 0x00, 0x00, 0x00, 0x00 }, /* - */
+ { 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x00 }, /* . */
+ { 0x00, 0x60, 0x30, 0x18, 0x0C, 0x06, 0x00, 0x00 }, /* / */
+ { 0x3C, 0x66, 0x76, 0x7E, 0x6E, 0x66, 0x3C, 0x00 }, /* 0 */
+ { 0x18, 0x1C, 0x18, 0x18, 0x18, 0x18, 0x7E, 0x00 }, /* 1 */
+ { 0x3C, 0x66, 0x60, 0x30, 0x18, 0x0C, 0x7E, 0x00 }, /* 2 */
+ { 0x3C, 0x66, 0x60, 0x38, 0x60, 0x66, 0x3C, 0x00 }, /* 3 */
+ { 0x30, 0x38, 0x3C, 0x36, 0x7E, 0x30, 0x30, 0x00 }, /* 4 */
+ { 0x7E, 0x06, 0x3E, 0x60, 0x60, 0x66, 0x3C, 0x00 }, /* 5 */
+ { 0x38, 0x0C, 0x06, 0x3E, 0x66, 0x66, 0x3C, 0x00 }, /* 6 */
+ { 0x7E, 0x60, 0x30, 0x18, 0x0C, 0x0C, 0x0C, 0x00 }, /* 7 */
+ { 0x3C, 0x66, 0x66, 0x3C, 0x66, 0x66, 0x3C, 0x00 }, /* 8 */
+ { 0x3C, 0x66, 0x66, 0x7C, 0x60, 0x30, 0x1C, 0x00 }, /* 9 */
+ { 0x00, 0x00, 0x18, 0x18, 0x00, 0x18, 0x18, 0x00 }, /* : */
+ { 0x00, 0x00, 0x18, 0x18, 0x00, 0x18, 0x18, 0x0C }, /* ; */
+ { 0x30, 0x18, 0x0C, 0x06, 0x0C, 0x18, 0x30, 0x00 }, /* < */
+ { 0x00, 0x00, 0x7E, 0x00, 0x7E, 0x00, 0x00, 0x00 }, /* = */
+ { 0x0C, 0x18, 0x30, 0x60, 0x30, 0x18, 0x0C, 0x00 }, /* > */
+ { 0x3C, 0x66, 0x30, 0x18, 0x18, 0x00, 0x18, 0x00 }, /* ? */
+ { 0x3C, 0x66, 0x76, 0x56, 0x76, 0x06, 0x3C, 0x00 }, /* @ */
+ { 0x3C, 0x66, 0x66, 0x7E, 0x66, 0x66, 0x66, 0x00 }, /* A */
+ { 0x3E, 0x66, 0x66, 0x3E, 0x66, 0x66, 0x3E, 0x00 }, /* B */
+ { 0x3C, 0x66, 0x06, 0x06, 0x06, 0x66, 0x3C, 0x00 }, /* C */
+ { 0x1E, 0x36, 0x66, 0x66, 0x66, 0x36, 0x1E, 0x00 }, /* D */
+ { 0x7E, 0x06, 0x06, 0x3E, 0x06, 0x06, 0x7E, 0x00 }, /* E */
+ { 0x7E, 0x06, 0x06, 0x3E, 0x06, 0x06, 0x06, 0x00 }, /* F */
+ { 0x3C, 0x66, 0x06, 0x76, 0x66, 0x66, 0x3C, 0x00 }, /* G */
+ { 0x66, 0x66, 0x66, 0x7E, 0x66, 0x66, 0x66, 0x00 }, /* H */
+ { 0x7E, 0x18, 0x18, 0x18, 0x18, 0x18, 0x7E, 0x00 }, /* I */
+ { 0x7C, 0x30, 0x30, 0x30, 0x30, 0x36, 0x1C, 0x00 }, /* J */
+ { 0x66, 0x36, 0x1E, 0x0E, 0x1E, 0x36, 0x66, 0x00 }, /* K */
+ { 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x7E, 0x00 }, /* L */
+ { 0xC6, 0xEE, 0xFE, 0xD6, 0xD6, 0xC6, 0xC6, 0x00 }, /* M */
+ { 0x66, 0x66, 0x6E, 0x7E, 0x76, 0x66, 0x66, 0x00 }, /* N */
+ { 0x3C, 0x66, 0x66, 0x66, 0x66, 0x66, 0x3C, 0x00 }, /* O */
+ { 0x3E, 0x66, 0x66, 0x3E, 0x06, 0x06, 0x06, 0x00 }, /* P */
+ { 0x3C, 0x66, 0x66, 0x66, 0x56, 0x36, 0x6C, 0x00 }, /* Q */
+ { 0x3E, 0x66, 0x66, 0x3E, 0x36, 0x66, 0x66, 0x00 }, /* R */
+ { 0x3C, 0x66, 0x06, 0x3C, 0x60, 0x66, 0x3C, 0x00 }, /* S */
+ { 0x7E, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x00 }, /* T */
+ { 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x3C, 0x00 }, /* U */
+ { 0x66, 0x66, 0x66, 0x66, 0x66, 0x3C, 0x18, 0x00 }, /* V */
+ { 0xC6, 0xC6, 0xD6, 0xD6, 0xFE, 0xEE, 0xC6, 0x00 }, /* W */
+ { 0x66, 0x66, 0x3C, 0x18, 0x3C, 0x66, 0x66, 0x00 }, /* X */
+ { 0x66, 0x66, 0x66, 0x3C, 0x18, 0x18, 0x18, 0x00 }, /* Y */
+ { 0x7E, 0x60, 0x30, 0x18, 0x0C, 0x06, 0x7E, 0x00 }, /* Z */
+ { 0x3E, 0x06, 0x06, 0x06, 0x06, 0x06, 0x3E, 0x00 }, /* [ */
+ { 0x00, 0x06, 0x0C, 0x18, 0x30, 0x60, 0x00, 0x00 }, /* \ */
+ { 0x7C, 0x60, 0x60, 0x60, 0x60, 0x60, 0x7C, 0x00 }, /* ] */
+ { 0x3C, 0x66, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, /* ^ */
+ { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF }, /* _ */
+ { 0x0C, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, /* ` */
+ { 0x00, 0x00, 0x3C, 0x60, 0x7C, 0x66, 0x7C, 0x00 }, /* a */
+ { 0x06, 0x06, 0x3E, 0x66, 0x66, 0x66, 0x3E, 0x00 }, /* b */
+ { 0x00, 0x00, 0x3C, 0x66, 0x06, 0x66, 0x3C, 0x00 }, /* c */
+ { 0x60, 0x60, 0x7C, 0x66, 0x66, 0x66, 0x7C, 0x00 }, /* d */
+ { 0x00, 0x00, 0x3C, 0x66, 0x7E, 0x06, 0x3C, 0x00 }, /* e */
+ { 0x38, 0x0C, 0x0C, 0x3E, 0x0C, 0x0C, 0x0C, 0x00 }, /* f */
+ { 0x00, 0x00, 0x7C, 0x66, 0x66, 0x7C, 0x60, 0x3C }, /* g */
+ { 0x06, 0x06, 0x3E, 0x66, 0x66, 0x66, 0x66, 0x00 }, /* h */
+ { 0x18, 0x00, 0x1C, 0x18, 0x18, 0x18, 0x3C, 0x00 }, /* i */
+ { 0x18, 0x00, 0x1C, 0x18, 0x18, 0x18, 0x18, 0x0E }, /* j */
+ { 0x06, 0x06, 0x66, 0x36, 0x1E, 0x36, 0x66, 0x00 }, /* k */
+ { 0x1C, 0x18, 0x18, 0x18, 0x18, 0x18, 0x3C, 0x00 }, /* l */
+ { 0x00, 0x00, 0x6C, 0xFE, 0xD6, 0xD6, 0xC6, 0x00 }, /* m */
+ { 0x00, 0x00, 0x3E, 0x66, 0x66, 0x66, 0x66, 0x00 }, /* n */
+ { 0x00, 0x00, 0x3C, 0x66, 0x66, 0x66, 0x3C, 0x00 }, /* o */
+ { 0x00, 0x00, 0x3E, 0x66, 0x66, 0x3E, 0x06, 0x06 }, /* p */
+ { 0x00, 0x00, 0x7C, 0x66, 0x66, 0x7C, 0x60, 0xE0 }, /* q */
+ { 0x00, 0x00, 0x36, 0x6E, 0x06, 0x06, 0x06, 0x00 }, /* r */
+ { 0x00, 0x00, 0x7C, 0x06, 0x3C, 0x60, 0x3E, 0x00 }, /* s */
+ { 0x0C, 0x0C, 0x3E, 0x0C, 0x0C, 0x0C, 0x38, 0x00 }, /* t */
+ { 0x00, 0x00, 0x66, 0x66, 0x66, 0x66, 0x7C, 0x00 }, /* u */
+ { 0x00, 0x00, 0x66, 0x66, 0x66, 0x3C, 0x18, 0x00 }, /* v */
+ { 0x00, 0x00, 0xC6, 0xD6, 0xD6, 0xFE, 0x6C, 0x00 }, /* w */
+ { 0x00, 0x00, 0x66, 0x3C, 0x18, 0x3C, 0x66, 0x00 }, /* x */
+ { 0x00, 0x00, 0x66, 0x66, 0x66, 0x7C, 0x60, 0x3C }, /* y */
+ { 0x00, 0x00, 0x7E, 0x30, 0x18, 0x0C, 0x7E, 0x00 }, /* z */
+ { 0x30, 0x18, 0x18, 0x0E, 0x18, 0x18, 0x30, 0x00 }, /* { */
+ { 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x00 }, /* | */
+ { 0x0C, 0x18, 0x18, 0x70, 0x18, 0x18, 0x0C, 0x00 }, /* } */
+ { 0x8C, 0xD6, 0x62, 0x00, 0x00, 0x00, 0x00, 0x00 }, /* ~ */
+ { 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF } /* Block cursor */
+};
+
+#endif // _LCD_FONT_H_
diff --git a/ecos/packages/hal/arm/arm9/aaed2000/current/src/hal_diag.c b/ecos/packages/hal/arm/arm9/aaed2000/current/src/hal_diag.c
new file mode 100644
index 0000000..583065b
--- /dev/null
+++ b/ecos/packages/hal/arm/arm9/aaed2000/current/src/hal_diag.c
@@ -0,0 +1,297 @@
+/*=============================================================================
+//
+// hal_diag.c
+//
+// HAL diagnostic output code
+//
+//=============================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): nickg, gthomas
+// Contributors:nickg, gthomas
+// Date: 2001-04-23
+// Purpose: HAL diagnostic output
+// Description: Implementations of HAL diagnostic output support.
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================*/
+
+#include <pkgconf/hal.h>
+#include CYGBLD_HAL_VARIANT_H // Variant specific configuration
+#include CYGBLD_HAL_PLATFORM_H // Platform specific configuration
+
+#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> // basic machine info
+#include <cyg/hal/hal_intr.h> // interrupt macros
+#include <cyg/hal/hal_io.h> // IO macros
+#include <cyg/hal/hal_diag.h>
+#include <cyg/hal/drv_api.h>
+#include <cyg/hal/hal_if.h> // interface API
+#include <cyg/hal/hal_misc.h> // Helper functions
+#include <cyg/hal/aaed2000.h> // platform definitions
+
+// The controller is clocked at 7.3728MHz
+#define BAUD_RATE(_n_) ((7372800/((_n_)*16))-1)
+
+//-----------------------------------------------------------------------------
+typedef struct {
+ cyg_uint8 *base;
+ cyg_int32 msec_timeout;
+ int isr_vector;
+} channel_data_t;
+
+static channel_data_t aaed2000_ser_channels[1] = {
+ { (cyg_uint8 *)AAEC_UART3, 1000, CYGNUM_HAL_INTERRUPT_UART3INTR },
+};
+
+//-----------------------------------------------------------------------------
+
+static void
+cyg_hal_plf_serial_init_channel(void* __ch_data)
+{
+ channel_data_t* chan = (channel_data_t*)__ch_data;
+ cyg_uint8* base = chan->base;
+
+ // Enable first.
+ // Register writes don't take effect till the UART is enabled.
+ HAL_WRITE_UINT32(base+AAEC_UART_CTRL, AAEC_UART_CTRL_ENAB);
+
+ HAL_WRITE_UINT32(base+AAEC_UART_STATUS, 0);
+ HAL_WRITE_UINT32(base+AAEC_UART_INTM, 0);
+ HAL_WRITE_UINT32(base+AAEC_UART_BAUD,
+ BAUD_RATE(CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_BAUD));
+ // 8-1-no parity.
+ HAL_WRITE_UINT32(base+AAEC_UART_LCR, AAEC_UART_LCR_FIFO | AAEC_UART_LCR_WL8);
+}
+
+void
+cyg_hal_plf_serial_putc(void *__ch_data, char c)
+{
+ cyg_uint8* base = ((channel_data_t*)__ch_data)->base;
+ cyg_uint32 status;
+
+ do {
+ HAL_READ_UINT32(base+AAEC_UART_STATUS, status);
+ } while ((status & AAEC_UART_STATUS_TxFF) != 0);
+
+ HAL_WRITE_UINT32(base+AAEC_UART_DATA, c);
+
+ do {
+ HAL_READ_UINT32(base+AAEC_UART_STATUS, status);
+ } while (status & AAEC_UART_STATUS_TxBSY);
+}
+
+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_uint32 status;
+ cyg_uint32 c;
+
+ HAL_READ_UINT32(base+AAEC_UART_STATUS, status);
+ if ((status & AAEC_UART_STATUS_RxFE) != 0)
+ return false;
+
+ HAL_READ_UINT32(base+AAEC_UART_DATA, c);
+ *ch = c;
+
+ return true;
+}
+
+cyg_uint8
+cyg_hal_plf_serial_getc(void* __ch_data)
+{
+ cyg_uint8 ch;
+
+ while(!cyg_hal_plf_serial_getc_nonblock(__ch_data, &ch));
+ return ch;
+}
+
+static void
+cyg_hal_plf_serial_write(void* __ch_data, const cyg_uint8* __buf,
+ cyg_uint32 __len)
+{
+ while(__len-- > 0)
+ cyg_hal_plf_serial_putc(__ch_data, *__buf++);
+}
+
+static void
+cyg_hal_plf_serial_read(void* __ch_data, cyg_uint8* __buf, cyg_uint32 __len)
+{
+ while(__len-- > 0)
+ *__buf++ = cyg_hal_plf_serial_getc(__ch_data);
+}
+
+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;
+
+ 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);
+ }
+ return res;
+}
+
+static int
+cyg_hal_plf_serial_control(void *__ch_data, __comm_control_cmd_t __func, ...)
+{
+ static int irq_state = 0;
+ cyg_uint32 intm;
+ channel_data_t* chan = (channel_data_t*)__ch_data;
+ cyg_uint8* base = ((channel_data_t*)__ch_data)->base;
+ int ret = 0;
+
+ CYGARC_HAL_SAVE_GP();
+
+ switch (__func) {
+ case __COMMCTL_IRQ_ENABLE:
+ irq_state = 1;
+ HAL_READ_UINT32(base+AAEC_UART_INTM, intm);
+ intm |= AAEC_UART_INT_RIS|AAEC_UART_INT_RTIS;
+ HAL_WRITE_UINT32(base+AAEC_UART_INTM, intm);
+ HAL_INTERRUPT_UNMASK(chan->isr_vector);
+ break;
+ case __COMMCTL_IRQ_DISABLE:
+ ret = irq_state;
+ irq_state = 0;
+ HAL_READ_UINT32(base+AAEC_UART_INTM, intm);
+ intm &= ~(AAEC_UART_INT_RIS|AAEC_UART_INT_RTIS);
+ HAL_WRITE_UINT32(base+AAEC_UART_INTM, intm);
+ 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;
+ channel_data_t* chan = (channel_data_t*)__ch_data;
+ cyg_uint8* base = ((channel_data_t*)__ch_data)->base;
+ char c;
+ cyg_uint32 lsr, _c;
+ CYGARC_HAL_SAVE_GP();
+
+ cyg_drv_interrupt_acknowledge(chan->isr_vector);
+
+ *__ctrlc = 0;
+ HAL_READ_UINT32(base+AAEC_UART_STATUS, lsr);
+ if ( (lsr & AAEC_UART_STATUS_RxFE) != 0 ) {
+ HAL_READ_UINT32(base+AAEC_UART_DATA, _c);
+ c = (char)_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);
+
+ // Init channels
+ cyg_hal_plf_serial_init_channel(&aaed2000_ser_channels[0]);
+
+ // 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, &aaed2000_ser_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);
+
+ // 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();
+}
+
+/*---------------------------------------------------------------------------*/
+/* End of hal_diag.c */
diff --git a/ecos/packages/hal/arm/arm9/aaed2000/current/src/kbd_drvr.c b/ecos/packages/hal/arm/arm9/aaed2000/current/src/kbd_drvr.c
new file mode 100644
index 0000000..ea06524
--- /dev/null
+++ b/ecos/packages/hal/arm/arm9/aaed2000/current/src/kbd_drvr.c
@@ -0,0 +1,488 @@
+//==========================================================================
+//
+// kbd_drvr.c
+//
+// Agilent AAED2000 - keyboard driver
+//
+//==========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//==========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): gthomas
+// Contributors: gthomas
+// Date: 2001-11-03
+// Description: Keyboard driver
+//####DESCRIPTIONEND####
+
+#include <pkgconf/hal.h>
+
+#include <cyg/infra/diag.h>
+#include <cyg/hal/hal_io.h> // IO macros
+#include <cyg/hal/hal_if.h> // Virtual vector support
+#include <cyg/hal/hal_arch.h> // Register state info
+#include <cyg/hal/hal_intr.h> // HAL interrupt macros
+
+#include <cyg/hal/aaed2000.h> // Board definitions
+#include <cyg/hal/hal_cache.h>
+
+//-----------------------------------------------------------------------------
+// Keyboard definitions
+
+// Standard [PC keyboard] scan codes
+
+#define LSHIFT 0x2a
+#define RSHIFT 0x36
+#define CTRL 0x1d
+#define ALT 0x38
+#define CAPS 0x3a
+#define NUMS 0x45
+
+#define BREAK 0x80
+
+// Bits for KBFlags
+
+#define KBNormal 0x0000
+#define KBShift 0x0001
+#define KBCtrl 0x0002
+#define KBAlt 0x0004
+#define KBIndex 0x0007 // mask for the above
+
+#define KBExtend 0x0010
+#define KBAck 0x0020
+#define KBResend 0x0040
+#define KBShiftL (0x0080 | KBShift)
+#define KBShiftR (0x0100 | KBShift)
+#define KBCtrlL (0x0200 | KBCtrl)
+#define KBCtrlR (0x0400 | KBCtrl)
+#define KBAltL (0x0800 | KBAlt)
+#define KBAltR (0x1000 | KBAlt)
+#define KBCapsLock 0x2000
+#define KBNumLock 0x4000
+
+#define KBArrowUp 0x48
+#define KBArrowRight 0x4D
+#define KBArrowLeft 0x4B
+#define KBArrowDown 0x50
+
+//-----------------------------------------------------------------------------
+// Keyboard Variables
+
+static int KBFlags = 0;
+
+static CYG_BYTE KBPending = 0xFF;
+
+static CYG_BYTE KBScanTable[128][4] = {
+// Normal Shift Control Alt
+// 0x00
+ { 0xFF, 0xFF, 0xFF, 0xFF, },
+ { 0x1b, 0x1b, 0x1b, 0xFF, },
+ { '1', '!', 0xFF, 0xFF, },
+ { '2', '@', 0xFF, 0xFF, },
+ { '3', '#', 0xFF, 0xFF, },
+ { '4', '$', 0xFF, 0xFF, },
+ { '5', '%', 0xFF, 0xFF, },
+ { '6', '^', 0xFF, 0xFF, },
+ { '7', '&', 0xFF, 0xFF, },
+ { '8', '*', 0xFF, 0xFF, },
+ { '9', '(', 0xFF, 0xFF, },
+ { '0', ')', 0xFF, 0xFF, },
+ { '-', '_', 0xFF, 0xFF, },
+ { '=', '+', 0xFF, 0xFF, },
+ { '\b', '\b', 0xFF, 0xFF, },
+ { '\t', '\t', 0xFF, 0xFF, },
+// 0x10
+ { 'q', 'Q', 0x11, 0xFF, },
+ { 'w', 'W', 0x17, 0xFF, },
+ { 'e', 'E', 0x05, 0xFF, },
+ { 'r', 'R', 0x12, 0xFF, },
+ { 't', 'T', 0x14, 0xFF, },
+ { 'y', 'Y', 0x19, 0xFF, },
+ { 'u', 'U', 0x15, 0xFF, },
+ { 'i', 'I', 0x09, 0xFF, },
+ { 'o', 'O', 0x0F, 0xFF, },
+ { 'p', 'P', 0x10, 0xFF, },
+ { '[', '{', 0x1b, 0xFF, },
+ { ']', '}', 0x1d, 0xFF, },
+ { '\r', '\r', '\n', 0xFF, },
+ { 0xFF, 0xFF, 0xFF, 0xFF, },
+ { 'a', 'A', 0x01, 0xFF, },
+ { 's', 'S', 0x13, 0xFF, },
+// 0x20
+ { 'd', 'D', 0x04, 0xFF, },
+ { 'f', 'F', 0x06, 0xFF, },
+ { 'g', 'G', 0x07, 0xFF, },
+ { 'h', 'H', 0x08, 0xFF, },
+ { 'j', 'J', 0x0a, 0xFF, },
+ { 'k', 'K', 0x0b, 0xFF, },
+ { 'l', 'L', 0x0c, 0xFF, },
+ { ';', ':', 0xFF, 0xFF, },
+ { 0x27, '"', 0xFF, 0xFF, },
+ { '`', '~', 0xFF, 0xFF, },
+ { '`', '~', 0xFF, 0xFF, },
+ { '\\', '|', 0x1C, 0xFF, },
+ { 'z', 'Z', 0x1A, 0xFF, },
+ { 'x', 'X', 0x18, 0xFF, },
+ { 'c', 'C', 0x03, 0xFF, },
+ { 'v', 'V', 0x16, 0xFF, },
+// 0x30
+ { 'b', 'B', 0x02, 0xFF, },
+ { 'n', 'N', 0x0E, 0xFF, },
+ { 'm', 'M', 0x0D, 0xFF, },
+ { ',', '<', 0xFF, 0xFF, },
+ { '.', '>', 0xFF, 0xFF, },
+ { '/', '?', 0xFF, 0xFF, },
+ { 0xFF, 0xFF, 0xFF, 0xFF, },
+ { 0xFF, 0xFF, 0xFF, 0xFF, },
+ { 0xFF, 0xFF, 0xFF, 0xFF, },
+ { ' ', ' ', ' ', ' ', },
+ { 0xFF, 0xFF, 0xFF, 0xFF, },
+ { 0xF1, 0xE1, 0xFF, 0xFF, },
+ { 0xF2, 0xE2, 0xFF, 0xFF, },
+ { 0xF3, 0xE3, 0xFF, 0xFF, },
+ { 0xF4, 0xE4, 0xFF, 0xFF, },
+ { 0xF5, 0xE5, 0xFF, 0xFF, },
+// 0x40
+ { 0xFF, 0xFF, 0xFF, 0xFF, },
+ { 0xFF, 0xFF, 0xFF, 0xFF, },
+ { 0xFF, 0xFF, 0xFF, 0xFF, },
+ { 0xFF, 0xFF, 0xFF, 0xFF, },
+ { 0xFF, 0xFF, 0xFF, 0xFF, },
+ { 0xFF, 0xFF, 0xFF, 0xFF, },
+ { 0xFF, 0xFF, 0xFF, 0xFF, },
+ { 0xFF, 0xFF, 0xFF, 0xFF, },
+
+ { 0x15, 0x15, 0x15, 0x15, },
+ { 0x10, 0x10, 0x10, 0x10, },
+ { 0xFF, 0xFF, 0xFF, 0xFF, },
+ { 0xFF, 0xFF, 0xFF, 0xFF, },
+ { 0xFF, 0xFF, 0xFF, 0xFF, },
+ { 0xFF, 0xFF, 0xFF, 0xFF, },
+ { 0xFF, 0xFF, 0xFF, 0xFF, },
+ { 0xFF, 0xFF, 0xFF, 0xFF, },
+// 0x50
+ { 0x04, 0x04, 0x04, 0x04, },
+ { 0x0e, 0x0e, 0x0e, 0x0e, },
+ { 0xFF, 0xFF, 0xFF, 0xFF, },
+ { 0xFF, 0xFF, 0xFF, 0xFF, },
+ { 0xFF, 0xFF, 0xFF, 0xFF, },
+ { 0xFF, 0xFF, 0xFF, 0xFF, },
+ { 0xFF, 0xFF, 0xFF, 0xFF, },
+ { 0xFF, 0xFF, 0xFF, 0xFF, },
+ { 0xFF, 0xFF, 0xFF, 0xFF, },
+ { 0xFF, 0xFF, 0xFF, 0xFF, },
+ { 0xFF, 0xFF, 0xFF, 0xFF, },
+ { 0xFF, 0xFF, 0xFF, 0xFF, },
+ { 0xFF, 0xFF, 0xFF, 0xFF, },
+ { 0xFF, 0xFF, 0xFF, 0xFF, },
+ { 0xFF, 0xFF, 0xFF, 0xFF, },
+ { 0xFF, 0xFF, 0xFF, 0xFF, },
+// 0x60
+ { 0xFF, 0xFF, 0xFF, 0xFF, },
+ { 0xFF, 0xFF, 0xFF, 0xFF, },
+ { 0xFF, 0xFF, 0xFF, 0xFF, },
+ { 0xFF, 0xFF, 0xFF, 0xFF, },
+ { 0xFF, 0xFF, 0xFF, 0xFF, },
+ { 0xFF, 0xFF, 0xFF, 0xFF, },
+ { 0xFF, 0xFF, 0xFF, 0xFF, },
+ { 0xFF, 0xFF, 0xFF, 0xFF, },
+ { 0xFF, 0xFF, 0xFF, 0xFF, },
+ { 0xFF, 0xFF, 0xFF, 0xFF, },
+ { 0xFF, 0xFF, 0xFF, 0xFF, },
+ { 0xFF, 0xFF, 0xFF, 0xFF, },
+ { 0xFF, 0xFF, 0xFF, 0xFF, },
+ { 0xFF, 0xFF, 0xFF, 0xFF, },
+ { 0xFF, 0xFF, 0xFF, 0xFF, },
+ { 0xFF, 0xFF, 0xFF, 0xFF, },
+// 0x70
+ { 0xFF, 0xFF, 0xFF, 0xFF, },
+ { 0xFF, 0xFF, 0xFF, 0xFF, },
+ { 0xFF, 0xFF, 0xFF, 0xFF, },
+ { 0xFF, 0xFF, 0xFF, 0xFF, },
+ { 0xFF, 0xFF, 0xFF, 0xFF, },
+ { 0xFF, 0xFF, 0xFF, 0xFF, },
+ { 0xFF, 0xFF, 0xFF, 0xFF, },
+ { 0xFF, 0xFF, 0xFF, 0xFF, },
+ { 0xFF, 0xFF, 0xFF, 0xFF, },
+ { 0xFF, 0xFF, 0xFF, 0xFF, },
+ { 0xFF, 0xFF, 0xFF, 0xFF, },
+ { 0xFF, 0xFF, 0xFF, 0xFF, },
+ { 0xFF, 0xFF, 0xFF, 0xFF, },
+ { 0xFF, 0xFF, 0xFF, 0xFF, },
+ { 0xFF, 0xFF, 0xFF, 0xFF, },
+ { 0xFF, 0xFF, 0xFF, 0xFF, },
+};
+
+static int KBIndexTab[8] = { 0, 1, 2, 2, 3, 3, 3, 3 };
+
+//-----------------------------------------------------------------------------
+
+#define AAED2000_KBD_COLS 8
+#define AAED2000_KBD_ROWS 12
+
+static unsigned int KB_rowState[AAED2000_KBD_COLS]; // Last known state Row x Col
+
+// Map AAED2000 row/col to [PC standard] scancodes
+static const int scancode[AAED2000_KBD_ROWS][AAED2000_KBD_COLS] =
+{
+ {0x0A/*9*/, 0x25/*k*/, 0x17/*i*/, 0x09/*8*/, 0x24/*j*/, 0x15/*y*/, 0x08/*7*/, 0x00/*?*/},
+ {0x0B/*0*/, 0x32/*m*/, 0x19/*p*/, 0x26/*l*/, 0x23/*h*/, 0x16/*u*/, 0x07/*8*/, 0x00/*?*/},
+ {0x0C/*-*/, 0x18/*o*/, 0x1A/*{*/, 0x27/*:*/, 0x30/*b*/, 0x31/*n*/, 0x22/*g*/, 0x33/*<*/},
+ {0x0D/*+*/, 0x34/*>*/, 0x1B/*}*/, 0x28/*'*/, 0x48/*?*/, 0x14/*t*/, 0x00/*?*/, 0x00/*?*/},
+ {0x0E/*?*/, 0x35/*?*/, 0x2B/*|*/, 0x1C/*?*/, 0x4B/*?*/, 0x00/*?*/, 0x06/*5*/, 0x50/*?*/},
+ {0x00/*?*/, 0x00/*?*/, 0x00/*?*/, 0x00/*?*/, 0x00/*?*/, 0x00/*?*/, 0x00/*?*/, 0x00/*?*/},
+ {0x39/* */, 0x21/*f*/, 0x00/*?*/, 0x00/*?*/, 0x2E/*c*/, 0x13/*r*/, 0x05/*4*/, 0x2F/*v*/},
+ {0x4D/*?*/, 0x00/*?*/, 0x00/*?*/, 0x00/*?*/, 0x20/*d*/, 0x12/*e*/, 0x04/*3*/, 0x38/*?*/},
+ {0x00/*?*/, 0x00/*?*/, 0x00/*?*/, 0x00/*?*/, 0x1F/*s*/, 0x11/*w*/, 0x03/*2*/, 0x2D/*x*/},
+ {0x53/*?*/, 0x00/*?*/, 0x00/*?*/, 0x00/*?*/, 0x1E/*a*/, 0x10/*q*/, 0x02/*1*/, 0x2C/*z*/},
+ {0x00/*?*/, 0x2A/*?*/, 0x36/*?*/, 0x00/*?*/, 0x00/*?*/, 0x00/*?*/, 0x00/*?*/, 0x00/*?*/},
+ {0x00/*?*/, 0x00/*?*/, 0x00/*?*/, 0x00/*?*/, 0x3A/*?*/, 0x0F/*?*/, 0x29/*~*/, 0x1D/*?*/}
+};
+
+static bool
+KeyboardScan(CYG_BYTE *code)
+{
+ int row, col, i, down, up;
+ unsigned int state, prev_state;
+ int stable;
+
+ for (col = 0; col < AAED2000_KBD_COLS; col++) {
+ HAL_WRITE_UINT8(AAEC_KSCAN, col+8); // Assert column #n
+
+ for (i = 0, stable = 0, prev_state = 0;
+ (i < 1000) && (stable < 120); i++) {
+ HAL_READ_UINT32(AAED_EXT_GPIO, state);
+ if (state != prev_state) {
+ prev_state = state;
+ stable = 0;
+ } else {
+ stable++;
+ }
+ }
+ state &= (1<<AAED2000_KBD_ROWS)-1; // Mask off unused bits
+ if (state != KB_rowState[col]) {
+ // State changed
+ down = state & ~KB_rowState[col]; // Bits that went 0->1
+ up = ~state & KB_rowState[col]; // Bits that went 1->0
+ for (row = 0; row < AAED2000_KBD_ROWS; row++) {
+ if ((up|down) & (1<<row)) {
+ *code = scancode[row][col] | (up ? BREAK : 0);
+ // Only remember the bit we reported
+ KB_rowState[col] &= ~(1<<row);
+ state &= (1<<row);
+ KB_rowState[col] |= state;
+ return true;
+ }
+ }
+ }
+ }
+ HAL_WRITE_UINT8(AAEC_KSCAN, 0x07); // Turn off drivers
+ return false;
+}
+
+//-----------------------------------------------------------------------------
+
+static CYG_BYTE
+KeyboardAscii(CYG_BYTE scancode)
+{
+ CYG_BYTE ascii = 0xFF;
+
+ // Start by handling all shift/ctl keys:
+
+ switch( scancode ) {
+ case 0xe0:
+ KBFlags |= KBExtend;
+ return 0xFF;
+
+ case 0xfa:
+ KBFlags |= KBAck;
+ return 0xFF;
+
+ case 0xfe:
+ KBFlags |= KBResend;
+ return 0xFF;
+
+ case LSHIFT:
+ KBFlags |= KBShiftL;
+ return 0xFF;
+
+ case LSHIFT | BREAK:
+ KBFlags &= ~KBShiftL;
+ return 0xFF;
+
+ case RSHIFT:
+ KBFlags |= KBShiftR;
+ return 0xFF;
+
+ case RSHIFT | BREAK:
+ KBFlags &= ~KBShiftR;
+ return 0xFF;
+
+ case CTRL:
+ if( KBFlags & KBExtend )
+ {
+ KBFlags |= KBCtrlR;
+ KBFlags &= ~KBExtend;
+ }
+ else KBFlags |= KBCtrlL;
+ return 0xFF;
+
+ case CTRL | BREAK:
+ if( KBFlags & KBExtend )
+ {
+ KBFlags &= ~KBCtrlR;
+ KBFlags &= ~KBExtend;
+ }
+ else KBFlags &= ~KBCtrlL;
+ return 0xFF;
+
+
+ case ALT:
+ if( KBFlags & KBExtend )
+ {
+ KBFlags |= KBAltR;
+ KBFlags &= ~KBExtend;
+ }
+ else KBFlags |= KBAltL;
+ return 0xFF;
+
+ case ALT | BREAK:
+ if( KBFlags & KBExtend )
+ {
+ KBFlags &= ~KBAltR;
+ KBFlags &= ~KBExtend;
+ }
+ else KBFlags &= ~KBAltL;
+ return 0xFF;
+
+ case CAPS:
+ KBFlags ^= KBCapsLock;
+ case CAPS | BREAK:
+ return 0xFF;
+
+ case NUMS:
+ KBFlags ^= KBNumLock;
+ case NUMS | BREAK:
+ return 0xFF;
+
+ case KBArrowUp:
+ case KBArrowDown:
+#if 0 // Not really needed on this display
+ screen_pan = 0;
+ lcd_refresh();
+#endif
+ break;
+ case KBArrowLeft:
+#if 0 // Not really needed on this display
+ screen_pan -= SCREEN_PAN;
+ if (screen_pan < 0) screen_pan = 0;
+ lcd_refresh();
+#endif
+ break;
+ case KBArrowRight:
+#if 0 // Not really needed on this display
+ screen_pan += SCREEN_PAN;
+ if (screen_pan > (SCREEN_WIDTH-SCREEN_PAN)) screen_pan = SCREEN_WIDTH-SCREEN_PAN;
+ lcd_refresh();
+#endif
+ break;
+
+ }
+
+ // Clear Extend flag if set
+ KBFlags &= ~KBExtend;
+
+ // Ignore all other BREAK codes
+ if( scancode & 0x80 ) return 0xFF;
+
+ // Here the scancode is for something we can turn
+ // into an ASCII value
+
+ ascii = KBScanTable[scancode & 0x7F][KBIndexTab[KBFlags & KBIndex]];
+
+ return ascii;
+} /* KeyboardAscii */
+
+//-----------------------------------------------------------------------------
+
+int
+aaed2000_KeyboardTest(void)
+{
+ // If there is a pending character, return True
+ if( KBPending != 0xFF ) return true;
+
+ // If there is something waiting at the port, get it
+ for(;;) {
+ CYG_BYTE code, c;
+
+ if (!KeyboardScan(&code)) {
+ // No new activity
+ break;
+ }
+
+ // Translate to ASCII
+ c = KeyboardAscii(code);
+
+ // if it is a real ASCII char, save it and
+ // return True.
+ if( c != 0xFF ) {
+ KBPending = c;
+ return true;
+ }
+ }
+
+ // Otherwise return False
+ return false;
+
+} /* KeyboardTest */
+
+int
+aaed2000_KeyboardGetc(void)
+{
+ unsigned char ch = KBPending;
+ KBPending = 0xFF;
+ return ch;
+}
+
+cyg_bool
+aaed2000_KeyboardInit(void)
+{
+ int i;
+
+ for (i = 0; i < AAED2000_KBD_COLS; i++) {
+ KB_rowState[i] = 0;
+ }
+ KBFlags = 0;
+
+ return true;
+} /* KeyboardInit */
diff --git a/ecos/packages/hal/arm/arm9/aaed2000/current/src/lcd_support.c b/ecos/packages/hal/arm/arm9/aaed2000/current/src/lcd_support.c
new file mode 100644
index 0000000..356acfd
--- /dev/null
+++ b/ecos/packages/hal/arm/arm9/aaed2000/current/src/lcd_support.c
@@ -0,0 +1,998 @@
+//==========================================================================
+//
+// Lcd_support.c
+//
+// Agilent AAED2000 - LCD support routines
+//
+//==========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//==========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): gthomas
+// Contributors: gthomas
+// Date: 2001-11-03
+// Description: Simple LCD support
+//####DESCRIPTIONEND####
+
+#include <pkgconf/hal.h>
+
+#include <cyg/infra/diag.h>
+#include <cyg/hal/hal_io.h> // IO macros
+#include <cyg/hal/hal_if.h> // Virtual vector support
+#include <cyg/hal/hal_arch.h> // Register state info
+#include <cyg/hal/hal_intr.h> // HAL interrupt macros
+
+#include <cyg/hal/aaed2000.h> // Board definitions
+#include <cyg/hal/lcd_support.h>
+#include <cyg/hal/hal_cache.h>
+
+#include <string.h>
+
+#ifdef CYGPKG_ISOINFRA
+# include <pkgconf/isoinfra.h>
+# ifdef CYGINT_ISO_STDIO_FORMATTED_IO
+# include <stdio.h> // sscanf
+# endif
+#endif
+
+#include CYGHWR_MEMORY_LAYOUT_H
+#define LCD_FRAMEBUFFER CYGMEM_REGION_lcd
+static cyg_uint32 lcd_framebuffer;
+
+#ifndef FALSE
+#define FALSE 0
+#define TRUE 1
+#endif
+
+// Physical dimensions of LCD display
+#define DISPLAY_WIDTH 640
+#define DISPLAY_HEIGHT 480
+
+// Logical layout
+#ifdef CYGSEM_AAED2000_LCD_PORTRAIT_MODE
+#define LCD_WIDTH DISPLAY_HEIGHT
+#define LCD_HEIGHT DISPLAY_WIDTH
+#else
+#define LCD_WIDTH DISPLAY_WIDTH
+#define LCD_HEIGHT DISPLAY_HEIGHT
+#endif
+#define LCD_DEPTH 16
+
+#define RGB_RED(x) (((x)&0x1F)<<0)
+#define RGB_GREEN(x) (((x)&0x1F)<<5)
+#define RGB_BLUE(x) (((x)&0x1F)<<10)
+
+// Physical screen info
+//static int lcd_depth = LCD_DEPTH; // Should be 1, 2, or 4
+static int lcd_bpp;
+#ifdef CYGSEM_AAED2000_LCD_PORTRAIT_MODE
+static int lcd_width = LCD_WIDTH;
+#endif
+static int lcd_height = LCD_HEIGHT;
+
+// Black on light blue
+static int bg = RGB_RED(0x17) | RGB_GREEN(0x17) | RGB_BLUE(0x1F);
+#ifdef CYGSEM_AAED2000_LCD_COMM
+static int fg = RGB_RED(0) | RGB_GREEN(0) | RGB_BLUE(0);
+#endif
+
+// Compute the location for a pixel within the framebuffer
+static cyg_uint32 *
+lcd_fb(int row, int col)
+{
+ return (cyg_uint32 *)(lcd_framebuffer+(((row*DISPLAY_WIDTH)+col)*2));
+}
+
+void
+lcd_on(bool enable)
+{
+ cyg_uint32 ctl;
+
+ if (!enable) return; // FIXME - need a way to [safely] blank screen
+
+ // Turn on PWM [pulse wave modulated] voltage pump
+ HAL_WRITE_UINT32(AAEC_PUMP_CONTROL, 0x800); // Magic FIXME
+ HAL_WRITE_UINT32(AAEC_PUMP_FREQUENCY, 0x3733); // Magic FIXME
+ // Turn on Power
+ HAL_READ_UINT32(AAED_EXT_GPIO, ctl);
+ ctl |= AAED_EXT_GPIO_LCD_PWR_EN;
+ HAL_WRITE_UINT32(AAED_EXT_GPIO, ctl);
+ // Power must be on for 0..20ms before enabling signals
+ CYGACC_CALL_IF_DELAY_US(500); // 500us should be long enough
+ HAL_READ_UINT32(AAEC_LCD_CONTROL, ctl);
+ ctl |= AAEC_LCD_CONTROL_ENAB | AAEC_LCD_CONTROL_PWR_ENAB;
+ HAL_WRITE_UINT32(AAEC_LCD_CONTROL, ctl);
+}
+
+// Initialize LCD hardware
+
+void
+lcd_init(int depth)
+{
+ cyg_uint32 ctl;
+
+ HAL_VIRT_TO_PHYS_ADDRESS(LCD_FRAMEBUFFER, lcd_framebuffer);
+ lcd_clear();
+ HAL_READ_UINT32(AAEC_LCD_CONTROL, ctl);
+ if (ctl & (AAEC_LCD_CONTROL_ENAB | AAEC_LCD_CONTROL_PWR_ENAB)) {
+ // LCD currently on - turn it off carefully
+ ctl &= ~(AAEC_LCD_CONTROL_ENAB | AAEC_LCD_CONTROL_PWR_ENAB);
+ HAL_WRITE_UINT32(AAEC_LCD_CONTROL, ctl);
+ // Now wait a little
+ CYGACC_CALL_IF_DELAY_US(500);
+ // Turn off Power
+ HAL_READ_UINT32(AAED_EXT_GPIO, ctl);
+ ctl &= ~AAED_EXT_GPIO_LCD_PWR_EN;
+ HAL_WRITE_UINT32(AAED_EXT_GPIO, ctl);
+ // Now wait for 1.0 second
+ CYGACC_CALL_IF_DELAY_US(1000*1000);
+ }
+ HAL_WRITE_UINT32(AAEC_LCD_CONTROL, 0x00010028); // Magic FIXME
+ HAL_WRITE_UINT32(AAEC_LCD_TIMING0, 0x2B135F9C); // Magic FIXME
+ HAL_WRITE_UINT32(AAEC_LCD_TIMING1, 0x211401DF); // Magic FIXME
+ HAL_WRITE_UINT32(AAEC_LCD_TIMING2, 0x067F1820); // Magic FIXME
+ HAL_WRITE_UINT32(AAEC_LCD_TIMING3, 0x00000000); // Magic FIXME
+ HAL_WRITE_UINT32(AAEC_LCD_UPBASE, lcd_framebuffer);
+ HAL_WRITE_UINT32(AAEC_LCD_LPBASE, lcd_framebuffer);
+#if 0 // For some reason, this crashes miserably
+ lcd_framebuffer = LCD_FRAMEBUFFER; // Logical operations use cached space
+#endif
+ lcd_on(true);
+ lcd_bpp = 16;
+}
+
+// Get information about the frame buffer
+int
+lcd_getinfo(struct lcd_info *info)
+{
+ if (lcd_bpp == 0) {
+ return 0; // LCD not initialized
+ }
+ info->width = DISPLAY_WIDTH;
+ info->height = DISPLAY_HEIGHT;
+ info->bpp = lcd_bpp;
+ info->fb = (void*)LCD_FRAMEBUFFER;
+ info->rlen = DISPLAY_WIDTH * 2;
+ info->type = FB_TRUE_RGB555;
+ return 1; // Information valid
+}
+
+// Clear screen
+void
+lcd_clear(void)
+{
+#ifndef CYGSEM_AAED2000_LCD_PORTRAIT_MODE
+ cyg_uint32 *fb_row0, *fb_rown;
+ cyg_uint32 _bg = (bg<<16)|bg;
+
+ fb_row0 = lcd_fb(0, 0);
+ fb_rown = lcd_fb(lcd_height, 0);
+ while (fb_row0 != fb_rown) {
+ *fb_row0++ = _bg;
+ }
+#else
+ int row, col;
+ for (row = 0; row < lcd_height; row++) {
+ for (col = 0; col < lcd_width; col++) {
+ set_pixel(row, col, bg);
+ }
+ }
+#endif
+}
+
+#ifdef CYGSEM_AAED2000_LCD_COMM
+
+//
+// Additional support for LCD/Keyboard as 'console' device
+//
+
+#ifdef CYGOPT_AAED2000_LCD_COMM_LOGO
+#include "banner.xpm"
+#endif
+#include "font.h"
+
+// Virtual screen info
+static int curX = 0; // Last used position
+static int curY = 0;
+//static int width = LCD_WIDTH / (FONT_WIDTH*NIBBLES_PER_PIXEL);
+//static int height = LCD_HEIGHT / (FONT_HEIGHT*SCREEN_SCALE);
+
+#define SCREEN_PAN 20
+#define SCREEN_WIDTH 80
+#define SCREEN_HEIGHT (LCD_HEIGHT/FONT_HEIGHT)
+#define VISIBLE_SCREEN_WIDTH (LCD_WIDTH/FONT_WIDTH)
+#define VISIBLE_SCREEN_HEIGHT (LCD_HEIGHT/FONT_HEIGHT)
+static char screen[SCREEN_HEIGHT][SCREEN_WIDTH];
+static int screen_height = SCREEN_HEIGHT;
+static int screen_width = SCREEN_WIDTH;
+static int screen_pan = 0;
+
+// Usable area on screen [logical pixel rows]
+static int screen_start = 0;
+static int screen_end = LCD_HEIGHT/FONT_HEIGHT;
+
+static bool cursor_enable = true;
+
+// Functions
+static void lcd_drawc(cyg_int8 c, int x, int y);
+
+// Note: val is a 16 bit, RGB555 value which must be mapped
+// onto a 12 bit value.
+#define RED(v) ((v>>12) & 0x0F)
+#define GREEN(v) ((v>>7) & 0x0F)
+#define BLUE(v) ((v>>1) & 0x0F)
+#ifdef CYGSEM_AAED2000_LCD_PORTRAIT_MODE
+#error PORTRAIT MODE NOT IMPLEMENTED
+// Translate coordinates, rotating clockwise 90 degrees
+static void
+set_pixel(int row, int col, unsigned short val)
+{
+// fp->pixels[col][(DISPLAY_WIDTH-1)-row] = val;
+ int _row = (240-1) - col;
+ int _col = row;
+ unsigned char *pxptr = (unsigned char *)(0xC0000000 + (_row * 480) + ((_col * 3) / 2));
+
+ diag_printf("%s\n", __FUNCTION__); return;
+ if ((row >= LCD_HEIGHT) || (col >= LCD_WIDTH)) return;
+ if (0)
+ {
+ int old = start_console();
+ diag_printf("row=%d/%d, col=%d/%d, pxptr = %p\n", row, _row, col, _col, pxptr);
+ end_console(old);
+ }
+ if ((row % 2) == 0) {
+ // Even row
+ *pxptr++ = RED(val) | (GREEN(val) << 4);
+ *pxptr = (*pxptr & 0xF0) | BLUE(val);
+ } else {
+ // Odd row
+ *pxptr = (*pxptr & 0x0F) | (RED(val) << 4);
+ *++pxptr = GREEN(val) | (BLUE(val) << 4);
+ }
+}
+#else
+
+static void
+set_pixel(int row, int col, unsigned short val)
+{
+ unsigned short *pix = (unsigned short *)lcd_fb(row, col);
+ *pix = val;
+}
+#endif
+
+static int
+_hexdigit(char c)
+{
+ if ((c >= '0') && (c <= '9')) {
+ return c - '0';
+ } else
+ if ((c >= 'A') && (c <= 'F')) {
+ return (c - 'A') + 0x0A;
+ } else
+ if ((c >= 'a') && (c <= 'f')) {
+ return (c - 'a') + 0x0a;
+ }
+
+ return 0;
+}
+
+static int
+_hex(char *cp)
+{
+ return (_hexdigit(*cp)<<4) | _hexdigit(*(cp+1));
+}
+
+static unsigned short
+parse_color(char *cp)
+{
+ int red, green, blue;
+
+ while (*cp && (*cp != 'c')) cp++;
+ if (cp) {
+ cp += 2;
+ if (*cp == '#') {
+ red = _hex(cp+1);
+ green = _hex(cp+3);
+ blue = _hex(cp+5);
+#ifdef USE_RGB565
+ return RGB_RED(red>>3) | RGB_GREEN(green>>2) | RGB_BLUE(blue>>3);
+#else
+ return RGB_RED(red>>3) | RGB_GREEN(green>>3) | RGB_BLUE(blue>>3);
+#endif
+ } else {
+ // Should be "None"
+ return 0xFFFF;
+ }
+ } else {
+ return 0xFFFF;
+ }
+}
+
+#ifndef CYGINT_ISO_STDIO_FORMATTED_IO
+static int
+get_int(char **_cp)
+{
+ char *cp = *_cp;
+ char c;
+ int val = 0;
+
+ while ((c = *cp++) && (c != ' ')) {
+ if ((c >= '0') && (c <= '9')) {
+ val = val * 10 + (c - '0');
+ } else {
+ return -1;
+ }
+ }
+ *_cp = cp;
+ return val;
+}
+#endif
+
+#ifdef CYGOPT_AAED2000_LCD_COMM_LOGO
+int
+show_xpm(char *xpm[], int screen_pos)
+{
+ int i, row, col, offset;
+ char *cp;
+ int nrows, ncols, nclrs;
+ unsigned short colors[256]; // Mapped by character index
+
+ cp = xpm[0];
+#ifdef CYGINT_ISO_STDIO_FORMATTED_IO
+ if (sscanf(cp, "%d %d %d", &ncols, &nrows, &nclrs) != 3) {
+#else
+ if (((ncols = get_int(&cp)) < 0) ||
+ ((nrows = get_int(&cp)) < 0) ||
+ ((nclrs = get_int(&cp)) < 0)) {
+
+#endif
+ diag_printf("Can't parse XPM data, sorry\n");
+ return 0;
+ }
+ // printf("%d rows, %d cols, %d colors\n", nrows, ncols, nclrs);
+
+ for (i = 0; i < 256; i++) {
+ colors[i] = 0x0000;
+ }
+ for (i = 0; i < nclrs; i++) {
+ cp = xpm[i+1];
+ colors[(unsigned int)*cp] = parse_color(&cp[1]);
+ // printf("Color[%c] = %x\n", *cp, colors[(unsigned int)*cp]);
+ }
+
+#ifdef CYGOPT_AAED2000_LCD_COMM_LOGO_TOP
+ offset = screen_pos;
+#else
+ offset = screen_pos-nrows;
+#endif
+ for (row = 0; row < nrows; row++) {
+ cp = xpm[nclrs+1+row];
+ for (col = 0; col < ncols; col++) {
+ set_pixel(row+offset, col, colors[(unsigned int)*cp++]);
+ }
+ }
+#ifdef CYGOPT_AAED2000_LCD_COMM_LOGO_TOP
+ screen_start = (nrows + (FONT_HEIGHT-1))/FONT_HEIGHT;
+ screen_end = LCD_HEIGHT/FONT_HEIGHT;
+ return offset+nrows;
+#else
+ screen_start = 0;
+ screen_height = offset / FONT_HEIGHT;
+ screen_end = screen_height;
+ return offset;
+#endif
+}
+#endif
+
+void
+lcd_screen_clear(void)
+{
+ int row, col, pos;
+ for (row = 0; row < screen_height; row++) {
+ for (col = 0; col < screen_width; col++) {
+ screen[row][col] = ' ';
+ }
+ }
+#ifdef CYGOPT_AAED2000_LCD_COMM_LOGO
+ // Note: Row 0 seems to wrap incorrectly
+#ifdef CYGOPT_AAED2000_LCD_COMM_LOGO_TOP
+ pos = 0;
+#else
+ pos = (LCD_HEIGHT-1);
+#endif
+ show_xpm(banner_xpm, pos);
+#endif // CYGOPT_AAED2000_LCD_COMM_LOGO
+ curX = 0; curY = screen_start;
+ if (cursor_enable) {
+ lcd_drawc(CURSOR_ON, curX-screen_pan, curY);
+ }
+}
+
+// Position cursor
+void
+lcd_moveto(int X, int Y)
+{
+ if (cursor_enable) {
+ lcd_drawc(screen[curY][curX], curX-screen_pan, curY);
+ }
+ if (X < 0) X = 0;
+ if (X >= screen_width) X = screen_width-1;
+ curX = X;
+ if (Y < screen_start) Y = screen_start;
+ if (Y >= screen_height) Y = screen_height-1;
+ curY = Y;
+ if (cursor_enable) {
+ lcd_drawc(CURSOR_ON, curX-screen_pan, curY);
+ }
+}
+
+// Render a character at position (X,Y) with current background/foreground
+static void
+lcd_drawc(cyg_int8 c, int x, int y)
+{
+ cyg_uint8 bits;
+ int l, p;
+ int xoff, yoff;
+#ifndef CYGSEM_AAED2000_LCD_PORTRAIT_MODE
+ cyg_uint32 *fb;
+#endif
+
+
+ if ((x < 0) || (x >= VISIBLE_SCREEN_WIDTH) ||
+ (y < 0) || (y >= screen_height)) return;
+ for (l = 0; l < FONT_HEIGHT; l++) {
+ bits = font_table[c-FIRST_CHAR][l];
+ yoff = y*FONT_HEIGHT + l;
+ xoff = x*FONT_HEIGHT;
+#ifndef CYGSEM_AAED2000_LCD_PORTRAIT_MODE
+ // Caution - only works for little-endian & font sizes multiple of 2
+ fb = lcd_fb(yoff, xoff);
+ for (p = 0; p < FONT_WIDTH; p += 2) {
+ switch (bits & 0x03) {
+ case 0:
+ *fb++ = (bg << 16) | bg;
+ break;
+ case 1:
+ *fb++ = (bg << 16) | fg;
+ break;
+ case 2:
+ *fb++ = (fg << 16) | bg;
+ break;
+ case 3:
+ *fb++ = (fg << 16) | fg;
+ break;
+ }
+ bits >>= 2;
+ }
+#else
+ for (p = 0; p < FONT_WIDTH; p++) {
+ set_pixel(yoff, xoff + p, (bits & 0x01) ? fg : bg);
+ bits >>= 1;
+ }
+#endif
+ }
+}
+
+static void
+lcd_refresh(void)
+{
+ int row, col;
+
+ for (row = screen_start; row < screen_height; row++) {
+ for (col = 0; col < VISIBLE_SCREEN_WIDTH; col++) {
+ if ((col+screen_pan) < screen_width) {
+ lcd_drawc(screen[row][col+screen_pan], col, row);
+ } else {
+ lcd_drawc(' ', col, row);
+ }
+ }
+ }
+ if (cursor_enable) {
+ lcd_drawc(CURSOR_ON, curX-screen_pan, curY);
+ }
+}
+
+static void
+lcd_scroll(void)
+{
+ int col;
+ cyg_uint8 *c1;
+ cyg_uint32 *lc0, *lc1, *lcn;
+#ifndef CYGSEM_AAED2000_LCD_PORTRAIT_MODE
+ cyg_uint32 *fb_row0, *fb_row1, *fb_rown;
+#endif
+
+ // First scroll up the virtual screen
+#if ((SCREEN_WIDTH%4) != 0)
+#error Scroll code optimized for screen with multiple of 4 columns
+#endif
+ lc0 = (cyg_uint32 *)&screen[0][0];
+ lc1 = (cyg_uint32 *)&screen[1][0];
+ lcn = (cyg_uint32 *)&screen[screen_height][0];
+ while (lc1 != lcn) {
+ *lc0++ = *lc1++;
+ }
+ c1 = &screen[screen_height-1][0];
+ for (col = 0; col < screen_width; col++) {
+ *c1++ = 0x20;
+ }
+#ifdef CYGSEM_AAED2000_LCD_PORTRAIT_MODE
+ // Redrawing the screen in this mode is hard :-)
+ lcd_refresh();
+#else
+ fb_row0 = lcd_fb(screen_start*FONT_HEIGHT, 0);
+ fb_row1 = lcd_fb((screen_start+1)*FONT_HEIGHT, 0);
+ fb_rown = lcd_fb(screen_end*FONT_HEIGHT, 0);
+#if 1
+ while (fb_row1 != fb_rown) {
+ *fb_row0++ = *fb_row1++;
+ }
+#else
+ // Optimized ARM assembly "move" code
+ asm __volatile(
+ "mov r0,%0;"
+ "mov r1,%1;"
+ "mov r2,%2;"
+ "10: ldmia r1!,{r3-r10};"
+ "stmia r0!,{r3-r10};"
+ "cmp r1,r2;"
+ "bne 10b"
+ :
+ : "r"(fb_row0), "r"(fb_row1), "r"(fb_rown)
+ : "r0","r1","r2","r3","r4","r5","r6","r7","r8","r9","r10"
+ );
+#endif
+ // Erase bottom line
+ for (col = 0; col < screen_width; col++) {
+ lcd_drawc(' ', col, screen_end-1);
+ }
+#endif
+}
+
+// Draw one character at the current position
+void
+lcd_putc(cyg_int8 c)
+{
+ if (cursor_enable) {
+ lcd_drawc(screen[curY][curX], curX-screen_pan, curY);
+ }
+ switch (c) {
+ case '\r':
+ curX = 0;
+ break;
+ case '\n':
+ curY++;
+ break;
+ case '\b':
+ curX--;
+ if (curX < 0) {
+ curY--;
+ if (curY < 0) curY = 0;
+ curX = screen_width-1;
+ }
+ break;
+ default:
+ if (((cyg_uint8)c < FIRST_CHAR) || ((cyg_uint8)c > LAST_CHAR)) c = '.';
+ screen[curY][curX] = c;
+ lcd_drawc(c, curX-screen_pan, curY);
+ curX++;
+ if (curX == screen_width) {
+ curY++;
+ curX = 0;
+ }
+ }
+ if (curY >= screen_height) {
+ lcd_scroll();
+ curY = (screen_height-1);
+ }
+ if (cursor_enable) {
+ lcd_drawc(CURSOR_ON, curX-screen_pan, curY);
+ }
+}
+
+// Basic LCD 'printf()' support
+
+#include <stdarg.h>
+
+#define is_digit(c) ((c >= '0') && (c <= '9'))
+
+static int
+_cvt(unsigned long val, char *buf, long radix, char *digits)
+{
+ char temp[80];
+ char *cp = temp;
+ int length = 0;
+ if (val == 0) {
+ /* Special case */
+ *cp++ = '0';
+ } else {
+ while (val) {
+ *cp++ = digits[val % radix];
+ val /= radix;
+ }
+ }
+ while (cp != temp) {
+ *buf++ = *--cp;
+ length++;
+ }
+ *buf = '\0';
+ return (length);
+}
+
+static int
+lcd_vprintf(void (*putc)(cyg_int8), const char *fmt0, va_list ap)
+{
+ char c, sign, *cp;
+ int left_prec, right_prec, zero_fill, length, pad, pad_on_right;
+ char buf[32];
+ long val;
+ while ((c = *fmt0++)) {
+ cp = buf;
+ length = 0;
+ if (c == '%') {
+ c = *fmt0++;
+ left_prec = right_prec = pad_on_right = 0;
+ if (c == '-') {
+ c = *fmt0++;
+ pad_on_right++;
+ }
+ if (c == '0') {
+ zero_fill = TRUE;
+ c = *fmt0++;
+ } else {
+ zero_fill = FALSE;
+ }
+ while (is_digit(c)) {
+ left_prec = (left_prec * 10) + (c - '0');
+ c = *fmt0++;
+ }
+ if (c == '.') {
+ c = *fmt0++;
+ zero_fill++;
+ while (is_digit(c)) {
+ right_prec = (right_prec * 10) + (c - '0');
+ c = *fmt0++;
+ }
+ } else {
+ right_prec = left_prec;
+ }
+ sign = '\0';
+ switch (c) {
+ case 'd':
+ case 'x':
+ case 'X':
+ val = va_arg(ap, long);
+ switch (c) {
+ case 'd':
+ if (val < 0) {
+ sign = '-';
+ val = -val;
+ }
+ length = _cvt(val, buf, 10, "0123456789");
+ break;
+ case 'x':
+ length = _cvt(val, buf, 16, "0123456789abcdef");
+ break;
+ case 'X':
+ length = _cvt(val, buf, 16, "0123456789ABCDEF");
+ break;
+ }
+ break;
+ case 's':
+ cp = va_arg(ap, char *);
+ length = strlen(cp);
+ break;
+ case 'c':
+ c = va_arg(ap, long /*char*/);
+ (*putc)(c);
+ continue;
+ default:
+ (*putc)('?');
+ }
+ pad = left_prec - length;
+ if (sign != '\0') {
+ pad--;
+ }
+ if (zero_fill) {
+ c = '0';
+ if (sign != '\0') {
+ (*putc)(sign);
+ sign = '\0';
+ }
+ } else {
+ c = ' ';
+ }
+ if (!pad_on_right) {
+ while (pad-- > 0) {
+ (*putc)(c);
+ }
+ }
+ if (sign != '\0') {
+ (*putc)(sign);
+ }
+ while (length-- > 0) {
+ (*putc)(c = *cp++);
+ if (c == '\n') {
+ (*putc)('\r');
+ }
+ }
+ if (pad_on_right) {
+ while (pad-- > 0) {
+ (*putc)(' ');
+ }
+ }
+ } else {
+ (*putc)(c);
+ if (c == '\n') {
+ (*putc)('\r');
+ }
+ }
+ }
+
+ // FIXME
+ return 0;
+}
+
+int
+_lcd_printf(char const *fmt, ...)
+{
+ int ret;
+ va_list ap;
+
+ va_start(ap, fmt);
+ ret = lcd_vprintf(lcd_putc, fmt, ap);
+ va_end(ap);
+ return (ret);
+}
+
+void
+lcd_setbg(int red, int green, int blue)
+{
+ bg = RGB_RED(red) | RGB_GREEN(green) | RGB_BLUE(blue);
+}
+
+void
+lcd_setfg(int red, int green, int blue)
+{
+ fg = RGB_RED(red) | RGB_GREEN(green) | RGB_BLUE(blue);
+}
+
+//
+// Support LCD/keyboard (PS2) as a virtual I/O channel
+// Adapted from i386/pcmb_screen.c
+//
+
+static int _timeout = 500;
+
+static cyg_bool
+lcd_comm_getc_nonblock(void* __ch_data, cyg_uint8* ch)
+{
+ if( !aaed2000_KeyboardTest() )
+ return false;
+ *ch = aaed2000_KeyboardGetc();
+ return true;
+}
+
+static cyg_uint8
+lcd_comm_getc(void* __ch_data)
+{
+ cyg_uint8 ch;
+
+ while (!lcd_comm_getc_nonblock(__ch_data, &ch)) ;
+ return ch;
+}
+
+static void
+lcd_comm_putc(void* __ch_data, cyg_uint8 c)
+{
+ lcd_putc(c);
+}
+
+static void
+lcd_comm_write(void* __ch_data, const cyg_uint8* __buf, cyg_uint32 __len)
+{
+#if 0
+ CYGARC_HAL_SAVE_GP();
+
+ while(__len-- > 0)
+ lcd_comm_putc(__ch_data, *__buf++);
+
+ CYGARC_HAL_RESTORE_GP();
+#endif
+}
+
+static void
+lcd_comm_read(void* __ch_data, cyg_uint8* __buf, cyg_uint32 __len)
+{
+#if 0
+ CYGARC_HAL_SAVE_GP();
+
+ while(__len-- > 0)
+ *__buf++ = lcd_comm_getc(__ch_data);
+
+ CYGARC_HAL_RESTORE_GP();
+#endif
+}
+
+static cyg_bool
+lcd_comm_getc_timeout(void* __ch_data, cyg_uint8* ch)
+{
+ int delay_count;
+ cyg_bool res;
+
+ delay_count = _timeout * 2; // delay in .5 ms steps
+ for(;;) {
+ res = lcd_comm_getc_nonblock(__ch_data, ch);
+ if (res || 0 == delay_count--)
+ break;
+ CYGACC_CALL_IF_DELAY_US(500);
+ }
+ return res;
+}
+
+static int
+lcd_comm_control(void *__ch_data, __comm_control_cmd_t __func, ...)
+{
+ static int vector = 0;
+ int ret = -1;
+ static int irq_state = 0;
+
+ CYGARC_HAL_SAVE_GP();
+
+ switch (__func) {
+ case __COMMCTL_IRQ_ENABLE:
+ ret = irq_state;
+ irq_state = 1;
+ break;
+ case __COMMCTL_IRQ_DISABLE:
+ ret = irq_state;
+ irq_state = 0;
+ break;
+ case __COMMCTL_DBG_ISR_VECTOR:
+ ret = vector;
+ break;
+ case __COMMCTL_SET_TIMEOUT:
+ {
+ va_list ap;
+
+ va_start(ap, __func);
+
+ ret = _timeout;
+ _timeout = va_arg(ap, cyg_uint32);
+
+ va_end(ap);
+ break;
+ }
+ case __COMMCTL_FLUSH_OUTPUT:
+ ret = 0;
+ break;
+ default:
+ break;
+ }
+ CYGARC_HAL_RESTORE_GP();
+ return ret;
+}
+
+static int
+lcd_comm_isr(void *__ch_data, int* __ctrlc,
+ CYG_ADDRWORD __vector, CYG_ADDRWORD __data)
+{
+#if 0
+ char ch;
+
+ cyg_drv_interrupt_acknowledge(__vector);
+ *__ctrlc = 0;
+ if (lcd_comm_getc_nonblock(__ch_data, &ch)) {
+ if (ch == 0x03) {
+ *__ctrlc = 1;
+ }
+ }
+ return CYG_ISR_HANDLED;
+#else
+ return 0;
+#endif
+}
+
+void
+lcd_comm_init(void)
+{
+ static int init = 0;
+
+ if (!init) {
+ hal_virtual_comm_table_t* comm;
+ int cur = CYGACC_CALL_IF_SET_CONSOLE_COMM(CYGNUM_CALL_IF_SET_COMM_ID_QUERY_CURRENT);
+
+ init = 1;
+ lcd_on(false);
+ if (!aaed2000_KeyboardInit()) {
+ // No keyboard - no LCD display
+ return;
+ }
+ // Initialize screen
+ cursor_enable = true;
+ lcd_init(16);
+ lcd_screen_clear();
+
+ // Setup procs in the vector table
+ CYGACC_CALL_IF_SET_CONSOLE_COMM(1); // FIXME - should be controlled by CDL
+ comm = CYGACC_CALL_IF_CONSOLE_PROCS();
+ //CYGACC_COMM_IF_CH_DATA_SET(*comm, chan);
+ CYGACC_COMM_IF_WRITE_SET(*comm, lcd_comm_write);
+ CYGACC_COMM_IF_READ_SET(*comm, lcd_comm_read);
+ CYGACC_COMM_IF_PUTC_SET(*comm, lcd_comm_putc);
+ CYGACC_COMM_IF_GETC_SET(*comm, lcd_comm_getc);
+ CYGACC_COMM_IF_CONTROL_SET(*comm, lcd_comm_control);
+ CYGACC_COMM_IF_DBG_ISR_SET(*comm, lcd_comm_isr);
+ CYGACC_COMM_IF_GETC_TIMEOUT_SET(*comm, lcd_comm_getc_timeout);
+
+ // Restore original console
+ CYGACC_CALL_IF_SET_CONSOLE_COMM(cur);
+ }
+}
+
+#ifdef CYGPKG_REDBOOT
+#include <redboot.h>
+
+// Get here when RedBoot is idle. If it's been long enough, then
+// dim the LCD. The problem is - how to determine other activities
+// so at this doesn't get in the way. In the default case, this will
+// be called from RedBoot every 10ms (CYGNUM_REDBOOT_CLI_IDLE_TIMEOUT)
+
+#define MAX_IDLE_TIME (30*100)
+
+static void
+idle(bool is_idle)
+{
+ static int idle_time = 0;
+ static bool was_idled = false;
+
+ if (is_idle) {
+ if (!was_idled) {
+ if (++idle_time == MAX_IDLE_TIME) {
+ was_idled = true;
+ lcd_on(false);
+ }
+ }
+ } else {
+ idle_time = 0;
+ if (was_idled) {
+ was_idled = false;
+ lcd_on(true);
+ }
+ }
+}
+
+RedBoot_idle(idle, RedBoot_AFTER_NETIO);
+#endif
+#endif
diff --git a/ecos/packages/hal/arm/arm9/excalibur/current/ChangeLog b/ecos/packages/hal/arm/arm9/excalibur/current/ChangeLog
new file mode 100644
index 0000000..d591a9c
--- /dev/null
+++ b/ecos/packages/hal/arm/arm9/excalibur/current/ChangeLog
@@ -0,0 +1,342 @@
+2009-01-31 Bart Veer <bartv@ecoscentric.com>
+
+ * cdl/hal_arm_arm9_excalibur.cdl: update compiler flags for gcc 4.x
+
+2009-01-24 Bart Veer <bartv@ecoscentric.com>
+
+ * cdl/hal_arm_arm9_excalibur.cdl: switch from arm-elf-gcc to
+ arm-eabi-gcc.
+
+2003-12-05 Andrew Lunn <andrew.lunn@ascom.ch>
+
+ * include/hal_diag.h: hal_delay_us() is a C function.
+
+2003-07-18 Nick Garnett <nickg@balti.calivar.com>
+
+ * cdl/hal_arm_arm9_excalibur.cdl:
+ Changed values for CYGNUM_HAL_RTC_NUMERATOR,
+ CYGNUM_HAL_RTC_DENOMINATOR and CYGNUM_HAL_RTC_PERIOD to
+ "default_value" from "calculated". This makes it easier
+ to change these values globally.
+
+2003-02-13 Patrick Doyle <wpd@delcomsys.com>
+ * src/excalibur_misc.c: Replaced explicit prototype of memset with
+ #include <string.h>.
+
+2002-08-12 Mark Salter <msalter@redhat.com>
+
+ * cdl/hal_arm_arm9_excalibur.cdl: Remove CYGSEM_REDBOOT_ARM_LINUX_BOOT
+ requirement.
+
+2002-05-14 Jesper Skov <jskov@redhat.com>
+
+ * src/excalibur_misc.c: Fixed warning.
+
+2002-05-07 Gary Thomas <gthomas@redhat.com>
+
+ * cdl/hal_arm_arm9_excalibur.cdl:
+ Standardize CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_DEFAULT usage.
+
+2002-04-18 Jonathan Larmour <jlarmour@redhat.com>
+
+ * cdl/hal_arm_arm9_excalibur.cdl: Use --no-target-default-spec to
+ avoid problems with newer tools.
+
+2002-04-02 Jesper Skov <jskov@redhat.com>
+
+ * include/pkgconf/mlt_arm_arm9_excalibur_redboot.h: Added new
+ REDBOOT startup mode that is similar in function to the ROMRAM
+ starup mode, with the exception that (RedBoot) application memory
+ is linked at 0x07f80000 instead of 0x00008000, thus freeing up
+ memory at 0x8000 to applications linked without the correct linker
+ map.
+ * include/pkgconf/mlt_arm_arm9_excalibur_redboot.mlt: Same.
+ * include/pkgconf/mlt_arm_arm9_excalibur_redboot.ldi: Same.
+
+ * cdl/hal_arm_arm9_excalibur.cdl: Added REDBOOT startup mode
+ handling.
+
+ * include/hal_platform_setup.h: Handle REDBOOT startup mode like
+ ROMRAM mode.
+
+ * misc/redboot_REDBOOT.ecm: Configuration for use of the REDBOOT
+ startup mode.
+
+2002-01-29 Jesper Skov <jskov@redhat.com>
+
+ * include/plf_io.h (CYGARC_PHYSICAL_ADDRESS): Added.
+
+ * cdl/hal_arm_arm9_excalibur.cdl: Use generic linux exec command.
+ * src/redboot_linux_exec.c: Removed.
+
+2002-01-28 Jesper Skov <jskov@redhat.com>
+
+ * include/plf_io.h: Added.
+
+2001-12-21 Jesper Skov <jskov@redhat.com>
+
+ * include/pkgconf/mlt_arm_arm9_excalibur_romram.ldi: Increase RAM
+ size to 128MB.
+ * include/pkgconf/mlt_arm_arm9_excalibur_romram.mlt: Same.
+ * include/pkgconf/mlt_arm_arm9_excalibur_romram.h: Same.
+ * include/pkgconf/mlt_arm_arm9_excalibur_rom.ldi: Same.
+ * include/pkgconf/mlt_arm_arm9_excalibur_rom.mlt: Same.
+ * include/pkgconf/mlt_arm_arm9_excalibur_rom.h: Same.
+ * include/pkgconf/mlt_arm_arm9_excalibur_ram.ldi: Same.
+ * include/pkgconf/mlt_arm_arm9_excalibur_ram.mlt: Same.
+ * include/pkgconf/mlt_arm_arm9_excalibur_ram.h: Same.
+
+ * include/hal_platform_setup.h: Make Altera's init code the
+ default after finding the buglet that made it fail.
+
+ * include/excalibur.h: Added some registers, cut out some unused
+ definitions.
+ * cdl/hal_arm_arm9_excalibur.cdl: Increased clocks to 150/75MHz.
+
+2001-12-20 Jesper Skov <jskov@redhat.com>
+
+ * include/hal_platform_setup.h: Added SDRAM configuration code
+ from Altera. Clean up code. Added printhex8 function.
+
+2001-12-18 Jesper Skov <jskov@redhat.com>
+
+ * cdl/hal_arm_arm9_excalibur.cdl: Added some clock comments.
+ * include/excalibur.h: Added CLK definitions.
+ * include/hal_platform_setup.h: Added code (from Altera) to change
+ clocking to 150/75/75MHz. They don't work though.
+ Oops, get the math right.
+
+2001-12-17 Jesper Skov <jskov@redhat.com>
+
+ * include/excalibur.h (_MMAP_PLD1_INIT): Changed to 0x0f000000.
+ * src/excalibur_misc.c (hal_mmu_init): Added mapping for
+ PLD1. Still causes access error though...
+
+2001-12-14 Jesper Skov <jskov@redhat.com>
+
+ * include/pkgconf/mlt_arm_arm9_excalibur_romram.h: Changed ROM
+ location.
+ * include/pkgconf/mlt_arm_arm9_excalibur_romram.ldi: Same.
+ * include/pkgconf/mlt_arm_arm9_excalibur_romram.mlt: Same.
+ * include/pkgconf/mlt_arm_arm9_excalibur_rom.h: Same.
+ * include/pkgconf/mlt_arm_arm9_excalibur_rom.ldi: Same.
+ * include/pkgconf/mlt_arm_arm9_excalibur_rom.mlt: Same.
+
+ * include/excalibur.h: Change memory mapping to match that
+ expected by Linux.
+ * cdl/hal_arm_arm9_excalibur.cdl: Relocate .hex file accordingly.
+ Also suppress reservation of space for RedBoot[backup] image.
+ Finally, increase default baud rate to 57600.
+ * src/excalibur_misc.c (hal_mmu_init): Change memory mapping.
+
+2001-12-06 Jesper Skov <jskov@redhat.com>
+
+ * src/redboot_linux_exec.c: Added.
+
+ * misc/redboot_ROMRAM.ecm: Don't disable dcache.
+ * misc/redboot_RAM.ecm: Same.
+
+ * cdl/hal_arm_arm9_excalibur.cdl: Added Linux platform
+ identifier [for Camelot platform - may have to change]. Build file
+ with exec command.
+
+2001-12-03 Jesper Skov <jskov@redhat.com>
+
+ * cdl/hal_arm_arm9_excalibur.cdl: Cache should be safe to use
+ now. Bug in variant HAL macro.
+
+2001-08-17 Jesper Skov <jskov@redhat.com>
+
+ * cdl/hal_arm_arm9_excalibur.cdl: Point to
+ excalibur_program_new_stack.
+ * src/excalibur_misc.c (excalibur_program_new_stack): Added.
+
+ * misc/redboot_ROMRAM.ecm: Clean up inferred/user_values.
+
+2001-08-16 Jesper Skov <jskov@redhat.com>
+
+ * misc/redboot_ROMRAM.ecm: Added threads. [made it inferred]
+ Enable syscall support.
+
+ * include/hal_platform_setup.h: Enable flash parts 1-3 on
+ expansion bus.
+
+ * include/excalibur.h: Added expansion bus config defs.
+
+2001-08-15 Jesper Skov <jskov@redhat.com>
+
+ * src/excalibur_misc.c (hal_clock_initialize): Be a little more
+ careful initializing the timer.
+
+ * cdl/hal_arm_arm9_excalibur.cdl: Fix RTC period calculation.
+
+ * misc/redboot_ROMRAM.ecm: Added flash and compression.
+ * misc/redboot_RAM.ecm: Added.
+
+ * include/pkgconf/mlt_arm_arm9_excalibur_ram.mlt: More space to
+ RedBoot.
+ * include/pkgconf/mlt_arm_arm9_excalibur_ram.ldi: Same.
+
+ * src/hal_diag.c (cyg_hal_plf_serial_isr): Also use RX int
+ workaround here.
+
+ * src/excalibur_misc.c (hal_IRQ_handler): INT_ID doesn't do the
+ helpful thing, so decode by steam.
+
+ * cdl/hal_arm_arm9_excalibur.cdl: Disable D-cache again.
+
+2001-08-14 Jesper Skov <jskov@redhat.com>
+
+ * src/excalibur_misc.c (hal_mmu_init): Don't let flash be cached:
+ appears to cause a bus lock when accessed from RAM.
+
+ * include/hal_platform_setup.h: Only copy code when in ROMRAM
+ startup configuration.
+
+ * src/excalibur_misc.c (hal_delay_us): Use timer.
+
+ * include/hal_platform_setup.h: Better ROMRAM startup.
+
+ * cdl/hal_arm_arm9_excalibur.cdl: Allow caches again. Up baud rate.
+
+ * src/hal_diag.c (cyg_hal_plf_serial_putc): Work around HW bug in
+ transmitter.
+
+ * cdl/hal_arm_arm9_excalibur.cdl: Added ROMRAM startup mode.
+
+ * include/pkgconf/mlt_arm_arm9_excalibur_romram.ldi: Added.
+ * include/pkgconf/mlt_arm_arm9_excalibur_romram.mlt: Added.
+ * include/pkgconf/mlt_arm_arm9_excalibur_romram.h: Added.
+
+ * src/hal_diag.c: Use RI flag in ISR instead of polling the FIFO
+ count register. Appears that FIFO jams on overruns somehow, and
+ messes up the ISR state in the process. Try to work around that by
+ checking both FIFO count and ISR RI flag. It works. Sort of.
+
+ * src/excalibur_misc.c (hal_delay_us): Do nothing for now. Real
+ code changed a bit too.
+
+ * include/excalibur.h: Fixed typo in FIFO register defs.
+
+ * cdl/hal_arm_arm9_excalibur.cdl: Changed baud rate to 9600 until
+ cache issue is resolved.
+
+2001-08-13 Jesper Skov <jskov@redhat.com>
+
+ * src/excalibur_misc.c (hal_mmu_init): Fix comment error.
+
+ * include/hal_platform_setup.h: Clear instruction cache on startup.
+
+ * include/excalibur.h: Minor reorg, comment question resolved.
+
+ * cdl/hal_arm_arm9_excalibur.cdl: Require ARM922T support.
+
+ * include/hal_platform_setup.h: Write buffer cannot be disabled.
+
+2001-08-10 Jesper Skov <jskov@redhat.com>
+
+ * src/excalibur_misc.c (hal_delay_us): Don't use prescaling.
+
+ * include/hal_platform_setup.h: Set up EBI1-3 (flash parts 1-3) -
+ doesn't work though.
+
+ * include/hal_platform_ints.h: Added reset code.
+
+ * include/excalibur.h: Added watchdog defs. Updated EBI regions.
+
+2001-08-09 Jesper Skov <jskov@redhat.com>
+
+ * include/hal_platform_setup.h: Remove SRAM hack.
+ * include/excalibur.h: Same.
+
+ * include/hal_platform_setup.h: Cleanup.
+ Missing LED cleanup. Move PLD init.
+
+ * cdl/hal_arm_arm9_excalibur.cdl: Disable caches for now.
+
+ * src/excalibur_misc.c: Added debug code, disable PLD interrupts.
+
+ * include/hal_platform_setup.h: Added some (overkill) delays,
+ moved PLD mmap init, do SDRAM init, don't touch unused mmap
+ entries. Do DPSRAM init (not that it should make a difference).
+
+ * include/excalibur.h: Fixed mmap sizes. Fixed SDRAM map
+ size. Added some debug code. Added DPSRAM defs.
+
+2001-08-08 Jesper Skov <jskov@redhat.com>
+
+ * include/hal_platform_setup.h: Jump to ROM, disable ROM
+ mapping. Wait after SDRAM refresh operations.
+ Output debug via LED macro.
+
+ * include/excalibur.h: Altera SDRAM settings.
+
+ * include/hal_platform_setup.h: Adding more initialization and
+ (temporary) UART debug code. Fixing instruction addressing modes.
+
+ * include/excalibur.h: Adding more definitions.
+
+ * cdl/hal_arm_arm9_excalibur.cdl: Added ihex build rule for
+ RedBoot.
+
+2001-08-07 Jesper Skov <jskov@redhat.com>
+
+ * include/excalibur.h: Added SDRAM controller details.
+
+ * cdl/hal_arm_arm9_excalibur.cdl: Added SDRAM clock.
+
+ * include/hal_platform_setup.h: Added hardwired SDRAM init.
+
+ * src/hal_diag.c: Use peripheral clock. Fix compiler error.
+
+ * src/excalibur_misc.c: Updated memory mapping. Fix compiler
+ errors and warnings.
+
+ * include/pkgconf/mlt_arm_arm9_excalibur_ram.ldi: Updated.
+ * include/pkgconf/mlt_arm_arm9_excalibur_ram.mlt: Same.
+ * include/pkgconf/mlt_arm_arm9_excalibur_ram.h: Same.
+ * include/pkgconf/mlt_arm_arm9_excalibur_rom.ldi: Updated.
+ * include/pkgconf/mlt_arm_arm9_excalibur_rom.mlt: Same.
+ * include/pkgconf/mlt_arm_arm9_excalibur_rom.h: Same.
+
+ * include/hal_platform_setup.h: Set up memory map.
+
+ * include/excalibur.h: Added memory mapping registers and memory
+ map layout.
+
+ * cdl/hal_arm_arm9_excalibur.cdl: Package display changed to match
+ top-level. Added clock definitions (must add configury eventually).
+
+2001-08-06 Jesper Skov <jskov@redhat.com>
+
+ * src/excalibur_misc.c: Clock, irq and MMU code.
+
+ * include/excalibur.h: Register definitions.
+
+ * src/hal_diag.c: Serial driver added.
+
+ * Created HAL for Altera Excalibur.
+
+//===========================================================================
+// ####GPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 2 or (at your option) any
+// later version.
+//
+// This program is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the
+// Free Software Foundation, Inc., 51 Franklin Street,
+// Fifth Floor, Boston, MA 02110-1301, USA.
+// -------------------------------------------
+// ####GPLCOPYRIGHTEND####
+//===========================================================================
diff --git a/ecos/packages/hal/arm/arm9/excalibur/current/cdl/hal_arm_arm9_excalibur.cdl b/ecos/packages/hal/arm/arm9/excalibur/current/cdl/hal_arm_arm9_excalibur.cdl
new file mode 100644
index 0000000..30f73b0
--- /dev/null
+++ b/ecos/packages/hal/arm/arm9/excalibur/current/cdl/hal_arm_arm9_excalibur.cdl
@@ -0,0 +1,426 @@
+# ====================================================================
+#
+# hal_arm_arm9_excalibur.cdl
+#
+# Altera ARM9/EXCALIBUR platform HAL package configuration data
+#
+# ====================================================================
+## ####ECOSGPLCOPYRIGHTBEGIN####
+## -------------------------------------------
+## This file is part of eCos, the Embedded Configurable Operating System.
+## Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+##
+## eCos is free software; you can redistribute it and/or modify it under
+## the terms of the GNU General Public License as published by the Free
+## Software Foundation; either version 2 or (at your option) any later
+## version.
+##
+## eCos is distributed in the hope that it will be useful, but WITHOUT
+## ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+## FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+## for more details.
+##
+## You should have received a copy of the GNU General Public License
+## along with eCos; if not, write to the Free Software Foundation, Inc.,
+## 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+##
+## As a special exception, if other files instantiate templates or use
+## macros or inline functions from this file, or you compile this file
+## and link it with other works to produce a work based on this file,
+## this file does not by itself cause the resulting work to be covered by
+## the GNU General Public License. However the source code for this file
+## must still be made available in accordance with section (3) of the GNU
+## General Public License v2.
+##
+## This exception does not invalidate any other reasons why a work based
+## on this file might be covered by the GNU General Public License.
+## -------------------------------------------
+## ####ECOSGPLCOPYRIGHTEND####
+# ====================================================================
+######DESCRIPTIONBEGIN####
+#
+# Author(s): jskov
+# Contributors: jskov, gthomas
+# Date: 2001-08-06
+#
+#####DESCRIPTIONEND####
+#
+# ====================================================================
+cdl_package CYGPKG_HAL_ARM_ARM9_EXCALIBUR {
+ display "Altera ARM9/Excalibur board"
+ parent CYGPKG_HAL_ARM_ARM9
+ requires CYGPKG_HAL_ARM_ARM9_ARM922T
+ hardware
+ include_dir cyg/hal
+ define_header hal_arm_arm9_excalibur.h
+ description "
+ This HAL platform package provides generic
+ support for the Altera ARM9 based board, known as 'excalibur'."
+
+ compile excalibur_misc.c hal_diag.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_arm.h>"
+ puts $::cdl_system_header "#define CYGBLD_HAL_VARIANT_H <pkgconf/hal_arm_arm9.h>"
+ puts $::cdl_system_header "#define CYGBLD_HAL_PLATFORM_H <pkgconf/hal_arm_arm9_excalibur.h>"
+ puts $::cdl_header "#define HAL_PLATFORM_CPU \"ARM9\""
+ puts $::cdl_header "#define HAL_PLATFORM_BOARD \"EXCALIBUR system\""
+ puts $::cdl_header "#define HAL_PLATFORM_EXTRA \"\""
+ puts $::cdl_header "#define HAL_ARCH_PROGRAM_NEW_STACK excalibur_program_new_stack"
+
+ puts $::cdl_header "#define HAL_PLATFORM_MACHINE_TYPE 62"
+ }
+
+ cdl_component CYG_HAL_STARTUP {
+ display "Startup type"
+ flavor data
+ default_value {"RAM"}
+ legal_values {"RAM" "ROM" "ROMRAM" "REDBOOT" }
+ no_define
+ define -file system.h CYG_HAL_STARTUP
+ description "
+ When targetting the Excalibur 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. Select 'redboot' when
+ building RedBoot to place RedBoot at top of memory, leaving
+ the bottom of memory (from 0x8000) to applications."
+ }
+
+ # Both PLLs are in bypass mode on startup.
+ # FIXME: Add proper configury
+ cdl_option CYGNUM_HAL_ARM_EXCALIBUR_CPU_CLOCK {
+ display "CPU bus speed"
+ flavor data
+ calculated { 150000000 }
+ description "
+ This is the actual CPU operating frequency (AHB1)."
+ }
+
+ cdl_option CYGNUM_HAL_ARM_EXCALIBUR_PERIPHERAL_CLOCK {
+ display "Peripheral bus speed"
+ flavor data
+ calculated { CYGNUM_HAL_ARM_EXCALIBUR_CPU_CLOCK / 2 }
+ description "
+ This is the peripheral bus operating frequency (AHB2)."
+ }
+
+ cdl_option CYGNUM_HAL_ARM_EXCALIBUR_SDRAM_CLOCK {
+ display "SDRAM clock"
+ flavor data
+ calculated { 75000000 }
+ description "
+ This is the SDRAM bus operating frequency (SD_CLK)."
+ }
+
+ cdl_option CYGNUM_HAL_ARM_EXCALIBUR_TIMER_PRESCALE {
+ display "Timer prescale"
+ flavor data
+ legal_values 0 to 255
+ default_value 16
+ description "
+ This is the prescale value used on the clock used to drive
+ the kernel counter. Note that some parts of the code may fail
+ if this is changed due to over/underflows of expressions."
+ }
+
+ # Real-time clock/counter specifics
+ cdl_component CYGNUM_HAL_RTC_CONSTANTS {
+ display "Real-time clock constants"
+ flavor none
+ no_define
+
+ cdl_option CYGNUM_HAL_RTC_NUMERATOR {
+ display "Real-time clock numerator"
+ flavor data
+ default_value 1000000000
+ }
+ cdl_option CYGNUM_HAL_RTC_DENOMINATOR {
+ display "Real-time clock denominator"
+ flavor data
+ default_value 100
+ }
+ cdl_option CYGNUM_HAL_RTC_PERIOD {
+ display "Real-time clock period"
+ flavor data
+ default_value (CYGNUM_HAL_ARM_EXCALIBUR_PERIPHERAL_CLOCK/(CYGNUM_HAL_ARM_EXCALIBUR_TIMER_PRESCALE*CYGNUM_HAL_RTC_DENOMINATOR))-1
+ }
+ }
+
+ cdl_option CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_BAUD {
+ display "Diagnostic serial port baud rate"
+ flavor data
+ legal_values 9600 19200 38400 57600 115200
+ default_value 57600
+ 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 57600 115200
+ default_value 57600
+ 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 1
+ }
+
+ cdl_option CYGNUM_HAL_VIRTUAL_VECTOR_DEBUG_CHANNEL {
+ display "Debug serial port"
+ active_if CYGPRI_HAL_VIRTUAL_VECTOR_DEBUG_CHANNEL_CONFIGURABLE
+ flavor data
+ legal_values 0 to CYGNUM_HAL_VIRTUAL_VECTOR_COMM_CHANNELS-1
+ default_value 0
+ description "
+ The excalibur 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_DEFAULT {
+ display "Default console channel."
+ flavor data
+ legal_values 0 to CYGNUM_HAL_VIRTUAL_VECTOR_COMM_CHANNELS-1
+ calculated 0
+ }
+
+ cdl_option CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL {
+ display "Diagnostic serial port"
+ active_if CYGPRI_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_CONFIGURABLE
+ flavor data
+ legal_values 0 to CYGNUM_HAL_VIRTUAL_VECTOR_COMM_CHANNELS-1
+ default_value CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_DEFAULT
+ description "
+ The excalibur 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-eabi"}
+ 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 { CYGBLD_GLOBAL_WARNFLAGS . CYGBLD_ARCH_CFLAGS .
+ "-mcpu=arm9 -g -O2 -ffunction-sections -fdata-sections -fno-rtti -fno-exceptions " }
+ 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 { CYGBLD_ARCH_LDFLAGS . "-mcpu=arm9 --no-target-default-spec -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.srec : <PREFIX>/bin/gdb_module.img
+ $(OBJCOPY) --remove-section=.fixed_vectors $< gdb_module.tmp
+ }
+ }
+ }
+
+ cdl_component CYGPKG_HAL_ARM_ARM9_EXCALIBUR_OPTIONS {
+ display "ARM9/EXCALIBUR 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_ARM9_EXCALIBUR_CFLAGS_ADD {
+ display "Additional compiler flags"
+ flavor data
+ no_define
+ default_value { "" }
+ description "
+ This option modifies the set of compiler flags for
+ building the ARM9 EXCALIBUR HAL. These flags are used in addition
+ to the set of global flags."
+ }
+
+ cdl_option CYGPKG_HAL_ARM_ARM9_EXCALIBUR_CFLAGS_REMOVE {
+ display "Suppressed compiler flags"
+ flavor data
+ no_define
+ default_value { "" }
+ description "
+ This option modifies the set of compiler flags for
+ building the ARM9 EXCALIBUR HAL. These flags are removed from
+ the set of global flags if present."
+ }
+
+ cdl_option CYGPKG_HAL_ARM_ARM9_EXCALIBUR_TESTS {
+ display "ARM9/EXCALIBUR tests"
+ flavor data
+ no_define
+ calculated { "" }
+ description "
+ This option specifies the set of tests for the ARM9 Excalibur HAL."
+ }
+ }
+
+ cdl_component CYGHWR_MEMORY_LAYOUT {
+ display "Memory layout"
+ flavor data
+ no_define
+ calculated { CYG_HAL_STARTUP == "RAM" ? "arm_arm9_excalibur_ram" : \
+ CYG_HAL_STARTUP == "ROM" ? "arm_arm9_excalibur_rom" : \
+ CYG_HAL_STARTUP == "ROMRAM" ? "arm_arm9_excalibur_romram" : \
+ "arm_arm9_excalibur_redboot" }
+
+ 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_arm9_excalibur_ram.ldi>" : \
+ CYG_HAL_STARTUP == "ROM" ? "<pkgconf/mlt_arm_arm9_excalibur_rom.ldi>" : \
+ CYG_HAL_STARTUP == "ROMRAM" ? "<pkgconf/mlt_arm_arm9_excalibur_romram.ldi>" : \
+ "<pkgconf/mlt_arm_arm9_excalibur_redboot.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_arm9_excalibur_ram.h>" : \
+ CYG_HAL_STARTUP == "ROM" ? "<pkgconf/mlt_arm_arm9_excalibur_rom.h>" : \
+ CYG_HAL_STARTUP == "ROMRAM" ? "<pkgconf/mlt_arm_arm9_excalibur_romram.h>" : \
+ "<pkgconf/mlt_arm_arm9_excalibur_redboot.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" || CYG_HAL_STARTUP == "ROMRAM" || CYG_HAL_STARTUP == "REDBOOT" }
+ 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 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 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.
+ \"GDB_stubs\" provides support when GDB stubs are included in
+ the ROM monitor or boot ROM."
+ }
+
+ cdl_component CYGPKG_REDBOOT_HAL_OPTIONS {
+ display "Redboot HAL options"
+ flavor none
+ no_define
+ parent CYGPKG_REDBOOT
+ active_if CYGPKG_REDBOOT
+ description "
+ This option lists the target's requirements for a valid Redboot
+ configuration."
+
+ # The backup image is not needed, since ROMRAM/REDBOOT is the normal
+ # RedBoot startup type.
+ requires {!CYGPKG_REDBOOT_FLASH || CYGOPT_REDBOOT_FIS_REDBOOT_BACKUP == 0}
+
+ # RedBoot details
+ requires { CYGHWR_REDBOOT_ARM_LINUX_EXEC_ADDRESS_DEFAULT == 0x00008000 }
+ define_proc {
+ puts $::cdl_header "#define CYGHWR_REDBOOT_ARM_TRAMPOLINE_ADDRESS 0x00001f00"
+ }
+
+ 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 the various relocated SREC images needed
+ for flash updating."
+
+ make -priority 325 {
+ <PREFIX>/bin/redboot.bin : <PREFIX>/bin/redboot.elf
+ $(OBJCOPY) --strip-debug $< $(@:.bin=.img)
+ $(OBJCOPY) -O srec $< $(@:.bin=.srec)
+ $(OBJCOPY) --change-address 0xc0000000 -O ihex $< $(@:.bin=.hex)
+ $(OBJCOPY) -O binary $< $@
+ }
+ }
+ }
+
+}
diff --git a/ecos/packages/hal/arm/arm9/excalibur/current/include/excalibur.h b/ecos/packages/hal/arm/arm9/excalibur/current/include/excalibur.h
new file mode 100644
index 0000000..e0f18d4
--- /dev/null
+++ b/ecos/packages/hal/arm/arm9/excalibur/current/include/excalibur.h
@@ -0,0 +1,376 @@
+#ifndef CYGONCE_EXCALIBUR_H
+#define CYGONCE_EXCALIBUR_H
+
+//=============================================================================
+//
+// excalibur.h
+//
+// Platform specific support (register layout, etc)
+//
+//=============================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jskov
+// Contributors: jskov
+// Date: 2001-08-06
+// Purpose: Altera/EXCALIBUR platform specific support routines
+// Description:
+// Usage: #include <cyg/hal/excalibur.h>
+//
+//####DESCRIPTIONEND####
+//
+//=============================================================================
+
+#include <pkgconf/hal_arm_arm9_excalibur.h>
+
+#define EXCALIBUR_BASE EXCALIBUR_REGS_PHYS_BASE
+
+//-----------------------------------------------------------------------------
+// Boot control
+// Note: this register is actually write-bit-to-clear-it
+#define EXCALIBUR_BOOT_CR (EXCALIBUR_BASE + 0x0000)
+
+#define EXCALIBUR_BOOT_CR_BM 0x00000001
+#define EXCALIBUR_BOOT_CR_HM 0x00000002
+#define EXCALIBUR_BOOT_CR_RE 0x00000004
+
+//-----------------------------------------------------------------------------
+// DPSRAM config
+#define EXCALIBUR_DPSRAM_BASE (EXCALIBUR_BASE + 0x0030)
+#define _DPSRAM0_SR 0x0000
+#define _DPSRAM0_LCR 0x0004
+#define _DPSRAM1_SR 0x0008
+#define _DPSRAM1_LCR 0x000c
+
+#define _DPSRAM0_LCR_INIT 0x00000000
+#define _DPSRAM1_LCR_INIT 0x00000000
+
+//-----------------------------------------------------------------------------
+// IO controller
+#define EXCALIBUR_IOCR_BASE (EXCALIBUR_BASE + 0x0040)
+#define _IOCR_SDRAM 0x0000
+#define _IOCR_EBI 0x0004
+#define _IOCR_UART 0x0008
+#define _IOCR_TRACE 0x000c
+
+#define _IOCR_OC_PCI 0x00000008
+#define _IOCR_OC_FAST 0x00000004
+#define _IOCR_OC_SLOW 0x00000000
+#define _IOCR_IO_STRIPE 0x00000002
+#define _IOCR_LOCK 0x00000001
+
+#define EXCALIBUR_IOCR_SDRAM_INIT (_IOCR_OC_FAST | _IOCR_IO_STRIPE | _IOCR_LOCK)
+#define EXCALIBUR_IOCR_EBI_INIT (_IOCR_OC_SLOW | _IOCR_IO_STRIPE | _IOCR_LOCK)
+#define EXCALIBUR_IOCR_UART_INIT (_IOCR_OC_SLOW | _IOCR_IO_STRIPE | _IOCR_LOCK)
+
+
+//-----------------------------------------------------------------------------
+// Memory mapping
+#define EXCALIBUR_MMAP_BASE (EXCALIBUR_BASE + 0x0080)
+#define _MMAP_REGISTERS 0x0000
+#define _MMAP_SRAM0 0x0010
+#define _MMAP_SRAM1 0x0014
+#define _MMAP_DPSRAM0 0x0020
+#define _MMAP_DPSRAM1 0x0024
+#define _MMAP_SDRAM0 0x0030
+#define _MMAP_SDRAM1 0x0034
+#define _MMAP_EBI0 0x0040
+#define _MMAP_EBI1 0x0044
+#define _MMAP_EBI2 0x0048
+#define _MMAP_EBI3 0x004c
+#define _MMAP_PLD0 0x0050
+#define _MMAP_PLD1 0x0054
+#define _MMAP_PLD2 0x0058
+#define _MMAP_PLD3 0x005c
+
+#define _MMAP_SIZE_16K (13<<7)
+#define _MMAP_SIZE_64K (15<<7)
+#define _MMAP_SIZE_128K (16<<7)
+#define _MMAP_SIZE_1M (19<<7)
+#define _MMAP_SIZE_4M (21<<7)
+#define _MMAP_SIZE_16M (23<<7)
+#define _MMAP_SIZE_32M (24<<7)
+#define _MMAP_SIZE_64M (25<<7)
+
+#define _MMAP_PREFETCH 0x00000000
+#define _MMAP_NOPREFETCH 0x00000002
+
+#define _MMAP_ENABLE 0x00000001
+#define _MMAP_DISABLE 0x00000000
+
+#define _MMAP_REGISTERS_INIT (EXCALIBUR_REGS_PHYS_BASE + 0x00000000 | _MMAP_SIZE_16K | _MMAP_NOPREFETCH | _MMAP_ENABLE)
+#define _MMAP_SRAM0_INIT (EXCALIBUR_SRAM_PHYS_BASE + 0x00000000 | _MMAP_SIZE_128K | _MMAP_PREFETCH | _MMAP_ENABLE)
+#define _MMAP_SRAM1_INIT (EXCALIBUR_SRAM_PHYS_BASE + 0x00020000 | _MMAP_SIZE_128K | _MMAP_PREFETCH | _MMAP_ENABLE)
+#define _MMAP_DPSRAM0_INIT (EXCALIBUR_SRAM_PHYS_BASE + 0x00040000 | _MMAP_SIZE_64K | _MMAP_PREFETCH | _MMAP_ENABLE)
+#define _MMAP_DPSRAM1_INIT (EXCALIBUR_SRAM_PHYS_BASE + 0x00050000 | _MMAP_SIZE_64K | _MMAP_PREFETCH | _MMAP_ENABLE)
+#define _MMAP_SDRAM0_INIT (EXCALIBUR_SDRAM_PHYS_BASE + 0x00000000 | _MMAP_SIZE_64M | _MMAP_PREFETCH | _MMAP_ENABLE)
+#define _MMAP_SDRAM1_INIT (EXCALIBUR_SDRAM_PHYS_BASE + 0x04000000 | _MMAP_SIZE_64M | _MMAP_PREFETCH | _MMAP_ENABLE)
+#define _MMAP_EBI0_INIT (EXCALIBUR_FLASH_PHYS_BASE + 0x00000000 | _MMAP_SIZE_4M | _MMAP_PREFETCH | _MMAP_ENABLE)
+#define _MMAP_EBI1_INIT (EXCALIBUR_FLASH_PHYS_BASE + 0x00400000 | _MMAP_SIZE_4M | _MMAP_PREFETCH | _MMAP_ENABLE)
+#define _MMAP_EBI2_INIT (EXCALIBUR_FLASH_PHYS_BASE + 0x00800000 | _MMAP_SIZE_4M | _MMAP_PREFETCH | _MMAP_ENABLE)
+#define _MMAP_EBI3_INIT (EXCALIBUR_FLASH_PHYS_BASE + 0x00c00000 | _MMAP_SIZE_4M | _MMAP_PREFETCH | _MMAP_ENABLE)
+#define _MMAP_PLD0_INIT (EXCALIBUR_PLD_PHYS_BASE + 0x00000000 | _MMAP_SIZE_16K | _MMAP_NOPREFETCH | _MMAP_ENABLE)
+//#define _MMAP_PLD1_INIT (EXCALIBUR_PLD_PHYS_BASE + 0x00004000 | _MMAP_SIZE_16K | _MMAP_NOPREFETCH | _MMAP_ENABLE)
+#define _MMAP_PLD1_INIT (0x0f000000 | _MMAP_SIZE_16K | _MMAP_NOPREFETCH | _MMAP_ENABLE)
+#define _MMAP_PLD2_INIT (EXCALIBUR_PLD_PHYS_BASE + 0x00008000 | _MMAP_SIZE_16K | _MMAP_NOPREFETCH | _MMAP_ENABLE)
+#define _MMAP_PLD3_INIT (EXCALIBUR_PLD_PHYS_BASE + 0x0000c000 | _MMAP_SIZE_16K | _MMAP_NOPREFETCH | _MMAP_ENABLE)
+
+#define EXCALIBUR_SDRAM_PHYS_BASE 0x00000000
+#define EXCALIBUR_FLASH_PHYS_BASE 0x40000000
+#define EXCALIBUR_SRAM_PHYS_BASE 0x08000000
+#define EXCALIBUR_PLD_PHYS_BASE 0x80000000
+#define EXCALIBUR_REGS_PHYS_BASE 0x7fffc000
+
+
+
+
+//-----------------------------------------------------------------------------
+// Timers
+#define EXCALIBUR_TIMER0_CR (EXCALIBUR_BASE+0x0200)
+#define EXCALIBUR_TIMER0_PRE (EXCALIBUR_BASE+0x0210)
+#define EXCALIBUR_TIMER0_LIMIT (EXCALIBUR_BASE+0x0220)
+#define EXCALIBUR_TIMER0_READ (EXCALIBUR_BASE+0x0230)
+
+#define EXCALIBUR_TIMER1_CR (EXCALIBUR_BASE+0x0240)
+#define EXCALIBUR_TIMER1_PRE (EXCALIBUR_BASE+0x0250)
+#define EXCALIBUR_TIMER1_LIMIT (EXCALIBUR_BASE+0x0260)
+#define EXCALIBUR_TIMER1_READ (EXCALIBUR_BASE+0x0270)
+
+#define EXCALIBUR_TIMER_CR_MODE_HEARBEAT 0x00000000
+#define EXCALIBUR_TIMER_CR_MODE_ONE_SHOT 0x00000001
+#define EXCALIBUR_TIMER_CR_IE 0x00000004
+#define EXCALIBUR_TIMER_CR_CI 0x00000008
+#define EXCALIBUR_TIMER_CR_S 0x00000010
+
+//-----------------------------------------------------------------------------
+// Serial
+#define EXCALIBUR_UART0_BASE (EXCALIBUR_BASE+0x0280)
+#define _UART_RSR 0x0000
+#define _UART_RDS 0x0004
+#define _UART_RD 0x0008
+#define _UART_TSR 0x000c
+#define _UART_TD 0x0010
+#define _UART_FCR 0x0014
+#define _UART_IES 0x0018
+#define _UART_IEC 0x001c
+#define _UART_ISR 0x0020
+#define _UART_IID 0x0024
+#define _UART_MC 0x0028
+#define _UART_MCR 0x002c
+#define _UART_MSR 0x0030
+#define _UART_DIV_LO 0x0034
+#define _UART_DIV_HI 0x0038
+
+#define _UART_RSR_RX_LEVEL 0x0000001f
+
+#define _UART_TSR_TXI 0x00000080
+
+#define _UART_FCR_TC 0x00000001
+#define _UART_FCR_RC 0x00000002
+#define _UART_FCR_TX_THR_15 0x0000001c
+#define _UART_FCR_RX_THR_1 0x00000000
+
+#define _UART_INTS_RE 0x00000001
+#define _UART_INTS_RI _UART_INTS_RE
+#define _UART_INTS_TE 0x00000002
+#define _UART_INTS_TI _UART_INTS_TE
+#define _UART_INTS_TIE 0x00000004
+#define _UART_INTS_TII _UART_INTS_TIE
+#define _UART_INTS_ME 0x00000008
+#define _UART_INTS_MI _UART_INTS_ME
+
+
+#define _UART_MC_8BIT 0x00000003
+#define _UART_MC_1STOP 0x00000000
+#define _UART_MC_PARITY_NONE 0x00000000
+
+//-----------------------------------------------------------------------------
+// Clock controller
+#define EXCALIBUR_CLK_BASE (EXCALIBUR_BASE + 0x0300)
+#define _CLK_PLL1_NCNT 0x0000
+#define _CLK_PLL1_MCNT 0x0004
+#define _CLK_PLL1_KCNT 0x0008
+#define _CLK_PLL1_CTRL 0x000c
+#define _CLK_PLL2_NCNT 0x0010
+#define _CLK_PLL2_MCNT 0x0014
+#define _CLK_PLL2_KCNT 0x0018
+#define _CLK_PLL2_CTRL 0x001c
+#define _CLK_DERIVE 0x0020
+#define _CLK_STATUS 0x0024
+#define _CLK_AHB1_COUNT 0x0028
+
+#define _CLK_PLL1_CTRL_P 0x00000001
+#define _CLK_PLL2_CTRL_P 0x00000001
+
+#define _CLK_DERIVE_BP1 (1<<12)
+#define _CLK_DERIVE_BP2 (1<<13)
+
+#define _CLK_STATUS_L1 0x00000001
+#define _CLK_STATUS_L2 0x00000002
+#define _CLK_STATUS_C1 0x00000004
+#define _CLK_STATUS_C2 0x00000008
+
+// Settings from Altera example code. Note that this differs from the
+// magic values described in the manual. I think the values are
+// supposed to disable the PLLs, making the core run at 25MHz and
+// peripherals at 12.5MHz
+#define _CLK_PLL1_CTRL_INIT 0x00001064
+#define _CLK_PLL2_CTRL_INIT 0x00001064
+#define _CLK_DERIVE_INIT 0x00003010
+
+//-----------------------------------------------------------------------------
+// Expansion Bus Interface
+#define EXCALIBUR_EBI_CR (EXCALIBUR_BASE + 0x0380)
+
+#define EXCALIBUR_EBI_CR_EO 0x00000008
+
+#define EXCALIBUR_EBI_CR_INIT (EXCALIBUR_EBI_CR_EO)
+
+//-----------------------------------------------------------------------------
+// SDRAM controller
+#define EXCALIBUR_SDRAM_BASE (EXCALIBUR_BASE + 0x0400)
+#define _SDRAM_TIMING1 0x0000
+#define _SDRAM_TIMING2 0x0004
+#define _SDRAM_CONFIG 0x0008
+#define _SDRAM_REFRESH 0x000c
+#define _SDRAM_ADDR 0x0010
+#define _SDRAM_INIT 0x001c
+#define _SDRAM_MODE0 0x0020
+#define _SDRAM_MODE1 0x0024
+#define EXCALIBUR_SDRAM_WIDTH (EXCALIBUR_BASE + 0x007c)
+
+
+#define _SDRAM_WIDTH_W 0x00000002
+#define _SDRAM_WIDTH_LK 0x00000001
+
+#if 0
+// Max delays
+#define _SDRAM_TIMING1_INIT 0x00009124
+// CAS-2, 8 words burst, 3 clock refresh
+#define _SDRAM_TIMING2_INIT 0x00000788
+// SDR
+#define _SDRAM_CONFIG_INIT 0x00000000
+// Refresh period of 15us - at a clock of 75MHz that's 1125 cycles
+#define _SDRAM_REFRESH_INIT 1125
+// Rows (12) & columns (10)
+#define _SDRAM_ADDR_INIT 0x0000ca80
+// SDRAM mode (from Micron MT48LC16M8A2 manual)
+// M0-2: burst length = 3 (8 words)
+// M3 : burst type = 0 (sequential vs interleaved)
+// M4-6: CAS latency = 2
+// M7-8: operating mode = 0
+// M9 : write burst mode = 0 (writes are also in burst)
+#define _SDRAM_MODE0_INIT ((2<<4)|3)
+// Unused (for DDR)
+#define _SDRAM_MODE1_INIT 0x00000000
+#endif
+
+#define _SDRAM_INIT_EN 0x00008000
+#define _SDRAM_INIT_PR 0x00004000
+#define _SDRAM_INIT_LM 0x00002000
+#define _SDRAM_INIT_LEM 0x00001000
+#define _SDRAM_INIT_RF 0x00000800
+#define _SDRAM_INIT_BS 0x00000400
+#define _SDRAM_INIT_SR 0x00000200
+
+#if (CYGNUM_HAL_ARM_EXCALIBUR_SDRAM_CLOCK != 75000000)
+# error "Hardwired for a 75MHz SDRAM clock"
+#endif
+
+//-----------------------------------------------------------------------------
+// Watchdog controller
+#define EXCALIBUR_WDOG_CR (EXCALIBUR_BASE+0x0a00)
+#define EXCALIBUR_WDOG_COUNT (EXCALIBUR_BASE+0x0a04)
+#define EXCALIBUR_WDOG_RELOAD (EXCALIBUR_BASE+0x0a08)
+
+//-----------------------------------------------------------------------------
+// Interrupt controller
+#define EXCALIBUR_INT_MASK_SET (EXCALIBUR_BASE+0x0c00)
+#define EXCALIBUR_INT_MASK_CLEAR (EXCALIBUR_BASE+0x0c04)
+#define EXCALIBUR_INT_SOURCE_STATUS (EXCALIBUR_BASE+0x0c08)
+#define EXCALIBUR_INT_REQUEST_STATUS (EXCALIBUR_BASE+0x0c0c)
+#define EXCALIBUR_INT_ID (EXCALIBUR_BASE+0x0c10)
+#define EXCALIBUR_INT_PLD_PRIORITY (EXCALIBUR_BASE+0x0c14)
+#define EXCALIBUR_INT_INT_MODE (EXCALIBUR_BASE+0x0c18)
+#define EXCALIBUR_INT_PRIORITY_0 (EXCALIBUR_BASE+0x0c80)
+#define EXCALIBUR_INT_PRIORITY_1 (EXCALIBUR_BASE+0x0c84)
+#define EXCALIBUR_INT_PRIORITY_2 (EXCALIBUR_BASE+0x0c88)
+#define EXCALIBUR_INT_PRIORITY_3 (EXCALIBUR_BASE+0x0c8c)
+#define EXCALIBUR_INT_PRIORITY_4 (EXCALIBUR_BASE+0x0c90)
+#define EXCALIBUR_INT_PRIORITY_5 (EXCALIBUR_BASE+0x0c94)
+#define EXCALIBUR_INT_PRIORITY_6 (EXCALIBUR_BASE+0x0c98)
+#define EXCALIBUR_INT_PRIORITY_7 (EXCALIBUR_BASE+0x0c9c)
+#define EXCALIBUR_INT_PRIORITY_8 (EXCALIBUR_BASE+0x0ca0)
+#define EXCALIBUR_INT_PRIORITY_9 (EXCALIBUR_BASE+0x0ca4)
+#define EXCALIBUR_INT_PRIORITY_10 (EXCALIBUR_BASE+0x0ca8)
+#define EXCALIBUR_INT_PRIORITY_11 (EXCALIBUR_BASE+0x0cac)
+#define EXCALIBUR_INT_PRIORITY_12 (EXCALIBUR_BASE+0x0cb0)
+#define EXCALIBUR_INT_PRIORITY_13 (EXCALIBUR_BASE+0x0cb4)
+#define EXCALIBUR_INT_PRIORITY_14 (EXCALIBUR_BASE+0x0cb8)
+#define EXCALIBUR_INT_PRIORITY_15 (EXCALIBUR_BASE+0x0cbc)
+#define EXCALIBUR_INT_PRIORITY_16 (EXCALIBUR_BASE+0x0cc0)
+
+#define EXCALIBUR_INT_SOURCE_P0 0x00000001
+#define EXCALIBUR_INT_SOURCE_P1 0x00000002
+#define EXCALIBUR_INT_SOURCE_P2 0x00000004
+#define EXCALIBUR_INT_SOURCE_P3 0x00000008
+#define EXCALIBUR_INT_SOURCE_P4 0x00000010
+#define EXCALIBUR_INT_SOURCE_P5 0x00000020
+#define EXCALIBUR_INT_SOURCE_IP 0x00000040
+#define EXCALIBUR_INT_SOURCE_UA 0x00000080
+#define EXCALIBUR_INT_SOURCE_T0 0x00000100
+#define EXCALIBUR_INT_SOURCE_T1 0x00000200
+#define EXCALIBUR_INT_SOURCE_PS 0x00000400
+#define EXCALIBUR_INT_SOURCE_EE 0x00000800
+#define EXCALIBUR_INT_SOURCE_PE 0x00001000
+#define EXCALIBUR_INT_SOURCE_AE 0x00002000
+#define EXCALIBUR_INT_SOURCE_CT 0x00004000
+#define EXCALIBUR_INT_SOURCE_CR 0x00008000
+#define EXCALIBUR_INT_SOURCE_FC 0x00010000
+
+#define EXCALIBUR_INT_PRIORITY_FIQ 0x00000040
+#define EXCALIBUR_INT_PRIORITY_LVL_mask 0x0000003f
+
+//-----------------------------------------------------------------------------
+// PLD
+#define EXCALIBUR_PLD_BASE EXCALIBUR_PLD_PHYS_BASE
+
+#define EXCALIBUR_PLD_LEDS (EXCALIBUR_PLD_BASE + 0x0100)
+
+
+
+#endif // CYGONCE_EXCALIBUR_H
+//-----------------------------------------------------------------------------
+// end of excalibur.h
diff --git a/ecos/packages/hal/arm/arm9/excalibur/current/include/hal_diag.h b/ecos/packages/hal/arm/arm9/excalibur/current/include/hal_diag.h
new file mode 100644
index 0000000..6816ee6
--- /dev/null
+++ b/ecos/packages/hal/arm/arm9/excalibur/current/include/hal_diag.h
@@ -0,0 +1,76 @@
+#ifndef CYGONCE_HAL_DIAG_H
+#define CYGONCE_HAL_DIAG_H
+
+//=============================================================================
+//
+// hal_diag.h
+//
+// HAL Support for Kernel Diagnostic Routines
+//
+//=============================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jskov
+// Contributors: jskov
+// Date: 2001-08-06
+// 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>
+#include <cyg/hal/hal_if.h>
+
+//-----------------------------------------------------------------------------
+
+#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_)
+
+// Not the best place for this, but ...
+externC void hal_delay_us(cyg_int32 usecs);
+
+#define HAL_DELAY_US(n) hal_delay_us(n);
+
+#endif // CYGONCE_HAL_DIAG_H
+//-----------------------------------------------------------------------------
+// end of hal_diag.h
diff --git a/ecos/packages/hal/arm/arm9/excalibur/current/include/hal_platform_ints.h b/ecos/packages/hal/arm/arm9/excalibur/current/include/hal_platform_ints.h
new file mode 100644
index 0000000..fe0cc49
--- /dev/null
+++ b/ecos/packages/hal/arm/arm9/excalibur/current/include/hal_platform_ints.h
@@ -0,0 +1,99 @@
+#ifndef CYGONCE_HAL_PLATFORM_INTS_H
+#define CYGONCE_HAL_PLATFORM_INTS_H
+//==========================================================================
+//
+// hal_platform_ints.h
+//
+// HAL Interrupt and clock support
+//
+//==========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//==========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jskov
+// Contributors: jskov
+// Date: 2001-08-06
+// Purpose: Define Interrupt support
+// Description: The interrupt details for the Altera/Excalibur are defined here.
+// Usage:
+// #include <cyg/hal/hal_platform_ints.h>
+// ...
+//
+//
+//####DESCRIPTIONEND####
+//
+//==========================================================================
+
+#include <cyg/hal/excalibur.h>
+
+// These are interrupts on the Excalibur
+
+#define CYGNUM_HAL_INTERRUPT_PLD_0 0
+#define CYGNUM_HAL_INTERRUPT_PLD_1 1
+#define CYGNUM_HAL_INTERRUPT_PLD_2 2
+#define CYGNUM_HAL_INTERRUPT_PLD_3 3
+#define CYGNUM_HAL_INTERRUPT_PLD_4 4
+#define CYGNUM_HAL_INTERRUPT_PLD_5 5
+#define CYGNUM_HAL_INTERRUPT_EXTERNAL 6
+#define CYGNUM_HAL_INTERRUPT_UART 7
+#define CYGNUM_HAL_INTERRUPT_TIMER_0 8
+#define CYGNUM_HAL_INTERRUPT_TIMER_1 9
+#define CYGNUM_HAL_INTERRUPT_PLL 10
+#define CYGNUM_HAL_INTERRUPT_EBI_ERROR 11
+#define CYGNUM_HAL_INTERRUPT_PLD_ERROR 12
+#define CYGNUM_HAL_INTERRUPT_AHB_ERROR 13
+#define CYGNUM_HAL_INTERRUPT_COMMTX 14
+#define CYGNUM_HAL_INTERRUPT_COMMRX 15
+#define CYGNUM_HAL_INTERRUPT_FAST_COMMS 16
+
+#define CYGNUM_HAL_INTERRUPT_NONE -1
+
+#define CYGNUM_HAL_ISR_MIN 0
+#define CYGNUM_HAL_ISR_MAX (CYGNUM_HAL_INTERRUPT_FAST_COMMS)
+
+#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_TIMER_0
+
+//----------------------------------------------------------------------------
+// Reset.
+
+// Writing a bad value to the watchdog reload register causes a reset.
+#define HAL_PLATFORM_RESET() \
+ HAL_WRITE_UINT32(EXCALIBUR_WDOG_RELOAD, 0)
+
+#define HAL_PLATFORM_RESET_ENTRY EXCALIBUR_FLASH_PHYS_BASE
+
+#endif // CYGONCE_HAL_PLATFORM_INTS_H
diff --git a/ecos/packages/hal/arm/arm9/excalibur/current/include/hal_platform_setup.h b/ecos/packages/hal/arm/arm9/excalibur/current/include/hal_platform_setup.h
new file mode 100644
index 0000000..fc61cc5
--- /dev/null
+++ b/ecos/packages/hal/arm/arm9/excalibur/current/include/hal_platform_setup.h
@@ -0,0 +1,506 @@
+#ifndef CYGONCE_HAL_PLATFORM_SETUP_H
+#define CYGONCE_HAL_PLATFORM_SETUP_H
+//=============================================================================
+//
+// hal_platform_setup.h
+//
+// Platform specific support for HAL (assembly code)
+//
+//=============================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jskov
+// Contributors: jskov, gthomas
+// Date: 2001-08-06
+// Purpose: ARM9/EXCALIBUR platform specific support routines
+// Description:
+// Usage: #include <cyg/hal/hal_platform_setup.h>
+// Only used by "vectors.S"
+//
+//####DESCRIPTIONEND####
+//
+//=============================================================================
+
+#include <pkgconf/system.h> // System-wide configuration info
+#include CYGBLD_HAL_VARIANT_H // Variant specific configuration
+#include CYGBLD_HAL_PLATFORM_H // Platform specific configuration
+#include CYGHWR_MEMORY_LAYOUT_H
+#include <cyg/hal/hal_mmu.h> // MMU definitions
+#include <cyg/hal/excalibur.h> // Platform specific hardware definitions
+
+#define nDEBUG
+#define n_ALTERA_CACHEHACK // doesn't have any apparent effect
+
+#if defined(CYG_HAL_STARTUP_ROM) || defined(CYG_HAL_STARTUP_ROMRAM) || defined(CYG_HAL_STARTUP_REDBOOT)
+#define PLATFORM_SETUP1 _platform_setup1
+#define CYGHWR_HAL_ARM_HAS_MMU
+#define CYGSEM_HAL_ROM_RESET_USES_JUMP
+
+#define CYG_DEVICE_SERIAL_BAUD_DIV (CYGNUM_HAL_ARM_EXCALIBUR_PERIPHERAL_CLOCK/CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_BAUD/16)
+#define CYG_DEVICE_SERIAL_BAUD_LSB (CYG_DEVICE_SERIAL_BAUD_DIV&0xff)
+#define CYG_DEVICE_SERIAL_BAUD_MSB ((CYG_DEVICE_SERIAL_BAUD_DIV>>8)&0xff)
+
+// We need this here - can't rely on a translation table until MMU has
+// been initialized
+ .macro RAW_LED_MACRO x
+#ifdef DEBUG
+ ldr r0,=(EXCALIBUR_UART0_BASE+_UART_TD)
+ mov r1,#(\x + 0x41)
+ str r1,[r0]
+#endif
+ .endm
+
+// This macro represents the initial startup code for the platform
+ .macro _platform_setup1
+ // IO controller init
+ ldr r1,=EXCALIBUR_IOCR_BASE
+ ldr r2,=EXCALIBUR_IOCR_SDRAM_INIT
+ str r2,[r1,#_IOCR_SDRAM]
+ ldr r2,=EXCALIBUR_IOCR_EBI_INIT
+ str r2,[r1,#_IOCR_EBI]
+ ldr r2,=EXCALIBUR_IOCR_UART_INIT
+ str r2,[r1,#_IOCR_UART]
+
+ // Expansion bus init
+ ldr r1,=EXCALIBUR_EBI_CR
+ ldr r2,=EXCALIBUR_EBI_CR_INIT
+ str r2,[r1]
+
+#ifdef DEBUG
+ // Init UART for debug tracing
+ ldr r4,=EXCALIBUR_UART0_BASE
+ ldr r2,=(_UART_MC_8BIT | _UART_MC_1STOP | _UART_MC_PARITY_NONE)
+ str r2,[r4,#_UART_MC]
+ ldr r2,=CYG_DEVICE_SERIAL_BAUD_LSB
+ str r2,[r4,#_UART_DIV_LO]
+ ldr r2,=CYG_DEVICE_SERIAL_BAUD_MSB
+ str r2,[r4,#_UART_DIV_HI]
+ ldr r2,=(_UART_FCR_TC | _UART_FCR_RC | _UART_FCR_TX_THR_15 | _UART_FCR_RX_THR_1)
+ str r2,[r4,#_UART_FCR]
+#endif
+
+ // Setup the PLLs see the label PLL_ADDR below for the input
+ // clock frequency and the desired output frequencies of PLL1
+ // and PLL2 Load the value into K,M,N for PLL 1 and 2
+ adr r0,2f
+ ldmia r0,{r0-r11}
+ str r6,[r0]
+ str r7,[r1]
+ str r8,[r2]
+ str r9,[r3]
+ str r10,[r4]
+ str r11,[r5]
+
+ // Turn on the PLLs
+ ldr r3,=EXCALIBUR_CLK_BASE
+ ldr r1,=(0x1035 | _CLK_PLL1_CTRL_P)
+ str r1,[r3, #_CLK_PLL1_CTRL]
+ str r1,[r3, #_CLK_PLL2_CTRL]
+
+ // Ensure the PLLs are not in bypass
+ ldr r1,=(0x10 | _CLK_DERIVE_BP1 | _CLK_DERIVE_BP2)
+ str r1,[r3, #_CLK_DERIVE]
+ orr r1,r1,#0x300 /* Use PLL2 for AHB and for the SDRAM */
+ str r1,[r3, #_CLK_DERIVE]
+ ldr r2,=(_CLK_DERIVE_BP1 | _CLK_DERIVE_BP2)
+ bic r1,r1,r2
+ str r1,[r3, #_CLK_DERIVE]
+
+ // Poll waiting for the PLL's to lock and the bits to not be
+ // in bypass mode
+ ldr r2,=_CLK_STATUS_L2 /*_CLK_STATUS_L1 | _CLK_STATUS_L2*/
+1: ldr r1, [r3, #_CLK_STATUS]
+ and r1, r1, r2
+ cmp r1, r2
+ bne 1b
+
+ // Clear the interrupt caused by the change in lock status
+ ldr r2, =(_CLK_STATUS_C1 | _CLK_STATUS_C2)
+ str r2, [r3, #_CLK_STATUS]
+
+ b 3f
+
+ // PLL Registers Addresses
+2: .long EXCALIBUR_CLK_BASE+_CLK_PLL1_KCNT
+ .long EXCALIBUR_CLK_BASE+_CLK_PLL1_MCNT
+ .long EXCALIBUR_CLK_BASE+_CLK_PLL1_NCNT
+ .long EXCALIBUR_CLK_BASE+_CLK_PLL2_KCNT
+ .long EXCALIBUR_CLK_BASE+_CLK_PLL2_MCNT
+ .long EXCALIBUR_CLK_BASE+_CLK_PLL2_NCNT
+ // PLL Registers Values ensure this follows on from the
+ // addresses the code depends on it
+ .long 0x40000 // CLK_PLL1_KCNT_VAL = 1
+ .long 0x20101 // CLK_PLL1_MCNT_VAL = 2
+ .long 0x40000 // CLK_PLL1_NCNT_VAL = 1
+ .long 0x40000 // CLK_PLL2_KCNT_VAL = 1
+ .long 0x20303 // CLK_PLL2_MCNT_VAL = 6
+ .long 0x40000 // CLK_PLL2_NCNT_VAL = 1
+3:
+
+ RAW_LED_MACRO 0
+
+ // Jump to ROM
+ ldr r1,=(EXCALIBUR_MMAP_BASE + _MMAP_EBI0)
+ ldr r2,=_MMAP_EBI0_INIT
+ str r2,[r1]
+ ldr r1,=CYGMEM_REGION_rom
+ add pc,pc,r1
+ nop
+ nop
+
+ // Disable ROM mapping
+ ldr r1,=EXCALIBUR_BOOT_CR
+ ldr r2,=EXCALIBUR_BOOT_CR_BM
+ str r2,[r1]
+
+ RAW_LED_MACRO 1
+
+ // Disable and clear caches
+
+ mrc p15,0,r0,c1,c0,0
+ bic r0,r0,#0x1000 // disable ICache
+ bic r0,r0,#0x0007 // disable DCache,
+ // MMU and alignment faults
+ mcr p15,0,r0,c1,c0,0
+ nop
+ nop
+ nop
+ nop
+ nop
+ nop
+ nop
+ nop
+ mov r0,#0
+ mcr p15,0,r0,c7,c6,0 // clear data cache
+ mcr p15,0,r0,c7,c5,0 // clear instruction cache
+
+#if 0
+ mrc p15,0,r0,c15,c1,0 // disable streaming
+ orr r0,r0,#0x80
+ mcr p15,0,r0,c15,c1,0
+#endif
+
+ RAW_LED_MACRO 2
+
+ // Set memory mapping
+ ldr r1,=EXCALIBUR_MMAP_BASE
+ ldr r2,=_MMAP_REGISTERS_INIT
+ str r2,[r1,#_MMAP_REGISTERS]
+ ldr r2,=_MMAP_SRAM0_INIT
+ str r2,[r1,#_MMAP_SRAM0]
+ ldr r2,=_MMAP_SRAM1_INIT
+ str r2,[r1,#_MMAP_SRAM1]
+ ldr r2,=_MMAP_DPSRAM0_INIT
+ str r2,[r1,#_MMAP_DPSRAM0]
+ ldr r2,=_MMAP_DPSRAM1_INIT
+ str r2,[r1,#_MMAP_DPSRAM1]
+ ldr r2,=_MMAP_SDRAM0_INIT
+ str r2,[r1,#_MMAP_SDRAM0]
+ ldr r2,=_MMAP_SDRAM1_INIT
+ str r2,[r1,#_MMAP_SDRAM1]
+ ldr r2,=_MMAP_PLD0_INIT
+ str r2,[r1,#_MMAP_PLD0]
+ ldr r2,=_MMAP_PLD1_INIT
+ str r2,[r1,#_MMAP_PLD1]
+ ldr r2,=_MMAP_PLD2_INIT
+ str r2,[r1,#_MMAP_PLD2]
+ ldr r2,=_MMAP_PLD3_INIT
+ str r2,[r1,#_MMAP_PLD3]
+ ldr r2,=_MMAP_EBI1_INIT
+ str r2,[r1,#_MMAP_EBI1]
+ ldr r2,=_MMAP_EBI2_INIT
+ str r2,[r1,#_MMAP_EBI2]
+ ldr r2,=_MMAP_EBI3_INIT
+ str r2,[r1,#_MMAP_EBI3]
+
+ RAW_LED_MACRO 3
+
+ // FIXME: Disable MMAP registers?
+
+ RAW_LED_MACRO 4
+
+ // DPSRAM init
+ ldr r2,=EXCALIBUR_DPSRAM_BASE
+ ldr r1,=_DPSRAM0_LCR_INIT
+ str r1,[r2,#_DPSRAM0_LCR]
+ ldr r1,=_DPSRAM1_LCR_INIT
+ str r1,[r2,#_DPSRAM1_LCR]
+
+ RAW_LED_MACRO 5
+
+#ifdef _ALTERA_CACHEHACK
+ mrc p15,0,r0,c1,c0,0
+ orr r0,r0,#0x1000 // enable ICache
+ mcr p15,0,r0,c1,c0,0
+ nop
+ nop
+ nop
+ nop
+ nop
+ nop
+ nop
+ nop
+#endif // _ALTERA_CACHEHACK
+
+ // Setup the SDR
+
+ // All the clock values below assume the SDR is running @ 100 MHz
+
+ // 1. Wait for the PLL's to lock this was already done in
+ // Setup_plls Then wait another 100uS, which given we're
+ // running @ 150MHz is 15,000 clock cycles
+ mov r3,#0x3b00 // (15104)
+1: subs r3,r3,#1
+ bne 1b
+
+
+ // 2. Set up all the SDRAM Controllers configuration settings
+ // These are done using LDMIA's as it's more efficient, they're
+ // done in the order they appear in the datasheet with the
+ // exception of SDRAM_INIT which has to be written last
+
+ // Load the address of the first seven SDRAM registers and the
+ // contents
+ adr r0,SDRAM_REGS_ADDR
+ ldmia r0,{r0-r5}
+
+ adr r6,SDRAM_REGS_VALUE
+ ldmia r6,{r6-r11}
+ str r6,[r0]
+ str r7,[r1]
+ str r8,[r2]
+ str r9,[r3]
+ str r10,[r4]
+ str r11,[r5]
+
+ ldr r11,=EXCALIBUR_SDRAM_BASE
+ ldr r0,=EXCALIBUR_SDRAM_WIDTH
+ ldr r1,=(_SDRAM_WIDTH_W | _SDRAM_WIDTH_LK) /* 32 bit wide */
+ str r1,[r0]
+
+#ifdef _ALTERA_CACHEHACK
+ // OK we have a minor "feature/bug" in the chip which requires
+ // us to be a little clever now. The code between the labels
+ // Cache_Start and Cache_stop starts the SDRAM controller and
+ // issues the pre_charge command
+
+ // It must execute within one refresh period, so we must load
+ // this code and the code it calls (Issue_SDRAM_Command) into
+ // cache, as typical flashes have a cycle time of ~100nS If we
+ // are doing byte loads that's ~400ns per instruction. Depending
+ // upon the size of the DDR the refresh period can be as low as
+ // 7us (smallest we found).
+ adr r1,SDR_Cache_Start
+ adr r2,SDR_Cache_Stop
+ adr r3,Issue_SDRAM_Command
+ adr r4,End_Issue_SDRAM_Command
+
+SDR_Load_Code:
+ mcr p15,0,r1,c7,c13,1
+ add r1,r1,#32
+ cmp r1,r2
+ ble SDR_Load_Code
+
+SDR_Load_Code2:
+ mcr p15,0,r3,c7,c13,1
+ add r3,r3,#32
+ cmp r3,r4
+ ble SDR_Load_Code2
+#endif // _ALTERA_CACHEHACK
+
+ // setup the timer for later
+ ldr r4,=EXCALIBUR_TIMER0_LIMIT
+ mvn r5, #1
+ str r5, [r4]
+
+ ldr r4,=_SDRAM_INIT_PR
+ ldr r5,=_SDRAM_INIT_RF
+ ldr r6,=_SDRAM_INIT_LM
+ ldr r9,=EXCALIBUR_TIMER0_READ
+ ldr r10,=EXCALIBUR_TIMER0_CR
+
+ // Enable the controller by setting the EN bit in the
+ // SDRAM_INIT register
+ mov r1,#_SDRAM_INIT_EN
+SDR_Cache_Start:
+ str r1,[r11, #_SDRAM_INIT]
+
+ // Short delay
+ mov r3, #EXCALIBUR_TIMER_CR_S
+ str r3, [r10]
+ ldr r3, [r9]
+ add r3,r3,#200
+short_delay:
+ ldr r8, [r9]
+ cmp r3, r8
+ bgt short_delay
+ mov r3, #0
+ str r3, [r10]
+
+ // 4. Issue pre-charge all command
+ mov r1,r4
+ bl Issue_SDRAM_Command
+
+ // 5. Issue two Refresh Commands
+ mov r1, r5
+ mov r4,#2
+SDR_RF_Command:
+ bl Issue_SDRAM_Command
+ subs r4,r4,#1
+ bne SDR_RF_Command
+
+ // 6. Issue a load mode command with the DLL being Reset
+ mov r1, r6
+ bl Issue_SDRAM_Command
+
+SDR_Cache_Stop:
+ b 10f
+
+
+ //--------------------------------------------
+ // Issue a command from the SDRAM controller
+ // Assumes:
+ // r1 is the command to be issued
+ // r2 and r3 are trashed
+Issue_SDRAM_Command:
+ mov r2,#_SDRAM_INIT_EN
+ orr r2,r2,r1
+ str r2,[r11, #_SDRAM_INIT]
+
+ // OK chip bug, the busy bit does not work properly, so we need
+ // to insert a delay of 50 SDRAM clock cycles here NB Obviously
+ // this must change when either the SDRAM clock or the processor
+ // clock change
+ ldr r2,=(EXCALIBUR_CLK_BASE+_CLK_AHB1_COUNT)
+ ldr r3, [r2]
+ add r3,r3,#200 // CPU 150 MHz SDRAM 75 MHz
+clock_cycles:
+ ldr r8, [r2]
+ cmp r3, r8
+ bgt clock_cycles
+ mov pc, lr
+End_Issue_SDRAM_Command:
+
+
+ // SDRAM Register Addresses
+SDRAM_REGS_ADDR:
+ .long EXCALIBUR_SDRAM_BASE+_SDRAM_TIMING1
+ .long EXCALIBUR_SDRAM_BASE+_SDRAM_TIMING2
+ .long EXCALIBUR_SDRAM_BASE+_SDRAM_CONFIG
+ .long EXCALIBUR_SDRAM_BASE+_SDRAM_REFRESH
+ .long EXCALIBUR_SDRAM_BASE+_SDRAM_ADDR
+ .long EXCALIBUR_SDRAM_BASE+_SDRAM_MODE0
+ .long EXCALIBUR_SDRAM_BASE+_SDRAM_MODE1
+
+SDRAM_REGS_VALUE:
+ .long 0x00004892 /* SDRAM_TIMING1_VAL */
+ .long 0x000007b0 /* SDRAM_TIMING2_VAL */
+ .long 0x00000000 /* DDR */
+ .long 0x00000492 /* SDRAM_REFRESH_VAL */
+ .long 0x0000Ca80 /* SDRAM_ADDR_VAL */
+ .long 0x00000023 /* SDRAM_MODE0_VAL */
+ .long 0x00000000 /* SDRAM_MODE1_VAL */
+10:
+#ifdef _ALTERA_CACHEHACK
+ mrc p15,0,r0,c1,c0,0
+ bic r0,r0,#0x1000 // disable ICache
+ mcr p15,0,r0,c1,c0,0
+ nop
+ nop
+ nop
+ nop
+ nop
+ nop
+ nop
+ nop
+#endif // _ALTERA_CACHEHACK
+
+ RAW_LED_MACRO 6
+
+#if defined(CYG_HAL_STARTUP_ROMRAM) || defined(CYG_HAL_STARTUP_REDBOOT)
+ ldr r0,=__rom_vectors_lma // Relocate FLASH/ROM to SDRAM
+ ldr r1,=__rom_vectors_vma // ram base & length
+ ldr r2,=__ram_data_end
+20: ldr r3,[r0],#4
+ str r3,[r1],#4
+ cmp r1,r2
+ bne 20b
+ ldr r0,=30f
+ nop
+ mov pc,r0
+ nop
+30: nop
+#endif
+
+ RAW_LED_MACRO 7
+
+ // Set up a stack [for calling C code]
+ ldr r1,=__startup_stack
+ ldr r2,=EXCALIBUR_SDRAM_PHYS_BASE
+ orr sp,r1,r2
+
+ // Create MMU tables
+ bl hal_mmu_init
+
+ RAW_LED_MACRO 8
+
+ // 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:
+
+ RAW_LED_MACRO 9
+ .endm
+
+#else // defined(CYG_HAL_STARTUP_ROM) || defined(CYG_HAL_STARTUP_ROMRAM) || defined(CYG_HAL_STARTUP_REDBOOT)
+#define PLATFORM_SETUP1
+#endif
+
+//-----------------------------------------------------------------------------
+#ifdef DEBUG
+#define CYGHWR_LED_MACRO \
+ ldr r0,=(EXCALIBUR_UART0_BASE+_UART_TD); \
+ mov r1,#((\x) + 0x61); \
+ str r1,[r0];
+#endif
+
+//-----------------------------------------------------------------------------
+// end of hal_platform_setup.h
+#endif // CYGONCE_HAL_PLATFORM_SETUP_H
diff --git a/ecos/packages/hal/arm/arm9/excalibur/current/include/pkgconf/mlt_arm_arm9_excalibur_ram.h b/ecos/packages/hal/arm/arm9/excalibur/current/include/pkgconf/mlt_arm_arm9_excalibur_ram.h
new file mode 100644
index 0000000..4cf28a5
--- /dev/null
+++ b/ecos/packages/hal/arm/arm9/excalibur/current/include/pkgconf/mlt_arm_arm9_excalibur_ram.h
@@ -0,0 +1,17 @@
+// eCos memory layout - Tue Aug 07 11:15:51 2001
+
+// This is a generated file - do not edit
+
+#ifndef __ASSEMBLER__
+#include <cyg/infra/cyg_type.h>
+#include <stddef.h>
+
+#endif
+#define CYGMEM_REGION_ram (0)
+#define CYGMEM_REGION_ram_SIZE (0x8000000)
+#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 (0x8000000 - (size_t) CYG_LABEL_NAME (__heap1))
diff --git a/ecos/packages/hal/arm/arm9/excalibur/current/include/pkgconf/mlt_arm_arm9_excalibur_ram.ldi b/ecos/packages/hal/arm/arm9/excalibur/current/include/pkgconf/mlt_arm_arm9_excalibur_ram.ldi
new file mode 100644
index 0000000..642d2e9
--- /dev/null
+++ b/ecos/packages/hal/arm/arm9/excalibur/current/include/pkgconf/mlt_arm_arm9_excalibur_ram.ldi
@@ -0,0 +1,27 @@
+// eCos memory layout - Tue Aug 07 11:15:51 2001
+
+// This is a generated file - do not edit
+
+#include <cyg/infra/cyg_type.inc>
+
+MEMORY
+{
+ ram : ORIGIN = 0, LENGTH = 0x8000000
+}
+
+SECTIONS
+{
+ SECTIONS_BEGIN
+ SECTION_fixed_vectors (ram, 0x20, LMA_EQ_VMA)
+ SECTION_rom_vectors (ram, 0x30000, 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)
+ CYG_LABEL_DEFN(__heap1) = ALIGN (0x8);
+ SECTIONS_END
+}
diff --git a/ecos/packages/hal/arm/arm9/excalibur/current/include/pkgconf/mlt_arm_arm9_excalibur_ram.mlt b/ecos/packages/hal/arm/arm9/excalibur/current/include/pkgconf/mlt_arm_arm9_excalibur_ram.mlt
new file mode 100644
index 0000000..7735d65
--- /dev/null
+++ b/ecos/packages/hal/arm/arm9/excalibur/current/include/pkgconf/mlt_arm_arm9_excalibur_ram.mlt
@@ -0,0 +1,13 @@
+version 0
+region ram 0 8000000 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 30000 30000 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 1 0 1 heap1 heap1 !
+section heap1 0 8 0 0 0 0 0 0 !
diff --git a/ecos/packages/hal/arm/arm9/excalibur/current/include/pkgconf/mlt_arm_arm9_excalibur_redboot.h b/ecos/packages/hal/arm/arm9/excalibur/current/include/pkgconf/mlt_arm_arm9_excalibur_redboot.h
new file mode 100644
index 0000000..d781523
--- /dev/null
+++ b/ecos/packages/hal/arm/arm9/excalibur/current/include/pkgconf/mlt_arm_arm9_excalibur_redboot.h
@@ -0,0 +1,20 @@
+// eCos memory layout - Tue Apr 02 09:21:22 2002
+
+// This is a generated file - do not edit
+
+#ifndef __ASSEMBLER__
+#include <cyg/infra/cyg_type.h>
+#include <stddef.h>
+
+#endif
+#define CYGMEM_REGION_ram (0)
+#define CYGMEM_REGION_ram_SIZE (0x8000000)
+#define CYGMEM_REGION_ram_ATTR (CYGMEM_REGION_ATTR_R | CYGMEM_REGION_ATTR_W)
+#define CYGMEM_REGION_rom (0x40000000)
+#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 (0x7f80000 - (size_t) CYG_LABEL_NAME (__heap1))
diff --git a/ecos/packages/hal/arm/arm9/excalibur/current/include/pkgconf/mlt_arm_arm9_excalibur_redboot.ldi b/ecos/packages/hal/arm/arm9/excalibur/current/include/pkgconf/mlt_arm_arm9_excalibur_redboot.ldi
new file mode 100644
index 0000000..92383b1
--- /dev/null
+++ b/ecos/packages/hal/arm/arm9/excalibur/current/include/pkgconf/mlt_arm_arm9_excalibur_redboot.ldi
@@ -0,0 +1,28 @@
+// eCos memory layout - Tue Apr 02 09:21:22 2002
+
+// This is a generated file - do not edit
+
+#include <cyg/infra/cyg_type.inc>
+
+MEMORY
+{
+ ram : ORIGIN = 0, LENGTH = 0x8000000
+ rom : ORIGIN = 0x40000000, LENGTH = 0x100000
+}
+
+SECTIONS
+{
+ SECTIONS_BEGIN
+ SECTION_fixed_vectors (ram, 0x20, LMA_EQ_VMA)
+ CYG_LABEL_DEFN(__heap1) = 0x8000;
+ SECTION_rom_vectors (ram, 0x7f80000, AT (0x40000000))
+ SECTION_text (ram, ALIGN (0x4), FOLLOWING (.rom_vectors))
+ SECTION_fini (ram, ALIGN (0x4), FOLLOWING (.text))
+ SECTION_rodata (ram, ALIGN (0x4), FOLLOWING (.fini))
+ SECTION_rodata1 (ram, ALIGN (0x4), FOLLOWING (.rodata))
+ SECTION_fixup (ram, ALIGN (0x4), FOLLOWING (.rodata1))
+ SECTION_gcc_except_table (ram, ALIGN (0x4), FOLLOWING (.fixup))
+ SECTION_data (ram, ALIGN (0x1), FOLLOWING (.gcc_except_table))
+ SECTION_bss (ram, ALIGN (0x4), LMA_EQ_VMA)
+ SECTIONS_END
+}
diff --git a/ecos/packages/hal/arm/arm9/excalibur/current/include/pkgconf/mlt_arm_arm9_excalibur_redboot.mlt b/ecos/packages/hal/arm/arm9/excalibur/current/include/pkgconf/mlt_arm_arm9_excalibur_redboot.mlt
new file mode 100644
index 0000000..4e6e979
--- /dev/null
+++ b/ecos/packages/hal/arm/arm9/excalibur/current/include/pkgconf/mlt_arm_arm9_excalibur_redboot.mlt
@@ -0,0 +1,14 @@
+version 0
+region ram 0 8000000 0 !
+region rom 40000000 100000 1 !
+section fixed_vectors 0 1 0 1 1 0 1 0 20 20 !
+section heap1 0 1 0 0 1 0 1 0 8000 8000 !
+section rom_vectors 0 1 1 1 1 1 1 1 7f80000 40000000 text text !
+section text 0 4 1 1 0 1 0 1 fini fini !
+section fini 0 4 1 1 0 1 0 1 rodata rodata !
+section rodata 0 4 1 1 0 1 0 1 rodata1 rodata1 !
+section rodata1 0 4 1 1 0 1 0 1 fixup fixup !
+section fixup 0 4 1 1 0 1 0 1 gcc_except_table gcc_except_table !
+section gcc_except_table 0 4 1 1 0 1 0 1 data data !
+section data 0 1 1 1 0 1 0 0 bss !
+section bss 0 4 0 1 0 0 0 0 !
diff --git a/ecos/packages/hal/arm/arm9/excalibur/current/include/pkgconf/mlt_arm_arm9_excalibur_rom.h b/ecos/packages/hal/arm/arm9/excalibur/current/include/pkgconf/mlt_arm_arm9_excalibur_rom.h
new file mode 100644
index 0000000..8c269a7
--- /dev/null
+++ b/ecos/packages/hal/arm/arm9/excalibur/current/include/pkgconf/mlt_arm_arm9_excalibur_rom.h
@@ -0,0 +1,20 @@
+// eCos memory layout - Tue Aug 07 11:20:45 2001
+
+// This is a generated file - do not edit
+
+#ifndef __ASSEMBLER__
+#include <cyg/infra/cyg_type.h>
+#include <stddef.h>
+
+#endif
+#define CYGMEM_REGION_ram (0)
+#define CYGMEM_REGION_ram_SIZE (0x8000000)
+#define CYGMEM_REGION_ram_ATTR (CYGMEM_REGION_ATTR_R | CYGMEM_REGION_ATTR_W)
+#define CYGMEM_REGION_rom (0x40000000)
+#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 (0x8000000 - (size_t) CYG_LABEL_NAME (__heap1))
diff --git a/ecos/packages/hal/arm/arm9/excalibur/current/include/pkgconf/mlt_arm_arm9_excalibur_rom.ldi b/ecos/packages/hal/arm/arm9/excalibur/current/include/pkgconf/mlt_arm_arm9_excalibur_rom.ldi
new file mode 100644
index 0000000..34effb3
--- /dev/null
+++ b/ecos/packages/hal/arm/arm9/excalibur/current/include/pkgconf/mlt_arm_arm9_excalibur_rom.ldi
@@ -0,0 +1,28 @@
+// eCos memory layout - Tue Aug 07 11:20:45 2001
+
+// This is a generated file - do not edit
+
+#include <cyg/infra/cyg_type.inc>
+
+MEMORY
+{
+ ram : ORIGIN = 0, LENGTH = 0x8000000
+ rom : ORIGIN = 0x40000000, LENGTH = 0x100000
+}
+
+SECTIONS
+{
+ SECTIONS_BEGIN
+ SECTION_rom_vectors (rom, 0x40000000, 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)
+ CYG_LABEL_DEFN(__heap1) = ALIGN (0x8);
+ SECTIONS_END
+}
diff --git a/ecos/packages/hal/arm/arm9/excalibur/current/include/pkgconf/mlt_arm_arm9_excalibur_rom.mlt b/ecos/packages/hal/arm/arm9/excalibur/current/include/pkgconf/mlt_arm_arm9_excalibur_rom.mlt
new file mode 100644
index 0000000..32776aa
--- /dev/null
+++ b/ecos/packages/hal/arm/arm9/excalibur/current/include/pkgconf/mlt_arm_arm9_excalibur_rom.mlt
@@ -0,0 +1,14 @@
+version 0
+region ram 0 8000000 0 !
+region rom 40000000 100000 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 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 40000000 40000000 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 !
diff --git a/ecos/packages/hal/arm/arm9/excalibur/current/include/pkgconf/mlt_arm_arm9_excalibur_romram.h b/ecos/packages/hal/arm/arm9/excalibur/current/include/pkgconf/mlt_arm_arm9_excalibur_romram.h
new file mode 100755
index 0000000..cb7452b
--- /dev/null
+++ b/ecos/packages/hal/arm/arm9/excalibur/current/include/pkgconf/mlt_arm_arm9_excalibur_romram.h
@@ -0,0 +1,20 @@
+// eCos memory layout - Tue Aug 14 12:49:58 2001
+
+// This is a generated file - do not edit
+
+#ifndef __ASSEMBLER__
+#include <cyg/infra/cyg_type.h>
+#include <stddef.h>
+
+#endif
+#define CYGMEM_REGION_ram (0)
+#define CYGMEM_REGION_ram_SIZE (0x8000000)
+#define CYGMEM_REGION_ram_ATTR (CYGMEM_REGION_ATTR_R | CYGMEM_REGION_ATTR_W)
+#define CYGMEM_REGION_rom (0x40000000)
+#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 (0x8000000 - (size_t) CYG_LABEL_NAME (__heap1))
diff --git a/ecos/packages/hal/arm/arm9/excalibur/current/include/pkgconf/mlt_arm_arm9_excalibur_romram.ldi b/ecos/packages/hal/arm/arm9/excalibur/current/include/pkgconf/mlt_arm_arm9_excalibur_romram.ldi
new file mode 100755
index 0000000..b6c096f
--- /dev/null
+++ b/ecos/packages/hal/arm/arm9/excalibur/current/include/pkgconf/mlt_arm_arm9_excalibur_romram.ldi
@@ -0,0 +1,28 @@
+// eCos memory layout - Tue Aug 14 12:49:58 2001
+
+// This is a generated file - do not edit
+
+#include <cyg/infra/cyg_type.inc>
+
+MEMORY
+{
+ ram : ORIGIN = 0, LENGTH = 0x8000000
+ rom : ORIGIN = 0x40000000, LENGTH = 0x100000
+}
+
+SECTIONS
+{
+ SECTIONS_BEGIN
+ SECTION_fixed_vectors (ram, 0x20, LMA_EQ_VMA)
+ SECTION_rom_vectors (ram, 0x8000, AT (0x40000000))
+ SECTION_text (ram, ALIGN (0x4), FOLLOWING (.rom_vectors))
+ SECTION_fini (ram, ALIGN (0x4), FOLLOWING (.text))
+ SECTION_rodata (ram, ALIGN (0x4), FOLLOWING (.fini))
+ SECTION_rodata1 (ram, ALIGN (0x4), FOLLOWING (.rodata))
+ SECTION_fixup (ram, ALIGN (0x4), FOLLOWING (.rodata1))
+ SECTION_gcc_except_table (ram, ALIGN (0x4), FOLLOWING (.fixup))
+ SECTION_data (ram, ALIGN (0x1), FOLLOWING (.gcc_except_table))
+ SECTION_bss (ram, ALIGN (0x4), LMA_EQ_VMA)
+ CYG_LABEL_DEFN(__heap1) = ALIGN (0x8);
+ SECTIONS_END
+}
diff --git a/ecos/packages/hal/arm/arm9/excalibur/current/include/pkgconf/mlt_arm_arm9_excalibur_romram.mlt b/ecos/packages/hal/arm/arm9/excalibur/current/include/pkgconf/mlt_arm_arm9_excalibur_romram.mlt
new file mode 100755
index 0000000..e6ac50c
--- /dev/null
+++ b/ecos/packages/hal/arm/arm9/excalibur/current/include/pkgconf/mlt_arm_arm9_excalibur_romram.mlt
@@ -0,0 +1,14 @@
+version 0
+region ram 0 8000000 0 !
+region rom 40000000 100000 1 !
+section fixed_vectors 0 1 0 1 1 0 1 0 20 20 !
+section rom_vectors 0 1 1 1 1 1 1 1 8000 40000000 text text !
+section text 0 4 1 1 0 1 0 1 fini fini !
+section fini 0 4 1 1 0 1 0 1 rodata rodata !
+section rodata 0 4 1 1 0 1 0 1 rodata1 rodata1 !
+section rodata1 0 4 1 1 0 1 0 1 fixup fixup !
+section fixup 0 4 1 1 0 1 0 1 gcc_except_table gcc_except_table !
+section gcc_except_table 0 4 1 1 0 1 0 1 data data !
+section data 0 1 1 1 0 1 0 0 bss !
+section bss 0 4 0 1 0 1 0 1 heap1 heap1 !
+section heap1 0 8 0 0 0 0 0 0 !
diff --git a/ecos/packages/hal/arm/arm9/excalibur/current/include/plf_io.h b/ecos/packages/hal/arm/arm9/excalibur/current/include/plf_io.h
new file mode 100644
index 0000000..6361482
--- /dev/null
+++ b/ecos/packages/hal/arm/arm9/excalibur/current/include/plf_io.h
@@ -0,0 +1,61 @@
+#ifndef CYGONCE_HAL_ARM_ARM9_EXCALIBUR_PLF_IO_H
+#define CYGONCE_HAL_ARM_ARM9_EXCALIBUR_PLF_IO_H
+
+/*=============================================================================
+//
+// plf_io.h
+//
+// Platform specific support (register layout, etc)
+//
+//=============================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jskov
+// Contributors: jskov
+// Date: 2002-01-28
+// Purpose: Platform specific support routines
+// Description:
+// Usage: #include <cyg/hal/hal_io.h>
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================*/
+
+#include <cyg/hal/excalibur.h>
+
+#define CYGARC_PHYSICAL_ADDRESS(x) (x)
+
+#endif // CYGONCE_HAL_ARM_ARM9_EXCALIBUR_PLF_IO_H
+// EOF plf_io.h
diff --git a/ecos/packages/hal/arm/arm9/excalibur/current/include/plf_stub.h b/ecos/packages/hal/arm/arm9/excalibur/current/include/plf_stub.h
new file mode 100644
index 0000000..f226b0e
--- /dev/null
+++ b/ecos/packages/hal/arm/arm9/excalibur/current/include/plf_stub.h
@@ -0,0 +1,83 @@
+#ifndef CYGONCE_HAL_PLF_STUB_H
+#define CYGONCE_HAL_PLF_STUB_H
+
+//=============================================================================
+//
+// plf_stub.h
+//
+// Platform header for GDB stub support.
+//
+//=============================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jskov
+// Contributors:jskov, gthomas
+// Date: 2001-08-06
+// Purpose: Platform HAL stub support for Altera/Excalibur 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/arm_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.
+#define HAL_STUB_PLATFORM_INIT() CYG_EMPTY_STATEMENT
+
+#endif // ifdef CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS
+//-----------------------------------------------------------------------------
+#endif // CYGONCE_HAL_PLF_STUB_H
+// End of plf_stub.h
diff --git a/ecos/packages/hal/arm/arm9/excalibur/current/misc/redboot_RAM.ecm b/ecos/packages/hal/arm/arm9/excalibur/current/misc/redboot_RAM.ecm
new file mode 100644
index 0000000..bcd5d41
--- /dev/null
+++ b/ecos/packages/hal/arm/arm9/excalibur/current/misc/redboot_RAM.ecm
@@ -0,0 +1,60 @@
+cdl_savefile_version 1;
+cdl_savefile_command cdl_savefile_version {};
+cdl_savefile_command cdl_savefile_command {};
+cdl_savefile_command cdl_configuration { description hardware template package };
+cdl_savefile_command cdl_package { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_component { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_option { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_interface { value_source user_value wizard_value inferred_value };
+
+cdl_configuration eCos {
+ description "" ;
+ hardware excalibur_arm9 ;
+ template redboot ;
+ package -hardware CYGPKG_HAL_ARM current ;
+ package -hardware CYGPKG_HAL_ARM_ARM9 current ;
+ package -hardware CYGPKG_HAL_ARM_ARM9_EXCALIBUR current ;
+ package -hardware CYGPKG_DEVS_FLASH_INTEL_28FXXX current ;
+ package -hardware CYGPKG_DEVS_FLASH_ARM_EXCALIBUR current ;
+ package -template CYGPKG_HAL current ;
+ package -template CYGPKG_INFRA current ;
+ package -template CYGPKG_REDBOOT current ;
+ package CYGPKG_IO_FLASH current ;
+ package CYGPKG_ISOINFRA current ;
+ package CYGPKG_MEMALLOC current ;
+ package CYGPKG_COMPRESS_ZLIB current ;
+};
+
+cdl_option CYGNUM_HAL_COMMON_INTERRUPTS_STACK_SIZE {
+ user_value 6144
+};
+
+cdl_option CYGDBG_HAL_COMMON_INTERRUPTS_SAVE_MINIMUM_CONTEXT {
+ user_value 0
+};
+
+cdl_option CYGDBG_HAL_COMMON_CONTEXT_SAVE_MINIMUM {
+ inferred_value 0
+};
+
+cdl_option CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS {
+ inferred_value 1
+};
+
+cdl_option CYGSEM_HAL_USE_ROM_MONITOR {
+ inferred_value 0 0
+};
+
+cdl_option CYGPKG_HAL_ARM_ARM9_ARM922T {
+ inferred_value 1
+};
+
+cdl_component CYGBLD_BUILD_REDBOOT {
+ user_value 1
+};
+
+cdl_option CYGHWR_DEVS_FLASH_INTEL_28F320C3 {
+ inferred_value 1
+};
+
+
diff --git a/ecos/packages/hal/arm/arm9/excalibur/current/misc/redboot_REDBOOT.ecm b/ecos/packages/hal/arm/arm9/excalibur/current/misc/redboot_REDBOOT.ecm
new file mode 100644
index 0000000..559f14d
--- /dev/null
+++ b/ecos/packages/hal/arm/arm9/excalibur/current/misc/redboot_REDBOOT.ecm
@@ -0,0 +1,72 @@
+cdl_savefile_version 1;
+cdl_savefile_command cdl_savefile_version {};
+cdl_savefile_command cdl_savefile_command {};
+cdl_savefile_command cdl_configuration { description hardware template package };
+cdl_savefile_command cdl_package { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_component { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_option { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_interface { value_source user_value wizard_value inferred_value };
+
+cdl_configuration eCos {
+ description "" ;
+ hardware excalibur_arm9 ;
+ template redboot ;
+ package -hardware CYGPKG_HAL_ARM current ;
+ package -hardware CYGPKG_HAL_ARM_ARM9 current ;
+ package -hardware CYGPKG_HAL_ARM_ARM9_EXCALIBUR current ;
+ package -hardware CYGPKG_DEVS_FLASH_INTEL_28FXXX current ;
+ package -hardware CYGPKG_DEVS_FLASH_ARM_EXCALIBUR current ;
+ package -template CYGPKG_HAL current ;
+ package -template CYGPKG_INFRA current ;
+ package -template CYGPKG_REDBOOT current ;
+ package CYGPKG_IO_FLASH current ;
+ package CYGPKG_ISOINFRA current ;
+ package CYGPKG_MEMALLOC current ;
+ package CYGPKG_COMPRESS_ZLIB current ;
+};
+
+cdl_option CYGNUM_HAL_COMMON_INTERRUPTS_STACK_SIZE {
+ user_value 6144
+};
+
+cdl_option CYGDBG_HAL_COMMON_INTERRUPTS_SAVE_MINIMUM_CONTEXT {
+ user_value 0
+};
+
+cdl_option CYGDBG_HAL_COMMON_CONTEXT_SAVE_MINIMUM {
+ inferred_value 0
+};
+
+cdl_option CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS {
+ inferred_value 1
+};
+
+cdl_option CYGSEM_HAL_ROM_MONITOR {
+ inferred_value 1
+};
+
+cdl_option CYGSEM_HAL_USE_ROM_MONITOR {
+ inferred_value 0 0
+};
+
+cdl_option CYGPKG_HAL_ARM_ARM9_ARM922T {
+ inferred_value 1
+};
+
+cdl_component CYG_HAL_STARTUP {
+ user_value REDBOOT
+};
+
+cdl_component CYGBLD_BUILD_REDBOOT {
+ user_value 1
+};
+
+cdl_option CYGSEM_REDBOOT_BSP_SYSCALLS {
+ user_value 1
+};
+
+cdl_option CYGHWR_DEVS_FLASH_INTEL_28F320C3 {
+ inferred_value 1
+};
+
+
diff --git a/ecos/packages/hal/arm/arm9/excalibur/current/misc/redboot_ROMRAM.ecm b/ecos/packages/hal/arm/arm9/excalibur/current/misc/redboot_ROMRAM.ecm
new file mode 100644
index 0000000..b0be922
--- /dev/null
+++ b/ecos/packages/hal/arm/arm9/excalibur/current/misc/redboot_ROMRAM.ecm
@@ -0,0 +1,72 @@
+cdl_savefile_version 1;
+cdl_savefile_command cdl_savefile_version {};
+cdl_savefile_command cdl_savefile_command {};
+cdl_savefile_command cdl_configuration { description hardware template package };
+cdl_savefile_command cdl_package { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_component { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_option { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_interface { value_source user_value wizard_value inferred_value };
+
+cdl_configuration eCos {
+ description "" ;
+ hardware excalibur_arm9 ;
+ template redboot ;
+ package -hardware CYGPKG_HAL_ARM current ;
+ package -hardware CYGPKG_HAL_ARM_ARM9 current ;
+ package -hardware CYGPKG_HAL_ARM_ARM9_EXCALIBUR current ;
+ package -hardware CYGPKG_DEVS_FLASH_INTEL_28FXXX current ;
+ package -hardware CYGPKG_DEVS_FLASH_ARM_EXCALIBUR current ;
+ package -template CYGPKG_HAL current ;
+ package -template CYGPKG_INFRA current ;
+ package -template CYGPKG_REDBOOT current ;
+ package CYGPKG_IO_FLASH current ;
+ package CYGPKG_ISOINFRA current ;
+ package CYGPKG_MEMALLOC current ;
+ package CYGPKG_COMPRESS_ZLIB current ;
+};
+
+cdl_option CYGNUM_HAL_COMMON_INTERRUPTS_STACK_SIZE {
+ user_value 6144
+};
+
+cdl_option CYGDBG_HAL_COMMON_INTERRUPTS_SAVE_MINIMUM_CONTEXT {
+ user_value 0
+};
+
+cdl_option CYGDBG_HAL_COMMON_CONTEXT_SAVE_MINIMUM {
+ inferred_value 0
+};
+
+cdl_option CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS {
+ inferred_value 1
+};
+
+cdl_option CYGSEM_HAL_ROM_MONITOR {
+ inferred_value 1
+};
+
+cdl_option CYGSEM_HAL_USE_ROM_MONITOR {
+ inferred_value 0 0
+};
+
+cdl_option CYGPKG_HAL_ARM_ARM9_ARM922T {
+ inferred_value 1
+};
+
+cdl_component CYG_HAL_STARTUP {
+ user_value ROMRAM
+};
+
+cdl_component CYGBLD_BUILD_REDBOOT {
+ user_value 1
+};
+
+cdl_option CYGSEM_REDBOOT_BSP_SYSCALLS {
+ user_value 1
+};
+
+cdl_option CYGHWR_DEVS_FLASH_INTEL_28F320C3 {
+ inferred_value 1
+};
+
+
diff --git a/ecos/packages/hal/arm/arm9/excalibur/current/src/excalibur_misc.c b/ecos/packages/hal/arm/arm9/excalibur/current/src/excalibur_misc.c
new file mode 100644
index 0000000..41f55f3
--- /dev/null
+++ b/ecos/packages/hal/arm/arm9/excalibur/current/src/excalibur_misc.c
@@ -0,0 +1,397 @@
+//==========================================================================
+//
+// excalibur_misc.c
+//
+// HAL misc board support code for ARM9/EXCALIBUR
+//
+//==========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//==========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): gthomas
+// Contributors: gthomas, jskov
+// Date: 2001-08-06
+// 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/excalibur.h> // Platform specifics
+
+#include <cyg/infra/diag.h> // diag_printf
+
+#include <string.h> // memset
+
+// -------------------------------------------------------------------------
+// MMU initialization:
+//
+// These structures are laid down in memory to define the translation
+// table.
+//
+
+// ARM Translation Table Base Bit Masks
+#define ARM_TRANSLATION_TABLE_MASK 0xFFFFC000
+
+// ARM 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.imp = 1; \
+ 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 = EXCALIBUR_SDRAM_PHYS_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);
+
+ // Memory layout. This is set up in hal_platform_setup.h with
+ // definitions from excalibur.h
+ //
+ // SDRAM0_BASE_ADDRESS: 0x00000000, 64M
+ // SDRAM1_BASE_ADDRESS: 0x04000000, 64M
+ // SPSRAM0_BASE_ADDRESS: 0x08000000, 128k
+ // SPSRAM1_BASE_ADDRESS: 0x08020000, 128k
+ // DPSRAM0_BASE_ADDRESS: 0x08040000, 64k
+ // DPSRAM1_BASE_ADDRESS: 0x08050000, 64k
+ // PLD1_BASE_ADDRESS: 0x0f000000, 16k
+ // EBI0_BASE_ADDRESS: 0x40000000, 16M
+ // REGISTERS_BASE_ADDRESS: 0x7fffc000, 16k
+ // PLD0_BASE_ADDRESS: 0x80000000, 128k
+
+ // Actual Virtual Size Attributes Function
+ // Base Base MB cached? buffered? access permissions
+ // xxx00000 xxx00000
+ X_ARM_MMU_SECTION(0x000, 0x000, 128, ARM_CACHEABLE, ARM_BUFFERABLE, ARM_ACCESS_PERM_RW_RW); // SDRAM (& LCD registers?)
+ X_ARM_MMU_SECTION(0x080, 0x080, 1, ARM_CACHEABLE, ARM_BUFFERABLE, ARM_ACCESS_PERM_RW_RW); // SRAM regions
+ X_ARM_MMU_SECTION(0x0f0, 0x0f0, 1, ARM_UNCACHEABLE, ARM_UNBUFFERABLE, ARM_ACCESS_PERM_RW_RW); // PLD1
+ X_ARM_MMU_SECTION(0x400, 0x400, 16, ARM_UNCACHEABLE, ARM_BUFFERABLE, ARM_ACCESS_PERM_RW_RW); // Boot flash ROMspace CS0
+ X_ARM_MMU_SECTION(0x800, 0x800, 1, ARM_UNCACHEABLE, ARM_UNBUFFERABLE, ARM_ACCESS_PERM_RW_RW); // PLD0/2/3
+ X_ARM_MMU_SECTION(0x7ff, 0x7ff, 1, ARM_UNCACHEABLE, ARM_UNBUFFERABLE, ARM_ACCESS_PERM_RW_RW); // EXCALIBUR registers
+}
+
+//----------------------------------------------------------------------------
+// Platform specific initialization
+
+void
+plf_hardware_init(void)
+{
+ // Disable PLD interrupts
+ HAL_WRITE_UINT32(EXCALIBUR_INT_MASK_CLEAR,
+ EXCALIBUR_INT_SOURCE_P0 | EXCALIBUR_INT_SOURCE_P1 |
+ EXCALIBUR_INT_SOURCE_P2 | EXCALIBUR_INT_SOURCE_P3 |
+ EXCALIBUR_INT_SOURCE_P4 | EXCALIBUR_INT_SOURCE_P5);
+ // Make PLD0 generate IRQ
+ HAL_WRITE_UINT32(EXCALIBUR_INT_PRIORITY_0, 0);
+}
+
+// -------------------------------------------------------------------------
+void
+hal_clock_initialize(cyg_uint32 period)
+{
+ cyg_uint32 cr;
+
+ HAL_WRITE_UINT32(EXCALIBUR_TIMER0_CR, 0);
+ HAL_WRITE_UINT32(EXCALIBUR_TIMER0_PRE, CYGNUM_HAL_ARM_EXCALIBUR_TIMER_PRESCALE - 1);
+ HAL_WRITE_UINT32(EXCALIBUR_TIMER0_LIMIT, period);
+ cr = EXCALIBUR_TIMER_CR_MODE_HEARBEAT | EXCALIBUR_TIMER_CR_IE;
+ HAL_WRITE_UINT32(EXCALIBUR_TIMER0_CR, cr);
+ HAL_WRITE_UINT32(EXCALIBUR_TIMER0_CR, cr | EXCALIBUR_TIMER_CR_S);
+
+ // Unmask timer 0 interrupt
+ HAL_INTERRUPT_CONFIGURE( CYGNUM_HAL_INTERRUPT_RTC, 1, 1 );
+ HAL_INTERRUPT_UNMASK( CYGNUM_HAL_INTERRUPT_RTC );
+}
+
+// This routine is called during a clock interrupt.
+void
+hal_clock_reset(cyg_uint32 vector, cyg_uint32 period)
+{
+ cyg_uint32 cr;
+
+ // Clear pending interrupt bit
+ HAL_READ_UINT32(EXCALIBUR_TIMER0_CR, cr);
+ cr |= EXCALIBUR_TIMER_CR_CI;
+ HAL_WRITE_UINT32(EXCALIBUR_TIMER0_CR, cr);
+}
+
+// Read the current value of the clock, returning the number of hardware
+// "ticks" that have occurred (i.e. how far away the current value is from
+// the start)
+
+void
+hal_clock_read(cyg_uint32 *pvalue)
+{
+ cyg_uint32 ctr;
+
+ HAL_READ_UINT32(EXCALIBUR_TIMER0_READ, ctr);
+ *pvalue = ctr;
+}
+
+//
+// Delay for some number of micro-seconds
+//
+void
+hal_delay_us(cyg_int32 usecs)
+{
+ // Use timer 2
+ cyg_uint32 cr;
+ // Divide by 1000000 in two steps to preserve precision.
+ cyg_uint32 wait_clocks = ((CYGNUM_HAL_ARM_EXCALIBUR_PERIPHERAL_CLOCK/100000)*usecs)/10;
+
+ HAL_WRITE_UINT32(EXCALIBUR_TIMER1_CR, 0);
+ HAL_WRITE_UINT32(EXCALIBUR_TIMER1_PRE, 0);
+ HAL_WRITE_UINT32(EXCALIBUR_TIMER1_LIMIT, wait_clocks);
+ cr = EXCALIBUR_TIMER_CR_MODE_ONE_SHOT|EXCALIBUR_TIMER_CR_CI;
+ HAL_WRITE_UINT32(EXCALIBUR_TIMER1_CR, cr);
+ HAL_WRITE_UINT32(EXCALIBUR_TIMER1_CR, cr | EXCALIBUR_TIMER_CR_S);
+
+ // wait for start bit to clear
+ do {
+ HAL_READ_UINT32(EXCALIBUR_TIMER1_CR, cr);
+ } while ((EXCALIBUR_TIMER_CR_S & cr) != 0);
+
+ //clear interrupt flag
+ HAL_WRITE_UINT32(EXCALIBUR_TIMER1_CR, 0);
+}
+
+// -------------------------------------------------------------------------
+
+// This routine is called to respond to a hardware interrupt (IRQ). It
+// should interrogate the hardware and return the IRQ vector number.
+int
+hal_IRQ_handler(void)
+{
+ int vec;
+ cyg_uint32 isr;
+
+ HAL_READ_UINT32(EXCALIBUR_INT_REQUEST_STATUS, isr);
+ for (vec = CYGNUM_HAL_INTERRUPT_PLD_0;
+ vec <= CYGNUM_HAL_INTERRUPT_FAST_COMMS; vec++) {
+ if (isr & (1<<vec)) {
+ return vec;
+ }
+ }
+
+ return CYGNUM_HAL_INTERRUPT_NONE;
+}
+
+//----------------------------------------------------------------------------
+// Interrupt control
+//
+void
+hal_interrupt_mask(int vector)
+{
+ CYG_ASSERT(vector <= CYGNUM_HAL_ISR_MAX &&
+ vector >= CYGNUM_HAL_ISR_MIN , "Invalid vector");
+
+ HAL_WRITE_UINT32(EXCALIBUR_INT_MASK_CLEAR, 1<<vector);
+}
+
+void
+hal_interrupt_unmask(int vector)
+{
+ CYG_ASSERT(vector <= CYGNUM_HAL_ISR_MAX &&
+ vector >= CYGNUM_HAL_ISR_MIN , "Invalid vector");
+
+ HAL_WRITE_UINT32(EXCALIBUR_INT_MASK_SET, 1<<vector);
+}
+
+void
+hal_interrupt_acknowledge(int vector)
+{
+ CYG_ASSERT(vector <= CYGNUM_HAL_ISR_MAX &&
+ vector >= CYGNUM_HAL_ISR_MIN , "Invalid vector");
+
+}
+
+void
+hal_interrupt_configure(int vector, int level, int up)
+{
+ CYG_ASSERT(vector <= CYGNUM_HAL_ISR_MAX &&
+ vector >= CYGNUM_HAL_ISR_MIN, "Invalid vector");
+ CYG_ASSERT(level || up, "Cannot do falling edge");
+
+}
+
+void
+hal_interrupt_set_level(int vector, int level)
+{
+ cyg_uint32 reg;
+ CYG_ASSERT(vector <= CYGNUM_HAL_ISR_MAX &&
+ vector >= CYGNUM_HAL_ISR_MIN, "Invalid vector");
+ CYG_ASSERT(level <= 63 && level >= 0, "Invalid level");
+
+ HAL_READ_UINT32(EXCALIBUR_INT_PRIORITY_0+4*vector, reg);
+ reg &= ~EXCALIBUR_INT_PRIORITY_LVL_mask;
+ reg |= (level & EXCALIBUR_INT_PRIORITY_LVL_mask);
+ HAL_WRITE_UINT32(EXCALIBUR_INT_PRIORITY_0+4*vector, reg);
+}
+
+#include CYGHWR_MEMORY_LAYOUT_H
+typedef void code_fun(void);
+void excalibur_program_new_stack(void *func)
+{
+ register CYG_ADDRESS stack_ptr asm("sp");
+ register CYG_ADDRESS old_stack asm("r4");
+ register code_fun *new_func asm("r0");
+ old_stack = stack_ptr;
+ stack_ptr = CYGMEM_REGION_ram + CYGMEM_REGION_ram_SIZE - sizeof(CYG_ADDRESS);
+ new_func = (code_fun*)func;
+ new_func();
+ stack_ptr = old_stack;
+ return;
+}
diff --git a/ecos/packages/hal/arm/arm9/excalibur/current/src/hal_diag.c b/ecos/packages/hal/arm/arm9/excalibur/current/src/hal_diag.c
new file mode 100644
index 0000000..80602b1
--- /dev/null
+++ b/ecos/packages/hal/arm/arm9/excalibur/current/src/hal_diag.c
@@ -0,0 +1,334 @@
+//=============================================================================
+//
+// hal_diag.c
+//
+// HAL diagnostic output code
+//
+//=============================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jskov
+// Contributors:jskov
+// Date: 2001-08-06
+// Purpose: HAL diagnostic output
+// Description: Implementations of HAL diagnostic output support.
+//
+//####DESCRIPTIONEND####
+//
+//=============================================================================
+
+#include <pkgconf/hal.h>
+#include CYGBLD_HAL_VARIANT_H // Variant specific configuration
+#include CYGBLD_HAL_PLATFORM_H // Platform specific configuration
+
+#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> // basic machine info
+#include <cyg/hal/hal_intr.h> // interrupt macros
+#include <cyg/hal/hal_io.h> // IO macros
+#include <cyg/hal/hal_diag.h>
+#include <cyg/hal/drv_api.h>
+#include <cyg/hal/hal_if.h> // interface API
+#include <cyg/hal/hal_misc.h> // Helper functions
+#include <cyg/hal/excalibur.h> // platform definitions
+
+//-----------------------------------------------------------------------------
+
+#define CYG_DEVICE_SERIAL_BAUD_DIV (CYGNUM_HAL_ARM_EXCALIBUR_PERIPHERAL_CLOCK/CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_BAUD/16)
+#define CYG_DEVICE_SERIAL_BAUD_LSB (CYG_DEVICE_SERIAL_BAUD_DIV&0xff)
+#define CYG_DEVICE_SERIAL_BAUD_MSB ((CYG_DEVICE_SERIAL_BAUD_DIV>>8)&0xff)
+
+//-----------------------------------------------------------------------------
+typedef struct {
+ cyg_uint32 base;
+ cyg_int32 msec_timeout;
+ int isr_vector;
+} channel_data_t;
+
+//-----------------------------------------------------------------------------
+
+static void
+cyg_hal_plf_serial_init_channel(void* __ch_data)
+{
+ cyg_uint32 base = ((channel_data_t*)__ch_data)->base;
+
+ // 8-1-no parity.
+ HAL_WRITE_UINT32(base+_UART_MC, _UART_MC_8BIT | _UART_MC_1STOP | _UART_MC_PARITY_NONE);
+
+ HAL_WRITE_UINT32(base+_UART_DIV_LO, CYG_DEVICE_SERIAL_BAUD_LSB);
+ HAL_WRITE_UINT32(base+_UART_DIV_HI, CYG_DEVICE_SERIAL_BAUD_MSB);
+ HAL_WRITE_UINT32(base+_UART_FCR, (_UART_FCR_TC | _UART_FCR_RC |
+ _UART_FCR_TX_THR_15 | _UART_FCR_RX_THR_1)); // clear & enableFIFO
+
+ // enable RX interrupts - otherwise ISR cannot be polled. Actual
+ // interrupt control of serial happens via INT_MASK
+ HAL_WRITE_UINT32(base+_UART_IES, _UART_INTS_RE);
+}
+
+void
+cyg_hal_plf_serial_putc(void *__ch_data, char c)
+{
+ cyg_uint32 base = ((channel_data_t*)__ch_data)->base;
+ cyg_uint32 tsr;
+ CYGARC_HAL_SAVE_GP();
+
+ do {
+ HAL_READ_UINT32(base+_UART_TSR, tsr);
+ // Wait for TXI flag to be set - or for the register to be
+ // zero (works around a HW bug it seems).
+ } while (tsr && (tsr & _UART_TSR_TXI) == 0);
+
+ HAL_WRITE_UINT32(base+_UART_TD, (cyg_uint32)(unsigned char)c);
+
+ CYGARC_HAL_RESTORE_GP();
+}
+
+static cyg_bool
+cyg_hal_plf_serial_getc_nonblock(void* __ch_data, cyg_uint8* ch)
+{
+ cyg_uint32 base = ((channel_data_t*)__ch_data)->base;
+ cyg_uint32 rsr, isr, data;
+
+ HAL_READ_UINT32(base+_UART_ISR, isr);
+ if (0 == (isr & _UART_INTS_RI)) {
+ HAL_READ_UINT32(base+_UART_RSR, rsr);
+ if (0 == rsr)
+ return false;
+ }
+
+ HAL_READ_UINT32(base+_UART_RD, data);
+ *ch = (cyg_uint8)(data & 0xff);
+
+ // Read RSR to clear interrupt, and RDS to clear errors
+ HAL_READ_UINT32(base+_UART_RSR, data);
+ HAL_READ_UINT32(base+_UART_RDS, data);
+
+ 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;
+}
+
+static channel_data_t excalibur_ser_channels[1] = {
+ { (cyg_uint32)EXCALIBUR_UART0_BASE, 1000, CYGNUM_HAL_INTERRUPT_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;
+ int ret = 0;
+ CYGARC_HAL_SAVE_GP();
+
+ switch (__func) {
+ case __COMMCTL_IRQ_ENABLE:
+ irq_state = 1;
+
+ // Need to keep it enabled to allow polling using ISR
+ //HAL_WRITE_UINT32(chan->base+_UART_IES, _UART_INTS_RE);
+
+ HAL_INTERRUPT_UNMASK(chan->isr_vector);
+ break;
+ case __COMMCTL_IRQ_DISABLE:
+ ret = irq_state;
+ irq_state = 0;
+
+ // Need to keep it enabled to allow polling using ISR
+ // HAL_WRITE_UINT32(chan->base+_UART_IEC, _UART_INTS_RE);
+
+ 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;
+ channel_data_t* chan = (channel_data_t*)__ch_data;
+ cyg_uint32 isr, ch, rsr;
+ char c;
+ CYGARC_HAL_SAVE_GP();
+
+ cyg_drv_interrupt_acknowledge(chan->isr_vector);
+
+ *__ctrlc = 0;
+ HAL_READ_UINT32(chan->base+_UART_ISR, isr);
+ HAL_READ_UINT32(chan->base+_UART_RSR, rsr);
+
+ // Again, check both RI and the RX FIFO count.
+ if ( ((isr & _UART_INTS_RI) != 0 ) || (rsr) ) {
+
+ HAL_READ_UINT32(chan->base+_UART_RD, ch);
+
+ c = (char)ch;
+ 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(excalibur_ser_channels[0].isr_vector);
+
+ // Init channels
+ cyg_hal_plf_serial_init_channel(&excalibur_ser_channels[0]);
+
+ // 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, &excalibur_ser_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);
+
+ // 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();
+}
+
+//-----------------------------------------------------------------------------
+// LEDs
+void
+hal_diag_led(int n)
+{
+}
+
+//-----------------------------------------------------------------------------
+// End of hal_diag.c
diff --git a/ecos/packages/hal/arm/arm9/innovator/current/ChangeLog b/ecos/packages/hal/arm/arm9/innovator/current/ChangeLog
new file mode 100644
index 0000000..b79e13f
--- /dev/null
+++ b/ecos/packages/hal/arm/arm9/innovator/current/ChangeLog
@@ -0,0 +1,89 @@
+2009-02-03 Bart Veer <bartv@ecoscentric.com>
+
+ * include/pkgconf/mlt_arm_arm9_innovator_ram.ldi: do not put
+ anything into ROM for a RAM startup.
+
+2009-01-31 Bart Veer <bartv@ecoscentric.com>
+
+ * cdl/hal_arm_arm9_innovator.cdl: update compiler flags for gcc 4.x
+
+2009-01-24 Bart Veer <bartv@ecoscentric.com>
+
+ * cdl/hal_arm_arm9_innovator.cdl: switch from arm-elf-gcc to
+ arm-eabi-gcc.
+
+2003-12-05 Andrew Lunn <andrew.lunn@ascom.ch>
+
+ * include/hal_diag.h: hal_delay_us() is a C function.
+
+2003-09-21 Gary Thomas <gary@mlbassoc.com>
+
+ * misc/redboot_RAM.ecm:
+ * misc/redboot_ROM.ecm:
+ * misc/redboot_SRAM.ecm: Adjust for changes in RedBoot
+ template - DNS now must be enabled manually.
+
+2003-02-12 Patrick Doyle <wpd@delcomsys.com>
+
+ * src/innovator_misc.c: Replaced explicit prototype of memset with
+ #include <string.h>.
+
+2003-02-12 Patrick Doyle <wpd@delcomsys.com>
+
+ * misc/redboot_SRAM.ecm
+ * misc/redboot_ROM.ecm
+ * misc/redboot_RAM.ecm: Added ethernet packages to OMAP Innovator
+ port.
+
+ * misc/redboot_SRAM.ecm
+ * include/hal_platform_setup.h
+ * cdl/hal_arm_arm9_innovator.cdl: Changed DCSPRI_HAL_ROM_MLT to
+ CYGPRI_HAL_ROM_MLT.
+
+
+2003-02-05 Patrick Doyle <wpd@delcomsys.com>
+
+ * cdl/hal_arm_arm9_innovator.cdl
+ * include/hal_diag.h
+ * include/hal_platform_ints.h
+ * include/hal_platform_setup.h
+ * include/innovator.h
+ * include/pkgconf/mlt_arm_arm9_innovator_ram.h
+ * include/pkgconf/mlt_arm_arm9_innovator_ram.ldi
+ * include/pkgconf/mlt_arm_arm9_innovator_rom.h
+ * include/pkgconf/mlt_arm_arm9_innovator_rom.ldi
+ * include/pkgconf/mlt_arm_arm9_innovator_sram.h
+ * include/pkgconf/mlt_arm_arm9_innovator_sram.ldi
+ * include/plf_io.h
+ * include/plf_stub.h
+ * misc/redboot_RAM.ecm
+ * misc/redboot_ROM.ecm
+ * misc/redboot_SRAM.ecm
+ * src/hal_diag.c
+ * src/innovator_misc.c
+ * src/redboot_cmds.c: New package - support for Texas Instruments
+ Innovator board.
+
+//===========================================================================
+// ####GPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 2 or (at your option) any
+// later version.
+//
+// This program is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the
+// Free Software Foundation, Inc., 51 Franklin Street,
+// Fifth Floor, Boston, MA 02110-1301, USA.
+// -------------------------------------------
+// ####GPLCOPYRIGHTEND####
+//===========================================================================
diff --git a/ecos/packages/hal/arm/arm9/innovator/current/cdl/hal_arm_arm9_innovator.cdl b/ecos/packages/hal/arm/arm9/innovator/current/cdl/hal_arm_arm9_innovator.cdl
new file mode 100644
index 0000000..50ce96c
--- /dev/null
+++ b/ecos/packages/hal/arm/arm9/innovator/current/cdl/hal_arm_arm9_innovator.cdl
@@ -0,0 +1,429 @@
+# ====================================================================
+#
+# hal_arm_arm9_innovator.cdl
+#
+# TI Innovator platform HAL package configuration data
+#
+# ====================================================================
+## ####ECOSGPLCOPYRIGHTBEGIN####
+## -------------------------------------------
+## This file is part of eCos, the Embedded Configurable Operating System.
+## Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+##
+## eCos is free software; you can redistribute it and/or modify it under
+## the terms of the GNU General Public License as published by the Free
+## Software Foundation; either version 2 or (at your option) any later
+## version.
+##
+## eCos is distributed in the hope that it will be useful, but WITHOUT
+## ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+## FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+## for more details.
+##
+## You should have received a copy of the GNU General Public License
+## along with eCos; if not, write to the Free Software Foundation, Inc.,
+## 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+##
+## As a special exception, if other files instantiate templates or use
+## macros or inline functions from this file, or you compile this file
+## and link it with other works to produce a work based on this file,
+## this file does not by itself cause the resulting work to be covered by
+## the GNU General Public License. However the source code for this file
+## must still be made available in accordance with section (3) of the GNU
+## General Public License v2.
+##
+## This exception does not invalidate any other reasons why a work based
+## on this file might be covered by the GNU General Public License.
+## -------------------------------------------
+## ####ECOSGPLCOPYRIGHTEND####
+# ====================================================================
+######DESCRIPTIONBEGIN####
+#
+# Author(s): Patrick Doyle <wpd@delcomsys.com>
+# Contributors: Patrick Doyle <wpd@delcomsys.com>
+# Date: 2002-11-22
+#
+#####DESCRIPTIONEND####
+#
+# ====================================================================
+cdl_package CYGPKG_HAL_ARM_ARM9_INNOVATOR {
+ display "Innovator"
+ parent CYGPKG_HAL_ARM_ARM9
+ requires CYGPKG_HAL_ARM_ARM9_ARM925T
+ hardware
+ include_dir cyg/hal
+ define_header hal_arm_arm9_innovator.h
+ description "
+ This HAL platform package provides generic
+ support for the OMAP Innovator platform."
+
+ compile innovator_misc.c hal_diag.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_arm.h>"
+ puts $::cdl_system_header "#define CYGBLD_HAL_VARIANT_H <pkgconf/hal_arm_arm9.h>"
+ puts $::cdl_system_header "#define CYGBLD_HAL_PLATFORM_H <pkgconf/hal_arm_arm9_innovator.h>"
+ puts $::cdl_header "#define HAL_PLATFORM_CPU \"ARM9\""
+ puts $::cdl_header "#define HAL_PLATFORM_BOARD \"Innovator\""
+ puts $::cdl_header "#define HAL_PLATFORM_EXTRA \"\""
+ puts $::cdl_header "#define HAL_ARCH_PROGRAM_NEW_STACK innovator_program_new_stack"
+ puts $::cdl_header "#define HAL_PLATFORM_MACHINE_TYPE 234"
+
+ }
+
+ 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 Innovator 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 RedBoot.
+ Select 'ROM' when building a stand-alone application
+ which will be put into ROM, or for the special cases of
+ building the eCos GDB stubs or RedBoot."
+
+ cdl_option CYGPRI_HAL_ROM_MLT {
+ display "Memory Layout for ROM Startup"
+ flavor data
+ legal_values {"FLASH" "SRAM"}
+ default_value {"FLASH"}
+ description "
+ This option selects which memory layout file should be
+ used when configuring the Innovator for ROM startup.
+ The FLASH option selects the memory layout for an image
+ stored at the beginning of the FLASH. It should be
+ used almost all of the time.
+
+ The SRAM option is used to place the ROM image in
+ internal SRAM. It may be used in order to test startup
+ code without burning the code into FLASH first." }
+ }
+
+ # Both PLLs are in bypass mode on startup.
+ # FIXME: Add proper configury
+ cdl_option CYGNUM_HAL_ARM_INNOVATOR_CPU_CLOCK {
+ display "CPU bus speed"
+ flavor data
+ calculated { 60000000 }
+ description "
+ This is the actual CPU operating frequency. Someday you
+ might be able to change this here."
+ }
+
+# cdl_option CYGNUM_HAL_ARM_INNOVATOR_PERIPHERAL_CLOCK {
+# display "Peripheral bus speed"
+# flavor data
+# calculated { CYGNUM_HAL_ARM_INNOVATOR_CPU_CLOCK / 2 }
+# description "
+# This is the peripheral bus operating frequency
+# (Traffic Controller)."
+# }
+#
+# cdl_option CYGNUM_HAL_ARM_INNOVATOR_TIMER_PRESCALE {
+# display "Timer prescale"
+# flavor data
+# legal_values 0 to 255
+# default_value 16
+# description "
+# This is the prescale value used on the clock used to drive
+# the kernel counter. Note that some parts of the code may fail
+# if this is changed due to over/underflows of expressions."
+# }
+#
+# # Real-time clock/counter specifics
+# cdl_component CYGNUM_HAL_RTC_CONSTANTS {
+# display "Real-time clock constants. WARNING -- the Real Time Clock is not fully supported (if at all) yet."
+# flavor none
+# no_define
+#
+# 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 1
+## calculated (CYGNUM_HAL_ARM_INNOVATOR_PERIPHERAL_CLOCK/(CYGNUM_HAL_ARM_INNOVATOR_TIMER_PRESCALE*CYGNUM_HAL_RTC_DENOMINATOR))-1
+# }
+# }
+#
+# cdl_option CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_BAUD {
+# display "Diagnostic serial port baud rate"
+# flavor data
+# legal_values 9600 19200 38400 57600 115200
+# default_value 115200
+# 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 57600 115200
+# default_value 115200
+# 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 1
+ }
+
+ cdl_option CYGNUM_HAL_VIRTUAL_VECTOR_DEBUG_CHANNEL {
+ display "Debug serial port"
+ active_if CYGPRI_HAL_VIRTUAL_VECTOR_DEBUG_CHANNEL_CONFIGURABLE
+ flavor data
+ legal_values 0 to CYGNUM_HAL_VIRTUAL_VECTOR_COMM_CHANNELS-1
+ default_value 0
+ description "
+ The Innovator has two serial ports. When we add support
+ for the second one, you will be able to choose which one is
+ used to connect to a host running GDB."
+ }
+
+ 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 0
+ }
+
+ cdl_option CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL {
+ display "Diagnostic serial port"
+ active_if CYGPRI_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_CONFIGURABLE
+ flavor data
+ legal_values 0 to CYGNUM_HAL_VIRTUAL_VECTOR_COMM_CHANNELS-1
+ default_value CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_DEFAULT
+ description "
+ The Innovator has two serial ports. When we add support
+ for the second one, you will be able to choose which one is
+ 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-eabi"}
+ 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 { CYGBLD_GLOBAL_WARNFLAGS . CYGBLD_ARCH_CFLAGS .
+ "-mcpu=arm9 -g -O2 -ffunction-sections -fdata-sections -fno-rtti -fno-exceptions " }
+ 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 { CYGBLD_ARCH_LDFLAGS . "-mcpu=arm9 --no-target-default-spec -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.srec : <PREFIX>/bin/gdb_module.img
+ $(OBJCOPY) --remove-section=.fixed_vectors $< gdb_module.tmp
+ }
+ }
+ }
+
+ cdl_component CYGPKG_HAL_ARM_ARM9_INNOVATOR_OPTIONS {
+ display "Innovator 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_ARM9_INNOVATOR_CFLAGS_ADD {
+ display "Additional compiler flags"
+ flavor data
+ no_define
+ default_value { "" }
+ description "
+ This option modifies the set of compiler flags for
+ building the Innovator HAL. These flags are
+ used in addition to the set of global flags."
+ }
+
+ cdl_option CYGPKG_HAL_ARM_ARM9_INNOVATOR_CFLAGS_REMOVE {
+ display "Suppressed compiler flags"
+ flavor data
+ no_define
+ default_value { "" }
+ description "
+ This option modifies the set of compiler flags for
+ building the Innovator HAL. These flags are
+ removed from the set of global flags if present."
+ }
+
+ cdl_option CYGPKG_HAL_ARM_ARM9_INNOVATOR_TESTS {
+ display "Innovator tests"
+ flavor data
+ no_define
+ calculated { "" }
+ description "
+ This option specifies the set of tests for the Innovator."
+ }
+ }
+
+ cdl_component CYGHWR_MEMORY_LAYOUT {
+ display "Memory layout"
+ flavor data
+ no_define
+ calculated { CYG_HAL_STARTUP == "RAM" ? "arm_arm9_innovator_ram" : \
+ "arm_arm9_innovator_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_arm9_innovator_ram.ldi>" : \
+ CYGPRI_HAL_ROM_MLT == "FLASH" ? "<pkgconf/mlt_arm_arm9_innovator_rom.ldi>" : \
+ "<pkgconf/mlt_arm_arm9_innovator_sram.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_arm9_innovator_ram.h>" : \
+ CYGPRI_HAL_ROM_MLT == "FLASH" ? "<pkgconf/mlt_arm_arm9_innovator_rom.h>" : \
+ "<pkgconf/mlt_arm_arm9_innovator_sram.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 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 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.
+ \"GDB_stubs\" provides support when GDB stubs are included in
+ the ROM monitor or boot ROM."
+ }
+
+ cdl_component CYGPKG_REDBOOT_HAL_OPTIONS {
+ display "Redboot HAL options"
+ flavor none
+ no_define
+ parent CYGPKG_REDBOOT
+ active_if CYGPKG_REDBOOT
+ description "
+ This option lists the target's requirements for a valid Redboot
+ configuration."
+
+ # RedBoot details
+ requires { CYGHWR_REDBOOT_ARM_LINUX_EXEC_ADDRESS_DEFAULT == 0x10008000 }
+ define_proc {
+ puts $::cdl_header "#define CYGHWR_REDBOOT_ARM_TRAMPOLINE_ADDRESS 0x00001f00"
+ }
+
+ 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 the various relocated SREC images needed
+ for flash updating."
+
+ compile -library=libextras.a redboot_cmds.c
+
+ make -priority 325 {
+ <PREFIX>/bin/redboot.bin : <PREFIX>/bin/redboot.elf
+ $(OBJCOPY) --strip-debug $< $(@:.bin=.img)
+ $(OBJCOPY) -O srec $< $(@:.bin=.srec)
+ $(OBJCOPY) -O binary $< $@
+ }
+ }
+ }
+
+}
diff --git a/ecos/packages/hal/arm/arm9/innovator/current/include/hal_diag.h b/ecos/packages/hal/arm/arm9/innovator/current/include/hal_diag.h
new file mode 100644
index 0000000..a5dbdd7
--- /dev/null
+++ b/ecos/packages/hal/arm/arm9/innovator/current/include/hal_diag.h
@@ -0,0 +1,76 @@
+#ifndef CYGONCE_HAL_DIAG_H
+#define CYGONCE_HAL_DIAG_H
+
+//=============================================================================
+//
+// hal_diag.h
+//
+// HAL Support for Kernel Diagnostic Routines
+//
+//=============================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): Patrick Doyle <wpd@delcomsys.com>
+// Contributors: Patrick Doyle <wpd@delcomsys.com>
+// Date: 2002-12-01
+// 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>
+#include <cyg/hal/hal_if.h>
+
+//-----------------------------------------------------------------------------
+
+#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_)
+
+// Not the best place for this, but ...
+externC void hal_delay_us(cyg_int32 usecs);
+
+#define HAL_DELAY_US(n) hal_delay_us(n);
+
+#endif // CYGONCE_HAL_DIAG_H
+//-----------------------------------------------------------------------------
+// end of hal_diag.h
diff --git a/ecos/packages/hal/arm/arm9/innovator/current/include/hal_platform_ints.h b/ecos/packages/hal/arm/arm9/innovator/current/include/hal_platform_ints.h
new file mode 100644
index 0000000..7c0f096
--- /dev/null
+++ b/ecos/packages/hal/arm/arm9/innovator/current/include/hal_platform_ints.h
@@ -0,0 +1,88 @@
+#ifndef CYGONCE_HAL_PLATFORM_INTS_H
+#define CYGONCE_HAL_PLATFORM_INTS_H
+//==========================================================================
+//
+// hal_platform_ints.h
+//
+// HAL Interrupt and clock support
+//
+//==========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//==========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): Patrick Doyle <wpd@delcomsys.com>
+// Contributors: Patrick Doyle <wpd@delcomsys.com>
+// Date: 2002-12-01
+// Purpose: Define Interrupt support
+// Description: The interrupt details for the Innovator will someday
+// be defined here.
+// Usage:
+// #include <cyg/hal/hal_platform_ints.h>
+// ...
+//
+//
+//####DESCRIPTIONEND####
+//
+//==========================================================================
+
+#include <cyg/hal/innovator.h>
+
+// These are interrupts on the Innovator
+// TBD
+#define CYGNUM_HAL_ISR_COUNT 1 // No interrupt support defined yet.
+
+// Placeholders
+#define CYGNUM_HAL_ISR_MIN 0
+#define CYGNUM_HAL_ISR_MAX 0
+// The vector used by the Real time clock -- fake, for now
+#define CYGNUM_HAL_INTERRUPT_RTC 0
+
+
+//----------------------------------------------------------------------------
+// Reset.
+
+// Enable the watchdog timer to force a reset
+#define HAL_PLATFORM_RESET() CYG_MACRO_START \
+ cyg_uint16 tmp; \
+ HAL_READ_UINT16(CLKM_ARM_IDLECT2, tmp); \
+ HAL_WRITE_UINT16(CLKM_ARM_IDLECT2, tmp | 1); \
+ HAL_DELAY_US(4); \
+ HAL_WRITE_UINT16(WATCHDOG_TIMER_MODE, 0x80F5); \
+ HAL_DELAY_US(4); \
+ HAL_WRITE_UINT16(WATCHDOG_TIMER_MODE, 0x80F5); \
+CYG_MACRO_END
+
+#define HAL_PLATFORM_RESET_ENTRY 0x10000000
+
+#endif // CYGONCE_HAL_PLATFORM_INTS_H
diff --git a/ecos/packages/hal/arm/arm9/innovator/current/include/hal_platform_setup.h b/ecos/packages/hal/arm/arm9/innovator/current/include/hal_platform_setup.h
new file mode 100644
index 0000000..495612a
--- /dev/null
+++ b/ecos/packages/hal/arm/arm9/innovator/current/include/hal_platform_setup.h
@@ -0,0 +1,981 @@
+#ifndef CYGONCE_HAL_PLATFORM_SETUP_H
+#define CYGONCE_HAL_PLATFORM_SETUP_H
+//=============================================================================
+//
+// hal_platform_setup.h
+//
+// Platform specific support for HAL (assembly code)
+//
+//=============================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): Patrick Doyle <wpd@delcomsys.com>
+// Contributors: Patrick Doyle <wpd@delcomsys.com>
+// Date: 2002-12-02
+// Purpose: Innovator platform specific support routines
+// Description:
+// Usage: #include <cyg/hal/hal_platform_setup.h>
+// Only used by "vectors.S"
+//
+//####DESCRIPTIONEND####
+//
+//=============================================================================
+
+#include <pkgconf/system.h> // System-wide configuration info
+#include CYGBLD_HAL_VARIANT_H // Variant specific configuration
+#include CYGBLD_HAL_PLATFORM_H // Platform specific configuration
+#include CYGHWR_MEMORY_LAYOUT_H
+#include <cyg/hal/hal_mmu.h> // MMU definitions
+#include <cyg/hal/innovator.h> // Platform specific hardware definitions
+
+#define nDEBUG
+
+#if defined(CYG_HAL_STARTUP_ROM)
+#define PLATFORM_SETUP1 _platform_setup1
+#define CYGHWR_HAL_ARM_HAS_MMU
+#define CYGSEM_HAL_ROM_RESET_USES_JUMP
+
+// This is a trick. If the first two words of SRAM are 0x12345678 and
+// 0x87654321, then, then the reset routine in FLASH branches to the
+// third location in SRAM. This allows us to test startup code (which may
+// be broken) without writing it to FLASH and rendering the board useless.
+// (Well, not permanently useless. Just useless until we track down an
+// emulator and reload a working copy of RedBoot.) The nifty thing with
+// the innovator is that, if you press and hold the reset button for
+// 2 seconds it triggers a power-on-reset. The contents of the internal
+// SRAM are maintained across such a reset. Thus, we can write our
+// new test version of RedBoot to SRAM (configured with CYGPRI_HAL_ROM_MLT
+// set to SRAM) (more on that later), press and hold the reset button,
+// and see if the new startup code works.
+//
+// Now for some notes about this
+// 1) I am guessing about the "2 seconds" part. If you press and hold
+// the reset button long enough, the FPGA triggers a power-on-reset.
+//
+// 2) In order to test the SRAM version of RedBoot, import the
+// redboot_SRAM.ecm file (instead of redboot_RAM.ecm or redboot_ROM.ecm)
+// and build RedBoot. If you already have RedBoot in FLASH, you can
+// use that to load redboot.bin with a base address of 0x20000000.
+// You will be prompted with a "Gee, I don't think 0x20000000 is
+// a valid address in RAM, are you sure you want to do this?" message.
+// You should answer "Yes". Here is the command I use:
+//
+// RedBoot> load -v -r -b 0x20000000 redboot.bin
+//
+// You can also use the "sloader" application (loaded via
+// Code Composer Studio) to to load the S-Record file for the SRAM
+// version of RedBoot.
+//
+// 3) I may have seen a case where the code tested fine in SRAM, but didn't
+// work when I placed it in FLASH. But other things could have been
+// going on.
+
+#ifdef CYGPRI_HAL_ROM_MLT_SRAM
+#define PLATFORM_PREAMBLE _platform_preamble
+ .macro _platform_preamble
+ .long 0x12345678
+ .long 0x87654321
+ .endm
+#endif
+
+
+#if defined(DEBUG) && !defined(CYGPRI_HAL_ROM_MLT_SRAM)
+// Don't enable these macro when we are executing from SRAM because
+// they overwrite SRAM.
+
+#define FAKE_LED_MACRO_SETUP \
+ ldr r0,=0x20000000; \
+ ldr r1,[r0]; \
+ subs r2,r1,#0x20000000; \
+ movlo r1,#0x20000000; \
+ ldr r4,=0x2002fff8; \
+ subs r2,r1,r4; \
+ movhi r1,#0x20000000; \
+ bic r1,r1,#0x3; \
+ add r1,r1,#4; \
+ str r1, [r0];
+
+#define FAKE_LED_MACRO(n) \
+ ldr r11,=0x20000000; \
+ ldr r11,[r11]; \
+ ldr r12,=n; \
+ str r12,[r11]
+#else
+#define FAKE_LED_MACRO_SETUP
+#define FAKE_LED_MACRO(n)
+#endif
+
+// This macro represents the initial startup code for the platform
+ .macro _platform_setup1
+ // See if we should branch to an application stored in
+ // internal SRAM. We do this by checking for a magic cookie
+ // in the first two locations of SRAM and jumping to the
+ // third location in SRAM if we find it (after zeroing those
+ // two locations so we don't create an infinite reboot loop).
+ ldr r0,=0x12345678
+ ldr r1,=0x87654321
+ ldr r2,=0x20000000
+ ldr r3,[r2]
+ cmp r3,r0
+ ldr r3,[r2,#4]
+ cmpeq r3,r1
+ ldr r3,=0
+ streq r3,[r2],#4
+ streq r3,[r2],#4
+ moveq pc,r2
+
+ FAKE_LED_MACRO_SETUP
+ FAKE_LED_MACRO(1)
+
+ //#define PLATFORM_SETUP_FROM_CCS_GEL_SCRIPT
+#ifdef PLATFORM_SETUP_FROM_CCS_GEL_SCRIPT
+ // This is the version of _platform_setup adapted from the contents
+ // of the GEL script shipped with Code Composer Studio
+
+ // This is all stolen from the ipaq setup
+
+ // Make sure MMU is OFF
+ mov r0,#INTERNAL_SRAM_BASE // Force cache writeback by reloading
+ add r2,r0,#0x2000 // cache from the internal memory bank
+123: ldr r1,[r0],#16
+ cmp r0, r2
+ bne 123b
+ mov r0,#0
+ mov r1,#0x0070 // MMU Control System bit
+ mcr p15,0,r0,c7,c7,0 // Flush data and instruction cache
+ mcr p15,0,r0,c8,c7,0 // Flush ID TLBs
+ mcr p15,0,r0,c9,c0,0 // Flush Read-Buffer
+ mcr p15,0,r0,c7,c10,4 // Drain write buffer
+ mcr p15,0,r0,c13,c0,0 // Disable virtual ID mapping
+ mcr p15,0,r1,c1,c0,0 // Write MMU control register
+ nop; nop; nop; nop
+
+ mov r0,#(CPSR_IRQ_DISABLE|CPSR_FIQ_DISABLE|CPSR_SUPERVISOR_MODE)
+ msr cpsr,r0
+
+ // The rest of this is stolen from "init.c" in the sloader program.
+ // FIXME -- add configury
+ // Set up DPLL1:
+ // (reserved) 00
+ // IOB = 1 Initialize on break 1
+ // (reserved) 0
+ // PLL_MULT = 5 60 MHz clock 0010 1
+ // PLL_DIV = 00: CLKOUT = CLKREF 00
+ // PLL_ENABLE = 1 Enable DPLL 1
+ // BYPASS_DIV = 00: CLKOUT = CLKREF 00
+ // (read only) 00
+ //
+ // 0x2290: 0010 0010 1001 0000
+ //
+
+ ldr r1,=DPLL1_BASE
+ ldr r2,=0x2290
+ str r2,[r1,#_DPLL_CTL_REG]
+ /* Wait for lock */
+1: ldr r2,[r1,#_DPLL_CTL_REG]
+ and r2,r2,#1
+ cmp r2,#1
+ bne 1b
+
+ /* memif_init() */
+ /* Configure ARM9 Memory Interface */
+ /* Set up CS0 for memory & bus size of 16 bits, asynchronous read,
+ * 3 wait states, and a divide by 2 clock.
+ * Set up CS1, CS2, & CS3 the same way, except with 1 wait state.
+ */
+/*
+ TC_EMIFS_CS0_CONFIG = 0x00003339;
+ TC_EMIFS_CS1_CONFIG = 0x00001139;
+ TC_EMIFS_CS2_CONFIG = 0x00001139;
+ TC_EMIFS_CS3_CONFIG = 0x00001139;
+*/
+ ldr r1,=TC_BASE
+ ldr r2,=0x3339
+ str r2,[r1,#0x10]
+ ldr r2,=0x1149
+ str r2,[r1,#0x14]
+ ldr r2,=0x1139
+ str r2,[r1,#0x18]
+ str r2,[r1,#0x1c]
+
+ /* Configure the SDRAM */
+ /* EMIFF (nCS4) configuration */
+ /* TC_EMIFF_SDRAM_CONFIG = 0x000100F4; */
+ /* MRS (nCS4) initialization */
+ /* TC_EMIFF_MRS = 0x00000037; */
+ ldr r2,=0x000100F4
+ str r2,[r1,#0x20]
+ ldr r2,=0x00000037
+ str r2,[r1,#0x24]
+
+ /* Disable ARM9 Watchdog Timer by writing the special sequence to it */
+/*
+ WATCHDOG_TIMER_MODE = 0x00F5;
+ WATCHDOG_TIMER_MODE = 0x00A0;
+*/
+ ldr r1,=WATCHDOG_BASE
+ ldr r2,=0xF5
+ strh r2,[r1,#0x08]
+ ldr r2,=0xA0
+ strh r2,[r1,#0x08]
+ /* Select the 12MHz oscillator for the frequency reference for the
+ * internal timers. I am doing this today (12/19/02) to simplify my
+ * life -- This way, I don't care what the clock rate of the core is.
+ */
+ ldr r1,=CLKM_BASE
+ ldrh r2,[r1,#0x00] // ARM_CKCTL
+ bic r2,r2,#0x1000 // Set ARM_TIMXO = 0
+ strh r2,[r1,#0x00]
+
+ /* Enable the MPUXOR_CK by:
+ * "MPUXOR_CK ... is derived from CK_REF ... and is enabled by EN_XORPCK"
+ *
+ * EN_XORPCK is bit 1 of ARM_IDLECT2
+ */
+/*
+ CLKM_ARM_IDLECT2 |= 0x0002;
+*/
+ ldrh r2,[r1,#0x08]
+ orr r2,r2,#0x0082 // Bits 7 (EN_TIMCK) and 1 (EN_XORPCK)
+ strh r2,[r1,#0x08]
+
+ /* Then set the PER_EN bit to 1
+ *
+ * PER_EN is bit 0 of ARM_RSTCT2
+ */
+/*
+ CLKM_ARM_RSTCT2 |= 0x0001;
+*/
+ ldrh r2,[r1,#0x14]
+ orr r2,r2,#0x0001
+ strh r2,[r1,#0x14]
+
+ /* Set the "BT_UART_GATING" bit to 1 in the FUNC_MUX_CTRL_0 register.
+ * This enables the TX1 and RTS1 pins.
+ */
+/*
+ CONFIG_FUNC_MUX_CTRL_0 |= BIT_25;
+*/
+ ldr r1,=CONFIG_BASE
+ ldr r3,=0x02000000
+ ldr r2,[r1,#0x00]
+ orr r2,r2,r3
+ str r2,[r1,#0x00]
+
+ /* Set bit 6 of the FPGA Power Control Register. If I could find some
+ * documentation on this, I could explain better why I am doing this, but
+ * for now, emperical evidence suggests that this disables the "shutdown"
+ * signal to the RS232 level shifter.
+ */
+/*
+ FPGA_PWR_CTRL_REG |= BIT_06;
+*/
+ ldr r1,=FPGA_BASE
+ ldrb r2,[r1,#0x05]
+ orr r2,r2,#0x20
+#ifdef ADD_COMPATIBILITY_FOR_THE_EVM_SOMEDAY
+ orr r2,r2,#0x40
+#endif
+ strb r2,[r1,#0x05]
+
+ // Set up a stack [for calling C code]
+#if defined(CYG_HAL_STARTUP_SLOADER) || defined(CYG_HAL_STARTUP_ROM)
+ // The startup stack is in internal SRAM
+ ldr sp,=__startup_stack
+ // This _MOST_DEFINATELY_ needs to be fixed
+ orr sp,sp,#0x10000000
+#else
+ // The startup stack is in SDRAM, at some virtual address, but
+ // we have not set up the MMU yet, so we need to initialize SP
+ // with the physical address of '__startup_stack'
+#error "Somehow"
+#endif
+ bl hal_mmu_init
+
+ // Enable MMU
+ ldr r2,=10f
+ ldr r1,=MMU_Control_Init|MMU_Control_M
+ mcr MMU_CP,0,r1,MMU_Control,c0
+ mov pc,r2
+
+ // mcr MMU_CP,0,r0,MMU_InvalidateCache,c7,0 // Flush data and instruction cache
+ // mcr MMU_CP,0,r0,MMU_TLB,c7,0 // Flush ID TLBs
+10:
+ nop
+ nop
+ nop
+
+#if 0
+ ldr r3,=0x20000000
+ str r1,[r3]
+ mrc MMU_CP,0,r1,MMU_Control,c0
+ str r1,[r3, #0x04]
+ mrc p15,0,r1,c15,c1,0
+ str r1,[r3, #0x08]
+
+here:
+ // b here
+#endif
+#else // PLATFORM_SETUP_FROM_CCS_GEL_SCRIPT
+ // This is all stolen from the ipaq setup
+
+ // Make sure MMU is OFF
+ mov r0,#INTERNAL_SRAM_BASE // Force cache writeback by reloading
+ add r2,r0,#0x2000 // cache from the internal memory bank
+123: ldr r1,[r0],#16
+ cmp r0, r2
+ bne 123b
+ mov r0,#0
+ mov r1,#0x0070 // MMU Control System bit
+ mcr p15,0,r0,c7,c7,0 // Flush data and instruction cache
+ mcr p15,0,r0,c8,c7,0 // Flush ID TLBs
+ mcr p15,0,r0,c9,c0,0 // Flush Read-Buffer
+ mcr p15,0,r0,c7,c10,4 // Drain write buffer
+ mcr p15,0,r0,c13,c0,0 // Disable virtual ID mapping
+ mcr p15,0,r1,c1,c0,0 // Write MMU control register
+ nop; nop; nop; nop
+ FAKE_LED_MACRO(2)
+
+ mov r0,#(CPSR_IRQ_DISABLE|CPSR_FIQ_DISABLE|CPSR_SUPERVISOR_MODE)
+ msr cpsr,r0
+ FAKE_LED_MACRO(3)
+
+ // This is the platform setup adapted from the rrload setup implied
+ // by head_omap1510.S
+
+// Disable the Watchdog Timer.
+// ---------------------------
+ mov r1, #0xF5
+ ldr r0, REG_WDT_TIMER_MODE
+ strh r1, [r0] // Set WDTIM Mode
+ mov r1, #0xA0
+ strh r1, [r0] // Set WDTIM Mode
+ FAKE_LED_MACRO(4)
+
+// setting for DPLL1 control register.
+// ----------------------------------
+ ldr r0, REG_DPLL1_CTL
+ mov r1, #0x10
+ strh r1, [r0]
+// Continue to loop if bit shows "not locked"
+poll1:
+ ldrh r1, [r0]
+ ands r1, r1, #0x01
+ beq poll1
+ FAKE_LED_MACRO(5)
+
+// Init Arm9 processor.
+// --------------------
+ mrs r0, cpsr // Get current mode bits.
+ bic r0, r0, #0x1f // Clear mode bits.
+ orr r0, r0, #0xd3 // Disable IRQs/FIQs, supervisor mode.
+ msr cpsr, r0 // Enter Supervisor mode.
+ mov r1, #0x81 // Set ARM925T configuration.
+ mcr p15, 0, r1, c15, c1, 0 // Write ARM925T configuration register.
+ FAKE_LED_MACRO(6)
+
+// Disable All Interrupts
+// -----------
+ ldr r1, V_0xffffffff
+ ldr r0, REG_IHL1_MIR
+ str r1, [r0]
+ ldr r0, REG_IHL2_MIR
+ str r1, [r0]
+ FAKE_LED_MACRO(7)
+
+// Determine if this is a 1509 or 1510, then
+// set the Configuration Registers accordingly
+// 1509 shows 0, 1510 shows 0x1b47002f
+// -------------------
+ ldr r0, REG_IDCODE
+ ldr r1, [r0]
+ cmp r1, #0x0
+ beq omap1509
+ FAKE_LED_MACRO(8)
+
+// OK, so we're a 1510.
+omap1510:
+/*
+ Errata for ES1 says to do this:
+
+ 1) Check for power-on or warm reset.
+ 2) Configure SDRAM controller depending on reset type.
+*/
+ // Check for reset type
+ ldr r0, REG_ARM_SYSST
+ ldrh r1, [r0]
+ mov r2, #0x20
+ tst r2, r1
+ beq zzz_warm_reset
+ FAKE_LED_MACRO(9)
+
+POR:
+ // Wait 100mS for SDRAM to stabilize before
+ // configuring SDRAM controller.
+ // Number guessed at.
+ mov r0, #0x2000
+1: subs r0, r0, #0x1
+ bne 1b
+ FAKE_LED_MACRO(10)
+
+ b after_initial_configure_SDRAM
+
+zzz_warm_reset:
+ FAKE_LED_MACRO(11)
+
+ // Set auto-refresh counter value to 1.
+ // Program MRS to appropriate CAS latency
+ // Wait for SDRAM array to be completely
+ // refreshed, 1 cycle * #SDRAM rows.
+ ldr r0, REG_TC_EMIFF_SDRAM_CONFIG
+ mov r1, #0x100
+ str r1, [r0]
+ ldr r0, REG_TC_EMIFF_MRS
+ ldr r1, VAL_TC_EMIFF_MRS
+ str r1, [r0]
+ mov r2, #0x2000
+1: subs r2, r2, #0x1
+ bne 1b
+ ldr r0, REG_TC_EMIFF_SDRAM_CONFIG
+ mov r1, #0x10000
+ str r1, [r0]
+
+after_initial_configure_SDRAM:
+ FAKE_LED_MACRO(12)
+
+
+// Config Spec says to write values
+// to each of the configuration registers,
+// then take the chip out of 1509 compatibility mode.
+
+ ldr r0, REG_PULL_DWN_CTRL_0
+ ldr r1, VAL_PULL_DWN_CTRL_0
+ str r1, [r0]
+ ldr r0, REG_PULL_DWN_CTRL_1
+ ldr r1, VAL_PULL_DWN_CTRL_1
+ str r1, [r0]
+ ldr r0, REG_PULL_DWN_CTRL_2
+ ldr r1, VAL_PULL_DWN_CTRL_2
+ str r1, [r0]
+ ldr r0, REG_PULL_DWN_CTRL_3
+ ldr r1, VAL_PULL_DWN_CTRL_3
+ str r1, [r0]
+ ldr r0, REG_FUNC_MUX_CTRL_4
+ ldr r1, VAL_FUNC_MUX_CTRL_4
+ str r1, [r0]
+ ldr r0, REG_FUNC_MUX_CTRL_5
+ ldr r1, VAL_FUNC_MUX_CTRL_5
+ str r1, [r0]
+ ldr r0, REG_FUNC_MUX_CTRL_6
+ ldr r1, VAL_FUNC_MUX_CTRL_6
+ str r1, [r0]
+ ldr r0, REG_FUNC_MUX_CTRL_7
+ ldr r1, VAL_FUNC_MUX_CTRL_7
+ str r1, [r0]
+ ldr r0, REG_FUNC_MUX_CTRL_8
+ ldr r1, VAL_FUNC_MUX_CTRL_8
+ str r1, [r0]
+ ldr r0, REG_FUNC_MUX_CTRL_9
+ ldr r1, VAL_FUNC_MUX_CTRL_9
+ str r1, [r0]
+ ldr r0, REG_FUNC_MUX_CTRL_A
+ ldr r1, VAL_FUNC_MUX_CTRL_A
+ str r1, [r0]
+ ldr r0, REG_FUNC_MUX_CTRL_B
+ ldr r1, VAL_FUNC_MUX_CTRL_B
+ str r1, [r0]
+ ldr r0, REG_FUNC_MUX_CTRL_C
+ ldr r1, VAL_FUNC_MUX_CTRL_C
+ str r1, [r0]
+ ldr r0, REG_FUNC_MUX_CTRL_D
+ ldr r1, VAL_FUNC_MUX_CTRL_D
+ str r1, [r0]
+ ldr r0, REG_VOLTAGE_CTRL_0
+ ldr r1, VAL_VOLTAGE_CTRL_0
+ str r1, [r0]
+ ldr r0, REG_TEST_DBG_CTRL_0
+ ldr r1, VAL_TEST_DBG_CTRL_0
+ str r1, [r0]
+ ldr r0, REG_MOD_CONF_CTRL_0
+ ldr r1, VAL_MOD_CONF_CTRL_0
+ str r1, [r0]
+ FAKE_LED_MACRO(13)
+
+ // Take out of compatibility mode
+ ldr r0, REG_COMP_MODE_CTRL_0
+ ldr r1, VAL_COMP_MODE_CTRL_0
+ str r1, [r0]
+ FAKE_LED_MACRO(14)
+
+ b post_config_registers
+
+omap1509:
+ ldr r0, REG_FUNC_MUX_CTRL_0
+ ldr r1, [r0]
+ orr r1, r1, #0x6000000 // UART_GIGA_GATE bit as well as UART_BT_GATE bit
+ str r1, [r0]
+// Errata for ES5.5 says this must be done before DSP or MPU can
+// access internal RAMs. This is benign for earlier revs.
+ ldr r0, REG_FUNC_MUX_CTRL_1
+ mov r1, #0xc
+ str r1, [r0]
+
+post_config_registers:
+ FAKE_LED_MACRO(15)
+ mov r0, #0x1800
+again:
+ subs r0, r0, #0x1
+ bne again
+ FAKE_LED_MACRO(16)
+
+// Invalidate cache
+// -----------------
+ mov r0,#0
+ nop
+ mcr p15, 0x0, r0, c7, c5, 0x0
+ nop
+ nop
+ nop
+ nop
+ FAKE_LED_MACRO(17)
+
+// Enable I-Cache
+// -------------
+ mrc p15, 0x0, r1, c1, c0, 0x0
+ orr r1, r1, #0x1000
+ nop
+ mcr p15, 0x0, r1, c1, c0, 0x0
+ nop
+ nop
+ nop
+ nop
+ FAKE_LED_MACRO(18)
+
+// Initialize Traffic Controller (TC)
+// ----------------------------------
+ ldr r0, REG_TC_IMIF_PRIO
+ mov r1, #0x0
+ str r1, [r0]
+ ldr r0, REG_TC_EMIFS_PRIO
+ str r1, [r0]
+ ldr r0, REG_TC_EMIFF_PRIO
+ str r1, [r0]
+
+ ldr r0, REG_TC_EMIFS_CONFIG
+ ldr r1, [r0]
+ bic r1, r1, #0x08 /* clear the global power-down enable PDE bit */
+ bic r1, r1, #0x01 /* write protect flash by clearing the WP bit */
+ str r1, [r0] // EMIFS GlB Configuration. (value 0x12 most likely)
+
+// Set TC chip select registers
+// SDRAM value based on 168MHz 1510.
+// ----------------------------
+ ldr r0, REG_TC_EMIFS_CS1_CONFIG
+ ldr r1, VAL_TC_EMIFS_CS1_CONFIG_PRELIM
+ str r1, [r0]
+ ldr r0, REG_TC_EMIFS_CS2_CONFIG
+ ldr r1, VAL_TC_EMIFS_CS2_CONFIG_PRELIM
+ str r1, [r0]
+ ldr r0, REG_TC_EMIFF_SDRAM_CONFIG
+ ldr r1, VAL_TC_EMIFF_SDRAM_CONFIG
+ str r1, [r0]
+ ldr r0, REG_TC_EMIFF_MRS
+ ldr r1, VAL_TC_EMIFF_MRS
+ str r1, [r0]
+
+ mov r0,#0x1800
+again2:
+ subs r0,r0,#0x1
+ bne again2
+ FAKE_LED_MACRO(19)
+
+ // Next, Enable the RS232 Line Drivers in the FPGA.
+ // Also, power on the audio CODEC's amplifier here,
+ // which will make a noise on the audio output.
+ // This is done here instead of in the kernel so there
+ // isn't a loud popping noise at the start of each
+ // song.
+ // Also, disable the CODEC's clocks.
+ // omap1510-HelenP1 [specific]
+ ldr r0, REG_FPGA_POWER
+ mov r1, #0
+ ldr r2, REG_FPGA_DIP_SWITCH
+ ldrb r3, [r2]
+ cmp r3, #0x8
+ movne r1, #0x62 // Enable the RS232 Line Drivers in the EPLD
+ strb r1, [r0]
+ ldr r0, REG_FPGA_AUDIO
+ mov r1, #0x0 // Disable sound driver (CODEC clocks)
+ strb r1, [r0]
+
+ mov r0, #0x1800
+again0:
+ subs r0, r0, #0x1
+ bne again0
+ FAKE_LED_MACRO(20)
+
+// Init RHEA
+// ----------
+ ldr r1, V_0x0000ff22
+ mov r0, #0x0
+ str r1, [r0] // yep, that's really a write to address 0x00000000.
+
+// *revisit-skranz* is needed?
+ mov r0, #0x1800
+again12:
+ subs r0, r0, #0x1
+ bne again12
+ FAKE_LED_MACRO(21)
+
+// Misc 2
+// ------
+ mov r1, #0xfb
+ ldr r0, REG_LB_CLOCK_DIV
+ str r1, [r0]
+
+// *revisit-skranz* is needed?
+ mov r0, #0x1800
+again4:
+ subs r0, r0, #0x1
+ bne again4
+ FAKE_LED_MACRO(22)
+
+// ARM Clock Module Setup
+// ----------------------
+ mov r1, #0x40
+ ldr r0, REG_ARM_IDLECT2
+ strh r1, [r0] // CLKM, Clock domain control.
+
+ mov r1, #0x01 // PER_EN bit
+ ldr r0, REG_ARM_RSTCT2
+ strh r1, [r0] // CLKM; Peripheral reset.
+
+ // Reset CLKM
+#ifdef ORIGINAL_CODE
+ mov r1, #0x06 // Needed for UART[12]
+#else
+ mov r1, #0x86 // Needed for UART[12]
+#endif
+ ldr r0, REG_ARM_IDLECT2
+ strh r1, [r0] // CLKM, Clock domain control.
+
+ // Set CLKM to Sync-Scalable
+ mov r1, #0x1000 // Needed for UART[12]
+ ldr r0, REG_ARM_SYSST
+ strh r1, [r0]
+
+// *revisit-skranz* is needed?
+ mov r0, #0x1800
+again6:
+ subs r0, r0, #0x1
+ bne again6
+ FAKE_LED_MACRO(23)
+
+ ldr r1, VAL_ARM_CKCTL
+ ldr r0, REG_ARM_CKCTL
+ strh r1, [r0]
+
+// setup DPLL1 Control Register
+// ----------------------------
+ ldr r1, VAL_DPLL1_CTL
+ ldr r0, REG_DPLL1_CTL
+ strh r1, [r0]
+ ands r1, r1, #0x10 // Check if PLL is enabled.
+ beq finish2 // Do not look for lock if BYPASS selected
+poll2:
+ ldrh r1, [r0]
+ ands r1, r1, #0x01 // Check the LOCK bit.
+ beq poll2 // ...loop until bit goes hi.
+finish2:
+ FAKE_LED_MACRO(24)
+
+ // Setup TC EMIFS configuration.
+ // CS0 value based on 168MHz
+ // ---------------------------------------------------
+ ldr r1, VAL_TC_EMIFS_CS0_CONFIG // increase flash speed.
+ ldr r0, REG_TC_EMIFS_CS0_CONFIG
+ str r1, [r0] // Chip Select 0
+ ldr r1, VAL_TC_EMIFS_CS1_CONFIG
+ ldr r0, REG_TC_EMIFS_CS1_CONFIG
+ str r1, [r0] // Chip Select 1
+ ldr r1, VAL_TC_EMIFS_CS2_CONFIG
+ ldr r0, REG_TC_EMIFS_CS2_CONFIG
+ str r1, [r0] // Chip Select 2
+ ldr r1, VAL_TC_EMIFS_CS3_CONFIG
+ ldr r0, REG_TC_EMIFS_CS3_CONFIG
+ str r1, [r0] // Chip Select 3
+
+// *revisit-skranz* is needed?
+ mov r0, #0x1800
+again9:
+ subs r0, r0, #0x1
+ bne again9
+ FAKE_LED_MACRO(25)
+
+ // The following was added by WPD
+ // Set up a stack [for calling C code]
+#ifdef CYG_HAL_STARTUP_ROM
+ // The startup stack is in internal SRAM
+ ldr sp,=__startup_stack
+ // This _MOST_DEFINATELY_ needs to be fixed
+ orr sp,sp,#0x10000000
+#else
+ // The startup stack is in SDRAM, at some virtual address, but
+ // we have not set up the MMU yet, so we need to initialize SP
+ // with the physical address of '__startup_stack'
+#error "Somehow"
+#endif
+ bl hal_mmu_init
+ FAKE_LED_MACRO(26)
+
+ // Enable MMU
+ ldr r2,=10f
+ ldr r1,=MMU_Control_Init|MMU_Control_M
+ mcr MMU_CP,0,r1,MMU_Control,c0
+ mov pc,r2
+
+ // mcr MMU_CP,0,r0,MMU_InvalidateCache,c7,0 // Flush data and instruction cache
+ // mcr MMU_CP,0,r0,MMU_TLB,c7,0 // Flush ID TLBs
+10:
+ nop
+ nop
+ nop
+ FAKE_LED_MACRO(27)
+
+#if 0
+ ldr r3,=0x20000000
+ str r1,[r3]
+ mrc MMU_CP,0,r1,MMU_Control,c0
+ str r1,[r3, #0x04]
+ mrc p15,0,r1,c15,c1,0
+ str r1,[r3, #0x08]
+
+here:
+ // b here
+#endif
+#endif
+ .endm
+
+#else // defined(CYG_HAL_STARTUP_ROM) || defined(CYG_HAL_STARTUP_ROMRAM) || defined(CYG_HAL_STARTUP_REDBOOT)
+#define PLATFORM_SETUP1
+#endif
+
+//-----------------------------------------------------------------------------
+//-----------------------------------------------------------------------------
+// end of hal_platform_setup.h
+
+// ------------------------------------------------------
+// --------------Static Data Definitions-----------------
+// ------------------------------------------------------
+
+/* inernal OMAP registers */
+ /* interrupt handler level 2 registers */
+REG_IHL2_MIR: /* 32 bits */
+ .word 0xfffe0004
+ /* OMAP configuration registers */
+REG_FUNC_MUX_CTRL_0: /* 32 bits */
+ .word 0xfffe1000
+REG_FUNC_MUX_CTRL_1: /* 32 bits */
+ .word 0xfffe1004
+REG_FUNC_MUX_CTRL_2: /* 32 bits */
+ .word 0xfffe1008
+REG_COMP_MODE_CTRL_0: /* 32 bits */
+ .word 0xfffe100c
+REG_FUNC_MUX_CTRL_3: /* 32 bits */
+ .word 0xfffe1010
+REG_FUNC_MUX_CTRL_4: /* 32 bits */
+ .word 0xfffe1014
+REG_FUNC_MUX_CTRL_5: /* 32 bits */
+ .word 0xfffe1018
+REG_FUNC_MUX_CTRL_6: /* 32 bits */
+ .word 0xfffe101c
+REG_FUNC_MUX_CTRL_7: /* 32 bits */
+ .word 0xfffe1020
+REG_FUNC_MUX_CTRL_8: /* 32 bits */
+ .word 0xfffe1024
+REG_FUNC_MUX_CTRL_9: /* 32 bits */
+ .word 0xfffe1028
+REG_FUNC_MUX_CTRL_A: /* 32 bits */
+ .word 0xfffe102C
+REG_FUNC_MUX_CTRL_B: /* 32 bits */
+ .word 0xfffe1030
+REG_FUNC_MUX_CTRL_C: /* 32 bits */
+ .word 0xfffe1034
+REG_FUNC_MUX_CTRL_D: /* 32 bits */
+ .word 0xfffe1038
+REG_PULL_DWN_CTRL_0: /* 32 bits */
+ .word 0xfffe1040
+REG_PULL_DWN_CTRL_1: /* 32 bits */
+ .word 0xfffe1044
+REG_PULL_DWN_CTRL_2: /* 32 bits */
+ .word 0xfffe1048
+REG_PULL_DWN_CTRL_3: /* 32 bits */
+ .word 0xfffe104c
+REG_VOLTAGE_CTRL_0: /* 32 bits */
+ .word 0xfffe1060
+REG_TEST_DBG_CTRL_0: /* 32 bits */
+ .word 0xfffe1070
+REG_MOD_CONF_CTRL_0: /* 32 bits */
+ .word 0xfffe1080
+ /* local bus control registers */
+REG_LB_CLOCK_DIV: /* 32 bits */
+ .word 0xfffec10c
+ /* watchdog timer registers */
+REG_WDT_TIMER_MODE: /* 16 bits */
+ .word 0xfffec808
+ /* interrupt handler level 1 registers */
+REG_IHL1_MIR: /* 32 bits */
+ .word 0xfffecb04
+ /* traffic controller memory interface registers */
+REG_TC_IMIF_PRIO: /* 32 bits */
+ .word 0xfffecc00
+REG_TC_EMIFS_PRIO: /* 32 bits */
+ .word 0xfffecc04
+REG_TC_EMIFF_PRIO: /* 32 bits */
+ .word 0xfffecc08
+REG_TC_EMIFS_CONFIG: /* 32 bits */
+ .word 0xfffecc0c
+REG_TC_EMIFS_CS0_CONFIG: /* 32 bits */
+ .word 0xfffecc10
+REG_TC_EMIFS_CS1_CONFIG: /* 32 bits */
+ .word 0xfffecc14
+REG_TC_EMIFS_CS2_CONFIG: /* 32 bits */
+ .word 0xfffecc18
+REG_TC_EMIFS_CS3_CONFIG: /* 32 bits */
+ .word 0xfffecc1c
+REG_TC_EMIFF_SDRAM_CONFIG: /* 32 bits */
+ .word 0xfffecc20
+REG_TC_EMIFF_MRS: /* 32 bits */
+ .word 0xfffecc24
+ /* MPU clock/reset/power mode control registers */
+REG_ARM_CKCTL: /* 16 bits */
+ .word 0xfffece00
+REG_ARM_IDLECT2: /* 16 bits */
+ .word 0xfffece08
+REG_ARM_RSTCT2: /* 16 bits */
+ .word 0xfffece14
+REG_ARM_SYSST: /* 16 bits */
+ .word 0xfffece18
+ /* DPLL control registers */
+REG_DPLL1_CTL: /* 16 bits */
+ .word 0xfffecf00
+ /* identification code register */
+REG_IDCODE: /* 32 bits */
+ .word 0xfffed404
+
+/* board-specific registers */
+
+REG_FPGA_LED_DIGIT: /* 8 bits (not used on Innovator) */
+ .word 0x08000003
+REG_FPGA_POWER: /* 8 bits */
+ .word 0x08000005
+REG_FPGA_AUDIO: /* 8 bits (not used on Innovator) */
+ .word 0x0800000c
+REG_FPGA_DIP_SWITCH: /* 8 bits (not used on Innovator) */
+ .word 0x0800000e
+
+/* constants */
+
+VAL_COMP_MODE_CTRL_0:
+ .word 0x0000eaef
+VAL_FUNC_MUX_CTRL_4:
+ .word 0x00000000
+VAL_FUNC_MUX_CTRL_5:
+ .word 0x00000000
+VAL_FUNC_MUX_CTRL_6:
+ .word 0x00000001
+VAL_FUNC_MUX_CTRL_7:
+ .word 0x00000000
+VAL_FUNC_MUX_CTRL_8:
+ .word 0x10001200
+VAL_FUNC_MUX_CTRL_9:
+ .word 0x01201012
+VAL_FUNC_MUX_CTRL_A:
+ .word 0x00000248
+VAL_FUNC_MUX_CTRL_B:
+ .word 0x00000248
+VAL_FUNC_MUX_CTRL_C:
+ .word 0x09000000
+VAL_FUNC_MUX_CTRL_D:
+ .word 0x00000000
+VAL_PULL_DWN_CTRL_0:
+ .word 0x11a10000
+VAL_PULL_DWN_CTRL_1:
+ .word 0x2e047fff
+VAL_PULL_DWN_CTRL_2:
+ .word 0xffd7d3e6
+VAL_PULL_DWN_CTRL_3:
+ .word 0x00003f03
+VAL_VOLTAGE_CTRL_0:
+ .word 0x00000007
+VAL_TEST_DBG_CTRL_0:
+ /* The OMAP5910 TRM says this register must be 0, but HelenConfRegs
+ * says to write a 7. Don't know what the right thing is to do, so
+ * I'm leaving it at 7 since that's what was already here.
+ */
+ .word 0x00000007
+VAL_MOD_CONF_CTRL_0:
+ .word 0x0b000008
+VAL_ARM_CKCTL:
+#ifdef ORIGINAL_CODE
+ .word 0x110f
+#else
+ .word 0x010f
+#endif
+VAL_DPLL1_CTL:
+ .word 0x2710
+VAL_TC_EMIFS_CS1_CONFIG_PRELIM:
+ .word 0x00001149
+VAL_TC_EMIFS_CS2_CONFIG_PRELIM:
+ .word 0x00004158
+VAL_TC_EMIFS_CS0_CONFIG:
+ .word 0x002130b0
+VAL_TC_EMIFS_CS1_CONFIG:
+ .word 0x0000f559
+VAL_TC_EMIFS_CS2_CONFIG:
+ .word 0x000055f0
+VAL_TC_EMIFS_CS3_CONFIG:
+ .word 0x00003331
+VAL_TC_EMIFF_SDRAM_CONFIG:
+ .word 0x010290fc
+VAL_TC_EMIFF_MRS:
+ .word 0x00000027
+
+V_0xffffffff:
+ .word 0xffffffff
+
+V_0x0000ff22:
+ .word 0x0000ff22
+#endif // CYGONCE_HAL_PLATFORM_SETUP_H
diff --git a/ecos/packages/hal/arm/arm9/innovator/current/include/innovator.h b/ecos/packages/hal/arm/arm9/innovator/current/include/innovator.h
new file mode 100644
index 0000000..23bac9a
--- /dev/null
+++ b/ecos/packages/hal/arm/arm9/innovator/current/include/innovator.h
@@ -0,0 +1,490 @@
+#ifndef CYGONCE_INNOVATOR_H
+#define CYGONCE_INNOVATOR_H
+
+//=============================================================================
+//
+// innovator.h
+//
+// Platform specific support (register layout, etc)
+//
+//=============================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): Patrick Doyle <wpd@delcomsys.com>
+// Contributors: Patrick Doyle <wpd@delcomsys.com>
+// Date: 2002-12-01
+// Purpose: Innovator platform specific support definitions
+// Description:
+// Usage: #include <cyg/hal/innovator.h>
+//
+//####DESCRIPTIONEND####
+//
+//=============================================================================
+
+#include <pkgconf/hal_arm_arm9_innovator.h>
+
+// Memory mapping
+#define FLASH_CS0_BASE 0x00000000
+#define FLASH_CS1_BASE 0x04000000
+#define FLASH_CS2_BASE 0x08000000
+#define FLASH_CS3_BASE 0x0C000000
+#define SDRAM_BASE 0x10000000
+#define INTERNAL_SRAM_BASE 0x20000000
+
+// Most of this should be moved to a separate omap.h or omap_1510.h file
+// CLKM Registers
+#define CLKM_BASE 0xFFFECE00
+#define _CLKM_ARM_CKCTL 0x00
+#define _CLKM_ARM_IDLECT1 0x04
+#define _CLKM_ARM_IDLECT2 0x08
+#define _CLKM_ARM_EWUPCT 0x0C
+#define _CLKM_ARM_RSTCT1 0x10
+#define _CLKM_ARM_RSTCT2 0x14
+#define _CLKM_ARM_SYSST 0x18
+
+#define CLKM_ARM_CKCTL (volatile short *)(CLKM_BASE + _CLKM_ARM_CKCTL)
+#define CLKM_ARM_IDLECT1 (volatile short *)(CLKM_BASE + _CLKM_ARM_IDLECT1)
+#define CLKM_ARM_IDLECT2 (volatile short *)(CLKM_BASE + _CLKM_ARM_IDLECT2)
+#define CLKM_ARM_EWUPCT (volatile short *)(CLKM_BASE + _CLKM_ARM_EWUPCT)
+#define CLKM_ARM_RSTCT1 (volatile short *)(CLKM_BASE + _CLKM_ARM_RSTCT1)
+#define CLKM_ARM_RSTCT2 (volatile short *)(CLKM_BASE + _CLKM_ARM_RSTCT2)
+#define CLKM_ARM_SYSST (volatile short *)(CLKM_BASE + _CLKM_ARM_SYSST)
+
+// Watchdog Registers
+#define WATCHDOG_BASE 0xFFFEC800
+#define _WD_CNTL_TIMER 0x00
+#define _WD_LOAD_TIM 0x04
+#define _WD_READ_TIM 0x04
+#define _WD_TIMER_MODE 0x08
+
+#define WATCHDOG_CNTL_TIMER (volatile short *)(WATCHDOG_BASE + _WD_CNTL_TIMER)
+#define WATCHDOG_LOAD_TIM (volatile short *)(WATCHDOG_BASE + _WD_LOAD_TIM)
+#define WATCHDOG_READ_TIM (volatile short *)(WATCHDOG_BASE + _WD_READ_TIM)
+#define WATCHDOG_TIMER_MODE (volatile short *)(WATCHDOG_BASE + _WD_TIMER_MODE)
+
+/* Nothing below this line has been scrubbed yet */
+/* DPLL Registers */
+#define DPLL1_BASE 0xFFFECF00
+#define DPLL2_BASE 0xFFFED000
+#define DPLL3_BASE 0xFFFED100
+
+#define _DPLL_CTL_REG 0x00
+
+#define DPLL1_CTL_REG (volatile short *)(DPLL1_BASE + _DPLL_CTL_REG)
+#define DPLL2_CTL_REG (volatile short *)(DPLL2_BASE + _DPLL_CTL_REG)
+#define DPLL3_CTL_REG (volatile short *)(DPLL3_BASE + _DPLL_CTL_REG)
+
+#define FPGA_BASE 0x08000000 /* CS2_BASE */
+#define CONFIG_BASE 0xFFFE1000
+#define TC_BASE 0xFFFECC00
+
+/* FPGA Registers */
+#define FPGA_PWR_CTRL_REG (*(volatile char *)(FPGA_BASE + 0x05))
+
+/* Configuration Registers */
+#define CONFIG_FUNC_MUX_CTRL_0 (*(volatile unsigned *)(CONFIG_BASE + 0x00))
+#define CONFIG_FUNC_MUX_CTRL_1 (*(volatile unsigned *)(CONFIG_BASE + 0x04))
+#define CONFIG_FUNC_MUX_CTRL_2 (*(volatile unsigned *)(CONFIG_BASE + 0x08))
+
+/* Traffic Controller Registers */
+#define TC_IMIF_PRIO (*(volatile unsigned *)(TC_BASE + 0x00))
+#define TC_EMIFS_PRIO_REG (*(volatile unsigned *)(TC_BASE + 0x04))
+#define TC_EMIFF_PRIO_REG (*(volatile unsigned *)(TC_BASE + 0x08))
+#define TC_EMIFS_CONFIG_REG (*(volatile unsigned *)(TC_BASE + 0x0C))
+#define TC_EMIFS_CS0_CONFIG (*(volatile unsigned *)(TC_BASE + 0x10))
+#define TC_EMIFS_CS1_CONFIG (*(volatile unsigned *)(TC_BASE + 0x14))
+#define TC_EMIFS_CS2_CONFIG (*(volatile unsigned *)(TC_BASE + 0x18))
+#define TC_EMIFS_CS3_CONFIG (*(volatile unsigned *)(TC_BASE + 0x1C))
+#define TC_EMIFF_SDRAM_CONFIG (*(volatile unsigned *)(TC_BASE + 0x20))
+#define TC_EMIFF_MRS (*(volatile unsigned *)(TC_BASE + 0x24))
+#define TC_TIMEOUT1 (*(volatile unsigned *)(TC_BASE + 0x28))
+#define TC_TIMEOUT2 (*(volatile unsigned *)(TC_BASE + 0x2C))
+#define TC_TIMEOUT3 (*(volatile unsigned *)(TC_BASE + 0x30))
+#define TC_ENDIANISM (*(volatile unsigned *)(TC_BASE + 0x34))
+
+/* Believe it or not, these actually make the code more readable in a few
+ * places.
+ */
+#ifndef BIT_00
+#define BIT_00 0x00000001
+#define BIT_01 0x00000002
+#define BIT_02 0x00000004
+#define BIT_03 0x00000008
+#define BIT_04 0x00000010
+#define BIT_05 0x00000020
+#define BIT_06 0x00000040
+#define BIT_07 0x00000080
+#define BIT_08 0x00000100
+#define BIT_09 0x00000200
+#define BIT_10 0x00000400
+#define BIT_11 0x00000800
+#define BIT_12 0x00001000
+#define BIT_13 0x00002000
+#define BIT_14 0x00004000
+#define BIT_15 0x00008000
+#define BIT_16 0x00010000
+#define BIT_17 0x00020000
+#define BIT_18 0x00040000
+#define BIT_19 0x00080000
+#define BIT_20 0x00100000
+#define BIT_21 0x00200000
+#define BIT_22 0x00400000
+#define BIT_23 0x00800000
+#define BIT_24 0x01000000
+#define BIT_25 0x02000000
+#define BIT_26 0x04000000
+#define BIT_27 0x08000000
+#define BIT_28 0x10000000
+#define BIT_29 0x20000000
+#define BIT_30 0x40000000
+#define BIT_31 0x80000000
+#endif
+
+// We are using this
+#define INNOVATOR_FLASH_VIRT_BASE 0x10000000
+// #define INNOVATOR_FLASH_PHYS_BASE 0x00000000
+#define INNOVATOR_SDRAM_PHYS_BASE 0x10000000
+
+#if 0
+#define INNOVATOR_BASE INNOVATOR_REGS_PHYS_BASE
+
+//-----------------------------------------------------------------------------
+// Boot control
+// Note: this register is actually write-bit-to-clear-it
+#define INNOVATOR_BOOT_CR (INNOVATOR_BASE + 0x0000)
+
+#define INNOVATOR_BOOT_CR_BM 0x00000001
+#define INNOVATOR_BOOT_CR_HM 0x00000002
+#define INNOVATOR_BOOT_CR_RE 0x00000004
+
+//-----------------------------------------------------------------------------
+// DPSRAM config
+#define INNOVATOR_DPSRAM_BASE (INNOVATOR_BASE + 0x0030)
+#define _DPSRAM0_SR 0x0000
+#define _DPSRAM0_LCR 0x0004
+#define _DPSRAM1_SR 0x0008
+#define _DPSRAM1_LCR 0x000c
+
+#define _DPSRAM0_LCR_INIT 0x00000000
+#define _DPSRAM1_LCR_INIT 0x00000000
+
+//-----------------------------------------------------------------------------
+// IO controller
+#define INNOVATOR_IOCR_BASE (INNOVATOR_BASE + 0x0040)
+#define _IOCR_SDRAM 0x0000
+#define _IOCR_EBI 0x0004
+#define _IOCR_UART 0x0008
+#define _IOCR_TRACE 0x000c
+
+#define _IOCR_OC_PCI 0x00000008
+#define _IOCR_OC_FAST 0x00000004
+#define _IOCR_OC_SLOW 0x00000000
+#define _IOCR_IO_STRIPE 0x00000002
+#define _IOCR_LOCK 0x00000001
+
+#define INNOVATOR_IOCR_SDRAM_INIT (_IOCR_OC_FAST | _IOCR_IO_STRIPE | _IOCR_LOCK)
+#define INNOVATOR_IOCR_EBI_INIT (_IOCR_OC_SLOW | _IOCR_IO_STRIPE | _IOCR_LOCK)
+#define INNOVATOR_IOCR_UART_INIT (_IOCR_OC_SLOW | _IOCR_IO_STRIPE | _IOCR_LOCK)
+
+
+//-----------------------------------------------------------------------------
+// Memory mapping
+#define INNOVATOR_MMAP_BASE (INNOVATOR_BASE + 0x0080)
+#define _MMAP_REGISTERS 0x0000
+#define _MMAP_SRAM0 0x0010
+#define _MMAP_SRAM1 0x0014
+#define _MMAP_DPSRAM0 0x0020
+#define _MMAP_DPSRAM1 0x0024
+#define _MMAP_SDRAM0 0x0030
+#define _MMAP_SDRAM1 0x0034
+#define _MMAP_EBI0 0x0040
+#define _MMAP_EBI1 0x0044
+#define _MMAP_EBI2 0x0048
+#define _MMAP_EBI3 0x004c
+#define _MMAP_PLD0 0x0050
+#define _MMAP_PLD1 0x0054
+#define _MMAP_PLD2 0x0058
+#define _MMAP_PLD3 0x005c
+
+#define _MMAP_SIZE_16K (13<<7)
+#define _MMAP_SIZE_64K (15<<7)
+#define _MMAP_SIZE_128K (16<<7)
+#define _MMAP_SIZE_1M (19<<7)
+#define _MMAP_SIZE_4M (21<<7)
+#define _MMAP_SIZE_16M (23<<7)
+#define _MMAP_SIZE_32M (24<<7)
+#define _MMAP_SIZE_64M (25<<7)
+
+#define _MMAP_PREFETCH 0x00000000
+#define _MMAP_NOPREFETCH 0x00000002
+
+#define _MMAP_ENABLE 0x00000001
+#define _MMAP_DISABLE 0x00000000
+
+#define _MMAP_REGISTERS_INIT (INNOVATOR_REGS_PHYS_BASE + 0x00000000 | _MMAP_SIZE_16K | _MMAP_NOPREFETCH | _MMAP_ENABLE)
+#define _MMAP_SRAM0_INIT (INNOVATOR_SRAM_PHYS_BASE + 0x00000000 | _MMAP_SIZE_128K | _MMAP_PREFETCH | _MMAP_ENABLE)
+#define _MMAP_SRAM1_INIT (INNOVATOR_SRAM_PHYS_BASE + 0x00020000 | _MMAP_SIZE_128K | _MMAP_PREFETCH | _MMAP_ENABLE)
+#define _MMAP_DPSRAM0_INIT (INNOVATOR_SRAM_PHYS_BASE + 0x00040000 | _MMAP_SIZE_64K | _MMAP_PREFETCH | _MMAP_ENABLE)
+#define _MMAP_DPSRAM1_INIT (INNOVATOR_SRAM_PHYS_BASE + 0x00050000 | _MMAP_SIZE_64K | _MMAP_PREFETCH | _MMAP_ENABLE)
+#define _MMAP_SDRAM0_INIT (INNOVATOR_SDRAM_PHYS_BASE + 0x00000000 | _MMAP_SIZE_64M | _MMAP_PREFETCH | _MMAP_ENABLE)
+#define _MMAP_SDRAM1_INIT (INNOVATOR_SDRAM_PHYS_BASE + 0x04000000 | _MMAP_SIZE_64M | _MMAP_PREFETCH | _MMAP_ENABLE)
+#define _MMAP_EBI0_INIT (INNOVATOR_FLASH_PHYS_BASE + 0x00000000 | _MMAP_SIZE_4M | _MMAP_PREFETCH | _MMAP_ENABLE)
+#define _MMAP_EBI1_INIT (INNOVATOR_FLASH_PHYS_BASE + 0x00400000 | _MMAP_SIZE_4M | _MMAP_PREFETCH | _MMAP_ENABLE)
+#define _MMAP_EBI2_INIT (INNOVATOR_FLASH_PHYS_BASE + 0x00800000 | _MMAP_SIZE_4M | _MMAP_PREFETCH | _MMAP_ENABLE)
+#define _MMAP_EBI3_INIT (INNOVATOR_FLASH_PHYS_BASE + 0x00c00000 | _MMAP_SIZE_4M | _MMAP_PREFETCH | _MMAP_ENABLE)
+#define _MMAP_PLD0_INIT (INNOVATOR_PLD_PHYS_BASE + 0x00000000 | _MMAP_SIZE_16K | _MMAP_NOPREFETCH | _MMAP_ENABLE)
+//#define _MMAP_PLD1_INIT (INNOVATOR_PLD_PHYS_BASE + 0x00004000 | _MMAP_SIZE_16K | _MMAP_NOPREFETCH | _MMAP_ENABLE)
+#define _MMAP_PLD1_INIT (0x0f000000 | _MMAP_SIZE_16K | _MMAP_NOPREFETCH | _MMAP_ENABLE)
+#define _MMAP_PLD2_INIT (INNOVATOR_PLD_PHYS_BASE + 0x00008000 | _MMAP_SIZE_16K | _MMAP_NOPREFETCH | _MMAP_ENABLE)
+#define _MMAP_PLD3_INIT (INNOVATOR_PLD_PHYS_BASE + 0x0000c000 | _MMAP_SIZE_16K | _MMAP_NOPREFETCH | _MMAP_ENABLE)
+
+
+
+
+
+//-----------------------------------------------------------------------------
+// Timers
+#define INNOVATOR_TIMER0_CR (INNOVATOR_BASE+0x0200)
+#define INNOVATOR_TIMER0_PRE (INNOVATOR_BASE+0x0210)
+#define INNOVATOR_TIMER0_LIMIT (INNOVATOR_BASE+0x0220)
+#define INNOVATOR_TIMER0_READ (INNOVATOR_BASE+0x0230)
+
+#define INNOVATOR_TIMER1_CR (INNOVATOR_BASE+0x0240)
+#define INNOVATOR_TIMER1_PRE (INNOVATOR_BASE+0x0250)
+#define INNOVATOR_TIMER1_LIMIT (INNOVATOR_BASE+0x0260)
+#define INNOVATOR_TIMER1_READ (INNOVATOR_BASE+0x0270)
+
+#define INNOVATOR_TIMER_CR_MODE_HEARBEAT 0x00000000
+#define INNOVATOR_TIMER_CR_MODE_ONE_SHOT 0x00000001
+#define INNOVATOR_TIMER_CR_IE 0x00000004
+#define INNOVATOR_TIMER_CR_CI 0x00000008
+#define INNOVATOR_TIMER_CR_S 0x00000010
+
+//-----------------------------------------------------------------------------
+// Serial
+#define INNOVATOR_UART0_BASE (INNOVATOR_BASE+0x0280)
+#define _UART_RSR 0x0000
+#define _UART_RDS 0x0004
+#define _UART_RD 0x0008
+#define _UART_TSR 0x000c
+#define _UART_TD 0x0010
+#define _UART_FCR 0x0014
+#define _UART_IES 0x0018
+#define _UART_IEC 0x001c
+#define _UART_ISR 0x0020
+#define _UART_IID 0x0024
+#define _UART_MC 0x0028
+#define _UART_MCR 0x002c
+#define _UART_MSR 0x0030
+#define _UART_DIV_LO 0x0034
+#define _UART_DIV_HI 0x0038
+
+#define _UART_RSR_RX_LEVEL 0x0000001f
+
+#define _UART_TSR_TXI 0x00000080
+
+#define _UART_FCR_TC 0x00000001
+#define _UART_FCR_RC 0x00000002
+#define _UART_FCR_TX_THR_15 0x0000001c
+#define _UART_FCR_RX_THR_1 0x00000000
+
+#define _UART_INTS_RE 0x00000001
+#define _UART_INTS_RI _UART_INTS_RE
+#define _UART_INTS_TE 0x00000002
+#define _UART_INTS_TI _UART_INTS_TE
+#define _UART_INTS_TIE 0x00000004
+#define _UART_INTS_TII _UART_INTS_TIE
+#define _UART_INTS_ME 0x00000008
+#define _UART_INTS_MI _UART_INTS_ME
+
+
+#define _UART_MC_8BIT 0x00000003
+#define _UART_MC_1STOP 0x00000000
+#define _UART_MC_PARITY_NONE 0x00000000
+
+//-----------------------------------------------------------------------------
+// Clock controller
+#define INNOVATOR_CLK_BASE (INNOVATOR_BASE + 0x0300)
+#define _CLK_PLL1_NCNT 0x0000
+#define _CLK_PLL1_MCNT 0x0004
+#define _CLK_PLL1_KCNT 0x0008
+#define _CLK_PLL1_CTRL 0x000c
+#define _CLK_PLL2_NCNT 0x0010
+#define _CLK_PLL2_MCNT 0x0014
+#define _CLK_PLL2_KCNT 0x0018
+#define _CLK_PLL2_CTRL 0x001c
+#define _CLK_DERIVE 0x0020
+#define _CLK_STATUS 0x0024
+#define _CLK_AHB1_COUNT 0x0028
+
+#define _CLK_PLL1_CTRL_P 0x00000001
+#define _CLK_PLL2_CTRL_P 0x00000001
+
+#define _CLK_DERIVE_BP1 (1<<12)
+#define _CLK_DERIVE_BP2 (1<<13)
+
+#define _CLK_STATUS_L1 0x00000001
+#define _CLK_STATUS_L2 0x00000002
+#define _CLK_STATUS_C1 0x00000004
+#define _CLK_STATUS_C2 0x00000008
+
+// Settings from Altera example code. Note that this differs from the
+// magic values described in the manual. I think the values are
+// supposed to disable the PLLs, making the core run at 25MHz and
+// peripherals at 12.5MHz
+#define _CLK_PLL1_CTRL_INIT 0x00001064
+#define _CLK_PLL2_CTRL_INIT 0x00001064
+#define _CLK_DERIVE_INIT 0x00003010
+
+//-----------------------------------------------------------------------------
+// Expansion Bus Interface
+#define INNOVATOR_EBI_CR (INNOVATOR_BASE + 0x0380)
+
+#define INNOVATOR_EBI_CR_EO 0x00000008
+
+#define INNOVATOR_EBI_CR_INIT (INNOVATOR_EBI_CR_EO)
+
+//-----------------------------------------------------------------------------
+// SDRAM controller
+#define INNOVATOR_SDRAM_BASE (INNOVATOR_BASE + 0x0400)
+#define _SDRAM_TIMING1 0x0000
+#define _SDRAM_TIMING2 0x0004
+#define _SDRAM_CONFIG 0x0008
+#define _SDRAM_REFRESH 0x000c
+#define _SDRAM_ADDR 0x0010
+#define _SDRAM_INIT 0x001c
+#define _SDRAM_MODE0 0x0020
+#define _SDRAM_MODE1 0x0024
+#define INNOVATOR_SDRAM_WIDTH (INNOVATOR_BASE + 0x007c)
+
+
+#define _SDRAM_WIDTH_W 0x00000002
+#define _SDRAM_WIDTH_LK 0x00000001
+
+#if 0
+// Max delays
+#define _SDRAM_TIMING1_INIT 0x00009124
+// CAS-2, 8 words burst, 3 clock refresh
+#define _SDRAM_TIMING2_INIT 0x00000788
+// SDR
+#define _SDRAM_CONFIG_INIT 0x00000000
+// Refresh period of 15us - at a clock of 75MHz that's 1125 cycles
+#define _SDRAM_REFRESH_INIT 1125
+// Rows (12) & columns (10)
+#define _SDRAM_ADDR_INIT 0x0000ca80
+// SDRAM mode (from Micron MT48LC16M8A2 manual)
+// M0-2: burst length = 3 (8 words)
+// M3 : burst type = 0 (sequential vs interleaved)
+// M4-6: CAS latency = 2
+// M7-8: operating mode = 0
+// M9 : write burst mode = 0 (writes are also in burst)
+#define _SDRAM_MODE0_INIT ((2<<4)|3)
+// Unused (for DDR)
+#define _SDRAM_MODE1_INIT 0x00000000
+#endif
+
+#define _SDRAM_INIT_EN 0x00008000
+#define _SDRAM_INIT_PR 0x00004000
+#define _SDRAM_INIT_LM 0x00002000
+#define _SDRAM_INIT_LEM 0x00001000
+#define _SDRAM_INIT_RF 0x00000800
+#define _SDRAM_INIT_BS 0x00000400
+#define _SDRAM_INIT_SR 0x00000200
+
+//-----------------------------------------------------------------------------
+// Watchdog controller
+#define INNOVATOR_WDOG_CR (INNOVATOR_BASE+0x0a00)
+#define INNOVATOR_WDOG_COUNT (INNOVATOR_BASE+0x0a04)
+#define INNOVATOR_WDOG_RELOAD (INNOVATOR_BASE+0x0a08)
+
+//-----------------------------------------------------------------------------
+// Interrupt controller
+#define INNOVATOR_INT_MASK_SET (INNOVATOR_BASE+0x0c00)
+#define INNOVATOR_INT_MASK_CLEAR (INNOVATOR_BASE+0x0c04)
+#define INNOVATOR_INT_SOURCE_STATUS (INNOVATOR_BASE+0x0c08)
+#define INNOVATOR_INT_REQUEST_STATUS (INNOVATOR_BASE+0x0c0c)
+#define INNOVATOR_INT_ID (INNOVATOR_BASE+0x0c10)
+#define INNOVATOR_INT_PLD_PRIORITY (INNOVATOR_BASE+0x0c14)
+#define INNOVATOR_INT_INT_MODE (INNOVATOR_BASE+0x0c18)
+#define INNOVATOR_INT_PRIORITY_0 (INNOVATOR_BASE+0x0c80)
+#define INNOVATOR_INT_PRIORITY_1 (INNOVATOR_BASE+0x0c84)
+#define INNOVATOR_INT_PRIORITY_2 (INNOVATOR_BASE+0x0c88)
+#define INNOVATOR_INT_PRIORITY_3 (INNOVATOR_BASE+0x0c8c)
+#define INNOVATOR_INT_PRIORITY_4 (INNOVATOR_BASE+0x0c90)
+#define INNOVATOR_INT_PRIORITY_5 (INNOVATOR_BASE+0x0c94)
+#define INNOVATOR_INT_PRIORITY_6 (INNOVATOR_BASE+0x0c98)
+#define INNOVATOR_INT_PRIORITY_7 (INNOVATOR_BASE+0x0c9c)
+#define INNOVATOR_INT_PRIORITY_8 (INNOVATOR_BASE+0x0ca0)
+#define INNOVATOR_INT_PRIORITY_9 (INNOVATOR_BASE+0x0ca4)
+#define INNOVATOR_INT_PRIORITY_10 (INNOVATOR_BASE+0x0ca8)
+#define INNOVATOR_INT_PRIORITY_11 (INNOVATOR_BASE+0x0cac)
+#define INNOVATOR_INT_PRIORITY_12 (INNOVATOR_BASE+0x0cb0)
+#define INNOVATOR_INT_PRIORITY_13 (INNOVATOR_BASE+0x0cb4)
+#define INNOVATOR_INT_PRIORITY_14 (INNOVATOR_BASE+0x0cb8)
+#define INNOVATOR_INT_PRIORITY_15 (INNOVATOR_BASE+0x0cbc)
+#define INNOVATOR_INT_PRIORITY_16 (INNOVATOR_BASE+0x0cc0)
+
+#define INNOVATOR_INT_SOURCE_P0 0x00000001
+#define INNOVATOR_INT_SOURCE_P1 0x00000002
+#define INNOVATOR_INT_SOURCE_P2 0x00000004
+#define INNOVATOR_INT_SOURCE_P3 0x00000008
+#define INNOVATOR_INT_SOURCE_P4 0x00000010
+#define INNOVATOR_INT_SOURCE_P5 0x00000020
+#define INNOVATOR_INT_SOURCE_IP 0x00000040
+#define INNOVATOR_INT_SOURCE_UA 0x00000080
+#define INNOVATOR_INT_SOURCE_T0 0x00000100
+#define INNOVATOR_INT_SOURCE_T1 0x00000200
+#define INNOVATOR_INT_SOURCE_PS 0x00000400
+#define INNOVATOR_INT_SOURCE_EE 0x00000800
+#define INNOVATOR_INT_SOURCE_PE 0x00001000
+#define INNOVATOR_INT_SOURCE_AE 0x00002000
+#define INNOVATOR_INT_SOURCE_CT 0x00004000
+#define INNOVATOR_INT_SOURCE_CR 0x00008000
+#define INNOVATOR_INT_SOURCE_FC 0x00010000
+
+#define INNOVATOR_INT_PRIORITY_FIQ 0x00000040
+#define INNOVATOR_INT_PRIORITY_LVL_mask 0x0000003f
+
+//-----------------------------------------------------------------------------
+// PLD
+#define INNOVATOR_PLD_BASE INNOVATOR_PLD_PHYS_BASE
+
+#define INNOVATOR_PLD_LEDS (INNOVATOR_PLD_BASE + 0x0100)
+
+
+#endif
+#endif // CYGONCE_INNOVATOR_H
+//-----------------------------------------------------------------------------
+// end of innovator.h
diff --git a/ecos/packages/hal/arm/arm9/innovator/current/include/pkgconf/mlt_arm_arm9_innovator_ram.h b/ecos/packages/hal/arm/arm9/innovator/current/include/pkgconf/mlt_arm_arm9_innovator_ram.h
new file mode 100644
index 0000000..f6896e1
--- /dev/null
+++ b/ecos/packages/hal/arm/arm9/innovator/current/include/pkgconf/mlt_arm_arm9_innovator_ram.h
@@ -0,0 +1,17 @@
+// eCos memory layout - Tue Aug 07 11:15:51 2001
+
+// This is a generated file - do not edit
+
+#ifndef __ASSEMBLER__
+#include <cyg/infra/cyg_type.h>
+#include <stddef.h>
+
+#endif
+#define CYGMEM_REGION_ram (0x00000000)
+#define CYGMEM_REGION_ram_SIZE (0x02000000)
+#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 (0x02000000 - (size_t) CYG_LABEL_NAME (__heap1))
diff --git a/ecos/packages/hal/arm/arm9/innovator/current/include/pkgconf/mlt_arm_arm9_innovator_ram.ldi b/ecos/packages/hal/arm/arm9/innovator/current/include/pkgconf/mlt_arm_arm9_innovator_ram.ldi
new file mode 100644
index 0000000..807e73c
--- /dev/null
+++ b/ecos/packages/hal/arm/arm9/innovator/current/include/pkgconf/mlt_arm_arm9_innovator_ram.ldi
@@ -0,0 +1,27 @@
+// eCos memory layout - Tue Aug 07 11:15:51 2001
+
+// This is a generated file - do not edit
+
+#include <cyg/infra/cyg_type.inc>
+
+MEMORY
+{
+ ram : ORIGIN = 0x00000000, LENGTH = 0x02000000
+}
+
+SECTIONS
+{
+ SECTIONS_BEGIN
+ SECTION_fixed_vectors (ram, 0x20, LMA_EQ_VMA)
+ SECTION_rom_vectors (ram, 0x20000, 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)
+ CYG_LABEL_DEFN(__heap1) = ALIGN (0x8);
+ SECTIONS_END
+}
diff --git a/ecos/packages/hal/arm/arm9/innovator/current/include/pkgconf/mlt_arm_arm9_innovator_rom.h b/ecos/packages/hal/arm/arm9/innovator/current/include/pkgconf/mlt_arm_arm9_innovator_rom.h
new file mode 100644
index 0000000..a6cd3bf
--- /dev/null
+++ b/ecos/packages/hal/arm/arm9/innovator/current/include/pkgconf/mlt_arm_arm9_innovator_rom.h
@@ -0,0 +1,20 @@
+// eCos memory layout - Tue Aug 07 11:15:51 2001
+
+// This is a generated file - do not edit
+
+#ifndef __ASSEMBLER__
+#include <cyg/infra/cyg_type.h>
+#include <stddef.h>
+
+#endif
+#define CYGMEM_REGION_ram (0x00000000)
+#define CYGMEM_REGION_ram_SIZE (0x02000000)
+#define CYGMEM_REGION_ram_ATTR (CYGMEM_REGION_ATTR_R | CYGMEM_REGION_ATTR_W)
+#define CYGMEM_REGION_rom (0x10000000)
+#define CYGMEM_REGION_rom_SIZE (0x00400000)
+#define CYGMEM_REGION_rom_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 (0x02000000 - (size_t) CYG_LABEL_NAME (__heap1))
diff --git a/ecos/packages/hal/arm/arm9/innovator/current/include/pkgconf/mlt_arm_arm9_innovator_rom.ldi b/ecos/packages/hal/arm/arm9/innovator/current/include/pkgconf/mlt_arm_arm9_innovator_rom.ldi
new file mode 100644
index 0000000..6b22e8a
--- /dev/null
+++ b/ecos/packages/hal/arm/arm9/innovator/current/include/pkgconf/mlt_arm_arm9_innovator_rom.ldi
@@ -0,0 +1,28 @@
+// eCos memory layout - Tue Aug 07 11:15:51 2001
+
+// This is a generated file - do not edit
+
+#include <cyg/infra/cyg_type.inc>
+
+MEMORY
+{
+ ram : ORIGIN = 0x00000000, LENGTH = 0x02000000
+ rom : ORIGIN = 0x10000000, LENGTH = 0x00400000
+}
+
+SECTIONS
+{
+ SECTIONS_BEGIN
+ SECTION_rom_vectors (rom, 0x10000000, 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)
+ CYG_LABEL_DEFN(__heap1) = ALIGN (0x8);
+ SECTIONS_END
+}
diff --git a/ecos/packages/hal/arm/arm9/innovator/current/include/pkgconf/mlt_arm_arm9_innovator_sram.h b/ecos/packages/hal/arm/arm9/innovator/current/include/pkgconf/mlt_arm_arm9_innovator_sram.h
new file mode 100644
index 0000000..d0dad44
--- /dev/null
+++ b/ecos/packages/hal/arm/arm9/innovator/current/include/pkgconf/mlt_arm_arm9_innovator_sram.h
@@ -0,0 +1,20 @@
+// eCos memory layout - Tue Aug 07 11:15:51 2001
+
+// This is a generated file - do not edit
+
+#ifndef __ASSEMBLER__
+#include <cyg/infra/cyg_type.h>
+#include <stddef.h>
+
+#endif
+#define CYGMEM_REGION_sram (0x20000000)
+#define CYGMEM_REGION_sram_SIZE (0x00030000)
+#define CYGMEM_REGION_sram_ATTR (CYGMEM_REGION_ATTR_R | CYGMEM_REGION_ATTR_W)
+#define CYGMEM_REGION_ram (0x00000000)
+#define CYGMEM_REGION_ram_SIZE (0x02000000)
+#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 (0x02000000 - (size_t) CYG_LABEL_NAME (__heap1))
diff --git a/ecos/packages/hal/arm/arm9/innovator/current/include/pkgconf/mlt_arm_arm9_innovator_sram.ldi b/ecos/packages/hal/arm/arm9/innovator/current/include/pkgconf/mlt_arm_arm9_innovator_sram.ldi
new file mode 100644
index 0000000..bf82e1d
--- /dev/null
+++ b/ecos/packages/hal/arm/arm9/innovator/current/include/pkgconf/mlt_arm_arm9_innovator_sram.ldi
@@ -0,0 +1,28 @@
+// eCos memory layout - Tue Aug 07 11:15:51 2001
+
+// This is a generated file - do not edit
+
+#include <cyg/infra/cyg_type.inc>
+
+MEMORY
+{
+ ram : ORIGIN = 0x00000000, LENGTH = 0x02000000
+ sram : ORIGIN = 0x20000000, LENGTH = 0x00030000
+}
+
+SECTIONS
+{
+ SECTIONS_BEGIN
+ SECTION_rom_vectors (sram, 0x20000000, LMA_EQ_VMA)
+ SECTION_text (sram, ALIGN (0x4), LMA_EQ_VMA)
+ SECTION_fini (sram, ALIGN (0x4), LMA_EQ_VMA)
+ SECTION_rodata (sram, ALIGN (0x4), LMA_EQ_VMA)
+ SECTION_rodata1 (sram, ALIGN (0x4), LMA_EQ_VMA)
+ SECTION_fixup (sram, ALIGN (0x4), LMA_EQ_VMA)
+ SECTION_gcc_except_table (sram, 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)
+ CYG_LABEL_DEFN(__heap1) = ALIGN (0x8);
+ SECTIONS_END
+}
diff --git a/ecos/packages/hal/arm/arm9/innovator/current/include/plf_io.h b/ecos/packages/hal/arm/arm9/innovator/current/include/plf_io.h
new file mode 100644
index 0000000..17148d3
--- /dev/null
+++ b/ecos/packages/hal/arm/arm9/innovator/current/include/plf_io.h
@@ -0,0 +1,82 @@
+#ifndef CYGONCE_HAL_ARM_ARM9_INNOVATOR_PLF_IO_H
+#define CYGONCE_HAL_ARM_ARM9_INNOVATOR_PLF_IO_H
+
+/*=============================================================================
+//
+// plf_io.h
+//
+// Platform specific support (register layout, etc)
+//
+//=============================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): Patrick Doyle <wpd@delcomsys.com>
+// Contributors: Patrick Doyle <wpd@delcomsys.com>
+// Date: 2003-01-15
+// Purpose: Platform specific support routines
+// Description:
+// Usage: #include <cyg/hal/hal_io.h>
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================*/
+
+#include <cyg/hal/innovator.h>
+
+#if 0
+#define CYGARC_PHYSICAL_ADDRESS(x) (x)
+#else
+#define HACK_SDRAM_VIRT_BASE 0x00000000
+#define HACK_SDRAM_SIZE 0x02000000
+#define HACK_SDRAM_MASK 0x01ffffff
+#define HACK_SDRAM_PHYS_BASE 0x10000000
+
+#define HACK_FLASH_VIRT_BASE 0x10000000
+#define HACK_FLASH_SIZE 0x00400000
+#define HACK_FLASH_MASK 0x003fffff
+#define HACK_FLASH_PHYS_BASE 0x00000000
+
+#define CYGARC_PHYSICAL_ADDRESS(_x_) \
+({ CYG_ADDRWORD _p = (CYG_ADDRWORD)(_x_); \
+ if (_p >= HACK_SDRAM_VIRT_BASE && \
+ _p < (HACK_SDRAM_VIRT_BASE+HACK_SDRAM_SIZE)) \
+ _p = (_p & HACK_SDRAM_MASK) + HACK_SDRAM_PHYS_BASE; \
+ else if (_p >= HACK_FLASH_VIRT_BASE && \
+ _p < (HACK_FLASH_VIRT_BASE+HACK_FLASH_SIZE)) \
+ _p = (_p & HACK_FLASH_MASK) + HACK_FLASH_PHYS_BASE; \
+ _p; })
+#endif
+#endif // CYGONCE_HAL_ARM_ARM9_INNOVATOR_PLF_IO_H
+// EOF plf_io.h
diff --git a/ecos/packages/hal/arm/arm9/innovator/current/include/plf_stub.h b/ecos/packages/hal/arm/arm9/innovator/current/include/plf_stub.h
new file mode 100644
index 0000000..a740232
--- /dev/null
+++ b/ecos/packages/hal/arm/arm9/innovator/current/include/plf_stub.h
@@ -0,0 +1,83 @@
+#ifndef CYGONCE_HAL_PLF_STUB_H
+#define CYGONCE_HAL_PLF_STUB_H
+
+//=============================================================================
+//
+// plf_stub.h
+//
+// Platform header for GDB stub support.
+//
+//=============================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): Patrick Doyle <wpd@delcomsys.com>
+// Contributor: Patrick Doyle <wpd@delcomsys.com>
+// Date: 2003-01-15
+// Purpose: Platform HAL stub support for Innovator 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/arm_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.
+#define HAL_STUB_PLATFORM_INIT() CYG_EMPTY_STATEMENT
+
+#endif // ifdef CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS
+//-----------------------------------------------------------------------------
+#endif // CYGONCE_HAL_PLF_STUB_H
+// End of plf_stub.h
diff --git a/ecos/packages/hal/arm/arm9/innovator/current/misc/redboot_RAM.ecm b/ecos/packages/hal/arm/arm9/innovator/current/misc/redboot_RAM.ecm
new file mode 100644
index 0000000..f447ddc
--- /dev/null
+++ b/ecos/packages/hal/arm/arm9/innovator/current/misc/redboot_RAM.ecm
@@ -0,0 +1,114 @@
+cdl_savefile_version 1;
+cdl_savefile_command cdl_savefile_version {};
+cdl_savefile_command cdl_savefile_command {};
+cdl_savefile_command cdl_configuration { description hardware template package };
+cdl_savefile_command cdl_package { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_component { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_option { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_interface { value_source user_value wizard_value inferred_value };
+
+cdl_configuration eCos {
+ description "" ;
+ hardware innovator ;
+ template redboot ;
+ package -hardware CYGPKG_HAL_ARM current ;
+ package -hardware CYGPKG_HAL_ARM_ARM9 current ;
+ package -hardware CYGPKG_HAL_ARM_ARM9_INNOVATOR current ;
+ package -hardware CYGPKG_DEVS_FLASH_AMD_AM29XXXXX current ;
+ package -hardware CYGPKG_DEVS_FLASH_ARM_INNOVATOR current ;
+ package -hardware CYGPKG_DEVS_ETH_SMSC_LAN91CXX current ;
+ package -hardware CYGPKG_DEVS_ETH_ARM_INNOVATOR current ;
+ package -template CYGPKG_HAL current ;
+ package -template CYGPKG_INFRA current ;
+ package -template CYGPKG_REDBOOT current ;
+ package -template CYGPKG_ISOINFRA current ;
+ package -template CYGPKG_LIBC_STRING current ;
+ package -template CYGPKG_CRC current ;
+ package CYGPKG_NS_DNS current ;
+ package CYGPKG_MEMALLOC current ;
+ package CYGPKG_IO_FLASH current ;
+ package CYGPKG_IO_ETH_DRIVERS current ;
+ package CYGPKG_COMPRESS_ZLIB current ;
+};
+
+cdl_option CYGFUN_LIBC_STRING_BSD_FUNCS {
+ inferred_value 0
+};
+
+cdl_option CYGNUM_HAL_COMMON_INTERRUPTS_STACK_SIZE {
+ user_value 6144
+};
+
+cdl_option CYGDBG_HAL_COMMON_INTERRUPTS_SAVE_MINIMUM_CONTEXT {
+ user_value 0
+};
+
+cdl_option CYGDBG_HAL_COMMON_CONTEXT_SAVE_MINIMUM {
+ inferred_value 0
+};
+
+cdl_option CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS {
+ inferred_value 1
+};
+
+cdl_option CYGSEM_HAL_ROM_MONITOR {
+ inferred_value 0
+};
+
+cdl_option CYGSEM_HAL_USE_ROM_MONITOR {
+ inferred_value 0 0
+};
+
+cdl_option CYGPKG_HAL_ARM_ARM9_ARM925T {
+ inferred_value 1
+};
+
+cdl_component CYG_HAL_STARTUP {
+ user_value RAM
+};
+
+cdl_component CYGBLD_BUILD_REDBOOT {
+ user_value 1
+};
+
+cdl_option CYGBLD_REDBOOT_MIN_IMAGE_SIZE {
+ user_value 0x00030000
+};
+
+cdl_option CYGHWR_REDBOOT_ARM_LINUX_EXEC_ADDRESS_DEFAULT {
+ inferred_value 0x10008000
+};
+
+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_BSD_FUNCS_HEADER {
+ inferred_value 1 <cyg/libc/string/bsdstring.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_DNS_HEADER {
+ inferred_value 1 <cyg/ns/dns/dns.h>
+};
+
+cdl_option CYGPKG_NS_DNS_BUILD {
+ inferred_value 0
+};
+
+cdl_option CYGHWR_DEVS_FLASH_AMD_AM29DL323D {
+ inferred_value 1
+};
+
+
diff --git a/ecos/packages/hal/arm/arm9/innovator/current/misc/redboot_ROM.ecm b/ecos/packages/hal/arm/arm9/innovator/current/misc/redboot_ROM.ecm
new file mode 100644
index 0000000..12a92f8
--- /dev/null
+++ b/ecos/packages/hal/arm/arm9/innovator/current/misc/redboot_ROM.ecm
@@ -0,0 +1,114 @@
+cdl_savefile_version 1;
+cdl_savefile_command cdl_savefile_version {};
+cdl_savefile_command cdl_savefile_command {};
+cdl_savefile_command cdl_configuration { description hardware template package };
+cdl_savefile_command cdl_package { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_component { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_option { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_interface { value_source user_value wizard_value inferred_value };
+
+cdl_configuration eCos {
+ description "" ;
+ hardware innovator ;
+ template redboot ;
+ package -hardware CYGPKG_HAL_ARM current ;
+ package -hardware CYGPKG_HAL_ARM_ARM9 current ;
+ package -hardware CYGPKG_HAL_ARM_ARM9_INNOVATOR current ;
+ package -hardware CYGPKG_DEVS_FLASH_AMD_AM29XXXXX current ;
+ package -hardware CYGPKG_DEVS_FLASH_ARM_INNOVATOR current ;
+ package -hardware CYGPKG_DEVS_ETH_SMSC_LAN91CXX current ;
+ package -hardware CYGPKG_DEVS_ETH_ARM_INNOVATOR current ;
+ package -template CYGPKG_HAL current ;
+ package -template CYGPKG_INFRA current ;
+ package -template CYGPKG_REDBOOT current ;
+ package -template CYGPKG_ISOINFRA current ;
+ package -template CYGPKG_LIBC_STRING current ;
+ package -template CYGPKG_CRC current ;
+ package CYGPKG_NS_DNS current ;
+ package CYGPKG_MEMALLOC current ;
+ package CYGPKG_IO_FLASH current ;
+ package CYGPKG_IO_ETH_DRIVERS current ;
+ package CYGPKG_COMPRESS_ZLIB current ;
+};
+
+cdl_option CYGFUN_LIBC_STRING_BSD_FUNCS {
+ inferred_value 0
+};
+
+cdl_option CYGNUM_HAL_COMMON_INTERRUPTS_STACK_SIZE {
+ user_value 6144
+};
+
+cdl_option CYGDBG_HAL_COMMON_INTERRUPTS_SAVE_MINIMUM_CONTEXT {
+ user_value 0
+};
+
+cdl_option CYGDBG_HAL_COMMON_CONTEXT_SAVE_MINIMUM {
+ inferred_value 0
+};
+
+cdl_option CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS {
+ inferred_value 1
+};
+
+cdl_option CYGSEM_HAL_ROM_MONITOR {
+ inferred_value 1
+};
+
+cdl_option CYGSEM_HAL_USE_ROM_MONITOR {
+ inferred_value 0 0
+};
+
+cdl_option CYGPKG_HAL_ARM_ARM9_ARM925T {
+ inferred_value 1
+};
+
+cdl_component CYG_HAL_STARTUP {
+ user_value ROM
+};
+
+cdl_component CYGBLD_BUILD_REDBOOT {
+ user_value 1
+};
+
+cdl_option CYGBLD_REDBOOT_MIN_IMAGE_SIZE {
+ user_value 0x00030000
+};
+
+cdl_option CYGHWR_REDBOOT_ARM_LINUX_EXEC_ADDRESS_DEFAULT {
+ inferred_value 0x10008000
+};
+
+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_BSD_FUNCS_HEADER {
+ inferred_value 1 <cyg/libc/string/bsdstring.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_DNS_HEADER {
+ inferred_value 1 <cyg/ns/dns/dns.h>
+};
+
+cdl_option CYGPKG_NS_DNS_BUILD {
+ inferred_value 0
+};
+
+cdl_option CYGHWR_DEVS_FLASH_AMD_AM29DL323D {
+ inferred_value 1
+};
+
+
diff --git a/ecos/packages/hal/arm/arm9/innovator/current/misc/redboot_SRAM.ecm b/ecos/packages/hal/arm/arm9/innovator/current/misc/redboot_SRAM.ecm
new file mode 100644
index 0000000..e8663e4
--- /dev/null
+++ b/ecos/packages/hal/arm/arm9/innovator/current/misc/redboot_SRAM.ecm
@@ -0,0 +1,122 @@
+cdl_savefile_version 1;
+cdl_savefile_command cdl_savefile_version {};
+cdl_savefile_command cdl_savefile_command {};
+cdl_savefile_command cdl_configuration { description hardware template package };
+cdl_savefile_command cdl_package { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_component { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_option { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_interface { value_source user_value wizard_value inferred_value };
+
+cdl_configuration eCos {
+ description "" ;
+ hardware innovator ;
+ template redboot ;
+ package -hardware CYGPKG_HAL_ARM current ;
+ package -hardware CYGPKG_HAL_ARM_ARM9 current ;
+ package -hardware CYGPKG_HAL_ARM_ARM9_INNOVATOR current ;
+ package -hardware CYGPKG_DEVS_FLASH_AMD_AM29XXXXX current ;
+ package -hardware CYGPKG_DEVS_FLASH_ARM_INNOVATOR current ;
+ package -hardware CYGPKG_DEVS_ETH_SMSC_LAN91CXX current ;
+ package -hardware CYGPKG_DEVS_ETH_ARM_INNOVATOR current ;
+ package -template CYGPKG_HAL current ;
+ package -template CYGPKG_INFRA current ;
+ package -template CYGPKG_REDBOOT current ;
+ package -template CYGPKG_ISOINFRA current ;
+ package -template CYGPKG_LIBC_STRING current ;
+ package -template CYGPKG_CRC current ;
+ package CYGPKG_NS_DNS current ;
+ package CYGPKG_MEMALLOC current ;
+ package CYGPKG_IO_FLASH current ;
+ package CYGPKG_IO_ETH_DRIVERS current ;
+ package CYGPKG_COMPRESS_ZLIB current ;
+};
+
+cdl_option CYGFUN_LIBC_STRING_BSD_FUNCS {
+ inferred_value 0
+};
+
+cdl_option CYGNUM_HAL_COMMON_INTERRUPTS_STACK_SIZE {
+ user_value 6144
+};
+
+cdl_option CYGDBG_HAL_COMMON_INTERRUPTS_SAVE_MINIMUM_CONTEXT {
+ user_value 0
+};
+
+cdl_option CYGDBG_HAL_COMMON_CONTEXT_SAVE_MINIMUM {
+ inferred_value 0
+};
+
+cdl_component CYGSEM_HAL_ENABLE_DCACHE_ON_STARTUP {
+ user_value 0
+};
+
+cdl_option CYGSEM_HAL_ENABLE_ICACHE_ON_STARTUP {
+ user_value 0
+};
+
+cdl_option CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS {
+ inferred_value 1
+};
+
+cdl_option CYGSEM_HAL_ROM_MONITOR {
+ inferred_value 1
+};
+
+cdl_option CYGSEM_HAL_USE_ROM_MONITOR {
+ inferred_value 0 0
+};
+
+cdl_option CYGPKG_HAL_ARM_ARM9_ARM925T {
+ inferred_value 1
+};
+
+cdl_component CYG_HAL_STARTUP {
+ user_value ROM
+};
+
+cdl_option CYGPRI_HAL_ROM_MLT {
+ user_value SRAM
+};
+
+cdl_component CYGBLD_BUILD_REDBOOT {
+ user_value 1
+};
+
+cdl_option CYGHWR_REDBOOT_ARM_LINUX_EXEC_ADDRESS_DEFAULT {
+ inferred_value 0x10008000
+};
+
+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_BSD_FUNCS_HEADER {
+ inferred_value 1 <cyg/libc/string/bsdstring.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_DNS_HEADER {
+ inferred_value 1 <cyg/ns/dns/dns.h>
+};
+
+cdl_option CYGPKG_NS_DNS_BUILD {
+ inferred_value 0
+};
+
+cdl_option CYGHWR_DEVS_FLASH_AMD_AM29DL323D {
+ inferred_value 1
+};
+
+
diff --git a/ecos/packages/hal/arm/arm9/innovator/current/src/hal_diag.c b/ecos/packages/hal/arm/arm9/innovator/current/src/hal_diag.c
new file mode 100644
index 0000000..8e9212d
--- /dev/null
+++ b/ecos/packages/hal/arm/arm9/innovator/current/src/hal_diag.c
@@ -0,0 +1,571 @@
+//=============================================================================
+//
+// hal_diag.c
+//
+// HAL diagnostic output code
+//
+//=============================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): Patrick Doyle <wpd@delcomsys.com>
+// Contributors:Patrick Doyle <wpd@delcomsys.com>
+// Date: 2002-12-17
+// Purpose: HAL diagnostic output
+// This file contains the type definitions, constants, and function
+// prototoypes that implement very simple access to the UART on the
+// OMAP part.
+// Description: Implementations of HAL diagnostic output support.
+//
+//####DESCRIPTIONEND####
+//
+//=============================================================================
+
+#include <pkgconf/hal.h>
+#include CYGBLD_HAL_VARIANT_H // Variant specific configuration
+#include CYGBLD_HAL_PLATFORM_H // Platform specific configuration
+
+#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> // basic machine info
+#include <cyg/hal/hal_intr.h> // interrupt macros
+#include <cyg/hal/hal_io.h> // IO macros
+#include <cyg/hal/hal_diag.h>
+#include <cyg/hal/drv_api.h>
+#include <cyg/hal/hal_if.h> // interface API
+#include <cyg/hal/hal_misc.h> // Helper functions
+#include <cyg/hal/innovator.h> // platform definitions
+
+//-----------------------------------------------------------------------------
+
+#define CYG_DEVICE_SERIAL_BAUD_DIV (CYGNUM_HAL_ARM_INNOVATOR_PERIPHERAL_CLOCK/CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_BAUD/16)
+#define CYG_DEVICE_SERIAL_BAUD_LSB (CYG_DEVICE_SERIAL_BAUD_DIV&0xff)
+#define CYG_DEVICE_SERIAL_BAUD_MSB ((CYG_DEVICE_SERIAL_BAUD_DIV>>8)&0xff)
+
+//-----------------------------------------------------------------------------
+typedef struct {
+ cyg_int32 msec_timeout;
+#ifdef LATER
+ cyg_uint32 base;
+ int isr_vector;
+#endif
+} channel_data_t;
+
+/************************************************************************
+ * Useful definitions -- note that 'USE_MODEM_UART' has not been extensively
+ * tested nor debugged (read -- it probably doesn't work).
+ ************************************************************************/
+/*#define USE_MODEM_UART*/
+#ifdef USE_MODEM_UART
+#define BASE_ADDR 0xfffce800
+#define STRIDE 1
+#else
+#define BASE_ADDR 0xfffb0000
+#define STRIDE 4
+#endif
+
+#define RHR 0x00
+#define THR 0x00
+#define DLL 0x00
+#define DLH 0x01
+#define IER 0x01
+#define FCR 0x02
+#define EFR 0x02
+#define IIR 0x02
+#define LCR 0x03
+#define MCR 0x04
+#define XON1 0x04
+#define LSR 0x05
+#define XON2 0x05
+#define MSR 0x06
+#define TCR 0x06
+#define XOFF1 0x06
+#define SPR 0x07
+#define TLR 0x07
+#define XOFF2 0x07
+#define MDR1 0x08
+#define UASR 0x0e
+#define SCR 0x10
+#define SSR 0x11
+#define OSC_12M 0x13
+
+
+/************************************************************************
+ * Data local to this file
+ ************************************************************************/
+#define write_serial(offset, value) \
+ *(volatile char *)(BASE_ADDR + STRIDE * (offset)) = value
+
+#define read_serial(offset) \
+ (*(volatile char *)(BASE_ADDR + STRIDE * (offset)))
+
+/************************************************************************
+ * Forward References
+ ************************************************************************/
+
+/************************************************************************
+ * Function:
+ * init_uart()
+ *
+ * Purpose:
+ * This procedure may be called in order to initialize the UART
+ * prior to use.
+ *
+ * Operation:
+ * Set up the UART for 115,200 baud, 8 bits, 1 stop bit, no parity.
+ *
+ * The UART is defined by the 'BASE_ADDR' macro.
+ *
+ * Notes/Issues:
+ * This pays some lip service to being able to use UART3, but since
+ * it seems to me that the use of UART3 requires that the DSP do
+ * some setup (at least, until I learn more), it probably won't
+ * work for UART3.
+ ************************************************************************/
+static void
+quick_init_uart(void)
+{
+ /* UART Software Reset */
+ write_serial(LCR, 0xBF); /* Access to EFR & UART break is removed */
+ write_serial(EFR, BIT_04); /* Set EFR[4] = 0x1 */
+ write_serial(LCR, 0x00); /* Access to IER & MCR is allowed */
+
+ write_serial(IER, 0x00); /* Disable all interrupts */
+ write_serial(MCR, 0x00); /* DTR, RTS, XON, loopbback inactive */
+
+ write_serial(MDR1,0x07); /* UART is in reset */
+
+ /* UART FIFO Configuration */
+ write_serial(MCR, read_serial(MCR) | BIT_06); /* Set MCR[6] = 1 */
+ write_serial(TCR, 0x0F); /* RTS off when Rx FIFO at 60 bytes, on at 0 */
+ write_serial(TLR, 0x88); /* set TX & RX trigger levels each to 32 */
+ write_serial(FCR, 0x07); /* Enable & reset FIFOs, triggers at 8 */
+ write_serial(LCR, 0xBF); /* Access EFR */
+ write_serial(EFR, 0xC0); /* Enable auto RTS & CTS */
+ write_serial(LCR, 0x00); /* Access to IER & MCR is allowed */
+ write_serial(MCR, read_serial(MCR) & ~BIT_06); /* Clear MCR[6] */
+
+ /* Baud Rate and Stop Configuration */
+ write_serial(LCR, 0x03); /* 8,N,1 */
+#ifdef USE_MODEM_UART
+ write_serial(LCR, 0x83); /* gain access to DLH and DLL */
+ write_serial(DLH, 0x00); /* Divisor value = Operating Freq/(16 x Baud Rate) */
+ write_serial(DLL, 0x0D); /* DPLL2 configured for Operating Freq = 24 MHz */
+ /* Baud Rate = 115,200 bps */
+#else
+ write_serial(OSC_12M, 1);/* Set divisor value to 6.5 */
+ write_serial(LCR, 0x83); /* gain access to DLH and DLL */
+ write_serial(DLH, 0x00); /* Divisor value =
+ * Operating Freq/(16 x 6.5 x Baud Rate) */
+ write_serial(DLL, 0x01); /* DPLL2 configured for Operating Freq = 12 MHz */
+ /* Baud Rate = 115,200 bps */
+#endif
+ write_serial(LCR, 0x03); /* restore LCR */
+
+ write_serial(MDR1,0x00); /* enable UART */
+}
+
+/************************************************************************
+ * Function:
+ * putchar(c)
+ *
+ * Purpose:
+ * This procedure may be called in order to output a character on
+ * the serial port. It blocks until the serial port TX FIFO is
+ * empty.
+ *
+ * Operation:
+ * Write character to the Transmit Holding Register (THR). Can
+ * optionally map the Linefeed character to a Carriage Return
+ * character and/or output a Carriage Return character whenever
+ * a Linefeed character is seen, depending on #ifdefs.
+ *
+ * Notes/Issues:
+ * This could be optimized to block only when the serial port TX
+ * FIFO is full.
+ ************************************************************************/
+static void
+quick_putchar(char c)
+{
+/* #define MAP_LF_TO_CR */
+#ifdef MAP_LF_TO_CR
+ if (c == '\n') {
+ c = '\r';
+ }
+#endif
+ while ((read_serial(LSR) & 0x20) == 0) ;
+ write_serial(THR, c);
+
+/* #define DO_CRLF */
+#ifdef DO_CRLF
+ if (c == '\n') {
+ quick_putchar('\r');
+ }
+#endif
+}
+
+/************************************************************************
+ * Function:
+ * getchar()
+ *
+ * Purpose:
+ * This function may be called in order to read a character from
+ * the serial port.
+ *
+ * Operation:
+ * Poll the Line Status register until it indicates a character has
+ * been received. Return the character to the caller.
+ *
+ * Notes/Issues:
+ *
+ ************************************************************************/
+static int
+quick_getchar(void)
+{
+ while ((read_serial(LSR) & 0x01) == 0) ;
+ return(read_serial(RHR));
+}
+
+/************************************************************************
+ * Function:
+ * getchar_nonblock()
+ *
+ * Purpose:
+ * This function may be called in order to read a character from
+ * the serial port.
+ *
+ * Operation:
+ * Poll the Line Status register until it indicates a character has
+ * been received. Return the character to the caller.
+ *
+ * Notes/Issues:
+ *
+ ************************************************************************/
+static int
+quick_getchar_nonblock(char *c)
+{
+ if ((read_serial(LSR) & 0x01) == 0) {
+ return(0);
+ } else {
+ *c = read_serial(RHR);
+ return(1);
+ }
+}
+
+//-----------------------------------------------------------------------------
+
+static void
+cyg_hal_plf_serial_init_channel(void* __ch_data)
+{
+#ifdef LATER
+ cyg_uint32 base = ((channel_data_t*)__ch_data)->base;
+
+ // 8-1-no parity.
+ HAL_WRITE_UINT32(base+_UART_MC, _UART_MC_8BIT | _UART_MC_1STOP | _UART_MC_PARITY_NONE);
+
+ HAL_WRITE_UINT32(base+_UART_DIV_LO, CYG_DEVICE_SERIAL_BAUD_LSB);
+ HAL_WRITE_UINT32(base+_UART_DIV_HI, CYG_DEVICE_SERIAL_BAUD_MSB);
+ HAL_WRITE_UINT32(base+_UART_FCR, (_UART_FCR_TC | _UART_FCR_RC |
+ _UART_FCR_TX_THR_15 | _UART_FCR_RX_THR_1)); // clear & enableFIFO
+
+ // enable RX interrupts - otherwise ISR cannot be polled. Actual
+ // interrupt control of serial happens via INT_MASK
+ HAL_WRITE_UINT32(base+_UART_IES, _UART_INTS_RE);
+#endif
+}
+
+void
+cyg_hal_plf_serial_putc(void *__ch_data, char c)
+{
+#ifdef LATER
+ cyg_uint32 base = ((channel_data_t*)__ch_data)->base;
+ cyg_uint32 tsr;
+ CYGARC_HAL_SAVE_GP();
+
+ do {
+ HAL_READ_UINT32(base+_UART_TSR, tsr);
+ // Wait for TXI flag to be set - or for the register to be
+ // zero (works around a HW bug it seems).
+ } while (tsr && (tsr & _UART_TSR_TXI) == 0);
+
+ HAL_WRITE_UINT32(base+_UART_TD, (cyg_uint32)(unsigned char)c);
+
+ CYGARC_HAL_RESTORE_GP();
+#else
+ quick_putchar(c);
+#endif
+}
+
+static cyg_bool
+cyg_hal_plf_serial_getc_nonblock(void* __ch_data, cyg_uint8* ch)
+{
+#ifdef LATER
+ cyg_uint32 base = ((channel_data_t*)__ch_data)->base;
+ cyg_uint32 rsr, isr, data;
+
+ HAL_READ_UINT32(base+_UART_ISR, isr);
+ if (0 == (isr & _UART_INTS_RI)) {
+ HAL_READ_UINT32(base+_UART_RSR, rsr);
+ if (0 == rsr)
+ return false;
+ }
+
+ HAL_READ_UINT32(base+_UART_RD, data);
+ *ch = (cyg_uint8)(data & 0xff);
+
+ // Read RSR to clear interrupt, and RDS to clear errors
+ HAL_READ_UINT32(base+_UART_RSR, data);
+ HAL_READ_UINT32(base+_UART_RDS, data);
+
+ return true;
+#else
+ return(quick_getchar_nonblock(ch));
+#endif
+}
+
+cyg_uint8
+cyg_hal_plf_serial_getc(void* __ch_data)
+{
+#ifdef LATER
+ cyg_uint8 ch;
+ CYGARC_HAL_SAVE_GP();
+
+ while(!cyg_hal_plf_serial_getc_nonblock(__ch_data, &ch));
+
+ CYGARC_HAL_RESTORE_GP();
+ return ch;
+#else
+ return(quick_getchar());
+#endif
+}
+
+static channel_data_t innovator_ser_channels[1] = {
+ { 1000 }
+};
+
+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;
+ int ret = 0;
+ CYGARC_HAL_SAVE_GP();
+
+ switch (__func) {
+ case __COMMCTL_IRQ_ENABLE:
+ irq_state = 1;
+
+ // Need to keep it enabled to allow polling using ISR
+ //HAL_WRITE_UINT32(chan->base+_UART_IES, _UART_INTS_RE);
+
+#ifdef LATER
+ HAL_INTERRUPT_UNMASK(chan->isr_vector);
+#endif
+ break;
+ case __COMMCTL_IRQ_DISABLE:
+ ret = irq_state;
+ irq_state = 0;
+
+ // Need to keep it enabled to allow polling using ISR
+ // HAL_WRITE_UINT32(chan->base+_UART_IEC, _UART_INTS_RE);
+
+#ifdef LATER
+ HAL_INTERRUPT_MASK(chan->isr_vector);
+#endif
+ break;
+ case __COMMCTL_DBG_ISR_VECTOR:
+#ifdef LATER
+ ret = chan->isr_vector;
+#else
+ ret = 0;
+#endif
+ 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)
+{
+#ifdef LATER
+ int res = 0;
+ channel_data_t* chan = (channel_data_t*)__ch_data;
+ cyg_uint32 isr, ch, rsr;
+ char c;
+ CYGARC_HAL_SAVE_GP();
+
+ cyg_drv_interrupt_acknowledge(chan->isr_vector);
+
+ *__ctrlc = 0;
+ HAL_READ_UINT32(chan->base+_UART_ISR, isr);
+ HAL_READ_UINT32(chan->base+_UART_RSR, rsr);
+
+ // Again, check both RI and the RX FIFO count.
+ if ( ((isr & _UART_INTS_RI) != 0 ) || (rsr) ) {
+
+ HAL_READ_UINT32(chan->base+_UART_RD, ch);
+
+ c = (char)ch;
+ if( cyg_hal_is_break( &c , 1 ) )
+ *__ctrlc = 1;
+
+ res = CYG_ISR_HANDLED;
+ }
+
+ CYGARC_HAL_RESTORE_GP();
+ return res;
+#else
+ return 0;
+#endif
+}
+
+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);
+
+#ifdef LATER
+ // Disable interrupts.
+ HAL_INTERRUPT_MASK(innovator_ser_channels[0].isr_vector);
+
+ // Init channels
+ cyg_hal_plf_serial_init_channel(&innovator_ser_channels[0]);
+#else
+ quick_init_uart();
+#endif
+
+ // 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, &innovator_ser_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);
+
+ // 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();
+}
+
+//-----------------------------------------------------------------------------
+// LEDs
+void
+hal_diag_led(int n)
+{
+}
+
+//-----------------------------------------------------------------------------
+// End of hal_diag.c
diff --git a/ecos/packages/hal/arm/arm9/innovator/current/src/innovator_misc.c b/ecos/packages/hal/arm/arm9/innovator/current/src/innovator_misc.c
new file mode 100644
index 0000000..a3955c6
--- /dev/null
+++ b/ecos/packages/hal/arm/arm9/innovator/current/src/innovator_misc.c
@@ -0,0 +1,451 @@
+//==========================================================================
+//
+// innovator_misc.c
+//
+// HAL misc board support code for ARM9/INNOVATOR
+//
+//==========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//==========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): Patrick Doyle <wpd@delcomsys.com>
+// Contributors: Patrick Doyle <wpd@delcomsys.com>
+// Date: 2002-12-17
+// 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/innovator.h> // Platform specifics
+
+#include <cyg/infra/diag.h> // diag_printf
+
+#include <string.h> // memset
+
+// -------------------------------------------------------------------------
+// MMU initialization:
+//
+// These structures are laid down in memory to define the translation
+// table.
+//
+
+// ARM Translation Table Base Bit Masks
+#define ARM_TRANSLATION_TABLE_MASK 0xFFFFC000
+
+// ARM 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.imp = 1; \
+ 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 = INNOVATOR_SDRAM_PHYS_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, 0x100, 4, ARM_CACHEABLE, ARM_UNBUFFERABLE, ARM_ACCESS_PERM_RW_RW); // FLASH CS0
+ X_ARM_MMU_SECTION(0x100, 0x000, 32, ARM_CACHEABLE, ARM_BUFFERABLE, ARM_ACCESS_PERM_RW_RW); // SDRAM
+ X_ARM_MMU_SECTION(0x080, 0x080, 1, ARM_UNCACHEABLE, ARM_UNBUFFERABLE, ARM_ACCESS_PERM_RW_RW); // FPGA
+ X_ARM_MMU_SECTION(0x200, 0x200, 1, ARM_CACHEABLE, ARM_BUFFERABLE, ARM_ACCESS_PERM_RW_RW); // Internal SRAM
+ X_ARM_MMU_SECTION(0xE00, 0xE00, 512, ARM_UNCACHEABLE, ARM_UNBUFFERABLE, ARM_ACCESS_PERM_RW_RW); // Internal Peripherals
+}
+
+//----------------------------------------------------------------------------
+// Platform specific initialization
+
+void
+plf_hardware_init(void)
+{
+#ifdef LATER
+ // Disable PLD interrupts
+ HAL_WRITE_UINT32(INNOVATOR_INT_MASK_CLEAR,
+ INNOVATOR_INT_SOURCE_P0 | INNOVATOR_INT_SOURCE_P1 |
+ INNOVATOR_INT_SOURCE_P2 | INNOVATOR_INT_SOURCE_P3 |
+ INNOVATOR_INT_SOURCE_P4 | INNOVATOR_INT_SOURCE_P5);
+ // Make PLD0 generate IRQ
+ HAL_WRITE_UINT32(INNOVATOR_INT_PRIORITY_0, 0);
+#endif
+ cyg_uint8 tmp;
+ // This should be protected by some sort of #ifdef to test to see if
+ // the ethernet has been enabled or not. I'll add that later.
+ HAL_READ_UINT8(0x0800000B, tmp);
+ HAL_WRITE_UINT8(0x0800000B, tmp & ~1);
+ HAL_DELAY_US(750);
+
+}
+
+// -------------------------------------------------------------------------
+void
+hal_clock_initialize(cyg_uint32 period)
+{
+#ifdef LATER
+ cyg_uint32 cr;
+
+ HAL_WRITE_UINT32(INNOVATOR_TIMER0_CR, 0);
+ HAL_WRITE_UINT32(INNOVATOR_TIMER0_PRE, CYGNUM_HAL_ARM_INNOVATOR_TIMER_PRESCALE - 1);
+ HAL_WRITE_UINT32(INNOVATOR_TIMER0_LIMIT, period);
+ cr = INNOVATOR_TIMER_CR_MODE_HEARBEAT | INNOVATOR_TIMER_CR_IE;
+ HAL_WRITE_UINT32(INNOVATOR_TIMER0_CR, cr);
+ HAL_WRITE_UINT32(INNOVATOR_TIMER0_CR, cr | INNOVATOR_TIMER_CR_S);
+
+ // Unmask timer 0 interrupt
+ HAL_INTERRUPT_CONFIGURE( CYGNUM_HAL_INTERRUPT_RTC, 1, 1 );
+ HAL_INTERRUPT_UNMASK( CYGNUM_HAL_INTERRUPT_RTC );
+#endif
+}
+
+// This routine is called during a clock interrupt.
+void
+hal_clock_reset(cyg_uint32 vector, cyg_uint32 period)
+{
+#ifdef LATER
+ cyg_uint32 cr;
+
+ // Clear pending interrupt bit
+ HAL_READ_UINT32(INNOVATOR_TIMER0_CR, cr);
+ cr |= INNOVATOR_TIMER_CR_CI;
+ HAL_WRITE_UINT32(INNOVATOR_TIMER0_CR, cr);
+#endif
+}
+
+// Read the current value of the clock, returning the number of hardware
+// "ticks" that have occurred (i.e. how far away the current value is from
+// the start)
+
+void
+hal_clock_read(cyg_uint32 *pvalue)
+{
+#ifdef LATER
+ cyg_uint32 ctr;
+
+ HAL_READ_UINT32(INNOVATOR_TIMER0_READ, ctr);
+ *pvalue = ctr;
+#endif
+}
+
+//
+// Delay for some number of micro-seconds
+//
+void
+hal_delay_us(cyg_int32 usecs)
+{
+#ifdef LATER
+ // Use timer 2
+ cyg_uint32 cr;
+ // Divide by 1000000 in two steps to preserve precision.
+ cyg_uint32 wait_clocks = ((CYGNUM_HAL_ARM_INNOVATOR_PERIPHERAL_CLOCK/100000)*usecs)/10;
+
+ HAL_WRITE_UINT32(INNOVATOR_TIMER1_CR, 0);
+ HAL_WRITE_UINT32(INNOVATOR_TIMER1_PRE, 0);
+ HAL_WRITE_UINT32(INNOVATOR_TIMER1_LIMIT, wait_clocks);
+ cr = INNOVATOR_TIMER_CR_MODE_ONE_SHOT|INNOVATOR_TIMER_CR_CI;
+ HAL_WRITE_UINT32(INNOVATOR_TIMER1_CR, cr);
+ HAL_WRITE_UINT32(INNOVATOR_TIMER1_CR, cr | INNOVATOR_TIMER_CR_S);
+
+ // wait for start bit to clear
+ do {
+ HAL_READ_UINT32(INNOVATOR_TIMER1_CR, cr);
+ } while ((INNOVATOR_TIMER_CR_S & cr) != 0);
+
+ //clear interrupt flag
+ HAL_WRITE_UINT32(INNOVATOR_TIMER1_CR, 0);
+#else
+#if 0
+ volatile unsigned long long x;
+ volatile unsigned long long loop_count = usecs / 10 + 1;
+
+ for (x = 0; x < loop_count; x++) ;
+#else
+ volatile cyg_uint32 *CNTL_TIMER = (volatile cyg_uint32 *)(0xFFFEC500 + 0x00);
+ volatile cyg_uint32 *LOAD_TIM = (volatile cyg_uint32 *)(0xFFFEC500 + 0x04);
+ volatile cyg_uint32 *READ_TIM = (volatile cyg_uint32 *)(0xFFFEC500 + 0x08);
+ cyg_uint32 timer_val, prev_val;
+ int too_long = 0;
+
+ if (usecs <= 0) {
+ return;
+ } else if (usecs > 357913941) {
+ /* Clamp at MAX_INT32 / 6 */
+ usecs = 357913941;
+ }
+ /* Enable the clock and halt the timer */
+ HAL_WRITE_UINT32(CNTL_TIMER, 0x00000020);
+
+ /* Load the timer */
+ HAL_WRITE_UINT32(LOAD_TIM, 6 * usecs);
+
+ /* Start the timer */
+ HAL_READ_UINT32(READ_TIM, prev_val);
+ HAL_WRITE_UINT32(CNTL_TIMER, 0x00000021);
+
+ /* Wait for it to load (but not too long) */
+ do {
+ HAL_READ_UINT32(READ_TIM, timer_val);
+ if (++too_long >= 100) {
+ break;
+ }
+ } while (timer_val == prev_val);
+
+ /* Wait for it to count down to zero */
+ do {
+ HAL_READ_UINT32(READ_TIM, timer_val);
+ } while (timer_val > 0);
+#endif
+#endif
+}
+
+// -------------------------------------------------------------------------
+
+// This routine is called to respond to a hardware interrupt (IRQ). It
+// should interrogate the hardware and return the IRQ vector number.
+int
+hal_IRQ_handler(void)
+{
+#ifdef LATER
+ int vec;
+ cyg_uint32 isr;
+
+ HAL_READ_UINT32(INNOVATOR_INT_REQUEST_STATUS, isr);
+ for (vec = CYGNUM_HAL_INTERRUPT_PLD_0;
+ vec <= CYGNUM_HAL_INTERRUPT_FAST_COMMS; vec++) {
+ if (isr & (1<<vec)) {
+ return vec;
+ }
+ }
+#endif
+ return CYGNUM_HAL_INTERRUPT_NONE;
+}
+
+//----------------------------------------------------------------------------
+// Interrupt control
+//
+void
+hal_interrupt_mask(int vector)
+{
+#ifdef LATER
+ CYG_ASSERT(vector <= CYGNUM_HAL_ISR_MAX &&
+ vector >= CYGNUM_HAL_ISR_MIN , "Invalid vector");
+
+ HAL_WRITE_UINT32(INNOVATOR_INT_MASK_CLEAR, 1<<vector);
+#endif
+}
+
+void
+hal_interrupt_unmask(int vector)
+{
+#ifdef LATER
+ CYG_ASSERT(vector <= CYGNUM_HAL_ISR_MAX &&
+ vector >= CYGNUM_HAL_ISR_MIN , "Invalid vector");
+
+ HAL_WRITE_UINT32(INNOVATOR_INT_MASK_SET, 1<<vector);
+#endif
+}
+
+void
+hal_interrupt_acknowledge(int vector)
+{
+#ifdef LATER
+ CYG_ASSERT(vector <= CYGNUM_HAL_ISR_MAX &&
+ vector >= CYGNUM_HAL_ISR_MIN , "Invalid vector");
+#endif
+
+}
+
+void
+hal_interrupt_configure(int vector, int level, int up)
+{
+#ifdef LATER
+ CYG_ASSERT(vector <= CYGNUM_HAL_ISR_MAX &&
+ vector >= CYGNUM_HAL_ISR_MIN, "Invalid vector");
+ CYG_ASSERT(level || up, "Cannot do falling edge");
+#endif
+}
+
+void
+hal_interrupt_set_level(int vector, int level)
+{
+#ifdef LATER
+ cyg_uint32 reg;
+ CYG_ASSERT(vector <= CYGNUM_HAL_ISR_MAX &&
+ vector >= CYGNUM_HAL_ISR_MIN, "Invalid vector");
+ CYG_ASSERT(level <= 63 && level >= 0, "Invalid level");
+
+ HAL_READ_UINT32(INNOVATOR_INT_PRIORITY_0+4*vector, reg);
+ reg &= ~INNOVATOR_INT_PRIORITY_LVL_mask;
+ reg |= (level & INNOVATOR_INT_PRIORITY_LVL_mask);
+ HAL_WRITE_UINT32(INNOVATOR_INT_PRIORITY_0+4*vector, reg);
+#endif
+}
+
+#include CYGHWR_MEMORY_LAYOUT_H
+typedef void code_fun(void);
+void innovator_program_new_stack(void *func)
+{
+ register CYG_ADDRESS stack_ptr asm("sp");
+ register CYG_ADDRESS old_stack asm("r4");
+ register code_fun *new_func asm("r0");
+ old_stack = stack_ptr;
+ stack_ptr = CYGMEM_REGION_ram + CYGMEM_REGION_ram_SIZE - sizeof(CYG_ADDRESS);
+ new_func = (code_fun*)func;
+ new_func();
+ stack_ptr = old_stack;
+ return;
+}
diff --git a/ecos/packages/hal/arm/arm9/innovator/current/src/redboot_cmds.c b/ecos/packages/hal/arm/arm9/innovator/current/src/redboot_cmds.c
new file mode 100644
index 0000000..1bb33dd
--- /dev/null
+++ b/ecos/packages/hal/arm/arm9/innovator/current/src/redboot_cmds.c
@@ -0,0 +1,300 @@
+#if 0
+//==========================================================================
+//
+// redboot_cmds.c
+//
+// OMAP1510DC EVM [platform] specific RedBoot commands
+//
+//==========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//==========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): Patrick Doyle <wpd@delcomsys.com>
+// Contributors: Patrick Doyle <wpd@delcomsys.com>
+// Date: 2002-11-27
+// Purpose:
+// Description:
+//
+// This code is part of RedBoot (tm). It was modified from "redboot_cmds"
+// for the iPaq by wpd in order to add some platform specific commands to
+// the OMAP1510DC EVM platform.
+//
+//####DESCRIPTIONEND####
+//
+//==========================================================================
+
+#include <redboot.h>
+
+#include <cyg/hal/hal_intr.h>
+#include <cyg/hal/hal_cache.h>
+#include <cyg/hal/hal_io.h>
+#include <cyg/hal/hal_diag.h>
+#include <cyg/hal/innovator.h>
+
+static void do_mem(int argc, char *argv[]);
+static void do_try_reset(int argc, char *argv[]);
+static void do_testsdram(int argc, char *argv[]);
+static void do_delay(int argc, char *argv[]);
+
+RedBoot_cmd("mem",
+ "Set a memory location",
+ "[-h|-b] [-n] [-a <address>] <data>",
+ do_mem
+ );
+
+RedBoot_cmd("try_reset",
+ "try to reset the platform",
+ "[-1|-2|-3|-4]",
+ do_try_reset
+ );
+
+
+RedBoot_cmd("testsdram",
+ "test SDRAM (very simply)",
+ "[-l length]",
+ do_testsdram
+ );
+
+RedBoot_cmd("delay",
+ "delay specified number of usecs",
+ "[-c count] amount",
+ do_delay
+ );
+
+
+static void
+do_mem(int argc,
+ char *argv[])
+{
+ struct option_info opts[4];
+ bool mem_half_word, mem_byte;
+ bool no_verify = false;
+ static int address = 0x00000000;
+ int value;
+ init_opts(&opts[0], 'b', false, OPTION_ARG_TYPE_FLG,
+ (void**)&mem_byte, 0, "write a byte");
+ init_opts(&opts[1], 'h', false, OPTION_ARG_TYPE_FLG,
+ (void**)&mem_half_word, 0, "write a half-word");
+ init_opts(&opts[2], 'a', true, OPTION_ARG_TYPE_NUM,
+ (void**)&address, NULL, "address to write at");
+ init_opts(&opts[3], 'n', false, OPTION_ARG_TYPE_FLG,
+ (void**)&no_verify, 0, "noverify");
+
+ if (!scan_opts(argc, argv,
+ 1,
+ opts, sizeof(opts) / sizeof(opts[0]),
+ (void*)&value, OPTION_ARG_TYPE_NUM, "address to set")) {
+ return;
+ }
+
+ if ( mem_byte && mem_half_word ) {
+ diag_printf("*ERR: Should not specify both byte and half-word access\n");
+ } else if ( mem_byte ) {
+ *(cyg_uint8*)address = (cyg_uint8)(value & 255);
+ if (no_verify) {
+ diag_printf(" Set 0x%08X to 0x%02X\n",
+ address, value & 255);
+ } else {
+ diag_printf(" Set 0x%08X to 0x%02X (result 0x%02X)\n",
+ address, value & 255, (int)*(cyg_uint8*)address );
+ }
+ } else if ( mem_half_word ) {
+ if ( address & 1 ) {
+ diag_printf( "*ERR: Badly aligned address 0x%08X for half-word store\n",
+ address );
+ } else {
+ *(cyg_uint16*)address = (cyg_uint16)(value & 0xffff);
+ if (no_verify) {
+ diag_printf(" Set 0x%08X to 0x%04X\n",
+ address, value & 0xffff);
+ } else {
+ diag_printf(" Set 0x%08X to 0x%04X (result 0x%04X)\n",
+ address, value & 0xffff, (int)*(cyg_uint16*)address );
+ }
+ }
+ } else {
+ if ( address & 3 ) {
+ diag_printf( "*ERR: Badly aligned address 0x%08X for word store\n",
+ address );
+ } else {
+ *(cyg_uint32*)address = (cyg_uint32)value;
+ if (no_verify) {
+ diag_printf(" Set 0x%08X to 0x%08X\n",
+ address, value);
+ } else {
+ diag_printf(" Set 0x%08X to 0x%08X (result 0x%08X)\n",
+ address, value, (int)*(cyg_uint32*)address );
+ }
+ }
+ }
+}
+
+static void
+do_try_reset(int argc,
+ char *argv[])
+{
+ struct option_info opts[4];
+ bool flag_1 = false;
+ bool flag_2 = false;
+ bool flag_3 = false;
+ bool flag_4 = false;
+
+ cyg_uint16 tmp = 0;
+
+ init_opts(&opts[0], '1', false, OPTION_ARG_TYPE_FLG,
+ (void**)&flag_1, 0, "only try phase 1");
+ init_opts(&opts[1], '2', false, OPTION_ARG_TYPE_FLG,
+ (void**)&flag_2, 0, "try phase 1 & phase 2");
+ init_opts(&opts[2], '3', false, OPTION_ARG_TYPE_FLG,
+ (void**)&flag_3, 0, "try phase 1 through phase 3");
+ init_opts(&opts[3], '4', false, OPTION_ARG_TYPE_FLG,
+ (void**)&flag_4, 0, "try phase 1 through phase 4");
+
+ if (!scan_opts(argc, argv,
+ 1,
+ opts, sizeof(opts) / sizeof(opts[0]),
+ 0, 0, 0)) {
+ return;
+ }
+ diag_printf("flag_4 = %d, flag_3 = %d, flag_2 = %d, flag_1 = %d\n",
+ flag_4, flag_3, flag_2, flag_1);
+ if (flag_4) {
+ flag_3 = flag_2 = flag_1 = true;
+ } else if (flag_3) {
+ flag_2 = flag_1 = true;
+ } else if (flag_2) {
+ flag_1 = true;
+ }
+ diag_printf("flag_4 = %d, flag_3 = %d, flag_2 = %d, flag_1 = %d\n",
+ flag_4, flag_3, flag_2, flag_1);
+
+ if (flag_1) {
+ HAL_READ_UINT16(CLKM_ARM_IDLECT2, tmp);
+ diag_printf("tmp = %04X\n", tmp);
+ }
+
+ if (flag_2) {
+ tmp |= 1;
+ diag_printf("Writing %04X to %08X\n", tmp, CLKM_ARM_IDLECT2);
+ HAL_WRITE_UINT16(CLKM_ARM_IDLECT2, tmp | 1);
+ }
+
+ if (flag_3) {
+ diag_printf("Writing %04X to %08X\n", 0x80F5, WATCHDOG_TIMER_MODE);
+ HAL_WRITE_UINT16(WATCHDOG_TIMER_MODE, 0x80F5); \
+ }
+
+ if (flag_4) {
+ diag_printf("Writing %04X to %08X\n", 0x80F5, WATCHDOG_TIMER_MODE);
+ HAL_WRITE_UINT16(WATCHDOG_TIMER_MODE, 0x80F5); \
+ }
+
+ diag_printf("try_reset: done\n");
+}
+
+#define SDRAM_BASE 0x10000000
+#define SDRAM_LEN (32*1024*1024) /* 32 Mbytes */
+static void
+do_testsdram(int argc,
+ char *argv[])
+{
+ cyg_uint32 *mem_addr = (cyg_uint32 *)SDRAM_BASE;
+ unsigned len;
+ bool len_set;
+
+ register int i;
+ struct option_info opts[1];
+
+ init_opts(&opts[0], 'l', true, OPTION_ARG_TYPE_NUM,
+ (void**)&len, &len_set, "length");
+
+ if (!scan_opts(argc, argv,
+ 1,
+ opts, 1,
+ 0, 0, 0)) {
+ return;
+ }
+ if (!len_set) {
+ len = SDRAM_LEN / 4;
+ }
+
+ diag_printf("Length = 0x%08X\n", len);
+
+ diag_printf("Writing data-equals-address pattern to SDRAM\n");
+ for (i = 0; i < len; i++) {
+ mem_addr[i] = ~(cyg_uint32)(mem_addr + i);
+ }
+ diag_printf("Reading back pattern\n");
+ for (i = 0; i < len; i++) {
+ if (mem_addr[i] != ~(cyg_uint32)(mem_addr + i)) {
+ diag_printf("Error: mismatch at address %p, read back 0x%08x\n",
+ mem_addr + i,
+ mem_addr[i]);
+ break;
+ }
+ }
+ diag_printf("Done\n");
+}
+
+static void
+do_delay(int argc,
+ char *argv[])
+{
+ struct option_info opts[1];
+ int count = 0x00000000;
+ bool count_set;
+ int value;
+ register int i;
+
+ init_opts(&opts[0], 'c', true, OPTION_ARG_TYPE_NUM,
+ (void**)&count, &count_set, "Number of times to delay");
+
+ if (!scan_opts(argc, argv,
+ 1,
+ opts, sizeof(opts) / sizeof(opts[0]),
+ (void*)&value, OPTION_ARG_TYPE_NUM, "amount of time to delay (usec)")) {
+ return;
+ }
+
+ if (!count_set) {
+ count = 1;
+ }
+ for (i = 0; i < count; i++) {
+ diag_printf("Delaying %d useconds...", value);
+ HAL_DELAY_US(value);
+ diag_printf("Done\n");
+ }
+}
+
+#endif
diff --git a/ecos/packages/hal/arm/arm9/smdk2410/current/ChangeLog b/ecos/packages/hal/arm/arm9/smdk2410/current/ChangeLog
new file mode 100644
index 0000000..a22d08a
--- /dev/null
+++ b/ecos/packages/hal/arm/arm9/smdk2410/current/ChangeLog
@@ -0,0 +1,37 @@
+2009-01-31 Bart Veer <bartv@ecoscentric.com>
+
+ * cdl/hal_arm_arm9_smdk2410.cdl: update compiler flags for gcc 4.x
+
+2009-01-24 Bart Veer <bartv@ecoscentric.com>
+
+ * cdl/hal_arm_arm9_smdk2410.cdl: switch from arm-elf-gcc to
+ arm-eabi-gcc.
+
+2003-12-05 Andrew Lunn <andrew.lunn@ascom.ch>
+
+ * include/hal_diag.h: hal_delay_us() is a C function.
+
+2003-08-06 Michael Anburaj <embeddedeng@hotmail.com>
+
+ * cdl/hal_arm_arm9_smdk2410.cdl:
+ * include/hal_diag.h:
+ * include/hal_platform_ints.h:
+ * include/hal_platform_setup.h:
+ * include/memcfg.h:
+ * include/pkgconf/mlt_arm_arm9_smdk2410_ram.h:
+ * include/pkgconf/mlt_arm_arm9_smdk2410_ram.ldi:
+ * include/pkgconf/mlt_arm_arm9_smdk2410_rom.h:
+ * include/pkgconf/mlt_arm_arm9_smdk2410_rom.ldi:
+ * include/pkgconf/mlt_arm_arm9_smdk2410_romram.h:
+ * include/pkgconf/mlt_arm_arm9_smdk2410_romram.ldi:
+ * include/plf_io.h:
+ * include/plf_stub.h:
+ * include/s3c2410x.h:
+ * misc/smdk2410_redboot_RAM.ecm:
+ * misc/smdk2410_redboot_ROMRAM.ecm:
+ * src/hal_diag.c:
+ * src/smdk2410_misc.c:
+ New package for the Samsung ARM9/SMDK2410 development
+ board.
+
+
diff --git a/ecos/packages/hal/arm/arm9/smdk2410/current/cdl/hal_arm_arm9_smdk2410.cdl b/ecos/packages/hal/arm/arm9/smdk2410/current/cdl/hal_arm_arm9_smdk2410.cdl
new file mode 100644
index 0000000..8fe039a
--- /dev/null
+++ b/ecos/packages/hal/arm/arm9/smdk2410/current/cdl/hal_arm_arm9_smdk2410.cdl
@@ -0,0 +1,422 @@
+# ====================================================================
+#
+# hal_arm_arm9_smdk2410.cdl
+#
+# Samsung ARM9/SMDK2410 evaluation board HAL package configuration data
+#
+# ====================================================================
+## ####ECOSGPLCOPYRIGHTBEGIN####
+## -------------------------------------------
+## This file is part of eCos, the Embedded Configurable Operating System.
+## Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+##
+## eCos is free software; you can redistribute it and/or modify it under
+## the terms of the GNU General Public License as published by the Free
+## Software Foundation; either version 2 or (at your option) any later
+## version.
+##
+## eCos is distributed in the hope that it will be useful, but WITHOUT
+## ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+## FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+## for more details.
+##
+## You should have received a copy of the GNU General Public License
+## along with eCos; if not, write to the Free Software Foundation, Inc.,
+## 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+##
+## As a special exception, if other files instantiate templates or use
+## macros or inline functions from this file, or you compile this file
+## and link it with other works to produce a work based on this file,
+## this file does not by itself cause the resulting work to be covered by
+## the GNU General Public License. However the source code for this file
+## must still be made available in accordance with section (3) of the GNU
+## General Public License v2.
+##
+## This exception does not invalidate any other reasons why a work based
+## on this file might be covered by the GNU General Public License.
+## -------------------------------------------
+## ####ECOSGPLCOPYRIGHTEND####
+# ====================================================================
+######DESCRIPTIONBEGIN####
+#
+# Author(s): michael anburaj <michaelanburaj@hotmail.com>
+# Contributors: michael anburaj <michaelanburaj@hotmail.com>
+# Date: 2003-08-01
+#
+#####DESCRIPTIONEND####
+#
+# ====================================================================
+
+cdl_package CYGPKG_HAL_ARM_ARM9_SMDK2410 {
+ display "Samsung ARM9/SMDK2410 development board"
+ parent CYGPKG_HAL_ARM_ARM9
+ requires CYGPKG_HAL_ARM_ARM9_ARM920T
+ hardware
+ include_dir cyg/hal
+ define_header hal_arm_arm9_smdk2410.h
+ description "
+ The SMDK2410 HAL package provides the support needed to run eCos on Samsung
+ S3C2410X (ARM920T) based boards."
+
+ compile smdk2410_misc.c hal_diag.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_arm.h>"
+ puts $::cdl_system_header "#define CYGBLD_HAL_VARIANT_H <pkgconf/hal_arm_arm9.h>"
+ puts $::cdl_system_header "#define CYGBLD_HAL_PLATFORM_H <pkgconf/hal_arm_arm9_smdk2410.h>"
+ puts $::cdl_header "#define HAL_PLATFORM_CPU \"ARM9\""
+ puts $::cdl_header "#define HAL_PLATFORM_BOARD \"SMDK2410 system\""
+ puts $::cdl_header "#define HAL_PLATFORM_EXTRA \"\""
+
+ puts $::cdl_header "#define HAL_PLATFORM_MACHINE_TYPE 106"
+ }
+
+ 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 SMDK2410 evaluation 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."
+ }
+
+ # Both PLLs are in bypass mode on startup.
+ # FIXME: Add proper configury
+ cdl_option CYGNUM_HAL_ARM_SMDK2410_CPU_CLOCK {
+ display "CPU speed"
+ flavor data
+ legal_values 176000000 180000000 184000000 192000000 200000000
+ default_value { 184000000 }
+ description "
+ This is the actual CPU operating frequency (FCLK)."
+ }
+
+ cdl_option CYGNUM_HAL_ARM_SMDK2410_BUS_CLOCK {
+ display "ARM920T bus speed"
+ flavor data
+ calculated { CYGNUM_HAL_ARM_SMDK2410_CPU_CLOCK / 2 }
+ description "
+ This is the ARM920T AHB bus operating frequency (HCLK)."
+ }
+
+ cdl_option CYGNUM_HAL_ARM_SMDK2410_PERIPHERAL_CLOCK {
+ display "Peripheral bus speed"
+ flavor data
+ calculated { CYGNUM_HAL_ARM_SMDK2410_CPU_CLOCK / 4 }
+ description "
+ This is the peripheral (APB) bus operating frequency (PCLK)."
+ }
+
+ cdl_option CYGNUM_HAL_ARM_SMDK2410_TIMER_PRESCALE {
+ display "Timer prescale"
+ flavor data
+ legal_values 0 to 255
+ default_value 16
+ description "
+ This is the prescale value used on the clock used to drive
+ the kernel counter. Note that some parts of the code may fail
+ if this is changed due to over/underflows of expressions."
+ }
+
+ # Real-time clock/counter specifics
+ cdl_component CYGNUM_HAL_RTC_CONSTANTS {
+ display "Real-time clock constants"
+ flavor none
+ no_define
+
+ 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 ((CYGNUM_HAL_ARM_SMDK2410_PERIPHERAL_CLOCK/CYGNUM_HAL_ARM_SMDK2410_TIMER_PRESCALE/2)/CYGNUM_HAL_RTC_DENOMINATOR)
+ description "
+ Assuming 1/2 post prescale divider."
+ }
+ }
+
+ cdl_option CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_BAUD {
+ display "Diagnostic serial port baud rate"
+ flavor data
+ legal_values 9600 19200 38400 57600 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 57600 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 0
+ }
+
+ cdl_option CYGNUM_HAL_VIRTUAL_VECTOR_DEBUG_CHANNEL {
+ display "Debug serial port"
+ active_if CYGPRI_HAL_VIRTUAL_VECTOR_DEBUG_CHANNEL_CONFIGURABLE
+ flavor data
+ legal_values 0 to CYGNUM_HAL_VIRTUAL_VECTOR_COMM_CHANNELS-1
+ default_value 0
+ description "
+ The SMDK2410 boards have 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"
+ active_if CYGPRI_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_CONFIGURABLE
+ flavor data
+ legal_values 0 to CYGNUM_HAL_VIRTUAL_VECTOR_COMM_CHANNELS-1
+ default_value CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_DEFAULT
+ description "
+ The SMDK2410 boards have 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-eabi"}
+ 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 { CYGBLD_GLOBAL_WARNFLAGS . CYGBLD_ARCH_CFLAGS .
+ "-mcpu=arm9 -g -O2 -ffunction-sections -fdata-sections -fno-rtti -fno-exceptions " }
+ 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 { CYGBLD_ARCH_LDFLAGS . "-mcpu=arm9 --no-target-default-spec -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_component CYGPKG_HAL_ARM_ARM9_SMDK2410_OPTIONS {
+ display "ARM9/SMDK2410 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_ARM9_SMDK2410_CFLAGS_ADD {
+ display "Additional compiler flags"
+ flavor data
+ no_define
+ default_value { "" }
+ description "
+ This option modifies the set of compiler flags for
+ building the ARM9 SMDK2410 HAL. These flags are used in addition
+ to the set of global flags."
+ }
+
+ cdl_option CYGPKG_HAL_ARM_ARM9_SMDK2410_CFLAGS_REMOVE {
+ display "Suppressed compiler flags"
+ flavor data
+ no_define
+ default_value { "" }
+ description "
+ This option modifies the set of compiler flags for
+ building the ARM9 SMDK2410 HAL. These flags are removed from
+ the set of global flags if present."
+ }
+
+ cdl_option CYGPKG_HAL_ARM_ARM9_SMDK2410_TESTS {
+ display "ARM9/SMDK2410 tests"
+ flavor data
+ no_define
+ calculated { "" }
+ description "
+ This option specifies the set of tests for the ARM9/SMDK2410 HAL."
+ }
+ }
+
+ cdl_component CYGHWR_MEMORY_LAYOUT {
+ display "Memory layout"
+ flavor data
+ no_define
+ calculated { CYG_HAL_STARTUP == "RAM" ? "arm_arm9_smdk2410_ram" : \
+ CYG_HAL_STARTUP == "ROM" ? "arm_arm9_smdk2410_rom" : \
+ "arm_arm9_smdk2410_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_arm_arm9_smdk2410_ram.ldi>" : \
+ CYG_HAL_STARTUP == "ROM" ? "<pkgconf/mlt_arm_arm9_smdk2410_rom.ldi>" : \
+ "<pkgconf/mlt_arm_arm9_smdk2410_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_arm_arm9_smdk2410_ram.h>" : \
+ CYG_HAL_STARTUP == "ROM" ? "<pkgconf/mlt_arm_arm9_smdk2410_rom.h>" : \
+ "<pkgconf/mlt_arm_arm9_smdk2410_romram.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") || (CYG_HAL_STARTUP == "ROMRAM") }
+ 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 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 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.
+ \"GDB_stubs\" provides support when GDB stubs are included in
+ the ROM monitor or boot ROM."
+ }
+
+ cdl_component CYGPKG_REDBOOT_HAL_OPTIONS {
+ display "Redboot HAL options"
+ flavor none
+ no_define
+ parent CYGPKG_REDBOOT
+ active_if CYGPKG_REDBOOT
+ description "
+ This option lists the target's requirements for a valid Redboot
+ configuration."
+
+ # The backup image is not needed, since ROMRAM is the normal
+ # RedBoot startup type.
+ requires {!CYGPKG_REDBOOT_FLASH || CYGOPT_REDBOOT_FIS_REDBOOT_BACKUP == 0}
+
+ # RedBoot details
+ requires { CYGPKG_REDBOOT_ARM_LINUX_EXEC }
+ requires { CYGHWR_REDBOOT_ARM_LINUX_EXEC_ADDRESS_DEFAULT == 0x00008000 }
+ define_proc {
+ puts $::cdl_header "#define CYGHWR_REDBOOT_ARM_TRAMPOLINE_ADDRESS 0x00001f00"
+ }
+
+ 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 $< $@
+ }
+ }
+ }
+
+}
diff --git a/ecos/packages/hal/arm/arm9/smdk2410/current/include/hal_diag.h b/ecos/packages/hal/arm/arm9/smdk2410/current/include/hal_diag.h
new file mode 100644
index 0000000..88a2d92
--- /dev/null
+++ b/ecos/packages/hal/arm/arm9/smdk2410/current/include/hal_diag.h
@@ -0,0 +1,75 @@
+#ifndef CYGONCE_HAL_DIAG_H
+#define CYGONCE_HAL_DIAG_H
+
+//=============================================================================
+//
+// hal_diag.h
+//
+// HAL Support for Kernel Diagnostic Routines
+//
+//=============================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): michael anburaj <michaelanburaj@hotmail.com>
+// Contributors: michael anburaj <michaelanburaj@hotmail.com>
+// Date: 2003-08-01
+// 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>
+
+//-----------------------------------------------------------------------------
+
+#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_)
+
+// Not the best place for this, but ...
+externC void hal_delay_us(cyg_int32 usecs);
+
+#define HAL_DELAY_US(n) hal_delay_us(n);
+
+#endif // CYGONCE_HAL_DIAG_H
+//-----------------------------------------------------------------------------
+// end of hal_diag.h
diff --git a/ecos/packages/hal/arm/arm9/smdk2410/current/include/hal_platform_ints.h b/ecos/packages/hal/arm/arm9/smdk2410/current/include/hal_platform_ints.h
new file mode 100644
index 0000000..ec347f9
--- /dev/null
+++ b/ecos/packages/hal/arm/arm9/smdk2410/current/include/hal_platform_ints.h
@@ -0,0 +1,120 @@
+#ifndef CYGONCE_HAL_PLATFORM_INTS_H
+#define CYGONCE_HAL_PLATFORM_INTS_H
+//==========================================================================
+//
+// hal_platform_ints.h
+//
+// HAL Interrupt and clock support
+//
+//==========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//==========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): michael anburaj <michaelanburaj@hotmail.com>
+// Contributors: michael anburaj <michaelanburaj@hotmail.com>
+// Date: 2003-08-01
+// Purpose: Define Interrupt support
+// Description: The interrupt details for the Samsung SMDK2410 are defined here.
+// Usage:
+// #include <cyg/hal/hal_platform_ints.h>
+// ...
+//
+//
+//####DESCRIPTIONEND####
+//
+//==========================================================================
+
+#include <cyg/hal/s3c2410x.h>
+
+// These are interrupts on the SMDK2410
+
+#define CYGNUM_HAL_INTERRUPT_EINT0 0
+#define CYGNUM_HAL_INTERRUPT_EINT1 1
+#define CYGNUM_HAL_INTERRUPT_EINT2 2
+#define CYGNUM_HAL_INTERRUPT_EINT3 3
+#define CYGNUM_HAL_INTERRUPT_EINT4_7 4
+#define CYGNUM_HAL_INTERRUPT_EINT8_23 5
+#define CYGNUM_HAL_INTERRUPT_NOTUSED6 6
+#define CYGNUM_HAL_INTERRUPT_BAT_FLT 7
+#define CYGNUM_HAL_INTERRUPT_TICK 8
+#define CYGNUM_HAL_INTERRUPT_WDT 9
+#define CYGNUM_HAL_INTERRUPT_TIMER0 10
+#define CYGNUM_HAL_INTERRUPT_TIMER1 11
+#define CYGNUM_HAL_INTERRUPT_TIMER2 12
+#define CYGNUM_HAL_INTERRUPT_TIMER3 13
+#define CYGNUM_HAL_INTERRUPT_TIMER4 14
+#define CYGNUM_HAL_INTERRUPT_UART2 15
+#define CYGNUM_HAL_INTERRUPT_LCD 16
+#define CYGNUM_HAL_INTERRUPT_DMA0 17
+#define CYGNUM_HAL_INTERRUPT_DMA1 18
+#define CYGNUM_HAL_INTERRUPT_DMA2 19
+#define CYGNUM_HAL_INTERRUPT_DMA3 20
+#define CYGNUM_HAL_INTERRUPT_SDI 21
+#define CYGNUM_HAL_INTERRUPT_SPI0 22
+#define CYGNUM_HAL_INTERRUPT_UART1 23
+#define CYGNUM_HAL_INTERRUPT_NOTUSED24 24
+#define CYGNUM_HAL_INTERRUPT_USBD 25
+#define CYGNUM_HAL_INTERRUPT_USBH 26
+#define CYGNUM_HAL_INTERRUPT_IIC 27
+#define CYGNUM_HAL_INTERRUPT_UART0 28
+#define CYGNUM_HAL_INTERRUPT_SPI1 29
+#define CYGNUM_HAL_INTERRUPT_RTCC 30
+#define CYGNUM_HAL_INTERRUPT_ADC 31
+
+#define CYGNUM_HAL_INTERRUPT_NONE -1
+
+#define CYGNUM_HAL_ISR_MIN 0
+#define CYGNUM_HAL_ISR_MAX CYGNUM_HAL_INTERRUPT_ADC
+#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_TIMER4
+
+
+
+//----------------------------------------------------------------------------
+// Reset.
+
+// Watchdog is started with a very small delay to Reset immediatly.
+#define HAL_PLATFORM_RESET() \
+do { \
+ HAL_WRITE_UINT32(WTCON, 0); \
+ HAL_WRITE_UINT32(WTDAT, 1); \
+ HAL_WRITE_UINT32(WTCON, (1<<0)|(0<<2)|(0<<3)|(1<<5)|(0<<8)); \
+} while(0)
+
+// Base of flash
+#define HAL_PLATFORM_RESET_ENTRY 0x00000000
+
+#endif // CYGONCE_HAL_PLATFORM_INTS_H
diff --git a/ecos/packages/hal/arm/arm9/smdk2410/current/include/hal_platform_setup.h b/ecos/packages/hal/arm/arm9/smdk2410/current/include/hal_platform_setup.h
new file mode 100644
index 0000000..ffc875f
--- /dev/null
+++ b/ecos/packages/hal/arm/arm9/smdk2410/current/include/hal_platform_setup.h
@@ -0,0 +1,273 @@
+#ifndef CYGONCE_HAL_PLATFORM_SETUP_H
+#define CYGONCE_HAL_PLATFORM_SETUP_H
+//=============================================================================
+//
+// hal_platform_setup.h
+//
+// Platform specific support for HAL (assembly code)
+//
+//=============================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): michael anburaj <michaelanburaj@hotmail.com>
+// Contributors: michael anburaj <michaelanburaj@hotmail.com>
+// Date: 2003-08-01
+// Purpose: ARM9/SMDK2410 platform specific support routines
+// Description:
+// Usage: #include <cyg/hal/hal_platform_setup.h>
+// Only used by "vectors.S"
+//
+//####DESCRIPTIONEND####
+//
+//=============================================================================
+
+#include <pkgconf/system.h> // System-wide configuration info
+#include CYGBLD_HAL_VARIANT_H // Variant specific configuration
+#include CYGBLD_HAL_PLATFORM_H // Platform specific configuration
+#include CYGHWR_MEMORY_LAYOUT_H
+#include <cyg/hal/hal_mmu.h> // MMU definitions
+#include <cyg/hal/s3c2410x.h> // Platform specific hardware definitions
+#include <cyg/hal/memcfg.h> // Platform specific memory configuration
+
+
+#if (CYGNUM_HAL_ARM_SMDK2410_CPU_CLOCK == 176000000)
+#define M_MDIV 80 // Fin=12.0MHz Fout=176.0MHz
+#define M_PDIV 1
+#define M_SDIV 1
+#elif (CYGNUM_HAL_ARM_SMDK2410_CPU_CLOCK == 180000000)
+#define M_MDIV 82 // Fin=12.0MHz Fout=180.0MHz
+#define M_PDIV 1
+#define M_SDIV 1
+#elif (CYGNUM_HAL_ARM_SMDK2410_CPU_CLOCK == 184000000)
+#define M_MDIV 84 // Fin=12.0MHz Fout=184.0MHz
+#define M_PDIV 1
+#define M_SDIV 1
+#elif (CYGNUM_HAL_ARM_SMDK2410_CPU_CLOCK == 192000000)
+#define M_MDIV 88 // Fin=12.0MHz Fout=192.0MHz
+#define M_PDIV 1
+#define M_SDIV 1
+#elif (CYGNUM_HAL_ARM_SMDK2410_CPU_CLOCK == 200000000)
+#define M_MDIV 92 // Fin=12.0MHz Fout=200.0MHz
+#define M_PDIV 1
+#define M_SDIV 1
+#else
+#error CYGNUM_HAL_ARM_SMDK2410_CPU_CLOCK not set to the right value
+#endif
+
+
+#if defined(CYG_HAL_STARTUP_ROM) || defined(CYG_HAL_STARTUP_ROMRAM)
+#define PLATFORM_SETUP1 _platform_setup1
+#define CYGHWR_HAL_ARM_HAS_MMU
+#define CYGSEM_HAL_ROM_RESET_USES_JUMP
+
+// We need this here - can't rely on a translation table until MMU has
+// been initialized
+ .macro RAW_LED_MACRO x
+ ldr r0,=GPFDAT
+ ldr r1,[r0]
+ bic r1,r1,#(0xf<<4)
+ orr r1,r1,#((0xf & ~(\x))<<4)
+ str r1, [r0]
+ .endm
+
+
+ // Configure GPF[4:7] as Output & pull-up turned off
+ .macro RAW_LED_PORT_INIT_MACRO
+ ldr r0,=GPFUP
+ ldr r1,[r0]
+ orr r1,r1,#((1<<7)|(1<<6)|(1<<5)|(1<<4))
+ str r1,[r0]
+
+ RAW_LED_MACRO 0
+
+ ldr r0,=GPFCON
+ ldr r1,[r0]
+ orr r1,r1,#((1<<14)|(1<<12)|(1<<10)|(1<<8))
+ str r1,[r0]
+ .endm
+
+// This macro represents the initial startup code for the platform
+ .macro _platform_setup1
+#ifndef CYG_HAL_STARTUP_RAM
+ ldr r0,=WTCON // watch dog disable
+ ldr r1,=0x0
+ str r1,[r0]
+#endif
+ RAW_LED_PORT_INIT_MACRO
+
+#ifndef CYG_HAL_STARTUP_RAM
+ ldr r0,=INTMSK
+ ldr r1,=0xffffffff // all interrupt disable
+ str r1,[r0]
+
+ ldr r0,=INTSUBMSK
+ ldr r1,=0x7ff // all sub interrupt disable
+ str r1,[r0]
+
+ RAW_LED_MACRO 1
+
+ // Disable and clear caches
+ mrc p15,0,r0,c1,c0,0
+ bic r0,r0,#0x1000 // disable ICache
+ bic r0,r0,#0x000f // disable DCache, write buffer,
+ // MMU and alignment faults
+ mcr p15,0,r0,c1,c0,0
+ nop
+ nop
+ mov r0,#0
+ mcr p15,0,r0,c7,c6,0 // clear data cache
+#if 0
+ mrc p15,0,r0,c15,c1,0 // disable streaming
+ orr r0,r0,#0x80
+ mcr p15,0,r0,c15,c1,0
+#endif
+
+ // To reduce PLL lock time, adjust the LOCKTIME register.
+ ldr r0,=LOCKTIME
+ ldr r1,=0xffffff
+ str r1,[r0]
+
+ // We must set ratios, set memctl, then change FCLK.
+ ldr r0,=CLKDIVN // Set ratios 1:2:4 for FCLK:HCLK:PCLK
+ ldr r1,=(3)
+ str r1,[r0]
+
+ // MMU_SetAsyncBusMode //Must select, since we're setting HDIVN=1
+#define R1_iA (1<<31)
+#define R1_nF (1<<30)
+ mrc p15,0,r0,c1,c0,0
+ orr r0,r0,#(R1_nF|R1_iA)
+ mcr p15,0,r0,c1,c0,0
+
+
+ // Set memory control registers
+ adr r0,1f
+ ldr r1,=BWSCON // BWSCON Address
+ add r2, r0, #52 // End address of SMRDATA
+0:
+ ldr r3, [r0], #4
+ str r3, [r1], #4
+ cmp r2, r0
+ bne 0b
+ b 2f
+
+1:
+// Memory configuration should be optimized for best performance
+// The following parameter is not optimized.
+// Memory access cycle parameter strategy
+// 1) The memory settings is safe parameters even at HCLK=75Mhz.
+// 2) SDRAM refresh period is for HCLK=75Mhz.
+
+ .long (0+(B1_BWSCON<<4)+(B2_BWSCON<<8)+(B3_BWSCON<<12)+(B4_BWSCON<<16)+(B5_BWSCON<<20)+(B6_BWSCON<<24)+(B7_BWSCON<<28))
+ .long ((B0_Tacs<<13)+(B0_Tcos<<11)+(B0_Tacc<<8)+(B0_Tcoh<<6)+(B0_Tah<<4)+(B0_Tacp<<2)+(B0_PMC)) //GCS0
+ .long ((B1_Tacs<<13)+(B1_Tcos<<11)+(B1_Tacc<<8)+(B1_Tcoh<<6)+(B1_Tah<<4)+(B1_Tacp<<2)+(B1_PMC)) //GCS1
+ .long ((B2_Tacs<<13)+(B2_Tcos<<11)+(B2_Tacc<<8)+(B2_Tcoh<<6)+(B2_Tah<<4)+(B2_Tacp<<2)+(B2_PMC)) //GCS2
+ .long ((B3_Tacs<<13)+(B3_Tcos<<11)+(B3_Tacc<<8)+(B3_Tcoh<<6)+(B3_Tah<<4)+(B3_Tacp<<2)+(B3_PMC)) //GCS3
+ .long ((B4_Tacs<<13)+(B4_Tcos<<11)+(B4_Tacc<<8)+(B4_Tcoh<<6)+(B4_Tah<<4)+(B4_Tacp<<2)+(B4_PMC)) //GCS4
+ .long ((B5_Tacs<<13)+(B5_Tcos<<11)+(B5_Tacc<<8)+(B5_Tcoh<<6)+(B5_Tah<<4)+(B5_Tacp<<2)+(B5_PMC)) //GCS5
+ .long ((B6_MT<<15)+(B6_Trcd<<2)+(B6_SCAN)) //GCS6
+ .long ((B7_MT<<15)+(B7_Trcd<<2)+(B7_SCAN)) //GCS7
+ .long ((REFEN<<23)+(TREFMD<<22)+(Trp<<20)+(Trc<<18)+(Tchr<<16)+REFCNT)
+
+ .long 0x32 // SCLK power saving mode, BANKSIZE 128M/128M
+
+ .long 0x30 // MRSR6 CL=3clk
+ .long 0x30 // MRSR7
+// .long 0x20 // MRSR6 CL=2clk
+// .long 0x20 // MRSR7
+
+2:
+ RAW_LED_MACRO 2
+
+ // Configure MPLL
+ ldr r0,=MPLLCON
+ ldr r1,=((M_MDIV<<12)+(M_PDIV<<4)+M_SDIV) // Fin=12MHz,Fout=50MHz
+ str r1,[r0]
+
+#endif /* !CYG_HAL_STARTUP_RAM */
+
+ // Set up a stack [for calling C code]
+ ldr r1,=__startup_stack
+ ldr r2,=SMDK2410_SDRAM_PHYS_BASE
+ orr sp,r1,r2
+
+ // Create MMU tables
+ RAW_LED_MACRO 3
+ bl hal_mmu_init
+ RAW_LED_MACRO 4
+
+ // Enable MMU
+ ldr r2,=10f
+#ifdef CYG_HAL_STARTUP_ROMRAM
+ ldr r1,=__exception_handlers
+ ldr r9,=0x80000000
+ sub r1,r2,r1
+ add r2,r9,r1 // r9 has ROM offset
+#endif
+ 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:
+ RAW_LED_MACRO 5
+
+#ifdef CYG_HAL_STARTUP_ROMRAM
+ mov r0,r9 // Relocate FLASH/ROM to RAM
+ ldr r1,=__exception_handlers // ram base & length
+ ldr r2,=__rom_data_end
+20: ldr r3,[r0],#4
+ str r3,[r1],#4
+ cmp r1,r2
+ bne 20b
+ ldr r0,=30f
+ mov pc,r0
+ nop
+ nop
+ nop
+ nop
+30:
+#endif
+ RAW_LED_MACRO 6
+ .endm
+
+#else // defined(CYG_HAL_STARTUP_ROM) || defined(CYG_HAL_STARTUP_ROMRAM)
+#define PLATFORM_SETUP1
+#endif
+
+//-----------------------------------------------------------------------------
+// end of hal_platform_setup.h
+#endif // CYGONCE_HAL_PLATFORM_SETUP_H
diff --git a/ecos/packages/hal/arm/arm9/smdk2410/current/include/memcfg.h b/ecos/packages/hal/arm/arm9/smdk2410/current/include/memcfg.h
new file mode 100644
index 0000000..6f365ed
--- /dev/null
+++ b/ecos/packages/hal/arm/arm9/smdk2410/current/include/memcfg.h
@@ -0,0 +1,172 @@
+#ifndef MEMCFG_H
+#define MEMCFG_H
+//=============================================================================
+//
+// memcfg.h
+//
+// Samsung SMDK2410 specific memory configuration
+//
+//=============================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): michael anburaj <michaelanburaj@hotmail.com>
+// Contributors: michael anburaj <michaelanburaj@hotmail.com>
+// Date: 2003-08-01
+// Purpose: ARM9/SMDK2410 platform specific memory configuration
+// Description:
+// Usage: #include <cyg/hal/memcfg.h>
+// Only used by "hal_platform_setup.h"
+//
+//####DESCRIPTIONEND####
+//
+//=============================================================================
+
+// Bus width
+#define BUSWIDTH 32
+
+//Memory Area
+//GCS6 16bit(16MB) SDRAM(0x0c000000-0x0cffffff)
+//GCS7 16bit(16MB) SDRAM(0x0d000000-0x0dffffff)
+// or
+//GCS6 32bit(32MB) SDRAM(0x0c000000-0x0dffffff)
+
+
+//BWSCON
+#define DW8 (0x0)
+#define DW16 (0x1)
+#define DW32 (0x2)
+#define WAIT (0x1<<2)
+#define UBLB (0x1<<3)
+
+#ifndef BUSWIDTH
+#error BUSWIDTH not defined
+#endif
+#if (BUSWIDTH == 16)
+#define B1_BWSCON (DW16)
+#define B2_BWSCON (DW16)
+#define B3_BWSCON (DW16)
+#define B4_BWSCON (DW16)
+#define B5_BWSCON (DW16)
+#define B6_BWSCON (DW16)
+#define B7_BWSCON (DW16)
+#else //BUSWIDTH=32
+#define B1_BWSCON (DW32)
+#define B2_BWSCON (DW16)
+#define B3_BWSCON (DW16)
+#define B4_BWSCON (DW16)
+#define B5_BWSCON (DW16)
+#define B6_BWSCON (DW32)
+#define B7_BWSCON (DW32)
+#endif
+
+//BANK0CON
+
+#define B0_Tacs 0x0 //0clk
+#define B0_Tcos 0x0 //0clk
+#define B0_Tacc 0x7 //14clk
+#define B0_Tcoh 0x0 //0clk
+#define B0_Tah 0x0 //0clk
+#define B0_Tacp 0x0
+#define B0_PMC 0x0 //normal
+
+//BANK1CON
+#define B1_Tacs 0x0 //0clk
+#define B1_Tcos 0x0 //0clk
+#define B1_Tacc 0x7 //14clk
+#define B1_Tcoh 0x0 //0clk
+#define B1_Tah 0x0 //0clk
+#define B1_Tacp 0x0
+#define B1_PMC 0x0 //normal
+
+//Bank 2 parameter
+#define B2_Tacs 0x0 //0clk
+#define B2_Tcos 0x0 //0clk
+#define B2_Tacc 0x7 //14clk
+#define B2_Tcoh 0x0 //0clk
+#define B2_Tah 0x0 //0clk
+#define B2_Tacp 0x0
+#define B2_PMC 0x0 //normal
+
+//Bank 3 parameter
+#define B3_Tacs 0x0 //0clk
+#define B3_Tcos 0x0 //0clk
+#define B3_Tacc 0x7 //14clk
+#define B3_Tcoh 0x0 //0clk
+#define B3_Tah 0x0 //0clk
+#define B3_Tacp 0x0
+#define B3_PMC 0x0 //normal
+
+//Bank 4 parameter
+#define B4_Tacs 0x0 //0clk
+#define B4_Tcos 0x0 //0clk
+#define B4_Tacc 0x7 //14clk
+#define B4_Tcoh 0x0 //0clk
+#define B4_Tah 0x0 //0clk
+#define B4_Tacp 0x0
+#define B4_PMC 0x0 //normal
+
+//Bank 5 parameter
+#define B5_Tacs 0x0 //0clk
+#define B5_Tcos 0x0 //0clk
+#define B5_Tacc 0x7 //14clk
+#define B5_Tcoh 0x0 //0clk
+#define B5_Tah 0x0 //0clk
+#define B5_Tacp 0x0
+#define B5_PMC 0x0 //normal
+
+//Bank 6 parameter
+#define B6_MT 0x3 //SDRAM
+//#define B6_Trcd 0x0 //2clk
+#define B6_Trcd 0x1 //3clk
+#define B6_SCAN 0x1 //9bit
+
+//Bank 7 parameter
+#define B7_MT 0x3 //SDRAM
+//#define B7_Trcd 0x0 //2clk
+#define B7_Trcd 0x1 //3clk
+#define B7_SCAN 0x1 //9bit
+
+//REFRESH parameter
+#define REFEN 0x1 //Refresh enable
+#define TREFMD 0x0 //CBR(CAS before RAS)/Auto refresh
+#define Trp 0x0 //2clk
+#define Trc 0x3 //7clk
+
+#define Tchr 0x2 //3clk
+#define REFCNT 1113 //period=15.6us, HCLK=60Mhz, (2048+1-15.6*60)
+
+//-----------------------------------------------------------------------------
+// end of memcfg.h
+#endif // MEMCFG_H
diff --git a/ecos/packages/hal/arm/arm9/smdk2410/current/include/pkgconf/mlt_arm_arm9_smdk2410_ram.h b/ecos/packages/hal/arm/arm9/smdk2410/current/include/pkgconf/mlt_arm_arm9_smdk2410_ram.h
new file mode 100644
index 0000000..96b7e30
--- /dev/null
+++ b/ecos/packages/hal/arm/arm9/smdk2410/current/include/pkgconf/mlt_arm_arm9_smdk2410_ram.h
@@ -0,0 +1,20 @@
+// eCos memory layout - Fri Oct 20 05:43:59 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 (0)
+#define CYGMEM_REGION_ram_SIZE (0x4000000)
+#define CYGMEM_REGION_ram_ATTR (CYGMEM_REGION_ATTR_R | CYGMEM_REGION_ATTR_W)
+#define CYGMEM_REGION_sram (0x40000000)
+#define CYGMEM_REGION_sram_SIZE (0x1000)
+#define CYGMEM_REGION_sram_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 (0x4000000 - (size_t) CYG_LABEL_NAME (__heap1))
diff --git a/ecos/packages/hal/arm/arm9/smdk2410/current/include/pkgconf/mlt_arm_arm9_smdk2410_ram.ldi b/ecos/packages/hal/arm/arm9/smdk2410/current/include/pkgconf/mlt_arm_arm9_smdk2410_ram.ldi
new file mode 100644
index 0000000..e554835
--- /dev/null
+++ b/ecos/packages/hal/arm/arm9/smdk2410/current/include/pkgconf/mlt_arm_arm9_smdk2410_ram.ldi
@@ -0,0 +1,30 @@
+// eCos memory layout - Fri Oct 20 05:43:59 2000
+
+// This is a generated file - do not edit
+
+#include <cyg/infra/cyg_type.inc>
+
+MEMORY
+{
+ ram : ORIGIN = 0, LENGTH = 0x4000000
+ sram : ORIGIN = 0x40000000, LENGTH = 0x1000
+}
+
+SECTIONS
+{
+ SECTIONS_BEGIN
+ SECTION_fixed_vectors (ram, 0x20, LMA_EQ_VMA)
+ SECTION_rom_vectors (ram, 0x40000, LMA_EQ_VMA)
+ SECTION_RELOCS (ram, ALIGN (0x1), 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_got (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)
+ CYG_LABEL_DEFN(__heap1) = ALIGN (0x8);
+ SECTIONS_END
+}
diff --git a/ecos/packages/hal/arm/arm9/smdk2410/current/include/pkgconf/mlt_arm_arm9_smdk2410_rom.h b/ecos/packages/hal/arm/arm9/smdk2410/current/include/pkgconf/mlt_arm_arm9_smdk2410_rom.h
new file mode 100644
index 0000000..7386241
--- /dev/null
+++ b/ecos/packages/hal/arm/arm9/smdk2410/current/include/pkgconf/mlt_arm_arm9_smdk2410_rom.h
@@ -0,0 +1,23 @@
+// eCos memory layout - Fri Oct 20 05:42:50 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 (0)
+#define CYGMEM_REGION_ram_SIZE (0x4000000)
+#define CYGMEM_REGION_ram_ATTR (CYGMEM_REGION_ATTR_R | CYGMEM_REGION_ATTR_W)
+#define CYGMEM_REGION_sram (0x40000000)
+#define CYGMEM_REGION_sram_SIZE (0x1000)
+#define CYGMEM_REGION_sram_ATTR (CYGMEM_REGION_ATTR_R | CYGMEM_REGION_ATTR_W)
+#define CYGMEM_REGION_rom (0x80000000)
+#define CYGMEM_REGION_rom_SIZE (0x4000000)
+#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 (0x4000000 - (size_t) CYG_LABEL_NAME (__heap1))
diff --git a/ecos/packages/hal/arm/arm9/smdk2410/current/include/pkgconf/mlt_arm_arm9_smdk2410_rom.ldi b/ecos/packages/hal/arm/arm9/smdk2410/current/include/pkgconf/mlt_arm_arm9_smdk2410_rom.ldi
new file mode 100644
index 0000000..f75eb44
--- /dev/null
+++ b/ecos/packages/hal/arm/arm9/smdk2410/current/include/pkgconf/mlt_arm_arm9_smdk2410_rom.ldi
@@ -0,0 +1,31 @@
+// eCos memory layout - Fri Oct 20 05:42:50 2000
+
+// This is a generated file - do not edit
+
+#include <cyg/infra/cyg_type.inc>
+
+MEMORY
+{
+ ram : ORIGIN = 0, LENGTH = 0x4000000
+ sram : ORIGIN = 0x40000000, LENGTH = 0x1000
+ rom : ORIGIN = 0x80000000, LENGTH = 0x4000000
+}
+
+SECTIONS
+{
+ SECTIONS_BEGIN
+ SECTION_rom_vectors (rom, 0x80000000, LMA_EQ_VMA)
+ SECTION_text (rom, ALIGN (0x4), LMA_EQ_VMA)
+ SECTION_RELOCS (rom, ALIGN (0x1), 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_got (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)
+ CYG_LABEL_DEFN(__heap1) = ALIGN (0x8);
+ SECTIONS_END
+}
diff --git a/ecos/packages/hal/arm/arm9/smdk2410/current/include/pkgconf/mlt_arm_arm9_smdk2410_romram.h b/ecos/packages/hal/arm/arm9/smdk2410/current/include/pkgconf/mlt_arm_arm9_smdk2410_romram.h
new file mode 100644
index 0000000..96b7e30
--- /dev/null
+++ b/ecos/packages/hal/arm/arm9/smdk2410/current/include/pkgconf/mlt_arm_arm9_smdk2410_romram.h
@@ -0,0 +1,20 @@
+// eCos memory layout - Fri Oct 20 05:43:59 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 (0)
+#define CYGMEM_REGION_ram_SIZE (0x4000000)
+#define CYGMEM_REGION_ram_ATTR (CYGMEM_REGION_ATTR_R | CYGMEM_REGION_ATTR_W)
+#define CYGMEM_REGION_sram (0x40000000)
+#define CYGMEM_REGION_sram_SIZE (0x1000)
+#define CYGMEM_REGION_sram_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 (0x4000000 - (size_t) CYG_LABEL_NAME (__heap1))
diff --git a/ecos/packages/hal/arm/arm9/smdk2410/current/include/pkgconf/mlt_arm_arm9_smdk2410_romram.ldi b/ecos/packages/hal/arm/arm9/smdk2410/current/include/pkgconf/mlt_arm_arm9_smdk2410_romram.ldi
new file mode 100644
index 0000000..43e9a55
--- /dev/null
+++ b/ecos/packages/hal/arm/arm9/smdk2410/current/include/pkgconf/mlt_arm_arm9_smdk2410_romram.ldi
@@ -0,0 +1,30 @@
+// eCos memory layout - Fri Oct 20 05:43:59 2000
+
+// This is a generated file - do not edit
+
+#include <cyg/infra/cyg_type.inc>
+
+MEMORY
+{
+ ram : ORIGIN = 0, LENGTH = 0x4000000
+ sram : ORIGIN = 0x40000000, LENGTH = 0x1000
+}
+
+SECTIONS
+{
+ SECTIONS_BEGIN
+ SECTION_fixed_vectors (ram, 0x20, LMA_EQ_VMA)
+ SECTION_rom_vectors (ram, 0x8000, LMA_EQ_VMA)
+ SECTION_RELOCS (ram, ALIGN (0x1), 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_got (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)
+ CYG_LABEL_DEFN(__heap1) = ALIGN (0x8);
+ SECTIONS_END
+}
diff --git a/ecos/packages/hal/arm/arm9/smdk2410/current/include/plf_io.h b/ecos/packages/hal/arm/arm9/smdk2410/current/include/plf_io.h
new file mode 100644
index 0000000..8700025
--- /dev/null
+++ b/ecos/packages/hal/arm/arm9/smdk2410/current/include/plf_io.h
@@ -0,0 +1,61 @@
+#ifndef CYGONCE_HAL_ARM_ARM9_SMDK2410_PLF_IO_H
+#define CYGONCE_HAL_ARM_ARM9_SMDK2410_PLF_IO_H
+
+//=============================================================================
+//
+// plf_io.h
+//
+// Platform specific support (register layout, etc)
+//
+//=============================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): michael anburaj <michaelanburaj@hotmail.com>
+// Contributors: michael anburaj <michaelanburaj@hotmail.com>
+// Date: 2003-08-01
+// Purpose: Platform specific support routines
+// Description:
+// Usage: #include <cyg/hal/hal_io.h>
+//
+//####DESCRIPTIONEND####
+//
+//=============================================================================
+
+#include <cyg/hal/s3c2410x.h>
+
+#define CYGARC_PHYSICAL_ADDRESS(x) (x)
+
+#endif // CYGONCE_HAL_ARM_ARM9_SMDK2410_PLF_IO_H
+// EOF plf_io.h
diff --git a/ecos/packages/hal/arm/arm9/smdk2410/current/include/plf_stub.h b/ecos/packages/hal/arm/arm9/smdk2410/current/include/plf_stub.h
new file mode 100644
index 0000000..e164962
--- /dev/null
+++ b/ecos/packages/hal/arm/arm9/smdk2410/current/include/plf_stub.h
@@ -0,0 +1,83 @@
+#ifndef CYGONCE_HAL_PLF_STUB_H
+#define CYGONCE_HAL_PLF_STUB_H
+
+//=============================================================================
+//
+// plf_stub.h
+//
+// Platform header for GDB stub support.
+//
+//=============================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): michael anburaj <michaelanburaj@hotmail.com>
+// Contributors: michael anburaj <michaelanburaj@hotmail.com>
+// Date: 2003-08-01
+// Purpose: Platform HAL stub support for Innovator 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/arm_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.
+#define HAL_STUB_PLATFORM_INIT() CYG_EMPTY_STATEMENT
+
+#endif // ifdef CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS
+//-----------------------------------------------------------------------------
+#endif // CYGONCE_HAL_PLF_STUB_H
+// End of plf_stub.h
diff --git a/ecos/packages/hal/arm/arm9/smdk2410/current/include/s3c2410x.h b/ecos/packages/hal/arm/arm9/smdk2410/current/include/s3c2410x.h
new file mode 100644
index 0000000..449e29f
--- /dev/null
+++ b/ecos/packages/hal/arm/arm9/smdk2410/current/include/s3c2410x.h
@@ -0,0 +1,521 @@
+#ifndef CYGONCE_SMDK2410_H
+#define CYGONCE_SMDK2410_H
+
+//=============================================================================
+//
+// s3c2410x.h
+//
+// Platform specific support (register layout, etc)
+//
+//=============================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): michael anburaj <michaelanburaj@hotmail.com>
+// Contributors: michael anburaj <michaelanburaj@hotmail.com>
+// Date: 2003-08-01
+// Purpose: SMDK2410 platform specific support definitions
+// Description:
+// Usage: #include <cyg/hal/s3c2410x.h>
+//
+//####DESCRIPTIONEND####
+//
+//=============================================================================
+
+#include <pkgconf/hal_arm_arm9_smdk2410.h>
+
+// Memory layout details needed by conversion macro
+#define SMDK2410_SDRAM_PHYS_BASE 0x30000000
+#define SMDK2410_SDRAM_VIRT_BASE 0x00000000
+
+#define SMDK2410_FLASH_PHYS_BASE 0x00000000
+#define SMDK2410_FLASH_VIRT_BASE 0x80000000
+
+
+// Internal clocks
+#define FCLK CYGNUM_HAL_ARM_SMDK2410_CPU_CLOCK
+#define HCLK CYGNUM_HAL_ARM_SMDK2410_BUS_CLOCK
+#define PCLK CYGNUM_HAL_ARM_SMDK2410_PERIPHERAL_CLOCK
+#define UCLK 48000000
+
+
+// Memory control
+#define BWSCON 0x48000000 //Bus width & wait status
+#define BANKCON0 0x48000004 //Boot ROM control
+#define BANKCON1 0x48000008 //BANK1 control
+#define BANKCON2 0x4800000c //BANK2 cControl
+#define BANKCON3 0x48000010 //BANK3 control
+#define BANKCON4 0x48000014 //BANK4 control
+#define BANKCON5 0x48000018 //BANK5 control
+#define BANKCON6 0x4800001c //BANK6 control
+#define BANKCON7 0x48000020 //BANK7 control
+#define REFRESH 0x48000024 //DRAM/SDRAM refresh
+#define BANKSIZE 0x48000028 //Flexible Bank Size
+#define MRSRB6 0x4800002c //Mode register set for SDRAM
+#define MRSRB7 0x48000030 //Mode register set for SDRAM
+
+
+// USB Host
+
+
+// INTERRUPT
+#define SRCPND 0x4a000000 //Interrupt request status
+#define INTMOD 0x4a000004 //Interrupt mode control
+#define INTMSK 0x4a000008 //Interrupt mask control
+#define PRIORITY 0x4a00000a //IRQ priority control
+#define INTPND 0x4a000010 //Interrupt request status
+
+// PENDING BIT
+#define BIT_EINT0 (0x1)
+#define BIT_EINT1 (0x1<<1)
+#define BIT_EINT2 (0x1<<2)
+#define BIT_EINT3 (0x1<<3)
+#define BIT_EINT4_7 (0x1<<4)
+#define BIT_EINT8_23 (0x1<<5)
+#define BIT_NOTUSED6 (0x1<<6)
+#define BIT_BAT_FLT (0x1<<7)
+#define BIT_TICK (0x1<<8)
+#define BIT_WDT (0x1<<9)
+#define BIT_TIMER0 (0x1<<10)
+#define BIT_TIMER1 (0x1<<11)
+#define BIT_TIMER2 (0x1<<12)
+#define BIT_TIMER3 (0x1<<13)
+#define BIT_TIMER4 (0x1<<14)
+#define BIT_UART2 (0x1<<15)
+#define BIT_LCD (0x1<<16)
+#define BIT_DMA0 (0x1<<17)
+#define BIT_DMA1 (0x1<<18)
+#define BIT_DMA2 (0x1<<19)
+#define BIT_DMA3 (0x1<<20)
+#define BIT_SDI (0x1<<21)
+#define BIT_SPI0 (0x1<<22)
+#define BIT_UART1 (0x1<<23)
+#define BIT_NOTUSED24 (0x1<<24)
+#define BIT_USBD (0x1<<25)
+#define BIT_USBH (0x1<<26)
+#define BIT_IIC (0x1<<27)
+#define BIT_UART0 (0x1<<28)
+#define BIT_SPI1 (0x1<<29)
+#define BIT_RTCC (0x1<<30)
+#define BIT_ADC (0x1<<31)
+#define BIT_ALLMSK (0xffffffff)
+
+#define INTOFFSET 0x4a000014 //Interruot request source offset
+#define SUBSRCPND 0x4a000018 //Sub source pending
+#define INTSUBMSK 0x4a00001c //Interrupt sub mask
+
+#define BIT_SUB_ALLMSK (0x7ff)
+#define BIT_SUB_ADC (0x1<<10)
+#define BIT_SUB_TC (0x1<<9)
+#define BIT_SUB_ERR2 (0x1<<8)
+#define BIT_SUB_TXD2 (0x1<<7)
+#define BIT_SUB_RXD2 (0x1<<6)
+#define BIT_SUB_ERR1 (0x1<<5)
+#define BIT_SUB_TXD1 (0x1<<4)
+#define BIT_SUB_RXD1 (0x1<<3)
+#define BIT_SUB_ERR0 (0x1<<2)
+#define BIT_SUB_TXD0 (0x1<<1)
+#define BIT_SUB_RXD0 (0x1<<0)
+
+
+// DMA
+#define DISRC0 0x4b000000 //DMA 0 Initial source
+#define DISRCC0 0x4b000004 //DMA 0 Initial source control
+#define DIDST0 0x4b000008 //DMA 0 Initial Destination
+#define DIDSTC0 0x4b00000c //DMA 0 Initial Destination control
+#define DCON0 0x4b000010 //DMA 0 Control
+#define DSTAT0 0x4b000014 //DMA 0 Status
+#define DCSRC0 0x4b000018 //DMA 0 Current source
+#define DCDST0 0x4b00001c //DMA 0 Current destination
+#define DMASKTRIG0 0x4b000020 //DMA 0 Mask trigger
+
+#define DISRC1 0x4b000040 //DMA 1 Initial source
+#define DISRCC1 0x4b000044 //DMA 1 Initial source control
+#define DIDST1 0x4b000048 //DMA 1 Initial Destination
+#define DIDSTC1 0x4b00004c //DMA 1 Initial Destination control
+#define DCON1 0x4b000050 //DMA 1 Control
+#define DSTAT1 0x4b000054 //DMA 1 Status
+#define DCSRC1 0x4b000058 //DMA 1 Current source
+#define DCDST1 0x4b00005c //DMA 1 Current destination
+#define DMASKTRIG1 0x4b000060 //DMA 1 Mask trigger
+
+#define DISRC2 0x4b000080 //DMA 2 Initial source
+#define DISRCC2 0x4b000084 //DMA 2 Initial source control
+#define DIDST2 0x4b000088 //DMA 2 Initial Destination
+#define DIDSTC2 0x4b00008c //DMA 2 Initial Destination control
+#define DCON2 0x4b000090 //DMA 2 Control
+#define DSTAT2 0x4b000094 //DMA 2 Status
+#define DCSRC2 0x4b000098 //DMA 2 Current source
+#define DCDST2 0x4b00009c //DMA 2 Current destination
+#define DMASKTRIG2 0x4b0000a0 //DMA 2 Mask trigger
+
+#define DISRC3 0x4b0000c0 //DMA 3 Initial source
+#define DISRCC3 0x4b0000c4 //DMA 3 Initial source control
+#define DIDST3 0x4b0000c8 //DMA 3 Initial Destination
+#define DIDSTC3 0x4b0000cc //DMA 3 Initial Destination control
+#define DCON3 0x4b0000d0 //DMA 3 Control
+#define DSTAT3 0x4b0000d4 //DMA 3 Status
+#define DCSRC3 0x4b0000d8 //DMA 3 Current source
+#define DCDST3 0x4b0000dc //DMA 3 Current destination
+#define DMASKTRIG3 0x4b0000e0 //DMA 3 Mask trigger
+
+
+// CLOCK & POWER MANAGEMENT
+#define LOCKTIME 0x4c000000 //PLL lock time counter
+#define MPLLCON 0x4c000004 //MPLL Control
+#define UPLLCON 0x4c000008 //UPLL Control
+#define CLKCON 0x4c00000c //Clock generator control
+#define CLKSLOW 0x4c000010 //Slow clock control
+#define CLKDIVN 0x4c000014 //Clock divider control
+
+
+// LCD CONTROLLER
+#define LCDCON1 0x4d000000 //LCD control 1
+#define LCDCON2 0x4d000004 //LCD control 2
+#define LCDCON3 0x4d000008 //LCD control 3
+#define LCDCON4 0x4d00000c //LCD control 4
+#define LCDCON5 0x4d000010 //LCD control 5
+#define LCDSADDR1 0x4d000014 //STN/TFT Frame buffer start address 1
+#define LCDSADDR2 0x4d000018 //STN/TFT Frame buffer start address 2
+#define LCDSADDR3 0x4d00001c //STN/TFT Virtual screen address set
+#define REDLUT 0x4d000020 //STN Red lookup table
+#define GREENLUT 0x4d000024 //STN Green lookup table
+#define BLUELUT 0x4d000028 //STN Blue lookup table
+#define DITHMODE 0x4d00004c //STN Dithering mode
+#define TPAL 0x4d000050 //TFT Temporary palette
+#define LCDINTPND 0x4d000054 //LCD Interrupt pending
+#define LCDSRCPND 0x4d000058 //LCD Interrupt source
+#define LCDINTMSK 0x4d00005c //LCD Interrupt mask
+#define LPCSEL 0x4d000060 //LPC3600 Control
+#define PALETTE 0x4d000400 //Palette start address
+
+
+// NAND flash
+#define NFCONF 0x4e000000 //NAND Flash configuration
+#define NFCMD 0x4e000004 //NADD Flash command
+#define NFADDR 0x4e000008 //NAND Flash address
+#define NFDATA 0x4e00000c //NAND Flash data
+#define NFSTAT 0x4e000010 //NAND Flash operation status
+#define NFECC 0x4e000014 //NAND Flash ECC
+#define NFECC0 0x4e000014
+#define NFECC1 0x4e000015
+#define NFECC2 0x4e000016
+
+
+// UART
+#define ULCON0 0x50000000 //UART 0 Line control
+#define UCON0 0x50000004 //UART 0 Control
+#define UFCON0 0x50000008 //UART 0 FIFO control
+#define UMCON0 0x5000000c //UART 0 Modem control
+#define UTRSTAT0 0x50000010 //UART 0 Tx/Rx status
+#define UERSTAT0 0x50000014 //UART 0 Rx error status
+#define UFSTAT0 0x50000018 //UART 0 FIFO status
+#define UMSTAT0 0x5000001c //UART 0 Modem status
+#define UBRDIV0 0x50000028 //UART 0 Baud rate divisor
+
+#define ULCON1 0x50004000 //UART 1 Line control
+#define UCON1 0x50004004 //UART 1 Control
+#define UFCON1 0x50004008 //UART 1 FIFO control
+#define UMCON1 0x5000400c //UART 1 Modem control
+#define UTRSTAT1 0x50004010 //UART 1 Tx/Rx status
+#define UERSTAT1 0x50004014 //UART 1 Rx error status
+#define UFSTAT1 0x50004018 //UART 1 FIFO status
+#define UMSTAT1 0x5000401c //UART 1 Modem status
+#define UBRDIV1 0x50004028 //UART 1 Baud rate divisor
+
+#define ULCON2 0x50008000 //UART 2 Line control
+#define UCON2 0x50008004 //UART 2 Control
+#define UFCON2 0x50008008 //UART 2 FIFO control
+#define UMCON2 0x5000800c //UART 2 Modem control
+#define UTRSTAT2 0x50008010 //UART 2 Tx/Rx status
+#define UERSTAT2 0x50008014 //UART 2 Rx error status
+#define UFSTAT2 0x50008018 //UART 2 FIFO status
+#define UMSTAT2 0x5000801c //UART 2 Modem status
+#define UBRDIV2 0x50008028 //UART 2 Baud rate divisor
+
+#define UTXH0 0x50000020 //UART 0 Transmission Hold
+#define URXH0 0x50000024 //UART 0 Receive buffer
+#define UTXH1 0x50004020 //UART 1 Transmission Hold
+#define URXH1 0x50004024 //UART 1 Receive buffer
+#define UTXH2 0x50008020 //UART 2 Transmission Hold
+#define URXH2 0x50008024 //UART 2 Receive buffer
+
+#define OFS_ULCON (ULCON0-ULCON0) //UART Line control
+#define OFS_UCON (UCON0-ULCON0) //UART Control
+#define OFS_UFCON (UFCON0-ULCON0) //UART FIFO control
+#define OFS_UMCON (UMCON0-ULCON0) //UART Modem control
+#define OFS_UTRSTAT (UTRSTAT0-ULCON0)//UART Tx/Rx status
+#define OFS_UERSTAT (UERSTAT0-ULCON0)//UART Rx error status
+#define OFS_UFSTAT (UFSTAT0-ULCON0) //UART FIFO status
+#define OFS_UMSTAT (UMSTAT0-ULCON0) //UART Modem status
+#define OFS_UBRDIV (UBRDIV0-ULCON0) //UART Baud rate divisor
+#define OFS_UTXH (UTXH0-ULCON0) //UART Transmission Hold
+#define OFS_URXH (URXH0-ULCON0) //UART Receive buffer
+
+// ULCON bits
+#define SHF_ULCON_WL 0
+#define MSK_ULCON_WL (0x3<<SHF_ULCON_WL)
+#define VAL_ULCON_WL_5 (0x0<<SHF_ULCON_WL)
+#define VAL_ULCON_WL_6 (0x1<<SHF_ULCON_WL)
+#define VAL_ULCON_WL_7 (0x2<<SHF_ULCON_WL)
+#define VAL_ULCON_WL_8 (0x3<<SHF_ULCON_WL)
+
+#define SHF_ULCON_SB 2
+#define MSK_ULCON_SB (0x1<<SHF_ULCON_SB)
+#define VAL_ULCON_SB_1 (0x0<<SHF_ULCON_SB)
+#define VAL_ULCON_SB_2 (0x1<<SHF_ULCON_SB)
+
+#define SHF_ULCON_PM 3
+#define MSK_ULCON_PM (0x7<<SHF_ULCON_PM)
+#define VAL_ULCON_PM_N (0x0<<SHF_ULCON_PM)
+#define VAL_ULCON_PM_O (0x4<<SHF_ULCON_PM)
+#define VAL_ULCON_PM_E (0x5<<SHF_ULCON_PM)
+#define VAL_ULCON_PM_FC1 (0x6<<SHF_ULCON_PM)
+#define VAL_ULCON_PM_FC0 (0x7<<SHF_ULCON_PM)
+
+#define SHF_ULCON_IRM 6
+#define MSK_ULCON_IRM (0x1<<SHF_ULCON_IRM)
+#define VAL_ULCON_IRM_N (0x0<<SHF_ULCON_IRM)
+#define VAL_ULCON_IRM_IR (0x1<<SHF_ULCON_IRM)
+
+
+// PWM TIMER
+#define TCFG0 0x51000000 //Timer 0 configuration
+#define TCFG1 0x51000004 //Timer 1 configuration
+#define TCON 0x51000008 //Timer control
+#define TCNTB0 0x5100000c //Timer count buffer 0
+#define TCMPB0 0x51000010 //Timer compare buffer 0
+#define TCNTO0 0x51000014 //Timer count observation 0
+#define TCNTB1 0x51000018 //Timer count buffer 1
+#define TCMPB1 0x5100001c //Timer compare buffer 1
+#define TCNTO1 0x51000020 //Timer count observation 1
+#define TCNTB2 0x51000024 //Timer count buffer 2
+#define TCMPB2 0x51000028 //Timer compare buffer 2
+#define TCNTO2 0x5100002c //Timer count observation 2
+#define TCNTB3 0x51000030 //Timer count buffer 3
+#define TCMPB3 0x51000034 //Timer compare buffer 3
+#define TCNTO3 0x51000038 //Timer count observation 3
+#define TCNTB4 0x5100003c //Timer count buffer 4
+#define TCNTO4 0x51000040 //Timer count observation 4
+
+
+// USB DEVICE
+#define FUNC_ADDR_REG 0x52000140 //Function address
+#define PWR_REG 0x52000144 //Power management
+#define EP_INT_REG 0x52000148 //EP Interrupt pending and clear
+#define USB_INT_REG 0x52000158 //USB Interrupt pending and clear
+#define EP_INT_EN_REG 0x5200015c //Interrupt enable
+#define USB_INT_EN_REG 0x5200016c
+#define FRAME_NUM1_REG 0x52000170 //Frame number lower byte
+#define FRAME_NUM2_REG 0x52000174 //Frame number higher byte
+#define INDEX_REG 0x52000178 //Register index
+#define MAXP_REG 0x52000180 //Endpoint max packet
+#define EP0_CSR 0x52000184 //Endpoint 0 status
+#define IN_CSR1_REG 0x52000184 //In endpoint control status
+#define IN_CSR2_REG 0x52000188
+#define OUT_CSR1_REG 0x52000190 //Out endpoint control status
+#define OUT_CSR2_REG 0x52000194
+#define OUT_FIFO_CNT1_REG 0x52000198 //Endpoint out write count
+#define OUT_FIFO_CNT2_REG 0x5200019c
+#define EP0_FIFO 0x520001c0 //Endpoint 0 FIFO
+#define EP1_FIFO 0x520001c4 //Endpoint 1 FIFO
+#define EP2_FIFO 0x520001c8 //Endpoint 2 FIFO
+#define EP3_FIFO 0x520001cc //Endpoint 3 FIFO
+#define EP4_FIFO 0x520001d0 //Endpoint 4 FIFO
+#define EP1_DMA_CON 0x52000200 //EP1 DMA interface control
+#define EP1_DMA_UNIT 0x52000204 //EP1 DMA Tx unit counter
+#define EP1_DMA_FIFO 0x52000208 //EP1 DMA Tx FIFO counter
+#define EP1_DMA_TTC_L 0x5200020c //EP1 DMA total Tx counter
+#define EP1_DMA_TTC_M 0x52000210
+#define EP1_DMA_TTC_H 0x52000214
+#define EP2_DMA_CON 0x52000218 //EP2 DMA interface control
+#define EP2_DMA_UNIT 0x5200021c //EP2 DMA Tx unit counter
+#define EP2_DMA_FIFO 0x52000220 //EP2 DMA Tx FIFO counter
+#define EP2_DMA_TTC_L 0x52000224 //EP2 DMA total Tx counter
+#define EP2_DMA_TTC_M 0x52000228
+#define EP2_DMA_TTC_H 0x5200022c
+#define EP3_DMA_CON 0x52000240 //EP3 DMA interface control
+#define EP3_DMA_UNIT 0x52000244 //EP3 DMA Tx unit counter
+#define EP3_DMA_FIFO 0x52000248 //EP3 DMA Tx FIFO counter
+#define EP3_DMA_TTC_L 0x5200024c //EP3 DMA total Tx counter
+#define EP3_DMA_TTC_M 0x52000250
+#define EP3_DMA_TTC_H 0x52000254
+#define EP4_DMA_CON 0x52000258 //EP4 DMA interface control
+#define EP4_DMA_UNIT 0x5200025c //EP4 DMA Tx unit counter
+#define EP4_DMA_FIFO 0x52000260 //EP4 DMA Tx FIFO counter
+#define EP4_DMA_TTC_L 0x52000264 //EP4 DMA total Tx counter
+#define EP4_DMA_TTC_M 0x52000268
+#define EP4_DMA_TTC_H 0x5200026c
+
+
+// WATCH DOG TIMER
+#define WTCON 0x53000000 //Watch-dog timer mode
+#define WTDAT 0x53000004 //Watch-dog timer data
+#define WTCNT 0x53000008 //Eatch-dog timer count
+
+
+// IIC
+#define IICCON 0x54000000 //IIC control
+#define IICSTAT 0x54000004 //IIC status
+#define IICADD 0x54000008 //IIC address
+#define IICDS 0x5400000c //IIC data shift
+
+
+// IIS
+#define IISCON 0x55000000 //IIS Control
+#define IISMOD 0x55000004 //IIS Mode
+#define IISPSR 0x55000008 //IIS Prescaler
+#define IISFCON 0x5500000c //IIS FIFO control
+
+#define IISFIFO 0x55000010 //IIS FIFO entry
+
+
+// I/O PORT
+#define GPACON 0x56000000 //Port A control
+#define GPADAT 0x56000004 //Port A data
+
+#define GPBCON 0x56000010 //Port B control
+#define GPBDAT 0x56000014 //Port B data
+#define GPBUP 0x56000018 //Pull-up control B
+
+#define GPCCON 0x56000020 //Port C control
+#define GPCDAT 0x56000024 //Port C data
+#define GPCUP 0x56000028 //Pull-up control C
+
+#define GPDCON 0x56000030 //Port D control
+#define GPDDAT 0x56000034 //Port D data
+#define GPDUP 0x56000038 //Pull-up control D
+
+#define GPECON 0x56000040 //Port E control
+#define GPEDAT 0x56000044 //Port E data
+#define GPEUP 0x56000048 //Pull-up control E
+
+#define GPFCON 0x56000050 //Port F control
+#define GPFDAT 0x56000054 //Port F data
+#define GPFUP 0x56000058 //Pull-up control F
+
+#define GPGCON 0x56000060 //Port G control
+#define GPGDAT 0x56000064 //Port G data
+#define GPGUP 0x56000068 //Pull-up control G
+
+#define GPHCON 0x56000070 //Port H control
+#define GPHDAT 0x56000074 //Port H data
+#define GPHUP 0x56000078 //Pull-up control H
+
+#define MISCCR 0x56000080 //Miscellaneous control
+#define DCLKCON 0x56000084 //DCLK0/1 control
+#define EXTINT0 0x56000088 //External interrupt control register 0
+#define EXTINT1 0x5600008c //External interrupt control register 1
+#define EXTINT2 0x56000090 //External interrupt control register 2
+#define EINTFLT0 0x56000094 //Reserved
+#define EINTFLT1 0x56000098 //Reserved
+#define EINTFLT2 0x5600009c //External interrupt filter control register 2
+#define EINTFLT3 0x560000a0 //External interrupt filter control register 3
+#define EINTMASK 0x560000a4 //External interrupt mask
+#define EINTPEND 0x560000a8 //External interrupt pending
+#define GSTATUS0 0x560000ac //External pin status
+#define GSTATUS1 0x560000b0 //Chip ID(0x32410000)
+#define GSTATUS2 0x560000b4 //Reset type
+#define GSTATUS3 0x560000b8 //Saved data0(32-bit) before entering POWER_OFF mode
+#define GSTATUS4 0x560000bc //Saved data0(32-bit) before entering POWER_OFF mode
+
+
+// RTC
+#define RTCCON 0x57000040 //RTC control
+#define TICNT 0x57000044 //Tick time count
+#define RTCALM 0x57000050 //RTC alarm control
+#define ALMSEC 0x57000054 //Alarm second
+#define ALMMIN 0x57000058 //Alarm minute
+#define ALMHOUR 0x5700005c //Alarm Hour
+#define ALMDAY 0x57000060 //Alarm day
+#define ALMMON 0x57000064 //Alarm month
+#define ALMYEAR 0x57000068 //Alarm year
+#define RTCRST 0x5700006c //RTC round reset
+#define BCDSEC 0x57000070 //BCD second
+#define BCDMIN 0x57000074 //BCD minute
+#define BCDHOUR 0x57000078 //BCD hour
+#define BCDDAY 0x5700007c //BCD day
+#define BCDDATE 0x57000080 //BCD date
+#define BCDMON 0x57000084 //BCD month
+#define BCDYEAR 0x57000088 //BCD year
+
+
+// ADC
+#define ADCCON 0x58000000 //ADC control
+#define ADCTSC 0x58000004 //ADC touch screen control
+#define ADCDLY 0x58000008 //ADC start or Interval Delay
+#define ADCDAT0 0x5800000c //ADC conversion data 0
+#define ADCDAT1 0x58000010 //ADC conversion data 1
+
+
+// SPI
+#define SPCON0 0x59000000 //SPI0 control
+#define SPSTA0 0x59000004 //SPI0 status
+#define SPPIN0 0x59000008 //SPI0 pin control
+#define SPPRE0 0x5900000c //SPI0 baud rate prescaler
+#define SPTDAT0 0x59000010 //SPI0 Tx data
+#define SPRDAT0 0x59000014 //SPI0 Rx data
+
+#define SPCON1 0x59000020 //SPI1 control
+#define SPSTA1 0x59000024 //SPI1 status
+#define SPPIN1 0x59000028 //SPI1 pin control
+#define SPPRE1 0x5900002c //SPI1 baud rate prescaler
+#define SPTDAT1 0x59000030 //SPI1 Tx data
+#define SPRDAT1 0x59000034 //SPI1 Rx data
+
+
+// SD Interface
+#define SDICON 0x5a000000 //SDI control
+#define SDIPRE 0x5a000004 //SDI baud rate prescaler
+#define SDICARG 0x5a000008 //SDI command argument
+#define SDICCON 0x5a00000c //SDI command control
+#define SDICSTA 0x5a000010 //SDI command status
+#define SDIRSP0 0x5a000014 //SDI response 0
+#define SDIRSP1 0x5a000018 //SDI response 1
+#define SDIRSP2 0x5a00001c //SDI response 2
+#define SDIRSP3 0x5a000020 //SDI response 3
+#define SDIDTIMER 0x5a000024 //SDI data/busy timer
+#define SDIBSIZE 0x5a000028 //SDI block size
+#define SDIDCON 0x5a00002c //SDI data control
+#define SDIDCNT 0x5a000030 //SDI data remain counter
+#define SDIDSTA 0x5a000034 //SDI data status
+#define SDIFSTA 0x5a000038 //SDI FIFO status
+#define SDIIMSK 0x5a000040 //SDI interrupt mask
+
+#define SDIDAT 0x5a00003c //SDI data
+
+
+#endif // CYGONCE_SMDK2410_H
+//-----------------------------------------------------------------------------
+// end of s3c2410x.h
diff --git a/ecos/packages/hal/arm/arm9/smdk2410/current/misc/smdk2410_redboot_RAM.ecm b/ecos/packages/hal/arm/arm9/smdk2410/current/misc/smdk2410_redboot_RAM.ecm
new file mode 100644
index 0000000..9701b1e
--- /dev/null
+++ b/ecos/packages/hal/arm/arm9/smdk2410/current/misc/smdk2410_redboot_RAM.ecm
@@ -0,0 +1,86 @@
+cdl_savefile_version 1;
+cdl_savefile_command cdl_savefile_version {};
+cdl_savefile_command cdl_savefile_command {};
+cdl_savefile_command cdl_configuration { description hardware template package };
+cdl_savefile_command cdl_package { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_component { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_option { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_interface { value_source user_value wizard_value inferred_value };
+
+cdl_configuration eCos {
+ description "" ;
+ hardware smdk2410_arm9 ;
+ template redboot ;
+ package -hardware CYGPKG_HAL_ARM current ;
+ package -hardware CYGPKG_HAL_ARM_ARM9 current ;
+ package -hardware CYGPKG_HAL_ARM_ARM9_SMDK2410 current ;
+ package -hardware CYGPKG_IO_SERIAL_ARM_SMDK2410 current ;
+ package -hardware CYGPKG_DEVS_FLASH_ARM_SMDK2410 current ;
+ package -hardware CYGPKG_DEVS_FLASH_AMD_AM29XXXXX current ;
+ package -template CYGPKG_HAL current ;
+ package -template CYGPKG_INFRA current ;
+ package -template CYGPKG_REDBOOT current ;
+ package -template CYGPKG_ISOINFRA current ;
+ package -template CYGPKG_LIBC_STRING current ;
+ package -template CYGPKG_CRC current ;
+ package CYGPKG_IO_FLASH current ;
+ package CYGPKG_MEMALLOC current ;
+ package CYGPKG_COMPRESS_ZLIB current ;
+};
+
+cdl_option CYGNUM_HAL_COMMON_INTERRUPTS_STACK_SIZE {
+ user_value 4096
+};
+
+cdl_option CYGDBG_HAL_COMMON_INTERRUPTS_SAVE_MINIMUM_CONTEXT {
+ user_value 0
+};
+
+cdl_option CYGDBG_HAL_COMMON_CONTEXT_SAVE_MINIMUM {
+ inferred_value 0
+};
+
+cdl_option CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS {
+ inferred_value 1
+};
+
+cdl_option CYGSEM_HAL_ROM_MONITOR {
+ inferred_value 0
+};
+
+cdl_option CYGSEM_HAL_USE_ROM_MONITOR {
+ inferred_value 0 0
+};
+
+cdl_option CYGPKG_HAL_ARM_ARM9_ARM920T {
+ inferred_value 1
+};
+
+cdl_component CYG_HAL_STARTUP {
+ user_value RAM
+};
+
+cdl_component CYGBLD_BUILD_REDBOOT {
+ user_value 1
+};
+
+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 CYGHWR_DEVS_FLASH_AMD_AM29LV800 {
+ inferred_value 1
+};
+
diff --git a/ecos/packages/hal/arm/arm9/smdk2410/current/misc/smdk2410_redboot_ROMRAM.ecm b/ecos/packages/hal/arm/arm9/smdk2410/current/misc/smdk2410_redboot_ROMRAM.ecm
new file mode 100644
index 0000000..e81f11c
--- /dev/null
+++ b/ecos/packages/hal/arm/arm9/smdk2410/current/misc/smdk2410_redboot_ROMRAM.ecm
@@ -0,0 +1,85 @@
+cdl_savefile_version 1;
+cdl_savefile_command cdl_savefile_version {};
+cdl_savefile_command cdl_savefile_command {};
+cdl_savefile_command cdl_configuration { description hardware template package };
+cdl_savefile_command cdl_package { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_component { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_option { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_interface { value_source user_value wizard_value inferred_value };
+
+cdl_configuration eCos {
+ description "" ;
+ hardware smdk2410_arm9 ;
+ template redboot ;
+ package -hardware CYGPKG_HAL_ARM current ;
+ package -hardware CYGPKG_HAL_ARM_ARM9 current ;
+ package -hardware CYGPKG_HAL_ARM_ARM9_SMDK2410 current ;
+ package -hardware CYGPKG_IO_SERIAL_ARM_SMDK2410 current ;
+ package -hardware CYGPKG_DEVS_FLASH_ARM_SMDK2410 current ;
+ package -hardware CYGPKG_DEVS_FLASH_AMD_AM29XXXXX current ;
+ package -template CYGPKG_HAL current ;
+ package -template CYGPKG_INFRA current ;
+ package -template CYGPKG_REDBOOT current ;
+ package -template CYGPKG_ISOINFRA current ;
+ package -template CYGPKG_LIBC_STRING current ;
+ package -template CYGPKG_CRC current ;
+ package CYGPKG_IO_FLASH current ;
+ package CYGPKG_MEMALLOC current ;
+ package CYGPKG_COMPRESS_ZLIB current ;
+};
+
+cdl_option CYGNUM_HAL_COMMON_INTERRUPTS_STACK_SIZE {
+ user_value 4096
+};
+
+cdl_option CYGDBG_HAL_COMMON_INTERRUPTS_SAVE_MINIMUM_CONTEXT {
+ user_value 0
+};
+
+cdl_option CYGDBG_HAL_COMMON_CONTEXT_SAVE_MINIMUM {
+ inferred_value 0
+};
+
+cdl_option CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS {
+ inferred_value 1
+};
+
+cdl_option CYGSEM_HAL_ROM_MONITOR {
+ inferred_value 1
+};
+
+cdl_option CYGSEM_HAL_USE_ROM_MONITOR {
+ inferred_value 0 0
+};
+
+cdl_option CYGPKG_HAL_ARM_ARM9_ARM920T {
+ inferred_value 1
+};
+
+cdl_component CYG_HAL_STARTUP {
+ user_value ROMRAM
+};
+
+cdl_component CYGBLD_BUILD_REDBOOT {
+ user_value 1
+};
+
+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 CYGHWR_DEVS_FLASH_AMD_AM29LV800 {
+ inferred_value 1
+};
diff --git a/ecos/packages/hal/arm/arm9/smdk2410/current/src/hal_diag.c b/ecos/packages/hal/arm/arm9/smdk2410/current/src/hal_diag.c
new file mode 100644
index 0000000..eb5409b
--- /dev/null
+++ b/ecos/packages/hal/arm/arm9/smdk2410/current/src/hal_diag.c
@@ -0,0 +1,328 @@
+//=============================================================================
+//
+// hal_diag.c
+//
+// HAL diagnostic output code
+//
+//=============================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): michael anburaj <michaelanburaj@hotmail.com>
+// Contributors: michael anburaj <michaelanburaj@hotmail.com>
+// Date: 2003-08-01
+// Purpose: HAL diagnostic output
+// Description: Implementations of HAL diagnostic output support.
+//
+//####DESCRIPTIONEND####
+//
+//=============================================================================
+
+#include <pkgconf/hal.h>
+#include CYGBLD_HAL_VARIANT_H // Variant specific configuration
+#include CYGBLD_HAL_PLATFORM_H // Platform specific configuration
+
+#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> // basic machine info
+#include <cyg/hal/hal_intr.h> // interrupt macros
+#include <cyg/hal/hal_io.h> // IO macros
+#include <cyg/hal/hal_diag.h>
+#include <cyg/hal/drv_api.h>
+#include <cyg/hal/hal_if.h> // interface API
+#include <cyg/hal/hal_misc.h> // Helper functions
+#include <cyg/hal/s3c2410x.h> // platform definitions
+
+//-----------------------------------------------------------------------------
+typedef struct {
+ cyg_uint32 base;
+ cyg_int32 msec_timeout;
+ int isr_vector;
+} channel_data_t;
+
+static channel_data_t smdk_ser_channels[2] = {
+ {(cyg_uint32)ULCON0, 1000, CYGNUM_HAL_INTERRUPT_UART0},
+ {(cyg_uint32)ULCON1, 1000, CYGNUM_HAL_INTERRUPT_UART1}
+};
+
+
+#define __READ_UINT32( _register_ ) *((volatile CYG_WORD32 *)(_register_))
+
+
+//-----------------------------------------------------------------------------
+
+static void
+cyg_hal_plf_serial_init_channel(void* __ch_data)
+{
+ cyg_uint32 base = ((channel_data_t*)__ch_data)->base;
+
+ //UART FIFO control register
+ HAL_WRITE_UINT32(base+OFS_UFCON, (3<<6) | (3<<4) | (1<<2) | (1<<1) | (1<<0));
+
+ //UART modem control register
+ HAL_WRITE_UINT32(base+OFS_UMCON, 0);
+
+ //UART line control register: Normal,No parity,1 stop,8 bits
+ HAL_WRITE_UINT32(base+OFS_ULCON, 0x3);
+
+ //UART control register
+ HAL_WRITE_UINT32(base+OFS_UCON, 0x245);
+
+ //UART baud divider register
+ HAL_WRITE_UINT32(base+OFS_UBRDIV, (cyg_uint32)((FCLK/4)/16./CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_BAUD+0.5) -1);
+}
+
+void
+cyg_hal_plf_serial_putc(void* __ch_data, char c)
+{
+ cyg_uint32 base = ((channel_data_t*)__ch_data)->base;
+ cyg_uint32 status;
+ CYGARC_HAL_SAVE_GP();
+
+ // Wait for Tx FIFO not full
+ do
+ {
+ HAL_READ_UINT32(base+OFS_UFSTAT, status);
+ }
+ while (status & 0x200) ;
+
+ //UART TX data register
+ HAL_WRITE_UINT8(base+OFS_UTXH, c);
+
+ CYGARC_HAL_RESTORE_GP();
+}
+
+static cyg_bool
+cyg_hal_plf_serial_getc_nonblock(void* __ch_data, cyg_uint8* ch)
+{
+ cyg_uint32 base = ((channel_data_t*)__ch_data)->base;
+ cyg_uint32 status;
+
+ HAL_READ_UINT32(base+OFS_UFSTAT, status);
+ if (status & 0x0f)
+ {
+ HAL_READ_UINT8(base+OFS_URXH, *ch);
+ return true;
+ }
+
+ return false;
+}
+
+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;
+}
+
+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;
+ int ret = 0;
+ CYGARC_HAL_SAVE_GP();
+
+ switch (__func) {
+ case __COMMCTL_IRQ_ENABLE:
+ irq_state = 1;
+ HAL_INTERRUPT_UNMASK(chan->isr_vector);
+ break;
+ case __COMMCTL_IRQ_DISABLE:
+ ret = irq_state;
+ irq_state = 0;
+ 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;
+ channel_data_t* chan = (channel_data_t*)__ch_data;
+ char c;
+ cyg_uint32 lsr;
+ CYGARC_HAL_SAVE_GP();
+
+ cyg_drv_interrupt_acknowledge(chan->isr_vector);
+
+ *__ctrlc = 0;
+ HAL_READ_UINT32(chan->base+OFS_UFSTAT, lsr);
+ if (lsr & 0x0f)
+ {
+ HAL_READ_UINT8(chan->base+OFS_URXH, 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(smdk_ser_channels[0].isr_vector);
+ HAL_INTERRUPT_MASK(smdk_ser_channels[1].isr_vector);
+
+ //Unmask UART0/1 RX interrupt
+ HAL_WRITE_UINT32(INTSUBMSK, __READ_UINT32(INTSUBMSK) & ~(BIT_SUB_RXD0|BIT_SUB_RXD1));
+
+ // Init channels
+ cyg_hal_plf_serial_init_channel(&smdk_ser_channels[0]);
+ cyg_hal_plf_serial_init_channel(&smdk_ser_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, &smdk_ser_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, &smdk_ser_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();
+}
+
+//-----------------------------------------------------------------------------
+// End of hal_diag.c
diff --git a/ecos/packages/hal/arm/arm9/smdk2410/current/src/smdk2410_misc.c b/ecos/packages/hal/arm/arm9/smdk2410/current/src/smdk2410_misc.c
new file mode 100644
index 0000000..5a629cf
--- /dev/null
+++ b/ecos/packages/hal/arm/arm9/smdk2410/current/src/smdk2410_misc.c
@@ -0,0 +1,477 @@
+//==========================================================================
+//
+// smdk2410_misc.c
+//
+// HAL misc board support code for ARM9/SMDK2410
+//
+//==========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//==========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): michael anburaj <michaelanburaj@hotmail.com>
+// Contributors: michael anburaj <michaelanburaj@hotmail.com>
+// Date: 2003-08-01
+// 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/s3c2410x.h> // Platform specifics
+
+#include <cyg/infra/diag.h> // diag_printf
+
+#include <string.h> // memset
+
+// -------------------------------------------------------------------------
+// MMU initialization:
+//
+// These structures are laid down in memory to define the translation
+// table.
+//
+
+// ARM Translation Table Base Bit Masks
+#define ARM_TRANSLATION_TABLE_MASK 0xFFFFC000
+
+// ARM 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.imp = 1; \
+ 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 = SMDK2410_SDRAM_PHYS_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);
+
+ // Memory layout after MMU is turned on
+ //
+ // SDRAM_BASE_ADDRESS: 0x00000000, 64M
+ // SRAM_BASE_ADDRESS: 0x40000000, 4K
+ // SFR_BASE_ADDRESS: 0x48000000, 512M
+ // FLASH_BASE_ADDRESS: 0x80000000, 2M
+
+ // Actual Virtual Size Attributes Function
+ // Base Base MB cached? buffered? access permissions
+ // xxx00000 xxx00000
+ X_ARM_MMU_SECTION(0x000, 0x800, 2, ARM_UNCACHEABLE, ARM_UNBUFFERABLE, ARM_ACCESS_PERM_RW_RW); // Flash
+ X_ARM_MMU_SECTION(0x300, 0x000, 64, ARM_CACHEABLE, ARM_BUFFERABLE, ARM_ACCESS_PERM_RW_RW); // SDRAM
+ X_ARM_MMU_SECTION(0x400, 0x400, 1, ARM_CACHEABLE, ARM_BUFFERABLE, ARM_ACCESS_PERM_RW_RW); // SRAM
+ X_ARM_MMU_SECTION(0x480, 0x480, 512, ARM_UNCACHEABLE, ARM_UNBUFFERABLE, ARM_ACCESS_PERM_RW_RW); // SFRs
+ X_ARM_MMU_SECTION(0x300, 0x300, 64, ARM_UNCACHEABLE, ARM_UNBUFFERABLE, ARM_ACCESS_PERM_RW_RW); // Raw SDRAM
+}
+
+//----------------------------------------------------------------------------
+// Platform specific initialization
+
+// This routine sets the default GPIO condition
+static void port_init(void)
+{
+ // Note: Follow the configuration order for setting the ports.
+ // 1) Set data register (GPnDAT)
+ // 2) Set control register (GPnCON)
+ // 3) Configure pull-up's (GPnUP)
+
+ //*** PORT A GROUP
+ //Ports : GPA22 GPA21 GPA20 GPA19 GPA18 GPA17 GPA16 GPA15 GPA14 GPA13 GPA12
+ //Signal : nFCE nRSTOUT nFRE nFWE ALE CLE nGCS5 nGCS4 nGCS3 nGCS2 nGCS1
+ //Binary : 1 1 1 1 1 1 1 1 1 1 1
+ //-----------------------------------------------------------------------------------------
+ //Ports : GPA11 GPA10 GPA9 GPA8 GPA7 GPA6 GPA5 GPA4 GPA3 GPA2 GPA1 GPA0
+ //Signal : ADDR26 ADDR25 ADDR24 ADDR23 ADDR22 ADDR21 ADDR20 ADDR19 ADDR18 ADDR17 ADDR16 ADDR0
+ //Binary : 1 1 1 1 1 1 1 1 1 1 1 1
+ HAL_WRITE_UINT32(GPACON, 0x7fffff);
+
+ //**** PORT B GROUP
+ //Ports : GPB10 GPB9 GPB8 GPB7 GPB6 GPB5 GPB4 GPB3 GPB2 GPB1 GPB0
+ //Signal : nXDREQ0 nXDACK0 nXDREQ1 nXDACK1 nSS_KBD nDIS_OFF L3CLOCK L3DATA L3MODE nIrDATXDEN Keyboard
+ //Setting: INPUT OUTPUT INPUT OUTPUT INPUT OUTPUT OUTPUT OUTPUT OUTPUT OUTPUT OUTPUT
+ //Binary : 00 01 00 01 00 01 01 01 01 01 01
+ HAL_WRITE_UINT32(GPBCON, 0x044555);
+ HAL_WRITE_UINT32(GPBUP, 0x7ff); // The pull up function is disabled GPB[10:0]
+
+ //*** PORT C GROUP
+ //Ports : GPC15 GPC14 GPC13 GPC12 GPC11 GPC10 GPC9 GPC8 GPC7 GPC6 GPC5 GPC4 GPC3 GPC2 GPC1 GPC0
+ //Signal : VD7 VD6 VD5 VD4 VD3 VD2 VD1 VD0 LCDVF2 LCDVF1 LCDVF0 VM VFRAME VLINE VCLK LEND
+ //Binary : 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+ HAL_WRITE_UINT32(GPCCON, 0xaaaaaaaa);
+ HAL_WRITE_UINT32(GPCUP, 0xffff); // The pull up function is disabled GPC[15:0]
+
+ //*** PORT D GROUP
+ //Ports : GPD15 GPD14 GPD13 GPD12 GPD11 GPD10 GPD9 GPD8 GPD7 GPD6 GPD5 GPD4 GPD3 GPD2 GPD1 GPD0
+ //Signal : VD23 VD22 VD21 VD20 VD19 VD18 VD17 VD16 VD15 VD14 VD13 VD12 VD11 VD10 VD9 VD8
+ //Binary : 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
+ HAL_WRITE_UINT32(GPDCON, 0xaaaaaaaa);
+ HAL_WRITE_UINT32(GPDUP, 0xffff); // The pull up function is disabled GPD[15:0]
+
+ //*** PORT E GROUP
+ //Ports : GPE15 GPE14 GPE13 GPE12 GPE11 GPE10 GPE9 GPE8 GPE7 GPE6 GPE5 GPE4
+ //Signal : IICSDA IICSCL SPICLK SPIMOSI SPIMISO SDDATA3 SDDATA2 SDDATA1 SDDATA0 SDCMD SDCLK I2SSDO
+ //Binary : 10 10 10 10 10 10 10 10 10 10 10 10
+ //------------------------------------------------------------------------------------------------
+ //Ports : GPE3 GPE2 GPE1 GPE0
+ //Signal : I2SSDI CDCLK I2SSCLK I2SLRCK
+ //Binary : 10 10 10 10
+ HAL_WRITE_UINT32(GPECON, 0xaaaaaaaa);
+ HAL_WRITE_UINT32(GPEUP, 0xffff); // The pull up function is disabled GPE[15:0]
+
+ //*** PORT F GROUP
+ //Ports : GPF7 GPF6 GPF5 GPF4 GPF3 GPF2 GPF1 GPF0
+ //Signal : nLED_8 nLED_4 nLED_2 nLED_1 nIRQ_PCMCIA EINT2 KBDINT EINT0
+ //Setting: Output Output Output Output EINT3 EINT2 EINT1 EINT0
+ //Binary : 01 01 01 01 10 10 10 10
+ HAL_WRITE_UINT32(GPFCON, 0x55aa);
+ HAL_WRITE_UINT32(GPFUP, 0xff); // The pull up function is disabled GPF[7:0]
+
+ //*** PORT G GROUP
+ //Ports : GPG15 GPG14 GPG13 GPG12 GPG11 GPG10 GPG9 GPG8 GPG7 GPG6
+ //Signal : nYPON YMON nXPON XMON EINT19 DMAMODE1 DMAMODE0 DMASTART KBDSPICLK KBDSPIMOSI
+ //Setting: nYPON YMON nXPON XMON EINT19 Output Output Output SPICLK1 SPIMOSI1
+ //Binary : 11 11 11 11 10 01 01 01 11 11
+ //-----------------------------------------------------------------------------------------
+ //Ports : GPG5 GPG4 GPG3 GPG2 GPG1 GPG0
+ //Signal : KBDSPIMISO LCD_PWREN EINT11 nSS_SPI IRQ_LAN IRQ_PCMCIA
+ //Setting: SPIMISO1 LCD_PWRDN EINT11 nSS0 EINT9 EINT8
+ //Binary : 11 11 10 11 10 10
+ HAL_WRITE_UINT32(GPGCON, 0xff95ffba);
+ HAL_WRITE_UINT32(GPGUP, 0xffff); // The pull up function is disabled GPG[15:0]
+
+ //*** PORT H GROUP
+ //Ports : GPH10 GPH9 GPH8 GPH7 GPH6 GPH5 GPH4 GPH3 GPH2 GPH1 GPH0
+ //Signal : CLKOUT1 CLKOUT0 UCLK nCTS1 nRTS1 RXD1 TXD1 RXD0 TXD0 nRTS0 nCTS0
+ //Binary : 10 10 10 11 11 10 10 10 10 10 10
+ HAL_WRITE_UINT32(GPHCON, 0x2afaaa);
+ HAL_WRITE_UINT32(GPHUP, 0x7ff); // The pull up function is disabled GPH[10:0]
+
+ //External interrupts will be falling edge triggered.
+ HAL_WRITE_UINT32(EXTINT0, 0x22222222); // EINT[7:0]
+ HAL_WRITE_UINT32(EXTINT1, 0x22222222); // EINT[15:8]
+ HAL_WRITE_UINT32(EXTINT2, 0x22222222); // EINT[23:16]
+}
+
+void
+plf_hardware_init(void)
+{
+ HAL_WRITE_UINT32(INTMOD, 0x0); //All=IRQ mode
+ HAL_WRITE_UINT32(INTMSK, BIT_ALLMSK); //All interrupt is masked.
+ HAL_WRITE_UINT32(INTSUBMSK, BIT_SUB_ALLMSK); //All sub-interrupt is masked.
+
+ port_init();
+
+ // Initialize real-time clock (for delays, etc, even if kernel doesn't use it)
+ hal_clock_initialize(CYGNUM_HAL_RTC_PERIOD);
+}
+
+// -------------------------------------------------------------------------
+// Use Timer4 for system clock
+void
+hal_clock_initialize(cyg_uint32 period)
+{
+ cyg_uint32 temp;
+
+ // Configure the Prescaler1
+ HAL_READ_UINT32(TCFG0, temp);
+ temp &= ~(0xff<<8);
+ temp |= (CYGNUM_HAL_ARM_SMDK2410_TIMER_PRESCALE<<8);
+ HAL_WRITE_UINT32(TCFG0, temp);
+
+ // Configure the MUX to select the 1/2 divider
+ HAL_READ_UINT32(TCFG1, temp);
+ temp &= ~(0xf<<16);
+ temp |= (0x0<<16);
+ HAL_WRITE_UINT32(TCFG1, temp);
+
+ // Set up the Timer4 for period
+ HAL_WRITE_UINT32(TCNTB4, period);
+
+ // Start Timer4
+ HAL_READ_UINT32(TCON, temp);
+ temp &= ~(0xf << 20);
+ HAL_WRITE_UINT32(TCON, (temp|(6<<20)));
+ HAL_WRITE_UINT32(TCON, (temp|(5<<20)));
+
+ // Unmask Timer4 interrupt, need not be done here
+ //HAL_INTERRUPT_CONFIGURE( CYGNUM_HAL_INTERRUPT_RTC, 1, 1 );
+ //HAL_INTERRUPT_UNMASK( CYGNUM_HAL_INTERRUPT_RTC );
+}
+
+// This routine is called during a clock interrupt.
+void
+hal_clock_reset(cyg_uint32 vector, cyg_uint32 period)
+{
+ // Do nothing
+}
+
+// Read the current value of the clock, returning the number of hardware
+// "ticks" that have occurred (i.e. how far away the current value is from
+// the start)
+void
+hal_clock_read(cyg_uint32 *pvalue)
+{
+ cyg_int32 clock_val;
+
+ // Read Timer4's current value
+ HAL_READ_UINT32(TCNTO4, clock_val);
+
+ *pvalue = CYGNUM_HAL_RTC_PERIOD - (clock_val & 0xFFFF); // Note: counter is only 16 bits
+ // and decreases
+}
+
+
+// Delay for some number of micro-seconds
+void
+hal_delay_us(cyg_int32 usecs)
+{
+ cyg_uint32 ticks = 0;
+ // Divide by 1000000 in two steps to preserve precision.
+ cyg_uint32 wait_ticks = (((PCLK/100000)*usecs)/CYGNUM_HAL_ARM_SMDK2410_TIMER_PRESCALE/2/10);
+ cyg_int32 val, prev, diff;
+
+ // Read Timer4's current value
+ HAL_READ_UINT32(TCNTO4, prev);
+ prev &= 0xFFFF;
+
+ while (ticks < wait_ticks) {
+ while (true) {
+ // Read Timer4's current value
+ HAL_READ_UINT32(TCNTO4, val);
+ val &= 0xFFFF;
+
+ diff = prev - val;
+ if (diff != 0) {
+ if(diff < 0)
+ diff += (CYGNUM_HAL_RTC_PERIOD+1);
+
+ break; // atleast 1 tick has passed
+ }
+ }
+ prev = val;
+ ticks += diff;
+ }
+}
+
+// -------------------------------------------------------------------------
+
+// This routine is called to respond to a hardware interrupt (IRQ). It
+// should interrogate the hardware and return the IRQ vector number.
+int
+hal_IRQ_handler(void)
+{
+ cyg_uint32 ior;
+
+ HAL_READ_UINT32(INTOFFSET, ior);
+ return (int)ior;
+}
+
+//----------------------------------------------------------------------------
+// Interrupt control
+
+void
+hal_interrupt_mask(int vector)
+{
+ cyg_uint32 imr;
+
+ CYG_ASSERT(vector <= CYGNUM_HAL_ISR_MAX &&
+ vector >= CYGNUM_HAL_ISR_MIN , "Invalid vector");
+
+ HAL_READ_UINT32(INTMSK, imr);
+ imr |= (1<<vector);
+ HAL_WRITE_UINT32(INTMSK, imr);
+}
+
+void
+hal_interrupt_unmask(int vector)
+{
+ cyg_uint32 imr;
+
+ CYG_ASSERT(vector <= CYGNUM_HAL_ISR_MAX &&
+ vector >= CYGNUM_HAL_ISR_MIN , "Invalid vector");
+
+ HAL_READ_UINT32(INTMSK, imr);
+ imr &= ~(1<<vector);
+ HAL_WRITE_UINT32(INTMSK, imr);
+}
+
+void
+hal_interrupt_acknowledge(int vector)
+{
+ cyg_uint32 ipr;
+
+ CYG_ASSERT(vector <= CYGNUM_HAL_ISR_MAX &&
+ vector >= CYGNUM_HAL_ISR_MIN , "Invalid vector");
+
+ HAL_WRITE_UINT32(SRCPND, (1<<vector));
+ HAL_READ_UINT32(INTPND, ipr);
+ HAL_WRITE_UINT32(INTPND, ipr);
+}
+
+void
+hal_interrupt_configure(int vector, int level, int up)
+{
+ CYG_ASSERT(vector <= CYGNUM_HAL_ISR_MAX &&
+ vector >= CYGNUM_HAL_ISR_MIN, "Invalid vector");
+}
+
+void hal_interrupt_set_level(int vector, int level)
+{
+ CYG_ASSERT(vector <= CYGNUM_HAL_ISR_MAX &&
+ vector >= CYGNUM_HAL_ISR_MIN, "Invalid vector");
+}
+
+
+//-----------------------------------------------------------------------------
+// End of smdk2410_misc.c
diff --git a/ecos/packages/hal/arm/arm9/var/current/ChangeLog b/ecos/packages/hal/arm/arm9/var/current/ChangeLog
new file mode 100644
index 0000000..d4e4cc3
--- /dev/null
+++ b/ecos/packages/hal/arm/arm9/var/current/ChangeLog
@@ -0,0 +1,159 @@
+2006-02-17 Tom Chase <tchase@dtccom.com>
+
+ * include/hal_cache.h: Added support for ARM926EJ. Changed
+ ARM925T to use CYGHWR_HAL_ARM_ARM9_ALT_CLEAN_CACHE and defined
+ CYGHWR_HAL_ARM_ARM9_ALT_CLEAN_CACHE to clean the cache manually
+ because CYGHWR_HAL_ARM_ARM9_CLEAN_CACHE did not work for the
+ OMAP1510.
+
+ * cdl/hal_arm_arm9.cdl: Added option for ARM926EJ.
+
+2003-01-08 Patrick Doyle <wpd@delcomsys.com>
+
+ * include/hal_cache.h: Changed HAL_ICACHE_LINE_SIZE and
+ HAL_DCACHE_LINE_SIZE to match the documentation from TI. Now the
+ kcache2 test passes the two tests that it runs.
+
+2002-03-06 Nick Garnett <nickg@redhat.com>
+
+ * include/hal_cache.h: Added support for ARM966E. This does not
+ have a cache, so this involved adding support for cacheless ARM9s
+ in general.
+
+ * cdl/hal_arm_arm9.cdl: Added option for ARM966E.
+
+2002-01-28 Jesper Skov <jskov@redhat.com>
+
+ * include/hal_cache.h: Only define HAL_VIRT_TO_PHYS_ADDRESS if it
+ isn't already defined. This needs renaming and a cleanup, but this
+ quick #ifdef hack fixes a compiler warning.
+
+ * cdl/hal_arm_arm9.cdl: Declare var_io.h.
+
+ * include/var_io.h: Added.
+
+2001-11-16 Jesper Skov <jskov@redhat.com>
+
+ * src/arm9_misc.c (hal_hardware_init): Don't invalidate caches on
+ RAM startup.
+
+2001-11-07 Jesper Skov <jskov@redhat.com>
+
+ * src/arm9_misc.c (cyg_hal_arm9_soft_reset): Also put CPU in SVC
+ mode (as after a reset). Still broken though.
+
+2001-11-06 Gary Thomas <gthomas@redhat.com>
+
+ * include/hal_cache.h: Add virtual->physical translation setup.
+
+2001-11-01 Jesper Skov <jskov@redhat.com>
+
+ * src/arm9_misc.c (cyg_hal_arm9_soft_reset): Attempt at soft
+ reset. Doesn't quite work though, and it's unclear why.
+
+2001-10-28 Gary Thomas <gthomas@redhat.com>
+
+ * include/hal_cache.h: Fix DATA cache flush for 920,922. This was
+ off-by-one, leaving part of the cache unflushed.
+
+2001-08-13 Jesper Skov <jskov@redhat.com>
+
+ * include/hal_cache.h: Support ARM variants 920, 922, 925 and 940.
+
+2001-04-30 Gary Thomas <gthomas@redhat.com>
+
+ * src/arm9_misc.c (hal_hardware_init): Use CDL configuration to
+ decide which caches should be enabled at startup time.
+
+2001-04-26 Gary Thomas <gthomas@redhat.com>
+
+ * src/arm9_misc.c (hal_hardware_init): Caches just don't seem to work.
+
+ * include/hal_cache.h: Fix cache parameters - 16K x 16K
+
+2001-04-18 Jesper Skov <jskov@redhat.com>
+
+ * src/arm9_misc.c: Update copyright.
+ * include/hal_cache.h: Same.
+ * cdl/hal_arm_arm9.cdl: Same.
+
+2001-04-16 Gary Thomas <gthomas@redhat.com>
+
+ * cdl/hal_arm_arm9.cdl: Add CDL to describe CPU family.
+
+2001-04-03 Jesper Skov <jskov@redhat.com>
+
+ * src/arm9_misc.c: Removed hal_arm9.h
+ * include/hal_cache.h: Same.
+ * include/hal_arm9.h: Deleted.
+
+2000-12-04 Hugo Tyson <hmt@redhat.com>
+
+ * include/hal_cache.h: Consistently ensure that ARM registers used
+ in MCR ops to cache-control coprocessors, where the data doesn't
+ matter, all actually have data zero ("SBZ") as in the Jaggar book.
+ This may well not be necessary, but for the sake of making sure...
+
+2000-11-27 Jesper Skov <jskov@redhat.com>
+
+ * include/hal_cache.h
+ (HAHAL_FLASH_CACHES_ON/HAL_FLASH_CACHES_OFF): Defined.
+
+ * src/arm9_misc.c (hal_hardware_init): Disable caches. Wasted too
+ much time on this already.
+
+2000-11-23 Jesper Skov <jskov@redhat.com>
+
+ * include/hal_cache.h (HAL_DCACHE_SYNC): Wait for cache dirty flag
+ to clear.
+
+2000-11-22 Jesper Skov <jskov@redhat.com>
+
+ * src/arm9_misc.c (hal_hardware_init): Don't disable caches.
+
+2000-11-21 Jesper Skov <jskov@redhat.com>
+
+ * include/hal_cache.h (HAL_DCACHE_INVALIDATE_ALL): Remove
+ writeback buffer flush.
+
+ * cdl/hal_arm_arm9.cdl: Removed clock options.
+
+ * src/arm9_misc.c: Cleaned up, enabled caches.
+
+ * include/hal_cache.h: Enable cache controls, fix invalidate
+ macro.
+
+2000-11-15 Jesper Skov <jskov@redhat.com>
+
+ * src/arm9_misc.c: Disable/clear caches. Removed clock handling.
+
+ * include/hal_cache.h: Changed to match ARM925, but prevent
+ enabling. Messes up flash programming.
+
+2000-11-14 Jesper Skov <jskov@redhat.com>
+
+ * Created.
+
+//===========================================================================
+// ####GPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 2 or (at your option) any
+// later version.
+//
+// This program is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the
+// Free Software Foundation, Inc., 51 Franklin Street,
+// Fifth Floor, Boston, MA 02110-1301, USA.
+// -------------------------------------------
+// ####GPLCOPYRIGHTEND####
+//===========================================================================
diff --git a/ecos/packages/hal/arm/arm9/var/current/cdl/hal_arm_arm9.cdl b/ecos/packages/hal/arm/arm9/var/current/cdl/hal_arm_arm9.cdl
new file mode 100644
index 0000000..f8b61a4
--- /dev/null
+++ b/ecos/packages/hal/arm/arm9/var/current/cdl/hal_arm_arm9.cdl
@@ -0,0 +1,141 @@
+# ====================================================================
+#
+# hal_arm_arm9.cdl
+#
+# ARM Arm9 architectural HAL package configuration data
+#
+# ====================================================================
+## ####ECOSGPLCOPYRIGHTBEGIN####
+## -------------------------------------------
+## This file is part of eCos, the Embedded Configurable Operating System.
+## Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+##
+## eCos is free software; you can redistribute it and/or modify it under
+## the terms of the GNU General Public License as published by the Free
+## Software Foundation; either version 2 or (at your option) any later
+## version.
+##
+## eCos is distributed in the hope that it will be useful, but WITHOUT
+## ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+## FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+## for more details.
+##
+## You should have received a copy of the GNU General Public License
+## along with eCos; if not, write to the Free Software Foundation, Inc.,
+## 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+##
+## As a special exception, if other files instantiate templates or use
+## macros or inline functions from this file, or you compile this file
+## and link it with other works to produce a work based on this file,
+## this file does not by itself cause the resulting work to be covered by
+## the GNU General Public License. However the source code for this file
+## must still be made available in accordance with section (3) of the GNU
+## General Public License v2.
+##
+## This exception does not invalidate any other reasons why a work based
+## on this file might be covered by the GNU General Public License.
+## -------------------------------------------
+## ####ECOSGPLCOPYRIGHTEND####
+# ====================================================================
+######DESCRIPTIONBEGIN####
+#
+# Author(s): gthomas
+# Contributors: jskov
+# Date: 2000-11-10
+#
+#####DESCRIPTIONEND####
+#
+# ====================================================================
+cdl_package CYGPKG_HAL_ARM_ARM9 {
+ display "ARM ARM9 architecture"
+ parent CYGPKG_HAL_ARM
+ hardware
+ include_dir cyg/hal
+ define_header hal_arm_arm9.h
+ description "
+ This HAL variant package provides generic
+ support for the ARM ARM9 processors. It is also
+ necessary to select a specific target platform HAL
+ package."
+
+ implements CYGINT_HAL_ARM_ARCH_ARM9
+
+ compile arm9_misc.c
+
+ define_proc {
+ puts $::cdl_system_header "#define CYGBLD_HAL_ARM_VAR_IO_H"
+ }
+
+ cdl_interface CYGINT_HAL_ARM_ARM9_VARIANT {
+ display "Number of variant implementations in this configuration"
+ no_define
+ requires 1 == CYGINT_HAL_ARM_ARM9_VARIANT
+ }
+
+ # CPU variant supported
+ cdl_option CYGPKG_HAL_ARM_ARM9_ARM920T {
+ display "ARM ARM920T microprocessor"
+ implements CYGINT_HAL_ARM_ARM9_VARIANT
+ default_value 0
+ no_define
+ define -file=system.h CYGPKG_HAL_ARM_ARM9_ARM920T
+ description "
+ The ARM920T has 16k data cache, 16k instruction cache, 16 word
+ write buffer and an MMU."
+ }
+
+ cdl_option CYGPKG_HAL_ARM_ARM9_ARM922T {
+ display "ARM ARM922T microprocessor"
+ implements CYGINT_HAL_ARM_ARM9_VARIANT
+ default_value 0
+ no_define
+ define -file=system.h CYGPKG_HAL_ARM_ARM9_ARM922T
+ description "
+ The ARM922T has 8k data cache, 8k instruction cache, 16 word
+ write buffer and an MMU."
+ }
+
+ cdl_option CYGPKG_HAL_ARM_ARM9_ARM925T {
+ display "ARM ARM925T microprocessor"
+ implements CYGINT_HAL_ARM_ARM9_VARIANT
+ default_value 0
+ no_define
+ define -file=system.h CYGPKG_HAL_ARM_ARM9_ARM925T
+ description "
+ The ARM925T has 8k data cache, 16k instruction cache, 16 word
+ write buffer and an MMU."
+ }
+
+ cdl_option CYGPKG_HAL_ARM_ARM9_ARM926EJ {
+ display "ARM ARM926EJ microprocessor"
+ implements CYGINT_HAL_ARM_ARM9_VARIANT
+ default_value 0
+ no_define
+ define -file=system.h CYGPKG_HAL_ARM_ARM9_ARM926EJ
+ description "
+ The ARM926EJ has 16k data cache, 16k instruction cache, 16 word
+ write buffer and an MMU."
+ }
+
+ cdl_option CYGPKG_HAL_ARM_ARM9_ARM940T {
+ display "ARM ARM940T microprocessor"
+ implements CYGINT_HAL_ARM_ARM9_VARIANT
+ default_value 0
+ no_define
+ define -file=system.h CYGPKG_HAL_ARM_ARM9_ARM940T
+ description "
+ The ARM920T has 4k data cache, 4k instruction cache, 8 word
+ write buffer and a protection unit."
+ }
+
+ cdl_option CYGPKG_HAL_ARM_ARM9_ARM966E {
+ display "ARM ARM966E microprocessor"
+ implements CYGINT_HAL_ARM_ARM9_VARIANT
+ default_value 0
+ no_define
+ define -file=system.h CYGPKG_HAL_ARM_ARM9_ARM966E
+ description "
+ The ARM966E has no data cache, no instruction cache, a
+ write buffer and no protection unit."
+ }
+}
diff --git a/ecos/packages/hal/arm/arm9/var/current/include/hal_cache.h b/ecos/packages/hal/arm/arm9/var/current/include/hal_cache.h
new file mode 100644
index 0000000..97bd4fc
--- /dev/null
+++ b/ecos/packages/hal/arm/arm9/var/current/include/hal_cache.h
@@ -0,0 +1,554 @@
+#ifndef CYGONCE_HAL_CACHE_H
+#define CYGONCE_HAL_CACHE_H
+
+//=============================================================================
+//
+// hal_cache.h
+//
+// HAL cache control API
+//
+//=============================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): gthomas
+// Contributors:hmt, jskov
+// Travis C. Furrer <furrer@mit.edu>
+// Tom Chase <tomc@dtccom.com>
+// Date: 2005-05-10
+// 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 <cyg/infra/cyg_type.h>
+#include <cyg/hal/hal_mmu.h>
+
+
+//-----------------------------------------------------------------------------
+// Cache dimensions
+
+#if defined(CYGPKG_HAL_ARM_ARM9_ARM920T)
+# define HAL_ICACHE_SIZE 0x4000
+# define HAL_ICACHE_LINE_SIZE 32
+# define HAL_ICACHE_WAYS 64
+# define HAL_ICACHE_SETS (HAL_ICACHE_SIZE/(HAL_ICACHE_LINE_SIZE*HAL_ICACHE_WAYS))
+
+# define HAL_DCACHE_SIZE 0x4000
+# define HAL_DCACHE_LINE_SIZE 32
+# define HAL_DCACHE_WAYS 64
+# define HAL_DCACHE_SETS (HAL_DCACHE_SIZE/(HAL_DCACHE_LINE_SIZE*HAL_DCACHE_WAYS))
+
+# define HAL_WRITE_BUFFER 64
+
+# define CYGHWR_HAL_ARM_ARM9_CLEAN_DCACHE_INDEX
+# define CYGHWR_HAL_ARM_ARM9_CLEAN_DCACHE_INDEX_STEP 0x20
+# define CYGHWR_HAL_ARM_ARM9_CLEAN_DCACHE_INDEX_LIMIT 0x100
+
+#elif defined(CYGPKG_HAL_ARM_ARM9_ARM922T)
+# define HAL_ICACHE_SIZE 0x2000
+# define HAL_ICACHE_LINE_SIZE 32
+# define HAL_ICACHE_WAYS 64
+# define HAL_ICACHE_SETS (HAL_ICACHE_SIZE/(HAL_ICACHE_LINE_SIZE*HAL_ICACHE_WAYS))
+
+# define HAL_DCACHE_SIZE 0x2000
+# define HAL_DCACHE_LINE_SIZE 32
+# define HAL_DCACHE_WAYS 64
+# define HAL_DCACHE_SETS (HAL_DCACHE_SIZE/(HAL_DCACHE_LINE_SIZE*HAL_DCACHE_WAYS))
+
+# define HAL_WRITE_BUFFER 64
+
+# define CYGHWR_HAL_ARM_ARM9_CLEAN_DCACHE_INDEX
+# define CYGHWR_HAL_ARM_ARM9_CLEAN_DCACHE_INDEX_STEP 0x20
+# define CYGHWR_HAL_ARM_ARM9_CLEAN_DCACHE_INDEX_LIMIT 0x80
+
+#elif defined(CYGPKG_HAL_ARM_ARM9_ARM925T)
+# define HAL_ICACHE_SIZE 0x4000
+# define HAL_ICACHE_LINE_SIZE 16
+# define HAL_ICACHE_WAYS 2
+# define HAL_ICACHE_SETS (HAL_ICACHE_SIZE/(HAL_ICACHE_LINE_SIZE*HAL_ICACHE_WAYS))
+
+# define HAL_DCACHE_SIZE 0x2000
+# define HAL_DCACHE_LINE_SIZE 16
+# define HAL_DCACHE_WAYS 2
+# define HAL_DCACHE_SETS (HAL_DCACHE_SIZE/(HAL_DCACHE_LINE_SIZE*HAL_DCACHE_WAYS))
+
+# define HAL_WRITE_BUFFER 64
+// must flush everything manually
+# define CYGHWR_HAL_ARM_ARM9_ALT_CLEAN_DCACHE
+
+#elif defined(CYGPKG_HAL_ARM_ARM9_ARM926EJ)
+# define HAL_ICACHE_SIZE 0x4000
+# define HAL_ICACHE_LINE_SIZE 32
+# define HAL_ICACHE_WAYS 4
+# define HAL_ICACHE_SETS (HAL_ICACHE_SIZE/(HAL_ICACHE_LINE_SIZE*HAL_ICACHE_WAYS))
+
+# define HAL_DCACHE_SIZE 0x2000
+# define HAL_DCACHE_LINE_SIZE 32
+# define HAL_DCACHE_WAYS 4
+# define HAL_DCACHE_SETS (HAL_DCACHE_SIZE/(HAL_DCACHE_LINE_SIZE*HAL_DCACHE_WAYS))
+
+# define HAL_WRITE_BUFFER 64
+
+#define CYGHWR_HAL_ARM_ARM926EJ_CLEAN_DCACHE //has instruction to clean D-cache
+
+#elif defined(CYGPKG_HAL_ARM_ARM9_ARM940T)
+# define HAL_ICACHE_SIZE 0x1000
+# define HAL_ICACHE_LINE_SIZE 16
+# define HAL_ICACHE_WAYS 4
+# define HAL_ICACHE_SETS (HAL_ICACHE_SIZE/(HAL_ICACHE_LINE_SIZE*HAL_ICACHE_WAYS))
+
+# define HAL_DCACHE_SIZE 0x1000
+# define HAL_DCACHE_LINE_SIZE 16
+# define HAL_DCACHE_WAYS 4
+# define HAL_DCACHE_SETS (HAL_DCACHE_SIZE/(HAL_DCACHE_LINE_SIZE*HAL_DCACHE_WAYS))
+
+# define HAL_WRITE_BUFFER 32
+
+# define CYGHWR_HAL_ARM_ARM9_CLEAN_DCACHE_INDEX
+# define CYGHWR_HAL_ARM_ARM9_CLEAN_DCACHE_INDEX_STEP 0x10
+# define CYGHWR_HAL_ARM_ARM9_CLEAN_DCACHE_INDEX_LIMIT 0x40
+
+#elif defined(CYGPKG_HAL_ARM_ARM9_ARM966E)
+# define HAL_ICACHE_SIZE 0
+# define HAL_ICACHE_LINE_SIZE 0
+# define HAL_ICACHE_WAYS 0
+# define HAL_ICACHE_SETS (HAL_ICACHE_SIZE/(HAL_ICACHE_LINE_SIZE*HAL_ICACHE_WAYS))
+
+# define HAL_DCACHE_SIZE 0
+# define HAL_DCACHE_LINE_SIZE 0
+# define HAL_DCACHE_WAYS 0
+# define HAL_DCACHE_SETS (HAL_DCACHE_SIZE/(HAL_DCACHE_LINE_SIZE*HAL_DCACHE_WAYS))
+
+# define HAL_WRITE_BUFFER 32
+
+# define CYGHWR_HAL_ARM_ARM9_CLEAN_DCACHE_INDEX
+# define CYGHWR_HAL_ARM_ARM9_CLEAN_DCACHE_INDEX_STEP 0
+# define CYGHWR_HAL_ARM_ARM9_CLEAN_DCACHE_INDEX_LIMIT 0
+
+#else
+# error "No cache details defined"
+#endif
+
+// FIXME: much of the code below should make better use of
+// the definitions from hal_mmu.h
+
+//-----------------------------------------------------------------------------
+// Global control of Instruction cache
+
+#if HAL_ICACHE_SIZE != 0
+
+// FIXME: disable/enable instruction streaming?
+
+// Enable the instruction cache
+#define HAL_ICACHE_ENABLE() \
+CYG_MACRO_START \
+ asm volatile ( \
+ "mrc p15,0,r1,c1,c0,0;" \
+ "orr r1,r1,#0x1000;" \
+ "orr r1,r1,#0x0003;" /* enable ICache (also ensures */ \
+ /* that MMU and alignment faults */ \
+ /* are enabled) */ \
+ "mcr p15,0,r1,c1,c0,0" \
+ : \
+ : \
+ : "r1" /* Clobber list */ \
+ ); \
+CYG_MACRO_END
+
+// Disable the instruction cache (and invalidate it, required semanitcs)
+#define HAL_ICACHE_DISABLE() \
+CYG_MACRO_START \
+ asm volatile ( \
+ "mrc p15,0,r1,c1,c0,0;" \
+ "bic r1,r1,#0x1000;" /* disable ICache (but not MMU, etc) */ \
+ "mcr p15,0,r1,c1,c0,0;" \
+ "mov r1,#0;" \
+ "mcr p15,0,r1,c7,c5,0;" /* flush ICache */ \
+ "nop;" /* next few instructions may be via cache */ \
+ "nop;" \
+ "nop;" \
+ "nop;" \
+ "nop;" \
+ "nop" \
+ : \
+ : \
+ : "r1" /* Clobber list */ \
+ ); \
+CYG_MACRO_END
+
+// Query the state of the instruction cache
+#define HAL_ICACHE_IS_ENABLED(_state_) \
+CYG_MACRO_START \
+ register cyg_uint32 reg; \
+ asm volatile ("mrc p15,0,%0,c1,c0,0" \
+ : "=r"(reg) \
+ : \
+ ); \
+ (_state_) = (0 != (0x1000 & reg)); /* Bit 12 is ICache enable */ \
+CYG_MACRO_END
+
+// Invalidate the entire cache
+#define HAL_ICACHE_INVALIDATE_ALL() \
+CYG_MACRO_START \
+ /* this macro can discard dirty cache lines (N/A for ICache) */ \
+ asm volatile ( \
+ "mov r1,#0;" \
+ "mcr p15,0,r1,c7,c5,0;" /* flush ICache */ \
+ "mcr p15,0,r1,c8,c5,0;" /* flush ITLB only */ \
+ "nop;" /* next few instructions may be via cache */ \
+ "nop;" \
+ "nop;" \
+ "nop;" \
+ "nop;" \
+ "nop;" \
+ : \
+ : \
+ : "r1" /* Clobber list */ \
+ ); \
+CYG_MACRO_END
+
+// Synchronize the contents of the cache with memory.
+// (which includes flushing out pending writes)
+#define HAL_ICACHE_SYNC() \
+CYG_MACRO_START \
+ HAL_DCACHE_SYNC(); /* ensure data gets to RAM */ \
+ HAL_ICACHE_INVALIDATE_ALL(); /* forget all we know */ \
+CYG_MACRO_END
+
+#else
+
+#define HAL_ICACHE_ENABLE()
+#define HAL_ICACHE_DISABLE()
+#define HAL_ICACHE_IS_ENABLED(_state_) ((_state_) = 0)
+#define HAL_ICACHE_INVALIDATE_ALL()
+#define HAL_ICACHE_SYNC()
+
+#endif
+
+// 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_ )
+
+//-----------------------------------------------------------------------------
+// Global control of data cache
+
+#if HAL_DCACHE_SIZE != 0
+
+// Enable the data cache
+#define HAL_DCACHE_ENABLE() \
+CYG_MACRO_START \
+ asm volatile ( \
+ "mrc p15,0,r1,c1,c0,0;" \
+ "orr r1,r1,#0x000F;" /* enable DCache (also ensures */ \
+ /* the MMU, alignment faults, and */ \
+ /* write buffer are enabled) */ \
+ "mcr p15,0,r1,c1,c0,0" \
+ : \
+ : \
+ : "r1" /* Clobber list */ \
+ ); \
+CYG_MACRO_END
+
+// Disable the data cache (and invalidate it, required semanitcs)
+#define HAL_DCACHE_DISABLE() \
+CYG_MACRO_START \
+ asm volatile ( \
+ "mrc p15,0,r1,c1,c0,0;" \
+ "bic r1,r1,#0x000C;" /* disable DCache AND write buffer */ \
+ /* but not MMU and alignment faults */ \
+ "mcr p15,0,r1,c1,c0,0;" \
+ "mov r1,#0;" \
+ "mcr p15,0,r1,c7,c6,0" /* clear data cache */ \
+ : \
+ : \
+ : "r1" /* Clobber list */ \
+ ); \
+CYG_MACRO_END
+
+// Query the state of the data cache
+#define HAL_DCACHE_IS_ENABLED(_state_) \
+CYG_MACRO_START \
+ register int reg; \
+ asm volatile ("mrc p15,0,%0,c1,c0,0;" \
+ : "=r"(reg) \
+ : \
+ ); \
+ (_state_) = (0 != (4 & reg)); /* Bit 2 is DCache enable */ \
+CYG_MACRO_END
+
+// Flush the entire dcache (and then both TLBs, just in case)
+#define HAL_DCACHE_INVALIDATE_ALL() \
+CYG_MACRO_START /* this macro can discard dirty cache lines. */ \
+ asm volatile ( \
+ "mov r0,#0;" \
+ "mcr p15,0,r0,c7,c6,0;" /* flush d-cache */ \
+ "mcr p15,0,r0,c8,c7,0;" /* flush i+d-TLBs */ \
+ : \
+ : \
+ : "r0","memory" /* clobber list */); \
+CYG_MACRO_END
+
+// Synchronize the contents of the cache with memory.
+#ifdef CYGHWR_HAL_ARM_ARM9_CLEAN_DCACHE
+#define HAL_DCACHE_SYNC() \
+CYG_MACRO_START \
+ asm volatile ( \
+ "mov r0, #0;" \
+ "mcr p15,0,r0,c7,c10,0;" /* clean DCache */ \
+ "1: mrc p15,0,r0,c15,c4,0;" /* wait for dirty flag to clear */ \
+ "ands r0,r0,#0x80000000;" \
+ "bne 1b;" \
+ "mov r0,#0;" \
+ "mcr p15,0,r0,c7,c6,0;" /* flush DCache */ \
+ "mcr p15,0,r0,c7,c10,4;" /* and drain the write buffer */ \
+ : \
+ : \
+ : "r0" /* Clobber list */ \
+ ); \
+CYG_MACRO_END
+#elif defined(CYGHWR_HAL_ARM_ARM9_CLEAN_DCACHE_INDEX)
+#define HAL_DCACHE_SYNC() \
+CYG_MACRO_START \
+ cyg_uint32 _tmp1, _tmp2; \
+ asm volatile ( \
+ "mov %0, #0;" \
+ "1: " \
+ "mov %1, #0;" \
+ "2: " \
+ "orr r0,%0,%1;" \
+ "mcr p15,0,r0,c7,c14,2;" /* clean index in DCache */ \
+ "add %1,%1,%2;" \
+ "cmp %1,%3;" \
+ "bne 2b;" \
+ "add %0,%0,#0x04000000;" /* get to next index */ \
+ "cmp %0,#0;" \
+ "bne 1b;" \
+ "mcr p15,0,r0,c7,c10,4;" /* drain the write buffer */ \
+ : "=r" (_tmp1), "=r" (_tmp2) \
+ : "I" (CYGHWR_HAL_ARM_ARM9_CLEAN_DCACHE_INDEX_STEP), \
+ "I" (CYGHWR_HAL_ARM_ARM9_CLEAN_DCACHE_INDEX_LIMIT) \
+ : "r0" /* Clobber list */ \
+ ); \
+CYG_MACRO_END
+#elif defined(CYGHWR_HAL_ARM_ARM9_ALT_CLEAN_DCACHE)
+/*
+ * 'Clean & Invalidate whole DCache'
+ */
+#define HAL_DCACHE_SYNC() \
+CYG_MACRO_START \
+ asm volatile ( \
+ "mov r0, #255 << 4;" /* 256 entries/set */ \
+ "2: " \
+ "mcr p15, 0, r0, c7, c14, 2;" \
+ "subs r0, r0, #1 << 4;" \
+ "bcs 2b;" /* entries 255 to 0 */ \
+ "mcr p15,0,r0,c7,c10,4;" /* drain the write buffer */ \
+ : \
+ : \
+ : "r0" /* Clobber list */ \
+ ); \
+CYG_MACRO_END
+#elif defined(CYGHWR_HAL_ARM_ARM926EJ_CLEAN_DCACHE)
+/*
+ * 'Clean & Invalidate whole DCache'
+ */
+#define HAL_DCACHE_SYNC() \
+CYG_MACRO_START \
+ asm volatile ( \
+ "1: " /* clean & invalidate D index */ \
+ "mrc p15, 0, r15, c7, c14, 3;" \
+ "bne 1b;" \
+ "mcr p15,0,r0,c7,c10,4;" /* drain the write buffer */ \
+ : \
+ : \
+ : "r0" /* Clobber list */ \
+ ); \
+CYG_MACRO_END
+#else
+# error "Don't know how to sync Dcache"
+#endif
+
+#else
+
+#define HAL_DCACHE_ENABLE()
+#define HAL_DCACHE_DISABLE()
+#define HAL_DCACHE_IS_ENABLED(_state_) ((_state_) = 0)
+#define HAL_DCACHE_INVALIDATE_ALL()
+#define HAL_DCACHE_SYNC()
+
+#endif
+
+
+// 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
+
+// Get the current writeback mode - or only writeback mode if fixed
+#define HAL_DCACHE_QUERY_WRITE_MODE( _mode_ ) CYG_MACRO_START \
+ _mode_ = HAL_DCACHE_WRITEBACK_MODE; \
+CYG_MACRO_END
+
+// 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.
+// ---- this seems not to work despite the documentation ---
+//#define HAL_DCACHE_FLUSH( _base_ , _size_ )
+//CYG_MACRO_START
+// HAL_DCACHE_STORE( _base_ , _size_ );
+// HAL_DCACHE_INVALIDATE( _base_ , _size_ );
+//CYG_MACRO_END
+
+// Invalidate cache lines in the given range without writing to memory.
+// ---- this seems not to work despite the documentation ---
+//#define HAL_DCACHE_INVALIDATE( _base_ , _size_ )
+//CYG_MACRO_START
+// register int addr, enda;
+// for ( addr = (~(HAL_DCACHE_LINE_SIZE - 1)) & (int)(_base_),
+// enda = (int)(_base_) + (_size_);
+// addr < enda ;
+// addr += HAL_DCACHE_LINE_SIZE )
+// {
+// asm volatile (
+// "mcr p15,0,%0,c7,c6,1;" /* flush entry away */
+// :
+// : "r"(addr)
+// : "memory"
+// );
+// }
+//CYG_MACRO_END
+
+// Write dirty cache lines to memory for the given address range.
+// ---- this seems not to work despite the documentation ---
+//#define HAL_DCACHE_STORE( _base_ , _size_ )
+//CYG_MACRO_START
+// register int addr, enda;
+// for ( addr = (~(HAL_DCACHE_LINE_SIZE - 1)) & (int)(_base_),
+// enda = (int)(_base_) + (_size_);
+// addr < enda ;
+// addr += HAL_DCACHE_LINE_SIZE )
+// {
+// asm volatile ("mcr p15,0,%0,c7,c10,1;" /* push entry to RAM */
+// :
+// : "r"(addr)
+// : "memory"
+// );
+// }
+//CYG_MACRO_END
+
+// 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_ )
+
+//-----------------------------------------------------------------------------
+// Cache controls for safely disabling/reenabling caches around execution
+// of relocated code.
+
+#define HAL_FLASH_CACHES_OFF(_d_, _i_) \
+ CYG_MACRO_START \
+ HAL_ICACHE_IS_ENABLED(_i_); \
+ HAL_DCACHE_IS_ENABLED(_d_); \
+ HAL_ICACHE_INVALIDATE_ALL(); \
+ HAL_ICACHE_DISABLE(); \
+ HAL_DCACHE_SYNC(); \
+ HAL_DCACHE_INVALIDATE_ALL(); \
+ HAL_DCACHE_DISABLE(); \
+ CYG_MACRO_END
+
+#define HAL_FLASH_CACHES_ON(_d_, _i_) \
+ CYG_MACRO_START \
+ if (_d_) HAL_DCACHE_ENABLE(); \
+ if (_i_) HAL_ICACHE_ENABLE(); \
+ CYG_MACRO_END
+
+//-----------------------------------------------------------------------------
+// Virtual<->Physical translations
+#ifndef HAL_VIRT_TO_PHYS_ADDRESS
+extern cyg_uint32 hal_virt_to_phys_address(cyg_uint32 phys);
+#define HAL_VIRT_TO_PHYS_ADDRESS(_va, _pa) \
+ _pa = hal_virt_to_phys_address(_va)
+#endif
+//-----------------------------------------------------------------------------
+#endif // ifndef CYGONCE_HAL_CACHE_H
+// End of hal_cache.h
diff --git a/ecos/packages/hal/arm/arm9/var/current/include/var_io.h b/ecos/packages/hal/arm/arm9/var/current/include/var_io.h
new file mode 100644
index 0000000..f28e7b5
--- /dev/null
+++ b/ecos/packages/hal/arm/arm9/var/current/include/var_io.h
@@ -0,0 +1,60 @@
+#ifndef CYGONCE_VAR_IO_H
+#define CYGONCE_VAR_IO_H
+
+//=============================================================================
+//
+// var_io.h
+//
+// Variant specific IO support
+//
+//=============================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jskov
+// Contributors: jskov
+// Date: 2002-01-28
+// Purpose: Variant io definitions
+// Description:
+// Usage: #include <cyg/hal/var_io.h>
+//
+//####DESCRIPTIONEND####
+//
+//=============================================================================
+
+#include <cyg/hal/plf_io.h> // Platform specifics
+
+//-----------------------------------------------------------------------------
+// end of var_io.h
+#endif // CYGONCE_VAR_IO_H
diff --git a/ecos/packages/hal/arm/arm9/var/current/src/arm9_misc.c b/ecos/packages/hal/arm/arm9/var/current/src/arm9_misc.c
new file mode 100644
index 0000000..38c511d
--- /dev/null
+++ b/ecos/packages/hal/arm/arm9/var/current/src/arm9_misc.c
@@ -0,0 +1,116 @@
+//==========================================================================
+//
+// arm9_misc.c
+//
+// HAL misc board support code for ARM9
+//
+//==========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//==========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): gthomas
+// Contributors: jskov
+// Date: 2000-05-08
+// 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/hal/hal_if.h> // HAL ROM/if
+#include <cyg/hal/hal_io.h> // IO macros
+#include <cyg/hal/hal_cache.h>
+
+// Most initialization has already been done before we get here.
+// All we do here is enable the caches.
+
+externC void plf_hardware_init(void);
+
+void hal_hardware_init(void)
+{
+ // Perform any platform specific initializations
+ plf_hardware_init();
+
+ // Set up eCos/ROM interfaces
+ hal_if_init();
+
+#ifndef CYG_HAL_STARTUP_RAM
+ // Invalidate caches
+ HAL_DCACHE_INVALIDATE_ALL();
+ HAL_ICACHE_INVALIDATE_ALL();
+#endif
+ // Enable caches
+#ifdef CYGSEM_HAL_ENABLE_DCACHE_ON_STARTUP
+ HAL_DCACHE_ENABLE();
+#endif
+#ifdef CYGSEM_HAL_ENABLE_ICACHE_ON_STARTUP
+ HAL_ICACHE_ENABLE();
+#endif
+}
+
+void
+cyg_hal_arm9_soft_reset(CYG_ADDRESS entry)
+{
+
+ /* It would probably make more sense to have the
+ clear/drain/invalidate after disabling the cache and MMU, but
+ then we'd have to know the (unmapped) address of this code. */
+ asm volatile ("mrs r1,cpsr;"
+ "bic r1,r1,#0x1F;" /* Put processor in SVC mode */
+ "orr r1,r1,#0x13;"
+ "msr cpsr,r1;"
+
+ "mov r1, #0;"
+ "mcr p15,0,r1,c7,c7,0;" /* clear I+DCache */
+ "mcr p15,0,r1,c7,c10,4;" /* Drain Write Buffer */
+ "mcr p15,0,r1,c8,c7,0;" /* Invalidate TLBs */
+ "mrc p15,0,r1,c1,c0,0;"
+ "bic r1,r1,#0x1000;" /* disable ICache */
+ "bic r1,r1,#0x0007;" /* disable DCache, MMU and alignment faults */
+ "mcr p15,0,r1,c1,c0,0;"
+ "nop;" /* delay 1 */
+ "mov pc, %0;" /* delay 2 - next instruction should be fetched flat */
+ : : "r" (entry) : "r1");
+ for(;;);
+}
+
+/*------------------------------------------------------------------------*/
+// EOF arm9_misc.c
diff --git a/ecos/packages/hal/arm/at91/at91sam7s/current/ChangeLog b/ecos/packages/hal/arm/at91/at91sam7s/current/ChangeLog
new file mode 100644
index 0000000..dbea37d
--- /dev/null
+++ b/ecos/packages/hal/arm/at91/at91sam7s/current/ChangeLog
@@ -0,0 +1,211 @@
+2009-06-03 Oliver Munz <oli@snr.ch>
+
+ * Fix the the problem of switching the PCM-settings if
+ the PCM is already up. And improve the flash-controller
+ programming.
+
+2009-01-31 Bart Veer <bartv@ecoscentric.com>
+
+ * cdl/hal_arm_at91sam7s.cdl: update compiler flags for gcc 4.x
+
+2009-01-24 Bart Veer <bartv@ecoscentric.com>
+
+ * cdl/hal_arm_at91sam7s.cdl: switch from arm-elf-gcc to
+ arm-eabi-gcc.
+
+2009-11-03 Gabor Toeroek <tgabor84@gmail.com>
+
+ * cdl/hal_arm_at91sam7s.cdl
+ * include/hal_platform_ints.h
+ * include/plf_io.h
+ * include/var_io.h: Add support for AT91SAM7SE
+
+2009-10-31 Oliver Munz" <munz@speag.ch>
+
+ * cdl/hal_arm_at91sam7s.cdl: Allow external clock input to be up
+ to 50Mhz, but the crystal is limited to 30MHz.
+
+2008-10-19 Igor B. Poretsky <poretsky@mlbox.ru>
+ Andrew Lunn <andrew.lunn@ascom.ch>
+
+ * cdl/hal_arm_at91sam7s.cdl: Fix calculation of RTC period. The TC
+ uses a different divider as the PIT.
+
+2008-09-04 John Eigelaar <jeigelaar@mweb.co.za>
+
+ * cdl/hal_arm_at91sam7s.cdl: Set MOR OSCCOUNT and PLL Count to
+ values suggests by Atmel. This should make the startup stable for
+ all devices.
+
+2008-09-02 John Eigelaar <jeigelaar@mweb.co.za>
+
+ * include/plf_io.h: Added definitions for devices
+ that has a second flash controller. Thus far only the
+ at91sam7x512 is supported.
+
+2008-09-01 John Eigelaar <jeigelaar@mweb.co.za>
+
+ * cdl/hal_arm_at91sam7s.cdl: CDL for the MOR OSCCOUNT and
+ PLLR PLLCOUNT.
+ * include/hal_platform_setup.h: Turned the MOR OSCCOUNT
+ and the PLLR PLLCOUNT setup into CLD configurable
+ variables to allow a more flexible clock setup.
+ * include/hal_platform_setup.h: Added setup code for devices
+ that has a second flash controller i.e. the 512 devices.
+
+2008-08-14 Jürgen Lambrecht <J.Lambrecht@televic.com>
+
+ * include/plf_io.h: removed AT91_SPI_MR_MODFDIS, AT91_WSTC
+ (AT91_WDTC), AT91_AIC because already in var_io.h. Fixed typo.
+
+2008-05-11 James G. Smith <jsmith@rallysmith.co.uk
+ Andrew Lunn <andrew@lunn.ch>
+
+ * cdl/hal_arm_at91sam7s.cdl: CDL for crystal vs clock signal.
+ * include/hal_platform_setup.h: Rework flash wait states to remove
+ redundant code when running at > 60MHz. Support clock signal input
+ when starting the main clock.
+
+2008-04-30 John Eigelaar <jeigelaar@mweb.co.za>
+
+ * include/pkgconf/mlt_arm_at91sam7x512_rom.{h|ldi}: Added the
+ memory layout files to support the at91sam7x512
+ * cdl/hal_arm_at91s.cdl: Added the configuration options to
+ support the at91sam7x512
+
+2008-04-23 Andrew Lunn <andrew.lunn@ascom.ch>
+
+ * include/hal_platform_setup.h: Fix setting the flash wait states
+ when the clock is running faster than 60MHz. r0 was undefined
+ causing a data abort.
+
+2007-03-26 Andrew Lunn <andrew.lunn@ascom.ch>
+
+ * cdl/hal_arm_at91sam7s.cdl: SAM7X and SAM7XC have a CAN bus
+ controller.
+
+2007-01-17 John Eigelaar <jeigelaar@mweb.co.za>
+
+ * include/plf_io.h
+ * src/at91sam7s_misc.c
+ Added code to initialise the platform ethernet hardware if need be
+
+2007-01-02 Uwe Kindler <uwe_kindler@web.de>
+
+ * cdl/hal_arm_at91sam7s.cdl Moved HAL_PLATFORM_XXX defines and
+ definition of platform header file (CYGBLD_HAL_PLATFORM_H) from
+ package CYGPKG_HAL_ARM_AT91SAM7 into board specific packages.
+
+2006-06-01 Andrew Lunn <andrew.lunn@ascom.ch>
+
+ * cdl/hal_arm_at91sam7s.cdl: Implement the SPI bus 1 interface for
+ the SAM7X and SAM7XC.
+
+2006-06-01 John Eigelaar <jeigelaar@mweb.co.za>
+
+ * include/plf_io.h: Add SPI DMA registers.
+
+2006-05-20 John Eigelaar <jeigelaar@mweb.co.za>
+
+ include/pkgconf/mlt_arm_at91sam7x128_rom.{h|ldi}
+ include/pkgconf/mlt_arm_at91sam7x256_rom.{h|ldi}: Linker files
+ for AT91SAM7X processor.
+
+2006-05-17 Andrew Lunn <andrew.lunn@ascom.ch>
+
+ * src/at91sam7s_misc.c: Use the AT91 generic PIO manipulation
+ macros. Move the LED function out into the board specific HAL
+ package.
+
+2006-04-07 Andrew Lunn <andrew.lunn@ascom.ch>
+
+ * cdl/hal_arm_at91sam7s.cdl:
+ * include/pkgconf/mlt_arm_at91sam7s32_rom.ldi:
+ * include/pkgconf/mlt_arm_at91sam7s64_rom.ldi:
+ * include/pkgconf/mlt_arm_at91sam7s128_rom.ldi:
+ * include/pkgconf/mlt_arm_at91sam7s267_rom.ldi:
+ Allow CDL to control where in flash the image is placed.
+
+2006-03-23 Andrew Lunn <andrew.lunn@ascom.ch>
+
+ * cdl/hal_arm_at91sam7s.cdl: Implement the USB interface when chip
+ has the device.
+
+2006-03-10 Oliver Munz <oli@snr.ch>
+
+ * hal_arm_at91sam7s.cdl: Change the PLL-defaults so that 96MHz is
+ generated so that the USB does work.
+
+2006-03-10 Andrew Lunn <andrew.lunn@ascom.ch>
+ Oliver Munz <munz@speag.ch>
+
+ * cdl/hal_arm_at91sam7s.cdl: Set the debug UART as the default
+ channel and fix some dodge spelling.
+ * src/at91sam7s_misc.c (hal_plf_hardware_init): Enable the Debug UART
+ pins for output and control by the device.
+ * include/plf_io.h: Define USART2 to be the debug UART.
+
+2006-03-01 Andrew Lunn <andrew.lunn@ascom.ch>
+
+ * cdl/hal_arm_at91sam7s.cdl: Change the crystal frequency. The
+ numbers printed on top of the crystal are misleading. It has a
+ 18.432MHz crystal, not 20MHz. This error when combined with the
+ previous fix to the PLL made the serial baud rate wrong. Change
+ the multiplier and divisor to achieve about the same CPU clock,
+ which should be USB compatible.
+ * src/at91sam7s_misc.c (hal_at91_us_baud): Need the same PLL fix
+ when calculating the baud rate dynamically.
+ * include/plf_io.h: Add the Programmable Clock Output registers.
+
+2006-02-28 Oliver Munz <munz@speag.ch>
+
+ * include/hal_platform_setup.h: Fix the PLL multiplier settings
+
+2006-02-25 Andrew Lunn <andrew.lunn@ascom.ch>
+
+ * misc/redboot_R[AO]M.ecm: Disable FIS and fconfig, enable
+ loading directly into flash with the load command.
+
+2006-01-01 Oliver Munz <munz@speag.ch>
+ Andrew Lunn <andrew.lunn@ascom.ch>
+
+ * cdl/hal_arm_at91sam7s.cdl:
+ * include/hal_platform_ints.h:
+ * include/hal_platform_setup.h:
+ * include/plf_io.h:
+ * include/pkgconf/mlt_arm_at91sam7s256_rom.h:
+ * include/pkgconf/mlt_arm_at91sam7s256_rom.ldi:
+ * include/pkgconf/mlt_arm_at91sam7s128_rom.h:
+ * include/pkgconf/mlt_arm_at91sam7s128_rom.ldi:
+ * include/pkgconf/mlt_arm_at91sam7s64_rom.h:
+ * include/pkgconf/mlt_arm_at91sam7s64_rom.ldi:
+ * include/pkgconf/mlt_arm_at91sam7s32_rom.h:
+ * include/pkgconf/mlt_arm_at91sam7s32_rom.ldi:
+ * src/at91sam7s_misc.c:
+ * misc/redboot_ROM.ecm:
+ * misc/redboot_RAM.ecm:
+ * ChangeLog: First import of a hal for the AT91SAM7S family.
+
+//===========================================================================
+// ####GPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 2006 Free Software Foundation, Inc.
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 2 or (at your option) any
+// later version.
+//
+// This program is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the
+// Free Software Foundation, Inc., 51 Franklin Street,
+// Fifth Floor, Boston, MA 02110-1301, USA.
+// -------------------------------------------
+// ####GPLCOPYRIGHTEND####
+//===========================================================================
diff --git a/ecos/packages/hal/arm/at91/at91sam7s/current/cdl/hal_arm_at91sam7s.cdl b/ecos/packages/hal/arm/at91/at91sam7s/current/cdl/hal_arm_at91sam7s.cdl
new file mode 100644
index 0000000..fd1dc7a
--- /dev/null
+++ b/ecos/packages/hal/arm/at91/at91sam7s/current/cdl/hal_arm_at91sam7s.cdl
@@ -0,0 +1,518 @@
+# ====================================================================
+#
+# hal_arm_at91_sam7s.cdl
+#
+# ARM AT91 SAM7 HAL package configuration data
+#
+# ====================================================================
+## ####ECOSGPLCOPYRIGHTBEGIN####
+## -------------------------------------------
+## This file is part of eCos, the Embedded Configurable Operating System.
+## Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2005 Free Software Foundation, Inc.
+##
+## eCos is free software; you can redistribute it and/or modify it under
+## the terms of the GNU General Public License as published by the Free
+## Software Foundation; either version 2 or (at your option) any later
+## version.
+##
+## eCos is distributed in the hope that it will be useful, but WITHOUT
+## ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+## FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+## for more details.
+##
+## You should have received a copy of the GNU General Public License
+## along with eCos; if not, write to the Free Software Foundation, Inc.,
+## 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+##
+## As a special exception, if other files instantiate templates or use
+## macros or inline functions from this file, or you compile this file
+## and link it with other works to produce a work based on this file,
+## this file does not by itself cause the resulting work to be covered by
+## the GNU General Public License. However the source code for this file
+## must still be made available in accordance with section (3) of the GNU
+## General Public License v2.
+##
+## This exception does not invalidate any other reasons why a work based
+## on this file might be covered by the GNU General Public License.
+## -------------------------------------------
+## ####ECOSGPLCOPYRIGHTEND####
+# ====================================================================
+######DESCRIPTIONBEGIN####
+#
+# Author(s): gthomas
+# Contributors: gthomas, tkoeller, nickg, Oliver Munz, asl
+# Date: 2005-06-20
+#
+#####DESCRIPTIONEND####
+#
+# ====================================================================
+
+cdl_package CYGPKG_HAL_ARM_AT91SAM7 {
+ display "Atmel AT91SAM7 HAL"
+ parent CYGPKG_HAL_ARM
+ define_header hal_arm_at91sam7.h
+ include_dir cyg/hal
+ hardware
+ description "
+ The AT91SAM7 HAL package provides the support needed to run
+ eCos on an Atmel AT91SAM7 based board."
+
+ compile at91sam7s_misc.c
+
+ requires { CYGHWR_HAL_ARM_AT91_FIQ }
+ requires { CYGHWR_HAL_ARM_AT91SAM7 == "at91sam7s32" implies
+ CYGPKG_IO_SERIAL_ARM_AT91_SERIAL0 == 0 }
+
+ implements CYGINT_HAL_ARM_AT91_SERIAL_DBG_HW
+ implements CYGINT_HAL_ARM_AT91_PIT_HW
+ implements CYGINT_HAL_ARM_AT91_SYS_INTERRUPT
+
+ 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_at91.h>"
+ puts $::cdl_system_header "#define CYGBLD_HAL_ARM_VAR_IO_H"
+ }
+
+ cdl_option CYGHWR_HAL_ARM_AT91SAM7 {
+ display "AT91SAM7 variant used"
+ flavor data
+ default_value {"at91sam7s256"}
+ legal_values {"at91sam7s32" "at91sam7s321" "at91sam7s64"
+ "at91sam7s128" "at91sam7s256" "at91sam7s512"
+ "at91sam7se32" "at91sam7se256" "at91sam7se512"
+ "at91sam7x128" "at91sam7x256" "at91sam7x512"
+ "at91sam7xc128" "at91sam7xc256" }
+ description "
+ The AT91SAM7 microcontroller family has several variants,
+ the main differences being the amount of on-chip SRAM,
+ FLASH, peripherals and their layout. This option allows the
+ platform HALs to select the specific microcontroller
+ being used."
+ }
+
+ cdl_option CYGHWR_HAL_ARM_AT91SAM7S {
+ display "SAM7S device"
+ calculated { CYGHWR_HAL_ARM_AT91SAM7 == "at91sam7s512" ||
+ CYGHWR_HAL_ARM_AT91SAM7 == "at91sam7s256" ||
+ CYGHWR_HAL_ARM_AT91SAM7 == "at91sam7s128" ||
+ CYGHWR_HAL_ARM_AT91SAM7 == "at91sam7s64" ||
+ CYGHWR_HAL_ARM_AT91SAM7 == "at91sam7s32" ||
+ CYGHWR_HAL_ARM_AT91SAM7 == "at91sam7s321" }
+ description "
+ Is the AT91SAM7 device a member of the AT91SAM7S family?"
+ }
+
+ cdl_option CYGHWR_HAL_ARM_AT91SAM7SE {
+ display "SAM7SE device"
+ calculated { CYGHWR_HAL_ARM_AT91SAM7 == "at91sam7se512" ||
+ CYGHWR_HAL_ARM_AT91SAM7 == "at91sam7se256" ||
+ CYGHWR_HAL_ARM_AT91SAM7 == "at91sam7se32" }
+ description "
+ Is the AT91SAM7 device a member of the AT91SAM7SE family?"
+ }
+
+ cdl_option CYGHWR_HAL_ARM_AT91SAM7X {
+ display "SAM7X device"
+ calculated { CYGHWR_HAL_ARM_AT91SAM7 == "at91sam7x512" ||
+ CYGHWR_HAL_ARM_AT91SAM7 == "at91sam7x256" ||
+ CYGHWR_HAL_ARM_AT91SAM7 == "at91sam7x128" }
+ description "
+ Is the AT91SAM7 device a member of the AT91SAM7X family?"
+ }
+
+ cdl_option CYGHWR_HAL_ARM_AT91SAM7XC {
+ display "SAM7XC device"
+ calculated { CYGHWR_HAL_ARM_AT91SAM7 == "at91sam7xc256" ||
+ CYGHWR_HAL_ARM_AT91SAM7 == "at91sam7xc128" }
+ description "
+ Is the AT91SAM7 device a member of the AT91SAM7XC family?"
+ }
+
+ cdl_option CYGBLD_HAL_ARM_AT91SAM7_USB {
+ display "USB device"
+ active_if {!( "at91sam7s32" == CYGHWR_HAL_ARM_AT91SAM7S) ||
+ CYGHWR_HAL_ARM_AT91SAM7SE ||
+ CYGHWR_HAL_ARM_AT91SAM7X ||
+ CYGHWR_HAL_ARM_AT91SAM7XC }
+ implements CYGINT_DEVS_USB_AT91_HAS_USB
+ default_value 1
+ no_define
+ description "
+ All but the AT91SAM7S32 has the USB device"
+ }
+
+ cdl_option CYGBLD_HAL_ARM_AT91SAM7_SPI1 {
+ display "Second SPI bus controller"
+ active_if { CYGHWR_HAL_ARM_AT91SAM7X ||
+ CYGHWR_HAL_ARM_AT91SAM7XC }
+ implements CYGINT_DEVS_SPI_ARM_AT91_HAS_BUS1
+ default_value 1
+ no_define
+ description "
+ The SAM7X and SAM7XC have the second SPI bus controller"
+ }
+
+ cdl_option CYGBLD_HAL_ARM_AT91SAM7_CAN0 {
+ display "CAN bus controller"
+ active_if { CYGHWR_HAL_ARM_AT91SAM7X ||
+ CYGHWR_HAL_ARM_AT91SAM7XC }
+ implements CYGINT_DEVS_CAN_AT91SAM7_CAN0
+ default_value 1
+ no_define
+ description "
+ The SAM7X and SAM7XC have the CAN controller"
+ }
+
+ 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
+ default_value 1000000000
+ }
+ cdl_option CYGNUM_HAL_RTC_DENOMINATOR {
+ display "Real-time clock denominator"
+ flavor data
+ default_value 100
+ }
+ cdl_option CYGNUM_HAL_RTC_PERIOD {
+ display "Real-time clock period"
+ flavor data
+ legal_values 1 to 0xffff
+ calculated { (CYGNUM_HAL_RTC_NUMERATOR *
+ CYGNUM_HAL_ARM_AT91_CLOCK_SPEED /
+ (CYGBLD_HAL_ARM_AT91_TIMER_TC ? 32 : 16) /
+ CYGNUM_HAL_RTC_DENOMINATOR /
+ 1000000000
+ )
+ }
+ description "Value to program into the RTC clock generator."
+ }
+ }
+
+ cdl_component CYG_HAL_STARTUP {
+ display "Startup type"
+ flavor data
+ default_value {"ROM"}
+ legal_values {"RAM" "ROM"}
+ no_define
+ define -file system.h CYG_HAL_STARTUP
+ description "
+ When targeting the AT91SAM7 eval boards 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 on board
+ debug software such as Angel or eCos GDB stubs. Select 'rom'
+ when building a stand-alone application which will be put
+ into ROM"
+ }
+
+ cdl_option CYGNUM_HAL_ARM_AT91_IMAGE_ADDRESS {
+ display "Address in flash the image should live"
+ active_if { CYG_HAL_STARTUP == "ROM" }
+ flavor data
+ default_value 0x00100000
+ description "
+ This optionspecifies where in flash the image
+ lives. By default it is at the bottom of the flash,
+ but for example redboot may be at the bottom and an
+ application lives higher up, which is acheived by
+ setting the address here."
+ }
+
+ # Real-time clock/counter specifics
+ cdl_option CYGNUM_HAL_ARM_AT91_CLOCK_SPEED {
+ display "CPU clock speed"
+ flavor data
+ calculated { CYGNUM_HAL_ARM_AT91_CLOCK_OSC_MAIN *
+ CYGNUM_HAL_ARM_AT91_PLL_MULTIPLIER /
+ CYGNUM_HAL_ARM_AT91_PLL_DIVIDER / 2}
+ legal_values { 0 to 220000000 }
+ description "
+ The master clock-frequency has to be 48MHz, 96MHz or
+ 192MHz for the USB to work correctly. The clock setup uses
+ PLL clock divided by two"
+ }
+
+ cdl_option CYGNUM_HAL_ARM_AT91_CLOCK_XIN_FREQ_MAX {
+ display "Input clock frequency maximum"
+ flavor data
+ calculated { CYGNUM_HAL_ARM_AT91_CLOCK_TYPE == "CRYSTAL" ?
+ 20000000 : 50000000 }
+ description "
+
+ The oscilator in the AT91SAM allows a crystal of up to
+ 20MHz. However by feeding in directly a clock signal, it
+ is possible to use upto 50MHz in XIN."
+ }
+
+ cdl_option CYGNUM_HAL_ARM_AT91_CLOCK_OSC_MAIN {
+ display "Main oscillator frequency"
+ flavor data
+ legal_values { 3000000 to CYGNUM_HAL_ARM_AT91_CLOCK_XIN_FREQ_MAX }
+ default_value { 18432000 }
+ description "
+ The frequency of the clock input, be it a crystal or a clock
+ signal"
+ }
+
+ cdl_option CYGNUM_HAL_ARM_AT91_CLOCK_TYPE {
+ display "Type of main frequency input"
+ flavor data
+ default_value { "CRYSTAL" }
+ legal_values { "CRYSTAL" "EXTCLOCK" }
+ description "
+ Whether a crystal or a XIN input clock is clocking the device."
+ }
+
+ cdl_option CYGNUM_HAL_ARM_AT91_PMC_MOR_OSCCOUNT {
+ display "Startup time for the main oscillator"
+ flavor data
+ legal_values { 0 to 255 }
+ default_value 64
+ description "
+ Specifies the number of Slow Clock cycles multiplied by 8
+ for the Main Oscillator start-up time. 64 is the number suggested
+ by the kind folk at Atmel"
+ }
+
+ cdl_option CYGNUM_HAL_ARM_AT91_PLL_DIVIDER {
+ display "Divider for PLL clock"
+ flavor data
+ legal_values { 0 to 255 }
+ default_value 24
+ description "
+ The X-tal clock is divided by this value when generating the
+ PLL clock"
+ }
+
+ cdl_option CYGNUM_HAL_ARM_AT91_PLL_MULTIPLIER {
+ display "Multiplier for PLL clock"
+ flavor data
+ legal_values { 0 to 2047 }
+ default_value 125
+ description "
+ The X-tal clock is multiplied by this value when generating
+ the PLL clock."
+ }
+
+ cdl_option CYGNUM_HAL_ARM_AT91_PLL_COUNT {
+ display "Startup Counter for PLL clock"
+ flavor data
+ legal_values { 0 to 64 }
+ default_value 16
+ description "
+ Specifies the number of slow clock cycles before the LOCK bit
+ is set in PMC_SR after PLL Register is written. The Atmel people
+ suggest that 16 should be fine"
+ }
+
+ cdl_option CYGNUM_HAL_ARM_AT91_SLOW_CLOCK {
+ display "Slow clock frequency"
+ flavor data
+ default_value { 32768 }
+ description "
+ The slow clock is an LC oscillator which runs all the
+ time. The accuracy of this clock is not very high and
+ is temperature dependent."
+ }
+
+ cdl_option CYGNUM_HAL_VIRTUAL_VECTOR_COMM_CHANNELS {
+ display "Number of communication channels on the board"
+ flavor data
+ default_value 3
+ description "
+ The AT91SAM7S development boards has two Serial port connectors.
+ these correspond to USART0 and the Debug Serial port. The chip
+ has a third serial port which does not have a 9pin D
+ connector, but is accessible via the patch panel pins."
+ }
+
+ cdl_option CYGNUM_HAL_VIRTUAL_VECTOR_DEBUG_CHANNEL {
+ display "Debug serial port"
+ active_if CYGPRI_HAL_VIRTUAL_VECTOR_DEBUG_CHANNEL_CONFIGURABLE
+ flavor data
+ legal_values 0 to CYGNUM_HAL_VIRTUAL_VECTOR_COMM_CHANNELS-1
+ default_value 2
+ description "
+ The AT91SAM7S has three 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"
+ active_if CYGPRI_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_CONFIGURABLE
+ flavor data
+ legal_values 0 to CYGNUM_HAL_VIRTUAL_VECTOR_COMM_CHANNELS-1
+ default_value 2
+ description "
+ The AT91SAM7S board has three USART serial ports. This option
+ chooses which port will be used for diagnostic output."
+ }
+
+ cdl_option CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_BAUD {
+ display "Diagnostic serial port baud rate"
+ flavor data
+ legal_values 9600 19200 38400 57600 115200
+ default_value 38400
+ description "
+ This option selects the baud rate used for the diagnostic port."
+ }
+
+ cdl_option CYGNUM_HAL_VIRTUAL_VECTOR_DEBUG_CHANNEL_BAUD {
+ display "GDB serial port baud rate"
+ flavor data
+ legal_values 9600 19200 38400 57600 115200
+ default_value 38400
+ description "
+ This option controls the baud rate used for the GDB connection."
+ }
+
+ cdl_option CYGBLD_HAL_ARM_AT91_BAUD_DYNAMIC {
+ display "Dynamic calculation of baud rate"
+ default_value 0
+ description "
+ The AT91SAM7S has a flexible clock generation mechanism
+ where the main clock used to drive peripherals can be
+ changed during run time. Such changes affect the serial port
+ baud rate generators. Enabling this option includes code
+ which calculates the baud rate setting dynamically from the
+ current clock settings. Without this option a static
+ calculation is performed which assumes the clock frequency
+ has not been changed."
+ }
+
+ 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 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_REDBOOT_HAL_OPTIONS {
+ display "Redboot HAL options"
+ flavor none
+ no_define
+ parent CYGPKG_REDBOOT
+ active_if CYGPKG_REDBOOT
+ description "
+ This option lists the target's requirements for a valid Redboot
+ configuration."
+
+ 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 $< $@
+ }
+ }
+ }
+
+ 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 { "arm-eabi"}
+ 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 { CYGBLD_GLOBAL_WARNFLAGS . CYGBLD_ARCH_CFLAGS .
+ "-mcpu=arm7tdmi -g -O2 -ffunction-sections -fdata-sections -fno-rtti -fno-exceptions " }
+ 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 { CYGBLD_ARCH_LDFLAGS . "-mcpu=arm7tdmi -Wl,--gc-sections -Wl,-static -g -nostdlib" }
+ description "
+ This option controls the global linker flags. Individual
+ packages may define options which override these global flags."
+ }
+ }
+
+ cdl_component CYGHWR_MEMORY_LAYOUT {
+ display "Memory layout"
+ flavor data
+ no_define
+ calculated { (CYG_HAL_STARTUP == "RAM") ? \
+ "arm_" . CYGHWR_HAL_ARM_AT91SAM7 . "_ram" :
+ "arm_" . CYGHWR_HAL_ARM_AT91SAM7 . "_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_" . CYGHWR_HAL_ARM_AT91SAM7 . "_ram.ldi>" :
+ "<pkgconf/mlt_arm_" . CYGHWR_HAL_ARM_AT91SAM7 . "_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_" . CYGHWR_HAL_ARM_AT91SAM7 . "_ram.h>" :
+ "<pkgconf/mlt_arm_" . CYGHWR_HAL_ARM_AT91SAM7 . "_rom.h>" }
+ }
+ }
+}
diff --git a/ecos/packages/hal/arm/at91/at91sam7s/current/include/hal_platform_ints.h b/ecos/packages/hal/arm/at91/at91sam7s/current/include/hal_platform_ints.h
new file mode 100644
index 0000000..1a0a3ef
--- /dev/null
+++ b/ecos/packages/hal/arm/at91/at91sam7s/current/include/hal_platform_ints.h
@@ -0,0 +1,132 @@
+#ifndef CYGONCE_HAL_PLATFORM_INTS_H
+#define CYGONCE_HAL_PLATFORM_INTS_H
+//==========================================================================
+//
+// hal_platform_ints.h
+//
+// HAL Interrupt and clock assignments for AT91SAM7
+//
+//==========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002, 2006 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//==========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): gthomas
+// Contributors: gthomas, Oliver Munz, Andrew Lunn, John Eigelaar
+// Date: 2001-07-12
+// Purpose: Define Interrupt support
+// Description: The interrupt specifics for the AT91SAM7 platform are
+// defined here.
+//
+// Usage: #include <cyg/hal/hal_platform_ints.h>
+// ...
+//
+//
+//####DESCRIPTIONEND####
+//
+//==========================================================================
+
+#include <pkgconf/hal_arm_at91sam7.h>
+
+#define CYGNUM_HAL_INTERRUPT_FIQ 0
+
+#define CYGNUM_HAL_INTERRUPT_SYS 1
+#define CYGNUM_HAL_INTERRUPT_PIOA 2
+
+#ifdef CYGHWR_HAL_ARM_AT91SAM7X
+#define CYGNUM_HAL_INTERRUPT_PIOB 3
+#define CYGNUM_HAL_INTERRUPT_SPI 4
+#define CYGNUM_HAL_INTERRUPT_SPI1 5
+#endif
+#ifdef CYGHWR_HAL_ARM_AT91SAM7S
+#define CYGNUM_HAL_INTERRUPT_ADC 4
+#define CYGNUM_HAL_INTERRUPT_SPI 5
+#endif
+#ifdef CYGHWR_HAL_ARM_AT91SAM7SE
+#define CYGNUM_HAL_INTERRUPT_PIOB 3
+#define CYGNUM_HAL_INTERRUPT_PIOC 4
+#define CYGNUM_HAL_INTERRUPT_SPI 5
+#endif
+
+#define CYGNUM_HAL_INTERRUPT_USART0 6
+#define CYGNUM_HAL_INTERRUPT_USART1 7
+#define CYGNUM_HAL_INTERRUPT_SSC 8
+#define CYGNUM_HAL_INTERRUPT_TWI 9
+#define CYGNUM_HAL_INTERRUPT_PWMC 10
+#define CYGNUM_HAL_INTERRUPT_UDP 11
+#define CYGNUM_HAL_INTERRUPT_TC0 12
+#define CYGNUM_HAL_INTERRUPT_TC1 13
+#define CYGNUM_HAL_INTERRUPT_TC2 14
+
+#ifdef CYGHWR_HAL_ARM_AT91SAM7SE
+#define CYGNUM_HAL_INTERRUPT_ADC 15
+#endif
+#ifdef CYGHWR_HAL_ARM_AT91SAM7X
+#define CYGNUM_HAL_INTERRUPT_CAN 15
+#define CYGNUM_HAL_INTERRUPT_EMAC 16
+#define CYGNUM_HAL_INTERRUPT_ADC 17
+#endif
+
+#define CYGNUM_HAL_INTERRUPT_IRQ0 30
+#define CYGNUM_HAL_INTERRUPT_IRQ1 31
+
+// Interrupts which are multiplexed on to the System Interrupt
+#define CYGNUM_HAL_INTERRUPT_PITC 32
+#define CYGNUM_HAL_INTERRUPT_RTTC 33
+#define CYGNUM_HAL_INTERRUPT_PMC 34
+#define CYGNUM_HAL_INTERRUPT_MC 35
+#define CYGNUM_HAL_INTERRUPT_WDTC 36
+#define CYGNUM_HAL_INTERRUPT_RSTC 37
+#define CYGNUM_HAL_INTERRUPT_DBG 38
+
+#define CYGNUM_HAL_ISR_MIN 0
+#define CYGNUM_HAL_ISR_MAX 38
+
+#define CYGNUM_HAL_ISR_COUNT (CYGNUM_HAL_ISR_MAX + 1)
+
+// The vector used by the Real time clock
+#ifdef CYGBLD_HAL_ARM_AT91_TIMER_TC
+#define CYGNUM_HAL_INTERRUPT_RTC CYGNUM_HAL_INTERRUPT_TC0
+#endif
+#ifdef CYGBLD_HAL_ARM_AT91_TIMER_PIT
+#define CYGNUM_HAL_INTERRUPT_RTC CYGNUM_HAL_INTERRUPT_PITC
+#endif
+
+//----------------------------------------------------------------------------
+// Reset.
+__externC void hal_at91_reset_cpu(void);
+#define HAL_PLATFORM_RESET() hal_at91_reset_cpu()
+
+#define HAL_PLATFORM_RESET_ENTRY 0x0000000
+
+#endif // CYGONCE_HAL_PLATFORM_INTS_H
diff --git a/ecos/packages/hal/arm/at91/at91sam7s/current/include/hal_platform_setup.h b/ecos/packages/hal/arm/at91/at91sam7s/current/include/hal_platform_setup.h
new file mode 100644
index 0000000..71f55d5
--- /dev/null
+++ b/ecos/packages/hal/arm/at91/at91sam7s/current/include/hal_platform_setup.h
@@ -0,0 +1,208 @@
+#ifndef CYGONCE_HAL_PLATFORM_SETUP_H
+#define CYGONCE_HAL_PLATFORM_SETUP_H
+
+/*=============================================================================
+//
+// hal_platform_setup.h
+//
+// Platform specific support for HAL
+//
+//=============================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002, 2006 Free Software
+// Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): gthomas
+// Contributors:gthomas, asl, Oliver Munz
+// Date: 2009-06-03
+// Purpose: AT91SAM7S platform specific support routines
+// Description:
+// Usage: #include <cyg/hal/hal_platform_setup.h>
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================*/
+
+#include <cyg/hal/var_io.h>
+#include <cyg/hal/plf_io.h>
+
+#ifdef CYG_HAL_STARTUP_ROM
+
+
+#define AT91_FLASH_FMCN_VALUE \
+ (CYGNUM_HAL_ARM_AT91_CLOCK_SPEED * 15 / 10000000 + 1)
+#if defined(CYGNUM_HAL_ARM_AT91_CLOCK_TYPE_EXTCLOCK)
+#define AT91_PMC_MOR_VALUE (AT91_PMC_MOR_OSCBYPASS)
+#else
+#define AT91_PMC_MOR_VALUE \
+ (AT91_PMC_MOR_OSCCOUNT(CYGNUM_HAL_ARM_AT91_PMC_MOR_OSCCOUNT) | \
+ AT91_PMC_MOR_MOSCEN)
+#endif
+#define AT91_PMC_PLLR_VALUE \
+ (AT91_PMC_PLLR_DIV(CYGNUM_HAL_ARM_AT91_PLL_DIVIDER) | \
+ AT91_PMC_PLLR_PLLCOUNT(CYGNUM_HAL_ARM_AT91_PLL_COUNT) | \
+ AT91_PMC_PLLR_MUL(CYGNUM_HAL_ARM_AT91_PLL_MULTIPLIER-1) | \
+ AT91_PMC_PLLR_USBDIV_1)
+#define AT91_PMC_MCKR_VALUE \
+ (AT91_PMC_MCKR_PRES_CLK_2 | AT91_PMC_MCKR_PLL_CLK)
+
+#define AT91_PMC_FLASH_VALUE_SLOW \
+ (AT91_MC_FMR_2FWS | (AT91_FLASH_FMCN_VALUE << AT91_MC_FMR_FMCN_SHIFT))
+#if CYGNUM_HAL_ARM_AT91_CLOCK_SPEED > 60000000
+// When the clock is running faster than 60MHz we need two wait states
+#define AT91_PMC_FLASH_VALUE \
+ AT91_PMC_FLASH_VALUE_SLOW
+#else
+#if CYGNUM_HAL_ARM_AT91_CLOCK_SPEED > 30000000
+// When the clock is running faster than 30MHz we need a wait state
+#define AT91_PMC_FLASH_VALUE \
+ (AT91_MC_FMR_1FWS | (AT91_FLASH_FMCN_VALUE << AT91_MC_FMR_FMCN_SHIFT))
+#else
+// We have a slow clock, no extra wait states are needed
+#define AT91_PMC_FLASH_VALUE \
+ (AT91_MC_FMR_0FWS | (AT91_FLASH_FMCN_VALUE << AT91_MC_FMR_FMCN_SHIFT))
+#endif
+#endif
+
+// Macro with subroutines
+ .macro _subroutines
+ b subroutines_end
+
+
+set_flash_from_r1:
+ push {lr}
+ ldr r0,=AT91_MC
+ str r1,[r0,#AT91_MC_FMR]
+#if defined(AT91_MC_FMR1)
+ str r1,[r0,#AT91_MC_FMR1]
+#endif
+ pop {pc}
+
+
+wait_for_flag_pcm_r0r1:
+ push {r2, lr}
+wait_loop:
+ ldr r2,[r0,#AT91_PMC_SR]
+ ands r2,r1,r2
+ beq wait_loop
+ pop {r2, pc}
+
+
+subroutines_end:
+ .endm
+
+// Macro to start the main clock.
+ .macro _main_clock_init
+__main_clock_init__:
+ ldr r0,=AT91_PMC
+
+ ldr r2,=AT91_PMC_MOR_VALUE // Load our PMC settings in registers
+ ldr r3,=AT91_PMC_PLLR_VALUE
+ ldr r4,=AT91_PMC_MCKR_VALUE
+
+ ldr r5,[r0,#AT91_PMC_MOR] // Test if the PMC is allready up
+ cmp r2, r5
+ bne set_pcm_registers // Do the init
+ ldr r5,[r0,#AT91_PMC_PLLR]
+ cmp r3, r5
+ bne set_pcm_registers // Do the init
+ ldr r5,[r0,#AT91_PMC_MCKR]
+ cmp r4, r5
+ bne set_pcm_registers // Do the init
+ b pmc_done // All registers are where we want it...
+
+ // We have to set the PMC
+set_pcm_registers:
+ str r2,[r0,#AT91_PMC_MOR]
+ // Wait for oscilator start timeout
+ ldr r1, =AT91_PMC_SR_MOSCS
+ bl wait_for_flag_pcm_r0r1
+
+ // Set the PLL multiplier and divider. 16 slow clocks go by
+ // before the LOCK bit is set. */
+ str r3,[r0,#AT91_PMC_PLLR]
+ // Wait for PLL locked indication
+ ldr r1, =AT91_PMC_SR_LOCK
+ bl wait_for_flag_pcm_r0r1
+
+ // Enable the PLL clock and set the prescale to 2 */
+ str r4,[r0,#AT91_PMC_MCKR]
+ // Wait for the MCLK ready indication
+ ldr r1, =AT91_PMC_SR_MCKRDY
+ bl wait_for_flag_pcm_r0r1
+
+pmc_done:
+ .endm
+
+
+// Remap the flash from address 0x0 and place RAM there instead.
+ .macro _remap_flash
+__remap_flash:
+ ldr r0,=0x000004 // Use the underfined instruction exception
+ ldr r1,=0x200004
+ ldr r2,[r0] // Save away copies so we can restore them
+ ldr r3,[r1]
+ ldr r4,=0xffffff
+ eor r4,r3,r4 // XOR the contents of 0x20004
+ str r4,[r1] // and write it
+ ldr r5,[r0] // Read from low memory
+ cmp r5,r4
+ beq remap_done
+ ldr r0,=AT91_MC // Need to do a remap
+ ldr r5,=1
+ str r5,[r0,#AT91_MC_RCR]
+remap_done:
+ str r3,[r1] // restore the value we changed
+ .endm
+
+
+ .macro _setup //The "main" of the macros...
+ _subroutines
+ ldr sp,.__startup_stack
+ ldr r1,=AT91_PMC_FLASH_VALUE_SLOW // May be we run >60Mhz at the moment
+ bl set_flash_from_r1
+ _main_clock_init
+ ldr r1,=AT91_PMC_FLASH_VALUE
+ bl set_flash_from_r1
+ _remap_flash
+ .endm
+
+#define PLATFORM_SETUP1 _setup
+#else
+#define PLATFORM_SETUP1
+#endif
+
+//-----------------------------------------------------------------------------
+// end of hal_platform_setup.h
+#endif // CYGONCE_HAL_PLATFORM_SETUP_H
diff --git a/ecos/packages/hal/arm/at91/at91sam7s/current/include/pkgconf/mlt_arm_at91sam7s128_rom.h b/ecos/packages/hal/arm/at91/at91sam7s/current/include/pkgconf/mlt_arm_at91sam7s128_rom.h
new file mode 100644
index 0000000..54893cd
--- /dev/null
+++ b/ecos/packages/hal/arm/at91/at91sam7s/current/include/pkgconf/mlt_arm_at91sam7s128_rom.h
@@ -0,0 +1,25 @@
+// eCos memory layout - Wed Apr 11 13:49:55 2001
+
+// This is a generated file - do not edit
+
+#ifndef __ASSEMBLER__
+#include <cyg/infra/cyg_type.h>
+#include <stddef.h>
+
+#endif
+#define CYGMEM_REGION_ram (0x00200000)
+#define CYGMEM_REGION_ram_SIZE (0x08000)
+#define CYGMEM_REGION_ram_ATTR (CYGMEM_REGION_ATTR_R | CYGMEM_REGION_ATTR_W)
+#define CYGMEM_REGION_rom (0x00100000)
+#define CYGMEM_REGION_rom_SIZE (0x20000)
+#define CYGMEM_REGION_rom_ATTR (CYGMEM_REGION_ATTR_R)
+#ifndef __ASSEMBLER__
+extern char CYG_LABEL_NAME (__reserved_bootmon) [];
+#endif
+#define CYGMEM_SECTION_reserved_bootmon (CYG_LABEL_NAME (__reserved_bootmon))
+#define CYGMEM_SECTION_reserved_bootmon_SIZE (0x01000)
+#ifndef __ASSEMBLER__
+extern char CYG_LABEL_NAME (__heap1) [];
+#endif
+#define CYGMEM_SECTION_heap1 (CYG_LABEL_NAME (__heap1))
+#define CYGMEM_SECTION_heap1_SIZE (0x00204000 - (size_t) CYG_LABEL_NAME (__heap1))
diff --git a/ecos/packages/hal/arm/at91/at91sam7s/current/include/pkgconf/mlt_arm_at91sam7s128_rom.ldi b/ecos/packages/hal/arm/at91/at91sam7s/current/include/pkgconf/mlt_arm_at91sam7s128_rom.ldi
new file mode 100644
index 0000000..788ffce
--- /dev/null
+++ b/ecos/packages/hal/arm/at91/at91sam7s/current/include/pkgconf/mlt_arm_at91sam7s128_rom.ldi
@@ -0,0 +1,30 @@
+// eCos memory layout - Wed Apr 11 13:49:55 2001
+
+// This is a generated file - do not edit
+
+#include <cyg/infra/cyg_type.inc>
+#include <pkgconf/hal_arm_at91sam7.h>
+
+MEMORY
+{
+ ram : ORIGIN = 0x00200000, LENGTH = 0x08000
+ rom : ORIGIN = 0x00100000, LENGTH = 0x20000
+}
+
+SECTIONS
+{
+ SECTIONS_BEGIN
+ CYG_LABEL_DEFN(__reserved_bootmon) = 0x00000000; . = CYG_LABEL_DEFN(__reserved_bootmon) + 0x01000;
+ SECTION_rom_vectors (rom, CYGNUM_HAL_ARM_AT91_IMAGE_ADDRESS, LMA_EQ_VMA)
+ SECTION_text (rom, ALIGN (0x1), 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, 0x00200040, LMA_EQ_VMA)
+ SECTION_data (ram, ALIGN (0x4), FOLLOWING (.gcc_except_table))
+ SECTION_bss (ram, ALIGN (0x4), LMA_EQ_VMA)
+ CYG_LABEL_DEFN(__heap1) = ALIGN (0x8);
+ SECTIONS_END
+}
diff --git a/ecos/packages/hal/arm/at91/at91sam7s/current/include/pkgconf/mlt_arm_at91sam7s256_rom.h b/ecos/packages/hal/arm/at91/at91sam7s/current/include/pkgconf/mlt_arm_at91sam7s256_rom.h
new file mode 100644
index 0000000..9d43fb6
--- /dev/null
+++ b/ecos/packages/hal/arm/at91/at91sam7s/current/include/pkgconf/mlt_arm_at91sam7s256_rom.h
@@ -0,0 +1,25 @@
+// eCos memory layout - Wed Apr 11 13:49:55 2001
+
+// This is a generated file - do not edit
+
+#ifndef __ASSEMBLER__
+#include <cyg/infra/cyg_type.h>
+#include <stddef.h>
+
+#endif
+#define CYGMEM_REGION_ram (0x00200000)
+#define CYGMEM_REGION_ram_SIZE (0x10000)
+#define CYGMEM_REGION_ram_ATTR (CYGMEM_REGION_ATTR_R | CYGMEM_REGION_ATTR_W)
+#define CYGMEM_REGION_rom (0x00100000)
+#define CYGMEM_REGION_rom_SIZE (0x40000)
+#define CYGMEM_REGION_rom_ATTR (CYGMEM_REGION_ATTR_R)
+#ifndef __ASSEMBLER__
+extern char CYG_LABEL_NAME (__reserved_bootmon) [];
+#endif
+#define CYGMEM_SECTION_reserved_bootmon (CYG_LABEL_NAME (__reserved_bootmon))
+#define CYGMEM_SECTION_reserved_bootmon_SIZE (0x01000)
+#ifndef __ASSEMBLER__
+extern char CYG_LABEL_NAME (__heap1) [];
+#endif
+#define CYGMEM_SECTION_heap1 (CYG_LABEL_NAME (__heap1))
+#define CYGMEM_SECTION_heap1_SIZE (0x00210000 - (size_t) CYG_LABEL_NAME (__heap1))
diff --git a/ecos/packages/hal/arm/at91/at91sam7s/current/include/pkgconf/mlt_arm_at91sam7s256_rom.ldi b/ecos/packages/hal/arm/at91/at91sam7s/current/include/pkgconf/mlt_arm_at91sam7s256_rom.ldi
new file mode 100644
index 0000000..84c790c
--- /dev/null
+++ b/ecos/packages/hal/arm/at91/at91sam7s/current/include/pkgconf/mlt_arm_at91sam7s256_rom.ldi
@@ -0,0 +1,30 @@
+// eCos memory layout - Wed Apr 11 13:49:55 2001
+
+// This is a generated file - do not edit
+
+#include <cyg/infra/cyg_type.inc>
+#include <pkgconf/hal_arm_at91sam7.h>
+
+MEMORY
+{
+ ram : ORIGIN = 0x00200000, LENGTH = 0x10000
+ rom : ORIGIN = 0x00100000, LENGTH = 0x40000
+}
+
+SECTIONS
+{
+ SECTIONS_BEGIN
+ CYG_LABEL_DEFN(__reserved_bootmon) = 0x00000000; . = CYG_LABEL_DEFN(__reserved_bootmon) + 0x01000;
+ SECTION_rom_vectors (rom, CYGNUM_HAL_ARM_AT91_IMAGE_ADDRESS, LMA_EQ_VMA)
+ SECTION_text (rom, ALIGN (0x1), 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, 0x00200040, LMA_EQ_VMA)
+ SECTION_data (ram, ALIGN (0x4), FOLLOWING (.gcc_except_table))
+ SECTION_bss (ram, ALIGN (0x4), LMA_EQ_VMA)
+ CYG_LABEL_DEFN(__heap1) = ALIGN (0x8);
+ SECTIONS_END
+}
diff --git a/ecos/packages/hal/arm/at91/at91sam7s/current/include/pkgconf/mlt_arm_at91sam7s32_rom.h b/ecos/packages/hal/arm/at91/at91sam7s/current/include/pkgconf/mlt_arm_at91sam7s32_rom.h
new file mode 100644
index 0000000..61ffc48
--- /dev/null
+++ b/ecos/packages/hal/arm/at91/at91sam7s/current/include/pkgconf/mlt_arm_at91sam7s32_rom.h
@@ -0,0 +1,25 @@
+// eCos memory layout - Wed Apr 11 13:49:55 2001
+
+// This is a generated file - do not edit
+
+#ifndef __ASSEMBLER__
+#include <cyg/infra/cyg_type.h>
+#include <stddef.h>
+
+#endif
+#define CYGMEM_REGION_ram (0x00200000)
+#define CYGMEM_REGION_ram_SIZE (0x02000)
+#define CYGMEM_REGION_ram_ATTR (CYGMEM_REGION_ATTR_R | CYGMEM_REGION_ATTR_W)
+#define CYGMEM_REGION_rom (0x00100000)
+#define CYGMEM_REGION_rom_SIZE (0x08000)
+#define CYGMEM_REGION_rom_ATTR (CYGMEM_REGION_ATTR_R)
+#ifndef __ASSEMBLER__
+extern char CYG_LABEL_NAME (__reserved_bootmon) [];
+#endif
+#define CYGMEM_SECTION_reserved_bootmon (CYG_LABEL_NAME (__reserved_bootmon))
+#define CYGMEM_SECTION_reserved_bootmon_SIZE (0x01000)
+#ifndef __ASSEMBLER__
+extern char CYG_LABEL_NAME (__heap1) [];
+#endif
+#define CYGMEM_SECTION_heap1 (CYG_LABEL_NAME (__heap1))
+#define CYGMEM_SECTION_heap1_SIZE (0x00202000 - (size_t) CYG_LABEL_NAME (__heap1))
diff --git a/ecos/packages/hal/arm/at91/at91sam7s/current/include/pkgconf/mlt_arm_at91sam7s32_rom.ldi b/ecos/packages/hal/arm/at91/at91sam7s/current/include/pkgconf/mlt_arm_at91sam7s32_rom.ldi
new file mode 100644
index 0000000..4724f59
--- /dev/null
+++ b/ecos/packages/hal/arm/at91/at91sam7s/current/include/pkgconf/mlt_arm_at91sam7s32_rom.ldi
@@ -0,0 +1,30 @@
+// eCos memory layout - Wed Apr 11 13:49:55 2001
+
+// This is a generated file - do not edit
+
+#include <cyg/infra/cyg_type.inc>
+#include <pkgconf/hal_arm_at91sam7.h>
+
+MEMORY
+{
+ ram : ORIGIN = 0x00200000, LENGTH = 0x02000
+ rom : ORIGIN = 0x00100000, LENGTH = 0x08000
+}
+
+SECTIONS
+{
+ SECTIONS_BEGIN
+ CYG_LABEL_DEFN(__reserved_bootmon) = 0x00000000; . = CYG_LABEL_DEFN(__reserved_bootmon) + 0x01000;
+ SECTION_rom_vectors (rom, CYGNUM_HAL_ARM_AT91_IMAGE_ADDRESS, LMA_EQ_VMA)
+ SECTION_text (rom, ALIGN (0x1), 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, 0x00200040, LMA_EQ_VMA)
+ SECTION_data (ram, ALIGN (0x4), FOLLOWING (.gcc_except_table))
+ SECTION_bss (ram, ALIGN (0x4), LMA_EQ_VMA)
+ CYG_LABEL_DEFN(__heap1) = ALIGN (0x8);
+ SECTIONS_END
+}
diff --git a/ecos/packages/hal/arm/at91/at91sam7s/current/include/pkgconf/mlt_arm_at91sam7s512_rom.h b/ecos/packages/hal/arm/at91/at91sam7s/current/include/pkgconf/mlt_arm_at91sam7s512_rom.h
new file mode 100644
index 0000000..86b21b9
--- /dev/null
+++ b/ecos/packages/hal/arm/at91/at91sam7s/current/include/pkgconf/mlt_arm_at91sam7s512_rom.h
@@ -0,0 +1,25 @@
+// eCos memory layout - Thu Oct 09 03:46 2008
+
+// This is a generated file - do not edit
+
+#ifndef __ASSEMBLER__
+#include <cyg/infra/cyg_type.h>
+#include <stddef.h>
+
+#endif
+#define CYGMEM_REGION_ram (0x00200000)
+#define CYGMEM_REGION_ram_SIZE (0x10000)
+#define CYGMEM_REGION_ram_ATTR (CYGMEM_REGION_ATTR_R | CYGMEM_REGION_ATTR_W)
+#define CYGMEM_REGION_rom (0x00100000)
+#define CYGMEM_REGION_rom_SIZE (0x80000)
+#define CYGMEM_REGION_rom_ATTR (CYGMEM_REGION_ATTR_R)
+#ifndef __ASSEMBLER__
+extern char CYG_LABEL_NAME (__reserved_bootmon) [];
+#endif
+#define CYGMEM_SECTION_reserved_bootmon (CYG_LABEL_NAME (__reserved_bootmon))
+#define CYGMEM_SECTION_reserved_bootmon_SIZE (0x01000)
+#ifndef __ASSEMBLER__
+extern char CYG_LABEL_NAME (__heap1) [];
+#endif
+#define CYGMEM_SECTION_heap1 (CYG_LABEL_NAME (__heap1))
+#define CYGMEM_SECTION_heap1_SIZE (0x00210000 - (size_t) CYG_LABEL_NAME (__heap1))
diff --git a/ecos/packages/hal/arm/at91/at91sam7s/current/include/pkgconf/mlt_arm_at91sam7s512_rom.ldi b/ecos/packages/hal/arm/at91/at91sam7s/current/include/pkgconf/mlt_arm_at91sam7s512_rom.ldi
new file mode 100644
index 0000000..40e47e7
--- /dev/null
+++ b/ecos/packages/hal/arm/at91/at91sam7s/current/include/pkgconf/mlt_arm_at91sam7s512_rom.ldi
@@ -0,0 +1,30 @@
+// eCos memory layout - Thu Oct 09 03:46 2008
+
+// This is a generated file - do not edit
+
+#include <cyg/infra/cyg_type.inc>
+#include <pkgconf/hal_arm_at91sam7.h>
+
+MEMORY
+{
+ ram : ORIGIN = 0x00200000, LENGTH = 0x10000
+ rom : ORIGIN = 0x00100000, LENGTH = 0x80000
+}
+
+SECTIONS
+{
+ SECTIONS_BEGIN
+ CYG_LABEL_DEFN(__reserved_bootmon) = 0x00000000; . = CYG_LABEL_DEFN(__reserved_bootmon) + 0x01000;
+ SECTION_rom_vectors (rom, CYGNUM_HAL_ARM_AT91_IMAGE_ADDRESS, LMA_EQ_VMA)
+ SECTION_text (rom, ALIGN (0x1), 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, 0x00200040, LMA_EQ_VMA)
+ SECTION_data (ram, ALIGN (0x4), FOLLOWING (.gcc_except_table))
+ SECTION_bss (ram, ALIGN (0x4), LMA_EQ_VMA)
+ CYG_LABEL_DEFN(__heap1) = ALIGN (0x8);
+ SECTIONS_END
+}
diff --git a/ecos/packages/hal/arm/at91/at91sam7s/current/include/pkgconf/mlt_arm_at91sam7s64_rom.h b/ecos/packages/hal/arm/at91/at91sam7s/current/include/pkgconf/mlt_arm_at91sam7s64_rom.h
new file mode 100644
index 0000000..9e3d25c
--- /dev/null
+++ b/ecos/packages/hal/arm/at91/at91sam7s/current/include/pkgconf/mlt_arm_at91sam7s64_rom.h
@@ -0,0 +1,25 @@
+// eCos memory layout - Wed Apr 11 13:49:55 2001
+
+// This is a generated file - do not edit
+
+#ifndef __ASSEMBLER__
+#include <cyg/infra/cyg_type.h>
+#include <stddef.h>
+
+#endif
+#define CYGMEM_REGION_ram (0x00200000)
+#define CYGMEM_REGION_ram_SIZE (0x04000)
+#define CYGMEM_REGION_ram_ATTR (CYGMEM_REGION_ATTR_R | CYGMEM_REGION_ATTR_W)
+#define CYGMEM_REGION_rom (0x00100000)
+#define CYGMEM_REGION_rom_SIZE (0x10000)
+#define CYGMEM_REGION_rom_ATTR (CYGMEM_REGION_ATTR_R)
+#ifndef __ASSEMBLER__
+extern char CYG_LABEL_NAME (__reserved_bootmon) [];
+#endif
+#define CYGMEM_SECTION_reserved_bootmon (CYG_LABEL_NAME (__reserved_bootmon))
+#define CYGMEM_SECTION_reserved_bootmon_SIZE (0x01000)
+#ifndef __ASSEMBLER__
+extern char CYG_LABEL_NAME (__heap1) [];
+#endif
+#define CYGMEM_SECTION_heap1 (CYG_LABEL_NAME (__heap1))
+#define CYGMEM_SECTION_heap1_SIZE (0x00204000 - (size_t) CYG_LABEL_NAME (__heap1))
diff --git a/ecos/packages/hal/arm/at91/at91sam7s/current/include/pkgconf/mlt_arm_at91sam7s64_rom.ldi b/ecos/packages/hal/arm/at91/at91sam7s/current/include/pkgconf/mlt_arm_at91sam7s64_rom.ldi
new file mode 100644
index 0000000..ab34564
--- /dev/null
+++ b/ecos/packages/hal/arm/at91/at91sam7s/current/include/pkgconf/mlt_arm_at91sam7s64_rom.ldi
@@ -0,0 +1,30 @@
+// eCos memory layout - Wed Apr 11 13:49:55 2001
+
+// This is a generated file - do not edit
+
+#include <cyg/infra/cyg_type.inc>
+#include <pkgconf/hal_arm_at91sam7.h>
+
+MEMORY
+{
+ ram : ORIGIN = 0x00200000, LENGTH = 0x04000
+ rom : ORIGIN = 0x00100000, LENGTH = 0x10000
+}
+
+SECTIONS
+{
+ SECTIONS_BEGIN
+ CYG_LABEL_DEFN(__reserved_bootmon) = 0x00000000; . = CYG_LABEL_DEFN(__reserved_bootmon) + 0x01000;
+ SECTION_rom_vectors (rom, CYGNUM_HAL_ARM_AT91_IMAGE_ADDRESS, LMA_EQ_VMA)
+ SECTION_text (rom, ALIGN (0x1), 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, 0x00200040, LMA_EQ_VMA)
+ SECTION_data (ram, ALIGN (0x4), FOLLOWING (.gcc_except_table))
+ SECTION_bss (ram, ALIGN (0x4), LMA_EQ_VMA)
+ CYG_LABEL_DEFN(__heap1) = ALIGN (0x8);
+ SECTIONS_END
+}
diff --git a/ecos/packages/hal/arm/at91/at91sam7s/current/include/pkgconf/mlt_arm_at91sam7se256_rom.h b/ecos/packages/hal/arm/at91/at91sam7s/current/include/pkgconf/mlt_arm_at91sam7se256_rom.h
new file mode 100644
index 0000000..f982833
--- /dev/null
+++ b/ecos/packages/hal/arm/at91/at91sam7s/current/include/pkgconf/mlt_arm_at91sam7se256_rom.h
@@ -0,0 +1,25 @@
+// eCos memory layout - Thu Oct 09 03:51 2008
+
+// This is a generated file - do not edit
+
+#ifndef __ASSEMBLER__
+#include <cyg/infra/cyg_type.h>
+#include <stddef.h>
+
+#endif
+#define CYGMEM_REGION_ram (0x00200000)
+#define CYGMEM_REGION_ram_SIZE (0x8000)
+#define CYGMEM_REGION_ram_ATTR (CYGMEM_REGION_ATTR_R | CYGMEM_REGION_ATTR_W)
+#define CYGMEM_REGION_rom (0x00100000)
+#define CYGMEM_REGION_rom_SIZE (0x40000)
+#define CYGMEM_REGION_rom_ATTR (CYGMEM_REGION_ATTR_R)
+#ifndef __ASSEMBLER__
+extern char CYG_LABEL_NAME (__reserved_bootmon) [];
+#endif
+#define CYGMEM_SECTION_reserved_bootmon (CYG_LABEL_NAME (__reserved_bootmon))
+#define CYGMEM_SECTION_reserved_bootmon_SIZE (0x01000)
+#ifndef __ASSEMBLER__
+extern char CYG_LABEL_NAME (__heap1) [];
+#endif
+#define CYGMEM_SECTION_heap1 (CYG_LABEL_NAME (__heap1))
+#define CYGMEM_SECTION_heap1_SIZE (0x00208000 - (size_t) CYG_LABEL_NAME (__heap1))
diff --git a/ecos/packages/hal/arm/at91/at91sam7s/current/include/pkgconf/mlt_arm_at91sam7se256_rom.ldi b/ecos/packages/hal/arm/at91/at91sam7s/current/include/pkgconf/mlt_arm_at91sam7se256_rom.ldi
new file mode 100644
index 0000000..18affe1
--- /dev/null
+++ b/ecos/packages/hal/arm/at91/at91sam7s/current/include/pkgconf/mlt_arm_at91sam7se256_rom.ldi
@@ -0,0 +1,30 @@
+// eCos memory layout - Thu Oct 09 03:51 2008
+
+// This is a generated file - do not edit
+
+#include <cyg/infra/cyg_type.inc>
+#include <pkgconf/hal_arm_at91sam7.h>
+
+MEMORY
+{
+ ram : ORIGIN = 0x00200000, LENGTH = 0x08000
+ rom : ORIGIN = 0x00100000, LENGTH = 0x40000
+}
+
+SECTIONS
+{
+ SECTIONS_BEGIN
+ CYG_LABEL_DEFN(__reserved_bootmon) = 0x00000000; . = CYG_LABEL_DEFN(__reserved_bootmon) + 0x01000;
+ SECTION_rom_vectors (rom, CYGNUM_HAL_ARM_AT91_IMAGE_ADDRESS, LMA_EQ_VMA)
+ SECTION_text (rom, ALIGN (0x1), 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, 0x00200040, LMA_EQ_VMA)
+ SECTION_data (ram, ALIGN (0x4), FOLLOWING (.gcc_except_table))
+ SECTION_bss (ram, ALIGN (0x4), LMA_EQ_VMA)
+ CYG_LABEL_DEFN(__heap1) = ALIGN (0x8);
+ SECTIONS_END
+}
diff --git a/ecos/packages/hal/arm/at91/at91sam7s/current/include/pkgconf/mlt_arm_at91sam7se32_rom.h b/ecos/packages/hal/arm/at91/at91sam7s/current/include/pkgconf/mlt_arm_at91sam7se32_rom.h
new file mode 100644
index 0000000..61ffc48
--- /dev/null
+++ b/ecos/packages/hal/arm/at91/at91sam7s/current/include/pkgconf/mlt_arm_at91sam7se32_rom.h
@@ -0,0 +1,25 @@
+// eCos memory layout - Wed Apr 11 13:49:55 2001
+
+// This is a generated file - do not edit
+
+#ifndef __ASSEMBLER__
+#include <cyg/infra/cyg_type.h>
+#include <stddef.h>
+
+#endif
+#define CYGMEM_REGION_ram (0x00200000)
+#define CYGMEM_REGION_ram_SIZE (0x02000)
+#define CYGMEM_REGION_ram_ATTR (CYGMEM_REGION_ATTR_R | CYGMEM_REGION_ATTR_W)
+#define CYGMEM_REGION_rom (0x00100000)
+#define CYGMEM_REGION_rom_SIZE (0x08000)
+#define CYGMEM_REGION_rom_ATTR (CYGMEM_REGION_ATTR_R)
+#ifndef __ASSEMBLER__
+extern char CYG_LABEL_NAME (__reserved_bootmon) [];
+#endif
+#define CYGMEM_SECTION_reserved_bootmon (CYG_LABEL_NAME (__reserved_bootmon))
+#define CYGMEM_SECTION_reserved_bootmon_SIZE (0x01000)
+#ifndef __ASSEMBLER__
+extern char CYG_LABEL_NAME (__heap1) [];
+#endif
+#define CYGMEM_SECTION_heap1 (CYG_LABEL_NAME (__heap1))
+#define CYGMEM_SECTION_heap1_SIZE (0x00202000 - (size_t) CYG_LABEL_NAME (__heap1))
diff --git a/ecos/packages/hal/arm/at91/at91sam7s/current/include/pkgconf/mlt_arm_at91sam7se32_rom.ldi b/ecos/packages/hal/arm/at91/at91sam7s/current/include/pkgconf/mlt_arm_at91sam7se32_rom.ldi
new file mode 100644
index 0000000..4724f59
--- /dev/null
+++ b/ecos/packages/hal/arm/at91/at91sam7s/current/include/pkgconf/mlt_arm_at91sam7se32_rom.ldi
@@ -0,0 +1,30 @@
+// eCos memory layout - Wed Apr 11 13:49:55 2001
+
+// This is a generated file - do not edit
+
+#include <cyg/infra/cyg_type.inc>
+#include <pkgconf/hal_arm_at91sam7.h>
+
+MEMORY
+{
+ ram : ORIGIN = 0x00200000, LENGTH = 0x02000
+ rom : ORIGIN = 0x00100000, LENGTH = 0x08000
+}
+
+SECTIONS
+{
+ SECTIONS_BEGIN
+ CYG_LABEL_DEFN(__reserved_bootmon) = 0x00000000; . = CYG_LABEL_DEFN(__reserved_bootmon) + 0x01000;
+ SECTION_rom_vectors (rom, CYGNUM_HAL_ARM_AT91_IMAGE_ADDRESS, LMA_EQ_VMA)
+ SECTION_text (rom, ALIGN (0x1), 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, 0x00200040, LMA_EQ_VMA)
+ SECTION_data (ram, ALIGN (0x4), FOLLOWING (.gcc_except_table))
+ SECTION_bss (ram, ALIGN (0x4), LMA_EQ_VMA)
+ CYG_LABEL_DEFN(__heap1) = ALIGN (0x8);
+ SECTIONS_END
+}
diff --git a/ecos/packages/hal/arm/at91/at91sam7s/current/include/pkgconf/mlt_arm_at91sam7se512_rom.h b/ecos/packages/hal/arm/at91/at91sam7s/current/include/pkgconf/mlt_arm_at91sam7se512_rom.h
new file mode 100644
index 0000000..ad45ba7
--- /dev/null
+++ b/ecos/packages/hal/arm/at91/at91sam7s/current/include/pkgconf/mlt_arm_at91sam7se512_rom.h
@@ -0,0 +1,25 @@
+// eCos memory layout - Thu Oct 09 03:51 2008
+
+// This is a generated file - do not edit
+
+#ifndef __ASSEMBLER__
+#include <cyg/infra/cyg_type.h>
+#include <stddef.h>
+
+#endif
+#define CYGMEM_REGION_ram (0x00200000)
+#define CYGMEM_REGION_ram_SIZE (0x8000)
+#define CYGMEM_REGION_ram_ATTR (CYGMEM_REGION_ATTR_R | CYGMEM_REGION_ATTR_W)
+#define CYGMEM_REGION_rom (0x00100000)
+#define CYGMEM_REGION_rom_SIZE (0x80000)
+#define CYGMEM_REGION_rom_ATTR (CYGMEM_REGION_ATTR_R)
+#ifndef __ASSEMBLER__
+extern char CYG_LABEL_NAME (__reserved_bootmon) [];
+#endif
+#define CYGMEM_SECTION_reserved_bootmon (CYG_LABEL_NAME (__reserved_bootmon))
+#define CYGMEM_SECTION_reserved_bootmon_SIZE (0x01000)
+#ifndef __ASSEMBLER__
+extern char CYG_LABEL_NAME (__heap1) [];
+#endif
+#define CYGMEM_SECTION_heap1 (CYG_LABEL_NAME (__heap1))
+#define CYGMEM_SECTION_heap1_SIZE (0x00208000 - (size_t) CYG_LABEL_NAME (__heap1))
diff --git a/ecos/packages/hal/arm/at91/at91sam7s/current/include/pkgconf/mlt_arm_at91sam7se512_rom.ldi b/ecos/packages/hal/arm/at91/at91sam7s/current/include/pkgconf/mlt_arm_at91sam7se512_rom.ldi
new file mode 100644
index 0000000..5426dde
--- /dev/null
+++ b/ecos/packages/hal/arm/at91/at91sam7s/current/include/pkgconf/mlt_arm_at91sam7se512_rom.ldi
@@ -0,0 +1,30 @@
+// eCos memory layout - Thu Oct 09 03:51 2008
+
+// This is a generated file - do not edit
+
+#include <cyg/infra/cyg_type.inc>
+#include <pkgconf/hal_arm_at91sam7.h>
+
+MEMORY
+{
+ ram : ORIGIN = 0x00200000, LENGTH = 0x08000
+ rom : ORIGIN = 0x00100000, LENGTH = 0x80000
+}
+
+SECTIONS
+{
+ SECTIONS_BEGIN
+ CYG_LABEL_DEFN(__reserved_bootmon) = 0x00000000; . = CYG_LABEL_DEFN(__reserved_bootmon) + 0x01000;
+ SECTION_rom_vectors (rom, CYGNUM_HAL_ARM_AT91_IMAGE_ADDRESS, LMA_EQ_VMA)
+ SECTION_text (rom, ALIGN (0x1), 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, 0x00200040, LMA_EQ_VMA)
+ SECTION_data (ram, ALIGN (0x4), FOLLOWING (.gcc_except_table))
+ SECTION_bss (ram, ALIGN (0x4), LMA_EQ_VMA)
+ CYG_LABEL_DEFN(__heap1) = ALIGN (0x8);
+ SECTIONS_END
+}
diff --git a/ecos/packages/hal/arm/at91/at91sam7s/current/include/pkgconf/mlt_arm_at91sam7x128_rom.h b/ecos/packages/hal/arm/at91/at91sam7s/current/include/pkgconf/mlt_arm_at91sam7x128_rom.h
new file mode 100644
index 0000000..54893cd
--- /dev/null
+++ b/ecos/packages/hal/arm/at91/at91sam7s/current/include/pkgconf/mlt_arm_at91sam7x128_rom.h
@@ -0,0 +1,25 @@
+// eCos memory layout - Wed Apr 11 13:49:55 2001
+
+// This is a generated file - do not edit
+
+#ifndef __ASSEMBLER__
+#include <cyg/infra/cyg_type.h>
+#include <stddef.h>
+
+#endif
+#define CYGMEM_REGION_ram (0x00200000)
+#define CYGMEM_REGION_ram_SIZE (0x08000)
+#define CYGMEM_REGION_ram_ATTR (CYGMEM_REGION_ATTR_R | CYGMEM_REGION_ATTR_W)
+#define CYGMEM_REGION_rom (0x00100000)
+#define CYGMEM_REGION_rom_SIZE (0x20000)
+#define CYGMEM_REGION_rom_ATTR (CYGMEM_REGION_ATTR_R)
+#ifndef __ASSEMBLER__
+extern char CYG_LABEL_NAME (__reserved_bootmon) [];
+#endif
+#define CYGMEM_SECTION_reserved_bootmon (CYG_LABEL_NAME (__reserved_bootmon))
+#define CYGMEM_SECTION_reserved_bootmon_SIZE (0x01000)
+#ifndef __ASSEMBLER__
+extern char CYG_LABEL_NAME (__heap1) [];
+#endif
+#define CYGMEM_SECTION_heap1 (CYG_LABEL_NAME (__heap1))
+#define CYGMEM_SECTION_heap1_SIZE (0x00204000 - (size_t) CYG_LABEL_NAME (__heap1))
diff --git a/ecos/packages/hal/arm/at91/at91sam7s/current/include/pkgconf/mlt_arm_at91sam7x128_rom.ldi b/ecos/packages/hal/arm/at91/at91sam7s/current/include/pkgconf/mlt_arm_at91sam7x128_rom.ldi
new file mode 100644
index 0000000..788ffce
--- /dev/null
+++ b/ecos/packages/hal/arm/at91/at91sam7s/current/include/pkgconf/mlt_arm_at91sam7x128_rom.ldi
@@ -0,0 +1,30 @@
+// eCos memory layout - Wed Apr 11 13:49:55 2001
+
+// This is a generated file - do not edit
+
+#include <cyg/infra/cyg_type.inc>
+#include <pkgconf/hal_arm_at91sam7.h>
+
+MEMORY
+{
+ ram : ORIGIN = 0x00200000, LENGTH = 0x08000
+ rom : ORIGIN = 0x00100000, LENGTH = 0x20000
+}
+
+SECTIONS
+{
+ SECTIONS_BEGIN
+ CYG_LABEL_DEFN(__reserved_bootmon) = 0x00000000; . = CYG_LABEL_DEFN(__reserved_bootmon) + 0x01000;
+ SECTION_rom_vectors (rom, CYGNUM_HAL_ARM_AT91_IMAGE_ADDRESS, LMA_EQ_VMA)
+ SECTION_text (rom, ALIGN (0x1), 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, 0x00200040, LMA_EQ_VMA)
+ SECTION_data (ram, ALIGN (0x4), FOLLOWING (.gcc_except_table))
+ SECTION_bss (ram, ALIGN (0x4), LMA_EQ_VMA)
+ CYG_LABEL_DEFN(__heap1) = ALIGN (0x8);
+ SECTIONS_END
+}
diff --git a/ecos/packages/hal/arm/at91/at91sam7s/current/include/pkgconf/mlt_arm_at91sam7x256_rom.h b/ecos/packages/hal/arm/at91/at91sam7s/current/include/pkgconf/mlt_arm_at91sam7x256_rom.h
new file mode 100644
index 0000000..9d43fb6
--- /dev/null
+++ b/ecos/packages/hal/arm/at91/at91sam7s/current/include/pkgconf/mlt_arm_at91sam7x256_rom.h
@@ -0,0 +1,25 @@
+// eCos memory layout - Wed Apr 11 13:49:55 2001
+
+// This is a generated file - do not edit
+
+#ifndef __ASSEMBLER__
+#include <cyg/infra/cyg_type.h>
+#include <stddef.h>
+
+#endif
+#define CYGMEM_REGION_ram (0x00200000)
+#define CYGMEM_REGION_ram_SIZE (0x10000)
+#define CYGMEM_REGION_ram_ATTR (CYGMEM_REGION_ATTR_R | CYGMEM_REGION_ATTR_W)
+#define CYGMEM_REGION_rom (0x00100000)
+#define CYGMEM_REGION_rom_SIZE (0x40000)
+#define CYGMEM_REGION_rom_ATTR (CYGMEM_REGION_ATTR_R)
+#ifndef __ASSEMBLER__
+extern char CYG_LABEL_NAME (__reserved_bootmon) [];
+#endif
+#define CYGMEM_SECTION_reserved_bootmon (CYG_LABEL_NAME (__reserved_bootmon))
+#define CYGMEM_SECTION_reserved_bootmon_SIZE (0x01000)
+#ifndef __ASSEMBLER__
+extern char CYG_LABEL_NAME (__heap1) [];
+#endif
+#define CYGMEM_SECTION_heap1 (CYG_LABEL_NAME (__heap1))
+#define CYGMEM_SECTION_heap1_SIZE (0x00210000 - (size_t) CYG_LABEL_NAME (__heap1))
diff --git a/ecos/packages/hal/arm/at91/at91sam7s/current/include/pkgconf/mlt_arm_at91sam7x256_rom.ldi b/ecos/packages/hal/arm/at91/at91sam7s/current/include/pkgconf/mlt_arm_at91sam7x256_rom.ldi
new file mode 100644
index 0000000..84c790c
--- /dev/null
+++ b/ecos/packages/hal/arm/at91/at91sam7s/current/include/pkgconf/mlt_arm_at91sam7x256_rom.ldi
@@ -0,0 +1,30 @@
+// eCos memory layout - Wed Apr 11 13:49:55 2001
+
+// This is a generated file - do not edit
+
+#include <cyg/infra/cyg_type.inc>
+#include <pkgconf/hal_arm_at91sam7.h>
+
+MEMORY
+{
+ ram : ORIGIN = 0x00200000, LENGTH = 0x10000
+ rom : ORIGIN = 0x00100000, LENGTH = 0x40000
+}
+
+SECTIONS
+{
+ SECTIONS_BEGIN
+ CYG_LABEL_DEFN(__reserved_bootmon) = 0x00000000; . = CYG_LABEL_DEFN(__reserved_bootmon) + 0x01000;
+ SECTION_rom_vectors (rom, CYGNUM_HAL_ARM_AT91_IMAGE_ADDRESS, LMA_EQ_VMA)
+ SECTION_text (rom, ALIGN (0x1), 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, 0x00200040, LMA_EQ_VMA)
+ SECTION_data (ram, ALIGN (0x4), FOLLOWING (.gcc_except_table))
+ SECTION_bss (ram, ALIGN (0x4), LMA_EQ_VMA)
+ CYG_LABEL_DEFN(__heap1) = ALIGN (0x8);
+ SECTIONS_END
+}
diff --git a/ecos/packages/hal/arm/at91/at91sam7s/current/include/pkgconf/mlt_arm_at91sam7x512_rom.h b/ecos/packages/hal/arm/at91/at91sam7s/current/include/pkgconf/mlt_arm_at91sam7x512_rom.h
new file mode 100644
index 0000000..8ef949e
--- /dev/null
+++ b/ecos/packages/hal/arm/at91/at91sam7s/current/include/pkgconf/mlt_arm_at91sam7x512_rom.h
@@ -0,0 +1,25 @@
+// eCos memory layout - Wed Apr 11 13:49:55 2001
+
+// This is a generated file - do not edit
+
+#ifndef __ASSEMBLER__
+#include <cyg/infra/cyg_type.h>
+#include <stddef.h>
+
+#endif
+#define CYGMEM_REGION_ram (0x00200000)
+#define CYGMEM_REGION_ram_SIZE (0x20000)
+#define CYGMEM_REGION_ram_ATTR (CYGMEM_REGION_ATTR_R | CYGMEM_REGION_ATTR_W)
+#define CYGMEM_REGION_rom (0x00100000)
+#define CYGMEM_REGION_rom_SIZE (0x80000)
+#define CYGMEM_REGION_rom_ATTR (CYGMEM_REGION_ATTR_R)
+#ifndef __ASSEMBLER__
+extern char CYG_LABEL_NAME (__reserved_bootmon) [];
+#endif
+#define CYGMEM_SECTION_reserved_bootmon (CYG_LABEL_NAME (__reserved_bootmon))
+#define CYGMEM_SECTION_reserved_bootmon_SIZE (0x01000)
+#ifndef __ASSEMBLER__
+extern char CYG_LABEL_NAME (__heap1) [];
+#endif
+#define CYGMEM_SECTION_heap1 (CYG_LABEL_NAME (__heap1))
+#define CYGMEM_SECTION_heap1_SIZE (0x00220000 - (size_t) CYG_LABEL_NAME (__heap1))
diff --git a/ecos/packages/hal/arm/at91/at91sam7s/current/include/pkgconf/mlt_arm_at91sam7x512_rom.ldi b/ecos/packages/hal/arm/at91/at91sam7s/current/include/pkgconf/mlt_arm_at91sam7x512_rom.ldi
new file mode 100644
index 0000000..2ac2c00
--- /dev/null
+++ b/ecos/packages/hal/arm/at91/at91sam7s/current/include/pkgconf/mlt_arm_at91sam7x512_rom.ldi
@@ -0,0 +1,30 @@
+// eCos memory layout - Wed Apr 11 13:49:55 2001
+
+// This is a generated file - do not edit
+
+#include <cyg/infra/cyg_type.inc>
+#include <pkgconf/hal_arm_at91sam7.h>
+
+MEMORY
+{
+ ram : ORIGIN = 0x00200000, LENGTH = 0x20000
+ rom : ORIGIN = 0x00100000, LENGTH = 0x80000
+}
+
+SECTIONS
+{
+ SECTIONS_BEGIN
+ CYG_LABEL_DEFN(__reserved_bootmon) = 0x00000000; . = CYG_LABEL_DEFN(__reserved_bootmon) + 0x01000;
+ SECTION_rom_vectors (rom, CYGNUM_HAL_ARM_AT91_IMAGE_ADDRESS, LMA_EQ_VMA)
+ SECTION_text (rom, ALIGN (0x1), 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, 0x00200040, LMA_EQ_VMA)
+ SECTION_data (ram, ALIGN (0x4), FOLLOWING (.gcc_except_table))
+ SECTION_bss (ram, ALIGN (0x4), LMA_EQ_VMA)
+ CYG_LABEL_DEFN(__heap1) = ALIGN (0x8);
+ SECTIONS_END
+}
diff --git a/ecos/packages/hal/arm/at91/at91sam7s/current/include/plf_io.h b/ecos/packages/hal/arm/at91/at91sam7s/current/include/plf_io.h
new file mode 100644
index 0000000..ff66fea
--- /dev/null
+++ b/ecos/packages/hal/arm/at91/at91sam7s/current/include/plf_io.h
@@ -0,0 +1,212 @@
+#ifndef CYGONCE_HAL_PLF_IO_H
+#define CYGONCE_HAL_PLF_IO_H
+//=============================================================================
+//
+// plf_io.h
+//
+// AT91SAM7S board specific registers
+//
+//=============================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): tkoeller
+// Contributors: andrew lunn, Oliver Munz
+// Date: 2009-06-03
+// Purpose: Atmel AT91SAM7S board specific registers
+// Description:
+// Usage: #include <cyg/hal/plf_io.h>
+//
+//####DESCRIPTIONEND####
+//
+//=============================================================================
+#include <pkgconf/hal_arm_at91sam7.h>
+
+#define CYGARC_PHYSICAL_ADDRESS(_x_)
+
+//SPI - Serial Peripheral Interface
+#define AT91_SPI0 0xFFFE0000
+
+#ifdef CYGHWR_HAL_ARM_AT91SAM7X
+#define AT91_SPI1 0xFFFE4000
+#endif
+
+#define AT91_SPI AT91_SPI0
+
+// DMA registers
+#define AT91_SPI_RPR 0x100 // Receive Pointer Register
+#define AT91_SPI_RCR 0x104 // Receive Counter Register
+#define AT91_SPI_TPR 0x108 // Transmit Pointer Register
+#define AT91_SPI_TCR 0x10C // Transmit Counter Register
+#define AT91_SPI_NRPR 0x110 // Next Receive Pointer Register
+#define AT91_SPI_NRCR 0x114 // Next Receive Counter Register
+#define AT91_SPI_NTPR 0x118 // Next Transmit Pointer Register
+#define AT91_SPI_NTCR 0x11C // Next Transmit Counter Register
+#define AT91_SPI_PTCR 0x120 // PDC Transfer Control Register
+#define AT91_SPI_PTSR 0x124 // PDC Transfer Status Register
+
+// Peripheral Input/Output Controllers
+#define AT91_PIOA 0xFFFFF400
+#if defined(CYGHWR_HAL_ARM_AT91SAM7X) || \
+ defined(CYGHWR_HAL_ARM_AT91SAM7SE)
+#define AT91_PIOB 0xFFFFF600
+#endif
+#if defined(CYGHWR_HAL_ARM_AT91SAM7SE)
+#define AT91_PIOC 0xFFFFF800
+#endif
+
+// USART
+
+#define AT91_USART0 0xFFFC0000
+#define AT91_USART1 0xFFFC4000
+
+// Define USART2 to be the debug UART. It is similar enough to a USART
+// that both the hal_diag and interrupt driven driver will work.
+// However trying to change parity, start/stop bits etc will not work.
+#define CYGNUM_HAL_INTERRUPT_USART2 CYGNUM_HAL_INTERRUPT_DBG
+#define AT91_USART2 AT91_DBG
+
+#ifndef __ASSEMBLER__
+#ifdef CYGBLD_HAL_ARM_AT91_BAUD_DYNAMIC
+extern cyg_uint32 hal_at91_us_baud(cyg_uint32 baud);
+#define AT91_US_BAUD(baud) hal_at91_us_baud(baud)
+#endif
+#endif // __ASSEMBLER__
+
+#define AT91_US_RPR 0x100 // Receive Pointer Register
+#define AT91_US_RCR 0x104 // Receive Counter Register
+#define AT91_US_TPR 0x108 // Transmit Pointer Register
+#define AT91_US_TCR 0x10C // Transmit Counter Register
+#define AT91_US_NRPR 0x110 // Next Receive Pointer Register
+#define AT91_US_NRCR 0x114 // Next Receive Counter Register
+#define AT91_US_NTPR 0x118 // Next Transmit Pointer Register
+#define AT91_US_NTCR 0x11C // Next Transmit Counter Register
+#define AT91_US_PTCR 0x120 // PDC Transfer Control Register
+#define AT91_US_PTSR 0x124 // PDC Transfer Status Register
+
+// PIO - Programmable I/O
+
+#define AT91_PIO AT91_PIOA
+
+// TC - Timer Counter
+
+#define AT91_TC 0xFFFA0000
+
+// Power Management Controller
+
+#define AT91_PMC 0xFFFFFC00
+
+#define AT91_PMC_MOR 0x20 // Main Oscillator Register
+#define AT91_PMC_MOR_MOSCEN (1 << 0) // Main Oscillator Enable
+#define AT91_PMC_MOR_OSCBYPASS (1 << 1) // Main Oscillator Bypass
+#define AT91_PMC_MOR_OSCCOUNT(x) (x << 8) // Slow clocks ticks
+#define AT91_PMC_MCFR 0x24 // Main Clock Frequency Register
+#define AT91_PMC_PLLR 0x2c // PLL Register
+#define AT91_PMC_PLLR_DIV(x) ((x) << 0) // PLL Devide
+#define AT91_PMC_PLLR_PLLCOUNT(x) ((x) << 8) // PLL Count
+#define AT91_PMC_PLLR_MUL(x) ((x) << 16) // PLL Devide
+#define AT91_PMC_PLLR_OUT_0 (0 << 14)
+#define AT91_PMC_PLLR_OUT_1 (1 << 14)
+#define AT91_PMC_PLLR_OUT_2 (2 << 14)
+#define AT91_PMC_PLLR_OUT_3 (3 << 14)
+#define AT91_PMC_PLLR_USBDIV_0 (0 << 28) // USB clock is PLL clock / 1
+#define AT91_PMC_PLLR_USBDIV_1 (1 << 28) // USB clock is PLL clock / 2
+#define AT91_PMC_PLLR_USBDIV_2 (2 << 28) // USB clock is PLL clock / 4
+#define AT91_PMC_MCKR 0x30 // Master Clock Register
+#define AT91_PMC_MCKR_SLOW_CLK (0 << 0) // Slow clock selected
+#define AT91_PMC_MCKR_MAIN_CLK (1 << 0) // Main clock selected
+#define AT91_PMC_MCKR_PLL_CLK (3 << 0) // PLL clock selected
+#define AT91_PMC_MCKR_PRES_CLK (0 << 2) // divide by 1
+#define AT91_PMC_MCKR_PRES_CLK_2 (1 << 2) // divide by 2
+#define AT91_PMC_MCKR_PRES_CLK_4 (2 << 2) // divide by 4
+#define AT91_PMC_MCKR_PRES_CLK_8 (3 << 2) // divide by 8
+#define AT91_PMC_MCKR_PRES_CLK_16 (4 << 2) // divide by 16
+#define AT91_PMC_MCKR_PRES_CLK_32 (5 << 2) // divide by 32
+#define AT91_PMC_MCKR_PRES_CLK_64 (6 << 2) // divide by 64
+#define AT91_PMC_PCKR0 0x40 // Programmable Clock Register 0
+#define AT91_PMC_PCKR1 0x44 // Programmable Clock Register 1
+#define AT91_PMC_PCKR2 0x48 // Programmable Clock Register 2
+#define AT91_PMC_IER 0x60 // Interrupt Enable Register
+#define AT91_PMC_IDR 0x64 // Interrupt Disable Register
+#define AT91_PMC_SR 0x68 // Status Register
+#define AT91_PMC_SR_MOSCS (1 << 0) // Main oscillator stable
+#define AT91_PMC_SR_LOCK (1 << 2) // PLL Locked
+#define AT91_PMC_SR_MCKRDY (1 << 3) // MCK is ready to be enabled
+#define AT91_PMC_SR_PCK0RDY (1 << 8) // Pad clock 0 is ready to be enabled
+#define AT91_PMC_SR_PCK1RDY (1 << 9) // Pad clock 1 is ready to be enabled
+#define AT91_PMC_SR_PCK2RDY (1 << 10) // Pad clock 2 is ready to be enabled
+#define AT91_PMC_SR_PCK3RDY (1 << 11) // Pad clock 3 is ready to be enabled
+#define AT91_PMC_IMR 0x6c // Interrupt Mask Register
+
+#ifdef CYGHWR_HAL_ARM_AT91SAM7X
+
+// EMAC - Ethernet Medium Access Controller
+
+#define AT91_EMAC 0xFFFDC000
+
+// CAN - Controller Area Network
+
+#define AT91_CAN 0xFFFD0000
+
+#endif
+
+#if defined(CYGHWR_HAL_ARM_AT91SAM7_at91sam7x512) || \
+ defined(CYGHWR_HAL_ARM_AT91SAM7_at91sam7s512) || \
+ defined(CYGHWR_HAL_ARM_AT91SAM7_at91sam7se512)
+#define AT91_MC_FMR0 AT91_MC_FMR
+#define AT91_MC_FCR0 AT91_MC_FCR
+#define AT91_MC_FSR0 AT91_MC_FSR
+#define AT91_MC_FMR1 (AT91_MC_FMR + 0x10)
+#define AT91_MC_FCR1 (AT91_MC_FCR + 0x10)
+#define AT91_MC_FSR1 (AT91_MC_FSR + 0x10)
+#endif
+
+//----------------------------------------------------------------------
+// The platform needs this initialization during the
+// hal_hardware_init() function in the varient HAL.
+#ifndef __ASSEMBLER__
+extern void hal_plf_hardware_init(void);
+#define HAL_PLF_HARDWARE_INIT() \
+ hal_plf_hardware_init()
+
+#ifdef CYGHWR_HAL_ARM_AT91SAM7X
+extern void hal_plf_eth_init(void);
+#define HAL_PLF_ETH_INIT() \
+ hal_plf_eth_init()
+#endif
+
+#endif //__ASSEMBLER__
+
+#endif //CYGONCE_HAL_PLF_IO_H
+
diff --git a/ecos/packages/hal/arm/at91/at91sam7s/current/misc/redboot_RAM.ecm b/ecos/packages/hal/arm/at91/at91sam7s/current/misc/redboot_RAM.ecm
new file mode 100644
index 0000000..b7f956e
--- /dev/null
+++ b/ecos/packages/hal/arm/at91/at91sam7s/current/misc/redboot_RAM.ecm
@@ -0,0 +1,82 @@
+cdl_savefile_version 1;
+cdl_savefile_command cdl_savefile_version {};
+cdl_savefile_command cdl_savefile_command {};
+cdl_savefile_command cdl_configuration { description hardware template package };
+cdl_savefile_command cdl_package { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_component { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_option { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_interface { value_source user_value wizard_value inferred_value };
+
+cdl_configuration eCos {
+ description "" ;
+ hardware at91sam7s ;
+ template redboot ;
+ package -hardware CYGPKG_HAL_ARM current ;
+ package -hardware CYGPKG_HAL_ARM_AT91 current ;
+ package -hardware CYGPKG_DEVS_FLASH_AT91 current ;
+ package -template CYGPKG_HAL current ;
+ package -template CYGPKG_INFRA current ;
+ package -template CYGPKG_REDBOOT current ;
+ package CYGPKG_IO_FLASH current ;
+};
+
+cdl_option CYGNUM_HAL_COMMON_INTERRUPTS_STACK_SIZE {
+ user_value 6144
+};
+
+cdl_option CYGDBG_HAL_COMMON_INTERRUPTS_SAVE_MINIMUM_CONTEXT {
+ user_value 0
+};
+
+cdl_option CYGDBG_HAL_COMMON_CONTEXT_SAVE_MINIMUM {
+ inferred_value 0
+};
+
+cdl_option CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS {
+ inferred_value 1
+};
+
+cdl_option CYGSEM_HAL_USE_ROM_MONITOR {
+ inferred_value 0 0
+};
+
+cdl_component CYGBLD_BUILD_REDBOOT {
+ user_value 1
+};
+
+cdl_option CYGOPT_REDBOOT_FIS {
+ user_value 0
+};
+
+cdl_component CYGSEM_REDBOOT_FLASH_CONFIG {
+ user_value 0
+};
+
+cdl_option CYGSEM_REDBOOT_FLASH_COMBINED_FIS_AND_CONFIG {
+ user_value 0
+};
+
+cdl_option CYGNUM_REDBOOT_FLASH_CONFIG_BLOCK {
+ user_value -16
+};
+
+
+cdl_option CYGBLD_BUILD_REDBOOT_WITH_EXEC {
+ user_value 0
+};
+
+cdl_option CYGBLD_DEV_FLASH_AT91_LOCKING {
+ user_value 0
+};
+
+cdl_option CYGNUM_REDBOOT_FIS_DIRECTORY_BLOCK {
+ user_value -24
+};
+
+cdl_option CYGBLD_REDBOOT_MIN_IMAGE_SIZE {
+ user_value 0x15000
+};
+
+cdl_option CYGBLD_REDBOOT_LOAD_INTO_FLASH {
+ user_value 1
+}; \ No newline at end of file
diff --git a/ecos/packages/hal/arm/at91/at91sam7s/current/misc/redboot_ROM.ecm b/ecos/packages/hal/arm/at91/at91sam7s/current/misc/redboot_ROM.ecm
new file mode 100644
index 0000000..e18ee4b
--- /dev/null
+++ b/ecos/packages/hal/arm/at91/at91sam7s/current/misc/redboot_ROM.ecm
@@ -0,0 +1,90 @@
+cdl_savefile_version 1;
+cdl_savefile_command cdl_savefile_version {};
+cdl_savefile_command cdl_savefile_command {};
+cdl_savefile_command cdl_configuration { description hardware template package };
+cdl_savefile_command cdl_package { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_component { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_option { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_interface { value_source user_value wizard_value inferred_value };
+
+cdl_configuration eCos {
+ description "" ;
+ hardware at91sam7s ;
+ template redboot ;
+ package -hardware CYGPKG_HAL_ARM current ;
+ package -hardware CYGPKG_HAL_ARM_AT91 current ;
+ package -hardware CYGPKG_DEVS_FLASH_AT91 current ;
+ package -template CYGPKG_HAL current ;
+ package -template CYGPKG_INFRA current ;
+ package -template CYGPKG_REDBOOT current ;
+ package CYGPKG_IO_FLASH current ;
+};
+
+cdl_option CYGNUM_HAL_COMMON_INTERRUPTS_STACK_SIZE {
+ user_value 6144
+};
+
+cdl_option CYGDBG_HAL_COMMON_INTERRUPTS_SAVE_MINIMUM_CONTEXT {
+ user_value 0
+};
+
+cdl_option CYGDBG_HAL_COMMON_CONTEXT_SAVE_MINIMUM {
+ inferred_value 0
+};
+
+cdl_option CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS {
+ inferred_value 1
+};
+
+cdl_option CYGSEM_HAL_ROM_MONITOR {
+ inferred_value 1
+};
+
+cdl_option CYGSEM_HAL_USE_ROM_MONITOR {
+ inferred_value 0 0
+};
+
+cdl_component CYG_HAL_STARTUP {
+ user_value ROM
+};
+
+cdl_component CYGBLD_BUILD_REDBOOT {
+ user_value 1
+};
+
+cdl_option CYGOPT_REDBOOT_FIS {
+ user_value 0
+};
+
+cdl_component CYGSEM_REDBOOT_FLASH_CONFIG {
+ user_value 0
+};
+
+cdl_option CYGSEM_REDBOOT_FLASH_COMBINED_FIS_AND_CONFIG {
+ user_value 0
+};
+
+cdl_option CYGNUM_REDBOOT_FLASH_CONFIG_BLOCK {
+ user_value -16
+};
+
+
+cdl_option CYGBLD_BUILD_REDBOOT_WITH_EXEC {
+ user_value 0
+};
+
+cdl_option CYGBLD_DEV_FLASH_AT91_LOCKING {
+ user_value 0
+};
+
+cdl_option CYGNUM_REDBOOT_FIS_DIRECTORY_BLOCK {
+ user_value -24
+};
+
+cdl_option CYGBLD_REDBOOT_MIN_IMAGE_SIZE {
+ user_value 0x15000
+};
+
+cdl_option CYGBLD_REDBOOT_LOAD_INTO_FLASH {
+ user_value 1
+}; \ No newline at end of file
diff --git a/ecos/packages/hal/arm/at91/at91sam7s/current/src/at91sam7s_misc.c b/ecos/packages/hal/arm/at91/at91sam7s/current/src/at91sam7s_misc.c
new file mode 100644
index 0000000..05a5eb5
--- /dev/null
+++ b/ecos/packages/hal/arm/at91/at91sam7s/current/src/at91sam7s_misc.c
@@ -0,0 +1,176 @@
+/*==========================================================================
+//
+// at91sam7s_misc.c
+//
+// HAL misc board support code for Atmel AT91sam7s
+//
+//==========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2006 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//==========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): gthomas
+// Contributors: gthomas, jskov, nickg, tkoeller, Oliver Munz, Andrew Lunn
+// Date: 2001-07-12
+// Purpose: HAL board support
+// Description: Implementations of HAL board interfaces
+//
+//####DESCRIPTIONEND####
+//
+//========================================================================*/
+
+#include <pkgconf/system.h>
+#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_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> // necessary?
+#include <cyg/hal/hal_cache.h>
+#include <cyg/hal/hal_if.h> // calling interface
+#include <cyg/hal/hal_misc.h> // helper functions
+#ifdef CYGDBG_HAL_DEBUG_GDB_BREAK_SUPPORT
+#include <cyg/hal/drv_api.h> // HAL ISR support
+#endif
+
+extern void hal_at91_led(int val);
+
+void
+hal_at91_set_leds (int val)
+{
+ hal_at91_led(val);
+}
+
+// -------------------------------------------------------------------------
+// Hardware init
+
+void hal_plf_hardware_init (void)
+{
+ /* Enable the Serial devices to driver the serial port pins */
+ HAL_ARM_AT91_PIO_CFG(AT91_USART_RXD0);
+ HAL_ARM_AT91_PIO_CFG(AT91_USART_TXD0);
+ HAL_ARM_AT91_PIO_CFG(AT91_DBG_DTXD);
+ HAL_ARM_AT91_PIO_CFG(AT91_DBG_DRXD);
+
+#if !defined(CYGHWR_HAL_ARM_AT91SAM7S_at91sam7s32)
+ /* Enable the Serial devices to driver the serial port pins */
+ HAL_ARM_AT91_PIO_CFG(AT91_USART_RXD1);
+ HAL_ARM_AT91_PIO_CFG(AT91_USART_TXD1);
+#endif
+
+ /* Setup the Reset controller. Allow user resets */
+ HAL_WRITE_UINT32(AT91_RST+AT91_RST_RMR,
+ AT91_RST_RMR_URSTEN |
+ 10 << 8 |
+ AT91_RST_RMR_KEY);
+
+#ifdef CYGBLD_HAL_ARM_AT91_SERIAL_UART
+ /* Enable peripheral clocks for USART 0 and 1 if they are to be used */
+ HAL_WRITE_UINT32(AT91_PMC+AT91_PMC_PCER,
+ AT91_PMC_PCER_US0 |
+ AT91_PMC_PCER_US1);
+#endif
+
+#ifdef CYGBLD_HAL_ARM_AT91_TIMER_TC
+ /* Enable peripheral clocks for TC 0 and 1 if they are to be used */
+ HAL_WRITE_UINT32(AT91_PMC+AT91_PMC_PCER,
+ AT91_PMC_PCER_TC0 |
+ AT91_PMC_PCER_TC2);
+#endif
+
+#ifndef CYGPKG_IO_WATCHDOG
+ /* Disable the watchdog. The eCos philosophy is that the watchdog is
+ disabled unless the watchdog driver is used to enable it.
+ Whoever if we disable it here we cannot re-enable it in the
+ watchdog driver, hence the conditional compilation. */
+ HAL_WRITE_UINT32(AT91_WDTC + AT91_WDTC_WDMR, AT91_WDTC_WDMR_DIS);
+#endif
+
+/* Perform some platform specific bits to get the Ethernet hardware
+ setup. Specifically if a specific phy is used and does not start in
+ the correct mode a function needs to be supplied as part of the plf
+ to do the necessary initializations.
+*/
+#ifdef CYGPKG_DEVS_ETH_ARM_AT91
+#ifdef HAL_PLF_ETH_INIT
+ HAL_PLF_ETH_INIT();
+#endif
+#endif
+}
+
+// Calculate the baud value to be programmed into the serial port baud
+// rate generators. This function will determine what the clock speed
+// is that is driving the generator so it can be used in situations
+// when the application dynamically changes the clock speed.
+cyg_uint32
+hal_at91_us_baud(cyg_uint32 baud_rate)
+{
+ cyg_uint32 val, pll;
+ cyg_uint32 main_clock = 0;
+ cyg_uint32 baud_value = 0;
+
+ HAL_READ_UINT32((AT91_PMC+AT91_PMC_MCKR), val);
+ switch (val & 0x03) {
+ /* Slow clock */
+ case AT91_PMC_MCKR_SLOW_CLK:
+ main_clock = CYGNUM_HAL_ARM_AT91_SLOW_CLOCK;
+ break;
+
+ /* Main clock */
+ case AT91_PMC_MCKR_MAIN_CLK:
+ main_clock = CYGNUM_HAL_ARM_AT91_CLOCK_OSC_MAIN;
+ break;
+ /* PLL */
+ case AT91_PMC_MCKR_PLL_CLK:
+ HAL_READ_UINT32((AT91_PMC+AT91_PMC_PLLR), pll);
+ main_clock = CYGNUM_HAL_ARM_AT91_CLOCK_OSC_MAIN *
+ (((pll & 0x7FF0000) >> 16) + 1) / (pll & 0xFF);
+ break;
+ }
+
+ // Process prescale
+ val = (val & 0x1C) >> 2;
+ main_clock = main_clock >> val;
+
+ /* Define the baud rate divisor register, (round) */
+ baud_value = (main_clock/(8*baud_rate)+1)/2;
+
+ return baud_value;
+}
+
+//--------------------------------------------------------------------------
+// EOF at91sam7s_misc.c
diff --git a/ecos/packages/hal/arm/at91/at91sam7sek/current/ChangeLog b/ecos/packages/hal/arm/at91/at91sam7sek/current/ChangeLog
new file mode 100644
index 0000000..1209f54
--- /dev/null
+++ b/ecos/packages/hal/arm/at91/at91sam7sek/current/ChangeLog
@@ -0,0 +1,44 @@
+2009-07-03 Oliver Munz <munz@speag.ch>
+
+ * cdl/hal_arm_at91sam7sek.cdl: Support the at91sam7s512 part on this
+ platform.
+
+2007-10-16 Andrew Lunn <andrew.lunn@ascom.ch>
+
+ * src/at91sam7sek_misc.c (hal_at91_led): Fix off by one error on
+ GPIO lines for LEDs. Reported by Rasmus Stougaard
+ <rasmus.stougaard@gmail.com>
+
+2007-01-02 Uwe Kindler <uwe_kindler@web.de>
+
+ * cdl/hal_arm_at91sam7sek.cdl: Moved HAL_PLATFORM_XXX defines and
+ definition of platform header file (CYGBLD_HAL_PLATFORM_H) from
+ package CYGPKG_HAL_ARM_AT91SAM7 into board specific packages.
+
+2006-05-20 Andrew Lunn <andrew.lunn@ascom.ch>
+
+ * AT91SAM7X-EK development board package
+
+//===========================================================================
+// ####GPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 2006, 2007, 2009 Free Software Foundation, Inc.
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 2 or (at your option) any
+// later version.
+//
+// This program is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the
+// Free Software Foundation, Inc., 51 Franklin Street,
+// Fifth Floor, Boston, MA 02110-1301, USA.
+// -------------------------------------------
+// ####GPLCOPYRIGHTEND####
+//===========================================================================
diff --git a/ecos/packages/hal/arm/at91/at91sam7sek/current/cdl/hal_arm_at91sam7sek.cdl b/ecos/packages/hal/arm/at91/at91sam7sek/current/cdl/hal_arm_at91sam7sek.cdl
new file mode 100644
index 0000000..6c317ca
--- /dev/null
+++ b/ecos/packages/hal/arm/at91/at91sam7sek/current/cdl/hal_arm_at91sam7sek.cdl
@@ -0,0 +1,79 @@
+# ====================================================================
+#
+# hal_arm_at91_sam7sek.cdl
+#
+# ARM AT91 SAM7S EK development board package configuration data
+#
+# ====================================================================
+## ####ECOSGPLCOPYRIGHTBEGIN####
+## -------------------------------------------
+## This file is part of eCos, the Embedded Configurable Operating System.
+## Copyright (C) 2006, 2009 Free Software Foundation, Inc.
+##
+## eCos is free software; you can redistribute it and/or modify it under
+## the terms of the GNU General Public License as published by the Free
+## Software Foundation; either version 2 or (at your option) any later
+## version.
+##
+## eCos is distributed in the hope that it will be useful, but WITHOUT
+## ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+## FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+## for more details.
+##
+## You should have received a copy of the GNU General Public License
+## along with eCos; if not, write to the Free Software Foundation, Inc.,
+## 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+##
+## As a special exception, if other files instantiate templates or use
+## macros or inline functions from this file, or you compile this file
+## and link it with other works to produce a work based on this file,
+## this file does not by itself cause the resulting work to be covered by
+## the GNU General Public License. However the source code for this file
+## must still be made available in accordance with section (3) of the GNU
+## General Public License v2.
+##
+## This exception does not invalidate any other reasons why a work based
+## on this file might be covered by the GNU General Public License.
+## -------------------------------------------
+## ####ECOSGPLCOPYRIGHTEND####
+# ====================================================================
+######DESCRIPTIONBEGIN####
+#
+# Author(s): andrew lunn
+# Contributors:
+# Date: 2006-05-20
+#
+#####DESCRIPTIONEND####
+#
+# ====================================================================
+
+cdl_package CYGPKG_HAL_ARM_AT91SAM7SEK {
+ display "Atmel AT91SAM7S EK development board"
+ parent CYGPKG_HAL_ARM_AT91SAM7
+ define_header hal_arm_at91sam7sek.h
+ include_dir cyg/hal
+ hardware
+ description "
+ The AT91SAM7SEK HAL package provides the support needed to run
+ eCos on an Atmel AT91SAM7S-EK development board."
+
+ compile at91sam7sek_misc.c
+
+ requires { CYGHWR_HAL_ARM_AT91 == "AT91SAM7S" }
+ requires { CYGHWR_HAL_ARM_AT91SAM7 == "at91sam7s512" ||
+ CYGHWR_HAL_ARM_AT91SAM7 == "at91sam7s256" ||
+ CYGHWR_HAL_ARM_AT91SAM7 == "at91sam7s128" ||
+ CYGHWR_HAL_ARM_AT91SAM7 == "at91sam7s64" ||
+ CYGHWR_HAL_ARM_AT91SAM7 == "at91sam7s32" ||
+ CYGHWR_HAL_ARM_AT91SAM7 == "at91sam7s321" }
+
+ define_proc {
+ puts $::cdl_system_header "#define CYGBLD_HAL_PLATFORM_H <pkgconf/hal_arm_at91sam7sek.h>"
+ puts $::cdl_header "/***** proc output start *****/"
+ puts $::cdl_header "#include <pkgconf/hal_arm_at91sam7.h>"
+ puts $::cdl_header "#define HAL_PLATFORM_CPU \"ARM7TDMI\""
+ puts $::cdl_header "#define HAL_PLATFORM_BOARD \"Atmel (AT91SAM7S-EK)\""
+ puts $::cdl_header "#define HAL_PLATFORM_EXTRA \"\""
+ puts $::cdl_header "/****** proc output end ******/"
+ }
+}
diff --git a/ecos/packages/hal/arm/at91/at91sam7sek/current/src/at91sam7sek_misc.c b/ecos/packages/hal/arm/at91/at91sam7sek/current/src/at91sam7sek_misc.c
new file mode 100644
index 0000000..61f5ded
--- /dev/null
+++ b/ecos/packages/hal/arm/at91/at91sam7sek/current/src/at91sam7sek_misc.c
@@ -0,0 +1,79 @@
+/*==========================================================================
+//
+// at91sam7sek_misc.c
+//
+// HAL misc board support code for Atmel AT91sam7s EK board
+//
+//==========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 2006 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//==========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): andrew lunn
+// Contributors: Oliver Munz, Andrew Lunn
+// Date: 2006-06-20
+// Purpose: HAL board support
+// Description: Implementations of HAL board interfaces
+//
+//####DESCRIPTIONEND####
+//
+//========================================================================*/
+
+#include <pkgconf/system.h>
+#include <pkgconf/hal.h>
+
+#include <cyg/hal/hal_io.h> // IO macros
+
+// The development board has four LEDs
+void
+hal_at91_led (int val)
+{
+ HAL_ARM_AT91_GPIO_CFG_DIRECTION(AT91_GPIO_PA0, AT91_PIN_OUT);
+ HAL_ARM_AT91_GPIO_CFG_DIRECTION(AT91_GPIO_PA1, AT91_PIN_OUT);
+ HAL_ARM_AT91_GPIO_CFG_DIRECTION(AT91_GPIO_PA2, AT91_PIN_OUT);
+ HAL_ARM_AT91_GPIO_CFG_DIRECTION(AT91_GPIO_PA3, AT91_PIN_OUT);
+
+ HAL_ARM_AT91_GPIO_CFG_PULLUP(AT91_GPIO_PA0, AT91_PIN_PULLUP_DISABLE);
+ HAL_ARM_AT91_GPIO_CFG_PULLUP(AT91_GPIO_PA1, AT91_PIN_PULLUP_DISABLE);
+ HAL_ARM_AT91_GPIO_CFG_PULLUP(AT91_GPIO_PA2, AT91_PIN_PULLUP_DISABLE);
+ HAL_ARM_AT91_GPIO_CFG_PULLUP(AT91_GPIO_PA3, AT91_PIN_PULLUP_DISABLE);
+
+ // Set the bits. The logic is inverted
+ HAL_ARM_AT91_GPIO_PUT(AT91_GPIO_PA0, !(val & 1));
+ HAL_ARM_AT91_GPIO_PUT(AT91_GPIO_PA1, !(val & 2));
+ HAL_ARM_AT91_GPIO_PUT(AT91_GPIO_PA2, !(val & 4));
+ HAL_ARM_AT91_GPIO_PUT(AT91_GPIO_PA3, !(val & 8));
+}
+
+//--------------------------------------------------------------------------
+// EOF at91sam7sek_misc.c
diff --git a/ecos/packages/hal/arm/at91/at91sam7xek/current/ChangeLog b/ecos/packages/hal/arm/at91/at91sam7xek/current/ChangeLog
new file mode 100644
index 0000000..da2673d
--- /dev/null
+++ b/ecos/packages/hal/arm/at91/at91sam7xek/current/ChangeLog
@@ -0,0 +1,46 @@
+2008-04-30 John Eigelaar <jeigelaar@mweb.co.za>
+
+ * cdl/hal_arm_at91sam7xek.cdl: Added configuration options in
+ order to support the at91sam7x512
+ * src/at91sam7xek_misc.c: Fix a typo in the phy initialisation code.
+ Pin 18 was being setup to drive the powerdown pin of the phy but
+ pin 19 was driven low instead.
+
+2007-01-17 John Eigelaar <jeigelaar@mweb.co.za>
+
+ * Added hal_plf_eth_init() in order to initialise the Davicom
+ 9161A PHY properly on the Evaluation board
+
+2007-01-02 Uwe Kindler <uwe_kindler@web.de>
+
+ * cdl/hal_arm_at91sam7s.cdl Moved HAL_PLATFORM_XXX defines and
+ definition of platform header file (CYGBLD_HAL_PLATFORM_H) from
+ package CYGPKG_HAL_ARM_AT91SAM7 into board specific packages.
+
+2006-05-20 Andrew Lunn <andrew.lunn@ascom.ch>
+
+ * AT91SAM7X-EK development board package
+
+//===========================================================================
+// ####GPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 2006 Free Software Foundation, Inc.
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 2 or (at your option) any
+// later version.
+//
+// This program is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the
+// Free Software Foundation, Inc., 51 Franklin Street,
+// Fifth Floor, Boston, MA 02110-1301, USA.
+// -------------------------------------------
+// ####GPLCOPYRIGHTEND####
+//===========================================================================
diff --git a/ecos/packages/hal/arm/at91/at91sam7xek/current/cdl/hal_arm_at91sam7xek.cdl b/ecos/packages/hal/arm/at91/at91sam7xek/current/cdl/hal_arm_at91sam7xek.cdl
new file mode 100644
index 0000000..2d69c9e
--- /dev/null
+++ b/ecos/packages/hal/arm/at91/at91sam7xek/current/cdl/hal_arm_at91sam7xek.cdl
@@ -0,0 +1,79 @@
+# ====================================================================
+#
+# hal_arm_at91_sam7xek.cdl
+#
+# ARM AT91 SAM7X EK development board package configuration data
+#
+# ====================================================================
+## ####ECOSGPLCOPYRIGHTBEGIN####
+## -------------------------------------------
+## This file is part of eCos, the Embedded Configurable Operating System.
+## Copyright (C) 2006 Free Software Foundation, Inc.
+##
+## eCos is free software; you can redistribute it and/or modify it under
+## the terms of the GNU General Public License as published by the Free
+## Software Foundation; either version 2 or (at your option) any later
+## version.
+##
+## eCos is distributed in the hope that it will be useful, but WITHOUT
+## ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+## FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+## for more details.
+##
+## You should have received a copy of the GNU General Public License
+## along with eCos; if not, write to the Free Software Foundation, Inc.,
+## 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+##
+## As a special exception, if other files instantiate templates or use
+## macros or inline functions from this file, or you compile this file
+## and link it with other works to produce a work based on this file,
+## this file does not by itself cause the resulting work to be covered by
+## the GNU General Public License. However the source code for this file
+## must still be made available in accordance with section (3) of the GNU
+## General Public License v2.
+##
+## This exception does not invalidate any other reasons why a work based
+## on this file might be covered by the GNU General Public License.
+## -------------------------------------------
+## ####ECOSGPLCOPYRIGHTEND####
+# ====================================================================
+######DESCRIPTIONBEGIN####
+#
+# Author(s): andrew lunn
+# Contributors:
+# Date: 2006-05-20
+#
+#####DESCRIPTIONEND####
+#
+# ====================================================================
+
+cdl_package CYGPKG_HAL_ARM_AT91SAM7XEK {
+ display "Atmel AT91SAM7X EK development board"
+ parent CYGPKG_HAL_ARM_AT91SAM7
+ define_header hal_arm_at91sam7xek.h
+ include_dir cyg/hal
+ hardware
+ description "
+ The AT91SAM7XEK HAL package provides the support needed to run
+ eCos on an Atmel AT91SAM7X-EK development board."
+
+ compile at91sam7xek_misc.c
+
+ requires { CYGHWR_HAL_ARM_AT91 == "AT91SAM7S" }
+ requires { CYGHWR_HAL_ARM_AT91SAM7 == "at91sam7x256" ||
+ CYGHWR_HAL_ARM_AT91SAM7 == "at91sam7x128" ||
+ CYGHWR_HAL_ARM_AT91SAM7 == "at91sam7x512" }
+
+ requires { is_active(CYGPKG_DEVS_ETH_PHY) implies
+ (1 == CYGHWR_DEVS_ETH_PHY_DM9161A) }
+
+ define_proc {
+ puts $::cdl_system_header "#define CYGBLD_HAL_PLATFORM_H <pkgconf/hal_arm_at91sam7xek.h>"
+ puts $::cdl_header "/***** proc output start *****/"
+ puts $::cdl_header "#include <pkgconf/hal_arm_at91sam7.h>"
+ puts $::cdl_header "#define HAL_PLATFORM_CPU \"ARM7TDMI\""
+ puts $::cdl_header "#define HAL_PLATFORM_BOARD \"Atmel (AT91SAM7X-EK)\""
+ puts $::cdl_header "#define HAL_PLATFORM_EXTRA \"\""
+ puts $::cdl_header "/****** proc output end ******/"
+ }
+}
diff --git a/ecos/packages/hal/arm/at91/at91sam7xek/current/src/at91sam7xek_misc.c b/ecos/packages/hal/arm/at91/at91sam7xek/current/src/at91sam7xek_misc.c
new file mode 100644
index 0000000..e71f030
--- /dev/null
+++ b/ecos/packages/hal/arm/at91/at91sam7xek/current/src/at91sam7xek_misc.c
@@ -0,0 +1,115 @@
+/*==========================================================================
+//
+// at91sam7xek_misc.c
+//
+// HAL misc board support code for Atmel AT91SAM7X EK board
+//
+//==========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 2006 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//==========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): andrew lunn
+// Contributors: Andrew Lunn, John Eigelaar
+// Date: 2006-06-20
+// Purpose: HAL board support
+// Description: Implementations of HAL board interfaces
+//
+//####DESCRIPTIONEND####
+//
+//========================================================================*/
+
+#include <pkgconf/system.h>
+#include <pkgconf/hal.h>
+
+#include <cyg/hal/hal_io.h> // IO macros
+
+// The development board has four LEDs
+void
+hal_at91_led (int val)
+{
+ HAL_ARM_AT91_GPIO_CFG_DIRECTION(AT91_GPIO_PB19, AT91_PIN_OUT);
+ HAL_ARM_AT91_GPIO_CFG_DIRECTION(AT91_GPIO_PB20, AT91_PIN_OUT);
+ HAL_ARM_AT91_GPIO_CFG_DIRECTION(AT91_GPIO_PB21, AT91_PIN_OUT);
+ HAL_ARM_AT91_GPIO_CFG_DIRECTION(AT91_GPIO_PB22, AT91_PIN_OUT);
+
+ HAL_ARM_AT91_GPIO_CFG_PULLUP(AT91_GPIO_PB19, AT91_PIN_PULLUP_DISABLE);
+ HAL_ARM_AT91_GPIO_CFG_PULLUP(AT91_GPIO_PB20, AT91_PIN_PULLUP_DISABLE);
+ HAL_ARM_AT91_GPIO_CFG_PULLUP(AT91_GPIO_PB21, AT91_PIN_PULLUP_DISABLE);
+ HAL_ARM_AT91_GPIO_CFG_PULLUP(AT91_GPIO_PB22, AT91_PIN_PULLUP_DISABLE);
+
+ // Set the bits. The logic is inverted
+ HAL_ARM_AT91_GPIO_PUT(AT91_GPIO_PB19, !(val & 1));
+ HAL_ARM_AT91_GPIO_PUT(AT91_GPIO_PB20, !(val & 2));
+ HAL_ARM_AT91_GPIO_PUT(AT91_GPIO_PB21, !(val & 4));
+ HAL_ARM_AT91_GPIO_PUT(AT91_GPIO_PB22, !(val & 8));
+}
+
+void hal_plf_eth_init(void)
+{
+ cyg_uint32 stat;
+
+ /* Enable the PIOB Clock */
+ HAL_WRITE_UINT32(AT91_PMC + AT91_PMC_PCER, AT91_PMC_PCER_PIOB);
+
+ /* RXDV / Testmode select */
+ HAL_ARM_AT91_GPIO_CFG_DIRECTION(AT91_GPIO_PB15, AT91_PIN_IN);
+ HAL_ARM_AT91_GPIO_CFG_PULLUP(AT91_GPIO_PB15, AT91_PIN_PULLUP_DISABLE);
+
+ //TODO: The errata reports that the RMII mode for the SAM7X does not work.
+ // It would probably still be a good idea to use the RMII/MII CDL
+ // configuration to select the appropriate mode here
+ /* COL / !MII select */
+ HAL_ARM_AT91_GPIO_CFG_DIRECTION(AT91_GPIO_PB16, AT91_PIN_IN);
+ HAL_ARM_AT91_GPIO_CFG_PULLUP(AT91_GPIO_PB16, AT91_PIN_PULLUP_DISABLE);
+
+ /* TXCLK / ISOLATE */
+ HAL_ARM_AT91_GPIO_CFG_DIRECTION(AT91_GPIO_PB0, AT91_PIN_IN);
+ HAL_ARM_AT91_GPIO_CFG_PULLUP(AT91_GPIO_PB0, AT91_PIN_PULLUP_DISABLE);
+
+ /* Power Down Mode */
+ HAL_ARM_AT91_GPIO_CFG_DIRECTION(AT91_GPIO_PB18, AT91_PIN_OUT);
+ HAL_ARM_AT91_GPIO_PUT(AT91_GPIO_PB18,0);
+
+ /* All the lines setup correctly. Now do a external reset and let the phy
+ start up in the correct mode */
+ HAL_WRITE_UINT32(AT91_RST+AT91_RST_RMR,AT91_RST_RMR_KEY|(1<<0x8));
+ HAL_WRITE_UINT32(AT91_RST+AT91_RST_RCR,AT91_RST_RCR_KEY|AT91_RST_RCR_EXTRST);
+
+ do {
+ HAL_READ_UINT32(AT91_RST+AT91_RST_RSR,stat);
+ } while (!(stat&AT91_RST_RSR_NRST_SET));
+}
+
+//--------------------------------------------------------------------------
+// EOF at91sam7sek_misc.c
diff --git a/ecos/packages/hal/arm/at91/eb40/current/ChangeLog b/ecos/packages/hal/arm/at91/eb40/current/ChangeLog
new file mode 100644
index 0000000..6a665ef
--- /dev/null
+++ b/ecos/packages/hal/arm/at91/eb40/current/ChangeLog
@@ -0,0 +1,97 @@
+2009-01-31 Bart Veer <bartv@ecoscentric.com>
+
+ * cdl/hal_arm_at91_eb40.cdl: update compiler flags for gcc 4.x
+
+2009-01-24 Bart Veer <bartv@ecoscentric.com>
+
+ * cdl/hal_arm_at91_eb40.cdl: switch from arm-elf-gcc to
+ arm-eabi-gcc. Remove -mno-short-load-words.
+
+2005-03-27 Andrew Lunn <andrew.lunn@ascom.ch>
+
+ * src/eb40_misc.c: Include cyg/hal/hal_io.h so we have the
+ HAL_WRITE_UINT32 macro.
+
+2004-09-16 Andrea Michelotti <amichelotti@atmel.com>
+
+ * include/hal_platform_ints.h: When CYGHWR_HAL_ARM_AT91_FIQ is defined
+ CYGNUM_HAL_ISR_MIN is equal to zero.
+
+2004-08-30 Thomas Koeller <thomas.koeller@baslerweb.com>
+
+ * cdl/hal_arm_at91_eb42.cdl: Undid last change. These
+ options are not really common among all platforms.
+
+2004-02-12 Jani Monoses <jani@iv.ro>
+
+ * cdl/hal_arm_at91_eb40.cdl: Move configuration options
+ common to all AT91 EB boards up to AT91 variant .cdl.
+
+2003-12-16 Gary Thomas <gary@mlbassoc.com>
+
+ * misc/redboot_ROMRAM.ecm:
+ CYGNUM_FLASH_WORKSPACE_SIZE is no longer used.
+
+2003-09-30 Jani Monoses <jani@iv.ro>
+
+ * cdl/hal_arm_at91_eb40.cdl: Interfaces are already implemented by
+ AT91 variant .cdl, do not duplicate them here.
+
+2003-08-05 Thomas Koeller <thomas.koeller@baslerweb.com>
+
+ * misc/redboot_*.ecm: Updated to use the new eb40 flash drive.
+
+2003-07-15 Jonathan Larmour <jifl@eCosCentric.com>
+
+ * include/hal_platform_ints.h (HAL_PLATFORM_RESET): Actually use
+ hal_at91_reset_cpu().
+
+2003-05-12 Nick Garnett <nickg@balti.calivar.com>
+
+ * src/eb40_misc.c: Changed set_leds() to hal_at91_set_leds() to
+ and _at91_led() to hal_at91_led() avoid namespace pollution.
+
+ * cdl/hal_arm_at91_eb40.cdl: Added requirement for
+ CYGHWR_HAL_ARM_AT91 == "R40807" to customize the variant HAL to
+ the device on this board.
+
+2003-05-08 Nick Garnett <nickg@balti.calivar.com>
+ * cdl/hal_arm_at91_eb40.cdl:
+ * include/plf_io.h:
+ * include/hal_platform_ints.h:
+ * include/hal_platform_setup.h:
+ * include/pkgconf/mlt_arm_at91_eb40_ram.mlt:
+ * include/pkgconf/mlt_arm_at91_eb40_ram.ldi:
+ * include/pkgconf/mlt_arm_at91_eb40_ram.h:
+ * include/pkgconf/mlt_arm_at91_eb40_rom.mlt:
+ * include/pkgconf/mlt_arm_at91_eb40_rom.ldi:
+ * include/pkgconf/mlt_arm_at91_eb40_rom.h:
+ * include/pkgconf/mlt_arm_at91_eb40_romram.mlt:
+ * include/pkgconf/mlt_arm_at91_eb40_romram.ldi:
+ * include/pkgconf/mlt_arm_at91_eb40_romram.h:
+ * src/eb40_misc.c:
+ Atmel EB40 HAL imported from Thomas Koeller's patch.
+
+//===========================================================================
+// ####GPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 2 or (at your option) any
+// later version.
+//
+// This program is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the
+// Free Software Foundation, Inc., 51 Franklin Street,
+// Fifth Floor, Boston, MA 02110-1301, USA.
+// -------------------------------------------
+// ####GPLCOPYRIGHTEND####
+//===========================================================================
diff --git a/ecos/packages/hal/arm/at91/eb40/current/cdl/hal_arm_at91_eb40.cdl b/ecos/packages/hal/arm/at91/eb40/current/cdl/hal_arm_at91_eb40.cdl
new file mode 100644
index 0000000..ca814be
--- /dev/null
+++ b/ecos/packages/hal/arm/at91/eb40/current/cdl/hal_arm_at91_eb40.cdl
@@ -0,0 +1,301 @@
+# ====================================================================
+#
+# hal_arm_at91_eb40.cdl
+#
+# ARM AT91 EB40 HAL package configuration data
+#
+# ====================================================================
+## ####ECOSGPLCOPYRIGHTBEGIN####
+## -------------------------------------------
+## This file is part of eCos, the Embedded Configurable Operating System.
+## Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
+##
+## eCos is free software; you can redistribute it and/or modify it under
+## the terms of the GNU General Public License as published by the Free
+## Software Foundation; either version 2 or (at your option) any later
+## version.
+##
+## eCos is distributed in the hope that it will be useful, but WITHOUT
+## ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+## FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+## for more details.
+##
+## You should have received a copy of the GNU General Public License
+## along with eCos; if not, write to the Free Software Foundation, Inc.,
+## 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+##
+## As a special exception, if other files instantiate templates or use
+## macros or inline functions from this file, or you compile this file
+## and link it with other works to produce a work based on this file,
+## this file does not by itself cause the resulting work to be covered by
+## the GNU General Public License. However the source code for this file
+## must still be made available in accordance with section (3) of the GNU
+## General Public License v2.
+##
+## This exception does not invalidate any other reasons why a work based
+## on this file might be covered by the GNU General Public License.
+## -------------------------------------------
+## ####ECOSGPLCOPYRIGHTEND####
+# ====================================================================
+######DESCRIPTIONBEGIN####
+#
+# Author(s): gthomas
+# Contributors: gthomas, tkoeller, nickg
+# Date: 2001-07-12
+#
+#####DESCRIPTIONEND####
+#
+# ====================================================================
+
+cdl_package CYGPKG_HAL_ARM_AT91_EB40 {
+ display "Atmel EB40 eval board HAL"
+ parent CYGPKG_HAL_ARM_AT91
+ define_header hal_arm_at91_eb40.h
+ include_dir cyg/hal
+ hardware
+ description "
+ The EB40 HAL package provides the support needed to run
+ eCos on an Atmel EB40 eval board."
+
+ compile eb40_misc.c
+
+ requires { CYGHWR_HAL_ARM_AT91 == "R40807" }
+
+ 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_at91.h>"
+ puts $::cdl_system_header "#define CYGBLD_HAL_PLATFORM_H <pkgconf/hal_arm_at91_eb40.h>"
+ puts $::cdl_system_header "#define CYGBLD_HAL_ARM_VAR_IO_H"
+ puts $::cdl_header "#define HAL_PLATFORM_CPU \"ARM7TDMI\""
+ puts $::cdl_header "#define HAL_PLATFORM_BOARD \"Atmel AT91/EB40\""
+ puts $::cdl_header "#define HAL_PLATFORM_EXTRA \"\""
+ }
+
+ 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
+ default_value 1000000000
+ }
+ cdl_option CYGNUM_HAL_RTC_DENOMINATOR {
+ display "Real-time clock denominator"
+ flavor data
+ default_value 100
+ }
+ cdl_option CYGNUM_HAL_RTC_PERIOD {
+ display "Real-time clock period"
+ flavor data
+ default_value ((CYGNUM_HAL_ARM_AT91_CLOCK_SPEED/32) / CYGNUM_HAL_RTC_DENOMINATOR)
+ }
+ }
+
+ cdl_component CYG_HAL_STARTUP {
+ display "Startup type"
+ flavor data
+ default_value {"RAM"}
+ legal_values {"RAM" "ROM" "ROMRAM"}
+ no_define
+ define -file system.h CYG_HAL_STARTUP
+ description "
+ When targetting the AT91 EBxx 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 onboard
+ debug software such as Angel or eCos GDB stubs. Select 'rom'
+ when building a stand-alone application which will be put
+ into ROM. Using ROMRAM will allow the program to exist in
+ ROM, but be copied to RAM during startup."
+ }
+
+ # Real-time clock/counter specifics
+ cdl_option CYGNUM_HAL_ARM_AT91_CLOCK_SPEED {
+ display "CPU clock speed"
+ flavor data
+ default_value 32768000
+ }
+
+ 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"
+ active_if CYGPRI_HAL_VIRTUAL_VECTOR_DEBUG_CHANNEL_CONFIGURABLE
+ flavor data
+ legal_values 0 to CYGNUM_HAL_VIRTUAL_VECTOR_COMM_CHANNELS-1
+ default_value 0
+ description "
+ The AT91 EBxx 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"
+ active_if CYGPRI_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_CONFIGURABLE
+ flavor data
+ legal_values 0 to CYGNUM_HAL_VIRTUAL_VECTOR_COMM_CHANNELS-1
+ default_value 0
+ description "
+ The AT91 EBxx board has two serial ports. This option
+ chooses which port will be used for diagnostic output."
+ }
+
+ cdl_option CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_BAUD {
+ display "Diagnostic serial port baud rate"
+ flavor data
+ legal_values 9600 19200 38400 57600 115200
+ default_value 38400
+ description "
+ This option selects the baud rate used for the diagnostic port."
+ }
+
+ cdl_option CYGNUM_HAL_VIRTUAL_VECTOR_DEBUG_CHANNEL_BAUD {
+ display "GDB serial port baud rate"
+ flavor data
+ legal_values 9600 19200 38400 57600 115200
+ default_value 38400
+ description "
+ This option controls the baud rate used for the GDB connection."
+ }
+
+
+ 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" || CYG_HAL_STARTUP == "ROMRAM" }
+ 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 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_REDBOOT_HAL_OPTIONS {
+ display "Redboot HAL options"
+ flavor none
+ no_define
+ parent CYGPKG_REDBOOT
+ active_if CYGPKG_REDBOOT
+ description "
+ This option lists the target's requirements for a valid Redboot
+ configuration."
+
+ 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 $< $@
+ }
+
+ }
+ }
+
+ 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 { "arm-eabi"}
+ 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 { CYGBLD_GLOBAL_WARNFLAGS . CYGBLD_ARCH_CFLAGS .
+ "-mcpu=arm7tdmi -g -O2 -ffunction-sections -fdata-sections -fno-rtti -fno-exceptions " }
+ 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 { CYGBLD_ARCH_LDFLAGS . "-mcpu=arm7tdmi -Wl,--gc-sections -Wl,-static -g -nostdlib" }
+ description "
+ This option controls the global linker flags. Individual
+ packages may define options which override these global flags."
+ }
+ }
+
+ cdl_component CYGHWR_MEMORY_LAYOUT {
+ display "Memory layout"
+ flavor data
+ no_define
+ calculated { (CYG_HAL_STARTUP == "RAM") ? "arm_at91_eb40_ram" :
+ (CYG_HAL_STARTUP == "ROMRAM") ? "arm_at91_eb40_romram" :
+ "arm_at91_eb40_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_at91_eb40_ram.ldi>" :
+ (CYG_HAL_STARTUP == "ROMRAM") ? "<pkgconf/mlt_arm_at91_eb40_romram.ldi>" :
+ "<pkgconf/mlt_arm_at91_eb40_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_at91_eb40_ram.h>" :
+ (CYG_HAL_STARTUP == "ROMRAM") ? "<pkgconf/mlt_arm_at91_eb40_romram.h>" :
+ "<pkgconf/mlt_arm_at91_eb40_rom.h>" }
+ }
+ }
+
+}
diff --git a/ecos/packages/hal/arm/at91/eb40/current/include/hal_platform_ints.h b/ecos/packages/hal/arm/at91/eb40/current/include/hal_platform_ints.h
new file mode 100644
index 0000000..3076a7a
--- /dev/null
+++ b/ecos/packages/hal/arm/at91/eb40/current/include/hal_platform_ints.h
@@ -0,0 +1,91 @@
+#ifndef CYGONCE_HAL_PLATFORM_INTS_H
+#define CYGONCE_HAL_PLATFORM_INTS_H
+//==========================================================================
+//
+// hal_platform_ints.h
+//
+// HAL Interrupt and clock assignments for AT91/EB40
+//
+//==========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//==========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): gthomas
+// Contributors: gthomas
+// Date: 2001-07-12
+// Purpose: Define Interrupt support
+// Description: The interrupt specifics for the AT91/EB40 board/platform are
+// defined here.
+//
+// Usage: #include <cyg/hal/hal_platform_ints.h>
+// ...
+//
+//
+//####DESCRIPTIONEND####
+//
+//==========================================================================
+
+#define CYGNUM_HAL_INTERRUPT_USART0 2
+#define CYGNUM_HAL_INTERRUPT_USART1 3
+#define CYGNUM_HAL_INTERRUPT_TIMER0 4
+#define CYGNUM_HAL_INTERRUPT_TIMER1 5
+#define CYGNUM_HAL_INTERRUPT_TIMER2 6
+#define CYGNUM_HAL_INTERRUPT_WATCHDOG 7
+#define CYGNUM_HAL_INTERRUPT_PIO 8
+#define CYGNUM_HAL_INTERRUPT_EXT0 16
+#define CYGNUM_HAL_INTERRUPT_EXT1 17
+#define CYGNUM_HAL_INTERRUPT_EXT2 18
+
+#ifdef CYGHWR_HAL_ARM_AT91_FIQ
+#define CYGNUM_HAL_ISR_MIN 0
+#else
+#define CYGNUM_HAL_ISR_MIN 2
+#endif
+
+#define CYGNUM_HAL_ISR_MAX 18
+// Note: extra slots (0,1) to avoid messing with vector translation
+#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
+
+
+//----------------------------------------------------------------------------
+// Reset.
+__externC void hal_at91_reset_cpu(void);
+#define HAL_PLATFORM_RESET() hal_at91_reset_cpu()
+
+#define HAL_PLATFORM_RESET_ENTRY 0x01010000
+
+#endif // CYGONCE_HAL_PLATFORM_INTS_H
diff --git a/ecos/packages/hal/arm/at91/eb40/current/include/hal_platform_setup.h b/ecos/packages/hal/arm/at91/eb40/current/include/hal_platform_setup.h
new file mode 100644
index 0000000..e2392fc
--- /dev/null
+++ b/ecos/packages/hal/arm/at91/eb40/current/include/hal_platform_setup.h
@@ -0,0 +1,121 @@
+#ifndef CYGONCE_HAL_PLATFORM_SETUP_H
+#define CYGONCE_HAL_PLATFORM_SETUP_H
+
+/*=============================================================================
+//
+// hal_platform_setup.h
+//
+// Platform specific support for HAL (assembly code)
+//
+//=============================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): gthomas
+// Contributors:gthomas
+// Date: 2001-07-12
+// Purpose: AT91/EB40 platform specific support routines
+// Description:
+// Usage: #include <cyg/hal/hal_platform_setup.h>
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================*/
+
+#include <cyg/hal/var_io.h>
+
+#if defined(CYG_HAL_STARTUP_ROM) || defined(CYG_HAL_STARTUP_ROMRAM)
+
+ .macro _setup
+ ldr r10,=_InitMemory // Initialize memory controller
+ movs r0,pc,lsr #20 // If ROM startup, PC < 0x100000
+ moveq r10,r10,lsl #12 // mask address to low 20 bits
+ moveq r10,r10,lsr #12
+ ldmia r10!,{r0-r9,r11-r12} // Table of initialization constants
+#if defined(CYG_HAL_STARTUP_ROMRAM)
+ ldr r10,=0x0000FFFF
+ and r12,r12,r10
+ ldr r10,=0x01010000
+ orr r12,r12,r10
+#endif
+ stmia r11!,{r0-r9} // Write to controller
+ mov pc,r12 // Change address space, break pipeline
+_InitMemory:
+ .long 0x01002535 // 0x01000000, 16MB, 2 cycles after transfer, 16-bit, 6 wait states
+ .long 0x02002121 // 0x02000000, 16MB, 0 cycles after transfer, 16-bit, 1 wait state
+ .long 0x20000000 // unused
+ .long 0x30000000 // unused
+ .long 0x40000000 // unused
+ .long 0x50000000 // unused
+ .long 0x60000000 // unused
+ .long 0x70000000 // unused
+ .long 0x00000001 // REMAP command
+ .long 0x00000006 // 7 memory regions, standard read
+ .long AT91_EBI // External Bus Interface address
+ .long 10f // address where to jump
+10:
+
+#if defined(CYG_HAL_STARTUP_ROMRAM)
+ ldr r0,=0x01010000 // Relocate FLASH/ROM to on-chip RAM
+ ldr r1,=0x02000000 // RAM base & length
+ ldr r2,=0x02010000
+20: ldr r3,[r0],#4
+ str r3,[r1],#4
+ cmp r1,r2
+ bne 20b
+ ldr r0,=30f
+ mov pc,r0
+30:
+#endif
+
+ ldr r0,=AT91_PS // Power saving interface
+ ldr r1,=0xFFFFFFFF // Enable all peripheral [clocks]
+ str r1,[r0,#AT91_PS_PCER]
+ ldr r0,=AT91_PIO // Disable PIO (so peripherals can use bits)
+ ldr r1,=0x0070FE49 // UART, FIQ, EINT, Timer clocks
+ str r1,[r0,#AT91_PIO_PDR]
+ ldr r1,=0x000001B6 // LEDs
+ str r1,[r0,#AT91_PIO_OER]
+ str r1,[r0,#AT91_PIO_SODR]
+ .endm
+
+#define CYGSEM_HAL_ROM_RESET_USES_JUMP
+#define PLATFORM_SETUP1 _setup
+#else
+#define PLATFORM_SETUP1
+#endif
+
+//-----------------------------------------------------------------------------
+// end of hal_platform_setup.h
+#endif // CYGONCE_HAL_PLATFORM_SETUP_H
diff --git a/ecos/packages/hal/arm/at91/eb40/current/include/pkgconf/mlt_arm_at91_eb40_ram.h b/ecos/packages/hal/arm/at91/eb40/current/include/pkgconf/mlt_arm_at91_eb40_ram.h
new file mode 100644
index 0000000..c641278
--- /dev/null
+++ b/ecos/packages/hal/arm/at91/eb40/current/include/pkgconf/mlt_arm_at91_eb40_ram.h
@@ -0,0 +1,20 @@
+// eCos memory layout - Mon Jul 23 11:49:04 2001
+
+// This is a generated file - do not edit
+
+#ifndef __ASSEMBLER__
+#include <cyg/infra/cyg_type.h>
+#include <stddef.h>
+
+#endif
+#define CYGMEM_REGION_sram (0)
+#define CYGMEM_REGION_sram_SIZE (0x1000)
+#define CYGMEM_REGION_sram_ATTR (CYGMEM_REGION_ATTR_R | CYGMEM_REGION_ATTR_W)
+#define CYGMEM_REGION_ram (0x2000000)
+#define CYGMEM_REGION_ram_SIZE (0x80000)
+#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 (0x2080000 - (size_t) CYG_LABEL_NAME (__heap1))
diff --git a/ecos/packages/hal/arm/at91/eb40/current/include/pkgconf/mlt_arm_at91_eb40_ram.ldi b/ecos/packages/hal/arm/at91/eb40/current/include/pkgconf/mlt_arm_at91_eb40_ram.ldi
new file mode 100644
index 0000000..38f507b
--- /dev/null
+++ b/ecos/packages/hal/arm/at91/eb40/current/include/pkgconf/mlt_arm_at91_eb40_ram.ldi
@@ -0,0 +1,28 @@
+// eCos memory layout - Mon Jul 23 11:49:04 2001
+
+// This is a generated file - do not edit
+
+#include <cyg/infra/cyg_type.inc>
+
+MEMORY
+{
+ sram : ORIGIN = 0, LENGTH = 0x1000
+ ram : ORIGIN = 0x02000000, LENGTH = 0x80000
+}
+
+SECTIONS
+{
+ SECTIONS_BEGIN
+ SECTION_fixed_vectors (sram, 0x20, LMA_EQ_VMA)
+ SECTION_rom_vectors (ram, 0x2020000, 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)
+ CYG_LABEL_DEFN(__heap1) = ALIGN (0x8);
+ SECTIONS_END
+}
diff --git a/ecos/packages/hal/arm/at91/eb40/current/include/pkgconf/mlt_arm_at91_eb40_ram.mlt b/ecos/packages/hal/arm/at91/eb40/current/include/pkgconf/mlt_arm_at91_eb40_ram.mlt
new file mode 100644
index 0000000..ccb439d
--- /dev/null
+++ b/ecos/packages/hal/arm/at91/eb40/current/include/pkgconf/mlt_arm_at91_eb40_ram.mlt
@@ -0,0 +1,14 @@
+version 0
+region sram 0 1000 0 !On-chip SRAM
+region ram 2000000 80000 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 2020000 2020000 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 1 0 1 heap1 heap1 !
+section heap1 0 8 0 0 0 0 0 0 !
diff --git a/ecos/packages/hal/arm/at91/eb40/current/include/pkgconf/mlt_arm_at91_eb40_rom.h b/ecos/packages/hal/arm/at91/eb40/current/include/pkgconf/mlt_arm_at91_eb40_rom.h
new file mode 100644
index 0000000..b79622f
--- /dev/null
+++ b/ecos/packages/hal/arm/at91/eb40/current/include/pkgconf/mlt_arm_at91_eb40_rom.h
@@ -0,0 +1,25 @@
+// eCos memory layout - Wed Apr 11 13:49:55 2001
+
+// This is a generated file - do not edit
+
+#ifndef __ASSEMBLER__
+#include <cyg/infra/cyg_type.h>
+#include <stddef.h>
+
+#endif
+#define CYGMEM_REGION_ram (0x02000000)
+#define CYGMEM_REGION_ram_SIZE (0x80000)
+#define CYGMEM_REGION_ram_ATTR (CYGMEM_REGION_ATTR_R | CYGMEM_REGION_ATTR_W)
+#define CYGMEM_REGION_rom (0x01000000)
+#define CYGMEM_REGION_rom_SIZE (0x20000)
+#define CYGMEM_REGION_rom_ATTR (CYGMEM_REGION_ATTR_R)
+#ifndef __ASSEMBLER__
+extern char CYG_LABEL_NAME (__reserved_bootmon) [];
+#endif
+#define CYGMEM_SECTION_reserved_bootmon (CYG_LABEL_NAME (__reserved_bootmon))
+#define CYGMEM_SECTION_reserved_bootmon_SIZE (0x10000)
+#ifndef __ASSEMBLER__
+extern char CYG_LABEL_NAME (__heap1) [];
+#endif
+#define CYGMEM_SECTION_heap1 (CYG_LABEL_NAME (__heap1))
+#define CYGMEM_SECTION_heap1_SIZE (0x02080000 - (size_t) CYG_LABEL_NAME (__heap1))
diff --git a/ecos/packages/hal/arm/at91/eb40/current/include/pkgconf/mlt_arm_at91_eb40_rom.ldi b/ecos/packages/hal/arm/at91/eb40/current/include/pkgconf/mlt_arm_at91_eb40_rom.ldi
new file mode 100644
index 0000000..125c716
--- /dev/null
+++ b/ecos/packages/hal/arm/at91/eb40/current/include/pkgconf/mlt_arm_at91_eb40_rom.ldi
@@ -0,0 +1,30 @@
+// eCos memory layout - Wed Apr 11 13:49:55 2001
+
+// This is a generated file - do not edit
+
+#include <cyg/infra/cyg_type.inc>
+
+MEMORY
+{
+ sram : ORIGIN = 0x00000000, LENGTH = 0x2000
+ ram : ORIGIN = 0x02000000, LENGTH = 0x80000
+ rom : ORIGIN = 0x01000000, LENGTH = 0x20000
+}
+
+SECTIONS
+{
+ SECTIONS_BEGIN
+ CYG_LABEL_DEFN(__reserved_bootmon) = 0x01000000; . = CYG_LABEL_DEFN(__reserved_bootmon) + 0x10000;
+ SECTION_rom_vectors (rom, ALIGN (0x8), LMA_EQ_VMA)
+ SECTION_text (rom, ALIGN (0x1), 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 (sram, 0x20, LMA_EQ_VMA)
+ SECTION_data (ram, 0x02000000, FOLLOWING (.gcc_except_table))
+ SECTION_bss (ram, ALIGN (0x4), LMA_EQ_VMA)
+ CYG_LABEL_DEFN(__heap1) = ALIGN (0x8);
+ SECTIONS_END
+}
diff --git a/ecos/packages/hal/arm/at91/eb40/current/include/pkgconf/mlt_arm_at91_eb40_rom.mlt b/ecos/packages/hal/arm/at91/eb40/current/include/pkgconf/mlt_arm_at91_eb40_rom.mlt
new file mode 100644
index 0000000..918df1c
--- /dev/null
+++ b/ecos/packages/hal/arm/at91/eb40/current/include/pkgconf/mlt_arm_at91_eb40_rom.mlt
@@ -0,0 +1,16 @@
+version 0
+region sram 0 80000 00100000 !
+region ram 0 80000 00100000 !
+region rom 01000000 20000 1 !
+section fixed_vectors 0 1 0 1 1 0 1 0 20 20 !
+section data 0 1 1 1 1 1 0 0 00100000 bss !
+section bss 0 4 0 1 0 1 0 1 heap1 heap1 !
+section heap1 0 8 0 0 0 0 0 0 !
+section reserved_bootmon 10000 1 0 0 1 1 1 1 01000000 01000000 rom_vectors rom_vectors !
+section rom_vectors 0 8 0 1 0 1 0 1 text text !
+section text 0 1 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 !
diff --git a/ecos/packages/hal/arm/at91/eb40/current/include/pkgconf/mlt_arm_at91_eb40_romram.h b/ecos/packages/hal/arm/at91/eb40/current/include/pkgconf/mlt_arm_at91_eb40_romram.h
new file mode 100644
index 0000000..ca337dc
--- /dev/null
+++ b/ecos/packages/hal/arm/at91/eb40/current/include/pkgconf/mlt_arm_at91_eb40_romram.h
@@ -0,0 +1,20 @@
+// eCos memory layout - Mon Jul 23 11:49:04 2001
+
+// This is a generated file - do not edit
+
+#ifndef __ASSEMBLER__
+#include <cyg/infra/cyg_type.h>
+#include <stddef.h>
+
+#endif
+#define CYGMEM_REGION_sram (0)
+#define CYGMEM_REGION_sram_SIZE (0x1000)
+#define CYGMEM_REGION_sram_ATTR (CYGMEM_REGION_ATTR_R | CYGMEM_REGION_ATTR_W)
+#define CYGMEM_REGION_ram (0x02000000)
+#define CYGMEM_REGION_ram_SIZE (0x80000)
+#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 (0x02080000 - (size_t) CYG_LABEL_NAME (__heap1))
diff --git a/ecos/packages/hal/arm/at91/eb40/current/include/pkgconf/mlt_arm_at91_eb40_romram.ldi b/ecos/packages/hal/arm/at91/eb40/current/include/pkgconf/mlt_arm_at91_eb40_romram.ldi
new file mode 100644
index 0000000..844dfd6
--- /dev/null
+++ b/ecos/packages/hal/arm/at91/eb40/current/include/pkgconf/mlt_arm_at91_eb40_romram.ldi
@@ -0,0 +1,28 @@
+// eCos memory layout - Mon Jul 23 11:49:04 2001
+
+// This is a generated file - do not edit
+
+#include <cyg/infra/cyg_type.inc>
+
+MEMORY
+{
+ sram : ORIGIN = 0, LENGTH = 0x1000
+ ram : ORIGIN = 0x02000000, LENGTH = 0x80000
+}
+
+SECTIONS
+{
+ SECTIONS_BEGIN
+ SECTION_fixed_vectors (sram, 0x20, LMA_EQ_VMA)
+ SECTION_rom_vectors (ram, 0x02000000, 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)
+ CYG_LABEL_DEFN(__heap1) = ALIGN (0x8);
+ SECTIONS_END
+}
diff --git a/ecos/packages/hal/arm/at91/eb40/current/include/pkgconf/mlt_arm_at91_eb40_romram.mlt b/ecos/packages/hal/arm/at91/eb40/current/include/pkgconf/mlt_arm_at91_eb40_romram.mlt
new file mode 100644
index 0000000..e7e04fe
--- /dev/null
+++ b/ecos/packages/hal/arm/at91/eb40/current/include/pkgconf/mlt_arm_at91_eb40_romram.mlt
@@ -0,0 +1,14 @@
+version 0
+region sram 0 1000 0 !On-chip SRAM
+region ram 2000000 80000 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 2000000 2000000 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 1 0 1 heap1 heap1 !
+section heap1 0 8 0 0 0 0 0 0 !
diff --git a/ecos/packages/hal/arm/at91/eb40/current/include/plf_io.h b/ecos/packages/hal/arm/at91/eb40/current/include/plf_io.h
new file mode 100644
index 0000000..38b270a
--- /dev/null
+++ b/ecos/packages/hal/arm/at91/eb40/current/include/plf_io.h
@@ -0,0 +1,57 @@
+#ifndef CYGONCE_HAL_PLF_IO_H
+#define CYGONCE_HAL_PLF_IO_H
+//=============================================================================
+//
+// plf_io.h
+//
+// EB40 board specific registers
+//
+//=============================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): tkoeller
+// Contributors:
+// Date: 2002-06-22
+// Purpose: Atmel EB40 board specific registers
+// Description:
+// Usage: #include <cyg/hal/plf_io.h>
+//
+//####DESCRIPTIONEND####
+//
+//=============================================================================
+
+//-----------------------------------------------------------------------------
+// end of plf_io.h
+#endif // CYGONCE_HAL_PLF_IO_H
diff --git a/ecos/packages/hal/arm/at91/eb40/current/misc/redboot_RAM.ecm b/ecos/packages/hal/arm/at91/eb40/current/misc/redboot_RAM.ecm
new file mode 100644
index 0000000..bf7e6af
--- /dev/null
+++ b/ecos/packages/hal/arm/at91/eb40/current/misc/redboot_RAM.ecm
@@ -0,0 +1,58 @@
+cdl_savefile_version 1;
+cdl_savefile_command cdl_savefile_version {};
+cdl_savefile_command cdl_savefile_command {};
+cdl_savefile_command cdl_configuration { description hardware template package };
+cdl_savefile_command cdl_package { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_component { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_option { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_interface { value_source user_value wizard_value inferred_value };
+
+cdl_configuration eCos {
+ description "" ;
+ hardware eb40 ;
+ template redboot ;
+ package -hardware CYGPKG_HAL_ARM current ;
+ package -hardware CYGPKG_HAL_ARM_AT91 current ;
+ package -hardware CYGPKG_DEVS_FLASH_EB40 current ;
+ package -template CYGPKG_HAL current ;
+ package -template CYGPKG_INFRA current ;
+ package -template CYGPKG_REDBOOT current ;
+ package CYGPKG_IO_FLASH current ;
+};
+
+cdl_option CYGNUM_HAL_COMMON_INTERRUPTS_STACK_SIZE {
+ user_value 6144
+};
+
+cdl_option CYGDBG_HAL_COMMON_INTERRUPTS_SAVE_MINIMUM_CONTEXT {
+ user_value 0
+};
+
+cdl_option CYGDBG_HAL_COMMON_CONTEXT_SAVE_MINIMUM {
+ inferred_value 0
+};
+
+cdl_option CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS {
+ inferred_value 1
+};
+
+cdl_option CYGSEM_HAL_USE_ROM_MONITOR {
+ inferred_value 0 0
+};
+
+cdl_component CYGBLD_BUILD_REDBOOT {
+ user_value 1
+};
+
+cdl_option CYGOPT_REDBOOT_FIS {
+ user_value 0
+};
+
+cdl_component CYGSEM_REDBOOT_FLASH_CONFIG {
+ user_value 0
+};
+
+cdl_option CYGBLD_BUILD_REDBOOT_WITH_EXEC {
+ user_value 0
+};
+
diff --git a/ecos/packages/hal/arm/at91/eb40/current/misc/redboot_ROM.ecm b/ecos/packages/hal/arm/at91/eb40/current/misc/redboot_ROM.ecm
new file mode 100644
index 0000000..0aa08d7
--- /dev/null
+++ b/ecos/packages/hal/arm/at91/eb40/current/misc/redboot_ROM.ecm
@@ -0,0 +1,65 @@
+cdl_savefile_version 1;
+cdl_savefile_command cdl_savefile_version {};
+cdl_savefile_command cdl_savefile_command {};
+cdl_savefile_command cdl_configuration { description hardware template package };
+cdl_savefile_command cdl_package { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_component { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_option { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_interface { value_source user_value wizard_value inferred_value };
+
+cdl_configuration eCos {
+ description "" ;
+ hardware eb40 ;
+ template redboot ;
+ package -hardware CYGPKG_HAL_ARM current ;
+ package -hardware CYGPKG_HAL_ARM_AT91 current ;
+ package -hardware CYGPKG_DEVS_FLASH_EB40 current ;
+ package -template CYGPKG_HAL current ;
+ package -template CYGPKG_INFRA current ;
+ package -template CYGPKG_REDBOOT current ;
+ package CYGPKG_IO_FLASH current ;
+};
+
+cdl_option CYGNUM_HAL_COMMON_INTERRUPTS_STACK_SIZE {
+ user_value 6144
+};
+
+cdl_option CYGDBG_HAL_COMMON_INTERRUPTS_SAVE_MINIMUM_CONTEXT {
+ user_value 0
+};
+
+cdl_option CYGDBG_HAL_COMMON_CONTEXT_SAVE_MINIMUM {
+ inferred_value 0
+};
+
+cdl_option CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS {
+ inferred_value 1
+};
+
+cdl_option CYGSEM_HAL_ROM_MONITOR {
+ inferred_value 1
+};
+
+cdl_option CYGSEM_HAL_USE_ROM_MONITOR {
+ inferred_value 0 0
+};
+
+cdl_component CYG_HAL_STARTUP {
+ user_value ROM
+};
+
+cdl_component CYGBLD_BUILD_REDBOOT {
+ user_value 1
+};
+
+cdl_option CYGOPT_REDBOOT_FIS {
+ user_value 0
+};
+
+cdl_component CYGSEM_REDBOOT_FLASH_CONFIG {
+ user_value 0
+};
+
+cdl_option CYGBLD_BUILD_REDBOOT_WITH_EXEC {
+ user_value 0
+};
diff --git a/ecos/packages/hal/arm/at91/eb40/current/misc/redboot_ROMRAM.ecm b/ecos/packages/hal/arm/at91/eb40/current/misc/redboot_ROMRAM.ecm
new file mode 100644
index 0000000..c2db2d4
--- /dev/null
+++ b/ecos/packages/hal/arm/at91/eb40/current/misc/redboot_ROMRAM.ecm
@@ -0,0 +1,66 @@
+cdl_savefile_version 1;
+cdl_savefile_command cdl_savefile_version {};
+cdl_savefile_command cdl_savefile_command {};
+cdl_savefile_command cdl_configuration { description hardware template package };
+cdl_savefile_command cdl_package { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_component { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_option { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_interface { value_source user_value wizard_value inferred_value };
+
+cdl_configuration eCos {
+ description "" ;
+ hardware eb40 ;
+ template redboot ;
+ package -hardware CYGPKG_HAL_ARM current ;
+ package -hardware CYGPKG_HAL_ARM_AT91 current ;
+ package -hardware CYGPKG_DEVS_FLASH_EB40 current ;
+ package -template CYGPKG_HAL current ;
+ package -template CYGPKG_INFRA current ;
+ package -template CYGPKG_REDBOOT current ;
+ package CYGPKG_IO_FLASH current ;
+};
+
+cdl_option CYGNUM_HAL_COMMON_INTERRUPTS_STACK_SIZE {
+ user_value 6144
+};
+
+cdl_option CYGDBG_HAL_COMMON_INTERRUPTS_SAVE_MINIMUM_CONTEXT {
+ user_value 0
+};
+
+cdl_option CYGDBG_HAL_COMMON_CONTEXT_SAVE_MINIMUM {
+ inferred_value 0
+};
+
+cdl_option CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS {
+ inferred_value 1
+};
+
+cdl_option CYGSEM_HAL_ROM_MONITOR {
+ user_value 1
+};
+
+cdl_option CYGSEM_HAL_USE_ROM_MONITOR {
+ inferred_value 0 0
+};
+
+cdl_component CYG_HAL_STARTUP {
+ user_value ROMRAM
+};
+
+cdl_component CYGBLD_BUILD_REDBOOT {
+ user_value 1
+};
+
+cdl_option CYGOPT_REDBOOT_FIS {
+ user_value 0
+};
+
+cdl_component CYGSEM_REDBOOT_FLASH_CONFIG {
+ user_value 0
+};
+
+cdl_option CYGBLD_BUILD_REDBOOT_WITH_EXEC {
+ user_value 0
+};
+
diff --git a/ecos/packages/hal/arm/at91/eb40/current/src/eb40_misc.c b/ecos/packages/hal/arm/at91/eb40/current/src/eb40_misc.c
new file mode 100644
index 0000000..2801e04
--- /dev/null
+++ b/ecos/packages/hal/arm/at91/eb40/current/src/eb40_misc.c
@@ -0,0 +1,89 @@
+//==========================================================================
+//
+// eb40_misc.c
+//
+// HAL misc board support code for Atmel EB40 eval board
+//
+//==========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//==========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): gthomas
+// Contributors: gthomas, jskov, tkoeller, nickg
+// Date: 2002-05-30
+// Purpose: HAL board support
+// Description: Implementations of HAL board interfaces
+//
+//####DESCRIPTIONEND####
+//
+//========================================================================*/
+
+#include <pkgconf/hal.h>
+
+#include <cyg/infra/cyg_type.h> // base types
+#include <cyg/hal/hal_io.h>
+#include <cyg/hal/var_io.h> // platform registers
+
+//
+// Diagnostic LEDs - there are three colored LEDs which can be used
+// to send a simple diagnostic value (8 bits)
+//
+
+void
+hal_at91_led(int val)
+{
+ int i, to;
+
+ HAL_WRITE_UINT32(AT91_PIO+AT91_PIO_CODR, 0x06); // DATA+CLOCK LEDs off
+ for (to = 0; to < 0x200000; to++) ;
+ for (i = 0; i < 8; i++) {
+ HAL_WRITE_UINT32(AT91_PIO+AT91_PIO_SODR, ((val>>(7-i)) & 0x01)<<2); // DATA LED
+ HAL_WRITE_UINT32(AT91_PIO+AT91_PIO_SODR, 0x02); // CLOCK LED on
+ for (to = 0; to < 0x80000; to++) ;
+ HAL_WRITE_UINT32(AT91_PIO+AT91_PIO_CODR, 0x02); // CLOCK LED off
+ for (to = 0; to < 0x40000; to++) ;
+ HAL_WRITE_UINT32(AT91_PIO+AT91_PIO_CODR, 0x04); // DATA LED off
+ }
+}
+
+void
+hal_at91_set_leds(int val)
+{
+ hal_at91_led(val);
+}
+
+
+
+//--------------------------------------------------------------------------
+// EOF eb40_misc.c
diff --git a/ecos/packages/hal/arm/at91/eb40a/current/ChangeLog b/ecos/packages/hal/arm/at91/eb40a/current/ChangeLog
new file mode 100644
index 0000000..3bef474
--- /dev/null
+++ b/ecos/packages/hal/arm/at91/eb40a/current/ChangeLog
@@ -0,0 +1,121 @@
+2009-03-23 John Dallaway <john@dallaway.org.uk>
+
+ * include/hal_platform_setup.h: Tweak LED manipulation routines to
+ allow building for Thumb.
+
+2009-01-31 Bart Veer <bartv@ecoscentric.com>
+
+ * cdl/hal_arm_at91_eb40a.cdl: update compiler flags for gcc 4.x
+
+2009-01-24 Bart Veer <bartv@ecoscentric.com>
+
+ * cdl/hal_arm_at91_eb40a.cdl: switch from arm-elf-gcc to
+ arm-eabi-gcc. Remove -mno-short-load-words.
+
+2004-09-16 Andrea Michelotti <amichelotti@atmel.com>
+
+ * include/hal_platform_ints.h: When CYGHWR_HAL_ARM_AT91_FIQ is defined
+ CYGNUM_HAL_ISR_MIN is equal to zero.
+
+2004-08-30 Thomas Koeller <thomas.koeller@baslerweb.com>
+
+ * cdl//hal_arm_at91_eb42.cdl: Undid last change. These
+ options are not really common among all platforms.
+
+2004-02-12 Jani Monoses <jani@iv.ro>
+
+ * cdl/hal_arm_at91_eb40a.cdl: Move configuration options
+ common to all AT91 EB boards up to AT91 variant .cdl.
+
+2003-12-16 Gary Thomas <gary@mlbassoc.com>
+
+ * misc/redboot_ROMRAM.ecm:
+ CYGNUM_FLASH_WORKSPACE_SIZE is no longer used.
+
+2003-09-30 Jani Monoses <jani@iv.ro>
+
+ * cdl/hal_arm_at91_eb40a.cdl: Interfaces are already implemented by
+ AT91 variant .cdl, do not duplicate them here.
+
+2003-07-15 Jonathan Larmour <jifl@eCosCentric.com>
+
+ * include/hal_platform_ints.h (HAL_PLATFORM_RESET): Actually use
+ hal_at91_reset_cpu().
+
+2003-06-11 Oyvind Harboe <oyvind.harboe@zylin.com>
+
+ * src/eb40a_misc.c:
+ LED routines were using the wrong bits.
+
+ * include/plf_io.h
+ LED defines were using the wrong bits
+ Added defines for the EB40a board push buttons
+
+2003-05-12 Nick Garnett <nickg@balti.calivar.com>
+
+ * src/eb40a_misc.c:
+ Renamed and changed behaviour of led routines. They now all have
+ hal_at91_ in front to prevent namespace pollution, and all now
+ just take a simple 8 bit mask and adapt to the specific pin
+ assignments internally.
+
+ * cdl/hal_arm_at91_eb40a.cdl: Added requirement for
+ CYGHWR_HAL_ARM_AT91 == "R40008" to customize the variant HAL to
+ the device on this board.
+
+ * include/hal_platform_setup.h: Added _led_init and _led macros to
+ initialize and work board LEDs. Ensured that LEDs work even in RAM
+ startup.
+
+ * include/pkgconf/mlt_arm_at91_eb40a_ram.ldi:
+ * include/pkgconf/mlt_arm_at91_eb40a_ram.h:
+ * include/pkgconf/mlt_arm_at91_eb40a_rom.ldi:
+ * include/pkgconf/mlt_arm_at91_eb40a_rom.h:
+ * include/pkgconf/mlt_arm_at91_eb40a_romram.ldi:
+ * include/pkgconf/mlt_arm_at91_eb40a_romram.h:
+ Changed RAM configuration to work only within the 256K of SRAM
+ normally shipped with these boards.
+
+2002-07-14 Tim Drury <tdrury@siliconmotorsports.com>
+
+ * adapted from Thomas Koeller's <Thomas.Koeller@baslerweb.com> EB40
+ patch to the original AT91 ecos base. Fixed up FLASH, RAM, and SRAM
+ sizes and locations throughout. My EB40A board came with 1MB on-board
+ SRAM although the docs state SRAM is NOT included, so this port
+ reflects my on-board SRAM.
+ * cdl/hal_arm_at91_eb40a.cdl - changed to 66MHz clock
+ * include/hal_platform_setup.h - wait states for FLASH and SRAM are the
+ same as EB40 (oddly enough). The parts are faster but so is the AT91
+ part, so the pre- and post-wait state numbers came out the same.
+ * include/plf_io.h - added EB40A on-board LED definitions
+ * include/pkgconf/* - changed all .h and .ldi files to reflect new
+ FLASH, SRAM, and RAM sizes and locations. NOTE: I do not use Windows
+ so someone else will have to create the .mlt files that the GUI
+ configuration tool needs to generate the .h and .ldi files.
+ * misc/*.ecm - changed to use AT49LV1614 FLASH
+ * src/eb40a_misc.c - added led_on(), led_off(), and get_leds()
+
+
+//===========================================================================
+// ####GPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2009 Free Software Foundation, Inc.
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 2 or (at your option) any
+// later version.
+//
+// This program is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the
+// Free Software Foundation, Inc., 51 Franklin Street,
+// Fifth Floor, Boston, MA 02110-1301, USA.
+// -------------------------------------------
+// ####GPLCOPYRIGHTEND####
+//===========================================================================
diff --git a/ecos/packages/hal/arm/at91/eb40a/current/cdl/hal_arm_at91_eb40a.cdl b/ecos/packages/hal/arm/at91/eb40a/current/cdl/hal_arm_at91_eb40a.cdl
new file mode 100644
index 0000000..ac5f179
--- /dev/null
+++ b/ecos/packages/hal/arm/at91/eb40a/current/cdl/hal_arm_at91_eb40a.cdl
@@ -0,0 +1,299 @@
+# ====================================================================
+#
+# hal_arm_at91_eb40a.cdl
+#
+# ARM AT91 EB40A HAL package configuration data
+#
+# ====================================================================
+## ####ECOSGPLCOPYRIGHTBEGIN####
+## -------------------------------------------
+## This file is part of eCos, the Embedded Configurable Operating System.
+## Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+##
+## eCos is free software; you can redistribute it and/or modify it under
+## the terms of the GNU General Public License as published by the Free
+## Software Foundation; either version 2 or (at your option) any later
+## version.
+##
+## eCos is distributed in the hope that it will be useful, but WITHOUT
+## ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+## FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+## for more details.
+##
+## You should have received a copy of the GNU General Public License
+## along with eCos; if not, write to the Free Software Foundation, Inc.,
+## 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+##
+## As a special exception, if other files instantiate templates or use
+## macros or inline functions from this file, or you compile this file
+## and link it with other works to produce a work based on this file,
+## this file does not by itself cause the resulting work to be covered by
+## the GNU General Public License. However the source code for this file
+## must still be made available in accordance with section (3) of the GNU
+## General Public License v2.
+##
+## This exception does not invalidate any other reasons why a work based
+## on this file might be covered by the GNU General Public License.
+## -------------------------------------------
+## ####ECOSGPLCOPYRIGHTEND####
+# ====================================================================
+######DESCRIPTIONBEGIN####
+#
+# Author(s): gthomas
+# Contributors: gthomas, tkoeller, tdrury, nickg
+# Date: 2001-07-12
+#
+#####DESCRIPTIONEND####
+#
+# ====================================================================
+
+cdl_package CYGPKG_HAL_ARM_AT91_EB40A {
+ display "Atmel EB40A eval board HAL"
+ parent CYGPKG_HAL_ARM_AT91
+ define_header hal_arm_at91_eb40a.h
+ include_dir cyg/hal
+ hardware
+ description "
+ The EB40A HAL package provides the support needed to run
+ eCos on an Atmel EB40A eval board."
+
+ compile eb40a_misc.c
+
+ requires { CYGHWR_HAL_ARM_AT91 == "R40008" }
+
+ 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_at91.h>"
+ puts $::cdl_system_header "#define CYGBLD_HAL_PLATFORM_H <pkgconf/hal_arm_at91_eb40a.h>"
+ puts $::cdl_header "#define HAL_PLATFORM_CPU \"ARM7TDMI\""
+ puts $::cdl_header "#define HAL_PLATFORM_BOARD \"Atmel AT91/EB40A\""
+ puts $::cdl_header "#define HAL_PLATFORM_EXTRA \"\""
+ }
+
+ 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
+ default_value 1000000000
+ }
+ cdl_option CYGNUM_HAL_RTC_DENOMINATOR {
+ display "Real-time clock denominator"
+ flavor data
+ default_value 100
+ }
+ cdl_option CYGNUM_HAL_RTC_PERIOD {
+ display "Real-time clock period"
+ flavor data
+ default_value ((CYGNUM_HAL_ARM_AT91_CLOCK_SPEED/32) / CYGNUM_HAL_RTC_DENOMINATOR)
+ }
+ }
+
+ cdl_component CYG_HAL_STARTUP {
+ display "Startup type"
+ flavor data
+ default_value {"RAM"}
+ legal_values {"RAM" "ROM" "ROMRAM"}
+ no_define
+ define -file system.h CYG_HAL_STARTUP
+ description "
+ When targetting the AT91 EBxx 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 onboard
+ debug software such as Angel or eCos GDB stubs. Select 'rom'
+ when building a stand-alone application which will be put
+ into ROM. Using ROMRAM will allow the program to exist in
+ ROM, but be copied to RAM during startup."
+ }
+
+ # Real-time clock/counter specifics
+ cdl_option CYGNUM_HAL_ARM_AT91_CLOCK_SPEED {
+ display "CPU clock speed"
+ flavor data
+ default_value 66000000
+ }
+
+ 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"
+ active_if CYGPRI_HAL_VIRTUAL_VECTOR_DEBUG_CHANNEL_CONFIGURABLE
+ flavor data
+ legal_values 0 to CYGNUM_HAL_VIRTUAL_VECTOR_COMM_CHANNELS-1
+ default_value 0
+ description "
+ The AT91 EBxx 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"
+ active_if CYGPRI_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_CONFIGURABLE
+ flavor data
+ legal_values 0 to CYGNUM_HAL_VIRTUAL_VECTOR_COMM_CHANNELS-1
+ default_value 0
+ description "
+ The AT91 EBxx board has two serial ports. This option
+ chooses which port will be used for diagnostic output."
+ }
+
+ cdl_option CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_BAUD {
+ display "Diagnostic serial port baud rate"
+ flavor data
+ legal_values 9600 19200 38400 57600 115200
+ default_value 38400
+ description "
+ This option selects the baud rate used for the diagnostic port."
+ }
+
+ cdl_option CYGNUM_HAL_VIRTUAL_VECTOR_DEBUG_CHANNEL_BAUD {
+ display "GDB serial port baud rate"
+ flavor data
+ legal_values 9600 19200 38400 57600 115200
+ default_value 38400
+ description "
+ This option controls the baud rate used for the GDB connection."
+ }
+
+ 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" || CYG_HAL_STARTUP == "ROMRAM" }
+ 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 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_REDBOOT_HAL_OPTIONS {
+ display "Redboot HAL options"
+ flavor none
+ no_define
+ parent CYGPKG_REDBOOT
+ active_if CYGPKG_REDBOOT
+ description "
+ This option lists the target's requirements for a valid Redboot
+ configuration."
+
+ 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 $< $@
+ }
+
+ }
+ }
+
+ 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 { "arm-eabi"}
+ 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 { CYGBLD_GLOBAL_WARNFLAGS . CYGBLD_ARCH_CFLAGS .
+ "-mcpu=arm7tdmi -g -O2 -ffunction-sections -fdata-sections -fno-rtti -fno-exceptions " }
+ 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 { CYGBLD_ARCH_LDFLAGS . "-mcpu=arm7tdmi -Wl,--gc-sections -Wl,-static -g -nostdlib" }
+ description "
+ This option controls the global linker flags. Individual
+ packages may define options which override these global flags."
+ }
+ }
+
+ cdl_component CYGHWR_MEMORY_LAYOUT {
+ display "Memory layout"
+ flavor data
+ no_define
+ calculated { (CYG_HAL_STARTUP == "RAM") ? "arm_at91_eb40a_ram" :
+ (CYG_HAL_STARTUP == "ROMRAM") ? "arm_at91_eb40a_romram" :
+ "arm_at91_eb40a_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_at91_eb40a_ram.ldi>" :
+ (CYG_HAL_STARTUP == "ROMRAM") ? "<pkgconf/mlt_arm_at91_eb40a_romram.ldi>" :
+ "<pkgconf/mlt_arm_at91_eb40a_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_at91_eb40a_ram.h>" :
+ (CYG_HAL_STARTUP == "ROMRAM") ? "<pkgconf/mlt_arm_at91_eb40a_romram.h>" :
+ "<pkgconf/mlt_arm_at91_eb40a_rom.h>" }
+ }
+ }
+
+}
diff --git a/ecos/packages/hal/arm/at91/eb40a/current/include/hal_platform_ints.h b/ecos/packages/hal/arm/at91/eb40a/current/include/hal_platform_ints.h
new file mode 100644
index 0000000..3076a7a
--- /dev/null
+++ b/ecos/packages/hal/arm/at91/eb40a/current/include/hal_platform_ints.h
@@ -0,0 +1,91 @@
+#ifndef CYGONCE_HAL_PLATFORM_INTS_H
+#define CYGONCE_HAL_PLATFORM_INTS_H
+//==========================================================================
+//
+// hal_platform_ints.h
+//
+// HAL Interrupt and clock assignments for AT91/EB40
+//
+//==========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//==========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): gthomas
+// Contributors: gthomas
+// Date: 2001-07-12
+// Purpose: Define Interrupt support
+// Description: The interrupt specifics for the AT91/EB40 board/platform are
+// defined here.
+//
+// Usage: #include <cyg/hal/hal_platform_ints.h>
+// ...
+//
+//
+//####DESCRIPTIONEND####
+//
+//==========================================================================
+
+#define CYGNUM_HAL_INTERRUPT_USART0 2
+#define CYGNUM_HAL_INTERRUPT_USART1 3
+#define CYGNUM_HAL_INTERRUPT_TIMER0 4
+#define CYGNUM_HAL_INTERRUPT_TIMER1 5
+#define CYGNUM_HAL_INTERRUPT_TIMER2 6
+#define CYGNUM_HAL_INTERRUPT_WATCHDOG 7
+#define CYGNUM_HAL_INTERRUPT_PIO 8
+#define CYGNUM_HAL_INTERRUPT_EXT0 16
+#define CYGNUM_HAL_INTERRUPT_EXT1 17
+#define CYGNUM_HAL_INTERRUPT_EXT2 18
+
+#ifdef CYGHWR_HAL_ARM_AT91_FIQ
+#define CYGNUM_HAL_ISR_MIN 0
+#else
+#define CYGNUM_HAL_ISR_MIN 2
+#endif
+
+#define CYGNUM_HAL_ISR_MAX 18
+// Note: extra slots (0,1) to avoid messing with vector translation
+#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
+
+
+//----------------------------------------------------------------------------
+// Reset.
+__externC void hal_at91_reset_cpu(void);
+#define HAL_PLATFORM_RESET() hal_at91_reset_cpu()
+
+#define HAL_PLATFORM_RESET_ENTRY 0x01010000
+
+#endif // CYGONCE_HAL_PLATFORM_INTS_H
diff --git a/ecos/packages/hal/arm/at91/eb40a/current/include/hal_platform_setup.h b/ecos/packages/hal/arm/at91/eb40a/current/include/hal_platform_setup.h
new file mode 100644
index 0000000..f4dffff
--- /dev/null
+++ b/ecos/packages/hal/arm/at91/eb40a/current/include/hal_platform_setup.h
@@ -0,0 +1,146 @@
+#ifndef CYGONCE_HAL_PLATFORM_SETUP_H
+#define CYGONCE_HAL_PLATFORM_SETUP_H
+
+/*=============================================================================
+//
+// hal_platform_setup.h
+//
+// Platform specific support for HAL (assembly code)
+//
+//=============================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2009 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): gthomas
+// Contributors:gthomas, tdrury, nickg
+// Date: 2001-07-12
+// Purpose: AT91/EB40A platform specific support routines
+// Description:
+// Usage: #include <cyg/hal/hal_platform_setup.h>
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================*/
+
+#include <cyg/hal/var_io.h>
+
+ .macro _led_init
+ ldr r0,=AT91_PIO
+ ldr r1,=0x000F0000
+ str r1,[r0,#AT91_PIO_PER]
+ str r1,[r0,#AT91_PIO_OER]
+ _led 0
+ _led 15
+ .endm
+
+ .macro _led y
+ ldr r0,=AT91_PIO
+ ldr r1,=0x000F0000
+ str r1,[r0,#AT91_PIO_SODR]
+ ldr r1,=(\y<<16)
+ str r1,[r0,#AT91_PIO_CODR]
+#if 0
+ mov r0,#0x00100000
+1: sub r0,r0,#1
+ cmp r0,#0
+ bne 1b
+#endif
+ .endm
+
+#define CYGHWR_LED_MACRO _led \x
+
+#if defined(CYG_HAL_STARTUP_ROM) || defined(CYG_HAL_STARTUP_ROMRAM)
+
+
+ .macro _setup
+ _led_init
+ ldr r10,=_InitMemory // Initialize memory controller
+ movs r0,pc,lsr #20 // If ROM startup, PC < 0x100000
+ moveq r10,r10,lsl #12 // mask address to low 20 bits
+ moveq r10,r10,lsr #12
+ ldmia r10!,{r0-r9,r11-r12} // Table of initialization constants
+#if defined(CYG_HAL_STARTUP_ROMRAM)
+ ldr r10,=0x0000FFFF
+ and r12,r12,r10
+ ldr r10,=0x01000000
+ orr r12,r12,r10
+#endif
+ stmia r11!,{r0-r9} // Write to controller
+ mov pc,r12 // Change address space, break pipeline
+_InitMemory:
+ .long 0x01002535 // 0x01000000, 16MB, 2 cycles after transfer, 16-bit, 6 wait states
+ .long 0x02002121 // 0x02000000, 16MB, 0 cycles after transfer, 16-bit, 1 wait state
+ .long 0x20003E3E // 0x20000000, 1MB, 7 cycles after transfer, 8-bit, 8 wait states
+ .long 0x30000000 // unused
+ .long 0x40000000 // unused
+ .long 0x50000000 // unused
+ .long 0x60000000 // unused
+ .long 0x70000000 // unused
+ .long 0x00000001 // REMAP commande
+ .long 0x00000006 // 7 memory regions, standard read
+ .long AT91_EBI // External Bus Interface address
+ .long 10f // address where to jump
+10:
+#if defined(CYG_HAL_STARTUP_ROMRAM)
+ ldr r0,=0x01000000 // Relocate FLASH/ROM to on-chip RAM
+ ldr r1,=0x02000000 // RAM base & length
+ ldr r2,=0x02010000
+20: ldr r3,[r0],#4
+ str r3,[r1],#4
+ cmp r1,r2
+ bne 20b
+ ldr r0,=30f
+ mov pc,r0
+30:
+#endif
+ ldr r0,=AT91_PS // Power saving interface
+ ldr r1,=0xFFFFFFFF // Enable all peripheral [clocks]
+ str r1,[r0,#AT91_PS_PCER]
+ ldr r0,=AT91_PIO // Disable PIO (so peripherals can use bits)
+ ldr r1,=0x0070FE49 // UART, FIQ, EINT, Timer clocks
+ str r1,[r0,#AT91_PIO_PDR]
+ ldr r1,=0x000001B6 // LEDs
+ str r1,[r0,#AT91_PIO_OER]
+ str r1,[r0,#AT91_PIO_SODR]
+ .endm
+
+#define CYGSEM_HAL_ROM_RESET_USES_JUMP
+#define PLATFORM_SETUP1 _setup
+#else
+#define PLATFORM_SETUP1 _led_init
+#endif
+
+//-----------------------------------------------------------------------------
+// end of hal_platform_setup.h
+#endif // CYGONCE_HAL_PLATFORM_SETUP_H
diff --git a/ecos/packages/hal/arm/at91/eb40a/current/include/pkgconf/mlt_arm_at91_eb40a_ram.h b/ecos/packages/hal/arm/at91/eb40a/current/include/pkgconf/mlt_arm_at91_eb40a_ram.h
new file mode 100644
index 0000000..7f01e09
--- /dev/null
+++ b/ecos/packages/hal/arm/at91/eb40a/current/include/pkgconf/mlt_arm_at91_eb40a_ram.h
@@ -0,0 +1,17 @@
+// eCos memory layout - Mon Jul 23 11:49:04 2001
+
+// This is a generated file - do not edit
+
+#ifndef __ASSEMBLER__
+#include <cyg/infra/cyg_type.h>
+#include <stddef.h>
+
+#endif
+#define CYGMEM_REGION_ram (0x00000000)
+#define CYGMEM_REGION_ram_SIZE (0x00040000)
+#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 (0x00040000 - (size_t) CYG_LABEL_NAME (__heap1))
diff --git a/ecos/packages/hal/arm/at91/eb40a/current/include/pkgconf/mlt_arm_at91_eb40a_ram.ldi b/ecos/packages/hal/arm/at91/eb40a/current/include/pkgconf/mlt_arm_at91_eb40a_ram.ldi
new file mode 100644
index 0000000..eec9dbe
--- /dev/null
+++ b/ecos/packages/hal/arm/at91/eb40a/current/include/pkgconf/mlt_arm_at91_eb40a_ram.ldi
@@ -0,0 +1,27 @@
+// eCos memory layout - Mon Jul 23 11:49:04 2001
+
+// This is a generated file - do not edit
+
+#include <cyg/infra/cyg_type.inc>
+
+MEMORY
+{
+ ram : ORIGIN = 0x00000000, LENGTH = 0x40000
+}
+
+SECTIONS
+{
+ SECTIONS_BEGIN
+ SECTION_fixed_vectors (ram, 0x20, LMA_EQ_VMA)
+ SECTION_rom_vectors (ram, 0xc000, 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)
+ CYG_LABEL_DEFN(__heap1) = ALIGN (0x8);
+ SECTIONS_END
+}
diff --git a/ecos/packages/hal/arm/at91/eb40a/current/include/pkgconf/mlt_arm_at91_eb40a_rom.h b/ecos/packages/hal/arm/at91/eb40a/current/include/pkgconf/mlt_arm_at91_eb40a_rom.h
new file mode 100644
index 0000000..e86efd5
--- /dev/null
+++ b/ecos/packages/hal/arm/at91/eb40a/current/include/pkgconf/mlt_arm_at91_eb40a_rom.h
@@ -0,0 +1,20 @@
+// eCos memory layout - Wed Apr 11 13:49:55 2001
+
+// This is a generated file - do not edit
+
+#ifndef __ASSEMBLER__
+#include <cyg/infra/cyg_type.h>
+#include <stddef.h>
+
+#endif
+#define CYGMEM_REGION_ram (0x00000000)
+#define CYGMEM_REGION_ram_SIZE (0x00040000)
+#define CYGMEM_REGION_ram_ATTR (CYGMEM_REGION_ATTR_R | CYGMEM_REGION_ATTR_W)
+#define CYGMEM_REGION_rom (0x01000000)
+#define CYGMEM_REGION_rom_SIZE (0x00100000)
+#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 (0x00040000 - (size_t) CYG_LABEL_NAME (__heap1))
diff --git a/ecos/packages/hal/arm/at91/eb40a/current/include/pkgconf/mlt_arm_at91_eb40a_rom.ldi b/ecos/packages/hal/arm/at91/eb40a/current/include/pkgconf/mlt_arm_at91_eb40a_rom.ldi
new file mode 100644
index 0000000..aa53da5
--- /dev/null
+++ b/ecos/packages/hal/arm/at91/eb40a/current/include/pkgconf/mlt_arm_at91_eb40a_rom.ldi
@@ -0,0 +1,28 @@
+// eCos memory layout - Wed Apr 11 13:49:55 2001
+
+// This is a generated file - do not edit
+
+#include <cyg/infra/cyg_type.inc>
+
+MEMORY
+{
+ ram : ORIGIN = 0x00000000, LENGTH = 0x40000
+ rom : ORIGIN = 0x01000000, LENGTH = 0x100000
+}
+
+SECTIONS
+{
+ SECTIONS_BEGIN
+ SECTION_rom_vectors (rom, 0x01000000, LMA_EQ_VMA)
+ SECTION_text (rom, ALIGN (0x1), 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, 0x4000, FOLLOWING (.gcc_except_table))
+ SECTION_bss (ram, ALIGN (0x4), LMA_EQ_VMA)
+ CYG_LABEL_DEFN(__heap1) = ALIGN (0x8);
+ SECTIONS_END
+}
diff --git a/ecos/packages/hal/arm/at91/eb40a/current/include/pkgconf/mlt_arm_at91_eb40a_romram.h b/ecos/packages/hal/arm/at91/eb40a/current/include/pkgconf/mlt_arm_at91_eb40a_romram.h
new file mode 100644
index 0000000..7f01e09
--- /dev/null
+++ b/ecos/packages/hal/arm/at91/eb40a/current/include/pkgconf/mlt_arm_at91_eb40a_romram.h
@@ -0,0 +1,17 @@
+// eCos memory layout - Mon Jul 23 11:49:04 2001
+
+// This is a generated file - do not edit
+
+#ifndef __ASSEMBLER__
+#include <cyg/infra/cyg_type.h>
+#include <stddef.h>
+
+#endif
+#define CYGMEM_REGION_ram (0x00000000)
+#define CYGMEM_REGION_ram_SIZE (0x00040000)
+#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 (0x00040000 - (size_t) CYG_LABEL_NAME (__heap1))
diff --git a/ecos/packages/hal/arm/at91/eb40a/current/include/pkgconf/mlt_arm_at91_eb40a_romram.ldi b/ecos/packages/hal/arm/at91/eb40a/current/include/pkgconf/mlt_arm_at91_eb40a_romram.ldi
new file mode 100644
index 0000000..d0510b8
--- /dev/null
+++ b/ecos/packages/hal/arm/at91/eb40a/current/include/pkgconf/mlt_arm_at91_eb40a_romram.ldi
@@ -0,0 +1,27 @@
+// eCos memory layout - Mon Jul 23 11:49:04 2001
+
+// This is a generated file - do not edit
+
+#include <cyg/infra/cyg_type.inc>
+
+MEMORY
+{
+ ram : ORIGIN = 0x00000000, LENGTH = 0x040000
+}
+
+SECTIONS
+{
+ SECTIONS_BEGIN
+ SECTION_fixed_vectors (ram, 0x20, LMA_EQ_VMA)
+ SECTION_rom_vectors (ram, 0x4000, 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)
+ CYG_LABEL_DEFN(__heap1) = ALIGN (0x8);
+ SECTIONS_END
+}
diff --git a/ecos/packages/hal/arm/at91/eb40a/current/include/plf_io.h b/ecos/packages/hal/arm/at91/eb40a/current/include/plf_io.h
new file mode 100644
index 0000000..49976e0
--- /dev/null
+++ b/ecos/packages/hal/arm/at91/eb40a/current/include/plf_io.h
@@ -0,0 +1,82 @@
+#ifndef CYGONCE_HAL_PLF_IO_H
+#define CYGONCE_HAL_PLF_IO_H
+//=============================================================================
+//
+// plf_io.h
+//
+// EB40A board specific registers
+//
+//=============================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): tkoeller
+// Contributors: tdrury
+// Date: 2002-06-22
+// Purpose: Atmel EB40A board specific registers
+// Description:
+// Usage: #include <cyg/hal/plf_io.h>
+//
+//####DESCRIPTIONEND####
+//
+//=============================================================================
+
+// these io pins are for the LEDs.
+#define EB40A_LED1 0x00000008
+#define EB40A_LED2 0x00000010
+#define EB40A_LED3 0x00000020
+#define EB40A_LED4 0x00000040
+// these PIOs double as TCLK1, TIOA1, TIOB1, TCLK2 respectively.
+#define EB40A_LED5 0x00010000
+#define EB40A_LED6 0x00020000
+#define EB40A_LED7 0x00040000
+#define EB40A_LED8 0x00080000
+
+#define EB40A_LED_ALL 0x00f00078
+
+// Push buttons. Note that these are connected to interrupt lines.
+#define EB40A_SW1 0x00001000
+#define EB40A_SW2 0x00000100
+#define EB40A_SW3 0x00000002
+#define EB40A_SW4 0x00000004
+
+// Push buttons. Note that these are connected to interrupt lines.
+#define EB40A_SW1 0x00001000
+#define EB40A_SW2 0x00000100
+#define EB40A_SW3 0x00000002
+#define EB40A_SW4 0x00000004
+
+//-----------------------------------------------------------------------------
+// end of plf_io.h
+#endif // CYGONCE_HAL_PLF_IO_H
diff --git a/ecos/packages/hal/arm/at91/eb40a/current/misc/redboot_RAM.ecm b/ecos/packages/hal/arm/at91/eb40a/current/misc/redboot_RAM.ecm
new file mode 100644
index 0000000..fbf6a14
--- /dev/null
+++ b/ecos/packages/hal/arm/at91/eb40a/current/misc/redboot_RAM.ecm
@@ -0,0 +1,58 @@
+cdl_savefile_version 1;
+cdl_savefile_command cdl_savefile_version {};
+cdl_savefile_command cdl_savefile_command {};
+cdl_savefile_command cdl_configuration { description hardware template package };
+cdl_savefile_command cdl_package { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_component { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_option { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_interface { value_source user_value wizard_value inferred_value };
+
+cdl_configuration eCos {
+ description "" ;
+ hardware eb40a ;
+ template redboot ;
+ package -hardware CYGPKG_HAL_ARM current ;
+ package -hardware CYGPKG_HAL_ARM_AT91 current ;
+ package -hardware CYGPKG_DEVS_FLASH_EB40A current ;
+ package -template CYGPKG_HAL current ;
+ package -template CYGPKG_INFRA current ;
+ package -template CYGPKG_REDBOOT current ;
+ package CYGPKG_IO_FLASH current ;
+};
+
+cdl_option CYGNUM_HAL_COMMON_INTERRUPTS_STACK_SIZE {
+ user_value 6144
+};
+
+cdl_option CYGDBG_HAL_COMMON_INTERRUPTS_SAVE_MINIMUM_CONTEXT {
+ user_value 0
+};
+
+cdl_option CYGDBG_HAL_COMMON_CONTEXT_SAVE_MINIMUM {
+ inferred_value 0
+};
+
+cdl_option CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS {
+ inferred_value 1
+};
+
+cdl_option CYGSEM_HAL_USE_ROM_MONITOR {
+ inferred_value 0 0
+};
+
+cdl_component CYGBLD_BUILD_REDBOOT {
+ user_value 1
+};
+
+cdl_option CYGOPT_REDBOOT_FIS {
+ user_value 0
+};
+
+cdl_component CYGSEM_REDBOOT_FLASH_CONFIG {
+ user_value 0
+};
+
+cdl_option CYGBLD_BUILD_REDBOOT_WITH_EXEC {
+ user_value 0
+};
+
diff --git a/ecos/packages/hal/arm/at91/eb40a/current/misc/redboot_ROM.ecm b/ecos/packages/hal/arm/at91/eb40a/current/misc/redboot_ROM.ecm
new file mode 100644
index 0000000..5d76cef
--- /dev/null
+++ b/ecos/packages/hal/arm/at91/eb40a/current/misc/redboot_ROM.ecm
@@ -0,0 +1,65 @@
+cdl_savefile_version 1;
+cdl_savefile_command cdl_savefile_version {};
+cdl_savefile_command cdl_savefile_command {};
+cdl_savefile_command cdl_configuration { description hardware template package };
+cdl_savefile_command cdl_package { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_component { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_option { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_interface { value_source user_value wizard_value inferred_value };
+
+cdl_configuration eCos {
+ description "" ;
+ hardware eb40a ;
+ template redboot ;
+ package -hardware CYGPKG_HAL_ARM current ;
+ package -hardware CYGPKG_HAL_ARM_AT91 current ;
+ package -hardware CYGPKG_DEVS_FLASH_EB40A current ;
+ package -template CYGPKG_HAL current ;
+ package -template CYGPKG_INFRA current ;
+ package -template CYGPKG_REDBOOT current ;
+ package CYGPKG_IO_FLASH current ;
+};
+
+cdl_option CYGNUM_HAL_COMMON_INTERRUPTS_STACK_SIZE {
+ user_value 6144
+};
+
+cdl_option CYGDBG_HAL_COMMON_INTERRUPTS_SAVE_MINIMUM_CONTEXT {
+ user_value 0
+};
+
+cdl_option CYGDBG_HAL_COMMON_CONTEXT_SAVE_MINIMUM {
+ inferred_value 0
+};
+
+cdl_option CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS {
+ inferred_value 1
+};
+
+cdl_option CYGSEM_HAL_ROM_MONITOR {
+ inferred_value 1
+};
+
+cdl_option CYGSEM_HAL_USE_ROM_MONITOR {
+ inferred_value 0 0
+};
+
+cdl_component CYG_HAL_STARTUP {
+ user_value ROM
+};
+
+cdl_component CYGBLD_BUILD_REDBOOT {
+ user_value 1
+};
+
+cdl_option CYGOPT_REDBOOT_FIS {
+ user_value 0
+};
+
+cdl_component CYGSEM_REDBOOT_FLASH_CONFIG {
+ user_value 0
+};
+
+cdl_option CYGBLD_BUILD_REDBOOT_WITH_EXEC {
+ user_value 0
+};
diff --git a/ecos/packages/hal/arm/at91/eb40a/current/misc/redboot_ROMRAM.ecm b/ecos/packages/hal/arm/at91/eb40a/current/misc/redboot_ROMRAM.ecm
new file mode 100644
index 0000000..f68a4b7
--- /dev/null
+++ b/ecos/packages/hal/arm/at91/eb40a/current/misc/redboot_ROMRAM.ecm
@@ -0,0 +1,66 @@
+cdl_savefile_version 1;
+cdl_savefile_command cdl_savefile_version {};
+cdl_savefile_command cdl_savefile_command {};
+cdl_savefile_command cdl_configuration { description hardware template package };
+cdl_savefile_command cdl_package { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_component { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_option { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_interface { value_source user_value wizard_value inferred_value };
+
+cdl_configuration eCos {
+ description "" ;
+ hardware eb40a ;
+ template redboot ;
+ package -hardware CYGPKG_HAL_ARM current ;
+ package -hardware CYGPKG_HAL_ARM_AT91 current ;
+ package -hardware CYGPKG_DEVS_FLASH_EB40A current ;
+ package -template CYGPKG_HAL current ;
+ package -template CYGPKG_INFRA current ;
+ package -template CYGPKG_REDBOOT current ;
+ package CYGPKG_IO_FLASH current ;
+};
+
+cdl_option CYGNUM_HAL_COMMON_INTERRUPTS_STACK_SIZE {
+ user_value 6144
+};
+
+cdl_option CYGDBG_HAL_COMMON_INTERRUPTS_SAVE_MINIMUM_CONTEXT {
+ user_value 0
+};
+
+cdl_option CYGDBG_HAL_COMMON_CONTEXT_SAVE_MINIMUM {
+ inferred_value 0
+};
+
+cdl_option CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS {
+ inferred_value 1
+};
+
+cdl_option CYGSEM_HAL_ROM_MONITOR {
+ user_value 1
+};
+
+cdl_option CYGSEM_HAL_USE_ROM_MONITOR {
+ inferred_value 0 0
+};
+
+cdl_component CYG_HAL_STARTUP {
+ user_value ROMRAM
+};
+
+cdl_component CYGBLD_BUILD_REDBOOT {
+ user_value 1
+};
+
+cdl_option CYGOPT_REDBOOT_FIS {
+ user_value 0
+};
+
+cdl_component CYGSEM_REDBOOT_FLASH_CONFIG {
+ user_value 0
+};
+
+cdl_option CYGBLD_BUILD_REDBOOT_WITH_EXEC {
+ user_value 0
+};
+
diff --git a/ecos/packages/hal/arm/at91/eb40a/current/src/eb40a_misc.c b/ecos/packages/hal/arm/at91/eb40a/current/src/eb40a_misc.c
new file mode 100644
index 0000000..0f29beb
--- /dev/null
+++ b/ecos/packages/hal/arm/at91/eb40a/current/src/eb40a_misc.c
@@ -0,0 +1,91 @@
+//==========================================================================
+//
+// eb40a_misc.c
+//
+// HAL misc board support code for Atmel EB40A eval board
+//
+//==========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//==========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): gthomas
+// Contributors: gthomas, jskov, tkoeller, tdrury, nickg
+// Date: 2002-05-30
+// Purpose: HAL board support
+// Description: Implementations of HAL board interfaces
+//
+//####DESCRIPTIONEND####
+//
+//========================================================================*/
+
+#include <pkgconf/hal.h>
+
+#include <cyg/infra/cyg_type.h> // base types
+#include <cyg/hal/hal_io.h> // low level i/o
+#include <cyg/hal/var_io.h> // common registers
+#include <cyg/hal/plf_io.h> // platform registers
+
+
+void
+hal_at91_set_leds(int val)
+{
+ HAL_WRITE_UINT32(AT91_PIO+AT91_PIO_SODR, EB40A_LED_ALL); // turn all LEDs off
+ HAL_WRITE_UINT32(AT91_PIO+AT91_PIO_CODR,
+ ((val&0xf)<<16)|(((val&0xf0)>>4)<<3)); // turn desired LEDs on
+}
+
+void
+hal_at91_led_on(int val)
+{
+ HAL_WRITE_UINT32(AT91_PIO+AT91_PIO_CODR,
+ ((val&0xf)<<16)|(((val&0xf0)>>4)<<3));
+}
+
+void
+hal_at91_led_off(int val)
+{
+ HAL_WRITE_UINT32(AT91_PIO+AT91_PIO_SODR,
+ ((val&0xf)<<3)|((val&0xf0)<<12));
+}
+
+int
+hal_at91_get_leds(void)
+{
+ int leds = 0;
+ HAL_READ_UINT32(AT91_PIO+AT91_PIO_PDSR, leds);
+ return (((leds>>3)&0xf)<<4)|((leds>>16)&0xf);
+}
+
+//--------------------------------------------------------------------------
+// EOF eb40_misc.c
diff --git a/ecos/packages/hal/arm/at91/eb42/current/ChangeLog b/ecos/packages/hal/arm/at91/eb42/current/ChangeLog
new file mode 100644
index 0000000..e77379e
--- /dev/null
+++ b/ecos/packages/hal/arm/at91/eb42/current/ChangeLog
@@ -0,0 +1,83 @@
+2009-03-23 John Dallaway <john@dallaway.org.uk>
+
+ * include/hal_platform_setup.h: Tweak LED manipulation routines to
+ allow building for Thumb.
+
+2009-01-31 Bart Veer <bartv@ecoscentric.com>
+
+ * cdl/hal_arm_at91_eb42.cdl: update compiler flags for gcc 4.x
+
+2009-01-24 Bart Veer <bartv@ecoscentric.com>
+
+ * cdl/hal_arm_at91_eb42.cdl: switch from arm-elf-gcc to
+ arm-eabi-gcc. Remove -mno-short-load-words.
+
+2004-09-16 Andrea Michelotti <amichelotti@atmel.com>
+
+ * include/hal_platform_ints.h: When CYGHWR_HAL_ARM_AT91_FIQ is defined
+ CYGNUM_HAL_ISR_MIN is equal to zero.
+
+2004-08-30 Thomas Koeller <thomas.koeller@baslerweb.com>
+
+ * cdl//hal_arm_at91_eb42.cdl: Undid last change. These
+ options are not really common among all platforms.
+
+2004-02-12 Jani Monoses <jani@iv.ro>
+
+ * cdl/hal_arm_at91_eb42.cdl: Move configuration options
+ common to all AT91 EB boards up to AT91 variant .cdl.
+
+2003-12-16 Gary Thomas <gary@mlbassoc.com>
+
+ * misc/redboot_ROMRAM.ecm:
+ CYGNUM_FLASH_WORKSPACE_SIZE is no longer used.
+
+2003-09-30 Jani Monoses <jani@iv.ro>
+
+ * cdl/hal_arm_at91_eb42.cdl: Interfaces are already implemented by
+ AT91 variant .cdl, do not duplicate them here.
+
+2003-07-15 Jonathan Larmour <jifl@eCosCentric.com>
+
+ * include/hal_platform_ints.h (HAL_PLATFORM_RESET): Actually use
+ hal_at91_reset_cpu().
+
+2003-05-12 Nick Garnett <nickg@balti.calivar.com>
+
+ * cdl/hal_arm_at91_eb42.cdl:
+ * include/plf_io.h:
+ * include/hal_platform_ints.h:
+ * include/hal_platform_setup.h:
+ * include/pkgconf/mlt_arm_at91_eb42_ram.ldi:
+ * include/pkgconf/mlt_arm_at91_eb42_ram.h:
+ * include/pkgconf/mlt_arm_at91_eb42_rom.ldi:
+ * include/pkgconf/mlt_arm_at91_eb42_rom.h:
+ * include/pkgconf/mlt_arm_at91_eb42_romram.ldi:
+ * include/pkgconf/mlt_arm_at91_eb42_romram.h:
+ * src/eb42_misc.c:
+ New HAL added to support the Atmel EB42 board. Adapted from the
+ EB40 and EB40A HALs by Thomas Koeller and Tim Drury.
+
+//===========================================================================
+// ####GPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2009 Free Software Foundation, Inc.
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 2 or (at your option) any
+// later version.
+//
+// This program is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the
+// Free Software Foundation, Inc., 51 Franklin Street,
+// Fifth Floor, Boston, MA 02110-1301, USA.
+// -------------------------------------------
+// ####GPLCOPYRIGHTEND####
+//===========================================================================
diff --git a/ecos/packages/hal/arm/at91/eb42/current/cdl/hal_arm_at91_eb42.cdl b/ecos/packages/hal/arm/at91/eb42/current/cdl/hal_arm_at91_eb42.cdl
new file mode 100644
index 0000000..9b65a41
--- /dev/null
+++ b/ecos/packages/hal/arm/at91/eb42/current/cdl/hal_arm_at91_eb42.cdl
@@ -0,0 +1,298 @@
+# ====================================================================
+#
+# hal_arm_at91_eb42.cdl
+#
+# ARM AT91 EB42 HAL package configuration data
+#
+# ====================================================================
+## ####ECOSGPLCOPYRIGHTBEGIN####
+## -------------------------------------------
+## This file is part of eCos, the Embedded Configurable Operating System.
+## Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
+##
+## eCos is free software; you can redistribute it and/or modify it under
+## the terms of the GNU General Public License as published by the Free
+## Software Foundation; either version 2 or (at your option) any later
+## version.
+##
+## eCos is distributed in the hope that it will be useful, but WITHOUT
+## ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+## FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+## for more details.
+##
+## You should have received a copy of the GNU General Public License
+## along with eCos; if not, write to the Free Software Foundation, Inc.,
+## 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+##
+## As a special exception, if other files instantiate templates or use
+## macros or inline functions from this file, or you compile this file
+## and link it with other works to produce a work based on this file,
+## this file does not by itself cause the resulting work to be covered by
+## the GNU General Public License. However the source code for this file
+## must still be made available in accordance with section (3) of the GNU
+## General Public License v2.
+##
+## This exception does not invalidate any other reasons why a work based
+## on this file might be covered by the GNU General Public License.
+## -------------------------------------------
+## ####ECOSGPLCOPYRIGHTEND####
+# ====================================================================
+######DESCRIPTIONBEGIN####
+#
+# Author(s): gthomas
+# Contributors: gthomas, tkoeller, tdrury, nickg
+# Date: 2001-07-12
+#
+#####DESCRIPTIONEND####
+#
+# ====================================================================
+
+cdl_package CYGPKG_HAL_ARM_AT91_EB42 {
+ display "Atmel EB42 eval board HAL"
+ parent CYGPKG_HAL_ARM_AT91
+ define_header hal_arm_at91_eb42.h
+ include_dir cyg/hal
+ hardware
+ description "
+ The EB42 HAL package provides the support needed to run
+ eCos on an Atmel EB42 eval board."
+
+ compile eb42_misc.c
+
+ requires { CYGHWR_HAL_ARM_AT91 == "M42800A" }
+
+ 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_at91.h>"
+ puts $::cdl_system_header "#define CYGBLD_HAL_PLATFORM_H <pkgconf/hal_arm_at91_eb42.h>"
+ puts $::cdl_header "#define HAL_PLATFORM_CPU \"ARM7TDMI\""
+ puts $::cdl_header "#define HAL_PLATFORM_BOARD \"Atmel AT91/EB42\""
+ puts $::cdl_header "#define HAL_PLATFORM_EXTRA \"\""
+ }
+
+ 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
+ default_value 1000000000
+ }
+ cdl_option CYGNUM_HAL_RTC_DENOMINATOR {
+ display "Real-time clock denominator"
+ flavor data
+ default_value 100
+ }
+ cdl_option CYGNUM_HAL_RTC_PERIOD {
+ display "Real-time clock period"
+ flavor data
+ default_value ((CYGNUM_HAL_ARM_AT91_CLOCK_SPEED/32) / CYGNUM_HAL_RTC_DENOMINATOR)
+ }
+ }
+
+ cdl_component CYG_HAL_STARTUP {
+ display "Startup type"
+ flavor data
+ default_value {"RAM"}
+ legal_values {"RAM" "ROM" "ROMRAM"}
+ no_define
+ define -file system.h CYG_HAL_STARTUP
+ description "
+ When targetting the AT91 EBxx 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 onboard
+ debug software such as Angel or eCos GDB stubs. Select 'rom'
+ when building a stand-alone application which will be put
+ into ROM. Using ROMRAM will allow the program to exist in
+ ROM, but be copied to RAM during startup."
+ }
+
+ # Real-time clock/counter specifics
+ cdl_option CYGNUM_HAL_ARM_AT91_CLOCK_SPEED {
+ display "CPU clock speed"
+ flavor data
+ default_value 32768000
+ }
+
+ 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"
+ active_if CYGPRI_HAL_VIRTUAL_VECTOR_DEBUG_CHANNEL_CONFIGURABLE
+ flavor data
+ legal_values 0 to CYGNUM_HAL_VIRTUAL_VECTOR_COMM_CHANNELS-1
+ default_value 0
+ description "
+ The AT91 EBxx 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"
+ active_if CYGPRI_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_CONFIGURABLE
+ flavor data
+ legal_values 0 to CYGNUM_HAL_VIRTUAL_VECTOR_COMM_CHANNELS-1
+ default_value 0
+ description "
+ The AT91 EBxx board has two serial ports. This option
+ chooses which port will be used for diagnostic output."
+ }
+
+ cdl_option CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_BAUD {
+ display "Diagnostic serial port baud rate"
+ flavor data
+ legal_values 9600 19200 38400 57600 115200
+ default_value 38400
+ description "
+ This option selects the baud rate used for the diagnostic port."
+ }
+
+ cdl_option CYGNUM_HAL_VIRTUAL_VECTOR_DEBUG_CHANNEL_BAUD {
+ display "GDB serial port baud rate"
+ flavor data
+ legal_values 9600 19200 38400 57600 115200
+ default_value 38400
+ description "
+ This option controls the baud rate used for the GDB connection."
+ }
+
+ 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" || CYG_HAL_STARTUP == "ROMRAM" }
+ 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 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_REDBOOT_HAL_OPTIONS {
+ display "Redboot HAL options"
+ flavor none
+ no_define
+ parent CYGPKG_REDBOOT
+ active_if CYGPKG_REDBOOT
+ description "
+ This option lists the target's requirements for a valid Redboot
+ configuration."
+
+ 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 $< $@
+ }
+
+ }
+ }
+
+ 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 { "arm-eabi"}
+ 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 { CYGBLD_GLOBAL_WARNFLAGS . CYGBLD_ARCH_CFLAGS .
+ "-mcpu=arm7tdmi -g -O2 -ffunction-sections -fdata-sections -fno-rtti -fno-exceptions " }
+ 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 { CYGBLD_ARCH_LDFLAGS . "-mcpu=arm7tdmi -Wl,--gc-sections -Wl,-static -g -nostdlib" }
+ description "
+ This option controls the global linker flags. Individual
+ packages may define options which override these global flags."
+ }
+ }
+
+ cdl_component CYGHWR_MEMORY_LAYOUT {
+ display "Memory layout"
+ flavor data
+ no_define
+ calculated { (CYG_HAL_STARTUP == "RAM") ? "arm_at91_eb42_ram" :
+ (CYG_HAL_STARTUP == "ROMRAM") ? "arm_at91_eb42_romram" :
+ "arm_at91_eb42_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_at91_eb42_ram.ldi>" :
+ (CYG_HAL_STARTUP == "ROMRAM") ? "<pkgconf/mlt_arm_at91_eb42_romram.ldi>" :
+ "<pkgconf/mlt_arm_at91_eb42_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_at91_eb42_ram.h>" :
+ (CYG_HAL_STARTUP == "ROMRAM") ? "<pkgconf/mlt_arm_at91_eb42_romram.h>" :
+ "<pkgconf/mlt_arm_at91_eb42_rom.h>" }
+ }
+ }
+}
diff --git a/ecos/packages/hal/arm/at91/eb42/current/include/hal_platform_ints.h b/ecos/packages/hal/arm/at91/eb42/current/include/hal_platform_ints.h
new file mode 100644
index 0000000..fa6eecc
--- /dev/null
+++ b/ecos/packages/hal/arm/at91/eb42/current/include/hal_platform_ints.h
@@ -0,0 +1,102 @@
+#ifndef CYGONCE_HAL_PLATFORM_INTS_H
+#define CYGONCE_HAL_PLATFORM_INTS_H
+//==========================================================================
+//
+// hal_platform_ints.h
+//
+// HAL Interrupt and clock assignments for AT91/EB42
+//
+//==========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//==========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): gthomas
+// Contributors: gthomas, nickg
+// Date: 2001-07-12
+// Purpose: Define Interrupt support
+// Description: The interrupt specifics for the AT91/EB42 board/platform are
+// defined here.
+//
+// Usage: #include <cyg/hal/hal_platform_ints.h>
+// ...
+//
+//
+//####DESCRIPTIONEND####
+//
+//==========================================================================
+
+#define CYGNUM_HAL_INTERRUPT_USART0 2
+#define CYGNUM_HAL_INTERRUPT_USART1 3
+#define CYGNUM_HAL_INTERRUPT_SPIA 4
+#define CYGNUM_HAL_INTERRUPT_SPIB 5
+#define CYGNUM_HAL_INTERRUPT_TIMER0 6
+#define CYGNUM_HAL_INTERRUPT_TIMER1 7
+#define CYGNUM_HAL_INTERRUPT_TIMER2 8
+#define CYGNUM_HAL_INTERRUPT_TIMER3 9
+#define CYGNUM_HAL_INTERRUPT_TIMER4 10
+#define CYGNUM_HAL_INTERRUPT_TIMER5 11
+#define CYGNUM_HAL_INTERRUPT_WATCHDOG 12
+#define CYGNUM_HAL_INTERRUPT_PIOA 13
+#define CYGNUM_HAL_INTERRUPT_PIOB 14
+#define CYGNUM_HAL_INTERRUPT_PMC 15
+
+#define CYGNUM_HAL_INTERRUPT_EXT3 28
+#define CYGNUM_HAL_INTERRUPT_EXT2 29
+#define CYGNUM_HAL_INTERRUPT_EXT1 30
+#define CYGNUM_HAL_INTERRUPT_EXT0 31
+
+#ifdef CYGHWR_HAL_ARM_AT91_FIQ
+#define CYGNUM_HAL_ISR_MIN 0
+#else
+#define CYGNUM_HAL_ISR_MIN 2
+#endif
+
+#define CYGNUM_HAL_ISR_MAX 31
+// Note: extra slots (0,1) to avoid messing with vector translation
+#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
+
+
+//----------------------------------------------------------------------------
+// Reset.
+
+__externC void hal_at91_reset_cpu(void);
+#define HAL_PLATFORM_RESET() hal_at91_reset_cpu()
+
+#define HAL_PLATFORM_RESET_ENTRY 0x01000000
+
+//----------------------------------------------------------------------------
+#endif // CYGONCE_HAL_PLATFORM_INTS_H
diff --git a/ecos/packages/hal/arm/at91/eb42/current/include/hal_platform_setup.h b/ecos/packages/hal/arm/at91/eb42/current/include/hal_platform_setup.h
new file mode 100644
index 0000000..10685b2
--- /dev/null
+++ b/ecos/packages/hal/arm/at91/eb42/current/include/hal_platform_setup.h
@@ -0,0 +1,199 @@
+#ifndef CYGONCE_HAL_PLATFORM_SETUP_H
+#define CYGONCE_HAL_PLATFORM_SETUP_H
+
+/*=============================================================================
+//
+// hal_platform_setup.h
+//
+// Platform specific support for HAL (assembly code)
+//
+//=============================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2009 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): gthomas
+// Contributors:gthomas, tdrury, nickg
+// Date: 2001-07-12
+// Purpose: AT91/EB42 platform specific support routines
+// Description:
+// Usage: #include <cyg/hal/hal_platform_setup.h>
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================*/
+
+#include <cyg/hal/var_io.h>
+
+//===========================================================================*/
+
+ .macro _led_init
+ ldr r0,=AT91_PIOB
+ ldr r1,=0x0000FF00
+ str r1,[r0,#AT91_PIO_PER]
+ str r1,[r0,#AT91_PIO_OER]
+ _led 0
+ _led 15
+ .endm
+
+ .macro _led y
+ ldr r0,=AT91_PIOB
+ ldr r1,=0x0000FF00
+ str r1,[r0,#AT91_PIO_SODR]
+ ldr r1,=(\y<<8)
+ str r1,[r0,#AT91_PIO_CODR]
+#if 0
+ mov r0,#0x00100000
+1: sub r0,r0,#1
+ cmp r0,#0
+ bne 1b
+#endif
+ .endm
+
+ .macro _pclock_init
+ ldr r0,=AT91_PMC // Power saving interface
+ ldr r1,=0xFFFFFFFF // Enable all peripheral [clocks]
+ str r1,[r0,#AT91_PMC_PCER]
+ .endm
+
+ .macro _pio_init
+ ldr r0,=AT91_PIOA // Disable PIO (so peripherals can use bits)
+ ldr r1,=0x000007E0 // Enable UARTS
+ str r1,[r0,#AT91_PIO_PDR]
+ .endm
+
+#define CYGHWR_LED_MACRO _led \x
+
+//===========================================================================*/
+
+#if defined(CYG_HAL_STARTUP_ROM) || defined(CYG_HAL_STARTUP_ROMRAM)
+
+
+#define AT91_PMC_CGMR_INIT0 AT91_PMC_CGMR_PRES_NONE | \
+ AT91_PMC_CGMR_PLLB | \
+ AT91_PMC_CGMR_PLL_MUL(999) | \
+ AT91_PMC_CGMR_PLL_CNT(197)
+
+#define AT91_PMC_CGMR_INIT1 AT91_PMC_CGMR_INIT0 | \
+ AT91_PMC_CGMR_MCKO_ENA | \
+ AT91_PMC_CGMR_MCK_MCK | \
+ AT91_PMC_CGMR_CSS_PLL
+
+
+ .macro _setup
+
+ _led_init
+
+
+ ldr r10,=_InitMemory // Initialize memory controller
+ movs r0,pc,lsr #20 // If ROM startup, PC < 0x100000
+ moveq r10,r10,lsl #12 // mask address to low 20 bits
+ moveq r10,r10,lsr #12
+ ldmia r10!,{r0-r9,r11-r12} // Table of initialization constants
+#if defined(CYG_HAL_STARTUP_ROMRAM)
+ ldr r10,=0x0000FFFF
+ and r12,r12,r10
+ ldr r10,=0x01000000
+ orr r12,r12,r10
+#endif
+ stmia r11!,{r0-r9} // Write to controller
+ mov pc,r12 // Change address space, break pipeline
+_InitMemory:
+ .long 0x01002535 // 0x01000000, 16MB, 2 cycles after transfer, 16-bit, 6 wait states
+ .long 0x02002121 // 0x02000000, 16MB, 0 cycles after transfer, 16-bit, 1 wait state
+ .long 0x20003E3E // 0x20000000, 1MB, 7 cycles after transfer, 8-bit, 8 wait states
+ .long 0x30000000 // unused
+ .long 0x40000000 // unused
+ .long 0x50000000 // unused
+ .long 0x60000000 // unused
+ .long 0x70000000 // unused
+ .long 0x00000001 // REMAP commande
+ .long 0x00000006 // 7 memory regions, standard read
+ .long AT91_EBI // External Bus Interface address
+ .long 10f // address where to jump
+10:
+
+ // Change system frequency from 32kHz to 32MHz.
+
+ // First enable the PLL
+ ldr r2,=AT91_PMC
+ ldr r3,=AT91_PMC_CGMR_INIT0
+ str r3,[r2,#AT91_PMC_CGMR]
+
+ // Wait for PLL to stabilize
+ mov r4,#AT91_PMC_SR_LOCK
+2:
+ ldr r3,[r2,#AT91_PMC_SR]
+ cmp r3,r4
+ bne 2b
+
+ // Now, switch CPU clock from Slow Clock to PLL
+ ldr r3,=AT91_PMC_CGMR_INIT1
+ str r3,[r2,#AT91_PMC_CGMR]
+
+ // All done, we should be running at 32MHz now
+
+#if defined(CYG_HAL_STARTUP_ROMRAM)
+ ldr r0,=0x01000000 // Relocate FLASH/ROM to on-chip RAM
+ ldr r1,=0x02000000 // RAM base & length
+ ldr r2,=0x02010000
+20: ldr r3,[r0],#4
+ str r3,[r1],#4
+ cmp r1,r2
+ bne 20b
+ ldr r0,=30f
+ mov pc,r0
+30:
+#endif
+ _pclock_init
+ _pio_init
+ .endm
+
+#define CYGSEM_HAL_ROM_RESET_USES_JUMP
+
+#else
+
+ .macro _setup
+ _led_init
+ _pclock_init
+ _pio_init
+ .endm
+
+#endif
+
+#define PLATFORM_SETUP1 _setup
+
+
+//-----------------------------------------------------------------------------
+// end of hal_platform_setup.h
+#endif // CYGONCE_HAL_PLATFORM_SETUP_H
diff --git a/ecos/packages/hal/arm/at91/eb42/current/include/pkgconf/mlt_arm_at91_eb42_ram.h b/ecos/packages/hal/arm/at91/eb42/current/include/pkgconf/mlt_arm_at91_eb42_ram.h
new file mode 100644
index 0000000..fb217ea
--- /dev/null
+++ b/ecos/packages/hal/arm/at91/eb42/current/include/pkgconf/mlt_arm_at91_eb42_ram.h
@@ -0,0 +1,17 @@
+// eCos memory layout - Mon Jul 23 11:49:04 2001
+
+// This is a generated file - do not edit
+
+#ifndef __ASSEMBLER__
+#include <cyg/infra/cyg_type.h>
+#include <stddef.h>
+
+#endif
+#define CYGMEM_REGION_ram (0x02000000)
+#define CYGMEM_REGION_ram_SIZE (0x00040000)
+#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 (0x02040000 - (size_t) CYG_LABEL_NAME (__heap1))
diff --git a/ecos/packages/hal/arm/at91/eb42/current/include/pkgconf/mlt_arm_at91_eb42_ram.ldi b/ecos/packages/hal/arm/at91/eb42/current/include/pkgconf/mlt_arm_at91_eb42_ram.ldi
new file mode 100644
index 0000000..54ef803
--- /dev/null
+++ b/ecos/packages/hal/arm/at91/eb42/current/include/pkgconf/mlt_arm_at91_eb42_ram.ldi
@@ -0,0 +1,28 @@
+// eCos memory layout - Mon Jul 23 11:49:04 2001
+
+// This is a generated file - do not edit
+
+#include <cyg/infra/cyg_type.inc>
+
+MEMORY
+{
+ sram : ORIGIN = 0x00000000, LENGTH = 0x2000
+ ram : ORIGIN = 0x02000000, LENGTH = 0x40000
+}
+
+SECTIONS
+{
+ SECTIONS_BEGIN
+ SECTION_fixed_vectors (sram, 0x20, LMA_EQ_VMA)
+ SECTION_rom_vectors (ram, 0x02008000, 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)
+ CYG_LABEL_DEFN(__heap1) = ALIGN (0x8);
+ SECTIONS_END
+}
diff --git a/ecos/packages/hal/arm/at91/eb42/current/include/pkgconf/mlt_arm_at91_eb42_rom.h b/ecos/packages/hal/arm/at91/eb42/current/include/pkgconf/mlt_arm_at91_eb42_rom.h
new file mode 100644
index 0000000..2109d27
--- /dev/null
+++ b/ecos/packages/hal/arm/at91/eb42/current/include/pkgconf/mlt_arm_at91_eb42_rom.h
@@ -0,0 +1,20 @@
+// eCos memory layout - Wed Apr 11 13:49:55 2001
+
+// This is a generated file - do not edit
+
+#ifndef __ASSEMBLER__
+#include <cyg/infra/cyg_type.h>
+#include <stddef.h>
+
+#endif
+#define CYGMEM_REGION_ram (0x02000000)
+#define CYGMEM_REGION_ram_SIZE (0x00040000)
+#define CYGMEM_REGION_ram_ATTR (CYGMEM_REGION_ATTR_R | CYGMEM_REGION_ATTR_W)
+#define CYGMEM_REGION_rom (0x01000000)
+#define CYGMEM_REGION_rom_SIZE (0x00100000)
+#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 (0x02040000 - (size_t) CYG_LABEL_NAME (__heap1))
diff --git a/ecos/packages/hal/arm/at91/eb42/current/include/pkgconf/mlt_arm_at91_eb42_rom.ldi b/ecos/packages/hal/arm/at91/eb42/current/include/pkgconf/mlt_arm_at91_eb42_rom.ldi
new file mode 100644
index 0000000..146188d
--- /dev/null
+++ b/ecos/packages/hal/arm/at91/eb42/current/include/pkgconf/mlt_arm_at91_eb42_rom.ldi
@@ -0,0 +1,29 @@
+// eCos memory layout - Wed Apr 11 13:49:55 2001
+
+// This is a generated file - do not edit
+
+#include <cyg/infra/cyg_type.inc>
+
+MEMORY
+{
+ sram : ORIGIN = 0x00000000, LENGTH = 0x2000
+ ram : ORIGIN = 0x02000000, LENGTH = 0x40000
+ rom : ORIGIN = 0x01000000, LENGTH = 0x100000
+}
+
+SECTIONS
+{
+ SECTIONS_BEGIN
+ SECTION_rom_vectors (rom, 0x01000000, LMA_EQ_VMA)
+ SECTION_text (rom, ALIGN (0x1), 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 (sram, 0x20, LMA_EQ_VMA)
+ SECTION_data (ram, 0x02000000, FOLLOWING (.gcc_except_table))
+ SECTION_bss (ram, ALIGN (0x4), LMA_EQ_VMA)
+ CYG_LABEL_DEFN(__heap1) = ALIGN (0x8);
+ SECTIONS_END
+}
diff --git a/ecos/packages/hal/arm/at91/eb42/current/include/pkgconf/mlt_arm_at91_eb42_romram.h b/ecos/packages/hal/arm/at91/eb42/current/include/pkgconf/mlt_arm_at91_eb42_romram.h
new file mode 100644
index 0000000..fb217ea
--- /dev/null
+++ b/ecos/packages/hal/arm/at91/eb42/current/include/pkgconf/mlt_arm_at91_eb42_romram.h
@@ -0,0 +1,17 @@
+// eCos memory layout - Mon Jul 23 11:49:04 2001
+
+// This is a generated file - do not edit
+
+#ifndef __ASSEMBLER__
+#include <cyg/infra/cyg_type.h>
+#include <stddef.h>
+
+#endif
+#define CYGMEM_REGION_ram (0x02000000)
+#define CYGMEM_REGION_ram_SIZE (0x00040000)
+#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 (0x02040000 - (size_t) CYG_LABEL_NAME (__heap1))
diff --git a/ecos/packages/hal/arm/at91/eb42/current/include/pkgconf/mlt_arm_at91_eb42_romram.ldi b/ecos/packages/hal/arm/at91/eb42/current/include/pkgconf/mlt_arm_at91_eb42_romram.ldi
new file mode 100644
index 0000000..54ef803
--- /dev/null
+++ b/ecos/packages/hal/arm/at91/eb42/current/include/pkgconf/mlt_arm_at91_eb42_romram.ldi
@@ -0,0 +1,28 @@
+// eCos memory layout - Mon Jul 23 11:49:04 2001
+
+// This is a generated file - do not edit
+
+#include <cyg/infra/cyg_type.inc>
+
+MEMORY
+{
+ sram : ORIGIN = 0x00000000, LENGTH = 0x2000
+ ram : ORIGIN = 0x02000000, LENGTH = 0x40000
+}
+
+SECTIONS
+{
+ SECTIONS_BEGIN
+ SECTION_fixed_vectors (sram, 0x20, LMA_EQ_VMA)
+ SECTION_rom_vectors (ram, 0x02008000, 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)
+ CYG_LABEL_DEFN(__heap1) = ALIGN (0x8);
+ SECTIONS_END
+}
diff --git a/ecos/packages/hal/arm/at91/eb42/current/include/plf_io.h b/ecos/packages/hal/arm/at91/eb42/current/include/plf_io.h
new file mode 100644
index 0000000..be358b3
--- /dev/null
+++ b/ecos/packages/hal/arm/at91/eb42/current/include/plf_io.h
@@ -0,0 +1,71 @@
+#ifndef CYGONCE_HAL_PLF_IO_H
+#define CYGONCE_HAL_PLF_IO_H
+//=============================================================================
+//
+// plf_io.h
+//
+// EB42 board specific registers
+//
+//=============================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): tkoeller
+// Contributors: tdrury, nickg
+// Date: 2002-06-22
+// Purpose: Atmel EB42 board specific registers
+// Description:
+// Usage: #include <cyg/hal/plf_io.h>
+//
+//####DESCRIPTIONEND####
+//
+//=============================================================================
+// On-chip device base addresses
+
+#define AT91_PIOA 0xFFFEC000
+#define AT91_PIOB 0xFFFF0000
+
+#define AT91_PIO AT91_PIOB
+
+#define AT91_USART0 0xFFFC0000
+#define AT91_USART1 0xFFFC4000
+
+#define AT91_TCB0 0xFFFD0000
+#define AT91_TCB1 0xFFFD4000
+
+#define AT91_TC AT91_TCB0
+
+//-----------------------------------------------------------------------------
+// end of plf_io.h
+#endif // CYGONCE_HAL_PLF_IO_H
diff --git a/ecos/packages/hal/arm/at91/eb42/current/misc/redboot_RAM.ecm b/ecos/packages/hal/arm/at91/eb42/current/misc/redboot_RAM.ecm
new file mode 100644
index 0000000..ff4b350
--- /dev/null
+++ b/ecos/packages/hal/arm/at91/eb42/current/misc/redboot_RAM.ecm
@@ -0,0 +1,49 @@
+cdl_savefile_version 1;
+cdl_savefile_command cdl_savefile_version {};
+cdl_savefile_command cdl_savefile_command {};
+cdl_savefile_command cdl_configuration { description hardware template package };
+cdl_savefile_command cdl_package { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_component { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_option { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_interface { value_source user_value wizard_value inferred_value };
+
+cdl_configuration eCos {
+ package CYGPKG_IO_FLASH current ;
+};
+
+cdl_option CYGNUM_HAL_COMMON_INTERRUPTS_STACK_SIZE {
+ user_value 6144
+};
+
+cdl_option CYGDBG_HAL_COMMON_INTERRUPTS_SAVE_MINIMUM_CONTEXT {
+ user_value 0
+};
+
+cdl_option CYGDBG_HAL_COMMON_CONTEXT_SAVE_MINIMUM {
+ inferred_value 0
+};
+
+cdl_option CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS {
+ inferred_value 1
+};
+
+cdl_option CYGSEM_HAL_USE_ROM_MONITOR {
+ inferred_value 0 0
+};
+
+cdl_component CYGBLD_BUILD_REDBOOT {
+ user_value 1
+};
+
+cdl_option CYGOPT_REDBOOT_FIS {
+ user_value 0
+};
+
+cdl_component CYGSEM_REDBOOT_FLASH_CONFIG {
+ user_value 0
+};
+
+cdl_option CYGBLD_BUILD_REDBOOT_WITH_EXEC {
+ user_value 0
+};
+
diff --git a/ecos/packages/hal/arm/at91/eb42/current/misc/redboot_ROM.ecm b/ecos/packages/hal/arm/at91/eb42/current/misc/redboot_ROM.ecm
new file mode 100644
index 0000000..ac0acb4
--- /dev/null
+++ b/ecos/packages/hal/arm/at91/eb42/current/misc/redboot_ROM.ecm
@@ -0,0 +1,56 @@
+cdl_savefile_version 1;
+cdl_savefile_command cdl_savefile_version {};
+cdl_savefile_command cdl_savefile_command {};
+cdl_savefile_command cdl_configuration { description hardware template package };
+cdl_savefile_command cdl_package { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_component { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_option { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_interface { value_source user_value wizard_value inferred_value };
+
+cdl_configuration eCos {
+ package CYGPKG_IO_FLASH current ;
+};
+
+cdl_option CYGNUM_HAL_COMMON_INTERRUPTS_STACK_SIZE {
+ user_value 6144
+};
+
+cdl_option CYGDBG_HAL_COMMON_INTERRUPTS_SAVE_MINIMUM_CONTEXT {
+ user_value 0
+};
+
+cdl_option CYGDBG_HAL_COMMON_CONTEXT_SAVE_MINIMUM {
+ inferred_value 0
+};
+
+cdl_option CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS {
+ inferred_value 1
+};
+
+cdl_option CYGSEM_HAL_ROM_MONITOR {
+ inferred_value 1
+};
+
+cdl_option CYGSEM_HAL_USE_ROM_MONITOR {
+ inferred_value 0 0
+};
+
+cdl_component CYG_HAL_STARTUP {
+ user_value ROM
+};
+
+cdl_component CYGBLD_BUILD_REDBOOT {
+ user_value 1
+};
+
+cdl_option CYGOPT_REDBOOT_FIS {
+ user_value 0
+};
+
+cdl_component CYGSEM_REDBOOT_FLASH_CONFIG {
+ user_value 0
+};
+
+cdl_option CYGBLD_BUILD_REDBOOT_WITH_EXEC {
+ user_value 0
+};
diff --git a/ecos/packages/hal/arm/at91/eb42/current/misc/redboot_ROMRAM.ecm b/ecos/packages/hal/arm/at91/eb42/current/misc/redboot_ROMRAM.ecm
new file mode 100644
index 0000000..515d25e
--- /dev/null
+++ b/ecos/packages/hal/arm/at91/eb42/current/misc/redboot_ROMRAM.ecm
@@ -0,0 +1,57 @@
+cdl_savefile_version 1;
+cdl_savefile_command cdl_savefile_version {};
+cdl_savefile_command cdl_savefile_command {};
+cdl_savefile_command cdl_configuration { description hardware template package };
+cdl_savefile_command cdl_package { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_component { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_option { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_interface { value_source user_value wizard_value inferred_value };
+
+cdl_configuration eCos {
+ package CYGPKG_IO_FLASH current ;
+};
+
+cdl_option CYGNUM_HAL_COMMON_INTERRUPTS_STACK_SIZE {
+ user_value 6144
+};
+
+cdl_option CYGDBG_HAL_COMMON_INTERRUPTS_SAVE_MINIMUM_CONTEXT {
+ user_value 0
+};
+
+cdl_option CYGDBG_HAL_COMMON_CONTEXT_SAVE_MINIMUM {
+ inferred_value 0
+};
+
+cdl_option CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS {
+ inferred_value 1
+};
+
+cdl_option CYGSEM_HAL_ROM_MONITOR {
+ user_value 1
+};
+
+cdl_option CYGSEM_HAL_USE_ROM_MONITOR {
+ inferred_value 0 0
+};
+
+cdl_component CYG_HAL_STARTUP {
+ user_value ROMRAM
+};
+
+cdl_component CYGBLD_BUILD_REDBOOT {
+ user_value 1
+};
+
+cdl_option CYGOPT_REDBOOT_FIS {
+ user_value 0
+};
+
+cdl_component CYGSEM_REDBOOT_FLASH_CONFIG {
+ user_value 0
+};
+
+cdl_option CYGBLD_BUILD_REDBOOT_WITH_EXEC {
+ user_value 0
+};
+
diff --git a/ecos/packages/hal/arm/at91/eb42/current/src/eb42_misc.c b/ecos/packages/hal/arm/at91/eb42/current/src/eb42_misc.c
new file mode 100644
index 0000000..eb6119c
--- /dev/null
+++ b/ecos/packages/hal/arm/at91/eb42/current/src/eb42_misc.c
@@ -0,0 +1,90 @@
+//==========================================================================
+//
+// eb42_misc.c
+//
+// HAL misc board support code for Atmel EB42 eval board
+//
+//==========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//==========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): gthomas
+// Contributors: gthomas, jskov, tkoeller, tdrury, nickg
+// Date: 2002-05-30
+// Purpose: HAL board support
+// Description: Implementations of HAL board interfaces
+//
+//####DESCRIPTIONEND####
+//
+//========================================================================*/
+
+#include <pkgconf/hal.h>
+
+#include <cyg/infra/cyg_type.h> // base types
+#include <cyg/hal/hal_io.h> // low level i/o
+#include <cyg/hal/var_io.h> // common registers
+#include <cyg/hal/plf_io.h> // platform registers
+
+void
+hal_at91_set_leds(int val)
+{
+ HAL_WRITE_UINT32(AT91_PIOB+AT91_PIO_SODR, 0x0000FF00); // turn all LEDs off
+ HAL_WRITE_UINT32(AT91_PIOB+AT91_PIO_CODR, val<<8); // turn desired LEDs on
+}
+
+void
+hal_at91_led_on(int val)
+{
+ HAL_WRITE_UINT32(AT91_PIOB+AT91_PIO_CODR, val<<8);
+}
+
+void
+hal_at91_led_off(int val)
+{
+ HAL_WRITE_UINT32(AT91_PIOB+AT91_PIO_SODR, val<<8);
+}
+
+int
+hal_at91_get_leds(void)
+{
+ int leds = 0;
+ HAL_READ_UINT32(AT91_PIOB+AT91_PIO_PDSR, leds);
+ return (leds>>8)&0xFF;
+}
+
+
+
+
+//--------------------------------------------------------------------------
+// EOF eb42_misc.c
diff --git a/ecos/packages/hal/arm/at91/eb55/current/ChangeLog b/ecos/packages/hal/arm/at91/eb55/current/ChangeLog
new file mode 100644
index 0000000..dbd4386
--- /dev/null
+++ b/ecos/packages/hal/arm/at91/eb55/current/ChangeLog
@@ -0,0 +1,101 @@
+2009-03-23 John Dallaway <john@dallaway.org.uk>
+
+ * include/hal_platform_setup.h: Tweak LED manipulation routines to
+ allow building for Thumb.
+
+2009-02-12 Nick Garnett <nickg@ecoscentric.com>
+
+ * misc/redboot_RAM.ecm:
+ * misc/redboot_ROM.ecm: Add CYGPKG_ERROR to resolve configure-time
+ errors.
+
+2009-01-31 Bart Veer <bartv@ecoscentric.com>
+
+ * cdl/hal_arm_at91_eb55.cdl: update compiler flags for gcc 4.x
+
+2009-01-24 Bart Veer <bartv@ecoscentric.com>
+
+ * cdl/hal_arm_at91_eb55.cdl: switch from arm-elf-gcc to
+ arm-eabi-gcc. Remove -mno-short-load-words.
+
+2004-09-16 Andrea Michelotti <amichelotti@atmel.com>
+
+ * include/hal_platform_ints.h: When CYGHWR_HAL_ARM_AT91_FIQ is defined
+ CYGNUM_HAL_ISR_MIN is equal to zero.
+
+2004-08-30 Thomas Koeller <thomas.koeller@baslerweb.com>
+
+ * cdl/hal_arm_at91_eb55.cdl: Reversed change of 2004-02-12.
+ The options moved to the variant hal were not truly common
+ amoung all platforms.
+
+2004-04-08 Andrew Lunn <andrew.lunn@ascom.ch>
+
+ * misc/redboot_ROMRAM.ecm: Deleted since this is no longer
+ supported.
+
+2004-04-08 Alan Bowman <abowman@synaptics-uk.com>
+
+ * include/pkgconf/mlt_arm_at91_eb55_romram.ldi: Alter rom_vectors
+ section to match the startup code for ROMRAM applications
+
+2004-02-12 Jani Monoses <jani@iv.ro>
+
+ * cdl/hal_arm_at91_eb55.cdl: Move configuration options
+ common to all AT91 EB boards up to AT91 variant .cdl.
+
+2003-12-16 Gary Thomas <gary@mlbassoc.com>
+
+ * misc/redboot_ROMRAM.ecm:
+ CYGNUM_FLASH_WORKSPACE_SIZE is no longer used.
+
+2003-09-30 Jani Monoses <jani@iv.ro>
+
+ * cdl/hal_arm_at91_eb55.cdl: Interfaces are already implemented by
+ AT91 variant .cdl, do not duplicate them here.
+
+2003-07-15 Jonathan Larmour <jifl@eCosCentric.com>
+
+ * include/hal_platform_ints.h (HAL_PLATFORM_RESET): Actually use
+ hal_at91_reset_cpu().
+
+2003-05-12 Nick Garnett <nickg@balti.calivar.com>
+
+ * cdl/hal_arm_at91_eb55.cdl:
+ * include/plf_io.h:
+ * include/hal_platform_setup.h:
+ * include/hal_platform_ints.h:
+ * include/pkgconf/mlt_arm_at91_eb55_ram.ldi:
+ * include/pkgconf/mlt_arm_at91_eb55_ram.h:
+ * include/pkgconf/mlt_arm_at91_eb55_rom.ldi:
+ * include/pkgconf/mlt_arm_at91_eb55_rom.h:
+ * include/pkgconf/mlt_arm_at91_eb55_romram.ldi:
+ * include/pkgconf/mlt_arm_at91_eb55_romram.h:
+ * src/eb55_misc.c:
+ New HAL added to support the Atmel EB55 board. Adapted from the
+ EB40 and EB40A HALs by Thomas Koeller and Tim Drury.
+
+
+//===========================================================================
+// ####GPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2009 Free Software Foundation, Inc.
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 2 or (at your option) any
+// later version.
+//
+// This program is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the
+// Free Software Foundation, Inc., 51 Franklin Street,
+// Fifth Floor, Boston, MA 02110-1301, USA.
+// -------------------------------------------
+// ####GPLCOPYRIGHTEND####
+//===========================================================================
diff --git a/ecos/packages/hal/arm/at91/eb55/current/cdl/hal_arm_at91_eb55.cdl b/ecos/packages/hal/arm/at91/eb55/current/cdl/hal_arm_at91_eb55.cdl
new file mode 100644
index 0000000..2a30394
--- /dev/null
+++ b/ecos/packages/hal/arm/at91/eb55/current/cdl/hal_arm_at91_eb55.cdl
@@ -0,0 +1,299 @@
+# ====================================================================
+#
+# hal_arm_at91_eb55.cdl
+#
+# ARM AT91 EB55 HAL package configuration data
+#
+# ====================================================================
+## ####ECOSGPLCOPYRIGHTBEGIN####
+## -------------------------------------------
+## This file is part of eCos, the Embedded Configurable Operating System.
+## Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
+##
+## eCos is free software; you can redistribute it and/or modify it under
+## the terms of the GNU General Public License as published by the Free
+## Software Foundation; either version 2 or (at your option) any later
+## version.
+##
+## eCos is distributed in the hope that it will be useful, but WITHOUT
+## ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+## FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+## for more details.
+##
+## You should have received a copy of the GNU General Public License
+## along with eCos; if not, write to the Free Software Foundation, Inc.,
+## 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+##
+## As a special exception, if other files instantiate templates or use
+## macros or inline functions from this file, or you compile this file
+## and link it with other works to produce a work based on this file,
+## this file does not by itself cause the resulting work to be covered by
+## the GNU General Public License. However the source code for this file
+## must still be made available in accordance with section (3) of the GNU
+## General Public License v2.
+##
+## This exception does not invalidate any other reasons why a work based
+## on this file might be covered by the GNU General Public License.
+## -------------------------------------------
+## ####ECOSGPLCOPYRIGHTEND####
+# ====================================================================
+######DESCRIPTIONBEGIN####
+#
+# Author(s): gthomas
+# Contributors: gthomas, tkoeller, tdrury, nickg
+# Date: 2001-07-12
+#
+#####DESCRIPTIONEND####
+#
+# ====================================================================
+
+cdl_package CYGPKG_HAL_ARM_AT91_EB55 {
+ display "Atmel EB55 eval board HAL"
+ parent CYGPKG_HAL_ARM_AT91
+ define_header hal_arm_at91_eb55.h
+ include_dir cyg/hal
+ hardware
+ description "
+ The EB55 HAL package provides the support needed to run
+ eCos on an Atmel EB55 eval board."
+
+ compile eb55_misc.c
+
+ requires { CYGHWR_HAL_ARM_AT91 == "M55800A" }
+
+ 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_at91.h>"
+ puts $::cdl_system_header "#define CYGBLD_HAL_PLATFORM_H <pkgconf/hal_arm_at91_eb55.h>"
+ puts $::cdl_header "#define HAL_PLATFORM_CPU \"ARM7TDMI\""
+ puts $::cdl_header "#define HAL_PLATFORM_BOARD \"Atmel AT91/EB55\""
+ puts $::cdl_header "#define HAL_PLATFORM_EXTRA \"\""
+ }
+
+ 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
+ default_value 1000000000
+ }
+ cdl_option CYGNUM_HAL_RTC_DENOMINATOR {
+ display "Real-time clock denominator"
+ flavor data
+ default_value 100
+ }
+ cdl_option CYGNUM_HAL_RTC_PERIOD {
+ display "Real-time clock period"
+ flavor data
+ default_value ((CYGNUM_HAL_ARM_AT91_CLOCK_SPEED/32) / CYGNUM_HAL_RTC_DENOMINATOR)
+ }
+ }
+
+ cdl_component CYG_HAL_STARTUP {
+ display "Startup type"
+ flavor data
+ default_value {"RAM"}
+ legal_values {"RAM" "ROM" "ROMRAM"}
+ no_define
+ define -file system.h CYG_HAL_STARTUP
+ description "
+ When targetting the AT91 EBxx 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 onboard
+ debug software such as Angel or eCos GDB stubs. Select 'rom'
+ when building a stand-alone application which will be put
+ into ROM. Using ROMRAM will allow the program to exist in
+ ROM, but be copied to RAM during startup."
+ }
+
+ # Real-time clock/counter specifics
+ cdl_option CYGNUM_HAL_ARM_AT91_CLOCK_SPEED {
+ display "CPU clock speed"
+ flavor data
+ default_value 32768000
+ }
+
+ 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"
+ active_if CYGPRI_HAL_VIRTUAL_VECTOR_DEBUG_CHANNEL_CONFIGURABLE
+ flavor data
+ legal_values 0 to CYGNUM_HAL_VIRTUAL_VECTOR_COMM_CHANNELS-1
+ default_value 0
+ description "
+ The AT91 EBxx 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"
+ active_if CYGPRI_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_CONFIGURABLE
+ flavor data
+ legal_values 0 to CYGNUM_HAL_VIRTUAL_VECTOR_COMM_CHANNELS-1
+ default_value 0
+ description "
+ The AT91 EBxx board has two serial ports. This option
+ chooses which port will be used for diagnostic output."
+ }
+
+ cdl_option CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_BAUD {
+ display "Diagnostic serial port baud rate"
+ flavor data
+ legal_values 9600 19200 38400 57600 115200
+ default_value 38400
+ description "
+ This option selects the baud rate used for the diagnostic port."
+ }
+
+ cdl_option CYGNUM_HAL_VIRTUAL_VECTOR_DEBUG_CHANNEL_BAUD {
+ display "GDB serial port baud rate"
+ flavor data
+ legal_values 9600 19200 38400 57600 115200
+ default_value 38400
+ description "
+ This option controls the baud rate used for the GDB connection."
+ }
+
+ 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" || CYG_HAL_STARTUP == "ROMRAM" }
+ 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 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_REDBOOT_HAL_OPTIONS {
+ display "Redboot HAL options"
+ flavor none
+ no_define
+ parent CYGPKG_REDBOOT
+ active_if CYGPKG_REDBOOT
+ description "
+ This option lists the target's requirements for a valid Redboot
+ configuration."
+
+ 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 $< $@
+ }
+
+ }
+ }
+
+ 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 { "arm-eabi"}
+ 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 { CYGBLD_GLOBAL_WARNFLAGS . CYGBLD_ARCH_CFLAGS .
+ "-mcpu=arm7tdmi -g -O2 -ffunction-sections -fdata-sections -fno-rtti -fno-exceptions " }
+ 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 { CYGBLD_ARCH_LDFLAGS . "-mcpu=arm7tdmi -Wl,--gc-sections -Wl,-static -g -nostdlib" }
+ description "
+ This option controls the global linker flags. Individual
+ packages may define options which override these global flags."
+ }
+ }
+
+ cdl_component CYGHWR_MEMORY_LAYOUT {
+ display "Memory layout"
+ flavor data
+ no_define
+ calculated { (CYG_HAL_STARTUP == "RAM") ? "arm_at91_eb55_ram" :
+ (CYG_HAL_STARTUP == "ROMRAM") ? "arm_at91_eb55_romram" :
+ "arm_at91_eb55_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_at91_eb55_ram.ldi>" :
+ (CYG_HAL_STARTUP == "ROMRAM") ? "<pkgconf/mlt_arm_at91_eb55_romram.ldi>" :
+ "<pkgconf/mlt_arm_at91_eb55_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_at91_eb55_ram.h>" :
+ (CYG_HAL_STARTUP == "ROMRAM") ? "<pkgconf/mlt_arm_at91_eb55_romram.h>" :
+ "<pkgconf/mlt_arm_at91_eb55_rom.h>" }
+ }
+ }
+
+}
diff --git a/ecos/packages/hal/arm/at91/eb55/current/include/hal_platform_ints.h b/ecos/packages/hal/arm/at91/eb55/current/include/hal_platform_ints.h
new file mode 100644
index 0000000..ff2a20d
--- /dev/null
+++ b/ecos/packages/hal/arm/at91/eb55/current/include/hal_platform_ints.h
@@ -0,0 +1,112 @@
+#ifndef CYGONCE_HAL_PLATFORM_INTS_H
+#define CYGONCE_HAL_PLATFORM_INTS_H
+//==========================================================================
+//
+// hal_platform_ints.h
+//
+// HAL Interrupt and clock assignments for AT91/EB55
+//
+//==========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//==========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): gthomas
+// Contributors: gthomas, nickg
+// Date: 2001-07-12
+// Purpose: Define Interrupt support
+// Description: The interrupt specifics for the AT91/EB55 board/platform are
+// defined here.
+//
+// Usage: #include <cyg/hal/hal_platform_ints.h>
+// ...
+//
+//
+//####DESCRIPTIONEND####
+//
+//==========================================================================
+
+#define CYGNUM_HAL_INTERRUPT_USART0 2
+#define CYGNUM_HAL_INTERRUPT_USART1 3
+#define CYGNUM_HAL_INTERRUPT_USART2 4
+#define CYGNUM_HAL_INTERRUPT_SPI 5
+#define CYGNUM_HAL_INTERRUPT_TIMER0 6
+#define CYGNUM_HAL_INTERRUPT_TIMER1 7
+#define CYGNUM_HAL_INTERRUPT_TIMER2 8
+#define CYGNUM_HAL_INTERRUPT_TIMER3 9
+#define CYGNUM_HAL_INTERRUPT_TIMER4 10
+#define CYGNUM_HAL_INTERRUPT_TIMER5 11
+#define CYGNUM_HAL_INTERRUPT_WATCHDOG 12
+#define CYGNUM_HAL_INTERRUPT_PIOA 13
+#define CYGNUM_HAL_INTERRUPT_PIOB 14
+#define CYGNUM_HAL_INTERRUPT_AD0 15
+#define CYGNUM_HAL_INTERRUPT_AD1 16
+#define CYGNUM_HAL_INTERRUPT_DA0 17
+#define CYGNUM_HAL_INTERRUPT_DA1 18
+#define CYGNUM_HAL_INTERRUPT_RTC0 19
+#define CYGNUM_HAL_INTERRUPT_APMC 20
+#define CYGNUM_HAL_INTERRUPT_RES0 21
+#define CYGNUM_HAL_INTERRUPT_RES1 22
+#define CYGNUM_HAL_INTERRUPT_SLCK 23
+#define CYGNUM_HAL_INTERRUPT_EXT5 24
+#define CYGNUM_HAL_INTERRUPT_EXT4 25
+#define CYGNUM_HAL_INTERRUPT_EXT3 26
+#define CYGNUM_HAL_INTERRUPT_EXT2 27
+#define CYGNUM_HAL_INTERRUPT_EXT1 28
+#define CYGNUM_HAL_INTERRUPT_EXT0 29
+#define CYGNUM_HAL_INTERRUPT_COMMRX 30
+#define CYGNUM_HAL_INTERRUPT_COMMTX 31
+
+#ifdef CYGHWR_HAL_ARM_AT91_FIQ
+#define CYGNUM_HAL_ISR_MIN 0
+#else
+#define CYGNUM_HAL_ISR_MIN 2
+#endif
+
+#define CYGNUM_HAL_ISR_MAX 31
+// Note: extra slots (0,1) to avoid messing with vector translation
+#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
+
+
+//----------------------------------------------------------------------------
+// Reset.
+
+__externC void hal_at91_reset_cpu(void);
+#define HAL_PLATFORM_RESET() hal_at91_reset_cpu()
+
+#define HAL_PLATFORM_RESET_ENTRY 0x01000000
+
+#endif // CYGONCE_HAL_PLATFORM_INTS_H
diff --git a/ecos/packages/hal/arm/at91/eb55/current/include/hal_platform_setup.h b/ecos/packages/hal/arm/at91/eb55/current/include/hal_platform_setup.h
new file mode 100644
index 0000000..8fc3432
--- /dev/null
+++ b/ecos/packages/hal/arm/at91/eb55/current/include/hal_platform_setup.h
@@ -0,0 +1,218 @@
+#ifndef CYGONCE_HAL_PLATFORM_SETUP_H
+#define CYGONCE_HAL_PLATFORM_SETUP_H
+
+/*=============================================================================
+//
+// hal_platform_setup.h
+//
+// Platform specific support for HAL (assembly code)
+//
+//=============================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2009 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): gthomas
+// Contributors:gthomas, tdrury, nickg
+// Date: 2001-07-12
+// Purpose: AT91/EB55 platform specific support routines
+// Description:
+// Usage: #include <cyg/hal/hal_platform_setup.h>
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================*/
+
+#include <cyg/hal/var_io.h>
+
+//===========================================================================*/
+
+ .macro _led_init
+ ldr r0,=AT91_PIOB
+ ldr r1,=0x0000FF00
+ str r1,[r0,#AT91_PIO_PER]
+ str r1,[r0,#AT91_PIO_OER]
+ _led 0
+ .endm
+
+ .macro _led y
+ ldr r0,=AT91_PIOB
+ ldr r1,=0x0000FF00
+ str r1,[r0,#AT91_PIO_SODR]
+ ldr r1,=(\y<<8)
+ str r1,[r0,#AT91_PIO_CODR]
+#if 0
+ mov r0,#0x00100000
+9: sub r0,r0,#1
+ cmp r0,#0
+ bne 9b
+#endif
+ .endm
+
+ .macro _pclock_init
+ ldr r0,=AT91_PMC // Power saving interface
+ ldr r1,=0xFFFFFFFF // Enable all peripheral [clocks]
+ str r1,[r0,#AT91_PMC_PCER]
+ .endm
+
+ .macro _pio_init
+ ldr r0,=AT91_PIOA // Disable PIO (so peripherals can use bits)
+ ldr r1,=(0x3f<<14) // Enable UARTS 0/1 to use pins
+ str r1,[r0,#AT91_PIO_PDR]
+ .endm
+
+#define CYGHWR_LED_MACRO _led \x
+
+//===========================================================================*/
+
+#if defined(CYG_HAL_STARTUP_ROM) || defined(CYG_HAL_STARTUP_ROMRAM)
+
+#define AT91_PMC_CGMR_INIT0 (AT91_PMC_CGMR_MOSC_XTAL | \
+ AT91_PMC_CGMR_MOSC_ENA | \
+ AT91_PMC_CGMR_OSC_CNT(47))
+
+#define AT91_PMC_CGMR_INIT1 (AT91_PMC_CGMR_INIT0 | \
+ AT91_PMC_CGMR_CSS_MOSC)
+
+#define AT91_PMC_CGMR_INIT2 (AT91_PMC_CGMR_INIT1 | \
+ AT91_PMC_CGMR_PLL_MUL(1) | \
+ AT91_PMC_CGMR_PLL_CNT(255))
+
+#define AT91_PMC_CGMR_INIT3 (AT91_PMC_CGMR_INIT0 | \
+ AT91_PMC_CGMR_PLL_MUL(1) | \
+ AT91_PMC_CGMR_PLL_CNT(3) | \
+ AT91_PMC_CGMR_CSS_PLL)
+
+ .macro _setup
+ _led_init
+
+ // Change system frequency from 32kHz to 32MHz.
+
+ // First enable the master oscillator to run at 16MHz from
+ // external crystal.
+ ldr r2,=AT91_PMC
+ ldr r3,=AT91_PMC_CGMR_INIT0
+ str r3,[r2,#AT91_PMC_CGMR]
+
+ // Wait for MOSC to stabilize.
+ mov r4,#AT91_PMC_SR_MOSCS
+1:
+ ldr r3,[r2,#AT91_PMC_SR]
+ and r3,r4,r3
+ cmp r3,r4 //#AT91_PMC_SR_MOSCS
+ bne 1b
+
+ // Now switch CPU clock to use master oscillator, after this we
+ // should be running at 16MHz.
+ ldr r3,=AT91_PMC_CGMR_INIT1
+ str r3,[r2,#AT91_PMC_CGMR]
+
+ // Now enable PLL to run at twice MOSC frequency
+ ldr r3,=AT91_PMC_CGMR_INIT2
+ str r3,[r2,#AT91_PMC_CGMR]
+
+ // Wait for PLL to stabilize
+ mov r4,#AT91_PMC_SR_LOCK
+2:
+ ldr r3,[r2,#AT91_PMC_SR]
+ and r3,r4,r3
+ cmp r3,r4
+ bne 2b
+
+ // Finally, switch CPU clock from MOSC to PLL
+ ldr r3,=AT91_PMC_CGMR_INIT3
+ str r3,[r2,#AT91_PMC_CGMR]
+
+ // All done, we should be running at 32MHz now
+
+ ldr r10,=_InitMemory // Initialize memory controller
+ movs r0,pc,lsr #20 // If ROM startup, PC < 0x100000
+ moveq r10,r10,lsl #12 // mask address to low 20 bits
+ moveq r10,r10,lsr #12
+ ldmia r10!,{r0-r9,r11-r12} // Table of initialization constants
+#if defined(CYG_HAL_STARTUP_ROMRAM)
+ ldr r10,=0x0000FFFF
+ and r12,r12,r10
+ ldr r10,=0x01000000
+ orr r12,r12,r10
+#endif
+ stmia r11!,{r0-r9} // Write to controller
+ mov pc,r12 // Change address space, break pipeline
+_InitMemory:
+ .long 0x01002529 // 0x01000000, 16MB, 2 cycles after transfer, 16-bit, 6 wait states
+ .long 0x02002121 // 0x02000000, 16MB, 0 cycles after transfer, 16-bit, 1 wait state
+ .long 0x20000000 // unused
+ .long 0x30000000 // unused
+ .long 0x40000000 // unused
+ .long 0x50000000 // unused
+ .long 0x60000000 // unused
+ .long 0x70000000 // unused
+ .long 0x00000001 // REMAP command
+ .long 0x00000000 // Standard read protocol
+ .long AT91_EBI // External Bus Interface address
+ .long 10f // address where to jump
+10:
+#if defined(CYG_HAL_STARTUP_ROMRAM)
+ ldr r0,=0x01000000 // Relocate FLASH/ROM to on-chip RAM
+ ldr r1,=0x02000000 // RAM base & length
+ ldr r2,=0x02010000
+20: ldr r3,[r0],#4
+ str r3,[r1],#4
+ cmp r1,r2
+ bne 20b
+ ldr r0,=30f
+ mov pc,r0
+30:
+#endif
+ _pclock_init
+ _pio_init
+ .endm
+
+#define CYGSEM_HAL_ROM_RESET_USES_JUMP
+
+#else
+
+ .macro _setup
+ _led_init
+ _pclock_init
+ _pio_init
+ .endm
+
+#endif
+
+#define PLATFORM_SETUP1 _setup
+
+
+//-----------------------------------------------------------------------------
+// end of hal_platform_setup.h
+#endif // CYGONCE_HAL_PLATFORM_SETUP_H
diff --git a/ecos/packages/hal/arm/at91/eb55/current/include/pkgconf/mlt_arm_at91_eb55_ram.h b/ecos/packages/hal/arm/at91/eb55/current/include/pkgconf/mlt_arm_at91_eb55_ram.h
new file mode 100644
index 0000000..fb217ea
--- /dev/null
+++ b/ecos/packages/hal/arm/at91/eb55/current/include/pkgconf/mlt_arm_at91_eb55_ram.h
@@ -0,0 +1,17 @@
+// eCos memory layout - Mon Jul 23 11:49:04 2001
+
+// This is a generated file - do not edit
+
+#ifndef __ASSEMBLER__
+#include <cyg/infra/cyg_type.h>
+#include <stddef.h>
+
+#endif
+#define CYGMEM_REGION_ram (0x02000000)
+#define CYGMEM_REGION_ram_SIZE (0x00040000)
+#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 (0x02040000 - (size_t) CYG_LABEL_NAME (__heap1))
diff --git a/ecos/packages/hal/arm/at91/eb55/current/include/pkgconf/mlt_arm_at91_eb55_ram.ldi b/ecos/packages/hal/arm/at91/eb55/current/include/pkgconf/mlt_arm_at91_eb55_ram.ldi
new file mode 100644
index 0000000..d85c80a
--- /dev/null
+++ b/ecos/packages/hal/arm/at91/eb55/current/include/pkgconf/mlt_arm_at91_eb55_ram.ldi
@@ -0,0 +1,30 @@
+// eCos memory layout - Mon Jul 23 11:49:04 2001
+
+// This is a generated file - do not edit
+
+#include <cyg/infra/cyg_type.inc>
+
+MEMORY
+{
+ sram : ORIGIN = 0x00000000, LENGTH = 0x2000
+ ram : ORIGIN = 0x02000000, LENGTH = 0x40000
+}
+
+SECTIONS
+{
+ SECTIONS_BEGIN
+ SECTION_fixed_vectors (sram, 0x20, LMA_EQ_VMA)
+ SECTION_rom_vectors (ram, 0x02008000, LMA_EQ_VMA)
+// SECTION_fixed_vectors (ram, 0x02000000, LMA_EQ_VMA)
+// SECTION_rom_vectors (ram, 0x02001000, 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)
+ CYG_LABEL_DEFN(__heap1) = ALIGN (0x8);
+ SECTIONS_END
+}
diff --git a/ecos/packages/hal/arm/at91/eb55/current/include/pkgconf/mlt_arm_at91_eb55_rom.h b/ecos/packages/hal/arm/at91/eb55/current/include/pkgconf/mlt_arm_at91_eb55_rom.h
new file mode 100644
index 0000000..2109d27
--- /dev/null
+++ b/ecos/packages/hal/arm/at91/eb55/current/include/pkgconf/mlt_arm_at91_eb55_rom.h
@@ -0,0 +1,20 @@
+// eCos memory layout - Wed Apr 11 13:49:55 2001
+
+// This is a generated file - do not edit
+
+#ifndef __ASSEMBLER__
+#include <cyg/infra/cyg_type.h>
+#include <stddef.h>
+
+#endif
+#define CYGMEM_REGION_ram (0x02000000)
+#define CYGMEM_REGION_ram_SIZE (0x00040000)
+#define CYGMEM_REGION_ram_ATTR (CYGMEM_REGION_ATTR_R | CYGMEM_REGION_ATTR_W)
+#define CYGMEM_REGION_rom (0x01000000)
+#define CYGMEM_REGION_rom_SIZE (0x00100000)
+#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 (0x02040000 - (size_t) CYG_LABEL_NAME (__heap1))
diff --git a/ecos/packages/hal/arm/at91/eb55/current/include/pkgconf/mlt_arm_at91_eb55_rom.ldi b/ecos/packages/hal/arm/at91/eb55/current/include/pkgconf/mlt_arm_at91_eb55_rom.ldi
new file mode 100644
index 0000000..146188d
--- /dev/null
+++ b/ecos/packages/hal/arm/at91/eb55/current/include/pkgconf/mlt_arm_at91_eb55_rom.ldi
@@ -0,0 +1,29 @@
+// eCos memory layout - Wed Apr 11 13:49:55 2001
+
+// This is a generated file - do not edit
+
+#include <cyg/infra/cyg_type.inc>
+
+MEMORY
+{
+ sram : ORIGIN = 0x00000000, LENGTH = 0x2000
+ ram : ORIGIN = 0x02000000, LENGTH = 0x40000
+ rom : ORIGIN = 0x01000000, LENGTH = 0x100000
+}
+
+SECTIONS
+{
+ SECTIONS_BEGIN
+ SECTION_rom_vectors (rom, 0x01000000, LMA_EQ_VMA)
+ SECTION_text (rom, ALIGN (0x1), 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 (sram, 0x20, LMA_EQ_VMA)
+ SECTION_data (ram, 0x02000000, FOLLOWING (.gcc_except_table))
+ SECTION_bss (ram, ALIGN (0x4), LMA_EQ_VMA)
+ CYG_LABEL_DEFN(__heap1) = ALIGN (0x8);
+ SECTIONS_END
+}
diff --git a/ecos/packages/hal/arm/at91/eb55/current/include/pkgconf/mlt_arm_at91_eb55_romram.h b/ecos/packages/hal/arm/at91/eb55/current/include/pkgconf/mlt_arm_at91_eb55_romram.h
new file mode 100644
index 0000000..fb217ea
--- /dev/null
+++ b/ecos/packages/hal/arm/at91/eb55/current/include/pkgconf/mlt_arm_at91_eb55_romram.h
@@ -0,0 +1,17 @@
+// eCos memory layout - Mon Jul 23 11:49:04 2001
+
+// This is a generated file - do not edit
+
+#ifndef __ASSEMBLER__
+#include <cyg/infra/cyg_type.h>
+#include <stddef.h>
+
+#endif
+#define CYGMEM_REGION_ram (0x02000000)
+#define CYGMEM_REGION_ram_SIZE (0x00040000)
+#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 (0x02040000 - (size_t) CYG_LABEL_NAME (__heap1))
diff --git a/ecos/packages/hal/arm/at91/eb55/current/include/pkgconf/mlt_arm_at91_eb55_romram.ldi b/ecos/packages/hal/arm/at91/eb55/current/include/pkgconf/mlt_arm_at91_eb55_romram.ldi
new file mode 100644
index 0000000..54d4ec9
--- /dev/null
+++ b/ecos/packages/hal/arm/at91/eb55/current/include/pkgconf/mlt_arm_at91_eb55_romram.ldi
@@ -0,0 +1,28 @@
+// eCos memory layout - Mon Jul 23 11:49:04 2001
+
+// This is a generated file - do not edit
+
+#include <cyg/infra/cyg_type.inc>
+
+MEMORY
+{
+ sram : ORIGIN = 0x00000000, LENGTH = 0x2000
+ ram : ORIGIN = 0x02000000, LENGTH = 0x40000
+}
+
+SECTIONS
+{
+ SECTIONS_BEGIN
+ SECTION_fixed_vectors (sram, 0x20, LMA_EQ_VMA)
+ SECTION_rom_vectors (ram, 0x02000000, 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)
+ CYG_LABEL_DEFN(__heap1) = ALIGN (0x8);
+ SECTIONS_END
+}
diff --git a/ecos/packages/hal/arm/at91/eb55/current/include/plf_io.h b/ecos/packages/hal/arm/at91/eb55/current/include/plf_io.h
new file mode 100644
index 0000000..ec1f4b8
--- /dev/null
+++ b/ecos/packages/hal/arm/at91/eb55/current/include/plf_io.h
@@ -0,0 +1,72 @@
+#ifndef CYGONCE_HAL_PLF_IO_H
+#define CYGONCE_HAL_PLF_IO_H
+//=============================================================================
+//
+// plf_io.h
+//
+// EB55 board specific registers
+//
+//=============================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): tkoeller
+// Contributors: tdrury, nickg
+// Date: 2002-06-22
+// Purpose: Atmel EB55 board specific registers
+// Description:
+// Usage: #include <cyg/hal/plf_io.h>
+//
+//####DESCRIPTIONEND####
+//
+//=============================================================================
+// On-chip device base addresses
+
+#define AT91_PIOA 0xFFFEC000
+#define AT91_PIOB 0xFFFF0000
+
+#define AT91_PIO AT91_PIOB
+
+#define AT91_USART0 0xFFFC0000
+#define AT91_USART1 0xFFFC4000
+#define AT91_USART2 0xFFFC8000
+
+#define AT91_TCB0 0xFFFD0000
+#define AT91_TCB1 0xFFFD4000
+
+#define AT91_TC AT91_TCB0
+
+//-----------------------------------------------------------------------------
+// end of plf_io.h
+#endif // CYGONCE_HAL_PLF_IO_H
diff --git a/ecos/packages/hal/arm/at91/eb55/current/misc/redboot_RAM.ecm b/ecos/packages/hal/arm/at91/eb55/current/misc/redboot_RAM.ecm
new file mode 100644
index 0000000..4cf206a
--- /dev/null
+++ b/ecos/packages/hal/arm/at91/eb55/current/misc/redboot_RAM.ecm
@@ -0,0 +1,50 @@
+cdl_savefile_version 1;
+cdl_savefile_command cdl_savefile_version {};
+cdl_savefile_command cdl_savefile_command {};
+cdl_savefile_command cdl_configuration { description hardware template package };
+cdl_savefile_command cdl_package { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_component { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_option { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_interface { value_source user_value wizard_value inferred_value };
+
+cdl_configuration eCos {
+ package CYGPKG_IO_FLASH current ;
+ package CYGPKG_ERROR current ;
+};
+
+cdl_option CYGNUM_HAL_COMMON_INTERRUPTS_STACK_SIZE {
+ user_value 6144
+};
+
+cdl_option CYGDBG_HAL_COMMON_INTERRUPTS_SAVE_MINIMUM_CONTEXT {
+ user_value 0
+};
+
+cdl_option CYGDBG_HAL_COMMON_CONTEXT_SAVE_MINIMUM {
+ inferred_value 0
+};
+
+cdl_option CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS {
+ inferred_value 1
+};
+
+cdl_option CYGSEM_HAL_USE_ROM_MONITOR {
+ inferred_value 0 0
+};
+
+cdl_component CYGBLD_BUILD_REDBOOT {
+ user_value 1
+};
+
+cdl_option CYGOPT_REDBOOT_FIS {
+ user_value 0
+};
+
+cdl_component CYGSEM_REDBOOT_FLASH_CONFIG {
+ user_value 0
+};
+
+cdl_option CYGBLD_BUILD_REDBOOT_WITH_EXEC {
+ user_value 0
+};
+
diff --git a/ecos/packages/hal/arm/at91/eb55/current/misc/redboot_ROM.ecm b/ecos/packages/hal/arm/at91/eb55/current/misc/redboot_ROM.ecm
new file mode 100644
index 0000000..f26827b
--- /dev/null
+++ b/ecos/packages/hal/arm/at91/eb55/current/misc/redboot_ROM.ecm
@@ -0,0 +1,57 @@
+cdl_savefile_version 1;
+cdl_savefile_command cdl_savefile_version {};
+cdl_savefile_command cdl_savefile_command {};
+cdl_savefile_command cdl_configuration { description hardware template package };
+cdl_savefile_command cdl_package { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_component { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_option { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_interface { value_source user_value wizard_value inferred_value };
+
+cdl_configuration eCos {
+ package CYGPKG_IO_FLASH current ;
+ package CYGPKG_ERROR current ;
+};
+
+cdl_option CYGNUM_HAL_COMMON_INTERRUPTS_STACK_SIZE {
+ user_value 6144
+};
+
+cdl_option CYGDBG_HAL_COMMON_INTERRUPTS_SAVE_MINIMUM_CONTEXT {
+ user_value 0
+};
+
+cdl_option CYGDBG_HAL_COMMON_CONTEXT_SAVE_MINIMUM {
+ inferred_value 0
+};
+
+cdl_option CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS {
+ inferred_value 1
+};
+
+cdl_option CYGSEM_HAL_ROM_MONITOR {
+ inferred_value 1
+};
+
+cdl_option CYGSEM_HAL_USE_ROM_MONITOR {
+ inferred_value 0 0
+};
+
+cdl_component CYG_HAL_STARTUP {
+ user_value ROM
+};
+
+cdl_component CYGBLD_BUILD_REDBOOT {
+ user_value 1
+};
+
+cdl_option CYGOPT_REDBOOT_FIS {
+ user_value 0
+};
+
+cdl_component CYGSEM_REDBOOT_FLASH_CONFIG {
+ user_value 0
+};
+
+cdl_option CYGBLD_BUILD_REDBOOT_WITH_EXEC {
+ user_value 0
+};
diff --git a/ecos/packages/hal/arm/at91/eb55/current/src/eb55_misc.c b/ecos/packages/hal/arm/at91/eb55/current/src/eb55_misc.c
new file mode 100644
index 0000000..95613bd
--- /dev/null
+++ b/ecos/packages/hal/arm/at91/eb55/current/src/eb55_misc.c
@@ -0,0 +1,88 @@
+//==========================================================================
+//
+// eb55_misc.c
+//
+// HAL misc board support code for Atmel EB55 eval board
+//
+//==========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//==========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): gthomas
+// Contributors: gthomas, jskov, tkoeller, tdrury, nickg
+// Date: 2002-05-30
+// Purpose: HAL board support
+// Description: Implementations of HAL board interfaces
+//
+//####DESCRIPTIONEND####
+//
+//========================================================================*/
+
+#include <pkgconf/hal.h>
+
+#include <cyg/infra/cyg_type.h> // base types
+#include <cyg/hal/hal_io.h> // low level i/o
+#include <cyg/hal/var_io.h> // common registers
+#include <cyg/hal/plf_io.h> // platform registers
+
+
+void
+hal_at91_set_leds(int val)
+{
+ HAL_WRITE_UINT32(AT91_PIOB+AT91_PIO_SODR, 0x0000FF00); // turn all LEDs off
+ HAL_WRITE_UINT32(AT91_PIOB+AT91_PIO_CODR, val<<8); // turn desired LEDs on
+}
+
+void
+hal_at91_led_on(int val)
+{
+ HAL_WRITE_UINT32(AT91_PIOB+AT91_PIO_CODR, val<<8);
+}
+
+void
+hal_at91_led_off(int val)
+{
+ HAL_WRITE_UINT32(AT91_PIOB+AT91_PIO_SODR, val<<8);
+}
+
+int
+hal_at91_get_leds(void)
+{
+ int leds = 0;
+ HAL_READ_UINT32(AT91_PIOB+AT91_PIO_PDSR, leds);
+ return (leds>>8)&0xFF;
+}
+
+//--------------------------------------------------------------------------
+// EOF eb55_misc.c
diff --git a/ecos/packages/hal/arm/at91/jtst/current/ChangeLog b/ecos/packages/hal/arm/at91/jtst/current/ChangeLog
new file mode 100644
index 0000000..2c99a8d
--- /dev/null
+++ b/ecos/packages/hal/arm/at91/jtst/current/ChangeLog
@@ -0,0 +1,64 @@
+2009-01-31 Bart Veer <bartv@ecoscentric.com>
+
+ * cdl/hal_arm_at91_jtst.cdl: update compiler flags for gcc 4.x
+
+2009-01-24 Bart Veer <bartv@ecoscentric.com>
+
+ * cdl/hal_arm_at91_jtst.cdl: switch from arm-elf-gcc to
+ arm-eabi-gcc. Remove -mno-short-load-words.
+
+2004-10-8 Andrew Lunn <andrew.lunn@ascom.ch>
+
+ * support/jtstflash.{c|cpp}: Host tools for programming the
+ flash on the jtst boards. See the redboot documentation.
+
+2004-10-6 Andrea Michelotti <amichelotti@atmel.com>
+
+ * include/plf_io.h: removed SPI definitions. They are defined in
+ the variant HAL.
+
+2004-10-4 Andrea Michelotti <amichelotti@atmel.com>
+
+ * include/hal_platform_setup.h: added generation of three
+ different clocks for watchdog.
+
+2004-06-6 Andrea Michelotti <amichelotti@atmel.com>
+
+ * cdl/hal_arm_at91_jtst.cdl:
+ * include/plf_io.h:
+ * include/hal_platform_setup.h:
+ * include/hal_platform_ints.h:
+ * include/pkgconf/mlt_arm_at91_jtst_ram.ldi:
+ * include/pkgconf/mlt_arm_at91_jtst_ram.h:
+ * include/pkgconf/mlt_arm_at91_jtst_rom.ldi:
+ * include/pkgconf/mlt_arm_at91_jtst_rom.h:
+ * include/pkgconf/mlt_arm_at91_jtst_romram.ldi:
+ * include/pkgconf/mlt_arm_at91_jtst_romram.h:
+ * src/jtst_misc.c:
+ New HAL added to support Atmel JTST board (based on Diopsis chip).
+ Adapted from the EB40 and EB40A HALs by Thomas Koeller and Tim Drury.
+
+
+//===========================================================================
+// ####GPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 2 or (at your option) any
+// later version.
+//
+// This program is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the
+// Free Software Foundation, Inc., 51 Franklin Street,
+// Fifth Floor, Boston, MA 02110-1301, USA.
+// -------------------------------------------
+// ####GPLCOPYRIGHTEND####
+//===========================================================================
diff --git a/ecos/packages/hal/arm/at91/jtst/current/cdl/hal_arm_at91_jtst.cdl b/ecos/packages/hal/arm/at91/jtst/current/cdl/hal_arm_at91_jtst.cdl
new file mode 100644
index 0000000..a70917a
--- /dev/null
+++ b/ecos/packages/hal/arm/at91/jtst/current/cdl/hal_arm_at91_jtst.cdl
@@ -0,0 +1,297 @@
+# ====================================================================
+#
+# hal_arm_at91_jtst.cdl
+#
+# ARM AT91 AT572D74-DK1(JTST) HAL package configuration data
+#
+# ====================================================================
+## ####ECOSGPLCOPYRIGHTBEGIN####
+## -------------------------------------------
+## This file is part of eCos, the Embedded Configurable Operating System.
+## Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
+##
+## eCos is free software; you can redistribute it and/or modify it under
+## the terms of the GNU General Public License as published by the Free
+## Software Foundation; either version 2 or (at your option) any later
+## version.
+##
+## eCos is distributed in the hope that it will be useful, but WITHOUT
+## ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+## FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+## for more details.
+##
+## You should have received a copy of the GNU General Public License
+## along with eCos; if not, write to the Free Software Foundation, Inc.,
+## 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+##
+## As a special exception, if other files instantiate templates or use
+## macros or inline functions from this file, or you compile this file
+## and link it with other works to produce a work based on this file,
+## this file does not by itself cause the resulting work to be covered by
+## the GNU General Public License. However the source code for this file
+## must still be made available in accordance with section (3) of the GNU
+## General Public License v2.
+##
+## This exception does not invalidate any other reasons why a work based
+## on this file might be covered by the GNU General Public License.
+## -------------------------------------------
+## ####ECOSGPLCOPYRIGHTEND####
+# ====================================================================
+######DESCRIPTIONBEGIN####
+#
+# Author(s): amichelotti
+# Contributors: gthomas, tkoeller, nickg
+# Date: 2004-06-3
+#
+#####DESCRIPTIONEND####
+#
+# ====================================================================
+
+cdl_package CYGPKG_HAL_ARM_AT91_JTST {
+ display "Atmel AT572D740 eval board (JTST) HAL"
+ parent CYGPKG_HAL_ARM_AT91
+ define_header hal_arm_at91_jtst.h
+ include_dir cyg/hal
+ hardware
+ description "
+ The JTST HAL package provides the support needed to run
+ eCos on an Atmel AT572D740-DK1 (diopsis) eval board."
+
+ compile jtst_misc.c
+
+ requires { CYGHWR_HAL_ARM_AT91 == "JTST" }
+ requires { CYGHWR_HAL_ARM_AT91_FIQ }
+ 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_at91.h>"
+ puts $::cdl_system_header "#define CYGBLD_HAL_PLATFORM_H <pkgconf/hal_arm_at91_jtst.h>"
+ puts $::cdl_system_header "#define CYGBLD_HAL_ARM_VAR_IO_H"
+ puts $::cdl_header "#define HAL_PLATFORM_CPU \"ARM7TDMI\""
+ puts $::cdl_header "#define HAL_PLATFORM_BOARD \"Atmel (jtst) AT572D74-DK1\""
+ puts $::cdl_header "#define HAL_PLATFORM_EXTRA \"\""
+ }
+
+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
+ default_value 1000000000
+ }
+ cdl_option CYGNUM_HAL_RTC_DENOMINATOR {
+ display "Real-time clock denominator"
+ flavor data
+ default_value 100
+ }
+ cdl_option CYGNUM_HAL_RTC_PERIOD {
+ display "Real-time clock period"
+ flavor data
+ default_value ((CYGNUM_HAL_ARM_AT91_CLOCK_SPEED/32) / CYGNUM_HAL_RTC_DENOMINATOR)
+ }
+ }
+
+ 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 AT91 EBxx 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 onboard
+ debug software such as Angel or eCos GDB stubs. Select 'rom'
+ when building a stand-alone application which will be put
+ into ROM"
+ }
+
+ # Real-time clock/counter specifics
+ cdl_option CYGNUM_HAL_ARM_AT91_CLOCK_SPEED {
+ display "CPU clock speed"
+ flavor data
+ default_value 50000000
+ }
+
+ 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"
+ active_if CYGPRI_HAL_VIRTUAL_VECTOR_DEBUG_CHANNEL_CONFIGURABLE
+ flavor data
+ legal_values 0 to CYGNUM_HAL_VIRTUAL_VECTOR_COMM_CHANNELS-1
+ default_value 0
+ description "
+ The AT91 EBxx 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"
+ active_if CYGPRI_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_CONFIGURABLE
+ flavor data
+ legal_values 0 to CYGNUM_HAL_VIRTUAL_VECTOR_COMM_CHANNELS-1
+ default_value 0
+ description "
+ The AT91 EBxx board has two serial ports. This option
+ chooses which port will be used for diagnostic output."
+ }
+
+ cdl_option CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_BAUD {
+ display "Diagnostic serial port baud rate"
+ flavor data
+ legal_values 9600 19200 38400 57600 115200
+ default_value 115200
+ description "
+ This option selects the baud rate used for the diagnostic port."
+ }
+
+ cdl_option CYGNUM_HAL_VIRTUAL_VECTOR_DEBUG_CHANNEL_BAUD {
+ display "GDB serial port baud rate"
+ flavor data
+ legal_values 9600 19200 38400 57600 115200
+ default_value 115200
+ description "
+ This option controls the baud rate used for the GDB connection."
+ }
+
+ 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 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_REDBOOT_HAL_OPTIONS {
+ display "Redboot HAL options"
+ flavor none
+ no_define
+ parent CYGPKG_REDBOOT
+ active_if CYGPKG_REDBOOT
+ description "
+ This option lists the target's requirements for a valid Redboot
+ configuration."
+
+ 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 $< $@
+ }
+
+ }
+ }
+
+ 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 { "arm-eabi"}
+ 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 { CYGBLD_GLOBAL_WARNFLAGS . CYGBLD_ARCH_CFLAGS .
+ "-mcpu=arm7tdmi -g -O2 -ffunction-sections -fdata-sections -fno-rtti -fno-exceptions " }
+ 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 { CYGBLD_ARCH_LDFLAGS . "-mcpu=arm7tdmi -Wl,--gc-sections -Wl,-static -g -nostdlib" }
+ description "
+ This option controls the global linker flags. Individual
+ packages may define options which override these global flags."
+ }
+ }
+
+ cdl_component CYGHWR_MEMORY_LAYOUT {
+ display "Memory layout"
+ flavor data
+ no_define
+ calculated { (CYG_HAL_STARTUP == "RAM") ? "arm_at91_jtst_ram" :
+ "arm_at91_jtst_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_at91_jtst_ram.ldi>" :
+ "<pkgconf/mlt_arm_at91_jtst_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_at91_jtst_ram.h>" :
+ "<pkgconf/mlt_arm_at91_jtst_rom.h>" }
+ }
+ }
+}
diff --git a/ecos/packages/hal/arm/at91/jtst/current/include/hal_platform_ints.h b/ecos/packages/hal/arm/at91/jtst/current/include/hal_platform_ints.h
new file mode 100644
index 0000000..0b10efe
--- /dev/null
+++ b/ecos/packages/hal/arm/at91/jtst/current/include/hal_platform_ints.h
@@ -0,0 +1,107 @@
+#ifndef CYGONCE_HAL_PLATFORM_INTS_H
+#define CYGONCE_HAL_PLATFORM_INTS_H
+//==========================================================================
+//
+// hal_platform_ints.h
+//
+// HAL Interrupt and clock assignments for JTST
+//
+//==========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//==========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): amichelotti
+// Contributors: gthomas
+// Date: 2001-07-12
+// Purpose: Define Interrupt support
+// Description: The interrupt specifics for the JTST board/platform are
+// defined here.
+//
+// Usage: #include <cyg/hal/hal_platform_ints.h>
+// ...
+//
+//
+//####DESCRIPTIONEND####
+//
+//==========================================================================
+
+// JTST MAGICHLT is the AIC FIQ that's connected to the halt signal of
+// the magic DSP
+#define CYGNUM_HAL_INTERRUPT_MAGICHLT 0
+
+#define CYGNUM_HAL_INTERRUPT_TIMER0 1
+#define CYGNUM_HAL_INTERRUPT_TIMER1 2
+#define CYGNUM_HAL_INTERRUPT_TIMER2 3
+#define CYGNUM_HAL_INTERRUPT_USART0 4
+#define CYGNUM_HAL_INTERRUPT_USART1 5
+#define CYGNUM_HAL_INTERRUPT_SPI0 6
+#define CYGNUM_HAL_INTERRUPT_SPI1 7
+#define CYGNUM_HAL_INTERRUPT_SIRQ0 8
+#define CYGNUM_HAL_INTERRUPT_SIRQ1 9
+#define CYGNUM_HAL_INTERRUPT_SIRQ2 10
+#define CYGNUM_HAL_INTERRUPT_SIRQ3 11
+#define CYGNUM_HAL_INTERRUPT_SIRQ4 12
+#define CYGNUM_HAL_INTERRUPT_SIRQ5 13
+//exception signal from DSP
+#define CYGNUM_HAL_INTERRUPT_MAGICEX 15
+#define CYGNUM_HAL_INTERRUPT_WATCHDOG 16
+#define CYGNUM_HAL_INTERRUPT_PIO 17
+#define CYGNUM_HAL_INTERRUPT_EXT4 24
+//change mode signal system/run and run/system from DSP
+//I/O operation are allowed only in system mode
+#define CYGNUM_HAL_INTERRUPT_MAGICMOD 25
+#define CYGNUM_HAL_INTERRUPT_EXT5 26
+// endTX from DSP dma
+#define CYGNUM_HAL_INTERRUPT_ENDTXRX 27
+#define CYGNUM_HAL_INTERRUPT_EXT0 28
+#define CYGNUM_HAL_INTERRUPT_EXT1 29
+#define CYGNUM_HAL_INTERRUPT_EXT2 30
+#define CYGNUM_HAL_INTERRUPT_EXT3 31
+
+#define CYGNUM_HAL_ISR_MIN 0
+#define CYGNUM_HAL_ISR_MAX 31
+#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
+
+
+//----------------------------------------------------------------------------
+// Reset.
+__externC void hal_at91_reset_cpu(void);
+#define HAL_PLATFORM_RESET() hal_at91_reset_cpu()
+
+#define HAL_PLATFORM_RESET_ENTRY 0x01010000
+
+#endif // CYGONCE_HAL_PLATFORM_INTS_H
diff --git a/ecos/packages/hal/arm/at91/jtst/current/include/hal_platform_setup.h b/ecos/packages/hal/arm/at91/jtst/current/include/hal_platform_setup.h
new file mode 100644
index 0000000..eb1372c
--- /dev/null
+++ b/ecos/packages/hal/arm/at91/jtst/current/include/hal_platform_setup.h
@@ -0,0 +1,162 @@
+#ifndef CYGONCE_HAL_PLATFORM_SETUP_H
+#define CYGONCE_HAL_PLATFORM_SETUP_H
+/*=============================================================================
+//
+// hal_platform_setup.h
+//
+// Platform specific support for HAL (assembly code)
+//
+//=============================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): gthomas
+// Contributors: amichelotti
+// Date: 2004-06-4
+// Purpose: JTST platform specific support routines
+// Description:
+// Usage: #include <cyg/hal/hal_platform_setup.h>
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================*/
+
+#include <cyg/hal/var_io.h>
+#include <cyg/hal/hal_misc.h>
+
+ .macro __pio_clkgen_init
+ ldr r0,=AT91_PIO
+ ldr r1,=BIT21|BIT22|BIT23|BIT24|BIT25|BIT26|BIT27
+ str r1,[r0,#AT91_PIO_SODR] // set this bit must be always 1,
+ // otherwise resets
+ ldr r1,=BIT21|BIT22|BIT23|BIT24|BIT25|BIT26|BIT27
+ str r1,[r0,#AT91_PIO_OER] // set to output
+ str r1,[r0,#AT91_PIO_PER] // software control
+ ldr r1,=BIT21|BIT22|BIT23|BIT24|BIT25|BIT26|BIT27
+ str r1,[r0,#AT91_PIO_CODR] // leds all on
+ ldr r1,=BIT30|BIT3
+ ldr r1,[r0,#AT91_PIO_PDR] // (BIT30) usb interrupt line in
+ // (BIT3) active watchdog reset line
+ ldr r0,=AT91_CLKGEN
+ ldr r1,=32
+ str r1,[r0,#AT91_CLKGEN_CPTMAX0]
+ str r1,[r0,#AT91_CLKGEN_CPTMAX1]
+ ldr r1,=128
+ str r1,[r0,#AT91_CLKGEN_CPTMAX2] //watch dog divider1
+ ldr r1,=1024
+ str r1,[r0,#AT91_CLKGEN_CPTMAX3] //watch dog divider2
+ ldr r1,=2046
+ str r1,[r0,#AT91_CLKGEN_CPTMAX4] //watch dog divider3 (max accepted value)
+
+ ldr r1,=1
+ str r1,[r0,#AT91_CLKGEN_CLKENABLE]
+
+#if defined(CYG_HAL_STARTUP_RAM)
+ // set internal ram as interrupt stack and other
+ ldr r0, =0x7ffc
+ ldr r1,=__startup_stack
+ ldr r2,=__startup_stack_base
+ sub r3,r1,r2
+ ldr r1,=.__startup_stack
+ str r0,[r1]
+ sub r0,r0,r3
+#ifdef CYGIMP_HAL_COMMON_INTERRUPTS_USE_INTERRUPT_STACK
+ ldr r1,=__interrupt_stack
+ ldr r2,=__interrupt_stack_base
+ sub r3,r1,r2
+ ldr r1,=.__interrupt_stack
+ str r0,[r1]
+#endif
+#endif
+ .endm
+
+#if defined(CYG_HAL_STARTUP_ROM) || defined(CYG_HAL_STARTUP_ROMRAM)
+
+ .macro _setup
+ ldr r10,=_InitMemory // Initialize memory controller
+ movs r0,pc,lsr #20 // If ROM startup, PC < 0x100000
+ moveq r10,r10,lsl #12 // mask address to low 20 bits
+ moveq r10,r10,lsr #12
+ ldmia r10!,{r0-r9,r11-r12} // Table of initialization constants
+#if defined(CYG_HAL_STARTUP_ROMRAM)
+ ldr r10,=0x0000FFFF
+ and r12,r12,r10
+ ldr r10,=0x00510000
+ orr r12,r12,r10
+#endif
+ stmia r11!,{r0-r9} // Write to controller
+ mov pc,r12 // Change address space, break pipeline
+_InitMemory:
+ .long 0x00502031 // FLASH
+ .long 0x00602021 // RAM
+ .long 0x00702021 // unused
+ .long 0x00802021 // unused
+ .long 0x00902021 // unused
+ .long 0x00A02021 // unused
+ .long 0x00b02021 // unused
+ .long 0x00c02021 // unused
+ .long 0x00000001 // REMAP commande
+ .long 0x00000006 // 7 memory regions, standard read
+ .long AT91_EBI // External Bus Interface address
+ .long 10f // address where to jump
+10:
+
+#if defined(CYG_HAL_STARTUP_ROMRAM)
+ ldr r0,=0x00510000 // Relocate FLASH/ROM to on-chip RAM
+ ldr r1,=0x00600000 // RAM base & length
+ ldr r2,=0x00610000
+20: ldr r3,[r0],#4
+ str r3,[r1],#4
+ cmp r1,r2
+ bne 20b
+ ldr r0,=30f
+ mov pc,r0
+30:
+
+#endif
+
+__pio_clkgen_init
+ .endm
+
+#define CYGSEM_HAL_ROM_RESET_USES_JUMP
+#define PLATFORM_SETUP1 _setup
+#else
+
+#define PLATFORM_SETUP1 __pio_clkgen_init
+
+#endif
+
+//-----------------------------------------------------------------------------
+// end of hal_platform_setup.h
+#endif // CYGONCE_HAL_PLATFORM_SETUP_H
diff --git a/ecos/packages/hal/arm/at91/jtst/current/include/pkgconf/mlt_arm_at91_jtst_ram.h b/ecos/packages/hal/arm/at91/jtst/current/include/pkgconf/mlt_arm_at91_jtst_ram.h
new file mode 100644
index 0000000..3d5bb4b
--- /dev/null
+++ b/ecos/packages/hal/arm/at91/jtst/current/include/pkgconf/mlt_arm_at91_jtst_ram.h
@@ -0,0 +1,20 @@
+// eCos memory layout - Mon Jul 23 11:49:04 2001
+
+// This is a generated file - do not edit
+
+#ifndef __ASSEMBLER__
+#include <cyg/infra/cyg_type.h>
+#include <stddef.h>
+
+#endif
+#define CYGMEM_REGION_sram (0)
+#define CYGMEM_REGION_sram_SIZE (0x8000)
+#define CYGMEM_REGION_sram_ATTR (CYGMEM_REGION_ATTR_R | CYGMEM_REGION_ATTR_W)
+#define CYGMEM_REGION_ram (0x606000)
+#define CYGMEM_REGION_ram_SIZE (0x40000)
+#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 (0x640000 - (size_t) CYG_LABEL_NAME (__heap1))
diff --git a/ecos/packages/hal/arm/at91/jtst/current/include/pkgconf/mlt_arm_at91_jtst_ram.ldi b/ecos/packages/hal/arm/at91/jtst/current/include/pkgconf/mlt_arm_at91_jtst_ram.ldi
new file mode 100644
index 0000000..9db1555
--- /dev/null
+++ b/ecos/packages/hal/arm/at91/jtst/current/include/pkgconf/mlt_arm_at91_jtst_ram.ldi
@@ -0,0 +1,53 @@
+// eCos memory layout - Mon Jul 23 11:49:04 2001
+
+// This is a generated file - do not edit
+
+#include <cyg/infra/cyg_type.inc>
+
+MEMORY
+{
+ sram : ORIGIN = 0, LENGTH = 0x8000
+ ram : ORIGIN = 0x606000, LENGTH = 0x40000
+ aicvect : ORIGIN = 0xFFF080, LENGTH = 0x00020
+ magic : ORIGIN = 0x410000, LENGTH = 1024K
+}
+
+SECTIONS
+{
+ SECTIONS_BEGIN
+ SECTION_fixed_vectors (sram, 0x20, LMA_EQ_VMA)
+ .internal_vectors ALIGN(0x4) : { . = . ; KEEP (*(.internal_vectors)) } > sram
+ SECTION_rom_vectors (ram, 0x606000, 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)
+ CYG_LABEL_DEFN(__heap1) = ALIGN (0x8);
+ SECTIONS_END
+
+ . = 0x410000;
+ .mdata_sx ALIGN (0x8) : {*(.P0_sx)} > magic
+
+ . = 0x411800;
+ .BUFFER_sx ALIGN (0x8) : {*(.BUFFER_sx)} > magic
+ .XM_sx ALIGN (0x8) : {*(.XM_sx*)} > magic
+
+ . = 0x420000;
+ .mdata_dx ALIGN (0x8) : {*(.P0_dx)} > magic
+
+ . = 0x411800;
+ .BUFFER_dx ALIGN (0x8) : {*(.BUFFER_dx)} > magic
+ .XM_sx ALIGN (0x8) : {*(.XM_sx*)} > magic
+
+ . = 0x490000;
+ .PARM_sx ALIGN (0x8) : {*(.PARM_sx)} > magic
+ . = 0x4A0000;
+ .PARM_dx ALIGN (0x8) : {*(.PARM_dx)} > magic
+
+ . = 0x430000;
+ .prog ALIGN (0x10) : {*(prog.*)} > magic
+}
diff --git a/ecos/packages/hal/arm/at91/jtst/current/include/pkgconf/mlt_arm_at91_jtst_ram.mlt b/ecos/packages/hal/arm/at91/jtst/current/include/pkgconf/mlt_arm_at91_jtst_ram.mlt
new file mode 100644
index 0000000..9d3830b
--- /dev/null
+++ b/ecos/packages/hal/arm/at91/jtst/current/include/pkgconf/mlt_arm_at91_jtst_ram.mlt
@@ -0,0 +1,14 @@
+version 0
+region sram 0 8000 0 !On-chip SRAM
+region ram 500000 40000 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 501000 501000 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 1 0 1 heap1 heap1 !
+section heap1 0 8 0 0 0 0 0 0 !
diff --git a/ecos/packages/hal/arm/at91/jtst/current/include/pkgconf/mlt_arm_at91_jtst_rom.h b/ecos/packages/hal/arm/at91/jtst/current/include/pkgconf/mlt_arm_at91_jtst_rom.h
new file mode 100644
index 0000000..4b955c1
--- /dev/null
+++ b/ecos/packages/hal/arm/at91/jtst/current/include/pkgconf/mlt_arm_at91_jtst_rom.h
@@ -0,0 +1,26 @@
+// eCos memory layout - Wed Apr 11 13:49:55 2001
+
+// This is a generated file - do not edit
+
+#ifndef __ASSEMBLER__
+#include <cyg/infra/cyg_type.h>
+#include <stddef.h>
+
+#endif
+#define CYGMEM_REGION_ram (0x0600000)
+#define CYGMEM_REGION_ram_SIZE (0x40000)
+#define CYGMEM_REGION_ram_ATTR (CYGMEM_REGION_ATTR_R | CYGMEM_REGION_ATTR_W)
+#define CYGMEM_REGION_rom (0x0500000)
+#define CYGMEM_REGION_rom_SIZE (0x80000)
+#define CYGMEM_REGION_rom_ATTR (CYGMEM_REGION_ATTR_R)
+#ifndef __ASSEMBLER__
+extern char CYG_LABEL_NAME (__reserved_bootmon) [];
+#endif
+#define CYGMEM_SECTION_reserved_bootmon (CYG_LABEL_NAME (__reserved_bootmon))
+//#define CYGMEM_SECTION_reserved_bootmon_SIZE (0x10000)
+#define CYGMEM_SECTION_reserved_bootmon_SIZE (0x0000)
+#ifndef __ASSEMBLER__
+extern char CYG_LABEL_NAME (__heap1) [];
+#endif
+#define CYGMEM_SECTION_heap1 (CYG_LABEL_NAME (__heap1))
+#define CYGMEM_SECTION_heap1_SIZE (0x0640000 - (size_t) CYG_LABEL_NAME (__heap1))
diff --git a/ecos/packages/hal/arm/at91/jtst/current/include/pkgconf/mlt_arm_at91_jtst_rom.ldi b/ecos/packages/hal/arm/at91/jtst/current/include/pkgconf/mlt_arm_at91_jtst_rom.ldi
new file mode 100644
index 0000000..525a011
--- /dev/null
+++ b/ecos/packages/hal/arm/at91/jtst/current/include/pkgconf/mlt_arm_at91_jtst_rom.ldi
@@ -0,0 +1,55 @@
+// eCos memory layout - Wed Apr 11 13:49:55 2001
+
+// This is a generated file - do not edit
+
+#include <cyg/infra/cyg_type.inc>
+
+MEMORY
+{
+ sram : ORIGIN = 0x00000000, LENGTH = 0x8000
+ ram : ORIGIN = 0x600000, LENGTH = 0x40000
+ rom : ORIGIN = 0x500000, LENGTH = 0x80000
+ aicvect : ORIGIN = 0xFFF080, LENGTH = 0x00020
+ magic : ORIGIN = 0x410000, LENGTH = 1024K
+}
+
+//
+SECTIONS
+{
+ SECTIONS_BEGIN
+ CYG_LABEL_DEFN(__reserved_bootmon) = 0x0500000; . = CYG_LABEL_DEFN(__reserved_bootmon);
+ SECTION_rom_vectors (rom, ALIGN (0x8), LMA_EQ_VMA)
+ SECTION_text (rom, ALIGN (0x1), 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 (sram, 0x20, LMA_EQ_VMA)
+ .internal_vectors ALIGN(0x4) : { . = . ; KEEP (*(.internal_vectors)) } > sram
+ SECTION_data (ram, 0x0600000, FOLLOWING (.gcc_except_table))
+ SECTION_bss (ram, ALIGN (0x4), LMA_EQ_VMA)
+ CYG_LABEL_DEFN(__heap1) = ALIGN (0x8);
+ SECTIONS_END
+ . = 0x410000;
+ .data_sx ALIGN (0x8) : {*(.P0_sx)} > magic
+
+ . = 0x411800;
+ .BUFFER_sx ALIGN (0x8) : {*(.BUFFER_sx)} > magic
+ .XM_sx ALIGN (0x8) : {*(.XM_sx*)} > magic
+
+ . = 0x420000;
+ .data_dx ALIGN (0x8) : {*(.P0_dx)} > magic
+
+ . = 0x411800;
+ .BUFFER_dx ALIGN (0x8) : {*(.BUFFER_dx)} > magic
+ .XM_sx ALIGN (0x8) : {*(.XM_sx*)} > magic
+
+ . = 0x490000;
+ .PARM_sx ALIGN (0x8) : {*(.PARM_sx)} > magic
+ . = 0x4A0000;
+ .PARM_dx ALIGN (0x8) : {*(.PARM_dx)} > magic
+
+ . = 0x430000;
+ .prog ALIGN (0x10) : {*(prog.*)} > magic
+}
diff --git a/ecos/packages/hal/arm/at91/jtst/current/include/pkgconf/mlt_arm_at91_jtst_rom.mlt b/ecos/packages/hal/arm/at91/jtst/current/include/pkgconf/mlt_arm_at91_jtst_rom.mlt
new file mode 100644
index 0000000..45c1e9f
--- /dev/null
+++ b/ecos/packages/hal/arm/at91/jtst/current/include/pkgconf/mlt_arm_at91_jtst_rom.mlt
@@ -0,0 +1,17 @@
+version 0
+region sram 0 80000 00100000 !
+region ram 0 80000 00100000 !
+region rom 01000000 20000 1 !
+section fixed_vectors 0 1 0 1 1 0 1 0 20 20 !
+section data 0 1 1 1 1 1 0 0 00100000 bss !
+section bss 0 4 0 1 0 1 0 1 heap1 heap1 !
+section svrsect 0 4 0 1 0 1 0 1 heap2 heap2 !
+section heap1 0 8 0 0 0 0 0 0 !
+section reserved_bootmon 10000 1 0 0 1 1 1 1 01000000 01000000 rom_vectors rom_vectors !
+section rom_vectors 0 8 0 1 0 1 0 1 text text !
+section text 0 1 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 !
diff --git a/ecos/packages/hal/arm/at91/jtst/current/include/plf_io.h b/ecos/packages/hal/arm/at91/jtst/current/include/plf_io.h
new file mode 100644
index 0000000..8b7ff3e
--- /dev/null
+++ b/ecos/packages/hal/arm/at91/jtst/current/include/plf_io.h
@@ -0,0 +1,179 @@
+#ifndef CYGONCE_HAL_PLF_IO_H
+#define CYGONCE_HAL_PLF_IO_H
+//=============================================================================
+//
+// plf_io.h
+//
+// JTST board specific registers
+//
+//=============================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): tkoeller
+// Contributors: amichelotti
+// Date: 2004-06-6
+// Purpose: Atmel JTST board specific registers
+// Description:
+// Usage: #include <cyg/hal/plf_io.h>
+//
+//####DESCRIPTIONEND####
+//
+//=============================================================================
+
+#define CYGARC_PHYSICAL_ADDRESS(_x_)
+
+// mapping diopsis internal resources
+#define AT91_USART0 0xFFFC0000
+#define AT91_USART1 0xFFFC4000
+#define AT91_SPI0 0xFFFC8000
+#define AT91_SPI1 0xFFFCC000
+
+#define AT91_PIO 0xFFFF0000
+#define AT91_AIC 0xFFFFF000
+#define AT91_TC 0xFFFEC000
+#define AT91_EBI 0xFFFE4000
+#define AT91_WD 0xFFFF8000
+#define AT91_CLKGEN 0xFFF00000 // clock divider
+#define AT91_ADDA 0xFFF08000 // ADDA Analog Digital Digital Analog
+
+// PDC2 USART control
+#define AT91_US_RPR 0x100 // Receive Pointer Register
+#define AT91_US_RCR 0x104 // Receive Counter Register
+#define AT91_US_TPR 0x108 // Transmit Pointer Register
+#define AT91_US_TCR 0x10C // Transmit Counter Register
+#define AT91_US_NRPR 0x110 // Next Receive Pointer Register
+#define AT91_US_NRCR 0x114 // Next Receive Counter Register
+#define AT91_US_NTPR 0x118 // Next Transmit Pointer Register
+#define AT91_US_NTCR 0x11C // Next Trsnsmit Counter Register
+
+// PDC2 SPI control
+#define AT91_SPI_RPR 0x100 // equal meaning for SPI
+#define AT91_SPI_RCR 0x104
+#define AT91_SPI_TPR 0x108
+#define AT91_SPI_TCR 0x10C
+#define AT91_SPI_NRPR 0x110
+#define AT91_SPI_NRCR 0x114
+#define AT91_SPI_NTPR 0x118
+#define AT91_SPI_NTCR 0x11C
+
+
+#define AT91_PDC_PTCR 0x120 // Pdc Transfer control register
+#define AT91_PDC_PTCR_TXEN 0x100
+#define AT91_PDC_PTCR_RXEN 0x1
+
+#define AT91_PDC_PTCR_TXDIS 0x200
+#define AT91_PDC_PTCR_RXDIS 0x2
+
+
+// CLOCK divider interface
+
+#define AT91_CLKGEN_CPTMAX0 0x0 //counter 0
+#define AT91_CLKGEN_CPTMAX1 0x4 //counter 1
+#define AT91_CLKGEN_CPTMAX2 0x8 //..
+#define AT91_CLKGEN_CPTMAX3 0xC
+#define AT91_CLKGEN_CPTMAX4 0x10
+#define AT91_CLKGEN_CPTMAX5 0x14
+#define AT91_CLKGEN_CPTMAX6 0x18
+#define AT91_CLKGEN_CPTMAX7 0x1C
+#define AT91_CLKGEN_CPTMAX8 0x20
+#define AT91_CLKGEN_CLKENABLE 0x24 // enable clocks out, wronly
+#define AT91_CLKGEN_CLKDISABLE 0x28 // disable clocks out, wronly
+
+// ADDA Analog Digital Digital Analog interface
+
+#define AT91_ADDA_CR 0x0 // adda configuration
+#define AT91_ADDA_ADCL0 0x20 // ADC input channel0 LEFT
+#define AT91_ADDA_ADCR0 0x24 // ADC input channel0 RIGHT
+#define AT91_ADDA_ADCL1 0x28 // ADC input channel1 LEFT
+#define AT91_ADDA_ADCR1 0x2C // ADC input channel1 RIGHT
+#define AT91_ADDA_ADCL2 0x30 // ADC input channel2 LEFT
+#define AT91_ADDA_ADCR2 0x34 // ADC input channel2 RIGHT
+#define AT91_ADDA_ADCL3 0x38 // ADC input channel3 LEFT
+#define AT91_ADDA_ADCR3 0x3C // ADC input channel3 RIGHT
+
+#define AT91_ADDA_DACL0 0x20 // DAC output channel0 LEFT
+#define AT91_ADDA_DACR0 0x24 // DAC output channel0 RIGHT
+#define AT91_ADDA_DACL1 0x28 // DAC output channel1 LEFT
+#define AT91_ADDA_DACR1 0x2C // DAC output channel1 RIGHT
+#define AT91_ADDA_DACL2 0x30 // DAC output channel2 LEFT
+#define AT91_ADDA_DACR2 0x34 // DAC output channel2 RIGHT
+#define AT91_ADDA_DACL3 0x38 // DAC output channel3 LEFT
+#define AT91_ADDA_DACR4 0x3C // DAC output channel3 RIGHT
+
+///// MAGIC DSP
+// Magic Data Memory Left BASE 40 bit width (64 bit aligned)
+#define AT91_MAARDML 0x00410000
+// Magic Data Memory Right BASE 40 bit width (64 bit aligned)
+#define AT91_MAARDMR 0x00420000
+// Magic Parm Left Base (arm interchange memory) 40 bit width (64 bit aligned)
+#define AT91_MAARPARML 0x00490000
+// Magic Parm Right Base (arm interchange memory) 40 bit width (64 bit aligned)
+#define AT91_MAARPARMR 0x004A0000
+// Magic Program Memory
+#define AT91_MAARPM 0x00430000
+
+// Magic Global Controller registers
+#define AT91_MAARGSR 0x00450000
+#define AT91_MAARGSR_SAR 0x0 // start magic program address
+#define AT91_MAARGSR_CONF 0x4 // magic configuration
+#define AT91_MAARGSR_STAT 0x8 // magic status rdonly
+#define AT91_MAARGSR_EXC 0xC // magic exception rdonly
+#define AT91_MAARGSR_EXC_MSK 0x10 // magic exception mask
+#define AT91_MAARGSR_PC 0x14 // magic program counter
+#define AT91_MAARGSR_QCS 0x18 // magic condition stack Q
+#define AT91_MAARGSR_ICS 0x1C // magic condition stack I
+#define AT91_MAARGSR_PMS 0x20 // magic pma stack
+#define AT91_MAARGSR_DMA_TYPE 0x24 // magic dma type
+#define AT91_MAARGSR_DMA_LEN 0x28 // magic dma len
+#define AT91_MAARGSR_DMA_MOD 0x2C // magic modifier/stride
+#define AT91_MAARGSR_DMA_BADD 0x30 // magic dma buffer address
+ // (internal address)
+#define AT91_MAARGSR_DMA_XADD 0x34 // magic dma external address
+#define AT91_MAARGSR_DMA_START 0x38 // magic start dma
+#define AT91_MAARGSR_STEP_MODE 0x3C // magic single cycle mode
+
+// Magic MAAR (MAgic ARm interface) Controller registers base
+#define AT91_MAARCSE 0x00460000
+#define AT91_MAARCSE_CMD 0x0 // command register
+#define AT91_MAARCSE_CMD_RUN 0x1 // run
+#define AT91_MAARCSE_SR 0x4 // status register
+#define AT91_MAARCSE_EXC 0x8 // exception register
+#define AT91_MAARCSE_EXC_MSK 0xC // mask exception register
+
+// usarts are connected to clock divider
+#define AT91_US_BAUD(baud) (CYGNUM_HAL_ARM_AT91_CLOCK_SPEED/(16*(baud)))
+#define AT91_SPI_BAUD(baud) (CYGNUM_HAL_ARM_AT91_CLOCK_SPEED/(4*(baud)))
+
+#endif // CYGONCE_HAL_PLF_IO_H
diff --git a/ecos/packages/hal/arm/at91/jtst/current/misc/redboot_RAM.ecm b/ecos/packages/hal/arm/at91/jtst/current/misc/redboot_RAM.ecm
new file mode 100644
index 0000000..4977916
--- /dev/null
+++ b/ecos/packages/hal/arm/at91/jtst/current/misc/redboot_RAM.ecm
@@ -0,0 +1,58 @@
+cdl_savefile_version 1;
+cdl_savefile_command cdl_savefile_version {};
+cdl_savefile_command cdl_savefile_command {};
+cdl_savefile_command cdl_configuration { description hardware template package };
+cdl_savefile_command cdl_package { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_component { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_option { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_interface { value_source user_value wizard_value inferred_value };
+
+cdl_configuration eCos {
+ description "" ;
+ hardware jtst ;
+ template redboot ;
+ package -hardware CYGPKG_HAL_ARM current ;
+ package -hardware CYGPKG_HAL_ARM_AT91 current ;
+ package -hardware CYGPKG_DEVS_FLASH_JTST current ;
+ package -hardware CYGPKG_DEVS_FLASH_ATMEL_AT49XXXX current ;
+ package -template CYGPKG_HAL current ;
+ package -template CYGPKG_INFRA current ;
+ package -template CYGPKG_REDBOOT current ;
+ package CYGPKG_IO_FLASH current ;
+};
+
+cdl_option CYGNUM_HAL_COMMON_INTERRUPTS_STACK_SIZE {
+ user_value 6144
+};
+
+cdl_option CYGDBG_HAL_COMMON_INTERRUPTS_SAVE_MINIMUM_CONTEXT {
+ user_value 0
+};
+
+cdl_option CYGDBG_HAL_COMMON_CONTEXT_SAVE_MINIMUM {
+ inferred_value 0
+};
+
+cdl_option CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS {
+ inferred_value 1
+};
+
+cdl_option CYGSEM_HAL_USE_ROM_MONITOR {
+ inferred_value 0 0
+};
+
+cdl_component CYGBLD_BUILD_REDBOOT {
+ user_value 1
+};
+
+cdl_option CYGBLD_BUILD_REDBOOT_WITH_EXEC {
+ user_value 0
+};
+
+cdl_option CYGOPT_REDBOOT_FIS {
+ user_value 0
+};
+
+cdl_component CYGSEM_REDBOOT_FLASH_CONFIG {
+ user_value 0
+};
diff --git a/ecos/packages/hal/arm/at91/jtst/current/misc/redboot_ROM.ecm b/ecos/packages/hal/arm/at91/jtst/current/misc/redboot_ROM.ecm
new file mode 100644
index 0000000..8cf4520
--- /dev/null
+++ b/ecos/packages/hal/arm/at91/jtst/current/misc/redboot_ROM.ecm
@@ -0,0 +1,66 @@
+cdl_savefile_version 1;
+cdl_savefile_command cdl_savefile_version {};
+cdl_savefile_command cdl_savefile_command {};
+cdl_savefile_command cdl_configuration { description hardware template package };
+cdl_savefile_command cdl_package { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_component { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_option { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_interface { value_source user_value wizard_value inferred_value };
+
+cdl_configuration eCos {
+ description "" ;
+ hardware jtst ;
+ template redboot ;
+ package -hardware CYGPKG_HAL_ARM current ;
+ package -hardware CYGPKG_HAL_ARM_AT91 current ;
+ package -hardware CYGPKG_DEVS_FLASH_JTST current ;
+ package -hardware CYGPKG_DEVS_FLASH_ATMEL_AT49XXXX current ;
+ package -template CYGPKG_HAL current ;
+ package -template CYGPKG_INFRA current ;
+ package -template CYGPKG_REDBOOT current ;
+ package CYGPKG_IO_FLASH current ;
+};
+
+cdl_option CYGNUM_HAL_COMMON_INTERRUPTS_STACK_SIZE {
+ user_value 6144
+};
+
+cdl_option CYGDBG_HAL_COMMON_INTERRUPTS_SAVE_MINIMUM_CONTEXT {
+ user_value 0
+};
+
+cdl_option CYGDBG_HAL_COMMON_CONTEXT_SAVE_MINIMUM {
+ inferred_value 0
+};
+
+cdl_option CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS {
+ inferred_value 1
+};
+
+cdl_option CYGSEM_HAL_ROM_MONITOR {
+ inferred_value 1
+};
+
+cdl_option CYGSEM_HAL_USE_ROM_MONITOR {
+ inferred_value 0 0
+};
+
+cdl_component CYG_HAL_STARTUP {
+ user_value ROM
+};
+
+cdl_component CYGBLD_BUILD_REDBOOT {
+ user_value 1
+};
+
+cdl_option CYGBLD_BUILD_REDBOOT_WITH_EXEC {
+ user_value 0
+};
+
+cdl_option CYGOPT_REDBOOT_FIS {
+ user_value 0
+};
+
+cdl_component CYGSEM_REDBOOT_FLASH_CONFIG {
+ user_value 0
+};
diff --git a/ecos/packages/hal/arm/at91/jtst/current/src/jtst_misc.c b/ecos/packages/hal/arm/at91/jtst/current/src/jtst_misc.c
new file mode 100644
index 0000000..2f6f3e9
--- /dev/null
+++ b/ecos/packages/hal/arm/at91/jtst/current/src/jtst_misc.c
@@ -0,0 +1,109 @@
+//==========================================================================
+//
+// jtst_misc.c
+//
+// HAL misc board support code for Atmel JTST eval board
+//
+//==========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//==========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): gthomas
+// Contributors: gthomas, jskov, tkoeller, nickg,amichelotti
+// Date: 2004-06-6
+// Purpose: HAL board support
+// Description: Implementations of HAL board interfaces
+//
+//####DESCRIPTIONEND####
+//
+//========================================================================*/
+
+#include <pkgconf/hal.h>
+#include <cyg/hal/hal_io.h>
+#include <cyg/hal/hal_misc.h>
+#include <cyg/infra/cyg_type.h> // base types
+#include <cyg/hal/var_io.h> // platform registers
+
+// in JTST only has a 7 segments display available
+void
+hal_at91_led(int val){
+ unsigned led=BIT27|BIT26|BIT25|BIT24|BIT23|BIT22|BIT21;
+ // turn all leds off
+ HAL_WRITE_UINT32(AT91_PIO+AT91_PIO_SODR,led);
+
+ switch(val&0xf){
+ case 0:
+ led = BIT27|BIT26|BIT25|BIT24|BIT23|BIT21;
+ break;
+ case 1:
+ led = BIT26|BIT25;
+ break;
+ case 2:
+ led = BIT27|BIT26|BIT24|BIT23|BIT22;
+ break;
+ case 3:
+ led = BIT27|BIT26|BIT25|BIT24|BIT22;
+ break;
+ case 4:
+ led = BIT26|BIT21|BIT22|BIT25;
+ break;
+ case 5:
+ led = BIT27|BIT25|BIT24|BIT21|BIT22;
+ break;
+ case 6:
+ led = BIT27|BIT25|BIT24|BIT21|BIT22|BIT23;
+ break;
+ case 7:
+ led = BIT27|BIT26|BIT25;
+ break;
+ case 8:
+ led = BIT27|BIT26|BIT25|BIT24|BIT23|BIT22|BIT21;
+ break;
+ case 9:
+ led = BIT27|BIT26|BIT25|BIT22|BIT21;
+ break;
+ default: // Show an E for out of range values
+ led = BIT27|BIT24|BIT23|BIT22|BIT21;
+ }
+ // leds on
+ HAL_WRITE_UINT32(AT91_PIO+AT91_PIO_CODR,led);
+}
+
+void
+hal_at91_set_leds(int val){
+ hal_at91_led(val);
+}
+
+//--------------------------------------------------------------------------
+// EOF jtst_misc.c
diff --git a/ecos/packages/hal/arm/at91/jtst/current/support/jtstflash.c b/ecos/packages/hal/arm/at91/jtst/current/support/jtstflash.c
new file mode 100644
index 0000000..a094edc
--- /dev/null
+++ b/ecos/packages/hal/arm/at91/jtst/current/support/jtstflash.c
@@ -0,0 +1,364 @@
+
+// jtstflash.c, Andrea Michelotti amichelotti@atmel.com
+// simple flash software.
+// To compile it:
+// gcc -DLINUX jtstflash.c -o jtstflash (linux)
+// gcc jtstflash.c -o jtstflash (cygwin)
+
+
+/*
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+ * Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+
+ * Redistributions in binary form must reproduce the above
+ copyright notice, this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided
+ with the distribution.
+
+ * Neither the name of [original copyright holder] nor the names of
+ its contributors may be used to endorse or promote products
+ derived from this software without specific prior written
+ permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+
+#include <termios.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <unistd.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <fcntl.h>
+
+#define PRG_FLASH 0x4392014
+
+//
+#define BUFFER_SIZE 1024
+
+#define FLASH_SIZE 1024*1024
+#define PROTOK 0xc1a0c1a0
+typedef struct {
+ unsigned cmd;
+ unsigned add;
+ unsigned len;
+} command_t;
+
+unsigned totry[]={
+ 50,
+ 75,
+ 110,
+ 134,
+ 150,
+ 200,
+ 300,
+ 600,
+ 1200,
+ 2400,
+ 4800,
+ 9600,
+ 19200,
+ 38400,
+ 57600,
+ 115200
+};
+
+void check_error(int a){
+ printf("\n\n\n\n\n");
+ switch(a){
+ case -1:
+ printf("## verify error\n");
+ break;
+ case -2:
+ printf("## flash timeout error\n");
+ break;
+ case -3:
+ printf("## product id mismatch\n");
+ break;
+ case -4:
+ printf("## device id mismatch\n");
+ break;
+ case -5:
+ printf("## flash write protected\n");
+ break;
+ default:
+ printf("## PROTOCOL ERROR check serial connection 0x%x (%d)\n",a,a);
+ break;
+ }
+
+}
+
+unsigned num2baud(unsigned baud_rate){
+ unsigned BAUD;
+ switch (baud_rate)
+ {
+
+ default:
+ printf("%% baud rate %d not supported\n",baud_rate);
+ exit(1);
+ case 115200:
+ BAUD = B115200;
+ break;
+ case 57600:
+ BAUD = B57600;
+ break;
+ case 38400:
+
+ BAUD = B38400;
+ break;
+ case 19200:
+ BAUD = B19200;
+ break;
+ case 9600:
+ BAUD = B9600;
+ break;
+ case 4800:
+ BAUD = B4800;
+ break;
+ case 2400:
+ BAUD = B2400;
+ break;
+ case 1800:
+ BAUD = B1800;
+ break;
+ case 1200:
+ BAUD = B1200;
+ break;
+ case 600:
+ BAUD = B600;
+ break;
+ case 300:
+ BAUD = B300;
+ break;
+ case 200:
+ BAUD = B200;
+ break;
+ case 150:
+ BAUD = B150;
+ break;
+ case 134:
+ BAUD = B134;
+ break;
+ case 110:
+ BAUD = B110;
+ break;
+ case 75:
+ BAUD = B75;
+ break;
+ case 50:
+ BAUD = B50;
+ break;
+ }
+ return BAUD;
+}
+unsigned check_ack(int fd){
+ unsigned data;
+ //usleep(80000);
+ read(fd,&data,4);
+ if((data==PROTOK)){
+ // printf("## check ack :0x%x\n",data);
+ return 0;
+ }
+ return data;
+}
+
+unsigned ask(int fd,unsigned cmd, unsigned address,unsigned len){
+ command_t data;
+
+ data.len = len;
+ data.cmd = cmd;
+ data.add = address;
+ // printf("%% sending command\n");
+ //usleep(80000);
+ write(fd,&data.cmd,sizeof(data));
+
+ // sleep(1);
+ /* if((res=check_ack(fd)) ==0){
+ // printf("* command OK\n");
+ return 0;
+ } else {
+ printf("## ACK check sending command failed 0x%x\n",res);
+ }*/
+ // sleep(1);
+ return 0;
+}
+
+
+
+
+main(int argc,char**argv){
+
+ struct termios uparam,uparam_old;
+ unsigned res;
+ command_t data;
+ int i,fd;
+ unsigned baud_rate=115200;
+ long BAUD;
+ unsigned STOPBITS = CSTOPB;
+ unsigned PARITY = 0;
+ unsigned DATABITS = CS8;
+ unsigned PARITYON = 0;
+ int tot=0;
+#ifdef LINUX
+ char* s_dev="/dev/ttyS1";
+#else
+#warning "USING WIN32 SETTINGS"
+ char* s_dev="/dev/com2";
+#endif
+ char* s_fname=0;
+ char* s_add=0;
+ char* s_len=0;
+ unsigned address=0x500000,len=0,tlen;
+ FILE* mybin=0;
+ struct stat info;
+ char buffer[BUFFER_SIZE];
+ unsigned ok=0xc1a0c1a0;
+ for(i=1;i<argc;i++){
+ if(!strcmp(argv[i],"-d")){
+ s_dev = argv[++i];
+ continue;
+ }
+
+
+ if(!strcmp(argv[i],"-a")){
+ s_add = argv[++i];
+ continue;
+ }
+
+ /* if(!strcmp(argv[i],"-reset")){
+ operation = CMD_RESET;
+ continue;
+ }*/
+
+ if(!strcmp(argv[i],"-h")){
+ printf("usage is %s <bin> [-a <flash address>]\n",argv[0]);
+ exit(0);
+ }
+ s_fname = argv[i];
+ // printf("name -> %s",s_fname);
+ }
+
+ if(s_fname){
+ mybin=fopen(s_fname,"rb");
+ if(mybin==0){
+ printf("## you must specify a valid filename\n");
+ exit(1);
+ }
+ } else {
+ printf("## you must specify a valid filename\n");
+ exit(1);
+ }
+ if(s_add){
+ address=strtoul(s_add,0,0);
+ }
+ BAUD=num2baud(baud_rate);
+ fd=open(s_dev,O_RDWR |O_NOCTTY| O_NDELAY);
+ if(fd<0){
+ printf("## cannot open serial %s\n",s_dev);
+ exit(1);
+ }
+ if(tcgetattr(fd,&uparam)<0){
+ perror("## cannot get serial paramenters \n");
+ exit(1);
+ }
+ //CS8 : 8 n 1
+ // hw flow ctrl
+ //bzero(&uparam, sizeof(uparam));
+
+ uparam.c_cflag = BAUD | CS8 |CLOCAL|CREAD;
+
+ uparam.c_iflag = 0; //raw device
+ uparam.c_oflag = 0; // raw device
+ uparam.c_lflag = 0;//ICANON;
+ //uparam.c_cc[VMIN]=1;
+ //uparam.c_cc[VEOF]=4;/*ctrld*/
+ //uparam.c_cc[VTIME]=0;
+ fcntl(fd, F_SETFL, 0);
+
+ if(tcflush(fd, TCIFLUSH)<0){
+ printf("## cannot flush serial\n");
+ exit(1);
+ }
+ if(tcsetattr(fd,TCSANOW,&uparam)<0){
+ printf("## cannot set serial paramenters\n");
+ exit(1);
+ } else {
+ printf("* using serial %s, %d, no parity, 8b, 1stop\n",s_dev,baud_rate);
+ }
+/*
+ if(tcflush(fd, TCIFLUSH)<0){
+ printf("## cannot flush serial paramenters\n");
+ exit(1);
+ }*/
+ /*
+ printf("* press return\n");
+ {
+ char pp[80];
+ gets(pp);
+ }*/
+ lstat(s_fname,&info);
+ len = info.st_size;
+
+ printf("* binary len %d bytes..\n",len);
+ if(ask(fd,PRG_FLASH,address,len)!=0) {
+ fclose(mybin);
+ close(fd);
+ return 0;
+ }
+ // check flsh id
+ if((res=check_ack(fd))!=0){
+ printf("## flash id check failed 0x%x\n",res);
+ close(fd);
+ exit(1);
+ }
+ printf("* flash id check ok\n");
+ write(fd,&ok,4);
+ if((res=check_ack(fd))!=0){
+ printf("## flash id check failed 0x%x\n",res);
+ close(fd);
+ exit(1);
+ }
+ printf("* erasing space address 0x%x... please wait\n",address);
+ // verify erase
+ if((res=check_ack(fd))!=0){
+ printf("## verify erase failed 0x%x\n",res);
+ close(fd);
+ exit(1);
+ }
+ printf("* flash erase check ok\n");
+ printf("* start programming %d bytes.\n",len);
+ tlen=len;
+ while(len>0){
+ int ll=(len<BUFFER_SIZE)?len:BUFFER_SIZE;
+ tot+=ll;
+ fread(buffer,1,ll,mybin);
+ usleep(8000);
+ write(fd,buffer,ll);
+ printf("* downloading %.3f (rem:%d bytes)\r",(tlen-len)*100.0/tlen,tot);
+ if((res=check_ack(fd))!=0){
+ printf("## programming failed base add 0x%x\n",res);
+ // close(fd);
+ // exit(1);
+ }
+
+ len-=ll;
+
+ }
+ printf("\n* 100%% end programming\n");
+}
+
+
diff --git a/ecos/packages/hal/arm/at91/jtst/current/support/jtstflash.cpp b/ecos/packages/hal/arm/at91/jtst/current/support/jtstflash.cpp
new file mode 100644
index 0000000..affd8e1
--- /dev/null
+++ b/ecos/packages/hal/arm/at91/jtst/current/support/jtstflash.cpp
@@ -0,0 +1,253 @@
+// jtstflash.cpp Andrea Michelotti amichelotti@atmel.com
+// simple flash software. Compiled with MS Visual Studio 6
+
+/*
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+ * Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+
+ * Redistributions in binary form must reproduce the above
+ copyright notice, this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided
+ with the distribution.
+
+ * Neither the name of [original copyright holder] nor the names of
+ its contributors may be used to endorse or promote products
+ derived from this software without specific prior written
+ permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+*/
+#include "stdafx.h"
+#include "windows.h"
+#include <stdlib.h>
+
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <fcntl.h>
+#include <io.h>
+
+static HANDLE hComm;
+
+#define PRG_FLASH 0x4392014
+
+//
+#define BUFFER_SIZE 1024
+
+#define FLASH_SIZE 1024*1024
+#define PROTOK 0xc1a0c1a0
+typedef struct {
+ unsigned cmd;
+ unsigned add;
+ unsigned len;
+} command_t;
+
+
+unsigned check_ack(){
+ unsigned data;
+ unsigned long len;
+ //usleep(80000);
+ //read(fd,&data,4);
+ ReadFile(hComm,&data,4,&len,NULL);
+ if(len!=4){
+ printf("## (check_ack) protocol error byte read %d, expected 4\n",len);
+ exit(1);
+ }
+ if((data==PROTOK)){
+ // printf("## check ack :0x%x\n",data);
+ return 0;
+ }
+ return data;
+}
+
+unsigned ask(unsigned cmd, unsigned address,unsigned len){
+ unsigned long rlen;
+ command_t data;
+
+ data.len = len;
+ data.cmd = cmd;
+ data.add = address;
+ // printf("%% sending command\n");
+ //usleep(80000);
+ WriteFile(hComm,&data.cmd,sizeof(data),&rlen,NULL);
+
+ // sleep(1);
+ /* if((res=check_ack(fd)) ==0){
+ // printf("* command OK\n");
+ return 0;
+ } else {
+ printf("## ACK check sending command failed 0x%x\n",res);
+ }*/
+ // sleep(1);
+ return 0;
+}
+
+void initCom(char* com){
+ DCB dcb;
+ hComm = CreateFile (
+ com,
+ GENERIC_READ|GENERIC_WRITE,
+ 0,
+ NULL,
+ OPEN_EXISTING,
+ 0,
+ 0
+ );
+
+ if(hComm==INVALID_HANDLE_VALUE){
+ printf("## cannot open serial port %s\n",com);
+ exit(1);
+ }
+
+ if(GetCommState(hComm,&dcb)==0){
+ printf("## cannot get serial status\n");
+ exit(1);
+ }
+
+ dcb.BaudRate= CBR_115200;
+ dcb.ByteSize = 8;
+ dcb.Parity = NOPARITY;
+ dcb.StopBits = ONESTOPBIT;
+ dcb.fDtrControl= DTR_CONTROL_DISABLE;
+ dcb.fRtsControl = RTS_CONTROL_DISABLE;
+ dcb.DCBlength = sizeof(dcb);
+ if(SetCommState(hComm, &dcb)==0){
+ printf("## cannot set serial status\n");
+ exit(1);
+ }
+
+}
+
+
+
+int main(int argc, char* argv[])
+{
+ int res,i,tot=0;
+ char* s_dev="COM2";
+
+ char* s_fname=0;
+ char* s_add=0;
+ char* s_len=0;
+ unsigned address=0x500000,len=0,tlen;
+ FILE* mybin=0;
+ struct stat info;
+ char buffer[BUFFER_SIZE];
+ unsigned ok=0xc1a0c1a0;
+ unsigned long lenw;
+ for(i=1;i<argc;i++){
+ if(!strcmp(argv[i],"-d")){
+ s_dev = argv[++i];
+ continue;
+ }
+
+
+ if(!strcmp(argv[i],"-a")){
+ s_add = argv[++i];
+ continue;
+ }
+
+ /* if(!strcmp(argv[i],"-reset")){
+ operation = CMD_RESET;
+ continue;
+ }*/
+
+ if(!strcmp(argv[i],"-h")){
+ printf("usage is %s <bin> [-a <flash address>]\n",argv[0]);
+ exit(0);
+ }
+ s_fname = argv[i];
+ // printf("name -> %s",s_fname);
+ }
+
+ if(s_fname){
+ mybin=fopen(s_fname,"rb");
+ if(mybin==0){
+ printf("## you must specify a valid filename\n");
+ exit(1);
+ }
+ } else {
+ printf("## you must specify a valid filename\n");
+ exit(1);
+ }
+ if(s_add){
+ address=strtoul(s_add,0,0);
+ }
+
+ initCom(s_dev);
+
+ {
+ int fdf=fseek(mybin,0,SEEK_END );
+ fdf = ftell(mybin);
+ fseek(mybin,0,SEEK_SET );
+ len = fdf- ftell(mybin);
+ }
+ printf("* binary len %d bytes flash add 0x%x..\n",len,address);
+ if(ask(PRG_FLASH,address,len)!=0) {
+ fclose(mybin);
+ CloseHandle(hComm);
+ return 0;
+ }
+ // check flsh id
+ if((res=check_ack())!=0){
+ printf("## flash id check failed 0x%x\n",res);
+ CloseHandle(hComm);
+ exit(1);
+ }
+ printf("* flash id check ok\n");
+
+ WriteFile(hComm,&ok,4,&lenw,NULL);
+ if((res=check_ack())!=0){
+ printf("## flash id check failed 0x%x\n",res);
+ CloseHandle(hComm);
+ exit(1);
+ }
+ printf("* erasing space address 0x%x... please wait\n",address);
+ // verify erase
+ if((res=check_ack())!=0){
+ printf("## verify erase failed 0x%x\n",res);
+ CloseHandle(hComm);
+ exit(1);
+ }
+ printf("* flash erase check ok\n");
+ printf("* start programming %d bytes.\n",len);
+ tlen=len;
+ while(len>0){
+
+ unsigned long ll=(len<BUFFER_SIZE)?len:BUFFER_SIZE;
+ tot+=ll;
+ fread(buffer,1,ll,mybin);
+ //usleep(8000);
+ //write(fd,buffer,ll);
+ WriteFile(hComm,buffer,ll,&lenw,NULL);
+ if(ll!=lenw){
+ printf("## error writing byte write %d != byte to write %d\n",lenw,ll);
+ exit(1);
+ }
+ printf("* downloading %.3f (rem:%d bytes)\r",(tlen-len)*100.0/tlen,tot);
+ if((res=check_ack())!=0){
+ printf("## programming failed base add 0x%x\n",res);
+ // close(fd);
+ // exit(1);
+ }
+
+ len-=ll;
+
+ }
+ printf("\n* 100%% end programming\n");
+ return 0;
+}
+
diff --git a/ecos/packages/hal/arm/at91/phycore/current/ChangeLog b/ecos/packages/hal/arm/at91/phycore/current/ChangeLog
new file mode 100644
index 0000000..b07f8ce
--- /dev/null
+++ b/ecos/packages/hal/arm/at91/phycore/current/ChangeLog
@@ -0,0 +1,49 @@
+2009-01-31 Bart Veer <bartv@ecoscentric.com>
+
+ * cdl/hal_arm_at91_phycore.cdl: update compiler flags for gcc 4.x
+
+2009-01-24 Bart Veer <bartv@ecoscentric.com>
+
+ * cdl/hal_arm_at91_phycore.cdl: switch from arm-elf-gcc to
+ arm-eabi-gcc. Remove -mno-short-load-words.
+
+2004-10-13 Sebastian Block <sebastianblock@gmx.net>
+
+ * cdl/hal_arm_at91_phycore.cdl:
+ * include/plf_io.h:
+ * include/hal_platform_setup.h:
+ * include/hal_platform_ints.h:
+ * include/pkgconf/mlt_arm_at91_phycore_ram.ldi:
+ * include/pkgconf/mlt_arm_at91_phycore_ram.h:
+ * include/pkgconf/mlt_arm_at91_phycore_rom.ldi:
+ * include/pkgconf/mlt_arm_at91_phycore_rom.h:
+ * include/pkgconf/mlt_arm_at91_phycore_romram.ldi:
+ * include/pkgconf/mlt_arm_at91_phycore_romram.h:
+ * src/phycore_misc.c:
+ New HAL added to support the Phytec phyCore AT91M55800A
+ board. Adapted from the EB55 HAL by Nick Garnett.
+
+
+//===========================================================================
+// ####GPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 2 or (at your option) any
+// later version.
+//
+// This program is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the
+// Free Software Foundation, Inc., 51 Franklin Street,
+// Fifth Floor, Boston, MA 02110-1301, USA.
+// -------------------------------------------
+// ####GPLCOPYRIGHTEND####
+//===========================================================================
diff --git a/ecos/packages/hal/arm/at91/phycore/current/cdl/hal_arm_at91_phycore.cdl b/ecos/packages/hal/arm/at91/phycore/current/cdl/hal_arm_at91_phycore.cdl
new file mode 100644
index 0000000..532816e
--- /dev/null
+++ b/ecos/packages/hal/arm/at91/phycore/current/cdl/hal_arm_at91_phycore.cdl
@@ -0,0 +1,300 @@
+# ====================================================================
+#
+# hal_arm_at91_phycore.cdl
+#
+# ARM AT91 phycore HAL package configuration data
+# running on a Phytec phycore AT91M55800A on a Phytec HDV200
+#
+# ====================================================================
+## ####ECOSGPLCOPYRIGHTBEGIN####
+## -------------------------------------------
+## This file is part of eCos, the Embedded Configurable Operating System.
+## Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
+##
+## eCos is free software; you can redistribute it and/or modify it under
+## the terms of the GNU General Public License as published by the Free
+## Software Foundation; either version 2 or (at your option) any later
+## version.
+##
+## eCos is distributed in the hope that it will be useful, but WITHOUT
+## ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+## FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+## for more details.
+##
+## You should have received a copy of the GNU General Public License
+## along with eCos; if not, write to the Free Software Foundation, Inc.,
+## 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+##
+## As a special exception, if other files instantiate templates or use
+## macros or inline functions from this file, or you compile this file
+## and link it with other works to produce a work based on this file,
+## this file does not by itself cause the resulting work to be covered by
+## the GNU General Public License. However the source code for this file
+## must still be made available in accordance with section (3) of the GNU
+## General Public License v2.
+##
+## This exception does not invalidate any other reasons why a work based
+## on this file might be covered by the GNU General Public License.
+## -------------------------------------------
+## ####ECOSGPLCOPYRIGHTEND####
+# ====================================================================
+######DESCRIPTIONBEGIN####
+#
+# Author(s): gthomas
+# Contributors: gthomas, tkoeller, tdrury, nickg, block
+# Date: 2001-07-12
+#
+#####DESCRIPTIONEND####
+#
+# ====================================================================
+
+cdl_package CYGPKG_HAL_ARM_AT91_PHYCORE {
+ display "PHYTEC phyCore AT91M55800A eval board HAL"
+ parent CYGPKG_HAL_ARM_AT91
+ define_header hal_arm_at91_phycore.h
+ include_dir cyg/hal
+ hardware
+ description "
+ The pyhcore HAL package provides the support needed to run
+ eCos on an Phytec phyCORE - AT91M55800A eval board."
+
+ compile phycore_misc.c
+
+ requires { CYGHWR_HAL_ARM_AT91 == "M55800A" }
+
+ 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_at91.h>"
+ puts $::cdl_system_header "#define CYGBLD_HAL_PLATFORM_H <pkgconf/hal_arm_at91_phycore.h>"
+ puts $::cdl_header "#define HAL_PLATFORM_CPU \"ARM7TDMI\""
+ puts $::cdl_header "#define HAL_PLATFORM_BOARD \"phyCORE AT91M55800A\""
+ puts $::cdl_header "#define HAL_PLATFORM_EXTRA \"\""
+ }
+
+ 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
+ default_value 1000000000
+ }
+ cdl_option CYGNUM_HAL_RTC_DENOMINATOR {
+ display "Real-time clock denominator"
+ flavor data
+ default_value 100
+ }
+ cdl_option CYGNUM_HAL_RTC_PERIOD {
+ display "Real-time clock period"
+ flavor data
+ default_value ((CYGNUM_HAL_ARM_AT91_CLOCK_SPEED/32) / CYGNUM_HAL_RTC_DENOMINATOR)
+ }
+ }
+
+ cdl_component CYG_HAL_STARTUP {
+ display "Startup type"
+ flavor data
+ default_value {"RAM"}
+ legal_values {"RAM" "ROM" "ROMRAM"}
+ no_define
+ define -file system.h CYG_HAL_STARTUP
+ description "
+ When targetting the AT91 EBxx 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 onboard
+ debug software such as Angel or eCos GDB stubs. Select 'rom'
+ when building a stand-alone application which will be put
+ into ROM. Using ROMRAM will allow the program to exist in
+ ROM, but be copied to RAM during startup."
+ }
+
+ # Real-time clock/counter specifics
+ cdl_option CYGNUM_HAL_ARM_AT91_CLOCK_SPEED {
+ display "CPU clock speed"
+ flavor data
+ default_value 32768000
+ }
+
+ cdl_option CYGNUM_HAL_VIRTUAL_VECTOR_COMM_CHANNELS {
+ display "Number of communication channels on the board"
+ flavor data
+ calculated 3
+ }
+
+ cdl_option CYGNUM_HAL_VIRTUAL_VECTOR_DEBUG_CHANNEL {
+ display "Debug serial port"
+ active_if CYGPRI_HAL_VIRTUAL_VECTOR_DEBUG_CHANNEL_CONFIGURABLE
+ flavor data
+ legal_values 0 to CYGNUM_HAL_VIRTUAL_VECTOR_COMM_CHANNELS-1
+ default_value 0
+ description "
+ The AT91 EBxx 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"
+ active_if CYGPRI_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_CONFIGURABLE
+ flavor data
+ legal_values 0 to CYGNUM_HAL_VIRTUAL_VECTOR_COMM_CHANNELS-1
+ default_value 0
+ description "
+ The AT91 EBxx board has two serial ports. This option
+ chooses which port will be used for diagnostic output."
+ }
+
+ cdl_option CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_BAUD {
+ display "Diagnostic serial port baud rate"
+ flavor data
+ legal_values 9600 19200 38400 57600 115200
+ default_value 38400
+ description "
+ This option selects the baud rate used for the diagnostic port."
+ }
+
+ cdl_option CYGNUM_HAL_VIRTUAL_VECTOR_DEBUG_CHANNEL_BAUD {
+ display "GDB serial port baud rate"
+ flavor data
+ legal_values 9600 19200 38400 57600 115200
+ default_value 38400
+ description "
+ This option controls the baud rate used for the GDB connection."
+ }
+
+ 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" || CYG_HAL_STARTUP == "ROMRAM" }
+ 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 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_REDBOOT_HAL_OPTIONS {
+ display "Redboot HAL options"
+ flavor none
+ no_define
+ parent CYGPKG_REDBOOT
+ active_if CYGPKG_REDBOOT
+ description "
+ This option lists the target's requirements for a valid Redboot
+ configuration."
+
+ 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 $< $@
+ }
+
+ }
+ }
+
+ 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 { "arm-eabi"}
+ 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 { CYGBLD_GLOBAL_WARNFLAGS . CYGBLD_ARCH_CFLAGS .
+ "-mcpu=arm7tdmi -g -O2 -ffunction-sections -fdata-sections -fno-rtti -fno-exceptions " }
+ 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 { CYGBLD_ARCH_LDFLAGS . "-mcpu=arm7tdmi -Wl,--gc-sections -Wl,-static -g -nostdlib" }
+ description "
+ This option controls the global linker flags. Individual
+ packages may define options which override these global flags."
+ }
+ }
+
+ cdl_component CYGHWR_MEMORY_LAYOUT {
+ display "Memory layout"
+ flavor data
+ no_define
+ calculated { (CYG_HAL_STARTUP == "RAM") ? "arm_at91_phycore_ram" :
+ (CYG_HAL_STARTUP == "ROMRAM") ? "arm_at91_phycore_romram" :
+ "arm_at91_phycore_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_at91_phycore_ram.ldi>" :
+ (CYG_HAL_STARTUP == "ROMRAM") ? "<pkgconf/mlt_arm_at91_phycore_romram.ldi>" :
+ "<pkgconf/mlt_arm_at91_phycore_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_at91_phycore_ram.h>" :
+ (CYG_HAL_STARTUP == "ROMRAM") ? "<pkgconf/mlt_arm_at91_phycore_romram.h>" :
+ "<pkgconf/mlt_arm_at91_phycore_rom.h>" }
+ }
+ }
+
+}
diff --git a/ecos/packages/hal/arm/at91/phycore/current/include/hal_platform_ints.h b/ecos/packages/hal/arm/at91/phycore/current/include/hal_platform_ints.h
new file mode 100644
index 0000000..8e25988
--- /dev/null
+++ b/ecos/packages/hal/arm/at91/phycore/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 assignments for AT91/EB55
+//
+//==========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//==========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): gthomas
+// Contributors: gthomas, nickg
+// Date: 2001-07-12
+// Purpose: Define Interrupt support
+// Description: The interrupt specifics for the AT91/EB55 board/platform are
+// defined here.
+//
+// Usage: #include <cyg/hal/hal_platform_ints.h>
+// ...
+//
+//
+//####DESCRIPTIONEND####
+//
+//==========================================================================
+
+#define CYGNUM_HAL_INTERRUPT_USART0 2
+#define CYGNUM_HAL_INTERRUPT_USART1 3
+#define CYGNUM_HAL_INTERRUPT_USART2 4
+#define CYGNUM_HAL_INTERRUPT_SPI 5
+#define CYGNUM_HAL_INTERRUPT_TIMER0 6
+#define CYGNUM_HAL_INTERRUPT_TIMER1 7
+#define CYGNUM_HAL_INTERRUPT_TIMER2 8
+#define CYGNUM_HAL_INTERRUPT_TIMER3 9
+#define CYGNUM_HAL_INTERRUPT_TIMER4 10
+#define CYGNUM_HAL_INTERRUPT_TIMER5 11
+#define CYGNUM_HAL_INTERRUPT_WATCHDOG 12
+#define CYGNUM_HAL_INTERRUPT_PIOA 13
+#define CYGNUM_HAL_INTERRUPT_PIOB 14
+#define CYGNUM_HAL_INTERRUPT_AD0 15
+#define CYGNUM_HAL_INTERRUPT_AD1 16
+#define CYGNUM_HAL_INTERRUPT_DA0 17
+#define CYGNUM_HAL_INTERRUPT_DA1 18
+#define CYGNUM_HAL_INTERRUPT_RTC0 19
+#define CYGNUM_HAL_INTERRUPT_APMC 20
+#define CYGNUM_HAL_INTERRUPT_RES0 21
+#define CYGNUM_HAL_INTERRUPT_RES1 22
+#define CYGNUM_HAL_INTERRUPT_SLCK 23
+#define CYGNUM_HAL_INTERRUPT_EXT5 24
+#define CYGNUM_HAL_INTERRUPT_EXT4 25
+#define CYGNUM_HAL_INTERRUPT_EXT3 26
+#define CYGNUM_HAL_INTERRUPT_EXT2 27
+#define CYGNUM_HAL_INTERRUPT_EXT1 28
+#define CYGNUM_HAL_INTERRUPT_EXT0 29
+#define CYGNUM_HAL_INTERRUPT_COMMRX 30
+#define CYGNUM_HAL_INTERRUPT_COMMTX 31
+
+
+#define CYGNUM_HAL_ISR_MIN 2
+#define CYGNUM_HAL_ISR_MAX 31
+// Note: extra slots (0,1) to avoid messing with vector translation
+#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
+
+
+//----------------------------------------------------------------------------
+// Reset.
+
+__externC void hal_at91_reset_cpu(void);
+#define HAL_PLATFORM_RESET() hal_at91_reset_cpu()
+
+#define HAL_PLATFORM_RESET_ENTRY 0x01000000
+
+#endif // CYGONCE_HAL_PLATFORM_INTS_H
diff --git a/ecos/packages/hal/arm/at91/phycore/current/include/hal_platform_setup.h b/ecos/packages/hal/arm/at91/phycore/current/include/hal_platform_setup.h
new file mode 100644
index 0000000..7a905f7
--- /dev/null
+++ b/ecos/packages/hal/arm/at91/phycore/current/include/hal_platform_setup.h
@@ -0,0 +1,212 @@
+#ifndef CYGONCE_HAL_PLATFORM_SETUP_H
+#define CYGONCE_HAL_PLATFORM_SETUP_H
+
+/*=============================================================================
+//
+// hal_platform_setup.h
+//
+// Platform specific support for HAL (assembly code)
+//
+//=============================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): gthomas
+// Contributors:gthomas, tdrury, nickg, block
+// Date: 2001-07-12
+// Purpose: AT91/phycore platform specific support routines
+// Description:
+// Usage: #include <cyg/hal/hal_platform_setup.h>
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================*/
+
+#include <cyg/hal/var_io.h>
+
+//===========================================================================*/
+
+ .macro _led_init
+ ldr r0,=AT91_PIOA
+ mov r1,#0x00000001
+ str r1,[r0,#AT91_PIO_PER]
+ str r1,[r0,#AT91_PIO_OER]
+ _led 0
+ .endm
+
+ .macro _led y
+ ldr r0,=AT91_PIOA
+ mov r1,#0x00000001
+ str r1,[r0,#AT91_PIO_SODR]
+ mov r1,#0x00000001
+ str r1,[r0,#AT91_PIO_CODR]
+ .endm
+
+ .macro _pclock_init
+ ldr r0,=AT91_PMC // Power saving interface
+ ldr r1,=0xFFFFFFFF // Enable all peripheral [clocks]
+ str r1,[r0,#AT91_PMC_PCER]
+ .endm
+
+ .macro _pio_init
+ ldr r0,=AT91_PIOA // Disable PIO (so peripherals can use bits)
+ ldr r1,=(0x006d8000) // Enable UARTS 0/1/2 to use pins
+ str r1,[r0,#AT91_PIO_PDR]
+ .endm
+
+#define CYGHWR_LED_MACRO _led \x
+
+//===========================================================================*/
+
+#if defined(CYG_HAL_STARTUP_ROM) || defined(CYG_HAL_STARTUP_ROMRAM)
+
+#define AT91_PMC_CGMR_INIT0 (AT91_PMC_CGMR_MOSC_XTAL | \
+ AT91_PMC_CGMR_MOSC_ENA | \
+ AT91_PMC_CGMR_OSC_CNT(47))
+
+#define AT91_PMC_CGMR_INIT1 (AT91_PMC_CGMR_INIT0 | \
+ AT91_PMC_CGMR_CSS_MOSC)
+
+#define AT91_PMC_CGMR_INIT2 (AT91_PMC_CGMR_INIT1 | \
+ AT91_PMC_CGMR_PLL_MUL(1) | \
+ AT91_PMC_CGMR_PLL_CNT(255))
+
+#define AT91_PMC_CGMR_INIT3 (AT91_PMC_CGMR_INIT0 | \
+ AT91_PMC_CGMR_PLL_MUL(1) | \
+ AT91_PMC_CGMR_PLL_CNT(3) | \
+ AT91_PMC_CGMR_CSS_PLL)
+
+ .macro _setup
+ _led_init
+
+ // Change system frequency from 32kHz to 32MHz.
+
+ // First enable the master oscillator to run at 16MHz from
+ // external crystal.
+ ldr r2,=AT91_PMC
+ ldr r3,=AT91_PMC_CGMR_INIT0
+ str r3,[r2,#AT91_PMC_CGMR]
+
+ // Wait for MOSC to stabilize.
+ mov r4,#AT91_PMC_SR_MOSCS
+1:
+ ldr r3,[r2,#AT91_PMC_SR]
+ and r3,r4,r3
+ cmp r3,r4 //#AT91_PMC_SR_MOSCS
+ bne 1b
+
+ // Now switch CPU clock to use master oscillator, after this we
+ // should be running at 16MHz.
+ ldr r3,=AT91_PMC_CGMR_INIT1
+ str r3,[r2,#AT91_PMC_CGMR]
+
+ // Now enable PLL to run at twice MOSC frequency
+ ldr r3,=AT91_PMC_CGMR_INIT2
+ str r3,[r2,#AT91_PMC_CGMR]
+
+ // Wait for PLL to stabilize
+ mov r4,#AT91_PMC_SR_LOCK
+2:
+ ldr r3,[r2,#AT91_PMC_SR]
+ and r3,r4,r3
+ cmp r3,r4
+ bne 2b
+
+ // Finally, switch CPU clock from MOSC to PLL
+ ldr r3,=AT91_PMC_CGMR_INIT3
+ str r3,[r2,#AT91_PMC_CGMR]
+
+ // All done, we should be running at 32MHz now
+
+ ldr r10,=_InitMemory // Initialize memory controller
+ movs r0,pc,lsr #20 // If ROM startup, PC < 0x100000
+ moveq r10,r10,lsl #12 // mask address to low 20 bits
+ moveq r10,r10,lsr #12
+ ldmia r10!,{r0-r9,r11-r12} // Table of initialization constants
+#if defined(CYG_HAL_STARTUP_ROMRAM)
+ ldr r10,=0x0000FFFF
+ and r12,r12,r10
+ ldr r10,=0x01000000
+ orr r12,r12,r10
+#endif
+ stmia r11!,{r0-r9} // Write to controller
+ mov pc,r12 // Change address space, break pipeline
+_InitMemory:
+ .long 0x01002529 // 0x01000000, 16MB, 2 cycles after transfer, 16-bit, 6 wait states
+ .long 0x020034A5 // 0x02000000, 16MB, 0 cycles after transfer, 16-bit, 1 wait state
+ .long 0x20000000 // unused
+ .long 0x30000000 // unused
+ .long 0x40000000 // unused
+ .long 0x50000000 // unused
+ .long 0x60000000 // unused
+ .long 0x70000000 // unused
+ .long 0x00000001 // REMAP command
+ .long 0x00000000 // Standard read protocol
+ .long AT91_EBI // External Bus Interface address
+ .long 10f // address where to jump
+10:
+#if defined(CYG_HAL_STARTUP_ROMRAM)
+ ldr r0,=0x01000000 // Relocate FLASH/ROM to on-chip RAM
+ ldr r1,=0x02000000 // RAM base & length
+ ldr r2,=0x04200000
+20: ldr r3,[r0],#4
+ str r3,[r1],#4
+ cmp r1,r2
+ bne 20b
+ ldr r0,=30f
+ mov pc,r0
+30:
+#endif
+ _pclock_init
+ _pio_init
+ .endm
+
+#define CYGSEM_HAL_ROM_RESET_USES_JUMP
+
+#else
+
+ .macro _setup
+ _led_init
+ _pclock_init
+ _pio_init
+ .endm
+
+#endif
+
+#define PLATFORM_SETUP1 _setup
+
+
+//-----------------------------------------------------------------------------
+// end of hal_platform_setup.h
+#endif // CYGONCE_HAL_PLATFORM_SETUP_H
diff --git a/ecos/packages/hal/arm/at91/phycore/current/include/pkgconf/mlt_arm_at91_phycore_ram.h b/ecos/packages/hal/arm/at91/phycore/current/include/pkgconf/mlt_arm_at91_phycore_ram.h
new file mode 100644
index 0000000..986b44a
--- /dev/null
+++ b/ecos/packages/hal/arm/at91/phycore/current/include/pkgconf/mlt_arm_at91_phycore_ram.h
@@ -0,0 +1,17 @@
+// eCos memory layout - Mon Jul 23 11:49:04 2001
+
+// This is a generated file - do not edit
+
+#ifndef __ASSEMBLER__
+#include <cyg/infra/cyg_type.h>
+#include <stddef.h>
+
+#endif
+#define CYGMEM_REGION_ram (0x02000000)
+#define CYGMEM_REGION_ram_SIZE (0x00200000)
+#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 (0x02200000 - (size_t) CYG_LABEL_NAME (__heap1))
diff --git a/ecos/packages/hal/arm/at91/phycore/current/include/pkgconf/mlt_arm_at91_phycore_ram.ldi b/ecos/packages/hal/arm/at91/phycore/current/include/pkgconf/mlt_arm_at91_phycore_ram.ldi
new file mode 100644
index 0000000..fcd5265
--- /dev/null
+++ b/ecos/packages/hal/arm/at91/phycore/current/include/pkgconf/mlt_arm_at91_phycore_ram.ldi
@@ -0,0 +1,28 @@
+// eCos memory layout - Mon Jul 23 11:49:04 2001
+
+// This is a generated file - do not edit
+
+#include <cyg/infra/cyg_type.inc>
+
+MEMORY
+{
+ sram : ORIGIN = 0x00000000, LENGTH = 0x2000
+ ram : ORIGIN = 0x02000000, LENGTH = 0x200000
+}
+
+SECTIONS
+{
+ SECTIONS_BEGIN
+ SECTION_fixed_vectors (sram, 0x20, LMA_EQ_VMA)
+ SECTION_rom_vectors (ram, 0x02008000, 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)
+ CYG_LABEL_DEFN(__heap1) = ALIGN (0x8);
+ SECTIONS_END
+}
diff --git a/ecos/packages/hal/arm/at91/phycore/current/include/pkgconf/mlt_arm_at91_phycore_rom.h b/ecos/packages/hal/arm/at91/phycore/current/include/pkgconf/mlt_arm_at91_phycore_rom.h
new file mode 100644
index 0000000..06dc64d
--- /dev/null
+++ b/ecos/packages/hal/arm/at91/phycore/current/include/pkgconf/mlt_arm_at91_phycore_rom.h
@@ -0,0 +1,20 @@
+// eCos memory layout - Wed Apr 11 13:49:55 2001
+
+// This is a generated file - do not edit
+
+#ifndef __ASSEMBLER__
+#include <cyg/infra/cyg_type.h>
+#include <stddef.h>
+
+#endif
+#define CYGMEM_REGION_ram (0x02000000)
+#define CYGMEM_REGION_ram_SIZE (0x00200000)
+#define CYGMEM_REGION_ram_ATTR (CYGMEM_REGION_ATTR_R | CYGMEM_REGION_ATTR_W)
+#define CYGMEM_REGION_rom (0x01000000)
+#define CYGMEM_REGION_rom_SIZE (0x00100000)
+#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 (0x02200000 - (size_t) CYG_LABEL_NAME (__heap1))
diff --git a/ecos/packages/hal/arm/at91/phycore/current/include/pkgconf/mlt_arm_at91_phycore_rom.ldi b/ecos/packages/hal/arm/at91/phycore/current/include/pkgconf/mlt_arm_at91_phycore_rom.ldi
new file mode 100644
index 0000000..135e453
--- /dev/null
+++ b/ecos/packages/hal/arm/at91/phycore/current/include/pkgconf/mlt_arm_at91_phycore_rom.ldi
@@ -0,0 +1,29 @@
+// eCos memory layout - Wed Apr 11 13:49:55 2001
+
+// This is a generated file - do not edit
+
+#include <cyg/infra/cyg_type.inc>
+
+MEMORY
+{
+ sram : ORIGIN = 0x00000000, LENGTH = 0x2000
+ ram : ORIGIN = 0x02000000, LENGTH = 0x200000
+ rom : ORIGIN = 0x01000000, LENGTH = 0x100000
+}
+
+SECTIONS
+{
+ SECTIONS_BEGIN
+ SECTION_rom_vectors (rom, 0x01000000, LMA_EQ_VMA)
+ SECTION_text (rom, ALIGN (0x1), 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 (sram, 0x20, LMA_EQ_VMA)
+ SECTION_data (ram, 0x02000000, FOLLOWING (.gcc_except_table))
+ SECTION_bss (ram, ALIGN (0x4), LMA_EQ_VMA)
+ CYG_LABEL_DEFN(__heap1) = ALIGN (0x8);
+ SECTIONS_END
+}
diff --git a/ecos/packages/hal/arm/at91/phycore/current/include/pkgconf/mlt_arm_at91_phycore_romram.h b/ecos/packages/hal/arm/at91/phycore/current/include/pkgconf/mlt_arm_at91_phycore_romram.h
new file mode 100644
index 0000000..986b44a
--- /dev/null
+++ b/ecos/packages/hal/arm/at91/phycore/current/include/pkgconf/mlt_arm_at91_phycore_romram.h
@@ -0,0 +1,17 @@
+// eCos memory layout - Mon Jul 23 11:49:04 2001
+
+// This is a generated file - do not edit
+
+#ifndef __ASSEMBLER__
+#include <cyg/infra/cyg_type.h>
+#include <stddef.h>
+
+#endif
+#define CYGMEM_REGION_ram (0x02000000)
+#define CYGMEM_REGION_ram_SIZE (0x00200000)
+#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 (0x02200000 - (size_t) CYG_LABEL_NAME (__heap1))
diff --git a/ecos/packages/hal/arm/at91/phycore/current/include/pkgconf/mlt_arm_at91_phycore_romram.ldi b/ecos/packages/hal/arm/at91/phycore/current/include/pkgconf/mlt_arm_at91_phycore_romram.ldi
new file mode 100644
index 0000000..542588c
--- /dev/null
+++ b/ecos/packages/hal/arm/at91/phycore/current/include/pkgconf/mlt_arm_at91_phycore_romram.ldi
@@ -0,0 +1,28 @@
+// eCos memory layout - Mon Jul 23 11:49:04 2001
+
+// This is a generated file - do not edit
+
+#include <cyg/infra/cyg_type.inc>
+
+MEMORY
+{
+ sram : ORIGIN = 0x00000000, LENGTH = 0x2000
+ ram : ORIGIN = 0x02000000, LENGTH = 0x200000
+}
+
+SECTIONS
+{
+ SECTIONS_BEGIN
+ SECTION_fixed_vectors (sram, 0x20, LMA_EQ_VMA)
+ SECTION_rom_vectors (ram, 0x02000000, 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)
+ CYG_LABEL_DEFN(__heap1) = ALIGN (0x8);
+ SECTIONS_END
+}
diff --git a/ecos/packages/hal/arm/at91/phycore/current/include/plf_io.h b/ecos/packages/hal/arm/at91/phycore/current/include/plf_io.h
new file mode 100644
index 0000000..f96a71c
--- /dev/null
+++ b/ecos/packages/hal/arm/at91/phycore/current/include/plf_io.h
@@ -0,0 +1,72 @@
+#ifndef CYGONCE_HAL_PLF_IO_H
+#define CYGONCE_HAL_PLF_IO_H
+//=============================================================================
+//
+// plf_io.h
+//
+// PhyCore board specific registers
+//
+//=============================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): tkoeller
+// Contributors: tdrury, nickg
+// Date: 2002-06-22
+// Purpose: PhyCore board specific registers
+// Description:
+// Usage: #include <cyg/hal/plf_io.h>
+//
+//####DESCRIPTIONEND####
+//
+//=============================================================================
+// On-chip device base addresses
+
+#define AT91_PIOA 0xFFFEC000
+#define AT91_PIOB 0xFFFF0000
+
+#define AT91_PIO AT91_PIOB
+
+#define AT91_USART0 0xFFFC0000
+#define AT91_USART1 0xFFFC4000
+#define AT91_USART2 0xFFFC8000
+
+#define AT91_TCB0 0xFFFD0000
+#define AT91_TCB1 0xFFFD4000
+
+#define AT91_TC AT91_TCB0
+
+//-----------------------------------------------------------------------------
+// end of plf_io.h
+#endif // CYGONCE_HAL_PLF_IO_H
diff --git a/ecos/packages/hal/arm/at91/phycore/current/misc/redboot_RAM.ecm b/ecos/packages/hal/arm/at91/phycore/current/misc/redboot_RAM.ecm
new file mode 100644
index 0000000..f1d13e2
--- /dev/null
+++ b/ecos/packages/hal/arm/at91/phycore/current/misc/redboot_RAM.ecm
@@ -0,0 +1,57 @@
+cdl_savefile_version 1;
+cdl_savefile_command cdl_savefile_version {};
+cdl_savefile_command cdl_savefile_command {};
+cdl_savefile_command cdl_configuration { description hardware template package };
+cdl_savefile_command cdl_package { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_component { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_option { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_interface { value_source user_value wizard_value inferred_value };
+
+cdl_configuration eCos {
+ package CYGPKG_IO_FLASH current ;
+ package -hardware CYGPKG_DEVS_FLASH_AMD_AM29XXXXX current
+};
+
+cdl_option CYGNUM_HAL_COMMON_INTERRUPTS_STACK_SIZE {
+ user_value 6144
+};
+
+cdl_option CYGDBG_HAL_COMMON_INTERRUPTS_SAVE_MINIMUM_CONTEXT {
+ user_value 0
+};
+
+cdl_option CYGDBG_HAL_COMMON_CONTEXT_SAVE_MINIMUM {
+ inferred_value 0
+};
+
+cdl_option CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS {
+ inferred_value 1
+};
+
+cdl_option CYGSEM_HAL_USE_ROM_MONITOR {
+ inferred_value 0 0
+};
+
+cdl_component CYGBLD_BUILD_REDBOOT {
+ user_value 1
+};
+
+cdl_option CYGOPT_REDBOOT_FIS {
+ user_value 0
+};
+
+cdl_option CYG_HAL_STARTUP {
+ user_value RAM
+};
+
+cdl_component CYGSEM_REDBOOT_FLASH_CONFIG {
+ user_value 0
+};
+
+cdl_option CYGBLD_BUILD_REDBOOT_WITH_EXEC {
+ user_value 0
+};
+
+cdl_option CYGHWR_DEVS_FLASH_AMD_AM29LV320D {
+ inferred_value 1
+};
diff --git a/ecos/packages/hal/arm/at91/phycore/current/misc/redboot_ROM.ecm b/ecos/packages/hal/arm/at91/phycore/current/misc/redboot_ROM.ecm
new file mode 100644
index 0000000..99c609d
--- /dev/null
+++ b/ecos/packages/hal/arm/at91/phycore/current/misc/redboot_ROM.ecm
@@ -0,0 +1,61 @@
+cdl_savefile_version 1;
+cdl_savefile_command cdl_savefile_version {};
+cdl_savefile_command cdl_savefile_command {};
+cdl_savefile_command cdl_configuration { description hardware template package };
+cdl_savefile_command cdl_package { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_component { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_option { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_interface { value_source user_value wizard_value inferred_value };
+
+cdl_configuration eCos {
+ package CYGPKG_IO_FLASH current ;
+ package -hardware CYGPKG_DEVS_FLASH_AMD_AM29XXXXX current;
+};
+
+cdl_option CYGNUM_HAL_COMMON_INTERRUPTS_STACK_SIZE {
+ user_value 6144
+};
+
+cdl_option CYGDBG_HAL_COMMON_INTERRUPTS_SAVE_MINIMUM_CONTEXT {
+ user_value 0
+};
+
+cdl_option CYGDBG_HAL_COMMON_CONTEXT_SAVE_MINIMUM {
+ inferred_value 0
+};
+
+cdl_option CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS {
+ inferred_value 1
+};
+
+cdl_option CYGSEM_HAL_ROM_MONITOR {
+ inferred_value 1
+};
+
+cdl_option CYGSEM_HAL_USE_ROM_MONITOR {
+ inferred_value 0 0
+};
+
+cdl_component CYG_HAL_STARTUP {
+ user_value ROM
+};
+
+cdl_component CYGBLD_BUILD_REDBOOT {
+ user_value 1
+};
+
+cdl_option CYGOPT_REDBOOT_FIS {
+ user_value 0
+};
+
+cdl_component CYGSEM_REDBOOT_FLASH_CONFIG {
+ user_value 0
+};
+
+cdl_option CYGBLD_BUILD_REDBOOT_WITH_EXEC {
+ user_value 0
+};
+
+cdl_option CYGHWR_DEVS_FLASH_AMD_AM29LV320D {
+ inferred_value 1
+}; \ No newline at end of file
diff --git a/ecos/packages/hal/arm/at91/phycore/current/src/phycore_misc.c b/ecos/packages/hal/arm/at91/phycore/current/src/phycore_misc.c
new file mode 100644
index 0000000..4aa9983
--- /dev/null
+++ b/ecos/packages/hal/arm/at91/phycore/current/src/phycore_misc.c
@@ -0,0 +1,88 @@
+//==========================================================================
+//
+// pyhcore_misc.c
+//
+// HAL misc board support code for Phytec phycore AT91M55800A eval board
+//
+//==========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//==========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): gthomas
+// Contributors: gthomas, jskov, tkoeller, tdrury, nickg, block
+// Date: 2002-05-30
+// Purpose: HAL board support
+// Description: Implementations of HAL board interfaces
+//
+//####DESCRIPTIONEND####
+//
+//========================================================================*/
+
+#include <pkgconf/hal.h>
+
+#include <cyg/infra/cyg_type.h> // base types
+#include <cyg/hal/hal_io.h> // low level i/o
+#include <cyg/hal/var_io.h> // common registers
+#include <cyg/hal/plf_io.h> // platform registers
+
+
+void
+hal_at91_set_leds(int val)
+{
+ HAL_WRITE_UINT32(AT91_PIOA+AT91_PIO_SODR, 0x00000001); // turn LED off
+ HAL_WRITE_UINT32(AT91_PIOA+AT91_PIO_CODR, 0x00000001); // turn LED on
+}
+
+void
+hal_at91_led_on(int val)
+{
+ HAL_WRITE_UINT32(AT91_PIOA+AT91_PIO_CODR, 0x00000001);
+}
+
+void
+hal_at91_led_off(int val)
+{
+ HAL_WRITE_UINT32(AT91_PIOA+AT91_PIO_SODR, 0x00000001);
+}
+
+int
+hal_at91_get_leds(void)
+{
+ int leds = 0;
+ HAL_READ_UINT32(AT91_PIOA+AT91_PIO_PDSR, leds);
+ return (leds);
+}
+
+//--------------------------------------------------------------------------
+// EOF phycore_misc.c
diff --git a/ecos/packages/hal/arm/at91/sam7ex256/current/ChangeLog b/ecos/packages/hal/arm/at91/sam7ex256/current/ChangeLog
new file mode 100644
index 0000000..556cbbe
--- /dev/null
+++ b/ecos/packages/hal/arm/at91/sam7ex256/current/ChangeLog
@@ -0,0 +1,42 @@
+2007-04-10 Uwe Kindler <uwe_kindler@web.de>
+
+ * cdl/hal_arm_sam7ex256.cdl Removed "implements
+ CYGINT_DEVS_CAN_AT91SAM7_CAN0" because this interface is already
+ implemented by package CYGPKG_HAL_ARM_AT91SAM7
+
+2007-04-06 Uwe Kindler <uwe_kindler@web.de>
+
+ * src/sam7ex256_misc.c Added hal_plf_eth_init() in order to initialise
+ the Micrel KS8721 PHY properly on the Olimex board
+
+2007-08-01 Uwe Kindler <uwe_kindler@web.de>
+
+ * src/sam7ex256_misc.c Use the backlight of the lcd as a simple 1-bit LED
+
+2006-12-30 Uwe Kindler <uwe_kindler@web.de>
+
+ * SAM7-EX256 development board package
+
+//===========================================================================
+// ####GPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 2006 Free Software Foundation, Inc.
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 2 or (at your option) any
+// later version.
+//
+// This program is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the
+// Free Software Foundation, Inc., 51 Franklin Street,
+// Fifth Floor, Boston, MA 02110-1301, USA.
+// -------------------------------------------
+// ####GPLCOPYRIGHTEND####
+//===========================================================================
diff --git a/ecos/packages/hal/arm/at91/sam7ex256/current/cdl/hal_arm_sam7ex256.cdl b/ecos/packages/hal/arm/at91/sam7ex256/current/cdl/hal_arm_sam7ex256.cdl
new file mode 100644
index 0000000..c52bc66
--- /dev/null
+++ b/ecos/packages/hal/arm/at91/sam7ex256/current/cdl/hal_arm_sam7ex256.cdl
@@ -0,0 +1,78 @@
+# ====================================================================
+#
+# hal_arm_sam7ex256.cdl
+#
+# Olimex SAM7-EX256 development board package configuration data
+#
+# ====================================================================
+## ####ECOSGPLCOPYRIGHTBEGIN####
+## -------------------------------------------
+## This file is part of eCos, the Embedded Configurable Operating System.
+## Copyright (C) 2006 Free Software Foundation, Inc.
+##
+## eCos is free software; you can redistribute it and/or modify it under
+## the terms of the GNU General Public License as published by the Free
+## Software Foundation; either version 2 or (at your option) any later
+## version.
+##
+## eCos is distributed in the hope that it will be useful, but WITHOUT
+## ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+## FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+## for more details.
+##
+## You should have received a copy of the GNU General Public License
+## along with eCos; if not, write to the Free Software Foundation, Inc.,
+## 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+##
+## As a special exception, if other files instantiate templates or use
+## macros or inline functions from this file, or you compile this file
+## and link it with other works to produce a work based on this file,
+## this file does not by itself cause the resulting work to be covered by
+## the GNU General Public License. However the source code for this file
+## must still be made available in accordance with section (3) of the GNU
+## General Public License v2.
+##
+## This exception does not invalidate any other reasons why a work based
+## on this file might be covered by the GNU General Public License.
+## -------------------------------------------
+## ####ECOSGPLCOPYRIGHTEND####
+# ====================================================================
+######DESCRIPTIONBEGIN####
+#
+# Author(s): Uwe Kindler
+# Contributors:
+# Date: 2006-12-30
+#
+#####DESCRIPTIONEND####
+#
+# ====================================================================
+
+cdl_package CYGPKG_HAL_ARM_SAM7EX256 {
+ display "Olimex SAM7-EX256 development board"
+ parent CYGPKG_HAL_ARM_AT91SAM7
+ define_header hal_arm_sam7ex256.h
+ include_dir cyg/hal
+ hardware
+ description "
+ The SAM7EX256 HAL package provides the support needed to run
+ eCos on an Olimex SAM7-EX256 development board."
+
+ compile sam7ex256_misc.c
+
+ requires { CYGHWR_HAL_ARM_AT91 == "AT91SAM7S" }
+ requires { CYGHWR_HAL_ARM_AT91SAM7 == "at91sam7x256" }
+
+ requires { is_active(CYGPKG_DEVS_ETH_PHY) implies
+ (1 == CYGHWR_DEVS_ETH_PHY_KS8721) }
+
+
+ define_proc {
+ puts $::cdl_system_header "#define CYGBLD_HAL_PLATFORM_H <pkgconf/hal_arm_sam7ex256.h>"
+ puts $::cdl_header "/***** proc output start *****/"
+ puts $::cdl_header "#include <pkgconf/hal_arm_at91sam7.h>"
+ puts $::cdl_header "#define HAL_PLATFORM_CPU \"ARM7TDMI\""
+ puts $::cdl_header "#define HAL_PLATFORM_BOARD \"Olimex SAM7-EX256\""
+ puts $::cdl_header "#define HAL_PLATFORM_EXTRA \"\""
+ puts $::cdl_header "/****** proc output end ******/"
+ }
+}
diff --git a/ecos/packages/hal/arm/at91/sam7ex256/current/src/sam7ex256_misc.c b/ecos/packages/hal/arm/at91/sam7ex256/current/src/sam7ex256_misc.c
new file mode 100644
index 0000000..589e10c
--- /dev/null
+++ b/ecos/packages/hal/arm/at91/sam7ex256/current/src/sam7ex256_misc.c
@@ -0,0 +1,113 @@
+/*==========================================================================
+//
+// sam7ex256_misc.c
+//
+// HAL misc board support code for Olimex SAM7-EX256 board
+//
+//==========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 2006 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//==========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): Uwe Kindler
+// Contributors: Andrew Lunn, John Eigelaar
+// Date: 2006-12-30
+// Purpose: HAL board support
+// Description: Implementations of HAL board interfaces
+//
+//####DESCRIPTIONEND####
+//
+//========================================================================*/
+
+#include <pkgconf/system.h>
+#include <pkgconf/hal.h>
+
+#include <cyg/hal/hal_io.h> // IO macros
+
+//
+// The development board does not contain any leds but a nokia 320 x 320
+// pixel lcd. We use the backlight of the lcd as a simple 1-bit LED
+//
+void hal_at91_led (int val)
+{
+ HAL_ARM_AT91_GPIO_CFG_DIRECTION(AT91_GPIO_PB20, AT91_PIN_OUT);
+ HAL_ARM_AT91_GPIO_PUT(AT91_GPIO_PB20, (val & 1));
+}
+
+//
+// Initialisation of Micrel KS8721 ethernet phy
+//
+void hal_plf_eth_init(void)
+{
+ cyg_uint32 stat;
+
+ // Enable the PIOB Clock
+ HAL_WRITE_UINT32(AT91_PMC + AT91_PMC_PCER, AT91_PMC_PCER_PIOB);
+
+ // PU = Enables PCS_LPBK mode at power-up / reset.
+ HAL_ARM_AT91_GPIO_CFG_DIRECTION(AT91_GPIO_PB15, AT91_PIN_IN);
+ HAL_ARM_AT91_GPIO_CFG_PULLUP(AT91_GPIO_PB15, AT91_PIN_PULLUP_DISABLE);
+
+ // PU = Enables ISOLATE mode at power-up /reset.
+ HAL_ARM_AT91_GPIO_CFG_DIRECTION(AT91_GPIO_PB7, AT91_PIN_IN);
+ HAL_ARM_AT91_GPIO_CFG_PULLUP(AT91_GPIO_PB7, AT91_PIN_PULLUP_DISABLE);
+
+ // PU = Enables RMII mode at power-up / reset
+ // TODO: The errata reports that the RMII mode for the SAM7X does not work.
+ // It would probably still be a good idea to use the RMII/MII CDL
+ // configuration to select the appropriate mode here
+ HAL_ARM_AT91_GPIO_CFG_DIRECTION(AT91_GPIO_PB16, AT91_PIN_IN);
+ HAL_ARM_AT91_GPIO_CFG_PULLUP(AT91_GPIO_PB16, AT91_PIN_PULLUP_DISABLE);
+
+ // PU = Enable RMII_BTB mode at power-up / reset.
+ HAL_ARM_AT91_GPIO_CFG_DIRECTION(AT91_GPIO_PB4, AT91_PIN_IN);
+ HAL_ARM_AT91_GPIO_CFG_PULLUP(AT91_GPIO_PB4, AT91_PIN_PULLUP_DISABLE);
+
+ // Power Down Mode = 1 = normal operation
+ HAL_ARM_AT91_GPIO_CFG_DIRECTION(AT91_GPIO_PB18, AT91_PIN_OUT);
+ HAL_ARM_AT91_GPIO_PUT(AT91_GPIO_PB18, 1);
+
+ // All the lines setup correctly. Now do a external reset and let the phy
+ // start up in the correct mode
+ HAL_WRITE_UINT32(AT91_RST+AT91_RST_RMR,AT91_RST_RMR_KEY|(1<<0x8));
+ HAL_WRITE_UINT32(AT91_RST+AT91_RST_RCR,AT91_RST_RCR_KEY|AT91_RST_RCR_EXTRST);
+
+ do
+ {
+ HAL_READ_UINT32(AT91_RST+AT91_RST_RSR,stat);
+ } while (!(stat & AT91_RST_RSR_NRST_SET));
+}
+
+
+//--------------------------------------------------------------------------
+// EOF sam7ex256_misc.c
diff --git a/ecos/packages/hal/arm/at91/var/current/ChangeLog b/ecos/packages/hal/arm/at91/var/current/ChangeLog
new file mode 100644
index 0000000..ff3b53a
--- /dev/null
+++ b/ecos/packages/hal/arm/at91/var/current/ChangeLog
@@ -0,0 +1,503 @@
+2010-12-17 John Dallaway <john@dallaway.org.uk>
+
+ * src/timer_tc.c: Implement a profiling timer on TC1.
+ * cdl/hal_arm_at91.cdl: Add CDL option to enable the profiling timer.
+
+2010-05-27 ccoutand <ccoutand@stmi.com>
+ * include/var_io.h: Added ADC defines for AT91_M55800A CPU
+
+2009-06-03 Oliver Munz <oli@snr.ch>
+
+ * Fix the a problem in the kernel delay_us, if the PIT is
+ initialised later then the period. If the PIT has a big
+ period (after reset) and has to be set to a lower period one has
+ to be sure that the counter is lower then the period value one
+ want to set...
+
+2009-05-25 John Dallaway <john@dallaway.org.uk>
+
+ * include/var_io.h: Provide additional SPI status register defines as
+ reported by Peter Niebert. [ Bugzilla 1000781 ]
+
+2009-05-20 Vibi Sreenivasan <vibi_sreenivasan@cms.com>
+
+ * include/var_io.h (HAL_ARM_AT91_GPIO_MULTIDRAIN): Add a macro to
+ enable/disable multidrain on a GPIO pin.
+
+2008-11-03 Gabor Toeroek <tgabor84@gmail.com>
+
+ * include/var_io.h: Added defines for AT91SAM7SE.
+
+2008-10-19 Igor B. Poretsky <poretsky@mlbox.ru>
+
+ * include/var_io.h Fixed various typos.
+
+2008-09-02 John Eigelaar: <jeigelaar@mweb.co.za>
+
+ * include/var_io.h: Added support for a second flash controller.
+ Fixed some cut and paste gremlins in the SSC definitions.
+ Changed decimal definitions in TWI that could have been confused with
+ octal definitions.
+ Added ADC definitions for the TRGEN bit and the PDC control bits.
+
+
+2008-07-12 Andrew Lunn <andrew.lunn@ascom.ch>
+
+ * src/hal_diag_dcc.{ch}
+ * src/hal_diag.c
+ * src/hal_diag_dbg.c
+ * cdl/hal_arm_at91.cdl: Add support for DCC, ie the Debug
+ Communications Channel, which is part of JTAG core of AT91 and
+ most ARM processors. JTAG devices often make this available via a
+ TCP port which can be accessed via telnet. NOTE: Only output to
+ DCC has been tested via diag_printf. Code exists for input, but it
+ has not been tested.
+
+2007-03-05 Andrew Lunn <andrew.lunn@ascom.ch>
+
+ * include/var_io.h: Fix a few typos pointed out by
+ Igor B. Poretsky.
+
+2007-02-13 John Eigelaar <jeigelaar@mweb.co.za>
+
+ * include/var_io.h: Fixed up the EMAC definitions to work
+ with the brand new EMAC driver
+
+2007-02-01 Andrew Lunn <andrew.lunn@ascom.ch>
+
+ * include/var_io.h: Added PWM registers.
+
+2007-01-25 Andrew Lunn <andrew.lunn@ascom.ch>
+
+ * include/var_io.h (AT91_PITC_VALUE_MASK): New - mask to access
+ the PITC value which is a 20 bit number.
+ * src/timer_pit.c: Change all hard coded mask for the period,
+ some of which were wrong, to use AT91_PITC_VALUE_MASK.
+ When initializing the PIT, remember to decrement the period first.
+ Bugs found by Jim Seymour.
+
+2006-09-08 John Eigelaar <jeigelaar@mweb.co.za>
+
+ * include/var_io.h: Added definition for SPI MODFDIS bit
+
+2006-08-31 Oyvind Harboe <oyvind.harboe@zylin.com>
+
+ * src/at91_misc.c: Now also resets external circuitry via
+ AT91_WD_OMR_EXTEN
+
+2006-06-01 John Eigelaar <jeigelaar@mweb.co.za>
+
+ * include/var_io.h: Added SPI PDC register definitions
+
+2006-05-20 John Eigelaar <jeigelaar@mweb.co.za>
+
+ * include/var_io.h: AT91SAM7X pin definitions
+ * include/hal_platform_int.h: AT91SAM7X interrupts
+ * include/plf_io.h: AT91SAM7X device addresses.
+
+2006-05-20 Andrew Lunn <andrew.lunn@ascom.ch>
+
+ * cdl/hal_arm_at91sam7s.cdl: Rename to AT91SAM7 and add support
+ for AT91SAM7X, based on code from John Eigelaar.
+ * include/var_io.h: add CAN, TWI and ADC registers.
+
+2006-05-17 Andrew Lunn <andrew.lunn@ascom.ch>
+
+ * include/var_io.h: Add macros to manipulate the PIO controllers.
+
+2006-05-10 Andrew Lunn <andrew.lunn@ascom.ch>
+
+ * include/var_io.h: Added the Ethernet MAC registers.
+
+2006-04-26 John Eigelaar <jeigelaar@mweb.co.za>
+
+ * include/var_io.h: Fix typo's in the USB register definitions
+ and add definitions for the S2C controller.
+
+2006-03-10 Oliver Munz <munz@speag.ch>
+
+ * src/timer_pit.c: fix hal_delay_us(). hal_clock_read for
+ initializing the PIT if needed. Change hal_clock_reset() to allow
+ setting of a new period. This is required when the timer is
+ started by hal_delay_us() or hal_clock_read() before
+ hal_clock_initialize().
+
+2006-03-23 Andrew Lunn <andrew.lunn@ascom.ch>
+
+ * src/timer_pit.c (hal_delay_us): Start the PIT if it is not
+ running when hal_delay_us is called. This happens when the kernel
+ is not used. Problem found by Oliver Munz.
+
+2006-03-10 Oliver Munz <munz@speag.ch>
+
+ * src/hal_diag.c (cyg_hal_plf_serial_isr): Change the #ifdefs to
+ cleanly match the CDL.
+
+2006-02-28 Andrew Lunn <andrew.lunn@ascom.ch>
+ Oliver Munz <munz@speag.ch>
+
+ * include/var_io.h (AT91_US_PTCR_RXTDIS): Add bit fields for the
+ USART DMA control register.
+
+2006-02-25 Andrew Lunn <andrew.lunn@ascom.ch>
+
+ * include/var_io.h: Added the USB device registers.
+
+2006-02-19 Andrew Lunn <andrew.lunn@ascom.ch>
+ Oliver Munz <munz@speag.ch>
+
+ * cdl/hal_arm_at9a.cdl: Add the AT91SAM7S variant and control
+ for new timer and debug usart code.
+ * include/var_io.h: Register definitions for AT91SAM7S
+ * include/var_arch.h: Idle action for AT91SAM7S
+ * src/at91_misc.c (hal_hardware_init): Call HAL_PLF_HARDWARE_INIT
+ for any platform specific initialization
+ * src/at91_misc.c (hal_at91_reset_cpu): Use the reset controller
+ if it exists.
+ * src/at91_misc.c (hal_IRQ_handler): Decode interrupts from
+ the system controller if it exists.
+ * src/timer_tc.c (NEW) eCos timer using the Timer Counter
+ * src/timer_pit.c (NEW) eCos timer using Periodic Interval Timer
+ * src/hal_diag_dbg.c (NEW) Debug output via debug UART.
+ * src/hal_diag.h: Indicate hal_at91_reset_cpu() is a C function
+ otherwise we have problems with the watchdog driver which is C++.
+
+2005-05-30 Ezequiel Conde <ezeq@cc.isel.ipl.pt>
+
+ * src/at91_misc.c ( hal_delay_us ): Clear status before running
+ delay
+
+2004-11-12 Jani Monoses <jani@iv.ro>
+
+ * include/var_io.h: Added defines for some missing UART bits,
+ corrected a few timer capture mode register bits.
+
+2004-11-12 Andrew Lunn <andrew.lunn@ascom.ch>
+
+ * src/hal_diag.c: Only support the third serial port if we have
+ the defines needed. Not all HAL do have.
+
+2004-11-11 Sebastian Block <SebastianBlock@gmx.net>
+
+ * src/hal_diag.c: Added support for the third serial port
+
+2004-10-06 Andrea Michelotti <amichelotti@atmel.com>
+
+ * include/var_io.h: protected PDC/SPI DMA registers from redefinition.
+ The HAL may of already defined them.
+
+2004-10-05 Savin Zlobec <savin@elatec.si>
+
+ * include/var_io.h: Added definitions for AT91M55800A SPI and PIO
+ pins.
+
+2004-09-17 Andrea Michelotti <amichelotti@atmel.com>
+
+ * cdl/hal_arm_at91.cdl:
+ * src/at91_misc.c:
+ * include/var_io.h:
+ * include/var_arch.h: added jtst target
+
+2004-09-16 Andrea Michelotti <amichelotti@atmel.com>
+
+ * cdl/hal_arm_at91.cdl:
+ * src/at91_misc.c:
+ * include/var_io.h: Support FIQ as a high priority interrupt using
+ the normal mechanism. This is controlled by the CDL option
+ CYGHWR_HAL_ARM_AT91_FIQ and uses the interrupt number
+ CYGHWR_HAL_ARM_AT91_FIQ which is common to all platforms using
+ this HAL variant.
+
+2004-08-30 Thomas Koeller <thomas.koeller@baslerweb.com>
+
+ * cdl/hal_arm_at91.cdl: Reversed change of 2004-02-12 that move
+ seemingly 'common' options from the platform to the variant. This
+ was breaking some platform HALs.
+
+2004-08-12 Jani Monoses <jani@iv.ro>
+
+ * src/at91_misc.c: Mask all interrupts before calling
+ hal_if_init() not after, so if it creates interrupts
+ they do not get disabled.
+
+2004-05-24 Gratian Crisan <nelu@iv.ro>
+
+ * include/var_io.h: Added waveform mode definitions for
+ timer/counter.
+
+2004-02-19 Daniel Néri <daniel.neri@sigicom.se>
+
+ * cdl/hal_arm_at91.cdl (CYGBLD_GLOBAL_CFLAGS): Honour CYGHWR_THUMB
+ and CYGBLD_ARM_ENABLE_THUMB_INTERWORK.
+ * cdl/hal_arm_at91.cdl (CYGBLD_GLOBAL_LDFLAGS): Ditto.
+
+2004-02-18 Daniel Néri <daniel.neri@sigicom.se>
+
+ * cdl/hal_arm_at91.cdl: Define CYGNUM_HAL_ARM_AT91_CLOCK_SPEED with
+ a default_value so it can be overridden in the platform HAL.
+ * src/hal_diag.c (cyg_hal_plf_serial_control): Properly terminate
+ variable argument processing.
+ * include/hal_diag.h: prototype for hal_at91_set_leds() to avoid
+ compiler warning.
+
+2004-02-12 Jani Monoses <jani@iv.ro>
+
+ * cdl/hal_arm_at91.cdl: Put configuration options common to all
+ variants here. Replace
+ CYGNUM_HAL_VIRTUAL_VECTOR_CHANNELS_DEFAULT_BAUD with the two
+ separate options for console and debug channels as used by most
+ HALs.
+ * src/hal_diag.c: Implement
+ CYGINT_HAL_VIRTUAL_VECTOR_COMM_BAUD_SUPPORT so baudrate is
+ changeable from RedBoot.
+
+2003-12-05 Andrew Lunn <andrew.lunn@ascom.ch>
+
+ * include/hal_diag.h: hal_delay_us() is a C function.
+
+2003-12-02 Thomas Koeller <thomas.koeller@baslerweb.com>
+
+ * include/var_io.h: Improved accuracy for baud rate divider
+ computation.
+
+2003-10-23 Thomas Koeller <thomas.koeller@baslerweb.com>
+
+ * src/at91_misc.c: Fixed recognition of spurious
+ interrupts.
+
+2003-08-21 Thomas Koeller <thomas.koeller@baslerweb.com>
+
+ * include/var_io.h:
+ Fixed minor typo.
+
+2003-08-20 Daniel Néri <daniel.neri@sigicom.se>
+
+ * include/var_io.h: Fix typos (duplicates) from last change.
+
+2003-08-18 Thomas Koeller <thomas.koeller@baslerweb.com>
+
+ * include/var_io.h:
+ Added bitmask definitions for PIO.
+
+2003-08-06 Daniel Néri <daniel.neri@sigicom.se>
+
+ * src/at91_misc.c (hal_clock_reset):
+ Don't acknowledge interrupt here (this is handled
+ in Cyg_RealTimeClock::isr).
+
+2003-07-18 Nick Garnett <nickg@balti.calivar.com>
+
+ * cdl/hal_arm_at91.cdl:
+ Changed values for CYGNUM_HAL_RTC_NUMERATOR,
+ CYGNUM_HAL_RTC_DENOMINATOR and CYGNUM_HAL_RTC_PERIOD to
+ "default_value" from "calculated". This makes it easier
+ to change these values globally.
+
+2003-06-25 Daniel Néri <daniel.neri@sigicom.se>
+
+ * src/at91_misc.c (hal_interrupt_set_level): Fix assert condition;
+ AT91 interrupt priority levels are between 0 and 7.
+
+2003-06-24 Jonathan Larmour <jifl@eCosCentric.com>
+
+ * include/var_io.h: Remove not seemingly useful AT91_PMC_SCER_CPU.
+
+ * cdl/hal_arm_at91.cdl: We have a var_arch.h so define
+ CYGBLD_HAL_ARM_VAR_ARCH_H.
+
+ * include/var_arch.h: New file containing
+ overrides for hal_arch.h.
+ (HAL_IDLE_THREAD_ACTION): override here by defining power saving modes
+ for idle actions.
+
+2003-06-04 Daniel Néri <daniel.neri@sigicom.se>
+
+ * src/at91_misc.c (hal_hardware_init): Make sure the AIC internal
+ priority level stack is flushed.
+ (hal_IRQ_handler): Calculate active interrupt by dummy read from
+ the IVR, which has the side-effect of updating ISR with the
+ current interrupt source number.
+ (hal_interrupt_acknowledge): Write to ICCR is not needed, as
+ interrupt deassertion is taken care of by read of IVR in
+ hal_IRQ_handler.
+
+2003-05-27 Daniel Néri <daniel.neri@sigicom.se>
+
+ * include/var_io.h: Add missing USART register defines.
+ Fix cut'n'paste typos in AT91_PS defines.
+
+2003-05-16 Daniel Néri <daniel.neri@sigicom.se>
+
+ * include/var_io.h: Add missing PIO register defines. Add
+ CPU clock disable command bit.
+
+2003-05-15 Thomas Koeller <thomas.koeller@baslerweb.com>
+
+ * include/hal_diag.h:
+ * src/at91_misc.c: Added function to generate a hardware reset
+ using the watchdog.
+
+2003-05-15 Nick Garnett <nickg@balti.calivar.com>
+
+ * src/at91_misc.c (hal_delay_us): Added calculation to better
+ approximate the number of timer ticks for a given number of
+ microseconds. This code also now adjust to the actual CPU clock
+ speed on different platforms.
+
+2003-05-12 Nick Garnett <nickg@balti.calivar.com>
+
+ * src/at91_misc.c: Change definition of hal_IRQ_handler() to be
+ variant-indepenendent, and to use HAL_LSBIT_INDEX() rather than an
+ explicit scan of the ipr bits. Tidied up file a little to make
+ more readable.
+
+ * include/var_io.h: Reorganized to allow platform HALs to define
+ base addresses of on-chip devices if they differ from the defaults
+ defined here. Added variant definitions of Power Management
+ devices for different parts.
+
+ * cdl/hal_arm_at91.cdl: Calculate CYGNUM_HAL_RTC_PERIOD from
+ CYGNUM_HAL_ARM_AT91_CLOCK_SPEED, which is defined by the platform.
+ Added CYGHWR_HAL_ARM_AT91 to define the specific Atmel AT91 part
+ being supported. This must be defined by the platform HAL.
+ Added define_proc to generate CYGBLD_HAL_ARM_VAR_IO_H.
+
+ * src/hal_diag.c (hal_diag_led): Now calls hal_at91_set_leds().
+
+2002-07-14 Tim Drury <tdrury@siliconmotorsports.com>
+
+ * cdl/hal_arm_at91.cdl: moved clock speed parameter to platform specific cdl
+ * include/var_io.h: added PIO_PDSR register
+ * src/hal_diag.c: added hal_diag_led()
+
+2002-05-28 Thomas Koeller <Thomas.Koeller@baslerweb.com>
+
+ * include/plf_io.h: Add watchdog definitions.
+
+2002-05-08 Gary Thomas <gthomas@redhat.com>
+
+ * misc/redboot_ROMRAM.ecm:
+ * misc/redboot_ROM.ecm: Disable 'fconfig' since the FLASH is too small.
+
+2001-08-17 George Hampton <george.hampton@intel.com>
+2001-08-17 Gary Thomas <gthomas@redhat.com>
+
+ * include/hal_platform_ints.h (CYGNUM_HAL_ISR_COUNT): PR 22864
+ Don't adjust by "min" value if not doing translations.
+
+2001-07-26 Gary Thomas <gthomas@redhat.com>
+
+ * src/at91_misc.c (hal_clock_initialize):
+ * cdl/hal_arm_at91.cdl: Increase system clock (RTC) to run at 1MHz for
+ better timing resolution. CAUTION! this means that the system clock tick
+ can never be more than 64ms.
+
+2001-07-23 Gary Thomas <gthomas@redhat.com>
+
+ * include/pkgconf/mlt_arm_at91_eb40_romram.mlt:
+ * include/pkgconf/mlt_arm_at91_eb40_romram.ldi:
+ * include/pkgconf/mlt_arm_at91_eb40_romram.h:
+ * include/pkgconf/mlt_arm_at91_eb40_ram.mlt:
+ * include/pkgconf/mlt_arm_at91_eb40_ram.ldi:
+ * include/pkgconf/mlt_arm_at91_eb40_ram.h:
+ * cdl/hal_arm_at91.cdl: Fix MLT files (names, layout).
+
+2001-07-20 Gary Thomas <gthomas@redhat.com>
+
+ * include/plf_io.h: Add UART interrupt definitions.
+
+ * src/hal_diag.c (cyg_hal_plf_serial_control): Enable ^C support.
+
+ * src/at91_misc.c (hal_clock_initialize): Add clock/rtc implementation.
+
+ * include/pkgconf/mlt_arm_at91_eb40_romram.ldi:
+ Replace missing 'fixed vectors'.
+
+2001-07-19 Gary Thomas <gthomas@redhat.com>
+
+ * misc/redboot_ROMRAM.ecm: New exported config.
+
+ * include/pkgconf/mlt_arm_at91_eb40_romram.ldi:
+ * include/pkgconf/mlt_arm_at91_eb40_ram.mlt:
+ * include/pkgconf/mlt_arm_at91_eb40_ram.ldi:
+ * include/hal_platform_setup.h: Fix ROMRAM startup mode. Note: I
+ can't get the onboard SRAM at 0x00100000 to work, so for now, this
+ will just have to go in low external RAM. Thus the change for the
+ RAM base address in startup=RAM mode.
+
+ * src/hal_diag.c (cyg_hal_plf_serial_getc_timeout): Remove debug code.
+
+ * src/at91_misc.c (set_leds): LEDs are on D4/D2/D1.
+
+ * misc/redboot_ROM.ecm:
+ * misc/redboot_RAM.ecm: Exported configurations.
+
+ * include/pkgconf/mlt_arm_at91_eb40_romram.mlt:
+ * include/pkgconf/mlt_arm_at91_eb40_romram.ldi:
+ * include/pkgconf/mlt_arm_at91_eb40_romram.h: New startup type.
+
+ * include/pkgconf/mlt_arm_at91_eb40_rom.h: Fix heap layout.
+
+ * include/pkgconf/mlt_arm_at91_eb40_ram.mlt:
+ * include/pkgconf/mlt_arm_at91_eb40_ram.ldi:
+ * include/pkgconf/mlt_arm_at91_eb40_ram.h:
+ Fix heap layout. Move RAM load address to leave room for RedBoot/GDB.
+
+ * include/plf_io.h: Add definitions for PIO, EBI and PS.
+
+ * include/hal_platform_setup.h: ROM startup mode now works.
+ First attempt at ROMRAM startup - not yet working.
+
+ * cdl/hal_arm_at91.cdl: Add ROMRAM startup mode.
+
+2001-07-18 Gary Thomas <gthomas@redhat.com>
+
+ * src/hal_diag.c: More complete initialization.
+
+ * src/at91_misc.c: Support interrupt controller, delay_us().
+
+ * include/plf_io.h: Add interrupt controller, timer definitions.
+
+ * cdl/hal_arm_at91.cdl: Fix clock speed, number I/O channels.
+
+2001-07-16 Gary Thomas <gthomas@redhat.com>
+
+ * src/hal_diag.c:
+ * src/at91_misc.c:
+ * include/pkgconf/mlt_arm_at91_eb40_rom.mlt:
+ * include/pkgconf/mlt_arm_at91_eb40_rom.ldi:
+ * include/pkgconf/mlt_arm_at91_eb40_rom.h:
+ * include/pkgconf/mlt_arm_at91_eb40_ram.mlt:
+ * include/pkgconf/mlt_arm_at91_eb40_ram.ldi:
+ * include/pkgconf/mlt_arm_at91_eb40_ram.h:
+ * include/plf_stub.h:
+ * include/plf_io.h:
+ * include/hal_platform_setup.h:
+ * include/hal_platform_ints.h:
+ * include/hal_diag.h:
+ * include/hal_cache.h:
+ * cdl/hal_arm_at91.cdl: New port - cloned from E7T.
+
+//===========================================================================
+// ####GPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002, 2009, 2010 Free Software Foundation, Inc.
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 2 or (at your option) any
+// later version.
+//
+// This program is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the
+// Free Software Foundation, Inc., 51 Franklin Street,
+// Fifth Floor, Boston, MA 02110-1301, USA.
+// -------------------------------------------
+// ####GPLCOPYRIGHTEND####
+//===========================================================================
diff --git a/ecos/packages/hal/arm/at91/var/current/cdl/hal_arm_at91.cdl b/ecos/packages/hal/arm/at91/var/current/cdl/hal_arm_at91.cdl
new file mode 100644
index 0000000..11b54d3
--- /dev/null
+++ b/ecos/packages/hal/arm/at91/var/current/cdl/hal_arm_at91.cdl
@@ -0,0 +1,209 @@
+# ====================================================================
+#
+# hal_arm_at91.cdl
+#
+# Atmel AT91 HAL package configuration data
+#
+# ====================================================================
+## ####ECOSGPLCOPYRIGHTBEGIN####
+## -------------------------------------------
+## This file is part of eCos, the Embedded Configurable Operating System.
+## Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2010 Free Software Foundation, Inc.
+##
+## eCos is free software; you can redistribute it and/or modify it under
+## the terms of the GNU General Public License as published by the Free
+## Software Foundation; either version 2 or (at your option) any later
+## version.
+##
+## eCos is distributed in the hope that it will be useful, but WITHOUT
+## ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+## FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+## for more details.
+##
+## You should have received a copy of the GNU General Public License
+## along with eCos; if not, write to the Free Software Foundation, Inc.,
+## 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+##
+## As a special exception, if other files instantiate templates or use
+## macros or inline functions from this file, or you compile this file
+## and link it with other works to produce a work based on this file,
+## this file does not by itself cause the resulting work to be covered by
+## the GNU General Public License. However the source code for this file
+## must still be made available in accordance with section (3) of the GNU
+## General Public License v2.
+##
+## This exception does not invalidate any other reasons why a work based
+## on this file might be covered by the GNU General Public License.
+## -------------------------------------------
+## ####ECOSGPLCOPYRIGHTEND####
+# ====================================================================
+######DESCRIPTIONBEGIN####
+#
+# Author(s): gthomas
+# Contributors: gthomas, tkoeller, tdrury, nickg, jld
+# Date: 2001-07-12
+#
+#####DESCRIPTIONEND####
+#
+# ====================================================================
+
+cdl_package CYGPKG_HAL_ARM_AT91 {
+ display "Atmel AT91 variant HAL"
+ parent CYGPKG_HAL_ARM
+ define_header hal_arm_at91.h
+ include_dir cyg/hal
+ hardware
+ description "
+ The AT91 HAL package provides the support needed to run
+ eCos on Atmel AT91 based targets."
+
+ compile at91_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_COMM_BAUD_SUPPORT
+ implements CYGINT_HAL_ARM_ARCH_ARM7
+ implements CYGINT_HAL_ARM_THUMB_ARCH
+
+ # Let the architectural HAL see this variant's files
+ define_proc {
+ puts $::cdl_system_header "#define CYGBLD_HAL_ARM_VAR_IO_H"
+ puts $::cdl_system_header "#define CYGBLD_HAL_ARM_VAR_ARCH_H"
+ }
+
+ cdl_option CYGHWR_HAL_ARM_AT91 {
+ display "AT91 variant used"
+ flavor data
+ default_value {"R40807"}
+ legal_values {"R40807" "R40008" "M42800A" "M55800A" "JTST"
+ "AT91SAM7S" }
+ description "The AT91 microcontroller family has several variants,
+ the main differences being the amount of on-chip SRAM,
+ peripherals and their layout. This option allows the
+ platform HALs to select the specific microcontroller
+ being used."
+ }
+
+ cdl_option CYGHWR_HAL_ARM_AT91_FIQ {
+ display "handle FIQ as an IRQ"
+ flavor bool
+ default_value 0
+ description "
+ Enable this option if you need to handle FIQ interrupts in the
+ normal way, i.e. a FIQ interrupt will be treated as a normal IRQ
+ using the highest priority"
+ }
+
+ cdl_interface CYGINT_HAL_ARM_AT91_SYS_INTERRUPT {
+ display "AT91 core has multiplexed system interrupts"
+ description "
+ Some AT91 cores have a system controller which multiplexes
+ many interrupts onto the system interrupt. When this interface
+ is enabled the variant hal will perform a second level
+ expansion of these interrupts"
+ }
+
+ cdl_interface CYGINT_HAL_ARM_AT91_PIT_HW {
+ display "Platform has a Periodic Interval Timer"
+ description "
+ This interface if implemented by HALs for CPU cores which
+ have the Periodic Interval Timer."
+ }
+
+ cdl_option CYGBLD_HAL_ARM_AT91_TIMER_TC {
+ display "Use Timer Counter for eCos Clock"
+ flavor bool
+ default_value 1
+ requires !CYGBLD_HAL_ARM_AT91_TIMER_PIT
+ compile timer_tc.c
+ description "
+ Use a Timer Counter Channel to generate the eCos Clock."
+ }
+
+ cdl_option CYGBLD_HAL_ARM_AT91_TIMER_PIT {
+ display "Use Periodic Interval Timer for eCos Clock"
+ flavor bool
+ default_value !CYGBLD_HAL_ARM_AT91_TIMER_TC
+ requires !CYGBLD_HAL_ARM_AT91_TIMER_TC
+ active_if CYGINT_HAL_ARM_AT91_PIT_HW
+ compile timer_pit.c
+ description "
+ Use Periodic Interval Timer to generate the eCos Clock."
+ }
+
+ cdl_interface CYGINT_HAL_ARM_AT91_SERIAL_DBG_HW {
+ display "Platform has the DBG serial port"
+ description "
+ Some variants of the AT91 have a dedicated debug serial
+ port. The HALs of such a variant should implement this interface
+ so allowing the serial driver to the compiled"
+ }
+
+ cdl_option CYGBLD_HAL_ARM_AT91_SERIAL_DBG {
+ display "Enable the use of the DBG serial port"
+ flavor bool
+ active_if CYGINT_HAL_ARM_AT91_SERIAL_DBG_HW
+ active_if !CYGBLD_HAL_ARM_AT91_SERIAL_UART
+ requires CYGINT_HAL_ARM_AT91_SYS_INTERRUPT
+ default_value 1
+
+ compile hal_diag_dbg.c
+ requires CYGNUM_HAL_VIRTUAL_VECTOR_DEBUG_CHANNEL == 0
+ requires CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL == 0
+
+ description "
+ The driver for the dedicated DBG UART will be compiled in the
+ variant HAL when this option is enabled."
+ }
+
+ cdl_option CYGBLD_HAL_ARM_AT91_SERIAL_UART {
+ display "Enable the use of the UARTS for debug output"
+ flavor bool
+ default_value 1
+ compile hal_diag.c
+ requires !CYGBLD_HAL_ARM_AT91_SERIAL_DBG
+ description "
+ The driver for using the UARTS will be compiled in the
+ variant HAL when this option is enabled."
+ }
+
+ cdl_component CYGBLD_HAL_ARM_AT91_DCC {
+ display "Enable the use of the DCC for debug output"
+ flavor bool
+ default_value 0
+ compile hal_diag_dcc.c
+ description "
+ A <serial> driver will be compiled and inserted into the
+ vector table which does I/O via the DCC. The DCC is part of
+ the JTAG interface and some JTAG devices made this interface
+ available via telnet etc."
+
+ cdl_option CYGBLD_HAL_ARM_AT91_DCC_CHANNEL {
+ display "Channel the DCC port should use in the VV table"
+ flavor data
+ default_value 2
+ description "
+ The DCC driver has to be registered in the VV table of
+ drivers. This option determines which entry in the
+ table it will take. The default value will overwride
+ the first serial port. "
+ }
+ }
+
+ cdl_option CYGFUN_HAL_ARM_AT91_PROFILE_TIMER {
+ display "Use TC1 for gprof profiling"
+ active_if CYGPKG_PROFILE_GPROF
+ flavor bool
+ default_value 1
+ requires !CYGPKG_HAL_ARM_AT91_JTST
+ implements CYGINT_PROFILE_HAL_TIMER
+ description "
+ The AT91 variant HAL can provide support for gprof-based
+ profiling. This uses timer TC1 to generate regular interrupts,
+ and the interrupt handler records the PC at the time of the
+ interrupt. However, TC1 is unavailable for this purpose on
+ the JTST platform. Disable this option if you wish to provide
+ an alternative profiling timer implementation."
+ }
+}
diff --git a/ecos/packages/hal/arm/at91/var/current/include/hal_cache.h b/ecos/packages/hal/arm/at91/var/current/include/hal_cache.h
new file mode 100644
index 0000000..846abee
--- /dev/null
+++ b/ecos/packages/hal/arm/at91/var/current/include/hal_cache.h
@@ -0,0 +1,191 @@
+#ifndef CYGONCE_HAL_CACHE_H
+#define CYGONCE_HAL_CACHE_H
+
+//=============================================================================
+//
+// hal_cache.h
+//
+// HAL cache control API
+//
+//=============================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): nickg, gthomas
+// Contributors: nickg, gthomas
+// Date: 1998-09-28
+// 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 <cyg/infra/cyg_type.h>
+
+//-----------------------------------------------------------------------------
+// Cache dimensions
+
+// Data cache
+//#define HAL_DCACHE_SIZE 0 // Size of data cache in bytes
+//#define HAL_DCACHE_LINE_SIZE 0 // Size of a data cache line
+//#define HAL_DCACHE_WAYS 0 // Associativity of the cache
+
+// Instruction cache
+//#define HAL_ICACHE_SIZE 0 // Size of cache in bytes
+//#define HAL_ICACHE_LINE_SIZE 0 // Size of a cache line
+//#define HAL_ICACHE_WAYS 0 // 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
+#define HAL_DCACHE_ENABLE()
+
+// Disable the data cache
+#define HAL_DCACHE_DISABLE()
+
+// Invalidate the entire cache
+#define HAL_DCACHE_INVALIDATE_ALL()
+
+// Synchronize the contents of the cache with memory.
+#define HAL_DCACHE_SYNC()
+
+// Purge contents of data cache
+#define HAL_DCACHE_PURGE_ALL()
+
+// Query the state of the data cache (does not affect the caching)
+#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 (does not affect the caching)
+#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_HAL_CACHE_H
+// End of hal_cache.h
diff --git a/ecos/packages/hal/arm/at91/var/current/include/hal_diag.h b/ecos/packages/hal/arm/at91/var/current/include/hal_diag.h
new file mode 100644
index 0000000..3437014
--- /dev/null
+++ b/ecos/packages/hal/arm/at91/var/current/include/hal_diag.h
@@ -0,0 +1,85 @@
+#ifndef CYGONCE_HAL_DIAG_H
+#define CYGONCE_HAL_DIAG_H
+
+//=============================================================================
+//
+// hal_diag.h
+//
+// HAL Support for Kernel Diagnostic Routines
+//
+//=============================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jskov
+// Contributors:jskov, gthomas, tkoeller
+// Date: 2001-07-12
+// 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>
+
+#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_)
+
+//-----------------------------------------------------------------------------
+// LED
+externC void hal_diag_led(int mask);
+
+externC void hal_at91_set_leds(int mask);
+
+//-----------------------------------------------------------------------------
+// delay
+
+externC void hal_delay_us(cyg_int32 usecs);
+#define HAL_DELAY_US(n) hal_delay_us(n);
+
+//-----------------------------------------------------------------------------
+// reset
+
+externC void hal_at91_reset_cpu(void);
+
+//-----------------------------------------------------------------------------
+// end of hal_diag.h
+#endif // CYGONCE_HAL_DIAG_H
diff --git a/ecos/packages/hal/arm/at91/var/current/include/plf_stub.h b/ecos/packages/hal/arm/at91/var/current/include/plf_stub.h
new file mode 100644
index 0000000..1f8dd83
--- /dev/null
+++ b/ecos/packages/hal/arm/at91/var/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.
+//
+//=============================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jskov
+// Contributors:jskov, gthomas
+// Date: 2001-07-12
+// Purpose: Platform HAL stub support for AT91/EB40 boards.
+// Usage: #include <cyg/hal/plf_stub.h>
+//
+//####DESCRIPTIONEND####
+//
+//=============================================================================
+
+#include <pkgconf/hal.h>
+#include CYGBLD_HAL_PLATFORM_H
+
+#ifdef CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS
+
+#include <cyg/infra/cyg_type.h> // CYG_UNUSED_PARAM
+
+#include <cyg/hal/arm_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.
+#define HAL_STUB_PLATFORM_INIT() CYG_EMPTY_STATEMENT
+
+#endif // ifdef CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS
+
+//-----------------------------------------------------------------------------
+#endif // CYGONCE_HAL_PLF_STUB_H
+// End of plf_stub.h
diff --git a/ecos/packages/hal/arm/at91/var/current/include/var_arch.h b/ecos/packages/hal/arm/at91/var/current/include/var_arch.h
new file mode 100644
index 0000000..898e3c2
--- /dev/null
+++ b/ecos/packages/hal/arm/at91/var/current/include/var_arch.h
@@ -0,0 +1,95 @@
+#ifndef CYGONCE_HAL_VAR_ARCH_H
+#define CYGONCE_HAL_VAR_ARCH_H
+//=============================================================================
+//
+// var_arch.h
+//
+// AT91 variant architecture overrides
+//
+//=============================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 2003 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jlarmour
+// Contributors: Daniel Neri
+// Date: 2003-06-24
+// Purpose: AT91 variant architecture overrides
+// Description:
+// Usage: #include <cyg/hal/hal_arch.h>
+//
+//####DESCRIPTIONEND####
+//
+//=============================================================================
+
+#include <pkgconf/hal.h>
+#include <cyg/hal/hal_io.h>
+
+//--------------------------------------------------------------------------
+// Idle thread code.
+// This macro is called in the idle thread loop, and gives the HAL the
+// chance to insert code. Typical idle thread behaviour might be to halt the
+// processor. These implementations halt the system core clock.
+
+#ifndef HAL_IDLE_THREAD_ACTION
+
+
+#if defined(CYGHWR_HAL_ARM_AT91_R40807) || \
+ defined(CYGHWR_HAL_ARM_AT91_R40008)
+
+#define HAL_IDLE_THREAD_ACTION(_count_) \
+CYG_MACRO_START \
+ HAL_WRITE_UINT32(AT91_PS+AT91_PS_CR, AT91_PS_CR_CPU); \
+CYG_MACRO_END
+
+#elif defined(CYGHWR_HAL_ARM_AT91_M42800A) || \
+ defined(CYGHWR_HAL_ARM_AT91_M55800A) || \
+ defined(CYGHWR_HAL_ARM_AT91SAM7)
+
+#define HAL_IDLE_THREAD_ACTION(_count_) \
+CYG_MACRO_START \
+ HAL_WRITE_UINT32(AT91_PMC+AT91_PMC_SCDR, 1); \
+CYG_MACRO_END
+
+#elif defined(CYGHWR_HAL_ARM_AT91_JTST)
+// No idle action for the JTST
+#else
+#error Unknown AT91 variant
+
+#endif
+
+#endif
+
+//-----------------------------------------------------------------------------
+// end of var_arch.h
+#endif // CYGONCE_HAL_VAR_ARCH_H
diff --git a/ecos/packages/hal/arm/at91/var/current/include/var_io.h b/ecos/packages/hal/arm/at91/var/current/include/var_io.h
new file mode 100644
index 0000000..22f306a
--- /dev/null
+++ b/ecos/packages/hal/arm/at91/var/current/include/var_io.h
@@ -0,0 +1,3329 @@
+#ifndef CYGONCE_HAL_VAR_IO_H
+#define CYGONCE_HAL_VAR_IO_H
+//=============================================================================
+//
+// var_io.h
+//
+// Variant specific registers
+//
+//=============================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2005, 2006, 2009 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jskov
+// Contributors:jskov, gthomas, tkoeller, tdrury, nickg, asl, John Eigelaar
+// Date: 2001-07-12
+// Purpose: AT91 variant specific registers
+// Description:
+// Usage: #include <cyg/hal/var_io.h>
+//
+//####DESCRIPTIONEND####
+//
+//=============================================================================
+
+#include <cyg/hal/plf_io.h>
+
+//=============================================================================
+// USART
+
+#ifndef AT91_USART0
+#define AT91_USART0 0xFFFD0000
+#endif
+
+#ifndef AT91_USART1
+#define AT91_USART1 0xFFFCC000
+#endif
+
+#define AT91_US_CR 0x00 // Control register
+#define AT91_US_CR_RxRESET (1<<2)
+#define AT91_US_CR_TxRESET (1<<3)
+#define AT91_US_CR_RxENAB (1<<4)
+#define AT91_US_CR_RxDISAB (1<<5)
+#define AT91_US_CR_TxENAB (1<<6)
+#define AT91_US_CR_TxDISAB (1<<7)
+#define AT91_US_CR_RSTATUS (1<<8)
+#define AT91_US_CR_STTTO (1<<11)
+#define AT91_US_MR 0x04 // Mode register
+#define AT91_US_MR_CLOCK 4
+#define AT91_US_MR_CLOCK_MCK (0<<AT91_US_MR_CLOCK)
+#define AT91_US_MR_CLOCK_MCK8 (1<<AT91_US_MR_CLOCK)
+#define AT91_US_MR_CLOCK_SCK (2<<AT91_US_MR_CLOCK)
+#define AT91_US_MR_LENGTH 6
+#define AT91_US_MR_LENGTH_5 (0<<AT91_US_MR_LENGTH)
+#define AT91_US_MR_LENGTH_6 (1<<AT91_US_MR_LENGTH)
+#define AT91_US_MR_LENGTH_7 (2<<AT91_US_MR_LENGTH)
+#define AT91_US_MR_LENGTH_8 (3<<AT91_US_MR_LENGTH)
+#define AT91_US_MR_SYNC 8
+#define AT91_US_MR_SYNC_ASYNC (0<<AT91_US_MR_SYNC)
+#define AT91_US_MR_SYNC_SYNC (1<<AT91_US_MR_SYNC)
+#define AT91_US_MR_PARITY 9
+#define AT91_US_MR_PARITY_EVEN (0<<AT91_US_MR_PARITY)
+#define AT91_US_MR_PARITY_ODD (1<<AT91_US_MR_PARITY)
+#define AT91_US_MR_PARITY_SPACE (2<<AT91_US_MR_PARITY)
+#define AT91_US_MR_PARITY_MARK (3<<AT91_US_MR_PARITY)
+#define AT91_US_MR_PARITY_NONE (4<<AT91_US_MR_PARITY)
+#define AT91_US_MR_PARITY_MULTI (6<<AT91_US_MR_PARITY)
+#define AT91_US_MR_STOP 12
+#define AT91_US_MR_STOP_1 (0<<AT91_US_MR_STOP)
+#define AT91_US_MR_STOP_1_5 (1<<AT91_US_MR_STOP)
+#define AT91_US_MR_STOP_2 (2<<AT91_US_MR_STOP)
+#define AT91_US_MR_MODE 14
+#define AT91_US_MR_MODE_NORMAL (0<<AT91_US_MR_MODE)
+#define AT91_US_MR_MODE_ECHO (1<<AT91_US_MR_MODE)
+#define AT91_US_MR_MODE_LOCAL (2<<AT91_US_MR_MODE)
+#define AT91_US_MR_MODE_REMOTE (3<<AT91_US_MR_MODE)
+#define AT91_US_MR_MODE9 17
+#define AT91_US_MR_CLKO 18
+#define AT91_US_IER 0x08 // Interrupt enable register
+#define AT91_US_IER_RxRDY (1<<0) // Receive data ready
+#define AT91_US_IER_TxRDY (1<<1) // Transmitter ready
+#define AT91_US_IER_RxBRK (1<<2) // Break received
+#define AT91_US_IER_ENDRX (1<<3) // Rx end
+#define AT91_US_IER_ENDTX (1<<4) // Tx end
+#define AT91_US_IER_OVRE (1<<5) // Rx overflow
+#define AT91_US_IER_FRAME (1<<6) // Rx framing error
+#define AT91_US_IER_PARITY (1<<7) // Rx parity
+#define AT91_US_IER_TIMEOUT (1<<8) // Rx timeout
+#define AT91_US_IER_TxEMPTY (1<<9) // Tx empty
+#define AT91_US_IDR 0x0C // Interrupt disable register
+#define AT91_US_IMR 0x10 // Interrupt mask register
+#define AT91_US_CSR 0x14 // Channel status register
+#define AT91_US_CSR_RxRDY 0x01 // Receive data ready
+#define AT91_US_CSR_TxRDY 0x02 // Transmit ready
+#define AT91_US_CSR_RXBRK 0x04 // Transmit ready
+#define AT91_US_CSR_ENDRX 0x08 // Transmit ready
+#define AT91_US_CSR_ENDTX 0x10 // Transmit ready
+#define AT91_US_CSR_OVRE 0x20 // Overrun error
+#define AT91_US_CSR_FRAME 0x40 // Framing error
+#define AT91_US_CSR_TIMEOUT 0x80 // Timeout
+#define AT91_US_RHR 0x18 // Receive holding register
+#define AT91_US_THR 0x1C // Transmit holding register
+#define AT91_US_BRG 0x20 // Baud rate generator
+#define AT91_US_RTO 0x24 // Receive time out
+#define AT91_US_TTG 0x28 // Transmit timer guard
+
+// PDC US registers may have different addresses in at91 targets (i.e jtst)
+#ifndef AT91_US_RPR
+#define AT91_US_RPR 0x30 // Receive pointer register
+#endif
+
+#ifndef AT91_US_RCR
+#define AT91_US_RCR 0x34 // Receive counter register
+#endif
+
+#ifndef AT91_US_TPR
+#define AT91_US_TPR 0x38 // Transmit pointer register
+#endif
+
+#ifndef AT91_US_TCR
+#define AT91_US_TCR 0x3c // Transmit counter register
+#endif
+
+// PDC Control register bits
+#define AT91_US_PTCR_RXTEN (1 << 0)
+#define AT91_US_PTCR_RXTDIS (1 << 1)
+#define AT91_US_PTCR_TXTEN (1 << 8)
+#define AT91_US_PTCR_TXTDIS (1 << 9)
+
+// macro could be different from target to target (i.e jtst)
+#ifndef AT91_US_BAUD
+#define AT91_US_BAUD(baud) ((CYGNUM_HAL_ARM_AT91_CLOCK_SPEED/(8*(baud))+1)/2)
+#endif
+//=============================================================================
+// PIO
+
+#ifndef AT91_PIO
+#define AT91_PIO 0xFFFF0000
+#endif
+
+#define AT91_PIN(_ctrl_, _periph_, _pin_) \
+ ((_ctrl_ << 16) | (_periph_ << 8) | (_pin_))
+
+#define AT91_PIO_PER 0x00 // PIO enable
+#define AT91_PIO_PDR 0x04 // PIO disable
+#define AT91_PIO_PSR 0x08 // PIO status
+
+// GPIO pins on PIO A.
+#define AT91_GPIO_PA0 AT91_PIN(0,0, 0)
+#define AT91_GPIO_PA1 AT91_PIN(0,0, 1)
+#define AT91_GPIO_PA2 AT91_PIN(0,0, 2)
+#define AT91_GPIO_PA3 AT91_PIN(0,0, 3)
+#define AT91_GPIO_PA4 AT91_PIN(0,0, 4)
+#define AT91_GPIO_PA5 AT91_PIN(0,0, 5)
+#define AT91_GPIO_PA6 AT91_PIN(0,0, 6)
+#define AT91_GPIO_PA7 AT91_PIN(0,0, 7)
+#define AT91_GPIO_PA8 AT91_PIN(0,0, 8)
+#define AT91_GPIO_PA9 AT91_PIN(0,0, 9)
+#define AT91_GPIO_PA10 AT91_PIN(0,0,10)
+#define AT91_GPIO_PA11 AT91_PIN(0,0,11)
+#define AT91_GPIO_PA12 AT91_PIN(0,0,12)
+#define AT91_GPIO_PA13 AT91_PIN(0,0,13)
+#define AT91_GPIO_PA14 AT91_PIN(0,0,14)
+#define AT91_GPIO_PA15 AT91_PIN(0,0,15)
+#define AT91_GPIO_PA16 AT91_PIN(0,0,16)
+#define AT91_GPIO_PA17 AT91_PIN(0,0,17)
+#define AT91_GPIO_PA18 AT91_PIN(0,0,18)
+#define AT91_GPIO_PA19 AT91_PIN(0,0,19)
+#define AT91_GPIO_PA20 AT91_PIN(0,0,20)
+#define AT91_GPIO_PA21 AT91_PIN(0,0,21)
+#define AT91_GPIO_PA22 AT91_PIN(0,0,22)
+#define AT91_GPIO_PA23 AT91_PIN(0,0,23)
+#define AT91_GPIO_PA24 AT91_PIN(0,0,24)
+#define AT91_GPIO_PA25 AT91_PIN(0,0,25)
+#define AT91_GPIO_PA26 AT91_PIN(0,0,26)
+#define AT91_GPIO_PA27 AT91_PIN(0,0,27)
+#define AT91_GPIO_PA28 AT91_PIN(0,0,28)
+#define AT91_GPIO_PA29 AT91_PIN(0,0,29)
+#define AT91_GPIO_PA30 AT91_PIN(0,0,30)
+#define AT91_GPIO_PA31 AT91_PIN(0,0,31)
+
+#ifdef AT91_PIOB
+// GPIO pins on PIOB.
+#define AT91_GPIO_PB0 AT91_PIN(1,0, 0)
+#define AT91_GPIO_PB1 AT91_PIN(1,0, 1)
+#define AT91_GPIO_PB2 AT91_PIN(1,0, 2)
+#define AT91_GPIO_PB3 AT91_PIN(1,0, 3)
+#define AT91_GPIO_PB4 AT91_PIN(1,0, 4)
+#define AT91_GPIO_PB5 AT91_PIN(1,0, 5)
+#define AT91_GPIO_PB6 AT91_PIN(1,0, 6)
+#define AT91_GPIO_PB7 AT91_PIN(1,0, 7)
+#define AT91_GPIO_PB8 AT91_PIN(1,0, 8)
+#define AT91_GPIO_PB9 AT91_PIN(1,0, 9)
+#define AT91_GPIO_PB10 AT91_PIN(1,0,10)
+#define AT91_GPIO_PB11 AT91_PIN(1,0,11)
+#define AT91_GPIO_PB12 AT91_PIN(1,0,12)
+#define AT91_GPIO_PB13 AT91_PIN(1,0,13)
+#define AT91_GPIO_PB14 AT91_PIN(1,0,14)
+#define AT91_GPIO_PB15 AT91_PIN(1,0,15)
+#define AT91_GPIO_PB16 AT91_PIN(1,0,16)
+#define AT91_GPIO_PB17 AT91_PIN(1,0,17)
+#define AT91_GPIO_PB18 AT91_PIN(1,0,18)
+#define AT91_GPIO_PB19 AT91_PIN(1,0,19)
+#define AT91_GPIO_PB20 AT91_PIN(1,0,20)
+#define AT91_GPIO_PB21 AT91_PIN(1,0,21)
+#define AT91_GPIO_PB22 AT91_PIN(1,0,22)
+#define AT91_GPIO_PB23 AT91_PIN(1,0,23)
+#define AT91_GPIO_PB24 AT91_PIN(1,0,24)
+#define AT91_GPIO_PB25 AT91_PIN(1,0,25)
+#define AT91_GPIO_PB26 AT91_PIN(1,0,26)
+#define AT91_GPIO_PB27 AT91_PIN(1,0,27)
+#define AT91_GPIO_PB28 AT91_PIN(1,0,28)
+#define AT91_GPIO_PB29 AT91_PIN(1,0,29)
+#define AT91_GPIO_PB30 AT91_PIN(1,0,30)
+#define AT91_GPIO_PB31 AT91_PIN(1,0,31)
+#endif //AT91_PIOB
+
+#ifdef AT91_PIOC
+// GPIO pins on PIOC.
+#define AT91_GPIO_PC0 AT91_PIN(2,0, 0)
+#define AT91_GPIO_PC1 AT91_PIN(2,0, 1)
+#define AT91_GPIO_PC2 AT91_PIN(2,0, 2)
+#define AT91_GPIO_PC3 AT91_PIN(2,0, 3)
+#define AT91_GPIO_PC4 AT91_PIN(2,0, 4)
+#define AT91_GPIO_PC5 AT91_PIN(2,0, 5)
+#define AT91_GPIO_PC6 AT91_PIN(2,0, 6)
+#define AT91_GPIO_PC7 AT91_PIN(2,0, 7)
+#define AT91_GPIO_PC8 AT91_PIN(2,0, 8)
+#define AT91_GPIO_PC9 AT91_PIN(2,0, 9)
+#define AT91_GPIO_PC10 AT91_PIN(2,0,10)
+#define AT91_GPIO_PC11 AT91_PIN(2,0,11)
+#define AT91_GPIO_PC12 AT91_PIN(2,0,12)
+#define AT91_GPIO_PC13 AT91_PIN(2,0,13)
+#define AT91_GPIO_PC14 AT91_PIN(2,0,14)
+#define AT91_GPIO_PC15 AT91_PIN(2,0,15)
+#define AT91_GPIO_PC16 AT91_PIN(2,0,16)
+#define AT91_GPIO_PC17 AT91_PIN(2,0,17)
+#define AT91_GPIO_PC18 AT91_PIN(2,0,18)
+#define AT91_GPIO_PC19 AT91_PIN(2,0,19)
+#define AT91_GPIO_PC20 AT91_PIN(2,0,20)
+#define AT91_GPIO_PC21 AT91_PIN(2,0,21)
+#define AT91_GPIO_PC22 AT91_PIN(2,0,22)
+#define AT91_GPIO_PC23 AT91_PIN(2,0,23)
+#define AT91_GPIO_PC24 AT91_PIN(2,0,24)
+#define AT91_GPIO_PC25 AT91_PIN(2,0,25)
+#define AT91_GPIO_PC26 AT91_PIN(2,0,26)
+#define AT91_GPIO_PC27 AT91_PIN(2,0,27)
+#define AT91_GPIO_PC28 AT91_PIN(2,0,28)
+#define AT91_GPIO_PC29 AT91_PIN(2,0,29)
+#define AT91_GPIO_PC30 AT91_PIN(2,0,30)
+#define AT91_GPIO_PC31 AT91_PIN(2,0,31)
+#endif //AT91_PIOC
+
+#if defined(CYGHWR_HAL_ARM_AT91_M55800A)
+
+#define AT91_TC_TCLK3 AT91_PIN(0,0, 0) // Timer 3 Clock signal
+#define AT91_TC_TIOA3 AT91_PIN(0,0, 1) // Timer 3 Signal A
+#define AT91_TC_TIOB3 AT91_PIN(0,0, 2) // Timer 3 Signal B
+#define AT91_TC_TCLK4 AT91_PIN(0,0, 3) // Timer 4 Clock signal
+#define AT91_TC_TIOA4 AT91_PIN(0,0, 4) // Timer 4 Signal A
+#define AT91_TC_TIOB4 AT91_PIN(0,0, 5) // Timer 4 Signal B
+#define AT91_TC_TCLK5 AT91_PIN(0,0, 6) // Timer 5 Clock signal
+#define AT91_TC_TIOA5 AT91_PIN(0,0, 7) // Timer 5 Signal A
+#define AT91_TC_TIOB5 AT91_PIN(0,0, 8) // Timer 5 Signal B
+#define AT91_INT_IRQ0 AT91_PIN(0,0, 9) // External Interrupt 0
+#define AT91_INT_IRQ1 AT91_PIN(0,0,10) // External Interrupt 1
+#define AT91_INT_IRQ2 AT91_PIN(0,0,11) // External Interrupt 2
+#define AT91_INT_IRQ3 AT91_PIN(0,0,12) // External Interrupt 3
+#define AT91_INT_FIQ AT91_PIN(0,0,13) // Fast Interrupt
+#define AT91_USART_SCK0 AT91_PIN(0,0,14) // USART 0 Clock signal
+#define AT91_USART_TXD0 AT91_PIN(0,0,15) // USART 0 transmit data
+#define AT91_USART_RXD0 AT91_PIN(0,0,16) // USART 0 receive data
+#define AT91_USART_SCK1 AT91_PIN(0,0,17) // USART 1 Clock signal
+#define AT91_USART_TXD1 AT91_PIN(0,0,18) // USART 1 transmit data
+#define AT91_USART_RXD1 AT91_PIN(0,0,19) // USART 1 receive data
+#define AT91_USART_SCK2 AT91_PIN(0,0,20) // USART 2 Clock signal
+#define AT91_USART_TXD2 AT91_PIN(0,0,21) // USART 2 transmit data
+#define AT91_USART_RXD2 AT91_PIN(0,0,22) // USART 2 receive data
+#define AT91_SPI_SPCK AT91_PIN(0,0,23) // SPI Clock signal
+#define AT91_SPI_MISO AT91_PIN(0,0,24) // SPI Master In Slave Out
+#define AT91_SPI_MOSI AT91_PIN(0,0,25) // SPI Master Out Slave In
+#define AT91_SPI_NPCS0 AT91_PIN(0,0,26) // SPI Peripheral Chip Select 0
+#define AT91_SPI_NPCS1 AT91_PIN(0,0,27) // SPI Peripheral Chip Select 1
+#define AT91_SPI_NPCS2 AT91_PIN(0,0,28) // SPI Peripheral Chip Select 2
+#define AT91_SPI_NPCS3 AT91_PIN(0,0,29) // SPI Peripheral Chip Select 3
+
+#define AT91_INT_IRQ4 AT91_PIN(1,0, 3) // External Interrupt 4
+#define AT91_INT_IRQ5 AT91_PIN(1,0, 4) // External Interrupt 5
+#define AT91_ADC_AD0TRIG AT91_PIN(1,0, 6) // ADC0 External Trigger
+#define AT91_ADC_AD1TRIG AT91_PIN(1,0, 7) // ADC1 External Trigger
+#define AT91_BOOT_BMS AT91_PIN(1,0,12) // Boot Mode Select
+#define AT91_TC_TCLK0 AT91_PIN(1,0,14) // Timer 0 Clock signal
+#define AT91_TC_TIOA0 AT91_PIN(1,0,15) // Timer 0 Signal A
+#define AT91_TC_TIOB0 AT91_PIN(1,0,16) // Timer 0 Signal B
+#define AT91_TC_TCLK1 AT91_PIN(1,0,17) // Timer 1 Clock signal
+#define AT91_TC_TIOA1 AT91_PIN(1,0,18) // Timer 1 Signal A
+#define AT91_TC_TIOB1 AT91_PIN(1,0,19) // Timer 1 Signal B
+#define AT91_TC_TCLK2 AT91_PIN(1,0,20) // Timer 2 Clock signal
+#define AT91_TC_TIOA2 AT91_PIN(1,0,21) // Timer 2 Signal A
+#define AT91_TC_TIOB2 AT91_PIN(1,0,22) // Timer 2 Signal B
+
+// PIOA
+#define AT91_PIO_PSR_TCLK3 0x00000001 // Timer 3 Clock signal
+#define AT91_PIO_PSR_TIOA3 0x00000002 // Timer 3 Signal A
+#define AT91_PIO_PSR_TIOB3 0x00000004 // Timer 3 Signal B
+#define AT91_PIO_PSR_TCLK4 0x00000008 // Timer 4 Clock signal
+#define AT91_PIO_PSR_TIOA4 0x00000010 // Timer 4 Signal A
+#define AT91_PIO_PSR_TIOB4 0x00000020 // Timer 4 Signal B
+#define AT91_PIO_PSR_TCLK5 0x00000040 // Timer 5 Clock signal
+#define AT91_PIO_PSR_TIOA5 0x00000080 // Timer 5 Signal A
+#define AT91_PIO_PSR_TIOB5 0x00000100 // Timer 5 Signal B
+#define AT91_PIO_PSR_IRQ0 0x00000200 // External Interrupt 0
+#define AT91_PIO_PSR_IRQ1 0x00000400 // External Interrupt 1
+#define AT91_PIO_PSR_IRQ2 0x00000800 // External Interrupt 2
+#define AT91_PIO_PSR_IRQ3 0x00001000 // External Interrupt 3
+#define AT91_PIO_PSR_FIQ 0x00002000 // Fast Interrupt
+#define AT91_PIO_PSR_SCK0 0x00004000 // USART 0 Clock signal
+#define AT91_PIO_PSR_TXD0 0x00008000 // USART 0 transmit data
+#define AT91_PIO_PSR_RXD0 0x00010000 // USART 0 receive data
+#define AT91_PIO_PSR_SCK1 0x00020000 // USART 1 Clock signal
+#define AT91_PIO_PSR_TXD1 0x00040000 // USART 1 transmit data
+#define AT91_PIO_PSR_RXD1 0x00080000 // USART 1 receive data
+#define AT91_PIO_PSR_SCK2 0x00100000 // USART 2 Clock signal
+#define AT91_PIO_PSR_TXD2 0x00200000 // USART 2 transmit data
+#define AT91_PIO_PSR_RXD2 0x00400000 // USART 2 receive data
+#define AT91_PIO_PSR_SPCK 0x00800000 // SPI Clock signal
+#define AT91_PIO_PSR_MISO 0x01000000 // SPI Master In Slave Out
+#define AT91_PIO_PSR_MOSI 0x02000000 // SPI Master Out Slave In
+#define AT91_PIO_PSR_NPCS0 0x04000000 // SPI Peripheral Chip Select 0
+#define AT91_PIO_PSR_NPCS1 0x08000000 // SPI Peripheral Chip Select 1
+#define AT91_PIO_PSR_NPCS2 0x10000000 // SPI Peripheral Chip Select 2
+#define AT91_PIO_PSR_NPCS3 0x20000000 // SPI Peripheral Chip Select 3
+
+// PIOB
+#define AT91_PIO_PSR_IRQ4 0x00000008 // External Interrupt 4
+#define AT91_PIO_PSR_IRQ5 0x00000010 // External Interrupt 5
+#define AT91_PIO_PSR_AD0TRIG 0x00000040 // ADC0 External Trigger
+#define AT91_PIO_PSR_AD1TRIG 0x00000080 // ADC1 External Trigger
+#define AT91_PIO_PSR_BMS 0x00040000 // Boot Mode Select
+#define AT91_PIO_PSR_TCLK0 0x00080000 // Timer 0 Clock signal
+#define AT91_PIO_PSR_TIOA0 0x00100000 // Timer 0 Signal A
+#define AT91_PIO_PSR_TIOB0 0x00200000 // Timer 0 Signal B
+#define AT91_PIO_PSR_TCLK1 0x00400000 // Timer 1 Clock signal
+#define AT91_PIO_PSR_TIOA1 0x00800000 // Timer 1 Signal A
+#define AT91_PIO_PSR_TIOB1 0x01000000 // Timer 1 Signal B
+#define AT91_PIO_PSR_TCLK2 0x02000000 // Timer 2 Clock signal
+#define AT91_PIO_PSR_TIOA2 0x04000000 // Timer 2 Signal A
+#define AT91_PIO_PSR_TIOB2 0x08000000 // Timer 2 Signal B
+
+#elif defined (CYGHWR_HAL_ARM_AT91SAM7)
+#include <pkgconf/hal_arm_at91sam7.h>
+
+#ifdef CYGHWR_HAL_ARM_AT91SAM7S
+#define AT91_PWM_PWM0 AT91_PIN(0,0, 0) // Pulse Width Modulation 0
+#define AT91_PWM_PWM1 AT91_PIN(0,0, 1) // Pulse Width Modulation 1
+#define AT91_PWM_PWM2 AT91_PIN(0,0, 2) // Pulse Width Modulation 2
+#define AT91_TWI_TWD AT91_PIN(0,0, 3) // Two Wire Data
+#define AT91_TWI_TWCK AT91_PIN(0,0, 4) // Two Wire Clock
+#define AT91_USART_RXD0 AT91_PIN(0,0, 5) // USART 0 Receive Data
+#define AT91_USART_TXD0 AT91_PIN(0,0, 6) // USART 0 Transmit Data
+#define AT91_USART_RTS0 AT91_PIN(0,0, 7) // USART 0 Ready To Send
+#define AT91_USART_CTS0 AT91_PIN(0,0, 8) // USART 0 Clear To Send
+#define AT91_DBG_DRXD AT91_PIN(0,0, 9) // Debug UART Receive
+#define AT91_DBG_DTXD AT91_PIN(0,0,10) // Debug UART Transmit
+#define AT91_SPI_NPCS0 AT91_PIN(0,0,11) // SPI Chip Select 0
+#define AT91_SPI_MISO AT91_PIN(0,0,12) // SPI Input
+#define AT91_SPI_MOSI AT91_PIN(0,0,13) // SPI Output
+#define AT91_SPI_SPCK AT91_PIN(0,0,14) // SPI clock
+#define AT91_S2C_TF AT91_PIN(0,0,15) // S2C Transmit Frame Sync
+#define AT91_S2C_TK AT91_PIN(0,0,16) // S2C Transmit Clock
+#define AT91_S2C_TD AT91_PIN(0,0,17) // S2C Transmit Data
+#define AT91_S2C_RD AT91_PIN(0,0,18) // S2C Receive Data
+#define AT91_S2C_RK AT91_PIN(0,0,19) // S2C Receive Clock
+#define AT91_S2C_RF AT91_PIN(0,0,20) // S2C Receive Frame Sync
+#if !defined(CYGHWR_HAL_ARM_AT91SAM7S_at91sam7s32)
+#define AT91_USART_RXD1 AT91_PIN(0,0,21) // USART 1 Receive Data
+#define AT91_USART_TXD1 AT91_PIN(0,0,22) // USART 1 Transmit Data
+#define AT91_USART_SCK1 AT91_PIN(0,0,23) // USART 1 Serial Clock
+#define AT91_USART_RTS1 AT91_PIN(0,0,24) // USART 1 Ready To Send
+#define AT91_USART_CTS1 AT91_PIN(0,0,25) // USART 1 Clear To Send
+#define AT91_USART_DVD1 AT91_PIN(0,0,26) // USART 1 Data Carrier Detect
+#define AT91_USART_DTR1 AT91_PIN(0,0,27) // USART 1 Data Terminal Ready
+#define AT91_USART_DSR1 AT91_PIN(0,0,28) // USART 1 Data Set Ready
+#define AT91_USART_RI1 AT91_PIN(0,0,29) // USART 2 Ring Indicator
+#define AT91_INT_IRQ1 AT91_PIN(0,0,30) // Interrupt Request 1
+#define AT91_SPI_NPCS1 AT91_PIN(0,0,31) // SPI Chip Select 1
+#endif
+
+#define AT91_TC_TIOA0 AT91_PIN(0,1, 0) // Timer/Counter 0 IO Line A
+#define AT91_TC_TIOB0 AT91_PIN(0,1, 1) // Timer/Counter 0 IO Line B
+#define AT91_USART_SCK0 AT91_PIN(0,1, 2) // USART 0 Serial Clock
+#define AT91_SPI_NPCS3 AT91_PIN(0,1, 3) // SPI Chip Select 3
+#define AT91_TC_TCLK0 AT91_PIN(0,1, 4) // Timer/Counter 0 Clock Input
+#define AT91_SPI_NPCS3X AT91_PIN(0,1, 5) // SPI Chip Select 3 (again)
+#define AT91_PCK_PCK0 AT91_PIN(0,1, 6) // Programmable Clock Output 0
+#define AT91_PWM_PWM3 AT91_PIN(0,1, 7) // Pulse Width Modulation #3
+#define AT91_ADC_ADTRG AT91_PIN(0,1, 8) // ADC Trigger
+#define AT91_SPI_NPCS1X AT91_PIN(0,1, 9) // SPI Chip Select 1
+#define AT91_SPI_NPCS2 AT91_PIN(0,1,10) // SPI Chip Select 2
+#define AT91_PWM_PWM0X AT91_PIN(0,1,11) // Pulse Width Modulation #0
+#define AT91_PIO_PWM_PWM1X AT91_PIN(0,1,12) // Pulse Width Modulation #1
+#define AT91_PIO_PWM_PWM2X AT91_PIN(0,1,13) // Pulse Width Modulation #2
+#define AT91_PIO_PWM_PWM4X AT91_PIN(0,1,14) // Pulse Width Modulation #4
+#define AT91_TC_TIOA1 AT91_PIN(0,1,15) // Timer/Counter 1 IO Line A
+#define AT91_TC_TIOB1 AT91_PIN(0,1,16) // Timer/Counter 1 IO Line B
+#define AT91_PCK_PCK1 AT91_PIN(0,1,17) // Programmable Clock Output 1
+#define AT91_PCK_PCK2 AT91_PIN(0,1,18) // Programmable Clock Output 2
+#define AT91_INT_FIQ AT91_PIN(0,1,19) // Fast Interrupt Request
+#define AT91_INT_IRQ0 AT91_PIN(0,1,20) // Interrupt Request 0
+#if !defined(CYGHWR_HAL_ARM_AT91SAM7S_at91sam7s32)
+#define AT91_PCK_PCK1X AT91_PIN(0,1,21) // Programmable Clock Output 1
+#define AT91_SPI_NPCS3XX AT91_PIN(0,1,22) // SPI Chip Select 3 (yet again)
+#define AT91_PWM_PWM0XX AT91_PIN(0,1,23) // Pulse Width Modulation #0
+#define AT91_PWM_PWM1XX AT91_PIN(0,1,24) // Pulse Width Modulation #1
+#define AT91_PWM_PWM2XX AT91_PIN(0,1,25) // Pulse Width Modulation 2
+#define AT91_TC_TIOA2 AT91_PIN(0,1,26) // Timer/Counter 2 IO Line A
+#define AT91_TC_TIOB2 AT91_PIN(0,1,27) // Timer/Counter 2 IO Line B
+#define AT91_TC_TCLK1 AT91_PIN(0,1,28) // External Clock Input 1
+#define AT91_TC_TCLK2 AT91_PIN(0,1,29) // External Clock Input 2
+#define AT91_SPI_NPCS2X AT91_PIN(0,1,30) // SPI Chip Select 2 (again)
+#define AT91_PCK_PCK2X AT91_PIN(0,1,31) // Programmable Clock Output 2
+#endif //!defined(CYGHWR_HAL_ARM_AT91SAM7S_at91sam7s32)
+
+// PIO Peripheral A
+#define AT91_PIO_PSR_PWM0 0x00000001 // Pulse Width Modulation 0
+#define AT91_PIO_PSR_PWM1 0x00000002 // Pulse Width Modulation 1
+#define AT91_PIO_PSR_PWM2 0x00000004 // Pulse Width Modulation 2
+#define AT91_PIO_PSR_TWD 0x00000008 // Two Wire Data
+#define AT91_PIO_PSR_TWCK 0x00000010 // Two Wire Clock
+#define AT91_PIO_PSR_RXD0 0x00000020 // USART 0 Receive Data
+#define AT91_PIO_PSR_TXD0 0x00000040 // USART 0 Transmit Data
+#define AT91_PIO_PSR_RTS0 0x00000080 // USART 0 Ready To Send
+#define AT91_PIO_PSR_CTS0 0x00000100 // USART 0 Clear To Send
+#define AT91_PIO_PSR_DRXD 0x00000200 // Debug UART Receive
+#define AT91_PIO_PSR_DTXD 0x00000400 // Debug UART Transmit
+#define AT91_PIO_PSR_NPCS0 0x00000800 // SPI Chip Select 0
+#define AT91_PIO_PSR_MISO 0x00001000 // SPI Input
+#define AT91_PIO_PSR_MOSI 0x00002000 // SPI Output
+#define AT91_PIO_PSR_SPCK 0x00004000 // SPI clock
+#define AT91_PIO_PSR_TF 0x00008000 // S2C Transmit Frame Sync
+#define AT91_PIO_PSR_TK 0x00010000 // S2C Transmit Clock
+#define AT91_PIO_PSR_TD 0x00020000 // S2C Transmit Data
+#define AT91_PIO_PSR_RD 0x00040000 // S2C Receive Data
+#define AT91_PIO_PSR_RK 0x00080000 // S2C Receive Clock
+#define AT91_PIO_PSR_RF 0x00100000 // S2C Receive Frame Sync
+#if !defined(CYGHWR_HAL_ARM_AT91SAM7S_at91sam7s32)
+#define AT91_PIO_PSR_RXD1 0x00200000 // USART 1 Receive Data
+#define AT91_PIO_PSR_TXD1 0x00400000 // USART 1 Transmit Data
+#define AT91_PIO_PSR_SCK1 0x00800000 // USART 1 Serial Clock
+#define AT91_PIO_PSR_RTS1 0x01000000 // USART 1 Ready To Send
+#define AT91_PIO_PSR_CTS1 0x02000000 // USART 1 Clear To Send
+#define AT91_PIO_PSR_DCD1 0x04000000 // USART 1 Data Carrier Detect
+#define AT91_PIO_PSR_DTR1 0x08000000 // USART 1 Data Terminal Ready
+#define AT91_PIO_PSR_DSR1 0x10000000 // USART 1 Data Set Ready
+#define AT91_PIO_PSR_RI1 0x20000000 // USART 2 Ring Indicator
+#define AT91_PIO_PSR_IRQ1 0x40000000 // Interrupt Request 1
+#define AT91_PIO_PSR_NPCS1 0x80000000 // SPI Chip Select 1
+#endif // !defined(CYGHWR_HAL_ARM_AT91SAM7S_at91sam7s32)
+
+// PIO Peripheral B
+#define AT91_PIO_PSR_TIOA0 0x00000001 // Timer/Counter 0 IO Line A
+#define AT91_PIO_PSR_TIOB0 0x00000002 // Timer/Counter 0 IO Line B
+#define AT91_PIO_PSR_SCK0 0x00000004 // USART 0 Serial Clock
+#define AT91_PIO_PSR_NPCS3 0x00000008 // SPI Chip Select 3
+#define AT91_PIO_PSR_TCLK0 0x00000010 // Timer/Counter 0 Clock Input
+#define AT91_PIO_PSR_NPCS3X 0x00000020 // SPI Chip Select 3 (again)
+#define AT91_PIO_PSR_PCK0 0x00000040 // Programmable Clock Output 0
+#define AT91_PIO_PSR_PWM3 0x00000080 // Pulse Width Modulation #3
+#define AT91_PIO_PSR_ADTRG 0x00000100 // ADC Trigger
+#define AT91_PIO_PSR_NPCS1X 0x00000200 // SPI Chip Select 1 (again)
+#define AT91_PIO_PSR_NPCS2 0x00000400 // SPI Chip Select 2
+#define AT91_PIO_PSR_PWMOX 0x00000800 // Pulse Width Modulation #0 (again)
+#define AT91_PIO_PSR_PWM1X 0x00001000 // Pulse Width Modulation #1 (again)
+#define AT91_PIO_PSR_PWM2X 0x00002000 // Pulse Width Modulation #2 (again)
+#define AT91_PIO_PSR_PWM3X 0x00004000 // Pulse Width Modulation #4 (again)
+#define AT91_PIO_PSR_TIOA1 0x00008000 // Timer/Counter 1 IO Line A
+#define AT91_PIO_PSR_TIOB1 0x00010000 // Timer/Counter 1 IO Line B
+#define AT91_PIO_PSR_PCK1 0x00020000 // Programmable Clock Output 1
+#define AT91_PIO_PSR_PCK2 0x00040000 // Programmable Clock Output 2
+#define AT91_PIO_PSR_FIQ 0x00080000 // Fast Interrupt Request
+#define AT91_PIO_PSR_IRQ0 0x00100000 // Interrupt Request 0
+#if !defined(CYGHWR_HAL_ARM_AT91SAM7S_at91sam7s32)
+#define AT91_PIO_PSR_PCK1X 0x00200000 // Programmable Clock Output 1(again)
+#define AT91_PIO_PSR_NPCS3XX 0x00400000 // SPI Chip Select 3 (yet again)
+#define AT91_PIO_PSR_PWMOXX 0x00800000 // Pulse Width Modulation #0 (again)
+#define AT91_PIO_PSR_PWM1XX 0x01000000 // Pulse Width Modulation #1 (again)
+#define AT91_PIO_PSR_PWM2XX 0x02000000 // Pulse Width Modulation #2 (again)
+#define AT91_PIO_PSR_TIOA2 0x04000000 // Timer/Counter 2 IO Line A
+#define AT91_PIO_PSR_TIOB2 0x08000000 // Timer/Counter 2 IO Line B
+#define AT91_PIO_PSR_TCLK1 0x10000000 // External Clock Input 1
+#define AT91_PIO_PSR_TCLK2 0x20000000 // External Clock Input 2
+#define AT91_PIO_PSR_NPCS2X 0x40000000 // SPI Chip Select 2 (again)
+#define AT91_PIO_PSR_PCK2X 0x80000000 // Programmable Clock Output 2(again)
+#endif // !defined(CYGHWR_HAL_ARM_AT91SAM7S_at91sam7s32)
+#endif // CYGHWR_HAL_ARM_AT91SAM7S
+
+#ifdef CYGHWR_HAL_ARM_AT91SAM7X
+
+// PIO Controller A, peripheral A
+#define AT91_USART_RXD0 AT91_PIN(0,0, 0) // USART 0 Receive Data
+#define AT91_USART_TXD0 AT91_PIN(0,0, 1) // USART 0 Transmit Data
+#define AT91_USART_SCK0 AT91_PIN(0,0, 2) // USART 0 Serial Clock
+#define AT91_USART_RTS0 AT91_PIN(0,0, 3) // USART 0 Request To Send
+#define AT91_USART_CTS0 AT91_PIN(0,0, 4) // USART 0 Clear To Send
+#define AT91_USART_RXD1 AT91_PIN(0,0, 5) // USART 1 Receive Data
+#define AT91_USART_TXD1 AT91_PIN(0,0, 6) // USART 1 Transmit Data
+#define AT91_USART_SCK1 AT91_PIN(0,0, 7) // USART 1 Serial Clock
+#define AT91_USART_RTS1 AT91_PIN(0,0, 8) // USART 1 Request To Send
+#define AT91_USART_CTS1 AT91_PIN(0,0, 9) // USART 1 Clear To Send
+#define AT91_TWI_TWD AT91_PIN(0,0,10) // Two Wire Data
+#define AT91_TWI_TWCK AT91_PIN(0,0,11) // Two Wire Clock
+#define AT91_SPI_NPCS0 AT91_PIN(0,0,12) // SPI 0 Chip Select 0
+#define AT91_SPI_NPCS1 AT91_PIN(0,0,13) // SPI 0 Chip Select 1
+#define AT91_SPI_NPCS2 AT91_PIN(0,0,14) // SPI 0 Chip Select 2
+#define AT91_SPI_NPCS3 AT91_PIN(0,0,15) // SPI 0 Chip Select 3
+#define AT91_SPI_MISO AT91_PIN(0,0,16) // SPI 0 Master In Slave Out
+#define AT91_SPI_MOSI AT91_PIN(0,0,17) // SPI 0 Master Out Slave In
+#define AT91_SPI_SPCK AT91_PIN(0,0,18) // SPI 0 Clock
+#define AT91_CAN_CANRX AT91_PIN(0,0,19) // CAN Receive
+#define AT91_CAN_CANTX AT91_PIN(0,0,20) // CAN Transmit
+#define AT91_SSC_TF AT91_PIN(0,0,21) // SSC Transmit Frame Sync
+#define AT91_S2C_TK AT91_PIN(0,0,22) // SSC Transmit Clock
+#define AT91_S2C_TD AT91_PIN(0,0,23) // SSC Transmit Data
+#define AT91_S2C_RD AT91_PIN(0,0,24) // SSC Receive Data
+#define AT91_S2C_RK AT91_PIN(0,0,25) // SSC Receive Clock
+#define AT91_S2C_RF AT91_PIN(0,0,26) // SSC Receive Frame Sync
+#define AT91_DBG_DRXD AT91_PIN(0,0,27) // DBGU Receive Data
+#define AT91_DBG_DTXD AT91_PIN(0,0,28) // DBGU Transmit Data
+#define AT91_INT_FIQ AT91_PIN(0,0,29) // Fast Interrupt Request
+#define AT91_INT_IRQ0 AT91_PIN(0,0,30) // Interrupt Request 0
+
+//PIO controller A, peripheral B
+#define AT91_SPI1_NPCS1 AT91_PIN(0,1, 2) // SPI 1 Chip Select 1
+#define AT91_SPI1_NPCS2 AT91_PIN(0,1, 3) // SPI 1 Chip Select 2
+#define AT91_SPI1_NPCS3 AT91_PIN(0,1, 4) // SPI 1 Chip Select 3
+#define AT91_SPI_NPCS1X AT91_PIN(0,1, 7) // SPI 0 Chip Select 1
+#define AT91_SPI_NPCS2X AT91_PIN(0,1, 8) // SPI 0 Chip Select 2
+#define AT91_SPI_NPCS3X AT91_PIN(0,1, 9) // SPI 0 Chip Select 3
+#define AT91_PCK_PCK1 AT91_PIN(0,1,13) // Programmable Clock Output 1
+#define AT91_INT_IRQ1 AT91_PIN(0,1,14) // Interrupt Request 1
+#define AT91_TC_TCLK1 AT91_PIN(0,1,15) // Timer/Counter 1 Clock Input
+#define AT91_SPI1_NPCS0 AT91_PIN(0,1,21) // SPI 1 Chip Select 0
+#define AT91_SPI1_SPCK AT91_PIN(0,1,22) // SPI 1 Clock
+#define AT91_SPI1_MOSI AT91_PIN(0,1,23) // SPI 1 Master Out Slave In
+#define AT91_SPI1_MISO AT91_PIN(0,1,24) // SPI 0 Master In Slave Out
+#define AT91_SPI1_NPCS1X AT91_PIN(0,1,25) // SPI 1 Chip Select 1
+#define AT91_SPI1_NPCS2X AT91_PIN(0,1,26) // SPI 1 Chip Select 2
+#define AT91_PCK_PCK3 AT91_PIN(0,1,27) // Programmable Clock Output 3
+#define AT91_SPI1_NPCS3X AT91_PIN(0,1,29) // SPI 1 Chip Select 3
+#define AT91_PCK_PCK2 AT91_PIN(0,1,30) // Programmable Clock Output 2
+
+//PIO Controller B, Peripheral A
+#define AT91_EMAC_EREFCK AT91_PIN(1,0, 0) // EMAC Reference Clock
+#define AT91_EMAC_ETXEN AT91_PIN(1,0, 1) // EMAC Transmit Enable
+#define AT91_EMAC_ETX0 AT91_PIN(1,0, 2) // EMAC Transmit Data 0
+#define AT91_EMAC_ETX1 AT91_PIN(1,0, 3) // EMAC Transmit Data 1
+#define AT91_EMAC_ECRS AT91_PIN(1,0, 4) // EMAC Carrier Sense
+#define AT91_EMAC_ERX0 AT91_PIN(1,0, 5) // EMAC Receive Data 0
+#define AT91_EMAC_ERX1 AT91_PIN(1,0, 6) // EMAC Receive Data 1
+#define AT91_EMAC_ERXER AT91_PIN(1,0, 7) // EMAC Receive Error
+#define AT91_EMAC_EMDC AT91_PIN(1,0, 8) // EMAC Management Data Clock
+#define AT91_EMAC_EMDIO AT91_PIN(1,0, 9) // EMAC Management Data IO
+#define AT91_EMAC_ETX2 AT91_PIN(1,0,10) // EMAC Transmit Data 2
+#define AT91_EMAC_ETX3 AT91_PIN(1,0,11) // EMAC Transmit Data 3
+#define AT91_EMAC_ETXER AT91_PIN(1,0,12) // EMAC Transmit Coding Error
+#define AT91_EMAC_ERX2 AT91_PIN(1,0,13) // EMAC Receive Data 2
+#define AT91_EMAC_ERX3 AT91_PIN(1,0,14) // EMAC Receive Data 3
+#define AT91_EMAC_ECRSDV AT91_PIN(1,0,15) // EMAC Carrier Sense And Data Valid
+#define AT91_EMAC_ERXDV AT91_PIN(1,0,15) // EMAC Receive Data Valid
+#define AT91_EMAC_ECOL AT91_PIN(1,0,16) // EMAC Collision Detected
+#define AT91_EMAC_ERXCK AT91_PIN(1,0,17) // EMAC Receive Clock
+#define AT91_EMAC_EF100 AT91_PIN(1,0,18) // EMAC Force 100Mb/s
+#define AT91_PWM_PWM0 AT91_PIN(1,0,19) // Pulse Width Modulation #0
+#define AT91_PWM_PWM1 AT91_PIN(1,0,20) // Pulse Width Modulation #1
+#define AT91_PWM_PWM2 AT91_PIN(1,0,21) // Pulse Width Modulation #2
+#define AT91_PWM_PWM3 AT91_PIN(1,0,22) // Pulse Width Modulation #3
+#define AT91_TC_TIOA0 AT91_PIN(1,0,23) // Timer/Counter 0 IO Line A
+#define AT91_TC_TIOB0 AT91_PIN(1,0,24) // Timer/Counter 0 IO Line B
+#define AT91_TC_TIOA1 AT91_PIN(1,0,25) // Timer/Counter 1 IO Line A
+#define AT91_TC_TIOB1 AT91_PIN(1,0,26) // Timer/Counter 1 IO Line B
+#define AT91_TC_TIOA2 AT91_PIN(1,0,27) // Timer/Counter 2 IO Line A
+#define AT91_TC_TIOB2 AT91_PIN(1,0,28) // Timer/Counter 2 IO Line B
+#define AT91_PCK_PCK1X AT91_PIN(1,0,29) // Programmable Clock Output 1
+#define AT91_PCK_PCK2X AT91_PIN(1,0,30) // Programmable Clock Output 2
+
+//PIO Controller B Peripheral B
+#define AT91_PCK_PCK0 AT91_PIN(1,1, 0) // Programmable Clock Output 0
+#define AT91_SPI1_NPCS1XX AT91_PIN(1,1,10) // SPI 1 Chip Select 1
+#define AT91_SPI1_NPCS2XX AT91_PIN(1,1,11) // SPI 1 Chip Select 2
+#define AT91_TC_TCLK0 AT91_PIN(1,1,12) // Timer/Counter 0 Clock Input
+#define AT91_SPI_NPCS1XX AT91_PIN(1,1,13) // SPI 0 Chip Select 1
+#define AT91_SPI_NPCS2XX AT91_PIN(1,1,14) // SPI 0 Chip Select 2
+#define AT91_SPI1_NPCS3XX AT91_PIN(1,1,16) // SPI 1 Chip Select 3
+#define AT91_SPI_NPCS3XX AT91_PIN(1,1,17) // SPI 0 Chip Select 3
+#define AT91_ADC_ADTRG AT91_PIN(1,1,18) // ADC Trigger
+#define AT91_TC_TCLK1X AT91_PIN(1,1,19) // Timer/Counter 1 Clock Input
+#define AT91_PCK_PCK0X AT91_PIN(1,1,20) // Programmable Clock Output 0
+#define AT91_PCK_PCK1XX AT91_PIN(1,1,21) // Programmable Clock Output 1
+#define AT91_PCK_PCK2XX AT91_PIN(1,1,22) // Programmable Clock Output 2
+#define AT91_USART_DCD1 AT91_PIN(1,1,23) // USART 1 Data Carrier Detect
+#define AT91_USART_DSR1 AT91_PIN(1,1,24) // USART 1 Data Set Ready
+#define AT91_USART_DTR1 AT91_PIN(1,1,25) // USART 1 Data Terminal Ready
+#define AT91_USART_RI1 AT91_PIN(1,1,26) // USART 1 Ring Indication
+#define AT91_PWM_PWM0X AT91_PIN(1,1,27) // Pulse Width Modulation #0
+#define AT91_PWM_PWM1X AT91_PIN(1,1,28) // Pulse Width Modulation #1
+#define AT91_PWM_PWM2X AT91_PIN(1,1,29) // Pulse Width Modulation #2
+#define AT91_PWM_PWM3X AT91_PIN(1,1,30) // Pulse Width Modulation #3
+
+// PIO Controller A, peripheral A
+#define AT91_PIO_PSR_RXD0 (1<< 0) // USART 0 Receive Data
+#define AT91_PIO_PSR_TXD0 (1<< 1) // USART 0 Transmit Data
+#define AT91_PIO_PSR_SCK0 (1<< 2) // USART 0 Serial Clock
+#define AT91_PIO_PSR_RTS0 (1<< 3) // USART 0 Request To Send
+#define AT91_PIO_PSR_CTS0 (1<< 4) // USART 0 Clear To Send
+#define AT91_PIO_PSR_RXD1 (1<< 5) // USART 1 Receive Data
+#define AT91_PIO_PSR_TXD1 (1<< 6) // USART 1 Transmit Data
+#define AT91_PIO_PSR_SCK1 (1<< 7) // USART 1 Serial Clock
+#define AT91_PIO_PSR_RTS1 (1<< 8) // USART 1 Request To Send
+#define AT91_PIO_PSR_CTS1 (1<< 9) // USART 1 Clear To Send
+#define AT91_PIO_PSR_TWD (1<<10) // Two Wire Data
+#define AT91_PIO_PSR_TWCK (1<<11) // Two Wire Clock
+#define AT91_PIO_PSR_SPI_NPCS0 (1<<12) // SPI 0 Chip Select 0
+#define AT91_PIO_PSR_SPI_NPCS1 (1<<13) // SPI 0 Chip Select 1
+#define AT91_PIO_PSR_SPI_NPCS2 (1<<14) // SPI 0 Chip Select 2
+#define AT91_PIO_PSR_SPI_NPCS3 (1<<15) // SPI 0 Chip Select 3
+#define AT91_PIO_PSR_SPI_MISO (1<<16) // SPI 0 Master In Slave Out
+#define AT91_PIO_PSR_SPI_MOSI (1<<17) // SPI 0 Master Out Slave In
+#define AT91_PIO_PSR_SPI_SPCK (1<<18) // SPI 0 Clock
+#define AT91_PIO_PSR_CANRX (1<<19) // CAN Receive
+#define AT91_PIO_PSR_CANTX (1<<20) // CAN Transmit
+#define AT91_PIO_PSR_TF (1<<21) // SSC Transmit Frame Sync
+#define AT91_PIO_PSR_TK (1<<22) // SSC Transmit Clock
+#define AT91_PIO_PSR_TD (1<<23) // SSC Transmit Data
+#define AT91_PIO_PSR_RD (1<<24) // SSC Receive Data
+#define AT91_PIO_PSR_RK (1<<25) // SSC Receive Clock
+#define AT91_PIO_PSR_RF (1<<26) // SSC Receive Frame Sync
+#define AT91_PIO_PSR_DRXD (1<<27) // DBGU Receive Data
+#define AT91_PIO_PSR_DTXD (1<<28) // DBGU Transmit Data
+#define AT91_PIO_PSR_FIQ (1<<29) // Fast Interrupt Request
+#define AT91_PIO_PSR_IRQ0 (1<<30) // Interrupt Request 0
+
+//PIO controller A, peripheral B
+#define AT91_PIO_PSR_SPI1_NPCS1 (1<< 2) // SPI 1 Chip Select 1
+#define AT91_PIO_PSR_SPI1_NPCS2 (1<< 3) // SPI 1 Chip Select 2
+#define AT91_PIO_PSR_SPI1_NPCS3 (1<< 4) // SPI 1 Chip Select 3
+#define AT91_PIO_PSR_SPI_NPCS1X (1<< 7) // SPI 0 Chip Select 1
+#define AT91_PIO_PSR_SPI_NPCS2X (1<< 8) // SPI 0 Chip Select 2
+#define AT91_PIO_PSR_SPI_NPCS3X (1<< 9) // SPI 0 Chip Select 3
+#define AT91_PIO_PSR_PCK1 (1<<13) // Programmable Clock Output 1
+#define AT91_PIO_PSR_IRQ1 (1<<14) // Interrupt Request 1
+#define AT91_PIO_PSR_TCLK1 (1<<15) // Timer/Counter 1 Clock Input
+#define AT91_PIO_PSR_SPI1_NPCS0 (1<<21) // SPI 1 Chip Select 0
+#define AT91_PIO_PSR_SPI1_SPCK (1<<22) // SPI 1 Clock
+#define AT91_PIO_PSR_SPI1_MOSI (1<<23) // SPI 1 Master Out Slave In
+#define AT91_PIO_PSR_SPI1_MISO (1<<24) // SPI 0 Master In Slave Out
+#define AT91_PIO_PSR_SPI1_NPCS1X (1<<25) // SPI 1 Chip Select 1
+#define AT91_PIO_PSR_SPI1_NPCS2X (1<<26) // SPI 1 Chip Select 2
+#define AT91_PIO_PSR_PCK3 (1<<27) // Programmable Clock Output 3
+#define AT91_PIO_PSR_SPI1_NPCS3X (1<<29) // SPI 1 Chip Select 3
+#define AT91_PIO_PSR_PCK2 (1<<30) // Programmable Clock Output 2
+
+//PIO Controller B, Peripheral A
+#define AT91_PIO_PSR_EREFCK (1<< 0) // EMAC Reference Clock
+#define AT91_PIO_PSR_ETXEN (1<< 1) // EMAC Transmit Enable
+#define AT91_PIO_PSR_ETX0 (1<< 2) // EMAC Transmit Data 0
+#define AT91_PIO_PSR_ETX1 (1<< 3) // EMAC Transmit Data 1
+#define AT91_PIO_PSR_ECRS (1<< 4) // EMAC Carrier Sense
+#define AT91_PIO_PSR_ERX0 (1<< 5) // EMAC Receive Data 0
+#define AT91_PIO_PSR_ERX1 (1<< 6) // EMAC Receive Data 1
+#define AT91_PIO_PSR_ERXER (1<< 7) // EMAC Receive Error
+#define AT91_PIO_PSR_EMDC (1<< 8) // EMAC Management Data Clock
+#define AT91_PIO_PSR_EMDIO (1<< 9) // EMAC Management Data IO
+#define AT91_PIO_PSR_ETX2 (1<<10) // EMAC Transmit Data 2
+#define AT91_PIO_PSR_ETX3 (1<<11) // EMAC Transmit Data 3
+#define AT91_PIO_PSR_ETXER (1<<12) // EMAC Transmit Coding Error
+#define AT91_PIO_PSR_ERX2 (1<<13) // EMAC Receive Data 2
+#define AT91_PIO_PSR_ERX3 (1<<14) // EMAC Receive Data 3
+#define AT91_PIO_PSR_ECRSDV (1<<15) // EMAC Carrier Sense And Data Valid
+#define AT91_PIO_PSR_ECOL (1<<16) // EMAC Collision Detected
+#define AT91_PIO_PSR_ERXCK (1<<17) // EMAC Receive Clock
+#define AT91_PIO_PSR_EF100 (1<<18) // EMAC Force 100Mb/s
+#define AT91_PIO_PSR_PWM0 (1<<19) // Pulse Width Modulation #0
+#define AT91_PIO_PSR_PWM1 (1<<20) // Pulse Width Modulation #1
+#define AT91_PIO_PSR_PWM2 (1<<21) // Pulse Width Modulation #2
+#define AT91_PIO_PSR_PWM3 (1<<22) // Pulse Width Modulation #3
+#define AT91_PIO_PSR_TIOA0 (1<<23) // Timer/Counter 0 IO Line A
+#define AT91_PIO_PSR_TIOB0 (1<<24) // Timer/Counter 0 IO Line B
+#define AT91_PIO_PSR_TIOA1 (1<<25) // Timer/Counter 1 IO Line A
+#define AT91_PIO_PSR_TIOB1 (1<<26) // Timer/Counter 1 IO Line B
+#define AT91_PIO_PSR_TIOA2 (1<<27) // Timer/Counter 2 IO Line A
+#define AT91_PIO_PSR_TIOB2 (1<<28) // Timer/Counter 2 IO Line B
+#define AT91_PIO_PSR_PCK1X (1<<29) // Programmable Clock Output 1
+#define AT91_PIO_PSR_PCK2 (1<<30) // Programmable Clock Output 2
+
+//PIO Controller B Peripheral B
+#define AT91_PIO_PSR_PCK0 (1<< 0) // Programmable Clock Output 0
+#define AT91_PIO_PSR_SPI1_NPCS1XX (1<<10) // SPI 1 Chip Select 1
+#define AT91_PIO_PSR_SPI1_NPCS2XX (1<<11) // SPI 1 Chip Select 2
+#define AT91_PIO_PSR_TCLK0 (1<<12) // Timer/Counter 0 Clock Input
+#define AT91_PIO_PSR_SPI_NPCS1 (1<<13) // SPI 0 Chip Select 1
+#define AT91_PIO_PSR_SPI_NPCS2 (1<<14) // SPI 0 Chip Select 2
+#define AT91_PIO_PSR_SPI1_NPCS3XX (1<<16) // SPI 1 Chip Select 3
+#define AT91_PIO_PSR_SPI_NPCS3XX (1<<17) // SPI 0 Chip Select 3
+#define AT91_PIO_PSR_ADTRG (1<<18) // ADC Trigger
+#define AT91_PIO_PSR_TCLK1X (1<<19) // Timer/Counter 1 Clock Input
+#define AT91_PIO_PSR_PCK0X (1<<20) // Programmable Clock Output 0
+#define AT91_PIO_PSR_PCK1XX (1<<21) // Programmable Clock Output 1
+#define AT91_PIO_PSR_PCK2X (1<<22) // Programmable Clock Output 2
+#define AT91_PIO_PSR_DCD1 (1<<23) // USART 1 Data Carrier Detect
+#define AT91_PIO_PSR_DSR1 (1<<24) // USART 1 Data Set Ready
+#define AT91_PIO_PSR_DTR1 (1<<25) // USART 1 Data Terminal Ready
+#define AT91_PIO_PSR_RI1 (1<<26) // USART 1 Ring Indication
+#define AT91_PIO_PSR_PWM0X (1<<27) // Pulse Width Modulation #0
+#define AT91_PIO_PSR_PWM1X (1<<28) // Pulse Width Modulation #1
+#define AT91_PIO_PSR_PWM2X (1<<29) // Pulse Width Modulation #2
+#define AT91_PIO_PSR_PWM3X (1<<30) // Pulse Width Modulation #3
+#endif // CYGHWR_HAL_ARM_AT91SAM7X
+
+#ifdef CYGHWR_HAL_ARM_AT91SAM7XC
+#error Sorry, still missing. Happy typing
+#endif
+
+#ifdef CYGHWR_HAL_ARM_AT91SAM7SE
+//PIO Controller A Peripheral A
+#define AT91_PWM_PWM0 AT91_PIN(0,0, 0) // Pulse Width Modulation 0
+#define AT91_PWM_PWM1 AT91_PIN(0,0, 1) // Pulse Width Modulation 1
+#define AT91_PWM_PWM2 AT91_PIN(0,0, 2) // Pulse Width Modulation 2
+#define AT91_TWI_TWD AT91_PIN(0,0, 3) // Two Wire Data
+#define AT91_TWI_TWCK AT91_PIN(0,0, 4) // Two Wire Clock
+#define AT91_USART_RXD0 AT91_PIN(0,0, 5) // USART 0 Receive Data
+#define AT91_USART_TXD0 AT91_PIN(0,0, 6) // USART 0 Transmit Data
+#define AT91_USART_RTS0 AT91_PIN(0,0, 7) // USART 0 Ready To Send
+#define AT91_USART_CTS0 AT91_PIN(0,0, 8) // USART 0 Clear To Send
+#define AT91_DBG_DRXD AT91_PIN(0,0, 9) // Debug UART Receive
+#define AT91_DBG_DTXD AT91_PIN(0,0,10) // Debug UART Transmit
+#define AT91_SPI_NPCS0 AT91_PIN(0,0,11) // SPI Chip Select 0
+#define AT91_SPI_MISO AT91_PIN(0,0,12) // SPI Input
+#define AT91_SPI_MOSI AT91_PIN(0,0,13) // SPI Output
+#define AT91_SPI_SPCK AT91_PIN(0,0,14) // SPI clock
+#define AT91_S2C_TF AT91_PIN(0,0,15) // S2C Transmit Frame Sync
+#define AT91_S2C_TK AT91_PIN(0,0,16) // S2C Transmit Clock
+#define AT91_S2C_TD AT91_PIN(0,0,17) // S2C Transmit Data
+#define AT91_S2C_RD AT91_PIN(0,0,18) // S2C Receive Data
+#define AT91_S2C_RK AT91_PIN(0,0,19) // S2C Receive Clock
+#define AT91_S2C_RF AT91_PIN(0,0,20) // S2C Receive Frame Sync
+#define AT91_USART_RXD1 AT91_PIN(0,0,21) // USART 1 Receive Data
+#define AT91_USART_TXD1 AT91_PIN(0,0,22) // USART 1 Transmit Data
+#define AT91_USART_SCK1 AT91_PIN(0,0,23) // USART 1 Serial Clock
+#define AT91_USART_RTS1 AT91_PIN(0,0,24) // USART 1 Ready To Send
+#define AT91_USART_CTS1 AT91_PIN(0,0,25) // USART 1 Clear To Send
+#define AT91_USART_DVD1 AT91_PIN(0,0,26) // USART 1 Data Carrier Detect
+#define AT91_USART_DTR1 AT91_PIN(0,0,27) // USART 1 Data Terminal Ready
+#define AT91_USART_DSR1 AT91_PIN(0,0,28) // USART 1 Data Set Ready
+#define AT91_USART_RI1 AT91_PIN(0,0,29) // USART 2 Ring Indicator
+#define AT91_INT_IRQ1 AT91_PIN(0,0,30) // Interrupt Request 1
+#define AT91_SPI_NPCS1 AT91_PIN(0,0,31) // SPI Chip Select 1
+
+//PIO Controller A Peripheral B
+#define AT91_EBI_A0_NBS0 AT91_PIN(0,1, 0) // EBI: Addr 0 / SDRAM Byte Mask 0
+#define AT91_EBI_A1_NBS2 AT91_PIN(0,1, 1) // EBI: Addr 1 / SDRAM Byte Mask 2
+#define AT91_EBI_A2 AT91_PIN(0,1, 2) // EBI: Addr 2
+#define AT91_EBI_A3 AT91_PIN(0,1, 3) // EBI: Addr 3
+#define AT91_EBI_A4 AT91_PIN(0,1, 4) // EBI: Addr 4
+#define AT91_EBI_A5 AT91_PIN(0,1, 5) // EBI: Addr 5
+#define AT91_EBI_A6 AT91_PIN(0,1, 6) // EBI: Addr 6
+#define AT91_EBI_A7 AT91_PIN(0,1, 7) // EBI: Addr 7
+#define AT91_EBI_A8 AT91_PIN(0,1, 8) // EBI: Addr 8
+#define AT91_EBI_A9 AT91_PIN(0,1, 9) // EBI: Addr 9
+#define AT91_EBI_A10 AT91_PIN(0,1,10) // EBI: Addr 10
+#define AT91_EBI_A11 AT91_PIN(0,1,11) // EBI: Addr 11
+#define AT91_EBI_A12 AT91_PIN(0,1,12) // EBI: Addr 12
+#define AT91_EBI_A13 AT91_PIN(0,1,13) // EBI: Addr 13
+#define AT91_EBI_A14 AT91_PIN(0,1,14) // EBI: Addr 14
+#define AT91_EBI_A15 AT91_PIN(0,1,15) // EBI: Addr 15
+#define AT91_EBI_A16_BA0 AT91_PIN(0,1,16) // EBI: Addr 16 / SDRAM Bank Sel 0
+#define AT91_EBI_A17_BA1 AT91_PIN(0,1,17) // EBI: Addr 17 / SDRAM Bank Sel 1
+#define AT91_EBI_NBS3_CFIOW AT91_PIN(0,1,18) // EBI: SDRAM Byte Mask 3 /
+ // CompactFlash I/O Write Signal
+#define AT91_EBI_NCS4_CFCS0 AT91_PIN(0,1,19) // EBI: Chip Select 4 /
+ // CompactFlash Chip Select 0
+#define AT91_EBI_NCS2_CFCS1 AT91_PIN(0,1,20) // EBI: Chip Select 2 /
+ // CompactFlash Chip Select 1
+#define AT91_EBI_NCS6_CFCE2 AT91_PIN(0,1,21) // EBI: Chip Select 6 /
+ // CompactFlash Chip Enable 2
+#define AT91_EBI_NCS5_CFCE1 AT91_PIN(0,1,22) // EBI: Chip Select 5 /
+ // CompactFlash Chip Enable 1
+#define AT91_EBI_NWR1_NBS1_CFIOR \
+ AT91_PIN(0,1,23) // EBI: SMC Write 1 /
+ // SDRAM Byte Mask 1 /
+ // CompactFlash I/O Read Signal
+#define AT91_EBI_SDA10 AT91_PIN(0,1,24) // EBI: SDRAM Address 10
+#define AT91_EBI_SDCKE AT91_PIN(0,1,25) // EBI: SDRAM Clock Enable
+#define AT91_EBI_NCS1_SDCS AT91_PIN(0,1,26) // EBI: Chip Select 1 /
+ // SDRAM Controller Chip Select
+#define AT91_EBI_SDWE AT91_PIN(0,1,27) // EBI: SDRAM Write Enable
+#define AT91_EBI_CAS AT91_PIN(0,1,28) // EBI: SDRAM Column Signal
+#define AT91_EBI_RAS AT91_PIN(0,1,29) // EBI: SDRAM Row Signal
+#define AT91_EBI_D30 AT91_PIN(0,1,30) // EBI: Data 30
+#define AT91_EBI_D31 AT91_PIN(0,1,31) // EBI: Data 31
+
+//PIO Controller A Peripheral A
+#define AT91_PIO_PSR_PWM0 (1<< 0) // Pulse Width Modulation 0
+#define AT91_PIO_PSR_PWM1 (1<< 1) // Pulse Width Modulation 1
+#define AT91_PIO_PSR_PWM2 (1<< 2) // Pulse Width Modulation 2
+#define AT91_PIO_PSR_TWD (1<< 3) // Two Wire Data
+#define AT91_PIO_PSR_TWCK (1<< 4) // Two Wire Clock
+#define AT91_PIO_PSR_RXD0 (1<< 5) // USART 0 Receive Data
+#define AT91_PIO_PSR_TXD0 (1<< 6) // USART 0 Transmit Data
+#define AT91_PIO_PSR_RTS0 (1<< 7) // USART 0 Ready To Send
+#define AT91_PIO_PSR_CTS0 (1<< 8) // USART 0 Clear To Send
+#define AT91_PIO_PSR_DRXD (1<< 9) // Debug UART Receive
+#define AT91_PIO_PSR_DTXD (1<<10) // Debug UART Transmit
+#define AT91_PIO_PSR_NPCS0 (1<<11) // SPI Chip Select 0
+#define AT91_PIO_PSR_MISO (1<<12) // SPI Input
+#define AT91_PIO_PSR_MOSI (1<<13) // SPI Output
+#define AT91_PIO_PSR_SPCK (1<<14) // SPI clock
+#define AT91_PIO_PSR_TF (1<<15) // S2C Transmit Frame Sync
+#define AT91_PIO_PSR_TK (1<<16) // S2C Transmit Clock
+#define AT91_PIO_PSR_TD (1<<17) // S2C Transmit Data
+#define AT91_PIO_PSR_RD (1<<18) // S2C Receive Data
+#define AT91_PIO_PSR_RK (1<<19) // S2C Receive Clock
+#define AT91_PIO_PSR_RF (1<<20) // S2C Receive Frame Sync
+#define AT91_PIO_PSR_RXD1 (1<<21) // USART 1 Receive Data
+#define AT91_PIO_PSR_TXD1 (1<<22) // USART 1 Transmit Data
+#define AT91_PIO_PSR_SCK1 (1<<23) // USART 1 Serial Clock
+#define AT91_PIO_PSR_RTS1 (1<<24) // USART 1 Ready To Send
+#define AT91_PIO_PSR_CTS1 (1<<25) // USART 1 Clear To Send
+#define AT91_PIO_PSR_DVD1 (1<<26) // USART 1 Data Carrier Detect
+#define AT91_PIO_PSR_DTR1 (1<<27) // USART 1 Data Terminal Ready
+#define AT91_PIO_PSR_DSR1 (1<<28) // USART 1 Data Set Ready
+#define AT91_PIO_PSR_RI1 (1<<29) // USART 2 Ring Indicator
+#define AT91_PIO_PSR_IRQ1 (1<<30) // Interrupt Request 1
+#define AT91_PIO_PSR_NPCS1 (1<<31) // SPI Chip Select 1
+
+//PIO Controller A Peripheral B
+#define AT91_PIO_PSR_A0_NBS0 (1<< 0) // EBI: Address 0 / SDRAM Byte Mask 0
+#define AT91_PIO_PSR_A1_NBS2 (1<< 1) // EBI: Address 1 / SDRAM Byte Mask 2
+#define AT91_PIO_PSR_A2 (1<< 2) // EBI: Address 2
+#define AT91_PIO_PSR_A3 (1<< 3) // EBI: Address 3
+#define AT91_PIO_PSR_A4 (1<< 4) // EBI: Address 4
+#define AT91_PIO_PSR_A5 (1<< 5) // EBI: Address 5
+#define AT91_PIO_PSR_A6 (1<< 6) // EBI: Address 6
+#define AT91_PIO_PSR_A7 (1<< 7) // EBI: Address 7
+#define AT91_PIO_PSR_A8 (1<< 8) // EBI: Address 8
+#define AT91_PIO_PSR_A9 (1<< 9) // EBI: Address 9
+#define AT91_PIO_PSR_A10 (1<<10) // EBI: Address 10
+#define AT91_PIO_PSR_A11 (1<<11) // EBI: Address 11
+#define AT91_PIO_PSR_A12 (1<<12) // EBI: Address 12
+#define AT91_PIO_PSR_A13 (1<<13) // EBI: Address 13
+#define AT91_PIO_PSR_A14 (1<<14) // EBI: Address 14
+#define AT91_PIO_PSR_A15 (1<<15) // EBI: Address 15
+#define AT91_PIO_PSR_A16_BA0 (1<<16) // EBI: Address 16 / SDRAM Bank Sel 0
+#define AT91_PIO_PSR_A17_BA1 (1<<17) // EBI: Address 17 / SDRAM Bank Sel 1
+#define AT91_PIO_PSR_NBS3_CFIOW (1<<18) // EBI: SDRAM Byte Mask 3 /
+ // CompactFlash I/O Write Signal
+#define AT91_PIO_PSR_NCS4_CFCS0 (1<<19) // EBI: Chip Select 4 /
+ // CompactFlash Chip Select 0
+#define AT91_PIO_PSR_NCS2_CFCS1 (1<<20) // EBI: Chip Select 2 /
+ // CompactFlash Chip Select 1
+#define AT91_PIO_PSR_NCS6_CFCE2 (1<<21) // EBI: Chip Select 6 /
+ // CompactFlash Chip Enable 2
+#define AT91_PIO_PSR_NCS5_CFCE1 (1<<22) // EBI: Chip Select 5 /
+ // CompactFlash Chip Enable 1
+#define AT91_PIO_PSR_NWR1_NBS1_CFIOR \
+ (1<<23) // EBI: Write 1 / SDRAM Byte Mask 1 /
+ // CompactFlash I/O Read Signal
+#define AT91_PIO_PSR_SDA10 (1<<24) // EBI: SDRAM Address 10
+#define AT91_PIO_PSR_SDCKE (1<<25) // EBI: SDRAM Clock Enable
+#define AT91_PIO_PSR_NCS1_SDCS (1<<26) // EBI: Chip Select 1 /
+ // SDRAM Controller Chip Select
+#define AT91_PIO_PSR_SDWE (1<<27) // EBI: SDRAM Write Enable
+#define AT91_PIO_PSR_CAS (1<<28) // EBI: SDRAM Column Signal
+#define AT91_PIO_PSR_RAS (1<<29) // EBI: SDRAM Row Signal
+#define AT91_PIO_PSR_D30 (1<<30) // EBI: Data 30
+#define AT91_PIO_PSR_D31 (1<<31) // EBI: Data 31
+
+//PIO Controller B Peripheral A
+#define AT91_TC_TIOA0 AT91_PIN(1,0, 0) // Timer/Counter 0 IO Line A
+#define AT91_TC_TIOB0 AT91_PIN(1,0, 1) // Timer/Counter 0 IO Line B
+#define AT91_USART_SCK0 AT91_PIN(1,0, 2) // USART 0 Serial Clock
+#define AT91_SPI_NPCS3 AT91_PIN(1,0, 3) // SPI Chip Select 3
+#define AT91_TC_TCLK0 AT91_PIN(1,0, 4) // Timer/Counter 0 Clock Input
+#define AT91_SPI_NPCS3X AT91_PIN(1,0, 5) // SPI Chip Select 3 (again)
+#define AT91_PCK_PCK0 AT91_PIN(1,0, 6) // Programmable Clock Output 0
+#define AT91_PWM_PWM3 AT91_PIN(1,0, 7) // Pulse Width Modulation #3
+#define AT91_ADC_ADTRG AT91_PIN(1,0, 8) // ADC Trigger
+#define AT91_SPI_NPCS1X AT91_PIN(1,0, 9) // SPI Chip Select 1
+#define AT91_SPI_NPCS2 AT91_PIN(1,0,10) // SPI Chip Select 2
+#define AT91_PWM_PWM0X AT91_PIN(1,0,11) // Pulse Width Modulation #0
+#define AT91_PIO_PWM_PWM1X AT91_PIN(1,0,12) // Pulse Width Modulation #1
+#define AT91_PIO_PWM_PWM2X AT91_PIN(1,0,13) // Pulse Width Modulation #2
+#define AT91_PIO_PWM_PWM4X AT91_PIN(1,0,14) // Pulse Width Modulation #4
+#define AT91_TC_TIOA1 AT91_PIN(1,0,15) // Timer/Counter 1 IO Line A
+#define AT91_TC_TIOB1 AT91_PIN(1,0,16) // Timer/Counter 1 IO Line B
+#define AT91_PCK_PCK1 AT91_PIN(1,0,17) // Programmable Clock Output 1
+#define AT91_PCK_PCK2 AT91_PIN(1,0,18) // Programmable Clock Output 2
+#define AT91_INT_FIQ AT91_PIN(1,0,19) // Fast Interrupt Request
+#define AT91_INT_IRQ0 AT91_PIN(1,0,20) // Interrupt Request 0
+#define AT91_PCK_PCK1X AT91_PIN(1,0,21) // Programmable Clock Output 1
+#define AT91_SPI_NPCS3XX AT91_PIN(1,0,22) // SPI Chip Select 3 (yet again)
+#define AT91_PWM_PWM0XX AT91_PIN(1,0,23) // Pulse Width Modulation #0
+#define AT91_PWM_PWM1XX AT91_PIN(1,0,24) // Pulse Width Modulation #1
+#define AT91_PWM_PWM2XX AT91_PIN(1,0,25) // Pulse Width Modulation 2
+#define AT91_TC_TIOA2 AT91_PIN(1,0,26) // Timer/Counter 2 IO Line A
+#define AT91_TC_TIOB2 AT91_PIN(1,0,27) // Timer/Counter 2 IO Line B
+#define AT91_TC_TCLK1 AT91_PIN(1,0,28) // External Clock Input 1
+#define AT91_TC_TCLK2 AT91_PIN(1,0,29) // External Clock Input 2
+#define AT91_SPI_NPCS2X AT91_PIN(1,0,30) // SPI Chip Select 2 (again)
+#define AT91_PCK_PCK2X AT91_PIN(1,0,31) // Programmable Clock Output 2
+
+//PIO Controller B Peripheral B
+#define AT91_EBI_A0_NBS0X AT91_PIN(1,1, 0) // EBI: Addr 0 / SDRAM Byte Mask 0
+#define AT91_EBI_A1_NBS2X AT91_PIN(1,1, 1) // EBI: Addr 1 / SDRAM Byte Mask 2
+#define AT91_EBI_A2X AT91_PIN(1,1, 2) // EBI: Addr 2
+#define AT91_EBI_A3X AT91_PIN(1,1, 3) // EBI: Addr 3
+#define AT91_EBI_A4X AT91_PIN(1,1, 4) // EBI: Addr 4
+#define AT91_EBI_A5X AT91_PIN(1,1, 5) // EBI: Addr 5
+#define AT91_EBI_A6X AT91_PIN(1,1, 6) // EBI: Addr 6
+#define AT91_EBI_A7X AT91_PIN(1,1, 7) // EBI: Addr 7
+#define AT91_EBI_A8X AT91_PIN(1,1, 8) // EBI: Addr 8
+#define AT91_EBI_A9X AT91_PIN(1,1, 9) // EBI: Addr 9
+#define AT91_EBI_A10X AT91_PIN(1,1,10) // EBI: Addr 10
+#define AT91_EBI_A11X AT91_PIN(1,1,11) // EBI: Addr 11
+#define AT91_EBI_A12X AT91_PIN(1,1,12) // EBI: Addr 12
+#define AT91_EBI_A13X AT91_PIN(1,1,13) // EBI: Addr 13
+#define AT91_EBI_A14X AT91_PIN(1,1,14) // EBI: Addr 14
+#define AT91_EBI_A15X AT91_PIN(1,1,15) // EBI: Addr 15
+#define AT91_EBI_A16_BA0X AT91_PIN(1,1,16) // EBI: Addr 16 /
+ // SDRAM Bank Select 0
+#define AT91_EBI_A17_BA1X AT91_PIN(1,1,17) // EBI: Addr 17 /
+ // SDRAM Bank Select 1
+#define AT91_EBI_D16 AT91_PIN(1,1,18) // EBI: Data 16
+#define AT91_EBI_D17 AT91_PIN(1,1,19) // EBI: Data 17
+#define AT91_EBI_D18 AT91_PIN(1,1,20) // EBI: Data 18
+#define AT91_EBI_D19 AT91_PIN(1,1,21) // EBI: Data 19
+#define AT91_EBI_D20 AT91_PIN(1,1,22) // EBI: Data 20
+#define AT91_EBI_D21 AT91_PIN(1,1,23) // EBI: Data 21
+#define AT91_EBI_D22 AT91_PIN(1,1,24) // EBI: Data 22
+#define AT91_EBI_D23 AT91_PIN(1,1,25) // EBI: Data 23
+#define AT91_EBI_D24 AT91_PIN(1,1,26) // EBI: Data 24
+#define AT91_EBI_D25 AT91_PIN(1,1,27) // EBI: Data 25
+#define AT91_EBI_D26 AT91_PIN(1,1,28) // EBI: Data 26
+#define AT91_EBI_D27 AT91_PIN(1,1,29) // EBI: Data 27
+#define AT91_EBI_D28 AT91_PIN(1,1,30) // EBI: Data 28
+#define AT91_EBI_D29 AT91_PIN(1,1,31) // EBI: Data 29
+
+//PIO Controller B Peripheral A
+#define AT91_PIO_PSR_TIOA0 (1<< 0) // Timer/Counter 0 IO Line A
+#define AT91_PIO_PSR_TIOB0 (1<< 1) // Timer/Counter 0 IO Line B
+#define AT91_PIO_PSR_SCK0 (1<< 2) // USART 0 Serial Clock
+#define AT91_PIO_PSR_NPCS3 (1<< 3) // SPI Chip Select 3
+#define AT91_PIO_PSR_TCLK0 (1<< 4) // Timer/Counter 0 Clock Input
+#define AT91_PIO_PSR_NPCS3X (1<< 5) // SPI Chip Select 3 (again)
+#define AT91_PIO_PSR_PCK0 (1<< 6) // Programmable Clock Output 0
+#define AT91_PIO_PSR_PWM3 (1<< 7) // Pulse Width Modulation #3
+#define AT91_PIO_PSR_ADTRG (1<< 8) // ADC Trigger
+#define AT91_PIO_PSR_NPCS1X (1<< 9) // SPI Chip Select 1
+#define AT91_PIO_PSR_NPCS2 (1<<10) // SPI Chip Select 2
+#define AT91_PIO_PSR_PWM0X (1<<11) // Pulse Width Modulation #0
+#define AT91_PIO_PSR_PWM1X (1<<12) // Pulse Width Modulation #1
+#define AT91_PIO_PSR_PWM2X (1<<13) // Pulse Width Modulation #2
+#define AT91_PIO_PSR_PWM4X (1<<14) // Pulse Width Modulation #4
+#define AT91_PIO_PSR_TIOA1 (1<<15) // Timer/Counter 1 IO Line A
+#define AT91_PIO_PSR_TIOB1 (1<<16) // Timer/Counter 1 IO Line B
+#define AT91_PIO_PSR_PCK1 (1<<17) // Programmable Clock Output 1
+#define AT91_PIO_PSR_PCK2 (1<<18) // Programmable Clock Output 2
+#define AT91_PIO_PSR_FIQ (1<<19) // Fast Interrupt Request
+#define AT91_PIO_PSR_IRQ0 (1<<20) // Interrupt Request 0
+#define AT91_PIO_PSR_PCK1X (1<<21) // Programmable Clock Output 1
+#define AT91_PIO_PSR_NPCS3XX (1<<22) // SPI Chip Select 3 (yet again)
+#define AT91_PIO_PSR_PWM0XX (1<<23) // Pulse Width Modulation #0
+#define AT91_PIO_PSR_PWM1XX (1<<24) // Pulse Width Modulation #1
+#define AT91_PIO_PSR_PWM2XX (1<<25) // Pulse Width Modulation 2
+#define AT91_PIO_PSR_TIOA2 (1<<26) // Timer/Counter 2 IO Line A
+#define AT91_PIO_PSR_TIOB2 (1<<27) // Timer/Counter 2 IO Line B
+#define AT91_PIO_PSR_TCLK1 (1<<28) // External Clock Input 1
+#define AT91_PIO_PSR_TCLK2 (1<<29) // External Clock Input 2
+#define AT91_PIO_PSR_NPCS2X (1<<30) // SPI Chip Select 2 (again)
+#define AT91_PIO_PSR_PCK2X (1<<31) // Programmable Clock Output 2
+
+//PIO Controller B Peripheral B
+#define AT91_PIO_PSR_NBS0X (1<< 0) // EBI: Address 0 / SDRAM Byte Mask 0
+#define AT91_PIO_PSR_NBS2X (1<< 1) // EBI: Address 1 / SDRAM Byte Mask 2
+#define AT91_PIO_PSR_A2X (1<< 2) // EBI: Address 2
+#define AT91_PIO_PSR_A3X (1<< 3) // EBI: Address 3
+#define AT91_PIO_PSR_A4X (1<< 4) // EBI: Address 4
+#define AT91_PIO_PSR_A5X (1<< 5) // EBI: Address 5
+#define AT91_PIO_PSR_A6X (1<< 6) // EBI: Address 6
+#define AT91_PIO_PSR_A7X (1<< 7) // EBI: Address 7
+#define AT91_PIO_PSR_A8X (1<< 8) // EBI: Address 8
+#define AT91_PIO_PSR_A9X (1<< 9) // EBI: Address 9
+#define AT91_PIO_PSR_A10X (1<<10) // EBI: Address 10
+#define AT91_PIO_PSR_A11X (1<<11) // EBI: Address 11
+#define AT91_PIO_PSR_A12X (1<<12) // EBI: Address 12
+#define AT91_PIO_PSR_A13X (1<<13) // EBI: Address 13
+#define AT91_PIO_PSR_A14X (1<<14) // EBI: Address 14
+#define AT91_PIO_PSR_A15X (1<<15) // EBI: Address 15
+#define AT91_PIO_PSR_BA0X (1<<16) // EBI: Address 16 /
+ // SDRAM Bank Select 0
+#define AT91_PIO_PSR_BA1X (1<<17) // EBI: Address 17 /
+ // SDRAM Bank Select 1
+#define AT91_PIO_PSR_D16 (1<<18) // EBI: Data 16
+#define AT91_PIO_PSR_D17 (1<<19) // EBI: Data 17
+#define AT91_PIO_PSR_D18 (1<<20) // EBI: Data 18
+#define AT91_PIO_PSR_D19 (1<<21) // EBI: Data 19
+#define AT91_PIO_PSR_D20 (1<<22) // EBI: Data 20
+#define AT91_PIO_PSR_D21 (1<<23) // EBI: Data 21
+#define AT91_PIO_PSR_D22 (1<<24) // EBI: Data 22
+#define AT91_PIO_PSR_D23 (1<<25) // EBI: Data 23
+#define AT91_PIO_PSR_D24 (1<<26) // EBI: Data 24
+#define AT91_PIO_PSR_D25 (1<<27) // EBI: Data 25
+#define AT91_PIO_PSR_D26 (1<<28) // EBI: Data 26
+#define AT91_PIO_PSR_D27 (1<<29) // EBI: Data 27
+#define AT91_PIO_PSR_D28 (1<<30) // EBI: Data 28
+#define AT91_PIO_PSR_D29 (1<<31) // EBI: Data 29
+
+//PIO Controller C Peripheral A
+#define AT91_EBI_D0 AT91_PIN(2,0, 0) // EBI: Data 0
+#define AT91_EBI_D1 AT91_PIN(2,0, 1) // EBI: Data 1
+#define AT91_EBI_D2 AT91_PIN(2,0, 2) // EBI: Data 2
+#define AT91_EBI_D3 AT91_PIN(2,0, 3) // EBI: Data 3
+#define AT91_EBI_D4 AT91_PIN(2,0, 4) // EBI: Data 4
+#define AT91_EBI_D5 AT91_PIN(2,0, 5) // EBI: Data 5
+#define AT91_EBI_D6 AT91_PIN(2,0, 6) // EBI: Data 6
+#define AT91_EBI_D7 AT91_PIN(2,0, 7) // EBI: Data 7
+#define AT91_EBI_D8 AT91_PIN(2,0, 8) // EBI: Data 8
+#define AT91_EBI_D9 AT91_PIN(2,0, 9) // EBI: Data 9
+#define AT91_EBI_D10 AT91_PIN(2,0,10) // EBI: Data 10
+#define AT91_EBI_D11 AT91_PIN(2,0,11) // EBI: Data 11
+#define AT91_EBI_D12 AT91_PIN(2,0,12) // EBI: Data 12
+#define AT91_EBI_D13 AT91_PIN(2,0,13) // EBI: Data 13
+#define AT91_EBI_D14 AT91_PIN(2,0,14) // EBI: Data 14
+#define AT91_EBI_D15 AT91_PIN(2,0,15) // EBI: Data 15
+#define AT91_EBI_A18 AT91_PIN(2,0,16) // EBI: Address 18
+#define AT91_EBI_A19 AT91_PIN(2,0,17) // EBI: Address 19
+#define AT91_EBI_A20 AT91_PIN(2,0,18) // EBI: Address 20
+#define AT91_EBI_A21_NANDALE \
+ AT91_PIN(2,0,19) // EBI: Address 21 /
+ // NAND Flash Address Line Enable
+#define AT91_EBI_A22_REG_NANDCLE \
+ AT91_PIN(2,0,20) // EBI: Address 22 /
+ // CompactFlash REG Signal /
+ // NAND Flash Command Line Enable
+#define AT91_EBI_CFNRW AT91_PIN(2,0,23) // EBI: CF Read Not Write Signal
+
+//PIO Controller C Peripheral B
+#define AT91_USART_RTS1X AT91_PIN(2,1, 8) // USART 1 Ready To Send
+#define AT91_USART_DTR1X AT91_PIN(2,1, 9) // USART 1 Data Terminal Ready
+#define AT91_PCK_PCK0X AT91_PIN(2,1,10) // Programmable Clock Output 0
+#define AT91_PCK_PCK1XX AT91_PIN(2,1,11) // Programmable Clock Output 1
+#define AT91_PCK_PCK2XX AT91_PIN(2,1,12) // Programmable Clock Output 2
+#define AT91_SPI_NPCS1XX AT91_PIN(2,1,14) // SPI Chip Select 1
+#define AT91_EBI_NCS3_NANDCS \
+ AT91_PIN(2,1,15) // EBI: Chip Select 3 /
+ // NAND Flash Chip Select
+#define AT91_EBI_NWAIT AT91_PIN(2,1,16) // EBI: External Wait Signal
+#define AT91_EBI_NANDOE AT91_PIN(2,1,17) // EBI: NAND Flash Output Enable
+#define AT91_EBI_NANDWE AT91_PIN(2,1,18) // EBI: NAND Flash Write Enable
+#define AT91_EBI_NCS7 AT91_PIN(2,1,20) // EBI: Chip Select 7
+#define AT91_EBI_NWR0_NWE_CFWE \
+ AT91_PIN(2,1,21) // EBI: Write 0 /
+ // SMC Write Enable /
+ // CompactFlash Write Enable
+#define AT91_EBI_NRD_CFOE AT91_PIN(2,1,22) // EBI: SMC Read Enable /
+ // CompactFlash Output Enable
+#define AT91_EBI_NCS0 AT91_PIN(2,1,23) // EBI: Chip Select 0
+
+//PIO Controller C Peripheral A
+#define AT91_PIO_PSR_D0 (1<< 0) // EBI: Data 0
+#define AT91_PIO_PSR_D1 (1<< 1) // EBI: Data 1
+#define AT91_PIO_PSR_D2 (1<< 2) // EBI: Data 2
+#define AT91_PIO_PSR_D3 (1<< 3) // EBI: Data 3
+#define AT91_PIO_PSR_D4 (1<< 4) // EBI: Data 4
+#define AT91_PIO_PSR_D5 (1<< 5) // EBI: Data 5
+#define AT91_PIO_PSR_D6 (1<< 6) // EBI: Data 6
+#define AT91_PIO_PSR_D7 (1<< 7) // EBI: Data 7
+#define AT91_PIO_PSR_D8 (1<< 8) // EBI: Data 8
+#define AT91_PIO_PSR_D9 (1<< 9) // EBI: Data 9
+#define AT91_PIO_PSR_D10 (1<<10) // EBI: Data 10
+#define AT91_PIO_PSR_D11 (1<<11) // EBI: Data 11
+#define AT91_PIO_PSR_D12 (1<<12) // EBI: Data 12
+#define AT91_PIO_PSR_D13 (1<<13) // EBI: Data 13
+#define AT91_PIO_PSR_D14 (1<<14) // EBI: Data 14
+#define AT91_PIO_PSR_D15 (1<<15) // EBI: Data 15
+#define AT91_PIO_PSR_A18 (1<<16) // EBI: Address 18
+#define AT91_PIO_PSR_A19 (1<<17) // EBI: Address 19
+#define AT91_PIO_PSR_A20 (1<<18) // EBI: Address 20
+#define AT91_PIO_PSR_NANDALE (1<<19) // EBI: Address 21 /
+ // NAND Flash Address Line Enable
+#define AT91_PIO_PSR_NANDCLE (1<<20) // EBI: Address 22 /
+ // CompactFlash REG Signal /
+ // NAND Flash Command Line Enable
+#define AT91_PIO_PSR_CFNRW (1<<23) // EBI: CF Read Not Write Signal
+
+//PIO Controller C Peripheral B
+#define AT91_PIO_PSR_RTS1X (1<< 8) // USART 1 Ready To Send
+#define AT91_PIO_PSR_DTR1X (1<< 9) // USART 1 Data Terminal Ready
+#define AT91_PIO_PSR_PCK0X (1<<10) // Programmable Clock Output 0
+#define AT91_PIO_PSR_PCK1XX (1<<11) // Programmable Clock Output 1
+#define AT91_PIO_PSR_PCK2XX (1<<12) // Programmable Clock Output 2
+#define AT91_PIO_PSR_NPCS1XX (1<<14) // SPI Chip Select 1
+#define AT91_PIO_PSR_NANDCS (1<<15) // EBI: Chip Select 3 /
+ // NAND Flash Chip Select
+#define AT91_PIO_PSR_NWAIT (1<<16) // EBI: External Wait Signal
+#define AT91_PIO_PSR_NANDOE (1<<17) // EBI: NAND Flash Output Enable
+#define AT91_PIO_PSR_NANDWE (1<<18) // EBI: NAND Flash Write Enable
+#define AT91_PIO_PSR_NCS7 (1<<20) // EBI: Chip Select 7
+#define AT91_PIO_PSR_CFWE (1<<21) // EBI: Write 0 / SMC Write Enable /
+ // CompactFlash Write Enable
+#define AT91_PIO_PSR_CFOE (1<<22) // EBI: SMC Read Enable /
+ // CompactFlash Output Enable
+#define AT91_PIO_PSR_NCS0 (1<<23) // EBI: Chip Select 0
+
+#endif // CYGHWR_HAL_ARM_AT91SAM7SE
+
+#else
+#define AT91_TC_TCLK0 AT91_PIN(0,0, 0) // Timer #0 clock
+#define AT91_TC_TIOA0 AT91_PIN(0,0, 1) // Timer #0 signal A
+#define AT91_TC_TIOB0 AT91_PIN(0,0, 2) // Timer #0 signal B
+#define AT91_TC_TCLK1 AT91_PIN(0,0, 3) // Timer #1 clock
+#define AT91_TC_TIOA1 AT91_PIN(0,0, 4) // Timer #1 signal A
+#define AT91_TC_TIOB1 AT91_PIN(0,0, 5) // Timer #1 signal B
+#define AT91_TC_TCLK2 AT91_PIN(0,0, 6) // Timer #2 clock
+#define AT91_TC_TIOA2 AT91_PIN(0,0, 7) // Timer #2 signal A
+#define AT91_TC_TIOB2 AT91_PIN(0,0, 8) // Timer #2 signal B
+#define AT91_INT_IRQ0 AT91_PIN(0,0, 9) // IRQ #0
+#define AT91_INT_IRQ1 AT91_PIN(0,0,10) // IRQ #1
+#define AT91_INT_IRQ2 AT91_PIN(0,0,11) // IRQ #2
+#define AT91_INT_FIQ AT91_PIN(0,0,12) // FIQ
+#define AT91_USART_SCK0 AT91_PIN(0,0,13) // Serial port #0 clock
+#define AT91_USART_TXD0 AT91_PIN(0,0,14) // Serial port #0 TxD
+#define AT91_USART_RXD0 AT91_PIN(0,0,15) // Serial port #0 RxD
+#define AT91_USART_SCK1 AT91_PIN(0,0,20) // Serial port #1 clock
+#define AT91_USART_TXD1 AT91_PIN(0,0,21) // Serial port #1 TxD
+#define AT91_USART_RXD1 AT91_PIN(0,0,22) // Serial port #1 RxD
+#define AT91_CLK_MCKO AT91_PIN(0,0,25) // Master clock out
+
+#define AT91_PIO_PSR_TCLK0 0x00000001 // Timer #0 clock
+#define AT91_PIO_PSR_TIOA0 0x00000002 // Timer #0 signal A
+#define AT91_PIO_PSR_TIOB0 0x00000004 // Timer #0 signal B
+#define AT91_PIO_PSR_TCLK1 0x00000008 // Timer #1 clock
+#define AT91_PIO_PSR_TIOA1 0x00000010 // Timer #1 signal A
+#define AT91_PIO_PSR_TIOB1 0x00000020 // Timer #1 signal B
+#define AT91_PIO_PSR_TCLK2 0x00000040 // Timer #2 clock
+#define AT91_PIO_PSR_TIOA2 0x00000080 // Timer #2 signal A
+#define AT91_PIO_PSR_TIOB2 0x00000100 // Timer #2 signal B
+#define AT91_PIO_PSR_IRQ0 0x00000200 // IRQ #0
+#define AT91_PIO_PSR_IRQ1 0x00000400 // IRQ #1
+#define AT91_PIO_PSR_IRQ2 0x00000800 // IRQ #2
+#define AT91_PIO_PSR_FIQ 0x00001000 // FIQ
+#define AT91_PIO_PSR_SCK0 0x00002000 // Serial port #0 clock
+#define AT91_PIO_PSR_TXD0 0x00004000 // Serial port #0 TxD
+#define AT91_PIO_PSR_RXD0 0x00008000 // Serial port #0 RxD
+#define AT91_PIO_PSR_P16 0x00010000 // PIO port #16
+#define AT91_PIO_PSR_P17 0x00020000 // PIO port #17
+#define AT91_PIO_PSR_P18 0x00040000 // PIO port #18
+#define AT91_PIO_PSR_P19 0x00080000 // PIO port #19
+#define AT91_PIO_PSR_SCK1 0x00100000 // Serial port #1 clock
+#define AT91_PIO_PSR_TXD1 0x00200000 // Serial port #1 TxD
+#define AT91_PIO_PSR_RXD1 0x00400000 // Serial port #1 RxD
+#define AT91_PIO_PSR_P23 0x00800000 // PIO port #23
+#define AT91_PIO_PSR_P24 0x01000000 // PIO port #24
+#define AT91_PIO_PSR_MCKO 0x02000000 // Master clock out
+#define AT91_PIO_PSR_NCS2 0x04000000 // Chip select #2
+#define AT91_PIO_PSR_NCS3 0x08000000 // Chip select #3
+#define AT91_PIO_PSR_CS7_A20 0x10000000 // Chip select #7 or A20
+#define AT91_PIO_PSR_CS6_A21 0x20000000 // Chip select #6 or A21
+#define AT91_PIO_PSR_CS5_A22 0x40000000 // Chip select #5 or A22
+#define AT91_PIO_PSR_CS4_A23 0x80000000 // Chip select #4 or A23
+#endif
+
+#define AT91_PIO_OER 0x10 // Output enable
+#define AT91_PIO_ODR 0x14 // Output disable
+#define AT91_PIO_OSR 0x18 // Output status
+#define AT91_PIO_IFER 0x20 // Input Filter enable
+#define AT91_PIO_IFDR 0x24 // Input Filter disable
+#define AT91_PIO_IFSR 0x28 // Input Filter status
+#define AT91_PIO_SODR 0x30 // Set out bits
+#define AT91_PIO_CODR 0x34 // Clear out bits
+#define AT91_PIO_ODSR 0x38 // Output data status
+#define AT91_PIO_PDSR 0x3C // Pin data status
+#define AT91_PIO_IER 0x40 // Interrupt enable
+#define AT91_PIO_IDR 0x44 // Interrupt disable
+#define AT91_PIO_IMR 0x48 // Interrupt mask
+#define AT91_PIO_ISR 0x4C // Interrupt status
+
+#if defined(CYGHWR_HAL_ARM_AT91SAM7)
+#define AT91_PIO_MDER 0x50 // Multi-drive Enable Register
+#define AT91_PIO_MDDR 0x54 // Multi-drive Disable Register
+#define AT91_PIO_MDSR 0x58 // Multi-drive Status Register
+#define AT91_PIO_PPUDR 0x60 // Pad Pull-up Disable Register
+#define AT91_PIO_PPUER 0x64 // Pad Pull-up Enable Register
+#define AT91_PIO_PPUSR 0x68 // Pad Pull-Up Status Register
+#define AT91_PIO_ASR 0x70 // Select A Register
+#define AT91_PIO_BSR 0x74 // Select B Regsiter
+#define AT91_PIO_ABS 0x78 // AB Select Regsiter
+#define AT91_PIO_OWER 0xa0 // Output Write Enable Register
+#define AT91_PIO_OWDR 0xa4 // Output Write Disable Register
+#define AT91_PIO_OWSR 0xa8 // Output Write Status Register
+#endif // CYGHWR_HAL_ARM_AT91SAM7
+
+//=============================================================================
+// Advanced Interrupt Controller (AIC)
+
+#ifndef AT91_AIC
+#define AT91_AIC 0xFFFFF000
+#endif
+
+#define AT91_AIC_SMR0 ((0*4)+0x000)
+#define AT91_AIC_SMR1 ((1*4)+0x000)
+#define AT91_AIC_SMR2 ((2*4)+0x000)
+#define AT91_AIC_SMR3 ((3*4)+0x000)
+#define AT91_AIC_SMR4 ((4*4)+0x000)
+#define AT91_AIC_SMR5 ((5*4)+0x000)
+#define AT91_AIC_SMR6 ((6*4)+0x000)
+#define AT91_AIC_SMR7 ((7*4)+0x000)
+#define AT91_AIC_SMR8 ((8*4)+0x000)
+#define AT91_AIC_SMR9 ((9*4)+0x000)
+#define AT91_AIC_SMR10 ((10*4)+0x000)
+#define AT91_AIC_SMR11 ((11*4)+0x000)
+#define AT91_AIC_SMR12 ((12*4)+0x000)
+#define AT91_AIC_SMR13 ((13*4)+0x000)
+#define AT91_AIC_SMR14 ((14*4)+0x000)
+#define AT91_AIC_SMR15 ((15*4)+0x000)
+#define AT91_AIC_SMR16 ((16*4)+0x000)
+#define AT91_AIC_SMR17 ((17*4)+0x000)
+#define AT91_AIC_SMR18 ((18*4)+0x000)
+#define AT91_AIC_SMR19 ((19*4)+0x000)
+#define AT91_AIC_SMR20 ((20*4)+0x000)
+#define AT91_AIC_SMR21 ((21*4)+0x000)
+#define AT91_AIC_SMR22 ((22*4)+0x000)
+#define AT91_AIC_SMR23 ((23*4)+0x000)
+#define AT91_AIC_SMR24 ((24*4)+0x000)
+#define AT91_AIC_SMR25 ((25*4)+0x000)
+#define AT91_AIC_SMR26 ((26*4)+0x000)
+#define AT91_AIC_SMR27 ((27*4)+0x000)
+#define AT91_AIC_SMR28 ((28*4)+0x000)
+#define AT91_AIC_SMR29 ((29*4)+0x000)
+#define AT91_AIC_SMR30 ((30*4)+0x000)
+#define AT91_AIC_SMR31 ((31*4)+0x000)
+#define AT91_AIC_SMR_LEVEL_LOW (0<<5)
+#define AT91_AIC_SMR_LEVEL_HI (2<<5)
+#define AT91_AIC_SMR_EDGE_NEG (1<<5)
+#define AT91_AIC_SMR_EDGE_POS (3<<5)
+#define AT91_AIC_SMR_PRIORITY 0x07
+#define AT91_AIC_SVR0 ((0*4)+0x080)
+#define AT91_AIC_SVR1 ((1*4)+0x080)
+#define AT91_AIC_SVR2 ((2*4)+0x080)
+#define AT91_AIC_SVR3 ((3*4)+0x080)
+#define AT91_AIC_SVR4 ((4*4)+0x080)
+#define AT91_AIC_SVR5 ((5*4)+0x080)
+#define AT91_AIC_SVR6 ((6*4)+0x080)
+#define AT91_AIC_SVR7 ((7*4)+0x080)
+#define AT91_AIC_SVR8 ((8*4)+0x080)
+#define AT91_AIC_SVR9 ((9*4)+0x080)
+#define AT91_AIC_SVR10 ((10*4)+0x080)
+#define AT91_AIC_SVR11 ((11*4)+0x080)
+#define AT91_AIC_SVR12 ((12*4)+0x080)
+#define AT91_AIC_SVR13 ((13*4)+0x080)
+#define AT91_AIC_SVR14 ((14*4)+0x080)
+#define AT91_AIC_SVR15 ((15*4)+0x080)
+#define AT91_AIC_SVR16 ((16*4)+0x080)
+#define AT91_AIC_SVR17 ((17*4)+0x080)
+#define AT91_AIC_SVR18 ((18*4)+0x080)
+#define AT91_AIC_SVR19 ((19*4)+0x080)
+#define AT91_AIC_SVR20 ((20*4)+0x080)
+#define AT91_AIC_SVR21 ((21*4)+0x080)
+#define AT91_AIC_SVR22 ((22*4)+0x080)
+#define AT91_AIC_SVR23 ((23*4)+0x080)
+#define AT91_AIC_SVR24 ((24*4)+0x080)
+#define AT91_AIC_SVR25 ((25*4)+0x080)
+#define AT91_AIC_SVR26 ((26*4)+0x080)
+#define AT91_AIC_SVR27 ((27*4)+0x080)
+#define AT91_AIC_SVR28 ((28*4)+0x080)
+#define AT91_AIC_SVR29 ((29*4)+0x080)
+#define AT91_AIC_SVR30 ((30*4)+0x080)
+#define AT91_AIC_SVR31 ((31*4)+0x080)
+#define AT91_AIC_IVR 0x100
+#define AT91_AIC_FVR 0x104
+#define AT91_AIC_ISR 0x108
+#define AT91_AIC_IPR 0x10C
+#define AT91_AIC_IMR 0x110
+#define AT91_AIC_CISR 0x114
+#define AT91_AIC_IECR 0x120
+#define AT91_AIC_IDCR 0x124
+#define AT91_AIC_ICCR 0x128
+#define AT91_AIC_ISCR 0x12C
+#define AT91_AIC_EOI 0x130
+#define AT91_AIC_SVR 0x134
+
+#ifdef CYGHWR_HAL_ARM_AT91SAM7
+#define AT91_AIC_DCR 0x138 // Debug Control Register
+#define AT91_AIC_FFER 0x140 // Fast Forcing Enable Register
+#define AT91_AIC_FFDR 0x144 // Fast Forcing Disable Register
+#define AT91_AIC_FFSR 0x148 // Fast Forcing Status Register
+#endif // CYGHWR_HAL_ARM_AT91SAM7
+
+//=============================================================================
+// Timer / counter
+
+#ifndef AT91_TC
+#define AT91_TC 0xFFFE0000
+#endif
+
+#define AT91_TC_TC0 0x00
+#define AT91_TC_TC1 0x40
+#define AT91_TC_TC2 0x80
+#define AT91_TC_TC_SIZE 0x40
+
+#define AT91_TC_CCR 0x00
+#define AT91_TC_CCR_CLKEN 0x01
+#define AT91_TC_CCR_CLKDIS 0x02
+#define AT91_TC_CCR_TRIG 0x04
+// Channel Mode Register
+#define AT91_TC_CMR 0x04
+#define AT91_TC_CMR_CLKS 0
+#define AT91_TC_CMR_CLKS_MCK2 (0<<0)
+#define AT91_TC_CMR_CLKS_MCK8 (1<<0)
+#define AT91_TC_CMR_CLKS_MCK32 (2<<0)
+#define AT91_TC_CMR_CLKS_MCK128 (3<<0)
+#define AT91_TC_CMR_CLKS_MCK1024 (4<<0)
+#define AT91_TC_CMR_CLKS_XC0 (5<<0)
+#define AT91_TC_CMR_CLKS_XC1 (6<<0)
+#define AT91_TC_CMR_CLKS_XC2 (7<<0)
+#define AT91_TC_CMR_CLKI (1<<3)
+#define AT91_TC_CMR_BURST_NONE (0<<4)
+#define AT91_TC_CMR_BURST_XC0 (1<<4)
+#define AT91_TC_CMR_BURST_XC1 (2<<4)
+#define AT91_TC_CMR_BURST_XC2 (3<<4)
+// Capture mode definitions
+#define AT91_TC_CMR_LDBSTOP (1<<6)
+#define AT91_TC_CMR_LDBDIS (1<<7)
+#define AT91_TC_CMR_TRIG_NONE (0<<8)
+#define AT91_TC_CMR_TRIG_NEG (1<<8)
+#define AT91_TC_CMR_TRIG_POS (2<<8)
+#define AT91_TC_CMR_TRIG_BOTH (3<<8)
+#define AT91_TC_CMR_EXT_TRIG_TIOB (0<<10)
+#define AT91_TC_CMR_EXT_TRIG_TIOA (1<<10)
+#define AT91_TC_CMR_CPCTRG (1<<14)
+#define AT91_TC_CMR_LDRA_NONE (0<<16)
+#define AT91_TC_CMR_LDRA_TIOA_NEG (1<<16)
+#define AT91_TC_CMR_LDRA_TIOA_POS (2<<16)
+#define AT91_TC_CMR_LDRA_TIOA_BOTH (3<<16)
+#define AT91_TC_CMR_LDRB_NONE (0<<18)
+#define AT91_TC_CMR_LDRB_TIOA_NEG (1<<18)
+#define AT91_TC_CMR_LDRB_TIOA_POS (2<<18)
+#define AT91_TC_CMR_LDRB_TIOA_BOTH (3<<18)
+// Waveform mode definitions
+#define AT91_TC_CMR_CPCSTOP (1<<6)
+#define AT91_TC_CMR_CPCDIS (1<<7)
+#define AT91_TC_CMR_EEVTEDG_NONE (0<<8)
+#define AT91_TC_CMR_EEVTEDG_NEG (1<<8)
+#define AT91_TC_CMR_EEVTEDG_POS (2<<8)
+#define AT91_TC_CMR_EEVTEDG_BOTH (3<<8)
+#define AT91_TC_CMR_EEVT_TIOB (0<<10)
+#define AT91_TC_CMR_EEVT_XC0 (1<<10)
+#define AT91_TC_CMR_EEVT_XC1 (2<<10)
+#define AT91_TC_CMR_EEVT_XC2 (3<<10)
+#define AT91_TC_CMR_ENETRG (1<<12)
+#define AT91_TC_CMR_CPCTRG (1<<14)
+#define AT91_TC_CMR_WAVE (1<<15)
+#define AT91_TC_CMR_ACPA_NONE (0<<16)
+#define AT91_TC_CMR_ACPA_SET (1<<16)
+#define AT91_TC_CMR_ACPA_CLEAR (2<<16)
+#define AT91_TC_CMR_ACPA_TOGGLE (3<<16)
+#define AT91_TC_CMR_ACPC_NONE (0<<18)
+#define AT91_TC_CMR_ACPC_SET (1<<18)
+#define AT91_TC_CMR_ACPC_CLEAR (2<<18)
+#define AT91_TC_CMR_ACPC_TOGGLE (3<<18)
+#define AT91_TC_CMR_AEEVT_NONE (0<<20)
+#define AT91_TC_CMR_AEEVT_SET (1<<20)
+#define AT91_TC_CMR_AEEVT_CLEAR (2<<20)
+#define AT91_TC_CMR_AEEVT_TOGGLE (3<<20)
+#define AT91_TC_CMR_ASWTRG_NONE (0<<22)
+#define AT91_TC_CMR_ASWTRG_SET (1<<22)
+#define AT91_TC_CMR_ASWTRG_CLEAR (2<<22)
+#define AT91_TC_CMR_ASWTRG_TOGGLE (3<<22)
+#define AT91_TC_CMR_BCPB_NONE (0<<24)
+#define AT91_TC_CMR_BCPB_SET (1<<24)
+#define AT91_TC_CMR_BCPB_CLEAR (2<<24)
+#define AT91_TC_CMR_BCPB_TOGGLE (3<<24)
+#define AT91_TC_CMR_BCPC_NONE (0<<26)
+#define AT91_TC_CMR_BCPC_SET (1<<26)
+#define AT91_TC_CMR_BCPC_CLEAR (2<<26)
+#define AT91_TC_CMR_BCPC_TOGGLE (3<<26)
+#define AT91_TC_CMR_BEEVT_NONE (0<<28)
+#define AT91_TC_CMR_BEEVT_SET (1<<28)
+#define AT91_TC_CMR_BEEVT_CLEAR (2<<28)
+#define AT91_TC_CMR_BEEVT_TOGGLE (3<<28)
+#define AT91_TC_CMR_BSWTRG_NONE (0<<30)
+#define AT91_TC_CMR_BSWTRG_SET (1<<30)
+#define AT91_TC_CMR_BSWTRG_CLEAR (2<<30)
+#define AT91_TC_CMR_BSWTRG_TOGGLE (3<<30)
+
+#define AT91_TC_CV 0x10
+#define AT91_TC_RA 0x14
+#define AT91_TC_RB 0x18
+#define AT91_TC_RC 0x1C
+#define AT91_TC_SR 0x20
+#define AT91_TC_SR_COVF (1<<0) // Counter overrun
+#define AT91_TC_SR_LOVR (1<<1) // Load overrun
+#define AT91_TC_SR_CPA (1<<2) // RA compare
+#define AT91_TC_SR_CPB (1<<3) // RB compare
+#define AT91_TC_SR_CPC (1<<4) // RC compare
+#define AT91_TC_SR_LDRA (1<<5) // Load A status
+#define AT91_TC_SR_LDRB (1<<6) // Load B status
+#define AT91_TC_SR_EXT (1<<7) // External trigger
+#define AT91_TC_SR_CLKSTA (1<<16) // Clock enable/disable status
+#define AT91_TC_SR_MTIOA (1<<17) // TIOA mirror
+#define AT91_TC_SR_MTIOB (1<<18) // TIOB mirror
+#define AT91_TC_IER 0x24
+#define AT91_TC_IER_COVF (1<<0) // Counter overrun
+#define AT91_TC_IER_LOVR (1<<1) // Load overrun
+#define AT91_TC_IER_CPA (1<<2) // RA compare
+#define AT91_TC_IER_CPB (1<<3) // RB compare
+#define AT91_TC_IER_CPC (1<<4) // RC compare
+#define AT91_TC_IER_LDRA (1<<5) // Load A status
+#define AT91_TC_IER_LDRB (1<<6) // Load B status
+#define AT91_TC_IER_EXT (1<<7) // External trigger
+#define AT91_TC_IDR 0x28
+#define AT91_TC_IMR 0x2C
+#define AT91_TC_TC1 0x40
+#define AT91_TC_TC2 0x80
+#define AT91_TC_BCR 0xC0
+#define AT91_TC_BCR_SYNC 0x01
+#define AT91_TC_BMR 0xC4
+#define AT91_TC_BMR_MASK (0x3f)
+#define AT91_TC_BMR_TC0XC0S_TCLK0 (0 << 0) // XC0S = TCLK0
+#define AT91_TC_BMR_TC0XC0S_NONE (1 << 0) // XC0S = none
+#define AT91_TC_BMR_TC0XC0S_TIOA1 (2 << 0) // XC0S = TIOA1
+#define AT91_TC_BMR_TC0XC0S_TIOA2 (3 << 0) // XC0S = TIOA2
+#define AT91_TC_BMR_TC1XC1S_TCLK1 (0 << 2) // XC1S = TCLK1
+#define AT91_TC_BMR_TC1XC1S_NONE (1 << 2) // XC1S = none
+#define AT91_TC_BMR_TC1XC1S_TIOA0 (2 << 2) // XC1S = TIOA0
+#define AT91_TC_BMR_TC1XC1S_TIOA2 (3 << 2) // XC1S = TIOA2
+#define AT91_TC_BMR_TC2XC2S_TCLK2 (0 << 4) // XC2S = TCLK2
+#define AT91_TC_BMR_TC2XC2S_NONE (1 << 4) // XC2S = none
+#define AT91_TC_BMR_TC2XC2S_TIOA0 (2 << 4) // XC2S = TIOA0
+#define AT91_TC_BMR_TC2XC2S_TIOA1 (3 << 4) // XC2S = TIOA1
+
+
+
+//=============================================================================
+// External Bus Interface
+
+#if defined(CYGHWR_HAL_ARM_AT91_R40807) || \
+ defined(CYGHWR_HAL_ARM_AT91_R40008) || \
+ defined(CYGHWR_HAL_ARM_AT91_M42800A) || \
+ defined(CYGHWR_HAL_ARM_AT91_M55800A)
+
+
+#ifndef AT91_EBI
+#define AT91_EBI 0xFFE00000
+#endif
+
+#define AT91_EBI_CSR0 0x00
+#define AT91_EBI_CSR1 0x04
+#define AT91_EBI_CSR2 0x08
+#define AT91_EBI_CSR3 0x0C
+#define AT91_EBI_CSR4 0x10
+#define AT91_EBI_CSR5 0x14
+#define AT91_EBI_CSR6 0x18
+#define AT91_EBI_CSR7 0x1C // Chip select
+#define AT91_EBI_CSR_DBW_16 0x1 // Data bus 16 bits wide
+#define AT91_EBI_CSR_DBW_8 0x2 // Data bus 8 bits wide
+#define AT91_EBI_CSR_NWS_1 (0x0 << 2)
+#define AT91_EBI_CSR_NWS_2 (0x1 << 2)
+#define AT91_EBI_CSR_NWS_3 (0x2 << 2)
+#define AT91_EBI_CSR_NWS_4 (0x3 << 2)
+#define AT91_EBI_CSR_NWS_5 (0x4 << 2)
+#define AT91_EBI_CSR_NWS_6 (0x5 << 2)
+#define AT91_EBI_CSR_NWS_7 (0x6 << 2)
+#define AT91_EBI_CSR_NWS_8 (0x7 << 2) // Number of wait states
+#define AT91_EBI_CSR_WSE (0x1 << 5) // Wait state enable
+#define AT91_EBI_CSR_PAGES_1M (0x0 << 7)
+#define AT91_EBI_CSR_PAGES_4M (0x1 << 7)
+#define AT91_EBI_CSR_PAGES_16M (0x2 << 7)
+#define AT91_EBI_CSR_PAGES_64M (0x3 << 7) // Page size
+#define AT91_EBI_CSR_TDF_0 (0x0 << 9)
+#define AT91_EBI_CSR_TDF_1 (0x1 << 9)
+#define AT91_EBI_CSR_TDF_2 (0x2 << 9)
+#define AT91_EBI_CSR_TDF_3 (0x3 << 9)
+#define AT91_EBI_CSR_TDF_4 (0x4 << 9)
+#define AT91_EBI_CSR_TDF_5 (0x5 << 9)
+#define AT91_EBI_CSR_TDF_6 (0x6 << 9)
+#define AT91_EBI_CSR_TDF_7 (0x7 << 9) // Data float output time
+#define AT91_EBI_CSR_BAT (0x1 << 12) // Byte access type
+#define AT91_EBI_CSR_CSEN (0x1 << 13) // Chip select enable
+#define AT91_EBI_CSR_BA (0xFFF << 20) // Base address
+#define AT91_EBI_RCR 0x20 // Reset control
+#define AT91_EBI_RCR_RCB 0x1 // Remap command bit
+#define AT91_EBI_MCR 0x24 // Memory control
+#define AT91_EBI_MCR_ALE_16M 0x0
+#define AT91_EBI_MCR_ALE_8M 0x4
+#define AT91_EBI_MCR_ALE_4M 0x5
+#define AT91_EBI_MCR_ALE_2M 0x6
+#define AT91_EBI_MCR_ALE_1M 0x7 // Address line enable
+#define AT91_EBI_MCR_DRP (0x1 << 4) // Data read protocol
+
+#elif defined(CYGHWR_HAL_ARM_AT91SAM7SE)
+
+#ifndef AT91_EBI
+#define AT91_EBI 0xFFFFFF80
+#endif
+
+#define AT91_EBI_CSA 0x00
+#define AT91_EBI_CSA_CS1A (1 << 1) // Assign NCS1 to SDRAM instead of
+ // static memory
+#define AT91_EBI_CSA_CS2A (1 << 2) // Assign NCS2 (as second slot CS),
+ // NCS5, NCS6 to CompactFlash (access of
+ // NCS5, NCS6 areas are undefined)
+ // instead of static memory
+#define AT91_EBI_CSA_CS3A (1 << 3) // Assign NCS3 to NAND Flash instead of
+ // static memory
+#define AT91_EBI_CSA_CS4A (1 << 4) // Assign NCS4 (as second slot CS), NCS5,
+ // NCS6 to CompactFlash (access of NCS5,
+ // NCS6 areas are undefined) instead of
+ // static memory
+#define AT91_EBI_CSA_NWPC (1 << 16) // Enable SMC NWAIT pin
+
+#define AT91_EBI_SMC 0x90 // SMC Configuration Registers
+#define AT91_EBI_SMC_CSR(n) (AT91_EBI_SMC+0x4*(n)) // Chip select registers
+#define AT91_EBI_SMC_CSR_NWS_MASK (0x7F << 0) // Number of Wait States mask
+#define AT91_EBI_SMC_CSR_NWS(n) \
+ ( ((n)<< 0) & AT91_EBI_SMC_CSR_NWS_MASK ) // Number of Wait States
+ // (depends on read protocol)
+#define AT91_EBI_SMC_CSR_WSEN (1 << 7) // Wait State Enable
+#define AT91_EBI_SMC_CSR_TDF_MASK (0x0F << 8) // Data Float Time mask
+#define AT91_EBI_SMC_CSR_TDF(n) \
+ ( ((n)<< 8) & AT91_EBI_SMC_CSR_TDF_MASK ) // Data Float Time (between
+ // different chip selects)
+#define AT91_EBI_SMC_CSR_BAT_2x8 (0 << 7) // Byte Access Type
+ // (two 8-bit wide devices)
+#define AT91_EBI_SMC_CSR_BAT_1x16 (1 << 7) // Byte Access Type
+ // (one 16-bit wide device)
+#define AT91_EBI_SMC_CSR_DBW_MASK (0x03 << 13) // Data Bus Width mask
+#define AT91_EBI_SMC_CSR_DBW_16 (0x01 << 13) // Data Bus Width: 16 bit
+#define AT91_EBI_SMC_CSR_DBW_8 (0x02 << 13) // Data Bus Width: 8 bit
+#define AT91_EBI_SMC_CSR_DRP_STD (0x00 << 15) // Data Read Protocol: standard
+#define AT91_EBI_SMC_CSR_DRP_EARLY (0x01 << 15) // Data Read Protocol: early
+#define AT91_EBI_SMC_CSR_ACSS_MASK (0x03 << 16) // Address to Chip Select
+ // Setup mask
+#define AT91_EBI_SMC_CSR_ACSS(n) \
+ ( ((n)<< 16) & AT91_EBI_SMC_CSR_ACSS_MASK ) // Address to Chip Select
+ // Setup: hold address before
+ // and after CS for n cycles
+#define AT91_EBI_SMC_CSR_RWSETUP_MASK \
+ (0x07 << 24) // Read and Write Signal
+ // Setup Time
+#define AT91_EBI_SMC_CSR_RWSETUP(n) \
+ ( ((n)<< 24) & AT91_EBI_SMC_CSR_RWSETUP_MASK )// Read and Write Signal
+ // Setup Time is (n+0.5)
+ // (there are exceptions)
+#define AT91_EBI_SMC_CSR_RWHOLD_MASK \
+ (0x07 << 28) // Read and Write Signal
+ // Hold Time
+#define AT91_EBI_SMC_CSR_RWHOLD(n) \
+ ( ((n)<< 28) & AT91_EBI_SMC_CSR_RWHOLD_MASK ) // Read and Write Signal Hold
+ // Time is n (there are
+ // exceptions)
+
+#define AT91_MC_SDRAMC 0xB0 // SDRAMC Configuration Registers
+#define AT91_MC_ECC 0xDC // ECC Configuration Registers
+#endif
+
+
+//=============================================================================
+// Power Saving or Management
+
+#if defined(CYGHWR_HAL_ARM_AT91_R40807) || \
+ defined(CYGHWR_HAL_ARM_AT91_R40008)
+
+// Power Saving
+
+#ifndef AT91_PS
+#define AT91_PS 0xFFFF4000
+#endif
+
+#define AT91_PS_CR 0x000 // Control
+#define AT91_PS_CR_CPU (1<<0) // Disable CPU clock (idle mode)
+#define AT91_PS_PCER 0x004 // Peripheral clock enable
+#define AT91_PS_PCDR 0x008 // Peripheral clock disable
+#define AT91_PS_PCSR 0x00c // Peripheral clock status
+
+#elif defined(CYGHWR_HAL_ARM_AT91_M42800A) || \
+ defined(CYGHWR_HAL_ARM_AT91_M55800A) || \
+ defined(CYGHWR_HAL_ARM_AT91SAM7)
+
+// (Advanced) Power Management
+
+#ifndef AT91_PMC
+#define AT91_PMC 0xFFFF4000
+#endif
+
+#define AT91_PMC_SCER 0x00
+#define AT91_PMC_SCDR 0x04
+#define AT91_PMC_SCSR 0x08
+
+#define AT91_PMC_PCER 0x10
+#define AT91_PMC_PCDR 0x14
+#define AT91_PMC_PCSR 0x18
+
+#define AT91_PMC_CGMR 0x20
+
+#ifndef AT91_PMC_SR
+#define AT91_PMC_SR 0x30
+#endif
+
+#ifndef AT91_PMC_IER
+#define AT91_PMC_IER 0x34
+#endif
+
+#ifndef AT91_PMC_IDR
+#define AT91_PMC_IDR 0x38
+#endif
+
+#ifndef AT91_PMC_IMR
+#define AT91_PMC_IMR 0x3c
+#endif
+
+#if defined(CYGHWR_HAL_ARM_AT91_M42800A)
+
+#define AT91_PMC_PCER_US0 (1<<2)
+#define AT91_PMC_PCER_US1 (1<<3)
+#define AT91_PMC_PCER_SPIA (1<<4)
+#define AT91_PMC_PCER_SPIB (1<<5)
+#define AT91_PMC_PCER_TC0 (1<<6)
+#define AT91_PMC_PCER_TC1 (1<<7)
+#define AT91_PMC_PCER_TC2 (1<<8)
+#define AT91_PMC_PCER_TC3 (1<<9)
+#define AT91_PMC_PCER_TC4 (1<<10)
+#define AT91_PMC_PCER_TC5 (1<<11)
+#define AT91_PMC_PCER_PIOA (1<<13)
+#define AT91_PMC_PCER_PIOB (1<<14)
+
+#define AT91_PMC_CGMR_PRES_NONE 0
+#define AT91_PMC_CGMR_PRES_DIV2 1
+#define AT91_PMC_CGMR_PRES_DIV4 2
+#define AT91_PMC_CGMR_PRES_DIV8 3
+#define AT91_PMC_CGMR_PRES_DIV16 4
+#define AT91_PMC_CGMR_PRES_DIV32 5
+#define AT91_PMC_CGMR_PRES_DIV64 6
+#define AT91_PMC_CGMR_PRES_RES 7
+#define AT91_PMC_CGMR_PLLA 0x00
+#define AT91_PMC_CGMR_PLLB 0x08
+#define AT91_PMC_CGMR_MCK_SLCK (0<<4)
+#define AT91_PMC_CGMR_MCK_MCK (1<<4)
+#define AT91_PMC_CGMR_MCK_MCKINV (2<<4)
+#define AT91_PMC_CGMR_MCK_MCKD2 (3<<4)
+#define AT91_PMC_CGMR_MCKO_ENA (0<<6)
+#define AT91_PMC_CGMR_MCKO_DIS (1<<6)
+#define AT91_PMC_CGMR_CSS_SLCK (0<<7)
+#define AT91_PMC_CGMR_CSS_PLL (1<<7)
+
+#define AT91_PMC_CGMR_PLL_MUL(x) ((x)<<8)
+#define AT91_PMC_CGMR_PLL_CNT(x) ((x)<<24)
+
+#define AT91_PMC_SR_LOCK 0x01
+
+#elif defined(CYGHWR_HAL_ARM_AT91_M55800A)
+
+#define AT91_PMC_PCER_US0 (1<<2)
+#define AT91_PMC_PCER_US1 (1<<3)
+#define AT91_PMC_PCER_US2 (1<<4)
+#define AT91_PMC_PCER_SPI (1<<5)
+#define AT91_PMC_PCER_TC0 (1<<6)
+#define AT91_PMC_PCER_TC1 (1<<7)
+#define AT91_PMC_PCER_TC2 (1<<8)
+#define AT91_PMC_PCER_TC3 (1<<9)
+#define AT91_PMC_PCER_TC4 (1<<10)
+#define AT91_PMC_PCER_TC5 (1<<11)
+#define AT91_PMC_PCER_PIOA (1<<13)
+#define AT91_PMC_PCER_PIOB (1<<14)
+#define AT91_PMC_PCER_ADC0 (1<<15)
+#define AT91_PMC_PCER_ADC1 (1<<16)
+#define AT91_PMC_PCER_DAC0 (1<<17)
+#define AT91_PMC_PCER_DAC1 (1<<18)
+
+#define AT91_PMC_CGMR_MOSC_XTAL 0
+#define AT91_PMC_CGMR_MOSC_BYP 1
+#define AT91_PMC_CGMR_MOSC_DIS (0<<1)
+#define AT91_PMC_CGMR_MOSC_ENA (1<<1)
+#define AT91_PMC_CGMR_MCKO_ENA (0<<2)
+#define AT91_PMC_CGMR_MCKO_DIS (1<<2)
+#define AT91_PMC_CGMR_PRES_NONE (0<<4)
+#define AT91_PMC_CGMR_PRES_DIV2 (1<<4)
+#define AT91_PMC_CGMR_PRES_DIV4 (2<<4)
+#define AT91_PMC_CGMR_PRES_DIV8 (3<<4)
+#define AT91_PMC_CGMR_PRES_DIV16 (4<<4)
+#define AT91_PMC_CGMR_PRES_DIV32 (5<<4)
+#define AT91_PMC_CGMR_PRES_DIV64 (6<<4)
+#define AT91_PMC_CGMR_PRES_RES (7<<4)
+#define AT91_PMC_CGMR_CSS_LF (0<<14)
+#define AT91_PMC_CGMR_CSS_MOSC (1<<14)
+#define AT91_PMC_CGMR_CSS_PLL (2<<14)
+#define AT91_PMC_CGMR_CSS_RES (3<<14)
+
+#define AT91_PMC_CGMR_PLL_MUL(x) ((x)<<8)
+#define AT91_PMC_CGMR_OSC_CNT(x) ((x)<<16)
+#define AT91_PMC_CGMR_PLL_CNT(x) ((x)<<24)
+
+#define AT91_PMC_PCR 0x28
+#define AT91_PMC_PCR_SHDALC 1
+#define AT91_PMC_PCR_WKACKC 2
+
+#define AT91_PMC_PMR 0x2c
+#define AT91_PMC_PMR_SHDALS_TRI 0
+#define AT91_PMC_PMR_SHDALS_LEVEL0 1
+#define AT91_PMC_PMR_SHDALS_LEVEL1 2
+#define AT91_PMC_PMR_SHDALS_RES 3
+#define AT91_PMC_PMR_WKACKS_TRI (0<<2)
+#define AT91_PMC_PMR_WKACKS_LEVEL0 (1<<2)
+#define AT91_PMC_PMR_WKACKS_LEVEL1 (2<<2)
+#define AT91_PMC_PMR_WKACKS_RES (3<<2)
+#define AT91_PMC_PMR_ALWKEN (1<<4)
+#define AT91_PMC_PMR_ALSHEN (1<<5)
+
+#define AT91_PMC_PMR_WKEDG_NONE (0<<6)
+#define AT91_PMC_PMR_WKEDG_POS (1<<6)
+#define AT91_PMC_PMR_WKEDG_NEG (2<<6)
+#define AT91_PMC_PMR_WKEDG_BOTH (3<<6)
+
+#define AT91_PMC_SR_MOSCS 0x01
+#define AT91_PMC_SR_LOCK 0x02
+
+#elif defined(CYGHWR_HAL_ARM_AT91_JTST)
+// No power management control for the JTST
+
+#elif defined(CYGHWR_HAL_ARM_AT91SAM7S)
+#define AT91_PMC_SCER_PCK (1 << 0) // Processor Clock
+#define AT91_PMC_SCER_UDP (1 << 7) // USB Device Clock
+#define AT91_PMC_SCER_PCK0 (1 << 8) // Programmable Clock Output
+#define AT91_PMC_SCER_PCK1 (1 << 9) // Programmable Clock Output
+#define AT91_PMC_SCER_PCK2 (1 << 10) // Programmable Clock Output
+#define AT91_PMC_SCER_PCK3 (1 << 11) // Programmable Clock Output
+
+#define AT91_PMC_PCER_PIOA (1 << 2) // Parallel IO Controller
+#define AT91_PMC_PCER_ADC (1 << 4) // Analog-to-Digital Converter
+#define AT91_PMC_PCER_SPI (1 << 5) // Serial Peripheral Interface
+#define AT91_PMC_PCER_US0 (1 << 6) // USART 0
+#define AT91_PMC_PCER_US1 (1 << 7) // USART 1
+#define AT91_PMC_PCER_SSC (1 << 8) // Serial Synchronous Controller
+#define AT91_PMC_PCER_TWI (1 << 9) // Two-Wire Interface
+#define AT91_PMC_PCER_PWMC (1 <<10) // PWM Controller
+#define AT91_PMC_PCER_UDP (1 <<11) // USB Device Port
+#define AT91_PMC_PCER_TC0 (1 <<12) // Timer Counter 0
+#define AT91_PMC_PCER_TC1 (1 <<13) // Timer Counter 1
+#define AT91_PMC_PCER_TC2 (1 <<14) // Timer Counter 2
+
+#elif defined(CYGHWR_HAL_ARM_AT91SAM7X)
+#define AT91_PMC_SCER_PCK (1 << 0) // Processor Clock
+#define AT91_PMC_SCER_UDP (1 << 7) // USB Device Clock
+#define AT91_PMC_SCER_PCK0 (1 << 8) // Programmable Clock Output
+#define AT91_PMC_SCER_PCK1 (1 << 9) // Programmable Clock Output
+#define AT91_PMC_SCER_PCK2 (1 << 10) // Programmable Clock Output
+#define AT91_PMC_SCER_PCK3 (1 << 11) // Programmable Clock Output
+
+#define AT91_PMC_PCER_PIOA (1 << 2) // Parallel IO Controller
+#define AT91_PMC_PCER_PIOB (1 << 3) // Parallel IO Controller
+#define AT91_PMC_PCER_SPI (1 << 4) // Serial Peripheral Interface
+#define AT91_PMC_PCER_SPI1 (1 << 5) // Serial Peripheral Interface
+#define AT91_PMC_PCER_US0 (1 << 6) // USART 0
+#define AT91_PMC_PCER_US1 (1 << 7) // USART 1
+#define AT91_PMC_PCER_SSC (1 << 8) // Serial Synchronous Controller
+#define AT91_PMC_PCER_TWI (1 << 9) // Two-Wire Interface
+#define AT91_PMC_PCER_PWMC (1 <<10) // PWM Controller
+#define AT91_PMC_PCER_UDP (1 <<11) // USB Device Port
+#define AT91_PMC_PCER_TC0 (1 <<12) // Timer Counter 0
+#define AT91_PMC_PCER_TC1 (1 <<13) // Timer Counter 1
+#define AT91_PMC_PCER_TC2 (1 <<14) // Timer Counter 2
+#define AT91_PMC_PCER_CAN (1 <<15) // Controller Area Network
+#define AT91_PMC_PCER_EMAC (1 <<16) // Ethernet MAC
+#define AT91_PMC_PCER_ADC (1 <<17) // Analog-to-Digital Converter
+
+#elif defined(CYGHWR_HAL_ARM_AT91SAM7SE)
+#define AT91_PMC_SCER_PCK (1 << 0) // Processor Clock
+#define AT91_PMC_SCER_UDP (1 << 7) // USB Device Clock
+#define AT91_PMC_SCER_PCK0 (1 << 8) // Programmable Clock Output
+#define AT91_PMC_SCER_PCK1 (1 << 9) // Programmable Clock Output
+#define AT91_PMC_SCER_PCK2 (1 << 10) // Programmable Clock Output
+#define AT91_PMC_SCER_PCK3 (1 << 11) // Programmable Clock Output
+
+#define AT91_PMC_PCER_PIOA (1 << 2) // Parallel IO Controller
+#define AT91_PMC_PCER_PIOB (1 << 3) // Parallel IO Controller
+#define AT91_PMC_PCER_PIOC (1 << 4) // Parallel IO Controller
+#define AT91_PMC_PCER_SPI (1 << 5) // Serial Peripheral Interface
+#define AT91_PMC_PCER_US0 (1 << 6) // USART 0
+#define AT91_PMC_PCER_US1 (1 << 7) // USART 1
+#define AT91_PMC_PCER_SSC (1 << 8) // Serial Synchronous Controller
+#define AT91_PMC_PCER_TWI (1 << 9) // Two-Wire Interface
+#define AT91_PMC_PCER_PWMC (1 <<10) // PWM Controller
+#define AT91_PMC_PCER_UDP (1 <<11) // USB Device Port
+#define AT91_PMC_PCER_TC0 (1 <<12) // Timer Counter 0
+#define AT91_PMC_PCER_TC1 (1 <<13) // Timer Counter 1
+#define AT91_PMC_PCER_TC2 (1 <<14) // Timer Counter 2
+#define AT91_PMC_PCER_ADC (1 <<15) // Analog-to-Digital Converter
+
+#else // Something unknown
+
+#error Unknown AT91 variant
+
+#endif
+#endif
+
+//=============================================================================
+// Watchdog
+
+#ifndef AT91_WD
+#define AT91_WD 0xFFFF8000
+#endif
+
+#define AT91_WD_OMR 0x00
+#define AT91_WD_OMR_WDEN 0x00000001
+#define AT91_WD_OMR_RSTEN 0x00000002
+#define AT91_WD_OMR_IRQEN 0x00000004
+#define AT91_WD_OMR_EXTEN 0x00000008
+#define AT91_WD_OMR_OKEY (0x00000234 << 4)
+#define AT91_WD_CMR 0x04
+#define AT91_WD_CMR_WDCLKS 0x00000003
+#define AT91_WD_CMR_HPCV 0x0000003C
+#define AT91_WD_CMR_CKEY (0x0000006E << 7)
+#define AT91_WD_CR 0x08
+#define AT91_WD_CR_RSTKEY 0x0000C071
+#define AT91_WD_SR 0x0C
+#define AT91_WD_SR_WDOVF 0x00000001
+
+//=============================================================================
+// SPI
+
+#ifndef AT91_SPI
+#define AT91_SPI 0xFFFBC000
+#endif
+
+#define AT91_SPI_CR 0x00 // Control Register
+#define AT91_SPI_CR_SPIEN 0x00000001 // SPI Enable
+#define AT91_SPI_CR_SPIDIS 0x00000002 // SPI Disable
+#define AT91_SPI_CR_SWRST 0x00000080 // SPI Software reset
+#define AT91_SPI_MR 0x04 // Mode Register
+#define AT91_SPI_MR_MSTR 0x00000001 // Master/Slave Mode
+#define AT91_SPI_MR_PS 0x00000002 // Peripheral Select
+#define AT91_SPI_MR_PCSDEC 0x00000004 // Chip Select Decode
+#define AT91_SPI_MR_DIV32 0x00000008 // Clock Selection
+#if defined(CYGHWR_HAL_ARM_AT91SAM7)
+#define AT91_SPI_MR_MODFDIS (1<<4) // Mode Failure Detect Disable
+#endif
+#define AT91_SPI_MR_LLB 0x00000080 // Local Loopback Enable
+#define AT91_SPI_MR_PCS(x) (((x)&0x0F)<<16) // Peripheral Chip Select
+#define AT91_SPI_MR_DLYBCS(x) (((x)&0xFF)<<24) // Delay Between Chip Selects
+#define AT91_SPI_RDR 0x08 // Receive Data Register
+#define AT91_SPI_TDR 0x0C // Transmit Data Register
+#define AT91_SPI_SR 0x10 // Status Register
+#define AT91_SPI_SR_RDRF 0x00000001 // Receive Data Register Full
+#define AT91_SPI_SR_TDRE 0x00000002 // Tx Data Register Empty
+#define AT91_SPI_SR_MODF 0x00000004 // Mode Fault Error
+#define AT91_SPI_SR_OVRES 0x00000008 // Overrun Error Status
+#define AT91_SPI_SR_ENDRX 0x00000010 // End of Receiver Transfer
+#define AT91_SPI_SR_ENDTX 0x00000020 // End of Transmitter Transfer
+#define AT91_SPI_SR_RXBUFF 0x00000040 // RX Buffer Full
+#define AT91_SPI_SR_TXBUFE 0x00000080 // TX Buffer Empty
+#define AT91_SPI_SR_NSSR 0x00000100 // NSS Rising
+#define AT91_SPI_SR_TXEMPTY 0x00000200 // Transmission Registers Empty
+#define AT91_SPI_SR_SPIENS 0x00010000 // SPI Enable Status
+#define AT91_SPI_IER 0x14 // Interrupt Enable Register
+#define AT91_SPI_IDR 0x18 // Interrupt Disable Register
+#define AT91_SPI_IMR 0x1C // Interrupt Mask Register
+// DMA registers are PDC registers
+// can be different from target to target
+#ifndef AT91_SPI_RPR
+#define AT91_SPI_RPR 0x20 // Receive Pointer Register
+#endif
+#ifndef AT91_SPI_RCR
+#define AT91_SPI_RCR 0x24 // Receive Counter Register
+#endif
+#ifndef AT91_SPI_TPR
+#define AT91_SPI_TPR 0x28 // Transmit Pointer Register
+#endif
+#ifndef AT91_SPI_TCR
+#define AT91_SPI_TCR 0x2C // Transmit Counter Register
+#endif
+
+// PDC Control register bits
+#define AT91_SPI_PTCR_RXTEN (1 << 0)
+#define AT91_SPI_PTCR_RXTDIS (1 << 1)
+#define AT91_SPI_PTCR_TXTEN (1 << 8)
+#define AT91_SPI_PTCR_TXTDIS (1 << 9)
+
+#define AT91_SPI_CSR0 0x30 // Chip Select Register 0
+#define AT91_SPI_CSR1 0x34 // Chip Select Register 1
+#define AT91_SPI_CSR2 0x38 // Chip Select Register 2
+#define AT91_SPI_CSR3 0x3C // Chip Select Register 3
+#define AT91_SPI_CSR_CPOL 0x00000001 // Clock Polarity
+#define AT91_SPI_CSR_NCPHA 0x00000002 // Clock Phase
+#define AT91_SPI_CSR_BITS(x) (((x)&0x0F)<<4) // Bits Per Transfer
+#define AT91_SPI_CSR_BITS8 AT91_SPI_CSR_BITS(0)
+#define AT91_SPI_CSR_BITS9 AT91_SPI_CSR_BITS(1)
+#define AT91_SPI_CSR_BITS10 AT91_SPI_CSR_BITS(2)
+#define AT91_SPI_CSR_BITS11 AT91_SPI_CSR_BITS(3)
+#define AT91_SPI_CSR_BITS12 AT91_SPI_CSR_BITS(4)
+#define AT91_SPI_CSR_BITS13 AT91_SPI_CSR_BITS(5)
+#define AT91_SPI_CSR_BITS14 AT91_SPI_CSR_BITS(6)
+#define AT91_SPI_CSR_BITS15 AT91_SPI_CSR_BITS(7)
+#define AT91_SPI_CSR_BITS16 AT91_SPI_CSR_BITS(8)
+#define AT91_SPI_CSR_SCBR(x) (((x)&0xFF)<<8) // Serial Clock Baud Rate
+#define AT91_SPI_CSR_DLYBS(x) (((x)&0xFF)<<16) // Delay Before SPCK
+#define AT91_SPI_CSR_DLYBCT(x) (((x)&0xFF)<<24) // Delay Between two transfers
+
+//=============================================================================
+// Watchdog Timer Controller
+
+#if defined(CYGHWR_HAL_ARM_AT91SAM7)
+
+#ifndef AT91_WDTC
+#define AT91_WDTC 0xFFFFFD40
+#endif
+
+#define AT91_WDTC_WDCR 0x00 // Watchdog Control Register
+#define AT91_WDTC_WDCR_RELOAD (1 << 0) // Reload the watchdog
+#define AT91_WDTC_WDCR_KEY (0xa5 << 24) // Password for the write op
+#define AT91_WDTC_WDMR 0x04 // Watchdog Mode Register
+#define AT91_WDTC_WDMR_FIEN (1 << 12) // Fault Interrupt Mode Enable
+#define AT91_WDTC_WDMR_RSTEN (1 << 13) // Reset Enable
+#define AT91_WDTC_WDMR_RPROC (1 << 14) // Trigger a processor reset
+#define AT91_WDTC_WDMR_DIS (1 << 15) // Disable
+#define AT91_WDTC_WDMR_WDD_SHIFT (16) // Delta Value shift
+#define AT91_WDTC_WDMR_DBGHLT (1 << 28) // Stop when in debug state
+#define AT91_WDTC_WDMR_IDLEHLT (1 << 29) // Stop when in idle more
+#define AT91_WDTC_WDSR 0x08 // Watchdog Status Register
+#define AT91_WDTC_WDSR_UNDER (1 << 0) // Underflow has occurred
+#define AT91_WDTC_WDSR_ERROR (1 << 1) // Error has occurred
+#endif //CYGHWR_HAL_ARM_AT91SAM7
+
+//=============================================================================
+// Reset Controller
+
+#if defined(CYGHWR_HAL_ARM_AT91SAM7)
+
+#ifndef AT91_RST
+#define AT91_RST 0xFFFFFD00
+#endif
+
+#define AT91_RST_RCR 0x00 // Reset Control Register
+#define AT91_RST_RCR_PROCRST (1 << 0) // Processor Reset
+#define AT91_RST_RCR_ICERST (1 << 1) // ICE Reset
+#define AT91_RST_RCR_PERRST (1 << 2) // Peripheral Reset
+#define AT91_RST_RCR_EXTRST (1 << 3) // External Reset
+#define AT91_RST_RCR_KEY (0xA5 << 24) // Key
+#define AT91_RST_RSR 0x04 // Reset Status Register
+#define AT91_RST_RSR_USER (1 << 0) // User Reset
+#define AT91_RST_RSR_BROWN (1 << 1) // Brownout detected
+#define AT91_RST_RSR_TYPE_POWERUP (0 << 8) // Power on Reset
+#define AT91_RST_RSR_TYPE_WATCHDOG (2 << 8) // Watchdog Reset
+#define AT91_RST_RSR_TYPE_SW (3 << 8) // Software Reset
+#define AT91_RST_RSR_TYPE_USER (4 << 8) // NRST pin Reset
+#define AT91_RST_RSR_TYPE_BROWNOUT (5 << 8) // Brown-out Reset
+#define AT91_RST_RSR_NRST_SET (1 << 16) // NRST pin set
+#define AT91_RST_RSR_SRCMP (1 << 17) // Software reset in progress
+#define AT91_RST_RMR 0x08 // Reset Mode Register
+#define AT91_RST_RMR_URSTEN (1 << 0) // User Reset Enabled
+#define AT91_RST_RMR_URSTIEN (1 << 4) // User Reset Interrupt Enabled
+#define AT91_RST_RMR_BODIEN (1 << 16) // Brownout Dection Interrupt Enabled
+#define AT91_RST_RMR_KEY (0xA5 << 24) // Key
+
+#endif
+
+//=============================================================================
+// Memory Controller
+
+#if defined(CYGHWR_HAL_ARM_AT91SAM7)
+
+#ifndef AT91_MC
+#define AT91_MC 0xFFFFFF00
+#endif
+
+#define AT91_MC_RCR 0x00 // Remap Control Register
+#define AT91_MC_ASR 0x04 // Abort Status Register
+#define AT91_MC_AASR 0x08 // Abort Address Status Register
+#ifndef AT91_MC_FMR
+#define AT91_MC_FMR 0x60 // Flash Mode Register
+#endif
+#define AT91_MC_FMR_FRDY (1 << 0) // Enable interrupt for Flash Ready
+#define AT91_MC_FMR_LOCKE (1 << 2) // Enable interrupt for Flash Lock Error
+#define AT91_MC_FMR_PROGE (1 << 3) // Enable interrupt for Flash Prog Error
+#define AT91_MC_FMR_NEBP (1 << 7) // No erase before programming
+#define AT91_MC_FMR_0FWS (0 << 8) // 1R,2W wait states
+#define AT91_MC_FMR_1FWS (1 << 8) // 2R,3W wait states
+#define AT91_MC_FMR_2FWS (2 << 8) // 3R,4W wait states
+#define AT91_MC_FMR_3FWS (3 << 8) // 4R,4W wait states
+#define AT91_MC_FMR_FMCN_MASK (0xff << 16)
+#define AT91_MC_FMR_FMCN_SHIFT 16
+#ifndef AT91_MC_FCR
+#define AT91_MC_FCR 0x64 // Flash Command Register
+#endif
+#define AT91_MC_FCR_START_PROG (0x1 << 0) // Start Programming of Page
+#define AT91_MC_FCR_LOCK (0x2 << 0) // Lock sector
+#define AT91_MC_FCR_PROG_LOCK (0x3 << 0) // Program and Lock
+#define AT91_MC_FCR_UNLOCK (0x4 << 0) // Unlock a segment
+#define AT91_MC_FCR_ERASE_ALL (0x8 << 0) // Erase everything
+#define AT91_MC_FCR_SET_GP_NVM (0xb << 0) // Set general purpose NVM bits
+#define AT91_MC_FCR_CLR_GP_NVM (0xd << 0) // Clear general purpose NVM bits
+#define AT91_MC_FCR_SET_SECURITY (0xf << 0) // Set security bit
+#define AT91_MC_FCR_PAGE_MASK (0x3ff)
+#define AT91_MC_FCR_PAGE_SHIFT 8
+#define AT91_MC_FCR_KEY (0x5a << 24) // Key to enable command
+#ifndef AT91_MC_FSR
+#define AT91_MC_FSR 0x68 // Flash Status Register
+#endif
+#define AT91_MC_FSR_FRDY (1 << 0) // Flash Ready for next command
+#define AT91_MC_FSR_LOCKE (1 << 2) // Programming of a locked block
+#define AT91_MC_FSR_PROGE (1 << 3) // Programming error
+#define AT91_MC_FSR_SECURITY (1 << 4) // Security bit is set
+#define AT91_MC_FSR_GPNVM0 (1 << 8) // General purpose NVM bit 0
+#define AT91_MC_FSR_GPNVM1 (1 << 9) // General purpose NVM bit 1
+#endif
+
+#if defined(CYGHWR_HAL_ARM_AT91SAM7SE)
+#define AT91_MC_PUIA(n) (0x10+(n)*4) // MC Protection Unit Area n
+#define AT91_MC_PUIA_PROT_MASK (0x3 << 0) // Protection mask
+#define AT91_MC_PUIA_PROT_PNAUNA (0x0 << 0) // No Access, User=No Access
+#define AT91_MC_PUIA_PROT_PRWUNA (0x1 << 0) // Privilige=R/W, User=No Access
+#define AT91_MC_PUIA_PROT_PRWURO (0x2 << 0) // Privilige=R/W, User=R Only
+#define AT91_MC_PUIA_PROT_PRWURW (0x3 << 0) // Privilige=R/W, User=R/W
+#define AT91_MC_PUIA_SIZE_MASK (0xF << 4) // Area Size mask
+#define AT91_MC_PUIA_SIZE_1KB (0x0 << 4) // Area Size=1KB
+#define AT91_MC_PUIA_SIZE_2KB (0x1 << 4) // Area Size=2KB
+#define AT91_MC_PUIA_SIZE_4KB (0x2 << 4) // Area Size=4KB
+#define AT91_MC_PUIA_SIZE_8KB (0x3 << 4) // Area Size=8KB
+#define AT91_MC_PUIA_SIZE_16KB (0x4 << 4) // Area Size=16KB
+#define AT91_MC_PUIA_SIZE_32KB (0x5 << 4) // Area Size=32KB
+#define AT91_MC_PUIA_SIZE_64KB (0x6 << 4) // Area Size=64KB
+#define AT91_MC_PUIA_SIZE_128KB (0x7 << 4) // Area Size=128KB
+#define AT91_MC_PUIA_SIZE_256KB (0x8 << 4) // Area Size=256KB
+#define AT91_MC_PUIA_SIZE_512KB (0x9 << 4) // Area Size=512KB
+#define AT91_MC_PUIA_SIZE_1MB (0xA << 4) // Area Size=1MB
+#define AT91_MC_PUIA_SIZE_2MB (0xB << 4) // Area Size=2MB
+// Datasheet says value is 0xD, but it's out of the sequence and
+// Atmel header also says 0xC.
+#define AT91_MC_PUIA_SIZE_4MB (0xC << 4) // Area Size=4MB
+// The following are not mentioned in datasheet, but present in Atmel header
+#define AT91_MC_PUIA_SIZE_8MB (0xD << 4) // Area Size=8MByte
+#define AT91_MC_PUIA_SIZE_16MB (0xE << 4) // Area Size=16MByte
+#define AT91_MC_PUIA_SIZE_64MB (0xF << 4) // Area Size=64MByte
+#define AT91_MC_BA_MASK (0x3FFFF << 10) // Area Base Address Mask
+#define AT91_MC_BA(addr) ((addr) << 10) // Set Area Base Address in
+ // multiples of 1KB (must be
+ // a multiple of the selected
+ // Area Size)
+#define AT91_MC_PUP 0x50 // MC Protection Unit Peripherals
+#define AT91_MC_PUP_PROT_MASK (0x3 << 0) // Protection mask
+#define AT91_MC_PUP_PROT_PNAUNA (0x0 << 0) // Privilige=No Access,
+ // User=No Access (DO NOT USE)
+#define AT91_MC_PUP_PROT_PRWUNA (0x1 << 0) // Privilige=R/W, User=No Access
+#define AT91_MC_PUP_PROT_PRWURO (0x2 << 0) // Privilige=R/W, User=R Only
+#define AT91_MC_PUP_PROT_PRWURW (0x3 << 0) // Privilige=R/W, User=R/W
+#define AT91_MC_PUER 0x54 // Protection Unit Enable Register
+#define AT91_MC_PUER_PUEB (0x1) // Protection Unit Enable Bit
+ // (PROGRAM ALL AREA REGISTERS BEFORE
+ // ENABLE)
+#endif
+
+//=============================================================================
+// Debug Unit
+
+#if defined(CYGHWR_HAL_ARM_AT91SAM7)
+
+#ifndef AT91_DBG
+#define AT91_DBG 0xFFFFF200
+#endif
+
+#define AT91_DBG_CR 0x00 // Control Register
+#define AT91_DBG_CR_RSTRX (0x1 << 2) // Reset Receiver
+#define AT91_DBG_CR_RSTTX (0x1 << 3) // Reset Transmitter
+#define AT91_DBG_CR_RXEN (0x1 << 4) // Receiver Enable
+#define AT91_DBG_CR_RXDIS (0x1 << 5) // Receiver Disable
+#define AT91_DBG_CR_TXEN (0x1 << 6) // Transmitter Enable
+#define AT91_DBG_CR_TXDIS (0x1 << 7) // Transmitter Disable
+#define AT91_DBG_CR_RSTSTA (0x1 << 8) // Reset Status Bits
+#define AT91_DBG_MR 0x04 // Mode Register
+#define AT91_DBG_MR_PAR_EVEN (0x0 << 9) // Even Parity
+#define AT91_DBG_MR_PAR_ODD (0x1 << 9) // Odd Parity
+#define AT91_DBG_MR_PAR_SPACE (0x2 << 9) // Parity forced to Space
+#define AT91_DBG_MR_PAR_MARK (0x3 << 9) // Parity forced to Mark
+#define AT91_DBG_MR_PAR_NONE (0x4 << 9) // No Parity
+#define AT91_DBG_MR_PAR_MULTI (0x6 << 9) // Multi-drop mode
+#define AT91_DBG_MR_CHMODE_NORMAL (0x0 << 14) // Normal mode
+#define AT91_DBG_MR_CHMODE_AUTO (0x1 << 14) // Automatic Echo
+#define AT91_DBG_MR_CHMODE_LOCAL (0x2 << 14) // Local Loopback
+#define AT91_DBG_MR_CHMODE_REMOTE (0x3 << 14) // Remote Loopback
+#define AT91_DBG_IER 0x08 // Interrupt Enable Register
+#define AT91_DBG_IDR 0x0c // Interrupt Disable Register
+#define AT91_DBG_IMR 0x10 // Interrupt Mask Register
+#define AT91_DBG_CSR 0x14 // Channel Status Register
+#define AT91_DBG_CSR_RXRDY (1 << 0) // Receiver Ready
+#define AT91_DBG_CSR_TXRDY (1 << 1) // Transmitter Ready
+#define AT91_DBG_RHR 0x18 // Receiver Holding Register
+#define AT91_DBG_THR 0x1c // Transmitter Holding Register
+#define AT91_DBG_BRGR 0x20 // Baud Rate Generator Register
+#define AT91_DBG_C1R 0x40 // Chip ID1 register
+#define AT91_DBG_C1R_ARM945ES (1 << 5)
+#define AT91_DBG_C1R_ARM7TDMI (2 << 5)
+#define AT91_DBG_C1R_ARM920T (4 << 5)
+#define AT91_DBG_C1R_ARM926EJ (5 << 5)
+#define AT91_DBG_C1R_CPU_MASK (0x7 << 5)
+#define AT91_DBG_C1R_FLASH_0K (0x0 << 8)
+#define AT91_DBG_C1R_FLASH_8K (0x1 << 8)
+#define AT91_DBG_C1R_FLASH_16K (0x2 << 8)
+#define AT91_DBG_C1R_FLASH_32K (0x3 << 8)
+#define AT91_DBG_C1R_FLASH_64K (0x5 << 8)
+#define AT91_DBG_C1R_FLASH_128K (0x7 << 8)
+#define AT91_DBG_C1R_FLASH_256K (0x9 << 8)
+#define AT91_DBG_C1R_FLASH_512K (0xa << 8)
+#define AT91_DBG_C1R_FLASH_1024K (0xc << 8)
+#define AT91_DBG_C1R_FLASH_2048K (0xe << 8)
+#define AT91_DBG_C1R_FLASH_MASK (0xf << 8)
+#define AT91_DBG_C1R_FLASH2_0K (0x0 << 12)
+#define AT91_DBG_C1R_FLASH2_8K (0x1 << 12)
+#define AT91_DBG_C1R_FLASH2_16K (0x2 << 12)
+#define AT91_DBG_C1R_FLASH2_32K (0x3 << 12)
+#define AT91_DBG_C1R_FLASH2_64K (0x5 << 12)
+#define AT91_DBG_C1R_FLASH2_128K (0x7 << 12)
+#define AT91_DBG_C1R_FLASH2_256K (0x9 << 12)
+#define AT91_DBG_C1R_FLASH2_512K (0xa << 12)
+#define AT91_DBG_C1R_FLASH2_1024K (0xc << 12)
+#define AT91_DBG_C1R_FLASH2_2048K (0xe << 12)
+#define AT91_DBG_C1R_FLASH2_MASK (0xf << 12)
+#define AT91_DBG_C1R_SRAM_1K (0x1 << 16)
+#define AT91_DBG_C1R_SRAM_2K (0x2 << 16)
+#define AT91_DBG_C1R_SRAM_112K (0x4 << 16)
+#define AT91_DBG_C1R_SRAM_4K (0x5 << 16)
+#define AT91_DBG_C1R_SRAM_80K (0x6 << 16)
+#define AT91_DBG_C1R_SRAM_160K (0x7 << 16)
+#define AT91_DBG_C1R_SRAM_8K (0x8 << 16)
+#define AT91_DBG_C1R_SRAM_16K (0x9 << 16)
+#define AT91_DBG_C1R_SRAM_32K (0xa << 16)
+#define AT91_DBG_C1R_SRAM_64K (0xb << 16)
+#define AT91_DBG_C1R_SRAM_128K (0xc << 16)
+#define AT91_DBG_C1R_SRAM_256K (0xd << 16)
+#define AT91_DBG_C1R_SRAM_96K (0xe << 16)
+#define AT91_DBG_C1R_SRAM_512K (0xf << 16)
+#define AT91_DBG_C1R_SRAM_MASK (0xf << 16)
+#define AT91_DBG_C1R_ARCH_AT75Cxx (0xf0 << 20)
+#define AT91_DBG_C1R_ARCH_AT91x40 (0x40 << 20)
+#define AT91_DBG_C1R_ARCH_AT91x63 (0x63 << 20)
+#define AT91_DBG_C1R_ARCH_AT91x55 (0x55 << 20)
+#define AT91_DBG_C1R_ARCH_AT91x42 (0x42 << 20)
+#define AT91_DBG_C1R_ARCH_AT91x92 (0x92 << 20)
+#define AT91_DBG_C1R_ARCH_AT91x34 (0x24 << 20)
+#define AT91_DBG_C1R_ARCH_AT91SAM7Axx (0x60 << 20)
+#define AT91_DBG_C1R_ARCH_AT91SAM7Sxx (0x70 << 20)
+#define AT91_DBG_C1R_ARCH_AT91SAM7XC (0x71 << 20)
+#define AT91_DBG_C1R_ARCH_AT91SAM7SExx (0x72 << 20)
+#define AT91_DBG_C1R_ARCH_AT91SAM7Lxx (0x73 << 20)
+#define AT91_DBG_C1R_ARCH_AT91SAM7Xxx (0x75 << 20)
+#define AT91_DBG_C1R_ARCH_AT91SAM9xx (0x19 << 20)
+#define AT91_DBG_C1R_ARCH_MASK (0xff << 20)
+#define AT91_DBG_C1R_NVPTYP_ROM (0 << 28) // ROM only
+#define AT91_DBG_C1R_NVPTYP_RLOCF (1 << 28) // ROMless of on chip Flash
+#define AT91_DBG_C1R_NVPTYP_SRAMROM (4 << 28) // SRAM emulating ROM
+#define AT91_DBG_C1R_NVPTYP_EFLASH (2 << 28) // Embedded Flash
+#define AT91_DBG_C1R_NVPTYP_ROMFLASH (3 << 28) // ROM & FLASH
+#define AT91_DBG_C1R_NVPTYP_MASK (7 << 28)
+#define AT91_DBG_C1R_EXT (1 << 31) // Extension Register Exists
+#define AT91_DBG_C2R 0x44 // Chip ID2 register
+#define AT91_DBG_FNTR 0x48 // Force NTRST Register
+#define AT91_DBG_RPR 0x100 // Receiver Pointer Register
+#define AT91_DBG_RCR 0x104 // Receiver Counter Register
+#define AT91_DBG_TPR 0x108 // Transmit Pointer Register
+#define AT91_DBG_TCR 0x10c // Transmit Counter Register
+#define AT91_DBG_RNPR 0x110 // Receiver Next Pointer Register
+#define AT91_DBG_RNCR 0x114 // Receiver Next Counter Register
+#define AT91_DBG_TNPR 0x118 // Transmit Next Pointer Register
+#define AT91_DBG_TNCR 0x11c // Transmit Next Counter Register
+#define AT91_DBG_PTCR 0x120 // PDC Transfer Control Register
+#define AT91_DBG_PTSR 0x124 // PDC Transfer Status Register
+#endif
+
+//=============================================================================
+// Periodic Interval Timer Controller
+
+#if defined(CYGHWR_HAL_ARM_AT91SAM7)
+
+#ifndef AT91_PITC
+#define AT91_PITC 0xfffffd30
+#endif
+
+#define AT91_PITC_PIMR 0x00 // Period Interval Mode Register
+#define AT91_PITC_PIMR_PITEN (1 << 24) // Periodic Interval Timer Enable
+#define AT91_PITC_PIMR_PITIEN (1 << 25) // Periodic Interval Timer Intr Enable
+#define AT91_PITC_PISR 0x04 // Period Interval Status Register
+#define AT91_PITC_PISR_PITS (1 << 0) // Periodic Interval Timer Status
+#define AT91_PITC_PIVR 0x08 // Period Interval Status Register
+#define AT91_PITC_PIIR 0x0C // Period Interval Image Register
+#define AT91_PITC_VALUE_MASK 0x000fffff // 20-bit period value
+#endif
+
+//=============================================================================
+// Real Time Timer Controller
+
+#if defined(CYGHWR_HAL_ARM_AT91SAM7)
+
+#ifndef AT91_RTTC
+#define AT91_RTTC 0xFFFFFD20
+#endif
+
+#define AT91_RTTC_RTMR 0x00 // Real Time Mode Register
+#define AT91_RTTC_RTMR_ALMIEN (1 << 16) // Alarm Interrupt Enable
+#define AT91_RTTC_RTMR_RTTINCIEN (1 << 17) // Timer Increment Interrupt Enable
+#define AT91_RTTC_RTMR_RTTRST (1 << 18) // Timer Reset
+#define AT91_RTTC_RTAR 0x04 // Real Time Alarm Register
+#define AT91_RTTC_RTVR 0x08 // Real Time Value Register
+#define AT91_RTTC_RTSR 0x0C // Real Time Status Register
+#define AT91_RTTC_RTSR_ALMS (1 << 0) // Alarm Status
+#define AT91_RTTC_RTSR_RTTINC (1 << 1) // Timer Increment
+#endif
+
+//=============================================================================
+// USB Device Port
+
+#if defined(CYGHWR_HAL_ARM_AT91SAM7)
+
+#ifndef AT91_UDP
+#define AT91_UDP 0xFFFB0000
+#endif
+
+#define AT91_UDP_FRM_NUM 0x00 // Frame Number
+#define AT91_UDP_FRM_ERR (1 << 16) // Frame Error
+#define AT91_UDP_FRM_OK (1 << 17) // Frame OK
+#define AT91_UDP_GLB_STATE 0x04 // Global State
+#define AT91_UDP_GLB_FADDEN (1 << 0) // Function Address Enable
+#define AT91_UDP_GLB_CONFG (1 << 1) // Configured
+#define AT91_UDP_GLB_ESR (1 << 2) // Enable Send Resume
+#define AT91_UDP_GLB_RSMINPR (1 << 3) // A Resume has been seen
+#define AT91_UDP_GLB_RMWUPE (1 << 4) // Remote Wake Up Enable
+#define AT91_UDP_FADDR 0x08 // Function Address
+#define AT91_UDP_FADDR_FEN (1 << 8) // Function Enable
+#define AT91_UDP_IER 0x10 // Interrupt Enable
+#define AT91_UDP_EPINT0 (1 << 0) // Endpoint 0 Interrupt
+#define AT91_UDP_EPINT1 (1 << 1) // Endpoint 1 Interrupt
+#define AT91_UDP_EPINT2 (1 << 2) // Endpoint 2 Interrupt
+#define AT91_UDP_EPINT3 (1 << 3) // Endpoint 3 Interrupt
+#define AT91_UDP_EPINT4 (1 << 4) // Endpoint 4 Interrupt
+#define AT91_UDP_EPINT5 (1 << 5) // Endpoint 5 Interrupt
+#define AT91_UDP_EPINT6 (1 << 6) // Endpoint 6 Interrupt
+#define AT91_UDP_EPINT7 (1 << 7) // Endpoint 7 Interrupt
+#define AT91_UDP_RXSUSP (1 << 8) // USB Suspend Interrupt
+#define AT91_UDP_RXRSM (1 << 9) // USB Resume Interrupt
+#define AT91_UDP_EXTRSM (1 << 10) // USB External Resume Interrupt
+#define AT91_UDP_SOFINT (1 << 11) // USB start of frame Interrupt
+#define AT91_UDP_ENDBUSRES (1 << 12) // USB End of Bus Reset Interrupt
+#define AT91_UDP_WAKEUP (1 << 13) // USB Resume Interrupt
+#define AT91_UDP_IDR 0x14 // Interrupt Disable
+#define AT91_UDP_IMR 0x18 // Interrupt Mask
+#define AT91_UDP_ISR 0x1C // Interrupt Status
+#define AT91_UDP_ICR 0x20 // Interrupt Clear
+#define AT91_UDP_RST_EP 0x28 // Reset Endpoint
+#define AT91_UDP_CSR 0x30 // Endpoint Control and Status
+#define AT91_UDP_CSR_TXCOMP (1 << 0) // Generates an IN packet
+#define AT91_UDP_CSR_RX_DATA_BK0 (1 << 1) // Receive Data Bank 0
+#define AT91_UDP_CSR_RXSETUP (1 << 2) // Sends a STALL to the host
+#define AT91_UDP_CSR_ISOERROR (1 << 3) // Isochronous error
+#define AT91_UDP_CSR_TXPKTRDY (1 << 4) // Transmit Packet Ready
+#define AT91_UDP_CSR_FORCESTALL (1 << 5) // Force Stall
+#define AT91_UDP_CSR_RX_DATA_BK1 (1 << 6) // Receive Data Bank 1
+#define AT91_UDP_CSR_DIR (1 << 7) // Transfer Direction
+#define AT91_UDP_CSR_DIR_OUT (0 << 7) // Transfer Direction OUT
+#define AT91_UDP_CSR_DIR_IN (1 << 7) // Transfer Direction IN
+#define AT91_UDP_CSR_EPTYPE_CTRL (0 << 8) // Control
+#define AT91_UDP_CSR_EPTYPE_ISO_OUT (1 << 8) // Isochronous OUT
+#define AT91_UDP_CSR_EPTYPE_BULK_OUT (2 << 8) // Bulk OUT
+#define AT91_UDP_CSR_EPTYPE_INT_OUT (3 << 8) // Interrupt OUT
+#define AT91_UDP_CSR_EPTYPE_ISO_IN (5 << 8) // Isochronous IN
+#define AT91_UDP_CSR_EPTYPE_BULK_IN (6 << 8) // Bulk IN
+#define AT91_UDP_CSR_EPTYPE_INT_IN (7 << 8) // Interrupt IN
+#define AT91_UDP_CSR_DTGLE (1 << 11) // Data Toggle
+#define AT91_UDP_CSR_EPEDS (1 << 15) // Endpoint Enable Disable
+#define AT91_UDP_FDR 0x50 // Endpoint FIFO Data
+#define AT91_UDP_TXVC 0x74 // Transceiver Control
+#define AT91_UDP_TXVC_TXVDIS (1 << 8) // Disable Transceiver
+#define AT91_UDP_TXVC_PUON (1 << 9) // Pull-up ON
+#endif
+
+//=============================================================================
+// Synchronous Serial Controller (SSC)
+
+#if defined(CYGHWR_HAL_ARM_AT91SAM7)
+
+#ifndef AT91_SSC
+#define AT91_SSC 0xFFFD4000
+#endif
+
+#define AT91_SSC_CR (0x00)
+#define AT91_SSC_CR_RXEN (1<<0) //Enable Receiver
+#define AT91_SSC_CR_RXDIS (1<<1) //Disable Receiver
+#define AT91_SSC_CR_TXEN (1<<8) //Enable Transmitter
+#define AT91_SSC_CR_TXDIS (1<<9) //Disable Transmitter
+#define AT91_SSC_CR_SWRST (1<<15) //Soft Reset
+#define AT91_SSC_CMR (0x04)
+#define AT91_SSC_RCMR (0x10)
+#define AT91_SSC_RCMR_CKS_DIV (0<<0) //Select Divider Clock
+#define AT91_SSC_RCMR_CKS_TX (1<<0) //Select Transmit Clock
+#define AT91_SSC_RCMR_CKS_RK (2<<0) //Select Receiver Clock
+#define AT91_SSC_RCMR_CKO_NONE (0<<2) //No Clock Output
+#define AT91_SSC_RCMR_CKO_CONT (1<<2) //Continuous Clock Output
+#define AT91_SSC_RCMR_CKO_TFER (2<<2) //Clock Output During Transfer only
+#define AT91_SSC_RCMR_CKI (1<<5) //Clock Invert
+#define AT91_SSC_RCMR_CKG_NONE (0<<6) //No Clock Gating, Continuous Clock
+#define AT91_SSC_RCMR_CKG_RFLOW (1<<6) //Clock Enabled by RF Low
+#define AT91_SSC_RCMR_CKG_RFHIGH (2<<6) //Clock Enabled by RF HIGH
+#define AT91_SSC_RCMR_START_CONT (0<<8) //Start when data in RHR, Continuous
+#define AT91_SSC_RCMR_START_TX (1<<8) //Start when TX Start
+#define AT91_SSC_RCMR_START_RFLOW (2<<8) //Start when LOW level on RF
+#define AT91_SSC_RCMR_START_RFHIGH (3<<8) //Start when HIGH level on RF
+#define AT91_SSC_RCMR_START_RFFALL (4<<8) //Start when Falling Edge on RF
+#define AT91_SSC_RCMR_START_RFRISE (5<<8) //Start when Rising Edge on RF
+#define AT91_SSC_RCMR_START_RFLEVEL (6<<8) //Start when any Level Change on RF
+#define AT91_SSC_RCMR_START_RFEDGE (7<<8) //Start when any Edge on RF
+#define AT91_SSC_RCMR_START_CMP0 (8<<8) //Start when Compare 0 match
+#define AT91_SSC_RCMR_STOP_CMP1 (1<<12) //Stop when Compare 1 Match
+#define AT91_SSC_RCMR_STTDLY(x) ((x&0xFF)<<16) //Start Delay
+#define AT91_SSC_RCMR_PERIOD(x) ((x&0xFF)<<24) //Frame Period
+#define AT91_SSC_RFMR (0x14)
+#define AT91_SSC_RFMR_DATLEN(x) (x&0x1F) //Data word length
+#define AT91_SSC_RFMR_LOOP (1<<5) //Loop Mode
+#define AT91_SSC_RFMR_MSBF (1<<7) //MSB First
+#define AT91_SSC_RFMR_DATNB(x) ((x&0xf)<<8) //Data Number, # words per frame
+#define AT91_SSC_RFMR_FSLEN(x) ((x&0xf)<<16) //Frame sync length
+#define AT91_SSC_RFMR_FSOS_NONE (0<<16) //No Frame Synch Output
+#define AT91_SSC_RFMR_FSOS_NEGPULSE (1<<16) //Negative Pulse Frame Sync Output
+#define AT91_SSC_RFMR_FSOS_POSPULSE (2<<16) //Positive Pulse Frame Sync Output
+#define AT91_SSC_RFMR_FSOS_LOW (3<<16) //Low Level Frame Synch Output
+#define AT91_SSC_RFMR_FSOS_HIGH (4<<16) //High Level Frame Synch Output
+#define AT91_SSC_RFMR_FSOS_TOGGLE (5<<16) //Toggle Frame Synch Output
+#define AT91_SSC_RFMR_FSEDGE_POS (0<<24) //Intr on +ve edge of Frame Sync
+#define AT91_SSC_RFMR_FSEDGE_NEG (1<<24) //Intr on -ve edge of Frame Sync
+#define AT91_SSC_TCMR (0x18)
+#define AT91_SSC_TCMR_CKS_DIV (0<<0) //Select Divider Clock
+#define AT91_SSC_TCMR_CKS_RX (1<<0) //Select Receiver Clock
+#define AT91_SSC_TCMR_CKS_TK (2<<0) //Select Transmit Clock
+#define AT91_SSC_TCMR_CKO_NONE (0<<2) //No Clock Output
+#define AT91_SSC_TCMR_CKO_CONT (1<<2) //Continuous Clock Output
+#define AT91_SSC_TCMR_CKO_TFER (2<<2) //Clock Output During Transfer only
+#define AT91_SSC_TCMR_CKI (1<<5) //Clock Invert
+#define AT91_SSC_TCMR_CKG_NONE (0<<6) //No Clock Gating, Continuous Clock
+#define AT91_SSC_TCMR_CKG_RFLOW (1<<6) //Clock Enabled by RF Low
+#define AT91_SSC_TCMR_CKG_RFHIGH (2<<6) //Clock Enabled by RF HIGH
+#define AT91_SSC_TCMR_START_CONT (0<<8) //Start when data in THR, Continuous
+#define AT91_SSC_TCMR_START_RX (1<<8) //Start when RX Start
+#define AT91_SSC_TCMR_START_TFLOW (2<<8) //Start when LOW level on TF
+#define AT91_SSC_TCMR_START_TFHIGH (3<<8) //Start when HIGH level on TF
+#define AT91_SSC_TCMR_START_TFFALL (4<<8) //Start when Falling Edge on TF
+#define AT91_SSC_TCMR_START_TFRISE (5<<8) //Start when Rising Edge on TF
+#define AT91_SSC_TCMR_START_TFLEVEL (6<<8) //Start when any Level Change on TF
+#define AT91_SSC_TCMR_START_TFEDGE (6<<8) //Start when any Edge on TF
+#define AT91_SSC_TCMR_STDDLY(x) ((x&0xFF)<<16) //Start Delay
+#define AT91_SSC_TCMR_PERIOD(x) ((x&0xFF)<<24) //Frame Period
+#define AT91_SSC_TFMR (0x1C)
+#define AT91_SSC_TFMR_DATLEN(x) (x&0x1F) //Data word length
+#define AT91_SSC_TFMR_DATDEF (1<<5) //Default Data is 1's
+#define AT91_SSC_TFMR_MSBF (1<<7) //MSB First
+#define AT91_SSC_TFMR_DATNB(x) ((x&0xf)<<8) //Data Number, # words per frame
+#define AT91_SSC_TFMR_FSLEN(x) ((x&0xf)<<16) //Frame sync length
+#define AT91_SSC_TFMR_FSOS_NONE (0<<16) //No Frame Synch Output
+#define AT91_SSC_TFMR_FSOS_NEGPULSE (1<<16) //Negative Pulse Frame Sync Output
+#define AT91_SSC_TFMR_FSOS_POSPULSE (2<<16) //Positive Pulse Frame Sync Output
+#define AT91_SSC_TFMR_FSOS_LOW (3<<16) //Low Level Frame Synch Output
+#define AT91_SSC_TFMR_FSOS_HIGH (4<<16) //High Level Frame Synch Output
+#define AT91_SSC_TFMR_FSOS_TOGGLE (5<<16) //Toggle Frame Synch Output
+#define AT91_SSC_TFMR_FSDEN_DEF (0<<23) //Frame Sync is Default Data
+#define AT91_SSC_TFMR_FSDEN_TSHR (1<<23) //Frame Sync is TSHR Data
+#define AT91_SSC_TFMR_FSEDGE_POS (0<<24) //Intr on +ve edge of Frame Sync
+#define AT91_SSC_TFMR_FSEDGE_NEG (1<<24) //Intr on -ve edge of Frame Sync
+#define AT91_SSC_RHR (0x20)
+#define AT91_SSC_THR (0x24)
+#define AT91_SSC_RSHR (0x30)
+#define AT91_SSC_TSHR (0x34)
+#define AT91_SSC_RC0R (0x38)
+#define AT91_SSC_RC1R (0x3C)
+#define AT91_SSC_SR (0x40)
+#define AT91_SSC_SR_TXRDY (1<<0) //Transmit Ready
+#define AT91_SSC_SR_TXEMPTY (1<<1) //Transmit Empty
+#define AT91_SSC_SR_ENDTX (1<<2) //End of Transmission
+#define AT91_SSC_SR_TXBUFE (1<<3) //Transmit Buffer Empty
+#define AT91_SSC_SR_RXRDY (1<<4) //Receiver Ready
+#define AT91_SSC_SR_OVRUN (1<<5) //Receiver Overrun
+#define AT91_SSC_SR_ENDRX (1<<6) //End of Reception
+#define AT91_SSC_SR_RXBUFF (1<<7) //Receive Buffer Full
+#define AT91_SSC_SR_CP0 (1<<8) //Compare 0 match
+#define AT91_SSC_SR_CP1 (1<<9) //Compare 1 Match
+#define AT91_SSC_SR_TXSYN (1<<10) //Transmit Frame Sync
+#define AT91_SSC_SR_RXSYN (1<<11) //Receive Frame Sync
+#define AT91_SSC_SR_TXEN (1<<16) //Transmitter Enabled
+#define AT91_SSC_SR_RXEN (1<<17) //Receiver Enabled
+#define AT91_SSC_IER (0x44)
+#define AT91_SSC_IDR (0x48)
+#define AT91_SSC_IMR (0x4C)
+
+#define AT91_SSC_RPR 0x100 // Receiver Pointer Register
+#define AT91_SSC_RCR 0x104 // Receiver Counter Register
+#define AT91_SSC_TPR 0x108 // Transmit Pointer Register
+#define AT91_SSC_TCR 0x10c // Transmit Counter Register
+#define AT91_SSC_RNPR 0x110 // Receiver Next Pointer Register
+#define AT91_SSC_RNCR 0x114 // Receiver Next Counter Register
+#define AT91_SSC_TNPR 0x118 // Transmit Next Pointer Register
+#define AT91_SSC_TNCR 0x11c // Transmit Next Counter Register
+#define AT91_SSC_PTCR 0x120 // PDC Transfer Control Register
+#define AT91_SSC_PTSR 0x124 // PDC Transfer Status Register
+
+#define AT91_SSC_PTCR_RXTEN (1 << 0) //Receive Transfers Enabled
+#define AT91_SSC_PTCR_RXTDIS (1 << 1) //Receive Transfers Disabled
+#define AT91_SSC_PTCR_TXTEN (1 << 8) //Transmit Transfers Enabled
+#define AT91_SSC_PTCR_TXTDIS (1 << 9) //Transmit Transfers Disabled
+
+#endif
+
+//=============================================================================
+// Ethernet Controller (EMAC)
+
+#if defined(CYGHWR_HAL_ARM_AT91SAM7X)
+
+#ifndef AT91_EMAC
+#define AT91_EMAC 0xFFFBC000
+#endif
+
+#define AT91_EMAC_NCR (0x00) // Network Control
+#define AT91_EMAC_NCR_LB (1 << 0) // Loopback
+#define AT91_EMAC_NCR_LBL (1 << 1) // Loopback Local
+#define AT91_EMAC_NCR_RE (1 << 2) // Receiver Enable
+#define AT91_EMAC_NCR_TX (1 << 3) // Transmit Enable
+#define AT91_EMAC_NCR_MPE (1 << 4) // Management Port Enable
+#define AT91_EMAC_NCR_CSR (1 << 5) // Clear Statistics Registers
+#define AT91_EMAC_NCR_ISR (1 << 6) // Increment Statistics Registers
+#define AT91_EMAC_NCR_WES (1 << 7) // Write Enable for Statistics Registers
+#define AT91_EMAC_NCR_BP (1 << 8) // Back Pressure
+#define AT91_EMAC_NCR_TSTART (1 << 9) // Start Transmitter
+#define AT91_EMAC_NCR_THALT (1 << 10) // Halt Transmitter
+
+#define AT91_EMAC_NCFG (0x04) // Network Configuration
+#define AT91_EMAC_NCFG_SPD_10Mbps (0 << 0) // 10Mbps line speed
+#define AT91_EMAC_NCFG_SPD_100Mbps (1 << 0) // 100Mbps line speed
+#define AT91_EMAC_NCFG_FD (1 << 1) // Full Deplex
+#define AT91_EMAC_NCFG_BR (1 << 2) // Bit Rate
+#define AT91_EMAC_NCFG_CAF (1 << 4) // Copy All Frames
+#define AT91_EMAC_NCFG_NBC (1 << 5) // Don't receiver Broadcasts
+#define AT91_EMAC_NCFG_MTI (1 << 6) // Multicast Hash Enable
+#define AT91_EMAC_NCFG_UNI (1 << 7) // Unicast hash enable
+#define AT91_EMAC_NCFG_BIG (1 << 8) // Receive upto 1522 byte frames
+#define AT91_EMAC_NCFG_EAE (1 << 9) // External Address match Enable
+#define AT91_EMAC_NCFG_CLK_HCLK_8 (0 << 10) // HCLK divided by 8
+#define AT91_EMAC_NCFG_CLK_HCLK_16 (1 << 10) // HCLK divided by 16
+#define AT91_EMAC_NCFG_CLK_HCLK_32 (2 << 10) // HCLK divided by 32
+#define AT91_EMAC_NCFG_CLK_HCLK_64 (3 << 10) // HCLK divided by 64
+#define AT91_EMAC_NCFG_CLK_MASK (3 << 10) // HCLK mask
+#define AT91_EMAC_NCFG_CLK_RTY (1 << 12) // Retry Test
+#define AT91_EMAC_NCFG_CLK_RMII (1 << 13) // Enable RMII mode
+#define AT91_EMAC_NCFG_CLK_MII (0 << 13) // Enable MII mode
+#define AT91_EMAC_NCFG_RLCE (0 << 16) // Receive Length Check Enable
+
+#define AT91_EMAC_NSR (0x08) // Network Status
+#define AT91_EMAC_NSR_MDIO_MASK (1 << 1) // MDIO Pin status
+#define AT91_EMAC_NSR_IDLE (1 << 2) // PHY logical is idle
+
+#define AT91_EMAC_TSR (0x14) // Transmit Status
+#define AT91_EMAC_TSR_OVR (1 << 0) // Overrun
+#define AT91_EMAC_TSR_COL (1 << 1) // Collision occurred
+#define AT91_EMAC_TSR_RLE (1 << 2) // Retry Limit Exceeded
+#define AT91_EMAC_TSR_TXIDLE (1 << 3) // Transmitter Idle
+#define AT91_EMAC_TSR_BNQ (1 << 4) // Buffer Not Queues
+#define AT91_EMAC_TSR_COMP (1 << 5) // Transmission Complete
+#define AT91_EMAC_TSR_UND (1 << 6) // Transmit Underrun
+
+#define AT91_EMAC_RBQP (0x18) // Receiver Buffer Queue Pointer
+#define AT91_EMAC_TBQP (0x1c) // Transmit Buffer Queue Pointer
+
+#define AT91_EMAC_RSR (0x20) // Receiver Status
+#define AT91_EMAC_RSR_BNA (1 << 0) // Buffer Not Available
+#define AT91_EMAC_RSR_REC (1 << 1) // Frame Received
+#define AT91_EMAC_RSR_OVR (1 << 2) // Transmit Buffer Overrun
+
+#define AT91_EMAC_ISR (0x24) // Interrupt Status
+#define AT91_EMAC_ISR_DONE (1 << 0) // Management Done
+#define AT91_EMAC_ISR_RCOM (1 << 1) // Receiver Complete
+#define AT91_EMAC_ISR_RBNA (1 << 2) // Receiver Buffer Not Available
+#define AT91_EMAC_ISR_TOVR (1 << 3) // Transmit Buffer Overrun
+#define AT91_EMAC_ISR_TUND (1 << 4) // Transmit Error: Buffer under run
+#define AT91_EMAC_ISR_RTRY (1 << 5) // Transmit Error: Retry Limit Exceeded
+#define AT91_EMAC_ISR_TBRE (1 << 6) // Transmit Buffer Register Empty
+#define AT91_EMAC_ISR_TCOM (1 << 7) // Transmit Complete
+#define AT91_EMAC_ISR_TIDLE (1 << 8) // Transmitter Idle
+#define AT91_EMAC_ISR_LINK (1 << 9) // Link pin changed state
+#define AT91_EMAC_ISR_ROVR (1 << 10) // Receiver Overrun
+#define AT91_EMAC_ISR_HRESP (1 << 11) // HRESP not OK
+#define AT91_EMAC_IER (0x28) // Interrupt Enable
+#define AT91_EMAC_IDR (0x2c) // Interrupt Disable
+#define AT91_EMAC_IMR (0x30) // Interrupt Mask
+
+#define AT91_EMAC_MAN (0x34) // PHY Maintenance
+#define AT91_EMAC_MAN_DATA_MASK (0xffff<<0) // Data to/from PHY
+#define AT91_EMAC_MAN_CODE (2<<16) // Code
+#define AT91_EMAC_MAN_REGA_MASK (0x1f<<18) // Register Address Mask
+#define AT91_EMAC_MAN_REGA_SHIFT (18) // Register Address Shift
+#define AT91_EMAC_MAN_PHY_MASK (0x1f<<23) // PHY Address Mask
+#define AT91_EMAC_MAN_PHY_SHIFT (23) // PHY Address Shift
+#define AT91_EMAC_MAN_RD (2<<28) // Read operation
+#define AT91_EMAC_MAN_WR (1<<28) // Write Operation
+#define AT91_EMAC_MAN_SOF (1<<30) // Must be set to 01
+#define AT91_EMAC_MAN_PHYA(x) ((x&0x1f)<<23) // Create a PHY Address
+#define AT91_EMAC_MAN_REGA(x) ((x&0x1f)<<18) // Create a Register Address
+#define AT91_EMAC_MAN_DATA(x) (x&0xffff) // Create a Data word
+
+
+#define AT91_EMAC_PTR (0x38) // Pause Time Register
+#define AT91_EMAC_PFR (0x3C) // Pause Frames Received
+#define AT91_EMAC_FTO (0x40) // Frames Transmitted OK
+#define AT91_EMAC_SCF (0x44) // Single Collision Frame
+#define AT91_EMAC_MCF (0x48) // Multiple Collision Frame
+#define AT91_EMAC_FRO (0x4c) // Frames Received OK
+#define AT91_EMAC_FCSE (0x50) // Frame Check Sequence Error
+#define AT91_EMAC_ALE (0x54) // Alignment Error
+#define AT91_EMAC_DTR (0x58) // Deferred Transmission Frame
+#define AT91_EMAC_LCOL (0x5c) // Late Collision
+#define AT91_EMAC_XCOL (0x60) // Excessive Collisions - ECOL!!
+#define AT91_EMAC_TUND (0x64) // Transmit Underrun Error
+#define AT91_EMAC_CSE (0x68) // Carrier Sense Error
+#define AT91_EMAC_RRE (0x6c) // Receive Resource Errors
+#define AT91_EMAC_ROV (0x70) // Receive Overrun
+#define AT91_EMAC_RSE (0x74) // Receiver Symbol erros
+#define AT91_EMAC_ELE (0x78) // Excessive Length Errors
+#define AT91_EMAC_RJE (0x7c) // Receive Jabber Errors
+#define AT91_EMAC_USF (0x80) // Undersize Frame Errors
+#define AT91_EMAC_STE (0x84) // SQE Test Errors
+#define AT91_EMAC_RLE (0x88) // Receive Length Field Mismatch
+
+#define AT91_EMAC_HRB (0x90) // Hash Address Low [31:0]
+#define AT91_EMAC_HRT (0x94) // Hash Address High [63:32]
+#define AT91_EMAC_SA1L (0x98) // Specific Address 1 Low, First 4 bytes
+#define AT91_EMAC_SA1H (0x9c) // Specific Address 1 High, Last 2 bytes
+#define AT91_EMAC_SA2L (0xa0) // Specific Address 2 Low, First 4 bytes
+#define AT91_EMAC_SA2H (0xa4) // Specific Address 2 High, Last 2 bytes
+#define AT91_EMAC_SA3L (0xa8) // Specific Address 3 Low, First 4 bytes
+#define AT91_EMAC_SA3H (0xac) // Specific Address 3 High, Last 2 bytes
+#define AT91_EMAC_SA4L (0xb0) // Specific Address 4 Low, First 4 bytes
+#define AT91_EMAC_SA4H (0xb4) // Specific Address 4 High, Last 2 bytes
+#define AT91_EMAC_TID (0xb8) // Type ID Checking Register
+
+#define AT91_EMAC_USRIO (0xc0) // User IO Register
+#define AT91_EMAC_USRIO_RMII (1<<0) // RMII Mode
+#define AT91_EMAC_USRIO_CLKEN (1<<1) // Clock Enable
+
+// Receiver Buffer Descriptor
+#define AT91_EMAC_RBD_ADDR 0x0 // Address to beginning of buffer
+#define AT91_EMAC_RBD_ADDR_MASK (0xFFFFFFFC) // Address Mask masking the reserved bits
+#define AT91_EMAC_RBD_ADDR_OWNER_EMAC (0 << 0) // EMAC owns receiver buffer
+#define AT91_EMAC_RBD_ADDR_OWNER_SW (1 << 0) // SW owns receiver buffer
+#define AT91_EMAC_RBD_ADDR_WRAP (1 << 1) // Last receiver buffer
+#define AT91_EMAC_RBD_SR 0x1 // Buffer Status
+#define AT91_EMAC_RBD_SR_LEN_MASK (0xfff) // Length of data
+#define AT91_EMAC_RBD_SR_SOF (1 << 14) // Start of Frame
+#define AT91_EMAC_RBD_SR_EOF (1 << 15) // End of Frame
+#define AT91_EMAC_RBD_SR_CFI (1 << 16) // Concatination Format Ind
+#define AT91_EMAC_RDB_SR_VLAN_SHIFT (17) // VLAN priority tag
+#define AT91_EMAC_RDB_SR_VLAN_MASK (7 << 17)
+#define AT91_EMAC_RDB_SR_PRIORTY_TAG (1 << 20) // Priority Tag Detected
+#define AT91_EMAC_RDB_SR_VLAN_TAG (1 << 21) // Priority Tag Detected
+#define AT91_EMAC_RBD_SR_TYPE_ID (1 << 22) // Type ID match
+#define AT91_EMAC_RBD_SR_SA4M (1 << 23) // Specific Address 4 match
+#define AT91_EMAC_RBD_SR_SA3M (1 << 24) // Specific Address 3 match
+#define AT91_EMAC_RBD_SR_SA2M (1 << 25) // Specific Address 2 match
+#define AT91_EMAC_RBD_SR_SA1M (1 << 26) // Specific Address 1 match
+#define AT91_EMAC_RBD_SR_EXTNM (1 << 28) // External Address match
+#define AT91_EMAC_RBD_SR_UNICAST (1 << 29) // Unicast hash match
+#define AT91_EMAC_RBD_SR_MULTICAST (1 << 30) // Multicast hash match
+#define AT91_EMAC_RBD_SR_BROADCAST (1 << 31) // Broadcast
+
+// Transmit Buffer Descriptor
+#define AT91_EMAC_TBD_ADDR 0x0 // Address to beginning of buffer
+#define AT91_EMAC_TBD_SR 0x1 // Buffer Status
+#define AT91_EMAC_TBD_SR_LEN_MASK (0xfff) // Length of data
+#define AT91_EMAC_TBD_SR_EOF (1 << 15) // End of Frame
+#define AT91_EMAC_TBD_SR_NCRC (1 << 16) // No CRC added by EMAC
+#define AT91_EMAC_TBD_SR_EXHAUST (1 << 27) // Buffers exhausted
+#define AT91_EMAC_TBD_SR_TXUNDER (1 << 28) // Transmit Underrun
+#define AT91_EMAC_TBD_SR_RTRY (1 << 29) // Retry limit exceeded
+#define AT91_EMAC_TBD_SR_WRAP (1 << 30) // Marks last descriptor
+#define AT91_EMAC_TBD_SR_USED (1 << 31) // Buffer used
+
+#endif
+
+//=============================================================================
+// Two Wire Interface (TWI)
+
+#if defined(CYGHWR_HAL_ARM_AT91SAM7)
+
+#ifndef AT91_TWI
+#define AT91_TWI 0xFFFB8000
+#endif
+
+#define AT91_TWI_CR 0x00 // Control
+#define AT91_TWI_CR_START (1 << 0) // Send a Start
+#define AT91_TWI_CR_STOP (1 << 1) // Send a Stop
+#define AT91_TWI_CR_MSEN (1 << 2) // Master Transfer Enable
+#define AT91_TWI_CR_MSDIS (1 << 3) // Master Transfer Disable
+#define AT91_TWI_CR_SVEN (1 << 4) // Slave Transfer Enable
+#define AT91_TWI_CR_SDIS (1 << 5) // Slave Transfer Disable
+#define AT91_TWI_CR_SWRST (1 << 7) // Software Reset
+#define AT91_TWI_MMR 0x04 // Master Mode
+#define AT91_TWI_MMR_IADRZ_NO (0 << 8) // Internal Device Address size 0Bytes
+#define AT91_TWI_MMR_IADRZ_1 (1 << 8) // Internal Device Address size 1Byte
+#define AT91_TWI_MMR_IADRZ_2 (2 << 8) // Internal Device Address size 2Bytes
+#define AT91_TWI_MMR_IADRZ_3 (3 << 8) // Internal Device Address size 3Bytes
+#define AT91_TWI_MMR_MWRITE (0 << 12) // Master Write
+#define AT91_TWI_MMR_MREAD (1 << 12) // Master Read
+#define AT91_TWI_MMR_DADR_MASK (0x3f << 16) // Device Address Mask
+#define AT91_TWI_MMR_DADR_SHIFT (16) // Device Address Shift
+#define AT91_TWI_SMR 0x08 // Slave Mode
+#define AT91_TWI_SMR_SADR_MASK (0x3f << 16) // Slave Device Address Mask
+#define AT91_TWI_SMR_SADR_SHIFT (16) // Slave Device Address Shift
+#define AT91_TWI_IADR 0x0C // Internal Address
+#define AT91_TWI_CWGR 0x10 // Clock Waveform Generator
+#define AT91_TWI_CWGR_CLDIV_MASK (0xf << 0) // Clock Low Divider Mask
+#define AT91_TWI_CWGR_CLDIV_SHIFT (0) // Clock Low Divider Shift
+#define AT91_TWI_CWGR_CHDIV_MASK (0xf << 8) // Clock High Divider Mask
+#define AT91_TWI_CWGR_CHDIV_SHIFT (8) // Clock High Divider Shift
+#define AT91_TWI_CWGR_CKDIV_MASK (0x7 << 16) // Clock Divider Mask
+#define AT91_TWI_CWGR_CKDIV_SHIFT (16) // Clock Divider Shift
+#define AT91_TWI_SR 0x20 // Status
+#define AT91_TWI_SR_TXCOMP (1 << 0) // Transmission Completed
+#define AT91_TWI_SR_RXRDY (1 << 1) // Receiver Holding Register Ready
+#define AT91_TWI_SR_TXRDY (1 << 2) // Transmit Holding Register Ready
+#define AT91_TWI_SR_SVREAD (1 << 3) // Slave Read
+#define AT91_TWI_SR_SVACC (1 << 4) // Slave Access
+#define AT91_TWI_SR_GCACC (1 << 5) // General Call Access
+#define AT91_TWI_SR_OVRE (1 << 6) // Overrun Error
+#define AT91_TWI_SR_UNRE (1 << 7) // Underrun Error
+#define AT91_TWI_SR_NACK (1 << 8) // Not Acknowledged
+#define AT91_TWI_SR_ARBLST (1 << 9) // Arbitration Lost
+#define AT91_TWI_IER 0x24 // Interrupt Enable
+#define AT91_TWI_IDR 0x28 // Interrupt Disable
+#define AT91_TWI_IMR 0x2C // Interrupt Mask
+#define AT91_TWI_RHR 0x30 // Receiver Holding
+#define AT91_TWI_THR 0x34 // Transmit Holding
+#endif
+
+//=============================================================================
+// Analog to Digital Convertor (ADC)
+
+#if defined(CYGHWR_HAL_ARM_AT91SAM7) || \
+ defined (CYGHWR_HAL_ARM_AT91_M55800A)
+
+// AT91SAM7 specifics
+#if defined(CYGHWR_HAL_ARM_AT91SAM7)
+#if !defined(AT91_ADC)
+#define AT91_ADC 0xFFFD8000
+#endif
+
+#if !defined(AT91_MAX_ADC_CHAN)
+#define AT91_MAX_ADC_CHAN 8
+#endif
+#endif
+
+// AT91_M55800A specifics
+#if defined(CYGHWR_HAL_ARM_AT91_M55800A)
+#if !defined(AT91_ADC)
+#define AT91_ADC 0xFFFB0000
+#endif
+
+#if !defined(AT91_ADC1)
+#define AT91_ADC1 0xFFFB4000
+#endif
+
+#if !defined(AT91_MAX_ADC_CHAN)
+#define AT91_MAX_ADC_CHAN 4
+#endif
+#endif
+
+#define AT91_ADC_CR 0x00 // Control
+#define AT91_ADC_CR_SWRST (1 << 0) // Software Reset
+#define AT91_ADC_CR_START (1 << 1) // Start Conversion
+#define AT91_ADC_MR 0x04 // Mode
+#define AT91_ADC_MR_TRGEN (1 << 0) // Trigger Enable
+#define AT91_ADC_MR_TRGSEL_TIOA0 (0 << 1) // Trigger = TIAO0
+#define AT91_ADC_MR_TRGSEL_TIOA1 (1 << 1) // Trigger = TIAO1
+#define AT91_ADC_MR_TRGSEL_TIOA2 (2 << 1) // Trigger = TIAO2
+#define AT91_ADC_MR_TRGSEL_TIOA3 (3 << 1) // Trigger = TIAO3
+#define AT91_ADC_MR_TRGSEL_TIOA4 (4 << 1) // Trigger = TIAO4
+#define AT91_ADC_MR_TRGSEL_TIOA5 (5 << 1) // Trigger = TIAO5
+#define AT91_ADC_MR_TRGSEL_EXT (6 << 1) // Trigger = External
+#define AT91_ADC_MR_LOWREC_10BITS (0 << 4) // 10-bit Resolution
+#define AT91_ADC_MR_LOWRES_8BITS (1 << 4) // 8-bit resolution
+#define AT91_ADC_MR_SLEEP_ON (1 << 5) // Sleep mode on
+#define AT91_ADC_MR_SLEEP_OFF (0 << 5) // Sleep mode off
+#define AT91_ADC_MR_PRESCAL_MASK (0x3f << 8) // Prescale Mask
+#define AT91_ADC_MR_PRESCAL_SHIFT (8) // Prescale Shift
+#define AT91_ADC_MR_STARTUP_MASK (0x0f << 16) // Startup Time Mask
+#define AT91_ADC_MR_STARTUP_SHIFT (16) // Startup Time Mask
+#define AT91_ADC_MR_SHTIM_MASK (0x0f << 24) // Sample & Hold Time Mask
+#define AT91_ADC_MR_SHTIM_SHIFT (24) // Sample & Hold Time Shift
+#define AT91_ADC_CHER 0x10 // Channel Enable
+#define AT91_ADC_CHER_CH0 (1 << 0) // Channel 0
+#define AT91_ADC_CHER_CH1 (1 << 1) // Channel 1
+#define AT91_ADC_CHER_CH2 (1 << 2) // Channel 2
+#define AT91_ADC_CHER_CH3 (1 << 3) // Channel 3
+#define AT91_ADC_CHER_CH4 (1 << 4) // Channel 4
+#define AT91_ADC_CHER_CH5 (1 << 5) // Channel 5
+#define AT91_ADC_CHER_CH6 (1 << 6) // Channel 6
+#define AT91_ADC_CHER_CH7 (1 << 7) // Channel 7
+#define AT91_ADC_CHDR 0x14 // Channel Disable
+#define AT91_ADC_CHSR 0x18 // Channel Status
+#define AT91_ADC_SR 0x1c // Status
+#define AT91_ADC_CHSR_EOC0 (1 << 0) // Channel 0 End of Conversion
+#define AT91_ADC_CHSR_EOC1 (1 << 1) // Channel 1 End of Conversion
+#define AT91_ADC_CHSR_EOC2 (1 << 2) // Channel 2 End of Conversion
+#define AT91_ADC_CHSR_EOC3 (1 << 3) // Channel 3 End of Conversion
+#define AT91_ADC_CHSR_EOC4 (1 << 4) // Channel 4 End of Conversion
+#define AT91_ADC_CHSR_EOC5 (1 << 5) // Channel 5 End of Conversion
+#define AT91_ADC_CHSR_EOC6 (1 << 6) // Channel 6 End of Conversion
+#define AT91_ADC_CHSR_EOC7 (1 << 7) // Channel 7 End of Conversion
+#define AT91_ADC_CHSR_OVRE0 (1 << 8) // Channel 0 Overrun Error
+#define AT91_ADC_CHSR_OVRE1 (1 << 9) // Channel 1 Overrun Error
+#define AT91_ADC_CHSR_OVRE2 (1 << 10) // Channel 2 Overrun Error
+#define AT91_ADC_CHSR_OVRE3 (1 << 11) // Channel 3 Overrun Error
+#define AT91_ADC_CHSR_OVRE4 (1 << 12) // Channel 4 Overrun Error
+#define AT91_ADC_CHSR_OVRE5 (1 << 13) // Channel 5 Overrun Error
+#define AT91_ADC_CHSR_OVRE6 (1 << 14) // Channel 6 Overrun Error
+#define AT91_ADC_CHSR_OVRE7 (1 << 15) // Channel 7 Overrun Error
+#define AT91_ADC_CHSR_DRDY (1 << 16) // Data Ready
+#define AT91_ADC_CHSR_GOVER (1 << 17) // General Overrun
+#define AT91_ADC_CHSR_EDNRX (1 << 18) // End of Receiver Transfer
+#define AT91_ADC_CHSR_RXBUFF (1 << 19) // RXBUFFER Interrupt
+#define AT91_ADC_LCDR 0x20 // Last Converted Data
+#define AT91_ADC_IER 0x24 // Interrupt Enable
+#define AT91_ADC_IDR 0x28 // Interrupt Disable
+#define AT91_ADC_IMR 0x2c // Interrupt Mask
+#define AT91_ADC_CDR0 0x30 // Channel Data 0
+#define AT91_ADC_CDR1 0x34 // Channel Data 1
+#define AT91_ADC_CDR2 0x38 // Channel Data 2
+#define AT91_ADC_CDR3 0x3c // Channel Data 3
+#define AT91_ADC_CDR4 0x40 // Channel Data 4
+#define AT91_ADC_CDR5 0x44 // Channel Data 5
+#define AT91_ADC_CDR6 0x48 // Channel Data 6
+#define AT91_ADC_CDR7 0x4c // Channel Data 7
+#define AT91_ADC_RPR 0x100 // Receive Pointer
+#define AT91_ADC_RCR 0x104 // Receive Counter
+#define AT91_ADC_TPR 0x108 // Transmit Pointer
+#define AT91_ADC_TCR 0x10C // Transmit Counter
+#define AT91_ADC_RNPR 0x110 // Receive Next Pointer
+#define AT91_ADC_RNCR 0x114 // Receive Next Counter
+#define AT91_ADC_TNPR 0x118 // Transmit Next Pointer
+#define AT91_ADC_TNCR 0x11C // Transmit Next Counter
+#define AT91_ADC_PTCR 0x120 // PDC Transfer Control
+#define AT91_ADC_PTCR_RXTEN (1 << 0) //Receive Transfers Enabled
+#define AT91_ADC_PTCR_RXTDIS (1 << 1) //Receive Transfers Disabled
+#define AT91_ADC_PTCR_TXTEN (1 << 8) //Receive Transfers Enabled
+#define AT91_ADC_PTCR_TXTDIS (1 << 9) //Receive Transfers Disabled
+
+#define AT91_ADC_PTSR 0x124 // PDC Transfer Status
+
+#endif
+
+//=============================================================================
+// Controller Area Network (CAN)
+
+#if defined(CYGHWR_HAL_ARM_AT91SAM7X)
+
+#ifndef AT91_CAN
+#define AT91_CAN 0xFFFD8000
+#endif
+
+#define AT91_CAN_MR 0x000 // Mode
+#define AT91_CAN_MR_CANEN (1 << 0) // Enable
+#define AT91_CAN_MR_LPM (1 << 1) // Enable Low Power Mode
+#define AT91_CAN_MR_ABM (1 << 2) // Enable Autobaud/Listen mode
+#define AT91_CAN_MR_OVL (1 << 3) // Enable Overload Frame
+#define AT91_CAN_MR_TEOF (1 << 4) // Timestamp at End Of Trame
+#define AT91_CAN_MR_TTM (1 << 5) // Enable Time Triggered Mode
+#define AT91_CAN_MR_TIMFRZ (1 << 6) // Enable Timer Freeze
+#define AT91_CAN_MR_DRPT (1 << 7) // Disable Repeat
+#define AT91_CAN_IER 0x004 // Interrupt Enable
+#define AT91_CAM_IER_MB0 (1 << 0) // Mailbox 0
+#define AT91_CAM_IER_MB1 (1 << 1) // Mailbox 1
+#define AT91_CAM_IER_MB2 (1 << 2) // Mailbox 2
+#define AT91_CAM_IER_MB3 (1 << 3) // Mailbox 3
+#define AT91_CAM_IER_MB4 (1 << 4) // Mailbox 4
+#define AT91_CAM_IER_MB5 (1 << 5) // Mailbox 5
+#define AT91_CAM_IER_MB6 (1 << 6) // Mailbox 6
+#define AT91_CAM_IER_MB7 (1 << 7) // Mailbox 7
+#define AT91_CAM_IER_ERRA (1 << 16) // Error Active Mode
+#define AT91_CAM_IER_WARN (1 << 17) // Warning Limit
+#define AT91_CAM_IER_ERRO (1 << 18) // Error Passive Mode
+#define AT91_CAM_IER_BOFF (1 << 19) // Bus-Off Mode
+#define AT91_CAM_IER_SLEEP (1 << 20) // Sleep
+#define AT91_CAM_IER_WAKEUP (1 << 21) // Wakeup
+#define AT91_CAM_IER_TOVF (1 << 22) // Timer Overflow
+#define AT91_CAM_IER_TSTP (1 << 23) // TimeStamp
+#define AT91_CAM_IER_CERR (1 << 24) // CRC Error
+#define AT91_CAM_IER_SERR (1 << 25) // Stuffing Error
+#define AT91_CAM_IER_AERR (1 << 26) // Acknowledgement Error
+#define AT91_CAM_IER_FERR (1 << 27) // Form Error
+#define AT91_CAM_IER_BERR (1 << 28) // Bit Error
+#define AT91_CAN_IDR 0x008 // Interrupt Disable
+#define AT91_CAN_IMR 0x00C // Interrupt Mask
+#define AT91_CAN_SR 0x010 // Status
+#define AT91_CAN_SR_RBSY (1 << 29) // Receiver busy
+#define AT91_CAM_SR_TBSY (1 << 30) // Transmitter busy
+#define AT91_CAM_IER_OVLSY (1 << 31) // Overload Busy
+#define AT91_CAN_BR 0x014 // Baudrate
+#define AT91_CAN_BR_PHASE1_MASK (0x7 << 4) // Phase 1 Segment mask
+#define AT91_CAN_BR_PHASE1_SHIFT (4) // Phase 1 Segment shift
+#define AT91_CAN_BR_PHASE2_MASK (0x7 << 0) // Phase 2 Segment mask
+#define AT91_CAN_BR_PHASE2_SHIFT (0) // Phase 2 Segment shift
+#define AT91_CAN_BR_PROPAG_MASK (0x7 << 8) // Programming Time Segment mask
+#define AT91_CAN_BR_PROPAG_SHIFT (8) // Programming Time Segment shift
+#define AT91_CAN_BR_SJW_MASK (0x3 << 12) // Re-Sync jump width mask
+#define AT91_CAN_BR_SJW_SHIFT (12) // Re-Sync jump width shift
+#define AT91_CAN_BR_BRP_MASK (0x7f << 16) // Baudrate Prescaler mask
+#define AT91_CAN_BR_BRP_SHIFT (16) // Baudrate Prescaler mask
+#define AT91_CAN_BR_SMP_ONCE (0 << 24) // Sampling once
+#define AT91_CAN_BR_SMP_THRICE (1 << 24) // Sampling three times
+#define AT91_CAN_TIM 0x018 // Timer
+#define AT91_CAN_TIMESTP 0x01c // Timestamp
+#define AT91_CAN_ECR 0x020 // Error Counter
+#define AT91_CAN_ECR_REC_MASK (0xf << 0) // Receiver Error Counter mask
+#define AT91_CAN_ECR_REC_SHIFT (00) // Receiver Error Counter shift
+#define AT91_CAN_ECR_TEC_MASK (0xf << 16) // Transmit Error Counter mask
+#define AT91_CAN_ECR_TEC_SHIFT (00) // Transmit Error Counter shift
+#define AT91_CAN_TCR 0x024 // Transfer Command
+#define AT91_CAN_TCR_TIMRST (1 << 31) // Timer Reset
+#define AT91_CAN_ACR 0x028 // Abort Command
+#define AT91_CAN_MMR0 0x200 // Mailbox 0 Mode
+#define AT91_CAN_MMR_PRIOR_MASK (0xf << 16) // Priority Mask
+#define AT91_CAN_MMR_PRIOR_SHIFT (16) // Priority Shift
+#define AT91_CAN_MMR_MOT_DISABLED (0 << 24) // Mailbox disabled
+#define AT91_CAN_MMR_MOT_RECEPTION (1 << 24) // Reception Mailbox
+#define AT91_CAN_MMR_MOT_RECEPTION_OVER (2 << 24) // Reception with Overwrite
+#define AT91_CAM_MMR_MOT_TRANSMIT (3 << 24) // Transmit Mailbox
+#define AT91_CAM_MMR_MOT_CONSUMER (4 << 24) // Transmit Mailbox
+#define AT91_CAM_MMR_MOT_PRODUCER (5 << 24) // Transmit Mailbox
+#define AT91_CAN_MAM0 0x204 // Mailbox 0 Acceptance Mask
+#define AT91_CAM_MAM_MIDvB_MASK (0x3ffff << 0) // MIDvB mask
+#define AT91_CAM_MAM_MIDvB_SHIFT (0) // MIDvB shift
+#define AT91_CAM_MAM_MIDvA_MASK (0x7ff << 18) // MIDvB mask
+#define AT91_CAM_MAM_MIDvA_SHIFT (18) // MIDvB shift
+#define AT91_CAM_MAM_MIDE (1 << 29) // Identifier Version
+#define AT91_CAN_MID0 0x208 // Mailbox 0 ID
+#define AT91_CAN_MFID0 0x20C // Mailbox 0 Family ID
+#define AT91_CAN_MSR0 0x210 // Mailbox 0 Status
+#define AT91_CAM_MSR_MDLC_MASK (0xf << 16) // Mailbox Data Length Code mask
+#define AT91_CAM_MSR_MDLC_SHIFT (16) // Mailbox Data Length Code shift
+#define AT91_CAM_MSR_MRTR (1 << 20) // Mailbox Remote Tx Request
+#define AT91_CAM_MSR_MABT (1 << 22) // Mailbox Abort
+#define AT91_CAM_MSR_MRDY (1 << 23) // Mailbox Ready
+#define AT91_CAM_MSR_MMI (1 << 24) // Mailbox Message Ignored
+#define AT91_CAN_MDL0 0x214 // Mailbox 0 Data Low
+#define AT91_CAN_MDH0 0x218 // Mailbox 0 Data High
+#define AT91_CAN_MCR0 0x21c // Mailbox 0 Control
+#define AT91_CAM_MCR_MDLC_MASK (0xf << 16) // Mailbox Data Length Code mask
+#define AT91_CAM_MCR_MDLC_SHIFT (16) // Mailbox Data Length Code shift
+#define AT91_CAM_MCR_MRTR (1 << 20) // Mailbox Remote Tx Request
+#define AT91_CAM_MCR_MACR (1 << 22) // Mailbox Abort Request
+#define AT91_CAM_MCR_MTCR (1 << 23) // Mailbox Transfer Command
+#define AT91_CAN_MMR1 0x220 // Mailbox 1 Mode
+#define AT91_CAN_MAM1 0x224 // Mailbox 1 Acceptance Mask
+#define AT91_CAN_MID1 0x228 // Mailbox 1 ID
+#define AT91_CAN_MFID1 0x22C // Mailbox 1 Family ID
+#define AT91_CAN_MSR1 0x230 // Mailbox 1 Status
+#define AT91_CAN_MDL1 0x234 // Mailbox 1 Data Low
+#define AT91_CAN_MDH1 0x238 // Mailbox 1 Data High
+#define AT91_CAN_MCR1 0x23c // Mailbox 1 Control
+
+#endif
+
+//=============================================================================
+// Pulse Width Modulation (PWM)
+
+#if defined(CYGHWR_HAL_ARM_AT91SAM7)
+
+#ifndef AT91_PWM
+#define AT91_PWM 0XFFFCC000
+#define AT91_PWM_CH0 0xFFFCC200
+#define AT91_PWM_CH1 0xFFFCC220
+#define AT91_PWM_CH2 0xFFFCC240
+#define AT91_PWM_CH3 0xFFFCC260
+#define AT91_PWM_CH_SIZE 0x20
+#define AT91_PWM_CH(n) (AT91_PWM_CH0+(n)*AT91_PWM_CH_SIZE)
+#endif
+
+#if defined(CYGHWR_HAL_ARM_AT91SAM7)
+#define AT91_PWM_CHANNELS 4
+#endif
+
+#define AT91_PWM_MR (0x00) // Mode
+#define AT91_PWM_MR_DIVA_MASK (0xff) // CLKA divide factor mask
+#define AT91_PWM_MR_DIVA_SHIFT (00) // CLKA divide factor shirt
+#define AT91_PWM_MR_PREA_MCK_BY_1 ( 0 << 8) // Prescale A MCLK / 1
+#define AT91_PWM_MR_PREA_MCK_BY_2 ( 1 << 8) // Prescale A MCLK / 2
+#define AT91_PWM_MR_PREA_MCK_BY_4 ( 2 << 8) // Prescale A MCLK / 4
+#define AT91_PWM_MR_PREA_MCK_BY_8 ( 3 << 8) // Prescale A MCLK / 8
+#define AT91_PWM_MR_PREA_MCK_BY_16 ( 4 << 8) // Prescale A MCLK / 16
+#define AT91_PWM_MR_PREA_MCK_BY_32 ( 5 << 8) // Prescale A MCLK / 32
+#define AT91_PWM_MR_PREA_MCK_BY_64 ( 6 << 8) // Prescale A MCLK / 64
+#define AT91_PWM_MR_PREA_MCK_BY_128 ( 7 << 8) // Prescale A MCLK / 128
+#define AT91_PWM_MR_PREA_MCK_BY_256 ( 8 << 8) // Prescale A MCLK / 256
+#define AT91_PWM_MR_PREA_MCK_BY_512 ( 9 << 8) // Prescale A MCLK / 512
+#define AT91_PWM_MR_PREA_MCK_BY_1024 (10 << 8) // Prescale A MCLK / 1024
+
+#define AT91_PWM_MR_DIVB_MASK (0xff) // CLKB divide factor mask
+#define AT91_PWM_MR_DIVB_SHIFT (16) // CLKB divide factor shirt
+#define AT91_PWM_MR_PREB_MCK_BY_1 ( 0 << 24) // Prescale B MCLK / 1
+#define AT91_PWM_MR_PREB_MCK_BY_2 ( 1 << 24) // Prescale B MCLK / 2
+#define AT91_PWM_MR_PREB_MCK_BY_4 ( 2 << 24) // Prescale B MCLK / 4
+#define AT91_PWM_MR_PREB_MCK_BY_8 ( 3 << 24) // Prescale B MCLK / 8
+#define AT91_PWM_MR_PREB_MCK_BY_16 ( 4 << 24) // Prescale B MCLK / 16
+#define AT91_PWM_MR_PREB_MCK_BY_32 ( 5 << 24) // Prescale B MCLK / 32
+#define AT91_PWM_MR_PREB_MCK_BY_64 ( 6 << 24) // Prescale B MCLK / 64
+#define AT91_PWM_MR_PREB_MCK_BY_128 ( 7 << 24) // Prescale B MCLK / 128
+#define AT91_PWM_MR_PREB_MCK_BY_256 ( 8 << 24) // Prescale B MCLK / 256
+#define AT91_PWM_MR_PREB_MCK_BY_512 ( 9 << 24) // Prescale B MCLK / 512
+#define AT91_PWM_MR_PREB_MCK_BY_1024 (10 << 24) // Prescale B MCLK / 1024
+#define AT91_PWM_ENA (0x04) // Enable
+#define AT91_PWM_CHANNEL_ID_0 (0) // Channel ID 0
+#define AT91_PWM_CHANNEL_ID_1 (1) // Channel ID 1
+#define AT91_PWM_CHANNEL_ID_2 (2) // Channel ID 2
+#define AT91_PWM_CHANNEL_ID_3 (3) // Channel ID 3
+#define AT91_PWM_CHANNEL_ID_4 (4) // Channel ID 4
+#define AT91_PWM_CHANNEL_ID_5 (5) // Channel ID 5
+#define AT91_PWM_CHANNEL_ID_6 (6) // Channel ID 6
+#define AT91_PWM_CHANNEL_ID_7 (7) // Channel ID 7
+#define AT91_PWM_DIS (0x08) // Disable
+#define AT91_PWM_SR (0x0c) // Status
+#define AT91_PWM_IER (0x10) // Interrupt Enable
+#define AT91_PWM_IDR (0x14) // Interrupt Disable
+#define AT91_PWM_IMR (0x18) // Interrupt Mask
+#define AT91_PWM_ISR (0x1c) // Interrupt Status
+#define AT91_PWM_VR (0xfc) // Version
+
+// Channel registers.
+#define AT91_PWM_CMR (0x00) // Channel Mode
+#define AT91_PWM_CMR_CPRE_MCK_BY_1 0 // Channel Prescale MCL / 1
+#define AT91_PWM_CMR_CPRE_MCK_BY_2 1 // Channel Prescale MCL / 2
+#define AT91_PWM_CMR_CPRE_MCK_BY_4 2 // Channel Prescale MCL / 4
+#define AT91_PWM_CMR_CPRE_MCK_BY_8 3 // Channel Prescale MCL / 8
+#define AT91_PWM_CMR_CPRE_MCK_BY_16 4 // Channel Prescale MCL / 16
+#define AT91_PWM_CMR_CPRE_MCK_BY_32 5 // Channel Prescale MCL / 32
+#define AT91_PWM_CMR_CPRE_MCK_BY_64 6 // Channel Prescale MCL / 64
+#define AT91_PWM_CMR_CPRE_MCK_BY_128 7 // Channel Prescale MCL / 128
+#define AT91_PWM_CMR_CPRE_MCK_BY_256 8 // Channel Prescale MCL / 256
+#define AT91_PWM_CMR_CPRE_MCK_BY_512 9 // Channel Prescale MCL / 512
+#define AT91_PWM_CMR_CPRE_MCK_BY_1024 10 // Channel Prescale MCL / 1024
+#define AT91_PWM_CMR_CPRE_MCK_A 11 // Channel MCLK A
+#define AT91_PWM_CMR_CPRE_MCK_B 12 // Channel MCLK B
+#define AT91_PWM_CMR_CALG_LEFT (0 << 8) // Left align period
+#define AT91_PWM_CMR_CALG_CENTER (1 << 8) // Center align period
+#define AT91_PWM_CMR_CPOL_LOW (0 << 9) // Low to start with
+#define AT91_PWM_CMR_CPOL_HIGH (1 << 9) // High to start with
+#define AT91_PWM_CPD_DUTY (0 << 10) // Notify the duty cycle
+#define AT91_PWM_CPD_PERIOD (1 << 10) // Notify the period
+#define AT91_PWM_CDTY (0x04) // Channel Duty Cycle
+#define AT91_PWM_CPRDR (0x08) // Channel Period
+#define AT91_PWM_CCNTR (0x0C) // Channel Counter
+#define AT91_PWM_CUPDR (0x10) // Channel Update
+
+
+#endif
+
+//=============================================================================
+// FIQ interrupt vector which is shared by all HAL varients.
+
+#define CYGNUM_HAL_INTERRUPT_FIQ 0
+
+//=============================================================================
+// Macros for access the GPIO lines and configuring peripheral pins
+
+// Given a pin description, determine which PIO controller it is on
+#define HAL_ARM_AT91_PIO_CTRL(_pin_) \
+ ((_pin_ >> 16) & 0xff)
+
+// Given a pin description, determine which PIO bit controls this pin
+#define HAL_ARM_AT91_PIO_BIT(_pin_) \
+ (1 << (_pin_ & 0xff))
+
+// Evaluate to true if the pin is using peripheral A
+#define HAL_ARM_AT91_PIO_A(_pin_) \
+ (((_pin_ >> 8) & 0xff) == 0)
+
+// Configure a peripheral pin on a specific PIO controller.
+#ifdef AT91_PIO_ASR
+#define HAL_ARM_AT91_PIOX_CFG(_pin_, _nr_, _pio_base_) \
+ CYG_MACRO_START \
+ if (HAL_ARM_AT91_PIO_CTRL(_pin_) == (_nr_)) { \
+ HAL_WRITE_UINT32((_pio_base_)+AT91_PIO_PDR, \
+ HAL_ARM_AT91_PIO_BIT(_pin_)); \
+ if (HAL_ARM_AT91_PIO_A(_pin_)) { \
+ HAL_WRITE_UINT32((_pio_base_)+AT91_PIO_ASR, \
+ HAL_ARM_AT91_PIO_BIT(_pin_)); \
+ } else { \
+ HAL_WRITE_UINT32((_pio_base_)+AT91_PIO_BSR, \
+ HAL_ARM_AT91_PIO_BIT(_pin_)); \
+ } \
+ } \
+ CYG_MACRO_END
+#else // AT91_PIO_ASR
+#define HAL_ARM_AT91_PIOX_CFG(_pin_, _nr_, _pio_base_) \
+ CYG_MACRO_START \
+ if (HAL_ARM_AT91_PIO_CTRL(_pin_) == (_nr_)) { \
+ HAL_WRITE_UINT32((_pio_base_)+AT91_PIO_PDR, \
+ HAL_ARM_AT91_PIO_BIT(_pin_)); \
+ } \
+ CYG_MACRO_END
+#endif // !AT91_PIO_ASR
+
+// Configure a GPIO pin direction on a specific PIO controller.
+#define HAL_ARM_AT91_GPIOX_CFG_DIRECTION(_pin_, _dir_, _nr_, _pio_base_) \
+ CYG_MACRO_START \
+ if (HAL_ARM_AT91_PIO_CTRL(_pin_) == (_nr_)) { \
+ HAL_WRITE_UINT32((_pio_base_)+AT91_PIO_PER, \
+ HAL_ARM_AT91_PIO_BIT(_pin_)); \
+ if ((_dir_) == AT91_PIN_IN) { \
+ HAL_WRITE_UINT32((_pio_base_)+AT91_PIO_ODR, \
+ HAL_ARM_AT91_PIO_BIT(_pin_)); \
+ } else { \
+ HAL_WRITE_UINT32((_pio_base_)+AT91_PIO_OER, \
+ HAL_ARM_AT91_PIO_BIT(_pin_)); \
+ } \
+ } \
+ CYG_MACRO_END
+
+// Configure a GPIO pin pullup on a specific PIO controller.
+#define HAL_ARM_AT91_GPIOX_CFG_PULLUP(_pin_, _enable_, _nr_, _pio_base_) \
+ CYG_MACRO_START \
+ if (HAL_ARM_AT91_PIO_CTRL(_pin_) == (_nr_)) { \
+ if (_enable_) { \
+ HAL_WRITE_UINT32((_pio_base_)+AT91_PIO_PPUER, \
+ HAL_ARM_AT91_PIO_BIT(_pin_)); \
+ } else { \
+ HAL_WRITE_UINT32((_pio_base_)+AT91_PIO_PPUDR, \
+ HAL_ARM_AT91_PIO_BIT(_pin_)); \
+ } \
+ } \
+ CYG_MACRO_END
+
+// Configure a GPIO pin MultiDrain on a specific PIO controller.
+#define HAL_ARM_AT91_GPIOX_CFG_MULTIDRAIN(_pin_, _enable_, _nr_, _pio_base_) \
+ CYG_MACRO_START \
+ if (HAL_ARM_AT91_PIO_CTRL(_pin_) == (_nr_)) { \
+ if (_enable_) { \
+ HAL_WRITE_UINT32((_pio_base_)+ AT91_PIO_MDER, \
+ HAL_ARM_AT91_PIO_BIT(_pin_)); \
+ } else { \
+ HAL_WRITE_UINT32((_pio_base_)+AT91_PIO_MDDR, \
+ HAL_ARM_AT91_PIO_BIT(_pin_)); \
+ } \
+ } \
+ CYG_MACRO_END
+
+// Set a GPIO pin on a specific PIO controller to generate interrupts
+#define HAL_ARM_AT91_GPIOX_CFG_INTERRUPT(_pin_, _enable_, _nr_, _pio_base_) \
+ CYG_MACRO_START \
+ if (HAL_ARM_AT91_PIO_CTRL(_pin_) == (_nr_)) { \
+ if (_enable_) { \
+ HAL_WRITE_UINT32((_pio_base_)+AT91_PIO_IER, \
+ HAL_ARM_AT91_PIO_BIT(_pin_)); \
+ } else { \
+ HAL_WRITE_UINT32((_pio_base_)+AT91_PIO_IDR, \
+ HAL_ARM_AT91_PIO_BIT(_pin_)); \
+ } \
+ } \
+ CYG_MACRO_END
+
+// Set a GPIO pin on a specific PIO controller.
+#define HAL_ARM_AT91_GPIOX_SET(_pin_, _nr_, _pio_base_) \
+ CYG_MACRO_START \
+ if (HAL_ARM_AT91_PIO_CTRL(_pin_) == (_nr_)) { \
+ HAL_WRITE_UINT32((_pio_base_)+AT91_PIO_SODR, \
+ HAL_ARM_AT91_PIO_BIT(_pin_)); \
+ } \
+ CYG_MACRO_END
+
+// Reset a GPIO pin on a specific PIO controller.
+#define HAL_ARM_AT91_GPIOX_RESET(_pin_, _nr_, _pio_base_) \
+ CYG_MACRO_START \
+ if (HAL_ARM_AT91_PIO_CTRL(_pin_) == (_nr_)) { \
+ HAL_WRITE_UINT32((_pio_base_)+AT91_PIO_CODR, \
+ HAL_ARM_AT91_PIO_BIT(_pin_)); \
+ } \
+ CYG_MACRO_END
+
+// Get a GPIO pin on a specific PIO controller.
+#define HAL_ARM_AT91_GPIOX_GET(_pin_, _value_, _nr_, _pio_base_) \
+ CYG_MACRO_START \
+ cyg_uint32 _pdsr_; \
+ if (HAL_ARM_AT91_PIO_CTRL(_pin_) == (_nr_)) { \
+ HAL_READ_UINT32((_pio_base_)+AT91_PIO_PDSR, _pdsr_); \
+ (_value_) = (_pdsr_ & HAL_ARM_AT91_PIO_BIT(_pin_) ? 1 : 0); \
+ } \
+ CYG_MACRO_END
+
+#define AT91_PIN_IN 1
+#define AT91_PIN_OUT 0
+#define AT91_PIN_PULLUP_ENABLE 1
+#define AT91_PIN_PULLUP_DISABLE 0
+#define AT91_PIN_INTERRUPT_ENABLE 1
+#define AT91_PIN_INTERRUPT_DISABLE 0
+#define AT91_PIN_MULTIDRAIN_ENABLE 1
+#define AT91_PIN_MULTIDRAIN_DISABLE 0
+
+
+#ifndef AT91_PIOB
+//------------------------
+// Only one PIO controller
+//------------------------
+
+// Configure a peripheral pin for peripheral operation
+#define HAL_ARM_AT91_PIO_CFG(_pin_) \
+ CYG_MACRO_START \
+ HAL_ARM_AT91_PIOX_CFG(_pin_, 0, AT91_PIO); \
+ CYG_MACRO_END
+
+// Configure a GPIO pin direction
+#define HAL_ARM_AT91_GPIO_CFG_DIRECTION(_pin_, _dir_) \
+ CYG_MACRO_START \
+ HAL_ARM_AT91_GPIOX_CFG_DIRECTION(_pin_, _dir_, 0, AT91_PIO); \
+ CYG_MACRO_END
+
+// Configure a GPIO pin pullup resistor
+#define HAL_ARM_AT91_GPIO_CFG_PULLUP(_pin_, _enable_) \
+ CYG_MACRO_START \
+ HAL_ARM_AT91_GPIOX_CFG_PULLUP(_pin_, _enable_, 0, AT91_PIO); \
+ CYG_MACRO_END
+
+// Configure Multi Drain on a GPIO
+#define HAL_ARM_AT91_GPIO_CFG_MULTIDRAIN(_pin_, _enable_) \
+ CYG_MACRO_START \
+ HAL_ARM_AT91_GPIOX_CFG_MULTIDRAIN(_pin_, _enable_, 0, AT91_PIO); \
+ CYG_MACRO_END
+
+// Configure a GPIO pin to generate interrupts
+#define HAL_ARM_AT91_GPIO_CFG_INTERRUPT(_pin_, _enable_) \
+ CYG_MACRO_START \
+ HAL_ARM_AT91_GPIOX_CFG_INTERRUPT(_pin_, _enable_, 0, AT91_PIO); \
+ CYG_MACRO_END
+
+// Set a GPIO pin to one
+#define HAL_ARM_AT91_GPIO_SET(_pin_) \
+ CYG_MACRO_START \
+ HAL_ARM_AT91_GPIOX_SET(_pin_, 0, AT91_PIO); \
+ CYG_MACRO_END
+
+// Reset a GPIO pin to zero
+#define HAL_ARM_AT91_GPIO_RESET(_pin_) \
+ CYG_MACRO_START \
+ HAL_ARM_AT91_GPIOX_RESET(_pin_, 0, AT91_PIO); \
+ CYG_MACRO_END
+
+// Get the state of a GPIO pin
+#define HAL_ARM_AT91_GPIO_GET(_pin_, _value_) \
+ CYG_MACRO_START \
+ HAL_ARM_AT91_GPIOX_GET(_pin_, _value_, 0, AT91_PIO); \
+ CYG_MACRO_END
+
+#elif !defined(AT91_PIOC) // !AT91_PIOB
+//--------------------
+// Two PIO controllers
+//--------------------
+
+// Configure a peripheral pin for peripheral operation
+#define HAL_ARM_AT91_PIO_CFG(_pin_) \
+ CYG_MACRO_START \
+ HAL_ARM_AT91_PIOX_CFG(_pin_, 0, AT91_PIO); \
+ HAL_ARM_AT91_PIOX_CFG(_pin_, 1, AT91_PIOB); \
+ CYG_MACRO_END
+
+// Configure a GPIO pin direction
+#define HAL_ARM_AT91_GPIO_CFG_DIRECTION(_pin_, _dir_) \
+ CYG_MACRO_START \
+ HAL_ARM_AT91_GPIOX_CFG_DIRECTION(_pin_, _dir_, 0, AT91_PIO); \
+ HAL_ARM_AT91_GPIOX_CFG_DIRECTION(_pin_, _dir_, 1, AT91_PIOB); \
+ CYG_MACRO_END
+
+// Configure a GPIO pin pullup resistor
+#define HAL_ARM_AT91_GPIO_CFG_PULLUP(_pin_, _enable_) \
+ CYG_MACRO_START \
+ HAL_ARM_AT91_GPIOX_CFG_PULLUP(_pin_, _enable_, 0, AT91_PIO); \
+ HAL_ARM_AT91_GPIOX_CFG_PULLUP(_pin_, _enable_, 1, AT91_PIOB); \
+ CYG_MACRO_END
+
+// Configure Multi Drain on a GPIO
+#define HAL_ARM_AT91_GPIO_CFG_MULTIDRAIN(_pin_, _enable_) \
+ CYG_MACRO_START \
+ HAL_ARM_AT91_GPIOX_CFG_MULTIDRAIN(_pin_, _enable_, 0, AT91_PIO); \
+ HAL_ARM_AT91_GPIOX_CFG_MULTIDRAIN(_pin_, _enable_, 1, AT91_PIOB); \
+ CYG_MACRO_END
+
+// Configure a GPIO pin to generate interrupts
+#define HAL_ARM_AT91_GPIO_CFG_INTERRUPT(_pin_, _enable_) \
+ CYG_MACRO_START \
+ HAL_ARM_AT91_GPIOX_CFG_INTERRUPT(_pin_, _enable_, 0, AT91_PIO); \
+ HAL_ARM_AT91_GPIOX_CFG_INTERRUPT(_pin_, _enable_, 1, AT91_PIOB); \
+ CYG_MACRO_END
+
+// Set a GPIO pin to 1
+#define HAL_ARM_AT91_GPIO_SET(_pin_) \
+ CYG_MACRO_START \
+ HAL_ARM_AT91_GPIOX_SET(_pin_, 0, AT91_PIO); \
+ HAL_ARM_AT91_GPIOX_SET(_pin_, 1, AT91_PIOB); \
+ CYG_MACRO_END
+
+// Reset a GPIO pin to 0
+#define HAL_ARM_AT91_GPIO_RESET(_pin_) \
+ CYG_MACRO_START \
+ HAL_ARM_AT91_GPIOX_RESET(_pin_, 0, AT91_PIO); \
+ HAL_ARM_AT91_GPIOX_RESET(_pin_, 1, AT91_PIOB); \
+ CYG_MACRO_END
+
+// Get the state of a GPIO pin
+#define HAL_ARM_AT91_GPIO_GET(_pin_, _value_) \
+ CYG_MACRO_START \
+ HAL_ARM_AT91_GPIOX_GET(_pin_, _value_, 0, AT91_PIO); \
+ HAL_ARM_AT91_GPIOX_GET(_pin_, _value_, 1, AT91_PIOB); \
+ CYG_MACRO_END
+#else
+//----------------------
+// Three PIO controllers
+//----------------------
+
+// Configure a peripheral pin for peripheral operation
+#define HAL_ARM_AT91_PIO_CFG(_pin_) \
+ CYG_MACRO_START \
+ HAL_ARM_AT91_PIOX_CFG(_pin_, 0, AT91_PIO); \
+ HAL_ARM_AT91_PIOX_CFG(_pin_, 1, AT91_PIOB); \
+ HAL_ARM_AT91_PIOX_CFG(_pin_, 2, AT91_PIOC); \
+ CYG_MACRO_END
+
+// Configure a GPIO pin direction
+#define HAL_ARM_AT91_GPIO_CFG_DIRECTION(_pin_, _dir_) \
+ CYG_MACRO_START \
+ HAL_ARM_AT91_GPIOX_CFG_DIRECTION(_pin_, _dir_, 0, AT91_PIO); \
+ HAL_ARM_AT91_GPIOX_CFG_DIRECTION(_pin_, _dir_, 1, AT91_PIOB); \
+ HAL_ARM_AT91_GPIOX_CFG_DIRECTION(_pin_, _dir_, 2, AT91_PIOC); \
+ CYG_MACRO_END
+
+// Configure a GPIO pin pullup resistor
+#define HAL_ARM_AT91_GPIO_CFG_PULLUP(_pin_, _enable_) \
+ CYG_MACRO_START \
+ HAL_ARM_AT91_GPIOX_CFG_PULLUP(_pin_, _enable_, 0, AT91_PIO); \
+ HAL_ARM_AT91_GPIOX_CFG_PULLUP(_pin_, _enable_, 1, AT91_PIOB); \
+ HAL_ARM_AT91_GPIOX_CFG_PULLUP(_pin_, _enable_, 2, AT91_PIOC); \
+ CYG_MACRO_END
+
+// Configure Multi Drain on a GPIO
+#define HAL_ARM_AT91_GPIO_CFG_MULTIDRAIN(_pin_, _enable_) \
+ CYG_MACRO_START \
+ HAL_ARM_AT91_GPIOX_CFG_MULTIDRAIN(_pin_, _enable_, 0, AT91_PIO); \
+ HAL_ARM_AT91_GPIOX_CFG_MULTIDRAIN(_pin_, _enable_, 1, AT91_PIOB); \
+ HAL_ARM_AT91_GPIOX_CFG_MULTIDRAIN(_pin_, _enable_, 2, AT91_PIOC); \
+ CYG_MACRO_END
+
+// Configure a GPIO pin to generate interrupts
+#define HAL_ARM_AT91_GPIO_CFG_INTERRUPT(_pin_, _enable_) \
+ CYG_MACRO_START \
+ HAL_ARM_AT91_GPIOX_CFG_INTERRUPT(_pin_, _enable_, 0, AT91_PIO); \
+ HAL_ARM_AT91_GPIOX_CFG_INTERRUPT(_pin_, _enable_, 1, AT91_PIOB); \
+ HAL_ARM_AT91_GPIOX_CFG_INTERRUPT(_pin_, _enable_, 2, AT91_PIOC); \
+ CYG_MACRO_END
+
+// Set a GPIO pin to 1
+#define HAL_ARM_AT91_GPIO_SET(_pin_) \
+ CYG_MACRO_START \
+ HAL_ARM_AT91_GPIOX_SET(_pin_, 0, AT91_PIO); \
+ HAL_ARM_AT91_GPIOX_SET(_pin_, 1, AT91_PIOB); \
+ HAL_ARM_AT91_GPIOX_SET(_pin_, 2, AT91_PIOC); \
+ CYG_MACRO_END
+
+// Reset a GPIO pin to 0
+#define HAL_ARM_AT91_GPIO_RESET(_pin_) \
+ CYG_MACRO_START \
+ HAL_ARM_AT91_GPIOX_RESET(_pin_, 0, AT91_PIO); \
+ HAL_ARM_AT91_GPIOX_RESET(_pin_, 1, AT91_PIOB); \
+ HAL_ARM_AT91_GPIOX_RESET(_pin_, 2, AT91_PIOC); \
+ CYG_MACRO_END
+
+// Get the state of a GPIO pin
+#define HAL_ARM_AT91_GPIO_GET(_pin_, _value_) \
+ CYG_MACRO_START \
+ HAL_ARM_AT91_GPIOX_GET(_pin_, _value_, 0, AT91_PIO); \
+ HAL_ARM_AT91_GPIOX_GET(_pin_, _value_, 1, AT91_PIOB); \
+ HAL_ARM_AT91_GPIOX_GET(_pin_, _value_, 2, AT91_PIOC); \
+ CYG_MACRO_END
+#endif //!AT91_PIOB
+
+// Put a GPIO pin to a given state
+#define HAL_ARM_AT91_GPIO_PUT(_pin_, _state_) \
+ CYG_MACRO_START \
+ if (_state_) { \
+ HAL_ARM_AT91_GPIO_SET(_pin_); \
+ } else { \
+ HAL_ARM_AT91_GPIO_RESET(_pin_); \
+ } \
+ CYG_MACRO_END
+
+//-----------------------------------------------------------------------------
+// end of var_io.h
+#endif // CYGONCE_HAL_VAR_IO_H
diff --git a/ecos/packages/hal/arm/at91/var/current/src/at91_misc.c b/ecos/packages/hal/arm/at91/var/current/src/at91_misc.c
new file mode 100644
index 0000000..5ee1b30
--- /dev/null
+++ b/ecos/packages/hal/arm/at91/var/current/src/at91_misc.c
@@ -0,0 +1,343 @@
+/*==========================================================================
+//
+// at91_misc.c
+//
+// HAL misc board support code for Atmel AT91
+//
+//==========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//==========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): gthomas
+// Contributors: gthomas, jskov, nickg, tkoeller
+// Date: 2001-07-12
+// Purpose: HAL board support
+// Description: Implementations of HAL board interfaces
+//
+//####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_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> // necessary?
+#include <cyg/hal/hal_cache.h>
+#include <cyg/hal/hal_if.h> // calling interface
+#include <cyg/hal/hal_misc.h> // helper functions
+#ifdef CYGDBG_HAL_DEBUG_GDB_BREAK_SUPPORT
+#include <cyg/hal/drv_api.h> // HAL ISR support
+#endif
+#include <cyg/hal/var_io.h> // platform registers
+
+// -------------------------------------------------------------------------
+// Hardware init
+
+void hal_hardware_init(void)
+{
+ unsigned i;
+
+ // Reset all interrupts
+ HAL_WRITE_UINT32(AT91_AIC+AT91_AIC_IDCR, 0xFFFFFFFF);
+
+ // Flush internal priority level stack
+ for (i = 0; i < 8; ++i)
+ HAL_WRITE_UINT32(AT91_AIC+AT91_AIC_EOI, 0xFFFFFFFF);
+
+#ifdef HAL_PLF_HARDWARE_INIT
+ // Perform any platform specific initializations
+ HAL_PLF_HARDWARE_INIT();
+#endif
+
+ // Set up eCos/ROM interfaces
+ hal_if_init();
+}
+
+#if CYGINT_HAL_ARM_AT91_SYS_INTERRUPT
+// Decode a system interrupt. Not all systems have all interrupts. So
+// code will only be generated for those interrupts which have a
+// defined value.
+static int sys_irq_handler(void)
+{
+ cyg_uint32 sr, mr;
+
+#ifdef CYGNUM_HAL_INTERRUPT_PITC
+ // Periodic Interrupt Timer Controller
+ HAL_READ_UINT32((AT91_PITC+AT91_PITC_PISR), sr);
+ if (sr & AT91_PITC_PISR_PITS) {
+ return CYGNUM_HAL_INTERRUPT_PITC;
+ }
+#endif
+
+#ifdef CYGNUM_HAL_INTERRUPT_DBG
+ // Debug Unit
+ HAL_READ_UINT32((AT91_DBG + AT91_DBG_CSR), sr);
+ HAL_READ_UINT32((AT91_DBG + AT91_DBG_IMR), mr);
+ if (sr & mr) {
+ return CYGNUM_HAL_INTERRUPT_DBG;
+ }
+#endif
+
+#ifdef CYGNUM_HAL_INTERRUPT_RTTC
+ /* Real Time Timer. Check the interrupt is enabled, not that just
+ the status indicates there is an interrupt. It takes a while for
+ the status bit to clear. */
+ HAL_READ_UINT32((AT91_RTTC+AT91_RTTC_RTSR), sr);
+ HAL_READ_UINT32((AT91_RTTC+AT91_RTTC_RTMR), mr);
+ if (((mr & AT91_RTTC_RTMR_ALMIEN) &&
+ (sr & AT91_RTTC_RTSR_ALMS)) ||
+ ((mr & AT91_RTTC_RTMR_RTTINCIEN) &&
+ (sr & AT91_RTTC_RTSR_RTTINC))) {
+ return CYGNUM_HAL_INTERRUPT_RTTC;
+ }
+#endif
+
+#ifdef CYGNUM_HAL_INTERRUPT_PMC
+ // Power Management Controller
+ HAL_READ_UINT32((AT91_PMC+AT91_PMC_IMR), mr);
+ HAL_READ_UINT32((AT91_PMC+AT91_PMC_SR), sr);
+ if ((sr & mr) &
+ (AT91_PMC_SR_MOSCS |
+ AT91_PMC_SR_LOCK |
+ AT91_PMC_SR_MCKRDY |
+ AT91_PMC_SR_PCK0RDY |
+ AT91_PMC_SR_PCK1RDY |
+ AT91_PMC_SR_PCK2RDY |
+ AT91_PMC_SR_PCK3RDY)) {
+ return CYGNUM_HAL_INTERRUPT_PMC;
+ }
+#endif
+
+#ifdef CYGNUM_HAL_INTERRUPT_MC
+ // Memory controller
+ HAL_READ_UINT32((AT91_MC+AT91_MC_FMR), mr);
+ HAL_READ_UINT32((AT91_MC+AT91_MC_FSR), sr);
+ if ((sr & mr) &
+ (AT91_MC_FSR_FRDY |
+ AT91_MC_FSR_LOCKE |
+ AT91_MC_FSR_PROGE)) {
+ return CYGNUM_HAL_INTERRUPT_MC;
+ }
+#endif
+
+#ifdef CYGNUM_HAL_INTERRUPT_WDTC
+ // Watchdog Timer Controller
+ HAL_READ_UINT32((AT91_WDTC+AT91_WDTC_WDSR), sr);
+ HAL_READ_UINT32((AT91_WDTC+AT91_WDTC_WDMR), mr);
+ if ((mr & AT91_WDTC_WDMR_FIEN) &&
+ sr & (AT91_WDTC_WDSR_UNDER |
+ AT91_WDTC_WDSR_ERROR)) {
+ return CYGNUM_HAL_INTERRUPT_WDTC;
+ }
+#endif
+
+#ifdef CYGNUM_HAL_INTERRUPT_RSTC
+ // Reset Controller
+ HAL_READ_UINT32((AT91_RST + AT91_RST_RSR), sr);
+ HAL_READ_UINT32((AT91_RST + AT91_RST_RMR), mr);
+ if (((mr & AT91_RST_RMR_URSTIEN) && (sr & AT91_RST_RSR_USER)) ||
+ ((mr & AT91_RST_RMR_BODIEN) && (sr & AT91_RST_RSR_BROWN)))
+ return CYGNUM_HAL_INTERRUPT_RSTC;
+#endif
+
+ return CYGNUM_HAL_INTERRUPT_NONE;
+}
+#endif
+
+// -------------------------------------------------------------------------
+// This routine is called to respond to a hardware interrupt (IRQ). It
+// should interrogate the hardware and return the IRQ vector number.
+
+int hal_IRQ_handler(void)
+{
+ cyg_uint32 irq_num;
+ cyg_uint32 ivr;
+#ifdef CYGHWR_HAL_ARM_AT91_FIQ
+ // handle fiq interrupts as irq
+ cyg_uint32 ipr,imr;
+
+ HAL_READ_UINT32(AT91_AIC+AT91_AIC_IPR, ipr);
+ HAL_READ_UINT32(AT91_AIC+AT91_AIC_IMR, imr);
+
+ if (imr & ipr & (1 << CYGNUM_HAL_INTERRUPT_FIQ)) {
+ HAL_WRITE_UINT32(AT91_AIC+AT91_AIC_ICCR, (1 << CYGNUM_HAL_INTERRUPT_FIQ));
+ return CYGNUM_HAL_INTERRUPT_FIQ;
+ }
+#endif
+ // Calculate active interrupt (updates ISR)
+ HAL_READ_UINT32(AT91_AIC+AT91_AIC_IVR, ivr);
+
+ HAL_READ_UINT32(AT91_AIC+AT91_AIC_ISR, irq_num);
+
+#if CYGINT_HAL_ARM_AT91_SYS_INTERRUPT
+ if (irq_num == CYGNUM_HAL_INTERRUPT_SYS) {
+ // determine the source of the system interrupt
+ irq_num = sys_irq_handler();
+ }
+#endif
+ // An invalid interrupt source is treated as a spurious interrupt
+ if (irq_num < CYGNUM_HAL_ISR_MIN || irq_num > CYGNUM_HAL_ISR_MAX)
+ irq_num = CYGNUM_HAL_INTERRUPT_NONE;
+
+ return irq_num;
+}
+
+// -------------------------------------------------------------------------
+// Interrupt control
+//
+
+void hal_interrupt_mask(int vector)
+{
+ CYG_ASSERT(vector <= CYGNUM_HAL_ISR_MAX &&
+ vector >= CYGNUM_HAL_ISR_MIN , "Invalid vector");
+
+#if CYGINT_HAL_ARM_AT91_SYS_INTERRUPT
+ if (vector >= 32) {
+ HAL_WRITE_UINT32(AT91_AIC+AT91_AIC_IDCR,
+ (1 << CYGINT_HAL_ARM_AT91_SYS_INTERRUPT));
+ return;
+ }
+#endif
+ HAL_WRITE_UINT32(AT91_AIC+AT91_AIC_IDCR, (1<<vector));
+}
+
+void hal_interrupt_unmask(int vector)
+{
+ CYG_ASSERT(vector <= CYGNUM_HAL_ISR_MAX &&
+ vector >= CYGNUM_HAL_ISR_MIN , "Invalid vector");
+
+#if CYGINT_HAL_ARM_AT91_SYS_INTERRUPT
+ if (vector >= 32) {
+ hal_interrupt_configure(CYGINT_HAL_ARM_AT91_SYS_INTERRUPT, true, true);
+ HAL_WRITE_UINT32(AT91_AIC+AT91_AIC_IECR,
+ (1 <<CYGINT_HAL_ARM_AT91_SYS_INTERRUPT));
+ return;
+ }
+#endif
+ HAL_WRITE_UINT32(AT91_AIC+AT91_AIC_IECR, (1<<vector));
+}
+
+void hal_interrupt_acknowledge(int vector)
+{
+ // No check for valid vector here! Spurious interrupts
+ // must be acknowledged, too.
+ HAL_WRITE_UINT32(AT91_AIC+AT91_AIC_EOI, 0xFFFFFFFF);
+}
+
+void hal_interrupt_configure(int vector, int level, int up)
+{
+ cyg_uint32 mode;
+
+ CYG_ASSERT(vector <= CYGNUM_HAL_ISR_MAX &&
+ vector >= CYGNUM_HAL_ISR_MIN , "Invalid vector");
+
+#if CYGINT_HAL_ARM_AT91_SYS_INTERRUPT
+ if (vector >= 32)
+ return;
+#endif
+ if (level) {
+ if (up) {
+ mode = AT91_AIC_SMR_LEVEL_HI;
+ } else {
+ mode = AT91_AIC_SMR_LEVEL_LOW;
+ }
+ } else {
+ if (up) {
+ mode = AT91_AIC_SMR_EDGE_POS;
+ } else {
+ mode = AT91_AIC_SMR_EDGE_NEG;
+ }
+ }
+ mode |= 7; // Default priority
+ HAL_WRITE_UINT32(AT91_AIC+(AT91_AIC_SMR0+(vector*4)), mode);
+}
+
+void hal_interrupt_set_level(int vector, int level)
+{
+ cyg_uint32 mode;
+
+ CYG_ASSERT(vector <= CYGNUM_HAL_ISR_MAX &&
+ vector >= CYGNUM_HAL_ISR_MIN , "Invalid vector");
+ CYG_ASSERT(level >= 0 && level <= 7, "Invalid level");
+
+#if CYGINT_HAL_ARM_AT91_SYS_INTERRUPT
+ if (vector >= 32)
+ return;
+#endif
+
+ HAL_READ_UINT32(AT91_AIC+(AT91_AIC_SMR0+(vector*4)), mode);
+ mode = (mode & ~AT91_AIC_SMR_PRIORITY) | level;
+ HAL_WRITE_UINT32(AT91_AIC+(AT91_AIC_SMR0+(vector*4)), mode);
+}
+
+void hal_show_IRQ(int vector, int data, int handler)
+{
+// UNDEFINED(__FUNCTION__); // FIXME
+}
+
+
+#ifndef AT91_RST
+/* Use the watchdog to generate a reset */
+void hal_at91_reset_cpu(void)
+{
+ HAL_WRITE_UINT32(AT91_WD + AT91_WD_OMR, AT91_WD_OMR_OKEY);
+ HAL_WRITE_UINT32(AT91_WD + AT91_WD_CMR, AT91_WD_CMR_CKEY);
+ HAL_WRITE_UINT32(AT91_WD + AT91_WD_CR, AT91_WD_CR_RSTKEY);
+ HAL_WRITE_UINT32(AT91_WD + AT91_WD_OMR,
+ (AT91_WD_OMR_OKEY |
+ AT91_WD_OMR_RSTEN |
+ AT91_WD_OMR_EXTEN | // also reset external circuitry
+ AT91_WD_OMR_WDEN));
+ while(1) CYG_EMPTY_STATEMENT;
+}
+#else
+/* Use the Reset Controller to generate a reset */
+void hal_at91_reset_cpu(void)
+{
+ HAL_WRITE_UINT32(AT91_RST + AT91_RST_RCR,
+ AT91_RST_RCR_PROCRST |
+ AT91_RST_RCR_ICERST |
+ AT91_RST_RCR_PERRST |
+ AT91_RST_RCR_KEY);
+ while(1) CYG_EMPTY_STATEMENT;
+}
+#endif
+//--------------------------------------------------------------------------
+// EOF at91_misc.c
diff --git a/ecos/packages/hal/arm/at91/var/current/src/hal_diag.c b/ecos/packages/hal/arm/at91/var/current/src/hal_diag.c
new file mode 100644
index 0000000..b5621e2
--- /dev/null
+++ b/ecos/packages/hal/arm/at91/var/current/src/hal_diag.c
@@ -0,0 +1,373 @@
+/*=============================================================================
+//
+// hal_diag.c
+//
+// HAL diagnostic output code
+//
+//=============================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jskov
+// Contributors:jskov, gthomas
+// Date: 2001-07-12
+// Purpose: HAL diagnostic output
+// Description: Implementations of HAL diagnostic output support.
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================*/
+
+#include <pkgconf/hal.h>
+#include CYGBLD_HAL_PLATFORM_H
+
+#include <cyg/infra/cyg_type.h> // base types
+
+#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
+#include <cyg/hal/hal_diag.h>
+
+#include <cyg/hal/var_io.h> // USART registers
+
+#include "hal_diag_dcc.h" // DCC initialization file
+//-----------------------------------------------------------------------------
+typedef struct {
+ cyg_uint8* base;
+ cyg_int32 msec_timeout;
+ int isr_vector;
+ int baud_rate;
+} channel_data_t;
+
+//-----------------------------------------------------------------------------
+
+void
+cyg_hal_plf_serial_putc(void *__ch_data, char c);
+
+static void
+cyg_hal_plf_serial_init_channel(void* __ch_data)
+{
+ channel_data_t* chan = (channel_data_t*)__ch_data;
+ cyg_uint8* base = chan->base;
+
+ // Reset device
+ HAL_WRITE_UINT32(base+AT91_US_CR, AT91_US_CR_RxRESET | AT91_US_CR_TxRESET);
+
+ // 8-1-no parity.
+ HAL_WRITE_UINT32(base+AT91_US_MR,
+ AT91_US_MR_CLOCK_MCK | AT91_US_MR_LENGTH_8 |
+ AT91_US_MR_PARITY_NONE | AT91_US_MR_STOP_1);
+
+ HAL_WRITE_UINT32(base+AT91_US_BRG, AT91_US_BAUD(chan->baud_rate));
+
+ // Enable RX and TX
+ HAL_WRITE_UINT32(base+AT91_US_CR, AT91_US_CR_RxENAB | AT91_US_CR_TxENAB);
+
+}
+
+void
+cyg_hal_plf_serial_putc(void *__ch_data, char c)
+{
+ cyg_uint8* base = ((channel_data_t*)__ch_data)->base;
+ cyg_uint32 status, ch;
+ CYGARC_HAL_SAVE_GP();
+
+ do {
+ HAL_READ_UINT32(base+AT91_US_CSR, status);
+ } while ((status & AT91_US_CSR_TxRDY) == 0);
+
+ ch = (cyg_uint32)c;
+ HAL_WRITE_UINT32(base+AT91_US_THR, ch);
+
+ CYGARC_HAL_RESTORE_GP();
+}
+
+static cyg_bool
+cyg_hal_plf_serial_getc_nonblock(void* __ch_data, cyg_uint8* ch)
+{
+ channel_data_t* chan = (channel_data_t*)__ch_data;
+ cyg_uint8* base = chan->base;
+ cyg_uint32 stat;
+ cyg_uint32 c;
+
+ HAL_READ_UINT32(base+AT91_US_CSR, stat);
+ if ((stat & AT91_US_CSR_RxRDY) == 0)
+ return false;
+
+ HAL_READ_UINT32(base+AT91_US_RHR, c);
+ *ch = (cyg_uint8)(c & 0xff);
+
+ 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;
+}
+
+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* base = ((channel_data_t*)__ch_data)->base;
+ int ret = 0;
+ va_list ap;
+
+ CYGARC_HAL_SAVE_GP();
+ va_start(ap, __func);
+
+ switch (__func) {
+ case __COMMCTL_GETBAUD:
+ ret = chan->baud_rate;
+ break;
+ case __COMMCTL_SETBAUD:
+ chan->baud_rate = va_arg(ap, cyg_int32);
+ // Should we verify this value here?
+ cyg_hal_plf_serial_init_channel(chan);
+ ret = 0;
+ break;
+ case __COMMCTL_IRQ_ENABLE:
+ irq_state = 1;
+ HAL_INTERRUPT_ACKNOWLEDGE(chan->isr_vector);
+ HAL_INTERRUPT_UNMASK(chan->isr_vector);
+ HAL_WRITE_UINT32(base+AT91_US_IER, AT91_US_IER_RxRDY);
+ break;
+ case __COMMCTL_IRQ_DISABLE:
+ ret = irq_state;
+ irq_state = 0;
+ HAL_INTERRUPT_MASK(chan->isr_vector);
+ HAL_WRITE_UINT32(base+AT91_US_IDR, AT91_US_IER_RxRDY);
+ break;
+ case __COMMCTL_DBG_ISR_VECTOR:
+ ret = chan->isr_vector;
+ break;
+ case __COMMCTL_SET_TIMEOUT:
+ ret = chan->msec_timeout;
+ chan->msec_timeout = va_arg(ap, cyg_uint32);
+ default:
+ break;
+ }
+
+ va_end(ap);
+ 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;
+ channel_data_t* chan = (channel_data_t*)__ch_data;
+ cyg_uint32 c;
+ cyg_uint8 ch;
+ cyg_uint32 stat;
+ CYGARC_HAL_SAVE_GP();
+
+ *__ctrlc = 0;
+ HAL_READ_UINT32(chan->base+AT91_US_CSR, stat);
+ if ( (stat & AT91_US_CSR_RxRDY) != 0 ) {
+
+ HAL_READ_UINT32(chan->base+AT91_US_RHR, c);
+ ch = (cyg_uint8)(c & 0xff);
+ if( cyg_hal_is_break( &ch , 1 ) )
+ *__ctrlc = 1;
+
+ res = CYG_ISR_HANDLED;
+ }
+
+ HAL_INTERRUPT_ACKNOWLEDGE(chan->isr_vector);
+
+ CYGARC_HAL_RESTORE_GP();
+ return res;
+}
+
+static channel_data_t at91_ser_channels[CYGNUM_HAL_VIRTUAL_VECTOR_COMM_CHANNELS] = {
+#if CYGNUM_HAL_VIRTUAL_VECTOR_COMM_CHANNELS > 0
+ { (cyg_uint8*)AT91_USART0, 1000, CYGNUM_HAL_INTERRUPT_USART0, CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_BAUD},
+#if CYGNUM_HAL_VIRTUAL_VECTOR_COMM_CHANNELS > 1
+ { (cyg_uint8*)AT91_USART1, 1000, CYGNUM_HAL_INTERRUPT_USART1, CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_BAUD},
+#if CYGNUM_HAL_VIRTUAL_VECTOR_COMM_CHANNELS > 2
+ { (cyg_uint8*)AT91_USART2, 1000, CYGNUM_HAL_INTERRUPT_USART2, CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_BAUD}
+#endif
+#endif
+#endif
+};
+
+static void
+cyg_hal_plf_serial_init(void)
+{
+ hal_virtual_comm_table_t* comm;
+ int cur;
+
+ cur = CYGACC_CALL_IF_SET_CONSOLE_COMM(CYGNUM_CALL_IF_SET_COMM_ID_QUERY_CURRENT);
+
+ // Init channels
+#if CYGNUM_HAL_VIRTUAL_VECTOR_COMM_CHANNELS > 0
+ cyg_hal_plf_serial_init_channel(&at91_ser_channels[0]);
+#if CYGNUM_HAL_VIRTUAL_VECTOR_COMM_CHANNELS > 1
+ cyg_hal_plf_serial_init_channel(&at91_ser_channels[1]);
+#if CYGNUM_HAL_VIRTUAL_VECTOR_COMM_CHANNELS > 2
+ cyg_hal_plf_serial_init_channel(&at91_ser_channels[2]);
+#endif
+#endif
+#endif
+ // Setup procs in the vector table
+
+ // Set channel 0
+#if CYGNUM_HAL_VIRTUAL_VECTOR_COMM_CHANNELS > 0
+ CYGACC_CALL_IF_SET_CONSOLE_COMM(0);
+ comm = CYGACC_CALL_IF_CONSOLE_PROCS();
+ CYGACC_COMM_IF_CH_DATA_SET(*comm, &at91_ser_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);
+
+#if CYGNUM_HAL_VIRTUAL_VECTOR_COMM_CHANNELS > 1
+ // Set channel 1
+ CYGACC_CALL_IF_SET_CONSOLE_COMM(1);
+ comm = CYGACC_CALL_IF_CONSOLE_PROCS();
+ CYGACC_COMM_IF_CH_DATA_SET(*comm, &at91_ser_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);
+
+#if CYGNUM_HAL_VIRTUAL_VECTOR_COMM_CHANNELS > 2
+ CYGACC_CALL_IF_SET_CONSOLE_COMM(2);
+ comm = CYGACC_CALL_IF_CONSOLE_PROCS();
+ CYGACC_COMM_IF_CH_DATA_SET(*comm, &at91_ser_channels[2]);
+ 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);
+#endif
+#endif
+#endif
+
+ // 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();
+
+#ifdef CYGBLD_HAL_ARM_AT91_DCC
+ cyg_hal_plf_dcc_init(CYGBLD_HAL_ARM_AT91_DCC_CHANNEL);
+#endif
+}
+
+void
+hal_diag_led(int mask)
+{
+ hal_at91_set_leds(mask);
+}
+
+//-----------------------------------------------------------------------------
+// End of hal_diag.c
diff --git a/ecos/packages/hal/arm/at91/var/current/src/hal_diag_dbg.c b/ecos/packages/hal/arm/at91/var/current/src/hal_diag_dbg.c
new file mode 100644
index 0000000..606387b
--- /dev/null
+++ b/ecos/packages/hal/arm/at91/var/current/src/hal_diag_dbg.c
@@ -0,0 +1,349 @@
+/*=============================================================================
+//
+// hal_diag_dbg.c
+//
+// HAL diagnostic output code using the debug serial port
+//
+//=============================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002, 2006 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jskov
+// Contributors:jskov, gthomas
+// Date: 2001-07-12
+// Purpose: HAL diagnostic output
+// Description: Implementations of HAL diagnostic output support.
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================*/
+
+
+#include <pkgconf/hal.h>
+#include <pkgconf/hal_arm_at91.h>
+
+#include CYGBLD_HAL_PLATFORM_H
+
+#include <cyg/infra/cyg_type.h> // base types
+
+#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
+#include <cyg/hal/hal_diag.h>
+
+#include <cyg/hal/var_io.h> // Device registers
+
+#include "hal_diag_dcc.h" // DCC initialization file
+//-----------------------------------------------------------------------------
+typedef struct {
+ cyg_uint8* base;
+ cyg_int32 msec_timeout;
+ int isr_vector;
+ cyg_uint32 baud_rate;
+} channel_data_t;
+
+//-----------------------------------------------------------------------------
+
+static void
+cyg_hal_plf_serial_dbg_init_channel(void* __ch_data)
+{
+ cyg_uint8 *base = ((channel_data_t*)__ch_data)->base;
+
+ cyg_uint32 baud_value = 0;
+ cyg_uint32 baud_rate = ((channel_data_t*)__ch_data)->baud_rate;
+
+ /* Enable pins to be driven by peripheral, using peripheral A. */
+ HAL_WRITE_UINT32((AT91_PIO+AT91_PIO_ASR),
+ (AT91_PIO_PSR_DRXD |
+ AT91_PIO_PSR_DTXD));
+
+ /* Disables the PIO from controlling the corresponding pin
+ (enables peripheral control of the pin). */
+ HAL_WRITE_UINT32((AT91_PIO+AT91_PIO_PDR),
+ (AT91_PIO_PSR_DRXD |
+ AT91_PIO_PSR_DTXD));
+
+ /* Disable interrupt */
+ HAL_WRITE_UINT32((base+AT91_DBG_IDR), 0xFFFFFFFF);
+
+ /* Reset receiver and transmitter */
+ HAL_WRITE_UINT32((base+AT91_DBG_CR),
+ (AT91_DBG_CR_RSTRX | AT91_DBG_CR_RSTTX |
+ AT91_DBG_CR_RXDIS | AT91_DBG_CR_TXDIS));
+
+ baud_value = AT91_US_BAUD(baud_rate);
+
+ HAL_WRITE_UINT32((base+AT91_DBG_BRGR), baud_value);
+
+ /* Define the USART mode */
+ /* (USART) Normal, 1 stop bit, No Parity, Character Length: 8 bits, Clock */
+ HAL_WRITE_UINT32(base+AT91_DBG_MR,
+ (AT91_DBG_MR_CHMODE_NORMAL |
+ AT91_DBG_MR_PAR_NONE));
+
+ /* Enable Transmitter */
+ HAL_WRITE_UINT32((base+AT91_DBG_CR), AT91_DBG_CR_TXEN);
+
+ /* Enable Receiver */
+ HAL_WRITE_UINT32((base+AT91_DBG_CR), AT91_DBG_CR_RXEN);
+}
+
+void
+cyg_hal_plf_serial_dbg_putc(void* __ch_data, char c)
+{
+ cyg_uint8 * base = ((channel_data_t*)__ch_data)->base;
+ cyg_uint32 status;
+ CYGARC_HAL_SAVE_GP();
+
+ // Wait for Tx FIFO not full
+ do
+ {
+ HAL_READ_UINT32((base+AT91_DBG_CSR), status);
+ }
+ while (!(status & AT91_DBG_CSR_TXRDY)) ;
+
+ //UART TX data register
+ HAL_WRITE_UINT8((base+AT91_DBG_THR), c);
+
+ CYGARC_HAL_RESTORE_GP();
+}
+
+static cyg_bool
+cyg_hal_plf_serial_dbg_getc_nonblock(void* __ch_data, cyg_uint8* ch)
+{
+ cyg_uint8 * base = ((channel_data_t*)__ch_data)->base;
+ cyg_uint32 status;
+
+ HAL_READ_UINT32((base+AT91_DBG_CSR), status);
+ if (status & AT91_DBG_CSR_RXRDY)
+ {
+ HAL_READ_UINT8((base+AT91_DBG_RHR), *ch);
+ return true;
+ }
+ return false;
+}
+
+cyg_uint8
+cyg_hal_plf_serial_dbg_getc(void* __ch_data)
+{
+ cyg_uint8 ch;
+ CYGARC_HAL_SAVE_GP();
+
+ while (!cyg_hal_plf_serial_dbg_getc_nonblock(__ch_data, &ch));
+
+ CYGARC_HAL_RESTORE_GP();
+ return ch;
+}
+
+static void
+cyg_hal_plf_serial_dbg_write(void* __ch_data, const cyg_uint8* __buf,
+ cyg_uint32 __len)
+{
+ CYGARC_HAL_SAVE_GP();
+
+ while (__len-- > 0)
+ cyg_hal_plf_serial_dbg_putc(__ch_data, *__buf++);
+
+ CYGARC_HAL_RESTORE_GP();
+}
+
+static void
+cyg_hal_plf_serial_dbg_read(void* __ch_data, cyg_uint8* __buf, cyg_uint32 __len)
+{
+ CYGARC_HAL_SAVE_GP();
+
+ while (__len-- > 0)
+ *__buf++ = cyg_hal_plf_serial_dbg_getc(__ch_data);
+
+ CYGARC_HAL_RESTORE_GP();
+}
+
+cyg_bool
+cyg_hal_plf_serial_dbg_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_dbg_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_dbg_control(void *__ch_data, __comm_control_cmd_t __func, ...)
+{
+ static int irq_state = 0;
+ channel_data_t* chan = (channel_data_t*)__ch_data;
+ int ret = 0;
+ va_list ap;
+
+ CYGARC_HAL_SAVE_GP();
+ va_start(ap, __func);
+
+ switch (__func) {
+ case __COMMCTL_GETBAUD:
+ ret = chan->baud_rate;
+ break;
+ case __COMMCTL_SETBAUD:
+ chan->baud_rate = va_arg(ap, cyg_int32);
+ // Should we verify this value here?
+ cyg_hal_plf_serial_dbg_init_channel(chan);
+ ret = 0;
+ break;
+ case __COMMCTL_IRQ_ENABLE:
+ irq_state = 1;
+ HAL_INTERRUPT_UNMASK(chan->isr_vector);
+ HAL_WRITE_UINT32((chan->base+AT91_DBG_IER), AT91_DBG_CSR_RXRDY);
+ break;
+ case __COMMCTL_IRQ_DISABLE:
+ ret = irq_state;
+ irq_state = 0;
+ HAL_WRITE_UINT32((chan->base+AT91_DBG_IDR), AT91_DBG_CSR_RXRDY);
+ HAL_INTERRUPT_MASK(chan->isr_vector);
+ break;
+ case __COMMCTL_DBG_ISR_VECTOR:
+ ret = chan->isr_vector;
+ break;
+ case __COMMCTL_SET_TIMEOUT:
+ ret = chan->msec_timeout;
+ chan->msec_timeout = va_arg(ap, cyg_uint32);
+ default:
+ break;
+ }
+ CYGARC_HAL_RESTORE_GP();
+ return ret;
+}
+
+static int
+cyg_hal_plf_serial_dbg_isr(void *__ch_data, int* __ctrlc,
+ CYG_ADDRWORD __vector, CYG_ADDRWORD __data)
+{
+ int res = 0;
+ channel_data_t* chan = (channel_data_t*)__ch_data;
+ cyg_uint32 status;
+ cyg_uint32 c;
+ cyg_uint8 ch;
+ CYGARC_HAL_SAVE_GP();
+
+ *__ctrlc = 0;
+ HAL_READ_UINT32(chan->base+AT91_DBG_CSR, status);
+ if ( (status & AT91_DBG_CSR_RXRDY) != 0 ) {
+
+ HAL_READ_UINT32(chan->base+AT91_DBG_RHR, c);
+ ch = (cyg_uint8)(c & 0xff);
+ if( cyg_hal_is_break( &ch , 1 ) )
+ *__ctrlc = 1;
+
+ res = CYG_ISR_HANDLED;
+ }
+
+ HAL_INTERRUPT_ACKNOWLEDGE(chan->isr_vector);
+
+ CYGARC_HAL_RESTORE_GP();
+ return res;
+}
+
+static channel_data_t at91_ser_channels[1] = {
+ { (cyg_uint8*)AT91_DBG, 1000, CYGNUM_HAL_INTERRUPT_DBG,
+ CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_BAUD}
+};
+
+static void
+cyg_hal_plf_serial_init(void)
+{
+ hal_virtual_comm_table_t* comm;
+ int cur;
+
+ cur = CYGACC_CALL_IF_SET_CONSOLE_COMM(CYGNUM_CALL_IF_SET_COMM_ID_QUERY_CURRENT);
+
+ // Init channels
+ cyg_hal_plf_serial_dbg_init_channel(&at91_ser_channels[0]);
+
+ // 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, &at91_ser_channels[0]);
+ CYGACC_COMM_IF_WRITE_SET(*comm, cyg_hal_plf_serial_dbg_write);
+ CYGACC_COMM_IF_READ_SET(*comm, cyg_hal_plf_serial_dbg_read);
+ CYGACC_COMM_IF_PUTC_SET(*comm, cyg_hal_plf_serial_dbg_putc);
+ CYGACC_COMM_IF_GETC_SET(*comm, cyg_hal_plf_serial_dbg_getc);
+ CYGACC_COMM_IF_CONTROL_SET(*comm, cyg_hal_plf_serial_dbg_control);
+ CYGACC_COMM_IF_DBG_ISR_SET(*comm, cyg_hal_plf_serial_dbg_isr);
+ CYGACC_COMM_IF_GETC_TIMEOUT_SET(*comm, cyg_hal_plf_serial_dbg_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();
+
+#ifdef CYGBLD_HAL_ARM_AT91_DCC
+ cyg_hal_plf_dcc_init(CYGBLD_HAL_ARM_AT91_DCC_CHANNEL);
+#endif
+}
+
+void
+hal_diag_led(int mask)
+{
+ hal_at91_set_leds(mask);
+}
+
+//-----------------------------------------------------------------------------
+// End of hal_diag_dbg.c
diff --git a/ecos/packages/hal/arm/at91/var/current/src/hal_diag_dcc.c b/ecos/packages/hal/arm/at91/var/current/src/hal_diag_dcc.c
new file mode 100644
index 0000000..abf8a88
--- /dev/null
+++ b/ecos/packages/hal/arm/at91/var/current/src/hal_diag_dcc.c
@@ -0,0 +1,209 @@
+/*=============================================================================
+//
+// hal_diag_dcc.c
+//
+// HAL diagnostic output via the DCC interface.
+//
+//=============================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002, 2008 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): Andrew Lunn
+// Contributors:jskov, gthomas
+// Date: 2008-06-15
+// Purpose: HAL diagnostic output via DCC.
+// Description: Implementations of HAL diagnostic output support.
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================*/
+
+#include <pkgconf/hal.h>
+#include CYGBLD_HAL_PLATFORM_H
+
+#include <cyg/infra/cyg_type.h> // base types
+
+#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/hal_diag.h>
+
+#define DCC_TX_BUSY 2
+#define DCC_RX_READY 1
+
+//-----------------------------------------------------------------------------
+
+static void
+cyg_hal_plf_dcc_putc(void * __ch_data, char ch)
+{
+ unsigned int status;
+ CYG_UNUSED_PARAM(void *, __ch_data);
+
+ CYGARC_HAL_SAVE_GP();
+
+ do {
+ __asm__ volatile ( "mrc p14,0, %0, c0, c0\n" : "=r" (status));
+ } while ( status & DCC_TX_BUSY );
+ __asm__( "mcr p14,0, %0, c1, c0\n" : : "r" (ch));
+
+ CYGARC_HAL_RESTORE_GP();
+}
+
+static cyg_bool
+cyg_hal_plf_dcc_getc_nonblock(cyg_uint8* ch)
+{
+ cyg_uint32 status;
+ cyg_uint32 c;
+
+ __asm__( "mrc p14,0, %0, c0, c0\n" : "=r" (status));
+
+ if (status & DCC_RX_READY) {
+ __asm__( "mrc p14,0, %0, c1, c0\n" : "=r" (c));
+ *ch = (char )c;
+ return true;
+ } else
+ return false;
+}
+
+static cyg_uint8
+cyg_hal_plf_dcc_getc(void* __ch_data)
+{
+ cyg_uint8 ch;
+ CYG_UNUSED_PARAM(void *, __ch_data);
+ CYGARC_HAL_SAVE_GP();
+
+ while(!cyg_hal_plf_dcc_getc_nonblock(&ch));
+
+ CYGARC_HAL_RESTORE_GP();
+ return ch;
+}
+
+static void
+cyg_hal_plf_dcc_write(void* __ch_data, const cyg_uint8* __buf,
+ cyg_uint32 __len)
+{
+ CYG_UNUSED_PARAM(void *, __ch_data);
+ CYGARC_HAL_SAVE_GP();
+
+ while(__len-- > 0)
+ cyg_hal_plf_dcc_putc(NULL, *__buf++);
+
+ CYGARC_HAL_RESTORE_GP();
+}
+
+static void
+cyg_hal_plf_dcc_read(void* __ch_data, cyg_uint8* __buf, cyg_uint32 __len)
+{
+ CYG_UNUSED_PARAM(void *, __ch_data);
+ CYGARC_HAL_SAVE_GP();
+
+ while(__len-- > 0)
+ *__buf++ = cyg_hal_plf_dcc_getc(NULL);
+
+ CYGARC_HAL_RESTORE_GP();
+}
+
+static cyg_bool
+cyg_hal_plf_dcc_getc_timeout(void* __ch_data, cyg_uint8* ch)
+{
+ int delay_count;
+ cyg_bool res;
+ CYG_UNUSED_PARAM(void *, __ch_data);
+
+ CYGARC_HAL_SAVE_GP();
+
+ delay_count = 100010; // delay in .1 ms steps
+
+ for(;;) {
+ res = cyg_hal_plf_dcc_getc_nonblock(ch);
+ if (res || 0 == delay_count--)
+ break;
+
+ CYGACC_CALL_IF_DELAY_US(100);
+ }
+
+ CYGARC_HAL_RESTORE_GP();
+ return res;
+}
+
+static int
+cyg_hal_plf_dcc_control(void *__ch_data, __comm_control_cmd_t __func, ...)
+{
+ CYG_UNUSED_PARAM(void *, __ch_data);
+ CYG_UNUSED_PARAM(__comm_control_cmd_t, __func);
+
+ return 0;
+}
+
+static void
+cyg_hal_plf_dcc_register(const int channel)
+{
+ hal_virtual_comm_table_t* comm;
+ int cur;
+
+ cur = CYGACC_CALL_IF_SET_CONSOLE_COMM(CYGNUM_CALL_IF_SET_COMM_ID_QUERY_CURRENT);
+ // Setup procs in the vector table
+
+ CYGACC_CALL_IF_SET_CONSOLE_COMM(channel);
+ comm = CYGACC_CALL_IF_CONSOLE_PROCS();
+ CYGACC_COMM_IF_CH_DATA_SET(*comm, NULL);
+ CYGACC_COMM_IF_WRITE_SET(*comm, cyg_hal_plf_dcc_write);
+ CYGACC_COMM_IF_READ_SET(*comm, cyg_hal_plf_dcc_read);
+ CYGACC_COMM_IF_PUTC_SET(*comm, cyg_hal_plf_dcc_putc);
+ CYGACC_COMM_IF_GETC_SET(*comm, cyg_hal_plf_dcc_getc);
+ CYGACC_COMM_IF_CONTROL_SET(*comm, cyg_hal_plf_dcc_control);
+ CYGACC_COMM_IF_DBG_ISR_SET(*comm, NULL);
+ CYGACC_COMM_IF_GETC_TIMEOUT_SET(*comm, cyg_hal_plf_dcc_getc_timeout);
+
+ // Restore to original console.
+ CYGACC_CALL_IF_SET_CONSOLE_COMM(cur);
+}
+
+void
+cyg_hal_plf_dcc_init(const int channel)
+{
+ static int initialized = 0;
+
+ if (initialized)
+ return;
+
+ initialized = 1;
+
+ cyg_hal_plf_dcc_register(channel);
+}
+
+//-----------------------------------------------------------------------------
+// End of hal_diag_dcc.c
diff --git a/ecos/packages/hal/arm/at91/var/current/src/hal_diag_dcc.h b/ecos/packages/hal/arm/at91/var/current/src/hal_diag_dcc.h
new file mode 100644
index 0000000..0739a4c
--- /dev/null
+++ b/ecos/packages/hal/arm/at91/var/current/src/hal_diag_dcc.h
@@ -0,0 +1,59 @@
+#ifndef CYGONCE_HAL_DIAG_DCC_H
+#define CYGONCE_HAL_DIAG_DCC_H
+
+//=============================================================================
+//
+// hal_diag_dcc.h
+//
+// HAL Support for Kernel Diagnostic Routines via DCC
+//
+//=============================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 2008 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): asl
+// Contributors:
+// Date: 2008-06-15
+// Purpose: HAL Support for Kernel Diagnostic Routines via DCC.
+// Description: Diagnostic routines for use during kernel development.
+// Usage: #include "hal_diag_dcc.h"
+//
+//####DESCRIPTIONEND####
+//
+//=============================================================================
+
+externC void cyg_hal_plf_dcc_init(const int channel);
+
+#endif
+
diff --git a/ecos/packages/hal/arm/at91/var/current/src/timer_pit.c b/ecos/packages/hal/arm/at91/var/current/src/timer_pit.c
new file mode 100644
index 0000000..211f1fc
--- /dev/null
+++ b/ecos/packages/hal/arm/at91/var/current/src/timer_pit.c
@@ -0,0 +1,178 @@
+/*==========================================================================
+//
+// timer_pit.c
+//
+// HAL timer code using the Periodic Interval Timer
+//
+//==========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 2006 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//==========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): asl, Oliver Munz
+// Contributors: asl, Oliver Munz
+// Date: 2009-06-03
+// Purpose: Clock support using the PIT
+// Description:
+//
+//####DESCRIPTIONEND####
+//
+//========================================================================*/
+
+#include <pkgconf/hal.h>
+
+#include <cyg/infra/cyg_type.h> // base types
+#include <cyg/infra/cyg_ass.h> // assertion macros
+
+#include <cyg/hal/hal_io.h> // IO macros
+#include <cyg/hal/hal_platform_ints.h>
+// -------------------------------------------------------------------------
+// Use system clock
+void
+hal_clock_initialize(cyg_uint32 period){
+
+ cyg_uint32 ir;
+ cyg_uint32 pimr;
+
+ CYG_ASSERT(CYGNUM_HAL_INTERRUPT_RTC == CYGNUM_HAL_INTERRUPT_PITC,
+ "Invalid timer interrupt");
+ CYG_ASSERT(period <= AT91_PITC_VALUE_MASK,
+ "Invalid timer period");
+
+ pimr = (period - 1); /* This is what we want */
+ HAL_READ_UINT32(AT91_PITC + AT91_PITC_PIIR, ir); /* Counter */
+ ir = ir & AT91_PITC_VALUE_MASK; /* The current count */
+
+ do { /* Test if the new PITC-Modulus is overrun by the counter */
+ if (ir > pimr){ /* If the counter is already too high */
+
+ pimr = (ir + 100) & AT91_PITC_VALUE_MASK; /* Set the comparator ahead */
+ HAL_WRITE_UINT32((AT91_PITC + AT91_PITC_PIMR),
+ pimr | AT91_PITC_PIMR_PITEN);
+ }
+ if (ir < (period - 1)){ /* If we can try it */
+ pimr = (period - 1); /* This is what we want */
+ /* Set the real Period Interval timer */
+ HAL_WRITE_UINT32((AT91_PITC + AT91_PITC_PIMR),
+ pimr | AT91_PITC_PIMR_PITEN);
+ }
+ HAL_READ_UINT32(AT91_PITC + AT91_PITC_PIMR, pimr); /* The real value */
+ pimr = pimr & AT91_PITC_VALUE_MASK; /* Value */
+ HAL_READ_UINT32(AT91_PITC + AT91_PITC_PIIR, ir); /* Counter */
+ ir = ir & AT91_PITC_VALUE_MASK; /* The current counts */
+
+ } while (ir > (period - 1) || pimr != (period - 1)); // Is it correct?
+
+ /* Enable interrupt */
+ HAL_WRITE_UINT32((AT91_PITC + AT91_PITC_PIMR), (period - 1) |
+ AT91_PITC_PIMR_PITEN | AT91_PITC_PIMR_PITIEN);
+
+ /* Read the status register to clear any pending interrupt */
+ HAL_READ_UINT32(AT91_PITC + AT91_PITC_PISR, ir);
+}
+
+// This routine is called during a clock interrupt.
+void
+hal_clock_reset(cyg_uint32 vector, cyg_uint32 period)
+{
+ cyg_uint32 reg;
+ cyg_uint32 pimr;
+
+ CYG_ASSERT(period < AT91_PITC_VALUE_MASK, "Invalid HAL clock configuration");
+
+ // Check that the PIT has the right period.
+ HAL_READ_UINT32((AT91_PITC + AT91_PITC_PIMR), pimr);
+ if ((pimr & AT91_PITC_VALUE_MASK) != (period - 1)) {
+ HAL_WRITE_UINT32((AT91_PITC + AT91_PITC_PIMR),
+ (period - 1) |
+ AT91_PITC_PIMR_PITEN |
+ AT91_PITC_PIMR_PITIEN);
+ }
+
+ /* Read the value register so that we clear the interrupt */
+ HAL_READ_UINT32(AT91_PITC + AT91_PITC_PIVR, reg);
+}
+
+// Read the current value of the clock, returning the number of hardware
+// "ticks" that have occurred (i.e. how far away the current value is from
+// the start)
+void
+hal_clock_read(cyg_uint32 *pvalue)
+{
+ cyg_uint32 ir;
+ cyg_uint32 pimr;
+
+ // Check that the PIT is running. If not start it.
+ HAL_READ_UINT32((AT91_PITC + AT91_PITC_PIMR),pimr);
+ if (!(pimr & AT91_PITC_PIMR_PITEN)) {
+ HAL_WRITE_UINT32((AT91_PITC + AT91_PITC_PIMR),
+ AT91_PITC_VALUE_MASK | AT91_PITC_PIMR_PITEN);
+ }
+
+ HAL_READ_UINT32(AT91_PITC + AT91_PITC_PIIR, ir);
+ *pvalue = ir & AT91_PITC_VALUE_MASK;
+}
+
+// -------------------------------------------------------------------------
+//
+// Delay for some number of micro-seconds
+// PIT is clocked at MCLK / 16
+//
+void hal_delay_us(cyg_int32 usecs)
+{
+ cyg_int64 ticks;
+ cyg_uint32 val1, val2;
+ cyg_uint32 piv;
+
+ // Calculate how many PIT ticks the required number of microseconds
+ // equate to. We do this calculation in 64 bit arithmetic to avoid
+ // overflow.
+ ticks = (((cyg_uint64)usecs) *
+ ((cyg_uint64)CYGNUM_HAL_ARM_AT91_CLOCK_SPEED))/16/1000000LL;
+
+ // Calculate the wrap around period.
+ HAL_READ_UINT32(AT91_PITC + AT91_PITC_PIMR, piv);
+ piv = (piv & AT91_PITC_VALUE_MASK) - 1;
+
+ hal_clock_read(&val1);
+ while (ticks > 0) {
+ hal_clock_read(&val2);
+ if (val2 < val1)
+ ticks -= ((piv + val2) - val1); //overflow occurred
+ else
+ ticks -= (val2 - val1);
+ val1 = val2;
+ }
+}
+
+// timer_pit.c
diff --git a/ecos/packages/hal/arm/at91/var/current/src/timer_tc.c b/ecos/packages/hal/arm/at91/var/current/src/timer_tc.c
new file mode 100644
index 0000000..577000f
--- /dev/null
+++ b/ecos/packages/hal/arm/at91/var/current/src/timer_tc.c
@@ -0,0 +1,219 @@
+/*==========================================================================
+//
+// timer_tc.c
+//
+// HAL timer code using the Timer Counter
+//
+//==========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2010 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//==========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): gthomas
+// Contributors: gthomas, jskov, nickg, tkoeller, jld
+// Date: 2001-07-12
+// Purpose: HAL board support
+// Description: Implementations of HAL board interfaces
+//
+//####DESCRIPTIONEND####
+//
+//========================================================================*/
+
+#include <pkgconf/hal.h>
+
+#include <cyg/infra/cyg_type.h> // base types
+#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_intr.h> // necessary?
+
+#ifdef CYGFUN_HAL_ARM_AT91_PROFILE_TIMER
+#include <cyg/hal/drv_api.h> // CYG_ISR_HANDLED
+#include <cyg/profile/profile.h> // __profile_hit()
+#endif
+
+// -------------------------------------------------------------------------
+// Clock support
+
+static cyg_uint32 _period;
+
+void hal_clock_initialize(cyg_uint32 period)
+{
+ CYG_ADDRESS timer = AT91_TC+AT91_TC_TC0;
+
+ CYG_ASSERT(period < 0x10000, "Invalid clock period");
+
+ // Disable counter
+ HAL_WRITE_UINT32(timer+AT91_TC_CCR, AT91_TC_CCR_CLKDIS);
+
+ // Set registers
+ HAL_WRITE_UINT32(timer+AT91_TC_CMR, AT91_TC_CMR_CPCTRG | // Reset counter on CPC
+ AT91_TC_CMR_CLKS_MCK32); // 1 MHz
+ HAL_WRITE_UINT32(timer+AT91_TC_RC, period);
+
+ // Start timer
+ HAL_WRITE_UINT32(timer+AT91_TC_CCR, AT91_TC_CCR_TRIG | AT91_TC_CCR_CLKEN);
+
+ // Enable timer 0 interrupt
+ HAL_WRITE_UINT32(timer+AT91_TC_IER, AT91_TC_IER_CPC);
+}
+
+void hal_clock_reset(cyg_uint32 vector, cyg_uint32 period)
+{
+ CYG_ADDRESS timer = AT91_TC+AT91_TC_TC0;
+ cyg_uint32 sr;
+
+ CYG_ASSERT(period < 0x10000, "Invalid clock period");
+
+ HAL_READ_UINT32(timer+AT91_TC_SR, sr); // Clear interrupt
+
+ if (period != _period) {
+ hal_clock_initialize(period);
+ }
+ _period = period;
+
+}
+
+void hal_clock_read(cyg_uint32 *pvalue)
+{
+ CYG_ADDRESS timer = AT91_TC+AT91_TC_TC0;
+ cyg_uint32 val;
+
+ HAL_READ_UINT32(timer+AT91_TC_CV, val);
+ *pvalue = val;
+}
+
+// -------------------------------------------------------------------------
+//
+// Delay for some number of micro-seconds
+// Use timer #2 in MCLOCK/32 mode.
+//
+void hal_delay_us(cyg_int32 usecs)
+{
+ cyg_uint32 stat;
+ cyg_uint64 ticks;
+#if defined(CYGHWR_HAL_ARM_AT91_JTST)
+ // TC2 is reserved for AD/DA. Use TC1 instead.
+ CYG_ADDRESS timer = AT91_TC+AT91_TC_TC1;
+#else
+ CYG_ADDRESS timer = AT91_TC+AT91_TC_TC2;
+#endif
+ // Calculate how many timer ticks the required number of
+ // microseconds equate to. We do this calculation in 64 bit
+ // arithmetic to avoid overflow.
+ ticks = (((cyg_uint64)usecs) *
+ ((cyg_uint64)CYGNUM_HAL_ARM_AT91_CLOCK_SPEED))/32000000LL;
+
+ // CYG_ASSERT(ticks < (1 << 16), "Timer overflow");
+
+ if (ticks > (1 << 16))
+ ticks = (1 << 16) - 1;
+
+ if (ticks == 0)
+ return;
+
+ // Disable counter
+ HAL_WRITE_UINT32(timer+AT91_TC_CCR, AT91_TC_CCR_CLKDIS);
+
+ // Set registers
+ HAL_WRITE_UINT32(timer+AT91_TC_CMR, AT91_TC_CMR_CLKS_MCK32); // 1MHz
+ HAL_WRITE_UINT32(timer+AT91_TC_RA, 0);
+ HAL_WRITE_UINT32(timer+AT91_TC_RC, ticks);
+
+ // Clear status flags
+ HAL_READ_UINT32(timer+AT91_TC_SR, stat);
+
+ // Start timer
+ HAL_WRITE_UINT32(timer+AT91_TC_CCR, AT91_TC_CCR_TRIG | AT91_TC_CCR_CLKEN);
+
+ // Wait for the compare
+ do {
+ HAL_READ_UINT32(timer+AT91_TC_SR, stat);
+ } while ((stat & AT91_TC_SR_CPC) == 0);
+}
+
+#ifdef CYGFUN_HAL_ARM_AT91_PROFILE_TIMER
+
+// Use TC1 for profiling
+#define AT91_TC_PROFILE AT91_TC_TC1
+#define HAL_INTERRUPT_PROFILE CYGNUM_HAL_INTERRUPT_TIMER1
+
+// Profiling timer ISR
+static cyg_uint32 profile_isr(CYG_ADDRWORD vector, CYG_ADDRWORD data, HAL_SavedRegisters *regs)
+{
+ cyg_uint32 status;
+
+ HAL_READ_UINT32(AT91_TC+AT91_TC_PROFILE+AT91_TC_SR, status); // Clear interrupt
+ HAL_INTERRUPT_ACKNOWLEDGE(HAL_INTERRUPT_PROFILE);
+ __profile_hit(regs->pc);
+ return CYG_ISR_HANDLED;
+}
+
+// Profiling timer setup
+int hal_enable_profile_timer(int resolution)
+{
+ cyg_uint32 period;
+
+ // Calculate how many timer ticks the requested resolution in
+ // microseconds equates to. We do this calculation in 64 bit
+ // arithmetic to avoid overflow.
+ period = (cyg_uint32)((((cyg_uint64)resolution) *
+ ((cyg_uint64)CYGNUM_HAL_ARM_AT91_CLOCK_SPEED))/32000000LL);
+
+ CYG_ASSERT(period < 0x10000, "Invalid profile timer resolution"); // 16 bits only
+
+ // Attach ISR
+ HAL_INTERRUPT_ATTACH(HAL_INTERRUPT_PROFILE, &profile_isr, 0x1111, 0);
+ HAL_INTERRUPT_UNMASK(HAL_INTERRUPT_PROFILE);
+
+ // Disable counter
+ HAL_WRITE_UINT32(AT91_TC+AT91_TC_PROFILE+AT91_TC_CCR, AT91_TC_CCR_CLKDIS);
+
+ // Set registers
+ HAL_WRITE_UINT32(AT91_TC+AT91_TC_PROFILE+AT91_TC_CMR, AT91_TC_CMR_CPCTRG | // Reset counter on CPC
+ AT91_TC_CMR_CLKS_MCK32); // Use MCLK/32
+ HAL_WRITE_UINT32(AT91_TC+AT91_TC_PROFILE+AT91_TC_RC, period);
+
+ // Start timer
+ HAL_WRITE_UINT32(AT91_TC+AT91_TC_PROFILE+AT91_TC_CCR, AT91_TC_CCR_TRIG | AT91_TC_CCR_CLKEN);
+
+ // Enable timer interrupt
+ HAL_WRITE_UINT32(AT91_TC+AT91_TC_PROFILE+AT91_TC_IER, AT91_TC_IER_CPC);
+
+ return resolution;
+}
+
+#endif // CYGFUN_HAL_ARM_AT91_PROFILE_TIMER
+
+// timer_tc.c
diff --git a/ecos/packages/hal/arm/cma230/current/ChangeLog b/ecos/packages/hal/arm/cma230/current/ChangeLog
new file mode 100644
index 0000000..6157f81
--- /dev/null
+++ b/ecos/packages/hal/arm/cma230/current/ChangeLog
@@ -0,0 +1,392 @@
+2009-01-31 Bart Veer <bartv@ecoscentric.com>
+
+ * cdl/hal_arm_cma230.cdl: update compiler flags for gcc 4.x
+
+2009-01-24 Bart Veer <bartv@ecoscentric.com>
+
+ * cdl/hal_arm_cma230.cdl: switch from arm-elf-gcc to
+ arm-eabi-gcc.
+
+2003-07-18 Nick Garnett <nickg@balti.calivar.com>
+
+ * cdl/hal_arm_cma230.cdl:
+ Changed values for CYGNUM_HAL_RTC_NUMERATOR,
+ CYGNUM_HAL_RTC_DENOMINATOR and CYGNUM_HAL_RTC_PERIOD to
+ "default_value" from "calculated". This makes it easier
+ to change these values globally.
+
+2003-04-11 Bart Veer <bartv@ecoscentric.com>
+
+ * cdl/hal_arm_cma230.cdl: building for thumb now involves
+ arm-elf-gcc -mthumb, not thumb-elf-gcc
+
+2002-08-06 Gary Thomas <gary@chez-thomas.org>
+2002-08-06 Motoya Kurotsu <kurotsu@allied-telesis.co.jp>
+
+ * src/hal_diag.c: I/O channel data can't be constant - contains
+ timeout information which can be changed.
+
+2002-05-23 Jesper Skov <jskov@redhat.com>
+
+ * cdl/hal_arm_cma230.cdl: Don't run cache tests.
+
+2002-05-13 Jesper Skov <jskov@redhat.com>
+
+ * cdl/hal_arm_cma230.cdl: Removed implemntation of
+ CYGINT_HAL_VIRTUAL_VECTOR_SUPPORT_NOT_GUARANTEED.
+
+2002-04-24 Jesper Skov <jskov@redhat.com>
+
+ * cdl/hal_arm_cma230.cdl: CYGPRI_KERNEL_TESTS_DHRYSTONE_PASSES
+ defined.
+
+2002-01-28 Jesper Skov <jskov@redhat.com>
+
+ * include/plf_io.h: Added.
+
+2001-06-08 Jonathan Larmour <jlarmour@redhat.com>
+
+ * include/hal_cache.h: Correctly indicate absence of cache in CMA230
+ variant.
+
+2001-04-16 Gary Thomas <gthomas@redhat.com>
+
+ * cdl/hal_arm_cma230.cdl: Add CDL to describe CPU family.
+
+2001-03-08 Jesper Skov <jskov@redhat.com>
+
+ * cdl/hal_arm_cma230.cdl: Does not guarantee virtual vector
+ support.
+
+2001-02-20 Jesper Skov <jskov@redhat.com>
+
+ * cdl/hal_arm_cma230.cdl: Also enable -mthumb-interwork when
+ building ROM monitors (or calls from Thumb code would die on
+ return).
+ Reworked a bit.
+
+2001-02-13 Gary Thomas <gthomas@redhat.com>
+
+ * src/cma230_misc.c (hal_IRQ_handler):
+ Return CYGNUM_HAL_INTERRUPT_NONE for spurious interrupts.
+
+2001-02-08 Jesper Skov <jskov@redhat.com>
+
+ * cdl/hal_arm_cma230.cdl: Respect channel configuration
+ constraints.
+
+ * src/hal_diag.c: Replace CYGSEM_HAL_DIAG_MANGLER_None with
+ CYGDBG_HAL_DIAG_TO_DEBUG_CHAN.
+
+2001-01-31 Jesper Skov <jskov@redhat.com>
+
+ * src/hal_diag.c: Replaced CYGDBG_HAL_DIAG_DISABLE_GDB_PROTOCOL
+ with CYGSEM_HAL_DIAG_MANGLER_None
+
+2001-01-26 Jesper Skov <jskov@redhat.com>
+
+ * src/hal_diag.c: Removed CYGSEM_HAL_VIRTUAL_VECTOR_DIAG check.
+ * include/plf_stub.h: Moved reset macro to
+ * include/hal_platform_ints.h: this file.
+
+2000-12-04 Hugo Tyson <hmt@redhat.com>
+
+ * include/hal_cache.h: Consistently ensure that ARM registers used
+ in MCR ops to cache-control coprocessors, where the data doesn't
+ matter, all actually have data zero ("SBZ") as in the Jaggar book.
+ This may well not be necessary, but for the sake of making sure...
+
+2000-10-20 Jonathan Larmour <jlarmour@redhat.com>
+
+ * include/pkgconf/mlt_arm_cma222_ram.mlt:
+ * include/pkgconf/mlt_arm_cma222_rom.mlt:
+ * include/pkgconf/mlt_arm_cma230_ram.mlt:
+ * include/pkgconf/mlt_arm_cma230_rom.mlt:
+ Add heap1 section
+
+ * include/pkgconf/mlt_arm_cma222_ram.h:
+ * include/pkgconf/mlt_arm_cma222_rom.h:
+ * include/pkgconf/mlt_arm_cma230_ram.h:
+ * include/pkgconf/mlt_arm_cma230_rom.h:
+ * include/pkgconf/mlt_arm_cma222_ram.ldi:
+ * include/pkgconf/mlt_arm_cma222_rom.ldi:
+ * include/pkgconf/mlt_arm_cma230_ram.ldi:
+ * include/pkgconf/mlt_arm_cma230_rom.ldi:
+ Regenerate
+
+2000-07-05 Jesper Skov <jskov@redhat.com>
+
+ * cdl/hal_arm_cma230.cdl:
+ * include/hal_diag.h:
+ * include/plf_stub.h:
+ * src/cma230_misc.c:
+ * src/hal_diag.c:
+ * src/plf_stub.c: [deleted]
+ Changed to support virtual vectors.
+
+2000-06-18 Gary Thomas <gthomas@redhat.com>
+
+ * include/pkgconf/mlt_arm_cma222_ram.ldi:
+ * include/pkgconf/mlt_arm_cma222_ram.mlt:
+ * include/pkgconf/mlt_arm_cma222_rom.ldi:
+ * include/pkgconf/mlt_arm_cma222_rom.mlt:
+ * include/pkgconf/mlt_arm_cma230T_ram.ldi:
+ * include/pkgconf/mlt_arm_cma230T_ram.mlt:
+ * include/pkgconf/mlt_arm_cma230T_rom.ldi:
+ * include/pkgconf/mlt_arm_cma230T_rom.mlt:
+ * include/pkgconf/mlt_arm_cma230_ram.ldi:
+ * include/pkgconf/mlt_arm_cma230_ram.mlt:
+ * include/pkgconf/mlt_arm_cma230_rom.ldi:
+ * include/pkgconf/mlt_arm_cma230_rom.mlt:
+ Incorporate new fixed vectors (used on all ARM platforms).
+
+2000-02-29 Jonathan Larmour <jlarmour@redhat.co.uk>
+
+ * include/pkgconf/mlt_arm_cma222_ram.h:
+ * include/pkgconf/mlt_arm_cma222_ram.ldi:
+ * include/pkgconf/mlt_arm_cma222_ram.mlt:
+ * include/pkgconf/mlt_arm_cma222_rom.h:
+ * include/pkgconf/mlt_arm_cma222_rom.ldi:
+ * include/pkgconf/mlt_arm_cma222_rom.mlt:
+ * include/pkgconf/mlt_arm_cma230_ram.h:
+ * include/pkgconf/mlt_arm_cma230_ram.ldi:
+ * include/pkgconf/mlt_arm_cma230_ram.mlt:
+ * include/pkgconf/mlt_arm_cma230_rom.h:
+ * include/pkgconf/mlt_arm_cma230_rom.ldi:
+ * include/pkgconf/mlt_arm_cma230_rom.mlt:
+ Align all sections on word boundaries
+
+2000-02-18 Jonathan Larmour <jlarmour@redhat.co.uk>
+
+ * cdl/hal_arm_cma230.cdl (CYGBLD_BUILD_GDB_STUBS): When
+ building stubs, define every dependency required here rather than
+ in the template
+
+2000-02-10 Jesper Skov <jskov@redhat.com>
+
+ * include/plf_stub.h:
+ HAL_STUB_PLATFORM_STUBS_INIT->HAL_STUB_PLATFORM_INIT
+
+ * misc/STUBS_config:
+ * include/pkgconf/hal_arm_cma230.h:
+ Removed stubs as a legal startup type.
+
+2000-02-07 Jesper Skov <jskov@redhat.com>
+
+ * cdl/hal_arm_cma230.cdl: Use cpu options when linking.
+
+2000-02-03 Jesper Skov <jskov@redhat.com>
+
+ * cdl/hal_arm_cma230.cdl: Implements stubs.
+
+2000-02-02 Jesper Skov <jskov@redhat.com>
+
+ * cdl/hal_arm_cma230.cdl: Use common stub code and build rule.
+
+2000-01-28 Jesper Skov <jskov@redhat.com>
+
+ * cdl/hal_arm_cma230.cdl: Changed description.
+
+2000-01-26 Jesper Skov <jskov@redhat.com>
+
+ * cdl/hal_arm_cma230.cdl: Fix CDL display.
+
+2000-01-24 Jesper Skov <jskov@cygnus.co.uk>
+
+ * cdl/hal_arm_cma230.cdl: Add stubs build rule.
+
+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.
+
+1999-12-20 Gary Thomas <gthomas@cygnus.co.uk>
+
+ * cdl/hal_arm_cma230.cdl: Add -Wl for linker options.
+
+1999-12-16 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * cdl/hal_arm_cma230.cdl: Add support for cma230T
+
+1999-12-08 Gary Thomas <gthomas@cygnus.co.uk>
+
+ * cdl/hal_arm_cma230.cdl: Update for CMA222 support.
+
+1999-12-02 Mark Salter <msalter@cygnus.com>
+
+ * include/hal_platform_setup.h: Add support for CMA222 (ARM710T).
+ * include/hal_cache.h: Add support for unified CMA222 caches.
+ * include/hal_platform_extras.h: New file with static MMU tables.
+
+1999-11-25 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/pkgconf/mlt_arm_cma230T_stubs.ldi,
+ include/pkgconf/mlt_arm_cma230T_stubs.mlt:
+ Delete - we don't have stubs startup for thumb mode
+
+ * src/hal_diag.c: Conditionalize def of diag_buffer for only when it's
+ explicitly wanted and someone hacks the code
+ (hal_diag_write_char): Likewise
+
+1999-11-25 Gary Thomas <gthomas@cygnus.co.uk>
+
+ * include/pkgconf/mlt_arm_cma230_stubs.h: New file.
+
+ * include/pkgconf/mlt_arm_cma230T_rom.h:
+ * include/pkgconf/mlt_arm_cma230T_ram.h:
+ * include/pkgconf/mlt_arm_cma230_rom.h:
+ * include/pkgconf/mlt_arm_cma230_ram.h: Update "do not edit" strings.
+
+1999-11-09 Gary Thomas <gthomas@cygnus.co.uk>
+
+ * include/pkgconf/mlt_arm_cma230T_ram.h:
+ * include/pkgconf/mlt_arm_cma230T_rom.h:
+ * include/pkgconf/mlt_arm_cma230_ram.h:
+ * include/pkgconf/mlt_arm_cma230_rom.h: New files.
+
+ * include/pkgconf/mlt_arm_cma230T_ram.ldi:
+ * include/pkgconf/mlt_arm_cma230T_ram.ldi:
+ * include/pkgconf/mlt_arm_cma230_rom.ldi:
+ * include/pkgconf/mlt_arm_cma230_rom.mlt: Update with correct memory layout.
+
+1999-11-09 John Dallaway <jld@cygnus.co.uk>
+
+ * include/pkgconf/hal_arm_cma230.h:
+
+ Add platform attribute to CYGPKG_HAL_ARM_CMA230.
+
+1999-11-09 Gary Thomas <gthomas@cygnus.co.uk>
+
+ * src/hal_diag.c: Honor GDB_DISABLE option.
+
+1999-11-01 Jesper Skov <jskov@cygnus.co.uk>
+
+ * cdl/hal_arm_cma230.cdl: Remove define_proc comments.
+
+1999-10-28 Jesper Skov <jskov@cygnus.co.uk>
+
+ * misc/PKGconf.mak: Don't strip symbols when making .img.
+
+1999-10-27 Jesper Skov <jskov@cygnus.co.uk>
+
+ * src/hal_diag.c: Fixed conditional include.
+
+1999-10-26 Hugo Tyson <hmt@cygnus.co.uk>
+
+ * src/hal_diag.c (hal_diag_write_char): Use new macro
+ CYG_HAL_GDB_ENTER_CRITICAL_IO_REGION and its mate to control
+ stepping through gdb $O packet output.
+
+1999-10-26 John Dallaway <jld@cygnus.co.uk>
+
+ * cdl/hal_arm_cma230.cdl:
+
+ Rename CYGBLD_GLOBAL_PREFIX to
+ CYGBLD_GLOBAL_COMMAND_PREFIX
+
+1999-10-20 Simon FitzMaurice <sdf@cygnus.co.uk>
+ * cdl/hal_arm_aeb.cdl:
+
+ Remove -Wl options from compiler flags
+
+1999-10-20 John Dallaway <jld@cygnus.co.uk>
+
+ * cdl/hal_arm_cma230.cdl:
+ Define memory layout-related CDL options.
+
+
+1999-10-19 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/hal_cma230.h: Fix ifdefs and comments to be for
+ the cma230, not any other board
+ * misc/gdb_module.c: Likewise
+ * src/PKGconf.mak: Likewise
+
+1999-10-18 John Dallaway <jld@cygnus.co.uk>
+
+ * cdl/hal_arm_cma230.cdl:
+
+ Define CYGTST_TESTING_IDENTIFIER and
+ CYGBLD_GLOBAL_PREFIX as a functions of CYGHWR_THUMB.
+
+ Define CYGBLD_GLOBAL_CFLAGS and CYGBLD_GLOBAL_LDFLAGS.
+
+1999-10-14 Jesper Skov <jskov@cygnus.co.uk>
+
+ * misc/STUBS_config: Updated.
+
+1999-10-06 John Dallaway <jld@cygnus.co.uk>
+
+ * cdl/hal_arm_cma230.cdl:
+ Define CYGTST_TESTING_IDENTIFIER.
+
+1999-09-16 Jesper Skov <jskov@cygnus.co.uk>
+
+ * include/pkgconf/hal_arm_cma230.h:
+ * cdl/hal_arm_cma230.cdl:
+ Removed arm/thumb options [defined by platform template].
+
+1999-08-16 John Dallaway <jld@cygnus.co.uk>
+
+ * include/pkgconf/hal_arm_cma230.h:
+
+ Proper case various display strings.
+
+1999-08-12 John Dallaway <jld@cygnus.co.uk>
+
+ * cdl/hal_arm_cma230.cdl:
+ Define CYG_HAL_STARTUP and CYGHWR_MEMORY_LAYOUT.
+
+1999-06-09 John Dallaway <jld@cygnus.co.uk>
+
+ * include/pkgconf/hal_arm_cma320.h: Remove the platform attribute
+ from cdl_package CYGPKG_HAL_ARM_CMA230 since the platform
+ is now specified by cdl_option CYGHWR_HAL_ARM_CMA230_*.
+
+1999-06-07 Gary Thomas <gthomas@cygnus.co.uk>
+
+ * images/:
+ * images/gdb_module.rom: New files - prebuilt ROM image.
+
+ * misc/STUBS_config: Was using wrong platform.
+
+1999-06-04 Gary Thomas <gthomas@cygnus.co.uk>
+
+ * src/cma230_misc.c: Fix problems with interrupts. First the
+ interrupt source register (ISR) contains all pending interrupts
+ and thus needs to be manually masked against those that are
+ enabled. Second, the interrupt mask register does not read
+ back properly, so a memory shadow is necessary.
+
+ * include/pkgconf/hal_arm_cma230.h: Add 'cma230T' (Thumb mode)
+ as a platform.
+
+//===========================================================================
+// ####GPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 2 or (at your option) any
+// later version.
+//
+// This program is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the
+// Free Software Foundation, Inc., 51 Franklin Street,
+// Fifth Floor, Boston, MA 02110-1301, USA.
+// -------------------------------------------
+// ####GPLCOPYRIGHTEND####
+//===========================================================================
diff --git a/ecos/packages/hal/arm/cma230/current/cdl/hal_arm_cma230.cdl b/ecos/packages/hal/arm/cma230/current/cdl/hal_arm_cma230.cdl
new file mode 100644
index 0000000..8009f17
--- /dev/null
+++ b/ecos/packages/hal/arm/cma230/current/cdl/hal_arm_cma230.cdl
@@ -0,0 +1,330 @@
+# ====================================================================
+#
+# hal_arm_cma230.cdl
+#
+# Cogent CMA230 board HAL package configuration data
+#
+# ====================================================================
+## ####ECOSGPLCOPYRIGHTBEGIN####
+## -------------------------------------------
+## This file is part of eCos, the Embedded Configurable Operating System.
+## Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+##
+## eCos is free software; you can redistribute it and/or modify it under
+## the terms of the GNU General Public License as published by the Free
+## Software Foundation; either version 2 or (at your option) any later
+## version.
+##
+## eCos is distributed in the hope that it will be useful, but WITHOUT
+## ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+## FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+## for more details.
+##
+## You should have received a copy of the GNU General Public License
+## along with eCos; if not, write to the Free Software Foundation, Inc.,
+## 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+##
+## As a special exception, if other files instantiate templates or use
+## macros or inline functions from this file, or you compile this file
+## and link it with other works to produce a work based on this file,
+## this file does not by itself cause the resulting work to be covered by
+## the GNU General Public License. However the source code for this file
+## must still be made available in accordance with section (3) of the GNU
+## General Public License v2.
+##
+## This exception does not invalidate any other reasons why a work based
+## on this file might be covered by the GNU General Public License.
+## -------------------------------------------
+## ####ECOSGPLCOPYRIGHTEND####
+# ====================================================================
+######DESCRIPTIONBEGIN####
+#
+# Author(s): jskov
+# Original data: gthomas
+# Contributors:
+# Date: 1999-07-01
+#
+#####DESCRIPTIONEND####
+#
+# ====================================================================
+
+cdl_package CYGPKG_HAL_ARM_CMA230 {
+ display "Cogent Computer Systems CMA2xx boards"
+ parent CYGPKG_HAL_ARM
+ hardware
+ include_dir cyg/hal
+ define_header hal_arm_cma230.h
+ description "
+ The cma230 HAL package provides the support needed to run
+ eCos on Cogent Computer Systems CMA2xx (CMA230, CMA222) boards."
+
+ compile hal_diag.c cma230_misc.c
+
+ implements CYGINT_HAL_DEBUG_GDB_STUBS
+ implements CYGINT_HAL_DEBUG_GDB_STUBS_BREAK
+ implements CYGINT_HAL_VIRTUAL_VECTOR_SUPPORT
+ implements CYGINT_HAL_ARM_ARCH_ARM7
+ implements CYGINT_HAL_ARM_THUMB_ARCH
+ implements CYGINT_HAL_TESTS_NO_CACHES
+
+ define_proc {
+ puts $::cdl_system_header "#define CYGBLD_HAL_TARGET_H <pkgconf/hal_arm.h>"
+ puts $::cdl_system_header "#define CYGBLD_HAL_PLATFORM_H <pkgconf/hal_arm_cma230.h>"
+
+ puts $::cdl_header "#define CYGPRI_KERNEL_TESTS_DHRYSTONE_PASSES 100000"
+ }
+
+ cdl_option CYGHWR_HAL_ARM_CMA2XX_VARIANT {
+ display "Cogent CMA2xxx processor variant"
+ flavor data
+ legal_values { "CMA230" "CMA222" }
+ default_value { "CMA230" }
+ description "
+ The processor variant used by the Cogent board."
+ }
+
+ 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 CMA230 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 onboard
+ debug software such as Angel or eCos GDB stubs. Select 'rom'
+ when building a stand-alone application which will be put
+ into ROM."
+ }
+
+ 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 controls the baud rate used for the GDB connection."
+ }
+
+ 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"
+ active_if CYGPRI_HAL_VIRTUAL_VECTOR_DEBUG_CHANNEL_CONFIGURABLE
+ flavor data
+ legal_values 0 to CYGNUM_HAL_VIRTUAL_VECTOR_COMM_CHANNELS-1
+ default_value 0
+ description "
+ The CMA230 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"
+ active_if CYGPRI_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_CONFIGURABLE
+ flavor data
+ legal_values 0 to CYGNUM_HAL_VIRTUAL_VECTOR_COMM_CHANNELS-1
+ default_value 0
+ description "
+ The CMA230 board has two serial ports. This option
+ chooses which port will be used for diagnostic output."
+ }
+
+ # 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
+ default_value 1000000000
+ }
+ cdl_option CYGNUM_HAL_RTC_DENOMINATOR {
+ display "Real-time clock denominator"
+ flavor data
+ default_value 100
+ }
+ cdl_option CYGNUM_HAL_RTC_PERIOD {
+ display "Real-time clock period"
+ flavor data
+ default_value 5000 ;# 2us clock
+ }
+ }
+
+ 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 { "arm-eabi"}
+ 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 { CYGBLD_GLOBAL_WARNFLAGS . CYGBLD_ARCH_CFLAGS .
+ "-mcpu=arm7tdmi -g -O2 -ffunction-sections -fdata-sections -fno-rtti -fno-exceptions " }
+ 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 CYGPKG_HAL_ARM_CMA2XX_CFLAGS_ADD {
+ display "Additional compiler flags"
+ flavor data
+ no_define
+ default_value { CYGHWR_HAL_ARM_CMA2XX_VARIANT == "CMA222" ? "-D__CMA222" : "" }
+ description "
+ This option modifies the set of compiler flags for
+ building the Cogent board HAL. These flags are used in addition
+ to the set of global flags."
+ }
+
+ cdl_option CYGPKG_HAL_ARM_CMA2XX_CFLAGS_REMOVE {
+ display "Suppressed compiler flags"
+ flavor data
+ no_define
+ default_value { "" }
+ description "
+ This option modifies the set of compiler flags for
+ building the Cogent board HAL. These flags are removed from
+ the set of global flags if present."
+ }
+
+ cdl_option CYGBLD_GLOBAL_LDFLAGS {
+ display "Global linker flags"
+ flavor data
+ no_define
+ default_value { CYGBLD_ARCH_LDFLAGS . "-mcpu=arm7tdmi -g -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 CYGBLD_BUILD_COMMON_GDB_STUBS
+ requires { CYG_HAL_STARTUP == "ROM" }
+ requires CYGSEM_HAL_ROM_MONITOR
+ 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."
+
+ make -priority 320 {
+ <PREFIX>/bin/gdb_module.bin : <PREFIX>/bin/gdb_module.img
+ @mv $< $(<:.img=.elf)
+ $(OBJCOPY) --strip-debug --change-addresses=0x10038000 $(<:.img=.elf) $<
+ $(OBJCOPY) -O binary $(<:.img=.elf) $@
+ }
+ }
+ }
+
+ cdl_component CYGHWR_MEMORY_LAYOUT {
+ display "Memory layout"
+ flavor data
+ no_define
+ calculated { CYGHWR_HAL_ARM_CMA2XX_VARIANT == "CMA230" ? \
+ (CYG_HAL_STARTUP == "RAM" ? "arm_cma230_ram" : \
+ "arm_cma230_rom"): \
+ (CYG_HAL_STARTUP == "RAM" ? "arm_cma222_ram" : \
+ "arm_cma222_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 { CYGHWR_HAL_ARM_CMA2XX_VARIANT == "CMA230" ? \
+ (CYG_HAL_STARTUP == "RAM" ? "<pkgconf/mlt_arm_cma230_ram.ldi>" : \
+ "<pkgconf/mlt_arm_cma230_rom.ldi>") : \
+ (CYG_HAL_STARTUP == "RAM" ? "<pkgconf/mlt_arm_cma222_ram.ldi>" : \
+ "<pkgconf/mlt_arm_cma222_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 { CYGHWR_HAL_ARM_CMA2XX_VARIANT == "CMA230" ? \
+ (CYG_HAL_STARTUP == "RAM" ? "<pkgconf/mlt_arm_cma230_ram.h>" : \
+ "<pkgconf/mlt_arm_cma230_rom.h>") : \
+ (CYG_HAL_STARTUP == "RAM" ? "<pkgconf/mlt_arm_cma222_ram.h>" : \
+ "<pkgconf/mlt_arm_cma222_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 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."
+ }
+}
diff --git a/ecos/packages/hal/arm/cma230/current/include/hal_cache.h b/ecos/packages/hal/arm/cma230/current/include/hal_cache.h
new file mode 100644
index 0000000..0cc72de
--- /dev/null
+++ b/ecos/packages/hal/arm/cma230/current/include/hal_cache.h
@@ -0,0 +1,350 @@
+#ifndef CYGONCE_HAL_CACHE_H
+#define CYGONCE_HAL_CACHE_H
+
+//=============================================================================
+//
+// hal_cache.h
+//
+// HAL cache control API
+//
+//=============================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): nickg, gthomas
+// Contributors: nickg, gthomas, msalter
+// Date: 1998-09-28
+// 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 <cyg/infra/cyg_type.h>
+
+#ifdef __CMA222
+//-----------------------------------------------------------------------------
+// Cache dimensions
+
+#define HAL_UCACHE_SIZE 0x2000 // Size of data cache in bytes
+#define HAL_UCACHE_LINE_SIZE 16 // Size of a data cache line
+#define HAL_UCACHE_WAYS 4 // Associativity of the cache
+#define HAL_UCACHE_SETS (HAL_UCACHE_SIZE/(HAL_UCACHE_LINE_SIZE*HAL_UCACHE_WAYS))
+
+#define HAL_CACHE_UNIFIED // Let programs know the caches are combined
+
+//-----------------------------------------------------------------------------
+// Global control of caches
+
+// Note: the 'mrc' doesn't seem to work.
+#if 0
+// Enable the data cache
+// mrc MMU_CP,0,r1,MMU_Control,c0
+// orr r1,r1,#MMU_Control_C|MMU_Control_B
+// mcr MMU_CP,0,r1,MMU_Control,c0
+
+#define HAL_UCACHE_ENABLE() \
+{ \
+ asm volatile ("mrc p15,0,r1,c1,c0;" \
+ "orr r1,r1,#0x000C;" \
+ "mcr p15,0,r1,c1,c0;" \
+ : \
+ : \
+ : "r1" /* Clobber list */ \
+ ); \
+ \
+}
+
+// Disable the data cache
+#define HAL_UCACHE_DISABLE() \
+{ \
+ asm volatile ("mrc p15,0,r1,c1,c0;" \
+ "bic r1,r1,#0x000C;" \
+ "mcr p15,0,r1,c1,c0;" \
+ : \
+ : \
+ : "r1" /* Clobber list */ \
+ ); \
+ \
+}
+#else
+#define HAL_UCACHE_ENABLE() \
+{ \
+ asm volatile ("mov r1,#0x7D;" \
+ "mcr p15,0,r1,c1,c0;" \
+ : \
+ : \
+ : "r1" /* Clobber list */ \
+ ); \
+ \
+}
+
+// Disable the data cache
+#define HAL_UCACHE_DISABLE() \
+{ \
+ asm volatile ("mov r1,#0x71;" \
+ "mcr p15,0,r1,c1,c0;" \
+ : \
+ : \
+ : "r1" /* Clobber list */ \
+ ); \
+ \
+}
+#endif
+
+// Is the cache turned on?
+#define HAL_UCACHE_IS_ENABLED(_state_) _state_ = 1;
+
+// Invalidate the entire cache
+// mcr MMU_CP,0,r1,MMU_InvalidateCache,c0
+#define HAL_UCACHE_INVALIDATE_ALL() \
+{ \
+ asm volatile ( \
+ "mov r1,#0;" \
+ "mcr p15,0,r1,c7,c0,0;" \
+ : \
+ : \
+ : "r1","memory" /* Clobber list */ \
+ ); \
+}
+
+// Synchronize the contents of the cache with memory.
+#define HAL_UCACHE_SYNC() \
+{ \
+ cyg_uint32 *ROM = (cyg_uint32 *)0xE0000000; \
+ int i; \
+ volatile cyg_uint32 val; \
+ for (i = 0; i < HAL_UCACHE_SETS; i++) { \
+ val = *ROM; \
+ ROM += HAL_UCACHE_LINE_SIZE; \
+ } \
+}
+
+// Purge contents of data cache
+#define HAL_UCACHE_PURGE_ALL() HAL_UCACHE_INVALIDATE_ALL()
+
+//-----------------------------------------------------------------------------
+// Data cache line control
+
+// Write dirty cache lines to memory and invalidate the cache entries
+// for the given address range.
+#define HAL_UCACHE_FLUSH( _base_ , _size_ ) HAL_UCACHE_SYNC()
+
+// Write dirty cache lines to memory for the given address range.
+#define HAL_UCACHE_STORE( _base_ , _size_ ) HAL_UCACHE_SYNC()
+
+#endif // ifdef __CMA222
+
+#ifdef HAL_CACHE_UNIFIED
+//-----------------------------------------------------------------------------
+// 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_)
+
+//-----------------------------------------------------------------------------
+// Data cache line control
+
+// 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_ )
+
+// Write dirty cache lines to memory for the given address range.
+#define HAL_DCACHE_STORE( _base_ , _size_ ) HAL_UCACHE_STORE( _base_ , _size_ )
+
+//-----------------------------------------------------------------------------
+// Global control of Instruction cache - use Data cache controls since they
+// are not separatable.
+
+#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()
+
+#else
+//-----------------------------------------------------------------------------
+// Cache dimensions
+
+// Data cache
+//#define HAL_DCACHE_SIZE 0 // Size of data cache in bytes
+//#define HAL_DCACHE_LINE_SIZE 0 // Size of a data cache line
+//#define HAL_DCACHE_WAYS 0 // Associativity of the cache
+
+// Instruction cache
+//#define HAL_ICACHE_SIZE 0 // Size of cache in bytes
+//#define HAL_ICACHE_LINE_SIZE 0 // Size of a cache line
+//#define HAL_ICACHE_WAYS 0 // 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
+#define HAL_DCACHE_ENABLE()
+
+// Disable the data cache
+#define HAL_DCACHE_DISABLE()
+
+// Invalidate the entire cache
+#define HAL_DCACHE_INVALIDATE_ALL()
+
+// Synchronize the contents of the cache with memory.
+#define HAL_DCACHE_SYNC()
+
+// Purge contents of data cache
+#define HAL_DCACHE_PURGE_ALL()
+
+// 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()
+
+// 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 HAL_CACHE_UNIFIED
+#endif // ifndef CYGONCE_HAL_CACHE_H
+// End of hal_cache.h
diff --git a/ecos/packages/hal/arm/cma230/current/include/hal_cma230.h b/ecos/packages/hal/arm/cma230/current/include/hal_cma230.h
new file mode 100644
index 0000000..5f23dc3
--- /dev/null
+++ b/ecos/packages/hal/arm/cma230/current/include/hal_cma230.h
@@ -0,0 +1,105 @@
+#ifndef CYGONCE_HAL_CMA230_H
+#define CYGONCE_HAL_CMA230_H
+
+/*=============================================================================
+//
+// hal_cma230.h
+//
+// HAL Support for Kernel Diagnostic Routines
+//
+//=============================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): gthomas
+// Contributors: gthomas
+// Date: 1999-04-19
+// Purpose: Cogent CMA230 hardware description
+// Description:
+// Usage: #include <cyg/hal/hal_cma230.h>
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================*/
+
+// Note: these defintions match the documentation, thus no attempt is made
+// to sanitise (mangle) the names. Also, care should be taken to keep this
+// clean for use in assembly code (no "C" constructs).
+
+#define CMA230_ISR 0x0F600000 // Interrupt source register - Read only
+#define CMA230_CLR 0x0F600008 // Clear interrupt source - Write only
+#define CMA230_IMRr 0x0F600010 // Interrupt mask register - Read only
+#define CMA230_IMRw 0x0F600018 // Interrupt mask register - Write only
+#define CMA230_ACK1 0x0F600020 // Interrupt acknowledge slot 1 - Read only
+#define CMA230_ACK2 0x0F600028 // Interrupt acknowledge slot 2 - Read only
+#define CMA230_ACK3 0x0F600030 // Interrupt acknowledge slot 3 - Read only
+
+#define CMA230_TC_COUNT 0x0F700020 // Timer value - 16 bits - Read only
+#define CMA230_TC_PRELOAD 0x0F700028 // Timer preload - 16 bits - Write only
+#define CMA230_TC_CLEAR 0x0F700030 // Timer clear - Write only
+#define CMA230_TC_ENABLE 0x0F700038 // Timer enable/start - Write only
+
+// Motherboard definitions
+
+#define CMA101_DUARTB 0x0E900000 // Base address
+#define CMA101_DUARTB_RHR 0x0E900000 // Receive holding register
+#define CMA101_DUARTB_THR 0x0E900000 // Transmit holding register
+#define CMA101_DUARTB_LBR 0x0E900000 // Low byte of baud rate
+#define CMA101_DUARTB_IER 0x0E900008 // Interrupt enable
+#define CMA101_DUARTB_HBR 0x0E900008 // High byte of baud rate
+#define CMA101_DUARTB_ISR 0x0E900010 // Interrupt status
+#define CMA101_DUARTB_FCTL 0x0E900010 // FIFO control
+#define CMA101_DUARTB_LCTL 0x0E900018 // Line control
+#define CMA101_DUARTB_MCTL 0x0E900020 // Modem control
+#define CMA101_DUARTB_LSR 0x0E900028 // Line status
+#define CMA101_DUARTB_MSR 0x0E900030 // Modem status
+#define CMA101_DUARTB_SCR 0x0E900038 // Scratch
+
+#define CMA101_DUARTA 0x0E900040 // Base address
+#define CMA101_DUARTA_RHR 0x0E900040 // Receive holding register
+#define CMA101_DUARTA_THR 0x0E900040 // Transmit holding register
+#define CMA101_DUARTA_LBR 0x0E900040 // Low byte of baud rate
+#define CMA101_DUARTA_IER 0x0E900048 // Interrupt enable
+#define CMA101_DUARTA_HBR 0x0E900048 // High byte of baud rate
+#define CMA101_DUARTA_ISR 0x0E900050 // Interrupt status
+#define CMA101_DUARTA_FCTL 0x0E900050 // FIFO control
+#define CMA101_DUARTA_LCTL 0x0E900058 // Line control
+#define CMA101_DUARTA_MCTL 0x0E900060 // Modem control
+#define CMA101_DUARTA_LSR 0x0E900068 // Line status
+#define CMA101_DUARTA_MSR 0x0E900070 // Modem status
+#define CMA101_DUARTA_SCR 0x0E900078 // Scratch
+
+/*---------------------------------------------------------------------------*/
+/* end of hal_cma230.h */
+#endif /* CYGONCE_HAL_CMA230_H */
diff --git a/ecos/packages/hal/arm/cma230/current/include/hal_diag.h b/ecos/packages/hal/arm/cma230/current/include/hal_diag.h
new file mode 100644
index 0000000..04de314
--- /dev/null
+++ b/ecos/packages/hal/arm/cma230/current/include/hal_diag.h
@@ -0,0 +1,89 @@
+#ifndef CYGONCE_HAL_DIAG_H
+#define CYGONCE_HAL_DIAG_H
+
+/*=============================================================================
+//
+// hal_diag.h
+//
+// HAL Support for Kernel Diagnostic Routines
+//
+//=============================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): nickg, gthomas
+// Contributors: nickg, gthomas
+// Date: 1998-09-11
+// 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_DIAG_H */
diff --git a/ecos/packages/hal/arm/cma230/current/include/hal_platform_extras.h b/ecos/packages/hal/arm/cma230/current/include/hal_platform_extras.h
new file mode 100644
index 0000000..6356f4b
--- /dev/null
+++ b/ecos/packages/hal/arm/cma230/current/include/hal_platform_extras.h
@@ -0,0 +1,164 @@
+#ifndef CYGONCE_HAL_PLATFORM_EXTRAS_H
+#define CYGONCE_HAL_PLATFORM_EXTRAS_H
+
+/*=============================================================================
+//
+// hal_platform_extras.h
+//
+// Platform specific support for HAL (assembly code)
+//
+//=============================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): gthomas
+// Contributors: gthomas, msalter
+// Date: 1999-12-02
+// Purpose: Cogent CMA222 platform extras, in particular MMU tables
+// Description:
+// Usage: #include <cyg/hal/hal_platform_extras.h>
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================*/
+
+ .section ".mmu_tables","aw"
+
+#define NEXT_PAGE \
+ .long PTE ; \
+ .set PTE,PTE+MMU_PAGE_SIZE
+
+_PT_0x0:
+ .set PTE,DRAM_PA_START|MMU_L2_TYPE_Small\
+ |MMU_AP_Any|MMU_Bufferable|MMU_Cacheable
+ .rept (0x2000000)/0x1000
+ NEXT_PAGE
+ .endr
+ .balign 0x0400
+
+// Too bad these macros don't work ['as' bug?] :-(
+
+#define NEXT_SECTION \
+ .long PTE+OFF ;\
+ .set OFF,OFF+(MMU_SECTION_SIZE/MMU_PAGE_SIZE)*4
+
+#define FILL_SEGMENT_(base) \
+ .set PTE,base \
+ .set OFF,0x00000000 \
+ .rept 0x10000000/MMU_SECTION_SIZE \
+ NEXT_SECTION \
+ .endr
+
+#define OFF ((MMU_SECTION_SIZE/MMU_PAGE_SIZE)*4)
+
+#define FILL_8M_SEGMENT(base,seg) \
+ .long base+(OFF*(seg+0x00)); \
+ .long base+(OFF*(seg+0x01)); \
+ .long base+(OFF*(seg+0x02)); \
+ .long base+(OFF*(seg+0x03)); \
+ .long base+(OFF*(seg+0x04)); \
+ .long base+(OFF*(seg+0x05)); \
+ .long base+(OFF*(seg+0x06)); \
+ .long base+(OFF*(seg+0x07)); \
+ .long base+(OFF*(seg+0x08));
+
+#define FILL_16M_SEGMENT(base,seg) \
+ .long base+(OFF*(seg+0x00)); \
+ .long base+(OFF*(seg+0x01)); \
+ .long base+(OFF*(seg+0x02)); \
+ .long base+(OFF*(seg+0x03)); \
+ .long base+(OFF*(seg+0x04)); \
+ .long base+(OFF*(seg+0x05)); \
+ .long base+(OFF*(seg+0x06)); \
+ .long base+(OFF*(seg+0x07)); \
+ .long base+(OFF*(seg+0x08)); \
+ .long base+(OFF*(seg+0x09)); \
+ .long base+(OFF*(seg+0x0A)); \
+ .long base+(OFF*(seg+0x0B)); \
+ .long base+(OFF*(seg+0x0C)); \
+ .long base+(OFF*(seg+0x0D)); \
+ .long base+(OFF*(seg+0x0E)); \
+ .long base+(OFF*(seg+0x0F));
+
+#define FILL_32M_SEGMENT(base,seg) \
+ FILL_16M_SEGMENT(base,0x00); \
+ FILL_16M_SEGMENT(base,0x10);
+
+#define FILL_256M_SEGMENT(base) \
+ FILL_16M_SEGMENT(base,0x00); \
+ FILL_16M_SEGMENT(base,0x10); \
+ FILL_16M_SEGMENT(base,0x20); \
+ FILL_16M_SEGMENT(base,0x30); \
+ FILL_16M_SEGMENT(base,0x40); \
+ FILL_16M_SEGMENT(base,0x50); \
+ FILL_16M_SEGMENT(base,0x60); \
+ FILL_16M_SEGMENT(base,0x70); \
+ FILL_16M_SEGMENT(base,0x80); \
+ FILL_16M_SEGMENT(base,0x90); \
+ FILL_16M_SEGMENT(base,0xA0); \
+ FILL_16M_SEGMENT(base,0xB0); \
+ FILL_16M_SEGMENT(base,0xC0); \
+ FILL_16M_SEGMENT(base,0xD0); \
+ FILL_16M_SEGMENT(base,0xE0); \
+ FILL_16M_SEGMENT(base,0xF0);
+
+ .balign 0x4000
+_MMU_table:
+ FILL_32M_SEGMENT(_PT_0x0+MMU_L1_TYPE_Page,0x00)
+ FILL_32M_SEGMENT(MMU_L1_TYPE_Fault,0x00)
+ FILL_32M_SEGMENT(PCIMEM_PA|MMU_L1_TYPE_Section|MMU_AP_Any)
+ FILL_32M_SEGMENT(MMU_L1_TYPE_Fault,0x00)
+ FILL_32M_SEGMENT(MMU_L1_TYPE_Fault,0x00)
+ FILL_32M_SEGMENT(MMU_L1_TYPE_Fault,0x00)
+ FILL_32M_SEGMENT(MMU_L1_TYPE_Fault,0x00)
+ FILL_8M_SEGMENT(ROM_PA|MMU_L1_TYPE_Section|MMU_AP_Any)
+ FILL_16M_SEGMENT(MBIO_PA|MMU_L1_TYPE_Section|MMU_AP_Any)
+ FILL_8M_SEGMENT(FLASH_PA|MMU_L1_TYPE_Section|MMU_AP_Any)
+ FILL_256M_SEGMENT(MMU_L1_TYPE_Fault)
+ FILL_256M_SEGMENT(MMU_L1_TYPE_Fault)
+ FILL_256M_SEGMENT(MMU_L1_TYPE_Fault)
+ FILL_256M_SEGMENT(MMU_L1_TYPE_Fault)
+ FILL_256M_SEGMENT(MMU_L1_TYPE_Fault)
+ FILL_256M_SEGMENT(MMU_L1_TYPE_Fault)
+ FILL_256M_SEGMENT(MMU_L1_TYPE_Fault)
+ FILL_256M_SEGMENT(MMU_L1_TYPE_Fault)
+ FILL_256M_SEGMENT(MMU_L1_TYPE_Fault)
+ FILL_256M_SEGMENT(MMU_L1_TYPE_Fault)
+ FILL_256M_SEGMENT(MMU_L1_TYPE_Fault)
+ FILL_256M_SEGMENT(MMU_L1_TYPE_Fault)
+ FILL_256M_SEGMENT(MMU_L1_TYPE_Fault)
+ FILL_256M_SEGMENT(MMU_L1_TYPE_Fault)
+ FILL_256M_SEGMENT(MMU_L1_TYPE_Fault)
+
+#endif // CYGONCE_HAL_PLATFORM_EXTRAS_H
diff --git a/ecos/packages/hal/arm/cma230/current/include/hal_platform_ints.h b/ecos/packages/hal/arm/cma230/current/include/hal_platform_ints.h
new file mode 100644
index 0000000..6d67616
--- /dev/null
+++ b/ecos/packages/hal/arm/cma230/current/include/hal_platform_ints.h
@@ -0,0 +1,82 @@
+#ifndef CYGONCE_HAL_PLATFORM_INTS_H
+#define CYGONCE_HAL_PLATFORM_INTS_H
+//==========================================================================
+//
+// hal_platform_ints.h
+//
+// HAL Interrupt and clock support
+//
+//==========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//==========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): gthomas
+// Contributors: gthomas
+// Date: 1999-04-21
+// Purpose: Define Interrupt support
+// Description: The interrupt details for the CMA230 are defined here.
+// Usage:
+// #include <cyg/hal/hal_platform_ints.h>
+// ...
+//
+//
+//####DESCRIPTIONEND####
+//
+//==========================================================================
+
+#define CYGNUM_HAL_INTERRUPT_unused 0
+#define CYGNUM_HAL_INTERRUPT_ABORT 1
+#define CYGNUM_HAL_INTERRUPT_SERIAL_B 2
+#define CYGNUM_HAL_INTERRUPT_SERIAL_A 3
+#define CYGNUM_HAL_INTERRUPT_TIMER 4
+#define CYGNUM_HAL_INTERRUPT_ETHER_PP 5 // Ethernet or Parallel port
+#define CYGNUM_HAL_INTERRUPT_SLOT1 6
+#define CYGNUM_HAL_INTERRUPT_SLOT2 7
+#define CYGNUM_HAL_INTERRUPT_SLOT3 8
+
+#define CYGNUM_HAL_ISR_MIN 0
+#define CYGNUM_HAL_ISR_MAX 8
+#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_TIMER
+
+
+//----------------------------------------------------------------------------
+// Reset.
+#define HAL_PLATFORM_RESET() CYG_EMPTY_STATEMENT
+
+#define HAL_PLATFORM_RESET_ENTRY 0xe000000
+
+#endif // CYGONCE_HAL_PLATFORM_INTS_H
diff --git a/ecos/packages/hal/arm/cma230/current/include/hal_platform_setup.h b/ecos/packages/hal/arm/cma230/current/include/hal_platform_setup.h
new file mode 100644
index 0000000..35c1b75
--- /dev/null
+++ b/ecos/packages/hal/arm/cma230/current/include/hal_platform_setup.h
@@ -0,0 +1,63 @@
+#ifndef CYGONCE_HAL_PLATFORM_SETUP_H
+#define CYGONCE_HAL_PLATFORM_SETUP_H
+
+/*=============================================================================
+//
+// hal_platform_setup.h
+//
+// Platform specific support for HAL (assembly code)
+//
+//=============================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): gthomas
+// Contributors: gthomas
+// Date: 1999-04-21
+// Purpose: Cogent CMA230 platform specific support routines
+// Description:
+// Usage: #include <cyg/hal/hal_platform_setup.h>
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================*/
+
+#include <cyg/hal/hal_cma230.h> // Platform specific hardware definitions
+
+#define PLATFORM_SETUP1 // Nothing special needed
+
+
+/*---------------------------------------------------------------------------*/
+/* end of hal_platform_setup.h */
+#endif /* CYGONCE_HAL_PLATFORM_SETUP_H */
diff --git a/ecos/packages/hal/arm/cma230/current/include/pkgconf/mlt_arm_cma222_ram.h b/ecos/packages/hal/arm/cma230/current/include/pkgconf/mlt_arm_cma222_ram.h
new file mode 100644
index 0000000..d1aef65
--- /dev/null
+++ b/ecos/packages/hal/arm/cma230/current/include/pkgconf/mlt_arm_cma222_ram.h
@@ -0,0 +1,17 @@
+// eCos memory layout - Fri Oct 20 05:35:09 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 (0)
+#define CYGMEM_REGION_ram_SIZE (0x200000)
+#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 (0x200000 - (size_t) CYG_LABEL_NAME (__heap1))
diff --git a/ecos/packages/hal/arm/cma230/current/include/pkgconf/mlt_arm_cma222_ram.ldi b/ecos/packages/hal/arm/cma230/current/include/pkgconf/mlt_arm_cma222_ram.ldi
new file mode 100644
index 0000000..65bb5b3
--- /dev/null
+++ b/ecos/packages/hal/arm/cma230/current/include/pkgconf/mlt_arm_cma222_ram.ldi
@@ -0,0 +1,27 @@
+// eCos memory layout - Fri Oct 20 05:35:09 2000
+
+// This is a generated file - do not edit
+
+#include <cyg/infra/cyg_type.inc>
+
+MEMORY
+{
+ ram : ORIGIN = 0, LENGTH = 0x200000
+}
+
+SECTIONS
+{
+ SECTIONS_BEGIN
+ SECTION_fixed_vectors (ram, 0x20, LMA_EQ_VMA)
+ SECTION_rom_vectors (ram, 0x8000, 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)
+ CYG_LABEL_DEFN(__heap1) = ALIGN (0x4);
+ SECTIONS_END
+}
diff --git a/ecos/packages/hal/arm/cma230/current/include/pkgconf/mlt_arm_cma222_ram.mlt b/ecos/packages/hal/arm/cma230/current/include/pkgconf/mlt_arm_cma222_ram.mlt
new file mode 100644
index 0000000..cc9780e
--- /dev/null
+++ b/ecos/packages/hal/arm/cma230/current/include/pkgconf/mlt_arm_cma222_ram.mlt
@@ -0,0 +1,13 @@
+version 0
+region ram 0 200000 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 8000 8000 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 1 0 1 heap1 heap1 !
+section heap1 0 4 0 0 0 0 0 0 !
diff --git a/ecos/packages/hal/arm/cma230/current/include/pkgconf/mlt_arm_cma222_rom.h b/ecos/packages/hal/arm/cma230/current/include/pkgconf/mlt_arm_cma222_rom.h
new file mode 100755
index 0000000..f7daa88
--- /dev/null
+++ b/ecos/packages/hal/arm/cma230/current/include/pkgconf/mlt_arm_cma222_rom.h
@@ -0,0 +1,20 @@
+// eCos memory layout - Fri Oct 20 05:34:42 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 (0)
+#define CYGMEM_REGION_ram_SIZE (0x200000)
+#define CYGMEM_REGION_ram_ATTR (CYGMEM_REGION_ATTR_R | CYGMEM_REGION_ATTR_W)
+#define CYGMEM_REGION_rom (0xe000000)
+#define CYGMEM_REGION_rom_SIZE (0x40000)
+#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 (0x200000 - (size_t) CYG_LABEL_NAME (__heap1))
diff --git a/ecos/packages/hal/arm/cma230/current/include/pkgconf/mlt_arm_cma222_rom.ldi b/ecos/packages/hal/arm/cma230/current/include/pkgconf/mlt_arm_cma222_rom.ldi
new file mode 100644
index 0000000..0a13a89
--- /dev/null
+++ b/ecos/packages/hal/arm/cma230/current/include/pkgconf/mlt_arm_cma222_rom.ldi
@@ -0,0 +1,28 @@
+// eCos memory layout - Fri Oct 20 05:34:42 2000
+
+// This is a generated file - do not edit
+
+#include <cyg/infra/cyg_type.inc>
+
+MEMORY
+{
+ ram : ORIGIN = 0, LENGTH = 0x200000
+ rom : ORIGIN = 0xe000000, LENGTH = 0x40000
+}
+
+SECTIONS
+{
+ SECTIONS_BEGIN
+ SECTION_rom_vectors (rom, 0xe000000, 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, 0x1000, FOLLOWING (.gcc_except_table))
+ SECTION_bss (ram, ALIGN (0x4), LMA_EQ_VMA)
+ CYG_LABEL_DEFN(__heap1) = ALIGN (0x4);
+ SECTIONS_END
+}
diff --git a/ecos/packages/hal/arm/cma230/current/include/pkgconf/mlt_arm_cma222_rom.mlt b/ecos/packages/hal/arm/cma230/current/include/pkgconf/mlt_arm_cma222_rom.mlt
new file mode 100644
index 0000000..deb6dfe
--- /dev/null
+++ b/ecos/packages/hal/arm/cma230/current/include/pkgconf/mlt_arm_cma222_rom.mlt
@@ -0,0 +1,14 @@
+version 0
+region ram 0 200000 0 !
+region rom e000000 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 1000 bss !
+section bss 0 4 0 1 0 1 0 1 heap1 heap1 !
+section heap1 0 4 0 0 0 0 0 0 !
+section rom_vectors 0 1 0 1 1 1 1 1 e000000 e000000 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 !
diff --git a/ecos/packages/hal/arm/cma230/current/include/pkgconf/mlt_arm_cma230_ram.h b/ecos/packages/hal/arm/cma230/current/include/pkgconf/mlt_arm_cma230_ram.h
new file mode 100755
index 0000000..7d6e7f8
--- /dev/null
+++ b/ecos/packages/hal/arm/cma230/current/include/pkgconf/mlt_arm_cma230_ram.h
@@ -0,0 +1,17 @@
+// eCos memory layout - Fri Oct 20 05:33:25 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 (0)
+#define CYGMEM_REGION_ram_SIZE (0x200000)
+#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 (0x200000 - (size_t) CYG_LABEL_NAME (__heap1))
diff --git a/ecos/packages/hal/arm/cma230/current/include/pkgconf/mlt_arm_cma230_ram.ldi b/ecos/packages/hal/arm/cma230/current/include/pkgconf/mlt_arm_cma230_ram.ldi
new file mode 100644
index 0000000..e95cb13
--- /dev/null
+++ b/ecos/packages/hal/arm/cma230/current/include/pkgconf/mlt_arm_cma230_ram.ldi
@@ -0,0 +1,27 @@
+// eCos memory layout - Fri Oct 20 05:33:25 2000
+
+// This is a generated file - do not edit
+
+#include <cyg/infra/cyg_type.inc>
+
+MEMORY
+{
+ ram : ORIGIN = 0, LENGTH = 0x200000
+}
+
+SECTIONS
+{
+ SECTIONS_BEGIN
+ SECTION_fixed_vectors (ram, 0x20, LMA_EQ_VMA)
+ SECTION_rom_vectors (ram, 0x8000, 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)
+ CYG_LABEL_DEFN(__heap1) = ALIGN (0x4);
+ SECTIONS_END
+}
diff --git a/ecos/packages/hal/arm/cma230/current/include/pkgconf/mlt_arm_cma230_ram.mlt b/ecos/packages/hal/arm/cma230/current/include/pkgconf/mlt_arm_cma230_ram.mlt
new file mode 100644
index 0000000..cc9780e
--- /dev/null
+++ b/ecos/packages/hal/arm/cma230/current/include/pkgconf/mlt_arm_cma230_ram.mlt
@@ -0,0 +1,13 @@
+version 0
+region ram 0 200000 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 8000 8000 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 1 0 1 heap1 heap1 !
+section heap1 0 4 0 0 0 0 0 0 !
diff --git a/ecos/packages/hal/arm/cma230/current/include/pkgconf/mlt_arm_cma230_rom.h b/ecos/packages/hal/arm/cma230/current/include/pkgconf/mlt_arm_cma230_rom.h
new file mode 100755
index 0000000..1f8e5c4
--- /dev/null
+++ b/ecos/packages/hal/arm/cma230/current/include/pkgconf/mlt_arm_cma230_rom.h
@@ -0,0 +1,20 @@
+// eCos memory layout - Fri Oct 20 05:34: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 (0)
+#define CYGMEM_REGION_ram_SIZE (0x200000)
+#define CYGMEM_REGION_ram_ATTR (CYGMEM_REGION_ATTR_R | CYGMEM_REGION_ATTR_W)
+#define CYGMEM_REGION_rom (0xe000000)
+#define CYGMEM_REGION_rom_SIZE (0x40000)
+#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 (0x200000 - (size_t) CYG_LABEL_NAME (__heap1))
diff --git a/ecos/packages/hal/arm/cma230/current/include/pkgconf/mlt_arm_cma230_rom.ldi b/ecos/packages/hal/arm/cma230/current/include/pkgconf/mlt_arm_cma230_rom.ldi
new file mode 100644
index 0000000..0fb192c
--- /dev/null
+++ b/ecos/packages/hal/arm/cma230/current/include/pkgconf/mlt_arm_cma230_rom.ldi
@@ -0,0 +1,28 @@
+// eCos memory layout - Fri Oct 20 05:34:02 2000
+
+// This is a generated file - do not edit
+
+#include <cyg/infra/cyg_type.inc>
+
+MEMORY
+{
+ ram : ORIGIN = 0, LENGTH = 0x200000
+ rom : ORIGIN = 0xe000000, LENGTH = 0x40000
+}
+
+SECTIONS
+{
+ SECTIONS_BEGIN
+ SECTION_rom_vectors (rom, 0xe000000, 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, 0x1000, FOLLOWING (.gcc_except_table))
+ SECTION_bss (ram, ALIGN (0x4), LMA_EQ_VMA)
+ CYG_LABEL_DEFN(__heap1) = ALIGN (0x4);
+ SECTIONS_END
+}
diff --git a/ecos/packages/hal/arm/cma230/current/include/pkgconf/mlt_arm_cma230_rom.mlt b/ecos/packages/hal/arm/cma230/current/include/pkgconf/mlt_arm_cma230_rom.mlt
new file mode 100644
index 0000000..deb6dfe
--- /dev/null
+++ b/ecos/packages/hal/arm/cma230/current/include/pkgconf/mlt_arm_cma230_rom.mlt
@@ -0,0 +1,14 @@
+version 0
+region ram 0 200000 0 !
+region rom e000000 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 1000 bss !
+section bss 0 4 0 1 0 1 0 1 heap1 heap1 !
+section heap1 0 4 0 0 0 0 0 0 !
+section rom_vectors 0 1 0 1 1 1 1 1 e000000 e000000 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 !
diff --git a/ecos/packages/hal/arm/cma230/current/include/plf_io.h b/ecos/packages/hal/arm/cma230/current/include/plf_io.h
new file mode 100644
index 0000000..63a2f8b
--- /dev/null
+++ b/ecos/packages/hal/arm/cma230/current/include/plf_io.h
@@ -0,0 +1,59 @@
+#ifndef CYGONCE_HAL_ARM_CMA230_PLF_IO_H
+#define CYGONCE_HAL_ARM_CMA230_PLF_IO_H
+
+/*=============================================================================
+//
+// plf_io.h
+//
+// Platform specific support (register layout, etc)
+//
+//=============================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jskov
+// Contributors: jskov
+// Date: 2002-01-28
+// Purpose: Platform specific support routines
+// Description:
+// Usage: #include <cyg/hal/hal_io.h>
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================*/
+
+#include <cyg/hal/hal_cma230.h>
+
+#endif // CYGONCE_HAL_ARM_CMA230_PLF_IO_H
+// EOF plf_io.h
diff --git a/ecos/packages/hal/arm/cma230/current/include/plf_stub.h b/ecos/packages/hal/arm/cma230/current/include/plf_stub.h
new file mode 100644
index 0000000..9a63b09
--- /dev/null
+++ b/ecos/packages/hal/arm/cma230/current/include/plf_stub.h
@@ -0,0 +1,84 @@
+#ifndef CYGONCE_HAL_PLF_STUB_H
+#define CYGONCE_HAL_PLF_STUB_H
+
+//=============================================================================
+//
+// plf_stub.h
+//
+// Platform header for GDB stub support.
+//
+//=============================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jskov
+// Contributors:jskov, gthomas
+// Date: 1999-04-21
+// Purpose: Platform HAL stub support for Cogent CMA230 boards.
+// Usage: #include <cyg/hal/plf_stub.h>
+//
+//####DESCRIPTIONEND####
+//
+//=============================================================================
+
+#include <pkgconf/hal.h>
+#include <pkgconf/hal_arm_cma230.h>
+
+#ifdef CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS
+
+#include <cyg/infra/cyg_type.h> // CYG_UNUSED_PARAM
+
+#include <cyg/hal/arm_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.
+#define HAL_STUB_PLATFORM_INIT() CYG_EMPTY_STATEMENT
+
+#endif // ifdef CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS
+//-----------------------------------------------------------------------------
+#endif // CYGONCE_HAL_PLF_STUB_H
+// End of plf_stub.h
diff --git a/ecos/packages/hal/arm/cma230/current/src/cma230_misc.c b/ecos/packages/hal/arm/cma230/current/src/cma230_misc.c
new file mode 100644
index 0000000..136aa52
--- /dev/null
+++ b/ecos/packages/hal/arm/cma230/current/src/cma230_misc.c
@@ -0,0 +1,213 @@
+//==========================================================================
+//
+// cma230_misc.c
+//
+// HAL misc board support code for ARM CMA230-1
+//
+//==========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//==========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): gthomas
+// Contributors: gthomas
+// Date: 1999-02-20
+// Purpose: HAL board support
+// Description: Implementations of HAL board interfaces
+//
+//####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_if.h> // calling interface API
+#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_cma230.h> // Hardware definitions
+
+static cyg_uint32 _period;
+
+// Use Timer/Counter #2 for system clock
+
+void hal_clock_initialize(cyg_uint32 period)
+{
+ // Initialize counter
+ *(volatile cyg_uint16 *)CMA230_TC_ENABLE = 0; // Disable timer
+ *(volatile cyg_uint16 *)CMA230_TC_CLEAR = 0; // Resets counter
+ *(volatile cyg_uint16 *)CMA230_TC_PRELOAD = period;
+ *(volatile cyg_uint16 *)CMA230_TC_ENABLE = 1; // Starts timer
+ _period = period;
+}
+
+// This routine is called during a clock interrupt.
+
+void hal_clock_reset(cyg_uint32 vector, cyg_uint32 period)
+{
+ if (period != _period) {
+ *(volatile cyg_uint16 *)CMA230_TC_PRELOAD = period;
+ _period = period;
+ }
+}
+
+// Read the current value of the clock, returning the number of hardware "ticks"
+// that have occurred (i.e. how far away the current value is from the start)
+
+void hal_clock_read(cyg_uint32 *pvalue)
+{
+ volatile cyg_int16 *tcct = (volatile cyg_int16 *)CMA230_TC_COUNT;
+ static cyg_int32 clock_val;
+ clock_val = *tcct; // Register has only 16 bits
+ *pvalue = (cyg_uint32)(_period - clock_val); // 'clock_val' counts down and wraps
+}
+
+//
+// Early stage hardware initialization
+// Some initialization has already been done before we get here. For now
+// just set up the interrupt environment.
+
+// Note: The hardware interrupt mask (read) doesn't seem to give reliable results.
+static cyg_uint8 _imrr;
+#undef CMA230_IMRr
+#define CMA230_IMRr (&_imrr)
+
+void hal_hardware_init(void)
+{
+#if 0
+ // Clear and initialize instruction cache
+ HAL_ICACHE_INVALIDATE_ALL();
+ HAL_ICACHE_ENABLE();
+#endif
+ // Any hardware/platform initialization that needs to be done.
+ // Reset all interrupt masks (disable all interrupt sources)
+ *(volatile cyg_uint8 *)CMA230_IMRw = 0;
+ *(volatile cyg_uint8 *)CMA230_CLR = 0xFF; // Clear all current interrupts
+
+ // Set up eCos/ROM interfaces
+ hal_if_init();
+}
+
+//
+// This routine is called to respond to a hardware interrupt (IRQ). It
+// should interrogate the hardware and return the IRQ vector number.
+
+#if 0
+// TEMP
+int tot_ints;
+cyg_uint32 int_PC[2048];
+// TEMP
+#endif
+
+int hal_IRQ_handler(HAL_SavedRegisters *regs)
+{
+ volatile cyg_uint8 isr = *(volatile cyg_uint8 *)CMA230_ISR;
+ volatile cyg_uint8 *imrr = (volatile cyg_uint8 *)CMA230_IMRr;
+ int vector;
+ isr &= *imrr; // The Interrupt Source Register shows _all_ current
+ // interrupt sources, not just the enabled ones
+#if 0
+// TEMP
+ int_PC[tot_ints++] = 0xFFFFFFFF;
+ int_PC[tot_ints++] = isr;
+ int_PC[tot_ints++] = regs->cpsr;
+ int_PC[tot_ints++] = regs->pc;
+ if (tot_ints == 2048) tot_ints = 0;
+// TEMP
+#endif
+
+ for (vector = 0; vector < 8; vector++) {
+ if (isr & (1<<vector)) {
+ return (vector+1);
+ }
+ }
+ return CYGNUM_HAL_INTERRUPT_NONE; // This shouldn't happen!
+}
+
+//
+// Interrupt control
+//
+
+// Disable (mask) an interrupt
+void hal_interrupt_mask(int vector)
+{
+ volatile cyg_uint8 *imrr = (volatile cyg_uint8 *)CMA230_IMRr;
+ volatile cyg_uint8 *imrw = (volatile cyg_uint8 *)CMA230_IMRw;
+ cyg_uint8 new_mask = *imrr & ~(1<<(vector-1));
+ *imrw = new_mask;
+// TEMP
+ *imrr = new_mask;
+// TEMP
+// diag_printf("Mask interrupt #%d - mask: %x\n", vector, *imrr);
+}
+
+// Enable (unmask) an interrupt
+void hal_interrupt_unmask(int vector)
+{
+ volatile cyg_uint8 *imrr = (volatile cyg_uint8 *)CMA230_IMRr;
+ volatile cyg_uint8 *imrw = (volatile cyg_uint8 *)CMA230_IMRw;
+ cyg_uint8 new_mask = *imrr | (1<<(vector-1));
+ *imrw = new_mask;
+// TEMP
+ *imrr = new_mask;
+// TEMP
+// diag_printf("Unmask interrupt #%d - mask: %x\n", vector, *imrr);
+}
+
+void hal_interrupt_acknowledge(int vector)
+{
+ // These two vectors are "sticky" and must be reset
+ if ((vector == CYGNUM_HAL_INTERRUPT_TIMER) ||
+ (vector == CYGNUM_HAL_INTERRUPT_ABORT)) {
+ *(volatile cyg_uint8 *)CMA230_CLR = (1<<(vector-1));
+ }
+}
+
+void hal_interrupt_configure(int vector, int level, int up)
+{
+ // No interrupts are configurable on this hardware
+}
+
+void hal_interrupt_set_level(int vector, int level)
+{
+ // No interrupts are configurable on this hardware
+}
+
+/*------------------------------------------------------------------------*/
+// EOF hal_misc.c
diff --git a/ecos/packages/hal/arm/cma230/current/src/hal_diag.c b/ecos/packages/hal/arm/cma230/current/src/hal_diag.c
new file mode 100644
index 0000000..8b851d2
--- /dev/null
+++ b/ecos/packages/hal/arm/cma230/current/src/hal_diag.c
@@ -0,0 +1,633 @@
+/*=============================================================================
+//
+// hal_diag.c
+//
+// HAL diagnostic output code
+//
+//=============================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): nickg, gthomas
+// Contributors: nickg, gthomas
+// Date: 1998-03-02
+// Purpose: HAL diagnostic output
+// Description: Implementations of HAL diagnostic output support.
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================*/
+
+#include <pkgconf/hal.h>
+#include <pkgconf/hal_arm_cma230.h> // board specifics
+
+#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> // basic machine info
+#include <cyg/hal/hal_intr.h> // interrupt macros
+#include <cyg/hal/hal_io.h> // IO macros
+#include <cyg/hal/hal_diag.h>
+#include <cyg/hal/hal_cma230.h> // Hardware definitions
+#include <cyg/hal/hal_if.h> // Calling-if API
+#include <cyg/hal/drv_api.h> // driver API
+#include <cyg/hal/hal_misc.h> // Helper functions
+
+static void cyg_hal_plf_serial_init(void);
+
+// FIXME: Copy LCD driver from powerpc/cogent
+//static void cyg_hal_plf_lcd_init(void);
+
+void
+cyg_hal_plf_comms_init(void)
+{
+ static int initialized = 0;
+
+ if (initialized)
+ return;
+
+ initialized = 1;
+
+ cyg_hal_plf_serial_init();
+// cyg_hal_plf_lcd_init();
+}
+
+//=============================================================================
+// Serial driver
+//=============================================================================
+
+//-----------------------------------------------------------------------------
+// There are two serial ports.
+#define CYG_DEV_SERIAL_BASE_A 0xe900047 // port A
+#define CYG_DEV_SERIAL_BASE_B 0xe900007 // port B
+
+//-----------------------------------------------------------------------------
+// Default baud rate is 38400
+// Based on 3.6864 MHz xtal
+#if CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_BAUD==9600
+#define CYG_DEV_SERIAL_BAUD_MSB 0x00
+#define CYG_DEV_SERIAL_BAUD_LSB 0x18
+#endif
+#if CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_BAUD==19200
+#define CYG_DEV_SERIAL_BAUD_MSB 0x00
+#define CYG_DEV_SERIAL_BAUD_LSB 0x0C
+#endif
+#if CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_BAUD==38400
+#define CYG_DEV_SERIAL_BAUD_MSB 0x00
+#define CYG_DEV_SERIAL_BAUD_LSB 0x06
+#endif
+#if CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_BAUD==115200
+#define CYG_DEV_SERIAL_BAUD_MSB 0x00
+#define CYG_DEV_SERIAL_BAUD_LSB 0x02
+#endif
+
+#ifndef CYG_DEV_SERIAL_BAUD_MSB
+#error Missing/incorrect serial baud rate defined - CDL error?
+#endif
+
+//-----------------------------------------------------------------------------
+// Define the serial registers. The Cogent board is equipped with a 16552
+// serial chip.
+#define CYG_DEV_SERIAL_RBR 0x00 // receiver buffer register, read, dlab = 0
+#define CYG_DEV_SERIAL_THR 0x00 // transmitter holding register, write, dlab = 0
+#define CYG_DEV_SERIAL_DLL 0x00 // divisor latch (LS), read/write, dlab = 1
+#define CYG_DEV_SERIAL_IER 0x08 // interrupt enable register, read/write, dlab = 0
+#define CYG_DEV_SERIAL_DLM 0x08 // divisor latch (MS), read/write, dlab = 1
+#define CYG_DEV_SERIAL_IIR 0x10 // interrupt identification register, read, dlab = 0
+#define CYG_DEV_SERIAL_FCR 0x10 // fifo control register, write, dlab = 0
+#define CYG_DEV_SERIAL_AFR 0x10 // alternate function register, read/write, dlab = 1
+#define CYG_DEV_SERIAL_LCR 0x18 // line control register, read/write
+#define CYG_DEV_SERIAL_MCR 0x20
+#define CYG_DEV_SERIAL_MCR_A 0x20
+#define CYG_DEV_SERIAL_MCR_B 0x20
+#define CYG_DEV_SERIAL_LSR 0x28 // line status register, read
+#define CYG_DEV_SERIAL_MSR 0x30 // modem status register, read
+#define CYG_DEV_SERIAL_SCR 0x38 // scratch pad register
+
+// The interrupt enable register bits.
+#define SIO_IER_ERDAI 0x01 // enable received data available irq
+#define SIO_IER_ETHREI 0x02 // enable THR empty interrupt
+#define SIO_IER_ELSI 0x04 // enable receiver line status irq
+#define SIO_IER_EMSI 0x08 // enable modem status interrupt
+
+// The interrupt identification register bits.
+#define SIO_IIR_IP 0x01 // 0 if interrupt pending
+#define SIO_IIR_ID_MASK 0x0e // mask for interrupt ID bits
+#define ISR_Tx 0x02
+#define ISR_Rx 0x04
+
+// The line status register bits.
+#define SIO_LSR_DR 0x01 // data ready
+#define SIO_LSR_OE 0x02 // overrun error
+#define SIO_LSR_PE 0x04 // parity error
+#define SIO_LSR_FE 0x08 // framing error
+#define SIO_LSR_BI 0x10 // break interrupt
+#define SIO_LSR_THRE 0x20 // transmitter holding register empty
+#define SIO_LSR_TEMT 0x40 // transmitter register empty
+#define SIO_LSR_ERR 0x80 // any error condition
+
+// The modem status register bits.
+#define SIO_MSR_DCTS 0x01 // delta clear to send
+#define SIO_MSR_DDSR 0x02 // delta data set ready
+#define SIO_MSR_TERI 0x04 // trailing edge ring indicator
+#define SIO_MSR_DDCD 0x08 // delta data carrier detect
+#define SIO_MSR_CTS 0x10 // clear to send
+#define SIO_MSR_DSR 0x20 // data set ready
+#define SIO_MSR_RI 0x40 // ring indicator
+#define SIO_MSR_DCD 0x80 // data carrier detect
+
+// The line control register bits.
+#define SIO_LCR_WLS0 0x01 // word length select bit 0
+#define SIO_LCR_WLS1 0x02 // word length select bit 1
+#define SIO_LCR_STB 0x04 // number of stop bits
+#define SIO_LCR_PEN 0x08 // parity enable
+#define SIO_LCR_EPS 0x10 // even parity select
+#define SIO_LCR_SP 0x20 // stick parity
+#define SIO_LCR_SB 0x40 // set break
+#define SIO_LCR_DLAB 0x80 // divisor latch access bit
+
+// The FIFO control register
+#define SIO_FCR_FCR0 0x01 // enable xmit and rcvr fifos
+#define SIO_FCR_FCR1 0x02 // clear RCVR FIFO
+#define SIO_FCR_FCR2 0x04 // clear XMIT FIFO
+
+
+//-----------------------------------------------------------------------------
+typedef struct {
+ cyg_uint8* base;
+ cyg_int32 msec_timeout;
+ int isr_vector;
+} channel_data_t;
+
+//-----------------------------------------------------------------------------
+static void
+init_serial_channel(channel_data_t* __ch_data)
+{
+ cyg_uint8* base = __ch_data->base;
+ cyg_uint8 lcr;
+
+ // 8-1-no parity.
+ HAL_WRITE_UINT8(base+CYG_DEV_SERIAL_LCR,
+ SIO_LCR_WLS0 | SIO_LCR_WLS1);
+
+ HAL_READ_UINT8(base+CYG_DEV_SERIAL_LCR, lcr);
+ lcr |= SIO_LCR_DLAB;
+ HAL_WRITE_UINT8(base+CYG_DEV_SERIAL_LCR, lcr);
+ HAL_WRITE_UINT8(base+CYG_DEV_SERIAL_DLL, CYG_DEV_SERIAL_BAUD_LSB);
+ HAL_WRITE_UINT8(base+CYG_DEV_SERIAL_DLM, CYG_DEV_SERIAL_BAUD_MSB);
+ lcr &= ~SIO_LCR_DLAB;
+ HAL_WRITE_UINT8(base+CYG_DEV_SERIAL_LCR, lcr);
+ HAL_WRITE_UINT8(base+CYG_DEV_SERIAL_FCR, 0x07); // Enable & clear FIFO
+}
+
+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_DEV_SERIAL_LSR, lsr);
+ if ((lsr & SIO_LSR_DR) == 0)
+ return false;
+
+ HAL_READ_UINT8(base+CYG_DEV_SERIAL_RBR, *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;
+}
+
+void
+cyg_hal_plf_serial_putc(void* __ch_data, cyg_uint8 c)
+{
+ cyg_uint8* base = ((channel_data_t*)__ch_data)->base;
+ cyg_uint8 lsr;
+ CYGARC_HAL_SAVE_GP();
+
+ do {
+ HAL_READ_UINT8(base+CYG_DEV_SERIAL_LSR, lsr);
+ } while ((lsr & SIO_LSR_THRE) == 0);
+
+ HAL_WRITE_UINT8(base+CYG_DEV_SERIAL_THR, c);
+
+ // Hang around until the character has been safely sent.
+ do {
+ HAL_READ_UINT8(base+CYG_DEV_SERIAL_LSR, lsr);
+ } while ((lsr & SIO_LSR_THRE) == 0);
+
+ CYGARC_HAL_RESTORE_GP();
+}
+
+static channel_data_t channels[2] = {
+ { (cyg_uint8*)CMA101_DUARTA, 1000, CYGNUM_HAL_INTERRUPT_SERIAL_A},
+ { (cyg_uint8*)CMA101_DUARTB, 1000, CYGNUM_HAL_INTERRUPT_SERIAL_B}
+};
+
+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:
+ HAL_INTERRUPT_UNMASK(chan->isr_vector);
+ HAL_INTERRUPT_SET_LEVEL(chan->isr_vector, 1);
+ HAL_READ_UINT8(chan->base+CYG_DEV_SERIAL_IER, ier);
+ ier |= SIO_IER_ERDAI;
+ HAL_WRITE_UINT8(chan->base+CYG_DEV_SERIAL_IER, ier);
+ irq_state = 1;
+ break;
+ case __COMMCTL_IRQ_DISABLE:
+ ret = irq_state;
+ irq_state = 0;
+ HAL_INTERRUPT_MASK(chan->isr_vector);
+ HAL_READ_UINT8(chan->base+CYG_DEV_SERIAL_IER, ier);
+ ier &= ~SIO_IER_ERDAI;
+ HAL_WRITE_UINT8(chan->base+CYG_DEV_SERIAL_IER, ier);
+ 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)
+{
+ channel_data_t* chan = (channel_data_t*)__ch_data;
+ cyg_uint8 _iir;
+ int res = 0;
+ CYGARC_HAL_SAVE_GP();
+
+ HAL_READ_UINT8(chan->base+CYG_DEV_SERIAL_IIR, _iir);
+ _iir &= SIO_IIR_ID_MASK;
+
+ *__ctrlc = 0;
+ if ( ISR_Rx == _iir ) {
+ cyg_uint8 c, lsr;
+ HAL_READ_UINT8(chan->base+CYG_DEV_SERIAL_LSR, lsr);
+ if (lsr & SIO_LSR_DR) {
+
+ HAL_READ_UINT8(chan->base+CYG_DEV_SERIAL_RBR, c);
+
+ if( cyg_hal_is_break( &c , 1 ) )
+ *__ctrlc = 1;
+ }
+
+ // Acknowledge the interrupt
+ HAL_INTERRUPT_ACKNOWLEDGE(chan->isr_vector);
+ 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
+ init_serial_channel(&channels[0]);
+ init_serial_channel(&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);
+}
+
+//=============================================================================
+// Compatibility with older stubs
+//=============================================================================
+
+#ifndef CYGSEM_HAL_VIRTUAL_VECTOR_DIAG
+
+
+#ifdef CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS
+#include <cyg/hal/drv_api.h>
+#include <cyg/hal/hal_stub.h> // cyg_hal_gdb_interrupt
+#endif
+
+// Assumption: all diagnostic output must be GDB packetized unless this is a ROM (i.e.
+// totally stand-alone) system.
+
+#if defined(CYG_HAL_STARTUP_ROM) || !defined(CYGDBG_HAL_DIAG_TO_DEBUG_CHAN)
+#define HAL_DIAG_USES_HARDWARE
+#endif
+
+/*---------------------------------------------------------------------------*/
+#if CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL==0
+// This is the base address of the A-channel
+#define CYG_DEV_SERIAL_BASE CMA101_DUARTA
+#define CYG_DEV_SERIAL_INT CYGNUM_HAL_INTERRUPT_SERIAL_A
+#else
+// This is the base address of the B-channel
+#define CYG_DEV_SERIAL_BASE CMA101_DUARTB
+#define CYG_DEV_SERIAL_INT CYGNUM_HAL_INTERRUPT_SERIAL_B
+#endif
+
+static channel_data_t ser_channel = { (cyg_uint8*)CYG_DEV_SERIAL_BASE, 0, 0};
+
+#ifdef HAL_DIAG_USES_HARDWARE
+
+void hal_diag_init(void)
+{
+ static int init = 0;
+ char *msg = "\n\rARM eCos\n\r";
+ cyg_uint8 lcr;
+
+ if (init++) return;
+
+ init_serial_channel(&ser_channel);
+
+ while (*msg) hal_diag_write_char(*msg++);
+}
+
+#ifdef DEBUG_DIAG
+#if defined(CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS)
+#define DIAG_BUFSIZE 32
+#else
+#define DIAG_BUFSIZE 2048
+#endif
+static char diag_buffer[DIAG_BUFSIZE];
+static int diag_bp = 0;
+#endif
+
+void hal_diag_write_char(char c)
+{
+ cyg_uint8 lsr;
+
+ hal_diag_init();
+
+ cyg_hal_plf_serial_putc(&ser_channel, c)
+
+#ifdef DEBUG_DIAG
+ diag_buffer[diag_bp++] = c;
+ if (diag_bp == DIAG_BUFSIZE) {
+ while (1) ;
+ diag_bp = 0;
+ }
+#endif
+}
+
+void hal_diag_read_char(char *c)
+{
+ *c = cyg_hal_plf_serial_getc(&ser_channel);
+}
+
+#else // HAL_DIAG relies on GDB
+
+// Initialize diag port - assume GDB channel is already set up
+void hal_diag_init(void)
+{
+ if (0) init_serial_channel(&ser_channel); // avoid warning
+}
+
+// Actually send character down the wire
+static void
+hal_diag_write_char_serial(char c)
+{
+ cyg_hal_plf_serial_putc(&ser_channel, c);
+}
+
+static bool
+hal_diag_read_serial(char *c)
+{
+ long timeout = 1000000000; // A long time...
+ while (!cyg_hal_plf_serial_getc_nonblock(&ser_channel, c))
+ if (0 == --timeout) return false;
+
+ return true;
+}
+
+void
+hal_diag_read_char(char *c)
+{
+ while (!hal_diag_read_serial(c)) ;
+}
+
+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;
+
+ hal_diag_write_char_serial('$');
+ hal_diag_write_char_serial('O');
+ csum += 'O';
+ for( i = 0; i < pos; i++ )
+ {
+ char ch = line[i];
+ char h = hex[(ch>>4)&0xF];
+ char l = hex[ch&0xF];
+ hal_diag_write_char_serial(h);
+ hal_diag_write_char_serial(l);
+ csum += h;
+ csum += l;
+ }
+ hal_diag_write_char_serial('#');
+ hal_diag_write_char_serial(hex[(csum>>4)&0xF]);
+ hal_diag_write_char_serial(hex[csum&0xF]);
+
+ // Wait for the ACK character '+' from GDB here and handle
+ // receiving a ^C instead. This is the reason for this clause
+ // being a loop.
+ if (!hal_diag_read_serial(&c1))
+ continue; // No response - try sending packet again
+
+ if( c1 == '+' )
+ break; // a good acknowledge
+
+#ifdef CYGDBG_HAL_DEBUG_GDB_BREAK_SUPPORT
+ cyg_drv_interrupt_acknowledge(CYG_DEV_SERIAL_INT);
+ if( c1 == 3 ) {
+ // Ctrl-C: breakpoint.
+ cyg_hal_gdb_interrupt (__builtin_return_address(0));
+ break;
+ }
+#endif
+ // 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
+
+ }
+}
+#endif
+
+#endif // CYGSEM_HAL_VIRTUAL_VECTOR_DIAG
+
+/*---------------------------------------------------------------------------*/
+/* End of hal_diag.c */
diff --git a/ecos/packages/hal/arm/e7t/current/ChangeLog b/ecos/packages/hal/arm/e7t/current/ChangeLog
new file mode 100644
index 0000000..1053c0c
--- /dev/null
+++ b/ecos/packages/hal/arm/e7t/current/ChangeLog
@@ -0,0 +1,209 @@
+2009-01-31 Bart Veer <bartv@ecoscentric.com>
+
+ * cdl/hal_arm_e7t.cdl: update compiler flags for gcc 4.x
+
+2009-01-24 Bart Veer <bartv@ecoscentric.com>
+
+ * cdl/hal_arm_e7t.cdl: switch from arm-elf-gcc to
+ arm-eabi-gcc. Remove -mno-short-load-words.
+
+2009-01-08 John Dallaway <john@dallaway.org.uk>
+
+ * src/flash_cksum.tcl: Specify script interpreter via /usr/bin/env.
+
+2004-04-22 Jani Monoses <jani@iv.ro>
+
+ * cdl/hal_arm_e7t.cdl :
+ Invoke tail with stricter syntax that works in latest coreutils.
+
+2003-12-05 Andrew Lunn <andrew.lunn@ascom.ch>
+
+ * include/hal_diag.h: hal_delay_us is a C function.
+
+2003-11-05 Roland Caßebohm <roland.cassebohm@visionsystems.de>
+
+ * include/plf_io.h: Define HAL_IO_MACROS_NO_ADDRESS_MUNGING to
+ force the IO macros not to mung the addresses. This platform
+ don't need this.
+
+2003-10-06 Chris Garry <cgarry@sweeneydesign.co.uk>
+
+ * include/plf_io.h: Correct (unused) defines for
+ E7T_ROMCON_BASE_MASK and E7T_ROMCON_NEXT_MASK.
+
+2003-09-21 Gary Thomas <gary@mlbassoc.com>
+
+ * misc/redboot_ROM.ecm: Adjust for changes in RedBoot
+ template - DNS now must be enabled manually.
+
+2003-07-18 Nick Garnett <nickg@balti.calivar.com>
+
+ * cdl/hal_arm_e7t.cdl:
+ Changed values for CYGNUM_HAL_RTC_NUMERATOR,
+ CYGNUM_HAL_RTC_DENOMINATOR and CYGNUM_HAL_RTC_PERIOD to
+ "default_value" from "calculated". This makes it easier
+ to change these values globally.
+
+2003-02-05 Nick Garnett <nickg@calivar.com>
+
+ * include/plf_io.h (CYGARC_PHYSICAL_ADDRESS): Added this
+ definition to keep redboot_linux_exec.c happy.
+
+2003-01-29 John Dallaway <jld@ecoscentric.com>
+
+ * src/flash_cksum.tcl: Accommodate latest Cygwin Tcl shell
+ (tclsh83.exe)
+
+2002-10-19 Jonathan Larmour <jifl@eCosCentric.com>
+
+ * include/hal_platform_setup.h (PLATFORM_SETUP1): Only define if
+ ROM or ROMRAM, not if STUBS which can be RAM.
+
+2002-04-15 Jesper Skov <jskov@redhat.com>
+
+ * include/hal_platform_setup.h (PLATFORM_SETUP1): Changed ldm/stm
+ to ldmia/stmia.
+
+2002-03-06 Jesper Skov <jskov@redhat.com>
+
+ * misc/redboot_ROM.ecm: Added zlib package.
+
+2001-10-02 Jonathan Larmour <jlarmour@redhat.com>
+
+ * cdl/hal_arm_e7t.cdl (CYGBLD_BUILD_REDBOOT_BIN): cygtclsh80 on
+ Cygwin can't deal with absolute paths correctly, so copy
+ flash_cksum.tcl into build directory.
+
+2001-07-02 Jesper Skov <jskov@redhat.com>
+
+ * src/hal_diag.c (cyg_hal_plf_serial_getc_nonblock): Ack RX
+ interrupt after reading.
+
+ * include/pkgconf/mlt_arm_e7t_ram.mlt: Reserve 64kB for RedBoot.
+ * include/pkgconf/mlt_arm_e7t_ram.ldi: Same.
+
+ * src/hal_diag.c: Make some data type fixes. Try to ack interrupt
+ after reading data. Unable to test though due to some other
+ problem on diag output.
+
+2001-04-17 Jesper Skov <jskov@redhat.com>
+
+ * cdl/hal_arm_e7t.cdl: Fix compiler flags. In particular, do now
+ allow unaligned access since the CPU doesn't handle it.
+
+ * include/hal_platform_setup.h (PLATFORM_SETUP1): Use proper
+ spells to init memory interface.
+
+ * src/e7t_misc.c (hal_hardware_init): Removed debug code, fix
+ cache init code.
+
+ * include/plf_io.h: Use uncached addresses for IO registers.
+
+ * include/hal_platform_setup.h: Found a hint for problems with
+ memory init.
+
+ * include/hal_cache.h (HAL_UCACHE_INVALIDATE_ALL): Tried to make
+ this a bit faster. Didn't help much though.
+
+ * src/hal_diag.c (cyg_hal_plf_serial_init): Remove unused variable.
+
+2001-04-16 Gary Thomas <gthomas@redhat.com>
+
+ * cdl/hal_arm_e7t.cdl: Add CDL to describe CPU family.
+
+2001-04-11 Jesper Skov <jskov@redhat.com>
+
+ * src/e7t_misc.c (hal_delay_us): Fixed.
+
+ * include/pkgconf/mlt_arm_e7t_rom.ldi: Updated.
+ * include/pkgconf/mlt_arm_e7t_rom.mlt: Same.
+ * include/pkgconf/mlt_arm_e7t_rom.h: Same.
+ * include/pkgconf/mlt_arm_e7t_ram.ldi: Updated.
+ * include/pkgconf/mlt_arm_e7t_ram.mlt: Same.
+ * include/pkgconf/mlt_arm_e7t_ram.h: Same.
+
+2001-04-05 Jesper Skov <jskov@redhat.com>
+
+ * misc/redboot_ROM.ecm: Only read from debug port.
+
+ * src/redboot_module.c: Fail if attempted built in wrong config.
+
+ * src/e7t_misc.c (hal_IRQ_handler): Fixed comparisons.
+
+2001-03-19 Jesper Skov <jskov@redhat.com>
+
+ * src/e7t_misc.c (hal_delay_us): Made it work. Not sure why the
+ interrupts don't actually fire. This will probably break when that
+ gets sorted out later.
+
+ * src/hal_diag.c (cyg_hal_plf_serial_getc_nonblock): Rename a
+ register.
+
+ * src/e7t_misc.c (hal_hardware_init): Init caches, clear global
+ interrupt mask flag.
+ (hal_delay_us): Added.
+
+ * include/plf_io.h: Added cache definitions.
+
+ * include/hal_diag.h (HAL_DELAY_US): Added.
+
+ * include/hal_cache.h: Rewrote for KS32C50100.
+
+ * misc/redboot_ROM.ecm: Added.
+
+ * src/redboot_module.c: Added.
+ * src/gdb_module.c: Removed.
+
+ * src/e7t_misc.c: Comment out test code, but keep it around for
+ now.
+
+ * cdl/hal_arm_e7t.cdl: Added RedBoot build magic. Removed stubs
+ build magic.
+
+ * include/hal_platform_setup.h: Set PIO directions and IO
+ widths. The rest cannot be set wo hanging the board.
+
+ * src/hal_diag.c: Baud rate is computed from 1/2 core clock. All
+ register access is 32 bit. Added simple functions to print out
+ values without use of RAM.
+ Enabling TX/RX means allowing interrupts. Rely on vector mask only
+ for controlling ctrl-c interrupts.
+
+2001-03-16 Jesper Skov <jskov@redhat.com>
+
+ * src/e7t_misc.c: Rewrote timer and interrupt code for
+ E7T. Removed reset code.
+
+ * include/plf_io.h: Added interrupt controller and timer
+ registers.
+
+ * include/hal_platform_ints.h: Updated interrupt defintions to
+ match E7T. No reset magic.
+
+ * src/hal_diag.c: Use correct interrupt definitions.
+
+ * Cloned from AEB HAL.
+
+//===========================================================================
+// ####GPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 2 or (at your option) any
+// later version.
+//
+// This program is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the
+// Free Software Foundation, Inc., 51 Franklin Street,
+// Fifth Floor, Boston, MA 02110-1301, USA.
+// -------------------------------------------
+// ####GPLCOPYRIGHTEND####
+//===========================================================================
diff --git a/ecos/packages/hal/arm/e7t/current/cdl/hal_arm_e7t.cdl b/ecos/packages/hal/arm/e7t/current/cdl/hal_arm_e7t.cdl
new file mode 100644
index 0000000..0d87fed
--- /dev/null
+++ b/ecos/packages/hal/arm/e7t/current/cdl/hal_arm_e7t.cdl
@@ -0,0 +1,304 @@
+# ====================================================================
+#
+# hal_arm_e7t.cdl
+#
+# Evaluator7T (AEB2) board HAL package configuration data
+#
+# ====================================================================
+## ####ECOSGPLCOPYRIGHTBEGIN####
+## -------------------------------------------
+## This file is part of eCos, the Embedded Configurable Operating System.
+## Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+##
+## eCos is free software; you can redistribute it and/or modify it under
+## the terms of the GNU General Public License as published by the Free
+## Software Foundation; either version 2 or (at your option) any later
+## version.
+##
+## eCos is distributed in the hope that it will be useful, but WITHOUT
+## ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+## FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+## for more details.
+##
+## You should have received a copy of the GNU General Public License
+## along with eCos; if not, write to the Free Software Foundation, Inc.,
+## 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+##
+## As a special exception, if other files instantiate templates or use
+## macros or inline functions from this file, or you compile this file
+## and link it with other works to produce a work based on this file,
+## this file does not by itself cause the resulting work to be covered by
+## the GNU General Public License. However the source code for this file
+## must still be made available in accordance with section (3) of the GNU
+## General Public License v2.
+##
+## This exception does not invalidate any other reasons why a work based
+## on this file might be covered by the GNU General Public License.
+## -------------------------------------------
+## ####ECOSGPLCOPYRIGHTEND####
+# ====================================================================
+######DESCRIPTIONBEGIN####
+#
+# Author(s): gthomas
+# Contributors: gthomas, jskov
+# Date: 2001-03-16
+#
+#####DESCRIPTIONEND####
+#
+# ====================================================================
+
+cdl_package CYGPKG_HAL_ARM_E7T {
+ display "ARM Evaluator7T (AEB2) evaluation board"
+ parent CYGPKG_HAL_ARM
+ define_header hal_arm_e7t.h
+ include_dir cyg/hal
+ hardware
+ description "
+ The E7T HAL package provides the support needed to run
+ eCos on an ARM E7T eval board."
+
+ compile hal_diag.c e7t_misc.c
+
+ implements CYGINT_HAL_DEBUG_GDB_STUBS
+ implements CYGINT_HAL_DEBUG_GDB_STUBS_BREAK
+ implements CYGINT_HAL_VIRTUAL_VECTOR_SUPPORT
+ implements CYGINT_HAL_ARM_ARCH_ARM7
+ implements CYGINT_HAL_ARM_THUMB_ARCH
+
+ define_proc {
+ puts $::cdl_system_header "#define CYGBLD_HAL_TARGET_H <pkgconf/hal_arm.h>"
+ puts $::cdl_system_header "#define CYGBLD_HAL_PLATFORM_H <pkgconf/hal_arm_e7t.h>"
+ }
+
+ 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 E7T 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 onboard
+ debug software such as Angel or eCos GDB stubs. Select 'rom'
+ when building a stand-alone application which will be put
+ into ROM."
+ }
+
+ 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"
+ active_if CYGPRI_HAL_VIRTUAL_VECTOR_DEBUG_CHANNEL_CONFIGURABLE
+ flavor data
+ legal_values 0 to CYGNUM_HAL_VIRTUAL_VECTOR_COMM_CHANNELS-1
+ default_value 1
+ description "
+ The E7T 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"
+ active_if CYGPRI_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_CONFIGURABLE
+ flavor data
+ legal_values 0 to CYGNUM_HAL_VIRTUAL_VECTOR_COMM_CHANNELS-1
+ default_value 1
+ description "
+ The E7T board has two serial ports. This option
+ chooses which port will be used for diagnostic output."
+ }
+
+ cdl_option CYGNUM_HAL_VIRTUAL_VECTOR_CHANNELS_DEFAULT_BAUD {
+ display "Console/GDB serial port baud rate"
+ flavor data
+ legal_values 9600 19200 38400 57600 115200
+ default_value 38400
+ description "
+ This option controls the default baud rate used for the
+ Console/GDB connection."
+ }
+
+ # Real-time clock/counter specifics
+ cdl_option CYGNUM_HAL_ARM_E7T_CLOCK_SPEED {
+ display "CPU clock speed"
+ flavor data
+ calculated 50000000
+ }
+
+ 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
+ default_value 1000000000
+ }
+ cdl_option CYGNUM_HAL_RTC_DENOMINATOR {
+ display "Real-time clock denominator"
+ flavor data
+ default_value 100
+ }
+ cdl_option CYGNUM_HAL_RTC_PERIOD {
+ display "Real-time clock period"
+ flavor data
+ default_value (CYGNUM_HAL_ARM_E7T_CLOCK_SPEED / CYGNUM_HAL_RTC_DENOMINATOR)
+ }
+ }
+
+ 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 { "arm-eabi"}
+ 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 { CYGBLD_GLOBAL_WARNFLAGS . CYGBLD_ARCH_CFLAGS .
+ "-mcpu=arm7tdmi -g -O2 -ffunction-sections -fdata-sections -fno-rtti -fno-exceptions " }
+ 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 { CYGBLD_ARCH_LDFLAGS . "-mcpu=arm7tdmi -Wl,--gc-sections -Wl,-static -g -nostdlib" }
+ description "
+ This option controls the global linker flags. Individual
+ packages may define options which override these global flags."
+ }
+ }
+
+ cdl_component CYGHWR_MEMORY_LAYOUT {
+ display "Memory layout"
+ flavor data
+ no_define
+ calculated { (CYG_HAL_STARTUP == "RAM") ? "arm_e7t_ram" : "arm_e7t_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_e7t_ram.ldi>" :
+ "<pkgconf/mlt_arm_e7t_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_e7t_ram.h>" : \
+ "<pkgconf/mlt_arm_e7t_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 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_REDBOOT_HAL_OPTIONS {
+ display "Redboot HAL options"
+ flavor none
+ no_define
+ parent CYGPKG_REDBOOT
+ active_if CYGPKG_REDBOOT
+ description "
+ This option lists the target's requirements for a valid Redboot
+ configuration."
+
+ 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 : <PACKAGE>/src/redboot_module.c $(PREFIX)/lib/target.ld $(PREFIX)/lib/vectors.o $(PREFIX)/lib/libtarget.a $(PREFIX)/lib/libextras.a
+ @sh -c "mkdir -p src $(dir $@)"
+ # First build version with no checksum.
+ $(CC) -c $(INCLUDE_PATH) -Wp,-MD,deps.tmp -I$(dir $<) $(CFLAGS) -o src/redboot_ncs.o $<
+ $(CC) $(LDFLAGS) -L$(PREFIX)/lib -Ttarget.ld -o src/redboot_ncs.tmp $(PREFIX)/lib/version.o src/redboot_ncs.o
+ $(OBJCOPY) --strip-debug src/redboot_ncs.tmp src/redboot_ncs.img
+ $(OBJCOPY) -O binary src/redboot_ncs.img src/redboot_ncs.bin
+# @rm src/redboot_ncs.tmp src/redboot_ncs.img
+ # Prepare dependency file
+ @echo $@ ": \\" > $(notdir $@).deps
+ @echo $(wildcard $(PREFIX)/lib/*) " \\" >> $(notdir $@).deps
+ @tail -n +2 deps.tmp >> $(notdir $@).deps
+ @echo >> $(notdir $@).deps
+ @rm deps.tmp
+ # Then build version with checksum from previously built image.
+ @cp $(dir $<)flash_cksum.tcl src/
+ $(CC) -c -DCHECKSUM=`src/flash_cksum.tcl src/redboot_ncs.bin` $(INCLUDE_PATH) -I$(dir $<) $(CFLAGS) -o src/redboot.o $<
+ $(CC) $(LDFLAGS) -L$(PREFIX)/lib -Ttarget.ld -o src/redboot.tmp $(PREFIX)/lib/version.o src/redboot.o
+ $(OBJCOPY) --strip-debug src/redboot.tmp $(@:.bin=.img)
+ $(OBJCOPY) -O binary $(@:.bin=.img) src/redboot.bin
+ uuencode src/redboot.bin redboot.bin | tr '`' ' ' > $(@:.bin=.UU)
+ @rm src/redboot.tmp src/redboot_ncs.bin
+ @mv src/redboot.bin $@
+ }
+
+ }
+ }
+}
diff --git a/ecos/packages/hal/arm/e7t/current/include/hal_cache.h b/ecos/packages/hal/arm/e7t/current/include/hal_cache.h
new file mode 100644
index 0000000..53e966e
--- /dev/null
+++ b/ecos/packages/hal/arm/e7t/current/include/hal_cache.h
@@ -0,0 +1,291 @@
+#ifndef CYGONCE_HAL_CACHE_H
+#define CYGONCE_HAL_CACHE_H
+
+//=============================================================================
+//
+// hal_cache.h
+//
+// HAL cache control API
+//
+//=============================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): nickg, gthomas
+// Contributors: nickg, gthomas
+// Date: 1998-09-28
+// 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 <cyg/infra/cyg_type.h>
+#include <cyg/hal/hal_io.h>
+#include <cyg/hal/plf_io.h>
+
+//-----------------------------------------------------------------------------
+// Cache dimensions - one unified cache
+
+#define HAL_CACHE_UNIFIED
+
+#define HAL_UCACHE_SIZE 0x2000 // Size of cache in bytes
+#define HAL_UCACHE_LINE_SIZE 16 // Size of a cache line
+#define HAL_UCACHE_WAYS 2 // Associativity of the cache
+
+#define HAL_UCACHE_SETS (HAL_UCACHE_SIZE/(HAL_UCACHE_LINE_SIZE*HAL_UCACHE_WAYS))
+
+//-----------------------------------------------------------------------------
+// Global control of cache
+
+// Enable the cache
+#define HAL_UCACHE_ENABLE() \
+ CYG_MACRO_START \
+ cyg_uint32 syscfg; \
+ HAL_READ_UINT32(E7T_SYSCFG, syscfg); \
+ syscfg |= E7T_SYSCFG_CE; \
+ HAL_WRITE_UINT32(E7T_SYSCFG, syscfg); \
+ CYG_MACRO_END
+
+// Disable the cache
+#define HAL_UCACHE_DISABLE() \
+ CYG_MACRO_START \
+ cyg_uint32 syscfg; \
+ HAL_READ_UINT32(E7T_SYSCFG, syscfg); \
+ syscfg &= ~E7T_SYSCFG_CE; \
+ HAL_WRITE_UINT32(E7T_SYSCFG, syscfg); \
+ CYG_MACRO_END
+
+// Invalidate the entire cache
+#define HAL_UCACHE_INVALIDATE_ALL() \
+ CYG_MACRO_START \
+ register cyg_uint32* tag = (cyg_uint32*)E7T_CACHE_TAG_ADDR; \
+ register int i; \
+ for (i = 0; i < HAL_UCACHE_SETS/4; i++) { \
+ *tag++ = 0; \
+ *tag++ = 0; \
+ *tag++ = 0; \
+ *tag++ = 0; \
+ } \
+ CYG_MACRO_END
+
+// Synchronize the contents of the cache with memory.
+// No action necessary. Cache is write-through.
+#define HAL_UCACHE_SYNC()
+
+// Query the state of the cache
+#define HAL_UCACHE_IS_ENABLED(_state_) \
+ CYG_MACRO_START \
+ cyg_uint32 syscfg; \
+ HAL_READ_UINT32(E7T_SYSCFG, syscfg); \
+ (_state_) = (syscfg & E7T_SYSCFG_CE) ? 1 : 0; \
+ CYG_MACRO_END
+
+// Purge contents of cache
+#define HAL_UCACHE_PURGE_ALL() HAL_UCACHE_INVALIDATE_ALL()
+
+// Set the cache refill burst size
+//#define HAL_UCACHE_BURST_SIZE(_size_)
+
+// Set the cache write mode
+//#define HAL_UCACHE_WRITE_MODE( _mode_ )
+
+//#define HAL_UCACHE_WRITETHRU_MODE 0
+//#define HAL_UCACHE_WRITEBACK_MODE 1
+
+// 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_ )
+
+// 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_ )
+
+// 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
diff --git a/ecos/packages/hal/arm/e7t/current/include/hal_diag.h b/ecos/packages/hal/arm/e7t/current/include/hal_diag.h
new file mode 100644
index 0000000..21b21ca
--- /dev/null
+++ b/ecos/packages/hal/arm/e7t/current/include/hal_diag.h
@@ -0,0 +1,78 @@
+#ifndef CYGONCE_HAL_DIAG_H
+#define CYGONCE_HAL_DIAG_H
+
+//=============================================================================
+//
+// hal_diag.h
+//
+// HAL Support for Kernel Diagnostic Routines
+//
+//=============================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jskov
+// Contributors:jskov
+// Date: 2001-03-16
+// 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>
+
+#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_)
+
+//-----------------------------------------------------------------------------
+// LED
+externC void hal_diag_led(int mask);
+
+//-----------------------------------------------------------------------------
+// delay
+
+externC void hal_delay_us(cyg_int32 usecs);
+#define HAL_DELAY_US(n) hal_delay_us(n);
+
+//-----------------------------------------------------------------------------
+// end of hal_diag.h
+#endif // CYGONCE_HAL_DIAG_H
diff --git a/ecos/packages/hal/arm/e7t/current/include/hal_platform_ints.h b/ecos/packages/hal/arm/e7t/current/include/hal_platform_ints.h
new file mode 100644
index 0000000..51aca77
--- /dev/null
+++ b/ecos/packages/hal/arm/e7t/current/include/hal_platform_ints.h
@@ -0,0 +1,95 @@
+#ifndef CYGONCE_HAL_PLATFORM_INTS_H
+#define CYGONCE_HAL_PLATFORM_INTS_H
+//==========================================================================
+//
+// hal_platform_ints.h
+//
+// HAL Interrupt and clock assignments for E7T (AEB-2)
+//
+//==========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//==========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): gthomas
+// Contributors: gthomas
+// Date: 1999-02-20
+// Purpose: Define Interrupt support
+// Description: The interrupt specifics for the AEB-1 board/platform are
+// defined here.
+//
+// Usage: #include <cyg/hal/hal_platform_ints.h>
+// ...
+//
+//
+//####DESCRIPTIONEND####
+//
+//==========================================================================
+
+#define CYGNUM_HAL_INTERRUPT_EXT0 0
+#define CYGNUM_HAL_INTERRUPT_EXT1 1
+#define CYGNUM_HAL_INTERRUPT_EXT2 2
+#define CYGNUM_HAL_INTERRUPT_EXT3 3
+#define CYGNUM_HAL_INTERRUPT_UART0_TX 4
+#define CYGNUM_HAL_INTERRUPT_UART0_RX 5
+#define CYGNUM_HAL_INTERRUPT_UART1_TX 6
+#define CYGNUM_HAL_INTERRUPT_UART1_RX 7
+#define CYGNUM_HAL_INTERRUPT_GDMA0 8
+#define CYGNUM_HAL_INTERRUPT_GDMA1 9
+#define CYGNUM_HAL_INTERRUPT_TIMER0 10
+#define CYGNUM_HAL_INTERRUPT_TIMER1 11
+#define CYGNUM_HAL_INTERRUPT_HDLCA_TX 12
+#define CYGNUM_HAL_INTERRUPT_HDLCA_RX 13
+#define CYGNUM_HAL_INTERRUPT_HDLCB_TX 14
+#define CYGNUM_HAL_INTERRUPT_HDLCB_RX 15
+#define CYGNUM_HAL_INTERRUPT_ETH_BDMA_TX 16
+#define CYGNUM_HAL_INTERRUPT_ETH_BDMA_RX 17
+#define CYGNUM_HAL_INTERRUPT_ETH_MAC_TX 18
+#define CYGNUM_HAL_INTERRUPT_ETH_MAC_RX 19
+#define CYGNUM_HAL_INTERRUPT_I2C 20
+
+#define CYGNUM_HAL_ISR_MIN 0
+#define CYGNUM_HAL_ISR_MAX CYGNUM_HAL_INTERRUPT_I2C
+#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_TIMER0
+
+
+//----------------------------------------------------------------------------
+// Reset.
+#define HAL_PLATFORM_RESET()
+
+#define HAL_PLATFORM_RESET_ENTRY 0x01820000
+
+#endif // CYGONCE_HAL_PLATFORM_INTS_H
diff --git a/ecos/packages/hal/arm/e7t/current/include/hal_platform_setup.h b/ecos/packages/hal/arm/e7t/current/include/hal_platform_setup.h
new file mode 100644
index 0000000..1dce694
--- /dev/null
+++ b/ecos/packages/hal/arm/e7t/current/include/hal_platform_setup.h
@@ -0,0 +1,137 @@
+#ifndef CYGONCE_HAL_PLATFORM_SETUP_H
+#define CYGONCE_HAL_PLATFORM_SETUP_H
+
+/*=============================================================================
+//
+// hal_platform_setup.h
+//
+// Platform specific support for HAL (assembly code)
+//
+//=============================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jskov
+// Contributors:jskov
+// Date: 2001-03-16
+// Purpose: E7T platform specific support routines
+// Description:
+// Usage: #include <cyg/hal/hal_platform_setup.h>
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================*/
+
+#include <cyg/hal/plf_io.h>
+
+#define CYGHWR_LED_MACRO \
+ ldr r0,=E7T_IOPDATA ;\
+ mov r1, #((15 & (\x)) << 4) ;\
+ str r1, [r0] ;
+
+#if CYGNUM_HAL_COMMON_INTERRUPTS_STACK_SIZE==4096
+// Override default to a more sensible value
+#undef CYGNUM_HAL_COMMON_INTERRUPTS_STACK_SIZE
+#define CYGNUM_HAL_COMMON_INTERRUPTS_STACK_SIZE 2048
+#endif
+
+#if defined(CYG_HAL_STARTUP_ROM) || defined(CYG_HAL_STARTUP_ROMRAM)
+#define PLATFORM_SETUP1 ;\
+ ldr r1,=E7T_IOPMOD ;\
+ ldr r2,=0x0001fcf0 /* set led + seg to output */ ;\
+ str r2,[r1,#0x00] ;\
+ ldr r1,=E7T_IOPDATA ;\
+ ldr r2,=0x00000050 /* set leds */ ;\
+ str r2,[r1,#0x00] ;\
+ ;\
+20: ldr lr,=33f ;\
+ ldr r0,=12f ;\
+ ldmia r0,{r1-r12} ;\
+ ldr r0,=E7T_EXTDBWTH ;\
+ stmia r0,{r1-r12} ;\
+ mov pc,lr ;\
+ ;\
+ /* The below are set with a store-multiple instruction */ ;\
+ /* Flash is 16 bit, SRAM is 32 bit */ ;\
+ /* .long E7T_EXTDBWTH */ ;\
+12: .long ( (E7T_EXTDBWTH_16BIT<<E7T_EXTDBWTH_DSR0_shift) \
+ |(E7T_EXTDBWTH_32BIT<<E7T_EXTDBWTH_DSR1_shift) \
+ |(E7T_EXTDBWTH_32BIT<<E7T_EXTDBWTH_DSR2_shift) ) ;\
+ /* Flash at 0x01800000-0x01880000, 5 cycles, 4 cycles */ ;\
+ /* .long E7T_ROMCON0 */ ;\
+ .long ( (E7T_ROMCON_PMC_ROM) \
+ |(E7T_ROMCON_TPA_5C) \
+ |(E7T_ROMCON_TACC_4C) \
+ |((0x01800000 >> 16) << E7T_ROMCON_BASE_shift) \
+ |((0x01880000 >> 16) << E7T_ROMCON_NEXT_shift)) ;\
+ /* SRAM at 0x00000000-0x00400000, 5 cycles, 2 cycles */ ;\
+ /* .long E7T_ROMCON1 */ ;\
+ .long ( (E7T_ROMCON_PMC_ROM) \
+ |(E7T_ROMCON_TPA_5C) \
+ |(E7T_ROMCON_TACC_2C) \
+ |((0x00000000 >> 16) << E7T_ROMCON_BASE_shift) \
+ |((0x00040000 >> 16) << E7T_ROMCON_NEXT_shift)) ;\
+ /* SRAM at 0x00400000-0x00800000, 5 cycles, 2 cycles */ ;\
+ /* .long E7T_ROMCON2 */ ;\
+ .long ( (E7T_ROMCON_PMC_ROM) \
+ |(E7T_ROMCON_TPA_5C) \
+ |(E7T_ROMCON_TACC_2C) \
+ |((0x00040000 >> 16) << E7T_ROMCON_BASE_shift) \
+ |((0x00080000 >> 16) << E7T_ROMCON_NEXT_shift)) ;\
+ /* Below values are what Boot Monitor sets up */ ;\
+ /* .long E7T_ROMCON3 */ ;\
+ .long 0x08018020 ;\
+ /* .long E7T_ROMCON4 */ ;\
+ .long 0x0a020040 ;\
+ /* .long E7T_ROMCON5 */ ;\
+ .long 0x0c028040 ;\
+ /* .long E7T_DRAMCON0 */ ;\
+ .long 0x00000000 ;\
+ /* .long E7T_DRAMCON1 */ ;\
+ .long 0x00000000 ;\
+ /* .long E7T_DRAMCON2 */ ;\
+ .long 0x00000000 ;\
+ /* .long E7T_DRAMCON3 */ ;\
+ .long 0x00000000 ;\
+ /* .long E7T_REFEXTCON */ ;\
+ .long 0x9c218360 ;\
+ ;\
+33:
+#else
+#define PLATFORM_SETUP1
+#endif
+
+//-----------------------------------------------------------------------------
+// end of hal_platform_setup.h
+#endif // CYGONCE_HAL_PLATFORM_SETUP_H
diff --git a/ecos/packages/hal/arm/e7t/current/include/pkgconf/mlt_arm_e7t_ram.h b/ecos/packages/hal/arm/e7t/current/include/pkgconf/mlt_arm_e7t_ram.h
new file mode 100755
index 0000000..ee13c12
--- /dev/null
+++ b/ecos/packages/hal/arm/e7t/current/include/pkgconf/mlt_arm_e7t_ram.h
@@ -0,0 +1,17 @@
+// eCos memory layout - Wed Apr 11 13:43:10 2001
+
+// This is a generated file - do not edit
+
+#ifndef __ASSEMBLER__
+#include <cyg/infra/cyg_type.h>
+#include <stddef.h>
+
+#endif
+#define CYGMEM_REGION_ram (0)
+#define CYGMEM_REGION_ram_SIZE (0x80000)
+#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 (0x80000 - (size_t) CYG_LABEL_NAME (__heap1))
diff --git a/ecos/packages/hal/arm/e7t/current/include/pkgconf/mlt_arm_e7t_ram.ldi b/ecos/packages/hal/arm/e7t/current/include/pkgconf/mlt_arm_e7t_ram.ldi
new file mode 100644
index 0000000..b344fc9
--- /dev/null
+++ b/ecos/packages/hal/arm/e7t/current/include/pkgconf/mlt_arm_e7t_ram.ldi
@@ -0,0 +1,27 @@
+// eCos memory layout - Wed Apr 11 13:43:10 2001
+
+// This is a generated file - do not edit
+
+#include <cyg/infra/cyg_type.inc>
+
+MEMORY
+{
+ ram : ORIGIN = 0, LENGTH = 0x80000
+}
+
+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)
+ CYG_LABEL_DEFN(__heap1) = ALIGN (0x8);
+ SECTIONS_END
+}
diff --git a/ecos/packages/hal/arm/e7t/current/include/pkgconf/mlt_arm_e7t_ram.mlt b/ecos/packages/hal/arm/e7t/current/include/pkgconf/mlt_arm_e7t_ram.mlt
new file mode 100644
index 0000000..48bda0b
--- /dev/null
+++ b/ecos/packages/hal/arm/e7t/current/include/pkgconf/mlt_arm_e7t_ram.mlt
@@ -0,0 +1,13 @@
+version 0
+region ram 0 80000 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 1 0 1 heap1 heap1 !
+section heap1 0 8 0 0 0 0 0 0 !
diff --git a/ecos/packages/hal/arm/e7t/current/include/pkgconf/mlt_arm_e7t_rom.h b/ecos/packages/hal/arm/e7t/current/include/pkgconf/mlt_arm_e7t_rom.h
new file mode 100755
index 0000000..5629ebb
--- /dev/null
+++ b/ecos/packages/hal/arm/e7t/current/include/pkgconf/mlt_arm_e7t_rom.h
@@ -0,0 +1,25 @@
+// eCos memory layout - Wed Apr 11 13:49:55 2001
+
+// This is a generated file - do not edit
+
+#ifndef __ASSEMBLER__
+#include <cyg/infra/cyg_type.h>
+#include <stddef.h>
+
+#endif
+#define CYGMEM_REGION_ram (0)
+#define CYGMEM_REGION_ram_SIZE (0x80000)
+#define CYGMEM_REGION_ram_ATTR (CYGMEM_REGION_ATTR_R | CYGMEM_REGION_ATTR_W)
+#define CYGMEM_REGION_rom (0x1800000)
+#define CYGMEM_REGION_rom_SIZE (0x80000)
+#define CYGMEM_REGION_rom_ATTR (CYGMEM_REGION_ATTR_R)
+#ifndef __ASSEMBLER__
+extern char CYG_LABEL_NAME (__reserved_bootmon) [];
+#endif
+#define CYGMEM_SECTION_reserved_bootmon (CYG_LABEL_NAME (__reserved_bootmon))
+#define CYGMEM_SECTION_reserved_bootmon_SIZE (0x20000)
+#ifndef __ASSEMBLER__
+extern char CYG_LABEL_NAME (__heap1) [];
+#endif
+#define CYGMEM_SECTION_heap1 (CYG_LABEL_NAME (__heap1))
+#define CYGMEM_SECTION_heap1_SIZE (0x80000 - (size_t) CYG_LABEL_NAME (__heap1))
diff --git a/ecos/packages/hal/arm/e7t/current/include/pkgconf/mlt_arm_e7t_rom.ldi b/ecos/packages/hal/arm/e7t/current/include/pkgconf/mlt_arm_e7t_rom.ldi
new file mode 100644
index 0000000..c877e51
--- /dev/null
+++ b/ecos/packages/hal/arm/e7t/current/include/pkgconf/mlt_arm_e7t_rom.ldi
@@ -0,0 +1,29 @@
+// eCos memory layout - Wed Apr 11 13:49:55 2001
+
+// This is a generated file - do not edit
+
+#include <cyg/infra/cyg_type.inc>
+
+MEMORY
+{
+ ram : ORIGIN = 0, LENGTH = 0x80000
+ rom : ORIGIN = 0x1800000, LENGTH = 0x80000
+}
+
+SECTIONS
+{
+ SECTIONS_BEGIN
+ CYG_LABEL_DEFN(__reserved_bootmon) = 0x1800000; . = CYG_LABEL_DEFN(__reserved_bootmon) + 0x20000;
+ SECTION_rom_vectors (rom, ALIGN (0x8), LMA_EQ_VMA)
+ SECTION_text (rom, ALIGN (0x1), 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)
+ CYG_LABEL_DEFN(__heap1) = ALIGN (0x8);
+ SECTIONS_END
+}
diff --git a/ecos/packages/hal/arm/e7t/current/include/pkgconf/mlt_arm_e7t_rom.mlt b/ecos/packages/hal/arm/e7t/current/include/pkgconf/mlt_arm_e7t_rom.mlt
new file mode 100644
index 0000000..cf6fb5e
--- /dev/null
+++ b/ecos/packages/hal/arm/e7t/current/include/pkgconf/mlt_arm_e7t_rom.mlt
@@ -0,0 +1,15 @@
+version 0
+region ram 0 80000 0 !
+region rom 1800000 80000 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 1 0 1 heap1 heap1 !
+section heap1 0 8 0 0 0 0 0 0 !
+section reserved_bootmon 20000 1 0 0 1 1 1 1 1800000 1800000 rom_vectors rom_vectors !
+section rom_vectors 0 8 0 1 0 1 0 1 text text !
+section text 0 1 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 !
diff --git a/ecos/packages/hal/arm/e7t/current/include/plf_io.h b/ecos/packages/hal/arm/e7t/current/include/plf_io.h
new file mode 100644
index 0000000..a528fcc
--- /dev/null
+++ b/ecos/packages/hal/arm/e7t/current/include/plf_io.h
@@ -0,0 +1,250 @@
+#ifndef CYGONCE_HAL_PLF_IO_H
+#define CYGONCE_HAL_PLF_IO_H
+//=============================================================================
+//
+// plf_io.h
+//
+// Platform specific registers
+//
+//=============================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jskov
+// Contributors:jskov
+// Date: 2001-03-16
+// Purpose: ARM/E7T platform specific registers
+// Description:
+// Usage: #include <cyg/hal/plf_io.h>
+//
+//####DESCRIPTIONEND####
+//
+//=============================================================================
+
+// Platform doesn't need address munging even if configures as big-endian
+
+#define HAL_IO_MACROS_NO_ADDRESS_MUNGING
+
+// non-caching by accessing addr|0x04000000
+
+#define E7T_REG_BASE 0x07ff0000
+
+// -----------------------------------------------------------------------------
+// System config (register bases and caching)
+#define E7T_SYSCFG (E7T_REG_BASE + 0x0000)
+
+#define E7T_SYSCFG_SDM 0x80000000
+#define E7T_SYSCFG_PD_ID_MASK 0x3c000000
+#define E7T_SYSCFG_SRBBP_MASK 0x03ff0000 // address/64k
+#define E7T_SYSCFG_ISBBP_MASK 0x0000ffc0 // a25-a16
+#define E7T_SYSCFG_CM_MASK 0x00000030
+#define E7T_SYSCFG_CM_4R_4C 0x00000000
+#define E7T_SYSCFG_CM_0R_8C 0x00000010
+#define E7T_SYSCFG_CM_8R_0C 0x00000020
+#define E7T_SYSCFG_WE 0x00000004 // only KS32C50100?
+#define E7T_SYSCFG_CE 0x00000002
+#define E7T_SYSCFG_SE 0x00000001
+
+#define E7T_CLKCON (E7T_REG_BASE + 0x3000)
+
+#define E7T_EXTACON0 (E7T_REG_BASE + 0x3008)
+#define E7T_EXTACON1 (E7T_REG_BASE + 0x300c)
+
+//-----------------------------------------------------------------------------
+// Memory banks data width
+#define E7T_EXTDBWTH (E7T_REG_BASE + 0x3010)
+
+#define E7T_EXTDBWTH_MASK 3
+#define E7T_EXTDBWTH_8BIT 1
+#define E7T_EXTDBWTH_16BIT 2
+#define E7T_EXTDBWTH_32BIT 3
+
+#define E7T_EXTDBWTH_DSR0_shift 0
+#define E7T_EXTDBWTH_DSR1_shift 2
+#define E7T_EXTDBWTH_DSR2_shift 4
+#define E7T_EXTDBWTH_DSR3_shift 6
+#define E7T_EXTDBWTH_DSR4_shift 8
+#define E7T_EXTDBWTH_DSR5_shift 10
+#define E7T_EXTDBWTH_DSD0_shift 12
+#define E7T_EXTDBWTH_DSD1_shift 14
+#define E7T_EXTDBWTH_DSD2_shift 16
+#define E7T_EXTDBWTH_DSD3_shift 18
+#define E7T_EXTDBWTH_DSX0_shift 20
+#define E7T_EXTDBWTH_DSX1_shift 22
+#define E7T_EXTDBWTH_DSX2_shift 24
+#define E7T_EXTDBWTH_DSX3_shift 26
+
+// -----------------------------------------------------------------------------
+// Bank locations and timing
+#define E7T_ROMCON0 (E7T_REG_BASE + 0x3014)
+#define E7T_ROMCON1 (E7T_REG_BASE + 0x3018)
+#define E7T_ROMCON2 (E7T_REG_BASE + 0x301c)
+#define E7T_ROMCON3 (E7T_REG_BASE + 0x3020)
+#define E7T_ROMCON4 (E7T_REG_BASE + 0x3024)
+#define E7T_ROMCON5 (E7T_REG_BASE + 0x3028)
+
+#define E7T_ROMCON_PMC_MASK 0x00000003
+#define E7T_ROMCON_PMC_ROM 0x00000000
+#define E7T_ROMCON_PMC_4W_PAGE 0x00000001
+#define E7T_ROMCON_PMC_8W_PAGE 0x00000002
+#define E7T_ROMCON_PMC_16W_PAGE 0x00000003
+
+#define E7T_ROMCON_TPA_MASK 0x0000000c
+#define E7T_ROMCON_TPA_5C 0x00000000
+#define E7T_ROMCON_TPA_2C 0x00000004
+#define E7T_ROMCON_TPA_3C 0x00000008
+#define E7T_ROMCON_TPA_4C 0x0000000c
+
+#define E7T_ROMCON_TACC_MASK 0x00000070
+#define E7T_ROMCON_TACC_DISABLE 0x00000000
+#define E7T_ROMCON_TACC_2C 0x00000010
+#define E7T_ROMCON_TACC_3C 0x00000020
+#define E7T_ROMCON_TACC_4C 0x00000030
+#define E7T_ROMCON_TACC_5C 0x00000040
+#define E7T_ROMCON_TACC_6C 0x00000050
+#define E7T_ROMCON_TACC_7C 0x00000060
+
+#define E7T_ROMCON_BASE_MASK 0x000ffc00
+#define E7T_ROMCON_BASE_shift 10
+
+#define E7T_ROMCON_NEXT_MASK 0x3ff00000
+#define E7T_ROMCON_NEXT_shift 20
+
+
+
+#define E7T_DRAMCON0 (E7T_REG_BASE + 0x302c)
+#define E7T_DRAMCON1 (E7T_REG_BASE + 0x3030)
+#define E7T_DRAMCON2 (E7T_REG_BASE + 0x3034)
+#define E7T_DRAMCON3 (E7T_REG_BASE + 0x3038)
+#define E7T_REFEXTCON (E7T_REG_BASE + 0x303c)
+
+//-----------------------------------------------------------------------------
+// INTC
+
+#define E7T_INTMOD (E7T_REG_BASE + 0x4000)
+#define E7T_INTPND (E7T_REG_BASE + 0x4004)
+#define E7T_INTMSK (E7T_REG_BASE + 0x4008)
+#define E7T_INTPRI0 (E7T_REG_BASE + 0x400c)
+#define E7T_INTPRI1 (E7T_REG_BASE + 0x4010)
+#define E7T_INTPRI2 (E7T_REG_BASE + 0x4014)
+#define E7T_INTPRI3 (E7T_REG_BASE + 0x4018)
+#define E7T_INTPRI4 (E7T_REG_BASE + 0x401c)
+#define E7T_INTPRI5 (E7T_REG_BASE + 0x4020)
+#define E7T_INTOFFSET (E7T_REG_BASE + 0x4024)
+#define E7T_PNDPRI (E7T_REG_BASE + 0x4028)
+#define E7T_PNDTEST (E7T_REG_BASE + 0x402c)
+#define E7T_INTOFFSET_FIQ (E7T_REG_BASE + 0x4030)
+#define E7T_INTOFFSET_IRQ (E7T_REG_BASE + 0x4034)
+
+#define E7T_INTMSK_GLOBAL (1<<21)
+
+//-----------------------------------------------------------------------------
+// PIO
+
+#define E7T_IOPMOD (E7T_REG_BASE + 0x5000)
+#define E7T_IOPCON (E7T_REG_BASE + 0x5004)
+#define E7T_IOPDATA (E7T_REG_BASE + 0x5008)
+
+//-----------------------------------------------------------------------------
+// Timers
+
+#define E7T_TMOD (E7T_REG_BASE + 0x6000)
+#define E7T_TDATA0 (E7T_REG_BASE + 0x6004)
+#define E7T_TDATA1 (E7T_REG_BASE + 0x6008)
+#define E7T_TCNT0 (E7T_REG_BASE + 0x600c)
+#define E7T_TCNT1 (E7T_REG_BASE + 0x6010)
+
+#define E7T_TMOD_TE0 0x00000001
+#define E7T_TMOD_TMD0 0x00000002
+#define E7T_TMOD_TCLR0 0x00000004
+#define E7T_TMOD_TE1 0x00000008
+#define E7T_TMOD_TMD1 0x00000010
+#define E7T_TMOD_TCLR1 0x00000020
+
+
+//-----------------------------------------------------------------------------
+// UART
+
+#define E7T_UART0_BASE (E7T_REG_BASE + 0xd000)
+#define E7T_UART1_BASE (E7T_REG_BASE + 0xe000)
+
+#define E7T_UART_LCON 0x0000
+#define E7T_UART_CON 0x0004
+#define E7T_UART_STAT 0x0008
+#define E7T_UART_TXBUF 0x000c
+#define E7T_UART_RXBUF 0x0010
+#define E7T_UART_BRDIV 0x0014
+#define E7T_UART_BRDCNT 0x0018
+#define E7T_UART_BRDCLK 0x001c
+
+#define E7T_UART_LCON_5_DBITS 0x00
+#define E7T_UART_LCON_6_DBITS 0x01
+#define E7T_UART_LCON_7_DBITS 0x02
+#define E7T_UART_LCON_8_DBITS 0x03
+#define E7T_UART_LCON_1_SBITS 0x00
+#define E7T_UART_LCON_2_SBITS 0x04
+#define E7T_UART_LCON_NO_PARITY 0x00
+#define E7T_UART_LCON_EVEN_PARITY 0x00
+#define E7T_UART_LCON_ODD_PARITY 0x28
+#define E7T_UART_LCON_1_PARITY 0x30
+#define E7T_UART_LCON_0_PARITY 0x38
+#define E7T_UART_LCON_SCS 0x40
+#define E7T_UART_LCON_IR 0x80
+
+#define E7T_UART_CON_RXM_MASK 0x03
+#define E7T_UART_CON_RXM_INT 0x01
+#define E7T_UART_CON_TXM_MASK 0x0c
+#define E7T_UART_CON_TXM_INT 0x08
+#define E7T_UART_CON_RX_ERR_INT 0x04
+
+
+#define E7T_UART_STAT_DTR 0x10
+#define E7T_UART_STAT_RDR 0x20
+#define E7T_UART_STAT_TXE 0x40 // tx empty
+#define E7T_UART_STAT_TC 0x80 // tx complete
+
+//-----------------------------------------------------------------------------
+// Cache
+#define E7T_CACHE_SET0_ADDR 0x14000000
+#define E7T_CACHE_SET1_ADDR 0x14800000
+#define E7T_CACHE_TAG_ADDR 0x15000000
+
+//-----------------------------------------------------------------------------
+// Memory map is 1-1
+
+#define CYGARC_PHYSICAL_ADDRESS(_x_) (_x_)
+
+//-----------------------------------------------------------------------------
+// end of plf_io.h
+#endif // CYGONCE_HAL_PLF_IO_H
diff --git a/ecos/packages/hal/arm/e7t/current/include/plf_stub.h b/ecos/packages/hal/arm/e7t/current/include/plf_stub.h
new file mode 100644
index 0000000..47e9865
--- /dev/null
+++ b/ecos/packages/hal/arm/e7t/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.
+//
+//=============================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jskov
+// Contributors:jskov, gthomas
+// Date: 2001-03-16
+// Purpose: Platform HAL stub support for ARM/E7T boards.
+// Usage: #include <cyg/hal/plf_stub.h>
+//
+//####DESCRIPTIONEND####
+//
+//=============================================================================
+
+#include <pkgconf/hal.h>
+#include CYGBLD_HAL_PLATFORM_H
+
+#ifdef CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS
+
+#include <cyg/infra/cyg_type.h> // CYG_UNUSED_PARAM
+
+#include <cyg/hal/arm_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.
+#define HAL_STUB_PLATFORM_INIT() CYG_EMPTY_STATEMENT
+
+#endif // ifdef CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS
+
+//-----------------------------------------------------------------------------
+#endif // CYGONCE_HAL_PLF_STUB_H
+// End of plf_stub.h
diff --git a/ecos/packages/hal/arm/e7t/current/misc/redboot_ROM.ecm b/ecos/packages/hal/arm/e7t/current/misc/redboot_ROM.ecm
new file mode 100644
index 0000000..45cc067
--- /dev/null
+++ b/ecos/packages/hal/arm/e7t/current/misc/redboot_ROM.ecm
@@ -0,0 +1,87 @@
+cdl_savefile_version 1;
+cdl_savefile_command cdl_savefile_version {};
+cdl_savefile_command cdl_savefile_command {};
+cdl_savefile_command cdl_configuration { description hardware template package };
+cdl_savefile_command cdl_package { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_component { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_option { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_interface { value_source user_value wizard_value inferred_value };
+
+cdl_configuration eCos {
+ description "" ;
+ hardware e7t ;
+ template redboot ;
+ package -hardware CYGPKG_HAL_ARM current ;
+ package -hardware CYGPKG_HAL_ARM_E7T current ;
+ package -hardware CYGPKG_IO_SERIAL_ARM_E7T current ;
+ package -template CYGPKG_HAL current ;
+ package -template CYGPKG_INFRA current ;
+ package -template CYGPKG_REDBOOT current ;
+ package -template CYGPKG_ISOINFRA current ;
+ package -template CYGPKG_LIBC_STRING current ;
+ package CYGPKG_MEMALLOC current ;
+ package CYGPKG_COMPRESS_ZLIB current ;
+};
+
+cdl_option CYGFUN_LIBC_STRING_BSD_FUNCS {
+ inferred_value 0
+};
+
+cdl_option CYGNUM_HAL_COMMON_INTERRUPTS_STACK_SIZE {
+ user_value 4096
+};
+
+cdl_option CYGDBG_HAL_COMMON_INTERRUPTS_SAVE_MINIMUM_CONTEXT {
+ user_value 0
+};
+
+cdl_option CYGDBG_HAL_COMMON_CONTEXT_SAVE_MINIMUM {
+ inferred_value 0
+};
+
+cdl_option CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS {
+ inferred_value 1
+};
+
+cdl_option CYGSEM_HAL_ROM_MONITOR {
+ inferred_value 1
+};
+
+cdl_option CYGSEM_HAL_USE_ROM_MONITOR {
+ inferred_value 0 0
+};
+
+cdl_component CYG_HAL_STARTUP {
+ user_value ROM
+};
+
+cdl_component CYGBLD_BUILD_REDBOOT {
+ user_value 1
+};
+
+cdl_option CYGPKG_REDBOOT_ANY_CONSOLE {
+ user_value 0
+};
+
+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_BSD_FUNCS_HEADER {
+ inferred_value 1 <cyg/libc/string/bsdstring.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>
+};
+
+
+
diff --git a/ecos/packages/hal/arm/e7t/current/src/e7t_misc.c b/ecos/packages/hal/arm/e7t/current/src/e7t_misc.c
new file mode 100644
index 0000000..387e3bf
--- /dev/null
+++ b/ecos/packages/hal/arm/e7t/current/src/e7t_misc.c
@@ -0,0 +1,260 @@
+//==========================================================================
+//
+// e7t_misc.c
+//
+// HAL misc board support code for ARM E7T
+//
+//==========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//==========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): gthomas
+// Contributors: gthomas, jskov
+// Date: 2001-03-16
+// Purpose: HAL board support
+// Description: Implementations of HAL board interfaces
+//
+//####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_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> // necessary?
+#include <cyg/hal/hal_cache.h>
+#include <cyg/hal/hal_if.h> // calling interface
+#include <cyg/hal/hal_misc.h> // helper functions
+#ifdef CYGDBG_HAL_DEBUG_GDB_BREAK_SUPPORT
+#include <cyg/hal/drv_api.h> // HAL ISR support
+#endif
+#include <cyg/hal/plf_io.h> // platform registers
+
+static cyg_uint32 _period;
+
+#ifdef CYGDBG_HAL_DEBUG_GDB_BREAK_SUPPORT
+static cyg_interrupt abort_interrupt;
+static cyg_handle_t abort_interrupt_handle;
+
+// This ISR is called only for the Abort button interrupt
+static int
+e7t_abort_isr(cyg_vector_t vector, cyg_addrword_t data, HAL_SavedRegisters *regs)
+{
+ cyg_hal_user_break((CYG_ADDRWORD*)regs);
+ cyg_drv_interrupt_acknowledge(CYGNUM_HAL_INTERRUPT_EXT0);
+ return 0; // No need to run DSR
+}
+#endif
+
+void hal_clock_initialize(cyg_uint32 period)
+{
+ cyg_uint32 tmod;
+
+ // Disable timer 0
+ HAL_READ_UINT32(E7T_TMOD, tmod);
+ tmod &= ~(E7T_TMOD_TE0);
+ HAL_WRITE_UINT32(E7T_TMOD, 0);
+
+ tmod &= ~(E7T_TMOD_TMD0 | E7T_TMOD_TCLR0);
+ tmod |= E7T_TMOD_TE0;
+
+ // Set counter
+ HAL_WRITE_UINT32(E7T_TDATA0, period);
+
+ // And enable timer
+ HAL_WRITE_UINT32(E7T_TMOD, tmod);
+
+ _period = period;
+
+#ifdef CYGDBG_HAL_DEBUG_GDB_BREAK_SUPPORT
+ cyg_drv_interrupt_create(CYGNUM_HAL_INTERRUPT_EXT0,
+ 99, // Priority
+ 0, // Data item passed to interrupt handler
+ e7t_abort_isr,
+ 0,
+ &abort_interrupt_handle,
+ &abort_interrupt);
+ cyg_drv_interrupt_attach(abort_interrupt_handle);
+ cyg_drv_interrupt_unmask(CYGNUM_HAL_INTERRUPT_EXT0);
+#endif
+}
+
+void hal_clock_reset(cyg_uint32 vector, cyg_uint32 period)
+{
+ _period = period;
+}
+
+void hal_clock_read(cyg_uint32 *pvalue)
+{
+ cyg_uint32 value;
+
+ HAL_READ_UINT32(E7T_TCNT0, value);
+ *pvalue = _period - value;
+}
+
+// -------------------------------------------------------------------------
+//
+// Delay for some number of micro-seconds
+//
+void hal_delay_us(cyg_int32 usecs)
+{
+ cyg_uint32 count;
+ cyg_uint32 ticks = ((CYGNUM_HAL_RTC_PERIOD*CYGNUM_HAL_RTC_DENOMINATOR)/1000000) * usecs;
+ cyg_uint32 tmod;
+
+ // Disable timer 1
+ HAL_READ_UINT32(E7T_TMOD, tmod);
+ tmod &= ~(E7T_TMOD_TE1);
+ HAL_WRITE_UINT32(E7T_TMOD, tmod);
+
+ tmod &= ~(E7T_TMOD_TMD1 | E7T_TMOD_TCLR1);
+ tmod |= E7T_TMOD_TE1;
+
+ // Clear pending flag
+ HAL_WRITE_UINT32(E7T_INTPND, (1 << CYGNUM_HAL_INTERRUPT_TIMER1));
+
+ // Set counter
+ HAL_WRITE_UINT32(E7T_TDATA1, ticks);
+
+ // And enable timer
+ HAL_WRITE_UINT32(E7T_TMOD, tmod);
+
+ // Wait for timer to underflow. Can't test the timer completion
+ // bit without actually enabling the interrupt. So instead watch
+ // the counter.
+ ticks /= 2; // wait for this threshold
+
+ // Wait till timer counts below threshold
+ do {
+ HAL_READ_UINT32(E7T_TCNT1, count);
+ } while (count >= ticks);
+ // then wait for it to be reloaded
+ do {
+ HAL_READ_UINT32(E7T_TCNT1, count);
+ } while (count < ticks);
+
+ // Then disable timer 1 again
+ tmod &= ~E7T_TMOD_TE1;
+ HAL_WRITE_UINT32(E7T_TMOD, tmod);
+}
+
+// -------------------------------------------------------------------------
+// Hardware init
+void hal_hardware_init(void)
+{
+ cyg_uint32 intmask;
+
+ // Set up eCos/ROM interfaces
+ hal_if_init();
+
+ // Enable cache
+ HAL_WRITE_UINT32(E7T_SYSCFG,
+ 0x07FFFF80|E7T_SYSCFG_CM_0R_8C|E7T_SYSCFG_WE);
+ HAL_UCACHE_INVALIDATE_ALL();
+ HAL_UCACHE_ENABLE();
+
+ // Clear global interrupt mask bit
+ HAL_READ_UINT32(E7T_INTMSK, intmask);
+ intmask &= ~E7T_INTMSK_GLOBAL;
+ HAL_WRITE_UINT32(E7T_INTMSK, intmask);
+}
+
+//
+// This routine is called to respond to a hardware interrupt (IRQ). It
+// should interrogate the hardware and return the IRQ vector number.
+
+int hal_IRQ_handler(void)
+{
+ // Do hardware-level IRQ handling
+ cyg_uint32 irq_status;
+ HAL_READ_UINT32(E7T_INTOFFSET_IRQ, irq_status);
+ irq_status = irq_status / 4;
+ if (CYGNUM_HAL_ISR_MAX >= irq_status)
+ return irq_status;
+ // It's a bit bogus to test for FIQs after IRQs, but we use the
+ // latter more, so don't impose the overhead of checking for FIQs
+ HAL_READ_UINT32(E7T_INTOFFSET_FIQ, irq_status);
+ irq_status = irq_status / 4;
+ if (CYGNUM_HAL_ISR_MAX >= irq_status)
+ return irq_status;
+ return CYGNUM_HAL_INTERRUPT_NONE;
+}
+
+//
+// Interrupt control
+//
+
+void hal_interrupt_mask(int vector)
+{
+ cyg_uint32 mask, old_mask;
+ HAL_READ_UINT32(E7T_INTMSK, mask);
+ old_mask = mask;
+ mask |= (1<<vector);
+ HAL_WRITE_UINT32(E7T_INTMSK, mask);
+}
+
+void hal_interrupt_unmask(int vector)
+{
+ cyg_uint32 mask, old_mask;
+ HAL_READ_UINT32(E7T_INTMSK, mask);
+ old_mask = mask;
+ mask &= ~(1<<vector);
+ HAL_WRITE_UINT32(E7T_INTMSK, mask);
+}
+
+void hal_interrupt_acknowledge(int vector)
+{
+ HAL_WRITE_UINT32(E7T_INTPND, (1<<vector));
+}
+
+void hal_interrupt_configure(int vector, int level, int up)
+{
+}
+
+void hal_interrupt_set_level(int vector, int level)
+{
+}
+
+void hal_show_IRQ(int vector, int data, int handler)
+{
+}
+
+//--------------------------------------------------------------------------
+// EOF hal_misc.c
diff --git a/ecos/packages/hal/arm/e7t/current/src/flash_cksum.tcl b/ecos/packages/hal/arm/e7t/current/src/flash_cksum.tcl
new file mode 100755
index 0000000..6ae0c27
--- /dev/null
+++ b/ecos/packages/hal/arm/e7t/current/src/flash_cksum.tcl
@@ -0,0 +1,173 @@
+#!/usr/bin/env tclsh
+
+#===============================================================================
+#
+# flash_cksum.tcl
+#
+# Compute the checksum for a AEB-1 flash module
+#
+#===============================================================================
+## ####ECOSGPLCOPYRIGHTBEGIN####
+## -------------------------------------------
+## This file is part of eCos, the Embedded Configurable Operating System.
+## Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+##
+## eCos is free software; you can redistribute it and/or modify it under
+## the terms of the GNU General Public License as published by the Free
+## Software Foundation; either version 2 or (at your option) any later
+## version.
+##
+## eCos is distributed in the hope that it will be useful, but WITHOUT
+## ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+## FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+## for more details.
+##
+## You should have received a copy of the GNU General Public License
+## along with eCos; if not, write to the Free Software Foundation, Inc.,
+## 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+##
+## As a special exception, if other files instantiate templates or use
+## macros or inline functions from this file, or you compile this file
+## and link it with other works to produce a work based on this file,
+## this file does not by itself cause the resulting work to be covered by
+## the GNU General Public License. However the source code for this file
+## must still be made available in accordance with section (3) of the GNU
+## General Public License v2.
+##
+## This exception does not invalidate any other reasons why a work based
+## on this file might be covered by the GNU General Public License.
+## -------------------------------------------
+## ####ECOSGPLCOPYRIGHTEND####
+#===============================================================================
+######DESCRIPTIONBEGIN####
+#
+# Author(s): gthomas
+# Contact(s): gthomas
+# Date: 1999/01/06
+# Version: 0.01 $RcsVersion$
+# Purpose: Compute the checksum for a FLASH ROM module.
+# Description:
+# Requires: A working Tcl interpreter, V8.0 or later.
+# Provides: Command line operation only.
+# Inputs:
+# Side FX:
+# Outputs:
+# See also: 'Notes' which describes the process of creating the GDB stubs
+# module.
+# Known bugs:
+# Usage:
+#
+#####DESCRIPTIONEND####
+#===============================================================================
+
+#
+# This ckecksum is the 32-bit XOR of all 32 bit words in the file.
+# The output of the program is a single number, suitable for use in
+# a Makefile/script used to create an AEB-1 module for FLASH ROM.
+#
+
+proc checksum { name } {
+
+ set status [ catch {
+ set fd [open $name "r"]
+ fconfigure $fd -translation binary
+ set data [read $fd]
+ close $fd
+ } message]
+
+ if { $status != 0 } {
+ puts "Unable to read file $name: $message"
+ exit 1
+ }
+
+ set sum 0
+ set length [string length $data]
+ for { set i 0 } { $i < $length } { incr i 4 } {
+ # Fetch the next 32 bit word. The funky tests are to handle the case
+ # of zero bytes.
+ set char0 [string index $data [expr $i + 0]]
+ if { "$char0" != "" } {
+ scan $char0 "%c" ascii0
+ } else {
+ set ascii0 0
+ }
+ set char1 [string index $data [expr $i + 1]]
+ if { "$char1" != "" } {
+ scan $char1 "%c" ascii1
+ } else {
+ set ascii1 0
+ }
+ set char2 [string index $data [expr $i + 2]]
+ if { "$char2" != "" } {
+ scan $char2 "%c" ascii2
+ } else {
+ set ascii2 0
+ }
+ set char3 [string index $data [expr $i + 3]]
+ if { "$char3" != "" } {
+ scan $char3 "%c" ascii3
+ } else {
+ set ascii3 0
+ }
+ set word [expr $ascii0 << 24]
+ set word [expr $word | [expr $ascii1 << 16]]
+ set word [expr $word | [expr $ascii2 << 8]]
+ set word [expr $word | $ascii3]
+ set sum [expr $sum ^ $word]
+ # puts "sum: [format %8.8X $sum], word: [format %8.8X $word]"
+ }
+
+ return $sum
+}
+
+proc bswap { native } {
+ set byte0 [expr [expr $native >> 24] & 255]
+ set byte1 [expr [expr $native >> 16] & 255]
+ set byte2 [expr [expr $native >> 8] & 255]
+ set byte3 [expr [expr $native >> 0] & 255]
+ set swapped [expr $byte3 << 24]
+ set swapped [expr $swapped | [expr $byte2 << 16]]
+ set swapped [expr $swapped | [expr $byte1 << 8]]
+ set swapped [expr $swapped | [expr $byte0 << 0]]
+ # puts "native: [format %8.8X $native], swapped: [format %8.8X $swapped]"
+ return $swapped
+}
+
+global tcl_platform
+set byteOrder $tcl_platform(byteOrder)
+# puts "platform byte order = $byteOrder"
+
+# Parse command line arguments
+set argc 0
+array set args { }
+foreach arg $argv {
+ set args([incr argc]) $arg
+}
+
+if { "$argc" != "1" } {
+ puts "usage: flash_cksum <file>"
+ exit 1
+}
+
+set cksum [checksum $args(1)]
+
+# if { "$byteOrder" == "littleEndian" } {
+ # puts "Swap bytes!"
+ set cksum [bswap $cksum]
+# }
+
+# Tcl up to at least version 8.3 has problems on alphas,
+# Tcl_FormatObjCmd() invokes Tcl_GetIntFromObj() which
+# ends up doing dodgy conversions between int and long.
+# This results in an error if bit 32 is set. Rewriting
+# the format string to output one byte at a time is
+# safer.
+
+# puts "[format 0x%8.8X $cksum]"
+
+puts [format "0x%02X%02X%02X%02X" \
+ [expr (($cksum >> 24) & 0x0FF)] \
+ [expr (($cksum >> 16) & 0x0FF)] \
+ [expr (($cksum >> 8) & 0x0FF)] \
+ [expr (($cksum ) & 0x0FF)]]
+
diff --git a/ecos/packages/hal/arm/e7t/current/src/hal_diag.c b/ecos/packages/hal/arm/e7t/current/src/hal_diag.c
new file mode 100644
index 0000000..b79d897
--- /dev/null
+++ b/ecos/packages/hal/arm/e7t/current/src/hal_diag.c
@@ -0,0 +1,375 @@
+/*=============================================================================
+//
+// hal_diag.c
+//
+// HAL diagnostic output code
+//
+//=============================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jskov
+// Contributors:jskov
+// Date: 2001-03-16
+// Purpose: HAL diagnostic output
+// Description: Implementations of HAL diagnostic output support.
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================*/
+
+#include <pkgconf/hal.h>
+#include CYGBLD_HAL_PLATFORM_H
+
+#include <cyg/infra/cyg_type.h> // base types
+
+#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
+
+#include <cyg/hal/plf_io.h> // SIO registers
+
+#define SIO_BRDDIV (((CYGNUM_HAL_ARM_E7T_CLOCK_SPEED/2/16/CYGNUM_HAL_VIRTUAL_VECTOR_CHANNELS_DEFAULT_BAUD)<<4))
+
+//-----------------------------------------------------------------------------
+typedef struct {
+ cyg_uint8* base;
+ cyg_int32 msec_timeout;
+ int isr_vector_rx;
+ int isr_vector_tx;
+} channel_data_t;
+
+//-----------------------------------------------------------------------------
+
+char hextab[] = "0123456789ABCDEF";
+
+void putc_ser(int c)
+{
+ cyg_uint8* base = (cyg_uint8*)E7T_UART1_BASE;
+ cyg_uint32 status;
+ do {
+ HAL_READ_UINT32(base+E7T_UART_STAT, status);
+ } while ((status & E7T_UART_STAT_TXE) == 0);
+
+ HAL_WRITE_UINT32(base+E7T_UART_TXBUF, c);
+}
+
+void putint(int a)
+{
+ int i;
+ putc_ser('0');
+ putc_ser('x');
+ for (i = 0; i < 8; i++) {
+ putc_ser(hextab[(a>>(28-(4*i))) & 0x0f]);
+ }
+ putc_ser('\r');
+ putc_ser('\n');
+}
+
+void
+init_ser(void)
+{
+ cyg_uint8* base = (cyg_uint8*)E7T_UART1_BASE;
+
+ // 8-1-no parity.
+ HAL_WRITE_UINT32(base+E7T_UART_LCON,
+ E7T_UART_LCON_8_DBITS|E7T_UART_LCON_1_SBITS|E7T_UART_LCON_NO_PARITY);
+
+ // Mask interrupts.
+ HAL_INTERRUPT_MASK(CYGNUM_HAL_INTERRUPT_UART0_RX);
+ HAL_INTERRUPT_MASK(CYGNUM_HAL_INTERRUPT_UART0_TX);
+
+ HAL_WRITE_UINT32(base+E7T_UART_BRDIV, SIO_BRDDIV);
+}
+
+//-----------------------------------------------------------------------------
+
+static void
+cyg_hal_plf_serial_init_channel(void* __ch_data)
+{
+ cyg_uint8* base = ((channel_data_t*)__ch_data)->base;
+
+ // 8-1-no parity.
+ HAL_WRITE_UINT32(base+E7T_UART_LCON,
+ E7T_UART_LCON_8_DBITS|E7T_UART_LCON_1_SBITS|E7T_UART_LCON_NO_PARITY);
+
+ HAL_WRITE_UINT32(base+E7T_UART_BRDIV, SIO_BRDDIV);
+
+ // Mask interrupts
+ HAL_INTERRUPT_MASK(((channel_data_t*)__ch_data)->isr_vector_rx);
+ HAL_INTERRUPT_MASK(((channel_data_t*)__ch_data)->isr_vector_tx);
+
+ // Enable RX and TX
+ HAL_WRITE_UINT32(base+E7T_UART_CON, E7T_UART_CON_RXM_INT|E7T_UART_CON_TXM_INT);
+}
+
+void
+cyg_hal_plf_serial_putc(void *__ch_data, char c)
+{
+ cyg_uint8* base = ((channel_data_t*)__ch_data)->base;
+ cyg_uint32 status, ch;
+ CYGARC_HAL_SAVE_GP();
+
+ do {
+ HAL_READ_UINT32(base+E7T_UART_STAT, status);
+ } while ((status & E7T_UART_STAT_TXE) == 0);
+
+ ch = (cyg_uint32)c;
+ HAL_WRITE_UINT32(base+E7T_UART_TXBUF, ch);
+
+ CYGARC_HAL_RESTORE_GP();
+}
+
+static cyg_bool
+cyg_hal_plf_serial_getc_nonblock(void* __ch_data, cyg_uint8* ch)
+{
+ channel_data_t* chan = (channel_data_t*)__ch_data;
+ cyg_uint8* base = chan->base;
+ cyg_uint32 stat;
+ cyg_uint32 c;
+
+ HAL_READ_UINT32(base+E7T_UART_STAT, stat);
+ if ((stat & E7T_UART_STAT_RDR) == 0)
+ return false;
+
+ HAL_READ_UINT32(base+E7T_UART_RXBUF, c);
+ *ch = (cyg_uint8)(c & 0xff);
+
+ HAL_INTERRUPT_ACKNOWLEDGE(chan->isr_vector_rx);
+
+ 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;
+}
+
+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;
+ int ret = 0;
+ CYGARC_HAL_SAVE_GP();
+
+ switch (__func) {
+ case __COMMCTL_IRQ_ENABLE:
+ irq_state = 1;
+ HAL_INTERRUPT_ACKNOWLEDGE(chan->isr_vector_rx);
+ HAL_INTERRUPT_UNMASK(chan->isr_vector_rx);
+ break;
+ case __COMMCTL_IRQ_DISABLE:
+ ret = irq_state;
+ irq_state = 0;
+ HAL_INTERRUPT_MASK(chan->isr_vector_rx);
+ break;
+ case __COMMCTL_DBG_ISR_VECTOR:
+ ret = chan->isr_vector_rx;
+ 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;
+ channel_data_t* chan = (channel_data_t*)__ch_data;
+ cyg_uint32 c;
+ cyg_uint8 ch;
+ cyg_uint32 stat;
+ CYGARC_HAL_SAVE_GP();
+
+ *__ctrlc = 0;
+ HAL_READ_UINT32(chan->base+E7T_UART_STAT, stat);
+ if ( (stat & E7T_UART_STAT_RDR) != 0 ) {
+
+ HAL_READ_UINT32(chan->base+E7T_UART_RXBUF, c);
+ ch = (cyg_uint8)(c & 0xff);
+ if( cyg_hal_is_break( &ch , 1 ) )
+ *__ctrlc = 1;
+
+ res = CYG_ISR_HANDLED;
+ }
+
+ HAL_INTERRUPT_ACKNOWLEDGE(chan->isr_vector_rx);
+
+ CYGARC_HAL_RESTORE_GP();
+ return res;
+}
+
+static channel_data_t e7t_ser_channels[2] = {
+ { (cyg_uint8*)E7T_UART0_BASE, 1000, CYGNUM_HAL_INTERRUPT_UART0_RX, CYGNUM_HAL_INTERRUPT_UART0_TX },
+ { (cyg_uint8*)E7T_UART1_BASE, 1000, CYGNUM_HAL_INTERRUPT_UART1_RX, CYGNUM_HAL_INTERRUPT_UART1_TX }
+};
+
+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);
+
+ // Init channels
+ cyg_hal_plf_serial_init_channel(&e7t_ser_channels[0]);
+ cyg_hal_plf_serial_init_channel(&e7t_ser_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, &e7t_ser_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, &e7t_ser_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();
+}
+
+//-----------------------------------------------------------------------------
+// LED
+void
+hal_diag_led(int mask)
+{
+ cyg_uint32 l;
+
+ HAL_READ_UINT32(E7T_IOPDATA, l);
+ l &= ~0x000000f0;
+ l |= (mask & 0xf) << 4;
+ HAL_WRITE_UINT32(E7T_IOPDATA, l);
+}
+
+//-----------------------------------------------------------------------------
+// End of hal_diag.c
diff --git a/ecos/packages/hal/arm/e7t/current/src/redboot_module.c b/ecos/packages/hal/arm/e7t/current/src/redboot_module.c
new file mode 100644
index 0000000..0d3a439
--- /dev/null
+++ b/ecos/packages/hal/arm/e7t/current/src/redboot_module.c
@@ -0,0 +1,132 @@
+//==========================================================================
+//
+// redboot_module.c
+//
+// ARM E7T board RedBoot module wrapper
+//
+//==========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//==========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): gthomas
+// Contributors: gthomas, jskov
+// Date: 2001-03-19
+// Description: AEB-2 FLASH module for RedBoot
+//####DESCRIPTIONEND####
+
+//
+// This is the module 'wrapper' for RedBoot
+//
+
+#include <pkgconf/hal.h>
+#include <cyg/infra/cyg_type.h>
+#include <cyg/hal/hal_stub.h>
+
+// ARM AEB-2 module stuff
+
+#ifdef CYGPKG_REDBOOT
+
+#include <redboot.h>
+
+#ifndef CHECKSUM
+#define CHECKSUM 0x0
+#endif
+
+extern char __exception_handlers, __rom_data_end;
+
+const char __title[] = "RedBoot";
+const char __help[] = "RedBoot " __DATE__;
+
+struct ModuleHeader {
+ cyg_uint32 magic;
+ cyg_uint16 flags;
+ cyg_uint8 major;
+ cyg_uint8 minor;
+ cyg_uint32 checksum;
+ cyg_uint32 ro_base;
+ cyg_uint32 ro_limit;
+ cyg_uint32 rw_base;
+ cyg_uint32 zi_base;
+ cyg_uint32 zi_limit;
+ cyg_uint32 self;
+ cyg_uint32 start;
+ cyg_uint32 init;
+ cyg_uint32 final;
+ cyg_uint32 service;
+ cyg_uint32 title;
+ cyg_uint32 help;
+ cyg_uint32 cmdtbl;
+ cyg_uint32 swi_base;
+ cyg_uint32 swi_handler;
+};
+
+const static struct ModuleHeader __hdr = {
+ 0x4D484944, // MHID
+ 2, // flags = auto start
+ 1, // major
+ 0, // minor
+ CHECKSUM, // checksum
+ (cyg_uint32) &__exception_handlers, // start of module (read-only) image
+ (cyg_uint32) &__rom_data_end, // end of image
+ 0, // r/w base - unused
+ 0, // bss base - unused
+ 0, // bss limit - unused
+ (cyg_uint32) &__hdr, // self (for module identification)
+ (cyg_uint32) &__exception_handlers, // startup
+ 0, // init - unused
+ 0, // final - unused
+ 0, // service - unused
+ (cyg_uint32) &__title, // title
+ (cyg_uint32) &__help, // help string
+ 0, // command table - unused
+ 0, // SWI table - unused
+ 0 // SWI handler - unused
+};
+
+static void
+__dummy(void *p)
+{
+}
+
+void __dummy_init(void)
+{
+ __dummy((void*)&__hdr);
+}
+
+_RedBoot_init(__dummy_init, RedBoot_INIT_LAST);
+
+
+#else
+#error "Stand-alone RedBoot only"
+#endif
diff --git a/ecos/packages/hal/arm/ebsa285/current/ChangeLog b/ecos/packages/hal/arm/ebsa285/current/ChangeLog
new file mode 100644
index 0000000..00314ce
--- /dev/null
+++ b/ecos/packages/hal/arm/ebsa285/current/ChangeLog
@@ -0,0 +1,852 @@
+2009-01-31 Bart Veer <bartv@ecoscentric.com>
+
+ * cdl/hal_arm_ebsa285.cdl: update compiler flags for gcc 4.x
+
+2003-12-05 Andrew Lunn <andrew.lunn@ascom.ch>
+
+ * include/hal_diag.h: hal_delay_us() is a C function.
+
+2003-09-21 Gary Thomas <gary@mlbassoc.com>
+
+ * misc/redboot_RAM.ecm:
+ * misc/redboot_ROM.ecm:
+ * misc/redboot_ROMRAM.ecm: Adjust for changes in RedBoot
+ template - DNS now must be enabled manually.
+
+2003-07-18 Nick Garnett <nickg@balti.calivar.com>
+
+ * cdl/hal_arm_ebsa285.cdl:
+ Changed values for CYGNUM_HAL_RTC_NUMERATOR,
+ CYGNUM_HAL_RTC_DENOMINATOR and CYGNUM_HAL_RTC_PERIOD to
+ "default_value" from "calculated". This makes it easier
+ to change these values globally.
+
+2003-02-13 Patrick Doyle <wpd@delcomsys.com>
+ * src/ebsa285_misc.c: Replaced explicit prototype of memset with
+ #include <string.h>.
+
+2002-08-02 Andrew Lunn <Andrew.Lunn@ascom.ch>
+
+ * src/redboot_cmds.c: Redboot exec command can now be disabled by CDL
+ * cdl/hal_arm_ebsa285.cdl: Support needed for above.
+
+2002-05-14 Jesper Skov <jskov@redhat.com>
+
+ * src/ebsa285_misc.c: Fixed warning.
+
+2002-05-07 Gary Thomas <gthomas@redhat.com>
+
+ * cdl/hal_arm_ebsa285.cdl:
+ Standardize CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_DEFAULT usage.
+
+2002-04-29 Jonathan Larmour <jlarmour@redhat.com>
+
+ * src/mem285.S:
+ Don't use .file as it can confuse debugging since the .file
+ doesn't contain the path and therefore the debugger will never
+ know where it lives! This conflicts with using -Wa,--gstabs.
+
+2002-04-26 Nick Garnett <nickg@redhat.com>
+
+ * misc/redboot_ROMRAM.ecm: Brought up to date with RAM and ROM ecm
+ files.
+
+2002-04-24 Jesper Skov <jskov@redhat.com>
+
+ * cdl/hal_arm_ebsa285.cdl: CYGPRI_KERNEL_TESTS_DHRYSTONE_PASSES
+ defined.
+
+2002-04-03 Gary Thomas <gthomas@redhat.com>
+
+ * misc/redboot_ROM.ecm:
+ * misc/redboot_RAM.ecm: Update for new RedBoot support, using generic
+ network drivers.
+
+2002-03-05 Jesper Skov <jskov@redhat.com>
+
+ * misc/redboot_ROM.ecm: Added dns+zlib packages.
+ * misc/redboot_RAM.ecm: Same.
+
+2002-01-28 Jesper Skov <jskov@redhat.com>
+
+ * cdl/hal_arm_ebsa285.cdl: Removed explicit plf_io.h declaration.
+
+2001-11-02 Andrew Lunn <Andrew.Lunn@ascom.ch>
+2001-11-02 Jonathan Larmour <jlarmour@redhat.com>
+
+ * cdl/hal_arm_ebsa285.cdl: Add ROMRAM startup type and MLT file config.
+
+ * include/hal_platform_setup.h: Support relocation of ROMRAM image.
+
+ * include/pkgconf/mlt_arm_ebsa285_romram.h: New MLT files for romram.
+ * include/pkgconf/mlt_arm_ebsa285_romram.ldi: Ditto.
+ * include/pkgconf/mlt_arm_ebsa285_romram.mlt: Ditto.
+ * include/pkgconf/mlt_arm_ebsa285_ram.mlt: Move app base to 0x30000 to
+ allow for romram space.
+ * include/pkgconf/mlt_arm_ebsa285_ram.ldi: Regenerate.
+
+ * misc/redboot_ROMRAM.ecm: New file.
+
+2001-08-22 Gary Thomas <gthomas@redhat.com>
+
+ * src/redboot_cmds.c:
+ printf() is no longer a part of RedBoot. Thus all programs
+ must use diag_printf() and related functions instead.
+
+2001-06-21 Jonathan Larmour <jlarmour@redhat.com>
+
+ * images/*: Remove. Don't bloat repository with things already on
+ the web.
+
+2001-04-26 Hugo Tyson <hmt@redhat.com>
+
+ * misc/redboot_ROM.ecm:
+ * misc/redboot_RAM.ecm: Remove CYGSEM_HAL_VIRTUAL_VECTOR_DIAG from
+ the import file; it's now calculated in the common HAL so no need
+ to set it here.
+
+2001-04-16 Gary Thomas <gthomas@redhat.com>
+
+ * cdl/hal_arm_ebsa285.cdl: Add CDL to describe CPU family.
+
+2001-03-08 Jesper Skov <jskov@redhat.com>
+
+ * cdl/hal_arm_ebsa285.cdl: Removed
+ CYGINT_HAL_VIRTUAL_VECTOR_SUPPORT_GUARANTEED which is now the
+ default.
+
+2001-02-23 Jesper Skov <jskov@redhat.com>
+
+ * include/hal_cache.h (HAL_FLASH_CACHES_OLD_MACROS): This platform
+ uses deprecated cache handling macros.
+
+2001-02-23 Gary Thomas <gthomas@redhat.com>
+
+ * misc/redboot_ROM.ecm: Renamed from redboot_ROM.cfg
+
+ * misc/redboot_RAM.ecm: Renamed from redboot_RAM.cfg
+
+2001-02-13 Gary Thomas <gthomas@redhat.com>
+
+ * src/ebsa285_misc.c (hal_IRQ_handler):
+ Return CYGNUM_HAL_INTERRUPT_NONE for spurious interrupts.
+
+2001-02-08 Jesper Skov <jskov@redhat.com>
+
+ * src/hal_diag.c: Replace CYGSEM_HAL_DIAG_MANGLER_None with
+ CYGDBG_HAL_DIAG_TO_DEBUG_CHAN.
+
+ * cdl/hal_arm_ebsa285.cdl: Respect channel configuration
+ constraints.
+
+2001-01-31 Jesper Skov <jskov@redhat.com>
+
+ * src/hal_diag.c: Replaced CYGDBG_HAL_DIAG_DISABLE_GDB_PROTOCOL
+ with CYGSEM_HAL_DIAG_MANGLER_None
+
+2001-01-26 Jesper Skov <jskov@redhat.com>
+
+ * src/hal_diag.c: Removed CYGSEM_HAL_VIRTUAL_VECTOR_DIAG check.
+ * include/plf_stub.h: Moved reset macro to
+ * include/hal_platform_ints.h: this file.
+
+2001-01-03 Gary Thomas <gthomas@redhat.com>
+
+ * src/ebsa285_misc.c (hal_delay_us): Slight rearrangement to
+ ensure this works properly on all speeds of platform.
+
+2000-12-11 Gary Thomas <gthomas@redhat.com>
+
+ * cdl/hal_arm_ebsa285.cdl:
+ Enable CYGINT_HAL_VIRTUAL_VECTOR_SUPPORT_GUARANTEED - required
+ to fully support RedBoot networking I/O and ^C.
+
+2000-12-08 Jonathan Larmour <jlarmour@redhat.com>
+
+ * cdl/hal_arm_ebsa285.cdl: Build redboot_cmds.c in the right place.
+
+2000-12-04 Hugo Tyson <hmt@redhat.com>
+
+ * include/hal_cache.h: Consistently ensure that ARM registers used
+ in MCR ops to cache-control coprocessors, where the data doesn't
+ matter, all actually have data zero ("SBZ") as in the Jaggar book.
+ This may well not be necessary, but for the sake of making sure...
+
+2000-12-01 Gary Thomas <gthomas@redhat.com>
+
+ * src/redboot_cmds.c: Add prototype to remove warning.
+
+2000-11-30 Gary Thomas <gthomas@redhat.com>
+
+ * src/redboot_cmds.c (do_exec): Complete support for loading
+ Linux, including use of an initial ramdisk image.
+
+2000-12-01 Hugo Tyson <hmt@redhat.com>
+
+ * include/hal_cache.h: Define addressable cache line operations
+ HAL_DCACHE_STORE(), HAL_DCACHE_INVALIDATE(), HAL_DCACHE_FLUSH()
+ now that I have understood how come the test (kcache2) was
+ failing. See kernel ChangeLog for details. Also tidied up a
+ couple of other minor details.
+
+2000-11-28 Drew Moseley <dmoseley@redhat.com>
+
+ * misc/redboot_RAM.cfg: Implement CYGSEM_REDBOOT_BSP_SYSCALLS.
+ * misc/redboot_ROM.cfg: Ditto.
+
+ * src/ebsa285_misc.c (ebsa285_program_new_stack): New function
+ for switching to an application stack when running a program under
+ a ROM monitor.
+
+ * cdl/hal_arm_sa11x0_ebsa285.cdl: Define HAL_ARCH_PROGRAM_NEW_STACK.
+
+2000-11-19 Gary Thomas <gthomas@redhat.com>
+
+ * cdl/hal_arm_ebsa285.cdl: Define CYGBLD_HAL_PLATFORM_IO_H.
+
+ * src/redboot_cmds.c: Fix 'exec' command to handle Linux
+ kernel. Includes support to relocate image before startup.
+
+ * cdl/hal_arm_ebsa285.cdl: Fix some minor comments.
+
+2000-11-14 <gthomas@laptop_local>
+
+ * include/hal_ebsa285.h (EBSA285_RAM_BANK0_BASE): Correct for SA110/285.
+
+2000-11-13 <gthomas@laptop_local>
+
+ * cdl/hal_arm_ebsa285.cdl: Fix out of date ROM/RAM description.
+
+2000-10-18 Gary Thomas <gthomas@redhat.com>
+
+ * src/redboot_cmds.c: New file: only built in redboot, for a
+ platform specific command to exec code with no MMU intervention.
+ This is used to execute standard Linux kernels with as little
+ change/perturbation as possible.
+
+ * include/hal_ebsa285.h (EBSA285_RAM_BANK0_BASE): New symbol for
+ redboot_cmds.c
+
+ * cdl/hal_arm_ebsa285.cdl: Add build redboot_cmds.c -> libextras.
+
+2000-09-17 Gary Thomas <gthomas@redhat.com>
+
+ * cdl/hal_arm_ebsa285.cdl: Add platform/cpu identification strings.
+
+2000-09-06 Hugo Tyson <hmt@cygnus.co.uk>
+
+ * cdl/hal_arm_ebsa285.cdl (CYGHWR_HAL_ARM_EBSA285_PCI_MEM_MAP_BASE
+ CYGHWR_HAL_ARM_EBSA285_PCI_MEM_MAP_SIZE): Add strong constraints
+ to the alignment and size of the PCI window by means of
+ legal_values lists so that runtime can check that the MLTs opinion
+ of the memory usage is valid. [This is related to CR 902624-CR,
+ "MLT needs to be configuration aware"]
+
+ * include/pkgconf/mlt_arm_ebsa285_ram.h:
+ * include/pkgconf/mlt_arm_ebsa285_ram.ldi:
+ * include/pkgconf/mlt_arm_ebsa285_ram.mlt:
+ * include/pkgconf/mlt_arm_ebsa285_rom.h:
+ * include/pkgconf/mlt_arm_ebsa285_rom.ldi:
+ * include/pkgconf/mlt_arm_ebsa285_rom.mlt:
+ Regenerate these from the MLT featuring a "pci_window" section in
+ order to prevent the greedy heap code comsuming all of memory.
+ The pci_window section is from 0xf00000 of size 0x100000
+ i.e. Megabyte number 15, at the top of (default) memory.
+ Unfortunately my previous quick fix (2000-08-15) for this had not
+ in fact worked, because of the "clever" code which looks for
+ add-in memory and consumes *that* too, unconditionally... [This
+ is related to CR 902624-CR, "MLT needs to be configuration aware"]
+
+2000-08-18 Hugo Tyson <hmt@cygnus.co.uk>
+
+ * include/hal_platform_setup.h: Initialize the world if you are
+ blowing away previous state rather than only in ROM start. This
+ makes it possible to create a standalone RAM app that will work
+ with either RedBoot in ROM or old-style GDB stubs, or any other
+ loader you might find.
+
+ Incidentally I now understand why Gary found it necessary to force
+ PCI reset (2000-08-07) - with RedBoot in ROM, the RAM app was
+ unconditionally reinitializing the PCI bus when it was already
+ initialized, without resetting it. We cannot play the same game
+ here as with hal_platform_setup.h - I tried - because otherwise
+ the net cannot re-initialize itself; the scan for devices fails.
+
+2000-08-16 Hugo Tyson <hmt@cygnus.co.uk>
+
+ * include/hal_platform_setup.h (CYGHWR_LED_MACRO): Use an address
+ that works for a customer's own not-quite-exactly-like an EBSA
+ board. It works fine on a real EBSA too of course.
+ [CASE 104355]
+
+2000-08-15 Hugo Tyson <hmt@cygnus.co.uk>
+
+ * include/pkgconf/mlt_arm_ebsa285_ram.h (CYGMEM_REGION_ram_SIZE):
+ * include/pkgconf/mlt_arm_ebsa285_rom.h (CYGMEM_REGION_ram_SIZE):
+ Do not "helpfully" consume all of memory for the heap, including
+ PCI space, unconditionally; leave the PCI window alone.
+
+2000-08-07 Gary Thomas <gthomas@redhat.com>
+
+ * include/plf_io.h (HAL_PCI_INIT): Force PCI reset, just for
+ good measure.
+
+2000-08-03 Gary Thomas <gthomas@redhat.com>
+
+ * src/ebsa285_misc.c (hal_delay_us): New routine, used for
+ hardware delays when no kernel timers are available.
+
+ * include/hal_platform_setup.h (PLATFORM_SETUP1): Don't re-init
+ hardware for RAM startup. Doing so keeps network debugging from
+ working (PCI gets shutdown, etc).
+
+2000-07-25 Jonathan Larmour <jlarmour@redhat.co.uk>
+
+ * include/pkgconf/mlt_arm_ebsa285_ram.mlt: Add heap1 section for malloc
+ * include/pkgconf/mlt_arm_ebsa285_ram.ldi: Regenerate
+ * include/pkgconf/mlt_arm_ebsa285_ram.h: Regenerate
+ * include/pkgconf/mlt_arm_ebsa285_rom.mlt: Add heap1 section for malloc
+ * include/pkgconf/mlt_arm_ebsa285_rom.ldi: Regenerate
+ * include/pkgconf/mlt_arm_ebsa285_rom.h: Regenerate
+
+ * src/ebsa285_misc.c (hal_arm_mem_real_region_top): Remove warnings
+
+2000-07-17 Jesper Skov <jskov@redhat.com>
+
+ * src/hal_diag.c (cyg_hal_plf_serial_isr): Return value was not
+ always correct.
+
+2000-07-04 Jesper Skov <jskov@redhat.com>
+
+ * src/plf_stub.c: [deleted]
+ * src/hal_diag.c:
+ * src/ebsa285_misc.c:
+ * include/plf_stub.h:
+ * include/hal_platform_ints.h:
+ * include/hal_diag.h:
+ * cdl/hal_arm_ebsa285.cdl:
+ Changed to use virtual vector table.
+
+2000-07-04 Jonathan Larmour <jlarmour@redhat.co.uk>
+
+ * cdl/hal_arm_ebsa285.cdl: This platform implements
+ CYGINT_HAL_ARM_MEM_REAL_REGION_TOP
+
+ * src/ebsa285_misc.c (hal_arm_mem_real_region_top): Add to allow
+ true memory sizes to be reported, for the benefit of dynamic memory
+ systems
+
+2000-06-19 Gary Thomas <gthomas@redhat.com>
+
+ * include/hal_platform_setup.h:
+ 'hal_dram_size' is now a properly defined variable (no more
+ fixed 0x40 stuff).
+
+2000-06-18 Gary Thomas <gthomas@redhat.com>
+
+ * include/pkgconf/mlt_arm_ebsa285_ram.ldi:
+ * include/pkgconf/mlt_arm_ebsa285_ram.mlt:
+ * include/pkgconf/mlt_arm_ebsa285_rom.ldi:
+ * include/pkgconf/mlt_arm_ebsa285_rom.mlt:
+ Incorporate new fixed vectors (used on all ARM platforms).
+
+2000-02-29 Jonathan Larmour <jlarmour@redhat.co.uk>
+
+ * include/pkgconf/mlt_arm_ebsa285_ram.h:
+ * include/pkgconf/mlt_arm_ebsa285_ram.ldi:
+ * include/pkgconf/mlt_arm_ebsa285_ram.mlt:
+ * include/pkgconf/mlt_arm_ebsa285_rom.h:
+ * include/pkgconf/mlt_arm_ebsa285_rom.ldi:
+ * include/pkgconf/mlt_arm_ebsa285_rom.mlt:
+ Align all sections on word boundaries
+
+2000-02-24 Hugo Tyson <hmt@cygnus.co.uk>
+
+ * src/mem285.S (__mem285_init): Re-do the SDRAM initialization
+ until a consistent answer is acquired twice in a row. We have
+ been seeing test failures with the SDRAM initialization in the
+ board with 32Mb - the SDRAM setup is screwey; hope this fixes it.
+
+2000-02-21 Gary Thomas <gthomas@cygnus.co.uk>
+
+ * cdl/hal_arm_ebsa285.cdl: Remove -mstructure-size-boundary=8
+ option - no longer needed to build working network code.
+
+2000-02-18 Jonathan Larmour <jlarmour@redhat.co.uk>
+
+ * cdl/hal_arm_ebsa285.cdl (CYGBLD_BUILD_GDB_STUBS): When
+ building stubs, define every dependency required here rather than
+ in the template
+
+2000-02-10 Hugo Tyson <hmt@cygnus.co.uk>
+
+ * include/hal_cache.h (HAL_ICACHE_INVALIDATE_ALL):
+ (HAL_DCACHE_INVALIDATE_ALL): Also invalidate TLBs in case the
+ reason for the cache invalidate is a MM table rewrite.
+
+2000-02-10 Jesper Skov <jskov@redhat.com>
+
+ * include/plf_stub.h:
+ HAL_STUB_PLATFORM_STUBS_INIT->HAL_STUB_PLATFORM_INIT
+
+ * src/hal_diag.c:
+ * misc/stubrom.perm: [removed]
+ * misc/STUBS_config: [added]
+ * include/pkgconf/hal_arm_ebsa285.h:
+ Removed stubs as a legal startup type.
+
+2000-02-09 Hugo Tyson <hmt@cygnus.co.uk>
+
+ * cdl/hal_arm_ebsa285.cdl (CYGBLD_GLOBAL_CFLAGS): Permanently set
+ the -mstructure-size-boundary=8 compilation option, as required by
+ the initial version of the OpenBSD network stack port, currently
+ software under development.
+
+2000-02-07 Jesper Skov <jskov@redhat.com>
+
+ * cdl/hal_arm_ebsa285.cdl: Use cpu option when linking.
+
+2000-02-04 Hugo Tyson <hmt@cygnus.co.uk>
+
+ * include/hal_platform_setup.h (INIT_XBUS_ACCESS):
+ (CYGHWR_LED_MACRO): Fix a typo - "and" alone doesn't set
+ conditions, so branch depending on "PCI arbiter enabled" was taken
+ randomly.
+
+2000-02-03 Jesper Skov <jskov@redhat.com>
+
+ * cdl/hal_arm_ebsa285.cdl: Implements stubs.
+
+2000-01-31 Hugo Tyson <hmt@cygnus.co.uk>
+
+ * include/hal_ebsa285.h: Correct misleading comment.
+
+2000-01-27 Jesper Skov <jskov@redhat.com>
+
+ * cdl/hal_arm_ebsa285.cdl: Moved part of stubs build rule to
+ common HAL. Changed description.
+
+2000-01-26 Jesper Skov <jskov@cygnus.co.uk>
+
+ * cdl/hal_arm_ebsa285.cdl: Removed below. Target does not have
+ CygMon support.
+
+2000-01-25 Jesper Skov <jskov@cygnus.co.uk>
+
+ * cdl/hal_arm_ebsa285.cdl: Added cygmon console device
+ config. Added make rule for binary conversion of cygmon image.
+
+2000-01-24 Jesper Skov <jskov@cygnus.co.uk>
+
+ * cdl/hal_arm_ebsa285.cdl: Add stubs build rule.
+
+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-10 Hugo Tyson <hmt@cygnus.co.uk>
+
+ * src/ebsa285_misc.c (hal_IRQ_handler): Conditionally remove
+ debugging check for FIQ sources being active at customer's
+ request; they are now using FIQ via VSR so the warning message is
+ unwanted.
+
+1999-11-25 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/hal_diag.c: Conditionalize def of diag_buffer for only when it's
+ explicitly wanted and someone hacks the code
+ (hal_diag_write_char): Likewise
+
+1999-11-25 Gary Thomas <gthomas@cygnus.co.uk>
+
+ * include/pkgconf/mlt_arm_ebsa285_rom.h:
+ * include/pkgconf/mlt_arm_ebsa285_ram.h: Update 'do not edit' strings.
+
+1999-11-16 Hugo Tyson <hmt@cygnus.co.uk>
+
+ * tests/sdram0.cxx: New file to test SDRAM initialization. It is
+ somewhat EBSA specific in that it sanity checks the control reg
+ setup as well as testing memory per se.
+
+ * cdl/hal_arm_ebsa285.cdl: build the new test.
+
+ * tests/PKGconf.mak: New file: build the new test.
+
+1999-11-16 Hugo Tyson <hmt@cygnus.co.uk>
+
+ * src/mem285.S: Rewrite, essentially: it was the only way to get a
+ good enough handle on what this nasty, trick stuff does. I'm very
+ happy with it now. It's also callable for RAM startup too, to
+ happily count up the RAMs as initialized: no guessing ever again!
+
+ * include/hal_platform_setup.h: Delete some code! Now that mem285
+ initialization is sorted out, it's cool to do exactly the same
+ thing for ROM and RAM startup; the mem init code differs, mind, to
+ just add up the memory sizes in RAM start.
+
+1999-11-10 Hugo Tyson <hmt@cygnus.co.uk>
+
+ * include/hal_platform_setup.h (PLATFORM_FLUSH_DISABLE_CACHES):
+ Also flush TLBs - this is vital when changing cachability &c
+ during startup. Also do that same flush in ROM start, for when we
+ build to run in flash block #1 following POST executing, when
+ "stuff" might be in an odd state.
+
+1999-11-09 Gary Thomas <gthomas@cygnus.co.uk>
+
+ * include/pkgconf/mlt_arm_ebsa285_ram.h:
+ * include/pkgconf/mlt_arm_ebsa285_rom.h: New files.
+
+ * include/pkgconf/mlt_arm_ebsa285_ram.ldi:
+ * include/pkgconf/mlt_arm_ebsa285_ram.mlt:
+ * include/pkgconf/mlt_arm_ebsa285_rom.ldi:
+ * include/pkgconf/mlt_arm_ebsa285_rom.mlt: Update with correct memory layout.
+
+ * src/hal_diag.c: Honor GDB_DISABLE option.
+
+1999-11-09 Jesper Skov <jskov@cygnus.co.uk>
+
+ * cdl/hal_arm_ebsa285.cdl:
+ * include/pkgconf/hal_arm_ebsa285.h:
+ * src/ebsa285_misc.c:
+ Remap PCI accessible memory as non-cachable. Changed default
+ PCI mapped memory to the top 1MB of a 16MB system.
+
+1999-11-01 Jesper Skov <jskov@cygnus.co.uk>
+
+ * cdl/hal_arm_ebsa285.cdl: Remove define_proc comments.
+
+1999-10-29 Jesper Skov <jskov@cygnus.co.uk>
+
+ * include/pkgconf/mlt_arm_ebsa285_ram.ldi:
+ * include/pkgconf/mlt_arm_ebsa285_rom.ldi:
+ * include/pkgconf/mlt_arm_ebsa285_ram.mlt:
+ * include/pkgconf/mlt_arm_ebsa285_rom.mlt:
+ Increased memory size to 16MB.
+
+1999-10-27 Jesper Skov <jskov@cygnus.co.uk>
+
+ * src/hal_diag.c: Fixed conditional include.
+
+1999-10-26 Hugo Tyson <hmt@cygnus.co.uk>
+
+ * src/hal_diag.c (hal_diag_write_char): Use new macro
+ CYG_HAL_GDB_ENTER_CRITICAL_IO_REGION and its mate to control
+ stepping through gdb $O packet output.
+
+1999-10-26 Jesper Skov <jskov@cygnus.co.uk>
+
+ * include/hal_platform_setup.h (CYGHWR_LED_MACRO): Define.
+
+1999-10-26 John Dallaway <jld@cygnus.co.uk>
+
+ * cdl/hal_arm_ebsa285.cdl:
+
+ Rename CYGBLD_GLOBAL_PREFIX to
+ CYGBLD_GLOBAL_COMMAND_PREFIX
+
+1999-10-20 John Dallaway <jld@cygnus.co.uk>
+
+ * cdl/hal_arm_ebsa285.cdl:
+ Define build-related and memory layout-related CDL options.
+
+1999-10-11 Jesper Skov <jskov@cygnus.co.uk>
+ * cdl/hal_arm_ebsa285.cdl:
+ * include/plf_io.h:
+ * include/pkgconf/hal_arm_ebsa285.h:
+ Added configurability of EBSA memory accessible from PCI space.
+
+ * src/ebsa285_misc.c (hal_bsp_mmu_init): Folded XBus into 21285 regs.
+ * include/hal_platform_setup.h (PLATFORM_SETUP1): Disable cache first.
+
+1999-10-06 John Dallaway <jld@cygnus.co.uk>
+
+ * cdl/hal_arm_ebsa285.cdl:
+ Define CYGTST_TESTING_IDENTIFIER.
+
+1999-10-05 Hugo Tyson <hmt@cygnus.co.uk>
+
+ * support/linux/safl_util/sa_flash.c: Add a lot of extra
+ diagnostics and some new options; did this in the course of
+ finding out whether a board really was dead or not, so may as well
+ commit it.
+
+1999-09-24 Jesper Skov <jskov@cygnus.co.uk>
+
+ * include/plf_io.h (HAL_PCI_INIT): Fix rookie code bug.
+
+ * include/hal_ebsa285.h (SA110_XBUS_XCS2): Fix typo.
+
+1999-09-01 Hugo Tyson <hmt@cygnus.co.uk>
+
+ * include/hal_ebsa285.h (ARM_MMU_SECTION): Move these macros and
+ memory-layout structure definitions here from ebsa285_misc.c so
+ that others can use them.
+
+ * src/ebsa285_misc.c (hal_IRQ_handler): Scan FIQ sources also and
+ print a warning if any are active.
+ (hal_hardware_init): Clear the FIQ enable mask at startup too;
+ this was assumed to be cleared at reset, but just in case...
+ (ARM_MMU_SECTION): Move these macros and memory-layout structure
+ definitions from here to include/hal_ebsa285.h so that others can
+ use them.
+
+ * src/hal_diag.c (hal_diag_write_char): Do not unconditionally
+ poke the XBUS LED location - XBUS may not be available if internal
+ 21285 arbiter is in use.
+ (hal_diag_write_char): Fix warnings for proto of
+ cyg_hal_gdb_interrupt().
+
+1999-09-01 Jesper Skov <jskov@cygnus.co.uk>
+
+ * include/plf_io.h (HAL_PCI_CONFIG_ADDRESS): Use alternate config
+ space 0 addressing so all 32 devices can be scanned.
+
+1999-08-27 Jesper Skov <jskov@cygnus.co.uk>
+
+ * include/hal_ebsa285.h: Added some timer bits.
+
+1999-08-24 Jesper Skov <jskov@cygnus.co.uk>
+
+ * include/hal_ebsa285.h (SA110_XBUS_CYCLE_ARBITER_ENABLED): Added.
+
+ * include/hal_platform_setup.h (INIT_XBUS_ACCESS): Check jumper
+ settings and behave accordingly.
+
+ * include/plf_io.h (HAL_PCI_TRANSLATE_INTERRUPT): Fixed interrupt
+ vector table to match observed behavior.
+
+1999-08-19 Jesper Skov <jskov@cygnus.co.uk>
+ PR 20326
+ * include/hal_cache.h: Set MMU/align flag as well.
+
+1999-08-19 Jesper Skov <jskov@cygnus.co.uk>
+
+ * include/hal_platform_setup.h (BASIC_PCI_SETUP): [+untabified]
+ * include/plf_io.h (HAL_PCI_INIT):
+ Changed PCI enable comment to match actual behavior.
+
+1999-08-17 Jesper Skov <jskov@cygnus.co.uk>
+
+ * include/plf_io.h: Rename HAL_PCI_CONFIG_INTERRUPT to
+ HAL_PCI_TRANSLATE_INTERRUPT.
+ Read _PIN instead of _LINE.
+
+1999-08-16 Jesper Skov <jskov@cygnus.co.uk>
+
+ * include/plf_io.h (HAL_PCI_CONFIG_INTERRUPT): Added.
+
+1999-08-13 Jesper Skov <jskov@cygnus.co.uk>
+
+ * include/plf_io.h: Renamed macros and added resource information.
+ Renaming again.
+
+1999-08-12 John Dallaway <jld@cygnus.co.uk>
+
+ * cdl/hal_arm_ebsa285.cdl:
+ Define CYG_HAL_STARTUP and CYGHWR_MEMORY_LAYOUT.
+
+1999-08-12 Jesper Skov <jskov@cygnus.co.uk>
+
+ * include/plf_io.h: Added PCI macros.
+
+1999-08-12 Jesper Skov <jskov@cygnus.co.uk>
+
+ * cdl: Added CDL for ebsa.
+
+1999-08-12 Jesper Skov <jskov@cygnus.co.uk>
+
+ * include/hal_platform_setup.h:
+ * include/hal_ebsa285.h:
+ Renamed some PCI registers and moved out generic PCI stuff.
+
+1999-08-10 Jesper Skov <jskov@cygnus.co.uk>
+
+ * include/hal_ebsa285.h: Added more definitions.
+
+ * include/plf_stub.h (HAL_STUB_PLATFORM_RESET): Defined.
+
+1999-08-04 Jesper Skov <jskov@cygnus.co.uk>
+
+ * src/ebsa285_misc.c (ARM_ACCESS_TYPE_x): each domain has two bits.
+
+1999-07-26 John Dallaway <jld@cygnus.co.uk>
+
+ * include/pkgconf/mlt_arm_ebsa285_rom.mlt:
+ * include/pkgconf/mlt_arm_ebsa285_ram.mlt:
+
+ Fix memory section alignments to match those of the pre-built
+ linker script fragments.
+
+1999-07-26 Hugo Tyson <hmt@cygnus.co.uk>
+
+ * include/pkgconf/mlt_arm_ebsa285_rom.mlt:
+ * include/pkgconf/mlt_arm_ebsa285_ram.mlt:
+ Make these match the .ldi files that do the linking proper, so
+ that the process is reversible and the .ldi files recreatable.
+
+1999-07-26 Hugo Tyson <hmt@cygnus.co.uk>
+
+ * include/hal_platform_ints.h (CYGDBG_HAL_CTRLC_ISR): Define this
+ if needed so that the arch HAL can conditionally call our poll
+ routine. Problem is that CYGDBG_HAL_DEBUG_GDB_CTRLC_SUPPORT *is*
+ defined for platforms that do not support it.
+
+1999-07-23 Hugo Tyson <hmt@cygnus.co.uk>
+
+ * src/hal_diag.c (hal_ctrlc_isr): Define this function, which is
+ called from the default ISR, if CYGDBG_HAL_DEBUG_GDB_CTRLC_SUPPORT
+ is defined. It looks for a ^C in the serial input and bangs out
+ with a breakpoint if one arrives. Note that you cannot do much at
+ all after this bp, except examine the stack and see where the
+ program had got to.
+ (hal_diag_write_char): Do not eat response characters from GDB:
+ leave them for the ISR mentioned above to test for ^C.
+
+ * src/ebsa285_misc.c (hal_hardware_init): Unmask the interrupt for
+ serial reception, so that we can scan for incoming ^C, if the
+ option CYGDBG_HAL_DEBUG_GDB_CTRLC_SUPPORT is defined.
+
+1999-07-23 Hugo Tyson <hmt@cygnus.co.uk>
+
+ * include/hal_platform_ints.h (CYG_GDB_DEV_INT, CYG_DIAG_DEV_INT):
+ define these so that interrupting using ^C and so on will work.
+
+1999-07-22 Hugo Tyson <hmt@masala.cygnus.co.uk>
+
+ * support/README: New file.
+ * support/linux/README: New file.
+ * support/linux/safl_util/README: New file.
+ * support/linux/safl_util/Makefile: New file.
+ * support/linux/safl_util/sa_flash.c: New file.
+ * support/linux/safl_util/safl.c: New file.
+ Keep the devo safl_utils for programming ebsa-285 FLASH in the
+ eCos tree too, so that it gets into our releases.
+
+1999-07-21 Hugo Tyson <hmt@cygnus.co.uk>
+
+ * include/hal_platform_setup.h (PLATFORM_SETUP1): Get ROM startup
+ to work OK; tidy up RAM start in consequence. Do not set
+ CYGHWR_HAL_ARM_HAS_MMU so that we jump straight into high ROM.
+ Remove consequently unused macros.
+
+ * src/ebsa285_misc.c: Pass DRAM size as detected at startup around
+ correctly; worry less about alignment of MMU page table thingy.
+
+ * src/hal_diag.c: Make ROM startup systems output in clear.
+
+ * src/mem285.S: Get rid of all that IMM() nonsense.
+
+ * misc/stubrom.perm: NEW FILE: Add instructions for making a STUBROM.
+
+ * include/pkgconf/mlt_arm_ebsa285_rom.ldi: Get the numbers right
+ for ROM startup.
+
+1999-07-19 Hugo Tyson <hmt@masala.cygnus.co.uk>
+
+ * src/mem285.S: New file: offers routine __mem285_init, for DRAM
+ sizing before the MMU is set up. Code borrowed from CygMon/BSP of
+ course.
+
+ * src/ebsa285_misc.c: Add the meat of the 'C' initialization here;
+ MMU initialization is the main addition. Code borrowed from
+ CygMon/BSP.
+
+ * src/PKGconf.mak (COMPILE): Add mem285.S, which contains tricky
+ DRAM sizing and init code - which of course can only be run from
+ ROM, since it is damaging to the contents of DRAM.
+
+ * include/hal_platform_setup.h (PLATFORM_SETUP1): Add required
+ startup code in various macros to make constructing one phrase for
+ ROM vs RAM startup easier, and for debug. Code borrowed from
+ CygMon/BSP.
+
+ * src/hal_diag.c (hal_diag_init): Initialize the hardware, by
+ setting the baud rate.
+
+ * include/hal_ebsa285.h (ARM_FIRST_LEVEL_PAGE_TABLE_SIZE): Add
+ this and a few other symbols for the DRAM sizing and MMU init
+ code.
+
+1999-07-16 Hugo Tyson <hmt@cygnus.co.uk>
+
+ * include/pkgconf/hal_arm_ebsa285.h: Typo in tidy up of config
+ info. Doh!
+
+1999-07-16 Hugo Tyson <hmt@cygnus.co.uk>
+
+ * include/pkgconf/hal_arm_ebsa285.h: Tidy up config info.
+
+1999-07-15 Hugo Tyson <hmt@cygnus.co.uk>
+
+ * src/ebsa285_misc.c (hal_hardware_init): Enable the caches in
+ here; they are now disabled during startup.
+
+ * include/hal_platform_setup.h (PLATFORM_SETUP1): Added code to
+ disable caches [if RAM start] and switch to the ROM address
+ [regardless, since it's the RAM addr if RAM start so harmless]
+
+ * include/pkgconf/mlt_arm_ebsa285_rom.ldi: Set up some of the
+ values here while they are in my head; see above.
+
+1999-07-15 Hugo Tyson <hmt@cygnus.co.uk>
+
+ * include/hal_cache.h: Tidy up cache macros and make semantics
+ better match what the GDB stubs require.
+
+1999-07-15 Hugo Tyson <hmt@cygnus.co.uk>
+
+ * include/sa-110.h: removed, it was added in error. Its contents
+ live in include/hal_ebsa285.h
+
+1999-07-14 Hugo Tyson <hmt@cygnus.co.uk>
+
+ New component: StrongARM EBSA-285 development board support.
+ New files:
+ * include/hal_cache.h
+ * include/hal_diag.h
+ * include/hal_ebsa285.h
+ * include/hal_platform_ints.h
+ * include/hal_platform_setup.h
+ * include/plf_stub.h
+ * include/sa-110.h
+ * include/pkgconf/hal_arm_ebsa285.h
+ * include/pkgconf/mlt_arm_ebsa285_ram.ldi
+ * include/pkgconf/mlt_arm_ebsa285_ram.mlt
+ * include/pkgconf/mlt_arm_ebsa285_rom.ldi
+ * include/pkgconf/mlt_arm_ebsa285_rom.mlt
+ * src/PKGconf.mak
+ * src/ebsa285_misc.c
+ * src/hal_diag.c
+ * src/plf_stub.c
+
+//===========================================================================
+// ####GPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 2 or (at your option) any
+// later version.
+//
+// This program is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the
+// Free Software Foundation, Inc., 51 Franklin Street,
+// Fifth Floor, Boston, MA 02110-1301, USA.
+// -------------------------------------------
+// ####GPLCOPYRIGHTEND####
+//===========================================================================
diff --git a/ecos/packages/hal/arm/ebsa285/current/cdl/hal_arm_ebsa285.cdl b/ecos/packages/hal/arm/ebsa285/current/cdl/hal_arm_ebsa285.cdl
new file mode 100644
index 0000000..443a515
--- /dev/null
+++ b/ecos/packages/hal/arm/ebsa285/current/cdl/hal_arm_ebsa285.cdl
@@ -0,0 +1,397 @@
+# ====================================================================
+#
+# hal_arm_ebsa285.cdl
+#
+# Intel SA110/285 (EBSA285) HAL package configuration data
+#
+# ====================================================================
+## ####ECOSGPLCOPYRIGHTBEGIN####
+## -------------------------------------------
+## This file is part of eCos, the Embedded Configurable Operating System.
+## Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+##
+## eCos is free software; you can redistribute it and/or modify it under
+## the terms of the GNU General Public License as published by the Free
+## Software Foundation; either version 2 or (at your option) any later
+## version.
+##
+## eCos is distributed in the hope that it will be useful, but WITHOUT
+## ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+## FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+## for more details.
+##
+## You should have received a copy of the GNU General Public License
+## along with eCos; if not, write to the Free Software Foundation, Inc.,
+## 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+##
+## As a special exception, if other files instantiate templates or use
+## macros or inline functions from this file, or you compile this file
+## and link it with other works to produce a work based on this file,
+## this file does not by itself cause the resulting work to be covered by
+## the GNU General Public License. However the source code for this file
+## must still be made available in accordance with section (3) of the GNU
+## General Public License v2.
+##
+## This exception does not invalidate any other reasons why a work based
+## on this file might be covered by the GNU General Public License.
+## -------------------------------------------
+## ####ECOSGPLCOPYRIGHTEND####
+# ====================================================================
+######DESCRIPTIONBEGIN####
+#
+# Author(s): jskov
+# Original data: hmt
+# Contributors:
+# Date: 1999-08-12
+#
+#####DESCRIPTIONEND####
+#
+# ====================================================================
+cdl_package CYGPKG_HAL_ARM_EBSA285 {
+ display "Intel EBSA285 StrongARM evaluation boards"
+ parent CYGPKG_HAL_ARM
+ define_header hal_arm_ebsa285.h
+ include_dir cyg/hal
+ hardware
+ description "
+ The EBSA285 HAL package provides the support needed to run
+ eCos on a Intel EBSA285 StrongARM eval board."
+
+ compile hal_diag.c ebsa285_misc.c mem285.S
+
+ implements CYGINT_HAL_DEBUG_GDB_STUBS
+ implements CYGINT_HAL_DEBUG_GDB_STUBS_BREAK
+ implements CYGINT_HAL_VIRTUAL_VECTOR_SUPPORT
+ implements CYGINT_HAL_ARM_MEM_REAL_REGION_TOP
+ implements CYGINT_HAL_ARM_ARCH_STRONGARM
+
+ define_proc {
+ puts $::cdl_system_header "#define CYGBLD_HAL_TARGET_H <pkgconf/hal_arm.h>"
+ puts $::cdl_system_header "#define CYGBLD_HAL_PLATFORM_H <pkgconf/hal_arm_ebsa285.h>"
+ puts $::cdl_header "#define HAL_PLATFORM_CPU \"StrongARM 110\""
+ puts $::cdl_header "#define HAL_PLATFORM_BOARD \"EBSA-285\""
+ puts $::cdl_header "#define HAL_PLATFORM_EXTRA \"\""
+ puts $::cdl_header "#define HAL_ARCH_PROGRAM_NEW_STACK ebsa285_program_new_stack"
+
+ puts $::cdl_header "#define CYGPRI_KERNEL_TESTS_DHRYSTONE_PASSES 1000000"
+ }
+
+ cdl_component CYG_HAL_STARTUP {
+ display "Startup type"
+ flavor data
+ default_value {"RAM"}
+ legal_values {"RAM" "ROM" "ROMRAM"}
+ no_define
+ define -file system.h CYG_HAL_STARTUP
+ description "
+ When targetting the EBSA285 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 onboard
+ debug software such as Angel or eCos GDB stubs. Select 'rom'
+ when building a stand-alone application which will be put
+ into ROM. Using ROMRAM will allow the program to exist in
+ ROM, but be copied to RAM during startup."
+ }
+
+ cdl_option CYGHWR_HAL_ARM_EBSA285_PCI_MEM_MAP_BASE {
+ display "Base of memory accessible via PCI space"
+ flavor data
+ legal_values { 0x200000 0x300000 0x400000 0x500000
+ 0x600000 0x700000 0x800000 0x900000
+ 0xa00000 0xb00000 0xc00000 0xd00000
+ 0xe00000 0xf00000
+ }
+ default_value 0x00f00000
+ active_if CYGPKG_IO_PCI
+ description "
+ This option determines the base of the EBSA memory which
+ can be accessed via the PCI bus. The default is to allow
+ access to the upper 1MB of a 16MB system.
+ NB: We advise *against* changing this option.
+ The value MUST match the base address of the section
+ 'pci_window' in the Memory Layout Tool else this memory area
+ will be consumed by the malloc heap.
+ This error condition can only be detected at runtime in
+ current versions of the configuration tools.
+ CLI users can edit include/pkgconf/mlt_arm_ebsa285_*.h
+ and include/pkgconf/mlt_arm_ebsa285_*.ldi to achieve the
+ same effects as moving that region in the MLT."
+ }
+
+ cdl_option CYGHWR_HAL_ARM_EBSA285_PCI_MEM_MAP_SIZE {
+ display "Size of memory accessible via PCI space"
+ flavor data
+ legal_values { 0x100000 0x200000 0x300000 0x400000
+ 0x500000 0x600000 0x700000 0x800000
+ }
+ default_value 0x00100000
+ active_if CYGPKG_IO_PCI
+ description "
+ This option determines the size of the EBSA memory which
+ can be accessed via the PCI bus. The default is to allow
+ access to the upper 1MB of a 16MB system.
+ NB: We advise *against* changing this option.
+ The value MUST match the size of the section 'pci_window' in the
+ Memory Layout Tool else this memory area will be consumed by the
+ malloc heap.
+ Further caveats in the PCI base option."
+ }
+
+ cdl_option CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_DEFAULT {
+ display "Default console channel."
+ flavor data
+ calculated 0
+ }
+
+ 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"
+ active_if CYGPRI_HAL_VIRTUAL_VECTOR_DEBUG_CHANNEL_CONFIGURABLE
+ flavor data
+ legal_values 0 to CYGNUM_HAL_VIRTUAL_VECTOR_COMM_CHANNELS-1
+ default_value 0
+ description "
+ The EBSA285 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"
+ active_if CYGPRI_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_CONFIGURABLE
+ flavor data
+ legal_values 0 to CYGNUM_HAL_VIRTUAL_VECTOR_COMM_CHANNELS-1
+ default_value CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_DEFAULT
+ description "
+ The EBSA285 board has only one serial port. This option
+ chooses which port will be used for diagnostic output."
+ }
+
+ # 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
+ default_value 1000000000
+ }
+ cdl_option CYGNUM_HAL_RTC_DENOMINATOR {
+ display "Real-time clock denominator"
+ flavor data
+ default_value 100
+ }
+ cdl_option CYGNUM_HAL_RTC_PERIOD {
+ display "Real-time clock period"
+ flavor data
+ default_value 36800 ;# Timer3 clock is 3.68MHz
+ }
+ }
+
+ cdl_component CYGBLD_GLOBAL_OPTIONS {
+ display "Global build options"
+ flavor none
+ 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 { CYGBLD_GLOBAL_WARNFLAGS . CYGBLD_ARCH_CFLAGS .
+ "-mcpu=strongarm -g -O2 -ffunction-sections -fdata-sections -fno-rtti -fno-exceptions " }
+ 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 { CYGBLD_ARCH_LDFLAGS . "-mcpu=strongarm -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_component CYGPKG_HAL_ARM_EBSA285_OPTIONS {
+ display "StrongARM EBSA285 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_HAL_ARM_EBSA285_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 EBSA285 HAL. These flags are used in addition
+ to the set of global flags."
+ }
+
+ cdl_option CYGPKG_HAL_ARM_EBSA285_CFLAGS_REMOVE {
+ display "Suppressed compiler flags"
+ flavor data
+ no_define
+ default_value { "" }
+ description "
+ This option modifies the set of compiler flags for
+ building the StrongARM EBSA285 HAL. These flags are removed from
+ the set of global flags if present."
+ }
+
+ cdl_option CYGPKG_HAL_ARM_EBSA285_TESTS {
+ display "StrongARM EBSA285 tests"
+ flavor data
+ no_define
+ calculated { "tests/sdram0" }
+ description "
+ This option specifies the set of tests for the StrongARM EBSA285 HAL."
+ }
+ }
+
+ cdl_component CYGHWR_MEMORY_LAYOUT {
+ display "Memory layout"
+ flavor data
+ no_define
+ calculated { (CYG_HAL_STARTUP == "RAM") ? "arm_ebsa285_ram" :
+ (CYG_HAL_STARTUP == "ROMRAM") ? "arm_ebsa285_romram" :
+ "arm_ebsa285_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_ebsa285_ram.ldi>" :
+ (CYG_HAL_STARTUP == "ROMRAM") ? "<pkgconf/mlt_arm_ebsa285_romram.ldi>" :
+ "<pkgconf/mlt_arm_ebsa285_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_ebsa285_ram.h>" :
+ (CYG_HAL_STARTUP == "ROMRAM") ? "<pkgconf/mlt_arm_ebsa285_romram.h>" :
+ "<pkgconf/mlt_arm_ebsa285_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" || CYG_HAL_STARTUP == "ROMRAM" }
+ 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 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_REDBOOT_HAL_OPTIONS {
+ display "Redboot HAL options"
+ flavor none
+ no_define
+ parent CYGPKG_REDBOOT
+ active_if CYGPKG_REDBOOT
+ description "
+ This option lists the target's requirements for a valid Redboot
+ configuration."
+
+ 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 $< $@
+ }
+ }
+ }
+
+}
diff --git a/ecos/packages/hal/arm/ebsa285/current/include/hal_cache.h b/ecos/packages/hal/arm/ebsa285/current/include/hal_cache.h
new file mode 100644
index 0000000..da5cb65
--- /dev/null
+++ b/ecos/packages/hal/arm/ebsa285/current/include/hal_cache.h
@@ -0,0 +1,367 @@
+#ifndef CYGONCE_HAL_CACHE_H
+#define CYGONCE_HAL_CACHE_H
+
+//=============================================================================
+//
+// hal_cache.h
+//
+// HAL cache control API
+//
+//=============================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): hmt
+// Contributors:hmt
+// Date: 1999-07-05
+// 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 <cyg/infra/cyg_type.h>
+//#include <cyg/hal/hal_mmu.h>
+
+//-----------------------------------------------------------------------------
+// FIXME: This definition forces the IO flash driver to use a
+// known-good procedure for fiddling flash before calling flash device
+// driver functions. The procedure breaks on other platform/driver
+// combinations though so is depricated. Hence this definition.
+//
+// If you work on this target, please try to remove this definition
+// and verify that the flash driver still works (both from RAM and
+// flash). If it does, remove the definition and this comment for good
+// [and the old macro definition if this happens to be the last client
+// of that code].
+#define HAL_FLASH_CACHES_OLD_MACROS
+
+//-----------------------------------------------------------------------------
+// Cache dimensions
+
+#define HAL_DCACHE_SIZE 0x4000 // Size of data cache in bytes
+#define HAL_DCACHE_LINE_SIZE 32 // Size of a data cache line
+#define HAL_DCACHE_WAYS 32 // Associativity of the cache
+#define HAL_DCACHE_SETS (HAL_UCACHE_SIZE/(HAL_UCACHE_LINE_SIZE*HAL_UCACHE_WAYS))
+
+#define HAL_ICACHE_SIZE 0x4000 // Size of instruction cache in bytes
+#define HAL_ICACHE_LINE_SIZE 32 // Size of ins cache line
+#define HAL_ICACHE_WAYS 32 // Associativity of the cache
+#define HAL_ICACHE_SETS (HAL_UCACHE_SIZE/(HAL_UCACHE_LINE_SIZE*HAL_UCACHE_WAYS))
+
+//-----------------------------------------------------------------------------
+// Global control of data cache
+
+// Enable the data cache
+#define HAL_DCACHE_ENABLE() \
+CYG_MACRO_START \
+ /* SA-110 manual states that the control reg is read-write */ \
+ asm volatile ( \
+ "mrc p15,0,r1,c1,c0,0;" \
+ "orr r1,r1,#0x000F;" /* ensure MM is enabled */ \
+ "mcr p15,0,r1,c1,c0,0" \
+ : \
+ : \
+ : "r1" /* Clobber list */ \
+ ); \
+CYG_MACRO_END
+
+// Disable the data cache (and invalidate it, required semanitcs)
+#define HAL_DCACHE_DISABLE() \
+CYG_MACRO_START \
+ /* SA-110 manual states that the control reg is read-write */ \
+ asm volatile ( \
+ "mrc p15,0,r1,c1,c0,0;" \
+ "bic r1,r1,#0x000C;" /* but leave MM alone */ \
+ "mcr p15,0,r1,c1,c0,0;" \
+ "mov r1,#0;" \
+ "mcr p15,0,r1,c7,c6,0" /* clear data cache */ \
+ : \
+ : \
+ : "r1" /* Clobber list */ \
+ ); \
+CYG_MACRO_END
+
+// Invalidate the entire cache (and both TLBs, just in case)
+#define HAL_DCACHE_INVALIDATE_ALL() \
+CYG_MACRO_START \
+ /* this macro can discard dirty cache lines. */ \
+ asm volatile ( \
+ "mov r1,#0;" \
+ "mcr p15,0,r1,c7,c6,0;" /* clear data cache */ \
+ "mcr p15,0,r1,c8,c7,0;" /* flush I+D TLBs */ \
+ : \
+ : \
+ : "r1","memory" /* Clobber list */ \
+ ); \
+CYG_MACRO_END
+
+
+// Synchronize the contents of the cache with memory.
+#define HAL_DCACHE_SYNC() \
+CYG_MACRO_START \
+ /* This is slightly naff in that the only way to force a dirty */ \
+ /* line out is by loading other data into its slot, so */ \
+ /* invalidating that slot. */ \
+ asm volatile ( \
+ "mov r0, #0x50000000;" /* 21285~s cache flush region */ \
+ "add r1, r0, #0x4000;" /* 16MB of fast don~t-care amnesia */ \
+ "667: " /* We read in 16kB of it */ \
+ "ldr r2, [r0], #32;" \
+ "teq r1, r0;" \
+ "bne 667b;" \
+ "mov r0,#0;" \
+ "mcr p15,0,r0,c7,c6,0;" /* clear data cache */ \
+ "mcr p15,0,r0,c7,c10,4;" /* and drain the write buffer */ \
+ : \
+ : \
+ : "r0","r1","r2" /* Clobber list */ \
+ ); \
+CYG_MACRO_END
+
+// Query the state of the data cache
+#define HAL_DCACHE_IS_ENABLED(_state_) \
+CYG_MACRO_START \
+ /* SA-110 manual states clearly that the control reg is readable */ \
+ register int reg; \
+ asm volatile ("mrc p15,0,%0,c1,c0,0" \
+ : "=r"(reg) \
+ : \
+ /*:*/ \
+ ); \
+ (_state_) = (0 != (4 & reg)); /* Bit 2 is DCache enable */ \
+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
+
+// Get the current writeback mode - or only writeback mode if fixed
+#define HAL_DCACHE_QUERY_WRITE_MODE( _mode_ ) CYG_MACRO_START \
+ _mode_ = HAL_DCACHE_WRITEBACK_MODE; \
+CYG_MACRO_END
+
+// 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_ ) \
+CYG_MACRO_START \
+ HAL_DCACHE_STORE( _base_ , _size_ ); \
+ HAL_DCACHE_INVALIDATE( _base_ , _size_ ); \
+CYG_MACRO_END
+
+// Invalidate cache lines in the given range without writing to memory.
+#define HAL_DCACHE_INVALIDATE( _base_ , _size_ ) \
+CYG_MACRO_START \
+ register int addr, enda; \
+ for ( addr = (~(HAL_DCACHE_LINE_SIZE - 1)) & (int)(_base_), \
+ enda = (int)(_base_) + (_size_); \
+ addr < enda ; \
+ addr += HAL_DCACHE_LINE_SIZE ) \
+ { \
+ asm volatile ( \
+ "mcr p15,0,%0,c7,c6,1;" /* flush entry away */ \
+ : \
+ : "r"(addr) \
+ : "memory" \
+ ); \
+ } \
+CYG_MACRO_END
+
+// Write dirty cache lines to memory for the given address range.
+#define HAL_DCACHE_STORE( _base_ , _size_ ) \
+CYG_MACRO_START \
+ register int addr, enda; \
+ for ( addr = (~(HAL_DCACHE_LINE_SIZE - 1)) & (int)(_base_), \
+ enda = (int)(_base_) + (_size_); \
+ addr < enda ; \
+ addr += HAL_DCACHE_LINE_SIZE ) \
+ { \
+ asm volatile ("mcr p15,0,%0,c7,c10,1;" /* push entry to RAM */ \
+ : \
+ : "r"(addr) \
+ : "memory" \
+ ); \
+ } \
+ /* and also drain the write buffer */ \
+ asm volatile ( \
+ "mov r1,#0;" \
+ "mcr p15,0,r1,c7,c10,4;" \
+ : \
+ : \
+ : "r1", "memory" ); \
+CYG_MACRO_END
+
+// 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() \
+CYG_MACRO_START \
+ /* SA-110 manual states that the control reg is read-write */ \
+ asm volatile ( \
+ "mrc p15,0,r1,c1,c0,0;" \
+ "orr r1,r1,#0x0003;" /* ensure MM is enabled */ \
+ "orr r1,r1,#0x1000;" /* enable ICache */ \
+ "mcr p15,0,r1,c1,c0,0" \
+ : \
+ : \
+ : "r1" /* Clobber list */ \
+ ); \
+CYG_MACRO_END
+
+// Disable the instruction cache (and invalidate it, required semanitcs)
+#define HAL_ICACHE_DISABLE() \
+CYG_MACRO_START \
+ /* SA-110 manual states that the control reg is read-write */ \
+ asm volatile ( \
+ "mrc p15,0,r1,c1,c0,0;" \
+ "bic r1,r1,#0x1000;" /* but leave MM alone */ \
+ "mcr p15,0,r1,c1,c0,0;" \
+ "mov r1, #0;" \
+ "mcr p15,0,r1,c7,c5,0;" /* clear instruction cache */ \
+ "nop;" /* next few instructions may be via cache */ \
+ "nop;" \
+ "nop;" \
+ "nop;" \
+ "nop;" \
+ "nop" \
+ : \
+ : \
+ : "r1" /* Clobber list */ \
+ ); \
+CYG_MACRO_END
+
+// Invalidate the entire cache
+#define HAL_ICACHE_INVALIDATE_ALL() \
+CYG_MACRO_START \
+ /* this macro can discard dirty cache lines (N/A for ICache) */ \
+ asm volatile ( \
+ "mov r1, #0;" \
+ "mcr p15,0,r1,c7,c5,0;" /* clear instruction cache */ \
+ "mcr p15,0,r1,c8,c5,0;" /* flush I TLB only */ \
+ "nop;" /* next few instructions may be via cache */ \
+ "nop;" \
+ "nop;" \
+ "nop;" \
+ "nop;" \
+ "nop" \
+ : \
+ : \
+ : "r1" /* Clobber list */ \
+ ); \
+CYG_MACRO_END
+
+
+// Synchronize the contents of the cache with memory.
+// (which includes flushing out pending writes)
+#define HAL_ICACHE_SYNC() \
+CYG_MACRO_START \
+ HAL_DCACHE_SYNC(); /* ensure data gets to RAM */ \
+ HAL_ICACHE_INVALIDATE_ALL(); /* forget all we know */ \
+CYG_MACRO_END
+
+// Query the state of the instruction cache
+#define HAL_ICACHE_IS_ENABLED(_state_) \
+CYG_MACRO_START \
+ /* SA-110 manual states clearly that the control reg is readable */ \
+ register cyg_uint32 reg; \
+ asm volatile ("mrc p15,0,%0,c1,c0,0" \
+ : "=r"(reg) \
+ : \
+ /*:*/ \
+ ); \
+ (_state_) = (0 != (0x1000 & reg)); /* Bit 12 is ICache enable */ \
+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_HAL_CACHE_H
+// End of hal_cache.h
diff --git a/ecos/packages/hal/arm/ebsa285/current/include/hal_diag.h b/ecos/packages/hal/arm/ebsa285/current/include/hal_diag.h
new file mode 100644
index 0000000..7841970
--- /dev/null
+++ b/ecos/packages/hal/arm/ebsa285/current/include/hal_diag.h
@@ -0,0 +1,94 @@
+#ifndef CYGONCE_HAL_DIAG_H
+#define CYGONCE_HAL_DIAG_H
+
+/*=============================================================================
+//
+// hal_diag.h
+//
+// HAL Support for Kernel Diagnostic Routines
+//
+//=============================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): nickg, gthomas
+// Contributors: nickg, gthomas
+// Date: 1998-09-11
+// 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_)
+
+// Not the best place for this, but ...
+externC void hal_delay_us(cyg_int32 usecs);
+
+#define HAL_DELAY_US(n) hal_delay_us(n);
+
+#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_DIAG_H */
diff --git a/ecos/packages/hal/arm/ebsa285/current/include/hal_ebsa285.h b/ecos/packages/hal/arm/ebsa285/current/include/hal_ebsa285.h
new file mode 100644
index 0000000..25ffa68
--- /dev/null
+++ b/ecos/packages/hal/arm/ebsa285/current/include/hal_ebsa285.h
@@ -0,0 +1,810 @@
+#ifndef CYGONCE_HAL_EBSA285_H
+#define CYGONCE_HAL_EBSA285_H
+
+/*=============================================================================
+//
+// hal_ebsa285.h
+//
+// HAL Description of SA-110 and 21285 control registers
+// and ARM memory control in general.
+//
+//=============================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): hmt
+// Contributors: hmt
+// Date: 1999-04-19
+// Purpose: Intel EBSA285 hardware description
+// Description:
+// Usage: #include <cyg/hal/hal_ebsa285.h>
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================*/
+
+// Note: these defintions match the documentation, thus no attempt is made
+// to santise (mangle) the names against namespace pollution. Also, care should be
+// taken to keep this clean for use in assembly code (no "C" constructs).
+
+
+#define SZ_1K 0x00000400
+#define SZ_2K 0x00000800
+#define SZ_4K 0x00001000
+#define SZ_8K 0x00002000
+#define SZ_16K 0x00004000
+#define SZ_32K 0x00008000
+#define SZ_64K 0x00010000
+#define SZ_128K 0x00020000
+#define SZ_256K 0x00040000
+#define SZ_512K 0x00080000
+#define SZ_1M 0x00100000
+#define SZ_2M 0x00200000
+#define SZ_4M 0x00400000
+#define SZ_8M 0x00800000
+#define SZ_16M 0x01000000
+#define SZ_32M 0x02000000
+#define SZ_64M 0x04000000
+#define SZ_128M 0x08000000
+#define SZ_256M 0x10000000
+#define SZ_512M 0x20000000
+#define SZ_1G 0x40000000
+
+#ifdef __ASSEMBLER__
+
+#define REG8_VAL(a) (a)
+#define REG16_VAL(a) (a)
+#define REG32_VAL(a) (a)
+
+#define REG8_PTR(a) (a)
+#define REG16_PTR(a) (a)
+#define REG32_PTR(a) (a)
+
+#else /* __ASSEMBLER__ */
+
+#define REG8_VAL(a) ((unsigned char)(a))
+#define REG16_VAL(a) ((unsigned short)(a))
+#define REG32_VAL(a) ((unsigned int)(a))
+
+#define REG8_PTR(a) ((volatile unsigned char *)(a))
+#define REG16_PTR(a) ((volatile unsigned long *)(a))
+#define REG32_PTR(a) ((volatile unsigned long *)(a))
+
+#endif /* __ASSEMBLER__ */
+
+//
+// Memory Layout
+//
+#define EBSA285_RAM_BANK0_BASE 0x00000000
+
+/*
+ * SA-110 Cache and MMU Control Registers
+ *
+ * Accessed through coprocessor instructions.
+ */
+#define SA110_ID_REGISTER 0
+#define SA110_CONTROL_REGISTER 1
+#define SA110_TRANSLATION_TABLE_BASE_REGISTER 2
+#define SA110_DOMAIN_ACCESS_CONTROL_REGISTER 3
+#define SA110_FAULT_STATUS_REGISTER 5
+#define SA110_FAULT_ADDRESS_REGISTER 6
+#define SA110_CACHE_OPERATIONS_REGISTER 7
+#define SA110_TLB_OPERATIONS_REGISTER 8
+#define SA110_TEST_CLOCK_AND_IDLE_REGISTER 15
+
+/*
+ * SA-110 Cache and MMU Definitions
+ */
+#define SA110_ICACHE_SIZE SZ_16K
+#define SA110_DCACHE_SIZE SZ_16K
+#define SA110_ICACHE_LINESIZE_BYTES 32
+#define SA110_DCACHE_LINESIZE_BYTES 32
+#define SA110_ICACHE_LINESIZE_WORDS 8
+#define SA110_DCACHE_LINESIZE_WORDS 8
+#define SA110_ICACHE_WAYS 32
+#define SA110_DCACHE_WAYS 32
+#define SA110_ICACHE_LINE_BASE(p) REG32_PTR((unsigned long)(p) & \
+ ~(SA110_ICACHE_LINESIZE_BYTES - 1))
+#define SA110_DCACHE_LINE_BASE(p) REG32_PTR((unsigned long)(p) & \
+ ~(SA110_DCACHE_LINESIZE_BYTES - 1))
+
+#define SA110_ZEROS_BANK_BASE (0x50000000)
+
+#define ARM_FIRST_LEVEL_PAGE_TABLE_SIZE SZ_16K
+
+
+
+/*
+ * SA-110 Cache and MMU ID Register value
+ */
+#define SA110_ID_MASK 0xFFFFFFF0
+#define SA110_ID_VALUE 0x4401a100
+
+/*
+ * SA-110 Cache Control Register Bit Fields and Masks
+ */
+#define SA110_MMU_DISABLED 0x00000000
+#define SA110_MMU_ENABLED 0x00000001
+#define SA110_MMU_MASK 0x00000001
+#define SA110_ADDRESS_FAULT_DISABLED 0x00000000
+#define SA110_ADDRESS_FAULT_ENABLED 0x00000002
+#define SA110_ADDRESS_FAULT_MASK 0x00000002
+#define SA110_DATA_CACHE_DISABLED 0x00000000
+#define SA110_DATA_CACHE_ENABLED 0x00000004
+#define SA110_DATA_CACHE_MASK 0x00000004
+#define SA110_WRITE_BUFFER_DISABLED 0x00000000
+#define SA110_WRITE_BUFFER_ENABLED 0x00000008
+#define SA110_WRITE_BUFFER_MASK 0x00000008
+#define SA110_LITTLE_ENDIAN 0x00000000
+#define SA110_BIG_ENDIAN 0x00000080
+#define SA110_ACCESS_CHECKS_SYSTEM 0x00000100
+#define SA110_ACCESS_CHECKS_ROM 0x00000200
+#define SA110_INSTRUCTION_CACHE_DISABLED 0x00000000
+#define SA110_INSTRUCTION_CACHE_ENABLED 0x00001000
+#define SA110_INSTRUCTION_CACHE_MASK 0x00001000
+
+/*
+ * SA-110 Translation Table Base Bit Masks
+ */
+#define SA110_TRANSLATION_TABLE_MASK 0xFFFFC000
+
+/*
+ * SA-110 Domain Access Control Bit Masks
+ */
+#define SA110_DOMAIN_0_MASK 0x00000003
+#define SA110_DOMAIN_1_MASK 0x0000000C
+#define SA110_DOMAIN_2_MASK 0x00000030
+#define SA110_DOMAIN_3_MASK 0x000000C0
+#define SA110_DOMAIN_4_MASK 0x00000300
+#define SA110_DOMAIN_5_MASK 0x00000C00
+#define SA110_DOMAIN_6_MASK 0x00003000
+#define SA110_DOMAIN_7_MASK 0x0000C000
+#define SA110_DOMAIN_8_MASK 0x00030000
+#define SA110_DOMAIN_9_MASK 0x000C0000
+#define SA110_DOMAIN_10_MASK 0x00300000
+#define SA110_DOMAIN_11_MASK 0x00C00000
+#define SA110_DOMAIN_12_MASK 0x03000000
+#define SA110_DOMAIN_13_MASK 0x0C000000
+#define SA110_DOMAIN_14_MASK 0x30000000
+#define SA110_DOMAIN_15_MASK 0xC0000000
+
+/*
+ * SA-110 Fault Status Bit Masks
+ */
+#define SA110_FAULT_STATUS_MASK 0x0000000F
+#define SA110_DOMAIN_MASK 0x000000F0
+
+/*
+ * SA-110 Cache Control Operations Definitions
+ */
+#define SA110_FLUSH_CACHE_INST_DATA_OPCODE 0x0
+#define SA110_FLUSH_CACHE_INST_DATA_RM 0x7
+#define SA110_FLUSH_CACHE_INST_OPCODE 0x0
+#define SA110_FLUSH_CACHE_INST_RM 0x5
+#define SA110_FLUSH_CACHE_DATA_OPCODE 0x0
+#define SA110_FLUSH_CACHE_DATA_RM 0x6
+#define SA110_FLUSH_CACHE_DATA_SINGLE_OPCODE 0x1
+#define SA110_FLUSH_CACHE_DATA_SINGLE_RM 0x6
+#define SA110_CLEAN_CACHE_DATA_ENTRY_OPCODE 0x1
+#define SA110_CLEAN_CACHE_DATA_ENTRY_RM 0xA
+#define SA110_DRAIN_CACHE_WRITE_BUFFER_OPCODE 0x4
+#define SA110_DRAIN_CACHE_WRITE_BUFFER_RM 0xA
+
+/*
+ * SA-110 TLB Operations Definitions
+ */
+#define SA110_FLUSH_INST_DATA_TLB_OPCODE 0x0
+#define SA110_FLUSH_INST_DATA_TLB_RM 0x7
+#define SA110_FLUSH_INST_TLB_OPCODE 0x0
+#define SA110_FLUSH_INST_TLB_RM 0x5
+#define SA110_FLUSH_DATA_TLB_OPCODE 0x0
+#define SA110_FLUSH_DATA_TLB_RM 0x6
+#define SA110_FLUSH_DATA_ENTRY_TLB_OPCODE 0x1
+#define SA110_FLUSH_DATA_ENTRY_TLB_RM 0x6
+
+/*
+ * SA-110 Test, Clock and Idle Control Definition
+ */
+#define SA110_ICACHE_ODD_WORD_LOADING_OPCODE 0x1
+#define SA110_ICACHE_ODD_WORD_LOADING_RM 0x1
+#define SA110_ICACHE_EVEN_WORD_LOADING_OPCODE 0x1
+#define SA110_ICACHE_EVEN_WORD_LOADING_RM 0x2
+#define SA110_ICACHE_CLEAR_LFSR_OPCODE 0x1
+#define SA110_ICACHE_CLEAR_LFSR_RM 0x4
+#define SA110_ENABLE_CLOCK_SWITCHING_OPCODE 0x2
+#define SA110_ENABLE_CLOCK_SWITCHING_RM 0x1
+#define SA110_DISABLE_CLOCK_SWITCHING_OPCODE 0x2
+#define SA110_DISABLE_CLOCK_SWITCHING_RM 0x2
+#define SA110_DISABLE_mCLK_OUTPUT_OPCODE 0x2
+#define SA110_DISABLE_mCLK_OUTPUT_RM 0x4
+#define SA110_WAIT_FOR_INTERRUPT_OPCODE 0x2
+#define SA110_WAIT_FOR_INTERRUPT_RM 0x8
+
+
+/*
+ * SA-110 Control and Status Register Base Definitions
+ */
+#define SA110_CONTROL_STATUS_BASE 0x42000000
+#define SA110_REGISTER(x) REG32_PTR(SA110_CONTROL_STATUS_BASE + (x))
+
+#define SA110_PCI_CONFIG0_BASE 0x7b000000
+#define SA110_PCI_CONFIG1_BASE 0x7a000000
+
+/*
+ * These are standard PCI configuration offsets with base at
+ * SA110_CONTROL_STATUS_BASE - a memory-mapped version of the board's
+ * own PCI configuration registers.
+ * (see io_pci_cfg.h for other registers)
+ */
+
+#define SA110_PCI_CFG_COMMAND_o 0x04
+#define SA110_PCI_CFG_INT_LINE_o 0x3c
+#define SA110_PCI_CFG_CSR_MEM_BAR_o 0x10 // BAR[0]
+#define SA110_PCI_CFG_CSR_IO_BAR_o 0x14 // BAR[1]
+#define SA110_PCI_CFG_SDRAM_BAR_o 0x18 // BAR[2]
+
+#define SA110_PCI_CFG_COMMAND SA110_REGISTER(SA110_PCI_CFG_COMMAND_o)
+#define SA110_PCI_CFG_INT_LINE SA110_REGISTER(SA110_PCI_CFG_INT_LINE_o)
+#define SA110_PCI_CFG_CSR_MEM_BAR SA110_REGISTER(SA110_PCI_CFG_CSR_MEM_BAR_o)
+#define SA110_PCI_CFG_CSR_IO_BAR SA110_REGISTER(SA110_PCI_CFG_CSR_IO_BAR_o)
+#define SA110_PCI_CFG_SDRAM_BAR SA110_REGISTER(SA110_PCI_CFG_SDRAM_BAR_o)
+
+/*
+ * These live in the same space as the PCI config registers, but
+ * are specific to the 21285.
+ */
+
+#define SA110_OUT_INT_STATUS_o 0x30
+#define SA110_OUT_INT_MASK_o 0x34
+#define SA110_INBOUND_FIFO_o 0x40
+#define SA110_OUTBOUND_FIFO_o 0x44
+#define SA110_MAILBOX0_o 0x50
+#define SA110_MAILBOX1_o 0x54
+#define SA110_MAILBOX2_o 0x58
+#define SA110_MAILBOX3_o 0x5C
+#define SA110_DOORBELL_o 0x60
+#define SA110_DOORBELL_SETUP_o 0x64
+
+#define SA110_OUT_INT_STATUS SA110_REGISTER(SA110_OUT_INT_STATUS_o)
+
+#define SA110_PCI_ADDR_EXT_o 0x140
+#define SA110_DOORBELL_PCI_MASK_o 0x150
+#define SA110_DOORBELL_SA_MASK_o 0x154
+
+#define SA110_PCI_ADDR_EXT SA110_REGISTER(SA110_PCI_ADDR_EXT_o)
+#define SA110_DOORBELL_PCI_MASK SA110_REGISTER(SA110_DOORBELL_PCI_MASK_o)
+#define SA110_DOORBELL_SA_MASK SA110_REGISTER(SA110_DOORBELL_SA_MASK_o)
+
+
+#define SA110_OUT_INT_STATUS_DOORBELL_INT 0x4
+#define SA110_OUT_INT_STATUS_OUTBOUND_INT 0x8
+
+/*
+ * SA-110 CSR Register Definitions
+ */
+#define SA110_CSR_BASE_ADDRESS_MASK_o 0xF8
+#define SA110_CSR_BASE_ADDRESS_OFFSET_o 0xFC
+
+#define SA110_CSR_BASE_ADDRESS_MASK SA110_REGISTER(SA110_CSR_BASE_ADDRESS_MASK_o)
+#define SA110_CSR_BASE_ADDRESS_OFFSET SA110_REGISTER(SA110_CSR_BASE_ADDRESS_OFFSET_o)
+
+/*
+ * SA-110 CSR Register Value Definitions
+ */
+#define SA110_CSR_WINDOW_SIZE_128 0x00000000
+#define SA110_CSR_WINDOW_SIZE_512KB 0x00040000
+#define SA110_CSR_WINDOW_SIZE_1MB 0x000C0000
+#define SA110_CSR_WINDOW_SIZE_2MB 0x001C0000
+#define SA110_CSR_WINDOW_SIZE_4MB 0x003C0000
+#define SA110_CSR_WINDOW_SIZE_8MB 0x007C0000
+#define SA110_CSR_WINDOW_SIZE_16MB 0x00FC0000
+#define SA110_CSR_WINDOW_SIZE_32MB 0x01FC0000
+#define SA110_CSR_WINDOW_SIZE_64MB 0x03FC0000
+#define SA110_CSR_WINDOW_SIZE_128MB 0x07FC0000
+#define SA110_CSR_WINDOW_SIZE_256MB 0x0FFC0000
+
+/*
+ * SA-110 SDRAM Register Definitions
+ */
+#define SA110_SDRAM_ARRAY_0_MODE_REGISTER_BASE REG32_PTR(0x40000000)
+#define SA110_SDRAM_ARRAY_1_MODE_REGISTER_BASE REG32_PTR(0x40004000)
+#define SA110_SDRAM_ARRAY_2_MODE_REGISTER_BASE REG32_PTR(0x40008000)
+#define SA110_SDRAM_ARRAY_3_MODE_REGISTER_BASE REG32_PTR(0x4000C000)
+
+#define SA110_SDRAM_BASE_ADDRESS_MASK_o 0x100
+#define SA110_SDRAM_BASE_ADDRESS_OFFSET_o 0x104
+#define SA110_EXP_ROM_BASE_ADDRESS_MASK_o 0x108
+#define SA110_SDRAM_TIMING_o 0x10C
+#define SA110_SDRAM_ADDRESS_SIZE_ARRAY_0_o 0x110
+#define SA110_SDRAM_ADDRESS_SIZE_ARRAY_1_o 0x114
+#define SA110_SDRAM_ADDRESS_SIZE_ARRAY_2_o 0x118
+#define SA110_SDRAM_ADDRESS_SIZE_ARRAY_3_o 0x11C
+
+#define SA110_SDRAM_BASE_ADDRESS_MASK SA110_REGISTER(SA110_SDRAM_BASE_ADDRESS_MASK_o)
+#define SA110_SDRAM_BASE_ADDRESS_OFFSET SA110_REGISTER(SA110_SDRAM_BASE_ADDRESS_OFFSET_o)
+#define SA110_EXP_ROM_BASE_ADDRESS_MASK SA110_REGISTER(SA110_EXP_ROM_BASE_ADDRESS_MASK_o)
+#define SA110_SDRAM_TIMING SA110_REGISTER(SA110_SDRAM_TIMING_o)
+#define SA110_SDRAM_ADDRESS_SIZE_ARRAY_0 SA110_REGISTER(SA110_SDRAM_ADDRESS_SIZE_ARRAY_0_o)
+#define SA110_SDRAM_ADDRESS_SIZE_ARRAY_1 SA110_REGISTER(SA110_SDRAM_ADDRESS_SIZE_ARRAY_1_o)
+#define SA110_SDRAM_ADDRESS_SIZE_ARRAY_2 SA110_REGISTER(SA110_SDRAM_ADDRESS_SIZE_ARRAY_2_o)
+#define SA110_SDRAM_ADDRESS_SIZE_ARRAY_3 SA110_REGISTER(SA110_SDRAM_ADDRESS_SIZE_ARRAY_3_o)
+
+#define SA110_SDRAM_SIZE_1M 1
+#define SA110_SDRAM_SIZE_2M 2
+#define SA110_SDRAM_SIZE_4M 3
+#define SA110_SDRAM_SIZE_8M 4
+#define SA110_SDRAM_SIZE_16M 5
+#define SA110_SDRAM_SIZE_32M 6
+#define SA110_SDRAM_SIZE_64M 7
+
+#define SA110_SDRAM_MUX_MODE0 0x00
+#define SA110_SDRAM_MUX_MODE1 0x10
+#define SA110_SDRAM_MUX_MODE2 0x20
+#define SA110_SDRAM_MUX_MODE3 0x30
+#define SA110_SDRAM_MUX_MODE4 0x40
+#define SA110_SDRAM_MUX_MODE_MASK 0x70
+
+
+
+/*
+ * SA-110 SDRAM Configuration Value Definitions
+ */
+#define SA110_SDRAM_WINDOW_SIZE_256KB 0x00000000
+#define SA110_SDRAM_WINDOW_SIZE_512KB 0x00040000
+#define SA110_SDRAM_WINDOW_SIZE_1MB 0x000C0000
+#define SA110_SDRAM_WINDOW_SIZE_2MB 0x001C0000
+#define SA110_SDRAM_WINDOW_SIZE_4MB 0x003C0000
+#define SA110_SDRAM_WINDOW_SIZE_8MB 0x007C0000
+#define SA110_SDRAM_WINDOW_SIZE_16MB 0x00FC0000
+#define SA110_SDRAM_WINDOW_SIZE_32MB 0x01FC0000
+#define SA110_SDRAM_WINDOW_SIZE_64MB 0x03FC0000
+#define SA110_SDRAM_WINDOW_SIZE_128MB 0x07FC0000
+#define SA110_SDRAM_WINDOW_SIZE_256MB 0x0FFC0000
+#define SA110_SDRAM_WINDOW_SIZE_NO_WINDOW 0x8FFC0000
+
+/*
+ * SA-110 Expansion ROM Configuration Value Definitions
+ */
+#define SA110_EXP_ROM_WINDOW_SIZE_1MB 0x00000000
+#define SA110_EXP_ROM_WINDOW_SIZE_2MB 0x00100000
+#define SA110_EXP_ROM_WINDOW_SIZE_4MB 0x00300000
+#define SA110_EXP_ROM_WINDOW_SIZE_8MB 0x00700000
+#define SA110_EXP_ROM_WINDOW_SIZE_16MB 0x00F00000
+#define SA110_EXP_ROM_WINDOW_SIZE_NO_WINDOW 0x80F00000
+
+/*
+ * SA-110 SDRAM Timing Register Field Definitions
+ */
+#define SA110_SDRAM_ROW_PRECHARGE_1_CYCLE 0x00000000
+#define SA110_SDRAM_ROW_PRECHARGE_2_CYCLES 0x00000001
+#define SA110_SDRAM_ROW_PRECHARGE_3_CYCLES 0x00000002
+#define SA110_SDRAM_ROW_PRECHARGE_4_CYCLES 0x00000003
+#define SA110_SDRAM_LAST_DATA_IN_2_CYCLES 0x00000000
+#define SA110_SDRAM_LAST_DATA_IN_3_CYCLES 0x00000004
+#define SA110_SDRAM_LAST_DATA_IN_4_CYCLES 0x00000008
+#define SA110_SDRAM_LAST_DATA_IN_5_CYCLES 0x0000000C
+
+#define SA110_SDRAM_RAS_TO_CAS_DELAY_2_CYCLES 0x00000020
+#define SA110_SDRAM_RAS_TO_CAS_DELAY_3_CYCLES 0x00000030
+#define SA110_SDRAM_CAS_LATENCY_2_CYCLES 0x00000080
+#define SA110_SDRAM_CAS_LATENCY_3_CYCLES 0x000000C0
+
+#define SA110_SDRAM_ROW_CYCLE_TIME_4_CYCLES 0x00000100
+#define SA110_SDRAM_ROW_CYCLE_TIME_5_CYCLES 0x00000200
+#define SA110_SDRAM_ROW_CYCLE_TIME_6_CYCLES 0x00000300
+#define SA110_SDRAM_ROW_CYCLE_TIME_7_CYCLES 0x00000400
+#define SA110_SDRAM_ROW_CYCLE_TIME_8_CYCLES 0x00000500
+#define SA110_SDRAM_ROW_CYCLE_TIME_9_CYCLES 0x00000600
+#define SA110_SDRAM_ROW_CYCLE_TIME_10_CYCLES 0x00000700
+
+#define SA110_SDRAM_COMMAND_DRIVE_SAME_CYCLE 0x00000000
+#define SA110_SDRAM_COMMAND_DRIVE_1_CYCLE 0x00000800
+
+#define SA110_SDRAM_PARITY_DISABLED 0x00000000
+#define SA110_SDRAM_PARITY_ENABLED 0x00001000
+#define SA110_SDRAM_PARITY_MASK 0x00001000
+
+#define SA110_SDRAM_SA110_PRIME_DISABLED 0x00000000
+#define SA110_SDRAM_SA110_PRIME_ENABLED 0x00002000
+#define SA110_SDRAM_SA110_PRIME_MASK 0x00002000
+
+#define SA110_SDRAM_REFRESH_INTERVAL(x) (((x) << 16) & 0x003f0000)
+#define SA110_SDRAM_REFRESH_INTERVAL_MIN SA110_SDRAM_REFRESH_INTERVAL(1)
+#define SA110_SDRAM_REFRESH_INTERVAL_NORMAL SA110_SDRAM_REFRESH_INTERVAL(0x1A)
+
+/*
+ * SA-110 SDRAM Address and Size Register Field Definitions
+ */
+#define SA110_SDRAM_SIZE_0 0x000000000
+#define SA110_SDRAM_SIZE_1MB 0x000000001
+#define SA110_SDRAM_SIZE_2MB 0x000000002
+#define SA110_SDRAM_SIZE_4MB 0x000000003
+#define SA110_SDRAM_SIZE_8MB 0x000000004
+#define SA110_SDRAM_SIZE_16MB 0x000000005
+#define SA110_SDRAM_SIZE_32MB 0x000000006
+#define SA110_SDRAM_SIZE_64MB 0x000000007
+
+#define SA110_SDRAM_ADDRESS_MULTIPLEX_MASK 0x000000070
+#define SA110_SDRAM_ARRAY_BASE_MASK 0x00FF00000
+
+/*
+ * SA-110 Control Register.
+ */
+#define SA110_CONTROL_o 0x13C
+
+#define SA110_CONTROL SA110_REGISTER(SA110_CONTROL_o)
+
+/*
+ * Control bits.
+ */
+#define SA110_CONTROL_INIT_COMPLETE 0x00000001
+#define SA110_CONTROL_RST_I 0x00000200
+#define SA110_CONTROL_WATCHDOG 0x00002000
+#define SA110_CONTROL_CFN 0x80000000
+
+/*
+ * SA-110 UART Control/Configuration Registers.
+ */
+#define SA110_UART_DATA_REGISTER_o 0x160
+#define SA110_UART_RXSTAT_o 0x164
+#define SA110_UART_H_BAUD_CONTROL_o 0x168
+#define SA110_UART_M_BAUD_CONTROL_o 0x16C
+#define SA110_UART_L_BAUD_CONTROL_o 0x170
+#define SA110_UART_CONTROL_REGISTER_o 0x174
+#define SA110_UART_FLAG_REGISTER_o 0x178
+
+#define SA110_UART_DATA_REGISTER SA110_REGISTER(SA110_UART_DATA_REGISTER_o)
+#define SA110_UART_RXSTAT SA110_REGISTER(SA110_UART_RXSTAT_o)
+#define SA110_UART_H_BAUD_CONTROL SA110_REGISTER(SA110_UART_H_BAUD_CONTROL_o)
+#define SA110_UART_M_BAUD_CONTROL SA110_REGISTER(SA110_UART_M_BAUD_CONTROL_o)
+#define SA110_UART_L_BAUD_CONTROL SA110_REGISTER(SA110_UART_L_BAUD_CONTROL_o)
+#define SA110_UART_CONTROL_REGISTER SA110_REGISTER(SA110_UART_CONTROL_REGISTER_o)
+#define SA110_UART_FLAG_REGISTER SA110_REGISTER(SA110_UART_FLAG_REGISTER_o)
+
+#define UART_BASE_0 SA110_UART_DATA_REGISTER
+
+/*
+ * SA-110 UART Data Register bit masks
+ */
+#define SA110_UART_DATA_MASK 0x000000FF
+
+/*
+ * SA-110 UART RX Status Register bit masks
+ */
+#define SA110_UART_FRAMING_ERROR_MASK 0x00000001
+#define SA110_UART_PARITY_ERROR_MASK 0x00000002
+#define SA110_UART_OVERRUN_ERROR_MASK 0x00000004
+
+/*
+ * SA-110 UART High Baud Control Register bit masks
+ */
+#define SA110_UART_BREAK_DISABLED 0x00000000
+#define SA110_UART_BREAK_ENABLED 0x00000001
+#define SA110_UART_BREAK_MASK 0x00000001
+#define SA110_UART_PARITY_DISABLED 0x00000000
+#define SA110_UART_PARITY_ENABLED 0x00000002
+#define SA110_UART_PARITY_MASK 0x00000002
+#define SA110_UART_PARITY_ODD 0x00000000
+#define SA110_UART_PARITY_EVEN 0x00000004
+#define SA110_UART_ODD_EVEN_SELECT_MASK 0x00000004
+#define SA110_UART_STOP_BITS_ONE 0x00000000
+#define SA110_UART_STOP_BITS_TWO 0x00000008
+#define SA110_UART_STOP_BITS_SELECT_MASK 0x00000008
+#define SA110_UART_FIFO_DISABLED 0x00000000
+#define SA110_UART_FIFO_ENABLED 0x00000010
+#define SA110_UART_FIFO_ENABLE_MASK 0x00000010
+#define SA110_UART_DATA_LENGTH_5_BITS 0x00000000
+#define SA110_UART_DATA_LENGTH_6_BITS 0x00000020
+#define SA110_UART_DATA_LENGTH_7_BITS 0x00000040
+#define SA110_UART_DATA_LENGTH_8_BITS 0x00000060
+#define SA110_UART_DATA_LENGTH_MASK 0x00000060
+
+/*
+ * SA-110 UART Medium Baud Control Register bit masks
+ */
+#define SA110_UART_H_BAUD_RATE_DIVISOR_MASK 0x0000000F
+
+/*
+ * SA-110 UART Low Baud Control Register bit masks
+ */
+#define SA110_UART_L_BAUD_RATE_DIVISOR_MASK 0x000000FF
+
+/*
+ * SA-110 UART Control Register bit fields
+ */
+#define SA110_UART_DISABLED 0x00000000
+#define SA110_UART_ENABLED 0x00000001
+#define SA110_UART_ENABLE_MASK 0x00000001
+#define SA110_SIR_DISABLED 0x00000000
+#define SA110_SIR_ENABLED 0x00000002
+#define SA110_SIR_ENABLE_MASK 0x00000002
+#define SA110_SIR_PULSE_WIDTH_BIT_RATE 0x00000000
+#define SA110_SIR_PULSE_WIDTH_MAX_CLK 0x00000004
+
+/*
+ * SA-110 UART Flag Register bit masks
+ */
+#define SA110_TX_IDLE 0x00000000
+#define SA110_TX_BUSY 0x00000008
+#define SA110_TX_BUSY_MASK 0x00000008
+#define SA110_RX_FIFO_FULL 0x00000000
+#define SA110_RX_FIFO_EMPTY 0x00000010
+#define SA110_RX_FIFO_STATUS_MASK 0x00000010
+#define SA110_TX_FIFO_READY 0x00000000
+#define SA110_TX_FIFO_BUSY 0x00000020
+#define SA110_TX_FIFO_STATUS_MASK 0x00000020
+
+/*
+ * SA-110 IRQ Controller Registers
+ */
+#define SA110_IRQCONT_IRQSTATUS_o 0x180
+#define SA110_IRQCONT_IRQRAWSTATUS_o 0x184
+#define SA110_IRQCONT_IRQENABLE_o 0x188
+#define SA110_IRQCONT_IRQENABLESET_o 0x188
+#define SA110_IRQCONT_IRQENABLECLEAR_o 0x18C
+#define SA110_IRQCONT_IRQSOFT_o 0x190
+#define SA110_IRQCONT_FIQSTATUS_o 0x280
+#define SA110_IRQCONT_FIQRAWSTATUS_o 0x284
+#define SA110_IRQCONT_FIQENABLE_o 0x288
+#define SA110_IRQCONT_FIQENABLESET_o 0x288
+#define SA110_IRQCONT_FIQENABLECLEAR_o 0x28C
+#define SA110_IRQCONT_FIQSOFT_o 0x290
+
+#define SA110_IRQCONT_IRQSTATUS SA110_REGISTER(SA110_IRQCONT_IRQSTATUS_o)
+#define SA110_IRQCONT_IRQRAWSTATUS SA110_REGISTER(SA110_IRQCONT_IRQRAWSTATUS_o)
+#define SA110_IRQCONT_IRQENABLE SA110_REGISTER(SA110_IRQCONT_IRQENABLE_o)
+#define SA110_IRQCONT_IRQENABLESET SA110_REGISTER(SA110_IRQCONT_IRQENABLESET_o)
+#define SA110_IRQCONT_IRQENABLECLEAR SA110_REGISTER(SA110_IRQCONT_IRQENABLECLEAR_o)
+#define SA110_IRQCONT_IRQSOFT SA110_REGISTER(SA110_IRQCONT_IRQSOFT_o)
+#define SA110_IRQCONT_FIQSTATUS SA110_REGISTER(SA110_IRQCONT_FIQSTATUS_o)
+#define SA110_IRQCONT_FIQRAWSTATUS SA110_REGISTER(SA110_IRQCONT_FIQRAWSTATUS_o)
+#define SA110_IRQCONT_FIQENABLE SA110_REGISTER(SA110_IRQCONT_FIQENABLE_o)
+#define SA110_IRQCONT_FIQENABLESET SA110_REGISTER(SA110_IRQCONT_FIQENABLESET_o)
+#define SA110_IRQCONT_FIQENABLECLEAR SA110_REGISTER(SA110_IRQCONT_FIQENABLECLEAR_o)
+#define SA110_IRQCONT_FIQSOFT SA110_REGISTER(SA110_IRQCONT_FIQSOFT_o)
+
+/*
+ * SA-110 Timer Control Registers
+ */
+#define SA110_TIMER_BASE_o 0x300
+#define SA110_TIMER1_BASE_o (SA110_TIMER_BASE_o + 0x00)
+#define SA110_TIMER2_BASE_o (SA110_TIMER_BASE_o + 0x20)
+#define SA110_TIMER3_BASE_o (SA110_TIMER_BASE_o + 0x40)
+#define SA110_TIMER4_BASE_o (SA110_TIMER_BASE_o + 0x60)
+
+#define SA110_TIMER1_LOAD_o (SA110_TIMER1_BASE_o + 0x0)
+#define SA110_TIMER1_VALUE_o (SA110_TIMER1_BASE_o + 0x4)
+#define SA110_TIMER1_CONTROL_o (SA110_TIMER1_BASE_o + 0x8)
+#define SA110_TIMER1_CLEAR_o (SA110_TIMER1_BASE_o + 0xc)
+#define SA110_TIMER2_LOAD_o (SA110_TIMER2_BASE_o + 0x0)
+#define SA110_TIMER2_VALUE_o (SA110_TIMER2_BASE_o + 0x4)
+#define SA110_TIMER2_CONTROL_o (SA110_TIMER2_BASE_o + 0x8)
+#define SA110_TIMER2_CLEAR_o (SA110_TIMER2_BASE_o + 0xc)
+#define SA110_TIMER3_LOAD_o (SA110_TIMER3_BASE_o + 0x0)
+#define SA110_TIMER3_VALUE_o (SA110_TIMER3_BASE_o + 0x4)
+#define SA110_TIMER3_CONTROL_o (SA110_TIMER3_BASE_o + 0x8)
+#define SA110_TIMER3_CLEAR_o (SA110_TIMER3_BASE_o + 0xc)
+#define SA110_TIMER4_LOAD_o (SA110_TIMER4_BASE_o + 0x0)
+#define SA110_TIMER4_VALUE_o (SA110_TIMER4_BASE_o + 0x4)
+#define SA110_TIMER4_CONTROL_o (SA110_TIMER4_BASE_o + 0x8)
+#define SA110_TIMER4_CLEAR_o (SA110_TIMER4_BASE_o + 0xc)
+
+#define SA110_TIMER1_LOAD SA110_REGISTER(SA110_TIMER1_LOAD_o)
+#define SA110_TIMER1_VALUE SA110_REGISTER(SA110_TIMER1_VALUE_o)
+#define SA110_TIMER1_CONTROL SA110_REGISTER(SA110_TIMER1_CONTROL_o)
+#define SA110_TIMER1_CLEAR SA110_REGISTER(SA110_TIMER1_CLEAR_o)
+#define SA110_TIMER2_LOAD SA110_REGISTER(SA110_TIMER2_LOAD_o)
+#define SA110_TIMER2_VALUE SA110_REGISTER(SA110_TIMER2_VALUE_o)
+#define SA110_TIMER2_CONTROL SA110_REGISTER(SA110_TIMER2_CONTROL_o)
+#define SA110_TIMER2_CLEAR SA110_REGISTER(SA110_TIMER2_CLEAR_o)
+#define SA110_TIMER3_LOAD SA110_REGISTER(SA110_TIMER3_LOAD_o)
+#define SA110_TIMER3_VALUE SA110_REGISTER(SA110_TIMER3_VALUE_o)
+#define SA110_TIMER3_CONTROL SA110_REGISTER(SA110_TIMER3_CONTROL_o)
+#define SA110_TIMER3_CLEAR SA110_REGISTER(SA110_TIMER3_CLEAR_o)
+#define SA110_TIMER4_LOAD SA110_REGISTER(SA110_TIMER4_LOAD_o)
+#define SA110_TIMER4_VALUE SA110_REGISTER(SA110_TIMER4_VALUE_o)
+#define SA110_TIMER4_CONTROL SA110_REGISTER(SA110_TIMER4_CONTROL_o)
+#define SA110_TIMER4_CLEAR SA110_REGISTER(SA110_TIMER4_CLEAR_o)
+
+/* Timer bits */
+#define SA110_TIMER_CONTROL_SCALE_1 0x00000000
+#define SA110_TIMER_CONTROL_SCALE_16 0x00000004
+#define SA110_TIMER_CONTROL_SCALE_256 0x00000008
+#define SA110_TIMER_CONTROL_SCALE_EXT 0x0000000c
+#define SA110_TIMER_CONTROL_MODE 0x00000040
+#define SA110_TIMER_CONTROL_ENABLE 0x00000080
+
+/*
+ * IRQ Controller IRQ Numbers
+ */
+#define SA110_IRQ_MIN 0
+
+#define SA110_IRQ_RSV0 0
+#define SA110_IRQ_SOFT_INTERRUPT 1
+#define SA110_IRQ_CONSOLE_RX 2
+#define SA110_IRQ_CONSOLE_TX 3
+#define SA110_IRQ_TIMER_1 4
+#define SA110_IRQ_TIMER_2 5
+#define SA110_IRQ_TIMER_3 6
+#define SA110_IRQ_TIMER_4 7
+#define SA110_IRQ_IRQ_IN_I_0 8
+#define SA110_IRQ_IRQ_IN_I_1 9
+#define SA110_IRQ_IRQ_IN_I_2 10
+#define SA110_IRQ_IRQ_IN_I_3 11
+#define SA110_IRQ_XCS_I_0 12
+#define SA110_IRQ_XCS_I_1 13
+#define SA110_IRQ_XCS_I_2 14
+#define SA110_IRQ_DOORBELL_FROM_HOST 15
+#define SA110_IRQ_DMA_CHAN_1 16
+#define SA110_IRQ_DMA_CHAN_2 17
+#define SA110_IRQ_PIC_IRQ_I 18
+#define SA110_IRQ_PMCSR_WRITE_BY_HOST 19
+#define SA110_IRQ_RSV1 20
+#define SA110_IRQ_RSV2 21
+#define SA110_IRQ_START_BIST 22
+#define SA110_IRQ_RECEIVED_SERR 23
+#define SA110_IRQ_SDRAM_PARITY 24
+#define SA110_IRQ_I20_INBOUND_POST_LIST 25
+#define SA110_IRQ_RSV3 26
+#define SA110_IRQ_DISCARD_TIMER_EXPIRED 27
+#define SA110_IRQ_DATA_PARITY_ERROR 28
+#define SA110_IRQ_MASTER_ABORT 29
+#define SA110_IRQ_TARGET_ABORT 30
+#define SA110_IRQ_PARITY_ERROR 31
+
+#define SA110_IRQ_MAX 31
+#define NUM_SA110_INTERRUPTS SA110_IRQ_MAX - SA110_IRQ_MIN + 1
+#define SA110_IRQ_INTSRC_MASK(irq_nr) (1 << (irq_nr))
+
+
+/*
+ * SA110 IRQSOFT/FIQSOFT Register bit fields
+ */
+#define SA110_IRQSOFT_RAW_BIT_MASK 0x00000001
+
+/*
+ * SA-110 Miscellaneous Registers.
+ */
+#define SA110_XBUS_CYCLE_ARBITER_o 0x148
+#define SA110_XBUS_IO_STROBE_MASK_o 0x14c
+
+#define SA110_XBUS_CYCLE_ARBITER SA110_REGISTER(SA110_XBUS_CYCLE_ARBITER_o)
+#define SA110_XBUS_IO_STROBE_MASK SA110_REGISTER(SA110_XBUS_IO_STROBE_MASK_o)
+
+#define SA110_XBUS_CYCLE_ARBITER_ENABLED 0x00800000
+
+#define SA110_XBUS_XCS2 0x40012000
+#define SA110_XBUS_XCS2_PCI_DISABLE 0x40
+
+// -------------------------------------------------------------------------
+// MMU initialization:
+//
+// These structures are laid down in memory to define the translation
+// table. For usage, see the memory setup in ebsa285_misc.c in this
+// component. hal_bsp_mmu_init()
+//
+
+/*
+ * 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)
+
+// These are only useful in C, so:
+#ifndef __ASSEMBLER__
+
+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_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
+
+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;
+};
+
+#endif /* __ASSEMBLER__ */
+
+#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
+
+
+/*---------------------------------------------------------------------------*/
+/* end of hal_ebsa285.h */
+#endif /* CYGONCE_HAL_EBSA285_H */
diff --git a/ecos/packages/hal/arm/ebsa285/current/include/hal_platform_ints.h b/ecos/packages/hal/arm/ebsa285/current/include/hal_platform_ints.h
new file mode 100644
index 0000000..40d329e
--- /dev/null
+++ b/ecos/packages/hal/arm/ebsa285/current/include/hal_platform_ints.h
@@ -0,0 +1,128 @@
+#ifndef CYGONCE_HAL_PLATFORM_INTS_H
+#define CYGONCE_HAL_PLATFORM_INTS_H
+//==========================================================================
+//
+// hal_platform_ints.h
+//
+// HAL Interrupt and clock support
+//
+//==========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//==========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): hmt
+// Contributors: hmt
+// Date: 1999-04-21
+// Purpose: Define Interrupt support
+// Description: The interrupt details for the EBSA285 are defined here.
+// Usage:
+// #include <cyg/hal/hal_platform_ints.h>
+// ...
+//
+//
+//####DESCRIPTIONEND####
+//
+//==========================================================================
+
+#define CYGNUM_HAL_INTERRUPT_reserved0 0
+#define CYGNUM_HAL_INTERRUPT_SOFT_IRQ 1
+#define CYGNUM_HAL_INTERRUPT_SERIAL_RX 2
+#define CYGNUM_HAL_INTERRUPT_SERIAL_TX 3
+#define CYGNUM_HAL_INTERRUPT_TIMER_1 4
+#define CYGNUM_HAL_INTERRUPT_TIMER_2 5
+#define CYGNUM_HAL_INTERRUPT_TIMER_3 6
+#define CYGNUM_HAL_INTERRUPT_TIMER_4 7
+#define CYGNUM_HAL_INTERRUPT_IRQ_IN_0 8
+#define CYGNUM_HAL_INTERRUPT_IRQ_IN_1 9
+#define CYGNUM_HAL_INTERRUPT_IRQ_IN_2 10
+#define CYGNUM_HAL_INTERRUPT_IRQ_IN_3 11
+#define CYGNUM_HAL_INTERRUPT_XBUS_CS_0 12
+#define CYGNUM_HAL_INTERRUPT_XBUS_CS_1 13
+#define CYGNUM_HAL_INTERRUPT_XBUS_CS_2 14
+#define CYGNUM_HAL_INTERRUPT_DOORBELL 15
+#define CYGNUM_HAL_INTERRUPT_DMA_1 16
+#define CYGNUM_HAL_INTERRUPT_DMA_2 17
+#define CYGNUM_HAL_INTERRUPT_PCI_IRQ 18
+#define CYGNUM_HAL_INTERRUPT_PMCSR 19
+#define CYGNUM_HAL_INTERRUPT_reserved20 20
+#define CYGNUM_HAL_INTERRUPT_reserved21 21
+#define CYGNUM_HAL_INTERRUPT_BIST 22
+#define CYGNUM_HAL_INTERRUPT_SERR 23
+#define CYGNUM_HAL_INTERRUPT_SDRAM_PARITY 24
+#define CYGNUM_HAL_INTERRUPT_I2O_POST 25
+#define CYGNUM_HAL_INTERRUPT_reserved26 26
+#define CYGNUM_HAL_INTERRUPT_DISCARD_TIMER 27
+#define CYGNUM_HAL_INTERRUPT_PCI_DATA_PARITY 28
+#define CYGNUM_HAL_INTERRUPT_PCI_MASTER_ABORT 29
+#define CYGNUM_HAL_INTERRUPT_PCI_TARGET_ABORT 30
+#define CYGNUM_HAL_INTERRUPT_PCI_PARITY_ERROR 31
+
+#define CYGNUM_HAL_ISR_MIN 0
+#define CYGNUM_HAL_ISR_MAX 31
+
+#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_TIMER_3
+
+
+//----------------------------------------------------------------------------
+// Reset.
+#include <cyg/hal/hal_ebsa285.h> // registers
+#include <cyg/hal/hal_io.h> // IO macros
+
+#define HAL_PLATFORM_RESET() \
+ CYG_MACRO_START \
+ cyg_uint32 ctrl; \
+ \
+ /* If watchdog is already enabled, writing to timer4 has no effect. */ \
+ /* But by disabling interupts and just hanging in the loop below */ \
+ /* the timer might run out eventually (not guaranteed). */ \
+ HAL_DISABLE_INTERRUPTS(ctrl); \
+ \
+ /* Set timer4 (must be done before enabling watchdog) */ \
+ HAL_WRITE_UINT32(SA110_TIMER4_LOAD, 2); \
+ HAL_WRITE_UINT32(SA110_TIMER4_CONTROL, SA110_TIMER_CONTROL_ENABLE); \
+ \
+ /* Enable watchdog */ \
+ HAL_READ_UINT32(SA110_CONTROL, ctrl); \
+ ctrl |= SA110_CONTROL_WATCHDOG; \
+ HAL_WRITE_UINT32(SA110_CONTROL, ctrl); \
+ \
+ for(;;); /* wait for it */ \
+ CYG_MACRO_END
+
+#define HAL_PLATFORM_RESET_ENTRY 0x41000000
+
+#endif // CYGONCE_HAL_PLATFORM_INTS_H
diff --git a/ecos/packages/hal/arm/ebsa285/current/include/hal_platform_setup.h b/ecos/packages/hal/arm/ebsa285/current/include/hal_platform_setup.h
new file mode 100644
index 0000000..120d1c9
--- /dev/null
+++ b/ecos/packages/hal/arm/ebsa285/current/include/hal_platform_setup.h
@@ -0,0 +1,266 @@
+#ifndef CYGONCE_HAL_PLATFORM_SETUP_H
+#define CYGONCE_HAL_PLATFORM_SETUP_H
+
+/*=============================================================================
+//
+// hal_platform_setup.h
+//
+// Platform specific support for HAL (assembly code)
+//
+//=============================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): hmt
+// Contributors: hmt
+// Date: 1999-04-21
+// Purpose: Intel EBSA285 platform specific support routines
+// Description:
+// Usage: #include <cyg/hal/hal_platform_setup.h>
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================*/
+
+#include <pkgconf/system.h> // System-wide configuration info
+#include CYGBLD_HAL_PLATFORM_H // Platform specific configuration
+#include CYGHWR_MEMORY_LAYOUT_H // Location of the ROM
+#include <cyg/hal/hal_ebsa285.h> // Platform specific hardware definitions
+#include <cyg/hal/hal_mmu.h> // MMU definitions
+
+// Note that we do NOT define CYGHWR_HAL_ARM_HAS_MMU so that at reset we
+// jump straight into the ROM; this makes it unnecessary to take any
+// special steps to switch from executing in the ROM alias at low
+// addresses. Make no difference for RAM start. For ROMRAM startup the
+// application is linked with RAM addresses, but we have to jump to
+// the ROM address at startup. Diddle the UNMAPPED macro to do this
+
+#if defined (CYG_HAL_STARTUP_ROMRAM)
+#define UNMAPPED(x) (x + CYGMEM_REGION_rom)
+#endif
+
+// Define macro used to diddle the LEDs during early initialization.
+// Can use r0+r1. Argument in \x.
+#define CYGHWR_LED_MACRO \
+ ldr r0,=0x42000148 /* SA110_XBUS_CYCLE_ARBITER */ ;\
+ ldr r0,[r0] ;\
+ tsts r0,#0x00800000 /* SA110_XBUS_CYCLE_ARBITER_ENABLED */ ;\
+ bne 667f /* Don't touch if PCI arbiter enabled */;\
+ ldr r0,=0x40012800 /* SA110_XBUS_XCS2 */ ;\
+ mov r1,#7&(~(\x)) ;\
+ str r1,[r0] ;\
+667:
+
+// The main useful output of this file is PLATFORM_SETUP1: it invokes lots
+// of other stuff (may depend on RAM or ROM start). The other stuff is
+// divided into further macros to make it easier to manage what's enabled
+// when.
+
+#if defined(CYG_HAL_STARTUP_ROM) || defined(CYG_HAL_STARTUP_ROMRAM) || \
+ defined(CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS) || \
+ !defined(CYGSEM_HAL_USE_ROM_MONITOR)
+
+// Dependence on ROM/RAM start removed when meminit code fixed up.
+// But it re-emerged when RedBoot's desire to live over RAM app
+// initialization asserted itself.
+//
+// The correct thing is to re-initialize everything if any of:
+// o You are in ROM (duh!)
+// o You include your own stubs (ergo rule the world)
+// o You do not cooperate with a ROM Monitor
+//
+// [The latter two probably mean the same thing, but this way also lets us
+// support a standalone RAM startup app with no stubs in it. ]
+// Hence the more complex conditional above. See comments in the ChangeLog
+// and plf_io.h wrt initializing the PCI bus world.
+
+#define PLATFORM_SETUP1 \
+ PLATFORM_FLUSH_DISABLE_CACHES \
+ INIT_XBUS_ACCESS \
+ ALLOW_CLOCK_SWITCHING \
+ CALL_MEMINIT_CODE \
+ ROMRAM_COPY \
+ BASIC_PCI_SETUP
+#else
+#define PLATFORM_SETUP1
+#endif
+
+
+// Discard and disable all caches: we are about to be writing vectors...
+#define PLATFORM_FLUSH_DISABLE_CACHES \
+ /* flush and disable the caches */ \
+ mrc p15,0,r1,c1,c0,0 ;\
+ bic r1,r1,#0x1000 /* ICache off */ ;\
+ bic r1,r1,#0x000D /* DCache off and MM off */ ;\
+ mcr p15,0,r1,c1,c0,0 ;\
+ mov r1, #0 ;\
+ mcr p15,0,r1,c7,c6,0 /* DCache invalidate (discard) */ ;\
+ mcr p15,0,r1,c7,c5,0 /* ICache invalidate */ ;\
+ mcr p15,0,r1,c8,c6,0 /* DCache TLB invalidate */ ;\
+ mcr p15,0,r1,c8,c5,0 /* ICache TLB invalidate */ ;\
+ nop ;\
+ nop /* be sure invalidate "takes" before doing owt else */ ;\
+ nop ;
+
+
+// Allow clock switching: very early in the startup
+#define ALLOW_CLOCK_SWITCHING \
+ mov r0, #0 ;\
+ mcr p15,0,r0,c15,c1,2 ;\
+
+
+// Depending on jumper settings, either ignore or initialize the XBus.
+#define INIT_XBUS_ACCESS \
+ ldr r1, =SA110_XBUS_CYCLE_ARBITER ;\
+ ldr r0, [r1] ;\
+ tsts r0, #SA110_XBUS_CYCLE_ARBITER_ENABLED ;\
+ beq 777f ;\
+ /* PCI arbiter enabled, so don't touch the XBus */ ;\
+ ldr r0, =SA110_CONTROL ;\
+ ldr r1, =0x04aa0000 ;\
+ str r1, [r0] ;\
+ b 778f ;\
+ ;\
+ /* set up XBus so we can read switch and write to LEDs */ ;\
+777: ldr r0, =SA110_CONTROL ;\
+ ldr r1, =0x64aa0000 ;\
+ str r1, [r0] ;\
+ ldr r0, =SA110_XBUS_CYCLE_ARBITER ;\
+ ldr r1, =0x100016db ;\
+ str r1, [r0] ;\
+ ldr r0, =SA110_XBUS_IO_STROBE_MASK ;\
+ ldr r1, =0xfcfcfcfc ;\
+ str r1, [r0] ;\
+778: ;\
+
+// Save lr and call mem init code
+#define CALL_MEMINIT_CODE \
+ mov r10, lr /* preserve lr */ ;\
+ bl __mem285_init ;\
+ ldr r1, =hal_dram_size /* [see hal_intr.h] */ ;\
+ str r0, [ r1 ] /* store the top of memory address */ ;\
+ mov lr, r10 /* in hal_dram_size for future use */ ;\
+
+// If we are doing a ROMRAM startup copy all sections up to the start of
+// the data section to RAM.
+#if defined(CYG_HAL_STARTUP_ROMRAM)
+#define ROMRAM_COPY \
+ ldr r0,=(CYGMEM_REGION_rom) ;\
+ ldr r1,=0 ;\
+ ldr r2,=0x40 ;\
+810: ldr r3,[r0],#4 ;\
+ str r3,[r1],#4 ;\
+ cmp r1,r2 ;\
+ bne 810b ;\
+ ldr r0,=(CYGMEM_REGION_rom+reset_vector) ;\
+ ldr r1,=(reset_vector) ;\
+ ldr r2,=(CYGMEM_REGION_rom_SIZE) ;\
+820: ldr r3,[r0],#4 ;\
+ str r3,[r1],#4 ;\
+ cmp r1,r2 ;\
+ bne 820b ;\
+ ldr r0,=830f ;\
+ mov pc,r0 ;\
+830:
+#else
+#define ROMRAM_COPY
+#endif
+
+#define BASIC_PCI_SETUP \
+ /**************************************************************** \
+ * Basic PCI setup. \
+ ****************************************************************/\
+ ldr r0, =SA110_CONTROL_STATUS_BASE ;\
+ ;\
+ /* Disable PCI Outbound interrupts */ ;\
+ mov r1, #12 ;\
+ str r1, [r0, #SA110_OUT_INT_MASK_o] ;\
+ ;\
+ /* Disable Doorbells */ ;\
+ mov r1, #0 ;\
+ str r1, [r0, #SA110_DOORBELL_PCI_MASK_o] ;\
+ str r1, [r0, #SA110_DOORBELL_SA_MASK_o] ;\
+ ;\
+ /* Map high PCI address bits to 0 */ ;\
+ str r1, [r0, #SA110_PCI_ADDR_EXT_o] ;\
+ ;\
+ /* Interrupt ID to 1 */ ;\
+ mov r1, #0x100 ;\
+ str r1, [r0, #SA110_PCI_CFG_INT_LINE_o] ;\
+ ;\
+ /* Remove PCI_reset */ ;\
+ ldr r1, [r0, #SA110_CONTROL_o] ;\
+ orr r1, r1, #0x200 ;\
+ str r1, [r0, #SA110_CONTROL_o] ;\
+ ;\
+ /* Open a 2MB window */ ;\
+ mov r1, #0x1c0000 ;\
+ str r1,[r0, #SA110_SDRAM_BASE_ADDRESS_MASK_o] ;\
+ mov r1, #0xe00000 ;\
+ str r1,[r0, #SA110_SDRAM_BASE_ADDRESS_OFFSET_o] ;\
+ ;\
+ /* Only init PCI if central function is set and */ ;\
+ /* standalone bit is cleared */ ;\
+ ldr r1, [r0, #SA110_CONTROL_o] ;\
+ tst r1, #SA110_CONTROL_CFN ;\
+ beq 1f ;\
+ ;\
+ ldr r1, =0x40012000 ;\
+ ldr r1, [r1] ;\
+ tst r1, #0x40 ;\
+ bne 1f ;\
+ ;\
+ /* Don't respond to any commands */ ;\
+ mov r1, #0 ;\
+ str r1, [r0, #SA110_PCI_CFG_COMMAND_o] ;\
+ ;\
+ str r1, [r0, #SA110_PCI_CFG_SDRAM_BAR_o] ;\
+ mov r1, #0x40000000 ;\
+ str r1, [r0, #SA110_PCI_CFG_CSR_MEM_BAR_o] ;\
+ mov r1, #0xf000 ;\
+ str r1, [r0, #SA110_PCI_CFG_CSR_IO_BAR_o] ;\
+ ;\
+ /* respond to I/O space & Memory transactions. */ ;\
+ mov r1, #0x17 ;\
+ str r1, [r0, #SA110_PCI_CFG_COMMAND_o] ;\
+ 1: ;\
+ /* Signal PCI_init_complete */ ;\
+ ldr r1, [r0, #SA110_CONTROL_o] ;\
+ orr r1, r1, #SA110_CONTROL_INIT_COMPLETE ;\
+ str r1, [r0, #SA110_CONTROL_o] ;\
+
+
+/*---------------------------------------------------------------------------*/
+/* end of hal_platform_setup.h */
+#endif /* CYGONCE_HAL_PLATFORM_SETUP_H */
diff --git a/ecos/packages/hal/arm/ebsa285/current/include/pkgconf/mlt_arm_ebsa285_ram.h b/ecos/packages/hal/arm/ebsa285/current/include/pkgconf/mlt_arm_ebsa285_ram.h
new file mode 100644
index 0000000..24d1ca4
--- /dev/null
+++ b/ecos/packages/hal/arm/ebsa285/current/include/pkgconf/mlt_arm_ebsa285_ram.h
@@ -0,0 +1,22 @@
+// eCos memory layout - Tue Sep 05 16:58:21 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 (0)
+#define CYGMEM_REGION_ram_SIZE (0x1000000)
+#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 (0xf00000 - (size_t) CYG_LABEL_NAME (__heap1))
+#ifndef __ASSEMBLER__
+extern char CYG_LABEL_NAME (__pci_window) [];
+#endif
+#define CYGMEM_SECTION_pci_window (CYG_LABEL_NAME (__pci_window))
+#define CYGMEM_SECTION_pci_window_SIZE (0x100000)
diff --git a/ecos/packages/hal/arm/ebsa285/current/include/pkgconf/mlt_arm_ebsa285_ram.ldi b/ecos/packages/hal/arm/ebsa285/current/include/pkgconf/mlt_arm_ebsa285_ram.ldi
new file mode 100644
index 0000000..33ad483
--- /dev/null
+++ b/ecos/packages/hal/arm/ebsa285/current/include/pkgconf/mlt_arm_ebsa285_ram.ldi
@@ -0,0 +1,28 @@
+// eCos memory layout - Tue Sep 05 16:58:21 2000
+
+// This is a generated file - do not edit
+
+#include <cyg/infra/cyg_type.inc>
+
+MEMORY
+{
+ ram : ORIGIN = 0, LENGTH = 0x1000000
+}
+
+SECTIONS
+{
+ SECTIONS_BEGIN
+ SECTION_fixed_vectors (ram, 0x20, LMA_EQ_VMA)
+ SECTION_rom_vectors (ram, 0x30000, 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)
+ CYG_LABEL_DEFN(__heap1) = ALIGN (0x8);
+ CYG_LABEL_DEFN(__pci_window) = 0xf00000; . = CYG_LABEL_DEFN(__pci_window) + 0x100000;
+ SECTIONS_END
+}
diff --git a/ecos/packages/hal/arm/ebsa285/current/include/pkgconf/mlt_arm_ebsa285_ram.mlt b/ecos/packages/hal/arm/ebsa285/current/include/pkgconf/mlt_arm_ebsa285_ram.mlt
new file mode 100644
index 0000000..d2602e1
--- /dev/null
+++ b/ecos/packages/hal/arm/ebsa285/current/include/pkgconf/mlt_arm_ebsa285_ram.mlt
@@ -0,0 +1,14 @@
+version 0
+region ram 0 1000000 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 30000 30000 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 1 0 1 heap1 heap1 !
+section heap1 0 8 0 0 0 0 0 0 !
+section pci_window 100000 1 0 0 1 0 1 0 f00000 f00000 !This is the memory area that is dual-ported to devices onthe PCI bus. Such devices can read and write this memory areaas their own. Examples include the EBSA-285 Ethernet driver,which receives and transmits packets via this memory area.It must be 1Mb aligned, so that the MMU initialization can arrange for it to be uncacheable.
diff --git a/ecos/packages/hal/arm/ebsa285/current/include/pkgconf/mlt_arm_ebsa285_rom.h b/ecos/packages/hal/arm/ebsa285/current/include/pkgconf/mlt_arm_ebsa285_rom.h
new file mode 100644
index 0000000..ba5db55
--- /dev/null
+++ b/ecos/packages/hal/arm/ebsa285/current/include/pkgconf/mlt_arm_ebsa285_rom.h
@@ -0,0 +1,25 @@
+// eCos memory layout - Tue Sep 05 18:46:49 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 (0)
+#define CYGMEM_REGION_ram_SIZE (0x1000000)
+#define CYGMEM_REGION_ram_ATTR (CYGMEM_REGION_ATTR_R | CYGMEM_REGION_ATTR_W)
+#define CYGMEM_REGION_rom (0x41000000)
+#define CYGMEM_REGION_rom_SIZE (0x400000)
+#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 (0xf00000 - (size_t) CYG_LABEL_NAME (__heap1))
+#ifndef __ASSEMBLER__
+extern char CYG_LABEL_NAME (__pci_window) [];
+#endif
+#define CYGMEM_SECTION_pci_window (CYG_LABEL_NAME (__pci_window))
+#define CYGMEM_SECTION_pci_window_SIZE (0x100000)
diff --git a/ecos/packages/hal/arm/ebsa285/current/include/pkgconf/mlt_arm_ebsa285_rom.ldi b/ecos/packages/hal/arm/ebsa285/current/include/pkgconf/mlt_arm_ebsa285_rom.ldi
new file mode 100644
index 0000000..492781c
--- /dev/null
+++ b/ecos/packages/hal/arm/ebsa285/current/include/pkgconf/mlt_arm_ebsa285_rom.ldi
@@ -0,0 +1,29 @@
+// eCos memory layout - Tue Sep 05 18:46:49 2000
+
+// This is a generated file - do not edit
+
+#include <cyg/infra/cyg_type.inc>
+
+MEMORY
+{
+ ram : ORIGIN = 0, LENGTH = 0x1000000
+ rom : ORIGIN = 0x41000000, LENGTH = 0x400000
+}
+
+SECTIONS
+{
+ SECTIONS_BEGIN
+ SECTION_rom_vectors (rom, 0x41000000, 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)
+ CYG_LABEL_DEFN(__heap1) = ALIGN (0x8);
+ CYG_LABEL_DEFN(__pci_window) = 0xf00000; . = CYG_LABEL_DEFN(__pci_window) + 0x100000;
+ SECTIONS_END
+}
diff --git a/ecos/packages/hal/arm/ebsa285/current/include/pkgconf/mlt_arm_ebsa285_rom.mlt b/ecos/packages/hal/arm/ebsa285/current/include/pkgconf/mlt_arm_ebsa285_rom.mlt
new file mode 100644
index 0000000..5963c2c
--- /dev/null
+++ b/ecos/packages/hal/arm/ebsa285/current/include/pkgconf/mlt_arm_ebsa285_rom.mlt
@@ -0,0 +1,15 @@
+version 0
+region ram 0 1000000 0 !
+region rom 41000000 400000 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 1 0 1 heap1 heap1 !
+section heap1 0 8 0 0 0 0 0 0 !
+section pci_window 100000 1 0 0 1 0 1 0 f00000 f00000 !This is the memory area that is dual-ported to devices onthe PCI bus. Such devices can read and write this memory areaas their own. Examples include the EBSA-285 Ethernet driver, which receives and transmits packets via this memory area. It must be 1Mb aligned, so that the MMU initialization can arrange for it to be uncacheable.
+section rom_vectors 0 1 0 1 1 1 1 1 41000000 41000000 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 !
diff --git a/ecos/packages/hal/arm/ebsa285/current/include/pkgconf/mlt_arm_ebsa285_romram.h b/ecos/packages/hal/arm/ebsa285/current/include/pkgconf/mlt_arm_ebsa285_romram.h
new file mode 100644
index 0000000..7561125
--- /dev/null
+++ b/ecos/packages/hal/arm/ebsa285/current/include/pkgconf/mlt_arm_ebsa285_romram.h
@@ -0,0 +1,25 @@
+// eCos memory layout - Tue Sep 05 16:58:21 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 (0)
+#define CYGMEM_REGION_ram_SIZE (0x1000000)
+#define CYGMEM_REGION_ram_ATTR (CYGMEM_REGION_ATTR_R | CYGMEM_REGION_ATTR_W)
+#define CYGMEM_REGION_rom (0x41000000)
+#define CYGMEM_REGION_rom_SIZE (0x40000)
+#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 (0xf00000 - (size_t) CYG_LABEL_NAME (__heap1))
+#ifndef __ASSEMBLER__
+extern char CYG_LABEL_NAME (__pci_window) [];
+#endif
+#define CYGMEM_SECTION_pci_window (CYG_LABEL_NAME (__pci_window))
+#define CYGMEM_SECTION_pci_window_SIZE (0x100000)
diff --git a/ecos/packages/hal/arm/ebsa285/current/include/pkgconf/mlt_arm_ebsa285_romram.ldi b/ecos/packages/hal/arm/ebsa285/current/include/pkgconf/mlt_arm_ebsa285_romram.ldi
new file mode 100644
index 0000000..f0537ea
--- /dev/null
+++ b/ecos/packages/hal/arm/ebsa285/current/include/pkgconf/mlt_arm_ebsa285_romram.ldi
@@ -0,0 +1,28 @@
+// eCos memory layout - Tue Sep 05 16:58:21 2000
+
+// This is a generated file - do not edit
+
+#include <cyg/infra/cyg_type.inc>
+
+MEMORY
+{
+ ram : ORIGIN = 0, LENGTH = 0x1000000
+}
+
+SECTIONS
+{
+ SECTIONS_BEGIN
+ SECTION_rom_vectors (ram, 0x0, LMA_EQ_VMA)
+ SECTION_fixed_vectors (ram, 0x20, LMA_EQ_VMA)
+ SECTION_text (ram, 0x8000, 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)
+ CYG_LABEL_DEFN(__heap1) = ALIGN (0x8);
+ CYG_LABEL_DEFN(__pci_window) = 0xf00000; . = CYG_LABEL_DEFN(__pci_window) + 0x100000;
+ SECTIONS_END
+}
diff --git a/ecos/packages/hal/arm/ebsa285/current/include/pkgconf/mlt_arm_ebsa285_romram.mlt b/ecos/packages/hal/arm/ebsa285/current/include/pkgconf/mlt_arm_ebsa285_romram.mlt
new file mode 100644
index 0000000..5963c2c
--- /dev/null
+++ b/ecos/packages/hal/arm/ebsa285/current/include/pkgconf/mlt_arm_ebsa285_romram.mlt
@@ -0,0 +1,15 @@
+version 0
+region ram 0 1000000 0 !
+region rom 41000000 400000 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 1 0 1 heap1 heap1 !
+section heap1 0 8 0 0 0 0 0 0 !
+section pci_window 100000 1 0 0 1 0 1 0 f00000 f00000 !This is the memory area that is dual-ported to devices onthe PCI bus. Such devices can read and write this memory areaas their own. Examples include the EBSA-285 Ethernet driver, which receives and transmits packets via this memory area. It must be 1Mb aligned, so that the MMU initialization can arrange for it to be uncacheable.
+section rom_vectors 0 1 0 1 1 1 1 1 41000000 41000000 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 !
diff --git a/ecos/packages/hal/arm/ebsa285/current/include/plf_io.h b/ecos/packages/hal/arm/ebsa285/current/include/plf_io.h
new file mode 100644
index 0000000..21b5fb0
--- /dev/null
+++ b/ecos/packages/hal/arm/ebsa285/current/include/plf_io.h
@@ -0,0 +1,265 @@
+#ifndef CYGONCE_PLF_IO_H
+#define CYGONCE_PLF_IO_H
+
+//=============================================================================
+//
+// plf_io.h
+//
+// Platform specific IO support
+//
+//=============================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): hmt, jskov
+// Contributors: hmt, jskov
+// Date: 1999-08-09
+// Purpose: Intel EBSA285 PCI IO support macros
+// Description:
+// Usage: #include <cyg/hal/plf_io.h>
+//
+// Note: Based on information in
+// "21285 Core Logic for SA-110 Microprocessor"
+//####DESCRIPTIONEND####
+//
+//=============================================================================
+
+#include <pkgconf/hal_arm_ebsa285.h>
+
+#include <cyg/hal/hal_ebsa285.h>
+
+#include <cyg/hal/hal_io.h> // IO macros
+#include <cyg/hal/hal_platform_ints.h> // Interrupt vectors
+
+// Memory map is 1-1
+#define CYGARC_PHYSICAL_ADDRESS(_x_) (_x_)
+
+// The PCI resources required by the EBSA are hardcoded to the lowest
+// addresses in the PCI address space, thus:
+// PCI Memory Space
+#define EBSA_SDRAM_PCI_ADDR 0
+#define EBSA_SDRAM_PCI_SIZE (CYGHWR_HAL_ARM_EBSA285_PCI_MEM_MAP_SIZE)
+#define EBSA_CSR_MEM_PCI_ADDR (EBSA_SDRAM_PCI_SIZE)
+#define EBSA_CSR_MEM_PCI_SIZE 0x80
+// PCI IO Space
+#define EBSA_CSR_IO_PCI_ADDR 0
+#define EBSA_CSR_IO_PCI_SIZE 0x80
+
+// Incidentally I now understand why it's necessary to force PCI reset
+// (2000-08-07) - with RedBoot in ROM, the RAM app was unconditionally
+// reinitializing the PCI bus when it was already initialized, without
+// resetting it. We cannot play the same game here as with
+// hal_platform_setup.h - I tried - because otherwise the net cannot
+// re-initialize itself; the scan for devices fails.
+
+// Initialize the PCI bus.
+#define HAL_PCI_INIT() \
+ CYG_MACRO_START \
+ cyg_uint32 __tmp, __tmp2; \
+ \
+ /* Assert PCI_reset */ \
+ HAL_READ_UINT32(SA110_CONTROL, __tmp); \
+ __tmp &= ~SA110_CONTROL_RST_I; \
+ HAL_WRITE_UINT32(SA110_CONTROL, __tmp); \
+ \
+ /* Disable PCI Outbound interrupts */ \
+ /* (according to 7-14 SA110_OUT_INT_MASK is not accessible */ \
+ /* by SA-100) */ \
+ HAL_WRITE_UINT32(SA110_OUT_INT_STATUS, \
+ SA110_OUT_INT_STATUS_DOORBELL_INT \
+ |SA110_OUT_INT_STATUS_OUTBOUND_INT); \
+ \
+ /* Disable Doorbells */ \
+ HAL_WRITE_UINT32(SA110_DOORBELL_PCI_MASK, 0); \
+ HAL_WRITE_UINT32(SA110_DOORBELL_SA_MASK, 0); \
+ \
+ /* Map high PCI address bits to 0 */ \
+ HAL_WRITE_UINT32(SA110_PCI_ADDR_EXT, 0); \
+ \
+ /* Interrupt ID to 1 */ \
+ HAL_WRITE_UINT16(SA110_PCI_CFG_INT_LINE, 0x0100); \
+ \
+ /* Remove PCI_reset */ \
+ HAL_READ_UINT32(SA110_CONTROL, __tmp); \
+ __tmp |= SA110_CONTROL_RST_I; \
+ HAL_WRITE_UINT32(SA110_CONTROL, __tmp); \
+ \
+ /* Open a window to SDRAM from PCI address space */ \
+ HAL_WRITE_UINT32(SA110_SDRAM_BASE_ADDRESS_MASK, \
+ ((CYGHWR_HAL_ARM_EBSA285_PCI_MEM_MAP_SIZE-1) & 0xfffc0000)); \
+ HAL_WRITE_UINT32(SA110_SDRAM_BASE_ADDRESS_OFFSET, \
+ CYGHWR_HAL_ARM_EBSA285_PCI_MEM_MAP_BASE); \
+ \
+ /* Only init PCI if central function is set and */ \
+ /* standalone bit is cleared */ \
+ HAL_READ_UINT32(SA110_CONTROL, __tmp); \
+ HAL_READ_UINT32(SA110_XBUS_XCS2, __tmp2); \
+ if ((__tmp & SA110_CONTROL_CFN) == SA110_CONTROL_CFN \
+ && (__tmp2 & SA110_XBUS_XCS2_PCI_DISABLE) == 0) { \
+ \
+ /* Don't respond to any commands */ \
+ HAL_WRITE_UINT16(SA110_PCI_CFG_COMMAND, 0); \
+ \
+ /* Set up default addresses for board's resources. */ \
+ HAL_WRITE_UINT32(SA110_PCI_CFG_CSR_MEM_BAR, \
+ EBSA_CSR_MEM_PCI_ADDR); \
+ HAL_WRITE_UINT32(SA110_PCI_CFG_CSR_IO_BAR, EBSA_CSR_IO_PCI_ADDR);\
+ HAL_WRITE_UINT32(SA110_PCI_CFG_SDRAM_BAR, EBSA_SDRAM_PCI_ADDR); \
+ \
+ /* Respond to I/O space & Memory transactions. */ \
+ HAL_WRITE_UINT32(SA110_PCI_CFG_COMMAND, \
+ CYG_PCI_CFG_COMMAND_INVALIDATE \
+ |CYG_PCI_CFG_COMMAND_IO \
+ |CYG_PCI_CFG_COMMAND_MEMORY \
+ |CYG_PCI_CFG_COMMAND_MASTER); \
+ } \
+ /* Signal PCI_init_complete */ \
+ HAL_READ_UINT32(SA110_CONTROL, __tmp); \
+ __tmp |= SA110_CONTROL_INIT_COMPLETE; \
+ HAL_WRITE_UINT32(SA110_CONTROL, __tmp); \
+ \
+ CYG_MACRO_END
+
+
+// Compute address necessary to access PCI config space for the given
+// bus and device.
+#define HAL_PCI_CONFIG_ADDRESS( __bus, __devfn, __offset ) \
+ ({ \
+ cyg_uint32 __addr; \
+ cyg_uint32 __dev = CYG_PCI_DEV_GET_DEV(__devfn); \
+ if (0 == __bus) { \
+ if (0 == __dev) { \
+ /* Access self via CSR base */ \
+ __addr = SA110_CONTROL_STATUS_BASE; \
+ } else { \
+ /* Page 3-17, table 3-5: bits 15-11 generate PCI address */ \
+ __addr = SA110_PCI_CONFIG0_BASE | 0x00c00000 | (__dev << 11);\
+ } \
+ } else { \
+ __addr = SA110_PCI_CONFIG1_BASE | (__bus << 16) | (__dev << 11); \
+ } \
+ __addr |= CYG_PCI_DEV_GET_FN(__devfn) << 8; \
+ __addr |= __offset; \
+ __addr; \
+ })
+
+// Read a value from the PCI configuration space of the appropriate
+// size at an address composed from the bus, devfn and offset.
+#define HAL_PCI_CFG_READ_UINT8( __bus, __devfn, __offset, __val ) \
+ HAL_READ_UINT8(HAL_PCI_CONFIG_ADDRESS(__bus, __devfn, __offset), __val)
+
+#define HAL_PCI_CFG_READ_UINT16( __bus, __devfn, __offset, __val ) \
+ HAL_READ_UINT16(HAL_PCI_CONFIG_ADDRESS(__bus, __devfn, __offset), __val)
+
+#define HAL_PCI_CFG_READ_UINT32( __bus, __devfn, __offset, __val ) \
+ HAL_READ_UINT32(HAL_PCI_CONFIG_ADDRESS(__bus, __devfn, __offset), __val)
+
+// Write a value to the PCI configuration space of the appropriate
+// size at an address composed from the bus, devfn and offset.
+#define HAL_PCI_CFG_WRITE_UINT8( __bus, __devfn, __offset, __val ) \
+ HAL_WRITE_UINT8(HAL_PCI_CONFIG_ADDRESS(__bus, __devfn, __offset), __val)
+
+#define HAL_PCI_CFG_WRITE_UINT16( __bus, __devfn, __offset, __val ) \
+ HAL_WRITE_UINT16(HAL_PCI_CONFIG_ADDRESS(__bus, __devfn, __offset), __val)
+
+#define HAL_PCI_CFG_WRITE_UINT32( __bus, __devfn, __offset, __val ) \
+ HAL_WRITE_UINT32(HAL_PCI_CONFIG_ADDRESS(__bus, __devfn, __offset), __val)
+
+//-----------------------------------------------------------------------------
+// Resources
+
+// Map PCI device resources starting from these addresses in PCI space.
+#define HAL_PCI_ALLOC_BASE_MEMORY (EBSA_SDRAM_PCI_SIZE+EBSA_CSR_MEM_PCI_SIZE)
+#define HAL_PCI_ALLOC_BASE_IO (EBSA_CSR_IO_PCI_SIZE)
+
+// This is where the PCI spaces are mapped in the CPU's address space.
+#define HAL_PCI_PHYSICAL_MEMORY_BASE 0x80000000
+#define HAL_PCI_PHYSICAL_IO_BASE 0x7c000000
+
+// Translate the PCI interrupt requested by the device (INTA#, INTB#,
+// INTC# or INTD#) to the associated CPU interrupt (i.e., HAL vector).
+#define HAL_PCI_TRANSLATE_INTERRUPT( __bus, __devfn, __vec, __valid) \
+ CYG_MACRO_START \
+ cyg_uint8 __req; \
+ HAL_PCI_CFG_READ_UINT8(__bus, __devfn, CYG_PCI_CFG_INT_PIN, __req); \
+ if (0 != __req) { \
+ /* Interrupt assignment as 21285 sees them. (From */ \
+ /* EBSA285 Eval Board Reference Manual, 3.4 Interrupt Assignment) */ \
+ CYG_ADDRWORD __translation[4] = { \
+ CYGNUM_HAL_INTERRUPT_IRQ_IN_1, /* INTC# */ \
+ CYGNUM_HAL_INTERRUPT_IRQ_IN_0, /* INTB# */ \
+ CYGNUM_HAL_INTERRUPT_PCI_IRQ, /* INTA# */ \
+ CYGNUM_HAL_INTERRUPT_IRQ_IN_3}; /* INTD# */ \
+ \
+ /* The PCI lines from the different slots are wired like this */ \
+ /* on the PCI backplane: */ \
+ /* pin6A pin7B pin7A pin8B */ \
+ /* System Slot INTA# INTB# INTC# INTD# */ \
+ /* I/O Slot 1 INTB# INTC# INTD# INTA# */ \
+ /* I/O Slot 2 INTC# INTD# INTA# INTB# */ \
+ /* I/O Slot 3 INTD# INTA# INTB# INTC# */ \
+ /* I/O Slot 4 INTA# INTB# INTC# INTD# */ \
+ /* */ \
+ /* (From PCI Development Backplane, 3.2.2 Interrupts) */ \
+ /* */ \
+ /* Devsel signals are wired to, resulting in device IDs: */ \
+ /* I/O Slot 1 AD19 / dev 8 [(8+1)&3 = 1] */ \
+ /* I/O Slot 2 AD18 / dev 7 [(7+1)&3 = 0] */ \
+ /* I/O Slot 3 AD17 / dev 6 [(6+1)&3 = 3] */ \
+ /* I/O Slot 4 AD16 / dev 5 [(5+1)&3 = 2] */ \
+ /* */ \
+ /* (From PCI Development Backplane, 3.2.1 General) */ \
+ /* */ \
+ /* The observant reader will notice that the array does not */ \
+ /* match the table of how interrupts are wired. The array */ \
+ /* does however match observed behavior of the hardware: */ \
+ /* */ \
+ /* Observed interrupts with an Intel ethernet card */ \
+ /* put in the slots in turn and set to generate interrupts: */ \
+ /* slot 1/intA# (dev 8): caused host INTB# */ \
+ /* slot 2/intA# (dev 7): caused host INTC# */ \
+ /* slot 3/intA# (dev 6): caused host INTD# */ \
+ /* slot 4/intA# (dev 5): caused host INTA# */ \
+ \
+ __vec = __translation[((__req+CYG_PCI_DEV_GET_DEV(__devfn))&3)]; \
+ __valid = true; \
+ } else { \
+ /* Device will not generate interrupt requests. */ \
+ __valid = false; \
+ } \
+ CYG_MACRO_END
+
+//-----------------------------------------------------------------------------
+// end of plf_io.h
+#endif // CYGONCE_PLF_IO_H
diff --git a/ecos/packages/hal/arm/ebsa285/current/include/plf_stub.h b/ecos/packages/hal/arm/ebsa285/current/include/plf_stub.h
new file mode 100644
index 0000000..e384915
--- /dev/null
+++ b/ecos/packages/hal/arm/ebsa285/current/include/plf_stub.h
@@ -0,0 +1,84 @@
+#ifndef CYGONCE_HAL_PLF_STUB_H
+#define CYGONCE_HAL_PLF_STUB_H
+
+//=============================================================================
+//
+// plf_stub.h
+//
+// Platform header for GDB stub support.
+//
+//=============================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jskov
+// Contributors:jskov, gthomas
+// Date: 1999-04-21
+// Purpose: Platform HAL stub support for Intel EBSA285 boards.
+// Usage: #include <cyg/hal/plf_stub.h>
+//
+//####DESCRIPTIONEND####
+//
+//=============================================================================
+
+#include <pkgconf/hal.h>
+#include <pkgconf/hal_arm_ebsa285.h>
+
+#ifdef CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS
+
+#include <cyg/infra/cyg_type.h> // CYG_UNUSED_PARAM
+
+#include <cyg/hal/arm_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.
+#define HAL_STUB_PLATFORM_INIT() CYG_EMPTY_STATEMENT
+
+#endif // ifdef CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS
+//-----------------------------------------------------------------------------
+#endif // CYGONCE_HAL_PLF_STUB_H
+// End of plf_stub.h
diff --git a/ecos/packages/hal/arm/ebsa285/current/misc/STUBS_config b/ecos/packages/hal/arm/ebsa285/current/misc/STUBS_config
new file mode 100755
index 0000000..15a1b5d
--- /dev/null
+++ b/ecos/packages/hal/arm/ebsa285/current/misc/STUBS_config
@@ -0,0 +1,84 @@
+#! /bin/sh
+# Configure ARM/EBSA285 eCos to create GDB stubs
+# Ensure that PATH include the directory where the ARM 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 programming into flash.
+
+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=arm --platform=ebsa285 --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
+arm-elf-objcopy -O binary hal/common/current/src/stubrom/stubrom stubrom.bin
diff --git a/ecos/packages/hal/arm/ebsa285/current/misc/redboot_RAM.ecm b/ecos/packages/hal/arm/ebsa285/current/misc/redboot_RAM.ecm
new file mode 100644
index 0000000..36f1ad6
--- /dev/null
+++ b/ecos/packages/hal/arm/ebsa285/current/misc/redboot_RAM.ecm
@@ -0,0 +1,110 @@
+cdl_savefile_version 1;
+cdl_savefile_command cdl_savefile_version {};
+cdl_savefile_command cdl_savefile_command {};
+cdl_savefile_command cdl_configuration { description hardware template package };
+cdl_savefile_command cdl_package { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_component { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_option { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_interface { value_source user_value wizard_value inferred_value };
+
+cdl_configuration eCos {
+ description "" ;
+ hardware ebsa285 ;
+ template redboot ;
+ package -hardware CYGPKG_HAL_ARM current ;
+ package -hardware CYGPKG_HAL_ARM_EBSA285 current ;
+ package -hardware CYGPKG_IO_PCI current ;
+ package -hardware CYGPKG_DEVS_ETH_ARM_EBSA285 current ;
+ package -hardware CYGPKG_DEVS_ETH_INTEL_I82559 current ;
+ package -hardware CYGPKG_IO_SERIAL_ARM_EBSA285 current ;
+ package -hardware CYGPKG_DEVICES_WATCHDOG_ARM_EBSA285 current ;
+ package -hardware CYGPKG_DEVS_FLASH_EBSA285 current ;
+ package -template CYGPKG_HAL current ;
+ package -template CYGPKG_INFRA current ;
+ package -template CYGPKG_REDBOOT current ;
+ package -template CYGPKG_ISOINFRA current ;
+ package -template CYGPKG_LIBC_STRING current ;
+ package CYGPKG_NS_DNS current ;
+ package CYGPKG_IO_FLASH current ;
+ package CYGPKG_IO_ETH_DRIVERS current ;
+ package CYGPKG_MEMALLOC current ;
+ package CYGPKG_COMPRESS_ZLIB current ;
+};
+
+cdl_option CYGBLD_BUILD_GDB_STUBS {
+ user_value 0
+};
+
+cdl_option CYGFUN_LIBC_STRING_BSD_FUNCS {
+ inferred_value 0
+};
+
+cdl_option CYGNUM_HAL_COMMON_INTERRUPTS_STACK_SIZE {
+ user_value 4096
+};
+
+cdl_option CYGDBG_HAL_COMMON_INTERRUPTS_SAVE_MINIMUM_CONTEXT {
+ user_value 0
+};
+
+cdl_option CYGDBG_HAL_COMMON_CONTEXT_SAVE_MINIMUM {
+ inferred_value 0
+};
+
+cdl_option CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS {
+ inferred_value 1
+};
+
+cdl_option CYGDBG_HAL_DEBUG_GDB_BREAK_SUPPORT {
+ inferred_value 1
+};
+
+cdl_option CYGDBG_HAL_DEBUG_GDB_CTRLC_SUPPORT {
+ inferred_value 0
+};
+
+cdl_option CYGSEM_HAL_USE_ROM_MONITOR {
+ inferred_value 0 0
+};
+
+cdl_component CYG_HAL_STARTUP {
+ user_value RAM
+};
+
+cdl_component CYGBLD_BUILD_REDBOOT {
+ user_value 1
+};
+
+cdl_component CYGSEM_REDBOOT_BSP_SYSCALLS {
+ inferred_value 1
+};
+
+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_BSD_FUNCS_HEADER {
+ inferred_value 1 <cyg/libc/string/bsdstring.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_DNS_HEADER {
+ inferred_value 1 <cyg/ns/dns/dns.h>
+};
+
+cdl_option CYGPKG_NS_DNS_BUILD {
+ inferred_value 0
+};
+
+
diff --git a/ecos/packages/hal/arm/ebsa285/current/misc/redboot_ROM.ecm b/ecos/packages/hal/arm/ebsa285/current/misc/redboot_ROM.ecm
new file mode 100644
index 0000000..a8d6602
--- /dev/null
+++ b/ecos/packages/hal/arm/ebsa285/current/misc/redboot_ROM.ecm
@@ -0,0 +1,114 @@
+cdl_savefile_version 1;
+cdl_savefile_command cdl_savefile_version {};
+cdl_savefile_command cdl_savefile_command {};
+cdl_savefile_command cdl_configuration { description hardware template package };
+cdl_savefile_command cdl_package { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_component { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_option { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_interface { value_source user_value wizard_value inferred_value };
+
+cdl_configuration eCos {
+ description "" ;
+ hardware ebsa285 ;
+ template redboot ;
+ package -hardware CYGPKG_HAL_ARM current ;
+ package -hardware CYGPKG_HAL_ARM_EBSA285 current ;
+ package -hardware CYGPKG_IO_PCI current ;
+ package -hardware CYGPKG_DEVS_ETH_ARM_EBSA285 current ;
+ package -hardware CYGPKG_DEVS_ETH_INTEL_I82559 current ;
+ package -hardware CYGPKG_IO_SERIAL_ARM_EBSA285 current ;
+ package -hardware CYGPKG_DEVICES_WATCHDOG_ARM_EBSA285 current ;
+ package -hardware CYGPKG_DEVS_FLASH_EBSA285 current ;
+ package -template CYGPKG_HAL current ;
+ package -template CYGPKG_INFRA current ;
+ package -template CYGPKG_REDBOOT current ;
+ package -template CYGPKG_ISOINFRA current ;
+ package -template CYGPKG_LIBC_STRING current ;
+ package CYGPKG_NS_DNS current ;
+ package CYGPKG_IO_FLASH current ;
+ package CYGPKG_IO_ETH_DRIVERS current ;
+ package CYGPKG_MEMALLOC current ;
+ package CYGPKG_COMPRESS_ZLIB current ;
+};
+
+cdl_option CYGBLD_BUILD_GDB_STUBS {
+ user_value 0
+};
+
+cdl_option CYGFUN_LIBC_STRING_BSD_FUNCS {
+ inferred_value 0
+};
+
+cdl_option CYGNUM_HAL_COMMON_INTERRUPTS_STACK_SIZE {
+ user_value 4096
+};
+
+cdl_option CYGDBG_HAL_COMMON_INTERRUPTS_SAVE_MINIMUM_CONTEXT {
+ user_value 0
+};
+
+cdl_option CYGDBG_HAL_COMMON_CONTEXT_SAVE_MINIMUM {
+ inferred_value 0
+};
+
+cdl_option CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS {
+ inferred_value 1
+};
+
+cdl_option CYGDBG_HAL_DEBUG_GDB_BREAK_SUPPORT {
+ inferred_value 1
+};
+
+cdl_option CYGDBG_HAL_DEBUG_GDB_CTRLC_SUPPORT {
+ inferred_value 0
+};
+
+cdl_option CYGSEM_HAL_ROM_MONITOR {
+ inferred_value 1
+};
+
+cdl_option CYGSEM_HAL_USE_ROM_MONITOR {
+ inferred_value 0 0
+};
+
+cdl_component CYG_HAL_STARTUP {
+ user_value ROM
+};
+
+cdl_component CYGBLD_BUILD_REDBOOT {
+ user_value 1
+};
+
+cdl_component CYGSEM_REDBOOT_BSP_SYSCALLS {
+ inferred_value 1
+};
+
+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_BSD_FUNCS_HEADER {
+ inferred_value 1 <cyg/libc/string/bsdstring.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_DNS_HEADER {
+ inferred_value 1 <cyg/ns/dns/dns.h>
+};
+
+cdl_option CYGPKG_NS_DNS_BUILD {
+ inferred_value 0
+};
+
+
diff --git a/ecos/packages/hal/arm/ebsa285/current/misc/redboot_ROMRAM.ecm b/ecos/packages/hal/arm/ebsa285/current/misc/redboot_ROMRAM.ecm
new file mode 100644
index 0000000..1c158ea
--- /dev/null
+++ b/ecos/packages/hal/arm/ebsa285/current/misc/redboot_ROMRAM.ecm
@@ -0,0 +1,114 @@
+cdl_savefile_version 1;
+cdl_savefile_command cdl_savefile_version {};
+cdl_savefile_command cdl_savefile_command {};
+cdl_savefile_command cdl_configuration { description hardware template package };
+cdl_savefile_command cdl_package { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_component { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_option { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_interface { value_source user_value wizard_value inferred_value };
+
+cdl_configuration eCos {
+ description "" ;
+ hardware ebsa285 ;
+ template redboot ;
+ package -hardware CYGPKG_HAL_ARM current ;
+ package -hardware CYGPKG_HAL_ARM_EBSA285 current ;
+ package -hardware CYGPKG_IO_PCI current ;
+ package -hardware CYGPKG_DEVS_ETH_ARM_EBSA285 current ;
+ package -hardware CYGPKG_DEVS_ETH_INTEL_I82559 current ;
+ package -hardware CYGPKG_IO_SERIAL_ARM_EBSA285 current ;
+ package -hardware CYGPKG_DEVICES_WATCHDOG_ARM_EBSA285 current ;
+ package -hardware CYGPKG_DEVS_FLASH_EBSA285 current ;
+ package -template CYGPKG_HAL current ;
+ package -template CYGPKG_INFRA current ;
+ package -template CYGPKG_REDBOOT current ;
+ package -template CYGPKG_ISOINFRA current ;
+ package -template CYGPKG_LIBC_STRING current ;
+ package CYGPKG_NS_DNS current ;
+ package CYGPKG_IO_FLASH current ;
+ package CYGPKG_IO_ETH_DRIVERS current ;
+ package CYGPKG_MEMALLOC current ;
+ package CYGPKG_COMPRESS_ZLIB current ;
+};
+
+cdl_option CYGBLD_BUILD_GDB_STUBS {
+ user_value 0
+};
+
+cdl_option CYGFUN_LIBC_STRING_BSD_FUNCS {
+ inferred_value 0
+};
+
+cdl_option CYGNUM_HAL_COMMON_INTERRUPTS_STACK_SIZE {
+ user_value 4096
+};
+
+cdl_option CYGDBG_HAL_COMMON_INTERRUPTS_SAVE_MINIMUM_CONTEXT {
+ user_value 0
+};
+
+cdl_option CYGDBG_HAL_COMMON_CONTEXT_SAVE_MINIMUM {
+ inferred_value 0
+};
+
+cdl_option CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS {
+ inferred_value 1
+};
+
+cdl_option CYGDBG_HAL_DEBUG_GDB_BREAK_SUPPORT {
+ inferred_value 1
+};
+
+cdl_option CYGDBG_HAL_DEBUG_GDB_CTRLC_SUPPORT {
+ inferred_value 0
+};
+
+cdl_option CYGSEM_HAL_ROM_MONITOR {
+ inferred_value 1
+};
+
+cdl_option CYGSEM_HAL_USE_ROM_MONITOR {
+ inferred_value 0 0
+};
+
+cdl_component CYG_HAL_STARTUP {
+ user_value ROMRAM
+};
+
+cdl_component CYGBLD_BUILD_REDBOOT {
+ user_value 1
+};
+
+cdl_component CYGSEM_REDBOOT_BSP_SYSCALLS {
+ inferred_value 1
+};
+
+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_BSD_FUNCS_HEADER {
+ inferred_value 1 <cyg/libc/string/bsdstring.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_DNS_HEADER {
+ inferred_value 1 <cyg/ns/dns/dns.h>
+};
+
+cdl_option CYGPKG_NS_DNS_BUILD {
+ inferred_value 0
+};
+
+
diff --git a/ecos/packages/hal/arm/ebsa285/current/src/ebsa285_misc.c b/ecos/packages/hal/arm/ebsa285/current/src/ebsa285_misc.c
new file mode 100644
index 0000000..e991d0d
--- /dev/null
+++ b/ecos/packages/hal/arm/ebsa285/current/src/ebsa285_misc.c
@@ -0,0 +1,497 @@
+//==========================================================================
+//
+// ebsa285_misc.c
+//
+// HAL misc board support code for StrongARM EBSA285-1
+//
+//==========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//==========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): gthomas
+// Contributors: gthomas
+// Date: 1999-02-20
+// 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 CYGHWR_MEMORY_LAYOUT_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_if.h> // calling interface API
+#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_ebsa285.h> // Hardware definitions
+
+#include <cyg/infra/diag.h> // diag_printf
+
+#include <string.h> // memset
+
+/*
+ * Toggle LED for debugging purposes.
+ */
+/*
+ * EBSA-285 Soft I/O Register
+ */
+#define EBSA_285_SOFT_IO_REGISTER ((cyg_uint32 *)0x40012000)
+
+/*
+ * EBSA-285 Soft I/O Register Bit Field definitions
+ */
+#define EBSA_285_SOFT_IO_TOGGLE 0x80
+#define EBSA_285_SOFT_IO_RED_LED 0x04
+#define EBSA_285_SOFT_IO_GREEN_LED 0x02
+#define EBSA_285_SOFT_IO_AMBER_LED 0x01
+#define EBSA_285_SOFT_IO_J9_9_10_MASK 0x40
+#define EBSA_285_SOFT_IO_J9_11_12_MASK 0x20
+#define EBSA_285_SOFT_IO_J9_13_14_MASK 0x10
+#define EBSA_285_SOFT_IO_SWITCH_L_MASK 0x0F
+
+static void
+hal_bsp_mmu_init(int sdram_size);
+
+// Some initialization has already been done before we get here.
+//
+// Set up the interrupt environment.
+// Set up the MMU so that we can use caches.
+// Enable caches.
+// - All done!
+
+
+void hal_hardware_init(void)
+{
+ // Disable all interrupt sources:
+ *SA110_IRQCONT_IRQENABLECLEAR = 0xffffffff;
+ *SA110_IRQCONT_FIQENABLECLEAR = 0xffffffff; // including FIQ
+ // Disable the timers
+ *SA110_TIMER1_CONTROL = 0;
+ *SA110_TIMER2_CONTROL = 0;
+ *SA110_TIMER3_CONTROL = 0;
+ *SA110_TIMER4_CONTROL = 0;
+
+ *SA110_TIMER1_CLEAR = 0; // Clear any pending interrupt
+ *SA110_TIMER2_CLEAR = 0; // (Data: don't care)
+ *SA110_TIMER3_CLEAR = 0;
+ *SA110_TIMER4_CLEAR = 0;
+
+ // Let the timer run at a default rate (for delays)
+ hal_clock_initialize(CYGNUM_HAL_RTC_PERIOD);
+
+ // Set up MMU so that we can use caches
+ hal_bsp_mmu_init( hal_dram_size );
+
+ // Enable caches
+ HAL_DCACHE_ENABLE();
+ HAL_ICACHE_ENABLE();
+
+ // Set up eCos/ROM interfaces
+ hal_if_init();
+}
+
+// -------------------------------------------------------------------------
+// MMU initialization:
+
+static void
+hal_bsp_mmu_init(int sdram_size)
+{
+ unsigned long ttb_base = ((unsigned long)0x4000); // could be external
+ unsigned long i;
+
+ *EBSA_285_SOFT_IO_REGISTER = ~EBSA_285_SOFT_IO_RED_LED; // Red LED on
+
+
+// For if we assign the ttb base dynamically:
+// if ((ttb_base & ARM_TRANSLATION_TABLE_MASK) != ttb_base) {
+// // we cannot do this:
+// while ( 1 ) {
+// *EBSA_285_SOFT_IO_REGISTER = 0; // All LEDs on
+// for ( i = 100000; i > 0 ; i++ ) ;
+// *EBSA_285_SOFT_IO_REGISTER = 7; // All LEDs off
+// for ( i = 100000; i > 0 ; i++ ) ;
+//#ifdef CYG_HAL_STARTUP_RAM
+// return; // Do not bother looping forever...
+//#endif
+// }
+// }
+
+ /*
+ * 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);
+
+ /*
+ * We only do direct mapping for the EBSA board. That is, all
+ * virt_addr == phys_addr.
+ */
+
+ /*
+ * Actual Base = 0x000(00000)
+ * Virtual Base = 0x000(00000)
+ * Size = Max SDRAM
+ * SDRAM
+ */
+ for (i = 0x000; i < (sdram_size >> 20); i++) {
+ ARM_MMU_SECTION(ttb_base, i, i,
+ ARM_CACHEABLE, ARM_BUFFERABLE,
+ ARM_ACCESS_PERM_RW_RW);
+ }
+
+#ifdef CYGPKG_IO_PCI
+ /*
+ * Actual Base = CYGHWR_HAL_ARM_EBSA285_PCI_MEM_MAP_BASE
+ * Virtual Base = CYGHWR_HAL_ARM_EBSA285_PCI_MEM_MAP_BASE
+ * Size = CYGHWR_HAL_ARM_EBSA285_PCI_MEM_MAP_SIZE
+ * Memory accessible from PCI space. Overrides part of the above mapping.
+ */
+ for (i = CYGHWR_HAL_ARM_EBSA285_PCI_MEM_MAP_BASE >> 20;
+ i < ((CYGHWR_HAL_ARM_EBSA285_PCI_MEM_MAP_BASE+CYGHWR_HAL_ARM_EBSA285_PCI_MEM_MAP_SIZE) >> 20);
+ i++) {
+ ARM_MMU_SECTION(ttb_base, i, i,
+ ARM_UNCACHEABLE, ARM_UNBUFFERABLE,
+ ARM_ACCESS_PERM_RW_RW);
+ }
+#endif
+
+ /*
+ * Actual Base = 0x400(00000)
+ * Virtual Base = 0x400(00000)
+ * Size = 1M
+ * 21285 Registers
+ *
+ * Actual Base = 0x400(10000)
+ * Virtual Base = 0x400(10000)
+ * Size = 1M
+ * Soft I/O port and XBus IO
+ */
+ ARM_MMU_SECTION(ttb_base, 0x400, 0x400,
+ ARM_UNCACHEABLE, ARM_UNBUFFERABLE,
+ ARM_ACCESS_PERM_RW_RW);
+
+ /*
+ * Actual Base = 0x410(00000) - 0x413(FFFFF)
+ * Virtual Base = 0x410(00000) - 0x413(FFFFF)
+ * Size = 4M
+ * FLASH ROM
+ */
+ for (i = 0x410; i <= 0x413; i++) {
+ ARM_MMU_SECTION(ttb_base, i, i,
+ ARM_CACHEABLE, ARM_UNBUFFERABLE,
+ ARM_ACCESS_PERM_RW_RW);
+ }
+
+ /*
+ * Actual Base = 0x420(00000)
+ * Virtual Base = 0x420(00000)
+ * Size = 1M
+ * 21285 CSR Space
+ */
+ ARM_MMU_SECTION(ttb_base, 0x420, 0x420,
+ ARM_UNCACHEABLE, ARM_UNBUFFERABLE,
+ ARM_ACCESS_PERM_RW_RW);
+
+ /*
+ * Actual Base = 0x500(00000)-0x50F(FFFFF)
+ * Virtual Base = 0x500(00000)-0x50F(FFFFF)
+ * Size = 16M
+ * Zeros (Cache Clean) Bank
+ */
+ for (i = 0x500; i <= 0x50F; i++) {
+ ARM_MMU_SECTION(ttb_base, i, i,
+ ARM_CACHEABLE, ARM_BUFFERABLE,
+ ARM_ACCESS_PERM_RW_RW);
+ }
+
+ /*
+ * Actual Base = 0x780(00000)-0x78F(FFFFF)
+ * Virtual Base = 0x780(00000)-0x78F(FFFFF)
+ * Size = 16M
+ * Outbound Write Flush
+ */
+ for (i = 0x780; i <= 0x78F; i++) {
+ ARM_MMU_SECTION(ttb_base, i, i,
+ ARM_UNCACHEABLE, ARM_UNBUFFERABLE,
+ ARM_ACCESS_PERM_RW_RW);
+ }
+
+ /*
+ * Actual Base = 0x790(00000)-0x7C0(FFFFF)
+ * Virtual Base = 0x790(00000)-0x7C0(FFFFF)
+ * Size = 65M
+ * PCI IACK/Config/IO Space
+ */
+ for (i = 0x790; i <= 0x7C0; i++) {
+ ARM_MMU_SECTION(ttb_base, i, i,
+ ARM_UNCACHEABLE, ARM_UNBUFFERABLE,
+ ARM_ACCESS_PERM_RW_RW);
+ }
+
+ /*
+ * Actual Base = 0x800(00000) - 0xFFF(FFFFF)
+ * Virtual Base = 0x800(00000) - 0xFFF(FFFFF)
+ * Size = 2G
+ * PCI Memory Space
+ */
+ for (i = 0x800; i <= 0xFFF; i++) {
+ ARM_MMU_SECTION(ttb_base, i, i,
+ ARM_UNCACHEABLE, ARM_BUFFERABLE,
+ ARM_ACCESS_PERM_RW_RW);
+ }
+
+ *EBSA_285_SOFT_IO_REGISTER = ~EBSA_285_SOFT_IO_AMBER_LED; // AmberLED on
+
+}
+
+/*------------------------------------------------------------------------*/
+
+//
+// Memory layout
+//
+
+externC cyg_uint8 *
+hal_arm_mem_real_region_top( cyg_uint8 *regionend )
+{
+ CYG_ASSERT( hal_dram_size > 0, "Didn't detect DRAM size!" );
+ CYG_ASSERT( hal_dram_size <= 256<<20,
+ "More than 256MB reported - that can't be right" );
+
+ // is it the "normal" end of the DRAM region? If so, it should be
+ // replaced by the real size
+ if ( regionend ==
+ ((cyg_uint8 *)CYGMEM_REGION_ram + CYGMEM_REGION_ram_SIZE) ) {
+ regionend = (cyg_uint8 *)CYGMEM_REGION_ram + hal_dram_size;
+ }
+ return regionend;
+} // hal_arm_mem_real_region_top()
+
+
+
+// -------------------------------------------------------------------------
+static cyg_uint32 _period;
+
+void hal_clock_initialize(cyg_uint32 period)
+{
+ _period = period;
+
+ *SA110_TIMER3_CONTROL = 0; // Disable while we are setting up
+
+ *SA110_TIMER3_LOAD = period; // Reload value
+
+ *SA110_TIMER3_CLEAR = 0; // Clear any pending interrupt
+ // (Data: don't care)
+
+ *SA110_TIMER3_CONTROL = 0x000000cc; // Enable, Periodic (auto-reload),
+ // External clock (3.68MHz on irq_in_l[2] for Timer 3)
+
+ *SA110_TIMER3_CLEAR = 0; // Clear any pending interrupt again
+
+ // That's all.
+}
+
+// This routine is called during a clock interrupt.
+
+void hal_clock_reset(cyg_uint32 vector, cyg_uint32 period)
+{
+ *SA110_TIMER3_CLEAR = period; // Clear any pending interrupt (Data: don't care)
+}
+
+// Read the current value of the clock, returning the number of hardware
+// "ticks" that have occurred (i.e. how far away the current value is from
+// the start)
+
+void hal_clock_read(cyg_uint32 *pvalue)
+{
+ *pvalue = (cyg_uint32)(_period) - *SA110_TIMER3_VALUE;
+}
+
+//
+// Delay for some number of micro-seconds
+//
+void hal_delay_us(cyg_int32 usecs)
+{
+ int diff, diff2;
+ cyg_uint32 val1, val2;
+
+ while (usecs-- > 0) {
+ diff = 0;
+ val1 = *SA110_TIMER3_VALUE;
+ while (diff < 3) {
+ while ((val2 = *SA110_TIMER3_VALUE) == val1) ;
+ if (*SA110_TIMER3_LOAD) {
+ // A kernel is running, the counter may get reset as we watch
+ diff2 = val2 - val1;
+ if (diff2 < 0) diff2 += *SA110_TIMER3_LOAD;
+ diff += diff2;
+ } else {
+ diff += val2 - val1;
+ }
+ }
+ }
+}
+
+// -------------------------------------------------------------------------
+
+// This routine is called to respond to a hardware interrupt (IRQ). It
+// should interrogate the hardware and return the IRQ vector number.
+int hal_IRQ_handler(void)
+{
+ int sources;
+ int index;
+
+#if 0 // test FIQ and print alert if active - really for debugging
+ sources = *SA110_IRQCONT_FIQSTATUS;
+ if ( 0 != sources )
+ diag_printf( "FIQ source active!!! - fiqstatus %08x irqstatus %08x\n",
+ sources, *SA110_IRQCONT_IRQSTATUS );
+ else
+#endif // Scan FIQ sources also
+
+ sources = *SA110_IRQCONT_IRQSTATUS;
+
+// if we come to support FIQ properly...
+// if ( 0 == sources )
+// sources = *SA110_IRQCONT_FIQSTATUS;
+
+ // Nothing wrong with scanning them in the order provided...
+ // and it'll make the serial device steal fewer cycles.
+ // So, knowing this is an ARM:
+ if ( sources & 0xff )
+ index = 0;
+ else if ( sources & 0xff00 )
+ index = 8;
+ else if ( sources & 0xff0000 )
+ index = 16;
+ else // if ( sources & 0xff000000 )
+ index = 24;
+
+ do {
+ if ( (1 << index) & sources )
+ return index;
+ index++;
+ } while ( index & 7 );
+
+ return CYGNUM_HAL_INTERRUPT_NONE; // This shouldn't happen!
+}
+
+//
+// Interrupt control
+//
+
+void hal_interrupt_mask(int vector)
+{
+ *SA110_IRQCONT_IRQENABLECLEAR = 1 << vector;
+}
+
+void hal_interrupt_unmask(int vector)
+{
+ *SA110_IRQCONT_IRQENABLESET = 1 << vector;
+}
+
+void hal_interrupt_acknowledge(int vector)
+{
+ // Nothing to do here.
+}
+
+void hal_interrupt_configure(int vector, int level, int up)
+{
+ // No interrupts are configurable on this hardware
+}
+
+void hal_interrupt_set_level(int vector, int level)
+{
+ // No interrupts are configurable on this hardware
+}
+
+#include CYGHWR_MEMORY_LAYOUT_H
+typedef void code_fun(void);
+void ebsa285_program_new_stack(void *func)
+{
+ register CYG_ADDRESS stack_ptr asm("sp");
+ register CYG_ADDRESS old_stack asm("r4");
+ register code_fun *new_func asm("r0");
+ old_stack = stack_ptr;
+ stack_ptr = CYGMEM_REGION_ram + CYGMEM_REGION_ram_SIZE - sizeof(CYG_ADDRESS);
+ new_func = (code_fun*)func;
+ new_func();
+ stack_ptr = old_stack;
+ return;
+}
+
+/*------------------------------------------------------------------------*/
+// EOF ebsa285_misc.c
diff --git a/ecos/packages/hal/arm/ebsa285/current/src/hal_diag.c b/ecos/packages/hal/arm/ebsa285/current/src/hal_diag.c
new file mode 100644
index 0000000..bb06a4e
--- /dev/null
+++ b/ecos/packages/hal/arm/ebsa285/current/src/hal_diag.c
@@ -0,0 +1,536 @@
+/*=============================================================================
+//
+// hal_diag.c
+//
+// HAL diagnostic output code
+//
+//=============================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): nickg, gthomas
+// Contributors:nickg, gthomas
+// Date: 1998-03-02
+// Purpose: HAL diagnostic output
+// Description: Implementations of HAL diagnostic output support.
+//
+//####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_arch.h> // basic machine info
+#include <cyg/hal/hal_intr.h> // interrupt macros
+#include <cyg/hal/hal_io.h> // IO macros
+#include <cyg/hal/hal_if.h> // calling interface API
+#include <cyg/hal/hal_misc.h> // helper functions
+#include <cyg/hal/hal_diag.h>
+#include <cyg/hal/hal_ebsa285.h> // Hardware definitions
+#include <cyg/hal/drv_api.h> // cyg_drv_interrupt_acknowledge
+
+/*---------------------------------------------------------------------------*/
+
+struct ebsa_serial {
+ volatile cyg_uint32 data_register;
+ volatile cyg_uint32 rxstat;
+ volatile cyg_uint32 h_baud_control;
+ volatile cyg_uint32 m_baud_control;
+ volatile cyg_uint32 l_baud_control;
+ volatile cyg_uint32 control_register;
+ volatile cyg_uint32 flag_register;
+};
+
+/*---------------------------------------------------------------------------*/
+
+static void
+init_channel(void* __ch_data)
+{
+ volatile struct ebsa_serial* base = (struct ebsa_serial*)__ch_data;
+
+ int dummy;
+ /*
+ * Make sure everything is off
+ */
+ base->control_register = SA110_UART_DISABLED | SA110_SIR_DISABLED;
+
+ /*
+ * Read the RXStat to drain the fifo
+ */
+ dummy = base->rxstat;
+
+ /*
+ * Set the baud rate - this also turns the uart on.
+ *
+ * Note that the ordering of these writes is critical,
+ * and the writes to the H_BAUD_CONTROL and CONTROL_REGISTER
+ * are necessary to force the UART to update its register
+ * contents.
+ */
+ base->l_baud_control = 0x13; // bp->divisor_low;
+ base->m_baud_control = 0x00; // bp->divisor_high;
+ base->h_baud_control = SA110_UART_BREAK_DISABLED |
+ SA110_UART_PARITY_DISABLED |
+ SA110_UART_STOP_BITS_ONE |
+ SA110_UART_FIFO_ENABLED |
+ SA110_UART_DATA_LENGTH_8_BITS;
+ base->control_register = SA110_UART_ENABLED | SA110_SIR_DISABLED;
+ // All done
+}
+
+void
+cyg_hal_plf_serial_putc(void *__ch_data, char c)
+{
+ volatile struct ebsa_serial* base = (struct ebsa_serial*)__ch_data;
+ CYGARC_HAL_SAVE_GP();
+
+ // Wait for Tx FIFO not full
+ while ((base->flag_register & SA110_TX_FIFO_STATUS_MASK) == SA110_TX_FIFO_BUSY)
+ ;
+ base->data_register = c;
+
+ CYGARC_HAL_RESTORE_GP();
+}
+
+
+static cyg_bool
+cyg_hal_plf_serial_getc_nonblock(void* __ch_data, cyg_uint8* ch)
+{
+ volatile struct ebsa_serial* base = (struct ebsa_serial*)__ch_data;
+
+
+ if ((base->flag_register & SA110_RX_FIFO_STATUS_MASK) == SA110_RX_FIFO_EMPTY)
+ return false;
+
+ *ch = (char)(base->data_register & 0xFF);
+
+ 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;
+}
+
+static cyg_int32 msec_timeout;
+
+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;
+ cyg_bool res;
+ CYGARC_HAL_SAVE_GP();
+
+ delay_count = 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;
+ int ret = 0;
+ CYGARC_HAL_SAVE_GP();
+
+ switch (__func) {
+ case __COMMCTL_IRQ_ENABLE:
+ irq_state = 1;
+
+ HAL_INTERRUPT_UNMASK(CYGNUM_HAL_INTERRUPT_SERIAL_RX);
+ break;
+ case __COMMCTL_IRQ_DISABLE:
+ ret = irq_state;
+ irq_state = 0;
+
+ HAL_INTERRUPT_MASK(CYGNUM_HAL_INTERRUPT_SERIAL_RX);
+ break;
+ case __COMMCTL_DBG_ISR_VECTOR:
+ ret = CYGNUM_HAL_INTERRUPT_SERIAL_RX;
+ break;
+ case __COMMCTL_SET_TIMEOUT:
+ {
+ va_list ap;
+
+ va_start(ap, __func);
+
+ ret = msec_timeout;
+ 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 reg, res = 0;
+ volatile struct ebsa_serial* base = (struct ebsa_serial*)__ch_data;
+ char c;
+ CYGARC_HAL_SAVE_GP();
+
+ if ( CYGNUM_HAL_INTERRUPT_SERIAL_RX == __vector ) {
+ reg = base->flag_register;
+ // read it anyway just in case - no harm done and we might
+ // prevent an interrup loop
+ c = (char)(base->data_register & 0xFF);
+
+ cyg_drv_interrupt_acknowledge(CYGNUM_HAL_INTERRUPT_SERIAL_RX);
+ *__ctrlc = 0;
+ if ( (reg & SA110_RX_FIFO_STATUS_MASK) != SA110_RX_FIFO_EMPTY ) {
+ 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);
+
+ // Init channels
+ init_channel((void*)UART_BASE_0);
+
+ // 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, UART_BASE_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);
+
+ // 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();
+}
+
+
+//=============================================================================
+// Compatibility with older stubs
+//=============================================================================
+
+#ifndef CYGSEM_HAL_VIRTUAL_VECTOR_DIAG
+
+#ifdef CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS
+#include <cyg/hal/hal_stub.h> // cyg_hal_gdb_interrupt
+#endif
+
+#ifdef CYGSEM_HAL_ROM_MONITOR
+#define CYG_HAL_STARTUP_ROM
+#undef CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS
+#endif
+
+#if defined(CYG_HAL_STARTUP_ROM) || !defined(CYGDBG_HAL_DIAG_TO_DEBUG_CHAN)
+#define HAL_DIAG_USES_HARDWARE
+#endif
+
+/*---------------------------------------------------------------------------*/
+// EBSA285 Serial Port (UARTx) for Debug
+
+void hal_diag_init(void)
+{
+ init_channel((void*)UART_BASE_0);
+}
+
+
+// Actually send character down the wire
+static void
+hal_diag_write_char_serial(char c)
+{
+ cyg_hal_plf_serial_putc((void*)UART_BASE_0, c);
+}
+
+static bool
+hal_diag_read_serial(char *c)
+{
+ long timeout = 1000000000; // A long time...
+ while (! cyg_hal_plf_serial_getc_nonblock((void*)UART_BASE_0, c) )
+ if ( --timeout == 0 ) return false;
+
+ return true;
+}
+
+/*
+ * Baud rate selection stuff
+ */
+#if 0
+struct _baud {
+ int baud;
+ unsigned short divisor_high, divisor_low;
+};
+
+const static struct _baud bauds[] = {
+#if (FCLK_MHZ == 50)
+ { 300, 0xA, 0x2B}, /* 2603 = 0x0A2B */
+ { 600, 0x5, 0x15}, /* 1301 = 0x0515 */
+ { 1200, 0x2, 0x8A}, /* 650 = 0x028A */
+ { 2400, 0x1, 0x45}, /* 325 = 0x0145 */
+ { 4800, 0x0, 0xA2}, /* 162 = 0x00A2 */
+ { 9600, 0x0, 0x50}, /* 80 = 0x0050 */
+ { 19200, 0x0, 0x28}, /* 40 = 0x0028 */
+ { 38400, 0x0, 0x13}, /* 19 = 0x0013 */
+#elif (FCLK_MHZ == 60)
+ { 300, 0xC, 0x34}, /* 2603 = 0x0A2B */
+ { 600, 0x6, 0x19}, /* 1301 = 0x0515 */
+ { 1200, 0x3, 0x0C}, /* 650 = 0x028A */
+ { 2400, 0x1, 0x86}, /* 325 = 0x0145 */
+ { 4800, 0x0, 0xC2}, /* 162 = 0x00A2 */
+ { 9600, 0x0, 0x61}, /* 80 = 0x0050 */
+ { 19200, 0x0, 0x30}, /* 40 = 0x0028 */
+ { 38400, 0x0, 0x17}, /* 19 = 0x0013 */
+#endif
+};
+#endif
+
+#ifdef HAL_DIAG_USES_HARDWARE
+
+#ifdef DEBUG_DIAG
+#ifndef CYG_HAL_STARTUP_ROM
+#define DIAG_BUFSIZE 2048
+static char diag_buffer[DIAG_BUFSIZE];
+static int diag_bp = 0;
+#endif
+#endif
+
+void hal_diag_read_char(char *c)
+{
+ while (!hal_diag_read_serial(c)) ;
+}
+
+void hal_diag_write_char(char c)
+{
+#ifdef DEBUG_DIAG
+#ifndef CYG_HAL_STARTUP_ROM
+ diag_buffer[diag_bp++] = c;
+ if (diag_bp == sizeof(diag_buffer)) diag_bp = 0;
+#endif
+#endif
+ hal_diag_write_char_serial(c);
+}
+
+#else // not HAL_DIAG_USES_HARDWARE - it uses GDB protocol
+
+void
+hal_diag_read_char(char *c)
+{
+ while (!hal_diag_read_serial(c)) ;
+}
+
+void
+hal_diag_write_char(char c)
+{
+ static char line[100];
+ static int pos = 0;
+
+#if 0
+ // Do not unconditionally poke the XBUS LED location - XBUS may not be
+ // available if external arbiter is in use. This fragment may still be
+ // useful for debugging in the future, so left thus:
+ {
+// int i;
+ *(cyg_uint32 *)0x40012000 = 7 & (cyg_uint32)c; // LED XBUS location
+// for ( i = 0x1000000; i > 0; i-- ) ;
+ }
+#endif
+
+ // 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;
+#ifndef CYGDBG_HAL_DEBUG_GDB_CTRLC_SUPPORT
+ char c1;
+#endif
+ hal_diag_write_char_serial('$');
+ hal_diag_write_char_serial('O');
+ csum += 'O';
+ for( i = 0; i < pos; i++ )
+ {
+ char ch = line[i];
+ char h = hex[(ch>>4)&0xF];
+ char l = hex[ch&0xF];
+ hal_diag_write_char_serial(h);
+ hal_diag_write_char_serial(l);
+ csum += h;
+ csum += l;
+ }
+ hal_diag_write_char_serial('#');
+ hal_diag_write_char_serial(hex[(csum>>4)&0xF]);
+ hal_diag_write_char_serial(hex[csum&0xF]);
+
+#ifdef CYGDBG_HAL_DEBUG_GDB_CTRLC_SUPPORT
+
+ break; // regardless
+
+#else // not CYGDBG_HAL_DEBUG_GDB_CTRLC_SUPPORT Ie. usually...
+
+ // Wait for the ACK character '+' from GDB here and handle
+ // receiving a ^C instead. This is the reason for this clause
+ // being a loop.
+ if (!hal_diag_read_serial(&c1))
+ continue; // No response - try sending packet again
+
+ if( c1 == '+' )
+ break; // a good acknowledge
+
+#ifdef CYGDBG_HAL_DEBUG_GDB_BREAK_SUPPORT
+ cyg_drv_interrupt_acknowledge(CYGNUM_HAL_INTERRUPT_SERIAL_RX);
+ if( c1 == 3 ) {
+ // Ctrl-C: breakpoint.
+ cyg_hal_gdb_interrupt(
+ (target_register_t)__builtin_return_address(0) );
+ break;
+ }
+#endif // CYGDBG_HAL_DEBUG_GDB_BREAK_SUPPORT
+
+#endif // ! CYGDBG_HAL_DEBUG_GDB_CTRLC_SUPPORT
+ // 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
+
+ }
+}
+#endif
+
+#endif // !CYGSEM_HAL_VIRTUAL_VECTOR_DIAG
+
+/*---------------------------------------------------------------------------*/
+/* End of hal_diag.c */
diff --git a/ecos/packages/hal/arm/ebsa285/current/src/mem285.S b/ecos/packages/hal/arm/ebsa285/current/src/mem285.S
new file mode 100644
index 0000000..3ac15eb
--- /dev/null
+++ b/ecos/packages/hal/arm/ebsa285/current/src/mem285.S
@@ -0,0 +1,475 @@
+// #========================================================================
+// #
+// # mem285.S
+// #
+// # StrongARM EBSA-285 memory setup
+// #
+// #========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+// #========================================================================
+// ######DESCRIPTIONBEGIN####
+// #
+// # Author(s): Red Hat, hmt
+// # Contributors: Red Hat, hmt
+// # Date: 1999-07-05
+// # Purpose: StrongARM EBSA-285 SDRAM initialization
+// # Description: SDRAM Initialization for Intel(R) SA-110 21285 Companion
+// # Chip
+// # Intel is a Registered Trademark of Intel Corporation.
+// # Other Brands and Trademarks are the property of their
+// # respective owners.
+// #
+// #####DESCRIPTIONEND####
+// #
+// #========================================================================
+
+// .file "mem285.S"
+ .title "SDRAM Init for Intel(R) SA-110 21285 Companion Chip"
+
+#include <cyg/hal/hal_ebsa285.h>
+
+#include <pkgconf/system.h>
+
+ .text
+ .align 4
+
+#define ARRAY_0_MODE_REGISTER (SA110_SDRAM_ARRAY_0_MODE_REGISTER_BASE)
+#define ARRAY_1_MODE_REGISTER (SA110_SDRAM_ARRAY_1_MODE_REGISTER_BASE)
+
+#define MODE_REGISTER_STEP (ARRAY_1_MODE_REGISTER - ARRAY_0_MODE_REGISTER)
+
+ // [6:4] /CAS Latency is 2 (2)
+ // [ 3 ] Burst Type is 0, Sequential
+ // [2:0] Burst Length is 2, meaning 4
+#define SDRAM_MODE_REGISTER_SETUP 0x22
+ // Shifted left 2 because this is a word-address-offset!
+#define SDRAM_MODE_REGISTER_SETUP_OFFSET ((SDRAM_MODE_REGISTER_SETUP) << 2)
+
+
+#define SDRAM_TIMING_VALUE (SA110_SDRAM_ROW_PRECHARGE_2_CYCLES | \
+ SA110_SDRAM_LAST_DATA_IN_3_CYCLES | \
+ SA110_SDRAM_RAS_TO_CAS_DELAY_2_CYCLES | \
+ SA110_SDRAM_CAS_LATENCY_2_CYCLES | \
+ SA110_SDRAM_ROW_CYCLE_TIME_4_CYCLES | \
+ SA110_SDRAM_COMMAND_DRIVE_SAME_CYCLE)
+
+#define SDRAM_TIMING_VALUE_MIN (SDRAM_TIMING_VALUE | \
+ SA110_SDRAM_REFRESH_INTERVAL_MIN)
+
+#define SDRAM_TIMING_VALUE_NORMAL (SDRAM_TIMING_VALUE | \
+ SA110_SDRAM_REFRESH_INTERVAL_NORMAL)
+
+
+
+ /*
+ * This subroutine sizes and configures up to four banks of SDRAM DIMMs.
+ * It runs early without a stack.
+ *
+ * R0 - R9 are destroyed. All others preserved.
+ * Except r11 which is also destroyed.
+ *
+ */
+ .global __mem285_init
+__mem285_init:
+
+ /*
+ * First we find out whether the SDRAMs are already initialized,
+ * and if so, leave them alone. RAM start implies just do the
+ * sizing sums to return top of memory.
+ */
+ ldr r0, =SA110_CONTROL_STATUS_BASE
+
+#ifndef CYG_HAL_STARTUP_RAM
+ // This is conditional even in ROM start for
+ // a) testing ROM images eg. stubs in RAM really
+ // b) cooperation with eg. POST code, so we are not really at reset
+ ldr r0, =SA110_CONTROL_STATUS_BASE
+ ldr r1, [r0, #SA110_SDRAM_TIMING_o]
+ ldr r2, =SDRAM_TIMING_VALUE_NORMAL
+ cmps r1, r2
+ movne r11, #0
+ bne 12f
+#endif // ! defined CYG_HAL_STARTUP_RAM
+
+ // Add up the sizes and return in r0:
+ mov r1, #SA110_SDRAM_ADDRESS_SIZE_ARRAY_0_o
+ mov r2, #0
+ mov r3, #1
+ 1:
+ ldr r4, [r0, r1]
+ ands r4, r4, #7 // if zero, no mem here
+ addne r2, r2, r3, asl r4 // tot up array sizes (in 1/2 Megs)
+ add r1, r1, #4
+ cmps r1, #(SA110_SDRAM_ADDRESS_SIZE_ARRAY_3_o + 4)
+ blt 1b
+
+ mov r0, r2, asl #19 // get size into Mb
+ mov pc, lr
+
+#ifndef CYG_HAL_STARTUP_RAM
+
+ 12:
+ /*
+ * Write to the SDRAM Timing Register in the 21285. Disable
+ * refresh totally.
+ */
+ mov r1, #0
+ str r1, [r0, #SA110_SDRAM_TIMING_o]
+
+ // Disable each array
+ mov r1, #0
+ str r1, [r0, #SA110_SDRAM_ADDRESS_SIZE_ARRAY_0_o]
+ str r1, [r0, #SA110_SDRAM_ADDRESS_SIZE_ARRAY_1_o]
+ str r1, [r0, #SA110_SDRAM_ADDRESS_SIZE_ARRAY_2_o]
+ str r1, [r0, #SA110_SDRAM_ADDRESS_SIZE_ARRAY_3_o]
+
+ // Wait for 8 refresh cycles to complete
+ mov r1, #(9 * 32)
+ 1: subs r1, r1, #1
+ bpl 1b
+
+ /*
+ * Force an all-banks recharge on all four SDRAM arrays
+ *
+ * This code came from the SA-IOP ver 1.0 (3-16-98) spec pg 22
+ *
+ * You must access all four arrays regardless of whether there is
+ * memory there because the 21285 counts the precharge accesses and
+ * inhibits access to the SDRAM until all four have been done.
+ *
+ * An all banks rechargs is initiated by a read from any address
+ * in the mode register space.
+ */
+
+ mov r1, #3
+ mov r0, #ARRAY_0_MODE_REGISTER
+ 1:
+ ldr r2, [r0]
+ add r0, r0, #MODE_REGISTER_STEP
+ subs r1, r1, #1
+ bpl 1b
+
+ /*
+ * Now we need to write to the SDRAM Mode Register.
+ * The address is important, not the data. The mode register
+ * should be configured for a burst size of 4 with linear addressing
+ */
+ mov r1, #3
+ mov r0, #ARRAY_0_MODE_REGISTER
+ 1:
+ str r0, [r0, #SDRAM_MODE_REGISTER_SETUP_OFFSET]
+ add r0, r0, #MODE_REGISTER_STEP
+ subs r1, r1, #1
+ bpl 1b
+
+ /*
+ * Write to the SDRAM Timing Register in the 21285. Set the
+ * refresh interval to the minimum because we have to wait for
+ * 8 refresh cycles to complete before we can rely on the SDRAMs
+ * to be operating normally
+ */
+ ldr r0, =SA110_CONTROL_STATUS_BASE
+ ldr r1, =SDRAM_TIMING_VALUE_MIN
+ str r1, [r0, #SA110_SDRAM_TIMING_o]
+
+ // Disable each array
+ mov r1, #0
+ str r1, [r0, #SA110_SDRAM_ADDRESS_SIZE_ARRAY_0_o]
+ str r1, [r0, #SA110_SDRAM_ADDRESS_SIZE_ARRAY_1_o]
+ str r1, [r0, #SA110_SDRAM_ADDRESS_SIZE_ARRAY_2_o]
+ str r1, [r0, #SA110_SDRAM_ADDRESS_SIZE_ARRAY_3_o]
+
+ // Wait for 8 refresh cycles to complete
+ mov r1, #(9 * 32)
+ 1: subs r1, r1, #1
+ bpl 1b
+
+ // Now reset the Refresh interval to a sensible value
+ ldr r1, =SDRAM_TIMING_VALUE_NORMAL
+ str r1, [r0, #SA110_SDRAM_TIMING_o]
+
+ /* start out assuming 64M part with MUX mode 2 */
+ mov r1, #(SA110_SDRAM_SIZE_64MB | SA110_SDRAM_MUX_MODE2)
+ str r1, [r0, #SA110_SDRAM_ADDRESS_SIZE_ARRAY_0_o]
+ add r1, r1, #(64 << 20) // Add 64Mb
+ str r1, [r0, #SA110_SDRAM_ADDRESS_SIZE_ARRAY_1_o]
+ add r1, r1, #(64 << 20) // Add 64Mb again
+ str r1, [r0, #SA110_SDRAM_ADDRESS_SIZE_ARRAY_2_o]
+ add r1, r1, #(64 << 20) // Add 64Mb and again
+ str r1, [r0, #SA110_SDRAM_ADDRESS_SIZE_ARRAY_3_o]
+
+ /*
+ * First, try to figure out which banks are populated and
+ * the real mux mode for those banks.
+ *
+ * At this point:
+ * r0 - Base of control/status registers
+ *
+ * Register usage:
+ * r8 - offset to SDRAM addr/size register
+ * r5 - pattern
+ * r4 - inverse pattern
+ * r3 - scratch/mux mode output
+ * r2 - scratch offset
+ * r1 - base address of 64M block in consideration
+ * r0 - base address of control register sets
+ */
+ mov r8, #SA110_SDRAM_ADDRESS_SIZE_ARRAY_0_o
+ mov r1, #0
+
+ ldr r5, =0x12345678
+ mvn r4, r5
+
+ 20:
+ str r5, [r1] // Offset 0 should work regardless
+ str r4, [r1, #4] // put something else on the data bus
+ ldr r3, [r1] // read back original
+ cmps r3, r5
+
+ // If we didn't read pattern, then no memory present
+ movne r3, #0
+ strne r3, [r0, r8] // write to addr/size register
+ bne 49f // straight to next loop
+
+ /*
+ * This bank is populated, so try to determine mux mode.
+ * All banks are currently set for mux mode 2.
+ */
+
+ // A21 having no effect distinguishes the need for mux mode 0.
+ str r5, [r1]
+ mov r2, #(1 << 21)
+ str r4, [r1, r2] // Store bad value at A21 mirror address
+ // expect to trash value at r1 if mode 0
+ ldr r3, [r1]
+ cmps r3, r5
+ // If we don't read back pattern, then its mux mode 0
+
+ // Force to 32M size to include A18 when sizing:
+ movne r3, #(SA110_SDRAM_SIZE_32MB | SA110_SDRAM_MUX_MODE0)
+ bne 2f
+
+ // A23 having effect distinguishes the need for mux mode 2.
+ str r5, [r1]
+ mov r2, #(1 << 23)
+ str r4, [r1, r2] // Store bad value at A23 mirror address
+ // expect to preserve value at r1 if mode 2
+ ldr r3, [r1]
+ cmps r3, r5
+ // if pattern still there, then mode 2
+ moveq r3, #(SA110_SDRAM_SIZE_64MB | SA110_SDRAM_MUX_MODE2)
+ beq 2f
+
+ // A22 having effect distinguishes the need for mux mode 4.
+ str r5, [r1]
+ mov r2, #(1 << 22)
+ str r4, [r1, r2] // Store bad value at A22 mirror address
+ // expect to preserve value at r1 if mode 4
+ ldr r3, [r1]
+ cmps r3, r5
+ // if pattern A still there, then mode 4
+ moveq r3, #(SA110_SDRAM_SIZE_64MB | SA110_SDRAM_MUX_MODE4)
+ beq 2f
+
+ /*
+ * At this point it is either mode 1 or 3. There is no clear cut
+ * test to differentiate the two, so make a best guess now, then
+ * correct later (if necessary) while sizing the bank.
+ */
+
+ // NB the bank is still in mux mode 2, so A24 is fed to the wire for
+ // A22 (mode 1) or no-connection (mode 3); so:
+ // A24 having effect distinguishes the need for mux mode 1
+ // A24 having no effect distinguishes the need for mux mode 3
+ str r5, [r1]
+ mov r2, #(1 << 24)
+ str r4, [r1, r2]
+ ldr r3, [r1]
+ cmps r3, r5
+ // If pattern, try mode 1
+ moveq r3, #(SA110_SDRAM_SIZE_64MB | SA110_SDRAM_MUX_MODE1)
+ // otherwise, try mode 3
+ movne r3, #(SA110_SDRAM_SIZE_64MB | SA110_SDRAM_MUX_MODE3)
+
+ bne 2f
+
+ 2:
+ orr r3, r3, r1 // add in base address
+ str r3, [r0, r8] // write to addr/size register
+
+ /*
+ * Now that mux mode for this array is (hopefully) setup, we can try
+ * to size this SDRAM array.
+ *
+ * Register usage:
+ * r8 - offset to current size/mode register
+ * r1 - offset to current base (in 64M blocks)
+ * r0 - base address of control register sets
+ */
+
+ mov r4, #(63 << 20) // 63Mb to start with
+ 1: str r4, [r1, r4]
+ subs r4, r4, #(1 << 20) // go down in increments of 1Mb
+ bpl 1b
+
+ str r4, [r1, #4] // change pattern on data bus
+
+ // search for first unexpected data in ascending order
+ mov r4, #0
+ 1:
+ ldr r5, [r1, r4]
+ cmps r5, r4
+ bne 23f // different so end of array
+ add r4, r4, #(1 << 20) // go up in increments of 1Mb
+ cmps r4, #(64 << 20)
+ blt 1b
+ // fall-through assumes it is a 64Mb device
+ 23:
+ movs r4, r4, lsr #20 // get a plain number of Mb
+ // if this gave a zero, maybe we were mistaken about the RAM
+ // working earlier: disable this bank.
+ streq r4, [r0, r8] // write to addr/size register
+ beq 49f // straight to next loop
+
+ // apparently, mode 3 devices *must* be 8Mb; if we got a different
+ // answer, set it to mode 1 and go back to try again:
+ cmps r4, #8
+ beq 4f
+
+ // skip if 8Mb; we are happy
+ ldr r3, [r0, r8] // read in the mode we set
+ and r3, r3, #SA110_SDRAM_MUX_MODE_MASK
+ cmp r3, #SA110_SDRAM_MUX_MODE3
+ // Must be misconfigured mux mode. Set to mode 1 and retry
+ moveq r3, #(SA110_SDRAM_SIZE_64MB | SA110_SDRAM_MUX_MODE1)
+ beq 2b
+ // not mux mode 3; drop though OK
+
+ 4:
+ // convert MB size to register size val
+ mov r5, #0
+ mov r3, r4
+ 5: movs r3, r3, lsr #1
+ add r5, r5, #1
+ bcc 5b
+
+ // Double check that the size was a power of 2
+ mov r6, #1
+ mov r6, r6, lsl r5 // should get Mb count back doubled
+ cmps r6, r4, lsl #1 // compare with doubled
+ movne r5, #0 // disable this bank
+ ldr r3, [r0, r8] // Load current setting
+ bic r3, r3, #7
+ orr r3, r3, r5 // insert the correct size code
+ str r3, [r0, r8] // into the control register
+
+ 49:
+ add r8, r8, #4 // next addr/size register
+ add r1, r1, #(64<<20) // next array
+ cmps r1, #(256<<20) // top address + 1 bank
+ blt 20b
+ // END of main loop to size all 4 DRAM banks
+
+ /*
+ * At this point, the size values are all in the control registers.
+ *
+ * We want to set memory up to be contiguous. Since the
+ * banks' base address needs to be naturally aligned, we
+ * need to sort the bank sizes from large to small.
+ *
+ * Register usage:
+ * r0 - base address of control register sets
+ * r1 - bitmap of which slots we have covered in toto
+ * r2 - cumulative base address of mapped SDRAM
+ * r3 - biggest size code this pass
+ * r4 - bit index of current slot
+ * r5 - bit index of biggest slot found this pass
+ * r6 - scratch control reg contents
+ * r7 - scratch size code
+ * r8 - address of current slot's control register
+ * r9 - address of biggest slot found's control register
+ */
+ mov r1, #0 // bitmap of which we have covered
+ mov r2, #0 // cumulative base address
+ // do... until there are no more slots to deal with
+ 70:
+ mov r3, #0 // biggest this pass
+ mov r4, #1 // bit index of current slot
+ mov r5, #0 // bit index of biggest slot found
+ mov r8, #SA110_SDRAM_ADDRESS_SIZE_ARRAY_0_o
+ mov r9, #0 // address of biggest slot found
+ // Foreach slot we have not yet dealt with
+ 75:
+ tst r4, r1
+ bne 88f
+ ldr r6, [r0, r8]
+ and r7, r6, #7
+ cmps r7, r3
+ movgt r3, r7 // save biggest's size
+ movgt r5, r4 // save biggest's index
+ movgt r9, r8 // save biggest's reg address
+ 88:
+ mov r4, r4, asl #1
+ add r8, r8, #4
+ cmps r4, #0x10
+ blt 75b // next slot
+ // Did we find a largest slot?
+ cmps r5, #0
+ beq 95f // No! Finished
+
+ orr r1, r1, r5 // can forget r4 and r5 now
+ ldr r6, [r0, r9] // get the control register
+ bic r6, r6, #0x0ff00000 // clear base address bits
+ orr r6, r6, r2 // insert base address to use
+ str r6, [r0, r9] // store the new control register
+ mov r6, #1
+ mov r6, r6, asl r3
+ mov r6, r6, asl #19 // 1 << (size-code + 19) is size
+ add r2, r2, r6 // increment the cumulating address
+
+ b 70b // go look for the next one
+
+ 95: // all done!
+ // at this point, r2 contains the top of memory.
+ // (r11 is the value from last time or zero if first time)
+
+ cmps r11, r2 // Same answer as last time?
+ movne r11, r2 // if not, save memsize
+ bne 12b // ...and try again.
+
+ mov r0, r2
+ mov pc, lr
+#endif // ! defined CYG_HAL_STARTUP_RAM
+//FUNC_END __mem285_init
+
+/* EOF mem285.S */
diff --git a/ecos/packages/hal/arm/ebsa285/current/support/README b/ecos/packages/hal/arm/ebsa285/current/support/README
new file mode 100644
index 0000000..fa2442c
--- /dev/null
+++ b/ecos/packages/hal/arm/ebsa285/current/support/README
@@ -0,0 +1,9 @@
+
+The support directory provides tools for programming a ROM startup eCos
+applications into the FLASH memory of the EBSA-285.
+
+Support for LINUX users is in the "linux" directory, in the safl_util
+directory therein. Either make in situ or (if your eCos repository is
+read-only) copy its contents to a scratch directory and type make.
+
+
diff --git a/ecos/packages/hal/arm/ebsa285/current/support/linux/README b/ecos/packages/hal/arm/ebsa285/current/support/linux/README
new file mode 100644
index 0000000..7feb01d
--- /dev/null
+++ b/ecos/packages/hal/arm/ebsa285/current/support/linux/README
@@ -0,0 +1,8 @@
+
+The safl_util directory supports flashing Intel(R) StrongARM(R)
+Evaluation Boards (EBSA-285 and SA-IOP) over the PCI bus of a PC
+running Linux.
+
+Intel is a Registered Trademark of Intel Corporation.
+StrongARM is a Registered Trademark of Advanced RISC Machines Limited.
+Other Brands and Trademarks are the property of their respective owners.
diff --git a/ecos/packages/hal/arm/ebsa285/current/support/linux/safl_util/Makefile b/ecos/packages/hal/arm/ebsa285/current/support/linux/safl_util/Makefile
new file mode 100644
index 0000000..d7fa326
--- /dev/null
+++ b/ecos/packages/hal/arm/ebsa285/current/support/linux/safl_util/Makefile
@@ -0,0 +1,13 @@
+
+all: safl.o sa_flash
+
+safl.o: safl.c
+ cc -DMODULE -D__KERNEL__ -Wall -Wstrict-prototypes -O6 -c safl.c \
+ `[ -f /usr/include/linux/modversions.h ] && echo -DMODVERSIONS`
+
+sa_flash: sa_flash.c
+ cc -g -O2 -Wall sa_flash.c -o sa_flash
+
+clean:
+ rm -f *.o sa_flash core
+
diff --git a/ecos/packages/hal/arm/ebsa285/current/support/linux/safl_util/README b/ecos/packages/hal/arm/ebsa285/current/support/linux/safl_util/README
new file mode 100644
index 0000000..361dbd7
--- /dev/null
+++ b/ecos/packages/hal/arm/ebsa285/current/support/linux/safl_util/README
@@ -0,0 +1,42 @@
+
+This directory contains support for flashing Intel(R) StrongARM(R)
+Evaluation Boards (EBSA-285 and SA-IOP) over the PCI bus of a PC
+running Linux.
+
+There are two parts to this support: a loadable kernel module
+and the flash utility.
+
+The loadable kernel module is safl.o and the utility is
+sa_flash.
+
+To build:
+
+ * cd to this directory.
+ * make
+
+This builds safl.o and sa_flash. The kernel module must be
+installed and a device file created for it. Both of these
+operations require root permissions.
+
+Install the module by:
+
+ % insmod safl.o
+
+Create the device file by:
+
+ % mknod /dev/safl c 10 178
+
+
+Then, to flash an image onto the eval board:
+
+ % sa_flash image_file
+
+
+The eval boards must be configured for blank programming before
+flashing them. The image is placed in the flash boot sector.
+
+
+
+Intel is a Registered Trademark of Intel Corporation.
+StrongARM is a Registered Trademark of Advanced RISC Machines Limited.
+Other Brands and Trademarks are the property of their respective owners.
diff --git a/ecos/packages/hal/arm/ebsa285/current/support/linux/safl_util/sa_flash.c b/ecos/packages/hal/arm/ebsa285/current/support/linux/safl_util/sa_flash.c
new file mode 100644
index 0000000..d7f701e
--- /dev/null
+++ b/ecos/packages/hal/arm/ebsa285/current/support/linux/safl_util/sa_flash.c
@@ -0,0 +1,366 @@
+
+#include <stdio.h>
+#include <unistd.h>
+#include <stdlib.h>
+#include <fcntl.h>
+#include <errno.h>
+#include <sys/mman.h>
+#include <sys/ioctl.h>
+
+#define FLASH_SZ (4 * 1024 * 1024)
+#define FLASH_BLOCK_SZ (256 * 1024)
+
+volatile void *flash_base;
+int driver_fd;
+
+/*
+ * sync PCI transactions
+ */
+static void
+pci_sync(void)
+{
+ volatile unsigned int x;
+
+ x = *(unsigned int *)flash_base;
+}
+
+static void
+flash_write_mode(void)
+{
+ pci_sync();
+ *(volatile int *)flash_base = 0x40404040;
+}
+
+
+static void
+flash_normal_mode(void)
+{
+ pci_sync();
+ *(volatile int *)flash_base = 0xffffffff;
+}
+
+
+/*
+ * Check to see if there is some flash at the location specified.
+ */
+static int
+flash_verify(void)
+{
+ volatile unsigned int *fp = (volatile unsigned int *)flash_base;
+ unsigned int mfg, id ;
+
+ flash_normal_mode();
+
+ /* read the manufacturer's id. */
+ pci_sync();
+ *fp = 0x90909090;
+ mfg = *fp;
+
+ if (mfg != 0x89898989) {
+ flash_normal_mode();
+ return 0;
+ }
+
+ id = *(fp + 1) ;
+
+ flash_normal_mode();
+
+ if (id < 0xA1A1A1A1)
+ return 0;
+
+ return 1;
+}
+
+
+static unsigned int
+flash_read_dword(int offset)
+{
+ /* swap initial 32 byte blocks when accessing flash from PCI */
+ if (offset < 32)
+ offset += 32;
+ else if (offset < 64)
+ offset -= 32;
+
+ offset &= ~3; /* dword alignment */
+
+ return *(volatile unsigned int *)(flash_base + offset);
+}
+
+
+static int
+flash_write_dword(int offset, unsigned int data)
+{
+ volatile unsigned int *fp;
+ int status;
+
+ /* swap initial 32 byte blocks when accessing flash from PCI */
+ if (offset < 32)
+ offset += 32;
+ else if (offset < 64)
+ offset -= 32;
+
+ offset &= ~3; /* dword alignment */
+
+ fp = (volatile unsigned int *)(flash_base + offset) ;
+
+ flash_write_mode();
+
+ /* write the data */
+ *fp = data;
+
+ /* wait till done */
+ do {
+ pci_sync();
+ *fp = 0x70707070;
+ status = *fp;
+ } while ((status & 0x80808080) != 0x80808080);
+
+ *fp = 0x50505050; /* Clear status register */
+ flash_normal_mode();
+
+ if ( (status & 0x02020202) != 0) {
+ fprintf(stderr,"WRITE LOCKED %08x :", status);
+ return 0;
+ }
+ if ( (status & 0x10101010) != 0) {
+ fprintf(stderr,"WRITE FAILURE %08x :", status);
+ return 0;
+ }
+ return 1;
+}
+
+
+static int
+flash_erase_block(int block)
+{
+ volatile unsigned int *fp;
+ int status;
+
+ fp = (volatile unsigned int *)(flash_base + (block * FLASH_BLOCK_SZ));
+
+ /* write delete block command followed by confirm */
+ pci_sync();
+ *fp = 0x20202020;
+ pci_sync();
+ *fp = 0xd0d0d0d0;
+
+ /* wait till done */
+ do {
+ pci_sync();
+ *fp = 0x70707070;
+ status = *fp;
+ } while ((status & 0x80808080) != 0x80808080);
+
+ *fp = 0x50505050; /* Clear status register */
+ flash_normal_mode();
+
+ if ( (status & 0x02020202) != 0) {
+ fprintf(stderr,"ERASE LOCKED %08x :", status);
+ return 0;
+ }
+ if ( (status & 0x20202020) != 0) {
+ fprintf(stderr,"ERASE FAILURE %08x :", status);
+ return 0;
+ }
+
+ return 1;
+}
+
+
+int
+main(int argc, char *argv[])
+{
+ int in_fd = STDIN_FILENO, i=0, got, offset, extra;
+ int buf[256];
+ int fw = 1, fv = 1, fr = 0, verbose = 0;
+ char *name = NULL;
+ int block = 0;
+
+ if ( argc > 2 ) {
+ if ( '-' == argv[1][0] && 'b' == argv[1][1] && 0 == argv[1][3] ) {
+ char c = argv[1][2];
+ if ( '0' <= c && c <= '9') block = c - '0';
+ else if ( 'a' <= c && c <= 'f') block = c - 'a' + 10;
+ else if ( 'A' <= c && c <= 'F') block = c - 'A' + 10;
+ else argc = 1; /* get usage message below */
+ argv++, argc--;
+ }
+ }
+
+ switch (argc) {
+ case 1:
+ in_fd = STDIN_FILENO;
+ fv = 0; /* Cannot rewind stdin, so do not verify */
+ break;
+ case 2:
+ if ( '-' == argv[1][0] ) {
+ if ( 'r' != argv[1][1] || 0 != argv[1][2]) goto usage;
+ fr = 1;
+ fw = fv = 0;
+ break;
+ }
+ name = argv[1];
+ in_fd = open(argv[1], O_RDONLY);
+ if (in_fd < 0) {
+ fprintf(stderr, "Can't open %s", argv[1]);
+ perror(": ");
+ exit(1);
+ }
+ break;
+ case 3:
+ if ( '-' != argv[1][0] || 0 != argv[1][2]) goto usage;
+ if ( 'v' == argv[1][1] ) fw = 0;
+ else if ( 'V' == argv[1][1] ) fw = 0, verbose = 1;
+ else if ( 'w' == argv[1][1] ) fv = 0;
+ else goto usage;
+
+ name = argv[2];
+ in_fd = open(argv[2], O_RDONLY);
+ if (in_fd < 0) {
+ fprintf(stderr, "Can't open %s", argv[2]);
+ perror(": ");
+ exit(1);
+ }
+ break;
+ default:
+ usage:
+ fprintf(stderr, "Usage: sa_flash [filename]\n");
+ fprintf(stderr, "Block number: sa_flash -bN [filename]\n");
+ fprintf(stderr, "Write only: sa_flash [-bN] -w filename\n");
+ fprintf(stderr, "Verify only: sa_flash [-bN] -v|-V filename\n");
+ fprintf(stderr, "Read to stdout: sa_flash [-bN] -r\n");
+ exit(1);
+ }
+
+ driver_fd = open("/dev/safl", O_RDWR);
+ if (driver_fd < 0) {
+ perror("Can't open device: ");
+ exit (1);
+ }
+
+ flash_base = mmap(NULL, FLASH_SZ, PROT_READ|PROT_WRITE,
+ MAP_SHARED, driver_fd, 0);
+
+ if (flash_base == NULL) {
+ perror("mmap failed: ");
+ close(driver_fd);
+ return 0;
+ }
+
+ if (!flash_verify()) {
+ fprintf(stderr, "Couldn't find flash.\n");
+ exit(1);
+ }
+
+ if ( fw ) {
+ if ( ! flash_erase_block(block) ) {
+ fprintf(stderr,"Erase error block %x\n", block);
+ exit(1);
+ }
+
+ extra = 0;
+ offset = block * FLASH_BLOCK_SZ;
+ while ((got = read(in_fd, ((char *)buf) + extra, sizeof(buf) - extra)) > 0) {
+ got += extra;
+
+ extra = got & 3;
+ got /= 4;
+ for (i = 0; i < got; ++i, offset += 4)
+ if ( ! flash_write_dword(offset, buf[i]) )
+ fprintf(stderr,"Write error offset %06x\n",offset);
+
+ if (extra)
+ buf[0] = buf[i];
+
+ printf("*"); fflush(stdout);
+ }
+ if (extra)
+ if ( ! flash_write_dword(offset, buf[i]) )
+ fprintf(stderr,"Write error offset %06x\n",offset);
+ printf("\n");
+ }
+
+ flash_normal_mode();
+
+ if ( fv ) {
+ int badwords = 0;
+ int skipping = 0;
+ close( in_fd );
+ in_fd = open(name, O_RDONLY);
+ if (in_fd < 0) {
+ fprintf(stderr, "Can't re-open %s", argv[2]);
+ perror(": ");
+ exit(1);
+ }
+
+ extra = 0;
+ offset = block * FLASH_BLOCK_SZ;
+ while ((got = read(in_fd, ((char *)buf) + extra, sizeof(buf) - extra)) > 0) {
+ got += extra;
+
+ extra = got & 3;
+ got /= 4;
+ for (i = 0; i < got; ++i, offset += 4) {
+ int data = flash_read_dword(offset);
+ if ( data != buf[i] ) {
+ badwords++;
+ if ( !skipping ) {
+ fprintf(stderr, "Bad data at offset %06x: %08x read %08x wanted\n",
+ offset, data, buf[i] );
+ if ( !verbose && badwords > 15 ) {
+ skipping = 1;
+ fprintf(stderr, "(Too many errors, skipping...)\n");
+ }
+ }
+ }
+ }
+ if (extra)
+ buf[0] = buf[i];
+
+ printf("+"); fflush(stdout);
+ }
+ if (extra) {
+ int data = flash_read_dword(offset);
+ if ( data != buf[0] ) {
+ fprintf(stderr, "End data at offset %06x: %08x read %08x wanted\n",
+ offset, data, buf[0] );
+ }
+ }
+ printf("\n");
+ if ( badwords )
+ fprintf(stderr, "Bad data: %d bad words out of %d (end offset %06x)\n",
+ badwords, offset/4, offset );
+ }
+
+ flash_normal_mode();
+
+ if ( fr ) {
+ for ( offset = block * FLASH_BLOCK_SZ;
+ offset < (block+1) * FLASH_BLOCK_SZ;
+ offset += 4 ) {
+ for ( i = 0; i < (sizeof(buf)/sizeof(int)); ++i, offset += 4 ) {
+ buf[i] = flash_read_dword(offset);
+ }
+ if ( sizeof(buf) != write( STDOUT_FILENO, buf, sizeof(buf) ) ) {
+ perror("Stdout write failed: ");
+ exit(1);
+ }
+ fprintf(stderr,"r");
+ fflush(stderr);
+ }
+ fprintf(stderr,"\n");
+ }
+
+ munmap((void *)flash_base, FLASH_SZ);
+ close(driver_fd);
+ return 0;
+}
+
+
+
+
+/*
+ * Local variables:
+ * compile-command: "cc -g -O2 -Wall sa_flash.c -o sa_flash"
+ * End:
+ */
diff --git a/ecos/packages/hal/arm/ebsa285/current/support/linux/safl_util/safl.c b/ecos/packages/hal/arm/ebsa285/current/support/linux/safl_util/safl.c
new file mode 100644
index 0000000..6bff2c3
--- /dev/null
+++ b/ecos/packages/hal/arm/ebsa285/current/support/linux/safl_util/safl.c
@@ -0,0 +1,403 @@
+// #========================================================================
+// #
+// # safl.c
+// #
+// # Linux driver for Intel(R) StrongARM(R) PCI-based coprocessor boards.
+// #
+// #========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+// #========================================================================
+// ######DESCRIPTIONBEGIN####
+// #
+// # Author(s): msalter
+// # Contributors: msalter
+// # Date: 1999-04-02
+// # Purpose: Linux driver for Intel(R) StrongARM(R) PCI-based
+// # coprocessor boards
+// # Description: This module currently supports EBSA-285 and SA-IOP.
+// # Intel is a Registered Trademark of Intel Corporation.
+// # StrongARM is a Registered Trademark of Advanced RISC
+// # Machines Limited.
+// # Other Brands and Trademarks are the property of their
+// # respective owners.
+// #
+// #####DESCRIPTIONEND####
+// #
+// #========================================================================
+
+static char *version =
+"safl.c:v0.01H 04/02/99 Mark Salter, Red Hat.\n";
+
+#include <linux/module.h>
+#include <linux/config.h>
+#include <linux/version.h>
+#ifdef MODVERSIONS
+#include <linux/modversions.h>
+#endif
+#include <linux/types.h>
+#include <linux/errno.h>
+#include <linux/kernel.h>
+#include <linux/miscdevice.h>
+#include <linux/malloc.h>
+#include <linux/mm.h>
+#include <linux/pci.h>
+#include <linux/signal.h>
+#include <linux/ioport.h>
+#include <linux/fcntl.h>
+#include <asm/pgtable.h>
+#include <asm/page.h>
+#include <linux/sched.h>
+#include <asm/segment.h>
+#ifdef CONFIG_PROC_FS
+#include <linux/proc_fs.h>
+#endif
+
+#include <asm/io.h>
+#include <asm/system.h>
+
+#if LINUX_VERSION_CODE >= 0x020100
+#include <linux/init.h>
+#include <linux/vmalloc.h>
+#else
+#include <linux/bios32.h>
+#define __initfunc(x) x
+#endif
+
+#if LINUX_VERSION_CODE < 0x20155
+#define PCI_SUPPORT_VER1
+#else
+#define PCI_SUPPORT_VER2
+#endif
+
+#if defined(MODULE) && LINUX_VERSION_CODE > 0x20115
+MODULE_AUTHOR("Mark Salter <msalter@redhat.com>");
+MODULE_DESCRIPTION("Intel(R) StrongARM(R) FLASH driver for PCI EVBs");
+#endif
+
+/* This isn't in /usr/include/linux/pci.h */
+#ifndef PCI_DEVICE_ID_DEC_IOP
+#define PCI_DEVICE_ID_DEC_21554 0x46
+#endif
+
+#ifndef PCI_DEVICE_ID_DEC_21285
+#define PCI_DEVICE_ID_DEC_21285 0x1065
+#endif
+
+
+/* somewhat arbitrary minor number. Major number is 10 (misc). */
+#define SAFL_MINOR 178
+#define FLASH_SZ (4 * 1024 * 1024)
+
+static int safl_open( struct inode *inode, struct file *file );
+static int safl_close( struct inode *inode, struct file *file );
+
+#if LINUX_VERSION_CODE >= 0x020100
+static int safl_mmap(struct file * file, struct vm_area_struct * vma);
+#else
+static int safl_mmap(struct inode * inode, struct file * file, struct vm_area_struct * vma);
+#endif
+
+
+static int safl_debug = 0;
+
+static unsigned long csr_ioaddr;
+static unsigned long flash_addr;
+
+static struct file_operations safl_fops = {
+ NULL, /* lseek */
+ NULL, /* read */
+ NULL, /* write */
+ NULL, /* readdir */
+ NULL, /* poll */
+ NULL, /* ioctl */
+ safl_mmap, /* mmap */
+ safl_open, /* open */
+ NULL, /* flush */
+ safl_close /* close */
+};
+
+static struct miscdevice safl_dev = {
+ SAFL_MINOR,
+ "SA-FLASH",
+ &safl_fops
+};
+
+/* PCI configuration space information. */
+static u8 safl_pci_bus, safl_pci_devfn;
+static int safl_devid;
+
+#ifdef PCI_SUPPORT_VER2
+static struct pci_dev *safl_pdev;
+#endif
+
+static int safl_open_cnt = 0; /* #times opened */
+
+__initfunc(int safl_scan(void))
+{
+ if (pcibios_present()) {
+ int index;
+
+ /*
+ * Search for an EBSA-285 board or an IOP board. Stop at
+ * first one found.
+ */
+ for (index = 0; index < 8; index++) {
+ if (pcibios_find_device (PCI_VENDOR_ID_DEC, PCI_DEVICE_ID_DEC_21554,
+ index, &safl_pci_bus, &safl_pci_devfn)
+ == PCIBIOS_SUCCESSFUL) {
+ safl_devid = PCI_DEVICE_ID_DEC_21554;
+ break;
+ }
+ if (pcibios_find_device (PCI_VENDOR_ID_DEC, PCI_DEVICE_ID_DEC_21285,
+ index, &safl_pci_bus, &safl_pci_devfn)
+ == PCIBIOS_SUCCESSFUL) {
+ safl_devid = PCI_DEVICE_ID_DEC_21285;
+ break;
+ }
+ }
+
+ if (index < 8) {
+#ifdef PCI_SUPPORT_VER2
+ safl_pdev = pci_find_slot(safl_pci_bus, safl_pci_devfn);
+#endif
+ misc_register(&safl_dev);
+ return 0;
+ }
+ }
+ if (safl_debug)
+ printk(KERN_INFO "Can't find device.\n");
+ return -ENODEV;
+}
+
+
+int
+init_module(void)
+{
+ if (safl_debug)
+ printk(KERN_INFO "%s", version);
+ return safl_scan();
+}
+
+
+/*
+ * Dword read from configuration space of secondary PCI bus.
+ */
+static unsigned int
+sconfig_read(int addr)
+{
+ unsigned int val;
+
+ outw(2, csr_ioaddr + 0x12); /* enable downstream config */
+ outl(addr | (1<<24), csr_ioaddr + 0x00);
+ val = inl(csr_ioaddr + 4);
+ outw(0, csr_ioaddr + 0x12); /* disable downstream config */
+
+ return val;
+}
+
+
+/*
+ * Dword write to configuration space of secondary PCI bus.
+ */
+static void
+sconfig_write(int addr, int val)
+{
+ outw(2, csr_ioaddr + 0x12); /* enable downstream config */
+ outl(addr | (1<<24), csr_ioaddr + 0x00);
+ outl(val, csr_ioaddr + 4);
+ outw(0, csr_ioaddr + 0x12); /* disable downstream config */
+}
+
+
+/*
+ * Dword read from configuration space of primary PCI bus.
+ */
+static unsigned int
+pconfig_read(int addr)
+{
+ unsigned int val;
+
+#ifdef PCI_SUPPORT_VER2
+ pci_read_config_dword(safl_pdev, addr, &val);
+#else
+ pcibios_read_config_dword(safl_pci_bus, safl_pci_devfn, addr, &val);
+#endif
+
+ return val;
+}
+
+
+/*
+ * Dword write to configuration space of primary PCI bus.
+ */
+static void
+pconfig_write(int addr, int val)
+{
+#ifdef PCI_SUPPORT_VER2
+ pci_write_config_dword(safl_pdev, addr, val);
+#else
+ pcibios_write_config_dword(safl_pci_bus, safl_pci_devfn, addr, val);
+#endif
+}
+
+
+
+static int
+safl_open( struct inode *inode, struct file *file )
+{
+ if (safl_open_cnt) {
+ if (safl_debug)
+ printk(KERN_INFO "SA-Flash already open.\n");
+ return( -EBUSY );
+ }
+
+ if (safl_devid == PCI_DEVICE_ID_DEC_21554) {
+
+ csr_ioaddr = pconfig_read(PCI_BASE_ADDRESS_1) & PCI_BASE_ADDRESS_IO_MASK;
+ flash_addr = pconfig_read(PCI_BASE_ADDRESS_3) & PCI_BASE_ADDRESS_MEM_MASK;
+
+ if (safl_debug) {
+ printk(KERN_INFO "IOP: csr_io[%lx].\n", csr_ioaddr);
+ printk(KERN_INFO "IOP: flash_add[%lx].\n", flash_addr);
+ }
+
+ /*
+ * Need to configure downstream side of 21554.
+ * These addresses are pretty arbitrary.
+ */
+ pconfig_write(0x50, 0xf0000000); /* secondary CSR memory */
+ pconfig_write(0x54, 0xf201); /* secondary CSR I/O */
+ pconfig_write(0x58, 0xf401); /* Upstream I/O */
+ pconfig_write(0x5c, 0xf1000008); /* Upstream memory 1 */
+ pconfig_write(0x44, 0x29000017); /* enable mem an I/O */
+
+ /* set downstream mem2 xlate base */
+ pconfig_write(0x9c, 0xA0000000);
+
+ /* set 21285 ROM address to same */
+ sconfig_write(0x30, 0xA0000001);
+
+ /* set 21285 ROM write byte address */
+ sconfig_write(0x68, 0);
+
+ } else if (safl_devid == PCI_DEVICE_ID_DEC_21285) {
+ /*
+ * I'm not sure how best to handle this. Basically, you want
+ * to assign a physical address for the expansion ROM space
+ * of the 21285. There doesn't appear to be a good way to
+ * find an unused physical space for the PCI bus. This seems
+ * to work for the limited number of motherboards that this
+ * code has been tested on. YMMV.
+ */
+ flash_addr = 0xb0000000;
+ pconfig_write(PCI_ROM_ADDRESS, flash_addr | PCI_ROM_ADDRESS_ENABLE);
+ }
+
+ safl_open_cnt++;
+
+ MOD_INC_USE_COUNT;
+ return 0;
+}
+
+
+static int
+safl_close( struct inode *inode, struct file *file )
+{
+ safl_open_cnt--;
+
+ if (safl_devid == PCI_DEVICE_ID_DEC_21285)
+ pconfig_write(PCI_ROM_ADDRESS, 0);
+
+ if (safl_devid == PCI_DEVICE_ID_DEC_21554)
+ sconfig_write(0x30, 0);
+
+ MOD_DEC_USE_COUNT;
+ return 0;
+}
+
+
+static inline unsigned long
+pgprot_noncached(unsigned long prot)
+{
+#if LINUX_VERSION_CODE >= 0x020100
+ if (boot_cpu_data.x86 > 3)
+ prot |= _PAGE_PCD;
+#endif
+ return prot;
+}
+
+
+static int
+#if LINUX_VERSION_CODE >= 0x020100
+safl_mmap(struct file * file, struct vm_area_struct * vma)
+#else
+safl_mmap(struct inode * inode, struct file * file, struct vm_area_struct * vma)
+#endif
+{
+ unsigned long size;
+
+ if (vma->vm_offset != 0)
+ return -EINVAL;
+
+ size = vma->vm_end - vma->vm_start;
+ if (size > FLASH_SZ)
+ return -EINVAL;
+
+ pgprot_val(vma->vm_page_prot) = pgprot_noncached(pgprot_val(vma->vm_page_prot));
+
+#if LINUX_VERSION_CODE >= 0x020100
+ vma->vm_flags |= VM_IO;
+#endif
+
+ if (remap_page_range(vma->vm_start, flash_addr, size, vma->vm_page_prot))
+ return -EAGAIN;
+
+#if LINUX_VERSION_CODE < 0x020100
+ vma->vm_inode = inode;
+ inode->i_count++;
+#endif
+
+ return 0;
+}
+
+void
+cleanup_module(void)
+{
+ misc_deregister(&safl_dev);
+}
+
+/*
+ * Local variables:
+ * compile-command: "cc -DMODULE -D__KERNEL__ -Wall -Wstrict-prototypes -O6 -c safl.c `[ -f /usr/include/linux/modversions.h ] && echo -DMODVERSIONS`"
+ * End:
+ */
diff --git a/ecos/packages/hal/arm/ebsa285/current/tests/sdram0.cxx b/ecos/packages/hal/arm/ebsa285/current/tests/sdram0.cxx
new file mode 100644
index 0000000..8f7ea5f
--- /dev/null
+++ b/ecos/packages/hal/arm/ebsa285/current/tests/sdram0.cxx
@@ -0,0 +1,240 @@
+//==========================================================================
+//
+// sdram0.cxx
+//
+// SDRAM function test 0
+//
+//==========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//==========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): hmt
+// Contributors: hmt
+// Date: 1999-11-11
+// Description: Basic memory test, knowledgeable of the EBSA285's
+// memory size.
+//####DESCRIPTIONEND####
+
+#include <cyg/infra/testcase.h>
+
+#include <cyg/infra/diag.h>
+
+#include <cyg/hal/hal_arch.h>
+#include <cyg/hal/hal_intr.h>
+
+#define ONE_MEG (0x100000)
+#define ONE_MEG_IN_WORDS (ONE_MEG/4)
+
+#define MEGS 9
+#define WORDS ONE_MEG_IN_WORDS
+#define START 0x400000
+
+#define INNERLOOPS 10
+
+#define NUMTESTS 1
+
+#if WORDS > ONE_MEG_IN_WORDS
+# error "Too many WORDS in a block - they'll overlap!"
+#endif
+
+#include <cyg/hal/hal_ebsa285.h>
+
+
+void
+check_addrsize_setup( void )
+{
+ cyg_uint32 sizes[4] = { 0, };
+ cyg_uint32 bases[4] = { 0, };
+ cyg_uint32 codes[4] = { 0, };
+ cyg_uint32 muxes[4] = { 0, };
+ cyg_uint32 i;
+
+#define MBytes <<20
+
+ static cyg_uint32 lookup[] =
+ { 0, 1 MBytes, 2 MBytes, 4 MBytes, 8 MBytes, 16 MBytes, 32 MBytes, 64 MBytes };
+
+ static cyg_uint32 maxsizes[] =
+ { 2 MBytes, 16 MBytes, 64 MBytes, 8 MBytes, 64 MBytes, 0, 0, 0 };
+
+ codes[0] = *SA110_SDRAM_ADDRESS_SIZE_ARRAY_0;
+ codes[1] = *SA110_SDRAM_ADDRESS_SIZE_ARRAY_1;
+ codes[2] = *SA110_SDRAM_ADDRESS_SIZE_ARRAY_2;
+ codes[3] = *SA110_SDRAM_ADDRESS_SIZE_ARRAY_3;
+
+ // Print all the info for the benefit of humans:
+ for ( i = 0; i < 4; i++ ) {
+ bases[i] = 0x0ff00000 & codes[i];
+ sizes[i] = lookup[ 7 & codes[i] ];
+ muxes[i] = 7 & (codes[i] >> 4);
+ diag_printf( "Bank %d: [%08x]: base %08x, size %08x; mux mode %d\n",
+ i, codes[i], bases[i] , sizes[i] , muxes[i] );
+ }
+ // THEN check individual entries for sanity
+ for ( i = 0; i < 4; i++ ) {
+ if ( 0 == sizes[i] ) {
+ // then the bank is not in use
+ CYG_TEST_CHECK( 0 == bases[i], "Unused bank nonzero address" );
+ CYG_TEST_CHECK( 0 == muxes[i], "Unused bank nonzero mux mode" );
+ } else {
+ CYG_TEST_CHECK( muxes[i] <= 4, "Mux mode overflow" );
+ if ( (muxes[i] == 3) && (8 != sizes[i]) )
+ CYG_TEST_FAIL( "Mux mode 3 and size not 8Mb" );
+ CYG_TEST_CHECK( maxsizes[ muxes[i] ] >= sizes[i],
+ "Size too larget for mux mode" );
+ }
+ }
+
+ // NEXT check that addresses are singly mapped IYSWIM:
+ // Easiest way is, foreach megabyte, check it is mapped exactly once;
+ // shouldn't take too long.
+ for ( i = 0; i < hal_dram_size; i += ONE_MEG ) {
+ int j = 0;
+ int k;
+ for ( k = 0; k < 4; k++ )
+ // this test works OK for an unused slot because i is +ve:
+ if ( (bases[k] <= i) && (i < (bases[k] + sizes[k])) )
+ j++;
+ CYG_TEST_CHECK( 2 > j, "Good memory is multiply mapped" );
+ CYG_TEST_CHECK( 0 < j, "Good memory is not mapped" );
+ }
+ for ( /* i */ ; i < 256 MBytes; i += ONE_MEG ) {
+ int j = 0;
+ int k;
+ for ( k = 0; k < 4; k++ )
+ // this test works OK for an unused slot because i is +ve:
+ if ( (bases[k] <= i) && (i < (bases[k] + sizes[k])) )
+ j++;
+ CYG_TEST_CHECK( 2 > j, "Non-existent memory is multiply mapped" );
+ CYG_TEST_CHECK( 0 == j, "Non-existent memory is mapped" );
+ }
+ CYG_TEST_PASS( "Memory controller setup self-consistent" );
+}
+
+
+void mymain( void )
+{
+ cyg_uint32 h, i, j, k;
+ cyg_uint32 *pbase[ MEGS ] = { 0, };
+ int totaltests = 0;
+ int ptotalerrors[ MEGS ] = { 0, };
+
+ CYG_TEST_INIT();
+
+
+ check_addrsize_setup();
+
+
+ h = hal_dram_size - ONE_MEG;
+ i = MEGS - 1;
+ j = START;
+ k = 0;
+ while ( (i > k) && (h > j) ) {
+ pbase[i] = (cyg_uint32 *)h;
+ pbase[k] = (cyg_uint32 *)j;
+ i--;
+ k++;
+ h -= ONE_MEG;
+ j += ONE_MEG;
+ }
+ if ( (i == k) && (h > j) )
+ pbase[ i ] = (cyg_uint32 *)((h+j)/2);
+
+ for ( h = 0; h < NUMTESTS; h++ ) {
+ int perrors[ MEGS ] = { 0, };
+ cyg_uint32 pbadbits[ MEGS ] = { 0, };
+ for ( i = 0 ; i < INNERLOOPS; i++ ) {
+ cyg_uint32 d = 0xdeadbeef ^ ((cyg_uint32)i * 0x10001);
+ for ( k = 0; k < MEGS; k++ ) {
+ cyg_uint32 *p = pbase[k];
+ cyg_uint32 dp = d ^ (cyg_uint32)p;
+ if ( ! p ) continue;
+ for ( j = 0; j < WORDS; j++ )
+ p[j] = dp ^ j ^ (j << 19) ;
+ }
+ for ( k = 0; k < MEGS; k++ ) {
+ cyg_uint32 *p = pbase[k];
+ cyg_uint32 dp = d ^ (cyg_uint32)p;
+ if ( ! p ) continue;
+ for ( j = 0; j < WORDS; j++ )
+ if ( p[j] != (dp ^ j ^ (j << 19)) ) {
+ perrors[k]++;
+ pbadbits[k] |= (p[j] ^ dp ^ j ^ (j << 19));
+ }
+ }
+ }
+ totaltests += i * j;
+ for ( k = 0; k < MEGS; k++ ) {
+ if ( ! pbase[k] ) continue;
+ ptotalerrors[k] += perrors[k];
+ diag_printf(
+"p %x: %d tests of %d words: %d errors, badbits %x ...totals %d tests %d errors\n",
+ pbase[k], i, j, perrors[k], pbadbits[k], totaltests, ptotalerrors[k] );
+ if ( 0 != perrors[k] )
+ CYG_TEST_FAIL( "Errors in memory test" );
+ }
+ }
+
+ h = j = 0;
+ for ( k = 0; k < MEGS; k++ ) {
+ if ( ! pbase[k] ) continue;
+ h += ptotalerrors[k] ;
+ j += totaltests;
+ }
+ diag_printf( "Total tests %d, total errors %d\n", j, h );
+ if ( 0 == h )
+ CYG_TEST_PASS( "Memory test all OK" );
+
+ CYG_TEST_EXIT("End of mem test");
+
+}
+
+externC void
+cyg_start( void )
+{
+ HAL_ENABLE_INTERRUPTS();
+
+#ifdef CYGPKG_HAL_ARM_EBSA285
+ cyg_uint32 i;
+ i = *(cyg_uint32 *)(0x42000000 + 0x10c);
+ diag_printf( "SDRAM timing %08x\n", i );
+ for ( i = 0; i < 4; i++ ) {
+ diag_printf( "Bank %d: addrsize %08x\n", i, *(cyg_uint32 *)(0x42000000 + 0x110 + i * 4 ));
+ }
+ diag_printf( "Mem size: %08x == %d\n", hal_dram_size, hal_dram_size );
+#endif
+
+ mymain();
+}
+// EOF sdram0.cxx
diff --git a/ecos/packages/hal/arm/edb7xxx/current/ChangeLog b/ecos/packages/hal/arm/edb7xxx/current/ChangeLog
new file mode 100644
index 0000000..9370ec7
--- /dev/null
+++ b/ecos/packages/hal/arm/edb7xxx/current/ChangeLog
@@ -0,0 +1,1196 @@
+2009-01-31 Bart Veer <bartv@ecoscentric.com>
+
+ * cdl/hal_arm_edb7xxx.cdl: update compiler flags for gcc 4.x
+
+2009-01-24 Bart Veer <bartv@ecoscentric.com>
+
+ * cdl/hal_arm_edb7xxx.cdl: switch from arm-elf-gcc to
+ arm-eabi-gcc.
+
+2004-08-12 Jani Monoses <jani@iv.ro>
+
+ * cdl/hal_arm_edb7xxx.cdl:
+ * src/hal_diag.c: Support baudrate change via virtual vectors.
+
+2004-04-22 Jani Monoses <jani@iv.ro>
+
+ * cdl/hal_arm_edb7xxx.cdl :
+ Invoke tail with stricter syntax that works in latest coreutils.
+
+2003-12-05 Andrew Lunn <andrew.lunn@ascom.ch>
+
+ * include/hal_diag.h: hal_delay_us() is a C function.
+
+
+2003-09-21 Gary Thomas <gary@mlbassoc.com>
+
+ * misc/edb7312_redboot_RAM.ecm:
+ * misc/edb7312_redboot_ROM.ecm:
+ * misc/edb7312_redboot_ROMRAM.ecm: Adjust for changes in RedBoot
+ template - DNS now must be enabled manually.
+
+2003-07-18 Nick Garnett <nickg@balti.calivar.com>
+
+ * cdl/hal_arm_edb7xxx.cdl:
+ Changed values for CYGNUM_HAL_RTC_NUMERATOR,
+ CYGNUM_HAL_RTC_DENOMINATOR and CYGNUM_HAL_RTC_PERIOD to
+ "default_value" from "calculated". This makes it easier
+ to change these values globally.
+
+2003-03-28 Jani Monoses <jani@iv.ro>
+
+ * include/hal_platform_setup.h: EDB7211 has two 8M FLASH chips
+ with different chip selects, so map them contiguously.
+ Also fix compiler warning with #if to #ifdef.
+
+ * include/pkgconf/mlt_arm_edb7211_rom.mlt: Update to reflect ROM
+ being 16M not 8M now.
+ * include/pkgconf/mlt_arm_edb7211_rom.ldi: Ditto.
+ * include/pkgconf/mlt_arm_edb7211_rom.h: Ditto.
+
+2003-02-13 Gary Thomas <gary@mlbassoc.com>
+
+ * include/plf_io.h: Add CYG_MACRO_START/END markers to match
+ recent changes in arch code.
+
+ * cdl/hal_arm_edb7xxx.cdl: Builds without RedBoot+Linux-exec
+ were broken by recent changes.
+
+2003-02-12 Gary Thomas <gary@mlbassoc.com>
+
+ * include/plf_io.h: Provide proper memory layout for EDB7312.
+
+2003-02-06 Gary Thomas <gary@mind.be>
+
+ * misc/edb7312_redboot_ROMRAM.ecm:
+ * src/edb7xxx_misc.c:
+ * include/plf_io.h:
+ * include/hal_platform_setup.h:
+ * cdl/hal_arm_edb7xxx.cdl: Add support for booting Linux by defining
+ CYGARC_PHYSICAL_ADDRESS().
+
+2002-12-06 Gary Thomas <gthomas@ecoscentric.com>
+
+ * misc/edb7312_redboot_ROMRAM.ecm:
+ * misc/edb7312_redboot_ROM.ecm:
+ * misc/edb7312_redboot_RAM.ecm:
+ * misc/edb7212_redboot_ROM.ecm:
+ * misc/edb7212_redboot.ecm:
+ * misc/edb7211_redboot_ROM.ecm:
+ * misc/edb7211_redboot.ecm: Force no 'Linux exec' command in RedBoot.
+
+2002-08-02 Gary Thomas <gary@chez-thomas.org>
+
+ * cdl/hal_arm_edb7xxx.cdl: Clean up CDL.
+
+2002-05-07 Gary Thomas <gthomas@redhat.com>
+
+ * cdl/hal_arm_edb7xxx.cdl:
+ Standardize CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_DEFAULT usage.
+
+2002-04-29 Jonathan Larmour <jlarmour@redhat.com>
+
+ * misc/i2s_audio_fiq.S:
+ Don't use .file as it can confuse debugging since the .file
+ doesn't contain the path and therefore the debugger will never
+ know where it lives! This conflicts with using -Wa,--gstabs.
+
+2002-03-21 Jonathan Larmour <jlarmour@redhat.com>
+
+ * misc/edb7312_redboot_RAM.ecm: memalloc package no longer required.
+ * misc/edb7312_redboot_ROM.ecm: Ditto.
+ * misc/edb7312_redboot_ROMRAM.ecm: Ditto.
+
+2002-03-21 Hugo Tyson <hmt@redhat.com>
+
+ * include/hal_edb7xxx.h: Include the package config file too; some
+ versions need to be told their clock setup to select
+ initialization constants in this file. It remains
+ assembler-clean, no problem.
+
+2002-03-05 Jesper Skov <jskov@redhat.com>
+
+ * misc/edb7312_redboot_RAM.ecm: Added memalloc package.
+ * misc/edb7312_redboot_ROM.ecm: Same.
+
+2002-03-04 Hugo Tyson <hmt@redhat.com>
+
+ * include/hal_platform_setup.h (IO_LA_END): Set IO_LA_END (IO
+ logical address space end) higher so that we can readback the
+ value of the PLL Multiplier at 0x8000a5a8 - just for debugging.
+
+ * src/edb7xxx_misc.c (hal_hardware_init): Add more nops after
+ setting PLL Multiplier for 90MHz.
+
+ * cdl/hal_arm_edb7xxx.cdl: Change default timer tick rate for
+ faster version.
+
+2002-03-01 Hugo Tyson <hmt@redhat.com>
+
+ * cdl/hal_arm_edb7xxx.cdl: Add 90317 to legal_values for
+ CYGHWR_HAL_ARM_EDB7XXX_PROCESSOR_CLOCK.
+
+ * include/hal_edb7xxx.h (EP7312_PLL_MR): Define additional
+ register and contents for 90Mhz operation. Redefine baud rate
+ calculator for 90Mhz operation.
+
+ * src/edb7xxx_misc.c (hal_hardware_init): If the CPU clock speed
+ is 90317, set the PLL multiplier register to gear-up 22.5%, and
+ add some waitstates to all the memory access so it still works.
+
+2002-02-22 Gary Thomas <gthomas@redhat.com>
+
+ * src/lcd_support.c (idle): Only [re]enable LCD if being used
+ as the console device. This keeps it from coming on when there
+ is serial line activity [just an anoyance].
+
+2002-02-01 Hugo Tyson <hmt@redhat.com>
+
+ * misc/edb7312_redboot_ROMRAM.ecm:
+ * misc/edb7312_redboot_ROM.ecm:
+ * misc/edb7312_redboot_RAM.ecm: CYGBLD_REDBOOT_MIN_IMAGE_SIZE set
+ to 0x40000 to contain the size of RedBoot.
+
+2002-01-28 Jonathan Larmour <jlarmour@redhat.com>
+
+ * include/hal_edb7xxx.h: Add extra useful definitions for the 7312.
+
+2002-01-28 Jesper Skov <jskov@redhat.com>
+
+ * include/plf_io.h: Added.
+
+2002-01-22 Jonathan Larmour <jlarmour@redhat.com>
+
+ * misc/edb7312_redboot_ROM.ecm: Fix
+ CYGPKG_DEVS_FLASH_STRATA_EDB7XXX -> CYGPKG_DEVS_FLASH_EDB7XXX
+
+2001-12-06 Jonathan Larmour <jlarmour@redhat.com>
+
+ * misc/edb7212_redboot.ecm:
+ * misc/edb7212_redboot_ROM.ecm:
+ * misc/edb7312_redboot_RAM.ecm:
+ * misc/edb7312_redboot_ROM.ecm:
+ * misc/edb7312_redboot_ROMRAM.ecm:
+ Fix target descriptions to be edb7xxx.
+
+2001-11-13 Gary Thomas <gthomas@redhat.com>
+
+ * src/edb7xxx_misc.c (hal_hardware_init): Set clock speed.
+
+2001-11-10 Gary Thomas <gthomas@redhat.com>
+
+ * src/edb7xxx_misc.c (hal_clock_reset): DRAM refresh not needed.
+
+2001-11-06 Gary Thomas <gthomas@redhat.com>
+
+ * include/pkgconf/mlt_arm_edb7312_romram.mlt:
+ * include/pkgconf/mlt_arm_edb7312_romram.ldi:
+ * include/pkgconf/mlt_arm_edb7312_romram.h:
+ * include/pkgconf/mlt_arm_edb7312_ram.mlt:
+ * include/pkgconf/mlt_arm_edb7312_ram.ldi:
+ * include/pkgconf/mlt_arm_edb7312_ram.h: New ROMRAM setup.
+
+2001-10-14 Gary Thomas <gthomas@redhat.com>
+
+ * misc/edb7312_redboot_ROMRAM.ecm:
+ * misc/edb7312_redboot_RAM.ecm: Update for new FLASH driver layout.
+
+2001-10-12 Jonathan Larmour <jlarmour@redhat.com>
+
+ * cdl/hal_arm_edb7xxx.cdl: Clarify package description strings.
+
+2001-10-03 Gary Thomas <gthomas@redhat.com>
+
+ * src/edb7xxx_misc.c:
+ * include/hal_platform_ints.h:
+ * include/hal_edb7xxx.h: EP7312 has slightly different peripherals.
+
+2001-10-03 Gary Thomas <gthomas@redhat.com>
+
+ * src/edb7xxx_misc.c: Fix sly problem on EDB7312 only which
+ caused RESET vector to be destroyed.
+
+2001-10-03 Gary Thomas <gthomas@redhat.com>
+
+ * misc/edb7312_redboot_ROMRAM.ecm:
+ * include/pkgconf/mlt_arm_edb7312_romram.mlt:
+ * include/pkgconf/mlt_arm_edb7312_romram.ldi:
+ * include/pkgconf/mlt_arm_edb7312_romram.h: New files.
+
+ * include/pkgconf/mlt_arm_edb7312_ram.mlt:
+ * include/pkgconf/mlt_arm_edb7312_ram.ldi:
+ * include/pkgconf/mlt_arm_edb7312_ram.h:
+ * include/hal_platform_setup.h:
+ * cdl/hal_arm_edb7xxx.cdl: Add support for ROMRAM startup mode.
+ Currently only tested on EDB7312.
+
+2001-09-30 Gary Thomas <gthomas@redhat.com>
+
+ * src/lcd_support.c: Reorg - comm init also initializes display.
+ Don't export the comm if no keyboard. Lots of little changes
+ trying to get keyboard initialization correct. Works sometimes.
+
+ * src/edb7xxx_misc.c (hal_hardware_init): Change PS/2 timing.
+ Also, LCD comm channel now initializes LCD display.
+
+ * cdl/hal_arm_edb7xxx.cdl: Change LCD defaults to landscape mode
+ with Red Hat logo at top.
+
+2001-09-29 Gary Thomas <gthomas@redhat.com>
+
+ * cdl/hal_arm_edb7xxx.cdl:
+ * src/edb7xxx_misc.c (hal_hardware_init):
+ * include/lcd_support.h:
+ * src/lcd_support.c:
+ * src/font.h:
+ * src/banner.xpm: New file(s). Adding LCD/keyboard console.
+
+2001-09-26 Gary Thomas <gthomas@redhat.com
+
+ * cdl/hal_arm_edb7xxx.cdl: Implement CYGINT_HAL_SUPPORTS_MMU_TABLES
+ to show that this HAL uses MMU tables.
+
+2001-09-25 Gary Thomas <gthomas@redhat.com>
+
+ * support/io.c:
+ * support/download_file.c:
+ * support/dl_edb7xxx.c: Change around internal functions (add
+ some flexibility).
+
+ * include/hal_platform_setup.h: Rewrote most of this code as
+ assembly macros which are easier to conditionalize. Now supports
+ EDB7312 as well.
+
+ * src/edb7xxx_misc.c (hal_hardware_init):
+ * include/pkgconf/mlt_arm_edb7312_rom.mlt:
+ * include/pkgconf/mlt_arm_edb7312_rom.ldi:
+ * include/pkgconf/mlt_arm_edb7312_rom.h:
+ * include/pkgconf/mlt_arm_edb7312_ram.mlt:
+ * include/pkgconf/mlt_arm_edb7312_ram.ldi:
+ * include/pkgconf/mlt_arm_edb7312_ram.h:
+ * include/hal_edb7xxx.h:
+ * cdl/hal_arm_edb7xxx.cdl: Add support for EDB7312 platform.
+
+2001-07-25 Jonathan Larmour <jlarmour@redhat.com>
+
+ * include/pkgconf/mlt_arm_edb7211_ram.h:
+ * include/pkgconf/mlt_arm_edb7211_ram.ldi:
+ * include/pkgconf/mlt_arm_edb7211_ram.mlt:
+ * include/pkgconf/mlt_arm_edb7212_ram.h:
+ RAM size should default to 0xfd7000 consistently.
+
+2001-07-18 Franck Mamalet <franck.mamalet@rd.francetelecom.com>
+2001-07-18 Jonathan Larmour <jlarmour@redhat.com>
+
+ * src/edb7xxx_misc.c: Reorder hal_interrupt_status_regmap so that
+ all FIQs are first.
+
+2001-06-29 Jonathan Larmour <jlarmour@redhat.com>
+
+ * src/io.c: Support building on cygwin.
+
+2001-06-28 Jonathan Larmour <jlarmour@redhat.com>
+
+ * cdl/hal_arm_edb7xxx.cdl: Clarify platform description.
+
+2001-06-08 Gary Thomas <gthomas@redhat.com>
+
+ * support/dl_edb7xxx.c: Change use of 'CharReady()' which seems
+ to be unreliable on Windows/CygWin. These changes should make
+ this program work on Windows when built via CygWin. Suggested
+ by Lewin A.R.W. Edwards <larwe@larwe.com>.
+
+2001-05-29 Jonathan Larmour <jlarmour@redhat.com>
+
+ * include/hal_platform_setup.h: Use correct 7209 define.
+
+2001-05-01 Gary Thomas <gthomas@redhat.com>
+
+ * misc/edb7212_redboot_ROM.ecm:
+ * misc/edb7212_redboot.ecm:
+ * misc/edb7211_redboot_ROM.ecm:
+ * misc/edb7211_redboot.ecm: RedBoot rebuilt & configs updated.
+
+ * include/hal_cache.h (HAL_ICACHE_IS_ENABLED): Add.
+
+2001-04-16 Gary Thomas <gthomas@redhat.com>
+
+ * cdl/hal_arm_edb7xxx.cdl: Add CDL to describe CPU family.
+
+2001-03-08 Jesper Skov <jskov@redhat.com>
+
+ * cdl/hal_arm_edb7xxx.cdl: Removed
+ CYGINT_HAL_VIRTUAL_VECTOR_SUPPORT_GUARANTEED which is now the
+ default.
+
+2001-02-23 Jesper Skov <jskov@redhat.com>
+
+ * include/hal_cache.h (HAL_FLASH_CACHES_OLD_MACROS): This platform
+ uses deprecated cache handling macros.
+
+2001-02-23 Gary Thomas <gthomas@redhat.com>
+
+ * misc/edb7212_redboot_ROM.ecm: Renamed from edb7212_redboot_ROM.cfg
+
+ * misc/edb7212_redboot.ecm: Renamed from edb7212_redboot.cfg
+
+ * misc/edb7211_redboot_ROM.ecm: Renamed from edb7211_redboot_ROM.cfg
+
+ * misc/edb7211_redboot.ecm: Renamed from edb7211_redboot.cfg
+
+2001-02-13 Gary Thomas <gthomas@redhat.com>
+
+ * include/pkgconf/mlt_arm_edb7211_ram.h:
+ * include/pkgconf/mlt_arm_edb7211_ram.mlt:
+ * include/pkgconf/mlt_arm_edb7211_ram.ldi:
+ * include/pkgconf/mlt_arm_edb7212_ram.h:
+ * include/pkgconf/mlt_arm_edb7212_ram.mlt:
+ * include/pkgconf/mlt_arm_edb7212_ram.ldi: Adjust memory map
+ for RedBoot [with networking].
+
+ * src/edb7xxx_misc.c (hal_IRQ_handler):
+ Return CYGNUM_HAL_INTERRUPT_NONE for spurious interrupts.
+
+2001-02-08 Jesper Skov <jskov@redhat.com>
+
+ * src/hal_diag.c: Replace CYGSEM_HAL_DIAG_MANGLER_None with
+ CYGDBG_HAL_DIAG_TO_DEBUG_CHAN.
+
+ * cdl/hal_arm_edb7xxx.cdl: Respect channel configuration
+ constraints.
+
+2001-01-31 Jesper Skov <jskov@redhat.com>
+
+ * src/hal_diag.c: Replaced CYGDBG_HAL_DIAG_DISABLE_GDB_PROTOCOL
+ with CYGSEM_HAL_DIAG_MANGLER_None
+
+2001-01-26 Jesper Skov <jskov@redhat.com>
+
+ * src/hal_diag.c: Removed CYGSEM_HAL_VIRTUAL_VECTOR_DIAG check.
+ * include/plf_stub.h: Moved reset macro to
+ * include/hal_platform_ints.h: this file.
+
+2000-12-04 Hugo Tyson <hmt@redhat.com>
+
+ * include/hal_cache.h: Consistently ensure that ARM registers used
+ in MCR ops to cache-control coprocessors, where the data doesn't
+ matter, all actually have data zero ("SBZ") as in the Jaggar book.
+ This may well not be necessary, but for the sake of making sure...
+
+2000-12-04 Gary Thomas <gthomas@redhat.com>
+
+ * include/hal_platform_setup.h: Reenable caching on FLASH/ROM.
+
+ * include/hal_cache.h: Update cache macros to follow ARM
+ and Cirrus Logic manuals more closely. These changes seem
+ to allow for cacheable FLASH segments.
+
+2000-11-06 Jesper Skov <jskov@redhat.com>
+
+ * tests/dram_test.c: Add kernel check.
+
+2000-10-26 Jonathan Larmour <jlarmour@redhat.com>
+
+ * misc/edb7211_redboot_ROM.cfg: Ensure CYGSEM_HAL_ROM_MONITOR is
+ enabled
+ * misc/edb7212_redboot_ROM.cfg: Ditto
+
+2000-10-20 Jonathan Larmour <jlarmour@redhat.com>
+
+ * include/pkgconf/mlt_arm_cl7111_ram.mlt:
+ * include/pkgconf/mlt_arm_cl7111_rom.mlt:
+ * include/pkgconf/mlt_arm_edb7209_rom.mlt:
+ * include/pkgconf/mlt_arm_edb7211_ram.mlt:
+ * include/pkgconf/mlt_arm_edb7211_rom.mlt:
+ * include/pkgconf/mlt_arm_edb7212_ram.mlt:
+ * include/pkgconf/mlt_arm_edb7212_rom.mlt:
+ Add heap1 section
+
+ * include/pkgconf/mlt_arm_cl7111_ram.h:
+ * include/pkgconf/mlt_arm_cl7111_rom.h:
+ * include/pkgconf/mlt_arm_edb7209_rom.h:
+ * include/pkgconf/mlt_arm_edb7211_ram.h:
+ * include/pkgconf/mlt_arm_edb7211_rom.h:
+ * include/pkgconf/mlt_arm_edb7212_ram.h:
+ * include/pkgconf/mlt_arm_edb7212_rom.h:
+ * include/pkgconf/mlt_arm_cl7111_ram.ldi:
+ * include/pkgconf/mlt_arm_cl7111_rom.ldi:
+ * include/pkgconf/mlt_arm_edb7209_rom.ldi:
+ * include/pkgconf/mlt_arm_edb7211_ram.ldi:
+ * include/pkgconf/mlt_arm_edb7211_rom.ldi:
+ * include/pkgconf/mlt_arm_edb7212_ram.ldi:
+ * include/pkgconf/mlt_arm_edb7212_rom.ldi:
+ Regenerate
+
+2000-09-17 Gary Thomas <gthomas@redhat.com>
+
+ * cdl/hal_arm_edb7xxx.cdl: Update platform/cpu identification strings.
+
+2000-08-18 Gary Thomas <gthomas@redhat.com>
+
+ * src/hal_diag.c (cyg_hal_plf_serial_getc): Only call dram refresh
+ [workaround] every 10ms or so, not all the time. This fixes GDB
+ serial overrun problems.
+
+2000-08-16 Gary Thomas <gthomas@redhat.com>
+
+ * include/hal_cache.h (HAL_UCACHE_INVALIDATE_ALL): Fix - wrong code.
+
+ * include/hal_platform_setup.h: Map all of SRAM (was only mapping
+ 4K which is all that the CL7111 had).
+
+2000-08-15 Gary Thomas <gthomas@redhat.com>
+
+ * include/hal_platform_setup.h: Make ROM segment not cached (since
+ the data cache seems to stick on).
+
+ * include/pkgconf/mlt_arm_edb7211_ram.h:
+ * include/pkgconf/mlt_arm_edb7211_ram.ldi:
+ * include/pkgconf/mlt_arm_edb7211_ram.mlt: Expand reserved area.
+
+2000-08-14 Gary Thomas <gthomas@redhat.com>
+
+ * cdl/hal_arm_edb7xxx.cdl: Add support for RedBoot.
+
+ * include/hal_cache.h: Trying to get cache working properly.
+
+ * include/pkgconf/mlt_arm_edb7212_ram.h:
+ * include/pkgconf/mlt_arm_edb7212_ram.ldi:
+ * include/pkgconf/mlt_arm_edb7212_ram.mlt: Expand reserved area.
+
+ * include/hal_diag.h:
+ * src/edb7xxx_misc.c: Add support for HAL_DELAY_US().
+
+2000-07-07 Jesper Skov <jskov@redhat.com>
+
+ * src/edb7xxx_misc.c (dram_delay_loop):
+ * src/hal_diag.c (cyg_hal_plf_serial_getc,
+ (cyg_hal_plf_serial_putc): Added delay loop.
+
+2000-07-05 Jesper Skov <jskov@redhat.com>
+
+ * include/plf_stub.h (HAL_STUB_PLATFORM_RESET_ENTRY): Not comitted.
+
+ * src/hal_diag.c:
+ * cdl/hal_arm_edb7xxx.cdl:
+ Clean up channel options.
+
+ * src/plf_stub.c: [deleted]
+ * src/hal_diag.c:
+ * src/edb7xxx_misc.c:
+ * include/plf_stub.h:
+ * include/hal_diag.h:
+ * cdl/hal_arm_edb7xxx.cdl:
+ Changed to use virtual vectors.
+
+ * include/hal_platform_setup.h: #error instead of #err.
+
+2000-06-18 Gary Thomas <gthomas@redhat.com>
+
+ * include/pkgconf/mlt_arm_cl7111_ram.ldi:
+ * include/pkgconf/mlt_arm_cl7111_ram.mlt:
+ * include/pkgconf/mlt_arm_cl7111_rom.ldi:
+ * include/pkgconf/mlt_arm_cl7111_rom.mlt:
+ * include/pkgconf/mlt_arm_edb7209_rom.ldi:
+ * include/pkgconf/mlt_arm_edb7209_rom.mlt:
+ * include/pkgconf/mlt_arm_edb7211_ram.ldi:
+ * include/pkgconf/mlt_arm_edb7211_ram.mlt:
+ * include/pkgconf/mlt_arm_edb7211_rom.ldi:
+ * include/pkgconf/mlt_arm_edb7211_rom.mlt:
+ * include/pkgconf/mlt_arm_edb7212_ram.ldi:
+ * include/pkgconf/mlt_arm_edb7212_ram.mlt:
+ * include/pkgconf/mlt_arm_edb7212_rom.ldi:
+ * include/pkgconf/mlt_arm_edb7212_rom.mlt:
+ Incorporate new fixed vectors (used on all ARM platforms).
+
+2000-04-07 Gary Thomas <gthomas@redhat.com>
+
+ * cdl/hal_arm_edb7xxx.cdl: Fix build of i2s audio test.
+
+2000-02-29 Jonathan Larmour <jlarmour@redhat.co.uk>
+
+ * include/pkgconf/mlt_arm_cl7111_ram.h:
+ * include/pkgconf/mlt_arm_cl7111_ram.ldi:
+ * include/pkgconf/mlt_arm_cl7111_ram.mlt:
+ * include/pkgconf/mlt_arm_cl7111_rom.h:
+ * include/pkgconf/mlt_arm_cl7111_rom.ldi:
+ * include/pkgconf/mlt_arm_cl7111_rom.mlt:
+ * include/pkgconf/mlt_arm_edb7209_rom.h:
+ * include/pkgconf/mlt_arm_edb7209_rom.ldi:
+ * include/pkgconf/mlt_arm_edb7211_ram.h:
+ * include/pkgconf/mlt_arm_edb7211_ram.ldi:
+ * include/pkgconf/mlt_arm_edb7211_ram.mlt:
+ * include/pkgconf/mlt_arm_edb7211_rom.h:
+ * include/pkgconf/mlt_arm_edb7211_rom.ldi:
+ * include/pkgconf/mlt_arm_edb7211_rom.mlt:
+ * include/pkgconf/mlt_arm_edb7212_ram.h:
+ * include/pkgconf/mlt_arm_edb7212_ram.ldi:
+ * include/pkgconf/mlt_arm_edb7212_ram.mlt:
+ * include/pkgconf/mlt_arm_edb7212_rom.h:
+ * include/pkgconf/mlt_arm_edb7212_rom.ldi:
+ * include/pkgconf/mlt_arm_edb7212_rom.mlt:
+ Align all sections on word boundaries
+
+2000-02-28 Gary Thomas <gthomas@cygnus.co.uk>
+
+ * misc/kbd_support.c: Fix typo (in comment).
+
+ * misc/kbd_test.c: Remove unused LCD include.
+
+2000-02-21 Gary Thomas <gthomas@cygnus.co.uk>
+
+ * cdl/hal_arm_edb7xxx.cdl: Remove -mstructure-size-boundary=8
+ option - no longer needed to build working networking code.
+
+2000-02-18 Jonathan Larmour <jlarmour@redhat.co.uk>
+
+ * cdl/hal_arm_edb7xxx.cdl (CYGBLD_BUILD_GDB_STUBS): When
+ building stubs, define every dependency required here rather than
+ in the template
+
+2000-02-16 Jesper Skov <jskov@redhat.com>
+
+ * src/edb7xxx_misc.c:
+ * include/hal_platform_setup.h:
+ CYG_HAL_ARM -> CYGPKG_HAL_ARM
+
+2000-02-10 Gary Thomas <gthomas@cygnus.co.uk>
+
+ * tests/dram_test.c: Include proper testing infrastructure to
+ make farm happy.
+
+2000-02-10 Jesper Skov <jskov@redhat.com>
+
+ * include/plf_stub.h:
+ HAL_STUB_PLATFORM_STUBS_INIT->HAL_STUB_PLATFORM_INIT
+
+ * misc/STUBS_config:
+ * src/hal_diag.c:
+ * include/pkgconf/hal_arm_edb7xxx.h:
+ Removed stubs as a legal startup type.
+
+2000-02-09 Jesper Skov <jskov@redhat.com>
+
+ * cdl/hal_arm_edb7xxx.cdl: Added remaining build dependencies.
+
+2000-02-07 Jesper Skov <jskov@redhat.com>
+
+ * cdl/hal_arm_edb7xxx.cdl: Use cpu option when linking.
+ Fixed typo.
+
+2000-02-03 Jesper Skov <jskov@redhat.com>
+
+ * cdl/hal_arm_edb7xxx.cdl: Implements stubs.
+
+2000-02-02 Jesper Skov <jskov@redhat.com>
+
+ * cdl/hal_arm_edb7xxx.cdl: Added build rule for flash program.
+
+ * misc/prog_flash.c (program_flash): Added expected argument.
+
+2000-02-02 Jesper Skov <jskov@redhat.com>
+
+ * cdl/hal_arm_edb7xxx.cdl: Use common stubs code and build
+ rules. Removed stubs startup type.
+
+2000-01-31 Gary Thomas <gthomas@cygnus.co.uk>
+
+ * tests/dram_test.c: Decrease total number of runs to keep test
+ farm happy.
+
+ * src/edb7xxx_misc.c (hal_clock_reset): Increase DRAM 'idle' time
+ to give marginal hardware a chance.
+
+2000-01-28 Gary Thomas <gthomas@cygnus.co.uk>
+
+ * cdl/hal_arm_edb7xxx.cdl: Add -mstructure-size-boundary=8 to
+ compile options - required to get network structures properly
+ aligned.
+
+2000-01-28 John Dallaway <jld@cygnus.co.uk>
+
+ * cdl/hal_arm_edb7xxx.cdl:
+
+ Fix parenting of CYGDAT_CYGMON_CONSOLE_DEV and
+ CYGBLD_BUILD_CYGMON_BIN.
+
+2000-01-28 Jesper Skov <jskov@redhat.com>
+
+ * cdl/hal_arm_edb7xxx.cdl: Corrected build runes.
+
+2000-01-27 Jesper Skov <jskov@redhat.com>
+
+ * cdl/hal_arm_edb7xxx.cdl (CYGBLD_CYGMON_TARGET_REQUIREMENTS):
+ Improved serial expression.
+ Moved options into a CygMon HAL component.
+
+2000-01-26 Jonathan Larmour <jlarmour@redhat.co.uk>
+
+ * cdl/hal_arm_edb7xxx.cdl (CYGBLD_CYGMON_TARGET_REQUIREMENTS): Only
+ activate when CYGPKG_CYGMON enabled
+
+2000-01-26 Jesper Skov <jskov@redhat.com>
+
+ * cdl/hal_arm_edb7xxx.cdl: Fix display string. Add CygMon options.
+
+2000-01-24 Jesper Skov <jskov@cygnus.co.uk>
+
+ * cdl/hal_arm_edb7xxx.cdl: Add stubs build rule.
+
+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-03 Gary Thomas <gthomas@cygnus.co.uk>
+
+ * src/edb7xxx_misc.c: Need to re-enable FIQ during software "refresh",
+ no matter what method is being used [implicit or explicit].
+
+1999-12-21 Gary Thomas <gthomas@cygnus.co.uk>
+
+ * include/hal_platform_extras.h: Map in expansion segments (used
+ for ethernet and parallel port).
+
+1999-12-14 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * support/Makefile: Update filenames from earlier source file change,
+ and make other names generic
+
+ * support/dl_edb7xxx.c (main): Give the correct device name if
+ using the default.
+
+1999-12-08 Gary Thomas <gthomas@cygnus.co.uk>
+ * include/pkgconf/mlt_arm_edb7212_ram.ldi:
+ * include/pkgconf/mlt_arm_edb7212_ram.mlt:
+ * include/pkgconf/mlt_arm_edb7212_rom.h:
+ * include/pkgconf/mlt_arm_edb7212_rom.ldi:
+ * include/pkgconf/mlt_arm_edb7212_rom.mlt:
+ * include/pkgconf/mlt_arm_edb7212_ram.h: Update with .sram section.
+
+1999-12-07 Gary Thomas <gthomas@cygnus.co.uk>
+
+ * cdl/hal_arm_edb7xxx.cdl: Add descriptive strings used by CygMon.
+
+1999-11-29 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/hal_diag.c: Fix typoe: CYGDGB_HAL_DIAG_DISABLE_GDB_PROTOCOL
+ -> CYGDBG_HAL_DIAG_DISABLE_GDB_PROTOCOL
+
+1999-11-27 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/pkgconf/hal_arm_edb7xxx.h (HAL_PLATFORM_BOARD): Add missing endif
+
+1999-11-26 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * misc/STUBS_config: Mention edb7212 in usage
+
+1999-11-26 Gary Thomas <gthomas@cygnus.co.uk>
+
+ * include/pkgconf/hal_arm_edb7xxx.h: Add platform info defines.
+
+1999-11-26 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/hal_platform_setup.h (PLATFORM_SETUP1): Backslash wrapped
+ line properly
+
+1999-11-25 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/hal_platform_setup.h (PLATFORM_SETUP1): Fix typo
+ Init_MEMORY_CONFIG -> INIT_MEMORY_CONFIG
+
+ * src/hal_diag.c: Conditionalize def of diag_buffer for only when it's
+ explicitly wanted and someone hacks the code
+ (hal_diag_write_char): Likewise
+
+1999-11-25 Gary Thomas <gthomas@cygnus.co.uk>
+
+ * include/pkgconf/mlt_arm_edb7212_stubs.h:
+ * include/pkgconf/mlt_arm_edb7211_stubs.h:
+ * include/pkgconf/mlt_arm_cl7111_stubs.h: New file.
+
+ * include/pkgconf/mlt_arm_edb7209_rom.h:
+ * include/pkgconf/mlt_arm_edb7212_ram.h:
+ * include/pkgconf/mlt_arm_edb7212_rom.h:
+ * include/pkgconf/mlt_arm_edb7211_ram.h:
+ * include/pkgconf/mlt_arm_edb7211_rom.h:
+ * include/pkgconf/mlt_arm_cl7111_rom.h:
+ * include/pkgconf/mlt_arm_cl7111_ram.h: Update 'do not edit' strings.
+
+1999-11-23 Gary Thomas <gthomas@cygnus.co.uk>
+
+ * src/edb7xxx_misc.c (hal_clock_reset): Fix DRAM "idle" time > 200us.
+
+1999-11-23 Gary Thomas <gthomas@cygnus.co.uk>
+
+ * src/edb7xxx_misc.c (hal_clock_reset): EP7209 has no DRAM, thus
+ no DRAM starvation problem.
+
+1999-11-22 Gary Thomas <gthomas@cygnus.co.uk>
+
+ * include/pkgconf/mlt_arm_edb7212_stubs.h: New file.
+
+ * include/pkgconf/mlt_arm_edb7209_rom.h:
+ * include/pkgconf/mlt_arm_edb7209_rom.mlt:
+ * include/pkgconf/mlt_arm_edb7209_rom.ldi:
+ * include/pkgconf/mlt_arm_edb7212_rom.h:
+ * include/pkgconf/mlt_arm_edb7212_rom.mlt:
+ * include/pkgconf/mlt_arm_edb7212_rom.ldi:
+ * include/pkgconf/mlt_arm_edb7212_stubs.mlt:
+ * include/pkgconf/mlt_arm_edb7212_stubs.ldi: Add MMU tables section.
+
+ * include/pkgconf/mlt_arm_edb7211_stubs.h: New file.
+
+ * include/pkgconf/mlt_arm_edb7211_stubs.mlt:
+ * include/pkgconf/mlt_arm_edb7211_stubs.ldi: Add MMU tables section.
+
+ * misc/STUBS_config: Add patch to set up for static MMU tables.
+
+ * include/hal_platform_setup.h: Some rearranging to allow for
+ static MMU tables.
+
+ * include/hal_platform_extras.h: New file.
+
+1999-11-19 Gary Thomas <gthomas@cygnus.co.uk>
+
+ * include/pkgconf/hal_arm_edb7xxx.h: Fix bogus comment.
+
+ * misc/STUBS_config: Change variable name to reflect usage.
+ EDB7x11 => EDB7xxx.
+
+1999-11-18 Gary Thomas <gthomas@cygnus.co.uk>
+
+ * include/pkgconf/mlt_arm_edb7209_ram.mlt:
+ * include/pkgconf/mlt_arm_edb7209_ram.ldi:
+ * include/pkgconf/mlt_arm_edb7209_stubs.mlt:
+ * include/pkgconf/mlt_arm_edb7209_stubs.ldi: Removed
+
+ * include/pkgconf/mlt_arm_edb7209_rom.mlt:
+ * include/pkgconf/mlt_arm_edb7209_rom.ldi:
+ * include/pkgconf/mlt_arm_cl7111_rom.mlt:
+ * include/pkgconf/mlt_arm_cl7111_rom.ldi:
+ * include/pkgconf/mlt_arm_cl7111_ram.mlt:
+ * include/pkgconf/mlt_arm_cl7111_ram.ldi: New [more complete] layout.
+
+ * include/pkgconf/mlt_arm_edb7209_rom.h:
+ * include/pkgconf/mlt_arm_cl7111_rom.h:
+ * include/pkgconf/mlt_arm_cl7111_ram.h: New file(s).
+
+1999-11-18 Gary Thomas <gthomas@cygnus.co.uk>
+
+ * include/pkgconf/hal_arm_edb7xxx.h: EDB7209 has only ROM startup.
+
+ * cdl/hal_arm_edb7xxx.cdl: EDB7209 has only ROM startup.
+1999-11-16 John Dallaway <jld@cygnus.co.uk>
+
+ * cdl/hal_arm_edb7xxx.cdl: Tidy display string.
+
+1999-11-16 Gary Thomas <gthomas@cygnus.co.uk>
+
+ * cdl/hal_arm_edb7xxx.cdl: Fix typo.
+ Flushing out support options for various platforms.
+
+1999-11-15 Gary Thomas <gthomas@cygnus.co.uk>
+
+ The great renaming. All platform references are now EDB7xxx, except
+ for CL7111 (archaic) which remains. This required renaming of the
+ whole directory, along with many internal files.
+
+1999-11-12 Gary Thomas <gthomas@cygnus.co.uk>
+
+ * tests/dram_test.c: Make more generic (no platform dependencies).
+
+ * src/cl7211_misc.c (hal_clock_reset): Implement "bus idle" code
+ which helps with DRAM refresh problem.
+
+ * include/plf_stub.h (HAL_STUB_PLATFORM_RESET): Add reset support.
+
+1999-11-11 Gary Thomas <gthomas@cygnus.co.uk>
+
+ * tests/dram_test.c (dram_exercise): Use MLT constants to define
+ set of memory to be tested. Make stack size HAL defined.
+ This test is nearly ready to be promoted to a system-wide test.
+
+ * include/hal_platform_setup.h (DRAM_LA_END): Adjust to accurately
+ convey end of usable RAM (leave out MMU tables, etc).
+
+1999-11-09 Gary Thomas <gthomas@cygnus.co.uk>
+
+ * src/hal_diag.c: Fix stupid CPP error.
+
+ * include/pkgconf/mlt_arm_eb7212_rom.h:
+ * include/pkgconf/mlt_arm_eb7212_ram.h: New files.
+
+ * include/pkgconf/mlt_arm_eb7212_ram.ldi:
+ * include/pkgconf/mlt_arm_eb7212_ram.mlt:
+ * include/pkgconf/mlt_arm_eb7212_rom.ldi:
+ * include/pkgconf/mlt_arm_eb7212_ram.mlt:
+ * include/pkgconf/mlt_arm_eb7211_ram.ldi:
+ * include/pkgconf/mlt_arm_eb7211_ram.mlt:
+ * include/pkgconf/mlt_arm_eb7211_rom.ldi:
+ * include/pkgconf/mlt_arm_eb7211_rom.mlt: Correct memory layout.
+
+1999-11-05 Gary Thomas <gthomas@cygnus.co.uk>
+
+ * src/hal_diag.c: Incorporate option to force raw diagnostic
+ I/O (no GDB protocol).
+
+1999-11-03 Gary Thomas <gthomas@cygnus.co.uk>
+
+ * cdl/hal_arm_cl7211.cdl:
+ * include/pkgconf/hal_arm_cl7211.h: Change default clock speed
+ to 36MHz with no software DRAM refresh (hardware is stable with
+ this combo).
+
+1999-11-03 John Dallaway <jld@cygnus.co.uk>
+
+ * cdl/hal_arm_cl7211.cdl: Define build options.
+
+1999-11-01 Jesper Skov <jskov@cygnus.co.uk>
+
+ * cdl/hal_arm_cl7211.cdl: Remove define_proc comments.
+
+1999-10-27 Gary Thomas <gthomas@cygnus.co.uk>
+
+ * src/cl7211_misc.c (enable_FIQ): New function. Used to re-enable
+ FIQ interrupts during DRAM refresh code.
+
+ * include/pkgconf/mlt_arm_eb7211_stubs.h:
+ * include/pkgconf/mlt_arm_eb7211_rom.h:
+ * include/pkgconf/mlt_arm_eb7211_ram.h: New files.
+
+ * include/pkgconf/mlt_arm_eb7211_rom.ldi:
+ * include/pkgconf/mlt_arm_eb7211_ram.ldi:
+ * include/pkgconf/mlt_arm_eb7211_stubs.ldi:
+ * include/pkgconf/mlt_arm_eb7211_ram.mlt:
+ * include/pkgconf/mlt_arm_eb7211_rom.mlt:
+ * include/pkgconf/mlt_arm_eb7211_stubs.mlt: Update for new layout
+ which describes physical regions completely.
+
+1999-10-27 Jesper Skov <jskov@cygnus.co.uk>
+
+ * src/hal_diag.c: Fixed conditional include.
+
+1999-10-26 Hugo Tyson <hmt@cygnus.co.uk>
+
+ * src/hal_diag.c (hal_diag_write_char): Use new macro
+ CYG_HAL_GDB_ENTER_CRITICAL_IO_REGION and its mate to control
+ stepping through gdb $O packet output.
+
+1999-10-25 Gary Thomas <gthomas@cygnus.co.uk>
+
+ * tests/PKGconf.mak: Add DRAM test program.
+
+ * tests/dram_test.c: New file.
+
+ * include/hal_platform_setup.h: Fix DRAM mapping (was slightly
+ incorrect at end of first DRAM chip).
+
+1999-10-26 John Dallaway <jld@cygnus.co.uk>
+
+ * cdl/hal_arm_cl7211.cdl:
+
+ Rename CYGBLD_GLOBAL_PREFIX to
+ CYGBLD_GLOBAL_COMMAND_PREFIX
+
+1999-10-20 Simon FitzMaurice <sdf@cygnus.co.uk>
+ * cdl/hal_arm_aeb.cdl:
+
+ Remove -Wl options from compiler flags
+
+1999-10-20 John Dallaway <jld@cygnus.co.uk>
+
+ * cdl/hal_arm_cl7211.cdl:
+
+ Specify "-mpu=arm710c" for CL-PS7111.
+
+1999-10-19 John Dallaway <jld@cygnus.co.uk>
+
+ * cdl/hal_arm_cl7211.cdl:
+
+ Substitute "cl7211"->"eb7211" in MLT-related options.
+
+1999-10-19 John Dallaway <jld@cygnus.co.uk>
+
+ * cdl/hal_arm_cl7211.cdl:
+
+ Define cdl_options for the memory layout linker script
+ fragment and the memory layout header file.
+
+ Define cdl_options for build flags and command prefix.
+
+1999-10-06 John Dallaway <jld@cygnus.co.uk>
+
+ * cdl/hal_arm_cl7211.cdl:
+ Define CYGTST_TESTING_IDENTIFIER.
+
+1999-10-04 Gary Thomas <gthomas@cygnus.co.uk>
+ * src/cl7211_misc.c (hal_hardware_init): Update hardware timings.
+
+ * include/hal_platform_setup.h: Allow ROM applications to be linked
+ at "ram" addresses and be automatically relocated at startup time.
+
+1999-09-23 Gary Thomas <gthomas@cygnus.co.uk>
+
+ * src/plf_stub.c:
+ * src/hal_diag.c: Revert [forced] baud rate changes.
+
+1999-09-21 Gary Thomas <gthomas@cygnus.co.uk>
+
+ * misc/lcd_panel_support.c (lcd_panel_server): Take out some prints.
+
+1999-09-18 Gary Thomas <gthomas@cygnus.co.uk>
+ * misc/lcd_support.c (lcd_vprintf):
+ * misc/kbd_support.c (kbd_getc):
+ * misc/kbd_test.c (kbd_exercise): Clean up warnings.
+
+1999-09-16 Gary Thomas <gthomas@cygnus.co.uk>
+
+ * misc/lcd_support.c (lcd_putc): Add cursor support. Fix '\b'.
+
+1999-09-15 Gary Thomas <gthomas@cygnus.co.uk>
+
+ * misc/lcd_panel_support.c (lcd_panel_server): Reorg sampling
+ loop to use a weighted average (try and avoid bad results).
+
+ * misc/kbd_test.c (kbd_exercise): Use new kbd_getc() function.
+
+ * misc/kbd_support.c (kbd_getc): New function.
+
+ * misc/lcd_support.c: Add simple printf() code.
+
+1999-09-13 Gary Thomas <gthomas@cygnus.co.uk>
+
+ * include/pkgconf/mlt_arm_eb7212_ram.ldi:
+ * include/pkgconf/mlt_arm_eb7212_ram.mlt: Fix DRAM limits.
+
+ * include/pkgconf/mlt_arm_eb7211_ram.ldi:
+ * include/pkgconf/mlt_arm_eb7211_ram.mlt: Fix DRAM limits.
+
+1999-09-13 Gary Thomas <gthomas@cygnus.co.uk>
+ * images/gdb_module.bin: Rebuild with date/time stamp. Notice
+ that default baud rate is now 115200.
+
+ * misc/lcd_panel_support.c (lcd_panel_init): Make initialization
+ of LCD panel as stand-alone as possible.
+
+ * misc/lcd_panel_support.c: New file - support split out.
+
+ * misc/panel_test.c (panel_exercise): Reorg test with separate
+ support file.
+
+1999-09-12 Gary Thomas <gthomas@cygnus.co.uk>
+
+ * misc/kbd_support.c: New file. Also change to more or less
+ ignore interrupts since they don't work for many keys!
+
+ * misc/kbd_test.c: Move keyboard support routines to separate
+ file.
+
+1999-09-11 Gary Thomas <gthomas@cygnus.co.uk>
+
+ * src/cl7211_misc.c (hal_hardware_init): Set up platform registers.
+
+1999-09-10 Gary Thomas <gthomas@cygnus.co.uk>
+
+ * include/hal_platform_setup.h: Fix spelling error.
+
+1999-09-09 Gary Thomas <gthomas@cygnus.co.uk>
+ * misc/i2s_audio.c: New test for AUDIO interface.
+
+ * include/hal_cl7211.h: Add I2S definitions for EB7209.
+
+ * misc/kbd_test.c: Major rework. Now uses a separate thread
+ to manage the keyboard, debounce, etc. Result is a series of
+ events placed into a kernel 'mbox'.
+1999-09-08 Gary Thomas <gthomas@cygnus.co.uk>
+
+ * misc/panel_test.c: Trick for these interrupts is that they
+ only happen when the drive is 0x70.
+
+ * misc/kbd_test.c: Found trick to get interrupts - need to leave
+ columns hot!
+
+ * include/pkgconf/mlt_arm_eb7211_rom.mlt:
+ * include/pkgconf/mlt_arm_eb7211_rom.ldi: Change RAM layout.
+
+ * include/pkgconf/mlt_arm_eb7209_rom.mlt:
+ * include/pkgconf/mlt_arm_eb7209_rom.ldi:
+ * include/pkgconf/mlt_arm_eb7212_rom.mlt:
+ * include/pkgconf/mlt_arm_eb7212_rom.ldi: Change RAM layout.
+
+ * src/cl7211_misc.c (hal_hardware_init): Set up various hardware
+ segments (not totally complete).
+ * include/hal_platform_setup.h: Made ROM segment #1 non-cacheable.
+
+ * misc/kbd_test.c: New test for ASCII keyboard. Interrupts
+ not yet working.
+
+ * misc/panel_test.c: Fix panel driving code. Can now read
+ panel samples, but no interrupts.
+
+ * src/cl7211_misc.c: Add missing clear for keyboard interrupt.
+
+1999-09-06 Gary Thomas <gthomas@cygnus.co.uk>
+
+ * misc/PKGconf.mak (PROGS): Add new test.
+
+ * misc/panel_test.c: New file. Test code for LCD touch panel.
+
+ * misc/lcd_support.c: New file.
+
+ * misc/lcd_test.c: Move LCD driving code to 'lcd_support.c' so it
+ can be shared.
+
+1999-09-03 Gary Thomas <gthomas@cygnus.co.uk>
+
+ * misc/lcd_test.c (lcd_drawc): Correct drawing of larger characters.
+
+ * misc/PKGconf.mak: Make LCD test program for all platforms.
+
+ * include/pkgconf/mlt_arm_cl7211_rom.mlt:
+ * include/pkgconf/mlt_arm_cl7211_rom.ldi:
+ * include/pkgconf/mlt_arm_cl7211_ram.mlt:
+ * include/pkgconf/mlt_arm_cl7211_ram.ldi: 72xx has 16M by default.
+
+ * misc/PKGconf.mak: Remove extra [left over] step in make.
+
+1999-09-02 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * misc/PKGconf.mak: Use correct EXEEXT for gdb_module program.
+
+1999-09-02 Gary Thomas <gthomas@cygnus.co.uk>
+
+ * support/io.c (uspin): Change timing - ugly.
+
+ * src/cl7211_misc.c: Disable out BATLOW testing code.
+
+ * include/hal_platform_setup.h: Better setup when LCD is installed.
+
+ * include/pkgconf/hal_arm_cl7211.h: Make LCD installed by default.
+
+ * misc/lcd_test.c: Rework for larger ALPS unit. Also make characters
+ twice as big (so there's a chance at seeing them!)
+
+1999-08-16 John Dallaway <jld@cygnus.co.uk>
+
+ * include/pkgconf/hal_arm_cl7211.h:
+
+ Proper case various display strings.
+
+1999-08-12 John Dallaway <jld@cygnus.co.uk>
+
+ * cdl/hal_arm_cl7211.cdl:
+ Define CYG_HAL_STARTUP and CYGHWR_MEMORY_LAYOUT.
+
+1999-07-28 Gary Thomas <gthomas@cygnus.co.uk>
+
+ * misc/STUBS_config: Update for latest hal.h. Also add way to
+ specify platform (second parameter).
+
+1999-07-14 Hugo Tyson <hmt@cygnus.co.uk>
+
+ * include/hal_cache.h (HAL_UCACHE_LINE_SIZE): Correct the comment
+ and the value: this is supposed to be in bytes.
+
+1999-06-22 Gary Thomas <gthomas@cygnus.co.uk>
+
+ * src/cl7211_misc.c (hal_IRQ_handler): Remove some debug code.
+ Add simple handler for battery low to test FIQ support.
+
+1999-06-18 Gary Thomas <gthomas@cygnus.co.uk>
+
+ * src/plf_stub.c:
+ * src/hal_diag.c: Use pkgconf derived platform include file.
+
+ * src/cl7211_misc.c (hal_hardware_init):
+ * include/pkgconf/hal_arm_cl7211.h: Add configuration control for
+ CPU processor speed. Default to 73.728 MHz.
+
+1999-06-17 Gary Thomas <gthomas@cygnus.co.uk>
+
+ * include/hal_platform_setup.h (MAP_DRAM): 16M layout was wrong.
+
+1999-06-16 Gary Thomas <gthomas@cygnus.co.uk>
+
+ * src/hal_diag.c: Clean up.
+
+ * include/hal_platform_setup.h (PLATFORM_SETUP1):
+ Better MMU initialization for IO segments.
+ (PLATFORM_SETUP1): Add mappings for expansion I/O.
+
+ * src/cl7211_misc.c (hal_hardware_init): Turn on DIAG LED.
+
+ * include/hal_cl7211.h: Add LED flasher definitions.
+
+1999-06-15 Gary Thomas <gthomas@cygnus.co.uk>
+
+ * misc/prog_flash.c: Massive rewrite/upgrade to handle Intel
+ parts that are on the 7211, as well as the ATMEL parts on 7111.
+ This program should work for either and gives a good example
+ of how to access/program/erase the FLASH.
+
+ * include/hal_platform_setup.h (CYGHWR_HAL_ARM_HAS_MMU): Define.
+
+ * misc/PKGconf.mak (gdb_module.img):
+ * include/pkgconf/mlt_arm_cl7211_stubs.mlt:
+ * include/pkgconf/mlt_arm_cl7211_stubs.ldi: Support to allow
+ stubs to be the startup application (GDB on board).
+
+1999-06-14 Gary Thomas <gthomas@cygnus.co.uk>
+
+ * include/hal_cache.h: Turn on FLUSH macros.
+
+1999-06-11 Gary Thomas <gthomas@cygnus.co.uk>
+
+ * include/hal_cache.h: Update with new unified cache support.
+
+1999-06-09 Gary Thomas <gthomas@cygnus.co.uk>
+
+ * include/hal_platform_setup.h (PLATFORM_SETUP1): Remove debug code.
+
+ * include/pkgconf/hal_arm_cl7211.h: Add new configuration options.
+ DRAM size (currently 2M and 16M supported).
+ LCD installed?
+
+ * include/hal_platform_setup.h: Reorganize to support configuration
+ of DRAM size and LCD installed.
+
+1999-05-21 Gary Thomas <gthomas@cygnus.co.uk>
+
+ * include/pkgconf/hal_arm_cl7211.h: New configury to support
+ multiple versions of CLxx11.
+
+1999-05-20 Gary Thomas <gthomas@cygnus.co.uk>
+
+ * include/pkgconf/hal_arm_cl7211.h: Move RTC setup here.
+
+//===========================================================================
+// ####GPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 2 or (at your option) any
+// later version.
+//
+// This program is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the
+// Free Software Foundation, Inc., 51 Franklin Street,
+// Fifth Floor, Boston, MA 02110-1301, USA.
+// -------------------------------------------
+// ####GPLCOPYRIGHTEND####
+//===========================================================================
diff --git a/ecos/packages/hal/arm/edb7xxx/current/cdl/hal_arm_edb7xxx.cdl b/ecos/packages/hal/arm/edb7xxx/current/cdl/hal_arm_edb7xxx.cdl
new file mode 100644
index 0000000..479a0f6
--- /dev/null
+++ b/ecos/packages/hal/arm/edb7xxx/current/cdl/hal_arm_edb7xxx.cdl
@@ -0,0 +1,695 @@
+# ====================================================================
+#
+# hal_arm_edb7xxx.cdl
+#
+# Cirrus Logic EDB7XXX evaluation board HAL package configuration data
+#
+# ====================================================================
+## ####ECOSGPLCOPYRIGHTBEGIN####
+## -------------------------------------------
+## This file is part of eCos, the Embedded Configurable Operating System.
+## Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
+##
+## eCos is free software; you can redistribute it and/or modify it under
+## the terms of the GNU General Public License as published by the Free
+## Software Foundation; either version 2 or (at your option) any later
+## version.
+##
+## eCos is distributed in the hope that it will be useful, but WITHOUT
+## ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+## FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+## for more details.
+##
+## You should have received a copy of the GNU General Public License
+## along with eCos; if not, write to the Free Software Foundation, Inc.,
+## 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+##
+## As a special exception, if other files instantiate templates or use
+## macros or inline functions from this file, or you compile this file
+## and link it with other works to produce a work based on this file,
+## this file does not by itself cause the resulting work to be covered by
+## the GNU General Public License. However the source code for this file
+## must still be made available in accordance with section (3) of the GNU
+## General Public License v2.
+##
+## This exception does not invalidate any other reasons why a work based
+## on this file might be covered by the GNU General Public License.
+## -------------------------------------------
+## ####ECOSGPLCOPYRIGHTEND####
+# ====================================================================
+######DESCRIPTIONBEGIN####
+#
+# Author(s): jskov
+# Original data: gthomas
+# Contributors:
+# Date: 1999-07-01
+#
+#####DESCRIPTIONEND####
+#
+# ====================================================================
+
+cdl_package CYGPKG_HAL_ARM_EDB7XXX {
+ display "Cirrus Logic ARM7 based development boards"
+ parent CYGPKG_HAL_ARM
+ include_dir cyg/hal
+ hardware
+ define_header hal_arm_edb7xxx.h
+ description "
+The EDB7XXX HAL package provides the support needed to run eCos on Cirrus Logic
+CL-PS7111 and EP7xxx based development boards."
+
+ compile hal_diag.c edb7xxx_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_COMM_BAUD_SUPPORT
+ implements CYGINT_HAL_ARM_ARCH_ARM7
+ implements CYGINT_HAL_SUPPORTS_MMU_TABLES
+
+ define_proc {
+ puts $::cdl_system_header "#define CYGBLD_HAL_TARGET_H <pkgconf/hal_arm.h>"
+ puts $::cdl_system_header "#define CYGBLD_HAL_PLATFORM_H <pkgconf/hal_arm_edb7xxx.h>"
+ puts $::cdl_header "#define HAL_PLATFORM_MACHINE_TYPE 131"
+ puts $::cdl_header "#define CYGHWR_REDBOOT_ARM_TRAMPOLINE_ADDRESS 0x00001f00"
+ }
+
+ requires { (CYGBLD_BUILD_REDBOOT_WITH_EXEC == 0) || \
+ (CYGHWR_REDBOOT_ARM_LINUX_EXEC_ADDRESS_DEFAULT == 0xC0038000) }
+
+ cdl_option CYGHWR_HAL_ARM_EDB7XXX_VARIANT {
+ display "Cirrus Logic processor variant"
+ flavor data
+ legal_values { "CL_PS7111" "EP7209" "EP7211" "EP7212" "EP7312" }
+ default_value { "EP7211" }
+ description "
+ The Cirrus Logic processor variant."
+ define -file system.h CYGHWR_HAL_ARM_EDB7XXX_VARIANT
+ }
+
+ cdl_option CYGHWR_HAL_ARM_EDB7XXX_BOARD_VARIANT {
+ display "Cirrus Logic board variant"
+ flavor data
+ legal_values { "CL7111" "EDB7209" "EDB7211" "EDB7212" "EDB7312" }
+ default_value { CYGHWR_HAL_ARM_EDB7XXX_VARIANT == "CL_PS7111" ? "CL7111" : \
+ CYGHWR_HAL_ARM_EDB7XXX_VARIANT == "EP7209" ? "EDB7209" : \
+ CYGHWR_HAL_ARM_EDB7XXX_VARIANT == "EP7211" ? "EDB7211" : \
+ CYGHWR_HAL_ARM_EDB7XXX_VARIANT == "EP7212" ? "EDB7212" : \
+ CYGHWR_HAL_ARM_EDB7XXX_VARIANT == "EP7312" ? "EDB7312" : \
+ "" }
+ description "
+ The board type which uses a Cirrus Logic processor variant."
+ define -file system.h CYGHWR_HAL_ARM_EDB7XXX_BOARD_VARIANT
+ define_proc {
+ puts $::cdl_header ""
+ puts $::cdl_header "#ifdef CYGHWR_HAL_ARM_EDB7XXX_BOARD_VARIANT_CL7111"
+ puts $::cdl_header "#define HAL_PLATFORM_CPU \"ARM 710C\""
+ puts $::cdl_header "#define HAL_PLATFORM_BOARD \"Cirrus Logic CL-PS7111\""
+ puts $::cdl_header "#define HAL_PLATFORM_EXTRA \"\""
+ puts $::cdl_header "#define __CL7111"
+ puts $::cdl_header "#endif //CYGHWR_HAL_ARM_EDB7XXX_BOARD_VARIANT_CL7111"
+ puts $::cdl_header ""
+ puts $::cdl_header "#ifdef CYGHWR_HAL_ARM_EDB7XXX_BOARD_VARIANT_EDB7209"
+ puts $::cdl_header "#define HAL_PLATFORM_CPU \"ARM 720T\""
+ puts $::cdl_header "#define HAL_PLATFORM_BOARD \"Cirrus Logic EDB7209\""
+ puts $::cdl_header "#define HAL_PLATFORM_EXTRA \"\""
+ puts $::cdl_header "#define __EDB7209"
+ puts $::cdl_header "#endif //CYGHWR_HAL_ARM_EDB7XXX_BOARD_VARIANT_EDB7209"
+ puts $::cdl_header ""
+ puts $::cdl_header "#ifdef CYGHWR_HAL_ARM_EDB7XXX_BOARD_VARIANT_EDB7211"
+ puts $::cdl_header "#define HAL_PLATFORM_CPU \"ARM 720T\""
+ puts $::cdl_header "#define HAL_PLATFORM_BOARD \"Cirrus Logic EDB7211\""
+ puts $::cdl_header "#define HAL_PLATFORM_EXTRA \"\""
+ puts $::cdl_header "#define __EDB7211"
+ puts $::cdl_header "#endif //CYGHWR_HAL_ARM_EDB7XXX_BOARD_VARIANT_EDB7211"
+ puts $::cdl_header ""
+ puts $::cdl_header "#ifdef CYGHWR_HAL_ARM_EDB7XXX_BOARD_VARIANT_EDB7212"
+ puts $::cdl_header "#define HAL_PLATFORM_CPU \"ARM 720T\""
+ puts $::cdl_header "#define HAL_PLATFORM_BOARD \"Cirrus Logic EDB7212\""
+ puts $::cdl_header "#define HAL_PLATFORM_EXTRA \"\""
+ puts $::cdl_header "#define __EDB7209"
+ puts $::cdl_header "#define __EDB7212"
+ puts $::cdl_header "#endif //CYGHWR_HAL_ARM_EDB7XXX_BOARD_VARIANT_EDB7212"
+ puts $::cdl_header ""
+ puts $::cdl_header "#ifdef CYGHWR_HAL_ARM_EDB7XXX_BOARD_VARIANT_EDB7312"
+ puts $::cdl_header "#define HAL_PLATFORM_CPU \"ARM 720T\""
+ puts $::cdl_header "#define HAL_PLATFORM_BOARD \"Cogent EDB7312\""
+ puts $::cdl_header "#define HAL_PLATFORM_EXTRA \"Cirrus Logic EP7312\""
+ puts $::cdl_header "#define __EDB7312"
+ puts $::cdl_header "#endif //CYGHWR_HAL_ARM_EDB7XXX_BOARD_VARIANT_EDB7312"
+ puts $::cdl_header ""
+ }
+ }
+
+ cdl_component CYG_HAL_STARTUP {
+ display "Startup type"
+ flavor data
+ legal_values { "ROM"
+ ((CYGHWR_HAL_ARM_EDB7XXX_VARIANT == "EP7209") ? "" : "RAM")
+ ((CYGHWR_HAL_ARM_EDB7XXX_VARIANT == "EP7312") ? "ROMRAM" : "")
+ }
+ default_value { CYGHWR_HAL_ARM_EDB7XXX_VARIANT == "EP7209" ? "ROM" : "RAM"}
+ no_define
+ define -file system.h CYG_HAL_STARTUP
+ description "
+ When targetting the Cirrus Logic evaluation boards 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 onboard
+ debug software such as Angel or eCos GDB stubs. Select 'rom'
+ when building a stand-alone application which will be put
+ into ROM."
+ }
+
+ 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 controls the baud rate used for the GDB connection."
+ }
+
+ cdl_component CYGSEM_EDB7XXX_LCD_COMM {
+ display "Support LCD/touchscreen for comminication channel"
+ active_if CYGPKG_REDBOOT && {CYGHWR_HAL_ARM_EDB7XXX_VARIANT == "EP7312"}
+ flavor bool
+ default_value 1
+ compile lcd_support.c
+ description "
+ Enabling this option will use the LCD and touchscreen for a
+ communications channel, suitable for RedBoot, etc."
+
+ cdl_option CYGSEM_EDB7XXX_LCD_COMM_PORTRAIT_MODE {
+ display "LCD portrait mode"
+ flavor bool
+ default_value 0
+ description "
+ Setting this option will orient the data on the LCD screen
+ in portrait (240x320) mode."
+ }
+
+ cdl_option CYGOPT_EDB7XXX_LCD_COMM_LOGO {
+ display "RedHat logo location"
+ flavor booldata
+ legal_values { "TOP" "BOTTOM" }
+ default_value { "TOP" }
+ description "
+ Use this option to control where the RedHat logo is placed
+ on the LCD screen."
+ }
+ }
+
+ cdl_option CYGNUM_HAL_VIRTUAL_VECTOR_COMM_CHANNELS {
+ display "Number of communication channels on the board"
+ flavor data
+ calculated 2+CYGSEM_EDB7XXX_LCD_COMM
+ }
+
+ 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 0
+ }
+
+ cdl_option CYGNUM_HAL_VIRTUAL_VECTOR_DEBUG_CHANNEL {
+ display "Debug serial port"
+ active_if CYGPRI_HAL_VIRTUAL_VECTOR_DEBUG_CHANNEL_CONFIGURABLE
+ flavor data
+ legal_values 0 to CYGNUM_HAL_VIRTUAL_VECTOR_COMM_CHANNELS-1
+ default_value 0
+ description "
+ The EDB7xxx boards have 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"
+ active_if CYGPRI_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_CONFIGURABLE
+ flavor data
+ legal_values 0 to CYGNUM_HAL_VIRTUAL_VECTOR_COMM_CHANNELS-1
+ default_value CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_DEFAULT
+ description "
+ The EDB7xxx boards have two serial ports. This option
+ chooses which port will be used for diagnostic output."
+ }
+
+ cdl_option CYGHWR_HAL_ARM_EDB7XXX_PROCESSOR_CLOCK {
+ display "Processor clock rate (kHz)"
+ flavor data
+ legal_values 18432 36864 49152 73728 90317
+ default_value { CYGHWR_HAL_ARM_EDB7XXX_VARIANT == "CL_PS7111" ? 18432 : 73728 }
+ description "
+ The processor can run at various frequencies."
+ }
+
+ cdl_option CYGHWR_HAL_ARM_EDB7XXX_DRAM_SIZE {
+ display "Installed DRAM on board"
+ flavor data
+ legal_values 0 2 16
+ default_value { CYGHWR_HAL_ARM_EDB7XXX_BOARD_VARIANT == "CL7111" ? 2 : \
+ CYGHWR_HAL_ARM_EDB7XXX_BOARD_VARIANT == "EDB7209" ? 0 : 16 }
+ description "
+ The Cirrus Logic boards can have various amounts of DRAM installed.
+ The machine needs to be initialized differently, depending
+ upon the amount installed."
+ }
+
+ cdl_option CYGHWR_HAL_ARM_EDB7XXX_SOFTWARE_DRAM_REFRESH {
+ display "Perform DRAM refresh in software"
+ flavor bool
+ default_value 0
+ description "
+ This option will add code that refreshes the DRAM by
+ touching all of DRAM during the system clock interrupt
+ processing."
+ }
+
+ cdl_option CYGHWR_HAL_ARM_EDB7XXX_LCD_INSTALLED {
+ display "LCD installed"
+ flavor bool
+ default_value 1
+ description "
+ If an LCD panel is installed, 128K of DRAM will be dedicated to the
+ LCD buffer by the system intialization. Note: changing this value
+ from the default will alter the memory map and a new debug enviroment
+ (GDB or RedBoot) may be required."
+ }
+
+ # 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
+ default_value 1000000000
+ }
+ cdl_option CYGNUM_HAL_RTC_DENOMINATOR {
+ display "Real-time clock denominator"
+ flavor data
+ default_value 100
+ }
+ cdl_option CYGNUM_HAL_RTC_PERIOD {
+ display "Real-time clock period"
+ flavor data
+ default_value { CYGHWR_HAL_ARM_EDB7XXX_PROCESSOR_CLOCK <= 73728 ? 5120 : 6272 };
+ # Assumes 512KHz clock - usually.
+ }
+ }
+
+ cdl_component CYGBLD_GLOBAL_OPTIONS {
+ display "Global build options"
+ flavor none
+ 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-eabi"}
+ 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 { CYGBLD_GLOBAL_WARNFLAGS . CYGBLD_ARCH_CFLAGS .
+ (CYGHWR_HAL_ARM_EDB7XXX_VARIANT == "CL_PS7111" ? "-mcpu=arm710c" : "-mcpu=arm7tdmi") .
+ " -g -O2 -ffunction-sections -fdata-sections -fno-rtti -fno-exceptions "
+ }
+ 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 { CYGBLD_ARCH_LDFLAGS .
+ (CYGHWR_HAL_ARM_EDB7XXX_VARIANT == "CL_PS7111" ? "-mcpu=arm710c" : "-mcpu=arm7tdmi" ) .
+ " -Wl,--gc-sections -Wl,-static -g -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") || (CYG_HAL_STARTUP == "ROMRAM") }
+ 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 CYGBLD_BUILD_FLASH_TOOL {
+ display "Build flash programming tool"
+ default_value 0
+ requires { CYG_HAL_STARTUP == "RAM" }
+ requires CYGPKG_LIBC
+ requires CYGPKG_KERNEL
+ no_define
+ description "This option enables the building of the flash programming tool for copying the GDB stubs into flash memory."
+
+ make -priority 320 {
+ <PREFIX>/bin/prog_flash.img : <PACKAGE>/misc/prog_flash.c
+ @sh -c "mkdir -p misc $(dir $@)"
+ $(CC) -c $(INCLUDE_PATH) -Wp,-MD,deps.tmp -I$(dir $<) $(CFLAGS) -o misc/prog_flash.o $<
+ @echo $@ ": \\" > $(notdir $@).deps
+ @echo $(wildcard $(PREFIX)/lib/*) " \\" >> $(notdir $@).deps
+ @tail -n +2 deps.tmp >> $(notdir $@).deps
+ @echo >> $(notdir $@).deps
+ @rm deps.tmp
+ $(CC) $(LDFLAGS) -L$(PREFIX)/lib -Ttarget.ld -o $@ misc/prog_flash.o
+ }
+ }
+
+ cdl_option CYGBLD_BUILD_AUX_TESTS {
+ display "Build tests for auxiliaries"
+ default_value 0
+ requires { CYG_HAL_STARTUP == "RAM" }
+ requires CYGPKG_LIBC
+ requires CYGPKG_KERNEL
+ no_define
+ description "
+ This option enables the building of some tests for the
+ auxiliary devices."
+
+ make -priority 320 {
+ <PREFIX>/bin/lcd_test.img : <PACKAGE>/misc/lcd_test.c
+ @sh -c "mkdir -p misc $(dir $@)"
+ $(CC) -c $(INCLUDE_PATH) -Wp,-MD,deps.tmp -I$(dir $<) $(CFLAGS) -o misc/lcd_test.o $<
+ @echo $@ ": \\" > $(notdir $@).deps
+ @echo $(wildcard $(PREFIX)/lib/*) " \\" >> $(notdir $@).deps
+ @tail -n +2 deps.tmp >> $(notdir $@).deps
+ @echo >> $(notdir $@).deps
+ @rm deps.tmp
+ $(CC) $(LDFLAGS) -L$(PREFIX)/lib -Ttarget.ld -o $@ misc/lcd_test.o
+ }
+
+ make -priority 320 {
+ <PREFIX>/bin/panel_test.img : <PACKAGE>/misc/panel_test.c
+ @sh -c "mkdir -p misc $(dir $@)"
+ $(CC) -c $(INCLUDE_PATH) -Wp,-MD,deps.tmp -I$(dir $<) $(CFLAGS) -o misc/panel_test.o $<
+ @echo $@ ": \\" > $(notdir $@).deps
+ @echo $(wildcard $(PREFIX)/lib/*) " \\" >> $(notdir $@).deps
+ @tail -n +2 deps.tmp >> $(notdir $@).deps
+ @echo >> $(notdir $@).deps
+ @rm deps.tmp
+ $(CC) $(LDFLAGS) -L$(PREFIX)/lib -Ttarget.ld -o $@ misc/panel_test.o
+ }
+
+ make -priority 320 {
+ <PREFIX>/bin/kbd_test.img : <PACKAGE>/misc/kbd_test.c
+ @sh -c "mkdir -p misc $(dir $@)"
+ $(CC) -c $(INCLUDE_PATH) -Wp,-MD,deps.tmp -I$(dir $<) $(CFLAGS) -o misc/kbd_test.o $<
+ @echo $@ ": \\" > $(notdir $@).deps
+ @echo $(wildcard $(PREFIX)/lib/*) " \\" >> $(notdir $@).deps
+ @tail -n +2 deps.tmp >> $(notdir $@).deps
+ @echo >> $(notdir $@).deps
+ @rm deps.tmp
+ $(CC) $(LDFLAGS) -L$(PREFIX)/lib -Ttarget.ld -o $@ misc/kbd_test.o
+ }
+
+ make -priority 320 {
+ <PREFIX>/bin/i2s_audio_test.img : <PACKAGE>/misc/i2s_audio_test.c <PACKAGE>/misc/i2s_audio_fiq.S
+ @sh -c "mkdir -p misc $(dir $@)"
+ $(CC) -c $(INCLUDE_PATH) -Wp,-MD,deps.tmp -I$(dir $<) $(CFLAGS) -o misc/i2s_audio_test.o $<
+ @echo $@ ": \\" > $(notdir $@).deps
+ @echo $(wildcard $(PREFIX)/lib/*) " \\" >> $(notdir $@).deps
+ @tail -n +2 deps.tmp >> $(notdir $@).deps
+ @echo >> $(notdir $@).deps
+ # warning: no proper deps here
+ $(CC) -c $(INCLUDE_PATH) -I$(dir $<) $(CFLAGS) -o misc/i2s_audio_fiq.o $(REPOSITORY)/$(PACKAGE)/misc/i2s_audio_fiq.S
+ $(CC) $(LDFLAGS) -L$(PREFIX)/lib -Ttarget.ld -o $@ misc/i2s_audio_test.o misc/i2s_audio_fiq.o
+ }
+
+ }
+ }
+
+
+ cdl_component CYGPKG_HAL_ARM_EDB7XXX_OPTIONS {
+ display "Cirrus Logic 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."
+
+# Note: now defined in <pkgconf/hal.h>
+# default_value { CYGHWR_HAL_ARM_EDB7XXX_VARIANT == "CL_PS7111" ? "-D__CL7111" :
+# CYGHWR_HAL_ARM_EDB7XXX_VARIANT == "EP7209" ? "-D__EDB7209" :
+# CYGHWR_HAL_ARM_EDB7XXX_VARIANT == "EP7211" ? "-D__EDB7211" :
+# CYGHWR_HAL_ARM_EDB7XXX_VARIANT == "EP7212" ? "-D__EDB7209 -D__EDB7212" :
+# CYGHWR_HAL_ARM_EDB7XXX_VARIANT == "EP7312" ? "-D__EDB7312" :
+# "" }
+
+ cdl_option CYGPKG_HAL_ARM_EDB7XXX_CFLAGS_ADD {
+ display "Additional compiler flags"
+ flavor data
+ no_define
+ default_value { "" }
+ description "
+ This option modifies the set of compiler flags for
+ building the Cirrus Logic HAL. These flags are used in addition
+ to the set of global flags."
+ }
+
+ cdl_option CYGPKG_HAL_ARM_EDB7XXX_CFLAGS_REMOVE {
+ display "Suppressed compiler flags"
+ flavor data
+ no_define
+ default_value { "" }
+ description "
+ This option modifies the set of compiler flags for
+ building the Cirrus Logic HAL. These flags are removed from
+ the set of global flags if present."
+ }
+
+ cdl_option CYGPKG_HAL_ARM_EDB7XXX_TESTS {
+ display "Cirrus Logic tests"
+ flavor data
+ no_define
+ calculated { "tests/dram_test" }
+ description "
+ This option specifies the set of tests for the Cirrus Logic HAL."
+ }
+ }
+
+ cdl_component CYGHWR_MEMORY_LAYOUT {
+ display "Memory layout"
+ flavor data
+ no_define
+ calculated {
+ CYGHWR_HAL_ARM_EDB7XXX_BOARD_VARIANT == "CL7111" ?
+ (CYG_HAL_STARTUP == "RAM" ? "arm_cl7111_ram" : \
+ CYG_HAL_STARTUP == "ROM" ? "arm_cl7111_rom" : "BOGUS.mlt" ) : \
+ CYGHWR_HAL_ARM_EDB7XXX_BOARD_VARIANT == "EDB7209" ?
+ (CYG_HAL_STARTUP == "ROM" ? "arm_edb7209_rom" : "BOGUS.mlt" ) : \
+ CYGHWR_HAL_ARM_EDB7XXX_BOARD_VARIANT == "EDB7211" ?
+ (CYG_HAL_STARTUP == "RAM" ? "arm_edb7211_ram" : \
+ CYG_HAL_STARTUP == "ROM" ? "arm_edb7211_rom" : "BOGUS.mlt" ) : \
+ CYGHWR_HAL_ARM_EDB7XXX_BOARD_VARIANT == "EDB7212" ?
+ (CYG_HAL_STARTUP == "RAM" ? "arm_edb7212_ram" : \
+ CYG_HAL_STARTUP == "ROM" ? "arm_edb7212_rom" : "BOGUS.mlt" ) : \
+ CYGHWR_HAL_ARM_EDB7XXX_BOARD_VARIANT == "EDB7312" ?
+ (CYG_HAL_STARTUP == "RAM" ? "arm_edb7312_ram" : \
+ CYG_HAL_STARTUP == "ROMRAM" ? "arm_edb7312_romram" : \
+ CYG_HAL_STARTUP == "ROM" ? "arm_edb7312_rom" : "BOGUS.mlt" ) : \
+ "BOGUS.mlt"
+ }
+
+ 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 {
+ CYGHWR_HAL_ARM_EDB7XXX_BOARD_VARIANT == "CL7111" ?
+ (CYG_HAL_STARTUP == "RAM" ? "<pkgconf/mlt_arm_cl7111_ram.ldi>" : \
+ CYG_HAL_STARTUP == "ROM" ? "<pkgconf/mlt_arm_cl7111_rom.ldi>" : "BOGUS.ldi" ) : \
+ CYGHWR_HAL_ARM_EDB7XXX_BOARD_VARIANT == "EDB7209" ?
+ (CYG_HAL_STARTUP == "ROM" ? "<pkgconf/mlt_arm_edb7209_rom.ldi>" : "BOGUS.ldi" ) : \
+ CYGHWR_HAL_ARM_EDB7XXX_BOARD_VARIANT == "EDB7211" ?
+ (CYG_HAL_STARTUP == "RAM" ? "<pkgconf/mlt_arm_edb7211_ram.ldi>" : \
+ CYG_HAL_STARTUP == "ROM" ? "<pkgconf/mlt_arm_edb7211_rom.ldi>" : "BOGUS.ldi" ) : \
+ CYGHWR_HAL_ARM_EDB7XXX_BOARD_VARIANT == "EDB7212" ?
+ (CYG_HAL_STARTUP == "RAM" ? "<pkgconf/mlt_arm_edb7212_ram.ldi>" : \
+ CYG_HAL_STARTUP == "ROM" ? "<pkgconf/mlt_arm_edb7212_rom.ldi>" : "BOGUS.ldi" ) : \
+ CYGHWR_HAL_ARM_EDB7XXX_BOARD_VARIANT == "EDB7312" ?
+ (CYG_HAL_STARTUP == "RAM" ? "<pkgconf/mlt_arm_edb7312_ram.ldi>" : \
+ CYG_HAL_STARTUP == "ROMRAM" ? "<pkgconf/mlt_arm_edb7312_romram.ldi>" : \
+ CYG_HAL_STARTUP == "ROM" ? "<pkgconf/mlt_arm_edb7312_rom.ldi>" : "BOGUS.ldi" ) : \
+ "BOGUS.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 {
+ CYGHWR_HAL_ARM_EDB7XXX_BOARD_VARIANT == "CL7111" ?
+ (CYG_HAL_STARTUP == "RAM" ? "<pkgconf/mlt_arm_cl7111_ram.h>" : \
+ CYG_HAL_STARTUP == "ROM" ? "<pkgconf/mlt_arm_cl7111_rom.h>" : "BOGUS.h" ) : \
+ CYGHWR_HAL_ARM_EDB7XXX_BOARD_VARIANT == "EDB7209" ?
+ (CYG_HAL_STARTUP == "ROM" ? "<pkgconf/mlt_arm_edb7209_rom.h>" : "BOGUS.h" ) : \
+ CYGHWR_HAL_ARM_EDB7XXX_BOARD_VARIANT == "EDB7211" ?
+ (CYG_HAL_STARTUP == "RAM" ? "<pkgconf/mlt_arm_edb7211_ram.h>" : \
+ CYG_HAL_STARTUP == "ROM" ? "<pkgconf/mlt_arm_edb7211_rom.h>" : "BOGUS.h" ) : \
+ CYGHWR_HAL_ARM_EDB7XXX_BOARD_VARIANT == "EDB7212" ?
+ (CYG_HAL_STARTUP == "RAM" ? "<pkgconf/mlt_arm_edb7212_ram.h>" : \
+ CYG_HAL_STARTUP == "ROM" ? "<pkgconf/mlt_arm_edb7212_rom.h>" : "BOGUS.h" ) : \
+ CYGHWR_HAL_ARM_EDB7XXX_BOARD_VARIANT == "EDB7312" ?
+ (CYG_HAL_STARTUP == "RAM" ? "<pkgconf/mlt_arm_edb7312_ram.h>" : \
+ CYG_HAL_STARTUP == "ROMRAM" ? "<pkgconf/mlt_arm_edb7312_romram.h>" : \
+ CYG_HAL_STARTUP == "ROM" ? "<pkgconf/mlt_arm_edb7312_rom.h>" : "BOGUS.h" ) : \
+ "BOGUS.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") || (CYG_HAL_STARTUP == "ROMRAM") }
+ 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_component CYGPKG_CYGMON_HAL_OPTIONS {
+ display "CygMon HAL options"
+ flavor none
+ no_define
+ parent CYGPKG_CYGMON
+ active_if CYGPKG_CYGMON
+ requires CYGPKG_IO_SERIAL_ARM_EDB7XXX
+ requires {(CYGDAT_CYGMON_CONSOLE_DEV != "\"/dev/ser1\"") || \
+ (CYGPKG_IO_SERIAL_ARM_EDB7XXX_SERIAL1)}
+ requires {(CYGDAT_CYGMON_CONSOLE_DEV != "\"/dev/ser2\"") || \
+ (CYGPKG_IO_SERIAL_ARM_EDB7XXX_SERIAL2)}
+ description "
+ This option lists the target's requirements for a valid CygMon
+ configuration."
+
+
+ cdl_option CYGDAT_CYGMON_CONSOLE_DEV {
+ display "Serial port for default console"
+ flavor data
+ default_value { "\"/dev/ser1\"" }
+ description "
+ This option selects the physical device to use as the default
+ console device for CygMon."
+
+ }
+
+ cdl_option CYGBLD_BUILD_CYGMON_BIN {
+ display "Build CygMon ROM binary image"
+ active_if CYGBLD_BUILD_CYGMON
+ default_value 1
+ no_define
+ description "This option enables the conversion of the CygMon ELF
+ image to a binary image suitable for ROM programming."
+
+ make -priority 325 {
+ <PREFIX>/bin/cygmon.bin : <PREFIX>/bin/cygmon.elf
+ $(OBJCOPY) --strip-debug $< $(@:.bin=.img)
+ $(OBJCOPY) -O srec $< $(@:.bin=.srec)
+ $(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_REDBOOT_HAL_OPTIONS {
+ display "Redboot HAL options"
+ flavor none
+ no_define
+ parent CYGPKG_REDBOOT
+ active_if CYGPKG_REDBOOT
+ description "
+ This option lists the target's requirements for a valid Redboot
+ configuration."
+
+ 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 $< $@
+ }
+ }
+ }
+
+}
diff --git a/ecos/packages/hal/arm/edb7xxx/current/include/hal_cache.h b/ecos/packages/hal/arm/edb7xxx/current/include/hal_cache.h
new file mode 100644
index 0000000..d52547a
--- /dev/null
+++ b/ecos/packages/hal/arm/edb7xxx/current/include/hal_cache.h
@@ -0,0 +1,340 @@
+#ifndef CYGONCE_HAL_CACHE_H
+#define CYGONCE_HAL_CACHE_H
+
+//=============================================================================
+//
+// hal_cache.h
+//
+// HAL cache control API
+//
+//=============================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): nickg, gthomas
+// Contributors: nickg, gthomas
+// Date: 1998-09-28
+// 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 <cyg/infra/cyg_type.h>
+#include <cyg/hal/hal_mmu.h>
+
+//-----------------------------------------------------------------------------
+// FIXME: This definition forces the IO flash driver to use a
+// known-good procedure for fiddling flash before calling flash device
+// driver functions. The procedure breaks on other platform/driver
+// combinations though so is depricated. Hence this definition.
+//
+// If you work on this target, please try to remove this definition
+// and verify that the flash driver still works (both from RAM and
+// flash). If it does, remove the definition and this comment for good
+// [and the old macro definition if this happens to be the last client
+// of that code].
+#define HAL_FLASH_CACHES_OLD_MACROS
+
+//-----------------------------------------------------------------------------
+// Cache dimensions
+
+#define HAL_UCACHE_SIZE 0x2000 // Size of data cache in bytes
+#define HAL_UCACHE_LINE_SIZE 16 // Size of a data cache line
+#define HAL_UCACHE_WAYS 4 // Associativity of the cache
+#define HAL_UCACHE_SETS (HAL_UCACHE_SIZE/(HAL_UCACHE_LINE_SIZE*HAL_UCACHE_WAYS))
+
+#define HAL_CACHE_UNIFIED // Let programs know the caches are combined
+
+//-----------------------------------------------------------------------------
+// Global control of caches
+
+// Note: the 'mrc' doesn't seem to work.
+#if 0
+// Enable the data cache
+// mrc MMU_CP,0,r1,MMU_Control,c0
+// orr r1,r1,#MMU_Control_C|MMU_Control_B
+// mcr MMU_CP,0,r1,MMU_Control,c0
+
+#define HAL_UCACHE_ENABLE() \
+{ \
+ asm volatile ("mrc p15,0,r1,c1,c0;" \
+ "orr r1,r1,#0x000C;" \
+ "mcr p15,0,r1,c1,c0;" \
+ : \
+ : \
+ : "r1" /* Clobber list */ \
+ ); \
+ \
+}
+
+// Disable the data cache
+#define HAL_UCACHE_DISABLE() \
+{ \
+ asm volatile ("mrc p15,0,r1,c1,c0;" \
+ "bic r1,r1,#0x000C;" \
+ "mcr p15,0,r1,c1,c0;" \
+ : \
+ : \
+ : "r1" /* Clobber list */ \
+ ); \
+ \
+}
+#else
+#define HAL_UCACHE_ENABLE() \
+{ \
+ asm volatile ("mov r1,#0x7D;" \
+ "mcr p15,0,r1,c1,c0,0;" \
+ : \
+ : \
+ : "r1" /* Clobber list */ \
+ ); \
+}
+
+// Disable the data cache
+#define HAL_UCACHE_DISABLE() \
+{ \
+ asm volatile ("mov r1,#0x71;" \
+ "mcr p15,0,r1,c1,c0,0;" \
+ "mov r1,#0;" \
+ "mcr p15,0,r1,c8,c7,0;" /* flush I+D TLBs */ \
+ "nop; nop; nop; nop; nop;" \
+ : \
+ : \
+ : "r1" /* Clobber list */ \
+ ); \
+}
+#endif
+
+// Is the cache turned on?
+#define HAL_UCACHE_IS_ENABLED(_state_) _state_ = 1;
+
+// Invalidate the entire cache
+// mcr MMU_CP,0,r1,MMU_InvalidateCache,c0
+#define HAL_UCACHE_INVALIDATE_ALL() \
+{ \
+ asm volatile ( \
+ "mov r1,#0;" \
+ "mcr p15,0,r1,c7,c7,0;" \
+ : \
+ : \
+ : "r1","memory" /* Clobber list */ \
+ ); \
+ \
+}
+
+// Synchronize the contents of the cache with memory.
+#define HAL_UCACHE_SYNC() \
+{ \
+ cyg_uint32 *RAM = (cyg_uint32 *)0x00000000; \
+ int i; \
+ volatile cyg_uint32 val; \
+ for (i = 0; i < HAL_UCACHE_SETS; i++) { \
+ val = *RAM; \
+ RAM += HAL_UCACHE_LINE_SIZE; \
+ } \
+}
+
+// Purge contents of data cache
+#define HAL_UCACHE_PURGE_ALL() HAL_UCACHE_INVALIDATE_ALL()
+
+// Set the data cache refill burst size
+//#define HAL_UCACHE_BURST_SIZE(_size_)
+
+// Set the data cache write mode
+//#define HAL_UCACHE_WRITE_MODE( _mode_ )
+
+//#define HAL_UCACHE_WRITETHRU_MODE 0
+//#define HAL_UCACHE_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_UCACHE_LOCK(_base_, _size_)
+
+// Undo a previous lock operation
+//#define HAL_UCACHE_UNLOCK(_base_, _size_)
+
+// Unlock entire cache
+//#define HAL_UCACHE_UNLOCK_ALL()
+
+//-----------------------------------------------------------------------------
+// Data 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_ ) HAL_UCACHE_SYNC()
+
+// 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_ ) HAL_UCACHE_SYNC()
+
+// 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_ )
+
+//-----------------------------------------------------------------------------
+// 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_ ) HAL_UCACHE_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 - use Data cache controls since they
+// are not separatable.
+
+#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()
+
+// Is the cache turned on?
+#define HAL_ICACHE_IS_ENABLED(_state_) HAL_UCACHE_IS_ENABLED(_state_)
+
+// 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()
+
+// 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
diff --git a/ecos/packages/hal/arm/edb7xxx/current/include/hal_diag.h b/ecos/packages/hal/arm/edb7xxx/current/include/hal_diag.h
new file mode 100644
index 0000000..7841970
--- /dev/null
+++ b/ecos/packages/hal/arm/edb7xxx/current/include/hal_diag.h
@@ -0,0 +1,94 @@
+#ifndef CYGONCE_HAL_DIAG_H
+#define CYGONCE_HAL_DIAG_H
+
+/*=============================================================================
+//
+// hal_diag.h
+//
+// HAL Support for Kernel Diagnostic Routines
+//
+//=============================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): nickg, gthomas
+// Contributors: nickg, gthomas
+// Date: 1998-09-11
+// 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_)
+
+// Not the best place for this, but ...
+externC void hal_delay_us(cyg_int32 usecs);
+
+#define HAL_DELAY_US(n) hal_delay_us(n);
+
+#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_DIAG_H */
diff --git a/ecos/packages/hal/arm/edb7xxx/current/include/hal_edb7xxx.h b/ecos/packages/hal/arm/edb7xxx/current/include/hal_edb7xxx.h
new file mode 100644
index 0000000..f60344e
--- /dev/null
+++ b/ecos/packages/hal/arm/edb7xxx/current/include/hal_edb7xxx.h
@@ -0,0 +1,405 @@
+#ifndef CYGONCE_HAL_EDB7XXX_H
+#define CYGONCE_HAL_EDB7XXX_H
+
+/*=============================================================================
+//
+// hal_edb7xxx.h
+//
+// HAL Support for Kernel Diagnostic Routines
+//
+//=============================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): gthomas
+// Contributors: gthomas
+// Date: 1999-04-19
+// Purpose: Cirrus Logic EDB7XXX hardware description
+// Description:
+// Usage: #include <cyg/hal/hal_edb7xxx.h>
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================*/
+
+// Note: these defintions match the documentation, thus no attempt is made
+// to sanitise (mangle) the names. Also, care should be taken to keep this
+// clean for use in assembly code (no "C" constructs).
+
+// Comment above notwithstanding, this is needed for the clock UART_DIVISOR
+// selection below.
+#include <pkgconf/hal_arm_edb7xxx.h>
+
+#define PADR 0x80000000 // Port A data register
+#define PBDR 0x80000001 // Port B data register
+#define PDDR 0x80000003 // Port D data register
+#define PADDR 0x80000040 // Port A data direction register
+#define PBDDR 0x80000041 // Port B data direction register
+#define PDDDR 0x80000043 // Port D data direction register
+#define PEDR 0x80000080 // Port E data register
+#define PEDDR 0x800000C0 // Port E data direction register
+
+#define SYSCON1 0x80000100 // System control register #1
+#define SYSCON1_KBD_CTL 0xF // Keyboard scan - mask
+#define SYSCON1_KBD_HIGH 0 // Keyboard scan - all columns high
+#define SYSCON1_KBD_LOW 1 // Keyboard scan - all columns low
+#define SYSCON1_KBD_TRISTATE 2 // Keyboard scan - all columns tri-state
+#define SYSCON1_KBD_COL(n) (n+8)// Keyboard scan - select column 'n'
+#define SYSCON1_TC1M (1<<4) // Timer/counter #1 - prescale mode
+#define SYSCON1_TC1S (1<<5) // Timer/counter #1 - source (1=512KHz,0=2KHz)
+#define SYSCON1_TC2M (1<<6) // Timer/counter #2 - prescale mode
+#define SYSCON1_TC2S (1<<7) // Timer/counter #2 - source (1=512KHz,0=2KHz)
+#define SYSCON1_UART1EN (1<<8) // UART #1 enable
+#define SYSCON1_BZTOG (1<<9) // Buzzer bit
+#define SYSCON1_BZMOD (1<<10) // Buzzer mode (0=direct,1=TC1)
+#define SYSCON1_DBGEN (1<<11) // Enable debug mode
+#define SYSCON1_LCDEN (1<<12) // Enable LCD
+#define SYSCON1_CDENTX (1<<13) // Enable Tx on CODEC
+#define SYSCON1_CDENRX (1<<14) // Enable Rx on CODEC
+#define SYSCON1_SIREN (1<<15) // Enable SIR protocol on UART #1
+#define SYSCON1_ADCKSEL (3<<16) // Microwire clock
+#define SYSCON1_ADC_CLOCK_4kHZ (0<<16)
+#define SYSCON1_ADC_CLOCK_16kHZ (1<<16)
+#define SYSCON1_ADC_CLOCK_64kHZ (2<<16)
+#define SYSCON1_ADC_CLOCK_128kHZ (3<<16)
+#define SYSCON1_EXCKEN (1<<18) // External expansion clock enable
+#define SYSCON1_WAKEDIS (1<<19) // Disable wakeup from snooze (do not disturb)
+#define SYSCON1_IRTXM (1<<20) // IrDA Tx mode
+
+#define SYSCON2 0x80001100 // System control register #2
+#define SYSCON2_SERSEL (1<<0) // 0=master/slave SSI, 1=CODEC
+#define SYSCON2_KBD6 (1<<1) // 0=8 bit keyboard, 1=6 bit
+#define SYSCON2_DRAMSZ (1<<2) // DRAM width 0=32, 1=16
+#define SYSCON2_KBWEN (1<<3) // 1=allow wake up from keyboard
+#define SYSCON2_SS2TXEN (1<<4) // Enable Tx on SS2
+#define SYSCON2_PCMCIA1 (1<<5) // Enable PCMCIA slot #1
+#define SYSCON2_PCMCIA2 (1<<6) // Enable PCMCIA slot #2
+#define SYSCON2_SS2RXEN (1<<7) // Enable Rx on SS2
+#define SYSCON2_UART2EN (1<<8) // Enable UART #2
+#define SYSCON2_SS2MAEN (1<<9) // Enable master mode on SS2
+#define SYSCON2_SNZPOL (1<<10) // Polarity of LCD during snooze
+#define SYSCON2_LCDSNZE (1<<11)
+#define SYSCON2_OSTB (1<<12) // Operating system timing 0=512KHz, 1=500KHz
+#define SYSCON2_CLKENSL (1<<13) // Source of run/clken signal 0=CLKEN, 1=RUN
+#define SYSCON2_BUZFREQ (1<<14) // Buzzer frequency 0=timer, 1=fixed PLL/xtal
+
+#define SYSCON3 0x80002200 // System control #3
+#define SYSCON3_ADCCON (1<<0) // ADC enable
+#define SYSCON3_CLKCTL(n) (n<<1) // Processor block speed ((n+1)*18.432)MHz
+#if defined(__EDB7209)
+#define SYSCON3_I2SSEL (1<<3) // Enable i2s instead of ssi#2
+#define SYSCON3_FASTWAKE (1<<8) // Determines wakeup in relationship
+ // to the 4 kHZ or 8 Hz clock
+#define SYSCON3_DAIEN (1<<9) // Enables the DAI
+#endif
+#if defined(__EDB7312) || defined(__EDB7209)
+#define SYSCON3_ADCCKNSEN (1<<4) // Determines on which edge ADC
+ // data is transmitted and read
+ // in relationship to ADCCLK
+#if defined(__EDB7312)
+#define SYSCON3_DAISEL (1<<3) // Enable DAI instead of SSI
+#define SYSCON3_128FS (1<<9) // Select DAI frame size
+#define SYSCON3_ENPD67 (1<<10) // Configures Port D bits 6 and 7
+#endif
+#endif
+
+#define SYSFLG1 0x80000140 // System flags #1
+#define SYSFLG1_MCDR (1<<0) // Media changed - direct read
+#define SYSFLG1_DCDET (1<<1) // 0=mains power, 1=battery
+#define SYSFLG1_WUDR (1<<2) // Wakeup direct
+#define SYSFLG1_WUON (1<<3) // Woken up
+#define SYSFLG1_DID (0xF<<4) // Display ID
+#define SYSFLG1_CTS (1<<8) // UART1 CTS
+#define SYSFLG1_DSR (1<<9) // UART1 DSR
+#define SYSFLG1_DCD (1<<10) // UART1 DCD
+#define SYSFLG1_UBUSY1 (1<<11) // UART1 Tx busy
+#define SYSFLG1_NBFLG (1<<12) // New battery flag
+#define SYSFLG1_RSTFLG (1<<13) // Reset (button) flag
+#define SYSFLG1_PFFLG (1<<14) // Power fail flag
+#define SYSFLG1_CLDFLG (1<<15) // Cold start flag
+#define SYSFLG1_RTCDIV (0x3F<<16) // Real time clock divider (counter)
+#define SYSFLG1_URXFE1 (1<<22) // UART1 Rx FIFO empty
+#define SYSFLG1_UTXFF1 (1<<23) // UART1 Tx FIFO full
+#define SYSFLG1_CRXFE (1<<24) // CODEC Rx FIFO empty
+#define SYSFLG1_CTXFF (1<<25) // CODEC Tx FIFO full
+#define SYSFLG1_SSIBUSY (1<<26) // Synchronous serial interface busy
+#define SYSFLG1_BOOTBITS (3<<27) // Boot mode (0=32,1=8,2=16,3=XX)
+#define SYSFLG1_ID (1<<29) // ID=1
+#define SYSFLG1_VERID (3<<30) // Board version
+
+#define SYSFLG2 0x80001140 // System flags #2
+
+#ifdef __EDB7312
+#define SDCONF 0x80002300 // SDRAM configuration
+#define SDRFOR 0x80002340 // SDRAM refresh
+#endif
+
+#define INTSR1 0x80000240 // Interrupt status register #1
+#define INTSR1_EXTFIQ (1<<0) // External fast interrupt
+#define INTSR1_BLINT (1<<1) // Battery low interrupt
+#define INTSR1_WEINT (1<<2) // Watchdog expired interrupt
+#define INTSR1_MCINT (1<<3) // Media changed interrupt
+#define INTSR1_CSINT (1<<4) // CODEC sound interrupt
+#define INTSR1_EINT1 (1<<5) // External interrupt #1
+#define INTSR1_EINT2 (1<<6) // External interrupt #2
+#define INTSR1_EINT3 (1<<7) // External interrupt #3
+#define INTSR1_TC1OI (1<<8) // Timer/counter #1 underflow
+#define INTSR1_TC2OI (1<<9) // Timer/counter #2 underflow
+#define INTSR1_RTCMI (1<<10) // Real time clock match
+#define INTSR1_TINT (1<<11) // 64Hz tick
+#define INTSR1_UTXINT1 (1<<12) // UART1 Tx interrupt
+#define INTSR1_URXINT1 (1<<13) // UART1 Rx interrupt
+#define INTSR1_UMSINT (1<<14) // UART1 modem line change
+#define INTSR1_SSEOTI (1<<15) // Synchronous serial end of transfer
+#define INTMR1 0x80000280 // Interrupt mask register #1
+
+#define INTSR2 0x80001240 // Interrupt status #2
+#define INTSR2_KBDINT (1<<0) // Keyboard interrupt
+#define INTSR2_SS2RX (1<<1) // Synchronous serial #2 Rx
+#define INTSR2_SS2TX (1<<2) // Synchronous serial #2 Tx
+#define INTSR2_UTXINT2 (1<<12) // UART #2 Tx interrupt
+#define INTSR2_URXINT2 (1<<13) // UART #2 Rx interrupt
+#define INTMR2 0x80001280 // Interrupt mask #2
+
+#define INTSR3 0x80002240 // Interrupt status #3
+#if defined(__EDB7211)
+#define INTSR3_MCPINT (1<<0) // MCP interrupt
+#endif
+#if defined(__EDB7209)
+#define INTSR3_I2SINT (1<<0) // I2S interface interrupt
+#endif
+#if defined(__EDB7312)
+#define INTSR3_DAIINT (1<<0) // DAI interface interrupt
+#endif
+#define INTMR3 0x80002280 // Interrupt mask #3
+
+#define UARTDR1 0x80000480 // UART #1 data register
+#define UARTDR2 0x80001480 // UART #2 data register
+#define UBLCR1 0x800004C0 // UART #1 baud rate / line control
+#define UBLCR2 0x800014C0 // UART #2 baud rate / line control
+#define UBLCR_BRDV 0xFFF // Baud rate
+#define UBLCR_BREAK (1<<12) // Generate break signal
+#define UBLCR_PRTEN (1<<13) // Enable parity
+#define UBLCR_EVENPRT (1<<14) // 1=even parity, 0=odd
+#define UBLCR_XSTOP (1<<15) // 0=1 stop bit, 1=2 stop bits
+#define UBLCR_FIFOEN (1<<16) // Enable Tx/Rx FIFOs
+#define UBLCR_WRDLEN (3<<17) // Word (character) length field
+#define UBLCR_WRDLEN5 (0<<17)
+#define UBLCR_WRDLEN6 (1<<17)
+#define UBLCR_WRDLEN7 (2<<17)
+#define UBLCR_WRDLEN8 (3<<17)
+#define UART_DIVISOR 230400
+#define UART_BITRATE(baud) ((UART_DIVISOR/(baud))-1)
+#if 90317 == CYGHWR_HAL_ARM_EDB7XXX_PROCESSOR_CLOCK
+#undef UART_DIVISOR
+// The speed enhancement is 22.5%
+#define UART_DIVISOR (230400 * 1225/1000)
+#endif
+
+#define MEMCFG1 0x80000180 // Memory configuration register #1
+#define MEMCFG2 0x800001C0 // Memory configuration register #2
+
+#define DRFPR 0x80000200 // DRAM refresh period
+
+#define LCDCON 0x800002C0 // LDC control
+#define LCDCON_BUFSIZ 0x00001FFF // Video buffer size
+#define LCDCON_BUFSIZ_S 0 // Position of buffer size
+#define LCDCON_LINE_LENGTH 0x0007E000 // Line length
+#define LCDCON_LINE_LENGTH_S 13 // Position of line length
+#define LCDCON_PIX_PRESCALE 0x01F80000 // Pixel prescale value
+#define LCDCON_PIX_PRESCALE_S 19 // Position of prescale value
+#define LCDCON_AC_PRESCALE 0x3E000000 // LCD AC bias frequency
+#define LCDCON_AC_PRESCALE_S 25 // Position to AC bias
+#define LCDCON_GSEN 0x40000000 // Enable greyscale
+#define LCDCON_GSMD 0x80000000 // Greyscale mode
+ // 00 - 1bpp, 01 - 2bpp, 11 - 4 bpp
+
+#define TC1D 0x80000300 // Timer/Counter #1 register
+#define TC2D 0x80000340 // Timer/Counter #2 register
+#define RTCDR 0x80000380 // Real time clock data register
+#define RTCMR 0x800003C0 // Real time clock match register
+
+#define PMPCON 0x80000400 // DC-DC pump control
+
+#define CODR 0x80000440 // CODEC data register
+
+#define SYNCIO 0x80000500 // Synchronous I/O data register
+
+#define PALLSW 0x80000540 // LCD palette - LSW (Pixel values 0..7)
+#define PALMSW 0x80000580 // LCD palette - MSW (Pixel values 8..15)
+
+#define STFCLR 0x800005C0 // Clear startup reason flags
+#define BLEOI 0x80000600 // Clear battery low interrupt
+#define MCEOI 0x80000640 // Clear media changed interrupt
+#define TEOI 0x80000680 // Clear tick/watchdog interrupt
+#define TC1EOI 0x800006C0 // Clear timer/counter #1 interrupt
+#define TC2EOI 0x80000700 // Clear timer/counter #2 interrupt
+#define RTCEOI 0x80000740 // Clear real time clock interrupt
+#define UMSEOI 0x80000780 // Clear UART modem status change interrupt
+#define COEOI 0x800007C0 // Clear CODEC sound interrupt
+
+#define HALT 0x80000800 // Enter 'idle' state
+#define STDBY 0x80000840 // Enter 'standby' state
+
+#define FRBADDR 0x80001000 // LCD frame buffer start
+
+#define SNZDISP 0x800012C0 // Snooze display size
+
+#define SS2DR 0x80001500 // Master/slave SSI2 register
+
+#define SRXEOF 0x80001600 // Clear Rx FIFO overflow flag
+#define SS2POP 0x800016C0 // Pop SSI2 residual byte into FIFO
+
+#define KBDEOI 0x80001700 // Clear keyboard interrupt
+
+#define SNOOZE 0x80001800 // Enter 'snooze' state
+
+#if defined(__EDB7211)
+#define MCCR 0x80002000 // MCP control register
+#define MCDR0 0x80002040 // MCP data register #0
+#define MCDR1 0x80002080 // MCP data register #1
+#define MCDR2 0x800020C0 // MCP data register #2
+#define MCSR 0x80002100 // MCP status register
+#endif
+
+#if defined(__EDB7209) || \
+defined(__EDB7312) || \
+1
+
+#define I2S_CTL 0x80002000 // I2S (Audio interface) control
+#define I2S_CTL_FLAG 0x0404 // Magic
+#define I2S_CTL_EN (1<<16) // Enable interface
+#define I2S_CTL_ECS (1<<17) // External clock select
+#define I2S_CTL_LCTM (1<<19) // Left channel transmit interrupt
+#define I2S_CTL_LCRM (1<<20) // Left channel receive interrupt
+#define I2S_CTL_RCTM (1<<21) // Right channel transmit interrupt
+#define I2S_CTL_RCRM (1<<22) // Right channel receive interrupt
+#if defined(__EDB7209)
+#define I2S_CTL_LBM (1<<23) // Loop-back mode
+#endif
+#define I2S_RIGHT_FIFO 0x80002040 // Right channel FIFO access
+#define I2S_LEFT_FIFO 0x80002080 // Left channel FIFO access
+#define I2S_FIFO_CTL 0x800020C0 // FIFO control
+#define I2S_FIFO_CTL_RIGHT_ENABLE 0x00118000
+#define I2S_FIFO_CTL_RIGHT_DISABLE 0x00110000
+#define I2S_FIFO_CTL_LEFT_ENABLE 0x000D8000
+#define I2S_FIFO_CTL_LEFT_DISABLE 0x000D0000
+#define I2S_STAT 0x80002100 // I2S interface status
+#define I2S_STAT_RCTSR (1<<0) // Right channel transmit service request
+#define I2S_STAT_RCRSR (1<<1) // Right channel receive service request
+#define I2S_STAT_LCTSR (1<<2) // Left channel transmit service request
+#define I2S_STAT_LCRSR (1<<3) // Left channel receive service request
+#define I2S_STAT_RCTUR (1<<4) // Right channel transmit FIFO underrun
+#define I2S_STAT_RCROR (1<<5) // Right channel receive FIFO overrun
+#define I2S_STAT_LCTUR (1<<6) // Left channel transmit FIFO underrun
+#define I2S_STAT_LCROR (1<<7) // Left channel receive FIFO overrun
+#define I2S_STAT_RCTNF (1<<8) // Right channel transmit FIFO not full
+#define I2S_STAT_RCRNE (1<<9) // Right channel receive FIFO not empty
+#define I2S_STAT_LCTNF (1<<10) // Left channel transmit FIFO not full
+#define I2S_STAT_LCRNE (1<<11) // Left channel receive FIFO not empty
+#define I2S_STAT_FIFO (1<<12) // A FIFO operation has completed
+#endif
+
+#ifdef __EDB7312
+// If DAI_ headers wishes to be used instead (for consistency)
+#define DAI_CTL I2S_CTL
+#define DAI_CTL_FLAG I2S_CTL_FLAG
+#define DAI_CTL_EN I2S_CTL_EN
+#define DAI_CTL_ECS I2S_CTL_ECS
+#define DAI_CTL_LCTM I2S_CTL_LCTM
+#define DAI_CTL_LCRM I2S_CTL_LCRM
+#define DAI_CTL_RCTM I2S_CTL_RCTM
+#define DAI_CTL_RCRM I2S_CTL_RCRM
+
+#define DAI_RIGHT_FIFO I2S_RIGHT_FIFO
+#define DAI_LEFT_FIFO I2S_LEFT_FIFO
+
+#define DAI_FIFO_CTL I2S_FIFO_CTL
+#define DAI_FIFO_CTL_RIGHT_ENABLE I2S_FIFO_CTL_RIGHT_ENABLE
+#define DAI_FIFO_CTL_RIGHT_DISABLE I2S_FIFO_CTL_RIGHT_DISABLE
+#define DAI_FIFO_CTL_LEFT_ENABLE I2S_FIFO_CTL_LEFT_ENABLE
+#define DAI_FIFO_CTL_LEFT_DISABLE I2S_FIFO_CTL_LEFT_DISABLE
+
+#define DAI_STAT I2S_STAT
+#define DAI_STAT_RCTSR I2S_STAT_RCTSR
+#define DAI_STAT_RCRSR I2S_STAT_RCRSR
+#define DAI_STAT_LCTSR I2S_STAT_LCTSR
+#define DAI_STAT_LCRSR I2S_STAT_LCRSR
+#define DAI_STAT_RCTUR I2S_STAT_RCTUR
+#define DAI_STAT_RCROR I2S_STAT_RCROR
+#define DAI_STAT_LCTUR I2S_STAT_LCTUR
+#define DAI_STAT_LCROR I2S_STAT_LCROR
+#define DAI_STAT_RCTNF I2S_STAT_RCTNF
+#define DAI_STAT_RCRNE I2S_STAT_RCRNE
+#define DAI_STAT_LCTNF I2S_STAT_LCTNF
+#define DAI_STAT_LCRNE I2S_STAT_LCRNE
+#define DAI_STAT_FIFO I2S_STAT_FIFO
+
+// Additional 7312 register
+#define DAI_MODE 0x80002600 // I2S mode control register
+#define DAI_MODE_I2SF64 (1<<0) // Frame size
+#define DAI_MODE_CLKEN (1<<1) // Enable audio clock generator
+#define DAI_MODE_CLKSRC (1<<2) // Select audio clock source
+#define DAI_MODE_MCLK (1<<3) // Enables MCLK (BUZ) (256 frame size)
+#define DAI_MODE_LBM (1<<5) // Loopback mode
+
+#define DAI_MODE_AUDDIV_MASK 0x7F00 // Mask for the frequency divisor
+ // for the sample frequency and
+ // bit clock
+
+#define SYSCON3_I2SSEL SYSCON3_DAISEL // Backward compatiblity
+ // for sample i2s_audio_fiq.s
+
+#define INTSR3_I2SINT INTSR3_DAIINT // Backward compatiblity
+ // for sample i2s_audio_fiq.s
+
+
+// Further additional 7312 register for special 90MHz variant:
+// PLL_Multiplier_Register 0x80002610 - the location of the PLL multiplier register
+// Value_For_90_MHz_Operation 0x31000000
+#define EP7312_PLL_MR 0x80002610
+#define EP7312_PLL_MR_FOR_90MHz 0x31000000
+
+#endif
+
+#define LEDFLSH 0x800022C0 // LED flash control
+#define LEDFLSH_ENABLE (1<<6) // LED enabled
+#define LEDFLSH_DUTY(n) ((n-1)<<2) // LED on ratio
+#define LEDFLSH_PERIOD(n) (n-1) // LED active time (1..4)
+
+#define KBD_PORT 0x30010000 // Extra 8 bits of keyboard data
+
+/*---------------------------------------------------------------------------*/
+/* end of hal_edb7xxx.h */
+#endif /* CYGONCE_HAL_EDB7XXX_H */
diff --git a/ecos/packages/hal/arm/edb7xxx/current/include/hal_platform_extras.h b/ecos/packages/hal/arm/edb7xxx/current/include/hal_platform_extras.h
new file mode 100644
index 0000000..2e922a1
--- /dev/null
+++ b/ecos/packages/hal/arm/edb7xxx/current/include/hal_platform_extras.h
@@ -0,0 +1,163 @@
+#ifndef CYGONCE_HAL_PLATFORM_EXTRAS_H
+#define CYGONCE_HAL_PLATFORM_EXTRAS_H
+
+/*=============================================================================
+//
+// hal_platform_extras.h
+//
+// Platform specific support for HAL (assembly code)
+//
+//=============================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): gthomas
+// Contributors: gthomas
+// Date: 1999-11-23
+// Purpose: Cirrus EDB7XXX platform extras, in particular MMU tables
+// Description:
+// Usage: #include <cyg/hal/hal_platform_extras.h>
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================*/
+
+ .section ".mmu_tables","aw"
+
+#define NEXT_PAGE \
+ .long PTE ; \
+ .set PTE,PTE+MMU_PAGE_SIZE
+_PT_0x0:
+#if (CYGHWR_HAL_ARM_EDB7XXX_DRAM_SIZE == 2)
+#err Static MMU tables not yet available for 2M boards.
+#elif (CYGHWR_HAL_ARM_EDB7XXX_DRAM_SIZE == 16)
+ .set PTE,(DRAM_PA_START+LCD_BUFFER_SIZE)|MMU_L2_TYPE_Small\
+ |MMU_AP_Any|MMU_Bufferable|MMU_Cacheable
+ .rept (0x800000-LCD_BUFFER_SIZE)/0x1000
+ NEXT_PAGE
+ .endr
+ .set PTE,(DRAM_PA_START+0x01000000)|MMU_L2_TYPE_Small\
+ |MMU_AP_Any|MMU_Bufferable|MMU_Cacheable
+ .rept 0x800000/0x1000
+ NEXT_PAGE
+ .endr
+#endif
+ .balign 0x0400
+
+// Too bad these macros don't work ['as' bug?] :-(
+
+#define NEXT_SECTION \
+ .long PTE+OFF ;\
+ .set OFF,OFF+(MMU_SECTION_SIZE/MMU_PAGE_SIZE)*4
+
+#define FILL_SEGMENT_(base) \
+ .set PTE,base \
+ .set OFF,0x00000000 \
+ .rept 0x10000000/MMU_SECTION_SIZE \
+ NEXT_SECTION \
+ .endr
+
+#define OFF ((MMU_SECTION_SIZE/MMU_PAGE_SIZE)*4)
+
+#define FILL_16M_SEGMENT(base,seg) \
+ .long base+(OFF*(seg+0x00)); \
+ .long base+(OFF*(seg+0x01)); \
+ .long base+(OFF*(seg+0x02)); \
+ .long base+(OFF*(seg+0x03)); \
+ .long base+(OFF*(seg+0x04)); \
+ .long base+(OFF*(seg+0x05)); \
+ .long base+(OFF*(seg+0x06)); \
+ .long base+(OFF*(seg+0x07)); \
+ .long base+(OFF*(seg+0x08)); \
+ .long base+(OFF*(seg+0x09)); \
+ .long base+(OFF*(seg+0x0A)); \
+ .long base+(OFF*(seg+0x0B)); \
+ .long base+(OFF*(seg+0x0C)); \
+ .long base+(OFF*(seg+0x0D)); \
+ .long base+(OFF*(seg+0x0E)); \
+ .long base+(OFF*(seg+0x0F));
+
+#define FILL_256M_SEGMENT(base) \
+ FILL_16M_SEGMENT(base,0x00); \
+ FILL_16M_SEGMENT(base,0x10); \
+ FILL_16M_SEGMENT(base,0x20); \
+ FILL_16M_SEGMENT(base,0x30); \
+ FILL_16M_SEGMENT(base,0x40); \
+ FILL_16M_SEGMENT(base,0x50); \
+ FILL_16M_SEGMENT(base,0x60); \
+ FILL_16M_SEGMENT(base,0x70); \
+ FILL_16M_SEGMENT(base,0x80); \
+ FILL_16M_SEGMENT(base,0x90); \
+ FILL_16M_SEGMENT(base,0xA0); \
+ FILL_16M_SEGMENT(base,0xB0); \
+ FILL_16M_SEGMENT(base,0xC0); \
+ FILL_16M_SEGMENT(base,0xD0); \
+ FILL_16M_SEGMENT(base,0xE0); \
+ FILL_16M_SEGMENT(base,0xF0);
+
+ .balign 0x4000
+_MMU_table:
+ FILL_16M_SEGMENT(_PT_0x0-0xE0000000+MMU_L1_TYPE_Page,0x00)
+ FILL_16M_SEGMENT(MMU_L1_TYPE_Fault,0x00)
+ FILL_16M_SEGMENT(MMU_L1_TYPE_Fault,0x00)
+ FILL_16M_SEGMENT(MMU_L1_TYPE_Fault,0x00)
+ FILL_16M_SEGMENT(MMU_L1_TYPE_Fault,0x00)
+ FILL_16M_SEGMENT(MMU_L1_TYPE_Fault,0x00)
+ FILL_16M_SEGMENT(MMU_L1_TYPE_Fault,0x00)
+ FILL_16M_SEGMENT(MMU_L1_TYPE_Fault,0x00)
+ FILL_16M_SEGMENT(MMU_L1_TYPE_Fault,0x00)
+ FILL_16M_SEGMENT(MMU_L1_TYPE_Fault,0x00)
+ FILL_16M_SEGMENT(MMU_L1_TYPE_Fault,0x00)
+ FILL_16M_SEGMENT(MMU_L1_TYPE_Fault,0x00)
+ FILL_16M_SEGMENT(MMU_L1_TYPE_Fault,0x00)
+ FILL_16M_SEGMENT(MMU_L1_TYPE_Fault,0x00)
+ FILL_16M_SEGMENT(MMU_L1_TYPE_Fault,0x00)
+ FILL_16M_SEGMENT(MMU_L1_TYPE_Fault,0x00)
+ FILL_256M_SEGMENT(MMU_L1_TYPE_Fault)
+ FILL_256M_SEGMENT(EXPANSION2_PA|MMU_L1_TYPE_Section|MMU_AP_Any)
+ FILL_256M_SEGMENT(EXPANSION3_PA|MMU_L1_TYPE_Section|MMU_AP_Any)
+ FILL_256M_SEGMENT(MMU_L1_TYPE_Fault)
+ FILL_256M_SEGMENT(MMU_L1_TYPE_Fault)
+ FILL_256M_SEGMENT(SRAM_PA|MMU_L1_TYPE_Section|MMU_AP_Any)
+ FILL_256M_SEGMENT(MMU_L1_TYPE_Fault)
+ FILL_256M_SEGMENT(IO_PA|MMU_L1_TYPE_Section|MMU_AP_Any)
+ FILL_256M_SEGMENT(MMU_L1_TYPE_Fault)
+ FILL_256M_SEGMENT(MMU_L1_TYPE_Fault)
+ FILL_256M_SEGMENT(MMU_L1_TYPE_Fault)
+ FILL_256M_SEGMENT(DRAM_PA|MMU_L1_TYPE_Section|MMU_AP_Any)
+ FILL_256M_SEGMENT(MMU_L1_TYPE_Fault)
+ FILL_256M_SEGMENT(ROM0_PA|MMU_L1_TYPE_Section|MMU_AP_Any)
+ FILL_256M_SEGMENT(ROM1_PA|MMU_L1_TYPE_Section|MMU_AP_Any)
+
+#endif // CYGONCE_HAL_PLATFORM_EXTRAS_H
diff --git a/ecos/packages/hal/arm/edb7xxx/current/include/hal_platform_ints.h b/ecos/packages/hal/arm/edb7xxx/current/include/hal_platform_ints.h
new file mode 100644
index 0000000..6e5eb6a
--- /dev/null
+++ b/ecos/packages/hal/arm/edb7xxx/current/include/hal_platform_ints.h
@@ -0,0 +1,113 @@
+#ifndef CYGONCE_HAL_PLATFORM_INTS_H
+#define CYGONCE_HAL_PLATFORM_INTS_H
+//==========================================================================
+//
+// hal_platform_ints.h
+//
+// HAL Interrupt and clock support
+//
+//==========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//==========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): gthomas
+// Contributors: gthomas
+// Date: 1999-04-21
+// Purpose: Define Interrupt support
+// Description: The interrupt details for the CL7xxx are defined here.
+// Usage:
+// #include <cyg/hal/hal_platform_ints.h>
+// ...
+//
+//
+//####DESCRIPTIONEND####
+//
+//==========================================================================
+
+#define CYGNUM_HAL_INTERRUPT_unused 0
+#define CYGNUM_HAL_INTERRUPT_EXTFIQ 1
+#define CYGNUM_HAL_INTERRUPT_BLINT 2
+#define CYGNUM_HAL_INTERRUPT_WEINT 3
+#define CYGNUM_HAL_INTERRUPT_MCINT 4
+#define CYGNUM_HAL_INTERRUPT_CSINT 5
+#define CYGNUM_HAL_INTERRUPT_EINT1 6
+#define CYGNUM_HAL_INTERRUPT_EINT2 7
+#define CYGNUM_HAL_INTERRUPT_EINT3 8
+#define CYGNUM_HAL_INTERRUPT_TC1OI 9
+#define CYGNUM_HAL_INTERRUPT_TC2OI 10
+#define CYGNUM_HAL_INTERRUPT_RTCMI 11
+#define CYGNUM_HAL_INTERRUPT_TINT 12
+#define CYGNUM_HAL_INTERRUPT_UTXINT1 13
+#define CYGNUM_HAL_INTERRUPT_URXINT1 14
+#define CYGNUM_HAL_INTERRUPT_UMSINT 15
+#define CYGNUM_HAL_INTERRUPT_SSEOTI 16
+#define CYGNUM_HAL_INTERRUPT_KBDINT 17
+#define CYGNUM_HAL_INTERRUPT_SS2RX 18
+#define CYGNUM_HAL_INTERRUPT_SS2TX 19
+#define CYGNUM_HAL_INTERRUPT_UTXINT2 20
+#define CYGNUM_HAL_INTERRUPT_URXINT2 21
+#if defined(__EDB7211)
+#define CYGNUM_HAL_INTERRUPT_MCPINT 22
+#endif
+#if defined(__EDB7209)
+#define CYGNUM_HAL_INTERRUPT_I2SINT 22
+#endif
+#if defined(__EDB7312)
+#define CYGNUM_HAL_INTERRUPT_DAIINT 22
+#endif
+
+#define CYGNUM_HAL_ISR_MIN 0
+#if defined(__CL7111)
+#define CYGNUM_HAL_ISR_MAX 21
+#else
+#define CYGNUM_HAL_ISR_MAX 22
+#endif
+#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_TC2OI
+
+
+
+//----------------------------------------------------------------------------
+// Reset.
+
+// Try and force the board into a reset state. Since this hardware requires
+// a "wakeup" signal, we can't just use a watchdog/reset approach.
+externC void reset_platform(void);
+#define HAL_PLATFORM_RESET() reset_platform()
+
+#define HAL_PLATFORM_RESET_ENTRY 0xe0000000
+
+#endif // CYGONCE_HAL_PLATFORM_INTS_H
diff --git a/ecos/packages/hal/arm/edb7xxx/current/include/hal_platform_setup.h b/ecos/packages/hal/arm/edb7xxx/current/include/hal_platform_setup.h
new file mode 100644
index 0000000..0a6481e
--- /dev/null
+++ b/ecos/packages/hal/arm/edb7xxx/current/include/hal_platform_setup.h
@@ -0,0 +1,562 @@
+#ifndef CYGONCE_HAL_PLATFORM_SETUP_H
+#define CYGONCE_HAL_PLATFORM_SETUP_H
+
+/*=============================================================================
+//
+// hal_platform_setup.h
+//
+// Platform specific support for HAL (assembly code)
+//
+//=============================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): gthomas
+// Contributors: gthomas
+// Date: 1999-04-21
+// Purpose: Cirrus EDB7XXX platform specific support routines
+// Description:
+// Usage: #include <cyg/hal/hal_platform_setup.h>
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================*/
+
+#include <pkgconf/system.h> // System-wide configuration info
+#include <pkgconf/hal.h> // Architecture independent configuration
+#include CYGBLD_HAL_PLATFORM_H // Platform specific configuration
+#include <cyg/hal/hal_edb7xxx.h> // Platform specific hardware definitions
+#include <cyg/hal/hal_mmu.h> // MMU definitions
+
+#define CYGHWR_HAL_ARM_HAS_MMU // This processor has an MMU
+#define CYGSEM_HAL_ROM_RESET_USES_JUMP
+//
+// Memory map - set up by ROM (GDB stubs)
+//
+// Region Logical Address Physical Address
+// DRAM 0x00000000..0x00xFFFFF 0xC00x0000 (see below)
+// Expansion 2 0x20000000 0x20000000
+// Expansion 3 0x30000000 0x30000000
+// PCMCIA 0 0x40000000 0x40000000
+// PCMCIA 1 0x50000000 0x50000000
+// SRAM 0x60000000..0x600007FF 0x60000000
+// I/O 0x80000000 0x80000000
+// MMU Tables 0xC00y0000
+// LCD buffer 0xC0000000..0xC001FFFF 0xC0000000
+// ROM 0xE0000000..0xEFFFFFFF 0x00000000
+// ROM 0xF0000000..0xFFFFFFFF 0x10000000
+
+#ifdef CYGHWR_HAL_ARM_EDB7XXX_LCD_INSTALLED
+#define LCD_BUFFER_SIZE 0x00020000
+#else
+#define LCD_BUFFER_SIZE 0x00000000
+#endif
+#define DRAM_PA_START 0xC0000000
+#define MMU_BASE DRAM_PA_START+LCD_BUFFER_SIZE
+#define PTE_BASE MMU_BASE+0x4000
+#if (CYGHWR_HAL_ARM_EDB7XXX_DRAM_SIZE == 2)
+#define MMU_TABLES_SIZE (0x4000+0x1000+0x1000) // RAM used for PTE entries
+#define DRAM_LA_END (0x00200000-MMU_TABLES_SIZE-LCD_BUFFER_SIZE)
+#elif (CYGHWR_HAL_ARM_EDB7XXX_DRAM_SIZE == 16)
+#define MMU_TABLES_SIZE (0x4000+0x4000+0x1000) // RAM used for PTE entries
+#define DRAM_LA_END (0x01000000-MMU_TABLES_SIZE-LCD_BUFFER_SIZE)
+#endif
+#define DRAM_LA_START 0x00000000
+#define DRAM_PA MMU_BASE+MMU_TABLES_SIZE
+#define LCD_LA_START 0xC0000000
+#define LCD_LA_END 0xC0020000
+#define LCD_PA 0xC0000000
+#define ROM0_LA_START 0xE0000000
+#define ROM0_PA 0x00000000
+#if defined (__EDB7211)
+#define ROM0_LA_END 0xE0800000
+#else
+#define ROM0_LA_END 0xF0000000
+#endif
+#define ROM1_LA_START ROM0_LA_END
+#define ROM1_LA_END 0x00000000
+#define ROM1_PA 0x10000000
+#define EXPANSION2_LA_START 0x20000000
+#define EXPANSION2_PA 0x20000000
+#define EXPANSION3_LA_START 0x30000000
+#define EXPANSION3_PA 0x30000000
+#define PCMCIA0_LA_START 0x40000000
+#define PCMCIA0_PA 0x40000000
+#define PCMCIA1_LA_START 0x50000000
+#define PCMCIA1_PA 0x50000000
+#define SRAM_LA_START 0x60000000
+#ifdef CYGHWR_HAL_ARM_EDB7XXX_VARIANT_CL_PS7111 // 4K SRAM
+#define SRAM_LA_END 0x60001000
+#else // 72xx - 37.5K SRAM
+#define SRAM_LA_END 0x6000A000
+#endif
+#define SRAM_PA 0x60000000
+#define IO_LA_START 0x80000000
+#define IO_LA_END 0x8000f000
+#define IO_PA 0x80000000
+
+#ifndef _CYGHWR_LAYOUT_ONLY
+// Define startup code [macros]
+#if defined(CYGSEM_HAL_INSTALL_MMU_TABLES)
+
+#ifdef CYGHWR_HAL_ARM_EDB7XXX_VARIANT_CL_PS7111 // CL7111, 710 processor
+ .macro MMU_INITIALIZE
+ ldr r2,=MMU_Control_Init
+ mcr MMU_CP,0,r2,MMU_Control,c0 /* MMU off */
+ mcr MMU_CP,0,r1,MMU_Base,c0
+ mcr MMU_CP,0,r1,MMU_FlushTLB,c0,0 /* Invalidate TLB */
+ mcr MMU_CP,0,r1,MMU_FlushIDC,c0,0 /* Invalidate Caches */
+ ldr r1,=0xFFFFFFFF
+ mcr MMU_CP,0,r1,MMU_DomainAccess,c0
+ 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:
+ .endm
+#else // EP7xxx, 720T processor
+ .macro MMU_INITIALIZE
+ ldr r2,=MMU_Control_Init
+ mcr MMU_CP,0,r2,MMU_Control,c0 /* MMU off */
+ mcr MMU_CP,0,r1,MMU_Base,c0
+ mcr MMU_CP,0,r1,MMU_TLB,c7,0 /* Invalidate TLB */
+ mcr MMU_CP,0,r1,MMU_FlushIDC,c0,0 /* Invalidate Caches */
+ ldr r1,=0xFFFFFFFF
+ mcr MMU_CP,0,r1,MMU_DomainAccess,c0
+ ldr r2,=10f
+#ifdef CYG_HAL_STARTUP_ROMRAM
+ ldr r3,=__exception_handlers
+ sub r2,r2,r3
+ ldr r3,=ROM0_LA_START
+ add r2,r2,r3
+#endif
+ 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:
+ .endm
+#endif // EP7xxx,720T processor
+
+#ifdef CYG_HAL_STARTUP_ROMRAM
+ .macro RELOCATE_TEXT_SEGMENT
+ ldr r2,=__exception_handlers
+ ldr r3,=ROM0_LA_START
+ cmp r2,r3
+ beq 20f
+ ldr r4,=__rom_data_end
+15:
+ ldr r0,[r3],#4
+ str r0,[r2],#4
+ cmp r2,r4
+ bne 15b
+ ldr r2,=20f
+ mov pc,r2 /* Change address spaces */
+ nop
+ nop
+ nop
+20:
+ .endm
+#endif
+
+#ifdef CYG_HAL_STARTUP_RAM
+ .macro RELOCATE_RAM_IMAGE
+// Special code to handle case where program has been loaded into DRAM
+// _somewhere_. This code first relocates itself into DRAM where eCos
+// mapping will expect it to be. Note since we don't know the current
+// MMU mapping, this is tricky. This is handled by putting a small
+// routine into SRAM (which is always mapped 1-1) that turns off the
+// MMU whilst it stores one word into physical memory. Once the whole
+// program has been relocated thusly, the MMU is shut off again while
+// the eCos memory mapping takes place
+ bl 5f
+// Routine to store one item in physical memory, with the MMU off
+_phys_store:
+ ldr r5,=MMU_Control_Init
+ mcr MMU_CP,0,r5,MMU_Control,c0 /* MMU off */
+ nop
+ nop
+ nop
+ mcr MMU_CP,0,r1,MMU_TLB,c7,0 /* Invalidate TLB */
+ mcr MMU_CP,0,r1,MMU_FlushIDC,c0,0 /* Invalidate Caches */
+ str r4,[r2],#4
+ ldr r5,=MMU_Control_Init|MMU_Control_M
+ mcr MMU_CP,0,r5,MMU_Control,c0
+ mov pc,lr
+_phys_store_end:
+// Copy above routine to SRAM, whose address does not change with MMU
+5: mov r1,lr
+ add r2,r1,#_phys_store_end-_phys_store
+ ldr r3,=SRAM_LA_START
+6: ldr r4,[r1],#4
+ str r4,[r3],#4
+ cmp r1,r2
+ bne 6b
+ ldr r6,=SRAM_LA_START
+// Relocate code in DRAM to where eCos mapping wants it
+ bl 7f
+7: mov r2,lr
+ ldr r1,=7b
+ sub r1,r2,r1
+ ldr r2,=__exception_handlers
+ add r1,r1,r2
+// ldr r1,=0xF0020000
+ ldr r3,=DRAM_PA
+ add r2,r2,r3
+// ldr r2,=DRAM_PA+0x20000
+ ldr r3,=_edata
+ ldr r4,=__exception_handlers
+ sub r3,r3,r4
+ add r3,r1,r3
+// ldr r3,=0xF0040000
+10: ldr r4,[r1],#4
+ mov lr,pc // Call phys_store() function above
+ mov pc,r6
+ cmp r1,r3
+ bne 10b
+// Now, turn off the MMU an execute the rest of this code in PHYSICAL memory
+ ldr r1,=15f
+ ldr r2,=DRAM_PA
+ add r1,r1,r2
+ ldr r5,=MMU_Control_Init
+ mcr MMU_CP,0,r5,MMU_Control,c0 /* MMU off */
+ mov pc,r1
+ nop
+ nop
+ nop
+15: mcr MMU_CP,0,r1,MMU_TLB,c7,0 /* Invalidate TLB */
+ mcr MMU_CP,0,r1,MMU_FlushIDC,c0,0 /* Invalidate Caches */
+ .endm
+#endif // CYG_HAL_STARTUP_RAM
+#ifdef CYGHWR_HAL_ARM_EDB7XXX_VARIANT_EP7312
+ .macro INIT_MEMORY_CONFIG
+ mov r0,#(CPSR_IRQ_DISABLE|CPSR_FIQ_DISABLE|CPSR_SUPERVISOR_MODE)
+ msr cpsr,r0
+ ldr r10,=UARTDR1
+ ldr r11,=SYSFLG1
+ ldr r12,=SYSFLG1_UTXFF1
+ ldr r1,=SDCONF
+ ldr r2,=0x00000522
+ str r2,[r1]
+ ldr r1,=SDRFOR
+ ldr r2,=0x00000240
+ str r2,[r1]
+ ldr r1,=MEMCFG1
+ ldr r2,=0x1F101710
+ str r2,[r1]
+ ldr r1,=MEMCFG2
+ ldr r2,=0x00001F13
+ str r2,[r1]
+ .endm
+#else
+#ifdef CYGHWR_HAL_ARM_EDB7XXX_VARIANT_EP7209
+// No DRAM controller
+ .macro INIT_MEMORY_CONFIG
+/* Initialize memory configuration */
+ ldr r1,=MEMCFG1
+ ldr r2,=0x8200A080
+ str r2,[r1]
+ ldr r1,=MEMCFG2
+ ldr r2,=0xFEFC0000
+ str r2,[r1]
+ .endm
+#else // CYGHWR_HAL_ARM_EDB7XXX_VARIANT = EP7211, EP7212
+ .macro INIT_MEMORY_CONFIG
+/* Initialize memory configuration */
+ ldr r1,=MEMCFG1
+ ldr r2,=0x8200A080
+ str r2,[r1]
+ ldr r1,=MEMCFG2
+ ldr r2,=0xFEFC0000
+ str r2,[r1]
+ ldr r1,=DRFPR
+ ldr r2,=0x81 /* DRAM refresh = 64KHz */
+ strb r2,[r1]
+ .endm
+#endif
+#endif
+
+#if defined(CYGSEM_HAL_STATIC_MMU_TABLES)
+#define PLATFORM_SETUP1 \
+ INIT_MEMORY_CONFIG ;\
+ ldr r1,=_MMU_table-0xE0000000 ;\
+ MMU_INITIALIZE ;\
+ RELOCATE_TEXT_SEGMENT
+
+#define PLATFORM_EXTRAS <cyg/hal/hal_platform_extras.h>
+
+#else
+// MMU tables placed in DRAM
+
+#if (CYGHWR_HAL_ARM_EDB7XXX_DRAM_SIZE == 2)
+// Note: The DRAM on this board is very irregular in that every
+// other 256K piece is missing. E.g. only these [physical]
+// addresses are valid:
+// 0xC0000000..0xC003FFFF
+// 0xC0080000..0xC00BFFFF
+// 0xC0200000..0xC023FFFF Note the additional GAP!
+// etc.
+// 0xC0800000..0xC083FFFF Note the additional GAP!
+// 0xC0880000..0xC08CFFFF
+// 0xC0A00000..0xC0A3FFFF
+// etc.
+// The MMU mapping code takes this into consideration and creates
+// a continuous logical map for the DRAM.
+ .macro MAP_DRAM
+/* Map DRAM */
+ ldr r3,=DRAM_LA_START
+ ldr r4,=DRAM_LA_END
+ ldr r5,=DRAM_PA
+/* 0x00000000..0x000FFFFF */
+ mov r6,r2 /* Set up page table descriptor */
+ ldr r7,=MMU_L1_TYPE_Page
+ orr r6,r6,r7
+ str r6,[r1],#4 /* Store PTE, update pointer */
+10: mov r6,r5 /* Build page table entry */
+ ldr r7,=MMU_L2_TYPE_Small|MMU_AP_Any|MMU_Bufferable|MMU_Cacheable
+ orr r6,r6,r7
+ ldr r7,=MMU_PAGE_SIZE
+ str r6,[r2],#4 /* Next page */
+ add r3,r3,r7
+ add r5,r5,r7
+ ldr r8,=DRAM_LA_START+MMU_SECTION_SIZE
+ cmp r3,r8 /* Done with first 1M? */
+ beq 20f
+ ldr r7,=0x40000 /* Special check for 256K boundary */
+ and r7,r7,r5
+ cmp r7,#0
+ beq 10b
+ add r5,r5,r7 /* Skip 256K hole */
+ ldr r7,=0x100000
+ and r7,r5,r7
+ beq 10b
+ add r5,r5,r7 /* Nothing at 0xC0100000 */
+ ldr r7,=0x400000 /* Also nothing at 0xC0400000 */
+ and r7,r5,r7
+ beq 10b
+ add r5,r5,r7
+ b 10b
+20:
+/* 0x00100000..0x001FFFFF */
+ mov r6,r2 /* Set up page table descriptor */
+ ldr r7,=MMU_L1_TYPE_Page
+ orr r6,r6,r7
+ str r6,[r1],#4 /* Store PTE, update pointer */
+10: mov r6,r5 /* Build page table entry */
+ ldr r7,=MMU_L2_TYPE_Small|MMU_AP_Any|MMU_Bufferable|MMU_Cacheable
+ orr r6,r6,r7
+ ldr r7,=MMU_PAGE_SIZE
+ str r6,[r2],#4 /* Next page */
+ add r3,r3,r7
+ cmp r3,r4 /* Done with first DRAM? */
+ beq 20f
+ add r5,r5,r7
+ ldr r7,=0x40000 /* Special check for 256K boundary */
+ and r7,r7,r5
+ cmp r7,#0
+ beq 10b
+ add r5,r5,r7 /* Skip 256K hole */
+ ldr r7,=0x100000
+ and r7,r5,r7
+ beq 10b
+ add r5,r5,r7 /* Nothing at 0xC0300000 */
+ ldr r7,=0x400000 /* Also nothing at 0xC0400000 */
+ and r7,r5,r7
+ beq 10b
+ add r5,r5,r7
+ b 10b
+20:
+
+#elif (CYGHWR_HAL_ARM_EDB7XXX_DRAM_SIZE == 16)
+// The 16M EDB72xx boards are arranged as:
+// 0xC0000000..0xC07FFFFF
+// 0xC1000000..0xC17FFFFF
+// The 16M EDB7312 board is arranged as:
+// 0xC0000000..0xC0FFFFFF
+ .macro MAP_DRAM
+/* Map DRAM */
+ ldr r3,=DRAM_LA_START
+ ldr r4,=DRAM_LA_END
+ ldr r5,=DRAM_PA
+/* 0xXXX00000..0xXXXFFFFF */
+10: mov r6,r2 /* Set up page table descriptor */
+ ldr r7,=MMU_L1_TYPE_Page
+ orr r6,r6,r7
+ str r6,[r1],#4 /* Store PTE, update pointer */
+ ldr r8,=MMU_SECTION_SIZE/MMU_PAGE_SIZE
+#if !defined(__EDB7312)
+// EDB7312 has contiguous SDRAM
+ ldr r9,=DRAM_PA_START+0x00800000 /* Skip at 8M boundary */
+12: cmp r5,r9
+ bne 15f
+ ldr r5,=DRAM_PA_START+0x01000000 /* Next chunk of DRAM */
+#else
+12:
+#endif
+15: mov r6,r5 /* Build page table entry */
+ ldr r7,=MMU_L2_TYPE_Small|MMU_AP_Any|MMU_Bufferable|MMU_Cacheable
+ orr r6,r6,r7
+ ldr r7,=MMU_PAGE_SIZE
+ str r6,[r2],#4 /* Next page */
+ add r3,r3,r7
+ add r5,r5,r7
+ cmp r3,r4 /* End of DRAM? */
+ beq 20f
+ sub r8,r8,#1 /* End of 1M section? */
+ cmp r8,#0
+ bne 12b /* Next page */
+ b 10b /* Next section */
+20:
+ .endm
+#else
+#error Invalid DRAM size select
+#endif
+
+ .macro MAP_L1_SEGMENT start end phys prot
+ ldr r3,=0x3FF /* Page tables need 2K boundary */
+ add r2,r2,r3
+ ldr r3,=~0x3FF
+ and r2,r2,r3
+ ldr r3,=\start
+ ldr r4,=\end
+ ldr r5,=\phys
+ ldr r6,=\prot
+ ldr r7,=MMU_SECTION_SIZE
+10: orr r0,r5,r6
+ str r0,[r1],#4
+ add r5,r5,r7
+ add r3,r3,r7
+ cmp r3,r4
+ bne 10b
+ .endm
+
+ .macro PLATFORM_SETUP1
+ INIT_MEMORY_CONFIG
+#ifdef CYG_HAL_STARTUP_RAM
+ RELOCATE_RAM_IMAGE
+#endif
+/* Initialize MMU to create new memory map */
+ ldr r1,=MMU_BASE
+ ldr r2,=PTE_BASE
+ MAP_DRAM
+/* Nothing until PCMCIA0 */
+ MAP_L1_SEGMENT (DRAM_LA_END+0x000FFFFF)&0xFFF00000 EXPANSION2_LA_START 0 MMU_L1_TYPE_Fault
+/* EXPANSION2, EXPANSION3, PCMCIA0, PCMCIA1 */
+ MAP_L1_SEGMENT EXPANSION2_LA_START SRAM_LA_START EXPANSION2_PA MMU_L1_TYPE_Section|MMU_AP_Any
+/* SRAM */
+ ldr r3,=SRAM_LA_START
+ ldr r4,=MMU_L1_TYPE_Page|MMU_DOMAIN(0)
+ orr r4,r4,r2
+ str r4,[r1],#4
+ ldr r7,=MMU_PAGE_SIZE
+ ldr r5,=SRAM_LA_END
+05: ldr r4,=MMU_L2_TYPE_Small|MMU_AP_Any|MMU_Bufferable|MMU_Cacheable
+ orr r4,r3,r4
+ str r4,[r2],#4
+ add r3,r3,r7
+ cmp r3,r5
+ bne 05b
+ ldr r4,=SRAM_LA_START+MMU_SECTION_SIZE
+ ldr r5,=MMU_L2_TYPE_Fault
+10: str r5,[r2],#4
+ add r3,r3,r7
+ cmp r3,r4
+ bne 10b
+ ldr r4,=IO_LA_START
+ ldr r5,=MMU_L1_TYPE_Fault
+ ldr r7,=MMU_SECTION_SIZE
+20: str r5,[r1],#4
+ add r3,r3,r7
+ cmp r3,r4
+ bne 20b
+/* I/O */
+ ldr r3,=0x3FF /* Page tables need 2K boundary */
+ add r2,r2,r3
+ ldr r3,=~0x3FF
+ and r2,r2,r3
+ ldr r4,=MMU_L1_TYPE_Page|MMU_DOMAIN(0)
+ orr r4,r4,r2
+ str r4,[r1],#4
+ ldr r3,=IO_LA_START
+ ldr r4,=IO_LA_END
+ ldr r7,=MMU_PAGE_SIZE
+ ldr r5,=IO_PA|MMU_L2_TYPE_Small|MMU_AP_All
+10: str r5,[r2],#4
+ add r5,r5,r7
+ add r3,r3,r7
+ cmp r3,r4
+ bne 10b
+ ldr r4,=IO_LA_START+MMU_SECTION_SIZE
+ ldr r5,=MMU_L2_TYPE_Fault
+ ldr r7,=MMU_PAGE_SIZE
+10: str r5,[r2],#4
+ add r3,r3,r7
+ cmp r3,r4
+ bne 10b
+ ldr r4,=LCD_LA_START
+ ldr r5,=MMU_L1_TYPE_Fault
+ ldr r7,=MMU_SECTION_SIZE
+20: str r5,[r1],#4
+ add r3,r3,r7
+ cmp r3,r4
+ bne 20b
+/* LCD Buffer & Unmapped DRAM (holes and all) */
+ MAP_L1_SEGMENT LCD_LA_START ROM0_LA_START LCD_PA MMU_L1_TYPE_Section|MMU_AP_Any|MMU_Bufferable|MMU_Cacheable
+/* ROM0 */
+ MAP_L1_SEGMENT ROM0_LA_START ROM0_LA_END ROM0_PA MMU_L1_TYPE_Section|MMU_AP_Any
+/* ROM1 */
+ MAP_L1_SEGMENT ROM1_LA_START ROM1_LA_END ROM1_PA MMU_L1_TYPE_Section|MMU_AP_Any
+/* Now initialize the MMU to use this new page table */
+ ldr r1,=MMU_BASE
+ MMU_INITIALIZE
+#ifdef CYG_HAL_STARTUP_ROMRAM
+ RELOCATE_TEXT_SEGMENT
+#endif // CYG_HAL_STARTUP_ROM
+ .endm
+#endif // CYGSEM_HAL_STATIC_MMU_TABLES
+
+#else // CYGSEM_HAL_INSTALL_MMU_TABLES
+
+#define PLATFORM_SETUP1
+#endif
+#endif //_CYGHWR_LAYOUT_ONLY
+
+/*---------------------------------------------------------------------------*/
+/* end of hal_platform_setup.h */
+#endif /* CYGONCE_HAL_PLATFORM_SETUP_H */
diff --git a/ecos/packages/hal/arm/edb7xxx/current/include/lcd_support.h b/ecos/packages/hal/arm/edb7xxx/current/include/lcd_support.h
new file mode 100644
index 0000000..fba0af1
--- /dev/null
+++ b/ecos/packages/hal/arm/edb7xxx/current/include/lcd_support.h
@@ -0,0 +1,73 @@
+#ifndef _LCD_SUPPORT_H_
+#define _LCD_SUPPORT_H_
+//==========================================================================
+//
+// lcd_support.h
+//
+// Cirrus Logic EDB7XXX - LCD support routines
+//
+//==========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//==========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): gthomas
+// Contributors: gthomas
+// Date: 2001-09-29
+// Description: Simple LCD support
+//####DESCRIPTIONEND####
+
+struct lcd_info {
+ short height, width; // Pixels
+ short bpp; // Depth (bits/pixel)
+ short type;
+ short rlen; // Length of one raster line in bytes
+ void *fb; // Frame buffer
+};
+
+// Frame buffer types
+#define FB_TRUE_RGB565 0x01
+
+// Exported functions
+void lcd_init(int depth);
+void lcd_clear(void);
+void lcd_moveto(int X, int Y);
+void lcd_putc(cyg_int8 c);
+int lcd_printf(char const *fmt, ...);
+void lcd_setbg(int red, int green, int blue);
+void lcd_setfg(int red, int green, int blue);
+void lcd_comm_init(void);
+int lcd_getinfo(struct lcd_info *info);
+void lcd_on(bool enable);
+
+#endif // _LCD_SUPPORT_H_
diff --git a/ecos/packages/hal/arm/edb7xxx/current/include/pkgconf/mlt_arm_cl7111_ram.h b/ecos/packages/hal/arm/edb7xxx/current/include/pkgconf/mlt_arm_cl7111_ram.h
new file mode 100644
index 0000000..943ee8e
--- /dev/null
+++ b/ecos/packages/hal/arm/edb7xxx/current/include/pkgconf/mlt_arm_cl7111_ram.h
@@ -0,0 +1,17 @@
+// eCos memory layout - Fri Oct 20 05:40:55 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 (0)
+#define CYGMEM_REGION_ram_SIZE (0x1c0000)
+#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 (0x1c0000 - (size_t) CYG_LABEL_NAME (__heap1))
diff --git a/ecos/packages/hal/arm/edb7xxx/current/include/pkgconf/mlt_arm_cl7111_ram.ldi b/ecos/packages/hal/arm/edb7xxx/current/include/pkgconf/mlt_arm_cl7111_ram.ldi
new file mode 100644
index 0000000..dfff7e1
--- /dev/null
+++ b/ecos/packages/hal/arm/edb7xxx/current/include/pkgconf/mlt_arm_cl7111_ram.ldi
@@ -0,0 +1,27 @@
+// eCos memory layout - Fri Oct 20 05:40:55 2000
+
+// This is a generated file - do not edit
+
+#include <cyg/infra/cyg_type.inc>
+
+MEMORY
+{
+ ram : ORIGIN = 0, LENGTH = 0x1c0000
+}
+
+SECTIONS
+{
+ SECTIONS_BEGIN
+ SECTION_fixed_vectors (ram, 0x20, LMA_EQ_VMA)
+ SECTION_rom_vectors (ram, 0x8000, 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)
+ CYG_LABEL_DEFN(__heap1) = ALIGN (0x8);
+ SECTIONS_END
+}
diff --git a/ecos/packages/hal/arm/edb7xxx/current/include/pkgconf/mlt_arm_cl7111_ram.mlt b/ecos/packages/hal/arm/edb7xxx/current/include/pkgconf/mlt_arm_cl7111_ram.mlt
new file mode 100644
index 0000000..601f891
--- /dev/null
+++ b/ecos/packages/hal/arm/edb7xxx/current/include/pkgconf/mlt_arm_cl7111_ram.mlt
@@ -0,0 +1,13 @@
+version 0
+region ram 0 1c0000 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 8000 8000 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 1 0 1 heap1 heap1 !
+section heap1 0 8 0 0 0 0 0 0 !
diff --git a/ecos/packages/hal/arm/edb7xxx/current/include/pkgconf/mlt_arm_cl7111_rom.h b/ecos/packages/hal/arm/edb7xxx/current/include/pkgconf/mlt_arm_cl7111_rom.h
new file mode 100644
index 0000000..10a7f96
--- /dev/null
+++ b/ecos/packages/hal/arm/edb7xxx/current/include/pkgconf/mlt_arm_cl7111_rom.h
@@ -0,0 +1,20 @@
+// eCos memory layout - Fri Oct 20 05:40:29 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 (0)
+#define CYGMEM_REGION_ram_SIZE (0x1c0000)
+#define CYGMEM_REGION_ram_ATTR (CYGMEM_REGION_ATTR_R | CYGMEM_REGION_ATTR_W)
+#define CYGMEM_REGION_rom (0xe0000000)
+#define CYGMEM_REGION_rom_SIZE (0x40000)
+#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 (0x1c0000 - (size_t) CYG_LABEL_NAME (__heap1))
diff --git a/ecos/packages/hal/arm/edb7xxx/current/include/pkgconf/mlt_arm_cl7111_rom.ldi b/ecos/packages/hal/arm/edb7xxx/current/include/pkgconf/mlt_arm_cl7111_rom.ldi
new file mode 100644
index 0000000..cc8c5c1
--- /dev/null
+++ b/ecos/packages/hal/arm/edb7xxx/current/include/pkgconf/mlt_arm_cl7111_rom.ldi
@@ -0,0 +1,28 @@
+// eCos memory layout - Fri Oct 20 05:40:29 2000
+
+// This is a generated file - do not edit
+
+#include <cyg/infra/cyg_type.inc>
+
+MEMORY
+{
+ ram : ORIGIN = 0, LENGTH = 0x1c0000
+ rom : ORIGIN = 0xe0000000, LENGTH = 0x40000
+}
+
+SECTIONS
+{
+ SECTIONS_BEGIN
+ SECTION_rom_vectors (rom, 0xe0000000, 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, 0x1000, FOLLOWING (.gcc_except_table))
+ SECTION_bss (ram, ALIGN (0x4), LMA_EQ_VMA)
+ CYG_LABEL_DEFN(__heap1) = ALIGN (0x8);
+ SECTIONS_END
+}
diff --git a/ecos/packages/hal/arm/edb7xxx/current/include/pkgconf/mlt_arm_cl7111_rom.mlt b/ecos/packages/hal/arm/edb7xxx/current/include/pkgconf/mlt_arm_cl7111_rom.mlt
new file mode 100644
index 0000000..1badd76
--- /dev/null
+++ b/ecos/packages/hal/arm/edb7xxx/current/include/pkgconf/mlt_arm_cl7111_rom.mlt
@@ -0,0 +1,14 @@
+version 0
+region ram 0 1c0000 0 !
+region rom e0000000 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 1000 bss !
+section bss 0 4 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 e0000000 e0000000 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 !
diff --git a/ecos/packages/hal/arm/edb7xxx/current/include/pkgconf/mlt_arm_edb7209_rom.h b/ecos/packages/hal/arm/edb7xxx/current/include/pkgconf/mlt_arm_edb7209_rom.h
new file mode 100644
index 0000000..4edb91f
--- /dev/null
+++ b/ecos/packages/hal/arm/edb7xxx/current/include/pkgconf/mlt_arm_edb7209_rom.h
@@ -0,0 +1,20 @@
+// eCos memory layout - Fri Oct 20 05:41: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 (0)
+#define CYGMEM_REGION_ram_SIZE (0x9c00)
+#define CYGMEM_REGION_ram_ATTR (CYGMEM_REGION_ATTR_R | CYGMEM_REGION_ATTR_W)
+#define CYGMEM_REGION_rom (0xe0000000)
+#define CYGMEM_REGION_rom_SIZE (0x800000)
+#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 (0x9c00 - (size_t) CYG_LABEL_NAME (__heap1))
diff --git a/ecos/packages/hal/arm/edb7xxx/current/include/pkgconf/mlt_arm_edb7209_rom.ldi b/ecos/packages/hal/arm/edb7xxx/current/include/pkgconf/mlt_arm_edb7209_rom.ldi
new file mode 100644
index 0000000..07a7cc1
--- /dev/null
+++ b/ecos/packages/hal/arm/edb7xxx/current/include/pkgconf/mlt_arm_edb7209_rom.ldi
@@ -0,0 +1,29 @@
+// eCos memory layout - Fri Oct 20 05:41:57 2000
+
+// This is a generated file - do not edit
+
+#include <cyg/infra/cyg_type.inc>
+
+MEMORY
+{
+ ram : ORIGIN = 0, LENGTH = 0x9c00
+ rom : ORIGIN = 0xe0000000, LENGTH = 0x800000
+}
+
+SECTIONS
+{
+ SECTIONS_BEGIN
+ SECTION_rom_vectors (rom, 0xe0000000, 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_mmu_tables (rom, ALIGN (0x4000), LMA_EQ_VMA)
+ SECTION_fixed_vectors (ram, 0x20, LMA_EQ_VMA)
+ SECTION_data (ram, 0x1000, FOLLOWING (.mmu_tables))
+ SECTION_bss (ram, ALIGN (0x4), LMA_EQ_VMA)
+ CYG_LABEL_DEFN(__heap1) = ALIGN (0x8);
+ SECTIONS_END
+}
diff --git a/ecos/packages/hal/arm/edb7xxx/current/include/pkgconf/mlt_arm_edb7209_rom.mlt b/ecos/packages/hal/arm/edb7xxx/current/include/pkgconf/mlt_arm_edb7209_rom.mlt
new file mode 100644
index 0000000..d6dfe9f
--- /dev/null
+++ b/ecos/packages/hal/arm/edb7xxx/current/include/pkgconf/mlt_arm_edb7209_rom.mlt
@@ -0,0 +1,15 @@
+version 0
+region ram 0 9c00 0 !
+region rom e0000000 800000 1 !This is ROM bank 0, physical address 0x00000000.When running eCos, this space is remapped to 0xE0000000.
+section fixed_vectors 0 1 0 1 1 0 1 0 20 20 !
+section data 0 1 1 1 1 1 0 0 1000 bss !
+section bss 0 4 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 e0000000 e0000000 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 mmu_tables mmu_tables !
+section mmu_tables 0 4000 0 1 0 0 0 1 data !
diff --git a/ecos/packages/hal/arm/edb7xxx/current/include/pkgconf/mlt_arm_edb7211_ram.h b/ecos/packages/hal/arm/edb7xxx/current/include/pkgconf/mlt_arm_edb7211_ram.h
new file mode 100644
index 0000000..a69e226
--- /dev/null
+++ b/ecos/packages/hal/arm/edb7xxx/current/include/pkgconf/mlt_arm_edb7211_ram.h
@@ -0,0 +1,17 @@
+// eCos memory layout - Fri Oct 20 05:38:50 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 (0)
+#define CYGMEM_REGION_ram_SIZE (0xfd7000)
+#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 (0xfd7000 - (size_t) CYG_LABEL_NAME (__heap1))
diff --git a/ecos/packages/hal/arm/edb7xxx/current/include/pkgconf/mlt_arm_edb7211_ram.ldi b/ecos/packages/hal/arm/edb7xxx/current/include/pkgconf/mlt_arm_edb7211_ram.ldi
new file mode 100644
index 0000000..3df5023
--- /dev/null
+++ b/ecos/packages/hal/arm/edb7xxx/current/include/pkgconf/mlt_arm_edb7211_ram.ldi
@@ -0,0 +1,27 @@
+// eCos memory layout - Fri Oct 20 05:38:50 2000
+
+// This is a generated file - do not edit
+
+#include <cyg/infra/cyg_type.inc>
+
+MEMORY
+{
+ ram : ORIGIN = 0, LENGTH = 0xfd7000
+}
+
+SECTIONS
+{
+ SECTIONS_BEGIN
+ SECTION_fixed_vectors (ram, 0x20, LMA_EQ_VMA)
+ SECTION_rom_vectors (ram, 0x20000, 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)
+ CYG_LABEL_DEFN(__heap1) = ALIGN (0x8);
+ SECTIONS_END
+}
diff --git a/ecos/packages/hal/arm/edb7xxx/current/include/pkgconf/mlt_arm_edb7211_ram.mlt b/ecos/packages/hal/arm/edb7xxx/current/include/pkgconf/mlt_arm_edb7211_ram.mlt
new file mode 100644
index 0000000..8f2e265
--- /dev/null
+++ b/ecos/packages/hal/arm/edb7xxx/current/include/pkgconf/mlt_arm_edb7211_ram.mlt
@@ -0,0 +1,13 @@
+version 0
+region ram 0 fd7000 0 !DRAM
+section fixed_vectors 0 1 0 1 1 0 1 0 20 20 !
+section rom_vectors 0 1 0 1 1 1 1 1 20000 20000 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 1 0 1 heap1 heap1 !
+section heap1 0 8 0 0 0 0 0 0 !
diff --git a/ecos/packages/hal/arm/edb7xxx/current/include/pkgconf/mlt_arm_edb7211_rom.h b/ecos/packages/hal/arm/edb7xxx/current/include/pkgconf/mlt_arm_edb7211_rom.h
new file mode 100755
index 0000000..1e37ffc
--- /dev/null
+++ b/ecos/packages/hal/arm/edb7xxx/current/include/pkgconf/mlt_arm_edb7211_rom.h
@@ -0,0 +1,28 @@
+// eCos memory layout - Fri Oct 20 05:39:48 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 (0)
+#define CYGMEM_REGION_ram_SIZE (0xfd7000)
+#define CYGMEM_REGION_ram_ATTR (CYGMEM_REGION_ATTR_R | CYGMEM_REGION_ATTR_W)
+#define CYGMEM_REGION_sram (0x60000000)
+#define CYGMEM_REGION_sram_SIZE (0x9c00)
+#define CYGMEM_REGION_sram_ATTR (CYGMEM_REGION_ATTR_R | CYGMEM_REGION_ATTR_W)
+#define CYGMEM_REGION_rom (0xe0000000)
+#define CYGMEM_REGION_rom_SIZE (0x1000000)
+#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 (0xfd7000 - (size_t) CYG_LABEL_NAME (__heap1))
+#ifndef __ASSEMBLER__
+extern char CYG_LABEL_NAME (__sram) [];
+#endif
+#define CYGMEM_SECTION_sram (CYG_LABEL_NAME (__sram))
+#define CYGMEM_SECTION_sram_SIZE (0x60009c00 - (size_t) CYG_LABEL_NAME (__sram))
diff --git a/ecos/packages/hal/arm/edb7xxx/current/include/pkgconf/mlt_arm_edb7211_rom.ldi b/ecos/packages/hal/arm/edb7xxx/current/include/pkgconf/mlt_arm_edb7211_rom.ldi
new file mode 100644
index 0000000..bd6d228
--- /dev/null
+++ b/ecos/packages/hal/arm/edb7xxx/current/include/pkgconf/mlt_arm_edb7211_rom.ldi
@@ -0,0 +1,31 @@
+// eCos memory layout - Fri Oct 20 05:39:48 2000
+
+// This is a generated file - do not edit
+
+#include <cyg/infra/cyg_type.inc>
+
+MEMORY
+{
+ ram : ORIGIN = 0, LENGTH = 0xfd7000
+ sram : ORIGIN = 0x60000000, LENGTH = 0x9c00
+ rom : ORIGIN = 0xe0000000, LENGTH = 0x1000000
+}
+
+SECTIONS
+{
+ SECTIONS_BEGIN
+ SECTION_rom_vectors (rom, 0xe0000000, 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_mmu_tables (rom, ALIGN (0x4000), LMA_EQ_VMA)
+ SECTION_fixed_vectors (ram, 0x20, LMA_EQ_VMA)
+ SECTION_data (ram, 0x1000, FOLLOWING (.mmu_tables))
+ SECTION_bss (ram, ALIGN (0x4), LMA_EQ_VMA)
+ CYG_LABEL_DEFN(__heap1) = ALIGN (0x8);
+ CYG_LABEL_DEFN(__sram) = 0x60000000;
+ SECTIONS_END
+}
diff --git a/ecos/packages/hal/arm/edb7xxx/current/include/pkgconf/mlt_arm_edb7211_rom.mlt b/ecos/packages/hal/arm/edb7xxx/current/include/pkgconf/mlt_arm_edb7211_rom.mlt
new file mode 100644
index 0000000..737086c
--- /dev/null
+++ b/ecos/packages/hal/arm/edb7xxx/current/include/pkgconf/mlt_arm_edb7211_rom.mlt
@@ -0,0 +1,17 @@
+version 0
+region ram 0 fd7000 0 !
+region sram 60000000 9c00 0 !
+region rom e0000000 1000000 1 !This is ROM bank 0, physical address 0x00000000.When running eCos, this space is remapped to 0xE0000000.
+section fixed_vectors 0 1 0 1 1 0 1 0 20 20 !
+section data 0 1 1 1 1 1 0 0 1000 bss !
+section bss 0 4 0 1 0 1 0 1 heap1 heap1 !
+section heap1 0 8 0 0 0 0 0 0 !
+section sram 0 1 0 0 1 0 1 0 60000000 60000000 !
+section rom_vectors 0 1 0 1 1 1 1 1 e0000000 e0000000 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 mmu_tables mmu_tables !
+section mmu_tables 0 4000 0 1 0 0 0 1 data !
diff --git a/ecos/packages/hal/arm/edb7xxx/current/include/pkgconf/mlt_arm_edb7212_ram.h b/ecos/packages/hal/arm/edb7xxx/current/include/pkgconf/mlt_arm_edb7212_ram.h
new file mode 100755
index 0000000..dc0a53b
--- /dev/null
+++ b/ecos/packages/hal/arm/edb7xxx/current/include/pkgconf/mlt_arm_edb7212_ram.h
@@ -0,0 +1,20 @@
+// eCos memory layout - Fri Oct 20 05:43:59 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 (0)
+#define CYGMEM_REGION_ram_SIZE (0xfd7000)
+#define CYGMEM_REGION_ram_ATTR (CYGMEM_REGION_ATTR_R | CYGMEM_REGION_ATTR_W)
+#define CYGMEM_REGION_sram (0x60000000)
+#define CYGMEM_REGION_sram_SIZE (0x9c00)
+#define CYGMEM_REGION_sram_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 (0xfd7000 - (size_t) CYG_LABEL_NAME (__heap1))
diff --git a/ecos/packages/hal/arm/edb7xxx/current/include/pkgconf/mlt_arm_edb7212_ram.ldi b/ecos/packages/hal/arm/edb7xxx/current/include/pkgconf/mlt_arm_edb7212_ram.ldi
new file mode 100644
index 0000000..0e1d098
--- /dev/null
+++ b/ecos/packages/hal/arm/edb7xxx/current/include/pkgconf/mlt_arm_edb7212_ram.ldi
@@ -0,0 +1,29 @@
+// eCos memory layout - Fri Oct 20 05:43:59 2000
+
+// This is a generated file - do not edit
+
+#include <cyg/infra/cyg_type.inc>
+
+MEMORY
+{
+ ram : ORIGIN = 0, LENGTH = 0xfd7000
+ sram : ORIGIN = 0x60000000, LENGTH = 0x9c00
+}
+
+SECTIONS
+{
+ SECTIONS_BEGIN
+ SECTION_fixed_vectors (ram, 0x20, LMA_EQ_VMA)
+ SECTION_rom_vectors (ram, 0x20000, 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)
+ CYG_LABEL_DEFN(__heap1) = ALIGN (0x8);
+ SECTION_sram (sram, 0x60000000, LMA_EQ_VMA)
+ SECTIONS_END
+}
diff --git a/ecos/packages/hal/arm/edb7xxx/current/include/pkgconf/mlt_arm_edb7212_ram.mlt b/ecos/packages/hal/arm/edb7xxx/current/include/pkgconf/mlt_arm_edb7212_ram.mlt
new file mode 100644
index 0000000..17eafbd
--- /dev/null
+++ b/ecos/packages/hal/arm/edb7xxx/current/include/pkgconf/mlt_arm_edb7212_ram.mlt
@@ -0,0 +1,15 @@
+version 0
+region ram 0 fd7000 0 !
+region sram 60000000 9c00 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 20000 20000 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 1 0 1 heap1 heap1 !
+section heap1 0 8 0 0 0 0 0 0 !
+section sram 0 1 0 1 1 0 1 0 60000000 60000000 !
diff --git a/ecos/packages/hal/arm/edb7xxx/current/include/pkgconf/mlt_arm_edb7212_rom.h b/ecos/packages/hal/arm/edb7xxx/current/include/pkgconf/mlt_arm_edb7212_rom.h
new file mode 100755
index 0000000..34484ce
--- /dev/null
+++ b/ecos/packages/hal/arm/edb7xxx/current/include/pkgconf/mlt_arm_edb7212_rom.h
@@ -0,0 +1,23 @@
+// eCos memory layout - Fri Oct 20 05:42:50 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 (0)
+#define CYGMEM_REGION_ram_SIZE (0xfd7000)
+#define CYGMEM_REGION_ram_ATTR (CYGMEM_REGION_ATTR_R | CYGMEM_REGION_ATTR_W)
+#define CYGMEM_REGION_sram (0x60000000)
+#define CYGMEM_REGION_sram_SIZE (0x9c00)
+#define CYGMEM_REGION_sram_ATTR (CYGMEM_REGION_ATTR_R | CYGMEM_REGION_ATTR_W)
+#define CYGMEM_REGION_rom (0xe0000000)
+#define CYGMEM_REGION_rom_SIZE (0x800000)
+#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 (0xfd7000 - (size_t) CYG_LABEL_NAME (__heap1))
diff --git a/ecos/packages/hal/arm/edb7xxx/current/include/pkgconf/mlt_arm_edb7212_rom.ldi b/ecos/packages/hal/arm/edb7xxx/current/include/pkgconf/mlt_arm_edb7212_rom.ldi
new file mode 100644
index 0000000..55b83cc
--- /dev/null
+++ b/ecos/packages/hal/arm/edb7xxx/current/include/pkgconf/mlt_arm_edb7212_rom.ldi
@@ -0,0 +1,31 @@
+// eCos memory layout - Fri Oct 20 05:42:50 2000
+
+// This is a generated file - do not edit
+
+#include <cyg/infra/cyg_type.inc>
+
+MEMORY
+{
+ ram : ORIGIN = 0, LENGTH = 0xfd7000
+ sram : ORIGIN = 0x60000000, LENGTH = 0x9c00
+ rom : ORIGIN = 0xe0000000, LENGTH = 0x800000
+}
+
+SECTIONS
+{
+ SECTIONS_BEGIN
+ SECTION_rom_vectors (rom, 0xe0000000, 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_mmu_tables (rom, ALIGN (0x4000), LMA_EQ_VMA)
+ SECTION_fixed_vectors (ram, 0x20, LMA_EQ_VMA)
+ SECTION_data (ram, 0x1000, FOLLOWING (.mmu_tables))
+ SECTION_bss (ram, ALIGN (0x4), LMA_EQ_VMA)
+ CYG_LABEL_DEFN(__heap1) = ALIGN (0x8);
+ SECTION_sram (sram, 0x60000000, LMA_EQ_VMA)
+ SECTIONS_END
+}
diff --git a/ecos/packages/hal/arm/edb7xxx/current/include/pkgconf/mlt_arm_edb7212_rom.mlt b/ecos/packages/hal/arm/edb7xxx/current/include/pkgconf/mlt_arm_edb7212_rom.mlt
new file mode 100644
index 0000000..ca7d462
--- /dev/null
+++ b/ecos/packages/hal/arm/edb7xxx/current/include/pkgconf/mlt_arm_edb7212_rom.mlt
@@ -0,0 +1,17 @@
+version 0
+region ram 0 fd7000 0 !
+region sram 60000000 9c00 0 !
+region rom e0000000 800000 1 !This is ROM bank 0, physical address 0x00000000.When running eCos, this space is remapped to 0xE0000000.
+section fixed_vectors 0 1 0 1 1 0 1 0 20 20 !
+section data 0 1 1 1 1 1 0 0 1000 bss !
+section bss 0 4 0 1 0 1 0 1 heap1 heap1 !
+section heap1 0 8 0 0 0 0 0 0 !
+section sram 0 1 0 1 1 0 1 0 60000000 60000000 !
+section rom_vectors 0 1 0 1 1 1 1 1 e0000000 e0000000 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 mmu_tables mmu_tables !
+section mmu_tables 0 4000 0 1 0 0 0 1 data !
diff --git a/ecos/packages/hal/arm/edb7xxx/current/include/pkgconf/mlt_arm_edb7312_ram.h b/ecos/packages/hal/arm/edb7xxx/current/include/pkgconf/mlt_arm_edb7312_ram.h
new file mode 100644
index 0000000..e17cc2d
--- /dev/null
+++ b/ecos/packages/hal/arm/edb7xxx/current/include/pkgconf/mlt_arm_edb7312_ram.h
@@ -0,0 +1,20 @@
+// eCos memory layout - Fri Oct 20 05:43:59 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 (0)
+#define CYGMEM_REGION_ram_SIZE (0xfd0000)
+#define CYGMEM_REGION_ram_ATTR (CYGMEM_REGION_ATTR_R | CYGMEM_REGION_ATTR_W)
+#define CYGMEM_REGION_sram (0x60000000)
+#define CYGMEM_REGION_sram_SIZE (0x9c00)
+#define CYGMEM_REGION_sram_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 (0xfd0000 - (size_t) CYG_LABEL_NAME (__heap1))
diff --git a/ecos/packages/hal/arm/edb7xxx/current/include/pkgconf/mlt_arm_edb7312_ram.ldi b/ecos/packages/hal/arm/edb7xxx/current/include/pkgconf/mlt_arm_edb7312_ram.ldi
new file mode 100644
index 0000000..292b8a8
--- /dev/null
+++ b/ecos/packages/hal/arm/edb7xxx/current/include/pkgconf/mlt_arm_edb7312_ram.ldi
@@ -0,0 +1,29 @@
+// eCos memory layout - Fri Oct 20 05:43:59 2000
+
+// This is a generated file - do not edit
+
+#include <cyg/infra/cyg_type.inc>
+
+MEMORY
+{
+ ram : ORIGIN = 0, LENGTH = 0xfd0000
+ sram : ORIGIN = 0x60000000, LENGTH = 0x9c00
+}
+
+SECTIONS
+{
+ SECTIONS_BEGIN
+ SECTION_fixed_vectors (ram, 0x20, LMA_EQ_VMA)
+ SECTION_rom_vectors (ram, 0x40000, 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)
+ CYG_LABEL_DEFN(__heap1) = ALIGN (0x8);
+ SECTION_sram (sram, 0x60000000, LMA_EQ_VMA)
+ SECTIONS_END
+}
diff --git a/ecos/packages/hal/arm/edb7xxx/current/include/pkgconf/mlt_arm_edb7312_ram.mlt b/ecos/packages/hal/arm/edb7xxx/current/include/pkgconf/mlt_arm_edb7312_ram.mlt
new file mode 100644
index 0000000..0c7d465
--- /dev/null
+++ b/ecos/packages/hal/arm/edb7xxx/current/include/pkgconf/mlt_arm_edb7312_ram.mlt
@@ -0,0 +1,15 @@
+version 0
+region ram 0 fd0000 0 !
+region sram 60000000 9c00 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 40000 40000 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 1 0 1 heap1 heap1 !
+section heap1 0 8 0 0 0 0 0 0 !
+section sram 0 1 0 1 1 0 1 0 60000000 60000000 !
diff --git a/ecos/packages/hal/arm/edb7xxx/current/include/pkgconf/mlt_arm_edb7312_rom.h b/ecos/packages/hal/arm/edb7xxx/current/include/pkgconf/mlt_arm_edb7312_rom.h
new file mode 100644
index 0000000..34484ce
--- /dev/null
+++ b/ecos/packages/hal/arm/edb7xxx/current/include/pkgconf/mlt_arm_edb7312_rom.h
@@ -0,0 +1,23 @@
+// eCos memory layout - Fri Oct 20 05:42:50 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 (0)
+#define CYGMEM_REGION_ram_SIZE (0xfd7000)
+#define CYGMEM_REGION_ram_ATTR (CYGMEM_REGION_ATTR_R | CYGMEM_REGION_ATTR_W)
+#define CYGMEM_REGION_sram (0x60000000)
+#define CYGMEM_REGION_sram_SIZE (0x9c00)
+#define CYGMEM_REGION_sram_ATTR (CYGMEM_REGION_ATTR_R | CYGMEM_REGION_ATTR_W)
+#define CYGMEM_REGION_rom (0xe0000000)
+#define CYGMEM_REGION_rom_SIZE (0x800000)
+#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 (0xfd7000 - (size_t) CYG_LABEL_NAME (__heap1))
diff --git a/ecos/packages/hal/arm/edb7xxx/current/include/pkgconf/mlt_arm_edb7312_rom.ldi b/ecos/packages/hal/arm/edb7xxx/current/include/pkgconf/mlt_arm_edb7312_rom.ldi
new file mode 100644
index 0000000..55b83cc
--- /dev/null
+++ b/ecos/packages/hal/arm/edb7xxx/current/include/pkgconf/mlt_arm_edb7312_rom.ldi
@@ -0,0 +1,31 @@
+// eCos memory layout - Fri Oct 20 05:42:50 2000
+
+// This is a generated file - do not edit
+
+#include <cyg/infra/cyg_type.inc>
+
+MEMORY
+{
+ ram : ORIGIN = 0, LENGTH = 0xfd7000
+ sram : ORIGIN = 0x60000000, LENGTH = 0x9c00
+ rom : ORIGIN = 0xe0000000, LENGTH = 0x800000
+}
+
+SECTIONS
+{
+ SECTIONS_BEGIN
+ SECTION_rom_vectors (rom, 0xe0000000, 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_mmu_tables (rom, ALIGN (0x4000), LMA_EQ_VMA)
+ SECTION_fixed_vectors (ram, 0x20, LMA_EQ_VMA)
+ SECTION_data (ram, 0x1000, FOLLOWING (.mmu_tables))
+ SECTION_bss (ram, ALIGN (0x4), LMA_EQ_VMA)
+ CYG_LABEL_DEFN(__heap1) = ALIGN (0x8);
+ SECTION_sram (sram, 0x60000000, LMA_EQ_VMA)
+ SECTIONS_END
+}
diff --git a/ecos/packages/hal/arm/edb7xxx/current/include/pkgconf/mlt_arm_edb7312_rom.mlt b/ecos/packages/hal/arm/edb7xxx/current/include/pkgconf/mlt_arm_edb7312_rom.mlt
new file mode 100644
index 0000000..ca7d462
--- /dev/null
+++ b/ecos/packages/hal/arm/edb7xxx/current/include/pkgconf/mlt_arm_edb7312_rom.mlt
@@ -0,0 +1,17 @@
+version 0
+region ram 0 fd7000 0 !
+region sram 60000000 9c00 0 !
+region rom e0000000 800000 1 !This is ROM bank 0, physical address 0x00000000.When running eCos, this space is remapped to 0xE0000000.
+section fixed_vectors 0 1 0 1 1 0 1 0 20 20 !
+section data 0 1 1 1 1 1 0 0 1000 bss !
+section bss 0 4 0 1 0 1 0 1 heap1 heap1 !
+section heap1 0 8 0 0 0 0 0 0 !
+section sram 0 1 0 1 1 0 1 0 60000000 60000000 !
+section rom_vectors 0 1 0 1 1 1 1 1 e0000000 e0000000 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 mmu_tables mmu_tables !
+section mmu_tables 0 4000 0 1 0 0 0 1 data !
diff --git a/ecos/packages/hal/arm/edb7xxx/current/include/pkgconf/mlt_arm_edb7312_romram.h b/ecos/packages/hal/arm/edb7xxx/current/include/pkgconf/mlt_arm_edb7312_romram.h
new file mode 100644
index 0000000..e17cc2d
--- /dev/null
+++ b/ecos/packages/hal/arm/edb7xxx/current/include/pkgconf/mlt_arm_edb7312_romram.h
@@ -0,0 +1,20 @@
+// eCos memory layout - Fri Oct 20 05:43:59 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 (0)
+#define CYGMEM_REGION_ram_SIZE (0xfd0000)
+#define CYGMEM_REGION_ram_ATTR (CYGMEM_REGION_ATTR_R | CYGMEM_REGION_ATTR_W)
+#define CYGMEM_REGION_sram (0x60000000)
+#define CYGMEM_REGION_sram_SIZE (0x9c00)
+#define CYGMEM_REGION_sram_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 (0xfd0000 - (size_t) CYG_LABEL_NAME (__heap1))
diff --git a/ecos/packages/hal/arm/edb7xxx/current/include/pkgconf/mlt_arm_edb7312_romram.ldi b/ecos/packages/hal/arm/edb7xxx/current/include/pkgconf/mlt_arm_edb7312_romram.ldi
new file mode 100644
index 0000000..e594028
--- /dev/null
+++ b/ecos/packages/hal/arm/edb7xxx/current/include/pkgconf/mlt_arm_edb7312_romram.ldi
@@ -0,0 +1,29 @@
+// eCos memory layout - Fri Oct 20 05:43:59 2000
+
+// This is a generated file - do not edit
+
+#include <cyg/infra/cyg_type.inc>
+
+MEMORY
+{
+ ram : ORIGIN = 0, LENGTH = 0xfd0000
+ sram : ORIGIN = 0x60000000, LENGTH = 0x9c00
+}
+
+SECTIONS
+{
+ SECTIONS_BEGIN
+ SECTION_fixed_vectors (ram, 0x20, LMA_EQ_VMA)
+ SECTION_rom_vectors (ram, 0x1000, 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)
+ CYG_LABEL_DEFN(__heap1) = ALIGN (0x8);
+ SECTION_sram (sram, 0x60000000, LMA_EQ_VMA)
+ SECTIONS_END
+}
diff --git a/ecos/packages/hal/arm/edb7xxx/current/include/pkgconf/mlt_arm_edb7312_romram.mlt b/ecos/packages/hal/arm/edb7xxx/current/include/pkgconf/mlt_arm_edb7312_romram.mlt
new file mode 100644
index 0000000..828d005
--- /dev/null
+++ b/ecos/packages/hal/arm/edb7xxx/current/include/pkgconf/mlt_arm_edb7312_romram.mlt
@@ -0,0 +1,15 @@
+version 0
+region ram 0 fd0000 0 !
+region sram 60000000 9c00 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 1000 1000 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 1 0 1 heap1 heap1 !
+section heap1 0 8 0 0 0 0 0 0 !
+section sram 0 1 0 1 1 0 1 0 60000000 60000000 !
diff --git a/ecos/packages/hal/arm/edb7xxx/current/include/plf_io.h b/ecos/packages/hal/arm/edb7xxx/current/include/plf_io.h
new file mode 100644
index 0000000..5b91796
--- /dev/null
+++ b/ecos/packages/hal/arm/edb7xxx/current/include/plf_io.h
@@ -0,0 +1,84 @@
+#ifndef CYGONCE_HAL_ARM_EDB7XXX_PLF_IO_H
+#define CYGONCE_HAL_ARM_EDB7XXX_PLF_IO_H
+
+/*=============================================================================
+//
+// plf_io.h
+//
+// Platform specific support (register layout, etc)
+//
+//=============================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jskov
+// Contributors: jskov, gthomas
+// Date: 2002-01-28
+// Purpose: Platform specific support routines
+// Description:
+// Usage: #include <cyg/hal/hal_io.h>
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================*/
+
+#include <pkgconf/hal.h>
+#include <pkgconf/system.h>
+#include CYGBLD_HAL_PLATFORM_H
+#include <cyg/hal/hal_edb7xxx.h>
+
+extern unsigned long _edb7xxx_physical_address(unsigned long addr);
+#define CYGARC_PHYSICAL_ADDRESS(x) _edb7xxx_physical_address((unsigned long) x)
+
+#if defined(CYGPKG_REDBOOT_ARM_LINUX_EXEC) && defined(CYGHWR_HAL_ARM_EDB7XXX_VARIANT_EP7312)
+#define _CYGHWR_LAYOUT_ONLY
+#include <cyg/hal/hal_platform_setup.h>
+// Describe memory layout for Linux
+#define CYGHWR_REDBOOT_LINUX_ATAG_MEM(_p_) \
+ CYG_MACRO_START \
+ /* Next ATAG_MEM. */ \
+ _p_->hdr.size = (sizeof(struct tag_mem32) + sizeof(struct tag_header))/sizeof(long); \
+ _p_->hdr.tag = ATAG_MEM; \
+ /* Round up so there's only one bit set in the memory size. \
+ * Don't double it if it's already a power of two, though. \
+ */ \
+ _p_->u.mem.size = 1<<hal_msbindex(CYGMEM_REGION_ram_SIZE); \
+ if (_p_->u.mem.size < CYGMEM_REGION_ram_SIZE) \
+ _p_->u.mem.size <<= 1; \
+ _p_->u.mem.start = DRAM_PA_START; \
+ CYG_MACRO_END
+#endif
+
+#endif // CYGONCE_HAL_ARM_EDB7XXX_PLF_IO_H
+// EOF plf_io.h
diff --git a/ecos/packages/hal/arm/edb7xxx/current/include/plf_stub.h b/ecos/packages/hal/arm/edb7xxx/current/include/plf_stub.h
new file mode 100644
index 0000000..4d496b1
--- /dev/null
+++ b/ecos/packages/hal/arm/edb7xxx/current/include/plf_stub.h
@@ -0,0 +1,84 @@
+#ifndef CYGONCE_HAL_PLF_STUB_H
+#define CYGONCE_HAL_PLF_STUB_H
+
+//=============================================================================
+//
+// plf_stub.h
+//
+// Platform header for GDB stub support.
+//
+//=============================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jskov
+// Contributors:jskov, gthomas
+// Date: 1999-04-21
+// Purpose: Platform HAL stub support for Cirrus EDB7XXX boards.
+// Usage: #include <cyg/hal/plf_stub.h>
+//
+//####DESCRIPTIONEND####
+//
+//=============================================================================
+
+#include <pkgconf/hal.h>
+#include <pkgconf/hal_arm_edb7xxx.h>
+
+#ifdef CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS
+
+#include <cyg/infra/cyg_type.h> // CYG_UNUSED_PARAM
+
+#include <cyg/hal/arm_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.
+#define HAL_STUB_PLATFORM_INIT() CYG_EMPTY_STATEMENT
+
+#endif // ifdef CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS
+//-----------------------------------------------------------------------------
+#endif // CYGONCE_HAL_PLF_STUB_H
+// End of plf_stub.h
diff --git a/ecos/packages/hal/arm/edb7xxx/current/misc/edb7211_redboot.ecm b/ecos/packages/hal/arm/edb7xxx/current/misc/edb7211_redboot.ecm
new file mode 100644
index 0000000..8dc1dd4
--- /dev/null
+++ b/ecos/packages/hal/arm/edb7xxx/current/misc/edb7211_redboot.ecm
@@ -0,0 +1,50 @@
+cdl_savefile_version 1;
+cdl_savefile_command cdl_savefile_version {};
+cdl_savefile_command cdl_savefile_command {};
+cdl_savefile_command cdl_configuration { description hardware template package };
+cdl_savefile_command cdl_package { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_component { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_option { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_interface { value_source user_value wizard_value inferred_value };
+
+cdl_configuration eCos {
+ description "" ;
+ hardware edb7xxx ;
+ template redboot ;
+ package -hardware CYGPKG_HAL_ARM current ;
+ package -hardware CYGPKG_HAL_ARM_EDB7XXX current ;
+ package -hardware CYGPKG_DEVS_ETH_ARM_EDB7XXX current ;
+ package -hardware CYGPKG_IO_SERIAL_ARM_EDB7XXX current ;
+ package -hardware CYGPKG_DEVS_FLASH_EDB7XXX current ;
+ package -template CYGPKG_HAL current ;
+ package -template CYGPKG_INFRA current ;
+ package -template CYGPKG_REDBOOT current ;
+ package CYGPKG_IO_FLASH current ;
+ package CYGPKG_IO_ETH_DRIVERS current ;
+};
+
+cdl_option CYGDBG_HAL_COMMON_INTERRUPTS_SAVE_MINIMUM_CONTEXT {
+ user_value 0
+};
+
+cdl_option CYGDBG_HAL_COMMON_CONTEXT_SAVE_MINIMUM {
+ inferred_value 0
+};
+
+cdl_option CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS {
+ inferred_value 1
+};
+
+cdl_option CYGSEM_HAL_USE_ROM_MONITOR {
+ inferred_value 0 0
+};
+
+cdl_component CYGBLD_BUILD_REDBOOT {
+ user_value 1
+};
+
+
+cdl_option CYGBLD_BUILD_REDBOOT_WITH_EXEC {
+ user_value 0
+};
+
diff --git a/ecos/packages/hal/arm/edb7xxx/current/misc/edb7211_redboot_ROM.ecm b/ecos/packages/hal/arm/edb7xxx/current/misc/edb7211_redboot_ROM.ecm
new file mode 100644
index 0000000..8a74eb8
--- /dev/null
+++ b/ecos/packages/hal/arm/edb7xxx/current/misc/edb7211_redboot_ROM.ecm
@@ -0,0 +1,58 @@
+cdl_savefile_version 1;
+cdl_savefile_command cdl_savefile_version {};
+cdl_savefile_command cdl_savefile_command {};
+cdl_savefile_command cdl_configuration { description hardware template package };
+cdl_savefile_command cdl_package { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_component { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_option { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_interface { value_source user_value wizard_value inferred_value };
+
+cdl_configuration eCos {
+ description "" ;
+ hardware edb7xxx ;
+ template redboot ;
+ package -hardware CYGPKG_HAL_ARM current ;
+ package -hardware CYGPKG_HAL_ARM_EDB7XXX current ;
+ package -hardware CYGPKG_DEVS_ETH_ARM_EDB7XXX current ;
+ package -hardware CYGPKG_IO_SERIAL_ARM_EDB7XXX current ;
+ package -hardware CYGPKG_DEVS_FLASH_EDB7XXX current ;
+ package -template CYGPKG_HAL current ;
+ package -template CYGPKG_INFRA current ;
+ package -template CYGPKG_REDBOOT current ;
+ package CYGPKG_IO_FLASH current ;
+ package CYGPKG_IO_ETH_DRIVERS current ;
+};
+
+cdl_option CYGDBG_HAL_COMMON_INTERRUPTS_SAVE_MINIMUM_CONTEXT {
+ user_value 0
+};
+
+cdl_option CYGDBG_HAL_COMMON_CONTEXT_SAVE_MINIMUM {
+ inferred_value 0
+};
+
+cdl_option CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS {
+ inferred_value 1
+};
+
+cdl_option CYGSEM_HAL_ROM_MONITOR {
+ inferred_value 1
+};
+
+cdl_option CYGSEM_HAL_USE_ROM_MONITOR {
+ inferred_value 0 0
+};
+
+cdl_component CYG_HAL_STARTUP {
+ user_value ROM
+};
+
+cdl_component CYGBLD_BUILD_REDBOOT {
+ user_value 1
+};
+
+
+cdl_option CYGBLD_BUILD_REDBOOT_WITH_EXEC {
+ user_value 0
+};
+
diff --git a/ecos/packages/hal/arm/edb7xxx/current/misc/edb7212_redboot.ecm b/ecos/packages/hal/arm/edb7xxx/current/misc/edb7212_redboot.ecm
new file mode 100644
index 0000000..e169161
--- /dev/null
+++ b/ecos/packages/hal/arm/edb7xxx/current/misc/edb7212_redboot.ecm
@@ -0,0 +1,54 @@
+cdl_savefile_version 1;
+cdl_savefile_command cdl_savefile_version {};
+cdl_savefile_command cdl_savefile_command {};
+cdl_savefile_command cdl_configuration { description hardware template package };
+cdl_savefile_command cdl_package { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_component { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_option { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_interface { value_source user_value wizard_value inferred_value };
+
+cdl_configuration eCos {
+ description "" ;
+ hardware edb7xxx ;
+ template redboot ;
+ package -hardware CYGPKG_HAL_ARM current ;
+ package -hardware CYGPKG_HAL_ARM_EDB7XXX current ;
+ package -hardware CYGPKG_DEVS_ETH_ARM_EDB7XXX current ;
+ package -hardware CYGPKG_IO_SERIAL_ARM_EDB7XXX current ;
+ package -hardware CYGPKG_DEVS_FLASH_EDB7XXX current ;
+ package -template CYGPKG_HAL current ;
+ package -template CYGPKG_INFRA current ;
+ package -template CYGPKG_REDBOOT current ;
+ package CYGPKG_IO_FLASH current ;
+ package CYGPKG_IO_ETH_DRIVERS current ;
+};
+
+cdl_option CYGDBG_HAL_COMMON_INTERRUPTS_SAVE_MINIMUM_CONTEXT {
+ user_value 0
+};
+
+cdl_option CYGDBG_HAL_COMMON_CONTEXT_SAVE_MINIMUM {
+ inferred_value 0
+};
+
+cdl_option CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS {
+ inferred_value 1
+};
+
+cdl_option CYGSEM_HAL_USE_ROM_MONITOR {
+ inferred_value 0 0
+};
+
+cdl_option CYGHWR_HAL_ARM_EDB7XXX_VARIANT {
+ user_value EP7212
+};
+
+cdl_component CYGBLD_BUILD_REDBOOT {
+ user_value 1
+};
+
+
+cdl_option CYGBLD_BUILD_REDBOOT_WITH_EXEC {
+ user_value 0
+};
+
diff --git a/ecos/packages/hal/arm/edb7xxx/current/misc/edb7212_redboot_ROM.ecm b/ecos/packages/hal/arm/edb7xxx/current/misc/edb7212_redboot_ROM.ecm
new file mode 100644
index 0000000..81620ad
--- /dev/null
+++ b/ecos/packages/hal/arm/edb7xxx/current/misc/edb7212_redboot_ROM.ecm
@@ -0,0 +1,62 @@
+cdl_savefile_version 1;
+cdl_savefile_command cdl_savefile_version {};
+cdl_savefile_command cdl_savefile_command {};
+cdl_savefile_command cdl_configuration { description hardware template package };
+cdl_savefile_command cdl_package { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_component { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_option { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_interface { value_source user_value wizard_value inferred_value };
+
+cdl_configuration eCos {
+ description "" ;
+ hardware edb7xxx ;
+ template redboot ;
+ package -hardware CYGPKG_HAL_ARM current ;
+ package -hardware CYGPKG_HAL_ARM_EDB7XXX current ;
+ package -hardware CYGPKG_DEVS_ETH_ARM_EDB7XXX current ;
+ package -hardware CYGPKG_IO_SERIAL_ARM_EDB7XXX current ;
+ package -hardware CYGPKG_DEVS_FLASH_EDB7XXX current ;
+ package -template CYGPKG_HAL current ;
+ package -template CYGPKG_INFRA current ;
+ package -template CYGPKG_REDBOOT current ;
+ package CYGPKG_IO_FLASH current ;
+ package CYGPKG_IO_ETH_DRIVERS current ;
+};
+
+cdl_option CYGDBG_HAL_COMMON_INTERRUPTS_SAVE_MINIMUM_CONTEXT {
+ user_value 0
+};
+
+cdl_option CYGDBG_HAL_COMMON_CONTEXT_SAVE_MINIMUM {
+ inferred_value 0
+};
+
+cdl_option CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS {
+ inferred_value 1
+};
+
+cdl_option CYGSEM_HAL_ROM_MONITOR {
+ inferred_value 1
+};
+
+cdl_option CYGSEM_HAL_USE_ROM_MONITOR {
+ inferred_value 0 0
+};
+
+cdl_option CYGHWR_HAL_ARM_EDB7XXX_VARIANT {
+ user_value EP7212
+};
+
+cdl_component CYG_HAL_STARTUP {
+ user_value ROM
+};
+
+cdl_component CYGBLD_BUILD_REDBOOT {
+ user_value 1
+};
+
+
+cdl_option CYGBLD_BUILD_REDBOOT_WITH_EXEC {
+ user_value 0
+};
+
diff --git a/ecos/packages/hal/arm/edb7xxx/current/misc/edb7312_redboot_RAM.ecm b/ecos/packages/hal/arm/edb7xxx/current/misc/edb7312_redboot_RAM.ecm
new file mode 100644
index 0000000..9bdd777
--- /dev/null
+++ b/ecos/packages/hal/arm/edb7xxx/current/misc/edb7312_redboot_RAM.ecm
@@ -0,0 +1,111 @@
+cdl_savefile_version 1;
+cdl_savefile_command cdl_savefile_version {};
+cdl_savefile_command cdl_savefile_command {};
+cdl_savefile_command cdl_configuration { description hardware template package };
+cdl_savefile_command cdl_package { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_component { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_option { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_interface { value_source user_value wizard_value inferred_value };
+
+cdl_configuration eCos {
+ description "" ;
+ hardware edb7xxx ;
+ template redboot ;
+ package -hardware CYGPKG_HAL_ARM current ;
+ package -hardware CYGPKG_HAL_ARM_EDB7XXX current ;
+ package -hardware CYGPKG_DEVS_ETH_ARM_EDB7XXX current ;
+ package -hardware CYGPKG_DEVS_ETH_CL_CS8900A current ;
+ package -hardware CYGPKG_IO_SERIAL_ARM_EDB7XXX current ;
+ package -hardware CYGPKG_DEVS_FLASH_EDB7XXX current ;
+ package -hardware CYGPKG_DEVS_FLASH_STRATA current ;
+ package -template CYGPKG_HAL current ;
+ package -template CYGPKG_INFRA current ;
+ package -template CYGPKG_REDBOOT current ;
+ package -template CYGPKG_ISOINFRA current ;
+ package -template CYGPKG_LIBC_STRING current ;
+ package CYGPKG_NS_DNS current ;
+ package CYGPKG_IO_FLASH current ;
+ package CYGPKG_IO_ETH_DRIVERS current ;
+};
+
+cdl_option CYGFUN_LIBC_STRING_BSD_FUNCS {
+ inferred_value 0
+};
+
+cdl_option CYGNUM_HAL_COMMON_INTERRUPTS_STACK_SIZE {
+ user_value 4096
+};
+
+cdl_option CYGDBG_HAL_COMMON_INTERRUPTS_SAVE_MINIMUM_CONTEXT {
+ user_value 0
+};
+
+cdl_option CYGDBG_HAL_COMMON_CONTEXT_SAVE_MINIMUM {
+ inferred_value 0
+};
+
+cdl_option CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS {
+ inferred_value 1
+};
+
+cdl_option CYGSEM_HAL_ROM_MONITOR {
+ inferred_value 0
+};
+
+cdl_option CYGSEM_HAL_USE_ROM_MONITOR {
+ inferred_value 0 0
+};
+
+cdl_option CYGHWR_HAL_ARM_EDB7XXX_VARIANT {
+ user_value EP7312
+};
+
+cdl_option CYGHWR_HAL_ARM_EDB7XXX_BOARD_VARIANT {
+ user_value EDB7312
+};
+
+cdl_component CYG_HAL_STARTUP {
+ user_value RAM
+};
+
+cdl_component CYGBLD_BUILD_REDBOOT {
+ user_value 1
+};
+
+cdl_option CYGBLD_REDBOOT_MIN_IMAGE_SIZE {
+ user_value 0x00040000
+};
+
+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_BSD_FUNCS_HEADER {
+ inferred_value 1 <cyg/libc/string/bsdstring.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_DNS_HEADER {
+ inferred_value 1 <cyg/ns/dns/dns.h>
+};
+
+cdl_option CYGPKG_NS_DNS_BUILD {
+ inferred_value 0
+};
+
+
+cdl_option CYGBLD_BUILD_REDBOOT_WITH_EXEC {
+ user_value 0
+};
+
diff --git a/ecos/packages/hal/arm/edb7xxx/current/misc/edb7312_redboot_ROM.ecm b/ecos/packages/hal/arm/edb7xxx/current/misc/edb7312_redboot_ROM.ecm
new file mode 100644
index 0000000..f1ef74e
--- /dev/null
+++ b/ecos/packages/hal/arm/edb7xxx/current/misc/edb7312_redboot_ROM.ecm
@@ -0,0 +1,101 @@
+cdl_savefile_version 1;
+cdl_savefile_command cdl_savefile_version {};
+cdl_savefile_command cdl_savefile_command {};
+cdl_savefile_command cdl_configuration { description hardware template package };
+cdl_savefile_command cdl_package { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_component { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_option { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_interface { value_source user_value wizard_value inferred_value };
+
+cdl_configuration eCos {
+ description "" ;
+ hardware edb7xxx ;
+ template redboot ;
+ package -hardware CYGPKG_HAL_ARM current ;
+ package -hardware CYGPKG_HAL_ARM_EDB7XXX current ;
+ package -hardware CYGPKG_DEVS_ETH_ARM_EDB7XXX current ;
+ package -hardware CYGPKG_IO_SERIAL_ARM_EDB7XXX current ;
+ package -hardware CYGPKG_DEVS_FLASH_EDB7XXX current ;
+ package -hardware CYGPKG_DEVS_FLASH_STRATA current ;
+ package -template CYGPKG_HAL current ;
+ package -template CYGPKG_INFRA current ;
+ package -template CYGPKG_REDBOOT current ;
+ package -template CYGPKG_ISOINFRA current ;
+ package -template CYGPKG_LIBC_STRING current ;
+ package CYGPKG_NS_DNS current ;
+ package CYGPKG_IO_FLASH current ;
+ package CYGPKG_IO_ETH_DRIVERS current ;
+ package CYGPKG_COMPRESS_ZLIB current ;
+};
+
+cdl_option CYGNUM_HAL_COMMON_INTERRUPTS_STACK_SIZE {
+ user_value 4096
+};
+
+cdl_option CYGDBG_HAL_COMMON_INTERRUPTS_SAVE_MINIMUM_CONTEXT {
+ user_value 0
+};
+
+cdl_option CYGDBG_HAL_COMMON_CONTEXT_SAVE_MINIMUM {
+ inferred_value 0
+};
+
+cdl_option CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS {
+ inferred_value 1
+};
+
+cdl_option CYGSEM_HAL_ROM_MONITOR {
+ inferred_value 1
+};
+
+cdl_option CYGSEM_HAL_USE_ROM_MONITOR {
+ inferred_value 0 0
+};
+
+cdl_option CYGHWR_HAL_ARM_EDB7XXX_VARIANT {
+ user_value EP7312
+};
+
+cdl_option CYGHWR_HAL_ARM_EDB7XXX_BOARD_VARIANT {
+ user_value EDB7312
+};
+
+cdl_component CYG_HAL_STARTUP {
+ user_value ROM
+};
+
+cdl_component CYGBLD_BUILD_REDBOOT {
+ user_value 1
+};
+
+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_DNS_HEADER {
+ inferred_value 1 <cyg/ns/dns/dns.h>
+};
+
+cdl_option CYGPKG_NS_DNS_BUILD {
+ inferred_value 0
+};
+
+cdl_option CYGBLD_REDBOOT_MIN_IMAGE_SIZE {
+ user_value 0x00040000
+};
+cdl_option CYGBLD_BUILD_REDBOOT_WITH_EXEC {
+ user_value 0
+};
+
diff --git a/ecos/packages/hal/arm/edb7xxx/current/misc/edb7312_redboot_ROMRAM.ecm b/ecos/packages/hal/arm/edb7xxx/current/misc/edb7312_redboot_ROMRAM.ecm
new file mode 100644
index 0000000..4a3d8de
--- /dev/null
+++ b/ecos/packages/hal/arm/edb7xxx/current/misc/edb7312_redboot_ROMRAM.ecm
@@ -0,0 +1,121 @@
+cdl_savefile_version 1;
+cdl_savefile_command cdl_savefile_version {};
+cdl_savefile_command cdl_savefile_command {};
+cdl_savefile_command cdl_configuration { description hardware template package };
+cdl_savefile_command cdl_package { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_component { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_option { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_interface { value_source user_value wizard_value inferred_value };
+
+cdl_configuration eCos {
+ description "" ;
+ hardware edb7xxx ;
+ template redboot ;
+ package -hardware CYGPKG_HAL_ARM current ;
+ package -hardware CYGPKG_HAL_ARM_EDB7XXX current ;
+ package -hardware CYGPKG_DEVS_ETH_ARM_EDB7XXX current ;
+ package -hardware CYGPKG_DEVS_ETH_CL_CS8900A current ;
+ package -hardware CYGPKG_IO_SERIAL_ARM_EDB7XXX current ;
+ package -hardware CYGPKG_DEVS_FLASH_EDB7XXX current ;
+ package -hardware CYGPKG_DEVS_FLASH_STRATA current ;
+ package -template CYGPKG_HAL current ;
+ package -template CYGPKG_INFRA current ;
+ package -template CYGPKG_REDBOOT current ;
+ package -template CYGPKG_ISOINFRA current ;
+ package -template CYGPKG_LIBC_STRING current ;
+ package -template CYGPKG_CRC current ;
+ package CYGPKG_NS_DNS current ;
+ package CYGPKG_IO_FLASH current ;
+ package CYGPKG_IO_ETH_DRIVERS current ;
+ package CYGPKG_COMPRESS_ZLIB current ;
+};
+
+cdl_option CYGFUN_LIBC_STRING_BSD_FUNCS {
+ inferred_value 0
+};
+
+cdl_option CYGNUM_HAL_COMMON_INTERRUPTS_STACK_SIZE {
+ user_value 4096
+};
+
+cdl_option CYGDBG_HAL_COMMON_INTERRUPTS_SAVE_MINIMUM_CONTEXT {
+ user_value 0
+};
+
+cdl_option CYGDBG_HAL_COMMON_CONTEXT_SAVE_MINIMUM {
+ inferred_value 0
+};
+
+cdl_option CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS {
+ inferred_value 1
+};
+
+cdl_option CYGSEM_HAL_ROM_MONITOR {
+ inferred_value 1
+};
+
+cdl_option CYGSEM_HAL_USE_ROM_MONITOR {
+ inferred_value 0 0
+};
+
+cdl_option CYGHWR_HAL_ARM_EDB7XXX_VARIANT {
+ user_value EP7312
+};
+
+cdl_option CYGHWR_HAL_ARM_EDB7XXX_BOARD_VARIANT {
+ user_value EDB7312
+};
+
+cdl_component CYG_HAL_STARTUP {
+ user_value ROMRAM
+};
+
+cdl_component CYGBLD_BUILD_REDBOOT {
+ user_value 1
+};
+
+cdl_option CYGBLD_BUILD_REDBOOT_WITH_EXEC {
+ user_value 1
+};
+
+cdl_option CYGBLD_REDBOOT_MIN_IMAGE_SIZE {
+ user_value 0x00040000
+};
+
+cdl_option CYGSEM_REDBOOT_FLASH_COMBINED_FIS_AND_CONFIG {
+ user_value 1
+};
+
+cdl_option CYGHWR_REDBOOT_ARM_LINUX_EXEC_ADDRESS_DEFAULT {
+ inferred_value 0xC0038000
+};
+
+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_BSD_FUNCS_HEADER {
+ inferred_value 1 <cyg/libc/string/bsdstring.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_DNS_HEADER {
+ inferred_value 1 <cyg/ns/dns/dns.h>
+};
+
+cdl_option CYGPKG_NS_DNS_BUILD {
+ inferred_value 0
+};
+
+
diff --git a/ecos/packages/hal/arm/edb7xxx/current/misc/i2s_audio_fiq.S b/ecos/packages/hal/arm/edb7xxx/current/misc/i2s_audio_fiq.S
new file mode 100644
index 0000000..b5df4a0
--- /dev/null
+++ b/ecos/packages/hal/arm/edb7xxx/current/misc/i2s_audio_fiq.S
@@ -0,0 +1,169 @@
+// #========================================================================
+// #
+// # i2s_audio_FIQ.S
+// #
+// # FIQ handler for EB7209 audio stream
+// #
+// #========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+// #========================================================================
+// ######DESCRIPTIONBEGIN####
+// #
+// # Author(s): gthomas
+// # Contributors: gthomas
+// # Date: 1999-09-10
+// # Purpose: Support EB7209 audio interrupts
+// # Description: This routine will send data to the audio FIFOs.
+// #
+// #####DESCRIPTIONEND####
+// #
+// #========================================================================
+
+#include <cyg/hal/hal_edb7xxx.h>
+
+// .file "i2s_audio_FIQ.S"
+
+ .extern cur_buf
+ .extern next_buf
+// These defines must mimic the data structure used by the main program
+#define audio_buf_left_ptr 0x0
+#define audio_buf_right_ptr 0x4
+#define audio_buf_length 0x8
+
+ .code 32
+ .text
+
+// Note: when handling an FIQ, registers r8-r14 are free to use
+// since they are unique (banked).
+
+ .globl i2s_FIQ
+i2s_FIQ:
+
+ ldr r11,=FIQ_count
+ ldr r12,[r11]
+ add r12,r12,#1
+ str r12,[r11]
+
+ ldr r11,=I2S_LEFT_FIFO
+ ldr r12,=I2S_RIGHT_FIFO
+
+// Empty the record FIFOs
+// Note: without this, the audio hardware gets stuck
+ ldr r13,[r11]
+ ldr r13,[r12]
+ ldr r13,[r11]
+ ldr r13,[r12]
+ ldr r13,[r11]
+ ldr r13,[r12]
+ ldr r13,[r11]
+ ldr r13,[r12]
+
+// See if there is a buffer to play
+ ldr r8,=cur_buf
+ ldr r9,[r8,#audio_buf_length]
+ cmp r9,#0
+ beq 05f
+
+ ldr r9,[r8,#audio_buf_left_ptr]
+ ldr r10,[r8,#audio_buf_right_ptr]
+
+// Move 4 [16-bit] values to each FIFO
+ ldrh r13,[r9],#2
+ str r13,[r11]
+ ldrh r13,[r10],#2
+ str r13,[r12]
+
+ ldrh r13,[r9],#2
+ str r13,[r11]
+ ldrh r13,[r10],#2
+ str r13,[r12]
+
+ ldrh r13,[r9],#2
+ str r13,[r11]
+ ldrh r13,[r10],#2
+ str r13,[r12]
+
+ ldrh r13,[r9],#2
+ str r13,[r11]
+ ldrh r13,[r10],#2
+ str r13,[r12]
+
+// Update pointers
+ str r9,[r8,#audio_buf_left_ptr]
+ str r10,[r8,#audio_buf_right_ptr]
+
+// Update count
+ ldr r9,[r8,#audio_buf_length]
+ sub r9,r9,#4
+ str r9,[r8,#audio_buf_length]
+ cmp r9,#0
+ bgt 10f
+
+// Switch to next buffer
+05: ldr r9,=next_buf
+ ldr r10,[r9,#audio_buf_left_ptr]
+ str r10,[r8,#audio_buf_left_ptr]
+ ldr r10,[r9,#audio_buf_right_ptr]
+ str r10,[r8,#audio_buf_right_ptr]
+ ldr r10,[r9,#audio_buf_length]
+ str r10,[r8,#audio_buf_length]
+ mov r13,#0
+ str r13,[r9,#audio_buf_length] // Free buffer
+ cmp r10,#0
+ bne 10f
+
+// Disable further interrupts
+ ldr r8,=INTMR3
+ ldr r9,[r8]
+ bic r9,r9,#INTSR3_I2SINT
+ str r9,[r8]
+
+10:
+ ldr r11,=I2S_STAT // Clear status bits
+// ldr r10,=(I2S_STAT_RCTSR|I2S_STAT_RCRS|I2S_STAT_LCTSR|I2S_STAT_LCRSR|I2S_STAT_RCTNF|I2S_STAT_RCRNE|I2S_STAT_LCTNF|I2S_STAT_LCRNE)
+ ldr r10,=0xFFF0F
+ str r10,[r11]
+
+ subs pc,lr,#4 // return from interrupt
+
+ .global hal_disable_interrupts
+hal_disable_interrupts:
+ mrs r0,cpsr // current state
+ orr r1,r0,#0x80 // mask IRQ
+ msr cpsr,r1
+ bx lr // exit, _old_ in r0
+
+ .data
+ .global FIQ_count
+FIQ_count:
+ .long 0
diff --git a/ecos/packages/hal/arm/edb7xxx/current/misc/i2s_audio_test.c b/ecos/packages/hal/arm/edb7xxx/current/misc/i2s_audio_test.c
new file mode 100644
index 0000000..7c3b214
--- /dev/null
+++ b/ecos/packages/hal/arm/edb7xxx/current/misc/i2s_audio_test.c
@@ -0,0 +1,231 @@
+//==========================================================================
+//
+// i2s_audio_test.c
+//
+// Cirrus CL7209 eval board CS4340 audio test
+//
+//==========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//==========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): gthomas
+// Contributors: gthomas
+// Date: 2000-01-03
+// Description: Tool used to test AUDIO interface
+//####DESCRIPTIONEND####
+
+#include <pkgconf/kernel.h> // Configuration header
+#include <cyg/kernel/kapi.h>
+#include <cyg/infra/diag.h>
+
+#include <cyg/hal/hal_edb7xxx.h> // Board definitions
+
+#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> // HAL interrupt macros
+#include <cyg/hal/drv_api.h> // HAL ISR support
+
+#if 1
+#include "long_audio_left.h"
+#include "long_audio_right.h"
+#else
+#include "short_audio_left.h"
+#include "short_audio_right.h"
+#endif
+
+extern void i2s_FIQ(void); // Actually the FIQ handler
+
+// Number of data samples to play
+#define NUM_PCM_SAMPLES (sizeof(left_channel)/sizeof(left_channel[0]))
+// Play the data in 8 "chunks", truncated to multiple of 4 samples
+#define CHUNK_LENGTH (((NUM_PCM_SAMPLES/8)/4)*4)
+
+// This structure is used by the assembly coded interrupt routine
+struct audio_buf {
+ void *left_chan_ptr;
+ void *right_chan_ptr;
+ int length;
+};
+volatile struct audio_buf cur_buf;
+volatile struct audio_buf next_buf;
+
+#ifndef FALSE
+#define FALSE 0
+#define TRUE 1
+#endif
+
+#define STACK_SIZE 4096
+static char stack[STACK_SIZE];
+static cyg_thread thread_data;
+static cyg_handle_t thread_handle;
+
+// FUNCTIONS
+
+static void
+cyg_test_exit(void)
+{
+ while (TRUE) ;
+}
+
+static void
+I2Sreset(void)
+{
+ // Enable i2s interface instead of SSI#2
+ *(volatile cyg_uint32 *)SYSCON3 |= SYSCON3_I2SSEL | 0x200;
+
+ // Configure the i2s audio interface
+ // External clock, interrupt on right channel FIFO needs service
+ *(volatile cyg_uint32 *)I2S_CTL = I2S_CTL_FLAG | I2S_CTL_ECS | I2S_CTL_RCTM;
+
+ // Clear out status register
+ *(volatile cyg_uint32 *)I2S_STAT = 0xFFFFFFFF; // 1's reset
+
+ // Now enable the interface
+ *(volatile cyg_uint32 *)I2S_CTL |= I2S_CTL_EN;
+
+ // Turn on the FIFOs
+ while ((*(volatile cyg_uint32 *)I2S_STAT & I2S_STAT_FIFO) == 0) ; // Wait
+ *(volatile cyg_uint32 *)I2S_STAT = I2S_STAT_FIFO; // Reset flag
+ *(volatile cyg_uint32 *)I2S_FIFO_CTL = I2S_FIFO_CTL_RIGHT_ENABLE;
+ while ((*(volatile cyg_uint32 *)I2S_STAT & I2S_STAT_FIFO) == 0) ; // Wait
+ *(volatile cyg_uint32 *)I2S_STAT = I2S_STAT_FIFO; // Reset flag
+ *(volatile cyg_uint32 *)I2S_FIFO_CTL = I2S_FIFO_CTL_LEFT_ENABLE;
+ while ((*(volatile cyg_uint32 *)I2S_STAT & I2S_STAT_FIFO) == 0) ; // Wait
+ *(volatile cyg_uint32 *)I2S_STAT = I2S_STAT_FIFO; // Reset flag
+
+ // Clear out status register
+ *(volatile cyg_uint32 *)I2S_STAT = 0xFFFFFFFF; // 1's reset
+
+ // Enable interrupt
+ *(volatile cyg_uint32 *)INTMR3 |= INTSR3_I2SINT;
+}
+
+static void
+I2Sdisable(void)
+{
+ // Turn off the FIFOs
+ while ((*(volatile cyg_uint32 *)I2S_STAT & I2S_STAT_FIFO) == 0) ; // Wait
+ *(volatile cyg_uint32 *)I2S_STAT = I2S_STAT_FIFO; // Reset flag
+ *(volatile cyg_uint32 *)I2S_FIFO_CTL = I2S_FIFO_CTL_RIGHT_DISABLE;
+ while ((*(volatile cyg_uint32 *)I2S_STAT & I2S_STAT_FIFO) == 0) ; // Wait
+ *(volatile cyg_uint32 *)I2S_STAT = I2S_STAT_FIFO; // Reset flag
+ *(volatile cyg_uint32 *)I2S_FIFO_CTL = I2S_FIFO_CTL_LEFT_DISABLE;
+ while ((*(volatile cyg_uint32 *)I2S_STAT & I2S_STAT_FIFO) == 0) ; // Wait
+ *(volatile cyg_uint32 *)I2S_STAT = I2S_STAT_FIFO; // Reset flag
+
+ // Disable interrupt
+ *(volatile cyg_uint32 *)INTMR3 &= ~INTSR3_I2SINT;
+
+ // Disable the interface
+ *(volatile cyg_uint32 *)I2S_CTL = 0;
+}
+
+static void
+idle(void)
+{
+ // Do nothing
+}
+
+static void
+audio_exercise(cyg_addrword_t p)
+{
+ int sample, len;
+ bool started;
+
+ diag_printf("AUDIO test here!\n");
+
+ // Enable my special FIQ handler
+ HAL_VSR_SET(CYGNUM_HAL_VECTOR_FIQ, i2s_FIQ, NULL);
+
+ while (TRUE) {
+ diag_printf("... Starting over\n");
+
+ // Set up pointers
+ cur_buf.length = 0;
+ next_buf.length = 0;
+ sample = 0;
+ started = false;
+
+ // Send out the data
+ while (sample != NUM_PCM_SAMPLES) {
+ if (next_buf.length == 0) {
+ // Move some data into the "next" buffer
+ next_buf.left_chan_ptr = &left_channel[sample];
+ next_buf.right_chan_ptr = &right_channel[sample];
+ len = NUM_PCM_SAMPLES - sample;
+ if (len > CHUNK_LENGTH) len = CHUNK_LENGTH;
+ next_buf.length = len;
+
+ idle();
+
+ if (!started) {
+ started = true;
+ // Initialize audio interface
+ I2Sreset();
+ }
+ sample += len;
+ }
+ }
+
+ // Wait for all data to be sent
+ while (cur_buf.length != 0) {
+ }
+
+ // Shut off audio interface
+ I2Sdisable();
+ }
+
+ diag_printf("All done!\n");
+ cyg_test_exit();
+}
+
+externC void
+cyg_start( void )
+{
+ // Create a main thread, so we can run the scheduler and have time 'pass'
+ cyg_thread_create(11, // Priority - just a number
+ audio_exercise, // entry
+ 0, // initial parameter
+ "AUDIO_thread", // Name
+ &stack[0], // Stack
+ STACK_SIZE, // Size
+ &thread_handle, // Handle
+ &thread_data // Thread data structure
+ );
+ cyg_thread_resume(thread_handle); // Start it
+ // Let 'em fly...
+ cyg_scheduler_start();
+} // cyg_package_start()
+
diff --git a/ecos/packages/hal/arm/edb7xxx/current/misc/kbd_support.c b/ecos/packages/hal/arm/edb7xxx/current/misc/kbd_support.c
new file mode 100644
index 0000000..aeb897e
--- /dev/null
+++ b/ecos/packages/hal/arm/edb7xxx/current/misc/kbd_support.c
@@ -0,0 +1,465 @@
+//==========================================================================
+//
+// kbd_support.c
+//
+// Cirrus Logic EDB7xxx eval board ASCII keyboard support functions
+//
+//==========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//==========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): gthomas
+// Contributors: gthomas
+// Date: 1999-05-15
+// Description: Functions used to support ASCII keyboard
+//####DESCRIPTIONEND####
+
+static char kbd_server_stack[STACK_SIZE];
+static cyg_thread kbd_server_thread_data;
+static cyg_handle_t kbd_server_thread_handle;
+
+static cyg_interrupt kbd_interrupt;
+static cyg_handle_t kbd_interrupt_handle;
+
+static cyg_mbox kbd_events_mbox;
+static cyg_handle_t kbd_events_mbox_handle;
+static cyg_sem_t kbd_sem;
+
+static cyg_uint8 col_state[8];
+static cyg_uint8 ext_state[8];
+
+static void
+kbd_delay(void)
+{
+ volatile int i;
+ for (i = 0; i < 250; i++) ;
+}
+
+static void
+kbd_scan(void)
+{
+ int i;
+ cyg_uint8 port_data, ext_data;
+ // Turn off drive (de-select) all columns
+ *(volatile cyg_uint32 *)SYSCON1 = (*(volatile cyg_uint32 *)SYSCON1 & ~SYSCON1_KBD_CTL) |
+ SYSCON1_KBD_LOW;
+ for (i = 0; i < 8; i++) {
+ // Select column 'i'
+ *(volatile cyg_uint32 *)SYSCON1 = (*(volatile cyg_uint32 *)SYSCON1 & ~SYSCON1_KBD_CTL) |
+ SYSCON1_KBD_COL(i);
+ // Small pause to let the wires charge up :-)
+ kbd_delay();
+ // Grab the data
+ col_state[i] = port_data = *(volatile cyg_uint8 *)PADR;
+ ext_state[i] = ext_data = *(volatile cyg_uint8 *)KBD_PORT;
+ // De-Select column 'i'
+ *(volatile cyg_uint32 *)SYSCON1 = (*(volatile cyg_uint32 *)SYSCON1 & ~SYSCON1_KBD_CTL) |
+ SYSCON1_KBD_TRISTATE;
+ // Allow line to go slack
+ kbd_delay();
+ }
+ // Turn on drive (select) all columns - necessary to see interrupts
+ *(volatile cyg_uint32 *)SYSCON1 = (*(volatile cyg_uint32 *)SYSCON1 & ~SYSCON1_KBD_CTL) |
+ SYSCON1_KBD_HIGH;
+}
+
+static cyg_uint8 kbd_state[128]; // Known state of each key
+static cyg_uint8 kbd_new_state[128]; // Current state of each key
+
+// Row #1
+#define KBD_Escape 0x00
+#define KBD_F1 0x01
+#define KBD_F2 0x02
+#define KBD_F3 0x03
+#define KBD_F4 0x04
+#define KBD_F5 0x05
+#define KBD_F6 0x06
+#define KBD_F7 0x07
+#define KBD_F8 0x08
+#define KBD_F9 0x09
+#define KBD_F10 0x0A
+#define KBD_NumLock 0x0B
+#define KBD_SysReq 0x0C
+#define KBD_ScrlLock 0x0D
+#define KBD_Break 0x0E
+// Row #2
+#define KBD_1 0x10
+#define KBD_2 0x11
+#define KBD_3 0x12
+#define KBD_4 0x13
+#define KBD_5 0x14
+#define KBD_6 0x15
+#define KBD_7 0x16
+#define KBD_8 0x17
+#define KBD_9 0x18
+#define KBD_0 0x19
+#define KBD_Hyphen 0x1A
+#define KBD_Equals 0x1B
+#define KBD_BackSpace 0x1C
+#define KBD_Home 0x1D
+// Row #3
+#define KBD_Tab 0x20
+#define KBD_Q 0x21
+#define KBD_W 0x22
+#define KBD_E 0x23
+#define KBD_R 0x24
+#define KBD_T 0x25
+#define KBD_Y 0x26
+#define KBD_U 0x27
+#define KBD_I 0x28
+#define KBD_O 0x29
+#define KBD_P 0x2A
+#define KBD_LeftBrkt 0x2B
+#define KBD_RightBrkt 0x2C
+#define KBD_BackSlash 0x2D
+#define KBD_PageUp 0x2E
+// Row #4
+#define KBD_CapsLock 0x30
+#define KBD_A 0x31
+#define KBD_S 0x32
+#define KBD_D 0x33
+#define KBD_F 0x34
+#define KBD_G 0x35
+#define KBD_H 0x36
+#define KBD_J 0x37
+#define KBD_K 0x38
+#define KBD_L 0x39
+#define KBD_SemiColon 0x3A
+#define KBD_Quote 0x3B
+#define KBD_Enter 0x3C
+#define KBD_PageDown 0x3D
+// Row #5
+#define KBD_LeftShift 0x40
+#define KBD_Z 0x41
+#define KBD_X 0x42
+#define KBD_C 0x43
+#define KBD_V 0x44
+#define KBD_B 0x45
+#define KBD_N 0x46
+#define KBD_M 0x47
+#define KBD_Comma 0x48
+#define KBD_Period 0x49
+#define KBD_Slash 0x4A
+#define KBD_RightShift 0x4B
+#define KBD_UpArrow 0x4C
+#define KBD_End 0x4D
+// Row #6
+#define KBD_Ctrl 0x50
+#define KBD_Function 0x51
+#define KBD_LeftAlt 0x52
+#define KBD_Accent 0x53
+#define KBD_Space 0x54
+#define KBD_RightAlt 0x55
+#define KBD_Ins 0x56
+#define KBD_Del 0x57
+#define KBD_LeftArrow 0x58
+#define KBD_DownArrow 0x59
+#define KBD_RightArrow 0x5A
+
+#define KBD_Press 0x80 // Event has this bit when the key is pressed
+#define KBD_Empty 0xFF
+
+// Map column, bit -> keycode
+static cyg_uint32 kbd_map[8][16] = {
+ // Column #0
+ {KBD_Escape, KBD_1, KBD_Tab, KBD_CapsLock,
+ KBD_BackSlash, KBD_Space, KBD_LeftArrow, KBD_UpArrow,
+ KBD_DownArrow, KBD_RightArrow, KBD_LeftShift, KBD_Ctrl,
+ KBD_Function, KBD_LeftAlt, KBD_RightAlt, KBD_RightShift },
+ // Column #1
+ {KBD_F5, KBD_6, KBD_T, KBD_G,
+ KBD_B, KBD_Slash, KBD_SemiColon, KBD_P,
+ KBD_Hyphen, KBD_F10, KBD_Empty, KBD_Empty,
+ KBD_Empty, KBD_Empty, KBD_Empty, KBD_Empty },
+ // Column #2
+ {KBD_F4, KBD_5, KBD_R, KBD_F,
+ KBD_V, KBD_Del, KBD_Quote, KBD_LeftBrkt,
+ KBD_Equals, KBD_NumLock, KBD_Empty, KBD_Empty,
+ KBD_Empty, KBD_Empty, KBD_Empty, KBD_Empty },
+ // Column #3
+ {KBD_F3, KBD_4, KBD_E, KBD_D,
+ KBD_C, KBD_Ins, KBD_Empty, KBD_RightBrkt,
+ KBD_BackSpace, KBD_SysReq, KBD_Empty, KBD_Empty,
+ KBD_Empty, KBD_Empty, KBD_Empty, KBD_Empty },
+ // Column #4
+ {KBD_F2, KBD_3, KBD_W, KBD_S,
+ KBD_X, KBD_Empty, KBD_Enter, KBD_Empty,
+ KBD_Empty, KBD_ScrlLock, KBD_Empty, KBD_Empty,
+ KBD_Empty, KBD_Empty, KBD_Empty, KBD_Empty },
+ // Column #5
+ {KBD_F1, KBD_2, KBD_Q, KBD_A,
+ KBD_Z, KBD_End, KBD_PageDown, KBD_PageUp,
+ KBD_Home, KBD_Break, KBD_Empty, KBD_Empty,
+ KBD_Empty, KBD_Empty, KBD_Empty, KBD_Empty },
+ // Column #6
+ {KBD_F6, KBD_7, KBD_Y, KBD_H,
+ KBD_N, KBD_Period, KBD_L, KBD_O,
+ KBD_0, KBD_F9, KBD_Empty, KBD_Empty,
+ KBD_Empty, KBD_Empty, KBD_Empty, KBD_Empty },
+ // Column #7
+ {KBD_F7, KBD_8, KBD_U, KBD_J,
+ KBD_M, KBD_Comma, KBD_K, KBD_I,
+ KBD_9, KBD_F8, KBD_Empty, KBD_Empty,
+ KBD_Empty, KBD_Empty, KBD_Empty, KBD_Empty },
+};
+
+static cyg_uint8 kbd_chars[96] = {
+ /* 0x00 - 0x0F */
+ 0x1B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ /* 0x10 - 0x1F */
+ '1', '2', '3', '4', '5', '6', '7', '8', '9', '0', '-', '=', 0x08, 0x00, 0x00, 0x00,
+ /* 0x20 - 0x2F */
+ '\t', 'q', 'w', 'e', 'r', 't', 'y', 'u', 'i', 'o', 'p', '[', ']', '\\', 0x00, 0x00,
+ /* 0x30 - 0x3F */
+ 0x00, 'a', 's', 'd', 'f', 'g', 'h', 'j', 'k', 'l', ';', '\'', 0x0D, 0x00, 0x00, 0x00,
+ /* 0x40 - 0x4F */
+ 0x00, 'z', 'x', 'c', 'v', 'b', 'n', 'm', ',', '.', '/', 0x00, 0x00, 0x00, 0x00, 0x00,
+ /* 0x50 - 0x5F */
+ 0x00, 0x00, 0x00, 0x00, ' ', 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+};
+
+static cyg_uint8 kbd_shifted_chars[96] = {
+ /* 0x00 - 0x0F */
+ '\b', 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ /* 0x10 - 0x1F */
+ '!', '@', '#', '$', '%', '^', '&', '*', '(', ')', '_', '+', 0x08, 0x00, 0x00, 0x00,
+ /* 0x20 - 0x2F */
+ '\t', 'Q', 'W', 'E', 'R', 'T', 'Y', 'U', 'I', 'O', 'P', '{', '}', '|', 0x00, 0x00,
+ /* 0x30 - 0x3F */
+ 0x00, 'A', 'S', 'D', 'F', 'G', 'H', 'J', 'K', 'L', ':', '"', 0x0D, 0x00, 0x00, 0x00,
+ /* 0x40 - 0x4F */
+ 0x00, 'Z', 'X', 'C', 'V', 'B', 'N', 'M', '<', '>', '?', 0x00, 0x00, 0x00, 0x00, 0x00,
+ /* 0x50 - 0x5F */
+ 0x00, 0x00, 0x00, 0x00, ' ', 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+};
+
+// This ISR is called when the keyboard interrupt occurs
+static int
+keyboard_isr(cyg_vector_t vector, cyg_addrword_t data, HAL_SavedRegisters *regs)
+{
+ cyg_drv_interrupt_mask(CYGNUM_HAL_INTERRUPT_KBDINT);
+ return (CYG_ISR_HANDLED|CYG_ISR_CALL_DSR); // Run the DSR
+}
+
+// This DSR handles the keyboard [logical] processing
+static void
+keyboard_dsr(cyg_vector_t vector, cyg_ucount32 count, cyg_addrword_t data)
+{
+ // Tell the keyboard processing thread to give it a shot
+ cyg_semaphore_post(&kbd_sem);
+}
+
+static void
+kbd_server(cyg_addrword_t p)
+{
+ int col, bit, key, event, timeout;
+ diag_printf("KBD server here\n");
+ while (TRUE) {
+ cyg_semaphore_wait(&kbd_sem);
+ // As long as keys are pressed, scan and update
+ timeout = 0;
+ while (TRUE) {
+ // Wait for 20ms - time to debounce keyboard
+ cyg_thread_delay(2);
+ // Scan keyboard
+ kbd_scan();
+ // Reset state
+ for (key = 0; key < sizeof(kbd_new_state); key++) {
+ kbd_new_state[key] = 0;
+ }
+ // Check state of all keys and send events for those that change
+ for (col = 0; col < 8; col++) {
+ for (bit = 0; bit < 8; bit++) {
+ if (col_state[col] & (1<<bit)) {
+ key = kbd_map[col][bit];
+ if (key != KBD_Empty) {
+ kbd_new_state[key] = 1;
+ }
+ }
+ if (ext_state[col] & (1<<bit)) {
+ key = kbd_map[col][bit+8];
+ if (key != KBD_Empty) {
+ kbd_new_state[key] = 1;
+ }
+ }
+ }
+ }
+ // Compare new and old (known) states, generate events for changes
+ // Send events for modifier keys first.
+ for (key = 0; key < sizeof(kbd_new_state); key++) {
+ if (kbd_state[key] != kbd_new_state[key]) {
+ event = 0xFF;
+ switch (key) {
+ case KBD_LeftShift:
+ case KBD_RightShift:
+ case KBD_Ctrl:
+ case KBD_LeftAlt:
+ case KBD_RightAlt:
+ case KBD_Function:
+ case KBD_CapsLock:
+ if (kbd_state[key]) {
+ // Key going up
+ event = key;
+ } else {
+ // Key going down
+ event = key + KBD_Press;
+ }
+ kbd_state[key] = kbd_new_state[key];
+ }
+ if (event != 0xFF) {
+ if (!cyg_mbox_tryput(kbd_events_mbox_handle, (void *)event)) {
+ diag_printf("KBD event lost: %x\n", event);
+ }
+ }
+ }
+ }
+ // First key up events
+ for (key = 0; key < sizeof(kbd_new_state); key++) {
+ if (kbd_state[key] != kbd_new_state[key]) {
+ if (kbd_state[key]) {
+ // Key going up
+ event = key;
+ } else {
+ // Key going down
+ event = key + KBD_Press;
+ }
+ if (!cyg_mbox_tryput(kbd_events_mbox_handle, (void *)event)) {
+ diag_printf("KBD event lost: %x\n", event);
+ }
+ }
+ kbd_state[key] = kbd_new_state[key];
+ }
+ // Clear interrupt (true when keys are pressed)
+ cyg_drv_interrupt_acknowledge(CYGNUM_HAL_INTERRUPT_KBDINT);
+#if 0
+ if (*(volatile cyg_uint32 *)INTSR2 & INTSR2_KBDINT) {
+ timeout = 0;
+ } else if (++timeout == 5) {
+ // No keys for 100ms
+ break;
+ }
+#endif
+ }
+ // Allow interrupts to happen again
+ cyg_drv_interrupt_acknowledge(CYGNUM_HAL_INTERRUPT_KBDINT);
+ cyg_drv_interrupt_unmask(CYGNUM_HAL_INTERRUPT_KBDINT);
+ }
+}
+
+void
+kbd_init(void)
+{
+ // Initialize environment, setup interrupt handler
+ cyg_drv_interrupt_create(CYGNUM_HAL_INTERRUPT_KBDINT,
+ 99, // Priority - what goes here?
+ 0, // Data item passed to interrupt handler
+ (cyg_ISR_t *)keyboard_isr,
+ (cyg_DSR_t *)keyboard_dsr,
+ &kbd_interrupt_handle,
+ &kbd_interrupt);
+ cyg_drv_interrupt_attach(kbd_interrupt_handle);
+ cyg_drv_interrupt_acknowledge(CYGNUM_HAL_INTERRUPT_KBDINT);
+ cyg_drv_interrupt_unmask(CYGNUM_HAL_INTERRUPT_KBDINT);
+ // Set up the mbox for keyboard data
+ cyg_mbox_create(&kbd_events_mbox_handle, &kbd_events_mbox);
+ // This semaphore is set when there is a keypress
+ cyg_semaphore_init(&kbd_sem, 0);
+ // Create a thread whose job it is to de-bounce the keyboard and
+ // actually process the input, turning it into a series of events
+ cyg_thread_create(10, // Priority - just a number
+ kbd_server, // entry
+ 0, // initial parameter
+ "KBD_server", // Name
+ &kbd_server_stack[0], // Stack
+ STACK_SIZE, // Size
+ &kbd_server_thread_handle, // Handle
+ &kbd_server_thread_data // Thread data structure
+ );
+ cyg_thread_resume(kbd_server_thread_handle); // Start it
+}
+
+#define MOD_Shift 0x40
+#define MOD_Ctrl 0x20
+#define MOD_CapsLock 0x10
+static cyg_uint32 kbd_modifiers;
+
+cyg_uint8
+kbd_getc(void)
+{
+ cyg_uint8 ch;
+ cyg_uint32 kbd_event;
+ while (TRUE) {
+ kbd_event = (cyg_uint32)cyg_mbox_get(kbd_events_mbox_handle);
+ switch (kbd_event & 0x7F) {
+ case KBD_LeftShift:
+ case KBD_RightShift:
+ if (kbd_event & KBD_Press) {
+ kbd_modifiers |= MOD_Shift;
+ } else {
+ kbd_modifiers &= ~MOD_Shift;
+ }
+ break;
+ case KBD_Ctrl:
+ if (kbd_event & KBD_Press) {
+ kbd_modifiers |= MOD_Ctrl;
+ } else {
+ kbd_modifiers &= ~MOD_Ctrl;
+ }
+ break;
+ case KBD_CapsLock:
+ if (kbd_event & KBD_Press) {
+ kbd_modifiers ^= MOD_CapsLock;
+ }
+ break;
+ case KBD_LeftAlt:
+ case KBD_RightAlt:
+ case KBD_Function:
+ default:
+ }
+ // Return character [if one has arrived]
+ if (kbd_event & KBD_Press) {
+ if (kbd_modifiers & (MOD_Shift|MOD_CapsLock)) {
+ ch = kbd_shifted_chars[kbd_event & 0x7F];
+ } else {
+ ch = kbd_chars[kbd_event & 0x7F];
+ }
+ if (kbd_modifiers & MOD_Ctrl) {
+ ch &= 0x1F;
+ }
+ if (ch) {
+ return (ch);
+ }
+ }
+ }
+}
diff --git a/ecos/packages/hal/arm/edb7xxx/current/misc/kbd_test.c b/ecos/packages/hal/arm/edb7xxx/current/misc/kbd_test.c
new file mode 100644
index 0000000..90f31fb
--- /dev/null
+++ b/ecos/packages/hal/arm/edb7xxx/current/misc/kbd_test.c
@@ -0,0 +1,115 @@
+//==========================================================================
+//
+// kbd_test.c
+//
+// Cirrus Logic EDB7xxx eval board ASCII keyboard test
+//
+//==========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//==========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): gthomas
+// Contributors: gthomas
+// Date: 1999-05-15
+// Description: Tool used to test ASCII keyboard
+//####DESCRIPTIONEND####
+
+#include <pkgconf/kernel.h> // Configuration header
+#include <cyg/kernel/kapi.h>
+#include <cyg/infra/diag.h>
+
+#include <cyg/hal/hal_edb7xxx.h> // Board definitions
+
+#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> // HAL interrupt macros
+#include <cyg/hal/drv_api.h> // HAL ISR support
+
+#ifndef FALSE
+#define FALSE 0
+#define TRUE 1
+#endif
+
+#define STACK_SIZE 4096
+static char stack[STACK_SIZE];
+static cyg_thread thread_data;
+static cyg_handle_t thread_handle;
+
+#include "kbd_support.c"
+
+// FUNCTIONS
+
+static void
+cyg_test_exit(void)
+{
+ while (TRUE) ;
+}
+
+static void
+kbd_exercise(cyg_addrword_t p)
+{
+ cyg_uint8 ch;
+ diag_printf("KBD test here!\n");
+
+ // Initialize keyboard driver
+ kbd_init();
+
+ while (TRUE) {
+ ch = kbd_getc();
+ diag_printf("CH = 0x%x:'%c'\n", ch, ch);
+ }
+
+ diag_printf("All done!\n");
+ cyg_test_exit();
+}
+
+externC void
+cyg_start( void )
+{
+ // Create a main thread, so we can run the scheduler and have time 'pass'
+ cyg_thread_create(11, // Priority - just a number
+ kbd_exercise, // entry
+ 0, // initial parameter
+ "KBD_thread", // Name
+ &stack[0], // Stack
+ STACK_SIZE, // Size
+ &thread_handle, // Handle
+ &thread_data // Thread data structure
+ );
+ cyg_thread_resume(thread_handle); // Start it
+ // Let 'em fly...
+ cyg_scheduler_start();
+} // cyg_package_start()
+
diff --git a/ecos/packages/hal/arm/edb7xxx/current/misc/lcd_panel_support.c b/ecos/packages/hal/arm/edb7xxx/current/misc/lcd_panel_support.c
new file mode 100644
index 0000000..4aa6d60
--- /dev/null
+++ b/ecos/packages/hal/arm/edb7xxx/current/misc/lcd_panel_support.c
@@ -0,0 +1,223 @@
+//==========================================================================
+//
+// panel_support.c
+//
+// Cirrus Logic EDB7xxx eval board LCD touch panel support code
+//
+//==========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//==========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): gthomas
+// Contributors: gthomas
+// Date: 1999-09-13
+// Description: Tool used to support the LCD touch panel
+//####DESCRIPTIONEND####
+
+static char lcd_panel_server_stack[STACK_SIZE];
+static cyg_thread lcd_panel_server_thread_data;
+static cyg_handle_t lcd_panel_server_thread_handle;
+
+static cyg_interrupt lcd_panel_interrupt;
+static cyg_handle_t lcd_panel_interrupt_handle;
+
+static cyg_mbox lcd_panel_events_mbox;
+static cyg_handle_t lcd_panel_events_mbox_handle;
+static cyg_sem_t lcd_panel_sem;
+
+#define SYNCIO_TXFRMEN (1<<14)
+#define SYNCIO_FRAMELEN(n) (n<<8)
+#define ADC_START (1<<7)
+#define ADC_CHAN(n) (n<<4)
+#define ADC_UNIPOLAR (1<<3)
+#define ADC_SINGLE (1<<2)
+#define ADC_EXT_CLOCK (3<<0)
+#define TOUCH_CTL KBD_PORT
+
+// FUNCTIONS
+
+static cyg_uint32
+adc_sample(int chan)
+{
+ cyg_uint32 val;
+ *(volatile cyg_uint32 *)SYNCIO = SYNCIO_TXFRMEN | SYNCIO_FRAMELEN(24) |
+ ADC_START | ADC_CHAN(chan) | ADC_UNIPOLAR | ADC_SINGLE | ADC_EXT_CLOCK;
+ while (*(volatile cyg_uint32 *)SYSFLG1 & SYSFLG1_SSIBUSY) ;
+ val = *(volatile cyg_uint32 *)SYNCIO;
+ return (val & 0xFFFF);
+}
+
+static void
+panel_delay(void)
+{
+ volatile int i;
+ for (i = 0; i < 800; i++) ;
+}
+
+// This ISR is called when the touch panel interrupt occurs
+static int
+lcd_panel_isr(cyg_vector_t vector, cyg_addrword_t data, HAL_SavedRegisters *regs)
+{
+ cyg_drv_interrupt_mask(CYGNUM_HAL_INTERRUPT_EINT2);
+ return (CYG_ISR_HANDLED|CYG_ISR_CALL_DSR); // Run the DSR
+}
+
+// This DSR starts up the touch panel [logical] processing
+static void
+lcd_panel_dsr(cyg_vector_t vector, cyg_ucount32 count, cyg_addrword_t data)
+{
+ // Tell the panel processing thread to give it a shot
+ cyg_semaphore_post(&lcd_panel_sem);
+}
+
+// Assumption: if the keypress vanishes for 5*20 ms, it probably isn't there
+#define LCD_PANEL_TIMEOUT 5
+
+static __inline__ int
+abs(int x)
+{
+ if (x < 0) return -x;
+ return x;
+}
+
+static void
+lcd_panel_server(cyg_addrword_t p)
+{
+ int iX, iY, newX, newY, diffX, diffY, timeout, samples;
+ cyg_uint32 event;
+ diag_printf("LCD panel server here\n");
+ while (TRUE) {
+ cyg_semaphore_wait(&lcd_panel_sem);
+ samples = 0; iX = 0; iY = 0;
+ // Wait for press to go away (no drag support)
+ timeout = 0;
+ while (timeout < LCD_PANEL_TIMEOUT) {
+ *(volatile cyg_uint8 *)TOUCH_CTL = 0x00; // Disable drives
+ while (*(volatile cyg_uint32 *)INTSR1 & INTSR1_EINT2) ;
+ *(volatile cyg_uint8 *)TOUCH_CTL = 0x70; // Idle state (so interrupt works)
+ cyg_thread_delay(2); // Wait 20 ms
+ if (*(volatile cyg_uint32 *)INTSR1 & INTSR1_EINT2) {
+ // Still pressed
+ // Drive TSPY, ground TSMY, and disconnect TSPX and TSMX
+ *(volatile cyg_uint8 *)TOUCH_CTL = 0x50;
+ panel_delay();
+ newY = adc_sample(2);
+ // Drive TSPX, ground TSMX, and disconnect TSPY and TSMY
+ *(volatile cyg_uint8 *)TOUCH_CTL = 0xA0;
+ panel_delay();
+ newX = adc_sample(7);
+#if 0
+ diag_printf("timeout: %d, ISR: %x, newX: %d, newY: %d\n",
+ timeout, *(volatile cyg_uint32 *)INTSR1, newX, newY);
+#endif
+ // See if this sample makes any sense
+ if (samples) {
+ diffX = abs(iX/samples - newX);
+ diffY = abs(iY/samples - newY);
+ if ((diffX <= ((iX/samples)/4)) &&
+ (diffY <= ((iY/samples)/4))) {
+ samples++;
+ iX += newX;
+ iY += newY;
+ } else {
+#if 0
+ diag_printf("Discard - newX: %d, X: %d, newY: %d, Y: %d\n",
+ newX, iX/samples, newY, iY/samples);
+#endif
+ break;
+ }
+ } else {
+ iX = newX;
+ iY = newY;
+ samples = 1;
+ }
+ timeout = 0;
+ } else {
+ timeout++;
+ }
+ }
+ if (samples) {
+ // Send event to user level
+ event = (iX/samples)<<16 | (iY/samples);
+ if (!cyg_mbox_tryput(lcd_panel_events_mbox_handle, (void *)event)) {
+ diag_printf("LCD event lost: %x\n", event);
+ }
+ }
+ *(volatile cyg_uint8 *)TOUCH_CTL = 0x00; // Disable drives
+ while (*(volatile cyg_uint32 *)INTSR1 & INTSR1_EINT2) ;
+ *(volatile cyg_uint8 *)TOUCH_CTL = 0x70; // Idle state (so interrupt works)
+ cyg_thread_delay(10);
+ cyg_drv_interrupt_unmask(CYGNUM_HAL_INTERRUPT_EINT2);
+ }
+}
+
+static void
+lcd_panel_init(void)
+{
+ // Enable touch panel
+ *(volatile cyg_uint8 *)PEDR |= 0x04;
+
+ // Idle state (so interrupt works)
+ *(volatile cyg_uint8 *)TOUCH_CTL = 0x70;
+
+ // Enable ADC machinery
+ *(volatile cyg_uint32 *)SYSCON1 |= SYSCON1_ADC_CLOCK_128kHZ;
+
+ cyg_drv_interrupt_create(CYGNUM_HAL_INTERRUPT_EINT2,
+ 99, // Priority - what goes here?
+ 0, // Data item passed to interrupt handler
+ lcd_panel_isr,
+ lcd_panel_dsr,
+ &lcd_panel_interrupt_handle,
+ &lcd_panel_interrupt);
+ cyg_drv_interrupt_attach(lcd_panel_interrupt_handle);
+ cyg_drv_interrupt_acknowledge(CYGNUM_HAL_INTERRUPT_EINT2);
+ cyg_drv_interrupt_unmask(CYGNUM_HAL_INTERRUPT_EINT2);
+ // Set up the mbox for panel data
+ cyg_mbox_create(&lcd_panel_events_mbox_handle, &lcd_panel_events_mbox);
+ // This semaphore is set when there is a touch
+ cyg_semaphore_init(&lcd_panel_sem, 0);
+ // Create a thread whose job it is to de-bounce the keyboard and
+ // actually process the input, turning it into a series of events
+ cyg_thread_create(10, // Priority - just a number
+ lcd_panel_server, // entry
+ 0, // initial parameter
+ "LCD_PANEL_server", // Name
+ &lcd_panel_server_stack[0], // Stack
+ STACK_SIZE, // Size
+ &lcd_panel_server_thread_handle, // Handle
+ &lcd_panel_server_thread_data // Thread data structure
+ );
+ cyg_thread_resume(lcd_panel_server_thread_handle); // Start it
+}
diff --git a/ecos/packages/hal/arm/edb7xxx/current/misc/lcd_support.c b/ecos/packages/hal/arm/edb7xxx/current/misc/lcd_support.c
new file mode 100644
index 0000000..144ff5f
--- /dev/null
+++ b/ecos/packages/hal/arm/edb7xxx/current/misc/lcd_support.c
@@ -0,0 +1,509 @@
+//==========================================================================
+//
+// lcd_support.c
+//
+// Cirrus EDB7xxx eval board LCD support code
+//
+//==========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//==========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): gthomas
+// Contributors: gthomas
+// Date: 1999-09-01
+// Description: Functions to drive LCD display
+//####DESCRIPTIONEND####
+
+// 8x8 Font - from Helios
+
+#define FIRST_CHAR 0x20
+#define LAST_CHAR 0x7E
+#define FONT_HEIGHT 8
+#define FONT_WIDTH 8
+#define CURSOR_ON 0x5F
+#define CURSOR_OFF 0x20
+static char font_table[LAST_CHAR-FIRST_CHAR+1][8] =
+{
+ { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, /* */
+ { 0x18, 0x18, 0x18, 0x18, 0x18, 0x00, 0x18, 0x00 }, /* ! */
+ { 0x36, 0x36, 0x36, 0x00, 0x00, 0x00, 0x00, 0x00 }, /* " */
+ { 0x6C, 0x6C, 0xFE, 0x6C, 0xFE, 0x6C, 0x6C, 0x00 }, /* # */
+ { 0x30, 0xFC, 0x16, 0x7C, 0xD0, 0x7E, 0x18, 0x00 }, /* $ */
+ { 0x06, 0x66, 0x30, 0x18, 0x0C, 0x66, 0x60, 0x00 }, /* % */
+ { 0x1C, 0x36, 0x36, 0x1C, 0xB6, 0x66, 0xDC, 0x00 }, /* & */
+ { 0x18, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00 }, /* ' */
+ { 0x30, 0x18, 0x0C, 0x0C, 0x0C, 0x18, 0x30, 0x00 }, /* ( */
+ { 0x0C, 0x18, 0x30, 0x30, 0x30, 0x18, 0x0C, 0x00 }, /* ) */
+ { 0x00, 0x18, 0x7E, 0x3C, 0x7E, 0x18, 0x00, 0x00 }, /* * */
+ { 0x00, 0x18, 0x18, 0x7E, 0x18, 0x18, 0x00, 0x00 }, /* + */
+ { 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x0C }, /* , */
+ { 0x00, 0x00, 0x00, 0x7E, 0x00, 0x00, 0x00, 0x00 }, /* - */
+ { 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x00 }, /* . */
+ { 0x00, 0x60, 0x30, 0x18, 0x0C, 0x06, 0x00, 0x00 }, /* / */
+ { 0x3C, 0x66, 0x76, 0x7E, 0x6E, 0x66, 0x3C, 0x00 }, /* 0 */
+ { 0x18, 0x1C, 0x18, 0x18, 0x18, 0x18, 0x7E, 0x00 }, /* 1 */
+ { 0x3C, 0x66, 0x60, 0x30, 0x18, 0x0C, 0x7E, 0x00 }, /* 2 */
+ { 0x3C, 0x66, 0x60, 0x38, 0x60, 0x66, 0x3C, 0x00 }, /* 3 */
+ { 0x30, 0x38, 0x3C, 0x36, 0x7E, 0x30, 0x30, 0x00 }, /* 4 */
+ { 0x7E, 0x06, 0x3E, 0x60, 0x60, 0x66, 0x3C, 0x00 }, /* 5 */
+ { 0x38, 0x0C, 0x06, 0x3E, 0x66, 0x66, 0x3C, 0x00 }, /* 6 */
+ { 0x7E, 0x60, 0x30, 0x18, 0x0C, 0x0C, 0x0C, 0x00 }, /* 7 */
+ { 0x3C, 0x66, 0x66, 0x3C, 0x66, 0x66, 0x3C, 0x00 }, /* 8 */
+ { 0x3C, 0x66, 0x66, 0x7C, 0x60, 0x30, 0x1C, 0x00 }, /* 9 */
+ { 0x00, 0x00, 0x18, 0x18, 0x00, 0x18, 0x18, 0x00 }, /* : */
+ { 0x00, 0x00, 0x18, 0x18, 0x00, 0x18, 0x18, 0x0C }, /* ; */
+ { 0x30, 0x18, 0x0C, 0x06, 0x0C, 0x18, 0x30, 0x00 }, /* < */
+ { 0x00, 0x00, 0x7E, 0x00, 0x7E, 0x00, 0x00, 0x00 }, /* = */
+ { 0x0C, 0x18, 0x30, 0x60, 0x30, 0x18, 0x0C, 0x00 }, /* > */
+ { 0x3C, 0x66, 0x30, 0x18, 0x18, 0x00, 0x18, 0x00 }, /* ? */
+ { 0x3C, 0x66, 0x76, 0x56, 0x76, 0x06, 0x3C, 0x00 }, /* @ */
+ { 0x3C, 0x66, 0x66, 0x7E, 0x66, 0x66, 0x66, 0x00 }, /* A */
+ { 0x3E, 0x66, 0x66, 0x3E, 0x66, 0x66, 0x3E, 0x00 }, /* B */
+ { 0x3C, 0x66, 0x06, 0x06, 0x06, 0x66, 0x3C, 0x00 }, /* C */
+ { 0x1E, 0x36, 0x66, 0x66, 0x66, 0x36, 0x1E, 0x00 }, /* D */
+ { 0x7E, 0x06, 0x06, 0x3E, 0x06, 0x06, 0x7E, 0x00 }, /* E */
+ { 0x7E, 0x06, 0x06, 0x3E, 0x06, 0x06, 0x06, 0x00 }, /* F */
+ { 0x3C, 0x66, 0x06, 0x76, 0x66, 0x66, 0x3C, 0x00 }, /* G */
+ { 0x66, 0x66, 0x66, 0x7E, 0x66, 0x66, 0x66, 0x00 }, /* H */
+ { 0x7E, 0x18, 0x18, 0x18, 0x18, 0x18, 0x7E, 0x00 }, /* I */
+ { 0x7C, 0x30, 0x30, 0x30, 0x30, 0x36, 0x1C, 0x00 }, /* J */
+ { 0x66, 0x36, 0x1E, 0x0E, 0x1E, 0x36, 0x66, 0x00 }, /* K */
+ { 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x7E, 0x00 }, /* L */
+ { 0xC6, 0xEE, 0xFE, 0xD6, 0xD6, 0xC6, 0xC6, 0x00 }, /* M */
+ { 0x66, 0x66, 0x6E, 0x7E, 0x76, 0x66, 0x66, 0x00 }, /* N */
+ { 0x3C, 0x66, 0x66, 0x66, 0x66, 0x66, 0x3C, 0x00 }, /* O */
+ { 0x3E, 0x66, 0x66, 0x3E, 0x06, 0x06, 0x06, 0x00 }, /* P */
+ { 0x3C, 0x66, 0x66, 0x66, 0x56, 0x36, 0x6C, 0x00 }, /* Q */
+ { 0x3E, 0x66, 0x66, 0x3E, 0x36, 0x66, 0x66, 0x00 }, /* R */
+ { 0x3C, 0x66, 0x06, 0x3C, 0x60, 0x66, 0x3C, 0x00 }, /* S */
+ { 0x7E, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x00 }, /* T */
+ { 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x3C, 0x00 }, /* U */
+ { 0x66, 0x66, 0x66, 0x66, 0x66, 0x3C, 0x18, 0x00 }, /* V */
+ { 0xC6, 0xC6, 0xD6, 0xD6, 0xFE, 0xEE, 0xC6, 0x00 }, /* W */
+ { 0x66, 0x66, 0x3C, 0x18, 0x3C, 0x66, 0x66, 0x00 }, /* X */
+ { 0x66, 0x66, 0x66, 0x3C, 0x18, 0x18, 0x18, 0x00 }, /* Y */
+ { 0x7E, 0x60, 0x30, 0x18, 0x0C, 0x06, 0x7E, 0x00 }, /* Z */
+ { 0x3E, 0x06, 0x06, 0x06, 0x06, 0x06, 0x3E, 0x00 }, /* [ */
+ { 0x00, 0x06, 0x0C, 0x18, 0x30, 0x60, 0x00, 0x00 }, /* \ */
+ { 0x7C, 0x60, 0x60, 0x60, 0x60, 0x60, 0x7C, 0x00 }, /* ] */
+ { 0x3C, 0x66, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, /* ^ */
+ { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF }, /* _ */
+ { 0x0C, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, /* ` */
+ { 0x00, 0x00, 0x3C, 0x60, 0x7C, 0x66, 0x7C, 0x00 }, /* a */
+ { 0x06, 0x06, 0x3E, 0x66, 0x66, 0x66, 0x3E, 0x00 }, /* b */
+ { 0x00, 0x00, 0x3C, 0x66, 0x06, 0x66, 0x3C, 0x00 }, /* c */
+ { 0x60, 0x60, 0x7C, 0x66, 0x66, 0x66, 0x7C, 0x00 }, /* d */
+ { 0x00, 0x00, 0x3C, 0x66, 0x7E, 0x06, 0x3C, 0x00 }, /* e */
+ { 0x38, 0x0C, 0x0C, 0x3E, 0x0C, 0x0C, 0x0C, 0x00 }, /* f */
+ { 0x00, 0x00, 0x7C, 0x66, 0x66, 0x7C, 0x60, 0x3C }, /* g */
+ { 0x06, 0x06, 0x3E, 0x66, 0x66, 0x66, 0x66, 0x00 }, /* h */
+ { 0x18, 0x00, 0x1C, 0x18, 0x18, 0x18, 0x3C, 0x00 }, /* i */
+ { 0x18, 0x00, 0x1C, 0x18, 0x18, 0x18, 0x18, 0x0E }, /* j */
+ { 0x06, 0x06, 0x66, 0x36, 0x1E, 0x36, 0x66, 0x00 }, /* k */
+ { 0x1C, 0x18, 0x18, 0x18, 0x18, 0x18, 0x3C, 0x00 }, /* l */
+ { 0x00, 0x00, 0x6C, 0xFE, 0xD6, 0xD6, 0xC6, 0x00 }, /* m */
+ { 0x00, 0x00, 0x3E, 0x66, 0x66, 0x66, 0x66, 0x00 }, /* n */
+ { 0x00, 0x00, 0x3C, 0x66, 0x66, 0x66, 0x3C, 0x00 }, /* o */
+ { 0x00, 0x00, 0x3E, 0x66, 0x66, 0x3E, 0x06, 0x06 }, /* p */
+ { 0x00, 0x00, 0x7C, 0x66, 0x66, 0x7C, 0x60, 0xE0 }, /* q */
+ { 0x00, 0x00, 0x36, 0x6E, 0x06, 0x06, 0x06, 0x00 }, /* r */
+ { 0x00, 0x00, 0x7C, 0x06, 0x3C, 0x60, 0x3E, 0x00 }, /* s */
+ { 0x0C, 0x0C, 0x3E, 0x0C, 0x0C, 0x0C, 0x38, 0x00 }, /* t */
+ { 0x00, 0x00, 0x66, 0x66, 0x66, 0x66, 0x7C, 0x00 }, /* u */
+ { 0x00, 0x00, 0x66, 0x66, 0x66, 0x3C, 0x18, 0x00 }, /* v */
+ { 0x00, 0x00, 0xC6, 0xD6, 0xD6, 0xFE, 0x6C, 0x00 }, /* w */
+ { 0x00, 0x00, 0x66, 0x3C, 0x18, 0x3C, 0x66, 0x00 }, /* x */
+ { 0x00, 0x00, 0x66, 0x66, 0x66, 0x7C, 0x60, 0x3C }, /* y */
+ { 0x00, 0x00, 0x7E, 0x30, 0x18, 0x0C, 0x7E, 0x00 }, /* z */
+ { 0x30, 0x18, 0x18, 0x0E, 0x18, 0x18, 0x30, 0x00 }, /* { */
+ { 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x00 }, /* | */
+ { 0x0C, 0x18, 0x18, 0x70, 0x18, 0x18, 0x0C, 0x00 }, /* } */
+ { 0x8C, 0xD6, 0x62, 0x00, 0x00, 0x00, 0x00, 0x00 } /* ~ */
+};
+
+#define ALPS_LH
+#ifdef ALPS_LH
+#define LCD_WIDTH 640
+#define LCD_HEIGHT 240
+#else
+#define LCD_WIDTH 320
+#define LCD_HEIGHT 240
+#endif
+// This can be 1 or 2
+#define SCREEN_SCALE 2
+#define NIBBLES_PER_PIXEL (1*SCREEN_SCALE)
+#define PIXELS_PER_BYTE (2/NIBBLES_PER_PIXEL)
+#define PIXEL_MASK ((1<<PIXELS_PER_BYTE)-1)
+
+// Physical screen info
+static int lcd_depth; // Should be 1, 2, or 4
+static int lcd_width = LCD_WIDTH;
+static int lcd_height = LCD_HEIGHT;
+static cyg_uint8 *lcd_base = (cyg_uint8 *)0xC0000000;
+
+// Virtual screen info
+static int curX = 0; // Last used position
+static int curY = 0;
+static int width = LCD_WIDTH / (FONT_WIDTH*NIBBLES_PER_PIXEL);
+static int height = LCD_HEIGHT / (FONT_HEIGHT*SCREEN_SCALE);
+static int fg = 0x0F;
+static int bg = 0x00;
+
+// Functions
+static void lcd_drawc(cyg_int8 c, int x, int y);
+
+void
+lcd_on(int depth)
+{
+ cyg_int32 ctl_word = 0;
+ lcd_depth = depth;
+ switch (depth) {
+ case 1:
+ *(volatile cyg_int32 *)PALLSW = 0xF0F0F0F0;
+ *(volatile cyg_int32 *)PALMSW = 0xF0F0F0F0;
+ ctl_word = 0;
+ break;
+ case 2:
+ *(volatile cyg_int32 *)PALLSW = 0xFA50FA50;
+ *(volatile cyg_int32 *)PALMSW = 0xFA50FA50;
+ ctl_word = LCDCON_GSEN;
+ break;
+ case 4:
+ *(volatile cyg_int32 *)PALLSW = 0x76543210;
+ *(volatile cyg_int32 *)PALMSW = 0xFEDCBA98;
+ ctl_word = LCDCON_GSEN | LCDCON_GSMD;
+ break;
+ }
+ // Video buffer size
+ ctl_word |= ((lcd_width * lcd_height * lcd_depth) / 128 - 1) << LCDCON_BUFSIZ_S;
+ // Line length
+ ctl_word |= ((lcd_width / 16) - 1) << LCDCON_LINE_LENGTH_S;
+ // Pixel prescale
+ ctl_word |= ((526628 / (lcd_height * lcd_width)) - 1) << LCDCON_PIX_PRESCALE_S;
+ // AC frequency bias
+ ctl_word |= 0 << LCDCON_AC_PRESCALE_S;
+ *(volatile cyg_int32 *)LCDCON = ctl_word;
+ diag_printf("Depth: %d, ctl: %x\n", depth, ctl_word);
+
+#ifdef ALPS_LH
+#define LCD_DCDC 0x02
+#define LCD_ENABLE 0x04
+#define LCD_BACKLIGHT 0x08
+#define LCD_INIT (LCD_DCDC|LCD_ENABLE|LCD_BACKLIGHT)
+ *(volatile cyg_uint8 *)PDDDR = 0x40; // 1's are inputs (backwards from A/B/E)
+ *(volatile cyg_uint8 *)PDDR = LCD_INIT; // Enable video + backlight + DC-DC converter
+#else
+#ifdef _CL7111
+ *(volatile cyg_uint8 *)PDDR = 0x20; // Enable video
+ *(volatile cyg_uint8 *)PEDDR = 0x0F; // Register E data direction
+ *(volatile cyg_uint8 *)PEDR |= 0x01; // Enable PE2
+
+ *(volatile cyg_uint32 *)PMPCON = 0x500; // Enable DC-to-DC pump #1
+#endif
+#endif
+
+ *(volatile cyg_uint8 *)FRBADDR = 0x0C; // Highest order nibble of LCD frame address
+
+ *(volatile cyg_uint32 *)SYSCON1 |= SYSCON1_LCDEN;
+}
+
+// Clear screen
+void
+lcd_clear(void)
+{
+ cyg_int8 *ptr = lcd_base;
+ int i;
+ for (i = 0; i < (lcd_width*lcd_height*lcd_depth)/8; i++) {
+ *ptr++ = 0;
+ }
+ curX = 0; curY = 0;
+ lcd_drawc(CURSOR_ON, curX, curY);
+}
+
+// Position cursor
+void
+lcd_moveto(int X, int Y)
+{
+ lcd_drawc(CURSOR_OFF, curX, curY);
+ if (X < 0) X = 0;
+ if (X >= width) X = width-1;
+ curX = X;
+ if (Y < 0) Y = 0;
+ if (Y >= height) Y = height-1;
+ curY = Y;
+ lcd_drawc(CURSOR_ON, curX, curY);
+}
+
+// Render a character at position (X,Y) with current background/foreground
+static void
+lcd_drawc(cyg_int8 c, int x, int y)
+{
+ // Note: this only works for fonts which are a multiple of 8 bits wide!
+ cyg_uint8 *bufptr, bits;
+ int l, p, w;
+ switch (lcd_depth) {
+ case 1:
+ bufptr = lcd_base + ((y * FONT_HEIGHT * (lcd_width*lcd_depth)) + (x * FONT_WIDTH)) / 8;
+ for (l = 0; l < FONT_HEIGHT; l++) {
+ *bufptr = font_table[c][l];
+ bufptr += (lcd_width*lcd_depth)/8;
+ }
+ break;
+ case 2:
+ diag_printf("Depth 2 not implemented\n");
+ break;
+ case 4:
+ bufptr = lcd_base + ((y * (FONT_HEIGHT*SCREEN_SCALE) * (lcd_width*lcd_depth))
+ + (x * (FONT_WIDTH*SCREEN_SCALE) * lcd_depth)) / 8;
+ for (l = 0; l < FONT_HEIGHT; l++) {
+ for (w = 0; w < SCREEN_SCALE; w++) {
+ bits = font_table[c-FIRST_CHAR][l];
+ for (p = 0; p < 8; p += PIXELS_PER_BYTE) {
+ switch (bits & PIXEL_MASK) {
+ case 0:
+ *bufptr++ = (bg << 4) | bg;
+ break;
+ case 1:
+#if SCREEN_SCALE == 1
+ *bufptr++ = (bg << 4) | fg;
+#else
+ *bufptr++ = (fg << 4) | fg;
+#endif
+ break;
+#if SCREEN_SCALE == 1
+ case 2:
+ *bufptr++ = (fg << 4) | bg;
+ break;
+ case 3:
+ *bufptr++ = (fg << 4) | fg;
+ break;
+#endif
+ }
+ bits >>= PIXELS_PER_BYTE;
+ }
+ bufptr += (lcd_width*lcd_depth)/8 - (8/PIXELS_PER_BYTE);
+ }
+ }
+ break;
+ }
+}
+
+// Draw one character at the current position
+void
+lcd_putc(cyg_int8 c)
+{
+ lcd_drawc(CURSOR_OFF, curX, curY);
+ switch (c) {
+ case '\r':
+ curX = 0;
+ break;
+ case '\n':
+ curY++;
+ break;
+ case '\b':
+ curX--;
+ if (curX < 0) {
+ curY--;
+ if (curY < 0) curY = 0;
+ curX = width-1;
+ }
+ break;
+ default:
+ lcd_drawc(c, curX, curY);
+ curX++;
+ if (curX == width) {
+ curY++;
+ curX = 0;
+ }
+ }
+ lcd_drawc(CURSOR_ON, curX, curY);
+}
+
+// Basic LCD 'printf()' support
+
+#ifndef FALSE
+#define FALSE 0
+#define TRUE 1
+#endif
+
+#include <stdarg.h>
+
+#define is_digit(c) ((c >= '0') && (c <= '9'))
+
+static int
+_cvt(unsigned long val, char *buf, long radix, char *digits)
+{
+ char temp[80];
+ char *cp = temp;
+ int length = 0;
+ if (val == 0) {
+ /* Special case */
+ *cp++ = '0';
+ } else {
+ while (val) {
+ *cp++ = digits[val % radix];
+ val /= radix;
+ }
+ }
+ while (cp != temp) {
+ *buf++ = *--cp;
+ length++;
+ }
+ *buf = '\0';
+ return (length);
+}
+
+int
+lcd_vprintf(void (*putc)(cyg_int8), const char *fmt0, va_list ap)
+{
+ char c, sign, *cp;
+ int left_prec, right_prec, zero_fill, length, pad, pad_on_right;
+ char buf[32];
+ long val;
+ while ((c = *fmt0++)) {
+ cp = buf;
+ length = 0;
+ if (c == '%') {
+ c = *fmt0++;
+ left_prec = right_prec = pad_on_right = 0;
+ if (c == '-') {
+ c = *fmt0++;
+ pad_on_right++;
+ }
+ if (c == '0') {
+ zero_fill = TRUE;
+ c = *fmt0++;
+ } else {
+ zero_fill = FALSE;
+ }
+ while (is_digit(c)) {
+ left_prec = (left_prec * 10) + (c - '0');
+ c = *fmt0++;
+ }
+ if (c == '.') {
+ c = *fmt0++;
+ zero_fill++;
+ while (is_digit(c)) {
+ right_prec = (right_prec * 10) + (c - '0');
+ c = *fmt0++;
+ }
+ } else {
+ right_prec = left_prec;
+ }
+ sign = '\0';
+ switch (c) {
+ case 'd':
+ case 'x':
+ case 'X':
+ val = va_arg(ap, long);
+ switch (c) {
+ case 'd':
+ if (val < 0) {
+ sign = '-';
+ val = -val;
+ }
+ length = _cvt(val, buf, 10, "0123456789");
+ break;
+ case 'x':
+ length = _cvt(val, buf, 16, "0123456789abcdef");
+ break;
+ case 'X':
+ length = _cvt(val, buf, 16, "0123456789ABCDEF");
+ break;
+ }
+ break;
+ case 's':
+ cp = va_arg(ap, char *);
+ length = strlen(cp);
+ break;
+ case 'c':
+ c = va_arg(ap, long /*char*/);
+ (*putc)(c);
+ continue;
+ default:
+ (*putc)('?');
+ }
+ pad = left_prec - length;
+ if (sign != '\0') {
+ pad--;
+ }
+ if (zero_fill) {
+ c = '0';
+ if (sign != '\0') {
+ (*putc)(sign);
+ sign = '\0';
+ }
+ } else {
+ c = ' ';
+ }
+ if (!pad_on_right) {
+ while (pad-- > 0) {
+ (*putc)(c);
+ }
+ }
+ if (sign != '\0') {
+ (*putc)(sign);
+ }
+ while (length-- > 0) {
+ (*putc)(c = *cp++);
+ if (c == '\n') {
+ (*putc)('\r');
+ }
+ }
+ if (pad_on_right) {
+ while (pad-- > 0) {
+ (*putc)(' ');
+ }
+ }
+ } else {
+ (*putc)(c);
+ if (c == '\n') {
+ (*putc)('\r');
+ }
+ }
+ }
+}
+
+int
+lcd_printf(char const *fmt, ...)
+{
+ int ret;
+ va_list ap;
+
+ va_start(ap, fmt);
+ ret = lcd_vprintf(lcd_putc, fmt, ap);
+ va_end(ap);
+ return (ret);
+}
+
diff --git a/ecos/packages/hal/arm/edb7xxx/current/misc/lcd_test.c b/ecos/packages/hal/arm/edb7xxx/current/misc/lcd_test.c
new file mode 100644
index 0000000..eef60c1
--- /dev/null
+++ b/ecos/packages/hal/arm/edb7xxx/current/misc/lcd_test.c
@@ -0,0 +1,126 @@
+//==========================================================================
+//
+// lcd_test.c
+//
+// Cirrus EDB7XXX eval board LCD test code
+//
+//==========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//==========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): gthomas
+// Contributors: gthomas
+// Date: 1999-09-01
+// Description: Tool used to test LCD controller
+//####DESCRIPTIONEND####
+
+#include <pkgconf/kernel.h> // Configuration header
+#include <cyg/kernel/kapi.h>
+#include <cyg/infra/diag.h>
+
+#include <cyg/hal/hal_edb7xxx.h> // Board definitions
+
+#ifndef FALSE
+#define FALSE 0
+#define TRUE 1
+#endif
+
+#define STACK_SIZE 4096
+static char stack[STACK_SIZE];
+static cyg_thread thread_data;
+static cyg_handle_t thread_handle;
+
+#include "lcd_support.c"
+
+// FUNCTIONS
+
+static void
+cyg_test_exit(void)
+{
+ while (TRUE) ;
+}
+
+static void
+lcd_test(int depth)
+{
+ int i, j;
+ diag_printf("Set depth %d\n", depth);
+ lcd_on(depth);
+ lcd_clear();
+ for (j = 0; j < 5; j++) {
+ for (i = 0; i < width; i++) {
+ lcd_putc('A');
+ }
+ }
+ lcd_putc('\n');
+ lcd_putc('\n');
+ cyg_thread_delay(5*100);
+ for (j = 0; j < 5; j++) {
+ for (i = FIRST_CHAR; i <= LAST_CHAR; i++) {
+ lcd_putc(i);
+ }
+ }
+ cyg_thread_delay(5*100);
+}
+
+static void
+lcd_exercise(cyg_addrword_t p)
+{
+ diag_printf("LCD test here!\n");
+
+// lcd_test(1);
+// lcd_test(2);
+ lcd_test(4);
+
+ diag_printf("All done!\n");
+ cyg_test_exit();
+}
+
+externC void
+cyg_start( void )
+{
+ // Create a main thread, so we can run the scheduler and have time 'pass'
+ cyg_thread_create(10, // Priority - just a number
+ lcd_exercise, // entry
+ 0, // entry parameter
+ "LCD_test_thread", // Name
+ &stack[0], // Stack
+ STACK_SIZE, // Size
+ &thread_handle, // Handle
+ &thread_data // Thread data structure
+ );
+ cyg_thread_resume(thread_handle); // Start it
+ cyg_scheduler_start();
+} // cyg_package_start()
+
diff --git a/ecos/packages/hal/arm/edb7xxx/current/misc/long_audio_left.h b/ecos/packages/hal/arm/edb7xxx/current/misc/long_audio_left.h
new file mode 100755
index 0000000..fbd487d
--- /dev/null
+++ b/ecos/packages/hal/arm/edb7xxx/current/misc/long_audio_left.h
@@ -0,0 +1,56580 @@
+unsigned short left_channel[] = {
+ 0x007c, 0x0055, 0x0012, 0xfff6, 0x000a, 0x001f,
+ 0x0011, 0x0000, 0x0018, 0x004e, 0x006e, 0x0067,
+ 0x0055, 0x004d, 0x003b, 0x0010, 0xffe3, 0xffdb,
+ 0xfff7, 0x0012, 0x001c, 0x0022, 0x0031, 0x003d,
+ 0x0040, 0x004a, 0x005e, 0x005d, 0x002b, 0xffec,
+ 0xffe4, 0x0026, 0x006f, 0x007c, 0x005d, 0x004c,
+ 0x0052, 0x003f, 0x0008, 0xffe5, 0x0002, 0x0030,
+ 0x001c, 0xffc9, 0xff9a, 0xffdf, 0x0069, 0x00c3,
+ 0x00ae, 0x004f, 0xfff8, 0xffd3, 0xffe5, 0x000e,
+ 0x0022, 0x0006, 0xffd6, 0xffcf, 0x0008, 0x0044,
+ 0x0035, 0xffec, 0xffc2, 0xffe9, 0x002c, 0x003b,
+ 0x0012, 0xffec, 0xffe0, 0xffd5, 0xffca, 0xfff8,
+ 0x0072, 0x00e9, 0x00e7, 0x0066, 0xffe0, 0xffbc,
+ 0xffed, 0x0022, 0x0038, 0x0042, 0x0044, 0x001f,
+ 0xffd1, 0xff98, 0xffb2, 0x000b, 0x0059, 0x0065,
+ 0x003a, 0x0005, 0xfff1, 0x0014, 0x0067, 0x00ac,
+ 0x00a2, 0x0058, 0x0033, 0x0079, 0x00e5, 0x00eb,
+ 0x006c, 0xffe6, 0xffd7, 0x0024, 0x004d, 0x0020,
+ 0xffeb, 0xfff7, 0x0022, 0x0019, 0xffd8, 0xffac,
+ 0xffc7, 0x0003, 0x002c, 0x003a, 0x003d, 0x002c,
+ 0xfff8, 0xffc6, 0xffd4, 0x0022, 0x0067, 0x0067,
+ 0x0036, 0x0010, 0x0007, 0x0003, 0xfff1, 0xffd3,
+ 0xffa8, 0xff73, 0xff58, 0xff89, 0xfff3, 0x002d,
+ 0xfff5, 0xff8b, 0xff76, 0xffcc, 0x0014, 0xffef,
+ 0xff97, 0xff8e, 0xffe0, 0x0012, 0xffd7, 0xff7d,
+ 0xff81, 0xffe7, 0x0034, 0x0015, 0xffb1, 0xff60,
+ 0xff47, 0xff4f, 0xff60, 0xff70, 0xff71, 0xff60,
+ 0xff5f, 0xff95, 0xffe9, 0x000b, 0xffd9, 0xff89,
+ 0xff68, 0xff7f, 0xffa2, 0xffc0, 0xffec, 0x0013,
+ 0xfffb, 0xff99, 0xff47, 0xff58, 0xffa0, 0xffae,
+ 0xff6e, 0xff48, 0xff7d, 0xffb9, 0xff83, 0xfefb,
+ 0xfec9, 0xff41, 0xfff1, 0x002c, 0xffe3, 0xff9a,
+ 0xffbc, 0x0026, 0x006f, 0x005c, 0x000e, 0xffca,
+ 0xffc7, 0x0013, 0x007e, 0x00a1, 0x0046, 0xffac,
+ 0xff4e, 0xff5d, 0xff9b, 0xffc5, 0xffe2, 0x000b,
+ 0x000f, 0xffa6, 0xff03, 0xfed3, 0xff76, 0x0074,
+ 0x00fd, 0x00c9, 0x0049, 0xfff8, 0xffd8, 0xffbc,
+ 0xffb1, 0xffe3, 0x002d, 0x002f, 0xffcf, 0xff72,
+ 0xff81, 0xffdb, 0x000b, 0xffdb, 0xff88, 0xff69,
+ 0xff8d, 0xffc2, 0xffcc, 0xff8d, 0xff1b, 0xfed3,
+ 0xff1e, 0xfffb, 0x00c3, 0x00c3, 0x0002, 0xff49,
+ 0xff38, 0xff98, 0xffc3, 0xff82, 0xff38, 0xff3d,
+ 0xff6a, 0xff78, 0xff7f, 0xffc9, 0x003c, 0x0062,
+ 0xfffe, 0xff6d, 0xff37, 0xff75, 0xffd8, 0x0016,
+ 0x002e, 0x002e, 0x0015, 0xfff4, 0xfff1, 0x000c,
+ 0x0009, 0xffb7, 0xff46, 0xff16, 0xff39, 0xff6b,
+ 0xff85, 0xffb8, 0x0028, 0x0090, 0x008e, 0x002c,
+ 0xffe1, 0xffe3, 0xffe9, 0xffa8, 0xff51, 0xff59,
+ 0xffc9, 0x002f, 0x003c, 0x001f, 0x002d, 0x005c,
+ 0x0059, 0x0008, 0xffa5, 0xff72, 0xff79, 0xffa9,
+ 0xfff9, 0x0049, 0x0058, 0x0012, 0xffd1, 0xfffc,
+ 0x007d, 0x00c7, 0x0080, 0xfff8, 0xffb0, 0xffbb,
+ 0xffc8, 0xffb7, 0xffc4, 0x0010, 0x0050, 0x002f,
+ 0xffd5, 0xffb6, 0xfff5, 0x0038, 0x0033, 0x0011,
+ 0x0029, 0x007d, 0x00bf, 0x00c3, 0x00a7, 0x008f,
+ 0x0073, 0x0046, 0x0018, 0xfff3, 0xffb8, 0xff5f,
+ 0xff26, 0xff4f, 0xffad, 0xffcb, 0xff8e, 0xff71,
+ 0xffe2, 0x0090, 0x00c0, 0x0033, 0xff81, 0xff55,
+ 0xffb3, 0x001c, 0x004b, 0x005d, 0x006a, 0x004f,
+ 0xfffd, 0xffbd, 0xffe0, 0x0046, 0x007d, 0x0048,
+ 0xffdf, 0xff92, 0xff7b, 0xff93, 0xffd0, 0x0019,
+ 0x0035, 0x0005, 0xffd2, 0x0003, 0x0098, 0x010a,
+ 0x00f1, 0x007c, 0x002b, 0x0036, 0x006f, 0x00aa,
+ 0x00de, 0x00e1, 0x0063, 0xff78, 0xfede, 0xff57,
+ 0x00ac, 0x01b6, 0x0188, 0x006a, 0xff75, 0xff68,
+ 0x001b, 0x00f3, 0x017b, 0x0189, 0x011f, 0x006e,
+ 0xffd4, 0xff99, 0xffae, 0xffcc, 0xffdb, 0xfff6,
+ 0x001c, 0x0016, 0xffd3, 0xffa5, 0xffe8, 0x0071,
+ 0x00b3, 0x0064, 0xffd0, 0xff6d, 0xff5e, 0xff81,
+ 0xffc3, 0x001e, 0x005e, 0x0035, 0xffbf, 0xff7e,
+ 0xffc4, 0x0031, 0x0028, 0xff9f, 0xff28, 0xff31,
+ 0xff7e, 0xff9e, 0xff97, 0xffbe, 0x0016, 0x002c,
+ 0xffb3, 0xff09, 0xfeda, 0xff5c, 0x0021, 0x0096,
+ 0x0076, 0xffee, 0xff5d, 0xff2b, 0xff72, 0xffd3,
+ 0xffb5, 0xfef2, 0xfe21, 0xfe09, 0xfecb, 0xffc4,
+ 0x004b, 0x004f, 0x001d, 0xffe8, 0xffbd, 0xffc5,
+ 0x0023, 0x0093, 0x007e, 0xffbb, 0xfee7, 0xfec7,
+ 0xff4e, 0xffbd, 0xff99, 0xff43, 0xff55, 0xffc2,
+ 0xfff1, 0xff9c, 0xff37, 0xff52, 0xffe0, 0x0050,
+ 0x004c, 0x000e, 0x0015, 0x0091, 0x012e, 0x0158,
+ 0x00c3, 0xffca, 0xff46, 0xffd1, 0x010b, 0x01dc,
+ 0x018b, 0x0087, 0xffe1, 0x0009, 0x0082, 0x00a8,
+ 0x008d, 0x009e, 0x00cb, 0x008c, 0xffcc, 0xff49,
+ 0xffd0, 0x012d, 0x0256, 0x0288, 0x01f5, 0x0144,
+ 0x00c6, 0x005f, 0xffff, 0xffcb, 0xffda, 0x0003,
+ 0x0018, 0x002a, 0x0064, 0x00c4, 0x0107, 0x00e4,
+ 0x0053, 0xffa7, 0xff6b, 0xfff9, 0x0105, 0x01a3,
+ 0x0118, 0xffc3, 0xfede, 0xff37, 0x003b, 0x00a4,
+ 0xffff, 0xff23, 0xff0a, 0xff99, 0xffef, 0xffb2,
+ 0xff82, 0x000b, 0x0107, 0x0180, 0x00f8, 0xffe3,
+ 0xff0e, 0xfed5, 0xff0b, 0xff67, 0xffcb, 0x002c,
+ 0x0075, 0x007f, 0x0032, 0xff9f, 0xff11, 0xfefa,
+ 0xff80, 0x0038, 0x0076, 0x0000, 0xff5d, 0xff3f,
+ 0xffc0, 0x005b, 0x00aa, 0x00b6, 0x00a8, 0x006e,
+ 0xfffa, 0xffa6, 0xffef, 0x00ae, 0x0112, 0x0084,
+ 0xff6b, 0xfeb6, 0xfed2, 0xff46, 0xff77, 0xff60,
+ 0xff69, 0xffc3, 0x0037, 0x008f, 0x00d6, 0x012b,
+ 0x0184, 0x01b8, 0x01b6, 0x017b, 0x010d, 0x0085,
+ 0x0025, 0x0022, 0x0059, 0x0073, 0x0051, 0x0033,
+ 0x004e, 0x006f, 0x0048, 0xffef, 0xffdf, 0x005d,
+ 0x0115, 0x0175, 0x014f, 0x00ef, 0x00b1, 0x00af,
+ 0x00d4, 0x00f6, 0x00e3, 0x007c, 0xfffb, 0xffdb,
+ 0x0058, 0x00fd, 0x010c, 0x005d, 0xffa0, 0xff95,
+ 0x003c, 0x00f2, 0x012e, 0x00fc, 0x00a7, 0x0057,
+ 0x0014, 0xffff, 0x002c, 0x0072, 0x007c, 0x0029,
+ 0xffb1, 0xff5b, 0xff4b, 0xff82, 0xffe7, 0x002f,
+ 0xfffc, 0xff4b, 0xfeb4, 0xfeda, 0xff94, 0x000c,
+ 0xffd7, 0xff90, 0x0011, 0x012a, 0x01a3, 0x00b3,
+ 0xff07, 0xfe13, 0xfe8d, 0xffef, 0x0135, 0x01c1,
+ 0x0169, 0x0054, 0xff12, 0xfe8b, 0xff3c, 0x0074,
+ 0x00dc, 0x0000, 0xfef5, 0xff28, 0x00a2, 0x01ee,
+ 0x01cc, 0x009f, 0xffe2, 0x0052, 0x0104, 0x004a,
+ 0xfd6e, 0xf96a, 0xf621, 0xf4d4, 0xf53d, 0xf5fc,
+ 0xf5e8, 0xf513, 0xf485, 0xf515, 0xf693, 0xf81d,
+ 0xf914, 0xf97a, 0xf97e, 0xf8fc, 0xf7be, 0xf614,
+ 0xf4cb, 0xf476, 0xf4d1, 0xf50e, 0xf49c, 0xf386,
+ 0xf1f8, 0xef6c, 0xea6f, 0xe16f, 0xd466, 0xc651,
+ 0xbd08, 0xbeaf, 0xcdb3, 0xe612, 0xfe9a, 0x0e08,
+ 0x10c1, 0x0a7d, 0x026b, 0xfcfa, 0xf8c8, 0xf190,
+ 0xe5c3, 0xd8e7, 0xd056, 0xce55, 0xd14a, 0xd7b4,
+ 0xe33c, 0xf629, 0x0d8e, 0x1fc3, 0x2272, 0x131d,
+ 0xf990, 0xe1f6, 0xd49f, 0xd2b1, 0xd8f2, 0xe3cc,
+ 0xf090, 0xfc56, 0x03bf, 0x0493, 0xff81, 0xf7e4,
+ 0xf199, 0xeec4, 0xef29, 0xf14b, 0xf411, 0xf77c,
+ 0xfc00, 0x0169, 0x06b4, 0x0aee, 0x0def, 0x0fe9,
+ 0x108f, 0x0f61, 0x0d00, 0x0b87, 0x0caf, 0x0fa7,
+ 0x1176, 0x101d, 0x0ced, 0x0b28, 0x0c68, 0x0f02,
+ 0x1043, 0x0fa4, 0x0efe, 0x0fd9, 0x116f, 0x11ee,
+ 0x10f5, 0x0ff6, 0x1018, 0x10bf, 0x10bd, 0x1048,
+ 0x10b8, 0x1228, 0x12a0, 0x106c, 0x0ce5, 0x0ba6,
+ 0x0e7d, 0x130d, 0x1541, 0x13de, 0x11ac, 0x11f0,
+ 0x149e, 0x16c6, 0x1649, 0x1424, 0x12ee, 0x1403,
+ 0x16b9, 0x19af, 0x1bcc, 0x1c08, 0x1978, 0x1491,
+ 0x0fe1, 0x0e6d, 0x10da, 0x14b4, 0x16eb, 0x16fe,
+ 0x1778, 0x1b7c, 0x2404, 0x2f0a, 0x38b6, 0x3d59,
+ 0x3b51, 0x33f6, 0x2acd, 0x2315, 0x1df3, 0x1b23,
+ 0x1b47, 0x206d, 0x2b5f, 0x38be, 0x4243, 0x43ca,
+ 0x3ef1, 0x3920, 0x3649, 0x362d, 0x366b, 0x35c8,
+ 0x3477, 0x3245, 0x2e63, 0x2995, 0x26e1, 0x283a,
+ 0x2aca, 0x285f, 0x1e00, 0x1051, 0x0831, 0x0a7f,
+ 0x13eb, 0x1cce, 0x2040, 0x1ead, 0x1abe, 0x15b2,
+ 0x0f84, 0x0928, 0x04cc, 0x038c, 0x03f4, 0x0389,
+ 0x015b, 0xfe8b, 0xfc7b, 0xfb60, 0xfa8a, 0xf993,
+ 0xf8be, 0xf8a5, 0xf9cb, 0xfc25, 0xfe45, 0xfd67,
+ 0xf79e, 0xeebc, 0xe839, 0xe8c3, 0xef5a, 0xf5bc,
+ 0xf655, 0xf184, 0xec58, 0xea9d, 0xeb43, 0xeadf,
+ 0xe862, 0xe5fb, 0xe5a5, 0xe681, 0xe652, 0xe4ac,
+ 0xe34b, 0xe34e, 0xe35a, 0xe126, 0xdc41, 0xd686,
+ 0xd22e, 0xd052, 0xd134, 0xd4ac, 0xd960, 0xdc5c,
+ 0xdb04, 0xd60d, 0xd196, 0xd16a, 0xd537, 0xd91f,
+ 0xd9da, 0xd78d, 0xd475, 0xd1e7, 0xcfb1, 0xcdef,
+ 0xcdec, 0xd070, 0xd3ee, 0xd57a, 0xd3ab, 0xcfad,
+ 0xcb6b, 0xc782, 0xc39d, 0xc045, 0xbf04, 0xc07f,
+ 0xc352, 0xc5ae, 0xc7ad, 0xcb2a, 0xd11f, 0xd7f3,
+ 0xdce7, 0xdeb4, 0xde23, 0xdc52, 0xd95d, 0xd51c,
+ 0xd05e, 0xcc86, 0xca18, 0xc874, 0xc75e, 0xc801,
+ 0xcbb8, 0xd20d, 0xd892, 0xdcf0, 0xde87, 0xddf1,
+ 0xdbb0, 0xd820, 0xd479, 0xd298, 0xd325, 0xd462,
+ 0xd3d3, 0xd116, 0xce62, 0xcddc, 0xcf01, 0xcf75,
+ 0xce38, 0xcd33, 0xcf2b, 0xd47f, 0xda7d, 0xddb3,
+ 0xdcaa, 0xd882, 0xd3c8, 0xd112, 0xd1fe, 0xd667,
+ 0xdc2a, 0xe057, 0xe15d, 0xe031, 0xdf0e, 0xdf28,
+ 0xdfc5, 0xdf94, 0xde4e, 0xdcb7, 0xdb77, 0xda93,
+ 0xda26, 0xdaeb, 0xdd87, 0xe176, 0xe536, 0xe7ac,
+ 0xe8fe, 0xe9e5, 0xea8b, 0xea8a, 0xe9f8, 0xe9c6,
+ 0xeab9, 0xec2d, 0xec63, 0xea21, 0xe5f6, 0xe1dc,
+ 0xdfd0, 0xe0ca, 0xe49d, 0xea36, 0xefe8, 0xf3f8,
+ 0xf588, 0xf51a, 0xf40e, 0xf374, 0xf36f, 0xf3b3,
+ 0xf459, 0xf5f1, 0xf8be, 0xfc0f, 0xfe93, 0xff56,
+ 0xfe78, 0xfd15, 0xfc98, 0xfdea, 0x00db, 0x0424,
+ 0x0616, 0x05cc, 0x03e9, 0x0234, 0x023b, 0x0433,
+ 0x0714, 0x09ae, 0x0b94, 0x0d0c, 0x0e57, 0x0f4d,
+ 0x0f91, 0x0f1b, 0x0e57, 0x0ddf, 0x0e1d, 0x0f20,
+ 0x10a6, 0x1233, 0x1347, 0x139d, 0x1369, 0x1338,
+ 0x1379, 0x141e, 0x14b1, 0x14d3, 0x149e, 0x148e,
+ 0x1507, 0x15f3, 0x16dc, 0x1774, 0x1800, 0x1945,
+ 0x1bf1, 0x1fe1, 0x23e6, 0x266c, 0x2690, 0x24e8,
+ 0x2331, 0x230a, 0x24ae, 0x26db, 0x27f9, 0x2795,
+ 0x26c3, 0x2710, 0x2906, 0x2ba7, 0x2d5e, 0x2d79,
+ 0x2ce6, 0x2d5a, 0x2fc6, 0x335f, 0x3623, 0x364c,
+ 0x33a3, 0x2f8a, 0x2bed, 0x2a07, 0x29ed, 0x2b06,
+ 0x2cb8, 0x2eae, 0x309d, 0x3208, 0x3275, 0x31de,
+ 0x30bf, 0x2fa6, 0x2eb2, 0x2da5, 0x2c7e, 0x2bf4,
+ 0x2d08, 0x2ffa, 0x33b4, 0x3640, 0x361f, 0x3372,
+ 0x2fd7, 0x2d21, 0x2c07, 0x2beb, 0x2bcb, 0x2b69,
+ 0x2b7a, 0x2cd4, 0x2f6f, 0x3234, 0x33ed, 0x3451,
+ 0x3402, 0x33a4, 0x3310, 0x317c, 0x2ea7, 0x2ba3,
+ 0x2a52, 0x2be5, 0x2f99, 0x32ff, 0x33d8, 0x31f8,
+ 0x2f60, 0x2e8c, 0x3046, 0x32fc, 0x343d, 0x32eb,
+ 0x303e, 0x2ebe, 0x300a, 0x336b, 0x3677, 0x36fa,
+ 0x34be, 0x31a4, 0x300b, 0x310b, 0x33d4, 0x3673,
+ 0x3759, 0x3667, 0x34ae, 0x3367, 0x3329, 0x33b6,
+ 0x3475, 0x34e4, 0x34ac, 0x339f, 0x31cd, 0x2f80,
+ 0x2d38, 0x2b72, 0x2a82, 0x2a89, 0x2b33, 0x2ba1,
+ 0x2b18, 0x2977, 0x270d, 0x24a1, 0x2321, 0x22ed,
+ 0x23b2, 0x24a3, 0x24eb, 0x2444, 0x2300, 0x21c1,
+ 0x20e5, 0x1fe7, 0x1e06, 0x1b83, 0x199c, 0x19be,
+ 0x1c7d, 0x20ae, 0x2410, 0x24d7, 0x2299, 0x1eae,
+ 0x1b45, 0x1995, 0x1945, 0x1912, 0x17f3, 0x162b,
+ 0x14bc, 0x13f8, 0x1356, 0x120b, 0x0ff1, 0x0e18,
+ 0x0dba, 0x0f02, 0x1131, 0x12e4, 0x12f8, 0x11a8,
+ 0x0fc6, 0x0dd3, 0x0c21, 0x0a87, 0x08e1, 0x07dd,
+ 0x07fa, 0x08de, 0x097e, 0x08a6, 0x06db, 0x05ef,
+ 0x063f, 0x06a1, 0x05c3, 0x0323, 0x000b, 0xfe1c,
+ 0xfdf7, 0xffcd, 0x0213, 0x0217, 0xffd0, 0xfda2,
+ 0xfd7b, 0xff16, 0xffcc, 0xfd5d, 0xf815, 0xf238,
+ 0xef72, 0xf16f, 0xf560, 0xf880, 0xfa3c, 0xfa56,
+ 0xf9e1, 0xfa9d, 0xfc0c, 0xfbde, 0xf898, 0xf433,
+ 0xf269, 0xf390, 0xf51e, 0xf4cd, 0xf172, 0xed2f,
+ 0xeb96, 0xed09, 0xf090, 0xf538, 0xf842, 0xf7c2,
+ 0xf555, 0xf3af, 0xf2f8, 0xf0f0, 0xed68, 0xea76,
+ 0xe895, 0xe85a, 0xeaef, 0xee3b, 0xefed, 0xf127,
+ 0xf266, 0xf20a, 0xeff9, 0xee4c, 0xedf3, 0xed6f,
+ 0xec93, 0xeccf, 0xec8b, 0xe90b, 0xe39a, 0xdff8,
+ 0xe09a, 0xe510, 0xea6e, 0xee6c, 0xf0dc, 0xf1dd,
+ 0xf15f, 0xefff, 0xeebf, 0xed63, 0xea8f, 0xe645,
+ 0xe221, 0xdf77, 0xdef4, 0xe049, 0xe22e, 0xe416,
+ 0xe66b, 0xe8f9, 0xeac4, 0xeba6, 0xec91, 0xed05,
+ 0xeb33, 0xe76f, 0xe452, 0xe415, 0xe653, 0xe82c,
+ 0xe93c, 0xec81, 0xf169, 0xf3d5, 0xf2b9, 0xefd0,
+ 0xeb2e, 0xe3e4, 0xdc62, 0xd8f6, 0xd896, 0xd74e,
+ 0xd4cd, 0xd0b8, 0xca78, 0xc5e3, 0xc56e, 0xc6b1,
+ 0xc8a3, 0xcc70, 0xd1a4, 0xd5a3, 0xd785, 0xda82,
+ 0xdef9, 0xe07b, 0xde93, 0xdbb1, 0xd854, 0xd5ff,
+ 0xd4fe, 0xd45d, 0xd69b, 0xdbf0, 0xdfc5, 0xe074,
+ 0xe075, 0xe2a9, 0xe65f, 0xe818, 0xe87b, 0xe89a,
+ 0xe5ab, 0xe1a9, 0xe060, 0xe02b, 0xe103, 0xe39f,
+ 0xe52c, 0xe529, 0xe4b4, 0xe400, 0xe2e2, 0xdf0d,
+ 0xd9f5, 0xd86a, 0xd898, 0xd7e6, 0xd865, 0xdab5,
+ 0xdeab, 0xe1b4, 0xe01f, 0xde22, 0xdee0, 0xde53,
+ 0xdd0d, 0xdd1e, 0xdcea, 0xdd7d, 0xdfa4, 0xe2dd,
+ 0xe6ba, 0xe790, 0xe54a, 0xe34a, 0xe0d6, 0xe053,
+ 0xe405, 0xe61b, 0xe51a, 0xe42b, 0xe2ad, 0xe1a9,
+ 0xe16f, 0xe066, 0xe113, 0xe3c3, 0xe6c1, 0xea73,
+ 0xec69, 0xed18, 0xee60, 0xebc5, 0xe84d, 0xeae1,
+ 0xed65, 0xebce, 0xea20, 0xe748, 0xe2cc, 0xdef1,
+ 0xdc70, 0xdcac, 0xdd0e, 0xdc83, 0xe015, 0xe4db,
+ 0xe61a, 0xe730, 0xe6b7, 0xe324, 0xe1a6, 0xe27f,
+ 0xe413, 0xe5db, 0xe541, 0xe5ae, 0xe9b6, 0xecf5,
+ 0xefec, 0xf2c7, 0xf27c, 0xf246, 0xf22d, 0xefed,
+ 0xf092, 0xf328, 0xf24d, 0xf06a, 0xee3d, 0xeab4,
+ 0xe8e3, 0xe976, 0xeba8, 0xedf4, 0xed23, 0xeaf7,
+ 0xe9fa, 0xea02, 0xecbf, 0xf075, 0xf1e0, 0xf226,
+ 0xf17a, 0xf1c9, 0xf517, 0xf618, 0xf475, 0xf591,
+ 0xf748, 0xf7a9, 0xf82c, 0xf7e2, 0xf7bd, 0xf6e5,
+ 0xf45a, 0xf5e6, 0xfab2, 0xfbea, 0xfb78, 0xfa91,
+ 0xf6fe, 0xf423, 0xf379, 0xf363, 0xf45c, 0xf4f8,
+ 0xf35e, 0xef32, 0xea05, 0xe8a0, 0xea7e, 0xeb9c,
+ 0xed65, 0xeea7, 0xed5e, 0xed79, 0xee0b, 0xed2d,
+ 0xeea8, 0xefe8, 0xed37, 0xea57, 0xe910, 0xe9dc,
+ 0xecc3, 0xedd8, 0xedd4, 0xee8f, 0xec25, 0xe852,
+ 0xe8eb, 0xed3e, 0xf21c, 0xf597, 0xf7fb, 0xfa82,
+ 0xfb28, 0xfa0d, 0xf9e1, 0xf9ff, 0xfb15, 0xfd0d,
+ 0xfc43, 0xfa43, 0xf877, 0xf50d, 0xf49a, 0xf832,
+ 0xf9f6, 0xfae2, 0xfb94, 0xf9d9, 0xfade, 0xff2b,
+ 0x0110, 0x028e, 0x046b, 0x0339, 0x0172, 0x000b,
+ 0xfd21, 0xfbf6, 0xfd75, 0xfd97, 0xfb43, 0xf78d,
+ 0xf427, 0xf3aa, 0xf5e3, 0xf84c, 0xf9b5, 0xfa0b,
+ 0xf942, 0xf828, 0xf7f6, 0xf76c, 0xf47d, 0xf1b2,
+ 0xf26f, 0xf435, 0xf3bd, 0xf2d6, 0xf391, 0xf581,
+ 0xf8e8, 0xfcc2, 0xfe34, 0xfeae, 0x0042, 0xff59,
+ 0xfbb0, 0xfa1e, 0xfa0f, 0xfa53, 0xfd03, 0xff54,
+ 0xff19, 0xff48, 0xff80, 0xff39, 0x00a9, 0x028e,
+ 0x0426, 0x051e, 0x02b3, 0x0168, 0x0639, 0x0a61,
+ 0x0aec, 0x0c4c, 0x0c1b, 0x099d, 0x092f, 0x08c0,
+ 0x0880, 0x0ce7, 0x1086, 0x0e1e, 0x0a8d, 0x0791,
+ 0x03bd, 0x0234, 0x0455, 0x07fb, 0x0b58, 0x0d6b,
+ 0x0ef9, 0x0f63, 0x0d63, 0x0c76, 0x0db7, 0x0d95,
+ 0x0d10, 0x0ca2, 0x0959, 0x063b, 0x05d5, 0x04eb,
+ 0x0405, 0x04c6, 0x0593, 0x065f, 0x05fd, 0x0419,
+ 0x054e, 0x096a, 0x0bfa, 0x0d03, 0x0c87, 0x0ac7,
+ 0x0a84, 0x09e3, 0x07e9, 0x0906, 0x0b3d, 0x09bd,
+ 0x07d6, 0x0843, 0x08cc, 0x0975, 0x0b1f, 0x0cec,
+ 0x0e24, 0x0da6, 0x0b31, 0x08ec, 0x082f, 0x086f,
+ 0x09fa, 0x0dec, 0x130b, 0x1609, 0x15c2, 0x1422,
+ 0x1369, 0x14e1, 0x172b, 0x173c, 0x15d4, 0x14fd,
+ 0x1270, 0x0e53, 0x0dac, 0x0f8a, 0x0fc3, 0x1128,
+ 0x14aa, 0x14fd, 0x1302, 0x1288, 0x11ba, 0x11b3,
+ 0x14b4, 0x157c, 0x1330, 0x1450, 0x17c7, 0x182d,
+ 0x15a0, 0x1223, 0x0ffc, 0x1068, 0x10cc, 0x0ff7,
+ 0x0f8b, 0x107e, 0x130f, 0x14b7, 0x147a, 0x1743,
+ 0x1c2d, 0x1ce6, 0x1c03, 0x1cae, 0x1b46, 0x1987,
+ 0x1abe, 0x1ad8, 0x1841, 0x15c2, 0x1366, 0x116d,
+ 0x1178, 0x1444, 0x1a49, 0x2007, 0x1f89, 0x1a9c,
+ 0x17c8, 0x16fe, 0x1556, 0x149c, 0x16cc, 0x1a5a,
+ 0x1bf1, 0x185a, 0x1275, 0x1178, 0x1369, 0x114a,
+ 0x0da4, 0x0d44, 0x0f38, 0x129c, 0x14b2, 0x1247,
+ 0x0fc9, 0x1119, 0x12d4, 0x1331, 0x1396, 0x13e8,
+ 0x1313, 0x1049, 0x0d3f, 0x0d35, 0x0ff1, 0x12d8,
+ 0x146a, 0x1450, 0x1276, 0x0e85, 0x0ab8, 0x0af0,
+ 0x0df3, 0x1007, 0x0fd0, 0x0d0a, 0x0b7b, 0x0e9d,
+ 0x11e9, 0x12dd, 0x145f, 0x1605, 0x1899, 0x1ca8,
+ 0x1cf1, 0x1a5d, 0x1a5d, 0x1a98, 0x1952, 0x1844,
+ 0x1626, 0x13c9, 0x12ed, 0x12e2, 0x147b, 0x16cf,
+ 0x18da, 0x1cdf, 0x200d, 0x1f52, 0x1e35, 0x1d19,
+ 0x1c1a, 0x1e97, 0x2147, 0x212d, 0x20ac, 0x1ef4,
+ 0x1e10, 0x2144, 0x22cc, 0x2098, 0x1f48, 0x1d77,
+ 0x1a66, 0x190f, 0x1880, 0x18a2, 0x1aab, 0x1d4f,
+ 0x208b, 0x2292, 0x1f6e, 0x19a8, 0x16f2, 0x1765,
+ 0x1703, 0x152e, 0x16d9, 0x1c0f, 0x1d2a, 0x191c,
+ 0x15ab, 0x1469, 0x14b5, 0x1661, 0x17e1, 0x1828,
+ 0x16fe, 0x1528, 0x13ba, 0x12b5, 0x13ae, 0x1685,
+ 0x17c2, 0x18a7, 0x1a33, 0x1870, 0x15fd, 0x1664,
+ 0x15b2, 0x14e8, 0x154f, 0x1160, 0x0cd9, 0x0eaa,
+ 0x1212, 0x146f, 0x175f, 0x17e5, 0x1704, 0x1755,
+ 0x169b, 0x16ac, 0x192b, 0x19f6, 0x1912, 0x1854,
+ 0x16e1, 0x16f8, 0x193a, 0x1a46, 0x1a07, 0x1918,
+ 0x1686, 0x133c, 0x10f1, 0x1195, 0x144d, 0x14c6,
+ 0x1398, 0x134b, 0x11b5, 0x0fa2, 0x1003, 0x112b,
+ 0x11e3, 0x122d, 0x11d7, 0x1228, 0x115b, 0x0ead,
+ 0x0ea5, 0x104b, 0x0fec, 0x0fd1, 0x1002, 0x0f24,
+ 0x0ed5, 0x0ce6, 0x09b7, 0x0a62, 0x0c0b, 0x0b42,
+ 0x0bcf, 0x0cb0, 0x0ae3, 0x09b6, 0x0a5a, 0x0a71,
+ 0x09ca, 0x08e4, 0x0834, 0x07eb, 0x074c, 0x0769,
+ 0x0943, 0x0a4e, 0x08d5, 0x070d, 0x0738, 0x0999,
+ 0x0d76, 0x10e0, 0x12b3, 0x1477, 0x1550, 0x11c9,
+ 0x0bfa, 0x08d8, 0x08b3, 0x0a79, 0x0daa, 0x1080,
+ 0x11b7, 0x0fe5, 0x0b43, 0x085c, 0x0916, 0x0aaa,
+ 0x0b43, 0x099f, 0x0686, 0x0558, 0x056f, 0x04a9,
+ 0x04d1, 0x06da, 0x08c3, 0x085b, 0x059d, 0x03b7,
+ 0x040e, 0x04c4, 0x050a, 0x0404, 0x022a, 0x02ca,
+ 0x054b, 0x06a1, 0x0621, 0x02df, 0xfec8, 0xfdb8,
+ 0xfd50, 0xfa8b, 0xf7dc, 0xf78b, 0xf920, 0xf9a3,
+ 0xf7c3, 0xf784, 0xf996, 0xfa93, 0xfb76, 0xfc8a,
+ 0xfbc0, 0xfaaa, 0xf9c9, 0xf81e, 0xf6d0, 0xf4cc,
+ 0xf1b9, 0xf19a, 0xf55a, 0xf928, 0xf97a, 0xf6d7,
+ 0xf580, 0xf572, 0xf2dd, 0xef37, 0xedd7, 0xee4c,
+ 0xeec1, 0xeddb, 0xeca6, 0xebed, 0xe968, 0xe68b,
+ 0xe742, 0xea57, 0xed1f, 0xedfc, 0xeca7, 0xeba2,
+ 0xe9d7, 0xe5c0, 0xe4ff, 0xe81a, 0xe77e, 0xe260,
+ 0xdd70, 0xdb1a, 0xdc09, 0xdea8, 0xe1b9, 0xe4ab,
+ 0xe4c8, 0xe2c3, 0xe256, 0xe2e9, 0xe2f5, 0xe2a2,
+ 0xe171, 0xe064, 0xe07d, 0xe008, 0xde28, 0xdc78,
+ 0xdc62, 0xdc7a, 0xdb3a, 0xdac0, 0xdb53, 0xdada,
+ 0xdc16, 0xe0be, 0xe454, 0xe47d, 0xe2ac, 0xe0ec,
+ 0xe01c, 0xdd79, 0xd970, 0xd93c, 0xdb2f, 0xda18,
+ 0xd75f, 0xd637, 0xd7e3, 0xdbac, 0xdeb5, 0xe130,
+ 0xe413, 0xe484, 0xe255, 0xe076, 0xded7, 0xdca8,
+ 0xdb0c, 0xdb6d, 0xddca, 0xe083, 0xe214, 0xe0e6,
+ 0xdc32, 0xd6bb, 0xd334, 0xd2a2, 0xd637, 0xdaac,
+ 0xdb18, 0xd8df, 0xd679, 0xd3f1, 0xd1d2, 0xcfa2,
+ 0xce26, 0xcf35, 0xd10c, 0xd32a, 0xd613, 0xd5eb,
+ 0xd278, 0xd079, 0xd0b3, 0xd271, 0xd530, 0xd63a,
+ 0xd582, 0xd4bd, 0xd2df, 0xcf8d, 0xcce6, 0xcc9b,
+ 0xcdff, 0xcf53, 0xd105, 0xd338, 0xd428, 0xd4e1,
+ 0xd750, 0xda80, 0xdd47, 0xde5e, 0xdcf8, 0xda2c,
+ 0xd695, 0xd36f, 0xd1d3, 0xd09f, 0xd28d, 0xd9ea,
+ 0xdfdb, 0xe02c, 0xdeff, 0xde48, 0xdeb3, 0xe184,
+ 0xe438, 0xe420, 0xe0d4, 0xdb70, 0xd7aa, 0xd777,
+ 0xd9d2, 0xde19, 0xe180, 0xe09a, 0xdcb2, 0xd9a3,
+ 0xda09, 0xdd63, 0xe0ca, 0xe26c, 0xe1d7, 0xe006,
+ 0xded4, 0xddab, 0xdca1, 0xddc9, 0xdf6b, 0xdf10,
+ 0xdd3e, 0xdaae, 0xd9b9, 0xdad6, 0xda17, 0xd86d,
+ 0xd8bb, 0xd7fa, 0xd590, 0xd481, 0xd499, 0xd586,
+ 0xd73a, 0xd818, 0xd7e7, 0xd6d8, 0xd5b7, 0xd654,
+ 0xd79f, 0xd8c2, 0xdb5d, 0xde33, 0xdef4, 0xde64,
+ 0xddc9, 0xdd1f, 0xdc52, 0xdc99, 0xde06, 0xddba,
+ 0xdbdc, 0xdb6a, 0xdbff, 0xddba, 0xe166, 0xe45c,
+ 0xe6c6, 0xea26, 0xeb08, 0xe89c, 0xe69e, 0xe661,
+ 0xe729, 0xe6de, 0xe514, 0xe591, 0xe824, 0xe8e1,
+ 0xe824, 0xe6d3, 0xe51c, 0xe53e, 0xe61d, 0xe4a4,
+ 0xe29b, 0xe2e3, 0xe48b, 0xe557, 0xe516, 0xe469,
+ 0xe2d6, 0xe1aa, 0xe300, 0xe4e8, 0xe569, 0xe558,
+ 0xe46c, 0xe2c2, 0xe1ce, 0xe240, 0xe494, 0xe696,
+ 0xe5cc, 0xe55d, 0xe70c, 0xe825, 0xe900, 0xea3a,
+ 0xea3e, 0xe9cd, 0xe93b, 0xe7e4, 0xe76d, 0xe837,
+ 0xe977, 0xebd5, 0xeea2, 0xf000, 0xeed6, 0xeaf8,
+ 0xe6fe, 0xe70f, 0xebec, 0xf1b7, 0xf523, 0xf71b,
+ 0xf757, 0xf3a4, 0xf031, 0xf2ef, 0xf940, 0xfce9,
+ 0xfbc9, 0xf891, 0xf6b5, 0xf4c2, 0xf177, 0xf076,
+ 0xf280, 0xf5cd, 0xfa41, 0xfd42, 0xfe4c, 0x012e,
+ 0x0384, 0x00d9, 0xfc79, 0xfa4b, 0xf994, 0xf89d,
+ 0xf6b8, 0xf4c4, 0xf35d, 0xf2a4, 0xf3e1, 0xf662,
+ 0xf883, 0xfb98, 0xff52, 0x005e, 0xfe63, 0xfc8b,
+ 0xfd1a, 0xfde1, 0xfb87, 0xf7e8, 0xf5f9, 0xf574,
+ 0xf66a, 0xf783, 0xf73d, 0xf8b1, 0xfb96, 0xfb62,
+ 0xfa07, 0xfad2, 0xfc4b, 0xfec1, 0x0270, 0x0418,
+ 0x027c, 0xff60, 0xfd49, 0xfdd7, 0xffad, 0x019c,
+ 0x03fe, 0x04dc, 0x02bc, 0x00aa, 0x01c7, 0x052d,
+ 0x084e, 0x09aa, 0x08e1, 0x073a, 0x06c3, 0x0738,
+ 0x0780, 0x0788, 0x066a, 0x04d0, 0x04f8, 0x067a,
+ 0x099b, 0x0ea9, 0x110c, 0x0f30, 0x0d20, 0x0c3e,
+ 0x0cc0, 0x0e2d, 0x0d5b, 0x0ae8, 0x098f, 0x0834,
+ 0x05e9, 0x03da, 0x04d3, 0x0a57, 0x0e8d, 0x0d2b,
+ 0x0bce, 0x0d6a, 0x0d7e, 0x0b85, 0x0c4e, 0x0ffe,
+ 0x103a, 0x0b5f, 0x06ce, 0x0436, 0x03bc, 0x082a,
+ 0x0e67, 0x10bf, 0x0f8f, 0x0d17, 0x0b68, 0x0bbf,
+ 0x0cd7, 0x0e7d, 0x103d, 0x110e, 0x12cf, 0x1430,
+ 0x1217, 0x0fa4, 0x0e49, 0x0b80, 0x0945, 0x0954,
+ 0x09fb, 0x0bf7, 0x110b, 0x17b0, 0x1b6f, 0x1a93,
+ 0x196e, 0x18fa, 0x14d7, 0x0ea6, 0x0c02, 0x0dd2,
+ 0x1135, 0x11ee, 0x0fc5, 0x0f8e, 0x1133, 0x1114,
+ 0x1098, 0x10e1, 0x102b, 0x0e76, 0x0c00, 0x09de,
+ 0x09ef, 0x09a0, 0x0759, 0x06ff, 0x08f9, 0x0a22,
+ 0x0a38, 0x0982, 0x0982, 0x0c67, 0x0ed9, 0x0e38,
+ 0x0e0f, 0x0ee1, 0x0df3, 0x0c5b, 0x0b1c, 0x0997,
+ 0x0985, 0x0af9, 0x0a88, 0x0803, 0x0627, 0x04f8,
+ 0x04b9, 0x07f3, 0x0df0, 0x12be, 0x1325, 0x0eed,
+ 0x0a90, 0x09cb, 0x0b4e, 0x0d67, 0x0e30, 0x0cdf,
+ 0x0d08, 0x0e06, 0x0c23, 0x0b3d, 0x0f31, 0x15cf,
+ 0x1b7d, 0x1bfd, 0x1862, 0x1604, 0x150b, 0x1588,
+ 0x1787, 0x1701, 0x153a, 0x14b9, 0x12d8, 0x10c9,
+ 0x10e9, 0x1300, 0x1687, 0x172c, 0x14f5, 0x1413,
+ 0x111c, 0x0d7e, 0x0fa2, 0x1242, 0x10f1, 0x0e6f,
+ 0x0bc8, 0x0cb9, 0x1166, 0x1404, 0x153e, 0x1680,
+ 0x170c, 0x1750, 0x135b, 0x0d46, 0x0dab, 0x1147,
+ 0x1122, 0x0d9d, 0x094f, 0x0815, 0x097a, 0x0ac4,
+ 0x0dc8, 0x1027, 0x1010, 0x11ea, 0x131e, 0x0fe5,
+ 0x0b8b, 0x089c, 0x09af, 0x0dbe, 0x109a, 0x1465,
+ 0x16a6, 0x1216, 0x0d52, 0x0ba8, 0x0998, 0x0a0e,
+ 0x0d37, 0x0f6a, 0x103a, 0x0edc, 0x0dae, 0x0eb0,
+ 0x0e8b, 0x0e5e, 0x0fdb, 0x0fb7, 0x0db7, 0x0a3a,
+ 0x0534, 0x01b1, 0x0113, 0x03ee, 0x09f6, 0x1008,
+ 0x14bf, 0x1568, 0x1157, 0x0f87, 0x0f62, 0x0b34,
+ 0x07eb, 0x0827, 0x081b, 0x093c, 0x0b53, 0x0b53,
+ 0x0a2a, 0x0956, 0x0b00, 0x0e8a, 0x0ec0, 0x0d4b,
+ 0x0e1f, 0x0e36, 0x0dc5, 0x0ee5, 0x0e65, 0x0da5,
+ 0x1045, 0x11f9, 0x0ffe, 0x0e3b, 0x0e3a, 0x0e70,
+ 0x0e91, 0x0fe6, 0x13ca, 0x182e, 0x1992, 0x17f3,
+ 0x1466, 0x10a6, 0x1013, 0x12b3, 0x1640, 0x18cb,
+ 0x1755, 0x1379, 0x11b6, 0x11ed, 0x14ed, 0x19a4,
+ 0x1960, 0x170e, 0x1993, 0x1bb0, 0x199d, 0x1681,
+ 0x12e0, 0x10ae, 0x1173, 0x12ac, 0x1428, 0x1501,
+ 0x14c6, 0x1884, 0x1f43, 0x2110, 0x1cc7, 0x16bb,
+ 0x11ac, 0x0f19, 0x0ec6, 0x0ea7, 0x0edc, 0x122e,
+ 0x16af, 0x1699, 0x1292, 0x0fde, 0x11f9, 0x18b3,
+ 0x1d4a, 0x1c4b, 0x1b3d, 0x1a75, 0x1727, 0x1381,
+ 0x0f82, 0x0d07, 0x0fa7, 0x1347, 0x15c1, 0x1825,
+ 0x177a, 0x15f3, 0x1656, 0x156e, 0x148f, 0x1463,
+ 0x1216, 0x10e3, 0x11f6, 0x12ce, 0x154d, 0x18e7,
+ 0x1b1c, 0x1bb5, 0x18c1, 0x1343, 0x0f4f, 0x0e7d,
+ 0x1284, 0x197e, 0x1d80, 0x1dc0, 0x1c83, 0x1b08,
+ 0x1984, 0x16b6, 0x1448, 0x132b, 0x0ffc, 0x0c78,
+ 0x0c2b, 0x0d31, 0x0e4d, 0x0e2d, 0x0d0f, 0x1050,
+ 0x15bd, 0x1653, 0x1484, 0x1332, 0x110a, 0x0ece,
+ 0x0bd0, 0x0933, 0x0a65, 0x0bc3, 0x0a9e, 0x0a70,
+ 0x0b32, 0x0cd2, 0x105e, 0x11e3, 0x1038, 0x0d7b,
+ 0x07f3, 0x0090, 0xfad1, 0xf7ba, 0xf8db, 0xfbf3,
+ 0xfcff, 0xfe75, 0xffea, 0xfdb9, 0xfaca, 0xf7eb,
+ 0xf449, 0xf482, 0xf71a, 0xf785, 0xf761, 0xf421,
+ 0xec6b, 0xe94e, 0xeee8, 0xf80d, 0xfe4d, 0xfb29,
+ 0xf032, 0xe792, 0xe545, 0xe5a0, 0xe69a, 0xe8b6,
+ 0xead8, 0xea5c, 0xe735, 0xe38b, 0xe0da, 0xdfb0,
+ 0xdef0, 0xde58, 0xdf6a, 0xe0a5, 0xdfe9, 0xdda5,
+ 0xdb4d, 0xdce9, 0xe393, 0xe9db, 0xec70, 0xea1f,
+ 0xe426, 0xe211, 0xe5bc, 0xe9e6, 0xed08, 0xed39,
+ 0xea18, 0xe7cd, 0xe6b9, 0xe8c5, 0xf01b, 0xf560,
+ 0xf53e, 0xf3c1, 0xf0d6, 0xecf0, 0xe7fa, 0xe181,
+ 0xdffb, 0xe3f8, 0xe781, 0xebe7, 0xf0e0, 0xf3f1,
+ 0xf74b, 0xf91a, 0xf962, 0xfb70, 0xf9a1, 0xf3cb,
+ 0xf443, 0xfab7, 0xffdd, 0x0208, 0x0265, 0x0337,
+ 0x0368, 0x0068, 0xfebd, 0x022f, 0x07d3, 0x0ce9,
+ 0x0f73, 0x0df0, 0x0a03, 0x06bf, 0x05ba, 0x054c,
+ 0x055a, 0x08e1, 0x0c01, 0x0879, 0x0217, 0xfe22,
+ 0xfce0, 0xff4a, 0x044e, 0x092c, 0x0d32, 0x0dfb,
+ 0x0b7c, 0x0b3b, 0x0dc8, 0x0e66, 0x0cc9, 0x0b82,
+ 0x0a72, 0x07d4, 0x0464, 0x0363, 0x0451, 0x03d6,
+ 0x0342, 0x04ec, 0x064e, 0x05e2, 0x06a3, 0x0933,
+ 0x093e, 0x0606, 0x0471, 0x0472, 0x0244, 0x003f,
+ 0x0189, 0x061e, 0x0db0, 0x1236, 0x0dac, 0x05fe,
+ 0x020e, 0x00d8, 0x0144, 0x02c3, 0x0317, 0x00fc,
+ 0xfd9f, 0xfc2b, 0xfcc6, 0xfd60, 0xff4a, 0x0135,
+ 0x0103, 0x032b, 0x069d, 0x04c6, 0x00ff, 0x0126,
+ 0x0478, 0x0779, 0x05d4, 0x00ea, 0xfe46, 0xfe8b,
+ 0x02a9, 0x0985, 0x0b8d, 0x07e4, 0x0337, 0xffe6,
+ 0x015e, 0x052f, 0x0682, 0x08a9, 0x0a87, 0x0849,
+ 0x05ed, 0x0345, 0xfefe, 0xfbe3, 0xf6d6, 0xf231,
+ 0xf43b, 0xf56c, 0xf355, 0xf4cd, 0xf55d, 0xf381,
+ 0xf502, 0xf553, 0xf077, 0xe9bb, 0xe495, 0xe6b3,
+ 0xee64, 0xf20e, 0xf1ed, 0xf31e, 0xf4ba, 0xf519,
+ 0xf44d, 0xf38b, 0xf28e, 0xeee7, 0xe974, 0xe476,
+ 0xe227, 0xe529, 0xe9d8, 0xebd9, 0xec2a, 0xe987,
+ 0xe504, 0xe492, 0xe90f, 0xf01a, 0xf51d, 0xf3a1,
+ 0xf00d, 0xecb5, 0xe7ce, 0xe7f5, 0xed27, 0xedb3,
+ 0xecb8, 0xf18d, 0xf7ee, 0xf911, 0xf3cc, 0xed94,
+ 0xebbf, 0xec83, 0xecda, 0xeb1d, 0xe77c, 0xe5fc,
+ 0xe6b8, 0xe6ec, 0xe7ed, 0xe9a6, 0xeaf5, 0xec4c,
+ 0xebdb, 0xe938, 0xe5b1, 0xe1e6, 0xe0ac, 0xe18f,
+ 0xe164, 0xe310, 0xe883, 0xed28, 0xedb3, 0xec49,
+ 0xec9b, 0xecae, 0xe9a3, 0xe737, 0xe610, 0xe497,
+ 0xe707, 0xeb9b, 0xebae, 0xe8bf, 0xe63a, 0xe53f,
+ 0xe58d, 0xe545, 0xe714, 0xeba7, 0xeca6, 0xe93d,
+ 0xe4e1, 0xe218, 0xe41b, 0xe6b2, 0xe5de, 0xe9a6,
+ 0xf409, 0xfab2, 0xf8d6, 0xf2e1, 0xef24, 0xefd9,
+ 0xf1b3, 0xf1ff, 0xf084, 0xee22, 0xecc1, 0xec87,
+ 0xed1d, 0xf003, 0xf465, 0xf558, 0xf09a, 0xec6a,
+ 0xedeb, 0xeffd, 0xefb8, 0xf090, 0xefc3, 0xe9a1,
+ 0xe24a, 0xde3a, 0xde45, 0xe1c6, 0xe81f, 0xeeb1,
+ 0xefd6, 0xec7c, 0xea5c, 0xe876, 0xe771, 0xe9e8,
+ 0xe965, 0xe4be, 0xe405, 0xe66a, 0xe7bf, 0xe97c,
+ 0xebf2, 0xef0f, 0xf250, 0xf2d5, 0xf103, 0xee87,
+ 0xebe2, 0xec55, 0xf0b5, 0xf504, 0xf687, 0xf17f,
+ 0xe60a, 0xe233, 0xece6, 0xf605, 0xf597, 0xf72e,
+ 0xfb25, 0xf8e7, 0xf535, 0xf5c6, 0xf6d7, 0xf6a7,
+ 0xf646, 0xf44e, 0xf108, 0xefa6, 0xeff5, 0xeffa,
+ 0xf17e, 0xf38b, 0xf334, 0xf401, 0xf657, 0xf667,
+ 0xf50f, 0xef14, 0xe43b, 0xde22, 0xdb1c, 0xd82f,
+ 0xdd0f, 0xe3df, 0xe661, 0xed29, 0xf463, 0xf498,
+ 0xf2d7, 0xeed2, 0xe8b4, 0xe6eb, 0xe8b4, 0xeb4a,
+ 0xec8d, 0xea7b, 0xe7b6, 0xe339, 0xdc32, 0xd93a,
+ 0xdd94, 0xe807, 0xf24a, 0xf32e, 0xee43, 0xeb24,
+ 0xeacc, 0xeef1, 0xf258, 0xeec9, 0xea2d, 0xe82f,
+ 0xe9f9, 0xf04a, 0xf15e, 0xec01, 0xea77, 0xeaf8,
+ 0xeae3, 0xee7c, 0xf3a3, 0xf7c9, 0xfad8, 0xfadd,
+ 0xf832, 0xf41c, 0xf066, 0xeec3, 0xed85, 0xed00,
+ 0xee6c, 0xf132, 0xf707, 0xfdcb, 0x006b, 0xffd1,
+ 0xfdd9, 0xfc34, 0xfded, 0x02bf, 0x08fe, 0x0ba5,
+ 0x0655, 0x00db, 0x019d, 0x0343, 0x030d, 0x020f,
+ 0x006e, 0xff31, 0xfdac, 0xfe21, 0x0447, 0x0944,
+ 0x0602, 0x0154, 0x0260, 0x048f, 0x03b3, 0x0374,
+ 0x02e8, 0xfeed, 0xfe23, 0x0147, 0xffad, 0xfc97,
+ 0xfd82, 0xffff, 0x07f3, 0x12ec, 0x121b, 0x0762,
+ 0x015a, 0x00b1, 0xffb8, 0xffe9, 0x0335, 0x0650,
+ 0x05c5, 0x032b, 0x0179, 0x0039, 0xfddc, 0xfaf5,
+ 0xfa7a, 0xff95, 0x091a, 0x1085, 0x1175, 0x100b,
+ 0x10ba, 0x0f98, 0x0983, 0x02c8, 0xfe75, 0xfd0a,
+ 0x0233, 0x0dca, 0x16cd, 0x17f0, 0x1500, 0x0fce,
+ 0x085b, 0x032b, 0x02fc, 0x070e, 0x0d7e, 0x1018,
+ 0x0b2b, 0x0340, 0xfe0b, 0xfeff, 0x051e, 0x0c94,
+ 0x1507, 0x1b26, 0x1936, 0x139c, 0x10fa, 0x0f8e,
+ 0x0c5b, 0x08d3, 0x0788, 0x0581, 0xfff2, 0xfd6d,
+ 0x00c2, 0x03f9, 0x055a, 0x04bc, 0x00ce, 0xfa74,
+ 0xf41e, 0xf591, 0xfe5a, 0x00bf, 0xfe55, 0x0003,
+ 0xfdc2, 0xf3c4, 0xeb69, 0xec3f, 0xf74e, 0x02aa,
+ 0x067c, 0x077d, 0x08e0, 0x0c75, 0x10dc, 0x0f10,
+ 0x0bb8, 0x09f5, 0x0394, 0x016a, 0x05b2, 0x012d,
+ 0xf923, 0xf9de, 0xfe3b, 0x03a4, 0x095d, 0x0a72,
+ 0x0933, 0x09ba, 0x0b43, 0x0c60, 0x0d78, 0x0ddb,
+ 0x085b, 0xfed6, 0xfb76, 0xfeea, 0x031c, 0x048e,
+ 0x03a5, 0x0675, 0x0b63, 0x0a9f, 0x07bf, 0x06a5,
+ 0x05f4, 0x070b, 0x074b, 0x0501, 0x01d8, 0xfca5,
+ 0xf95e, 0xf9f6, 0xfb38, 0xfec1, 0xfdb7, 0xf55c,
+ 0xf657, 0xfe46, 0xfb7f, 0xf468, 0xf644, 0xff6b,
+ 0x057e, 0x04b7, 0x084f, 0x0f17, 0x0afa, 0x0198,
+ 0xfb2c, 0xf69c, 0xf77c, 0xfacd, 0xffe3, 0x0b64,
+ 0x11eb, 0x0f80, 0x0e17, 0x0b65, 0x080e, 0x0742,
+ 0x02fe, 0x0061, 0x0366, 0x0379, 0x00f7, 0xfdcb,
+ 0xfa56, 0xfd5d, 0x03c0, 0x068c, 0x06a4, 0x0340,
+ 0x0047, 0x01d3, 0xfffa, 0xfae0, 0xfdb7, 0x042a,
+ 0xff0b, 0xf180, 0xec88, 0xf0cc, 0xf5cc, 0xfd4f,
+ 0x0381, 0x022b, 0x00c7, 0x01c6, 0x023e, 0x0505,
+ 0x03b3, 0xfa11, 0xf36b, 0xf0d9, 0xe966, 0xe305,
+ 0xe9cb, 0xf8bc, 0x00b2, 0x0187, 0x04e4, 0x0942,
+ 0x0a01, 0x075a, 0x01e9, 0xff20, 0x0227, 0x042e,
+ 0x007f, 0xfb20, 0xfbe7, 0x0292, 0x0421, 0xfe89,
+ 0xfa9a, 0xfc03, 0x0000, 0xff6b, 0xf965, 0xf7f9,
+ 0xfc1f, 0x008e, 0x0546, 0x0527, 0xfe47, 0xf6dc,
+ 0xef48, 0xe857, 0xe50e, 0xe5f9, 0xeed8, 0xfc64,
+ 0x0407, 0x033f, 0xfeaf, 0xff2e, 0x0373, 0xff0a,
+ 0xf9a9, 0xfd51, 0xfd77, 0xf988, 0xfa27, 0xfc88,
+ 0x0256, 0x05cc, 0xfee6, 0xfbf4, 0x0001, 0xfd84,
+ 0xf715, 0xf28f, 0xf2ed, 0xf9e4, 0xfefe, 0x041b,
+ 0x0cca, 0x0c69, 0x0825, 0x0ce9, 0x0f0f, 0x08eb,
+ 0x0393, 0x008e, 0xfe24, 0xfa42, 0xf8df, 0x0341,
+ 0x1150, 0x15dc, 0x13cc, 0x0ee0, 0x087f, 0x060b,
+ 0x0846, 0x0a1a, 0x0684, 0x008f, 0x0194, 0x0821,
+ 0x0bb3, 0x0a9f, 0x05d9, 0x020b, 0x04de, 0x0802,
+ 0x04c8, 0x02c1, 0x09d4, 0x12f3, 0x117c, 0x08d0,
+ 0x0643, 0x077c, 0x055e, 0x0644, 0x0a91, 0x0a6d,
+ 0x0ab8, 0x1019, 0x1194, 0x0cbf, 0x09e1, 0x0a45,
+ 0x09a0, 0x072d, 0x03fb, 0x03af, 0x0a25, 0x12b1,
+ 0x16b5, 0x17a7, 0x17a6, 0x167a, 0x15e1, 0x1405,
+ 0x0f2a, 0x0d95, 0x0f6d, 0x0bc7, 0x0521, 0x037c,
+ 0x0334, 0x029d, 0x07f0, 0x1048, 0x1229, 0x0c6d,
+ 0x05f1, 0x0344, 0xff32, 0xf61e, 0xf113, 0xf42e,
+ 0xf989, 0x0107, 0x0744, 0x03d8, 0xfb87, 0xf4e2,
+ 0xf0af, 0xf474, 0xfb3b, 0xf802, 0xf0d3, 0xf1d7,
+ 0xfa46, 0x0252, 0x0066, 0xf815, 0xf64c, 0xf656,
+ 0xf2f3, 0xf75f, 0x01df, 0x05a0, 0x02dd, 0xfcb1,
+ 0xf500, 0xf380, 0xf8e4, 0xf9c9, 0xf214, 0xef0d,
+ 0xf6d3, 0xfb4e, 0xfa1a, 0xfe14, 0x0101, 0xfeb6,
+ 0xff7e, 0xfd26, 0xf663, 0xfa61, 0x039a, 0x039a,
+ 0x0034, 0xff40, 0xff86, 0x0184, 0x00cd, 0xfdd2,
+ 0x00af, 0x0590, 0x05fb, 0x0837, 0x0d1c, 0x0d2c,
+ 0x0b29, 0x0a81, 0x05b7, 0xffd5, 0x0031, 0x0285,
+ 0x0493, 0x08c3, 0x092e, 0x056c, 0x078b, 0x0f5c,
+ 0x128a, 0x0c91, 0x0423, 0x02f4, 0x0603, 0x0426,
+ 0x0152, 0x0430, 0x0841, 0x0adf, 0x0ffd, 0x14d1,
+ 0x1328, 0x0f89, 0x0eb6, 0x0afd, 0x0600, 0x0627,
+ 0x03be, 0xfdd7, 0x0063, 0x0654, 0x06c3, 0x0733,
+ 0x04ef, 0xfc9c, 0xf963, 0xfa04, 0xf3f8, 0xeeae,
+ 0xefe3, 0xee29, 0xeb0a, 0xefd4, 0xf759, 0xfb75,
+ 0xfeb9, 0xff59, 0xfe2d, 0x015a, 0x0328, 0xfe05,
+ 0xf9e9, 0xf91f, 0xf786, 0xf6cc, 0xf733, 0xf94f,
+ 0xffc9, 0x055b, 0x04bd, 0xfec3, 0xf317, 0xe726,
+ 0xe6a0, 0xf196, 0xfa7c, 0xf83e, 0xf0ac, 0xebc0,
+ 0xe93a, 0xece2, 0xf952, 0xffce, 0xf9f6, 0xf8db,
+ 0x01bb, 0x0798, 0x064a, 0x01b2, 0xfec3, 0x02d5,
+ 0x07fa, 0x04c2, 0xfda4, 0xfa26, 0xfc1c, 0x03e3,
+ 0x0b8a, 0x0cc7, 0x0ba3, 0x0bf8, 0x0bc8, 0x0a1e,
+ 0x07c8, 0x0814, 0x0bda, 0x0a76, 0xff91, 0xf59d,
+ 0xf70c, 0x016d, 0x0a57, 0x0c4e, 0x0bc0, 0x0d7c,
+ 0x1183, 0x16c6, 0x1981, 0x14c7, 0x0b1e, 0x055a,
+ 0x07ff, 0x0dfc, 0x0d37, 0x01ae, 0xf4e5, 0xf1c2,
+ 0xf4fd, 0xf8a8, 0xff9d, 0x08f3, 0x0f31, 0x1082,
+ 0x0bba, 0x0580, 0x03a0, 0xff50, 0xf628, 0xf263,
+ 0xf58e, 0xf8d1, 0xfa67, 0xfef8, 0x089e, 0x0c73,
+ 0x052f, 0xff68, 0xfe9e, 0xfc1d, 0xf538, 0xe721,
+ 0xdce9, 0xe3de, 0xed82, 0xee59, 0xed96, 0xeb68,
+ 0xebc8, 0xf3ac, 0xf748, 0xf2ee, 0xef6a, 0xee87,
+ 0xee7d, 0xea18, 0xdf01, 0xd6fb, 0xd90b, 0xe177,
+ 0xe745, 0xe8ec, 0xf10f, 0xfa6b, 0xf562, 0xeb76,
+ 0xe7d6, 0xe6ac, 0xeb2a, 0xf4aa, 0xfbf7, 0xffa1,
+ 0xfbcd, 0xf663, 0xfa75, 0xfd70, 0xf7be, 0xf3e7,
+ 0xf65b, 0xfca5, 0x00f5, 0x0065, 0x033b, 0x0909,
+ 0x0a97, 0x09c6, 0x07f1, 0x0a3e, 0x1183, 0x1007,
+ 0x0bce, 0x1035, 0x0d98, 0x045f, 0x0367, 0x00e7,
+ 0xf832, 0xefa5, 0xe7c1, 0xedd3, 0x03a7, 0x1258,
+ 0x1762, 0x1bf2, 0x1ceb, 0x1d7e, 0x1e47, 0x18ac,
+ 0x1194, 0x0c83, 0x07d5, 0x0885, 0x0cfe, 0x0def,
+ 0x0ab4, 0x0551, 0x032e, 0x05e6, 0x05ec, 0x0598,
+ 0x0ac8, 0x0dac, 0x0d2d, 0x10bb, 0x12af, 0x0d33,
+ 0x06c4, 0x0546, 0x08bc, 0x0ba2, 0x0926, 0x05d6,
+ 0x03fe, 0xffe3, 0xfde5, 0x0336, 0x0b83, 0x124d,
+ 0x1536, 0x13e6, 0x12fd, 0x123e, 0x0ad8, 0xfcb2,
+ 0xf029, 0xedef, 0xf6ea, 0x02d7, 0x0c45, 0x11f4,
+ 0x0e88, 0x0431, 0xfdc6, 0xf7a0, 0xeb07, 0xe5c6,
+ 0xf027, 0xfc50, 0x01d8, 0x0297, 0xffd9, 0x00c4,
+ 0x068e, 0x0665, 0x02b5, 0x0521, 0x07f9, 0x05ad,
+ 0x0104, 0xfa00, 0xf2c7, 0xed85, 0xe6d5, 0xe19a,
+ 0xe458, 0xedea, 0xfa5b, 0x03c0, 0x03ab, 0xfd9a,
+ 0xfa13, 0xfafc, 0xfc86, 0xfb9f, 0xfb02, 0xfe19,
+ 0x018c, 0x02ac, 0x02ba, 0x0096, 0xfc46, 0xf82b,
+ 0xf4f2, 0xf47f, 0xf6c0, 0xf849, 0xfa9d, 0xfd98,
+ 0xfc38, 0xf965, 0xf83e, 0xf6a0, 0xfc24, 0x0b74,
+ 0x14cf, 0x1377, 0x10f3, 0x0c14, 0x0230, 0xf75f,
+ 0xec26, 0xe5e2, 0xece4, 0xfa68, 0x03ec, 0x081f,
+ 0x04cc, 0xfcf6, 0xfd65, 0x041b, 0x031d, 0xff2c,
+ 0x0218, 0x0348, 0xfeed, 0xfdd7, 0xfddf, 0xf8de,
+ 0xf2a6, 0xeda0, 0xe93f, 0xe9e4, 0xf3cb, 0x015a,
+ 0x06f9, 0x0596, 0x05a9, 0x0346, 0xff30, 0x02b7,
+ 0x04e6, 0x007a, 0x03a2, 0x0a64, 0x07e3, 0x0256,
+ 0xfdfb, 0xfc69, 0x0450, 0x0f0f, 0x13b6, 0x13bd,
+ 0x0f31, 0x09a5, 0x0797, 0x05d4, 0x0394, 0xff17,
+ 0xf71c, 0xf4e5, 0xfa6e, 0x01a0, 0x09ef, 0x0ce5,
+ 0x072f, 0x0032, 0xf6f2, 0xf07a, 0xf897, 0x02af,
+ 0x030c, 0x0325, 0x0304, 0x0090, 0x0272, 0x02d0,
+ 0xfe79, 0x0002, 0x04b9, 0x027c, 0xfc77, 0xf64c,
+ 0xedb9, 0xe634, 0xe56d, 0xea10, 0xef92, 0xf0b8,
+ 0xebb5, 0xebce, 0xf71f, 0xfea7, 0xfe08, 0x0089,
+ 0x0232, 0xff9b, 0xffac, 0xfc5b, 0xf4de, 0xf4e8,
+ 0xf6ca, 0xf2ca, 0xf1d2, 0xf749, 0xfcb7, 0xfcc5,
+ 0xf762, 0xf1d6, 0xedd6, 0xec88, 0xf0b8, 0xf598,
+ 0xfabb, 0x033f, 0x0660, 0x0316, 0x0180, 0x00ad,
+ 0x04ae, 0x0c63, 0x088d, 0xfebd, 0xf9e8, 0xf2c1,
+ 0xf071, 0xf9ad, 0xffee, 0x072c, 0x16e8, 0x1c1b,
+ 0x1378, 0x0cf6, 0x0814, 0x0245, 0xff7d, 0xfc19,
+ 0xf760, 0xf6b3, 0xf8f2, 0xfbb3, 0x015f, 0x06bb,
+ 0x023a, 0xf5be, 0xebe3, 0xe511, 0xe2f2, 0xef46,
+ 0x01db, 0x09ff, 0x0c4c, 0x0fd3, 0x0f75, 0x0c82,
+ 0x0a56, 0x04ea, 0xfe52, 0xfc27, 0xfbe7, 0xfc60,
+ 0x0172, 0x0876, 0x0b52, 0x0ab3, 0x088a, 0x0489,
+ 0x01a7, 0x0162, 0x00cb, 0xffce, 0xfe5c, 0xf969,
+ 0xf03e, 0xe340, 0xd8a7, 0xdd49, 0xec45, 0xf09c,
+ 0xe78b, 0xdd70, 0xd874, 0xdc40, 0xe4a1, 0xe3c8,
+ 0xdbe9, 0xdba5, 0xe446, 0xf266, 0x04c5, 0x125e,
+ 0x1873, 0x1d8b, 0x1e57, 0x19a2, 0x1752, 0x1402,
+ 0x0c67, 0x06f9, 0xfdeb, 0xebb0, 0xdd06, 0xd9a9,
+ 0xdf9d, 0xef09, 0x0244, 0x0dd7, 0x0a10, 0xfd47,
+ 0xf904, 0xfb4c, 0xf5fb, 0xf2a4, 0xfa36, 0x01e7,
+ 0x06b4, 0x09e6, 0x0c34, 0x140d, 0x17d4, 0x0d20,
+ 0x023b, 0xfec6, 0xfea4, 0x0215, 0x0066, 0xf9c5,
+ 0xfcee, 0x03fe, 0x06a9, 0x0c99, 0x0ed5, 0x04fa,
+ 0xfd5b, 0x02a8, 0x0b7a, 0x0892, 0xfeea, 0x0764,
+ 0x1e3f, 0x25cb, 0x2089, 0x2035, 0x1ec3, 0x1936,
+ 0x159a, 0x0e6f, 0x0358, 0xfcfb, 0xfad9, 0xfc7d,
+ 0x04be, 0x0b8c, 0x0a4a, 0x08cb, 0x0b1e, 0x0a5a,
+ 0x0675, 0x08f0, 0x12b4, 0x1595, 0x096c, 0xfdb5,
+ 0x00d6, 0x07ab, 0x0972, 0x114e, 0x1ea5, 0x2259,
+ 0x1cd8, 0x188f, 0x1733, 0x15ee, 0x12d4, 0x0f0b,
+ 0x0e4c, 0x0ff0, 0x0f80, 0x0b3d, 0x06d8, 0x05c4,
+ 0x020d, 0xf94d, 0xf6b2, 0xfbbc, 0x0111, 0x09fc,
+ 0x12b4, 0x10de, 0x0913, 0x018c, 0xff0e, 0x025d,
+ 0xfa1e, 0xedca, 0xfd38, 0x1499, 0x12ff, 0x0d3c,
+ 0x10a0, 0x0e4f, 0x0945, 0x058a, 0xffc2, 0xfe21,
+ 0x01e2, 0x0722, 0x0a68, 0x056b, 0xfabb, 0xf06c,
+ 0xe9d2, 0xec47, 0xf257, 0xf425, 0xf3d8, 0xee61,
+ 0xe471, 0xdd70, 0xda6a, 0xe31d, 0xf395, 0xf53d,
+ 0xf28e, 0x0062, 0x0c53, 0x051e, 0xf1db, 0xe0f5,
+ 0xe185, 0xed2c, 0xf416, 0xfac7, 0x067c, 0x120a,
+ 0x13b7, 0x05eb, 0xf851, 0xf0cf, 0xe26e, 0xd9fa,
+ 0xdf3a, 0xe049, 0xe4a3, 0xf1ed, 0xf2f2, 0xe8d0,
+ 0xdf2a, 0xd8fe, 0xe0bc, 0xeee5, 0xf4f0, 0xfeb1,
+ 0x0f94, 0x1816, 0x145a, 0x0bd8, 0x06cd, 0x0300,
+ 0xfa2d, 0xf55e, 0xf909, 0xfdbf, 0x0322, 0x0388,
+ 0xfc57, 0xfb2a, 0xfc58, 0xf709, 0xfae0, 0x0844,
+ 0x0a7a, 0x01fd, 0xfa9b, 0xf5af, 0xf0cc, 0xec11,
+ 0xf20f, 0x08dc, 0x1b68, 0x19fa, 0x146d, 0x15bd,
+ 0x15ff, 0x133b, 0x104d, 0x0d11, 0x0bc0, 0x0baf,
+ 0x081d, 0x01e9, 0xff77, 0x0230, 0x01b3, 0xfc85,
+ 0xfe27, 0x03de, 0x0142, 0xfbde, 0xf95e, 0xf74a,
+ 0xfa4f, 0xfd58, 0xf676, 0xedb0, 0xe835, 0xe5c7,
+ 0xef60, 0x0041, 0x0884, 0x0897, 0x065e, 0x012a,
+ 0xfae7, 0xf735, 0xf347, 0xec1f, 0xeb84, 0xf73b,
+ 0x0051, 0xff1e, 0xfacc, 0xf316, 0xeb79, 0xeebf,
+ 0xfb65, 0x0835, 0x0f2f, 0x123a, 0x140d, 0x0b9a,
+ 0xfbe9, 0xf786, 0xf942, 0xf229, 0xe6fb, 0xe000,
+ 0xe160, 0xe96f, 0xf326, 0x01c0, 0x0d9a, 0x092d,
+ 0xff52, 0xfa58, 0xf7bd, 0xfaf1, 0xfe4a, 0xfd6c,
+ 0x046f, 0x0dc0, 0x0a50, 0x0149, 0xfc86, 0xfc8f,
+ 0xfe69, 0xfc09, 0xf617, 0xef0c, 0xe603, 0xe117,
+ 0xe1af, 0xe197, 0xe690, 0xf5e9, 0x0359, 0x02a2,
+ 0xf83f, 0xf5e2, 0x04c6, 0x130c, 0x0e3a, 0x01fd,
+ 0xfc4f, 0xf820, 0xf772, 0xfd71, 0xfc40, 0xf3bb,
+ 0xf235, 0xf48b, 0xf681, 0xfab0, 0xf9b8, 0xf591,
+ 0xfd98, 0x1347, 0x26a2, 0x253d, 0x1118, 0xfe84,
+ 0xf46b, 0xf2f2, 0xfcfd, 0x07e8, 0x0df9, 0x1336,
+ 0x139b, 0x15a9, 0x1dbe, 0x1bb4, 0x133e, 0x1289,
+ 0x1187, 0x11da, 0x1951, 0x1839, 0x0dc7, 0x08ce,
+ 0x0576, 0x01b9, 0x04fb, 0x0342, 0xf3dc, 0xeb62,
+ 0xf054, 0xf0e2, 0xf05c, 0xf458, 0xeea9, 0xe7df,
+ 0xf07a, 0xfe23, 0x0cbe, 0x1aff, 0x1a6b, 0x1211,
+ 0x0db9, 0x02a0, 0xf31d, 0xed7e, 0xed20, 0xe966,
+ 0xe650, 0xe773, 0xe8ef, 0xee45, 0xfc37, 0x035a,
+ 0xfe70, 0xfe4e, 0xfbb3, 0xeb15, 0xe096, 0xe65d,
+ 0xef5a, 0xf1b4, 0xed8c, 0xede8, 0xf1f6, 0xee11,
+ 0xede8, 0xf928, 0xff81, 0xfd60, 0xf9ea, 0xf750,
+ 0xf595, 0xf149, 0xedcc, 0xebcd, 0xe6c5, 0xe9ff,
+ 0xf366, 0xf47d, 0xf8f7, 0xfe72, 0xf702, 0xf676,
+ 0xfdff, 0xf9b7, 0xf2e0, 0xeb1b, 0xde7d, 0xddb2,
+ 0xe5ab, 0xeb49, 0xf22d, 0xf602, 0xf8af, 0xff73,
+ 0x04a5, 0x0cf8, 0x1565, 0x114c, 0x0b3f, 0x0b14,
+ 0x0b93, 0x0d57, 0x0979, 0x0039, 0xfd10, 0xfaab,
+ 0xf75c, 0xfa63, 0xfd41, 0xfb15, 0xf4c3, 0xf40d,
+ 0x0a43, 0x2507, 0x2896, 0x254b, 0x2436, 0x16a9,
+ 0x0a8c, 0x0fc7, 0x157a, 0x0e1f, 0x03f4, 0x0487,
+ 0x0f00, 0x1a68, 0x2328, 0x28b9, 0x2a15, 0x233d,
+ 0x1103, 0x00a3, 0xff8d, 0x04e9, 0x0718, 0x0619,
+ 0x02c7, 0x0117, 0xfea9, 0xfa72, 0x0044, 0x099f,
+ 0x055b, 0xff2c, 0x0242, 0x0263, 0xfb7a, 0xf402,
+ 0xf070, 0xf44b, 0xfa38, 0xfd37, 0x02e6, 0x073d,
+ 0xffe7, 0xf72d, 0xfcd2, 0x06da, 0x02a2, 0xf60d,
+ 0xf240, 0xf77f, 0xfcff, 0xfeb5, 0xfc9f, 0xfb4d,
+ 0xfc6e, 0xfb85, 0xf94f, 0xf8a2, 0xf7da, 0xf85f,
+ 0xfe5f, 0x08b4, 0x0b2e, 0xfcf3, 0xf0ba, 0xf4c6,
+ 0xf303, 0xe524, 0xe28f, 0xeb49, 0xf461, 0xfed8,
+ 0x0343, 0x0008, 0xfd6b, 0xf684, 0xea4b, 0xe05a,
+ 0xd845, 0xd45d, 0xd89d, 0xe32b, 0xf1a4, 0xfed1,
+ 0x0bff, 0x18c8, 0x12c7, 0xfd84, 0xf518, 0xf6bd,
+ 0xf2ae, 0xf0af, 0xf7bc, 0xff3f, 0xfc0a, 0xf33e,
+ 0xf395, 0xf66f, 0xf47c, 0xf7f7, 0xfcef, 0x015e,
+ 0x0f06, 0x17e6, 0x1372, 0x10c9, 0x0e5a, 0x06f6,
+ 0x00f0, 0xfc64, 0xfc0d, 0x01a8, 0x0a26, 0x14b1,
+ 0x1470, 0x08d1, 0x07e3, 0x0cbf, 0x0bfc, 0x1295,
+ 0x1b19, 0x18b8, 0x150c, 0x1385, 0x0e32, 0x0335,
+ 0xf8b6, 0xfc52, 0x071d, 0x0c63, 0x16c6, 0x2094,
+ 0x1af3, 0x140a, 0x0ecf, 0x020e, 0xfc5a, 0x026d,
+ 0x0669, 0x0497, 0xfe90, 0xfbb2, 0x000d, 0xfc4b,
+ 0xed1c, 0xe6da, 0xf0c7, 0xfbf1, 0xfc0a, 0xf7c5,
+ 0xf6ae, 0xf002, 0xe5bd, 0xe6bf, 0xed6e, 0xefe5,
+ 0xf413, 0xfb0a, 0x022b, 0x0ab8, 0x0e53, 0x06f5,
+ 0xfaa5, 0xf457, 0xf90d, 0x0256, 0x071e, 0x052e,
+ 0xff2d, 0xfa45, 0xf6e7, 0xf275, 0xf17d, 0xf2a9,
+ 0xefa4, 0xefe6, 0xf502, 0xf511, 0xf41f, 0xf48f,
+ 0xee23, 0xe50f, 0xe194, 0xe5ec, 0xef77, 0xf1f5,
+ 0xf032, 0xfbae, 0x0b3b, 0x0bad, 0xfee0, 0xeb7c,
+ 0xdad8, 0xd9a4, 0xe898, 0xff55, 0x1091, 0x1134,
+ 0x03cf, 0xf15c, 0xe5a0, 0xe690, 0xea85, 0xef87,
+ 0xf906, 0xfc91, 0xfc4f, 0x0435, 0x0be6, 0x0908,
+ 0xfd7b, 0xf316, 0xf525, 0xfaf1, 0xfc8b, 0x05c9,
+ 0x1056, 0x1032, 0x115d, 0x15af, 0x14c8, 0x11e3,
+ 0x0bac, 0x027d, 0xfe82, 0x0055, 0x0668, 0x0d05,
+ 0x0e2a, 0x0c04, 0x0ad5, 0x11d5, 0x21bc, 0x25f9,
+ 0x1ada, 0x1623, 0x1ab2, 0x2042, 0x2170, 0x13e1,
+ 0x0100, 0xfb52, 0xfb76, 0xf8f7, 0xfc0a, 0x099e,
+ 0x1b6b, 0x2338, 0x1ec0, 0x1d2f, 0x1d50, 0x10c4,
+ 0xfefa, 0xf766, 0xf7e5, 0xf989, 0xfd74, 0x0264,
+ 0x0150, 0xfd87, 0x0258, 0x0a0d, 0x0584, 0xfc53,
+ 0x0141, 0x0da0, 0x0e93, 0x07bb, 0x022e, 0xf99d,
+ 0xf413, 0xf9d2, 0xfc8c, 0xf7a5, 0xfc4d, 0x07d0,
+ 0x0b28, 0x0d2a, 0x13db, 0x14db, 0x1083, 0x0c02,
+ 0x00de, 0xf616, 0xf999, 0xfef1, 0xf92e, 0xefa6,
+ 0xe824, 0xea10, 0xf6f9, 0xfefb, 0x02e6, 0x0a1d,
+ 0x0512, 0xf5d6, 0xf082, 0xefcd, 0xe8ea, 0xdddf,
+ 0xd375, 0xd2d3, 0xddf4, 0xf085, 0x0610, 0x0cea,
+ 0x003b, 0xf5aa, 0xf3fb, 0xf39d, 0xf27e, 0xecae,
+ 0xe755, 0xeaef, 0xeed6, 0xec18, 0xe807, 0xe739,
+ 0xea2f, 0xef8e, 0xfa6f, 0x09b1, 0x1027, 0x0aa2,
+ 0x01a3, 0xfaf0, 0xfad0, 0xfb33, 0xf5f6, 0xf29a,
+ 0xef37, 0xebaa, 0xf635, 0x0777, 0x101d, 0x1330,
+ 0x0fcc, 0x09e9, 0x0ccb, 0x1154, 0x13ae, 0x1aee,
+ 0x207b, 0x1d56, 0x15c4, 0x1127, 0x125a, 0x1034,
+ 0x0b22, 0x10b5, 0x16ec, 0x0e65, 0x0613, 0x0ae4,
+ 0x0f5a, 0x0a45, 0x0721, 0x0ab1, 0x0ace, 0x0a3e,
+ 0x0dcb, 0x0a11, 0x032b, 0x0412, 0x0059, 0xf4e4,
+ 0xef26, 0xf0bb, 0xf83c, 0x009e, 0xffab, 0xfc97,
+ 0x0227, 0x0953, 0x0874, 0x0276, 0x03f8, 0x0e2e,
+ 0x11dc, 0x0a3f, 0xff93, 0xf7fb, 0xf688, 0xf8c6,
+ 0xfda5, 0x0520, 0x060c, 0x0102, 0x00c2, 0x0185,
+ 0xfe17, 0xfaaa, 0xfb19, 0x01cf, 0x0801, 0x0814,
+ 0x08b9, 0x05ea, 0xfca3, 0xfc3d, 0x04b3, 0x084c,
+ 0x0614, 0xfea9, 0xf4b3, 0xf08c, 0xf0f0, 0xf163,
+ 0xf35a, 0xf842, 0xfeef, 0x0136, 0xfa30, 0xf129,
+ 0xf11c, 0xf5bc, 0xf1e6, 0xeb44, 0xec98, 0xec9e,
+ 0xed96, 0xf8ae, 0xf890, 0xe892, 0xe3a2, 0xe746,
+ 0xe510, 0xdfdb, 0xd510, 0xcbf3, 0xd2bc, 0xe100,
+ 0xec55, 0xf2ba, 0xf492, 0xf9fc, 0x00cb, 0x019c,
+ 0x0063, 0xf9c0, 0xee90, 0xed92, 0xf298, 0xf0bd,
+ 0xe8f8, 0xdc5b, 0xd1db, 0xd800, 0xebb4, 0xfb46,
+ 0x02f3, 0x0e5c, 0x1a18, 0x1932, 0x1683, 0x1969,
+ 0x1455, 0x0e3f, 0x0fa9, 0x0801, 0xfa2c, 0xf5e2,
+ 0xf569, 0xf752, 0x015f, 0x0d74, 0x13fa, 0x102a,
+ 0x0458, 0xfa9c, 0xf710, 0xfcbe, 0x083d, 0x0938,
+ 0x019e, 0x0013, 0xffcd, 0xfaf9, 0xf6a0, 0xf803,
+ 0x0318, 0x0b0a, 0x0233, 0xf816, 0xf5db, 0xf342,
+ 0xf524, 0xf6b3, 0xee70, 0xf0f8, 0x04bb, 0x1102,
+ 0x10a0, 0x0ccc, 0x080d, 0x056f, 0x02ba, 0x0140,
+ 0x0495, 0x0139, 0xf856, 0xf9ff, 0x004c, 0x00d6,
+ 0xfd13, 0xf494, 0xedef, 0xf014, 0xf906, 0x07e7,
+ 0x1102, 0x0b0c, 0x05c1, 0x075f, 0x0654, 0x0405,
+ 0xff4b, 0xf6f9, 0xf5a1, 0xfb27, 0x003f, 0x082b,
+ 0x11d0, 0x0fbd, 0xfeeb, 0xf2eb, 0xf4d1, 0xf6b8,
+ 0xfb47, 0x0834, 0x0c0e, 0x0b0c, 0x14e2, 0x1863,
+ 0x0bd1, 0xfb20, 0xeba5, 0xe7f8, 0xf2f0, 0xfa05,
+ 0xf412, 0xe649, 0xde18, 0xe56d, 0xece1, 0xed09,
+ 0xf2c9, 0xf668, 0xf3bc, 0xfcae, 0x0b5a, 0x0dc4,
+ 0x0813, 0x0423, 0x08b7, 0x12b7, 0x1222, 0x0c4e,
+ 0x161d, 0x22e7, 0x1a9d, 0x0abe, 0x05d2, 0x03bc,
+ 0x0201, 0x04a4, 0x054b, 0x0a6a, 0x17fa, 0x1b30,
+ 0x158e, 0x1635, 0x155e, 0x1513, 0x2023, 0x27e6,
+ 0x2247, 0x1992, 0x161f, 0x1afc, 0x2020, 0x1c76,
+ 0x1726, 0x122c, 0x098c, 0x06d2, 0x0d9d, 0x134e,
+ 0x1267, 0x0e60, 0x0e53, 0x148e, 0x1b71, 0x1ae1,
+ 0x0bb4, 0xf8d3, 0xf706, 0xfc17, 0xf806, 0xfae4,
+ 0x081a, 0x0e3c, 0x12d9, 0x1b10, 0x1936, 0x100b,
+ 0x0b12, 0x09df, 0x0ef8, 0x196b, 0x1ba1, 0x11b5,
+ 0x04cd, 0xfa8f, 0xf685, 0xfa70, 0xfed1, 0xfcb1,
+ 0xf7ad, 0xf41d, 0xf2cd, 0xf5e9, 0xfb3c, 0xfcf1,
+ 0xfca0, 0x00c8, 0x0a64, 0x0f78, 0x0683, 0xfbb5,
+ 0xfe3e, 0x037d, 0x02bf, 0x059b, 0x0938, 0x02ac,
+ 0xf71d, 0xef78, 0xec94, 0xefdb, 0xfb7d, 0x0499,
+ 0xfdb5, 0xf31f, 0xf1c1, 0xec68, 0xe4b4, 0xe9a3,
+ 0xf0bc, 0xf1e1, 0xf247, 0xee2a, 0xe5c2, 0xd8f2,
+ 0xcc0f, 0xd525, 0xeb93, 0xf3d3, 0xf895, 0xfcbc,
+ 0xf101, 0xe5ac, 0xe53b, 0xe605, 0xeaf0, 0xeedc,
+ 0xebb2, 0xeb14, 0xecb0, 0xf282, 0x03ac, 0x12e4,
+ 0x1669, 0x155b, 0x139f, 0x0f9f, 0x0668, 0xfe6f,
+ 0xfd80, 0xf810, 0xf2ad, 0xfbed, 0x03fb, 0x0166,
+ 0x016f, 0x04c7, 0x0b2b, 0x149c, 0x159a, 0x1085,
+ 0x0f48, 0x106f, 0x11c4, 0x102e, 0x0c19, 0x0a20,
+ 0x0786, 0x0506, 0x02df, 0xfd77, 0x005b, 0x0b85,
+ 0x0d60, 0x0e7d, 0x16a9, 0x16c2, 0x1336, 0x1490,
+ 0x0f13, 0x00b8, 0xf1f5, 0xe932, 0xeb56, 0xf5c0,
+ 0x0505, 0x1017, 0x0c4f, 0x09c6, 0x12d4, 0x12fc,
+ 0x0987, 0x0636, 0x0829, 0x10af, 0x1a54, 0x14c7,
+ 0x06be, 0xfddd, 0xfa15, 0xfbfe, 0xfee6, 0xfbc7,
+ 0xf50d, 0xeedc, 0xef8c, 0xf6f8, 0xfa28, 0xf9ec,
+ 0xfc0f, 0xfbe5, 0xf675, 0xef4e, 0xf095, 0xfb10,
+ 0xfe86, 0xff57, 0x0a07, 0x0e5e, 0x04ad, 0xf681,
+ 0xe89f, 0xe8ae, 0xf438, 0xf7e9, 0xf7bb, 0xf1a6,
+ 0xe343, 0xe5f7, 0xf31e, 0xf412, 0xf9e7, 0x055b,
+ 0x02ae, 0xf7b7, 0xec01, 0xe40f, 0xe0be, 0xd7c0,
+ 0xd4a7, 0xe1b0, 0xed81, 0xf499, 0xf8ea, 0xf659,
+ 0xf77c, 0xf992, 0xf3b8, 0xf1c3, 0xf290, 0xeec4,
+ 0xedf0, 0xee32, 0xf03b, 0xfec1, 0x118a, 0x1835,
+ 0x1470, 0x151c, 0x1c74, 0x1c90, 0x17e6, 0x1769,
+ 0x1167, 0x06ee, 0x0335, 0x01bc, 0xff49, 0xff7a,
+ 0x0393, 0x0775, 0x04f7, 0x0aad, 0x1fa4, 0x25cb,
+ 0x1bd3, 0x2048, 0x2a4f, 0x27b9, 0x2291, 0x1f07,
+ 0x169f, 0x084a, 0xfb03, 0xf5a1, 0xf43c, 0xf666,
+ 0xfc25, 0xfd23, 0x02d7, 0x152f, 0x207a, 0x1c8e,
+ 0x0f7b, 0xfd6f, 0xf854, 0x038e, 0x0a0b, 0x07af,
+ 0x00c3, 0xf62b, 0xf507, 0xfe10, 0xff6d, 0xf902,
+ 0xf822, 0xfc76, 0xfe7e, 0x0004, 0x059b, 0x0a79,
+ 0x0a4d, 0x0a97, 0x0c24, 0x06d9, 0xfd45, 0xf9f1,
+ 0xf80d, 0xf02a, 0xec8f, 0xf298, 0xf86c, 0xf743,
+ 0xef2f, 0xeafb, 0xf3d0, 0xfb1f, 0xf75c, 0xf356,
+ 0xf2c0, 0xf883, 0x060c, 0x0bef, 0x072b, 0x0519,
+ 0x05bd, 0x03a7, 0xfeef, 0xf8b7, 0xf323, 0xefc2,
+ 0xeebc, 0xebb2, 0xeab5, 0xf992, 0x08ad, 0x0323,
+ 0xfde4, 0x02f8, 0xfe60, 0xedf8, 0xdbad, 0xd7b4,
+ 0xeb32, 0xfacb, 0xfba7, 0x0216, 0x0513, 0xfc4a,
+ 0xfbaf, 0x01f2, 0xfe9d, 0xf4b7, 0xf07a, 0xf0ed,
+ 0xeb42, 0xe760, 0xf28f, 0x0186, 0x07ca, 0x03b1,
+ 0xfe48, 0x093e, 0x170e, 0x15d2, 0x19bb, 0x216e,
+ 0x1a82, 0x1445, 0x12de, 0x0d17, 0x0a06, 0x054c,
+ 0xffc4, 0x052b, 0x0a32, 0x094a, 0x0ab7, 0x0baf,
+ 0x0ede, 0x1536, 0x1816, 0x1ce3, 0x229e, 0x207c,
+ 0x1931, 0x1070, 0x0948, 0x0023, 0xed32, 0xe26e,
+ 0xeeeb, 0xfd82, 0x02b9, 0x09ea, 0x0ea4, 0x05da,
+ 0xfbeb, 0x022f, 0x0ea0, 0x1210, 0x12db, 0x1112,
+ 0x06d1, 0x012e, 0x0340, 0xff84, 0xf9c5, 0xfae0,
+ 0xfda9, 0xfe33, 0xfffb, 0x0322, 0x020f, 0xfed3,
+ 0x00a9, 0x042a, 0x0733, 0x0a45, 0x04ac, 0xfbc2,
+ 0xfbb3, 0xf7be, 0xe98c, 0xe3f3, 0xed97, 0xfa51,
+ 0xff17, 0xfb50, 0xf88f, 0xf990, 0xf600, 0xed2f,
+ 0xe892, 0xed17, 0xf5e2, 0xfe66, 0x0742, 0x0bf9,
+ 0x0633, 0xfb40, 0xf385, 0xecba, 0xe539, 0xe662,
+ 0xece7, 0xe8fd, 0xe952, 0xfe22, 0x08ad, 0xfc9f,
+ 0xf72f, 0xf60e, 0xeed8, 0xf388, 0xfc6f, 0xf7aa,
+ 0xf4d5, 0xfb68, 0xff6c, 0xfffd, 0xfe54, 0xf821,
+ 0xf257, 0xf488, 0xfd28, 0xfd4d, 0xecec, 0xdd1e,
+ 0xdf4f, 0xee08, 0xfcbe, 0x0508, 0x02de, 0xfa88,
+ 0xf8d7, 0xfef1, 0x03a2, 0x07b8, 0x0da4, 0x120f,
+ 0x18f8, 0x235a, 0x2594, 0x1d20, 0x14ff, 0x125c,
+ 0x12e8, 0x15e9, 0x1724, 0x0f73, 0x04ea, 0x0069,
+ 0xfcc0, 0xfd39, 0x07fe, 0x0b31, 0x040b, 0x09f5,
+ 0x16cf, 0x16d0, 0x107b, 0x0825, 0xfd2d, 0xfd24,
+ 0x0818, 0x0c15, 0x06d9, 0x0347, 0x02ee, 0x0282,
+ 0x0483, 0x0a84, 0x0f1c, 0x0bf8, 0x01bb, 0xfa32,
+ 0xfc7d, 0x0386, 0x09b8, 0x0bee, 0x0518, 0xfa4d,
+ 0xf3f1, 0xee46, 0xe9bb, 0xeea4, 0xfa8d, 0x0656,
+ 0x118f, 0x18c7, 0x10d8, 0xfa7b, 0xec61, 0xf0b8,
+ 0xf6a2, 0xfa1c, 0x02c4, 0x03fd, 0xf705, 0xeca6,
+ 0xeb72, 0xebc4, 0xec17, 0xed5c, 0xf05f, 0xf789,
+ 0xfdd6, 0xfc04, 0xf5ac, 0xf123, 0xf247, 0xfc72,
+ 0x056f, 0x0299, 0x002b, 0x00f6, 0xf613, 0xe9a4,
+ 0xe9aa, 0xebad, 0xf0d5, 0xfdb7, 0x0392, 0x0452,
+ 0x0b51, 0x0d56, 0x0614, 0x014c, 0xffb0, 0xfeff,
+ 0x011b, 0x00df, 0xfadf, 0xf466, 0xf262, 0xf7a4,
+ 0x03b6, 0x0b89, 0x03e8, 0xf494, 0xeb1f, 0xe971,
+ 0xf5f2, 0x12c5, 0x225d, 0x1363, 0x04c0, 0x07ac,
+ 0x07b9, 0x0239, 0x02f9, 0x04af, 0x0797, 0x137b,
+ 0x1f93, 0x220e, 0x1e0d, 0x1849, 0x15c5, 0x19ac,
+ 0x1fba, 0x231d, 0x2201, 0x1b1a, 0x1068, 0x06f9,
+ 0x013e, 0xffee, 0x04f2, 0x0b4c, 0x0b51, 0x0cdb,
+ 0x1626, 0x1981, 0x115d, 0x067c, 0xfd8a, 0xff50,
+ 0x0de9, 0x1699, 0x0de8, 0xfc37, 0xf2b0, 0xfcc8,
+ 0x0d69, 0x1597, 0x1786, 0x0ed3, 0xffe2, 0xffb0,
+ 0x08c8, 0x08dc, 0x0151, 0xf76a, 0xf102, 0xf0cb,
+ 0xf200, 0xf796, 0xfbc2, 0xf3b5, 0xef90, 0xf7db,
+ 0xfd06, 0xff98, 0x0215, 0xfb67, 0xf547, 0xfe82,
+ 0x0d97, 0x0e4b, 0xfd24, 0xebc7, 0xe67a, 0xea4b,
+ 0xf110, 0xef2d, 0xe55b, 0xe882, 0xf72d, 0xfcdb,
+ 0xfa9b, 0xf846, 0xf2fb, 0xeb19, 0xe7c9, 0xef59,
+ 0xf9d1, 0xf7be, 0xec97, 0xe4a5, 0xe3ac, 0xeb8e,
+ 0xf217, 0xe7d3, 0xdb7b, 0xe6e4, 0xff9b, 0x08ce,
+ 0x0280, 0x000a, 0x0396, 0x05d9, 0x06cf, 0x0335,
+ 0xfb0b, 0xf608, 0xf098, 0xe968, 0xec34, 0xf4b8,
+ 0xf56f, 0xecd2, 0xdb75, 0xd355, 0xee34, 0x114d,
+ 0x1162, 0x01e4, 0x02c1, 0x0626, 0x00b4, 0xfe79,
+ 0x0187, 0x02dd, 0x00b4, 0xfeff, 0x03fd, 0x0d80,
+ 0x129d, 0x0f7b, 0x06fa, 0x0346, 0x0a5b, 0x1175,
+ 0x0f2b, 0x06eb, 0xfe61, 0xfc1b, 0x01c9, 0x065a,
+ 0x018f, 0xf5d6, 0xf326, 0x0202, 0x0e13, 0x0c32,
+ 0x0b5a, 0x095a, 0x002e, 0xff36, 0x05fa, 0x09d9,
+ 0x0daa, 0x0788, 0xf307, 0xec6e, 0xffb0, 0x1374,
+ 0x1353, 0x0325, 0xf3de, 0xf218, 0xfb35, 0x0364,
+ 0x010c, 0xf7f5, 0xf59e, 0xfb65, 0xfd46, 0xf6e8,
+ 0xf14a, 0xf117, 0xed39, 0xe602, 0xe907, 0xf04d,
+ 0xef2c, 0xf08e, 0xfaf0, 0x035d, 0x0684, 0x06d9,
+ 0x0571, 0x02a1, 0xfa05, 0xee6d, 0xe9d6, 0xec00,
+ 0xedef, 0xea95, 0xe5b4, 0xeb52, 0xf75d, 0xfa85,
+ 0xf68e, 0xf12a, 0xe858, 0xe0f0, 0xe21e, 0xec28,
+ 0xf680, 0xf5bb, 0xf0c3, 0xf33b, 0xf15b, 0xe5ff,
+ 0xe130, 0xe0be, 0xdb81, 0xe07f, 0xf020, 0xf2ba,
+ 0xf052, 0xfe4f, 0x0b0f, 0x0872, 0x06d3, 0x0567,
+ 0xfaee, 0xf16e, 0xeaf6, 0xe65a, 0xe939, 0xe6c5,
+ 0xdc29, 0xe15d, 0xf3aa, 0x0026, 0x0cb8, 0x1645,
+ 0x0eab, 0x0223, 0xfbc8, 0xf5c6, 0xf68b, 0xfefe,
+ 0xffcd, 0xfef5, 0x07bc, 0x0abe, 0x0298, 0xff0a,
+ 0xff59, 0xfaba, 0xf637, 0xf8de, 0x039a, 0x0e52,
+ 0x0d97, 0x04ff, 0x0005, 0x003b, 0xfed8, 0xf628,
+ 0xeecb, 0xf637, 0x051d, 0x0db1, 0x0e74, 0x0627,
+ 0xf74e, 0xee4b, 0xf383, 0x036e, 0x0f3d, 0x0ecb,
+ 0x0d3e, 0x0e5a, 0x0c59, 0x0f43, 0x164c, 0x0f99,
+ 0xfd6f, 0xf3d2, 0xfa44, 0x06fa, 0x0a3f, 0x0201,
+ 0xfa33, 0xf511, 0xeedb, 0xee87, 0xf896, 0x045f,
+ 0x07e3, 0x010a, 0xf771, 0xf453, 0xf5f8, 0xf801,
+ 0xfbb3, 0xfc04, 0xf858, 0x0022, 0x1097, 0x1364,
+ 0x0bc6, 0x0a3e, 0x0c04, 0x0b02, 0x0783, 0x028b,
+ 0xfe6f, 0xf8cc, 0xf236, 0xf2a5, 0xf8a7, 0xfe0f,
+ 0xfde2, 0xf09f, 0xe337, 0xec49, 0xfe8b, 0x0142,
+ 0xfc9d, 0xff73, 0x05ef, 0x0c83, 0x129e, 0x0ee8,
+ 0xff48, 0xef55, 0xe292, 0xdae9, 0xe22b, 0xf278,
+ 0x0084, 0x0df8, 0x13b3, 0x0f5c, 0x0f50, 0x0c01,
+ 0xfa8b, 0xec3b, 0xe860, 0xecd4, 0xfd9a, 0x0447,
+ 0xf357, 0xef39, 0x0461, 0x0f1b, 0x098f, 0x0a70,
+ 0x0e58, 0x0cca, 0x0f50, 0x1346, 0x0cf3, 0x03c5,
+ 0x0006, 0xfbec, 0xf8a8, 0xfb80, 0xfd53, 0xf780,
+ 0xf071, 0xf229, 0xfcbf, 0x05fd, 0x083d, 0x0896,
+ 0x0a95, 0x0ab5, 0x073c, 0x04ee, 0x0a57, 0x189c,
+ 0x245b, 0x1ff7, 0x13bd, 0x0f32, 0x0c97, 0x0857,
+ 0x0a0b, 0x0a60, 0x0794, 0x0d42, 0x10d0, 0x06a0,
+ 0xfdac, 0x02bc, 0x141a, 0x2648, 0x2c3d, 0x29d1,
+ 0x23a0, 0x14ee, 0x052b, 0xfd9d, 0xfeb3, 0x06fb,
+ 0x0b76, 0x08be, 0x0d43, 0x1a51, 0x21f3, 0x19fb,
+ 0x05cf, 0xf959, 0xfc4e, 0x0288, 0x04d3, 0xfd24,
+ 0xf15b, 0xf5d3, 0x033f, 0x0a44, 0x112c, 0x1232,
+ 0x0a45, 0x0930, 0x0ac3, 0x089d, 0x0bfe, 0x0f14,
+ 0x0cad, 0x0b70, 0x0688, 0xf86c, 0xe572, 0xd7a5,
+ 0xd961, 0xe3ec, 0xed14, 0xf59c, 0xf512, 0xe9f4,
+ 0xe768, 0xf057, 0xf7d8, 0xfd2f, 0x0470, 0x0a8e,
+ 0x07c1, 0xfa45, 0xe944, 0xdad2, 0xd902, 0xe7f7,
+ 0xf426, 0xf851, 0x0630, 0x13c4, 0x0de7, 0xfe0e,
+ 0xf16f, 0xf333, 0x0416, 0x075e, 0xfa56, 0xfeb9,
+ 0x0aea, 0x03fd, 0xff0a, 0x0879, 0x0ab1, 0x056c,
+ 0x02da, 0xfdcc, 0xf9d7, 0xfd04, 0xfe29, 0xfa9e,
+ 0xfd7a, 0x06e0, 0x07fe, 0xfc8a, 0xef1f, 0xe5df,
+ 0xe516, 0xeff9, 0xfbaa, 0x0174, 0x0765, 0x0a1c,
+ 0x055c, 0x004d, 0x01b5, 0x0b05, 0x113b, 0x0b16,
+ 0x067a, 0x096c, 0x0a31, 0x0be6, 0x0c18, 0x0433,
+ 0x02e9, 0x0dbb, 0x1706, 0x16f0, 0x0a4f, 0xfa5c,
+ 0xf8ed, 0x084e, 0x1eaf, 0x2aa4, 0x2423, 0x1bfe,
+ 0x1710, 0x0f63, 0x0c52, 0x02c4, 0xec03, 0xe4e3,
+ 0xf306, 0x033b, 0x0ecf, 0x0c0d, 0x01a1, 0x02a7,
+ 0x05d8, 0x08ef, 0x1254, 0x0e5e, 0xffc1, 0xfc20,
+ 0xf9e4, 0xf6cd, 0xfd82, 0x007f, 0xfa5d, 0xf70f,
+ 0xf796, 0xfc79, 0x0557, 0x0928, 0x07ed, 0x05b6,
+ 0xfd84, 0xf044, 0xe947, 0xebe6, 0xf0d9, 0xf480,
+ 0xf68e, 0xf46a, 0xef1e, 0xe8da, 0xe36e, 0xe5bf,
+ 0xef6b, 0xf823, 0xffa2, 0x024e, 0xf814, 0xeabd,
+ 0xe85c, 0xec05, 0xea25, 0xe452, 0xe7e8, 0xf4ab,
+ 0xf856, 0xf2c3, 0xf299, 0xf051, 0xe460, 0xe271,
+ 0xf3d1, 0x0648, 0x10b7, 0x17c3, 0x1571, 0x08bf,
+ 0x042a, 0x0b7e, 0x0c3c, 0x02b8, 0xfb07, 0xf9f5,
+ 0xfe17, 0x0376, 0x069b, 0x083d, 0x0606, 0xff32,
+ 0xface, 0xfc4d, 0x01fe, 0x05ea, 0xff06, 0xf660,
+ 0xfb44, 0x018a, 0xfb3a, 0xf190, 0xece4, 0xf320,
+ 0x0946, 0x1fe8, 0x269b, 0x2047, 0x128c, 0x06e0,
+ 0x0825, 0x0dca, 0x0c46, 0x08f6, 0x08cc, 0x0906,
+ 0x08f2, 0x08d6, 0x056a, 0xfca3, 0xf572, 0xf707,
+ 0xff3f, 0x0eac, 0x23c7, 0x2dfa, 0x28dc, 0x254a,
+ 0x23f2, 0x1779, 0x07a1, 0x0542, 0x0abe, 0x09c4,
+ 0x0714, 0x0a50, 0x0adc, 0x07bf, 0x0b9f, 0x10ef,
+ 0x0dd2, 0x088f, 0x0581, 0x0132, 0xfc90, 0xf9c8,
+ 0xf9e4, 0xfdb2, 0x0158, 0xfedf, 0xf537, 0xecf1,
+ 0xf15f, 0xfe4f, 0x0787, 0x0d3d, 0x0ccf, 0xfdf6,
+ 0xefb8, 0xf2a2, 0xf7fc, 0xf463, 0xf11d, 0xf1d8,
+ 0xf758, 0xffae, 0xff8d, 0xf85d, 0xf266, 0xec93,
+ 0xeddc, 0xf8b1, 0xfe53, 0xfc3f, 0xf821, 0xf1aa,
+ 0xeee6, 0xef30, 0xea35, 0xe643, 0xe98e, 0xec9a,
+ 0xe942, 0xe3e8, 0xe3ad, 0xe484, 0xe82f, 0xfbd7,
+ 0x0f3c, 0x0fca, 0x1229, 0x1623, 0x075a, 0xfc3d,
+ 0x065c, 0x0f6c, 0x0c08, 0x03a1, 0xfd6d, 0xfa30,
+ 0xf7b0, 0xfe6f, 0x0a26, 0x08a7, 0x03b7, 0x0615,
+ 0x0586, 0x05bc, 0x0709, 0xfe5f, 0xf3bc, 0xee50,
+ 0xeca6, 0xf3d8, 0x00c5, 0x0d85, 0x174a, 0x1802,
+ 0x15df, 0x15c9, 0x11bb, 0x127e, 0x1a22, 0x1590,
+ 0x06b8, 0x02d2, 0x0adf, 0x0cfc, 0x0590, 0x02c9,
+ 0x023e, 0xfbe3, 0xfa59, 0xfa3d, 0xf5d6, 0xfcd9,
+ 0x058b, 0x0363, 0x0ca7, 0x19d6, 0x1490, 0x13d0,
+ 0x20af, 0x2301, 0x18d9, 0x0bd5, 0xfef5, 0xf7dd,
+ 0xf864, 0x017a, 0x0f90, 0x14b0, 0x0eb1, 0x081c,
+ 0x03c9, 0x0032, 0xfd7f, 0xfa7b, 0xf729, 0xf709,
+ 0xfbcb, 0x0000, 0xffc1, 0xfe9b, 0xfc58, 0xf749,
+ 0xf70f, 0xff34, 0x060c, 0x0559, 0x0237, 0x0237,
+ 0x05d3, 0x086f, 0x00cc, 0xeec5, 0xe24e, 0xe68c,
+ 0xf541, 0x00ed, 0x00d5, 0xfada, 0xf885, 0xf7aa,
+ 0xf75f, 0xf76e, 0xf187, 0xedd9, 0xf3dd, 0xf38c,
+ 0xec66, 0xf209, 0xfbd0, 0xf219, 0xdc3a, 0xd4eb,
+ 0xe002, 0xea2f, 0xf0fc, 0x017f, 0x1258, 0x1239,
+ 0x0920, 0x04a1, 0x01cb, 0xfdf2, 0xfef7, 0x013b,
+ 0xfc76, 0xf7ea, 0xf822, 0xf491, 0xf1eb, 0xf820,
+ 0xfe98, 0x000c, 0xfd37, 0xf79b, 0xf859, 0xfe4e,
+ 0xfe93, 0xf917, 0xedc3, 0xe189, 0xe604, 0xf695,
+ 0xff34, 0x02de, 0x064b, 0x0060, 0xf6a7, 0xf620,
+ 0xfd28, 0x0773, 0x0e48, 0x05a2, 0xf5a5, 0xef84,
+ 0xedd8, 0xec17, 0xef93, 0xeffe, 0xee4f, 0xf6c5,
+ 0xfe1f, 0xf9a1, 0xf111, 0xe945, 0xec91, 0xfefd,
+ 0x0d4c, 0x1360, 0x1c98, 0x22df, 0x2046, 0x1b36,
+ 0x17a4, 0x1224, 0x0522, 0xf8ad, 0xf946, 0x011c,
+ 0x07cd, 0x0964, 0x01db, 0xfb55, 0xfbca, 0xfb14,
+ 0xfd5f, 0x03f8, 0x04b3, 0x0354, 0x0382, 0x0303,
+ 0x06bc, 0x0824, 0xff78, 0xf8de, 0xfd90, 0x0b1e,
+ 0x167e, 0x102e, 0x0161, 0xfef6, 0x0589, 0x0d03,
+ 0x115f, 0x07f3, 0xf920, 0xf95a, 0x00ed, 0xff81,
+ 0xfc35, 0xfdcb, 0xfb02, 0xf558, 0xfa79, 0x055f,
+ 0x0685, 0x0165, 0xff24, 0xfc01, 0xf536, 0xeebf,
+ 0xeb1b, 0xebf3, 0xf0d6, 0xf43d, 0xf262, 0xef76,
+ 0xf3de, 0x01a4, 0x0e0a, 0x0dc1, 0x0707, 0x08c6,
+ 0x1234, 0x1561, 0x0d32, 0x0231, 0xff23, 0x05af,
+ 0x0b9d, 0x0906, 0x043d, 0x04ee, 0x0901, 0x0cce,
+ 0x0d42, 0x07d8, 0x03d6, 0x0805, 0x0bd1, 0x0ab3,
+ 0x0c5d, 0x0c4a, 0x022e, 0xfa80, 0xff6e, 0x05bb,
+ 0x05fa, 0x03db, 0xfdde, 0xf78d, 0xff3a, 0x1221,
+ 0x1a46, 0x1151, 0x0647, 0x03de, 0x06c7, 0x07ba,
+ 0x058a, 0x0398, 0x039b, 0x0608, 0x07e3, 0x04a5,
+ 0xff2f, 0xf9d1, 0xf3dc, 0xf5c8, 0x0276, 0x0da1,
+ 0x11ea, 0x1435, 0x19db, 0x232a, 0x25e7, 0x2039,
+ 0x1aae, 0x107c, 0x04e0, 0x0680, 0x080a, 0xfe4b,
+ 0xfcef, 0x0587, 0x0738, 0x0577, 0x06cb, 0x078e,
+ 0x0752, 0x0615, 0x02c6, 0xffb9, 0xff9c, 0x00b7,
+ 0xfd6b, 0xf7a1, 0xf872, 0xfe0e, 0x0179, 0x0571,
+ 0x08e6, 0x0410, 0xfe94, 0x04f1, 0x0c7d, 0x08f4,
+ 0x0538, 0x0694, 0x01ac, 0xf7d9, 0xf68c, 0xff97,
+ 0x070c, 0x05b7, 0x01e3, 0xfc1b, 0xf1f5, 0xf199,
+ 0xfa70, 0xf685, 0xe8fc, 0xe2a4, 0xe884, 0xfba7,
+ 0x0907, 0xff99, 0xf164, 0xe6a7, 0xdcba, 0xe7ea,
+ 0x0139, 0x03a9, 0xf568, 0xf7cd, 0x0a53, 0x1498,
+ 0x0fd0, 0x086b, 0x02be, 0xfdf8, 0xfe10, 0xfe76,
+ 0xfd9e, 0x0163, 0x0195, 0xfaa5, 0xf6e9, 0xf539,
+ 0xf2fe, 0xf4b4, 0xf909, 0xfe3e, 0x028a, 0x050a,
+ 0x07c7, 0x0581, 0xfe77, 0xf9b1, 0xf365, 0xed3f,
+ 0xec28, 0xed78, 0xf9de, 0x0b9a, 0x0b24, 0x0407,
+ 0x05a0, 0x0269, 0xff33, 0x0851, 0x14b7, 0x1b88,
+ 0x14ce, 0x03d1, 0xfc44, 0xfd1f, 0xfc90, 0xfe96,
+ 0xfe0d, 0xf9a9, 0xfcc8, 0x0313, 0x074d, 0x0f47,
+ 0x1277, 0x08e3, 0x02ca, 0x0990, 0x0d4f, 0x09ab,
+ 0x0c58, 0x0e7f, 0x04e3, 0xfee6, 0x026e, 0x01a8,
+ 0xfba1, 0xf3ba, 0xeb95, 0xed6f, 0xfa76, 0x0483,
+ 0xff97, 0xf3ec, 0xf86a, 0x06d9, 0x05ad, 0xfe56,
+ 0xfda0, 0xf61f, 0xed4c, 0xf0ae, 0xf59a, 0xf630,
+ 0xf6ac, 0xf510, 0xf2c8, 0xf3d1, 0xf8e5, 0xfec7,
+ 0xfe11, 0xfa20, 0xfc96, 0xff79, 0xfa05, 0xf026,
+ 0xe6cc, 0xe0f8, 0xe2c7, 0xe899, 0xea76, 0xed6b,
+ 0xf631, 0xf349, 0xe169, 0xde90, 0xedea, 0xf272,
+ 0xe9f4, 0xe4d3, 0xeb2b, 0xfb9b, 0xfe09, 0xea56,
+ 0xe5a7, 0xf708, 0xfd23, 0xfb45, 0x0198, 0x0319,
+ 0xfd7b, 0xfab5, 0xf8de, 0xf878, 0xf803, 0xf1c0,
+ 0xeb92, 0xe762, 0xe3bc, 0xebc4, 0xfab2, 0xfd1d,
+ 0xf85d, 0xf76b, 0xf470, 0xf023, 0xef91, 0xf0f0,
+ 0xf571, 0xfb08, 0xfc6b, 0xfc27, 0xfad0, 0xf6a2,
+ 0xf2ba, 0xee78, 0xeb06, 0xedfd, 0xf33e, 0xf650,
+ 0xfa6e, 0xfef1, 0x034b, 0x0720, 0x0582, 0x0290,
+ 0x04ea, 0x0800, 0x0a5a, 0x0c4b, 0x06d9, 0xfc5b,
+ 0xf837, 0xfd37, 0x0719, 0x105e, 0x142f, 0x1134,
+ 0x06f9, 0xf721, 0xec4e, 0xf513, 0x0ce0, 0x1831,
+ 0x0de4, 0x0535, 0x08cf, 0x0c7a, 0x0b0c, 0x05fe,
+ 0xfd19, 0xf3a6, 0xf0bf, 0xfa7c, 0x08ea, 0x0c56,
+ 0x078e, 0x05b6, 0x0719, 0x09f3, 0x0b0d, 0x07c5,
+ 0x03b4, 0xfe27, 0xf6bf, 0xf11e, 0xeacb, 0xe7d0,
+ 0xf0b1, 0xfe6d, 0x0618, 0x0403, 0xfe4c, 0x024f,
+ 0x0abe, 0x0b7f, 0x0af7, 0x0705, 0xfac4, 0xf55b,
+ 0xfa92, 0x0277, 0x0abc, 0x0979, 0x0116, 0xff8d,
+ 0xfc53, 0xf40c, 0xf3df, 0xf5c9, 0xf5b1, 0x0404,
+ 0x1c0d, 0x1f3b, 0x0a35, 0xfc61, 0xfc73, 0xf7ff,
+ 0xf8ac, 0x0454, 0x05cf, 0x0571, 0x1163, 0x1577,
+ 0x0f58, 0x0c35, 0x064c, 0x02c5, 0x0af3, 0x12d1,
+ 0x11f1, 0x0c1d, 0x060f, 0x02cd, 0x0166, 0x0154,
+ 0xfee5, 0xf7dd, 0xf6d5, 0xfbd5, 0xfaa7, 0xf70f,
+ 0xf44d, 0xed1f, 0xeb68, 0xf6fe, 0x01b5, 0x0069,
+ 0xfcdc, 0xff01, 0xfc4a, 0xf536, 0xf933, 0xff57,
+ 0xfc60, 0x00c0, 0x0f92, 0x1979, 0x1d33, 0x1cfe,
+ 0x183b, 0x116b, 0x07f9, 0xfe91, 0xfa5d, 0xfaa2,
+ 0xfdf0, 0x028c, 0x0727, 0x0a5d, 0x0656, 0xfcb6,
+ 0xf6d7, 0xf6be, 0xfa20, 0xff5e, 0x0660, 0x0d38,
+ 0x0c74, 0x09bc, 0x0f5f, 0x1201, 0x0e50, 0x1056,
+ 0x1184, 0x0dfb, 0x0f4c, 0x117b, 0x11c0, 0x13a7,
+ 0x1182, 0x0b54, 0x0685, 0x0389, 0x0415, 0x0410,
+ 0xfc70, 0xf0ce, 0xe8ef, 0xe9f7, 0xf243, 0xf96d,
+ 0xfa7d, 0xf72d, 0xf96a, 0x0680, 0x1059, 0x1024,
+ 0x0fdd, 0x10e5, 0x10a0, 0x0cdb, 0x02a5, 0xfa93,
+ 0xf6a5, 0xf0e4, 0xf335, 0xfec0, 0x0328, 0xfb7d,
+ 0xed20, 0xe381, 0xe9b9, 0xfda8, 0x13c8, 0x15f6,
+ 0x048c, 0x0498, 0x11d6, 0x0cc6, 0x06be, 0x07dc,
+ 0x0076, 0xff53, 0x018a, 0xf9c2, 0xfec7, 0x0e2a,
+ 0x12ad, 0x14ea, 0x1453, 0x0ebf, 0x0db2, 0x05fb,
+ 0xf88a, 0xf64c, 0xf887, 0xfb3c, 0xff9b, 0xfc37,
+ 0xf6f1, 0xf57b, 0xf2a1, 0xf557, 0xfc57, 0xfd3b,
+ 0xfcf2, 0xfeb5, 0xffe2, 0x005e, 0xfc4e, 0xf5b6,
+ 0xf1b2, 0xf1fd, 0xfd83, 0x0d65, 0x0f6a, 0x0967,
+ 0x08bd, 0x0ac3, 0x0d71, 0x0f34, 0x0c52, 0x095a,
+ 0x068c, 0xfe39, 0xf899, 0xfdcc, 0x025a, 0x00c0,
+ 0x052c, 0x0dbf, 0x0ba8, 0x03c3, 0x02a3, 0x03bd,
+ 0x01ff, 0x02fc, 0x0610, 0x05ec, 0x08ba, 0x1377,
+ 0x1956, 0x10a6, 0x0398, 0xfe79, 0x0266, 0x0827,
+ 0x0995, 0x0ac7, 0x0e09, 0x0db5, 0x0c29, 0x0c32,
+ 0x0714, 0xff4d, 0xfd93, 0xfe3d, 0xfbdd, 0xf7e8,
+ 0xf0d0, 0xe86d, 0xebf0, 0xfb6e, 0x0322, 0xfec5,
+ 0xf83a, 0xf133, 0xf4d1, 0x09df, 0x190b, 0x1799,
+ 0x130d, 0x0dab, 0x092f, 0x0984, 0x0694, 0xfeda,
+ 0xf951, 0xfab1, 0x006b, 0xfb37, 0xea8f, 0xe0c8,
+ 0xe4d4, 0xf9d0, 0x1342, 0x13e3, 0x0968, 0x1048,
+ 0x17ee, 0x121c, 0x0788, 0xfdf5, 0xfa9a, 0xf8da,
+ 0xf7df, 0xfee6, 0xff40, 0xfa76, 0x04ec, 0x0cb5,
+ 0x0924, 0x0c93, 0x0bb4, 0x03f7, 0x03eb, 0xff1e,
+ 0xf850, 0xfddc, 0xff3d, 0xf76b, 0xf303, 0xf0a4,
+ 0xefc8, 0xf1d4, 0xf615, 0xfc3a, 0xfb1a, 0xf04f,
+ 0xe57d, 0xe409, 0xf29b, 0x00fb, 0xfbe5, 0xf392,
+ 0xf3f7, 0xf553, 0xfa89, 0xff22, 0xfdff, 0x029c,
+ 0x0928, 0x0a2e, 0x0d13, 0x0d80, 0x06b0, 0xfe6e,
+ 0xf5ff, 0xf47b, 0xfd21, 0x043b, 0x05b6, 0x00ed,
+ 0xf87d, 0xfc20, 0x0603, 0x014e, 0xfaf5, 0x04f4,
+ 0x0f1e, 0x0b01, 0x06c7, 0x10df, 0x1cf8, 0x17ae,
+ 0x07f9, 0x00ac, 0x0488, 0x0d96, 0x123b, 0x0991,
+ 0xfd61, 0xfa37, 0xfc19, 0x039e, 0x120f, 0x1605,
+ 0x079f, 0xf75e, 0xf237, 0xf62c, 0xfa96, 0xfa47,
+ 0xf5fb, 0xf04d, 0xf5b2, 0x08b7, 0x0b26, 0xf4cd,
+ 0xe88c, 0xf1a3, 0x0106, 0x1047, 0x15b8, 0x0f0d,
+ 0x0901, 0x0760, 0x07e7, 0x054d, 0xfad9, 0xf1c6,
+ 0xed58, 0xe786, 0xe13b, 0xdb69, 0xe213, 0xf946,
+ 0x0127, 0xf715, 0xfdb7, 0x0e1d, 0x10f6, 0x0cb6,
+ 0x0c5b, 0x1497, 0x1a87, 0x104c, 0xffee, 0xed98,
+ 0xdd68, 0xe485, 0xf7e2, 0x02a6, 0x0ba4, 0x09ff,
+ 0xfaec, 0xf5a0, 0xf836, 0xfb37, 0x00c6, 0xfdbb,
+ 0xfbc6, 0x06bc, 0x089f, 0xfd1e, 0xef4c, 0xdf5a,
+ 0xdfe9, 0xf642, 0x0616, 0x092a, 0x09f4, 0x062e,
+ 0xfec8, 0xf87d, 0xf6aa, 0xf871, 0xf5b0, 0xf272,
+ 0xf7b7, 0xfe9e, 0x02f0, 0x0579, 0x0042, 0xf817,
+ 0xf861, 0xfe0d, 0x03ed, 0x0a36, 0x07f2, 0xf956,
+ 0xf2ca, 0xfbe5, 0xfddd, 0xfa08, 0x05a7, 0x10dc,
+ 0x0a77, 0x0566, 0x0a53, 0x0fe8, 0x11ac, 0x0b78,
+ 0x059e, 0x0aee, 0x10b1, 0x1104, 0x0fb6, 0x09d5,
+ 0x0769, 0x0da8, 0x0fbf, 0x0d2c, 0x096e, 0xfeeb,
+ 0xf7d9, 0xfec1, 0x0bc4, 0x1537, 0x10a8, 0xffec,
+ 0xf917, 0x0331, 0x115a, 0x1721, 0x0d60, 0x01a7,
+ 0x05e0, 0x0f1b, 0x0d90, 0x01e7, 0xf521, 0xf408,
+ 0xfaca, 0xfdd2, 0x0514, 0x0d9e, 0x0731, 0xfdcd,
+ 0x017e, 0x0abb, 0x1010, 0x0bc0, 0xfd0f, 0xea99,
+ 0xd86b, 0xcf2c, 0xd927, 0xf077, 0x060d, 0x0fcc,
+ 0x11cb, 0x16a4, 0x187c, 0x1054, 0x06f6, 0x0073,
+ 0xfdee, 0x0258, 0x0655, 0x03eb, 0xf891, 0xe6a6,
+ 0xe3d3, 0xf487, 0xfdc1, 0xfa21, 0xf752, 0xf7c0,
+ 0xff24, 0x099a, 0x080b, 0xfd1f, 0xf555, 0xf2e1,
+ 0xf46c, 0xf83a, 0xfc1c, 0xfe7a, 0xfd2c, 0xf8ea,
+ 0xf56b, 0xf5bb, 0xf645, 0xef7d, 0xe739, 0xe958,
+ 0xf252, 0xf9de, 0xfd36, 0xfa67, 0xf4e4, 0xf2b2,
+ 0xf4cc, 0xf6ca, 0xf416, 0xf378, 0xf9b1, 0xfbe3,
+ 0xfa5a, 0xfc6a, 0xf8fb, 0xf201, 0xf4f6, 0xfde5,
+ 0x0992, 0x1685, 0x1677, 0x0a90, 0x0124, 0xfb86,
+ 0xfbe5, 0x03ef, 0x0896, 0x0553, 0xffaf, 0xfcb1,
+ 0x0056, 0x0442, 0x0194, 0x01ad, 0x06ac, 0x0704,
+ 0x087e, 0x0d5f, 0x04ee, 0xf0f8, 0xe6db, 0xecf4,
+ 0xfc41, 0x074c, 0x0251, 0xf8eb, 0xf897, 0xf915,
+ 0xf8aa, 0xfd4b, 0x011b, 0x0503, 0x0dd4, 0x11c4,
+ 0x0d39, 0x0864, 0x033d, 0xfb15, 0xf64a, 0xfd2a,
+ 0x0aeb, 0x0e78, 0x0464, 0xfb2e, 0xf945, 0xfbc1,
+ 0x00fe, 0x02d7, 0xfbf7, 0xf009, 0xe39a, 0xdd04,
+ 0xe80f, 0x0292, 0x1601, 0x179f, 0x15a5, 0x1a3f,
+ 0x2012, 0x2172, 0x1c65, 0x129a, 0x0ad6, 0x0ae8,
+ 0x11aa, 0x141c, 0x085a, 0xf5ff, 0xe9df, 0xe703,
+ 0xee2f, 0xf98e, 0xfb45, 0xf515, 0xf65a, 0xfeff,
+ 0x02fa, 0x03b2, 0x08eb, 0x0bf1, 0x07db, 0x08ef,
+ 0x101b, 0x0bfc, 0xfba7, 0xeefb, 0xec36, 0xf105,
+ 0xf7e0, 0xf63c, 0xecd3, 0xeaf1, 0xf267, 0xf799,
+ 0xfa29, 0xfa47, 0xf421, 0xf2d4, 0xf8c1, 0xf583,
+ 0xeebf, 0xf3f2, 0xfc7d, 0xff83, 0x00a1, 0x0143,
+ 0xfc39, 0xeeea, 0xee9b, 0x0713, 0x1553, 0x0f6c,
+ 0x1484, 0x1b3a, 0x11f8, 0x0997, 0x019a, 0xf95d,
+ 0x002a, 0x0875, 0x0749, 0x065c, 0x00ef, 0xfd51,
+ 0x0510, 0x0306, 0xf645, 0xf92b, 0x0a9f, 0x19b0,
+ 0x1e17, 0x1732, 0x0e14, 0x06ac, 0xfee7, 0xfd29,
+ 0x03e0, 0x0a11, 0x0911, 0x0707, 0x0d3b, 0x12d6,
+ 0x0ea0, 0x0ba3, 0x0b77, 0x05fd, 0x019b, 0xfff3,
+ 0xfd4d, 0xffb4, 0x0497, 0x03f3, 0xff19, 0xfadc,
+ 0xfd78, 0x0267, 0x018c, 0x062f, 0x0f3e, 0x0a77,
+ 0x02c6, 0x045d, 0xfe37, 0xef30, 0xec6e, 0xfc2c,
+ 0x0e52, 0x1353, 0x15a0, 0x1e93, 0x1d74, 0x1494,
+ 0x14ac, 0x10cb, 0x045c, 0x01e4, 0x080f, 0x0da8,
+ 0x0f5d, 0x0787, 0x01ed, 0x07fa, 0x0634, 0xfa75,
+ 0xf9b7, 0xfc93, 0xf64a, 0xf69e, 0xfeb5, 0xfe74,
+ 0x00f4, 0x0f2a, 0x14bc, 0x0c9c, 0x0530, 0x01d5,
+ 0x0123, 0xfefa, 0xf92b, 0xf848, 0xf877, 0xf075,
+ 0xeb1a, 0xee54, 0xf151, 0xf092, 0xee70, 0xf238,
+ 0xfc16, 0xffa0, 0xfc54, 0xf768, 0xefbe, 0xecca,
+ 0xf17f, 0xf65b, 0xf9ac, 0xf781, 0xf003, 0xeea4,
+ 0xf615, 0x0247, 0x0c14, 0x0a70, 0x041a, 0x008e,
+ 0xfe1e, 0xff60, 0xfc93, 0xf2ce, 0xf271, 0xf5be,
+ 0xf350, 0xfa34, 0x01ed, 0xf9f5, 0xf4a0, 0xfc1c,
+ 0x0352, 0x0794, 0x0d2b, 0x10de, 0x0c9c, 0x0524,
+ 0x037c, 0x02ba, 0x02e4, 0x0ad3, 0x0cd3, 0x025c,
+ 0xfce7, 0xfdcd, 0xf986, 0xf39f, 0xf3fb, 0xf8d7,
+ 0xf9c6, 0xf57c, 0xf5fc, 0xfd64, 0x001c, 0xf78c,
+ 0xeea9, 0xf298, 0xfb4a, 0xfc9f, 0xfac1, 0xf78f,
+ 0xf298, 0xf343, 0xf8a8, 0xfaae, 0xf7f9, 0xf615,
+ 0xf7fc, 0xf6ca, 0xf66e, 0xff8d, 0x024f, 0x00c0,
+ 0x0f30, 0x155d, 0x056f, 0xfc37, 0xf5b2, 0xec42,
+ 0xf5f7, 0x022f, 0xfe50, 0xfd54, 0xffdb, 0xfd70,
+ 0xfb1f, 0xf74b, 0xf486, 0xf3d2, 0xf061, 0xf0ee,
+ 0xf193, 0xebcb, 0xed2a, 0xf404, 0xf585, 0xf78e,
+ 0xf826, 0xf573, 0xf612, 0xf352, 0xec95, 0xe991,
+ 0xe50a, 0xe272, 0xe93c, 0xede8, 0xec21, 0xeea4,
+ 0xf673, 0xfaa6, 0xf633, 0xeea2, 0xeb7b, 0xec16,
+ 0xefae, 0xf391, 0xefe2, 0xe951, 0xea1b, 0xedc3,
+ 0xefcf, 0xf2a8, 0xf080, 0xe7b7, 0xe78f, 0xf682,
+ 0x03e9, 0x010a, 0xf4c6, 0xf26d, 0x0128, 0x0eff,
+ 0x0ac8, 0xfee3, 0xfbb7, 0x0005, 0x032f, 0xffe9,
+ 0xf86e, 0xf64b, 0xfc5e, 0x03ee, 0x09a5, 0x0c7e,
+ 0x080b, 0xfefc, 0xfcec, 0x02ff, 0x0869, 0x0c34,
+ 0x0d64, 0x0779, 0x023f, 0x046f, 0x05b9, 0x02d0,
+ 0x04ed, 0x1159, 0x1cc3, 0x1a76, 0x16fd, 0x1e0a,
+ 0x1f86, 0x1573, 0x0bb1, 0x0450, 0x01b2, 0x0623,
+ 0x0c97, 0x1183, 0x0b47, 0xfbee, 0xf809, 0xfc6e,
+ 0xfd76, 0x013f, 0x0385, 0x008f, 0xfe8c, 0xff1d,
+ 0x0c3a, 0x1bb9, 0x1597, 0x1364, 0x24f3, 0x27bc,
+ 0x1cad, 0x19cb, 0x1723, 0x13c1, 0x1256, 0x0da2,
+ 0x087e, 0x0142, 0xfb60, 0xfe0c, 0x0231, 0x0906,
+ 0x0f84, 0x0817, 0xfe0a, 0xf750, 0xeee3, 0xf4f8,
+ 0x0167, 0xfd6b, 0xf813, 0xfb5e, 0xffa9, 0x04bb,
+ 0x0424, 0xfff1, 0xff7b, 0xfe41, 0x01a0, 0x060e,
+ 0xff2c, 0xfaf5, 0xfd1c, 0xfc0b, 0x0127, 0x053b,
+ 0xfcf2, 0xf7c8, 0xf9dd, 0xfea9, 0x0676, 0x0623,
+ 0xfb2f, 0xee9b, 0xea84, 0xf890, 0x0737, 0x03f9,
+ 0xfb2b, 0xf1a7, 0xede2, 0xfeac, 0x114d, 0x17fb,
+ 0x1f13, 0x1ee2, 0x13bc, 0x0c21, 0x074f, 0x044f,
+ 0x04f9, 0x0322, 0x0152, 0x005d, 0xfd23, 0xfd39,
+ 0xfe39, 0xfd53, 0x00ea, 0x0501, 0x0733, 0x0cf7,
+ 0x121f, 0x1302, 0x0e35, 0x03f7, 0x0406, 0x0fdd,
+ 0x100a, 0x055d, 0x036d, 0x0980, 0x107d, 0x1485,
+ 0x0fb5, 0x084d, 0x05cb, 0x035e, 0x0292, 0x0483,
+ 0xff37, 0xf561, 0xf220, 0xf529, 0xf9b0, 0xf869,
+ 0xefc4, 0xe95c, 0xe6c2, 0xe991, 0xf459, 0xf516,
+ 0xeac8, 0xee4c, 0xfa89, 0x022b, 0x0d3b, 0x1762,
+ 0x1e58, 0x2aca, 0x3063, 0x2858, 0x2008, 0x1745,
+ 0x0b83, 0x0708, 0x0b36, 0x0d14, 0x07f8, 0x0431,
+ 0x04a0, 0x0097, 0xf9a0, 0xf639, 0xf33a, 0xf269,
+ 0xf929, 0x0075, 0xfe19, 0xf97e, 0x0170, 0x0a02,
+ 0x0462, 0x0265, 0x0865, 0x0839, 0x0c0b, 0x114b,
+ 0x09cc, 0x06c9, 0x0a15, 0x0591, 0x05c1, 0x060c,
+ 0xf855, 0xef0a, 0xf0a2, 0xf2f4, 0xf810, 0xfad8,
+ 0xf8a4, 0xf77f, 0xf2db, 0xeec8, 0xf433, 0xfa30,
+ 0xfc5a, 0x0074, 0x05ac, 0x08e6, 0x04ce, 0xf4f0,
+ 0xe46d, 0xe6ec, 0xfc98, 0x0d16, 0x0bfd, 0x0697,
+ 0x0403, 0x01b5, 0x01f9, 0x02ab, 0xffb8, 0xf8eb,
+ 0xee4f, 0xe7fb, 0xecca, 0xf4a5, 0xf852, 0xf82a,
+ 0xf5b6, 0xf696, 0xfe38, 0x05f7, 0x068f, 0x0599,
+ 0x0e72, 0x1a2a, 0x16e8, 0x0840, 0xffcd, 0x004f,
+ 0x005d, 0xfe14, 0x00b2, 0x06a3, 0x0708, 0x06b0,
+ 0x0be7, 0x0d6d, 0x0767, 0x00de, 0xf992, 0xf092,
+ 0xed7b, 0xf2fa, 0xf814, 0xf633, 0xf4c9, 0xfc03,
+ 0x027c, 0xfc5a, 0xf43c, 0xf7ca, 0xf92f, 0xebfb,
+ 0xe6af, 0xf93f, 0x0d1e, 0x14ed, 0x2086, 0x3042,
+ 0x33b0, 0x2d4c, 0x2718, 0x1fac, 0x1777, 0x114a,
+ 0x0d4c, 0x0e08, 0x0f53, 0x0a4a, 0x034b, 0xfbd4,
+ 0xf36f, 0xf466, 0xff8c, 0x0ab6, 0x12a2, 0x1542,
+ 0x1208, 0x08eb, 0xf9d4, 0xf293, 0xf826, 0xfc25,
+ 0x0038, 0x074d, 0x072f, 0x05ae, 0x051e, 0xfe21,
+ 0xfc31, 0x0202, 0x0493, 0x06be, 0x057e, 0xfc13,
+ 0xf427, 0xedb9, 0xe558, 0xe2a8, 0xe989, 0xf741,
+ 0x0427, 0x0a59, 0x095f, 0xfebe, 0xf48c, 0xf58b,
+ 0xf49f, 0xefd2, 0xf0d6, 0xeefc, 0xebe4, 0xf0ba,
+ 0xf780, 0xff72, 0x02ee, 0xfbf9, 0xfc74, 0x05d9,
+ 0x068b, 0x0093, 0xf73c, 0xed83, 0xed6c, 0xf241,
+ 0xf840, 0xfef6, 0xfd31, 0xfbd3, 0x0386, 0x06b5,
+ 0x0533, 0x04b1, 0x0168, 0x016e, 0x0216, 0xfb92,
+ 0xfc4e, 0x07b4, 0x0d98, 0x0e52, 0x0e42, 0x075e,
+ 0xfd29, 0xf97d, 0xfc2c, 0xff53, 0x010b, 0x0146,
+ 0xfc62, 0xf2fd, 0xf18a, 0xfe40, 0x08c7, 0x0448,
+ 0xfe7b, 0x01c0, 0x03bb, 0x0096, 0xff24, 0x01d8,
+ 0x0546, 0xfe4f, 0xeb7e, 0xe116, 0xe9f2, 0xfa74,
+ 0x043e, 0x055a, 0x0cb3, 0x1c2a, 0x1ea4, 0x17df,
+ 0x19e5, 0x196e, 0x0eab, 0x05f4, 0x0268, 0x0279,
+ 0x02e9, 0xfde6, 0xfbd8, 0x034a, 0x0aed, 0x0ca7,
+ 0x07b2, 0x0035, 0x00d6, 0x0858, 0x0e01, 0x1180,
+ 0x1159, 0x0ccc, 0x0ac2, 0x0b15, 0x07d6, 0x029b,
+ 0xfd6a, 0xf845, 0xf84d, 0xfe81, 0x03ef, 0x0684,
+ 0x0759, 0x04c6, 0x0161, 0xff7f, 0xfc61, 0xfb0b,
+ 0xfe4e, 0xfebe, 0xfa5f, 0xf9d7, 0xff58, 0x0311,
+ 0xffe6, 0xfad5, 0xfa99, 0xfce0, 0xfd4a, 0xfcbf,
+ 0xf98c, 0xf098, 0xe9d2, 0xefd2, 0xfc50, 0x036b,
+ 0x067e, 0x06eb, 0x02be, 0x02e1, 0x0a60, 0x0dc3,
+ 0x0897, 0xfdd2, 0xf492, 0xf752, 0xff29, 0xffbd,
+ 0x00c1, 0x097d, 0x1387, 0x15d6, 0x0d00, 0x03bb,
+ 0xff16, 0xf631, 0xf15f, 0xf75e, 0xfaa3, 0x0034,
+ 0x0d81, 0x0f49, 0x06e2, 0x023e, 0xfd62, 0xfd53,
+ 0x07af, 0x0f67, 0x0e2f, 0x06c1, 0xfcf9, 0xf860,
+ 0xfa47, 0x019b, 0x0a59, 0x0a63, 0x0835, 0x0ea5,
+ 0x1392, 0x0f98, 0x0590, 0xf6df, 0xeb85, 0xe778,
+ 0xe584, 0xe995, 0xf748, 0x0363, 0x0432, 0x01c9,
+ 0x06b3, 0x0be8, 0x0ffa, 0x1ef2, 0x2bd4, 0x2493,
+ 0x185f, 0x11ad, 0x083e, 0xffc4, 0xffa9, 0x05c0,
+ 0x09a4, 0x05a1, 0x0277, 0x0338, 0xfdb5, 0xf5d8,
+ 0xf3ee, 0xf49e, 0xf594, 0xf54a, 0xf4da, 0xf6ff,
+ 0xf76d, 0xf991, 0x0218, 0x048c, 0xfb8c, 0xf2d0,
+ 0xf2bb, 0xf835, 0xf8fa, 0xf5e2, 0xf7a6, 0xfa28,
+ 0xfd39, 0x04f4, 0x0762, 0x0328, 0xffb0, 0xfc31,
+ 0xfcb1, 0xfe36, 0xf5a9, 0xe9eb, 0xe382, 0xe42a,
+ 0xef1a, 0xf901, 0xf84a, 0xf429, 0xef69, 0xec85,
+ 0xecb0, 0xea3a, 0xedb5, 0xfbec, 0x0548, 0x0663,
+ 0x05e0, 0x0203, 0xfa62, 0xf217, 0xf2e4, 0x02d0,
+ 0x1032, 0x0cee, 0x041c, 0xffb4, 0xfcba, 0xf833,
+ 0xf6a4, 0xfa67, 0xfb48, 0xfab5, 0x02ad, 0x09c6,
+ 0x06a0, 0x0235, 0xfacd, 0xebf3, 0xe88d, 0xf92f,
+ 0x0808, 0x0aed, 0x0c9e, 0x0bb4, 0x04b3, 0x008e,
+ 0xfc64, 0xf397, 0xf2e9, 0xfba3, 0x02b2, 0x0987,
+ 0x0fda, 0x0e09, 0x04f5, 0xfaa8, 0xf559, 0xf973,
+ 0x01eb, 0x0421, 0xfbba, 0xece8, 0xe010, 0xe1e4,
+ 0xf46c, 0xffe2, 0xfc2e, 0x0281, 0x0fee, 0x0d9c,
+ 0x0983, 0x102e, 0x110b, 0x0777, 0xff82, 0x041f,
+ 0x1298, 0x16dc, 0x0bd9, 0x018c, 0xfee5, 0x0136,
+ 0x040d, 0x04bf, 0x0646, 0x0712, 0x04fb, 0x034f,
+ 0x0254, 0x0197, 0xfeea, 0xfc3b, 0x01dc, 0x046e,
+ 0xfa9f, 0xf7bd, 0xfcce, 0xfc46, 0xfdce, 0xfdf7,
+ 0xf488, 0xee5a, 0xef52, 0xf6d0, 0x06fd, 0x0f37,
+ 0x095e, 0x0461, 0x0272, 0x01d6, 0x061f, 0x0941,
+ 0x0534, 0xffed, 0xffd0, 0xfd90, 0xf217, 0xe9a7,
+ 0xee71, 0xf815, 0xfada, 0xf3f1, 0xf24e, 0x00dd,
+ 0x0d20, 0x0b8f, 0x0647, 0x00c4, 0xfe64, 0x00aa,
+ 0x02a1, 0x0919, 0x0e7e, 0x089b, 0x071d, 0x0e64,
+ 0x0f85, 0x0c6a, 0x0681, 0xfc8b, 0xf80a, 0xf6a7,
+ 0xf19e, 0xea74, 0xe28e, 0xe46e, 0xf33f, 0x00da,
+ 0x0a89, 0x0dce, 0x04c6, 0xfecf, 0x000f, 0xf9c4,
+ 0xf51d, 0xfb1d, 0xfcf2, 0xfab2, 0xffe4, 0x063e,
+ 0x06d8, 0x078d, 0x0bc8, 0x0f06, 0x0c84, 0x0636,
+ 0x02e6, 0x034e, 0x02a7, 0xfefb, 0xf4cb, 0xe486,
+ 0xdc62, 0xe324, 0xefb7, 0xfdbd, 0x06a0, 0x028d,
+ 0x0120, 0x0df0, 0x1602, 0x1084, 0x0c48, 0x0e03,
+ 0x10dd, 0x166c, 0x1e8c, 0x22e8, 0x20c0, 0x1cf6,
+ 0x1c3e, 0x1b71, 0x143b, 0x079d, 0xfd21, 0xfa02,
+ 0xfdd8, 0x028c, 0x030f, 0x0362, 0x04fa, 0x03c2,
+ 0x05f9, 0x0e6e, 0x11b9, 0x0d6c, 0x05b9, 0xfe98,
+ 0x02c5, 0x0b2c, 0x0730, 0x0206, 0x03e1, 0x01e6,
+ 0x013b, 0x084d, 0x0e19, 0x0e8e, 0x0a29, 0x04da,
+ 0x02fc, 0xffa7, 0xfcf0, 0xfcb2, 0xf29e, 0xe560,
+ 0xe88a, 0xf4f8, 0xfc01, 0xff59, 0x0201, 0xfd47,
+ 0xec43, 0xddd8, 0xe0eb, 0xeae3, 0xf315, 0xfc56,
+ 0x01c4, 0x055d, 0x0983, 0x0170, 0xf527, 0xfc25,
+ 0x0c51, 0x0f90, 0x0a75, 0x0640, 0xff10, 0xf4e4,
+ 0xee21, 0xeba6, 0xedd4, 0xf511, 0xf824, 0xf36e,
+ 0xf132, 0xf31e, 0xf34f, 0xf3f6, 0xf740, 0xfa51,
+ 0xfa9f, 0xfa3a, 0xfe53, 0x02f9, 0x01e9, 0x000c,
+ 0xffea, 0x009a, 0x02cb, 0xfd28, 0xef94, 0xecb3,
+ 0xf6c3, 0x009b, 0x037a, 0xfb3c, 0xef8f, 0xeff6,
+ 0xf876, 0xfa26, 0xf13d, 0xe49f, 0xdbdf, 0xd840,
+ 0xdd4c, 0xec02, 0xf477, 0xf386, 0xfd2d, 0x0e0a,
+ 0x0df8, 0xffe4, 0xfd0b, 0x0988, 0x0ed2, 0x07b1,
+ 0x06a2, 0x0981, 0x04f7, 0x0146, 0x002b, 0xfe03,
+ 0x003d, 0x011a, 0xfcc5, 0xfb77, 0xf864, 0xefac,
+ 0xeb1b, 0xeecf, 0xf8f8, 0x018d, 0x017b, 0x0037,
+ 0xfe4a, 0xf7c6, 0xf53a, 0xf23b, 0xeb35, 0xf3de,
+ 0x07f6, 0x0b96, 0xff51, 0xf3d6, 0xeec6, 0xf0e0,
+ 0xf753, 0xfada, 0xf6c3, 0xefda, 0xed82, 0xefe5,
+ 0xf77a, 0xff21, 0xfbd4, 0xf6a2, 0xf85a, 0xf3c0,
+ 0xebbf, 0xee05, 0xf2a8, 0xf117, 0xe9eb, 0xe38f,
+ 0xe89d, 0xef07, 0xec3e, 0xf010, 0xfc98, 0x02e9,
+ 0x02cd, 0xff91, 0xfd19, 0xffbd, 0x0137, 0xfffb,
+ 0xfcbd, 0xf366, 0xedba, 0xf344, 0xfacd, 0x0042,
+ 0x02ce, 0x0038, 0xfc15, 0xf885, 0xf89b, 0xfcc2,
+ 0xfd77, 0xfd9b, 0x01a5, 0x0486, 0x09c8, 0x0e1e,
+ 0x0669, 0x0249, 0x0dc0, 0x146c, 0x0f2a, 0x0c69,
+ 0x0c10, 0x0609, 0xfcb4, 0xf48a, 0xf0c2, 0xf974,
+ 0x0ea0, 0x1e74, 0x1d3d, 0x12f2, 0x0a80, 0x07a8,
+ 0x060b, 0xfffa, 0xf613, 0xeaea, 0xe96b, 0xf94a,
+ 0x0669, 0x0760, 0x0eec, 0x17e5, 0x14fb, 0x13bf,
+ 0x174d, 0x173a, 0x163e, 0x1312, 0x0ea0, 0x0b6f,
+ 0x0331, 0xffec, 0x0f00, 0x20e4, 0x23d4, 0x198e,
+ 0x0f60, 0x11d0, 0x176e, 0x0e9e, 0xfd26, 0xf47f,
+ 0xfa6c, 0x03e3, 0x04ad, 0x01f5, 0x004d, 0xf9f1,
+ 0xf561, 0xfbc3, 0x04f1, 0x0860, 0x0b44, 0x12cf,
+ 0x1559, 0x0c73, 0x04ee, 0x01b4, 0xf915, 0xf33a,
+ 0xf859, 0x000a, 0x052b, 0x0796, 0x08ed, 0x0860,
+ 0xffbc, 0xf824, 0xfd74, 0x021c, 0xf9fb, 0xeddb,
+ 0xea26, 0xee85, 0xec64, 0xe70c, 0xf200, 0x038b,
+ 0x0c1e, 0x10ab, 0x0f28, 0x0a8b, 0x07ca, 0xfb80,
+ 0xf1f9, 0xf9ae, 0xfdc5, 0x01d6, 0x1510, 0x1d80,
+ 0x1297, 0x09a6, 0x0484, 0x0219, 0x02eb, 0x002b,
+ 0xfe43, 0xfe3b, 0xfc1f, 0xfe8a, 0xffa6, 0xf8cf,
+ 0xf841, 0xffc1, 0x06d3, 0x0f85, 0x0f74, 0xff74,
+ 0xf65c, 0x0099, 0x0c83, 0x0d58, 0x077c, 0x0501,
+ 0x0d3a, 0x1c08, 0x2452, 0x1dfa, 0x0f7f, 0x06f5,
+ 0x06e1, 0x097a, 0x0edb, 0x104f, 0x04c0, 0xf786,
+ 0xf10f, 0xec09, 0xf0d9, 0xfdfb, 0xfe04, 0xfb69,
+ 0x0c83, 0x1fcf, 0x2099, 0x1554, 0x0988, 0x04c0,
+ 0x0494, 0x01b3, 0x026c, 0x0b33, 0x10f2, 0x0d80,
+ 0x06e7, 0x037c, 0x02c6, 0x0104, 0x00cf, 0x0581,
+ 0x081d, 0x02c6, 0xfd7c, 0xffeb, 0x0113, 0xf8a3,
+ 0xf12b, 0xf2b6, 0xf85c, 0x01de, 0x0cb2, 0x102d,
+ 0x0db6, 0x07ad, 0xfeec, 0xfda4, 0x01f4, 0x0047,
+ 0x040c, 0x1536, 0x1cc8, 0x1357, 0x0c90, 0x0699,
+ 0xf716, 0xed84, 0xf17e, 0xf871, 0x0252, 0x098c,
+ 0x06e8, 0x08e8, 0x0de7, 0x05a7, 0xfbf0, 0xf6cf,
+ 0xeece, 0xf3d5, 0x0689, 0x0dd2, 0x0a38, 0x07a0,
+ 0x05a8, 0x0375, 0xfd63, 0xfb34, 0x0a7e, 0x19d3,
+ 0x157d, 0x0940, 0xff5d, 0xf64e, 0xf355, 0xfa0b,
+ 0x03d9, 0x090a, 0x07f1, 0x0213, 0xfd20, 0x0203,
+ 0x0a01, 0x0761, 0xffa8, 0xf7a1, 0xef73, 0xf448,
+ 0xff24, 0xfc3a, 0xf946, 0xfe7c, 0xf8e6, 0xef1e,
+ 0xf86c, 0x103b, 0x1e5d, 0x169e, 0x0782, 0x010a,
+ 0x0139, 0x0656, 0x0a51, 0x033d, 0xfba9, 0xfbfd,
+ 0xfcfe, 0xfeab, 0xfcd4, 0xf13d, 0xe607, 0xe31a,
+ 0xea76, 0xf782, 0xfaed, 0xfdd6, 0x1042, 0x1b8a,
+ 0x1298, 0x09be, 0x05f4, 0x029d, 0x0537, 0x0b59,
+ 0x0d4c, 0x0ad6, 0x08d3, 0x076b, 0x026e, 0x017c,
+ 0x0a35, 0x0ef3, 0x0bf5, 0x0b35, 0x0d0f, 0x11c9,
+ 0x17f1, 0x159f, 0x0d27, 0x068d, 0xff7c, 0xfa72,
+ 0xfc93, 0xff7e, 0xfe29, 0xfbdc, 0xf9e7, 0xf946,
+ 0xfa53, 0xf910, 0xfcc9, 0x0d21, 0x1617, 0x0f13,
+ 0x0d39, 0x0c21, 0x00ae, 0xfd5e, 0x01f7, 0x0381,
+ 0x0aa2, 0x0e9e, 0x068b, 0xff75, 0xf96f, 0xf64a,
+ 0xfb64, 0xfa53, 0xf307, 0xee8e, 0xe980, 0xed32,
+ 0xf96b, 0xff1e, 0xff84, 0xf5d8, 0xe961, 0xf702,
+ 0x0c8e, 0x0c29, 0x084d, 0x07c6, 0xfd27, 0xf105,
+ 0xeeb2, 0xf50f, 0xfa98, 0xfaca, 0xfead, 0x024c,
+ 0xfe41, 0xfb2c, 0xf797, 0xf24f, 0xf3e6, 0xf674,
+ 0xf920, 0x030c, 0x0943, 0x01cd, 0xf301, 0xeb33,
+ 0xedd0, 0xeb07, 0xe855, 0xf6b8, 0x066d, 0x10d8,
+ 0x1c1b, 0x1688, 0x04c8, 0xfd42, 0xfbf3, 0xff72,
+ 0x03d8, 0xfcb3, 0xf6f8, 0xf9b0, 0xf8ed, 0xf5e9,
+ 0xf15c, 0xeb79, 0xe779, 0xe2f9, 0xead3, 0xfc84,
+ 0xfb7d, 0xf76e, 0x0a13, 0x1852, 0x108c, 0x071c,
+ 0x0ad3, 0x1394, 0x10d2, 0x0bcd, 0x1147, 0x0e3c,
+ 0x0348, 0x021f, 0xfed8, 0xfa87, 0x00ee, 0x03a0,
+ 0x04cc, 0x0dde, 0x0e78, 0x0843, 0x0ad0, 0x0f90,
+ 0x0cfb, 0x04a0, 0x0089, 0x03b6, 0x0196, 0xfee1,
+ 0x04a2, 0x00d1, 0xf3b3, 0xf5c7, 0x05dc, 0x1359,
+ 0x1429, 0x09e1, 0x044d, 0x0390, 0xfe42, 0x0026,
+ 0x0a57, 0x0c1b, 0x06b1, 0x00fc, 0xfde4, 0x01c2,
+ 0x00fd, 0xf45e, 0xed4d, 0xeefa, 0xec91, 0xee1a,
+ 0xfa63, 0xfd83, 0xf171, 0xef23, 0xfd1f, 0x06a7,
+ 0x07d1, 0x09aa, 0x0a6f, 0x0882, 0x03f5, 0xfdb3,
+ 0xfbf3, 0xfada, 0xf645, 0xf897, 0x0042, 0x0298,
+ 0x02e2, 0x0390, 0x00da, 0xf92e, 0xf0ab, 0xf451,
+ 0xffd2, 0xffb8, 0xfde1, 0x0836, 0x0e57, 0x0958,
+ 0x04ea, 0x02e5, 0xfd65, 0xf3ab, 0xf244, 0xfe7d,
+ 0x03cf, 0xfcab, 0xfaeb, 0xff16, 0x04a5, 0x0df8,
+ 0x12b2, 0x11cc, 0x127d, 0x0ecc, 0x0683, 0x022a,
+ 0xfd15, 0xf59b, 0xf6a2, 0xfce5, 0xf89d, 0xeaae,
+ 0xe441, 0xf07b, 0x056f, 0x0aa7, 0xffaf, 0x0058,
+ 0x0c41, 0x0c38, 0x08ec, 0x10db, 0x1825, 0x16c8,
+ 0x115f, 0x0cbd, 0x09a7, 0x03e0, 0xffab, 0x0012,
+ 0xfae2, 0xf370, 0xf3d2, 0xf6d3, 0xfaf0, 0x00fa,
+ 0x04ae, 0x0658, 0x0174, 0xfb07, 0x076a, 0x1ba4,
+ 0x19f0, 0x08a2, 0xfec1, 0xfc0a, 0xf450, 0xecb5,
+ 0xf3fd, 0x01bf, 0x04bd, 0x02ca, 0x0546, 0x047b,
+ 0xfa3c, 0xf2ca, 0xf756, 0xfa52, 0xfa87, 0x0580,
+ 0x0c32, 0x04dc, 0x00df, 0xfd0f, 0xf5aa, 0xf59f,
+ 0xf327, 0xedfd, 0xf5e6, 0x024f, 0x061c, 0xfd65,
+ 0xedd3, 0xeb4d, 0xf368, 0xfa90, 0x0824, 0x109e,
+ 0x0a71, 0x05cf, 0xff09, 0xf3b3, 0xf41c, 0xf97a,
+ 0xf921, 0xf643, 0xf1dd, 0xf140, 0xf11a, 0xec65,
+ 0xef36, 0xf5f7, 0xf4bf, 0xf34a, 0xf636, 0xff13,
+ 0x0c05, 0x0d8d, 0x06d5, 0x062d, 0x04df, 0xfeb1,
+ 0xfc61, 0x01f5, 0x08f1, 0x07a0, 0x02a1, 0x00e9,
+ 0xff72, 0x00ed, 0x0065, 0xf95e, 0xfdd1, 0x0aab,
+ 0x0dab, 0x1030, 0x1154, 0x07ba, 0x025c, 0x020d,
+ 0xfd24, 0xfa1b, 0xf555, 0xec1d, 0xebe2, 0xf7f5,
+ 0x06d0, 0x0b1d, 0x0589, 0x0bf9, 0x1d9b, 0x22e9,
+ 0x1c33, 0x15dd, 0x10ed, 0x0a95, 0x0413, 0x0665,
+ 0x0e23, 0x07fe, 0xf8e0, 0xf592, 0xf8ab, 0xf354,
+ 0xeb73, 0xec8c, 0xf2d2, 0xf57a, 0xf249, 0xe7a2,
+ 0xdff3, 0xed37, 0x0254, 0x09e5, 0x0dfa, 0x113b,
+ 0x06e8, 0xfacc, 0xfb10, 0x00eb, 0x06b3, 0x0c21,
+ 0x11bd, 0x15cb, 0x1114, 0x061b, 0xfd2f, 0xf676,
+ 0xf74c, 0x00dd, 0x0498, 0x03c3, 0x09b3, 0x0c8e,
+ 0x074b, 0x0262, 0xf7c0, 0xeaec, 0xf262, 0x0662,
+ 0x0d66, 0x0af2, 0x074a, 0xfee4, 0xfc69, 0x08c2,
+ 0x15a0, 0x166d, 0x0f4f, 0x09bc, 0x08dd, 0x069a,
+ 0x0108, 0xfe0b, 0xfe1b, 0xff98, 0x019b, 0xff8e,
+ 0xfbc8, 0xfa09, 0xf33f, 0xe93c, 0xe6ab, 0xe7e2,
+ 0xe87a, 0xf004, 0x008d, 0x10ee, 0x1699, 0x12fd,
+ 0x1132, 0x0f4b, 0x080c, 0x04d6, 0x0605, 0x02f2,
+ 0xff52, 0xfd84, 0xfd0d, 0x0063, 0x018d, 0x00a3,
+ 0x0244, 0xfe24, 0xfa93, 0x047a, 0x0ce2, 0x0b53,
+ 0x0946, 0x051f, 0xff9b, 0xf8f8, 0xec95, 0xea7a,
+ 0xf58f, 0xf438, 0xee0e, 0xfaec, 0x08c4, 0x0633,
+ 0x08a7, 0x19ac, 0x1fec, 0x1442, 0x0f66, 0x1462,
+ 0x100e, 0x0442, 0xfe0a, 0x0110, 0x0999, 0x0d52,
+ 0x0a5b, 0x072d, 0x0385, 0x01b3, 0x025a, 0xff7b,
+ 0xfb7d, 0xf5cd, 0xf0d5, 0xfe22, 0x136e, 0x1655,
+ 0x113b, 0x10d8, 0x0e99, 0x0fd6, 0x16a7, 0x17e8,
+ 0x0f8d, 0x02e7, 0x001b, 0x0987, 0x0c9e, 0x0a33,
+ 0x0dd6, 0x0c12, 0x0258, 0xfc95, 0xf935, 0xfb6b,
+ 0x05b6, 0x07c5, 0x04f9, 0x0edb, 0x15ba, 0x0acb,
+ 0x021b, 0x0599, 0x07a2, 0x0556, 0x0552, 0x0261,
+ 0xf3c1, 0xe621, 0xedc6, 0xff7b, 0x0730, 0x0c17,
+ 0x1178, 0x0ca5, 0x002b, 0xf36e, 0xee6c, 0xf724,
+ 0x002e, 0x0120, 0x01d5, 0x000e, 0xf9c5, 0xf375,
+ 0xeccc, 0xe787, 0xdf19, 0xd605, 0xe2c1, 0xfbf2,
+ 0x0307, 0xffdb, 0xfe3c, 0xf974, 0xfc6c, 0x095f,
+ 0x0d30, 0x022b, 0xf57c, 0xf357, 0xf735, 0xf5fc,
+ 0xf185, 0xef9e, 0xf3a7, 0xfc79, 0xfee0, 0xf6fa,
+ 0xec04, 0xe845, 0xf434, 0x00a6, 0xfffe, 0x006e,
+ 0xfe66, 0xf2f1, 0xf36b, 0xfad7, 0xf36a, 0xe638,
+ 0xe2d4, 0xef86, 0xfd68, 0xfa94, 0x00c8, 0x14d5,
+ 0x10a3, 0x0166, 0x021b, 0xffae, 0xf383, 0xe777,
+ 0xe2db, 0xed66, 0xf77d, 0xf9f0, 0x019a, 0x0531,
+ 0x01c1, 0x00bf, 0xfc7e, 0xfa2c, 0xf9c3, 0xf0a0,
+ 0xeeb2, 0xf5a9, 0xf362, 0xf0f8, 0xf2ec, 0xf310,
+ 0xf795, 0xfb43, 0xfbcc, 0x0102, 0x02fa, 0xfec8,
+ 0xf829, 0xec94, 0xe5ea, 0xea74, 0xf1da, 0xf830,
+ 0xf981, 0xf574, 0xf08c, 0xec66, 0xf0de, 0xf8d6,
+ 0xf519, 0xf26d, 0xfa35, 0xff47, 0x029b, 0x03c5,
+ 0xfa72, 0xf1cf, 0xf208, 0xf2e8, 0xefbe, 0xea81,
+ 0xeb71, 0xf65e, 0x0245, 0x06b8, 0x006c, 0xf41e,
+ 0xebc0, 0xe977, 0xede8, 0xf553, 0xf662, 0xf6c4,
+ 0xf908, 0xf3f6, 0xf1c5, 0xfa5e, 0xff2d, 0xfa43,
+ 0xf14c, 0xef8b, 0xfd8e, 0x0a12, 0x083a, 0x041b,
+ 0xfffa, 0xfd9f, 0x0843, 0x13f4, 0x0f96, 0x0309,
+ 0xf9de, 0xf5ad, 0xf3cc, 0xf026, 0xec74, 0xf0da,
+ 0xfe9b, 0x08e7, 0x07a7, 0x038b, 0xfe3a, 0xf213,
+ 0xec22, 0xf88e, 0x0a47, 0x126c, 0x1280, 0x1092,
+ 0x0c6b, 0x04f8, 0xfb39, 0xee4a, 0xea93, 0xfed3,
+ 0x1102, 0x0985, 0x09b2, 0x2027, 0x2854, 0x1d63,
+ 0x15ed, 0x0f64, 0x0916, 0x0a8e, 0x0ae2, 0x0485,
+ 0xfe67, 0xfd22, 0x01b1, 0x05bc, 0x03a8, 0x02dc,
+ 0x04eb, 0x0144, 0xfb9f, 0xfd78, 0x0386, 0x04a3,
+ 0xfff3, 0xfcb7, 0xfdb8, 0x00d1, 0x07d1, 0x0f17,
+ 0x0fc1, 0x1177, 0x196c, 0x1be1, 0x139f, 0x0824,
+ 0x0170, 0x0268, 0x028b, 0xfc40, 0xf781, 0xf506,
+ 0xf01b, 0xec3e, 0xeb33, 0xf032, 0xfbb8, 0x0091,
+ 0x006f, 0x092f, 0x104e, 0x0b6a, 0x03cc, 0xfcf1,
+ 0xfb26, 0x0234, 0x029e, 0xf80f, 0xf3d4, 0xfb10,
+ 0x082c, 0x1231, 0x0b26, 0xfbc6, 0xfb03, 0x00c8,
+ 0xfbfa, 0xfa6f, 0x04f5, 0x0760, 0xfd0a, 0xf7fc,
+ 0xfb8a, 0x01ea, 0x07f1, 0x04c9, 0xfc78, 0xfdcf,
+ 0x02f1, 0x0066, 0xf998, 0xf3d6, 0xf519, 0xff3e,
+ 0x098f, 0x1050, 0x1219, 0x0985, 0xfcf5, 0xf82a,
+ 0xfc44, 0x0418, 0x09e4, 0x0b6d, 0x09cf, 0x0797,
+ 0x09b0, 0x0c3e, 0x06c1, 0xfe3d, 0xf941, 0xf7e3,
+ 0xfb4a, 0xff79, 0x036a, 0x0abb, 0x0b8e, 0xff6f,
+ 0xf0be, 0xe957, 0xf15e, 0x041d, 0x0a58, 0x0232,
+ 0x0256, 0x0e99, 0x17eb, 0x193b, 0x191e, 0x198b,
+ 0x1591, 0x0cb7, 0x06b2, 0x09c2, 0x0b64, 0x0060,
+ 0xfafc, 0x05a9, 0x0b6b, 0x0af7, 0x0a69, 0x004b,
+ 0xfd6c, 0x068f, 0xfef4, 0xf180, 0xf032, 0xed6d,
+ 0xf11f, 0xfae6, 0xf641, 0xf0e9, 0xf431, 0xf72b,
+ 0xff4c, 0x04b5, 0x0549, 0x0f67, 0x139d, 0x0ab7,
+ 0x06c1, 0x04ba, 0x044a, 0x08a4, 0x0546, 0x0371,
+ 0x0a2f, 0x0503, 0xf92e, 0xfd06, 0x0b3f, 0x1170,
+ 0x0870, 0xfe12, 0x02d2, 0x0d32, 0x0cf8, 0x05cd,
+ 0x0191, 0xfe18, 0xf818, 0xf8b9, 0x013c, 0x06ba,
+ 0x09e6, 0x0ce8, 0x0a86, 0x0320, 0xfe69, 0x09be,
+ 0x1923, 0x0d15, 0xf93b, 0xfa7f, 0xfac0, 0xf88e,
+ 0x0251, 0x0771, 0x09a8, 0x0aa0, 0xfd13, 0xf637,
+ 0xf933, 0xf337, 0xfa87, 0x0c9e, 0x0b16, 0x06ed,
+ 0x09d2, 0x03ae, 0x0097, 0x0a1d, 0x13a8, 0x11c6,
+ 0x02f7, 0xfa0e, 0x01b4, 0x07b1, 0x0384, 0xfe3f,
+ 0xfd50, 0xff93, 0xfeae, 0xf910, 0xf33a, 0xf436,
+ 0x01a9, 0x09fc, 0xfba8, 0xeaf4, 0xea23, 0xf366,
+ 0x0417, 0x1322, 0x1284, 0x0905, 0x0532, 0x0889,
+ 0x0bf7, 0x0ee9, 0x158a, 0x162f, 0x083d, 0xfb53,
+ 0xfecf, 0x094d, 0x08f1, 0xfe93, 0xf888, 0xf778,
+ 0xf658, 0xf849, 0xfd93, 0x0879, 0x11cb, 0x04a5,
+ 0xf169, 0xf74a, 0x018f, 0xfb09, 0xf90b, 0x0436,
+ 0x0c88, 0x0c72, 0x0c79, 0x1064, 0x0f71, 0x0c87,
+ 0x162e, 0x1fe6, 0x15b2, 0x073d, 0x0877, 0x0d70,
+ 0x091c, 0x0587, 0x060d, 0x0170, 0xfe92, 0x00c1,
+ 0xfc33, 0xfaf7, 0x04b5, 0x029e, 0xf4b2, 0xf2b0,
+ 0xfae0, 0x0439, 0x1185, 0x1d08, 0x1caf, 0x1407,
+ 0x0f69, 0x1163, 0x11ad, 0x0dd8, 0x07cb, 0xfc7c,
+ 0xee5b, 0xeeb6, 0x060a, 0x17be, 0x0d27, 0x001c,
+ 0xfdbf, 0xf46d, 0xee9a, 0xf3dc, 0xf3e6, 0xf86b,
+ 0x0248, 0xf90f, 0xea39, 0xea2b, 0xeae3, 0xeb7a,
+ 0xf84e, 0x0896, 0x0c9f, 0x048c, 0xff24, 0x01c1,
+ 0x055b, 0x0af9, 0x0cf4, 0x00f1, 0xf6d7, 0xfe54,
+ 0x0a05, 0x08f7, 0xfbb6, 0xf124, 0xef09, 0xeb5c,
+ 0xe8ff, 0xee20, 0xf302, 0xf887, 0xfbd9, 0xf1e8,
+ 0xe848, 0xe904, 0xe82e, 0xed1b, 0x01ff, 0x1590,
+ 0x181f, 0x0fb4, 0x0e3e, 0x1437, 0x1005, 0x0e6d,
+ 0x1c3d, 0x183a, 0x038c, 0x0948, 0x1b6e, 0x19cd,
+ 0x1384, 0x1134, 0x06e9, 0xf6de, 0xec8d, 0xf1b4,
+ 0x035a, 0x1265, 0x126f, 0x004f, 0xf217, 0xf9ff,
+ 0xfbdb, 0xede9, 0xf19d, 0x0212, 0x065f, 0x0785,
+ 0x096b, 0x064a, 0x07c3, 0x100c, 0x10b3, 0x0562,
+ 0x06b0, 0x1e9f, 0x24eb, 0x0efa, 0x0551, 0x067d,
+ 0xff8a, 0xff58, 0x0009, 0xf6b3, 0xf64f, 0xfceb,
+ 0xfccf, 0xfda3, 0xfb4e, 0xed67, 0xe627, 0xf380,
+ 0x085e, 0x16eb, 0x1a31, 0x0ec8, 0x02fc, 0x092c,
+ 0x1404, 0x1329, 0x07d8, 0xf3f1, 0xee1d, 0x03bd,
+ 0x0fcf, 0x05ed, 0x029e, 0x05c2, 0x05dc, 0x049a,
+ 0xfe2e, 0xfaba, 0x0180, 0x0901, 0x0681, 0xf716,
+ 0xeefc, 0xf716, 0xf4ba, 0xed4b, 0xf53a, 0xfc1d,
+ 0x0266, 0x0cd1, 0x0859, 0x010e, 0x0414, 0x02cc,
+ 0xfee4, 0xfc91, 0x0092, 0x0d78, 0x08be, 0xf8d4,
+ 0xfc8a, 0xfdb2, 0xf306, 0xf307, 0xf144, 0xede9,
+ 0xfaad, 0xffd7, 0xef20, 0xe601, 0xf0fb, 0xf38c,
+ 0xe598, 0xeefd, 0x0fca, 0x19bf, 0x151d, 0x1726,
+ 0x0d96, 0x02ff, 0x08f5, 0x0dc2, 0x0a5e, 0x06d9,
+ 0x0e09, 0x1d90, 0x1883, 0x06bb, 0x09b3, 0x11af,
+ 0x0ce9, 0x0350, 0xf50e, 0xf0f2, 0xfe47, 0x05a5,
+ 0x0566, 0x05d9, 0xff3e, 0xfa63, 0xff03, 0xfef2,
+ 0xf852, 0xf645, 0xf8bb, 0xfb49, 0xfeed, 0x025f,
+ 0x02d2, 0x00e2, 0xfb78, 0xfbc3, 0x0d08, 0x181d,
+ 0x0c5e, 0x0461, 0x05eb, 0x0080, 0xfc52, 0xfb42,
+ 0xf4e8, 0xeee9, 0xeb9e, 0xeb74, 0xefca, 0xf670,
+ 0xfdc6, 0xfaaa, 0xf348, 0xfc50, 0x0429, 0x043f,
+ 0x0f2d, 0x0c36, 0xf9c8, 0xfd8d, 0x055a, 0x0232,
+ 0x0636, 0x00d2, 0xf424, 0xf454, 0xeeca, 0xe877,
+ 0xf199, 0xf523, 0xf251, 0xf2cd, 0xeda6, 0xebdd,
+ 0xf451, 0xfd16, 0x02e2, 0x031d, 0x00a7, 0xff99,
+ 0xfdae, 0xfedf, 0xfafc, 0xeda3, 0xedec, 0xf9d7,
+ 0xfe2b, 0xffd3, 0xfb9a, 0xf236, 0xf67c, 0x01e5,
+ 0x05a6, 0x039f, 0x01ba, 0x06ec, 0x08b6, 0x0088,
+ 0x0005, 0xffad, 0xf6aa, 0xf93a, 0x002f, 0xff65,
+ 0xffbe, 0xf97b, 0xf288, 0xf440, 0xeefd, 0xf4e5,
+ 0x1057, 0x1a8e, 0x1681, 0x18b4, 0x117f, 0x074d,
+ 0x04d0, 0x02b6, 0x0701, 0x094c, 0x0451, 0x0818,
+ 0x0800, 0xffde, 0x04e8, 0x0abc, 0x068a, 0x00ca,
+ 0xf49e, 0xede4, 0xf579, 0xf8ee, 0xfab3, 0x00f0,
+ 0x03a2, 0x072e, 0x04f4, 0xf8ec, 0xf5b7, 0xf650,
+ 0xf0e5, 0xf12c, 0xf1e4, 0xed01, 0xeafd, 0xe92e,
+ 0xe89a, 0xece3, 0xef09, 0xf262, 0xfad3, 0x01d5,
+ 0x08a2, 0x0f2b, 0x0dc5, 0x05ec, 0x012a, 0x02f6,
+ 0x079d, 0x0d32, 0x0bac, 0xfc75, 0xf66e, 0x03b2,
+ 0x05c5, 0xfa3a, 0xf69c, 0xf6ef, 0xfa0b, 0xfd5c,
+ 0xf884, 0xfd1a, 0x08a7, 0x05e1, 0x060a, 0x0cce,
+ 0x066c, 0xffed, 0xffd2, 0xfba4, 0xfb18, 0xff8c,
+ 0x0283, 0xfe72, 0xf12c, 0xf34c, 0x0832, 0x0ba6,
+ 0x00dd, 0xffe4, 0x0183, 0x01d6, 0x0086, 0xf97a,
+ 0xf591, 0xf436, 0xf28a, 0xf7c2, 0xfb86, 0xf8ff,
+ 0xf769, 0xf312, 0xf1b9, 0xfb03, 0x01f5, 0x062b,
+ 0x10e6, 0x16b2, 0x0d4c, 0xfcfc, 0xf08d, 0xe981,
+ 0xe978, 0xf8a5, 0x0c24, 0x0d4f, 0x04ac, 0x0235,
+ 0xfcda, 0xf0f2, 0xeb65, 0xf51a, 0x0915, 0x185a,
+ 0x1c42, 0x145c, 0x01dd, 0xf915, 0x042e, 0x0bab,
+ 0x06d8, 0x029a, 0x0145, 0x0531, 0x0d62, 0x0e61,
+ 0x088a, 0x0050, 0xf485, 0xeda8, 0xf5de, 0x09aa,
+ 0x15d7, 0x0a91, 0xfc80, 0x0480, 0x0f65, 0x0acf,
+ 0x04d9, 0x031e, 0x011a, 0x04a2, 0x0cbb, 0x0f51,
+ 0x0b08, 0x055f, 0x007e, 0xfb85, 0xf800, 0xf912,
+ 0xffa1, 0x0807, 0x0b8f, 0x0c4b, 0x1270, 0x196d,
+ 0x17be, 0x0f19, 0x0b50, 0x17a4, 0x245d, 0x193a,
+ 0x07d4, 0x020f, 0xf7c2, 0xf164, 0xfe80, 0x081b,
+ 0x07c3, 0x0c83, 0x0cb4, 0x0257, 0xfbb5, 0x0110,
+ 0x0b7d, 0x0c0b, 0x06a2, 0x0972, 0x0a3d, 0x0395,
+ 0xfff9, 0xf964, 0xef0a, 0xeb71, 0xeac0, 0xedaa,
+ 0xf8c4, 0x0299, 0x0509, 0x025e, 0x01d0, 0x0630,
+ 0x0248, 0xf8bd, 0xfb6b, 0x01b1, 0xff5b, 0xf963,
+ 0xf11a, 0xeb8b, 0xee5a, 0xf471, 0xfa1d, 0xf84b,
+ 0xedf0, 0xebda, 0xf55b, 0xff2b, 0x0516, 0x02c0,
+ 0xf987, 0xef37, 0xe3c4, 0xe2a4, 0xf327, 0x00ca,
+ 0x0020, 0xfe80, 0x00b3, 0xfc86, 0xeecb, 0xe3db,
+ 0xe78e, 0xf6da, 0x05f2, 0x0c07, 0x0b50, 0x07e2,
+ 0xfdcf, 0xf516, 0xfc70, 0x09df, 0x0d63, 0x08a8,
+ 0x01f1, 0xfea0, 0xfedb, 0xfdac, 0xfbb3, 0xf58c,
+ 0xe8e9, 0xe606, 0xf493, 0x0129, 0xfe14, 0xf722,
+ 0xf957, 0xfda6, 0xfc4e, 0xfbf6, 0xff21, 0x0117,
+ 0xfef0, 0xf853, 0xf541, 0xf6e4, 0xf1d8, 0xeb66,
+ 0xedae, 0xefe0, 0xed07, 0xea9f, 0xecc3, 0xf278,
+ 0xf293, 0xefca, 0xf7db, 0x0400, 0x0769, 0x04cb,
+ 0x02bf, 0x0601, 0x0a2e, 0x076f, 0x0199, 0xf960,
+ 0xec05, 0xe400, 0xec4a, 0xff3e, 0x0863, 0x00d5,
+ 0xf9cf, 0xf5c3, 0xf0cb, 0xf888, 0x043c, 0x0444,
+ 0x0558, 0x0765, 0x02ac, 0xfeee, 0xf88c, 0xefd1,
+ 0xec86, 0xe8b6, 0xea28, 0xf520, 0xfa4b, 0xf9d8,
+ 0xf90a, 0xf7d7, 0xfe1c, 0x0487, 0x0372, 0x0290,
+ 0xff52, 0xfdcd, 0x0109, 0xf888, 0xee3f, 0xf2cf,
+ 0xf772, 0xfa4e, 0x00dc, 0x01c2, 0x0011, 0xfe50,
+ 0xf84f, 0xf45e, 0xf54c, 0xfb07, 0x0278, 0x04ca,
+ 0x08b0, 0x0c0f, 0x05ef, 0x04cc, 0x0b4c, 0x0c54,
+ 0x0bc8, 0x0851, 0xfd38, 0xf237, 0xf253, 0x083a,
+ 0x1ce7, 0x1480, 0x0cca, 0x0ed2, 0x0172, 0x0224,
+ 0x19a2, 0x1c73, 0x142c, 0x165a, 0x1312, 0x0c08,
+ 0x05e5, 0xff50, 0x0270, 0x099c, 0x0cb7, 0x0b50,
+ 0x03a8, 0x066e, 0x1109, 0x0a01, 0x0288, 0x0a3e,
+ 0x0d0e, 0x0eb0, 0x15d8, 0x13da, 0x0b23, 0x041e,
+ 0x007c, 0x017a, 0xfeb4, 0xf80f, 0xf663, 0xf7ac,
+ 0xfb5b, 0x013f, 0x0371, 0xfff3, 0xf69f, 0xf08d,
+ 0xf8d4, 0x0782, 0x10cb, 0x0e94, 0x05d6, 0x09d4,
+ 0x151f, 0x142b, 0x0f02, 0x0a52, 0x01c6, 0xfa9f,
+ 0xf0d6, 0xecdb, 0xfd98, 0x0cc2, 0x0904, 0xfc0f,
+ 0xee89, 0xf143, 0x01a7, 0x06fc, 0x0991, 0x1124,
+ 0x0dbd, 0x065f, 0x0344, 0xfe3b, 0xfd75, 0x0110,
+ 0xff96, 0xf870, 0xf391, 0xfbd3, 0x0780, 0x08a2,
+ 0x0c41, 0x11fe, 0x0c78, 0x0877, 0x0b50, 0x0a4d,
+ 0x054f, 0xfcf6, 0xf68e, 0xf6d7, 0xf78a, 0xfa7e,
+ 0xfc8f, 0xf836, 0xfc4a, 0x05c9, 0x034e, 0xfce9,
+ 0xf88f, 0xf778, 0x024b, 0x0d8c, 0x0d1f, 0x07eb,
+ 0x0428, 0x0819, 0x0d55, 0x073c, 0x0424, 0x09fa,
+ 0x02ec, 0xf0e1, 0xedd9, 0xfdc3, 0x09e4, 0x0a5c,
+ 0x0fbc, 0x12a4, 0x04dd, 0x0042, 0x0ee7, 0x170c,
+ 0x15d6, 0x138f, 0x0d3a, 0x0391, 0xf827, 0xf5c8,
+ 0x03fd, 0x10db, 0x130c, 0x0ff5, 0x0991, 0x0c24,
+ 0x158c, 0x10cb, 0x05eb, 0x04eb, 0x0667, 0x0573,
+ 0x0355, 0x03a0, 0x0ac7, 0x0d72, 0x04af, 0xfcf9,
+ 0xf9f4, 0xf5c0, 0xf1fc, 0xf29a, 0xf6a9, 0xf6fb,
+ 0xf016, 0xe7fe, 0xe52b, 0xedd5, 0xfc5b, 0xfd67,
+ 0xf68b, 0xfaaf, 0x00e0, 0x04ff, 0x107c, 0x15bd,
+ 0x1066, 0x11e0, 0x14b6, 0x0db8, 0x0185, 0xf588,
+ 0xf73d, 0x05d4, 0x098c, 0x044b, 0xfec8, 0xf3aa,
+ 0xf6ba, 0x0b61, 0x10d8, 0x0bd0, 0x0eb8, 0x0e68,
+ 0x0c1c, 0x0b43, 0x045b, 0x0048, 0x0000, 0xfb8b,
+ 0xfa2d, 0xfc05, 0xfeaa, 0x06fd, 0x10cf, 0x19ea,
+ 0x1b20, 0x096d, 0xfa57, 0x0188, 0x0adf, 0x0679,
+ 0xfcfa, 0xf898, 0xf6bb, 0xf046, 0xef02, 0xf64e,
+ 0xf571, 0xf03c, 0xf18a, 0xf279, 0xf7f8, 0x04e5,
+ 0x0b1f, 0x0b8e, 0x0ce8, 0x0b07, 0x05e6, 0x0134,
+ 0xff44, 0xfff7, 0x02bc, 0x0519, 0xfa91, 0xebd5,
+ 0xf7d3, 0x0f5d, 0x0f06, 0x07d1, 0x0d57, 0x0c6a,
+ 0xff60, 0xf9b5, 0x0076, 0x061e, 0x06bc, 0x06a8,
+ 0xff80, 0xf4df, 0xf781, 0x014a, 0x0346, 0xfe97,
+ 0xf738, 0xf41f, 0xfa09, 0x01c9, 0x06e7, 0x0678,
+ 0x001c, 0xfe0e, 0xff72, 0xfc10, 0xf985, 0xfa79,
+ 0xfade, 0xfadf, 0xfa13, 0xfc1e, 0x0241, 0x0347,
+ 0xff9a, 0xff5a, 0x0047, 0xfd5b, 0xf630, 0xf064,
+ 0xf33a, 0xf977, 0xfbea, 0xff65, 0x0390, 0x02b6,
+ 0x03f4, 0x0cfd, 0x1527, 0x18fd, 0x1dbf, 0x21e8,
+ 0x1f9b, 0x1490, 0x0729, 0x00c8, 0xfb08, 0xf23e,
+ 0xf6f3, 0x0367, 0x006d, 0xf888, 0xfbe7, 0x0310,
+ 0x08c4, 0x0a17, 0x097e, 0x125f, 0x1ac8, 0x1387,
+ 0x0846, 0x04f9, 0x0522, 0x00d0, 0xf6fa, 0xf24a,
+ 0xf756, 0xfd40, 0xff8c, 0xff28, 0xff48, 0x005c,
+ 0xfaa5, 0xf34d, 0xf798, 0xfe9d, 0xfb31, 0xf280,
+ 0xeea4, 0xf300, 0xf863, 0xf601, 0xee4a, 0xe905,
+ 0xeccd, 0xf8d5, 0x02c9, 0x061c, 0x054a, 0x0337,
+ 0x058e, 0x0936, 0x04dc, 0xfd47, 0xfa74, 0xf974,
+ 0xf5f2, 0xeeaa, 0xe88f, 0xefe8, 0x031c, 0x0ad5,
+ 0x017d, 0x022b, 0x1132, 0x109e, 0xfe44, 0xf4c5,
+ 0xfabe, 0x028f, 0x0319, 0x04e5, 0x0f6b, 0x11eb,
+ 0x08d8, 0x08ea, 0x0c73, 0x0576, 0x001d, 0xff1a,
+ 0xfa94, 0xfb67, 0x0736, 0x123c, 0x0f1d, 0x00c7,
+ 0xf870, 0xf904, 0xf786, 0xf6db, 0xfbe2, 0xfcf8,
+ 0xf89a, 0xfae1, 0x0364, 0x0673, 0x039d, 0xfef4,
+ 0xf7fc, 0xf595, 0xfc79, 0x01d5, 0xfc7e, 0xf2d2,
+ 0xf151, 0xf777, 0xfa66, 0xfa33, 0xf95a, 0xf981,
+ 0x0667, 0x173f, 0x1815, 0x163c, 0x1b30, 0x1ace,
+ 0x178b, 0x11d1, 0x04ed, 0xf92a, 0xf46b, 0xfb2d,
+ 0x02f9, 0xf862, 0xee50, 0xf02c, 0xed33, 0xf8cb,
+ 0x1375, 0x1670, 0x102a, 0x142e, 0x0e18, 0x04e4,
+ 0x031a, 0x0100, 0x030d, 0x0118, 0xf884, 0xfb4a,
+ 0x0078, 0xff21, 0x0547, 0x0cf0, 0x088e, 0xfe20,
+ 0xfac7, 0xfffb, 0xfeb0, 0xf6ce, 0xf599, 0xf587,
+ 0xf511, 0xf84d, 0xf796, 0xf98c, 0x01a1, 0x023d,
+ 0x004d, 0x0134, 0xff2c, 0xfff1, 0x00c4, 0xfb92,
+ 0xfa07, 0xfda7, 0x018b, 0x03b2, 0xfea0, 0xf536,
+ 0xef7c, 0xf36b, 0x0125, 0x0928, 0x071c, 0x079f,
+ 0x09f2, 0x0b75, 0x08c6, 0xfbf4, 0xf698, 0x0070,
+ 0x0a29, 0x1630, 0x1c80, 0x0db4, 0x025a, 0x0893,
+ 0x0e37, 0x0e90, 0x082a, 0xfd2e, 0xfb0f, 0xff13,
+ 0x07ba, 0x173e, 0x1984, 0x0bc5, 0x041e, 0x02fe,
+ 0x00fe, 0x0065, 0xfe78, 0xfb31, 0xf950, 0xf82e,
+ 0xfaed, 0xfe8a, 0xfb01, 0xf61c, 0xf659, 0xf6ac,
+ 0xf802, 0xfddd, 0x0039, 0xfc32, 0xf9f8, 0xf9b5,
+ 0xf876, 0xfa3e, 0xfc1e, 0xf7e9, 0xf56a, 0xfe71,
+ 0x0c5b, 0x1071, 0x0997, 0x0564, 0x091b, 0x0caf,
+ 0x0b30, 0x0424, 0xfa0d, 0xf58d, 0xf560, 0xecd5,
+ 0xe2b6, 0xe924, 0xf77b, 0xff79, 0x076f, 0x0bf5,
+ 0x05e0, 0x0389, 0x06da, 0x058c, 0x0723, 0x0843,
+ 0xfd81, 0xf268, 0xee00, 0xee0e, 0xf4e8, 0xf741,
+ 0xf2ca, 0xf7f9, 0x00e3, 0x0020, 0xfb10, 0xf5e1,
+ 0xf364, 0xf799, 0xfc4c, 0xf9fb, 0xf53e, 0xfaf0,
+ 0x0578, 0xfe89, 0xedef, 0xec5d, 0xf5dd, 0xfd7a,
+ 0xff53, 0xfcad, 0xfe18, 0x0198, 0x00c3, 0x0097,
+ 0xffab, 0xffbb, 0x06d4, 0x0523, 0xf859, 0xfc9c,
+ 0x1092, 0x13b3, 0x07a0, 0x0b5e, 0x1459, 0x038c,
+ 0xf1b6, 0xf6b2, 0xfc23, 0x0897, 0x20e0, 0x2185,
+ 0x154f, 0x127c, 0x045b, 0xfa7e, 0x081f, 0x0e66,
+ 0x086c, 0x0583, 0xfee5, 0xf660, 0xf386, 0xfb9d,
+ 0x0cb9, 0x121d, 0x0da3, 0x10e6, 0x1275, 0x0d80,
+ 0x064d, 0xfa56, 0xf491, 0xf5a6, 0xf378, 0xf834,
+ 0x0250, 0x0585, 0x05e4, 0x0013, 0xf590, 0xf416,
+ 0xf2a0, 0xebdd, 0xefb5, 0xf853, 0xf4fc, 0xef11,
+ 0xf373, 0xf892, 0xf7fc, 0xfcb0, 0x0316, 0x00b2,
+ 0x0265, 0x0d6f, 0x16d9, 0x1e85, 0x2154, 0x1c8e,
+ 0x1350, 0xfe93, 0xebcd, 0xeec1, 0xf424, 0xf579,
+ 0x00a8, 0x07ce, 0x0786, 0x06dd, 0xf9c3, 0xee00,
+ 0xf544, 0xfeba, 0x07fd, 0x150a, 0x1759, 0x0f1e,
+ 0x0348, 0xfa17, 0xfd09, 0xfe38, 0xf763, 0xfc98,
+ 0x06f1, 0x054d, 0x011e, 0x00ed, 0x031a, 0x064e,
+ 0x0805, 0x0ed9, 0x1665, 0x0de1, 0xfd35, 0xf5ea,
+ 0xf71a, 0xf867, 0xf5a8, 0xf4d5, 0xfad1, 0x02d8,
+ 0x0c2e, 0x1281, 0x113f, 0x1019, 0x0b48, 0x028b,
+ 0x0365, 0xfcce, 0xea3e, 0xf278, 0x0cab, 0x1056,
+ 0x09e9, 0x0eb6, 0x1349, 0x078e, 0xf1c5, 0xf184,
+ 0x0668, 0x0dc4, 0x0fbb, 0x1b82, 0x1940, 0x09bc,
+ 0x01da, 0xfe1b, 0xfb45, 0xfe6e, 0x07ae, 0x0cc2,
+ 0x0031, 0xeeca, 0xea0c, 0xebe5, 0xf50b, 0x0313,
+ 0x068f, 0x0756, 0x0d36, 0x0b46, 0x0098, 0xf723,
+ 0xf705, 0xfe24, 0x027c, 0x0c9a, 0x1a79, 0x1464,
+ 0x06f3, 0x04de, 0x01ee, 0x03a1, 0x0d80, 0x0d30,
+ 0x0964, 0x0ab0, 0x0637, 0x0115, 0x0466, 0x0994,
+ 0x068c, 0xfe15, 0x0109, 0x0acf, 0x0bb7, 0x0f93,
+ 0x16f4, 0x15fe, 0x1887, 0x19d8, 0x0e74, 0x06c6,
+ 0x009a, 0xf618, 0xf94d, 0x01f5, 0x0428, 0x0bba,
+ 0x0de5, 0x012e, 0xf663, 0xf0d5, 0xf14f, 0xff37,
+ 0x0ede, 0x1485, 0x10cf, 0x0412, 0xf568, 0xeeee,
+ 0xf332, 0xfb2a, 0xf7e0, 0xeb72, 0xe8c3, 0xec5c,
+ 0xe9b2, 0xeaa2, 0xf411, 0xfc22, 0x0622, 0x1316,
+ 0x1255, 0x0511, 0xfdb8, 0xf8da, 0xece7, 0xe1e8,
+ 0xdbee, 0xddb7, 0xf05a, 0x04cf, 0x047c, 0xfcdd,
+ 0xff17, 0xfe8f, 0xf29f, 0xe5e9, 0xdfce, 0xdd80,
+ 0xdc92, 0xe3bb, 0xf527, 0x0115, 0xff2b, 0xf8fe,
+ 0xf4cf, 0xf8f0, 0x04f8, 0x0482, 0xf862, 0xfad2,
+ 0x0836, 0x0b78, 0x03d5, 0xf88e, 0xf220, 0xf40e,
+ 0xf615, 0xf8bd, 0xff31, 0xfefe, 0xf608, 0xeef2,
+ 0xed9f, 0xed1a, 0xebc6, 0xf26a, 0xfc3c, 0xf563,
+ 0xeb0b, 0xf6a2, 0x0661, 0x041e, 0xfc4c, 0xff69,
+ 0x0a34, 0x0bdc, 0x02b2, 0xff59, 0xff4b, 0xf812,
+ 0xefce, 0xe81e, 0xe39b, 0xeb15, 0xf67a, 0xfbcf,
+ 0xfc11, 0xf89d, 0xf653, 0xf451, 0xee3f, 0xec39,
+ 0xf331, 0xfe47, 0x02a6, 0xf8a1, 0xf50e, 0x0298,
+ 0x0371, 0xf598, 0xf5c9, 0x046d, 0x0f6e, 0x040c,
+ 0xeb2e, 0xed54, 0x00ab, 0xfe8d, 0xf6c9, 0xf6c9,
+ 0xf27e, 0xf4de, 0xfda4, 0xffeb, 0x01ec, 0x01ab,
+ 0xfec7, 0x011f, 0xfda2, 0xf42c, 0xf3e2, 0xf89b,
+ 0xf7ac, 0xe910, 0xd3d1, 0xd4f5, 0xea1c, 0xf3b6,
+ 0xf246, 0xf98d, 0x0a68, 0x14bf, 0x1016, 0x0b8b,
+ 0x0c3f, 0x039c, 0xf5c3, 0xecfe, 0xeb1e, 0xf73d,
+ 0x05ff, 0x03c6, 0xfb93, 0xfbcb, 0xff43, 0xffd3,
+ 0xfba7, 0xf435, 0xebcd, 0xe714, 0xee86, 0xfdfb,
+ 0x08e1, 0x0c5a, 0x0b52, 0x0afe, 0x0d21, 0x1165,
+ 0x18a0, 0x11e9, 0xfb49, 0xfb21, 0x1000, 0x11c4,
+ 0x0844, 0x063e, 0x01f0, 0xffd7, 0x07df, 0x12e6,
+ 0x1813, 0x1172, 0x0b91, 0x0fde, 0x0d21, 0xffea,
+ 0xf4c1, 0xf0e6, 0xf7f6, 0xfc3e, 0xf632, 0xfb93,
+ 0x055c, 0xff3d, 0xfe91, 0x0e25, 0x1a0a, 0x1ab1,
+ 0x1243, 0x0850, 0x0549, 0x035b, 0xff61, 0xfd17,
+ 0xfc6b, 0xfd57, 0xfc60, 0xfabc, 0xff45, 0x037b,
+ 0x028a, 0x025b, 0x005e, 0xf83a, 0xee9d, 0xee36,
+ 0xf966, 0xfe85, 0xfaa5, 0xfefa, 0x056f, 0x0812,
+ 0x122e, 0x1b3f, 0x1bcb, 0x19af, 0x0ee0, 0x02fe,
+ 0x03d4, 0x0547, 0x03bf, 0x0549, 0xff0a, 0xf13b,
+ 0xec65, 0xf7c7, 0x0ae1, 0x12f6, 0x0ebd, 0x0dc3,
+ 0x0c33, 0x0329, 0xfdd3, 0x00f1, 0x05d1, 0x0315,
+ 0xf585, 0xeb3e, 0xec9c, 0xf257, 0xfb01, 0x00fa,
+ 0xfd3a, 0xfd3f, 0x068f, 0x0b4c, 0x099a, 0x054e,
+ 0xff4c, 0xfdd9, 0xfcc6, 0xf765, 0xf9d6, 0x00ab,
+ 0xfd62, 0xfbcd, 0x05ef, 0x0b7f, 0x01fb, 0xf0ee,
+ 0xe440, 0xe4c6, 0xf533, 0x0f74, 0x1caa, 0x0e62,
+ 0x020d, 0x0e8d, 0x1916, 0x14a3, 0x15f7, 0x181c,
+ 0x074a, 0xf3a6, 0xf77b, 0x07c7, 0x0e59, 0x0fdd,
+ 0x0e74, 0x02b4, 0x00a5, 0x143c, 0x2076, 0x1963,
+ 0x11ff, 0x109a, 0x1053, 0x0b84, 0xfdc3, 0xf1ad,
+ 0xf4bc, 0xffa7, 0x018c, 0xfdbb, 0x0566, 0x10e5,
+ 0x0c02, 0x008c, 0x0273, 0x0dfa, 0x1152, 0x046a,
+ 0xf848, 0xfc9e, 0x025d, 0xfc23, 0xef53, 0xdf99,
+ 0xda22, 0xef49, 0x0e3b, 0x1865, 0x0d57, 0xfedb,
+ 0xf2f8, 0xec3a, 0xedb1, 0xef53, 0xf318, 0xffa0,
+ 0x0128, 0xf732, 0x001b, 0x1453, 0x1de4, 0x2308,
+ 0x2355, 0x1cb3, 0x11e3, 0xfed1, 0xf605, 0x01b7,
+ 0x0624, 0xfef8, 0xfa1e, 0xf4d7, 0xf889, 0x071f,
+ 0x0c79, 0x09cd, 0x0b8c, 0x0f2f, 0x0f77, 0x0b98,
+ 0x0762, 0x063f, 0x0c36, 0x16c6, 0x117e, 0x0226,
+ 0x0689, 0x0c41, 0xfb85, 0xef13, 0xf3fc, 0xfb92,
+ 0x00cc, 0x048e, 0x0daa, 0x17fb, 0x1498, 0x0a8b,
+ 0xfea3, 0xf1e9, 0xf9d6, 0x0d01, 0x0c3c, 0x0348,
+ 0x02b0, 0x0345, 0x067a, 0x09cd, 0xff05, 0xec5a,
+ 0xee57, 0x0883, 0x140d, 0x059c, 0x012f, 0x0c0f,
+ 0x1182, 0x1595, 0x19d3, 0x1379, 0x007d, 0xe8c9,
+ 0xe2b4, 0xf484, 0x0161, 0xfd7e, 0xf7d2, 0xf960,
+ 0x07dd, 0x1876, 0x12f5, 0x0318, 0x025e, 0x02d9,
+ 0xf7b1, 0xf339, 0xf4fb, 0xec2f, 0xe507, 0xec0e,
+ 0xf5f5, 0x00ac, 0x0cc7, 0x0d85, 0x04ab, 0x00cd,
+ 0x04e5, 0x0b4b, 0x0db7, 0x0b14, 0x07b2, 0x0782,
+ 0x0bec, 0x0b23, 0xff28, 0xfacb, 0x057b, 0x0bfc,
+ 0x0b0e, 0x0cae, 0x0d59, 0x0908, 0x02fd, 0xfd7c,
+ 0xf9ae, 0xfb06, 0x0232, 0x0469, 0xfcbd, 0xf8de,
+ 0xff99, 0x0bbd, 0x1749, 0x184e, 0x13c2, 0x1844,
+ 0x1a7c, 0x0e39, 0x02e7, 0x0433, 0x0903, 0x0337,
+ 0xf6f0, 0xfafe, 0x0c60, 0x0e07, 0x018e, 0xff3a,
+ 0x07aa, 0x0e12, 0x0fa8, 0x0bf1, 0x005f, 0xf2ed,
+ 0xede9, 0xf39f, 0x0146, 0x0c89, 0x083f, 0xfe1e,
+ 0xfd87, 0xfc8b, 0xf4ab, 0xf002, 0xefdc, 0xf40d,
+ 0xff1b, 0x0794, 0x0572, 0xfd28, 0xf83d, 0xfdd3,
+ 0x0596, 0x021a, 0xfb21, 0xfd9e, 0x0374, 0x0342,
+ 0xfc07, 0xeca1, 0xdc29, 0xdcd1, 0xeec5, 0xfc63,
+ 0xff89, 0x03b3, 0x0870, 0x07e8, 0x061e, 0x059f,
+ 0x06ce, 0x0c5a, 0x0e4f, 0x02ab, 0xf375, 0xefef,
+ 0xf8ba, 0x0552, 0x09eb, 0x05e5, 0x077b, 0x0b0b,
+ 0x01f5, 0xf8f7, 0xfd88, 0x02f1, 0x01b0, 0xff8e,
+ 0xfe47, 0xf9a4, 0xed75, 0xe664, 0xf414, 0x044f,
+ 0x029e, 0xff28, 0x0737, 0x0e59, 0x0d19, 0x07d4,
+ 0x0264, 0x0225, 0x096e, 0x0ebe, 0x0b9c, 0x093c,
+ 0x0c43, 0x0b9e, 0x0487, 0xfe34, 0xfe49, 0x0394,
+ 0x066c, 0x03a3, 0xfe62, 0xf751, 0xf138, 0xefb5,
+ 0xf151, 0xf64d, 0xfc76, 0xfd13, 0xfb37, 0xfff8,
+ 0x08e9, 0x0ae2, 0x0913, 0x10bb, 0x16c6, 0x0e0c,
+ 0x0860, 0x0a53, 0x07dc, 0x0b74, 0x12e4, 0x0f11,
+ 0x0d2b, 0x108a, 0x0b3d, 0x0548, 0x048c, 0x02c0,
+ 0x00e1, 0xfe56, 0xfad0, 0xf601, 0xf0f1, 0xf965,
+ 0x0ac4, 0x0d06, 0x029d, 0xfbb9, 0xff01, 0x095b,
+ 0x079e, 0xf862, 0xf3e0, 0xfc3f, 0x0339, 0x0284,
+ 0xfc88, 0xfed5, 0x080e, 0x0ad4, 0x0cb7, 0x0cfe,
+ 0x06b1, 0x052c, 0x0111, 0xf431, 0xf2ab, 0xf358,
+ 0xe1b8, 0xd65e, 0xeb6d, 0x0fc6, 0x1d42, 0x0cad,
+ 0x035d, 0x0cf8, 0x0e51, 0x0ad2, 0x100f, 0x107d,
+ 0x0c6f, 0x0bf2, 0x0501, 0xf9aa, 0xf587, 0xf574,
+ 0xf865, 0x0243, 0x0ba2, 0x0f36, 0x12f4, 0x1505,
+ 0x0dec, 0x02de, 0xfbb3, 0xf91d, 0xf8fb, 0xf43a,
+ 0xf038, 0xfc37, 0x069c, 0xfb78, 0xf484, 0xfdb2,
+ 0x00c7, 0x015a, 0x0898, 0x0a67, 0x0ae8, 0x0f8c,
+ 0x0cc7, 0x06e7, 0x0434, 0xfcc7, 0xf663, 0xf82b,
+ 0xfb51, 0xff89, 0x0486, 0x04d2, 0x00ed, 0xf77c,
+ 0xee9e, 0xf350, 0xf9e6, 0xf705, 0xfc99, 0x0bbf,
+ 0x0bf4, 0xfd56, 0xf778, 0xff97, 0x032b, 0xfc05,
+ 0xfaae, 0x0286, 0x06cc, 0x0465, 0xfe35, 0xfbae,
+ 0x0299, 0x0819, 0x0905, 0x0c83, 0x097a, 0xff13,
+ 0xfbf1, 0xfe18, 0xfdde, 0xfad6, 0xf3e4, 0xec39,
+ 0xe7e9, 0xed12, 0xffc9, 0x0e5c, 0x0ac1, 0x01d7,
+ 0xfe0f, 0xfd22, 0xf8d4, 0xf020, 0xeebc, 0xf2c0,
+ 0xf19e, 0xf48b, 0xf91d, 0xf3f7, 0xf042, 0xeecc,
+ 0xed25, 0xfa02, 0x085d, 0x0634, 0x02d3, 0x01f8,
+ 0xfc2b, 0xf5e0, 0xed28, 0xe35f, 0xdd8b, 0xdf7e,
+ 0xf7df, 0x152f, 0x119f, 0x030a, 0x06dc, 0x0776,
+ 0x026c, 0x0adf, 0x169d, 0x1ac1, 0x178b, 0x0940,
+ 0xf987, 0xf66f, 0xfc8a, 0x0143, 0xff19, 0xfd37,
+ 0x0797, 0x15f1, 0x17e6, 0x10dd, 0x0904, 0xff39,
+ 0xf5d8, 0xf1cc, 0xf5df, 0x02c8, 0x0c21, 0x06fc,
+ 0xfffe, 0xfe87, 0xf79e, 0xeed8, 0xf010, 0xfa06,
+ 0x09e1, 0x177c, 0x15c7, 0x0b74, 0x082c, 0x0996,
+ 0x0327, 0xf4b0, 0xef06, 0xf7fe, 0xfdba, 0xfb19,
+ 0xfb67, 0xfa29, 0xf184, 0xe854, 0xdf59, 0xd8e3,
+ 0xdfb0, 0xf1e4, 0x00fc, 0x0473, 0x0187, 0x02c0,
+ 0x07ae, 0x08c9, 0x05ba, 0x039b, 0x0806, 0x105e,
+ 0x102b, 0x0779, 0x018b, 0xfdc8, 0xfbcc, 0x020b,
+ 0x07ca, 0x0295, 0xfe7c, 0x0593, 0x0bd9, 0x078a,
+ 0xfe60, 0xf4c8, 0xeb5f, 0xe85e, 0xf280, 0x0697,
+ 0x142d, 0x109d, 0x0a27, 0x0712, 0xf841, 0xe83e,
+ 0xeba8, 0xf7cd, 0x05a0, 0x12ad, 0x0e36, 0x04d6,
+ 0x08ee, 0x0748, 0xfe9b, 0xff03, 0xfd48, 0xf809,
+ 0xfa8e, 0xfe97, 0x014b, 0x01dc, 0xffd5, 0x03b7,
+ 0x0094, 0xed57, 0xe8d6, 0xfe23, 0x13f6, 0x1d96,
+ 0x1c77, 0x184a, 0x14fb, 0x09b1, 0xfffc, 0x0857,
+ 0x13af, 0x13aa, 0x1058, 0x0b58, 0xff03, 0xf110,
+ 0xeffc, 0xfca3, 0x04db, 0x01d3, 0xfff3, 0x071c,
+ 0x1012, 0x099f, 0xf4a5, 0xea43, 0xef47, 0xf7a5,
+ 0x070a, 0x179e, 0x18b5, 0x0efc, 0x04c9, 0xfb49,
+ 0xf468, 0xf1c2, 0xf526, 0xfef0, 0x0bf2, 0x171b,
+ 0x16a4, 0x0d50, 0x0bc5, 0x0e31, 0x097d, 0x066d,
+ 0x0836, 0x07a0, 0x061b, 0x06ae, 0x09c0, 0x0cb6,
+ 0x098d, 0x0041, 0xf59a, 0xf405, 0x037d, 0x119d,
+ 0x0da2, 0x090e, 0x0e1c, 0x0d95, 0x050a, 0xff99,
+ 0xfed6, 0xff6a, 0x0212, 0x077e, 0x0ddc, 0x1181,
+ 0x09d5, 0xf892, 0xf661, 0x0aab, 0x1ae7, 0x1b40,
+ 0x1488, 0x0c13, 0x086b, 0x0337, 0xf3d6, 0xef78,
+ 0xfc15, 0x00b0, 0x0231, 0x0ea5, 0x1271, 0x07af,
+ 0x037f, 0x047e, 0xf998, 0xec7c, 0xeefc, 0xf568,
+ 0xf6dc, 0x022a, 0x0d88, 0x040f, 0xf60c, 0xf023,
+ 0xe8ea, 0xe69f, 0xebad, 0xebc5, 0xe957, 0xe9b3,
+ 0xecb1, 0xf62d, 0xfc45, 0xf3f1, 0xec6d, 0xeedb,
+ 0xeedf, 0xf2c6, 0x04f4, 0x0d22, 0x01a5, 0xfca0,
+ 0xf9e0, 0xeaa4, 0xe7b1, 0xf6c1, 0x00af, 0x08bf,
+ 0x12b0, 0x0f3d, 0xfa0b, 0xe1a6, 0xe02e, 0xf322,
+ 0xfa75, 0xf909, 0xf907, 0xed13, 0xe479, 0xe607,
+ 0xdc29, 0xdb15, 0xf1b6, 0x01c9, 0x06eb, 0x0b29,
+ 0x085d, 0x0134, 0xf83c, 0xf148, 0xee6f, 0xe213,
+ 0xd4ab, 0xdb07, 0xef6e, 0x059b, 0x0d2f, 0x029f,
+ 0xfe0c, 0xfc22, 0xf2ab, 0xf5b8, 0xfcd1, 0xf86a,
+ 0xf8b2, 0xfb78, 0xf949, 0xf50c, 0xe77a, 0xe173,
+ 0xf135, 0xfe27, 0x0226, 0x041c, 0xfe5b, 0xfa68,
+ 0xf9c5, 0xf4b1, 0xf2fa, 0xef0e, 0xe608, 0xe73b,
+ 0xed93, 0xf33b, 0xfe13, 0x032b, 0xfc23, 0xf04d,
+ 0xe801, 0xf0b1, 0x061d, 0x1322, 0x0fcc, 0xfccb,
+ 0xe35f, 0xd423, 0xd585, 0xe603, 0xf825, 0xfb3f,
+ 0xf5d0, 0xf41b, 0xf8a7, 0x020b, 0x05ec, 0x0215,
+ 0xfcb6, 0xf262, 0xea19, 0xecf0, 0xf4d4, 0x0273,
+ 0x0ca7, 0x033b, 0xf642, 0xf123, 0xeb80, 0xee20,
+ 0xf5dc, 0xf381, 0xf41a, 0xfc68, 0xfb84, 0xf4d2,
+ 0xf58a, 0xfdfd, 0x05c5, 0x01f6, 0xf94d, 0x0016,
+ 0x0eb1, 0x0a63, 0xfbff, 0xff01, 0x05a4, 0xf92c,
+ 0xee4a, 0xf76b, 0x079f, 0x16d7, 0x206c, 0x1a02,
+ 0x077b, 0xf72a, 0xf308, 0xfab9, 0x0318, 0x0408,
+ 0xfe0d, 0xf3e9, 0xe7c7, 0xde85, 0xe5a0, 0xfdea,
+ 0x0fe9, 0x1480, 0x18ac, 0x1b1f, 0x179f, 0x0f69,
+ 0x0223, 0xf9ac, 0xfb44, 0xf953, 0xee0a, 0xea13,
+ 0xfcf9, 0x14a5, 0x1754, 0x1346, 0x144e, 0x0c1c,
+ 0x0530, 0x07d4, 0x01b5, 0xf935, 0xf872, 0xf4d3,
+ 0xf33b, 0xf6f4, 0xf935, 0x0029, 0x0a2e, 0x11e7,
+ 0x1bc6, 0x21ba, 0x1e34, 0x13ea, 0x0790, 0x072b,
+ 0x0e7a, 0x075a, 0xf638, 0xeb20, 0xec76, 0xfc0d,
+ 0x0b1e, 0x0d45, 0x0759, 0xfab7, 0xf0fa, 0xfaf1,
+ 0x1230, 0x22f6, 0x20c1, 0x0dae, 0xf924, 0xefbf,
+ 0xf713, 0x06e1, 0x0d1f, 0x0c09, 0x0996, 0x0045,
+ 0xfd14, 0x063c, 0x0954, 0x0783, 0x0887, 0x0205,
+ 0xf6e6, 0xf792, 0x0334, 0x0593, 0xf994, 0xf6bb,
+ 0x0020, 0x02b5, 0x0192, 0xfdc1, 0xf2a3, 0xef1e,
+ 0xf1fb, 0xf25e, 0xfa30, 0x015b, 0xfeb7, 0x008f,
+ 0x0614, 0x05ea, 0x03ab, 0x054e, 0x0d09, 0x0f79,
+ 0x0c0b, 0x1455, 0x196c, 0x0ad8, 0xffea, 0x016e,
+ 0x0837, 0x14bb, 0x1add, 0x1887, 0x143f, 0x0664,
+ 0xfa20, 0xfd5a, 0x0375, 0x04ff, 0xffa9, 0xf677,
+ 0xf886, 0xfe63, 0xfddb, 0x01ee, 0x0589, 0x068f,
+ 0x15f1, 0x2930, 0x28e9, 0x1948, 0x0bf7, 0x08ad,
+ 0x0604, 0xfbe2, 0xf26b, 0xf0d8, 0xf34d, 0xf038,
+ 0xeb95, 0xf612, 0x01b2, 0xfc74, 0xff96, 0x0ea5,
+ 0x0b17, 0xfca4, 0xf79e, 0xf99b, 0x008e, 0x01dc,
+ 0xf5bc, 0xec93, 0xef50, 0xf5ba, 0xf804, 0xf504,
+ 0xf3f6, 0xf5b9, 0xfa26, 0x0a43, 0x1ae1, 0x1a0e,
+ 0x124c, 0x0d81, 0x0a51, 0x0e34, 0x1468, 0x116a,
+ 0x0653, 0xf5df, 0xe6ae, 0xe73a, 0xf4c0, 0xfd40,
+ 0xff21, 0x0431, 0x0ad4, 0x1035, 0x150c, 0x14c7,
+ 0x14d4, 0x1b85, 0x19bb, 0x0c87, 0x0618, 0x07ff,
+ 0x0adf, 0x0b2c, 0x04dd, 0x00d8, 0x0597, 0x0b62,
+ 0x10ea, 0x1335, 0x1028, 0x1295, 0x172c, 0x14f0,
+ 0x1190, 0x07da, 0xf21f, 0xdf42, 0xdb56, 0xe4b2,
+ 0xeda3, 0xea70, 0xe6ae, 0xef0b, 0xffd1, 0x0eb6,
+ 0x1109, 0x0fe5, 0x1441, 0x0e55, 0x0986, 0x1888,
+ 0x1ba6, 0x0a92, 0x0390, 0xfe3f, 0xf3d4, 0xf837,
+ 0x01d7, 0x02b9, 0x01a7, 0xfe5e, 0xf9b2, 0xf58c,
+ 0xee7a, 0xebc2, 0xf135, 0xf93c, 0x0424, 0x0d6d,
+ 0x0ce1, 0x01ad, 0xf152, 0xebe0, 0xf73b, 0x0289,
+ 0x05ae, 0x01ce, 0xf7a0, 0xf606, 0x0014, 0x03ed,
+ 0x045b, 0x0a5b, 0x0a63, 0x0463, 0x05f9, 0x0e01,
+ 0x12a9, 0x0dc9, 0x01ba, 0xf7d2, 0xf1de, 0xf023,
+ 0xf850, 0x0226, 0x021f, 0x0164, 0x0853, 0x112e,
+ 0x1759, 0x1737, 0x1212, 0x0f81, 0x0ba1, 0x03eb,
+ 0x03a7, 0x07da, 0x0594, 0x02ea, 0x0249, 0xfed2,
+ 0xfe02, 0x00ae, 0x01b3, 0x0500, 0x0c11, 0x0fca,
+ 0x0a38, 0x0063, 0x01ad, 0x0c6f, 0x11ad, 0x1718,
+ 0x1d15, 0x14aa, 0x0d32, 0x144a, 0x12ae, 0x069a,
+ 0x0360, 0x03de, 0x047f, 0x0912, 0x097a, 0x05f9,
+ 0x02b8, 0xfd6a, 0xfb04, 0xfa88, 0xf70d, 0xf7a5,
+ 0xfdba, 0x08db, 0x19b9, 0x1ec6, 0x1167, 0x035e,
+ 0xfcd1, 0xfeb8, 0x02ba, 0xf9d3, 0xed39, 0xea86,
+ 0xe983, 0xe9ff, 0xec1c, 0xeb97, 0xf883, 0x12fa,
+ 0x1fe9, 0x1c06, 0x16ac, 0x1321, 0x0d1c, 0x0600,
+ 0x02ee, 0xfa04, 0xeafa, 0xf01d, 0xfe24, 0xf7db,
+ 0xf44f, 0xfc00, 0xf71c, 0xf4db, 0xfcdd, 0xfab3,
+ 0xf925, 0x0169, 0x08ac, 0x0ff7, 0x10e5, 0x063e,
+ 0xfa6e, 0xf057, 0xf1f0, 0x032d, 0x0928, 0xfe70,
+ 0xf81f, 0xf632, 0xf40d, 0xf73d, 0xfce9, 0xfc45,
+ 0xf65a, 0xf9b4, 0x0607, 0x0858, 0x04da, 0x05ce,
+ 0xfecd, 0xf3c8, 0xf83c, 0x08b6, 0x11e9, 0x08e2,
+ 0xfd2c, 0x0174, 0x06da, 0x02f6, 0x03a7, 0x073c,
+ 0x08ad, 0x0cfb, 0x0dbc, 0x0936, 0x06b7, 0x02ed,
+ 0xfb12, 0xf679, 0xfe9f, 0x0dc8, 0x0e45, 0xff3d,
+ 0xf1e6, 0xea8c, 0xebee, 0xf36d, 0xf80b, 0x01a9,
+ 0x0c2c, 0x0872, 0x07ab, 0x1475, 0x1e7d, 0x21ab,
+ 0x1ad7, 0x0d20, 0x0c54, 0x0e6a, 0x0238, 0xfa53,
+ 0xfde6, 0xffe0, 0x0185, 0x0382, 0x0134, 0xfeb8,
+ 0xffb9, 0x0055, 0xfde4, 0x01f0, 0x0e70, 0x0cc4,
+ 0xfc39, 0xfb76, 0x0b31, 0x15d4, 0x1a27, 0x183f,
+ 0x0a37, 0xf8f9, 0xf177, 0xf1d9, 0xeed1, 0xe5a2,
+ 0xe0bf, 0xe85b, 0xf85c, 0x0742, 0x1381, 0x1fbc,
+ 0x2400, 0x1cd9, 0x138c, 0x070b, 0xf7ab, 0xf118,
+ 0xef32, 0xeaff, 0xe848, 0xe362, 0xe218, 0xeeb5,
+ 0xfcd5, 0x06ee, 0x1109, 0x127c, 0x1086, 0x1344,
+ 0x1020, 0x0aed, 0x0c4c, 0x0c36, 0x0788, 0xfc35,
+ 0xedc2, 0xebeb, 0xf17e, 0xf549, 0xfe87, 0x02bb,
+ 0xfc95, 0xfd68, 0x00a3, 0xfe22, 0xff4e, 0x0224,
+ 0x067f, 0x09bf, 0xfb18, 0xeb6b, 0xf34d, 0xfe79,
+ 0x0362, 0x0da5, 0x0f60, 0x038f, 0xfc25, 0xfc06,
+ 0xff9a, 0x061a, 0x09e9, 0x0a15, 0x07fb, 0x04e9,
+ 0x0372, 0x0067, 0xfe83, 0x00db, 0xf8a7, 0xe695,
+ 0xe23d, 0xe977, 0xec2a, 0xf011, 0xf599, 0xef49,
+ 0xe6e2, 0xf1d8, 0x0447, 0x057e, 0x009e, 0x09e8,
+ 0x1594, 0x15a1, 0x0fa0, 0x07a6, 0x0139, 0x02aa,
+ 0x0857, 0x0d26, 0x0f05, 0x0571, 0xf36f, 0xeff4,
+ 0xfe13, 0x058f, 0x0445, 0x07b4, 0x01c9, 0xef50,
+ 0xee15, 0xfb0f, 0xfa89, 0xf360, 0xf0e3, 0xeea3,
+ 0xf366, 0x0105, 0x0e0b, 0x153b, 0x0fa9, 0x0271,
+ 0xfd46, 0xfd89, 0xfc42, 0xf7e1, 0xecc1, 0xe86e,
+ 0xf522, 0xff0b, 0xff46, 0x056e, 0x0e68, 0x0e57,
+ 0x0c0b, 0x0f81, 0x0d39, 0xfd51, 0xf0d4, 0xf1d6,
+ 0xf6bc, 0xfd64, 0x00b3, 0xf86c, 0xf296, 0xf7bf,
+ 0xfe6b, 0x061d, 0x0b97, 0x0a10, 0x08e8, 0x0567,
+ 0xff9a, 0x05c3, 0x0fa6, 0x0ee5, 0x0b71, 0x05bc,
+ 0xf9d0, 0xf30a, 0xf39a, 0xf2ae, 0xf13b, 0xf037,
+ 0xed65, 0xf155, 0xfe10, 0xff8c, 0xf217, 0xedbe,
+ 0xf37b, 0xf14e, 0xee5a, 0xf582, 0xfd6a, 0xfd23,
+ 0xf6b1, 0xf47c, 0xfa16, 0xfabc, 0xf48a, 0xf462,
+ 0xfa2c, 0xfbb7, 0xf475, 0xebcd, 0xed7e, 0xf589,
+ 0xfcb4, 0x05e8, 0x0950, 0x0006, 0xf717, 0xf5a3,
+ 0xf652, 0xf8ed, 0xfefe, 0x04a0, 0x0407, 0x00d8,
+ 0x02ce, 0x025b, 0xfc5f, 0xff8b, 0x09a4, 0x0b7a,
+ 0x06e5, 0x007c, 0xfa1f, 0xfd62, 0x0af5, 0x16fe,
+ 0x1ad1, 0x1683, 0x0c43, 0x01eb, 0xfdd2, 0xfe00,
+ 0xfb80, 0xf7d2, 0xf63f, 0xf281, 0xf07c, 0xf939,
+ 0x045d, 0x0729, 0x08ab, 0x0f37, 0x15a2, 0x18f7,
+ 0x19d7, 0x1609, 0x0b08, 0xfb2f, 0xef62, 0xebd5,
+ 0xe784, 0xdfd3, 0xe12c, 0xeeb6, 0xfe55, 0x0a4d,
+ 0x114e, 0x1340, 0x1381, 0x1379, 0x110f, 0x0d1a,
+ 0x090c, 0x0011, 0xf273, 0xed20, 0xf321, 0xfb7b,
+ 0x0533, 0x0d17, 0x0dee, 0x0b51, 0x037f, 0xfd6b,
+ 0x05e8, 0x0955, 0xfcda, 0xf431, 0xebe0, 0xe831,
+ 0xfe28, 0x0f72, 0x01ad, 0xf370, 0xf72e, 0x0315,
+ 0x04a4, 0xf1d2, 0xe844, 0xf34c, 0xf50c, 0xf3a3,
+ 0xfdd1, 0x040f, 0x073c, 0x0862, 0x0435, 0x0ce9,
+ 0x1a87, 0x16f7, 0x0edd, 0x0897, 0x016e, 0x0660,
+ 0x0ff7, 0x0e27, 0x0a5a, 0x0a3d, 0x08e3, 0x0b95,
+ 0x0ffa, 0x094f, 0x018f, 0x0823, 0x0cbb, 0x0608,
+ 0x0575, 0x0893, 0x05da, 0x02dd, 0xfbc4, 0xf862,
+ 0x049d, 0x0a08, 0x06e0, 0x13de, 0x1ee4, 0x13e2,
+ 0x05b3, 0xfe34, 0xfb05, 0xfdeb, 0xfffe, 0xfb17,
+ 0xf78a, 0x00b3, 0x0dc4, 0x0e27, 0x0ce5, 0x1380,
+ 0x1355, 0x1062, 0x13b8, 0x0f20, 0x0344, 0xfca9,
+ 0xf609, 0xec14, 0xe678, 0xe9ae, 0xf16c, 0xf7e6,
+ 0x0229, 0x11b1, 0x1abd, 0x18d3, 0x10b0, 0x0a30,
+ 0x0a28, 0x05eb, 0xfa6a, 0xf5d0, 0xf47d, 0xe642,
+ 0xd0b9, 0xce5f, 0xe7fd, 0xfbdc, 0xf928, 0xff5c,
+ 0x0ddb, 0x0783, 0xfd6e, 0x0146, 0x00d0, 0xfb9c,
+ 0xfd3d, 0xfc4b, 0xf049, 0xe4d6, 0xec24, 0x02aa,
+ 0x0d3e, 0xff64, 0xec7d, 0xec5c, 0xfc76, 0x0565,
+ 0xfbc3, 0xea20, 0xe5b3, 0xf713, 0x0328, 0xf7c4,
+ 0xf00d, 0xf65a, 0xf724, 0xf412, 0xf1ca, 0xebac,
+ 0xe54c, 0xda32, 0xcfa8, 0xdbad, 0xf193, 0xf68e,
+ 0xf587, 0xfed9, 0x09dc, 0x0dbd, 0x0feb, 0x0d1f,
+ 0xf94f, 0xe812, 0xefca, 0xf69c, 0xefce, 0xf292,
+ 0xf75a, 0xf224, 0xf3bb, 0xfb9d, 0xffce, 0x01d3,
+ 0xfce5, 0xf3f9, 0xf32f, 0xf8c8, 0xf873, 0xebc0,
+ 0xe208, 0xe6b8, 0xe790, 0xe55a, 0xf174, 0xfb84,
+ 0xfbce, 0x03b3, 0x0d4c, 0x0b99, 0xff2a, 0xefaf,
+ 0xebd7, 0xef1c, 0xec49, 0xeba2, 0xf1e2, 0xfd3e,
+ 0x0960, 0x0628, 0xfd6a, 0x02da, 0x069e, 0x00b8,
+ 0xfa70, 0xf2a9, 0xeffc, 0xeee8, 0xe33f, 0xdc81,
+ 0xe033, 0xdfee, 0xdfd5, 0xe691, 0xf60d, 0x0c1d,
+ 0x179b, 0x142e, 0x0bf0, 0x06f7, 0x0c4c, 0x0b9e,
+ 0xfbd8, 0xf771, 0xfad8, 0xf426, 0xf875, 0x0802,
+ 0x098f, 0x014d, 0xfb95, 0xfc62, 0x01b9, 0x00bd,
+ 0xfbdb, 0xfbf9, 0x0141, 0x09bd, 0x08fd, 0xfd01,
+ 0xfb9e, 0x0737, 0x0d35, 0x07f3, 0x0167, 0x047a,
+ 0x086a, 0x0338, 0x03b1, 0x0e3d, 0x14ba, 0x12db,
+ 0x0a59, 0x04f7, 0x0794, 0x0330, 0xf943, 0xf67c,
+ 0xf609, 0xf8a4, 0xfc0c, 0xf445, 0xeeed, 0xf86b,
+ 0xfb92, 0xeb05, 0xda18, 0xdee7, 0xf281, 0x0159,
+ 0x0d01, 0x1a37, 0x1f8e, 0x19df, 0x10e2, 0x0c8c,
+ 0x0aea, 0x07f6, 0x0a77, 0x0af7, 0x01ab, 0x04b4,
+ 0x0fb0, 0x09d1, 0x0593, 0x093b, 0x00c8, 0xfc1f,
+ 0x01ac, 0xfed9, 0xff04, 0x0872, 0x0815, 0xfcbb,
+ 0xf287, 0xf1db, 0xf91d, 0xf9fd, 0xf47f, 0xf930,
+ 0x08a2, 0x0fa6, 0x03fc, 0xf6e3, 0xf7ac, 0xfae8,
+ 0xf9d0, 0xfd82, 0x07cf, 0x12f8, 0x17e3, 0x1573,
+ 0x129d, 0x0e50, 0x05fd, 0xffe3, 0xfcf5, 0xfbb7,
+ 0xff57, 0x04df, 0x02f3, 0xf771, 0xed42, 0xeae2,
+ 0xec2a, 0xf483, 0x0206, 0x09df, 0x1196, 0x158c,
+ 0x093f, 0x02bd, 0x0b70, 0x084e, 0xfd7f, 0xfb63,
+ 0xf59f, 0xefd0, 0xfb7e, 0x10d0, 0x1d9d, 0x1abc,
+ 0x1160, 0x0ed1, 0x0e17, 0x0969, 0x0a77, 0x1046,
+ 0x0eaa, 0x0b15, 0x11b5, 0x195d, 0x144b, 0x0a78,
+ 0x096a, 0x1176, 0x1a29, 0x1645, 0x0362, 0xf504,
+ 0xfa90, 0x0c92, 0x1bc8, 0x21b3, 0x2293, 0x201e,
+ 0x14c6, 0x04f0, 0xfc5d, 0xf8a0, 0xf11b, 0xe9fa,
+ 0xebfa, 0xf7c4, 0x0680, 0x0c55, 0x069f, 0x03f4,
+ 0x06fb, 0xfee9, 0xeca6, 0xe380, 0xecc1, 0x0187,
+ 0x0d8d, 0x0736, 0xff4e, 0xff81, 0x01b5, 0x0256,
+ 0xfaf7, 0xf07f, 0xf415, 0xff08, 0x02a3, 0x047a,
+ 0x0a20, 0x0fdb, 0x0d5b, 0x0075, 0xfb32, 0x07b6,
+ 0x1689, 0x1ab7, 0x12e1, 0x07e2, 0x0540, 0x02d3,
+ 0xfaf0, 0xfb4e, 0x01b7, 0x02f6, 0x04b2, 0x05de,
+ 0xff7b, 0xf9f2, 0xf8f2, 0xf69b, 0xf987, 0x0530,
+ 0x0c5c, 0x0d6c, 0x1225, 0x14bb, 0x104c, 0x0df0,
+ 0x0c96, 0x0707, 0x06b0, 0x10ef, 0x195a, 0x14d4,
+ 0x0e26, 0x13ba, 0x17dc, 0x0b8b, 0xfa5d, 0xec9d,
+ 0xe767, 0xf5c2, 0x0740, 0x0791, 0x0631, 0x0cd4,
+ 0x0d24, 0x0397, 0xfa82, 0xf9ce, 0xfb03, 0xf476,
+ 0xf582, 0x08e1, 0x1499, 0x0c9f, 0x0598, 0x0318,
+ 0xff27, 0x071b, 0x15dd, 0x10d0, 0x03fa, 0x0b58,
+ 0x12b7, 0x04d2, 0xfa0b, 0xfe3b, 0x012d, 0x02cc,
+ 0x0515, 0xfdb0, 0xf22d, 0xef6d, 0xf021, 0xeea7,
+ 0xf535, 0x0460, 0x09ba, 0x04c9, 0x0642, 0x05e2,
+ 0xf7ac, 0xebed, 0xe999, 0xe652, 0xe7ac, 0xf290,
+ 0xfb77, 0xff08, 0x05a0, 0x0f3a, 0x0f23, 0x036f,
+ 0xfda5, 0xfd7a, 0xf3ef, 0xf00e, 0xfed8, 0x0a54,
+ 0x0afc, 0x0cc0, 0x0afd, 0x039e, 0xff69, 0xfd65,
+ 0xf9e1, 0xf695, 0xf767, 0xfcc2, 0xfe54, 0xfa72,
+ 0xf9c5, 0xfef6, 0x0958, 0x10da, 0x09d6, 0x04b9,
+ 0x1352, 0x1d12, 0x0e4f, 0xfbf6, 0xf480, 0xee70,
+ 0xeb94, 0xf9ae, 0x0f5a, 0x138e, 0x09b9, 0x06f3,
+ 0x07ed, 0x01b5, 0xfd73, 0x025c, 0x055a, 0xff28,
+ 0xfcb0, 0x0758, 0x0c49, 0xfb25, 0xe9ad, 0xf130,
+ 0x0471, 0x0bfb, 0x0b91, 0x106e, 0x1986, 0x1e18,
+ 0x17cc, 0x0ceb, 0x09e6, 0x037c, 0xebda, 0xdbac,
+ 0xe5e4, 0xf4f1, 0xfc22, 0x0157, 0x018d, 0x0107,
+ 0x058c, 0x015c, 0xf124, 0xe67c, 0xeac5, 0xf83b,
+ 0xfda0, 0xf52f, 0xf92c, 0x0d02, 0x0ca3, 0xfcab,
+ 0xfbe0, 0xfeca, 0xfcac, 0x02b9, 0x0836, 0x07aa,
+ 0x066b, 0xfd22, 0xf6de, 0x0189, 0x0a98, 0x085f,
+ 0x020a, 0xf805, 0xf204, 0xf212, 0xeef0, 0xef78,
+ 0xf946, 0xfeea, 0xf9db, 0xf519, 0xf7bd, 0xf88a,
+ 0xf6bd, 0xfc74, 0xfde7, 0xf529, 0xf73d, 0x01ca,
+ 0x03ce, 0x022c, 0x006f, 0xfd6a, 0xfadf, 0xf5b1,
+ 0xf0d3, 0xf241, 0xfe46, 0x10ba, 0x12ee, 0x090f,
+ 0x0b83, 0x09c7, 0xfe23, 0x0134, 0x06bb, 0x027d,
+ 0xff5e, 0xf820, 0xf572, 0x00fc, 0x0974, 0x0ea4,
+ 0x10f0, 0x0b1c, 0x1213, 0x1eae, 0x174e, 0x0e9e,
+ 0x0f23, 0x09f5, 0xfff5, 0xf2d9, 0xea75, 0xf1a1,
+ 0xfbfd, 0x0361, 0x09cf, 0x0926, 0x0ae1, 0x0f58,
+ 0x0383, 0xf47d, 0xf828, 0xfe91, 0xf870, 0xf3a0,
+ 0xfa89, 0x04a7, 0x0b4d, 0x0b39, 0x00f6, 0xfb48,
+ 0x0456, 0x08bf, 0x04e6, 0x09e7, 0x1259, 0x12d0,
+ 0x0b52, 0xfd4e, 0xf130, 0xee85, 0xf733, 0x04a3,
+ 0xff42, 0xeafe, 0xebfe, 0xfd0a, 0x047b, 0x092d,
+ 0x07a3, 0xf8fb, 0xf971, 0x0978, 0x05b1, 0xfbae,
+ 0x092d, 0x1319, 0x0700, 0x0358, 0x0bed, 0x08d0,
+ 0x0231, 0x05c9, 0x0805, 0x0393, 0x019a, 0x0409,
+ 0x0678, 0x0ccb, 0x186f, 0x17cb, 0x068a, 0xfe2d,
+ 0x029e, 0xfe51, 0xf39f, 0xf10f, 0xf5c1, 0xfd2e,
+ 0xffc7, 0xf6cf, 0xf15e, 0xffb7, 0x0e8f, 0x0837,
+ 0x009a, 0x08b0, 0x0b6a, 0x0207, 0x0107, 0x08f3,
+ 0x093e, 0xff1a, 0xf64d, 0xf53a, 0xf363, 0xf388,
+ 0x02bd, 0x1134, 0x0e2a, 0x0b26, 0x0c71, 0x0316,
+ 0xfbbe, 0x015d, 0xffe1, 0xf4b4, 0xf22c, 0xf465,
+ 0xf8ad, 0x0960, 0x1498, 0x0bc4, 0x0771, 0x0de2,
+ 0x0e66, 0x0e57, 0x1177, 0x118f, 0x1168, 0x0de8,
+ 0x05a6, 0xfe5a, 0xf671, 0xf68d, 0x0369, 0x06b5,
+ 0xfb3a, 0xf47c, 0xf533, 0xf5fa, 0xf577, 0xf284,
+ 0xee94, 0xee6c, 0xeff4, 0xe9f8, 0xe62b, 0xf6a6,
+ 0x0353, 0xf648, 0xf374, 0x08da, 0x1370, 0x0e23,
+ 0x08d1, 0x0359, 0x004b, 0x0039, 0x00b7, 0x0540,
+ 0x0718, 0x014d, 0xfcd3, 0xfa41, 0xf6b1, 0xf596,
+ 0xf276, 0xe9d4, 0xe362, 0xe11c, 0xdfea, 0xe3e6,
+ 0xee29, 0xfb31, 0x0b98, 0x1761, 0x1491, 0x0da4,
+ 0x0b6f, 0x08e0, 0x087a, 0x0a5e, 0x099d, 0x0ab2,
+ 0x0b14, 0x0722, 0x081b, 0x0d8b, 0x12df, 0x199d,
+ 0x1a70, 0x13ba, 0x0beb, 0x0215, 0xfb68, 0xfbb6,
+ 0xfa79, 0xf415, 0xe9d1, 0xe46a, 0xee85, 0xfd8f,
+ 0x078e, 0x0d27, 0x084c, 0x02e8, 0x086d, 0x0aae,
+ 0x096e, 0x0bd5, 0x0741, 0x00b8, 0xff3b, 0xfb94,
+ 0xfebd, 0x0743, 0x0129, 0xf362, 0xebe3, 0xe962,
+ 0xeeef, 0xf7bf, 0xf877, 0xf408, 0xee99, 0xe876,
+ 0xe374, 0xdef6, 0xe0a7, 0xec7e, 0xf773, 0xfddb,
+ 0x06e6, 0x100d, 0x15b0, 0x1688, 0x0fb1, 0x0d5b,
+ 0x16dd, 0x1759, 0x09e9, 0x035a, 0x0534, 0x0643,
+ 0x0293, 0xf669, 0xf127, 0xfc1f, 0xffa4, 0xf66a,
+ 0xf06d, 0xeb01, 0xe754, 0xe95c, 0xe5ad, 0xe1a5,
+ 0xeaf6, 0xf711, 0xfa6b, 0xfc59, 0x05dc, 0x0db2,
+ 0x07b1, 0x01be, 0x04e4, 0x02fa, 0x0035, 0x0478,
+ 0x04bd, 0x060e, 0x0e2a, 0x0f98, 0x0b17, 0x083e,
+ 0x04b5, 0xfff0, 0xf81a, 0xf29a, 0xf69d, 0xf7a9,
+ 0xf235, 0xee6e, 0xe293, 0xd806, 0xece3, 0x0e7b,
+ 0x1535, 0x100f, 0x1b18, 0x24a5, 0x1cd3, 0x1519,
+ 0x0f11, 0xfe6f, 0xf187, 0xf47a, 0xfcca, 0x05bc,
+ 0x0e13, 0x1093, 0x0ec2, 0x0bb6, 0x08d2, 0x050f,
+ 0xfedf, 0xfd40, 0xfd89, 0xf20c, 0xe4e5, 0xe491,
+ 0xe56a, 0xe59a, 0xf35e, 0x023c, 0xfd0d, 0xf4d6,
+ 0x01d5, 0x12a0, 0x105c, 0x0741, 0x0384, 0xfec7,
+ 0xf97e, 0xf839, 0xf917, 0xfcb3, 0x0442, 0x0a24,
+ 0x08eb, 0x064d, 0x08fc, 0x0af2, 0x08be, 0x0591,
+ 0xfdb3, 0xf497, 0xf39a, 0xf517, 0xf451, 0xf649,
+ 0xf91c, 0xf639, 0xef0e, 0xf3f4, 0x0af8, 0x1864,
+ 0x11e8, 0x104f, 0x12f7, 0x0d5c, 0x0c81, 0x126f,
+ 0x147a, 0x1635, 0x18f6, 0x187e, 0x173b, 0x16ce,
+ 0x126b, 0x0814, 0x019d, 0x0241, 0xfe63, 0xf8b5,
+ 0xf7e0, 0xf198, 0xea41, 0xef65, 0xf71f, 0xf73a,
+ 0xf77e, 0xffa0, 0x08bd, 0x0684, 0xff8e, 0xfe7f,
+ 0xfdc0, 0xffbe, 0x06ea, 0x08b4, 0x0aea, 0x1384,
+ 0x1632, 0x11e4, 0x0c77, 0x08aa, 0x0989, 0x06c6,
+ 0x003c, 0xfe30, 0xf55d, 0xe5fa, 0xe067, 0xde80,
+ 0xde54, 0xeea5, 0x067a, 0x0e22, 0x05bb, 0x02e3,
+ 0x0aa0, 0x0af2, 0x04c9, 0x0608, 0x0817, 0x02f9,
+ 0xf80a, 0xeee1, 0xf56e, 0x0279, 0x0436, 0x0423,
+ 0x0909, 0x0f5b, 0x16da, 0x1310, 0x050b, 0xfe6c,
+ 0xf599, 0xe1f3, 0xd4d4, 0xd54d, 0xde99, 0xe817,
+ 0xe57b, 0xdf39, 0xe717, 0xf84c, 0x02ba, 0xffcd,
+ 0xf6c2, 0xf322, 0xf501, 0xf46d, 0xedab, 0xe3b3,
+ 0xde14, 0xe159, 0xe9a8, 0xf0e6, 0xf425, 0xf0ad,
+ 0xe99b, 0xec36, 0xf769, 0xfadf, 0xf8dd, 0xf5ef,
+ 0xeb65, 0xe8d1, 0xf712, 0xfc6a, 0xf212, 0xe933,
+ 0xe9b1, 0xf50e, 0xfe48, 0xfa91, 0xf74f, 0xf860,
+ 0xf8c2, 0xfc99, 0xfdf4, 0xfcd2, 0x0383, 0x095c,
+ 0x0674, 0x01fa, 0x01ea, 0x0790, 0x0867, 0xfe6a,
+ 0xf61a, 0xf3d8, 0xf57e, 0xf770, 0xef43, 0xea2f,
+ 0xf597, 0xf9d0, 0xf086, 0xefc7, 0xf94b, 0x015f,
+ 0xff20, 0xf5b0, 0xf437, 0xf575, 0xeea9, 0xea2e,
+ 0xed0e, 0xf6a9, 0x0545, 0x0a93, 0x07da, 0x0ab4,
+ 0x0d13, 0x0941, 0x03a1, 0xfd8d, 0xf932, 0xf34e,
+ 0xe8e1, 0xe2c8, 0xe4e3, 0xeb8c, 0xf322, 0xf879,
+ 0x01d4, 0x0fa5, 0x1500, 0x13f4, 0x12e7, 0x0c9a,
+ 0x08b7, 0x0cd7, 0x09db, 0x007c, 0xff19, 0xfed3,
+ 0xf8fd, 0xf9fa, 0x033c, 0x062c, 0x00de, 0xff71,
+ 0x05e1, 0x0b07, 0x081a, 0x029f, 0xffd6, 0xfb45,
+ 0xf639, 0xf97e, 0xff1b, 0xf906, 0xecda, 0xeaa9,
+ 0xf186, 0xf67f, 0xfa96, 0x033b, 0x0a9a, 0x0a58,
+ 0x0711, 0x078f, 0x0c41, 0x0ebb, 0x08b3, 0xff6e,
+ 0xfc2d, 0xfa9c, 0xf3ad, 0xf153, 0xfc33, 0x04ce,
+ 0xfea1, 0xf6b8, 0xf4fa, 0xf538, 0x0010, 0x127a,
+ 0x14f3, 0x0dcc, 0x1164, 0x1404, 0x10ab, 0x11ee,
+ 0x096b, 0xf793, 0xf896, 0x037f, 0x037e, 0x0415,
+ 0x05e5, 0x0214, 0x04d7, 0x0cdc, 0x0f1a, 0x09fb,
+ 0xfc67, 0xf613, 0x030a, 0x0b0b, 0x034a, 0xfc7a,
+ 0xf661, 0xf053, 0xf58c, 0xfe3c, 0xfa98, 0xf25c,
+ 0xf8ee, 0x0a68, 0x12a4, 0x107c, 0x09c5, 0xfcb9,
+ 0xf0a5, 0xe841, 0xe11a, 0xe4e9, 0xf0e4, 0xfa20,
+ 0x011d, 0x0021, 0xfcc1, 0x067b, 0x1165, 0x151f,
+ 0x16ba, 0x0f5c, 0x0909, 0x08a7, 0xf903, 0xeb75,
+ 0xf5c5, 0xf668, 0xe5d9, 0xeb42, 0x0aa8, 0x257a,
+ 0x2983, 0x1f17, 0x1abc, 0x1be1, 0x143b, 0x0a11,
+ 0x09df, 0x0eb4, 0x1227, 0x12b5, 0x0738, 0xf4d4,
+ 0xf7eb, 0x0d89, 0x1212, 0x05dc, 0x0359, 0x0ad5,
+ 0x0d6a, 0x07f6, 0x071c, 0x116d, 0x1621, 0x0ee9,
+ 0x0914, 0x063d, 0x07d0, 0x0ec0, 0x0b81, 0x019c,
+ 0x018b, 0x0059, 0xf762, 0xf2bc, 0xf29b, 0xf872,
+ 0x06d2, 0x0c28, 0x0363, 0xff3c, 0x016e, 0xfe1b,
+ 0xf5e2, 0xef61, 0xf086, 0xf6f2, 0xf377, 0xe528,
+ 0xe0af, 0xeed3, 0xfefa, 0xfde6, 0xf434, 0xfa9f,
+ 0x0afb, 0x0fc6, 0x0da8, 0x0c7f, 0x0b08, 0x0b04,
+ 0x0781, 0x0380, 0x0931, 0x0f2b, 0x1010, 0x1055,
+ 0x0a52, 0x0246, 0xfbdf, 0xf217, 0xf1cc, 0xfb02,
+ 0xfddd, 0x01bb, 0x03a5, 0xfb28, 0xfe73, 0x0bb2,
+ 0x07ed, 0xfb46, 0xf8b1, 0xff77, 0x05f9, 0x047f,
+ 0x028b, 0x0631, 0x0a48, 0x1072, 0x1276, 0x075b,
+ 0xfc7f, 0xf9df, 0xf852, 0xf787, 0xf7e3, 0xf8cf,
+ 0xfc5b, 0x0229, 0x088a, 0x0ab9, 0x0a74, 0x0ee9,
+ 0x1067, 0x0c2c, 0x0cb2, 0x0b77, 0x02ce, 0xfba9,
+ 0xf315, 0xed8b, 0xff8a, 0x1b56, 0x1be2, 0x0847,
+ 0x0202, 0x0461, 0x00b6, 0x0699, 0x1563, 0x17c0,
+ 0x11d6, 0x0d07, 0x08ab, 0x0789, 0x0196, 0xf480,
+ 0xeda1, 0xe9b6, 0xe513, 0xe9a3, 0xf4ef, 0x02c4,
+ 0x1140, 0x152c, 0x0e78, 0x0769, 0x04dc, 0x0767,
+ 0x0768, 0x0123, 0xfa75, 0xf353, 0xef95, 0xf2dd,
+ 0xf0c6, 0xe947, 0xebcb, 0xf44e, 0xf52a, 0xf13b,
+ 0xf268, 0xf6c7, 0xf78a, 0xf8bc, 0xfbe3, 0xf9cb,
+ 0xf751, 0xfc02, 0x0277, 0x0711, 0x0735, 0xfd91,
+ 0xf232, 0xf326, 0xff12, 0x0954, 0x09e0, 0x032b,
+ 0xff04, 0x0386, 0x080b, 0x0197, 0xf5f1, 0xf034,
+ 0xf34a, 0xfad5, 0xfe59, 0x023d, 0x0d66, 0x107d,
+ 0x09b4, 0x0a9d, 0x07b7, 0xf609, 0xea43, 0xed27,
+ 0xf915, 0x0a13, 0x144f, 0x172b, 0x19b0, 0x15b0,
+ 0x0fe6, 0x14a3, 0x1aaa, 0x1675, 0x0ddf, 0x08b5,
+ 0x03ee, 0xfb2a, 0xf782, 0x0047, 0x07b8, 0x018c,
+ 0xf887, 0xfb64, 0x048f, 0x0588, 0x00b4, 0xfdee,
+ 0xfa48, 0xf92b, 0xfe40, 0xff70, 0xff19, 0x07aa,
+ 0x0e76, 0x0df8, 0x10cf, 0x0c8e, 0xf63d, 0xe830,
+ 0xf6b6, 0x0eea, 0x19c1, 0x131b, 0x08b8, 0x08f2,
+ 0x098c, 0x03ed, 0x05d8, 0x0774, 0x004e, 0x0455,
+ 0x0f8e, 0x0fea, 0x100b, 0x1016, 0x0628, 0xfde6,
+ 0xf7a5, 0xeb91, 0xe8ed, 0xf735, 0x04c3, 0x04fb,
+ 0xfe37, 0xfdbe, 0x085d, 0x133e, 0x0cbe, 0xf959,
+ 0xf40f, 0xfd18, 0xfee0, 0xfbde, 0xf76d, 0xec91,
+ 0xea81, 0xf43a, 0xf74d, 0xf44c, 0xf205, 0xf0dd,
+ 0xf6a5, 0xfd4b, 0xf7e3, 0xed60, 0xeda9, 0xf868,
+ 0xfe78, 0xfd87, 0xffdc, 0xfec3, 0xf5cf, 0xf6e7,
+ 0x0387, 0x0859, 0x023a, 0xfce2, 0x0043, 0x0acb,
+ 0x121c, 0x0f4a, 0x07e0, 0x03bc, 0x01f1, 0x005d,
+ 0x014a, 0x0495, 0x0a01, 0x0d1e, 0x04a7, 0xfa95,
+ 0xfd49, 0x0474, 0x0ca2, 0x1600, 0x12bd, 0x0630,
+ 0xfca0, 0xf520, 0xf710, 0x021a, 0x071b, 0x0992,
+ 0x0e09, 0x0cb0, 0x07fc, 0x04c2, 0x0500, 0x090a,
+ 0x0ab1, 0x0d9f, 0x142c, 0x0fda, 0x0156, 0xf81c,
+ 0xf6c2, 0xfb1c, 0xff6c, 0xf9ff, 0xf3d1, 0xfe87,
+ 0x11ae, 0x177b, 0x124a, 0x0e5b, 0x065f, 0xf8cf,
+ 0xf130, 0xf238, 0xf4c6, 0xf441, 0xfa7c, 0x0de6,
+ 0x1744, 0x0f6a, 0x0d88, 0x0d4a, 0x08d4, 0x0f2e,
+ 0x11d7, 0x05d6, 0xff40, 0x01ac, 0x09be, 0x114c,
+ 0x0721, 0xf9c2, 0xfce6, 0x02e1, 0x0481, 0x00e1,
+ 0xf645, 0xf3f2, 0xfa1f, 0xf7f8, 0xeef0, 0xeec2,
+ 0x02aa, 0x1717, 0x1048, 0x0137, 0xfb7c, 0xef83,
+ 0xe8f6, 0xf5b3, 0xff67, 0x0111, 0x0697, 0x0a0a,
+ 0x09e2, 0x0c1f, 0x0c02, 0x0526, 0xfb7e, 0xf488,
+ 0xf5e8, 0xfe6c, 0xfea2, 0xf33f, 0xf26e, 0xfed1,
+ 0x036c, 0x00c8, 0x0079, 0x0223, 0x0865, 0x0c5a,
+ 0x063b, 0x0314, 0x0852, 0x0c6f, 0x11f0, 0x1c34,
+ 0x1f1e, 0x13d7, 0x061c, 0xfe39, 0xfad4, 0x0071,
+ 0x070b, 0xff55, 0xf8e5, 0xfe36, 0xfe6a, 0xfe81,
+ 0x07c9, 0x0ee8, 0x14ab, 0x162d, 0x0755, 0xf594,
+ 0xf17b, 0xf8b0, 0xffd5, 0xfb41, 0xf5f4, 0xfbad,
+ 0xfb26, 0xf19d, 0xee64, 0xec4b, 0xe801, 0xec17,
+ 0xf891, 0x0212, 0xff0b, 0xf586, 0xf06d, 0xea89,
+ 0xe4b7, 0xec7b, 0xfa7e, 0xfc5c, 0xf7a5, 0xfbcb,
+ 0x01db, 0xfe96, 0xfd21, 0x0195, 0x0162, 0x0238,
+ 0x02e3, 0xf6d7, 0xef51, 0xf987, 0x00d2, 0xff85,
+ 0x031d, 0x0a5d, 0x0d0f, 0x0c49, 0x0e58, 0x0f10,
+ 0x0622, 0xfd50, 0xfd3d, 0xfd3b, 0xfc08, 0x0169,
+ 0x0dc0, 0x1860, 0x15ab, 0x08c3, 0x003b, 0xfdb0,
+ 0xfa07, 0xf4dd, 0xf6f3, 0x066e, 0x14a6, 0x10c5,
+ 0x01c8, 0xf66c, 0xf571, 0xfaec, 0xfccb, 0xfba5,
+ 0xf9d1, 0xf3bd, 0xefb2, 0xf00b, 0xed53, 0xebe4,
+ 0xf018, 0xf70e, 0x034d, 0x100c, 0x13ce, 0x10b1,
+ 0x078f, 0xf5b1, 0xe3b7, 0xdec6, 0xe681, 0xee9f,
+ 0xf3bc, 0xfbc4, 0x01ef, 0xfe0d, 0xf79e, 0xfc3b,
+ 0x08ff, 0x0e9e, 0x0ddd, 0x11b6, 0x15b0, 0x1535,
+ 0x1194, 0x089d, 0x0483, 0x081e, 0x02f7, 0xfd00,
+ 0x0293, 0x0641, 0x0a7e, 0x13eb, 0x114b, 0x086e,
+ 0x090f, 0x0924, 0x0222, 0xfc2d, 0x000b, 0x0bc8,
+ 0x0c20, 0xfde2, 0xf57b, 0xf619, 0xf65d, 0xf617,
+ 0xf714, 0xfb83, 0x00bc, 0xffe7, 0xfc87, 0xfb7a,
+ 0xf811, 0xf1aa, 0xf24c, 0xfab6, 0xf95c, 0xf068,
+ 0xf7cd, 0x0410, 0xfcff, 0xf36b, 0xf751, 0xfe08,
+ 0xfff1, 0xfc5e, 0xfbe2, 0x02ea, 0xfefd, 0xed8d,
+ 0xe869, 0xf9d0, 0x0fa9, 0x1187, 0x0473, 0x01e2,
+ 0x00fd, 0xf608, 0xf707, 0xfd7f, 0xf43a, 0xf2aa,
+ 0x03f4, 0x0d25, 0x0856, 0x0480, 0x08e3, 0x119c,
+ 0x10a0, 0x052d, 0xffe1, 0xfe57, 0xf3a9, 0xed2e,
+ 0xf8cf, 0x051d, 0x0407, 0xfedc, 0xfb3f, 0xfa84,
+ 0xfe77, 0xff72, 0xfc0a, 0xf7ec, 0xef70, 0xec85,
+ 0xf4cf, 0xf2ed, 0xe8aa, 0xefa7, 0xfd6f, 0xfab2,
+ 0xf4bf, 0xff41, 0x0e93, 0x1160, 0x0cc2, 0x075e,
+ 0x00ac, 0xff7c, 0x0310, 0x04e8, 0x0911, 0x0955,
+ 0xff63, 0xfaa8, 0xfe8f, 0x01dc, 0x08ca, 0x11d4,
+ 0x15d1, 0x183f, 0x1a73, 0x1870, 0x0e54, 0xff6a,
+ 0xfa15, 0x0196, 0x0a62, 0x0d18, 0x09c9, 0x0ad9,
+ 0x13fa, 0x140d, 0x0a7f, 0x0aae, 0x14f7, 0x1d9a,
+ 0x1d62, 0x1356, 0x0aa3, 0x09d2, 0x090b, 0x05b4,
+ 0x06df, 0x0da0, 0x0ead, 0x069d, 0x0277, 0x02fa,
+ 0xfe78, 0xf628, 0xeabf, 0xe3f5, 0xf0bb, 0x04ab,
+ 0x0b74, 0x0806, 0x015c, 0xfd98, 0xfe27, 0xf6b3,
+ 0xe922, 0xe71e, 0xef7f, 0xf3f8, 0xf308, 0xf35f,
+ 0xf2b9, 0xef88, 0xf30b, 0xf8e6, 0xf61c, 0xf8a7,
+ 0x0872, 0x114d, 0x0ac8, 0x0271, 0x01e6, 0x0354,
+ 0xfdf4, 0xfa0f, 0xff87, 0x03d4, 0x0468, 0x085c,
+ 0x0b5d, 0x09d8, 0x094c, 0x0b1b, 0x08f2, 0x017e,
+ 0xfd4b, 0xfbdc, 0xf676, 0xf31e, 0xf397, 0xf1fb,
+ 0xf21d, 0xf60d, 0xfc32, 0x01c0, 0xfe0c, 0xf87b,
+ 0xfcb4, 0xfd53, 0xf28d, 0xe717, 0xe26d, 0xe6f6,
+ 0xea94, 0xe6bc, 0xeb32, 0xf6c9, 0xf641, 0xef6a,
+ 0xf153, 0xf782, 0xf61d, 0xf03a, 0xf2ed, 0xf6c0,
+ 0xef83, 0xeac2, 0xedbe, 0xeafe, 0xe52b, 0xe7ec,
+ 0xf2e7, 0xfab0, 0xf8f2, 0xf7f4, 0xfa15, 0xf78a,
+ 0xf649, 0xfa72, 0x034d, 0x1003, 0x1068, 0x04f5,
+ 0x01e3, 0x000d, 0xf8df, 0xf991, 0xfe48, 0x007e,
+ 0x01ea, 0xff9e, 0xfe92, 0xfe2c, 0xf7e5, 0xf688,
+ 0xfc0e, 0xfd8a, 0xfe85, 0x02c3, 0x06c5, 0x0700,
+ 0x0194, 0xfc62, 0xf565, 0xe8c0, 0xe47c, 0xea0d,
+ 0xefa9, 0xf6ca, 0xf5e3, 0xed49, 0xeea7, 0xedc0,
+ 0xe672, 0xf1b7, 0x021f, 0xff56, 0xf76f, 0xf328,
+ 0xef5b, 0xef6d, 0xf03e, 0xf363, 0xfb1f, 0xfc5d,
+ 0xf8aa, 0xf85c, 0xf2a2, 0xe98f, 0xef9f, 0xfef9,
+ 0x0070, 0xf599, 0xf0c5, 0xf4ed, 0xfa05, 0xfb5b,
+ 0xf9a0, 0xfa8d, 0xfe0c, 0x004b, 0x05e7, 0x0d2a,
+ 0x0f06, 0x0f49, 0x0c9f, 0x064b, 0x077d, 0x0882,
+ 0xff17, 0xfbe9, 0xffab, 0xf99f, 0xf3dc, 0xf9b2,
+ 0xfdd2, 0xf9fe, 0xf923, 0xfc8d, 0xf91c, 0xf3b3,
+ 0xf7da, 0xf9e1, 0xf42b, 0xf438, 0xf6c5, 0xf662,
+ 0xf8f9, 0xf902, 0xf464, 0xee8f, 0xe91e, 0xf52a,
+ 0x0cd3, 0x0e66, 0x0360, 0x035a, 0x0401, 0x0466,
+ 0x065a, 0xfeb2, 0xf974, 0xff1e, 0xff13, 0xf8cd,
+ 0xf5d7, 0xf459, 0xf4e6, 0xf8f1, 0xfe34, 0x02fb,
+ 0x0575, 0x09bb, 0x13f5, 0x19f5, 0x1389, 0x0c28,
+ 0x0afb, 0x04da, 0xfb3a, 0xfc81, 0x0418, 0x0820,
+ 0x093d, 0x070a, 0x06c0, 0x0b80, 0x0e0e, 0x0f3c,
+ 0x0b1b, 0xfd27, 0xf952, 0x020e, 0xffdc, 0xf4d0,
+ 0xf05b, 0xf6ff, 0x02ce, 0x0271, 0xf9d3, 0xfa43,
+ 0xfa2a, 0xf494, 0xf497, 0xf806, 0xfb8e, 0xfd59,
+ 0xfbb7, 0xfb74, 0xf6ba, 0xed6d, 0xec47, 0xf069,
+ 0xf923, 0x062c, 0x0818, 0x0518, 0x06f4, 0x025c,
+ 0xfc00, 0xf826, 0xf347, 0xfd3f, 0x1189, 0x1867,
+ 0x140a, 0x0c24, 0x0565, 0x05a0, 0x079b, 0x0c7f,
+ 0x137e, 0x124f, 0x116a, 0x16cc, 0x178f, 0x12b4,
+ 0x0b6d, 0x074e, 0x0b47, 0x0c9e, 0x087d, 0x0548,
+ 0x0153, 0x0073, 0x018b, 0xfe51, 0xfc97, 0xf9e7,
+ 0xf3a5, 0xf458, 0xfa55, 0x0256, 0x0c32, 0x0cef,
+ 0x066e, 0x02d3, 0x0317, 0x0738, 0x063d, 0x0048,
+ 0x044f, 0x0802, 0x0032, 0xfa8a, 0xf94f, 0xf790,
+ 0xf814, 0xfccc, 0x0584, 0x081d, 0x0446, 0x03af,
+ 0xf9d4, 0xebb5, 0xee2e, 0xedd5, 0xe80b, 0xf663,
+ 0x0611, 0x04e4, 0x0129, 0xff2a, 0x0592, 0x13b7,
+ 0x18d5, 0x1b06, 0x1e8d, 0x1bb5, 0x1d48, 0x1e95,
+ 0x11b6, 0x07a3, 0x06fc, 0x045c, 0x07bb, 0x1129,
+ 0x0f6c, 0x07d6, 0x0888, 0x07bf, 0xffbd, 0xffea,
+ 0x076a, 0x07dc, 0x059a, 0x0476, 0x0128, 0x0443,
+ 0x0d52, 0x103a, 0x0fed, 0x14c2, 0x1b2c, 0x174c,
+ 0x0536, 0xf543, 0xf6a5, 0x04d0, 0x10ce, 0x0d82,
+ 0x01c1, 0xfe44, 0xfd58, 0xf525, 0xedfa, 0xf090,
+ 0xfc69, 0x053d, 0x011e, 0xfd5b, 0x011d, 0xffd5,
+ 0xfeff, 0x0d9b, 0x2104, 0x247c, 0x159d, 0x0472,
+ 0x00a9, 0x06fb, 0x084b, 0x037e, 0x0385, 0x064f,
+ 0x0580, 0x0716, 0x0b5e, 0x0c4c, 0x0c5e, 0x0ec6,
+ 0x1441, 0x1522, 0x0a1e, 0x06fd, 0x1068, 0x088a,
+ 0xf61d, 0xf235, 0xf294, 0xf59f, 0xffba, 0xff9d,
+ 0xf7be, 0xf698, 0xf8fe, 0xfc7a, 0xfe1e, 0xfc26,
+ 0xfcfa, 0xfe36, 0xfa89, 0xf251, 0xebee, 0xf50e,
+ 0x05c4, 0x0967, 0x07eb, 0x0d62, 0x1305, 0x10d2,
+ 0x04fc, 0xfb37, 0xfaec, 0xf9f9, 0xf97d, 0xfb96,
+ 0xfb35, 0x04fd, 0x15a5, 0x14fe, 0x09c4, 0x0290,
+ 0xfbbe, 0xf8ec, 0xfdb9, 0x04dc, 0x0983, 0x0807,
+ 0x0461, 0x01fb, 0xfe0b, 0xfc38, 0xfd63, 0xfcec,
+ 0xfc40, 0xfda1, 0x03dd, 0x0b22, 0x0923, 0x069b,
+ 0x0c1c, 0x0be6, 0x04df, 0x03fb, 0x09e8, 0x1063,
+ 0x0df9, 0x02c2, 0xff04, 0x04ef, 0x08ed, 0x0898,
+ 0x0474, 0xff67, 0xfc93, 0xf5ec, 0xedd7, 0xecc8,
+ 0xeadf, 0xe7d2, 0xf34c, 0x0308, 0x0180, 0xfbb0,
+ 0x002f, 0x005d, 0xf720, 0xf330, 0xf97e, 0xff02,
+ 0xf76f, 0xedc6, 0xf76e, 0x063d, 0x0265, 0xf9ba,
+ 0x01bc, 0x17fd, 0x2842, 0x23e1, 0x1ada, 0x1a29,
+ 0x1277, 0x0627, 0x0317, 0x0024, 0xfd2c, 0x0316,
+ 0x087a, 0x08b6, 0x0711, 0x01cf, 0x01a9, 0x08be,
+ 0x0420, 0xf8bd, 0x01a5, 0x1127, 0x08c5, 0xfc3f,
+ 0x04f5, 0x0e8c, 0x099b, 0x0204, 0xff2c, 0x02b2,
+ 0x0a88, 0x1037, 0x0eb1, 0x00e2, 0xf2bb, 0xf668,
+ 0xfe6c, 0xfb7d, 0xf727, 0xf5b5, 0xf675, 0xf835,
+ 0xf413, 0xf265, 0xfa7a, 0xfbd5, 0xefb3, 0xe707,
+ 0xeeb7, 0xfc8e, 0x00d7, 0x04d3, 0x0f99, 0x0f05,
+ 0x036d, 0xfc48, 0xf50e, 0xede1, 0xf141, 0xfb3b,
+ 0x01ba, 0x038f, 0x07e1, 0x0bf3, 0x026d, 0xf49a,
+ 0xf3d4, 0xfa82, 0x0263, 0x05ab, 0xfb04, 0xf0a2,
+ 0xf367, 0xf379, 0xe976, 0xe4b2, 0xed10, 0xf571,
+ 0xf458, 0xf89d, 0x0818, 0x1047, 0x0e3b, 0x0d40,
+ 0x0df1, 0x0fff, 0x104a, 0x08fb, 0x0291, 0x0573,
+ 0x08f0, 0x02e4, 0xf756, 0xf32c, 0xf8a4, 0xfa6b,
+ 0xf33e, 0xf107, 0xfa72, 0xffed, 0xfa86, 0xf62a,
+ 0xf323, 0xef36, 0xf401, 0xfac9, 0xf99b, 0xfb29,
+ 0x008b, 0x00c5, 0xfe7a, 0xfb34, 0xf714, 0xf6e1,
+ 0xfec8, 0x103c, 0x1c75, 0x1367, 0x033d, 0xfc31,
+ 0xf7ea, 0xf389, 0xf5f9, 0xfe07, 0x0321, 0x0886,
+ 0x14eb, 0x16d9, 0x0771, 0x00cc, 0x0261, 0xfafd,
+ 0xfaa0, 0x0627, 0x0bb8, 0x0cb2, 0x0b98, 0x046d,
+ 0xfde3, 0xf9fc, 0xf4a9, 0xeeb1, 0xeec7, 0xfb82,
+ 0x0824, 0x07d1, 0x082e, 0x0f61, 0x12dd, 0x1278,
+ 0x0dfb, 0x0232, 0xf5fd, 0xf09c, 0xf34f, 0xf9ce,
+ 0xfeb8, 0x0132, 0xfcfa, 0xf21e, 0xef73, 0xfc0f,
+ 0x0a90, 0x0bf3, 0x0543, 0x07de, 0x10e7, 0x12a0,
+ 0x0f56, 0x07d7, 0xfd00, 0xfc34, 0x01a5, 0xff0c,
+ 0xfb32, 0xfbe2, 0xf88e, 0xf262, 0xf3c8, 0xfa77,
+ 0xfd05, 0x002f, 0x05fe, 0x0180, 0xf6fe, 0xf21d,
+ 0xeb52, 0xe4fa, 0xeba1, 0xfcec, 0x0e6c, 0x113f,
+ 0x0a4f, 0x1226, 0x1c52, 0x13aa, 0x0847, 0x0239,
+ 0x0158, 0x08e4, 0x0577, 0xf974, 0xfc5a, 0xfe02,
+ 0xf3e3, 0xf2cc, 0xfb09, 0x0144, 0x0177, 0xfdc4,
+ 0x022b, 0x09e3, 0x087f, 0x0595, 0x015b, 0xf5b3,
+ 0xec0c, 0xee1c, 0xfaab, 0x003e, 0xf7f3, 0xfca1,
+ 0x0ed5, 0x0fab, 0x02c9, 0xf79d, 0xf1b6, 0xfcf1,
+ 0x130d, 0x2040, 0x2182, 0x18f0, 0x1014, 0x0bf4,
+ 0xff9c, 0xf333, 0xf663, 0xfa88, 0xf79c, 0xf82b,
+ 0xfdda, 0x03ef, 0x0300, 0xf987, 0xf224, 0xf2ac,
+ 0xf8ef, 0xfc9e, 0xf88a, 0xf91a, 0xfe42, 0xf88f,
+ 0xf470, 0xfe6f, 0x0587, 0x0547, 0x0630, 0x047b,
+ 0x01e7, 0x0476, 0x0779, 0x07a9, 0x05a2, 0x00c2,
+ 0xfcac, 0xfa25, 0xf26a, 0xeabd, 0xf0e2, 0xfa80,
+ 0xf437, 0xe75d, 0xe2ce, 0xe3b6, 0xebfd, 0xfe00,
+ 0x0c11, 0x0caa, 0x05c6, 0xfed6, 0xf992, 0xf750,
+ 0xfbba, 0x01e6, 0x0061, 0xff14, 0x07b3, 0x0edd,
+ 0x0e16, 0x0e99, 0x102f, 0x0fd5, 0x12db, 0x1370,
+ 0x087f, 0xfb7b, 0xf4ef, 0xef65, 0xe872, 0xe49b,
+ 0xe9ad, 0xf546, 0xfb2b, 0xfea3, 0x080e, 0x08f0,
+ 0x0103, 0x03ca, 0x0968, 0x088f, 0x0cd7, 0x11dc,
+ 0x0ea9, 0x09a6, 0x094a, 0x0f95, 0x1078, 0x0573,
+ 0x035c, 0x0834, 0x002d, 0xfbf9, 0x04c7, 0x06a7,
+ 0x01d8, 0xff1d, 0xfdbe, 0xff45, 0xfe1a, 0xf7b4,
+ 0xf661, 0xfe6c, 0x0802, 0x07bb, 0x0599, 0x12af,
+ 0x1cb1, 0x1313, 0x0a85, 0x05a9, 0xfc1e, 0xffe9,
+ 0x1330, 0x1e81, 0x14cd, 0x00ad, 0xfb5a, 0x025e,
+ 0x0069, 0x0032, 0x05ce, 0xfd78, 0xf195, 0xf187,
+ 0xf418, 0xf45a, 0xecca, 0xdfcc, 0xe349, 0xf527,
+ 0xfde8, 0xfb75, 0xfa30, 0xfd7b, 0xfb0c, 0xefd0,
+ 0xeb0a, 0xed9f, 0xec9b, 0xeff9, 0xfb50, 0xffd5,
+ 0xf863, 0xf196, 0xf71b, 0xfebe, 0xfa83, 0xf45e,
+ 0xf0fb, 0xe8b0, 0xe326, 0xe15b, 0xdefb, 0xe82b,
+ 0xf4c7, 0xf2d0, 0xf2fb, 0x0114, 0x0c41, 0x0c4c,
+ 0x0840, 0x0815, 0x0888, 0xffbf, 0xf846, 0xff1f,
+ 0x06ba, 0x0555, 0x0255, 0xfe87, 0xf927, 0xf88c,
+ 0xfdc6, 0x02c7, 0x039b, 0x0093, 0xfb9d, 0xf8c3,
+ 0xfb2e, 0x00e7, 0x07f7, 0x0c82, 0x080e, 0xfea7,
+ 0xf788, 0xf3ec, 0xf997, 0x059d, 0x0a40, 0x0b2e,
+ 0x0f69, 0x0f62, 0x0a62, 0x03c1, 0xfaec, 0xf634,
+ 0xf930, 0x0017, 0x05c9, 0x054a, 0x05ec, 0x0d2b,
+ 0x0e18, 0x0588, 0xf96f, 0xea47, 0xe5ee, 0xefe8,
+ 0xf494, 0xf6c8, 0xfe57, 0xfd64, 0xf820, 0xfa68,
+ 0xfd16, 0xff37, 0x012e, 0xfffe, 0x0452, 0x0ad8,
+ 0x09ae, 0x06ae, 0xff35, 0xf77b, 0x0684, 0x1f1d,
+ 0x2298, 0x19c0, 0x1456, 0x1314, 0x1655, 0x13f8,
+ 0x07bf, 0xffe8, 0xfe97, 0xfc1e, 0xfb93, 0x02b8,
+ 0x0ea5, 0x1021, 0x03d4, 0x0263, 0x1177, 0x177d,
+ 0x0fa5, 0x08f1, 0x0734, 0x0726, 0x059a, 0x0446,
+ 0x03a0, 0xfcd8, 0xf86a, 0xff9c, 0x0151, 0xfc9f,
+ 0x0380, 0x0999, 0x0395, 0xffb6, 0xfc25, 0xf478,
+ 0xf604, 0xfc70, 0xfb79, 0xfd2d, 0x058e, 0x0355,
+ 0xf2f4, 0xea85, 0xf51a, 0x0122, 0x047a, 0x0b4c,
+ 0x158b, 0x141e, 0x07e6, 0xfdf9, 0xfa25, 0xf92f,
+ 0xf92b, 0xf717, 0xf058, 0xea9c, 0xee76, 0xfa4a,
+ 0x0399, 0x017f, 0xf6a2, 0xf338, 0xfefe, 0x08ad,
+ 0x044d, 0x036e, 0x0e13, 0x0cbf, 0xfb05, 0xf236,
+ 0xf5ab, 0xf988, 0xffad, 0x03e2, 0x0169, 0xfe23,
+ 0xf59c, 0xebe9, 0xef33, 0xf136, 0xea73, 0xf01f,
+ 0xfdbd, 0x01a9, 0x0086, 0xfb17, 0xf0a8, 0xe85b,
+ 0xe0f3, 0xe019, 0xecea, 0xf871, 0xfb21, 0x005c,
+ 0x07d6, 0x0828, 0x0186, 0xfa9e, 0xf6b4, 0xf570,
+ 0xf7cf, 0xfaa0, 0xf960, 0xf943, 0xfc90, 0xfe30,
+ 0xfe66, 0xfaff, 0xf0e7, 0xeb42, 0xf493, 0x02e3,
+ 0x0426, 0xfb53, 0xf99e, 0xf927, 0xf0aa, 0xf1ef,
+ 0xfe4c, 0x00a7, 0xfcb3, 0xfea3, 0x0496, 0x0ad2,
+ 0x07c3, 0xfc2f, 0xfbe9, 0x0754, 0x0ccf, 0x0972,
+ 0x0361, 0xfdc3, 0xf7bc, 0xefde, 0xeb27, 0xea03,
+ 0xe364, 0xd842, 0xd677, 0xe4d7, 0xf823, 0xffed,
+ 0xfa4e, 0xf280, 0xf3cd, 0xfd95, 0x0174, 0xfb4a,
+ 0xf7ee, 0xfa1a, 0xfa00, 0xf5df, 0xefa5, 0xec06,
+ 0xeed5, 0xf644, 0x0032, 0x0650, 0x0353, 0xfffe,
+ 0x0081, 0xfb9f, 0xf1ec, 0xed55, 0xf1c7, 0xfdb3,
+ 0x080e, 0x068a, 0xfee7, 0xfaef, 0xf551, 0xef8f,
+ 0xf918, 0x0979, 0x0aaa, 0x0668, 0x0cc7, 0x124b,
+ 0x0d02, 0x0243, 0xf6fa, 0xf03c, 0xf183, 0xf7db,
+ 0xfe0e, 0xffb3, 0xff05, 0x01e6, 0x0628, 0x070b,
+ 0x065f, 0x080d, 0x0cb1, 0x1044, 0x0dd2, 0x04e8,
+ 0xf913, 0xee7f, 0xe8f6, 0xed3c, 0xfa05, 0x0314,
+ 0x03bd, 0x04bf, 0x090c, 0x0d50, 0x0e38, 0x09b9,
+ 0x05c3, 0x021f, 0xf878, 0xf5b5, 0x000d, 0x043e,
+ 0x00fb, 0x02bb, 0x01b1, 0xf991, 0xf611, 0xfb56,
+ 0x00f2, 0xfe2e, 0xfac2, 0x0612, 0x16f2, 0x1936,
+ 0x111c, 0x0f6c, 0x1542, 0x13de, 0x0775, 0x02b1,
+ 0x0a53, 0x0c62, 0x0b02, 0x11db, 0x128c, 0x0412,
+ 0xf7a4, 0xfa84, 0x0931, 0x1241, 0x0a47, 0x0414,
+ 0x08bb, 0x03a6, 0xfb00, 0x0112, 0x04c4, 0xfe19,
+ 0xfb0d, 0xf8fd, 0xf57d, 0xf39f, 0xf17a, 0xf7bd,
+ 0x0219, 0xfe32, 0xf712, 0xfae9, 0x010c, 0x0552,
+ 0x0484, 0xfe3f, 0xf9cd, 0xedab, 0xdacd, 0xdc1f,
+ 0xef07, 0xfa46, 0xfd42, 0x00ea, 0x0397, 0xff95,
+ 0xf6e0, 0xf50c, 0xf924, 0xf933, 0xf8d9, 0xf8c3,
+ 0xf42f, 0xf659, 0x0540, 0x1065, 0x0fc5, 0x1046,
+ 0x15c4, 0x14f4, 0x10c6, 0x1405, 0x1733, 0x1307,
+ 0x0b8f, 0xff41, 0xef58, 0xe613, 0xeba6, 0xfe12,
+ 0x0a7e, 0x0a3a, 0x114d, 0x1c2e, 0x176b, 0x0f74,
+ 0x0de3, 0x09bc, 0x07f9, 0x0946, 0x05b1, 0x0324,
+ 0x03ee, 0x036b, 0x01f7, 0xffe6, 0x01db, 0x0482,
+ 0xfc29, 0xf5db, 0xfbc5, 0xfa12, 0xf212, 0xf685,
+ 0xfd2b, 0xfcb6, 0x01f8, 0x0e4b, 0x13d6, 0x0fae,
+ 0x0e67, 0x1294, 0x0f79, 0x0940, 0x0c20, 0x0e21,
+ 0x067b, 0xfa57, 0xf030, 0xf715, 0x0e95, 0x180d,
+ 0x0df1, 0x0bc8, 0x1313, 0x0e63, 0x01cf, 0x021b,
+ 0x0add, 0x0ba4, 0x0aa0, 0x0d07, 0x071b, 0xfd42,
+ 0xfe3c, 0x04fb, 0x043a, 0xfd5c, 0x0041, 0x0c2f,
+ 0x08a0, 0xf89b, 0xf587, 0xf89c, 0xf47d, 0xf2ab,
+ 0xf768, 0xff76, 0x067f, 0x0530, 0xff94, 0xfd4d,
+ 0xfda6, 0xfe38, 0xfb84, 0xf981, 0xfe53, 0x00b2,
+ 0xfc9d, 0xf9c4, 0xf4a4, 0xea91, 0xe5da, 0xed8d,
+ 0xfb79, 0x0402, 0x09e7, 0x1335, 0x121e, 0x0409,
+ 0xfe19, 0x03a3, 0x06e8, 0x07e0, 0x0f69, 0x18f5,
+ 0x16b0, 0x0f76, 0x1211, 0x1406, 0x0d85, 0x07ef,
+ 0x047a, 0x0628, 0x0fd8, 0x1697, 0x1721, 0x126f,
+ 0x04de, 0xf642, 0xeff1, 0xf4f8, 0x013e, 0x05ca,
+ 0x05a8, 0x0e25, 0x12eb, 0x0cc8, 0x079b, 0x03e1,
+ 0xfecf, 0xfa2a, 0xf70b, 0xf900, 0xfcbc, 0xffe4,
+ 0x06ed, 0x0c56, 0x0be3, 0x088a, 0x0132, 0xfc52,
+ 0xfe78, 0xfdb6, 0xf7b4, 0xf2b2, 0xef36, 0xe9ad,
+ 0xe383, 0xe84f, 0xf519, 0xf726, 0xf479, 0xfadf,
+ 0x0219, 0x0478, 0x0344, 0xff4b, 0xfcee, 0xfc84,
+ 0x0133, 0x08dd, 0x046e, 0xffa4, 0x0ee7, 0x1be5,
+ 0x139a, 0x0c28, 0x13bd, 0x18a4, 0x110e, 0x0ef2,
+ 0x1480, 0x0e2e, 0x0432, 0x0118, 0xf99c, 0xfa3b,
+ 0x0aca, 0x12f1, 0x132b, 0x1776, 0x1393, 0x0594,
+ 0xf874, 0xef84, 0xe983, 0xe6db, 0xf110, 0x0330,
+ 0x0703, 0x0304, 0x0640, 0x0776, 0x0649, 0x06ea,
+ 0x01c3, 0xfc45, 0xfd84, 0xfdbe, 0xfb2d, 0xfc82,
+ 0x011c, 0xffd0, 0xf75d, 0xf3c2, 0xf877, 0xfcf3,
+ 0xfde5, 0xffa9, 0x045f, 0x0221, 0xf5f8, 0xefe7,
+ 0xf0b3, 0xf1d1, 0xfcf2, 0x092a, 0x09d1, 0x0c0a,
+ 0x0e42, 0x0c20, 0x12f5, 0x16e7, 0x0d8d, 0x0adc,
+ 0x1028, 0x13ce, 0x1aef, 0x2084, 0x1cf1, 0x1224,
+ 0x013e, 0xf46c, 0xf6ad, 0x007d, 0x0734, 0x0ad7,
+ 0x0ba9, 0x0524, 0xfbd9, 0xfd32, 0x0722, 0x0d6e,
+ 0x0f78, 0x0e23, 0x07d5, 0x022f, 0x0193, 0x0352,
+ 0x0246, 0xfe23, 0xfc7b, 0xfab7, 0xf407, 0xf02c,
+ 0xf2d8, 0xf6cc, 0xfa11, 0xf779, 0xeded, 0xeba0,
+ 0xf6bf, 0xff3c, 0xf82f, 0xee7d, 0xf22e, 0xf6c9,
+ 0xefb3, 0xef66, 0xff0b, 0x089c, 0x0318, 0xfe0b,
+ 0xff1e, 0xfb4b, 0xed0c, 0xe284, 0xedf4, 0x04ad,
+ 0x0c70, 0x0973, 0x0d30, 0x10c1, 0x0d75, 0x0a3e,
+ 0x061e, 0xfec4, 0xf729, 0xf331, 0xf95f, 0x03b4,
+ 0x07dc, 0x0db8, 0x159e, 0x1255, 0x05a0, 0xf88c,
+ 0xf3fc, 0xfaab, 0xfa63, 0xef61, 0xf16b, 0x0031,
+ 0x05b0, 0x0156, 0x01f0, 0x0ab2, 0x0f9b, 0x0984,
+ 0xff8d, 0xf969, 0xfb9b, 0x01fd, 0xfe07, 0xf00e,
+ 0xe6d8, 0xe88a, 0xf39b, 0xff05, 0x00f2, 0xfddf,
+ 0xfce5, 0xfe70, 0x016d, 0x063f, 0x1045, 0x1776,
+ 0x10c5, 0x090d, 0x07d3, 0x0092, 0xf8de, 0xfd56,
+ 0x0758, 0x0c91, 0x085e, 0xfe60, 0xf5e9, 0xf341,
+ 0xfcac, 0x075c, 0x00af, 0xf7ba, 0xf99b, 0xf8bc,
+ 0xfa9c, 0x0550, 0x05e2, 0xfbe3, 0xf7d5, 0xfa96,
+ 0xfdbb, 0x00a4, 0x072c, 0x0c27, 0x07f7, 0x0636,
+ 0x0995, 0x0373, 0xfd73, 0x03e3, 0x0ae6, 0x0e26,
+ 0x0aa9, 0xfa8c, 0xf19d, 0xf90c, 0xf95e, 0xf342,
+ 0xf8d2, 0xfaca, 0xed96, 0xeb3e, 0xfe42, 0x0d02,
+ 0x0afd, 0x0501, 0x0155, 0xfa97, 0xf2fc, 0xf458,
+ 0xfb7b, 0xfeac, 0x0557, 0x1192, 0x1206, 0x0a11,
+ 0x0b3f, 0x0e45, 0x088e, 0x0009, 0xfd29, 0x0578,
+ 0x0f99, 0x0cc7, 0x05a2, 0x0505, 0x04e7, 0x0201,
+ 0xfadb, 0xf240, 0xf6db, 0x059b, 0x0a49, 0x0629,
+ 0x071d, 0x0c1d, 0x0dec, 0x0d24, 0x0db9, 0x0bd8,
+ 0x0203, 0xf988, 0xfc22, 0x003d, 0xfde5, 0xfd7d,
+ 0x0309, 0x073a, 0x0576, 0x0033, 0xfbf1, 0xf857,
+ 0xf2e7, 0xf13d, 0xf734, 0xfb9c, 0xf71e, 0xed47,
+ 0xe769, 0xec7f, 0xf26f, 0xed40, 0xe73e, 0xe704,
+ 0xe6d5, 0xed02, 0xf85b, 0xfd80, 0x03ed, 0x0b78,
+ 0x0709, 0x02e4, 0x0909, 0x0d79, 0x110e, 0x1431,
+ 0x0b42, 0xfc25, 0xf0fc, 0xea0f, 0xecd2, 0xf76e,
+ 0xfffb, 0x03f3, 0xfe02, 0xefe7, 0xead5, 0xef63,
+ 0xf07b, 0xef3a, 0xf01a, 0xf2d0, 0xf82d, 0xff49,
+ 0x0957, 0x1460, 0x1761, 0x1511, 0x13d0, 0x0dfd,
+ 0x0748, 0x08d7, 0x0b37, 0x071a, 0xfd8e, 0xf2c4,
+ 0xf239, 0xf8a8, 0xf6d8, 0xf6e2, 0x0061, 0x00a2,
+ 0xf920, 0xf817, 0xf590, 0xf371, 0xfb5e, 0xfd27,
+ 0xf5b6, 0xfdd1, 0x0ffc, 0x0eed, 0x02ed, 0x07af,
+ 0x13f8, 0x11e7, 0x0c55, 0x1017, 0x1122, 0x0c0f,
+ 0x0a7d, 0x08af, 0x00a6, 0xf6a7, 0xeecb, 0xed46,
+ 0xf44c, 0xfbd8, 0xfedd, 0x0404, 0x0a03, 0x063c,
+ 0xfd5e, 0xfa26, 0xf796, 0xf2b0, 0xf33f, 0xfaac,
+ 0x03fe, 0x06d1, 0x0000, 0xfc89, 0xfe7c, 0xf9cf,
+ 0xf529, 0xf5f4, 0xf38d, 0xf2dd, 0xf5e6, 0xf6bd,
+ 0xfe37, 0x09f4, 0x0c6b, 0x0c58, 0x0e1c, 0x0b11,
+ 0x05cf, 0x0023, 0xf988, 0xf395, 0xedb0, 0xecbb,
+ 0xf08d, 0xf1e7, 0xf63d, 0xfef4, 0x045d, 0x093f,
+ 0x0aac, 0x05b1, 0x0777, 0x0c76, 0x0671, 0xfec4,
+ 0xffab, 0x0369, 0x043f, 0x03a2, 0x08a7, 0x0f61,
+ 0x0ad3, 0x0212, 0x0238, 0x04f9, 0x04ed, 0x0603,
+ 0x0482, 0xfa6c, 0xeea3, 0xeb2b, 0xeda3, 0xf491,
+ 0x0356, 0x0cde, 0x081e, 0x0550, 0x0777, 0x02dd,
+ 0xff20, 0x0092, 0xfdaa, 0xfa4c, 0xfab8, 0xf902,
+ 0xf9b2, 0x00b7, 0x011e, 0xf380, 0xe5fa, 0xe6ea,
+ 0xedf9, 0xee9d, 0xf1ce, 0xfc84, 0xfd32, 0xf1bb,
+ 0xecfd, 0xee8d, 0xeaad, 0xe7d2, 0xee1e, 0xf557,
+ 0xf3f3, 0xee55, 0xee9c, 0xf304, 0xf3ec, 0xf503,
+ 0xfcb3, 0x081b, 0x0eeb, 0x0b4d, 0x0581, 0x09ab,
+ 0x10b3, 0x0f5c, 0x079a, 0xfbbc, 0xed59, 0xe226,
+ 0xe0b9, 0xeddb, 0xfefa, 0x01ba, 0xfa03, 0xf80c,
+ 0xfd7a, 0x01f1, 0x0396, 0x0933, 0x1158, 0x1319,
+ 0x113a, 0x0ccc, 0x0183, 0xfab4, 0xfd59, 0xfc70,
+ 0xf5c5, 0xf028, 0xf128, 0xf7b2, 0xf651, 0xf241,
+ 0xfe0c, 0x0c53, 0x0c08, 0x076e, 0x0827, 0x0b74,
+ 0x033d, 0xea5a, 0xdaa1, 0xdfbb, 0xe7ee, 0xf159,
+ 0xfd71, 0x0399, 0x0a3d, 0x1438, 0x161b, 0x105b,
+ 0x0bcf, 0x0a1e, 0x07e0, 0x05d9, 0x07ef, 0x08df,
+ 0x06bb, 0x098f, 0x0c2d, 0x0929, 0x091b, 0x09b3,
+ 0x0564, 0x02cf, 0x05af, 0x0c92, 0x0dc7, 0x0117,
+ 0xf907, 0x03c5, 0x10fe, 0x1629, 0x158b, 0x0fc2,
+ 0x0ced, 0x0f7e, 0x0cb1, 0x05a6, 0x0569, 0x0a83,
+ 0x0c0a, 0x0987, 0x0808, 0x07c4, 0x0656, 0x0390,
+ 0x01bf, 0x048e, 0x0866, 0x0558, 0xfd4d, 0xf676,
+ 0xf49e, 0xf886, 0xf924, 0xf391, 0xf43d, 0xfd5a,
+ 0x05f1, 0x09c0, 0x0777, 0x051b, 0x0827, 0x090f,
+ 0x01fd, 0xf488, 0xeac6, 0xf45a, 0x05f0, 0x0787,
+ 0x0226, 0x053c, 0x0bcf, 0x106f, 0x0f97, 0x0d60,
+ 0x11f5, 0x1165, 0x04e4, 0xf8d6, 0xeb38, 0xda5e,
+ 0xd3c0, 0xd934, 0xea6c, 0x0467, 0x0eda, 0x059f,
+ 0x0389, 0x0cbf, 0x129e, 0x1433, 0x128e, 0x0c9d,
+ 0x0a0a, 0x0e90, 0x0db0, 0xfedf, 0xf138, 0xf06c,
+ 0xeecc, 0xe733, 0xe7b1, 0xf02d, 0xf4bd, 0xf257,
+ 0xee12, 0xf026, 0xf694, 0xf697, 0xf285, 0xf032,
+ 0xee47, 0xf241, 0xfbd6, 0xfd96, 0xf6a7, 0xf392,
+ 0xf9eb, 0xfee1, 0xf529, 0xeb79, 0xf480, 0xfd56,
+ 0xf814, 0xf656, 0xfb36, 0xfc8b, 0xfb07, 0xf533,
+ 0xef8e, 0xf448, 0xf982, 0xf6b6, 0xf7aa, 0xfc0e,
+ 0xf7a7, 0xf033, 0xeec1, 0xef4a, 0xf4a5, 0x0282,
+ 0x09ed, 0x0500, 0x024b, 0x0271, 0xfcc8, 0xf640,
+ 0xf259, 0xf01b, 0xf38c, 0xfb5c, 0x0204, 0x062f,
+ 0x07a5, 0x06b9, 0x0245, 0xfb46, 0xf996, 0xfbe9,
+ 0xf867, 0xf332, 0xf28e, 0xee4c, 0xe518, 0xe0df,
+ 0xe18e, 0xe606, 0xf463, 0x03b3, 0x061b, 0x029e,
+ 0x002d, 0xfcc6, 0xfea9, 0x0475, 0x0221, 0xfa03,
+ 0xf6d6, 0xfbc5, 0x002d, 0xfb13, 0xf95f, 0x022c,
+ 0x00aa, 0xf59c, 0xf73e, 0x011a, 0x0575, 0x03ed,
+ 0xfdeb, 0xf30b, 0xe2a8, 0xd7be, 0xdd4e, 0xe645,
+ 0xeb3d, 0xf104, 0xf2e3, 0xfc89, 0x149d, 0x1ea1,
+ 0x1761, 0x157c, 0x16d2, 0x167b, 0x1451, 0x0f9d,
+ 0x1196, 0x1165, 0x0460, 0xfc8b, 0xfbb2, 0xf5b6,
+ 0xf16e, 0xf09b, 0xf263, 0xf7dd, 0xf787, 0xf559,
+ 0xf6bf, 0xf467, 0xf7e6, 0x014c, 0xfeb0, 0xf966,
+ 0xfa54, 0xf5cf, 0xedd3, 0xe829, 0xe76a, 0xeefc,
+ 0xf5f5, 0xfbd8, 0x048e, 0x03b1, 0xfdbd, 0x0015,
+ 0x0402, 0x0947, 0x0eef, 0x0bc2, 0x0ae4, 0x0e90,
+ 0x071d, 0xfd77, 0xfa57, 0xf249, 0xe9f7, 0xef55,
+ 0xff11, 0x098a, 0x0547, 0x0034, 0x0849, 0x0ee1,
+ 0x083f, 0x000e, 0xfa18, 0xec9c, 0xdfc1, 0xe998,
+ 0x03be, 0x12ae, 0x1596, 0x1a3c, 0x1e8e, 0x1fb4,
+ 0x1d75, 0x166c, 0x10af, 0x0d92, 0x09d1, 0x061e,
+ 0xfbe3, 0xed28, 0xeb74, 0xf807, 0x063d, 0x0b2f,
+ 0x02be, 0xfd49, 0x01d8, 0xfe6c, 0xf91a, 0x02be,
+ 0x0d3f, 0x0f76, 0x119d, 0x1131, 0x0a64, 0xfffe,
+ 0xf718, 0xf691, 0xfbea, 0x0105, 0x0592, 0x0705,
+ 0x060f, 0x082b, 0x0d01, 0x0f11, 0x06cd, 0xf93f,
+ 0xfa18, 0x089e, 0x0f89, 0x0871, 0xfd8e, 0xf837,
+ 0xf4b3, 0xec4f, 0xe961, 0xf139, 0xfb0b, 0x0785,
+ 0x0f30, 0x088b, 0x0611, 0x0ae2, 0x0557, 0x0074,
+ 0x01dc, 0xf9d7, 0xf24f, 0xf706, 0xfa0a, 0xf3c9,
+ 0xeaf5, 0xeb2a, 0xf7b0, 0x0279, 0x09fd, 0x15d7,
+ 0x1866, 0x0ecd, 0x0b10, 0x0aa8, 0x0592, 0x0555,
+ 0x0975, 0x0809, 0x04fe, 0x05f3, 0x0656, 0x0500,
+ 0x052a, 0x0299, 0xfc14, 0xfbc3, 0x03d5, 0x0b1c,
+ 0x0ba4, 0x03ca, 0xfb95, 0xfd0b, 0xfd00, 0xf132,
+ 0xea5f, 0xf6a4, 0x0a0d, 0x0fdb, 0x0880, 0x0911,
+ 0x0e08, 0x05cb, 0x0485, 0x163e, 0x1e91, 0x1b23,
+ 0x1be7, 0x1784, 0x0d79, 0x04de, 0xfab5, 0xf96c,
+ 0x0224, 0x0702, 0x0dfe, 0x1374, 0x0973, 0x026c,
+ 0x0890, 0x096d, 0x025d, 0xf74c, 0xec46, 0xf351,
+ 0x0380, 0xfed8, 0xf264, 0xfa61, 0x08c0, 0x0b77,
+ 0x0c90, 0x0bea, 0x018a, 0xfe33, 0x0ac2, 0x13ee,
+ 0x11e3, 0x0a63, 0xfdc1, 0xf28c, 0xf0f6, 0xf831,
+ 0x02a2, 0x05bd, 0x0094, 0x0132, 0x0d02, 0x1b57,
+ 0x1e59, 0x125c, 0x0bf4, 0x15d9, 0x1bd1, 0x152f,
+ 0x0edf, 0x0c15, 0x073b, 0x0079, 0xfb67, 0xf877,
+ 0xf90f, 0x0006, 0x0446, 0xfd81, 0xf513, 0xf254,
+ 0xfaf1, 0x10f1, 0x1a62, 0x0f71, 0x10ce, 0x1bb1,
+ 0x1665, 0x0fb5, 0x0eb5, 0x0082, 0xf0a0, 0xf586,
+ 0x05ad, 0x0c4c, 0x04c2, 0xfbaa, 0xfb93, 0xff1d,
+ 0x0012, 0xfdd5, 0xf481, 0xe668, 0xde07, 0xdeb1,
+ 0xe73c, 0xf5b6, 0x00fc, 0x04f8, 0x067f, 0x0541,
+ 0x051a, 0x0c16, 0x0da7, 0x032c, 0xfcc9, 0x0060,
+ 0x03d0, 0xfca4, 0xe8f4, 0xdd80, 0xeaa6, 0xfec3,
+ 0x0777, 0x0445, 0xfcbb, 0xff7f, 0x08ad, 0x0638,
+ 0x040f, 0x113c, 0x1ab2, 0x15f9, 0x11a1, 0x0f31,
+ 0x074d, 0x0109, 0x0109, 0x0027, 0xfc5d, 0xf8a5,
+ 0xfa18, 0x0559, 0x0f13, 0x0e06, 0x0aa2, 0x048f,
+ 0xfff7, 0x0b0d, 0x13ad, 0x0b32, 0x0790, 0x089e,
+ 0x00f8, 0xfd37, 0x0029, 0x0056, 0xff5a, 0x00bc,
+ 0x05ff, 0x08fe, 0x08b2, 0x0d6e, 0x087b, 0xf6e3,
+ 0xf6bd, 0x01f9, 0x031b, 0x0451, 0xffdf, 0xee65,
+ 0xe3d4, 0xe16c, 0xe059, 0xe7d8, 0xf4d1, 0x04c6,
+ 0x166b, 0x1d88, 0x1af0, 0x187a, 0x188a, 0x1c2b,
+ 0x1a66, 0x082a, 0xf249, 0xeeb8, 0xfaa0, 0x0099,
+ 0xfca7, 0xfa3d, 0xfc2d, 0x03a0, 0x0b17, 0x03a9,
+ 0xf3fa, 0xef86, 0xfc1f, 0x0abf, 0xf9b0, 0xd4f0,
+ 0xd69e, 0xf2f7, 0xfcab, 0x08e5, 0x2014, 0x2266,
+ 0x1823, 0x12ce, 0x0a2c, 0x026a, 0x01f5, 0xfe96,
+ 0xf6e7, 0xfa35, 0x0880, 0x09d3, 0xfc92, 0xf7d0,
+ 0xfadd, 0xf9d0, 0xf619, 0xf1c8, 0xf1bc, 0xf659,
+ 0xf976, 0xfe77, 0x00e6, 0xfc38, 0x00a2, 0x09ba,
+ 0x0354, 0xfac4, 0x0037, 0x0990, 0x0bdf, 0x0233,
+ 0xef17, 0xe1ef, 0xe4f7, 0xee4a, 0xef36, 0xee5b,
+ 0xfa05, 0x0923, 0x11d5, 0x1d5b, 0x275a, 0x1e4a,
+ 0x095b, 0xfd99, 0xfb28, 0xf6c3, 0xf0df, 0xee79,
+ 0xf1ae, 0xfe24, 0x110a, 0x1d47, 0x1664, 0x008d,
+ 0xf46d, 0xfa79, 0xfccf, 0xf89c, 0xfedd, 0x0801,
+ 0x0424, 0xf5cc, 0xe773, 0xe13f, 0xe3c8, 0xec49,
+ 0xf7f6, 0x01e9, 0x09b6, 0x0bc2, 0x0565, 0x02b4,
+ 0x00c3, 0xf5b8, 0xf469, 0xfe0c, 0xfd29, 0xfd11,
+ 0x0612, 0x068c, 0x0061, 0xfd5c, 0xfbbb, 0xfc5f,
+ 0xfdea, 0x0118, 0x0a61, 0x11f3, 0x0ef9, 0x077a,
+ 0x0526, 0x068c, 0x06e3, 0x08dd, 0x07c2, 0xfebe,
+ 0xf991, 0xfb10, 0x0266, 0x1361, 0x17bb, 0x07ea,
+ 0xfdc7, 0xf5ed, 0xec1b, 0xf0aa, 0xf85c, 0x00c2,
+ 0x0e27, 0x056f, 0xf5e3, 0x02a4, 0x0e2f, 0x08ec,
+ 0x0d68, 0x145c, 0x0d4d, 0x01dd, 0xf9cd, 0xf357,
+ 0xf001, 0xf646, 0xfdc8, 0xfa77, 0xfa0e, 0xfd71,
+ 0xf449, 0xed18, 0xf000, 0xedce, 0xed00, 0xf1cb,
+ 0xf036, 0xeadf, 0xea11, 0xf2e7, 0x021f, 0x0bcb,
+ 0x14ff, 0x2157, 0x2037, 0x1057, 0xff2b, 0xf2b9,
+ 0xef14, 0xf352, 0xf640, 0xf187, 0xf058, 0xff95,
+ 0x0b1d, 0x05cb, 0x0842, 0x1082, 0x0a48, 0x0556,
+ 0x08aa, 0x04e4, 0xfe94, 0x0114, 0x0b35, 0x1058,
+ 0x097a, 0x07c3, 0x0d27, 0x0851, 0x0910, 0x1b1a,
+ 0x2295, 0x1ac2, 0x1884, 0x1525, 0x0841, 0x0341,
+ 0x0479, 0xf7d0, 0xee5a, 0xfb5c, 0x041f, 0x010e,
+ 0x0862, 0x0c05, 0x0029, 0xfd4c, 0x045e, 0x0209,
+ 0xf98b, 0xf60b, 0xf8d8, 0xfb4e, 0xfa9a, 0xff3a,
+ 0x0724, 0x03fc, 0xf9eb, 0xf85e, 0xfa5b, 0xf447,
+ 0xf107, 0xfa18, 0xff5c, 0xf6b3, 0xe9f2, 0xe3ba,
+ 0xeb5c, 0xfaaa, 0x02c2, 0x05cd, 0x0a0c, 0x0b1c,
+ 0x0521, 0xf829, 0xecdb, 0xe9a4, 0xeb89, 0xf80f,
+ 0x0765, 0x0531, 0xffc7, 0x03e1, 0xff92, 0xf2c4,
+ 0xe61f, 0xdffe, 0xf075, 0x02ee, 0xf9f9, 0xef5a,
+ 0xf459, 0xf5ab, 0xf5aa, 0xfbc8, 0xfdcc, 0xfebc,
+ 0x0769, 0x0f82, 0x0ee4, 0x0b34, 0x0741, 0x01ae,
+ 0x003d, 0xffa4, 0xfaba, 0xfed2, 0x0781, 0x02a4,
+ 0xffca, 0x095c, 0x0b4f, 0x0307, 0xfa3b, 0xf0df,
+ 0xeb78, 0xeec8, 0xfa36, 0x05f7, 0x04cc, 0xfc49,
+ 0xf8e6, 0xf3b8, 0xeacf, 0xe9cb, 0xf2d5, 0xff54,
+ 0x09c7, 0x0ff6, 0x0ff7, 0x0897, 0x0185, 0x0185,
+ 0x0436, 0x0425, 0xfe08, 0xf30e, 0xe921, 0xe3f2,
+ 0xe981, 0xf493, 0xf1fb, 0xec1c, 0xfc09, 0x14e8,
+ 0x2073, 0x1f82, 0x19fb, 0x15f1, 0x0ea4, 0xff98,
+ 0xf571, 0xf115, 0xebd6, 0xf2a8, 0x0197, 0x00ee,
+ 0xf40f, 0xeb41, 0xed2b, 0xfd78, 0x105e, 0x1483,
+ 0x0c30, 0x028f, 0x0119, 0x0a94, 0x136e, 0x124a,
+ 0x0812, 0xfa3b, 0xf9e1, 0x0c8f, 0x180c, 0x1207,
+ 0x0f18, 0x0fda, 0x07a9, 0xfd79, 0xf2eb, 0xe5da,
+ 0xe8b0, 0xfabc, 0x01ca, 0x0288, 0x0b92, 0x0d96,
+ 0x0575, 0x0368, 0x0379, 0xfc85, 0xf44a, 0xf334,
+ 0xfa36, 0xfff3, 0x03fc, 0x0da8, 0x0e52, 0x0148,
+ 0x0005, 0x0666, 0xf896, 0xe077, 0xdd61, 0xf209,
+ 0xfe4a, 0xf281, 0xed58, 0xfb51, 0x054d, 0x0a76,
+ 0x0e12, 0x0771, 0xff32, 0xf77c, 0xf0fb, 0xfc1b,
+ 0x0a71, 0x068d, 0x002f, 0xfda0, 0xf7cf, 0xf467,
+ 0xf1f6, 0xf1c2, 0xf9f1, 0x0044, 0x01f1, 0x079a,
+ 0x0c75, 0x0b79, 0x097a, 0x06f6, 0xfe50, 0xefef,
+ 0xe238, 0xd4fa, 0xcd94, 0xd957, 0xeefd, 0xfe27,
+ 0x08fb, 0x0edd, 0x1032, 0x1492, 0x16c2, 0x116e,
+ 0x0959, 0x02c9, 0xfead, 0xf724, 0xf0c0, 0xf785,
+ 0x0125, 0x056e, 0x0684, 0xff15, 0xfd35, 0x06a6,
+ 0x03c4, 0xfc1e, 0xfb50, 0xf4ac, 0xf5dc, 0xfc76,
+ 0xf250, 0xf0ff, 0xfa67, 0xed73, 0xe751, 0xff61,
+ 0x0c0a, 0x0250, 0x00dd, 0x0be2, 0x11f5, 0x0eff,
+ 0x0926, 0xffef, 0xf959, 0xfc9b, 0xf9de, 0xef8f,
+ 0xf2dd, 0xfd2d, 0x033a, 0x0c95, 0x101a, 0x0429,
+ 0xf616, 0xf1eb, 0xf6cf, 0xfc6f, 0x0106, 0x0782,
+ 0x0777, 0x0506, 0x10ee, 0x1f6f, 0x1ed6, 0x1a12,
+ 0x1acf, 0x1714, 0x0dd1, 0x104c, 0x1891, 0x0b6c,
+ 0xf74b, 0xf801, 0xfaaa, 0xf072, 0xe9c1, 0xef35,
+ 0xfffe, 0x0e31, 0x0a22, 0x0113, 0xf978, 0xe7be,
+ 0xd6f7, 0xd4ec, 0xdffe, 0xf340, 0xfdb9, 0xfd59,
+ 0x07d7, 0x1547, 0x1156, 0x0a5a, 0x0b98, 0x0a72,
+ 0x08f3, 0x0c28, 0x093e, 0xfc30, 0xee7b, 0xe983,
+ 0xf2ba, 0xfe18, 0xf762, 0xebcf, 0xf471, 0x024c,
+ 0xff81, 0xf95d, 0xfdd8, 0x01e9, 0xfdba, 0xfa8c,
+ 0xfa44, 0xf4f3, 0xf446, 0x0648, 0x1cb8, 0x1fe7,
+ 0x109e, 0x0503, 0x0816, 0x090b, 0xfda3, 0xf41e,
+ 0xf384, 0xf60d, 0xf558, 0xee2a, 0xecd4, 0xf6b6,
+ 0xfbc5, 0x004c, 0x1025, 0x17d7, 0x0f8f, 0x0c50,
+ 0x0f15, 0x08d8, 0xff96, 0xfed7, 0xfafd, 0xec01,
+ 0xe92d, 0xfce3, 0x0d46, 0x0e13, 0x08a4, 0x01a5,
+ 0x02d7, 0x0c98, 0x07f1, 0xf48d, 0xecfb, 0xf34e,
+ 0xf87c, 0xfcaf, 0x00a9, 0x0034, 0x0068, 0x03a3,
+ 0x044f, 0x0305, 0x022d, 0x027e, 0x0525, 0x04d0,
+ 0x004f, 0xfc87, 0xf341, 0xe57b, 0xe277, 0xe7e9,
+ 0xed8e, 0xf9ee, 0x09f2, 0x1050, 0x0c50, 0x05c7,
+ 0x017e, 0xfdd2, 0xf93b, 0xf86e, 0xfb4a, 0xfa7d,
+ 0xf43c, 0xf059, 0xf7d0, 0x0057, 0xf543, 0xe471,
+ 0xeb9e, 0xfd1c, 0xfde3, 0xf841, 0xf75f, 0xee60,
+ 0xe0f1, 0xe46a, 0xf33e, 0xf1fb, 0xde56, 0xd5fa,
+ 0xe64a, 0xf53c, 0xf1ef, 0xefc2, 0xf96d, 0x0286,
+ 0x076b, 0x0c3c, 0x1048, 0x1240, 0x1198, 0x122c,
+ 0x13f0, 0x0af7, 0xf9df, 0xf411, 0xf8da, 0xf969,
+ 0xf74c, 0xf9a3, 0xfc7a, 0xfac8, 0xf502, 0xeee8,
+ 0xee40, 0xf18b, 0xf4a8, 0x002e, 0x12f8, 0x186e,
+ 0x11a1, 0x0ece, 0x0b13, 0x02ec, 0x00ef, 0x041f,
+ 0xff4e, 0xf07d, 0xec9d, 0xf949, 0xf842, 0xead3,
+ 0xf174, 0x03d5, 0x1259, 0x1e78, 0x14eb, 0xf756,
+ 0xe610, 0xe57f, 0xec29, 0xf360, 0xf1f3, 0xf127,
+ 0xf840, 0x0127, 0x0ca0, 0x1084, 0x07e1, 0x06df,
+ 0x0c7d, 0x08c7, 0x02b2, 0xfff4, 0xfa98, 0xf4ae,
+ 0xf6df, 0xfea1, 0xfdcd, 0xfa91, 0x021e, 0x0348,
+ 0xfa89, 0xfd3d, 0x0242, 0xfd80, 0xfad2, 0xf73d,
+ 0xeddf, 0xe77b, 0xe49c, 0xe933, 0xf890, 0x01d1,
+ 0xfe79, 0xfea5, 0x051a, 0x040d, 0xfcab, 0xfe13,
+ 0x06fa, 0x0780, 0xfeae, 0xfa0d, 0xfcec, 0xff70,
+ 0x00ef, 0x03b9, 0x00a6, 0xf374, 0xe1ca, 0xd774,
+ 0xe1be, 0xf431, 0xf4cb, 0xef6d, 0xf7d1, 0x0057,
+ 0x0255, 0x0854, 0x0f5e, 0x0c32, 0xfe7b, 0xf571,
+ 0xf6e7, 0xf582, 0xf42b, 0xfcde, 0x0782, 0x0f7c,
+ 0x107c, 0x0a35, 0x0e43, 0x15e6, 0x0e9d, 0x090b,
+ 0x0d2c, 0x0b39, 0x021f, 0xf79a, 0xf148, 0xf21f,
+ 0xf4e9, 0xfca5, 0x04e6, 0xff88, 0xf7c2, 0xfc4b,
+ 0x04d7, 0x0770, 0x03c7, 0x03ee, 0x0ba3, 0x0e59,
+ 0x08cc, 0xff3c, 0xf521, 0xf1e1, 0xee4b, 0xe7d7,
+ 0xeddd, 0xf863, 0xfbc9, 0x010c, 0x0517, 0x0517,
+ 0x05bc, 0x04f7, 0x0bd8, 0x166e, 0x13f2, 0x15b1,
+ 0x20a5, 0x19e5, 0x0950, 0x025b, 0xfca6, 0xf598,
+ 0xf39d, 0xf75e, 0xfe54, 0x03ca, 0x0658, 0x0268,
+ 0xf79d, 0xf0c5, 0xec0c, 0xe62c, 0xecfc, 0xfc81,
+ 0x0583, 0x0b9b, 0x0ef7, 0x0c53, 0x0afd, 0x0b0f,
+ 0x0aac, 0x0e5c, 0x132e, 0x15a7, 0x1548, 0x0dfa,
+ 0x07c5, 0x0dea, 0x12a6, 0x0b39, 0x0732, 0x0875,
+ 0x02de, 0x008e, 0x0869, 0x0c40, 0x07d0, 0x0278,
+ 0x02f9, 0x0914, 0x096d, 0x06ec, 0x0d51, 0x13ad,
+ 0x1481, 0x12b2, 0x07b7, 0xf993, 0xf0df, 0xec4c,
+ 0xf6ac, 0x0b6e, 0x12f7, 0x1204, 0x13c2, 0x10b7,
+ 0x09d6, 0x066c, 0x073f, 0x0922, 0x086b, 0x0568,
+ 0xfecc, 0xf8e2, 0xf999, 0xf383, 0xe97e, 0xf1c0,
+ 0xfd44, 0xfe95, 0x0997, 0x1832, 0x1b78, 0x1d28,
+ 0x197c, 0x0927, 0xf827, 0xf097, 0xf4c5, 0xfc7d,
+ 0xfda2, 0xfbbf, 0xf760, 0xf203, 0xf6e7, 0x0137,
+ 0x0667, 0x09d8, 0x0ab3, 0x086d, 0x090a, 0x0859,
+ 0x055b, 0x0b78, 0x14e4, 0x0e5e, 0xffb9, 0x0000,
+ 0x0b0e, 0x1067, 0x102c, 0x0df9, 0x070f, 0xfa2d,
+ 0xf181, 0xfa4c, 0x0631, 0x0354, 0x033a, 0x0cd0,
+ 0x0e25, 0x09cd, 0x0692, 0x02fa, 0x0310, 0xff20,
+ 0xf7de, 0xfcb2, 0x0058, 0xf8a4, 0xf80f, 0xfc96,
+ 0xfce3, 0x02f0, 0x0a73, 0x0839, 0x052a, 0x0a02,
+ 0x0f13, 0x0966, 0xfc28, 0xf4e5, 0xf780, 0xfe1b,
+ 0x062b, 0x0f18, 0x13f3, 0x1325, 0x145b, 0x18da,
+ 0x1932, 0x12bf, 0x03a3, 0xf5f7, 0xfc22, 0x0733,
+ 0x04c8, 0x049f, 0x041a, 0xf49b, 0xeafd, 0xf537,
+ 0x0378, 0x08c1, 0x062a, 0x082e, 0x0e24, 0x09b2,
+ 0xff5e, 0xf56e, 0xefd9, 0xfaf8, 0x0406, 0xf830,
+ 0xf364, 0xfeb2, 0x0352, 0x008c, 0xfdc6, 0xfd92,
+ 0x027c, 0x07a1, 0x0b25, 0x0809, 0xfac7, 0xf407,
+ 0xf62a, 0xf43e, 0xf724, 0x0040, 0xff7e, 0xfa44,
+ 0xfe85, 0x05c6, 0x0436, 0x0044, 0x0067, 0xf545,
+ 0xe624, 0xf4d3, 0x122e, 0x15b8, 0x079a, 0x0256,
+ 0x083e, 0x0c68, 0x092c, 0x0ad2, 0x0f8f, 0x04d9,
+ 0xf489, 0xf4cb, 0x025a, 0x0af1, 0x03cf, 0xf979,
+ 0xf855, 0xf3dc, 0xe9c5, 0xe90f, 0xf29c, 0xfd4c,
+ 0x0019, 0xfd5e, 0xfdf6, 0xf877, 0xf183, 0xfe50,
+ 0x0acf, 0x0425, 0x0357, 0x0d02, 0x0d8d, 0x05c7,
+ 0x0024, 0x0256, 0x056d, 0x002b, 0xfc9d, 0xff26,
+ 0xfee0, 0xfcff, 0xf9f1, 0xf4f1, 0xf187, 0xeda0,
+ 0xee9d, 0xf7b8, 0xfd1f, 0x007c, 0x0561, 0x0183,
+ 0xfad2, 0xfd50, 0x079f, 0x130d, 0x11a7, 0x0567,
+ 0x0308, 0x07f1, 0x0837, 0x0904, 0x10aa, 0x1efc,
+ 0x21c2, 0x0b9f, 0xfba1, 0x0473, 0x0c14, 0x0a13,
+ 0x07e5, 0x06ad, 0x09b2, 0x07a7, 0xfb59, 0xf88c,
+ 0xff80, 0x0045, 0xff47, 0x0175, 0x03cb, 0x02f5,
+ 0xfd77, 0xfd38, 0xfed5, 0xf4b7, 0xf03f, 0xfa63,
+ 0xfcb8, 0xf989, 0xfcf1, 0xfbd6, 0xf3d2, 0xeae3,
+ 0xe384, 0xe434, 0xe76e, 0xe4a1, 0xe3f6, 0xeda2,
+ 0x002c, 0x0c3e, 0x0319, 0xf78e, 0xfcdc, 0x03a8,
+ 0x0165, 0xfef9, 0x04c7, 0x1342, 0x1b73, 0x156e,
+ 0x0d9f, 0x0745, 0xff30, 0xf639, 0xe9e8, 0xe316,
+ 0xe94a, 0xf559, 0x07e4, 0x161e, 0x0ebd, 0x06e1,
+ 0x0c96, 0x0c83, 0x0aae, 0x108f, 0x10db, 0x0eb9,
+ 0x1419, 0x18f9, 0x17e8, 0x1042, 0x0239, 0xf5d5,
+ 0xf30a, 0xfa50, 0x032c, 0x05fe, 0x088c, 0x0dab,
+ 0x0d75, 0x0a21, 0x0abc, 0x09c1, 0x04eb, 0x0466,
+ 0x032a, 0xf8a9, 0xf46a, 0xfcfd, 0xfc9e, 0xf31e,
+ 0xf40a, 0xfac0, 0xfab7, 0xf58b, 0xf3ae, 0xf630,
+ 0xef2f, 0xe5c2, 0xf163, 0xfecf, 0xf960, 0xf5c6,
+ 0xf6b6, 0xf604, 0x026c, 0x11b9, 0x126f, 0x0dfe,
+ 0x0a8e, 0x0aa6, 0x0d37, 0x0857, 0x05c9, 0x0b2c,
+ 0x0516, 0xf63c, 0xeffb, 0xef86, 0xf323, 0xfd50,
+ 0x02a9, 0xf8b6, 0xebe9, 0xf181, 0xffad, 0xfbcf,
+ 0xed81, 0xed1d, 0xfc46, 0x0c45, 0x0d5b, 0x02d1,
+ 0x0161, 0x091e, 0x09f3, 0x0429, 0x0184, 0x072d,
+ 0x10af, 0x103d, 0x0683, 0x050d, 0x0a14, 0x042e,
+ 0xf858, 0xf524, 0xf83b, 0xff13, 0x0690, 0x054f,
+ 0x05d2, 0x0fc3, 0x0e3d, 0x0131, 0xfc43, 0xfbaa,
+ 0xfe95, 0x0997, 0x0c02, 0x0176, 0xfb71, 0xfe96,
+ 0x01ee, 0xff29, 0xfaf2, 0xfbb5, 0xfd23, 0xfe06,
+ 0xffe1, 0x007f, 0x0405, 0x0343, 0xf39c, 0xe957,
+ 0xf389, 0x0394, 0x0ee3, 0x1090, 0x0ac7, 0x099b,
+ 0x07dd, 0xff12, 0xf9ad, 0xf9f0, 0xfe7e, 0x0455,
+ 0xff75, 0xf96e, 0x029c, 0x0af3, 0x04b6, 0xfcd9,
+ 0xfd12, 0x00f3, 0xfffd, 0xf9e6, 0xf9ac, 0x0292,
+ 0x0a32, 0x082f, 0xff58, 0xfac4, 0xfdec, 0xfdd1,
+ 0xf698, 0xf2aa, 0xf4c0, 0xf64e, 0xf7a9, 0xf99b,
+ 0xf6cd, 0xf234, 0xf472, 0xf915, 0xf817, 0xf8ff,
+ 0x0298, 0x06ca, 0xfd54, 0xf7df, 0xfcf6, 0xfea1,
+ 0xfd70, 0xfe09, 0xfc04, 0xfd2a, 0x0229, 0x01b0,
+ 0xfe2f, 0xf7f1, 0xf0d7, 0xf659, 0x00e0, 0x0141,
+ 0xfef9, 0xff2b, 0xff53, 0xfd14, 0xf76a, 0xfcf6,
+ 0x0a4b, 0x0417, 0xf7d9, 0xfe58, 0x06b1, 0x07d3,
+ 0x0858, 0x01ec, 0xf913, 0xf60e, 0xf4a2, 0xf68e,
+ 0xfb3b, 0xfc1c, 0xfcaf, 0x00e6, 0x061c, 0x0882,
+ 0x0636, 0x028c, 0xfe6f, 0xf786, 0xf022, 0xeb44,
+ 0xed3b, 0xf758, 0x004e, 0x03e3, 0x05cf, 0x0528,
+ 0x0389, 0x04c5, 0x0579, 0x00de, 0xfa59, 0xfb32,
+ 0xff46, 0xf9b3, 0xf25e, 0xf203, 0xee09, 0xe788,
+ 0xe7bf, 0xed43, 0xf898, 0x0457, 0x06c7, 0x0338,
+ 0xfd5f, 0xfaac, 0x0003, 0xfe12, 0xef8f, 0xe647,
+ 0xe7a3, 0xf088, 0xfac3, 0xfa9d, 0xfa63, 0x06ff,
+ 0x127b, 0x1549, 0x14ba, 0x10b3, 0x0e4a, 0x0ddf,
+ 0x056c, 0xf7e5, 0xef10, 0xedeb, 0xf5b9, 0xff9d,
+ 0x0231, 0x01e9, 0x024e, 0xfd66, 0xf87f, 0xfbcb,
+ 0xfced, 0xf63a, 0xf167, 0xeeef, 0xefd4, 0xfb10,
+ 0x03c0, 0xff64, 0xfc5f, 0x0011, 0x0295, 0x0211,
+ 0xfdda, 0xfb42, 0xfe32, 0xfcf8, 0xf9a4, 0xfe07,
+ 0x0120, 0xfe5b, 0xff59, 0x03d4, 0x091c, 0x1169,
+ 0x160c, 0x113c, 0x0ae4, 0x08e5, 0x0564, 0xfd75,
+ 0xf573, 0xef49, 0xeef6, 0xf8bc, 0x0334, 0x05e1,
+ 0x0615, 0x059f, 0x03c0, 0x0479, 0x0432, 0xfed4,
+ 0xf7a8, 0xecd3, 0xe05b, 0xdd00, 0xe0a8, 0xe571,
+ 0xf25b, 0x0419, 0x0b2b, 0x0ab3, 0x0f1a, 0x11a3,
+ 0x07e2, 0xfb5d, 0xf7b1, 0xf612, 0xf209, 0xf814,
+ 0x0759, 0x0bb2, 0x04b4, 0x0259, 0x02ab, 0xfd5a,
+ 0xf6f8, 0xf37f, 0xf009, 0xeccb, 0xeeef, 0xf530,
+ 0xf545, 0xef55, 0xee6e, 0xf307, 0xf85a, 0xfcef,
+ 0xfbd6, 0xf717, 0xf6cd, 0xf906, 0xfd23, 0x078e,
+ 0x1009, 0x0b68, 0xff82, 0xfa10, 0xfc80, 0xfe71,
+ 0xfe9d, 0xfde5, 0xf901, 0xf5d5, 0xf9ec, 0xfbdf,
+ 0xf539, 0xec19, 0xeba5, 0xf9de, 0x0a6a, 0x0f99,
+ 0x0e14, 0x0ace, 0x0650, 0x0458, 0x02c7, 0x007a,
+ 0x006c, 0xfdff, 0xf8c4, 0xf871, 0xfbf0, 0xfaef,
+ 0xf20b, 0xeaf1, 0xf169, 0xfc86, 0x0068, 0x04a6,
+ 0x0cab, 0x10b4, 0x0f04, 0x07fc, 0xff30, 0xfda7,
+ 0x0053, 0xfb8a, 0xf212, 0xf08d, 0xf8fa, 0x04d5,
+ 0x0f35, 0x111b, 0x0954, 0x04a7, 0x0548, 0xfe8d,
+ 0xf331, 0xef21, 0xf1e1, 0xf7f4, 0x00b9, 0x0a50,
+ 0x1190, 0x10ec, 0x08c6, 0x02ba, 0x0381, 0x06f5,
+ 0x07de, 0x056a, 0x02ac, 0xfe71, 0xf5f4, 0xeee9,
+ 0xf052, 0xf827, 0xfd84, 0xfbc8, 0xf944, 0xf947,
+ 0xf6c0, 0xf385, 0xf415, 0xf585, 0xf411, 0xed4f,
+ 0xe3c7, 0xde35, 0xde82, 0xe926, 0xfdbf, 0x0ab3,
+ 0x0c3e, 0x0e50, 0x0d47, 0x0b8c, 0x137b, 0x1622,
+ 0x0b30, 0x0166, 0xf72d, 0xebaa, 0xef00, 0xfa9d,
+ 0xfd79, 0xfe16, 0x01d9, 0x0102, 0xfb45, 0xf6cd,
+ 0xf699, 0xf9df, 0xfcff, 0xfe5b, 0xffd5, 0x01ae,
+ 0x02ad, 0x0564, 0x0b4a, 0x0dc4, 0x0cab, 0x11bd,
+ 0x1661, 0x0e5b, 0x0627, 0x0808, 0x0890, 0x0395,
+ 0xfdfd, 0xfadf, 0xfe27, 0xfe90, 0xf58f, 0xf699,
+ 0x01f6, 0xfaf9, 0xe6a8, 0xe2d3, 0xef58, 0xfafc,
+ 0xffb2, 0x002a, 0x01ca, 0x03f3, 0x0221, 0x00f7,
+ 0x0405, 0x0236, 0xf877, 0xf35a, 0xfa2a, 0x045f,
+ 0x06b9, 0xff5a, 0xf98c, 0xfffb, 0x0882, 0x0564,
+ 0xfe71, 0xfe62, 0x01fc, 0x036a, 0x0195, 0x01e8,
+ 0x0585, 0x026f, 0xfafa, 0xf975, 0xf7cb, 0xf43f,
+ 0xf41a, 0xeeb8, 0xe7ae, 0xef0b, 0xfc40, 0x008c,
+ 0xfebc, 0xfb4c, 0xf75e, 0xf57c, 0xfcdb, 0x0e45,
+ 0x1630, 0x0f3b, 0x0dd3, 0x1014, 0x082e, 0xfeb5,
+ 0xf9ee, 0xf712, 0xf555, 0xf346, 0xfa9a, 0x0b77,
+ 0x0e02, 0x0387, 0x0040, 0xfcbb, 0xf201, 0xecaa,
+ 0xf18d, 0xfd37, 0x08ad, 0x0ba8, 0x0975, 0x09bc,
+ 0x0bd1, 0x0974, 0x024d, 0x0176, 0x0920, 0x0ddc,
+ 0x0e89, 0x0f04, 0x0e39, 0x0cdc, 0x04ed, 0xf572,
+ 0xf02c, 0xf9f8, 0x02a6, 0x0192, 0xfca1, 0xfde6,
+ 0x03cb, 0x03e8, 0xff5c, 0xf9a8, 0xf463, 0xf821,
+ 0xffd3, 0x001e, 0x0072, 0x037c, 0x0087, 0xf626,
+ 0xe69a, 0xdd62, 0xe534, 0xf271, 0xfb69, 0x02e7,
+ 0x084e, 0x0df0, 0x111b, 0x093b, 0xfe9d, 0xfb31,
+ 0xfbdc, 0xfe77, 0x0181, 0x059e, 0x0986, 0x03b0,
+ 0xf730, 0xed25, 0xe52b, 0xe529, 0xe81e, 0xe17c,
+ 0xe700, 0x026c, 0x10c9, 0x0a54, 0x0579, 0x027c,
+ 0xfe7a, 0xfe4c, 0xfe11, 0xfee6, 0x054d, 0x08e4,
+ 0x0173, 0xf60b, 0xf3c6, 0xfba7, 0x0248, 0x0272,
+ 0x03c1, 0x0c2a, 0x13b8, 0x0f55, 0x0146, 0xf356,
+ 0xeef7, 0xf867, 0x00e4, 0xfa9b, 0xf4e8, 0xfce9,
+ 0x04df, 0x02dc, 0x0046, 0x0642, 0x0bf8, 0x03d7,
+ 0xf7d1, 0xf586, 0xf37f, 0xf0a1, 0xf85e, 0xff1e,
+ 0xf7f5, 0xef00, 0xeba9, 0xe963, 0xed4f, 0xfa93,
+ 0x05b7, 0x0859, 0x0752, 0x0547, 0x0594, 0x0a6a,
+ 0x0a9f, 0x03cd, 0x0188, 0x03cb, 0x02bd, 0x021c,
+ 0x069b, 0x0c19, 0x0b3c, 0x034c, 0xfdea, 0xfda4,
+ 0xfafc, 0xf705, 0xf581, 0xf6be, 0xfe00, 0x05d6,
+ 0x06a5, 0x07fd, 0x0d2b, 0x0e56, 0x0ab9, 0x0471,
+ 0xfe4a, 0x017c, 0x0f2d, 0x195c, 0x13e7, 0x0561,
+ 0xffaa, 0x03f1, 0x0421, 0xffe7, 0x0032, 0x0395,
+ 0x04d7, 0x03a1, 0x02ca, 0x03ab, 0x020a, 0xfc26,
+ 0xf77b, 0xf7a2, 0xfc37, 0x0303, 0x081d, 0x0abe,
+ 0x0a45, 0x04ee, 0x0128, 0x01ee, 0xfcff, 0xf61d,
+ 0xfdf2, 0x0a4d, 0x0667, 0xfb47, 0xf559, 0xeebc,
+ 0xedcc, 0xfbb4, 0x0698, 0x023b, 0xfd70, 0xfe53,
+ 0xfa6e, 0xefc8, 0xe896, 0xef30, 0xfe8d, 0x06a3,
+ 0x09a8, 0x120d, 0x1424, 0x0b39, 0x0e5a, 0x1ff9,
+ 0x252f, 0x1a0f, 0x0f55, 0x06f8, 0x024a, 0x06f7,
+ 0x07cf, 0xfe7f, 0xfe49, 0x06b4, 0x049f, 0xff5d,
+ 0x02fa, 0x0792, 0x0a9c, 0x0da8, 0x0e24, 0x115f,
+ 0x144a, 0x0a27, 0xfc19, 0xfacd, 0xff0a, 0xfb3c,
+ 0xf419, 0xf713, 0x0227, 0x064f, 0x0455, 0x077e,
+ 0x0aa7, 0x096b, 0x0eb0, 0x18d9, 0x193d, 0x10e6,
+ 0x0a18, 0x05b7, 0x0296, 0x010e, 0xfdb5, 0xfac5,
+ 0x008e, 0x0b2e, 0x0e51, 0x08d5, 0x0281, 0xfefb,
+ 0xf9f1, 0xf0d7, 0xeefa, 0xfb47, 0x058b, 0x039e,
+ 0x0127, 0x0281, 0x01b7, 0xfeb3, 0xfab4, 0xfc79,
+ 0x0bbd, 0x19d4, 0x1773, 0x12f4, 0x17b3, 0x18ce,
+ 0x1023, 0x06f1, 0x02a3, 0x010f, 0xfe96, 0xfb67,
+ 0xfa02, 0xfa7d, 0xfd5d, 0x006f, 0xff4d, 0x0005,
+ 0x05f1, 0x0549, 0xfd65, 0xf8fa, 0xf592, 0xf0bc,
+ 0xf154, 0xf65c, 0xf776, 0xf1ca, 0xeff2, 0xfc29,
+ 0x094f, 0x0c26, 0x0ef6, 0x0fd5, 0x09c2, 0x0afa,
+ 0x0dcb, 0x017e, 0xf67d, 0xf9e7, 0xfd2c, 0xfb73,
+ 0xfbe8, 0xfeec, 0xff84, 0xf9da, 0xf58b, 0xfa14,
+ 0xff67, 0x0273, 0x05f6, 0x0205, 0xf8cf, 0xf678,
+ 0xf7a4, 0xf843, 0xfb8a, 0xfb58, 0xf601, 0xf801,
+ 0x06c9, 0x1741, 0x19ab, 0x0ed9, 0x0832, 0x091d,
+ 0x07b9, 0x0513, 0x03bd, 0x0358, 0x080a, 0x0cd1,
+ 0x0a74, 0x0597, 0x0011, 0xfbd4, 0xfde9, 0xff63,
+ 0xfdee, 0xfe74, 0xf896, 0xee65, 0xee49, 0xf307,
+ 0xf899, 0x0411, 0x0a1a, 0x0639, 0x040c, 0x035f,
+ 0x02ea, 0x0618, 0x059f, 0xffe0, 0x0012, 0x0871,
+ 0x0e24, 0x0b37, 0x09b7, 0x0fa1, 0x0fec, 0x06ea,
+ 0x0192, 0x01e8, 0x0372, 0x07a8, 0x0d6e, 0x109b,
+ 0x0ae3, 0xf955, 0xe7fb, 0xe3b0, 0xebd0, 0xfbf4,
+ 0x0d1a, 0x178e, 0x1e14, 0x2270, 0x1bcd, 0x0c28,
+ 0x0494, 0x09c8, 0x0fa5, 0x0e98, 0x09f9, 0x07ae,
+ 0x0724, 0x028f, 0xfeaa, 0x0454, 0x0b26, 0x0b35,
+ 0x0e9c, 0x18b3, 0x1d30, 0x1597, 0x09ac, 0x01de,
+ 0xf84b, 0xe920, 0xe3f3, 0xeeb8, 0xfac0, 0x021d,
+ 0x06dc, 0x0772, 0x05a7, 0x0279, 0xfd68, 0xf848,
+ 0xf394, 0xf437, 0xfbff, 0xffab, 0xfd79, 0xfe59,
+ 0xff1f, 0xfc52, 0xfbfc, 0xfed2, 0x0116, 0x02ca,
+ 0x064c, 0x0b7f, 0x0c1b, 0x03ee, 0xf816, 0xeffd,
+ 0xef70, 0xf326, 0xf2b7, 0xed35, 0xeb2e, 0xf133,
+ 0xf76d, 0xf386, 0xe9c7, 0xe660, 0xea17, 0xf016,
+ 0xf97f, 0x0719, 0x134c, 0x16cc, 0x1176, 0x0a2f,
+ 0x04c1, 0x000d, 0xfa0a, 0xf332, 0xf096, 0xf1cc,
+ 0xf0d2, 0xf01d, 0xf145, 0xf0bf, 0xf6d2, 0x06d6,
+ 0x0ed3, 0x07fa, 0x0341, 0x0a00, 0x0ffd, 0x080d,
+ 0xfa5a, 0xf7c3, 0xfd55, 0xfebe, 0xfeb3, 0x0379,
+ 0x0744, 0x047d, 0x0185, 0x02d4, 0x0089, 0xf8f0,
+ 0xf654, 0xf9ee, 0xfd5e, 0x002e, 0x0237, 0x0206,
+ 0xfe42, 0xf5db, 0xf28a, 0xfd38, 0x088c, 0x0751,
+ 0x04af, 0x0c91, 0x15ba, 0x15b0, 0x13a8, 0x13e4,
+ 0x0c4a, 0xfe51, 0xf61f, 0xf3ec, 0xf4a0, 0xf744,
+ 0xfa70, 0x026a, 0x0997, 0x06ca, 0x06f3, 0x0ce4,
+ 0x0847, 0xfffb, 0xfccd, 0xf4fe, 0xecca, 0xeb12,
+ 0xef2d, 0x013a, 0x1698, 0x177d, 0x0afa, 0x0114,
+ 0xf98a, 0xf455, 0xf22b, 0xf31f, 0xf806, 0xfbb0,
+ 0xf934, 0xf172, 0xebd7, 0xf01b, 0xf66e, 0xf7e3,
+ 0xfcf4, 0x0380, 0x01ad, 0xfbb2, 0xfa89, 0x022d,
+ 0x0ab9, 0x0884, 0x0155, 0xf9ff, 0xf157, 0xf4a5,
+ 0x0004, 0xfb3d, 0xedfb, 0xef1a, 0xfa7d, 0x011b,
+ 0x0018, 0xff8e, 0x00cb, 0xfd77, 0xfb59, 0xfe95,
+ 0x00b2, 0x0428, 0x07c8, 0x03ff, 0xfd14, 0xf4e0,
+ 0xec6a, 0xeb16, 0xec62, 0xecae, 0xef51, 0xf255,
+ 0xfd25, 0x0d00, 0x0df4, 0x0bde, 0x164c, 0x1848,
+ 0x0c93, 0x0464, 0x024b, 0x0294, 0xfe78, 0xf5a6,
+ 0xf702, 0x0095, 0x0608, 0x0a6f, 0x0c32, 0x0826,
+ 0x06c2, 0x07e8, 0x0698, 0x047d, 0xfea6, 0xf35e,
+ 0xebfa, 0xefb2, 0xf7f7, 0xfbad, 0xfc6e, 0xf87a,
+ 0xeb36, 0xe76e, 0xfb1c, 0x0be5, 0x08c5, 0x07af,
+ 0x11aa, 0x15f3, 0x1226, 0x1077, 0x0f7b, 0x0a8a,
+ 0x0383, 0xfc27, 0xf678, 0xf491, 0xf6db, 0xfe4c,
+ 0x03bd, 0xfe88, 0xf831, 0xf92b, 0xfa48, 0xfad9,
+ 0xfc54, 0xfae9, 0xfcbc, 0x018e, 0xfbc5, 0xeef4,
+ 0xe91e, 0xe9a4, 0xebdc, 0xf115, 0xf9fc, 0x028d,
+ 0x054f, 0x051b, 0x09dd, 0x0fe5, 0x0bbf, 0xfe2d,
+ 0xf375, 0xf2ec, 0xfbf5, 0x073f, 0x0795, 0xfd64,
+ 0xf889, 0xfad3, 0xfb23, 0xfa3b, 0xfa5a, 0xfbcb,
+ 0xffcd, 0x03a5, 0x0576, 0x01de, 0xf834, 0xf673,
+ 0xfbfe, 0xf5c2, 0xec20, 0xeddd, 0xefa7, 0xf2d0,
+ 0xfec7, 0x01fc, 0xfa5d, 0xf7a9, 0xf312, 0xeeb2,
+ 0xfd01, 0x0dfe, 0x0eb2, 0x0d99, 0x06a0, 0xefdc,
+ 0xe80c, 0xf793, 0xfd71, 0xf85c, 0xf8ea, 0xfc54,
+ 0x041a, 0x0bcc, 0x09c3, 0x0b87, 0x11c0, 0x0766,
+ 0xf39b, 0xe8a9, 0xe578, 0xeabb, 0xf83e, 0x01b3,
+ 0x02b4, 0x03af, 0x08b8, 0x0b7b, 0x08f3, 0x0a13,
+ 0x112c, 0x10fd, 0x074a, 0x0756, 0x1697, 0x1bc7,
+ 0x0c1b, 0xff40, 0xfed3, 0x0016, 0x05dd, 0x0c02,
+ 0x03f8, 0xf8c2, 0xf4df, 0xef0b, 0xf113, 0x04cd,
+ 0x1421, 0x1612, 0x179f, 0x147a, 0x09a3, 0x0246,
+ 0xfb4e, 0xf2d4, 0xf3a3, 0xf5f1, 0xefcc, 0xf084,
+ 0xfe7d, 0x0885, 0x058a, 0xfdf0, 0xf98b, 0xf4ec,
+ 0xef05, 0xefea, 0xf341, 0xef24, 0xec99, 0xf4af,
+ 0x002f, 0x045f, 0xfe35, 0xf99c, 0xfe41, 0x0122,
+ 0x00fc, 0x03e7, 0x05a8, 0x09d2, 0x0e60, 0x0571,
+ 0xfa6b, 0xfc28, 0xffb0, 0x0050, 0x025c, 0x0490,
+ 0x07e9, 0x09d3, 0x0a33, 0x0e71, 0x0ff1, 0x0c78,
+ 0x0ca2, 0x0ccc, 0x0a8b, 0x0b68, 0x0cae, 0x0e39,
+ 0x1053, 0x0b79, 0x042e, 0x03d3, 0x0546, 0x0425,
+ 0x03d4, 0x03c4, 0x005a, 0xfbad, 0xfa09, 0xf51b,
+ 0xe9da, 0xeb53, 0xfed8, 0x06b1, 0xf655, 0xe741,
+ 0xeba2, 0xfb3c, 0x064b, 0x0546, 0xfeac, 0xfa61,
+ 0xf509, 0xecd0, 0xe60a, 0xe01f, 0xdc4e, 0xde9d,
+ 0xe184, 0xe391, 0xed8b, 0xfa10, 0xfbbe, 0xf734,
+ 0xf6f0, 0xf8d1, 0xf916, 0xfb1f, 0x001b, 0x0612,
+ 0x0bde, 0x0a39, 0x013a, 0x0315, 0x0c63, 0x05ac,
+ 0xf995, 0xfa7d, 0xfc5d, 0xfb0d, 0xfcb3, 0xfeea,
+ 0x05da, 0x0be7, 0x087f, 0x0cca, 0x161b, 0x0db5,
+ 0x06a1, 0x141f, 0x1ceb, 0x1347, 0x0746, 0x0319,
+ 0x052f, 0x0946, 0x0d1c, 0x0f03, 0x0bbf, 0x0467,
+ 0xfd12, 0xfab7, 0x00e9, 0x078d, 0x0643, 0x02de,
+ 0x00f6, 0xfb55, 0xf1bb, 0xeb44, 0xec8d, 0xed86,
+ 0xe58b, 0xe051, 0xec25, 0xff80, 0x087e, 0x0756,
+ 0x075f, 0x085b, 0x04e9, 0x0118, 0xfc5a, 0xf3a1,
+ 0xef68, 0xee78, 0xe7d5, 0xe3c1, 0xe5ea, 0xe6e0,
+ 0xee06, 0xfd36, 0x04f4, 0x056e, 0x09a7, 0x1078,
+ 0x160c, 0x1676, 0x0baf, 0xfa1a, 0xeb52, 0xe1ee,
+ 0xdfd5, 0xe689, 0xf180, 0xfcd0, 0x0596, 0x06ae,
+ 0x021d, 0x00c2, 0x04a4, 0x068d, 0x00f3, 0xfacc,
+ 0xfdd7, 0x03ce, 0x0344, 0x004b, 0xff05, 0xfeaa,
+ 0xff43, 0xfdf0, 0xf9e5, 0xf4fa, 0xeee2, 0xee6e,
+ 0xf83c, 0xfea3, 0xf89e, 0xf0e7, 0xee98, 0xec12,
+ 0xe6b4, 0xe24f, 0xe146, 0xe5c0, 0xef2f, 0xf617,
+ 0xfb78, 0x05fa, 0x0e72, 0x12df, 0x1821, 0x1296,
+ 0x0638, 0x0714, 0x07b2, 0xfc9d, 0xf9cb, 0x0113,
+ 0x07d8, 0x0d5d, 0x0a32, 0x04c2, 0x0b93, 0x1183,
+ 0x0c7e, 0x044f, 0xf97a, 0xf07d, 0xef0b, 0xf1a5,
+ 0xfd2d, 0x0e72, 0x120c, 0x0957, 0x065d, 0x0d92,
+ 0x1444, 0x0dec, 0x01e3, 0xffb3, 0xfe30, 0xf87e,
+ 0xffa4, 0x0ace, 0x04fc, 0xfcf1, 0x0001, 0x002b,
+ 0xfbdd, 0xfc49, 0xfcdd, 0xfb71, 0xfd30, 0x0076,
+ 0x01be, 0x0044, 0xfa7e, 0xefce, 0xe598, 0xe7b5,
+ 0xf638, 0xfd3b, 0xf52c, 0xed7c, 0xebc2, 0xe931,
+ 0xe9de, 0xf29d, 0xf7a1, 0xf026, 0xeac4, 0xf498,
+ 0x00e8, 0x00e8, 0xfad6, 0xfc19, 0x0439, 0x0731,
+ 0x06a0, 0x0e28, 0x1496, 0x0dd9, 0x0316, 0xfba1,
+ 0xf8a6, 0xf850, 0xf088, 0xe8f4, 0xee3a, 0xf274,
+ 0xf245, 0xf74b, 0xf8e2, 0xf9d0, 0x013d, 0x0309,
+ 0x0424, 0x079d, 0xfce0, 0xf67e, 0x0590, 0x0a40,
+ 0xff1c, 0xfd73, 0xfb6c, 0xf0bc, 0xf132, 0xfc17,
+ 0x0096, 0xffb8, 0x008b, 0x0347, 0x0711, 0x0677,
+ 0xf9cc, 0xe9d2, 0xe831, 0xf165, 0xf734, 0xfc3e,
+ 0x04f0, 0x0a37, 0x0b12, 0x0b5d, 0x0872, 0x01da,
+ 0xf9f5, 0xf260, 0xf383, 0xff3a, 0x079f, 0x094e,
+ 0x0a6a, 0x04d7, 0xfa58, 0xfa99, 0x05af, 0x0f2b,
+ 0x0ecd, 0x03e6, 0xf9e0, 0xf6db, 0xf39a, 0xf3db,
+ 0xfe79, 0x095f, 0x0bce, 0x08f0, 0x068d, 0x077f,
+ 0x08b1, 0x089f, 0x07fb, 0x026c, 0xfc09, 0x0017,
+ 0x088d, 0x0549, 0xf698, 0xeeeb, 0xfa67, 0x09bc,
+ 0x0747, 0xf856, 0xf269, 0xfe69, 0x10db, 0x17bf,
+ 0x10b8, 0x088f, 0x04a7, 0xfe78, 0xf51b, 0xf029,
+ 0xed86, 0xe7d5, 0xe989, 0xf590, 0xfd14, 0xff18,
+ 0x010f, 0xfe5b, 0xfaab, 0xfa13, 0xfb38, 0x046e,
+ 0x0db6, 0x08af, 0x01f1, 0x0046, 0xfa7d, 0xfbfc,
+ 0x095a, 0x0d5e, 0x0494, 0xfd59, 0xfd39, 0x04ea,
+ 0x0d20, 0x0b4c, 0x04ee, 0x02ac, 0x01df, 0x006f,
+ 0xfe7a, 0xfa95, 0xf5c4, 0xf269, 0xf59b, 0xff87,
+ 0x032a, 0x0136, 0x093d, 0x104a, 0x0661, 0xfa9f,
+ 0xf5fc, 0xf194, 0xefd8, 0xefde, 0xf4f4, 0x07b3,
+ 0x1361, 0x0b2f, 0x098f, 0x10ae, 0x095e, 0xfacc,
+ 0xf54a, 0xf87b, 0xff85, 0x026f, 0x01a1, 0x0749,
+ 0x0fd9, 0x1130, 0x0ce8, 0x086b, 0x05bc, 0x04b3,
+ 0x050f, 0x0861, 0x0d2c, 0x0d89, 0x089d, 0x051b,
+ 0x0368, 0xfbaa, 0xf38e, 0xf813, 0xffa2, 0xfbb9,
+ 0xf4c1, 0xf426, 0xf5ef, 0xf7dc, 0xfbb6, 0x01b7,
+ 0x06be, 0x06d2, 0x046a, 0x0221, 0xfd72, 0xf99f,
+ 0xf9b3, 0xf5ff, 0xeeb1, 0xeff1, 0xf83f, 0xfa80,
+ 0xf700, 0xf858, 0x0076, 0x0729, 0x06a1, 0x0356,
+ 0x023c, 0xfffe, 0xfc88, 0xfcb5, 0xfdd0, 0xfb37,
+ 0xf4f0, 0xed72, 0xecf0, 0xf594, 0xfb4e, 0xfa43,
+ 0xfa52, 0xfb70, 0xf9e7, 0xf7c5, 0xf65c, 0xf46c,
+ 0xf5b5, 0x0122, 0x1051, 0x1431, 0x0d2f, 0x04a5,
+ 0xff74, 0x02c8, 0x0ae9, 0x0dd0, 0x0d14, 0x0cd0,
+ 0x0fa4, 0x18f6, 0x1fe0, 0x1c54, 0x1228, 0x03b8,
+ 0xfaa9, 0xfe7f, 0x00a6, 0xfc1e, 0xfb28, 0xfb30,
+ 0xfb6c, 0xff85, 0x04a0, 0x0fbd, 0x1ba9, 0x15bf,
+ 0x06fe, 0xff54, 0xf7ed, 0xf299, 0xf4d7, 0xf47c,
+ 0xf22d, 0xf761, 0x0153, 0x07ec, 0x01b2, 0xf28b,
+ 0xf05e, 0xfa15, 0xfc24, 0xfb48, 0xfd7b, 0xf8ec,
+ 0xf1f3, 0xf028, 0xf1d7, 0xfa68, 0x0210, 0xfdaf,
+ 0xfa98, 0xfe6c, 0xfbc2, 0xf570, 0xf406, 0xf5e5,
+ 0xfbc6, 0x043b, 0x0a16, 0x09a1, 0x0343, 0x027c,
+ 0x0a39, 0x0dae, 0x0d6d, 0x0c01, 0x03c4, 0x01b8,
+ 0x0ce4, 0x11e5, 0x0da7, 0x0e77, 0x12d6, 0x11ac,
+ 0x0bf8, 0x0a32, 0x0be2, 0x0876, 0x072c, 0x10f4,
+ 0x1909, 0x1670, 0x0f56, 0x08ba, 0x050a, 0x0152,
+ 0xfc51, 0x0034, 0x0b78, 0x0e86, 0x0964, 0x0635,
+ 0x06b9, 0x0b1f, 0x1146, 0x0f4f, 0x05ba, 0x045a,
+ 0x0c04, 0x0cdf, 0x07fc, 0x0869, 0x0982, 0x03b3,
+ 0xfb31, 0xf992, 0xff7b, 0xfee2, 0xf4b7, 0xf129,
+ 0xf7fb, 0x01f3, 0x0ce0, 0x0f18, 0x03a7, 0xf915,
+ 0xf5f1, 0xf32b, 0xf426, 0xfda3, 0x03ed, 0x00a4,
+ 0x0106, 0x0855, 0x0a83, 0x0890, 0x071a, 0x00c0,
+ 0xf770, 0xf11e, 0xf03e, 0xf7ad, 0x000f, 0x00a1,
+ 0xfd2d, 0xf761, 0xefcf, 0xed3b, 0xf5b1, 0x0c2d,
+ 0x2142, 0x1e08, 0x0de9, 0x05ec, 0x0072, 0xfaac,
+ 0xfade, 0xfd98, 0x0151, 0x0665, 0x07b0, 0x046e,
+ 0x0051, 0xfe1c, 0xfeb4, 0xff43, 0xfb6c, 0xf44b,
+ 0xf2d2, 0xf883, 0xfb59, 0xfd84, 0x0647, 0x0e0a,
+ 0x1175, 0x138b, 0x121e, 0x120a, 0x1340, 0x0acf,
+ 0xfe6e, 0xfae6, 0xfde0, 0x0107, 0x038c, 0x0a3e,
+ 0x1469, 0x15e5, 0x0ec0, 0x0ca0, 0x113a, 0x140b,
+ 0x1179, 0x0f76, 0x130b, 0x16bb, 0x19a4, 0x1e02,
+ 0x1b59, 0x1163, 0x0932, 0x02a8, 0xfc66, 0xf610,
+ 0xf17a, 0xf60e, 0xff88, 0x05d5, 0x09e8, 0x090f,
+ 0x0860, 0x0d54, 0x0834, 0xfbaf, 0xff2f, 0x09e5,
+ 0x0906, 0x0535, 0x0765, 0x0876, 0x03e8, 0x0226,
+ 0x07ca, 0x0a49, 0x04cd, 0xfdb9, 0xf9be, 0xfe8c,
+ 0x08fb, 0x09f8, 0xfefb, 0xf2c0, 0xed09, 0xee31,
+ 0xf210, 0xf7ea, 0xfc17, 0xf9be, 0xfb8a, 0x057a,
+ 0x08e6, 0x048b, 0x01b4, 0xff63, 0xf806, 0xeca8,
+ 0xebca, 0xf850, 0xfc8c, 0xf821, 0xfc74, 0x0326,
+ 0x0613, 0x0bbf, 0x10a3, 0x0ef5, 0x0748, 0x010b,
+ 0x0150, 0xfdc9, 0xf65a, 0xf57a, 0xf572, 0xf873,
+ 0x02e4, 0x0288, 0xf9a9, 0xfbfc, 0x01d9, 0x01dc,
+ 0xfef2, 0xfa5e, 0xfcba, 0x03a6, 0xff2f, 0xf448,
+ 0xef0e, 0xede1, 0xf04a, 0xf53a, 0xf99f, 0x02fc,
+ 0x1192, 0x183c, 0x13fb, 0x0fd6, 0x0ca1, 0x089d,
+ 0x0e0b, 0x1858, 0x16ed, 0x0f78, 0x0bd8, 0x0888,
+ 0x05d4, 0x0343, 0xff48, 0xfe5b, 0xff4e, 0x02e6,
+ 0x0d40, 0x14eb, 0x137a, 0x0e26, 0x05c1, 0xfb5f,
+ 0xf211, 0xed01, 0xf1b5, 0xf911, 0xf8ae, 0xf9c1,
+ 0x03fc, 0x0c8f, 0x0ae2, 0x063a, 0x0709, 0x082c,
+ 0x0826, 0x0b19, 0x02d9, 0xed20, 0xe643, 0xf334,
+ 0xfea4, 0x007b, 0xfa53, 0xf6be, 0xfd9b, 0x00d6,
+ 0xfba2, 0xf7ab, 0xf2a4, 0xee0e, 0xefc5, 0xf1ed,
+ 0xf07d, 0xebc5, 0xe71e, 0xe59f, 0xdde3, 0xd313,
+ 0xd6a4, 0xe276, 0xee27, 0xfc94, 0xfe98, 0xf113,
+ 0xead1, 0xecfd, 0xec15, 0xea79, 0xe754, 0xe4d4,
+ 0xee50, 0xfe27, 0x053c, 0x080a, 0x0fef, 0x1337,
+ 0x098c, 0xfe88, 0xf99d, 0xf3b9, 0xed25, 0xedce,
+ 0xf30d, 0xf472, 0xf6a2, 0x02fe, 0x0fb2, 0x1061,
+ 0x0c79, 0x07c5, 0xfebd, 0xf9d3, 0xfc10, 0xfe82,
+ 0x018d, 0x04b8, 0x06f7, 0x0c8e, 0x12db, 0x1371,
+ 0x0bb3, 0xff49, 0xf9b3, 0xfa75, 0xf814, 0xf877,
+ 0xff14, 0x0564, 0x0aa2, 0x06d9, 0xf806, 0xf426,
+ 0xff85, 0x0457, 0xfe3d, 0xfa48, 0xfc3f, 0xfe35,
+ 0x0062, 0x0798, 0x0dea, 0x0ff7, 0x15e0, 0x1e08,
+ 0x2417, 0x2705, 0x1b4c, 0x06d6, 0x0161, 0x03ce,
+ 0xfdab, 0xfa96, 0x0156, 0x06a5, 0x06fc, 0x0675,
+ 0x0431, 0xfe4b, 0xf9ee, 0xf9b2, 0xf5e3, 0xeee5,
+ 0xee5f, 0xf1a3, 0xf070, 0xef88, 0xf83b, 0x01f9,
+ 0xfaed, 0xee3c, 0xf300, 0xfcac, 0xfa58, 0xf7f5,
+ 0xfb99, 0xfed7, 0x0099, 0xffaa, 0xfdc7, 0xfcee,
+ 0xfa80, 0xfb44, 0x0163, 0x0627, 0x08ed, 0x07b5,
+ 0x00b1, 0xfc95, 0xfaab, 0xf427, 0xf069, 0xf3d3,
+ 0xf637, 0xf1d3, 0xe9a8, 0xe7aa, 0xee94, 0xf2a6,
+ 0xeeb8, 0xed5b, 0xf421, 0xf825, 0xf2bc, 0xefc8,
+ 0xf57d, 0xfd0e, 0x0677, 0x0d72, 0x0a0d, 0x0773,
+ 0x0af4, 0x0747, 0xfce3, 0xf4ac, 0xef5e, 0xee7a,
+ 0xf09d, 0xf230, 0xf4f9, 0xfb00, 0x03c7, 0x0838,
+ 0x0441, 0x0196, 0xff75, 0xf84b, 0xf868, 0xfd0c,
+ 0xf973, 0xfc3f, 0x0965, 0x0cf2, 0x0738, 0x04b5,
+ 0x086a, 0x0c83, 0x0633, 0xfdb3, 0x01b1, 0x0814,
+ 0x0b2a, 0x1139, 0x12c7, 0x0e32, 0x09d1, 0x0207,
+ 0xfc96, 0x0212, 0x07a7, 0x066d, 0x0781, 0x0d2a,
+ 0x0e48, 0x0961, 0x0650, 0x030f, 0xfc2e, 0xfc5b,
+ 0x03d6, 0x0688, 0x095a, 0x12ac, 0x167f, 0x0dc1,
+ 0x02e6, 0xffd9, 0xfdcd, 0xf20d, 0xe466, 0xe290,
+ 0xebc8, 0xf6e7, 0xfbce, 0xfb37, 0xfe80, 0x080c,
+ 0x108a, 0x1230, 0x10ad, 0x1392, 0x14f0, 0x0bc3,
+ 0xff9a, 0xf826, 0xf5ae, 0xf69e, 0xf0ff, 0xe6fb,
+ 0xebad, 0xfa61, 0xff67, 0xff52, 0x05c9, 0x0ba2,
+ 0x06a5, 0xfd67, 0xfa77, 0xfa45, 0xf93b, 0xfa39,
+ 0xf86d, 0xf116, 0xea4b, 0xe6da, 0xe743, 0xea28,
+ 0xed41, 0xf1d7, 0xf5fa, 0xf995, 0xfcc4, 0xf552,
+ 0xe735, 0xe412, 0xe9d9, 0xf02e, 0xf479, 0xf235,
+ 0xefe8, 0xf356, 0xf81f, 0x0013, 0x056f, 0x02d9,
+ 0x0597, 0x091e, 0xff43, 0xf59f, 0xf5ec, 0xfa18,
+ 0x00ee, 0x047d, 0x0268, 0x01d8, 0x015e, 0x0004,
+ 0xff0d, 0xf969, 0xf39a, 0xf4bf, 0xf76f, 0xf7f2,
+ 0xf818, 0xfaa5, 0x019f, 0x063b, 0x0288, 0xfaff,
+ 0xf431, 0xf26b, 0xf809, 0x0055, 0x0bd1, 0x1a24,
+ 0x1c5e, 0x100b, 0x0955, 0x0cf9, 0x0c8b, 0x054c,
+ 0xfdad, 0xf89c, 0xf82a, 0xf99f, 0xf9ec, 0xfcc2,
+ 0x00ba, 0x00da, 0xff62, 0xff18, 0x02c9, 0x0bab,
+ 0x10be, 0x0db8, 0x0b3e, 0x0d85, 0x0ff6, 0x0d95,
+ 0x0845, 0x058e, 0x01da, 0xfb4e, 0xf950, 0xf9e2,
+ 0xfa68, 0x003e, 0x0509, 0x030e, 0xff93, 0xfa65,
+ 0xfbf1, 0x0e4a, 0x1dae, 0x19c6, 0x0ed4, 0x0353,
+ 0xf5f5, 0xec46, 0xe793, 0xe65f, 0xe61a, 0xe3b2,
+ 0xe794, 0xf484, 0xfd09, 0x0047, 0x04db, 0x04ab,
+ 0x002f, 0xfd1f, 0xf657, 0xec84, 0xe899, 0xee8e,
+ 0xfc38, 0x0451, 0xffef, 0xfeb4, 0x049d, 0x0334,
+ 0xfbe9, 0xf7c7, 0xf60b, 0xf4b9, 0xf1ed, 0xef1d,
+ 0xee71, 0xea79, 0xe6b4, 0xeea4, 0xfb86, 0xff34,
+ 0xfd44, 0x0097, 0x059f, 0x0274, 0xfd0f, 0xfd20,
+ 0xfa81, 0xf532, 0xf602, 0xf614, 0xf06c, 0xf07f,
+ 0xfaa5, 0x040d, 0x059f, 0x0596, 0x074d, 0x044f,
+ 0xff4c, 0xff29, 0xfffc, 0xffeb, 0x0114, 0x039f,
+ 0x08e1, 0x0b5c, 0x068a, 0x01ab, 0xff4e, 0xfcc0,
+ 0xf993, 0xf513, 0xf563, 0xfc95, 0x02ac, 0x09f4,
+ 0x12b6, 0x1236, 0x0b1c, 0x0675, 0x0290, 0xf9da,
+ 0xedcb, 0xebba, 0xf4a2, 0xf6d8, 0xf2e3, 0xf46b,
+ 0xfca4, 0x0c74, 0x191d, 0x1710, 0x128f, 0x1125,
+ 0x0d34, 0x0b7b, 0x0c1c, 0x0e12, 0x11b3, 0x0fa0,
+ 0x0d7a, 0x10ad, 0x0efd, 0x0cb9, 0x0d9a, 0x082a,
+ 0x03a1, 0x0361, 0xfe8b, 0xfc01, 0xfcb1, 0xf750,
+ 0xf1da, 0xf12e, 0xf41d, 0xfeb9, 0x0e41, 0x19fb,
+ 0x1d37, 0x1905, 0x11e4, 0x067a, 0xf692, 0xeb29,
+ 0xe884, 0xec37, 0xf2b4, 0xf798, 0xfb5b, 0xfe5a,
+ 0xfe39, 0xfbb1, 0xf725, 0xf5b3, 0xfbad, 0xfddb,
+ 0xf8a3, 0xf643, 0xf49d, 0xf23c, 0xf5f9, 0xfaec,
+ 0xfae1, 0xf782, 0xf285, 0xef78, 0xedc3, 0xeb41,
+ 0xeb7f, 0xec15, 0xedb1, 0xf811, 0xffef, 0xf9ef,
+ 0xf554, 0xf9d2, 0xfcdc, 0xfef5, 0x0422, 0x0683,
+ 0x05a6, 0x05c9, 0x02d6, 0xfb73, 0xf92e, 0xfd68,
+ 0xfd25, 0xf898, 0xfa18, 0xff8a, 0x00f5, 0x017d,
+ 0x05ef, 0x0a57, 0x0a5f, 0x084b, 0x0783, 0x0618,
+ 0x038f, 0x06eb, 0x0eb3, 0x0ecf, 0x09b9, 0x093f,
+ 0x08a9, 0x052e, 0x0141, 0xf86a, 0xf35c, 0x0038,
+ 0x1097, 0x12d2, 0x0f45, 0x0e9e, 0x0d2b, 0x0a77,
+ 0x09e2, 0x0a05, 0x06b4, 0x0133, 0xfe63, 0xfdde,
+ 0xfc60, 0xfa8c, 0xfc04, 0x0178, 0x056f, 0x0261,
+ 0xf82e, 0xece9, 0xeb79, 0xf6ed, 0x05b0, 0x0df8,
+ 0x0c4d, 0x084d, 0x09f2, 0x0658, 0xf8f9, 0xf07b,
+ 0xecce, 0xe8af, 0xea31, 0xebf6, 0xeb20, 0xef38,
+ 0xf1e5, 0xf204, 0xf711, 0xf88d, 0xf673, 0xfcca,
+ 0x06f2, 0x0e50, 0x10f9, 0x089b, 0xfaba, 0xf2a7,
+ 0xef09, 0xed9e, 0xf14d, 0xf703, 0xf723, 0xf470,
+ 0xfaa5, 0x07a7, 0x0b5f, 0x0077, 0xf3c3, 0xf3c9,
+ 0xfba4, 0xfcf0, 0xfaec, 0xfc77, 0xfe40, 0x01c2,
+ 0x026f, 0xf738, 0xebb4, 0xead6, 0xecc5, 0xec82,
+ 0xeb67, 0xe9c1, 0xe66b, 0xe2dc, 0xe930, 0xf7e6,
+ 0xfe1e, 0xfc81, 0xfd51, 0xff7b, 0x03bf, 0x0969,
+ 0x0aed, 0x0b62, 0x0f1d, 0x123e, 0x0be9, 0xfc5f,
+ 0xf512, 0xf990, 0xfc83, 0x02c5, 0x0d08, 0x0d05,
+ 0x0c12, 0x1265, 0x1063, 0x0936, 0x0bc3, 0x120b,
+ 0x1518, 0x190c, 0x1d9c, 0x1b58, 0x114d, 0x0999,
+ 0x0727, 0x04d0, 0x056b, 0x0978, 0x0afa, 0x0843,
+ 0x0262, 0x03bf, 0x126c, 0x184b, 0x0c43, 0x08b3,
+ 0x13ae, 0x15e2, 0x0917, 0xfe81, 0x0360, 0x0ce6,
+ 0x08cb, 0xfe21, 0xfd21, 0x01f8, 0x0224, 0xfd28,
+ 0xfab4, 0xff51, 0x031b, 0x00f9, 0x0092, 0x04e7,
+ 0x06e1, 0x00a5, 0xf7a1, 0xf9a3, 0x0475, 0x0714,
+ 0x0168, 0xfcc4, 0xf6e3, 0xf1f7, 0xf622, 0xfbf3,
+ 0xf749, 0xf02b, 0xf4cb, 0xfd64, 0xfcbc, 0xfc3a,
+ 0x060d, 0x0fbd, 0x0ff8, 0x0a2b, 0x024f, 0xf8c8,
+ 0xefbb, 0xed85, 0xf13a, 0xf18b, 0xf0f8, 0xf56f,
+ 0xf797, 0xf685, 0xf93f, 0xfbe6, 0xf9b3, 0xf467,
+ 0xf036, 0xf26a, 0xf59d, 0xf306, 0xf31c, 0xf796,
+ 0xf77d, 0xf4b5, 0xef55, 0xe413, 0xe0cb, 0xed54,
+ 0xf86e, 0xf942, 0xfa11, 0xfb96, 0xf68e, 0xef67,
+ 0xee7d, 0xf4b1, 0xfafa, 0xf75e, 0xf079, 0xf6f6,
+ 0x0320, 0x0573, 0x058e, 0x0b44, 0x1082, 0x1044,
+ 0x0b5f, 0x08df, 0x09cd, 0x069b, 0x0410, 0x0672,
+ 0x0569, 0x030f, 0x022d, 0xfdec, 0xfd62, 0x01a0,
+ 0x026d, 0x0770, 0x1297, 0x1898, 0x19f1, 0x1748,
+ 0x0e68, 0x0763, 0x058d, 0x05ed, 0x0902, 0x0dde,
+ 0x153e, 0x1dc6, 0x1f01, 0x1721, 0x0b82, 0x01e9,
+ 0xffb1, 0x0124, 0x0062, 0x0095, 0x04d6, 0x0ce2,
+ 0x12ef, 0x0d62, 0x0257, 0xfdce, 0xfd4a, 0x003c,
+ 0x0617, 0x01be, 0xf3d0, 0xecd3, 0xefd6, 0xf66b,
+ 0xfce0, 0x00fe, 0x053a, 0x0970, 0x07c9, 0x0381,
+ 0x0315, 0x004d, 0xf66f, 0xf160, 0xf9da, 0x0301,
+ 0x00ff, 0xfc54, 0xfa36, 0xf414, 0xee59, 0xf013,
+ 0xf25c, 0xf1df, 0xf427, 0xf7e6, 0xf5d7, 0xece8,
+ 0xe71a, 0xea4a, 0xecce, 0xecc0, 0xf24b, 0xf4ea,
+ 0xf00f, 0xf4b3, 0x0268, 0x06a3, 0x027b, 0x0047,
+ 0xfebb, 0xfc7a, 0xfe08, 0x03aa, 0x072e, 0x072e,
+ 0x08f7, 0x0b86, 0x0a76, 0x06a6, 0x0020, 0xfac6,
+ 0xfd4c, 0xfea4, 0xf6d8, 0xf470, 0xfdc2, 0x03c1,
+ 0x0070, 0xfaa6, 0xf873, 0xff41, 0x0aa1, 0x0d87,
+ 0x08d1, 0x07a0, 0x0a4e, 0x0aea, 0x0a42, 0x0d09,
+ 0x1105, 0x0bd9, 0xfafc, 0xecc9, 0xeec4, 0xfa71,
+ 0x016a, 0x05f1, 0x0f3d, 0x1390, 0x0ccb, 0x02c3,
+ 0xf8fa, 0xf7d6, 0x055d, 0x0fce, 0x117c, 0x176d,
+ 0x1b8c, 0x1a49, 0x1aac, 0x148a, 0x0a1c, 0x06bf,
+ 0x0473, 0x0444, 0x09c9, 0x0c4c, 0x0d6b, 0x097c,
+ 0xfaba, 0xf7c4, 0x05ed, 0x0a81, 0x05b0, 0x097c,
+ 0x1265, 0x1336, 0x0a05, 0x0223, 0x019f, 0x058e,
+ 0x0dd6, 0x107c, 0x051f, 0xf9ff, 0xf745, 0xf8de,
+ 0xfe34, 0x00b5, 0x0053, 0x0398, 0x0511, 0x0686,
+ 0x0aac, 0x0653, 0xfdb5, 0xf9cc, 0xf637, 0xf6e9,
+ 0xfacc, 0xf871, 0xf63f, 0xf74a, 0xf71d, 0xfb1b,
+ 0x019c, 0x021a, 0xfdc3, 0xfb1f, 0xfea4, 0x01ee,
+ 0xfeb8, 0xfd25, 0xfc7c, 0xf326, 0xe914, 0xe9b3,
+ 0xf176, 0xf668, 0xf687, 0xf985, 0xfda3, 0xfdf8,
+ 0x02f2, 0x07f9, 0x008f, 0xf835, 0xf74d, 0xf5a8,
+ 0xf383, 0xf48d, 0xfb86, 0x0710, 0x0885, 0xffdc,
+ 0xfc87, 0xf939, 0xf0fd, 0xf321, 0xffae, 0x06b9,
+ 0x0669, 0x057b, 0x05c1, 0x060f, 0x04b0, 0x0236,
+ 0x0177, 0x03de, 0x09b5, 0x106a, 0x11f7, 0x0ea1,
+ 0x0e44, 0x12a9, 0x1458, 0x0e40, 0x0642, 0x043b,
+ 0x04d2, 0x04a0, 0x06d4, 0x06e8, 0x0468, 0x0843,
+ 0x0b3f, 0x04ff, 0xfeb6, 0xfc9a, 0x0127, 0x0d62,
+ 0x12d4, 0x1281, 0x19a1, 0x1de4, 0x1980, 0x13f8,
+ 0x0a12, 0x02ec, 0x081a, 0x0cd1, 0x0beb, 0x0d25,
+ 0x0e7f, 0x0d5c, 0x0ab2, 0x06a7, 0x02c0, 0xffd7,
+ 0x002c, 0x0374, 0x0692, 0x0d1d, 0x145b, 0x111e,
+ 0x060f, 0xfce1, 0xf780, 0xf453, 0xf2c2, 0xf65e,
+ 0xfaee, 0xf291, 0xe3b5, 0xe22d, 0xebf3, 0xf3aa,
+ 0xf82f, 0xfea1, 0x0569, 0x09a0, 0x11e6, 0x1c42,
+ 0x1835, 0x096b, 0x0076, 0xf9e5, 0xf335, 0xf628,
+ 0xfe33, 0xff81, 0xfc6f, 0xfb27, 0xfa75, 0xfa57,
+ 0xfd5c, 0x0006, 0xfef5, 0xfc95, 0xfac3, 0xfc8a,
+ 0x0094, 0xfc92, 0xf26a, 0xedeb, 0xf011, 0xf77a,
+ 0xff36, 0xfd6f, 0xf8eb, 0xf92f, 0xf4c2, 0xeca3,
+ 0xecb7, 0xf565, 0xff5a, 0x0292, 0xffb6, 0xffcb,
+ 0xff54, 0xf84e, 0xf51f, 0xf98b, 0xfa93, 0xf6a2,
+ 0xf52e, 0xf81c, 0xfb88, 0xfaa7, 0xf7b0, 0xf996,
+ 0xfd35, 0xfc02, 0xf937, 0xf6d0, 0xf3fe, 0xf640,
+ 0xffdd, 0x0bf7, 0x149f, 0x1613, 0x15cd, 0x1797,
+ 0x1438, 0x0d11, 0x08e6, 0x04f5, 0x0107, 0xfdc0,
+ 0xfade, 0xff1f, 0x05ba, 0x038c, 0xfefe, 0xfe34,
+ 0xfe54, 0xfff4, 0x030c, 0x0746, 0x0ab2, 0x0a1a,
+ 0x066e, 0xfb18, 0xeee3, 0xf82b, 0x0ad8, 0x0da2,
+ 0x0d30, 0x125d, 0x11ad, 0x0c56, 0x0675, 0x0241,
+ 0x0194, 0xfe86, 0xfcb9, 0x01af, 0x05a7, 0x0641,
+ 0x044f, 0xffe4, 0xfd5a, 0xf96c, 0xf559, 0xf640,
+ 0xf376, 0xf211, 0xfba7, 0xff30, 0xfaa2, 0xfe4f,
+ 0x028e, 0xfe78, 0xf96d, 0xf891, 0xfcdb, 0x0229,
+ 0x058b, 0x0827, 0x0583, 0xff50, 0xfbd1, 0xf882,
+ 0xf778, 0xf9f1, 0xf9a1, 0xfb2c, 0x00ee, 0x0138,
+ 0xfc83, 0xf95f, 0xf88f, 0xfa07, 0xfd86, 0x028e,
+ 0x05f8, 0x051f, 0x0356, 0xff34, 0xf72f, 0xf0b3,
+ 0xe982, 0xe3c9, 0xeaf6, 0xf5f5, 0xf89b, 0xfdb3,
+ 0x06ed, 0x0589, 0xfa79, 0xf3a9, 0xf402, 0xf45e,
+ 0xf41d, 0xf6da, 0xf888, 0xf79c, 0xfa45, 0xff6a,
+ 0x0099, 0xfdd5, 0xfaa2, 0xf96b, 0xfb2f, 0xfe4b,
+ 0xfded, 0xf7b2, 0xf0e2, 0xedd6, 0xedc5, 0xf208,
+ 0xf82a, 0xf88e, 0xf62d, 0xfb3f, 0x0677, 0x0b64,
+ 0x0669, 0x052b, 0x0e56, 0x1437, 0x0f3b, 0x08a7,
+ 0x0768, 0x0933, 0x081d, 0x0322, 0x0083, 0x0154,
+ 0x01de, 0x038d, 0x0600, 0x06d5, 0x0906, 0x0c76,
+ 0x0e09, 0x1021, 0x11ee, 0x0f9b, 0x0ce7, 0x0a81,
+ 0x0381, 0xfd38, 0xfc53, 0xf9e7, 0xf6c9, 0xf983,
+ 0xfc4f, 0xf9eb, 0xf760, 0xf733, 0xf64a, 0xf366,
+ 0xf315, 0xf98a, 0x02c1, 0x08c4, 0x08f4, 0x0502,
+ 0x0436, 0x0588, 0x0175, 0xfdf6, 0xff3e, 0xfec1,
+ 0xfe53, 0xfc6c, 0xf36e, 0xefe4, 0xf74a, 0xfcc0,
+ 0x0153, 0x098e, 0x0ce6, 0x0ae6, 0x0841, 0x0203,
+ 0xf8ba, 0xf096, 0xea67, 0xe84c, 0xec71, 0xf30a,
+ 0xf767, 0xfa5f, 0xfc5a, 0xf9e2, 0xf4d2, 0xf394,
+ 0xf562, 0xf5e1, 0xfa2f, 0x088b, 0x1387, 0x09dd,
+ 0xf786, 0xf0a2, 0xf21e, 0xf516, 0xf982, 0xfc5a,
+ 0xfe5e, 0x0009, 0xff2f, 0x0137, 0x055f, 0x055a,
+ 0x06f6, 0x09dd, 0x0665, 0x0302, 0x0235, 0xff57,
+ 0x01c0, 0x0860, 0x060d, 0xfe03, 0xf969, 0xf5d1,
+ 0xf21b, 0xf126, 0xf204, 0xf368, 0xf64d, 0xf956,
+ 0xf993, 0xf8cf, 0xf88e, 0xf7b3, 0xfda6, 0x0d17,
+ 0x15f8, 0x142e, 0x14bd, 0x146c, 0x0d12, 0x0831,
+ 0x0765, 0x04ef, 0x0126, 0xfacd, 0xf570, 0xf8cf,
+ 0x008a, 0x056f, 0x070a, 0x078a, 0x0b01, 0x0df3,
+ 0x0c30, 0x0dc6, 0x11e6, 0x10cd, 0x104e, 0x1020,
+ 0x0bd6, 0x0b56, 0x0ab2, 0x03b6, 0x021f, 0x03f3,
+ 0xffad, 0xfd12, 0xfc1c, 0xf879, 0xf947, 0xfa59,
+ 0xf5c5, 0xf4fc, 0xfa86, 0x0055, 0x0444, 0x0552,
+ 0x059d, 0x058b, 0x018a, 0xfb69, 0xf54a, 0xf10b,
+ 0xf31b, 0xf484, 0xed5a, 0xe83d, 0xec24, 0xef5d,
+ 0xeda8, 0xec02, 0xedb2, 0xf617, 0x03e6, 0x0b3a,
+ 0x0622, 0xfcf4, 0xf66d, 0xf52d, 0xfa38, 0xfcd4,
+ 0xf767, 0xf223, 0xf206, 0xf6d8, 0xff8e, 0x049c,
+ 0x0472, 0x0331, 0xfbd4, 0xf0b4, 0xf060, 0xfc3f,
+ 0x07d0, 0x0a5e, 0x0749, 0x0584, 0x0248, 0xfd50,
+ 0xfcfe, 0xfd65, 0xfc4c, 0xfd84, 0xfb0d, 0xf635,
+ 0xf768, 0xf835, 0xf6aa, 0xf886, 0xf864, 0xf713,
+ 0xfb9b, 0x00e0, 0x02da, 0x03b9, 0x035f, 0x002a,
+ 0xf8e3, 0xf5e6, 0xff3d, 0x07bd, 0x03ee, 0xfc0a,
+ 0xf6ed, 0xf52b, 0xf684, 0xf979, 0xfee4, 0x027b,
+ 0xfe2f, 0xfb49, 0x0559, 0x152b, 0x1ab2, 0x1525,
+ 0x1335, 0x15d7, 0x118e, 0x0ae7, 0x0800, 0x01d1,
+ 0xf8bd, 0xf2bc, 0xf1de, 0xf721, 0xfbc2, 0xfb63,
+ 0xfc9e, 0xff34, 0xff0f, 0xfeb8, 0xfee4, 0xffd1,
+ 0x0278, 0x059f, 0x09ad, 0x0bc6, 0x0971, 0x07ad,
+ 0x04b2, 0xfb96, 0xf496, 0xf5f6, 0xf7c8, 0xf47b,
+ 0xf2d8, 0xf5e2, 0xf2fc, 0xeb4b, 0xf127, 0x0390,
+ 0x0f12, 0x0d4e, 0x06b1, 0x0667, 0x09f9, 0x0301,
+ 0xf658, 0xf21a, 0xf28c, 0xf54b, 0xfa81, 0xf896,
+ 0xf2e4, 0xf3ab, 0xf564, 0xf44c, 0xf3b4, 0xf33e,
+ 0xf6b0, 0xffec, 0x070c, 0x08f6, 0x0804, 0x0277,
+ 0xf9af, 0xf44e, 0xf323, 0xf1d6, 0xf09a, 0xf136,
+ 0xf15a, 0xf04a, 0xefb7, 0xeef9, 0xede6, 0xec32,
+ 0xe9dc, 0xeef2, 0xfe2e, 0x06e0, 0x0181, 0xff1e,
+ 0x0484, 0x01b1, 0xf611, 0xf026, 0xf307, 0xf997,
+ 0xff5a, 0xffa0, 0xfc75, 0xfbfc, 0xfc90, 0xfa1b,
+ 0xf75c, 0xf83f, 0xfba4, 0xff2f, 0x0258, 0x0410,
+ 0x03d4, 0x0260, 0xfe56, 0xf95c, 0xfaef, 0x0381,
+ 0x095b, 0x07ed, 0x059a, 0x05e3, 0x0186, 0xf76c,
+ 0xf341, 0xf5ec, 0xf46e, 0xf02e, 0xf2dd, 0xfd36,
+ 0x0861, 0x0eb6, 0x11d0, 0x14f0, 0x158e, 0x1201,
+ 0x0bd0, 0x0480, 0xfda7, 0xf4eb, 0xebf8, 0xecfc,
+ 0xf51a, 0xf8f9, 0xfe1d, 0x098d, 0x102b, 0x0dff,
+ 0x09b3, 0x054d, 0x0424, 0x0a1c, 0x0f13, 0x0ca0,
+ 0x0b76, 0x0ee5, 0x0d71, 0x0591, 0xfece, 0xfcef,
+ 0xfea9, 0x000c, 0x0064, 0x01ca, 0x016d, 0xfd65,
+ 0xf7ed, 0xf38f, 0xf6b8, 0x0011, 0x01b9, 0xfc63,
+ 0xfd0f, 0x0075, 0xfd70, 0xf82b, 0xf5a9, 0xf1e0,
+ 0xec51, 0xec03, 0xf017, 0xf174, 0xf100, 0xefe3,
+ 0xed12, 0xed2b, 0xf1fa, 0xfb6c, 0x08ae, 0x0e83,
+ 0x0a35, 0x06c9, 0x0311, 0xfcc8, 0xfa41, 0xf703,
+ 0xef78, 0xe9ef, 0xe754, 0xe7f7, 0xebb2, 0xedad,
+ 0xee1a, 0xeb8e, 0xe666, 0xe9c6, 0xf061, 0xec35,
+ 0xec57, 0xfb8b, 0x03fb, 0xfeba, 0xfbb3, 0xf8ec,
+ 0xf044, 0xeea6, 0xf74d, 0xfcce, 0xfdf2, 0xffc6,
+ 0xfe5f, 0xfa44, 0xf8d8, 0xfae4, 0x0122, 0x0843,
+ 0x08e5, 0x062a, 0x0729, 0x08e3, 0x0794, 0x04a8,
+ 0xfe90, 0xf6f0, 0xfa0d, 0x0ab1, 0x188b, 0x1b35,
+ 0x19ae, 0x1475, 0x07c8, 0xfa1f, 0xf547, 0xf95f,
+ 0xfebb, 0x0452, 0x0cb4, 0x0fe7, 0x0a97, 0x07a0,
+ 0x0bd0, 0x12ce, 0x15b2, 0x0f8a, 0x09e2, 0x0b65,
+ 0x0907, 0x0250, 0xffca, 0xfce2, 0xf88b, 0xf843,
+ 0xf9c3, 0xfbbd, 0xff23, 0x0225, 0x04ae, 0x04b6,
+ 0x0120, 0xffc1, 0x0308, 0x0677, 0x079e, 0x0892,
+ 0x08aa, 0x0252, 0xfa62, 0xfd3a, 0x027f, 0xfaa2,
+ 0xf0ac, 0xf3fb, 0xfc43, 0xff59, 0x009a, 0x02d6,
+ 0x04da, 0x057a, 0x00f0, 0xf87c, 0xf303, 0xec8e,
+ 0xe273, 0xe318, 0xee7c, 0xf019, 0xe951, 0xed93,
+ 0xfc2a, 0x04b1, 0x020b, 0xfceb, 0xf9f2, 0xf624,
+ 0xf391, 0xf4c6, 0xf89a, 0x0251, 0x0e48, 0x1164,
+ 0x0e77, 0x0acb, 0x00e0, 0xf299, 0xe784, 0xe1b4,
+ 0xe5bf, 0xf26b, 0xf98b, 0xf7c6, 0xf714, 0xf649,
+ 0xf087, 0xed09, 0xee88, 0xf102, 0xf79c, 0xfe35,
+ 0xfb8e, 0xfa21, 0x0256, 0x0677, 0x01fb, 0xfe55,
+ 0xfabc, 0xf6f2, 0xfc03, 0x075f, 0x0bda, 0x0941,
+ 0x09b9, 0x0e50, 0x10f3, 0x0eac, 0x07f8, 0x015b,
+ 0x0065, 0x05df, 0x0d7e, 0x0f7e, 0x0aec, 0x088f,
+ 0x097d, 0x097d, 0x0b26, 0x0ced, 0x0ae7, 0x07a9,
+ 0x04ee, 0x05c5, 0x09fb, 0x08c0, 0x05b2, 0x09da,
+ 0x0c93, 0x0830, 0x0574, 0x079e, 0x089d, 0x04af,
+ 0x0299, 0x07d3, 0x0d7e, 0x1163, 0x13e8, 0x0dbd,
+ 0x017a, 0xf47c, 0xe996, 0xf077, 0x03ce, 0x07f7,
+ 0x0406, 0x08e1, 0x0aab, 0x0570, 0x0102, 0xfe20,
+ 0xffe8, 0x02e5, 0x0036, 0xff28, 0x034a, 0x0671,
+ 0x0812, 0x0782, 0x0284, 0xfd1b, 0xfad6, 0xfa12,
+ 0xf9b1, 0xfa7a, 0xfb08, 0xfaa2, 0xfa79, 0xf7ef,
+ 0xf4cf, 0xf783, 0xf980, 0xf509, 0xf1b2, 0xef79,
+ 0xec24, 0xebe3, 0xea6e, 0xe7e0, 0xeb95, 0xefee,
+ 0xf175, 0xf471, 0xf3d1, 0xeede, 0xeffc, 0xfad9,
+ 0x0652, 0x06e0, 0x02c9, 0x06b8, 0x07d5, 0xfd56,
+ 0xf600, 0xf898, 0xff03, 0x044f, 0x01ef, 0xfb9c,
+ 0xfc4b, 0xffe1, 0xfe5a, 0xfc0f, 0xfdac, 0xffcc,
+ 0x0033, 0x01e0, 0x03c0, 0x0424, 0x0865, 0x0ee6,
+ 0x10a5, 0x0f90, 0x0b2f, 0x03a6, 0x0253, 0x044e,
+ 0x0219, 0x042e, 0x0cc2, 0x136c, 0x16de, 0x16a9,
+ 0x13f2, 0x12f9, 0x1004, 0x085f, 0x014b, 0xff3a,
+ 0x0598, 0x11cc, 0x18ef, 0x1603, 0x0ddc, 0x097f,
+ 0x0e0a, 0x144d, 0x152b, 0x12f6, 0x0e71, 0x08ef,
+ 0x052d, 0xff10, 0xfaa9, 0x01fe, 0x096c, 0x057a,
+ 0x053a, 0x0d5e, 0x0d11, 0x047d, 0xff16, 0xfbe7,
+ 0xfc0a, 0x01d7, 0x0250, 0xf9ee, 0xf86f, 0x0534,
+ 0x11b9, 0x0f2c, 0x041d, 0x027a, 0x093b, 0x0858,
+ 0x0229, 0x02f1, 0x0504, 0x0369, 0x03e1, 0xfe62,
+ 0xf089, 0xf0d4, 0xff8e, 0x03ab, 0xfee1, 0xff11,
+ 0x00cc, 0x02cd, 0x0519, 0x03a4, 0x03a9, 0x0471,
+ 0xfd19, 0xf3b8, 0xf098, 0xf170, 0xf519, 0xf896,
+ 0xf9eb, 0xff72, 0x07ed, 0x0829, 0xfe33, 0xf3ca,
+ 0xf006, 0xf01b, 0xf0d9, 0xf3ce, 0xf7af, 0xfbb1,
+ 0x00c3, 0x01de, 0xfe2a, 0xfc09, 0xfb20, 0xfa3e,
+ 0xfc92, 0xffc2, 0x0008, 0xfdb2, 0xfa95, 0xfa43,
+ 0xfc90, 0xfe27, 0xfed4, 0xfc28, 0xf5b2, 0xf456,
+ 0xfaf6, 0x018b, 0x043b, 0x0530, 0x05f4, 0x0591,
+ 0x02c7, 0x01bd, 0x06df, 0x0e07, 0x127e, 0x1510,
+ 0x15e8, 0x1472, 0x104d, 0x088c, 0x0158, 0x0036,
+ 0x031b, 0x0712, 0x0b83, 0x0d77, 0x0d2a, 0x0c3a,
+ 0x07c7, 0x02c2, 0x038b, 0x072a, 0x0874, 0x05eb,
+ 0x02dc, 0x071d, 0x0d72, 0x0ade, 0x07d7, 0x0b15,
+ 0x0c95, 0x0d42, 0x0e56, 0x0a0e, 0x0563, 0x03ae,
+ 0x004d, 0xfda8, 0xfc1d, 0xf9f8, 0xfd11, 0x03be,
+ 0x04ed, 0x0018, 0xfc3b, 0xff80, 0x054e, 0x05be,
+ 0x0602, 0x08a8, 0x07d8, 0x0809, 0x0bf7, 0x0d46,
+ 0x0e2d, 0x1128, 0x0fc2, 0x0835, 0xff9c, 0xf9fd,
+ 0xf5cc, 0xf1a1, 0xf28a, 0xf7f9, 0xfbb4, 0xfe04,
+ 0xfd9e, 0xfb46, 0xff78, 0x059e, 0x044d, 0x0114,
+ 0xff51, 0xfd36, 0xfcc0, 0xf8ce, 0xed21, 0xe4c0,
+ 0xeac9, 0xf770, 0xfa06, 0xf6b9, 0xfbf4, 0x0091,
+ 0xfcc5, 0xfc0c, 0xfc76, 0xf916, 0xfa16, 0xfb69,
+ 0xf8ff, 0xfb65, 0xff33, 0xfc0c, 0xf234, 0xe68e,
+ 0xe5c4, 0xf252, 0xfc88, 0xfcce, 0xf79a, 0xf63b,
+ 0x002a, 0x0a89, 0x0971, 0x042c, 0x0386, 0x07f7,
+ 0x0a25, 0x04c8, 0x0251, 0x043e, 0xffff, 0xfd18,
+ 0xff70, 0xfdcd, 0xff04, 0x068e, 0x0aaf, 0x0bc8,
+ 0x0a55, 0x0837, 0x0cdf, 0x103b, 0x0db1, 0x0eb5,
+ 0x1054, 0x1036, 0x101a, 0x07d2, 0x0002, 0x055b,
+ 0x0a18, 0x091d, 0x09dc, 0x05dd, 0x0090, 0x0512,
+ 0x0bec, 0x0e44, 0x0ee2, 0x0e99, 0x0e7e, 0x0c45,
+ 0x0796, 0x07f1, 0x0b05, 0x0998, 0x07b6, 0x0785,
+ 0x0781, 0x09c7, 0x09da, 0x03e9, 0xfed1, 0xfcdb,
+ 0xfaba, 0xf988, 0xf899, 0xf6db, 0xf7aa, 0xf9ef,
+ 0xfa6e, 0xfb53, 0xfc67, 0xfbc2, 0xfc96, 0xfe57,
+ 0xfd47, 0xfd4b, 0x00c7, 0x0261, 0x0146, 0x01e0,
+ 0x05db, 0x0b10, 0x0c1c, 0x06e2, 0xff6e, 0xf805,
+ 0xf1af, 0xeea8, 0xeeb7, 0xf1c8, 0xf65a, 0xf9c8,
+ 0x00f2, 0x0a66, 0x078d, 0xfb1e, 0xf736, 0xfaa0,
+ 0xf9b9, 0xf70e, 0xf940, 0xfd6f, 0xfe8e, 0xfd43,
+ 0xf963, 0xf274, 0xf1d4, 0xfa9f, 0xff3b, 0xfee3,
+ 0x05b3, 0x0df6, 0x0d9a, 0x095f, 0x0497, 0xfea3,
+ 0xfb22, 0xf897, 0xf256, 0xee05, 0xf070, 0xf189,
+ 0xf094, 0xf68f, 0xfd00, 0xfc6a, 0xfd20, 0xfe0a,
+ 0xfb4d, 0xfe16, 0x02dd, 0x0348, 0x087d, 0x0e3e,
+ 0x0c73, 0x0c0c, 0x0bfb, 0x077f, 0x056f, 0x0171,
+ 0xf81b, 0xf570, 0xfc64, 0x0794, 0x1161, 0x11c3,
+ 0x0e14, 0x0ef3, 0x0cfa, 0x0613, 0x02e1, 0x04b5,
+ 0x098a, 0x0fe1, 0x14aa, 0x1678, 0x1262, 0x083a,
+ 0x0049, 0xff9d, 0x0364, 0x0777, 0x086d, 0x0834,
+ 0x0aeb, 0x0dbe, 0x0e56, 0x0e3a, 0x0996, 0xff73,
+ 0xf788, 0xf3a0, 0xf24a, 0xf7cf, 0x0171, 0x0799,
+ 0x0a36, 0x0789, 0xfdb6, 0xf497, 0xf22a, 0xf625,
+ 0xfd02, 0xfe67, 0xfade, 0xfa38, 0xf8f5, 0xf455,
+ 0xf2b8, 0xf440, 0xf467, 0xf0bd, 0xec5a, 0xeee4,
+ 0xf1eb, 0xecca, 0xecb9, 0xf6a9, 0xfd6b, 0x0174,
+ 0x041c, 0xfe4d, 0xf8f3, 0xfc2f, 0xfe51, 0xfc90,
+ 0xfc05, 0xf9b7, 0xf28c, 0xea45, 0xe600, 0xe83e,
+ 0xf0ad, 0xfaa0, 0xfd80, 0xf895, 0xf4de, 0xf2b7,
+ 0xebb9, 0xe490, 0xe65f, 0xf123, 0xfc7e, 0xfebf,
+ 0xf8a7, 0xf463, 0xf389, 0xf01e, 0xec6e, 0xecfd,
+ 0xee50, 0xef08, 0xf20b, 0xf446, 0xf421, 0xf521,
+ 0xf274, 0xeb8d, 0xef35, 0xf9e9, 0xf6b2, 0xed20,
+ 0xf0be, 0xf901, 0xfa49, 0xf863, 0xf502, 0xf528,
+ 0x0025, 0x0d88, 0x12ae, 0x11dd, 0x113e, 0x1355,
+ 0x12b7, 0x0cf6, 0x0c45, 0x107f, 0x1029, 0x0f67,
+ 0x0dae, 0x0489, 0xff52, 0x0409, 0x087c, 0x09de,
+ 0x0824, 0x0528, 0x0685, 0x0525, 0xffeb, 0x024e,
+ 0x04d7, 0x00b4, 0x0364, 0x0ccd, 0x12cd, 0x16f4,
+ 0x17db, 0x11a8, 0x081a, 0xff39, 0xf93b, 0xf62f,
+ 0xf59d, 0xf9fa, 0x00cd, 0x03e8, 0x02e2, 0x0021,
+ 0xfd35, 0xfafd, 0xf9f9, 0xfa5f, 0xfab2, 0xfca5,
+ 0x0123, 0x0034, 0xf9f2, 0xf7a2, 0xf5c4, 0xf12a,
+ 0xf185, 0xf4e1, 0xf49b, 0xf2e9, 0xf242, 0xf2e7,
+ 0xf32c, 0xefc6, 0xeb75, 0xeb60, 0xf027, 0xf7f5,
+ 0xfef7, 0x0119, 0xfd65, 0xf793, 0xf5b9, 0xf71d,
+ 0xf5fc, 0xf301, 0xf377, 0xf8b7, 0xfd51, 0xfd75,
+ 0xfdac, 0xfd1a, 0xf74e, 0xf41d, 0xf579, 0xf24b,
+ 0xee63, 0xef51, 0xf0d0, 0xf28a, 0xf405, 0xf3e0,
+ 0xf323, 0xee19, 0xe97b, 0xef55, 0xf7c3, 0xfb46,
+ 0xff3a, 0x0359, 0x0622, 0x0771, 0x03dc, 0x003f,
+ 0x0002, 0xfc01, 0xf59d, 0xf37a, 0xf441, 0xf74d,
+ 0xfc86, 0xff9e, 0xff87, 0x0024, 0x0371, 0x0493,
+ 0xfe7d, 0xf800, 0xfa23, 0xfdcc, 0xf8f4, 0xf3fd,
+ 0xf844, 0xfc7e, 0xfba2, 0xffa1, 0x0882, 0x0d4c,
+ 0x0bf4, 0x04d9, 0xfdc0, 0x00ac, 0x0b54, 0x1336,
+ 0x12cf, 0x0dde, 0x0e4f, 0x12b5, 0x1145, 0x0c96,
+ 0x08f9, 0x05e7, 0x0869, 0x0e43, 0x0ef7, 0x0d68,
+ 0x0bf1, 0x070b, 0x01ac, 0xfedc, 0xfdd4, 0x00f1,
+ 0x0940, 0x111f, 0x11eb, 0x0d47, 0x09cb, 0x0606,
+ 0xfe17, 0xf82e, 0xfa97, 0x0007, 0x01a8, 0x03da,
+ 0x0baf, 0x103b, 0x09bc, 0xffdc, 0xfaee, 0xfa4f,
+ 0xf855, 0xf1e2, 0xef98, 0xf776, 0xff02, 0xff8d,
+ 0xfd5a, 0xf9df, 0xf691, 0xf555, 0xf434, 0xf32a,
+ 0xf28e, 0xf1d6, 0xf32d, 0xf4d3, 0xf3b3, 0xf564,
+ 0xfceb, 0x012d, 0xfd3a, 0xf91e, 0xf997, 0xfae0,
+ 0xfc57, 0xfcab, 0xf903, 0xf894, 0xfed1, 0x0155,
+ 0xfdf8, 0xfc39, 0xfd30, 0xfef4, 0xfee1, 0xf9ef,
+ 0xf255, 0xed49, 0xef9c, 0xf602, 0xf5a3, 0xf166,
+ 0xf3ae, 0xf942, 0xfe23, 0x00a0, 0xfbd3, 0xf8d1,
+ 0x002e, 0x0556, 0x0314, 0x0153, 0xffa7, 0x0154,
+ 0x0aed, 0x0f8c, 0x09c9, 0x07cd, 0x0984, 0x0383,
+ 0xfe9f, 0x0616, 0x0e8b, 0x0e8e, 0x0e24, 0x1100,
+ 0x119c, 0x0fa1, 0x0dfc, 0x0b42, 0x0701, 0x05f0,
+ 0x07e2, 0x0666, 0x02c1, 0x0081, 0xfcad, 0xfbe9,
+ 0x02ea, 0x07ce, 0x0928, 0x0e7a, 0x1064, 0x0b08,
+ 0x08a4, 0x08e5, 0x04b8, 0xff82, 0x0055, 0x0670,
+ 0x0823, 0x03a0, 0x0441, 0x086e, 0x0450, 0xfe20,
+ 0x00db, 0x07d1, 0x0aaa, 0x074d, 0x0239, 0x00d5,
+ 0xff2d, 0xf9d9, 0xf782, 0xf962, 0xfa01, 0xfbec,
+ 0x0176, 0x0464, 0x0499, 0x0802, 0x08e0, 0xff3c,
+ 0xf44d, 0xf2c9, 0xf562, 0xf61a, 0xf6f3, 0xf728,
+ 0xf606, 0xf78c, 0xfa57, 0xfa1b, 0xfaee, 0xfe33,
+ 0xfb01, 0xf310, 0xf33c, 0xf79b, 0xf609, 0xf731,
+ 0xfced, 0xf80d, 0xee0d, 0xeeeb, 0xf21a, 0xf109,
+ 0xf652, 0xfec5, 0x0177, 0x028c, 0x0052, 0xf736,
+ 0xf03f, 0xedb7, 0xea64, 0xeadb, 0xf08a, 0xf2f9,
+ 0xf0f8, 0xf01a, 0xf13b, 0xf32c, 0xf726, 0xfba6,
+ 0xfb80, 0xf8a9, 0xfa0c, 0xfba8, 0xf795, 0xf442,
+ 0xf5ad, 0xf95b, 0x00c3, 0x0571, 0xfcc7, 0xf0ff,
+ 0xf0b1, 0xf78c, 0x037d, 0x16f5, 0x21cd, 0x1856,
+ 0x0adf, 0x0457, 0xfd38, 0xf909, 0x0162, 0x0e96,
+ 0x14f9, 0x15e3, 0x1669, 0x1296, 0x041c, 0xf430,
+ 0xf229, 0xf934, 0xfbce, 0xfb64, 0xfd60, 0xff2f,
+ 0xfc70, 0xf480, 0xef17, 0xf527, 0x03c9, 0x1450,
+ 0x2362, 0x2a8b, 0x262a, 0x1891, 0x0425, 0xf30d,
+ 0xf117, 0xf87b, 0x010e, 0x0e99, 0x1bc8, 0x1c4e,
+ 0x150b, 0x10cc, 0x0d06, 0x03b2, 0xf8fc, 0xf765,
+ 0x000a, 0x08a4, 0x0cf4, 0x0f32, 0x0eb0, 0x0e51,
+ 0x0dc2, 0x0513, 0xfb7b, 0xfcb3, 0xfdfb, 0xf877,
+ 0xf72d, 0xf925, 0xf6e4, 0xf4ea, 0xf499, 0xf3ae,
+ 0xf5a0, 0xf7f0, 0xf4e8, 0xf12a, 0xf203, 0xf28d,
+ 0xea80, 0xda29, 0xccce, 0xc8f5, 0xc8f7, 0xcbb8,
+ 0xd567, 0xe177, 0xeb36, 0xf397, 0xf66b, 0xf047,
+ 0xe7c4, 0xe610, 0xeeba, 0xf97a, 0xfa60, 0xf490,
+ 0xeefa, 0xe725, 0xe2a7, 0xe7b5, 0xe98f, 0xe300,
+ 0xe31d, 0xee6d, 0xfb00, 0x01c1, 0xfd6e, 0xef11,
+ 0xe345, 0xe2b1, 0xe91d, 0xeecc, 0xf20a, 0xf849,
+ 0x0383, 0x0bc8, 0x0b47, 0x04b5, 0xfcac, 0xf8e2,
+ 0xfb20, 0xfca0, 0xfc16, 0xff8d, 0x0544, 0x092d,
+ 0x0bd7, 0x0bd7, 0x0b18, 0x0c3a, 0x0a18, 0x09e7,
+ 0x167e, 0x2140, 0x1a89, 0x1252, 0x15a8, 0x199a,
+ 0x1881, 0x17cc, 0x1857, 0x1851, 0x16b0, 0x121d,
+ 0x0aeb, 0x02e6, 0xfe0b, 0x0071, 0x088a, 0x1242,
+ 0x197b, 0x1796, 0x0cb1, 0x00c5, 0xf602, 0xeecc,
+ 0xf10c, 0xf53f, 0xf4f2, 0xf9cb, 0xffc1, 0xfae4,
+ 0xf6dd, 0xf813, 0xefcd, 0xe5f8, 0xe8bf, 0xed30,
+ 0xeab6, 0xe582, 0xe139, 0xdfea, 0xdc31, 0xd744,
+ 0xdd4c, 0xe51d, 0xe334, 0xe5c1, 0xecf5, 0xeba7,
+ 0xe9e2, 0xebf7, 0xeaf0, 0xea6f, 0xebf5, 0xed37,
+ 0xf106, 0xf748, 0xfd9a, 0xfb38, 0xeaf8, 0xdf4b,
+ 0xe0f4, 0xe21d, 0xe63f, 0xf28a, 0xfa1c, 0xff0f,
+ 0x08e3, 0x0f3e, 0x1341, 0x1cc8, 0x220b, 0x1a79,
+ 0x156c, 0x1e6a, 0x245d, 0x2205, 0x2a19, 0x30d8,
+ 0x22d6, 0x1726, 0x18f1, 0x1759, 0x1929, 0x1fdf,
+ 0x17e3, 0x0cdd, 0x12dc, 0x1b76, 0x1dcd, 0x2857,
+ 0x39d2, 0x414b, 0x3ebb, 0x3d23, 0x3aaa, 0x31b9,
+ 0x27e5, 0x22d9, 0x2159, 0x24dd, 0x2f45, 0x372f,
+ 0x3520, 0x3449, 0x3a77, 0x3c89, 0x3b32, 0x3cca,
+ 0x3ce1, 0x3f7d, 0x46c2, 0x457c, 0x3bb3, 0x347b,
+ 0x2fc4, 0x2b13, 0x29a6, 0x2eab, 0x3074, 0x2617,
+ 0x231c, 0x2cfb, 0x2940, 0x1fce, 0x224a, 0x1d2b,
+ 0x15bc, 0x1e95, 0x214f, 0x19af, 0x1eac, 0x25c7,
+ 0x1eb4, 0x150d, 0x12f7, 0x11d0, 0x0dd4, 0x1138,
+ 0x1896, 0x153b, 0x13a3, 0x1963, 0x121d, 0x076f,
+ 0x0831, 0x0499, 0x0087, 0x0612, 0x0415, 0xfa4c,
+ 0xf774, 0xf8d5, 0xfa7d, 0xfabd, 0xf670, 0xf251,
+ 0xf251, 0xf45e, 0xf308, 0xea18, 0xdeac, 0xd57e,
+ 0xd1e5, 0xd8cf, 0xdced, 0xd44f, 0xd0dc, 0xd249,
+ 0xc955, 0xc804, 0xd5d9, 0xd758, 0xcdc1, 0xcdfc,
+ 0xcfa3, 0xcd14, 0xcf05, 0xcbd3, 0xc00a, 0xbcac,
+ 0xbfc2, 0xbcac, 0xb7aa, 0xb3f0, 0xb219, 0xb72d,
+ 0xbb8f, 0xb87a, 0xb86f, 0xbcf4, 0xbb7d, 0xb6a2,
+ 0xb619, 0xb7dc, 0xbbb0, 0xc151, 0xbcae, 0xb0c5,
+ 0xb501, 0xbfed, 0xb95e, 0xb5d4, 0xc0c9, 0xc0ba,
+ 0xbecc, 0xcbb4, 0xcf45, 0xc8b4, 0xcc2c, 0xcd4b,
+ 0xc805, 0xc8fe, 0xc5ef, 0xbee7, 0xc789, 0xd4e7,
+ 0xd1ed, 0xce5d, 0xd890, 0xdb10, 0xd186, 0xd57e,
+ 0xdda6, 0xd47a, 0xd26f, 0xe0fe, 0xe296, 0xdecf,
+ 0xe8eb, 0xea85, 0xe35b, 0xed87, 0xf778, 0xeeaf,
+ 0xe990, 0xeb6f, 0xea77, 0xf477, 0xff46, 0xf535,
+ 0xed1d, 0xf37a, 0xefab, 0xe30d, 0xe01e, 0xe508,
+ 0xe969, 0xe942, 0xee26, 0xfc4b, 0xfcab, 0xf281,
+ 0xf8ac, 0xfe9a, 0xf7be, 0xfce3, 0x056a, 0xf989,
+ 0xe9ab, 0xe68a, 0xe733, 0xe584, 0xeb9a, 0xfc20,
+ 0x014c, 0xf917, 0xfb4d, 0xfd4e, 0xf2e6, 0xf435,
+ 0xfb9a, 0xf666, 0xf912, 0x0032, 0xf41e, 0xeb7b,
+ 0xf32b, 0xf0c7, 0xe95d, 0xefab, 0xf33c, 0xedfd,
+ 0xefec, 0xf35f, 0xf1d8, 0xf5da, 0xf8bb, 0xf3fb,
+ 0xf7bf, 0x01b2, 0x0231, 0x01e7, 0x051d, 0xfed2,
+ 0xf450, 0xf4df, 0xfc6e, 0xffd8, 0x01a4, 0x0769,
+ 0x0b85, 0x0c22, 0x0ddf, 0x0aab, 0x0286, 0x01ae,
+ 0x04d6, 0x04d9, 0x0655, 0x07bb, 0x094b, 0x0fd9,
+ 0x106b, 0x0367, 0xf745, 0xf82b, 0x00ee, 0x0769,
+ 0x0a95, 0x0d45, 0x0c10, 0x08d9, 0x0b61, 0x1272,
+ 0x17bd, 0x13c4, 0x0865, 0x08fe, 0x157b, 0x1827,
+ 0x15e7, 0x197f, 0x1784, 0x139b, 0x17eb, 0x18a2,
+ 0x1458, 0x15a4, 0x15d3, 0x1073, 0x0e6a, 0x12ba,
+ 0x16e7, 0x0df5, 0xfbc1, 0xfcdb, 0x0bc4, 0x0984,
+ 0x0861, 0x16bf, 0x1313, 0x07d8, 0x1672, 0x24a8,
+ 0x2219, 0x2110, 0x1eba, 0x1fd6, 0x2b09, 0x2b47,
+ 0x207b, 0x1930, 0x178c, 0x224e, 0x2989, 0x1ea0,
+ 0x1f15, 0x2e04, 0x32fe, 0x3580, 0x33cd, 0x277b,
+ 0x257a, 0x2ce9, 0x317f, 0x3765, 0x374b, 0x34a1,
+ 0x3d82, 0x41a6, 0x34d5, 0x2abc, 0x3051, 0x33a4,
+ 0x2548, 0x1f4c, 0x2cb4, 0x2a02, 0x1f6d, 0x2a6b,
+ 0x2ec2, 0x2538, 0x2952, 0x2eb3, 0x2df7, 0x3469,
+ 0x3822, 0x3545, 0x34f1, 0x3654, 0x3439, 0x2c43,
+ 0x2deb, 0x3a67, 0x35c1, 0x2f1d, 0x3a90, 0x3531,
+ 0x247b, 0x286a, 0x2856, 0x20c7, 0x2663, 0x25de,
+ 0x2651, 0x3b3e, 0x4004, 0x28cd, 0x1e39, 0x2787,
+ 0x2ce0, 0x280b, 0x22a7, 0x236e, 0x2165, 0x1489,
+ 0x0cfb, 0x159d, 0x1d91, 0x1dec, 0x2193, 0x28db,
+ 0x31ad, 0x3329, 0x243a, 0x23dc, 0x3731, 0x2d0f,
+ 0x1d82, 0x3406, 0x398e, 0x22e3, 0x2440, 0x279a,
+ 0x2344, 0x3357, 0x3567, 0x2166, 0x1e92, 0x217a,
+ 0x1dfa, 0x1ce5, 0x1a6f, 0x220f, 0x2e26, 0x29e9,
+ 0x2639, 0x28cf, 0x2350, 0x1ace, 0x10c1, 0x0cf8,
+ 0x18cd, 0x2316, 0x24df, 0x1f60, 0x1690, 0x20be,
+ 0x2bd2, 0x1e4a, 0x1944, 0x1e49, 0x14f9, 0x15e0,
+ 0x2096, 0x1e26, 0x1da5, 0x216b, 0x2006, 0x1b13,
+ 0x1125, 0x165f, 0x2796, 0x1de6, 0x0ec8, 0x15ec,
+ 0x113a, 0x02ed, 0x0856, 0x0eac, 0x06b0, 0xfdfb,
+ 0xfe38, 0x03c0, 0x0184, 0xfe4c, 0x055f, 0x01d0,
+ 0xf5e2, 0x0115, 0x1227, 0x0d29, 0x07c7, 0x0b00,
+ 0x023d, 0xf62d, 0xf36b, 0xec3a, 0xea7d, 0xf931,
+ 0xf7e8, 0xe91d, 0xf1ee, 0xfd3b, 0xf8a5, 0xfd01,
+ 0xfe7d, 0xf85c, 0x0392, 0x01e2, 0xe57e, 0xe210,
+ 0xf4bc, 0xf65e, 0xef0f, 0xe986, 0xe959, 0xf371,
+ 0xf1d6, 0xe242, 0xe5a4, 0xf94f, 0xfc62, 0xeef9,
+ 0xec71, 0xf26a, 0xe7f5, 0xdd71, 0xe6eb, 0xe5d3,
+ 0xd765, 0xdb2f, 0xe1e1, 0xdc76, 0xdbab, 0xdbe2,
+ 0xda6a, 0xda15, 0xd38f, 0xd808, 0xe50a, 0xda08,
+ 0xce9f, 0xd989, 0xd8f4, 0xcf69, 0xd41b, 0xda89,
+ 0xdfb9, 0xe027, 0xd3f3, 0xcf46, 0xd234, 0xce9d,
+ 0xd03f, 0xd071, 0xc964, 0xccec, 0xca38, 0xb789,
+ 0xb64d, 0xc4fc, 0xcdb1, 0xd7c4, 0xde73, 0xd916,
+ 0xdd33, 0xeeb3, 0xef68, 0xe3b1, 0xed7f, 0xf6ec,
+ 0xe4fa, 0xe299, 0xee87, 0xdbd1, 0xd7ee, 0xf531,
+ 0xec47, 0xd171, 0xdac7, 0xe334, 0xe29c, 0xed33,
+ 0xea9c, 0xe2dd, 0xe93c, 0xe8e9, 0xe26f, 0xe22d,
+ 0xe53e, 0xeadd, 0xe9d1, 0xe847, 0xf10e, 0xef1b,
+ 0xec66, 0xfb96, 0xf50e, 0xdeb9, 0xe9b4, 0xf475,
+ 0xe27c, 0xde16, 0xe4d3, 0xdda1, 0xddab, 0xe20c,
+ 0xd71b, 0xd13e, 0xd6aa, 0xd6f5, 0xd83d, 0xd7e9,
+ 0xcea9, 0xd12e, 0xdee5, 0xe59b, 0xf23e, 0xfda2,
+ 0xeaf4, 0xd241, 0xd1df, 0xd74e, 0xd660, 0xd8c3,
+ 0xde86, 0xe010, 0xd999, 0xd503, 0xdaba, 0xdf57,
+ 0xdd6a, 0xd94f, 0xd1b3, 0xce2c, 0xd2b4, 0xd572,
+ 0xd750, 0xd9a8, 0xd7dd, 0xd588, 0xcff2, 0xc7b0,
+ 0xca79, 0xd354, 0xd1a4, 0xc64c, 0xc210, 0xcd1d,
+ 0xcff5, 0xc61f, 0xd0cd, 0xe048, 0xd9c4, 0xdb40,
+ 0xe118, 0xdb38, 0xe7a1, 0xee32, 0xd651, 0xd56f,
+ 0xe2fe, 0xd50f, 0xd16f, 0xe083, 0xde21, 0xd243,
+ 0xcb96, 0xcd4e, 0xd4be, 0xd46c, 0xd442, 0xd5b3,
+ 0xd181, 0xdbd9, 0xeb22, 0xe7f5, 0xe4ed, 0xe530,
+ 0xe479, 0xe9ad, 0xe2a1, 0xdbb4, 0xe65c, 0xdecd,
+ 0xd13c, 0xdddd, 0xe025, 0xd664, 0xe16a, 0xeafc,
+ 0xe684, 0xeb6d, 0xf893, 0xf87b, 0xef9e, 0xf90c,
+ 0x0534, 0xf9a2, 0xf3aa, 0xf787, 0xf340, 0xfddc,
+ 0x0443, 0xf630, 0xff58, 0x04da, 0xeff6, 0xfad4,
+ 0x09c3, 0xf46f, 0xf3b5, 0x0293, 0xfa0b, 0xfb88,
+ 0x0fde, 0x19b4, 0x0fe3, 0xffc0, 0x0394, 0x0d99,
+ 0x092b, 0x10e9, 0x1684, 0xffba, 0xf6d6, 0xfd57,
+ 0xf08d, 0xef07, 0xfe78, 0xf747, 0xede2, 0xf688,
+ 0xef8d, 0xe0c4, 0xea4d, 0xf0df, 0xe332, 0xe0aa,
+ 0xe6ed, 0xe44c, 0xea5c, 0xf77d, 0xf61c, 0xec08,
+ 0xe3b5, 0xddbd, 0xdbdd, 0xde80, 0xe602, 0xecac,
+ 0xeec6, 0xf152, 0xf077, 0xeb99, 0xe719, 0xdd12,
+ 0xd596, 0xda18, 0xe11b, 0xeb0a, 0xf1f9, 0xe9b6,
+ 0xe332, 0xe5ff, 0xe971, 0xf216, 0xf3e2, 0xe752,
+ 0xe213, 0xe418, 0xe140, 0xe2e8, 0xeed0, 0xf90e,
+ 0xf37d, 0xe94f, 0xeb9f, 0xea7f, 0xe58e, 0xf0d6,
+ 0xf946, 0xf216, 0xecea, 0xebf7, 0xf0eb, 0xf53e,
+ 0xe823, 0xe06c, 0xef7f, 0xfac2, 0xf7bb, 0xf1e7,
+ 0xef3d, 0xf197, 0xf60f, 0xfd28, 0x00f7, 0xfa63,
+ 0xfc96, 0x0c4f, 0x11b2, 0x0ff3, 0x16b2, 0x2080,
+ 0x26c5, 0x245a, 0x16ff, 0x0d24, 0x11b2, 0x171b,
+ 0x1451, 0x16d1, 0x19ca, 0x1276, 0x17fd, 0x2352,
+ 0x14b7, 0x0a45, 0x1708, 0x1952, 0x15f4, 0x1d51,
+ 0x2478, 0x28c8, 0x1f5a, 0x0d87, 0x1095, 0x18c1,
+ 0x121e, 0x0d0d, 0x0a79, 0x06d3, 0x0376, 0xfd60,
+ 0x029d, 0x0ee1, 0x0d90, 0x0b8f, 0x0f5f, 0x0bac,
+ 0x0622, 0x07cb, 0x1012, 0x136d, 0x06a6, 0xfb16,
+ 0xfe97, 0x0692, 0x0cef, 0x0de2, 0x0b0c, 0x0945,
+ 0x0065, 0xf332, 0xea40, 0xe7ff, 0xf4bf, 0xfc02,
+ 0xeac4, 0xe3c4, 0xf03a, 0xf6a4, 0xfeca, 0x06bc,
+ 0xffe1, 0xfbe9, 0x03dd, 0x0c68, 0x0bd5, 0xfa74,
+ 0xe9c5, 0xf10b, 0x0453, 0x0e30, 0x0b10, 0x02f9,
+ 0xfba5, 0xf82f, 0x03fe, 0x17c2, 0x18e1, 0x0f63,
+ 0x0fdc, 0x0fea, 0x08a5, 0x00cd, 0xf9d4, 0xfb6a,
+ 0x0830, 0x0d55, 0x0300, 0xfdab, 0x057b, 0x08a1,
+ 0x056a, 0x0832, 0x0ac4, 0x090d, 0x0c0c, 0x105b,
+ 0x0f23, 0x119f, 0x1ec7, 0x27d8, 0x22aa, 0x1dc6,
+ 0x1d64, 0x1b5d, 0x1ecb, 0x1f8c, 0x16ca, 0x1635,
+ 0x1a49, 0x1eb0, 0x3068, 0x3d48, 0x38bb, 0x3073,
+ 0x2465, 0x1bdf, 0x16de, 0x0bf5, 0x1231, 0x21cb,
+ 0x1e28, 0x1c1d, 0x1b12, 0x16a6, 0x29a7, 0x2f27,
+ 0x16b4, 0x1a4a, 0x26ea, 0x19f1, 0x1839, 0x1e7b,
+ 0x1aa2, 0x1c3e, 0x1b53, 0x1731, 0x195f, 0x180f,
+ 0x191d, 0x1a83, 0x119c, 0x117e, 0x169b, 0x0aea,
+ 0x02a6, 0x0e1c, 0x15db, 0x1097, 0x13bc, 0x1dc7,
+ 0x16ab, 0x0d97, 0x1529, 0x149b, 0x0b12, 0x0ab1,
+ 0x06aa, 0x01fa, 0x0649, 0x022c, 0xfaa2, 0x0005,
+ 0x0466, 0xfd26, 0xf8ff, 0x0429, 0x0fc5, 0x0e24,
+ 0x0e18, 0x1170, 0x0da0, 0x0e9b, 0x1324, 0x0d52,
+ 0x07e3, 0x0ac1, 0x07f7, 0xf4dd, 0xe5bc, 0xf5ad,
+ 0x0c16, 0x0c01, 0x08ed, 0x09f9, 0x0955, 0x0d79,
+ 0x105b, 0x1b36, 0x2eaf, 0x29dd, 0x1a44, 0x1485,
+ 0x028b, 0xf729, 0x02a5, 0x058d, 0x056e, 0x0bb2,
+ 0x06e1, 0x0517, 0x0b3b, 0x07e0, 0x0556, 0x08de,
+ 0x0641, 0x033a, 0x0c3e, 0x1834, 0x14b4, 0x0f56,
+ 0x1732, 0x130a, 0x076f, 0x125a, 0x1c1e, 0x1743,
+ 0x1e7e, 0x25be, 0x170e, 0x04ff, 0x0294, 0x0a33,
+ 0x0f1a, 0x1318, 0x1860, 0x117d, 0x0240, 0xfb2b,
+ 0xfc62, 0x046b, 0x0c3b, 0x0db3, 0x1548, 0x1ce8,
+ 0x16de, 0x1349, 0x1540, 0x107d, 0x12a2, 0x1fad,
+ 0x1d96, 0x08fb, 0xffc2, 0x0c43, 0x19ff, 0x19d8,
+ 0x0b76, 0x0035, 0x0afe, 0x1715, 0x14b3, 0x16bc,
+ 0x1243, 0x010f, 0x0118, 0x074c, 0x06cb, 0x14c1,
+ 0x1efa, 0x175f, 0x1340, 0x0f59, 0x0e1b, 0x155c,
+ 0x11a4, 0x0d77, 0x136a, 0x0de2, 0x04cf, 0x04a8,
+ 0x01e9, 0xffb8, 0x0306, 0x08cb, 0x0bf2, 0x080a,
+ 0x0b67, 0x13e2, 0x0f4a, 0x0c01, 0x0ba8, 0x01da,
+ 0x03a6, 0x0e1a, 0x090d, 0xfdde, 0xf552, 0xf493,
+ 0x00b3, 0x0b2f, 0x1280, 0x137f, 0x059e, 0x0305,
+ 0x0be5, 0x083f, 0x0c9c, 0x185b, 0x14d8, 0x12a5,
+ 0x10fe, 0x08b5, 0x0935, 0x0704, 0x0511, 0x0ef7,
+ 0x06e7, 0xfa35, 0x056d, 0x05b6, 0xfdfe, 0x0a12,
+ 0x0ed0, 0x0c81, 0x12d3, 0x0a0e, 0xfd49, 0x057b,
+ 0x11bd, 0x178d, 0x1776, 0x1224, 0x12d6, 0x1628,
+ 0x13a1, 0x0e8c, 0x08f2, 0x07b4, 0x0804, 0x07a1,
+ 0x0ffc, 0x1032, 0x0250, 0x05d6, 0x0c2c, 0xff2c,
+ 0x018e, 0x11e5, 0x0e73, 0x030e, 0xffcc, 0x0647,
+ 0x134d, 0x14a4, 0x0bd5, 0x03c1, 0xfe78, 0x0a5b,
+ 0x12f7, 0xfd61, 0xf50f, 0x0908, 0x120b, 0x187e,
+ 0x1fa9, 0x13b7, 0x0e65, 0x10b0, 0x0462, 0x06fd,
+ 0x1699, 0x1278, 0x0fb5, 0x1165, 0x077a, 0x0b79,
+ 0x0e85, 0xfb33, 0x0449, 0x1e6f, 0x0d23, 0xfd11,
+ 0x111c, 0x141d, 0x08af, 0x10ae, 0x1578, 0x0d30,
+ 0x0727, 0x04aa, 0x0555, 0x00b7, 0xf7bd, 0xfe8d,
+ 0x0b92, 0x0a9f, 0x05fb, 0x02df, 0xf845, 0xed04,
+ 0xf11c, 0xff93, 0x017d, 0xf916, 0xf95d, 0xfde8,
+ 0x034c, 0x09c2, 0x028d, 0xf6f5, 0xf776, 0xf817,
+ 0xfaa6, 0x03d4, 0x01bc, 0xf964, 0xf8f5, 0xf6e9,
+ 0xf4a7, 0xfdb3, 0x0919, 0x0625, 0xf74c, 0xefba,
+ 0xf381, 0xf4eb, 0xf212, 0xf41f, 0xfe15, 0x06a5,
+ 0x0340, 0xfae1, 0xf793, 0xf935, 0xfe30, 0x01e0,
+ 0x04e7, 0x0478, 0xf874, 0xf64b, 0x019b, 0xfa0f,
+ 0xf1d5, 0xf655, 0xe86f, 0xe57c, 0xfe29, 0x01e9,
+ 0xff06, 0x0733, 0xfb9a, 0xf2ee, 0xf703, 0xeee6,
+ 0xf561, 0x04fc, 0xfbbb, 0xf679, 0xfc9c, 0xf7b5,
+ 0xf84a, 0xff5a, 0xfa0f, 0xed5f, 0xe675, 0xedeb,
+ 0xf903, 0xf89e, 0xf4ff, 0xf37e, 0xf44e, 0xf723,
+ 0xf247, 0xef92, 0xf5bf, 0xf542, 0xf99d, 0x077a,
+ 0x02ac, 0xf1ca, 0xebd3, 0xea7f, 0xe94c, 0xeccd,
+ 0xf50d, 0xfb6b, 0xf802, 0xf2ec, 0xf2e5, 0xefb7,
+ 0xea13, 0xe740, 0xe510, 0xe1bb, 0xe05f, 0xe828,
+ 0xf535, 0xfd36, 0xfee5, 0xf77b, 0xeff8, 0xf47c,
+ 0xf495, 0xef80, 0xf322, 0xed46, 0xe0b7, 0xe48b,
+ 0xeb61, 0xed81, 0xefe0, 0xeb00, 0xe505, 0xde9a,
+ 0xd3fc, 0xd52a, 0xdec7, 0xe5a0, 0xeda2, 0xed46,
+ 0xe3dd, 0xdb84, 0xd4ed, 0xda56, 0xe252, 0xded4,
+ 0xe83e, 0xf33c, 0xe02e, 0xcee3, 0xd1f6, 0xd411,
+ 0xd96e, 0xe0fd, 0xde82, 0xd985, 0xd672, 0xd9cd,
+ 0xe390, 0xe322, 0xdc41, 0xd8e4, 0xd10a, 0xd056,
+ 0xe016, 0xe662, 0xde3f, 0xdcaa, 0xd970, 0xcf38,
+ 0xd471, 0xdf71, 0xdd4a, 0xe42b, 0xeeff, 0xe260,
+ 0xd75b, 0xdb67, 0xd7fd, 0xd870, 0xe4ac, 0xeb84,
+ 0xeb59, 0xe089, 0xd4fb, 0xdfc7, 0xec28, 0xe7bf,
+ 0xe3cf, 0xe051, 0xde8c, 0xe669, 0xe5a7, 0xdc8e,
+ 0xe08e, 0xe8b3, 0xe967, 0xedee, 0xf506, 0xf088,
+ 0xe629, 0xe11e, 0xdda9, 0xe1e0, 0xecef, 0xe572,
+ 0xd580, 0xd633, 0xd877, 0xddbe, 0xed59, 0xee0a,
+ 0xe6d0, 0xe32d, 0xd527, 0xd707, 0xeb13, 0xe70b,
+ 0xe1ab, 0xf018, 0xec8d, 0xde96, 0xe1dd, 0xe57e,
+ 0xe1ec, 0xe387, 0xed34, 0xf54e, 0xee51, 0xe039,
+ 0xd8d8, 0xd660, 0xdef1, 0xed29, 0xe734, 0xd809,
+ 0xdc17, 0xe1be, 0xd461, 0xc89e, 0xc790, 0xc627,
+ 0xce87, 0xded5, 0xe324, 0xe3dc, 0xe496, 0xe076,
+ 0xe93c, 0xf10c, 0xe838, 0xeb85, 0xebbd, 0xd83b,
+ 0xddbc, 0xedb7, 0xe091, 0xd576, 0xd6ae, 0xd8bf,
+ 0xe1a9, 0xdec5, 0xd7c1, 0xde24, 0xd799, 0xd4a7,
+ 0xe847, 0xe89e, 0xddf2, 0xe480, 0xe547, 0xe23b,
+ 0xe2c3, 0xdaac, 0xd7c2, 0xd88c, 0xd3d8, 0xd7f7,
+ 0xdd94, 0xe501, 0xf5dd, 0xf284, 0xe2a6, 0xe6d2,
+ 0xeb5a, 0xecb8, 0xf702, 0xf169, 0xe1cc, 0xe0dc,
+ 0xe2dc, 0xe35d, 0xe46e, 0xe3ec, 0xeb8b, 0xede4,
+ 0xe5ec, 0xeefd, 0xf6da, 0xe9da, 0xebd5, 0xf616,
+ 0xed78, 0xed81, 0xf6ee, 0xf5a5, 0xfbbd, 0xff8a,
+ 0xf0c2, 0xec61, 0xf561, 0xfc3d, 0x0521, 0x00e9,
+ 0xeefb, 0xe902, 0xeb2d, 0xf095, 0xf9c1, 0xf996,
+ 0xfdbe, 0x0740, 0xfa13, 0xedfb, 0xfac4, 0x0032,
+ 0xf82c, 0xf3b8, 0xf03d, 0xf2ae, 0xf780, 0xf2e9,
+ 0xf26f, 0xfa02, 0xf846, 0xeeb1, 0xebf0, 0xf137,
+ 0xf364, 0xf119, 0xf75f, 0x0462, 0x05e7, 0xfb36,
+ 0xf673, 0xf91f, 0xf3d7, 0xf010, 0xf867, 0xf4cc,
+ 0xec15, 0xf9fc, 0xfec1, 0xec27, 0xea3c, 0xf299,
+ 0xef56, 0xef5b, 0xf071, 0xefab, 0xf97b, 0x036b,
+ 0x03b1, 0xfcf5, 0xf182, 0xeef1, 0xf673, 0xf9a4,
+ 0xfab8, 0xff20, 0x01fc, 0xfe88, 0xf74f, 0xf348,
+ 0xee51, 0xebb3, 0xf772, 0xffb7, 0xfb80, 0xfb6a,
+ 0xf462, 0xe817, 0xeca8, 0xecdb, 0xe3df, 0xee40,
+ 0xfaef, 0xf86d, 0xf7e0, 0xf87d, 0xf578, 0xf30a,
+ 0xf012, 0xf159, 0xf4e2, 0xf700, 0xfc7f, 0xfa36,
+ 0xf1e3, 0xf96b, 0x0312, 0xfecd, 0x0037, 0x0731,
+ 0x0191, 0xf86e, 0xf8a7, 0xfc37, 0xfea4, 0x035a,
+ 0x080f, 0x06ed, 0x0293, 0x0066, 0x0187, 0x05ae,
+ 0x090b, 0x0723, 0xff2f, 0xf5b4, 0xf8a4, 0x08b9,
+ 0x0e5d, 0x0729, 0x07eb, 0x0c39, 0x0bcb, 0x12a1,
+ 0x1785, 0x0cfa, 0x093a, 0x1098, 0x093a, 0xfb22,
+ 0xfa57, 0x002d, 0x0777, 0x08b6, 0xfe3b, 0xfa2f,
+ 0xfdb7, 0xfca2, 0x0202, 0x0b16, 0x0e0a, 0x1279,
+ 0x0ec8, 0x0514, 0x0b47, 0x12c8, 0x10de, 0x1239,
+ 0x0ed5, 0x0c49, 0x1705, 0x1bc4, 0x15b8, 0x0ee2,
+ 0x09e5, 0x1065, 0x176c, 0x115d, 0x0c34, 0x071b,
+ 0x0145, 0x04b5, 0x05c5, 0x09ae, 0x15ca, 0x0fc9,
+ 0x0569, 0x0cfa, 0x0f4f, 0x0e7a, 0x1398, 0x0edb,
+ 0x0bc8, 0x0bf9, 0x0150, 0x028e, 0x0f11, 0x0bfb,
+ 0x0851, 0x0fab, 0x1336, 0x1375, 0x15d1, 0x170b,
+ 0x0e21, 0xfb3b, 0xf51c, 0xfe42, 0x0282, 0x0549,
+ 0x09ee, 0x0b7e, 0x13ef, 0x1d68, 0x1aef, 0x1642,
+ 0x1552, 0x1943, 0x1cb0, 0x0def, 0x0007, 0x0a31,
+ 0x0e82, 0x0747, 0x0fa7, 0x18ad, 0x17de, 0x1b29,
+ 0x1aef, 0x18ed, 0x1a1f, 0x14a1, 0x17f9, 0x2052,
+ 0x12f4, 0x0aaf, 0x10b4, 0x052d, 0xffc3, 0x0d99,
+ 0x0da4, 0x0d98, 0x19c7, 0x1ba5, 0x17aa, 0x1206,
+ 0x110a, 0x2118, 0x1eb9, 0x05de, 0x0710, 0x12d3,
+ 0x10c7, 0x1690, 0x1715, 0x08e1, 0x059c, 0x0b10,
+ 0x11e3, 0x1a07, 0x187e, 0x1400, 0x0f74, 0x045c,
+ 0x01d9, 0x0759, 0x08c4, 0x0db4, 0x1159, 0x11ae,
+ 0x1838, 0x1613, 0x0a01, 0x0627, 0x04bc, 0x075b,
+ 0x127a, 0x1337, 0x0de6, 0x0ed6, 0x0926, 0x032f,
+ 0x075b, 0x0590, 0xff92, 0x0354, 0x093e, 0x0aa7,
+ 0x09ef, 0x0997, 0x0c72, 0x0ba4, 0x03d0, 0xfe1a,
+ 0xf926, 0xf69d, 0x032c, 0x10d1, 0x0d6e, 0x07a9,
+ 0x05e8, 0x022d, 0x0861, 0x15ad, 0x17f0, 0x11fd,
+ 0x0986, 0x0344, 0x06d7, 0x08d5, 0x093d, 0x153b,
+ 0x1a13, 0x128c, 0x12ec, 0x0dd6, 0x02c2, 0x0b01,
+ 0x12ec, 0x0ba4, 0x0b22, 0x0d40, 0x0ebd, 0x185b,
+ 0x1611, 0x09b7, 0x0ac3, 0x0d39, 0x0c5d, 0x1233,
+ 0x1252, 0x0e5b, 0x10b6, 0x1040, 0x0f0e, 0x0d71,
+ 0x01ef, 0xff69, 0x0f86, 0x150d, 0x09f1, 0x09ec,
+ 0x1850, 0x1d29, 0x16d2, 0x166a, 0x12be, 0x056e,
+ 0x061d, 0x0e86, 0x0886, 0x04b7, 0x0575, 0xfd60,
+ 0x00b3, 0x0cd9, 0x0984, 0x08f3, 0x11c4, 0x0de3,
+ 0x07b5, 0x0858, 0x054d, 0x0678, 0x07ee, 0xfef7,
+ 0x0036, 0x0a0e, 0x05c0, 0x0963, 0x1e64, 0x1e3d,
+ 0x0c66, 0x0a53, 0x0c37, 0x0582, 0x04d7, 0x08a6,
+ 0x0ab5, 0x0c9c, 0x089c, 0x03bc, 0x03d0, 0xfe92,
+ 0xfa9f, 0x0249, 0x079a, 0x0a4a, 0x149b, 0x1949,
+ 0x1314, 0x0f9b, 0x0f8d, 0x0f34, 0x1033, 0x0d0c,
+ 0x0463, 0xfe1d, 0xfb31, 0xfb96, 0x0295, 0x06f8,
+ 0x044c, 0x08ed, 0x106d, 0x0e03, 0x1114, 0x1501,
+ 0x041f, 0xfa63, 0x06bd, 0x0713, 0x03fe, 0x10ef,
+ 0x1237, 0x0ba5, 0x10b3, 0x0a62, 0xfc59, 0x000e,
+ 0x0ac3, 0x1483, 0x178f, 0x0922, 0x03e6, 0x115c,
+ 0x10fa, 0x08d7, 0x0b82, 0x0aae, 0x07f6, 0x0a9f,
+ 0x0c19, 0x10ad, 0x10c4, 0x05ef, 0x0489, 0x0912,
+ 0x053b, 0x064c, 0x09c4, 0x07d1, 0x0c96, 0x12a9,
+ 0x14d8, 0x1a27, 0x1776, 0x0f49, 0x0fb3, 0x0b8b,
+ 0xffac, 0xfa52, 0xfbf8, 0x04c5, 0x0d89, 0x0a28,
+ 0x0587, 0x05f0, 0x0432, 0x0628, 0x0c1f, 0x0b83,
+ 0x0434, 0xfe6c, 0x01ea, 0x08ba, 0x071e, 0x03a8,
+ 0x0623, 0x0941, 0x07df, 0x027c, 0x021a, 0x05a1,
+ 0x0117, 0x0045, 0x09a3, 0x0ad8, 0x094a, 0x0c07,
+ 0x04dc, 0xfe0b, 0x01e6, 0x00d7, 0xfa40, 0xf6a2,
+ 0xf717, 0xfc76, 0x005c, 0x0316, 0x07d6, 0x05ac,
+ 0x0364, 0x09da, 0x0bf3, 0x09f3, 0x0972, 0x0235,
+ 0xfd12, 0x0386, 0x08dc, 0x0960, 0x0ade, 0x095e,
+ 0x0271, 0xfbbe, 0xfaed, 0xfe46, 0xfef5, 0xfdbd,
+ 0x010f, 0x0458, 0xfe98, 0xf92d, 0xff09, 0x0567,
+ 0x0875, 0x0d07, 0x0737, 0xfbbd, 0xfbca, 0xfbd9,
+ 0xfb17, 0x04a5, 0x0612, 0xffc6, 0x05ba, 0x09fd,
+ 0x0573, 0x0413, 0xff1c, 0xf759, 0xf7c7, 0xfbce,
+ 0xff01, 0xffd3, 0xfe88, 0x02ea, 0x0c13, 0x12f8,
+ 0x13d3, 0x0c33, 0x03f1, 0x0308, 0x0671, 0x0b20,
+ 0x0cec, 0x0a19, 0x05c9, 0xfea3, 0xf8ed, 0xf841,
+ 0xf640, 0xf830, 0x0062, 0x020a, 0xfeef, 0xfb2b,
+ 0xf55c, 0xf97f, 0x02bc, 0xffa4, 0xfaeb, 0xfb27,
+ 0xf5e9, 0xf4b4, 0xfcbd, 0xfd16, 0xf7f0, 0xfb8e,
+ 0xfe29, 0xf83a, 0xf91c, 0x021d, 0x0378, 0xfc7b,
+ 0xf30c, 0xeb2f, 0xeb3b, 0xec89, 0xead1, 0xf15c,
+ 0xfa40, 0xf8f6, 0xf5b7, 0xf42b, 0xf11a, 0xf2f6,
+ 0xf970, 0xfb0d, 0xf48d, 0xedaf, 0xf037, 0xf678,
+ 0xf956, 0x0109, 0x0989, 0x040a, 0xf7c7, 0xefc2,
+ 0xe820, 0xe667, 0xf21b, 0xfafb, 0xf6f8, 0xf552,
+ 0xf6f5, 0xf37c, 0xf70c, 0xffc8, 0xfd78, 0xf92c,
+ 0xf961, 0xf746, 0xf733, 0xf462, 0xeb5d, 0xea7e,
+ 0xee24, 0xf0c0, 0xfcae, 0x069f, 0x02ff, 0xff84,
+ 0xffb0, 0xfd63, 0xfb16, 0xfa1b, 0xf7c5, 0xf363,
+ 0xf4f9, 0xfd3e, 0xfcaf, 0xf8ad, 0xfe7a, 0xff5a,
+ 0xfb16, 0x00e9, 0x043f, 0xff2c, 0xff78, 0x0318,
+ 0x0412, 0x023a, 0xfc7e, 0xf97d, 0xfb24, 0xf816,
+ 0xf005, 0xed9c, 0xf44c, 0xf93a, 0xf798, 0xf8b3,
+ 0xfa2e, 0xf5b4, 0xf552, 0xfa2e, 0xf9ee, 0xf664,
+ 0xf1e3, 0xeaa7, 0xe96a, 0xf459, 0xff21, 0xff85,
+ 0xfe36, 0xfd26, 0xf5c3, 0xf6ab, 0x044a, 0x0543,
+ 0xf931, 0xf2f9, 0xf074, 0xf183, 0xf7c2, 0xf888,
+ 0xf72c, 0xfb7a, 0xfd92, 0xfbef, 0xff19, 0x050c,
+ 0x02a4, 0xf9bd, 0xf678, 0xf5fd, 0xf5c1, 0xfaa8,
+ 0xf7a3, 0xef39, 0xf8e8, 0x0555, 0x0087, 0xf926,
+ 0xf2b4, 0xee17, 0xf34f, 0xf4f7, 0xf145, 0xf26a,
+ 0xefa4, 0xeea0, 0xf6d1, 0xf8c4, 0xf8f7, 0xfd3f,
+ 0xf526, 0xea3a, 0xed01, 0xf150, 0xf2a5, 0xf48e,
+ 0xf161, 0xedff, 0xf0c0, 0xf436, 0xf644, 0xf53d,
+ 0xee5e, 0xe7b1, 0xe4af, 0xe415, 0xe925, 0xee18,
+ 0xead7, 0xeb57, 0xf549, 0xf9ec, 0xf78a, 0xf4ee,
+ 0xf031, 0xede4, 0xeef8, 0xed31, 0xf004, 0xf7b0,
+ 0xf851, 0xf7d3, 0xfa53, 0xf56a, 0xed94, 0xed28,
+ 0xf052, 0xf215, 0xf2f6, 0xf2ab, 0xef56, 0xed3a,
+ 0xf25f, 0xf67d, 0xf27a, 0xed9b, 0xe842, 0xe2ae,
+ 0xe571, 0xe9e8, 0xe969, 0xedd2, 0xf482, 0xf2ed,
+ 0xef45, 0xf04f, 0xf0e6, 0xeefd, 0xefba, 0xf13d,
+ 0xef45, 0xf232, 0xf86c, 0xf2a4, 0xec21, 0xf3b2,
+ 0xf58b, 0xe996, 0xe43d, 0xe9c0, 0xefe3, 0xf489,
+ 0xf7e4, 0xf6b5, 0xf166, 0xf0e3, 0xf50d, 0xf2ac,
+ 0xf1ab, 0xfbed, 0x0138, 0xfc5e, 0xf9dd, 0xf4e6,
+ 0xeade, 0xeb0f, 0xf527, 0xf77a, 0xf130, 0xf0b2,
+ 0xf34c, 0xee5a, 0xecab, 0xf3fa, 0xf447, 0xedee,
+ 0xed6a, 0xef7a, 0xf0e5, 0xf37f, 0xf5fa, 0xf91c,
+ 0xf994, 0xf533, 0xf3da, 0xf7d2, 0xfdf1, 0x0273,
+ 0xfd52, 0xf592, 0xf7c7, 0xf843, 0xf034, 0xee46,
+ 0xf3d9, 0xf73a, 0xf7bd, 0xf4dd, 0xeda0, 0xe7ee,
+ 0xeaa0, 0xf20c, 0xf302, 0xf05d, 0xf31c, 0xf40b,
+ 0xf24d, 0xf7b0, 0xfda6, 0xfdbe, 0xf9b3, 0xef1d,
+ 0xea2f, 0xf2ae, 0xf697, 0xf576, 0xf8c3, 0xf671,
+ 0xf281, 0xf40d, 0xf201, 0xf3a2, 0xf8e3, 0xf302,
+ 0xf12a, 0xf97b, 0xf7e1, 0xf499, 0xf9d9, 0xfc75,
+ 0xfda0, 0xfb68, 0xf2d5, 0xf219, 0xf559, 0xf24b,
+ 0xf28d, 0xf3c0, 0xf0f2, 0xf35a, 0xf5b6, 0xf2e7,
+ 0xf632, 0xfe62, 0x00ce, 0xfdf9, 0xfba7, 0xfadd,
+ 0xf7d9, 0xf3a3, 0xf2de, 0xf4e4, 0xf7ad, 0xf653,
+ 0xf034, 0xf269, 0xfb6a, 0xfa2a, 0xf363, 0xf371,
+ 0xf667, 0xf7db, 0xf96c, 0xfc17, 0xfc38, 0xf9be,
+ 0xfdff, 0x032d, 0xfe50, 0xfc89, 0x003f, 0xfe34,
+ 0xfd6b, 0xf9fa, 0xf044, 0xf410, 0xfc10, 0xf928,
+ 0xfde0, 0x0346, 0xfc46, 0xfca2, 0xfec6, 0xf7de,
+ 0xfaee, 0x0144, 0xfe12, 0xffee, 0x035d, 0xff22,
+ 0xfd82, 0xffaa, 0x0144, 0x01a5, 0xff1d, 0xfdb8,
+ 0xf9d0, 0xf00b, 0xf00a, 0xf9d4, 0xfb58, 0xf7ce,
+ 0xf894, 0xf8e3, 0xf782, 0xf998, 0xfe84, 0xffa9,
+ 0xfc47, 0xfa84, 0xfa3d, 0xfa21, 0xfbb3, 0xfad6,
+ 0xf96a, 0xfc6c, 0xfe30, 0xff8d, 0x02b0, 0xfe19,
+ 0xf5d3, 0xf48b, 0xf5c0, 0xf562, 0xf210, 0xf15a,
+ 0xfea1, 0x0827, 0xfda3, 0xf7a8, 0xfc43, 0xf9c5,
+ 0xfa5b, 0x008f, 0xfd9c, 0xfb16, 0xfed1, 0xfe0d,
+ 0xfd13, 0x0096, 0x03fe, 0x0768, 0x0901, 0x06d2,
+ 0x0264, 0xfbc3, 0xf871, 0xfce3, 0x0253, 0x0249,
+ 0xffac, 0x0292, 0x0805, 0x044f, 0xfeba, 0x00f0,
+ 0x0132, 0x0064, 0x0344, 0xfe93, 0xf798, 0xfbbd,
+ 0x0270, 0x039f, 0xff6c, 0xf778, 0xf3e8, 0xf4f0,
+ 0xf539, 0xf58a, 0xf456, 0xf4c9, 0xf8b1, 0xf78e,
+ 0xf83d, 0x0072, 0xff64, 0xf6a5, 0xf515, 0xf567,
+ 0xf675, 0xfdbd, 0x036f, 0x02ff, 0x0069, 0xfd37,
+ 0xfa1c, 0xf922, 0xfc46, 0xff3e, 0xfc94, 0xf8a4,
+ 0xf658, 0xf4dd, 0xf72b, 0xfaa1, 0xfbf6, 0xfd47,
+ 0xfb8d, 0xf553, 0xefcb, 0xefe9, 0xf625, 0xf8d3,
+ 0xf515, 0xf5ac, 0xf7e3, 0xf69f, 0xf831, 0xf920,
+ 0xf9c7, 0x0131, 0x05b2, 0x0456, 0x04a6, 0x0156,
+ 0xfb4e, 0xf9a5, 0xf868, 0xf5e0, 0xf409, 0xf518,
+ 0xf997, 0xf9f6, 0xf8d4, 0xfe46, 0x0228, 0x01a2,
+ 0x012b, 0xfe37, 0xff46, 0x067e, 0x0781, 0x038d,
+ 0x0010, 0xf924, 0xf524, 0xfa95, 0xfe87, 0xfacd,
+ 0xfc7a, 0x0691, 0x087c, 0x054b, 0x0bea, 0x11da,
+ 0x1040, 0x0e45, 0x0720, 0xff1e, 0xfe4d, 0xfb58,
+ 0xf87b, 0xfbca, 0xfe24, 0x018d, 0x06c0, 0x0a97,
+ 0x10b2, 0x1119, 0x0a5e, 0x0673, 0xfed9, 0xf8be,
+ 0xff1c, 0x00ff, 0xfc9a, 0xfea1, 0xfe95, 0xfdde,
+ 0x00c1, 0xfcab, 0xfb4b, 0x0417, 0x04ed, 0xff26,
+ 0x0236, 0x0668, 0x0186, 0xfd19, 0x009f, 0x02c9,
+ 0xfe9e, 0xfadf, 0xf9ba, 0xfc7a, 0x0441, 0x0b14,
+ 0x0dd7, 0x0a17, 0x02bf, 0x06a0, 0x0ff6, 0x0e97,
+ 0x0c0f, 0x0acd, 0x02d2, 0x014b, 0x0685, 0x03a5,
+ 0x02bc, 0x0973, 0x082f, 0x02ed, 0x085f, 0x0f3e,
+ 0x0c9d, 0x08b4, 0x066b, 0x02f5, 0x051e, 0x08e9,
+ 0x0615, 0x0570, 0x0614, 0x019d, 0x011c, 0x0076,
+ 0xf97b, 0xf98b, 0xfecf, 0xff31, 0xff20, 0xfddc,
+ 0xfbda, 0xfe90, 0x01f3, 0x0360, 0x01b2, 0xff67,
+ 0x052f, 0x08b7, 0x016a, 0xff94, 0x031d, 0x0087,
+ 0xff77, 0x02c9, 0x053c, 0x0719, 0x0602, 0x0275,
+ 0x024d, 0x0750, 0x0b14, 0x0590, 0xfff5, 0x038d,
+ 0x041b, 0x013a, 0x0558, 0x0874, 0x087d, 0x0b46,
+ 0x0afa, 0x08ae, 0x0a03, 0x0c42, 0x0bcd, 0x041c,
+ 0xfb4f, 0xfc7b, 0xff41, 0xfde4, 0xfe85, 0xfe95,
+ 0x005c, 0x0579, 0x0330, 0xff03, 0x0293, 0x04e8,
+ 0x04ed, 0x0638, 0x0259, 0xfdc1, 0xff83, 0xffdb,
+ 0xfcf1, 0xfeba, 0x02c9, 0x0308, 0x052f, 0x0b6a,
+ 0x0aad, 0x0448, 0x057c, 0x0906, 0x04ba, 0xffc2,
+ 0xfe8f, 0xfd2a, 0xfc06, 0xfb18, 0xfb63, 0xffb3,
+ 0x02c6, 0x02f6, 0x06be, 0x0ab9, 0x09d7, 0x078a,
+ 0x03ac, 0x00af, 0x0357, 0x0483, 0x0363, 0x07ae,
+ 0x0a79, 0x0821, 0x0830, 0x0764, 0x04b4, 0x05a2,
+ 0x05f3, 0x0606, 0x09de, 0x0b61, 0x0906, 0x0579,
+ 0x0322, 0x08e5, 0x0fea, 0x0c34, 0x06ac, 0x0727,
+ 0x07ea, 0x06d6, 0x0464, 0x03b4, 0x0813, 0x0b5c,
+ 0x09f4, 0x0710, 0x0363, 0x00cb, 0xfffb, 0xffc9,
+ 0x03ba, 0x0b09, 0x0f54, 0x0f3f, 0x0cd7, 0x0af3,
+ 0x0ab3, 0x097f, 0x0776, 0x06ff, 0x0877, 0x08e9,
+ 0x040a, 0xffab, 0x0354, 0x069e, 0x0576, 0x0895,
+ 0x0c9e, 0x09be, 0x04ad, 0x026d, 0x02fb, 0x03ec,
+ 0x020b, 0x0033, 0x0121, 0x01da, 0x021b, 0x036f,
+ 0x054d, 0x05f3, 0x0269, 0xff31, 0x03cc, 0x0874,
+ 0x058c, 0x0535, 0x09fd, 0x075d, 0xfe1b, 0xfade,
+ 0xfe2e, 0x0020, 0xffd0, 0x0023, 0x0023, 0x000c,
+ 0x02aa, 0x05b9, 0x0693, 0x06da, 0x04f2, 0x01fe,
+ 0x03ee, 0x05e5, 0x02d6, 0x021b, 0x044e, 0x04d2,
+ 0x05ac, 0x03e8, 0xff9e, 0x01d0, 0x05af, 0x0176,
+ 0xfbe2, 0xfc13, 0xfe7a, 0xfe6d, 0xfc87, 0xfe9e,
+ 0x0401, 0x033e, 0xfc8e, 0xf9ec, 0xfc7e, 0xfddb,
+ 0xfed2, 0x0301, 0x0523, 0x0307, 0x0323, 0x039c,
+ 0x017f, 0x0272, 0x03dd, 0x026d, 0x04bb, 0x0794,
+ 0x0446, 0x0168, 0x02e0, 0x03ed, 0x0346, 0x03cd,
+ 0x05b5, 0x059e, 0x0653, 0x0b41, 0x0b0d, 0x033c,
+ 0xff21, 0xff79, 0x00d8, 0x05f3, 0x0b1e, 0x0c28,
+ 0x09e8, 0x05f0, 0x043a, 0x02d8, 0xffbc, 0x02be,
+ 0x08ec, 0x08bb, 0x06fe, 0x06a7, 0x068a, 0x0a09,
+ 0x0b4a, 0x0776, 0x073b, 0x07e5, 0x050e, 0x048d,
+ 0x0547, 0x0544, 0x0626, 0x03a3, 0x0047, 0x017b,
+ 0x02a0, 0x04b3, 0x08c6, 0x06f4, 0x0424, 0x065f,
+ 0x04c2, 0x0151, 0x02ee, 0x03cf, 0x04e9, 0x071a,
+ 0x036b, 0x01c0, 0x07c9, 0x0b3c, 0x0c73, 0x0db6,
+ 0x0b4f, 0x0c24, 0x0d55, 0x05a8, 0x02ab, 0x0875,
+ 0x07aa, 0x048f, 0x0662, 0x067c, 0x0845, 0x0c49,
+ 0x08d7, 0x0489, 0x08de, 0x0db0, 0x0c4e, 0x0851,
+ 0x05db, 0x06fb, 0x099e, 0x085d, 0x0230, 0xfd51,
+ 0xfee7, 0x032d, 0x04ff, 0x05a4, 0x05ef, 0x046a,
+ 0x0218, 0x000c, 0x0027, 0x0427, 0x071f, 0x063c,
+ 0x078b, 0x0b81, 0x0b4c, 0x0705, 0x0407, 0x046b,
+ 0x0687, 0x0732, 0x0546, 0x0241, 0x00e6, 0x0303,
+ 0x0464, 0x016f, 0xffba, 0x018b, 0x01b4, 0x0206,
+ 0x0694, 0x0a39, 0x088a, 0x0597, 0x056c, 0x0690,
+ 0x0688, 0x04a0, 0x0150, 0xfe62, 0xfaeb, 0xf698,
+ 0xf8eb, 0x0066, 0xfff3, 0xfc2f, 0x0068, 0x04b1,
+ 0x02f1, 0xffa3, 0xfc8e, 0xfc2f, 0xfc59, 0xf9dd,
+ 0xfc0b, 0x018f, 0x029b, 0x03d9, 0x053c, 0x0231,
+ 0xfeb6, 0xf9e1, 0xf4df, 0xf6df, 0xfa70, 0xfb31,
+ 0xfd46, 0xfdc7, 0xfd6c, 0x001a, 0x0004, 0xfcd8,
+ 0xfce6, 0xff21, 0x0145, 0x032c, 0x0400, 0x03de,
+ 0x0341, 0x02ea, 0x0090, 0xfa8d, 0xf7f8, 0xfbf4,
+ 0x001d, 0x027a, 0x0389, 0x03c2, 0x05fc, 0x053c,
+ 0xfd72, 0xf99d, 0xfe7b, 0xffce, 0xf9dc, 0xf773,
+ 0xfaa2, 0xfbcf, 0xfc96, 0x00af, 0x0339, 0x039b,
+ 0x02d6, 0xfd80, 0xfaac, 0x0018, 0x01ce, 0xfab1,
+ 0xf500, 0xf4f6, 0xf5a0, 0xf46f, 0xf74c, 0x001f,
+ 0x048b, 0x04d2, 0x07f4, 0x0438, 0xfa26, 0xf98b,
+ 0xfc39, 0xf92f, 0xf872, 0xf810, 0xf599, 0xf8fa,
+ 0xfdcc, 0xfe9f, 0x006e, 0x01e4, 0x00b8, 0xfe96,
+ 0xfc4f, 0xfe91, 0x0304, 0x0293, 0x01cf, 0x0000,
+ 0xf9d5, 0xfaf7, 0x00f9, 0xff46, 0xff19, 0x02d4,
+ 0x003c, 0xfead, 0x0126, 0x0123, 0x03f3, 0x072c,
+ 0x04d5, 0x039e, 0xff8c, 0xf6b0, 0xf822, 0xfff1,
+ 0x003d, 0xfe47, 0xfd3e, 0xfc58, 0x008b, 0x04af,
+ 0x0234, 0xfd32, 0xfa35, 0xfcf3, 0x0101, 0xfd00,
+ 0xf872, 0xfa85, 0xfa9e, 0xf9b2, 0xfce0, 0xfd79,
+ 0xfaac, 0xf91f, 0xf933, 0xfb78, 0xfb24, 0xf660,
+ 0xf624, 0xf8da, 0xf79a, 0xf778, 0xf8f5, 0xf85b,
+ 0xfa1c, 0xfd5c, 0xfd04, 0xfc03, 0xfdfc, 0x0083,
+ 0xfe0a, 0xf838, 0xf831, 0xfbc9, 0xfb6e, 0xfa1e,
+ 0xf880, 0xf5e1, 0xf74c, 0xf8aa, 0xf5a5, 0xf4bd,
+ 0xf6a2, 0xf988, 0xff14, 0x01ac, 0xff03, 0xfdd3,
+ 0xff28, 0xff62, 0xfde5, 0xfbf7, 0xfa7e, 0xf9d3,
+ 0xfc2e, 0xff75, 0xfd03, 0xf854, 0xf766, 0xf6d8,
+ 0xf6e5, 0xf9dc, 0xfab7, 0xf6e2, 0xf35c, 0xf757,
+ 0xff9a, 0xfe15, 0xf5fd, 0xf6a8, 0xfaaf, 0xf8c7,
+ 0xf619, 0xf488, 0xf4a1, 0xf8e3, 0xfbcd, 0xfb45,
+ 0xfca4, 0xffd1, 0x01b1, 0x0027, 0xf95b, 0xf0e1,
+ 0xed84, 0xefcb, 0xf251, 0xf4ff, 0xfbcf, 0x00b5,
+ 0xfd74, 0xf9dd, 0xfa75, 0xfa59, 0xf975, 0xf817,
+ 0xf4fa, 0xf2f0, 0xf151, 0xef36, 0xf06e, 0xf27f,
+ 0xf315, 0xf6eb, 0xfb6a, 0xfcd4, 0xffd6, 0x02bd,
+ 0x02c7, 0x04e6, 0x0451, 0xfbb2, 0xf601, 0xf877,
+ 0xfc6e, 0xff7d, 0x0028, 0xfecf, 0xfe70, 0xfdad,
+ 0xff63, 0x035b, 0x0003, 0xfd03, 0x040f, 0x0659,
+ 0x0278, 0x0620, 0x07c3, 0x0055, 0xfb54, 0xf9a5,
+ 0xf804, 0xf90c, 0xfb6b, 0xff46, 0x03c7, 0x055e,
+ 0x0725, 0x0895, 0x05ed, 0x04e7, 0x065c, 0x0592,
+ 0x0648, 0x0769, 0x040f, 0x01f9, 0x01d1, 0xfddb,
+ 0xfb4a, 0xfd23, 0xfdeb, 0xff79, 0x02c8, 0x017e,
+ 0xfe0d, 0xfeb4, 0xff9b, 0xfd56, 0xfb84, 0xfb3f,
+ 0xfb21, 0xfd9d, 0x02a1, 0x0335, 0xfe7e, 0xfb2e,
+ 0xf8ff, 0xf715, 0xfa5d, 0xff6a, 0x0003, 0xfdc4,
+ 0xf98c, 0xf6bc, 0xf953, 0xfb83, 0xfc2d, 0xfee7,
+ 0xfe94, 0xfc4c, 0xfd91, 0xff4d, 0x023e, 0x03d7,
+ 0xfc03, 0xf55a, 0xf8f7, 0xfba3, 0xfcb9, 0x0233,
+ 0x03e7, 0x0100, 0x0175, 0x0161, 0xfe0c, 0xffba,
+ 0x06a7, 0x08e4, 0x057f, 0x03bb, 0x0425, 0x03a9,
+ 0x0316, 0x02c9, 0x019a, 0x005b, 0x017b, 0x039b,
+ 0x003c, 0xf8d6, 0xf739, 0xfa16, 0xf902, 0xf581,
+ 0xf5e7, 0xfb85, 0x0150, 0x0318, 0x03c9, 0x031d,
+ 0xfe89, 0xfbf3, 0xfcae, 0xfb49, 0xfa34, 0xfc0c,
+ 0xfecb, 0x00e1, 0xfed1, 0xfb3f, 0xfcbd, 0xfeed,
+ 0xfdad, 0xfc43, 0xfaed, 0xfa73, 0xfbb0, 0xfc47,
+ 0xfd56, 0xfdbc, 0xfa97, 0xf84d, 0xf770, 0xf5f4,
+ 0xf904, 0xfda6, 0xfcc9, 0xfce4, 0xfff2, 0xfd8a,
+ 0xf880, 0xf89f, 0xfb0d, 0xface, 0xfa21, 0xfd97,
+ 0x010f, 0xfd69, 0xf8ad, 0xf9ab, 0xfaf5, 0xfba3,
+ 0xfd6a, 0xfabb, 0xf69b, 0xf749, 0xf8d8, 0xfbfb,
+ 0x00fe, 0xff20, 0xf9a7, 0xf988, 0xfa3c, 0xf908,
+ 0xfa76, 0xfeb6, 0x0320, 0x055a, 0x0582, 0x04b3,
+ 0x00ac, 0xfb31, 0xf835, 0xf4c9, 0xf0a1, 0xefd3,
+ 0xf107, 0xf2ea, 0xf733, 0xfba8, 0xfd8e, 0x00a8,
+ 0x0662, 0x0512, 0xfbf7, 0xfa5a, 0xffb7, 0xff93,
+ 0xfe9f, 0x0186, 0x02eb, 0x0290, 0xfe68, 0xf7ad,
+ 0xf883, 0xfe86, 0x025d, 0x05da, 0x05f2, 0x01c5,
+ 0x011e, 0x021a, 0xfd57, 0xf728, 0xf9ad, 0x0158,
+ 0x0067, 0xfb0c, 0xfd47, 0xff36, 0xfc94, 0xfcba,
+ 0xfa63, 0xf53b, 0xf738, 0xfa22, 0xf78c, 0xf770,
+ 0xfb3e, 0xfdd0, 0xfdd6, 0xfc03, 0xfa68, 0xf82d,
+ 0xf2c4, 0xee35, 0xef6d, 0xf477, 0xf88a, 0xf899,
+ 0xf5ae, 0xf50c, 0xf8a3, 0xfa97, 0xf8e9, 0xf9a6,
+ 0xfb4f, 0xf7e6, 0xf4d4, 0xf74e, 0xfadc, 0xfd4d,
+ 0xfe8a, 0xfc21, 0xf7ac, 0xf5f4, 0xf7ba, 0xf98d,
+ 0xf9ff, 0xfa12, 0xf897, 0xf763, 0xfae2, 0xff29,
+ 0xff4e, 0xfe70, 0xfd50, 0xf888, 0xf31f, 0xf57f,
+ 0xfe97, 0x03b5, 0x057b, 0x08cd, 0x05da, 0xfeed,
+ 0xfdfb, 0xfb0a, 0xf5b8, 0xf93d, 0xfd96, 0xfc66,
+ 0xfc79, 0xfb67, 0xf872, 0xf733, 0xf472, 0xf357,
+ 0xf761, 0xfb35, 0xfe88, 0x00d9, 0xff50, 0x002a,
+ 0x050f, 0x0560, 0x00df, 0xfda5, 0xf954, 0xf1fe,
+ 0xf1fd, 0xfb71, 0xff3b, 0xfc1d, 0xfcb5, 0xfd6c,
+ 0xfd87, 0x0276, 0x03e8, 0xff00, 0xfca7, 0xfc29,
+ 0xfb52, 0xfbff, 0xfb2f, 0xf942, 0xf994, 0xfa80,
+ 0xfb88, 0xfe6e, 0x039c, 0x09b2, 0x0b31, 0x062b,
+ 0x027c, 0x02b1, 0xffe3, 0xfc9d, 0xff84, 0x0296,
+ 0x0449, 0x09f8, 0x0a85, 0x03b0, 0x04a1, 0x097f,
+ 0x05d9, 0x01b0, 0x01a9, 0xff8a, 0xfd4f, 0xfe09,
+ 0xff23, 0xfed9, 0xfdd8, 0xfd66, 0xfbdf, 0xf828,
+ 0xf4ca, 0xf34f, 0xf467, 0xf5db, 0xf518, 0xf5a8,
+ 0xf78e, 0xfa4e, 0x00db, 0x00e9, 0xf736, 0xf421,
+ 0xf5e4, 0xf493, 0xf8b7, 0xfd82, 0xfcc6, 0xfebc,
+ 0xfe5c, 0xf94b, 0xf9f0, 0xfbbc, 0xf9a0, 0xf76b,
+ 0xf335, 0xf01b, 0xf0c3, 0xf05b, 0xf2f4, 0xf94e,
+ 0xfa9b, 0xf936, 0xfbdd, 0x00a5, 0x02ae, 0x0015,
+ 0xfdb2, 0xfece, 0xffb6, 0x000e, 0x0122, 0x00fd,
+ 0x0033, 0x00a7, 0x01b5, 0x0023, 0xfbd7, 0xfaf1,
+ 0xfd29, 0xfda8, 0xff02, 0xffb2, 0xfd07, 0xfe26,
+ 0x0156, 0xff53, 0xfdea, 0x002c, 0x0214, 0x0465,
+ 0x0548, 0x028e, 0x0030, 0xff96, 0x000a, 0x0083,
+ 0xfd72, 0xf89c, 0xf707, 0xf838, 0xfaab, 0xfd1f,
+ 0xfda9, 0xfe89, 0x008d, 0xfff0, 0xfdaf, 0xfc5a,
+ 0xfaa2, 0xfad8, 0xfd7a, 0xfca5, 0xfa70, 0xfc7e,
+ 0xfef3, 0xfee9, 0xfde4, 0xfce5, 0xfebb, 0x0087,
+ 0xfd8e, 0xfadc, 0xf9e7, 0xf7bf, 0xf86f, 0xfaf9,
+ 0xfbdd, 0xfe97, 0x01a7, 0x0312, 0x051b, 0x0467,
+ 0x00f5, 0xfe0d, 0xfaaa, 0xfbc7, 0x017e, 0x01b1,
+ 0xff78, 0x0179, 0x03a8, 0x068c, 0x0a58, 0x0a4b,
+ 0x0929, 0x0909, 0x0766, 0x06b2, 0x082b, 0x0772,
+ 0x0186, 0xfa9c, 0xfa5e, 0xfea7, 0x00d2, 0x034f,
+ 0x0690, 0x0680, 0x070d, 0x0a51, 0x0913, 0x01bd,
+ 0xfcb3, 0xfe8e, 0x0218, 0x031b, 0x0390, 0x0442,
+ 0x0530, 0x05b2, 0x01fc, 0xfd65, 0xfed7, 0x0222,
+ 0x0328, 0x0517, 0x06be, 0x0623, 0x057e, 0x04b0,
+ 0x0330, 0x02a9, 0x038d, 0x052e, 0x06a9, 0x070a,
+ 0x05bf, 0x0405, 0x046a, 0x05c5, 0x05de, 0x0570,
+ 0x0325, 0x0028, 0x01f8, 0x055e, 0x0526, 0x04d2,
+ 0x0418, 0x00b9, 0x0010, 0x031c, 0x04a3, 0x04ad,
+ 0x069b, 0x0a28, 0x09f8, 0x04ad, 0x0192, 0x0149,
+ 0xfec3, 0xfea5, 0x031e, 0x0556, 0x04be, 0x03a9,
+ 0x025a, 0x02e1, 0x027b, 0x009d, 0x03ae, 0x068a,
+ 0x032f, 0x0392, 0x0862, 0x077d, 0x04c6, 0x0405,
+ 0x014c, 0x01b5, 0x0579, 0x039c, 0x00b9, 0x0158,
+ 0xfd1b, 0xf73c, 0xf8c2, 0xfc49, 0xfe3e, 0x00df,
+ 0x0157, 0x0166, 0x04c2, 0x0806, 0x0a1e, 0x09ac,
+ 0x03d8, 0xff56, 0xfee6, 0xfbd3, 0xf9e3, 0xfee1,
+ 0x04d7, 0x07dd, 0x07cb, 0x03ea, 0x013d, 0x02b9,
+ 0x04bd, 0x076f, 0x0b5e, 0x0bf8, 0x0886, 0x0600,
+ 0x06a6, 0x0847, 0x0844, 0x0638, 0x04d3, 0x0652,
+ 0x077e, 0x053d, 0x02e1, 0x026d, 0x01f1, 0x022d,
+ 0x02f0, 0x01d6, 0x00ef, 0x024b, 0x0305, 0x01a5,
+ 0x0025, 0xffb9, 0x00c0, 0x0454, 0x0931, 0x0b9a,
+ 0x0b60, 0x097f, 0x04ac, 0x00a7, 0x0184, 0x0261,
+ 0x00ed, 0x015d, 0x0404, 0x0705, 0x0864, 0x0613,
+ 0x03af, 0x0511, 0x07b8, 0x0794, 0x02f1, 0xfe25,
+ 0xfee6, 0x025c, 0x05ba, 0x0a76, 0x0bdf, 0x07bd,
+ 0x04c4, 0x03a5, 0x01c1, 0x0300, 0x067b, 0x0678,
+ 0x0581, 0x0638, 0x04d1, 0x02cd, 0x02ed, 0x017d,
+ 0x00c2, 0x04f4, 0x070a, 0x0448, 0x03a4, 0x0427,
+ 0x0232, 0x016f, 0x0221, 0x0025, 0xfde5, 0x019b,
+ 0x0856, 0x089b, 0x03a1, 0x01c4, 0x0369, 0x0616,
+ 0x08e0, 0x0988, 0x0885, 0x0660, 0x02ef, 0x0107,
+ 0xff9c, 0xfde3, 0xff17, 0xfdec, 0xf7f8, 0xf74c,
+ 0xfb80, 0xfd3e, 0xffc6, 0x03b0, 0x0530, 0x0665,
+ 0x0779, 0x0696, 0x060e, 0x06f4, 0x0826, 0x07e2,
+ 0x0363, 0xfd46, 0xfcc1, 0x00f3, 0x0244, 0x0101,
+ 0x01ba, 0x01dd, 0x009e, 0x0200, 0x03d2, 0x0459,
+ 0x078d, 0x0bc7, 0x0d2d, 0x0d58, 0x0c5d, 0x0898,
+ 0x04c4, 0x0444, 0x04a3, 0x027a, 0x0191, 0x044f,
+ 0x058f, 0x04d2, 0x052d, 0x042f, 0x009e, 0xfcf3,
+ 0xfc87, 0x0171, 0x06c1, 0x0954, 0x0be1, 0x0a93,
+ 0x051d, 0x039f, 0x040c, 0x0275, 0x02bd, 0x041c,
+ 0x0639, 0x0a19, 0x09fb, 0x0681, 0x0545, 0x0437,
+ 0x0207, 0xfe34, 0xf7f5, 0xf68d, 0xfbe7, 0x004f,
+ 0x0362, 0x05fc, 0x03da, 0xffa0, 0xfebe, 0x000e,
+ 0x0185, 0x0500, 0x0bb8, 0x1055, 0x0dd9, 0x0915,
+ 0x06e7, 0x05cd, 0x0570, 0x0471, 0x00a8, 0xfee8,
+ 0x0298, 0x0716, 0x0986, 0x0a7b, 0x08f8, 0x05d2,
+ 0x0474, 0x05c5, 0x0827, 0x0a23, 0x098a, 0x05c5,
+ 0x0386, 0x0549, 0x0650, 0x04e1, 0x04f4, 0x076f,
+ 0x09d8, 0x0a0a, 0x082c, 0x06ba, 0x05ec, 0x04c2,
+ 0x03d8, 0x0250, 0x016a, 0x036a, 0x03be, 0x00df,
+ 0x0054, 0x014d, 0x0090, 0xfeda, 0xfc2e, 0xfc9d,
+ 0x029b, 0x0627, 0x048f, 0x0340, 0x011c, 0xfc2f,
+ 0xf886, 0xf9ab, 0xfea4, 0x027c, 0x039e, 0x0491,
+ 0x034d, 0xffca, 0xff51, 0x003d, 0xff1d, 0xff31,
+ 0x0151, 0x0305, 0x0437, 0x0428, 0x015e, 0xfdae,
+ 0xfc52, 0xfc40, 0xfa1c, 0xf754, 0xf732, 0xfaf0,
+ 0x02fc, 0x09c3, 0x0879, 0x03db, 0x02d5, 0x0403,
+ 0x04bd, 0x0434, 0x0388, 0x0495, 0x0583, 0x0654,
+ 0x092a, 0x0a1b, 0x0715, 0x0457, 0x02fc, 0x036b,
+ 0x077d, 0x0c08, 0x0e4b, 0x0ec9, 0x0ae5, 0x03d2,
+ 0x0225, 0x069a, 0x097a, 0x0a73, 0x0d16, 0x0ecd,
+ 0x0d6f, 0x0a1e, 0x05ef, 0x04cd, 0x084a, 0x0ad8,
+ 0x0ad5, 0x0be4, 0x0d63, 0x0da6, 0x0d60, 0x0c4e,
+ 0x0aa3, 0x0853, 0x0423, 0x00b0, 0x01ec, 0x0610,
+ 0x0928, 0x0a35, 0x0980, 0x07a6, 0x0597, 0x030a,
+ 0x0100, 0x023b, 0x0459, 0x037f, 0x046e, 0x09b1,
+ 0x0b12, 0x0708, 0x050d, 0x047d, 0x01a3, 0xff2b,
+ 0xfe42, 0xfd7e, 0xfcaa, 0xfbdb, 0xfc50, 0xfc61,
+ 0xf891, 0xf4fc, 0xf522, 0xf53d, 0xf633, 0xfa01,
+ 0xfbc4, 0xfaaa, 0xf9fa, 0xf94e, 0xf98b, 0xfbca,
+ 0xfd84, 0xfe4b, 0xff63, 0xfecc, 0xfb56, 0xf954,
+ 0xfb98, 0xfd62, 0xfc35, 0xfb2a, 0xf95a, 0xf70b,
+ 0xf90e, 0xfcf5, 0xfd5a, 0xfacc, 0xf76b, 0xf5ef,
+ 0xf61c, 0xf469, 0xf387, 0xf584, 0xf631, 0xf62d,
+ 0xf7bb, 0xf8e8, 0xf915, 0xf89f, 0xf992, 0xfd74,
+ 0x0022, 0x0143, 0x0473, 0x0646, 0x037e, 0xffaa,
+ 0xfe57, 0xfef9, 0xfeac, 0xfdff, 0xfed8, 0xffd7,
+ 0x01d0, 0x03b5, 0x018a, 0x0036, 0x032e, 0x0540,
+ 0x0520, 0x00fe, 0xf942, 0xf82b, 0xfd34, 0xff05,
+ 0xff5f, 0xff60, 0xfcfb, 0xfc63, 0xfe18, 0xffc4,
+ 0x02bd, 0x05f2, 0x0795, 0x0791, 0x05ae, 0x03e1,
+ 0x0369, 0x0290, 0x010e, 0x019e, 0x0505, 0x05fb,
+ 0x02be, 0x0078, 0xfdd4, 0xf89f, 0xf66f, 0xf759,
+ 0xf84d, 0xfa7a, 0xfbac, 0xfbb2, 0xfdf6, 0x0034,
+ 0x005d, 0xfeec, 0xfc3a, 0xfb4a, 0xfb88, 0xf9e3,
+ 0xf84b, 0xf86e, 0xfa64, 0xfc49, 0xf9ca, 0xf59e,
+ 0xf470, 0xf4b0, 0xf5bb, 0xf627, 0xf540, 0xf70e,
+ 0xf8c7, 0xf6cb, 0xf674, 0xf7f5, 0xf791, 0xf6b1,
+ 0xf58f, 0xf4b6, 0xf53f, 0xf58a, 0xf685, 0xf7ed,
+ 0xf807, 0xfa1d, 0xfd03, 0xfbe6, 0xfa66, 0xfb85,
+ 0xfb6f, 0xf88e, 0xf53d, 0xf58a, 0xfa7f, 0xfd86,
+ 0xfb69, 0xfb34, 0xfed3, 0xff30, 0xfc85, 0xfc28,
+ 0xfcb9, 0xfd1a, 0xfd2f, 0xf96d, 0xf53a, 0xf5d3,
+ 0xf724, 0xf68a, 0xf4ad, 0xf232, 0xf44c, 0xf9af,
+ 0xfaeb, 0xf9cf, 0xf97a, 0xf98a, 0xfc10, 0xff34,
+ 0xffbf, 0xfde1, 0xfa41, 0xf8bf, 0xf9cb, 0xfa07,
+ 0xfdba, 0x0410, 0x0520, 0x04c7, 0x0675, 0x042a,
+ 0xff4a, 0xfd3c, 0xfd2a, 0xfcf4, 0xfd52, 0x0030,
+ 0x0264, 0xff9b, 0xfbc4, 0xfa6a, 0xfa9c, 0xfd7e,
+ 0x010c, 0x017e, 0x018f, 0x0488, 0x07e4, 0x075e,
+ 0x04b3, 0x0527, 0x06e5, 0x0793, 0x0a0f, 0x0af3,
+ 0x065b, 0x012d, 0xfe59, 0xfcfe, 0xfc8b, 0xfb3f,
+ 0xfa6e, 0xfce8, 0x0117, 0x0407, 0x04c7, 0x0556,
+ 0x06da, 0x06a0, 0x049f, 0x0353, 0x0286, 0x012b,
+ 0xfe22, 0xfb62, 0xfc35, 0xfc9e, 0xfa33, 0xf916,
+ 0xf8c6, 0xf8c7, 0xfb11, 0xfc1c, 0xfbfa, 0xfef6,
+ 0x012a, 0xfe0b, 0xf9d4, 0xf9fe, 0xfc5f, 0xfa9e,
+ 0xf58f, 0xf298, 0xf2dc, 0xf6b6, 0xfcbd, 0x00c0,
+ 0x0300, 0x0450, 0x0328, 0x019b, 0x01a9, 0x0168,
+ 0xff29, 0xfcc9, 0xfd07, 0xfc43, 0xf7c9, 0xf64d,
+ 0xf920, 0xf9bf, 0xf875, 0xf80b, 0xf850, 0xf974,
+ 0xfa47, 0xfac7, 0xfca9, 0xff21, 0x00b2, 0x0003,
+ 0xfe34, 0xfe84, 0xff34, 0xfeab, 0xfe85, 0xfd91,
+ 0xfdff, 0x0296, 0x065b, 0x0736, 0x05de, 0x0089,
+ 0xfaea, 0xf856, 0xf722, 0xf7c0, 0xf86d, 0xf7af,
+ 0xf851, 0xf7e1, 0xf49d, 0xf2f5, 0xf2da, 0xf2a3,
+ 0xf357, 0xf4ae, 0xf7b9, 0xfc37, 0xff82, 0x01e8,
+ 0x019d, 0xfcb9, 0xf8d0, 0xf8cf, 0xf95b, 0xfab0,
+ 0xfd85, 0xfeb3, 0xfdab, 0xfc50, 0xf9ee, 0xf713,
+ 0xf761, 0xfa93, 0xfd87, 0xff85, 0xff71, 0xfd80,
+ 0xfc9b, 0xfbf3, 0xfa7b, 0xfa8f, 0xfbc6, 0xfd8b,
+ 0x011a, 0x040f, 0x04b3, 0x0600, 0x093c, 0x0b04,
+ 0x0917, 0x0726, 0x0755, 0x065c, 0x0554, 0x05bb,
+ 0x02ba, 0xfd83, 0xfc0d, 0xfc09, 0xf941, 0xf619,
+ 0xf758, 0xfc36, 0xff36, 0x00eb, 0x0313, 0x0101,
+ 0xfd4b, 0xfdc3, 0xfd06, 0xf8a9, 0xf5da, 0xf448,
+ 0xf2d7, 0xf380, 0xf67a, 0xfa87, 0xfcd9, 0xfc61,
+ 0xfac0, 0xf7d2, 0xf5c9, 0xf721, 0xf7ff, 0xf6d0,
+ 0xf633, 0xf5ac, 0xf515, 0xf4d8, 0xf397, 0xf25b,
+ 0xf2e9, 0xf46f, 0xf552, 0xf4cd, 0xf4bd, 0xf73f,
+ 0xfaba, 0xfc95, 0xfcbf, 0xfda7, 0x0000, 0x00e4,
+ 0x0052, 0x0068, 0xff6e, 0xfd5e, 0xfc81, 0xfc12,
+ 0xfc41, 0xfde2, 0xfefe, 0xff43, 0xffaf, 0xffee,
+ 0xff5e, 0xfd66, 0xfcc0, 0xfffd, 0x0259, 0x0135,
+ 0x00dd, 0x0130, 0xff81, 0xfdbb, 0xfcbf, 0xfb22,
+ 0xf90b, 0xf787, 0xf8e1, 0xfd48, 0xff77, 0xfdbb,
+ 0xfcd2, 0xfc66, 0xf905, 0xf639, 0xf73b, 0xf947,
+ 0xfb3b, 0xfd4e, 0xfe49, 0xff0c, 0x0041, 0x005a,
+ 0xff4e, 0xfec0, 0xffaf, 0x007c, 0xff90, 0x0066,
+ 0x041a, 0x04bf, 0x019d, 0xffc9, 0xffb0, 0xff66,
+ 0xff17, 0x001d, 0x02d8, 0x03ed, 0x0220, 0x01c9,
+ 0x03f7, 0x05aa, 0x05db, 0x04bd, 0x02a1, 0xff1d,
+ 0xfa9e, 0xf94b, 0xfbac, 0xfc6b, 0xfaa8, 0xf9d0,
+ 0xfabf, 0xfc32, 0xfd02, 0xfdac, 0xfeaf, 0xfeda,
+ 0xfed0, 0xffce, 0x007d, 0xffb6, 0xfd8d, 0xfc29,
+ 0xfe30, 0x00f6, 0x018e, 0x0185, 0x0025, 0xfd2e,
+ 0xfc51, 0xfc28, 0xf925, 0xf75b, 0xfaca, 0xfed1,
+ 0xff31, 0xffc7, 0x0287, 0x02e0, 0x015d, 0x017a,
+ 0x00cd, 0xff91, 0xfff9, 0xfeef, 0xfd5e, 0xfe95,
+ 0xff5f, 0xfea2, 0xfe7e, 0xfea9, 0x002d, 0x0286,
+ 0x0378, 0x0507, 0x070b, 0x06f0, 0x0623, 0x04ee,
+ 0x0343, 0x0383, 0x038e, 0x0142, 0xff6f, 0xfe93,
+ 0xfecd, 0x018e, 0x03e7, 0x0434, 0x0452, 0x02d3,
+ 0x002e, 0xffc6, 0xfeef, 0xfc15, 0xfbcd, 0xfcdb,
+ 0xfbe7, 0xfd73, 0x0283, 0x05a3, 0x064c, 0x05d5,
+ 0x043b, 0x03fa, 0x047d, 0x02f3, 0x0168, 0x0123,
+ 0x0005, 0xfd45, 0xf9dd, 0xf8d3, 0xfa4a, 0xf9cb,
+ 0xf8a0, 0xf9f8, 0xfa64, 0xf97a, 0xfa26, 0xfba9,
+ 0xfe15, 0x0016, 0xff1c, 0xff2a, 0x01de, 0x027e,
+ 0x017e, 0x0143, 0x00af, 0x0032, 0x0064, 0x0147,
+ 0x0384, 0x04f2, 0x037b, 0x0106, 0xff8d, 0xfec6,
+ 0xfdc1, 0xfd62, 0xff0c, 0x00b5, 0x00cb, 0x015a,
+ 0x02db, 0x0377, 0x02b9, 0x0257, 0x039b, 0x0452,
+ 0x031e, 0x0236, 0x01d8, 0x01fc, 0x03ad, 0x047e,
+ 0x045b, 0x05ab, 0x05a9, 0x0432, 0x0502, 0x05b0,
+ 0x0446, 0x02c6, 0x0023, 0xfd1e, 0xfd23, 0xff4c,
+ 0x01b1, 0x03ed, 0x04be, 0x038b, 0x00f2, 0xfef7,
+ 0x001e, 0x036f, 0x05b0, 0x060b, 0x05d8, 0x055c,
+ 0x02c2, 0xfe63, 0xfca5, 0xffb4, 0x04c2, 0x0851,
+ 0x08b3, 0x066a, 0x034c, 0x00cc, 0xff6c, 0xfec8,
+ 0xfe9d, 0xff07, 0xff14, 0xfe00, 0xfcbb, 0xfcad,
+ 0xfe85, 0x00e3, 0x01aa, 0x0214, 0x04e8, 0x08cc,
+ 0x098e, 0x06d9, 0x047a, 0x0345, 0x0155, 0x0063,
+ 0x028a, 0x05fa, 0x0860, 0x07f3, 0x046b, 0x00c8,
+ 0xff09, 0xfef0, 0x0061, 0x01da, 0x0290, 0x03f5,
+ 0x0510, 0x0471, 0x040a, 0x04b5, 0x04a7, 0x034d,
+ 0x0250, 0x03bc, 0x06c8, 0x081a, 0x06bd, 0x0432,
+ 0x01cc, 0x0140, 0x01ca, 0x0039, 0xff06, 0x024c,
+ 0x0591, 0x04a8, 0x0386, 0x0457, 0x0552, 0x05d4,
+ 0x04d5, 0x0313, 0x02fd, 0x023b, 0xfe8f, 0xfba2,
+ 0xfbed, 0xfdef, 0x0091, 0x034a, 0x056a, 0x0764,
+ 0x098f, 0x0a17, 0x082f, 0x0715, 0x082a, 0x08ad,
+ 0x07e5, 0x0700, 0x065a, 0x0623, 0x052a, 0x03bf,
+ 0x0473, 0x05f2, 0x060c, 0x05b0, 0x0543, 0x0631,
+ 0x08d1, 0x08a5, 0x05f1, 0x0661, 0x0902, 0x086f,
+ 0x0497, 0x02fe, 0x05ef, 0x081f, 0x07f1, 0x0a8c,
+ 0x0e90, 0x0eb5, 0x0ca9, 0x0be5, 0x0c19, 0x0bb3,
+ 0x0aa4, 0x0a06, 0x093b, 0x0875, 0x0993, 0x0a49,
+ 0x082b, 0x054f, 0x0349, 0x03b1, 0x06a4, 0x0821,
+ 0x08d6, 0x0b67, 0x0baa, 0x0802, 0x0408, 0x0132,
+ 0x00d1, 0x0249, 0x02a1, 0x0332, 0x04ce, 0x0483,
+ 0x025d, 0xffb7, 0xfd77, 0xfe28, 0x01b1, 0x0542,
+ 0x065f, 0x0328, 0xfe28, 0xfbec, 0xfc58, 0xfe13,
+ 0x005b, 0x00bc, 0xff07, 0xfd9a, 0xfdb6, 0xffb9,
+ 0x01db, 0x01be, 0x013a, 0x0297, 0x0419, 0x0459,
+ 0x0539, 0x07d0, 0x088e, 0x0423, 0xfe89, 0xfd86,
+ 0x00ad, 0x04e4, 0x0802, 0x0886, 0x07b7, 0x0798,
+ 0x070c, 0x05fc, 0x0775, 0x0b94, 0x0e52, 0x0d1c,
+ 0x08d0, 0x04b9, 0x03f5, 0x04b3, 0x03bf, 0x0388,
+ 0x05e5, 0x06f9, 0x04e6, 0x01de, 0x007b, 0x02b7,
+ 0x063b, 0x0677, 0x03d0, 0x0147, 0x008a, 0x01a3,
+ 0x0214, 0x0106, 0x0104, 0x025b, 0x0263, 0xffe2,
+ 0xfe05, 0xfff6, 0x020a, 0x01c2, 0x02a3, 0x03bf,
+ 0x038c, 0x0543, 0x0601, 0x030b, 0x02ff, 0x06b9,
+ 0x0770, 0x0503, 0x03d1, 0x0484, 0x04ee, 0x047e,
+ 0x04b7, 0x0590, 0x06f7, 0x0870, 0x06aa, 0x0393,
+ 0x0446, 0x0539, 0x034f, 0x02f7, 0x04e3, 0x05aa,
+ 0x0460, 0x0243, 0x0217, 0x03d9, 0x041b, 0x035f,
+ 0x0434, 0x053a, 0x052b, 0x0620, 0x085e, 0x08e2,
+ 0x0730, 0x04e5, 0x0200, 0x0054, 0x0145, 0x01f0,
+ 0x0263, 0x0486, 0x05c1, 0x0515, 0x0472, 0x043e,
+ 0x047e, 0x03e3, 0x01f4, 0x00ed, 0x004e, 0xff7a,
+ 0xffe7, 0x00ae, 0x0222, 0x04eb, 0x0674, 0x071c,
+ 0x06de, 0x0335, 0x0042, 0x01b6, 0x0395, 0x039e,
+ 0x0216, 0xff7c, 0xfee1, 0x0106, 0x02f6, 0x0368,
+ 0x0441, 0x06d8, 0x0793, 0x043e, 0x017c, 0x0172,
+ 0x0294, 0x0521, 0x075f, 0x085b, 0x0955, 0x0750,
+ 0x025b, 0x00a1, 0x0243, 0x02bd, 0x01ad, 0x0167,
+ 0x0322, 0x046b, 0x0268, 0xff42, 0xfe24, 0xff1a,
+ 0x006f, 0xfffa, 0xfe31, 0xfde5, 0xff52, 0x00d8,
+ 0x018e, 0x00e0, 0xff59, 0xfe5e, 0xfe36, 0xfec1,
+ 0x0041, 0x01d2, 0x01de, 0x009b, 0xfefd, 0xfcad,
+ 0xf914, 0xf58f, 0xf633, 0xfcc0, 0x0463, 0x0964,
+ 0x0cc3, 0x0d61, 0x0a74, 0x06e7, 0x03b1, 0x0142,
+ 0x01c3, 0x04d3, 0x084f, 0x0a26, 0x0992, 0x08cf,
+ 0x0890, 0x075d, 0x059b, 0x03bc, 0x02d4, 0x0461,
+ 0x0630, 0x062a, 0x049e, 0x0290, 0x0337, 0x062c,
+ 0x0772, 0x092b, 0x0c9e, 0x0d37, 0x0b04, 0x0831,
+ 0x0526, 0x04db, 0x0651, 0x053d, 0x040b, 0x0563,
+ 0x06ae, 0x0640, 0x0467, 0x03a1, 0x0652, 0x087e,
+ 0x0705, 0x06a3, 0x0966, 0x0a9d, 0x084f, 0x0592,
+ 0x05e9, 0x093b, 0x0a95, 0x07c0, 0x060c, 0x07e7,
+ 0x086a, 0x0621, 0x04fb, 0x055a, 0x04c9, 0x03d0,
+ 0x03df, 0x04d3, 0x06db, 0x08d1, 0x0788, 0x0404,
+ 0x02ce, 0x03e9, 0x0465, 0x03d2, 0x0327, 0x02dc,
+ 0x01d3, 0xffb0, 0xfff6, 0x0363, 0x0532, 0x0390,
+ 0x0077, 0xfe4b, 0xffba, 0x02fb, 0x03c1, 0x02d7,
+ 0x01a0, 0xff9e, 0xfffd, 0x0457, 0x077b, 0x0623,
+ 0x0353, 0x01c8, 0x0125, 0x013c, 0x0268, 0x033a,
+ 0x021b, 0x0095, 0x00f9, 0x0177, 0xfeac, 0xfae5,
+ 0xfc20, 0x020e, 0x05b7, 0x03bc, 0xff7f, 0xfbac,
+ 0xf7c5, 0xf4b8, 0xf40d, 0xf5ab, 0xf901, 0xfb43,
+ 0xfa1f, 0xf8dc, 0xf9ff, 0xfc1a, 0xfe43, 0xfe6b,
+ 0xfc82, 0xfcd3, 0xff2e, 0x0104, 0x0307, 0x03f2,
+ 0x02ec, 0x0109, 0xfdc2, 0xfca3, 0x003d, 0x02a5,
+ 0x0119, 0xfd98, 0xf8ea, 0xf758, 0xfa58, 0xfc38,
+ 0xfbc5, 0xfc8a, 0x000a, 0x0495, 0x0511, 0x00d8,
+ 0xfe3e, 0xff64, 0x0081, 0xff84, 0xfe62, 0xff86,
+ 0x0101, 0x0046, 0xff16, 0xfebc, 0xfe88, 0xfe8c,
+ 0xfe99, 0xfec5, 0xff91, 0xffe6, 0xfe5a, 0xfc3f,
+ 0xfd29, 0x004c, 0x008c, 0xfe8e, 0xfe28, 0xfef3,
+ 0x003f, 0x00b5, 0xfee2, 0xfe96, 0x0077, 0xffc6,
+ 0xfd2d, 0xfbe1, 0xfcc7, 0x0032, 0x02d1, 0x019d,
+ 0xfefc, 0xfd06, 0xfc16, 0xfbf7, 0xfafb, 0xfa31,
+ 0xfc44, 0xff17, 0xff1b, 0xfd13, 0xfb4b, 0xfa5f,
+ 0xfb52, 0xfdd6, 0xfd66, 0xf8a3, 0xf3ca, 0xf0c3,
+ 0xf00e, 0xf260, 0xf54b, 0xf797, 0xf948, 0xf909,
+ 0xf8a3, 0xf8d7, 0xf7bc, 0xf838, 0xfb1b, 0xfb98,
+ 0xf9ca, 0xf855, 0xf6fe, 0xf629, 0xf69c, 0xf8e3,
+ 0xfc1b, 0xfd4e, 0xfc0c, 0xf8ce, 0xf458, 0xf397,
+ 0xf7b7, 0xfbe0, 0xff37, 0x01df, 0x011e, 0xfda3,
+ 0xfa3b, 0xf853, 0xf8ca, 0xfa9d, 0xfc71, 0xfee6,
+ 0x01c9, 0x0308, 0x01d2, 0xff72, 0xfce6, 0xfb7a,
+ 0xfceb, 0xfed1, 0xfdd0, 0xfc83, 0xfd11, 0xfcca,
+ 0xfaa7, 0xf7e5, 0xf631, 0xf77d, 0xf9b4, 0xf9ea,
+ 0xfaa8, 0xfd2a, 0xfda4, 0xfb70, 0xf92b, 0xf6cc,
+ 0xf462, 0xf3b9, 0xf45f, 0xf59f, 0xf811, 0xfa16,
+ 0xfa67, 0xfa23, 0xf9f9, 0xfb9a, 0xff57, 0x0148,
+ 0x0117, 0x0185, 0x0187, 0x00b3, 0xffd8, 0xfe1e,
+ 0xfd0a, 0xfd87, 0xfd71, 0xfcdd, 0xfc64, 0xfc69,
+ 0xfefe, 0x0282, 0x03f0, 0x04c0, 0x05f0, 0x06e6,
+ 0x082b, 0x08e6, 0x081f, 0x067e, 0x0440, 0x025f,
+ 0x0223, 0x02f5, 0x03c5, 0x03b9, 0x02d4, 0x0234,
+ 0x011a, 0xff12, 0xff95, 0x0379, 0x05e2, 0x04c5,
+ 0x0248, 0xfee1, 0xfb35, 0xfa02, 0xfc32, 0x003e,
+ 0x0355, 0x02f0, 0x003a, 0xfdda, 0xfcef, 0xfe70,
+ 0x00e3, 0x00d4, 0xfe72, 0xfbab, 0xf8e1, 0xf6a1,
+ 0xf589, 0xf61f, 0xf7ef, 0xf8e1, 0xf954, 0xfac0,
+ 0xfb61, 0xfae6, 0xfb49, 0xfbba, 0xfb20, 0xfab6,
+ 0xfb5c, 0xfc93, 0xfd53, 0xfd07, 0xfbee, 0xfb28,
+ 0xfc3b, 0xfe25, 0xfea8, 0xff29, 0x01dc, 0x04eb,
+ 0x0503, 0x0284, 0x010e, 0x00dd, 0xffc1, 0xffeb,
+ 0x01ca, 0x0097, 0xfcde, 0xfaed, 0xfb03, 0xfcf2,
+ 0xffcf, 0x005f, 0xfe7e, 0xfbd1, 0xf8c1, 0xf77d,
+ 0xf997, 0xfb21, 0xf7e7, 0xf335, 0xf1a8, 0xf0c9,
+ 0xefe1, 0xf3ba, 0xfa1f, 0xfc31, 0xfa7e, 0xfa2d,
+ 0xfda0, 0x01c1, 0x0260, 0x01a5, 0x0212, 0x018f,
+ 0x0074, 0xff84, 0xfe03, 0xfeaa, 0x0178, 0x032f,
+ 0x0518, 0x067b, 0x0391, 0xff5b, 0xfe49, 0xfeba,
+ 0xfe20, 0xfcf7, 0xfd4d, 0xff92, 0x0283, 0x05c8,
+ 0x07fb, 0x076e, 0x064b, 0x05bb, 0x035f, 0x0041,
+ 0xffbe, 0x00f6, 0x0109, 0xff39, 0xfc57, 0xf9ea,
+ 0xf999, 0xfb50, 0xfd65, 0xfecd, 0xff25, 0xfe0b,
+ 0xfbf2, 0xfa83, 0xfaf4, 0xfbc5, 0xfb01, 0xfa89,
+ 0xfc35, 0xfdb5, 0xfd5c, 0xfc20, 0xfb01, 0xfa55,
+ 0xf8f6, 0xf6b7, 0xf5bc, 0xf685, 0xf8fd, 0xfc83,
+ 0xfdbd, 0xfd5e, 0xfe4a, 0xfd22, 0xf8fc, 0xf6f3,
+ 0xf801, 0xf9f3, 0xfaf4, 0xfa5d, 0xfb7f, 0xff36,
+ 0x0119, 0xff4c, 0xfbaa, 0xfa34, 0xfcd5, 0xfefa,
+ 0xfee0, 0xffad, 0x0017, 0xfea8, 0xfc75, 0xfa4c,
+ 0xfc70, 0x030f, 0x065c, 0x053f, 0x0481, 0x041f,
+ 0x0294, 0xffc7, 0xfdd2, 0xffac, 0x0269, 0x01ef,
+ 0xffd6, 0xfe1d, 0xfdc6, 0x0007, 0x0376, 0x0594,
+ 0x04b5, 0x0080, 0xfb9c, 0xf86a, 0xf6d0, 0xf78e,
+ 0xfaea, 0xfcfa, 0xfab4, 0xf7a5, 0xf7ad, 0xf91c,
+ 0xfa0f, 0xfa93, 0xfaf2, 0xfc82, 0xfd9b, 0xfba0,
+ 0xfa4d, 0xfc0e, 0xfde4, 0xfeff, 0xfe31, 0xfaa1,
+ 0xf891, 0xf8c9, 0xf882, 0xf8b8, 0xf929, 0xf86c,
+ 0xf83d, 0xf95a, 0xfb82, 0xfe29, 0xff45, 0xffae,
+ 0x0141, 0x0264, 0x02a7, 0x03c4, 0x04ed, 0x0482,
+ 0x0352, 0x0238, 0x00f1, 0x019c, 0x053e, 0x06fe,
+ 0x0512, 0x0370, 0x0190, 0xfde0, 0xfc31, 0xfdd5,
+ 0xff7c, 0xff1e, 0xfcfc, 0xfaf6, 0xfb44, 0xfd82,
+ 0xfed7, 0xfedd, 0xffe0, 0x0020, 0xfe02, 0xfe15,
+ 0x0034, 0xff79, 0xfdb4, 0xfd7f, 0xfe88, 0x0044,
+ 0xfeaa, 0xfb95, 0xfeaf, 0x0351, 0x0271, 0x000c,
+ 0xfe48, 0xfc5a, 0xfbb0, 0xfb84, 0xfc6a, 0xff37,
+ 0x0041, 0xfee3, 0xfe87, 0x0008, 0x01b9, 0x0258,
+ 0x035f, 0x0503, 0x042b, 0x01eb, 0x011b, 0x0028,
+ 0xfe71, 0xfc8f, 0xfacb, 0xfc07, 0x0006, 0x0274,
+ 0x0314, 0x036c, 0x0236, 0xff87, 0xfe78, 0x003c,
+ 0x01d2, 0x0196, 0x0185, 0x01ef, 0x01f0, 0x01e8,
+ 0x0162, 0x0006, 0xfe96, 0xfdef, 0xfec3, 0xff5d,
+ 0xfe52, 0xfe10, 0xff34, 0xff47, 0xfe2c, 0xfd8b,
+ 0xfe1e, 0xfef3, 0xff23, 0x0002, 0x01fe, 0x0399,
+ 0x0467, 0x0444, 0x0363, 0x0246, 0x0084, 0xff70,
+ 0x000d, 0x0034, 0xff9b, 0xff60, 0xfe86, 0xfd19,
+ 0xfc2d, 0xfc49, 0xfdf2, 0x0026, 0x0175, 0x0158,
+ 0xffc1, 0xfe41, 0xfe29, 0xff1f, 0x0096, 0x00e8,
+ 0x0011, 0x010c, 0x03c0, 0x051e, 0x039e, 0x0031,
+ 0xfe14, 0xfe46, 0xff3b, 0x01a1, 0x0478, 0x04c9,
+ 0x0350, 0x015c, 0x006d, 0x026e, 0x03e2, 0x01bd,
+ 0xff6e, 0xff67, 0x00e5, 0x0296, 0x0321, 0x02c2,
+ 0x011b, 0xfdd6, 0xfca9, 0xffea, 0x041b, 0x059d,
+ 0x04eb, 0x0482, 0x04a1, 0x043f, 0x043c, 0x04b0,
+ 0x048b, 0x041d, 0x03b2, 0x038e, 0x039f, 0x030a,
+ 0x0294, 0x01f7, 0x0026, 0xffc7, 0x0154, 0x02e2,
+ 0x0639, 0x09d3, 0x0937, 0x067f, 0x04f3, 0x041f,
+ 0x03cc, 0x049c, 0x072e, 0x0946, 0x07c0, 0x04f5,
+ 0x02b8, 0xffc2, 0xfe30, 0xfe15, 0xfcc1, 0xfcaf,
+ 0xff3e, 0x0118, 0x00a8, 0xfe46, 0xfbb9, 0xfa92,
+ 0xf974, 0xf821, 0xf712, 0xf60c, 0xf75b, 0xfab2,
+ 0xfc23, 0xfbed, 0xfc3c, 0xfe0b, 0x01a7, 0x03c5,
+ 0x029a, 0x0116, 0x0057, 0x00d3, 0x031c, 0x0434,
+ 0x036c, 0x034c, 0x0346, 0x028d, 0x01af, 0x0073,
+ 0x000b, 0x019c, 0x03f2, 0x05b4, 0x05c8, 0x03f5,
+ 0x01ca, 0x006c, 0x0024, 0x0152, 0x0339, 0x03bb,
+ 0x028c, 0x02a6, 0x04c8, 0x05b0, 0x0480, 0x025f,
+ 0xff64, 0xfdb3, 0xfef4, 0x0181, 0x04a8, 0x072f,
+ 0x067d, 0x031e, 0xff72, 0xfd8e, 0xfdd0, 0xfd29,
+ 0xfbb1, 0xfd0c, 0xffb0, 0x0029, 0xfeca, 0xfd5c,
+ 0xfe08, 0xffd1, 0xff80, 0xfed4, 0xffd1, 0x0078,
+ 0x017c, 0x047b, 0x0757, 0x07b6, 0x053b, 0x0226,
+ 0x0152, 0x025b, 0x03f9, 0x04de, 0x0325, 0x00e7,
+ 0x0152, 0x029e, 0x02fc, 0x037a, 0x045f, 0x0588,
+ 0x0747, 0x0860, 0x06fb, 0x04d9, 0x0654, 0x0acc,
+ 0x0d10, 0x0c17, 0x0b08, 0x0b37, 0x0b84, 0x0b04,
+ 0x0a91, 0x0ab5, 0x0a7f, 0x0a81, 0x0b7d, 0x0c8e,
+ 0x0e4e, 0x1060, 0x0efc, 0x09dc, 0x0588, 0x04c1,
+ 0x06af, 0x0910, 0x0aad, 0x0bc7, 0x0b9c, 0x091e,
+ 0x0608, 0x0557, 0x072d, 0x0849, 0x065f, 0x0368,
+ 0x02d7, 0x0550, 0x0815, 0x0812, 0x057b, 0x0354,
+ 0x0334, 0x0364, 0x0231, 0x0111, 0x01f9, 0x045c,
+ 0x06c7, 0x0799, 0x063a, 0x04a1, 0x02e0, 0xff79,
+ 0xfd95, 0xff85, 0x0194, 0x0293, 0x0496, 0x0611,
+ 0x057c, 0x046f, 0x036c, 0x01c7, 0x0012, 0xffc8,
+ 0x0189, 0x0370, 0x03e3, 0x04eb, 0x0760, 0x07d2,
+ 0x047b, 0x0031, 0xfe71, 0xff41, 0xff36, 0xfd60,
+ 0xfd65, 0x0029, 0x028f, 0x034a, 0x01ff, 0xfe61,
+ 0xfae6, 0xf9b6, 0xfa79, 0xfd37, 0x00ea, 0x0251,
+ 0x0098, 0xfe21, 0xfc19, 0xfa65, 0xf9c6, 0xfa06,
+ 0xf9c2, 0xf984, 0xfa10, 0xfa46, 0xfa71, 0xfc99,
+ 0x00da, 0x0442, 0x045a, 0x03da, 0x05ac, 0x065a,
+ 0x0410, 0x02cf, 0x03ad, 0x0448, 0x03bb, 0x0300,
+ 0x041b, 0x060f, 0x05e2, 0x0507, 0x0546, 0x053a,
+ 0x04c3, 0x0421, 0x0341, 0x035e, 0x0530, 0x08f1,
+ 0x0cfd, 0x0e40, 0x0dbe, 0x0d3a, 0x0be7, 0x0a6c,
+ 0x080f, 0x03e3, 0x0162, 0x0101, 0x0049, 0x0020,
+ 0x0024, 0xffd0, 0x00bb, 0x00c2, 0xfefc, 0xff41,
+ 0x017b, 0x02db, 0x030b, 0x01fa, 0x0098, 0x0136,
+ 0x0360, 0x03e7, 0x0177, 0xfe45, 0xfc7d, 0xfc69,
+ 0xfd9f, 0xff3c, 0x0197, 0x04cd, 0x05a1, 0x0376,
+ 0x021f, 0x0270, 0x0310, 0x0370, 0x02c4, 0x01aa,
+ 0x0042, 0xfdae, 0xfc33, 0xfd3a, 0xfe8f, 0xff2b,
+ 0xff35, 0xff88, 0x00f5, 0x0163, 0x008d, 0x01f9,
+ 0x05fc, 0x0966, 0x0a44, 0x0989, 0x0a06, 0x0c12,
+ 0x0cbe, 0x0a51, 0x05f9, 0x02a7, 0x0245, 0x03d4,
+ 0x0631, 0x0933, 0x0bd7, 0x0c66, 0x09dc, 0x0555,
+ 0x0155, 0xff78, 0xffd1, 0x00f2, 0x025f, 0x058e,
+ 0x091d, 0x094d, 0x0557, 0xffe7, 0xfdca, 0x0066,
+ 0x0265, 0x0126, 0xff5d, 0xfe14, 0xfe0c, 0xff07,
+ 0xfdb4, 0xfa6f, 0xf875, 0xf852, 0xf9d4, 0xfbba,
+ 0xfc60, 0xfdca, 0x015b, 0x0430, 0x04a9, 0x04ed,
+ 0x0635, 0x071c, 0x077f, 0x07db, 0x0664, 0x02ed,
+ 0xffea, 0xfeaf, 0xfffd, 0x02aa, 0x03a9, 0x0379,
+ 0x0435, 0x0607, 0x0838, 0x0805, 0x0494, 0x01c6,
+ 0x0145, 0x01e4, 0x032c, 0x0430, 0x04be, 0x0486,
+ 0x02c3, 0x012d, 0x002d, 0xff38, 0x00cf, 0x03fa,
+ 0x055f, 0x0646, 0x06cd, 0x0544, 0x03a0, 0x03ae,
+ 0x04cc, 0x04fb, 0x0332, 0x0236, 0x02a3, 0x023c,
+ 0x02e8, 0x054c, 0x0667, 0x06ba, 0x078b, 0x0831,
+ 0x07db, 0x056b, 0x0348, 0x03c6, 0x037e, 0x0276,
+ 0x03bf, 0x04fa, 0x055c, 0x0678, 0x0669, 0x0635,
+ 0x07d8, 0x07f9, 0x059b, 0x037f, 0x0262, 0x0293,
+ 0x0392, 0x0423, 0x0517, 0x0625, 0x05b1, 0x0442,
+ 0x030a, 0x0333, 0x0477, 0x03a3, 0x0153, 0x01db,
+ 0x0433, 0x04fc, 0x04aa, 0x0465, 0x04e8, 0x05c8,
+ 0x04db, 0x0318, 0x025b, 0x00bd, 0xfeb7, 0xfefc,
+ 0xffce, 0xffbc, 0x007d, 0x01bc, 0x02c9, 0x0438,
+ 0x04fd, 0x04d5, 0x053b, 0x060e, 0x06b0, 0x06b2,
+ 0x0453, 0xffab, 0xfc4a, 0xfc6e, 0xfeb2, 0x0102,
+ 0x0266, 0x02dd, 0x0312, 0x02cd, 0x009d, 0xfd13,
+ 0xfb21, 0xfc19, 0xfe37, 0xff43, 0xff29, 0xfff5,
+ 0x023d, 0x03a2, 0x0285, 0x0013, 0xfe6f, 0xfea7,
+ 0xff53, 0xfebb, 0xfd95, 0xfbe0, 0xf89f, 0xf6da,
+ 0xf9e0, 0xfea6, 0x0079, 0xffa5, 0xffcd, 0x021a,
+ 0x02b3, 0xff0a, 0xfb1e, 0xfac3, 0xfc0a, 0xfc50,
+ 0xfc64, 0xfdb2, 0xff1a, 0xffee, 0x023c, 0x0474,
+ 0x01e5, 0xfcfd, 0xfb60, 0xfc29, 0xfce3, 0xfdf4,
+ 0xffdf, 0x028e, 0x03be, 0x0143, 0xfde3, 0xfca5,
+ 0xfd90, 0x00c2, 0x0465, 0x0551, 0x03d1, 0x0170,
+ 0xff43, 0xfec6, 0xffb3, 0x010b, 0x02be, 0x03aa,
+ 0x02b7, 0x0040, 0xfd3f, 0xfb8e, 0xfbef, 0xfd13,
+ 0xfe69, 0xff09, 0xfd67, 0xfb0c, 0xfaa7, 0xfc02,
+ 0xfd06, 0xfc38, 0xfb6b, 0xfd23, 0xff21, 0xff81,
+ 0xfffe, 0xff26, 0xfbe7, 0xfab4, 0xfbe6, 0xfbb9,
+ 0xfbd3, 0xfdd6, 0xfe4b, 0xfc01, 0xf9d2, 0xf9c1,
+ 0xfaf2, 0xfb6b, 0xfb03, 0xfa72, 0xfaa3, 0xfd85,
+ 0x010f, 0x0086, 0xfdb0, 0xfd16, 0xfe5a, 0xffd2,
+ 0x0046, 0xfe5f, 0xfc01, 0xfc4e, 0xff47, 0x02b8,
+ 0x0483, 0x0494, 0x04a3, 0x0571, 0x065d, 0x0644,
+ 0x045a, 0x0187, 0xff81, 0xfefc, 0xff82, 0xff7c,
+ 0xfd7f, 0xfa7d, 0xf996, 0xfc4a, 0xff75, 0xffa2,
+ 0xfdbc, 0xfbae, 0xfa34, 0xfa23, 0xfaa4, 0xfadd,
+ 0xfca6, 0xff91, 0xffc8, 0xfd4f, 0xfc0d, 0xfcf0,
+ 0xfdf1, 0xfe6b, 0xfe2c, 0xfc39, 0xf9ad, 0xf911,
+ 0xfb21, 0xfeb4, 0x014b, 0x01ad, 0x01e0, 0x0227,
+ 0x008a, 0xfeb7, 0xfeac, 0xfec7, 0xfebc, 0xffe9,
+ 0x014f, 0x0135, 0xffd7, 0xfef6, 0xffe5, 0x025b,
+ 0x0500, 0x0552, 0x01c0, 0xfd25, 0xfb22, 0xfb50,
+ 0xfc15, 0xfd34, 0xfe2e, 0xfea7, 0xffbf, 0x01f5,
+ 0x0323, 0x01d9, 0xffe0, 0xfe01, 0xfb59, 0xf9b8,
+ 0xfb31, 0xfe36, 0x0071, 0x00dd, 0xff8f, 0xfe52,
+ 0xff08, 0x015c, 0x034e, 0x03b4, 0x0363, 0x027f,
+ 0xff92, 0xfb4f, 0xf880, 0xf877, 0xfadb, 0xfe44,
+ 0x00c0, 0x012e, 0xff7d, 0xfd27, 0xfb60, 0xf872,
+ 0xf452, 0xf352, 0xf74c, 0xfd3f, 0x01ba, 0x032c,
+ 0x02cc, 0x0221, 0x0072, 0xfeef, 0x004b, 0x0276,
+ 0x01df, 0xffd7, 0xffb8, 0x0267, 0x05dd, 0x0742,
+ 0x05ae, 0x02c4, 0x0192, 0x0368, 0x0560, 0x04ad,
+ 0x0299, 0x0183, 0x0275, 0x0490, 0x04fd, 0x031f,
+ 0x01dc, 0x02b5, 0x04db, 0x076f, 0x088d, 0x058f,
+ 0xff5d, 0xfb05, 0xfb11, 0xfc89, 0xfd6d, 0xff65,
+ 0x0266, 0x0330, 0x005f, 0xfd6d, 0xfdab, 0xfe97,
+ 0xfd17, 0xfb0c, 0xfa05, 0xf96c, 0xfa38, 0xfbcc,
+ 0xfb2d, 0xf8cc, 0xf795, 0xf861, 0xfa34, 0xfb87,
+ 0xfb6a, 0xfac9, 0xfaa3, 0xf9de, 0xf7d5, 0xf6d3,
+ 0xf7c3, 0xf7bd, 0xf650, 0xf76c, 0xfbd6, 0xff97,
+ 0x00b6, 0x00bc, 0x0014, 0xfe1d, 0xfc8a, 0xfcb4,
+ 0xfcf2, 0xfcf9, 0xfdb7, 0xfdb2, 0xfcd6, 0xfd08,
+ 0xfcc7, 0xfa83, 0xf8cb, 0xf967, 0xfb83, 0xfe0f,
+ 0xfeb3, 0xfbf4, 0xf8ee, 0xf909, 0xfb7f, 0xfe29,
+ 0xffaf, 0x0012, 0x011b, 0x0222, 0x0018, 0xfc05,
+ 0xf908, 0xf76d, 0xf727, 0xf7ec, 0xf920, 0xfc7d,
+ 0x013f, 0x02ac, 0xffca, 0xfb6d, 0xf7ed, 0xf6d8,
+ 0xf737, 0xf6fe, 0xf6e0, 0xf7b7, 0xf7f0, 0xf646,
+ 0xf4a8, 0xf61a, 0xf976, 0xfb67, 0xfc25, 0xfd4c,
+ 0xfeee, 0x0083, 0x011b, 0x00a4, 0xfffa, 0xff5e,
+ 0xff5f, 0x0038, 0x016a, 0x0206, 0x0043, 0xfd74,
+ 0xfc83, 0xfbac, 0xfb1f, 0xfd8c, 0xff0a, 0xfdce,
+ 0xfdb1, 0xfd3d, 0xfc06, 0xfd73, 0xfeb5, 0xfdac,
+ 0xfd40, 0xfdf1, 0x0012, 0x024f, 0xffdb, 0xfa2c,
+ 0xf6ce, 0xf75e, 0xfb24, 0xfe3b, 0xfd8b, 0xfc48,
+ 0xfbfe, 0xfa6d, 0xf80e, 0xf66b, 0xf66b, 0xf89c,
+ 0xfb3e, 0xfccb, 0xfdb0, 0xfe16, 0xfd99, 0xfc25,
+ 0xfb14, 0xfc3a, 0xff29, 0x01c4, 0x01c4, 0xfef6,
+ 0xfcaf, 0xfc7a, 0xfd08, 0xfefb, 0x01e0, 0x0327,
+ 0x02ae, 0x0131, 0x0000, 0x015e, 0x033f, 0x0278,
+ 0x014f, 0x0250, 0x04a5, 0x078d, 0x0a59, 0x0b80,
+ 0x0a84, 0x07cc, 0x0321, 0xfdda, 0xfbd5, 0xfdce,
+ 0x0086, 0x02da, 0x049c, 0x0498, 0x03ac, 0x02e3,
+ 0x0272, 0x0343, 0x03cf, 0x0288, 0x0181, 0x00d5,
+ 0xfef0, 0xfd1b, 0xfc7c, 0xfd58, 0xffcd, 0x01b2,
+ 0x01eb, 0x01a7, 0x00be, 0xfee7, 0xfc9d, 0xfa1c,
+ 0xf90a, 0xfa76, 0xfc3c, 0xfcfc, 0xfe5b, 0x017f,
+ 0x0470, 0x0467, 0x025c, 0x0204, 0x03e4, 0x0499,
+ 0x02c3, 0x015a, 0x0235, 0x02df, 0x0166, 0xff36,
+ 0xfe55, 0xff0d, 0xff7b, 0xfe97, 0xfebe, 0x00de,
+ 0x0266, 0x029d, 0x023d, 0x006a, 0xfda2, 0xfbb5,
+ 0xfae4, 0xfb57, 0xfcfc, 0xfdf7, 0xfdba, 0xfdee,
+ 0xfed7, 0xff07, 0xfdd7, 0xfc7e, 0xfd00, 0xfef3,
+ 0xffdf, 0xffdf, 0x0023, 0xff4f, 0xfd0b, 0xfb4d,
+ 0xfa69, 0xfa11, 0xfae5, 0xfc47, 0xfd5e, 0xfe85,
+ 0xff2b, 0xfe06, 0xfb7f, 0xf9b8, 0xfaba, 0xfe79,
+ 0x029f, 0x0508, 0x0564, 0x0466, 0x02ec, 0x01e8,
+ 0x0192, 0x0156, 0x0164, 0x0293, 0x04a0, 0x065e,
+ 0x0740, 0x0795, 0x074a, 0x0551, 0x019f, 0xfef1,
+ 0x000c, 0x032b, 0x038d, 0x0105, 0xffb2, 0x0015,
+ 0x0039, 0x0039, 0xffb0, 0xfec8, 0xffad, 0x00bb,
+ 0xff1c, 0xfd36, 0xfd93, 0xff02, 0x0013, 0x0058,
+ 0x0089, 0x0121, 0x00e1, 0xffaa, 0xfeb4, 0xfe14,
+ 0xfde0, 0xfe5a, 0xfea4, 0xfe34, 0xfe27, 0xff30,
+ 0xff7c, 0xfde5, 0xfc85, 0xfc38, 0xfbbc, 0xfafc,
+ 0xfa1e, 0xfa3b, 0xfc60, 0xfda7, 0xfd2c, 0xfe1b,
+ 0xffd0, 0x00b0, 0x01bd, 0x01f6, 0x013b, 0x0150,
+ 0x014a, 0x009e, 0x001e, 0xff75, 0xfe80, 0xfc87,
+ 0xf9e2, 0xf9b3, 0xfbc1, 0xfd31, 0xfdef, 0xfe42,
+ 0xfe96, 0xff69, 0xfe55, 0xfab1, 0xf807, 0xf7fb,
+ 0xf8d8, 0xf913, 0xf933, 0xfa26, 0xfb21, 0xfbe5,
+ 0xfcd2, 0xfd21, 0xfd35, 0xfda5, 0xfe0f, 0xff2b,
+ 0x000b, 0xffd0, 0x011c, 0x0334, 0x02fd, 0x016b,
+ 0xfec3, 0xfbc4, 0xfc10, 0xfe79, 0x003b, 0x01ef,
+ 0x019f, 0xfe68, 0xfbdc, 0xfb19, 0xfb54, 0xfc5e,
+ 0xfde5, 0x00f2, 0x042f, 0x046e, 0x03ba, 0x03d6,
+ 0x01d9, 0xfe52, 0xfc75, 0xfc67, 0xfdd6, 0x0086,
+ 0x0297, 0x033d, 0x038b, 0x041a, 0x0490, 0x0429,
+ 0x0214, 0xff60, 0xfe52, 0xfe27, 0xfcdd, 0xfc5e,
+ 0xfe27, 0xff07, 0xfcef, 0xfa9b, 0xfb63, 0xfe9b,
+ 0x00c8, 0x0145, 0x01ed, 0x026c, 0x01c4, 0x0056,
+ 0xfed8, 0xfee3, 0x00be, 0x01ef, 0x014a, 0xffac,
+ 0xfe1d, 0xfd46, 0xfbba, 0xf906, 0xf893, 0xfae7,
+ 0xfc6d, 0xfc88, 0xfc9b, 0xfd22, 0xff38, 0x020d,
+ 0x02f6, 0x02b6, 0x02e4, 0x01c5, 0xff1f, 0xfe0e,
+ 0x000e, 0x03a3, 0x05d2, 0x04d5, 0x0355, 0x0432,
+ 0x0550, 0x04ba, 0x042e, 0x04b0, 0x05d8, 0x0747,
+ 0x07b0, 0x06c3, 0x05fb, 0x056b, 0x0486, 0x0441,
+ 0x04ca, 0x05a9, 0x07dd, 0x0a81, 0x09ff, 0x0693,
+ 0x0408, 0x03a9, 0x04af, 0x05c9, 0x0595, 0x05ab,
+ 0x07cf, 0x0a6b, 0x0ca5, 0x0e2a, 0x0d19, 0x0a91,
+ 0x091b, 0x0796, 0x04b9, 0x01c9, 0x00a9, 0x02b7,
+ 0x06be, 0x0921, 0x0762, 0x02ce, 0xffef, 0x00c6,
+ 0x0250, 0x02e6, 0x03c3, 0x04c9, 0x0578, 0x0617,
+ 0x06a2, 0x071c, 0x071d, 0x065e, 0x057e, 0x04e6,
+ 0x054e, 0x0663, 0x05a1, 0x03b4, 0x03e2, 0x04fd,
+ 0x04e4, 0x0560, 0x06c5, 0x06ce, 0x05d4, 0x05d1,
+ 0x06fe, 0x08c4, 0x0a18, 0x09a6, 0x0883, 0x087b,
+ 0x07ad, 0x0455, 0x012c, 0x0137, 0x042b, 0x0766,
+ 0x0842, 0x0729, 0x0640, 0x05ab, 0x050c, 0x0522,
+ 0x0643, 0x082f, 0x09fa, 0x09e6, 0x075a, 0x03da,
+ 0x01b6, 0x0238, 0x0459, 0x055e, 0x0446, 0x03d8,
+ 0x056b, 0x0557, 0x0286, 0x0102, 0x0122, 0x0012,
+ 0xfec4, 0xfea2, 0xfee5, 0xfff7, 0x01a2, 0x0168,
+ 0xff99, 0xff82, 0x016a, 0x0341, 0x0527, 0x07a0,
+ 0x095b, 0x097f, 0x0843, 0x0675, 0x0572, 0x0582,
+ 0x05e0, 0x05af, 0x0467, 0x0365, 0x03f5, 0x0534,
+ 0x06ec, 0x0853, 0x06d7, 0x0336, 0x001f, 0xfe2d,
+ 0xfdac, 0xfd7d, 0xfbc6, 0xfa6e, 0xfba6, 0xfea9,
+ 0x022c, 0x0433, 0x0396, 0x022a, 0x01a9, 0x01f6,
+ 0x0173, 0xfe87, 0xfb24, 0xfaab, 0xfca2, 0xfe1d,
+ 0xfdc1, 0xfcb0, 0xfc62, 0xfd59, 0xffde, 0x023a,
+ 0x019f, 0xfef7, 0xfcf6, 0xfcf5, 0xff9b, 0x0205,
+ 0x00ba, 0xfee4, 0xffea, 0x00ba, 0xff48, 0xfebd,
+ 0x00ac, 0x0213, 0x0133, 0x0021, 0x004c, 0x01b0,
+ 0x036f, 0x02ed, 0x0071, 0xff54, 0xffe7, 0x01b9,
+ 0x044b, 0x045a, 0x02ac, 0x0373, 0x057c, 0x06c4,
+ 0x088e, 0x09f4, 0x0921, 0x072c, 0x069b, 0x07e5,
+ 0x0837, 0x068e, 0x0570, 0x058b, 0x060d, 0x0693,
+ 0x05fe, 0x04de, 0x048a, 0x03c0, 0x0244, 0x021b,
+ 0x03a8, 0x059a, 0x0691, 0x05fa, 0x04a3, 0x03e0,
+ 0x0466, 0x05ce, 0x06ea, 0x06eb, 0x0682, 0x0703,
+ 0x0712, 0x04c2, 0x02af, 0x0285, 0x01cc, 0x00e8,
+ 0x012a, 0x0144, 0x0208, 0x03c6, 0x0469, 0x0422,
+ 0x02a1, 0xff4b, 0xfcf8, 0xfd3c, 0xffee, 0x0432,
+ 0x0543, 0x01a9, 0xfe47, 0xfcc5, 0xfbe8, 0xfbc6,
+ 0xfc35, 0xfdbc, 0xffac, 0xff61, 0xfdbb, 0xfcab,
+ 0xfad6, 0xf827, 0xf719, 0xf8c2, 0xfb9d, 0xfd64,
+ 0xfdd5, 0xfdfa, 0xfe1e, 0xfeb4, 0xfff2, 0x00d2,
+ 0x011c, 0x0172, 0x0129, 0xff5d, 0xfdce, 0xff0c,
+ 0x0214, 0x0412, 0x0492, 0x052b, 0x0706, 0x085f,
+ 0x0656, 0x02b6, 0x0164, 0x0232, 0x0393, 0x0500,
+ 0x05b3, 0x05e9, 0x0687, 0x0761, 0x07d6, 0x07b5,
+ 0x0823, 0x09b6, 0x0aa8, 0x0a86, 0x0a73, 0x09af,
+ 0x07c1, 0x0623, 0x05dd, 0x0733, 0x0977, 0x0a9c,
+ 0x0a2d, 0x0a4e, 0x0b44, 0x0a7e, 0x081a, 0x06a0,
+ 0x0574, 0x03ad, 0x0394, 0x05e0, 0x083f, 0x08cf,
+ 0x077c, 0x05a9, 0x03f8, 0x021d, 0x0185, 0x0331,
+ 0x0572, 0x06e3, 0x07a1, 0x07ad, 0x06f1, 0x0673,
+ 0x06dd, 0x06a6, 0x055f, 0x03dd, 0x0120, 0xff26,
+ 0x015f, 0x0450, 0x048c, 0x0412, 0x03c9, 0x04f8,
+ 0x080c, 0x08c8, 0x06fc, 0x05f0, 0x044d, 0x00d0,
+ 0xfcc1, 0xfa92, 0xfd29, 0x012c, 0x01dd, 0x0199,
+ 0x013c, 0xff03, 0xfdb0, 0xfebb, 0x0036, 0x01ad,
+ 0x025a, 0x0131, 0xff2e, 0xfdf7, 0xfddb, 0xfcfc,
+ 0xfb2b, 0xfb3a, 0xfd6c, 0xffaf, 0x0127, 0x00f8,
+ 0xfe9e, 0xfb60, 0xf9c0, 0xfb0c, 0xfc85, 0xfbd0,
+ 0xfb51, 0xfcc7, 0xff12, 0x00fc, 0x0180, 0x010f,
+ 0x009c, 0xff10, 0xfc19, 0xf9d2, 0xfa89, 0xfdfc,
+ 0x00db, 0x0255, 0x047d, 0x05e0, 0x04ce, 0x02f4,
+ 0x00ca, 0xfece, 0xfec6, 0xffc4, 0x007d, 0x01d5,
+ 0x03e2, 0x0575, 0x055a, 0x03c0, 0x02b1, 0x031c,
+ 0x0438, 0x04df, 0x0327, 0xff43, 0xfd1d, 0xfe34,
+ 0xfefb, 0xfdb0, 0xfda8, 0x00bc, 0x0358, 0x0269,
+ 0x0016, 0xff70, 0xffb0, 0xfed6, 0xfd91, 0xfd35,
+ 0xfd0c, 0xfc6b, 0xfbca, 0xfbbf, 0xfcb5, 0xfd88,
+ 0xfc3a, 0xf9e4, 0xf9be, 0xfc5d, 0xff1f, 0xff5a,
+ 0xfced, 0xfa10, 0xf909, 0xfa01, 0xfbce, 0xfe71,
+ 0x0183, 0x027f, 0x011a, 0xffad, 0xfe6c, 0xfceb,
+ 0xfc34, 0xfca1, 0xfde2, 0xff4f, 0x00bf, 0x0385,
+ 0x061c, 0x0536, 0x02c0, 0x0219, 0x01ee, 0x0098,
+ 0xff4d, 0xff92, 0x016d, 0x0312, 0x02e2, 0x01d6,
+ 0x027f, 0x0534, 0x0699, 0x04d3, 0x0333, 0x03f7,
+ 0x041c, 0x0183, 0xfef1, 0xfefa, 0xfff6, 0xffea,
+ 0x003d, 0x0210, 0x0392, 0x039b, 0x034b, 0x034e,
+ 0x02e0, 0x012f, 0xfe48, 0xfbf7, 0xfcca, 0xfff1,
+ 0x01cd, 0x01fa, 0x02b9, 0x0459, 0x05cd, 0x0584,
+ 0x02a2, 0xffd0, 0xff34, 0xfeed, 0xfe20, 0xfe04,
+ 0xfe83, 0xff8e, 0x0156, 0x029a, 0x029e, 0x02b2,
+ 0x0387, 0x035c, 0x0112, 0xfeb3, 0xfe3e, 0xfe8d,
+ 0xfd54, 0xfb2c, 0xfbff, 0x0020, 0x01dd, 0xff94,
+ 0xfe4e, 0xff84, 0xfffc, 0xff01, 0xfeab, 0xffd7,
+ 0x010e, 0x010e, 0x0061, 0xffce, 0x0003, 0x01a0,
+ 0x03bc, 0x0458, 0x019f, 0xfc43, 0xf8b2, 0xf979,
+ 0xfc59, 0xff18, 0x0081, 0xffe0, 0xfe84, 0xfdce,
+ 0xfe1a, 0xff2c, 0xff8d, 0xff48, 0xff1d, 0xfd34,
+ 0xfa18, 0xf921, 0xf9d4, 0xfac9, 0xfc92, 0xfdf0,
+ 0xfe3b, 0xffc2, 0x0333, 0x05d1, 0x04c4, 0x00c3,
+ 0xfd63, 0xfcb6, 0xfe96, 0x015a, 0x020f, 0x0088,
+ 0xffe5, 0x00f1, 0x01fc, 0x030b, 0x0575, 0x0813,
+ 0x0806, 0x062b, 0x04f7, 0x0301, 0x0059, 0x0089,
+ 0x02f6, 0x0418, 0x0348, 0x023f, 0x02db, 0x0360,
+ 0x00cb, 0xfdf6, 0xfe05, 0xfedc, 0xff9f, 0x00aa,
+ 0x0119, 0x022f, 0x03e7, 0x034c, 0x0070, 0xfd7a,
+ 0xfbf5, 0xfd13, 0xfefb, 0xff04, 0xfe0c, 0xfd0b,
+ 0xfb94, 0xfab3, 0xfbac, 0xfe06, 0x0006, 0xffd0,
+ 0xfd5d, 0xfa68, 0xf784, 0xf4c3, 0xf44f, 0xf76e,
+ 0xfb45, 0xfd6b, 0xfeda, 0x002b, 0x0067, 0xfedd,
+ 0xfc18, 0xfa25, 0xf9ae, 0xf96d, 0xfa2d, 0xfc9f,
+ 0xfe41, 0xfe5c, 0xfec7, 0xff08, 0xfdca, 0xfc2e,
+ 0xfbcb, 0xfc74, 0xfd6f, 0xfe6e, 0xfe80, 0xfcf6,
+ 0xfb35, 0xfaea, 0xfc19, 0xfd92, 0xfdc5, 0xfc42,
+ 0xfa9e, 0xfadf, 0xfc9a, 0xfc5a, 0xf8d7, 0xf5b5,
+ 0xf578, 0xf778, 0xfb2f, 0xfebd, 0xfffc, 0x001f,
+ 0x002b, 0xfeb7, 0xfbd8, 0xf9b2, 0xf901, 0xf800,
+ 0xf5e4, 0xf4a4, 0xf51a, 0xf5ea, 0xf6d0, 0xf888,
+ 0xfb1d, 0xfd52, 0xfdbe, 0xfdb6, 0xff2e, 0x00cf,
+ 0x009c, 0xfeae, 0xfcb9, 0xfc7e, 0xfcc7, 0xfb8c,
+ 0xf9f7, 0xf93f, 0xf94f, 0xfafc, 0xfd9d, 0xfed0,
+ 0xfe26, 0xfd7f, 0xfe37, 0xfe95, 0xfc38, 0xf8b3,
+ 0xf768, 0xf9c2, 0xfe48, 0x00d0, 0xffa9, 0xfd57,
+ 0xfb00, 0xf914, 0xf959, 0xfb12, 0xfc43, 0xfc3e,
+ 0xfacf, 0xf9f5, 0xfb42, 0xfc28, 0xfb46, 0xfa5b,
+ 0xfa2b, 0xfa43, 0xf9a7, 0xf82f, 0xf77d, 0xf773,
+ 0xf74e, 0xf8be, 0xfb98, 0xfd2b, 0xfc90, 0xfa88,
+ 0xf944, 0xfaa0, 0xfc3c, 0xfbb5, 0xfa87, 0xf9fc,
+ 0xfa8a, 0xfc67, 0xfd29, 0xfb6c, 0xf9db, 0xfa6a,
+ 0xfd1f, 0x0167, 0x041c, 0x028a, 0xff18, 0xfcc0,
+ 0xfb39, 0xfaca, 0xfcd0, 0xffcf, 0x0077, 0xfe27,
+ 0xfbe2, 0xfc64, 0xfe4d, 0xfeea, 0xfee2, 0xffd8,
+ 0x0111, 0x01de, 0x02c0, 0x032f, 0x0225, 0x0037,
+ 0xfeb9, 0xfdec, 0xfd76, 0xfd66, 0xfdb9, 0xfe5b,
+ 0xffba, 0x012f, 0x00c8, 0xfe70, 0xfbfc, 0xfa94,
+ 0xfb2d, 0xfe4d, 0x01d1, 0x031d, 0x0249, 0x0096,
+ 0xfe7c, 0xfc29, 0xfa7a, 0xfaaa, 0xfc2c, 0xfd2d,
+ 0xfe08, 0xff97, 0x00b7, 0x0136, 0x0143, 0x0016,
+ 0xffb1, 0x021b, 0x044b, 0x03b8, 0x0250, 0x0230,
+ 0x02c7, 0x014f, 0xfde1, 0xfd2a, 0xffcf, 0x01c2,
+ 0x0259, 0x0240, 0x00d3, 0xff36, 0xfe5f, 0xfdf1,
+ 0xfe37, 0xfeef, 0xff40, 0xff0a, 0xff65, 0x01ab,
+ 0x034d, 0x00d3, 0xfd45, 0xfc84, 0xfd4e, 0xfe3f,
+ 0xff42, 0x0009, 0x014e, 0x0297, 0x01f0, 0x000d,
+ 0xff70, 0x0057, 0x016f, 0x02f2, 0x051e, 0x0597,
+ 0x0360, 0x00f4, 0xffc5, 0xff3a, 0xff03, 0xff5f,
+ 0x00a9, 0x0258, 0x0442, 0x06e6, 0x0795, 0x03b4,
+ 0xfe50, 0xfb47, 0xfb85, 0xfdd6, 0xff07, 0xfeb8,
+ 0xffff, 0x01ee, 0x0157, 0xff61, 0xfecb, 0xfffa,
+ 0x01f4, 0x03d0, 0x04b2, 0x03d5, 0x0205, 0x0107,
+ 0x0097, 0xff1f, 0xfce9, 0xfbe9, 0xfc9b, 0xfd9f,
+ 0xfee0, 0x00ad, 0x0158, 0x0074, 0xffbb, 0xfff7,
+ 0x0182, 0x038a, 0x0394, 0x01e0, 0x0104, 0x0157,
+ 0x00fe, 0xfe39, 0xf9cb, 0xf6e4, 0xf6fd, 0xf897,
+ 0xf997, 0xf993, 0xfa83, 0xfdc6, 0x01d8, 0x0446,
+ 0x0410, 0x02be, 0x019d, 0xff51, 0xfc18, 0xfb0a,
+ 0xfcc8, 0xfef4, 0xff40, 0xfda2, 0xfd02, 0xff11,
+ 0x01a7, 0x0235, 0x006e, 0xfe1c, 0xfca0, 0xfb1d,
+ 0xf9a6, 0xfa2e, 0xfc76, 0xfe1c, 0xfdf1, 0xfced,
+ 0xfcbb, 0xfd98, 0xfe19, 0xfd22, 0xfb8f, 0xfae6,
+ 0xfa9b, 0xfa17, 0xfb03, 0xfd0a, 0xfd7b, 0xfc11,
+ 0xf9f2, 0xf836, 0xf891, 0xfa7e, 0xfb7a, 0xfadf,
+ 0xf9de, 0xf9b2, 0xfa64, 0xfa8d, 0xf9d3, 0xf9bb,
+ 0xfac9, 0xfb7e, 0xfaf9, 0xfa77, 0xfb30, 0xfc62,
+ 0xfcb8, 0xfc96, 0xfd50, 0xfe03, 0xfd6c, 0xfdb4,
+ 0xffbd, 0x0052, 0xfef6, 0xfe54, 0xfea9, 0xfe64,
+ 0xfd14, 0xfc57, 0xfdbf, 0xff66, 0xff16, 0xfdf3,
+ 0xfd64, 0xfd33, 0xfcb5, 0xfc59, 0xfd72, 0xfeca,
+ 0xfec1, 0xff25, 0x0073, 0x0102, 0x0138, 0x0182,
+ 0x014c, 0x00ce, 0x005d, 0x00ce, 0x024a, 0x02e8,
+ 0x0195, 0xff23, 0xfd5f, 0xfd5c, 0xfd82, 0xfdb5,
+ 0x0006, 0x02e9, 0x042b, 0x04f0, 0x053c, 0x03dd,
+ 0x01ec, 0x0186, 0x0282, 0x029c, 0x01bd, 0x015f,
+ 0x006e, 0xfe8d, 0xfda2, 0xfe07, 0xff11, 0xff5f,
+ 0xfd7f, 0xfb7a, 0xfbc0, 0xfdb1, 0xffd3, 0x007b,
+ 0xffc1, 0xfff9, 0x019d, 0x03a7, 0x04fb, 0x0462,
+ 0x0370, 0x03e5, 0x0428, 0x03b9, 0x03e4, 0x042a,
+ 0x03b2, 0x0334, 0x03ce, 0x04e7, 0x04fa, 0x04a1,
+ 0x0565, 0x074a, 0x093c, 0x09c4, 0x092c, 0x089a,
+ 0x06ee, 0x03bd, 0x00bf, 0xff2c, 0x005b, 0x0395,
+ 0x0529, 0x0493, 0x0485, 0x0615, 0x07ad, 0x068a,
+ 0x0397, 0x027b, 0x025f, 0x00ef, 0xff8d, 0xfff8,
+ 0x025c, 0x04f3, 0x04e0, 0x02a6, 0x010c, 0x00b2,
+ 0x00b8, 0x0125, 0x02e2, 0x0501, 0x0502, 0x035f,
+ 0x022c, 0x0188, 0x016d, 0x0242, 0x03db, 0x0574,
+ 0x05c8, 0x0569, 0x056b, 0x0447, 0x0207, 0x0176,
+ 0x030d, 0x04d8, 0x058a, 0x05dd, 0x06bb, 0x0678,
+ 0x04c6, 0x0443, 0x047f, 0x035b, 0x01cc, 0x017c,
+ 0x02b6, 0x044b, 0x049d, 0x0471, 0x0530, 0x060a,
+ 0x0540, 0x0217, 0xfe6b, 0xfcd1, 0xfd22, 0xfe90,
+ 0x00da, 0x024d, 0x0226, 0x021e, 0x02cd, 0x031c,
+ 0x0314, 0x03b7, 0x04b8, 0x0547, 0x0587, 0x0525,
+ 0x03b0, 0x01d3, 0x0093, 0x0137, 0x0302, 0x02b0,
+ 0x0071, 0xff33, 0xff20, 0xffb1, 0x001d, 0xfefd,
+ 0xfe47, 0xffdd, 0x01b5, 0x02c2, 0x038a, 0x03fd,
+ 0x049b, 0x052e, 0x04b2, 0x036b, 0x025b, 0x029f,
+ 0x042a, 0x0487, 0x025d, 0x0005, 0xffcb, 0x0044,
+ 0xff50, 0xfdf7, 0xfdcf, 0xfedd, 0x0073, 0x006d,
+ 0xfe4f, 0xfd21, 0xfd83, 0xfe14, 0xff6b, 0x00b0,
+ 0x00a0, 0x0056, 0x004a, 0x00fb, 0x02f3, 0x0405,
+ 0x0313, 0x018d, 0xffc4, 0xfdbf, 0xfcd7, 0xfe70,
+ 0x01a1, 0x02bd, 0x00c9, 0xff38, 0xff80, 0xfff0,
+ 0xfff2, 0x0017, 0x0017, 0xff52, 0xfebc, 0xff5a,
+ 0x0027, 0x004e, 0xffd5, 0xff07, 0xffbd, 0x0221,
+ 0x0334, 0x022b, 0x00cf, 0x0033, 0x008d, 0x00fb,
+ 0x00fb, 0x0164, 0x0243, 0x0360, 0x047f, 0x049a,
+ 0x03e6, 0x0348, 0x02c6, 0x0282, 0x0256, 0x02c3,
+ 0x04bc, 0x0621, 0x04d3, 0x02ad, 0x0136, 0xffb1,
+ 0xfdfc, 0xfd1c, 0xfd9e, 0xfe6f, 0xfed4, 0xfff1,
+ 0x01ed, 0x038a, 0x0436, 0x03be, 0x02dc, 0x032a,
+ 0x048e, 0x0541, 0x0465, 0x02a7, 0x008a, 0xfebe,
+ 0xff11, 0x00d1, 0x0162, 0x01dc, 0x0340, 0x037e,
+ 0x0354, 0x0439, 0x04b0, 0x0471, 0x03cd, 0x026b,
+ 0x0178, 0x0199, 0x02ac, 0x04bd, 0x063d, 0x06c3,
+ 0x074d, 0x06a0, 0x04da, 0x0491, 0x059a, 0x063e,
+ 0x0613, 0x04cd, 0x02ec, 0x020b, 0x0244, 0x022e,
+ 0x0146, 0xffe1, 0xfe48, 0xfd61, 0xfcf3, 0xfbe3,
+ 0xfbec, 0xfdec, 0xff18, 0xffa6, 0x01bf, 0x03ff,
+ 0x0566, 0x0660, 0x0697, 0x06c2, 0x06ab, 0x04ec,
+ 0x027e, 0x00ad, 0xffe1, 0x004d, 0x00c3, 0x017b,
+ 0x0392, 0x04f4, 0x04e0, 0x05db, 0x0783, 0x0791,
+ 0x0694, 0x05aa, 0x03d7, 0x010b, 0x0000, 0x01a6,
+ 0x030a, 0x024c, 0x015f, 0x0318, 0x070f, 0x0967,
+ 0x091d, 0x094d, 0x0a52, 0x0998, 0x06c3, 0x0453,
+ 0x0465, 0x0560, 0x050f, 0x048a, 0x043e, 0x0358,
+ 0x0327, 0x03fa, 0x04c4, 0x0615, 0x07fe, 0x097f,
+ 0x09cd, 0x0887, 0x06d6, 0x0579, 0x042c, 0x0454,
+ 0x0655, 0x0832, 0x0907, 0x08f3, 0x0868, 0x07aa,
+ 0x058a, 0x033d, 0x0426, 0x06f2, 0x07d7, 0x0739,
+ 0x0730, 0x0764, 0x06da, 0x05f8, 0x054c, 0x050e,
+ 0x0595, 0x0658, 0x06b9, 0x06e9, 0x0647, 0x04d1,
+ 0x03e0, 0x0379, 0x036e, 0x03d6, 0x038a, 0x0333,
+ 0x043b, 0x05a1, 0x06fd, 0x07b3, 0x0614, 0x03ed,
+ 0x032c, 0x0292, 0x02c5, 0x04bd, 0x065c, 0x0651,
+ 0x04d5, 0x027f, 0x0149, 0x01da, 0x0260, 0x01d8,
+ 0x0039, 0xfd6d, 0xfb33, 0xfb56, 0xfb98, 0xf9f4,
+ 0xf951, 0xfbb3, 0xfe8f, 0xffcc, 0x00bb, 0x0428,
+ 0x08d4, 0x08a8, 0x0337, 0xfedd, 0xfcd7, 0xfaa3,
+ 0xf98c, 0xfafb, 0xfe0a, 0x0158, 0x0301, 0x0265,
+ 0x00ca, 0x0005, 0x0117, 0x01a6, 0xffa0, 0xfe40,
+ 0xffdd, 0x011f, 0xff3b, 0xfbea, 0xfa99, 0xfc0e,
+ 0xfd28, 0xfc17, 0xfbc0, 0xfe19, 0x007a, 0x00d9,
+ 0x00d2, 0x0175, 0x0162, 0x0027, 0xffd3, 0x01bd,
+ 0x03f0, 0x047f, 0x04cd, 0x057c, 0x04b4, 0x029b,
+ 0x00b2, 0xff6a, 0xff48, 0xff9d, 0xfeb8, 0xfd23,
+ 0xfc04, 0xfba1, 0xfc5a, 0xfd44, 0xfd71, 0xfe09,
+ 0xff51, 0x0062, 0x017a, 0x0227, 0x0147, 0xffc6,
+ 0xff41, 0xffda, 0x013c, 0x0295, 0x028e, 0x01a1,
+ 0x0133, 0x00e0, 0x0042, 0xfffe, 0x0055, 0x012d,
+ 0x0164, 0x0038, 0xff08, 0xfd64, 0xfa70, 0xf934,
+ 0xfa57, 0xfaf0, 0xfb4e, 0xfbfd, 0xfbcc, 0xfb70,
+ 0xfb82, 0xfc59, 0xfe7e, 0x0010, 0x0016, 0xff0f,
+ 0xfc4e, 0xfa01, 0xfacd, 0xfc6b, 0xfd3c, 0xfde9,
+ 0xfe23, 0xfed7, 0x00b1, 0x0212, 0x024b, 0x0125,
+ 0xfe2e, 0xfb37, 0xfa68, 0xfaf3, 0xfb44, 0xfbc4,
+ 0xfcaf, 0xfcda, 0xfd06, 0xfe7e, 0xffb8, 0x001a,
+ 0x00bc, 0x015e, 0x024d, 0x0358, 0x0258, 0x0022,
+ 0xfff0, 0x01ef, 0x036b, 0x0223, 0xff96, 0xfef0,
+ 0xffb7, 0x003c, 0x00ac, 0x00bb, 0x0039, 0xff80,
+ 0xfe90, 0xfedb, 0x00f7, 0x01f6, 0x0017, 0xfd95,
+ 0xfcfb, 0xfe38, 0xffad, 0x00ed, 0x0287, 0x041f,
+ 0x04f7, 0x04c5, 0x0403, 0x039e, 0x02f5, 0x0063,
+ 0xfccc, 0xfb67, 0xfd0a, 0xfeb8, 0xfe8c, 0xfdb9,
+ 0xfd19, 0xfcfb, 0xfdf8, 0xff9e, 0x0180, 0x02cf,
+ 0x0205, 0x00c7, 0x015d, 0x01ac, 0xffd6, 0xfd4b,
+ 0xfbef, 0xfcf6, 0xff27, 0xfffc, 0xffe8, 0xffd9,
+ 0xfeb6, 0xfd07, 0xfc98, 0xfe15, 0x0184, 0x0552,
+ 0x06ea, 0x0628, 0x04b3, 0x03a8, 0x036e, 0x030b,
+ 0x01e6, 0x01f5, 0x03a1, 0x0458, 0x0386, 0x0251,
+ 0x015c, 0x01c0, 0x02ae, 0x0274, 0x02ca, 0x04b9,
+ 0x06a7, 0x07ea, 0x0722, 0x0419, 0x0277, 0x02df,
+ 0x0226, 0xff51, 0xfb96, 0xf9fb, 0xfc61, 0xff22,
+ 0xff55, 0xff6e, 0x00b3, 0x00e5, 0xff0b, 0xfd69,
+ 0xfe46, 0x0163, 0x0517, 0x0650, 0x0358, 0x0014,
+ 0xfff4, 0x015d, 0x02f2, 0x03c8, 0x035b, 0x0373,
+ 0x0302, 0x0062, 0xfee3, 0xffc1, 0x0066, 0x0003,
+ 0xfed5, 0xfe40, 0xff2c, 0xff32, 0xfe3a, 0xfe6f,
+ 0xfedd, 0xff44, 0x0165, 0x04a0, 0x068d, 0x058e,
+ 0x0290, 0x000e, 0xfec4, 0xfea6, 0xffb8, 0x015b,
+ 0x036e, 0x0465, 0x0241, 0xff3d, 0xfea7, 0x00f6,
+ 0x04b0, 0x06e8, 0x069d, 0x0542, 0x02bc, 0xffd7,
+ 0xff0d, 0xff9c, 0xff67, 0xfe7e, 0xfd9d, 0xfcdc,
+ 0xfb5b, 0xf8f5, 0xf7b4, 0xf8d6, 0xfac4, 0xfb1f,
+ 0xfa53, 0xfaf9, 0xfc15, 0xfb17, 0xfa40, 0xfb88,
+ 0xfcc7, 0xfce8, 0xfc4c, 0xfb63, 0xfb47, 0xfb92,
+ 0xfbb0, 0xfcdd, 0xfe58, 0xfd7b, 0xfa8c, 0xf8c2,
+ 0xf9f0, 0xfc1c, 0xfcfa, 0xfd57, 0xfe3d, 0xfe8e,
+ 0xfd1b, 0xfa69, 0xf867, 0xf855, 0xf95f, 0xfa4c,
+ 0xfb44, 0xfcfb, 0xfe97, 0xfe56, 0xfcbe, 0xfbcf,
+ 0xfc09, 0xfca0, 0xfc37, 0xfa6e, 0xf8e4, 0xf8cb,
+ 0xf9d1, 0xfab2, 0xfa70, 0xfafa, 0xfd8b, 0xffb3,
+ 0x019c, 0x0415, 0x0376, 0x0052, 0xffdd, 0x0111,
+ 0x0086, 0xfef7, 0xfd23, 0xfaf2, 0xf906, 0xf80a,
+ 0xf8ee, 0xfb8d, 0xfe96, 0x018f, 0x036a, 0x02fc,
+ 0x0110, 0xfe49, 0xfbd4, 0xfcc5, 0x007c, 0x02db,
+ 0x03c4, 0x0531, 0x0648, 0x0684, 0x05d7, 0x02a4,
+ 0xfe6c, 0xfca5, 0xfc76, 0xfce4, 0xff73, 0x01e1,
+ 0x010f, 0xfefc, 0xfd8a, 0xfbe5, 0xfab8, 0xfb22,
+ 0xfc4d, 0xfcef, 0xfc1c, 0xf9e6, 0xf820, 0xf85e,
+ 0xfa0f, 0xfbc1, 0xfcc1, 0xfd40, 0xfdc2, 0xfe3f,
+ 0xfe10, 0xfd18, 0xfc4d, 0xfc7b, 0xfd0d, 0xfcb2,
+ 0xfb8a, 0xfb34, 0xfc0f, 0xfcab, 0xfbe8, 0xfa4f,
+ 0xf98a, 0xf9bd, 0xf8fa, 0xf781, 0xf876, 0xfc76,
+ 0xfff1, 0xffdb, 0xfd49, 0xfb7f, 0xfb80, 0xfb6c,
+ 0xfa2e, 0xf9c8, 0xfc59, 0xffe3, 0x0105, 0xffd9,
+ 0xfda1, 0xfb2f, 0xfa6a, 0xfb3e, 0xfbff, 0xfdc9,
+ 0x0128, 0x0365, 0x02e5, 0x00fb, 0x0005, 0x00cd,
+ 0x0173, 0x0120, 0x0131, 0x025c, 0x0420, 0x04c5,
+ 0x0390, 0x0253, 0x00d6, 0xfd7b, 0xf9b4, 0xf70c,
+ 0xf695, 0xf98e, 0xfd14, 0xfe6b, 0xffb5, 0x0192,
+ 0x0250, 0x019d, 0xffe0, 0xff40, 0x0103, 0x0219,
+ 0x00de, 0xff37, 0xfe3d, 0xfdcb, 0xfce3, 0xfb60,
+ 0xfb28, 0xfc79, 0xfe23, 0xffe7, 0x00b6, 0xffe0,
+ 0xfdff, 0xfb4d, 0xf990, 0xfb23, 0xff20, 0x027f,
+ 0x0296, 0xffae, 0xfd2e, 0xfca8, 0xfd7c, 0xfef5,
+ 0xff90, 0xffd3, 0x0157, 0x020c, 0x00d4, 0xffe0,
+ 0xff8b, 0xff6b, 0xffc6, 0xffcc, 0xff97, 0xffac,
+ 0xff63, 0xff14, 0xfed0, 0xfd79, 0xfb92, 0xfa56,
+ 0xfa54, 0xfc02, 0xfe64, 0x004b, 0x021d, 0x02ee,
+ 0x0156, 0xff6d, 0xff74, 0x0028, 0x0072, 0x011b,
+ 0x01cd, 0x01e2, 0x020d, 0x0255, 0x023b, 0x01db,
+ 0x00d8, 0xff81, 0xff0c, 0xfe88, 0xfc57, 0xf9dc,
+ 0xf949, 0xfa51, 0xfb64, 0xfc74, 0xfe56, 0xfff0,
+ 0xffd2, 0xff20, 0xff3f, 0x001b, 0x0166, 0x025d,
+ 0x0213, 0x0098, 0xfec0, 0xfdc6, 0xfddf, 0xfe06,
+ 0xfe8f, 0x0023, 0x01be, 0x029d, 0x0230, 0xffba,
+ 0xfcde, 0xfb60, 0xfa46, 0xf98d, 0xfa8b, 0xfc9f,
+ 0xfe9f, 0x003b, 0x012e, 0x016d, 0x0056, 0xfdd1,
+ 0xfc21, 0xfc0f, 0xfbbe, 0xfb47, 0xfbae, 0xfc3a,
+ 0xfc9d, 0xfca9, 0xfbd8, 0xfb3a, 0xfb85, 0xfbaf,
+ 0xfb8d, 0xfb71, 0xfaf0, 0xfa65, 0xfa94, 0xfb2b,
+ 0xfbc5, 0xfcc8, 0xfe17, 0xfeba, 0xfe87, 0xfd90,
+ 0xfb6b, 0xf972, 0xf8e5, 0xf833, 0xf7b3, 0xf9e2,
+ 0xfd51, 0xfef6, 0xfe87, 0xfcdc, 0xfb74, 0xfbae,
+ 0xfd2a, 0xff23, 0x0046, 0xff40, 0xfd94, 0xfd1e,
+ 0xfd3a, 0xfd58, 0xfd81, 0xfd7d, 0xfd99, 0xfdae,
+ 0xfcda, 0xfb24, 0xf9ce, 0xfa28, 0xfc24, 0xfe36,
+ 0xfed5, 0xfdef, 0xfd99, 0xff43, 0x00c2, 0x0012,
+ 0xfed1, 0xfeca, 0xff72, 0xffa2, 0xff87, 0x001c,
+ 0x00eb, 0x00b6, 0xffd4, 0xff7e, 0x0037, 0x00c2,
+ 0xff54, 0xfdb7, 0xfe98, 0xffc5, 0xfe85, 0xfbb9,
+ 0xf8b7, 0xf74d, 0xf90a, 0xfc0c, 0xfe2c, 0xff99,
+ 0x007e, 0x0144, 0x01f9, 0x00c0, 0xfd7a, 0xfb4b,
+ 0xfc14, 0xfeb2, 0x015f, 0x0335, 0x03fc, 0x0371,
+ 0x01b0, 0x004e, 0x00b2, 0x01c0, 0x017a, 0x0000,
+ 0xff21, 0xff80, 0xff53, 0xfd1a, 0xfaf9, 0xfbdc,
+ 0xfe52, 0xff14, 0xfe49, 0xfe0f, 0xfe90, 0xfee6,
+ 0xff38, 0xffbc, 0xffd0, 0xff56, 0xfec9, 0xfe67,
+ 0xfeac, 0xffd1, 0x015d, 0x02cd, 0x02a3, 0xffff,
+ 0xfd71, 0xfd55, 0xfea6, 0x006a, 0x02bd, 0x052d,
+ 0x06d6, 0x066a, 0x040c, 0x0273, 0x02ef, 0x0396,
+ 0x030d, 0x0286, 0x0303, 0x037e, 0x03aa, 0x0472,
+ 0x0539, 0x0583, 0x05f6, 0x05ef, 0x0626, 0x0854,
+ 0x0a49, 0x09ef, 0x08de, 0x0807, 0x07c7, 0x0810,
+ 0x06a6, 0x03c2, 0x0253, 0x02a0, 0x038b, 0x0415,
+ 0x0360, 0x02e1, 0x039d, 0x041c, 0x0415, 0x03d7,
+ 0x031a, 0x032b, 0x047c, 0x04f1, 0x039c, 0x01d2,
+ 0x00e8, 0x00b6, 0x0054, 0x0073, 0x0286, 0x0585,
+ 0x06ce, 0x059e, 0x041a, 0x0416, 0x03c4, 0x014a,
+ 0xff0f, 0xff89, 0x00f6, 0x00f9, 0x0044, 0x006e,
+ 0x010d, 0x0097, 0xff39, 0xfeec, 0x00a5, 0x02a8,
+ 0x02b2, 0x014c, 0x00d7, 0x0157, 0x00ea, 0xffe9,
+ 0xffb2, 0xff40, 0xfdb8, 0xfcc6, 0xfd65, 0xfeb5,
+ 0x0044, 0x01c8, 0x021d, 0x010e, 0x003a, 0x00c8,
+ 0x013d, 0xffdc, 0xfe21, 0xfed4, 0x01ba, 0x03bc,
+ 0x0220, 0xfdac, 0xfa97, 0xfbce, 0xff86, 0x01db,
+ 0x0167, 0x0070, 0x0135, 0x0219, 0x011e, 0x006c,
+ 0x01f8, 0x0370, 0x02d3, 0x0180, 0x0146, 0x024d,
+ 0x035a, 0x0354, 0x02e4, 0x02b2, 0x0243, 0x0225,
+ 0x02fd, 0x03f8, 0x046d, 0x03b1, 0x01ff, 0x01d5,
+ 0x0358, 0x0429, 0x04ab, 0x0502, 0x03b2, 0x02e1,
+ 0x04a7, 0x0692, 0x0706, 0x070c, 0x071e, 0x0686,
+ 0x0481, 0x0261, 0x01b5, 0x0136, 0x00a6, 0x0106,
+ 0x00a0, 0xff45, 0xff19, 0xfee4, 0xfd51, 0xfc31,
+ 0xfc8a, 0xfe35, 0x0023, 0x0037, 0xff60, 0x000a,
+ 0x012f, 0x015d, 0x0141, 0x00eb, 0x002e, 0xff8f,
+ 0xff02, 0xfe9c, 0xff17, 0x0037, 0x009e, 0xff9e,
+ 0xfe01, 0xfcec, 0xfc9f, 0xfc8d, 0xfc6c, 0xfcbf,
+ 0xfdb8, 0xfe47, 0xfdc6, 0xfd31, 0xfd8d, 0xfed0,
+ 0xffee, 0xffc1, 0xff2f, 0x0005, 0x0167, 0x0206,
+ 0x029e, 0x02b8, 0x016b, 0x003c, 0xffbd, 0xff1d,
+ 0xff4f, 0x001f, 0xffeb, 0xffd2, 0x0181, 0x03df,
+ 0x04f4, 0x03e0, 0x0167, 0xfedb, 0xfd45, 0xfe0e,
+ 0x0068, 0x015a, 0x00e1, 0x004f, 0xff71, 0xff81,
+ 0x010c, 0x01c9, 0x0108, 0xffc3, 0xfec3, 0xff51,
+ 0x00ea, 0x01b2, 0x01de, 0x0266, 0x0342, 0x0389,
+ 0x025b, 0x0096, 0xff89, 0xff65, 0xffba, 0xff40,
+ 0xfeaa, 0x004b, 0x022c, 0x0171, 0xfff3, 0xffa3,
+ 0x005f, 0x00ef, 0xff7f, 0xfdfc, 0xff50, 0x0193,
+ 0x02e1, 0x0326, 0x01e7, 0x00e0, 0x0125, 0x00f6,
+ 0x00d8, 0x0173, 0x013e, 0x00ab, 0x004a, 0xffc5,
+ 0x00c6, 0x0339, 0x03f0, 0x0257, 0x0108, 0x013d,
+ 0x0129, 0xffbd, 0xfee7, 0xff67, 0xffac, 0xff91,
+ 0xffb3, 0x0022, 0x008e, 0xffad, 0xfdec, 0xfda2,
+ 0xfead, 0xffa2, 0x00b0, 0x01f1, 0x034c, 0x04f9,
+ 0x0637, 0x05d8, 0x03f2, 0x027b, 0x032a, 0x0471,
+ 0x03cf, 0x01f1, 0x0100, 0x012c, 0x0107, 0x0011,
+ 0xff7d, 0x00a9, 0x0360, 0x053a, 0x04be, 0x0483,
+ 0x06a3, 0x08e1, 0x091c, 0x0753, 0x0423, 0x0193,
+ 0x0181, 0x03e8, 0x0778, 0x0963, 0x0831, 0x0590,
+ 0x02dc, 0x0159, 0x024d, 0x03df, 0x048d, 0x0580,
+ 0x0682, 0x0661, 0x049e, 0x01cd, 0x00a3, 0x01b9,
+ 0x0291, 0x039d, 0x0645, 0x0946, 0x0b4d, 0x0a6f,
+ 0x0614, 0x023f, 0x0135, 0x00fd, 0x014c, 0x0300,
+ 0x053b, 0x06a5, 0x0627, 0x044b, 0x0337, 0x0332,
+ 0x028d, 0x00fb, 0xfff4, 0x0083, 0x021e, 0x0359,
+ 0x0369, 0x02d1, 0x025d, 0x01e4, 0x0137, 0x00d5,
+ 0x013e, 0x02ce, 0x0463, 0x03af, 0x017d, 0x006a,
+ 0x0086, 0x0105, 0x0152, 0x00ea, 0x018c, 0x0400,
+ 0x05d7, 0x0643, 0x05e9, 0x043e, 0x021e, 0x011f,
+ 0x0126, 0x01f3, 0x032a, 0x0362, 0x01c6, 0xff68,
+ 0xfe00, 0xfd78, 0xfcc9, 0xfcee, 0xfefe, 0x0148,
+ 0x017a, 0xff66, 0xfcc3, 0xfb08, 0xfaa1, 0xfb89,
+ 0xfcc3, 0xfda9, 0xfec4, 0xfec4, 0xfcca, 0xfbc3,
+ 0xfd12, 0xff08, 0x0074, 0xffd2, 0xfde1, 0xfe88,
+ 0x0126, 0x01dd, 0x00b1, 0xff19, 0xfd3e, 0xfba6,
+ 0xfbb8, 0xfe9d, 0x027e, 0x04b5, 0x0619, 0x0717,
+ 0x0686, 0x0559, 0x0384, 0x009a, 0xff79, 0x00a0,
+ 0x0192, 0x0277, 0x03a2, 0x0439, 0x0426, 0x02b2,
+ 0x0045, 0xff4e, 0x0081, 0x02fd, 0x0494, 0x0251,
+ 0xfdba, 0xfb6d, 0xfc58, 0xfe80, 0x0008, 0x0005,
+ 0xff75, 0xff9e, 0x0052, 0x00e7, 0x00a1, 0xff49,
+ 0xfd65, 0xfb3e, 0xf9c4, 0xfa42, 0xfc0a, 0xfdbb,
+ 0xff0f, 0xffae, 0xff83, 0xff60, 0xff4c, 0xfed5,
+ 0xfe6b, 0xfded, 0xfc7e, 0xfab8, 0xfa27, 0xfb98,
+ 0xfed2, 0x0199, 0x01b3, 0x00be, 0x0120, 0x01c8,
+ 0x0174, 0x00e0, 0x00cc, 0x0195, 0x0254, 0x0162,
+ 0xffec, 0x000e, 0x0107, 0x01b0, 0x01f9, 0x0171,
+ 0x008c, 0x0058, 0x00a2, 0x00f9, 0x0119, 0x00f3,
+ 0x0163, 0x0245, 0x0262, 0x02af, 0x0468, 0x0650,
+ 0x0786, 0x0834, 0x07da, 0x0677, 0x0438, 0x00ad,
+ 0xfd75, 0xfd67, 0xffbd, 0x0102, 0x005b, 0xff6a,
+ 0xfe34, 0xfbd9, 0xf9b9, 0xf94a, 0xf9f7, 0xfba8,
+ 0xfe2d, 0xff72, 0xfeca, 0xfdef, 0xfe24, 0xff6f,
+ 0x006a, 0xffc2, 0xfe99, 0xfd9e, 0xfbd7, 0xfae1,
+ 0xfc71, 0xfe1c, 0xfe05, 0xfd7f, 0xfdd3, 0xff8e,
+ 0x01d5, 0x0246, 0x0119, 0x00c6, 0x0102, 0x0085,
+ 0x0063, 0x00f9, 0x004f, 0xfde3, 0xfc60, 0xfde0,
+ 0x0051, 0x0084, 0xfee3, 0xfd31, 0xfb86, 0xfa39,
+ 0xf9c0, 0xf99d, 0xfa54, 0xfc42, 0xfdf8, 0xff07,
+ 0x0020, 0x0106, 0x0167, 0x00fc, 0xffad, 0xfeb0,
+ 0xfead, 0xfee6, 0xff51, 0x0014, 0x00f8, 0x01e6,
+ 0x0232, 0x01c7, 0x01ad, 0x0169, 0xfff0, 0xfe1d,
+ 0xfd13, 0xfd81, 0xffe3, 0x02c2, 0x043e, 0x0538,
+ 0x070a, 0x0878, 0x0867, 0x07be, 0x06c1, 0x051e,
+ 0x03cf, 0x0313, 0x01bd, 0x0033, 0xffda, 0x00b9,
+ 0x020e, 0x02f6, 0x0336, 0x038e, 0x03b4, 0x02b3,
+ 0x01bd, 0x022b, 0x0265, 0x00da, 0xff34, 0xffcd,
+ 0x029f, 0x055a, 0x056f, 0x0382, 0x02dd, 0x0375,
+ 0x024f, 0xff9b, 0xfd14, 0xfb10, 0xfae2, 0xfce4,
+ 0xfe82, 0xfec4, 0xfe8b, 0xfdcb, 0xfd11, 0xfd1c,
+ 0xfd1f, 0xfd00, 0xfdd4, 0xff15, 0xfeec, 0xfda0,
+ 0xfd97, 0xfee0, 0xff62, 0xff32, 0xff2b, 0xfed6,
+ 0xfec0, 0xffb5, 0x0126, 0x02b9, 0x0397, 0x02ab,
+ 0x0113, 0xfff5, 0xfeb0, 0xfdda, 0xfed1, 0x00e3,
+ 0x02a1, 0x034d, 0x0224, 0xff62, 0xfd35, 0xfcf8,
+ 0xfd2a, 0xfc57, 0xfbed, 0xfe3f, 0x024e, 0x042f,
+ 0x02e7, 0x0183, 0x0113, 0xffea, 0xfe27, 0xfd71,
+ 0xfe55, 0xffa4, 0xff3a, 0xfcc8, 0xfa49, 0xf90d,
+ 0xf960, 0xface, 0xfc05, 0xfcd7, 0xfdb4, 0xfe18,
+ 0xfe65, 0xff68, 0xfffe, 0xfeee, 0xfcd4, 0xfb2d,
+ 0xfaf7, 0xfbb7, 0xfc11, 0xfb0b, 0xf905, 0xf846,
+ 0xf9b2, 0xfae0, 0xfb02, 0xfc4b, 0xff50, 0x024a,
+ 0x038b, 0x0306, 0x024c, 0x01c6, 0x00aa, 0xffe9,
+ 0x009b, 0x01f7, 0x02e3, 0x0297, 0x0126, 0xffff,
+ 0xffa3, 0xff09, 0xfd9e, 0xfbdb, 0xfabb, 0xfab6,
+ 0xfb1b, 0xfb85, 0xfc85, 0xfe2a, 0xff71, 0xff94,
+ 0xff56, 0xfff1, 0x0118, 0x01be, 0x01eb, 0x024d,
+ 0x027f, 0x0146, 0xff49, 0xfea4, 0xfeab, 0xfd8f,
+ 0xfc99, 0xfcb4, 0xfc2c, 0xfad4, 0xf9d8, 0xf906,
+ 0xf85f, 0xf876, 0xf905, 0xf9d0, 0xfb03, 0xfc05,
+ 0xfbed, 0xfb12, 0xfabd, 0xfb42, 0xfbfb, 0xfcb6,
+ 0xfd99, 0xfeca, 0x0036, 0x00d3, 0x0040, 0x0039,
+ 0x01e5, 0x0411, 0x050f, 0x0439, 0x0263, 0x013a,
+ 0x0138, 0x0145, 0x00bf, 0x006e, 0x0107, 0x0208,
+ 0x0282, 0x0219, 0x014d, 0x0116, 0x018b, 0x024c,
+ 0x03d3, 0x05ae, 0x062d, 0x0500, 0x0298, 0xff0a,
+ 0xfb8b, 0xf9aa, 0xfa5b, 0xfdef, 0x01ff, 0x033e,
+ 0x01fd, 0x0078, 0xffcf, 0x001e, 0x0050, 0xffe6,
+ 0x006d, 0x025b, 0x03fe, 0x040f, 0x0280, 0x0024,
+ 0xfde5, 0xfc77, 0xfd20, 0x0024, 0x039f, 0x0576,
+ 0x045f, 0x0127, 0xff2c, 0xff42, 0xfe5b, 0xfc21,
+ 0xfb7f, 0xfc68, 0xfc52, 0xfbaa, 0xfd12, 0x0045,
+ 0x0283, 0x02b2, 0x017e, 0x0006, 0xff86, 0xff9d,
+ 0xff27, 0xfeaa, 0xfe86, 0xfe57, 0xfeae, 0xff5d,
+ 0xff59, 0xff8a, 0x00e1, 0x01c7, 0x00f8, 0xffb6,
+ 0xff06, 0xfda7, 0xfad6, 0xf87a, 0xf7fc, 0xf80b,
+ 0xf79b, 0xf7c0, 0xf989, 0xfc01, 0xfd2a, 0xfc88,
+ 0xfbbc, 0xfc40, 0xfd6d, 0xfd84, 0xfc7f, 0xfbdd,
+ 0xfbe3, 0xfbe9, 0xfbca, 0xfb28, 0xf9e2, 0xf886,
+ 0xf76d, 0xf6fe, 0xf799, 0xf961, 0xfc79, 0xfec8,
+ 0xfd87, 0xfae7, 0xfac5, 0xfc24, 0xfc43, 0xfb0d,
+ 0xfa5b, 0xfb6f, 0xfc63, 0xfaf0, 0xf8f0, 0xf8c5,
+ 0xf9e3, 0xfb7d, 0xfcf2, 0xfd88, 0xfe54, 0x006f,
+ 0x0288, 0x02be, 0x0147, 0x008e, 0x019c, 0x01aa,
+ 0xff0a, 0xfcb2, 0xfd04, 0xfe70, 0xff36, 0xffcc,
+ 0x00c4, 0x00b7, 0xfe0b, 0xfa3b, 0xf852, 0xf911,
+ 0xfab6, 0xfac5, 0xf86f, 0xf607, 0xf5a8, 0xf6c2,
+ 0xf875, 0xfa2f, 0xfb86, 0xfd45, 0xfef3, 0xfeab,
+ 0xfd58, 0xfd1c, 0xfdb6, 0xfe6b, 0xfee0, 0xfe90,
+ 0xfe34, 0xfe13, 0xfc88, 0xf9e2, 0xf94f, 0xfb7f,
+ 0xfd29, 0xfcbc, 0xfc82, 0xfdbc, 0xff02, 0xffab,
+ 0x001b, 0x0090, 0x014a, 0x01cb, 0x0193, 0x0157,
+ 0x011e, 0x0021, 0xfe5a, 0xfc07, 0xfac8, 0xfca8,
+ 0xffe1, 0x0179, 0x020f, 0x0295, 0x0202, 0x0080,
+ 0xff8f, 0xff8a, 0xff92, 0xfeb4, 0xfcc9, 0xfaf4,
+ 0xfac5, 0xfbfb, 0xfc9d, 0xfbe7, 0xfb25, 0xfbbb,
+ 0xfd17, 0xfccf, 0xfa7a, 0xf8a7, 0xf863, 0xf936,
+ 0xfb3e, 0xfd30, 0xfd9c, 0xfd62, 0xfd73, 0xfde2,
+ 0xfe02, 0xfcb7, 0xfb48, 0xfb99, 0xfcba, 0xfd89,
+ 0xfe16, 0xfe62, 0xfe5a, 0xfd48, 0xfc32, 0xfd69,
+ 0xfeb1, 0xfd38, 0xfbd8, 0xfcd5, 0xfec1, 0x00af,
+ 0x01f5, 0x01b6, 0xfff2, 0xfd88, 0xfcbe, 0xfe63,
+ 0x002f, 0x00e8, 0x00d9, 0xffd4, 0xfe16, 0xfbfb,
+ 0xfa37, 0xfa14, 0xfb96, 0xfe0a, 0x0050, 0x0060,
+ 0xfe80, 0xfcb9, 0xfb47, 0xfa01, 0xf92b, 0xf8ff,
+ 0xfa2a, 0xfb61, 0xfae8, 0xfab9, 0xfc78, 0xfebd,
+ 0x0093, 0x0149, 0x004f, 0xfeb6, 0xfd35, 0xfbda,
+ 0xfafe, 0xfa78, 0xfa5b, 0xfad9, 0xfbae, 0xfd3a,
+ 0xfee6, 0xffe0, 0x01f8, 0x04cd, 0x048f, 0x01c7,
+ 0xffc2, 0xfe91, 0xfe5d, 0x0046, 0x02ce, 0x0407,
+ 0x045e, 0x050c, 0x0630, 0x06a3, 0x0546, 0x0240,
+ 0xff30, 0xfddb, 0xfe20, 0xfee9, 0x0013, 0x016e,
+ 0x0310, 0x0520, 0x057e, 0x0342, 0x0137, 0x0053,
+ 0xff0d, 0xfdbb, 0xfda1, 0xfeb6, 0xffc0, 0xffd7,
+ 0xffe4, 0x004e, 0x000f, 0xffa4, 0x0021, 0x0151,
+ 0x0246, 0x0195, 0xff8e, 0xfea1, 0xff59, 0x0056,
+ 0x00c8, 0x009f, 0x00e1, 0x01fd, 0x02da, 0x02f9,
+ 0x01f5, 0xff9d, 0xfd63, 0xfc38, 0xfc0d, 0xfcbb,
+ 0xfda5, 0xff88, 0x027f, 0x03f4, 0x03d8, 0x03a1,
+ 0x023a, 0x007f, 0x0083, 0x01a2, 0x03b7, 0x0592,
+ 0x03e3, 0xffee, 0xfe11, 0xff25, 0x00f5, 0x012a,
+ 0xfffd, 0xff86, 0xff9e, 0xff1e, 0xfe12, 0xfcad,
+ 0xfc7d, 0xfed1, 0x01cb, 0x0370, 0x036d, 0x0216,
+ 0x00ab, 0xffbd, 0xfefd, 0xfeb5, 0xfdef, 0xfb88,
+ 0xf973, 0xf991, 0xfaeb, 0xfc4f, 0xfda7, 0xfeeb,
+ 0xff2d, 0xfd64, 0xfab6, 0xf959, 0xf990, 0xfa7c,
+ 0xfbc3, 0xfd27, 0xfdec, 0xfcf7, 0xfb16, 0xfb54,
+ 0xfdb9, 0xfef6, 0xfed4, 0xff5b, 0xffc1, 0xfe7b,
+ 0xfc4f, 0xfabe, 0xfa2d, 0xfa22, 0xfaf8, 0xfdfa,
+ 0x02bf, 0x06e9, 0x084c, 0x0672, 0x0353, 0x0121,
+ 0xffda, 0xff12, 0xff11, 0xffd7, 0x0164, 0x037c,
+ 0x050e, 0x04e0, 0x02b6, 0x0033, 0xfef4, 0xfe86,
+ 0xfe67, 0xfebe, 0xff7a, 0x0129, 0x0367, 0x0407,
+ 0x028e, 0x00bb, 0x001c, 0x00b1, 0x00e8, 0x0033,
+ 0xff92, 0xff44, 0xff28, 0xfe8e, 0xfcea, 0xfcac,
+ 0xff12, 0x015c, 0x02d1, 0x0465, 0x04fb, 0x045f,
+ 0x037b, 0x02a5, 0x0262, 0x01cb, 0x0075, 0x00b4,
+ 0x022e, 0x0206, 0x00f3, 0x00a5, 0x0063, 0xfff4,
+ 0x0033, 0x0175, 0x0310, 0x033c, 0x0166, 0xff9a,
+ 0xfefe, 0xfec2, 0xff8a, 0x022c, 0x047f, 0x04bb,
+ 0x047d, 0x055f, 0x06a0, 0x068d, 0x04a5, 0x0277,
+ 0x0140, 0x007e, 0x00a3, 0x0312, 0x06e6, 0x0964,
+ 0x092b, 0x0748, 0x0593, 0x04dc, 0x04a3, 0x0416,
+ 0x0323, 0x0203, 0x0092, 0xffd3, 0x00d9, 0x022e,
+ 0x025a, 0x01b5, 0x004f, 0xfefa, 0xff83, 0x013b,
+ 0x01d5, 0x014d, 0x01b8, 0x0349, 0x0361, 0x013a,
+ 0xff2a, 0xfed1, 0xffed, 0x00d6, 0x0085, 0x008e,
+ 0x014b, 0x0137, 0x014a, 0x01e2, 0x016d, 0x012c,
+ 0x0278, 0x03da, 0x0458, 0x03e1, 0x0349, 0x0401,
+ 0x050f, 0x04a6, 0x0303, 0x016c, 0x00f6, 0x00f9,
+ 0x001f, 0xff1b, 0xfe26, 0xfc6a, 0xfb7d, 0xfd15,
+ 0xff5a, 0xff62, 0xfda1, 0xfd8d, 0xffd5, 0x014d,
+ 0x0082, 0xff6d, 0x0073, 0x02d5, 0x0364, 0x029d,
+ 0x02d9, 0x0281, 0x0106, 0x006d, 0xffd9, 0xfea4,
+ 0xfe02, 0xfd85, 0xfda4, 0xff67, 0x0135, 0x01de,
+ 0x01a8, 0x00f5, 0x00ff, 0x0202, 0x029d, 0x024d,
+ 0x01de, 0x02c5, 0x0556, 0x07ab, 0x0856, 0x0772,
+ 0x0598, 0x041e, 0x0419, 0x057e, 0x076b, 0x0851,
+ 0x07fc, 0x0776, 0x0634, 0x03cb, 0x01c6, 0x0152,
+ 0x0235, 0x0341, 0x0344, 0x028f, 0x01d6, 0x0170,
+ 0x021b, 0x0399, 0x04ed, 0x05b3, 0x04ce, 0x024d,
+ 0x00d9, 0x009e, 0xffdd, 0xffb5, 0x00c0, 0x0198,
+ 0x02bc, 0x045d, 0x050b, 0x04b4, 0x03d1, 0x03a3,
+ 0x056b, 0x064e, 0x046c, 0x038f, 0x0562, 0x06f5,
+ 0x0621, 0x02fd, 0xffe1, 0xfe81, 0xfd70, 0xfc78,
+ 0xfcc5, 0xfd78, 0xfe1d, 0xff6a, 0x01ba, 0x04eb,
+ 0x06fa, 0x06d5, 0x06d7, 0x080a, 0x0922, 0x0997,
+ 0x0974, 0x08ec, 0x0770, 0x0445, 0x00f8, 0xfef7,
+ 0xfdd8, 0xfd6f, 0xfdae, 0xff08, 0x012a, 0x01e5,
+ 0x0248, 0x0490, 0x05f2, 0x055b, 0x065e, 0x092f,
+ 0x0a99, 0x08c0, 0x0409, 0xfe92, 0xfa02, 0xf762,
+ 0xf797, 0xf967, 0xfabd, 0xfb10, 0xfb21, 0xfbeb,
+ 0xfcec, 0xfdeb, 0x001b, 0x0205, 0x0214, 0x0274,
+ 0x03c2, 0x046e, 0x049c, 0x0513, 0x060f, 0x05ba,
+ 0x0222, 0xfe82, 0xfdf0, 0xfe8b, 0xfe7a, 0xfd35,
+ 0xfb9e, 0xfb5a, 0xfa5e, 0xf858, 0xf962, 0xfc9a,
+ 0xff07, 0x0227, 0x05d1, 0x07f0, 0x085a, 0x069d,
+ 0x038e, 0x0170, 0xffd3, 0xfda8, 0xfc7b, 0xfe1f,
+ 0x0145, 0x027f, 0x00e6, 0xfe2b, 0xfba9, 0xfb27,
+ 0xfd82, 0x0109, 0x0400, 0x051b, 0x03fa, 0x028a,
+ 0x01c3, 0x00c9, 0xff94, 0xfe07, 0xfbf0, 0xfa5d,
+ 0xfa0e, 0xfb36, 0xfdd6, 0x007b, 0x01f1, 0x02ce,
+ 0x0321, 0x027a, 0x0203, 0x0292, 0x02fb, 0x0266,
+ 0x0121, 0x0036, 0x0181, 0x051a, 0x0830, 0x0834,
+ 0x050b, 0x0136, 0xff17, 0xfe48, 0xfe84, 0xffea,
+ 0x00bd, 0x010e, 0x0213, 0x026d, 0x01e2, 0x0189,
+ 0x0161, 0x01e1, 0x01c8, 0x006e, 0x0137, 0x03ad,
+ 0x04d8, 0x0673, 0x07d7, 0x061f, 0x02ed, 0xffe2,
+ 0xfdab, 0xfc90, 0xfabc, 0xfa27, 0xfcf0, 0xfee6,
+ 0xff14, 0x0008, 0x00f0, 0x028b, 0x059f, 0x07cc,
+ 0x0856, 0x0685, 0x02e8, 0x0186, 0x0164, 0xff17,
+ 0xfd15, 0xfd92, 0xff51, 0x013a, 0x0261, 0x030e,
+ 0x03e2, 0x045e, 0x04da, 0x0510, 0x0415, 0x0354,
+ 0x03f6, 0x0522, 0x0605, 0x05df, 0x0467, 0x0216,
+ 0x0045, 0x00e4, 0x0315, 0x0426, 0x0420, 0x0404,
+ 0x03fc, 0x04dc, 0x0650, 0x0644, 0x0401, 0x011e,
+ 0xffd7, 0x00bb, 0x0204, 0x0213, 0x01b9, 0x025e,
+ 0x02c2, 0x011a, 0xfeef, 0xfee4, 0x010d, 0x02f5,
+ 0x0245, 0x0026, 0xfec8, 0xfd93, 0xfc39, 0xfb45,
+ 0xfa6c, 0xfa98, 0xfb62, 0xfa63, 0xf8e6, 0xf92b,
+ 0xfa48, 0xfb28, 0xfab8, 0xf951, 0xf9f6, 0xfc47,
+ 0xfd35, 0xfccc, 0xfc53, 0xfcb8, 0xfe70, 0xffb6,
+ 0xff64, 0xfec7, 0xfe8c, 0xfde0, 0xfc14, 0xfa28,
+ 0xf913, 0xf7f5, 0xf75d, 0xf8fc, 0xfbe0, 0xff1d,
+ 0x02b5, 0x0577, 0x0708, 0x0711, 0x04ca, 0x0227,
+ 0x0083, 0xfeab, 0xfd1d, 0xfc6e, 0xfc1d, 0xfcb1,
+ 0xfd52, 0xfc97, 0xfad9, 0xf85d, 0xf733, 0xf9ed,
+ 0xfda2, 0xff04, 0xffac, 0x00b8, 0x0187, 0x0185,
+ 0xff6a, 0xfbc2, 0xf95c, 0xf96c, 0xfab8, 0xfb3c,
+ 0xfb0b, 0xfbfc, 0xfc9c, 0xfa78, 0xf795, 0xf6e0,
+ 0xf8e6, 0xfc4b, 0xfdec, 0xfd65, 0xfe00, 0xff84,
+ 0xfeba, 0xfc22, 0xfac3, 0xfb6b, 0xfc53, 0xfc31,
+ 0xfc1b, 0xfd7a, 0xffa2, 0x0067, 0xfef2, 0xfd64,
+ 0xfd61, 0xfdaa, 0xfd65, 0xfcf9, 0xfcc0, 0xfd88,
+ 0xff33, 0x0074, 0x00d0, 0xffb9, 0xfd1d, 0xfb50,
+ 0xfbf7, 0xfd9d, 0xfea7, 0xffb7, 0x01a5, 0x036c,
+ 0x03b5, 0x025c, 0x009a, 0x0071, 0x00e1, 0xff33,
+ 0xfddb, 0xffe5, 0x0226, 0x023d, 0x01a8, 0x0082,
+ 0xfe9d, 0xfcf8, 0xfbf2, 0xfb73, 0xfb07, 0xfae9,
+ 0xfc5b, 0xfeca, 0x00c2, 0x0274, 0x043f, 0x05e2,
+ 0x06ba, 0x0677, 0x0603, 0x05d5, 0x04f5, 0x02cc,
+ 0x0069, 0xff5e, 0xfe59, 0xfb43, 0xf84c, 0xf724,
+ 0xf637, 0xf703, 0xfb25, 0xff3c, 0x00f3, 0x014e,
+ 0x0144, 0x0198, 0x029d, 0x04c1, 0x07b6, 0x089f,
+ 0x0697, 0x0360, 0xfe94, 0xf9ab, 0xf87f, 0xf916,
+ 0xf83d, 0xf885, 0xfa9d, 0xfaed, 0xf957, 0xf907,
+ 0xfb2c, 0xfe6b, 0x00fc, 0x027b, 0x02d5, 0x0142,
+ 0xfe9a, 0xfc6e, 0xfa89, 0xf937, 0xf870, 0xf5f9,
+ 0xf233, 0xf040, 0xf08b, 0xf1ba, 0xf321, 0xf4a0,
+ 0xf656, 0xf7c9, 0xf95a, 0xfc16, 0xfebe, 0x0077,
+ 0x01b7, 0x013e, 0xff9a, 0xfec0, 0xfd52, 0xfafb,
+ 0xfa0f, 0xfab6, 0xfb13, 0xf99b, 0xf827, 0xfa34,
+ 0xfd3a, 0xfd71, 0xfcde, 0xfcf7, 0xfdc7, 0x007a,
+ 0x0329, 0x039f, 0x0316, 0x02c3, 0x0281, 0x00aa,
+ 0xfcf8, 0xfada, 0xfb1a, 0xfbbb, 0xfc92, 0xfc29,
+ 0xfa6d, 0xfa8e, 0xfbdc, 0xfc40, 0xfc6a, 0xfca7,
+ 0xfe59, 0x0192, 0x0248, 0x0034, 0xfe7b, 0xfd4c,
+ 0xfcf4, 0xfddc, 0xfe45, 0xfdcf, 0xfd89, 0xfd50,
+ 0xfc1b, 0xf9e8, 0xf8aa, 0xf823, 0xf61c, 0xf4e5,
+ 0xf76d, 0xfb3f, 0xfe22, 0x0116, 0x0455, 0x066e,
+ 0x06cc, 0x06f7, 0x06e3, 0x0411, 0xffbd, 0xfd8e,
+ 0xfd68, 0xfd84, 0xfcca, 0xfb1f, 0xfac3, 0xfc71,
+ 0xfe4b, 0xfffd, 0x01b1, 0x03e5, 0x0698, 0x05cb,
+ 0x0133, 0xff11, 0xff6f, 0xfedd, 0xff93, 0x00d8,
+ 0xff76, 0xfed3, 0x011b, 0x027c, 0x0163, 0xffed,
+ 0xffc9, 0x003b, 0xfff6, 0xffe4, 0xff58, 0xfcf6,
+ 0xfc34, 0xfddd, 0xfd99, 0xfc39, 0xfc85, 0xfcb1,
+ 0xfb95, 0xfa5c, 0xfab4, 0xfcd2, 0xfd49, 0xfaf9,
+ 0xf92c, 0xf952, 0xfbd2, 0x000e, 0x0213, 0x00ba,
+ 0xfe68, 0xfb96, 0xf904, 0xf8c8, 0xfa6f, 0xfb31,
+ 0xfa2b, 0xfa04, 0xfc10, 0xfef2, 0x02e7, 0x0663,
+ 0x0598, 0x024c, 0xfff7, 0xfda4, 0xfb34, 0xf9f6,
+ 0xf9a6, 0xf9c8, 0xf9a4, 0xf9a7, 0xfc23, 0x009c,
+ 0x031a, 0x0188, 0xff3a, 0x00bb, 0x046a, 0x0573,
+ 0x042c, 0x0457, 0x0707, 0x099b, 0x0a3a, 0x0b0a,
+ 0x0cca, 0x0ce2, 0x0b80, 0x0a66, 0x09be, 0x0a19,
+ 0x0a53, 0x0870, 0x071d, 0x08e8, 0x0a53, 0x083d,
+ 0x05a9, 0x05ca, 0x0713, 0x0891, 0x0b1a, 0x0c22,
+ 0x09b3, 0x0649, 0x03f3, 0x0328, 0x032c, 0x020b,
+ 0x0070, 0xffff, 0x0029, 0x00a0, 0x0095, 0xff77,
+ 0xfe8e, 0xfd3f, 0xfba0, 0xfc51, 0xfe1d, 0xffae,
+ 0x0257, 0x02f4, 0xfec1, 0xf828, 0xf0fb, 0xecd1,
+ 0xeee8, 0xf173, 0xef44, 0xeb99, 0xe881, 0xe5d7,
+ 0xe486, 0xe275, 0xdeac, 0xdd24, 0xde86, 0xddfc,
+ 0xd815, 0xce42, 0xc6ff, 0xc8aa, 0xd293, 0xdec0,
+ 0xe68e, 0xe547, 0xdb92, 0xce80, 0xc3f1, 0xc02f,
+ 0xc223, 0xc593, 0xc8dc, 0xcb35, 0xcd11, 0xd0d3,
+ 0xd476, 0xd4e8, 0xd49b, 0xd5a6, 0xd8b5, 0xdf85,
+ 0xe7ab, 0xed2d, 0xf016, 0xf0b1, 0xef3c, 0xed60,
+ 0xecb4, 0xef32, 0xf390, 0xf4cc, 0xf309, 0xf2db,
+ 0xf631, 0xfc6d, 0x01cf, 0x027b, 0x013d, 0x01c7,
+ 0x03c8, 0x08af, 0x1092, 0x1629, 0x17a9, 0x17b0,
+ 0x162d, 0x13f2, 0x142f, 0x14da, 0x115b, 0x0c04,
+ 0x0a44, 0x0b3a, 0x0b09, 0x0a5d, 0x0b71, 0x0dcf,
+ 0x1054, 0x125d, 0x14bf, 0x18d4, 0x1c67, 0x1d5e,
+ 0x1d6e, 0x1c7f, 0x1a22, 0x1a33, 0x1e23, 0x2146,
+ 0x1f24, 0x1974, 0x1571, 0x1315, 0x10bf, 0x1224,
+ 0x17bb, 0x1ea2, 0x2624, 0x29e5, 0x293c, 0x2a69,
+ 0x2ae4, 0x2755, 0x24d8, 0x2378, 0x2288, 0x2373,
+ 0x2128, 0x1d1b, 0x1cee, 0x1af5, 0x15a6, 0x12c0,
+ 0x113f, 0x10e9, 0x12de, 0x1430, 0x151e, 0x15fe,
+ 0x15af, 0x1590, 0x1334, 0x0da2, 0x0b14, 0x0cf3,
+ 0x0fcc, 0x12a6, 0x142e, 0x13b2, 0x120f, 0x0ee2,
+ 0x0acb, 0x08bb, 0x09f3, 0x0abb, 0x085c, 0x064c,
+ 0x05af, 0x0525, 0x0719, 0x0973, 0x0830, 0x070e,
+ 0x07f0, 0x098f, 0x0cad, 0x0e08, 0x0c36, 0x0a9c,
+ 0x07c2, 0x0383, 0x019a, 0x0171, 0x024b, 0x036a,
+ 0x02d3, 0x0388, 0x0573, 0x02d7, 0xfdfb, 0xfccd,
+ 0xfe2f, 0xff5b, 0xffba, 0xff57, 0xfed5, 0xfdef,
+ 0xfba8, 0xf8f3, 0xf732, 0xf526, 0xf2f1, 0xf3e8,
+ 0xf74b, 0xfa5d, 0xfe2a, 0x0064, 0xfd69, 0xf943,
+ 0xf817, 0xf8eb, 0xfa16, 0xfa1d, 0xfa80, 0xfd4d,
+ 0xffd8, 0x011a, 0x0266, 0x01e5, 0xfedf, 0xfa98,
+ 0xf578, 0xf112, 0xef1c, 0xf00f, 0xf361, 0xf6f6,
+ 0xf8e5, 0xf7bf, 0xf3ea, 0xf1bb, 0xf39a, 0xf76f,
+ 0xfaf6, 0xfcee, 0xfe2e, 0xffaa, 0x0054, 0x00d2,
+ 0x0056, 0xfcfa, 0xfb50, 0xfd22, 0xfcb6, 0xfabe,
+ 0xfaf5, 0xfa43, 0xf79f, 0xf765, 0xfa7a, 0xfd86,
+ 0xffdc, 0x02a7, 0x033e, 0x00ce, 0xfe78, 0xfa1c,
+ 0xf32e, 0xf095, 0xf1df, 0xf106, 0xef61, 0xeeef,
+ 0xedf4, 0xecbf, 0xece8, 0xee9e, 0xf08b, 0xf13b,
+ 0xf050, 0xee3e, 0xecf4, 0xed77, 0xef03, 0xf264,
+ 0xf70e, 0xfb55, 0xfe90, 0xfc0f, 0xf37a, 0xedc7,
+ 0xec38, 0xeba6, 0xef9b, 0xf66b, 0xfc24, 0x021f,
+ 0x038a, 0xfcb5, 0xf553, 0xf1c9, 0xf03c, 0xf0db,
+ 0xf2f9, 0xf5ac, 0xfa3c, 0xff47, 0x00ba, 0xfecc,
+ 0xfe78, 0x010b, 0x036e, 0x0501, 0x050c, 0x0158,
+ 0xfbbe, 0xf7f5, 0xf7ec, 0xfad0, 0xfc75, 0xfbcf,
+ 0xfb19, 0xf965, 0xf79f, 0xf8d1, 0xfafd, 0xfc98,
+ 0xff10, 0x00b4, 0xff5e, 0xfbbf, 0xf848, 0xf843,
+ 0xfbcb, 0xff63, 0x0075, 0xfec9, 0xfd55, 0xff35,
+ 0x0128, 0xff2a, 0xfc55, 0xfb89, 0xfa84, 0xf907,
+ 0xf824, 0xf615, 0xf3f1, 0xf4e6, 0xf78f, 0xfa72,
+ 0xfe33, 0x0195, 0x04b4, 0x081b, 0x08ae, 0x0587,
+ 0x019f, 0xff8a, 0x0115, 0x043d, 0x053d, 0x05f5,
+ 0x08b9, 0x0b72, 0x0d58, 0x0eff, 0x0f92, 0x0da1,
+ 0x07d9, 0x008a, 0xfc1e, 0xfad9, 0xfc04, 0x0029,
+ 0x04f5, 0x078d, 0x073e, 0x054b, 0x0555, 0x0741,
+ 0x06e3, 0x04d2, 0x02aa, 0xff3c, 0xfce0, 0xfda3,
+ 0x002a, 0x04a2, 0x0890, 0x087b, 0x06b9, 0x0454,
+ 0x014b, 0x015a, 0x02a5, 0x00e6, 0xfea9, 0xfca4,
+ 0xf969, 0xf85f, 0xfaff, 0xfe29, 0xff42, 0xfdcd,
+ 0xfc3a, 0xfc8e, 0xfd9c, 0xfe8a, 0xffc9, 0x00ed,
+ 0xffa8, 0xfb78, 0xf86e, 0xf699, 0xf2e4, 0xf1ef,
+ 0xf659, 0xfabb, 0xfe52, 0x023b, 0x03a9, 0x02dd,
+ 0x01b9, 0x0095, 0xffb8, 0xfef3, 0xff69, 0x004d,
+ 0xfed2, 0xfd98, 0xfe9b, 0xff19, 0xff3f, 0xff12,
+ 0xfd43, 0xfb3c, 0xf8ff, 0xf77e, 0xf8ba, 0xf9e5,
+ 0xfa69, 0xfc7f, 0xfe91, 0x00cb, 0x03e2, 0x0548,
+ 0x055c, 0x057a, 0x0582, 0x0691, 0x080c, 0x0817,
+ 0x0678, 0x0475, 0x045b, 0x0545, 0x0480, 0x01dd,
+ 0xfd78, 0xfa9c, 0xfc5a, 0xfd9f, 0xfce7, 0xfe82,
+ 0x0022, 0xff3d, 0xfda0, 0xfc5c, 0xfcdd, 0xfd68,
+ 0xfc2b, 0xfc5b, 0xfccb, 0xfbde, 0xfcfb, 0xfe10,
+ 0xfdf5, 0x0058, 0x0255, 0x0253, 0x0383, 0x03f4,
+ 0x0342, 0x0410, 0x04f6, 0x0536, 0x04fd, 0x037d,
+ 0x01de, 0x0023, 0xfddc, 0xfc82, 0xfbf8, 0xfbbd,
+ 0xfb94, 0xfa40, 0xf8df, 0xf8dd, 0xf92b, 0xf9a2,
+ 0xfa59, 0xfa36, 0xf915, 0xf7e3, 0xf78c, 0xf892,
+ 0xfb04, 0xfde3, 0xff1e, 0xfe39, 0xfc5a, 0xfa8c,
+ 0xf9a5, 0xf905, 0xf8c5, 0xfa9f, 0xfca2, 0xfd11,
+ 0xfe8c, 0x009c, 0x0165, 0x020a, 0x016b, 0xff1a,
+ 0xfe59, 0xffac, 0x01ef, 0x04aa, 0x0535, 0x0230,
+ 0xfe23, 0xfb74, 0xfad2, 0xfc1a, 0xfdb5, 0xfd7f,
+ 0xfc82, 0xfd6b, 0xff8b, 0x0123, 0x0197, 0x0092,
+ 0x0077, 0x0251, 0x0281, 0x00a6, 0xff8a, 0xfefa,
+ 0xfe80, 0xfe94, 0xff12, 0xff94, 0x0040, 0x030d,
+ 0x06fb, 0x0772, 0x054d, 0x03e8, 0x02c6, 0x015b,
+ 0xfef4, 0xfc0f, 0xfbe5, 0xfdce, 0xff1f, 0xff4a,
+ 0xfdcb, 0xfcbf, 0xfd35, 0xfcc2, 0xfd17, 0xffb3,
+ 0x0279, 0x0535, 0x062a, 0x04d3, 0x04fe, 0x057c,
+ 0x03a1, 0x009d, 0xfd17, 0xfb70, 0xfbe3, 0xfb34,
+ 0xfb83, 0xfdb6, 0xff55, 0x0216, 0x049f, 0x050e,
+ 0x06d6, 0x0872, 0x0765, 0x0570, 0x0213, 0x000f,
+ 0x01f4, 0x031c, 0x0360, 0x044f, 0x0203, 0xfe41,
+ 0xfdd1, 0xff7e, 0x00d3, 0x00c1, 0x0005, 0x000b,
+ 0x00d8, 0x02ba, 0x02ec, 0xff01, 0xfc39, 0xfc81,
+ 0xfc5a, 0xfe34, 0x026a, 0x0420, 0x046e, 0x04e4,
+ 0x02f5, 0xfffe, 0xfe52, 0xfcdd, 0xfd23, 0x012d,
+ 0x045c, 0x0302, 0x01b9, 0x0312, 0x03c0, 0x042d,
+ 0x0686, 0x0887, 0x0826, 0x06bd, 0x05ed, 0x04ea,
+ 0x0294, 0x0054, 0xfed7, 0xfdf0, 0xfefb, 0x0061,
+ 0x004a, 0x00ed, 0x01a1, 0x003d, 0xfe7a, 0xfd85,
+ 0xfdad, 0xfef3, 0x003e, 0x0275, 0x04a2, 0x03ab,
+ 0x00cf, 0xfdb2, 0xfb22, 0xfb08, 0xfb8c, 0xfbc2,
+ 0xfdb2, 0xff56, 0xffeb, 0x010c, 0x0177, 0x01e5,
+ 0x021d, 0xff7c, 0xfd56, 0xfe9a, 0x0189, 0x05b5,
+ 0x07fe, 0x059a, 0x01f3, 0xfef8, 0xfd66, 0xfeb2,
+ 0xffbc, 0xfe62, 0xfcd9, 0xfca8, 0xfe27, 0x0007,
+ 0x01a1, 0x03e3, 0x04cd, 0x04d6, 0x0718, 0x082a,
+ 0x06c7, 0x0785, 0x08c1, 0x079f, 0x0661, 0x0561,
+ 0x040d, 0x02de, 0x020d, 0x02bc, 0x031b, 0x014a,
+ 0x010c, 0x02ac, 0x024e, 0x019f, 0x01ec, 0x0039,
+ 0xfcf6, 0xfaf0, 0xfac8, 0xfb7a, 0xfc28, 0xfda9,
+ 0xff19, 0xfd9f, 0xfb5f, 0xfb31, 0xfa8e, 0xf8dc,
+ 0xf7f6, 0xf6df, 0xf5c3, 0xf60a, 0xf7ba, 0xfbdc,
+ 0x00ae, 0x0135, 0xfdda, 0xfa6b, 0xf845, 0xf786,
+ 0xf646, 0xf34f, 0xf241, 0xf508, 0xf992, 0xfefc,
+ 0x03e0, 0x0652, 0x06f7, 0x061c, 0x0422, 0x032a,
+ 0x02d4, 0x01e4, 0x011c, 0xff86, 0xfcec, 0xfc06,
+ 0xfc78, 0xfca0, 0xfd7b, 0xfe13, 0xfd3f, 0xfd1c,
+ 0xfdab, 0xfd0d, 0xfc02, 0xfbbe, 0xfc98, 0xfec9,
+ 0x0103, 0x0168, 0x009c, 0x00de, 0x00ba, 0xfcf1,
+ 0xf8a7, 0xf8b0, 0xfb84, 0xfe96, 0x0099, 0x0085,
+ 0x0033, 0xffa3, 0xfe05, 0xfee2, 0x015f, 0x01c5,
+ 0x02a8, 0x04ee, 0x0646, 0x067f, 0x045c, 0x014b,
+ 0x0007, 0xfec2, 0xfecf, 0x01cc, 0x0428, 0x05f2,
+ 0x0708, 0x05e5, 0x065a, 0x076d, 0x066b, 0x073d,
+ 0x07b3, 0x0661, 0x08ef, 0x0b0b, 0x08d6, 0x0845,
+ 0x0840, 0x0722, 0x0878, 0x09f9, 0x0ae9, 0x0c72,
+ 0x0b96, 0x0a15, 0x0945, 0x066a, 0x048f, 0x058e,
+ 0x076c, 0x0a57, 0x0b15, 0x0901, 0x0937, 0x09ab,
+ 0x07a2, 0x066f, 0x05c5, 0x0558, 0x0684, 0x0634,
+ 0x044f, 0x0441, 0x052f, 0x05bf, 0x0656, 0x0751,
+ 0x08f3, 0x09ca, 0x09ba, 0x0a46, 0x0a8f, 0x0b04,
+ 0x0c01, 0x0a7c, 0x0770, 0x0517, 0x01a7, 0xff2a,
+ 0xff97, 0xff9e, 0xffd3, 0x0166, 0x017d, 0x0157,
+ 0x02db, 0x0442, 0x04e8, 0x0421, 0x0261, 0x011b,
+ 0xfe30, 0xfa59, 0xf8fb, 0xf977, 0xfc3b, 0xff3a,
+ 0xfde0, 0xfcbd, 0xfde9, 0xfc5a, 0xfb67, 0xfc2d,
+ 0xf960, 0xf6cb, 0xf69d, 0xf4f6, 0xf46d, 0xf681,
+ 0xf8dc, 0xfa81, 0xf98f, 0xf88d, 0xf8e1, 0xf56d,
+ 0xf19f, 0xf1e7, 0xf023, 0xec7d, 0xebfd, 0xed68,
+ 0xf098, 0xf4ee, 0xf7f3, 0xfa51, 0xfb3e, 0xfa69,
+ 0xf987, 0xf75c, 0xf535, 0xf580, 0xf580, 0xf47e,
+ 0xf489, 0xf53b, 0xf4e8, 0xf22d, 0xefc4, 0xf0de,
+ 0xf250, 0xf2bd, 0xf499, 0xf70e, 0xf9d3, 0xfd5c,
+ 0xffa4, 0xffaf, 0xfd32, 0xf944, 0xf6d1, 0xf5f7,
+ 0xf62f, 0xf78e, 0xf8cf, 0xfa54, 0xfb21, 0xf8a9,
+ 0xf601, 0xf5c8, 0xf50f, 0xf2b3, 0xf086, 0xf0fd,
+ 0xf558, 0xfadb, 0xfeff, 0x0135, 0xffdc, 0xfae3,
+ 0xf4ff, 0xf0af, 0xee8b, 0xecfb, 0xeb0c, 0xe9e0,
+ 0xea30, 0xeb30, 0xec2c, 0xeed2, 0xf377, 0xf650,
+ 0xf76f, 0xf8fd, 0xf7db, 0xf49c, 0xf386, 0xf2e5,
+ 0xf246, 0xf3d1, 0xf54b, 0xf659, 0xf901, 0xfc3c,
+ 0xff9f, 0x0305, 0x0492, 0x0399, 0x014d, 0x0047,
+ 0x013a, 0x01d1, 0x01fc, 0x0298, 0x0381, 0x0684,
+ 0x0aca, 0x0c6f, 0x0c8f, 0x0e84, 0x111d, 0x1198,
+ 0x1039, 0x0e5a, 0x0b47, 0x0709, 0x038e, 0x0182,
+ 0x015c, 0x0352, 0x05d0, 0x08cd, 0x0cbf, 0x1038,
+ 0x1221, 0x10d0, 0x0bfd, 0x06c7, 0x0285, 0xff75,
+ 0xfe50, 0xfd84, 0xfcf5, 0xfe24, 0xfff2, 0x00b5,
+ 0xfee7, 0xfb8f, 0xfa80, 0xfa21, 0xf8ac, 0xfa29,
+ 0xfdcf, 0x0008, 0x01ce, 0x027b, 0x0110, 0xff5b,
+ 0xfdb1, 0xfc9a, 0xfcf1, 0xfde0, 0xfe8b, 0xfdae,
+ 0xfc49, 0xfcd2, 0xfca3, 0xf9bf, 0xf748, 0xf6e4,
+ 0xf855, 0xfa28, 0xfa76, 0xfb09, 0xfbd8, 0xfa44,
+ 0xf920, 0xf9d0, 0xf86d, 0xf62c, 0xf698, 0xf7b4,
+ 0xf7bb, 0xf7f2, 0xf811, 0xf6e9, 0xf577, 0xf53e,
+ 0xf62d, 0xf781, 0xf861, 0xf840, 0xf7d2, 0xf7f9,
+ 0xf842, 0xf732, 0xf477, 0xf210, 0xf15f, 0xf1bd,
+ 0xf27f, 0xf2eb, 0xf2a0, 0xf1ae, 0xeff5, 0xefa3,
+ 0xf1f9, 0xf391, 0xf32f, 0xf2c9, 0xf2fe, 0xf4fa,
+ 0xf7ef, 0xf863, 0xf63c, 0xf2dd, 0xefbf, 0xef29,
+ 0xf055, 0xf281, 0xf5e1, 0xf84b, 0xfa47, 0xfc2e,
+ 0xfad1, 0xf862, 0xf7bc, 0xf703, 0xf7c8, 0xfa90,
+ 0xfc0a, 0xfccb, 0xfd8c, 0xfdb6, 0xfe83, 0xff31,
+ 0xfee7, 0xfdef, 0xfc2f, 0xfc0d, 0xfd53, 0xfd5c,
+ 0xfe4c, 0xffe3, 0xff90, 0xffd9, 0x0050, 0xfeb4,
+ 0xfd69, 0xfc0d, 0xf975, 0xf844, 0xf8d2, 0xfa67,
+ 0xfcaa, 0xfe15, 0xffad, 0x022b, 0x036b, 0x032b,
+ 0x0207, 0xfff8, 0xfdb9, 0xfbe9, 0xfb7e, 0xfcbf,
+ 0xfe8d, 0x0089, 0x016e, 0x000a, 0xfdd4, 0xfb59,
+ 0xf8f5, 0xf8a5, 0xfa16, 0xfba4, 0xfce2, 0xfd83,
+ 0xfdff, 0xfec1, 0xfed6, 0xfd5d, 0xfb71, 0xfc45,
+ 0xff5a, 0x0036, 0xff88, 0xffbd, 0xff0b, 0xfe47,
+ 0xff1f, 0xff19, 0xfe1c, 0xfdfd, 0xfe04, 0xfd91,
+ 0xfc7f, 0xfb10, 0xfa76, 0xfaff, 0xfcbd, 0xfec4,
+ 0xfeeb, 0xfdfa, 0xfdb6, 0xfd6f, 0xfcd1, 0xfc3d,
+ 0xfbe2, 0xfc51, 0xfd09, 0xfcfe, 0xfcc4, 0xfd61,
+ 0xfd5a, 0xfacd, 0xf866, 0xf841, 0xf74a, 0xf635,
+ 0xf851, 0xfb57, 0xfe44, 0x01ee, 0x0354, 0x0264,
+ 0x00e5, 0xfe5f, 0xfd8b, 0xfec5, 0xfe98, 0xfef4,
+ 0x001a, 0xff4a, 0x0023, 0x02e8, 0x0247, 0x006c,
+ 0x0100, 0x01df, 0x017d, 0xffe5, 0xfdf4, 0xfd99,
+ 0xff4a, 0x027b, 0x0551, 0x05ac, 0x0459, 0x01a3,
+ 0xfde4, 0xfc9e, 0xfdf3, 0xff8b, 0x01fc, 0x0317,
+ 0x00c9, 0xff60, 0x0047, 0x00fd, 0x025e, 0x0354,
+ 0x00f0, 0xfdd8, 0xfc64, 0xfa65, 0xf830, 0xf83c,
+ 0xf96c, 0xf99a, 0xf95f, 0xf9c1, 0xfa2d, 0xfa25,
+ 0xfa1e, 0xfa8e, 0xfb34, 0xfb64, 0xfb95, 0xfcef,
+ 0xfeeb, 0x008f, 0x019b, 0x0112, 0xffc2, 0x0017,
+ 0x0076, 0xfe52, 0xfb72, 0xf91a, 0xf775, 0xf846,
+ 0xf9b4, 0xf8be, 0xf87d, 0xfb2b, 0xfdbf, 0xff49,
+ 0x009e, 0x013c, 0x01b7, 0x0222, 0x01b1, 0x0182,
+ 0x01b5, 0x0165, 0x01b1, 0x0294, 0x02cc, 0x02ac,
+ 0x01fa, 0x00c7, 0x007e, 0x009f, 0x00cd, 0x01d2,
+ 0x01ef, 0x004f, 0xff8d, 0x009b, 0x0210, 0x02c8,
+ 0x02d3, 0x03b9, 0x0558, 0x057a, 0x049f, 0x04c2,
+ 0x05c6, 0x0794, 0x0a1c, 0x0b20, 0x0997, 0x083a,
+ 0x08e5, 0x09fd, 0x0a97, 0x0b1f, 0x0a67, 0x0817,
+ 0x059b, 0x0345, 0x021e, 0x0391, 0x057d, 0x05e1,
+ 0x0609, 0x06bb, 0x0771, 0x07b0, 0x06bc, 0x04d4,
+ 0x02e5, 0x0164, 0x00f1, 0x0164, 0x01f4, 0x0381,
+ 0x0693, 0x091c, 0x09e6, 0x0a53, 0x0adf, 0x0a57,
+ 0x089a, 0x065a, 0x0468, 0x0446, 0x0598, 0x05f2,
+ 0x04de, 0x02b8, 0xff8a, 0xfd8e, 0xfda6, 0xfde1,
+ 0xfec5, 0x00a0, 0x0119, 0x0136, 0x02bc, 0x0330,
+ 0x025d, 0x02e6, 0x046b, 0x0653, 0x08c7, 0x0939,
+ 0x0655, 0x0258, 0xff4a, 0xfef6, 0x01f4, 0x0528,
+ 0x0659, 0x06b2, 0x0627, 0x03ce, 0x014b, 0x00a3,
+ 0x015c, 0x019e, 0x0146, 0x0232, 0x0445, 0x055b,
+ 0x05d4, 0x06d9, 0x070c, 0x061a, 0x05c8, 0x0607,
+ 0x0607, 0x0670, 0x06a9, 0x048e, 0x0017, 0xfb6b,
+ 0xf845, 0xf716, 0xf72b, 0xf7b2, 0xf874, 0xf91c,
+ 0xf974, 0xf9e8, 0xfa79, 0xfaa2, 0xfa19, 0xf8ff,
+ 0xf836, 0xf87b, 0xf998, 0xfb07, 0xfbbd, 0xfb03,
+ 0xf9c3, 0xf809, 0xf529, 0xf2e6, 0xf315, 0xf533,
+ 0xf831, 0xfa6d, 0xfa9a, 0xf9ee, 0xf9bc, 0xf93e,
+ 0xf797, 0xf586, 0xf4e4, 0xf6d9, 0xfa93, 0xfe02,
+ 0xffeb, 0x00e2, 0x00b6, 0xfdab, 0xf8b7, 0xf4c2,
+ 0xf240, 0xf118, 0xf1b0, 0xf377, 0xf6d8, 0xfb82,
+ 0xfe1b, 0xfd5d, 0xfba7, 0xfab2, 0xfa87, 0xfa37,
+ 0xf989, 0xf9cd, 0xfb0f, 0xfca7, 0xff03, 0x012b,
+ 0x0254, 0x039e, 0x03cc, 0x01e3, 0x01ba, 0x045b,
+ 0x05b4, 0x051b, 0x04ad, 0x049a, 0x0539, 0x0617,
+ 0x0569, 0x0425, 0x0436, 0x056a, 0x076f, 0x0961,
+ 0x0a34, 0x0b18, 0x0c73, 0x0d26, 0x0dc0, 0x0ea0,
+ 0x0f32, 0x0f82, 0x0eb0, 0x0c74, 0x0b2e, 0x0c54,
+ 0x0ec5, 0x1089, 0x106b, 0x0f97, 0x0fda, 0x10ca,
+ 0x1124, 0x10a8, 0x0fde, 0x0edf, 0x0d15, 0x0b8c,
+ 0x0c13, 0x0d7c, 0x0d67, 0x0c4e, 0x0c4c, 0x0d11,
+ 0x0c57, 0x0a40, 0x089f, 0x0783, 0x072f, 0x07fe,
+ 0x08a4, 0x0997, 0x0b44, 0x0b34, 0x0a07, 0x0a86,
+ 0x0ba6, 0x0c03, 0x0b81, 0x09ce, 0x089e, 0x08bf,
+ 0x0810, 0x0660, 0x04f3, 0x0455, 0x0586, 0x078f,
+ 0x0853, 0x0920, 0x0b1b, 0x0bcc, 0x09b6, 0x05eb,
+ 0x0181, 0xfe0e, 0xfd3a, 0xfeb7, 0x016d, 0x047d,
+ 0x0617, 0x04f2, 0x01af, 0xfe12, 0xfc71, 0xfd51,
+ 0xfeb2, 0xffa9, 0x001f, 0xffbc, 0xffa3, 0xff81,
+ 0xfd8b, 0xfbc2, 0xfba5, 0xfab0, 0xf913, 0xf928,
+ 0xfa15, 0xfa69, 0xf9ed, 0xf849, 0xf5fb, 0xf426,
+ 0xf34c, 0xf3d0, 0xf602, 0xf8c9, 0xf9fc, 0xf971,
+ 0xf976, 0xfac4, 0xfb93, 0xfaea, 0xf9b2, 0xf8e6,
+ 0xf8a9, 0xf89b, 0xf7a7, 0xf556, 0xf3ec, 0xf4ba,
+ 0xf54a, 0xf453, 0xf2e9, 0xf1e4, 0xf30e, 0xf66d,
+ 0xf8d0, 0xf931, 0xf86e, 0xf72c, 0xf7ce, 0xfb40,
+ 0xff09, 0x0125, 0x00cf, 0xfeff, 0xfe61, 0xff62,
+ 0x0046, 0x0016, 0xff89, 0x00be, 0x03c0, 0x05e4,
+ 0x0683, 0x070e, 0x082d, 0x092c, 0x0864, 0x05c0,
+ 0x0346, 0x0214, 0x0211, 0x0305, 0x04af, 0x0641,
+ 0x0622, 0x04aa, 0x040a, 0x0452, 0x0461, 0x0314,
+ 0xff8e, 0xfc58, 0xfb2b, 0xf950, 0xf6ad, 0xf56c,
+ 0xf518, 0xf592, 0xf620, 0xf4ab, 0xf26d, 0xf12d,
+ 0xf03d, 0xefc7, 0xf041, 0xf17f, 0xf3a3, 0xf5f0,
+ 0xf782, 0xf884, 0xf9c0, 0xfbcf, 0xfcfe, 0xfb14,
+ 0xf734, 0xf3dd, 0xf25b, 0xf32f, 0xf5b0, 0xf863,
+ 0xf9b4, 0xf936, 0xf86c, 0xf847, 0xf8fc, 0xfb12,
+ 0xfd26, 0xfe0f, 0xff55, 0x00f4, 0x018e, 0x01d4,
+ 0x02cd, 0x04dc, 0x0763, 0x0805, 0x0629, 0x041a,
+ 0x02fc, 0x01ca, 0xffa3, 0xfcfc, 0xfb3b, 0xfb2f,
+ 0xfc0d, 0xfcd1, 0xfe4e, 0x00e7, 0x0297, 0x02d0,
+ 0x0293, 0x016a, 0x00be, 0x02c3, 0x04f6, 0x04c6,
+ 0x0393, 0x030d, 0x0411, 0x05a2, 0x0570, 0x03e3,
+ 0x01fa, 0xff22, 0xfca4, 0xfc8a, 0xfe95, 0x00f5,
+ 0x01e9, 0x01e3, 0x0265, 0x033d, 0x0430, 0x0529,
+ 0x0508, 0x03f6, 0x032c, 0x02c0, 0x028a, 0x028d,
+ 0x02a7, 0x035b, 0x0529, 0x06f3, 0x06a9, 0x04be,
+ 0x03ff, 0x04b1, 0x04ec, 0x04a7, 0x047d, 0x040f,
+ 0x0382, 0x035e, 0x0344, 0x0276, 0x0179, 0x015e,
+ 0x01e4, 0x02ef, 0x04a2, 0x0568, 0x0453, 0x021e,
+ 0xff0e, 0xfbe9, 0xf94a, 0xf6a1, 0xf50c, 0xf59d,
+ 0xf680, 0xf64b, 0xf5ca, 0xf62a, 0xf770, 0xf878,
+ 0xf8cb, 0xf841, 0xf6b1, 0xf5a5, 0xf5fd, 0xf68b,
+ 0xf6e4, 0xf711, 0xf760, 0xf7f6, 0xf70a, 0xf50a,
+ 0xf47d, 0xf47c, 0xf4a6, 0xf660, 0xf7d9, 0xf83c,
+ 0xf8e6, 0xf924, 0xf988, 0xfb80, 0xfd85, 0xfe9c,
+ 0xff15, 0xfee6, 0xfe7c, 0xfcfa, 0xf9a4, 0xf68f,
+ 0xf523, 0xf552, 0xf763, 0xfa49, 0xfc77, 0xfdb5,
+ 0xfdfe, 0xfd36, 0xfc03, 0xfbb2, 0xfcb1, 0xfdfb,
+ 0xfee5, 0xff6d, 0xffde, 0x00d9, 0x01db, 0x026d,
+ 0x035c, 0x03fa, 0x037d, 0x0298, 0x0088, 0xfd75,
+ 0xfbee, 0xfbac, 0xfad9, 0xfa55, 0xfb3f, 0xfd4d,
+ 0xff74, 0x0059, 0x001d, 0x002d, 0x00bd, 0x0051,
+ 0xfe8c, 0xfd55, 0xfcea, 0xfb7f, 0xf9c8, 0xf95a,
+ 0xfa21, 0xfc30, 0xfe09, 0xfd20, 0xfa5d, 0xf866,
+ 0xf858, 0xf9f4, 0xfb90, 0xfc30, 0xfc73, 0xfc00,
+ 0xfa3b, 0xf7ec, 0xf633, 0xf5c6, 0xf64d, 0xf759,
+ 0xf965, 0xfb8f, 0xfbf9, 0xfad6, 0xf98c, 0xf946,
+ 0xfa83, 0xfc0f, 0xfc44, 0xfb1e, 0xf968, 0xf799,
+ 0xf616, 0xf4ea, 0xf345, 0xf135, 0xf072, 0xf132,
+ 0xf20f, 0xf360, 0xf5c9, 0xf820, 0xf913, 0xf841,
+ 0xf6bb, 0xf655, 0xf76b, 0xf96e, 0xfb97, 0xfc34,
+ 0xfa87, 0xf805, 0xf701, 0xf90b, 0xfcc1, 0xff15,
+ 0xff75, 0xff51, 0xff5e, 0xff61, 0xfee0, 0xfde3,
+ 0xfced, 0xfc57, 0xfc3e, 0xfc20, 0xfb62, 0xfacc,
+ 0xfb71, 0xfd42, 0xff0a, 0xff45, 0xfe4e, 0xfddd,
+ 0xfdb3, 0xfcad, 0xfb73, 0xfb19, 0xfb86, 0xfbe0,
+ 0xfb96, 0xfb32, 0xfb8f, 0xfc49, 0xfc14, 0xfae3,
+ 0xfa76, 0xfbca, 0xfdc6, 0xff40, 0xfff6, 0xffb5,
+ 0xfea1, 0xfdbf, 0xfd80, 0xfcef, 0xfbef, 0xfb62,
+ 0xfabd, 0xf9ac, 0xf959, 0xf9c5, 0xfa68, 0xfb51,
+ 0xfb9d, 0xfb1d, 0xfaea, 0xfb1c, 0xfb69, 0xfb69,
+ 0xfa86, 0xf97a, 0xf8d5, 0xf886, 0xf92b, 0xfa9d,
+ 0xfc65, 0xfda6, 0xfc4b, 0xfa1a, 0xfadb, 0xfcbd,
+ 0xfd40, 0xfd21, 0xfc27, 0xfb06, 0xfab4, 0xf985,
+ 0xf813, 0xf7ae, 0xf666, 0xf4f2, 0xf60c, 0xf87a,
+ 0xf9d9, 0xf98b, 0xf89e, 0xf901, 0xfa65, 0xfb94,
+ 0xfcfe, 0xfe83, 0x0000, 0x01ed, 0x0343, 0x03d0,
+ 0x04d3, 0x0582, 0x04fd, 0x049e, 0x0556, 0x06ba,
+ 0x07e9, 0x0826, 0x0790, 0x06b9, 0x0642, 0x0649,
+ 0x0603, 0x059e, 0x0621, 0x0712, 0x0783, 0x06f8,
+ 0x0505, 0x0379, 0x0496, 0x0682, 0x0689, 0x05a1,
+ 0x05a2, 0x064f, 0x0663, 0x0566, 0x0420, 0x031d,
+ 0x025d, 0x0216, 0x01db, 0x00f1, 0xffd1, 0xff7c,
+ 0x0058, 0x01a3, 0x026c, 0x0363, 0x0469, 0x0380,
+ 0x00e0, 0xfe1d, 0xfb65, 0xfa0d, 0xfb0d, 0xfc43,
+ 0xfce6, 0xfe38, 0xff9d, 0x0024, 0xffd4, 0xfe6f,
+ 0xfcf9, 0xfcc2, 0xfcae, 0xfbda, 0xfba0, 0xfca8,
+ 0xfe10, 0xff59, 0x00bb, 0x0247, 0x0339, 0x031b,
+ 0x0337, 0x0426, 0x048b, 0x044a, 0x03e7, 0x02bf,
+ 0x01e2, 0x0260, 0x0296, 0x0268, 0x0291, 0x017e,
+ 0xff8c, 0xfe70, 0xfd7f, 0xfd1d, 0xfe73, 0x0005,
+ 0x00d7, 0x012d, 0x0078, 0xff3f, 0xff01, 0xffa8,
+ 0xffed, 0xff46, 0xfe77, 0xfdbf, 0xfc53, 0xfa72,
+ 0xf911, 0xf8e9, 0xfa9b, 0xfd1b, 0xfee1, 0x000e,
+ 0x002b, 0xfec9, 0xfd43, 0xfbfd, 0xface, 0xfab7,
+ 0xfb7c, 0xfc7e, 0xfe0e, 0xfee1, 0xfe23, 0xfdff,
+ 0xff5b, 0x000e, 0xfef4, 0xfd4f, 0xfc48, 0xfbcf,
+ 0xfbdc, 0xfc4f, 0xfc69, 0xfc62, 0xfd25, 0xfe2b,
+ 0xfeba, 0xfef1, 0xfe2c, 0xfc22, 0xfa60, 0xf9e1,
+ 0xfa2c, 0xfad7, 0xfb6d, 0xfbd4, 0xfccc, 0xfdf7,
+ 0xfdf1, 0xfcca, 0xfb5d, 0xf9e2, 0xf8e0, 0xf910,
+ 0xfa0c, 0xfa8e, 0xfa1f, 0xf9d7, 0xfa99, 0xfbfb,
+ 0xfd51, 0xfdbc, 0xfcdd, 0xfbea, 0xfb35, 0xf991,
+ 0xf720, 0xf4b6, 0xf2a2, 0xf196, 0xf1e3, 0xf35c,
+ 0xf64f, 0xfa9a, 0xff5e, 0x0336, 0x047e, 0x03bc,
+ 0x0386, 0x04c9, 0x0643, 0x06be, 0x05d9, 0x039c,
+ 0x00d3, 0xffc4, 0x0186, 0x03d4, 0x04ea, 0x05a5,
+ 0x069b, 0x0796, 0x0847, 0x0830, 0x07c5, 0x0794,
+ 0x0725, 0x06be, 0x071d, 0x07e7, 0x08b8, 0x0974,
+ 0x097d, 0x087b, 0x06f9, 0x05c9, 0x0562, 0x05bd,
+ 0x062b, 0x059a, 0x0416, 0x0345, 0x043e, 0x05d6,
+ 0x05f9, 0x0494, 0x0358, 0x02b9, 0x0218, 0x01ac,
+ 0x01d0, 0x02a8, 0x0420, 0x0520, 0x04dc, 0x040c,
+ 0x0404, 0x055f, 0x06c1, 0x0649, 0x0436, 0x01be,
+ 0xffd5, 0xff03, 0xfe89, 0xfe43, 0xff3b, 0x00c3,
+ 0x0183, 0x016e, 0x0116, 0x017b, 0x028e, 0x02ab,
+ 0x0143, 0xfeed, 0xfcd4, 0xfc8c, 0xfda7, 0xfead,
+ 0xff7b, 0xffd8, 0xff9c, 0xff57, 0xff5c, 0x002a,
+ 0x0179, 0x01e0, 0x0146, 0x004a, 0xff51, 0xfea1,
+ 0xfd73, 0xfbdd, 0xfb4d, 0xfbb1, 0xfced, 0xff06,
+ 0x0008, 0xff3f, 0xfdf5, 0xfcdd, 0xfc91, 0xfcd8,
+ 0xfcc2, 0xfc9d, 0xfc63, 0xfc0f, 0xfc17, 0xfb00,
+ 0xf858, 0xf5d1, 0xf33f, 0xf116, 0xf133, 0xf2c8,
+ 0xf49a, 0xf63b, 0xf634, 0xf50a, 0xf48d, 0xf48d,
+ 0xf506, 0xf63b, 0xf6f6, 0xf6a0, 0xf61a, 0xf65c,
+ 0xf7aa, 0xf962, 0xfae6, 0xfc05, 0xfccc, 0xfdc5,
+ 0xfedd, 0xff5e, 0xff5b, 0xff58, 0xffd5, 0x00f3,
+ 0x01f0, 0x027f, 0x02bb, 0x022f, 0x018e, 0x01e1,
+ 0x0238, 0x01e7, 0x01a0, 0x0164, 0x0131, 0x01a1,
+ 0x0308, 0x0570, 0x07a4, 0x07a4, 0x05a7, 0x03b0,
+ 0x02e4, 0x02e8, 0x02e2, 0x0366, 0x0520, 0x05b4,
+ 0x0387, 0x0127, 0x0050, 0x0040, 0x00c6, 0x0155,
+ 0x00ce, 0xff1c, 0xfca2, 0xfa40, 0xf876, 0xf651,
+ 0xf3fe, 0xf314, 0xf3ba, 0xf49d, 0xf463, 0xf356,
+ 0xf30d, 0xf38c, 0xf436, 0xf4e7, 0xf47d, 0xf368,
+ 0xf369, 0xf3a4, 0xf3a1, 0xf492, 0xf5e8, 0xf736,
+ 0xf8c5, 0xf997, 0xf9a1, 0xf971, 0xf8e8, 0xf91a,
+ 0xfabb, 0xfd26, 0xffe4, 0x01c3, 0x0267, 0x0340,
+ 0x04b3, 0x069e, 0x0875, 0x0806, 0x0558, 0x02fa,
+ 0x023d, 0x0390, 0x0574, 0x0511, 0x03b4, 0x04a7,
+ 0x071f, 0x0806, 0x0653, 0x03c6, 0x01d1, 0xffaa,
+ 0xfd4a, 0xfc14, 0xfc83, 0xfea6, 0x0133, 0x022c,
+ 0x026a, 0x02c3, 0x0227, 0x01e4, 0x038f, 0x05d9,
+ 0x0797, 0x0822, 0x0733, 0x05f2, 0x0487, 0x0293,
+ 0x0104, 0x0000, 0xff66, 0xffa3, 0x0078, 0x0210,
+ 0x03f5, 0x04a9, 0x0512, 0x05b4, 0x050b, 0x04f9,
+ 0x0790, 0x0a2d, 0x0b69, 0x0c78, 0x0ceb, 0x0c3d,
+ 0x0b34, 0x0a52, 0x0952, 0x07a9, 0x063e, 0x063f,
+ 0x068e, 0x0611, 0x05a8, 0x0649, 0x07d9, 0x0903,
+ 0x0877, 0x0693, 0x0420, 0x015a, 0xfec4, 0xfd52,
+ 0xfde0, 0xffae, 0x00e7, 0x0142, 0x00fc, 0xfff4,
+ 0xff0c, 0xfeee, 0xff1a, 0xfed7, 0xfd73, 0xfb9c,
+ 0xfac1, 0xfa63, 0xf9e0, 0xfa1e, 0xfb21, 0xfba5,
+ 0xfafe, 0xfa31, 0xfa9f, 0xfb9d, 0xfc1e, 0xfcb3,
+ 0xfd3b, 0xfcef, 0xfc40, 0xfb84, 0xface, 0xfad4,
+ 0xfb78, 0xfc63, 0xfe5e, 0x00c5, 0x0149, 0xfffb,
+ 0xfe76, 0xfc51, 0xf99c, 0xf849, 0xf86e, 0xf89d,
+ 0xf862, 0xf7e1, 0xf798, 0xf739, 0xf5cf, 0xf4c0,
+ 0xf5e2, 0xf830, 0xfa71, 0xfc56, 0xfd13, 0xfc75,
+ 0xfc06, 0xfdd7, 0x015f, 0x0356, 0x02a4, 0x00e8,
+ 0xfe8f, 0xfbb4, 0xf95d, 0xf7b7, 0xf6ae, 0xf6cb,
+ 0xf7e6, 0xf91f, 0xfa89, 0xfca1, 0xfe84, 0xffb5,
+ 0x00c2, 0x006d, 0xfe2a, 0xfc40, 0xfb1e, 0xf9fc,
+ 0xfa2c, 0xfb8e, 0xfbef, 0xfa89, 0xf861, 0xf797,
+ 0xf8eb, 0xfa4e, 0xfa85, 0xfa56, 0xfa42, 0xfa2e,
+ 0xf9c7, 0xf922, 0xf8b5, 0xf88c, 0xf8a0, 0xf8ce,
+ 0xf96a, 0xfb75, 0xfe32, 0x000f, 0x00f2, 0x004c,
+ 0xfd9c, 0xfa43, 0xf7f1, 0xf7d7, 0xf9a4, 0xfb18,
+ 0xfb5b, 0xfb4a, 0xfb18, 0xfa7e, 0xf973, 0xf8d1,
+ 0xf997, 0xfb26, 0xfc73, 0xfcc9, 0xfc26, 0xfc0f,
+ 0xfce8, 0xfdcc, 0xfef6, 0xffc2, 0xff9a, 0xffd0,
+ 0x003e, 0x005a, 0x0118, 0x01cd, 0x0129, 0xff6f,
+ 0xfdad, 0xfd77, 0xfe9c, 0xffa0, 0x010f, 0x02ed,
+ 0x037d, 0x02ae, 0x019b, 0x00fe, 0x014a, 0x02b5,
+ 0x051c, 0x0704, 0x0772, 0x07b8, 0x07cf, 0x0697,
+ 0x04f9, 0x03cc, 0x0357, 0x03aa, 0x034e, 0x01d5,
+ 0x008b, 0x0032, 0x0109, 0x01b4, 0x00ab, 0xff72,
+ 0xff1e, 0xfec3, 0xfe9f, 0xff23, 0xffc9, 0x0023,
+ 0x0021, 0xffe7, 0xfee9, 0xfd10, 0xfc49, 0xfd7b,
+ 0xff8e, 0x016c, 0x0214, 0x01da, 0x01af, 0x00d1,
+ 0xff6e, 0xfeda, 0xfec6, 0xfefe, 0xffc8, 0x0068,
+ 0x00b3, 0x009f, 0xff49, 0xfca5, 0xf9cb, 0xf79e,
+ 0xf666, 0xf632, 0xf6bb, 0xf729, 0xf776, 0xf828,
+ 0xf898, 0xf898, 0xf943, 0xfabf, 0xfbf3, 0xfbbb,
+ 0xfaa2, 0xfaa8, 0xfbaa, 0xfc58, 0xfd17, 0xfda3,
+ 0xfd06, 0xfbab, 0xfa38, 0xf96d, 0xf993, 0xf973,
+ 0xf8d5, 0xf8dd, 0xf9dc, 0xfba4, 0xfd7e, 0xfe54,
+ 0xfe4e, 0xfeeb, 0x015c, 0x0473, 0x05ed, 0x05e4,
+ 0x0592, 0x0539, 0x047f, 0x02d3, 0x0170, 0x0229,
+ 0x035f, 0x0376, 0x03e4, 0x0503, 0x056b, 0x04d3,
+ 0x0431, 0x0488, 0x057e, 0x05f5, 0x058b, 0x046c,
+ 0x03db, 0x04bb, 0x0590, 0x0580, 0x0535, 0x04e5,
+ 0x0589, 0x0787, 0x08d8, 0x08b0, 0x0839, 0x07f0,
+ 0x0823, 0x0919, 0x09b9, 0x08ee, 0x07a5, 0x0703,
+ 0x066c, 0x0595, 0x04c0, 0x0314, 0x00f6, 0x0023,
+ 0x0076, 0x010a, 0x0168, 0x0160, 0x01ec, 0x02b5,
+ 0x01d8, 0x0019, 0xff20, 0xfeb9, 0xfea2, 0xfe60,
+ 0xfd99, 0xfd5d, 0xfe34, 0xffa2, 0x0147, 0x02a9,
+ 0x0365, 0x02ff, 0x0129, 0xff38, 0xfeb6, 0xff45,
+ 0xff71, 0xfe79, 0xfd62, 0xfdb3, 0xff6a, 0x0159,
+ 0x02b2, 0x03a5, 0x0474, 0x0471, 0x0358, 0x018f,
+ 0xff28, 0xfd08, 0xfc70, 0xfd28, 0xfe96, 0x0017,
+ 0x00e0, 0x0162, 0x0207, 0x01fa, 0x014e, 0x00ef,
+ 0x00d2, 0x0028, 0xfe9e, 0xfcfd, 0xfc4c, 0xfca6,
+ 0xfda5, 0xfec5, 0xff82, 0xffab, 0xff27, 0xfe4b,
+ 0xfe16, 0xfe7b, 0xfe56, 0xfde5, 0xfe05, 0xfdda,
+ 0xfcba, 0xfbd5, 0xfbb4, 0xfb85, 0xfae0, 0xf9b4,
+ 0xf89e, 0xf8a6, 0xf91b, 0xf89d, 0xf732, 0xf599,
+ 0xf52b, 0xf6df, 0xf954, 0xfaaf, 0xfad0, 0xfa47,
+ 0xf9a8, 0xf963, 0xf91a, 0xf82b, 0xf6ff, 0xf687,
+ 0xf69a, 0xf6c0, 0xf75b, 0xf853, 0xf953, 0xfa88,
+ 0xfaf4, 0xf9c9, 0xf85d, 0xf7dd, 0xf839, 0xf8c3,
+ 0xf894, 0xf81a, 0xf7e7, 0xf74e, 0xf6d4, 0xf731,
+ 0xf707, 0xf5d1, 0xf536, 0xf65c, 0xf87e, 0xf9da,
+ 0xfa00, 0xfa2c, 0xfaf4, 0xfbd9, 0xfc5d, 0xfc89,
+ 0xfc96, 0xfbea, 0xfaa7, 0xfac1, 0xfcd0, 0xff35,
+ 0x00aa, 0x0140, 0x0260, 0x0490, 0x0587, 0x045e,
+ 0x036b, 0x03bc, 0x0452, 0x04cb, 0x054c, 0x05f0,
+ 0x067d, 0x063d, 0x058e, 0x05ac, 0x064b, 0x0658,
+ 0x062e, 0x06e4, 0x08b5, 0x0a3d, 0x09a4, 0x078f,
+ 0x0624, 0x0530, 0x03d8, 0x0365, 0x04b9, 0x06d5,
+ 0x08ed, 0x0abf, 0x0bd1, 0x0c1c, 0x0c3b, 0x0c07,
+ 0x0ad5, 0x0941, 0x084f, 0x081c, 0x094a, 0x0c55,
+ 0x0f64, 0x0fde, 0x0d7d, 0x0af3, 0x0a86, 0x0b24,
+ 0x0ba0, 0x0cb8, 0x0e44, 0x0f6c, 0x0fd1, 0x0f2f,
+ 0x0e3d, 0x0d28, 0x0b4a, 0x0a25, 0x0aee, 0x0c42,
+ 0x0d13, 0x0cad, 0x0ab4, 0x0877, 0x0696, 0x050a,
+ 0x04ba, 0x0568, 0x05dd, 0x05e7, 0x0603, 0x06a1,
+ 0x070d, 0x062e, 0x0495, 0x033b, 0x0233, 0x0104,
+ 0xff5e, 0xfecb, 0x00c9, 0x03ba, 0x058d, 0x0633,
+ 0x0623, 0x0549, 0x033f, 0x0122, 0x010d, 0x025f,
+ 0x02b7, 0x016d, 0xffd8, 0xff9b, 0xfff1, 0xff34,
+ 0xfe79, 0xfe74, 0xfdd1, 0xfc65, 0xfa58, 0xf7e4,
+ 0xf68e, 0xf67d, 0xf6cd, 0xf755, 0xf782, 0xf748,
+ 0xf6d7, 0xf562, 0xf3cb, 0xf3dc, 0xf500, 0xf5c4,
+ 0xf552, 0xf3b5, 0xf264, 0xf25d, 0xf341, 0xf46e,
+ 0xf500, 0xf4ce, 0xf4eb, 0xf5ce, 0xf6d2, 0xf798,
+ 0xf871, 0xf941, 0xf95a, 0xf8de, 0xf841, 0xf6f2,
+ 0xf4c1, 0xf2ee, 0xf2de, 0xf48f, 0xf6c4, 0xf898,
+ 0xf9b9, 0xf9f6, 0xf9dd, 0xf9ee, 0xfa72, 0xfcac,
+ 0x002b, 0x01f1, 0x00e6, 0xfe8d, 0xfc1c, 0xfa25,
+ 0xf8f5, 0xf902, 0xfa9e, 0xfcc5, 0xfe30, 0xff06,
+ 0x0000, 0x00cb, 0x004b, 0xfef8, 0xfe45, 0xfd6c,
+ 0xfb4c, 0xf8dc, 0xf6cc, 0xf564, 0xf54a, 0xf5a9,
+ 0xf52e, 0xf3b5, 0xf1c3, 0xf0f4, 0xf2c2, 0xf5f1,
+ 0xf7f2, 0xf7d4, 0xf6d3, 0xf648, 0xf5c7, 0xf4cb,
+ 0xf3ef, 0xf32a, 0xf22a, 0xf1da, 0xf330, 0xf582,
+ 0xf6f0, 0xf6ee, 0xf786, 0xf9ed, 0xfc51, 0xfd22,
+ 0xfd25, 0xfd4b, 0xfd6f, 0xfd44, 0xfcf2, 0xfcd5,
+ 0xfd42, 0xfe12, 0xfe97, 0xfe74, 0xfda7, 0xfc3a,
+ 0xfae6, 0xfaeb, 0xfc95, 0xfeae, 0xffbb, 0xff4b,
+ 0xfda8, 0xfb3e, 0xf90d, 0xf7d2, 0xf745, 0xf7ef,
+ 0xfa66, 0xfcc0, 0xfd22, 0xfcb5, 0xfd30, 0xfece,
+ 0x00a3, 0x016d, 0x013a, 0x0124, 0x010e, 0x0066,
+ 0xffb5, 0xff6b, 0xff6c, 0xffda, 0x00a5, 0x0193,
+ 0x02b4, 0x03ce, 0x045f, 0x04b2, 0x05b6, 0x0753,
+ 0x0813, 0x0738, 0x05eb, 0x055b, 0x0561, 0x0571,
+ 0x05a5, 0x0669, 0x0735, 0x0725, 0x06f2, 0x073d,
+ 0x070b, 0x0673, 0x06a4, 0x0791, 0x0902, 0x0a48,
+ 0x09d5, 0x0895, 0x08bc, 0x098e, 0x096f, 0x0891,
+ 0x0800, 0x086d, 0x0886, 0x064e, 0x0309, 0x0175,
+ 0x01ef, 0x02ff, 0x030f, 0x01d9, 0x007d, 0xff88,
+ 0xff68, 0x0110, 0x0379, 0x03f9, 0x0206, 0xffad,
+ 0xfe6f, 0xfd8a, 0xfc68, 0xfc22, 0xfc8f, 0xfc46,
+ 0xfbb0, 0xfb70, 0xfac1, 0xf9c2, 0xf982, 0xfa12,
+ 0xfad2, 0xfb79, 0xfc57, 0xfd86, 0xfde6, 0xfc8e,
+ 0xfaae, 0xfa0c, 0xfac5, 0xfbc5, 0xfc4d, 0xfc72,
+ 0xfc55, 0xfb84, 0xfa6b, 0xfade, 0xfcd9, 0xfdef,
+ 0xfda9, 0xfd6d, 0xfcf2, 0xfb84, 0xf9b4, 0xf826,
+ 0xf790, 0xf87e, 0xfa29, 0xfb81, 0xfc3d, 0xfc3c,
+ 0xfb41, 0xf964, 0xf75f, 0xf5d6, 0xf4d3, 0xf46b,
+ 0xf487, 0xf485, 0xf465, 0xf4df, 0xf60c, 0xf6de,
+ 0xf65b, 0xf5a8, 0xf673, 0xf7ba, 0xf843, 0xf953,
+ 0xfb8b, 0xfd47, 0xfd09, 0xfb1f, 0xf942, 0xf862,
+ 0xf7bd, 0xf74b, 0xf804, 0xf970, 0xfa0b, 0xf95d,
+ 0xf7e6, 0xf69a, 0xf6a4, 0xf809, 0xf972, 0xfa69,
+ 0xfbc0, 0xfd87, 0xfec9, 0xfefd, 0xfeb5, 0xfec0,
+ 0xfeb7, 0xfde2, 0xfc93, 0xfb22, 0xfa0c, 0xf9e7,
+ 0xf9ad, 0xf8d7, 0xf8df, 0xf984, 0xf8e3, 0xf6ed,
+ 0xf4ee, 0xf44b, 0xf554, 0xf6a0, 0xf774, 0xf85f,
+ 0xf9b6, 0xfbf9, 0xfe8b, 0xff3f, 0xfe43, 0xfe0f,
+ 0xfedb, 0xfefe, 0xfe85, 0xfee4, 0x002d, 0x012f,
+ 0x0137, 0x004e, 0xff18, 0xfdd1, 0xfbab, 0xf984,
+ 0xf9bb, 0xfbbc, 0xfd16, 0xfce7, 0xfb65, 0xf9dd,
+ 0xf9f0, 0xfba9, 0xfe8d, 0x0177, 0x02b9, 0x0324,
+ 0x03d5, 0x0343, 0x01c3, 0x01ba, 0x02a9, 0x02de,
+ 0x0250, 0x0163, 0x0101, 0x018a, 0x0113, 0xff35,
+ 0xfe8c, 0xff8a, 0x002b, 0x0031, 0xffcf, 0xfe40,
+ 0xfc2a, 0xfb2c, 0xfc05, 0xfe39, 0xffb8, 0xff2f,
+ 0xfe1b, 0xfe0b, 0xfee8, 0x0005, 0x0080, 0x0039,
+ 0xffcb, 0xfee6, 0xfd1a, 0xfac9, 0xf8a0, 0xf759,
+ 0xf704, 0xf722, 0xf7ba, 0xf8c1, 0xf9d4, 0xfa60,
+ 0xf942, 0xf6bb, 0xf4c9, 0xf3ea, 0xf371, 0xf3a4,
+ 0xf488, 0xf572, 0xf5f0, 0xf58b, 0xf444, 0xf2f4,
+ 0xf297, 0xf374, 0xf448, 0xf390, 0xf226, 0xf1d3,
+ 0xf2ae, 0xf463, 0xf6e0, 0xf8df, 0xf941, 0xf8af,
+ 0xf7eb, 0xf752, 0xf769, 0xf786, 0xf6d0, 0xf640,
+ 0xf6af, 0xf7db, 0xf9c2, 0xfbe0, 0xfd64, 0xfe85,
+ 0xff62, 0xffd4, 0x0045, 0x00b9, 0x0103, 0x01d9,
+ 0x0398, 0x0576, 0x0677, 0x0686, 0x066e, 0x0650,
+ 0x057e, 0x03eb, 0x01f9, 0x0012, 0xff16, 0xff49,
+ 0xffb7, 0xffc0, 0xff9f, 0xff96, 0x0035, 0x0228,
+ 0x04bf, 0x06d5, 0x08a7, 0x0a75, 0x0bbf, 0x0ccc,
+ 0x0da3, 0x0d17, 0x0b2e, 0x093c, 0x0813, 0x07fd,
+ 0x084d, 0x083a, 0x08bb, 0x0a69, 0x0bf8, 0x0cb8,
+ 0x0d03, 0x0cf9, 0x0cd0, 0x0c3d, 0x0aa8, 0x0901,
+ 0x0833, 0x0724, 0x0532, 0x03cc, 0x03f6, 0x0503,
+ 0x0605, 0x06ae, 0x06f4, 0x06ce, 0x0641, 0x0537,
+ 0x03f7, 0x03ba, 0x0503, 0x0635, 0x05cb, 0x0434,
+ 0x02c9, 0x02c0, 0x0443, 0x0604, 0x0702, 0x0747,
+ 0x06b7, 0x0577, 0x0484, 0x0454, 0x0433, 0x03a0,
+ 0x02fd, 0x0274, 0x01ad, 0x0111, 0x0141, 0x01ec,
+ 0x0297, 0x02c1, 0x01a5, 0xff8b, 0xfdc8, 0xfd33,
+ 0xfd29, 0xfc24, 0xfa03, 0xf873, 0xf86a, 0xf95a,
+ 0xf9e8, 0xf8ee, 0xf758, 0xf6f4, 0xf793, 0xf81c,
+ 0xf862, 0xf8c0, 0xf92a, 0xf8db, 0xf7b7, 0xf69a,
+ 0xf573, 0xf42e, 0xf3c9, 0xf43b, 0xf4b4, 0xf579,
+ 0xf719, 0xf953, 0xfb15, 0xfb62, 0xfa70, 0xf955,
+ 0xf95e, 0xfb04, 0xfcbb, 0xfd2f, 0xfd0a, 0xfcb9,
+ 0xfbdc, 0xfad2, 0xfabd, 0xfc43, 0xfdd3, 0xfcfb,
+ 0xfa6c, 0xf8e7, 0xf92e, 0xfa33, 0xfb1d, 0xfbdb,
+ 0xfca3, 0xfcfe, 0xfc94, 0xfc36, 0xfc9a, 0xfd61,
+ 0xfde1, 0xfde8, 0xfdbc, 0xfdca, 0xfe5b, 0xff6a,
+ 0x0098, 0x0148, 0x00ec, 0xffa1, 0xfe67, 0xfe36,
+ 0xfeac, 0xfe53, 0xfce3, 0xfb79, 0xfa3f, 0xf914,
+ 0xf8b0, 0xf810, 0xf5c0, 0xf378, 0xf314, 0xf3dd,
+ 0xf4be, 0xf525, 0xf5db, 0xf8a4, 0xfd02, 0x00e6,
+ 0x035f, 0x03c2, 0x0208, 0xfff2, 0xff8a, 0x0178,
+ 0x044c, 0x05ea, 0x05d4, 0x04c6, 0x03fa, 0x045c,
+ 0x0577, 0x06ad, 0x07ac, 0x07d2, 0x0784, 0x0745,
+ 0x06a1, 0x0659, 0x0780, 0x0968, 0x0ae5, 0x0b2a,
+ 0x0a4f, 0x093b, 0x083b, 0x074c, 0x065a, 0x0556,
+ 0x0563, 0x063f, 0x05bd, 0x04aa, 0x0522, 0x067c,
+ 0x07dc, 0x08cb, 0x0832, 0x06db, 0x0695, 0x0714,
+ 0x06ef, 0x05ff, 0x054e, 0x04ea, 0x0445, 0x041b,
+ 0x04a6, 0x0510, 0x056f, 0x0551, 0x0438, 0x03ae,
+ 0x041d, 0x042a, 0x03d7, 0x0371, 0x02d8, 0x02b4,
+ 0x0338, 0x03e4, 0x048e, 0x051c, 0x0567, 0x0546,
+ 0x04f8, 0x0557, 0x0669, 0x0719, 0x0697, 0x0512,
+ 0x03de, 0x03d7, 0x03f9, 0x03a0, 0x038b, 0x0433,
+ 0x05a1, 0x077b, 0x08de, 0x093e, 0x089d, 0x0724,
+ 0x052b, 0x0370, 0x0312, 0x0427, 0x057d, 0x06af,
+ 0x07c7, 0x0801, 0x07a7, 0x07d2, 0x082f, 0x07d1,
+ 0x0664, 0x0411, 0x01ba, 0x0003, 0xfe98, 0xfd1f,
+ 0xfb4b, 0xf933, 0xf83e, 0xf92b, 0xfa87, 0xfaf9,
+ 0xfaa9, 0xfa3b, 0xf9fc, 0xf9cd, 0xf991, 0xf93f,
+ 0xf8b8, 0xf85c, 0xf8ad, 0xf930, 0xf97a, 0xf9f5,
+ 0xfa9b, 0xfafe, 0xfaf9, 0xfaaa, 0xfaaa, 0xfb34,
+ 0xfbab, 0xfbe9, 0xfc0a, 0xfbe0, 0xfbcb, 0xfc23,
+ 0xfcac, 0xfd82, 0xfedb, 0x00a3, 0x0293, 0x03b5,
+ 0x0378, 0x0287, 0x0197, 0x00cf, 0xffec, 0xfe57,
+ 0xfc6e, 0xfbdf, 0xfd86, 0x0031, 0x02a4, 0x04bd,
+ 0x05b3, 0x04e0, 0x042d, 0x051c, 0x0679, 0x0747,
+ 0x074a, 0x05f9, 0x0407, 0x02b0, 0x01c3, 0x0049,
+ 0xfdb2, 0xfacc, 0xf8f6, 0xf815, 0xf7d4, 0xf88b,
+ 0xf9d5, 0xfb15, 0xfbd2, 0xfb4d, 0xf9ef, 0xf8d9,
+ 0xf845, 0xf7fd, 0xf76e, 0xf635, 0xf54d, 0xf5a0,
+ 0xf6d7, 0xf7d8, 0xf78c, 0xf64d, 0xf53f, 0xf47b,
+ 0xf436, 0xf505, 0xf655, 0xf77b, 0xf8ff, 0xfb95,
+ 0xfe93, 0xfffd, 0xff65, 0xfeee, 0xffcb, 0x00aa,
+ 0x002f, 0xfecc, 0xfe09, 0xfe02, 0xfd54, 0xfc57,
+ 0xfcc0, 0xfe47, 0xff7c, 0xfff8, 0xffc2, 0xfec7,
+ 0xfd5c, 0xfc46, 0xfc2d, 0xfca6, 0xfc47, 0xfacc,
+ 0xf9b8, 0xf9f0, 0xfafd, 0xfc5c, 0xfd3d, 0xfca9,
+ 0xfae1, 0xf8f8, 0xf834, 0xf9a4, 0xfc15, 0xfd36,
+ 0xfd1e, 0xfd16, 0xfcf0, 0xfc51, 0xfbfc, 0xfc91,
+ 0xfd8c, 0xfdf6, 0xfdaf, 0xfd6a, 0xfd8c, 0xfda4,
+ 0xfd4f, 0xfcff, 0xfca6, 0xfbaf, 0xfb3c, 0xfc7f,
+ 0xfe2a, 0xff05, 0xff37, 0xfe90, 0xfd54, 0xfcb9,
+ 0xfdc4, 0x0063, 0x02c7, 0x039a, 0x03ec, 0x0489,
+ 0x0533, 0x0641, 0x07b4, 0x091b, 0x09d1, 0x08ea,
+ 0x0798, 0x07db, 0x0885, 0x082d, 0x07e8, 0x0828,
+ 0x089a, 0x0935, 0x08f1, 0x0749, 0x05ad, 0x04e5,
+ 0x044d, 0x03d0, 0x03ca, 0x03e7, 0x03fa, 0x0475,
+ 0x04c8, 0x03da, 0x0288, 0x025a, 0x0277, 0x0132,
+ 0xfefc, 0xfd77, 0xfd27, 0xfd79, 0xfdee, 0xfe2f,
+ 0xfdd4, 0xfcc9, 0xfb8a, 0xfae7, 0xfaf1, 0xfa78,
+ 0xf90c, 0xf836, 0xf945, 0xfb8f, 0xfd5e, 0xfd5b,
+ 0xfbc4, 0xfa69, 0xfa42, 0xfa60, 0xfa17, 0xf9d3,
+ 0xf9c3, 0xfa11, 0xfaeb, 0xfb93, 0xfc07, 0xfda0,
+ 0xffb1, 0x000d, 0xfef5, 0xfe09, 0xfdb0, 0xfd96,
+ 0xfd8b, 0xfdce, 0xfe7c, 0xfe53, 0xfc7c, 0xfac5,
+ 0xfb22, 0xfcb6, 0xfd93, 0xfd7f, 0xfd4b, 0xfd27,
+ 0xfd3c, 0xfdef, 0xfec7, 0xff10, 0xfef4, 0xfe8b,
+ 0xfdd8, 0xfdb5, 0xfec9, 0x0055, 0x013e, 0x0144,
+ 0x00c5, 0x0035, 0xffcb, 0xff19, 0xfdea, 0xfd12,
+ 0xfca3, 0xfb8a, 0xfa0a, 0xf954, 0xf972, 0xfa08,
+ 0xfb08, 0xfbfe, 0xfc84, 0xfcce, 0xfd52, 0xfe02,
+ 0xfddb, 0xfc5f, 0xfad2, 0xfa27, 0xf9b5, 0xf8c1,
+ 0xf7a8, 0xf728, 0xf729, 0xf714, 0xf759, 0xf893,
+ 0xf9ff, 0xfae0, 0xfb5f, 0xfb71, 0xfb2d, 0xfaf8,
+ 0xfaa1, 0xfa3e, 0xfa89, 0xfb44, 0xfb64, 0xfa97,
+ 0xf967, 0xf860, 0xf75b, 0xf650, 0xf62f, 0xf6cf,
+ 0xf685, 0xf580, 0xf595, 0xf6a7, 0xf6fb, 0xf630,
+ 0xf59d, 0xf655, 0xf7f9, 0xf9e0, 0xfbfb, 0xfdef,
+ 0xfec8, 0xfe16, 0xfcb1, 0xfbd4, 0xfb7f, 0xfb2c,
+ 0xfb17, 0xfb2b, 0xfaf7, 0xfadc, 0xfb2c, 0xfbb3,
+ 0xfc7c, 0xfd44, 0xfd57, 0xfc2b, 0xf9eb, 0xf82b,
+ 0xf86b, 0xfa58, 0xfc88, 0xfd80, 0xfcdb, 0xfbb0,
+ 0xfa6b, 0xf906, 0xf885, 0xf8fd, 0xf95a, 0xf953,
+ 0xf90d, 0xf8d7, 0xf8b8, 0xf7c1, 0xf68a, 0xf704,
+ 0xf8af, 0xf98c, 0xf924, 0xf86a, 0xf8e1, 0xfaeb,
+ 0xfd09, 0xfe40, 0xff16, 0xfffb, 0x00da, 0x01c3,
+ 0x02dd, 0x03d0, 0x03d7, 0x0306, 0x0244, 0x0205,
+ 0x01f5, 0x01c1, 0x0206, 0x0376, 0x04f9, 0x0509,
+ 0x0432, 0x03d3, 0x03d6, 0x0331, 0x0180, 0xff33,
+ 0xfcbb, 0xfabb, 0xf994, 0xf879, 0xf6ec, 0xf5c0,
+ 0xf5ac, 0xf720, 0xf9ed, 0xfc55, 0xfcdf, 0xfbcd,
+ 0xfa4c, 0xf9bf, 0xfa3f, 0xfaed, 0xfc72, 0xff5e,
+ 0x0217, 0x0390, 0x0442, 0x0434, 0x02da, 0x0010,
+ 0xfcf2, 0xfb50, 0xfb62, 0xfbb5, 0xfb59, 0xfab7,
+ 0xfadf, 0xfbe4, 0xfc48, 0xfb37, 0xf9db, 0xf9cc,
+ 0xfb45, 0xfce0, 0xfd64, 0xfd37, 0xfd31, 0xfde2,
+ 0xffed, 0x0312, 0x05e9, 0x077b, 0x07de, 0x0760,
+ 0x0628, 0x04cf, 0x0436, 0x0482, 0x0555, 0x0693,
+ 0x0800, 0x093c, 0x0a10, 0x0a29, 0x09a3, 0x0951,
+ 0x094e, 0x08dd, 0x07f7, 0x0779, 0x07aa, 0x0776,
+ 0x060f, 0x04ae, 0x0487, 0x0492, 0x03db, 0x0314,
+ 0x0273, 0x0159, 0x0020, 0xffef, 0x00e1, 0x0166,
+ 0x0010, 0xfd9e, 0xfbbf, 0xfad6, 0xfa3b, 0xf95a,
+ 0xf830, 0xf767, 0xf781, 0xf859, 0xf9d6, 0xfc14,
+ 0xfe8d, 0xffe5, 0xff4c, 0xfe0e, 0xfe1c, 0xff70,
+ 0x00d9, 0x01ce, 0x01eb, 0x0107, 0x002d, 0x0080,
+ 0x01bb, 0x0313, 0x0457, 0x057e, 0x0641, 0x06a7,
+ 0x06fa, 0x06f7, 0x060a, 0x0448, 0x027d, 0x012a,
+ 0xfff2, 0xfeb5, 0xfe36, 0xfeaf, 0xff62, 0x005a,
+ 0x027a, 0x0511, 0x05b4, 0x035a, 0xffea, 0xfddd,
+ 0xfdcb, 0xfeca, 0xffc2, 0x004e, 0x00a4, 0x0096,
+ 0xfff7, 0xff6d, 0xfefd, 0xfd8a, 0xfb56, 0xfa3a,
+ 0xfa7f, 0xfa25, 0xf7ef, 0xf547, 0xf450, 0xf513,
+ 0xf5fd, 0xf69b, 0xf7ac, 0xf905, 0xf9a5, 0xf970,
+ 0xf916, 0xf92a, 0xfa0c, 0xfbb9, 0xfda0, 0xff51,
+ 0x00c0, 0x01c9, 0x0235, 0x0212, 0x0159, 0xffe6,
+ 0xfe4a, 0xfdc1, 0xfeab, 0x0000, 0x0076, 0xffcd,
+ 0xfed7, 0xfe6e, 0xfed4, 0xfff2, 0x0163, 0x0285,
+ 0x02f8, 0x02b6, 0x01d0, 0x0069, 0xff06, 0xfe71,
+ 0xfed1, 0xff32, 0xfeb6, 0xfd57, 0xfbe3, 0xfb9d,
+ 0xfc76, 0xfca6, 0xfba9, 0xfb0a, 0xfb4f, 0xfb42,
+ 0xfa37, 0xf8d0, 0xf7a7, 0xf67f, 0xf564, 0xf52d,
+ 0xf5e0, 0xf652, 0xf624, 0xf64f, 0xf792, 0xf972,
+ 0xfad4, 0xfb65, 0xfbde, 0xfcf4, 0xfeaa, 0x0075,
+ 0x0169, 0x00bb, 0xfea0, 0xfc9c, 0xfc80, 0xfe4a,
+ 0xffef, 0x0029, 0x0019, 0x00e8, 0x01d5, 0x01fb,
+ 0x01fe, 0x0257, 0x01ec, 0xfff9, 0xfda9, 0xfc6d,
+ 0xfbf0, 0xfb0b, 0xf9c7, 0xf978, 0xfaea, 0xfd6d,
+ 0xffc7, 0x0153, 0x01fc, 0x01c2, 0x00d9, 0x000f,
+ 0x0052, 0x0149, 0x01a9, 0x01a2, 0x02f8, 0x0605,
+ 0x08d7, 0x09d0, 0x0929, 0x079e, 0x056b, 0x02f8,
+ 0x0127, 0x005a, 0x0030, 0x0065, 0x00ed, 0x015a,
+ 0x013f, 0x00c6, 0x0061, 0x0068, 0x013e, 0x0302,
+ 0x0506, 0x0660, 0x06e7, 0x073b, 0x0801, 0x095b,
+ 0x0abc, 0x0b59, 0x0b38, 0x0b4a, 0x0be2, 0x0beb,
+ 0x0a8f, 0x0886, 0x06f2, 0x0606, 0x058b, 0x058d,
+ 0x0604, 0x06ae, 0x079f, 0x08ee, 0x0a02, 0x0a34,
+ 0x09bb, 0x0929, 0x08c4, 0x08db, 0x09b4, 0x0a98,
+ 0x0a35, 0x087a, 0x06bd, 0x05b0, 0x04ba, 0x0395,
+ 0x02ff, 0x0389, 0x0492, 0x04f6, 0x0453, 0x031b,
+ 0x01a0, 0xffb2, 0xfd45, 0xfb2a, 0xfa64, 0xfab5,
+ 0xfae4, 0xfa6c, 0xf99c, 0xf889, 0xf76c, 0xf787,
+ 0xf9dd, 0xfd35, 0xff81, 0x00a4, 0x01c6, 0x0298,
+ 0x0187, 0xfe34, 0xfa61, 0xf853, 0xf8b1, 0xfa65,
+ 0xfc1e, 0xfd94, 0xff36, 0x00e4, 0x01bf, 0x0163,
+ 0x00a2, 0x0085, 0x0117, 0x019b, 0x0175, 0x0053,
+ 0xfe54, 0xfc79, 0xfbad, 0xfbce, 0xfcb5, 0xfea7,
+ 0x010d, 0x0255, 0x01bc, 0x001d, 0xfe83, 0xfcf5,
+ 0xfb53, 0xfa2f, 0xfa44, 0xfb9c, 0xfd25, 0xfd76,
+ 0xfc5d, 0xfaf9, 0xf9e9, 0xf8a7, 0xf733, 0xf704,
+ 0xf8b8, 0xfa4f, 0xf9b6, 0xf796, 0xf5ce, 0xf4b4,
+ 0xf34c, 0xf173, 0xf066, 0xf12a, 0xf332, 0xf4b7,
+ 0xf47d, 0xf374, 0xf395, 0xf571, 0xf7fa, 0xf9e6,
+ 0xfaa3, 0xfa90, 0xfa79, 0xfaed, 0xfbdd, 0xfcaf,
+ 0xfd24, 0xfd87, 0xfda7, 0xfcfa, 0xfbfd, 0xfbe8,
+ 0xfcfe, 0xfe6c, 0xffc7, 0x016e, 0x034b, 0x0480,
+ 0x0490, 0x03c9, 0x02bd, 0x01a8, 0x0083, 0xff8f,
+ 0xff03, 0xfe97, 0xfdf4, 0xfd64, 0xfd9a, 0xfe76,
+ 0xfe9a, 0xfd71, 0xfc70, 0xfcc4, 0xfd92, 0xfd7f,
+ 0xfc6f, 0xfb15, 0xf9bb, 0xf854, 0xf74f, 0xf722,
+ 0xf7a7, 0xf886, 0xf984, 0xfa46, 0xfa6f, 0xfa53,
+ 0xfb2b, 0xfd70, 0xffde, 0x0150, 0x0212, 0x0291,
+ 0x0288, 0x01cb, 0x00da, 0x009c, 0x0199, 0x0361,
+ 0x04d7, 0x05b1, 0x06f0, 0x08db, 0x0a3e, 0x0a53,
+ 0x099f, 0x090d, 0x08cb, 0x07ae, 0x04b9, 0x0118,
+ 0xff39, 0x0054, 0x031a, 0x0509, 0x057c, 0x05a5,
+ 0x05d7, 0x05c5, 0x0612, 0x0721, 0x07e3, 0x078f,
+ 0x06eb, 0x06b7, 0x06a7, 0x06a4, 0x0768, 0x0914,
+ 0x0a6f, 0x0a4c, 0x0934, 0x086a, 0x07d4, 0x06ae,
+ 0x04f3, 0x0313, 0x019f, 0x00a6, 0xff2c, 0xfcf9,
+ 0xfba1, 0xfc43, 0xfdea, 0xfec2, 0xfe5c, 0xfde5,
+ 0xfdd7, 0xfdb1, 0xfdb4, 0xfe37, 0xfe8b, 0xfe38,
+ 0xfd99, 0xfd0f, 0xfcef, 0xfd60, 0xfdb9, 0xfd58,
+ 0xfcc6, 0xfc6c, 0xfbc8, 0xfad6, 0xf9f6, 0xf90c,
+ 0xf864, 0xf88f, 0xf963, 0xfa63, 0xfad3, 0xfa30,
+ 0xf95e, 0xf955, 0xf9ad, 0xf9ff, 0xfa8c, 0xfb32,
+ 0xfb3f, 0xfa5b, 0xf96a, 0xf9cc, 0xfba1, 0xfdaf,
+ 0xfeb7, 0xfe6b, 0xfd8b, 0xfcff, 0xfcca, 0xfc42,
+ 0xfb16, 0xf988, 0xf7a1, 0xf55d, 0xf395, 0xf33e,
+ 0xf46f, 0xf697, 0xf89a, 0xf983, 0xf96f, 0xf937,
+ 0xf9b8, 0xfb36, 0xfd04, 0xfe23, 0xfe0b, 0xfd47,
+ 0xfd34, 0xfdcd, 0xfdb9, 0xfd3f, 0xfdcd, 0xff46,
+ 0x0033, 0xff77, 0xfdb0, 0xfd00, 0xfdfd, 0xfed3,
+ 0xfe6a, 0xfd93, 0xfcd7, 0xfc30, 0xfc38, 0xfd3c,
+ 0xfe9b, 0xffe3, 0x0054, 0xfee1, 0xfc9f, 0xfbf9,
+ 0xfd4d, 0xff34, 0x0060, 0x0030, 0xff13, 0xfde3,
+ 0xfd08, 0xfca6, 0xfcc1, 0xfd31, 0xfd46, 0xfbf3,
+ 0xf9ae, 0xf87a, 0xf8c8, 0xf8ef, 0xf7c9, 0xf61e,
+ 0xf558, 0xf586, 0xf598, 0xf54e, 0xf53d, 0xf5a5,
+ 0xf65c, 0xf720, 0xf78f, 0xf795, 0xf825, 0xfa2e,
+ 0xfcfc, 0xff5a, 0x0109, 0x01f7, 0x01c0, 0x005b,
+ 0xfea7, 0xfe33, 0xff74, 0x0128, 0x025e, 0x02c4,
+ 0x024c, 0x01b8, 0x0127, 0xffea, 0xfed8, 0xff1f,
+ 0x0000, 0x00c7, 0x01a2, 0x0225, 0x01f6, 0x01c5,
+ 0x01cd, 0x0157, 0x0042, 0xff33, 0xfe8c, 0xfe87,
+ 0xff42, 0x0087, 0x01fb, 0x0288, 0x013f, 0xff81,
+ 0xff6d, 0x0102, 0x02bf, 0x0354, 0x02ad, 0x01b8,
+ 0x00cb, 0xffea, 0xffa2, 0xffa9, 0xff1d, 0xfe3b,
+ 0xfd98, 0xfd37, 0xfced, 0xfca6, 0xfcbe, 0xfd72,
+ 0xfdfa, 0xfdc4, 0xfd7f, 0xfd7a, 0xfcdc, 0xfbc3,
+ 0xfbab, 0xfcf6, 0xfed0, 0x00e5, 0x02bd, 0x0339,
+ 0x01dc, 0xff49, 0xfcd4, 0xfb2c, 0xf9a9, 0xf864,
+ 0xf854, 0xf8da, 0xf8f3, 0xf908, 0xf95e, 0xf982,
+ 0xf96d, 0xf996, 0xfa3f, 0xfab8, 0xf9f7, 0xf857,
+ 0xf75b, 0xf77f, 0xf784, 0xf67b, 0xf54d, 0xf54a,
+ 0xf6b5, 0xf8f4, 0xfac7, 0xfb59, 0xfb07, 0xf9fc,
+ 0xf7e9, 0xf594, 0xf456, 0xf495, 0xf5de, 0xf7bb,
+ 0xf954, 0xf98a, 0xf8df, 0xf95a, 0xfb6a, 0xfdd8,
+ 0xffe7, 0x0133, 0x01cb, 0x0259, 0x02cf, 0x0292,
+ 0x01ea, 0x01c7, 0x0277, 0x02bf, 0x0169, 0xff96,
+ 0xff34, 0x004c, 0x01a8, 0x0271, 0x027f, 0x0263,
+ 0x0330, 0x053c, 0x0750, 0x082b, 0x0814, 0x07a9,
+ 0x06c7, 0x0562, 0x044e, 0x049b, 0x05d6, 0x0661,
+ 0x060d, 0x0586, 0x0474, 0x02d9, 0x01af, 0x018e,
+ 0x027f, 0x03c8, 0x0421, 0x0355, 0x0236, 0x0108,
+ 0xff77, 0xfdd1, 0xfd47, 0xfe30, 0xff77, 0x0063,
+ 0x0125, 0x01d6, 0x025d, 0x027e, 0x0225, 0x01ef,
+ 0x02b8, 0x0475, 0x05de, 0x05fa, 0x0593, 0x05cb,
+ 0x0694, 0x075d, 0x07a7, 0x073a, 0x0671, 0x0603,
+ 0x06cb, 0x08c9, 0x0a70, 0x0a5b, 0x08b7, 0x06c4,
+ 0x0602, 0x06b5, 0x07e3, 0x0900, 0x0962, 0x081d,
+ 0x05e4, 0x0411, 0x02aa, 0x01b6, 0x01f0, 0x02d6,
+ 0x02c2, 0x0144, 0xff6d, 0xfe52, 0xfe9d, 0xffd5,
+ 0x0063, 0x000d, 0xffb6, 0xfefd, 0xfdbb, 0xfd22,
+ 0xfd44, 0xfd2b, 0xfc95, 0xfb53, 0xf904, 0xf5fe,
+ 0xf354, 0xf1ff, 0xf202, 0xf254, 0xf219, 0xf20d,
+ 0xf3a7, 0xf63f, 0xf7f4, 0xf8fe, 0xfa15, 0xf9f4,
+ 0xf7e0, 0xf53c, 0xf3a8, 0xf3ee, 0xf5f1, 0xf8ad,
+ 0xfad2, 0xfb83, 0xfac4, 0xf959, 0xf85c, 0xf86c,
+ 0xf8dc, 0xf8ce, 0xf876, 0xf815, 0xf799, 0xf756,
+ 0xf7a3, 0xf856, 0xf905, 0xf994, 0xfa55, 0xfb2c,
+ 0xfb99, 0xfbab, 0xfb71, 0xfab2, 0xf974, 0xf7bd,
+ 0xf5f2, 0xf4f4, 0xf4cd, 0xf51f, 0xf631, 0xf801,
+ 0xf9b6, 0xfa56, 0xf9d1, 0xf93f, 0xf947, 0xf961,
+ 0xf953, 0xf965, 0xf952, 0xf8f9, 0xf92d, 0xfa6b,
+ 0xfbe0, 0xfca5, 0xfc50, 0xfaba, 0xf933, 0xf9a3,
+ 0xfb84, 0xfccb, 0xfcbb, 0xfc64, 0xfdd5, 0x0114,
+ 0x0317, 0x02c8, 0x02a8, 0x03d2, 0x0510, 0x05c5,
+ 0x061b, 0x0644, 0x0689, 0x06f8, 0x07de, 0x09d9,
+ 0x0bf7, 0x0bf4, 0x09e5, 0x0869, 0x0875, 0x08d8,
+ 0x08f7, 0x08bf, 0x07ea, 0x06a4, 0x0567, 0x04a2,
+ 0x045e, 0x043c, 0x04a0, 0x0606, 0x077b, 0x0824,
+ 0x08cc, 0x0a3a, 0x0b7b, 0x0b3f, 0x0a48, 0x0a3f,
+ 0x0af1, 0x0b65, 0x0b87, 0x0b40, 0x0a83, 0x09de,
+ 0x097b, 0x090f, 0x0897, 0x086a, 0x0911, 0x0a87,
+ 0x0bbc, 0x0bd7, 0x0b41, 0x0a92, 0x09c1, 0x08fa,
+ 0x086a, 0x07b0, 0x0777, 0x08fa, 0x0b26, 0x0c45,
+ 0x0c6a, 0x0b78, 0x091e, 0x06ac, 0x0545, 0x04ce,
+ 0x0577, 0x075b, 0x0971, 0x0a6f, 0x0a38, 0x09bf,
+ 0x09c0, 0x0a1a, 0x0a2f, 0x0986, 0x0859, 0x070b,
+ 0x0576, 0x0389, 0x019c, 0x0041, 0x002a, 0x0121,
+ 0x01d7, 0x0191, 0x00a7, 0xff62, 0xfdc4, 0xfc1f,
+ 0xfa8f, 0xf882, 0xf653, 0xf56f, 0xf57e, 0xf4dd,
+ 0xf397, 0xf286, 0xf1f2, 0xf218, 0xf28d, 0xf2b2,
+ 0xf32c, 0xf47f, 0xf5cf, 0xf634, 0xf569, 0xf3ba,
+ 0xf232, 0xf208, 0xf38e, 0xf636, 0xf931, 0xfb55,
+ 0xfbb9, 0xfb03, 0xfa9d, 0xfb19, 0xfc85, 0xfe8a,
+ 0x0038, 0x0104, 0x0134, 0x0158, 0x0204, 0x037a,
+ 0x0546, 0x0673, 0x067b, 0x05aa, 0x0425, 0x0220,
+ 0x00ab, 0x001d, 0xffd3, 0xffd8, 0xffc8, 0xfe8d,
+ 0xfcd7, 0xfc01, 0xfbfd, 0xfcc0, 0xfe12, 0xfe69,
+ 0xfd5b, 0xfc9f, 0xfccf, 0xfcde, 0xfc9e, 0xfc50,
+ 0xfbcb, 0xfb7c, 0xfb03, 0xf8ad, 0xf4df, 0xf1d1,
+ 0xeffc, 0xef08, 0xef61, 0xf0d1, 0xf25d, 0xf359,
+ 0xf3d9, 0xf47c, 0xf51c, 0xf4cd, 0xf3ea, 0xf3d7,
+ 0xf4db, 0xf658, 0xf84a, 0xfaab, 0xfc37, 0xfbd8,
+ 0xfa32, 0xf832, 0xf629, 0xf504, 0xf5a8, 0xf725,
+ 0xf7d6, 0xf7ec, 0xf8db, 0xfad1, 0xfcd5, 0xfe6d,
+ 0xff86, 0x0040, 0x00ad, 0x0037, 0xff05, 0xfe51,
+ 0xfdf5, 0xfcc1, 0xfb03, 0xf983, 0xf806, 0xf674,
+ 0xf5b1, 0xf6a3, 0xf8d1, 0xfa9e, 0xfafd, 0xfa32,
+ 0xf8db, 0xf758, 0xf62a, 0xf5c5, 0xf5e0, 0xf5f5,
+ 0xf5d3, 0xf515, 0xf3cc, 0xf329, 0xf392, 0xf41c,
+ 0xf47f, 0xf512, 0xf5b9, 0xf64f, 0xf6e5, 0xf790,
+ 0xf893, 0xfa40, 0xfc52, 0xfdfc, 0xff4a, 0x0125,
+ 0x037d, 0x0557, 0x065f, 0x06ee, 0x0752, 0x0778,
+ 0x06e7, 0x05b6, 0x04c6, 0x04d1, 0x05fc, 0x07b2,
+ 0x08e2, 0x0955, 0x09de, 0x0ad6, 0x0bab, 0x0c37,
+ 0x0cf1, 0x0dba, 0x0e44, 0x0ef6, 0x0fd8, 0x1059,
+ 0x1064, 0x0ff8, 0x0f06, 0x0e02, 0x0d09, 0x0bba,
+ 0x0a4e, 0x0914, 0x07d2, 0x06a3, 0x05f0, 0x05b1,
+ 0x05a6, 0x05aa, 0x0535, 0x03ba, 0x01fd, 0x0169,
+ 0x01ea, 0x023d, 0x01ca, 0x011a, 0x011d, 0x0225,
+ 0x0392, 0x046a, 0x03b9, 0x0143, 0xfe4b, 0xfc40,
+ 0xfb44, 0xfac0, 0xfa68, 0xfa08, 0xf95d, 0xf8c3,
+ 0xf8ff, 0xf9ee, 0xfade, 0xfbcf, 0xfcec, 0xfe19,
+ 0xff57, 0x003e, 0x0046, 0x0004, 0x0059, 0x00fb,
+ 0x012f, 0x00f9, 0x00ce, 0x00bd, 0x0077, 0xffce,
+ 0xfecc, 0xfd9c, 0xfc79, 0xfbf6, 0xfcd2, 0xfec2,
+ 0x0044, 0x003a, 0xfec7, 0xfd03, 0xfc11, 0xfb9b,
+ 0xfa79, 0xf8ee, 0xf7ff, 0xf7b5, 0xf7d4, 0xf885,
+ 0xf9bb, 0xfb35, 0xfcdb, 0xfe2f, 0xfe21, 0xfc7d,
+ 0xfa85, 0xf93e, 0xf858, 0xf739, 0xf5f0, 0xf53f,
+ 0xf605, 0xf81e, 0xfa2c, 0xfb05, 0xfb02, 0xfb4a,
+ 0xfc3d, 0xfd6f, 0xfe5d, 0xfed4, 0xff38, 0xffe7,
+ 0x0073, 0x00ce, 0x01bb, 0x036c, 0x0533, 0x0610,
+ 0x0537, 0x0344, 0x01ce, 0x013c, 0x010f, 0x013e,
+ 0x0133, 0xffc8, 0xfd5d, 0xfb81, 0xfa91, 0xfa17,
+ 0xfa22, 0xfa93, 0xfae0, 0xfacd, 0xfa45, 0xf977,
+ 0xf8f1, 0xf8a6, 0xf846, 0xf829, 0xf84b, 0xf7ed,
+ 0xf725, 0xf6ea, 0xf756, 0xf790, 0xf773, 0xf7b3,
+ 0xf831, 0xf7d4, 0xf675, 0xf599, 0xf6a7, 0xf8cd,
+ 0xf9af, 0xf864, 0xf668, 0xf55e, 0xf55e, 0xf5b4,
+ 0xf5f3, 0xf607, 0xf5d4, 0xf52c, 0xf3fa, 0xf286,
+ 0xf158, 0xf0b9, 0xf0b8, 0xf15e, 0xf258, 0xf361,
+ 0xf4e8, 0xf729, 0xf962, 0xfab6, 0xfb04, 0xfadb,
+ 0xfb09, 0xfb95, 0xfbd3, 0xfbc2, 0xfc12, 0xfcaf,
+ 0xfca4, 0xfbb5, 0xfac0, 0xfa74, 0xfac2, 0xfb56,
+ 0xfc03, 0xfcdd, 0xfdec, 0xfeab, 0xfe5d, 0xfcdc,
+ 0xfac7, 0xf8f6, 0xf7c0, 0xf706, 0xf6c0, 0xf6f6,
+ 0xf769, 0xf7e4, 0xf8c7, 0xfa56, 0xfbc8, 0xfc28,
+ 0xfb99, 0xfa9b, 0xf92d, 0xf796, 0xf6bf, 0xf747,
+ 0xf913, 0xfb72, 0xfd77, 0xfe67, 0xfdf2, 0xfca3,
+ 0xfbfa, 0xfd13, 0xfef8, 0xffa4, 0xfeb4, 0xfdc4,
+ 0xfdf7, 0xfeab, 0xfece, 0xfe52, 0xfdcb, 0xfd56,
+ 0xfcb9, 0xfc0c, 0xfb72, 0xfabb, 0xf9f7, 0xf983,
+ 0xf930, 0xf85a, 0xf734, 0xf6ed, 0xf844, 0xfa93,
+ 0xfc93, 0xfd88, 0xfd84, 0xfd03, 0xfc8b, 0xfc61,
+ 0xfc8b, 0xfced, 0xfd54, 0xfd77, 0xfd29, 0xfcd3,
+ 0xfd48, 0xfead, 0x0024, 0x00fc, 0x0172, 0x01e1,
+ 0x0228, 0x0241, 0x0287, 0x0334, 0x041b, 0x04f9,
+ 0x0592, 0x05b4, 0x0579, 0x0567, 0x05d4, 0x0633,
+ 0x05ac, 0x0488, 0x0402, 0x0483, 0x0526, 0x053f,
+ 0x0553, 0x05ed, 0x0696, 0x0697, 0x061d, 0x05ed,
+ 0x0669, 0x073f, 0x0806, 0x08b3, 0x097c, 0x0a68,
+ 0x0b14, 0x0afd, 0x0a08, 0x089a, 0x0717, 0x05a3,
+ 0x048b, 0x045b, 0x04ff, 0x0569, 0x04c9, 0x039a,
+ 0x02e6, 0x02e8, 0x0312, 0x02fa, 0x028b, 0x01d0,
+ 0x011d, 0x0102, 0x0180, 0x01d2, 0x0188, 0x0145,
+ 0x01a4, 0x020f, 0x01a6, 0x00aa, 0x0017, 0x002f,
+ 0x006a, 0x0089, 0x00b1, 0x00c8, 0x00b4, 0x0111,
+ 0x0289, 0x0488, 0x059b, 0x0547, 0x047f, 0x0411,
+ 0x03b9, 0x0331, 0x032d, 0x0490, 0x071d, 0x09a3,
+ 0x0b3b, 0x0ba3, 0x0a94, 0x07c8, 0x03e0, 0x008d,
+ 0xff2d, 0xff85, 0x0039, 0x0048, 0xff9e, 0xfe7b,
+ 0xfd1c, 0xfc07, 0xfbf7, 0xfd18, 0xfead, 0xffca,
+ 0x001b, 0xffcb, 0xfef2, 0xfda9, 0xfc68, 0xfbdb,
+ 0xfc18, 0xfc4c, 0xfba1, 0xfa5c, 0xf9b5, 0xfa5b,
+ 0xfb9d, 0xfc7d, 0xfd13, 0xfe12, 0xff2a, 0xff11,
+ 0xfd6c, 0xfb9a, 0xfb02, 0xfb6a, 0xfbb0, 0xfb7b,
+ 0xfb65, 0xfbfd, 0xfd30, 0xfe76, 0xff11, 0xfe78,
+ 0xfcee, 0xfb4e, 0xfa22, 0xf944, 0xf891, 0xf81a,
+ 0xf7ad, 0xf710, 0xf6f2, 0xf86e, 0xfb2f, 0xfd38,
+ 0xfd44, 0xfc3d, 0xfbbd, 0xfc28, 0xfd20, 0xfe99,
+ 0x0054, 0x011f, 0xfff5, 0xfd73, 0xfb2e, 0xf9f1,
+ 0xf95d, 0xf8dc, 0xf82b, 0xf771, 0xf746, 0xf82b,
+ 0xf970, 0xf97d, 0xf7d8, 0xf603, 0xf590, 0xf614,
+ 0xf604, 0xf518, 0xf493, 0xf548, 0xf667, 0xf6b8,
+ 0xf64e, 0xf683, 0xf849, 0xfae9, 0xfcb8, 0xfcf9,
+ 0xfc83, 0xfc68, 0xfcb1, 0xfce9, 0xfd34, 0xfded,
+ 0xfec6, 0xff43, 0xffcb, 0x0127, 0x031d, 0x04a0,
+ 0x0561, 0x0608, 0x06e5, 0x0797, 0x0822, 0x091d,
+ 0x0a52, 0x0a5e, 0x086b, 0x0586, 0x0379, 0x02f0,
+ 0x0370, 0x04a0, 0x068d, 0x08bf, 0x09fa, 0x097a,
+ 0x07fd, 0x06fb, 0x0700, 0x0751, 0x0742, 0x0712,
+ 0x0701, 0x0672, 0x04d1, 0x02ea, 0x0220, 0x0260,
+ 0x0216, 0x0079, 0xfed2, 0xfede, 0x00ba, 0x0314,
+ 0x04c2, 0x057d, 0x056f, 0x04f3, 0x04ae, 0x054f,
+ 0x06eb, 0x08b8, 0x0994, 0x08f8, 0x0791, 0x06c9,
+ 0x0775, 0x090a, 0x0a4e, 0x0a9f, 0x0a2f, 0x0961,
+ 0x0883, 0x080e, 0x0866, 0x094e, 0x0a13, 0x0a6c,
+ 0x0aa1, 0x0ab9, 0x0a30, 0x08c9, 0x0735, 0x0670,
+ 0x06a3, 0x0722, 0x0767, 0x07a7, 0x0838, 0x08cf,
+ 0x08aa, 0x0797, 0x0650, 0x058e, 0x0509, 0x03df,
+ 0x01ef, 0x0034, 0xff91, 0xffb9, 0xffa7, 0xfee8,
+ 0xfdf8, 0xfd75, 0xfd63, 0xfd59, 0xfd28, 0xfcee,
+ 0xfcb7, 0xfc64, 0xfc11, 0xfc36, 0xfcfe, 0xfdd1,
+ 0xfdfb, 0xfda1, 0xfd8f, 0xfe0c, 0xfe8f, 0xfecc,
+ 0xff57, 0x00cf, 0x02d1, 0x0430, 0x044a, 0x03b8,
+ 0x039d, 0x0455, 0x0502, 0x049b, 0x036a, 0x02fa,
+ 0x044f, 0x06b4, 0x08c7, 0x0a11, 0x0aea, 0x0b49,
+ 0x0ac0, 0x0970, 0x080e, 0x06f5, 0x0609, 0x056d,
+ 0x054d, 0x051a, 0x03eb, 0x01da, 0x0017, 0xff71,
+ 0xff90, 0xffc6, 0xffbc, 0xff32, 0xfdf2, 0xfc37,
+ 0xfa9b, 0xf966, 0xf87c, 0xf7e7, 0xf7ce, 0xf7db,
+ 0xf776, 0xf69e, 0xf5e0, 0xf565, 0xf4ca, 0xf3fd,
+ 0xf37f, 0xf3ad, 0xf455, 0xf517, 0xf5bf, 0xf633,
+ 0xf674, 0xf6b7, 0xf71d, 0xf77d, 0xf7d9, 0xf8a9,
+ 0xfa26, 0xfb95, 0xfbed, 0xfb0e, 0xf9c5, 0xf8df,
+ 0xf8ca, 0xf9a4, 0xfaf6, 0xfba5, 0xfb0b, 0xf9f5,
+ 0xf9c0, 0xfa9f, 0xfb82, 0xfba9, 0xfb66, 0xfb48,
+ 0xfb45, 0xfb15, 0xfab7, 0xfa50, 0xf9e8, 0xf992,
+ 0xf974, 0xf97a, 0xf942, 0xf88f, 0xf790, 0xf693,
+ 0xf5a5, 0xf4bc, 0xf415, 0xf415, 0xf4ce, 0xf5bd,
+ 0xf642, 0xf62e, 0xf5b7, 0xf501, 0xf40f, 0xf331,
+ 0xf2f3, 0xf375, 0xf421, 0xf464, 0xf451, 0xf42b,
+ 0xf3a4, 0xf25c, 0xf0f1, 0xf0bd, 0xf23b, 0xf45a,
+ 0xf5dc, 0xf6da, 0xf852, 0xfa7c, 0xfc64, 0xfd4a,
+ 0xfdce, 0xff24, 0x0173, 0x03a3, 0x04b0, 0x04cc,
+ 0x04f6, 0x05f3, 0x07cf, 0x09e7, 0x0b24, 0x0ab4,
+ 0x0900, 0x0773, 0x06da, 0x0667, 0x050e, 0x0370,
+ 0x0353, 0x052d, 0x074a, 0x07dc, 0x071b, 0x06ac,
+ 0x075c, 0x0858, 0x087d, 0x07c7, 0x072d, 0x075a,
+ 0x07f9, 0x0846, 0x07fc, 0x0769, 0x06cf, 0x0624,
+ 0x0581, 0x0556, 0x05c7, 0x0626, 0x058d, 0x03df,
+ 0x01f4, 0x00bd, 0x008a, 0x0106, 0x01a0, 0x01e8,
+ 0x01bf, 0x0145, 0x00a7, 0x001a, 0x0005, 0x00d0,
+ 0x023f, 0x033b, 0x02a2, 0x007a, 0xfe09, 0xfcae,
+ 0xfcac, 0xfd23, 0xfd29, 0xfcba, 0xfc8e, 0xfd16,
+ 0xfdfc, 0xfe9b, 0xfeb6, 0xfe87, 0xfe68, 0xfea8,
+ 0xff81, 0x00da, 0x0240, 0x0346, 0x03de, 0x0416,
+ 0x03c3, 0x02cf, 0x01ae, 0x0105, 0x00df, 0x009a,
+ 0xffa5, 0xfdfb, 0xfc06, 0xfa55, 0xf976, 0xf9a4,
+ 0xfa79, 0xfb2b, 0xfb47, 0xfae4, 0xfa41, 0xf96f,
+ 0xf87c, 0xf7b7, 0xf76e, 0xf78b, 0xf7a6, 0xf789,
+ 0xf76c, 0xf78c, 0xf7ac, 0xf750, 0xf688, 0xf623,
+ 0xf6c3, 0xf813, 0xf952, 0xfa63, 0xfbbc, 0xfd59,
+ 0xfe81, 0xfece, 0xfec7, 0xff18, 0xffc4, 0x008c,
+ 0x019f, 0x031d, 0x0450, 0x0424, 0x026f, 0x0037,
+ 0xfe7c, 0xfd48, 0xfc2c, 0xfb37, 0xfaeb, 0xfb60,
+ 0xfbe8, 0xfbbf, 0xfae5, 0xfa26, 0xfa45, 0xfb4a,
+ 0xfc8e, 0xfd50, 0xfd2f, 0xfc4a, 0xfb21, 0xfa3d,
+ 0xf9ba, 0xf932, 0xf845, 0xf743, 0xf6f7, 0xf7b0,
+ 0xf8bd, 0xf922, 0xf89b, 0xf7b9, 0xf716, 0xf6d6,
+ 0xf6ea, 0xf764, 0xf838, 0xf8ec, 0xf8c9, 0xf78f,
+ 0xf5bf, 0xf42e, 0xf36b, 0xf390, 0xf472, 0xf5bf,
+ 0xf70f, 0xf806, 0xf882, 0xf893, 0xf857, 0xf7f0,
+ 0xf7aa, 0xf801, 0xf939, 0xfaf0, 0xfc49, 0xfca9,
+ 0xfc3d, 0xfba6, 0xfb5b, 0xfb87, 0xfc61, 0xfe12,
+ 0x0025, 0x017d, 0x0143, 0xffd8, 0xfe6f, 0xfdd7,
+ 0xfdee, 0xfe3f, 0xfead, 0xff47, 0xffc6, 0xffbb,
+ 0xff13, 0xfe2b, 0xfd54, 0xfc84, 0xfba0, 0xfaf4,
+ 0xfb0d, 0xfbfd, 0xfd0b, 0xfd41, 0xfc51, 0xface,
+ 0xf994, 0xf916, 0xf93f, 0xf9b8, 0xfa2a, 0xfa54,
+ 0xfa2a, 0xf9cd, 0xf973, 0xf92c, 0xf8dc, 0xf85d,
+ 0xf7bc, 0xf756, 0xf792, 0xf87b, 0xf9c0, 0xfb0d,
+ 0xfc39, 0xfd44, 0xfe31, 0xfef8, 0xff93, 0x0004,
+ 0x0042, 0x0035, 0xffc7, 0xfee3, 0xfd8d, 0xfc0d,
+ 0xfb16, 0xfb79, 0xfd46, 0xff5d, 0x0039, 0xff59,
+ 0xfd9c, 0xfc46, 0xfbde, 0xfc15, 0xfc65, 0xfc9d,
+ 0xfccf, 0xfcf5, 0xfd0f, 0xfd33, 0xfd35, 0xfcb4,
+ 0xfba2, 0xfa7d, 0xf9e8, 0xf9fe, 0xfa39, 0xfa3c,
+ 0xfa4a, 0xfa8c, 0xfa7b, 0xf989, 0xf842, 0xf7fb,
+ 0xf927, 0xfabe, 0xfb83, 0xfb80, 0xfbd8, 0xfd0a,
+ 0xfe22, 0xfe3b, 0xfdce, 0xfde7, 0xfebc, 0xff87,
+ 0xffa6, 0xff5e, 0xff4c, 0xff79, 0xff9e, 0xffeb,
+ 0x00c6, 0x01d2, 0x0215, 0x014b, 0x0048, 0x000d,
+ 0x00a7, 0x012d, 0x0117, 0x00d3, 0x00cd, 0x00f2,
+ 0x014b, 0x01fd, 0x02ad, 0x0291, 0x0161, 0xffb7,
+ 0xfe57, 0xfdbf, 0xfe04, 0xfeae, 0xff35, 0xff77,
+ 0xff67, 0xff14, 0xfee9, 0xff4c, 0x002f, 0x0102,
+ 0x0110, 0x0057, 0xff95, 0xff4f, 0xff81, 0x0013,
+ 0x010a, 0x022f, 0x0313, 0x035b, 0x030f, 0x02a1,
+ 0x029e, 0x033f, 0x044b, 0x0531, 0x0569, 0x0515,
+ 0x04e9, 0x0556, 0x0670, 0x0811, 0x096c, 0x097e,
+ 0x086f, 0x079b, 0x07ed, 0x08d2, 0x0929, 0x08ad,
+ 0x07fe, 0x07ad, 0x07ac, 0x0771, 0x06ba, 0x0620,
+ 0x064c, 0x06c0, 0x0694, 0x0612, 0x062a, 0x0709,
+ 0x0848, 0x0945, 0x0932, 0x07c9, 0x0563, 0x028d,
+ 0x0017, 0xfec9, 0xfed5, 0xffc4, 0x0095, 0x00a6,
+ 0x001d, 0xfef6, 0xfd42, 0xfc2e, 0xfcb5, 0xfe1f,
+ 0xfee8, 0xfe35, 0xfc75, 0xfadf, 0xfa0b, 0xf969,
+ 0xf86c, 0xf755, 0xf6a0, 0xf692, 0xf762, 0xf8f7,
+ 0xfa8f, 0xfb5c, 0xfb0a, 0xf9b7, 0xf802, 0xf6c3,
+ 0xf67c, 0xf75e, 0xf93f, 0xfb5e, 0xfcb9, 0xfccf,
+ 0xfc03, 0xfaf4, 0xf9af, 0xf850, 0xf7ab, 0xf7d5,
+ 0xf790, 0xf661, 0xf52f, 0xf484, 0xf44a, 0xf4af,
+ 0xf5d3, 0xf745, 0xf85a, 0xf894, 0xf805, 0xf745,
+ 0xf6e6, 0xf711, 0xf783, 0xf7e4, 0xf847, 0xf8a8,
+ 0xf88a, 0xf7b5, 0xf694, 0xf5c8, 0xf5c5, 0xf657,
+ 0xf6e7, 0xf747, 0xf785, 0xf770, 0xf715, 0xf6c4,
+ 0xf65e, 0xf58c, 0xf4bf, 0xf4eb, 0xf62f, 0xf7bd,
+ 0xf8c7, 0xf90f, 0xf93a, 0xfa09, 0xfb32, 0xfc06,
+ 0xfc7e, 0xfcd7, 0xfd4c, 0xfe07, 0xfedb, 0xffb5,
+ 0x00e1, 0x024f, 0x0334, 0x02f8, 0x0233, 0x0215,
+ 0x02f8, 0x042d, 0x04f9, 0x054c, 0x059d, 0x0628,
+ 0x06e4, 0x07f2, 0x092a, 0x0a14, 0x0a71, 0x0a33,
+ 0x09a2, 0x0937, 0x08da, 0x0840, 0x078d, 0x0724,
+ 0x078e, 0x08dd, 0x0a57, 0x0b77, 0x0bf0, 0x0b91,
+ 0x0af5, 0x0ad2, 0x0afa, 0x0ae4, 0x0a5e, 0x09ab,
+ 0x08fd, 0x083b, 0x0806, 0x0927, 0x0afa, 0x0c5b,
+ 0x0cd5, 0x0c96, 0x0c28, 0x0b98, 0x0ab7, 0x0a52,
+ 0x0afc, 0x0bc9, 0x0b9c, 0x0a1d, 0x07c3, 0x0575,
+ 0x03b2, 0x02b1, 0x02ac, 0x03a0, 0x0550, 0x06e5,
+ 0x075a, 0x072d, 0x07a6, 0x08c2, 0x0959, 0x0883,
+ 0x06a9, 0x0540, 0x0503, 0x05b5, 0x070b, 0x0866,
+ 0x08e4, 0x0832, 0x06c1, 0x0594, 0x0545, 0x0540,
+ 0x04cd, 0x0418, 0x03ab, 0x035f, 0x0255, 0x0067,
+ 0xfef0, 0xff22, 0x0060, 0x0141, 0x018c, 0x0206,
+ 0x026f, 0x01d5, 0x007d, 0xff74, 0xff19, 0xfefa,
+ 0xfe50, 0xfd12, 0xfc18, 0xfb77, 0xfa63, 0xf8ee,
+ 0xf7ee, 0xf7aa, 0xf7e9, 0xf85d, 0xf8b2, 0xf8f0,
+ 0xf990, 0xfa7a, 0xfaf5, 0xfaf2, 0xfaf0, 0xfafe,
+ 0xfaf1, 0xfab0, 0xfa3b, 0xf9fb, 0xfa30, 0xfa69,
+ 0xfa37, 0xf98f, 0xf8c0, 0xf8a3, 0xf9f4, 0xfc44,
+ 0xfe2d, 0xfe9c, 0xfde4, 0xfd05, 0xfc2b, 0xfb6b,
+ 0xfb76, 0xfbcd, 0xfb20, 0xfa0f, 0xfa06, 0xfa8d,
+ 0xfaaa, 0xfabc, 0xfb39, 0xfbc5, 0xfbcd, 0xfb34,
+ 0xfa88, 0xfa48, 0xfa30, 0xf9c1, 0xf8d6, 0xf7e4,
+ 0xf7ad, 0xf81d, 0xf852, 0xf82e, 0xf835, 0xf867,
+ 0xf89e, 0xf8f2, 0xf94a, 0xf9b2, 0xfaa7, 0xfbee,
+ 0xfc8b, 0xfc72, 0xfc74, 0xfce1, 0xfd9f, 0xfdfe,
+ 0xfcca, 0xfa7e, 0xf911, 0xf8fb, 0xf964, 0xfa09,
+ 0xfae4, 0xfbbd, 0xfc58, 0xfcac, 0xfd10, 0xfd7d,
+ 0xfdb9, 0xfe6d, 0xffcb, 0x00af, 0x00c4, 0x0084,
+ 0xffaf, 0xfe57, 0xfd5b, 0xfcee, 0xfd0f, 0xfe69,
+ 0x00de, 0x02d6, 0x032b, 0x025a, 0x0137, 0xfffd,
+ 0xfeea, 0xfe7c, 0xfe90, 0xfec2, 0xff69, 0x0090,
+ 0x0116, 0x00e4, 0x01a2, 0x03b7, 0x0595, 0x064a,
+ 0x062f, 0x05d1, 0x0592, 0x05a0, 0x060a, 0x0690,
+ 0x0670, 0x054a, 0x03dc, 0x0341, 0x03e5, 0x0585,
+ 0x0768, 0x08b7, 0x0972, 0x0a30, 0x0aa9, 0x0a03,
+ 0x086b, 0x06d3, 0x0625, 0x0690, 0x06f1, 0x066e,
+ 0x05d2, 0x05b2, 0x05d0, 0x0668, 0x0767, 0x07b5,
+ 0x06ec, 0x0608, 0x059b, 0x0508, 0x043a, 0x03de,
+ 0x037d, 0x024e, 0x0125, 0x00e8, 0x0115, 0x00ca,
+ 0xff97, 0xfe14, 0xfda8, 0xfea4, 0xffeb, 0x0088,
+ 0x004b, 0xff51, 0xfdfe, 0xfcf9, 0xfc89, 0xfc5a,
+ 0xfbf9, 0xfb38, 0xfa8a, 0xfab8, 0xfb57, 0xfb3e,
+ 0xfa8f, 0xfa19, 0xfa07, 0xfa5e, 0xfb02, 0xfb88,
+ 0xfbb0, 0xfb72, 0xfb09, 0xfa6b, 0xf919, 0xf75a,
+ 0xf61d, 0xf5f8, 0xf71a, 0xf889, 0xf8c4, 0xf845,
+ 0xf852, 0xf8bf, 0xf8fd, 0xf901, 0xf919, 0xf96f,
+ 0xf948, 0xf84a, 0xf76a, 0xf71c, 0xf6ce, 0xf626,
+ 0xf543, 0xf45f, 0xf35a, 0xf268, 0xf2b5, 0xf4a5,
+ 0xf6b9, 0xf715, 0xf557, 0xf34b, 0xf30c, 0xf483,
+ 0xf673, 0xf7f5, 0xf892, 0xf8c2, 0xf8e2, 0xf865,
+ 0xf794, 0xf719, 0xf67d, 0xf5b5, 0xf595, 0xf65e,
+ 0xf7c4, 0xf970, 0xfb1d, 0xfc4f, 0xfc16, 0xfaa5,
+ 0xf9d5, 0xfac2, 0xfcbc, 0xfe8d, 0xff63, 0xff1c,
+ 0xfe0a, 0xfcb2, 0xfbc7, 0xfb98, 0xfc0d, 0xfd49,
+ 0xfeeb, 0xffad, 0xff0d, 0xfde7, 0xfcfb, 0xfc63,
+ 0xfc53, 0xfcbd, 0xfce0, 0xfc8d, 0xfc57, 0xfc25,
+ 0xfb95, 0xfb3a, 0xfbb8, 0xfc7c, 0xfc62, 0xfb30,
+ 0xf9c0, 0xf8c8, 0xf88f, 0xf92e, 0xf9be, 0xf92b,
+ 0xf813, 0xf750, 0xf68e, 0xf644, 0xf78c, 0xf9b6,
+ 0xfb0c, 0xfb07, 0xfa3a, 0xf94a, 0xf851, 0xf709,
+ 0xf59d, 0xf49f, 0xf46e, 0xf564, 0xf759, 0xf8ee,
+ 0xf90c, 0xf88b, 0xf8f9, 0xfa87, 0xfc1f, 0xfd20,
+ 0xfe00, 0xfec9, 0xfe85, 0xfd27, 0xfbf8, 0xfbae,
+ 0xfc2c, 0xfd56, 0xfe78, 0xfed6, 0xff3c, 0x007f,
+ 0x01c5, 0x029e, 0x03d7, 0x0504, 0x0519, 0x04b6,
+ 0x04f8, 0x05cd, 0x0680, 0x0676, 0x059d, 0x046a,
+ 0x03b4, 0x040a, 0x0484, 0x0439, 0x0429, 0x04da,
+ 0x0517, 0x04b2, 0x049c, 0x0511, 0x05a1, 0x05bd,
+ 0x0577, 0x0538, 0x0476, 0x0312, 0x024f, 0x029c,
+ 0x02fd, 0x0294, 0x016e, 0x0095, 0x00c8, 0x0123,
+ 0x005b, 0xfea6, 0xfd4c, 0xfce9, 0xfd57, 0xfe3e,
+ 0xfe85, 0xfd5b, 0xfbc8, 0xfab2, 0xf9c9, 0xf925,
+ 0xf911, 0xf986, 0xfa8e, 0xfbab, 0xfc32, 0xfc3c,
+ 0xfc14, 0xfbbd, 0xfb0f, 0xfa53, 0xfa60, 0xfaff,
+ 0xfb2c, 0xfb0c, 0xfae1, 0xf9e7, 0xf82f, 0xf721,
+ 0xf797, 0xf905, 0xfad6, 0xfcdc, 0xfe38, 0xfe20,
+ 0xfcfd, 0xfb42, 0xf97e, 0xf89f, 0xf898, 0xf901,
+ 0xf9f6, 0xfafa, 0xfb61, 0xfaf7, 0xf9a8, 0xf809,
+ 0xf702, 0xf6d0, 0xf765, 0xf85b, 0xf938, 0xfa4b,
+ 0xfc02, 0xfdfd, 0xff71, 0x002c, 0x00aa, 0x00f5,
+ 0x00fb, 0x0156, 0x01d5, 0x017d, 0x0085, 0xffa5,
+ 0xff04, 0xfec3, 0xfedc, 0xff37, 0xffb9, 0xffbc,
+ 0xfeec, 0xfe39, 0xfe7b, 0xff17, 0xff6e, 0x0057,
+ 0x0229, 0x0373, 0x03c0, 0x044b, 0x057a, 0x06b9,
+ 0x07ba, 0x0853, 0x0812, 0x06ac, 0x050a, 0x04b3,
+ 0x05b6, 0x06b2, 0x0664, 0x04ae, 0x02f1, 0x025a,
+ 0x0295, 0x0375, 0x0550, 0x077f, 0x08cb, 0x08eb,
+ 0x08a7, 0x089c, 0x0864, 0x07ab, 0x06af, 0x0580,
+ 0x045b, 0x03e0, 0x0423, 0x0499, 0x0469, 0x0318,
+ 0x0187, 0x010c, 0x01b1, 0x028b, 0x0312, 0x0345,
+ 0x02ee, 0x01d8, 0x006d, 0xff07, 0xfdc7, 0xfd5c,
+ 0xfdd9, 0xfe28, 0xfe1e, 0xfe49, 0xfe1f, 0xfd47,
+ 0xfc8a, 0xfc3f, 0xfc41, 0xfc80, 0xfc8a, 0xfc2d,
+ 0xfbae, 0xfaa0, 0xf8ee, 0xf7c0, 0xf734, 0xf619,
+ 0xf48f, 0xf3f3, 0xf49b, 0xf5be, 0xf6bb, 0xf784,
+ 0xf83e, 0xf8ce, 0xf8cf, 0xf811, 0xf6f3, 0xf62b,
+ 0xf62d, 0xf6bb, 0xf755, 0xf811, 0xf8fb, 0xf94b,
+ 0xf8b6, 0xf7e3, 0xf701, 0xf619, 0xf5d9, 0xf6a9,
+ 0xf87c, 0xfab2, 0xfbb0, 0xfa95, 0xf895, 0xf744,
+ 0xf71f, 0xf7df, 0xf8fe, 0xfa36, 0xfb7a, 0xfc5f,
+ 0xfc83, 0xfc8c, 0xfd32, 0xfdf2, 0xfdf6, 0xfd4a,
+ 0xfc8f, 0xfcdd, 0xfeda, 0x0139, 0x0227, 0x01bf,
+ 0x016a, 0x01d8, 0x02d1, 0x0413, 0x05ce, 0x081c,
+ 0x0a29, 0x0abc, 0x099c, 0x07b2, 0x05e0, 0x0499,
+ 0x044e, 0x056a, 0x079b, 0x09b1, 0x0ab5, 0x0acb,
+ 0x0ac5, 0x0b65, 0x0ce5, 0x0e96, 0x0f6f, 0x0f36,
+ 0x0e8b, 0x0da4, 0x0c1b, 0x0a8b, 0x0a35, 0x0ae2,
+ 0x0beb, 0x0d7e, 0x0efd, 0x0f75, 0x0f48, 0x0ed8,
+ 0x0e2e, 0x0da5, 0x0d2a, 0x0c7b, 0x0b9c, 0x0adb,
+ 0x0ae6, 0x0b92, 0x0be6, 0x0bc5, 0x0b30, 0x0a02,
+ 0x08f8, 0x0873, 0x0846, 0x08bf, 0x09ba, 0x0a7b,
+ 0x0ac1, 0x0ac9, 0x0af9, 0x0b1e, 0x0aaf, 0x09ee,
+ 0x091a, 0x07f9, 0x067d, 0x04b8, 0x031b, 0x01eb,
+ 0x008f, 0xff50, 0xff22, 0xff94, 0x0012, 0x012c,
+ 0x0312, 0x0499, 0x040a, 0x0164, 0xfe6b, 0xfc1e,
+ 0xfab7, 0xfa9e, 0xfbb4, 0xfd4f, 0xfe65, 0xfe25,
+ 0xfd3c, 0xfc63, 0xfb25, 0xf9de, 0xf9d2, 0xfaf4,
+ 0xfc10, 0xfc9f, 0xfce6, 0xfcd3, 0xfc89, 0xfca1,
+ 0xfc9e, 0xfbdf, 0xfb4e, 0xfb74, 0xfb67, 0xfacc,
+ 0xfa85, 0xfb37, 0xfbcb, 0xfaec, 0xf9b9, 0xfa07,
+ 0xfb53, 0xfbef, 0xfb76, 0xfb08, 0xfb50, 0xfb73,
+ 0xfad9, 0xfa0a, 0xf999, 0xf9f0, 0xfae3, 0xfb75,
+ 0xfb5f, 0xfb39, 0xfb62, 0xfba1, 0xfb69, 0xfaaf,
+ 0xfa08, 0xf9eb, 0xfa5c, 0xfb09, 0xfbaa, 0xfc31,
+ 0xfc89, 0xfccc, 0xfd17, 0xfd86, 0xfe76, 0xff16,
+ 0xfe00, 0xfc19, 0xfadb, 0xf9fd, 0xf95b, 0xf94e,
+ 0xf9f1, 0xfb77, 0xfd56, 0xfed7, 0x0027, 0x011f,
+ 0x016d, 0x0138, 0x004d, 0xfebb, 0xfd2a, 0xfc08,
+ 0xfb72, 0xfb08, 0xfa6d, 0xfa31, 0xfac0, 0xfb8c,
+ 0xfbf9, 0xfc5d, 0xfd9c, 0xff0b, 0xfef6, 0xfdbd,
+ 0xfd10, 0xfd53, 0xfe0a, 0xfeb8, 0xff5f, 0x0060,
+ 0x0143, 0x013c, 0x009c, 0x0008, 0xffcb, 0x003f,
+ 0x015a, 0x01f0, 0x011c, 0xffae, 0xfea8, 0xfdfd,
+ 0xfdd8, 0xfea9, 0xffee, 0x00d8, 0x014f, 0x01b6,
+ 0x023a, 0x0284, 0x0282, 0x0284, 0x0271, 0x01f6,
+ 0x011b, 0x0043, 0xff7c, 0xfe16, 0xfc63, 0xfbff,
+ 0xfd04, 0xfe1b, 0xfeb9, 0xfef9, 0xfedd, 0xfe2c,
+ 0xfcc7, 0xfb3c, 0xfa19, 0xf9b7, 0xfa5e, 0xfb44,
+ 0xfb9c, 0xfbd6, 0xfbcf, 0xfafb, 0xfa34, 0xfa36,
+ 0xfa98, 0xfb00, 0xfb5a, 0xfb6e, 0xfb3e, 0xfb38,
+ 0xfb71, 0xfb89, 0xfba2, 0xfc0c, 0xfc97, 0xfd7b,
+ 0xfeed, 0xfff8, 0xffda, 0xff6f, 0x0009, 0x016e,
+ 0x0206, 0x014f, 0x0018, 0xfee8, 0xfe60, 0xff0c,
+ 0x002c, 0x00c1, 0x008e, 0xffec, 0xff87, 0xff92,
+ 0xffb5, 0xff86, 0xfe70, 0xfcce, 0xfbf3, 0xfc02,
+ 0xfc16, 0xfc10, 0xfc6c, 0xfd00, 0xfcb5, 0xfb39,
+ 0xf9f0, 0xf98d, 0xf8e2, 0xf78c, 0xf695, 0xf644,
+ 0xf619, 0xf63a, 0xf6bd, 0xf74a, 0xf813, 0xf91f,
+ 0xf987, 0xf90c, 0xf86b, 0xf822, 0xf867, 0xf8fd,
+ 0xf924, 0xf8ac, 0xf805, 0xf73c, 0xf604, 0xf49a,
+ 0xf3ae, 0xf32f, 0xf2c1, 0xf2c2, 0xf35c, 0xf443,
+ 0xf523, 0xf580, 0xf5ba, 0xf6c8, 0xf817, 0xf878,
+ 0xf7f5, 0xf744, 0xf71e, 0xf769, 0xf76e, 0xf76b,
+ 0xf796, 0xf739, 0xf643, 0xf58d, 0xf606, 0xf7db,
+ 0xf9ba, 0xfa7a, 0xfa55, 0xf9a8, 0xf8c5, 0xf845,
+ 0xf86e, 0xf938, 0xfa1b, 0xfa0a, 0xf881, 0xf617,
+ 0xf41b, 0xf375, 0xf3d6, 0xf4de, 0xf6b5, 0xf918,
+ 0xfb5d, 0xfc98, 0xfc00, 0xfa50, 0xf967, 0xfa21,
+ 0xfbd4, 0xfd63, 0xfe1d, 0xfe13, 0xfdfe, 0xfe32,
+ 0xfe63, 0xfefc, 0x0098, 0x0234, 0x024c, 0x00bc,
+ 0xfe9c, 0xfd60, 0xfd99, 0xfef0, 0x00fe, 0x0285,
+ 0x024c, 0x0160, 0x0150, 0x0232, 0x03b1, 0x0523,
+ 0x0594, 0x0526, 0x04b1, 0x045f, 0x03d0, 0x032d,
+ 0x0315, 0x034b, 0x02fc, 0x022b, 0x0163, 0x00ff,
+ 0x0137, 0x01eb, 0x029b, 0x02f8, 0x0327, 0x0352,
+ 0x0311, 0x0237, 0x0183, 0x0162, 0x0153, 0x00ad,
+ 0xff73, 0xfe83, 0xfe6e, 0xfea7, 0xfe93, 0xfe4c,
+ 0xfe67, 0xff34, 0x0000, 0x003b, 0x003d, 0xfff0,
+ 0xff21, 0xfe33, 0xfd30, 0xfc1f, 0xfb6c, 0xfb41,
+ 0xfbbe, 0xfccf, 0xfd9b, 0xfd68, 0xfc59, 0xfb2b,
+ 0xfa8d, 0xfa69, 0xfa4e, 0xf9c3, 0xf88e, 0xf785,
+ 0xf730, 0xf6c8, 0xf661, 0xf6d1, 0xf7b7, 0xf84f,
+ 0xf845, 0xf772, 0xf663, 0xf5d0, 0xf5e4, 0xf662,
+ 0xf6a0, 0xf675, 0xf68e, 0xf6d8, 0xf697, 0xf5c7,
+ 0xf4e5, 0xf479, 0xf4d8, 0xf5b1, 0xf66c, 0xf68c,
+ 0xf5fc, 0xf578, 0xf5b8, 0xf67c, 0xf722, 0xf730,
+ 0xf65e, 0xf550, 0xf569, 0xf6e8, 0xf87b, 0xf919,
+ 0xf925, 0xf984, 0xfa4b, 0xfae1, 0xfb29, 0xfb90,
+ 0xfc1b, 0xfc87, 0xfce4, 0xfd54, 0xfdd4, 0xfe6b,
+ 0xff67, 0x00d4, 0x01c6, 0x018b, 0x010c, 0x0143,
+ 0x0222, 0x036c, 0x046e, 0x045b, 0x0381, 0x0253,
+ 0x00f8, 0x001d, 0x0056, 0x01b0, 0x03ce, 0x0567,
+ 0x05a7, 0x0547, 0x04e3, 0x045f, 0x03ff, 0x0422,
+ 0x0467, 0x0423, 0x0386, 0x0381, 0x046e, 0x05b1,
+ 0x068c, 0x06b2, 0x066b, 0x05e8, 0x0501, 0x03eb,
+ 0x030f, 0x0284, 0x0258, 0x0271, 0x027a, 0x025e,
+ 0x0241, 0x0238, 0x023c, 0x0228, 0x01eb, 0x014d,
+ 0x0047, 0xff8a, 0xff7c, 0xffcd, 0x0046, 0x00b2,
+ 0x00ff, 0x01b8, 0x0318, 0x046a, 0x04b0, 0x03a8,
+ 0x023f, 0x017c, 0x0172, 0x01b3, 0x01c1, 0x0146,
+ 0x001f, 0xfe86, 0xfda9, 0xfe30, 0xfeb9, 0xfe55,
+ 0xfdde, 0xfdd6, 0xfe03, 0xfe42, 0xfe78, 0xfead,
+ 0xfebc, 0xfe66, 0xfdcd, 0xfcea, 0xfbdd, 0xfb6a,
+ 0xfb9f, 0xfbe9, 0xfc1a, 0xfbd9, 0xfae2, 0xf9c3,
+ 0xf91b, 0xf8e1, 0xf8a0, 0xf82b, 0xf7fc, 0xf849,
+ 0xf8b1, 0xf919, 0xf99c, 0xfa06, 0xfa12, 0xf9a6,
+ 0xf8dc, 0xf834, 0xf83c, 0xf8e5, 0xf99a, 0xf9ec,
+ 0xf9d2, 0xf9d8, 0xfac3, 0xfc77, 0xfe08, 0xfebb,
+ 0xfe5a, 0xfd5d, 0xfcac, 0xfca7, 0xfd0c, 0xfd5c,
+ 0xfd78, 0xfdeb, 0xfe77, 0xfe0a, 0xfcd3, 0xfbe6,
+ 0xfbbf, 0xfc8c, 0xfe35, 0x000c, 0x0141, 0x0189,
+ 0x01a9, 0x025d, 0x0328, 0x03c1, 0x0475, 0x04e9,
+ 0x04e4, 0x0508, 0x05c0, 0x06cb, 0x0781, 0x076a,
+ 0x06f8, 0x0703, 0x07e2, 0x090a, 0x0989, 0x091d,
+ 0x0869, 0x083a, 0x0914, 0x0aae, 0x0c46, 0x0d9b,
+ 0x0e81, 0x0e77, 0x0d4c, 0x0b7c, 0x0a10, 0x09f4,
+ 0x0ae2, 0x0bc6, 0x0c1c, 0x0c56, 0x0d0f, 0x0e35,
+ 0x0f5a, 0x1039, 0x1054, 0x0f46, 0x0d9b, 0x0c6a,
+ 0x0c69, 0x0d76, 0x0ea3, 0x0ef0, 0x0e01, 0x0c5f,
+ 0x0b1c, 0x0ace, 0x0afe, 0x0af1, 0x0a9b, 0x0a59,
+ 0x09f4, 0x08f6, 0x07d2, 0x0718, 0x0698, 0x065d,
+ 0x06c7, 0x0799, 0x0822, 0x0800, 0x07a6, 0x07d8,
+ 0x082d, 0x0773, 0x0599, 0x038d, 0x0215, 0x01ab,
+ 0x0248, 0x032a, 0x0383, 0x032b, 0x0295, 0x0268,
+ 0x02e1, 0x03ab, 0x044f, 0x048a, 0x0451, 0x03ba,
+ 0x02d8, 0x01ae, 0x0044, 0xfede, 0xfdfe, 0xfe1b,
+ 0xff48, 0x0144, 0x037a, 0x04f2, 0x0509, 0x03e6,
+ 0x0223, 0x009c, 0x0011, 0x008c, 0x017b, 0x0234,
+ 0x0222, 0x010f, 0xff29, 0xfcd6, 0xfad6, 0xf9e7,
+ 0xfa2c, 0xfb40, 0xfc58, 0xfcb8, 0xfc42, 0xfb2c,
+ 0xf9be, 0xf89c, 0xf860, 0xf922, 0xfa7b, 0xfbeb,
+ 0xfd6a, 0xfebf, 0xfe9d, 0xfc4a, 0xf94f, 0xf7d5,
+ 0xf853, 0xf996, 0xfa5d, 0xfa90, 0xfadb, 0xfb9d,
+ 0xfc7f, 0xfcd7, 0xfc4e, 0xfb4c, 0xfa8f, 0xfa9d,
+ 0xfb56, 0xfc10, 0xfc56, 0xfc1c, 0xfb77, 0xfae3,
+ 0xfafd, 0xfb92, 0xfbc0, 0xfb35, 0xfaa5, 0xfac9,
+ 0xfb37, 0xfb01, 0xfa21, 0xf98d, 0xf9ef, 0xfaf1,
+ 0xfbc0, 0xfbeb, 0xfb80, 0xfabc, 0xfa05, 0xf9ad,
+ 0xf9a0, 0xf994, 0xf9a5, 0xfa59, 0xfbdd, 0xfdbf,
+ 0xff58, 0x0025, 0x000a, 0xff68, 0xfeba, 0xfe0d,
+ 0xfd2c, 0xfc3a, 0xfbaf, 0xfba7, 0xfbd1, 0xfbe5,
+ 0xfba4, 0xfaef, 0xfa46, 0xfa74, 0xfbc4, 0xfda3,
+ 0xff03, 0xff86, 0xffe6, 0x00d4, 0x0212, 0x0306,
+ 0x038e, 0x0401, 0x048f, 0x0516, 0x0585, 0x05ca,
+ 0x0569, 0x0405, 0x0224, 0x00c4, 0x0072, 0x0128,
+ 0x0294, 0x0417, 0x04dd, 0x0483, 0x038f, 0x02d9,
+ 0x029a, 0x028b, 0x029d, 0x02f8, 0x0357, 0x0319,
+ 0x0201, 0x00a4, 0xffbd, 0xff78, 0xffa6, 0x001c,
+ 0x00be, 0x0150, 0x0175, 0x010a, 0x0075, 0x0031,
+ 0x0023, 0xffb9, 0xfec9, 0xfe2b, 0xfee0, 0x00a4,
+ 0x021f, 0x0280, 0x0232, 0x01f4, 0x01c5, 0x012c,
+ 0x0022, 0xff21, 0xfe8f, 0xfe95, 0xff17, 0xffa6,
+ 0xffc0, 0xff67, 0xff25, 0xff4c, 0xff8f, 0xff93,
+ 0xff7d, 0xff9f, 0xffe8, 0x0000, 0xffbd, 0xff1a,
+ 0xfe26, 0xfd2c, 0xfc98, 0xfc65, 0xfc22, 0xfbc0,
+ 0xfbcd, 0xfc98, 0xfd9a, 0xfe12, 0xfde0, 0xfd73,
+ 0xfd16, 0xfccf, 0xfc94, 0xfc46, 0xfbb7, 0xfb23,
+ 0xfb2e, 0xfc15, 0xfd3e, 0xfddb, 0xfdb2, 0xfd07,
+ 0xfc25, 0xfb6d, 0xfb4d, 0xfb82, 0xfadd, 0xf8a0,
+ 0xf5cf, 0xf477, 0xf58a, 0xf7d4, 0xf93c, 0xf8c7,
+ 0xf71e, 0xf57c, 0xf487, 0xf424, 0xf41b, 0xf480,
+ 0xf521, 0xf530, 0xf43f, 0xf331, 0xf353, 0xf4ac,
+ 0xf5ea, 0xf606, 0xf534, 0xf436, 0xf390, 0xf38c,
+ 0xf45d, 0xf5bd, 0xf6ea, 0xf755, 0xf711, 0xf66c,
+ 0xf5be, 0xf5a1, 0xf6a9, 0xf89c, 0xfa60, 0xfb33,
+ 0xfb56, 0xfb27, 0xfa6a, 0xf8fe, 0xf766, 0xf63c,
+ 0xf5a3, 0xf5b9, 0xf70f, 0xf9ea, 0xfd52, 0xffc2,
+ 0x0061, 0xff35, 0xfccb, 0xfa29, 0xf87d, 0xf84f,
+ 0xf907, 0xf9a2, 0xf9cc, 0xf9f5, 0xfa64, 0xfaae,
+ 0xfa74, 0xfa17, 0xfa33, 0xfb16, 0xfc7f, 0xfd7c,
+ 0xfd3d, 0xfc1f, 0xfb12, 0xfa6b, 0xf9e9, 0xf98d,
+ 0xf9c3, 0xfa69, 0xfa8e, 0xf9aa, 0xf865, 0xf7d3,
+ 0xf861, 0xf9ba, 0xfb49, 0xfc6c, 0xfcc0, 0xfc94,
+ 0xfc99, 0xfd2d, 0xfe02, 0xfe65, 0xfe22, 0xfdd2,
+ 0xfe13, 0xfefa, 0x0025, 0x00e3, 0x00cd, 0x0030,
+ 0xff78, 0xfeb5, 0xfe1d, 0xfe84, 0x007c, 0x0318,
+ 0x04a0, 0x047d, 0x0398, 0x02f0, 0x026b, 0x0199,
+ 0x00e8, 0x00be, 0x0057, 0xfef4, 0xfd3e, 0xfcae,
+ 0xfdd1, 0xff9b, 0x0099, 0x004e, 0xff51, 0xfe9b,
+ 0xfe9a, 0xfed8, 0xfe90, 0xfd68, 0xfbc8, 0xfa4f,
+ 0xf923, 0xf870, 0xf8bf, 0xfa36, 0xfc3c, 0xfde6,
+ 0xfeba, 0xfef3, 0xfeb9, 0xfdd6, 0xfc6c, 0xfb10,
+ 0xfa30, 0xf9cf, 0xf99e, 0xf95d, 0xf905, 0xf8c4,
+ 0xf8a8, 0xf85a, 0xf7cf, 0xf7f8, 0xf97d, 0xfb74,
+ 0xfc58, 0xfbe1, 0xfb07, 0xfa2d, 0xf8e5, 0xf773,
+ 0xf6bf, 0xf705, 0xf7d0, 0xf8b3, 0xf9ca, 0xfb65,
+ 0xfd23, 0xfe3c, 0xfe42, 0xfd34, 0xfb8a, 0xfa46,
+ 0xfa4a, 0xfb86, 0xfcfe, 0xfdeb, 0xfe55, 0xfe89,
+ 0xfeb8, 0xff15, 0xffe3, 0x0136, 0x0267, 0x02a5,
+ 0x023f, 0x01f3, 0x01aa, 0x00d9, 0xff73, 0xfdfc,
+ 0xfce6, 0xfc25, 0xfbbf, 0xfbee, 0xfcbc, 0xfe03,
+ 0xff5e, 0x0062, 0x010a, 0x0190, 0x0243, 0x030a,
+ 0x0309, 0x01d7, 0x004c, 0xff46, 0xfebc, 0xfe70,
+ 0xfea4, 0xff4d, 0xff6c, 0xfe90, 0xfdd5, 0xfe29,
+ 0xff2a, 0x001e, 0x0103, 0x0207, 0x028b, 0x01f4,
+ 0x00cd, 0xffe6, 0xff7b, 0xff65, 0xff20, 0xfe64,
+ 0xfd8e, 0xfd29, 0xfd9d, 0xfecf, 0x0016, 0x013b,
+ 0x0274, 0x0362, 0x0322, 0x01bc, 0x00d9, 0x01b9,
+ 0x035f, 0x043e, 0x0432, 0x03c8, 0x0306, 0x01d1,
+ 0x00ee, 0x0110, 0x0169, 0x0114, 0x0071, 0x0022,
+ 0x0078, 0x0170, 0x025e, 0x027d, 0x019b, 0x0066,
+ 0xfffa, 0x0063, 0x007e, 0xff9c, 0xfe72, 0xfe19,
+ 0xfe43, 0xfda9, 0xfc3c, 0xfb0d, 0xfa83, 0xfa46,
+ 0xfa27, 0xfa66, 0xfaef, 0xfada, 0xf9a7, 0xf80e,
+ 0xf74c, 0xf7f5, 0xf8fd, 0xf8ef, 0xf7de, 0xf6b3,
+ 0xf5fb, 0xf5f0, 0xf631, 0xf63a, 0xf63f, 0xf697,
+ 0xf6fc, 0xf6cc, 0xf5ea, 0xf504, 0xf475, 0xf42f,
+ 0xf4a3, 0xf612, 0xf7cb, 0xf914, 0xfa14, 0xfb4c,
+ 0xfc48, 0xfc34, 0xfb64, 0xfa8a, 0xf9ae, 0xf8b8,
+ 0xf7e1, 0xf7dd, 0xf933, 0xfb10, 0xfc5b, 0xfd06,
+ 0xfd52, 0xfd48, 0xfcf9, 0xfcb5, 0xfcd4, 0xfd26,
+ 0xfda9, 0xfee9, 0x0085, 0x0154, 0x013c, 0x015d,
+ 0x026c, 0x03bd, 0x0477, 0x04b1, 0x047a, 0x03ad,
+ 0x02c8, 0x024d, 0x0265, 0x0332, 0x0495, 0x062a,
+ 0x0765, 0x07e9, 0x0818, 0x0869, 0x08d3, 0x093d,
+ 0x09ba, 0x0a79, 0x0b51, 0x0b98, 0x0b46, 0x0aee,
+ 0x0abe, 0x0ae9, 0x0ba8, 0x0cb7, 0x0ddc, 0x0f08,
+ 0x1006, 0x1094, 0x1074, 0x0fa4, 0x0e5c, 0x0ce3,
+ 0x0bb7, 0x0b40, 0x0b73, 0x0bdf, 0x0c00, 0x0c00,
+ 0x0c74, 0x0d24, 0x0db1, 0x0e4e, 0x0ee6, 0x0f27,
+ 0x0ed2, 0x0da2, 0x0bf9, 0x0ad2, 0x0a99, 0x0aa6,
+ 0x09f1, 0x0889, 0x0764, 0x06db, 0x06c9, 0x0734,
+ 0x07df, 0x0837, 0x07ce, 0x0691, 0x04c0, 0x02d0,
+ 0x018e, 0x0155, 0x0165, 0x012b, 0x00f1, 0x0104,
+ 0x0152, 0x0189, 0x019f, 0x0233, 0x0381, 0x04f1,
+ 0x05d2, 0x05b3, 0x04df, 0x044f, 0x046b, 0x04a6,
+ 0x0467, 0x03be, 0x033a, 0x030c, 0x02e5, 0x02a2,
+ 0x026a, 0x0275, 0x024c, 0x0103, 0xfee5, 0xfd31,
+ 0xfc6a, 0xfc4a, 0xfc61, 0xfc5a, 0xfc3d, 0xfc31,
+ 0xfc4b, 0xfca9, 0xfd50, 0xfde5, 0xfdc4, 0xfcca,
+ 0xfbbb, 0xfb5b, 0xfbdc, 0xfccf, 0xfd40, 0xfd04,
+ 0xfcfc, 0xfd40, 0xfd14, 0xfc5b, 0xfb77, 0xfada,
+ 0xfae1, 0xfb85, 0xfc70, 0xfd1c, 0xfceb, 0xfbd0,
+ 0xfac3, 0xfad2, 0xfbb8, 0xfc31, 0xfb9e, 0xfa7e,
+ 0xf98f, 0xf8df, 0xf818, 0xf7ea, 0xf91e, 0xfa86,
+ 0xfa9f, 0xf9c3, 0xf8da, 0xf850, 0xf866, 0xf8e0,
+ 0xf931, 0xf92b, 0xf8c2, 0xf7f2, 0xf721, 0xf6cc,
+ 0xf6ef, 0xf739, 0xf76b, 0xf73d, 0xf6cc, 0xf6db,
+ 0xf7c1, 0xf8e4, 0xf9bc, 0xfa46, 0xfaaa, 0xfab7,
+ 0xfa01, 0xf8ca, 0xf7f4, 0xf804, 0xf8e8, 0xfa05,
+ 0xfa8c, 0xfa7d, 0xfac4, 0xfc1b, 0xfdff, 0xff27,
+ 0xff30, 0xff22, 0xffd8, 0x00eb, 0x016c, 0x0125,
+ 0x00c5, 0x00a7, 0x002e, 0xff1a, 0xfe74, 0xff2b,
+ 0x009c, 0x01ac, 0x0202, 0x01b2, 0x0138, 0x0195,
+ 0x02e7, 0x03eb, 0x03b9, 0x02dd, 0x0288, 0x030b,
+ 0x037f, 0x0325, 0x0231, 0x00e9, 0xff35, 0xfd6f,
+ 0xfc9d, 0xfd34, 0xfe52, 0xfedc, 0xfec6, 0xfe82,
+ 0xfe53, 0xfeae, 0xfff4, 0x0186, 0x026b, 0x0272,
+ 0x0201, 0x018b, 0x016f, 0x01b5, 0x0246, 0x02e8,
+ 0x02e5, 0x01fd, 0x0137, 0x0120, 0x0104, 0x00b2,
+ 0x00a3, 0x009f, 0x0058, 0x005c, 0x0159, 0x0334,
+ 0x04e2, 0x056a, 0x052a, 0x04e5, 0x0442, 0x031f,
+ 0x027c, 0x02aa, 0x02e9, 0x02cf, 0x0257, 0x0195,
+ 0x00d0, 0x002b, 0xffb1, 0xff72, 0xff24, 0xfea8,
+ 0xfe97, 0xff1d, 0xff71, 0xff27, 0xfe6c, 0xfd1c,
+ 0xfb28, 0xf961, 0xf8c6, 0xf988, 0xfaba, 0xfb27,
+ 0xfa88, 0xf953, 0xf7fd, 0xf732, 0xf799, 0xf920,
+ 0xfb23, 0xfcc6, 0xfd72, 0xfd47, 0xfc8e, 0xfb6b,
+ 0xfa30, 0xf933, 0xf8ba, 0xf911, 0xfa1f, 0xfb40,
+ 0xfbf9, 0xfc69, 0xfcb2, 0xfc86, 0xfba9, 0xfa61,
+ 0xf93b, 0xf874, 0xf7b9, 0xf6f7, 0xf6d1, 0xf773,
+ 0xf82c, 0xf85e, 0xf806, 0xf7d4, 0xf855, 0xf90d,
+ 0xf9c3, 0xfb05, 0xfc4e, 0xfc6d, 0xfb74, 0xfa32,
+ 0xf93b, 0xf906, 0xf9c0, 0xfafc, 0xfc31, 0xfd04,
+ 0xfcf7, 0xfbd3, 0xfa5b, 0xf95e, 0xf8b3, 0xf7ca,
+ 0xf69e, 0xf5c5, 0xf575, 0xf52b, 0xf504, 0xf5b4,
+ 0xf6f3, 0xf7d7, 0xf7f4, 0xf785, 0xf740, 0xf7a4,
+ 0xf881, 0xf978, 0xfa07, 0xf9ae, 0xf86e, 0xf67d,
+ 0xf483, 0xf3c2, 0xf4b8, 0xf674, 0xf7c5, 0xf84f,
+ 0xf873, 0xf88e, 0xf88d, 0xf82c, 0xf7a6, 0xf78b,
+ 0xf79a, 0xf71c, 0xf670, 0xf63e, 0xf654, 0xf680,
+ 0xf6ed, 0xf7bd, 0xf8e2, 0xf9f3, 0xfac2, 0xfbaf,
+ 0xfc94, 0xfcae, 0xfbb2, 0xf9fb, 0xf857, 0xf7e4,
+ 0xf947, 0xfbdb, 0xfe23, 0xff30, 0xff20, 0xfed5,
+ 0xff41, 0x004d, 0x0116, 0x0147, 0x0117, 0x00a5,
+ 0x0002, 0xff59, 0xff12, 0xff55, 0xffae, 0x0005,
+ 0x0061, 0x0044, 0xffdc, 0x0006, 0x00ed, 0x0201,
+ 0x0260, 0x014c, 0xff56, 0xfe05, 0xfe09, 0xfed2,
+ 0xffae, 0x0057, 0x00bd, 0x0120, 0x01d6, 0x02bd,
+ 0x0392, 0x041a, 0x03fb, 0x0359, 0x0286, 0x0175,
+ 0x0057, 0xff81, 0xfefd, 0xfeca, 0xfe66, 0xfd3f,
+ 0xfc17, 0xfc18, 0xfd0a, 0xfd96, 0xfcf5, 0xfba8,
+ 0xfaaf, 0xfac1, 0xfbb2, 0xfc5e, 0xfc6d, 0xfcaf,
+ 0xfd2c, 0xfd45, 0xfcfe, 0xfc94, 0xfc0a, 0xfb26,
+ 0xf9e6, 0xf8fe, 0xf8df, 0xf95b, 0xfa62, 0xfb7d,
+ 0xfbb6, 0xfa99, 0xf8a0, 0xf724, 0xf728, 0xf82d,
+ 0xf930, 0xf9ae, 0xf997, 0xf94f, 0xf944, 0xf9ae,
+ 0xfa8f, 0xfb73, 0xfbec, 0xfbfe, 0xfbd8, 0xfbd5,
+ 0xfc31, 0xfcf7, 0xfe1c, 0xff02, 0xfeef, 0xfe0a,
+ 0xfd14, 0xfcbf, 0xfd0c, 0xfd65, 0xfdb4, 0xfdf7,
+ 0xfdf3, 0xfe41, 0xff74, 0x00f2, 0x01e6, 0x020f,
+ 0x01e9, 0x01f1, 0x01dc, 0x018d, 0x015c, 0x0162,
+ 0x01cf, 0x02a4, 0x0348, 0x037c, 0x038a, 0x03b6,
+ 0x03d4, 0x0370, 0x02ce, 0x0280, 0x0242, 0x01d6,
+ 0x0174, 0x013c, 0x0169, 0x01e1, 0x0239, 0x029a,
+ 0x0325, 0x038e, 0x0398, 0x02e2, 0x0157, 0xffb1,
+ 0xfe6e, 0xfd6f, 0xfcc9, 0xfce0, 0xfd89, 0xfe0a,
+ 0xfe42, 0xfeb5, 0xff7d, 0x005b, 0x00fb, 0x010d,
+ 0x008a, 0xff68, 0xfded, 0xfd12, 0xfcf5, 0xfcae,
+ 0xfc1f, 0xfbf0, 0xfc78, 0xfd77, 0xfe47, 0xfe7c,
+ 0xfe21, 0xfd92, 0xfd40, 0xfd06, 0xfc97, 0xfc75,
+ 0xfd22, 0xfe0b, 0xfdff, 0xfcb2, 0xfb7e, 0xfb84,
+ 0xfc02, 0xfbf3, 0xfb86, 0xfb50, 0xfb50, 0xfb09,
+ 0xfaa3, 0xfaf8, 0xfbea, 0xfc68, 0xfc23, 0xfbae,
+ 0xfb6f, 0xfb5c, 0xfb81, 0xfc18, 0xfcf4, 0xfd52,
+ 0xfcdf, 0xfc35, 0xfbd2, 0xfb70, 0xfb15, 0xfb22,
+ 0xfb24, 0xfa6e, 0xf936, 0xf817, 0xf79b, 0xf827,
+ 0xf98b, 0xfb3b, 0xfcb0, 0xfd70, 0xfd9c, 0xfe01,
+ 0xfeff, 0xffce, 0xffa8, 0xff0c, 0xfeb0, 0xfe79,
+ 0xfe9b, 0xffa7, 0x013c, 0x0249, 0x01f0, 0x0017,
+ 0xfdd4, 0xfc6d, 0xfc0c, 0xfc35, 0xfcd0, 0xfdeb,
+ 0xff09, 0xffa7, 0xfff9, 0x0058, 0x00ee, 0x01a6,
+ 0x0206, 0x01da, 0x01be, 0x023f, 0x0333, 0x0415,
+ 0x04a2, 0x0536, 0x0647, 0x0781, 0x07eb, 0x0719,
+ 0x05f5, 0x05a3, 0x0648, 0x0761, 0x084d, 0x08d1,
+ 0x0922, 0x0918, 0x08c2, 0x08ef, 0x09c5, 0x0aef,
+ 0x0c98, 0x0e3e, 0x0ee1, 0x0ee9, 0x0f70, 0x1034,
+ 0x0fe8, 0x0e95, 0x0de6, 0x0e2f, 0x0dfb, 0x0ced,
+ 0x0bda, 0x0b3b, 0x0b4a, 0x0c15, 0x0d1d, 0x0dbd,
+ 0x0da0, 0x0cd9, 0x0bc0, 0x0ae2, 0x0aad, 0x0ac7,
+ 0x0a7d, 0x0982, 0x07ea, 0x065f, 0x05e2, 0x069e,
+ 0x07be, 0x0845, 0x07c6, 0x06e2, 0x069e, 0x073e,
+ 0x0810, 0x0846, 0x082c, 0x08a2, 0x0947, 0x08e0,
+ 0x074c, 0x05d8, 0x05b3, 0x0695, 0x0767, 0x07b1,
+ 0x07bd, 0x080e, 0x08b5, 0x08ff, 0x0881, 0x07ac,
+ 0x06f5, 0x067d, 0x0607, 0x0542, 0x048c, 0x0448,
+ 0x043a, 0x043d, 0x044f, 0x048f, 0x0545, 0x05e6,
+ 0x05a4, 0x04f7, 0x0496, 0x0447, 0x03cb, 0x0359,
+ 0x031f, 0x02eb, 0x026e, 0x01cb, 0x014c, 0x00cf,
+ 0xffff, 0xfecf, 0xfda4, 0xfcd8, 0xfc25, 0xfb7c,
+ 0xfb61, 0xfb8d, 0xfb08, 0xfa2d, 0xfa56, 0xfb9e,
+ 0xfca3, 0xfc7a, 0xfb96, 0xfade, 0xfaa1, 0xfa87,
+ 0xfa3e, 0xf9fe, 0xfa0d, 0xfa38, 0xfa48, 0xfa44,
+ 0xfa1c, 0xf9bd, 0xf961, 0xf97d, 0xfa1e, 0xfa6e,
+ 0xf9ca, 0xf8ca, 0xf83d, 0xf808, 0xf7d5, 0xf813,
+ 0xf940, 0xfac9, 0xfba9, 0xfb84, 0xfa99, 0xf9ae,
+ 0xf99e, 0xfa47, 0xfb13, 0xfbd4, 0xfc31, 0xfc07,
+ 0xfc01, 0xfc3f, 0xfc04, 0xfb0f, 0xf9e0, 0xf8fc,
+ 0xf885, 0xf88b, 0xf940, 0xfa2b, 0xfa38, 0xf91f,
+ 0xf7a2, 0xf6b0, 0xf6c3, 0xf799, 0xf8a8, 0xf989,
+ 0xfa05, 0xfa64, 0xfaec, 0xfb44, 0xfb8e, 0xfc73,
+ 0xfdae, 0xfe6d, 0xfe84, 0xfe34, 0xfdc9, 0xfd8e,
+ 0xfd8d, 0xfdae, 0xfde2, 0xfddb, 0xfd2a, 0xfc36,
+ 0xfc18, 0xfd09, 0xfe38, 0xff36, 0x0015, 0x00df,
+ 0x016c, 0x0152, 0x0055, 0xff09, 0xfe11, 0xfd5e,
+ 0xfced, 0xfd58, 0xfeaa, 0xffd1, 0x0012, 0xffe6,
+ 0x0009, 0x00e8, 0x021b, 0x02bc, 0x02fc, 0x03a4,
+ 0x0448, 0x0421, 0x0368, 0x02ac, 0x022f, 0x01e3,
+ 0x018b, 0x011f, 0x00c4, 0x00bd, 0x015c, 0x0295,
+ 0x03f0, 0x04eb, 0x052a, 0x04cf, 0x042f, 0x035d,
+ 0x027d, 0x0198, 0x0099, 0xffec, 0xffbd, 0xffa3,
+ 0xffd7, 0x00b6, 0x0176, 0x014a, 0x0091, 0x0014,
+ 0x000d, 0x001c, 0xfffe, 0xffcc, 0xffc5, 0x0021,
+ 0x00d9, 0x0191, 0x01cc, 0x0107, 0xff65, 0xfe17,
+ 0xfe02, 0xfeab, 0xff61, 0x003d, 0x0164, 0x0225,
+ 0x01d2, 0x00c5, 0xffaa, 0xfe94, 0xfd8f, 0xfd1b,
+ 0xfd86, 0xfe45, 0xfe9f, 0xfea5, 0xfec7, 0xff36,
+ 0xffc2, 0xffb2, 0xfe58, 0xfc3a, 0xfa99, 0xfa34,
+ 0xfacd, 0xfb66, 0xfb52, 0xfab1, 0xf9d0, 0xf901,
+ 0xf870, 0xf7ee, 0xf796, 0xf7ca, 0xf857, 0xf8b7,
+ 0xf8ab, 0xf83e, 0xf797, 0xf6c3, 0xf5f8, 0xf570,
+ 0xf4c4, 0xf3aa, 0xf2a1, 0xf206, 0xf1f2, 0xf28f,
+ 0xf392, 0xf48e, 0xf575, 0xf647, 0xf6fb, 0xf764,
+ 0xf730, 0xf675, 0xf58e, 0xf4aa, 0xf407, 0xf3ee,
+ 0xf43e, 0xf46c, 0xf441, 0xf446, 0xf4e5, 0xf5a8,
+ 0xf60f, 0xf60a, 0xf58c, 0xf497, 0xf3b4, 0xf3d3,
+ 0xf551, 0xf734, 0xf82a, 0xf81a, 0xf7d3, 0xf7a3,
+ 0xf778, 0xf7d5, 0xf903, 0xf9f3, 0xf99a, 0xf86d,
+ 0xf790, 0xf7a6, 0xf88a, 0xf97e, 0xf9ea, 0xf9c3,
+ 0xf95d, 0xf946, 0xf9bc, 0xfa81, 0xfb35, 0xfb2f,
+ 0xf9c7, 0xf74d, 0xf4fb, 0xf40b, 0xf4c0, 0xf637,
+ 0xf78a, 0xf86d, 0xf8f1, 0xf97c, 0xfa3e, 0xfab1,
+ 0xfa8b, 0xfa2c, 0xfa23, 0xfac2, 0xfb9c, 0xfc05,
+ 0xfc36, 0xfcbc, 0xfda3, 0xfebb, 0xffaf, 0x000e,
+ 0xffa4, 0xfe9e, 0xfdbd, 0xfdc5, 0xfe76, 0xfed3,
+ 0xfe7a, 0xfe17, 0xfe47, 0xfe97, 0xfe71, 0xfe16,
+ 0xfde7, 0xfe02, 0xfec4, 0x004c, 0x01e1, 0x02be,
+ 0x02f7, 0x031b, 0x034e, 0x0335, 0x0297, 0x01b7,
+ 0x0106, 0x00b3, 0x00c0, 0x0116, 0x0144, 0x00d9,
+ 0x0018, 0xff90, 0xff89, 0xfffb, 0x0090, 0x00eb,
+ 0x00f1, 0x008b, 0xffe4, 0xff7e, 0xff6f, 0xff2b,
+ 0xfe57, 0xfd4e, 0xfc77, 0xfb75, 0xf9f7, 0xf8b6,
+ 0xf891, 0xf9b9, 0xfbc5, 0xfd70, 0xfd7f, 0xfc10,
+ 0xfa29, 0xf8e8, 0xf917, 0xfa6f, 0xfbcb, 0xfc3b,
+ 0xfb8e, 0xfa5d, 0xf979, 0xf971, 0xfa4d, 0xfb30,
+ 0xfb1b, 0xfa4b, 0xf9ac, 0xf9ac, 0xfa12, 0xfa51,
+ 0xfa20, 0xf9bc, 0xf951, 0xf8cc, 0xf84d, 0xf84a,
+ 0xf934, 0xfaad, 0xfbae, 0xfbcb, 0xfb9d, 0xfbd0,
+ 0xfc8a, 0xfd98, 0xfeb3, 0xff76, 0xff88, 0xff05,
+ 0xfe5b, 0xfddc, 0xfd9e, 0xfd97, 0xfdba, 0xfdeb,
+ 0xfe14, 0xfe81, 0xffa0, 0x014e, 0x02b8, 0x030e,
+ 0x025d, 0x016a, 0x008b, 0xff8d, 0xfe77, 0xfd8e,
+ 0xfd34, 0xfdbd, 0xfee3, 0xfff5, 0x0097, 0x00fe,
+ 0x0185, 0x0210, 0x022a, 0x01cd, 0x0146, 0x00cf,
+ 0x006c, 0xffbb, 0xfe92, 0xfd9d, 0xfd52, 0xfd5d,
+ 0xfd7e, 0xfdc0, 0xfe10, 0xfe28, 0xfde0, 0xfd98,
+ 0xfdd8, 0xfeb8, 0xffd8, 0x0074, 0x0009, 0xff39,
+ 0xff26, 0x0007, 0x0101, 0x0106, 0xffed, 0xfe9f,
+ 0xfe0c, 0xfe64, 0xff46, 0x0048, 0x0139, 0x01fd,
+ 0x0270, 0x02a0, 0x02cf, 0x034e, 0x0434, 0x050c,
+ 0x0502, 0x03b7, 0x01af, 0xffd5, 0xfebd, 0xfe82,
+ 0xff0c, 0x000b, 0x00fe, 0x015d, 0x00f4, 0x0027,
+ 0xff8e, 0xff28, 0xfe77, 0xfd50, 0xfc51, 0xfc55,
+ 0xfd45, 0xfe24, 0xfe56, 0xfdf3, 0xfd43, 0xfc72,
+ 0xfb76, 0xfa69, 0xf9d0, 0xf9f9, 0xfa5a, 0xfa18,
+ 0xf904, 0xf7ce, 0xf6f7, 0xf66a, 0xf636, 0xf683,
+ 0xf710, 0xf79b, 0xf830, 0xf8e7, 0xf9b7, 0xfa27,
+ 0xf9aa, 0xf884, 0xf767, 0xf683, 0xf5a3, 0xf4eb,
+ 0xf4d3, 0xf556, 0xf5e3, 0xf654, 0xf713, 0xf855,
+ 0xf9d4, 0xfb1d, 0xfbf2, 0xfc76, 0xfcd7, 0xfd2a,
+ 0xfd70, 0xfd7f, 0xfd24, 0xfc87, 0xfc0d, 0xfbec,
+ 0xfc1c, 0xfca8, 0xfdb0, 0xff03, 0x001e, 0x00c3,
+ 0x013b, 0x01bb, 0x01d0, 0x0115, 0x0014, 0xff6a,
+ 0xfed5, 0xfe16, 0xfdd5, 0xfee1, 0x0104, 0x0336,
+ 0x04d6, 0x0604, 0x06f0, 0x07ba, 0x08bc, 0x0a53,
+ 0x0c45, 0x0d88, 0x0d4a, 0x0c23, 0x0b5e, 0x0b87,
+ 0x0c27, 0x0c76, 0x0c4a, 0x0c22, 0x0c3f, 0x0c80,
+ 0x0ce8, 0x0d77, 0x0de4, 0x0dc5, 0x0d0c, 0x0c5b,
+ 0x0c69, 0x0d27, 0x0e03, 0x0e94, 0x0ed9, 0x0edc,
+ 0x0e7c, 0x0de2, 0x0db1, 0x0e19, 0x0e66, 0x0ddf,
+ 0x0cb6, 0x0bba, 0x0b44, 0x0af1, 0x0a78, 0x09f4,
+ 0x0952, 0x0844, 0x06d4, 0x057f, 0x04e4, 0x056f,
+ 0x06e5, 0x085d, 0x090b, 0x0903, 0x08ed, 0x0915,
+ 0x092a, 0x08c7, 0x07ff, 0x071c, 0x063a, 0x0568,
+ 0x04c5, 0x042d, 0x034a, 0x021b, 0x0120, 0x00b8,
+ 0x00b5, 0x00db, 0x0133, 0x01ad, 0x01ed, 0x01aa,
+ 0x0107, 0x006b, 0x0005, 0xffb8, 0xff89, 0xff8c,
+ 0xffa9, 0xffe2, 0x0066, 0x011c, 0x0191, 0x015a,
+ 0x0078, 0xff6a, 0xfec5, 0xfed3, 0xff5e, 0xffc5,
+ 0xff70, 0xfe54, 0xfcfc, 0xfc29, 0xfc3d, 0xfd27,
+ 0xfebb, 0x00a2, 0x021e, 0x028a, 0x021f, 0x01b7,
+ 0x01c8, 0x01ef, 0x01b4, 0x013e, 0x00b6, 0xffce,
+ 0xfe64, 0xfd0c, 0xfc71, 0xfc8a, 0xfcc6, 0xfce4,
+ 0xfd3b, 0xfe1f, 0xff62, 0x0070, 0x00ba, 0x0002,
+ 0xfe76, 0xfc9d, 0xfb1b, 0xfa4d, 0xfa05, 0xf9c9,
+ 0xf967, 0xf91a, 0xf8f4, 0xf88f, 0xf7a1, 0xf695,
+ 0xf620, 0xf67c, 0xf73c, 0xf7ee, 0xf89c, 0xf977,
+ 0xfa59, 0xfaf4, 0xfb3f, 0xfb47, 0xfaea, 0xfa2a,
+ 0xf971, 0xf905, 0xf8b3, 0xf854, 0xf83e, 0xf8be,
+ 0xf952, 0xf928, 0xf86c, 0xf845, 0xf951, 0xfadd,
+ 0xfc02, 0xfccc, 0xfdd4, 0xff1a, 0xffee, 0xffcc,
+ 0xfee3, 0xfde2, 0xfd8b, 0xfe39, 0xff7a, 0x003e,
+ 0xffdc, 0xfed0, 0xfe1a, 0xfe1c, 0xfe70, 0xfe8e,
+ 0xfe4a, 0xfdaf, 0xfce6, 0xfc4a, 0xfc3e, 0xfcc7,
+ 0xfd80, 0xfdf6, 0xfe0c, 0xfe01, 0xfe15, 0xfe3c,
+ 0xfe18, 0xfd63, 0xfc76, 0xfc30, 0xfd28, 0xfee0,
+ 0x0019, 0x002d, 0xffaa, 0xff66, 0xff88, 0xffa9,
+ 0xff7a, 0xff29, 0xff0a, 0xff16, 0xfefa, 0xfec4,
+ 0xff02, 0x0003, 0x015c, 0x026a, 0x02ef, 0x0302,
+ 0x02e3, 0x02eb, 0x036e, 0x0474, 0x0566, 0x0567,
+ 0x044f, 0x02ed, 0x0210, 0x01c9, 0x01cb, 0x022d,
+ 0x0327, 0x043f, 0x0497, 0x03f6, 0x0300, 0x0278,
+ 0x027f, 0x029e, 0x0279, 0x0223, 0x01d6, 0x01be,
+ 0x0202, 0x02b1, 0x03a7, 0x04a6, 0x0574, 0x05e6,
+ 0x05d8, 0x053c, 0x0441, 0x034d, 0x02b4, 0x0280,
+ 0x0272, 0x0236, 0x01c6, 0x0177, 0x0174, 0x0177,
+ 0x0130, 0x00ce, 0x00cd, 0x0143, 0x01a0, 0x013b,
+ 0xffe5, 0xfe04, 0xfc68, 0xfbb3, 0xfbd0, 0xfc3b,
+ 0xfca0, 0xfcee, 0xfcfa, 0xfc92, 0xfc08, 0xfc13,
+ 0xfced, 0xfdd2, 0xfdab, 0xfc5d, 0xfaf3, 0xfa61,
+ 0xfa8a, 0xfaba, 0xfa98, 0xfa5f, 0xfa25, 0xf999,
+ 0xf8b0, 0xf7e6, 0xf787, 0xf750, 0xf6f0, 0xf67e,
+ 0xf631, 0xf617, 0xf64b, 0xf6ed, 0xf7aa, 0xf7d5,
+ 0xf724, 0xf603, 0xf516, 0xf481, 0xf407, 0xf392,
+ 0xf36b, 0xf405, 0xf56e, 0xf6e8, 0xf79d, 0xf783,
+ 0xf75e, 0xf7db, 0xf8b9, 0xf91e, 0xf8a0, 0xf7a4,
+ 0xf6c8, 0xf600, 0xf4d4, 0xf3a6, 0xf384, 0xf494,
+ 0xf5b7, 0xf5c0, 0xf4cc, 0xf40b, 0xf41c, 0xf494,
+ 0xf4fa, 0xf53e, 0xf59e, 0xf641, 0xf6ce, 0xf6e4,
+ 0xf66f, 0xf578, 0xf473, 0xf40f, 0xf45f, 0xf4f6,
+ 0xf57a, 0xf5c7, 0xf602, 0xf63b, 0xf623, 0xf5b4,
+ 0xf5a6, 0xf691, 0xf807, 0xf90b, 0xf940, 0xf908,
+ 0xf8b7, 0xf872, 0xf873, 0xf8fe, 0xf9fc, 0xfae1,
+ 0xfb51, 0xfbbf, 0xfcc9, 0xfe27, 0xff32, 0xfff0,
+ 0x00b0, 0x013e, 0x0152, 0x0100, 0x008d, 0x005e,
+ 0x0080, 0x0093, 0x007d, 0x006b, 0x007c, 0x010e,
+ 0x0254, 0x038f, 0x03e7, 0x0375, 0x0306, 0x032c,
+ 0x039a, 0x0393, 0x0319, 0x02ac, 0x0241, 0x01ae,
+ 0x014d, 0x0158, 0x01ac, 0x0254, 0x032b, 0x03ad,
+ 0x03c9, 0x03ca, 0x0396, 0x031d, 0x02a5, 0x0232,
+ 0x0192, 0x00b6, 0xff6c, 0xfd90, 0xfbe4, 0xfb71,
+ 0xfc05, 0xfc8b, 0xfc9e, 0xfca7, 0xfcf1, 0xfd47,
+ 0xfd46, 0xfcab, 0xfba1, 0xfac0, 0xfa5e, 0xfa08,
+ 0xf94e, 0xf86b, 0xf7f0, 0xf828, 0xf8bc, 0xf925,
+ 0xf96d, 0xf99b, 0xf954, 0xf8ac, 0xf7de, 0xf6df,
+ 0xf5ee, 0xf56d, 0xf55d, 0xf56d, 0xf52d, 0xf4c2,
+ 0xf4f6, 0xf5e5, 0xf6dd, 0xf777, 0xf7ad, 0xf7bc,
+ 0xf7f2, 0xf86c, 0xf90b, 0xf95b, 0xf8ed, 0xf818,
+ 0xf783, 0xf745, 0xf714, 0xf6df, 0xf6f8, 0xf792,
+ 0xf87d, 0xf971, 0xfa31, 0xfaa0, 0xfad4, 0xfaea,
+ 0xfb29, 0xfbbd, 0xfbfe, 0xfb41, 0xfa00, 0xf935,
+ 0xf961, 0xfa5e, 0xfba3, 0xfcd8, 0xfe05, 0xff48,
+ 0x0098, 0x01c6, 0x02c5, 0x039a, 0x0407, 0x03e2,
+ 0x0362, 0x02fd, 0x0328, 0x03c6, 0x0426, 0x03d6,
+ 0x02e8, 0x01f2, 0x0192, 0x01a5, 0x01ce, 0x022c,
+ 0x02c3, 0x036d, 0x03fb, 0x043b, 0x0475, 0x0500,
+ 0x059a, 0x061c, 0x067a, 0x065c, 0x05dd, 0x058a,
+ 0x058f, 0x05c5, 0x05fe, 0x0618, 0x060d, 0x05c8,
+ 0x0554, 0x0518, 0x052f, 0x0501, 0x0438, 0x0392,
+ 0x03d7, 0x04a4, 0x0510, 0x04bd, 0x03b0, 0x023f,
+ 0x014d, 0x015c, 0x01cd, 0x0202, 0x023e, 0x025b,
+ 0x0190, 0x0002, 0xfea5, 0xfdee, 0xfdeb, 0xfe3c,
+ 0xfe2b, 0xfdf3, 0xfe79, 0xff69, 0xff91, 0xfebe,
+ 0xfd91, 0xfcac, 0xfc91, 0xfd24, 0xfda0, 0xfda5,
+ 0xfd5d, 0xfcfb, 0xfcb9, 0xfca3, 0xfcb6, 0xfd55,
+ 0xfe4b, 0xfea8, 0xfe4b, 0xfdb6, 0xfce7, 0xfbd3,
+ 0xfaab, 0xf9a7, 0xf90a, 0xf8a9, 0xf7ea, 0xf6eb,
+ 0xf663, 0xf679, 0xf6b7, 0xf6df, 0xf6ec, 0xf6c2,
+ 0xf6aa, 0xf741, 0xf89b, 0xfa0a, 0xfaab, 0xfa0e,
+ 0xf8a3, 0xf74c, 0xf689, 0xf652, 0xf686, 0xf70d,
+ 0xf786, 0xf781, 0xf710, 0xf642, 0xf532, 0xf4cd,
+ 0xf576, 0xf625, 0xf625, 0xf5a8, 0xf55b, 0xf632,
+ 0xf85a, 0xfb0b, 0xfd97, 0xff63, 0x004c, 0x010a,
+ 0x01fb, 0x02df, 0x037f, 0x03f2, 0x04a6, 0x0592,
+ 0x0601, 0x05da, 0x0593, 0x0577, 0x0609, 0x07ac,
+ 0x09e3, 0x0bc9, 0x0cd0, 0x0d0c, 0x0cd6, 0x0c7c,
+ 0x0c66, 0x0cc1, 0x0d5c, 0x0e18, 0x0ec3, 0x0f3e,
+ 0x0fd5, 0x10a6, 0x114e, 0x1144, 0x103e, 0x0e93,
+ 0x0d0c, 0x0c3c, 0x0c4f, 0x0cbd, 0x0cbb, 0x0c49,
+ 0x0c13, 0x0c5c, 0x0cb8, 0x0ce1, 0x0d29, 0x0d82,
+ 0x0d68, 0x0d22, 0x0d3f, 0x0d40, 0x0c73, 0x0b3a,
+ 0x0aa7, 0x0ae5, 0x0acf, 0x09bb, 0x086a, 0x0790,
+ 0x06f6, 0x0625, 0x0500, 0x03f7, 0x0389, 0x038f,
+ 0x037f, 0x034b, 0x038b, 0x0475, 0x052b, 0x04f0,
+ 0x0438, 0x03d7, 0x03f9, 0x042b, 0x0421, 0x040a,
+ 0x03de, 0x0323, 0x01d4, 0x00a2, 0x0028, 0x0038,
+ 0xfff3, 0xfef6, 0xfe1a, 0xfe3e, 0xff02, 0xff61,
+ 0xff14, 0xfeb0, 0xfe92, 0xfe51, 0xfd90, 0xfc89,
+ 0xfba4, 0xfb57, 0xfbcc, 0xfc44, 0xfc29, 0xfc2e,
+ 0xfce0, 0xfdca, 0xfe97, 0xff4e, 0xffec, 0x0066,
+ 0x006e, 0xffe3, 0xff45, 0xfeee, 0xfeca, 0xfeef,
+ 0xffbb, 0x0125, 0x0214, 0x0185, 0x0028, 0xff0a,
+ 0xfe31, 0xfd9d, 0xfd67, 0xfd3f, 0xfd40, 0xfdf6,
+ 0xff1e, 0xffc6, 0xffee, 0x0077, 0x015f, 0x01d1,
+ 0x017a, 0x0049, 0xfe92, 0xfd81, 0xfd6b, 0xfd58,
+ 0xfd02, 0xfcce, 0xfc8b, 0xfc26, 0xfc2b, 0xfca6,
+ 0xfcf0, 0xfcee, 0xfced, 0xfcde, 0xfcf0, 0xfd71,
+ 0xfdfc, 0xfe31, 0xfe09, 0xfd68, 0xfc8b, 0xfbd0,
+ 0xfb60, 0xfb98, 0xfc3e, 0xfc59, 0xfbcb, 0xfb78,
+ 0xfbe4, 0xfc8b, 0xfcab, 0xfc66, 0xfc31, 0xfbed,
+ 0xfbbc, 0xfbe5, 0xfbfc, 0xfb91, 0xfacb, 0xfa72,
+ 0xfb2c, 0xfc45, 0xfccb, 0xfd11, 0xfd5d, 0xfd71,
+ 0xfd8c, 0xfdbd, 0xfd81, 0xfcc2, 0xfbfc, 0xfbab,
+ 0xfbda, 0xfc32, 0xfc89, 0xfcff, 0xfd84, 0xfdd5,
+ 0xfde1, 0xfda9, 0xfcd0, 0xfb6a, 0xfa9f, 0xfb09,
+ 0xfbdc, 0xfc84, 0xfd0e, 0xfd58, 0xfd41, 0xfd06,
+ 0xfd28, 0xfdf3, 0xff0c, 0xffe0, 0x0029, 0xfff6,
+ 0xffc9, 0x001f, 0x00a7, 0x00d9, 0x00bd, 0x0091,
+ 0x0072, 0x0059, 0x001c, 0xffd9, 0xffe5, 0x0020,
+ 0x0052, 0x00fa, 0x026e, 0x042b, 0x0586, 0x05d9,
+ 0x04f5, 0x03a7, 0x0288, 0x0182, 0x0122, 0x01f8,
+ 0x0324, 0x0360, 0x02af, 0x0242, 0x02bd, 0x032e,
+ 0x02c5, 0x0231, 0x0228, 0x0299, 0x037b, 0x0440,
+ 0x03d9, 0x028e, 0x01c6, 0x01e5, 0x0259, 0x02bb,
+ 0x02f4, 0x0358, 0x044a, 0x055f, 0x05eb, 0x05d1,
+ 0x0532, 0x0423, 0x02bf, 0x0149, 0x001a, 0xff4f,
+ 0xff0d, 0xff67, 0xffa3, 0xff2f, 0xfe72, 0xfde8,
+ 0xfde9, 0xfe9a, 0xff4e, 0xff5e, 0xfefd, 0xfeab,
+ 0xfec7, 0xff23, 0xff3a, 0xff19, 0xfed6, 0xfe18,
+ 0xfcf4, 0xfbce, 0xfad0, 0xfa44, 0xfa5a, 0xfaca,
+ 0xfb38, 0xfb7b, 0xfb56, 0xfaa6, 0xfa18, 0xfa48,
+ 0xfa60, 0xf9a0, 0xf899, 0xf7ad, 0xf6c8, 0xf627,
+ 0xf602, 0xf666, 0xf706, 0xf6f5, 0xf5ee, 0xf4c9,
+ 0xf445, 0xf486, 0xf51a, 0xf54f, 0xf51d, 0xf524,
+ 0xf571, 0xf544, 0xf461, 0xf3a8, 0xf404, 0xf571,
+ 0xf6e9, 0xf736, 0xf66c, 0xf590, 0xf4f5, 0xf48b,
+ 0xf46b, 0xf451, 0xf407, 0xf381, 0xf29d, 0xf1ef,
+ 0xf22d, 0xf2c5, 0xf315, 0xf3c0, 0xf54f, 0xf6f9,
+ 0xf79d, 0xf718, 0xf5f6, 0xf4d2, 0xf477, 0xf530,
+ 0xf634, 0xf6d7, 0xf721, 0xf714, 0xf6a9, 0xf638,
+ 0xf64f, 0xf6f6, 0xf797, 0xf7e6, 0xf80c, 0xf83b,
+ 0xf8c8, 0xf9a7, 0xfa1e, 0xfa1f, 0xfa4d, 0xfa68,
+ 0xf9f0, 0xf951, 0xf903, 0xf91c, 0xf9d3, 0xfadc,
+ 0xfb51, 0xfb22, 0xfb30, 0xfbbf, 0xfc7c, 0xfd8e,
+ 0xfeff, 0x0015, 0x0078, 0x0081, 0x002f, 0xff93,
+ 0xff5a, 0xff72, 0xff10, 0xfe62, 0xfde8, 0xfd80,
+ 0xfd80, 0xfe6f, 0xffcc, 0x00d1, 0x015e, 0x015d,
+ 0x0095, 0xff42, 0xfe2c, 0xfdcb, 0xfdf5, 0xfe91,
+ 0xff57, 0xff99, 0xff89, 0xffbe, 0xffca, 0xff60,
+ 0xff31, 0xff37, 0xfed5, 0xfe99, 0xff51, 0x006e,
+ 0x0150, 0x0225, 0x029c, 0x0223, 0x013c, 0x00b0,
+ 0x008c, 0x0071, 0xffe2, 0xfeac, 0xfd3d, 0xfbfd,
+ 0xfaac, 0xf92e, 0xf86b, 0xf8f2, 0xf9b9, 0xfa2e,
+ 0xfb19, 0xfc04, 0xfb82, 0xfa05, 0xf90e, 0xf8ea,
+ 0xf91c, 0xf926, 0xf888, 0xf734, 0xf5f8, 0xf54c,
+ 0xf4a8, 0xf403, 0xf404, 0xf46c, 0xf4c2, 0xf558,
+ 0xf60b, 0xf648, 0xf65f, 0xf6dc, 0xf79a, 0xf849,
+ 0xf8ec, 0xf988, 0xf9db, 0xf9d2, 0xf9a5, 0xf966,
+ 0xf92c, 0xf8f7, 0xf886, 0xf85f, 0xf951, 0xfad4,
+ 0xfbe2, 0xfc70, 0xfcb1, 0xfc93, 0xfc5a, 0xfc75,
+ 0xfcbb, 0xfcca, 0xfcff, 0xfdc2, 0xfe91, 0xff1c,
+ 0xffaa, 0x001e, 0x0084, 0x0151, 0x0243, 0x02c9,
+ 0x0313, 0x0357, 0x0375, 0x03bd, 0x0470, 0x04d1,
+ 0x0439, 0x0327, 0x0252, 0x023e, 0x0359, 0x0516,
+ 0x05ee, 0x0532, 0x039b, 0x01f9, 0x00b5, 0x0083,
+ 0x01bb, 0x0326, 0x0376, 0x0314, 0x02d6, 0x02a4,
+ 0x0212, 0x00e4, 0xff82, 0xff05, 0xffa1, 0x0056,
+ 0x00d4, 0x0162, 0x0188, 0x0102, 0x00b7, 0x0105,
+ 0x00fd, 0x0058, 0x0025, 0x00ef, 0x0211, 0x02c5,
+ 0x028f, 0x016e, 0x0047, 0xfffb, 0x0043, 0x0073,
+ 0x0084, 0x009c, 0x009a, 0x005a, 0xffde, 0xff53,
+ 0xfef8, 0xfeb6, 0xfe73, 0xfe91, 0xff49, 0xfff4,
+ 0xffb2, 0xfea0, 0xfd9e, 0xfcfe, 0xfc94, 0xfc97,
+ 0xfcf8, 0xfd13, 0xfcc4, 0xfc59, 0xfbc3, 0xfad1,
+ 0xf9b6, 0xf8c5, 0xf824, 0xf7f9, 0xf879, 0xf98c,
+ 0xfac5, 0xfb87, 0xfb45, 0xfa3e, 0xf969, 0xf944,
+ 0xf9b4, 0xfa9d, 0xfba8, 0xfc43, 0xfc2c, 0xfbb5,
+ 0xfb73, 0xfb8f, 0xfbd5, 0xfc68, 0xfd61, 0xfe5d,
+ 0xff0d, 0xff76, 0xff9e, 0xff8d, 0xff6d, 0xff36,
+ 0xfeb7, 0xfe11, 0xfd77, 0xfcab, 0xfba7, 0xfaec,
+ 0xfa85, 0xfa2c, 0xfa1e, 0xfaa4, 0xfb72, 0xfc01,
+ 0xfc2f, 0xfc5e, 0xfcea, 0xfdc4, 0xfea1, 0xff15,
+ 0xfef8, 0xfec0, 0xfeee, 0xff78, 0xfffe, 0x0016,
+ 0xffa3, 0xfeef, 0xfe51, 0xfdf4, 0xfe0b, 0xfedf,
+ 0x0038, 0x017f, 0x02b3, 0x041a, 0x053e, 0x05ba,
+ 0x05d6, 0x058f, 0x04bf, 0x03f7, 0x03b3, 0x03df,
+ 0x047a, 0x057b, 0x06a2, 0x0800, 0x09c2, 0x0b3c,
+ 0x0b83, 0x0b07, 0x0ad2, 0x0a97, 0x0990, 0x0800,
+ 0x06c2, 0x065c, 0x06af, 0x0750, 0x0800, 0x08cc,
+ 0x095b, 0x08fc, 0x083f, 0x085f, 0x0916, 0x091f,
+ 0x0886, 0x0854, 0x087a, 0x0866, 0x0869, 0x08c1,
+ 0x08ec, 0x08cf, 0x08e8, 0x0945, 0x09bf, 0x0a47,
+ 0x0a5a, 0x09b3, 0x08f5, 0x089f, 0x087f, 0x0895,
+ 0x08dc, 0x08b8, 0x07ec, 0x06e1, 0x05a7, 0x0453,
+ 0x03b6, 0x0428, 0x04cb, 0x050f, 0x056f, 0x05ea,
+ 0x05f3, 0x05f5, 0x0641, 0x0634, 0x058f, 0x04cb,
+ 0x0429, 0x03b6, 0x03c7, 0x0466, 0x051d, 0x056a,
+ 0x0508, 0x0439, 0x03b6, 0x03cc, 0x0381, 0x0279,
+ 0x01a3, 0x0162, 0x01af, 0x0245, 0x02fb, 0x0399,
+ 0x03b8, 0x042a, 0x051f, 0x05c0, 0x061f, 0x0642,
+ 0x05ad, 0x0457, 0x0345, 0x02e0, 0x024c, 0x01c4,
+ 0x0194, 0x0136, 0x0101, 0x016d, 0x01f4, 0x0217,
+ 0x023d, 0x02a9, 0x02a9, 0x01ec, 0x00ff, 0x004e,
+ 0x003b, 0x00e1, 0x011c, 0xffb6, 0xfde6, 0xfd92,
+ 0xfdba, 0xfd51, 0xfd39, 0xfd6f, 0xfd05, 0xfbf2,
+ 0xfac9, 0xf994, 0xf90f, 0xf9d4, 0xfa6b, 0xfa2c,
+ 0xf9d8, 0xf9f9, 0xf9b7, 0xf859, 0xf77f, 0xf7d1,
+ 0xf85b, 0xf8f2, 0xf9f0, 0xfa73, 0xfa30, 0xfaf9,
+ 0xfbe8, 0xfbc9, 0xfb0c, 0xf9f3, 0xf984, 0xf997,
+ 0xfb10, 0xfce9, 0xfdc7, 0xff4a, 0xff00, 0xfe5f,
+ 0xff93, 0xff53, 0xff9d, 0x00ff, 0x0164, 0x00e9,
+ 0xff7f, 0xfe3b, 0xfcf9, 0xfc5c, 0xfd52, 0xfda7,
+ 0xfcd7, 0xfd55, 0xfe8b, 0xfef2, 0x0034, 0x00c4,
+ 0x0001, 0xfe9d, 0xfca6, 0xfd7c, 0xfdae, 0xfd2b,
+ 0xffb7, 0x005c, 0x0051, 0x01ec, 0x036d, 0x02e3,
+ 0xff74, 0xfe2d, 0xfd95, 0xfce2, 0xff37, 0x0080,
+ 0x010c, 0x0337, 0x04b9, 0x0446, 0x03ac, 0x031f,
+ 0x0185, 0x008f, 0xff32, 0xfef1, 0x0125, 0x0284,
+ 0x039e, 0x0472, 0x0515, 0x04f3, 0x0403, 0x049e,
+ 0x05d3, 0x06bf, 0x0537, 0x02fb, 0x0147, 0xfed3,
+ 0xff53, 0xff87, 0xffe5, 0x0243, 0x035a, 0x057c,
+ 0x04fb, 0x0305, 0x01f8, 0xff00, 0xff54, 0x0050,
+ 0xff7b, 0x0000, 0x0094, 0x00d7, 0xffe8, 0xfffd,
+ 0x0148, 0x00bc, 0x0017, 0x00fe, 0x0101, 0x0051,
+ 0x0101, 0xff2e, 0xfe9d, 0xff0f, 0xfbdd, 0xfe49,
+ 0x0050, 0xfedd, 0x00cf, 0xff8b, 0xfe50, 0xfc91,
+ 0xf919, 0xf9a5, 0xf9e4, 0xfc24, 0xffe1, 0x00b3,
+ 0xfffd, 0xfd95, 0xfa03, 0xf6be, 0xf8a3, 0xfc2c,
+ 0xfc43, 0xfc76, 0xfcb9, 0xfc70, 0xfb09, 0xf9bd,
+ 0xf79c, 0xf6b0, 0xf97e, 0xf8f2, 0xf9ff, 0xfb7a,
+ 0xf6e5, 0xf476, 0xf3a0, 0xf3bf, 0xf4ae, 0xf471,
+ 0xf5b0, 0xf743, 0xf7ae, 0xf54f, 0xf541, 0xf589,
+ 0xf384, 0xf582, 0xf46b, 0xf496, 0xf7d0, 0xf58f,
+ 0xf64a, 0xf87d, 0xf865, 0xf751, 0xf4bd, 0xf477,
+ 0xf3bf, 0xf309, 0xf4fb, 0xf76d, 0xf8c1, 0xfb58,
+ 0xfce5, 0xf825, 0xf6bf, 0xf86c, 0xf79e, 0xf89b,
+ 0xfae7, 0xfe19, 0xfbd3, 0xf852, 0xf72d, 0xf4e3,
+ 0xf926, 0xf830, 0xf5c5, 0xfd23, 0xfc3c, 0xf92f,
+ 0xfba0, 0xfa1c, 0xf790, 0xf8d9, 0xfc34, 0xfcb5,
+ 0xfb8b, 0xfb6d, 0xfdef, 0xfcfd, 0xf77c, 0xf740,
+ 0xf5ff, 0xf4f8, 0xf5cb, 0xf410, 0xf72b, 0xf84c,
+ 0xf772, 0xf8fa, 0xf7f2, 0xf70e, 0xf770, 0xfb51,
+ 0xfc15, 0xf90f, 0xf8a8, 0xf769, 0xf91c, 0xf924,
+ 0xf771, 0xfa22, 0xfa8b, 0xf866, 0xf7aa, 0xfab1,
+ 0xfb3a, 0xfc2b, 0xff18, 0xfa9d, 0xfb57, 0xf965,
+ 0xf13b, 0xf7a1, 0xfa51, 0xf3b1, 0xf804, 0xff61,
+ 0xfd25, 0xfae9, 0xfbed, 0xf834, 0xf89d, 0xfc8e,
+ 0xff42, 0x0067, 0xfa57, 0xf781, 0xf6c2, 0xf6c6,
+ 0xfa81, 0xfa37, 0xfcef, 0xfd33, 0xfa4a, 0xfe42,
+ 0x0171, 0xff4f, 0xfa58, 0xfebf, 0x02d7, 0xfac7,
+ 0xfc9e, 0x04f7, 0x0301, 0xfeec, 0x0053, 0xfe25,
+ 0xfa6c, 0xfe38, 0xfec9, 0xffe5, 0x0038, 0xfabe,
+ 0xfae0, 0xf8c8, 0xfa22, 0x0014, 0x000c, 0x0226,
+ 0xff59, 0xfbfb, 0xff15, 0xfc9e, 0xfaa4, 0x01f8,
+ 0x040a, 0xfa57, 0xfce8, 0x04e6, 0xffe5, 0xfeaa,
+ 0x032c, 0x0626, 0x0274, 0xfec7, 0x0284, 0x0190,
+ 0x0244, 0x02ef, 0xff6c, 0xfd40, 0xf932, 0xfce8,
+ 0x021e, 0x0365, 0x03f6, 0xff3e, 0xffc2, 0xffcd,
+ 0xfc83, 0x0363, 0x0814, 0xfefa, 0xfddc, 0x0727,
+ 0xfeea, 0xf9e4, 0x0250, 0x0069, 0x0308, 0x0604,
+ 0x02d4, 0x0417, 0x0032, 0xfbc4, 0xfd8d, 0x01b3,
+ 0x0168, 0x008a, 0x0369, 0x0134, 0x0089, 0xffaa,
+ 0xffa2, 0x04d0, 0x0379, 0x00df, 0x00ad, 0x0337,
+ 0x047b, 0x036c, 0x072a, 0x0487, 0x01e8, 0x020a,
+ 0xff6f, 0x00a8, 0xfcf9, 0xfcc0, 0x0241, 0x00ea,
+ 0xfe8d, 0xfe54, 0x01d7, 0x0431, 0x00a7, 0xfd86,
+ 0xffa7, 0xfd2b, 0xf9f6, 0x0641, 0x0619, 0xfd8b,
+ 0x02f1, 0xfe56, 0xfb2d, 0xfd1d, 0xfb3d, 0x0265,
+ 0x056b, 0x00f5, 0xfbd7, 0xfb16, 0xfb80, 0xf6e6,
+ 0xfcbc, 0x05a5, 0x06c5, 0x0634, 0x03a0, 0xff72,
+ 0xfcdd, 0xfee5, 0xfe76, 0xfdf8, 0x00ad, 0x0420,
+ 0x0688, 0x0182, 0x0441, 0x0650, 0x007d, 0x05be,
+ 0x05be, 0x05a1, 0x0b68, 0x080d, 0x077e, 0x0975,
+ 0x08cf, 0x0692, 0x069d, 0x0969, 0x0a79, 0x0b81,
+ 0x0742, 0x0ab5, 0x0fdc, 0x0962, 0x0af5, 0x0947,
+ 0x0156, 0x002c, 0xff2b, 0x017b, 0x0592, 0x066d,
+ 0x0504, 0x0964, 0x0ccd, 0x02a4, 0xf98e, 0xf780,
+ 0xfa77, 0xff21, 0x02da, 0x029c, 0xfa07, 0xf639,
+ 0xf218, 0xf02c, 0xf4db, 0xf541, 0xfa6c, 0xf5b8,
+ 0xf17c, 0xf7d0, 0xec02, 0xe6ab, 0xe9b8, 0xe5fe,
+ 0xed3d, 0xf1a9, 0xf0ae, 0xf376, 0xefdd, 0xe783,
+ 0xe454, 0xe131, 0xdcf6, 0xe0fa, 0xe402, 0xe2c4,
+ 0xde45, 0xda58, 0xd9f9, 0xd0ce, 0xcd8e, 0xd017,
+ 0xd223, 0xdd05, 0xe0ed, 0xe291, 0xe003, 0xda4f,
+ 0xdeb8, 0xdbf8, 0xdd99, 0xe58d, 0xe7fd, 0xf06e,
+ 0xf791, 0xf87a, 0xf3ee, 0xf198, 0xf4a2, 0xf591,
+ 0xf908, 0xfff9, 0x0a89, 0x0a24, 0xff80, 0xfcb4,
+ 0xf9bc, 0xfc14, 0x0326, 0x04e8, 0x0ac0, 0x1349,
+ 0x14b1, 0x1474, 0x18bb, 0x105d, 0x0760, 0x0864,
+ 0x0101, 0x072e, 0x15bc, 0x186a, 0x1772, 0x1510,
+ 0x1b73, 0x19f2, 0x1568, 0x1a0a, 0x119f, 0x0fe3,
+ 0x16e1, 0x1ab6, 0x20bf, 0x1e51, 0x203f, 0x23f0,
+ 0x1bf8, 0x18af, 0x1a54, 0x162a, 0x135c, 0x12b1,
+ 0x0c3a, 0x05c0, 0xff2d, 0xff18, 0xfe34, 0xf3bc,
+ 0x0230, 0x1334, 0x154e, 0x24f2, 0x28a6, 0x24e3,
+ 0x25e2, 0x1e8c, 0x17d3, 0x0fef, 0x0b54, 0x02f3,
+ 0xfa74, 0xfe03, 0xfe7d, 0x0714, 0x1248, 0x0fe7,
+ 0x11e1, 0x1b68, 0x1e36, 0x17e5, 0x1537, 0x10fe,
+ 0x0485, 0xf99f, 0xf5dd, 0xf83a, 0xf83b, 0x00b4,
+ 0x0df6, 0x10cb, 0x15e4, 0x18d7, 0x12bc, 0x08c1,
+ 0x0521, 0x02a9, 0xf8ae, 0xfbdb, 0xfdff, 0xfd5f,
+ 0x0753, 0x0ae1, 0x157f, 0x1dd1, 0x1d5e, 0x1ee8,
+ 0x1369, 0x0add, 0x030e, 0xfa25, 0x016d, 0x0461,
+ 0x02ad, 0x04d6, 0x038e, 0x0392, 0x0438, 0x02ee,
+ 0x050b, 0x0255, 0xfa4b, 0x0035, 0x05e1, 0x0350,
+ 0xff33, 0xf8d1, 0x031c, 0x063f, 0x0154, 0x0d39,
+ 0x0a2d, 0x00e7, 0xfc3c, 0xfaa2, 0x0307, 0x00fd,
+ 0x0993, 0x14f6, 0x0975, 0x053d, 0x085b, 0x0954,
+ 0x0804, 0x004c, 0xfe4b, 0x038f, 0x0461, 0x057d,
+ 0x0ff5, 0x1326, 0x1001, 0x12f1, 0x13c8, 0x1272,
+ 0x0f56, 0x0b4f, 0x0486, 0x0510, 0x0fe4, 0x1303,
+ 0x1982, 0x1739, 0x0d1d, 0x14ff, 0x14e8, 0x130a,
+ 0x215c, 0x2d10, 0x290f, 0x2246, 0x2b7e, 0x29c6,
+ 0x294a, 0x382c, 0x3131, 0x2f73, 0x38cc, 0x303f,
+ 0x2d17, 0x33b8, 0x3205, 0x2b34, 0x2c71, 0x2f59,
+ 0x2903, 0x270f, 0x3051, 0x33a6, 0x30ea, 0x30f3,
+ 0x250b, 0x21cd, 0x29ea, 0x1ddf, 0x1a08, 0x1898,
+ 0x0ec9, 0x115d, 0x106f, 0x1952, 0x2084, 0x1969,
+ 0x1a18, 0x12b4, 0x1133, 0x12fc, 0x0920, 0x0e2a,
+ 0x0fac, 0x035d, 0x0079, 0x031b, 0xfee4, 0xf6d8,
+ 0xf59e, 0xf793, 0xf4fd, 0xf5bf, 0xfd55, 0xf9f3,
+ 0xf513, 0xf6c3, 0xeacf, 0xe8f4, 0xef0f, 0xe960,
+ 0xed9f, 0xf335, 0xf2bd, 0xee09, 0xede8, 0xf496,
+ 0xeb11, 0xe551, 0xe3e1, 0xdb5f, 0xdd4f, 0xe150,
+ 0xe317, 0xddce, 0xde4d, 0xe620, 0xd7e4, 0xce85,
+ 0xd511, 0xd3f6, 0xd13f, 0xcf6a, 0xcdf5, 0xd05e,
+ 0xd1ea, 0xc97d, 0xc0b5, 0xc7b6, 0xd2a6, 0xce25,
+ 0xc87d, 0xcf9c, 0xcae0, 0xca93, 0xd2e1, 0xc302,
+ 0xc061, 0xcb9d, 0xca43, 0xc5a2, 0xbb0b, 0xc010,
+ 0xbfca, 0xb464, 0xc1ce, 0xc8bc, 0xc8ef, 0xcd8b,
+ 0xc8b7, 0xc4ba, 0xbcb9, 0xbcb9, 0xc608, 0xc235,
+ 0xc016, 0xc695, 0xc8ec, 0xcac0, 0xc9e8, 0xca6d,
+ 0xd393, 0xc996, 0xc1c5, 0xd497, 0xce30, 0xc0fb,
+ 0xcd37, 0xd0dd, 0xc63b, 0xc006, 0xc837, 0xc62f,
+ 0xc21a, 0xcec7, 0xd0ac, 0xda0f, 0xdf62, 0xcf50,
+ 0xd2e3, 0xd672, 0xcc96, 0xd018, 0xd590, 0xcb67,
+ 0xc70b, 0xd428, 0xcfd4, 0xc5e3, 0xcf6b, 0xd1b3,
+ 0xce6e, 0xd1e1, 0xd288, 0xd59d, 0xd843, 0xccdd,
+ 0xcd01, 0xdb56, 0xd837, 0xd7b2, 0xda4c, 0xd410,
+ 0xd5d6, 0xd6ee, 0xd64f, 0xd7f2, 0xe4e4, 0xe8ba,
+ 0xd09e, 0xd35a, 0xdb65, 0xced7, 0xdc06, 0xe69d,
+ 0xe08e, 0xe040, 0xe0ed, 0xe368, 0xdfe6, 0xddd9,
+ 0xe2c0, 0xe053, 0xdead, 0xe20e, 0xdeb1, 0xdcbb,
+ 0xe28f, 0xe604, 0xe496, 0xe051, 0xea00, 0xf09e,
+ 0xdcec, 0xde2f, 0xe86b, 0xdbd3, 0xdd57, 0xe818,
+ 0xe947, 0xe091, 0xe171, 0xf14c, 0xe8ef, 0xe227,
+ 0xf241, 0xf1e4, 0xe7b8, 0xeed2, 0xfc3a, 0xf963,
+ 0xfb71, 0x08ed, 0xfd31, 0xed59, 0xf6dc, 0xfd32,
+ 0xf9b7, 0x046d, 0x0caf, 0x0100, 0xfd3f, 0x067e,
+ 0x0984, 0x09a1, 0x1251, 0x11e4, 0xffcc, 0x02ae,
+ 0x1345, 0x1085, 0x0873, 0x0ab9, 0x12e1, 0x0e05,
+ 0x0d5d, 0x1bd2, 0x17f8, 0x10c3, 0x13bf, 0x139d,
+ 0x11ef, 0x0e3c, 0x1547, 0x1a5f, 0x0fa1, 0x0e4c,
+ 0x136e, 0x118a, 0x11cb, 0x1628, 0x18f5, 0x18f1,
+ 0x1881, 0x18f7, 0x1815, 0x1c6b, 0x25e7, 0x1f40,
+ 0x1955, 0x2790, 0x27da, 0x1a42, 0x1bb6, 0x240f,
+ 0x1c8e, 0x138a, 0x2745, 0x316f, 0x1dc2, 0x1f5a,
+ 0x2d96, 0x2603, 0x238c, 0x3443, 0x327e, 0x1b2f,
+ 0x169a, 0x1a3b, 0x16c2, 0x2849, 0x3a4c, 0x2a68,
+ 0x2082, 0x2ead, 0x295b, 0x1d50, 0x2e0f, 0x369e,
+ 0x23c6, 0x1eb6, 0x2677, 0x1b6e, 0x150e, 0x262e,
+ 0x2cb5, 0x2629, 0x2e41, 0x3643, 0x2ba8, 0x27db,
+ 0x31a9, 0x2da5, 0x2789, 0x3026, 0x2e5d, 0x23be,
+ 0x2987, 0x336b, 0x317e, 0x3112, 0x3533, 0x3434,
+ 0x35a6, 0x3aa5, 0x35ac, 0x2d31, 0x2f26, 0x3038,
+ 0x244b, 0x1c08, 0x2377, 0x29bd, 0x272d, 0x2949,
+ 0x2f85, 0x2fd3, 0x2c14, 0x2662, 0x24ea, 0x2b9b,
+ 0x2a6c, 0x2169, 0x2140, 0x1ff5, 0x16e2, 0x18bd,
+ 0x240e, 0x263e, 0x2121, 0x1e7c, 0x2032, 0x2360,
+ 0x216f, 0x1cc1, 0x1e00, 0x21e2, 0x2199, 0x1f42,
+ 0x1ed2, 0x1ff8, 0x2038, 0x1fbb, 0x219d, 0x249a,
+ 0x23d1, 0x1ff1, 0x1f16, 0x233e, 0x2600, 0x25bf,
+ 0x26a8, 0x21de, 0x17b3, 0x18e0, 0x1f3d, 0x1a41,
+ 0x188c, 0x2212, 0x2070, 0x14ee, 0x188b, 0x222a,
+ 0x1adc, 0x12ea, 0x19b6, 0x1a49, 0x159f, 0x1edd,
+ 0x1f1c, 0x0d8c, 0x0f28, 0x1bf9, 0x128c, 0x0a91,
+ 0x1710, 0x1ce5, 0x15d0, 0x13f0, 0x14bc, 0x0c36,
+ 0x04d2, 0x0d71, 0x12a9, 0x06f0, 0x05d8, 0x0d2c,
+ 0x03a9, 0x01cd, 0x0d2c, 0x037b, 0xf9e5, 0x0498,
+ 0x00fe, 0xf6d1, 0x0064, 0x0308, 0xf72d, 0xf624,
+ 0xfbbd, 0xfb6a, 0xf711, 0xedb6, 0xe21e, 0xe156,
+ 0xec2c, 0xe9fd, 0xd978, 0xdf16, 0xee58, 0xe23d,
+ 0xddff, 0xf1e9, 0xee3e, 0xdd9f, 0xdcc5, 0xd3cc,
+ 0xce7d, 0xde28, 0xe03b, 0xdac5, 0xe6bf, 0xe74d,
+ 0xd702, 0xd527, 0xe137, 0xeb08, 0xea3c, 0xe0ff,
+ 0xdf97, 0xe602, 0xe6d9, 0xe4df, 0xe674, 0xe97b,
+ 0xe482, 0xd614, 0xd458, 0xe147, 0xe4a1, 0xe890,
+ 0xf90d, 0xfcb6, 0xf24b, 0xee1f, 0xebaf, 0xe9f0,
+ 0xef31, 0xf0a4, 0xe973, 0xe477, 0xe83c, 0xee69,
+ 0xec24, 0xe822, 0xf0fa, 0xfb8a, 0xf69e, 0xedb2,
+ 0xefd1, 0xf2d1, 0xf1c3, 0xfa9e, 0x00cd, 0xf460,
+ 0xf6b5, 0x09fe, 0xfdeb, 0xe9a5, 0xf845, 0x0417,
+ 0xfd78, 0xfea8, 0xfbe7, 0xf68c, 0xfd04, 0xfd1f,
+ 0xfaa6, 0xfe74, 0xfca8, 0x042c, 0x0e6f, 0x03b8,
+ 0xffb6, 0x0081, 0xf02b, 0xf50d, 0x015d, 0xea86,
+ 0xe6c0, 0xff59, 0xf684, 0xea12, 0xf66b, 0xee85,
+ 0xdce9, 0xe199, 0xe88a, 0xe9fb, 0xefa3, 0xf738,
+ 0xfa99, 0xf50f, 0xf315, 0xf5ac, 0xe858, 0xdede,
+ 0xeabb, 0xe91c, 0xd9a3, 0xda5e, 0xdfd7, 0xddf2,
+ 0xdaf1, 0xdc77, 0xe9df, 0xea56, 0xcfd3, 0xcda3,
+ 0xe5c6, 0xda9e, 0xc227, 0xd127, 0xe3fd, 0xdad6,
+ 0xd51a, 0xd98b, 0xd11d, 0xc813, 0xcf5e, 0xd237,
+ 0xcb85, 0xd37d, 0xe025, 0xdbc8, 0xd62d, 0xd9d3,
+ 0xddf9, 0xdf3a, 0xd7cd, 0xd1d0, 0xd8a4, 0xd468,
+ 0xcaef, 0xdc05, 0xe9b5, 0xe218, 0xea38, 0xf39e,
+ 0xe75d, 0xe735, 0xecd6, 0xde8b, 0xda6b, 0xe505,
+ 0xe298, 0xe034, 0xe4f9, 0xe186, 0xe1a5, 0xe84d,
+ 0xe157, 0xda1e, 0xe607, 0xeb76, 0xdee6, 0xe117,
+ 0xeee0, 0xe5e4, 0xd73d, 0xdb47, 0xdf60, 0xe00b,
+ 0xe1a3, 0xd9ae, 0xd83f, 0xde14, 0xd276, 0xcf7a,
+ 0xe315, 0xe48f, 0xd968, 0xdad0, 0xdb0c, 0xdef6,
+ 0xeb90, 0xf0df, 0xf2f2, 0xed52, 0xe0e0, 0xe53f,
+ 0xe55b, 0xd6ee, 0xdd9e, 0xe450, 0xdb72, 0xe6ec,
+ 0xe926, 0xd0e0, 0xd514, 0xe3c9, 0xd94e, 0xd84e,
+ 0xde9d, 0xdcb9, 0xe31b, 0xe0ec, 0xd71e, 0xdd92,
+ 0xdeb6, 0xda5b, 0xe12b, 0xdde8, 0xd830, 0xdc07,
+ 0xd717, 0xd9a6, 0xe2c7, 0xd8b6, 0xd923, 0xe5cc,
+ 0xdddc, 0xde0e, 0xe69e, 0xd62b, 0xd1bb, 0xe3d6,
+ 0xe300, 0xdeb8, 0xe575, 0xe0f8, 0xdb0a, 0xdee2,
+ 0xe502, 0xec72, 0xe997, 0xdd96, 0xdd75, 0xe395,
+ 0xe439, 0xe4b7, 0xe329, 0xe029, 0xe5e0, 0xf225,
+ 0xf487, 0xe8aa, 0xe4e4, 0xeb29, 0xe0a6, 0xd6dc,
+ 0xe509, 0xe7df, 0xdccc, 0xe5c6, 0xeb67, 0xe0ef,
+ 0xe618, 0xed09, 0xe41c, 0xe5ae, 0xee3f, 0xeb5f,
+ 0xebe9, 0xf1f3, 0xf089, 0xee74, 0xf1f8, 0xf699,
+ 0xf7e3, 0xf39a, 0xf0ee, 0xf3ad, 0xf372, 0xf2ab,
+ 0xf70f, 0xf7f9, 0xf4cb, 0xf314, 0xee64, 0xecf1,
+ 0xf4fd, 0xf63c, 0xef78, 0xf13c, 0xf233, 0xe939,
+ 0xe718, 0xecf7, 0xec36, 0xe9b8, 0xef67, 0xf632,
+ 0xf44b, 0xf005, 0xf422, 0xf87b, 0xf2d0, 0xebf8,
+ 0xed23, 0xf46e, 0xf658, 0xebb5, 0xea56, 0xf948,
+ 0xf8a1, 0xf071, 0xfadb, 0xf8e2, 0xe626, 0xedea,
+ 0x02e8, 0x050c, 0xffff, 0xfdfc, 0x0210, 0x0771,
+ 0xfef0, 0xfaf1, 0x05d0, 0x0179, 0xf76b, 0x0123,
+ 0x060c, 0xfd3c, 0xfe45, 0x0497, 0x0135, 0xfd96,
+ 0x053f, 0x08d7, 0xfcbc, 0xfc3f, 0x082e, 0xfed5,
+ 0xf8af, 0x0885, 0x01d2, 0xf356, 0x02b9, 0x07c8,
+ 0xfbfa, 0x01ae, 0x0466, 0xfe35, 0xffac, 0xf9fd,
+ 0xf92c, 0x05d1, 0x00de, 0xf984, 0x044c, 0x0626,
+ 0x0569, 0x0d6c, 0x066c, 0xfc10, 0xff5c, 0x007f,
+ 0x00f4, 0x0387, 0x02e1, 0x0864, 0x0e7d, 0x0da5,
+ 0x0a8b, 0xfeb2, 0xf977, 0x0720, 0x0828, 0x004d,
+ 0x055a, 0xfe0a, 0xf202, 0xfb84, 0xff5b, 0xf8c9,
+ 0xfab5, 0xf9b9, 0xfab7, 0xff93, 0xf843, 0xf74b,
+ 0xfe6a, 0xf8ca, 0xfcf8, 0x0d00, 0x0846, 0xfaa4,
+ 0xfb9e, 0x06bf, 0x0c8d, 0x0237, 0xfd35, 0x04bf,
+ 0xfbdc, 0xf63f, 0x087b, 0x089c, 0xf8b9, 0xfd74,
+ 0x07e5, 0x0a7d, 0x06e0, 0xfc91, 0xff0e, 0x0518,
+ 0xfa81, 0xfb9d, 0x06cb, 0xfe51, 0xfaa7, 0x05c4,
+ 0x03b9, 0xfdf9, 0xffc6, 0xfbdd, 0xfae9, 0x02c8,
+ 0x0134, 0xf887, 0xfb60, 0x0087, 0xf9e2, 0xf9ee,
+ 0x0690, 0x06a5, 0xff38, 0x026e, 0x0329, 0x013d,
+ 0x05d0, 0x02cf, 0xfcd5, 0x02fe, 0x077c, 0x022c,
+ 0xff68, 0x02e7, 0x0217, 0xfc47, 0x04e7, 0x1247,
+ 0x08c6, 0x02f4, 0x0dbd, 0x061b, 0x003b, 0x0ddc,
+ 0x069e, 0xfd1d, 0x0b72, 0x07d0, 0xfb90, 0x0669,
+ 0x0918, 0x0011, 0x04bc, 0x0db9, 0x116e, 0x0e05,
+ 0x08d7, 0x0c4f, 0x0b56, 0x082d, 0x0e1d, 0x0906,
+ 0x04e1, 0x137a, 0x1150, 0x03ce, 0x0a18, 0x0c4b,
+ 0x07e7, 0x0f94, 0x11cf, 0x0dcd, 0x0bc4, 0x068b,
+ 0x0a7a, 0x100a, 0x0a47, 0x0f2f, 0x170f, 0x0e44,
+ 0x0b20, 0x1172, 0x1434, 0x1956, 0x18d9, 0x0f75,
+ 0x0b84, 0x0cab, 0x1232, 0x182a, 0x155f, 0x16a0,
+ 0x1b45, 0x138c, 0x0e9d, 0x11d2, 0x0e5e, 0x0db2,
+ 0x1278, 0x12df, 0x1732, 0x1c0a, 0x174a, 0x13e5,
+ 0x1435, 0x11e3, 0x12c6, 0x1677, 0x17cf, 0x1a71,
+ 0x1df2, 0x1c34, 0x15cd, 0x1122, 0x1123, 0x1479,
+ 0x192e, 0x1a82, 0x17fe, 0x197d, 0x1bfd, 0x1597,
+ 0x0eed, 0x1275, 0x13b7, 0x0bed, 0x0e5f, 0x1b32,
+ 0x1931, 0x13e8, 0x1ae0, 0x10ab, 0x01fb, 0x130d,
+ 0x191e, 0x094f, 0x169e, 0x1d5b, 0x068a, 0x130b,
+ 0x26bb, 0x0d5f, 0x05de, 0x195f, 0x1115, 0x0a2e,
+ 0x18ac, 0x1bcd, 0x1a34, 0x17c8, 0x0b49, 0x100f,
+ 0x218d, 0x1a32, 0x0ea3, 0x1a02, 0x1cdb, 0x0e77,
+ 0x0e8a, 0x1322, 0x0bcd, 0x1131, 0x1af6, 0x1195,
+ 0x0cc6, 0x0b47, 0x00d7, 0x0ff9, 0x2404, 0x11d7,
+ 0x0930, 0x1653, 0x0b81, 0x066e, 0x16e8, 0x143e,
+ 0x1040, 0x1870, 0x0edc, 0x04e1, 0x0a6e, 0x0bd4,
+ 0x0f41, 0x157e, 0x116e, 0x0df8, 0x0cde, 0x0a38,
+ 0x0f17, 0x13a1, 0x132f, 0x14d3, 0x0e49, 0x03ad,
+ 0x0884, 0x116c, 0x0f6b, 0x0e60, 0x1426, 0x1218,
+ 0x046a, 0x01b7, 0x10a5, 0x16fb, 0x0f33, 0x09ca,
+ 0x05b8, 0x013d, 0x004d, 0x038e, 0x0e49, 0x11ec,
+ 0x0638, 0x0567, 0x0953, 0xfab7, 0xf89f, 0x0b9b,
+ 0x0dd3, 0x069b, 0x078e, 0x039d, 0x0306, 0x0b05,
+ 0x0b2d, 0x0883, 0x09d4, 0x0b41, 0x0edf, 0x0bc2,
+ 0x0328, 0x0690, 0x0c8b, 0x0c41, 0x0e9f, 0x0b78,
+ 0x07e2, 0x122b, 0x1420, 0x0a35, 0x0e3f, 0x1313,
+ 0x0ba7, 0x0d36, 0x1576, 0x136b, 0x0ce5, 0x08b5,
+ 0x06b4, 0x0863, 0x0c02, 0x0d51, 0x0b9b, 0x0d4e,
+ 0x10f8, 0x0c2d, 0x0a13, 0x155c, 0x1a02, 0x13ed,
+ 0x141e, 0x1644, 0x1466, 0x11ad, 0x0d0b, 0x0fff,
+ 0x1aa3, 0x17d6, 0x09bb, 0x0675, 0x0efe, 0x1271,
+ 0x0db2, 0x1285, 0x1b76, 0x101e, 0x05c4, 0x107c,
+ 0x11f4, 0x0d10, 0x179a, 0x1603, 0x07f4, 0x0c43,
+ 0x125a, 0x0f41, 0x121f, 0x0fb4, 0x0891, 0x0b3e,
+ 0x0725, 0xfd99, 0x082d, 0x176b, 0x13a1, 0x0d5e,
+ 0x0e26, 0x073f, 0x0145, 0x0c48, 0x149a, 0x0eba,
+ 0x0cc1, 0x08ea, 0xfcba, 0x00a4, 0x0e8c, 0x0d2b,
+ 0x0876, 0x08cd, 0x0582, 0x0317, 0x024d, 0x058b,
+ 0x1026, 0x0f7a, 0x0452, 0x032e, 0x0329, 0x01b2,
+ 0x0973, 0x0b14, 0x070b, 0x0cb9, 0x0b0a, 0xff26,
+ 0xff62, 0x04c2, 0x03d2, 0x04dd, 0x0564, 0xfeb1,
+ 0xf882, 0xfc7f, 0x052c, 0x044d, 0xff4a, 0x0225,
+ 0x0007, 0xf43a, 0xf35f, 0x0053, 0x07b9, 0xff8b,
+ 0xf416, 0xf71a, 0xfd89, 0xf53e, 0xeee5, 0xf79d,
+ 0xfe8e, 0xfb41, 0xf466, 0xf233, 0xf719, 0xf62a,
+ 0xeefb, 0xf4bd, 0x0074, 0xfb1a, 0xeba0, 0xea55,
+ 0xf83e, 0xfc15, 0xf324, 0xf7df, 0xff84, 0xf201,
+ 0xe9db, 0xf34d, 0xf479, 0xf415, 0xfa27, 0xf415,
+ 0xecab, 0xf176, 0xf1fb, 0xef31, 0xf333, 0xf59e,
+ 0xf43e, 0xf1f9, 0xed0b, 0xe9fa, 0xeca0, 0xf0e1,
+ 0xef4a, 0xea4e, 0xeddd, 0xeefd, 0xe388, 0xe88c,
+ 0xfa0e, 0xedad, 0xdc34, 0xe989, 0xed82, 0xdd5f,
+ 0xe3b1, 0xf289, 0xeac7, 0xe381, 0xe790, 0xe38f,
+ 0xe029, 0xe95e, 0xea7c, 0xe0b4, 0xe44d, 0xea17,
+ 0xde09, 0xdbfb, 0xec1d, 0xe9a7, 0xdd03, 0xe416,
+ 0xe816, 0xdc10, 0xdb14, 0xe5b9, 0xe695, 0xdc02,
+ 0xd487, 0xdb19, 0xe408, 0xe24f, 0xe1d8, 0xe4a5,
+ 0xdd80, 0xd38c, 0xd494, 0xe0ba, 0xe7ab, 0xd7c4,
+ 0xc9d8, 0xd769, 0xddb3, 0xd17a, 0xd9a6, 0xeb64,
+ 0xe50d, 0xd504, 0xcf59, 0xd566, 0xdced, 0xd6c7,
+ 0xd0fd, 0xd9da, 0xdc33, 0xd5ce, 0xd95d, 0xdf32,
+ 0xdde8, 0xdab6, 0xd811, 0xd98d, 0xdd98, 0xdbeb,
+ 0xd4a3, 0xd06e, 0xd794, 0xdef7, 0xd754, 0xd4cc,
+ 0xe093, 0xdd33, 0xd2bf, 0xdb92, 0xdff3, 0xd624,
+ 0xd714, 0xd8dd, 0xceb7, 0xcede, 0xd95d, 0xd776,
+ 0xd221, 0xdb4b, 0xe1e9, 0xd76f, 0xd15c, 0xd779,
+ 0xd709, 0xd3cf, 0xd6c2, 0xd86d, 0xdd3c, 0xdf53,
+ 0xd287, 0xd14d, 0xe00e, 0xdb9f, 0xd32d, 0xde79,
+ 0xdfea, 0xd36c, 0xd31b, 0xda3f, 0xddea, 0xdbee,
+ 0xd7b2, 0xdd20, 0xdfd9, 0xd610, 0xd943, 0xe5f6,
+ 0xe288, 0xdbe2, 0xdc91, 0xda32, 0xd9db, 0xe128,
+ 0xe874, 0xe5d6, 0xd9f0, 0xd598, 0xd970, 0xd968,
+ 0xdc3f, 0xdd40, 0xd622, 0xdb3a, 0xe45c, 0xdcf4,
+ 0xda84, 0xe246, 0xddbb, 0xd47e, 0xd86b, 0xe2cd,
+ 0xdf66, 0xd271, 0xd874, 0xe354, 0xda3b, 0xd975,
+ 0xe243, 0xdc8e, 0xdefd, 0xe525, 0xda54, 0xde2e,
+ 0xe8b6, 0xdb04, 0xd667, 0xdff3, 0xdb39, 0xdbc1,
+ 0xe3f8, 0xde12, 0xdb10, 0xe2a3, 0xe3eb, 0xe224,
+ 0xe394, 0xe288, 0xde8b, 0xdde7, 0xe1ee, 0xe365,
+ 0xe0c0, 0xde9e, 0xdd94, 0xde83, 0xde5f, 0xdd80,
+ 0xe40e, 0xe733, 0xe06d, 0xe1d3, 0xe3c1, 0xd990,
+ 0xd8ac, 0xe178, 0xe33e, 0xe4f2, 0xe3c5, 0xdaca,
+ 0xd9c3, 0xe1bd, 0xe8da, 0xea80, 0xe1e4, 0xdcb4,
+ 0xe3ba, 0xe347, 0xddc2, 0xe4d5, 0xe993, 0xe2f1,
+ 0xe08d, 0xe13e, 0xe099, 0xe792, 0xed46, 0xe638,
+ 0xe1d5, 0xe592, 0xe287, 0xdf25, 0xe655, 0xeb18,
+ 0xeb1a, 0xeded, 0xe8e0, 0xe08c, 0xe7e2, 0xf05e,
+ 0xedf3, 0xf2d4, 0xf67c, 0xe76d, 0xdeab, 0xe796,
+ 0xeb7b, 0xe9f2, 0xe9ab, 0xe6cd, 0xea1d, 0xedb5,
+ 0xe612, 0xe7ba, 0xf177, 0xeb03, 0xe6f2, 0xef5b,
+ 0xe98f, 0xe156, 0xec23, 0xf3c1, 0xf03f, 0xeffe,
+ 0xedfc, 0xea7a, 0xee14, 0xefb2, 0xed29, 0xeee7,
+ 0xedf2, 0xea11, 0xeedc, 0xf2ce, 0xee84, 0xefbf,
+ 0xf27b, 0xed91, 0xecf1, 0xee3a, 0xeb3b, 0xf105,
+ 0xf772, 0xf403, 0xf724, 0xfa07, 0xf2b2, 0xf6b6,
+ 0xfdb7, 0xf400, 0xefb5, 0xf60f, 0xf6b5, 0xf8f1,
+ 0xfa9c, 0xf670, 0xfb3d, 0x0223, 0xff8b, 0xfffe,
+ 0x009e, 0xfa1d, 0xf859, 0xfbee, 0xff84, 0x0323,
+ 0xff8b, 0xf94c, 0xfc08, 0xff4a, 0xfce4, 0xfcee,
+ 0xff13, 0xfdbc, 0xfce0, 0x01b9, 0x0426, 0xfca4,
+ 0xf7c5, 0xfd95, 0x0147, 0xfc9c, 0xf84e, 0xfc07,
+ 0x00d3, 0xfb84, 0xf99f, 0x02b0, 0x0040, 0xf88f,
+ 0xfeb0, 0x018e, 0x015d, 0x0715, 0x0169, 0xff9a,
+ 0x0e03, 0x0c11, 0x02d4, 0x0848, 0x0493, 0xfe71,
+ 0x061b, 0x03db, 0xfed6, 0x0869, 0x0ada, 0x06b9,
+ 0x0ad9, 0x08f3, 0x0266, 0x06d9, 0x0916, 0x0072,
+ 0xfeeb, 0x0650, 0x0843, 0x0782, 0x07b5, 0x05f8,
+ 0x0829, 0x091f, 0x034a, 0x0501, 0x0a8d, 0x09ff,
+ 0x0e33, 0x0ea7, 0x0366, 0xff27, 0x0085, 0x01e2,
+ 0x094d, 0x09dd, 0x0571, 0x08f3, 0x06bb, 0x021b,
+ 0x09d0, 0x1026, 0x0d2d, 0x06e1, 0x0325, 0x085c,
+ 0x0d6e, 0x0d37, 0x0df7, 0x0aee, 0x0919, 0x0b68,
+ 0x0627, 0x06f7, 0x12b2, 0x12c6, 0x0ee9, 0x10c7,
+ 0x0d1a, 0x0c80, 0x10eb, 0x0f57, 0x103a, 0x1486,
+ 0x1307, 0x0dda, 0x0969, 0x0d0c, 0x14dc, 0x1255,
+ 0x0e30, 0x1023, 0x0b06, 0x04e3, 0x0c73, 0x1355,
+ 0x0c1a, 0x093f, 0x1354, 0x12f5, 0x090a, 0x0d34,
+ 0x1390, 0x0d19, 0x0829, 0x0ace, 0x0f3e, 0x0d52,
+ 0x04be, 0x07e6, 0x1071, 0x0b65, 0x0a16, 0x0ec4,
+ 0x07b8, 0x03ab, 0x09bc, 0x0c42, 0x0bd1, 0x0a37,
+ 0x0a8d, 0x0e91, 0x0ed0, 0x0ff7, 0x1047, 0x075c,
+ 0x04e9, 0x0bbc, 0x0cff, 0x0c71, 0x0b8f, 0x09ae,
+ 0x0c33, 0x0e90, 0x12ee, 0x171d, 0x0efa, 0x07ab,
+ 0x0927, 0x08c9, 0x0be4, 0x0e55, 0x0a30, 0x0e0f,
+ 0x1217, 0x0c57, 0x0c6d, 0x1097, 0x0fe6, 0x0db2,
+ 0x0b2a, 0x0d9d, 0x0f4a, 0x0918, 0x0d00, 0x172b,
+ 0x11e4, 0x0a57, 0x0a65, 0x0715, 0x05b1, 0x0a41,
+ 0x0c59, 0x0cd2, 0x0eac, 0x0d86, 0x08f0, 0x096b,
+ 0x1075, 0x123f, 0x0be2, 0x086f, 0x0e75, 0x1664,
+ 0x13d5, 0x0eb4, 0x135a, 0x1379, 0x0c28, 0x0ced,
+ 0x0c53, 0x05be, 0x0854, 0x0dc3, 0x0c9f, 0x0b16,
+ 0x0a18, 0x0ac5, 0x0e6a, 0x0f36, 0x0bff, 0x0b5d,
+ 0x1139, 0x11d0, 0x07cb, 0x08ff, 0x14ec, 0x13bf,
+ 0x0e27, 0x0e39, 0x0ad9, 0x0892, 0x071d, 0x049b,
+ 0x0ab2, 0x0e14, 0x07ec, 0x0894, 0x0c33, 0x099c,
+ 0x0879, 0x093b, 0x06c8, 0x0250, 0x04cc, 0x0df8,
+ 0x0b8d, 0x042b, 0x096f, 0x0af4, 0x07cc, 0x0e57,
+ 0x0ce1, 0x04c2, 0x0a11, 0x0e0e, 0x082f, 0x050d,
+ 0x0586, 0x084d, 0x0920, 0x0645, 0x08f2, 0x0a68,
+ 0x0474, 0x0352, 0x0589, 0x0685, 0x0ab8, 0x0b47,
+ 0x0a24, 0x108c, 0x11bb, 0x0a1d, 0x0a6c, 0x0d68,
+ 0x0707, 0x0520, 0x0c5a, 0x0b19, 0x0465, 0x05f2,
+ 0x0736, 0x063b, 0x0b0c, 0x09bf, 0x01b1, 0x0630,
+ 0x0e82, 0x0a7f, 0x0821, 0x0d2d, 0x0ab3, 0x0386,
+ 0x0332, 0x056c, 0x07eb, 0x0b2f, 0x06cd, 0x0070,
+ 0x037a, 0x04c4, 0x00ef, 0x0392, 0x05f8, 0x022a,
+ 0xffd1, 0x00a7, 0x064b, 0x0c27, 0x083e, 0x0378,
+ 0x05c8, 0x092a, 0x0bd0, 0x0954, 0x03b3, 0x0670,
+ 0x0ac8, 0x0948, 0x06a5, 0x00d7, 0xfecc, 0x071c,
+ 0x0b56, 0x08f1, 0x087b, 0x06eb, 0x05db, 0x0762,
+ 0x0858, 0x0b3a, 0x0b68, 0x046e, 0x00bb, 0x03d5,
+ 0x066c, 0x05b3, 0x0312, 0x027e, 0x04e7, 0x04d8,
+ 0x007f, 0xfeb7, 0x0482, 0x0909, 0x05e0, 0x059c,
+ 0x0895, 0x0417, 0xff42, 0x01fc, 0x0615, 0x077a,
+ 0x048e, 0xfff2, 0x00bf, 0x05a1, 0x0992, 0x0a3d,
+ 0x0880, 0x091e, 0x086c, 0x027e, 0x0099, 0x03f1,
+ 0x0373, 0xffe6, 0xffea, 0x0570, 0x09a9, 0x079f,
+ 0x06fa, 0x0836, 0x0414, 0x00d0, 0x0332, 0x04ad,
+ 0x0317, 0x011c, 0x0130, 0x0327, 0x04cf, 0x051f,
+ 0x020f, 0xffa3, 0x01ee, 0x014a, 0x0094, 0x0576,
+ 0x0313, 0xfd56, 0x023b, 0x06a5, 0x05dd, 0x0566,
+ 0x0140, 0xffe5, 0x02a0, 0xff0d, 0xfd22, 0x0035,
+ 0xfef4, 0xffb6, 0x050c, 0x0609, 0x03a2, 0x0319,
+ 0x05ba, 0x05ae, 0xffc6, 0xff65, 0x03ac, 0xffb1,
+ 0xfb74, 0xff6c, 0x0230, 0x0037, 0xfe5d, 0xfee8,
+ 0xffa2, 0xfd84, 0xfc98, 0xff43, 0xfe6a, 0xf84e,
+ 0xf745, 0xff25, 0x0119, 0xf859, 0xf6ff, 0xfd3e,
+ 0xfd0c, 0xfba5, 0xfbff, 0xfb2d, 0xfcd4, 0xfc00,
+ 0xfc4b, 0x0348, 0xfffc, 0xf7b9, 0xfc5b, 0xff33,
+ 0xff57, 0x05d7, 0x02c9, 0xfd65, 0x03cf, 0x0485,
+ 0xff2b, 0xff76, 0xfe93, 0xfd0c, 0xfd6b, 0xfd39,
+ 0xff91, 0xffb8, 0xfdb0, 0x00c3, 0x0135, 0xfd84,
+ 0xfdce, 0xfeee, 0x0012, 0xff2c, 0xf930, 0xf97d,
+ 0xfced, 0xf753, 0xf5f7, 0xfc66, 0xfc29, 0xfa2d,
+ 0xfb39, 0xfa38, 0xfb9d, 0xfd6b, 0xfbd8, 0xfe1b,
+ 0xffb2, 0xfc02, 0xfbb5, 0xfa42, 0xf4a9, 0xf74f,
+ 0xfdf0, 0xfef5, 0xfeba, 0xfcf1, 0xfbbf, 0xfcdd,
+ 0xf7d0, 0xf5ea, 0xfce9, 0xfaf5, 0xf7da, 0xfe6f,
+ 0xfc38, 0xf765, 0xfbdc, 0xfa7a, 0xf984, 0xff39,
+ 0xfbbc, 0xf776, 0xf9e5, 0xfa05, 0xfd9d, 0xfdce,
+ 0xf4bf, 0xf67c, 0xfb3c, 0xf563, 0xf828, 0xfe3c,
+ 0xf825, 0xf61e, 0xf8f8, 0xf654, 0xf85b, 0xfb9b,
+ 0xf600, 0xf409, 0xfa25, 0xfcc9, 0xfb79, 0xfa17,
+ 0xf82f, 0xf7e8, 0xf7e8, 0xf67b, 0xf6bc, 0xf489,
+ 0xf0c4, 0xf5d4, 0xfb9f, 0xfb2a, 0xfdbe, 0xfaeb,
+ 0xf146, 0xf23f, 0xf379, 0xeef1, 0xf232, 0xf1d3,
+ 0xf0ac, 0xfcc6, 0xfdca, 0xf40e, 0xf6df, 0xf5fc,
+ 0xef8a, 0xf20f, 0xf214, 0xf2c5, 0xf6f7, 0xf3be,
+ 0xf6c8, 0xfd70, 0xf83e, 0xf739, 0xf8d1, 0xf3e1,
+ 0xf682, 0xf74d, 0xf39a, 0xfacb, 0xf9c9, 0xf2ba,
+ 0xfe6f, 0x0281, 0xf488, 0xf46c, 0xfbbf, 0xf88e,
+ 0xf361, 0xf0fa, 0xf394, 0xf688, 0xf0fb, 0xef1d,
+ 0xf470, 0xf2c4, 0xf079, 0xf425, 0xf3fb, 0xf468,
+ 0xfac1, 0xfba4, 0xf655, 0xf417, 0xf3cc, 0xf361,
+ 0xf457, 0xf4c5, 0xf4ed, 0xf62f, 0xf576, 0xf22c,
+ 0xf11d, 0xf54f, 0xf8a6, 0xf3ef, 0xf0c2, 0xf715,
+ 0xf872, 0xf211, 0xf307, 0xf6ab, 0xf518, 0xf6ec,
+ 0xfa9c, 0xf8bb, 0xf514, 0xf2f0, 0xf2bd, 0xf35b,
+ 0xf293, 0xf390, 0xf4c1, 0xf13e, 0xef8f, 0xf363,
+ 0xf670, 0xf67d, 0xf3a2, 0xf173, 0xf537, 0xf744,
+ 0xf31d, 0xf2dd, 0xf50c, 0xf367, 0xf51d, 0xf706,
+ 0xf222, 0xf232, 0xf6d6, 0xf484, 0xf45e, 0xf6d2,
+ 0xf1ab, 0xf25e, 0xf9fd, 0xf7a1, 0xf534, 0xf8ba,
+ 0xf69a, 0xf52b, 0xf572, 0xf0bd, 0xf2a0, 0xf92b,
+ 0xf6ba, 0xf194, 0xf065, 0xf181, 0xf26b, 0xf1b7,
+ 0xf55b, 0xf884, 0xf408, 0xf405, 0xf5b6, 0xf042,
+ 0xf029, 0xf237, 0xf124, 0xf6de, 0xf72e, 0xf0e4,
+ 0xf4f5, 0xf68b, 0xf3ec, 0xf8d2, 0xf657, 0xf180,
+ 0xf5e1, 0xf3f5, 0xf287, 0xf63e, 0xf120, 0xf32c,
+ 0xfb6b, 0xf44f, 0xf10e, 0xf7b5, 0xf5df, 0xf51b,
+ 0xf60e, 0xf224, 0xf505, 0xf74a, 0xf3f4, 0xf6bc,
+ 0xf660, 0xf15a, 0xf3c7, 0xf63d, 0xf7c7, 0xfba5,
+ 0xf8fb, 0xf6e7, 0xfb90, 0xfc08, 0xf859, 0xf4f9,
+ 0xf3bb, 0xf7de, 0xf99d, 0xf745, 0xf97d, 0xfb7c,
+ 0xf9ee, 0xf8d5, 0xf5cc, 0xf410, 0xf653, 0xf7bf,
+ 0xfa63, 0xfc26, 0xf95d, 0xfa40, 0xfabb, 0xf350,
+ 0xf245, 0xfa32, 0xfc13, 0xfa68, 0xfa91, 0xf67d,
+ 0xf308, 0xf639, 0xf6ac, 0xf33e, 0xf593, 0xf8cb,
+ 0xf6d2, 0xf68a, 0xf6d4, 0xf4ea, 0xf7d1, 0xfaf0,
+ 0xf810, 0xf610, 0xf39e, 0xf0c0, 0xf54a, 0xf8fb,
+ 0xf78a, 0xfa74, 0xfd02, 0xfbae, 0xfc43, 0xfb7e,
+ 0xfad5, 0xfc35, 0xf970, 0xf8cc, 0xfbc4, 0xf86c,
+ 0xf67f, 0xfab5, 0xfb3e, 0xf9eb, 0xf88e, 0xf545,
+ 0xf663, 0xf946, 0xf835, 0xf825, 0xfa37, 0xfc47,
+ 0xfd06, 0xfa7e, 0xf934, 0xfb15, 0xfb46, 0xf946,
+ 0xf65a, 0xf564, 0xf8a7, 0xfb14, 0xfab0, 0xf974,
+ 0xf8bb, 0xfbe6, 0xfe4c, 0xfbb4, 0xfb57, 0xfc73,
+ 0xfb3e, 0xfa98, 0xf763, 0xf437, 0xf6ea, 0xf991,
+ 0xfca2, 0x0146, 0x00ae, 0x0007, 0x0280, 0x02bc,
+ 0x0285, 0xff7a, 0xfbc7, 0xff2e, 0xffa2, 0xfbfc,
+ 0xfec7, 0xff10, 0xfcc7, 0x00ff, 0x0146, 0xfd7b,
+ 0xfe6d, 0xfe3b, 0xfe7d, 0x0131, 0xfd73, 0xf85f,
+ 0xfa45, 0xfd3a, 0xfdd1, 0xfe85, 0xfe81, 0xfcc7,
+ 0xfd06, 0xff1f, 0xfca6, 0xf983, 0xfc1e, 0xfde6,
+ 0xfcd4, 0xfb4b, 0xf81a, 0xf8f7, 0xfb5d, 0xf7fd,
+ 0xf89c, 0xfd2b, 0xfbb3, 0xfc43, 0x004f, 0xfefe,
+ 0xfdbd, 0x0034, 0x0077, 0xfcfe, 0xfa1f, 0xfb55,
+ 0xfc21, 0xfbea, 0xfef8, 0xfd6d, 0xf8a8, 0xfca8,
+ 0x004a, 0xfd00, 0xfc05, 0xfbc6, 0xfa1c, 0xf972,
+ 0xf8b4, 0xf9b7, 0xf953, 0xf8da, 0xfe08, 0xfc9d,
+ 0xf71e, 0xfcc0, 0xfd53, 0xf6dc, 0xfc1d, 0xfe24,
+ 0xf6b7, 0xf62b, 0xf639, 0xf619, 0xfa8f, 0xf7a5,
+ 0xf461, 0xf8a8, 0xf725, 0xf432, 0xf6e1, 0xf77e,
+ 0xf8a5, 0xf990, 0xf596, 0xf3d5, 0xf31b, 0xf183,
+ 0xf50b, 0xf622, 0xf1c0, 0xf1af, 0xf2a8, 0xf1e5,
+ 0xf4b0, 0xf685, 0xf671, 0xf902, 0xf8dd, 0xf5d0,
+ 0xf6cc, 0xf8fe, 0xf91d, 0xf9a3, 0xf9fd, 0xf8f5,
+ 0xf738, 0xf643, 0xf78c, 0xf86e, 0xf777, 0xf6ea,
+ 0xf4e6, 0xf181, 0xf125, 0xf21a, 0xf368, 0xf74d,
+ 0xf8e5, 0xf63a, 0xf513, 0xf5ea, 0xf654, 0xf68e,
+ 0xf6f1, 0xf924, 0xfbc4, 0xfa25, 0xf68b, 0xf726,
+ 0xfa4f, 0xf9d6, 0xf771, 0xf8c7, 0xfad0, 0xf9e5,
+ 0xf901, 0xf8aa, 0xf9b5, 0xfc73, 0xfb19, 0xf898,
+ 0xfaea, 0xfb1f, 0xf843, 0xf8f4, 0xfad6, 0xfc03,
+ 0xfc52, 0xfa86, 0xfa41, 0xfa24, 0xf82a, 0xf936,
+ 0xfa89, 0xfa32, 0xfc59, 0xfc81, 0xfb34, 0xfd5c,
+ 0xfbda, 0xf7bc, 0xf98c, 0xfcc4, 0xfd38, 0xfbee,
+ 0xfa4a, 0xfc02, 0xfb9d, 0xf53c, 0xf3e8, 0xf8c4,
+ 0xfaab, 0xf9dd, 0xf830, 0xf76a, 0xfa37, 0xfb5d,
+ 0xf913, 0xf989, 0xfbc6, 0xfb8b, 0xfb95, 0xfc6f,
+ 0xf953, 0xf67f, 0xfb41, 0xfe6a, 0xf9ca, 0xf92e,
+ 0xfc30, 0xf974, 0xf86f, 0xfc26, 0xfc79, 0xfb60,
+ 0xfb45, 0xfacf, 0xfcdd, 0xfe39, 0xfc43, 0xfd26,
+ 0xff01, 0xfc64, 0xfa30, 0xfaba, 0xfa17, 0xf9ac,
+ 0xfbd1, 0xfcff, 0xfb94, 0xfb44, 0xfc76, 0xfbcf,
+ 0xfa4c, 0xfa9f, 0xfbd8, 0xfc7c, 0xfbd4, 0xf9f1,
+ 0xf8db, 0xf8c7, 0xf7cc, 0xf816, 0xfbfa, 0xfd4f,
+ 0xf880, 0xf72f, 0xfc51, 0xfcca, 0xf97c, 0xfc2a,
+ 0x000d, 0xff92, 0xff99, 0x0031, 0xfe9d, 0xfd0f,
+ 0xfcba, 0xfd6b, 0xfe0d, 0xfd2f, 0xfd76, 0xff65,
+ 0xfea9, 0xfcd5, 0xfe98, 0xffbb, 0xfb38, 0xf88c,
+ 0xfcaf, 0xfd11, 0xf92f, 0xfd2a, 0x00ef, 0xfacc,
+ 0xf827, 0xfb7f, 0xfb75, 0xfc76, 0xfd92, 0xfae1,
+ 0xfc76, 0xfee7, 0xfbd2, 0xfb88, 0xfcfd, 0xfb2c,
+ 0xfc43, 0xff41, 0xff29, 0xfd54, 0xfb64, 0xfd2c,
+ 0x00dc, 0x006f, 0x0087, 0x017c, 0xfe1e, 0xfce7,
+ 0xfe74, 0xfc2c, 0xfad0, 0xfc4b, 0xfced, 0xfe83,
+ 0xffce, 0xffdd, 0x00ee, 0xffaa, 0xfc48, 0xfb91,
+ 0xfbf5, 0xfc52, 0xfdfa, 0xfecf, 0xfe33, 0xfe51,
+ 0xfe8b, 0xfbee, 0xf7fd, 0xf816, 0xfae5, 0xfb5e,
+ 0xfb1b, 0xfd51, 0x0092, 0x009b, 0xfd1a, 0xfc91,
+ 0xff27, 0xfe76, 0xfc5c, 0xfc35, 0xfdd3, 0x012f,
+ 0x0111, 0xfdf0, 0xff44, 0x0069, 0xfe6c, 0x003e,
+ 0x0242, 0x0020, 0xff53, 0x0053, 0x0082, 0x0096,
+ 0x0191, 0x02bf, 0x019e, 0x0105, 0x0308, 0x01b5,
+ 0x0001, 0x02f9, 0x0357, 0x0147, 0x01b0, 0x01e0,
+ 0x03e5, 0x0629, 0x0366, 0x0302, 0x05a4, 0x0355,
+ 0x0105, 0x01cb, 0x01de, 0x02a5, 0x0274, 0x00e7,
+ 0x026a, 0x0336, 0x017e, 0x02ad, 0x0426, 0x02ca,
+ 0x02b8, 0x02df, 0x0060, 0xfea3, 0xfece, 0xfefa,
+ 0xfffe, 0x0138, 0x016e, 0x025f, 0x038b, 0x039b,
+ 0x0315, 0x012a, 0xffb1, 0x0090, 0x01b1, 0x03ac,
+ 0x03c9, 0xff2c, 0xff42, 0x040d, 0x02ee, 0x0161,
+ 0x038a, 0x03ae, 0x0483, 0x0552, 0x035e, 0x0369,
+ 0x03af, 0x041a, 0x06ff, 0x06e7, 0x06fa, 0x086a,
+ 0x0495, 0x039e, 0x05c5, 0x0279, 0x03c6, 0x07f7,
+ 0x05e8, 0x07c0, 0x096b, 0x0471, 0x058a, 0x0844,
+ 0x0607, 0x06c9, 0x061f, 0x0512, 0x0985, 0x08a7,
+ 0x051a, 0x08e3, 0x0a81, 0x069c, 0x0455, 0x04f3,
+ 0x0786, 0x076f, 0x0468, 0x04da, 0x05ad, 0x0367,
+ 0x03dd, 0x0809, 0x0a27, 0x0870, 0x07a7, 0x08b4,
+ 0x0683, 0x03a4, 0x046c, 0x05da, 0x071c, 0x0683,
+ 0x02f3, 0x02b2, 0x04e3, 0x04a4, 0x04c1, 0x04fc,
+ 0x0424, 0x03e6, 0x0388, 0x0502, 0x06e6, 0x0557,
+ 0x0568, 0x069d, 0x045b, 0x048c, 0x07e7, 0x0941,
+ 0x08a8, 0x063b, 0x057c, 0x065e, 0x03bf, 0x053a,
+ 0x0be7, 0x0ab0, 0x06cd, 0x08a3, 0x07cd, 0x0484,
+ 0x0424, 0x0335, 0x0311, 0x064a, 0x07f1, 0x064a,
+ 0x0568, 0x06fb, 0x0899, 0x0839, 0x0654, 0x05bc,
+ 0x088f, 0x0a23, 0x07ee, 0x0864, 0x0a7c, 0x0847,
+ 0x05f6, 0x0580, 0x041f, 0x0353, 0x0223, 0x001c,
+ 0xffb3, 0x0031, 0x02bf, 0x053d, 0x0304, 0x021e,
+ 0x03e8, 0x0250, 0x022a, 0x03d8, 0x0143, 0x0008,
+ 0x0262, 0x049f, 0x0812, 0x07d0, 0x0302, 0x0365,
+ 0x05fd, 0x04d8, 0x0503, 0x0543, 0x03f0, 0x057b,
+ 0x052d, 0x00c7, 0x002d, 0x017d, 0x0007, 0x00e9,
+ 0x03ad, 0x02c1, 0x00a7, 0x017e, 0x0413, 0x0476,
+ 0x01eb, 0x0155, 0x02dd, 0x0216, 0x01a5, 0x02ee,
+ 0x0251, 0x01e6, 0x029b, 0x0199, 0x0148, 0x028b,
+ 0x031c, 0x02ca, 0xff90, 0xfbf7, 0xfe73, 0x027a,
+ 0x02c0, 0x042e, 0x0623, 0x0337, 0x001c, 0x0100,
+ 0x0025, 0xfd46, 0xfdf0, 0xfed4, 0xfe47, 0x0181,
+ 0x0442, 0x02fc, 0x042e, 0x0592, 0x022a, 0xfec9,
+ 0xfd8a, 0xfe2a, 0x0094, 0x010c, 0x0097, 0x010c,
+ 0x0000, 0xff31, 0xff1a, 0xfef3, 0x00e8, 0x0193,
+ 0x0057, 0x0129, 0x011e, 0x01c9, 0x0454, 0x0150,
+ 0xfe49, 0x0097, 0xfebb, 0xfc59, 0x0003, 0x0072,
+ 0xfd05, 0xfc69, 0xfcf4, 0xfcab, 0xfaea, 0xf9a4,
+ 0xfb82, 0xfc91, 0xfc94, 0xfe8e, 0xfee6, 0xfda2,
+ 0xfdef, 0xfd8f, 0xfb2b, 0xf873, 0xf8c8, 0xfcba,
+ 0xfdb3, 0xfb7f, 0xfc4c, 0xfd34, 0xfbce, 0xfc45,
+ 0xfd0a, 0xfbbf, 0xfb0c, 0xfae9, 0xfab2, 0xfbeb,
+ 0xfc32, 0xfa65, 0xfc20, 0x0056, 0xff66, 0xfd02,
+ 0xfeb2, 0xff9d, 0xffce, 0x00ca, 0xfdf1, 0xfbe8,
+ 0xff0a, 0xff87, 0xfd33, 0xfd1b, 0xfcac, 0xfc11,
+ 0xfc73, 0xfbe1, 0xfd02, 0xffa0, 0xfe52, 0xfb10,
+ 0xfb2c, 0xfd34, 0xfe55, 0xff74, 0x0039, 0xff1c,
+ 0xfe2c, 0xfe1e, 0xfd67, 0xfe02, 0xff38, 0xfe7a,
+ 0xfecb, 0xffb8, 0xfe31, 0xfcdf, 0xfbe1, 0xfa49,
+ 0xfb00, 0xfca3, 0xfd2a, 0xfe2f, 0x0018, 0x023f,
+ 0x0152, 0xfd2f, 0xfc80, 0xfe04, 0xfd00, 0xfd56,
+ 0xff7e, 0xffc8, 0xfe5b, 0xfcda, 0xfe47, 0xffd1,
+ 0xfce6, 0xfc32, 0xfe00, 0xfb46, 0xf976, 0xf957,
+ 0xf63f, 0xf7cd, 0xfb8a, 0xf82c, 0xf723, 0xfb80,
+ 0xfaab, 0xf87b, 0xfb3b, 0xfcda, 0xfc1d, 0xfd69,
+ 0xff26, 0xff7b, 0x00e5, 0x01f5, 0xff7e, 0xfe47,
+ 0x011d, 0x0173, 0xfe73, 0xfd6f, 0xfd23, 0xfbbd,
+ 0xfb76, 0xfba7, 0xfb09, 0xfb5e, 0xfcf7, 0xfe02,
+ 0xfe34, 0xfec0, 0xffee, 0xffc3, 0xfc43, 0xf8f9,
+ 0xfae6, 0xfe1b, 0xfe06, 0xfecf, 0x017f, 0x0200,
+ 0x0033, 0xfd68, 0xfbea, 0xfd19, 0xfd67, 0xfcdf,
+ 0xfcf4, 0xfb4a, 0xfb07, 0xfcdf, 0xfb8c, 0xfadb,
+ 0xfc48, 0xfa22, 0xf8ce, 0xfad9, 0xfb5d, 0xfc79,
+ 0xfdcb, 0xfcf8, 0xfe38, 0xfe39, 0xf9cc, 0xf8a8,
+ 0xfa99, 0xfa55, 0xf9b9, 0xf932, 0xf97d, 0xfc34,
+ 0xfd18, 0xfb88, 0xfbd2, 0xfd41, 0xfd3e, 0xfbd7,
+ 0xfbe9, 0xff80, 0x01f0, 0x00a9, 0x003e, 0x000a,
+ 0xfcc1, 0xf9de, 0xf96c, 0xf99c, 0xfa90, 0xfad4,
+ 0xf9ab, 0xfb2a, 0xfe35, 0xfd2f, 0xfad7, 0xfb2b,
+ 0xfabe, 0xf931, 0xf987, 0xfa1b, 0xfa05, 0xfa36,
+ 0xf947, 0xf873, 0xfa64, 0xfcfd, 0xfd39, 0xfc4f,
+ 0xfd8a, 0xff74, 0xfcd5, 0xf8c3, 0xf9b0, 0xfb04,
+ 0xf8f5, 0xf927, 0xfb81, 0xfb9a, 0xfb1d, 0xfacb,
+ 0xfa0e, 0xfb07, 0xfc61, 0xfc0e, 0xfb9a, 0xfaac,
+ 0xf9c3, 0xfaf9, 0xfbc6, 0xfbd3, 0xfe1f, 0xffbc,
+ 0xfef5, 0xfecb, 0xfedc, 0xff84, 0x012e, 0x002f,
+ 0xfe4e, 0xfe77, 0xfd41, 0xfb9c, 0xfbd6, 0xfbd1,
+ 0xfcba, 0xfd73, 0xfb4e, 0xfae0, 0xfbcc, 0xf9dc,
+ 0xf8e7, 0xf95f, 0xf8d9, 0xfa22, 0xfb71, 0xfb26,
+ 0xfcce, 0xfe72, 0xfe04, 0xfd64, 0xfc3e, 0xfc42,
+ 0xfdd5, 0xfdb1, 0xfdc0, 0xffa3, 0x0090, 0xffda,
+ 0xfdec, 0xfd0f, 0xfe84, 0xfed0, 0xff19, 0x00a7,
+ 0xff3e, 0xfdd3, 0xff84, 0xffce, 0xffca, 0x0041,
+ 0xfdf1, 0xfd21, 0xff67, 0xffe9, 0x000b, 0x016c,
+ 0x01af, 0x00c0, 0xff7e, 0xfee0, 0xfea1, 0xfdde,
+ 0xfe2b, 0xfe69, 0xfda9, 0xff13, 0x00ae, 0x006f,
+ 0x014f, 0x0156, 0x0070, 0x031c, 0x05a5, 0x04ce,
+ 0x04e1, 0x06a3, 0x07f9, 0x07d5, 0x05bb, 0x03b7,
+ 0x02b2, 0x01d3, 0x0119, 0x0009, 0xffa6, 0x0022,
+ 0xffcf, 0x0145, 0x0400, 0x0334, 0x032e, 0x0688,
+ 0x061b, 0x02e8, 0x02c8, 0x0338, 0x0272, 0x0208,
+ 0x0179, 0x0165, 0x0232, 0x02eb, 0x04d3, 0x06a0,
+ 0x049c, 0x01ca, 0x01ce, 0x0119, 0xff7e, 0xffe1,
+ 0xfec5, 0xfc92, 0xfde3, 0xfe1b, 0xfbf1, 0xfe80,
+ 0x029d, 0x0233, 0x00e2, 0x0023, 0xfeee, 0xffc2,
+ 0x0161, 0x0001, 0xfd13, 0xfccd, 0xfe37, 0xfc7f,
+ 0xfa4a, 0xfc7d, 0xfe31, 0xfd00, 0xfd84, 0xfdad,
+ 0xfb4b, 0xfb22, 0xfdd0, 0xff61, 0xfea9, 0xfd9a,
+ 0xfdff, 0xfe57, 0xfde0, 0xfe8d, 0xff3f, 0xfe85,
+ 0xfdc1, 0xfc9f, 0xfaab, 0xf9a8, 0xfa92, 0xfc3c,
+ 0xfbf3, 0xf9c6, 0xf92f, 0xfa5a, 0xfabf, 0xfac1,
+ 0xfc95, 0xff7a, 0xff4d, 0xfc85, 0xfbdb, 0xfbaa,
+ 0xf9cd, 0xf9bf, 0xfac9, 0xfb35, 0xfccc, 0xfd69,
+ 0xfd42, 0xffd5, 0x01a8, 0x0127, 0x0162, 0xffd4,
+ 0xfbed, 0xf9cf, 0xf91d, 0xf934, 0xfac7, 0xfbcd,
+ 0xfc32, 0xfcaf, 0xfbf0, 0xfc08, 0xff05, 0x0147,
+ 0x0105, 0x012b, 0x01fb, 0x01cd, 0x0217, 0x0316,
+ 0x021b, 0x0072, 0x0103, 0x01e6, 0x018d, 0x0144,
+ 0x011d, 0x01b0, 0x0329, 0x02b1, 0x00f7, 0x010f,
+ 0x0084, 0xfe08, 0xfd97, 0xff3a, 0x00f6, 0x039f,
+ 0x0473, 0x01a7, 0x0090, 0x01d2, 0x00a4, 0xfee3,
+ 0xff0d, 0xfe9b, 0xfeac, 0x00c3, 0x00af, 0xfebc,
+ 0x0000, 0x01f6, 0x010a, 0x020a, 0x0517, 0x03ad,
+ 0x00ff, 0x0268, 0x02c9, 0x0078, 0x0008, 0x0040,
+ 0xffdb, 0x003f, 0xff74, 0xfe28, 0xfed2, 0xfe9d,
+ 0xfcd7, 0xfc4e, 0xfbda, 0xfaa9, 0xfaad, 0xfb49,
+ 0xfaa8, 0xf8d8, 0xf740, 0xf766, 0xf8d0, 0xfa03,
+ 0xfb15, 0xfbbd, 0xfb7f, 0xfc1d, 0xfda1, 0xfd7e,
+ 0xfd13, 0xfed5, 0x0019, 0xff51, 0xfe95, 0xfdc6,
+ 0xfd09, 0xfdb2, 0xfd58, 0xfb3f, 0xfb08, 0xfc96,
+ 0xfd76, 0xfe61, 0xff71, 0xff07, 0xfd52, 0xfbc9,
+ 0xfb21, 0xfaf9, 0xfb15, 0xfbe9, 0xfcc4, 0xfd0a,
+ 0xfe54, 0x0058, 0x003d, 0xff23, 0x0079, 0x02c6,
+ 0x0336, 0x02cb, 0x0235, 0x00cb, 0xff8c, 0xfed3,
+ 0xfe28, 0xfe6b, 0xff3e, 0xfef5, 0xfd53, 0xfae8,
+ 0xf92c, 0xf8e8, 0xf8a5, 0xf90b, 0xfab5, 0xfa29,
+ 0xf839, 0xf8ff, 0xf9a2, 0xf84e, 0xf8c2, 0xf94e,
+ 0xf71f, 0xf592, 0xf5de, 0xf629, 0xf5f4, 0xf4a1,
+ 0xf3e4, 0xf5ab, 0xf742, 0xf7b2, 0xf8b5, 0xf98f,
+ 0xfaff, 0xfe0a, 0xff67, 0xfe13, 0xfd05, 0xfca4,
+ 0xfc01, 0xfc08, 0xfcc4, 0xfc1f, 0xfa4a, 0xfa58,
+ 0xfbbb, 0xfbd3, 0xfbc0, 0xfba2, 0xfa1c, 0xf921,
+ 0xf951, 0xf9ca, 0xfb83, 0xfd0e, 0xfcb9, 0xfbe4,
+ 0xfb61, 0xfc03, 0xfd37, 0xfd17, 0xfd98, 0xfec3,
+ 0xfe0d, 0xfdce, 0xfdad, 0xfb7a, 0xfb7d, 0xfdbc,
+ 0xfec1, 0x001c, 0xff96, 0xfc25, 0xfb33, 0xfb63,
+ 0xfa71, 0xfb25, 0xfb40, 0xfa74, 0xfb79, 0xfa9a,
+ 0xf850, 0xf940, 0xfaf8, 0xfbe6, 0xfcca, 0xfbb6,
+ 0xfa35, 0xfa91, 0xfb30, 0xfb43, 0xfaf4, 0xfb17,
+ 0xfc8c, 0xfddb, 0xfe9d, 0xfed4, 0xfd35, 0xfbc5,
+ 0xfc45, 0xfc36, 0xfac7, 0xf9c7, 0xfa35, 0xfaf0,
+ 0xfa17, 0xf99b, 0xfb25, 0xfb26, 0xf9b2, 0xfac0,
+ 0xfc6c, 0xfbf6, 0xfbad, 0xfc90, 0xfcfb, 0xfd53,
+ 0xfe81, 0xff37, 0xfefd, 0xfefe, 0xfeb0, 0xfdee,
+ 0xfeb5, 0x005e, 0x007b, 0xff46, 0xfe05, 0xfd57,
+ 0xfd84, 0xfe91, 0x0012, 0x0095, 0xfffb, 0xffc1,
+ 0xff81, 0xff4b, 0x006e, 0x00e1, 0xfee9, 0xfcea,
+ 0xfc06, 0xfa94, 0xf875, 0xf7b3, 0xf84f, 0xf824,
+ 0xf84f, 0xfa03, 0xfaad, 0xfad8, 0xfcaa, 0xfe66,
+ 0xffd5, 0x0113, 0x0008, 0xfe60, 0xfe72, 0xff6d,
+ 0x011b, 0x02b5, 0x02ea, 0x0214, 0x0190, 0x02e1,
+ 0x0392, 0x013c, 0x0040, 0x013c, 0x005f, 0x0015,
+ 0x012f, 0x0114, 0x0100, 0x004b, 0xfecc, 0xff24,
+ 0xff5d, 0xfef4, 0xffe9, 0x0089, 0x0168, 0x0237,
+ 0x00a7, 0x0076, 0x0182, 0x0074, 0x017f, 0x037a,
+ 0x025f, 0x02a0, 0x02df, 0xffc3, 0xff02, 0x007c,
+ 0x0053, 0x0128, 0x0270, 0x0183, 0xfffb, 0xfed7,
+ 0xfdf8, 0xfd0f, 0xfc3c, 0xfcab, 0xfc97, 0xfac6,
+ 0xf9dc, 0xfa32, 0xfabd, 0xfb58, 0xfa28, 0xf79b,
+ 0xf6cf, 0xf7c1, 0xf8cc, 0xf99f, 0xfa58, 0xfb26,
+ 0xfc02, 0xfc45, 0xfb74, 0xfa8a, 0xfa35, 0xf98c,
+ 0xf953, 0xfab7, 0xfc36, 0xfd53, 0xfe68, 0xfea2,
+ 0xfe4b, 0xfd33, 0xfbcb, 0xfc1b, 0xfc52, 0xfb2f,
+ 0xfb3d, 0xfba9, 0xfb46, 0xfac9, 0xf974, 0xf99a,
+ 0xfc41, 0xfe02, 0xff72, 0xffde, 0xfd3c, 0xfc9c,
+ 0xfe5e, 0xfdef, 0xfd8f, 0xfd61, 0xfbee, 0xfc05,
+ 0xfba5, 0xfa48, 0xfc1a, 0xfdc6, 0xfcf7, 0xfd4b,
+ 0xfd7b, 0xfc77, 0xfc8d, 0xfd5b, 0xfe28, 0xfe4b,
+ 0xfd3c, 0xfbd7, 0xf9eb, 0xf95e, 0xfb1c, 0xfabe,
+ 0xf984, 0xfb4f, 0xfbf2, 0xfa8b, 0xfb4b, 0xfcac,
+ 0xfcf2, 0xfd0b, 0xfcb9, 0xfcf6, 0xfe07, 0xfefa,
+ 0x0081, 0x00e7, 0xfeb5, 0xfdbb, 0xfef9, 0xfeca,
+ 0xfd7f, 0xfd4b, 0xfcfd, 0xfc0f, 0xfbc5, 0xfb4f,
+ 0xfa6d, 0xfb2e, 0xfc50, 0xfb1c, 0xf99b, 0xf99a,
+ 0xf919, 0xf81c, 0xf863, 0xf930, 0xfa2a, 0xfc46,
+ 0xfdd8, 0xfd6d, 0xfd86, 0xff0f, 0xffb8, 0xffbc,
+ 0x0092, 0x013b, 0x00f4, 0x008e, 0x00b8, 0x00e1,
+ 0x007c, 0x0129, 0x02cf, 0x02fc, 0x0333, 0x04b2,
+ 0x04d3, 0x0468, 0x0498, 0x033c, 0x01ce, 0x0230,
+ 0x02c3, 0x0342, 0x0326, 0x0210, 0x01d2, 0x0196,
+ 0x00ea, 0x0260, 0x048d, 0x0498, 0x03b7, 0x036c,
+ 0x03b6, 0x03d9, 0x039b, 0x03d8, 0x040a, 0x03ec,
+ 0x047d, 0x04c6, 0x051c, 0x076f, 0x0956, 0x08b9,
+ 0x0862, 0x08e1, 0x0734, 0x0408, 0x0303, 0x0389,
+ 0x0348, 0x0404, 0x059a, 0x047b, 0x0200, 0x0152,
+ 0x017c, 0x012e, 0x0077, 0x006d, 0x0232, 0x0446,
+ 0x0524, 0x04d1, 0x03af, 0x0328, 0x02b9, 0x017d,
+ 0x01b9, 0x02a6, 0x0262, 0x034c, 0x0467, 0x0377,
+ 0x0308, 0x02e7, 0x0156, 0x0071, 0x00e1, 0x012f,
+ 0x0062, 0xff4b, 0x00ce, 0x034c, 0x02fb, 0x0215,
+ 0x0272, 0x0284, 0x022e, 0x0109, 0xfffe, 0x0082,
+ 0xfff1, 0xfe12, 0xfe49, 0xffc7, 0x00f0, 0x0255,
+ 0x0373, 0x03db, 0x033d, 0x0195, 0x0111, 0x0239,
+ 0x025c, 0x0127, 0x0132, 0x020d, 0x0188, 0x0180,
+ 0x02b6, 0x0208, 0x00cd, 0x00cf, 0xff40, 0xfdc8,
+ 0xfebe, 0xff2a, 0xff70, 0x005d, 0xffd2, 0x000a,
+ 0x01db, 0x0269, 0x02c9, 0x034a, 0x02e7, 0x030b,
+ 0x0250, 0x00bc, 0x01a9, 0x02bd, 0x0219, 0x0373,
+ 0x05aa, 0x0507, 0x039c, 0x03e6, 0x04ec, 0x05f2,
+ 0x06ad, 0x0616, 0x050a, 0x053d, 0x0524, 0x03d2,
+ 0x0379, 0x0464, 0x057e, 0x05ef, 0x0494, 0x0360,
+ 0x0405, 0x049f, 0x0501, 0x056d, 0x0572, 0x05fe,
+ 0x051d, 0x02be, 0x031e, 0x043e, 0x040c, 0x05d1,
+ 0x0727, 0x05e7, 0x057e, 0x0587, 0x0595, 0x066c,
+ 0x05f2, 0x05c5, 0x06a8, 0x04d8, 0x0211, 0x00f4,
+ 0x0022, 0x0043, 0x00e4, 0x0099, 0x004b, 0xff94,
+ 0xfe90, 0xfdda, 0xfd20, 0xfe81, 0x00e2, 0x0105,
+ 0x0180, 0x0250, 0x00f7, 0x00c5, 0x01fd, 0x01c3,
+ 0x0117, 0x0037, 0x0038, 0x0210, 0x02a1, 0x02b1,
+ 0x03bb, 0x0352, 0x0388, 0x04af, 0x0300, 0x016f,
+ 0x0185, 0x007b, 0x00f7, 0x033b, 0x03d1, 0x03cf,
+ 0x034f, 0x01fb, 0x0215, 0x0267, 0x0296, 0x0488,
+ 0x059a, 0x0505, 0x057c, 0x0519, 0x02f7, 0x023d,
+ 0x01f8, 0x0099, 0x0116, 0x0340, 0x03c0, 0x045d,
+ 0x070c, 0x08b1, 0x08c9, 0x094d, 0x096d, 0x097a,
+ 0x09b7, 0x07dd, 0x0567, 0x04bd, 0x040e, 0x0366,
+ 0x03f7, 0x03de, 0x02f4, 0x02f3, 0x0364, 0x0365,
+ 0x036e, 0x03ef, 0x043c, 0x03f0, 0x03c2, 0x037b,
+ 0x0302, 0x0312, 0x02d7, 0x0245, 0x0213, 0x00b9,
+ 0xff43, 0x008b, 0x02ab, 0x0391, 0x043e, 0x0479,
+ 0x0393, 0x0210, 0x00ee, 0x00aa, 0x0090, 0x013c,
+ 0x0255, 0x00d4, 0xfe6d, 0xfe5b, 0xfe16, 0xfcec,
+ 0xfcdf, 0xfcf2, 0xfd0e, 0xfd3d, 0xfc2f, 0xfb2c,
+ 0xfad5, 0xfae7, 0xfc73, 0xfd5a, 0xfc4b, 0xfc22,
+ 0xfc83, 0xfbff, 0xfbcc, 0xfb5c, 0xfa81, 0xfabd,
+ 0xfbd0, 0xfd40, 0xfeb0, 0xffb6, 0x00fd, 0x01d5,
+ 0x018f, 0x0174, 0x0122, 0x0000, 0xff8c, 0xffc1,
+ 0xff8b, 0xff7d, 0x007e, 0x0236, 0x03b0, 0x04d2,
+ 0x059b, 0x0558, 0x04a7, 0x0495, 0x0487, 0x03e2,
+ 0x031c, 0x0382, 0x0524, 0x0570, 0x0432, 0x03e2,
+ 0x03db, 0x031f, 0x0311, 0x039d, 0x03e1, 0x03a9,
+ 0x029a, 0x0104, 0xffcd, 0x0035, 0x01d4, 0x01cb,
+ 0x0105, 0x01ac, 0x0086, 0xfdac, 0xfd6c, 0xfdce,
+ 0xfd07, 0xfe34, 0x0035, 0x00c4, 0x01d5, 0x02fc,
+ 0x01cf, 0xffe0, 0xff6c, 0xff7c, 0xff7a, 0x0096,
+ 0x01a5, 0x010c, 0x00dd, 0x0202, 0x0261, 0x01be,
+ 0x00fe, 0x00a7, 0x0134, 0x016c, 0x00f3, 0x0140,
+ 0x0162, 0x0032, 0xfec8, 0xfd63, 0xfc2c, 0xfb93,
+ 0xfaca, 0xfaa2, 0xfc37, 0xfd6c, 0xfd33, 0xfd08,
+ 0xfc9e, 0xfb8e, 0xfba4, 0xfd1a, 0xfdf6, 0xfd87,
+ 0xfcb7, 0xfc5d, 0xfbfd, 0xfacd, 0xfa21, 0xfabe,
+ 0xfad8, 0xfac1, 0xfbe3, 0xfcfe, 0xfe0d, 0xff73,
+ 0xff9e, 0xffcd, 0x0132, 0x0195, 0x011f, 0x003b,
+ 0xfdd8, 0xfc4f, 0xfc51, 0xfbd4, 0xfc33, 0xfd3d,
+ 0xfd07, 0xfd3e, 0xfde2, 0xfdc6, 0xfe01, 0xfdd8,
+ 0xfde0, 0x003a, 0x0218, 0x01b3, 0x0182, 0x01d4,
+ 0x0288, 0x03df, 0x0477, 0x0460, 0x03e3, 0x02ae,
+ 0x023e, 0x0244, 0x011c, 0x000b, 0xffd0, 0xff90,
+ 0xffd7, 0x00ef, 0x0218, 0x02a4, 0x01db, 0x002a,
+ 0xff23, 0xff6f, 0x003c, 0x0071, 0xffe1, 0xfef2,
+ 0xfe49, 0xfeee, 0x00ad, 0x0206, 0x0249, 0x01bb,
+ 0x00c3, 0xff9e, 0xfe78, 0xfda3, 0xfcbe, 0xfba8,
+ 0xfafd, 0xfa43, 0xf983, 0xf96d, 0xf8f8, 0xf8c6,
+ 0xfa18, 0xfa37, 0xf8d3, 0xf8ae, 0xf83e, 0xf673,
+ 0xf52d, 0xf3ff, 0xf358, 0xf434, 0xf433, 0xf2e7,
+ 0xf247, 0xf242, 0xf2c2, 0xf363, 0xf326, 0xf336,
+ 0xf41c, 0xf4dc, 0xf5d7, 0xf6c5, 0xf6bc, 0xf6b2,
+ 0xf76a, 0xf84c, 0xf928, 0xfa2e, 0xfb43, 0xfc61,
+ 0xfdda, 0xff41, 0xff48, 0xfe42, 0xfddc, 0xfe3e,
+ 0xfee2, 0xff8e, 0xff8a, 0xfecc, 0xfe49, 0xfe15,
+ 0xfdab, 0xfd48, 0xfd32, 0xfce8, 0xfccf, 0xfe41,
+ 0x008a, 0x0218, 0x0387, 0x04ca, 0x03f3, 0x0169,
+ 0xff3e, 0xfd61, 0xfb78, 0xfae6, 0xfc2c, 0xfdc9,
+ 0xfed8, 0xff4b, 0xfe62, 0xfc86, 0xfbf3, 0xfd67,
+ 0xffc7, 0x01f3, 0x027a, 0x00e0, 0xff14, 0xfe72,
+ 0xfdf6, 0xfd20, 0xfd24, 0xfe0b, 0xfe1f, 0xfd39,
+ 0xfd0c, 0xfde8, 0xfed9, 0xffae, 0x007e, 0x0176,
+ 0x02e0, 0x03c1, 0x0313, 0x01c6, 0x00a1, 0xff70,
+ 0xfedc, 0xfed6, 0xfe49, 0xfdbc, 0xfd7e, 0xfcce,
+ 0xfca7, 0xfd80, 0xfe16, 0xfeb0, 0xff62, 0xff01,
+ 0xfe4d, 0xfddc, 0xfcea, 0xfc6a, 0xfcf5, 0xfd1a,
+ 0xfcae, 0xfcd6, 0xfe00, 0xffd1, 0x0195, 0x0323,
+ 0x046d, 0x04c1, 0x041a, 0x037d, 0x043c, 0x0686,
+ 0x080d, 0x079f, 0x0766, 0x0805, 0x07b8, 0x0663,
+ 0x054e, 0x051c, 0x05a8, 0x067f, 0x07a3, 0x08c7,
+ 0x0928, 0x091d, 0x0918, 0x08bb, 0x07f0, 0x0694,
+ 0x04c4, 0x03c3, 0x039d, 0x02dd, 0x0213, 0x0342,
+ 0x05e5, 0x07c8, 0x088b, 0x090c, 0x091c, 0x0896,
+ 0x086a, 0x08c3, 0x08ca, 0x08db, 0x0951, 0x08ab,
+ 0x06c2, 0x05cc, 0x05f0, 0x0618, 0x06f4, 0x0829,
+ 0x084e, 0x07d0, 0x06cd, 0x04b5, 0x02b9, 0x0237,
+ 0x02fa, 0x03a7, 0x0334, 0x029f, 0x02a1, 0x0244,
+ 0x01e3, 0x021f, 0x022e, 0x0246, 0x0282, 0x01d7,
+ 0x00b8, 0xfffe, 0xff36, 0xfe92, 0xfea0, 0xfea3,
+ 0xfe0c, 0xfdb0, 0xfd84, 0xfc79, 0xfb63, 0xfb1d,
+ 0xfa8c, 0xfa6c, 0xfbe0, 0xfcfc, 0xfcf8, 0xfc62,
+ 0xfa6c, 0xf836, 0xf769, 0xf6ea, 0xf67d, 0xf6d4,
+ 0xf6f6, 0xf64d, 0xf583, 0xf540, 0xf598, 0xf671,
+ 0xf7d2, 0xf831, 0xf6bd, 0xf61d, 0xf70f, 0xf783,
+ 0xf7c8, 0xf862, 0xf8b7, 0xf901, 0xf8e3, 0xf8b6,
+ 0xf944, 0xf933, 0xf8c4, 0xf952, 0xf9bb, 0xfa13,
+ 0xfb09, 0xfb8b, 0xfc3c, 0xfd83, 0xfe20, 0xfe5d,
+ 0xfde0, 0xfc44, 0xfba6, 0xfc1e, 0xfc03, 0xfc32,
+ 0xfdcf, 0x0044, 0x0218, 0x027c, 0x0291, 0x02d6,
+ 0x029c, 0x025a, 0x0294, 0x0323, 0x0349, 0x0205,
+ 0x0070, 0xffac, 0xfec8, 0xfe5a, 0xff12, 0xffbf,
+ 0x00a5, 0x01f8, 0x0251, 0x017e, 0xff72, 0xfca6,
+ 0xfb3e, 0xfb3a, 0xfb6d, 0xfc5b, 0xfd82, 0xfdd1,
+ 0xfe12, 0xfef1, 0x001d, 0x0128, 0x018f, 0x015b,
+ 0x0125, 0x0122, 0x0107, 0x00d1, 0x00c8, 0x00a2,
+ 0x004f, 0x002c, 0xffb4, 0xff4c, 0x0036, 0x00f1,
+ 0xfffc, 0xff29, 0xff4a, 0xfefd, 0xfe26, 0xfd9d,
+ 0xfd8f, 0xfd9c, 0xfdb4, 0xfe62, 0xff50, 0xffb5,
+ 0x0045, 0x0127, 0x012d, 0x00fe, 0x0194, 0x01b2,
+ 0x0160, 0x0250, 0x03c9, 0x0486, 0x04fd, 0x04d8,
+ 0x0429, 0x0493, 0x058a, 0x0584, 0x0519, 0x04a2,
+ 0x03bd, 0x0297, 0x01aa, 0x0229, 0x042d, 0x05ea,
+ 0x06d5, 0x071c, 0x06cc, 0x06b8, 0x0633, 0x04e7,
+ 0x04a9, 0x049d, 0x0318, 0x018f, 0x00c2, 0x00cc,
+ 0x0203, 0x02bd, 0x0260, 0x0173, 0xffd5, 0xffc2,
+ 0x0240, 0x04d7, 0x0708, 0x07f8, 0x05e9, 0x0370,
+ 0x0256, 0x01a4, 0x027a, 0x03da, 0x02f9, 0x0152,
+ 0x0062, 0xff6f, 0xfef8, 0xfedf, 0xfe5c, 0xfe60,
+ 0xff72, 0x0087, 0x00af, 0x003c, 0x0054, 0x0118,
+ 0x01f8, 0x0296, 0x0265, 0x01e4, 0x01c4, 0x011f,
+ 0x0011, 0xffad, 0xff6d, 0xff53, 0x000d, 0x00ca,
+ 0x00fb, 0x006c, 0xfe9c, 0xfd0f, 0xfd52, 0xfe25,
+ 0xfe94, 0xfee1, 0xfe80, 0xfd85, 0xfce9, 0xfc61,
+ 0xfb20, 0xf9db, 0xf9aa, 0xf9b5, 0xf904, 0xf8ea,
+ 0xf9fb, 0xfaef, 0xfc29, 0xfdf3, 0xfe8f, 0xfe34,
+ 0xfe21, 0xfda7, 0xfd3e, 0xfe48, 0xffe5, 0x00fe,
+ 0x01dd, 0x02c0, 0x0347, 0x0311, 0x0317, 0x0431,
+ 0x04fc, 0x047f, 0x0327, 0x0100, 0xfeed, 0xfdf9,
+ 0xfd99, 0xfd78, 0xfd7f, 0xfd70, 0xfe46, 0x004c,
+ 0x022c, 0x035d, 0x0437, 0x04b2, 0x0453, 0x0358,
+ 0x0324, 0x03a5, 0x03d8, 0x047a, 0x0570, 0x05bc,
+ 0x0625, 0x0614, 0x0459, 0x02ca, 0x0218, 0x0109,
+ 0x0088, 0x010e, 0x0176, 0x020c, 0x032a, 0x0424,
+ 0x04fd, 0x05a9, 0x052e, 0x0374, 0x01d8, 0x00ce,
+ 0xff93, 0xfe71, 0xfdbd, 0xfcc2, 0xfbdc, 0xfb69,
+ 0xfac0, 0xfa81, 0xfb66, 0xfc93, 0xfd98, 0xfe98,
+ 0xff7b, 0x0026, 0x003f, 0xffe7, 0xff80, 0xfea9,
+ 0xfd5e, 0xfc21, 0xfb50, 0xfbb6, 0xfd1d, 0xfde9,
+ 0xfd79, 0xfbf5, 0xf94f, 0xf6bd, 0xf646, 0xf800,
+ 0xfa32, 0xfc32, 0xfe9c, 0x0132, 0x0306, 0x035c,
+ 0x01de, 0xff74, 0xfdcc, 0xfdea, 0xff7e, 0x0112,
+ 0x0205, 0x0237, 0x00cb, 0xff3e, 0xff95, 0x0019,
+ 0x0056, 0x01db, 0x0379, 0x04ea, 0x06e1, 0x0774,
+ 0x069f, 0x05a6, 0x0448, 0x03fe, 0x04a3, 0x0441,
+ 0x04c1, 0x063c, 0x05b1, 0x042a, 0x0252, 0xfeca,
+ 0xfbba, 0xfaff, 0xfc2b, 0xff1b, 0x024a, 0x04c0,
+ 0x071e, 0x0894, 0x08f7, 0x08ca, 0x0714, 0x0501,
+ 0x04b9, 0x0530, 0x0591, 0x067b, 0x071c, 0x067b,
+ 0x04c4, 0x0271, 0x0081, 0x0007, 0x00f6, 0x0256,
+ 0x037a, 0x045f, 0x04e4, 0x04b1, 0x042c, 0x0420,
+ 0x0423, 0x038b, 0x038a, 0x04c8, 0x0573, 0x0519,
+ 0x051e, 0x0542, 0x04a7, 0x0329, 0x00f7, 0xff49,
+ 0xfed1, 0xff3e, 0x00ee, 0x030c, 0x03e0, 0x03f3,
+ 0x040a, 0x03b0, 0x0313, 0x028d, 0x0200, 0x0131,
+ 0x0050, 0x005f, 0x0170, 0x02c5, 0x0448, 0x04d5,
+ 0x03ae, 0x0245, 0x0105, 0xffea, 0xffdb, 0xffdc,
+ 0xfec8, 0xfd7e, 0xfcc9, 0xfda6, 0x004e, 0x0303,
+ 0x04da, 0x057f, 0x0461, 0x0302, 0x02ee, 0x039f,
+ 0x045e, 0x04b1, 0x0479, 0x03d0, 0x024a, 0x00a3,
+ 0x0020, 0x006a, 0x00d1, 0x00b9, 0xff80, 0xfdf8,
+ 0xfd1b, 0xfcf2, 0xfd8f, 0xfe1e, 0xfd5f, 0xfbc0,
+ 0xfa5a, 0xf95d, 0xf8a0, 0xf7eb, 0xf6b0, 0xf4e5,
+ 0xf380, 0xf258, 0xf048, 0xeda0, 0xea3b, 0xe40c,
+ 0xda40, 0xce99, 0xc51f, 0xc168, 0xc1d1, 0xc304,
+ 0xc553, 0xc969, 0xceb1, 0xd459, 0xd8e8, 0xdd8a,
+ 0xe488, 0xeb95, 0xef67, 0xef18, 0xea68, 0xe415,
+ 0xe04b, 0xdfa0, 0xe18a, 0xe5cc, 0xea70, 0xee2b,
+ 0xf18c, 0xf495, 0xf6a6, 0xf7cb, 0xf8a8, 0xf978,
+ 0xfa33, 0xfb7e, 0xfdce, 0x00cb, 0x0401, 0x06af,
+ 0x0851, 0x08e2, 0x0829, 0x06e5, 0x068d, 0x078f,
+ 0x0a53, 0x0e86, 0x1211, 0x1465, 0x1617, 0x163e,
+ 0x153d, 0x1511, 0x1610, 0x185e, 0x1c58, 0x206a,
+ 0x234a, 0x2566, 0x2645, 0x2540, 0x235e, 0x2184,
+ 0x200b, 0x1f8d, 0x1fce, 0x2053, 0x2182, 0x2305,
+ 0x2410, 0x247f, 0x238c, 0x20e4, 0x1e13, 0x1c23,
+ 0x1b70, 0x1c86, 0x1e47, 0x1f37, 0x1f76, 0x1ea9,
+ 0x1c6e, 0x1a5e, 0x19d4, 0x1a25, 0x1a16, 0x1969,
+ 0x1879, 0x1675, 0x126b, 0x0dbc, 0x0a51, 0x08a3,
+ 0x08d0, 0x0a8c, 0x0ce7, 0x0f05, 0x101a, 0x1025,
+ 0x0fdd, 0x0f23, 0x0e06, 0x0d30, 0x0c4a, 0x0b81,
+ 0x0c17, 0x0d98, 0x0e88, 0x0e4b, 0x0cc7, 0x0ab3,
+ 0x08e4, 0x0755, 0x069d, 0x06fa, 0x0757, 0x07d7,
+ 0x08b5, 0x08af, 0x07e7, 0x071f, 0x05ca, 0x0467,
+ 0x0395, 0x023a, 0x004e, 0xfed0, 0xfda7, 0xfccb,
+ 0xfc67, 0xfc0d, 0xfb75, 0xfac6, 0xfa82, 0xfabd,
+ 0xfad5, 0xfac7, 0xfa9c, 0xf9df, 0xf933, 0xf8bc,
+ 0xf748, 0xf581, 0xf4ab, 0xf405, 0xf354, 0xf35a,
+ 0xf3ef, 0xf4bc, 0xf55e, 0xf570, 0xf5b4, 0xf6c8,
+ 0xf7eb, 0xf85f, 0xf843, 0xf83f, 0xf8a0, 0xf8d5,
+ 0xf8a0, 0xf888, 0xf8c7, 0xf92f, 0xf993, 0xf9c2,
+ 0xf948, 0xf799, 0xf52d, 0xf337, 0xf1c0, 0xf02d,
+ 0xeea3, 0xed5d, 0xec3e, 0xeb27, 0xea3a, 0xea24,
+ 0xeb04, 0xec4b, 0xee0d, 0xefc7, 0xf009, 0xef1b,
+ 0xee40, 0xedef, 0xef18, 0xf212, 0xf53a, 0xf7ca,
+ 0xfa4a, 0xfc44, 0xfd09, 0xfcee, 0xfcc0, 0xfd29,
+ 0xfdd4, 0xfe18, 0xfe95, 0xffa9, 0x0017, 0xff7f,
+ 0xff0e, 0xff17, 0xff45, 0xfff7, 0x00fc, 0x01d8,
+ 0x0339, 0x0508, 0x05b4, 0x0513, 0x0420, 0x0335,
+ 0x02a3, 0x024e, 0x01e8, 0x021f, 0x02c4, 0x0293,
+ 0x01f5, 0x0201, 0x0281, 0x02d7, 0x02c0, 0x02b3,
+ 0x036b, 0x04a0, 0x05d0, 0x06d9, 0x079d, 0x087e,
+ 0x0972, 0x09b4, 0x09df, 0x0ad2, 0x0bd5, 0x0c5b,
+ 0x0c99, 0x0ca7, 0x0cc4, 0x0cd6, 0x0cb4, 0x0ca2,
+ 0x0c34, 0x0b4f, 0x0b05, 0x0b19, 0x0a82, 0x09f3,
+ 0x0a09, 0x09cf, 0x08da, 0x07d1, 0x0711, 0x06c3,
+ 0x0731, 0x0817, 0x08e5, 0x097e, 0x09a1, 0x0922,
+ 0x08ff, 0x0a18, 0x0bae, 0x0c95, 0x0c53, 0x0b48,
+ 0x0a4d, 0x0960, 0x0814, 0x06b4, 0x0562, 0x0432,
+ 0x03a6, 0x0360, 0x02d5, 0x0276, 0x0225, 0x01b2,
+ 0x01ca, 0x023c, 0x0245, 0x01d8, 0x0112, 0x00a4,
+ 0x0118, 0x0196, 0x01ff, 0x02d9, 0x0384, 0x040e,
+ 0x04dc, 0x0486, 0x02b2, 0x0118, 0x001e, 0xff43,
+ 0xff05, 0xff80, 0xff9e, 0xfee5, 0xfe2f, 0xfe40,
+ 0xff01, 0x002d, 0x0139, 0x0176, 0x010a, 0x0029,
+ 0xfed5, 0xfdb6, 0xfd27, 0xfcff, 0xfd72, 0xfdfb,
+ 0xfda7, 0xfcb2, 0xfb8c, 0xfa3e, 0xf910, 0xf80c,
+ 0xf714, 0xf647, 0xf584, 0xf4a4, 0xf41a, 0xf489,
+ 0xf5c8, 0xf703, 0xf7d6, 0xf82f, 0xf805, 0xf7fc,
+ 0xf860, 0xf880, 0xf804, 0xf6fa, 0xf5cb, 0xf565,
+ 0xf566, 0xf48a, 0xf2eb, 0xf143, 0xf02d, 0xf00e,
+ 0xf026, 0xf052, 0xf192, 0xf32c, 0xf3a6, 0xf320,
+ 0xf226, 0xf149, 0xf137, 0xf1c6, 0xf29d, 0xf39a,
+ 0xf410, 0xf3b9, 0xf33b, 0xf319, 0xf394, 0xf482,
+ 0xf50f, 0xf509, 0xf50d, 0xf51f, 0xf51e, 0xf5ad,
+ 0xf6d0, 0xf77e, 0xf71d, 0xf5b3, 0xf3b9, 0xf276,
+ 0xf2c9, 0xf43b, 0xf60a, 0xf7a3, 0xf893, 0xf8d6,
+ 0xf8a3, 0xf854, 0xf86f, 0xf902, 0xf9b6, 0xfa72,
+ 0xfb1e, 0xfb6f, 0xfb78, 0xfb96, 0xfbae, 0xfba6,
+ 0xfbd2, 0xfbf6, 0xfb7d, 0xfac1, 0xfa42, 0xfa05,
+ 0xfa11, 0xfa2d, 0xfa31, 0xfa77, 0xfae2, 0xfade,
+ 0xfa57, 0xf997, 0xf916, 0xf8fd, 0xf90e, 0xf94a,
+ 0xf98b, 0xf9b5, 0xfa31, 0xfadb, 0xfb98, 0xfd22,
+ 0xfed4, 0xff1a, 0xfe46, 0xfd8e, 0xfd5d, 0xfdbc,
+ 0xfe93, 0xffc3, 0x00bd, 0x00a0, 0xff98, 0xfeab,
+ 0xfe69, 0xfea0, 0xfeb3, 0xfe91, 0xfecd, 0xff60,
+ 0xffec, 0x0050, 0x00a9, 0x0177, 0x02aa, 0x038a,
+ 0x0407, 0x043c, 0x0489, 0x05c6, 0x0722, 0x0744,
+ 0x069e, 0x059b, 0x049e, 0x04ec, 0x065a, 0x07c4,
+ 0x08e1, 0x093e, 0x0885, 0x0712, 0x051d, 0x0368,
+ 0x02e2, 0x033a, 0x03c8, 0x0447, 0x04e9, 0x063f,
+ 0x07b3, 0x07ca, 0x063d, 0x0406, 0x02ae, 0x031d,
+ 0x0440, 0x04f6, 0x05b3, 0x0676, 0x064f, 0x0530,
+ 0x0406, 0x0414, 0x0679, 0x0adf, 0x0f70, 0x129a,
+ 0x1395, 0x121b, 0x0f11, 0x0be8, 0x091b, 0x06db,
+ 0x05bd, 0x05c2, 0x0657, 0x06fc, 0x0735, 0x06de,
+ 0x060c, 0x04c4, 0x0378, 0x02c6, 0x02e2, 0x0385,
+ 0x03c4, 0x0311, 0x020c, 0x0135, 0x00a9, 0x00ab,
+ 0x00c6, 0x004b, 0xffbe, 0xff60, 0xfe71, 0xfd2e,
+ 0xfca8, 0xfc94, 0xfbfc, 0xfaf3, 0xf9d2, 0xf8a4,
+ 0xf770, 0xf5d9, 0xf3b5, 0xf181, 0xef2d, 0xecbd,
+ 0xeb03, 0xe9ff, 0xe97c, 0xea0f, 0xeb4c, 0xec28,
+ 0xec4b, 0xeb8a, 0xeade, 0xebe1, 0xee25, 0xf055,
+ 0xf219, 0xf34f, 0xf414, 0xf4ae, 0xf545, 0xf6b0,
+ 0xf916, 0xfaea, 0xfb63, 0xfb61, 0xfb97, 0xfbd9,
+ 0xfbf4, 0xfc49, 0xfcf3, 0xfd93, 0xfe6a, 0xffab,
+ 0x009f, 0x00f7, 0x00f9, 0x00ee, 0x0126, 0x016c,
+ 0x01a8, 0x024f, 0x031e, 0x03d4, 0x0501, 0x067c,
+ 0x07cd, 0x091d, 0x0a70, 0x0bda, 0x0d39, 0x0dde,
+ 0x0e26, 0x0e76, 0x0ddb, 0x0c5b, 0x0b18, 0x0a27,
+ 0x0940, 0x0872, 0x07c7, 0x07b1, 0x0840, 0x089d,
+ 0x0830, 0x06d4, 0x04d8, 0x0341, 0x02bd, 0x0301,
+ 0x0362, 0x037f, 0x03b4, 0x045c, 0x04c0, 0x0423,
+ 0x02ee, 0x01e8, 0x016c, 0x015c, 0x014e, 0x0133,
+ 0x0156, 0x0158, 0x00ba, 0x0009, 0xfffe, 0x003c,
+ 0x000e, 0xff53, 0xfe49, 0xfd3c, 0xfca2, 0xfcd8,
+ 0xfd5e, 0xfd1e, 0xfc00, 0xfaf2, 0xfa7e, 0xfab4,
+ 0xfb6d, 0xfbe7, 0xfba1, 0xfb30, 0xfb35, 0xfbb6,
+ 0xfcdc, 0xfeb2, 0x00c4, 0x0312, 0x05a8, 0x076c,
+ 0x07b9, 0x07ba, 0x083b, 0x08d1, 0x0986, 0x0a91,
+ 0x0ba0, 0x0c8c, 0x0d2a, 0x0d35, 0x0d22, 0x0d92,
+ 0x0e4c, 0x0eae, 0x0e6c, 0x0dc5, 0x0cff, 0x0c11,
+ 0x0ae7, 0x0979, 0x082e, 0x07e3, 0x084d, 0x0818,
+ 0x0759, 0x06fc, 0x0694, 0x0594, 0x04bd, 0x0497,
+ 0x0480, 0x0405, 0x0358, 0x0280, 0x01a2, 0x0118,
+ 0x0062, 0xff29, 0xfe2d, 0xfd68, 0xfbf1, 0xfa07,
+ 0xf84d, 0xf6cc, 0xf5c9, 0xf565, 0xf582, 0xf63f,
+ 0xf713, 0xf737, 0xf727, 0xf7ad, 0xf890, 0xf945,
+ 0xf97d, 0xf957, 0xf962, 0xf9d0, 0xfa29, 0xfa68,
+ 0xfb61, 0xfd4f, 0xff3d, 0x006e, 0x0114, 0x018e,
+ 0x01e6, 0x01a0, 0x003c, 0xfe41, 0xfcbf, 0xfbfc,
+ 0xfbba, 0xfc0b, 0xfcec, 0xfde3, 0xfebb, 0xffb4,
+ 0x00c6, 0x01ad, 0x0248, 0x025c, 0x0205, 0x0202,
+ 0x02a7, 0x0391, 0x0453, 0x04c7, 0x0515, 0x0538,
+ 0x04fe, 0x04e5, 0x0551, 0x05af, 0x0588, 0x04dc,
+ 0x03ef, 0x0378, 0x03a8, 0x040d, 0x04b2, 0x05a7,
+ 0x06b7, 0x07c9, 0x0876, 0x0880, 0x088f, 0x0908,
+ 0x0996, 0x09e7, 0x09fd, 0x0a15, 0x0a22, 0x09a8,
+ 0x08be, 0x0814, 0x07c6, 0x073e, 0x0634, 0x0532,
+ 0x04df, 0x0533, 0x059e, 0x05d0, 0x0622, 0x06f6,
+ 0x07f2, 0x088e, 0x087f, 0x0782, 0x05d4, 0x03f7,
+ 0x021b, 0x00f8, 0x0122, 0x01a1, 0x0173, 0x00e3,
+ 0x0083, 0x0092, 0x00dd, 0x00f7, 0x00d7, 0x0092,
+ 0x003e, 0x0001, 0xffa5, 0xff2d, 0xff29, 0xff99,
+ 0xfffd, 0x0014, 0xff95, 0xfe8f, 0xfdae, 0xfd4d,
+ 0xfd55, 0xfdca, 0xfe77, 0xfef3, 0xff26, 0xff55,
+ 0xffcd, 0x00a6, 0x0159, 0x00d5, 0xff1d, 0xfd84,
+ 0xfca2, 0xfc2f, 0xfc61, 0xfd16, 0xfd6e, 0xfd4d,
+ 0xfd13, 0xfca1, 0xfc0d, 0xfbed, 0xfc7e, 0xfd55,
+ 0xfdd9, 0xfdfd, 0xfe04, 0xfe0f, 0xfe91, 0x0005,
+ 0x01fd, 0x03d8, 0x0557, 0x060c, 0x05c4, 0x04bd,
+ 0x0362, 0x02bf, 0x0351, 0x03bd, 0x0360, 0x035e,
+ 0x03ef, 0x046f, 0x04f1, 0x054d, 0x0501, 0x043e,
+ 0x036c, 0x02d2, 0x02b6, 0x02b5, 0x01f9, 0x008a,
+ 0xffa3, 0x003d, 0x01de, 0x037a, 0x049f, 0x050f,
+ 0x04c9, 0x0458, 0x03fd, 0x0395, 0x0355, 0x0387,
+ 0x03d6, 0x0394, 0x02c8, 0x0217, 0x01a1, 0x013b,
+ 0x00e3, 0x0051, 0xffab, 0xff95, 0xffc1, 0xffc8,
+ 0x0039, 0x00e9, 0x0113, 0x00eb, 0x00d2, 0x00af,
+ 0x0090, 0x00b2, 0x015d, 0x025d, 0x0313, 0x03a8,
+ 0x048a, 0x0546, 0x05b0, 0x0627, 0x0676, 0x0655,
+ 0x0645, 0x06aa, 0x070f, 0x06d8, 0x063a, 0x05bf,
+ 0x0585, 0x056e, 0x0536, 0x04cc, 0x04a3, 0x048f,
+ 0x03f2, 0x0358, 0x0334, 0x02db, 0x0224, 0x012e,
+ 0xffcc, 0xfe94, 0xfe09, 0xfdde, 0xfdfb, 0xfe1a,
+ 0xfde1, 0xfde1, 0xfe42, 0xfe54, 0xfddf, 0xfcf6,
+ 0xfc09, 0xfbde, 0xfc1e, 0xfc10, 0xfbdb, 0xfb83,
+ 0xfb16, 0xfb49, 0xfc19, 0xfcd9, 0xfd60, 0xfdab,
+ 0xfda0, 0xfd82, 0xfdbe, 0xfe63, 0xff00, 0xff3b,
+ 0xff12, 0xfe8e, 0xfe0b, 0xfdf4, 0xfdc7, 0xfd0d,
+ 0xfc55, 0xfc2c, 0xfc8b, 0xfd47, 0xfe53, 0xff9b,
+ 0x008d, 0x00a5, 0x0059, 0x005b, 0x00cb, 0x018c,
+ 0x0233, 0x023f, 0x0181, 0xffef, 0xfe38, 0xfd66,
+ 0xfd65, 0xfdd2, 0xfeab, 0xff54, 0xff4e, 0xfef3,
+ 0xfe6c, 0xfdcf, 0xfd7c, 0xfda1, 0xfe59, 0xff3c,
+ 0xff5f, 0xfeda, 0xfe80, 0xfe5f, 0xfe36, 0xfdee,
+ 0xfd83, 0xfd73, 0xfe12, 0xfeca, 0xff10, 0xfef6,
+ 0xfeb9, 0xfea3, 0xfee8, 0xff4b, 0xff3b, 0xfe69,
+ 0xfd26, 0xfbfd, 0xfb0b, 0xfa3f, 0xf9b5, 0xf96c,
+ 0xf8fe, 0xf844, 0xf7e1, 0xf85d, 0xf920, 0xf967,
+ 0xf93e, 0xf8fa, 0xf8e1, 0xf93c, 0xf9f8, 0xfad5,
+ 0xfb93, 0xfbe9, 0xfc28, 0xfcd1, 0xfd85, 0xfdf8,
+ 0xfeb9, 0xfffa, 0x015d, 0x02c3, 0x03f2, 0x045c,
+ 0x03f1, 0x034d, 0x02e3, 0x02c0, 0x02fc, 0x039a,
+ 0x042d, 0x0470, 0x04ad, 0x0523, 0x0598, 0x05b4,
+ 0x05b1, 0x0612, 0x06dc, 0x07f2, 0x093a, 0x0a41,
+ 0x0ac6, 0x0add, 0x0a51, 0x0937, 0x082a, 0x078a,
+ 0x078a, 0x0808, 0x0848, 0x081b, 0x0821, 0x086d,
+ 0x0851, 0x0780, 0x0673, 0x058a, 0x047a, 0x0318,
+ 0x01fd, 0x01c2, 0x022b, 0x0287, 0x0291, 0x0257,
+ 0x01c8, 0x0130, 0x0110, 0x0150, 0x01b8, 0x023c,
+ 0x0249, 0x018c, 0x008e, 0xffa7, 0xfebc, 0xfdee,
+ 0xfd6f, 0xfd5c, 0xfda7, 0xfde0, 0xfdae, 0xfd6a,
+ 0xfd97, 0xfe39, 0xfee6, 0xff2e, 0xfedd, 0xfdec,
+ 0xfca0, 0xfba7, 0xfb4f, 0xfaf1, 0xfa03, 0xf8f3,
+ 0xf84a, 0xf7fe, 0xf7b3, 0xf743, 0xf716, 0xf766,
+ 0xf795, 0xf73e, 0xf6c2, 0xf65b, 0xf614, 0xf61f,
+ 0xf64e, 0xf62a, 0xf5ec, 0xf620, 0xf694, 0xf6d6,
+ 0xf701, 0xf73b, 0xf789, 0xf7dd, 0xf7c8, 0xf74b,
+ 0xf70f, 0xf711, 0xf6ff, 0xf6f4, 0xf6db, 0xf6fb,
+ 0xf802, 0xf970, 0xfa7d, 0xfb9a, 0xfcee, 0xfdb9,
+ 0xfdd4, 0xfdba, 0xfdbf, 0xfe28, 0xff14, 0x0010,
+ 0x0079, 0x0007, 0xfed2, 0xfd64, 0xfcaa, 0xfcea,
+ 0xfd75, 0xfdae, 0xfdd3, 0xfe63, 0xff16, 0xff6d,
+ 0xffba, 0x000e, 0xffb5, 0xfe84, 0xfd19, 0xfc1f,
+ 0xfc17, 0xfcd9, 0xfdbd, 0xfe52, 0xfe5b, 0xfdf6,
+ 0xfd71, 0xfcc8, 0xfc47, 0xfc85, 0xfd30, 0xfd6a,
+ 0xfcf9, 0xfc40, 0xfbb1, 0xfb96, 0xfbf4, 0xfc56,
+ 0xfc3a, 0xfbd7, 0xfbb6, 0xfbe4, 0xfc1e, 0xfc1f,
+ 0xfbf7, 0xfc01, 0xfc0b, 0xfbb3, 0xfb4e, 0xfb46,
+ 0xfb6e, 0xfb63, 0xfb2f, 0xfb3c, 0xfb64, 0xfb0e,
+ 0xfa72, 0xfa2c, 0xfa4f, 0xfabb, 0xfb2c, 0xfb79,
+ 0xfbe4, 0xfc3e, 0xfc2c, 0xfc4b, 0xfd23, 0xfe05,
+ 0xfe40, 0xfdd4, 0xfd36, 0xfd27, 0xfdca, 0xfe8a,
+ 0xff88, 0x0100, 0x0234, 0x0302, 0x0418, 0x054a,
+ 0x0636, 0x06e4, 0x0716, 0x06b2, 0x060a, 0x0553,
+ 0x04d3, 0x04e8, 0x05b7, 0x06d5, 0x0786, 0x07ec,
+ 0x08a6, 0x097c, 0x0a22, 0x0a6a, 0x09f9, 0x0983,
+ 0x09dd, 0x0a4d, 0x0a34, 0x09ef, 0x09ba, 0x09ad,
+ 0x09c2, 0x09c4, 0x09b2, 0x0992, 0x0947, 0x08a9,
+ 0x07c9, 0x0741, 0x073b, 0x073b, 0x0720, 0x06f0,
+ 0x06ac, 0x068a, 0x062c, 0x0534, 0x041c, 0x0331,
+ 0x0287, 0x025f, 0x029e, 0x032c, 0x03cd, 0x03a7,
+ 0x02b2, 0x01ee, 0x01c9, 0x0205, 0x024c, 0x027b,
+ 0x02c1, 0x0311, 0x034d, 0x03da, 0x04b8, 0x055d,
+ 0x05bb, 0x05ca, 0x0540, 0x0456, 0x0333, 0x01b8,
+ 0x0074, 0xffcb, 0xff3d, 0xfed0, 0xfee6, 0xff38,
+ 0xff91, 0xffbd, 0xff2f, 0xfe26, 0xfd4e, 0xfc8e,
+ 0xfbc9, 0xfb48, 0xfb1a, 0xfae0, 0xfa1f, 0xf8ff,
+ 0xf82a, 0xf7e9, 0xf827, 0xf8a5, 0xf90b, 0xf932,
+ 0xf8d3, 0xf7f7, 0xf798, 0xf822, 0xf8bf, 0xf8f2,
+ 0xf927, 0xf9ce, 0xfac1, 0xfb88, 0xfc1e, 0xfca3,
+ 0xfd0d, 0xfd7f, 0xfe09, 0xfe9a, 0xff4d, 0xffe0,
+ 0x001a, 0x006d, 0x00fd, 0x015c, 0x0158, 0x0120,
+ 0x0116, 0x0157, 0x01d4, 0x02c0, 0x03de, 0x0487,
+ 0x04a3, 0x044b, 0x03a7, 0x037f, 0x0445, 0x054d,
+ 0x05dc, 0x05eb, 0x05c3, 0x05b7, 0x0608, 0x0662,
+ 0x0615, 0x0549, 0x04c2, 0x0490, 0x0471, 0x044b,
+ 0x03c8, 0x02f4, 0x027b, 0x0272, 0x0240, 0x01df,
+ 0x01de, 0x0236, 0x023d, 0x01b9, 0x010d, 0x007b,
+ 0x000b, 0xffd4, 0xffdb, 0xfff7, 0x0008, 0x0002,
+ 0xffab, 0xfeef, 0xfe1e, 0xfd33, 0xfc0f, 0xfb3b,
+ 0xfb32, 0xfbce, 0xfc84, 0xfc8e, 0xfbe8, 0xfb85,
+ 0xfbae, 0xfbfd, 0xfc64, 0xfc79, 0xfbb9, 0xfaf6,
+ 0xfb68, 0xfca5, 0xfd5d, 0xfd58, 0xfd21, 0xfcfc,
+ 0xfd21, 0xfdbb, 0xfe8d, 0xff53, 0xfffa, 0x0079,
+ 0x0105, 0x01d6, 0x02e6, 0x03d1, 0x0419, 0x03ed,
+ 0x03e8, 0x03fa, 0x03e4, 0x03d3, 0x03cd, 0x03ec,
+ 0x0477, 0x0536, 0x05d6, 0x065b, 0x06b2, 0x06ce,
+ 0x06d0, 0x06a3, 0x0646, 0x05f6, 0x05ac, 0x0562,
+ 0x0561, 0x05ad, 0x060b, 0x066b, 0x069f, 0x0693,
+ 0x0682, 0x0679, 0x0675, 0x0674, 0x0625, 0x0598,
+ 0x0527, 0x048f, 0x03d0, 0x0388, 0x03bc, 0x03fc,
+ 0x0443, 0x049d, 0x04d0, 0x04a9, 0x046f, 0x0472,
+ 0x0457, 0x03e3, 0x036f, 0x02f9, 0x027f, 0x0264,
+ 0x0286, 0x029c, 0x02d4, 0x0306, 0x031a, 0x039d,
+ 0x04b5, 0x05a7, 0x05ae, 0x04eb, 0x0443, 0x0412,
+ 0x03e5, 0x0385, 0x02e8, 0x01ff, 0x0121, 0x007e,
+ 0x0009, 0xfff2, 0x0000, 0xffaf, 0xff27, 0xfecf,
+ 0xfead, 0xfead, 0xfea8, 0xfe85, 0xfe58, 0xfe3a,
+ 0xfe2e, 0xfe02, 0xfd91, 0xfd42, 0xfd3d, 0xfd1e,
+ 0xfcea, 0xfccd, 0xfc9e, 0xfc78, 0xfc7a, 0xfc80,
+ 0xfc9f, 0xfcd8, 0xfcdc, 0xfcb0, 0xfcb7, 0xfd43,
+ 0xfe55, 0xff96, 0x009e, 0x0133, 0x016a, 0x0199,
+ 0x01d5, 0x01f2, 0x01f9, 0x0220, 0x028b, 0x0301,
+ 0x0308, 0x02c5, 0x02b0, 0x02a3, 0x0276, 0x025e,
+ 0x0260, 0x0267, 0x0258, 0x0226, 0x023b, 0x02a3,
+ 0x02aa, 0x026e, 0x02c4, 0x0387, 0x0412, 0x0454,
+ 0x0442, 0x03ce, 0x0355, 0x0306, 0x02e6, 0x0358,
+ 0x046b, 0x056a, 0x05c1, 0x0577, 0x04f6, 0x049b,
+ 0x0461, 0x0437, 0x042a, 0x03fe, 0x036b, 0x02a7,
+ 0x0206, 0x018a, 0x0124, 0x00e3, 0x00f5, 0x0191,
+ 0x0277, 0x02ff, 0x02d9, 0x0226, 0x0153, 0x00ef,
+ 0x00d4, 0x0051, 0xffbd, 0xffdc, 0x0076, 0x0102,
+ 0x011a, 0x007a, 0xff87, 0xfebf, 0xfe14, 0xfd6f,
+ 0xfcbc, 0xfc03, 0xfba1, 0xfb9e, 0xfbfd, 0xfd15,
+ 0xfead, 0xfffb, 0x008e, 0x0089, 0x005c, 0x0027,
+ 0xffa9, 0xfedf, 0xfe07, 0xfd81, 0xfd81, 0xfdb7,
+ 0xfe07, 0xfe97, 0xff07, 0xff4c, 0xffa0, 0xffc4,
+ 0x000c, 0x00ef, 0x0189, 0x015d, 0x0160, 0x0219,
+ 0x031a, 0x03d9, 0x040c, 0x0419, 0x04b2, 0x05d7,
+ 0x06d2, 0x0703, 0x0686, 0x060b, 0x05d7, 0x05df,
+ 0x065c, 0x070f, 0x0736, 0x06e8, 0x06cf, 0x06b7,
+ 0x0623, 0x0568, 0x0510, 0x0519, 0x054f, 0x05a1,
+ 0x05ca, 0x05a8, 0x05b5, 0x061e, 0x065f, 0x0663,
+ 0x067c, 0x068a, 0x0662, 0x05ea, 0x04ed, 0x03a4,
+ 0x02ae, 0x025a, 0x025e, 0x0241, 0x0228, 0x024b,
+ 0x026e, 0x02b8, 0x034f, 0x03b0, 0x03bb, 0x038e,
+ 0x02f7, 0x0261, 0x0248, 0x0239, 0x01f0, 0x01a6,
+ 0x0149, 0x00b7, 0x001d, 0xffb3, 0xff55, 0xfebf,
+ 0xfdfe, 0xfd25, 0xfc46, 0xfbda, 0xfbf6, 0xfbe6,
+ 0xfb4c, 0xfa71, 0xf996, 0xf8db, 0xf85b, 0xf80a,
+ 0xf7df, 0xf820, 0xf8ba, 0xf8f7, 0xf8d2, 0xf8e0,
+ 0xf8e7, 0xf88e, 0xf816, 0xf7a5, 0xf771, 0xf791,
+ 0xf77d, 0xf6ef, 0xf652, 0xf654, 0xf73e, 0xf857,
+ 0xf8dd, 0xf8fa, 0xf90b, 0xf93a, 0xf94c, 0xf8c4,
+ 0xf82b, 0xf844, 0xf87c, 0xf85f, 0xf876, 0xf90f,
+ 0xfa0d, 0xfb17, 0xfb8c, 0xfb71, 0xfba9, 0xfcdc,
+ 0xfe9d, 0xfff3, 0x0094, 0x00c9, 0x0099, 0x001f,
+ 0xffbe, 0xff8d, 0xffb1, 0x007d, 0x0194, 0x0237,
+ 0x02a1, 0x0350, 0x03e1, 0x041d, 0x0478, 0x04e4,
+ 0x04f5, 0x04ba, 0x043b, 0x034b, 0x0250, 0x0224,
+ 0x02d4, 0x0384, 0x03cf, 0x03cd, 0x0356, 0x02d4,
+ 0x02e7, 0x0321, 0x030e, 0x02fc, 0x02f2, 0x02c5,
+ 0x028c, 0x0215, 0x012e, 0x0050, 0xfffa, 0xffea,
+ 0xffb3, 0xff5e, 0xff13, 0xfebb, 0xfe5f, 0xfe51,
+ 0xfebc, 0xff46, 0xff54, 0xfee1, 0xfe7a, 0xfe77,
+ 0xfe8f, 0xfe22, 0xfd26, 0xfc4f, 0xfc0b, 0xfc69,
+ 0xfd3a, 0xfdca, 0xfdd7, 0xfded, 0xfe5a, 0xff05,
+ 0xff5e, 0xfed7, 0xfdfa, 0xfd73, 0xfd4d, 0xfdd3,
+ 0xfee8, 0xffab, 0xffde, 0xfff5, 0x0057, 0x011f,
+ 0x0208, 0x02eb, 0x03d7, 0x04a1, 0x0514, 0x0501,
+ 0x0490, 0x044c, 0x0419, 0x038e, 0x02ee, 0x0292,
+ 0x02a4, 0x0342, 0x0404, 0x048d, 0x04dc, 0x04ce,
+ 0x046d, 0x03ec, 0x0350, 0x02e9, 0x0300, 0x0332,
+ 0x02fe, 0x024a, 0x0163, 0x00c4, 0x00aa, 0x00f2,
+ 0x0140, 0x0123, 0x0082, 0xffc2, 0xff4d, 0xff2a,
+ 0xff3d, 0xff90, 0xfffb, 0x003a, 0x0063, 0x0080,
+ 0x0062, 0x0007, 0xffa2, 0xff9a, 0x0049, 0x016b,
+ 0x0278, 0x033c, 0x03b8, 0x0410, 0x046f, 0x04b5,
+ 0x048a, 0x03f1, 0x037e, 0x0384, 0x03c6, 0x0416,
+ 0x0443, 0x0406, 0x03b5, 0x03c8, 0x0404, 0x0401,
+ 0x0381, 0x0273, 0x011e, 0x0012, 0xffe0, 0x0078,
+ 0x00fd, 0x00dc, 0x005e, 0xffe8, 0xff93, 0xff3b,
+ 0xfe9b, 0xfdb4, 0xfcd2, 0xfc48, 0xfc24, 0xfbe4,
+ 0xfafa, 0xf9bc, 0xf912, 0xf92b, 0xf983, 0xfa12,
+ 0xfaee, 0xfb84, 0xfb5c, 0xfaa3, 0xf9aa, 0xf8d4,
+ 0xf88e, 0xf8f3, 0xf9c5, 0xfabe, 0xfbcb, 0xfcaa,
+ 0xfcd8, 0xfc4f, 0xfbae, 0xfb91, 0xfbf8, 0xfc16,
+ 0xfb68, 0xfa6d, 0xf9b3, 0xf987, 0xfa1c, 0xfb17,
+ 0xfbfb, 0xfc8b, 0xfcb2, 0xfcf7, 0xfdca, 0xfebb,
+ 0xff5d, 0xff6d, 0xfee5, 0xfe85, 0xfed3, 0xffb0,
+ 0x0103, 0x0242, 0x029c, 0x01f9, 0x00b8, 0xff69,
+ 0xfe94, 0xfe5e, 0xfec9, 0xff85, 0x002c, 0x00f0,
+ 0x01ca, 0x023c, 0x024c, 0x022b, 0x01c1, 0x0114,
+ 0x0038, 0xff60, 0xfee6, 0xfee7, 0xff4f, 0xffd8,
+ 0x0028, 0x001b, 0xffb7, 0xff4b, 0xff45, 0xff82,
+ 0xffa4, 0xff83, 0xff06, 0xfe50, 0xfdc8, 0xfdb7,
+ 0xfdec, 0xfdf0, 0xfde5, 0xfe3c, 0xfe90, 0xfe87,
+ 0xfe54, 0xfe01, 0xfdd6, 0xfe15, 0xfe3f, 0xfdf6,
+ 0xfd61, 0xfce6, 0xfd36, 0xfe28, 0xfece, 0xff15,
+ 0xff62, 0xffc1, 0x003c, 0x00ac, 0x00e8, 0x0105,
+ 0x00e2, 0x0099, 0x0087, 0x00c0, 0x015c, 0x024a,
+ 0x0314, 0x03a8, 0x044d, 0x0508, 0x05b8, 0x0630,
+ 0x0656, 0x063d, 0x05fd, 0x05d8, 0x061e, 0x0699,
+ 0x06c5, 0x065f, 0x0596, 0x04ea, 0x04bf, 0x052a,
+ 0x05dc, 0x0668, 0x06c8, 0x0726, 0x0755, 0x072e,
+ 0x06f1, 0x06d6, 0x06a6, 0x061b, 0x0585, 0x0551,
+ 0x0569, 0x0597, 0x05bc, 0x05c8, 0x05ec, 0x0620,
+ 0x0619, 0x05e1, 0x0594, 0x055a, 0x0577, 0x0594,
+ 0x0548, 0x0524, 0x05b4, 0x06c5, 0x07eb, 0x08ba,
+ 0x0907, 0x090c, 0x08e7, 0x0887, 0x07fa, 0x0769,
+ 0x06e7, 0x063b, 0x0539, 0x0409, 0x02f5, 0x0232,
+ 0x01df, 0x01e5, 0x0213, 0x0236, 0x020b, 0x015d,
+ 0x0085, 0x004c, 0x00c5, 0x0112, 0x00ae, 0xffe9,
+ 0xff4a, 0xff33, 0xff88, 0xffbe, 0xff70, 0xfeb2,
+ 0xfdcf, 0xfd04, 0xfc8d, 0xfcbb, 0xfd63, 0xfde6,
+ 0xfe11, 0xfe1c, 0xfe22, 0xfe19, 0xfdea, 0xfd9e,
+ 0xfd50, 0xfd15, 0xfd24, 0xfd74, 0xfda8, 0xfdbe,
+ 0xfdd3, 0xfde6, 0xfe4e, 0xff0b, 0xff78, 0xff70,
+ 0xff76, 0xffd5, 0x0055, 0x0091, 0x005c, 0xffc8,
+ 0xff32, 0xfef7, 0xfec2, 0xfe76, 0xfec7, 0xffbc,
+ 0x00b2, 0x017e, 0x0201, 0x0224, 0x01de, 0x0117,
+ 0x0079, 0x00ba, 0x017b, 0x022a, 0x0263, 0x0215,
+ 0x01fc, 0x0217, 0x01c1, 0x0165, 0x017b, 0x01ea,
+ 0x028f, 0x02ab, 0x01e4, 0x00fa, 0x0032, 0xff6e,
+ 0xfedb, 0xfeb3, 0xff3f, 0x0010, 0x001c, 0xff8d,
+ 0xff42, 0xff77, 0x0005, 0x005e, 0x001a, 0xff9a,
+ 0xff38, 0xff25, 0xff61, 0xff50, 0xfec3, 0xfe2f,
+ 0xfde4, 0xfe2b, 0xfec5, 0xfebb, 0xfddc, 0xfcea,
+ 0xfc89, 0xfcf3, 0xfdb2, 0xfddd, 0xfd2a, 0xfc37,
+ 0xfbbd, 0xfbef, 0xfcc4, 0xfe12, 0xff16, 0xff24,
+ 0xfe81, 0xfde0, 0xfda4, 0xfdad, 0xfdbd, 0xfdc9,
+ 0xfd99, 0xfd2a, 0xfcf8, 0xfd19, 0xfd7b, 0xfe49,
+ 0xff17, 0xff67, 0xff6c, 0xff5d, 0xff72, 0xffd8,
+ 0x0058, 0x00fb, 0x01b7, 0x0232, 0x029c, 0x031b,
+ 0x036a, 0x039d, 0x03a0, 0x0338, 0x0299, 0x01e4,
+ 0x014a, 0x011b, 0x0132, 0x0172, 0x01ce, 0x01ff,
+ 0x022c, 0x025e, 0x0234, 0x01d4, 0x0167, 0x00dc,
+ 0x009d, 0x00cd, 0x0126, 0x0185, 0x016c, 0x00ad,
+ 0x000d, 0x000c, 0x0077, 0x00fb, 0x0169, 0x01d1,
+ 0x0243, 0x02d5, 0x0397, 0x040e, 0x03f8, 0x03d9,
+ 0x03e0, 0x0403, 0x048c, 0x0551, 0x05e3, 0x0639,
+ 0x0679, 0x06df, 0x0773, 0x07ca, 0x07b8, 0x0775,
+ 0x073d, 0x0749, 0x0768, 0x0727, 0x069f, 0x0622,
+ 0x05d8, 0x05d7, 0x05d2, 0x0586, 0x0535, 0x04d8,
+ 0x042b, 0x0385, 0x0328, 0x02c7, 0x021b, 0x00e4,
+ 0xff41, 0xfe1e, 0xfe10, 0xfeb2, 0xff62, 0xff8e,
+ 0xff33, 0xfeef, 0xfef2, 0xfef2, 0xfeba, 0xfe31,
+ 0xfdb5, 0xfd9b, 0xfd66, 0xfcda, 0xfc54, 0xfc09,
+ 0xfbfc, 0xfbe3, 0xfb89, 0xfb74, 0xfbcc, 0xfc2b,
+ 0xfcb1, 0xfd74, 0xfe3d, 0xfed3, 0xfe8d, 0xfd71,
+ 0xfca7, 0xfc9c, 0xfced, 0xfd62, 0xfd7b, 0xfd0a,
+ 0xfcb7, 0xfcf7, 0xfdca, 0xff00, 0x0022, 0x00c7,
+ 0x00e7, 0x00eb, 0x0135, 0x0182, 0x0169, 0x010d,
+ 0x00ab, 0x0063, 0x0060, 0x00b8, 0x0154, 0x01fc,
+ 0x025d, 0x026a, 0x0288, 0x02db, 0x02d1, 0x0221,
+ 0x0192, 0x01bb, 0x0262, 0x0316, 0x035d, 0x0313,
+ 0x02ab, 0x0259, 0x01c7, 0x00e8, 0x004b, 0x0079,
+ 0x012b, 0x01c7, 0x0225, 0x0248, 0x0255, 0x027b,
+ 0x025f, 0x01f1, 0x019b, 0x0128, 0x006f, 0xffdf,
+ 0xffad, 0xffdc, 0x0020, 0x000a, 0xffc4, 0xff58,
+ 0xfe9e, 0xfe28, 0xfe33, 0xfe67, 0xfeb3, 0xfebd,
+ 0xfe62, 0xfe49, 0xfe7e, 0xfe7e, 0xfe3e, 0xfe07,
+ 0xfe48, 0xfeda, 0xff0c, 0xfee4, 0xfead, 0xfe74,
+ 0xfe52, 0xfdff, 0xfd89, 0xfdb3, 0xfe3d, 0xfe5b,
+ 0xfe26, 0xfe0d, 0xfe81, 0xff8b, 0x0069, 0x00c0,
+ 0x00c8, 0x00ad, 0x0089, 0x0004, 0xff2a, 0xfef4,
+ 0xff86, 0x002b, 0x00bc, 0x0101, 0x00d1, 0x0098,
+ 0x008d, 0x00af, 0x00ef, 0x00da, 0x0047, 0xff8e,
+ 0xfeff, 0xfeec, 0xff58, 0xffe3, 0x0066, 0x00c9,
+ 0x00e3, 0x00ba, 0x004c, 0xffd9, 0xfff3, 0x008e,
+ 0x011e, 0x018f, 0x01fc, 0x0230, 0x0226, 0x0216,
+ 0x0204, 0x01ea, 0x01d1, 0x01c6, 0x01fe, 0x0280,
+ 0x0345, 0x0477, 0x0594, 0x05df, 0x05b1, 0x0587,
+ 0x0549, 0x0517, 0x04fb, 0x04e6, 0x04fb, 0x04d0,
+ 0x0428, 0x03b1, 0x03c5, 0x0433, 0x0481, 0x03f9,
+ 0x0302, 0x02b6, 0x02f3, 0x02e7, 0x0249, 0x0173,
+ 0x010f, 0x015e, 0x0236, 0x0356, 0x0406, 0x03db,
+ 0x0330, 0x0239, 0x0133, 0x0097, 0x0067, 0x0063,
+ 0x002d, 0xff6d, 0xfe6b, 0xfdb3, 0xfd96, 0xfe3b,
+ 0xff24, 0xffb7, 0x0004, 0x0040, 0x006f, 0x0070,
+ 0x001a, 0xffc4, 0xffa9, 0xff4f, 0xfe91, 0xfde7,
+ 0xfdd0, 0xfe89, 0xffb5, 0x006d, 0x004a, 0xffe7,
+ 0x000c, 0x0099, 0x00ec, 0x00f8, 0x0114, 0x017d,
+ 0x0223, 0x02b2, 0x032f, 0x03c0, 0x03f6, 0x0380,
+ 0x02a0, 0x01ce, 0x0169, 0x0132, 0x00d3, 0x00d0,
+ 0x01a7, 0x02f6, 0x0419, 0x04c8, 0x0524, 0x053f,
+ 0x04fb, 0x0482, 0x03f0, 0x0331, 0x023f, 0x00f6,
+ 0xffc8, 0xff8b, 0xffee, 0x003e, 0x0068, 0x0020,
+ 0xff6c, 0xfee2, 0xfeb8, 0xff27, 0x0035, 0x0126,
+ 0x0194, 0x0198, 0x015c, 0x0152, 0x0189, 0x01b6,
+ 0x01e5, 0x01ee, 0x01bf, 0x0199, 0x0172, 0x0181,
+ 0x0216, 0x02a1, 0x02ab, 0x0257, 0x01c4, 0x0156,
+ 0x0174, 0x01ef, 0x0258, 0x0262, 0x023d, 0x025e,
+ 0x02da, 0x0392, 0x0425, 0x03f6, 0x032a, 0x0253,
+ 0x01b0, 0x0157, 0x00cc, 0xff9b, 0xfe85, 0xfe4c,
+ 0xfec5, 0xffbd, 0x00de, 0x019b, 0x01d1, 0x01a8,
+ 0x0179, 0x01cd, 0x02a7, 0x0361, 0x035d, 0x02b7,
+ 0x021e, 0x01fe, 0x021b, 0x0223, 0x0211, 0x0215,
+ 0x0245, 0x028b, 0x02a5, 0x0252, 0x01a8, 0x00fc,
+ 0x0077, 0x0045, 0x00a2, 0x014f, 0x01be, 0x01ac,
+ 0x0124, 0x005e, 0xffa3, 0xff35, 0xff38, 0xff96,
+ 0x0027, 0x00b8, 0x0105, 0x0113, 0x0112, 0x00f1,
+ 0x009c, 0x0059, 0x0066, 0x009b, 0x00a9, 0x0071,
+ 0x000c, 0xffd5, 0x000d, 0x0054, 0x0053, 0x0065,
+ 0x00b6, 0x0109, 0x015a, 0x016a, 0x00e8, 0x003c,
+ 0x0000, 0x0060, 0x0144, 0x024c, 0x0304, 0x030d,
+ 0x0263, 0x018f, 0x00e4, 0x0031, 0xff90, 0xff37,
+ 0xff2c, 0xff9d, 0x007f, 0x0147, 0x0191, 0x014f,
+ 0x008c, 0xff8b, 0xfeb4, 0xfe47, 0xfe41, 0xfe87,
+ 0xfeff, 0xff6b, 0xff76, 0xff05, 0xfe3b, 0xfd3d,
+ 0xfc41, 0xfb88, 0xfb15, 0xfae5, 0xfb34, 0xfbdd,
+ 0xfc6a, 0xfce8, 0xfd6e, 0xfdaa, 0xfd87, 0xfd27,
+ 0xfc9e, 0xfc24, 0xfbb7, 0xfb31, 0xfb03, 0xfbad,
+ 0xfcea, 0xfdfd, 0xfe81, 0xfeb0, 0xfece, 0xfecb,
+ 0xfebb, 0xfeff, 0xffbc, 0x008f, 0x00f8, 0x0126,
+ 0x01b8, 0x02b3, 0x0361, 0x0317, 0x01f5, 0x00e6,
+ 0x00a9, 0x0137, 0x0213, 0x0289, 0x025b, 0x0208,
+ 0x020c, 0x028a, 0x0367, 0x045a, 0x0524, 0x055f,
+ 0x04e0, 0x044e, 0x0413, 0x03e6, 0x03a3, 0x031f,
+ 0x0242, 0x0199, 0x0186, 0x01bf, 0x01da, 0x01a1,
+ 0x0169, 0x01a5, 0x021a, 0x0257, 0x021d, 0x016b,
+ 0x0099, 0x0003, 0xffd1, 0xffd6, 0xff9a, 0xff54,
+ 0xffa0, 0xffe1, 0xff41, 0xfe1d, 0xfd3c, 0xfd16,
+ 0xfd92, 0xfe0d, 0xfe45, 0xfe63, 0xfe58, 0xfe2a,
+ 0xfe1a, 0xfe3f, 0xfe85, 0xfeae, 0xfe7c, 0xfe0d,
+ 0xfddd, 0xfe39, 0xfec3, 0xfef3, 0xfeae, 0xfe23,
+ 0xfdd2, 0xfe1a, 0xfe7b, 0xfe7a, 0xfe81, 0xff21,
+ 0x0049, 0x0166, 0x0212, 0x0289, 0x02ea, 0x02fd,
+ 0x02ee, 0x0323, 0x03c0, 0x045b, 0x042c, 0x0342,
+ 0x027f, 0x0263, 0x02df, 0x039e, 0x0414, 0x041c,
+ 0x03ee, 0x03a3, 0x037a, 0x03b9, 0x042d, 0x0449,
+ 0x03df, 0x0387, 0x0392, 0x0392, 0x0376, 0x03a1,
+ 0x0437, 0x0531, 0x05fa, 0x05e4, 0x0588, 0x05b8,
+ 0x061b, 0x0605, 0x054e, 0x047c, 0x045b, 0x04d6,
+ 0x0545, 0x0589, 0x05aa, 0x057d, 0x04ef, 0x0429,
+ 0x03a9, 0x03e4, 0x0487, 0x04aa, 0x03e3, 0x02db,
+ 0x0272, 0x02b5, 0x0338, 0x03ab, 0x03ea, 0x0420,
+ 0x0438, 0x03bd, 0x02d5, 0x01ea, 0x00d6, 0xffb1,
+ 0xfefa, 0xfece, 0xfee9, 0xfedf, 0xfe6a, 0xfdee,
+ 0xfde3, 0xfe1a, 0xfe0f, 0xfd6c, 0xfc90, 0xfc19,
+ 0xfbf4, 0xfbf6, 0xfc67, 0xfd32, 0xfdfa, 0xfe7f,
+ 0xfe6f, 0xfdf2, 0xfd91, 0xfd41, 0xfcd4, 0xfc56,
+ 0xfbbc, 0xfb2d, 0xfae7, 0xfafd, 0xfb8e, 0xfc54,
+ 0xfcae, 0xfca2, 0xfc6c, 0xfc10, 0xfbea, 0xfc3e,
+ 0xfcd2, 0xfd73, 0xfdf3, 0xfe13, 0xfe03, 0xfe22,
+ 0xfe6a, 0xfe83, 0xfe3d, 0xfdc0, 0xfd3a, 0xfcd1,
+ 0xfcc2, 0xfd0e, 0xfd91, 0xfe58, 0xff54, 0x001c,
+ 0x006e, 0x0059, 0xffee, 0xff04, 0xfdc1, 0xfcfd,
+ 0xfd60, 0xfe8d, 0xffa5, 0x0011, 0xffe9, 0xffe8,
+ 0x00ab, 0x01e3, 0x02ae, 0x0291, 0x01c7, 0x00db,
+ 0x0051, 0x005f, 0x00db, 0x01a1, 0x0282, 0x02e9,
+ 0x029f, 0x0241, 0x0242, 0x0270, 0x0263, 0x01c3,
+ 0x00b9, 0xffed, 0xffb5, 0xfff4, 0x0085, 0x0136,
+ 0x01d3, 0x0268, 0x02f3, 0x031d, 0x02b3, 0x01fc,
+ 0x019b, 0x01e2, 0x0233, 0x01e1, 0x014c, 0x00fb,
+ 0x00d5, 0x00e5, 0x0154, 0x01d9, 0x0227, 0x0218,
+ 0x019f, 0x0138, 0x0165, 0x01e2, 0x01ff, 0x016c,
+ 0x0075, 0xff98, 0xff12, 0xff2b, 0xfff2, 0x00c2,
+ 0x0135, 0x0183, 0x017c, 0x00d7, 0x000a, 0xff7b,
+ 0xff16, 0xfeea, 0xff24, 0xffb6, 0x0057, 0x00c1,
+ 0x0101, 0x0155, 0x01bd, 0x0200, 0x01ea, 0x01b9,
+ 0x01f3, 0x0258, 0x0211, 0x0131, 0x0051, 0xffa0,
+ 0xff33, 0xfefd, 0xfea9, 0xfe5c, 0xfe5c, 0xfe74,
+ 0xfeb9, 0xff7f, 0x0075, 0x0103, 0x0129, 0x0167,
+ 0x0210, 0x02e6, 0x0347, 0x02cf, 0x01e8, 0x0182,
+ 0x01ec, 0x028c, 0x02c3, 0x027e, 0x0217, 0x01d8,
+ 0x01c5, 0x01e6, 0x0200, 0x0198, 0x010a, 0x011d,
+ 0x01af, 0x026c, 0x034b, 0x03e2, 0x03fb, 0x03f3,
+ 0x03e1, 0x03ab, 0x035e, 0x0306, 0x02be, 0x0295,
+ 0x0276, 0x0270, 0x0299, 0x02e0, 0x0318, 0x031a,
+ 0x0342, 0x03ee, 0x04ae, 0x04f3, 0x04c0, 0x0440,
+ 0x03ba, 0x037e, 0x035f, 0x0309, 0x0298, 0x0266,
+ 0x0270, 0x023b, 0x01b6, 0x017b, 0x01a7, 0x01a9,
+ 0x0165, 0x0131, 0x0108, 0x00ba, 0x006a, 0x003e,
+ 0x0015, 0xffcf, 0xff8e, 0xffa1, 0x0034, 0x00c9,
+ 0x00aa, 0x0014, 0xffa3, 0xff2b, 0xfec3, 0xff07,
+ 0xff9c, 0xffb8, 0xff68, 0xfef2, 0xfe98, 0xfed5,
+ 0xff96, 0x0053, 0x00bd, 0x007a, 0xff99, 0xfee7,
+ 0xfecc, 0xfef8, 0xff42, 0xffac, 0x0014, 0x0058,
+ 0x004f, 0x002c, 0x0066, 0x00f5, 0x016c, 0x01b7,
+ 0x01dc, 0x01c9, 0x0197, 0x0150, 0x00df, 0x008b,
+ 0x008f, 0x00b1, 0x00d0, 0x010b, 0x013f, 0x0145,
+ 0x0145, 0x0160, 0x018f, 0x01c5, 0x01ec, 0x01fb,
+ 0x01ee, 0x01a5, 0x0137, 0x00fe, 0x0116, 0x0134,
+ 0x0113, 0x00cb, 0x00c4, 0x011b, 0x014b, 0x00f0,
+ 0x0065, 0x002a, 0x004d, 0x008b, 0x0079, 0xffdb,
+ 0xff26, 0xfef8, 0xff38, 0xff7a, 0xff94, 0xff73,
+ 0xff25, 0xfee3, 0xfed5, 0xff21, 0xffa4, 0xffd2,
+ 0xff98, 0xff95, 0xfff6, 0x0031, 0x0030, 0x007e,
+ 0x013e, 0x0214, 0x02d5, 0x0367, 0x039b, 0x03a6,
+ 0x03c5, 0x03da, 0x03dc, 0x03c2, 0x0388, 0x0363,
+ 0x0348, 0x030e, 0x030b, 0x0371, 0x0406, 0x04d2,
+ 0x05c8, 0x068e, 0x0712, 0x0747, 0x0713, 0x06f2,
+ 0x0748, 0x0791, 0x0731, 0x0642, 0x0529, 0x0430,
+ 0x03a9, 0x03e8, 0x04ca, 0x0581, 0x054c, 0x044f,
+ 0x0345, 0x029e, 0x023b, 0x01ea, 0x01d0, 0x01fd,
+ 0x01f9, 0x0177, 0x00ed, 0x00b8, 0x00b4, 0x00b5,
+ 0x009c, 0x0077, 0x007e, 0x006f, 0x0001, 0xffa0,
+ 0xffc2, 0x0052, 0x00ee, 0x012f, 0x0123, 0x011e,
+ 0x0111, 0x00c3, 0x001d, 0xff34, 0xfe81, 0xfe4b,
+ 0xfe4b, 0xfe8f, 0xff46, 0x0000, 0x0037, 0xffd2,
+ 0xff27, 0xfee6, 0xff2c, 0xff68, 0xff52, 0xff0c,
+ 0xfedd, 0xfefb, 0xff24, 0xff1f, 0xff26, 0xff39,
+ 0xff25, 0xff19, 0xff35, 0xff65, 0xff9b, 0xffa7,
+ 0xffa9, 0x0001, 0x006f, 0x006f, 0x000d, 0xffa1,
+ 0xff8c, 0xffcd, 0xffaa, 0xfee6, 0xfe4b, 0xfe52,
+ 0xfeb3, 0xff29, 0xff88, 0xffb2, 0xffbb, 0xffad,
+ 0xff87, 0xff9b, 0x0019, 0x0081, 0x005b, 0x002e,
+ 0x008b, 0x0106, 0x011d, 0x0103, 0x013d, 0x01f3,
+ 0x0296, 0x0294, 0x024b, 0x022e, 0x01fe, 0x017f,
+ 0x00e7, 0x00b5, 0x0131, 0x01d6, 0x0225, 0x0263,
+ 0x02a3, 0x02ca, 0x0300, 0x02fa, 0x027a, 0x0224,
+ 0x022b, 0x0202, 0x0192, 0x0138, 0x0156, 0x0201,
+ 0x026f, 0x020f, 0x0178, 0x0121, 0x00d1, 0x009b,
+ 0x00f1, 0x01f7, 0x0300, 0x030b, 0x0246, 0x01f1,
+ 0x0281, 0x0336, 0x0361, 0x030a, 0x0287, 0x01dc,
+ 0x00ef, 0x0002, 0xff9f, 0x0019, 0x0113, 0x01b5,
+ 0x01ea, 0x022f, 0x0269, 0x025c, 0x023f, 0x0217,
+ 0x01e2, 0x01a6, 0x00e7, 0xff8e, 0xfe89, 0xfe81,
+ 0xff0d, 0xff78, 0xffa4, 0xffe8, 0x0025, 0x000b,
+ 0xffca, 0xff89, 0xff36, 0xff0c, 0xff27, 0xff5a,
+ 0xffb8, 0x0031, 0x0066, 0x0059, 0x0079, 0x00e8,
+ 0x012e, 0x00c2, 0xffbb, 0xfe96, 0xfdbf, 0xfd7a,
+ 0xfdc2, 0xfe53, 0xff08, 0xffbe, 0x003c, 0x007c,
+ 0x0073, 0x0020, 0xffd6, 0xffe4, 0x0042, 0x00eb,
+ 0x01b5, 0x020f, 0x01d2, 0x01b9, 0x0234, 0x029e,
+ 0x024c, 0x01a5, 0x019b, 0x0245, 0x02d3, 0x02da,
+ 0x02af, 0x02a8, 0x02d7, 0x0315, 0x031f, 0x031c,
+ 0x033c, 0x0327, 0x02e3, 0x02df, 0x02de, 0x0280,
+ 0x0213, 0x01f3, 0x024d, 0x0316, 0x03c0, 0x03f2,
+ 0x03e6, 0x03b1, 0x0369, 0x0365, 0x0396, 0x03c3,
+ 0x03d9, 0x03a1, 0x0341, 0x0337, 0x035c, 0x0350,
+ 0x0324, 0x02b8, 0x0208, 0x01a4, 0x01b7, 0x01e7,
+ 0x0228, 0x0270, 0x02aa, 0x02d0, 0x0293, 0x01e0,
+ 0x014c, 0x0111, 0x00c9, 0x0046, 0xffab, 0xff0b,
+ 0xfe60, 0xfdcf, 0xfdab, 0xfdd1, 0xfdcb, 0xfda5,
+ 0xfdb2, 0xfe04, 0xfe55, 0xfe31, 0xfdb2, 0xfd60,
+ 0xfd33, 0xfcf1, 0xfcc4, 0xfcc4, 0xfcfe, 0xfd51,
+ 0xfd2c, 0xfc84, 0xfbd9, 0xfb48, 0xfad0, 0xfa78,
+ 0xfa4f, 0xfad5, 0xfc03, 0xfccd, 0xfcba, 0xfc5d,
+ 0xfc5f, 0xfcd8, 0xfd5e, 0xfde6, 0xfeb6, 0xff69,
+ 0xffa9, 0xffb2, 0xff8f, 0xff5d, 0xff4e, 0xff2c,
+ 0xfef2, 0xfedb, 0xfed9, 0xfefa, 0xff4c, 0xff94,
+ 0xffc8, 0x0000, 0x0051, 0x00ba, 0x00c6, 0x005e,
+ 0x0029, 0x0052, 0x009a, 0x00db, 0x00a8, 0x0011,
+ 0xffdb, 0x0033, 0x00f0, 0x01de, 0x0261, 0x024b,
+ 0x022e, 0x0250, 0x0281, 0x0282, 0x0263, 0x02bf,
+ 0x0396, 0x03f1, 0x0396, 0x033c, 0x0338, 0x0336,
+ 0x02cb, 0x022e, 0x0210, 0x0240, 0x0217, 0x01cd,
+ 0x01bf, 0x01b1, 0x0174, 0x0111, 0x00c1, 0x00b8,
+ 0x00ab, 0x0072, 0x0089, 0x010c, 0x017b, 0x0166,
+ 0x00b9, 0xfff6, 0xffa6, 0xff9e, 0xffb8, 0x002f,
+ 0x00d9, 0x0138, 0x0101, 0x0047, 0xff91, 0xff35,
+ 0xff03, 0xfedc, 0xfeb2, 0xfe92, 0xfec9, 0xff2e,
+ 0xff3a, 0xfefc, 0xfeaf, 0xfe65, 0xfe52, 0xfe8e,
+ 0xff47, 0x00c8, 0x0282, 0x0372, 0x037e, 0x0320,
+ 0x02c9, 0x02bf, 0x02ca, 0x02a9, 0x0282, 0x026b,
+ 0x026d, 0x02bb, 0x033d, 0x0381, 0x032d, 0x0263,
+ 0x01d5, 0x01e5, 0x0213, 0x021c, 0x0235, 0x0224,
+ 0x01a2, 0x0102, 0x009a, 0x0065, 0x005e, 0x008f,
+ 0x00dc, 0x0110, 0x011f, 0x00f4, 0x003d, 0xff35,
+ 0xfe93, 0xfe6f, 0xfe7d, 0xfe93, 0xfe65, 0xfe38,
+ 0xfedb, 0x0003, 0x00c2, 0x0102, 0x011a, 0x0122,
+ 0x011d, 0x0113, 0x0130, 0x0173, 0x0184, 0x0163,
+ 0x016b, 0x01ca, 0x0283, 0x032f, 0x034d, 0x0307,
+ 0x02a8, 0x0223, 0x018c, 0x0114, 0x00f8, 0x0177,
+ 0x023a, 0x028c, 0x024c, 0x0223, 0x0295, 0x0328,
+ 0x031a, 0x02b8, 0x02b1, 0x02d4, 0x029b, 0x0226,
+ 0x020d, 0x023c, 0x01d6, 0x00ae, 0xff93, 0xff2f,
+ 0xffad, 0x007d, 0x00ba, 0x0051, 0xffab, 0xfef5,
+ 0xfe94, 0xfe98, 0xfe9c, 0xfec0, 0xff11, 0xff0e,
+ 0xfebc, 0xfe87, 0xfe8b, 0xfeb5, 0xfec9, 0xfea3,
+ 0xfe6b, 0xfe0f, 0xfd74, 0xfcfe, 0xfd03, 0xfd50,
+ 0xfdad, 0xfe06, 0xfe16, 0xfda7, 0xfd0e, 0xfcba,
+ 0xfcbf, 0xfd21, 0xfda6, 0xfde9, 0xfe0a, 0xfe50,
+ 0xfea9, 0xfeca, 0xfe5e, 0xfd90, 0xfd19, 0xfd44,
+ 0xfddc, 0xfea9, 0xff5a, 0xffdc, 0x003b, 0x0058,
+ 0x0089, 0x0125, 0x01ae, 0x01c1, 0x0195, 0x0148,
+ 0x00f2, 0x00bd, 0x009d, 0x0060, 0xffe2, 0xff5c,
+ 0xff41, 0xff7d, 0xffd8, 0x0088, 0x01a9, 0x02e5,
+ 0x03ac, 0x03a3, 0x031d, 0x029c, 0x024d, 0x0259,
+ 0x02d6, 0x0384, 0x03fd, 0x03f8, 0x0399, 0x032b,
+ 0x0275, 0x014a, 0x003f, 0xfff1, 0x004e, 0x0101,
+ 0x01d2, 0x0299, 0x0307, 0x02dc, 0x023e, 0x01af,
+ 0x0195, 0x01ba, 0x01b4, 0x01a8, 0x01e2, 0x024f,
+ 0x02c6, 0x030a, 0x02f7, 0x02d1, 0x02a4, 0x023d,
+ 0x01ba, 0x0131, 0x0084, 0xffe0, 0xffa6, 0x0003,
+ 0x00b0, 0x0115, 0x00ec, 0x0070, 0x0018, 0x0039,
+ 0x00a1, 0x00f1, 0x0118, 0x0109, 0x00c0, 0x005d,
+ 0xfff9, 0xffca, 0x000b, 0x007a, 0x00c6, 0x00f0,
+ 0x0104, 0x00ff, 0x00a9, 0xffee, 0xff69, 0xffa0,
+ 0x0022, 0x003f, 0xffcc, 0xff40, 0xff43, 0xffdd,
+ 0x0088, 0x00fc, 0x0153, 0x0193, 0x0187, 0x011a,
+ 0x00b6, 0x00cc, 0x0141, 0x01ab, 0x01dd, 0x01d7,
+ 0x01b8, 0x01b1, 0x0197, 0x0121, 0x00a4, 0x0043,
+ 0xff77, 0xfe8d, 0xfe86, 0xff62, 0x00a7, 0x0202,
+ 0x02d5, 0x0301, 0x0301, 0x02c8, 0x0260, 0x024d,
+ 0x0269, 0x0205, 0x00fe, 0xffe9, 0xff69, 0xffa7,
+ 0x003f, 0x00a6, 0x00a2, 0x00af, 0x012f, 0x01a3,
+ 0x01a2, 0x0166, 0x013e, 0x0153, 0x018d, 0x01d1,
+ 0x0248, 0x02cf, 0x0309, 0x030a, 0x02ff, 0x02e8,
+ 0x02a6, 0x01f6, 0x012e, 0x0111, 0x0190, 0x0212,
+ 0x0260, 0x027b, 0x0274, 0x0263, 0x0260, 0x02a6,
+ 0x0357, 0x0446, 0x0529, 0x05bf, 0x062b, 0x0698,
+ 0x0691, 0x05e7, 0x0536, 0x04d3, 0x0494, 0x044f,
+ 0x03e1, 0x0354, 0x02ed, 0x02d0, 0x0308, 0x037d,
+ 0x03da, 0x03d7, 0x037d, 0x0306, 0x0295, 0x0227,
+ 0x01df, 0x01fe, 0x0269, 0x02bc, 0x02e7, 0x0310,
+ 0x0302, 0x0276, 0x01a9, 0x0107, 0x00bf, 0x00eb,
+ 0x016e, 0x01fc, 0x0269, 0x028b, 0x0238, 0x017f,
+ 0x00b4, 0x003f, 0x0044, 0x00a0, 0x0140, 0x01cb,
+ 0x01a3, 0x00f6, 0x0086, 0x00a1, 0x0131, 0x01d3,
+ 0x0221, 0x025b, 0x02a7, 0x0280, 0x01c2, 0x0113,
+ 0x00ec, 0x0100, 0x00c7, 0x0058, 0x0002, 0xffc6,
+ 0xffd0, 0x0039, 0x00b4, 0x014d, 0x0205, 0x0247,
+ 0x0208, 0x01ce, 0x01bd, 0x01ce, 0x01f1, 0x01da,
+ 0x0188, 0x0149, 0x013f, 0x013a, 0x00ec, 0x0064,
+ 0x0000, 0xffef, 0x0053, 0x0144, 0x025b, 0x0324,
+ 0x0378, 0x0349, 0x02da, 0x02ac, 0x02d8, 0x032c,
+ 0x03a7, 0x0421, 0x0440, 0x0423, 0x044f, 0x04e0,
+ 0x057c, 0x05c8, 0x0595, 0x0517, 0x04bb, 0x049a,
+ 0x047a, 0x0447, 0x0420, 0x0418, 0x0410, 0x03f7,
+ 0x03dd, 0x03d1, 0x03f8, 0x0461, 0x049d, 0x0456,
+ 0x03cb, 0x032a, 0x0281, 0x021e, 0x022c, 0x028b,
+ 0x02fb, 0x032d, 0x02e1, 0x021f, 0x0137, 0x008c,
+ 0x0028, 0xffda, 0xffa4, 0xff99, 0xffb9, 0xffeb,
+ 0xffe7, 0xff95, 0xff52, 0xff6d, 0xffcd, 0x0040,
+ 0x00a7, 0x00b3, 0x002b, 0xff89, 0xff75, 0xffda,
+ 0x004c, 0x00b3, 0x0109, 0x0121, 0x00de, 0x0079,
+ 0x0030, 0xffc6, 0xff11, 0xfe78, 0xfe37, 0xfe4c,
+ 0xfec0, 0xff62, 0x002f, 0x0146, 0x020f, 0x0219,
+ 0x01f1, 0x01df, 0x0171, 0x00a2, 0xffee, 0xff90,
+ 0xff73, 0xff7c, 0xff79, 0xff35, 0xfed2, 0xfe8c,
+ 0xfe7a, 0xfebe, 0xff11, 0xfefa, 0xfec8, 0xfee6,
+ 0xff15, 0xff12, 0xfed8, 0xfe71, 0xfe0f, 0xfdb0,
+ 0xfd61, 0xfd7c, 0xfde6, 0xfe2b, 0xfe3e, 0xfe3d,
+ 0xfe31, 0xfe02, 0xfdb2, 0xfdb5, 0xfe2e, 0xfe98,
+ 0xfeb0, 0xfea4, 0xfeb2, 0xff02, 0xff4d, 0xff66,
+ 0xff9b, 0xfff3, 0x0046, 0x00c5, 0x0166, 0x01e3,
+ 0x0209, 0x01d0, 0x01aa, 0x0220, 0x02ed, 0x0353,
+ 0x02e3, 0x021f, 0x022a, 0x034e, 0x04ce, 0x0622,
+ 0x0716, 0x0793, 0x07d1, 0x0822, 0x08cb, 0x09a8,
+ 0x09eb, 0x0934, 0x081b, 0x0724, 0x06ad, 0x06f1,
+ 0x0780, 0x07ff, 0x08a7, 0x0931, 0x0918, 0x0890,
+ 0x07f4, 0x0743, 0x069a, 0x0634, 0x05ec, 0x056b,
+ 0x04d0, 0x0488, 0x0482, 0x046f, 0x046b, 0x0473,
+ 0x0425, 0x0375, 0x02b7, 0x024a, 0x0272, 0x02db,
+ 0x02d5, 0x0278, 0x0240, 0x01fd, 0x0169, 0x00e6,
+ 0x00c5, 0x00b6, 0x0057, 0xffbd, 0xff57, 0xff61,
+ 0xff83, 0xff5e, 0xff1f, 0xff3a, 0xffab, 0x0018,
+ 0x0092, 0x014f, 0x01b7, 0x0104, 0xff8b, 0xfe25,
+ 0xfd62, 0xfd7c, 0xfe23, 0xfed1, 0xff51, 0xff73,
+ 0xff2f, 0xfee0, 0xfe98, 0xfe55, 0xfe58, 0xfe90,
+ 0xfeb7, 0xfee3, 0xff1b, 0xff12, 0xfe98, 0xfdf3,
+ 0xfd77, 0xfd01, 0xfc8c, 0xfc70, 0xfca8, 0xfd18,
+ 0xfdc8, 0xfe5b, 0xfe90, 0xfeb5, 0xfee3, 0xff09,
+ 0xfeff, 0xfe83, 0xfdf0, 0xfde0, 0xfe39, 0xfe9f,
+ 0xfed4, 0xfec4, 0xfeb7, 0xfee2, 0xff27, 0xff4f,
+ 0xff3d, 0xff47, 0xffaa, 0xffcc, 0xff4a, 0xfe8a,
+ 0xfdf3, 0xfddc, 0xfe7e, 0xff85, 0x0075, 0x00fd,
+ 0x0115, 0x012b, 0x0188, 0x0209, 0x026a, 0x025e,
+ 0x01de, 0x015f, 0x0136, 0x0162, 0x0198, 0x0188,
+ 0x0141, 0x00d9, 0x003d, 0xffbd, 0xffa5, 0xffb6,
+ 0xffac, 0xff77, 0xff0b, 0xfe92, 0xfe5e, 0xfe8e,
+ 0xff04, 0xff84, 0xffbe, 0xff82, 0xff21, 0xff1c,
+ 0xff4c, 0xff21, 0xfe9e, 0xfe2c, 0xfdff, 0xfe1c,
+ 0xfe71, 0xfedd, 0xff30, 0xff1d, 0xfe92, 0xfde5,
+ 0xfd52, 0xfcda, 0xfcbc, 0xfd1a, 0xfd84, 0xfd77,
+ 0xfd0a, 0xfcbd, 0xfcfc, 0xfdc8, 0xfeba, 0xff76,
+ 0xffe4, 0x0008, 0xfffc, 0x000a, 0x0077, 0x00f8,
+ 0x0106, 0x008d, 0xffe5, 0xff51, 0xff1c, 0xff7e,
+ 0x0036, 0x00dc, 0x016e, 0x021b, 0x02a0, 0x02a9,
+ 0x0263, 0x0213, 0x01b4, 0x013a, 0x009e, 0xfff7,
+ 0xff97, 0xff91, 0xffa3, 0xffaf, 0xffc6, 0x000b,
+ 0x00b8, 0x01e4, 0x033a, 0x03f7, 0x03a7, 0x02c8,
+ 0x0208, 0x018d, 0x0178, 0x01e7, 0x02a8, 0x036a,
+ 0x03c6, 0x039e, 0x036f, 0x0379, 0x0354, 0x02e1,
+ 0x0288, 0x0272, 0x0251, 0x0220, 0x025c, 0x0323,
+ 0x03d1, 0x03f5, 0x03bd, 0x038b, 0x039f, 0x03e8,
+ 0x0449, 0x04c3, 0x0526, 0x0538, 0x0515, 0x04ff,
+ 0x051c, 0x0557, 0x0546, 0x04b5, 0x0411, 0x03b4,
+ 0x038e, 0x0393, 0x03ae, 0x03be, 0x03c3, 0x0397,
+ 0x0313, 0x028d, 0x0254, 0x024c, 0x0274, 0x02d9,
+ 0x0350, 0x03a5, 0x03ad, 0x0370, 0x0334, 0x0315,
+ 0x02f4, 0x029e, 0x0234, 0x0245, 0x029a, 0x0252,
+ 0x0189, 0x00e7, 0x007e, 0x0072, 0x00dd, 0x014c,
+ 0x0170, 0x013c, 0x00cf, 0x0081, 0x0037, 0xffb8,
+ 0xff3e, 0xfec3, 0xfe37, 0xfe0b, 0xfe4b, 0xfe77,
+ 0xfe74, 0xfe92, 0xff05, 0xff69, 0xff30, 0xfeb5,
+ 0xfeae, 0xfef0, 0xfef3, 0xfebb, 0xfea3, 0xfede,
+ 0xff4b, 0xffc0, 0x0056, 0x010f, 0x0183, 0x013e,
+ 0x0078, 0xffe9, 0xffad, 0xff3d, 0xfe96, 0xfe54,
+ 0xfeac, 0xff46, 0xffc8, 0x0011, 0x0035, 0x0046,
+ 0x004a, 0x0053, 0x0088, 0x00fe, 0x0193, 0x01ec,
+ 0x01bf, 0x0171, 0x018a, 0x01b6, 0x0164, 0x00dc,
+ 0x00b4, 0x00dc, 0x00c1, 0x0038, 0xffcc, 0xffbb,
+ 0xffb1, 0xffc6, 0x004f, 0x011a, 0x01c0, 0x020a,
+ 0x01d6, 0x013a, 0x007b, 0xfff6, 0xfffe, 0x006d,
+ 0x00a9, 0x006a, 0x000f, 0xfff0, 0xffe5, 0xffd1,
+ 0xffe3, 0x000e, 0x000f, 0xffe4, 0xffc2, 0xffb0,
+ 0xff69, 0xfed7, 0xfe69, 0xfe6e, 0xfe9f, 0xfe8e,
+ 0xfe2a, 0xfdcb, 0xfdb1, 0xfd97, 0xfd71, 0xfdb5,
+ 0xfe4f, 0xfea4, 0xfe97, 0xfe8b, 0xfed2, 0xff6a,
+ 0x0009, 0x007c, 0x00b4, 0x009e, 0x003e, 0xffc9,
+ 0xff92, 0xffc7, 0x001f, 0x002d, 0x000b, 0x003f,
+ 0x00e2, 0x0175, 0x0185, 0x011b, 0x00a3, 0x0090,
+ 0x00db, 0x0116, 0x012a, 0x014c, 0x0166, 0x0159,
+ 0x014d, 0x0164, 0x01a8, 0x020b, 0x024c, 0x0239,
+ 0x0200, 0x01e0, 0x01d4, 0x01ee, 0x0246, 0x0278,
+ 0x0230, 0x01db, 0x01da, 0x01e0, 0x01a0, 0x0134,
+ 0x00ca, 0x0093, 0x008b, 0x0052, 0xffbc, 0xff1f,
+ 0xfeb8, 0xfe72, 0xfe5b, 0xfe91, 0xfeff, 0xff9b,
+ 0x0044, 0x00b4, 0x00ff, 0x0172, 0x020c, 0x02a7,
+ 0x034b, 0x0409, 0x04dc, 0x057b, 0x0592, 0x0555,
+ 0x054c, 0x0575, 0x0566, 0x0525, 0x04e0, 0x0472,
+ 0x040d, 0x0420, 0x0481, 0x04e8, 0x0576, 0x0621,
+ 0x06c0, 0x0740, 0x0798, 0x07db, 0x07ea, 0x0778,
+ 0x06c5, 0x0648, 0x0614, 0x062e, 0x0671, 0x0691,
+ 0x067b, 0x060d, 0x0541, 0x049a, 0x046a, 0x045a,
+ 0x040a, 0x0346, 0x0224, 0x012b, 0x00a0, 0x0065,
+ 0x0064, 0x0062, 0x0023, 0xffeb, 0xffdd, 0xff9b,
+ 0xff12, 0xfe98, 0xfe51, 0xfe3f, 0xfe6e, 0xfec3,
+ 0xfef1, 0xfe98, 0xfdbd, 0xfd02, 0xfcd5, 0xfcf5,
+ 0xfd2b, 0xfd93, 0xfe18, 0xfe68, 0xfe78, 0xfe8b,
+ 0xfea4, 0xfe91, 0xfe56, 0xfe0a, 0xfdd8, 0xfdfd,
+ 0xfe3c, 0xfe37, 0xfe14, 0xfddc, 0xfd63, 0xfd00,
+ 0xfd39, 0xfdf9, 0xfebe, 0xff27, 0xff3c, 0xff18,
+ 0xfeb1, 0xfe28, 0xfdcb, 0xfdba, 0xfde8, 0xfe14,
+ 0xfe0d, 0xfe10, 0xfe74, 0xff2d, 0xffe8, 0x0063,
+ 0x008d, 0x007d, 0x0083, 0x00d2, 0x0113, 0x00cf,
+ 0x000e, 0xff27, 0xfe6b, 0xfe0e, 0xfe13, 0xfe68,
+ 0xfee6, 0xff54, 0xff84, 0xff87, 0xffb9, 0x0022,
+ 0x003c, 0x000b, 0x0013, 0x0014, 0xffd2, 0xffe7,
+ 0x0094, 0x015a, 0x01d8, 0x0207, 0x020e, 0x0224,
+ 0x0232, 0x020b, 0x01e5, 0x0211, 0x0255, 0x024c,
+ 0x0229, 0x0249, 0x02af, 0x0346, 0x03bf, 0x03aa,
+ 0x0323, 0x02a4, 0x023f, 0x01cd, 0x0181, 0x01ab,
+ 0x0228, 0x028b, 0x02a3, 0x0279, 0x0230, 0x01ea,
+ 0x01af, 0x019c, 0x01c7, 0x01ed, 0x01dd, 0x01af,
+ 0x019a, 0x01e5, 0x0279, 0x02e0, 0x02f4, 0x02ce,
+ 0x0271, 0x0203, 0x01b9, 0x0196, 0x01a3, 0x01f2,
+ 0x0253, 0x0252, 0x01cd, 0x013c, 0x00fb, 0x00f5,
+ 0x0110, 0x0148, 0x01a3, 0x020b, 0x0226, 0x01d6,
+ 0x0168, 0x00fa, 0x0087, 0x0048, 0x0068, 0x00bd,
+ 0x010c, 0x0153, 0x01a1, 0x01d9, 0x01d6, 0x0183,
+ 0x0114, 0x0117, 0x01ba, 0x0288, 0x0311, 0x0320,
+ 0x02d8, 0x029c, 0x025c, 0x01f0, 0x017c, 0x0101,
+ 0x0096, 0x006e, 0x0069, 0x0099, 0x0117, 0x0171,
+ 0x018e, 0x01b2, 0x01ba, 0x01ab, 0x01b8, 0x01a9,
+ 0x015f, 0x010e, 0x00f3, 0x0130, 0x0183, 0x01af,
+ 0x01f0, 0x0255, 0x026f, 0x021b, 0x01a8, 0x014c,
+ 0x00e9, 0x0052, 0xff9c, 0xff2e, 0xff69, 0x0028,
+ 0x00f8, 0x0184, 0x0187, 0x00eb, 0x0013, 0xff7e,
+ 0xff5d, 0xff8a, 0xffc7, 0x002d, 0x00f4, 0x01d2,
+ 0x0255, 0x0251, 0x01e1, 0x014f, 0x0101, 0x013c,
+ 0x01ed, 0x02b3, 0x0342, 0x0372, 0x0335, 0x02e8,
+ 0x02e9, 0x0322, 0x0341, 0x02fb, 0x0254, 0x019f,
+ 0x010c, 0x00cd, 0x00f9, 0x011d, 0x00de, 0x0047,
+ 0xff96, 0xff6d, 0x0000, 0x0083, 0x0076, 0x000a,
+ 0xff74, 0xfee6, 0xfe89, 0xfe5e, 0xfe5e, 0xfe81,
+ 0xfee3, 0xff5c, 0xff5c, 0xfee6, 0xfe94, 0xfe88,
+ 0xfe88, 0xfe72, 0xfe3b, 0xfdca, 0xfce7, 0xfbd7,
+ 0xfb5d, 0xfba4, 0xfc57, 0xfd58, 0xfe9d, 0xffe4,
+ 0x00a8, 0x00a1, 0x0044, 0x0004, 0xffdc, 0xffcb,
+ 0xffd9, 0xffff, 0x003f, 0x0070, 0x0085, 0x00ad,
+ 0x00b2, 0x0064, 0x0025, 0x0048, 0x00b8, 0x013e,
+ 0x01a0, 0x01f8, 0x0288, 0x0314, 0x0342, 0x035a,
+ 0x039b, 0x0398, 0x0327, 0x02b8, 0x0295, 0x02d1,
+ 0x036b, 0x0423, 0x04ab, 0x04d8, 0x04d2, 0x04fd,
+ 0x055d, 0x05a5, 0x05a9, 0x0565, 0x0559, 0x05e8,
+ 0x065e, 0x063c, 0x05e2, 0x0593, 0x058c, 0x05ee,
+ 0x0647, 0x0691, 0x071a, 0x078a, 0x0786, 0x071e,
+ 0x0677, 0x05d0, 0x051c, 0x043c, 0x0397, 0x038e,
+ 0x0408, 0x04ba, 0x0544, 0x0560, 0x0507, 0x0467,
+ 0x03e1, 0x03b8, 0x03e7, 0x042c, 0x0410, 0x0356,
+ 0x023f, 0x0136, 0x0097, 0x0058, 0x0016, 0xfff4,
+ 0x004b, 0x00d8, 0x0133, 0x0149, 0x0114, 0x0098,
+ 0x000d, 0xffd5, 0xffee, 0xfff4, 0xfff4, 0x0032,
+ 0x0052, 0xfff4, 0xff30, 0xfe1e, 0xfcdf, 0xfbdb,
+ 0xfb5b, 0xfb62, 0xfc07, 0xfd45, 0xfea7, 0xff9e,
+ 0xfff0, 0xffa4, 0xff0b, 0xfe64, 0xfd92, 0xfcc1,
+ 0xfc5f, 0xfc5e, 0xfc78, 0xfc9c, 0xfcd1, 0xfd2d,
+ 0xfd6e, 0xfd37, 0xfcda, 0xfcca, 0xfcfc, 0xfd61,
+ 0xfdeb, 0xfe69, 0xfeab, 0xfe79, 0xfdc1, 0xfcc4,
+ 0xfc09, 0xfc06, 0xfc78, 0xfcaf, 0xfc75, 0xfc0c,
+ 0xfbf2, 0xfc4f, 0xfc91, 0xfc82, 0xfca2, 0xfcfa,
+ 0xfd38, 0xfd57, 0xfd86, 0xfe0a, 0xfecd, 0xff76,
+ 0x0034, 0x011e, 0x01cc, 0x0254, 0x030e, 0x03d9,
+ 0x045f, 0x0455, 0x03bb, 0x02cc, 0x019e, 0x0095,
+ 0x007a, 0x0159, 0x028c, 0x03b2, 0x048e, 0x04d6,
+ 0x04b4, 0x04a0, 0x04ad, 0x04b0, 0x04ba, 0x0509,
+ 0x05ad, 0x064d, 0x0675, 0x0635, 0x05f0, 0x05ca,
+ 0x05b1, 0x0584, 0x0549, 0x0528, 0x0511, 0x0509,
+ 0x0563, 0x05f6, 0x0638, 0x0611, 0x05ad, 0x053b,
+ 0x0502, 0x04f7, 0x04a1, 0x0383, 0x01bd, 0x0056,
+ 0x0008, 0x005e, 0x009f, 0x009c, 0x0098, 0x00dd,
+ 0x012e, 0x0138, 0x0128, 0x0104, 0x009c, 0x000d,
+ 0xff92, 0xff4c, 0xff34, 0xfef8, 0xfe6d, 0xfde4,
+ 0xfdc4, 0xfe14, 0xfe92, 0xff32, 0xffe2, 0x0027,
+ 0xffe4, 0xff75, 0xff10, 0xfee9, 0xff1a, 0xff7a,
+ 0xffeb, 0x001b, 0xffe5, 0xffc0, 0xffac, 0xff74,
+ 0xffb8, 0x008c, 0x011d, 0x010f, 0x008b, 0x000c,
+ 0x001b, 0x0073, 0x00bd, 0x0120, 0x0156, 0x0113,
+ 0x00cf, 0x0107, 0x01ac, 0x0271, 0x0308, 0x034e,
+ 0x0343, 0x02f6, 0x02bc, 0x02df, 0x02ee, 0x027e,
+ 0x020a, 0x01e3, 0x01d6, 0x0212, 0x0284, 0x0277,
+ 0x01cb, 0x00d1, 0xffbd, 0xfefa, 0xfec8, 0xff1c,
+ 0xfff8, 0x00f4, 0x016f, 0x014c, 0x00eb, 0x00d3,
+ 0x0111, 0x013b, 0x0133, 0x012b, 0x0164, 0x0200,
+ 0x02c5, 0x035e, 0x037c, 0x02fd, 0x025a, 0x021d,
+ 0x027c, 0x0368, 0x03f9, 0x0373, 0x0292, 0x022c,
+ 0x021c, 0x01f5, 0x01b8, 0x01bc, 0x01c8, 0x017d,
+ 0x0174, 0x01e9, 0x0224, 0x01ee, 0x017f, 0x0115,
+ 0x00ce, 0x007a, 0x002e, 0xffe6, 0xff67, 0xff72,
+ 0x0060, 0x00f7, 0x009f, 0xffe3, 0xff3c, 0xfec5,
+ 0xfe2e, 0xfda3, 0xfdc8, 0xfe6e, 0xff1d, 0xff94,
+ 0xff8c, 0xff4e, 0xff3f, 0xff30, 0xfec4, 0xfe0b,
+ 0xfdc4, 0xfe0b, 0xfe2a, 0xfe32, 0xfdfb, 0xfd14,
+ 0xfcab, 0xfd76, 0xfe85, 0xff50, 0xffa1, 0xffc3,
+ 0x002b, 0x0000, 0xff66, 0xff49, 0xfebd, 0xfdb6,
+ 0xfd78, 0xfdca, 0xfe9d, 0x0030, 0x0196, 0x0284,
+ 0x0313, 0x02cb, 0x0204, 0x0182, 0x0135, 0x00a8,
+ 0x0019, 0xffcd, 0xfec9, 0xfd41, 0xfd02, 0xfd88,
+ 0xfd7e, 0xfd57, 0xfd47, 0xfd7d, 0xfdf2, 0xfdf0,
+ 0xfe92, 0xfff9, 0x001a, 0x0016, 0x0136, 0x0152,
+ 0x0046, 0xffb7, 0xff35, 0xfe51, 0xfdc4, 0xfe01,
+ 0xfe6f, 0xfe63, 0xfe7b, 0xfed6, 0xff20, 0x0025,
+ 0x0167, 0x01a5, 0x0167, 0x0112, 0x008f, 0xffcd,
+ 0xfe69, 0xfd4d, 0xfd03, 0xfcc8, 0xfd5d, 0xfef9,
+ 0x005c, 0x015e, 0x019e, 0x013d, 0x0169, 0x01cb,
+ 0x02ac, 0x047d, 0x0529, 0x0472, 0x041a, 0x0431,
+ 0x049a, 0x0511, 0x0539, 0x0546, 0x042d, 0x0269,
+ 0x022a, 0x02a7, 0x02d4, 0x02fd, 0x02d4, 0x02e2,
+ 0x02a4, 0x0194, 0x0230, 0x03a7, 0x031a, 0x0262,
+ 0x025a, 0x017e, 0x0099, 0x0025, 0x0017, 0x0072,
+ 0x0002, 0xffdd, 0x011f, 0x0172, 0x0089, 0x0073,
+ 0x0105, 0x0101, 0x0030, 0xffda, 0x0084, 0x00d4,
+ 0x0111, 0x01fa, 0x0227, 0x0152, 0x00b1, 0x0098,
+ 0x0089, 0x0000, 0xff93, 0xfef9, 0xfd34, 0xfc9d,
+ 0xfe55, 0xffc2, 0x0110, 0x02cf, 0x034e, 0x03ac,
+ 0x04ec, 0x055c, 0x0499, 0x0351, 0x027c, 0x024e,
+ 0x0159, 0x00a9, 0x01df, 0x02ff, 0x036c, 0x04fd,
+ 0x06e0, 0x0698, 0x0480, 0x0385, 0x03b9, 0x02e4,
+ 0x025b, 0x034a, 0x035f, 0x024a, 0x018a, 0x01c9,
+ 0x0305, 0x03a5, 0x038e, 0x03da, 0x0339, 0x0285,
+ 0x0355, 0x030c, 0x0190, 0x0158, 0x0167, 0x0138,
+ 0x018d, 0x0196, 0x00fd, 0x005d, 0x00ab, 0x01b6,
+ 0x01ae, 0x0150, 0x01bc, 0x0138, 0x0010, 0x0010,
+ 0x00ac, 0x009f, 0xff93, 0xfef9, 0xff59, 0xfe9a,
+ 0xfd85, 0xfdc8, 0xfd6f, 0xfc30, 0xfba3, 0xfc54,
+ 0xfe55, 0xff61, 0xff02, 0xffc1, 0xffd3, 0xfe49,
+ 0xfe8b, 0xffd3, 0x0003, 0xffbb, 0xff03, 0xfee5,
+ 0xff63, 0xfec9, 0xfe79, 0xfecc, 0xfe57, 0xfea1,
+ 0x0009, 0x012f, 0x01bd, 0x0172, 0x01c2, 0x02fc,
+ 0x02ab, 0x01e7, 0x0298, 0x0374, 0x040b, 0x0417,
+ 0x039a, 0x0381, 0x0255, 0xffde, 0xfe0d, 0xfc9e,
+ 0xfc2d, 0xfdad, 0xff75, 0x00cf, 0x0168, 0x011f,
+ 0x014d, 0x00bd, 0xfecf, 0xfe36, 0xfeea, 0xffe5,
+ 0x01d0, 0x0336, 0x02b9, 0x017b, 0x00c5, 0x0096,
+ 0x001f, 0x00cc, 0x0356, 0x049b, 0x0551, 0x082d,
+ 0x0a4b, 0x0ac3, 0x0c1c, 0x0d07, 0x0c46, 0x0afb,
+ 0x0a1e, 0x0a9f, 0x0b1a, 0x0a33, 0x09c2, 0x09e8,
+ 0x0950, 0x08c0, 0x08cb, 0x0917, 0x096b, 0x09fe,
+ 0x0b0f, 0x0bb9, 0x0c0e, 0x0cb0, 0x0c51, 0x0b11,
+ 0x09ea, 0x0879, 0x085b, 0x09c3, 0x09ca, 0x0914,
+ 0x08dc, 0x07d3, 0x066f, 0x0525, 0x03b7, 0x02cd,
+ 0x0165, 0xff6b, 0xfe79, 0xfd8c, 0xfbe6, 0xfa38,
+ 0xf774, 0xf30b, 0xeceb, 0xe3b3, 0xd7cd, 0xcd24,
+ 0xc7fe, 0xc865, 0xcb7a, 0xd175, 0xdbaa, 0xe850,
+ 0xf446, 0xfc66, 0xffa0, 0xff8f, 0xfd47, 0xfa64,
+ 0xf85e, 0xf576, 0xf10c, 0xec1e, 0xe5e4, 0xdf68,
+ 0xdaf3, 0xd895, 0xd854, 0xda2f, 0xdda4, 0xe207,
+ 0xe569, 0xe842, 0xec82, 0xef50, 0xee9a, 0xedbb,
+ 0xee78, 0xefc3, 0xf1b5, 0xf4c9, 0xf887, 0xfbc7,
+ 0xfe0b, 0xffde, 0x014b, 0x0256, 0x039d, 0x0552,
+ 0x0731, 0x0908, 0x0ada, 0x0c1f, 0x0bb7, 0x0a48,
+ 0x0991, 0x09ef, 0x0bc7, 0x0f5d, 0x13a6, 0x17d2,
+ 0x1aa5, 0x1a86, 0x17b6, 0x1384, 0x0fa0, 0x0d5d,
+ 0x0c7f, 0x0d2b, 0x0ef8, 0x0fb6, 0x0fae, 0x1022,
+ 0x0fbd, 0x0ea8, 0x0e54, 0x0db5, 0x0c70, 0x0c04,
+ 0x0c59, 0x0c89, 0x0cd9, 0x0d9c, 0x0ecf, 0x10a1,
+ 0x125c, 0x1376, 0x1521, 0x16c0, 0x166a, 0x15a1,
+ 0x15b3, 0x158a, 0x15d4, 0x1710, 0x1894, 0x1ab1,
+ 0x1c75, 0x1dd8, 0x1fc0, 0x1f6e, 0x1ce1, 0x1be7,
+ 0x1b8c, 0x1a7f, 0x19eb, 0x18e6, 0x1830, 0x186f,
+ 0x1743, 0x1609, 0x1621, 0x14e8, 0x12f6, 0x1167,
+ 0x0f77, 0x0f12, 0x0f9f, 0x0e4f, 0x0d2e, 0x0d35,
+ 0x0bd5, 0x09e6, 0x09a6, 0x0a9c, 0x0b4b, 0x0ad7,
+ 0x0a02, 0x0934, 0x06da, 0x03bf, 0x0317, 0x03e1,
+ 0x031c, 0x0251, 0x0252, 0x0067, 0xfe54, 0xfee9,
+ 0xfeeb, 0xfda7, 0xfe47, 0xff2e, 0xfea2, 0xfe0d,
+ 0xfcbe, 0xfa80, 0xf87b, 0xf627, 0xf424, 0xf327,
+ 0xf203, 0xf177, 0xf22f, 0xf247, 0xf158, 0xf092,
+ 0xeffc, 0xef08, 0xede8, 0xedcc, 0xee67, 0xedee,
+ 0xed1c, 0xecf3, 0xebee, 0xea9e, 0xeb0d, 0xec61,
+ 0xede3, 0xf024, 0xf1b4, 0xf157, 0xf04e, 0xefed,
+ 0xf0a1, 0xf1c2, 0xf22c, 0xf30f, 0xf5d7, 0xf876,
+ 0xf964, 0xfa0f, 0xfaa1, 0xf9e5, 0xf8d4, 0xf8e6,
+ 0xf8ec, 0xf81a, 0xf903, 0xfbc4, 0xfc9e, 0xfc63,
+ 0xfd87, 0xfda2, 0xfd31, 0xff51, 0x01b6, 0x02ea,
+ 0x048e, 0x057b, 0x05a4, 0x0646, 0x05c8, 0x03f8,
+ 0x0254, 0x0188, 0x0262, 0x03bc, 0x04c1, 0x06be,
+ 0x0796, 0x05c9, 0x050d, 0x05ca, 0x058f, 0x0676,
+ 0x09e9, 0x0c8e, 0x0c75, 0x0b82, 0x0b06, 0x0aa5,
+ 0x0ae3, 0x0b43, 0x0a07, 0x0900, 0x0a62, 0x0c17,
+ 0x0c8a, 0x0c4d, 0x0bb8, 0x0b42, 0x0ac1, 0x0a97,
+ 0x0bad, 0x0c73, 0x0c6b, 0x0c9f, 0x0b40, 0x084c,
+ 0x063d, 0x048f, 0x038f, 0x04d9, 0x0689, 0x06e5,
+ 0x06e7, 0x0750, 0x06d4, 0x0376, 0xff8e, 0xfe0d,
+ 0xfbbb, 0xf873, 0xf954, 0xfc30, 0xfc4b, 0xfb99,
+ 0xfb5b, 0xfa3a, 0xf8e3, 0xf75f, 0xf59a, 0xf574,
+ 0xf6ab, 0xf74c, 0xf819, 0xf9ab, 0xfa2c, 0xf97d,
+ 0xf838, 0xf5cd, 0xf441, 0xf489, 0xf3e6, 0xf3ec,
+ 0xf6b4, 0xf849, 0xf826, 0xf8a4, 0xf819, 0xf7fa,
+ 0xfa24, 0xfaa0, 0xf988, 0xf9c4, 0xf965, 0xf8f4,
+ 0xfa84, 0xfb46, 0xfa73, 0xfa86, 0xfb01, 0xfad9,
+ 0xfaf3, 0xfbd4, 0xfd1b, 0xfe5a, 0xfec1, 0xfdaf,
+ 0xfd4f, 0xffb7, 0x01a0, 0x00db, 0x016b, 0x0464,
+ 0x0590, 0x0408, 0x02d7, 0x029f, 0x0108, 0xfedc,
+ 0xff4b, 0x004a, 0xfee4, 0xfdbc, 0xfe05, 0xfe21,
+ 0xfe7f, 0xfe89, 0xfd91, 0xfce0, 0xfb5b, 0xf8ca,
+ 0xf876, 0xfaaf, 0xfce6, 0xfe25, 0xfec8, 0xff41,
+ 0xff90, 0x0013, 0x0099, 0xff72, 0xfdc7, 0xfdc6,
+ 0xfd9c, 0xfc7e, 0xfbb6, 0xfacc, 0xfa0b, 0xf9cb,
+ 0xfa01, 0xfb86, 0xfbfc, 0xfa6c, 0xfab9, 0xfbf9,
+ 0xfbba, 0xfc40, 0xfcb4, 0xfbab, 0xfbf5, 0xfe5d,
+ 0x00cf, 0x00a0, 0xfe9d, 0xff3a, 0xfff2, 0xfd9d,
+ 0xfcfe, 0xfca6, 0xf973, 0xf8a3, 0xf994, 0xf981,
+ 0xfb04, 0xfb55, 0xf9a7, 0xf94d, 0xf85a, 0xf8b7,
+ 0xfaaf, 0xf86f, 0xf7a8, 0xfbca, 0xfc2e, 0xfb6a,
+ 0xfe21, 0xffa1, 0x00c3, 0x00f7, 0xfe0a, 0xfd40,
+ 0xfc56, 0xf831, 0xf856, 0xfb11, 0xf9c8, 0xf80a,
+ 0xf7d7, 0xf8ad, 0xfb6a, 0xfdf6, 0xffca, 0x0005,
+ 0xfd96, 0xfdb6, 0xffd0, 0xfdd2, 0xfcc4, 0x001a,
+ 0x0008, 0xfcb8, 0xfe01, 0x01a5, 0x0153, 0x0081,
+ 0x0301, 0x0312, 0xff2d, 0xfe6b, 0x0115, 0x0276,
+ 0x029b, 0x026d, 0x0329, 0x0531, 0x0454, 0x00c8,
+ 0xffd3, 0x00fa, 0x0263, 0x0466, 0x03e5, 0x0127,
+ 0x01b8, 0x0416, 0x04b7, 0x06d3, 0x088a, 0x0528,
+ 0x0373, 0x0759, 0x08a9, 0x06e9, 0x07ab, 0x06f8,
+ 0x02f6, 0x0243, 0x0503, 0x04ce, 0x01bd, 0x01b0,
+ 0x04c3, 0x05ba, 0x0554, 0x0706, 0x0799, 0x0474,
+ 0x0176, 0x01e7, 0x0398, 0x02d8, 0x019f, 0x02c9,
+ 0x0271, 0x0081, 0x0157, 0x00ea, 0xfd9d, 0xfdf7,
+ 0x001b, 0xff68, 0xff32, 0xffb3, 0xfd83, 0xfab2,
+ 0xfbe6, 0x00a2, 0x01b4, 0xfd7e, 0xfcb3, 0xffa6,
+ 0xfed8, 0xfd14, 0xfe5b, 0xfeed, 0xfe97, 0xff58,
+ 0xffae, 0xffab, 0x0071, 0x012b, 0x005d, 0xfe83,
+ 0xfeb8, 0xffb2, 0xfcc6, 0xfa5b, 0xfcf5, 0xfcc4,
+ 0xf6ee, 0xf42b, 0xf5e9, 0xf606, 0xf3f5, 0xf2da,
+ 0xf316, 0xf2ee, 0xf2b3, 0xf440, 0xf588, 0xf481,
+ 0xf4c9, 0xf762, 0xf7ee, 0xf660, 0xf675, 0xf810,
+ 0xf861, 0xf6be, 0xf4d5, 0xf388, 0xf2cf, 0xf39e,
+ 0xf5b7, 0xf774, 0xf929, 0xfb27, 0xfba7, 0xfa10,
+ 0xf7e9, 0xf6f0, 0xf7f5, 0xfa54, 0xfc84, 0xfc81,
+ 0xf9df, 0xf7f6, 0xf950, 0xfbe4, 0xfd1c, 0xfbb1,
+ 0xf78f, 0xf3df, 0xf387, 0xf4a3, 0xf4f2, 0xf5d1,
+ 0xf7e8, 0xf845, 0xf5de, 0xf480, 0xf590, 0xf5e8,
+ 0xf681, 0xfb07, 0xffd8, 0xff96, 0xfdaa, 0xfee9,
+ 0x0101, 0x01ba, 0x0388, 0x068b, 0x0724, 0x04e0,
+ 0x036d, 0x04a8, 0x0653, 0x0793, 0x0ad5, 0x0e05,
+ 0x0c5f, 0x0a11, 0x0cdf, 0x0f58, 0x0ca3, 0x0a84,
+ 0x0ce9, 0x0ee5, 0x0c6c, 0x0980, 0x0aeb, 0x0de4,
+ 0x0ee8, 0x0ee9, 0x0d55, 0x0b80, 0x0d4b, 0x0ef5,
+ 0x0d66, 0x0daf, 0x0f73, 0x0f03, 0x0f0e, 0x114f,
+ 0x15aa, 0x19f0, 0x17d0, 0x133e, 0x157e, 0x1914,
+ 0x1818, 0x1726, 0x16f5, 0x1706, 0x18a0, 0x18d1,
+ 0x18f7, 0x1bcc, 0x1c3a, 0x19cc, 0x192c, 0x1917,
+ 0x186b, 0x17d3, 0x15de, 0x1421, 0x14d4, 0x15e8,
+ 0x154e, 0x13ff, 0x1402, 0x138c, 0x0fd5, 0x0cac,
+ 0x0c09, 0x09ac, 0x074e, 0x0827, 0x0858, 0x069f,
+ 0x059a, 0x0506, 0x03e8, 0x031d, 0x052a, 0x08d1,
+ 0x0898, 0x05ec, 0x04ad, 0x02f8, 0x01fe, 0x0207,
+ 0xffa8, 0xfed0, 0xffd4, 0xfde3, 0xfec7, 0x022d,
+ 0xffef, 0xfe49, 0xffdf, 0xfe54, 0xfea1, 0xffa1,
+ 0xfa71, 0xf7d7, 0xf9ce, 0xf904, 0xf964, 0xf87a,
+ 0xf22d, 0xf13b, 0xf446, 0xf18c, 0xef33, 0xef49,
+ 0xed05, 0xed24, 0xf014, 0xf0d6, 0xf090, 0xef87,
+ 0xeda1, 0xed41, 0xee65, 0xf156, 0xf449, 0xf33a,
+ 0xf12b, 0xf197, 0xf27a, 0xf430, 0xf71c, 0xf968,
+ 0xfb2b, 0xfb3d, 0xf97f, 0xf95a, 0xf9e6, 0xf8ba,
+ 0xf8ec, 0xfcd5, 0x014d, 0x0217, 0xffab, 0xfe4d,
+ 0xfed0, 0xfefe, 0xfea1, 0xfe6c, 0xff0f, 0x003e,
+ 0x005e, 0x0024, 0xfffb, 0xfdfc, 0xfba4, 0xfb5d,
+ 0xfc21, 0xfcb1, 0xfc4a, 0xfb7c, 0xfb02, 0xf952,
+ 0xf8e7, 0xfbed, 0xfcaf, 0xfbdd, 0xff49, 0x01ac,
+ 0x0072, 0x027b, 0x065e, 0x06c8, 0x059b, 0x0639,
+ 0x08f7, 0x09f6, 0x0848, 0x095c, 0x0b56, 0x0a72,
+ 0x0c9d, 0x10e3, 0x108f, 0x100a, 0x124f, 0x1265,
+ 0x1037, 0x0ee8, 0x0e78, 0x0c9d, 0x0a90, 0x0cb2,
+ 0x0da6, 0x0947, 0x09b7, 0x0d28, 0x09db, 0x085b,
+ 0x0a2a, 0x0738, 0x07d5, 0x0a80, 0x04ec, 0x0343,
+ 0x0857, 0x0662, 0x0363, 0x0519, 0x0542, 0x0762,
+ 0x0a27, 0x082e, 0x0769, 0x0627, 0x01d6, 0x02c5,
+ 0x0440, 0x00b2, 0x01fe, 0x060f, 0x0433, 0x0257,
+ 0x045e, 0x06da, 0x07d3, 0x05bc, 0x0446, 0x05d4,
+ 0x03f0, 0xff7d, 0xffe6, 0x0237, 0x0159, 0x0056,
+ 0x0151, 0x00c5, 0xfdef, 0xfda3, 0xff48, 0xfd99,
+ 0xfbe6, 0xfde0, 0xfe68, 0xfc8f, 0xfc47, 0xfd28,
+ 0xfd4c, 0xfb1a, 0xf83d, 0xf941, 0xfb90, 0xfbea,
+ 0xfd19, 0xfd16, 0xfad1, 0xfb27, 0xfbd7, 0xfab9,
+ 0xfb2e, 0xfa52, 0xf7e1, 0xf84c, 0xf7f1, 0xf6df,
+ 0xf92e, 0xf92a, 0xf6c9, 0xf7fa, 0xf6c4, 0xf128,
+ 0xefdc, 0xf341, 0xf614, 0xf642, 0xf509, 0xf606,
+ 0xf609, 0xf29b, 0xf40c, 0xf8a7, 0xf77c, 0xf6ae,
+ 0xf896, 0xf5e2, 0xf3fe, 0xf6a9, 0xf68a, 0xf5d4,
+ 0xf880, 0xf97e, 0xf823, 0xf6df, 0xf5d8, 0xf5f3,
+ 0xf4fd, 0xf22f, 0xf1bd, 0xf30a, 0xf364, 0xf32e,
+ 0xf1c7, 0xf1a8, 0xf49e, 0xf478, 0xf0d0, 0xf107,
+ 0xf47b, 0xf693, 0xf6dd, 0xf59f, 0xf481, 0xf47e,
+ 0xf44b, 0xf537, 0xf6a5, 0xf576, 0xf554, 0xf87a,
+ 0xf8e9, 0xf6d1, 0xf799, 0xf8e7, 0xf91c, 0xfbc1,
+ 0xfdda, 0xfc0d, 0xfbaa, 0xfd5e, 0xfbd2, 0xf9d6,
+ 0xfb3f, 0xfc2a, 0xfbb3, 0xfc12, 0xfbcd, 0xfbd3,
+ 0xfe25, 0xff6b, 0xfdfb, 0xfd4c, 0xff10, 0x0048,
+ 0xfe4f, 0xfcc6, 0xfde0, 0xfc13, 0xf906, 0xfb8e,
+ 0xfdba, 0xfbdb, 0xfda7, 0x0129, 0x0137, 0x01d0,
+ 0x020e, 0x00a2, 0x0290, 0x056b, 0x061b, 0x07a0,
+ 0x0770, 0x049e, 0x0385, 0x025c, 0x00aa, 0x01ca,
+ 0x02e8, 0x01e0, 0x00a2, 0xffef, 0x0121, 0x02df,
+ 0x029f, 0x02d1, 0x0332, 0x0222, 0x0240, 0x010a,
+ 0xfd23, 0xfd5c, 0x0032, 0xffb7, 0xff6e, 0x0054,
+ 0xff7e, 0xffaf, 0x014b, 0x016f, 0x0117, 0x0103,
+ 0x0114, 0x01e6, 0x020c, 0x01b8, 0x02e1, 0x0356,
+ 0x018d, 0x015b, 0x03a4, 0x0449, 0x0370, 0x0435,
+ 0x056c, 0x0598, 0x04f1, 0x031b, 0x02d3, 0x0473,
+ 0x0271, 0xff82, 0x01d1, 0x03b3, 0x01be, 0x0197,
+ 0x0293, 0x01af, 0x016e, 0x0206, 0x0111, 0xff3d,
+ 0xffac, 0x021d, 0x0161, 0xfee4, 0x0166, 0x0511,
+ 0x055a, 0x07cf, 0x0b3c, 0x097f, 0x071b, 0x0827,
+ 0x092e, 0x0953, 0x08df, 0x0702, 0x0660, 0x07a5,
+ 0x076b, 0x06be, 0x0815, 0x0850, 0x068b, 0x06aa,
+ 0x0702, 0x0471, 0x034d, 0x04c9, 0x0365, 0x00f7,
+ 0x0209, 0x0235, 0xfffb, 0x0002, 0xffb5, 0xfc7d,
+ 0xfb3a, 0xfb7b, 0xf9bb, 0xf7b3, 0xf62f, 0xf68d,
+ 0xf925, 0xf7ef, 0xf471, 0xf56c, 0xf6d7, 0xf6f5,
+ 0xf915, 0xf8a5, 0xf631, 0xf787, 0xf94f, 0xfa2d,
+ 0xfc50, 0xfd16, 0xfd6e, 0xfe43, 0xfcbf, 0xfbdd,
+ 0xfd44, 0xfd5a, 0xfc46, 0xfaf9, 0xf9bc, 0xf94d,
+ 0xf800, 0xf6f7, 0xf7bd, 0xf765, 0xf6bf, 0xf786,
+ 0xf70c, 0xf547, 0xf34c, 0xf1ae, 0xf26c, 0xf366,
+ 0xf2b9, 0xf301, 0xf34c, 0xf288, 0xf36a, 0xf53d,
+ 0xf612, 0xf698, 0xf718, 0xf84c, 0xfa83, 0xfbbb,
+ 0xfc17, 0xfe5d, 0x0161, 0x0165, 0x00af, 0x026f,
+ 0x0301, 0x0142, 0x0004, 0xff07, 0xffc3, 0x01ab,
+ 0x00ad, 0x0080, 0x0245, 0x011b, 0x0189, 0x039c,
+ 0x0142, 0x01f8, 0x06d1, 0x064a, 0x0612, 0x09a4,
+ 0x0965, 0x08b4, 0x0a46, 0x09a0, 0x0981, 0x09d5,
+ 0x074e, 0x0690, 0x0840, 0x078a, 0x05b0, 0x062e,
+ 0x08df, 0x0a17, 0x0892, 0x0924, 0x0b92, 0x0a8b,
+ 0x088f, 0x0959, 0x0b2c, 0x0da3, 0x0fdd, 0x101f,
+ 0x1055, 0x10bf, 0x1015, 0x0fef, 0x0fab, 0x0e96,
+ 0x0f9d, 0x1101, 0x0fbf, 0x0f4b, 0x0fd6, 0x0e28,
+ 0x0d09, 0x0e0d, 0x0ebd, 0x0eda, 0x0d38, 0x0a31,
+ 0x0a03, 0x0b27, 0x09a4, 0x080b, 0x08c6, 0x099f,
+ 0x083e, 0x063e, 0x06c3, 0x0778, 0x0644, 0x0678,
+ 0x0688, 0x042e, 0x041f, 0x05cc, 0x053b, 0x04da,
+ 0x0540, 0x04a5, 0x0435, 0x03d2, 0x0311, 0x0223,
+ 0x00eb, 0x0177, 0x030a, 0x0249, 0x00fd, 0x0167,
+ 0x01ed, 0x0133, 0xff50, 0xfdb3, 0xfc88, 0xfacb,
+ 0xf9fc, 0xf94d, 0xf718, 0xf723, 0xf93a, 0xf85b,
+ 0xf63a, 0xf59d, 0xf439, 0xf1f7, 0xf196, 0xf294,
+ 0xf1be, 0xefec, 0xf088, 0xf1ca, 0xf1b7, 0xf262,
+ 0xf397, 0xf521, 0xf7a9, 0xf898, 0xf828, 0xf8e8,
+ 0xf9fa, 0xfa68, 0xf988, 0xf867, 0xf98f, 0xfa1d,
+ 0xf982, 0xfbb9, 0xfd0d, 0xfba9, 0xfc17, 0xfbd6,
+ 0xfa06, 0xfac2, 0xfafc, 0xf9bd, 0xfab0, 0xfaf6,
+ 0xf8a7, 0xf6f1, 0xf74f, 0xf9c5, 0xfbc4, 0xfa9c,
+ 0xf8d3, 0xf8cc, 0xf96c, 0xf9f9, 0xfad7, 0xfc0e,
+ 0xfcf3, 0xfdaf, 0xfdfb, 0xfce5, 0xfd79, 0x00de,
+ 0x0215, 0x01bd, 0x0336, 0x02f4, 0x00d5, 0x0125,
+ 0x02ba, 0x03fa, 0x05a5, 0x06f8, 0x0779, 0x06ef,
+ 0x0538, 0x042c, 0x0582, 0x07fa, 0x08e8, 0x08e7,
+ 0x0a06, 0x0aa9, 0x0a9f, 0x0bc1, 0x0c3e, 0x0bf8,
+ 0x0c72, 0x0c17, 0x0c5f, 0x0e1c, 0x0dd2, 0x0dbf,
+ 0x0fc8, 0x0f1a, 0x0cbe, 0x0d1a, 0x0df1, 0x0d26,
+ 0x0cd5, 0x0dae, 0x0d53, 0x0bb7, 0x0bb6, 0x0c06,
+ 0x0afd, 0x0b4c, 0x0bf3, 0x0b47, 0x0b47, 0x0aa8,
+ 0x09f4, 0x0bb1, 0x0c18, 0x0b0d, 0x0be2, 0x0bc3,
+ 0x0b78, 0x0d37, 0x0cad, 0x0a59, 0x09b3, 0x091c,
+ 0x07eb, 0x0638, 0x04d7, 0x05e6, 0x068f, 0x0545,
+ 0x04e6, 0x040b, 0x0209, 0x018c, 0x0133, 0xffb1,
+ 0xfe6f, 0xfddf, 0xfdfa, 0xfd3e, 0xfb80, 0xfc1c,
+ 0xfe63, 0xfe23, 0xfbe4, 0xfae0, 0xfb16, 0xfa95,
+ 0xfa06, 0xfab1, 0xfb02, 0xfa6f, 0xf9b7, 0xf8dc,
+ 0xf95a, 0xf9ef, 0xf841, 0xf7f0, 0xf931, 0xf81e,
+ 0xf7e8, 0xf9d3, 0xf9e5, 0xfa20, 0xfc57, 0xfd46,
+ 0xfc3c, 0xfb58, 0xfc22, 0xfcdf, 0xfb7f, 0xfb34,
+ 0xfc5a, 0xfb4d, 0xfa6d, 0xfb09, 0xfa42, 0xf9aa,
+ 0xfa16, 0xf9c6, 0xf981, 0xf8fd, 0xf7e9, 0xf6fe,
+ 0xf5a8, 0xf577, 0xf654, 0xf611, 0xf76b, 0xf9e3,
+ 0xf93e, 0xf86b, 0xf947, 0xf98c, 0xfa6a, 0xfb1b,
+ 0xfab4, 0xfbb3, 0xfc58, 0xfc55, 0xfecd, 0x0010,
+ 0xfdd4, 0xfcef, 0xfdd1, 0xfd7e, 0xfcf1, 0xfdd3,
+ 0xfec7, 0xfe79, 0xfed7, 0xfff7, 0xff97, 0x0065,
+ 0x0351, 0x0460, 0x0507, 0x060c, 0x04a7, 0x045b,
+ 0x04e6, 0x0195, 0xffce, 0x021a, 0x0265, 0x0181,
+ 0x0198, 0x0178, 0x0294, 0x030b, 0x0237, 0x0408,
+ 0x04bc, 0x01cc, 0x00f5, 0x00e9, 0xff18, 0xff54,
+ 0x000c, 0x004d, 0x038f, 0x056a, 0x0399, 0x0425,
+ 0x0542, 0x0316, 0x023a, 0x0327, 0x0234, 0x01a3,
+ 0x0287, 0x019f, 0xff93, 0xffef, 0x020a, 0x01c4,
+ 0xff32, 0xfeaa, 0xff77, 0xfe78, 0xfe20, 0xff04,
+ 0xfdbd, 0xfc54, 0xfd79, 0xfe6d, 0xfe3e, 0xfe74,
+ 0xfef1, 0xff80, 0xffb3, 0xfed1, 0xfdbe, 0xfdcd,
+ 0xfe7a, 0xfda5, 0xfbe9, 0xfc4a, 0xfd43, 0xfcc3,
+ 0xfd31, 0xfe2a, 0xfea4, 0x00a3, 0x0258, 0x0310,
+ 0x0518, 0x053a, 0x0406, 0x0670, 0x0792, 0x0492,
+ 0x03a6, 0x0465, 0x03f3, 0x041b, 0x0388, 0x0126,
+ 0xff8d, 0xffc0, 0x0081, 0xff97, 0xfe77, 0x0094,
+ 0x0241, 0x00b5, 0x0045, 0x0177, 0x0250, 0x02e3,
+ 0x01fb, 0x0132, 0x01e1, 0x0102, 0x0036, 0x01a2,
+ 0x01e4, 0x01ae, 0x0358, 0x049c, 0x04b0, 0x045b,
+ 0x043b, 0x0518, 0x0502, 0x03b9, 0x0338, 0x01d8,
+ 0x0054, 0x01e6, 0x03a5, 0x036a, 0x043d, 0x0600,
+ 0x06ce, 0x073a, 0x06f8, 0x059f, 0x048c, 0x03fb,
+ 0x034e, 0x0332, 0x0327, 0x01e9, 0x0124, 0x01a2,
+ 0x00f3, 0xffbf, 0xffbf, 0xff24, 0xfe40, 0xfea9,
+ 0xfeac, 0xfe45, 0xfea0, 0xfea5, 0xfeb4, 0xff42,
+ 0xff13, 0xfefb, 0xff6c, 0xfedc, 0xfe15, 0xfebc,
+ 0x002d, 0x014e, 0x01ff, 0x023f, 0x01e7, 0x020b,
+ 0x0335, 0x034d, 0x0240, 0x01df, 0x00b3, 0xfefe,
+ 0xffb6, 0x00db, 0xfff7, 0xff3c, 0xff00, 0xfdb5,
+ 0xfc3a, 0xfba1, 0xfbb3, 0xfb7c, 0xfa94, 0xf9f5,
+ 0xf92a, 0xf79e, 0xf7b3, 0xf991, 0xfa4c, 0xfaaf,
+ 0xfc71, 0xfd73, 0xfd1d, 0xfd3d, 0xfd2f, 0xfc99,
+ 0xfcb5, 0xfc54, 0xfada, 0xfab6, 0xfc1b, 0xfd2a,
+ 0xfdd4, 0xfe89, 0xff1e, 0xfeeb, 0xfdc2, 0xfd66,
+ 0xfde2, 0xfd48, 0xfce4, 0xfdba, 0xfda3, 0xfd4d,
+ 0xfe9e, 0x0026, 0x0103, 0x01c7, 0x024d, 0x02b1,
+ 0x02f8, 0x030d, 0x0356, 0x034d, 0x030d, 0x03dd,
+ 0x049a, 0x03e6, 0x03be, 0x04a6, 0x0428, 0x02a2,
+ 0x0246, 0x0279, 0x0212, 0x0162, 0x012d, 0x0209,
+ 0x02e2, 0x036a, 0x05aa, 0x0812, 0x081e, 0x0870,
+ 0x0947, 0x08f1, 0x0a4e, 0x0be2, 0x0a0b, 0x096f,
+ 0x0b6f, 0x0b3f, 0x0a58, 0x0a75, 0x0991, 0x0936,
+ 0x09ab, 0x08ba, 0x07d6, 0x07fc, 0x080e, 0x07f3,
+ 0x074e, 0x06b1, 0x06f6, 0x06fd, 0x06fb, 0x076e,
+ 0x0737, 0x0795, 0x0923, 0x08fe, 0x073e, 0x068e,
+ 0x0708, 0x0824, 0x0968, 0x0941, 0x07a7, 0x0624,
+ 0x05a0, 0x05dc, 0x056c, 0x0476, 0x0556, 0x0706,
+ 0x0686, 0x0554, 0x053f, 0x04cd, 0x03df, 0x0308,
+ 0x01d2, 0x0152, 0x01f3, 0x0232, 0x01f6, 0x01cb,
+ 0x0195, 0x014f, 0x0085, 0xff27, 0xfdfd, 0xfd2f,
+ 0xfc82, 0xfc18, 0xfc31, 0xfbd7, 0xf9f8, 0xf8e0,
+ 0xf9ad, 0xf8e5, 0xf6af, 0xf647, 0xf698, 0xf650,
+ 0xf573, 0xf3a1, 0xf303, 0xf3a5, 0xf318, 0xf362,
+ 0xf520, 0xf579, 0xf5f4, 0xf838, 0xfa62, 0xfb5d,
+ 0xfaa2, 0xf98b, 0xfa19, 0xfa70, 0xf9e2, 0xf9e5,
+ 0xf94d, 0xf8be, 0xf9d8, 0xf9cd, 0xf7ea, 0xf7c3,
+ 0xf8bc, 0xf764, 0xf55b, 0xf5e2, 0xf72c, 0xf769,
+ 0xf7e1, 0xf78c, 0xf691, 0xf81b, 0xf9ca, 0xf974,
+ 0xfb5b, 0xfea0, 0xff0b, 0xfeec, 0xff79, 0xfed0,
+ 0xfea5, 0xff9c, 0xffcb, 0x0014, 0x017e, 0x0286,
+ 0x02d1, 0x03c2, 0x0523, 0x0550, 0x045d, 0x03c2,
+ 0x041c, 0x052c, 0x05fe, 0x0626, 0x070c, 0x08b1,
+ 0x08e5, 0x081e, 0x08d5, 0x0a33, 0x0a28, 0x0a2c,
+ 0x0b9f, 0x0c6a, 0x0bc7, 0x0b3c, 0x0ad1, 0x0a2d,
+ 0x0993, 0x0962, 0x0a79, 0x0b62, 0x0a36, 0x0994,
+ 0x0aaf, 0x0a73, 0x0942, 0x0957, 0x08f0, 0x072b,
+ 0x06be, 0x0811, 0x0824, 0x06bc, 0x0653, 0x0695,
+ 0x0638, 0x056c, 0x03a4, 0x01dc, 0x01c8, 0x01ba,
+ 0x0129, 0x013f, 0x0091, 0xff68, 0xff8e, 0xffcc,
+ 0xff3f, 0xfe4c, 0xfd6d, 0xfd8a, 0xfd03, 0xfaf4,
+ 0xfa64, 0xfac5, 0xf94d, 0xf7d1, 0xf7a6, 0xf758,
+ 0xf71b, 0xf73a, 0xf6e9, 0xf6c6, 0xf7ce, 0xf8cd,
+ 0xf842, 0xf780, 0xf7f1, 0xf834, 0xf7c5, 0xf817,
+ 0xf922, 0xf967, 0xf8a9, 0xf8a3, 0xf95c, 0xf87d,
+ 0xf701, 0xf69e, 0xf596, 0xf515, 0xf696, 0xf644,
+ 0xf470, 0xf51e, 0xf616, 0xf584, 0xf616, 0xf78e,
+ 0xf875, 0xf969, 0xfa58, 0xfb5b, 0xfca8, 0xfcd7,
+ 0xfbd3, 0xfb7f, 0xfbd0, 0xfb53, 0xfae3, 0xfbfb,
+ 0xfd3d, 0xfd38, 0xfd49, 0xfe5a, 0xff41, 0xffac,
+ 0xfff6, 0xff5c, 0xfdf2, 0xfcf6, 0xfc29, 0xfafa,
+ 0xfa46, 0xfa46, 0xfa7a, 0xfabf, 0xfafa, 0xfbe0,
+ 0xfd54, 0xfd9b, 0xfd50, 0xfdba, 0xfdb0, 0xfd2b,
+ 0xfd09, 0xfd04, 0xfd11, 0xfc69, 0xfb61, 0xfbbb,
+ 0xfbce, 0xfb39, 0xfcc2, 0xfe24, 0xfd7c, 0xfe0b,
+ 0xfef0, 0xfe26, 0xfe7a, 0x000f, 0x0070, 0xffe3,
+ 0xff6e, 0xff89, 0xffee, 0xffa6, 0xff22, 0xff78,
+ 0x0082, 0x0104, 0x0084, 0x0091, 0x0153, 0x0180,
+ 0x0240, 0x03e0, 0x0483, 0x0480, 0x046e, 0x03de,
+ 0x0382, 0x0356, 0x02b8, 0x01d1, 0x00e0, 0x009f,
+ 0x00ae, 0xfffe, 0xffce, 0x007c, 0x0089, 0x0061,
+ 0x007d, 0x0078, 0x00c9, 0x0127, 0x0149, 0x01ae,
+ 0x01ac, 0x00c1, 0xffb2, 0xff3a, 0xff6a, 0xff8d,
+ 0xffc8, 0x00a6, 0x011f, 0x0135, 0x01b0, 0x0115,
+ 0xff24, 0xfdeb, 0xfdc1, 0xfddc, 0xfe56, 0xff3c,
+ 0xffe8, 0x003b, 0x00ee, 0x016d, 0x00f1, 0x00a7,
+ 0x0104, 0x01a4, 0x0277, 0x022b, 0x014f, 0x01f7,
+ 0x02bd, 0x031f, 0x04ae, 0x05f2, 0x05ff, 0x05a9,
+ 0x0467, 0x02e1, 0x01a4, 0x0016, 0xff1e, 0xfe10,
+ 0xfc0c, 0xfb3e, 0xfb9a, 0xfbac, 0xfc61, 0xfd5c,
+ 0xfd96, 0xfd76, 0xfd00, 0xfca1, 0xfc97, 0xfc4b,
+ 0xfbf0, 0xfb88, 0xfb36, 0xfb86, 0xfbff, 0xfd12,
+ 0xfed0, 0xff5a, 0xfefc, 0xfe61, 0xfcd8, 0xfc30,
+ 0xfcf8, 0xfd10, 0xfd19, 0xfd8f, 0xfd27, 0xfcd6,
+ 0xfd4d, 0xfdd1, 0xfedd, 0x0006, 0x0011, 0xffd2,
+ 0x0054, 0x00a5, 0x0052, 0x00af, 0x0163, 0x00ef,
+ 0x0076, 0x008f, 0xffae, 0xfe7d, 0xfe29, 0xfe13,
+ 0xfe56, 0xfed5, 0xfeb4, 0xfe50, 0xfe62, 0xfee3,
+ 0xfecc, 0xfdb3, 0xfd3f, 0xfd66, 0xfcdd, 0xfd09,
+ 0xfe27, 0xfe96, 0xfefc, 0xff85, 0xff8d, 0x002d,
+ 0x017e, 0x024d, 0x0233, 0x01d5, 0x02ae, 0x03b8,
+ 0x02c9, 0x0227, 0x0377, 0x03db, 0x02af, 0x01da,
+ 0x0166, 0x00eb, 0x0094, 0x005f, 0x0049, 0x003b,
+ 0x000a, 0xff77, 0xfebb, 0xfeb3, 0xff03, 0xfe84,
+ 0xfd36, 0xfbaa, 0xfa4e, 0xf974, 0xf93a, 0xf983,
+ 0xf9b3, 0xf9ab, 0xfa35, 0xfb06, 0xfb3c, 0xfb06,
+ 0xfab6, 0xfa9d, 0xfad3, 0xfa40, 0xf87b, 0xf6c7,
+ 0xf63c, 0xf6c1, 0xf76f, 0xf7f5, 0xf8c8, 0xf988,
+ 0xfa01, 0xfb3f, 0xfd00, 0xfdde, 0xfe21, 0xfe88,
+ 0xfec7, 0xff3b, 0x0092, 0x01fe, 0x02d4, 0x0377,
+ 0x0353, 0x0235, 0x0197, 0x0185, 0x0136, 0x016c,
+ 0x01c9, 0x0151, 0x0124, 0x013e, 0x005e, 0x000b,
+ 0x0133, 0x01ce, 0x01f6, 0x033a, 0x04b4, 0x05e0,
+ 0x0738, 0x07c7, 0x07e1, 0x08d9, 0x098d, 0x0973,
+ 0x09dd, 0x0a6a, 0x0a56, 0x0a16, 0x0a26, 0x0aea,
+ 0x0b7c, 0x0b20, 0x0b77, 0x0c8b, 0x0cdb, 0x0d4b,
+ 0x0e59, 0x0f36, 0x0fe5, 0x0fee, 0x0fb8, 0x1068,
+ 0x10e8, 0x10d6, 0x10fd, 0x10a7, 0x1040, 0x1082,
+ 0x1045, 0x0fb1, 0x0f3c, 0x0e2c, 0x0d08, 0x0c44,
+ 0x0ba4, 0x0b60, 0x0b02, 0x0ad7, 0x0b75, 0x0b7a,
+ 0x0afa, 0x0b2b, 0x0b0d, 0x0a75, 0x0a13, 0x0969,
+ 0x0929, 0x0950, 0x0863, 0x075b, 0x06d8, 0x05a5,
+ 0x04cb, 0x04c5, 0x0409, 0x0330, 0x02c5, 0x01e0,
+ 0x0158, 0x010c, 0xff99, 0xfe73, 0xfe5a, 0xfdce,
+ 0xfd7a, 0xfdb1, 0xfd14, 0xfc6a, 0xfc06, 0xfaa8,
+ 0xf918, 0xf814, 0xf750, 0xf758, 0xf7d5, 0xf860,
+ 0xf922, 0xf8f9, 0xf860, 0xf894, 0xf845, 0xf7b6,
+ 0xf811, 0xf809, 0xf7fe, 0xf868, 0xf7a2, 0xf6ee,
+ 0xf756, 0xf6e9, 0xf663, 0xf6de, 0xf72b, 0xf79e,
+ 0xf837, 0xf7e7, 0xf76c, 0xf6e1, 0xf5a7, 0xf488,
+ 0xf3fe, 0xf427, 0xf4e1, 0xf55a, 0xf5f2, 0xf6dd,
+ 0xf6fa, 0xf69f, 0xf68b, 0xf647, 0xf5f4, 0xf5c1,
+ 0xf5a3, 0xf63b, 0xf740, 0xf800, 0xf8ee, 0xfa39,
+ 0xfb90, 0xfcb8, 0xfd3e, 0xfd95, 0xfe51, 0xfe93,
+ 0xfe59, 0xfeb3, 0xff54, 0x0035, 0x01fe, 0x03c1,
+ 0x04eb, 0x0612, 0x068f, 0x0675, 0x070e, 0x0770,
+ 0x06a5, 0x0640, 0x06ca, 0x0715, 0x070f, 0x077d,
+ 0x086c, 0x095d, 0x0a41, 0x0b22, 0x0b56, 0x0b24,
+ 0x0ba0, 0x0c0f, 0x0bbb, 0x0bc7, 0x0c75, 0x0d0f,
+ 0x0d89, 0x0dcd, 0x0df0, 0x0e49, 0x0e8a, 0x0e65,
+ 0x0dec, 0x0d3d, 0x0cb2, 0x0c6f, 0x0c63, 0x0cc3,
+ 0x0d57, 0x0de1, 0x0e85, 0x0e83, 0x0d5e, 0x0c55,
+ 0x0bd4, 0x0acc, 0x0999, 0x0934, 0x0919, 0x08d0,
+ 0x08a0, 0x0828, 0x0722, 0x0649, 0x0643, 0x0695,
+ 0x0623, 0x053a, 0x04ec, 0x0481, 0x038a, 0x0326,
+ 0x02a8, 0x0127, 0x0049, 0x008d, 0x0089, 0x0025,
+ 0xffdd, 0xffc8, 0xffdd, 0xff8f, 0xfec0, 0xfdf6,
+ 0xfd57, 0xfcfb, 0xfcc4, 0xfc37, 0xfb4e, 0xfa50,
+ 0xf983, 0xf902, 0xf8a8, 0xf89e, 0xf8c4, 0xf895,
+ 0xf859, 0xf832, 0xf7e8, 0xf7ee, 0xf7f6, 0xf776,
+ 0xf744, 0xf762, 0xf742, 0xf7cc, 0xf8d3, 0xf8d7,
+ 0xf867, 0xf8cb, 0xf977, 0xf9ba, 0xf9e5, 0xfa45,
+ 0xfaf5, 0xfbfc, 0xfcdf, 0xfd2b, 0xfd05, 0xfcaa,
+ 0xfc73, 0xfc71, 0xfc4c, 0xfc9f, 0xfde0, 0xfe9f,
+ 0xfe2a, 0xfd83, 0xfcf8, 0xfc8f, 0xfc5b, 0xfbd0,
+ 0xfb38, 0xfb6e, 0xfc3c, 0xfd5f, 0xfeae, 0xff82,
+ 0xffc4, 0xffcb, 0xff71, 0xfeb1, 0xfe4b, 0xfed9,
+ 0xffa5, 0xffc5, 0xff7d, 0xff01, 0xfe69, 0xfea8,
+ 0xffa5, 0x0003, 0xfff0, 0x0064, 0x00f3, 0x00f6,
+ 0x00d1, 0x0103, 0x0160, 0x01b5, 0x0221, 0x0291,
+ 0x02e9, 0x033e, 0x0346, 0x02a6, 0x019d, 0x00a3,
+ 0xffef, 0xff5c, 0xfec4, 0xfe73, 0xfeac, 0xff00,
+ 0xff4c, 0x001a, 0x011c, 0x015e, 0x0175, 0x023a,
+ 0x02bf, 0x0289, 0x0275, 0x0270, 0x0228, 0x023e,
+ 0x02c4, 0x0382, 0x0490, 0x054f, 0x0562, 0x056d,
+ 0x0574, 0x0511, 0x0498, 0x0425, 0x0350, 0x0238,
+ 0x0155, 0x00f8, 0x0167, 0x023b, 0x0287, 0x026e,
+ 0x027b, 0x022a, 0x015e, 0x0096, 0xff9f, 0xfecb,
+ 0xfea2, 0xfe18, 0xfce5, 0xfc69, 0xfca3, 0xfca8,
+ 0xfc83, 0xfc29, 0xfb8e, 0xfb40, 0xfb4e, 0xfb95,
+ 0xfc67, 0xfd9b, 0xfea5, 0xff21, 0xfed6, 0xfe30,
+ 0xfddf, 0xfdef, 0xfe46, 0xfebf, 0xfecd, 0xfe78,
+ 0xfe44, 0xfe29, 0xfe22, 0xfe6e, 0xfeb2, 0xfeca,
+ 0xff35, 0xffb1, 0xffa6, 0xff93, 0xffad, 0xff23,
+ 0xfe13, 0xfd68, 0xfd28, 0xfd3a, 0xfde5, 0xfeb5,
+ 0xff37, 0xff9a, 0xffc1, 0xffad, 0xff8b, 0xff32,
+ 0xff3d, 0x0063, 0x01c5, 0x02b2, 0x035d, 0x0365,
+ 0x02e6, 0x029d, 0x0267, 0x0275, 0x0345, 0x0433,
+ 0x04d3, 0x054b, 0x0549, 0x04ff, 0x04cd, 0x0476,
+ 0x0441, 0x045d, 0x045b, 0x047c, 0x04e2, 0x04fa,
+ 0x04c7, 0x0462, 0x03d9, 0x03a6, 0x038f, 0x0358,
+ 0x0366, 0x0321, 0x0203, 0x00e8, 0x0016, 0xff58,
+ 0xfeee, 0xfeab, 0xfeb0, 0xff6c, 0x0035, 0x00b5,
+ 0x016e, 0x021b, 0x0266, 0x02a8, 0x02f7, 0x0312,
+ 0x02b5, 0x0216, 0x01c0, 0x014e, 0x0052, 0xff66,
+ 0xfedd, 0xfed2, 0xff89, 0x0050, 0x0098, 0x00cc,
+ 0x00db, 0x0060, 0xff4f, 0xfd9d, 0xfbcf, 0xfa9b,
+ 0xfa1f, 0xfa3b, 0xfa90, 0xfae1, 0xfb6b, 0xfbd2,
+ 0xfbd8, 0xfbdd, 0xfb47, 0xf9d8, 0xf8c5, 0xf835,
+ 0xf7a7, 0xf751, 0xf6e8, 0xf68f, 0xf6f1, 0xf72e,
+ 0xf6c9, 0xf699, 0xf688, 0xf6b1, 0xf78c, 0xf83f,
+ 0xf8de, 0xfa1b, 0xfad8, 0xfae0, 0xfb37, 0xfb56,
+ 0xfb4c, 0xfc10, 0xfce1, 0xfd21, 0xfd37, 0xfce1,
+ 0xfc5c, 0xfc67, 0xfcb3, 0xfcef, 0xfd46, 0xfd93,
+ 0xfdb4, 0xfdd5, 0xfe62, 0xff38, 0xff80, 0xff86,
+ 0xfffa, 0x0030, 0x0035, 0x00e4, 0x01b4, 0x025f,
+ 0x0370, 0x044a, 0x0489, 0x0516, 0x063d, 0x0761,
+ 0x0826, 0x08ce, 0x0981, 0x09c4, 0x09c8, 0x0a5b,
+ 0x0b0a, 0x0b6a, 0x0c24, 0x0d10, 0x0da0, 0x0e21,
+ 0x0e81, 0x0e72, 0x0e3b, 0x0e1b, 0x0e27, 0x0e47,
+ 0x0e2c, 0x0dbb, 0x0cf8, 0x0c3a, 0x0c26, 0x0ca5,
+ 0x0d4f, 0x0e18, 0x0e68, 0x0e10, 0x0dfa, 0x0e1e,
+ 0x0df1, 0x0dfd, 0x0dfb, 0x0cf4, 0x0ba8, 0x0b06,
+ 0x0ab9, 0x0aca, 0x0b25, 0x0af7, 0x0a79, 0x0a5b,
+ 0x0a3f, 0x09e9, 0x097a, 0x08cb, 0x080a, 0x0752,
+ 0x0679, 0x05f4, 0x05f8, 0x060d, 0x0625, 0x061d,
+ 0x0587, 0x04ce, 0x0469, 0x03d1, 0x029d, 0x0142,
+ 0x0040, 0xff67, 0xfe49, 0xfced, 0xfba0, 0xfab3,
+ 0xfa33, 0xf988, 0xf893, 0xf814, 0xf81b, 0xf834,
+ 0xf84d, 0xf82d, 0xf7e9, 0xf823, 0xf8a5, 0xf8f6,
+ 0xf961, 0xf9e6, 0xfa2c, 0xfa56, 0xfa69, 0xfa28,
+ 0xf981, 0xf898, 0xf7c2, 0xf73c, 0xf6fc, 0xf72a,
+ 0xf7d0, 0xf889, 0xf942, 0xf9c6, 0xf958, 0xf845,
+ 0xf78a, 0xf6e4, 0xf5fa, 0xf57d, 0xf541, 0xf473,
+ 0xf367, 0xf2b2, 0xf24a, 0xf242, 0xf2ae, 0xf357,
+ 0xf3f2, 0xf467, 0xf4f1, 0xf572, 0xf57b, 0xf556,
+ 0xf579, 0xf5b4, 0xf5e6, 0xf617, 0xf65d, 0xf6ea,
+ 0xf774, 0xf7df, 0xf8b5, 0xf9ca, 0xfa89, 0xfb1a,
+ 0xfb76, 0xfb6a, 0xfb7a, 0xfbf9, 0xfcc8, 0xfe15,
+ 0xffb3, 0x00e4, 0x0193, 0x0264, 0x0363, 0x03d4,
+ 0x0378, 0x02c1, 0x0221, 0x0230, 0x031d, 0x0429,
+ 0x050b, 0x060a, 0x06ad, 0x06e5, 0x0778, 0x0838,
+ 0x08db, 0x09d8, 0x0ae0, 0x0b8a, 0x0c44, 0x0ce7,
+ 0x0d27, 0x0d5e, 0x0d74, 0x0d76, 0x0de9, 0x0e5c,
+ 0x0e61, 0x0e2f, 0x0d8c, 0x0cba, 0x0c5f, 0x0c0c,
+ 0x0bbf, 0x0c2e, 0x0cfe, 0x0da7, 0x0e1c, 0x0e22,
+ 0x0e0a, 0x0e1d, 0x0df8, 0x0dd7, 0x0df2, 0x0dc6,
+ 0x0d5b, 0x0cc1, 0x0bcb, 0x0b08, 0x0aa7, 0x09ef,
+ 0x08f8, 0x088b, 0x08b3, 0x08dd, 0x08cf, 0x08c4,
+ 0x0885, 0x07a6, 0x0662, 0x0501, 0x03b1, 0x02eb,
+ 0x02cf, 0x032a, 0x03bc, 0x03cb, 0x02ff, 0x021d,
+ 0x01a8, 0x014f, 0x00ab, 0xffb2, 0xfe99, 0xfd50,
+ 0xfbb1, 0xfa3e, 0xf97a, 0xf953, 0xf980, 0xf9c3,
+ 0xfa2d, 0xfae3, 0xfb6f, 0xfb69, 0xfb38, 0xfb05,
+ 0xfa6b, 0xf985, 0xf8bf, 0xf833, 0xf817, 0xf863,
+ 0xf871, 0xf846, 0xf87c, 0xf8dc, 0xf930, 0xf985,
+ 0xf948, 0xf8bb, 0xf8e3, 0xf97f, 0xf9fe, 0xfa70,
+ 0xfa92, 0xfa96, 0xfae9, 0xfb1f, 0xfb05, 0xfadb,
+ 0xfab5, 0xfada, 0xfaf6, 0xfa7c, 0xf9fa, 0xf9c6,
+ 0xf99d, 0xf9c9, 0xfa28, 0xfa5d, 0xfac5, 0xfb3f,
+ 0xfb75, 0xfbd1, 0xfc2b, 0xfbea, 0xfb82, 0xfb93,
+ 0xfbe9, 0xfc17, 0xfc1a, 0xfc36, 0xfc82, 0xfcd7,
+ 0xfd0b, 0xfd29, 0xfd88, 0xfe18, 0xfe23, 0xfda9,
+ 0xfd59, 0xfd29, 0xfca4, 0xfbe1, 0xfb28, 0xfa9f,
+ 0xfa5f, 0xfa6a, 0xfaa6, 0xfaf4, 0xfb3d, 0xfb6e,
+ 0xfb96, 0xfbed, 0xfc6c, 0xfce1, 0xfd5c, 0xfddd,
+ 0xfe3c, 0xfe9f, 0xff37, 0xffc1, 0x000e, 0x006d,
+ 0x011a, 0x020c, 0x02eb, 0x0321, 0x02c5, 0x02aa,
+ 0x02cb, 0x02a1, 0x027c, 0x02b4, 0x0311, 0x035b,
+ 0x032b, 0x026e, 0x01c0, 0x014c, 0x00fc, 0x0122,
+ 0x017c, 0x0178, 0x013f, 0x00fd, 0x008e, 0x000a,
+ 0xffa3, 0xff81, 0xffa1, 0xffad, 0xff95, 0xff9e,
+ 0xffc9, 0xfff3, 0x001e, 0x0051, 0x007e, 0x0098,
+ 0x0098, 0x00a6, 0x00c5, 0x00a2, 0x0032, 0xffad,
+ 0xfef5, 0xfe22, 0xfdec, 0xfe8d, 0xff73, 0x003d,
+ 0x0103, 0x01c2, 0x021f, 0x01f4, 0x01d2, 0x01fa,
+ 0x01de, 0x0176, 0x013f, 0x012f, 0x0114, 0x00de,
+ 0x0061, 0xffa4, 0xfecf, 0xfe0c, 0xfd98, 0xfd80,
+ 0xfdca, 0xfe6c, 0xfed3, 0xfeba, 0xfeab, 0xfedb,
+ 0xfeff, 0xff21, 0xff56, 0xff7e, 0xff8d, 0xff95,
+ 0xffca, 0x0065, 0x013e, 0x0209, 0x02c2, 0x032d,
+ 0x0301, 0x02ad, 0x0269, 0x01c2, 0x012d, 0x013a,
+ 0x0126, 0x0099, 0x0048, 0x005c, 0x0095, 0x00e6,
+ 0x0138, 0x017a, 0x0191, 0x0192, 0x018b, 0x0117,
+ 0x005a, 0xffd5, 0xff3b, 0xfeb3, 0xfeb5, 0xfec5,
+ 0xfeef, 0xff83, 0xffcd, 0xffb8, 0xffa9, 0xff5a,
+ 0xff20, 0xff36, 0xff18, 0xff1c, 0xff7f, 0xffbd,
+ 0xffef, 0x0009, 0xffbc, 0xff75, 0xff63, 0xff4c,
+ 0xff66, 0xffac, 0xfffb, 0x0044, 0x003b, 0x0010,
+ 0x0025, 0x004a, 0x0067, 0x0080, 0x0057, 0xfffa,
+ 0xff76, 0xfead, 0xfdd2, 0xfd0d, 0xfc53, 0xfbc3,
+ 0xfb5f, 0xfb26, 0xfb4f, 0xfb9c, 0xfb6b, 0xfabc,
+ 0xfa10, 0xf9bd, 0xf9e0, 0xfa31, 0xfa10, 0xf967,
+ 0xf8c8, 0xf878, 0xf85d, 0xf851, 0xf85d, 0xf8b8,
+ 0xf931, 0xf955, 0xf962, 0xf9a9, 0xfa0b, 0xfa7e,
+ 0xfaca, 0xfaa2, 0xfa4b, 0xfa14, 0xfa2c, 0xfa9b,
+ 0xfad9, 0xfada, 0xfb2d, 0xfb76, 0xfb4d, 0xfb2e,
+ 0xfb1c, 0xfad2, 0xfa99, 0xfa89, 0xfa9c, 0xfada,
+ 0xfae9, 0xfac7, 0xfacb, 0xfad0, 0xfad5, 0xfb43,
+ 0xfbfe, 0xfcab, 0xfd45, 0xfde0, 0xfe93, 0xff69,
+ 0x0050, 0x0143, 0x0214, 0x0289, 0x02e4, 0x0350,
+ 0x037c, 0x0390, 0x03f9, 0x043b, 0x03e8, 0x03bf,
+ 0x046a, 0x0594, 0x06bb, 0x07d2, 0x0907, 0x0a0e,
+ 0x0a4d, 0x0a16, 0x0a35, 0x0a7c, 0x0a91, 0x0ad0,
+ 0x0b2f, 0x0b31, 0x0ae1, 0x0a94, 0x0a73, 0x0aa9,
+ 0x0b2b, 0x0bbb, 0x0c23, 0x0c2c, 0x0bd1, 0x0b59,
+ 0x0b21, 0x0b68, 0x0c16, 0x0cd6, 0x0d7d, 0x0dd6,
+ 0x0d9b, 0x0d2a, 0x0d18, 0x0d27, 0x0ce9, 0x0cc3,
+ 0x0d14, 0x0d6d, 0x0d4b, 0x0c9b, 0x0b89, 0x0a8b,
+ 0x09f5, 0x098c, 0x093c, 0x093a, 0x094b, 0x092a,
+ 0x08e0, 0x0843, 0x0764, 0x06b3, 0x062f, 0x05ae,
+ 0x052a, 0x0478, 0x03a7, 0x02e5, 0x0209, 0x0132,
+ 0x009f, 0x0027, 0xffbe, 0xff63, 0xfef3, 0xfea1,
+ 0xfe9d, 0xfec0, 0xff04, 0xff2b, 0xfeeb, 0xfe81,
+ 0xfe1c, 0xfde7, 0xfe49, 0xfee3, 0xff12, 0xfeec,
+ 0xfe5f, 0xfd59, 0xfc7d, 0xfc24, 0xfc22, 0xfc71,
+ 0xfcd7, 0xfcf1, 0xfcb3, 0xfc5a, 0xfc1b, 0xfbc4,
+ 0xfb22, 0xfa73, 0xf9c4, 0xf919, 0xf8ca, 0xf8b2,
+ 0xf894, 0xf8cf, 0xf91c, 0xf8c3, 0xf81d, 0xf7c0,
+ 0xf79d, 0xf794, 0xf78d, 0xf76a, 0xf74c, 0xf758,
+ 0xf782, 0xf7b9, 0xf81c, 0xf8d7, 0xf9ba, 0xfa6b,
+ 0xfada, 0xfb48, 0xfbfa, 0xfce3, 0xfddb, 0xfec7,
+ 0xff44, 0xff57, 0xffa1, 0x001a, 0x007a, 0x0103,
+ 0x0184, 0x017e, 0x0124, 0x00d9, 0x00da, 0x0145,
+ 0x01fd, 0x02ed, 0x03ce, 0x0452, 0x049f, 0x04b2,
+ 0x0483, 0x0488, 0x04c7, 0x0517, 0x05c8, 0x06ad,
+ 0x076a, 0x0800, 0x083c, 0x083d, 0x084c, 0x0804,
+ 0x0770, 0x073c, 0x0732, 0x06dd, 0x0665, 0x05f1,
+ 0x059e, 0x05b2, 0x0634, 0x06f2, 0x07c9, 0x0879,
+ 0x08c3, 0x08d7, 0x08d9, 0x08a2, 0x0839, 0x07b2,
+ 0x074a, 0x07a1, 0x0883, 0x0925, 0x09c6, 0x0aa0,
+ 0x0b15, 0x0af4, 0x0a71, 0x09a2, 0x08c5, 0x07f9,
+ 0x076c, 0x073a, 0x072d, 0x0776, 0x07d5, 0x0748,
+ 0x0663, 0x0655, 0x0681, 0x063f, 0x05c6, 0x0507,
+ 0x0439, 0x03b1, 0x031e, 0x0271, 0x0212, 0x0218,
+ 0x023d, 0x023d, 0x0247, 0x028a, 0x0293, 0x01f6,
+ 0x00d6, 0xffa9, 0xff08, 0xfef2, 0xfe9d, 0xfde7,
+ 0xfd63, 0xfd17, 0xfd17, 0xfddb, 0xfed9, 0xfef8,
+ 0xfe7d, 0xfe20, 0xfdb2, 0xfd27, 0xfce1, 0xfcf0,
+ 0xfd32, 0xfd5f, 0xfd25, 0xfc73, 0xfb7d, 0xfab0,
+ 0xfa4d, 0xfa29, 0xfa25, 0xfa1f, 0xfa00, 0xfa2b,
+ 0xfa9c, 0xfae6, 0xfb0f, 0xfb04, 0xfabe, 0xfabd,
+ 0xfaff, 0xfb59, 0xfbee, 0xfc5e, 0xfc5f, 0xfc3c,
+ 0xfc23, 0xfc53, 0xfce3, 0xfd89, 0xfe50, 0xff32,
+ 0xffde, 0x0058, 0x00a6, 0x00c1, 0x00c5, 0x00bf,
+ 0x00d5, 0x00fb, 0x010f, 0x015d, 0x01f2, 0x029b,
+ 0x0374, 0x03fd, 0x03d3, 0x0380, 0x031b, 0x02af,
+ 0x02b9, 0x02e7, 0x02dc, 0x02d8, 0x02b0, 0x0248,
+ 0x01eb, 0x019b, 0x016e, 0x0155, 0x00e9, 0x0043,
+ 0xffd2, 0xffa7, 0xff97, 0xff8f, 0xff8d, 0xff74,
+ 0xff46, 0xff2f, 0xff11, 0xfef8, 0xff20, 0xff23,
+ 0xfea4, 0xfde8, 0xfd3f, 0xfcf0, 0xfd03, 0xfd41,
+ 0xfda7, 0xfdfc, 0xfdfd, 0xfdd9, 0xfd9a, 0xfd4f,
+ 0xfd3e, 0xfd47, 0xfd38, 0xfd0b, 0xfcd0, 0xfcbc,
+ 0xfca4, 0xfc4b, 0xfbf0, 0xfb75, 0xfac3, 0xfa36,
+ 0xf9bb, 0xf976, 0xf9ac, 0xf9af, 0xf934, 0xf8a2,
+ 0xf800, 0xf785, 0xf783, 0xf7dc, 0xf851, 0xf862,
+ 0xf803, 0xf7d4, 0xf7ee, 0xf845, 0xf8f2, 0xf96f,
+ 0xf984, 0xf992, 0xf9d5, 0xfa67, 0xfae0, 0xfae2,
+ 0xfae9, 0xfb10, 0xfb01, 0xfb15, 0xfbb5, 0xfcab,
+ 0xfd56, 0xfd6e, 0xfd76, 0xfda3, 0xfdd0, 0xfe1f,
+ 0xfe42, 0xfe27, 0xfe69, 0xfef0, 0xff88, 0x004b,
+ 0x00c4, 0x010b, 0x0188, 0x01ce, 0x01dc, 0x0212,
+ 0x0249, 0x029f, 0x032d, 0x03b1, 0x03f7, 0x03b4,
+ 0x0316, 0x0292, 0x0205, 0x019c, 0x01a0, 0x01a4,
+ 0x01a9, 0x01f7, 0x023b, 0x0254, 0x0267, 0x027a,
+ 0x0296, 0x029d, 0x02b1, 0x02fd, 0x032e, 0x0321,
+ 0x02e7, 0x0263, 0x01cc, 0x0170, 0x015e, 0x018c,
+ 0x01ac, 0x01a6, 0x019b, 0x0150, 0x00c3, 0x002b,
+ 0xff9d, 0xff99, 0x0051, 0x00ff, 0x0126, 0x0110,
+ 0x0111, 0x0127, 0x010a, 0x00af, 0x002c, 0xff82,
+ 0xfef8, 0xfedc, 0xff1e, 0xff94, 0xffe3, 0xffce,
+ 0xffb3, 0xfff2, 0x0075, 0x00da, 0x00ea, 0x00f1,
+ 0x0119, 0x0120, 0x00ee, 0x0094, 0x004a, 0x001f,
+ 0xffcb, 0xff5a, 0xfeec, 0xfe8e, 0xfed6, 0xffc1,
+ 0x0075, 0x00c0, 0x0088, 0xffcd, 0xff3e, 0xfec8,
+ 0xfe17, 0xfdd3, 0xfe17, 0xfe76, 0xfed3, 0xfeae,
+ 0xfe0a, 0xfdad, 0xfd90, 0xfd73, 0xfd58, 0xfd14,
+ 0xfcf9, 0xfd6b, 0xfe19, 0xfea4, 0xfed2, 0xfe7e,
+ 0xfde4, 0xfd63, 0xfd5b, 0xfdcf, 0xfe3e, 0xfe5d,
+ 0xfe05, 0xfd2d, 0xfc77, 0xfc5e, 0xfc99, 0xfce0,
+ 0xfcf3, 0xfca6, 0xfc2f, 0xfbc3, 0xfb61, 0xfb1f,
+ 0xfafc, 0xfabd, 0xfa5a, 0xfa37, 0xfa6c, 0xfa9b,
+ 0xfab9, 0xfae4, 0xfb06, 0xfb0c, 0xfac4, 0xfa32,
+ 0xf9f6, 0xfa40, 0xfab0, 0xfb1c, 0xfb83, 0xfc03,
+ 0xfc9a, 0xfced, 0xfd16, 0xfd65, 0xfdb6, 0xfe21,
+ 0xfe98, 0xfea8, 0xfe99, 0xfed3, 0xfef0, 0xfec8,
+ 0xfec3, 0xff17, 0xffac, 0x0056, 0x00f1, 0x0164,
+ 0x01cd, 0x0234, 0x0224, 0x01c1, 0x01f5, 0x02cb,
+ 0x03af, 0x0470, 0x04c8, 0x04c6, 0x04f2, 0x052e,
+ 0x0540, 0x056b, 0x05b0, 0x05f0, 0x0635, 0x0651,
+ 0x0641, 0x0664, 0x06ff, 0x07de, 0x0862, 0x0843,
+ 0x07fc, 0x0813, 0x0898, 0x0951, 0x09f4, 0x0a35,
+ 0x0a0b, 0x09d3, 0x09b3, 0x0952, 0x08b2, 0x084e,
+ 0x083f, 0x0847, 0x0831, 0x07ed, 0x07b6, 0x079b,
+ 0x075b, 0x06f8, 0x06b1, 0x0693, 0x0683, 0x065e,
+ 0x0621, 0x05e5, 0x059e, 0x053e, 0x04f3, 0x04ce,
+ 0x0494, 0x0427, 0x03b7, 0x0364, 0x0322, 0x02f3,
+ 0x02e2, 0x02e1, 0x02e6, 0x02d7, 0x028d, 0x0218,
+ 0x01aa, 0x015c, 0x0141, 0x0177, 0x01ad, 0x015d,
+ 0x00b8, 0x0037, 0xffd0, 0xff78, 0xff28, 0xfea1,
+ 0xfe27, 0xfe0e, 0xfe0d, 0xfe2a, 0xfe8d, 0xfee0,
+ 0xfed5, 0xfe58, 0xfda5, 0xfd4d, 0xfd44, 0xfd15,
+ 0xfcd5, 0xfc94, 0xfc3e, 0xfc0a, 0xfc0c, 0xfc3e,
+ 0xfc82, 0xfc71, 0xfc10, 0xfbd8, 0xfbef, 0xfc37,
+ 0xfc84, 0xfcaa, 0xfcb3, 0xfcb2, 0xfcc5, 0xfd16,
+ 0xfd86, 0xfdff, 0xfea1, 0xff5b, 0x0019, 0x00c2,
+ 0x010b, 0x00ff, 0x00f8, 0x0113, 0x012b, 0x0111,
+ 0x0100, 0x017b, 0x0264, 0x032a, 0x039f, 0x03de,
+ 0x040d, 0x042f, 0x0434, 0x045f, 0x04ea, 0x0586,
+ 0x05f2, 0x062b, 0x0601, 0x058a, 0x0556, 0x0583,
+ 0x0581, 0x051a, 0x04cb, 0x04af, 0x043c, 0x036d,
+ 0x02f4, 0x0347, 0x0451, 0x0589, 0x063c, 0x0649,
+ 0x060c, 0x05ca, 0x058c, 0x050f, 0x042d, 0x0368,
+ 0x0340, 0x038d, 0x0419, 0x04bb, 0x050c, 0x04e6,
+ 0x048a, 0x0427, 0x03d1, 0x03b7, 0x03f1, 0x043b,
+ 0x0435, 0x0411, 0x0430, 0x0460, 0x0490, 0x050e,
+ 0x05a5, 0x061a, 0x06a9, 0x070f, 0x06e8, 0x0684,
+ 0x0616, 0x05af, 0x0577, 0x0521, 0x04a5, 0x048e,
+ 0x04a9, 0x0476, 0x040e, 0x0373, 0x028d, 0x0191,
+ 0x00b6, 0x002f, 0x001d, 0x0083, 0x012c, 0x0189,
+ 0x017b, 0x017b, 0x019b, 0x01de, 0x023f, 0x020e,
+ 0x0124, 0x0051, 0xffdc, 0xff90, 0xff59, 0xff17,
+ 0xfeeb, 0xfefe, 0xff0e, 0xff07, 0xff13, 0xff1a,
+ 0xfef3, 0xfeb4, 0xfe8b, 0xfe52, 0xfdc7, 0xfd34,
+ 0xfcf2, 0xfce7, 0xfd16, 0xfd97, 0xfe1e, 0xfe46,
+ 0xfe18, 0xfdd6, 0xfd81, 0xfd31, 0xfd53, 0xfe00,
+ 0xfef3, 0xffda, 0x0025, 0xffae, 0xfef2, 0xfe54,
+ 0xfe22, 0xfe80, 0xff32, 0x0024, 0x0122, 0x01b8,
+ 0x01f3, 0x01dc, 0x0167, 0x0101, 0x00a9, 0x0049,
+ 0x0057, 0x009d, 0x00ac, 0x00d8, 0x012e, 0x0174,
+ 0x01bb, 0x01d9, 0x01db, 0x020e, 0x0226, 0x01c3,
+ 0x012b, 0x00d2, 0x00c0, 0x00a2, 0x0053, 0xfff6,
+ 0xffa5, 0xff7d, 0xffa2, 0x002f, 0x00f8, 0x016e,
+ 0x015d, 0x0111, 0x00ad, 0x002c, 0xff90, 0xff05,
+ 0xfefa, 0xff55, 0xffa0, 0xffd7, 0xfff9, 0xfff4,
+ 0xffd9, 0xffae, 0xffb3, 0x000c, 0x005a, 0x006e,
+ 0x0042, 0xfff5, 0x001d, 0x00e3, 0x01ea, 0x02e8,
+ 0x033c, 0x02e8, 0x02d0, 0x02e1, 0x0292, 0x0209,
+ 0x0159, 0x00a3, 0x0027, 0xffcd, 0xff93, 0xffa0,
+ 0xfff6, 0x0073, 0x00c7, 0x00c5, 0x0074, 0xffed,
+ 0xff98, 0xff61, 0xfee7, 0xfe8d, 0xfe70, 0xfe30,
+ 0xfdfa, 0xfdf0, 0xfe2e, 0xfee1, 0xff5c, 0xff33,
+ 0xfec9, 0xfe22, 0xfd6f, 0xfd2b, 0xfd1f, 0xfd09,
+ 0xfcf6, 0xfcee, 0xfd25, 0xfd94, 0xfe04, 0xfe54,
+ 0xfe29, 0xfda3, 0xfd8a, 0xfe18, 0xfee6, 0xff62,
+ 0xff44, 0xff02, 0xff0a, 0xff3f, 0xff43, 0xfef2,
+ 0xfecd, 0xff0e, 0xff1f, 0xfee5, 0xfeae, 0xfe81,
+ 0xfe8a, 0xfe96, 0xfe4b, 0xfe29, 0xfe5d, 0xfe99,
+ 0xfeee, 0xff28, 0xff3d, 0xffb8, 0x0062, 0x0093,
+ 0x0050, 0xffd9, 0xff75, 0xff5d, 0xff52, 0xfefe,
+ 0xfe72, 0xfe09, 0xfdde, 0xfdcc, 0xfdf4, 0xfe34,
+ 0xfe14, 0xfdc6, 0xfd7e, 0xfcf0, 0xfc47, 0xfbe3,
+ 0xfbc3, 0xfc08, 0xfc90, 0xfcd7, 0xfcbf, 0xfc80,
+ 0xfc4d, 0xfc37, 0xfc35, 0xfc86, 0xfd44, 0xfdd4,
+ 0xfdbe, 0xfd35, 0xfc98, 0xfc22, 0xfbe3, 0xfba3,
+ 0xfb39, 0xfaf5, 0xfb36, 0xfbc4, 0xfc49, 0xfca9,
+ 0xfce0, 0xfd30, 0xfdc8, 0xfe3b, 0xfe45, 0xfe14,
+ 0xfdcb, 0xfd8d, 0xfd6d, 0xfd5f, 0xfd96, 0xfe35,
+ 0xff00, 0xffa1, 0xffe1, 0xffd6, 0xffc3, 0xffa9,
+ 0xff72, 0xff26, 0xfedf, 0xfedc, 0xff19, 0xff5b,
+ 0xff99, 0xffb7, 0xff95, 0xff81, 0xff98, 0xff9c,
+ 0xff88, 0xff6f, 0xff61, 0xff75, 0xff7e, 0xff55,
+ 0xff3d, 0xff5f, 0xff78, 0xff3d, 0xfece, 0xfe8e,
+ 0xfea9, 0xff07, 0xff77, 0xffdd, 0x0040, 0x009e,
+ 0x00d5, 0x00d9, 0x00b8, 0x0083, 0x0038, 0xffcb,
+ 0xff5c, 0xff24, 0xff51, 0xfffb, 0x00c7, 0x0133,
+ 0x0125, 0x00d2, 0x0090, 0x009a, 0x00bd, 0x00fe,
+ 0x016f, 0x0185, 0x0108, 0x007b, 0x0022, 0xffe9,
+ 0xff91, 0xfefe, 0xfeac, 0xfef1, 0xff9a, 0x0066,
+ 0x00ea, 0x00f5, 0x00eb, 0x00f5, 0x0115, 0x0163,
+ 0x01b4, 0x0221, 0x02f0, 0x03e3, 0x04a2, 0x04fb,
+ 0x04f2, 0x04e0, 0x04d2, 0x04ae, 0x0496, 0x047b,
+ 0x0468, 0x0469, 0x0431, 0x03da, 0x03d4, 0x0447,
+ 0x052c, 0x05e5, 0x05da, 0x058b, 0x057f, 0x05b1,
+ 0x0602, 0x0607, 0x05c2, 0x05a4, 0x0594, 0x0588,
+ 0x059b, 0x0572, 0x051c, 0x04df, 0x0472, 0x03e9,
+ 0x03a3, 0x0397, 0x03a4, 0x03a5, 0x037c, 0x0333,
+ 0x02de, 0x02a8, 0x0293, 0x027f, 0x026f, 0x0223,
+ 0x01a0, 0x015d, 0x0135, 0x00ec, 0x00d8, 0x00dc,
+ 0x00c3, 0x00bb, 0x00a3, 0x007a, 0x008c, 0x00a8,
+ 0x0081, 0x0008, 0xff61, 0xfee4, 0xfeaa, 0xfe80,
+ 0xfe54, 0xfe29, 0xfe14, 0xfdfc, 0xfd80, 0xfca7,
+ 0xfbf1, 0xfba4, 0xfb9c, 0xfb9d, 0xfb8e, 0xfb53,
+ 0xfaec, 0xfabb, 0xfad0, 0xfae2, 0xfb00, 0xfb31,
+ 0xfb59, 0xfb99, 0xfbe4, 0xfc16, 0xfc2a, 0xfbef,
+ 0xfb7e, 0xfb4e, 0xfb7a, 0xfbdc, 0xfc53, 0xfcd8,
+ 0xfd6a, 0xfde1, 0xfe4f, 0xfed0, 0xff00, 0xfec9,
+ 0xfea2, 0xfeb3, 0xfed4, 0xfeda, 0xfec0, 0xfeb8,
+ 0xfec8, 0xfee1, 0xff15, 0xff53, 0xff9a, 0xffc5,
+ 0xff81, 0xff19, 0xff0d, 0xff7a, 0x0062, 0x0183,
+ 0x02a1, 0x03c7, 0x049e, 0x0509, 0x055f, 0x058f,
+ 0x059e, 0x05c3, 0x05e6, 0x0627, 0x0692, 0x06d5,
+ 0x06e6, 0x06be, 0x0671, 0x0671, 0x06bd, 0x071d,
+ 0x077c, 0x0782, 0x074b, 0x0724, 0x06d1, 0x0679,
+ 0x0672, 0x0668, 0x0637, 0x0619, 0x0602, 0x05be,
+ 0x0545, 0x04e1, 0x04bb, 0x04a6, 0x04a5, 0x049b,
+ 0x0467, 0x0472, 0x04a6, 0x0468, 0x03e3, 0x037e,
+ 0x0350, 0x0382, 0x03d8, 0x03cb, 0x0370, 0x0362,
+ 0x03c9, 0x0414, 0x03ea, 0x0397, 0x0323, 0x0241,
+ 0x0128, 0x0078, 0x008e, 0x0126, 0x01bc, 0x020c,
+ 0x020d, 0x0206, 0x024d, 0x02ac, 0x02dc, 0x02bf,
+ 0x025a, 0x0244, 0x02cb, 0x0345, 0x036b, 0x0378,
+ 0x0363, 0x032f, 0x02fa, 0x02f0, 0x033a, 0x0389,
+ 0x0398, 0x0380, 0x0338, 0x02da, 0x0276, 0x01d4,
+ 0x0145, 0x0121, 0x0138, 0x01a0, 0x0255, 0x02e0,
+ 0x0324, 0x0336, 0x0310, 0x02ea, 0x02f2, 0x02f7,
+ 0x02ae, 0x0233, 0x01f1, 0x01e4, 0x01d2, 0x01a8,
+ 0x0139, 0x00bf, 0x00d9, 0x0178, 0x0221, 0x02a5,
+ 0x02e3, 0x02d2, 0x027c, 0x01fb, 0x0194, 0x014f,
+ 0x00f0, 0x0064, 0xffd3, 0xff9b, 0xffd9, 0x000e,
+ 0xfff9, 0xffe6, 0x0015, 0x006f, 0x009c, 0x007f,
+ 0x0053, 0x002c, 0x000d, 0x000d, 0x0012, 0x0024,
+ 0x005a, 0x0072, 0x007a, 0x00b6, 0x00ea, 0x00dd,
+ 0x0081, 0xfff0, 0xffa1, 0xffaf, 0xffac, 0xff86,
+ 0xff5a, 0xff33, 0xff32, 0xff3b, 0xff3b, 0xff66,
+ 0xff89, 0xff5d, 0xff31, 0xff42, 0xff5d, 0xff4b,
+ 0xfef1, 0xfe85, 0xfe63, 0xfe95, 0xfee9, 0xff35,
+ 0xff65, 0xff9c, 0xfff4, 0x003b, 0x004c, 0x002a,
+ 0xffe5, 0xffa6, 0xff91, 0xff8f, 0xffb0, 0xfffe,
+ 0x0039, 0x0051, 0x0055, 0x0019, 0xff78, 0xfea5,
+ 0xfe0c, 0xfe18, 0xfece, 0xffd8, 0x00d6, 0x015d,
+ 0x015a, 0x0120, 0x00d0, 0x009a, 0x00b5, 0x0101,
+ 0x0175, 0x0221, 0x02c2, 0x0345, 0x03aa, 0x039a,
+ 0x030e, 0x025c, 0x01f8, 0x025c, 0x0343, 0x03e0,
+ 0x03ef, 0x039b, 0x033e, 0x032a, 0x0326, 0x02de,
+ 0x0237, 0x013f, 0x006c, 0xfff4, 0xff93, 0xff4a,
+ 0xff0f, 0xfebe, 0xfea4, 0xfede, 0xff44, 0xffe9,
+ 0x0083, 0x00c9, 0x00e4, 0x00d8, 0x00ad, 0x009f,
+ 0x0085, 0x003c, 0x0006, 0x001b, 0x006c, 0x00b5,
+ 0x00ca, 0x00b2, 0x006f, 0x002e, 0x0017, 0x000b,
+ 0x0000, 0xffee, 0xffcd, 0xffcc, 0xffcc, 0xffb8,
+ 0xffe9, 0x004c, 0x00a5, 0x00fb, 0x0129, 0x0144,
+ 0x0181, 0x018e, 0x014f, 0x0105, 0x00d4, 0x0106,
+ 0x0183, 0x01d1, 0x01fc, 0x0231, 0x0247, 0x022d,
+ 0x0202, 0x0213, 0x024f, 0x0227, 0x01ae, 0x0167,
+ 0x0151, 0x0156, 0x016d, 0x0177, 0x017a, 0x016f,
+ 0x0164, 0x017a, 0x0174, 0x0136, 0x00f0, 0x008f,
+ 0x0019, 0xffc9, 0xff99, 0xff86, 0xff8b, 0xff74,
+ 0xff3a, 0xff02, 0xfedd, 0xfecb, 0xfeb6, 0xfe81,
+ 0xfe3f, 0xfe1a, 0xfe08, 0xfddc, 0xfda4, 0xfd73,
+ 0xfd25, 0xfcd9, 0xfcc3, 0xfcc4, 0xfcda, 0xfcfe,
+ 0xfcf8, 0xfce9, 0xfd15, 0xfd35, 0xfce8, 0xfc55,
+ 0xfbeb, 0xfbd5, 0xfbd7, 0xfb9e, 0xfb1e, 0xfaba,
+ 0xfab8, 0xfaf3, 0xfb65, 0xfc26, 0xfcf5, 0xfd93,
+ 0xfdcf, 0xfdaf, 0xfd98, 0xfd83, 0xfd47, 0xfd46,
+ 0xfd88, 0xfdc8, 0xfe0f, 0xfe20, 0xfdf1, 0xfdf7,
+ 0xfe21, 0xfe48, 0xfe8a, 0xfe99, 0xfe66, 0xfe4e,
+ 0xfe43, 0xfe09, 0xfda0, 0xfd38, 0xfd31, 0xfda9,
+ 0xfe66, 0xff15, 0xff7b, 0xffbf, 0x001c, 0x009d,
+ 0x012c, 0x0173, 0x016d, 0x018e, 0x01ed, 0x0267,
+ 0x02df, 0x02ef, 0x0294, 0x0216, 0x0165, 0x00ba,
+ 0x0071, 0x007c, 0x00c4, 0x0101, 0x00eb, 0x00d5,
+ 0x00ea, 0x00db, 0x0093, 0x0028, 0xffc4, 0xff9c,
+ 0xffaa, 0xffc6, 0xffbb, 0xff56, 0xfece, 0xfea2,
+ 0xff0f, 0xffd8, 0x0094, 0x012d, 0x0179, 0x0157,
+ 0x0135, 0x0155, 0x016c, 0x0162, 0x0149, 0x013f,
+ 0x0173, 0x01c7, 0x020c, 0x0232, 0x0202, 0x0182,
+ 0x00fe, 0x00b5, 0x00bf, 0x00c2, 0x008c, 0x0084,
+ 0x00d0, 0x013f, 0x01a8, 0x01be, 0x0192, 0x0176,
+ 0x0160, 0x016d, 0x01af, 0x01d0, 0x01d6, 0x0200,
+ 0x0248, 0x029e, 0x02cd, 0x02a5, 0x024e, 0x01fa,
+ 0x01b2, 0x014c, 0x00af, 0x0039, 0x0028, 0x0060,
+ 0x00da, 0x016c, 0x01d4, 0x01fa, 0x01c7, 0x0194,
+ 0x01c0, 0x01f2, 0x01eb, 0x01bb, 0x014c, 0x00b0,
+ 0x0005, 0xff81, 0xff84, 0xffe0, 0x003e, 0x00cb,
+ 0x016c, 0x01e4, 0x0225, 0x0204, 0x01b3, 0x0188,
+ 0x015b, 0x0111, 0x00c5, 0x0083, 0x0061, 0x004f,
+ 0x0067, 0x00c8, 0x0114, 0x013a, 0x018d, 0x01ea,
+ 0x0225, 0x0239, 0x0206, 0x01b8, 0x017a, 0x0137,
+ 0x00fa, 0x00b6, 0x0054, 0xfff3, 0xffa3, 0xff8a,
+ 0xffa8, 0xffaa, 0xffc8, 0x003d, 0x0083, 0x005a,
+ 0x001f, 0x0011, 0x002a, 0x002c, 0x000e, 0x000c,
+ 0x0025, 0x0037, 0x0027, 0xffea, 0xffbf, 0xffba,
+ 0xffaf, 0xffac, 0xffa2, 0xff66, 0xff3d, 0xff41,
+ 0xff34, 0xfeff, 0xfeb3, 0xfe9b, 0xfee3, 0xff41,
+ 0xff9c, 0x0017, 0x0083, 0x00ae, 0x00d2, 0x0111,
+ 0x013e, 0x014a, 0x015a, 0x0161, 0x013b, 0x0108,
+ 0x0101, 0x0162, 0x0217, 0x0285, 0x028c, 0x029a,
+ 0x029c, 0x026a, 0x0230, 0x01dc, 0x0166, 0x011a,
+ 0x0119, 0x0133, 0x012b, 0x010e, 0x0112, 0x0109,
+ 0x00a3, 0x0000, 0xff80, 0xff67, 0xffa2, 0xffe9,
+ 0x0022, 0x0055, 0x007b, 0x0080, 0x006f, 0x007f,
+ 0x0092, 0x0044, 0xffcd, 0xff83, 0xff54, 0xff63,
+ 0xffab, 0xffbf, 0xff95, 0xff65, 0xff47, 0xff3a,
+ 0xff16, 0xfef8, 0xff17, 0xff3a, 0xff48, 0xff5f,
+ 0xff73, 0xff8c, 0xffac, 0xffd1, 0x003b, 0x00d5,
+ 0x0157, 0x01cf, 0x021a, 0x0209, 0x01d3, 0x01aa,
+ 0x01ad, 0x01eb, 0x0230, 0x0264, 0x0287, 0x029b,
+ 0x02b6, 0x02c1, 0x0298, 0x023e, 0x01b6, 0x0136,
+ 0x00f4, 0x00c9, 0x009f, 0x007f, 0x005b, 0x005d,
+ 0x009d, 0x00e2, 0x00f9, 0x00e3, 0x00d4, 0x00e0,
+ 0x00cf, 0x009a, 0x0075, 0x0075, 0x0086, 0x006e,
+ 0x002f, 0x0035, 0x008d, 0x00e0, 0x010f, 0x0123,
+ 0x012c, 0x012a, 0x00fc, 0x00ca, 0x00f2, 0x0186,
+ 0x0230, 0x027d, 0x0266, 0x0246, 0x0239, 0x0215,
+ 0x01b9, 0x012e, 0x00b7, 0x0068, 0x0027, 0x0009,
+ 0x000a, 0x002d, 0x0098, 0x010e, 0x015d, 0x01aa,
+ 0x01f1, 0x025c, 0x0334, 0x0432, 0x0504, 0x05a9,
+ 0x0618, 0x0644, 0x0624, 0x05d6, 0x0599, 0x0585,
+ 0x05b0, 0x0605, 0x0616, 0x05bf, 0x053d, 0x04d5,
+ 0x04be, 0x04db, 0x04f5, 0x051a, 0x053d, 0x0547,
+ 0x0525, 0x04bc, 0x046a, 0x047e, 0x049f, 0x04b4,
+ 0x04da, 0x04d7, 0x04a1, 0x046b, 0x045d, 0x048d,
+ 0x04c3, 0x04cd, 0x04a4, 0x0433, 0x03b2, 0x0352,
+ 0x02f7, 0x02c2, 0x02b7, 0x02af, 0x02cf, 0x0309,
+ 0x034d, 0x03b9, 0x03cf, 0x0355, 0x02ec, 0x02de,
+ 0x0317, 0x034e, 0x0316, 0x02d4, 0x02f6, 0x031e,
+ 0x0326, 0x0312, 0x02c3, 0x0271, 0x0224, 0x01c2,
+ 0x016d, 0x00f5, 0x0048, 0xffd8, 0xffc9, 0x0005,
+ 0x0065, 0x0080, 0x002f, 0xff7d, 0xfe6a, 0xfd6c,
+ 0xfcef, 0xfcc4, 0xfc91, 0xfc44, 0xfc1a, 0xfc38,
+ 0xfc91, 0xfd30, 0xfddf, 0xfe29, 0xfdf7, 0xfd78,
+ 0xfcf4, 0xfcaa, 0xfc89, 0xfc8a, 0xfcc0, 0xfcf3,
+ 0xfd0d, 0xfd3d, 0xfd9b, 0xfe0b, 0xfe48, 0xfe33,
+ 0xfe07, 0xfdd9, 0xfdad, 0xfdbe, 0xfe2b, 0xfebf,
+ 0xff1f, 0xff4b, 0xff8a, 0xffc7, 0xffea, 0x0045,
+ 0x00d0, 0x013b, 0x018b, 0x01bf, 0x01e8, 0x0236,
+ 0x0286, 0x02ac, 0x02af, 0x029e, 0x0282, 0x0248,
+ 0x020d, 0x0220, 0x0256, 0x027f, 0x02cf, 0x0328,
+ 0x0355, 0x037e, 0x039d, 0x039d, 0x03a7, 0x03c4,
+ 0x03b2, 0x034c, 0x02b9, 0x0218, 0x0174, 0x011d,
+ 0x0149, 0x01b1, 0x0209, 0x022d, 0x020e, 0x01c5,
+ 0x016c, 0x0138, 0x0140, 0x012a, 0x00d1, 0x0072,
+ 0x0042, 0x004b, 0x0042, 0x000f, 0x0027, 0x0087,
+ 0x009d, 0x005e, 0xfff8, 0xff8e, 0xff63, 0xff91,
+ 0x0011, 0x00a1, 0x00d5, 0x00bf, 0x00ae, 0x00d1,
+ 0x013d, 0x018d, 0x0179, 0x015c, 0x0163, 0x018f,
+ 0x01d7, 0x01eb, 0x01d2, 0x01ae, 0x0160, 0x013d,
+ 0x017f, 0x01bd, 0x01e3, 0x01f4, 0x01d3, 0x01da,
+ 0x022c, 0x0286, 0x02e6, 0x031e, 0x0302, 0x02db,
+ 0x02f0, 0x033f, 0x0398, 0x03b6, 0x03a7, 0x03a5,
+ 0x03c8, 0x03f4, 0x03c4, 0x0304, 0x022a, 0x01d8,
+ 0x022b, 0x02c0, 0x0344, 0x03a2, 0x03b5, 0x037e,
+ 0x0332, 0x02e3, 0x02a4, 0x026f, 0x023c, 0x025e,
+ 0x02e4, 0x0360, 0x03c1, 0x041b, 0x044a, 0x0447,
+ 0x0416, 0x03e1, 0x03d8, 0x03d9, 0x03d6, 0x03e0,
+ 0x03ef, 0x041a, 0x0455, 0x0452, 0x040b, 0x03a0,
+ 0x0334, 0x02d7, 0x0249, 0x01b3, 0x019b, 0x01e4,
+ 0x0234, 0x026c, 0x0274, 0x025d, 0x0223, 0x01ba,
+ 0x016a, 0x0149, 0x0120, 0x00d4, 0x004a, 0xff88,
+ 0xfeb7, 0xfde7, 0xfd37, 0xfcb1, 0xfc67, 0xfcad,
+ 0xfd59, 0xfdc9, 0xfdc4, 0xfd63, 0xfcf5, 0xfcc9,
+ 0xfcae, 0xfc85, 0xfc8b, 0xfce0, 0xfd64, 0xfdab,
+ 0xfd84, 0xfd42, 0xfd0d, 0xfce7, 0xfced, 0xfcf0,
+ 0xfce9, 0xfd0e, 0xfd29, 0xfd0f, 0xfcec, 0xfcfe,
+ 0xfd7e, 0xfe32, 0xfec0, 0xff46, 0xffb9, 0xffd5,
+ 0xffd2, 0x0004, 0x0080, 0x00fb, 0x0108, 0x00a7,
+ 0x0029, 0xffc3, 0xff7d, 0xff38, 0xff11, 0xff33,
+ 0xff3e, 0xfee8, 0xfe66, 0xfe1f, 0xfe97, 0xffab,
+ 0x0074, 0x009b, 0x0065, 0x002c, 0x0053, 0x00cc,
+ 0x0144, 0x01b4, 0x0213, 0x0247, 0x0240, 0x01ff,
+ 0x01f7, 0x025a, 0x02ab, 0x029e, 0x023e, 0x01a3,
+ 0x011b, 0x00d8, 0x00ca, 0x00b6, 0x0067, 0x0006,
+ 0xffae, 0xff34, 0xfecf, 0xfebe, 0xfed9, 0xfef3,
+ 0xfedd, 0xfea2, 0xfe8a, 0xfe8b, 0xfe8c, 0xfea2,
+ 0xfe9f, 0xfe79, 0xfe69, 0xfe7c, 0xfe9d, 0xfea5,
+ 0xfe79, 0xfe17, 0xfd7f, 0xfd07, 0xfd1d, 0xfda3,
+ 0xfe54, 0xff0f, 0xffb4, 0x003e, 0x009e, 0x00b3,
+ 0x00a1, 0x0090, 0x0086, 0x0093, 0x009f, 0x00ab,
+ 0x00c3, 0x00da, 0x010f, 0x0160, 0x0180, 0x018d,
+ 0x01d1, 0x0254, 0x02e2, 0x0319, 0x02dd, 0x0289,
+ 0x0261, 0x0263, 0x0271, 0x028e, 0x02e3, 0x0346,
+ 0x0393, 0x03e4, 0x03e6, 0x037b, 0x0321, 0x0308,
+ 0x0330, 0x0396, 0x03ce, 0x03a8, 0x0332, 0x0250,
+ 0x013b, 0x0044, 0xffa4, 0xffb5, 0x0037, 0x006d,
+ 0x004b, 0x0027, 0x0005, 0xffc8, 0xff52, 0xfec5,
+ 0xfe64, 0xfe4d, 0xfe7c, 0xfea0, 0xfe69, 0xfe01,
+ 0xfd97, 0xfd43, 0xfd1e, 0xfcf9, 0xfcc6, 0xfcb4,
+ 0xfca8, 0xfc95, 0xfcb5, 0xfd08, 0xfd55, 0xfd69,
+ 0xfd38, 0xfcde, 0xfc6d, 0xfc0b, 0xfbf3, 0xfc26,
+ 0xfc74, 0xfca5, 0xfca9, 0xfcad, 0xfcb5, 0xfc8a,
+ 0xfc21, 0xfbb4, 0xfbb1, 0xfc37, 0xfce5, 0xfd6e,
+ 0xfd96, 0xfd2c, 0xfc90, 0xfc4b, 0xfc63, 0xfcbc,
+ 0xfd40, 0xfdc8, 0xfe36, 0xfe73, 0xfe93, 0xfecc,
+ 0xff10, 0xff2b, 0xff27, 0xff49, 0xff8e, 0xff8e,
+ 0xff32, 0xfee8, 0xfeed, 0xff1b, 0xff4c, 0xff91,
+ 0xfffd, 0x0052, 0x0076, 0x00b0, 0x00f9, 0x00fc,
+ 0x00ac, 0x004c, 0x0058, 0x00f9, 0x01b9, 0x0264,
+ 0x0300, 0x0340, 0x032b, 0x032e, 0x0365, 0x03b5,
+ 0x03f7, 0x0408, 0x03ed, 0x03c4, 0x03b3, 0x03a3,
+ 0x0349, 0x02aa, 0x0207, 0x0191, 0x0181, 0x01c7,
+ 0x0236, 0x02d6, 0x035d, 0x0365, 0x0329, 0x031b,
+ 0x0355, 0x038c, 0x037a, 0x033b, 0x02fb, 0x02b4,
+ 0x0271, 0x023e, 0x022b, 0x0239, 0x022d, 0x01f1,
+ 0x0191, 0x0103, 0x0071, 0x0000, 0xffa1, 0xff59,
+ 0xff1c, 0xfeeb, 0xfef3, 0xfeff, 0xff00, 0xff48,
+ 0xff9d, 0xffa0, 0xff61, 0xfefe, 0xfeb2, 0xfe98,
+ 0xfe66, 0xfe1d, 0xfdec, 0xfdeb, 0xfe48, 0xfeba,
+ 0xfec3, 0xfe92, 0xfe78, 0xfe94, 0xfeed, 0xff2d,
+ 0xff3b, 0xff79, 0x0005, 0x00b3, 0x013f, 0x016e,
+ 0x0155, 0x011c, 0x00e2, 0x00d6, 0x00ec, 0x0115,
+ 0x0185, 0x0216, 0x025f, 0x024c, 0x021f, 0x0240,
+ 0x02b8, 0x030b, 0x0308, 0x02f6, 0x0304, 0x0325,
+ 0x0333, 0x0324, 0x0328, 0x035c, 0x03a0, 0x03c2,
+ 0x038c, 0x0306, 0x02ab, 0x02dc, 0x037d, 0x042d,
+ 0x047f, 0x0434, 0x038c, 0x02f0, 0x027f, 0x024d,
+ 0x0258, 0x0276, 0x02af, 0x0314, 0x0383, 0x03de,
+ 0x0408, 0x03f7, 0x03de, 0x03e5, 0x03fa, 0x03f6,
+ 0x03c9, 0x0397, 0x036f, 0x0337, 0x0310, 0x0329,
+ 0x0382, 0x0410, 0x04b6, 0x0558, 0x05d5, 0x05ce,
+ 0x0523, 0x0446, 0x039d, 0x036a, 0x03c5, 0x0461,
+ 0x04e8, 0x0531, 0x0524, 0x04e2, 0x049c, 0x046a,
+ 0x0465, 0x0477, 0x0461, 0x0422, 0x03df, 0x039a,
+ 0x033f, 0x02f8, 0x0301, 0x0320, 0x02ff, 0x02b8,
+ 0x0272, 0x021d, 0x01a4, 0x0133, 0x0113, 0x011f,
+ 0x0116, 0x0136, 0x017f, 0x019b, 0x0179, 0x011d,
+ 0x00cd, 0x0102, 0x0172, 0x01b1, 0x01d6, 0x01b9,
+ 0x013e, 0x00bd, 0x004a, 0xfff4, 0xffe8, 0xffed,
+ 0xffc1, 0xff6b, 0xff0a, 0xfee6, 0xff17, 0xff60,
+ 0xff7e, 0xff45, 0xfede, 0xfe9f, 0xfebd, 0xff69,
+ 0x006b, 0x012d, 0x018c, 0x0185, 0x00ea, 0x000a,
+ 0xff57, 0xfefa, 0xff18, 0xff61, 0xff74, 0xff9e,
+ 0x0009, 0x006b, 0x0097, 0x008e, 0x0055, 0x000b,
+ 0xffc4, 0xff91, 0xff7c, 0xff61, 0xff35, 0xff29,
+ 0xff64, 0xffc2, 0x000a, 0x003f, 0x007c, 0x00b2,
+ 0x00d3, 0x00ee, 0x0121, 0x016d, 0x0196, 0x018a,
+ 0x0186, 0x0184, 0x0136, 0x00ac, 0x004e, 0x0065,
+ 0x00e2, 0x0179, 0x01fd, 0x025f, 0x0266, 0x01fc,
+ 0x0176, 0x0112, 0x00df, 0x00fe, 0x014f, 0x0169,
+ 0x0138, 0x00f6, 0x00be, 0x009b, 0x0093, 0x00b7,
+ 0x0126, 0x01d6, 0x02ae, 0x0392, 0x0417, 0x03cc,
+ 0x02d6, 0x0200, 0x01d4, 0x01fc, 0x01e7, 0x01ab,
+ 0x019d, 0x01e5, 0x0281, 0x0314, 0x0348, 0x0331,
+ 0x02eb, 0x0287, 0x0231, 0x0202, 0x01d3, 0x0151,
+ 0x008e, 0x0019, 0x0026, 0x006d, 0x00ba, 0x00ea,
+ 0x0109, 0x013d, 0x015f, 0x0155, 0x0133, 0x00e7,
+ 0x008e, 0x004d, 0x0018, 0x002e, 0x00a0, 0x0107,
+ 0x013c, 0x014f, 0x0157, 0x017c, 0x0187, 0x0146,
+ 0x00fa, 0x00e4, 0x0134, 0x01ce, 0x023b, 0x027a,
+ 0x02d3, 0x0329, 0x0370, 0x03a0, 0x0393, 0x0363,
+ 0x033e, 0x0331, 0x0353, 0x0381, 0x03a7, 0x03f4,
+ 0x046f, 0x04f2, 0x0545, 0x0545, 0x0510, 0x049c,
+ 0x03bc, 0x02bf, 0x0221, 0x0213, 0x0282, 0x0321,
+ 0x03c1, 0x045d, 0x04d4, 0x0504, 0x04d7, 0x0459,
+ 0x03cd, 0x034d, 0x02e6, 0x02c9, 0x02cf, 0x02af,
+ 0x0276, 0x024f, 0x0257, 0x028d, 0x02c9, 0x030c,
+ 0x033b, 0x02ff, 0x0252, 0x0172, 0x00b6, 0x005e,
+ 0x002b, 0xffd9, 0xff8a, 0xff37, 0xfec9, 0xfe7c,
+ 0xfe5a, 0xfe35, 0xfdeb, 0xfd62, 0xfcbe, 0xfc40,
+ 0xfbff, 0xfbf8, 0xfbdd, 0xfb5d, 0xfabf, 0xfa6e,
+ 0xfa67, 0xfa90, 0xfac7, 0xfae6, 0xfb03, 0xfb45,
+ 0xfb9d, 0xfbea, 0xfc06, 0xfbec, 0xfbd3, 0xfbae,
+ 0xfb48, 0xfadd, 0xfacb, 0xfaf8, 0xfb20, 0xfb32,
+ 0xfb4a, 0xfb9f, 0xfc2a, 0xfc99, 0xfcce, 0xfce6,
+ 0xfcf1, 0xfcef, 0xfce5, 0xfcd3, 0xfcc0, 0xfcb8,
+ 0xfcc3, 0xfcc7, 0xfcaa, 0xfc92, 0xfc9e, 0xfca8,
+ 0xfcad, 0xfcde, 0xfd6a, 0xfe43, 0xfefb, 0xff32,
+ 0xfef4, 0xfe89, 0xfe22, 0xfdca, 0xfda1, 0xfdf1,
+ 0xfebd, 0xffa0, 0x0051, 0x00c8, 0x0116, 0x014a,
+ 0x0161, 0x017c, 0x01cc, 0x0243, 0x02ac, 0x02cf,
+ 0x029b, 0x024f, 0x0217, 0x01eb, 0x01c5, 0x0197,
+ 0x0180, 0x01ba, 0x021d, 0x0265, 0x027e, 0x0264,
+ 0x0245, 0x0252, 0x0286, 0x02d3, 0x0316, 0x0325,
+ 0x0319, 0x0301, 0x02da, 0x02c6, 0x02c4, 0x02c3,
+ 0x02f1, 0x036a, 0x041a, 0x04d0, 0x0546, 0x0546,
+ 0x04d3, 0x0428, 0x0395, 0x031e, 0x0293, 0x01fd,
+ 0x01a1, 0x0196, 0x01b2, 0x01dd, 0x0212, 0x0222,
+ 0x0213, 0x022c, 0x0269, 0x02a2, 0x02c3, 0x0290,
+ 0x020c, 0x018b, 0x0129, 0x00e4, 0x00b4, 0x0055,
+ 0xffb9, 0xff33, 0xff15, 0xff4d, 0xff77, 0xff73,
+ 0xff79, 0xff9c, 0xffd4, 0x0026, 0x0087, 0x00e5,
+ 0x0122, 0x010f, 0x00ca, 0x0087, 0x005b, 0x005c,
+ 0x0077, 0x0086, 0x009f, 0x00e5, 0x013f, 0x0169,
+ 0x0137, 0x00df, 0x009c, 0x0040, 0xffb0, 0xff2a,
+ 0xfede, 0xfecd, 0xfef0, 0xff55, 0xffe9, 0x006d,
+ 0x00bc, 0x00ea, 0x0110, 0x0120, 0x00fb, 0x00a7,
+ 0x0044, 0xffd2, 0xff6b, 0xff51, 0xff72, 0xff94,
+ 0xffb0, 0xffbc, 0xff9f, 0xff3b, 0xfe8d, 0xfe00,
+ 0xfde2, 0xfdd7, 0xfda4, 0xfd8c, 0xfd95, 0xfd79,
+ 0xfd1c, 0xfcaf, 0xfc78, 0xfc7d, 0xfc75, 0xfc3a,
+ 0xfbe3, 0xfb8e, 0xfb40, 0xfaf5, 0xfaba, 0xfa95,
+ 0xfa72, 0xfa68, 0xfaa7, 0xfb2a, 0xfbbb, 0xfc36,
+ 0xfcac, 0xfd3b, 0xfdb6, 0xfde1, 0xfdc0, 0xfd7d,
+ 0xfd4c, 0xfd77, 0xfe0c, 0xfece, 0xff84, 0x0007,
+ 0x004a, 0x006e, 0x00b5, 0x013a, 0x01be, 0x020a,
+ 0x0257, 0x02d6, 0x034f, 0x03a2, 0x0401, 0x0479,
+ 0x04ce, 0x04c5, 0x0476, 0x0449, 0x0465, 0x0485,
+ 0x047f, 0x0471, 0x0466, 0x0433, 0x03cc, 0x0361,
+ 0x0331, 0x036f, 0x040c, 0x04a0, 0x04f1, 0x051d,
+ 0x0522, 0x04e0, 0x045b, 0x038a, 0x026b, 0x0139,
+ 0x0059, 0x0019, 0x005f, 0x00b7, 0x00d3, 0x00a2,
+ 0x004a, 0x0012, 0x0011, 0x0020, 0x0029, 0x0023,
+ 0x0012, 0x0007, 0xfffc, 0xfff1, 0xfffa, 0xfffa,
+ 0xffc2, 0xff6b, 0xff3a, 0xff4d, 0xff86, 0xffd5,
+ 0x0041, 0x00af, 0x00e6, 0x00e7, 0x00f3, 0x0136,
+ 0x019c, 0x020e, 0x028b, 0x02f5, 0x032e, 0x0340,
+ 0x0339, 0x033b, 0x0351, 0x0345, 0x031a, 0x0318,
+ 0x0348, 0x0383, 0x03bc, 0x03f7, 0x0441, 0x0474,
+ 0x0471, 0x0475, 0x04b9, 0x050b, 0x053b, 0x0560,
+ 0x0580, 0x057d, 0x0550, 0x0505, 0x0499, 0x044e,
+ 0x0477, 0x04e5, 0x052a, 0x051d, 0x04d7, 0x049c,
+ 0x0479, 0x043c, 0x03f8, 0x03c0, 0x0376, 0x034c,
+ 0x0389, 0x0424, 0x04fa, 0x05ca, 0x064a, 0x0662,
+ 0x060c, 0x0567, 0x04b7, 0x042f, 0x03e4, 0x03c2,
+ 0x03a5, 0x0388, 0x035e, 0x034c, 0x0381, 0x03c9,
+ 0x03f6, 0x0408, 0x03d8, 0x037a, 0x031d, 0x0298,
+ 0x01fe, 0x0196, 0x0160, 0x0150, 0x014c, 0x0144,
+ 0x014d, 0x0152, 0x0140, 0x012b, 0x00fb, 0x00ca,
+ 0x00da, 0x010b, 0x0136, 0x014a, 0x012b, 0x00f4,
+ 0x00c8, 0x00b9, 0x00d4, 0x00ef, 0x00eb, 0x00ce,
+ 0x007e, 0x001e, 0xffd3, 0xff70, 0xff29, 0xff16,
+ 0xfece, 0xfe6c, 0xfe59, 0xfe86, 0xfec8, 0xfef5,
+ 0xfeee, 0xfebb, 0xfe54, 0xfde7, 0xfddd, 0xfe46,
+ 0xff08, 0xfff7, 0x00c1, 0x014f, 0x0199, 0x0189,
+ 0x0144, 0x00df, 0x0064, 0xfffe, 0xffaf, 0xff83,
+ 0xff97, 0xffd3, 0x0021, 0x0079, 0x00cd, 0x013e,
+ 0x01bf, 0x0221, 0x0253, 0x0211, 0x014f, 0x0066,
+ 0xff82, 0xfee9, 0xff0a, 0xffbd, 0x00a1, 0x015f,
+ 0x0192, 0x017d, 0x019f, 0x01ef, 0x0250, 0x029f,
+ 0x0299, 0x0253, 0x020c, 0x01da, 0x01b0, 0x0171,
+ 0x0114, 0x0099, 0x000f, 0xffbf, 0xffc4, 0xffeb,
+ 0x002e, 0x0099, 0x00f9, 0x010a, 0x00b7, 0x003f,
+ 0xffff, 0x0004, 0x0039, 0x0087, 0x00cf, 0x00fa,
+ 0x00f9, 0x00eb, 0x011e, 0x0192, 0x01ea, 0x01ee,
+ 0x01a9, 0x014b, 0x0102, 0x00cc, 0x0081, 0x0008,
+ 0xffa6, 0xffa6, 0xffeb, 0x003f, 0x00b3, 0x0143,
+ 0x01d0, 0x0241, 0x028e, 0x02c1, 0x02dc, 0x02d7,
+ 0x02c2, 0x02a2, 0x0285, 0x0297, 0x02c9, 0x02fe,
+ 0x033e, 0x0376, 0x0399, 0x03c4, 0x03e6, 0x03ef,
+ 0x0403, 0x0425, 0x044f, 0x049d, 0x0508, 0x056b,
+ 0x05bd, 0x05f5, 0x05f3, 0x05a5, 0x050c, 0x044e,
+ 0x03b3, 0x034e, 0x030e, 0x02e6, 0x02ba, 0x027a,
+ 0x0236, 0x01ed, 0x01cb, 0x01ec, 0x01dc, 0x0170,
+ 0x011a, 0x00f6, 0x00c8, 0x0098, 0x0062, 0x0019,
+ 0xffe6, 0xffd9, 0xffec, 0x0026, 0x006d, 0x0093,
+ 0x0089, 0x0036, 0xff7c, 0xfe7b, 0xfd9f, 0xfd36,
+ 0xfd3b, 0xfd79, 0xfdc2, 0xfe17, 0xfe86, 0xff05,
+ 0xff77, 0xffad, 0xff97, 0xff50, 0xfee5, 0xfe7d,
+ 0xfe5e, 0xfe7e, 0xfec1, 0xff36, 0xffc0, 0x003c,
+ 0x00af, 0x0117, 0x0188, 0x0202, 0x0256, 0x027d,
+ 0x0270, 0x023f, 0x0231, 0x023f, 0x023f, 0x025e,
+ 0x0293, 0x02af, 0x02b9, 0x0294, 0x0236, 0x01f1,
+ 0x0208, 0x0285, 0x0340, 0x03e4, 0x0447, 0x0455,
+ 0x040b, 0x0396, 0x0328, 0x02fa, 0x0315, 0x033d,
+ 0x037d, 0x03f5, 0x045c, 0x0479, 0x0463, 0x0441,
+ 0x0447, 0x0475, 0x04a8, 0x04e6, 0x0518, 0x051b,
+ 0x050c, 0x04e0, 0x0474, 0x03e0, 0x034b, 0x02c6,
+ 0x025f, 0x0244, 0x0299, 0x0311, 0x033c, 0x02ef,
+ 0x0231, 0x0137, 0x0044, 0xff7f, 0xff0e, 0xfeed,
+ 0xfeee, 0xff23, 0xff73, 0xff8f, 0xff66, 0xff01,
+ 0xfea0, 0xfe90, 0xfe8b, 0xfe57, 0xfe33, 0xfe09,
+ 0xfdc0, 0xfd89, 0xfd56, 0xfd44, 0xfda0, 0xfe0d,
+ 0xfe11, 0xfdb5, 0xfd1a, 0xfc6b, 0xfbec, 0xfbab,
+ 0xfb7a, 0xfb3a, 0xfafd, 0xfad4, 0xfab4, 0xfaa3,
+ 0xfa91, 0xfa58, 0xf9fd, 0xf989, 0xf8f7, 0xf86d,
+ 0xf82a, 0xf841, 0xf88d, 0xf8cc, 0xf8dd, 0xf8d7,
+ 0xf8ea, 0xf941, 0xf9bf, 0xfa13, 0xfa11, 0xf9bf,
+ 0xf953, 0xf919, 0xf918, 0xf93a, 0xf994, 0xfa30,
+ 0xfaf4, 0xfbba, 0xfc50, 0xfca4, 0xfcc8, 0xfccf,
+ 0xfcd6, 0xfd0c, 0xfd73, 0xfdd0, 0xfe0e, 0xfe75,
+ 0xff35, 0x0012, 0x00be, 0x011f, 0x0168, 0x01da,
+ 0x0265, 0x02c9, 0x02f3, 0x02e2, 0x0299, 0x023f,
+ 0x01ff, 0x01eb, 0x0217, 0x0276, 0x02c5, 0x02d5,
+ 0x02c2, 0x02b7, 0x02bf, 0x02ca, 0x02c2, 0x02a2,
+ 0x0285, 0x028d, 0x02cb, 0x0314, 0x0332, 0x0315,
+ 0x02ad, 0x0201, 0x0179, 0x0170, 0x01c9, 0x0222,
+ 0x0243, 0x0259, 0x0292, 0x02c4, 0x02d7, 0x02db,
+ 0x02c0, 0x027a, 0x0237, 0x0234, 0x0281, 0x02e0,
+ 0x0318, 0x032e, 0x0315, 0x02c2, 0x0273, 0x0266,
+ 0x028d, 0x02ba, 0x02e7, 0x0323, 0x035b, 0x0382,
+ 0x03c3, 0x043a, 0x04f2, 0x05de, 0x06b5, 0x075e,
+ 0x07e1, 0x07fb, 0x0795, 0x06e7, 0x0605, 0x0515,
+ 0x047d, 0x0485, 0x051a, 0x05cc, 0x0625, 0x0620,
+ 0x0609, 0x0600, 0x05e2, 0x05b4, 0x05a1, 0x056f,
+ 0x04e7, 0x0468, 0x040f, 0x0382, 0x02ce, 0x0252,
+ 0x0263, 0x02f6, 0x0365, 0x0335, 0x02bb, 0x0269,
+ 0x0257, 0x0259, 0x0230, 0x01de, 0x0197, 0x0190,
+ 0x01d2, 0x0219, 0x0246, 0x026e, 0x0273, 0x023d,
+ 0x01de, 0x016c, 0x0126, 0x010f, 0x00ce, 0x0050,
+ 0xffe5, 0xffd2, 0x000d, 0x0040, 0x0049, 0x0024,
+ 0xffb3, 0xff45, 0xff52, 0xff9b, 0xffb6, 0xff8b,
+ 0xff43, 0xff2c, 0xff3f, 0xff3d, 0xff52, 0xff9f,
+ 0xffd2, 0xffb1, 0xff49, 0xfed2, 0xfe73, 0xfe2f,
+ 0xfe13, 0xfe29, 0xfe73, 0xfeea, 0xff68, 0xffd8,
+ 0x0038, 0x0052, 0x0007, 0xff79, 0xfebe, 0xfe07,
+ 0xfd94, 0xfd60, 0xfd49, 0xfd1c, 0xfcd1, 0xfcac,
+ 0xfcbc, 0xfcd3, 0xfd11, 0xfda9, 0xfe66, 0xfedc,
+ 0xfeeb, 0xfef1, 0xff1f, 0xff51, 0xff93, 0x0003,
+ 0x0091, 0x011c, 0x0178, 0x0195, 0x0198, 0x01af,
+ 0x0200, 0x0255, 0x0232, 0x01be, 0x0196, 0x01e0,
+ 0x025e, 0x02d7, 0x0324, 0x033a, 0x0326, 0x030f,
+ 0x0331, 0x038d, 0x03ce, 0x03bd, 0x0393, 0x037d,
+ 0x0358, 0x032e, 0x0326, 0x0319, 0x02fa, 0x02e0,
+ 0x02b4, 0x028c, 0x02a2, 0x02d5, 0x02f6, 0x02f4,
+ 0x02af, 0x0221, 0x017f, 0x00fa, 0x007b, 0xffd1,
+ 0xff1e, 0xfe9e, 0xfe54, 0xfe43, 0xfe74, 0xfed4,
+ 0xff47, 0xff8c, 0xff85, 0xff5f, 0xff2b, 0xfed4,
+ 0xfe6a, 0xfe1c, 0xfe1a, 0xfe6d, 0xfee9, 0xff72,
+ 0xfff7, 0x006a, 0x00d7, 0x0120, 0x0117, 0x00de,
+ 0x00a0, 0x006b, 0x0063, 0x00a5, 0x0119, 0x0190,
+ 0x01f7, 0x026e, 0x0304, 0x0378, 0x0388, 0x034e,
+ 0x02fc, 0x0288, 0x01f1, 0x0175, 0x014a, 0x018b,
+ 0x0202, 0x024f, 0x028b, 0x02ff, 0x0386, 0x03d6,
+ 0x03bc, 0x0316, 0x0229, 0x014a, 0x0091, 0x0010,
+ 0xffcc, 0xffb7, 0xffd9, 0xfff6, 0xffd6, 0xffad,
+ 0xff99, 0xff7f, 0xff44, 0xfec3, 0xfe1b, 0xfd94,
+ 0xfd2d, 0xfcca, 0xfc82, 0xfc5c, 0xfc4b, 0xfc56,
+ 0xfc81, 0xfcbb, 0xfcf2, 0xfd1b, 0xfd2a, 0xfd1e,
+ 0xfcf8, 0xfcbd, 0xfc7a, 0xfc3d, 0xfc28, 0xfc6a,
+ 0xfcec, 0xfd6f, 0xfde2, 0xfe33, 0xfe53, 0xfe5d,
+ 0xfe43, 0xfdf2, 0xfdaf, 0xfdae, 0xfdd7, 0xfe1b,
+ 0xfe79, 0xfed9, 0xff25, 0xff79, 0xffd7, 0x0011,
+ 0x002a, 0x0037, 0x001b, 0xfff1, 0xffed, 0x0008,
+ 0x0075, 0x0149, 0x01f3, 0x020a, 0x01d2, 0x0198,
+ 0x0196, 0x01ea, 0x026a, 0x02ff, 0x03a3, 0x0421,
+ 0x0454, 0x043f, 0x03f0, 0x03a5, 0x03a3, 0x03db,
+ 0x040d, 0x040d, 0x03d6, 0x03bb, 0x03fd, 0x0461,
+ 0x049a, 0x049f, 0x0482, 0x046b, 0x0462, 0x043b,
+ 0x0402, 0x03d1, 0x039b, 0x035c, 0x0316, 0x02f7,
+ 0x0325, 0x0347, 0x0308, 0x0280, 0x01b5, 0x00f4,
+ 0x00c7, 0x0115, 0x0174, 0x01cc, 0x0222, 0x0283,
+ 0x02e8, 0x031e, 0x033a, 0x037a, 0x03ca, 0x03eb,
+ 0x03bd, 0x035f, 0x0305, 0x02b4, 0x0275, 0x0267,
+ 0x0273, 0x0269, 0x023c, 0x020b, 0x0225, 0x02c3,
+ 0x039e, 0x0442, 0x0496, 0x04c3, 0x04c9, 0x04a3,
+ 0x0482, 0x0481, 0x0494, 0x04b5, 0x04e2, 0x0527,
+ 0x058c, 0x05e2, 0x05e5, 0x0588, 0x0502, 0x04b1,
+ 0x04b8, 0x04d9, 0x04d0, 0x04aa, 0x0493, 0x047d,
+ 0x0449, 0x03fb, 0x039f, 0x0342, 0x0309, 0x02f7,
+ 0x02f9, 0x0302, 0x02d9, 0x0267, 0x01f2, 0x01bd,
+ 0x01c1, 0x01cf, 0x01a5, 0x013b, 0x00cd, 0x0072,
+ 0x001b, 0xffe7, 0xfff4, 0x003f, 0x00c6, 0x0188,
+ 0x0242, 0x029a, 0x0271, 0x01e4, 0x0113, 0x0022,
+ 0xff52, 0xfedd, 0xfebf, 0xfecd, 0xff02, 0xff63,
+ 0xffe1, 0x0062, 0x00b9, 0x00c9, 0x00ac, 0x0088,
+ 0x0079, 0x005d, 0xffda, 0xfee6, 0xfdf3, 0xfd74,
+ 0xfd95, 0xfe1e, 0xfead, 0xff16, 0xff5f, 0xff85,
+ 0xff83, 0xff66, 0xff39, 0xfef7, 0xfeb9, 0xfe96,
+ 0xfe7d, 0xfe61, 0xfe2d, 0xfdc5, 0xfd6a, 0xfd61,
+ 0xfd9b, 0xfdf4, 0xfe29, 0xfdfe, 0xfdc3, 0xfdd9,
+ 0xfe10, 0xfe1c, 0xfe01, 0xfdf3, 0xfe0a, 0xfe23,
+ 0xfe35, 0xfe5f, 0xfeaa, 0xff1d, 0xffa8, 0x000c,
+ 0x002a, 0x0007, 0xffbb, 0xff6f, 0xff52, 0xff95,
+ 0x002f, 0x00b6, 0x00cc, 0x007e, 0x0033, 0x0040,
+ 0x007c, 0x00b4, 0x00fb, 0x0138, 0x015d, 0x01a5,
+ 0x022a, 0x02d8, 0x037d, 0x03cc, 0x03cd, 0x03cb,
+ 0x03e9, 0x0413, 0x041c, 0x0414, 0x0419, 0x03f5,
+ 0x038e, 0x0318, 0x02b9, 0x02a4, 0x02e2, 0x0333,
+ 0x0385, 0x03a2, 0x0344, 0x02ad, 0x0205, 0x0131,
+ 0x0075, 0x0013, 0x0007, 0x0031, 0x0041, 0x0033,
+ 0x0068, 0x00e6, 0x0160, 0x019f, 0x0190, 0x014e,
+ 0x00e7, 0x005e, 0xffcc, 0xff2a, 0xfe8f, 0xfe5a,
+ 0xfea1, 0xff14, 0xff6a, 0xff75, 0xff5e, 0xff7c,
+ 0xffc7, 0x0003, 0x0030, 0x004e, 0x004d, 0x0041,
+ 0x0043, 0x0042, 0x003e, 0x0056, 0x0087, 0x00ad,
+ 0x00bf, 0x00e5, 0x0145, 0x01a6, 0x01c4, 0x01b0,
+ 0x0197, 0x01a7, 0x01f2, 0x0249, 0x0298, 0x02ee,
+ 0x0317, 0x0308, 0x02fe, 0x02f2, 0x02c8, 0x02a4,
+ 0x02a5, 0x02da, 0x0331, 0x035b, 0x032b, 0x02c8,
+ 0x026e, 0x022a, 0x01cb, 0x0139, 0x0095, 0xfff9,
+ 0xff80, 0xff35, 0xfeed, 0xfea4, 0xfe91, 0xfeba,
+ 0xff07, 0xff54, 0xff78, 0xff71, 0xff3a, 0xfec3,
+ 0xfe56, 0xfe45, 0xfe7c, 0xfea5, 0xfe7e, 0xfe13,
+ 0xfdb8, 0xfd8e, 0xfd77, 0xfd78, 0xfda7, 0xfe0d,
+ 0xfeab, 0xff4a, 0xff7a, 0xff1d, 0xfea0, 0xfe6a,
+ 0xfe7c, 0xfec7, 0xff4d, 0xffe5, 0x004a, 0x0069,
+ 0x0049, 0x0013, 0xfffe, 0x000b, 0x003c, 0x008e,
+ 0x00cb, 0x00e5, 0x00fc, 0x00f2, 0x00ae, 0x006e,
+ 0x006b, 0x00ab, 0x0103, 0x0138, 0x0147, 0x013d,
+ 0x011d, 0x0103, 0x00ec, 0x00a7, 0x005a, 0x0065,
+ 0x00ce, 0x0134, 0x0129, 0x00c5, 0x0087, 0x00a0,
+ 0x00bb, 0x008e, 0x0058, 0x0090, 0x0111, 0x0132,
+ 0x00da, 0x007b, 0x004b, 0x0049, 0x0050, 0x004e,
+ 0x0084, 0x00f5, 0x0143, 0x014e, 0x010f, 0x008e,
+ 0x002d, 0x002b, 0x0062, 0x00b0, 0x0102, 0x013f,
+ 0x015e, 0x0143, 0x0102, 0x00df, 0x00d3, 0x00a7,
+ 0x004c, 0xffd0, 0xff4a, 0xfec3, 0xfe43, 0xfe21,
+ 0xfea5, 0xff7c, 0x001e, 0x0060, 0x0069, 0x0066,
+ 0x0047, 0xfff1, 0xff76, 0xff09, 0xfec6, 0xfe94,
+ 0xfe32, 0xfd87, 0xfcf0, 0xfce4, 0xfd4a, 0xfd8f,
+ 0xfd73, 0xfd3b, 0xfd1c, 0xfcd6, 0xfc3e, 0xfb9d,
+ 0xfb3c, 0xfb2c, 0xfb7a, 0xfc03, 0xfc8d, 0xfcff,
+ 0xfd37, 0xfd3c, 0xfd3f, 0xfd16, 0xfcb8, 0xfc89,
+ 0xfca4, 0xfce5, 0xfd43, 0xfda7, 0xfe23, 0xfed3,
+ 0xff88, 0x0022, 0x00a9, 0x0111, 0x014a, 0x0146,
+ 0x0124, 0x0131, 0x016c, 0x01be, 0x0228, 0x027e,
+ 0x02be, 0x031c, 0x03a6, 0x0448, 0x04cf, 0x0506,
+ 0x04fb, 0x04cd, 0x04a7, 0x04c0, 0x04fe, 0x051e,
+ 0x0520, 0x052d, 0x0564, 0x05c2, 0x0620, 0x0671,
+ 0x06b0, 0x06d5, 0x06c2, 0x065a, 0x05ca, 0x056d,
+ 0x0586, 0x0620, 0x06be, 0x06d4, 0x0692, 0x064c,
+ 0x0602, 0x05b1, 0x0557, 0x050b, 0x04ea, 0x04be,
+ 0x0460, 0x03ea, 0x0378, 0x0321, 0x02cd, 0x0255,
+ 0x01dd, 0x0174, 0x011f, 0x010a, 0x0127, 0x014b,
+ 0x0171, 0x017e, 0x0171, 0x016a, 0x0185, 0x01f0,
+ 0x0276, 0x0298, 0x0259, 0x01fd, 0x01a7, 0x0168,
+ 0x0117, 0x009c, 0x0026, 0xffc1, 0xff68, 0xff47,
+ 0xff60, 0xff8c, 0xff9b, 0xff6b, 0xff17, 0xfede,
+ 0xfebd, 0xfe90, 0xfe63, 0xfe64, 0xfe84, 0xfe93,
+ 0xfe9a, 0xfece, 0xff2e, 0xff61, 0xff36, 0xff0d,
+ 0xff32, 0xff7c, 0xffd1, 0x002f, 0x006d, 0x006d,
+ 0x0044, 0x0021, 0x000d, 0xfff6, 0x0005, 0x0056,
+ 0x00a6, 0x00cf, 0x00e1, 0x00ff, 0x0149, 0x0187,
+ 0x017f, 0x014c, 0x00dd, 0x002f, 0xffa5, 0xff7c,
+ 0xffa1, 0xffe2, 0x001f, 0x007a, 0x00f8, 0x017b,
+ 0x0203, 0x025e, 0x024c, 0x01e8, 0x015c, 0x00dc,
+ 0x00a5, 0x00a4, 0x00c1, 0x0101, 0x0131, 0x013b,
+ 0x0151, 0x0181, 0x01a8, 0x0194, 0x0135, 0x00bf,
+ 0x0049, 0xffc1, 0xff4e, 0xff20, 0xff30, 0xff78,
+ 0xffe8, 0x0061, 0x00ed, 0x019d, 0x024c, 0x02d0,
+ 0x0308, 0x02da, 0x027a, 0x0227, 0x01c9, 0x0166,
+ 0x0132, 0x0132, 0x0169, 0x01c4, 0x020d, 0x0238,
+ 0x023a, 0x020e, 0x01f2, 0x01fa, 0x0208, 0x0222,
+ 0x023f, 0x025b, 0x027f, 0x028b, 0x0290, 0x02b3,
+ 0x02e3, 0x0322, 0x0352, 0x0334, 0x02ee, 0x02b7,
+ 0x0299, 0x02ad, 0x02d0, 0x02f4, 0x034f, 0x03b1,
+ 0x03d5, 0x03e5, 0x03f8, 0x0405, 0x03f2, 0x0392,
+ 0x0323, 0x030a, 0x0333, 0x0373, 0x03ce, 0x0448,
+ 0x04e0, 0x0553, 0x0539, 0x0497, 0x03dd, 0x0372,
+ 0x0361, 0x0368, 0x0355, 0x0335, 0x033d, 0x0372,
+ 0x03a2, 0x03c7, 0x041f, 0x04ab, 0x0524, 0x0552,
+ 0x054b, 0x0553, 0x0573, 0x0561, 0x0509, 0x04be,
+ 0x04ba, 0x04ea, 0x0527, 0x055a, 0x0578, 0x057f,
+ 0x0563, 0x0534, 0x0519, 0x0502, 0x04b4, 0x0435,
+ 0x03c8, 0x0383, 0x0344, 0x02e2, 0x0274, 0x024b,
+ 0x0279, 0x02b4, 0x02d3, 0x0304, 0x0366, 0x03ca,
+ 0x03eb, 0x03b2, 0x0341, 0x02d1, 0x0274, 0x0212,
+ 0x01aa, 0x0167, 0x015e, 0x0178, 0x01a2, 0x01cf,
+ 0x01fb, 0x0224, 0x0248, 0x026a, 0x0279, 0x0263,
+ 0x0238, 0x0200, 0x01bf, 0x0183, 0x013f, 0x00fb,
+ 0x00e5, 0x00dc, 0x00b1, 0x0087, 0x004e, 0xffdf,
+ 0xff7b, 0xff20, 0xfe8f, 0xfe07, 0xfdbf, 0xfda5,
+ 0xfdba, 0xfdd0, 0xfdbe, 0xfdb3, 0xfdac, 0xfd71,
+ 0xfd17, 0xfcde, 0xfceb, 0xfd15, 0xfd03, 0xfcad,
+ 0xfc2f, 0xfba0, 0xfb2d, 0xfac0, 0xfa33, 0xf9be,
+ 0xf969, 0xf8f2, 0xf861, 0xf7d1, 0xf771, 0xf784,
+ 0xf7e3, 0xf845, 0xf8be, 0xf962, 0xfa18, 0xfac7,
+ 0xfb51, 0xfba9, 0xfbc3, 0xfb9c, 0xfb79, 0xfbb9,
+ 0xfc74, 0xfd68, 0xfe3e, 0xfed3, 0xff32, 0xff6d,
+ 0xff96, 0xffaf, 0xffc4, 0xffe6, 0xfff9, 0xffe4,
+ 0xffb3, 0xff72, 0xff42, 0xff62, 0xffdf, 0x0091,
+ 0x015c, 0x022b, 0x02d2, 0x0315, 0x0303, 0x02e4,
+ 0x02d6, 0x02c6, 0x02a6, 0x0280, 0x0275, 0x02a3,
+ 0x031a, 0x03c8, 0x046d, 0x04c5, 0x04c1, 0x048b,
+ 0x045a, 0x0437, 0x0428, 0x0439, 0x0421, 0x03b0,
+ 0x0359, 0x037a, 0x03d4, 0x0410, 0x03fb, 0x037d,
+ 0x02b4, 0x01e2, 0x0163, 0x0177, 0x01e7, 0x0240,
+ 0x0251, 0x0236, 0x020d, 0x01db, 0x01bb, 0x01df,
+ 0x025b, 0x030d, 0x03a3, 0x03ec, 0x0409, 0x0407,
+ 0x03db, 0x03b5, 0x03ae, 0x03b5, 0x03d4, 0x03df,
+ 0x03b5, 0x0396, 0x0383, 0x034c, 0x0314, 0x02e0,
+ 0x029d, 0x0290, 0x02d1, 0x031b, 0x034d, 0x036f,
+ 0x0373, 0x0341, 0x02db, 0x0272, 0x0248, 0x025d,
+ 0x0275, 0x026a, 0x0240, 0x0202, 0x01c6, 0x0194,
+ 0x016e, 0x016f, 0x01ab, 0x01ec, 0x01ec, 0x01a5,
+ 0x0140, 0x00f8, 0x00da, 0x00b6, 0x0081, 0x004d,
+ 0xffda, 0xff04, 0xfe51, 0xfe35, 0xfe7f, 0xfec5,
+ 0xfed5, 0xfead, 0xfe6b, 0xfe39, 0xfe30, 0xfe58,
+ 0xfe91, 0xfe96, 0xfe58, 0xfe08, 0xfdd9, 0xfdd7,
+ 0xfe04, 0xfe5f, 0xfeae, 0xfeb3, 0xfe7b, 0xfe36,
+ 0xfdfc, 0xfde7, 0xfdef, 0xfdf3, 0xfdf6, 0xfdff,
+ 0xfdef, 0xfdd1, 0xfdca, 0xfde0, 0xfe0f, 0xfe4f,
+ 0xfe88, 0xfea7, 0xfea2, 0xfe60, 0xfdd5, 0xfd0b,
+ 0xfc29, 0xfb72, 0xfb22, 0xfb34, 0xfb65, 0xfb9d,
+ 0xfbf8, 0xfc6a, 0xfcb5, 0xfcb8, 0xfc7c, 0xfc16,
+ 0xfba9, 0xfb61, 0xfb56, 0xfb7a, 0xfba7, 0xfbcb,
+ 0xfbeb, 0xfbfe, 0xfbef, 0xfbb2, 0xfb7b, 0xfb9c,
+ 0xfc17, 0xfc97, 0xfcdf, 0xfcd1, 0xfc7c, 0xfc26,
+ 0xfbea, 0xfbcc, 0xfc01, 0xfca3, 0xfd82, 0xfe6f,
+ 0xff3f, 0xffd5, 0x004e, 0x00bc, 0x0122, 0x01a6,
+ 0x0241, 0x02d3, 0x036b, 0x03fa, 0x0452, 0x046b,
+ 0x0438, 0x03ba, 0x033c, 0x02e7, 0x029e, 0x0261,
+ 0x022d, 0x01fc, 0x0200, 0x0257, 0x02d0, 0x033a,
+ 0x038e, 0x03ce, 0x03e7, 0x03c9, 0x0391, 0x0383,
+ 0x03a3, 0x03a3, 0x0360, 0x0330, 0x034e, 0x0376,
+ 0x0354, 0x02fb, 0x02cd, 0x0308, 0x035b, 0x0350,
+ 0x02d7, 0x0203, 0x00fe, 0x003f, 0x0009, 0x0026,
+ 0x0068, 0x00a7, 0x00a6, 0x0055, 0xffec, 0xff99,
+ 0xff67, 0xff42, 0xfef3, 0xfe47, 0xfd6e, 0xfcd1,
+ 0xfc7a, 0xfc4d, 0xfc5f, 0xfca3, 0xfd00, 0xfda1,
+ 0xfe7b, 0xff27, 0xff99, 0xffec, 0xfffe, 0xffe9,
+ 0xfff0, 0xffe8, 0xffa7, 0xff6d, 0xff6c, 0xffa8,
+ 0x000e, 0x0050, 0x005a, 0x007c, 0x00cf, 0x013b,
+ 0x01b7, 0x020f, 0x0218, 0x01e2, 0x01a2, 0x01a8,
+ 0x01e3, 0x01e0, 0x01a1, 0x017e, 0x015f, 0x012f,
+ 0x0126, 0x014a, 0x018d, 0x0205, 0x0293, 0x0319,
+ 0x03a3, 0x0416, 0x0449, 0x0450, 0x0430, 0x03e5,
+ 0x039d, 0x036e, 0x0333, 0x02df, 0x0278, 0x022d,
+ 0x023f, 0x028e, 0x02da, 0x0312, 0x030b, 0x02c5,
+ 0x0295, 0x028a, 0x0274, 0x0254, 0x021c, 0x01bb,
+ 0x015e, 0x011c, 0x00da, 0x008d, 0x004f, 0x0044,
+ 0x0077, 0x00d8, 0x0138, 0x0157, 0x0126, 0x00cf,
+ 0x006c, 0x0029, 0x0033, 0x0056, 0x0033, 0xffc5,
+ 0xff52, 0xff06, 0xfedd, 0xfec3, 0xfe75, 0xfde7,
+ 0xfd95, 0xfdbf, 0xfe03, 0xfe21, 0xfe19, 0xfdc5,
+ 0xfd28, 0xfc80, 0xfbf6, 0xfbc0, 0xfc12, 0xfcc6,
+ 0xfd85, 0xfe19, 0xfe6b, 0xfe7f, 0xfe87, 0xfead,
+ 0xfed9, 0xfeee, 0xfef6, 0xfef1, 0xfedf, 0xfec8,
+ 0xfead, 0xfea1, 0xfecb, 0xff3a, 0xffd1, 0x005a,
+ 0x00c4, 0x0129, 0x0177, 0x0173, 0x0123, 0x00c5,
+ 0x0096, 0x00b6, 0x010a, 0x0165, 0x01d0, 0x0251,
+ 0x02bc, 0x0305, 0x0358, 0x03c5, 0x0427, 0x046c,
+ 0x04aa, 0x04f2, 0x0530, 0x0554, 0x056e, 0x0576,
+ 0x0550, 0x0510, 0x04d5, 0x048f, 0x0430, 0x03cd,
+ 0x0388, 0x0388, 0x03c3, 0x0412, 0x046e, 0x04c0,
+ 0x04d9, 0x04d4, 0x04f4, 0x0538, 0x055f, 0x053f,
+ 0x04e5, 0x046d, 0x03fc, 0x03ce, 0x03e9, 0x0425,
+ 0x0469, 0x0486, 0x0466, 0x042f, 0x03ed, 0x03bd,
+ 0x03d7, 0x0401, 0x03f1, 0x03b9, 0x034c, 0x02b9,
+ 0x0257, 0x0231, 0x023c, 0x0287, 0x02bc, 0x0279,
+ 0x01cd, 0x00e7, 0x0027, 0xffe8, 0xfff5, 0xfff4,
+ 0xffd9, 0xffa4, 0xff69, 0xff62, 0xffa4, 0x0014,
+ 0x0091, 0x00ee, 0x0102, 0x00dc, 0x00b1, 0x00a5,
+ 0x00dc, 0x0166, 0x021d, 0x02d3, 0x034e, 0x034a,
+ 0x02fd, 0x02d3, 0x02d2, 0x02d5, 0x02d2, 0x02c3,
+ 0x02bf, 0x02e2, 0x032e, 0x03a4, 0x0415, 0x0440,
+ 0x042b, 0x0409, 0x040a, 0x043e, 0x047e, 0x04ac,
+ 0x04d6, 0x04fb, 0x051d, 0x054e, 0x058c, 0x05c3,
+ 0x05d9, 0x05bc, 0x0579, 0x0537, 0x0508, 0x04d5,
+ 0x0498, 0x0482, 0x04a6, 0x04ca, 0x04b7, 0x0454,
+ 0x03ad, 0x02f4, 0x026b, 0x0230, 0x0207, 0x01b9,
+ 0x0172, 0x014e, 0x0127, 0x00f4, 0x00a6, 0x0047,
+ 0x002e, 0x0062, 0x009d, 0x00bb, 0x009a, 0x005d,
+ 0x0053, 0x0062, 0x0059, 0x0055, 0x007c, 0x00c6,
+ 0x00e9, 0x00bc, 0x0089, 0x0069, 0x0042, 0x0030,
+ 0x0034, 0x002e, 0x001d, 0xfffb, 0xffe0, 0xfff5,
+ 0x001c, 0x004a, 0x0080, 0x00b4, 0x00fe, 0x0156,
+ 0x0184, 0x018e, 0x0173, 0x0126, 0x00e0, 0x00c4,
+ 0x00c5, 0x00f8, 0x014e, 0x0172, 0x0140, 0x00fb,
+ 0x00f0, 0x011f, 0x016b, 0x01d6, 0x0260, 0x02e2,
+ 0x0316, 0x02c7, 0x0228, 0x01ac, 0x0172, 0x0149,
+ 0x010d, 0x00b5, 0x004a, 0xffe0, 0xff88, 0xff66,
+ 0xffa2, 0x002c, 0x00a9, 0x00e1, 0x00f5, 0x0121,
+ 0x0181, 0x01e9, 0x0211, 0x01eb, 0x01a9, 0x019c,
+ 0x01ef, 0x025d, 0x02a5, 0x02e9, 0x0334, 0x0361,
+ 0x0372, 0x034f, 0x02c7, 0x01f9, 0x0138, 0x00c7,
+ 0x00b9, 0x00f4, 0x016c, 0x0219, 0x02d1, 0x0368,
+ 0x03a7, 0x0371, 0x0314, 0x02e0, 0x02d7, 0x02d6,
+ 0x02b8, 0x0283, 0x025d, 0x0243, 0x023f, 0x026a,
+ 0x02a1, 0x02c3, 0x02da, 0x02e5, 0x030a, 0x036f,
+ 0x03e0, 0x0422, 0x040e, 0x03ae, 0x0372, 0x0383,
+ 0x0376, 0x0322, 0x02be, 0x0260, 0x0211, 0x01c5,
+ 0x0157, 0x00de, 0x008f, 0x008f, 0x00d8, 0x0128,
+ 0x015c, 0x0186, 0x01ab, 0x01cd, 0x01f5, 0x0218,
+ 0x0242, 0x0298, 0x0300, 0x0345, 0x035b, 0x035a,
+ 0x034a, 0x0346, 0x0390, 0x042c, 0x04b7, 0x04e0,
+ 0x0494, 0x03f4, 0x034b, 0x02bf, 0x0244, 0x01db,
+ 0x0191, 0x0170, 0x016b, 0x0165, 0x0140, 0x010e,
+ 0x0120, 0x0176, 0x0182, 0x012e, 0x00e1, 0x00aa,
+ 0x0071, 0x0046, 0x0022, 0x002b, 0x0078, 0x00b8,
+ 0x00c7, 0x00b3, 0x007b, 0x0039, 0xfffb, 0xffa6,
+ 0xff2e, 0xfe84, 0xfde6, 0xfdb3, 0xfdd9, 0xfe02,
+ 0xfdee, 0xfd84, 0xfd11, 0xfce6, 0xfcff, 0xfd48,
+ 0xfd92, 0xfdaf, 0xfda1, 0xfd62, 0xfce8, 0xfc55,
+ 0xfbbc, 0xfb39, 0xfaf7, 0xfae3, 0xfade, 0xfae0,
+ 0xfad8, 0xfaee, 0xfb70, 0xfc3f, 0xfcf5, 0xfd49,
+ 0xfd37, 0xfcf7, 0xfcb4, 0xfc57, 0xfbfe, 0xfc0a,
+ 0xfc6e, 0xfcb3, 0xfc9f, 0xfc74, 0xfc9c, 0xfd1a,
+ 0xfd6c, 0xfd57, 0xfd08, 0xfc9a, 0xfc22, 0xfba9,
+ 0xfb37, 0xfb11, 0xfb29, 0xfb0e, 0xfab7, 0xfa64,
+ 0xfa57, 0xfabb, 0xfb35, 0xfb5d, 0xfb65, 0xfb85,
+ 0xfbb6, 0xfbd4, 0xfbb3, 0xfb7a, 0xfb6d, 0xfb7a,
+ 0xfb9d, 0xfbe6, 0xfc3b, 0xfc81, 0xfc9f, 0xfcb1,
+ 0xfd00, 0xfd54, 0xfd33, 0xfc8e, 0xfbc5, 0xfb52,
+ 0xfb76, 0xfc18, 0xfcec, 0xfda3, 0xfe1e, 0xfe58,
+ 0xfe3a, 0xfe07, 0xfe26, 0xfe8e, 0xff25, 0xffd1,
+ 0x0053, 0x00ba, 0x0138, 0x01a2, 0x01b5, 0x0167,
+ 0x00fb, 0x00c2, 0x00b7, 0x00a8, 0x008b, 0x006c,
+ 0x005e, 0x006e, 0x00b6, 0x0151, 0x0201, 0x027a,
+ 0x02cb, 0x030b, 0x032e, 0x0332, 0x030f, 0x02bb,
+ 0x0234, 0x01ae, 0x01a5, 0x0224, 0x02bd, 0x033e,
+ 0x039a, 0x03a7, 0x036e, 0x032f, 0x0327, 0x035f,
+ 0x03b6, 0x041c, 0x0488, 0x04c8, 0x04ac, 0x0435,
+ 0x03b6, 0x0384, 0x0384, 0x0366, 0x0323, 0x02ef,
+ 0x02f7, 0x0331, 0x035f, 0x0351, 0x0324, 0x030f,
+ 0x030d, 0x02f5, 0x02d1, 0x02be, 0x02c7, 0x02f6,
+ 0x0322, 0x0325, 0x0314, 0x02f5, 0x02c6, 0x02ab,
+ 0x02ba, 0x02f3, 0x0320, 0x02f7, 0x028c, 0x020b,
+ 0x0181, 0x011b, 0x00e2, 0x00c1, 0x00d2, 0x010a,
+ 0x0129, 0x0119, 0x00e3, 0x00b8, 0x00bc, 0x00cf,
+ 0x00e3, 0x00e2, 0x0082, 0xffdd, 0xff4e, 0xfef8,
+ 0xfeeb, 0xff28, 0xff73, 0xff9c, 0xff8f, 0xff70,
+ 0xff9a, 0x0016, 0x0074, 0x005d, 0xffde, 0xff39,
+ 0xfeb3, 0xfe6e, 0xfe77, 0xfec3, 0xff07, 0xff08,
+ 0xfecb, 0xfe48, 0xfd86, 0xfcd8, 0xfc6a, 0xfc38,
+ 0xfc49, 0xfc7f, 0xfcae, 0xfcdf, 0xfcfe, 0xfceb,
+ 0xfcd7, 0xfcff, 0xfd52, 0xfd9f, 0xfdea, 0xfe40,
+ 0xfe77, 0xfe82, 0xfe94, 0xfea3, 0xfe93, 0xfea0,
+ 0xfef0, 0xff66, 0xffb9, 0xff90, 0xfef6, 0xfe46,
+ 0xfdab, 0xfd4d, 0xfd53, 0xfdb2, 0xfe41, 0xfec0,
+ 0xff10, 0xff40, 0xff25, 0xfeb4, 0xfe4b, 0xfe1a,
+ 0xfe02, 0xfde7, 0xfdc5, 0xfdb7, 0xfdd7, 0xfe23,
+ 0xfe8e, 0xfef8, 0xff49, 0xff92, 0xffd5, 0x0009,
+ 0x0031, 0x0042, 0x0063, 0x00b2, 0x00f1, 0x00e0,
+ 0x0086, 0x0005, 0xff84, 0xff38, 0xff51, 0xffba,
+ 0x001b, 0x0055, 0x008d, 0x00d3, 0x0112, 0x0126,
+ 0x0100, 0x00db, 0x00f8, 0x014a, 0x0196, 0x01c1,
+ 0x01d0, 0x01d3, 0x0208, 0x027c, 0x02d3, 0x02f3,
+ 0x032e, 0x037d, 0x03af, 0x03c7, 0x03b2, 0x0370,
+ 0x0330, 0x0317, 0x0364, 0x042b, 0x0520, 0x05f0,
+ 0x0644, 0x0602, 0x05a7, 0x059a, 0x05d2, 0x0628,
+ 0x066d, 0x068b, 0x0688, 0x0648, 0x05e0, 0x05a5,
+ 0x05aa, 0x05d2, 0x05f9, 0x0603, 0x0606, 0x060d,
+ 0x0601, 0x05d8, 0x0588, 0x0522, 0x04ea, 0x04e7,
+ 0x04f3, 0x0503, 0x0507, 0x04e4, 0x04a3, 0x0479,
+ 0x048a, 0x04ae, 0x04a2, 0x0465, 0x0422, 0x03d8,
+ 0x034a, 0x0271, 0x01cc, 0x01c4, 0x020b, 0x0220,
+ 0x01de, 0x015a, 0x00cb, 0x006c, 0x0036, 0xffff,
+ 0xffcf, 0xffe0, 0x0037, 0x0096, 0x00c9, 0x00df,
+ 0x0102, 0x0122, 0x012c, 0x014f, 0x018f, 0x01ae,
+ 0x01b3, 0x01be, 0x01b0, 0x017f, 0x012f, 0x00dd,
+ 0x00d0, 0x00f1, 0x00f5, 0x00ea, 0x00e2, 0x00eb,
+ 0x0132, 0x0195, 0x01d9, 0x01fd, 0x01f3, 0x01d4,
+ 0x01e3, 0x0229, 0x0295, 0x02fb, 0x0317, 0x02fb,
+ 0x02d2, 0x0289, 0x021b, 0x0199, 0x011c, 0x00d4,
+ 0x00c1, 0x00c2, 0x00de, 0x0117, 0x0155, 0x017d,
+ 0x0173, 0x0142, 0x0106, 0x00bf, 0x006b, 0x0004,
+ 0xff83, 0xfede, 0xfe20, 0xfd69, 0xfce3, 0xfcb1,
+ 0xfcee, 0xfd7b, 0xfe22, 0xfed3, 0xff6a, 0xffb7,
+ 0xffba, 0xff9f, 0xffa4, 0xffd6, 0xfff6, 0xffeb,
+ 0xffd0, 0xff9d, 0xff5e, 0xff46, 0xff64, 0xffae,
+ 0xfffe, 0x001a, 0xffed, 0xff8e, 0xff1f, 0xfeb6,
+ 0xfe59, 0xfe0f, 0xfde2, 0xfdee, 0xfe50, 0xfede,
+ 0xff4f, 0xff84, 0xff8d, 0xff99, 0xffb9, 0xffb5,
+ 0xff87, 0xff68, 0xff6c, 0xff8f, 0xffcd, 0x000d,
+ 0x003b, 0x0062, 0x00ab, 0x010c, 0x0116, 0x00c5,
+ 0x00a2, 0x00ca, 0x00f4, 0x010b, 0x00f8, 0x00b7,
+ 0x0079, 0x0042, 0x0019, 0x0021, 0x004d, 0x0096,
+ 0x00fc, 0x014b, 0x0181, 0x01d7, 0x0242, 0x02a8,
+ 0x0307, 0x033c, 0x0363, 0x03d1, 0x0489, 0x054c,
+ 0x05cb, 0x05bf, 0x0535, 0x0467, 0x03c1, 0x03c4,
+ 0x0456, 0x04e2, 0x053a, 0x0576, 0x059f, 0x05ca,
+ 0x0600, 0x064a, 0x06a1, 0x06ca, 0x06d4, 0x06e3,
+ 0x06bb, 0x064a, 0x05ca, 0x0541, 0x04c1, 0x047b,
+ 0x0474, 0x049e, 0x04ba, 0x0485, 0x041d, 0x03c5,
+ 0x0395, 0x0384, 0x0363, 0x0325, 0x02db, 0x0288,
+ 0x0242, 0x0223, 0x021f, 0x0216, 0x01e6, 0x018c,
+ 0x0123, 0x00d0, 0x00e0, 0x013f, 0x0154, 0x0106,
+ 0x00ba, 0x006a, 0xfff0, 0xff64, 0xfeef, 0xfebb,
+ 0xfeca, 0xff01, 0xff59, 0xffb9, 0x0013, 0x0069,
+ 0x0092, 0x006c, 0x0029, 0x0021, 0x0050, 0x0037,
+ 0xffc7, 0xff99, 0xffe1, 0x0044, 0x0089, 0x0096,
+ 0x008f, 0x00b0, 0x00e7, 0x0127, 0x0145, 0x00df,
+ 0x0035, 0xffda, 0xffc9, 0xffda, 0x0003, 0x0037,
+ 0x008e, 0x0107, 0x0161, 0x0183, 0x0173, 0x0140,
+ 0x0122, 0x012a, 0x0126, 0x00ee, 0x00a0, 0x0072,
+ 0x004c, 0xfff3, 0xff8d, 0xff69, 0xff87, 0xffc6,
+ 0x000e, 0x0043, 0x0052, 0x0054, 0x0055, 0x0022,
+ 0xffae, 0xff3b, 0xfee5, 0xfea3, 0xfe89, 0xfe7e,
+ 0xfe3b, 0xfdc9, 0xfd80, 0xfd8e, 0xfdd3, 0xfe33,
+ 0xfec6, 0xff8b, 0x004a, 0x00ce, 0x00ff, 0x00f4,
+ 0x00cb, 0x008e, 0x004f, 0x001f, 0xffd4, 0xff67,
+ 0xff29, 0xff45, 0xff94, 0xffd5, 0xfff4, 0xfffc,
+ 0xffeb, 0xffc5, 0xffab, 0xffa2, 0xff97, 0xff89,
+ 0xff6b, 0xff2a, 0xfebb, 0xfe35, 0xfdd8, 0xfdc9,
+ 0xfdd7, 0xfdd7, 0xfdea, 0xfe33, 0xfe7c, 0xfe91,
+ 0xfea3, 0xfed5, 0xfee1, 0xfeab, 0xfe61, 0xfe13,
+ 0xfdec, 0xfe1a, 0xfe5e, 0xfe6a, 0xfe55, 0xfe4c,
+ 0xfe64, 0xfeb4, 0xff3f, 0xffc6, 0xffe2, 0xff88,
+ 0xff2e, 0xff1e, 0xff2b, 0xff4b, 0xff85, 0xffaf,
+ 0xffd2, 0x000c, 0x0055, 0x00b2, 0x011a, 0x0156,
+ 0x015e, 0x0147, 0x0118, 0x011b, 0x0176, 0x01d8,
+ 0x0217, 0x0270, 0x02fb, 0x0366, 0x0348, 0x02c5,
+ 0x027e, 0x02b1, 0x0310, 0x034a, 0x033c, 0x02ef,
+ 0x029a, 0x0251, 0x020c, 0x01d7, 0x01a0, 0x0140,
+ 0x00e9, 0x00db, 0x00f4, 0x0128, 0x019a, 0x0200,
+ 0x01f6, 0x01b4, 0x01a0, 0x01dc, 0x0259, 0x02cd,
+ 0x02eb, 0x029b, 0x01f8, 0x014f, 0x00dd, 0x00a7,
+ 0x00b9, 0x00f8, 0x012c, 0x0155, 0x0179, 0x0186,
+ 0x018e, 0x0184, 0x0134, 0x00ba, 0x005a, 0x0024,
+ 0xffef, 0xffa3, 0xff5b, 0xff2e, 0xff29, 0xff4f,
+ 0xff78, 0xffb7, 0x002f, 0x006c, 0x001f, 0xffb8,
+ 0xff8a, 0xff94, 0xffc8, 0x0000, 0x002e, 0x004b,
+ 0x0041, 0x0025, 0x0013, 0x0008, 0x000a, 0x0001,
+ 0xffee, 0x001b, 0x0098, 0x011a, 0x016e, 0x017c,
+ 0x0148, 0x00fb, 0x00d6, 0x00ef, 0x0121, 0x0161,
+ 0x01b8, 0x01da, 0x0191, 0x0110, 0x007c, 0xffee,
+ 0xff8f, 0xff66, 0xff8b, 0x0002, 0x0070, 0x0092,
+ 0x00a4, 0x00ce, 0x00d3, 0x0089, 0x0033, 0x0009,
+ 0xffdd, 0xffa0, 0xff8b, 0xff95, 0xff77, 0xff15,
+ 0xfe72, 0xfdc5, 0xfd63, 0xfd5a, 0xfd63, 0xfd6c,
+ 0xfd82, 0xfd6b, 0xfd1f, 0xfcf7, 0xfd09, 0xfd3c,
+ 0xfd9f, 0xfdfc, 0xfdfe, 0xfdc0, 0xfdb4, 0xfe0f,
+ 0xfe70, 0xfe59, 0xfdf6, 0xfdbd, 0xfdd5, 0xfe2b,
+ 0xfe74, 0xfe7a, 0xfe61, 0xfe39, 0xfe1d, 0xfe53,
+ 0xfec6, 0xff2f, 0xff79, 0xff82, 0xff28, 0xfe7d,
+ 0xfdda, 0xfdb9, 0xfe22, 0xfe9d, 0xfedf, 0xfef0,
+ 0xfef4, 0xff1f, 0xff76, 0xffeb, 0x0078, 0x00f2,
+ 0x012b, 0x012c, 0x011e, 0x0119, 0x0115, 0x0115,
+ 0x0120, 0x0113, 0x00fd, 0x0123, 0x0187, 0x0201,
+ 0x026c, 0x0292, 0x0278, 0x0261, 0x0275, 0x02b4,
+ 0x02ec, 0x02f7, 0x02f0, 0x02e1, 0x02da, 0x02ec,
+ 0x02eb, 0x02db, 0x02fc, 0x0317, 0x02ec, 0x02ce,
+ 0x02f0, 0x0326, 0x0352, 0x0360, 0x034a, 0x0337,
+ 0x032a, 0x0302, 0x02cc, 0x02cb, 0x0308, 0x0336,
+ 0x0320, 0x02fc, 0x030b, 0x0330, 0x0335, 0x0325,
+ 0x0325, 0x0343, 0x0391, 0x040b, 0x0491, 0x0509,
+ 0x053d, 0x04ee, 0x043e, 0x03a8, 0x0372, 0x038b,
+ 0x03b6, 0x03b0, 0x0378, 0x0369, 0x03a4, 0x03e5,
+ 0x040d, 0x0418, 0x03ee, 0x03b5, 0x0394, 0x0368,
+ 0x033e, 0x031c, 0x02bd, 0x023e, 0x020d, 0x0218,
+ 0x01fb, 0x01a0, 0x0164, 0x0188, 0x01bd, 0x01c7,
+ 0x01c6, 0x0194, 0x0105, 0x007f, 0x0055, 0x006c,
+ 0x009d, 0x00d8, 0x0120, 0x0185, 0x01f4, 0x0237,
+ 0x0227, 0x01da, 0x019e, 0x01b6, 0x0223, 0x02b8,
+ 0x0336, 0x0382, 0x03bd, 0x03f4, 0x03f5, 0x03c5,
+ 0x03a2, 0x0395, 0x037d, 0x0353, 0x0320, 0x0316,
+ 0x034e, 0x0393, 0x03da, 0x0450, 0x04ca, 0x0500,
+ 0x04e9, 0x04a1, 0x043e, 0x03c9, 0x0348, 0x02d3,
+ 0x0261, 0x01f9, 0x01f6, 0x0282, 0x0346, 0x03d8,
+ 0x03f5, 0x0390, 0x02df, 0x020d, 0x0141, 0x00cc,
+ 0x00cd, 0x00ec, 0x00cf, 0x00ab, 0x00c4, 0x00e2,
+ 0x00d0, 0x00a0, 0x004a, 0xffd7, 0xff73, 0xff15,
+ 0xfea3, 0xfe2d, 0xfdbb, 0xfd67, 0xfd3e, 0xfd1e,
+ 0xfd1e, 0xfd7a, 0xfe02, 0xfe52, 0xfe52, 0xfe43,
+ 0xfe68, 0xfebd, 0xff21, 0xff96, 0x000d, 0x003e,
+ 0xfffd, 0xff95, 0xff69, 0xff6a, 0xff49, 0xfed5,
+ 0xfe09, 0xfd2d, 0xfcae, 0xfcb1, 0xfd0f, 0xfd76,
+ 0xfd9d, 0xfd8f, 0xfda3, 0xfe0e, 0xfeb2, 0xff47,
+ 0xff9d, 0xffb1, 0xff93, 0xff53, 0xff06, 0xfec9,
+ 0xfec7, 0xff14, 0xff77, 0xff9a, 0xff74, 0xff40,
+ 0xff20, 0xff00, 0xfecc, 0xfe99, 0xfe9e, 0xfef1,
+ 0xff51, 0xff77, 0xff8f, 0xffe8, 0x0079, 0x010a,
+ 0x0184, 0x01db, 0x020c, 0x022c, 0x0253, 0x029f,
+ 0x0323, 0x03ae, 0x03ef, 0x03e3, 0x03dc, 0x0400,
+ 0x0434, 0x0475, 0x04c4, 0x04f8, 0x051a, 0x0560,
+ 0x05c1, 0x060e, 0x0625, 0x05e1, 0x0561, 0x0520,
+ 0x0540, 0x056d, 0x0563, 0x0511, 0x04a6, 0x0482,
+ 0x04d5, 0x0550, 0x05a0, 0x05de, 0x0620, 0x062a,
+ 0x05e8, 0x05a1, 0x0589, 0x0588, 0x0550, 0x04c7,
+ 0x0445, 0x041a, 0x0425, 0x0439, 0x0453, 0x046e,
+ 0x047d, 0x0468, 0x0421, 0x03ca, 0x0376, 0x0328,
+ 0x02f1, 0x02a3, 0x020c, 0x0184, 0x016d, 0x0190,
+ 0x019d, 0x017a, 0x00fe, 0x0037, 0xff99, 0xff73,
+ 0xffc5, 0x0057, 0x00ad, 0x0085, 0x003e, 0x0031,
+ 0x0048, 0x0064, 0x006d, 0x003c, 0xffd5, 0xff5e,
+ 0xfef4, 0xfea3, 0xfe6a, 0xfe50, 0xfe64, 0xfe9b,
+ 0xfeea, 0xff48, 0xff90, 0xffa4, 0xffa3, 0xffaf,
+ 0xffc3, 0xffda, 0xfff0, 0xfff7, 0xfffb, 0x0015,
+ 0x0027, 0xfffe, 0xffb3, 0xff7b, 0xff62, 0xff5d,
+ 0xff60, 0xff64, 0xff6d, 0xff66, 0xff41, 0xff21,
+ 0xff25, 0xff40, 0xff66, 0xff8f, 0xffb6, 0xffe5,
+ 0x000e, 0x0011, 0xffea, 0xffa9, 0xff64, 0xff41,
+ 0xff4a, 0xff59, 0xff60, 0xff60, 0xff3f, 0xff02,
+ 0xfed4, 0xfedb, 0xff16, 0xff4d, 0xff57, 0xff55,
+ 0xff5c, 0xff43, 0xfee5, 0xfe6a, 0xfe2d, 0xfe57,
+ 0xfea8, 0xfec6, 0xfe90, 0xfe2c, 0xfddd, 0xfdcf,
+ 0xfde3, 0xfdd4, 0xfd9c, 0xfd6e, 0xfd59, 0xfd68,
+ 0xfda4, 0xfde9, 0xfe28, 0xfe60, 0xfe58, 0xfe39,
+ 0xfe69, 0xfec5, 0xff00, 0xff19, 0xfefe, 0xfeb2,
+ 0xfe5b, 0xfe0e, 0xfde9, 0xfded, 0xfdfa, 0xfe20,
+ 0xfe55, 0xfe74, 0xfe8e, 0xfeae, 0xfedd, 0xff10,
+ 0xfef7, 0xfe9f, 0xfe8c, 0xfed4, 0xff58, 0x0019,
+ 0x00c7, 0x010f, 0x0106, 0x00de, 0x00c3, 0x00d0,
+ 0x00fa, 0x0137, 0x0168, 0x015b, 0x0122, 0x010e,
+ 0x0145, 0x01b6, 0x0244, 0x02cb, 0x0343, 0x03c8,
+ 0x0441, 0x0475, 0x0490, 0x04b7, 0x049f, 0x0442,
+ 0x03f8, 0x03c3, 0x0387, 0x035c, 0x034e, 0x0347,
+ 0x0330, 0x0315, 0x0309, 0x0302, 0x02fd, 0x030f,
+ 0x033d, 0x036b, 0x036e, 0x0340, 0x0302, 0x02ba,
+ 0x0256, 0x0200, 0x01f0, 0x0215, 0x0236, 0x0253,
+ 0x0277, 0x025f, 0x01e9, 0x016d, 0x011f, 0x0103,
+ 0x012a, 0x0164, 0x018f, 0x01d2, 0x020c, 0x0214,
+ 0x01fe, 0x01c2, 0x0174, 0x0146, 0x010e, 0x00a7,
+ 0x002c, 0xffaf, 0xff4f, 0xff13, 0xfed0, 0xfe90,
+ 0xfe6c, 0xfe48, 0xfe14, 0xfdec, 0xfdfd, 0xfe2f,
+ 0xfe16, 0xfda9, 0xfd4a, 0xfd27, 0xfd4d, 0xfdb5,
+ 0xfe1d, 0xfe4e, 0xfe37, 0xfdea, 0xfdac, 0xfda4,
+ 0xfdb6, 0xfdc8, 0xfdb9, 0xfd75, 0xfd40, 0xfd52,
+ 0xfd87, 0xfdbf, 0xfdfd, 0xfe2d, 0xfe54, 0xfe78,
+ 0xfe76, 0xfe62, 0xfe6f, 0xfe82, 0xfea5, 0xff06,
+ 0xff83, 0xfff3, 0x004f, 0x0088, 0x00d2, 0x0168,
+ 0x01f8, 0x022a, 0x01ff, 0x019b, 0x0149, 0x011f,
+ 0x00cd, 0x0058, 0x0028, 0x0060, 0x00b5, 0x00ca,
+ 0x007d, 0x0003, 0xffb0, 0xffc5, 0x0047, 0x0100,
+ 0x01af, 0x0226, 0x024a, 0x0230, 0x0211, 0x0202,
+ 0x01dd, 0x0181, 0x00f7, 0x005d, 0xfff8, 0xffe7,
+ 0xffe9, 0xffc1, 0xff80, 0xff41, 0xff3e, 0xffc0,
+ 0x00af, 0x0189, 0x01d5, 0x018f, 0x0103, 0x0075,
+ 0x000e, 0xffd2, 0xffa3, 0xff9d, 0xffcc, 0xffe1,
+ 0xffc5, 0xffbf, 0xffde, 0xfffe, 0x000a, 0x000b,
+ 0x0018, 0x0030, 0x002f, 0xfffd, 0xffb0, 0xffa8,
+ 0x0010, 0x009b, 0x00f8, 0x012c, 0x0154, 0x0186,
+ 0x01aa, 0x0195, 0x016a, 0x0157, 0x013d, 0x0101,
+ 0x00cf, 0x00d7, 0x010e, 0x013c, 0x0137, 0x0101,
+ 0x00c1, 0x009c, 0x009e, 0x00dc, 0x0161, 0x0205,
+ 0x02a4, 0x0318, 0x0339, 0x0337, 0x0354, 0x035d,
+ 0x0321, 0x02c5, 0x025b, 0x01ee, 0x01cd, 0x0230,
+ 0x02f8, 0x03d8, 0x0478, 0x04ac, 0x04a4, 0x0482,
+ 0x041f, 0x0380, 0x02d9, 0x0260, 0x0270, 0x0306,
+ 0x0389, 0x03b5, 0x03b7, 0x03a4, 0x039e, 0x03cd,
+ 0x0418, 0x045c, 0x0461, 0x040d, 0x038f, 0x030f,
+ 0x02b5, 0x02b0, 0x02ca, 0x02c0, 0x02ab, 0x029f,
+ 0x028f, 0x0264, 0x0209, 0x01c9, 0x01df, 0x0214,
+ 0x0246, 0x0288, 0x02be, 0x02c8, 0x02b1, 0x0284,
+ 0x022a, 0x0176, 0x0091, 0x0005, 0x000d, 0x006f,
+ 0x00d5, 0x0100, 0x00ef, 0x00cf, 0x00b6, 0x00a8,
+ 0x00af, 0x00c8, 0x00ba, 0x0045, 0xff7e, 0xfebe,
+ 0xfe5f, 0xfe95, 0xff50, 0x0031, 0x00e1, 0x014d,
+ 0x018f, 0x01bb, 0x01cb, 0x01ad, 0x0160, 0x00fe,
+ 0x00aa, 0x006e, 0x004d, 0x0058, 0x0093, 0x00f8,
+ 0x0182, 0x022a, 0x02cb, 0x0332, 0x036c, 0x03a7,
+ 0x03cb, 0x03ca, 0x03d1, 0x03f5, 0x0424, 0x044c,
+ 0x0468, 0x0491, 0x04d1, 0x04fa, 0x04fe, 0x04f0,
+ 0x04cd, 0x049c, 0x047b, 0x045d, 0x042b, 0x03f7,
+ 0x03d6, 0x03c1, 0x03ba, 0x03c0, 0x0396, 0x0324,
+ 0x02a8, 0x0257, 0x0236, 0x0225, 0x01e3, 0x0183,
+ 0x0156, 0x0148, 0x0115, 0x00c7, 0x0084, 0x0048,
+ 0xffef, 0xff6e, 0xfefc, 0xfec5, 0xfecc, 0xfef8,
+ 0xff1d, 0xff33, 0xff57, 0xff8d, 0xffce, 0xfff8,
+ 0xffc7, 0xff4c, 0xfee8, 0xfec1, 0xfe96, 0xfe28,
+ 0xfda2, 0xfd58, 0xfd5b, 0xfda4, 0xfe26, 0xfeb0,
+ 0xff12, 0xff39, 0xff39, 0xff31, 0xff10, 0xfece,
+ 0xfe9b, 0xfe7d, 0xfe6c, 0xfe66, 0xfe4d, 0xfe3d,
+ 0xfe59, 0xfe70, 0xfe76, 0xfe7e, 0xfe76, 0xfe71,
+ 0xfe8e, 0xfec6, 0xfef7, 0xfee9, 0xfeab, 0xfe9b,
+ 0xfeb2, 0xfeb7, 0xfebf, 0xfece, 0xfeca, 0xfeaa,
+ 0xfe67, 0xfe23, 0xfe25, 0xfea1, 0xff73, 0x0016,
+ 0x0042, 0x0039, 0x0053, 0x00b2, 0x0113, 0x010c,
+ 0x00bc, 0x0085, 0x006a, 0x0074, 0x00b7, 0x010a,
+ 0x014c, 0x016d, 0x014d, 0x0107, 0x00e0, 0x00ff,
+ 0x0146, 0x017b, 0x0187, 0x015e, 0x00ea, 0x0057,
+ 0xffee, 0xffe4, 0x004f, 0x00ef, 0x0168, 0x019d,
+ 0x0183, 0x012f, 0x00e7, 0x00db, 0x011f, 0x0196,
+ 0x01f6, 0x0247, 0x02c8, 0x036e, 0x03f0, 0x03fb,
+ 0x0375, 0x02b6, 0x0227, 0x0205, 0x025b, 0x02d0,
+ 0x0306, 0x030a, 0x0303, 0x02fc, 0x02f1, 0x02c5,
+ 0x0274, 0x0235, 0x024a, 0x02b9, 0x032d, 0x034a,
+ 0x031d, 0x02e6, 0x02bd, 0x02a1, 0x0297, 0x02a4,
+ 0x02b4, 0x028e, 0x021a, 0x0196, 0x0156, 0x0168,
+ 0x0196, 0x01b4, 0x01cc, 0x020b, 0x0292, 0x0335,
+ 0x0383, 0x0353, 0x02e6, 0x0262, 0x01cd, 0x015a,
+ 0x0131, 0x013f, 0x015b, 0x0178, 0x01b0, 0x0214,
+ 0x0278, 0x02a3, 0x02a4, 0x02b9, 0x02e5, 0x030e,
+ 0x0335, 0x0334, 0x02da, 0x026a, 0x0247, 0x026a,
+ 0x0297, 0x02c0, 0x02fa, 0x0356, 0x03ad, 0x03b3,
+ 0x034e, 0x02a9, 0x01f8, 0x0165, 0x010d, 0x0103,
+ 0x0141, 0x01ad, 0x0217, 0x024d, 0x023c, 0x01e3,
+ 0x0155, 0x00d8, 0x0097, 0x007c, 0x0084, 0x00b0,
+ 0x00bd, 0x0085, 0x001f, 0xffa7, 0xff34, 0xfecd,
+ 0xfe58, 0xfdee, 0xfdc3, 0xfdec, 0xfe5b, 0xfed6,
+ 0xff18, 0xfef5, 0xfe67, 0xfdc5, 0xfd6d, 0xfd6a,
+ 0xfdce, 0xfe75, 0xfed7, 0xfecd, 0xfe82, 0xfddf,
+ 0xfd0d, 0xfc89, 0xfc80, 0xfcd2, 0xfd4d, 0xfdb6,
+ 0xfdfd, 0xfe1f, 0xfe03, 0xfda9, 0xfd3e, 0xfd0f,
+ 0xfd3d, 0xfd9c, 0xfe0d, 0xfe82, 0xfeca, 0xfeed,
+ 0xff1f, 0xff59, 0xff85, 0xffad, 0xffbe, 0xffad,
+ 0xffa6, 0xffb9, 0xffc4, 0xffc1, 0xffc7, 0xffc8,
+ 0xffa2, 0xff59, 0xff28, 0xff60, 0xfffb, 0x0089,
+ 0x00c8, 0x00d0, 0x00b3, 0x006f, 0x0030, 0x0025,
+ 0x004e, 0x0092, 0x00b2, 0x005d, 0xffa4, 0xff13,
+ 0xff0f, 0xff7b, 0x0007, 0x0088, 0x00fd, 0x0165,
+ 0x019a, 0x0198, 0x0196, 0x0199, 0x0158, 0x00d0,
+ 0x006b, 0x0072, 0x00c1, 0x0112, 0x013c, 0x014d,
+ 0x0161, 0x0153, 0x0119, 0x012b, 0x01bb, 0x0256,
+ 0x02a8, 0x02bc, 0x02a4, 0x0267, 0x01f4, 0x0183,
+ 0x018f, 0x021d, 0x02c0, 0x0318, 0x02e9, 0x0268,
+ 0x0216, 0x021d, 0x0238, 0x0229, 0x021b, 0x0236,
+ 0x0245, 0x026e, 0x030d, 0x03d5, 0x0436, 0x03ea,
+ 0x02fe, 0x0218, 0x019e, 0x0141, 0x0112, 0x012e,
+ 0x011b, 0x00b3, 0x003c, 0xffcc, 0xff8c, 0xff8e,
+ 0xff8c, 0xff6f, 0xff64, 0xff7c, 0xffa4, 0xffce,
+ 0xffec, 0xffde, 0xffb5, 0xffaf, 0xffba, 0xffb4,
+ 0xffbf, 0xffe8, 0x0025, 0x004c, 0xffdf, 0xfee6,
+ 0xfe22, 0xfde6, 0xfe0f, 0xfea8, 0xff6d, 0xffbe,
+ 0xff92, 0xff59, 0xff44, 0xff50, 0xff6b, 0xff8d,
+ 0xffb9, 0xffbc, 0xff8b, 0xffa5, 0x0034, 0x00a1,
+ 0x0089, 0x0046, 0x004c, 0x0086, 0x0095, 0x007d,
+ 0x005f, 0x0019, 0xffb8, 0xff6b, 0xff40, 0xff2c,
+ 0xff04, 0xfeb9, 0xfe6d, 0xfe29, 0xfe11, 0xfe37,
+ 0xfe3b, 0xfe00, 0xfdba, 0xfd85, 0xfd96, 0xfdda,
+ 0xfdfc, 0xfe30, 0xfe97, 0xfec9, 0xfea5, 0xfe4a,
+ 0xfe00, 0xfe36, 0xfeba, 0xff23, 0xff8d, 0xffe8,
+ 0x0003, 0x002c, 0x008a, 0x00c7, 0x00b7, 0x009d,
+ 0x00a7, 0x00bd, 0x0106, 0x01a2, 0x0230, 0x0258,
+ 0x01f5, 0x0118, 0x008b, 0x00bb, 0x00e9, 0x00f4,
+ 0x0153, 0x018a, 0x014d, 0x0112, 0x00cc, 0x0092,
+ 0x00e8, 0x018b, 0x01ec, 0x01ff, 0x01d3, 0x01ab,
+ 0x01ed, 0x027b, 0x02e3, 0x0322, 0x039e, 0x0424,
+ 0x03ed, 0x0305, 0x0210, 0x0121, 0x004b, 0xfff6,
+ 0x003b, 0x00f5, 0x01d7, 0x02aa, 0x035e, 0x03ad,
+ 0x037c, 0x030e, 0x0297, 0x0243, 0x0209, 0x01f5,
+ 0x0288, 0x0364, 0x03a4, 0x0383, 0x0335, 0x0287,
+ 0x01fd, 0x01e7, 0x0203, 0x020b, 0x01b4, 0x015f,
+ 0x0182, 0x01ce, 0x022a, 0x0249, 0x01e7, 0x01c8,
+ 0x01bd, 0x0126, 0x00f4, 0x0150, 0x01a0, 0x023b,
+ 0x0260, 0x016c, 0x00b6, 0x00c1, 0x013f, 0x023f,
+ 0x02ac, 0x01e1, 0x00fe, 0x00b1, 0x00d1, 0x013f,
+ 0x01d0, 0x0251, 0x02a4, 0x02fe, 0x0373, 0x036f,
+ 0x02e7, 0x0279, 0x0275, 0x02bf, 0x02a7, 0x01cc,
+ 0x00f9, 0x009b, 0x0074, 0x0098, 0x00fc, 0x0196,
+ 0x0277, 0x0338, 0x0359, 0x02b1, 0x01e1, 0x0201,
+ 0x02a1, 0x02a0, 0x021d, 0x017d, 0x011f, 0x0160,
+ 0x01c0, 0x022e, 0x02b5, 0x0243, 0x00eb, 0xffc2,
+ 0xfeb3, 0xfe10, 0xfe84, 0xff96, 0x010d, 0x02a5,
+ 0x035f, 0x0339, 0x02b1, 0x01de, 0x012e, 0x00c3,
+ 0x009c, 0x011d, 0x01de, 0x0242, 0x028c, 0x02ea,
+ 0x039f, 0x04b6, 0x052d, 0x049a, 0x034d, 0x017c,
+ 0x0025, 0xffc4, 0xffbd, 0x0088, 0x0237, 0x0387,
+ 0x045a, 0x04eb, 0x04c9, 0x043b, 0x0398, 0x0315,
+ 0x030a, 0x02c1, 0x01f7, 0x01d9, 0x02a9, 0x03b7,
+ 0x0485, 0x04d9, 0x04d6, 0x0451, 0x0340, 0x0238,
+ 0x0102, 0xffdf, 0x0010, 0x0116, 0x01ad, 0x01e6,
+ 0x01fc, 0x022e, 0x0242, 0x018b, 0x00df, 0x0124,
+ 0x019b, 0x0198, 0x0118, 0x0072, 0x0011, 0x003a,
+ 0x0195, 0x038a, 0x042d, 0x0359, 0x01aa, 0xffdd,
+ 0xffc1, 0x00d0, 0x0127, 0x013c, 0x00c6, 0xff4e,
+ 0xfeae, 0xff24, 0xffe1, 0x0166, 0x02c9, 0x02ec,
+ 0x0220, 0x0075, 0xfef3, 0xfeec, 0xffaf, 0x0037,
+ 0x002c, 0xffe9, 0x0021, 0x0057, 0x00aa, 0x0207,
+ 0x0310, 0x02b4, 0x021d, 0x019b, 0x0115, 0x0108,
+ 0x0148, 0x01cd, 0x027d, 0x02d3, 0x032e, 0x03bc,
+ 0x03ca, 0x032e, 0x0263, 0x01f8, 0x01c9, 0x0138,
+ 0x00d8, 0x0114, 0x00ee, 0x0087, 0x0109, 0x0225,
+ 0x02a5, 0x020a, 0x00e7, 0x0022, 0x0002, 0x0057,
+ 0x00bc, 0x0102, 0x018a, 0x0208, 0x01fb, 0x020a,
+ 0x020f, 0x013b, 0x0088, 0x0048, 0xff2f, 0xfdcd,
+ 0xfd77, 0xfdd2, 0xfe4e, 0xfe81, 0xfdf9, 0xfd5f,
+ 0xfd53, 0xfd8b, 0xfe29, 0xff6f, 0x0075, 0x004f,
+ 0xffe1, 0x0048, 0x008b, 0x000d, 0x0047, 0x0161,
+ 0x0202, 0x021c, 0x0219, 0x023e, 0x02a9, 0x0278,
+ 0x01b2, 0x0184, 0x016f, 0x00c8, 0x0048, 0x003c,
+ 0x0080, 0x00d7, 0x00cc, 0x0071, 0xffc5, 0xfea0,
+ 0xfd95, 0xfc9f, 0xfb41, 0xfa2e, 0xfa35, 0xfaf3,
+ 0xfb70, 0xfb53, 0xfb52, 0xfbbf, 0xfc12, 0xfc46,
+ 0xfcf3, 0xfe42, 0xfee7, 0xfda4, 0xfc59, 0xfd92,
+ 0x0057, 0x025e, 0x02e8, 0x026c, 0x01b7, 0x00ce,
+ 0xffb6, 0xff62, 0xffb2, 0xffc8, 0xffd6, 0xffe8,
+ 0xffc6, 0xfff0, 0x00b3, 0x01ba, 0x0270, 0x02bb,
+ 0x034f, 0x0429, 0x047e, 0x04a4, 0x05a9, 0x076e,
+ 0x0876, 0x07e4, 0x0706, 0x0737, 0x07d9, 0x084c,
+ 0x0912, 0x0a03, 0x0a30, 0x0976, 0x08ab, 0x08bb,
+ 0x09e5, 0x0b0c, 0x0b1f, 0x0b05, 0x0b71, 0x0ba5,
+ 0x0c5b, 0x0e65, 0x0fdf, 0x0f72, 0x0dcf, 0x0bfa,
+ 0x0b77, 0x0c69, 0x0d05, 0x0d08, 0x0cc2, 0x0b70,
+ 0x09e4, 0x096c, 0x0926, 0x0848, 0x0740, 0x05d1,
+ 0x03a1, 0x01bb, 0x0144, 0x01cb, 0x01ee, 0x0136,
+ 0x00dd, 0x01d8, 0x022c, 0xffe7, 0xfd3d, 0xfcd6,
+ 0xfdb3, 0xfe08, 0xfdb0, 0xfd42, 0xfcfe, 0xfc69,
+ 0xfb55, 0xfad8, 0xfbde, 0xfd43, 0xfccd, 0xfa7b,
+ 0xf875, 0xf7f2, 0xf8ea, 0xfa55, 0xfa1d, 0xf830,
+ 0xf621, 0xf3f1, 0xf1ea, 0xf116, 0xf0de, 0xf0af,
+ 0xf049, 0xee75, 0xebe6, 0xeac9, 0xea7d, 0xe94e,
+ 0xe81e, 0xe89c, 0xea74, 0xec0e, 0xecc2, 0xed3a,
+ 0xee25, 0xef6a, 0xf0f8, 0xf315, 0xf4f6, 0xf4fa,
+ 0xf3c0, 0xf3f8, 0xf640, 0xf8a1, 0xfa63, 0xfc62,
+ 0xfe0a, 0xfe28, 0xfd04, 0xfb48, 0xf9e2, 0xf9df,
+ 0xfa8e, 0xfb4b, 0xfca7, 0xfe11, 0xfed1, 0xff16,
+ 0xfed3, 0xff12, 0x008b, 0x012c, 0xff7e, 0xfcb6,
+ 0xfb5d, 0xfd9e, 0x0203, 0x053f, 0x0738, 0x0908,
+ 0x0a2f, 0x0a05, 0x08c3, 0x087c, 0x0af3, 0x0da7,
+ 0x0daf, 0x0cf1, 0x0e63, 0x113a, 0x131d, 0x13cb,
+ 0x13f1, 0x1368, 0x122d, 0x107b, 0x0e99, 0x0d19,
+ 0x0c0f, 0x0bcd, 0x0cd5, 0x0e2e, 0x0efa, 0x0ee8,
+ 0x0cdd, 0x095e, 0x06c7, 0x0670, 0x07c9, 0x07fe,
+ 0x05bb, 0x03d3, 0x037d, 0x03ae, 0x0504, 0x06b3,
+ 0x069b, 0x04a3, 0x016d, 0xfed9, 0xfedd, 0xffc3,
+ 0xff84, 0xfebe, 0xfe1d, 0xfdcf, 0xfdc9, 0xfe34,
+ 0xffad, 0x00ba, 0xff71, 0xfd87, 0xfd6e, 0xfeb2,
+ 0xff79, 0xff05, 0xfe70, 0xfe92, 0xfe9c, 0xfe29,
+ 0xfdd8, 0xfdcb, 0xfdaa, 0xfd49, 0xfc5e, 0xfa6b,
+ 0xf817, 0xf732, 0xf7e3, 0xf84a, 0xf7de, 0xf839,
+ 0xf9a5, 0xf9f3, 0xf8c9, 0xf8f6, 0xfae7, 0xfb84,
+ 0xf9bd, 0xf7bc, 0xf76f, 0xf870, 0xf8f4, 0xf8b6,
+ 0xf8fc, 0xf9cf, 0xf9dc, 0xf8d4, 0xf825, 0xf884,
+ 0xf86f, 0xf748, 0xf64e, 0xf60d, 0xf6e4, 0xf91d,
+ 0xfb3f, 0xfc26, 0xfc62, 0xfc80, 0xfcf5, 0xfd85,
+ 0xfcf3, 0xfbe9, 0xfc70, 0xfd8d, 0xfd42, 0xfd58,
+ 0xffa2, 0x01a6, 0x014e, 0x0001, 0xff7c, 0xffe2,
+ 0x0002, 0xff81, 0xffcc, 0x0069, 0x0010, 0x00b0,
+ 0x0304, 0x0470, 0x0409, 0x035e, 0x03df, 0x04ea,
+ 0x0499, 0x03cd, 0x0454, 0x0506, 0x054b, 0x060f,
+ 0x0737, 0x085e, 0x0886, 0x072f, 0x0621, 0x05e3,
+ 0x0555, 0x0517, 0x05ce, 0x065e, 0x0671, 0x0711,
+ 0x0810, 0x07dd, 0x06b7, 0x0671, 0x079b, 0x0985,
+ 0x0a80, 0x0997, 0x0907, 0x0a09, 0x0a33, 0x0924,
+ 0x0996, 0x0b88, 0x0b6c, 0x0897, 0x06a3, 0x05e3,
+ 0x0432, 0x041b, 0x0723, 0x08df, 0x0753, 0x05b4,
+ 0x0618, 0x06e4, 0x0658, 0x05ce, 0x0656, 0x0659,
+ 0x04fc, 0x0345, 0x0372, 0x05bc, 0x0620, 0x041e,
+ 0x033b, 0x0296, 0x0162, 0x01c6, 0x028d, 0x0192,
+ 0xff19, 0xfd34, 0xfe4f, 0x007f, 0x0219, 0x0519,
+ 0x065c, 0x0253, 0xfca1, 0xf88d, 0xf870, 0xfd51,
+ 0x0124, 0x008d, 0x000d, 0x012d, 0x0232, 0x048a,
+ 0x0913, 0x0b50, 0x0806, 0x0399, 0x0109, 0xfd8b,
+ 0xf9b2, 0xf8c6, 0xfb1b, 0xfe16, 0xfda1, 0xfb47,
+ 0xfbe4, 0xfd57, 0xfd0a, 0xfc86, 0xfcbc, 0xff63,
+ 0x029d, 0x02d3, 0x0273, 0x006e, 0xfbb8, 0xfb4d,
+ 0xfb6b, 0xf37e, 0xed2b, 0xf2b6, 0xfe2f, 0x0657,
+ 0x09d5, 0x0c98, 0x0a98, 0xfd6f, 0xeed9, 0xe860,
+ 0xe59f, 0xe510, 0xe626, 0xe58d, 0xea19, 0xf98c,
+ 0x0aa3, 0x12a7, 0x1037, 0x07ff, 0xff88, 0xf909,
+ 0xf3ff, 0xf396, 0xfd2a, 0x0767, 0xfed2, 0xe776,
+ 0xd929, 0xdb0e, 0xe554, 0xf55b, 0x091a, 0x18be,
+ 0x1f4a, 0x1eb2, 0x157d, 0x02a0, 0xf5bf, 0xfa4a,
+ 0x0277, 0x0609, 0x0ca4, 0x120c, 0x0cde, 0x00be,
+ 0xf63b, 0xf320, 0xf569, 0xf388, 0xeb3c, 0xe574,
+ 0xe852, 0xef35, 0xf3ba, 0xf778, 0xfc6d, 0x0040,
+ 0x034b, 0x037d, 0xfc62, 0xf537, 0xf5a1, 0xf3e3,
+ 0xe7b3, 0xdb8c, 0xda1f, 0xe025, 0xe8b3, 0xf2db,
+ 0xfacc, 0xfe14, 0xfe40, 0xfa4a, 0xf3e2, 0xf139,
+ 0xf0ed, 0xede3, 0xe96a, 0xe4dc, 0xdffc, 0xdf60,
+ 0xe58e, 0xecf7, 0xf42b, 0x001b, 0x092d, 0x0113,
+ 0xefd7, 0xe877, 0xeaf2, 0xf098, 0xfa8a, 0x0312,
+ 0x024b, 0xff17, 0x005a, 0x0054, 0xff17, 0x058a,
+ 0x0fcf, 0x11cf, 0x0bec, 0x0452, 0xfd17, 0xfb5c,
+ 0x01dd, 0x0921, 0x0d8f, 0x12d3, 0x141b, 0x0b69,
+ 0x02f3, 0x0488, 0x0851, 0x0861, 0x0ae8, 0x1005,
+ 0x136b, 0x1938, 0x2119, 0x2258, 0x2074, 0x2697,
+ 0x30cd, 0x352c, 0x36e1, 0x3bc4, 0x40f3, 0x42b6,
+ 0x3f8e, 0x37d9, 0x32b8, 0x35ab, 0x3b4c, 0x3eff,
+ 0x412e, 0x3d9d, 0x32d5, 0x290d, 0x249d, 0x253d,
+ 0x2f2d, 0x3f3c, 0x47c1, 0x4708, 0x464a, 0x4457,
+ 0x3cee, 0x35f4, 0x332c, 0x3141, 0x2de4, 0x24fc,
+ 0x14f3, 0x08ab, 0x08e7, 0x107a, 0x1a2c, 0x23d2,
+ 0x280b, 0x286e, 0x2afb, 0x2a57, 0x2268, 0x1c93,
+ 0x1ada, 0x1382, 0x0728, 0xfd5b, 0xf5c5, 0xf020,
+ 0xef6b, 0xf1cc, 0xf4b6, 0xf74e, 0xf6ef, 0xf539,
+ 0xf524, 0xf1d9, 0xeaca, 0xe648, 0xdf72, 0xd2a0,
+ 0xcdcb, 0xd391, 0xd466, 0xd2de, 0xd9df, 0xde8e,
+ 0xdbc2, 0xdf48, 0xe51a, 0xdfcb, 0xd956, 0xd809,
+ 0xcdd5, 0xbd15, 0xb498, 0xaf4c, 0xaa64, 0xb377,
+ 0xc3be, 0xc5e7, 0xbfcd, 0xbfe4, 0xbe40, 0xb769,
+ 0xb89c, 0xc0ac, 0xc405, 0xc84e, 0xd34b, 0xd6fe,
+ 0xcdcc, 0xc847, 0xcbeb, 0xcb8f, 0xc796, 0xcb87,
+ 0xd264, 0xd376, 0xd4dc, 0xd857, 0xd7ce, 0xd87d,
+ 0xddaf, 0xdd70, 0xd9e9, 0xde2a, 0xe2e6, 0xe192,
+ 0xe45a, 0xe7ae, 0xe05b, 0xdbd5, 0xe197, 0xdead,
+ 0xd6c5, 0xe0e8, 0xf09b, 0xf14d, 0xf08f, 0xf523,
+ 0xf134, 0xe97e, 0xe6c7, 0xe08a, 0xd8d6, 0xd77a,
+ 0xd577, 0xd4a6, 0xdb5e, 0xdb88, 0xd4b6, 0xdacc,
+ 0xe0f7, 0xd380, 0xcd0e, 0xdb29, 0xddc6, 0xd808,
+ 0xe9b9, 0xfb2b, 0xeeab, 0xe3d2, 0xe9ec, 0xe235,
+ 0xd319, 0xd93f, 0xe3f5, 0xe240, 0xe5b6, 0xef46,
+ 0xefda, 0xede3, 0xef8c, 0xed04, 0xe7da, 0xe389,
+ 0xdc26, 0xd719, 0xd7b9, 0xd36b, 0xce59, 0xd64b,
+ 0xdf27, 0xdd4a, 0xdf2b, 0xe48e, 0xdf52, 0xda94,
+ 0xdbe5, 0xd315, 0xc9c8, 0xd00f, 0xd380, 0xcdf9,
+ 0xd274, 0xda50, 0xd962, 0xdcf1, 0xe3b2, 0xdd72,
+ 0xd635, 0xdccc, 0xdf3c, 0xd3f6, 0xd258, 0xdfe6,
+ 0xe549, 0xe38f, 0xea73, 0xed4e, 0xe55f, 0xe44c,
+ 0xe6b7, 0xe1dc, 0xe2b7, 0xe956, 0xe83d, 0xe6f8,
+ 0xea66, 0xea8f, 0xeb70, 0xeda3, 0xe9b8, 0xe883,
+ 0xf0af, 0xf5c5, 0xf459, 0xf6d2, 0xfad7, 0xf5e9,
+ 0xeff7, 0xf5fc, 0xfad5, 0xf359, 0xf344, 0xfe68,
+ 0xfe58, 0xfaf4, 0x0611, 0x0bc4, 0x007a, 0xfc11,
+ 0x03cc, 0x02a6, 0xfa7a, 0xfefd, 0x0778, 0x008a,
+ 0xfc0c, 0x0993, 0x0e1b, 0x0524, 0x0cec, 0x1936,
+ 0x11d8, 0x1191, 0x23bc, 0x25f8, 0x15c7, 0x1119,
+ 0x16f8, 0x16a7, 0x13b3, 0x11a7, 0x0cc3, 0x0dbd,
+ 0x15d4, 0x168f, 0x18f3, 0x27a9, 0x299d, 0x1cff,
+ 0x1d9e, 0x202a, 0x1d4b, 0x2e45, 0x3e34, 0x32af,
+ 0x30a3, 0x41aa, 0x42a7, 0x3d9e, 0x473b, 0x4bda,
+ 0x4118, 0x35da, 0x3403, 0x36a4, 0x3500, 0x342a,
+ 0x3889, 0x3bbe, 0x43eb, 0x4efc, 0x4a11, 0x4037,
+ 0x3f0d, 0x35e6, 0x2b65, 0x3044, 0x32fc, 0x2dd1,
+ 0x3008, 0x37f5, 0x3dd9, 0x3cf6, 0x3a09, 0x3e20,
+ 0x3525, 0x1b6c, 0x194b, 0x2666, 0x1dfe, 0x17f5,
+ 0x1f01, 0x17b6, 0x1685, 0x2d24, 0x388f, 0x31b0,
+ 0x306c, 0x3259, 0x2c46, 0x2212, 0x1dc5, 0x1ee7,
+ 0x192e, 0x0e6b, 0x0910, 0x09c7, 0x132c, 0x195e,
+ 0x0b67, 0x03d7, 0x1106, 0x0d12, 0xfcbd, 0x068c,
+ 0x123d, 0x0504, 0xfe60, 0x0741, 0x06a8, 0x0786,
+ 0x17d5, 0x1b4a, 0x0ec7, 0x14ff, 0x2172, 0x1996,
+ 0x177e, 0x1b89, 0x0bda, 0x0ac3, 0x2380, 0x288a,
+ 0x29b2, 0x3c3d, 0x3776, 0x28be, 0x3596, 0x3aad,
+ 0x2a46, 0x24ae, 0x2703, 0x241d, 0x1d26, 0x18b3,
+ 0x20f9, 0x1edb, 0x06e4, 0x0563, 0x190c, 0x1c1b,
+ 0x23a0, 0x36b6, 0x36b9, 0x2e01, 0x29f6, 0x26ff,
+ 0x2e05, 0x33d1, 0x31e7, 0x34a0, 0x2d53, 0x2510,
+ 0x338e, 0x36c6, 0x2d75, 0x3ccd, 0x442b, 0x35ee,
+ 0x3840, 0x388d, 0x2d01, 0x30dc, 0x2ea7, 0x2486,
+ 0x2af2, 0x259a, 0x1a8e, 0x295c, 0x2b49, 0x1d5e,
+ 0x2818, 0x2cad, 0x2331, 0x34a8, 0x4014, 0x2a32,
+ 0x2370, 0x30aa, 0x2edf, 0x2771, 0x2a1a, 0x2ee5,
+ 0x2ff3, 0x2ca4, 0x280c, 0x2880, 0x2f5a, 0x33d8,
+ 0x3035, 0x3183, 0x35b1, 0x2686, 0x190f, 0x2452,
+ 0x246c, 0x1680, 0x1a04, 0x13ec, 0xffc5, 0x06b4,
+ 0x0e63, 0x0122, 0x047b, 0x0723, 0xf524, 0xf8a8,
+ 0x04d7, 0xf79e, 0xf415, 0x0018, 0xfb6c, 0xf714,
+ 0x0393, 0x0a3c, 0xff0f, 0xf22b, 0xf31b, 0xf07c,
+ 0xe488, 0xf371, 0x0930, 0xf593, 0xe781, 0xfd2b,
+ 0xfed0, 0xef96, 0xf05d, 0xe889, 0xdcd7, 0xe289,
+ 0xe48b, 0xe5b0, 0xef5f, 0xeaa1, 0xe26e, 0xed2f,
+ 0xf6e7, 0xf7cb, 0xff22, 0x0717, 0x03e6, 0xfc6a,
+ 0xfc53, 0xff3f, 0xfa89, 0xf725, 0xfcd3, 0xfc74,
+ 0xf323, 0xf197, 0xf844, 0xfec2, 0x0713, 0x0788,
+ 0xf514, 0xe8fc, 0xef97, 0xe82f, 0xdbe9, 0xea12,
+ 0xee2a, 0xdf59, 0xe9ac, 0xf219, 0xe5e1, 0xef63,
+ 0xf10f, 0xd389, 0xcf37, 0xd7cc, 0xd00f, 0xdc2f,
+ 0xe883, 0xde09, 0xe05c, 0xdf16, 0xd36b, 0xdf30,
+ 0xded0, 0xcbe6, 0xd9a5, 0xe63a, 0xd5d9, 0xd64a,
+ 0xe2f1, 0xe1be, 0xdd3f, 0xd9de, 0xdba0, 0xd953,
+ 0xcaa5, 0xce52, 0xdcb2, 0xda7a, 0xe632, 0xf392,
+ 0xdc7b, 0xd26f, 0xe702, 0xe4e8, 0xd7c2, 0xde9d,
+ 0xe433, 0xdc2e, 0xd047, 0xce73, 0xd710, 0xd18d,
+ 0xc797, 0xd490, 0xda47, 0xc6c1, 0xc260, 0xd403,
+ 0xde16, 0xe334, 0xef24, 0xf4b6, 0xeaaa, 0xdd38,
+ 0xd79d, 0xd9bc, 0xdf71, 0xddaa, 0xcf04, 0xc2c9,
+ 0xc40d, 0xcb87, 0xd1a6, 0xd704, 0xe097, 0xe6a4,
+ 0xdc1a, 0xd1b9, 0xd588, 0xd370, 0xcb25, 0xcdb7,
+ 0xcf96, 0xc75a, 0xc07b, 0xc53f, 0xd1b1, 0xcf62,
+ 0xc286, 0xc8bf, 0xce53, 0xc187, 0xc5d7, 0xd48a,
+ 0xd014, 0xd0d1, 0xda92, 0xd476, 0xcd5c, 0xd57d,
+ 0xe190, 0xe0e5, 0xd173, 0xcd57, 0xd05b, 0xbd7c,
+ 0xb6ff, 0xcb49, 0xc54d, 0xb70d, 0xc72c, 0xcb44,
+ 0xc085, 0xc71d, 0xc318, 0xb63c, 0xc0d0, 0xca28,
+ 0xc98e, 0xd45a, 0xd6c1, 0xcbaf, 0xcda0, 0xd363,
+ 0xcfa0, 0xcf83, 0xd294, 0xd1e2, 0xd30f, 0xd5bb,
+ 0xd513, 0xd52b, 0xdf2a, 0xefcd, 0xf07e, 0xe11e,
+ 0xe228, 0xef52, 0xeb3e, 0xe6fc, 0xeec5, 0xe782,
+ 0xd92d, 0xd95e, 0xd9d9, 0xdb7c, 0xe33c, 0xe0fa,
+ 0xe013, 0xe4c2, 0xd921, 0xd37d, 0xe48d, 0xeb1c,
+ 0xe56c, 0xe38c, 0xe13d, 0xe832, 0xeff2, 0xe88b,
+ 0xeb9a, 0xf4c7, 0xe745, 0xdda8, 0xe7a3, 0xea29,
+ 0xe41d, 0xe4c3, 0xee0c, 0xf12b, 0xe179, 0xdb18,
+ 0xe7e6, 0xe4a0, 0xde73, 0xebad, 0xecd6, 0xe0a0,
+ 0xda97, 0xd640, 0xdd57, 0xe409, 0xd937, 0xdea3,
+ 0xee21, 0xe84b, 0xea4f, 0xf012, 0xe068, 0xe051,
+ 0xea82, 0xddd7, 0xdbe9, 0xe582, 0xdc57, 0xdbbc,
+ 0xe40a, 0xd74b, 0xd34e, 0xe9c5, 0xf0d5, 0xe012,
+ 0xe24c, 0xf959, 0xf3bb, 0xd8f3, 0xdd1a, 0xe932,
+ 0xdb8a, 0xd9fc, 0xeb35, 0xecec, 0xe276, 0xd838,
+ 0xd958, 0xe9d9, 0xeaed, 0xde80, 0xe333, 0xe6cb,
+ 0xe1da, 0xead2, 0xf330, 0xf161, 0xf148, 0xedd8,
+ 0xeccc, 0xef0c, 0xe553, 0xe142, 0xebb5, 0xee33,
+ 0xeea4, 0xf261, 0xed06, 0xec49, 0xf534, 0xfbba,
+ 0x0470, 0x05c1, 0xfa78, 0xfbcf, 0x0437, 0x0193,
+ 0x0485, 0x0845, 0xfa10, 0xefd6, 0xf6b4, 0xfd1f,
+ 0x022b, 0x0815, 0x04b8, 0xfe7a, 0xfdee, 0xfb3d,
+ 0xfaf0, 0x01e1, 0xfa33, 0xe763, 0xeae8, 0xf2a3,
+ 0xe366, 0xe4e0, 0xfe35, 0xfb4b, 0xed9a, 0xfe7e,
+ 0x08a1, 0xfd79, 0x0515, 0x10ab, 0x0437, 0xfe2c,
+ 0x07d2, 0x04a5, 0xfdc9, 0x08ee, 0x1474, 0x0e5b,
+ 0x04c5, 0x0658, 0x0b24, 0x09a9, 0x09ce, 0x118a,
+ 0x167d, 0x14ad, 0x1357, 0x0f5a, 0x06eb, 0x06b9,
+ 0x0db8, 0x0d2b, 0x09b0, 0x0ade, 0x041d, 0xf645,
+ 0xf723, 0x0639, 0x0f58, 0x0f57, 0x0de5, 0x096d,
+ 0xff7a, 0xfa3b, 0x04b9, 0x11c5, 0x1000, 0x0d0c,
+ 0x0f0f, 0x0380, 0xfa38, 0x07d2, 0x1041, 0x0d32,
+ 0x0fde, 0x021a, 0xecd9, 0xf711, 0xfff9, 0xeffd,
+ 0xf1c6, 0xff5f, 0xfc29, 0xfd14, 0x01a5, 0xff57,
+ 0x0881, 0x0b8a, 0xf7ea, 0xf1af, 0xf9a5, 0xf02d,
+ 0xe5ce, 0xed72, 0xf252, 0xec93, 0xecee, 0xf16f,
+ 0xe945, 0xe015, 0xea8b, 0xf6c7, 0xf234, 0xecb2,
+ 0xf00e, 0xf48e, 0xf350, 0xeca7, 0xed01, 0xf137,
+ 0xecaf, 0xf20e, 0xffa9, 0xf6d7, 0xef68, 0x010a,
+ 0x09b0, 0x085a, 0x1112, 0x10ac, 0x0b8e, 0x1326,
+ 0x1555, 0x175f, 0x2a5a, 0x35d1, 0x2fa8, 0x2bb4,
+ 0x29b7, 0x21fe, 0x1859, 0x1385, 0x1a9d, 0x2543,
+ 0x241b, 0x1f00, 0x1f8f, 0x1e33, 0x1f32, 0x28d0,
+ 0x2a84, 0x2501, 0x2c66, 0x31e4, 0x2a34, 0x30c7,
+ 0x3b1d, 0x2e2e, 0x2c31, 0x3db9, 0x399d, 0x347a,
+ 0x4643, 0x438c, 0x2f20, 0x33cd, 0x3d2d, 0x34aa,
+ 0x2e56, 0x2f13, 0x3370, 0x389e, 0x30c4, 0x2b93,
+ 0x3983, 0x38f1, 0x2866, 0x3418, 0x47d9, 0x3e14,
+ 0x34aa, 0x3493, 0x2873, 0x296e, 0x3911, 0x3526,
+ 0x3047, 0x3212, 0x1cba, 0x0a15, 0x133c, 0x1e12,
+ 0x2a28, 0x3913, 0x3689, 0x2dab, 0x27f0, 0x1fc5,
+ 0x1cad, 0x152d, 0x0b4b, 0x10ef, 0x0aee, 0xf68a,
+ 0xfb23, 0x0935, 0x11d7, 0x1e5f, 0x0f2e, 0xf4b2,
+ 0x00a3, 0x0a5b, 0xfd5c, 0x0754, 0x160e, 0x0e74,
+ 0x0c0a, 0x0f83, 0x07c7, 0xface, 0xf84c, 0x0964,
+ 0x1400, 0x0bfe, 0x1355, 0x1d70, 0x0e81, 0x0b1e,
+ 0x1983, 0x174f, 0x11d6, 0x1700, 0x1682, 0x0fa3,
+ 0x0f68, 0x1ed3, 0x2dd2, 0x2758, 0x1fc0, 0x2420,
+ 0x27e0, 0x2f22, 0x2cab, 0x1c2c, 0x2272, 0x2c95,
+ 0x194f, 0x114a, 0x1bdf, 0x1822, 0x14d2, 0x19a8,
+ 0x1b26, 0x1bcb, 0x17b7, 0x1b9e, 0x253a, 0x0f0c,
+ 0xf3d0, 0xfe02, 0x0b6d, 0x0cb7, 0x14a4, 0x18ce,
+ 0x16db, 0x1342, 0x0fee, 0x180f, 0x16b0, 0x0558,
+ 0x0bfc, 0x1d5f, 0x1868, 0x15c8, 0x1b04, 0x16e1,
+ 0x14c1, 0x119e, 0x0704, 0x080c, 0x1350, 0x1823,
+ 0x16a3, 0x12ef, 0x1307, 0x1998, 0x1e35, 0x206e,
+ 0x25b9, 0x28af, 0x22d3, 0x18e9, 0x15b8, 0x1919,
+ 0x1999, 0x1cc2, 0x297c, 0x2f08, 0x26d1, 0x23f0,
+ 0x282e, 0x25bc, 0x21c9, 0x2362, 0x215e, 0x1a38,
+ 0x1958, 0x1dba, 0x1b3f, 0x173d, 0x1ea7, 0x2354,
+ 0x14a1, 0x0509, 0x0770, 0x127b, 0x1dc4, 0x2641,
+ 0x1d78, 0x090a, 0x0c8c, 0x2085, 0x1532, 0xfda8,
+ 0x0687, 0x0f9e, 0x0812, 0x0ed3, 0x0c22, 0xf9d0,
+ 0x05e3, 0x14e9, 0x09ac, 0x0d1f, 0x14b4, 0x07c3,
+ 0x031c, 0x0461, 0x0678, 0x156e, 0x1419, 0x06af,
+ 0x0ac0, 0x0567, 0xfa90, 0x0426, 0x016d, 0xf602,
+ 0x0195, 0x060b, 0xfb20, 0xffb9, 0x0b5a, 0x0f39,
+ 0x0f7f, 0x0e48, 0x0f3c, 0x0d4c, 0x03f2, 0xfcd3,
+ 0xfd01, 0x0325, 0x0530, 0xfd2b, 0xfb1f, 0xfc77,
+ 0xf6e9, 0xfcb4, 0x04f4, 0x015c, 0x0ea8, 0x1dcb,
+ 0x0adf, 0xfc28, 0x07e0, 0x0a0d, 0xfdeb, 0xf64c,
+ 0xf7d2, 0xfdbc, 0xfe41, 0x0243, 0x0cd3, 0x0759,
+ 0xfce5, 0x01cb, 0xfefb, 0xf0c6, 0xf0f9, 0xfebc,
+ 0x0b7c, 0x0bc5, 0xfe6f, 0xf5d7, 0xf70f, 0xfb39,
+ 0x04bd, 0x0700, 0xfb3b, 0xf7e5, 0xfdab, 0xfd0e,
+ 0x015e, 0x0bcf, 0x099c, 0x0175, 0x0050, 0xfcc7,
+ 0xf633, 0xfa05, 0x0465, 0x07f3, 0x09b0, 0x108f,
+ 0x0aff, 0xf50b, 0xeec7, 0xf917, 0xf946, 0xff78,
+ 0x0dc9, 0x0259, 0xf6cf, 0x073e, 0x0eb0, 0x0b23,
+ 0x0f43, 0x080f, 0x0002, 0x035a, 0x00a8, 0x0554,
+ 0x0e43, 0x05e6, 0x04d2, 0x0908, 0xfcf5, 0xf885,
+ 0xf60a, 0xe859, 0xeef3, 0xff67, 0xff7c, 0xfda9,
+ 0xf960, 0xf549, 0xff5a, 0x07a9, 0x0800, 0x0563,
+ 0xfb40, 0xf6ad, 0xfa61, 0xfa63, 0xfd37, 0x019f,
+ 0x01a1, 0x00df, 0xfcf2, 0xfb8a, 0xfeae, 0x009b,
+ 0x06de, 0x01ba, 0xed40, 0xf034, 0x009c, 0xf9b1,
+ 0xedfd, 0xef32, 0xf79b, 0xfe01, 0xf680, 0xf6b7,
+ 0x034c, 0xf6ae, 0xe737, 0xf4c6, 0xfae7, 0xf421,
+ 0xf727, 0xf7e5, 0xf939, 0x008c, 0x00c3, 0x0285,
+ 0x01b0, 0xefad, 0xe711, 0xf072, 0xefe6, 0xeaff,
+ 0xede4, 0xeef3, 0xf69e, 0x0030, 0xf460, 0xeaf0,
+ 0xf77d, 0xfacd, 0xf3dd, 0xf525, 0xf187, 0xeb14,
+ 0xe918, 0xe649, 0xec80, 0xeef3, 0xe5a5, 0xec1b,
+ 0xebd5, 0xd81f, 0xe3b5, 0xf6d4, 0xe9bf, 0xed55,
+ 0x0010, 0xf5cd, 0xe7c3, 0xe8da, 0xe776, 0xe26f,
+ 0xe139, 0xe23b, 0xd8bb, 0xd15e, 0xdf10, 0xe178,
+ 0xd9a8, 0xe778, 0xe552, 0xd3f9, 0xe2ad, 0xf10a,
+ 0xf0dc, 0xf7e5, 0xed73, 0xe32b, 0xed0f, 0xe431,
+ 0xd84e, 0xd931, 0xc94e, 0xc291, 0xcf6f, 0xd1df,
+ 0xd95d, 0xe511, 0xe2b9, 0xddf4, 0xd182, 0xca0a,
+ 0xd9ad, 0xdae4, 0xce8d, 0xd599, 0xd855, 0xd3eb,
+ 0xdfc4, 0xe92c, 0xe915, 0xe62c, 0xd6e4, 0xcea9,
+ 0xdd57, 0xe65c, 0xe161, 0xe21b, 0xe0e8, 0xd2cb,
+ 0xcd90, 0xdb33, 0xe136, 0xd65f, 0xd415, 0xe059,
+ 0xe222, 0xd5c8, 0xd372, 0xdd8c, 0xe4b4, 0xe713,
+ 0xe2c0, 0xdd86, 0xe401, 0xe46f, 0xd96f, 0xdc0f,
+ 0xe1c2, 0xdf97, 0xe56b, 0xe575, 0xddd1, 0xe3b1,
+ 0xe82f, 0xe749, 0xec5e, 0xe766, 0xe051, 0xe8a1,
+ 0xee36, 0xe663, 0xd956, 0xd624, 0xdb80, 0xcc39,
+ 0xb9a4, 0xc3ab, 0xc9cb, 0xc84e, 0xd820, 0xda13,
+ 0xc8fd, 0xc302, 0xc037, 0xbfd8, 0xc93e, 0xce2a,
+ 0xcba6, 0xc532, 0xc35d, 0xcc3b, 0xc9f1, 0xbbda,
+ 0xbc58, 0xc9c4, 0xd333, 0xceb5, 0xc627, 0xca67,
+ 0xcce8, 0xca04, 0xce34, 0xcc86, 0xce74, 0xd642,
+ 0xca50, 0xd123, 0xf16f, 0xe611, 0xceea, 0xdbf8,
+ 0xda2a, 0xcdc8, 0xd6f1, 0xda5a, 0xdf3c, 0xebab,
+ 0xe49a, 0xde99, 0xe467, 0xe034, 0xe0d3, 0xecba,
+ 0xef36, 0xe783, 0xde5b, 0xdd1e, 0xe6db, 0xf0e2,
+ 0xf61a, 0xf0e7, 0xe4bd, 0xe544, 0xe84b, 0xde70,
+ 0xdc6b, 0xe40e, 0xe4fe, 0xe63a, 0xe639, 0xe512,
+ 0xf181, 0xf622, 0xe9ce, 0xf445, 0x070e, 0xfb90,
+ 0xf510, 0xfca5, 0xea06, 0xd8d6, 0xe769, 0xf15d,
+ 0xeb19, 0xe5a9, 0xe346, 0xe9e1, 0xf421, 0xf6dc,
+ 0xf7df, 0xf768, 0xf43c, 0xee1f, 0xe3b8, 0xe441,
+ 0xe975, 0xe0c9, 0xe07c, 0xeaba, 0xe95f, 0xed50,
+ 0xf55f, 0xed7b, 0xe41a, 0xdbc2, 0xd79c, 0xe721,
+ 0xef30, 0xe67e, 0xe79b, 0xe78a, 0xe258, 0xe60d,
+ 0xe7c4, 0xee2e, 0xf89e, 0xedf7, 0xe3b7, 0xe8b3,
+ 0xdf67, 0xd0fb, 0xd321, 0xdafc, 0xe0c3, 0xdaa8,
+ 0xd029, 0xde1c, 0xee26, 0xe446, 0xe221, 0xedeb,
+ 0xe8c6, 0xe429, 0xee3a, 0xef43, 0xf27c, 0xff98,
+ 0xf1eb, 0xda6e, 0xe4be, 0xeb6a, 0xd4de, 0xcf97,
+ 0xe008, 0xe47d, 0xe212, 0xe53a, 0xeaa4, 0xe9df,
+ 0xdf17, 0xdeb9, 0xed0f, 0xeecc, 0xe695, 0xe37e,
+ 0xe12e, 0xe7f0, 0xf274, 0xea55, 0xe1e9, 0xef4b,
+ 0xfef6, 0xfe45, 0xf2eb, 0xec0f, 0xe95f, 0xdf68,
+ 0xdf52, 0xf169, 0xf57f, 0xee79, 0xf5b1, 0xf7b6,
+ 0xec66, 0xe933, 0xedec, 0xf69a, 0xfe68, 0xf929,
+ 0xf31f, 0xf3f3, 0xf0dc, 0xf4d4, 0x0267, 0x0591,
+ 0x0227, 0x035a, 0x03cb, 0x01d5, 0x015a, 0x0575,
+ 0x09fd, 0x084e, 0x060d, 0x0286, 0xfb54, 0xfe89,
+ 0x05c1, 0xffbc, 0xf747, 0xf3b9, 0xf556, 0x0103,
+ 0x0752, 0x0279, 0x0030, 0xfcaa, 0xfbc8, 0x053a,
+ 0x0a83, 0x0e37, 0x1293, 0x0624, 0xf93d, 0xfdad,
+ 0x01a9, 0x049c, 0x0b94, 0x0a23, 0x071a, 0x0c85,
+ 0x1093, 0x0f08, 0x0cfb, 0x0ae0, 0x03d9, 0xfa51,
+ 0xf800, 0xf951, 0xf9af, 0xffdd, 0x07c4, 0x0a6a,
+ 0x07d1, 0x0059, 0xff61, 0x053b, 0x02cb, 0x02d0,
+ 0x0f53, 0x17d2, 0x16fb, 0x132c, 0x13ba, 0x1981,
+ 0x13ec, 0x0b9b, 0x125b, 0x0e3b, 0x0050, 0x0c97,
+ 0x1bfc, 0x10bf, 0x0666, 0x0ba1, 0x0f6b, 0x0e1d,
+ 0x10e2, 0x14b4, 0x0a5b, 0xf8bc, 0xf890, 0x0841,
+ 0x1655, 0x1974, 0x11b3, 0x0cdb, 0x0c30, 0x0594,
+ 0x046e, 0x0797, 0xffb6, 0xfce2, 0x01e3, 0xfa2d,
+ 0xf77e, 0x05f4, 0x0b26, 0x0953, 0x0e4b, 0x0aa6,
+ 0x04ff, 0x0c54, 0x099e, 0xfb90, 0xfd36, 0x0188,
+ 0xfa58, 0xf9a8, 0xfd89, 0xff48, 0x05ad, 0x0799,
+ 0x09fd, 0x1782, 0x19c1, 0x10ce, 0x0f25, 0x070a,
+ 0xfeb2, 0x06d2, 0x06fb, 0xfcdf, 0x0135, 0x09ba,
+ 0x0ac1, 0x0cd5, 0x0e7f, 0x0d7f, 0x0d29, 0x0b53,
+ 0x0835, 0x0b7a, 0x1416, 0x1332, 0x0aa7, 0x084f,
+ 0x0526, 0x03e9, 0x102c, 0x1668, 0x13e1, 0x17d3,
+ 0x0fe2, 0x011c, 0x0544, 0x08f9, 0x077e, 0x12e3,
+ 0x17f5, 0x10dc, 0x0fff, 0x0f88, 0x0929, 0xfeed,
+ 0xf636, 0xf91d, 0xf8a9, 0xefed, 0xf65d, 0xfbe8,
+ 0xf21a, 0xfb34, 0x0edf, 0x09a5, 0x04e6, 0x12a0,
+ 0x1234, 0x0498, 0x089c, 0x105d, 0x0634, 0x02e9,
+ 0x0dcf, 0x09f9, 0x0646, 0x1862, 0x1b31, 0x0932,
+ 0x0ebe, 0x227d, 0x231d, 0x1ac1, 0x1866, 0x1e69,
+ 0x2935, 0x2b9b, 0x269e, 0x1ff5, 0x13e4, 0x0e39,
+ 0x16a0, 0x210c, 0x2858, 0x2852, 0x2564, 0x2c07,
+ 0x29e6, 0x1914, 0x1641, 0x1c51, 0x1e34, 0x217c,
+ 0x15e2, 0x07b7, 0x12b6, 0x1515, 0x069b, 0x0cf5,
+ 0x1649, 0x117e, 0x1824, 0x219a, 0x18ef, 0x0993,
+ 0x02c5, 0x0525, 0x06a0, 0x09a2, 0x141c, 0x1736,
+ 0x167e, 0x1e88, 0x1ed3, 0x1850, 0x18b5, 0x1649,
+ 0x11d4, 0x0f9d, 0x0c1c, 0x0ded, 0x0d29, 0x0696,
+ 0x0b65, 0x1447, 0x1913, 0x1e5d, 0x183f, 0x0dfd,
+ 0x0ebb, 0x0e05, 0x0bb4, 0x0da0, 0x0b15, 0x038b,
+ 0xf990, 0xf631, 0xfb92, 0xf7bd, 0xf60a, 0x0344,
+ 0x079a, 0x0406, 0xff5c, 0xf025, 0xeced, 0xf9d6,
+ 0xff04, 0x0481, 0x0871, 0x015b, 0xfeca, 0xfe14,
+ 0xff33, 0x09e8, 0x09c0, 0x0264, 0x05a4, 0x0680,
+ 0x0593, 0x02d9, 0xf589, 0xf633, 0x0650, 0x08b3,
+ 0x0624, 0x0c28, 0x1407, 0x1c19, 0x1d45, 0x1562,
+ 0x0d35, 0x04e5, 0xffe5, 0x052b, 0x0e1a, 0x0f01,
+ 0x0aa7, 0x0ee5, 0x1604, 0x146e, 0x1540, 0x1775,
+ 0x1436, 0x1628, 0x1083, 0xfe2c, 0xfcf2, 0x0598,
+ 0x03ca, 0x06a5, 0x0d0a, 0x0d9b, 0x1206, 0x1874,
+ 0x1bbd, 0x1eff, 0x2345, 0x2534, 0x1c16, 0x1284,
+ 0x1439, 0x0de8, 0x0754, 0x1626, 0x1edb, 0x19c9,
+ 0x1e5e, 0x1d9f, 0x0fed, 0x0835, 0x04ac, 0x00c8,
+ 0xfbfc, 0xf429, 0xf3d3, 0xfb81, 0x04fb, 0x109b,
+ 0x10ed, 0x090e, 0x0dc6, 0x0d6b, 0xfb21, 0xf32e,
+ 0xf60e, 0xee85, 0xe703, 0xe92f, 0xed5c, 0xf3e0,
+ 0xfb91, 0x0156, 0x064e, 0x023b, 0xf884, 0xfb46,
+ 0x00fb, 0xfb1e, 0xf6b0, 0xf591, 0xef11, 0xec6b,
+ 0xf279, 0xfb90, 0x01ed, 0xfe2a, 0xf779, 0xf9a0,
+ 0xfe57, 0x0244, 0x09f5, 0x0ff4, 0x0db2, 0x0602,
+ 0x0096, 0x01b3, 0x0871, 0x0f5a, 0x0a97, 0xfe4a,
+ 0xfd50, 0xff28, 0xf7b6, 0xf69d, 0xfe95, 0x06fa,
+ 0x104d, 0x12a5, 0x0e7b, 0x0b77, 0x0598, 0x07b9,
+ 0x16e9, 0x1d2a, 0x1a84, 0x1cd4, 0x1f2c, 0x1f42,
+ 0x1f94, 0x222a, 0x267f, 0x2168, 0x16b7, 0x168a,
+ 0x1eae, 0x2828, 0x2cf1, 0x2706, 0x1e13, 0x190f,
+ 0x19f4, 0x20a3, 0x21b4, 0x1ab0, 0x11ab, 0x0717,
+ 0x02b0, 0x017a, 0xfc22, 0x0081, 0x07c6, 0x0478,
+ 0x0961, 0x1258, 0x10da, 0x15ab, 0x1953, 0x0c85,
+ 0x0584, 0x0b71, 0x0fb7, 0x10dc, 0x0fc7, 0x0ce1,
+ 0x08ed, 0x068b, 0x0ae6, 0x0cd5, 0x079d, 0x05a5,
+ 0x05a0, 0x079b, 0x0cd0, 0x099d, 0x061f, 0x0b90,
+ 0x0974, 0x01cc, 0x00a7, 0x04c7, 0x143f, 0x207a,
+ 0x12d1, 0x03b2, 0x03f1, 0xffcd, 0xfbed, 0x01e5,
+ 0x0374, 0x0276, 0x05b5, 0x038e, 0xfd6c, 0xf749,
+ 0xec5a, 0xe860, 0xf42e, 0xfd8e, 0xfca5, 0xfb2a,
+ 0xf761, 0xf31d, 0xf617, 0xf5ba, 0xed9a, 0xeb21,
+ 0xed34, 0xf038, 0xfdf4, 0x0f21, 0x1074, 0x0357,
+ 0xf772, 0xf79c, 0x0233, 0x0a2d, 0x05f3, 0xf992,
+ 0xef80, 0xebc9, 0xed6c, 0xf6dc, 0x005a, 0xfca2,
+ 0xf696, 0xf77e, 0xf3a8, 0xf182, 0xf515, 0xecca,
+ 0xe782, 0xf4c8, 0xfa42, 0xf9a5, 0x05b5, 0x0b8a,
+ 0x092c, 0x0c86, 0x07f9, 0xfe64, 0xfe97, 0xfdb9,
+ 0xf948, 0xf90c, 0xf826, 0xf59d, 0xf536, 0xf82b,
+ 0xfdb0, 0x00ef, 0x01a4, 0xffb9, 0xf9e4, 0xf77d,
+ 0xf932, 0xf888, 0xf4f8, 0xefb2, 0xf0a2, 0xf6ee,
+ 0xf4c4, 0xf263, 0xf700, 0xf7f4, 0xfb59, 0x0151,
+ 0x01a1, 0x02d5, 0xfc23, 0xf2ff, 0xfeba, 0x0684,
+ 0xfe7d, 0xfe59, 0xf420, 0xdfd1, 0xe303, 0xef52,
+ 0xf46c, 0xf6f8, 0xf2db, 0xf439, 0xf6e9, 0xede4,
+ 0xef21, 0xf4f8, 0xf320, 0x0137, 0x0bf8, 0x014b,
+ 0x0415, 0x0d8d, 0x0660, 0xff69, 0xfa27, 0xf4af,
+ 0xf968, 0xfd57, 0xfb67, 0xfb4f, 0xf8b6, 0xf348,
+ 0xf257, 0xf6e1, 0xfa5e, 0xf9db, 0xfbac, 0xfc30,
+ 0xf363, 0xe6ce, 0xdd3c, 0xdf0d, 0xea9e, 0xef25,
+ 0xf136, 0xf2ee, 0xe672, 0xe0f6, 0xef0b, 0xf68b,
+ 0xf701, 0xf52d, 0xeac5, 0xec35, 0xf889, 0xf53c,
+ 0xeb71, 0xe822, 0xe273, 0xdcc2, 0xdfca, 0xe5ac,
+ 0xe24b, 0xdcca, 0xe302, 0xe943, 0xe6e9, 0xe30a,
+ 0xde46, 0xe4e2, 0xf76f, 0xfafd, 0xf69a, 0xfb7a,
+ 0xfba3, 0xfa95, 0xfc0f, 0xf0e8, 0xe690, 0xe6f9,
+ 0xe341, 0xe263, 0xead8, 0xeef3, 0xef14, 0xf308,
+ 0xf86b, 0xf7dd, 0xee27, 0xe6eb, 0xe9c2, 0xeafa,
+ 0xe663, 0xe4fd, 0xe7c7, 0xeabe, 0xecdb, 0xec22,
+ 0xead3, 0xefb0, 0xf57b, 0xf326, 0xf161, 0xf632,
+ 0xf705, 0xf4b0, 0xf9b1, 0x012e, 0x020c, 0xfe94,
+ 0xf90c, 0xef19, 0xe7cb, 0xe8dc, 0xe611, 0xe054,
+ 0xe656, 0xeb42, 0xe4cd, 0xe18c, 0xe141, 0xe2e8,
+ 0xecdb, 0xf11f, 0xeefe, 0xf55b, 0xfc03, 0xfd59,
+ 0xfcd8, 0xf69e, 0xf153, 0xf05c, 0xee56, 0xefc7,
+ 0xf15e, 0xefe7, 0xf2ae, 0xf1dd, 0xecbe, 0xf125,
+ 0xf4b9, 0xede4, 0xeba0, 0xf12c, 0xf239, 0xec6d,
+ 0xe864, 0xeab3, 0xee2c, 0xef3f, 0xefb9, 0xf204,
+ 0xf58d, 0xf49b, 0xf2a7, 0xf5e8, 0xf527, 0xf2c9,
+ 0xf8ec, 0xfadc, 0xf8e2, 0x02ea, 0x0c71, 0x0887,
+ 0x01f6, 0xfeac, 0xfc08, 0xf9c7, 0xfad2, 0xfb8f,
+ 0xf24f, 0xe9f5, 0xf03e, 0xf5fc, 0xf35f, 0xf5ff,
+ 0x004f, 0x06b5, 0xff5b, 0xf6fa, 0x0092, 0x0b26,
+ 0x0819, 0x0888, 0x09cc, 0x007e, 0xf962, 0xf706,
+ 0xf4c7, 0xfb24, 0x042c, 0xffc0, 0xf318, 0xee76,
+ 0xf2a0, 0xf4c8, 0xf49e, 0xf837, 0xf953, 0xf1c3,
+ 0xec86, 0xf300, 0xf96c, 0xf4f5, 0xef5b, 0xef64,
+ 0xf0f9, 0xf350, 0xf152, 0xeb85, 0xecad, 0xee5a,
+ 0xec04, 0xef31, 0xef82, 0xecc8, 0xf6d5, 0xfeaf,
+ 0xf661, 0xedb9, 0xea3b, 0xea96, 0xeeaf, 0xeb6d,
+ 0xe450, 0xe565, 0xe734, 0xe566, 0xe718, 0xeaca,
+ 0xed61, 0xf18e, 0xf45c, 0xf090, 0xecfd, 0xf01d,
+ 0xf372, 0xf59e, 0xf802, 0xf4e0, 0xf1ec, 0xf3c0,
+ 0xf228, 0xf1c0, 0xf3f4, 0xee72, 0xeb6a, 0xf1d7,
+ 0xf4c3, 0xf513, 0xf6e0, 0xf5b1, 0xf5f2, 0xf7ac,
+ 0xf571, 0xf357, 0xf24e, 0xf0b0, 0xf397, 0xf9d0,
+ 0xf9ab, 0xf2d5, 0xf186, 0xf6e7, 0xf696, 0xf558,
+ 0xfd08, 0xff8a, 0xf785, 0xf77d, 0x011b, 0x06d3,
+ 0x0898, 0x07e7, 0x0223, 0xff3f, 0x02b2, 0x034a,
+ 0x0343, 0x08be, 0x09c5, 0x0045, 0xf5c6, 0xf4f0,
+ 0xfbeb, 0xfe23, 0xff2a, 0x085d, 0x0b4a, 0x0799,
+ 0x0b51, 0x08b4, 0xff6f, 0xfdd6, 0xf8e9, 0xf889,
+ 0x0469, 0x00ab, 0xf73d, 0xfea2, 0xfff0, 0xf914,
+ 0xf7b9, 0xf2e3, 0xeeec, 0xef03, 0xf0bd, 0xfa8f,
+ 0xfa7c, 0xec86, 0xebc1, 0xeebd, 0xe776, 0xe48a,
+ 0xe57f, 0xe82e, 0xebc6, 0xe6eb, 0xe534, 0xea87,
+ 0xea56, 0xec7e, 0xeff6, 0xedb8, 0xf256, 0xf78a,
+ 0xf38c, 0xf381, 0xf5d4, 0xf2e8, 0xf04a, 0xefa8,
+ 0xf1ac, 0xf2b9, 0xf009, 0xf352, 0xf839, 0xf493,
+ 0xf397, 0xfa51, 0xffe8, 0x020c, 0x0114, 0xffdb,
+ 0x02b4, 0x0614, 0x0485, 0x0010, 0xffec, 0x03e8,
+ 0x069e, 0x0a1d, 0x0dc1, 0x0ec9, 0x0f20, 0x08f1,
+ 0x00e3, 0x042e, 0x04e3, 0xfe3c, 0x02ae, 0x09cb,
+ 0x0ab7, 0x104b, 0x13dd, 0x1162, 0x0e6f, 0x06ba,
+ 0x038c, 0x0a85, 0x0c9a, 0x0ae4, 0x0c93, 0x0e3f,
+ 0x0eea, 0x087d, 0xff29, 0x0185, 0x0842, 0x0ddc,
+ 0x1814, 0x1d0e, 0x19c3, 0x1573, 0x0dc8, 0x0726,
+ 0x03b8, 0xf9ef, 0xee52, 0xec4e, 0xf196, 0xf574,
+ 0xf724, 0xfd5d, 0x0384, 0x04ac, 0x0b0e, 0x117d,
+ 0x0d05, 0x0850, 0x0560, 0x01bc, 0x0544, 0x075e,
+ 0x0381, 0x0367, 0x0132, 0xfcb5, 0xfe41, 0x00ff,
+ 0x0419, 0x026b, 0xf68c, 0xf03b, 0xef79, 0xeb90,
+ 0xf055, 0xf767, 0xf699, 0xf888, 0xf8bf, 0xf7d9,
+ 0xfea1, 0xfc4b, 0xf23c, 0xf163, 0xee45, 0xe96a,
+ 0xeeee, 0xf554, 0xf8db, 0xf89b, 0xf21b, 0xf13d,
+ 0xf502, 0xf7ac, 0x002f, 0x043b, 0xfd10, 0xf848,
+ 0xf5a8, 0xf2fe, 0xf4b6, 0xf609, 0xf699, 0xf4c6,
+ 0xef50, 0xf317, 0xfa9f, 0xf835, 0xf8a4, 0xffc0,
+ 0x0488, 0x098f, 0x07c3, 0xfeac, 0xffc7, 0x032a,
+ 0xfcfb, 0xfe16, 0x0693, 0x02d3, 0xf85e, 0xf508,
+ 0xf38d, 0xf06d, 0xf13d, 0xf28f, 0xf0e5, 0xf38d,
+ 0xf955, 0xfbdc, 0x0053, 0x0484, 0xffd9, 0xfaf5,
+ 0xfb4e, 0xfa05, 0xfa3b, 0xfabb, 0xf3bf, 0xf05d,
+ 0xf5c6, 0xf67d, 0xf63d, 0xfbb5, 0xfab7, 0xf579,
+ 0xf902, 0x0052, 0x05da, 0x0b0a, 0x0c29, 0x076b,
+ 0xfe81, 0xf714, 0xf950, 0xfd0c, 0xf71a, 0xf306,
+ 0xfa20, 0x0194, 0x037c, 0x064a, 0x0be6, 0x0fb7,
+ 0x0fa1, 0x0a95, 0x0312, 0x047f, 0x0ca7, 0x0a6f,
+ 0x025e, 0x0043, 0x006d, 0x05ff, 0x0d0e, 0x080d,
+ 0x0168, 0xfd5a, 0xf3f7, 0xf422, 0xfaac, 0xf603,
+ 0xf59a, 0xfb43, 0xf784, 0xf418, 0xf53f, 0xfc80,
+ 0x0b42, 0x094e, 0x0003, 0x0aa5, 0x0aea, 0xfa23,
+ 0xfb87, 0xfdbc, 0xf03c, 0xec67, 0xf22b, 0xf7cb,
+ 0xff12, 0xff43, 0xfc06, 0xfe05, 0xfd9f, 0xfd27,
+ 0x0473, 0x0aaf, 0x0626, 0xfe2d, 0xfd60, 0xfcb6,
+ 0xf8ee, 0xfc08, 0xfd00, 0xf926, 0x02ab, 0x0ccc,
+ 0x09b2, 0x0ccc, 0x1336, 0x1095, 0x0faa, 0x0e21,
+ 0x07d9, 0x0436, 0xfdac, 0xf7e0, 0xfee4, 0x0762,
+ 0x067f, 0x039e, 0x04d9, 0x071e, 0x0728, 0x08e5,
+ 0x0856, 0xfdf5, 0xf588, 0xf19c, 0xe942, 0xead5,
+ 0xf7d3, 0xfd87, 0x00a8, 0x01a8, 0xf89c, 0xf4df,
+ 0xf978, 0xfa01, 0xf89a, 0xf4a3, 0xf0b7, 0xf523,
+ 0xfa1f, 0xfd4b, 0x01c5, 0xffea, 0xfc5d, 0xfbe7,
+ 0xf907, 0xfbd7, 0x0305, 0x01d1, 0xfebf, 0xfa4b,
+ 0xef9c, 0xece2, 0xf26b, 0xf571, 0xfcc3, 0x06c8,
+ 0x0997, 0x0980, 0x07ef, 0x00cd, 0xf816, 0xf5f1,
+ 0xfe4c, 0x05ee, 0x02d6, 0x01ba, 0x0668, 0x0432,
+ 0x0133, 0x0430, 0x040a, 0x0282, 0x014d, 0xfb4b,
+ 0xfab3, 0x01c9, 0x0211, 0xfd1f, 0xf988, 0xf719,
+ 0xfb9e, 0x0381, 0x0760, 0x0a70, 0x05fa, 0xfa8f,
+ 0xf8c5, 0xf7ec, 0xef90, 0xf040, 0xf442, 0xf295,
+ 0xf9e7, 0x0282, 0x005f, 0xff5a, 0xfd7a, 0xfad7,
+ 0x024e, 0x039f, 0xfb71, 0x0055, 0x073e, 0x036c,
+ 0x05f3, 0x09ff, 0x0515, 0x0612, 0x0bea, 0x0b61,
+ 0x0c7c, 0x11b0, 0x15d7, 0x19c2, 0x163b, 0x0afb,
+ 0x07ca, 0x07c6, 0xfeec, 0xfef2, 0x0b3b, 0x0a42,
+ 0x04e1, 0x0f29, 0x1398, 0x0caa, 0x1174, 0x1615,
+ 0x0d78, 0x0ae0, 0x0bc9, 0x0199, 0xf958, 0xfd29,
+ 0x06df, 0x1046, 0x1372, 0x10cc, 0x0c6c, 0x084c,
+ 0x08a4, 0x0a62, 0x0a54, 0x0dff, 0x0cdb, 0x003b,
+ 0xfa3d, 0x009e, 0x0753, 0x0c43, 0x0c18, 0x04ab,
+ 0x00f5, 0x043c, 0x06db, 0x0598, 0x030a, 0x02f7,
+ 0x0305, 0x01a2, 0x03eb, 0x06ae, 0x06d7, 0x0a56,
+ 0x0af5, 0x036e, 0x01da, 0x0970, 0x0d05, 0x0a82,
+ 0x08c3, 0x094e, 0x0757, 0x0025, 0xfa3a, 0xfad2,
+ 0xfdc7, 0xfecd, 0xfe74, 0xfe20, 0xfba6, 0xf5b0,
+ 0xf26e, 0xf56c, 0xf92f, 0xf91c, 0xf567, 0xf355,
+ 0xf592, 0xf4f9, 0xf345, 0xf90f, 0xfe81, 0xfef3,
+ 0x0148, 0x00c3, 0xfedb, 0x05db, 0x0a13, 0x03fc,
+ 0x023c, 0x04c9, 0x027d, 0xfde6, 0xf882, 0xf71c,
+ 0xfc52, 0xfbec, 0xf883, 0xff07, 0x04e0, 0x03fc,
+ 0x06aa, 0x082c, 0x062e, 0x0a22, 0x0dfb, 0x0ca6,
+ 0x0c8e, 0x0b36, 0x0a95, 0x107c, 0x139e, 0x11c8,
+ 0x1106, 0x0b6b, 0x0400, 0x0437, 0x0500, 0x046c,
+ 0x07a8, 0x0886, 0x0995, 0x110a, 0x11cc, 0x08eb,
+ 0x059f, 0x0697, 0x03cb, 0x0186, 0xfec2, 0xf85d,
+ 0xf670, 0xf99f, 0xf6df, 0xf04c, 0xf2f6, 0xfc44,
+ 0xfea9, 0xfb8a, 0xfb9d, 0xfb1e, 0xf63d, 0xf2e0,
+ 0xf3a8, 0xf529, 0xf43d, 0xf2b5, 0xf55e, 0xf73f,
+ 0xf231, 0xed4a, 0xeb57, 0xe9ec, 0xee5f, 0xf569,
+ 0xf780, 0xf7fa, 0xf65c, 0xf45f, 0xf9ea, 0x00dc,
+ 0x0429, 0x0763, 0x06d8, 0x05e7, 0x07ce, 0x0404,
+ 0x0266, 0x08a7, 0x069e, 0xff6b, 0xff40, 0x0011,
+ 0x0441, 0x0cf7, 0x0e63, 0x0dce, 0x1069, 0x0b32,
+ 0x048c, 0x088f, 0x0cc5, 0x0b9a, 0x0e99, 0x1179,
+ 0x0a5e, 0x0205, 0xffcc, 0xfe7c, 0x01c1, 0x0b86,
+ 0x1182, 0x157c, 0x1b89, 0x1b45, 0x1837, 0x19ef,
+ 0x18e1, 0x1400, 0x128a, 0x1395, 0x1593, 0x1835,
+ 0x1819, 0x14e1, 0x0ffd, 0x0992, 0x05bb, 0x0978,
+ 0x0f9f, 0x1050, 0x0f41, 0x1064, 0x11de, 0x1665,
+ 0x1a98, 0x1851, 0x183b, 0x1b4c, 0x1737, 0x1206,
+ 0x11a7, 0x1108, 0x119d, 0x1034, 0x07b6, 0x029c,
+ 0x05e2, 0x0948, 0x0acc, 0x0b4b, 0x0829, 0x0360,
+ 0x0290, 0x04b2, 0x03a8, 0xfff5, 0xfc54, 0xf713,
+ 0xf252, 0xf0bb, 0xf122, 0xf314, 0xf389, 0xf467,
+ 0xfa05, 0xfb05, 0xf759, 0xfb8d, 0xff5c, 0xfc20,
+ 0xfcd1, 0xffb4, 0x0110, 0x036b, 0xfff6, 0xf929,
+ 0xf786, 0xf666, 0xf43b, 0xf0ad, 0xe968, 0xe84b,
+ 0xef6b, 0xf376, 0xf4a7, 0xf756, 0xf98e, 0xfbe9,
+ 0x00ea, 0x085c, 0x0d5b, 0x0d33, 0x0a7a, 0x03ee,
+ 0xfdbb, 0x0051, 0x048a, 0x04c2, 0x04f1, 0x00e3,
+ 0xfbff, 0xfecd, 0x01ba, 0x013e, 0x0020, 0xfc30,
+ 0xfb7c, 0xfddb, 0xfb55, 0xfb22, 0xfca3, 0xf62e,
+ 0xf105, 0xf137, 0xf03f, 0xf1ca, 0xf1da, 0xebe4,
+ 0xebd4, 0xf2f4, 0xf77b, 0xf8ad, 0xf8c8, 0xfb46,
+ 0x00bb, 0x0295, 0x00a4, 0xffb4, 0x0178, 0x0471,
+ 0x017c, 0xfa61, 0xf92d, 0xf7c4, 0xf06b, 0xed74,
+ 0xf05d, 0xf3ad, 0xf6fe, 0xf73c, 0xf6dc, 0xfb75,
+ 0x00a0, 0x0485, 0x078e, 0x05e3, 0x056b, 0x09d4,
+ 0x07d4, 0xffd9, 0xff84, 0x05ed, 0x0845, 0x048a,
+ 0x0101, 0x01a2, 0x026e, 0x0170, 0x03e6, 0x06cd,
+ 0x021c, 0xfbcb, 0xfb4d, 0xfcd3, 0xffcf, 0x037c,
+ 0x0066, 0xfa69, 0xfa9f, 0xfcc9, 0xfbfb, 0xf94c,
+ 0xf50a, 0xf335, 0xf71e, 0xfcc0, 0x0021, 0x017c,
+ 0x02f2, 0x038f, 0x01c1, 0x025b, 0x04cd, 0x0361,
+ 0x032e, 0x043a, 0xff2b, 0xfb43, 0xfbd1, 0xf7e4,
+ 0xf372, 0xf5ac, 0xfb3d, 0xff9e, 0x0033, 0x01fa,
+ 0x08eb, 0x0c2b, 0x08da, 0x0494, 0x026d, 0x062e,
+ 0x0940, 0x0497, 0x038b, 0x0726, 0x056e, 0x03bb,
+ 0x0395, 0x018f, 0x02f2, 0x0340, 0xff8a, 0x0133,
+ 0x040b, 0x01bc, 0x006a, 0xfebe, 0xfb81, 0xfc8a,
+ 0xfcfc, 0xf8d3, 0xf794, 0xfa4a, 0xfd43, 0x00e0,
+ 0x0014, 0xf80d, 0xf2af, 0xf4a0, 0xf924, 0xfe6c,
+ 0x0104, 0x00dc, 0x03fe, 0x061a, 0x049a, 0x0566,
+ 0x02f3, 0xfd87, 0xfee6, 0xfe93, 0xf87e, 0xf6c0,
+ 0xf682, 0xf6b7, 0xf9f7, 0xf879, 0xf648, 0xfa96,
+ 0xff88, 0x0456, 0x05c9, 0xffdb, 0xfcc9, 0xfef5,
+ 0x0204, 0x063c, 0x0353, 0xfb07, 0xfa09, 0xfb89,
+ 0xfb16, 0xfc69, 0xfc6a, 0xfe2d, 0x0369, 0x03b7,
+ 0x0093, 0xfe00, 0xfb31, 0xfcbe, 0x009f, 0xff2e,
+ 0xfa0e, 0xf513, 0xf22b, 0xf303, 0xf58d, 0xf768,
+ 0xf823, 0xf771, 0xf46e, 0xeff7, 0xef82, 0xf394,
+ 0xf672, 0xf974, 0xff82, 0x0610, 0x0ac3, 0x0a16,
+ 0x05d2, 0x048a, 0x0139, 0xf8fc, 0xf5ff, 0xf790,
+ 0xf6a5, 0xf8a3, 0xfe0f, 0xfe47, 0xfadf, 0xf966,
+ 0xf8fc, 0xfaf4, 0x0056, 0x04fe, 0x07cd, 0x086b,
+ 0x07ef, 0x0d63, 0x129a, 0x0b36, 0x01e2, 0x000d,
+ 0xfe5f, 0xffb7, 0x066e, 0x0ab5, 0x0d22, 0x0c14,
+ 0x0416, 0xfde3, 0xfdcd, 0x0158, 0x0626, 0x0717,
+ 0x069c, 0x0596, 0xfee2, 0xfb97, 0xff3d, 0xfebc,
+ 0xfd73, 0xfeb3, 0xfb2f, 0xf604, 0xf2fd, 0xf2ac,
+ 0xf77a, 0xfba2, 0xff4c, 0x077b, 0x0ad4, 0x0864,
+ 0x0a9d, 0x0d2c, 0x0af7, 0x07e1, 0x03fb, 0x0071,
+ 0xffdc, 0x019c, 0x056b, 0x0753, 0x03bd, 0xff5c,
+ 0xfc9f, 0xf9e5, 0xface, 0xfff1, 0x0340, 0x0500,
+ 0x07cd, 0x08d6, 0x0996, 0x0b1d, 0x0864, 0x052c,
+ 0x0565, 0x0294, 0xffdb, 0x02a7, 0x0332, 0x00d1,
+ 0x018e, 0x0238, 0x0002, 0xfd8e, 0xfe23, 0x007f,
+ 0xfed7, 0xfbc1, 0xfb0e, 0xf8d4, 0xf9da, 0x003b,
+ 0x002f, 0xf9c9, 0xf439, 0xede9, 0xe9ce, 0xeae2,
+ 0xed94, 0xf1b1, 0xf556, 0xf554, 0xf66d, 0xfc5a,
+ 0x0132, 0xff57, 0xfbcc, 0xfb0c, 0xf95a, 0xf960,
+ 0xfcd6, 0xfb2b, 0xf849, 0xfc78, 0xff50, 0xfb57,
+ 0xf4f9, 0xf18e, 0xf65a, 0xfdec, 0x00e3, 0x02d5,
+ 0x0426, 0x02df, 0x0153, 0x0208, 0x0806, 0x0ccb,
+ 0x0978, 0x0762, 0x078d, 0x0438, 0x0580, 0x09cd,
+ 0x094a, 0x0944, 0x07eb, 0x017b, 0xfc06, 0xf803,
+ 0xf70c, 0xfb21, 0xfc17, 0xfa51, 0xfd8a, 0x0322,
+ 0x0586, 0x02a4, 0xfcb4, 0xf7e4, 0xf385, 0xf04b,
+ 0xf153, 0xf57a, 0xfb49, 0x007d, 0x02e3, 0x0415,
+ 0x0367, 0x0064, 0xfd72, 0xf9ed, 0xf781, 0xf99b,
+ 0xfc6c, 0xfabe, 0xf679, 0xf54a, 0xf5af, 0xf1c3,
+ 0xee00, 0xee7b, 0xedd2, 0xed60, 0xf02c, 0xf38f,
+ 0xf80a, 0xf974, 0xf443, 0xf05a, 0xef1f, 0xed07,
+ 0xec89, 0xebe9, 0xeb54, 0xeec1, 0xf1a1, 0xf280,
+ 0xf68a, 0xfa9b, 0xf86d, 0xf2ef, 0xf0e4, 0xefeb,
+ 0xeb8b, 0xe9da, 0xecb9, 0xefe8, 0xf6b5, 0xfe86,
+ 0x0100, 0x0145, 0xfdc2, 0xf70a, 0xf5b3, 0xf574,
+ 0xf274, 0xf42f, 0xfa32, 0x013a, 0x08bb, 0x0db5,
+ 0x10aa, 0x1178, 0x0ffc, 0x0e98, 0x0adb, 0x0824,
+ 0x0b37, 0x0c4d, 0x0aae, 0x0ab7, 0x089a, 0x07ea,
+ 0x0b50, 0x0e80, 0x13c7, 0x1711, 0x1412, 0x1378,
+ 0x1477, 0x1247, 0x10b0, 0x0e57, 0x0cdb, 0x0f30,
+ 0x0f1b, 0x0dee, 0x0eab, 0x0d4d, 0x0cb9, 0x0d0a,
+ 0x0ada, 0x0b65, 0x0d83, 0x0b5e, 0x083d, 0x078d,
+ 0x08b0, 0x07f3, 0x03f0, 0x03e6, 0x0907, 0x0d03,
+ 0x0e6c, 0x0b76, 0x04f4, 0xff9f, 0xfb3b, 0xfa55,
+ 0xfdbb, 0xfe9c, 0xfdf3, 0xfd62, 0xfaaf, 0xfc4e,
+ 0x0237, 0x0606, 0x0a41, 0x0a70, 0x02bc, 0xff17,
+ 0xffd0, 0xfb93, 0xf7ea, 0xf99e, 0xfb43, 0xf942,
+ 0xf4c9, 0xf4cf, 0xfc49, 0x01a8, 0x0082, 0xff40,
+ 0xff3a, 0xfe2c, 0xfd5f, 0xfbef, 0xf843, 0xf619,
+ 0xf80a, 0xfb33, 0xfd4b, 0xfdc4, 0xfc6e, 0xfbfc,
+ 0xfe4a, 0xffa7, 0xfc38, 0xf5dc, 0xf120, 0xefff,
+ 0xf2ca, 0xf7dc, 0xf973, 0xf6a4, 0xf67b, 0xf9eb,
+ 0xfbee, 0xfb53, 0xf754, 0xf1a3, 0xef9c, 0xefe5,
+ 0xef95, 0xf215, 0xf728, 0xf9b8, 0xf879, 0xf749,
+ 0xfb3a, 0x021a, 0x04bd, 0x0347, 0xffe9, 0xf97f,
+ 0xf54d, 0xf808, 0xfb3a, 0xfbb2, 0xfe3d, 0x00bc,
+ 0xfe05, 0xf9d6, 0xf9a7, 0xfd4e, 0x0113, 0x0073,
+ 0xfce5, 0xfcb3, 0xff16, 0xfef4, 0xfc54, 0xfa2e,
+ 0xfc60, 0x02df, 0x0602, 0x02f9, 0xff5b, 0xfddd,
+ 0xfe3d, 0xfeb1, 0xfc72, 0xf9f8, 0xf8ad, 0xf5ee,
+ 0xf551, 0xf8e7, 0xfa42, 0xf835, 0xf66a, 0xf542,
+ 0xf5b4, 0xf68e, 0xf492, 0xf342, 0xf57d, 0xf630,
+ 0xf4f3, 0xf88e, 0xff90, 0x0209, 0x0161, 0x0234,
+ 0x01af, 0x009a, 0x0196, 0xff0f, 0xfaa4, 0xfb79,
+ 0xfafc, 0xf687, 0xf7d2, 0xfdf8, 0x02c5, 0x0503,
+ 0x0140, 0xfb9a, 0xfc96, 0xffc6, 0x00d0, 0x0282,
+ 0x033b, 0x034f, 0x0635, 0x08e1, 0x07f2, 0x0568,
+ 0x0481, 0x0542, 0x0491, 0x0343, 0x03c5, 0x039a,
+ 0x01c4, 0xfeb1, 0xfa14, 0xf80e, 0xf859, 0xf634,
+ 0xf629, 0xfadb, 0xfda3, 0xfd11, 0xfadc, 0xf7cd,
+ 0xf7ea, 0xfa63, 0xfbc3, 0xfe97, 0x01cd, 0x00f0,
+ 0xfe7e, 0xfcea, 0xfb0a, 0xfb9d, 0x00f2, 0x0620,
+ 0x0669, 0x0434, 0x0322, 0x0265, 0x0019, 0xfc77,
+ 0xfa26, 0xfc11, 0xffcb, 0x00af, 0x0065, 0x01ea,
+ 0x033d, 0x01e3, 0xfcf9, 0xf76a, 0xf9b9, 0x03a5,
+ 0x0869, 0x0692, 0x096a, 0x103e, 0x11ef, 0x0d9d,
+ 0x0732, 0x03e1, 0x068f, 0x0986, 0x08a3, 0x06f4,
+ 0x0572, 0x03f1, 0x02e8, 0x001d, 0xfb7b, 0xf819,
+ 0xf806, 0xf9df, 0xf84b, 0xf432, 0xf4d7, 0xf7c6,
+ 0xf814, 0xf9c3, 0xfcc1, 0xfd18, 0xfb98, 0xf7be,
+ 0xf317, 0xf335, 0xf5f8, 0xf76f, 0xfb45, 0x0215,
+ 0x06de, 0x0928, 0x0b0b, 0x096f, 0x00c8, 0xf5a4,
+ 0xf026, 0xf27d, 0xf924, 0xff67, 0x0288, 0x046b,
+ 0x0824, 0x0c12, 0x0b60, 0x04fa, 0xff66, 0x00a1,
+ 0x0395, 0x0216, 0x017e, 0x054e, 0x07c8, 0x07b2,
+ 0x072b, 0x05e5, 0x06dc, 0x088e, 0x042e, 0xfe41,
+ 0xfda2, 0xfe30, 0xfce8, 0xfac6, 0xf881, 0xf880,
+ 0xf9ef, 0xfb7f, 0xfdd6, 0xfc3c, 0xf70f, 0xf6f7,
+ 0xfabc, 0xfced, 0xff66, 0x021d, 0x02b1, 0x0154,
+ 0xff62, 0xff2b, 0x00eb, 0x03b3, 0x0721, 0x0806,
+ 0x0649, 0x067b, 0x08f9, 0x0aa5, 0x0791, 0x0013,
+ 0xfca0, 0xfe76, 0xff8e, 0x02ec, 0x091c, 0x0a3d,
+ 0x0741, 0x05b6, 0x04a5, 0x02b1, 0x0173, 0x0242,
+ 0x03c7, 0x04a2, 0x06a3, 0x0a37, 0x0e2a, 0x1215,
+ 0x12e9, 0x1031, 0x0f9d, 0x1206, 0x1167, 0x0b75,
+ 0x0620, 0x0636, 0x065a, 0x01f1, 0xfdde, 0xfd42,
+ 0xfdef, 0xfe30, 0xfdd7, 0xfecf, 0x00f0, 0x00ce,
+ 0xfdbf, 0xf9b7, 0xf83d, 0xfa57, 0xfa24, 0xf6e2,
+ 0xf5ec, 0xf592, 0xf484, 0xf72e, 0xfe17, 0x04b4,
+ 0x04a2, 0xfee3, 0xfced, 0xfdea, 0xfb28, 0xf75b,
+ 0xf45c, 0xf1ae, 0xf185, 0xf282, 0xf512, 0xfa6f,
+ 0xfc9f, 0xfa4f, 0xf941, 0xfacf, 0xfccd, 0xfd12,
+ 0xfcc6, 0xff00, 0x0163, 0x0258, 0x04f4, 0x0805,
+ 0x0780, 0x02e8, 0xff0b, 0x0146, 0x05ae, 0x065f,
+ 0x05af, 0x0537, 0x0462, 0x047f, 0x0433, 0x02c1,
+ 0x01aa, 0x000e, 0xfde0, 0xfc36, 0xfaa7, 0xf975,
+ 0xf972, 0xfa7d, 0xfb6a, 0xfca8, 0xff6f, 0x000b,
+ 0xfdf7, 0xfef3, 0x00d2, 0x0065, 0x018c, 0x0330,
+ 0x0477, 0x05e4, 0x01a2, 0xfbf2, 0xfcd0, 0xfd60,
+ 0xfc8d, 0xffa6, 0x00a4, 0xfed3, 0x003d, 0x02c4,
+ 0x04a7, 0x069e, 0x083d, 0x0b17, 0x0d63, 0x0cbc,
+ 0x0ba1, 0x0aaa, 0x0966, 0x0869, 0x074e, 0x08cf,
+ 0x0d9c, 0x0eee, 0x09b8, 0x03cc, 0x0304, 0x0692,
+ 0x097f, 0x08ed, 0x04f1, 0xff12, 0xf966, 0xf55b,
+ 0xf414, 0xf37e, 0xf09f, 0xeeec, 0xef9d, 0xee53,
+ 0xed4c, 0xef14, 0xefbe, 0xeee7, 0xeebe, 0xefbe,
+ 0xf043, 0xedb6, 0xedd3, 0xf469, 0xf881, 0xfa13,
+ 0xffe5, 0x03f9, 0x03d2, 0x04b9, 0x0545, 0x0440,
+ 0x01b3, 0xfd07, 0xfacc, 0xfbda, 0xfd9b, 0x0169,
+ 0x0480, 0x05ba, 0x0a31, 0x0f57, 0x1140, 0x12dc,
+ 0x13f6, 0x1478, 0x16ea, 0x18a6, 0x1794, 0x15d9,
+ 0x14cb, 0x15f3, 0x18b4, 0x18f6, 0x167a, 0x13fd,
+ 0x1254, 0x1349, 0x1699, 0x16f1, 0x148c, 0x1475,
+ 0x13f9, 0x115c, 0x11f2, 0x1329, 0x0f6a, 0x0a31,
+ 0x060c, 0x03cb, 0x056b, 0x060d, 0x02e5, 0x0108,
+ 0x01ab, 0x0476, 0x0936, 0x0bdf, 0x0d97, 0x115c,
+ 0x13e6, 0x14d7, 0x1544, 0x12a9, 0x0d59, 0x062d,
+ 0xfee5, 0xfcee, 0xff6e, 0x01cc, 0x0415, 0x0523,
+ 0x04cb, 0x0646, 0x0874, 0x09d9, 0x0bd6, 0x0c83,
+ 0x0a5a, 0x085b, 0x08e0, 0x09f6, 0x080b, 0x04b8,
+ 0x0502, 0x08fb, 0x0d8f, 0x0fdf, 0x0de9, 0x0a54,
+ 0x07be, 0x04fa, 0x037a, 0x03ff, 0x0357, 0x0129,
+ 0xfde1, 0xf8f0, 0xf597, 0xf5da, 0xf757, 0xf7f2,
+ 0xf72f, 0xf716, 0xf8d5, 0xf99f, 0xf923, 0xf86f,
+ 0xf5cc, 0xf384, 0xf4c5, 0xf6c0, 0xf8ac, 0xfc73,
+ 0x0026, 0x025c, 0x03ec, 0x0456, 0x028d, 0xfde8,
+ 0xf863, 0xf5bb, 0xf498, 0xf298, 0xf33c, 0xf78b,
+ 0xfaa9, 0xfbdd, 0xfdd7, 0xff65, 0x0025, 0x02d3,
+ 0x061b, 0x0707, 0x07c2, 0x0a33, 0x0c22, 0x0c9b,
+ 0x0cd8, 0x0d22, 0x0d37, 0x0d24, 0x0cd5, 0x0c51,
+ 0x0be5, 0x0a53, 0x064b, 0x03aa, 0x05ae, 0x071b,
+ 0x04e6, 0x03ab, 0x02f6, 0xff5c, 0xfd3b, 0xff93,
+ 0x0062, 0xfcef, 0xfb6e, 0xfe50, 0xffe1, 0xfe51,
+ 0xfc64, 0xf90e, 0xf5d3, 0xf92f, 0x0280, 0x0a8b,
+ 0x0dd6, 0x0de6, 0x0d57, 0x0c56, 0x08fa, 0x02d9,
+ 0xfc04, 0xf80b, 0xf7eb, 0xf8ee, 0xfae3, 0xfdc4,
+ 0xfe6a, 0xfe77, 0x009b, 0x0157, 0x0058, 0x0087,
+ 0x006f, 0x00b1, 0x03fd, 0x074d, 0x0750, 0x05a7,
+ 0x043c, 0x0303, 0x0269, 0x032d, 0x03f6, 0x045f,
+ 0x0688, 0x086d, 0x06c0, 0x0564, 0x07e7, 0x0a53,
+ 0x091c, 0x05bb, 0x025f, 0xfe99, 0xf9fb, 0xf768,
+ 0xf815, 0xf962, 0xfb1a, 0xfd5f, 0xfd98, 0xfd1f,
+ 0xfea2, 0xff78, 0xfe82, 0xfde4, 0xfd00, 0xfc85,
+ 0xfead, 0x00b9, 0x002c, 0xfed9, 0xfd78, 0xfc14,
+ 0xfab3, 0xf8a2, 0xf870, 0xfb79, 0xfdf6, 0xfe48,
+ 0xfc82, 0xf8b0, 0xf673, 0xf664, 0xf695, 0xf9a6,
+ 0xfe6b, 0x00bd, 0x0281, 0x0472, 0x0626, 0x0970,
+ 0x0b58, 0x09fb, 0x0788, 0x026c, 0xfca4, 0xfb3a,
+ 0xfc51, 0xfece, 0x01bf, 0xfffb, 0xfcef, 0xfea9,
+ 0xfffa, 0xfd77, 0xfb55, 0xfa8c, 0xf97c, 0xf780,
+ 0xf416, 0xf129, 0xf1ad, 0xf46f, 0xf655, 0xf7a1,
+ 0xf8d5, 0xf88a, 0xf7fa, 0xf844, 0xf7c9, 0xf893,
+ 0xfd0e, 0x01f7, 0x04ae, 0x051c, 0x0387, 0x0209,
+ 0x001c, 0xfb20, 0xf688, 0xf696, 0xf815, 0xf723,
+ 0xf4f4, 0xf2e6, 0xf190, 0xf368, 0xf78b, 0xf9ef,
+ 0xfc5e, 0x0167, 0x04f1, 0x04ca, 0x03e1, 0x044c,
+ 0x0541, 0x0382, 0x008b, 0x027e, 0x0661, 0x05a5,
+ 0x038e, 0x036d, 0x0394, 0x0563, 0x08a3, 0x07a0,
+ 0x0188, 0xfd57, 0xfd73, 0xfce1, 0xfaf0, 0xf9e0,
+ 0xf74c, 0xf386, 0xf290, 0xf462, 0xf6fe, 0xf88f,
+ 0xf903, 0xfa45, 0xfa58, 0xf918, 0xfb13, 0xfdff,
+ 0xfdfc, 0xfd33, 0xfd6f, 0x0167, 0x0828, 0x09e4,
+ 0x072d, 0x0564, 0x03c4, 0x0338, 0x02bf, 0xff03,
+ 0xfcf8, 0xfde1, 0xfc31, 0xfade, 0xfde0, 0x0204,
+ 0x047d, 0x0448, 0x02f1, 0x02e0, 0x03d3, 0x06c5,
+ 0x0a76, 0x0afb, 0x0bd4, 0x1010, 0x1278, 0x11ce,
+ 0x1059, 0x0c3f, 0x067a, 0x032d, 0x0265, 0x024f,
+ 0x0175, 0xff20, 0xfe86, 0x01b7, 0x0480, 0x0519,
+ 0x0677, 0x07e9, 0x07a8, 0x0644, 0x03ea, 0x03c7,
+ 0x0724, 0x0751, 0x03b3, 0x02a7, 0x014e, 0xfb99,
+ 0xf783, 0xf8ae, 0xfadc, 0xfd25, 0x0338, 0x0977,
+ 0x0799, 0x0131, 0xfedf, 0xfe5b, 0xfc54, 0xfb45,
+ 0xfae5, 0xfa85, 0xfbbe, 0xfe12, 0x0019, 0x00eb,
+ 0x00a7, 0x0027, 0xfed1, 0xfd59, 0xfda1, 0xff71,
+ 0x0281, 0x045b, 0x01c2, 0xff5c, 0x0296, 0x07b4,
+ 0x096a, 0x07ea, 0x05d2, 0x032b, 0xff14, 0xfd65,
+ 0x008a, 0x0388, 0x02a6, 0xff63, 0xfc39, 0xfa15,
+ 0xf7ce, 0xf68d, 0xf74a, 0xf603, 0xf3bb, 0xf529,
+ 0xf7e8, 0xfb69, 0x012d, 0x0373, 0x0121, 0xff43,
+ 0xfcea, 0xfabb, 0xfc88, 0x0019, 0x042b, 0x090f,
+ 0x08c6, 0x01c3, 0xfc43, 0xfb7f, 0xfb9b, 0xfbf4,
+ 0xfd2c, 0xfd04, 0xfb2e, 0xfa3d, 0xfb20, 0xfccd,
+ 0xfe8d, 0xff88, 0xfe1a, 0xfad4, 0xf938, 0xfb35,
+ 0x008e, 0x0717, 0x0a0b, 0x09f1, 0x0c27, 0x0f46,
+ 0x105f, 0x112a, 0x0fde, 0x0ad1, 0x05a5, 0x019b,
+ 0xfd65, 0xf972, 0xf82a, 0xfa3c, 0xf9f7, 0xf6a0,
+ 0xf77d, 0xf93e, 0xf705, 0xf7f8, 0xfb82, 0xfb4a,
+ 0xfaf2, 0xfb1a, 0xf82d, 0xf45e, 0xf0b6, 0xecf8,
+ 0xea83, 0xe97f, 0xeb6e, 0xefbe, 0xf3a4, 0xf7aa,
+ 0xf95e, 0xf62a, 0xf245, 0xeeab, 0xeb00, 0xeb76,
+ 0xee6c, 0xf084, 0xf3ba, 0xf58c, 0xf35c, 0xf2b1,
+ 0xf623, 0xf9b9, 0xfb6b, 0xfc32, 0xfd0b, 0xfd85,
+ 0xfd39, 0xfe45, 0x011f, 0x02da, 0x0494, 0x098e,
+ 0x0ed7, 0x10ed, 0x104d, 0x0d72, 0x0be5, 0x0ddf,
+ 0x0da1, 0x0acd, 0x0acd, 0x0b3f, 0x0b42, 0x0d85,
+ 0x0dee, 0x0c87, 0x0dee, 0x0fc1, 0x1134, 0x132b,
+ 0x1190, 0x0cdc, 0x08ee, 0x067b, 0x06b7, 0x0910,
+ 0x0c07, 0x1007, 0x128c, 0x12a7, 0x1357, 0x13bc,
+ 0x11fa, 0x0e73, 0x0977, 0x0552, 0x03e8, 0x04d9,
+ 0x07d0, 0x0a44, 0x0ae0, 0x0c06, 0x0d08, 0x0c72,
+ 0x0c9d, 0x0de7, 0x0de9, 0x0c55, 0x0ad0, 0x09dd,
+ 0x0872, 0x06b6, 0x059f, 0x05df, 0x08cb, 0x0da2,
+ 0x1329, 0x1a09, 0x1dff, 0x1a62, 0x140c, 0x10bf,
+ 0x1018, 0x0ed9, 0x092f, 0x012c, 0xfd36, 0xfd83,
+ 0xff94, 0x0353, 0x0749, 0x095d, 0x08be, 0x0680,
+ 0x05ba, 0x0678, 0x057f, 0x01e5, 0xfdb7, 0xfbbd,
+ 0xfc88, 0xfd7c, 0xfcbb, 0xfac1, 0xf95f, 0xfae4,
+ 0xff95, 0x0441, 0x03fb, 0xfe71, 0xfb38, 0xfee8,
+ 0x039d, 0x02c3, 0xfd1d, 0xf7ba, 0xf53b, 0xf475,
+ 0xf5f9, 0xf990, 0xfb12, 0xfb53, 0xfe22, 0x00a8,
+ 0x00c7, 0x01c9, 0x0429, 0x04ef, 0x0317, 0x00b5,
+ 0x0017, 0x016c, 0x0490, 0x08cb, 0x0b63, 0x09de,
+ 0x042b, 0xfe5f, 0xfc16, 0xfa8c, 0xf8d8, 0xf9d4,
+ 0xfad2, 0xfac0, 0xfcca, 0xfd6a, 0xfad6, 0xfac6,
+ 0xfd42, 0xfeed, 0x008f, 0x01c0, 0x0111, 0xff76,
+ 0xff01, 0x0120, 0x032b, 0x01a0, 0xfeae, 0xfda9,
+ 0xfded, 0xfdb9, 0xfd0c, 0xfcfe, 0xfccf, 0xfb76,
+ 0xfb3d, 0xfd07, 0xfe52, 0xfea6, 0xfde6, 0xfaef,
+ 0xf93a, 0xfd0c, 0x0360, 0x06c3, 0x067d, 0x043e,
+ 0x00aa, 0xfcac, 0xfa91, 0xfb86, 0xfd46, 0xfdac,
+ 0xfe61, 0x0106, 0x055f, 0x0b8e, 0x10eb, 0x11b9,
+ 0x0fff, 0x0db5, 0x090f, 0x04b2, 0x0380, 0x01e8,
+ 0xff37, 0xfea4, 0xfea7, 0xfd56, 0xfcdb, 0xfd73,
+ 0xfd55, 0xfd45, 0xfe17, 0xfe6b, 0xfe2c, 0xfe7f,
+ 0xfe6e, 0xfca7, 0xf9d8, 0xf7b3, 0xf819, 0xfade,
+ 0xfdb1, 0x001e, 0x02aa, 0x03f7, 0x02ef, 0xffdf,
+ 0xfca8, 0xfcc2, 0x005c, 0x0317, 0x021c, 0xfe6e,
+ 0xfadd, 0xfa9f, 0xfebd, 0x047e, 0x07ce, 0x0737,
+ 0x05b6, 0x066b, 0x070e, 0x04ce, 0x02e6, 0x0373,
+ 0x02f3, 0x01e9, 0x03f9, 0x0636, 0x05b0, 0x05a8,
+ 0x0728, 0x07df, 0x07d5, 0x07a6, 0x0763, 0x07e5,
+ 0x085a, 0x06aa, 0x03d1, 0x01dc, 0xff6e, 0xfc4a,
+ 0xfb9c, 0xfccd, 0xfd1e, 0xfd35, 0xfcb4, 0xfbb0,
+ 0xfd83, 0x00d2, 0x015e, 0xffc2, 0xfe8e, 0x003b,
+ 0x0446, 0x0582, 0x035f, 0x0179, 0xffc6, 0xfe55,
+ 0xfcf2, 0xfa12, 0xf8f3, 0xfc0a, 0x005e, 0x03dd,
+ 0x04bb, 0x0291, 0x012d, 0x01b7, 0x02d9, 0x04a5,
+ 0x05b1, 0x05e6, 0x064d, 0x04bf, 0x01d0, 0x010a,
+ 0x01e3, 0x029e, 0x035c, 0x04cb, 0x0737, 0x08d8,
+ 0x09cb, 0x0c77, 0x0da5, 0x0a57, 0x0701, 0x04af,
+ 0xffac, 0xfa1e, 0xf7e5, 0xf801, 0xf8c5, 0xf91a,
+ 0xf842, 0xf86a, 0xfb6c, 0xfe8a, 0xfeb6, 0xfd46,
+ 0xfcd7, 0xfcf6, 0xfc7b, 0xfc29, 0xfb6e, 0xf98d,
+ 0xf9e7, 0xfd6b, 0xfee4, 0xfcd5, 0xfaa7, 0xf972,
+ 0xf98f, 0xfac9, 0xfb12, 0xfb17, 0xfc23, 0xfd0b,
+ 0xfeaf, 0x01be, 0x03fd, 0x04ea, 0x0487, 0x0236,
+ 0x006d, 0x0189, 0x0475, 0x06ca, 0x065c, 0x03c5,
+ 0x0150, 0xff59, 0xfed4, 0x0076, 0x01b2, 0x0262,
+ 0x052a, 0x0911, 0x0bce, 0x0ca6, 0x0b0d, 0x0859,
+ 0x063b, 0x03ee, 0x0171, 0x0067, 0x017a, 0x0388,
+ 0x03b9, 0x012d, 0xfef2, 0xfe0f, 0xfc98, 0xfab6,
+ 0xf980, 0xf950, 0xfad1, 0xfdfc, 0x029c, 0x077e,
+ 0x099a, 0x09fe, 0x0c6c, 0x0e98, 0x0cdd, 0x0977,
+ 0x079d, 0x078d, 0x074b, 0x05b9, 0x05a6, 0x07bd,
+ 0x074d, 0x03a7, 0x01be, 0x036b, 0x0606, 0x0716,
+ 0x06b3, 0x0666, 0x071d, 0x089c, 0x0902, 0x0764,
+ 0x0649, 0x0630, 0x04cf, 0x039e, 0x041a, 0x041c,
+ 0x044f, 0x06f2, 0x09f0, 0x0a92, 0x09a2, 0x090e,
+ 0x0886, 0x0660, 0x0373, 0x01a6, 0x00f0, 0x018b,
+ 0x037b, 0x0434, 0x020e, 0xfe8a, 0xfc29, 0xfc37,
+ 0xfd99, 0xfef4, 0x0075, 0x011b, 0xfffc, 0xff88,
+ 0x004d, 0xfe30, 0xf8be, 0xf513, 0xf4e4, 0xf574,
+ 0xf5d6, 0xf68f, 0xf766, 0xf8b3, 0xfa81, 0xfbbc,
+ 0xfc25, 0xfca7, 0xfda4, 0xfe32, 0xfe0e, 0xfea9,
+ 0xff6b, 0xfe6a, 0xfd7a, 0xfdfd, 0xfda7, 0xfd11,
+ 0xfe13, 0xfe30, 0xfc70, 0xfb31, 0xfa59, 0xf993,
+ 0xfb25, 0xff6e, 0x03a1, 0x0584, 0x051d, 0x0351,
+ 0x0179, 0x01d6, 0x044b, 0x055f, 0x0434, 0x0280,
+ 0xffaa, 0xfc1b, 0xfb11, 0xfcb8, 0xfdc8, 0xfc50,
+ 0xf9e6, 0xf9c2, 0xfc5c, 0x0009, 0x034b, 0x02bc,
+ 0xfde8, 0xfb76, 0xfd92, 0xfebe, 0xfeaa, 0x00fa,
+ 0x0378, 0x025b, 0xfea7, 0xfa5e, 0xf512, 0xef17,
+ 0xeb47, 0xeb28, 0xed76, 0xefba, 0xefdd, 0xefe7,
+ 0xf317, 0xf6a7, 0xf843, 0xfb73, 0x0039, 0x0265,
+ 0x01f5, 0x00d9, 0xfed9, 0xfc11, 0xfa08, 0xf95e,
+ 0xf8a3, 0xf711, 0xf6cf, 0xf9b9, 0xfea4, 0x033b,
+ 0x0634, 0x07a3, 0x0877, 0x0a15, 0x0c7d, 0x0d2e,
+ 0x0afb, 0x0772, 0x042e, 0x02f4, 0x03e1, 0x047c,
+ 0x0522, 0x075e, 0x0922, 0x09a5, 0x0ae4, 0x0cbf,
+ 0x0d47, 0x0b91, 0x094f, 0x08d4, 0x09a8, 0x0b39,
+ 0x0e0e, 0x0fda, 0x0d9b, 0x0895, 0x0608, 0x08bf,
+ 0x0bd8, 0x0bbe, 0x0ce1, 0x102a, 0x1176, 0x1243,
+ 0x1475, 0x14ba, 0x125d, 0x0fbc, 0x0d57, 0x0bbe,
+ 0x0bee, 0x0ce2, 0x0d5f, 0x0d5d, 0x0c7a, 0x0b42,
+ 0x0bb1, 0x0ce3, 0x0c99, 0x0c66, 0x0dfa, 0x1001,
+ 0x1198, 0x1242, 0x1136, 0x0f46, 0x0de7, 0x0d32,
+ 0x0bb4, 0x08b2, 0x0605, 0x0444, 0x021a, 0x013c,
+ 0x03c8, 0x079d, 0x09f2, 0x0a14, 0x0822, 0x054f,
+ 0x03fe, 0x055d, 0x07a5, 0x08a1, 0x0830, 0x0718,
+ 0x062f, 0x0589, 0x03e9, 0x0139, 0xfe89, 0xfce8,
+ 0xfe10, 0x00a9, 0x0122, 0x0139, 0x03d4, 0x0605,
+ 0x0579, 0x0470, 0x04be, 0x0621, 0x0807, 0x09e9,
+ 0x0acd, 0x0a2a, 0x09b2, 0x0a9e, 0x0a56, 0x0732,
+ 0x047a, 0x045f, 0x052f, 0x05bc, 0x045a, 0x0032,
+ 0xfedc, 0x02de, 0x05f9, 0x0753, 0x0a07, 0x0ac2,
+ 0x092f, 0x0845, 0x0665, 0x04c0, 0x0507, 0x03c6,
+ 0x0166, 0x000b, 0xfefa, 0xff70, 0xfff2, 0xfe04,
+ 0xfd6f, 0xff78, 0x01ea, 0x0506, 0x0692, 0x05b7,
+ 0x0559, 0x036f, 0xff02, 0xfcce, 0xfce5, 0xfc83,
+ 0xfcfb, 0xfeb4, 0xff61, 0xfe8a, 0xfdd5, 0xfded,
+ 0xfe67, 0xfeed, 0xfe0d, 0xfc0d, 0xfca5, 0xffcd,
+ 0x024a, 0x047b, 0x063e, 0x0593, 0x0451, 0x04c2,
+ 0x054d, 0x045c, 0x0385, 0x048c, 0x0557, 0x03e7,
+ 0x029d, 0x0204, 0xffb8, 0xfd26, 0xfcd1, 0xfd99,
+ 0xfe43, 0xfec5, 0xfecc, 0xfeae, 0xfe54, 0xfc38,
+ 0xf9be, 0xfa8b, 0xfcfb, 0xfdbb, 0xfeea, 0x0103,
+ 0x0121, 0x0092, 0x0111, 0x0180, 0x01ad, 0x00b0,
+ 0xfe82, 0xfcf6, 0xfb11, 0xf9d2, 0xfc46, 0xfe8c,
+ 0xfd70, 0xfc5b, 0xfbf4, 0xfb77, 0xfbb9, 0xfabd,
+ 0xf8bc, 0xf8d6, 0xf9d5, 0xfa7c, 0xfc52, 0xfe4b,
+ 0xff74, 0x00cd, 0x0179, 0x0117, 0x00d0, 0xfffd,
+ 0xfef5, 0xff65, 0xfff3, 0xfff8, 0x0168, 0x02bd,
+ 0x0171, 0xffe8, 0x00c7, 0x02ab, 0x02fc, 0x01d1,
+ 0x01db, 0x0399, 0x0518, 0x0636, 0x068d, 0x0491,
+ 0x0126, 0xfe34, 0xfcc6, 0xfcff, 0xfd2f, 0xfc9b,
+ 0xfc0d, 0xfbb6, 0xfc9f, 0xfe6e, 0xfed2, 0xfeb0,
+ 0xff25, 0xff04, 0xff94, 0x0130, 0x0131, 0xffb0,
+ 0xfe4b, 0xfd28, 0xfbdb, 0xf968, 0xf72a, 0xf80a,
+ 0xfaac, 0xfbcf, 0xfb66, 0xfb3c, 0xfc64, 0xfe72,
+ 0x0069, 0x013c, 0xffff, 0xfe81, 0xff33, 0x0105,
+ 0x0293, 0x03ad, 0x0389, 0x02d3, 0x02a8, 0x0233,
+ 0x011e, 0x0040, 0x0046, 0x00e1, 0x00a2, 0x0001,
+ 0x0079, 0x00c0, 0x006a, 0x00b8, 0xffb5, 0xfc7a,
+ 0xfac1, 0xfb2b, 0xfa77, 0xf993, 0xfb9f, 0xff31,
+ 0x0206, 0x0496, 0x0569, 0x026e, 0xfe6b, 0xfd09,
+ 0xfe32, 0xfff6, 0x0031, 0xfeeb, 0xfef3, 0x00ad,
+ 0x013f, 0x0000, 0xfefc, 0xfeba, 0xfdf0, 0xfd11,
+ 0xfd57, 0xfd18, 0xfb39, 0xf9af, 0xf879, 0xf6d6,
+ 0xf72f, 0xf9db, 0xfc74, 0xff97, 0x03c0, 0x069d,
+ 0x081e, 0x0906, 0x07c6, 0x0543, 0x03e0, 0x01d3,
+ 0xfe88, 0xfda4, 0xfebc, 0xfea2, 0xff18, 0x0187,
+ 0x0349, 0x03b4, 0x0384, 0x01f1, 0xffc2, 0xfe46,
+ 0xfcbf, 0xfafd, 0xfa60, 0xfbec, 0xfee3, 0x014d,
+ 0x02ab, 0x0322, 0x0153, 0xfe05, 0xfc72, 0xfc3f,
+ 0xfb6d, 0xfbcd, 0xfedc, 0x025d, 0x04f3, 0x06d6,
+ 0x0686, 0x0331, 0xff38, 0xfd6e, 0xff19, 0x02c0,
+ 0x0513, 0x064a, 0x0896, 0x0a4a, 0x0a20, 0x09c3,
+ 0x0908, 0x083a, 0x091e, 0x0a16, 0x0948, 0x07fd,
+ 0x0766, 0x07de, 0x07dc, 0x04d8, 0x00b8, 0xff86,
+ 0x0187, 0x04e4, 0x0810, 0x0a6a, 0x0c1d, 0x0c50,
+ 0x0a58, 0x07b9, 0x061d, 0x053e, 0x038c, 0x00d5,
+ 0xfea1, 0xfdd1, 0xff38, 0x02a0, 0x049b, 0x03b5,
+ 0x0253, 0x018d, 0x0180, 0x01e7, 0x014e, 0x0082,
+ 0x00f0, 0x016d, 0x0144, 0x0126, 0x025a, 0x04ca,
+ 0x04de, 0x021d, 0x00c7, 0x0049, 0xfe1b, 0xfd4e,
+ 0x006e, 0x04fc, 0x070a, 0x04dc, 0x0024, 0xfab5,
+ 0xf594, 0xf3b0, 0xf5f8, 0xf91b, 0xfb1e, 0xfcb4,
+ 0xfe53, 0xffa9, 0x001e, 0x0084, 0x0290, 0x0506,
+ 0x052e, 0x042b, 0x0419, 0x02eb, 0xff58, 0xfc1c,
+ 0xfa31, 0xf8e3, 0xf952, 0xfb57, 0xfd59, 0xfe90,
+ 0xfe69, 0xfdd4, 0xfd8f, 0xfc48, 0xfad4, 0xfa47,
+ 0xf934, 0xf86f, 0xf92a, 0xfa5f, 0xfcb0, 0xffdb,
+ 0x019b, 0x01f1, 0x0145, 0x003d, 0x0070, 0x009d,
+ 0xffad, 0xffbf, 0x01ac, 0x045e, 0x062f, 0x05bf,
+ 0x0434, 0x02de, 0x01cc, 0x0169, 0x00ee, 0xff82,
+ 0xfdb0, 0xfb34, 0xf89e, 0xf777, 0xf77c, 0xf8cc,
+ 0xfafc, 0xfb0f, 0xf8c3, 0xf7cd, 0xf9f5, 0xfcee,
+ 0xfe4e, 0xff44, 0x00a0, 0x0036, 0xfec0, 0xfefc,
+ 0x0050, 0x01a0, 0x02af, 0x032a, 0x0433, 0x05a8,
+ 0x0536, 0x021a, 0xfceb, 0xf770, 0xf4cc, 0xf633,
+ 0xfabb, 0x008d, 0x052b, 0x07be, 0x092b, 0x0a39,
+ 0x0a93, 0x087e, 0x0493, 0x01f9, 0x00da, 0x00b6,
+ 0x035d, 0x075b, 0x0989, 0x0ac0, 0x0c33, 0x0d27,
+ 0x0dc8, 0x0e1e, 0x0d91, 0x0cb5, 0x0ba6, 0x09dc,
+ 0x08d5, 0x09ba, 0x0ae5, 0x0b8a, 0x0c25, 0x0beb,
+ 0x0b1f, 0x0b3d, 0x0c4b, 0x0e41, 0x10a2, 0x116c,
+ 0x107f, 0x0f59, 0x0e6a, 0x0e1a, 0x0e74, 0x0ecd,
+ 0x0fd3, 0x125d, 0x1488, 0x1388, 0x1001, 0x0cfa,
+ 0x0b36, 0x0a38, 0x0a3e, 0x0a7c, 0x0afd, 0x0cbc,
+ 0x0e87, 0x0fce, 0x111d, 0x110f, 0x0eb1, 0x09fe,
+ 0x040f, 0x003e, 0xfeb7, 0xfdf2, 0xff87, 0x0187,
+ 0x0130, 0x026b, 0x0650, 0x08a4, 0x07ed, 0x04a9,
+ 0x0156, 0x0082, 0xffe9, 0xff06, 0xfff6, 0x0068,
+ 0xff0f, 0xfdea, 0xfc99, 0xfa76, 0xf86f, 0xf7c7,
+ 0xf97e, 0xfbcd, 0xfd24, 0xfeaf, 0xff86, 0xfe8f,
+ 0xfdfd, 0xfef9, 0x00d2, 0x0308, 0x04bb, 0x0576,
+ 0x057a, 0x0514, 0x041d, 0x01f1, 0xffa8, 0xfec9,
+ 0xfdf4, 0xfbe8, 0xfa07, 0xfa56, 0xfdbe, 0x020e,
+ 0x03b1, 0x01e3, 0xfe73, 0xfc42, 0xfca3, 0xfdec,
+ 0xffcf, 0x027c, 0x03d3, 0x048f, 0x063a, 0x0613,
+ 0x040a, 0x0304, 0x0186, 0xfe77, 0xfd07, 0xfe00,
+ 0xfe9c, 0xfe32, 0xfef1, 0x015d, 0x0377, 0x0452,
+ 0x03c3, 0x011d, 0xfd8a, 0xfb13, 0xfa53, 0xfb1f,
+ 0xfc17, 0xfc8a, 0xfe4d, 0x008a, 0x002b, 0xff3f,
+ 0x00cd, 0x024f, 0x0254, 0x0332, 0x0420, 0x0335,
+ 0x02df, 0x0512, 0x075e, 0x072d, 0x0533, 0x03f2,
+ 0x03f2, 0x03e1, 0x03ff, 0x047b, 0x0402, 0x0321,
+ 0x0338, 0x03f2, 0x04ab, 0x045b, 0x031f, 0x036d,
+ 0x051d, 0x0595, 0x046b, 0x0248, 0xffe2, 0xfda8,
+ 0xfb6b, 0xfb87, 0xff9e, 0x03f5, 0x0653, 0x0820,
+ 0x0901, 0x08ef, 0x08eb, 0x0839, 0x070a, 0x065b,
+ 0x059c, 0x04cf, 0x03dc, 0x0163, 0xfdfb, 0xfc4e,
+ 0xfd6a, 0xff5e, 0xffab, 0xfe6b, 0xfd27, 0xfc70,
+ 0xfcf6, 0xff39, 0x0177, 0x01f1, 0x01b0, 0x021a,
+ 0x02a6, 0x02d7, 0x029e, 0x0139, 0xff83, 0xff7c,
+ 0x00af, 0x01e2, 0x02be, 0x0243, 0x0096, 0xff7c,
+ 0xff5b, 0xfff4, 0x01eb, 0x0565, 0x08ce, 0x09b0,
+ 0x076d, 0x038e, 0xffe9, 0xfe47, 0xfe5c, 0xfe03,
+ 0xfe39, 0x008c, 0x02f5, 0x04a7, 0x05f5, 0x04da,
+ 0x01b6, 0xff84, 0xfe7b, 0xfd89, 0xfd13, 0xfe47,
+ 0x014b, 0x0455, 0x06d3, 0x0988, 0x09c1, 0x04e7,
+ 0xfe0f, 0xf921, 0xf6f7, 0xf74a, 0xf8fe, 0xfad1,
+ 0xfcae, 0xfe76, 0x001e, 0x0244, 0x03c5, 0x02ed,
+ 0x011b, 0xffd2, 0xfe6d, 0xfdea, 0xff55, 0x00ed,
+ 0x022d, 0x037a, 0x03c6, 0x0371, 0x0205, 0xfda5,
+ 0xf983, 0xf8e5, 0xf91c, 0xf95b, 0xfb2e, 0xfd07,
+ 0xfe50, 0xfffe, 0x01cf, 0x043b, 0x065a, 0x0644,
+ 0x0580, 0x04e9, 0x02fe, 0x0108, 0x0080, 0x0040,
+ 0xffbd, 0xfed3, 0xfdbb, 0xfe62, 0x0135, 0x0406,
+ 0x0550, 0x0580, 0x0567, 0x043e, 0x00fe, 0xfd6e,
+ 0xfb8d, 0xfaec, 0xfba9, 0xfdcb, 0xfe8f, 0xfd15,
+ 0xfc8b, 0xfe34, 0xfff5, 0x0093, 0x007e, 0x0082,
+ 0x008e, 0xff2c, 0xfc8d, 0xfb1c, 0xfb7c, 0xfd27,
+ 0x0033, 0x033f, 0x04cc, 0x0565, 0x0532, 0x035f,
+ 0xffdf, 0xfc37, 0xfacc, 0xfb36, 0xfb0f, 0xfb17,
+ 0xfc2e, 0xfcba, 0xfd94, 0xffbf, 0x00c1, 0x0024,
+ 0xffa1, 0xfebf, 0xfcc9, 0xfa8e, 0xf9f8, 0xfd1f,
+ 0x02d9, 0x0813, 0x0c1f, 0x0efe, 0x0fd3, 0x0e90,
+ 0x0ba8, 0x084d, 0x061a, 0x04ca, 0x0365, 0x023a,
+ 0x01d7, 0x02a4, 0x0435, 0x0481, 0x02fe, 0x0210,
+ 0x0362, 0x066d, 0x0a02, 0x0cc4, 0x0df8, 0x0e06,
+ 0x0d8e, 0x0db9, 0x0fa3, 0x1202, 0x12b0, 0x112e,
+ 0x0de2, 0x0a2f, 0x0815, 0x07f1, 0x08cc, 0x08db,
+ 0x0654, 0x0287, 0x001d, 0xff98, 0x0182, 0x05e4,
+ 0x09ea, 0x0c07, 0x0d79, 0x0e81, 0x0e93, 0x0df1,
+ 0x0cef, 0x0b3e, 0x0805, 0x037d, 0xff2f, 0xfc00,
+ 0xfa77, 0xfb60, 0xfec4, 0x0420, 0x0a06, 0x0d87,
+ 0x0d5b, 0x0bec, 0x0bf0, 0x0cd1, 0x0c70, 0x0a6c,
+ 0x079b, 0x054a, 0x0539, 0x06e5, 0x0805, 0x07e3,
+ 0x0607, 0x0256, 0xffa4, 0xffc8, 0x00d2, 0x00c2,
+ 0xff21, 0xfc7b, 0xfa74, 0xf9f8, 0xfa97, 0xfc21,
+ 0xfe90, 0x0088, 0x005f, 0xfefe, 0xfeba, 0xffa4,
+ 0x0034, 0xff82, 0xfdc3, 0xfc6f, 0xfc1f, 0xfbac,
+ 0xfabb, 0xf9ae, 0xf8e4, 0xf927, 0xfa05, 0xfa3f,
+ 0xf9e7, 0xf94b, 0xf8d4, 0xf92f, 0xf99d, 0xf9ba,
+ 0xfb21, 0xfe12, 0x006d, 0x014c, 0x01ec, 0x0263,
+ 0x014b, 0xfeeb, 0xfbf9, 0xf839, 0xf56c, 0xf4d9,
+ 0xf470, 0xf414, 0xf5f0, 0xf9a4, 0xfe00, 0x023b,
+ 0x045e, 0x03a1, 0x014b, 0xfe2f, 0xfabc, 0xf858,
+ 0xf83c, 0xf9ae, 0xfb6e, 0xfd90, 0xffe9, 0x01c9,
+ 0x0320, 0x034b, 0x0177, 0xfdf4, 0xfa52, 0xf918,
+ 0xfa0f, 0xfa51, 0xfa5a, 0xfb57, 0xfb37, 0xfa7a,
+ 0xfba3, 0xfe36, 0x0185, 0x04f9, 0x0697, 0x05d0,
+ 0x030b, 0xff57, 0xfd4d, 0xfd0a, 0xfc9c, 0xfc72,
+ 0xfcd4, 0xfc7e, 0xfc48, 0xfe14, 0x011f, 0x0319,
+ 0x03c5, 0x048a, 0x0510, 0x0456, 0x0349, 0x0308,
+ 0x0381, 0x0470, 0x05cb, 0x07a6, 0x0984, 0x0a80,
+ 0x0ad9, 0x0aff, 0x0a32, 0x08b7, 0x0859, 0x091a,
+ 0x08b9, 0x06e7, 0x0648, 0x080b, 0x0ae9, 0x0e26,
+ 0x111d, 0x1253, 0x11f5, 0x1180, 0x10bf, 0x0f04,
+ 0x0db5, 0x0dcf, 0x0de7, 0x0da0, 0x0e8a, 0x1068,
+ 0x1188, 0x115f, 0x1010, 0x0e20, 0x0ca1, 0x0c13,
+ 0x0bfa, 0x0b1f, 0x091e, 0x07a7, 0x0819, 0x09e6,
+ 0x0bff, 0x0d2f, 0x0cdb, 0x0bcb, 0x0a6e, 0x08d2,
+ 0x07ea, 0x0818, 0x0845, 0x07a5, 0x06e6, 0x0700,
+ 0x0746, 0x0683, 0x05b1, 0x06a4, 0x08ee, 0x0b12,
+ 0x0cde, 0x0ddc, 0x0c7a, 0x0903, 0x05a7, 0x033f,
+ 0x0191, 0x00a7, 0x0082, 0x0161, 0x0306, 0x04da,
+ 0x0792, 0x0b0d, 0x0d05, 0x0c26, 0x08ba, 0x040f,
+ 0x0063, 0xfe6a, 0xfdcb, 0xff0d, 0x014e, 0x0346,
+ 0x05dc, 0x090c, 0x0b87, 0x0d10, 0x0ce5, 0x0aaa,
+ 0x07af, 0x03bc, 0xff0d, 0xfd10, 0xfe7b, 0x002f,
+ 0x0198, 0x03d6, 0x0617, 0x074e, 0x0769, 0x06d0,
+ 0x0641, 0x05ae, 0x04bc, 0x0392, 0x0197, 0xfe3e,
+ 0xfaf2, 0xf9ba, 0xfb00, 0xfd49, 0xff47, 0x0147,
+ 0x02f1, 0x032c, 0x02e3, 0x0328, 0x0389, 0x046d,
+ 0x05dd, 0x062a, 0x04dc, 0x0315, 0x019e, 0x00d4,
+ 0x00a8, 0x00f4, 0x01cb, 0x02a0, 0x0273, 0x00ea,
+ 0xfe75, 0xfbd4, 0xf9fd, 0xfa1e, 0xfc2b, 0xfe7a,
+ 0x00ad, 0x037b, 0x05b7, 0x0609, 0x0509, 0x03ce,
+ 0x02da, 0x01c6, 0xffd8, 0xfda3, 0xfc5e, 0xfcc3,
+ 0xfedf, 0x0156, 0x02b3, 0x02a3, 0x0123, 0xff44,
+ 0xfe56, 0xfd98, 0xfcbb, 0xfd15, 0xfe44, 0xff63,
+ 0x0132, 0x035f, 0x049e, 0x0516, 0x04bf, 0x0348,
+ 0x0202, 0x012d, 0xfec5, 0xfb47, 0xf971, 0xf92e,
+ 0xf935, 0xfaa1, 0xfe22, 0x01b0, 0x0388, 0x0484,
+ 0x0628, 0x0808, 0x08a4, 0x0763, 0x04f1, 0x02c9,
+ 0x0185, 0x006a, 0xff45, 0xfddf, 0xfbc6, 0xfa08,
+ 0xf977, 0xf9f3, 0xfc24, 0xff08, 0x0038, 0x001b,
+ 0xffcc, 0xff02, 0xfe30, 0xfdba, 0xfd31, 0xfce2,
+ 0xfda4, 0xffb8, 0x021f, 0x0429, 0x0638, 0x06f3,
+ 0x05ae, 0x0555, 0x0644, 0x05c0, 0x042f, 0x02ed,
+ 0x0226, 0x028e, 0x03b2, 0x0490, 0x04b1, 0x02fc,
+ 0x009b, 0xfffa, 0x0016, 0xffbc, 0xffbd, 0x0041,
+ 0x0187, 0x03a6, 0x0500, 0x040a, 0x00e0, 0xfdb9,
+ 0xfd04, 0xfe31, 0xff9d, 0x00f9, 0x0203, 0x0291,
+ 0x0273, 0x019e, 0x01a1, 0x027d, 0x0210, 0x00df,
+ 0xffff, 0xfe67, 0xfd11, 0xfd50, 0xfd95, 0xfdaa,
+ 0xff19, 0x016c, 0x0374, 0x0421, 0x0210, 0xfe96,
+ 0xfcad, 0xfc4f, 0xfc89, 0xfded, 0xff68, 0xff37,
+ 0xfe05, 0xfccd, 0xfc5f, 0xfe15, 0x00ff, 0x0321,
+ 0x04c4, 0x063d, 0x073f, 0x08ca, 0x0a9e, 0x09f9,
+ 0x060c, 0x0177, 0xfe5f, 0xfcce, 0xfc62, 0xfc56,
+ 0xfbd4, 0xfbbc, 0xfd39, 0xffda, 0x0252, 0x02a7,
+ 0x0038, 0xfdb5, 0xfd62, 0xff4e, 0x0285, 0x0415,
+ 0x02a7, 0x0187, 0x026b, 0x0395, 0x03eb, 0x0203,
+ 0xfd3a, 0xf909, 0xf878, 0xf9e4, 0xfae1, 0xfb3e,
+ 0xfb6e, 0xfbab, 0xfca4, 0xfe6d, 0xffa0, 0xff79,
+ 0xfec3, 0xfe45, 0xfe16, 0xfdc8, 0xfd2f, 0xfc8a,
+ 0xfb84, 0xfa9f, 0xfbb7, 0xfe38, 0xff01, 0xfce1,
+ 0xf9bc, 0xf81b, 0xf8a8, 0xfa74, 0xfcf4, 0xff2f,
+ 0xffe5, 0xfff5, 0x0027, 0xffa9, 0xff80, 0x018e,
+ 0x049d, 0x06bf, 0x07fa, 0x07e1, 0x05c4, 0x0309,
+ 0x00b4, 0xfe46, 0xfca7, 0xfc68, 0xfc20, 0xfbd1,
+ 0xfc5c, 0xfe28, 0x0269, 0x07f1, 0x0be3, 0x0e58,
+ 0x0e5a, 0x09bb, 0x0350, 0xfedd, 0xfca5, 0xfccb,
+ 0xff16, 0x0224, 0x0574, 0x08fa, 0x0c88, 0x0f02,
+ 0x0e89, 0x0b5c, 0x07c2, 0x05ae, 0x0576, 0x05bf,
+ 0x05f4, 0x0635, 0x0607, 0x074f, 0x0b5d, 0x0eb7,
+ 0x0f72, 0x0ed2, 0x0d28, 0x0bde, 0x0bd1, 0x0afd,
+ 0x0911, 0x06d4, 0x0459, 0x0332, 0x0358, 0x0270,
+ 0x0109, 0x0180, 0x03d3, 0x0678, 0x090f, 0x0bb0,
+ 0x0cd0, 0x0b72, 0x08a1, 0x0540, 0x0316, 0x03b7,
+ 0x0541, 0x068d, 0x0804, 0x0832, 0x076a, 0x072e,
+ 0x05c7, 0x0214, 0xfd53, 0xf8b9, 0xf59f, 0xf467,
+ 0xf527, 0xf877, 0xfc8f, 0xff84, 0x01c3, 0x02e1,
+ 0x0251, 0x00eb, 0xfeea, 0xfc15, 0xf87b, 0xf586,
+ 0xf518, 0xf5b8, 0xf64e, 0xf916, 0xfd5a, 0x00b1,
+ 0x036b, 0x043a, 0x0173, 0xfd80, 0xfa9e, 0xf87d,
+ 0xf6fe, 0xf6b7, 0xf79d, 0xf87c, 0xf934, 0xfb7e,
+ 0xff06, 0x01a0, 0x02c1, 0x026e, 0x00d9, 0xff8e,
+ 0xff51, 0xff5f, 0xffba, 0x0112, 0x026f, 0x01f0,
+ 0xffbd, 0xfda8, 0xfd3c, 0xff05, 0x01c1, 0x03a2,
+ 0x03f6, 0x0249, 0xff78, 0xfde6, 0xfd39, 0xfbac,
+ 0xfa8a, 0xfb28, 0xfc55, 0xfd2a, 0xfdc2, 0xfe43,
+ 0xfed3, 0xff1a, 0xfec6, 0xfe2d, 0xfd18, 0xfaa9,
+ 0xf7a3, 0xf5d6, 0xf5a1, 0xf7ab, 0xfca1, 0x0115,
+ 0x01a4, 0x00ae, 0x00a5, 0x0050, 0xff2a, 0xfde3,
+ 0xfd27, 0xfdac, 0xfec7, 0xffcd, 0x0104, 0x0149,
+ 0x0059, 0x0057, 0x00f1, 0x0085, 0x00d4, 0x0307,
+ 0x04f9, 0x062e, 0x07c3, 0x08e8, 0x0937, 0x09a1,
+ 0x09d7, 0x09a0, 0x09bf, 0x0a39, 0x0b2c, 0x0ca1,
+ 0x0d1c, 0x0bf1, 0x0a30, 0x087b, 0x075a, 0x0770,
+ 0x07a3, 0x0675, 0x04fb, 0x0507, 0x0683, 0x0921,
+ 0x0c68, 0x0e4a, 0x0e52, 0x0d53, 0x0a58, 0x06c6,
+ 0x05be, 0x05ef, 0x0639, 0x07fe, 0x09d3, 0x0b81,
+ 0x0f26, 0x1294, 0x1311, 0x1106, 0x0ce3, 0x0925,
+ 0x083c, 0x078b, 0x0567, 0x0456, 0x0558, 0x0776,
+ 0x0a00, 0x0bac, 0x0be7, 0x0be5, 0x0ba2, 0x0924,
+ 0x04b6, 0x019b, 0x0168, 0x0321, 0x056e, 0x0705,
+ 0x0796, 0x0791, 0x0722, 0x0724, 0x07cf, 0x07e6,
+ 0x0728, 0x0588, 0x02fb, 0x00ed, 0xff1d, 0xfcf7,
+ 0xfd57, 0x0059, 0x022b, 0x0304, 0x0494, 0x050c,
+ 0x0472, 0x04b4, 0x045e, 0x027b, 0x017e, 0x0201,
+ 0x02a3, 0x0322, 0x0275, 0x0038, 0xff0a, 0xffe1,
+ 0x0186, 0x03fe, 0x0642, 0x06b0, 0x05b5, 0x0373,
+ 0x00ce, 0x005c, 0x01d8, 0x03b5, 0x062c, 0x080b,
+ 0x081e, 0x07fa, 0x07e5, 0x05f4, 0x023d, 0xff3f,
+ 0xfe8d, 0xff46, 0x001a, 0x0125, 0x029c, 0x03f9,
+ 0x0537, 0x06df, 0x0821, 0x0730, 0x04e4, 0x039e,
+ 0x02c2, 0x0136, 0xfff8, 0xfed1, 0xfdfa, 0x002f,
+ 0x04c3, 0x076a, 0x073c, 0x05b8, 0x0301, 0x0015,
+ 0xfe92, 0xfd9c, 0xfc8b, 0xfcaa, 0xfd82, 0xfd7d,
+ 0xfd46, 0xfdff, 0xffa3, 0x0186, 0x029f, 0x034d,
+ 0x042b, 0x0408, 0x035a, 0x0397, 0x035c, 0x025e,
+ 0x0271, 0x0294, 0x0127, 0xfee8, 0xfcbd, 0xfbf2,
+ 0xfde0, 0x0158, 0x0442, 0x0580, 0x0430, 0x00ac,
+ 0xfd9c, 0xfd37, 0xff1f, 0x01f6, 0x0451, 0x051c,
+ 0x0594, 0x0726, 0x0849, 0x07d1, 0x0641, 0x0335,
+ 0xffb3, 0xfe06, 0xfd38, 0xfb64, 0xf96a, 0xf8c8,
+ 0xf9ef, 0xfbeb, 0xfd10, 0xfda9, 0xfef7, 0x0054,
+ 0x00c7, 0x00b0, 0x00d1, 0x0152, 0x0152, 0x006d,
+ 0x0040, 0x0165, 0x0204, 0x0190, 0x007f, 0xfe0d,
+ 0xfb90, 0xfba6, 0xfcee, 0xfd76, 0xfe62, 0xffb1,
+ 0x0094, 0x020f, 0x03af, 0x041e, 0x04b8, 0x065f,
+ 0x072d, 0x065b, 0x0541, 0x0448, 0x0322, 0x025c,
+ 0x01c0, 0x00ac, 0x0062, 0x01b7, 0x037a, 0x04e0,
+ 0x04fa, 0x0318, 0x0161, 0x0156, 0x0162, 0x00dd,
+ 0x003b, 0xff3e, 0xff09, 0x00fe, 0x03aa, 0x0500,
+ 0x052b, 0x0558, 0x064c, 0x07cc, 0x07ef, 0x055c,
+ 0x01a9, 0xfeb8, 0xfc80, 0xfaab, 0xf907, 0xf822,
+ 0xf95e, 0xfcc3, 0x0196, 0x06ac, 0x08ef, 0x078d,
+ 0x055c, 0x036d, 0x01cf, 0x016b, 0x019c, 0x0267,
+ 0x04e4, 0x07af, 0x0994, 0x0b17, 0x0b74, 0x0a5d,
+ 0x095c, 0x08b6, 0x0741, 0x04dd, 0x0271, 0x0072,
+ 0xff3d, 0xff6c, 0x00dd, 0x0363, 0x0664, 0x07ea,
+ 0x086f, 0x0a5b, 0x0c44, 0x0c4e, 0x0b81, 0x09d6,
+ 0x07d6, 0x0718, 0x05de, 0x02c0, 0xffc5, 0xfe72,
+ 0xff46, 0x0142, 0x01bb, 0x0106, 0x0194, 0x031a,
+ 0x0404, 0x0395, 0x0252, 0x0201, 0x02fd, 0x03f7,
+ 0x04d0, 0x05c4, 0x05d0, 0x047c, 0x02a3, 0x0043,
+ 0xfcaf, 0xf924, 0xf769, 0xf751, 0xf85c, 0xfa32,
+ 0xfbb1, 0xfca6, 0xfd9a, 0xfe3a, 0xfe3b, 0xfd7f,
+ 0xfc32, 0xfb83, 0xfb82, 0xfae7, 0xfa34, 0xfa7e,
+ 0xfb5d, 0xfce6, 0xffa8, 0x0245, 0x0314, 0x0274,
+ 0x0143, 0x0003, 0xff9b, 0xffcb, 0xff44, 0xfe5a,
+ 0xfdaf, 0xfcf4, 0xfd48, 0xff85, 0x020b, 0x0418,
+ 0x05cf, 0x05fe, 0x0484, 0x0224, 0xfe9e, 0xfbad,
+ 0xfbb3, 0xfd73, 0xff84, 0x0247, 0x0470, 0x04bc,
+ 0x03ea, 0x028e, 0x01c3, 0x02c4, 0x0499, 0x0686,
+ 0x086b, 0x086f, 0x060b, 0x036c, 0x0211, 0x02bf,
+ 0x05ba, 0x08f2, 0x0a4d, 0x0ac9, 0x0c72, 0x0f24,
+ 0x1195, 0x138c, 0x14b6, 0x1414, 0x122b, 0x108e,
+ 0x0f61, 0x0de1, 0x0cd0, 0x0e10, 0x10e1, 0x124f,
+ 0x11e0, 0x1065, 0x0e02, 0x0c85, 0x0c79, 0x0bd7,
+ 0x0b38, 0x0b72, 0x0acc, 0x0a01, 0x0a76, 0x0a96,
+ 0x09a9, 0x0835, 0x0660, 0x053b, 0x0527, 0x059a,
+ 0x06c3, 0x07f4, 0x0853, 0x085a, 0x0775, 0x049a,
+ 0x013e, 0xff64, 0xfea7, 0xfdfb, 0xfdaf, 0xfd94,
+ 0xfcd3, 0xfc42, 0xfc65, 0xfbed, 0xfac0, 0xf99b,
+ 0xf893, 0xf845, 0xf8be, 0xf8fc, 0xf88a, 0xf733,
+ 0xf5a3, 0xf54d, 0xf59f, 0xf52a, 0xf47e, 0xf4e8,
+ 0xf693, 0xf87b, 0xf9fb, 0xfb4f, 0xfbf2, 0xfbb9,
+ 0xfbb6, 0xfb52, 0xf91f, 0xf5fb, 0xf43f, 0xf5ad,
+ 0xf990, 0xfd12, 0xfeba, 0xfe6b, 0xfc8d, 0xfb51,
+ 0xfba0, 0xfb66, 0xf9ca, 0xf7a4, 0xf583, 0xf48d,
+ 0xf55d, 0xf70a, 0xf902, 0xfaf5, 0xfc55, 0xfd8e,
+ 0xff4e, 0x00c1, 0x00be, 0xffbf, 0xff0b, 0xfedd,
+ 0xfe89, 0xfd81, 0xfbdb, 0xfa86, 0xfa51, 0xfb2c,
+ 0xfc9b, 0xfdf1, 0xfefb, 0x0076, 0x0244, 0x0326,
+ 0x02dc, 0x021d, 0x019d, 0x01eb, 0x02b2, 0x0330,
+ 0x037c, 0x03a1, 0x0386, 0x039b, 0x0363, 0x01e2,
+ 0xfff3, 0xff32, 0x003c, 0x02bb, 0x0537, 0x068c,
+ 0x070c, 0x06f0, 0x06cd, 0x07ac, 0x082b, 0x06f4,
+ 0x064c, 0x0778, 0x086e, 0x083a, 0x072c, 0x0534,
+ 0x0388, 0x03b9, 0x0537, 0x0663, 0x0645, 0x0516,
+ 0x048c, 0x0616, 0x0867, 0x0969, 0x0983, 0x0a03,
+ 0x0af4, 0x0c99, 0x0f67, 0x1226, 0x131f, 0x12a0,
+ 0x1245, 0x1244, 0x1170, 0x0f6e, 0x0c9f, 0x098d,
+ 0x07b7, 0x0803, 0x09ab, 0x0be2, 0x0dee, 0x0f4b,
+ 0x10b7, 0x1212, 0x11c1, 0x0fe0, 0x0e57, 0x0e23,
+ 0x0e5a, 0x0d98, 0x0c0f, 0x0aad, 0x09de, 0x0a7a,
+ 0x0c60, 0x0d88, 0x0d4a, 0x0cdb, 0x0ce5, 0x0d5a,
+ 0x0d4d, 0x0b68, 0x0810, 0x04f7, 0x0339, 0x0324,
+ 0x043b, 0x0559, 0x05de, 0x063c, 0x06da, 0x072c,
+ 0x06b3, 0x05ee, 0x05a9, 0x05b3, 0x0484, 0x0171,
+ 0xfe2f, 0xfc2d, 0xfbe6, 0xfe0a, 0x0120, 0x0289,
+ 0x02b6, 0x02c0, 0x0202, 0x0100, 0x00b7, 0x00c1,
+ 0x0119, 0x022f, 0x0430, 0x0701, 0x089f, 0x06c4,
+ 0x02cd, 0xffb0, 0xfe8d, 0xff4e, 0x008e, 0x0039,
+ 0xfee1, 0xfead, 0xff74, 0x0037, 0x0145, 0x028c,
+ 0x03cc, 0x055f, 0x06b0, 0x06cf, 0x05d3, 0x03f7,
+ 0x01c6, 0x0067, 0x0024, 0x0036, 0xffc0, 0xfec3,
+ 0xfebf, 0x008e, 0x02ce, 0x03f3, 0x036d, 0x017a,
+ 0xffbb, 0xfee7, 0xfd96, 0xfbf7, 0xfbd7, 0xfc85,
+ 0xfc95, 0xfcd2, 0xfdea, 0xff68, 0x0120, 0x028e,
+ 0x02dc, 0x01c4, 0xff51, 0xfd37, 0xfe17, 0x00bd,
+ 0x01ad, 0x00d6, 0xff9c, 0xfdd3, 0xfc9f, 0xfdb4,
+ 0xff9b, 0x0008, 0xff69, 0xff75, 0x00ac, 0x01c8,
+ 0x0150, 0xffe1, 0xff30, 0xff9c, 0x0097, 0x01ee,
+ 0x0344, 0x03c2, 0x02f3, 0x01ec, 0x0236, 0x02d2,
+ 0x0180, 0xff83, 0xffea, 0x0244, 0x0457, 0x05cd,
+ 0x0668, 0x0558, 0x03a1, 0x02ef, 0x02f9, 0x02af,
+ 0x0227, 0x0223, 0x030c, 0x0473, 0x057b, 0x05bc,
+ 0x054c, 0x046b, 0x03cb, 0x03ec, 0x0412, 0x03b1,
+ 0x03a3, 0x0469, 0x0544, 0x05a7, 0x056c, 0x0465,
+ 0x0346, 0x02e6, 0x029d, 0x01b7, 0x00d0, 0x0058,
+ 0x002a, 0x0037, 0x003c, 0x0015, 0xffde, 0xff50,
+ 0xfedf, 0xffc4, 0x0155, 0x01d2, 0x01d0, 0x02dd,
+ 0x048e, 0x0541, 0x03ef, 0x0157, 0xff93, 0xff26,
+ 0xfebe, 0xfe48, 0xfe64, 0xfea5, 0xff2f, 0x008b,
+ 0x01d3, 0x0210, 0x0128, 0xff5a, 0xfe2c, 0xff2e,
+ 0x0143, 0x027d, 0x02c9, 0x0301, 0x03a2, 0x0476,
+ 0x04aa, 0x03df, 0x028f, 0x01b1, 0x024a, 0x0402,
+ 0x050c, 0x047d, 0x02f7, 0x018c, 0x00d9, 0x003c,
+ 0xff1b, 0xfe8e, 0xff12, 0xffd9, 0x01ae, 0x04ef,
+ 0x0713, 0x074e, 0x0775, 0x0728, 0x05a3, 0x0432,
+ 0x0288, 0x0009, 0xff0e, 0x002e, 0x00f4, 0x013d,
+ 0x01ed, 0x0227, 0x0236, 0x02b5, 0x0245, 0x00e7,
+ 0x002e, 0x001c, 0x0082, 0x016d, 0x0161, 0xffaa,
+ 0xfdc7, 0xfcd6, 0xfd01, 0xfdc9, 0xfdf1, 0xfd90,
+ 0xfd81, 0xfccd, 0xfb1d, 0xfa6a, 0xfaf4, 0xfb49,
+ 0xfc2e, 0xfe9d, 0x00ef, 0x01a4, 0x012e, 0x00a4,
+ 0x00b1, 0x00ac, 0xff67, 0xfd64, 0xfc1b, 0xfbfd,
+ 0xfd1c, 0xff7f, 0x0226, 0x039b, 0x037c, 0x02cc,
+ 0x024d, 0x011e, 0xfea0, 0xfc33, 0xfae2, 0xf9ed,
+ 0xf8e6, 0xf7f2, 0xf6e0, 0xf6a7, 0xf8c7, 0xfc5d,
+ 0xff8a, 0x01ca, 0x0293, 0x018c, 0x002d, 0xff97,
+ 0xff2c, 0xfe46, 0xfcfd, 0xfc38, 0xfd09, 0xfedf,
+ 0x002e, 0x0065, 0xffc2, 0xff1c, 0xfefc, 0xfe05,
+ 0xfb6f, 0xf91d, 0xf81d, 0xf7c9, 0xf912, 0xfc88,
+ 0xff83, 0x009e, 0x01c2, 0x0394, 0x0520, 0x0667,
+ 0x06fa, 0x0625, 0x04a8, 0x02e5, 0x0121, 0x00d0,
+ 0x01f7, 0x0386, 0x05e8, 0x0870, 0x0901, 0x07ed,
+ 0x072d, 0x0798, 0x08c3, 0x099d, 0x09cc, 0x0994,
+ 0x088d, 0x0777, 0x083a, 0x0a36, 0x0b93, 0x0c6c,
+ 0x0d5f, 0x0ec7, 0x10c1, 0x11cc, 0x1138, 0x10ec,
+ 0x1127, 0x103e, 0x0f14, 0x0f02, 0x0ed9, 0x0e6d,
+ 0x0ebb, 0x0e9b, 0x0d32, 0x0b9c, 0x0a13, 0x088c,
+ 0x07fd, 0x083c, 0x0854, 0x07f4, 0x070b, 0x0655,
+ 0x0611, 0x046e, 0x0129, 0xfeb6, 0xfe0e, 0xfe8a,
+ 0xffcc, 0x00d5, 0x00eb, 0x00dc, 0x018e, 0x03a4,
+ 0x06de, 0x08ae, 0x075e, 0x04f1, 0x0330, 0x0137,
+ 0xfeee, 0xfd69, 0xfc56, 0xfb70, 0xfba5, 0xfcb5,
+ 0xfd66, 0xfd47, 0xfc1a, 0xfa57, 0xf9a5, 0xfa1a,
+ 0xfa41, 0xf9cd, 0xf8df, 0xf776, 0xf6e4, 0xf7a1,
+ 0xf7f2, 0xf7a2, 0xf818, 0xf89d, 0xf838, 0xf827,
+ 0xf90b, 0xfa0c, 0xfa8f, 0xfa2d, 0xf94a, 0xf88d,
+ 0xf72c, 0xf58b, 0xf5d0, 0xf6fc, 0xf655, 0xf4b3,
+ 0xf40e, 0xf42a, 0xf479, 0xf50d, 0xf615, 0xf7e3,
+ 0xf9e4, 0xfab1, 0xf9f8, 0xf87f, 0xf689, 0xf445,
+ 0xf31c, 0xf43d, 0xf6a4, 0xf865, 0xf8e0, 0xf90c,
+ 0xfa38, 0xfc5d, 0xfe3f, 0xfeef, 0xfe69, 0xfdd1,
+ 0xfe3d, 0xfea2, 0xfd8a, 0xfb68, 0xf942, 0xf7e6,
+ 0xf813, 0xfa0c, 0xfdaf, 0x0192, 0x039b, 0x0462,
+ 0x0587, 0x060e, 0x055e, 0x0487, 0x0350, 0x0154,
+ 0xff5c, 0xfd83, 0xfbae, 0xfa66, 0xf9da, 0xfa46,
+ 0xfc0b, 0xfe39, 0xffc9, 0x0189, 0x042a, 0x065a,
+ 0x06f7, 0x0621, 0x0412, 0x01f0, 0x0148, 0x0188,
+ 0x01aa, 0x0250, 0x036f, 0x03a9, 0x02b3, 0x01f6,
+ 0x02da, 0x04e1, 0x0702, 0x09a8, 0x0c1b, 0x0c02,
+ 0x09a0, 0x06f5, 0x04b7, 0x03d7, 0x054b, 0x080e,
+ 0x0ac5, 0x0d12, 0x0f52, 0x11b7, 0x12e7, 0x1210,
+ 0x113c, 0x11a2, 0x11c6, 0x10f2, 0x0f8c, 0x0d74,
+ 0x0b5b, 0x0aaf, 0x0c0d, 0x0f33, 0x1299, 0x1411,
+ 0x13ae, 0x1309, 0x1253, 0x11c9, 0x1270, 0x1351,
+ 0x12af, 0x1117, 0x0f79, 0x0d9f, 0x0c01, 0x0b87,
+ 0x0bb7, 0x0b85, 0x0ae5, 0x0a59, 0x0a55, 0x0b95,
+ 0x0de0, 0x0f43, 0x0ead, 0x0d03, 0x0af2, 0x0927,
+ 0x08d3, 0x097e, 0x095f, 0x081a, 0x06cc, 0x0633,
+ 0x05f7, 0x05cf, 0x05fa, 0x061d, 0x0615, 0x06e0,
+ 0x084a, 0x0890, 0x073c, 0x0571, 0x0414, 0x0371,
+ 0x03bb, 0x04eb, 0x0620, 0x0664, 0x062d, 0x0667,
+ 0x071c, 0x0840, 0x09fe, 0x0bd8, 0x0cbf, 0x0c25,
+ 0x0a20, 0x069f, 0x025a, 0xff46, 0xfdde, 0xfd3d,
+ 0xfd84, 0xfe5f, 0xfefc, 0x0051, 0x0284, 0x0413,
+ 0x051f, 0x05f0, 0x0563, 0x03dc, 0x02cb, 0x021c,
+ 0x0178, 0x0199, 0x0282, 0x0275, 0x00e1, 0xfff6,
+ 0x00b1, 0x01ae, 0x025f, 0x02df, 0x02bc, 0x0207,
+ 0x0113, 0x008f, 0x010a, 0x0127, 0xffef, 0xfeb8,
+ 0xfe63, 0xff2a, 0x013c, 0x02d1, 0x0247, 0x00b5,
+ 0xff67, 0xfe99, 0xfe2d, 0xfda7, 0xfd6b, 0xfe4d,
+ 0xffb7, 0x0144, 0x0399, 0x05c5, 0x05f0, 0x04a2,
+ 0x0379, 0x029d, 0x01e1, 0x01a3, 0x01d5, 0x023f,
+ 0x02a9, 0x02a2, 0x0289, 0x02cf, 0x02b9, 0x022f,
+ 0x01ca, 0x0139, 0x00c0, 0x0115, 0x0195, 0x0229,
+ 0x0381, 0x0495, 0x0450, 0x036a, 0x026f, 0x019b,
+ 0x016d, 0x0175, 0x018e, 0x0301, 0x0555, 0x05e9,
+ 0x0451, 0x028a, 0x0196, 0x0153, 0x0146, 0x00d4,
+ 0x0098, 0x0178, 0x02ba, 0x0395, 0x0433, 0x0444,
+ 0x0300, 0x005e, 0xfdde, 0xfdad, 0xffe0, 0x027c,
+ 0x041d, 0x046a, 0x03fe, 0x0412, 0x0434, 0x02d3,
+ 0x0090, 0xff3d, 0xfec0, 0xfe1f, 0xfdbb, 0xfe4d,
+ 0xff75, 0x006e, 0x00e5, 0x0144, 0x029b, 0x04d7,
+ 0x0691, 0x0713, 0x065a, 0x04c0, 0x033b, 0x01e6,
+ 0x0059, 0xfee7, 0xfd6d, 0xfc0d, 0xfbb4, 0xfc3f,
+ 0xfe46, 0x0289, 0x05d5, 0x05ee, 0x0591, 0x05cf,
+ 0x0558, 0x04f1, 0x0517, 0x0552, 0x062d, 0x0761,
+ 0x0816, 0x080d, 0x0633, 0x026a, 0xff0d, 0xfd80,
+ 0xfd1f, 0xfd75, 0xfe44, 0xfee2, 0xff4e, 0x0018,
+ 0x00ac, 0x004a, 0x0001, 0x00b0, 0x01bd, 0x0301,
+ 0x04b1, 0x0642, 0x06bf, 0x051e, 0x01f1, 0xff41,
+ 0xfcd8, 0xf970, 0xf69f, 0xf6aa, 0xf985, 0xfd97,
+ 0x00b4, 0x0180, 0x0067, 0xfe61, 0xfc4f, 0xfb5d,
+ 0xfc60, 0xfeea, 0x016c, 0x029b, 0x02a3, 0x029f,
+ 0x035d, 0x048c, 0x0502, 0x040b, 0x0210, 0x000a,
+ 0xfead, 0xfe42, 0xff3e, 0x0123, 0x0224, 0x024a,
+ 0x0323, 0x03e7, 0x039f, 0x035a, 0x02d1, 0x016c,
+ 0x0112, 0x028e, 0x041b, 0x045b, 0x02b2, 0xfffb,
+ 0xfea6, 0xff01, 0xff91, 0x0052, 0x00e9, 0x0080,
+ 0x0051, 0x0061, 0xfea6, 0xfbbc, 0xf904, 0xf5d7,
+ 0xf333, 0xf294, 0xf313, 0xf4b3, 0xf7ca, 0xfa99,
+ 0xfceb, 0xff2f, 0xff47, 0xfcdd, 0xfa73, 0xf932,
+ 0xf9bb, 0xfc8b, 0xff68, 0xffd8, 0xfe6a, 0xfcb2,
+ 0xfb21, 0xf9ce, 0xf949, 0xf9b3, 0xfa4e, 0xfabe,
+ 0xfb4f, 0xfc5c, 0xfe4d, 0x011d, 0x03b3, 0x04a6,
+ 0x03e4, 0x02af, 0x018c, 0x009b, 0x011a, 0x02ef,
+ 0x0464, 0x0592, 0x06b4, 0x06cc, 0x06a7, 0x0704,
+ 0x06cb, 0x0693, 0x0756, 0x0817, 0x0899, 0x090b,
+ 0x08c3, 0x083b, 0x0813, 0x0798, 0x06b8, 0x0621,
+ 0x0633, 0x0756, 0x0951, 0x0ad1, 0x0aee, 0x0a75,
+ 0x0acf, 0x0c54, 0x0e98, 0x10ab, 0x1134, 0x1059,
+ 0x0f45, 0x0e4b, 0x0e0b, 0x0e66, 0x0d09, 0x09b7,
+ 0x06fb, 0x059e, 0x059d, 0x076d, 0x0982, 0x0a2a,
+ 0x0a7f, 0x0bcd, 0x0d25, 0x0d6c, 0x0d3e, 0x0ce0,
+ 0x0b0c, 0x081a, 0x05d9, 0x040c, 0x01ed, 0x004a,
+ 0xff93, 0xffcd, 0x0137, 0x032c, 0x04ee, 0x066e,
+ 0x0773, 0x0814, 0x0872, 0x0801, 0x06d4, 0x058f,
+ 0x0431, 0x0313, 0x02ef, 0x0315, 0x0239, 0x0071,
+ 0xfec0, 0xfdbf, 0xfd8e, 0xfdeb, 0xfe2d, 0xfdb6,
+ 0xfc76, 0xfab9, 0xf8d5, 0xf7a3, 0xf7a0, 0xf77b,
+ 0xf61b, 0xf4ad, 0xf44f, 0xf4e8, 0xf662, 0xf7e5,
+ 0xf855, 0xf840, 0xf89d, 0xf9c7, 0xfb8b, 0xfc8e,
+ 0xfc76, 0xfc63, 0xfbc9, 0xfa0b, 0xf863, 0xf71b,
+ 0xf66a, 0xf776, 0xf93b, 0xfa65, 0xfba1, 0xfc65,
+ 0xfbe7, 0xfbcc, 0xfd12, 0xfee3, 0x00c1, 0x01ee,
+ 0x0170, 0x0016, 0xffb1, 0x004f, 0x00a8, 0x0064,
+ 0xffda, 0xfee6, 0xfe28, 0xfeb7, 0xffd2, 0xffd0,
+ 0xfec8, 0xfe57, 0xff27, 0x0039, 0x010c, 0x019c,
+ 0x00fc, 0xff63, 0xfeaf, 0xff4e, 0x00d3, 0x033a,
+ 0x0567, 0x0685, 0x06e3, 0x05f3, 0x03e7, 0x0299,
+ 0x01ec, 0x002f, 0xfdb2, 0xfbe8, 0xfb3e, 0xfbcb,
+ 0xfd94, 0xff87, 0x00c9, 0x0278, 0x04fb, 0x0662,
+ 0x0635, 0x05f9, 0x05cd, 0x052e, 0x0492, 0x043e,
+ 0x047d, 0x0569, 0x05d0, 0x0548, 0x0547, 0x062b,
+ 0x06c0, 0x0711, 0x0840, 0x0a3e, 0x0c36, 0x0dbd,
+ 0x0e54, 0x0d7a, 0x0b8b, 0x09a1, 0x08a8, 0x086b,
+ 0x085a, 0x0927, 0x0b66, 0x0e15, 0x109f, 0x1310,
+ 0x141e, 0x12ab, 0x101b, 0x0e43, 0x0cb3, 0x0a38,
+ 0x07c7, 0x0710, 0x07c1, 0x08cf, 0x09dc, 0x0a70,
+ 0x0ae5, 0x0c46, 0x0e03, 0x0ee8, 0x0f08, 0x0eb0,
+ 0x0e06, 0x0d80, 0x0d47, 0x0d2b, 0x0cbd, 0x0afc,
+ 0x07ed, 0x0556, 0x0436, 0x03e8, 0x03d9, 0x03c2,
+ 0x03b4, 0x0492, 0x061d, 0x06a1, 0x063f, 0x0677,
+ 0x0736, 0x07f1, 0x08b5, 0x08c2, 0x0770, 0x057b,
+ 0x0403, 0x039d, 0x0422, 0x04e0, 0x0594, 0x0650,
+ 0x0652, 0x04b5, 0x024a, 0x00be, 0x004b, 0x009c,
+ 0x01d5, 0x02fc, 0x0328, 0x0359, 0x03f3, 0x0483,
+ 0x05e3, 0x0830, 0x0a1f, 0x0b5c, 0x0bd6, 0x0b31,
+ 0x099c, 0x076a, 0x053e, 0x03a2, 0x0247, 0x01c9,
+ 0x02bb, 0x03e3, 0x0509, 0x06cc, 0x0806, 0x0862,
+ 0x08d9, 0x08f4, 0x088f, 0x0881, 0x0839, 0x06e6,
+ 0x04d8, 0x025c, 0xffef, 0xfeb7, 0xff73, 0x0144,
+ 0x02a2, 0x03a8, 0x053c, 0x06d1, 0x074d, 0x05e5,
+ 0x0294, 0xff6a, 0xfe60, 0xfee1, 0xffd7, 0x00df,
+ 0x01b6, 0x0260, 0x0207, 0xffd4, 0xfdbb, 0xfdc2,
+ 0xfeb3, 0xfeff, 0xfe4c, 0xfc7f, 0xfac6, 0xfa75,
+ 0xfae8, 0xfb59, 0xfc11, 0xfd1f, 0xfe74, 0xff8e,
+ 0xff8b, 0xff52, 0x0045, 0x0186, 0x01fc, 0x01c4,
+ 0x00d9, 0xffe3, 0xffb2, 0xff72, 0xfed2, 0xff14,
+ 0x000b, 0x006d, 0x0051, 0x005c, 0x0080, 0x00bd,
+ 0x0149, 0x0216, 0x0304, 0x03d1, 0x03db, 0x02f5,
+ 0x0196, 0xff7c, 0xfc9f, 0xfabe, 0xfad0, 0xfbf3,
+ 0xfdf5, 0x0094, 0x023d, 0x02a5, 0x02d6, 0x02b5,
+ 0x01bf, 0x0048, 0xfee8, 0xfdf5, 0xfd11, 0xfbf0,
+ 0xfb7a, 0xfc54, 0xfde0, 0xff7a, 0x006e, 0x000d,
+ 0xff51, 0xffa4, 0x0023, 0xff94, 0xfeea, 0xfee9,
+ 0xfea5, 0xfe27, 0xfeb5, 0x0047, 0x01c2, 0x0276,
+ 0x0212, 0x00e5, 0xfff7, 0xffe1, 0x00a4, 0x0246,
+ 0x0444, 0x0587, 0x05c9, 0x05bf, 0x0595, 0x04db,
+ 0x03b4, 0x02a9, 0x023d, 0x02e8, 0x03c4, 0x031e,
+ 0x01e7, 0x021d, 0x02ae, 0x0291, 0x038e, 0x05c7,
+ 0x0762, 0x084a, 0x0854, 0x0697, 0x0497, 0x03c7,
+ 0x02e7, 0x0161, 0xffec, 0xfe9b, 0xfdb4, 0xfd53,
+ 0xfd0e, 0xfd7f, 0xfef4, 0x0031, 0x0076, 0xfff3,
+ 0xff83, 0x003d, 0x00e5, 0xff5b, 0xfd20, 0xfcef,
+ 0xfe2f, 0xfe83, 0xfcfd, 0xfae0, 0xfa2d, 0xfb22,
+ 0xfc5f, 0xfcd2, 0xfc26, 0xfaff, 0xfac9, 0xfbfb,
+ 0xfde8, 0x0014, 0x0207, 0x031c, 0x03cd, 0x0542,
+ 0x0703, 0x0793, 0x06be, 0x04d2, 0x021d, 0x0068,
+ 0x010f, 0x0299, 0x0362, 0x03ba, 0x0439, 0x04cd,
+ 0x0558, 0x0607, 0x069a, 0x0658, 0x05c2, 0x05be,
+ 0x056b, 0x047c, 0x0433, 0x03f8, 0x02b0, 0x01ac,
+ 0x019a, 0x0140, 0x0074, 0xfffa, 0xff9e, 0xfebc,
+ 0xfd33, 0xfbac, 0xfb1e, 0xfb78, 0xfb7b, 0xfa84,
+ 0xf979, 0xf962, 0xfa8b, 0xfc7c, 0xfd83, 0xfca3,
+ 0xfbab, 0xfc34, 0xfd66, 0xfe3e, 0xfe3e, 0xfd80,
+ 0xfd70, 0xfe40, 0xfe52, 0xfd6d, 0xfc92, 0xfc48,
+ 0xfc6d, 0xfc39, 0xfc43, 0xfe02, 0x0029, 0x0134,
+ 0x0212, 0x0269, 0x0172, 0x00c8, 0x011b, 0x0199,
+ 0x0276, 0x03a5, 0x04d0, 0x0643, 0x0790, 0x0856,
+ 0x0914, 0x09a4, 0x0993, 0x08e3, 0x07c8, 0x06f9,
+ 0x06fe, 0x0791, 0x0849, 0x08a5, 0x08e0, 0x09da,
+ 0x0aed, 0x0b31, 0x0b02, 0x0a5b, 0x0977, 0x08cf,
+ 0x0752, 0x052c, 0x0467, 0x04fc, 0x060a, 0x076a,
+ 0x0801, 0x07d7, 0x084c, 0x093c, 0x0a9b, 0x0cb3,
+ 0x0e5a, 0x0f3a, 0x0fac, 0x0f0b, 0x0dfe, 0x0db5,
+ 0x0d9e, 0x0d20, 0x0beb, 0x09cc, 0x07a7, 0x05f3,
+ 0x04f8, 0x05cd, 0x07be, 0x08ea, 0x0956, 0x097c,
+ 0x0952, 0x091e, 0x08d9, 0x0869, 0x07d3, 0x06d4,
+ 0x05f7, 0x05b5, 0x055f, 0x04fa, 0x050c, 0x053c,
+ 0x052f, 0x0463, 0x029b, 0x0149, 0x016a, 0x021a,
+ 0x02d8, 0x0395, 0x03a7, 0x0319, 0x02c3, 0x02c4,
+ 0x0281, 0x0154, 0xff07, 0xfc3e, 0xfa34, 0xf998,
+ 0xf9d0, 0xf981, 0xf818, 0xf685, 0xf5e4, 0xf603,
+ 0xf655, 0xf6da, 0xf70b, 0xf696, 0xf65d, 0xf63a,
+ 0xf559, 0xf4ef, 0xf5a2, 0xf5d6, 0xf584, 0xf618,
+ 0xf72c, 0xf7b5, 0xf78e, 0xf730, 0xf796, 0xf8d1,
+ 0xf9cd, 0xf9e2, 0xf8ba, 0xf6f9, 0xf68e, 0xf74e,
+ 0xf75f, 0xf756, 0xf849, 0xf94f, 0xfa21, 0xfb49,
+ 0xfc52, 0xfcd1, 0xfce2, 0xfcb1, 0xfcc8, 0xfd33,
+ 0xfd92, 0xfe8b, 0x002b, 0x00b0, 0xff9f, 0xfe93,
+ 0xfe2b, 0xfdf0, 0xfe4e, 0xffba, 0x019f, 0x0319,
+ 0x038e, 0x02f8, 0x0216, 0x01fa, 0x034b, 0x057b,
+ 0x0733, 0x07f5, 0x0807, 0x077c, 0x0699, 0x056c,
+ 0x036d, 0x0150, 0x00bf, 0x0178, 0x020e, 0x0243,
+ 0x023a, 0x01e5, 0x0230, 0x0376, 0x03fc, 0x030f,
+ 0x0289, 0x0353, 0x0484, 0x05bb, 0x06c3, 0x0716,
+ 0x0737, 0x07d4, 0x088c, 0x08dd, 0x08d7, 0x08ed,
+ 0x0922, 0x0898, 0x0788, 0x07ad, 0x08fd, 0x09b6,
+ 0x097f, 0x092e, 0x0928, 0x0952, 0x0964, 0x09a3,
+ 0x0aa5, 0x0bcd, 0x0c5b, 0x0d06, 0x0e47, 0x0f82,
+ 0x1035, 0x0ff5, 0x0ec6, 0x0db7, 0x0d5f, 0x0d30,
+ 0x0d00, 0x0d71, 0x0e88, 0x0f2e, 0x0eef, 0x0ebd,
+ 0x0eb2, 0x0df9, 0x0ce2, 0x0bbe, 0x0a2b, 0x08cb,
+ 0x0858, 0x0853, 0x084b, 0x0873, 0x0967, 0x0aee,
+ 0x0b3d, 0x0a15, 0x0945, 0x0927, 0x096a, 0x0a0e,
+ 0x09af, 0x080b, 0x0696, 0x04d0, 0x026a, 0x0188,
+ 0x02a2, 0x03f5, 0x04dc, 0x05bd, 0x0693, 0x06c7,
+ 0x05e3, 0x0487, 0x0424, 0x0542, 0x068d, 0x06e1,
+ 0x0714, 0x07c5, 0x085b, 0x08cf, 0x092d, 0x0900,
+ 0x083d, 0x06df, 0x053e, 0x0430, 0x03f9, 0x050f,
+ 0x0763, 0x0949, 0x0a1c, 0x0a19, 0x0905, 0x0846,
+ 0x0893, 0x080a, 0x06b4, 0x0615, 0x0618, 0x068f,
+ 0x06c1, 0x0614, 0x0623, 0x0705, 0x0718, 0x06ea,
+ 0x0692, 0x04e2, 0x02da, 0x01b9, 0x0147, 0x0146,
+ 0x0102, 0xffe8, 0xfed2, 0xfeb1, 0xff69, 0x0043,
+ 0x0119, 0x01d8, 0x011f, 0xff00, 0xfe2a, 0xff3a,
+ 0x0064, 0x0143, 0x0216, 0x02ac, 0x02e3, 0x025e,
+ 0x014b, 0x0045, 0xff56, 0xfed2, 0xfef5, 0xff2d,
+ 0xffb5, 0x0114, 0x0276, 0x0326, 0x038c, 0x0404,
+ 0x0442, 0x03ed, 0x032f, 0x0252, 0x0176, 0x00e9,
+ 0x00ca, 0x00e2, 0x0138, 0x01e3, 0x02b0, 0x02d3,
+ 0x01ea, 0x0186, 0x0298, 0x035c, 0x0321, 0x0336,
+ 0x03a8, 0x0412, 0x0483, 0x03fd, 0x023d, 0x00f0,
+ 0x00eb, 0x0135, 0x010a, 0x00b9, 0x0079, 0xffc7,
+ 0xfeb2, 0xfe28, 0xfe5a, 0xfe8b, 0xfe69, 0xfe41,
+ 0xfdd2, 0xfcba, 0xfc1e, 0xfd06, 0xfe34, 0xfed2,
+ 0xffa1, 0x0056, 0x0087, 0x0119, 0x0219, 0x02c6,
+ 0x0349, 0x03ca, 0x03bc, 0x02e5, 0x019d, 0xfffa,
+ 0xfe1d, 0xfd3a, 0xfe19, 0xff55, 0xffec, 0x00ff,
+ 0x02fe, 0x04bc, 0x05e5, 0x06df, 0x06f0, 0x058c,
+ 0x03fc, 0x0387, 0x03fa, 0x04d0, 0x054c, 0x04ae,
+ 0x0396, 0x02f8, 0x02b8, 0x02b2, 0x02fe, 0x038c,
+ 0x0400, 0x03e4, 0x03dd, 0x049d, 0x04f5, 0x047d,
+ 0x0446, 0x03be, 0x0246, 0x012e, 0x00ee, 0x0104,
+ 0x0188, 0x01b3, 0x0061, 0xfe9b, 0xfe24, 0xfe94,
+ 0xfe99, 0xfe64, 0xfe56, 0xfddb, 0xfd1d, 0xfcca,
+ 0xfc9a, 0xfc8e, 0xfd2f, 0xfe1f, 0xfedf, 0xffbc,
+ 0x0090, 0x0061, 0xff38, 0xfe39, 0xfd15, 0xfb03,
+ 0xf9bb, 0xfa72, 0xfb73, 0xfc71, 0xfebd, 0x0148,
+ 0x027f, 0x02b2, 0x0231, 0x0128, 0x0098, 0x010b,
+ 0x01be, 0x01bb, 0x00d6, 0xffba, 0xff96, 0x013a,
+ 0x037d, 0x045c, 0x03d1, 0x02ac, 0x0101, 0xffdb,
+ 0x0078, 0x0233, 0x03c5, 0x0436, 0x031f, 0x01cb,
+ 0x01bc, 0x02b0, 0x0362, 0x029c, 0x0071, 0xfe74,
+ 0xfd61, 0xfcd9, 0xfcd5, 0xfd25, 0xfd79, 0xfdb5,
+ 0xfd6c, 0xfce5, 0xfc67, 0xfaff, 0xf902, 0xf7e0,
+ 0xf756, 0xf730, 0xf7e5, 0xf886, 0xf889, 0xf8ce,
+ 0xf9a3, 0xfae3, 0xfbf7, 0xfbc4, 0xfaba, 0xfa22,
+ 0xf9d2, 0xf961, 0xf94f, 0xf9e8, 0xfae4, 0xfc25,
+ 0xfd8b, 0xfe23, 0xfd7f, 0xfcd5, 0xfcb5, 0xfc84,
+ 0xfc57, 0xfbf3, 0xfaa4, 0xf954, 0xf919, 0xf998,
+ 0xfab8, 0xfcd7, 0xffa5, 0x0227, 0x0322, 0x0244,
+ 0x00f7, 0x0099, 0x0104, 0x0198, 0x0262, 0x038c,
+ 0x04ac, 0x0541, 0x05af, 0x0724, 0x09e0, 0x0c6b,
+ 0x0d83, 0x0d20, 0x0b63, 0x0932, 0x082d, 0x081a,
+ 0x079a, 0x0742, 0x0803, 0x08a0, 0x07ef, 0x06c9,
+ 0x05ed, 0x053b, 0x0503, 0x056e, 0x05ed, 0x0653,
+ 0x06c5, 0x0745, 0x07e0, 0x08bb, 0x0a1d, 0x0b76,
+ 0x0b9b, 0x0b54, 0x0c02, 0x0d1a, 0x0e24, 0x0eaa,
+ 0x0de5, 0x0d67, 0x0e1a, 0x0e20, 0x0d7c, 0x0d1a,
+ 0x0c0b, 0x0a87, 0x0999, 0x097c, 0x0a41, 0x0ab7,
+ 0x0a11, 0x0949, 0x083e, 0x06e0, 0x0631, 0x059e,
+ 0x0511, 0x05c2, 0x0713, 0x07f6, 0x086e, 0x08b6,
+ 0x0969, 0x0a30, 0x0a32, 0x09bd, 0x08a4, 0x06bb,
+ 0x0518, 0x03d2, 0x02c2, 0x0298, 0x02de, 0x029a,
+ 0x01c8, 0x00fa, 0x0078, 0xffa7, 0xfe9e, 0xfe0d,
+ 0xfce1, 0xfab0, 0xf8a3, 0xf67e, 0xf4ae, 0xf47f,
+ 0xf4fa, 0xf58e, 0xf6b4, 0xf732, 0xf66e, 0xf557,
+ 0xf490, 0xf49a, 0xf4e7, 0xf468, 0xf37e, 0xf296,
+ 0xf261, 0xf3d0, 0xf54a, 0xf4f3, 0xf379, 0xf16d,
+ 0xef4f, 0xeeb0, 0xefad, 0xf126, 0xf2fd, 0xf521,
+ 0xf6ab, 0xf75c, 0xf7e8, 0xf860, 0xf84c, 0xf816,
+ 0xf875, 0xf97a, 0xfac7, 0xfb80, 0xfb4f, 0xfb07,
+ 0xfb0b, 0xfb1c, 0xfb88, 0xfce1, 0xff33, 0x017c,
+ 0x022e, 0x0137, 0x001c, 0xffa0, 0xfeeb, 0xfd85,
+ 0xfc95, 0xfcb7, 0xfd19, 0xfd8b, 0xfdf1, 0xfd6f,
+ 0xfc86, 0xfc63, 0xfd26, 0xfee4, 0x0125, 0x0271,
+ 0x02ac, 0x02ca, 0x029b, 0x0192, 0xffe2, 0xfe0c,
+ 0xfcbd, 0xfc8c, 0xfd75, 0xff04, 0x0099, 0x0164,
+ 0x0161, 0x01a2, 0x0247, 0x028a, 0x029a, 0x02cc,
+ 0x032a, 0x0441, 0x059a, 0x05f0, 0x05c1, 0x062d,
+ 0x06ec, 0x0791, 0x0856, 0x0944, 0x0a07, 0x0a9e,
+ 0x0bb7, 0x0d88, 0x0f01, 0x0f62, 0x0f44, 0x0ef0,
+ 0x0db2, 0x0c09, 0x0bc8, 0x0d19, 0x0e78, 0x0f2f,
+ 0x0f5d, 0x0f6b, 0x0ff9, 0x10bd, 0x10d8, 0x1073,
+ 0x1039, 0x0fe1, 0x0efe, 0x0e58, 0x0e79, 0x0e79,
+ 0x0e1e, 0x0dfd, 0x0d6a, 0x0c40, 0x0ba0, 0x0b43,
+ 0x0aa8, 0x0add, 0x0bee, 0x0c46, 0x0b60, 0x0a19,
+ 0x08f0, 0x07ff, 0x07d1, 0x0852, 0x08e8, 0x0a04,
+ 0x0b82, 0x0c27, 0x0bed, 0x0add, 0x08e9, 0x07a7,
+ 0x0774, 0x0748, 0x079a, 0x0802, 0x079a, 0x07cf,
+ 0x08b7, 0x08e1, 0x08f6, 0x08f4, 0x07dd, 0x0740,
+ 0x0827, 0x08a7, 0x07f7, 0x07b4, 0x081e, 0x07c0,
+ 0x06ee, 0x06f5, 0x0714, 0x06d1, 0x0737, 0x07ab,
+ 0x0743, 0x0716, 0x076e, 0x0789, 0x07cd, 0x0865,
+ 0x085d, 0x079c, 0x06e5, 0x05d1, 0x0397, 0x015c,
+ 0x0056, 0xffd7, 0xffbd, 0x00af, 0x01d7, 0x0231,
+ 0x01f5, 0x01a1, 0x01c7, 0x0267, 0x02d3, 0x0315,
+ 0x035f, 0x036f, 0x0369, 0x0351, 0x02b4, 0x0189,
+ 0xffe1, 0xfe2d, 0xfda4, 0xfe7e, 0xffb9, 0x00c8,
+ 0x0175, 0x018f, 0x017f, 0x0181, 0x0181, 0x01e3,
+ 0x02e9, 0x045b, 0x05a2, 0x05d3, 0x0522, 0x048c,
+ 0x03b5, 0x02a3, 0x025d, 0x0233, 0x01bd, 0x024b,
+ 0x032f, 0x0312, 0x0281, 0x015d, 0xffcf, 0xff9e,
+ 0x0085, 0x0105, 0x0188, 0x0264, 0x02e0, 0x02ce,
+ 0x0280, 0x0221, 0x013b, 0xffc6, 0xfec6, 0xfdbc,
+ 0xfb72, 0xf92d, 0xf848, 0xf889, 0xfa23, 0xfc6c,
+ 0xfd91, 0xfde1, 0xfeb6, 0xffcc, 0x00ad, 0x015a,
+ 0x014a, 0x0089, 0x004e, 0x0147, 0x0276, 0x0252,
+ 0x00fe, 0x0024, 0x0004, 0xffae, 0xffbb, 0x009f,
+ 0x018f, 0x02f7, 0x048e, 0x0466, 0x034c, 0x02f1,
+ 0x029c, 0x027b, 0x0324, 0x0367, 0x0389, 0x048a,
+ 0x0566, 0x054e, 0x0467, 0x0337, 0x02bd, 0x025c,
+ 0x00d9, 0xff4b, 0xff26, 0x0032, 0x0193, 0x02b9,
+ 0x039d, 0x0440, 0x04cd, 0x05b6, 0x0657, 0x05c1,
+ 0x045b, 0x028d, 0x0099, 0xff7f, 0xffc9, 0x00d8,
+ 0x0170, 0x010a, 0x00d0, 0x0154, 0x0190, 0x0185,
+ 0x0218, 0x02f1, 0x0319, 0x029f, 0x0206, 0x00ea,
+ 0xff94, 0xff9c, 0x0096, 0x00e2, 0x00e1, 0x00eb,
+ 0x00d7, 0x0168, 0x0226, 0x025a, 0x02d0, 0x0308,
+ 0x01f8, 0x00ab, 0x005e, 0x0133, 0x023f, 0x01cd,
+ 0xffcb, 0xfdd1, 0xfcac, 0xfc3f, 0xfc62, 0xfd0e,
+ 0xfdf0, 0xfe73, 0xfec9, 0xff5d, 0xffde, 0x0059,
+ 0x010b, 0x019c, 0x020d, 0x0273, 0x0280, 0x0239,
+ 0x01c2, 0x013f, 0x0101, 0x00ea, 0x00a3, 0x002a,
+ 0xffd8, 0x0026, 0x0123, 0x023a, 0x02b7, 0x025d,
+ 0x01d3, 0x01b6, 0x01bb, 0x01a8, 0x019e, 0x0143,
+ 0x008b, 0x0020, 0xffe0, 0xff28, 0xff06, 0x0070,
+ 0x01d0, 0x024a, 0x0303, 0x0330, 0x01bf, 0x0035,
+ 0xff42, 0xfe30, 0xfd5a, 0xfcfe, 0xfcb2, 0xfc00,
+ 0xfad9, 0xfa76, 0xfb52, 0xfc4b, 0xfd3d, 0xfdfd,
+ 0xfdd1, 0xfdb6, 0xfe1e, 0xfdb7, 0xfc5a, 0xfac2,
+ 0xf988, 0xf95c, 0xf9fd, 0xfae2, 0xfc17, 0xfd38,
+ 0xfdd7, 0xfdd1, 0xfd20, 0xfc49, 0xfbbd, 0xfb64,
+ 0xfada, 0xf98f, 0xf80c, 0xf764, 0xf75d, 0xf7ef,
+ 0xf9ac, 0xfbac, 0xfd13, 0xfe84, 0xffdb, 0x0004,
+ 0xff37, 0xfe94, 0xfe5b, 0xfe08, 0xfdc5, 0xfe3d,
+ 0xffb4, 0x0203, 0x048d, 0x064f, 0x06e5, 0x0701,
+ 0x077a, 0x0821, 0x0878, 0x08d3, 0x092e, 0x08b9,
+ 0x07b4, 0x0709, 0x0675, 0x05a3, 0x0547, 0x058f,
+ 0x05cc, 0x0617, 0x06d4, 0x074f, 0x071e, 0x06f5,
+ 0x0732, 0x07dc, 0x08ab, 0x08ec, 0x08fb, 0x0950,
+ 0x0936, 0x08f3, 0x0964, 0x0a44, 0x0be5, 0x0e40,
+ 0x0f76, 0x0f2e, 0x0ede, 0x0efa, 0x0f77, 0x0ffc,
+ 0x1001, 0x1001, 0x0fa2, 0x0db8, 0x0b53, 0x0a25,
+ 0x0a19, 0x0a8d, 0x0ae0, 0x0af5, 0x0b52, 0x0ba5,
+ 0x0be2, 0x0c80, 0x0c1e, 0x0a06, 0x080e, 0x06ba,
+ 0x05d2, 0x0684, 0x07e3, 0x0776, 0x0598, 0x0405,
+ 0x0336, 0x0313, 0x035c, 0x0392, 0x0310, 0x01ba,
+ 0x0063, 0xff68, 0xfea8, 0xfe53, 0xfdc3, 0xfc38,
+ 0xfa5f, 0xf8c3, 0xf79b, 0xf77d, 0xf803, 0xf835,
+ 0xf7c8, 0xf6cd, 0xf5bc, 0xf4b5, 0xf3b9, 0xf417,
+ 0xf5dc, 0xf6d8, 0xf6ad, 0xf662, 0xf5cf, 0xf55f,
+ 0xf5c8, 0xf64a, 0xf67e, 0xf6b3, 0xf680, 0xf601,
+ 0xf667, 0xf7cc, 0xf8de, 0xf913, 0xf902, 0xf8e7,
+ 0xf8e3, 0xf990, 0xfaac, 0xfb31, 0xfada, 0xfa28,
+ 0xf9ca, 0xf9f8, 0xfa62, 0xfafe, 0xfb62, 0xfae5,
+ 0xfaa2, 0xfb96, 0xfc68, 0xfc82, 0xfcdd, 0xfd48,
+ 0xfd69, 0xfdc4, 0xfe22, 0xfe04, 0xfd8c, 0xfce5,
+ 0xfc68, 0xfc85, 0xfcff, 0xfd78, 0xfe3f, 0xff87,
+ 0x0046, 0xff99, 0xfea1, 0xfe92, 0xfeac, 0xfe2b,
+ 0xfd6f, 0xfcd8, 0xfcde, 0xfdf2, 0xff9d, 0x010f,
+ 0x021f, 0x0312, 0x0421, 0x055e, 0x065a, 0x0683,
+ 0x067b, 0x06f9, 0x06e6, 0x05aa, 0x04b6, 0x049f,
+ 0x04af, 0x0523, 0x0689, 0x0883, 0x0a2b, 0x0aaf,
+ 0x0a2c, 0x0991, 0x0942, 0x0912, 0x08d9, 0x0826,
+ 0x06e0, 0x065f, 0x0791, 0x0941, 0x0a53, 0x0b2c,
+ 0x0c28, 0x0d6d, 0x0ed7, 0x0f8c, 0x0f81, 0x0f29,
+ 0x0e40, 0x0d3f, 0x0cc1, 0x0c25, 0x0b4d, 0x0aba,
+ 0x0a4a, 0x09da, 0x096c, 0x092f, 0x0997, 0x0a84,
+ 0x0b87, 0x0c5a, 0x0c9a, 0x0c81, 0x0ca1, 0x0cf5,
+ 0x0d28, 0x0cce, 0x0bde, 0x0adf, 0x0a2b, 0x09de,
+ 0x09ac, 0x096c, 0x09c1, 0x0a46, 0x0a09, 0x09d4,
+ 0x0a2d, 0x0a84, 0x0b07, 0x0ba1, 0x0b96, 0x0aa5,
+ 0x0938, 0x0878, 0x0872, 0x07e4, 0x071b, 0x070d,
+ 0x079c, 0x085e, 0x08a9, 0x0953, 0x0bd7, 0x0e2e,
+ 0x0e1f, 0x0cde, 0x0b73, 0x09ff, 0x08e9, 0x07eb,
+ 0x070f, 0x06ce, 0x0773, 0x08d1, 0x0978, 0x0927,
+ 0x096c, 0x09b4, 0x08d3, 0x0774, 0x0606, 0x0559,
+ 0x0640, 0x0760, 0x0782, 0x06c3, 0x05b6, 0x05a7,
+ 0x06c3, 0x07c3, 0x0844, 0x0861, 0x07cb, 0x06cd,
+ 0x0639, 0x060c, 0x0562, 0x0438, 0x030b, 0x0201,
+ 0x0216, 0x032b, 0x0389, 0x03c8, 0x0493, 0x04aa,
+ 0x04b0, 0x0526, 0x04eb, 0x04ce, 0x0536, 0x052a,
+ 0x0540, 0x0575, 0x04df, 0x03b9, 0x02a6, 0x0287,
+ 0x02dc, 0x0251, 0x0273, 0x03d7, 0x0415, 0x034b,
+ 0x0280, 0x014e, 0x0096, 0x0048, 0xff08, 0xfd6d,
+ 0xfc5b, 0xfc07, 0xfc8b, 0xfd4f, 0xfe3a, 0xff3c,
+ 0xff82, 0xff3a, 0xfe6e, 0xfc72, 0xfa7b, 0xfa2e,
+ 0xfb3c, 0xfc8f, 0xfd81, 0xfdd4, 0xfd4b, 0xfc14,
+ 0xfb87, 0xfc49, 0xfd25, 0xfd29, 0xfcb9, 0xfc52,
+ 0xfc25, 0xfd1d, 0xffb0, 0x023c, 0x03e7, 0x0546,
+ 0x0552, 0x03b8, 0x024f, 0x0136, 0xff96, 0xfe06,
+ 0xfd22, 0xfd5e, 0xfec1, 0x0019, 0x008b, 0x006d,
+ 0x00b3, 0x018a, 0x01f4, 0x0252, 0x036c, 0x0406,
+ 0x03ea, 0x0446, 0x0487, 0x03ce, 0x02d6, 0x02d2,
+ 0x0395, 0x039b, 0x032a, 0x02fd, 0x0198, 0xff8c,
+ 0xfec4, 0xfddb, 0xfc70, 0xfc60, 0xfd3e, 0xfe1b,
+ 0xfeab, 0xfe40, 0xfdac, 0xfdd5, 0xfe47, 0xfeca,
+ 0xff06, 0xff62, 0x00c2, 0x01fc, 0x0281, 0x0354,
+ 0x0370, 0x0253, 0x016a, 0x0096, 0x0020, 0x0155,
+ 0x028f, 0x0235, 0x0218, 0x02ee, 0x02f9, 0x01f8,
+ 0x0102, 0x0025, 0xff22, 0xfe6e, 0xfe20, 0xfdc9,
+ 0xfdd1, 0xff25, 0x0170, 0x035c, 0x0436, 0x0413,
+ 0x0338, 0x024f, 0x01ed, 0x01bd, 0x0148, 0x00e2,
+ 0x00eb, 0x00f2, 0x006f, 0xffb5, 0xff62, 0xff43,
+ 0xfe75, 0xfcf5, 0xfbf7, 0xfbf1, 0xfc43, 0xfce6,
+ 0xfdeb, 0xfeff, 0x008c, 0x0325, 0x0682, 0x096e,
+ 0x0a0f, 0x086f, 0x066d, 0x0416, 0x011a, 0xfed2,
+ 0xfda6, 0xfd5c, 0xfdee, 0xfe1d, 0xfdd0, 0xfe76,
+ 0xff8a, 0x0026, 0x00dd, 0x0162, 0x00ec, 0xffff,
+ 0xff47, 0xfe87, 0xfd60, 0xfc35, 0xfb6c, 0xfb02,
+ 0xfb18, 0xfb64, 0xfba6, 0xfc81, 0xfdb6, 0xfe1f,
+ 0xfdd8, 0xfd6a, 0xfcc4, 0xfc10, 0xfb90, 0xfb2b,
+ 0xfafa, 0xfb82, 0xfc2c, 0xfb6d, 0xfa34, 0xfa79,
+ 0xfb3c, 0xfb69, 0xfbd8, 0xfc49, 0xfc25, 0xfc03,
+ 0xfc5d, 0xfd05, 0xfcf0, 0xfbee, 0xfbb3, 0xfc7f,
+ 0xfd2b, 0xfdc4, 0xfdfc, 0xfd51, 0xfcb4, 0xfcd3,
+ 0xfdbf, 0xff58, 0x0066, 0x0017, 0xff54, 0xff4d,
+ 0xffd2, 0xffcb, 0xfefe, 0xfde6, 0xfccd, 0xfc29,
+ 0xfbee, 0xfbae, 0xfbe9, 0xfca0, 0xfd04, 0xfd5c,
+ 0xfe67, 0x0049, 0x0248, 0x034e, 0x03b6, 0x0425,
+ 0x0427, 0x0417, 0x0448, 0x03d5, 0x02ec, 0x0292,
+ 0x02f4, 0x03e0, 0x04ff, 0x05f1, 0x0676, 0x0659,
+ 0x05ec, 0x0563, 0x0484, 0x0395, 0x0307, 0x031e,
+ 0x041b, 0x05d0, 0x077c, 0x0828, 0x0826, 0x08d0,
+ 0x0a00, 0x0b6d, 0x0d85, 0x0e8e, 0x0d8c, 0x0c88,
+ 0x0c26, 0x0c15, 0x0cb0, 0x0cc6, 0x0bcf, 0x0b56,
+ 0x0bee, 0x0d40, 0x0ef6, 0x10a5, 0x11c5, 0x1127,
+ 0x0f0d, 0x0d52, 0x0c0f, 0x0afe, 0x0aa8, 0x0aad,
+ 0x0ae0, 0x0ae0, 0x09c2, 0x08af, 0x08c2, 0x0922,
+ 0x0956, 0x091d, 0x08a7, 0x0882, 0x0775, 0x050b,
+ 0x02e9, 0x014c, 0xff9d, 0xfe0e, 0xfcf1, 0xfcdd,
+ 0xfd9c, 0xfe26, 0xfe62, 0xfe63, 0xfe24, 0xfded,
+ 0xfdc1, 0xfde2, 0xfe0e, 0xfd57, 0xfc34, 0xfb07,
+ 0xf93f, 0xf79f, 0xf69c, 0xf5c4, 0xf5a5, 0xf5a2,
+ 0xf473, 0xf3b5, 0xf4c2, 0xf5c3, 0xf58e, 0xf58e,
+ 0xf65c, 0xf6be, 0xf66a, 0xf629, 0xf5a1, 0xf4bd,
+ 0xf4a1, 0xf4e2, 0xf460, 0xf457, 0xf5b9, 0xf6f3,
+ 0xf7a3, 0xf904, 0xfa3b, 0xfa32, 0xfa28, 0xfa5c,
+ 0xf982, 0xf7fd, 0xf6db, 0xf631, 0xf601, 0xf657,
+ 0xf701, 0xf7be, 0xf8a3, 0xfa08, 0xfb4a, 0xfbae,
+ 0xfba4, 0xfafc, 0xf98a, 0xf8d0, 0xf97a, 0xfa88,
+ 0xfb66, 0xfc4f, 0xfda5, 0xfef3, 0xff90, 0x0037,
+ 0x0131, 0x0189, 0x015d, 0x015f, 0x0173, 0x00db,
+ 0xfeff, 0xfcec, 0xfc14, 0xfc59, 0xfdb9, 0x000f,
+ 0x01ee, 0x02bf, 0x030f, 0x0378, 0x0483, 0x05a6,
+ 0x0635, 0x0690, 0x06af, 0x062d, 0x04f3, 0x02f9,
+ 0x0130, 0x00a9, 0x0150, 0x030d, 0x0556, 0x06e6,
+ 0x0783, 0x078d, 0x0700, 0x06c8, 0x07fd, 0x096a,
+ 0x0958, 0x08cd, 0x08f6, 0x08d3, 0x0896, 0x0920,
+ 0x0905, 0x07d8, 0x0722, 0x0707, 0x0785, 0x0949,
+ 0x0b99, 0x0d2a, 0x0dbe, 0x0e13, 0x0ea0, 0x0ee4,
+ 0x0f3d, 0x1019, 0x0fec, 0x0ea7, 0x0e09, 0x0d6d,
+ 0x0c47, 0x0c71, 0x0e1c, 0x0f8c, 0x1078, 0x116e,
+ 0x1239, 0x126f, 0x11e6, 0x107f, 0x0ed8, 0x0dfe,
+ 0x0d95, 0x0c9d, 0x0bb4, 0x0bc3, 0x0c18, 0x0bb8,
+ 0x0b1e, 0x0b1f, 0x0adb, 0x099b, 0x08ca, 0x08be,
+ 0x07f5, 0x06c8, 0x0688, 0x06ba, 0x06dc, 0x0792,
+ 0x08c3, 0x098c, 0x09ff, 0x0a66, 0x0a36, 0x099f,
+ 0x0975, 0x091d, 0x07da, 0x066e, 0x05aa, 0x0543,
+ 0x0472, 0x0388, 0x0390, 0x042f, 0x04c5, 0x0568,
+ 0x05e1, 0x06ea, 0x08ce, 0x097d, 0x08ff, 0x0914,
+ 0x08c0, 0x07d6, 0x0831, 0x0910, 0x08c5, 0x07c3,
+ 0x0737, 0x07bb, 0x08b2, 0x0914, 0x08c4, 0x07ff,
+ 0x0741, 0x0717, 0x071b, 0x06b4, 0x05e9, 0x04f9,
+ 0x03f4, 0x02e2, 0x0270, 0x02d6, 0x032f, 0x03d1,
+ 0x0526, 0x0572, 0x03ea, 0x01e9, 0x00c6, 0x0134,
+ 0x0275, 0x0396, 0x0557, 0x07b9, 0x092d, 0x091f,
+ 0x07e3, 0x05f6, 0x03ee, 0x020e, 0x007b, 0xff35,
+ 0xfe78, 0xfef0, 0xffb1, 0xfefe, 0xfd6f, 0xfce3,
+ 0xfdad, 0xfea2, 0xff0f, 0xff98, 0x00a1, 0x015c,
+ 0x0122, 0x0040, 0xffcf, 0x005c, 0x00c9, 0x004d,
+ 0xff70, 0xfe7a, 0xfdfd, 0xfe66, 0xfe82, 0xfdde,
+ 0xfddc, 0xfe94, 0xfec8, 0xfe92, 0xfea2, 0xfe6c,
+ 0xfdb7, 0xfd82, 0xfddc, 0xfdfc, 0xfe57, 0xff85,
+ 0x00c4, 0x0143, 0x0143, 0x0154, 0x0169, 0x016d,
+ 0x0192, 0x01d0, 0x027a, 0x0399, 0x03a5, 0x023f,
+ 0x014c, 0x0147, 0x00e5, 0xffe8, 0xff25, 0xfefd,
+ 0xff28, 0xffec, 0x016e, 0x021a, 0x0185, 0x016b,
+ 0x01c5, 0x01f9, 0x02d3, 0x0377, 0x0340, 0x03ef,
+ 0x0506, 0x0456, 0x02d9, 0x0200, 0x00bc, 0xfeef,
+ 0xfe63, 0xff56, 0x0065, 0x0185, 0x0338, 0x047c,
+ 0x0460, 0x035f, 0x0200, 0x0083, 0xffa8, 0xffbd,
+ 0xffe3, 0xffb1, 0x001c, 0x0162, 0x0258, 0x0294,
+ 0x02a5, 0x02b2, 0x02a9, 0x02b4, 0x02e1, 0x0307,
+ 0x02c2, 0x017a, 0xff6f, 0xfe5a, 0xff33, 0x00a0,
+ 0x017f, 0x01a4, 0x0042, 0xfd9c, 0xfbd1, 0xfbd6,
+ 0xfca3, 0xfd33, 0xfdb4, 0xfe8a, 0xfee3, 0xfe79,
+ 0xfeb7, 0xff9f, 0xffb8, 0xff1a, 0xfee4, 0xff91,
+ 0x00e0, 0x01f6, 0x023e, 0x0225, 0x02ac, 0x03f2,
+ 0x0454, 0x0312, 0x01a7, 0x00bc, 0x0024, 0x0092,
+ 0x01b6, 0x0252, 0x0287, 0x0322, 0x0438, 0x0501,
+ 0x04be, 0x03f0, 0x0308, 0x01a7, 0x0087, 0x005d,
+ 0x0000, 0xff36, 0xff33, 0xff5b, 0xfe8e, 0xfdd4,
+ 0xfe32, 0xff08, 0xff41, 0xfe62, 0xfd8e, 0xfdfc,
+ 0xfe6d, 0xfdf7, 0xfd75, 0xfc6d, 0xfa84, 0xf986,
+ 0xfa23, 0xfb4e, 0xfc6e, 0xfd36, 0xfd3b, 0xfbed,
+ 0xf9bb, 0xf8a4, 0xf927, 0xf9ee, 0xfacf, 0xfbc5,
+ 0xfbcf, 0xfae3, 0xf9f5, 0xf9dc, 0xfa57, 0xfa67,
+ 0xfa5f, 0xfaec, 0xfb86, 0xfc08, 0xfc9b, 0xfd10,
+ 0xfda1, 0xfdad, 0xfc85, 0xfb78, 0xfaf7, 0xf9f0,
+ 0xf902, 0xf96b, 0xfb1e, 0xfd77, 0xff02, 0xfea7,
+ 0xfd86, 0xfcf7, 0xfcc2, 0xfcde, 0xfd6a, 0xfd42,
+ 0xfc6c, 0xfce6, 0xfe58, 0xfeac, 0xfea2, 0xff3b,
+ 0xff2a, 0xfec0, 0xff6e, 0x005d, 0x00cd, 0x0140,
+ 0x017d, 0x01ba, 0x02e5, 0x047d, 0x0530, 0x0497,
+ 0x03ae, 0x03df, 0x0493, 0x0436, 0x037b, 0x035f,
+ 0x0340, 0x031b, 0x02c1, 0x016f, 0x00d0, 0x0250,
+ 0x038a, 0x02ea, 0x026f, 0x03ab, 0x05e9, 0x07db,
+ 0x08ee, 0x090f, 0x0843, 0x0778, 0x0796, 0x07dd,
+ 0x07ec, 0x087c, 0x0917, 0x0987, 0x0b13, 0x0d40,
+ 0x0e46, 0x0e63, 0x0e3c, 0x0d30, 0x0b84, 0x0a50,
+ 0x0989, 0x0946, 0x0a93, 0x0d0a, 0x0ec8, 0x0f66,
+ 0x0fd9, 0x0fee, 0x0efd, 0x0dc4, 0x0d60, 0x0dd2,
+ 0x0e4b, 0x0dea, 0x0cb8, 0x0b9b, 0x0aee, 0x0a56,
+ 0x0957, 0x079a, 0x05f2, 0x05a9, 0x0694, 0x07e1,
+ 0x08af, 0x07a0, 0x04af, 0x017c, 0xff4f, 0xfec5,
+ 0xffa2, 0x00e2, 0x01b2, 0x0166, 0x0017, 0xfeb1,
+ 0xfd49, 0xfc09, 0xfbd4, 0xfc44, 0xfc35, 0xfb6d,
+ 0xfa68, 0xf9b4, 0xf87f, 0xf615, 0xf449, 0xf420,
+ 0xf46b, 0xf4ee, 0xf566, 0xf4d1, 0xf3dd, 0xf393,
+ 0xf407, 0xf555, 0xf6e3, 0xf7c6, 0xf814, 0xf831,
+ 0xf871, 0xf8d7, 0xf8a7, 0xf7aa, 0xf6c0, 0xf677,
+ 0xf635, 0xf566, 0xf4d6, 0xf542, 0xf62d, 0xf72d,
+ 0xf7a5, 0xf6c6, 0xf585, 0xf536, 0xf58e, 0xf65b,
+ 0xf7ad, 0xf882, 0xf82c, 0xf76f, 0xf72b, 0xf767,
+ 0xf807, 0xf8dd, 0xf8d6, 0xf783, 0xf659, 0xf5ee,
+ 0xf52e, 0xf442, 0xf3ec, 0xf3d4, 0xf3e4, 0xf44d,
+ 0xf497, 0xf539, 0xf71b, 0xf907, 0xf976, 0xf966,
+ 0xfa1f, 0xfb26, 0xfbda, 0xfc4f, 0xfcc6, 0xfd46,
+ 0xfd71, 0xfd5d, 0xfd72, 0xfd64, 0xfd52, 0xfdef,
+ 0xff26, 0x00b3, 0x01f2, 0x01a2, 0x0095, 0x00de,
+ 0x027b, 0x0487, 0x063c, 0x0699, 0x0641, 0x06dc,
+ 0x0893, 0x0a8c, 0x0bb7, 0x0b51, 0x09ab, 0x076e,
+ 0x05ce, 0x067e, 0x0935, 0x0c1c, 0x0e48, 0x0f69,
+ 0x100a, 0x11b5, 0x147a, 0x172f, 0x1986, 0x1b6d,
+ 0x1ca2, 0x1d31, 0x1d04, 0x1c3d, 0x1b27, 0x1999,
+ 0x179a, 0x15a8, 0x141d, 0x12e4, 0x1190, 0x1046,
+ 0x0f9d, 0x0f29, 0x0e94, 0x0e80, 0x0e8b, 0x0ddc,
+ 0x0cea, 0x0bfa, 0x0aba, 0x09ad, 0x0941, 0x08fc,
+ 0x08a7, 0x0871, 0x07d2, 0x05c2, 0x027a, 0xff8d,
+ 0xfdc5, 0xfcf3, 0xfd37, 0xfe1a, 0xfe2d, 0xfdb3,
+ 0xfe8c, 0x0087, 0x01d7, 0x028c, 0x034d, 0x0388,
+ 0x0388, 0x0402, 0x0446, 0x0457, 0x0501, 0x05c8,
+ 0x0685, 0x07de, 0x0940, 0x0a27, 0x0b4a, 0x0c55,
+ 0x0c0c, 0x0aab, 0x0959, 0x08a5, 0x08d5, 0x09a1,
+ 0x0a04, 0x0a27, 0x0ad7, 0x0b23, 0x0a1c, 0x08f0,
+ 0x08d2, 0x0987, 0x0a3b, 0x0a9a, 0x0afd, 0x0b12,
+ 0x0a04, 0x0868, 0x0781, 0x07a0, 0x083d, 0x0851,
+ 0x0790, 0x06ad, 0x05e2, 0x050e, 0x040a, 0x02a6,
+ 0x0206, 0x0312, 0x0465, 0x04e5, 0x04d5, 0x0442,
+ 0x03d8, 0x0464, 0x04dc, 0x0409, 0x02a4, 0x0233,
+ 0x02c9, 0x0305, 0x02eb, 0x03cf, 0x050b, 0x04ff,
+ 0x03f2, 0x02c5, 0x01ac, 0x009c, 0xff34, 0xfd90,
+ 0xfcdc, 0xfdb8, 0xff23, 0xffce, 0x0006, 0x008e,
+ 0x0081, 0xffaf, 0xffca, 0x0070, 0xffff, 0xff3d,
+ 0xfeb7, 0xfd81, 0xfc8c, 0xfd19, 0xfe21, 0xfedd,
+ 0xff65, 0xff06, 0xfdfb, 0xfdff, 0xff81, 0x0133,
+ 0x0206, 0x0205, 0x01c1, 0x00e5, 0xff24, 0xfe50,
+ 0xff5d, 0x005b, 0x00cf, 0x017d, 0x015c, 0x00c4,
+ 0x0140, 0x0206, 0x02a5, 0x03af, 0x0424, 0x039f,
+ 0x02d8, 0x01bb, 0x00bf, 0x00a6, 0x00f6, 0x00be,
+ 0xffd4, 0xff61, 0x000d, 0x00c0, 0x0159, 0x0247,
+ 0x02cc, 0x032f, 0x03ed, 0x0465, 0x04ef, 0x059e,
+ 0x05b3, 0x05d0, 0x0635, 0x069c, 0x081b, 0x0a56,
+ 0x0b5e, 0x0b03, 0x09fb, 0x0921, 0x09e6, 0x0c54,
+ 0x0eaa, 0x0f33, 0x0d6d, 0x0a89, 0x081d, 0x068d,
+ 0x0604, 0x06df, 0x082b, 0x0877, 0x07d6, 0x06d4,
+ 0x05b7, 0x057d, 0x0680, 0x0794, 0x07d9, 0x071e,
+ 0x0621, 0x05bb, 0x04ea, 0x0398, 0x0373, 0x0397,
+ 0x0332, 0x03b2, 0x0416, 0x0346, 0x02d6, 0x0263,
+ 0x012e, 0x00c5, 0x0131, 0x0147, 0x00a6, 0xff68,
+ 0xfef0, 0xfefe, 0xfcd9, 0xf954, 0xf7a8, 0xf7a2,
+ 0xf7af, 0xf7b8, 0xf7c4, 0xf6e8, 0xf3fb, 0xee86,
+ 0xe6e8, 0xdf31, 0xdb24, 0xdba1, 0xde01, 0xe1a5,
+ 0xe7d9, 0xeffe, 0xf7db, 0xfd11, 0xfed0, 0xfe2f,
+ 0xfc30, 0xfa51, 0xf99f, 0xf834, 0xf526, 0xf1cc,
+ 0xedc9, 0xea18, 0xe9c8, 0xeba5, 0xed0d, 0xee97,
+ 0xf0a1, 0xf340, 0xf736, 0xfb50, 0xfe32, 0xff8b,
+ 0xfed1, 0xfd46, 0xfca6, 0xfcba, 0xfe35, 0x0188,
+ 0x0407, 0x03c2, 0x01ff, 0x00fb, 0x015b, 0x01b4,
+ 0x0243, 0x04e5, 0x086b, 0x0b14, 0x0d25, 0x0d6a,
+ 0x0b42, 0x09b2, 0x0a63, 0x0c44, 0x0fc8, 0x1581,
+ 0x1b2f, 0x1ea3, 0x1f89, 0x1d40, 0x17f5, 0x1251,
+ 0x0de7, 0x0a81, 0x0949, 0x0a68, 0x0ae0, 0x092d,
+ 0x06fc, 0x04fe, 0x0216, 0xfeee, 0xfdd2, 0xff26,
+ 0x0162, 0x0348, 0x04cc, 0x069e, 0x07fc, 0x0811,
+ 0x0877, 0x0999, 0x0ac6, 0x0cf0, 0x0e80, 0x0e37,
+ 0x0f03, 0x0f8e, 0x0d7a, 0x0c9c, 0x0c97, 0x0a18,
+ 0x084d, 0x0857, 0x07e8, 0x07da, 0x07e2, 0x07f2,
+ 0x08ad, 0x0678, 0x020b, 0x0081, 0x007a, 0x00d2,
+ 0x0327, 0x0430, 0x02fd, 0x02ce, 0x025b, 0x00b3,
+ 0x0057, 0x00a1, 0xffbe, 0xfea6, 0xfebc, 0xff8c,
+ 0xff9d, 0xfefb, 0xff04, 0xffe4, 0x0153, 0x0340,
+ 0x051f, 0x06f1, 0x08fa, 0x0b17, 0x0ca8, 0x0c5e,
+ 0x0ab9, 0x0997, 0x0880, 0x07c4, 0x09a5, 0x0c77,
+ 0x0d31, 0x0cbb, 0x0bd9, 0x09d2, 0x0717, 0x040b,
+ 0x0182, 0x0054, 0xfec0, 0xfcae, 0xfc70, 0xfc47,
+ 0xfa87, 0xf9e7, 0xfa2c, 0xf99f, 0xfa5b, 0xfc1d,
+ 0xfce4, 0xfe3f, 0x000a, 0x00bf, 0x01d2, 0x0306,
+ 0x039b, 0x0587, 0x073b, 0x068f, 0x06e7, 0x093d,
+ 0x0a0d, 0x0945, 0x08df, 0x0872, 0x0780, 0x0750,
+ 0x0869, 0x08bb, 0x0764, 0x0645, 0x0566, 0x0431,
+ 0x0442, 0x0516, 0x045d, 0x01d1, 0xfee9, 0xfd8d,
+ 0xfcae, 0xfaa7, 0xfaf2, 0xfdc9, 0xfe7d, 0xfe37,
+ 0xfd29, 0xf82c, 0xf424, 0xf41b, 0xf448, 0xf683,
+ 0xfa91, 0xfb71, 0xfbd9, 0xfda8, 0xfd89, 0xfc7b,
+ 0xfb46, 0xfa9d, 0xfce0, 0xfdc5, 0xfb66, 0xfb15,
+ 0xfbaf, 0xfb37, 0xfd36, 0x00bd, 0x03cf, 0x065c,
+ 0x05f2, 0x03fa, 0x0342, 0x01b6, 0x001a, 0x00b2,
+ 0x01d0, 0x031b, 0x0413, 0x02c9, 0x0116, 0xffff,
+ 0xfde9, 0xfcf2, 0xfeb8, 0x0053, 0x0070, 0x00c7,
+ 0x0264, 0x040e, 0x0399, 0x01f5, 0x01ed, 0x031a,
+ 0x0492, 0x0671, 0x068d, 0x0515, 0x0519, 0x04bd,
+ 0x0257, 0x0166, 0x01ba, 0x00f0, 0x007d, 0x009d,
+ 0x0059, 0xffd3, 0xfe70, 0xfd84, 0xfdc8, 0xfd16,
+ 0xfca2, 0xfcd8, 0xfb4c, 0xfaf6, 0xfd2b, 0xfdd1,
+ 0xfe0f, 0xff6a, 0xff2f, 0xfe43, 0xfdc1, 0xfd10,
+ 0xfd2e, 0xfcb3, 0xfc09, 0xfe59, 0xfff0, 0xfe76,
+ 0xfef4, 0x0101, 0x0128, 0x00d9, 0x003d, 0xfec7,
+ 0xfe14, 0xfe06, 0xfe1f, 0xfe3f, 0xfdd0, 0xfdde,
+ 0xfe40, 0xfe07, 0xfee1, 0xff94, 0xfda8, 0xfbc4,
+ 0xfb31, 0xfa61, 0xf9bc, 0xf89f, 0xf790, 0xf8b5,
+ 0xf9e4, 0xfa61, 0xfb57, 0xf9ea, 0xf81e, 0xf972,
+ 0xf901, 0xf720, 0xf87d, 0xf96c, 0xf972, 0xfb8d,
+ 0xfccf, 0xfe07, 0x00a6, 0x010a, 0x00db, 0x0127,
+ 0xff81, 0xffc8, 0x01ce, 0x00b3, 0xffca, 0x0012,
+ 0xfe1c, 0xfd59, 0xff73, 0x011a, 0x026b, 0x03bc,
+ 0x0471, 0x04d9, 0x0450, 0x037b, 0x0327, 0x027d,
+ 0x0291, 0x03b8, 0x0402, 0x03e1, 0x046b, 0x04f3,
+ 0x0569, 0x0610, 0x06d7, 0x075c, 0x069b, 0x050c,
+ 0x0428, 0x02b8, 0xffa7, 0xfe0a, 0xff9e, 0x018f,
+ 0x026e, 0x0269, 0x006f, 0xfd42, 0xfa62, 0xf7b3,
+ 0xf5a8, 0xf443, 0xf3ba, 0xf4f9, 0xf691, 0xf855,
+ 0xfa74, 0xf9fa, 0xf913, 0xfa02, 0xf7d1, 0xf4b2,
+ 0xf5c0, 0xf6d5, 0xf77a, 0xf961, 0xf999, 0xfaec,
+ 0xfdaa, 0xfd08, 0xfcd1, 0xfd9d, 0xfb00, 0xfa87,
+ 0xfdf1, 0xfee9, 0xfeab, 0xff5b, 0xfefe, 0xfe38,
+ 0xfdb7, 0xfde2, 0xfed7, 0xfe4e, 0xfce2, 0xfceb,
+ 0xfd41, 0xfd65, 0xff5f, 0x02f3, 0x049c, 0x0346,
+ 0x01c3, 0x00dc, 0x0109, 0x0330, 0x036a, 0x014f,
+ 0x017d, 0x01c6, 0x008a, 0x013a, 0x02b0, 0x0470,
+ 0x0711, 0x0720, 0x06c6, 0x0959, 0x0b59, 0x0c2e,
+ 0x0c77, 0x0b66, 0x0c27, 0x0d81, 0x0c9c, 0x0dfd,
+ 0x103c, 0x0d9f, 0x0a88, 0x0a75, 0x0a38, 0x0a5e,
+ 0x0c29, 0x0d7e, 0x0ce1, 0x0a74, 0x093d, 0x0acd,
+ 0x0a44, 0x076d, 0x0928, 0x0cee, 0x0b57, 0x082e,
+ 0x0783, 0x054d, 0x02f4, 0x0502, 0x071e, 0x04a9,
+ 0x019d, 0x0281, 0x05e0, 0x0842, 0x0893, 0x06f1,
+ 0x03f7, 0x0179, 0x007f, 0x00ad, 0x00c6, 0xff8f,
+ 0xfe47, 0xfde5, 0xfdff, 0x0014, 0x0210, 0x007c,
+ 0xffb7, 0x0137, 0x0081, 0x0016, 0x0294, 0x04cb,
+ 0x05fd, 0x059d, 0x0367, 0x017f, 0xff8d, 0xff25,
+ 0x019f, 0x01a9, 0xff82, 0xffd3, 0xff63, 0xfd19,
+ 0xfcd2, 0xfd6d, 0xfd1f, 0xfc59, 0xfb4f, 0xfc14,
+ 0xff0e, 0x0103, 0x01c0, 0x03cb, 0x05ad, 0x04cc,
+ 0x0427, 0x0582, 0x049c, 0x0214, 0x0223, 0x02b9,
+ 0x01e8, 0x010d, 0x0081, 0x016e, 0x02fe, 0x02d9,
+ 0x0346, 0x0547, 0x069f, 0x0850, 0x0ac2, 0x0b08,
+ 0x08c4, 0x06f9, 0x06af, 0x05df, 0x0546, 0x067d,
+ 0x066f, 0x0462, 0x0362, 0x03a0, 0x0527, 0x078f,
+ 0x0939, 0x0ab2, 0x0a45, 0x07f9, 0x0909, 0x0b71,
+ 0x0a94, 0x08ee, 0x082f, 0x08d6, 0x09e0, 0x091c,
+ 0x0ae6, 0x0e0e, 0x0b91, 0x08f7, 0x0975, 0x07dc,
+ 0x0802, 0x0aaa, 0x0ac7, 0x0af4, 0x0b8b, 0x0c0b,
+ 0x0e48, 0x0d20, 0x0a1e, 0x0b54, 0x0a48, 0x0619,
+ 0x05ef, 0x06b9, 0x067b, 0x076c, 0x06c9, 0x0557,
+ 0x057c, 0x04a7, 0x0313, 0x02ee, 0x0223, 0xff48,
+ 0xfe23, 0xfffd, 0xffa8, 0xfddf, 0xffa2, 0x0117,
+ 0x00e7, 0x03d0, 0x05e9, 0x0412, 0x02ef, 0x02f3,
+ 0x0321, 0x03be, 0x037a, 0x0490, 0x06b4, 0x0505,
+ 0x027e, 0x0409, 0x063d, 0x05d9, 0x049d, 0x044a,
+ 0x03d1, 0x01ec, 0x00a6, 0x0164, 0x01b1, 0x00cc,
+ 0x016d, 0x046a, 0x078d, 0x0a71, 0x0d9d, 0x0dfc,
+ 0x0c1c, 0x0c9c, 0x0b60, 0x0532, 0x01c1, 0x01bc,
+ 0x0052, 0x0097, 0x0185, 0x0045, 0x0264, 0x05d0,
+ 0x0346, 0xff59, 0xff0c, 0x009e, 0x023f, 0x0215,
+ 0x0318, 0x076b, 0x081b, 0x068d, 0x098a, 0x0b2f,
+ 0x0a4c, 0x0b87, 0x096a, 0x06ef, 0x0afe, 0x0cae,
+ 0x0ae0, 0x0be7, 0x09ba, 0x0630, 0x076f, 0x05f2,
+ 0x0186, 0x007d, 0x00bd, 0x01ed, 0x0244, 0xff44,
+ 0xfe7e, 0xfe94, 0xfc25, 0xfe10, 0x0240, 0x0281,
+ 0x04bf, 0x09ae, 0x0a5f, 0x08ac, 0x0a64, 0x0ed4,
+ 0x102e, 0x0c98, 0x09c9, 0x0af3, 0x0bc2, 0x0919,
+ 0x0747, 0x0938, 0x0960, 0x070a, 0x0726, 0x0611,
+ 0x0369, 0x0484, 0x04ab, 0x034b, 0x05f9, 0x06b2,
+ 0x03fa, 0x0567, 0x0859, 0x0846, 0x07bb, 0x0901,
+ 0x0a8d, 0x0886, 0x061a, 0x0771, 0x05a9, 0x001b,
+ 0xfeb2, 0x0029, 0x00bd, 0xffaa, 0xfd7a, 0xfda3,
+ 0xfea3, 0xfe6d, 0xfe2a, 0xfb7b, 0xfaf1, 0xff76,
+ 0xfef8, 0xfcba, 0x0114, 0x0349, 0x0190, 0x0130,
+ 0x0009, 0x007a, 0x02ac, 0x0228, 0x0080, 0xfe33,
+ 0xfdc6, 0x00bd, 0x0058, 0xfff6, 0x0283, 0xff26,
+ 0xfc2f, 0xff19, 0xfc64, 0xf8fc, 0xfda6, 0xfffd,
+ 0xfeae, 0x0122, 0x02ce, 0x00c9, 0x00e1, 0x037b,
+ 0x02ef, 0x0085, 0x016b, 0x0251, 0x0014, 0xfe53,
+ 0xfe8c, 0x0088, 0x01ea, 0x00d5, 0x0245, 0x0481,
+ 0x0208, 0x00e5, 0x02ab, 0x029f, 0x02d4, 0x0274,
+ 0x01bb, 0x0482, 0x0560, 0x0391, 0x0589, 0x06e6,
+ 0x053e, 0x073e, 0x0b75, 0x0b31, 0x07c7, 0x063a,
+ 0x0553, 0x0475, 0x0784, 0x09c0, 0x081f, 0x0a10,
+ 0x0b4d, 0x071b, 0x0644, 0x0668, 0x0393, 0x039e,
+ 0x02cb, 0x012d, 0x03a7, 0x02ef, 0x0059, 0x0180,
+ 0x007b, 0xffc6, 0x023e, 0x028a, 0x0376, 0x04ca,
+ 0x037c, 0x043d, 0x04c3, 0x036f, 0x0517, 0x04ec,
+ 0x0115, 0x00b1, 0x02e7, 0x0295, 0x000a, 0xffd4,
+ 0x0143, 0xfe9c, 0xfc72, 0xfe28, 0xfd1b, 0xfc43,
+ 0xfd61, 0xfb45, 0xfb62, 0xfd87, 0xfd0d, 0xfefc,
+ 0xfec2, 0xfb35, 0xfe2d, 0x0008, 0xfd0b, 0xfe74,
+ 0xfee7, 0xfd6a, 0xfee6, 0xfddb, 0xfe90, 0x01a6,
+ 0xfe74, 0xfe3c, 0x01cd, 0xfe6a, 0xfe40, 0x0361,
+ 0x03ca, 0x0550, 0x06be, 0x040a, 0x05c0, 0x0594,
+ 0xfe32, 0xfcce, 0xff97, 0xfe54, 0xfded, 0xfd3c,
+ 0xfc54, 0x00b2, 0x030d, 0x012b, 0x02c7, 0x024c,
+ 0xfdad, 0xfe3d, 0x0007, 0xfe8f, 0xff55, 0xff0b,
+ 0xfc1b, 0xfbf5, 0xfb2c, 0xf9f9, 0xfbc5, 0xf9ed,
+ 0xf76c, 0xfb01, 0xfbb7, 0xf862, 0xf87e, 0xf8f9,
+ 0xf951, 0xfb4a, 0xfbad, 0xfcbb, 0xfe77, 0xfd29,
+ 0xfc62, 0xfc8e, 0xfaf8, 0xfa0b, 0xf9be, 0xfa6a,
+ 0xfc6d, 0xfb0f, 0xf95f, 0xfbda, 0xfc9e, 0xfc90,
+ 0xff38, 0xfdaa, 0xfa28, 0xfc35, 0xfbb1, 0xf5b1,
+ 0xf5a9, 0xf9e4, 0xf88a, 0xf664, 0xf932, 0xfb4b,
+ 0xfa16, 0xf96c, 0xf9a5, 0xf8c2, 0xf82e, 0xf91f,
+ 0xf939, 0xf98d, 0xfc6f, 0xfd00, 0xfbe5, 0xfef8,
+ 0xffbe, 0xfdab, 0x01c7, 0x02ff, 0xfd85, 0xfe9f,
+ 0xffea, 0xfaaf, 0xfad9, 0xfd3e, 0xfc70, 0xff6f,
+ 0x015d, 0x0078, 0x0336, 0x0480, 0x060c, 0x0ba7,
+ 0x0a71, 0x04ff, 0x05a6, 0x0676, 0x0597, 0x05d6,
+ 0x0368, 0x02d5, 0x07a0, 0x09cb, 0x08fd, 0x0972,
+ 0x0833, 0x06b4, 0x08e4, 0x0a38, 0x07de, 0x05b5,
+ 0x0509, 0x0526, 0x04f3, 0x0301, 0x02ec, 0x0594,
+ 0x0576, 0x049d, 0x057f, 0x03b3, 0x025d, 0x03b1,
+ 0x02db, 0x032a, 0x04e5, 0x0241, 0xffa2, 0xfe5b,
+ 0xfb12, 0xfa54, 0xfaad, 0xf92f, 0xfa96, 0xfb6e,
+ 0xf976, 0xfac0, 0xfc39, 0xfaf3, 0xfb2b, 0xfc18,
+ 0xfd5a, 0xffd6, 0x01c7, 0x0497, 0x0642, 0x0327,
+ 0x0131, 0x029c, 0x00bb, 0xfcf9, 0xfd73, 0xfe3a,
+ 0xfa96, 0xf923, 0xfc89, 0xfc97, 0xfa34, 0xfb08,
+ 0xfb3d, 0xfb58, 0xfdd1, 0xfd44, 0xfbd8, 0xfd7f,
+ 0xfd19, 0xfc52, 0xfe4d, 0xfda4, 0xfaae, 0xf953,
+ 0xf994, 0xfc34, 0xfda8, 0xfb05, 0xfb6a, 0xfff1,
+ 0x0036, 0xfe05, 0xff53, 0xffaf, 0xfe1a, 0x00ac,
+ 0x03c6, 0x0371, 0x0585, 0x07e8, 0x0590, 0x041e,
+ 0x041a, 0x01da, 0x0068, 0xfe80, 0xfb2e, 0xfb12,
+ 0xfb97, 0xfb80, 0xff71, 0x037f, 0x0380, 0x02cc,
+ 0x02eb, 0x0368, 0x02ad, 0x0183, 0x04aa, 0x07af,
+ 0x050f, 0x04e2, 0x086c, 0x06fe, 0x0526, 0x08d8,
+ 0x0a64, 0x077f, 0x070d, 0x08c0, 0x097b, 0x0af7,
+ 0x0b22, 0x06a8, 0x0259, 0x01bf, 0x0173, 0x00e5,
+ 0x016b, 0x0055, 0xfcb4, 0xfa32, 0xfa07, 0xf938,
+ 0xf7be, 0xf7cd, 0xf7f6, 0xf803, 0xf8d6, 0xf80e,
+ 0xf855, 0xfb8d, 0xfabf, 0xf86a, 0xfb39, 0xfc70,
+ 0xfb4b, 0xfd0c, 0xfc3f, 0xfab9, 0xfea3, 0x007d,
+ 0xfe65, 0xfe0d, 0xfd3e, 0xfcaf, 0xfec2, 0xff3b,
+ 0xfec4, 0x00c8, 0x02e4, 0x033d, 0x0318, 0x03a0,
+ 0x03ca, 0x0308, 0x03b6, 0x042a, 0x0277, 0x033a,
+ 0x0516, 0x0345, 0x0215, 0x02a7, 0x0097, 0xfdc2,
+ 0xfc26, 0xfb14, 0xfba6, 0xfcf6, 0xfdb0, 0xff45,
+ 0x0259, 0x045b, 0x02db, 0x01e2, 0x0388, 0x00bc,
+ 0xfc08, 0xfe70, 0x0084, 0xfd54, 0xfe62, 0x019c,
+ 0x0034, 0x0019, 0x0240, 0x0100, 0xff86, 0x0191,
+ 0x03f9, 0x04ac, 0x040d, 0x01e2, 0x0008, 0x0102,
+ 0x01d2, 0xff78, 0xfdfc, 0xfffb, 0x01d4, 0x0176,
+ 0x016b, 0x03d0, 0x0515, 0x02af, 0x0243, 0x044d,
+ 0x0370, 0x0383, 0x0592, 0x0453, 0x04ce, 0x0834,
+ 0x0688, 0x03d5, 0x05e0, 0x0858, 0x092e, 0x0829,
+ 0x0720, 0x0982, 0x0a4f, 0x07a5, 0x0840, 0x0a99,
+ 0x09d9, 0x07e6, 0x0713, 0x080d, 0x08a2, 0x070b,
+ 0x071f, 0x0947, 0x098e, 0x088d, 0x0859, 0x0872,
+ 0x06fe, 0x04e9, 0x0553, 0x054d, 0x030f, 0x0360,
+ 0x045d, 0x0367, 0x0355, 0x01ad, 0xffcc, 0x01cb,
+ 0x017b, 0xff3b, 0x0120, 0x0303, 0x0418, 0x0554,
+ 0x027d, 0xfffe, 0x0187, 0x033a, 0x0564, 0x06ab,
+ 0x0605, 0x0683, 0x0586, 0x048f, 0x0795, 0x0729,
+ 0x025e, 0x006f, 0xff13, 0xfc8b, 0xfb4b, 0xfa96,
+ 0xfa4d, 0xf9c1, 0xf8cd, 0xf840, 0xf679, 0xf5fc,
+ 0xf821, 0xf8bd, 0xf933, 0xf948, 0xf6d5, 0xf7cc,
+ 0xfa9d, 0xfa1e, 0xfb93, 0xfd6a, 0xfc28, 0xfd33,
+ 0xfda5, 0xfb75, 0xfd97, 0x0191, 0x032b, 0x0548,
+ 0x071f, 0x06e1, 0x0564, 0x045e, 0x04c1, 0x03e6,
+ 0x0283, 0x02f3, 0x02a2, 0x02ef, 0x04c0, 0x04c6,
+ 0x05d7, 0x06cd, 0x03a3, 0x02e8, 0x0543, 0x066c,
+ 0x0ade, 0x0f6c, 0x0dbb, 0x0b0b, 0x0aa1, 0x0bfb,
+ 0x0e07, 0x0d1f, 0x0bd8, 0x0b7b, 0x085c, 0x0740,
+ 0x09d6, 0x09b6, 0x0789, 0x051f, 0x01f1, 0xffcf,
+ 0xff0b, 0x01b7, 0x065a, 0x0687, 0x069d, 0x09a5,
+ 0x089f, 0x0629, 0x05cb, 0x0441, 0x048d, 0x0512,
+ 0x0214, 0x02d4, 0x0600, 0x04f4, 0x053b, 0x077b,
+ 0x066b, 0x03af, 0x00b8, 0xffd0, 0x0225, 0x029e,
+ 0x0274, 0x03b6, 0x01da, 0x01ea, 0x0899, 0x0cf9,
+ 0x0bfb, 0x09cc, 0x072c, 0x05b4, 0x0444, 0x021d,
+ 0x0480, 0x08e0, 0x08db, 0x072a, 0x0590, 0x039b,
+ 0x02db, 0x0176, 0x008c, 0x0320, 0x0502, 0x0437,
+ 0x0304, 0x02ef, 0x068b, 0x08ef, 0x04c4, 0x0211,
+ 0x030d, 0x02b6, 0x056b, 0x08b0, 0x06f2, 0x0946,
+ 0x0dc4, 0x0918, 0x04ca, 0x0784, 0x0663, 0x03c7,
+ 0x0739, 0x07d3, 0x02e0, 0x024b, 0x0485, 0x02d7,
+ 0x0163, 0x01d6, 0x0010, 0xff10, 0x00cc, 0x00ff,
+ 0x00e4, 0x0241, 0x0181, 0x0097, 0x03df, 0x0720,
+ 0x0568, 0x02d1, 0x03cb, 0x041e, 0x0203, 0x0281,
+ 0x02cb, 0xfef6, 0xfdfb, 0x003c, 0xff01, 0xfe35,
+ 0x00d6, 0x012e, 0xff51, 0xff5d, 0x0072, 0x007d,
+ 0xffda, 0xff0d, 0xfd8d, 0xfdcc, 0x01c2, 0x03db,
+ 0x022a, 0x01ec, 0x00fa, 0xfca6, 0xfa02, 0xf921,
+ 0xf7ad, 0xf7f8, 0xf87b, 0xf7a6, 0xf8a8, 0xf9cc,
+ 0xf7cd, 0xf6d9, 0xf9a4, 0xfbdf, 0xfcec, 0xffba,
+ 0xfff6, 0xfb80, 0xfa75, 0xfd1c, 0xfc4d, 0xfb53,
+ 0xfcd6, 0xfbce, 0xfa99, 0xfcb1, 0xfeb9, 0x019a,
+ 0x05aa, 0x0634, 0x063d, 0x08f2, 0x0886, 0x066c,
+ 0x088d, 0x0a06, 0x083c, 0x07bd, 0x074e, 0x069c,
+ 0x0812, 0x07f3, 0x0639, 0x0665, 0x0599, 0x0499,
+ 0x066d, 0x0791, 0x080f, 0x095e, 0x07d0, 0x0489,
+ 0x035d, 0x039e, 0x0317, 0x005f, 0xfefb, 0x0129,
+ 0x0182, 0x0137, 0x0528, 0x084b, 0x0892, 0x0909,
+ 0x0834, 0x07bd, 0x097d, 0x0984, 0x07c7, 0x075c,
+ 0x0828, 0x0817, 0x06a0, 0x06a2, 0x065b, 0x02b8,
+ 0x01b9, 0x02dd, 0xfff3, 0xff64, 0x0293, 0x0353,
+ 0x0696, 0x0a9d, 0x07d4, 0x0617, 0x083d, 0x0717,
+ 0x05ab, 0x0618, 0x051f, 0x0447, 0x035f, 0x01df,
+ 0x0198, 0x007f, 0xfe77, 0xfd14, 0xfae2, 0xf9fe,
+ 0xfb64, 0xfbac, 0xfcf0, 0xfff5, 0xffa5, 0xfd87,
+ 0xfd6d, 0xfd6e, 0xfd8e, 0xfeda, 0xff8b, 0xffe6,
+ 0x000c, 0xfeef, 0xff37, 0x01a2, 0x0200, 0x0039,
+ 0xffa6, 0xff5e, 0xfd50, 0xfbac, 0xfd63, 0x00b9,
+ 0x0304, 0x054f, 0x0715, 0x0685, 0x064a, 0x06e8,
+ 0x05ac, 0x047a, 0x03a3, 0x00d1, 0xff90, 0x01c0,
+ 0x03c2, 0x053f, 0x0725, 0x0889, 0x0979, 0x096b,
+ 0x0819, 0x0731, 0x0742, 0x0708, 0x0673, 0x076e,
+ 0x0847, 0x05bb, 0x0488, 0x06e3, 0x0667, 0x057a,
+ 0x07ba, 0x0677, 0x03cc, 0x05b4, 0x075f, 0x0870,
+ 0x0ab7, 0x09ee, 0x08b3, 0x0a26, 0x0a61, 0x09cd,
+ 0x09f2, 0x098f, 0x0843, 0x04e3, 0x0220, 0x0306,
+ 0x037d, 0x02ab, 0x02df, 0x0282, 0x0293, 0x03c3,
+ 0x0422, 0x04c7, 0x047a, 0x01a6, 0xff09, 0xfcbb,
+ 0xfb12, 0xfab5, 0xf857, 0xf67d, 0xf865, 0xf921,
+ 0xf914, 0xfb58, 0xfc11, 0xfaeb, 0xfa88, 0xfa92,
+ 0xfb56, 0xfb0e, 0xf98e, 0xfb85, 0xffcf, 0x023f,
+ 0x035c, 0x02c1, 0x00a9, 0x0079, 0x029e, 0x0502,
+ 0x05fa, 0x047e, 0x0215, 0x013b, 0x01b9, 0x0199,
+ 0x0106, 0x00a7, 0xfd92, 0xf8c5, 0xf804, 0xf8a1,
+ 0xf75f, 0xf98a, 0xfc87, 0xfac5, 0xfa4f, 0xfbbb,
+ 0xf9c0, 0xf985, 0xfcda, 0xfe41, 0xff1c, 0xff7b,
+ 0xfcfe, 0xfcf5, 0x0079, 0x01bf, 0x01f4, 0x0417,
+ 0x0579, 0x048c, 0x03fd, 0x05f2, 0x073b, 0x0525,
+ 0x0425, 0x058e, 0x05bb, 0x06b6, 0x08aa, 0x07dc,
+ 0x0742, 0x0756, 0x04c1, 0x03c0, 0x0499, 0x02ae,
+ 0x0272, 0x04c3, 0x03cc, 0x029b, 0x033a, 0x011a,
+ 0xfe99, 0xfea9, 0xfd7d, 0xfa83, 0xf8a1, 0xf812,
+ 0xf81f, 0xf8cf, 0xf9f1, 0xfae9, 0xfc56, 0xff03,
+ 0x00c2, 0x00f0, 0x0277, 0x043e, 0x0356, 0x0253,
+ 0x03c8, 0x05a8, 0x06cf, 0x08fa, 0x0c38, 0x0e21,
+ 0x0e63, 0x0e31, 0x0d34, 0x0d01, 0x0f0e, 0x0ffc,
+ 0x0fea, 0x1246, 0x1307, 0x102b, 0x0f9c, 0x0fea,
+ 0x0c68, 0x09c2, 0x0a53, 0x09bb, 0x07e7, 0x0731,
+ 0x0713, 0x0627, 0x04cb, 0x05d3, 0x086b, 0x0883,
+ 0x0807, 0x08ce, 0x0845, 0x083d, 0x08d8, 0x067e,
+ 0x04f3, 0x0591, 0x039f, 0x0256, 0x03a1, 0x026e,
+ 0x0051, 0xff7b, 0xfd85, 0xfc58, 0xfcc7, 0xfc69,
+ 0xfc48, 0xfcd2, 0xfd42, 0xfdb1, 0xfd29, 0xfd7f,
+ 0xffc0, 0xff3c, 0xfba6, 0xf935, 0xf77c, 0xf5b5,
+ 0xf52a, 0xf51e, 0xf4d2, 0xf50c, 0xf61e, 0xf71b,
+ 0xf77c, 0xf8af, 0xfa3c, 0xf925, 0xf6ca, 0xf730,
+ 0xf94f, 0xf9ed, 0xf9de, 0xfb87, 0xfe4e, 0x006a,
+ 0x00e2, 0xff76, 0xff06, 0x014a, 0x01cd, 0xffbd,
+ 0x0028, 0x02ad, 0x046b, 0x05cf, 0x06cb, 0x0807,
+ 0x0961, 0x07fd, 0x050a, 0x037b, 0x02cd, 0x02ae,
+ 0x0238, 0x00a8, 0xff65, 0xfd69, 0xfb87, 0xfdce,
+ 0x0169, 0x02d7, 0x04fd, 0x06b2, 0x053f, 0x048d,
+ 0x05b1, 0x0437, 0x00a6, 0xffb3, 0x0176, 0x030f,
+ 0x049e, 0x0659, 0x0699, 0x05ad, 0x0441, 0x0218,
+ 0x0012, 0xfe4d, 0xfdf8, 0x0088, 0x025b, 0x01ed,
+ 0x0220, 0x01e0, 0x01bd, 0x03ce, 0x0432, 0x03a8,
+ 0x05ec, 0x069b, 0x05a6, 0x06f9, 0x0643, 0x0379,
+ 0x03be, 0x03eb, 0x022e, 0x0256, 0x0312, 0x01b5,
+ 0xffb5, 0xfe5f, 0xfd41, 0xfc45, 0xfcca, 0xfe4b,
+ 0xfe7c, 0xfe7b, 0xfeb7, 0xfd50, 0xfc88, 0xfd4b,
+ 0xfd20, 0xfe2a, 0x009b, 0x0085, 0xffe8, 0x006c,
+ 0xff12, 0xfdbb, 0xfea6, 0xff59, 0x0031, 0x021d,
+ 0x02f7, 0x032c, 0x042a, 0x04fb, 0x0505, 0x03d9,
+ 0x01fe, 0x01af, 0x0282, 0x030e, 0x03e9, 0x03db,
+ 0x02d7, 0x0386, 0x03b9, 0x01bd, 0x01c9, 0x02be,
+ 0x009c, 0xfe74, 0xfe37, 0xfed9, 0x0154, 0x0365,
+ 0x0334, 0x037c, 0x0349, 0x0186, 0x0128, 0x012e,
+ 0x0022, 0x004a, 0x0089, 0xff08, 0xfd4d, 0xfb75,
+ 0xf920, 0xf81f, 0xf94b, 0xfaff, 0xfbac, 0xfbb2,
+ 0xfb47, 0xfa95, 0xfba9, 0xfd86, 0xfcff, 0xfc0f,
+ 0xfc30, 0xfa6c, 0xf7d0, 0xf7b5, 0xf92f, 0xf9f4,
+ 0xf9b4, 0xfa29, 0xfb8c, 0xfb6a, 0xfb4f, 0xfdf6,
+ 0xffec, 0xff44, 0xfe83, 0xfd2f, 0xfb42, 0xfb68,
+ 0xfcae, 0xfcd1, 0xfccb, 0xfe30, 0x001f, 0xffbb,
+ 0xfd7c, 0xfd8b, 0xfee4, 0xfe27, 0xfe45, 0x00c3,
+ 0x01a7, 0x0119, 0x021c, 0x03f4, 0x04c0, 0x0411,
+ 0x0358, 0x036b, 0x0285, 0x0228, 0x048c, 0x055c,
+ 0x03ad, 0x03c9, 0x039d, 0x01ff, 0x0300, 0x04c9,
+ 0x04c5, 0x05d4, 0x077c, 0x0777, 0x0775, 0x0811,
+ 0x0704, 0x043e, 0x0300, 0x0410, 0x04af, 0x04d5,
+ 0x05d6, 0x06dc, 0x07af, 0x07fe, 0x0811, 0x08ae,
+ 0x073b, 0x0523, 0x06ef, 0x07c7, 0x04d4, 0x0400,
+ 0x0446, 0x0312, 0x040c, 0x058d, 0x0474, 0x0376,
+ 0x043f, 0x05fb, 0x0718, 0x0720, 0x0807, 0x08e1,
+ 0x0819, 0x07ab, 0x0770, 0x05cd, 0x0382, 0x0144,
+ 0xff72, 0xfdbd, 0xfc4f, 0xfccc, 0xfe40, 0xfefe,
+ 0xff0d, 0xfdd1, 0xfcbe, 0xfcdd, 0xfc5d, 0xfc6d,
+ 0xfce1, 0xfb4f, 0xfaa1, 0xfb29, 0xf9cc, 0xf941,
+ 0xf9e5, 0xf8e1, 0xf87e, 0xf8f1, 0xf773, 0xf5cc,
+ 0xf68f, 0xf8b1, 0xf9a8, 0xf9d7, 0xfafe, 0xfaff,
+ 0xf9df, 0xfacb, 0xfbe0, 0xfbe5, 0xfc25, 0xfb04,
+ 0xfa46, 0xfbe0, 0xfcd0, 0xfdee, 0xffc1, 0xff78,
+ 0xfff2, 0x01f7, 0x0185, 0x00d7, 0x01f5, 0x01cb,
+ 0x0009, 0xfe0d, 0xfce1, 0xfd6d, 0xfe22, 0xfeed,
+ 0x0137, 0x01ed, 0xff0c, 0xfd95, 0x0010, 0x01d1,
+ 0x01a1, 0x02b4, 0x0398, 0x0343, 0x049c, 0x0693,
+ 0x07b0, 0x09d5, 0x0bc2, 0x0bd5, 0x0b7e, 0x0b0a,
+ 0x0a29, 0x0963, 0x0974, 0x09e7, 0x0962, 0x09e3,
+ 0x0b78, 0x09b7, 0x07b7, 0x0943, 0x0917, 0x07b1,
+ 0x0913, 0x0905, 0x06a8, 0x0580, 0x04de, 0x041d,
+ 0x026a, 0x0010, 0x00af, 0x02f1, 0x03ec, 0x04e5,
+ 0x04a1, 0x0284, 0x0127, 0x0031, 0xffd4, 0x0083,
+ 0xff08, 0xfbb9, 0xfa3a, 0xfa6f, 0xfb35, 0xfc26,
+ 0xfc9d, 0xfd20, 0xfd84, 0xfcd6, 0xfc70, 0xfdb3,
+ 0xff97, 0x00db, 0x0115, 0x0128, 0x02ba, 0x045f,
+ 0x040a, 0x03a0, 0x03fc, 0x041d, 0x049f, 0x038e,
+ 0x0047, 0xfed7, 0xfdaf, 0xfaff, 0xfae6, 0xfb30,
+ 0xf992, 0xfa5b, 0xfb39, 0xfa69, 0xfc28, 0xfd75,
+ 0xfc60, 0xfcbe, 0xfd45, 0xfdcf, 0xff3c, 0xfe95,
+ 0xfe56, 0x001d, 0x0069, 0x01de, 0x0561, 0x063c,
+ 0x05f1, 0x06cf, 0x07db, 0x0a13, 0x0c04, 0x0b93,
+ 0x0b1e, 0x0b65, 0x0a58, 0x08ba, 0x08f1, 0x09df,
+ 0x08d1, 0x06ee, 0x0558, 0x02ca, 0x00d0, 0x0090,
+ 0x009c, 0x0183, 0x0284, 0x018c, 0xffe9, 0xfecc,
+ 0xfe0c, 0xfd48, 0xfbc3, 0xfae3, 0xfacc, 0xf966,
+ 0xf7f7, 0xf7a4, 0xf77e, 0xf7f2, 0xf8ab, 0xf9e1,
+ 0xfbdb, 0xfc41, 0xfc82, 0xfeb9, 0xff44, 0xfded,
+ 0xfdd2, 0xfe2f, 0xfedf, 0x0075, 0x01cc, 0x028f,
+ 0x0269, 0x01ab, 0x015c, 0x01ca, 0x0436, 0x0792,
+ 0x0968, 0x0bc8, 0x0f01, 0x0fef, 0x0f91, 0x0fb8,
+ 0x101b, 0x1022, 0x0ec2, 0x0d97, 0x0e04, 0x0df7,
+ 0x0dfd, 0x0ea9, 0x0db5, 0x0c3c, 0x0b7f, 0x0a24,
+ 0x08ba, 0x07ef, 0x07d5, 0x07cb, 0x060c, 0x0500,
+ 0x066e, 0x0618, 0x0410, 0x03e6, 0x039e, 0x01d7,
+ 0x00a5, 0x0066, 0x00a0, 0x00fc, 0x014f, 0x0247,
+ 0x039b, 0x0480, 0x04fd, 0x04b7, 0x0332, 0x00ef,
+ 0xfed7, 0xfcd4, 0xfab6, 0xf99e, 0xf95b, 0xf847,
+ 0xf725, 0xf6a5, 0xf531, 0xf36f, 0xf392, 0xf4e3,
+ 0xf58c, 0xf5c7, 0xf640, 0xf6a3, 0xf739, 0xf88d,
+ 0xfa21, 0xfc02, 0xfdf6, 0xff23, 0x0069, 0x017d,
+ 0x0137, 0x0189, 0x019a, 0xfe7e, 0xfbab, 0xfc34,
+ 0xfd6d, 0xfe65, 0x000a, 0x01d4, 0x02b7, 0x0281,
+ 0x033c, 0x04eb, 0x04da, 0x0489, 0x0527, 0x040b,
+ 0x02c8, 0x0398, 0x0429, 0x04bf, 0x0705, 0x08e0,
+ 0x0923, 0x0937, 0x0904, 0x07aa, 0x0708, 0x08be,
+ 0x0a39, 0x0a15, 0x09f9, 0x093f, 0x0856, 0x09d8,
+ 0x0bcf, 0x0ba4, 0x0a67, 0x0880, 0x0677, 0x05ae,
+ 0x056e, 0x04b6, 0x03f4, 0x03d6, 0x0465, 0x0548,
+ 0x0678, 0x0721, 0x06f6, 0x0758, 0x0726, 0x057f,
+ 0x0505, 0x04fb, 0x03aa, 0x032d, 0x02d9, 0x01fc,
+ 0x02f5, 0x03ce, 0x02b4, 0x0235, 0x0259, 0x0294,
+ 0x0385, 0x03db, 0x03b9, 0x03ca, 0x035b, 0x0372,
+ 0x0384, 0x01e3, 0x00bb, 0x014e, 0x0264, 0x03cf,
+ 0x048c, 0x03fe, 0x0336, 0x0250, 0x0230, 0x0398,
+ 0x04a3, 0x04de, 0x054d, 0x0585, 0x05e8, 0x06cb,
+ 0x0715, 0x06f7, 0x06f8, 0x0680, 0x0589, 0x043e,
+ 0x02fb, 0x029c, 0x027b, 0x026c, 0x040b, 0x0606,
+ 0x062b, 0x0641, 0x0694, 0x0542, 0x044c, 0x0499,
+ 0x034f, 0x012e, 0x00fd, 0x0283, 0x041e, 0x043b,
+ 0x03cd, 0x04b4, 0x0497, 0x0281, 0x012a, 0x0013,
+ 0xfee2, 0xff1c, 0xfeeb, 0xfdef, 0xfe03, 0xfda9,
+ 0xfc95, 0xfc7e, 0xfd07, 0xfe0b, 0xff17, 0xff73,
+ 0xffef, 0xff46, 0xfd0f, 0xfc05, 0xfafd, 0xf856,
+ 0xf6c9, 0xf6c5, 0xf716, 0xf81f, 0xf91f, 0xf9c3,
+ 0xfa1e, 0xf9f1, 0xfaae, 0xfb51, 0xf99c, 0xf849,
+ 0xf8ba, 0xf883, 0xf82e, 0xf85f, 0xf7d7, 0xf772,
+ 0xf7d7, 0xf86b, 0xf96b, 0xfaa1, 0xfbb6, 0xfcc9,
+ 0xfda3, 0xfe87, 0xff7d, 0x001e, 0x00d0, 0x00d5,
+ 0xff43, 0xfdee, 0xfe0c, 0xfe15, 0xfd65, 0xfd05,
+ 0xfda9, 0xff17, 0x006d, 0x0145, 0x01fc, 0x025e,
+ 0x0273, 0x0349, 0x04a3, 0x053b, 0x056c, 0x05d0,
+ 0x064a, 0x0762, 0x0888, 0x081c, 0x069b, 0x056b,
+ 0x051f, 0x060b, 0x071f, 0x0720, 0x06b5, 0x068d,
+ 0x06a2, 0x06cd, 0x0698, 0x0605, 0x0560, 0x053c,
+ 0x067b, 0x07c8, 0x06fc, 0x04ee, 0x037f, 0x0340,
+ 0x03fb, 0x0525, 0x069e, 0x07eb, 0x086c, 0x0938,
+ 0x0aa8, 0x0b66, 0x0b88, 0x0b7b, 0x0ada, 0x09d5,
+ 0x089b, 0x0757, 0x0633, 0x04d6, 0x0355, 0x01de,
+ 0x010e, 0x0153, 0x00c2, 0xff57, 0xffe3, 0x014a,
+ 0x0123, 0x0053, 0xfffc, 0x00c9, 0x01d6, 0x0149,
+ 0x00c1, 0x0091, 0xfeb5, 0xfd38, 0xfd17, 0xfc91,
+ 0xfcd0, 0xfd53, 0xfc2d, 0xfab7, 0xf95a, 0xf8bf,
+ 0xfa7a, 0xfc22, 0xfc9e, 0xfdb9, 0xfe54, 0xfe41,
+ 0xff1a, 0x0044, 0x01ae, 0x0378, 0x0444, 0x03e7,
+ 0x0339, 0x0306, 0x0381, 0x03b0, 0x036c, 0x0328,
+ 0x02e8, 0x027e, 0x00f8, 0xff42, 0xff0f, 0xfecb,
+ 0xfe2d, 0xfe7d, 0xfe4e, 0xfe75, 0x0026, 0x009b,
+ 0x0080, 0x01d8, 0x026e, 0x025f, 0x0302, 0x038a,
+ 0x04e0, 0x0624, 0x0514, 0x03ec, 0x03a1, 0x025a,
+ 0x016c, 0x0204, 0x0320, 0x0486, 0x0552, 0x04a6,
+ 0x0393, 0x02ce, 0x0227, 0x01ef, 0x027c, 0x0369,
+ 0x0417, 0x0482, 0x04f8, 0x05ba, 0x06b2, 0x06eb,
+ 0x0624, 0x057e, 0x04f9, 0x0425, 0x03aa, 0x036d,
+ 0x0300, 0x02dc, 0x02b7, 0x025e, 0x02c9, 0x037b,
+ 0x0365, 0x03a9, 0x0485, 0x0404, 0x02b9, 0x02cd,
+ 0x031b, 0x0237, 0x01b4, 0x0241, 0x02b0, 0x02f6,
+ 0x0373, 0x03d2, 0x0443, 0x053f, 0x0629, 0x05eb,
+ 0x04d2, 0x03de, 0x0312, 0x0229, 0x012b, 0x0079,
+ 0x00d8, 0x01d8, 0x0256, 0x0257, 0x0163, 0xfee1,
+ 0xfc36, 0xfa88, 0xf99a, 0xf95d, 0xf94e, 0xf8b0,
+ 0xf7b7, 0xf757, 0xf852, 0xf978, 0xf993, 0xfa4b,
+ 0xfc5b, 0xfdb4, 0xfdc8, 0xfd60, 0xfca8, 0xfc35,
+ 0xfc32, 0xfc1e, 0xfc48, 0xfd30, 0xfeb6, 0x0027,
+ 0x00eb, 0x0170, 0x020f, 0x02b0, 0x03c5, 0x0524,
+ 0x0610, 0x06a9, 0x06ac, 0x05c3, 0x052f, 0x05b4,
+ 0x067d, 0x06fe, 0x0777, 0x0823, 0x0899, 0x081d,
+ 0x06ce, 0x0544, 0x03e9, 0x02f5, 0x01ae, 0xffe4,
+ 0xff22, 0xff90, 0x0023, 0x012f, 0x022f, 0x0205,
+ 0x01b0, 0x01d4, 0x0209, 0x02ac, 0x035d, 0x039c,
+ 0x03a7, 0x02f9, 0x01e9, 0x0116, 0xffd8, 0xff92,
+ 0x0123, 0x01ab, 0x00d9, 0x009e, 0x0048, 0xffdf,
+ 0x004a, 0x011a, 0x0266, 0x0356, 0x0321, 0x035c,
+ 0x0401, 0x04c8, 0x06e8, 0x0845, 0x0775, 0x0700,
+ 0x070d, 0x0702, 0x07ef, 0x091d, 0x0aa4, 0x0cf7,
+ 0x0e04, 0x0e58, 0x0fdc, 0x110f, 0x1162, 0x1188,
+ 0x10d3, 0x0fd1, 0x0f06, 0x0d8e, 0x0ba2, 0x0978,
+ 0x0710, 0x05a7, 0x05d0, 0x0758, 0x09c8, 0x0b7f,
+ 0x0bce, 0x0b21, 0x0923, 0x0697, 0x04ef, 0x0423,
+ 0x041c, 0x0497, 0x046e, 0x03a4, 0x02e4, 0x022e,
+ 0x0204, 0x02bb, 0x0356, 0x02e8, 0x0193, 0x0020,
+ 0xfef8, 0xfdf2, 0xfd8d, 0xfe41, 0xff45, 0xffd9,
+ 0xffbe, 0xff06, 0xfea5, 0xfedb, 0xfea1, 0xfe05,
+ 0xfd58, 0xfbdb, 0xf9ad, 0xf798, 0xf603, 0xf5ab,
+ 0xf658, 0xf6c1, 0xf702, 0xf7df, 0xf95c, 0xfb29,
+ 0xfc72, 0xfcc5, 0xfca0, 0xfc1e, 0xfbcf, 0xfcf0,
+ 0xfeeb, 0x0030, 0x0088, 0x00b9, 0x0196, 0x02bc,
+ 0x02c7, 0x018e, 0x000e, 0xff09, 0xfe98, 0xfe27,
+ 0xfdda, 0xfe84, 0xffc9, 0x010e, 0x020b, 0x0203,
+ 0x015d, 0x0125, 0x00f7, 0x0077, 0xfff8, 0xff82,
+ 0xff6e, 0xfff4, 0x00d5, 0x022b, 0x0401, 0x0620,
+ 0x0813, 0x096e, 0x0ac3, 0x0bea, 0x0b56, 0x09a1,
+ 0x08b7, 0x0838, 0x0733, 0x05d6, 0x040e, 0x0231,
+ 0x0195, 0x02cb, 0x04cb, 0x0649, 0x06dc, 0x06ab,
+ 0x0601, 0x0540, 0x0462, 0x0376, 0x02de, 0x0267,
+ 0x020f, 0x0264, 0x032a, 0x042d, 0x059a, 0x063b,
+ 0x0510, 0x032c, 0x0181, 0x0010, 0xff2c, 0xfec6,
+ 0xfe58, 0xfdf9, 0xfdfa, 0xfe49, 0xff09, 0x003c,
+ 0x0139, 0x01df, 0x02d4, 0x03dd, 0x046e, 0x04bb,
+ 0x045c, 0x02f7, 0x01de, 0x01d7, 0x0225, 0x02a5,
+ 0x036e, 0x03fe, 0x048a, 0x054b, 0x054e, 0x041b,
+ 0x0303, 0x0347, 0x03f5, 0x038b, 0x0284, 0x01f2,
+ 0x01d7, 0x01f2, 0x01e5, 0x0192, 0x01c1, 0x0245,
+ 0x01e4, 0x00d3, 0x0023, 0x0004, 0x003d, 0x00d2,
+ 0x0211, 0x038d, 0x040d, 0x03b5, 0x0385, 0x031a,
+ 0x0233, 0x01a8, 0x0160, 0x0059, 0xfecc, 0xfe4c,
+ 0xff47, 0x0035, 0x006e, 0x0069, 0xffc7, 0xfe97,
+ 0xfd83, 0xfc1e, 0xfa9a, 0xf9d8, 0xf925, 0xf81f,
+ 0xf7db, 0xf868, 0xf8c8, 0xf8f8, 0xf9be, 0xfb0e,
+ 0xfbf2, 0xfc51, 0xfcb4, 0xfcd2, 0xfc41, 0xfb15,
+ 0xf98c, 0xf81d, 0xf6cb, 0xf5b1, 0xf5cd, 0xf6db,
+ 0xf763, 0xf740, 0xf6f0, 0xf6ac, 0xf6e4, 0xf74b,
+ 0xf777, 0xf821, 0xf979, 0xfa96, 0xfb0b, 0xfb2b,
+ 0xfb9a, 0xfcad, 0xfdf3, 0xff38, 0x00e1, 0x02fe,
+ 0x0531, 0x068e, 0x0629, 0x04ff, 0x0499, 0x04ed,
+ 0x060f, 0x07b4, 0x07d8, 0x06a5, 0x064b, 0x065a,
+ 0x060a, 0x0692, 0x0822, 0x0a46, 0x0c6b, 0x0cd3,
+ 0x0bc4, 0x0b82, 0x0bc1, 0x0ae6, 0x094e, 0x081c,
+ 0x077a, 0x0752, 0x0868, 0x0a3a, 0x0a4c, 0x08b3,
+ 0x076e, 0x0658, 0x05d3, 0x0711, 0x087a, 0x0899,
+ 0x0834, 0x07b7, 0x0757, 0x0724, 0x06ac, 0x064a,
+ 0x0663, 0x06b4, 0x06f9, 0x06a1, 0x05a7, 0x0474,
+ 0x02b9, 0x00ee, 0x001f, 0x0039, 0x0120, 0x0271,
+ 0x02e8, 0x024e, 0x0143, 0x0011, 0xfed8, 0xfd74,
+ 0xfc4d, 0xfbcc, 0xfaf3, 0xf9c7, 0xf9b2, 0xfa8d,
+ 0xfb63, 0xfbd0, 0xfbc2, 0xfc1e, 0xfd3f, 0xfde8,
+ 0xfdc7, 0xfd7f, 0xfd0e, 0xfc66, 0xfb8c, 0xfad1,
+ 0xfaea, 0xfb37, 0xfb08, 0xfb91, 0xfd46, 0xfedb,
+ 0xffb4, 0xffdd, 0xffaf, 0x0006, 0x00af, 0x0109,
+ 0x01a1, 0x0267, 0x027f, 0x023e, 0x0248, 0x0286,
+ 0x02b6, 0x0280, 0x021a, 0x022b, 0x02d3, 0x03cb,
+ 0x0431, 0x0334, 0x0209, 0x0210, 0x02b4, 0x0389,
+ 0x04e9, 0x063f, 0x067a, 0x053e, 0x0351, 0x0217,
+ 0x024c, 0x0380, 0x0479, 0x04c2, 0x0586, 0x0700,
+ 0x0814, 0x08fa, 0x09f8, 0x0a20, 0x0952, 0x07dd,
+ 0x0635, 0x05e3, 0x06ff, 0x07b4, 0x075f, 0x0683,
+ 0x059d, 0x0551, 0x0592, 0x05ab, 0x057f, 0x0572,
+ 0x0587, 0x0525, 0x03ef, 0x0248, 0x00ff, 0x00ea,
+ 0x0172, 0x0102, 0x003f, 0x0043, 0xfff3, 0xff7d,
+ 0x0044, 0x0153, 0x01d5, 0x020c, 0x017c, 0x00e0,
+ 0x00ca, 0xffe0, 0xff20, 0x009a, 0x02cf, 0x0447,
+ 0x0579, 0x0630, 0x068f, 0x06a1, 0x0569, 0x037a,
+ 0x020e, 0x00c1, 0xff6b, 0xfe7b, 0xfe25, 0xfe80,
+ 0xfefe, 0xff9e, 0x00f6, 0x021f, 0x028f, 0x0319,
+ 0x033b, 0x0276, 0x018b, 0x004b, 0xfe90, 0xfce7,
+ 0xfb29, 0xf9b9, 0xf953, 0xf9de, 0xfb88, 0xfdb7,
+ 0xfef6, 0xffb1, 0x008a, 0x00c3, 0x006f, 0xffe6,
+ 0xff45, 0xff8a, 0x0047, 0x0018, 0xffd4, 0x0021,
+ 0xffd5, 0xff2c, 0xff58, 0xffd1, 0xffec, 0x003b,
+ 0x0112, 0x0211, 0x0316, 0x0409, 0x0497, 0x04e7,
+ 0x0565, 0x05e0, 0x05e9, 0x0539, 0x03be, 0x01f2,
+ 0x0084, 0xffbc, 0xffac, 0x0007, 0x0066, 0x00d7,
+ 0x0107, 0x0056, 0xff48, 0xfe9c, 0xfe22, 0xfd99,
+ 0xfd3d, 0xfd95, 0xfec0, 0xffd8, 0x0027, 0xffdb,
+ 0xff2c, 0xfed5, 0xff7c, 0x0090, 0x01bc, 0x02e7,
+ 0x0336, 0x02d0, 0x0289, 0x021f, 0x0199, 0x019b,
+ 0x022a, 0x02e8, 0x030a, 0x022a, 0x0175, 0x01a5,
+ 0x0207, 0x0214, 0x01c4, 0x01a2, 0x0250, 0x03d1,
+ 0x0602, 0x0801, 0x08b8, 0x08f7, 0x0965, 0x0959,
+ 0x0994, 0x0ac5, 0x0bfe, 0x0d36, 0x0e49, 0x0e17,
+ 0x0d31, 0x0c9d, 0x0c00, 0x0b85, 0x0b53, 0x0a79,
+ 0x0951, 0x0937, 0x099c, 0x0935, 0x089f, 0x08bb,
+ 0x08ab, 0x07be, 0x06ac, 0x05e9, 0x0507, 0x03af,
+ 0x021d, 0x00b0, 0xff8a, 0xff3b, 0x005b, 0x0223,
+ 0x03a0, 0x04e8, 0x05e9, 0x0653, 0x0606, 0x04ca,
+ 0x02d3, 0x0091, 0xfe3d, 0xfc72, 0xfb6a, 0xfab4,
+ 0xfaa3, 0xfb7e, 0xfc9a, 0xfd9e, 0xfe56, 0xfe25,
+ 0xfd17, 0xfbfc, 0xfb68, 0xfb3d, 0xfb0a, 0xfafa,
+ 0xfb62, 0xfbfe, 0xfccf, 0xfe0f, 0xff27, 0xff7a,
+ 0xff53, 0xff3a, 0xff3e, 0xff2b, 0xff2f, 0xff9d,
+ 0xfff7, 0xff50, 0xfdc0, 0xfc56, 0xfc2a, 0xfda8,
+ 0xffc8, 0x00fa, 0x0143, 0x0147, 0x009a, 0xff4a,
+ 0xfe63, 0xfe30, 0xfebf, 0x0075, 0x02cc, 0x04fc,
+ 0x06b2, 0x06ff, 0x058d, 0x03cd, 0x028c, 0x0133,
+ 0xfff9, 0xffa7, 0xffcc, 0xffbe, 0x000f, 0x011b,
+ 0x0253, 0x03b7, 0x0544, 0x05fe, 0x0588, 0x045f,
+ 0x0301, 0x027c, 0x0314, 0x035f, 0x0330, 0x03ee,
+ 0x059d, 0x0734, 0x083d, 0x087a, 0x07be, 0x0612,
+ 0x03f2, 0x02a9, 0x02de, 0x038a, 0x03b4, 0x036d,
+ 0x02f6, 0x0296, 0x02b0, 0x038a, 0x04dd, 0x05cf,
+ 0x05de, 0x051c, 0x039b, 0x0228, 0x01dd, 0x0221,
+ 0x01dd, 0x019e, 0x023e, 0x0385, 0x04dd, 0x060e,
+ 0x0715, 0x0702, 0x04f6, 0x027f, 0x01be, 0x02b5,
+ 0x048c, 0x0632, 0x069e, 0x0628, 0x0576, 0x04c0,
+ 0x0462, 0x03c3, 0x0238, 0x00b3, 0x0012, 0x006a,
+ 0x0142, 0x0160, 0x0120, 0x01cf, 0x0231, 0x0156,
+ 0x00d9, 0x010c, 0x00f1, 0x00cb, 0x00f7, 0x0105,
+ 0x00b4, 0x0035, 0xffd9, 0xff9d, 0xff5e, 0xff1c,
+ 0xff12, 0xffc4, 0x0093, 0x0004, 0xfe73, 0xfd31,
+ 0xfc64, 0xfc04, 0xfbc6, 0xfb25, 0xfad7, 0xfb6a,
+ 0xfc5c, 0xfd8a, 0xfeab, 0xff57, 0xffec, 0x0034,
+ 0xffa6, 0xfec7, 0xfe02, 0xfd15, 0xfc09, 0xfb22,
+ 0xfac8, 0xfb39, 0xfbc2, 0xfb42, 0xf975, 0xf71c,
+ 0xf52a, 0xf475, 0xf567, 0xf70c, 0xf81c, 0xf8b0,
+ 0xf8df, 0xf7f0, 0xf641, 0xf525, 0xf52a, 0xf5d0,
+ 0xf68d, 0xf7c6, 0xf97b, 0xfa5f, 0xf9fc, 0xf90d,
+ 0xf835, 0xf862, 0xf9e0, 0xfbd0, 0xfdc1, 0xff0d,
+ 0xfeb8, 0xfd92, 0xfcf8, 0xfcd2, 0xfccc, 0xfd0f,
+ 0xfdca, 0xff23, 0x00f3, 0x02f0, 0x04ce, 0x062b,
+ 0x06d9, 0x06d8, 0x0657, 0x05d0, 0x05c6, 0x0690,
+ 0x076a, 0x0701, 0x05e8, 0x0582, 0x05b5, 0x0673,
+ 0x07a9, 0x0837, 0x0803, 0x0782, 0x064c, 0x0513,
+ 0x04ff, 0x0595, 0x063c, 0x06e6, 0x0765, 0x07e0,
+ 0x081f, 0x07ae, 0x0730, 0x0716, 0x06d8, 0x068a,
+ 0x0685, 0x069d, 0x0701, 0x07ab, 0x07cd, 0x0765,
+ 0x06fc, 0x063c, 0x055c, 0x055f, 0x05d7, 0x05ff,
+ 0x0645, 0x065f, 0x05c4, 0x0538, 0x04ba, 0x0380,
+ 0x0269, 0x02a6, 0x03f1, 0x0556, 0x05ee, 0x0580,
+ 0x0490, 0x0352, 0x01d1, 0x00a0, 0x0076, 0x01cd,
+ 0x042c, 0x0632, 0x075a, 0x07ca, 0x0708, 0x0538,
+ 0x0367, 0x01a9, 0xffd5, 0xfeeb, 0xff38, 0xff66,
+ 0xfefa, 0xfecb, 0xfed5, 0xfe44, 0xfd60, 0xfd31,
+ 0xfd9d, 0xfd9c, 0xfd0e, 0xfcd0, 0xfd11, 0xfd51,
+ 0xfdc8, 0xfee6, 0x0001, 0x0094, 0x0166, 0x02bd,
+ 0x0374, 0x02bc, 0x00f8, 0xff41, 0xfeb9, 0xff99,
+ 0x011e, 0x028b, 0x0370, 0x03aa, 0x034e, 0x02b0,
+ 0x02b6, 0x03c0, 0x0513, 0x0674, 0x07b2, 0x076a,
+ 0x0583, 0x03c1, 0x02d5, 0x0266, 0x02ad, 0x03e6,
+ 0x05a8, 0x0719, 0x078f, 0x0724, 0x0648, 0x0553,
+ 0x04c3, 0x0505, 0x05ae, 0x05cb, 0x05ad, 0x061d,
+ 0x05ff, 0x0490, 0x0341, 0x0256, 0x00e0, 0xff8d,
+ 0xfeaf, 0xfd8d, 0xfca1, 0xfc7b, 0xfc8e, 0xfc93,
+ 0xfd2e, 0xff14, 0x0185, 0x02fd, 0x0345, 0x0283,
+ 0x00a0, 0xfe93, 0xfcf3, 0xfbc9, 0xfc0a, 0xfdbd,
+ 0xffcf, 0x0216, 0x03ff, 0x0436, 0x02e4, 0x0153,
+ 0x0076, 0x0048, 0x0032, 0x0033, 0x0034, 0xff93,
+ 0xfea2, 0xfe04, 0xfdc0, 0xfe5e, 0xfff0, 0x011a,
+ 0x014b, 0x0122, 0x00ab, 0xffb7, 0xfecd, 0xfe68,
+ 0xfe3f, 0xfe32, 0xfe98, 0xff24, 0xff24, 0xfea2,
+ 0xfe37, 0xfe35, 0xfe21, 0xfd8b, 0xfd34, 0xfdcd,
+ 0xfec6, 0xff91, 0x0026, 0x006a, 0x008d, 0x00f8,
+ 0x01b5, 0x028c, 0x0359, 0x03ff, 0x044c, 0x044d,
+ 0x042d, 0x0377, 0x01ed, 0x0091, 0x004d, 0x0118,
+ 0x0262, 0x036d, 0x043a, 0x051a, 0x0534, 0x03ef,
+ 0x0230, 0x00eb, 0x0077, 0x00a8, 0x0152, 0x0299,
+ 0x03b8, 0x03c4, 0x035e, 0x02cc, 0x019d, 0x0082,
+ 0xffec, 0xff91, 0xfffe, 0x0176, 0x038b, 0x05c6,
+ 0x0726, 0x0754, 0x06f6, 0x05e3, 0x0453, 0x037a,
+ 0x0339, 0x02fa, 0x0331, 0x03c3, 0x03d4, 0x0335,
+ 0x026d, 0x01cf, 0x00ef, 0xffb8, 0xfef4, 0xfec6,
+ 0xfeb7, 0xff1b, 0x0011, 0x00cb, 0x00de, 0x0092,
+ 0x0029, 0xff8a, 0xfe81, 0xfd5a, 0xfc92, 0xfc53,
+ 0xfcad, 0xfda9, 0xff22, 0x00a7, 0x0183, 0x0184,
+ 0x00fa, 0x0001, 0xff16, 0xff02, 0xff56, 0xfef9,
+ 0xfdf5, 0xfd29, 0xfce1, 0xfc87, 0xfbcb, 0xfb38,
+ 0xfb1e, 0xfb5e, 0xfc51, 0xfe1a, 0xffe3, 0x00d4,
+ 0x0123, 0x01cc, 0x0315, 0x03dc, 0x035c, 0x023e,
+ 0x0128, 0x0000, 0xff1d, 0xff94, 0x0179, 0x034e,
+ 0x041d, 0x043f, 0x0414, 0x03b7, 0x0337, 0x02be,
+ 0x02dc, 0x0360, 0x0384, 0x03d8, 0x04e2, 0x05ac,
+ 0x05de, 0x05e7, 0x05dd, 0x0631, 0x06be, 0x0665,
+ 0x0501, 0x0352, 0x01f8, 0x0175, 0x01dd, 0x032b,
+ 0x04f1, 0x05af, 0x0522, 0x04dc, 0x0524, 0x0516,
+ 0x0491, 0x03a4, 0x0259, 0x0115, 0x0049, 0x000d,
+ 0xffe1, 0xff80, 0xff5a, 0xff47, 0xff14, 0xffad,
+ 0x016f, 0x036c, 0x04d0, 0x0576, 0x05b3, 0x0586,
+ 0x045c, 0x025e, 0x0027, 0xfe17, 0xfd19, 0xfdb2,
+ 0xff36, 0x0126, 0x02ee, 0x039a, 0x0354, 0x02a7,
+ 0x01a8, 0x00f7, 0x0119, 0x01bf, 0x02db, 0x045d,
+ 0x05a3, 0x0640, 0x0629, 0x055f, 0x042b, 0x030f,
+ 0x0277, 0x024d, 0x022a, 0x0236, 0x02db, 0x03dd,
+ 0x04ea, 0x05d3, 0x0632, 0x0634, 0x0652, 0x05ee,
+ 0x047c, 0x02bc, 0x017a, 0x0102, 0x0148, 0x020f,
+ 0x0362, 0x049e, 0x04a5, 0x046c, 0x0550, 0x0641,
+ 0x0694, 0x0710, 0x0760, 0x06ff, 0x0692, 0x0685,
+ 0x068f, 0x061f, 0x0575, 0x05ca, 0x06e2, 0x077f,
+ 0x07c1, 0x0793, 0x0642, 0x046f, 0x0301, 0x0234,
+ 0x0239, 0x02be, 0x034a, 0x03ee, 0x04e3, 0x0682,
+ 0x08ab, 0x0aac, 0x0c12, 0x0c2e, 0x0abd, 0x08f8,
+ 0x07a6, 0x06a1, 0x0606, 0x0564, 0x0479, 0x0429,
+ 0x04ab, 0x057d, 0x0621, 0x05d3, 0x04c9, 0x03b6,
+ 0x0269, 0x0144, 0x00a6, 0xffa9, 0xfe7b, 0xfe0b,
+ 0xfdd4, 0xfd5b, 0xfcbc, 0xfbd4, 0xfb3e, 0xfb9d,
+ 0xfc44, 0xfc8e, 0xfcb4, 0xfd1d, 0xfdc2, 0xfe0a,
+ 0xfddf, 0xfdfa, 0xfe45, 0xfdcb, 0xfc60, 0xfaba,
+ 0xf965, 0xf876, 0xf7f0, 0xf7e8, 0xf84e, 0xf8f6,
+ 0xf98d, 0xf98a, 0xf8d5, 0xf7c8, 0xf67b, 0xf50f,
+ 0xf3fb, 0xf36c, 0xf327, 0xf342, 0xf43a, 0xf5d9,
+ 0xf714, 0xf7c5, 0xf8b1, 0xf9a1, 0xf9db, 0xf94a,
+ 0xf7fa, 0xf663, 0xf5ca, 0xf67e, 0xf788, 0xf888,
+ 0xf9b1, 0xfa98, 0xfad8, 0xfac5, 0xfacb, 0xfb39,
+ 0xfc4f, 0xfdba, 0xff11, 0x009c, 0x028b, 0x0456,
+ 0x056b, 0x0599, 0x051a, 0x0479, 0x0463, 0x0553,
+ 0x06ca, 0x07a4, 0x07c3, 0x0782, 0x0687, 0x0510,
+ 0x040b, 0x03ab, 0x0416, 0x05a3, 0x07c2, 0x09e9,
+ 0x0c2b, 0x0de9, 0x0e59, 0x0deb, 0x0d4a, 0x0c73,
+ 0x0b85, 0x0afb, 0x0b3b, 0x0c35, 0x0d32, 0x0dac,
+ 0x0ddb, 0x0d89, 0x0c39, 0x0a62, 0x08a6, 0x073a,
+ 0x06ba, 0x0775, 0x08d5, 0x0a82, 0x0c76, 0x0e15,
+ 0x0e78, 0x0d60, 0x0b64, 0x0912, 0x06b9, 0x04d6,
+ 0x0384, 0x0255, 0x0174, 0x0144, 0x016f, 0x0198,
+ 0x01cf, 0x021a, 0x0224, 0x01a0, 0x0119, 0x0148,
+ 0x01bf, 0x01c5, 0x0158, 0x0082, 0xff5a, 0xfe56,
+ 0xfdba, 0xfd49, 0xfcd6, 0xfcdb, 0xfd8e, 0xfdf0,
+ 0xfdb3, 0xfded, 0xfe7b, 0xfe8c, 0xfecc, 0xff4a,
+ 0xff1c, 0xfed5, 0xfeea, 0xfe78, 0xfdb2, 0xfd55,
+ 0xfd08, 0xfcd6, 0xfd28, 0xfd7c, 0xfd66, 0xfd21,
+ 0xfcba, 0xfbfc, 0xfb1d, 0xfabf, 0xfb01, 0xfb8d,
+ 0xfc9f, 0xfe4b, 0xffe3, 0x0113, 0x01d7, 0x0229,
+ 0x0270, 0x02c2, 0x02f5, 0x033f, 0x0373, 0x037c,
+ 0x03f7, 0x04c9, 0x0551, 0x0596, 0x05d7, 0x0691,
+ 0x0814, 0x0989, 0x0a24, 0x0a0f, 0x096c, 0x0857,
+ 0x074f, 0x0667, 0x04f1, 0x02ee, 0x01c2, 0x0212,
+ 0x02c9, 0x0328, 0x0347, 0x0329, 0x02f0, 0x02ab,
+ 0x024c, 0x0243, 0x0298, 0x0268, 0x0143, 0xffcf,
+ 0xfee3, 0xfe67, 0xfdbe, 0xfd12, 0xfcd9, 0xfcfd,
+ 0xfd5b, 0xfdac, 0xfd93, 0xfd3a, 0xfd09, 0xfd3b,
+ 0xfd9f, 0xfdfd, 0xfed2, 0x004e, 0x01b0, 0x027e,
+ 0x027e, 0x0162, 0xffc9, 0xfeac, 0xfe7b, 0xff3f,
+ 0x007f, 0x01b2, 0x02b4, 0x0342, 0x034a, 0x031c,
+ 0x02df, 0x02b8, 0x02b4, 0x027c, 0x0213, 0x01de,
+ 0x01f3, 0x0223, 0x0265, 0x02cf, 0x036c, 0x0456,
+ 0x0575, 0x0620, 0x0627, 0x0646, 0x06af, 0x0720,
+ 0x07be, 0x083e, 0x0810, 0x0760, 0x06aa, 0x0659,
+ 0x06ad, 0x0764, 0x07fc, 0x0827, 0x0818, 0x0836,
+ 0x0823, 0x0740, 0x05ed, 0x04ed, 0x046a, 0x0436,
+ 0x03e8, 0x02dd, 0x00e5, 0xfeab, 0xfce8, 0xfbd8,
+ 0xfb99, 0xfbe5, 0xfc20, 0xfc88, 0xfd94, 0xfea7,
+ 0xff0e, 0xfe80, 0xfced, 0xfb3d, 0xfa3e, 0xf968,
+ 0xf886, 0xf811, 0xf77d, 0xf601, 0xf40b, 0xf2a3,
+ 0xf26f, 0xf352, 0xf49c, 0xf5bd, 0xf681, 0xf713,
+ 0xf7e3, 0xf8d3, 0xf943, 0xf938, 0xf91e, 0xf923,
+ 0xf982, 0xfa3d, 0xfaec, 0xfb57, 0xfb37, 0xfa5e,
+ 0xf98e, 0xf9ad, 0xfaf5, 0xfd30, 0xff9d, 0x01a3,
+ 0x0363, 0x0497, 0x04d1, 0x048c, 0x0416, 0x030b,
+ 0x01a6, 0x00b3, 0x007b, 0x00c5, 0x0114, 0x010e,
+ 0x013e, 0x0245, 0x0372, 0x03f2, 0x041c, 0x0475,
+ 0x052e, 0x0621, 0x0647, 0x054e, 0x0461, 0x0409,
+ 0x0425, 0x051d, 0x069b, 0x0758, 0x06cd, 0x053d,
+ 0x0339, 0x01ae, 0x0125, 0x0129, 0x014f, 0x01e4,
+ 0x02b5, 0x0307, 0x02c0, 0x01d7, 0x006a, 0xffa9,
+ 0x0051, 0x01d2, 0x034d, 0x03f2, 0x03f0, 0x0446,
+ 0x04dc, 0x0572, 0x0636, 0x0690, 0x069c, 0x073b,
+ 0x07da, 0x07ad, 0x06ec, 0x05d7, 0x04d2, 0x03e9,
+ 0x02c3, 0x01f2, 0x01c9, 0x01aa, 0x0192, 0x01b5,
+ 0x0213, 0x02fd, 0x03e7, 0x03fb, 0x03d7, 0x0409,
+ 0x0418, 0x0435, 0x04c4, 0x052b, 0x052e, 0x0559,
+ 0x0590, 0x05bb, 0x0683, 0x07c1, 0x0894, 0x08cf,
+ 0x0869, 0x0778, 0x06c5, 0x067a, 0x05da, 0x0523,
+ 0x0577, 0x06c3, 0x0801, 0x090a, 0x09f2, 0x0a22,
+ 0x09aa, 0x0919, 0x08ad, 0x08dd, 0x0984, 0x09c4,
+ 0x09bf, 0x09bd, 0x092e, 0x0832, 0x079d, 0x07ec,
+ 0x08bd, 0x08ed, 0x0838, 0x074d, 0x065f, 0x05cf,
+ 0x0604, 0x0639, 0x05bd, 0x048a, 0x0297, 0x006c,
+ 0xfed3, 0xfe24, 0xfe51, 0xfed3, 0xff62, 0xfffb,
+ 0x0045, 0x0071, 0x00e1, 0x0151, 0x01af, 0x01c0,
+ 0x00f5, 0xffff, 0xffc2, 0xfff3, 0x0064, 0x00f5,
+ 0x00cb, 0xffae, 0xfe9e, 0xfe72, 0xfefc, 0xff9d,
+ 0xfff1, 0x000d, 0x0036, 0x004b, 0x0035, 0x0037,
+ 0x0020, 0xfff6, 0x0093, 0x01f3, 0x0337, 0x042b,
+ 0x04b2, 0x04f3, 0x05b7, 0x06c9, 0x0727, 0x0697,
+ 0x05be, 0x0550, 0x04ee, 0x03b5, 0x020c, 0x00e8,
+ 0x009f, 0x0139, 0x0215, 0x0272, 0x0290, 0x02e2,
+ 0x0357, 0x036e, 0x02bb, 0x01be, 0x0127, 0x00e6,
+ 0x00da, 0x0129, 0x01bc, 0x01df, 0x0120, 0x0061,
+ 0x004a, 0x0032, 0xfffb, 0x0019, 0x0049, 0x0016,
+ 0xff65, 0xfe80, 0xfdbb, 0xfcd4, 0xfc02, 0xfc0d,
+ 0xfce6, 0xfe27, 0xff32, 0xff1c, 0xfe54, 0xfde5,
+ 0xfdae, 0xfd82, 0xfdd9, 0xff12, 0x0097, 0x010a,
+ 0x0022, 0xfeb6, 0xfd1d, 0xfbd8, 0xfb57, 0xfb42,
+ 0xfbad, 0xfc9e, 0xfd69, 0xfdbf, 0xfd34, 0xfbbe,
+ 0xfa84, 0xf9d5, 0xf96a, 0xf999, 0xf987, 0xf85a,
+ 0xf709, 0xf5e6, 0xf49a, 0xf406, 0xf47e, 0xf539,
+ 0xf61a, 0xf765, 0xf92b, 0xfb3b, 0xfd05, 0xfe84,
+ 0xfff3, 0x00ba, 0x00b2, 0x00a7, 0x0079, 0xffa3,
+ 0xfeae, 0xfdce, 0xfcd7, 0xfc5c, 0xfc7d, 0xfd1a,
+ 0xfee5, 0x0162, 0x02d7, 0x0318, 0x032d, 0x0365,
+ 0x0358, 0x02f5, 0x02fd, 0x03c7, 0x04ed, 0x067e,
+ 0x07fc, 0x0879, 0x08a8, 0x08e5, 0x0831, 0x0736,
+ 0x0738, 0x07b0, 0x0829, 0x08bf, 0x0928, 0x0970,
+ 0x099b, 0x094d, 0x08a5, 0x07f6, 0x0766, 0x0746,
+ 0x0790, 0x0797, 0x06a1, 0x04b9, 0x02c6, 0x0154,
+ 0x0066, 0x0078, 0x01af, 0x0304, 0x03c0, 0x0479,
+ 0x05d9, 0x078c, 0x08f7, 0x0a20, 0x0b07, 0x0ad4,
+ 0x08d4, 0x05c7, 0x0343, 0x0207, 0x01b4, 0x01f5,
+ 0x027a, 0x0286, 0x01bd, 0x00a5, 0x0013, 0x0088,
+ 0x01d4, 0x0395, 0x0598, 0x0775, 0x08d8, 0x0965,
+ 0x087e, 0x06cd, 0x05ba, 0x04c9, 0x031c, 0x0191,
+ 0x00ec, 0x00ce, 0x00e1, 0x0127, 0x01c3, 0x027f,
+ 0x02ba, 0x0265, 0x0209, 0x01e2, 0x016f, 0xffd9,
+ 0xfd19, 0xf9fe, 0xf72d, 0xf54b, 0xf4ad, 0xf4bf,
+ 0xf53e, 0xf683, 0xf86d, 0xfa72, 0xfbf4, 0xfcbb,
+ 0xfd67, 0xfe27, 0xfe73, 0xfeb5, 0xff96, 0x00b3,
+ 0x01c0, 0x0294, 0x0271, 0x017a, 0x00d9, 0x00da,
+ 0x0157, 0x024d, 0x02cc, 0x0260, 0x0241, 0x02d2,
+ 0x0383, 0x048b, 0x05b6, 0x065d, 0x06aa, 0x06ce,
+ 0x0713, 0x080d, 0x096d, 0x0aa9, 0x0b39, 0x0a30,
+ 0x0839, 0x0710, 0x06d6, 0x06ea, 0x072e, 0x0751,
+ 0x06fb, 0x0618, 0x050c, 0x04b2, 0x0537, 0x05cf,
+ 0x05ac, 0x04e6, 0x0473, 0x0489, 0x0459, 0x03ab,
+ 0x02a9, 0x0190, 0x011f, 0x0156, 0x016f, 0x0154,
+ 0x0152, 0x0173, 0x014e, 0x00a3, 0x004c, 0x00e2,
+ 0x01a6, 0x0210, 0x01cd, 0x0076, 0xfeff, 0xfe72,
+ 0xfe1f, 0xfd2f, 0xfbfb, 0xfae0, 0xf96b, 0xf7c3,
+ 0xf761, 0xf8c2, 0xfa7d, 0xfb68, 0xfb32, 0xfa16,
+ 0xf925, 0xf90f, 0xf96d, 0xf9ef, 0xfab1, 0xfb86,
+ 0xfbe2, 0xfb72, 0xfac8, 0xfab4, 0xfb21, 0xfb5f,
+ 0xfb42, 0xfb61, 0xfbf0, 0xfc99, 0xfdca, 0xffcb,
+ 0x015f, 0x01b5, 0x0174, 0x0124, 0x00ea, 0x00d9,
+ 0x0079, 0xff6b, 0xfe19, 0xfd10, 0xfcb0, 0xfd2c,
+ 0xfe1a, 0xff10, 0x0046, 0x017e, 0x020a, 0x023e,
+ 0x0285, 0x026f, 0x0223, 0x020d, 0x01a7, 0x00dc,
+ 0x0021, 0xff46, 0xfe8b, 0xfedc, 0xfff6, 0x00a7,
+ 0x008e, 0x0013, 0xff80, 0xfeea, 0xfe78, 0xfe4c,
+ 0xfe80, 0xff22, 0xfffd, 0x00d3, 0x01c7, 0x02b9,
+ 0x02d8, 0x019a, 0xffaf, 0xfe21, 0xfd59, 0xfd51,
+ 0xfdcb, 0xfe71, 0xff14, 0xff4a, 0xfeae, 0xfdc8,
+ 0xfd37, 0xfcd8, 0xfc5f, 0xfb9d, 0xfac4, 0xfa65,
+ 0xfaaa, 0xfb67, 0xfc5e, 0xfcfb, 0xfd1e, 0xfd46,
+ 0xfd9d, 0xfe12, 0xfea1, 0xff3d, 0xffd8, 0x0069,
+ 0x0123, 0x01ef, 0x01fd, 0x0146, 0x00a9, 0x0032,
+ 0xffcd, 0x001a, 0x013e, 0x02c1, 0x0446, 0x0537,
+ 0x0522, 0x0483, 0x0456, 0x04ea, 0x05e7, 0x0713,
+ 0x0805, 0x0854, 0x085c, 0x0860, 0x0821, 0x07c2,
+ 0x077c, 0x073b, 0x0711, 0x0737, 0x0805, 0x094a,
+ 0x0a21, 0x0a65, 0x0aa8, 0x0ae9, 0x0b08, 0x0b20,
+ 0x0b31, 0x0b7b, 0x0c2a, 0x0cba, 0x0c7e, 0x0b82,
+ 0x0a73, 0x097e, 0x0836, 0x069e, 0x04f7, 0x0375,
+ 0x02cb, 0x038d, 0x0559, 0x072a, 0x07fa, 0x078c,
+ 0x06b0, 0x0650, 0x0698, 0x06fd, 0x0720, 0x0749,
+ 0x07a0, 0x07e2, 0x07dd, 0x0772, 0x06a0, 0x0561,
+ 0x03af, 0x022c, 0x0190, 0x016b, 0x00fc, 0x008c,
+ 0x00ca, 0x01cd, 0x0335, 0x0464, 0x04cf, 0x04c1,
+ 0x04b1, 0x045e, 0x03e3, 0x03c6, 0x03bf, 0x0390,
+ 0x037b, 0x0370, 0x03a8, 0x044f, 0x04a1, 0x0431,
+ 0x0360, 0x02c6, 0x02ef, 0x036b, 0x0316, 0x01a9,
+ 0xffb2, 0xfe07, 0xfd4e, 0xfd5a, 0xfd90, 0xfd44,
+ 0xfc74, 0xfc5e, 0xfd7a, 0xfec6, 0xfff4, 0x0133,
+ 0x0227, 0x02b9, 0x0322, 0x0365, 0x0383, 0x0356,
+ 0x02aa, 0x01b1, 0x0117, 0x0146, 0x01a6, 0x0160,
+ 0x0083, 0xffd1, 0x0001, 0x00fc, 0x0210, 0x030e,
+ 0x03d2, 0x03e1, 0x0343, 0x026a, 0x01cf, 0x0217,
+ 0x035e, 0x04c2, 0x052a, 0x049c, 0x043e, 0x04b5,
+ 0x05d6, 0x0728, 0x07d4, 0x07cb, 0x078f, 0x06e0,
+ 0x0617, 0x05d0, 0x0542, 0x0427, 0x031f, 0x025c,
+ 0x026a, 0x0353, 0x03fe, 0x0411, 0x03b6, 0x0341,
+ 0x0339, 0x0347, 0x0351, 0x03b8, 0x03fe, 0x0457,
+ 0x04fd, 0x046c, 0x027d, 0x00e0, 0x000d, 0xffc4,
+ 0xffff, 0x0071, 0x00d0, 0x00fe, 0x014f, 0x01be,
+ 0x019a, 0x0128, 0x00d8, 0x0043, 0xffc5, 0xffcc,
+ 0x0024, 0x00d9, 0x0133, 0x00a0, 0xffee, 0xff3d,
+ 0xfe69, 0xfdc6, 0xfcef, 0xfc36, 0xfc67, 0xfcb9,
+ 0xfcb9, 0xfcd1, 0xfcdc, 0xfcf5, 0xfd20, 0xfcfe,
+ 0xfca2, 0xfc0a, 0xfb73, 0xfb38, 0xfa97, 0xf979,
+ 0xf8b1, 0xf800, 0xf772, 0xf757, 0xf716, 0xf70e,
+ 0xf7fd, 0xf917, 0xf9b2, 0xf9d6, 0xf99b, 0xf993,
+ 0xfa07, 0xfa74, 0xfa45, 0xf920, 0xf758, 0xf5f7,
+ 0xf5a1, 0xf612, 0xf6ce, 0xf7eb, 0xf976, 0xfadc,
+ 0xfbeb, 0xfca8, 0xfcc7, 0xfca7, 0xfca5, 0xfc4d,
+ 0xfbd9, 0xfbe5, 0xfc53, 0xfcfe, 0xfdd3, 0xfea0,
+ 0xff49, 0xffa7, 0x0008, 0x00c4, 0x016b, 0x01e8,
+ 0x0231, 0x01b5, 0x0110, 0x0177, 0x02b5, 0x0400,
+ 0x04e8, 0x05a6, 0x06cc, 0x07d5, 0x083c, 0x08d3,
+ 0x09b6, 0x0a4f, 0x0ace, 0x0acb, 0x0977, 0x0789,
+ 0x0650, 0x065f, 0x076c, 0x0854, 0x085f, 0x085e,
+ 0x092d, 0x0a0c, 0x09ed, 0x0929, 0x0863, 0x0788,
+ 0x06ed, 0x071d, 0x07c3, 0x082d, 0x0802, 0x077e,
+ 0x071b, 0x06c1, 0x061c, 0x052d, 0x040a, 0x0328,
+ 0x0309, 0x0384, 0x047e, 0x05b3, 0x0626, 0x05b8,
+ 0x0585, 0x05d6, 0x05e2, 0x056d, 0x052f, 0x0581,
+ 0x05f3, 0x064a, 0x0644, 0x0579, 0x044b, 0x032c,
+ 0x021a, 0x0187, 0x0198, 0x01b7, 0x01ae, 0x0187,
+ 0x015b, 0x0169, 0x0196, 0x01b7, 0x0196, 0x00f3,
+ 0x0034, 0xffbd, 0xff6d, 0xff7f, 0xffdc, 0x0038,
+ 0x00ce, 0x011c, 0x0081, 0xff9b, 0xfed5, 0xfe17,
+ 0xfd24, 0xfb9c, 0xfa9b, 0xfb78, 0xfd47, 0xfef7,
+ 0x0094, 0x01c5, 0x027f, 0x0309, 0x0309, 0x029d,
+ 0x024c, 0x0215, 0x01f2, 0x01df, 0x01c2, 0x019a,
+ 0x015a, 0x011e, 0x00ff, 0x00d4, 0x00ce, 0x015e,
+ 0x027e, 0x03a0, 0x03e1, 0x032b, 0x02a6, 0x02d1,
+ 0x02ea, 0x0286, 0x0191, 0xffa9, 0xfd2a, 0xfb64,
+ 0xfadd, 0xfb1e, 0xfbd5, 0xfc8b, 0xfcb6, 0xfcb6,
+ 0xfcfb, 0xfd1b, 0xfcc3, 0xfc1f, 0xfba0, 0xfbd1,
+ 0xfcb0, 0xfe0b, 0xffc8, 0x0132, 0x01e4, 0x024c,
+ 0x022b, 0x00f3, 0xffb0, 0xffba, 0x00ab, 0x0163,
+ 0x019e, 0x018f, 0x0158, 0x0134, 0x011f, 0x0100,
+ 0x00fa, 0x00ec, 0x0095, 0x0045, 0x004e, 0x009a,
+ 0x00f6, 0x013e, 0x0122, 0x0062, 0xffbd, 0x0001,
+ 0x0059, 0x0029, 0x0044, 0x0086, 0x0070, 0x009e,
+ 0x00f4, 0x00e7, 0x00bc, 0x003c, 0xff2c, 0xfe64,
+ 0xfe8a, 0xff54, 0x0008, 0x0004, 0xff32, 0xfdff,
+ 0xfd2f, 0xfd0d, 0xfce9, 0xfc88, 0xfc47, 0xfc29,
+ 0xfc7f, 0xfda9, 0xff4c, 0x00d7, 0x01dc, 0x025c,
+ 0x02a4, 0x027c, 0x01fa, 0x0193, 0x015b, 0x01bf,
+ 0x02ae, 0x0303, 0x0292, 0x020c, 0x01d5, 0x021b,
+ 0x0234, 0x01af, 0x0161, 0x01a9, 0x0287, 0x03f8,
+ 0x049f, 0x039c, 0x0215, 0x0125, 0x012b, 0x01de,
+ 0x0245, 0x01d1, 0x00be, 0x0003, 0x0085, 0x01b1,
+ 0x0279, 0x029a, 0x026d, 0x02d6, 0x03c5, 0x03eb,
+ 0x030f, 0x01b7, 0x0039, 0xff66, 0xff4e, 0xff58,
+ 0xffd7, 0x00a8, 0x00c6, 0x0032, 0xffd9, 0x003d,
+ 0x0101, 0x018d, 0x020d, 0x02c4, 0x0383, 0x0473,
+ 0x056e, 0x0554, 0x03c2, 0x021d, 0x018e, 0x01c1,
+ 0x0285, 0x0399, 0x039e, 0x029e, 0x0201, 0x01a7,
+ 0x016c, 0x01f0, 0x02aa, 0x033d, 0x03e2, 0x042d,
+ 0x0449, 0x0484, 0x047e, 0x0458, 0x03f3, 0x02f1,
+ 0x01be, 0x0082, 0xff70, 0xff09, 0xfecb, 0xfeab,
+ 0xff4e, 0x0014, 0x0092, 0x014e, 0x0221, 0x02c2,
+ 0x0330, 0x038d, 0x0440, 0x04fa, 0x0512, 0x04ba,
+ 0x045f, 0x0444, 0x042c, 0x0364, 0x0236, 0x019e,
+ 0x01b0, 0x01fc, 0x025c, 0x02fb, 0x03a3, 0x03a3,
+ 0x030f, 0x024b, 0x012d, 0x0000, 0xff40, 0xfebc,
+ 0xfe8d, 0xfef4, 0xffde, 0x010f, 0x01e8, 0x0226,
+ 0x025e, 0x02e0, 0x039f, 0x0470, 0x04d1, 0x04a4,
+ 0x0457, 0x043a, 0x0445, 0x0439, 0x03fa, 0x03a4,
+ 0x0397, 0x0466, 0x059b, 0x0671, 0x076e, 0x089a,
+ 0x0924, 0x0981, 0x0a14, 0x0a29, 0x09be, 0x0945,
+ 0x08f7, 0x08ec, 0x08b4, 0x0817, 0x0749, 0x0640,
+ 0x0579, 0x059c, 0x0640, 0x0691, 0x0631, 0x058b,
+ 0x0563, 0x059e, 0x05e4, 0x068a, 0x077e, 0x081f,
+ 0x0803, 0x06e0, 0x050d, 0x03bf, 0x037d, 0x03a8,
+ 0x03e7, 0x0464, 0x04d5, 0x0535, 0x05e0, 0x05fa,
+ 0x04ba, 0x0349, 0x02d6, 0x0383, 0x0535, 0x06f4,
+ 0x07c0, 0x07e2, 0x07d1, 0x07c3, 0x0819, 0x089d,
+ 0x0882, 0x0741, 0x0512, 0x02f8, 0x0206, 0x0272,
+ 0x035e, 0x0394, 0x031e, 0x032b, 0x0416, 0x04db,
+ 0x04b3, 0x0424, 0x03b6, 0x02f1, 0x0188, 0xffcd,
+ 0xfe50, 0xfdfb, 0xfec9, 0xff81, 0xffc3, 0xffa5,
+ 0xfed8, 0xfdd7, 0xfd1b, 0xfc57, 0xfb97, 0xfb0f,
+ 0xfae1, 0xfb07, 0xfaba, 0xf9c9, 0xf92c, 0xf922,
+ 0xf94a, 0xf99d, 0xfa3f, 0xfb49, 0xfbfb, 0xfb4f,
+ 0xf9be, 0xf84c, 0xf74d, 0xf710, 0xf7af, 0xf8ca,
+ 0xf9c3, 0xfa0e, 0xfa10, 0xfa71, 0xfacd, 0xfab9,
+ 0xfa58, 0xf9ab, 0xf915, 0xf94a, 0xfa7b, 0xfc4c,
+ 0xfdac, 0xfd9a, 0xfcc6, 0xfc86, 0xfcf7, 0xfd9d,
+ 0xfded, 0xfd5e, 0xfc6e, 0xfc02, 0xfbb9, 0xfb00,
+ 0xfa74, 0xfad9, 0xfc19, 0xfd6c, 0xfe1c, 0xfe92,
+ 0xffab, 0x0146, 0x0287, 0x02cb, 0x0250, 0x01f9,
+ 0x01ff, 0x022c, 0x029f, 0x02d1, 0x026a, 0x029e,
+ 0x03f4, 0x0589, 0x0733, 0x0903, 0x0a2e, 0x0a6e,
+ 0x09e7, 0x0870, 0x06b9, 0x05d8, 0x059c, 0x05c0,
+ 0x0690, 0x074c, 0x0741, 0x074a, 0x079d, 0x077f,
+ 0x0726, 0x06c3, 0x0611, 0x0574, 0x0558, 0x05ca,
+ 0x0691, 0x0705, 0x0720, 0x071a, 0x0653, 0x0511,
+ 0x0451, 0x03c0, 0x02fe, 0x0247, 0x012a, 0xff9e,
+ 0xfea1, 0xfe98, 0xfeda, 0xfe8f, 0xfd9c, 0xfcbe,
+ 0xfc9e, 0xfd5d, 0xfec3, 0x003f, 0x0152, 0x01d6,
+ 0x01bc, 0x00f5, 0xffdc, 0xff4d, 0xff8f, 0xffe8,
+ 0x0023, 0x00a9, 0x0151, 0x01fd, 0x02b2, 0x02e8,
+ 0x02b9, 0x02d1, 0x02d2, 0x0273, 0x0266, 0x027a,
+ 0x01fd, 0x018e, 0x01a9, 0x01c5, 0x01c7, 0x01ef,
+ 0x0217, 0x0252, 0x02d9, 0x038a, 0x0421, 0x0480,
+ 0x04d4, 0x0505, 0x0484, 0x038d, 0x02e7, 0x026d,
+ 0x021c, 0x026f, 0x02ed, 0x02e5, 0x026c, 0x015d,
+ 0xffaa, 0xfe22, 0xfd74, 0xfd7d, 0xfde9, 0xfe6b,
+ 0xfe8f, 0xfe57, 0xfe81, 0xff25, 0xff84, 0xff75,
+ 0xff18, 0xfe7b, 0xfe08, 0xfdb0, 0xfced, 0xfc16,
+ 0xfbb9, 0xfbf9, 0xfcdc, 0xfde1, 0xfe60, 0xfe4c,
+ 0xfdcb, 0xfd04, 0xfc08, 0xfb09, 0xfac2, 0xfb75,
+ 0xfc21, 0xfc07, 0xfb9b, 0xfbad, 0xfc61, 0xfd11,
+ 0xfd49, 0xfd2b, 0xfce2, 0xfcaf, 0xfcdc, 0xfd53,
+ 0xfdcf, 0xfdef, 0xfd2b, 0xfb58, 0xf90a, 0xf783,
+ 0xf7c7, 0xf94c, 0xfac3, 0xfbe0, 0xfcfa, 0xfe16,
+ 0xfef8, 0xff68, 0xff67, 0xff7d, 0x001d, 0x00e5,
+ 0x00fa, 0x001d, 0xff19, 0xfec7, 0xfee6, 0xfed5,
+ 0xfef5, 0xfff4, 0x0179, 0x0291, 0x029f, 0x01c1,
+ 0x00bb, 0x005f, 0x00f4, 0x022d, 0x0386, 0x0481,
+ 0x04d1, 0x04a3, 0x047f, 0x048b, 0x04a7, 0x04ed,
+ 0x0516, 0x04c7, 0x0441, 0x03a3, 0x02d5, 0x022d,
+ 0x01bd, 0x0132, 0x0091, 0x0012, 0xffde, 0x0036,
+ 0x0133, 0x023a, 0x0270, 0x01c8, 0x00b6, 0xff8e,
+ 0xff0d, 0xffa8, 0x007a, 0x00f8, 0x0193, 0x0224,
+ 0x0225, 0x0160, 0xffdd, 0xfe26, 0xfcb7, 0xfba0,
+ 0xfb2e, 0xfb69, 0xfc17, 0xfd48, 0xfe65, 0xfea5,
+ 0xfe71, 0xfe6b, 0xfe9e, 0xfeee, 0xff21, 0xfeef,
+ 0xfe29, 0xfd0a, 0xfc93, 0xfd51, 0xfebd, 0x005a,
+ 0x01d9, 0x029b, 0x027a, 0x0223, 0x022c, 0x024f,
+ 0x022c, 0x01fe, 0x01b0, 0x0129, 0x014a, 0x023e,
+ 0x02f1, 0x0367, 0x041e, 0x0459, 0x03c5, 0x0357,
+ 0x03c1, 0x050a, 0x06b7, 0x07c8, 0x07b0, 0x06d8,
+ 0x05fb, 0x05a1, 0x05c7, 0x05c9, 0x052e, 0x0412,
+ 0x0300, 0x02c3, 0x033c, 0x032e, 0x0233, 0x00f0,
+ 0xff71, 0xfdfb, 0xfdc4, 0xfef7, 0x006e, 0x01a7,
+ 0x02ed, 0x0417, 0x049a, 0x0460, 0x03d0, 0x036c,
+ 0x0374, 0x0369, 0x02b2, 0x01a8, 0x00e9, 0x0097,
+ 0x008a, 0x001b, 0xff0e, 0xfe5e, 0xfe66, 0xfe63,
+ 0xfe3d, 0xfe63, 0xfefe, 0x000a, 0x0115, 0x01a3,
+ 0x0164, 0x0036, 0xff10, 0xff0e, 0xffaf, 0x0057,
+ 0x0153, 0x0289, 0x03b5, 0x04cd, 0x0583, 0x05b4,
+ 0x05a0, 0x0568, 0x0534, 0x052b, 0x051c, 0x04d3,
+ 0x049c, 0x0509, 0x0608, 0x06e4, 0x072d, 0x06eb,
+ 0x0660, 0x05f1, 0x05b6, 0x05b8, 0x0647, 0x0734,
+ 0x07dc, 0x083c, 0x08dd, 0x09f1, 0x0b4f, 0x0cbd,
+ 0x0dcf, 0x0dee, 0x0ceb, 0x0b46, 0x09c8, 0x08f7,
+ 0x08bb, 0x08c3, 0x08ca, 0x08b8, 0x092a, 0x0aa7,
+ 0x0c3a, 0x0ced, 0x0cdd, 0x0c02, 0x0a97, 0x0985,
+ 0x08f2, 0x0881, 0x0830, 0x080d, 0x0869, 0x093f,
+ 0x09dd, 0x0a0d, 0x0999, 0x0801, 0x05bf, 0x037b,
+ 0x0154, 0xffe7, 0xffb7, 0x009a, 0x022b, 0x035d,
+ 0x0383, 0x0330, 0x02ab, 0x01c5, 0x00cd, 0x000d,
+ 0xffa8, 0xff89, 0xff38, 0xfe8b, 0xfdc8, 0xfd3b,
+ 0xfd5c, 0xfded, 0xfe16, 0xfddf, 0xfdbc, 0xfdb8,
+ 0xfdc0, 0xfd74, 0xfc79, 0xfb46, 0xfa82, 0xfa7e,
+ 0xfb18, 0xfb9c, 0xfbe5, 0xfc70, 0xfcca, 0xfc26,
+ 0xfad5, 0xf9bc, 0xf990, 0xfa61, 0xfb64, 0xfc31,
+ 0xfd08, 0xfdb1, 0xfe05, 0xfe68, 0xfe76, 0xfd68,
+ 0xfbe2, 0xfb49, 0xfbd7, 0xfcc8, 0xfdc3, 0xfec1,
+ 0xff6b, 0xffc8, 0x0015, 0xffed, 0xff5b, 0xff40,
+ 0xff68, 0xff0a, 0xfe6f, 0xfe2c, 0xfe54, 0xfea8,
+ 0xfeb5, 0xfe6c, 0xfe12, 0xfdaa, 0xfd57, 0xfd67,
+ 0xfdcd, 0xfe1d, 0xfddc, 0xfd44, 0xfd04, 0xfd37,
+ 0xfde3, 0xff3d, 0x00db, 0x0266, 0x0389, 0x0363,
+ 0x022b, 0x0121, 0x0078, 0x0014, 0x0056, 0x0106,
+ 0x01e2, 0x0356, 0x056b, 0x075c, 0x0896, 0x0942,
+ 0x094c, 0x0854, 0x0704, 0x061e, 0x0540, 0x049a,
+ 0x04d7, 0x0588, 0x0674, 0x07c7, 0x0892, 0x0844,
+ 0x07a4, 0x0734, 0x06f9, 0x06ce, 0x0676, 0x0624,
+ 0x05fd, 0x05c8, 0x05bc, 0x05cc, 0x054c, 0x0452,
+ 0x034a, 0x0228, 0x016f, 0x01b7, 0x0272, 0x02fe,
+ 0x0355, 0x0383, 0x0394, 0x0355, 0x0288, 0x01af,
+ 0x014f, 0x0110, 0x00ae, 0x0062, 0x0038, 0x0013,
+ 0xfff5, 0x0009, 0x0083, 0x0128, 0x0175, 0x014e,
+ 0x010b, 0x0105, 0x0171, 0x0287, 0x040e, 0x054d,
+ 0x0614, 0x06a8, 0x06ea, 0x0741, 0x0834, 0x08de,
+ 0x0891, 0x081e, 0x07d7, 0x0770, 0x0723, 0x06e4,
+ 0x066b, 0x05da, 0x04ec, 0x035e, 0x0203, 0x017d,
+ 0x013e, 0x00db, 0x0096, 0x0071, 0x0049, 0x0029,
+ 0xfffd, 0xffeb, 0x0023, 0x0012, 0xff73, 0xfedf,
+ 0xfe9a, 0xfe9a, 0xfee4, 0xff22, 0xff6f, 0x0022,
+ 0x00dc, 0x014c, 0x0129, 0x001c, 0xfef8, 0xfe98,
+ 0xfe93, 0xfe7f, 0xfe1d, 0xfd1e, 0xfbdd, 0xfac4,
+ 0xfa28, 0xfa83, 0xfb65, 0xfc34, 0xfd14, 0xfdd3,
+ 0xfe45, 0xfea8, 0xfe8d, 0xfd99, 0xfc4b, 0xfae9,
+ 0xf97c, 0xf86a, 0xf863, 0xf9ac, 0xfb79, 0xfd15,
+ 0xfe97, 0xffae, 0xfffa, 0xff94, 0xfe65, 0xfd05,
+ 0xfc4b, 0xfbb6, 0xfad9, 0xfa28, 0xf9b3, 0xf994,
+ 0xf9e7, 0xfa62, 0xfb3a, 0xfc5c, 0xfcde, 0xfcec,
+ 0xfd5f, 0xfe28, 0xff10, 0xffe2, 0xffff, 0xff70,
+ 0xfee6, 0xfeb6, 0xfec5, 0xff0b, 0xff96, 0x0025,
+ 0x0044, 0x001b, 0x002c, 0x0059, 0x001e, 0xff7b,
+ 0xff0c, 0xff60, 0x0075, 0x01f1, 0x0357, 0x0448,
+ 0x04d7, 0x04fc, 0x0422, 0x025d, 0x00d3, 0x006a,
+ 0x011d, 0x0256, 0x039c, 0x04eb, 0x05fd, 0x05f9,
+ 0x04d6, 0x039b, 0x02d5, 0x0241, 0x019c, 0x00ee,
+ 0x0056, 0xffca, 0xff59, 0xff96, 0x00a4, 0x01c5,
+ 0x0272, 0x0269, 0x0172, 0x0048, 0xffce, 0xffc4,
+ 0xffde, 0x0054, 0x00f3, 0x015c, 0x01a8, 0x0210,
+ 0x0275, 0x0275, 0x0229, 0x0200, 0x01d1, 0x0152,
+ 0x00b3, 0xffff, 0xff30, 0xfea3, 0xfe4c, 0xfdcc,
+ 0xfd2c, 0xfcad, 0xfc5d, 0xfc51, 0xfd09, 0xfec9,
+ 0x00c7, 0x0220, 0x0299, 0x021d, 0x0120, 0x00a0,
+ 0x00b6, 0x00e7, 0x0104, 0x00c8, 0x004c, 0x0020,
+ 0x0066, 0x0137, 0x02b9, 0x042b, 0x049a, 0x041a,
+ 0x035e, 0x02f3, 0x02d8, 0x02b4, 0x027f, 0x0272,
+ 0x0291, 0x02b1, 0x02ab, 0x0280, 0x0240, 0x01f9,
+ 0x01de, 0x020f, 0x0255, 0x021a, 0x00f5, 0xff79,
+ 0xfea4, 0xfeab, 0xff5b, 0x0084, 0x0179, 0x01ae,
+ 0x0149, 0x008f, 0x0000, 0x0047, 0x0117, 0x0179,
+ 0x012b, 0x0071, 0xff22, 0xfd27, 0xfb72, 0xfb23,
+ 0xfc20, 0xfd62, 0xfdd6, 0xfd32, 0xfc4c, 0xfbe9,
+ 0xfbf6, 0xfc90, 0xfde5, 0xffa1, 0x0144, 0x0223,
+ 0x01f5, 0x018f, 0x0161, 0x00ea, 0x0011, 0xfefe,
+ 0xfdd2, 0xfd2d, 0xfd5c, 0xfe23, 0xff62, 0x00c3,
+ 0x01d8, 0x028e, 0x02de, 0x02e0, 0x0304, 0x038c,
+ 0x0422, 0x0423, 0x03b5, 0x03b0, 0x0423, 0x04c5,
+ 0x05ea, 0x0746, 0x080c, 0x0857, 0x0882, 0x089b,
+ 0x08df, 0x0947, 0x096d, 0x0919, 0x088a, 0x083c,
+ 0x0810, 0x07a3, 0x0766, 0x07a6, 0x0814, 0x08eb,
+ 0x0a53, 0x0bc4, 0x0ccc, 0x0cda, 0x0bc5, 0x0a92,
+ 0x09e2, 0x0965, 0x0956, 0x0a1e, 0x0b46, 0x0c1b,
+ 0x0c4d, 0x0bdf, 0x0b2a, 0x0a97, 0x0a15, 0x0970,
+ 0x0916, 0x0958, 0x0974, 0x08d3, 0x07d5, 0x06c1,
+ 0x05bf, 0x0533, 0x04fb, 0x04a8, 0x044d, 0x0402,
+ 0x0397, 0x0325, 0x02fb, 0x031b, 0x0341, 0x032d,
+ 0x02c0, 0x021b, 0x01a4, 0x019e, 0x01e7, 0x0246,
+ 0x02a0, 0x0303, 0x0370, 0x0383, 0x02e2, 0x01ef,
+ 0x0134, 0x00a1, 0x0000, 0xff7c, 0xff53, 0xff7c,
+ 0xffd6, 0x0011, 0xffd1, 0xff5f, 0xff4a, 0xff5e,
+ 0xff41, 0xff04, 0xfe8e, 0xfe22, 0xfe7a, 0xff71,
+ 0x0048, 0x00f6, 0x0170, 0x0118, 0xffc5, 0xfe3f,
+ 0xfd36, 0xfcab, 0xfca3, 0xfd30, 0xfdb0, 0xfda7,
+ 0xfd73, 0xfd20, 0xfc5c, 0xfb93, 0xfb46, 0xfb60,
+ 0xfba6, 0xfbb4, 0xfb37, 0xfa72, 0xf9d9, 0xf9b0,
+ 0xf9dd, 0xf9e4, 0xf981, 0xf913, 0xf902, 0xf950,
+ 0xf9cd, 0xfa63, 0xfaef, 0xfb18, 0xfaa9, 0xf9c0,
+ 0xf89c, 0xf7c0, 0xf7a7, 0xf83c, 0xf93c, 0xfa7f,
+ 0xfbb0, 0xfca5, 0xfd6e, 0xfdd3, 0xfdbd, 0xfd93,
+ 0xfd73, 0xfd09, 0xfc58, 0xfbad, 0xfb66, 0xfbfc,
+ 0xfd69, 0xfeea, 0x0005, 0x00f4, 0x01e8, 0x02d1,
+ 0x03ba, 0x0488, 0x04ca, 0x0462, 0x03f6, 0x041f,
+ 0x04a9, 0x0512, 0x0507, 0x04b8, 0x04eb, 0x05d6,
+ 0x06c7, 0x0799, 0x0897, 0x098b, 0x0a75, 0x0b8c,
+ 0x0c70, 0x0cc9, 0x0cb6, 0x0c48, 0x0b86, 0x0a95,
+ 0x099a, 0x08c6, 0x087a, 0x08f1, 0x09b9, 0x09f8,
+ 0x0955, 0x07fe, 0x068c, 0x05d4, 0x05bf, 0x059f,
+ 0x0576, 0x0541, 0x04a3, 0x03d5, 0x0339, 0x02ac,
+ 0x01ea, 0x010d, 0x0083, 0x0035, 0xff7d, 0xfe88,
+ 0xfe2b, 0xfe88, 0xff8b, 0x0120, 0x02b3, 0x03b0,
+ 0x03c0, 0x02c8, 0x016c, 0x00a6, 0x00a6, 0x00d2,
+ 0x00c3, 0x00d3, 0x0124, 0x011e, 0x00a0, 0x0038,
+ 0x0011, 0x0011, 0x001e, 0xfff7, 0xffd6, 0x004c,
+ 0x0120, 0x01c4, 0x024f, 0x02e8, 0x033b, 0x0312,
+ 0x02a8, 0x026f, 0x02bb, 0x0353, 0x03ae, 0x03a3,
+ 0x033f, 0x026d, 0x018d, 0x0140, 0x0158, 0x014b,
+ 0x012e, 0x018c, 0x02bb, 0x0456, 0x056f, 0x05a9,
+ 0x0519, 0x03b3, 0x01ea, 0x009b, 0xffbd, 0xfec6,
+ 0xfdd1, 0xfd29, 0xfced, 0xfd4d, 0xfe35, 0xff3d,
+ 0x0007, 0x0037, 0xff71, 0xfdf2, 0xfc86, 0xfb9a,
+ 0xfb05, 0xfa7b, 0xf9e5, 0xf98f, 0xf98f, 0xf997,
+ 0xfa1a, 0xfbbf, 0xfd83, 0xfe2c, 0xfe10, 0xfdbf,
+ 0xfd49, 0xfcc3, 0xfc18, 0xfb8d, 0xfba2, 0xfc19,
+ 0xfc82, 0xfc96, 0xfc1b, 0xfbb7, 0xfc08, 0xfc66,
+ 0xfc2f, 0xfb5e, 0xfa28, 0xf950, 0xf963, 0xf9fb,
+ 0xfa8b, 0xfacb, 0xfada, 0xfb1c, 0xfb5a, 0xfb33,
+ 0xfae0, 0xfa99, 0xfa7b, 0xface, 0xfbb7, 0xfd38,
+ 0xfeee, 0xffe8, 0xff99, 0xfe77, 0xfda0, 0xfe14,
+ 0xffc5, 0x01b2, 0x02e4, 0x0310, 0x02ae, 0x0268,
+ 0x0299, 0x033b, 0x03b3, 0x0379, 0x030b, 0x02f5,
+ 0x031f, 0x03a2, 0x045f, 0x04ba, 0x04c4, 0x04f4,
+ 0x0539, 0x0562, 0x0539, 0x04a0, 0x0406, 0x039c,
+ 0x02fe, 0x0265, 0x025d, 0x02b2, 0x030e, 0x0353,
+ 0x0324, 0x026a, 0x01bb, 0x0182, 0x0197, 0x01a7,
+ 0x015e, 0x0098, 0xff9c, 0xfedc, 0xfe73, 0xfe10,
+ 0xfd71, 0xfcb7, 0xfc21, 0xfbe6, 0xfc45, 0xfd1d,
+ 0xfdc3, 0xfdea, 0xfde3, 0xfdb2, 0xfd3d, 0xfd04,
+ 0xfd65, 0xfe19, 0xff18, 0x00a9, 0x025f, 0x0318,
+ 0x025e, 0x00f3, 0xffd9, 0xff6d, 0xff83, 0xff84,
+ 0xfefb, 0xfe7a, 0xfee7, 0x0004, 0x00f6, 0x018b,
+ 0x01e3, 0x01cf, 0x0151, 0x00bd, 0x0054, 0x0046,
+ 0x0091, 0x0102, 0x01b8, 0x02f9, 0x0496, 0x060d,
+ 0x0701, 0x075d, 0x070d, 0x05fd, 0x04ac, 0x03d7,
+ 0x0379, 0x0307, 0x024f, 0x018a, 0x00fd, 0x00cf,
+ 0x0114, 0x0198, 0x01d4, 0x01b5, 0x01a7, 0x01d2,
+ 0x022d, 0x028f, 0x029f, 0x026d, 0x0219, 0x0186,
+ 0x0138, 0x0174, 0x0159, 0x009b, 0xfffc, 0xffa0,
+ 0xff25, 0xfeba, 0xfedf, 0xff60, 0xff75, 0xfed5,
+ 0xfdd0, 0xfcee, 0xfcb5, 0xfd05, 0xfd69, 0xfde0,
+ 0xfe63, 0xfea3, 0xfe64, 0xfda4, 0xfd08, 0xfd0f,
+ 0xfd4d, 0xfdce, 0xfedc, 0xffb0, 0xfff3, 0x0039,
+ 0x007a, 0x0086, 0x0080, 0x0061, 0x0070, 0x010a,
+ 0x0203, 0x030f, 0x040c, 0x04d1, 0x0530, 0x0537,
+ 0x053d, 0x055b, 0x0573, 0x05bc, 0x0645, 0x06cc,
+ 0x075a, 0x07fd, 0x08bc, 0x09b7, 0x0aa7, 0x0b51,
+ 0x0bd5, 0x0c19, 0x0c3c, 0x0c5a, 0x0c07, 0x0bb4,
+ 0x0c36, 0x0cfe, 0x0d70, 0x0d9f, 0x0d35, 0x0c49,
+ 0x0b86, 0x0b0b, 0x0b01, 0x0b6e, 0x0baf, 0x0bc1,
+ 0x0c09, 0x0c30, 0x0c1d, 0x0c10, 0x0bd3, 0x0b38,
+ 0x0a5d, 0x099f, 0x0961, 0x0970, 0x098e, 0x09d1,
+ 0x09ec, 0x099a, 0x08d4, 0x0740, 0x0512, 0x030c,
+ 0x0177, 0x009b, 0x00bc, 0x016b, 0x01ff, 0x0223,
+ 0x0215, 0x0234, 0x0207, 0x012d, 0xfff7, 0xfe80,
+ 0xfd3c, 0xfcde, 0xfd32, 0xfdb1, 0xfdd2, 0xfd15,
+ 0xfc07, 0xfb42, 0xfaa2, 0xfa5e, 0xfa91, 0xfaff,
+ 0xfbdd, 0xfce9, 0xfd7c, 0xfd97, 0xfd3b, 0xfc60,
+ 0xfb3e, 0xfa13, 0xf984, 0xf9e9, 0xfa9a, 0xfb27,
+ 0xfb8e, 0xfbc6, 0xfc05, 0xfc30, 0xfc14, 0xfbef,
+ 0xfb71, 0xfa50, 0xf965, 0xf936, 0xf96e, 0xf9fe,
+ 0xfadb, 0xfb87, 0xfb9a, 0xfb37, 0xfacb, 0xfa81,
+ 0xfa64, 0xfabe, 0xfba7, 0xfce1, 0xfe03, 0xfe76,
+ 0xfe1e, 0xfd97, 0xfcf4, 0xfba6, 0xfa29, 0xf9a8,
+ 0xfa1f, 0xfac9, 0xfb4f, 0xfbb7, 0xfc57, 0xfd5a,
+ 0xfe6e, 0xffb5, 0x013d, 0x0233, 0x026c, 0x0289,
+ 0x028c, 0x0283, 0x02ab, 0x02ab, 0x0262, 0x0211,
+ 0x01de, 0x0228, 0x0318, 0x0458, 0x05bb, 0x072c,
+ 0x0876, 0x093b, 0x0922, 0x0873, 0x07b1, 0x06e5,
+ 0x062a, 0x05a9, 0x0527, 0x04a2, 0x048b, 0x0527,
+ 0x061b, 0x06e7, 0x0783, 0x07e2, 0x07c2, 0x0750,
+ 0x06ca, 0x0625, 0x0595, 0x054a, 0x052b, 0x053e,
+ 0x057b, 0x059c, 0x054b, 0x0470, 0x035f, 0x027a,
+ 0x01f3, 0x020e, 0x02d4, 0x03d9, 0x04a6, 0x0505,
+ 0x04f1, 0x0457, 0x0355, 0x0281, 0x01f4, 0x010c,
+ 0xffda, 0xff47, 0xffdb, 0x0116, 0x0208, 0x0276,
+ 0x02ae, 0x02af, 0x0285, 0x025b, 0x023d, 0x0273,
+ 0x02df, 0x02ed, 0x02c2, 0x02d4, 0x0331, 0x0407,
+ 0x0543, 0x0639, 0x0677, 0x0631, 0x05fb, 0x0625,
+ 0x064f, 0x05fd, 0x0507, 0x0371, 0x01ba, 0x00d3,
+ 0x0116, 0x0201, 0x030f, 0x03f8, 0x0447, 0x03e6,
+ 0x036a, 0x0323, 0x02f0, 0x02d9, 0x02e6, 0x0325,
+ 0x03d0, 0x04b4, 0x0539, 0x0542, 0x0525, 0x04f2,
+ 0x048c, 0x0408, 0x0353, 0x0248, 0x0159, 0x00d6,
+ 0x0036, 0xff3e, 0xfe4f, 0xfd7d, 0xfcaa, 0xfbf6,
+ 0xfb8e, 0xfb50, 0xfae9, 0xfa8a, 0xfad7, 0xfbe2,
+ 0xfd28, 0xfe25, 0xfe92, 0xfe7d, 0xfe04, 0xfd49,
+ 0xfcbe, 0xfcca, 0xfd3a, 0xfd7a, 0xfd3f, 0xfcb5,
+ 0xfc0a, 0xfb4d, 0xfad3, 0xfae7, 0xfb4c, 0xfb73,
+ 0xfb18, 0xfaa5, 0xfa98, 0xfaf0, 0xfb7c, 0xfbc4,
+ 0xfb67, 0xfafa, 0xfb00, 0xfb06, 0xfaa7, 0xf9e8,
+ 0xf916, 0xf8cc, 0xf93a, 0xfa11, 0xfafe, 0xfbe3,
+ 0xfd0f, 0xfe6a, 0xff34, 0xff58, 0xff38, 0xfec6,
+ 0xfe3b, 0xfe03, 0xfe24, 0xfe86, 0xfed7, 0xfeaf,
+ 0xfe0f, 0xfd56, 0xfd16, 0xfd82, 0xfe4b, 0xff55,
+ 0x0057, 0x00db, 0x0108, 0x0117, 0x00d8, 0x006b,
+ 0x002c, 0x005e, 0x010a, 0x01f8, 0x0302, 0x03e1,
+ 0x042e, 0x03f1, 0x0337, 0x0247, 0x0213, 0x02bb,
+ 0x0351, 0x0384, 0x037d, 0x0362, 0x035b, 0x0301,
+ 0x021c, 0x014a, 0x00cb, 0x0057, 0xffa5, 0xfe87,
+ 0xfd6f, 0xfcd6, 0xfc61, 0xfbd9, 0xfba8, 0xfbd7,
+ 0xfc32, 0xfcd2, 0xfd9c, 0xfe40, 0xfe95, 0xfe78,
+ 0xfdf4, 0xfd8a, 0xfda6, 0xfe11, 0xfe3c, 0xfdc7,
+ 0xfceb, 0xfc57, 0xfc6c, 0xfcfe, 0xfdc1, 0xfe86,
+ 0xff52, 0x001e, 0x007a, 0x004e, 0x003f, 0x00a4,
+ 0x0145, 0x01f5, 0x0283, 0x02bd, 0x02eb, 0x0384,
+ 0x0452, 0x0478, 0x039e, 0x026e, 0x01ab, 0x0183,
+ 0x01a7, 0x01cc, 0x0243, 0x0362, 0x0476, 0x04b0,
+ 0x044b, 0x03fc, 0x0452, 0x054a, 0x05ca, 0x051a,
+ 0x0446, 0x0468, 0x053d, 0x0616, 0x062d, 0x04de,
+ 0x02c0, 0x0127, 0x0097, 0x00b6, 0x00e9, 0x00c5,
+ 0x0051, 0xffd8, 0xffad, 0xffc3, 0xff66, 0xfe29,
+ 0xfcab, 0xfbc1, 0xfba4, 0xfc19, 0xfcd9, 0xfdc3,
+ 0xfed5, 0x0010, 0x0123, 0x0153, 0x0080, 0xffa3,
+ 0xff7a, 0xffbf, 0xffc8, 0xff39, 0xfe66, 0xfe0c,
+ 0xfe59, 0xfee7, 0xff78, 0xffb6, 0xff29, 0xfe30,
+ 0xfdd2, 0xfe34, 0xfeaf, 0xff49, 0x005b, 0x0119,
+ 0x005a, 0xfe96, 0xfd7d, 0xfe0b, 0xffba, 0x0168,
+ 0x02b1, 0x040d, 0x05a3, 0x06e7, 0x0761, 0x06fe,
+ 0x0606, 0x0530, 0x04fd, 0x0554, 0x060f, 0x0735,
+ 0x0892, 0x09a0, 0x0a10, 0x0a28, 0x0a38, 0x0a22,
+ 0x09d6, 0x0996, 0x0972, 0x0938, 0x08fd, 0x0919,
+ 0x09a2, 0x0a69, 0x0b34, 0x0b8a, 0x0b23, 0x0a91,
+ 0x0a49, 0x0a1d, 0x0a4c, 0x0b10, 0x0bd4, 0x0c3c,
+ 0x0c71, 0x0c63, 0x0c26, 0x0be8, 0x0b9e, 0x0b73,
+ 0x0b68, 0x0ae0, 0x09b3, 0x0877, 0x079f, 0x071c,
+ 0x068b, 0x05bf, 0x0509, 0x049c, 0x0461, 0x0473,
+ 0x04ba, 0x04bf, 0x0464, 0x03fd, 0x03b8, 0x0385,
+ 0x0343, 0x02d8, 0x023a, 0x017f, 0x00f9, 0x00bc,
+ 0x0069, 0xfffe, 0x0001, 0x006c, 0x005e, 0xff81,
+ 0xfe65, 0xfd63, 0xfc89, 0xfc3e, 0xfca1, 0xfd4a,
+ 0xfe0d, 0xfeed, 0xffe5, 0x00f1, 0x019a, 0x0153,
+ 0x0047, 0xfea1, 0xfc62, 0xfa4c, 0xf94b, 0xf9ba,
+ 0xfb49, 0xfce4, 0xfdc1, 0xfe3c, 0xfe95, 0xfe95,
+ 0xfe93, 0xff08, 0xffc5, 0x004f, 0x0073, 0x0049,
+ 0xffd7, 0xff0b, 0xfe1a, 0xfd58, 0xfcf3, 0xfce7,
+ 0xfcda, 0xfcb5, 0xfcff, 0xfdbc, 0xfe2d, 0xfe04,
+ 0xfda2, 0xfd57, 0xfd0c, 0xfc53, 0xfb28, 0xfa63,
+ 0xfa8a, 0xfb24, 0xfbac, 0xfc00, 0xfc3d, 0xfc82,
+ 0xfc8a, 0xfc23, 0xfbd3, 0xfbda, 0xfbdf, 0xfbec,
+ 0xfc2d, 0xfc70, 0xfcda, 0xfdcc, 0xfeff, 0xffdb,
+ 0x005c, 0x00f2, 0x0184, 0x017a, 0x00d2, 0x0071,
+ 0x010f, 0x0273, 0x03cd, 0x047a, 0x0459, 0x03d1,
+ 0x038b, 0x03a9, 0x03d3, 0x0418, 0x048e, 0x04fa,
+ 0x055e, 0x05b8, 0x05d5, 0x05db, 0x05e4, 0x05b6,
+ 0x053e, 0x04bf, 0x04c3, 0x0547, 0x0585, 0x0581,
+ 0x05c6, 0x0608, 0x0639, 0x06a0, 0x06aa, 0x064f,
+ 0x066f, 0x06fc, 0x0774, 0x07d2, 0x07fa, 0x07b8,
+ 0x06f1, 0x057b, 0x038b, 0x01b4, 0x0088, 0x0048,
+ 0x0073, 0x007f, 0x00c2, 0x019c, 0x02c3, 0x03d4,
+ 0x0456, 0x03ec, 0x0324, 0x02d7, 0x02d1, 0x0270,
+ 0x01dd, 0x017a, 0x0117, 0x008a, 0x0014, 0xffe4,
+ 0xfff7, 0x002a, 0x003d, 0x001f, 0xfffe, 0xffb9,
+ 0xff27, 0xfe9a, 0xfe67, 0xfe71, 0xfeba, 0xff53,
+ 0xffe0, 0x0031, 0x00b2, 0x019e, 0x02b6, 0x03b4,
+ 0x043d, 0x0400, 0x0341, 0x028e, 0x0235, 0x025d,
+ 0x02c3, 0x02ca, 0x026d, 0x023d, 0x0289, 0x0333,
+ 0x03c8, 0x03e1, 0x03cc, 0x03f0, 0x0405, 0x03cb,
+ 0x034d, 0x0285, 0x01aa, 0x0123, 0x00e8, 0x00a5,
+ 0x0073, 0x00b6, 0x0152, 0x01c6, 0x01f9, 0x01ce,
+ 0x00f7, 0xffc2, 0xfea1, 0xfd9d, 0xfd01, 0xfd10,
+ 0xfd46, 0xfd3b, 0xfd19, 0xfd26, 0xfd83, 0xfde2,
+ 0xfdd3, 0xfd8e, 0xfd87, 0xfd7c, 0xfcdb, 0xfbb5,
+ 0xfaad, 0xfa2d, 0xfa6b, 0xfb50, 0xfbdb, 0xfb66,
+ 0xfaed, 0xfb1b, 0xfb69, 0xfbb9, 0xfc06, 0xfbcf,
+ 0xfb51, 0xfaf6, 0xfa68, 0xf9bc, 0xf96e, 0xf97a,
+ 0xf9b9, 0xfa0e, 0xfa82, 0xfb74, 0xfc93, 0xfd17,
+ 0xfd42, 0xfdcc, 0xfec8, 0xffca, 0x0014, 0xff3c,
+ 0xfdfd, 0xfd65, 0xfd9f, 0xfe0e, 0xfe4d, 0xfeb2,
+ 0xff52, 0xff97, 0xff6f, 0xff3d, 0xfef8, 0xfebd,
+ 0xfedd, 0xff17, 0xff40, 0xff9c, 0x001c, 0x006a,
+ 0x005b, 0xffee, 0xff47, 0xfe96, 0xfdf6, 0xfd8b,
+ 0xfd5b, 0xfd7b, 0xfe53, 0xffd7, 0x0141, 0x0223,
+ 0x029e, 0x02c8, 0x02dc, 0x0336, 0x03ae, 0x039f,
+ 0x02b6, 0x0144, 0xffde, 0xfee2, 0xfe65, 0xfe43,
+ 0xfe38, 0xfe31, 0xfe6a, 0xfedf, 0xff28, 0xff1d,
+ 0xff08, 0xff50, 0x0021, 0x0102, 0x0135, 0x00bf,
+ 0x0019, 0xff87, 0xff73, 0x0014, 0x00fa, 0x01c6,
+ 0x0241, 0x01fc, 0x00f0, 0xff84, 0xfe04, 0xfce6,
+ 0xfc9b, 0xfd13, 0xfe0d, 0xff35, 0x002e, 0x00cd,
+ 0x00fa, 0x00d7, 0x009d, 0x0000, 0xfed1, 0xfdd8,
+ 0xfde3, 0xfec7, 0xffc8, 0x005c, 0x0077, 0x0055,
+ 0x002d, 0x002d, 0x006c, 0x00f5, 0x01c2, 0x028a,
+ 0x0306, 0x0361, 0x03c7, 0x0406, 0x03f5, 0x0391,
+ 0x02e5, 0x0214, 0x0142, 0x00af, 0x0089, 0x0096,
+ 0x00bd, 0x010a, 0x0128, 0x010a, 0x010b, 0x00fb,
+ 0x00c2, 0x00ca, 0x00df, 0x00b6, 0x00b9, 0x0101,
+ 0x0153, 0x01a1, 0x0186, 0x00bd, 0xffac, 0xfeb1,
+ 0xfe01, 0xfdba, 0xfdc6, 0xfe25, 0xfeb9, 0xff1f,
+ 0xff25, 0xfebe, 0xfe1f, 0xfda5, 0xfd00, 0xfc19,
+ 0xfbd3, 0xfc7e, 0xfd99, 0xfec9, 0xff88, 0xffbc,
+ 0x001b, 0x0093, 0x005a, 0xffb7, 0xff89, 0xffe9,
+ 0x0044, 0x0039, 0x0010, 0x0028, 0x0052, 0x0078,
+ 0x00f6, 0x01cf, 0x0286, 0x02d8, 0x032a, 0x0408,
+ 0x0535, 0x05e2, 0x0601, 0x0639, 0x06c8, 0x0767,
+ 0x079a, 0x06f0, 0x05bf, 0x04f3, 0x04e9, 0x055f,
+ 0x060b, 0x069d, 0x070c, 0x07a0, 0x0843, 0x089c,
+ 0x0890, 0x0832, 0x080c, 0x08d2, 0x0a14, 0x0aba,
+ 0x0ac9, 0x0ad3, 0x0b02, 0x0b7e, 0x0c22, 0x0c4e,
+ 0x0bff, 0x0bd5, 0x0c35, 0x0d07, 0x0dc1, 0x0e17,
+ 0x0e59, 0x0e78, 0x0dfd, 0x0ccb, 0x0b16, 0x094b,
+ 0x07d9, 0x070b, 0x0721, 0x07b4, 0x07fe, 0x07ef,
+ 0x0784, 0x06b7, 0x0633, 0x0612, 0x05d0, 0x05b3,
+ 0x05ea, 0x0612, 0x060e, 0x05bd, 0x0525, 0x04a8,
+ 0x041f, 0x031c, 0x0178, 0xffab, 0xfedc, 0xff38,
+ 0xffc4, 0x0069, 0x0158, 0x01ff, 0x0216, 0x018b,
+ 0x003b, 0xfe99, 0xfd4c, 0xfcca, 0xfd0a, 0xfd47,
+ 0xfd1c, 0xfcd8, 0xfca9, 0xfcb8, 0xfd27, 0xfd9b,
+ 0xfdc1, 0xfdad, 0xfd94, 0xfdb6, 0xfe32, 0xfede,
+ 0xff4e, 0xff3c, 0xfec9, 0xfe0e, 0xfd22, 0xfc6f,
+ 0xfc30, 0xfc4b, 0xfca5, 0xfd04, 0xfd2d, 0xfd14,
+ 0xfca1, 0xfbc2, 0xfa8f, 0xf942, 0xf815, 0xf741,
+ 0xf6f3, 0xf6e2, 0xf6a8, 0xf6af, 0xf761, 0xf846,
+ 0xf909, 0xf9a8, 0xf9f7, 0xfa17, 0xfa32, 0xfa32,
+ 0xfa4e, 0xfadd, 0xfc01, 0xfd93, 0xfeda, 0xff3f,
+ 0xfecc, 0xfdaa, 0xfc2f, 0xfb11, 0xfadb, 0xfbb9,
+ 0xfd5f, 0xff2b, 0x00c6, 0x0247, 0x0387, 0x041f,
+ 0x0456, 0x04e8, 0x05c2, 0x0648, 0x0648, 0x05e3,
+ 0x05a9, 0x0617, 0x06dc, 0x0777, 0x079a, 0x0717,
+ 0x0645, 0x0574, 0x04c2, 0x04a8, 0x0505, 0x0545,
+ 0x0575, 0x0596, 0x05ab, 0x0619, 0x0697, 0x06a9,
+ 0x0656, 0x0599, 0x04e2, 0x04a8, 0x0471, 0x03fa,
+ 0x0390, 0x0340, 0x0324, 0x032f, 0x031f, 0x032e,
+ 0x0378, 0x039c, 0x035e, 0x02c9, 0x0218, 0x0163,
+ 0x00ad, 0x005b, 0x0083, 0x00a7, 0x00a1, 0x0075,
+ 0x000d, 0xffa2, 0xff6f, 0xff68, 0xff56, 0xff27,
+ 0xff46, 0x0025, 0x01b8, 0x036d, 0x044d, 0x041c,
+ 0x038d, 0x02ce, 0x01bc, 0x00e1, 0x00b4, 0x0120,
+ 0x0190, 0x0154, 0x00bd, 0x008f, 0x00de, 0x019a,
+ 0x0281, 0x0305, 0x0331, 0x0388, 0x042a, 0x04eb,
+ 0x05ab, 0x062a, 0x0607, 0x05b2, 0x063f, 0x0784,
+ 0x087b, 0x0913, 0x095e, 0x0904, 0x0863, 0x07f7,
+ 0x07a3, 0x0761, 0x0745, 0x073a, 0x072f, 0x0701,
+ 0x06a1, 0x0614, 0x056c, 0x0501, 0x04ef, 0x04d5,
+ 0x0497, 0x0424, 0x032c, 0x0206, 0x016a, 0x0157,
+ 0x0194, 0x01fd, 0x01e0, 0x00fa, 0x0009, 0xff3e,
+ 0xfe1b, 0xfcfe, 0xfc94, 0xfcaf, 0xfcc4, 0xfc9e,
+ 0xfc71, 0xfc85, 0xfcab, 0xfc6a, 0xfb94, 0xfa5f,
+ 0xf928, 0xf85d, 0xf846, 0xf8b0, 0xf8fe, 0xf8cf,
+ 0xf84b, 0xf7ec, 0xf801, 0xf83c, 0xf84c, 0xf887,
+ 0xf925, 0xf9de, 0xfa6b, 0xfa90, 0xfa5e, 0xfa41,
+ 0xfa6b, 0xfad9, 0xfb99, 0xfc7c, 0xfd04, 0xfcd1,
+ 0xfc23, 0xfb67, 0xfa86, 0xf9bf, 0xf991, 0xf9a8,
+ 0xf9f3, 0xfb00, 0xfc50, 0xfd09, 0xfd51, 0xfd8b,
+ 0xfded, 0xfe96, 0xff71, 0x0068, 0x0149, 0x01eb,
+ 0x0258, 0x0257, 0x01e9, 0x017b, 0x0139, 0x013f,
+ 0x016d, 0x013e, 0x0103, 0x0156, 0x01ea, 0x0261,
+ 0x028a, 0x023e, 0x0216, 0x0294, 0x0343, 0x03a9,
+ 0x03a1, 0x032e, 0x0276, 0x0176, 0x0034, 0xff3d,
+ 0xff39, 0x0000, 0x00ae, 0x00fe, 0x01c2, 0x0342,
+ 0x04a9, 0x053d, 0x0528, 0x0507, 0x04ce, 0x03cd,
+ 0x0206, 0x0022, 0xfe95, 0xfd9e, 0xfd44, 0xfd44,
+ 0xfd5a, 0xfd32, 0xfcd1, 0xfcd5, 0xfd74, 0xfe26,
+ 0xfea2, 0xff02, 0xff57, 0xffad, 0x0013, 0x0097,
+ 0x0141, 0x01dc, 0x01e1, 0x0139, 0x007a, 0xffed,
+ 0xff6b, 0xff3b, 0xff8f, 0xffda, 0xffb3, 0xff43,
+ 0xfea4, 0xfde6, 0xfd60, 0xfd51, 0xfdcd, 0xfecc,
+ 0xffe3, 0x00be, 0x0178, 0x01d9, 0x01a4, 0x0159,
+ 0x013a, 0x00eb, 0x0063, 0xffdf, 0xffb0, 0x001d,
+ 0x00be, 0x0105, 0x0124, 0x014f, 0x0147, 0x00eb,
+ 0x0067, 0x001a, 0x000e, 0xffe3, 0xff79, 0xff16,
+ 0xff0f, 0xff95, 0x003b, 0x003e, 0xff52, 0xfdbf,
+ 0xfc40, 0xfb93, 0xfbdc, 0xfcc6, 0xfde2, 0xfec6,
+ 0xff50, 0xffb1, 0x000e, 0x004d, 0x0025, 0xff8b,
+ 0xfec0, 0xfe15, 0xfdce, 0xfdd1, 0xfda2, 0xfd16,
+ 0xfc72, 0xfc20, 0xfc55, 0xfcbd, 0xfd19, 0xfdcf,
+ 0xfed6, 0xff4e, 0xfef7, 0xfe9f, 0xfedf, 0xff72,
+ 0xfff4, 0x0085, 0x0148, 0x01cf, 0x01b6, 0x0189,
+ 0x0206, 0x02ea, 0x03d3, 0x0521, 0x06d4, 0x0822,
+ 0x08a2, 0x0862, 0x0767, 0x05ff, 0x04d6, 0x048d,
+ 0x0559, 0x06e3, 0x089b, 0x0a0b, 0x0af5, 0x0b60,
+ 0x0b9a, 0x0bb1, 0x0b78, 0x0b2d, 0x0b46, 0x0bc1,
+ 0x0c84, 0x0d66, 0x0ddf, 0x0db9, 0x0cfe, 0x0ba9,
+ 0x0a74, 0x0a2f, 0x0aca, 0x0c20, 0x0dd8, 0x0ef5,
+ 0x0f07, 0x0e26, 0x0c72, 0x0a93, 0x0941, 0x08a6,
+ 0x0880, 0x083f, 0x07d9, 0x07cb, 0x07e9, 0x07c7,
+ 0x0766, 0x06d2, 0x064d, 0x0622, 0x062d, 0x0625,
+ 0x05f2, 0x05c5, 0x05c7, 0x05ed, 0x0657, 0x06b9,
+ 0x0667, 0x059b, 0x0471, 0x0270, 0x0058, 0xff33,
+ 0xfee8, 0xff75, 0x00c4, 0x022d, 0x035e, 0x0436,
+ 0x0464, 0x03ec, 0x0323, 0x0275, 0x01e6, 0x0110,
+ 0x0005, 0xff32, 0xfeec, 0xff44, 0xff80, 0xff0e,
+ 0xfe66, 0xfdfd, 0xfdcd, 0xfd8e, 0xfcd9, 0xfbd8,
+ 0xfadf, 0xfa03, 0xf999, 0xf98a, 0xf978, 0xf9bf,
+ 0xfa7c, 0xfb37, 0xfba2, 0xfb83, 0xfb44, 0xfb6e,
+ 0xfb5f, 0xfac2, 0xfa46, 0xf9f7, 0xf974, 0xf8ba,
+ 0xf815, 0xf7f6, 0xf831, 0xf86a, 0xf901, 0xf9f1,
+ 0xfa9d, 0xfac9, 0xfa3f, 0xf93b, 0xf8b1, 0xf8df,
+ 0xf93c, 0xf9ad, 0xfa5d, 0xfb34, 0xfbe6, 0xfc52,
+ 0xfc82, 0xfc77, 0xfc5f, 0xfc50, 0xfc39, 0xfc72,
+ 0xfd3c, 0xfe67, 0xfff1, 0x01ac, 0x02fd, 0x0372,
+ 0x02c3, 0x0148, 0x0030, 0x0005, 0x006e, 0x012e,
+ 0x0200, 0x028e, 0x02c8, 0x02c8, 0x02d9, 0x0324,
+ 0x0368, 0x0382, 0x03a8, 0x03e0, 0x03cd, 0x0370,
+ 0x0389, 0x0425, 0x042b, 0x0362, 0x0277, 0x018d,
+ 0x00f4, 0x016c, 0x02d0, 0x0475, 0x060b, 0x072f,
+ 0x079d, 0x07bd, 0x07f2, 0x07e2, 0x0718, 0x05cb,
+ 0x04a5, 0x0449, 0x04ea, 0x05ec, 0x0679, 0x067a,
+ 0x062b, 0x059a, 0x04fe, 0x047a, 0x0400, 0x03cd,
+ 0x03f4, 0x03dc, 0x0346, 0x029b, 0x01f5, 0x0132,
+ 0x009e, 0x0090, 0x0103, 0x01c6, 0x0282, 0x02ea,
+ 0x02ed, 0x025c, 0x013b, 0x004e, 0x003f, 0x00bc,
+ 0x0120, 0x0143, 0x0156, 0x01c4, 0x02d1, 0x03fa,
+ 0x0490, 0x04ad, 0x04c4, 0x04fa, 0x0540, 0x056d,
+ 0x0556, 0x0508, 0x04c3, 0x04a4, 0x0491, 0x0483,
+ 0x04a5, 0x04ed, 0x0522, 0x0536, 0x0523, 0x04eb,
+ 0x049b, 0x043d, 0x0410, 0x045e, 0x04ed, 0x057e,
+ 0x065c, 0x07a1, 0x08ae, 0x08b6, 0x07ae, 0x0673,
+ 0x05b8, 0x056d, 0x053a, 0x04de, 0x042c, 0x0310,
+ 0x01c4, 0x00e2, 0x0088, 0x0042, 0x000e, 0xfff6,
+ 0xff66, 0xfe64, 0xfd7e, 0xfcc3, 0xfc40, 0xfc48,
+ 0xfcb4, 0xfd0b, 0xfd30, 0xfd40, 0xfd0b, 0xfc50,
+ 0xfb4d, 0xfa3a, 0xf913, 0xf83c, 0xf7d3, 0xf764,
+ 0xf73c, 0xf7d0, 0xf88e, 0xf91e, 0xf9c5, 0xfa5c,
+ 0xfaa6, 0xfaa9, 0xf9fb, 0xf838, 0xf60b, 0xf4b5,
+ 0xf4ad, 0xf594, 0xf704, 0xf87f, 0xf964, 0xf992,
+ 0xf992, 0xfa0b, 0xfb10, 0xfbf5, 0xfc50, 0xfc5f,
+ 0xfc76, 0xfcca, 0xfd40, 0xfd87, 0xfdae, 0xfdd4,
+ 0xfdef, 0xfe37, 0xfea7, 0xff23, 0xffe0, 0x006a,
+ 0xfff8, 0xfec1, 0xfd89, 0xfceb, 0xfd2d, 0xfdfd,
+ 0xff11, 0x0058, 0x018e, 0x029a, 0x037d, 0x0409,
+ 0x047a, 0x04f7, 0x0504, 0x047c, 0x03b3, 0x02d0,
+ 0x01ef, 0x012a, 0x008e, 0x0036, 0x004c, 0x00dc,
+ 0x018e, 0x0201, 0x024b, 0x0263, 0x021f, 0x01ca,
+ 0x019a, 0x0167, 0x0124, 0x00e5, 0x00d7, 0x00dd,
+ 0x0058, 0xff5f, 0xfed8, 0xfef0, 0xff06, 0xfec7,
+ 0xfe5c, 0xfe13, 0xfe26, 0xfe8f, 0xfebf, 0xfe1b,
+ 0xfd01, 0xfc47, 0xfc22, 0xfc8f, 0xfd85, 0xfe83,
+ 0xff06, 0xfed3, 0xfe01, 0xfd16, 0xfc73, 0xfc45,
+ 0xfcb2, 0xfd43, 0xfd68, 0xfd64, 0xfd81, 0xfdd3,
+ 0xfe8f, 0xff64, 0xffd8, 0x0014, 0x004c, 0x0057,
+ 0x0034, 0x0019, 0x001b, 0x0033, 0x0077, 0x00fe,
+ 0x01a2, 0x0242, 0x02a4, 0x024f, 0x014a, 0x0042,
+ 0xffbd, 0x0000, 0x012f, 0x02ff, 0x04e8, 0x066b,
+ 0x0742, 0x0786, 0x0758, 0x06a5, 0x055b, 0x03b0,
+ 0x0257, 0x01dc, 0x01da, 0x01b8, 0x016b, 0x0104,
+ 0x0076, 0xffdd, 0xff79, 0xff5b, 0xff1e, 0xfe9c,
+ 0xfe69, 0xfed8, 0xff72, 0xff9a, 0xff12, 0xfe30,
+ 0xfd89, 0xfd31, 0xfcd4, 0xfc41, 0xfb9d, 0xfb68,
+ 0xfbe7, 0xfcaf, 0xfd39, 0xfd40, 0xfc8b, 0xfb65,
+ 0xfa88, 0xfa43, 0xfa70, 0xfb00, 0xfbe3, 0xfce0,
+ 0xfdcf, 0xfe94, 0xfee7, 0xfea2, 0xfe1a, 0xfdbe,
+ 0xfdbf, 0xfe2f, 0xff09, 0x001e, 0x010b, 0x0170,
+ 0x0192, 0x0212, 0x0313, 0x0447, 0x0550, 0x0617,
+ 0x06f8, 0x07db, 0x0808, 0x076c, 0x067e, 0x0560,
+ 0x0472, 0x0457, 0x0537, 0x06cf, 0x0889, 0x09b5,
+ 0x0a51, 0x0aae, 0x0acf, 0x0a9e, 0x0a22, 0x098c,
+ 0x090c, 0x08bf, 0x08ed, 0x09be, 0x0aad, 0x0b36,
+ 0x0b80, 0x0be5, 0x0c74, 0x0cf0, 0x0d1e, 0x0d06,
+ 0x0ce5, 0x0cda, 0x0cb1, 0x0c3a, 0x0b7b, 0x0a55,
+ 0x0900, 0x0883, 0x094a, 0x0a70, 0x0b22, 0x0b29,
+ 0x0a78, 0x0939, 0x07dc, 0x06bf, 0x05df, 0x050a,
+ 0x0475, 0x0458, 0x0461, 0x043a, 0x03c5, 0x030d,
+ 0x0272, 0x0248, 0x0277, 0x02b2, 0x02b1, 0x0271,
+ 0x022d, 0x01f6, 0x01de, 0x01ee, 0x0201, 0x0215,
+ 0x01f1, 0x0125, 0x0014, 0xff6a, 0xfefd, 0xfe88,
+ 0xfe15, 0xfd92, 0xfd38, 0xfd70, 0xfe19, 0xfec3,
+ 0xff50, 0xffd9, 0x0015, 0xff79, 0xfe10, 0xfc86,
+ 0xfb8d, 0xfb6e, 0xfba1, 0xfb79, 0xfb46, 0xfb8d,
+ 0xfc08, 0xfc57, 0xfc86, 0xfcb3, 0xfcf1, 0xfd4b,
+ 0xfd7c, 0xfd0a, 0xfc06, 0xfb19, 0xfa84, 0xfa25,
+ 0xfa25, 0xfa94, 0xfb2c, 0xfbb0, 0xfbf5, 0xfc1a,
+ 0xfc58, 0xfc63, 0xfc0f, 0xfbc5, 0xfbd3, 0xfc44,
+ 0xfcdd, 0xfd19, 0xfcdf, 0xfc91, 0xfc83, 0xfce8,
+ 0xfdbb, 0xfeb9, 0xff8a, 0xffd6, 0xffa3, 0xff42,
+ 0xfeca, 0xfe6b, 0xfe59, 0xfe38, 0xfdfc, 0xfe3f,
+ 0xfef1, 0xff98, 0x0082, 0x0200, 0x0390, 0x04a9,
+ 0x0538, 0x0532, 0x04d7, 0x04ad, 0x048f, 0x03d6,
+ 0x024d, 0x0021, 0xfdf0, 0xfcd2, 0xfd32, 0xfe9e,
+ 0x00a7, 0x02a5, 0x03f4, 0x04b6, 0x0518, 0x04e1,
+ 0x041e, 0x0323, 0x0271, 0x0287, 0x0376, 0x050a,
+ 0x06ec, 0x089d, 0x09dc, 0x0a5b, 0x09c3, 0x0878,
+ 0x0711, 0x059a, 0x046d, 0x0419, 0x046c, 0x04e2,
+ 0x0556, 0x05a8, 0x05a1, 0x054d, 0x0501, 0x04f9,
+ 0x051a, 0x0508, 0x0464, 0x031f, 0x019e, 0x0061,
+ 0xffb9, 0xff92, 0xff95, 0xff9b, 0xffa8, 0xffa7,
+ 0xffb1, 0xffc4, 0xffaf, 0xffde, 0x00d8, 0x0205,
+ 0x028c, 0x02a2, 0x02cc, 0x0325, 0x03aa, 0x0423,
+ 0x03eb, 0x02da, 0x01c5, 0x0154, 0x0159, 0x0195,
+ 0x01e8, 0x0202, 0x01f9, 0x0278, 0x03e4, 0x05c7,
+ 0x0759, 0x0850, 0x08b7, 0x085c, 0x074f, 0x0624,
+ 0x053f, 0x04de, 0x0535, 0x05f0, 0x06a1, 0x074c,
+ 0x07d2, 0x07f2, 0x07e1, 0x07c8, 0x0767, 0x06ac,
+ 0x05cb, 0x04ab, 0x0341, 0x01fd, 0x0111, 0x0042,
+ 0xffde, 0x0060, 0x014a, 0x01ac, 0x0145, 0x0039,
+ 0xfea5, 0xfcf5, 0xfbdc, 0xfb9d, 0xfbdc, 0xfbf5,
+ 0xfb29, 0xf970, 0xf818, 0xf840, 0xf971, 0xfaba,
+ 0xfb9b, 0xfbde, 0xfbdb, 0xfc0b, 0xfc29, 0xfbb4,
+ 0xface, 0xf9f2, 0xf92f, 0xf81c, 0xf6be, 0xf5c1,
+ 0xf593, 0xf642, 0xf798, 0xf8fc, 0xfa36, 0xfb75,
+ 0xfc62, 0xfca0, 0xfc60, 0xfbbc, 0xfad8, 0xf9fa,
+ 0xf918, 0xf84d, 0xf80e, 0xf86a, 0xf904, 0xf96a,
+ 0xf970, 0xf9a9, 0xfab6, 0xfc71, 0xfe31, 0xff16,
+ 0xfe9e, 0xfd7d, 0xfccd, 0xfcbd, 0xfd08, 0xfd9e,
+ 0xfe37, 0xfe6c, 0xfe76, 0xfee9, 0xfffb, 0x0180,
+ 0x02e3, 0x035a, 0x02e3, 0x0237, 0x01e7, 0x0211,
+ 0x024b, 0x0204, 0x015b, 0x00cd, 0x0095, 0x00c0,
+ 0x00fd, 0x00e9, 0x00d0, 0x0102, 0x011e, 0x00e4,
+ 0x00bc, 0x00f4, 0x0148, 0x0172, 0x017e, 0x016d,
+ 0x0112, 0x0060, 0xff77, 0xfeb2, 0xfe72, 0xfeba,
+ 0xff61, 0x0027, 0x009a, 0x007e, 0xfffd, 0xff78,
+ 0xff36, 0xff13, 0xfedc, 0xfe8f, 0xfde6, 0xfd0b,
+ 0xfcc7, 0xfd27, 0xfdb0, 0xfe48, 0xfe9b, 0xfe6e,
+ 0xfe4b, 0xfe79, 0xfe9d, 0xfeae, 0xff0a, 0xffdf,
+ 0x00ec, 0x01c0, 0x0210, 0x01d7, 0x016b, 0x013b,
+ 0x014e, 0x0187, 0x01e2, 0x023d, 0x0281, 0x02d6,
+ 0x0360, 0x03d9, 0x037e, 0x0205, 0x0029, 0xfebf,
+ 0xfe2c, 0xfe90, 0xff82, 0x008c, 0x01a0, 0x027b,
+ 0x02c7, 0x02a1, 0x0244, 0x01f3, 0x01ec, 0x01f9,
+ 0x01d5, 0x01b3, 0x01c6, 0x01c2, 0x0150, 0x008a,
+ 0xffba, 0xff26, 0xff0d, 0xff44, 0xff76, 0xff9d,
+ 0xff7c, 0xfecc, 0xfde3, 0xfd1a, 0xfc84, 0xfc50,
+ 0xfc45, 0xfbdf, 0xfb3a, 0xfaf1, 0xfb5a, 0xfc30,
+ 0xfce2, 0xfd2b, 0xfce1, 0xfc2c, 0xfbd2, 0xfbe7,
+ 0xfb97, 0xfaf9, 0xfac3, 0xfae1, 0xfb03, 0xfb0b,
+ 0xfad9, 0xfaac, 0xfaf1, 0xfb9a, 0xfc2e, 0xfc2f,
+ 0xfb97, 0xfafd, 0xfaf8, 0xfbac, 0xfce1, 0xfe29,
+ 0xff31, 0x0012, 0x0104, 0x0201, 0x0307, 0x0412,
+ 0x04df, 0x0543, 0x054f, 0x0500, 0x0465, 0x03c4,
+ 0x036e, 0x039d, 0x0401, 0x042a, 0x047e, 0x0544,
+ 0x05fa, 0x0697, 0x0754, 0x07c5, 0x07d2, 0x07e1,
+ 0x07e9, 0x07c0, 0x07ab, 0x07e9, 0x084a, 0x08a3,
+ 0x095d, 0x0a91, 0x0b81, 0x0c14, 0x0cf6, 0x0e0e,
+ 0x0ebc, 0x0ec8, 0x0e33, 0x0d1e, 0x0bdf, 0x0ae3,
+ 0x0a4f, 0x09e2, 0x099a, 0x09b2, 0x09d5, 0x09ae,
+ 0x099b, 0x09d5, 0x09f8, 0x0995, 0x08d8, 0x086f,
+ 0x08ad, 0x096f, 0x0a93, 0x0b67, 0x0aeb, 0x0954,
+ 0x07a5, 0x0670, 0x05e6, 0x05f5, 0x0617, 0x05d4,
+ 0x052c, 0x0474, 0x0402, 0x03da, 0x03df, 0x03f8,
+ 0x03d9, 0x032b, 0x020e, 0x0106, 0x008c, 0x00b7,
+ 0x0101, 0x00f8, 0x00f8, 0x0142, 0x0152, 0x00fa,
+ 0x00aa, 0x00ac, 0x0121, 0x01d5, 0x0204, 0x0149,
+ 0x001e, 0xff23, 0xfe9f, 0xfe86, 0xfe99, 0xfea4,
+ 0xfe9b, 0xfed7, 0xffaf, 0x008f, 0x007e, 0xff4e,
+ 0xfd8f, 0xfc06, 0xfb7c, 0xfc4c, 0xfdc2, 0xfec1,
+ 0xfefd, 0xfeba, 0xfe0a, 0xfd4a, 0xfcf4, 0xfcb6,
+ 0xfc27, 0xfb57, 0xfa4a, 0xf945, 0xf8be, 0xf887,
+ 0xf86b, 0xf8a5, 0xf920, 0xf9ad, 0xfa62, 0xfb15,
+ 0xfb80, 0xfba4, 0xfb73, 0xfad1, 0xf9f7, 0xf944,
+ 0xf8c1, 0xf828, 0xf77e, 0xf729, 0xf758, 0xf7cb,
+ 0xf837, 0xf89e, 0xf97a, 0xfb2f, 0xfd43, 0xfed9,
+ 0xffb8, 0x0017, 0xfffb, 0xff58, 0xfe6d, 0xfda6,
+ 0xfd4c, 0xfd62, 0xfdad, 0xfe08, 0xfe8d, 0xff5f,
+ 0x0052, 0x011b, 0x01a0, 0x01e8, 0x020b, 0x0269,
+ 0x0315, 0x0381, 0x0378, 0x037f, 0x03e0, 0x0459,
+ 0x04b2, 0x04ec, 0x04f8, 0x04cc, 0x0494, 0x0446,
+ 0x03e9, 0x0400, 0x0479, 0x0478, 0x040b, 0x03e1,
+ 0x03dc, 0x03ac, 0x0379, 0x0385, 0x040e, 0x04ee,
+ 0x0582, 0x0559, 0x0451, 0x02a0, 0x00ff, 0xfffb,
+ 0xff9e, 0xffd4, 0x0069, 0x011d, 0x01b0, 0x01e2,
+ 0x01cf, 0x01bc, 0x0190, 0x0132, 0x00d3, 0x00d4,
+ 0x01a0, 0x032a, 0x04b3, 0x0593, 0x0590, 0x04b0,
+ 0x036a, 0x0271, 0x01e8, 0x018c, 0x017c, 0x01f2,
+ 0x0283, 0x02c3, 0x0306, 0x03bd, 0x04cf, 0x0600,
+ 0x070e, 0x0763, 0x06d4, 0x0625, 0x05ec, 0x05f1,
+ 0x05f8, 0x05db, 0x0584, 0x0567, 0x05bd, 0x05fc,
+ 0x05f3, 0x05d2, 0x057e, 0x0501, 0x0496, 0x0471,
+ 0x04ba, 0x0507, 0x04b0, 0x039f, 0x0230, 0x010c,
+ 0x00b7, 0x00f1, 0x0173, 0x0240, 0x0310, 0x038b,
+ 0x037d, 0x02e4, 0x0238, 0x01c4, 0x015c, 0x00b9,
+ 0xff73, 0xfd92, 0xfc02, 0xfb4c, 0xfb35, 0xfb5e,
+ 0xfb6e, 0xfb71, 0xfbbb, 0xfc17, 0xfc12, 0xfb78,
+ 0xfa69, 0xf966, 0xf8a8, 0xf805, 0xf7a4, 0xf78e,
+ 0xf75f, 0xf72a, 0xf72b, 0xf732, 0xf712, 0xf706,
+ 0xf75e, 0xf802, 0xf878, 0xf889, 0xf887, 0xf8a2,
+ 0xf895, 0xf82e, 0xf78f, 0xf6ab, 0xf583, 0xf4a6,
+ 0xf468, 0xf4c1, 0xf5e3, 0xf77a, 0xf89c, 0xf93e,
+ 0xf9d8, 0xfa57, 0xfaa4, 0xfaf6, 0xfb6d, 0xfbf5,
+ 0xfcb4, 0xfe0b, 0xffaf, 0x00ca, 0x0137, 0x0128,
+ 0x00b8, 0x006c, 0x0071, 0x0048, 0xffec, 0xffb3,
+ 0xffac, 0xfff9, 0x00b3, 0x0181, 0x01ed, 0x01fe,
+ 0x0220, 0x0264, 0x02ac, 0x0321, 0x03ad, 0x0414,
+ 0x0483, 0x04d2, 0x04a9, 0x0458, 0x040c, 0x0391,
+ 0x031a, 0x02b5, 0x0218, 0x017d, 0x0166, 0x01db,
+ 0x028c, 0x0303, 0x0295, 0x0119, 0xff73, 0xfe7a,
+ 0xfe17, 0xfe11, 0xfe4a, 0xfe79, 0xfea3, 0xfec8,
+ 0xfe75, 0xfda8, 0xfcf1, 0xfc9b, 0xfc74, 0xfc14,
+ 0xfb97, 0xfbb7, 0xfc9b, 0xfdc4, 0xfeec, 0xffb7,
+ 0xffae, 0xff2c, 0xff21, 0xff95, 0xff74, 0xfe6e,
+ 0xfd77, 0xfd21, 0xfd43, 0xfdb9, 0xfe31, 0xfe62,
+ 0xfe34, 0xfd77, 0xfcb3, 0xfcd6, 0xfdc6, 0xff1f,
+ 0x00b6, 0x01ea, 0x0266, 0x026c, 0x0217, 0x01b5,
+ 0x0197, 0x0150, 0x009d, 0xfff4, 0xffe4, 0x008d,
+ 0x0173, 0x0214, 0x0275, 0x025c, 0x0138, 0xff75,
+ 0xfe43, 0xfe05, 0xfe46, 0xfed4, 0xffaf, 0x0081,
+ 0x0113, 0x017d, 0x01b7, 0x016a, 0x0053, 0xfec6,
+ 0xfd9d, 0xfd6d, 0xfe38, 0xffb3, 0x0147, 0x026e,
+ 0x02f8, 0x02a3, 0x015d, 0xffee, 0xff25, 0xfecd,
+ 0xfe48, 0xfd8e, 0xfd02, 0xfcdd, 0xfd25, 0xfda4,
+ 0xfe12, 0xfe5e, 0xfe49, 0xfd9a, 0xfd0e, 0xfd5f,
+ 0xfe0c, 0xfe67, 0xfe44, 0xfdb0, 0xfd37, 0xfd4b,
+ 0xfda5, 0xfdfc, 0xfe28, 0xfe0b, 0xfe05, 0xfea4,
+ 0xffdb, 0x00fa, 0x0144, 0x00cc, 0x0035, 0xffb5,
+ 0xff47, 0xff21, 0xff73, 0x007a, 0x0250, 0x0481,
+ 0x0670, 0x07a3, 0x080d, 0x0846, 0x0887, 0x0865,
+ 0x07ff, 0x07d9, 0x07e2, 0x07ea, 0x0808, 0x081e,
+ 0x080e, 0x0820, 0x0860, 0x0862, 0x081a, 0x07fd,
+ 0x0823, 0x082b, 0x0800, 0x07fe, 0x089f, 0x0a1a,
+ 0x0bec, 0x0d1f, 0x0d7d, 0x0d97, 0x0db1, 0x0dae,
+ 0x0d96, 0x0d40, 0x0c56, 0x0b29, 0x0a6a, 0x0a24,
+ 0x09fd, 0x09db, 0x09a9, 0x0949, 0x08e0, 0x087e,
+ 0x082f, 0x086f, 0x0951, 0x09de, 0x09a2, 0x0932,
+ 0x08a7, 0x07c8, 0x0711, 0x06f9, 0x0737, 0x0758,
+ 0x0732, 0x06f7, 0x06ed, 0x06ec, 0x0692, 0x05e1,
+ 0x052a, 0x0492, 0x0415, 0x03cd, 0x03f3, 0x0498,
+ 0x05ac, 0x06e6, 0x0793, 0x070c, 0x0567, 0x034a,
+ 0x016d, 0x0045, 0xffaf, 0xff52, 0xff40, 0xff8a,
+ 0xffcc, 0xffc5, 0xffb4, 0xffd8, 0x0016, 0x0013,
+ 0xff7b, 0xfe68, 0xfd4c, 0xfc64, 0xfbb3, 0xfb23,
+ 0xfa74, 0xf9a5, 0xf934, 0xf947, 0xf951, 0xf917,
+ 0xf8e7, 0xf8b4, 0xf837, 0xf75a, 0xf600, 0xf478,
+ 0xf3b0, 0xf3f0, 0xf497, 0xf572, 0xf6b9, 0xf832,
+ 0xf96b, 0xfa31, 0xfa95, 0xfacb, 0xfadd, 0xfaa4,
+ 0xf9fa, 0xf90d, 0xf875, 0xf895, 0xf92c, 0xf9dc,
+ 0xfa64, 0xfaca, 0xfb79, 0xfc80, 0xfd71, 0xfe1b,
+ 0xfe65, 0xfe33, 0xfddd, 0xfdcb, 0xfe12, 0xfea4,
+ 0xff3b, 0xff88, 0xff8d, 0xff69, 0xff67, 0xfffc,
+ 0x0114, 0x0225, 0x02c7, 0x02e5, 0x02e0, 0x0357,
+ 0x0447, 0x0513, 0x057d, 0x05e3, 0x065e, 0x0691,
+ 0x065f, 0x0605, 0x05a5, 0x0541, 0x04e0, 0x048f,
+ 0x0461, 0x0452, 0x043f, 0x0448, 0x04cb, 0x05f3,
+ 0x0767, 0x0885, 0x0902, 0x0928, 0x0940, 0x0919,
+ 0x0862, 0x0743, 0x0659, 0x0624, 0x0688, 0x06e7,
+ 0x06bf, 0x061d, 0x0578, 0x051f, 0x04dd, 0x046a,
+ 0x03e9, 0x0378, 0x02e1, 0x0228, 0x0183, 0x0105,
+ 0x010f, 0x01ee, 0x02f6, 0x038c, 0x03fa, 0x048b,
+ 0x0527, 0x056f, 0x04d9, 0x0387, 0x023e, 0x014d,
+ 0x00b5, 0x00c2, 0x0171, 0x0243, 0x02f1, 0x035d,
+ 0x033c, 0x02b2, 0x0288, 0x02c4, 0x0257, 0x00d6,
+ 0xfef0, 0xfd52, 0xfc6b, 0xfc75, 0xfd53, 0xfef6,
+ 0x0131, 0x034a, 0x0490, 0x050a, 0x050d, 0x04c1,
+ 0x045a, 0x041e, 0x0400, 0x03bf, 0x0353, 0x02f2,
+ 0x02d3, 0x02e3, 0x028e, 0x01a5, 0x00f6, 0x0109,
+ 0x0146, 0x0139, 0x013e, 0x018d, 0x01c4, 0x018e,
+ 0x00fb, 0x005c, 0x0036, 0x00d5, 0x01df, 0x02e0,
+ 0x03a8, 0x03f0, 0x03c3, 0x03b4, 0x0407, 0x0452,
+ 0x03e9, 0x0265, 0x004c, 0xfedc, 0xfe86, 0xfe89,
+ 0xfe3d, 0xfdb2, 0xfcf9, 0xfbfc, 0xfb01, 0xfa5c,
+ 0xfa27, 0xfa85, 0xfb3f, 0xfbaf, 0xfbb7, 0xfbbd,
+ 0xfbc1, 0xfb7e, 0xfae6, 0xfa1d, 0xf982, 0xf965,
+ 0xf9a2, 0xfa0a, 0xfac2, 0xfbae, 0xfc40, 0xfc27,
+ 0xfb7a, 0xfa72, 0xf97d, 0xf916, 0xf92e, 0xf977,
+ 0xf9d3, 0xfa13, 0xf9f7, 0xf9b7, 0xf98a, 0xf90d,
+ 0xf831, 0xf7cd, 0xf85f, 0xf98b, 0xfb0b, 0xfcc3,
+ 0xfe42, 0xff09, 0xfed1, 0xfdbc, 0xfc7d, 0xfbce,
+ 0xfbde, 0xfc63, 0xfce6, 0xfd13, 0xfcfe, 0xfcda,
+ 0xfc6e, 0xfb7d, 0xfa76, 0xf9e7, 0xf9b9, 0xf9a6,
+ 0xf9ad, 0xf9e0, 0xfa5e, 0xfb4f, 0xfc78, 0xfd7a,
+ 0xfe43, 0xfee9, 0xff79, 0xffe3, 0xfff1, 0xff7f,
+ 0xfeb4, 0xfe04, 0xfdbf, 0xfdca, 0xfdf2, 0xfe28,
+ 0xfe5d, 0xfe81, 0xfeca, 0xff88, 0x0099, 0x0150,
+ 0x0145, 0x0102, 0x012b, 0x0173, 0x013a, 0x00ab,
+ 0x0050, 0x004d, 0x007f, 0x0092, 0x003a, 0xffbd,
+ 0xff8a, 0xffd7, 0x00a8, 0x0196, 0x0263, 0x0368,
+ 0x0453, 0x0471, 0x0401, 0x037e, 0x0316, 0x02e4,
+ 0x0293, 0x01f5, 0x0171, 0x0129, 0x012d, 0x01aa,
+ 0x024a, 0x0274, 0x01fa, 0x0168, 0x016c, 0x01fd,
+ 0x02cd, 0x0388, 0x03bc, 0x03e8, 0x0470, 0x046e,
+ 0x039a, 0x0297, 0x0196, 0x00d6, 0x006c, 0x0024,
+ 0x000b, 0xffbe, 0xff37, 0xff65, 0xfff4, 0x0018,
+ 0x002d, 0x000c, 0xff94, 0xff71, 0xff34, 0xfe1d,
+ 0xfcae, 0xfb4c, 0xfa16, 0xf992, 0xf98d, 0xf947,
+ 0xf923, 0xf9e7, 0xfad4, 0xfabd, 0xf9e5, 0xf91e,
+ 0xf8b1, 0xf8a5, 0xf8aa, 0xf877, 0xf870, 0xf8ea,
+ 0xf9bc, 0xfa8b, 0xfac6, 0xfa3e, 0xf9a8, 0xf997,
+ 0xf9bb, 0xf9c3, 0xf9d9, 0xf9f8, 0xfa0c, 0xfa64,
+ 0xfb03, 0xfb92, 0xfc34, 0xfd31, 0xfe7d, 0xfff6,
+ 0x015e, 0x0261, 0x02ed, 0x0329, 0x0337, 0x0344,
+ 0x0384, 0x03fc, 0x04b5, 0x05de, 0x0705, 0x076d,
+ 0x0770, 0x07d5, 0x088e, 0x0927, 0x0970, 0x0956,
+ 0x086e, 0x068c, 0x04d2, 0x045a, 0x04ef, 0x063f,
+ 0x080d, 0x09c2, 0x0b17, 0x0bef, 0x0c51, 0x0cbb,
+ 0x0d55, 0x0df1, 0x0e42, 0x0dc3, 0x0c9f, 0x0b2c,
+ 0x096f, 0x084b, 0x0866, 0x090d, 0x0993, 0x098f,
+ 0x0945, 0x09cb, 0x0ae6, 0x0bbc, 0x0c4c, 0x0ba0,
+ 0x0955, 0x07a5, 0x0780, 0x0751, 0x06cc, 0x06ac,
+ 0x0672, 0x060e, 0x0678, 0x0739, 0x06ec, 0x05da,
+ 0x0508, 0x047d, 0x043c, 0x0481, 0x04b1, 0x042c,
+ 0x035f, 0x02e8, 0x02b0, 0x02b1, 0x0347, 0x03ca,
+ 0x02e0, 0x00dc, 0xff55, 0xfeb9, 0xfe94, 0xfed8,
+ 0xff62, 0xffba, 0xfff1, 0x005a, 0x0106, 0x01bf,
+ 0x0211, 0x0226, 0x0275, 0x0214, 0x00b5, 0xffdf,
+ 0xff6e, 0xfe6a, 0xfd9d, 0xfcc4, 0xfb28, 0xfa4c,
+ 0xfaca, 0xfb77, 0xfc1a, 0xfca1, 0xfc66, 0xfb6f,
+ 0xface, 0xfb72, 0xfc3b, 0xfbc4, 0xfaf2, 0xfa43,
+ 0xf910, 0xf83d, 0xf86f, 0xf8c9, 0xf959, 0xfaaf,
+ 0xfc1d, 0xfc98, 0xfc08, 0xfb20, 0xfa34, 0xf93d,
+ 0xf89f, 0xf89c, 0xf915, 0xf9fe, 0xfb15, 0xfbe0,
+ 0xfc00, 0xfb8e, 0xfb62, 0xfbe3, 0xfcbc, 0xfe4b,
+ 0x0011, 0xffa4, 0xfd8c, 0xfd6d, 0xfe8f, 0xfe44,
+ 0xfe74, 0xff96, 0xff1b, 0xfe9e, 0xff1f, 0xfdc5,
+ 0xfc05, 0xfce3, 0xfea7, 0xff9d, 0x0016, 0x00ef,
+ 0x028e, 0x02f5, 0x01ef, 0x01ad, 0x00ae, 0xfe3a,
+ 0xfd79, 0xfe56, 0xff15, 0x0087, 0x0288, 0x03f7,
+ 0x04dc, 0x05e8, 0x0749, 0x0795, 0x06a1, 0x05f3,
+ 0x047f, 0x01df, 0x00c7, 0x0173, 0x01e0, 0x01c0,
+ 0x01fc, 0x0355, 0x04dc, 0x055d, 0x05b5, 0x05ac,
+ 0x0463, 0x0386, 0x03c2, 0x0422, 0x050a, 0x05f7,
+ 0x060f, 0x0683, 0x0718, 0x05fc, 0x03b9, 0x01ce,
+ 0x0047, 0xfed2, 0xfdc1, 0xfdf7, 0xfee4, 0xfe84,
+ 0xfdd4, 0xff30, 0x00cf, 0x00e4, 0x00c7, 0x0060,
+ 0xffca, 0x00ba, 0x01da, 0x01d5, 0x0238, 0x0259,
+ 0x00e4, 0xff90, 0x0008, 0x016c, 0x0134, 0xff9a,
+ 0xffdf, 0x0145, 0x017e, 0x0262, 0x041a, 0x049d,
+ 0x04f7, 0x0630, 0x0743, 0x0713, 0x05df, 0x056c,
+ 0x04f5, 0x0350, 0x0360, 0x04d6, 0x049b, 0x0499,
+ 0x0597, 0x050b, 0x03d1, 0x03c4, 0x0527, 0x0699,
+ 0x05cf, 0x0526, 0x068c, 0x05dc, 0x03e9, 0x04d7,
+ 0x0548, 0x03b7, 0x03b2, 0x0346, 0x00a8, 0x0033,
+ 0x025b, 0x0331, 0x02ef, 0x0358, 0x0336, 0x01dd,
+ 0x008a, 0xff9d, 0xfeda, 0xfeaa, 0xff09, 0xfed3,
+ 0xfd66, 0xfc48, 0xfcf3, 0xfeb3, 0x009e, 0x0221,
+ 0x020c, 0x0007, 0xfcea, 0xf9c2, 0xf717, 0xf474,
+ 0xf2de, 0xf3ee, 0xf5db, 0xf785, 0xfa27, 0xfbd6,
+ 0xfac4, 0xf98b, 0xf9db, 0xfac8, 0xfbf7, 0xfdb2,
+ 0xff19, 0xfe27, 0xfbcf, 0xfb17, 0xfaea, 0xfa1e,
+ 0xfaee, 0xfc3f, 0xfbf8, 0xfc2f, 0xfd02, 0xfc87,
+ 0xfc4b, 0xfd95, 0xfec6, 0xfeef, 0xfec6, 0xff20,
+ 0xff77, 0xfeae, 0xfdc1, 0xfe02, 0xfdff, 0xfd04,
+ 0xfdbc, 0x011e, 0x0438, 0x0521, 0x0473, 0x02a5,
+ 0x0083, 0xff8d, 0xff96, 0xff1c, 0xfe73, 0xff46,
+ 0x00d6, 0x0131, 0x0142, 0x0218, 0x021d, 0x0176,
+ 0x0266, 0x041e, 0x0477, 0x0464, 0x0451, 0x01ed,
+ 0xfe56, 0xfdb9, 0xff6f, 0x008f, 0x0187, 0x0262,
+ 0x0245, 0x01f0, 0x0189, 0x012d, 0x0150, 0x00ed,
+ 0x003d, 0x0077, 0x013f, 0x02b6, 0x03ea, 0x0271,
+ 0xffc8, 0xfedc, 0xff7b, 0x00db, 0x0275, 0x036e,
+ 0x0389, 0x0321, 0x0316, 0x0338, 0x02af, 0x02ae,
+ 0x035a, 0x02d6, 0x01e5, 0x01c2, 0x0189, 0x013c,
+ 0x013e, 0x0172, 0x027c, 0x03f7, 0x0484, 0x0423,
+ 0x035a, 0x0211, 0x006a, 0xff2b, 0xfed3, 0xff59,
+ 0x00b7, 0x0223, 0x0253, 0x01c1, 0x017e, 0x01aa,
+ 0x02b4, 0x0434, 0x0496, 0x0428, 0x040d, 0x03a0,
+ 0x027e, 0x0147, 0xfff3, 0xfebb, 0xfea0, 0xff66,
+ 0xffeb, 0xffc6, 0xff27, 0xfe40, 0xfca9, 0xfab0,
+ 0xfa9f, 0xfc02, 0xfb87, 0xfab3, 0xfc37, 0xfceb,
+ 0xfb83, 0xfbd6, 0xfdbe, 0xfdf1, 0xfd86, 0xfe05,
+ 0xfc81, 0xf8ce, 0xf745, 0xf7a7, 0xf857, 0xfb53,
+ 0xfe2d, 0xfe89, 0xffa3, 0xff1c, 0xfb5e, 0xfb93,
+ 0xfef8, 0xff32, 0xfe4c, 0xfdf8, 0xfd1f, 0xfc25,
+ 0xfa29, 0xf9a3, 0xfc3f, 0xfcbb, 0xfb38, 0xfb40,
+ 0xfa1b, 0xf861, 0xf9bf, 0xfbea, 0xfc0d, 0xfb14,
+ 0xfb37, 0xfc8d, 0xfd30, 0xfe8c, 0x0128, 0x017a,
+ 0x007f, 0x0046, 0xff2d, 0xfe96, 0xff99, 0x0143,
+ 0x046f, 0x0597, 0x0286, 0x01bf, 0x0424, 0x0441,
+ 0x036f, 0x0400, 0x044a, 0x03de, 0x032f, 0x0334,
+ 0x049f, 0x05cd, 0x0634, 0x067d, 0x0653, 0x05fb,
+ 0x04c2, 0x0221, 0x0102, 0x01fb, 0x02fe, 0x05cc,
+ 0x0a0b, 0x0ae6, 0x08c8, 0x07ff, 0x090e, 0x097f,
+ 0x07b7, 0x0632, 0x0695, 0x0508, 0x02f8, 0x068f,
+ 0x0c9c, 0x0f3b, 0x0ed9, 0x0cc2, 0x0b1d, 0x0b37,
+ 0x0bd2, 0x0e1a, 0x103d, 0x0e94, 0x0c9f, 0x0b90,
+ 0x093e, 0x093d, 0x0bb4, 0x0ca1, 0x0bdb, 0x09f2,
+ 0x0985, 0x0af9, 0x0977, 0x0821, 0x0a2b, 0x0945,
+ 0x0617, 0x0466, 0x01e8, 0x0048, 0x003e, 0x0149,
+ 0x066d, 0x08e8, 0x03cb, 0x00bc, 0x0069, 0xfd8c,
+ 0xfd38, 0xfefd, 0xfed3, 0x00cb, 0x0393, 0x028b,
+ 0x0131, 0x0124, 0xff2d, 0xfc78, 0xfbec, 0xfb4b,
+ 0xf8dc, 0xf8ef, 0xfb5c, 0xfa06, 0xf7bb, 0xf920,
+ 0xf8fd, 0xf745, 0xf973, 0xfb9e, 0xfae7, 0xfbd1,
+ 0xfd8c, 0xfd3e, 0xfc3b, 0xfaa1, 0xf956, 0xf9d1,
+ 0xf966, 0xf7ad, 0xf6de, 0xf5cf, 0xf4ca, 0xf473,
+ 0xf19b, 0xeb6a, 0xe111, 0xd18e, 0xc6ee, 0xcc87,
+ 0xdf86, 0xf744, 0x0bed, 0x159c, 0x1218, 0x0724,
+ 0xfd11, 0xf77d, 0xf486, 0xf2dc, 0xf16b, 0xef0a,
+ 0xecf0, 0xe9b6, 0xe440, 0xe0dc, 0xe216, 0xea08,
+ 0xf9db, 0x08e8, 0x0fe5, 0x0f2f, 0x052c, 0xf5ab,
+ 0xeb05, 0xe8c9, 0xee12, 0xf78f, 0xff3e, 0x03e6,
+ 0x0583, 0x0394, 0x0196, 0xff70, 0xfae5, 0xf73f,
+ 0xf60c, 0xf61b, 0xf800, 0xfa64, 0xfbd5, 0xfdbb,
+ 0x0110, 0x05de, 0x0abd, 0x0d08, 0x0c3a, 0x0a2e,
+ 0x0956, 0x0a8a, 0x0b84, 0x0a85, 0x0915, 0x0810,
+ 0x0655, 0x05b6, 0x07fd, 0x08c5, 0x0646, 0x052e,
+ 0x0518, 0x0391, 0x028e, 0x009f, 0xfc8a, 0xfab9,
+ 0xfcdb, 0x0136, 0x05bb, 0x08b9, 0x0b66, 0x0cd0,
+ 0x0c05, 0x0dd8, 0x10fd, 0x0fa0, 0x0d28, 0x0cc1,
+ 0x0bc1, 0x0aa6, 0x0b28, 0x0d46, 0x1001, 0x116c,
+ 0x1222, 0x12b7, 0x1235, 0x12c0, 0x1497, 0x13df,
+ 0x118b, 0x11a3, 0x133d, 0x148d, 0x179a, 0x1b20,
+ 0x19df, 0x1506, 0x1087, 0x0c6b, 0x0c0e, 0x118b,
+ 0x1688, 0x1795, 0x1733, 0x179b, 0x1a60, 0x1eb9,
+ 0x2415, 0x2ad6, 0x2fdc, 0x32e2, 0x3767, 0x3c61,
+ 0x3e5a, 0x3c04, 0x38c0, 0x3861, 0x3855, 0x3a54,
+ 0x4179, 0x432c, 0x3af4, 0x32e4, 0x2d66, 0x298b,
+ 0x2a7f, 0x2f3f, 0x358a, 0x395f, 0x3795, 0x3475,
+ 0x3016, 0x290f, 0x269c, 0x2881, 0x27b2, 0x2693,
+ 0x2328, 0x130e, 0x0155, 0x05ed, 0x1714, 0x1cbc,
+ 0x1ef6, 0x2475, 0x1f67, 0x1649, 0x1517, 0x14c3,
+ 0x123f, 0x0bf8, 0x0207, 0xfe20, 0xfd91, 0xfc25,
+ 0xfec6, 0xfea8, 0xfb8b, 0xfd56, 0xfd42, 0xfb91,
+ 0xfb93, 0xf574, 0xeed6, 0xee4a, 0xee3e, 0xee35,
+ 0xebc0, 0xe8cb, 0xeba8, 0xec48, 0xeaef, 0xec9f,
+ 0xe885, 0xe599, 0xe8b8, 0xe286, 0xda5c, 0xdc9a,
+ 0xe097, 0xe334, 0xe1f9, 0xddf9, 0xdffe, 0xdf70,
+ 0xdac7, 0xdb72, 0xd478, 0xc833, 0xc9ae, 0xcb8c,
+ 0xc6dd, 0xcbb9, 0xd0a2, 0xcb4a, 0xcb7a, 0xd040,
+ 0xcb8d, 0xc801, 0xce22, 0xd06f, 0xd003, 0xd3c6,
+ 0xcece, 0xc4d2, 0xc443, 0xc376, 0xc2aa, 0xc96b,
+ 0xca0f, 0xc6c1, 0xca26, 0xca37, 0xc6d9, 0xc3bd,
+ 0xbe6a, 0xc11e, 0xc60d, 0xc08e, 0xc12c, 0xc9af,
+ 0xc5ae, 0xbb60, 0xbdfe, 0xcc04, 0xd23e, 0xcdbd,
+ 0xd3f0, 0xdc58, 0xd093, 0xc781, 0xcbd5, 0xc58f,
+ 0xbeeb, 0xc72a, 0xcaf8, 0xc326, 0xbc41, 0xbe67,
+ 0xc373, 0xbe11, 0xbd75, 0xce2f, 0xd18b, 0xc906,
+ 0xd4bb, 0xdae4, 0xca55, 0xcaf7, 0xd7d4, 0xcf92,
+ 0xc5e2, 0xc8b3, 0xc5bb, 0xc413, 0xcfcc, 0xd7b9,
+ 0xd1c9, 0xcf9a, 0xda3b, 0xdba5, 0xce3b, 0xd055,
+ 0xdf15, 0xdc0b, 0xd525, 0xdc4c, 0xdf39, 0xdbe9,
+ 0xde2f, 0xe241, 0xe602, 0xe671, 0xe396, 0xe8eb,
+ 0xeefd, 0xea51, 0xe95c, 0xed76, 0xe645, 0xdcc1,
+ 0xe25d, 0xeec4, 0xf006, 0xe77d, 0xe485, 0xe86f,
+ 0xe974, 0xe835, 0xe899, 0xea40, 0xec08, 0xeb04,
+ 0xea04, 0xebc0, 0xeacd, 0xec2f, 0xf431, 0xf63c,
+ 0xf597, 0xfbdf, 0xf9db, 0xf0ad, 0xf64e, 0x01e3,
+ 0x02e1, 0x0173, 0x0265, 0x0435, 0x084b, 0x071d,
+ 0x0064, 0x038d, 0x112d, 0x191d, 0x1657, 0x111c,
+ 0x102a, 0x1295, 0x11c1, 0x0e5d, 0x13f6, 0x1d4a,
+ 0x17b4, 0x0f78, 0x15ab, 0x189e, 0x180e, 0x2187,
+ 0x1e3f, 0x1366, 0x210f, 0x2a37, 0x1e73, 0x20c9,
+ 0x227c, 0x160e, 0x1d81, 0x2607, 0x1927, 0x1ae5,
+ 0x26bd, 0x2335, 0x21e4, 0x24d3, 0x22ef, 0x229a,
+ 0x1dcb, 0x1690, 0x16dc, 0x1d15, 0x27c6, 0x2532,
+ 0x1515, 0x199a, 0x2331, 0x19ba, 0x19f2, 0x1d3b,
+ 0x1557, 0x1d5f, 0x246d, 0x1be5, 0x201e, 0x2122,
+ 0x18da, 0x218f, 0x22e6, 0x189f, 0x1e5f, 0x1fc1,
+ 0x1b87, 0x22c9, 0x234e, 0x2852, 0x3657, 0x2bb4,
+ 0x1f11, 0x2b49, 0x3407, 0x358d, 0x3709, 0x3341,
+ 0x37e8, 0x3c3f, 0x3282, 0x2fb2, 0x3291, 0x2fda,
+ 0x332e, 0x33bc, 0x2a8f, 0x29e0, 0x317c, 0x3778,
+ 0x3a73, 0x374e, 0x32b9, 0x2fb4, 0x293c, 0x2502,
+ 0x2a22, 0x3239, 0x30be, 0x2753, 0x286f, 0x3005,
+ 0x2dab, 0x2ff9, 0x38de, 0x325d, 0x2aca, 0x3314,
+ 0x3846, 0x3367, 0x2ed9, 0x2ffe, 0x36de, 0x37df,
+ 0x32b5, 0x34f2, 0x37ac, 0x38ed, 0x437f, 0x45f0,
+ 0x3965, 0x385c, 0x3c9f, 0x31d3, 0x2e88, 0x3c2e,
+ 0x3edf, 0x38d8, 0x3c70, 0x3c01, 0x32e7, 0x3213,
+ 0x379c, 0x3954, 0x323a, 0x27c5, 0x2eb0, 0x35d9,
+ 0x2146, 0x1b32, 0x30eb, 0x2d1b, 0x2284, 0x2fd6,
+ 0x2d00, 0x2664, 0x34ce, 0x2f0b, 0x240d, 0x31ef,
+ 0x2e85, 0x2068, 0x268d, 0x22d1, 0x1e56, 0x2e88,
+ 0x2a52, 0x1891, 0x2231, 0x2969, 0x1c8c, 0x1c1e,
+ 0x212f, 0x1a7d, 0x1d47, 0x23cb, 0x1830, 0x15d1,
+ 0x2306, 0x1bfe, 0x1704, 0x2867, 0x223b, 0x11cd,
+ 0x1daf, 0x1de8, 0x1485, 0x24c3, 0x2512, 0x158c,
+ 0x21a6, 0x25c8, 0x175e, 0x1c2a, 0x1c9b, 0x0f18,
+ 0x129a, 0x17b7, 0x1021, 0x0ce0, 0x0e49, 0x120d,
+ 0x172f, 0x13c5, 0x0cda, 0x0f75, 0x15c2, 0x0f0e,
+ 0x07a4, 0x161a, 0x1ba0, 0x078b, 0x0833, 0x15ae,
+ 0x0c8a, 0x0cf7, 0x16d7, 0x0d09, 0x0b55, 0x10b6,
+ 0x0797, 0x0920, 0x0e88, 0x07e0, 0x0b57, 0x0b38,
+ 0xff5d, 0x03fb, 0x0a19, 0x048d, 0x06ec, 0x089a,
+ 0x05ff, 0x0a3e, 0x08e6, 0x01af, 0xffd6, 0xfecf,
+ 0xfd04, 0xface, 0xf94b, 0xf8d4, 0xf518, 0xfa65,
+ 0x0654, 0x0021, 0xf745, 0xfaec, 0xf65c, 0xf07e,
+ 0xf2c1, 0xf0e5, 0xf382, 0xf89b, 0xf681, 0xf7c9,
+ 0xf19f, 0xe62d, 0xeed1, 0xf514, 0xee5a, 0xf4d6,
+ 0xf6ba, 0xeb12, 0xec62, 0xf34f, 0xf630, 0xf6bf,
+ 0xed93, 0xe801, 0xe566, 0xdb71, 0xe2b7, 0xed16,
+ 0xdcd1, 0xd70e, 0xe2e3, 0xdd9a, 0xd536, 0xd1e6,
+ 0xcc28, 0xd39a, 0xd937, 0xcfe4, 0xd05a, 0xd364,
+ 0xcd6c, 0xd061, 0xd43f, 0xd06a, 0xd39a, 0xd6d5,
+ 0xcfbd, 0xcb8b, 0xd3b2, 0xdcca, 0xd91f, 0xd3a1,
+ 0xd411, 0xccc5, 0xc859, 0xcf16, 0xcb4e, 0xc636,
+ 0xc9d3, 0xc4df, 0xc899, 0xd3a5, 0xc5e3, 0xbe6b,
+ 0xcb37, 0xc42f, 0xc043, 0xd32a, 0xd3f9, 0xc9ed,
+ 0xcccf, 0xce98, 0xd3a2, 0xdb7d, 0xda47, 0xdd6c,
+ 0xe274, 0xe080, 0xe4af, 0xea1b, 0xe878, 0xe5e6,
+ 0xe32e, 0xe6dc, 0xea0f, 0xe1d2, 0xe498, 0xeff9,
+ 0xed5f, 0xee2b, 0xefd0, 0xe441, 0xe52a, 0xea9f,
+ 0xe46d, 0xedad, 0xf491, 0xe333, 0xe329, 0xf241,
+ 0xebfb, 0xe263, 0xe60a, 0xe9b4, 0xe785, 0xe5d9,
+ 0xf1a3, 0xfdda, 0xf425, 0xead3, 0xf29f, 0xf84b,
+ 0xf596, 0xf18d, 0xf598, 0xfc1a, 0xf18d, 0xf0c6,
+ 0x080c, 0x03d5, 0xee89, 0xf76c, 0xfdc4, 0xf4d8,
+ 0xfade, 0x003e, 0xfd64, 0xfc5a, 0xf6b3, 0xfba8,
+ 0x0594, 0xf916, 0xefb0, 0xf904, 0xfbc2, 0xf9c9,
+ 0xfbd5, 0xfc54, 0xf79e, 0xed82, 0xf0c0, 0xfeeb,
+ 0xfa43, 0xefb2, 0xebf5, 0xe1e1, 0xe15c, 0xe4da,
+ 0xda4e, 0xdb6c, 0xdcd9, 0xcbfe, 0xd0b1, 0xdf4a,
+ 0xd47d, 0xcf80, 0xd647, 0xd4df, 0xd634, 0xd599,
+ 0xd336, 0xd950, 0xd69a, 0xd402, 0xe251, 0xe814,
+ 0xe12c, 0xdfc7, 0xe31c, 0xe5bc, 0xdd2e, 0xd3fe,
+ 0xdc96, 0xdb90, 0xce15, 0xd4e1, 0xdbec, 0xd523,
+ 0xd738, 0xdb20, 0xdfad, 0xe9c0, 0xe636, 0xe226,
+ 0xe927, 0xe550, 0xe400, 0xee3a, 0xe7ec, 0xd872,
+ 0xd54a, 0xd7fd, 0xd8ba, 0xd5c9, 0xd790, 0xdf0e,
+ 0xdc80, 0xd7a8, 0xd86f, 0xd3ed, 0xd176, 0xce38,
+ 0xc73f, 0xd391, 0xdee0, 0xd626, 0xdc72, 0xe22b,
+ 0xd09b, 0xd249, 0xdf7f, 0xda93, 0xdc82, 0xde3e,
+ 0xd77c, 0xe52d, 0xf1a6, 0xecbc, 0xf4c7, 0xfa74,
+ 0xeb34, 0xe464, 0xef50, 0xfc2d, 0xffbc, 0xfad4,
+ 0xf934, 0xf3e4, 0xe872, 0xe9f5, 0xeedb, 0xea6a,
+ 0xea6f, 0xed32, 0xee47, 0xee1d, 0xe7b4, 0xef80,
+ 0x064a, 0x06f2, 0xfbca, 0xfdf3, 0xf9d1, 0xee90,
+ 0xf36b, 0x03e2, 0x08d4, 0xfcae, 0xf8d7, 0x0158,
+ 0xfd09, 0xfc0c, 0x08f0, 0x0426, 0xf878, 0xf8fc,
+ 0xf819, 0xfebd, 0x0262, 0xf5af, 0xfe2c, 0x0b8c,
+ 0xff3e, 0x0514, 0x0c4d, 0xf4a8, 0xfb74, 0x12d1,
+ 0x007a, 0xf91f, 0x0ad9, 0x0391, 0xfabd, 0xffab,
+ 0xfd1d, 0x00f0, 0x03f5, 0xf7f3, 0xf750, 0xfdb4,
+ 0xf451, 0xed82, 0xf347, 0xf3f2, 0xf1c1, 0xfa75,
+ 0xff81, 0xf516, 0xf6a4, 0x0526, 0xfcbf, 0xeeb4,
+ 0xf638, 0xf79c, 0xf043, 0xf77b, 0x00ec, 0x007b,
+ 0xfa40, 0xf9fe, 0x0831, 0x06f2, 0xf281, 0xf5ba,
+ 0xfd98, 0xf144, 0xf80a, 0x06ca, 0xfb83, 0xf392,
+ 0xf8b7, 0xfeae, 0x0893, 0x01aa, 0xf278, 0xf8d4,
+ 0xf8c1, 0xf0d5, 0x00fd, 0x094f, 0xfd40, 0xfe23,
+ 0xfc8a, 0xef40, 0xed6a, 0xeca9, 0xeaac, 0xf58f,
+ 0xfd60, 0xfd43, 0xfe7e, 0xfbcf, 0xfef4, 0x08ad,
+ 0xffbe, 0xf1bd, 0xfc5a, 0x02f1, 0xeb7b, 0xe3bf,
+ 0x0471, 0x14dc, 0x00d9, 0xf7c4, 0xfab6, 0xf623,
+ 0xfb8a, 0xfe43, 0xf2e9, 0xf9f4, 0x0528, 0xfb38,
+ 0xfc2b, 0x0622, 0x0082, 0xfdf4, 0xfd4a, 0xf70b,
+ 0xfec8, 0x038b, 0xf94e, 0xfda6, 0x07cf, 0x03d5,
+ 0x02d8, 0x05df, 0x0609, 0x0718, 0xfd79, 0xefc7,
+ 0xf521, 0xff85, 0xfa87, 0xf3fd, 0xf9c1, 0xfee3,
+ 0xf8fc, 0xf5f1, 0xf7dd, 0xf3b3, 0xf712, 0x0113,
+ 0xff84, 0x04d8, 0x0dfa, 0x02eb, 0x0562, 0x1271,
+ 0xfbae, 0xf046, 0x0a1e, 0x0678, 0xf6b5, 0x082e,
+ 0x0c39, 0xfc43, 0xfe14, 0x04a9, 0x07cc, 0x04d9,
+ 0xf2f7, 0xf168, 0x01e5, 0xff07, 0xf7d0, 0xff63,
+ 0x085d, 0x12d2, 0x1452, 0x0a7b, 0x0f6d, 0x12dd,
+ 0x0148, 0xfbef, 0x0583, 0x0613, 0x0880, 0x0d9f,
+ 0x0d7b, 0x16fc, 0x21ac, 0x1935, 0x0ce4, 0x09dd,
+ 0x04e2, 0xfdbb, 0x0039, 0x0bc3, 0x1662, 0x1bd2,
+ 0x1b3b, 0x1587, 0x12da, 0x13bc, 0x0ed7, 0x0a43,
+ 0x10c2, 0x1a45, 0x1c63, 0x1869, 0x16a8, 0x1abc,
+ 0x1bb1, 0x1af0, 0x225b, 0x22cd, 0x1320, 0x095d,
+ 0x0b0c, 0x0dea, 0x13fe, 0x17f7, 0x1909, 0x215d,
+ 0x22f2, 0x17cb, 0x16d3, 0x1881, 0x0c4b, 0x09ae,
+ 0x1486, 0x13c7, 0x118e, 0x1b07, 0x1f08, 0x1ced,
+ 0x1c0f, 0x1576, 0x132e, 0x1548, 0x0606, 0xfd1f,
+ 0x121a, 0x1c58, 0x15de, 0x1f77, 0x1ee9, 0x0d45,
+ 0x14be, 0x1e32, 0x1024, 0x0f8b, 0x1396, 0x07f2,
+ 0x0cf1, 0x16aa, 0x0ee8, 0x1561, 0x1a5f, 0x03ce,
+ 0xff74, 0x0d7a, 0x02ef, 0xfa20, 0x057b, 0x081a,
+ 0x0926, 0x14e0, 0x1a15, 0x1845, 0x155d, 0x1065,
+ 0x0f08, 0x0b38, 0x00fb, 0xffc7, 0x07be, 0x0cae,
+ 0x10a0, 0x14d8, 0x15c1, 0x138a, 0x0c49, 0x031f,
+ 0x0092, 0x0277, 0x021a, 0x01ad, 0x0556, 0x0a54,
+ 0x0e10, 0x1317, 0x15cd, 0x1184, 0x0d8c, 0x0a7f,
+ 0x053a, 0x0987, 0x0f88, 0x0618, 0x0755, 0x1c3d,
+ 0x1d7d, 0x10b0, 0x1487, 0x1625, 0x0bdd, 0x061c,
+ 0x00eb, 0x01d4, 0x0ee8, 0x124d, 0x0ec1, 0x1463,
+ 0x168b, 0x1400, 0x13db, 0x0f95, 0x0f6d, 0x1327,
+ 0x0e20, 0x0f4a, 0x182c, 0x173a, 0x1863, 0x1cc0,
+ 0x1981, 0x1e69, 0x208e, 0x108b, 0x0e5f, 0x15c1,
+ 0x0c85, 0x10e2, 0x2143, 0x177e, 0x0cab, 0x1311,
+ 0x1046, 0x0ebd, 0x17be, 0x1766, 0x1877, 0x2107,
+ 0x1e96, 0x1d26, 0x27de, 0x2b78, 0x2454, 0x1f8b,
+ 0x21fd, 0x2634, 0x21be, 0x1b9a, 0x1ed7, 0x1db2,
+ 0x14da, 0x1527, 0x1bd8, 0x1d82, 0x18c5, 0x1281,
+ 0x1725, 0x1df3, 0x12cf, 0x0b8b, 0x17fd, 0x1a9f,
+ 0x14d4, 0x1df6, 0x2227, 0x1866, 0x17ef, 0x1b55,
+ 0x1781, 0x1af2, 0x23fb, 0x21f2, 0x18a1, 0x172d,
+ 0x1ec9, 0x2017, 0x18b4, 0x1ae0, 0x207a, 0x16c8,
+ 0x11d3, 0x1cd1, 0x1aaa, 0x109b, 0x19f2, 0x1ef0,
+ 0x0fa8, 0x0e5a, 0x1bb7, 0x1833, 0x0e9a, 0x10d4,
+ 0x1247, 0x115f, 0x1187, 0x09f9, 0x04ca, 0x0a5f,
+ 0x0c18, 0x0d1d, 0x11a1, 0x0a8e, 0x0903, 0x1a1c,
+ 0x17ec, 0x06ec, 0x0fef, 0x15ce, 0x0484, 0x0aa8,
+ 0x1d7b, 0x11a2, 0x0779, 0x1438, 0x15e7, 0x0e70,
+ 0x0f01, 0x0e58, 0x106f, 0x1406, 0x0b70, 0x0729,
+ 0x0d06, 0x0707, 0x0018, 0x07d0, 0x0a77, 0x041a,
+ 0x0414, 0x0769, 0x062d, 0x01cb, 0x0406, 0x0fe9,
+ 0x0fcd, 0x003e, 0xff45, 0x0adb, 0x0c80, 0x0d37,
+ 0x115d, 0x0e67, 0x0993, 0x03dd, 0xfecb, 0x069c,
+ 0x0b87, 0xfeae, 0xfaf1, 0x0818, 0x0c84, 0x063a,
+ 0x0172, 0x02a3, 0x0b9e, 0x0db7, 0x01a2, 0xfdc8,
+ 0x0453, 0x0318, 0x02ed, 0x0980, 0x0a30, 0x0b1e,
+ 0x0d1e, 0x04ba, 0x03b6, 0x10e6, 0x0eb3, 0xff23,
+ 0xfd22, 0x03bb, 0x0605, 0x04f3, 0x0224, 0x028c,
+ 0x046e, 0x0144, 0x01e0, 0x06e8, 0x0146, 0xf9c1,
+ 0xff5a, 0x02c6, 0xfdef, 0x01df, 0x078c, 0x02f6,
+ 0x0322, 0x0538, 0xfacd, 0xf52a, 0xfa78, 0xfbf5,
+ 0x0126, 0x0937, 0x060c, 0x021a, 0x000a, 0xf99a,
+ 0xfda9, 0x0827, 0x0850, 0x06d1, 0x02e9, 0xf913,
+ 0xfc3e, 0x0603, 0x02d0, 0x000c, 0x0117, 0xf8e8,
+ 0xf759, 0x01cc, 0xfd5f, 0xefa7, 0xf28e, 0xf793,
+ 0xf178, 0xf22b, 0xf590, 0xefa3, 0xf075, 0xf444,
+ 0xead3, 0xe964, 0xf4da, 0xf21f, 0xee94, 0xfa99,
+ 0xf94a, 0xecc1, 0xf312, 0xfc4d, 0xf764, 0xf4a1,
+ 0xf5d0, 0xf40e, 0xf098, 0xec32, 0xf1f8, 0xfd01,
+ 0xf3c0, 0xe4f3, 0xedc6, 0xfa4d, 0xf327, 0xe91e,
+ 0xedae, 0xf57c, 0xf310, 0xef9d, 0xf11b, 0xf08c,
+ 0xf189, 0xf1b0, 0xeaec, 0xee72, 0xfd24, 0xfe5b,
+ 0xf2af, 0xe9c0, 0xe94e, 0xf051, 0xf45c, 0xf383,
+ 0xf62a, 0xfb1f, 0xfe2c, 0xf8ea, 0xee89, 0xf1e7,
+ 0xf981, 0xf25f, 0xef0f, 0xf6a6, 0xf836, 0xf877,
+ 0xfb63, 0xf7ec, 0xf644, 0xfeb5, 0xffa4, 0xee96,
+ 0xe7f4, 0xf866, 0xfb3b, 0xed01, 0xef83, 0xf51d,
+ 0xebcc, 0xe8a7, 0xedc6, 0xf105, 0xf31e, 0xee67,
+ 0xea5a, 0xee95, 0xecb8, 0xe6a2, 0xe65b, 0xe573,
+ 0xe76a, 0xec8f, 0xe5e5, 0xdbe2, 0xe01e, 0xe676,
+ 0xe136, 0xdc74, 0xe0e7, 0xe14d, 0xd967, 0xdb0a,
+ 0xe760, 0xe8bf, 0xddc4, 0xd6d7, 0xd567, 0xd63a,
+ 0xdb66, 0xe153, 0xe4f6, 0xe35a, 0xdb86, 0xd96c,
+ 0xdbc4, 0xd632, 0xd429, 0xd8a3, 0xd5c1, 0xd29e,
+ 0xd146, 0xcf5a, 0xd590, 0xd2e8, 0xc81b, 0xd15f,
+ 0xd6dd, 0xce06, 0xd8b6, 0xe004, 0xd235, 0xd38c,
+ 0xdb0a, 0xd293, 0xcc38, 0xcfbd, 0xd851, 0xdb78,
+ 0xd4fc, 0xd4db, 0xd4e7, 0xd07e, 0xd6f4, 0xd8b5,
+ 0xd458, 0xdabb, 0xd6d6, 0xceee, 0xd669, 0xd4b6,
+ 0xd208, 0xdb0b, 0xd633, 0xd6ee, 0xe839, 0xe331,
+ 0xd43f, 0xd7b0, 0xdc7a, 0xdadc, 0xd98e, 0xdb61,
+ 0xdd80, 0xd821, 0xd8d4, 0xe387, 0xdf63, 0xd3aa,
+ 0xd647, 0xdc83, 0xdb1a, 0xd6be, 0xd999, 0xe384,
+ 0xe27a, 0xdab8, 0xdfb6, 0xe513, 0xdf71, 0xde2f,
+ 0xe614, 0xea38, 0xe314, 0xd9d4, 0xd94f, 0xd9c3,
+ 0xd6c1, 0xdc1c, 0xe4e0, 0xe018, 0xd790, 0xdb8e,
+ 0xddb6, 0xd3d7, 0xd1be, 0xdac6, 0xdc68, 0xd762,
+ 0xd5c0, 0xd925, 0xdfb4, 0xe28b, 0xde0c, 0xd559,
+ 0xd0bf, 0xd647, 0xd79a, 0xd35a, 0xdebc, 0xeb31,
+ 0xe6b8, 0xe165, 0xdbcf, 0xda59, 0xe459, 0xdf5a,
+ 0xd7de, 0xe732, 0xe675, 0xd5cc, 0xdcb9, 0xe686,
+ 0xe531, 0xe589, 0xe19f, 0xe372, 0xe874, 0xde4c,
+ 0xdc7c, 0xe8d0, 0xe845, 0xe0ef, 0xdce7, 0xdc88,
+ 0xe5e9, 0xec76, 0xe9fa, 0xe8ca, 0xe62c, 0xe212,
+ 0xde48, 0xda8a, 0xe133, 0xe8f3, 0xe304, 0xe008,
+ 0xe5e3, 0xe4cf, 0xdcee, 0xd9e2, 0xe0c0, 0xe586,
+ 0xde0c, 0xd8ed, 0xdaf7, 0xdcae, 0xe4b0, 0xeaba,
+ 0xe53a, 0xe3c4, 0xe58b, 0xe51a, 0xea04, 0xe7cf,
+ 0xe216, 0xeb4e, 0xedda, 0xe82e, 0xf15e, 0xefd5,
+ 0xe269, 0xebef, 0xf03f, 0xdfa4, 0xe25b, 0xed7d,
+ 0xeb15, 0xf05d, 0xf44c, 0xebe6, 0xed5a, 0xf22a,
+ 0xf022, 0xf4c1, 0xf5fa, 0xeb61, 0xe7db, 0xecee,
+ 0xed31, 0xed10, 0xf3cb, 0xf6cb, 0xf162, 0xf1de,
+ 0xf484, 0xee07, 0xed52, 0xf154, 0xed9f, 0xf0fb,
+ 0xf47d, 0xec3c, 0xf204, 0xfc80, 0xf554, 0xf728,
+ 0xfd28, 0xf1cd, 0xf251, 0xfde3, 0xfad7, 0xfc05,
+ 0xffd9, 0xf39c, 0xf0a9, 0xfc2a, 0xfc3f, 0xf980,
+ 0xfc38, 0xf7b1, 0xf459, 0xf7c8, 0xf83f, 0xfe46,
+ 0x06b2, 0xffd0, 0xfc84, 0x050c, 0xfcc9, 0xf1a8,
+ 0xfd05, 0x0472, 0x0064, 0x0255, 0xfea6, 0xf8e1,
+ 0x00b7, 0x0389, 0xfe30, 0x03f9, 0x074f, 0xfbdb,
+ 0xf5f5, 0xfa96, 0xfbee, 0xfcd9, 0xfe7b, 0xf97a,
+ 0xf9ea, 0x0345, 0x0280, 0xff27, 0x0512, 0x0329,
+ 0xfc15, 0xfc36, 0xfa6c, 0xfb9e, 0x012f, 0xfb86,
+ 0xf745, 0xfeb3, 0xff60, 0xf910, 0xf83e, 0xfc06,
+ 0xff5e, 0xfdd9, 0xfa4f, 0xf99f, 0xfc5a, 0x0355,
+ 0x054c, 0x0128, 0x02e8, 0xff3a, 0xf625, 0xfde7,
+ 0x0479, 0xfcaf, 0x0163, 0x0a4f, 0x0333, 0xff4b,
+ 0x04f4, 0x062f, 0x04ff, 0x06f5, 0x07a6, 0x043d,
+ 0x0583, 0x0d0f, 0x0d20, 0x0924, 0x0b35, 0x0bd5,
+ 0x0b21, 0x0c48, 0x0c79, 0x0ff9, 0x1022, 0x0c23,
+ 0x121b, 0x132b, 0x08f7, 0x0b78, 0x103f, 0x0ad7,
+ 0x0d4d, 0x1007, 0x0a8b, 0x0aec, 0x0d1f, 0x0f52,
+ 0x132c, 0x0af4, 0x03d8, 0x0cc6, 0x0f21, 0x0bc1,
+ 0x1520, 0x1814, 0x0ca6, 0x0a3a, 0x0f17, 0x0d1c,
+ 0x0a1d, 0x0920, 0x0975, 0x0f09, 0x12b4, 0x10c3,
+ 0x1091, 0x0ecb, 0x0d49, 0x1546, 0x197b, 0x1125,
+ 0x0cc1, 0x1266, 0x18fb, 0x18b9, 0x127e, 0x1219,
+ 0x144e, 0x0e61, 0x0ec3, 0x192f, 0x18e6, 0x11c2,
+ 0x1399, 0x16a9, 0x1392, 0x120a, 0x12de, 0x1055,
+ 0x1215, 0x1a4f, 0x1798, 0x0dde, 0x108e, 0x1730,
+ 0x1740, 0x1432, 0x104c, 0x12d0, 0x13d3, 0x0b91,
+ 0x0e38, 0x13f5, 0x0db8, 0x125f, 0x1562, 0x0735,
+ 0x090c, 0x0f10, 0x0622, 0x0afc, 0x0ce4, 0x0137,
+ 0x0c21, 0x15be, 0x0add, 0x0fdb, 0x17d8, 0x10df,
+ 0x11ff, 0x14aa, 0x1099, 0x119a, 0x13db, 0x159a,
+ 0x1428, 0x0d7f, 0x0f09, 0x129e, 0x0ebc, 0x0ff8,
+ 0x13ae, 0x1231, 0x1095, 0x102e, 0x1371, 0x1584,
+ 0x141f, 0x1a6c, 0x1c5c, 0x13c0, 0x1627, 0x1953,
+ 0x12c7, 0x182f, 0x20a0, 0x1b9f, 0x17cf, 0x1966,
+ 0x1b19, 0x1b95, 0x17e6, 0x1502, 0x136b, 0x1325,
+ 0x181f, 0x1425, 0x0903, 0x0d66, 0x14ae, 0x0f33,
+ 0x0cb8, 0x1099, 0x11c2, 0x11c7, 0x1404, 0x166a,
+ 0x1313, 0x0ec4, 0x1049, 0x0f03, 0x0cb2, 0x0fce,
+ 0x0f2a, 0x0e33, 0x122d, 0x11e1, 0x10d1, 0x1100,
+ 0x0dfb, 0x0d91, 0x0a88, 0x06c7, 0x1097, 0x158c,
+ 0x0d83, 0x1378, 0x1de2, 0x16ab, 0x12cf, 0x1b64,
+ 0x1a8c, 0x12f4, 0x1830, 0x2092, 0x1b86, 0x15e7,
+ 0x1882, 0x1772, 0x134b, 0x1279, 0x13a9, 0x15de,
+ 0x1296, 0x0ce8, 0x1041, 0x1310, 0x0fe5, 0x1144,
+ 0x1557, 0x1965, 0x1bee, 0x176b, 0x1318, 0x1245,
+ 0x1292, 0x1634, 0x1286, 0x0c14, 0x13c7, 0x15fa,
+ 0x0a40, 0x091d, 0x1093, 0x1460, 0x142e, 0x0feb,
+ 0x12cb, 0x18f3, 0x146c, 0x12ce, 0x147c, 0x0e35,
+ 0x0eee, 0x1543, 0x1464, 0x14e4, 0x14e6, 0x1158,
+ 0x11f0, 0x102b, 0x0be8, 0x0bd7, 0x0bbc, 0x1049,
+ 0x1644, 0x1014, 0x0bd4, 0x126a, 0x126c, 0x0f55,
+ 0x13c4, 0x12bb, 0x0c50, 0x0ec7, 0x10ef, 0x0b9c,
+ 0x0d40, 0x120e, 0x0ec5, 0x0e2c, 0x0f39, 0x0b87,
+ 0x0f3d, 0x13ee, 0x106b, 0x10ce, 0x0d5e, 0x03b5,
+ 0x068a, 0x08ce, 0x02b0, 0x06fb, 0x09d3, 0x0316,
+ 0x04fe, 0x0972, 0x086a, 0x0a2d, 0x0c9a, 0x0dc6,
+ 0x0b29, 0x0382, 0x010f, 0xfe20, 0xf7f0, 0xffad,
+ 0x0747, 0xfd34, 0xf804, 0xfc3b, 0xfa14, 0xf907,
+ 0xfb3c, 0xf985, 0xfad7, 0xffe3, 0x01c3, 0x01d2,
+ 0x0225, 0x0435, 0x066d, 0x0392, 0x00db, 0x0362,
+ 0x0426, 0x039a, 0x070e, 0x0959, 0x096e, 0x0a4c,
+ 0x0667, 0x011e, 0x0638, 0x0e28, 0x0beb, 0x08ef,
+ 0x0d7e, 0x0cfb, 0x066a, 0x085e, 0x0c94, 0x0b35,
+ 0x1018, 0x143f, 0x0c77, 0x0a63, 0x0f5f, 0x0d0d,
+ 0x0be9, 0x0d52, 0x0bde, 0x0eb2, 0x0ee6, 0x0b74,
+ 0x0f0b, 0x0ddd, 0x0bb3, 0x16b4, 0x17f2, 0x0e73,
+ 0x1381, 0x18e3, 0x154b, 0x17b9, 0x17e9, 0x104c,
+ 0x0c69, 0x0e86, 0x13dc, 0x1437, 0x0de4, 0x0daf,
+ 0x10c4, 0x10b5, 0x13d7, 0x12f8, 0x0cc0, 0x11a1,
+ 0x19e1, 0x1436, 0x0b90, 0x0bb7, 0x0cd8, 0x0ce0,
+ 0x1208, 0x14b9, 0x1061, 0x1335, 0x19e6, 0x1405,
+ 0x0e11, 0x1144, 0x0d0b, 0x06cd, 0x0e3e, 0x12d6,
+ 0x08f8, 0x0366, 0x082f, 0x0831, 0x0238, 0x00ba,
+ 0x03b0, 0x0441, 0xffe8, 0xfc60, 0xfda4, 0xfd00,
+ 0xfc96, 0x0348, 0x0532, 0xffa6, 0xfe64, 0xfc1b,
+ 0xfa53, 0x0040, 0xfd5f, 0xf488, 0xfa3a, 0xfe3a,
+ 0xf2d1, 0xede3, 0xf6cd, 0xf93c, 0xefde, 0xee40,
+ 0xf383, 0xecfc, 0xeb3a, 0xf84b, 0xf8bb, 0xf35f,
+ 0xf897, 0xf428, 0xed6e, 0xf4a5, 0xf651, 0xf210,
+ 0xf3f2, 0xf4a4, 0xf2d6, 0xef87, 0xef55, 0xf775,
+ 0xf827, 0xf0e3, 0xef18, 0xea38, 0xe71e, 0xee30,
+ 0xee15, 0xec22, 0xf57c, 0xf704, 0xed4f, 0xecd4,
+ 0xf42c, 0xf3e6, 0xef69, 0xf2ac, 0xf3c3, 0xeb08,
+ 0xe97d, 0xeff7, 0xf452, 0xfad1, 0xfb87, 0xf4a5,
+ 0xf4ad, 0xf455, 0xf151, 0xf636, 0xf8f1, 0xf80b,
+ 0xf971, 0xf611, 0xf539, 0xf7e9, 0xf354, 0xf3fd,
+ 0xfabc, 0xf94a, 0xf876, 0xfa0a, 0xf72a, 0xf7fc,
+ 0xfa76, 0xf8ee, 0xf801, 0xf524, 0xf1b2, 0xf3c9,
+ 0xf526, 0xf265, 0xf157, 0xf195, 0xf01e, 0xf182,
+ 0xf5d1, 0xf499, 0xf3e8, 0xfa00, 0xf88d, 0xf3b1,
+ 0xf87f, 0xf7f9, 0xf319, 0xf5fa, 0xf1b8, 0xebb0,
+ 0xf277, 0xf3bc, 0xee58, 0xeffc, 0xefce, 0xed47,
+ 0xed8b, 0xeb24, 0xe8e3, 0xe8e2, 0xe983, 0xec9b,
+ 0xec8a, 0xe7de, 0xe6f8, 0xeac8, 0xeb8d, 0xe5d7,
+ 0xe448, 0xe85f, 0xe3d6, 0xe0eb, 0xe834, 0xe667,
+ 0xe3ee, 0xead7, 0xe309, 0xd72a, 0xded2, 0xe5a5,
+ 0xe3cf, 0xe6b6, 0xe9c7, 0xea26, 0xeb26, 0xeb6f,
+ 0xea37, 0xe7c6, 0xead0, 0xf19e, 0xedc3, 0xe5aa,
+ 0xe5f6, 0xe59e, 0xe34a, 0xe9c6, 0xf1eb, 0xef16,
+ 0xeaa6, 0xee27, 0xec62, 0xe61c, 0xec19, 0xf03f,
+ 0xe6bb, 0xe39f, 0xe913, 0xeba5, 0xec6d, 0xeb57,
+ 0xef3c, 0xf709, 0xf31e, 0xed5b, 0xef15, 0xede9,
+ 0xf153, 0xf5d0, 0xed5d, 0xeca5, 0xf533, 0xed99,
+ 0xe782, 0xf4cc, 0xfd0e, 0xf957, 0xf89a, 0xf7c0,
+ 0xf491, 0xf82e, 0xfb2b, 0xf480, 0xf2e2, 0xf802,
+ 0xf24d, 0xeb38, 0xf06f, 0xf4d2, 0xf498, 0xf4c2,
+ 0xf089, 0xec93, 0xec22, 0xe867, 0xe799, 0xedee,
+ 0xeffd, 0xedcb, 0xf095, 0xf379, 0xf080, 0xeda3,
+ 0xec63, 0xeb22, 0xee5a, 0xef1f, 0xe7b3, 0xe7bc,
+ 0xeeeb, 0xecdb, 0xe8ff, 0xe996, 0xe629, 0xe388,
+ 0xe63e, 0xea2e, 0xedd8, 0xecb8, 0xea10, 0xedf7,
+ 0xf25b, 0xf349, 0xf2df, 0xef4a, 0xed81, 0xefd8,
+ 0xef70, 0xed9e, 0xede3, 0xec52, 0xe876, 0xe8a3,
+ 0xec7f, 0xe96f, 0xe3b4, 0xe8c2, 0xecf3, 0xe78e,
+ 0xe6f9, 0xe92d, 0xe59e, 0xe43b, 0xe73e, 0xecc2,
+ 0xf286, 0xf21a, 0xf0f1, 0xf386, 0xf42f, 0xf4c8,
+ 0xf51b, 0xf2b0, 0xf1fd, 0xf1d0, 0xf256, 0xf44d,
+ 0xf0cd, 0xec37, 0xeaef, 0xe8e7, 0xed03, 0xf1e4,
+ 0xeb77, 0xe930, 0xf010, 0xf27a, 0xf491, 0xf590,
+ 0xf0bd, 0xf36d, 0xf9b2, 0xf436, 0xeec9, 0xf35c,
+ 0xf59d, 0xf22e, 0xf1bb, 0xf2d8, 0xf117, 0xf15b,
+ 0xf3ac, 0xf26a, 0xf1e8, 0xf483, 0xf3a7, 0xf15c,
+ 0xf3a5, 0xf71d, 0xf7fc, 0xf9c3, 0xfda7, 0xfd26,
+ 0xf995, 0xfbc4, 0xfdff, 0xfa31, 0xf93a, 0xfb58,
+ 0xf95c, 0xf585, 0xf4b2, 0xf964, 0xfcc2, 0xf785,
+ 0xf48e, 0xf717, 0xf477, 0xf263, 0xf5a2, 0xf671,
+ 0xf4f1, 0xf278, 0xf2ef, 0xfb45, 0xfe7f, 0xf905,
+ 0xfa77, 0xff2f, 0xfd16, 0xfb41, 0xfbef, 0xfb0b,
+ 0xfbb6, 0xfed6, 0xfea0, 0xfa19, 0xf762, 0xf72b,
+ 0xf683, 0xf898, 0xfbbe, 0xf9fb, 0xf6dd, 0xf669,
+ 0xf85d, 0xfc14, 0xfcda, 0xfb22, 0xfbb1, 0xfae9,
+ 0xf896, 0xfacc, 0xfeae, 0xfdc3, 0xf90b, 0xf69f,
+ 0xf7fa, 0xf7be, 0xf569, 0xf497, 0xf4f7, 0xf59d,
+ 0xf39c, 0xee8a, 0xecac, 0xed9c, 0xef47, 0xf44f,
+ 0xf6cc, 0xf38d, 0xf29e, 0xf599, 0xf8bb, 0xfb34,
+ 0xfe49, 0x0198, 0xfec4, 0xf9c0, 0xfc9f, 0xfd0e,
+ 0xf81c, 0xfc48, 0x0022, 0xf97b, 0xf6c8, 0xf8a5,
+ 0xf7a3, 0xf985, 0xfc4f, 0xfc7b, 0xfe1e, 0xfd5f,
+ 0xfa24, 0xfca8, 0x012e, 0x0156, 0x01b6, 0x03df,
+ 0x047b, 0x03e9, 0x0172, 0xff27, 0x026e, 0x0486,
+ 0xffb7, 0xfd40, 0xfd93, 0xfc0a, 0xfe31, 0x00a3,
+ 0xff63, 0x010e, 0x01f5, 0xffd7, 0x0078, 0xffcd,
+ 0xff95, 0x02fe, 0x0113, 0xfe49, 0x00c4, 0x00f6,
+ 0x0203, 0x048b, 0x0208, 0x01b7, 0x02d6, 0xfed6,
+ 0xfdfe, 0x00c1, 0x0107, 0x00e8, 0x010e, 0x01f0,
+ 0xff6c, 0xf81f, 0xf988, 0x0079, 0x0004, 0x0121,
+ 0x046c, 0x02d9, 0x0531, 0x08d1, 0x0800, 0x097c,
+ 0x08b4, 0x0566, 0x0652, 0x0278, 0xfcfe, 0x00a6,
+ 0x00df, 0xfb64, 0xfd6b, 0x002c, 0xfcd1, 0xfc92,
+ 0x006a, 0x0237, 0x0274, 0x0245, 0x01a0, 0x02fc,
+ 0x04d4, 0x03ad, 0x040b, 0x06d3, 0x0369, 0xfc5c,
+ 0xfc13, 0x000b, 0x00cb, 0xfeda, 0xfdcd, 0xfd2f,
+ 0xfbac, 0xfcd9, 0xff30, 0xfd95, 0xff96, 0x0606,
+ 0x03a1, 0xfe66, 0x01b3, 0x03e1, 0x020f, 0x0391,
+ 0x04ba, 0x03c4, 0x040e, 0x037e, 0x02f1, 0x056d,
+ 0x0709, 0x03b7, 0xfec3, 0xfda8, 0xffa1, 0x0093,
+ 0x00c7, 0x0269, 0x04cd, 0x0463, 0x00bc, 0x00be,
+ 0x05af, 0x0807, 0x0748, 0x05b2, 0x0247, 0x0100,
+ 0x0151, 0xff26, 0x0088, 0x0503, 0x0453, 0x02d6,
+ 0x02c8, 0xffdf, 0x0003, 0x0297, 0x0046, 0x0098,
+ 0x04bc, 0x0240, 0xfee2, 0x016a, 0x0311, 0x0272,
+ 0xffdc, 0xfaac, 0xf9fd, 0xfc77, 0xfb5f, 0xfc47,
+ 0x0019, 0x00a1, 0x00cd, 0x0109, 0xfe8c, 0xfeab,
+ 0x00c9, 0xfda0, 0xf880, 0xf7e8, 0xf8fe, 0xf78f,
+ 0xf639, 0xf823, 0xfb54, 0xfdec, 0x0009, 0x01b2,
+ 0x038a, 0x049a, 0x0547, 0x077b, 0x05cf, 0xfeef,
+ 0xfc0d, 0xfc72, 0xfac7, 0xfa0c, 0xf889, 0xf5a1,
+ 0xf695, 0xf6ec, 0xf474, 0xf5f4, 0xf8c3, 0xf8b9,
+ 0xf86b, 0xf6d8, 0xf424, 0xf213, 0xeeec, 0xec9c,
+ 0xec0f, 0xe9cf, 0xe919, 0xec1a, 0xebe9, 0xe978,
+ 0xec82, 0xf0b7, 0xefee, 0xeebc, 0xeed2, 0xef67,
+ 0xf2ef, 0xf393, 0xf004, 0xf29d, 0xf5e5, 0xf30f,
+ 0xf628, 0xfbc8, 0xf925, 0xf9db, 0xfe2d, 0xf980,
+ 0xf58f, 0xf971, 0xfadb, 0xfadf, 0xfe83, 0x001b,
+ 0xfed6, 0xff74, 0x0182, 0x034a, 0x0498, 0x0566,
+ 0x0774, 0x096b, 0x0787, 0x05bf, 0x0736, 0x07df,
+ 0x099d, 0x0bc3, 0x0860, 0x073d, 0x0aaa, 0x0898,
+ 0x0816, 0x0ca5, 0x0a82, 0x0757, 0x094d, 0x0966,
+ 0x09d4, 0x0aa7, 0x0a9c, 0x0e5b, 0x0dc4, 0x0937,
+ 0x0c88, 0x0dee, 0x0a80, 0x0d6e, 0x0e5d, 0x0ba5,
+ 0x0e30, 0x0e53, 0x0c37, 0x0ee2, 0x106a, 0x1090,
+ 0x10ad, 0x0d6d, 0x0b70, 0x0b51, 0x0a27, 0x0a51,
+ 0x0909, 0x05ff, 0x05c4, 0x0697, 0x07a0, 0x08df,
+ 0x09e2, 0x0c4b, 0x0b52, 0x08a4, 0x0bcc, 0x0b69,
+ 0x06dd, 0x0af6, 0x0c94, 0x0575, 0x05bf, 0x080c,
+ 0x0158, 0xfd9b, 0xffdc, 0x001a, 0x0057, 0x0068,
+ 0xfdf2, 0xfee9, 0x03b7, 0x04bd, 0x02ec, 0x02c6,
+ 0x01de, 0x00da, 0x013b, 0xfdc5, 0xf986, 0xfac6,
+ 0xfa9a, 0xf75e, 0xf770, 0xf75c, 0xf67e, 0xf86b,
+ 0xf7bb, 0xf567, 0xf7bc, 0xf967, 0xf85f, 0xfa52,
+ 0xfb97, 0xf816, 0xf595, 0xf5be, 0xf405, 0xf1ea,
+ 0xf2e8, 0xf5c0, 0xf9ed, 0xfce3, 0xfb16, 0xfacf,
+ 0xfe5e, 0xfde2, 0xfd14, 0xffb9, 0xfd4c, 0xf993,
+ 0xfa73, 0xf874, 0xf657, 0xf7d6, 0xf5d1, 0xf542,
+ 0xf9b2, 0xfad2, 0xfbfb, 0xfe91, 0xfc1b, 0xfbfd,
+ 0xffe2, 0xfd6a, 0xf90a, 0xf99d, 0xfaa2, 0xf9c7,
+ 0xf80f, 0xf814, 0xf9b4, 0xf836, 0xf8ae, 0xfead,
+ 0xff53, 0xfae6, 0xfa55, 0xf985, 0xf7a7, 0xf8d0,
+ 0xf840, 0xf79a, 0xfbae, 0xfd8d, 0xfcc0, 0x0000,
+ 0x0239, 0x00e7, 0x02c1, 0x03a4, 0xfeb8, 0xfd0e,
+ 0xfff7, 0xfeb5, 0xfc29, 0xfd6e, 0xfe68, 0xfdd3,
+ 0xfd22, 0xfcf8, 0x001a, 0x03bc, 0x030f, 0x0185,
+ 0x0146, 0x00e8, 0x0196, 0x01d2, 0x0175, 0x03e0,
+ 0x04e6, 0x0183, 0x0051, 0x0209, 0x01fd, 0x01af,
+ 0x0176, 0xffd7, 0x0091, 0x02cb, 0x009b, 0xfe4c,
+ 0x0134, 0x01a6, 0xfca5, 0xfb9e, 0xfec6, 0xfea7,
+ 0xfe3a, 0x0060, 0xfef4, 0xfac9, 0xfa81, 0xfb5b,
+ 0xfa79, 0xfc0b, 0xfe55, 0xfda9, 0xfd93, 0xfe06,
+ 0xfcb7, 0xfd53, 0x005b, 0x02bb, 0x022f, 0xfd6b,
+ 0xfb6e, 0xfe48, 0xfc33, 0xfadd, 0x00da, 0x008e,
+ 0xfd52, 0x0349, 0x069c, 0x0549, 0x0828, 0x079c,
+ 0x047e, 0x03e4, 0xff44, 0xfc10, 0xfd36, 0xfb76,
+ 0xfddb, 0x0254, 0xff11, 0xff66, 0x038d, 0x00c7,
+ 0x00b1, 0x03cf, 0x0084, 0xfd7e, 0xfd3c, 0xfd45,
+ 0xff6f, 0xfe60, 0xfc9f, 0xffc1, 0xfec2, 0xfd13,
+ 0x0399, 0x05e6, 0x0155, 0x01b1, 0x02c8, 0x0031,
+ 0xfff5, 0x00fe, 0x0160, 0x03b3, 0x04c8, 0x021d,
+ 0x0099, 0x010e, 0xfff1, 0x0076, 0x03e5, 0x03c8,
+ 0x0225, 0x043a, 0x0466, 0x0222, 0x030b, 0x034b,
+ 0x0161, 0x0122, 0x0061, 0xffde, 0x0133, 0xffdf,
+ 0xfede, 0x0145, 0xff9f, 0xfc63, 0xfe71, 0xfe0d,
+ 0xfab9, 0xfe08, 0x0111, 0xfd2b, 0xfcb9, 0x0082,
+ 0xffaf, 0xfdba, 0xfea1, 0xfe68, 0xfcbb, 0xfb7a,
+ 0xfb3e, 0xfc32, 0xfce4, 0xfe0e, 0xff6b, 0xfedf,
+ 0x0071, 0x02c2, 0xfeec, 0xfdb2, 0x03c6, 0x035a,
+ 0xfedc, 0x01f9, 0x03e6, 0x00c5, 0x0145, 0x00df,
+ 0xfc81, 0xfc93, 0xfea3, 0xfd26, 0xfe20, 0x01bc,
+ 0x00fb, 0xff25, 0x00ef, 0x018f, 0xfff3, 0x00ae,
+ 0x022b, 0x026b, 0x0486, 0x079e, 0x08fb, 0x0a20,
+ 0x09ed, 0x0665, 0x046a, 0x065d, 0x06ac, 0x046c,
+ 0x03da, 0x03a7, 0x01ce, 0x00f1, 0x0168, 0x0197,
+ 0x01e5, 0x0239, 0x02c4, 0x035d, 0x0151, 0xfdb0,
+ 0xfd1e, 0xff06, 0xffa9, 0xfe82, 0xfd73, 0xfdc8,
+ 0xff23, 0x00ef, 0x0261, 0x0260, 0x026e, 0x031e,
+ 0x01dc, 0x0115, 0x03f3, 0x04bd, 0x011d, 0x0070,
+ 0x02cd, 0x00c3, 0xfced, 0xfea1, 0x02b6, 0x0329,
+ 0x0158, 0x00e1, 0x02c8, 0x0509, 0x0663, 0x08be,
+ 0x0996, 0x0707, 0x06b5, 0x05f9, 0x0190, 0x03b3,
+ 0x07c9, 0x01fc, 0xff4e, 0x03f4, 0x0205, 0xff32,
+ 0x0096, 0xfe07, 0xfd07, 0xffbe, 0xfe65, 0xfe88,
+ 0x02f9, 0x04f6, 0x055d, 0x051e, 0x0323, 0x01f4,
+ 0x020a, 0x0431, 0x0749, 0x0702, 0x05bf, 0x057b,
+ 0x03f2, 0x03a2, 0x055c, 0x06ac, 0x075c, 0x0619,
+ 0x0484, 0x04a2, 0x0305, 0x01c7, 0x0452, 0x05e8,
+ 0x04a8, 0x0202, 0xff2a, 0xff5e, 0xff6e, 0xfc3e,
+ 0xfbca, 0xfdd4, 0xfdf2, 0xff28, 0x01c9, 0x034f,
+ 0x0407, 0x0244, 0xffe8, 0x01c0, 0x03f2, 0x0245,
+ 0x014c, 0x0365, 0x044a, 0x0205, 0xff5b, 0xfe8d,
+ 0xff3f, 0xffe9, 0x007f, 0x02de, 0x04f1, 0x026e,
+ 0xff15, 0x000a, 0x016c, 0xfff3, 0xfee7, 0xffc6,
+ 0xff99, 0xfd9f, 0xfe53, 0x0186, 0x0102, 0xff97,
+ 0x0190, 0x0050, 0xfc3b, 0xfc87, 0xfd5c, 0xfcfe,
+ 0x00b4, 0x0465, 0x03be, 0x0418, 0x06aa, 0x069a,
+ 0x0437, 0x02e0, 0x01b2, 0xfff4, 0xffb3, 0xff41,
+ 0xfdb1, 0xff72, 0x037d, 0x0573, 0x0670, 0x0668,
+ 0x0533, 0x0592, 0x061c, 0x0622, 0x078f, 0x07a0,
+ 0x0662, 0x07eb, 0x0a4f, 0x0a6e, 0x08e5, 0x06dd,
+ 0x065e, 0x07aa, 0x0835, 0x075f, 0x0617, 0x044f,
+ 0x027f, 0x0263, 0x03b1, 0x0450, 0x052b, 0x0602,
+ 0x0446, 0x03a4, 0x0561, 0x03cb, 0x020b, 0x04bb,
+ 0x06b0, 0x073f, 0x089b, 0x08e1, 0x098c, 0x0a15,
+ 0x089e, 0x08da, 0x0978, 0x073d, 0x0591, 0x0547,
+ 0x060d, 0x0806, 0x0752, 0x0502, 0x0409, 0x0251,
+ 0x0159, 0x013f, 0xff2e, 0xff64, 0x0257, 0x0259,
+ 0x0111, 0x015c, 0x02e4, 0x05dd, 0x0739, 0x062c,
+ 0x069f, 0x0786, 0x0610, 0x0407, 0x0328, 0x027e,
+ 0x0118, 0xffbc, 0xfe57, 0xfcc1, 0xfd33, 0xfdfb,
+ 0xfc7e, 0xfd21, 0xffca, 0xff9d, 0xff9b, 0x00d3,
+ 0xff4c, 0xfd56, 0xfd65, 0xfe9c, 0x0096, 0x00a6,
+ 0x0065, 0x039a, 0x04cd, 0x0319, 0x059a, 0x075b,
+ 0x02dc, 0x011e, 0x03b3, 0x0251, 0x005d, 0x02c8,
+ 0x03c8, 0x01f5, 0x0160, 0x02b5, 0x067d, 0x08e8,
+ 0x0585, 0x035e, 0x04e5, 0x02ec, 0x014e, 0x039e,
+ 0x02e2, 0x0103, 0x01e8, 0x0132, 0x0091, 0x021c,
+ 0x0259, 0x02d2, 0x031b, 0x0052, 0xfefd, 0xff89,
+ 0xfdde, 0xfded, 0x003b, 0xfedb, 0xfd29, 0xff8b,
+ 0x0019, 0xfd8a, 0xfdd8, 0xff7d, 0xfea3, 0xfd91,
+ 0xfccc, 0xfc08, 0xfd4b, 0xfdf7, 0xfc06, 0xfb28,
+ 0xfbc4, 0xfc3d, 0xfcf8, 0xfc13, 0xfa01, 0xfb07,
+ 0xfda2, 0xfd44, 0xfc0d, 0xfd6f, 0xfdd9, 0xfaec,
+ 0xf902, 0xf809, 0xf570, 0xf4e9, 0xf62f, 0xf5d6,
+ 0xf60a, 0xf50d, 0xf12e, 0xeeef, 0xec72, 0xe948,
+ 0xea7f, 0xeae3, 0xe88a, 0xead8, 0xee4d, 0xef30,
+ 0xf20e, 0xf458, 0xf3d8, 0xf4a5, 0xf637, 0xf68c,
+ 0xf660, 0xf6d9, 0xf8a3, 0xf9cf, 0xf99e, 0xf97f,
+ 0xf9ab, 0xfab2, 0xfa68, 0xf7a9, 0xf7b1, 0xf8cb,
+ 0xf6ac, 0xf754, 0xfa83, 0xfa48, 0xfabb, 0xfd49,
+ 0xfdc8, 0xfdd3, 0xfed0, 0x0011, 0x0219, 0x044e,
+ 0x067d, 0x07b5, 0x074e, 0x0736, 0x06fb, 0x0659,
+ 0x0624, 0x04a9, 0x04c9, 0x082d, 0x08f3, 0x084d,
+ 0x098d, 0x0906, 0x08b3, 0x0a8e, 0x0a9e, 0x0abf,
+ 0x0b8b, 0x09de, 0x094c, 0x0b36, 0x0be0, 0x0bc2,
+ 0x0c72, 0x0ded, 0x0f24, 0x0f1d, 0x0f19, 0x0dd9,
+ 0x0afe, 0x0a10, 0x08c1, 0x060b, 0x0702, 0x0853,
+ 0x069a, 0x066e, 0x0662, 0x0536, 0x065f, 0x063b,
+ 0x0392, 0x032f, 0x0386, 0x035d, 0x03f9, 0x02bb,
+ 0x01e1, 0x04bb, 0x05b5, 0x03a4, 0x0436, 0x0575,
+ 0x0463, 0x04b9, 0x060d, 0x054f, 0x050a, 0x05a8,
+ 0x0518, 0x04f2, 0x044d, 0x026d, 0x0260, 0x013f,
+ 0xfdc7, 0xfe4a, 0x007c, 0xff7c, 0xfeb5, 0xfdac,
+ 0xfbbc, 0xfbca, 0xf9c9, 0xf5ff, 0xf612, 0xf5b1,
+ 0xf372, 0xf485, 0xf646, 0xf724, 0xf891, 0xf719,
+ 0xf4a7, 0xf5b7, 0xf705, 0xf620, 0xf4f9, 0xf57c,
+ 0xf770, 0xf822, 0xf894, 0xfa4d, 0xf9a7, 0xf7a5,
+ 0xf70d, 0xf4ca, 0xf269, 0xf270, 0xf15e, 0xf0a0,
+ 0xf292, 0xf3f8, 0xf495, 0xf4aa, 0xf3f5, 0xf554,
+ 0xf68b, 0xf521, 0xf578, 0xf75c, 0xf838, 0xf994,
+ 0xf9c0, 0xf862, 0xf82a, 0xf71e, 0xf66e, 0xf8b5,
+ 0xf8e5, 0xf795, 0xf9ed, 0xfae1, 0xf82e, 0xf7ca,
+ 0xf80b, 0xf578, 0xf409, 0xf4bc, 0xf460, 0xf3c4,
+ 0xf506, 0xf742, 0xf92a, 0xfa42, 0xfa54, 0xfa99,
+ 0xfb11, 0xf97b, 0xf836, 0xfa17, 0xfa39, 0xf85f,
+ 0xfa9c, 0xfced, 0xfab1, 0xf972, 0xf9cb, 0xf7fd,
+ 0xf663, 0xf689, 0xf721, 0xf73f, 0xf642, 0xf6c4,
+ 0xf8ae, 0xf79f, 0xf67e, 0xf92e, 0xfadd, 0xfa15,
+ 0xfb91, 0xfee9, 0xff98, 0xfdc5, 0xfdf2, 0x002a,
+ 0x00af, 0x00a7, 0x015f, 0x008c, 0xff8d, 0xff88,
+ 0xfe8d, 0xfe22, 0xfe85, 0xfc78, 0xf961, 0xf8f0,
+ 0xfa77, 0xfaad, 0xf9b9, 0xfa80, 0xfb02, 0xf9c4,
+ 0xfb02, 0xfccf, 0xfbc2, 0xfc22, 0xfc43, 0xf8f1,
+ 0xf8a7, 0xfb99, 0xfbdc, 0xfb2b, 0xfb73, 0xfb9e,
+ 0xfba9, 0xfb6f, 0xfbf5, 0xfbfc, 0xfa39, 0xfa6a,
+ 0xfb70, 0xfa89, 0xfb3f, 0xfb88, 0xf948, 0xfa15,
+ 0xfc33, 0xfbac, 0xfb21, 0xfa10, 0xf8a9, 0xf897,
+ 0xf7da, 0xf850, 0xf9c8, 0xf84a, 0xf75c, 0xf7d8,
+ 0xf743, 0xf92a, 0xfb0a, 0xf9da, 0xfa10, 0xf964,
+ 0xf805, 0xfb43, 0xfd8b, 0xfd96, 0xffc9, 0xfef9,
+ 0xfd05, 0xff1a, 0xff73, 0xff10, 0x0066, 0xfee7,
+ 0xfeac, 0x004c, 0xfdc2, 0xfd23, 0x000b, 0xff19,
+ 0xfdd7, 0xff40, 0xfef2, 0xfcfe, 0xfb53, 0xfbd4,
+ 0xfe21, 0xfe72, 0xfea6, 0xffaf, 0xfe72, 0xfeec,
+ 0x019d, 0x0078, 0xfde1, 0xfc84, 0xfa1f, 0xf809,
+ 0xf71e, 0xf82d, 0xfb23, 0xfac4, 0xf933, 0xfb33,
+ 0xfb45, 0xf9cb, 0xfbcb, 0xfd04, 0xfdc5, 0x00d2,
+ 0x0100, 0x005c, 0x0309, 0x02fb, 0x0077, 0x0130,
+ 0x026c, 0x02c1, 0x0484, 0x054f, 0x042c, 0x0460,
+ 0x053c, 0x033b, 0xff75, 0xfcfe, 0xfb6d, 0xfabd,
+ 0xfc01, 0xfd05, 0xfd5d, 0xfedb, 0xffa9, 0xffd8,
+ 0x013d, 0x0102, 0xfeb3, 0xfd48, 0xfc83, 0xfc5c,
+ 0xfcca, 0xfd2d, 0xfee3, 0xff8d, 0xfdc5, 0xfe38,
+ 0xfedc, 0xfc26, 0xfb26, 0xfb8f, 0xfa3e, 0xfa97,
+ 0xfb88, 0xfba5, 0xfde5, 0xfe8c, 0xfc8c, 0xfd33,
+ 0xfd9c, 0xfbaa, 0xfb4f, 0xfaa5, 0xf975, 0xfb6e,
+ 0xfd51, 0xfcc9, 0xfc89, 0xfcb5, 0xfd35, 0xfe03,
+ 0xfdbf, 0xfdcf, 0xfea4, 0xfe50, 0xfe29, 0xff6a,
+ 0x009f, 0x01eb, 0x0347, 0x033e, 0x0300, 0x045e,
+ 0x058e, 0x0500, 0x0488, 0x04fd, 0x054e, 0x05d5,
+ 0x0635, 0x0520, 0x0427, 0x043e, 0x03dc, 0x0364,
+ 0x0317, 0x01f8, 0x020c, 0x03c1, 0x03a5, 0x020d,
+ 0x00ec, 0xfeed, 0xfd6b, 0xfe89, 0xff31, 0xfeaf,
+ 0xffc7, 0x0054, 0xfea5, 0xfddc, 0xfe0d, 0xfd40,
+ 0xfccd, 0xfd07, 0xfb9d, 0xf8a0, 0xf753, 0xf8b8,
+ 0xf9ec, 0xfac3, 0xfd37, 0xff43, 0xffea, 0x00f7,
+ 0x0156, 0x012b, 0x01e4, 0x0197, 0x0159, 0x0332,
+ 0x03fe, 0x0448, 0x06d8, 0x07f3, 0x065c, 0x05b7,
+ 0x0505, 0x02d7, 0x0221, 0x0306, 0x02f2, 0x0384,
+ 0x05c6, 0x058e, 0x0358, 0x0435, 0x05b2, 0x0441,
+ 0x033c, 0x0351, 0x020a, 0x008b, 0x004f, 0x012c,
+ 0x0265, 0x0376, 0x04c7, 0x05ad, 0x0636, 0x06cb,
+ 0x05a1, 0x04f9, 0x0678, 0x04ea, 0x023f, 0x031e,
+ 0x0225, 0xff79, 0xffeb, 0xff50, 0xfd40, 0xfddc,
+ 0xff0a, 0xff8d, 0xffb7, 0xff35, 0xff80, 0xff31,
+ 0xfe0c, 0xfe4f, 0xfd36, 0xfb52, 0xfc3d, 0xfc9d,
+ 0xfba9, 0xfc17, 0xfd11, 0xff96, 0x0225, 0x00e5,
+ 0xff68, 0xffa5, 0xff02, 0xfefa, 0xff95, 0xfeca,
+ 0xfdb8, 0xfd9d, 0xff30, 0x0102, 0x0130, 0x0254,
+ 0x0432, 0x03ff, 0x0432, 0x0525, 0x04a7, 0x042f,
+ 0x03ab, 0x02c4, 0x029c, 0x01d2, 0x0101, 0x018d,
+ 0x0186, 0x0103, 0x00f3, 0x0135, 0x0240, 0x0219,
+ 0x013d, 0x02af, 0x0341, 0x0211, 0x02a3, 0x01ac,
+ 0xfe9b, 0xfefc, 0x0013, 0xfe49, 0xfe56, 0x00f1,
+ 0x01a0, 0x0155, 0x0333, 0x0529, 0x04f3, 0x04e7,
+ 0x054f, 0x03fe, 0x037b, 0x055f, 0x05f2, 0x0524,
+ 0x05ab, 0x060e, 0x0518, 0x0444, 0x03bf, 0x0347,
+ 0x036a, 0x0415, 0x050e, 0x05c8, 0x0579, 0x0568,
+ 0x067c, 0x0697, 0x0589, 0x04f7, 0x03d7, 0x0215,
+ 0x014c, 0x00e4, 0x00c7, 0x0145, 0x01e0, 0x038d,
+ 0x04f9, 0x048d, 0x053d, 0x06eb, 0x07ce, 0x09ad,
+ 0x0a10, 0x077e, 0x06ad, 0x0678, 0x04d8, 0x0503,
+ 0x050d, 0x038d, 0x038b, 0x02d1, 0x00b7, 0x0079,
+ 0xffdf, 0xfe60, 0xff76, 0x00ca, 0xff96, 0xff4e,
+ 0x014b, 0x0169, 0xff40, 0xff0d, 0x0073, 0x0142,
+ 0x0281, 0x0337, 0x037f, 0x05b0, 0x0735, 0x075a,
+ 0x0875, 0x082d, 0x0751, 0x0829, 0x06fb, 0x04ce,
+ 0x04d2, 0x045e, 0x044b, 0x05d9, 0x05e7, 0x04e8,
+ 0x03ce, 0x024f, 0x0230, 0x0282, 0x0266, 0x033a,
+ 0x038b, 0x02ef, 0x02f7, 0x03c0, 0x0523, 0x056f,
+ 0x0454, 0x03e2, 0x0397, 0x043e, 0x063b, 0x06a4,
+ 0x078b, 0x08af, 0x05ca, 0x0461, 0x05d1, 0x02c0,
+ 0xff8d, 0x006f, 0x003c, 0x0004, 0x00b8, 0xff80,
+ 0xfed1, 0xff40, 0xff14, 0xfe32, 0xfadc, 0xf796,
+ 0xf777, 0xf76f, 0xf77d, 0xf828, 0xf6eb, 0xf5dc,
+ 0xf59e, 0xf3c6, 0xf251, 0xf21c, 0xf1f1, 0xf1e8,
+ 0xf0de, 0xf004, 0xf18c, 0xf3b9, 0xf54a, 0xf5b7,
+ 0xf4d3, 0xf469, 0xf3ee, 0xf324, 0xf3d1, 0xf433,
+ 0xf3c4, 0xf49b, 0xf5ae, 0xf676, 0xf6ed, 0xf6c3,
+ 0xf870, 0xfab4, 0xfa50, 0xfa03, 0xfaf3, 0xfba2,
+ 0xfd98, 0xffe6, 0x00b6, 0x0150, 0x016a, 0x00d4,
+ 0x00dc, 0x013f, 0x01b5, 0x0214, 0x0273, 0x0332,
+ 0x02a5, 0x01af, 0x034b, 0x0515, 0x052b, 0x05a9,
+ 0x05ce, 0x054b, 0x05c7, 0x060b, 0x05f2, 0x06a3,
+ 0x071b, 0x0813, 0x0a34, 0x0b52, 0x0bcd, 0x0cfe,
+ 0x0d78, 0x0d7a, 0x0e45, 0x0ed9, 0x0f2f, 0x1012,
+ 0x108d, 0x1050, 0x1025, 0x1056, 0x111f, 0x11f5,
+ 0x1264, 0x1354, 0x1427, 0x1407, 0x147a, 0x14fd,
+ 0x13d6, 0x130b, 0x13e8, 0x1401, 0x123c, 0x10be,
+ 0x1173, 0x130c, 0x13ce, 0x1479, 0x1489, 0x12e0,
+ 0x1112, 0x0f46, 0x0d0b, 0x0bdd, 0x0ae0, 0x09ea,
+ 0x0ac0, 0x0b3c, 0x0ab1, 0x0bb4, 0x0cb6, 0x0c67,
+ 0x0be8, 0x0a34, 0x07f4, 0x0669, 0x041a, 0x01de,
+ 0x0137, 0x0198, 0x02c2, 0x02e5, 0x0184, 0x01af,
+ 0x0305, 0x0371, 0x03d4, 0x03fb, 0x0348, 0x0277,
+ 0x01ae, 0x01a6, 0x0222, 0x0148, 0xffb5, 0xfec9,
+ 0xfe4b, 0xfe56, 0xfeb6, 0xff1c, 0xffb0, 0xff79,
+ 0xfe1e, 0xfd0b, 0xfcc8, 0xfcbc, 0xfcb0, 0xfcd5,
+ 0xfd1b, 0xfd8e, 0xfe96, 0xff38, 0xfecd, 0xff6a,
+ 0x0124, 0x0179, 0x00b8, 0x0025, 0xffe7, 0x00a5,
+ 0x01b6, 0x01fb, 0x0185, 0xffc5, 0xfdc6, 0xfd44,
+ 0xfcbd, 0xfbd2, 0xfbf2, 0xfc0c, 0xfbca, 0xfbf3,
+ 0xfc01, 0xfd38, 0xffae, 0x0040, 0xff9f, 0xfffe,
+ 0xffce, 0xff40, 0x0035, 0x0187, 0x0257, 0x02ea,
+ 0x02c5, 0x0250, 0x0137, 0xfef6, 0xfe01, 0xfeaa,
+ 0xfe45, 0xfdd3, 0xfe91, 0xfeee, 0xff85, 0x00d1,
+ 0x014a, 0x0195, 0x01f6, 0x017a, 0x01a4, 0x029f,
+ 0x0238, 0x00ed, 0x009f, 0x0171, 0x0222, 0x01e4,
+ 0x0215, 0x02bb, 0x01c8, 0x0059, 0xffaa, 0xfe2c,
+ 0xfd23, 0xfe26, 0xfeda, 0xfe63, 0xfddd, 0xfd2d,
+ 0xfcf2, 0xfd7a, 0xfd72, 0xfd38, 0xfe4d, 0x0002,
+ 0x0089, 0xffaf, 0xfe82, 0xfd56, 0xfc40, 0xfbbb,
+ 0xfb5c, 0xfb28, 0xfc45, 0xfe4e, 0xffbe, 0xffed,
+ 0xfee2, 0xfdde, 0xfdef, 0xfdff, 0xfda7, 0xfdc8,
+ 0xfde8, 0xfdcc, 0xfe09, 0xfdf3, 0xfd82, 0xfddf,
+ 0xfea1, 0xfeb9, 0xfdd4, 0xfc21, 0xfb2e, 0xfb95,
+ 0xfb87, 0xfae6, 0xfb06, 0xfbd5, 0xfd94, 0xff61,
+ 0xfedc, 0xfd47, 0xfcba, 0xfbeb, 0xfad5, 0xfa6a,
+ 0xf9bd, 0xf973, 0xfa91, 0xfb9a, 0xfbb3, 0xfb96,
+ 0xfbeb, 0xfc75, 0xfc58, 0xfc53, 0xfcbd, 0xfc07,
+ 0xfb03, 0xfac9, 0xf9ef, 0xf914, 0xf8b0, 0xf78b,
+ 0xf777, 0xf8e4, 0xf970, 0xfa50, 0xfc5e, 0xfdbf,
+ 0xfed2, 0xffb2, 0xffb9, 0xff73, 0xfe45, 0xfd22,
+ 0xfd9c, 0xfd6a, 0xfcc6, 0xfded, 0xfe45, 0xfd3d,
+ 0xfdb9, 0xff12, 0x001d, 0x0055, 0xfee1, 0xfe2c,
+ 0xff15, 0xfeda, 0xfdf4, 0xfd68, 0xfc51, 0xfc00,
+ 0xfcc5, 0xfcff, 0xfd17, 0xfd10, 0xfcb9, 0xfd74,
+ 0xfe44, 0xfdb7, 0xfdc0, 0xff04, 0xff7c, 0xfedf,
+ 0xfe39, 0xfd82, 0xfc7b, 0xfb8e, 0xfb23, 0xfb3f,
+ 0xfb7c, 0xfb72, 0xfb0d, 0xfa6e, 0xfa0f, 0xfa46,
+ 0xfa23, 0xf980, 0xf99f, 0xf9cb, 0xf96c, 0xfa4c,
+ 0xfc27, 0xfdeb, 0x0044, 0x018d, 0x00ed, 0x00d8,
+ 0x00a7, 0xffa2, 0x0064, 0x021d, 0x02ad, 0x02f7,
+ 0x02d2, 0x024f, 0x0234, 0x0146, 0x0030, 0x0032,
+ 0xff4a, 0xfdb2, 0xfdcc, 0xfec7, 0xff2e, 0xff53,
+ 0xffb2, 0xffde, 0xff39, 0xff41, 0x007b, 0x0062,
+ 0xff96, 0xffe1, 0xfedb, 0xfc92, 0xfc05, 0xfc4e,
+ 0xfc45, 0xfcef, 0xfde5, 0xfeaf, 0xff43, 0xff1a,
+ 0xfede, 0xff3e, 0xffa3, 0xff50, 0xfe00, 0xfcba,
+ 0xfc43, 0xfbc4, 0xfba8, 0xfc9a, 0xfd28, 0xfd2c,
+ 0xfe14, 0xffe8, 0x01b6, 0x0249, 0x01b1, 0x0128,
+ 0xffd9, 0xfd8a, 0xfc77, 0xfca8, 0xfd92, 0xff8e,
+ 0x0084, 0x0076, 0x01fb, 0x0347, 0x0304, 0x03a7,
+ 0x0475, 0x042e, 0x049e, 0x0585, 0x05b0, 0x057f,
+ 0x0507, 0x04d4, 0x04c7, 0x0389, 0x01fb, 0x01aa,
+ 0x01fa, 0x01b5, 0x006a, 0xff40, 0xff11, 0xfe98,
+ 0xfdcd, 0xfd71, 0xfc91, 0xfbcd, 0xfc3c, 0xfc51,
+ 0xfbbd, 0xfc3e, 0xfdd9, 0xfec5, 0xfe60, 0xfe85,
+ 0xff9a, 0xff96, 0xff5d, 0x001e, 0xffc3, 0xfe79,
+ 0xfdcf, 0xfcfa, 0xfc68, 0xfcad, 0xfd27, 0xfeba,
+ 0x0098, 0x004d, 0xfeb5, 0xfddf, 0xfe8e, 0x002b,
+ 0x00c5, 0x0095, 0x0102, 0x00c4, 0xffc5, 0xfffe,
+ 0x00c0, 0x0056, 0xff68, 0xff2b, 0xff17, 0xfe63,
+ 0xfe33, 0xff04, 0xff52, 0xff2d, 0xff54, 0xfeea,
+ 0xfe1f, 0xfe07, 0xfe65, 0xfef4, 0xff89, 0xff7a,
+ 0xff09, 0xff61, 0x0089, 0x012e, 0x0137, 0x019a,
+ 0x0186, 0x002f, 0xfefc, 0xfe99, 0xfdfa, 0xfcb0,
+ 0xfbb3, 0xfbdb, 0xfc55, 0xfc72, 0xfcc1, 0xfd1d,
+ 0xfdd2, 0xff64, 0x0029, 0xffdc, 0x0003, 0xffdd,
+ 0xff99, 0x00e2, 0x0217, 0x01a2, 0x00ec, 0x00a9,
+ 0x00c5, 0x0188, 0x0258, 0x0294, 0x02e6, 0x0416,
+ 0x0586, 0x065f, 0x06c2, 0x0690, 0x05e5, 0x0572,
+ 0x04e5, 0x0482, 0x04f8, 0x054a, 0x05a2, 0x0686,
+ 0x0632, 0x051e, 0x051d, 0x04f2, 0x0435, 0x0417,
+ 0x041a, 0x03d1, 0x0374, 0x02e0, 0x0260, 0x024a,
+ 0x02ed, 0x03fe, 0x0447, 0x0417, 0x0475, 0x04da,
+ 0x04a6, 0x03ee, 0x037f, 0x0419, 0x04e3, 0x0583,
+ 0x0680, 0x0738, 0x07df, 0x08c2, 0x0831, 0x0668,
+ 0x051a, 0x03c4, 0x0275, 0x0235, 0x025c, 0x02a6,
+ 0x03b6, 0x04b7, 0x04d2, 0x04e2, 0x056a, 0x05f2,
+ 0x06df, 0x0873, 0x0970, 0x0988, 0x09a5, 0x09cb,
+ 0x09f3, 0x0a56, 0x0a6e, 0x0a21, 0x09ce, 0x08e6,
+ 0x06d5, 0x04bc, 0x0446, 0x04cf, 0x04d9, 0x049d,
+ 0x042d, 0x0376, 0x0345, 0x02c3, 0x0177, 0x0120,
+ 0x016a, 0x0155, 0x020a, 0x0321, 0x0393, 0x043f,
+ 0x0515, 0x052b, 0x0488, 0x03bc, 0x03dc, 0x0499,
+ 0x0472, 0x040f, 0x0477, 0x049b, 0x0420, 0x040d,
+ 0x041e, 0x0363, 0x02af, 0x02eb, 0x033b, 0x0359,
+ 0x03d0, 0x0420, 0x0449, 0x046a, 0x03bc, 0x02e1,
+ 0x02a5, 0x027a, 0x0271, 0x02c1, 0x03e4, 0x0651,
+ 0x07e5, 0x07de, 0x0873, 0x08b7, 0x0763, 0x06b1,
+ 0x06c5, 0x062a, 0x05d7, 0x065a, 0x06fe, 0x0740,
+ 0x068e, 0x056d, 0x04f0, 0x04e0, 0x04bf, 0x0489,
+ 0x0423, 0x0399, 0x02e4, 0x0178, 0xff78, 0xfdd9,
+ 0xfc77, 0xfb07, 0xfa4e, 0xf9b6, 0xf919, 0xfa73,
+ 0xfc8e, 0xfd33, 0xfe1a, 0xfefd, 0xfe03, 0xfd30,
+ 0xfc9d, 0xfa5a, 0xf834, 0xf6e6, 0xf4fd, 0xf3ac,
+ 0xf3a9, 0xf3a9, 0xf3c3, 0xf44a, 0xf448, 0xf34d,
+ 0xf265, 0xf251, 0xf294, 0xf368, 0xf524, 0xf6b9,
+ 0xf7c3, 0xf866, 0xf86d, 0xf86d, 0xf829, 0xf723,
+ 0xf6cc, 0xf778, 0xf86f, 0xfa43, 0xfc70, 0xfde2,
+ 0xfee3, 0xff84, 0xffdd, 0xffdd, 0xff33, 0xff05,
+ 0xff6a, 0xff2d, 0xff73, 0x00d2, 0x0199, 0x017d,
+ 0x010b, 0x0087, 0x00bb, 0x016c, 0x01e1, 0x02da,
+ 0x053f, 0x0853, 0x0a69, 0x0b23, 0x0b5f, 0x0b33,
+ 0x0acf, 0x0ad8, 0x0ac3, 0x0a5e, 0x0a88, 0x0b79,
+ 0x0cf4, 0x0e4f, 0x0eed, 0x0fa5, 0x1098, 0x107b,
+ 0x0f84, 0x0eac, 0x0dfc, 0x0dd7, 0x0e94, 0x0fb3,
+ 0x1124, 0x1304, 0x149f, 0x1582, 0x160d, 0x1647,
+ 0x15f3, 0x1577, 0x153d, 0x14ec, 0x142b, 0x1390,
+ 0x13a3, 0x135a, 0x11f8, 0x10bb, 0x0ffd, 0x0ed0,
+ 0x0db0, 0x0d22, 0x0cd0, 0x0d2f, 0x0def, 0x0dde,
+ 0x0d37, 0x0c96, 0x0bdb, 0x0a9b, 0x089b, 0x06f4,
+ 0x0678, 0x062b, 0x05de, 0x063b, 0x069a, 0x067c,
+ 0x066c, 0x068c, 0x063f, 0x0513, 0x03da, 0x0359,
+ 0x02a3, 0x016a, 0x00af, 0x0053, 0xffc0, 0xff41,
+ 0xfede, 0xfe5b, 0xfde9, 0xfdc2, 0xfdde, 0xfe25,
+ 0xfe8e, 0xfedd, 0xff2a, 0x000e, 0x0107, 0x00ce,
+ 0x0010, 0x001a, 0x002f, 0xff98, 0xff4e, 0xff77,
+ 0xff1c, 0xfe96, 0xfe82, 0xfe56, 0xfe3b, 0xfec4,
+ 0xff1e, 0xfea0, 0xfde3, 0xfd6d, 0xfd29, 0xfcd1,
+ 0xfc8c, 0xfc73, 0xfbe2, 0xfb0e, 0xfaed, 0xfb26,
+ 0xfb3b, 0xfb7f, 0xfc1f, 0xfd0f, 0xfda2, 0xfd88,
+ 0xfdd8, 0xfe23, 0xfd1e, 0xfc24, 0xfc36, 0xfc37,
+ 0xfc24, 0xfc8a, 0xfd1c, 0xfda0, 0xfe10, 0xfeb5,
+ 0xff81, 0xffb1, 0xff4d, 0xfebb, 0xfe08, 0xfda1,
+ 0xfd5e, 0xfce8, 0xfd2b, 0xfe46, 0xff39, 0x000f,
+ 0x00d7, 0x010c, 0x0106, 0x0136, 0x014f, 0x0156,
+ 0x01c1, 0x026f, 0x02e4, 0x033e, 0x035e, 0x0293,
+ 0x0136, 0x000f, 0xfecf, 0xfd6a, 0xfcb5, 0xfcca,
+ 0xfcec, 0xfcc2, 0xfc9b, 0xfc9a, 0xfc64, 0xfc39,
+ 0xfcdf, 0xfe04, 0xfeaa, 0xfeb1, 0xfe91, 0xfe6f,
+ 0xfe02, 0xfd33, 0xfc73, 0xfc13, 0xfbc9, 0xfb76,
+ 0xfb65, 0xfb96, 0xfbfb, 0xfc90, 0xfca0, 0xfbee,
+ 0xfb8f, 0xfb9c, 0xfaf0, 0xf9eb, 0xf98c, 0xf94e,
+ 0xf8c8, 0xf8cf, 0xf9c5, 0xfb2d, 0xfcca, 0xfe51,
+ 0xff1a, 0xff5c, 0xff9c, 0xff68, 0xfef6, 0xfefe,
+ 0xfec7, 0xfe12, 0xfdc0, 0xfd64, 0xfccf, 0xfccd,
+ 0xfccd, 0xfc73, 0xfca8, 0xfd28, 0xfd64, 0xfdd6,
+ 0xfe7c, 0xfee5, 0xfef0, 0xfe78, 0xfdcc, 0xfd7f,
+ 0xfd8c, 0xfd8d, 0xfd46, 0xfcbb, 0xfbe1, 0xfa8d,
+ 0xf922, 0xf891, 0xf909, 0xf9a4, 0xfa17, 0xfada,
+ 0xfb64, 0xfb3e, 0xfb81, 0xfc61, 0xfce5, 0xfd55,
+ 0xfe09, 0xfec4, 0xffe0, 0x00dd, 0x00d5, 0x008b,
+ 0x005f, 0xff86, 0xfe42, 0xfd16, 0xfbee, 0xfb5e,
+ 0xfba0, 0xfbe8, 0xfc1e, 0xfcce, 0xfdaf, 0xfe7a,
+ 0xffa0, 0x00bf, 0x00d3, 0x0026, 0xff70, 0xfe9b,
+ 0xfde5, 0xfdc6, 0xfe09, 0xfe7a, 0xfeeb, 0xfeeb,
+ 0xfe78, 0xfdc8, 0xfcc6, 0xfb67, 0xf9df, 0xf8a2,
+ 0xf809, 0xf7f5, 0xf83e, 0xf8a1, 0xf8a7, 0xf8b7,
+ 0xf95c, 0xf9d4, 0xf9c8, 0xfa10, 0xfaa8, 0xfb0b,
+ 0xfb77, 0xfbcc, 0xfb95, 0xfb43, 0xfb28, 0xfb0b,
+ 0xfb18, 0xfb5e, 0xfb7f, 0xfb7f, 0xfb6b, 0xfb06,
+ 0xfa9b, 0xfa9b, 0xfa8b, 0xfa0b, 0xf9c8, 0xf9e5,
+ 0xf9b9, 0xf9e8, 0xfb4d, 0xfd17, 0xfeb8, 0x0050,
+ 0x013c, 0x012a, 0x0098, 0xfffe, 0xffe9, 0x0002,
+ 0xffa2, 0xff90, 0xffa6, 0xfea6, 0xfd67, 0xfc8c,
+ 0xfb38, 0xfa2d, 0xfa15, 0xfa22, 0xfa70, 0xfac9,
+ 0xfab1, 0xfb3a, 0xfc62, 0xfd41, 0xfe62, 0xff75,
+ 0xffe5, 0x00a9, 0x0134, 0x0070, 0xff43, 0xfdb1,
+ 0xfb67, 0xf9ee, 0xf9a9, 0xf9a0, 0xfa04, 0xfac3,
+ 0xfb17, 0xfb2f, 0xfb98, 0xfc6a, 0xfdb4, 0xff68,
+ 0x0114, 0x0258, 0x0348, 0x03df, 0x03ec, 0x039c,
+ 0x0308, 0x022c, 0x0177, 0x0145, 0x0199, 0x022f,
+ 0x02a1, 0x02f3, 0x02f3, 0x0288, 0x0293, 0x02dc,
+ 0x028e, 0x02af, 0x0371, 0x03d9, 0x0468, 0x04fd,
+ 0x0507, 0x055b, 0x0573, 0x04bc, 0x047a, 0x0496,
+ 0x049d, 0x0513, 0x0574, 0x05d9, 0x065d, 0x0583,
+ 0x03df, 0x02ca, 0x01b1, 0x010c, 0x0155, 0x01a4,
+ 0x0225, 0x02c7, 0x02eb, 0x02e1, 0x027b, 0x0218,
+ 0x02a3, 0x031f, 0x0347, 0x0402, 0x04c7, 0x057a,
+ 0x064b, 0x0672, 0x065a, 0x0641, 0x0577, 0x0480,
+ 0x0329, 0x00da, 0xfeee, 0xfddb, 0xfcfe, 0xfd20,
+ 0xfe77, 0x0013, 0x01bb, 0x0326, 0x03cd, 0x03c7,
+ 0x037a, 0x031f, 0x02c1, 0x02a1, 0x02f3, 0x0363,
+ 0x0400, 0x04f1, 0x0559, 0x04c2, 0x03b0, 0x0235,
+ 0x0076, 0xff47, 0xfec7, 0xfe87, 0xfefa, 0x0069,
+ 0x01d0, 0x0273, 0x02a9, 0x02c1, 0x02eb, 0x0316,
+ 0x02c4, 0x0227, 0x01f7, 0x0208, 0x01ac, 0x00e1,
+ 0x004c, 0x0029, 0x0033, 0x0093, 0x0148, 0x01ed,
+ 0x02aa, 0x032e, 0x02fa, 0x02f3, 0x0353, 0x0388,
+ 0x0443, 0x0572, 0x060d, 0x067f, 0x071d, 0x076c,
+ 0x0754, 0x06b8, 0x05d8, 0x053b, 0x050c, 0x05a2,
+ 0x065f, 0x065d, 0x066c, 0x06b7, 0x0677, 0x0650,
+ 0x066e, 0x0665, 0x06b8, 0x070f, 0x06e7, 0x06b0,
+ 0x061b, 0x054a, 0x050e, 0x04f1, 0x04b3, 0x04d2,
+ 0x051e, 0x053e, 0x04e7, 0x0441, 0x0400, 0x03cf,
+ 0x0340, 0x02ea, 0x0304, 0x0389, 0x042e, 0x0418,
+ 0x0380, 0x02f8, 0x0274, 0x0267, 0x02e4, 0x039d,
+ 0x050e, 0x06d9, 0x07d2, 0x07e0, 0x0764, 0x06cc,
+ 0x0662, 0x05e7, 0x057a, 0x0515, 0x046d, 0x046a,
+ 0x055e, 0x0630, 0x06e2, 0x07b2, 0x07cf, 0x0758,
+ 0x06e8, 0x0634, 0x054c, 0x04c5, 0x04a0, 0x04aa,
+ 0x0525, 0x0657, 0x07db, 0x08f2, 0x0957, 0x0945,
+ 0x08de, 0x0840, 0x07ee, 0x0815, 0x0817, 0x07e6,
+ 0x081a, 0x084e, 0x07eb, 0x0761, 0x06fd, 0x06be,
+ 0x06e5, 0x0731, 0x0722, 0x06bd, 0x0628, 0x0571,
+ 0x04b2, 0x03ec, 0x033d, 0x02d1, 0x0295, 0x027d,
+ 0x02d4, 0x03b8, 0x04ae, 0x055b, 0x05d3, 0x05ea,
+ 0x059f, 0x05a0, 0x0609, 0x0650, 0x065a, 0x060d,
+ 0x056d, 0x050d, 0x04db, 0x046e, 0x0467, 0x0504,
+ 0x0567, 0x055c, 0x0541, 0x04ec, 0x0450, 0x03d7,
+ 0x03ce, 0x0419, 0x0451, 0x0468, 0x04a3, 0x04c8,
+ 0x0496, 0x045f, 0x0448, 0x0447, 0x0453, 0x03fc,
+ 0x0321, 0x022b, 0x012d, 0x0018, 0xff07, 0xfe14,
+ 0xfdbe, 0xfe50, 0xff1d, 0xff7c, 0xff6a, 0xfefe,
+ 0xfe31, 0xfd26, 0xfc47, 0xfbc8, 0xfb78, 0xfb49,
+ 0xfb2d, 0xfadb, 0xfa73, 0xfa51, 0xfa70, 0xfaaf,
+ 0xfae9, 0xfaec, 0xfacb, 0xfa94, 0xf9fd, 0xf8f8,
+ 0xf826, 0xf815, 0xf86d, 0xf86b, 0xf7ef, 0xf758,
+ 0xf6c7, 0xf607, 0xf533, 0xf4cf, 0xf4e3, 0xf52b,
+ 0xf5b9, 0xf657, 0xf691, 0xf672, 0xf62a, 0xf617,
+ 0xf6ac, 0xf7a1, 0xf88c, 0xf948, 0xf992, 0xf996,
+ 0xf974, 0xf8f5, 0xf8bb, 0xf92b, 0xf982, 0xf992,
+ 0xf987, 0xf93e, 0xf94a, 0xf9ee, 0xfa6d, 0xfab1,
+ 0xfb2c, 0xfbcb, 0xfc43, 0xfc68, 0xfc55, 0xfc58,
+ 0xfc79, 0xfcb3, 0xfd35, 0xfe32, 0xffc5, 0x01ae,
+ 0x0365, 0x04ad, 0x059a, 0x0626, 0x066b, 0x06db,
+ 0x07b4, 0x08be, 0x09c6, 0x0a9e, 0x0b30, 0x0bb8,
+ 0x0c61, 0x0d35, 0x0e1b, 0x0e83, 0x0e86, 0x0eeb,
+ 0x0f74, 0x0fab, 0x0fe9, 0x1045, 0x10c8, 0x118e,
+ 0x1211, 0x120d, 0x11bc, 0x1154, 0x117f, 0x1266,
+ 0x1324, 0x1347, 0x130f, 0x12ea, 0x1303, 0x12ae,
+ 0x118c, 0x102a, 0x0eda, 0x0dab, 0x0ca0, 0x0ba4,
+ 0x0ad6, 0x09e6, 0x0875, 0x0705, 0x05db, 0x0508,
+ 0x04f3, 0x052b, 0x04fc, 0x0496, 0x044c, 0x0480,
+ 0x0500, 0x04df, 0x0463, 0x0444, 0x040b, 0x0372,
+ 0x029c, 0x015e, 0x0018, 0xff4b, 0xfee9, 0xfee4,
+ 0xfee5, 0xfe6d, 0xfda8, 0xfd23, 0xfd4a, 0xfdfb,
+ 0xfe62, 0xfe24, 0xfda6, 0xfd07, 0xfc18, 0xfb2a,
+ 0xfabb, 0xfac8, 0xfb08, 0xfb6d, 0xfc02, 0xfcb4,
+ 0xfd6a, 0xfe07, 0xfe5f, 0xfe59, 0xfdf4, 0xfd02,
+ 0xfba0, 0xfa95, 0xfa3f, 0xfa6b, 0xfb56, 0xfc9c,
+ 0xfd20, 0xfd22, 0xfd3c, 0xfcf8, 0xfc5c, 0xfbbe,
+ 0xfaff, 0xfa8f, 0xfab5, 0xface, 0xfa9d, 0xfa63,
+ 0xfa4b, 0xfa3d, 0xfa07, 0xfa14, 0xfab6, 0xfb63,
+ 0xfbf2, 0xfc69, 0xfc7d, 0xfc84, 0xfcb6, 0xfcde,
+ 0xfd66, 0xfe5b, 0xff2d, 0xffe3, 0x004c, 0xfff4,
+ 0xff07, 0xfe0b, 0xfd75, 0xfd3f, 0xfce6, 0xfc8f,
+ 0xfca7, 0xfd20, 0xfdeb, 0xfeae, 0xfedd, 0xfeaf,
+ 0xfe6b, 0xfe19, 0xfe29, 0xfeb0, 0xff45, 0xffec,
+ 0x00b5, 0x014e, 0x0197, 0x01bf, 0x01e2, 0x01dd,
+ 0x0148, 0x0001, 0xfe7e, 0xfd2c, 0xfc37, 0xfbea,
+ 0xfc11, 0xfc0c, 0xfc16, 0xfc7e, 0xfcb2, 0xfc96,
+ 0xfc8b, 0xfc9e, 0xfd3b, 0xfe66, 0xff40, 0xffad,
+ 0x0006, 0x0013, 0xffdd, 0xff82, 0xfef1, 0xfe92,
+ 0xfe6f, 0xfe1a, 0xfddc, 0xfe09, 0xfe3d, 0xfe39,
+ 0xfdeb, 0xfd2e, 0xfc31, 0xfb31, 0xfa3f, 0xf98c,
+ 0xf91b, 0xf8c1, 0xf8c7, 0xf95c, 0xfa00, 0xfa81,
+ 0xfb63, 0xfccf, 0xfe45, 0xff5c, 0xffe6, 0xffa4,
+ 0xfebc, 0xfdf7, 0xfd7c, 0xfcb9, 0xfbf6, 0xfb91,
+ 0xfafc, 0xfa3a, 0xf9b5, 0xf934, 0xf8f5, 0xf94a,
+ 0xf9b2, 0xf9fe, 0xfa44, 0xfa70, 0xfad7, 0xfb3e,
+ 0xfb04, 0xfa96, 0xfa7e, 0xfa96, 0xfaca, 0xfae8,
+ 0xfae8, 0xfb2d, 0xfbb1, 0xfc2b, 0xfc72, 0xfc96,
+ 0xfd23, 0xfe53, 0xff9c, 0x0087, 0x00c2, 0x003f,
+ 0xffa3, 0xff28, 0xfe71, 0xfdae, 0xfd4a, 0xfd2c,
+ 0xfd51, 0xfde8, 0xfe96, 0xfeea, 0xff1e, 0xff78,
+ 0x0008, 0x010b, 0x0230, 0x02ea, 0x033f, 0x02e1,
+ 0x019c, 0x007c, 0x0034, 0x004c, 0x0070, 0x0072,
+ 0x0017, 0xff3d, 0xfdc2, 0xfc31, 0xfb48, 0xfb03,
+ 0xfb62, 0xfc6a, 0xfd75, 0xfe10, 0xfe62, 0xfe95,
+ 0xfeaa, 0xfe53, 0xfd99, 0xfd1a, 0xfcf7, 0xfd01,
+ 0xfd3f, 0xfd52, 0xfd07, 0xfcc3, 0xfc89, 0xfc4b,
+ 0xfc5e, 0xfcf4, 0xfe28, 0xffb1, 0x0085, 0x006a,
+ 0x002c, 0x0000, 0xff9d, 0xfefa, 0xfe0d, 0xfd0c,
+ 0xfc42, 0xfb73, 0xfa96, 0xfa0e, 0xf9f6, 0xfa5b,
+ 0xfb39, 0xfc39, 0xfd3b, 0xfe37, 0xff15, 0xfff7,
+ 0x009f, 0x00af, 0x0072, 0x004c, 0x005b, 0x0092,
+ 0x0090, 0x002b, 0xff76, 0xfe7a, 0xfdaa, 0xfd1e,
+ 0xfc92, 0xfc75, 0xfcc7, 0xfcef, 0xfd49, 0xfe13,
+ 0xfeb8, 0xfef3, 0xfede, 0xfea5, 0xfe42, 0xfdbc,
+ 0xfdd3, 0xfe6c, 0xfe8a, 0xfeaf, 0xff4f, 0xffba,
+ 0x003d, 0x0115, 0x01b8, 0x026e, 0x031f, 0x034a,
+ 0x0368, 0x03a4, 0x03dd, 0x0437, 0x042b, 0x03a8,
+ 0x035f, 0x033e, 0x031f, 0x030e, 0x02ef, 0x0322,
+ 0x03ad, 0x03fb, 0x040d, 0x03e5, 0x038f, 0x03c2,
+ 0x04a3, 0x05b1, 0x06b8, 0x0786, 0x0808, 0x0870,
+ 0x0897, 0x0819, 0x06e2, 0x0563, 0x041d, 0x0301,
+ 0x0214, 0x01a6, 0x018c, 0x018f, 0x01c4, 0x0204,
+ 0x023b, 0x028e, 0x02c2, 0x0298, 0x0244, 0x022a,
+ 0x0290, 0x035a, 0x0410, 0x0480, 0x04d3, 0x04f1,
+ 0x04c2, 0x04b1, 0x050d, 0x057c, 0x05be, 0x05ee,
+ 0x05f4, 0x05bb, 0x059a, 0x05ce, 0x0608, 0x0614,
+ 0x0640, 0x066a, 0x0605, 0x0545, 0x0498, 0x03e9,
+ 0x035a, 0x0329, 0x0312, 0x02e2, 0x02a4, 0x0278,
+ 0x0283, 0x02b6, 0x0311, 0x03af, 0x0468, 0x0504,
+ 0x0534, 0x049e, 0x038c, 0x0270, 0x0160, 0x00ac,
+ 0x0091, 0x00de, 0x0190, 0x029d, 0x03a9, 0x0447,
+ 0x041a, 0x0338, 0x024e, 0x01c4, 0x0149, 0x00aa,
+ 0x0069, 0x00df, 0x01ad, 0x02a2, 0x0382, 0x0393,
+ 0x02d5, 0x0203, 0x016a, 0x0165, 0x025c, 0x03e6,
+ 0x0543, 0x0632, 0x06fc, 0x07c1, 0x0828, 0x084c,
+ 0x088e, 0x08b3, 0x08c1, 0x08f8, 0x08c3, 0x07df,
+ 0x071c, 0x070c, 0x0790, 0x085b, 0x0943, 0x0a1e,
+ 0x0a76, 0x0a46, 0x0a2f, 0x0a48, 0x0a5d, 0x0aa6,
+ 0x0af1, 0x0aad, 0x09fd, 0x0968, 0x090d, 0x08db,
+ 0x08f4, 0x093d, 0x0959, 0x097f, 0x09e7, 0x09ef,
+ 0x0952, 0x0857, 0x06f6, 0x0599, 0x04d0, 0x0458,
+ 0x0438, 0x04b4, 0x055d, 0x05fe, 0x06a1, 0x0715,
+ 0x07aa, 0x087a, 0x08ea, 0x090d, 0x0930, 0x0915,
+ 0x0906, 0x0958, 0x097f, 0x0937, 0x0912, 0x095b,
+ 0x098d, 0x0946, 0x08fb, 0x08da, 0x0863, 0x07b1,
+ 0x0736, 0x06d0, 0x066e, 0x0620, 0x05ca, 0x057f,
+ 0x0557, 0x0552, 0x05a5, 0x064e, 0x0714, 0x07eb,
+ 0x089e, 0x0908, 0x093a, 0x0903, 0x0868, 0x07f1,
+ 0x07a5, 0x0713, 0x065a, 0x05f5, 0x05f6, 0x0636,
+ 0x0699, 0x06ad, 0x061b, 0x0553, 0x04c5, 0x047f,
+ 0x0497, 0x04db, 0x051d, 0x05b5, 0x065c, 0x067e,
+ 0x067f, 0x06b1, 0x06df, 0x0722, 0x0775, 0x07b7,
+ 0x0821, 0x089d, 0x08dd, 0x08d5, 0x0882, 0x081c,
+ 0x07ea, 0x07d4, 0x07bd, 0x078c, 0x0757, 0x078b,
+ 0x07f7, 0x0812, 0x080e, 0x082e, 0x0871, 0x0907,
+ 0x09ad, 0x09ed, 0x0a05, 0x0a2b, 0x0a09, 0x0947,
+ 0x07f0, 0x06c8, 0x066d, 0x0631, 0x058f, 0x0531,
+ 0x0544, 0x054c, 0x0581, 0x060a, 0x0621, 0x0566,
+ 0x0444, 0x02f7, 0x01aa, 0x00c5, 0x0059, 0x000f,
+ 0xffb8, 0xff4b, 0xfea4, 0xfdb0, 0xfcc0, 0xfc29,
+ 0xfbcc, 0xfb75, 0xfb5a, 0xfbc4, 0xfc81, 0xfd06,
+ 0xfd1e, 0xfcf7, 0xfca5, 0xfbfe, 0xfaf0, 0xf9af,
+ 0xf8be, 0xf889, 0xf8da, 0xf937, 0xf948, 0xf8df,
+ 0xf831, 0xf7bd, 0xf795, 0xf786, 0xf7a6, 0xf808,
+ 0xf87d, 0xf8db, 0xf8fc, 0xf89e, 0xf7c0, 0xf6bc,
+ 0xf5d7, 0xf540, 0xf53d, 0xf5db, 0xf6b9, 0xf75b,
+ 0xf791, 0xf788, 0xf77f, 0xf79b, 0xf7cc, 0xf7b6,
+ 0xf74d, 0xf710, 0xf716, 0xf709, 0xf712, 0xf75f,
+ 0xf7ad, 0xf7e2, 0xf7e9, 0xf79f, 0xf741, 0xf6fc,
+ 0xf6c5, 0xf6c5, 0xf71a, 0xf7b1, 0xf89b, 0xf9d3,
+ 0xfb2a, 0xfc7f, 0xfdb6, 0xfecb, 0xffd2, 0x00a8,
+ 0x0131, 0x0196, 0x021f, 0x02e1, 0x03a9, 0x0485,
+ 0x05c7, 0x071f, 0x0800, 0x0876, 0x08a6, 0x08b5,
+ 0x0926, 0x0a2b, 0x0b96, 0x0d46, 0x0ebc, 0x0f8f,
+ 0x1039, 0x1111, 0x11a9, 0x11bb, 0x1193, 0x1188,
+ 0x1191, 0x1194, 0x11d9, 0x1286, 0x1324, 0x134d,
+ 0x131f, 0x12d4, 0x1276, 0x11ee, 0x1155, 0x10fb,
+ 0x10e9, 0x10ee, 0x10e8, 0x1096, 0x0fca, 0x0ea3,
+ 0x0d3f, 0x0bd7, 0x0abc, 0x09e9, 0x0963, 0x096d,
+ 0x09c1, 0x09c3, 0x096f, 0x0923, 0x08f7, 0x08b7,
+ 0x0821, 0x073d, 0x0640, 0x055a, 0x04b9, 0x0446,
+ 0x03ce, 0x0364, 0x02dd, 0x0222, 0x01ba, 0x01b3,
+ 0x0191, 0x0196, 0x01dd, 0x01c2, 0x0148, 0x00e7,
+ 0x0088, 0xfff3, 0xff25, 0xfe47, 0xfd91, 0xfcdf,
+ 0xfc26, 0xfbd2, 0xfbdc, 0xfbd8, 0xfbcd, 0xfbea,
+ 0xfc30, 0xfc79, 0xfc7b, 0xfbf4, 0xfac8, 0xf957,
+ 0xf861, 0xf82c, 0xf894, 0xf97a, 0xfa3f, 0xfa36,
+ 0xf997, 0xf8be, 0xf790, 0xf644, 0xf553, 0xf4f6,
+ 0xf550, 0xf62a, 0xf6dd, 0xf72a, 0xf731, 0xf6df,
+ 0xf65b, 0xf5f1, 0xf59e, 0xf59d, 0xf634, 0xf6f8,
+ 0xf7b7, 0xf8be, 0xf9d8, 0xfab7, 0xfb68, 0xfbcf,
+ 0xfbec, 0xfc02, 0xfc23, 0xfc64, 0xfce1, 0xfd84,
+ 0xfe33, 0xfece, 0xff18, 0xfeed, 0xfe74, 0xfe30,
+ 0xfe71, 0xfed5, 0xff0b, 0xff42, 0xff7e, 0xff7c,
+ 0xff5f, 0xffa5, 0x0043, 0x00aa, 0x00d2, 0x00ee,
+ 0x00bb, 0x0055, 0x001d, 0xffe8, 0xff9d, 0xff7d,
+ 0xff75, 0xff63, 0xff58, 0xff51, 0xff49, 0xff60,
+ 0xffc9, 0x0064, 0x00c4, 0x00d6, 0x00c8, 0x0094,
+ 0x0053, 0xfff5, 0xff47, 0xfea0, 0xfe50, 0xfe2e,
+ 0xfe53, 0xfee4, 0xff7b, 0xffa4, 0xff57, 0xfecd,
+ 0xfe1b, 0xfd3f, 0xfc8f, 0xfc4f, 0xfc68, 0xfce3,
+ 0xfdbe, 0xfec7, 0xffdd, 0x008e, 0x004a, 0xff1f,
+ 0xfd77, 0xfbe1, 0xfae6, 0xfa79, 0xfa7a, 0xfb34,
+ 0xfc5a, 0xfcfb, 0xfce3, 0xfca8, 0xfc91, 0xfc74,
+ 0xfc3f, 0xfc1d, 0xfc58, 0xfd03, 0xfdd3, 0xfe9b,
+ 0xff50, 0xff7f, 0xfed5, 0xfdc0, 0xfcc5, 0xfc38,
+ 0xfc46, 0xfcb7, 0xfd49, 0xfdc4, 0xfdc9, 0xfd5b,
+ 0xfcb5, 0xfbd8, 0xfb39, 0xfb3c, 0xfb75, 0xfbc7,
+ 0xfc69, 0xfcd3, 0xfcb1, 0xfcb6, 0xfd42, 0xfdbe,
+ 0xfdc1, 0xfdc7, 0xfe47, 0xff03, 0xffae, 0x0066,
+ 0x0137, 0x01c2, 0x01d2, 0x01e4, 0x021e, 0x01c1,
+ 0x00e5, 0x0063, 0xfffc, 0xff69, 0xff2e, 0xff46,
+ 0xff76, 0xffde, 0x0034, 0x0049, 0x0062, 0x00ab,
+ 0x0141, 0x0200, 0x0273, 0x0252, 0x0199, 0x00b3,
+ 0x002b, 0xffcb, 0xff41, 0xfec5, 0xfe7a, 0xfe8f,
+ 0xff1e, 0xffd1, 0x0077, 0x0110, 0x0165, 0x0165,
+ 0x0117, 0x0082, 0xffa3, 0xfe76, 0xfd85, 0xfd66,
+ 0xfdc6, 0xfe02, 0xfdd7, 0xfd74, 0xfd5e, 0xfda2,
+ 0xfe01, 0xfe8a, 0xfedb, 0xfe9f, 0xfe53, 0xfe22,
+ 0xfdf1, 0xfe08, 0xfe4f, 0xfe9f, 0xff15, 0xff61,
+ 0xff68, 0xff5d, 0xfefc, 0xfe36, 0xfd7a, 0xfcf0,
+ 0xfc8c, 0xfc4b, 0xfc46, 0xfc98, 0xfd16, 0xfda8,
+ 0xfe2a, 0xfe4e, 0xfe52, 0xfe7f, 0xfea6, 0xfed7,
+ 0xff07, 0xfee7, 0xfeba, 0xfeae, 0xfeb5, 0xff12,
+ 0xff6e, 0xff3f, 0xfefb, 0xff02, 0xff50, 0xffec,
+ 0x0061, 0x0054, 0xfff3, 0xff23, 0xfe11, 0xfd5e,
+ 0xfd0e, 0xfcfc, 0xfd3c, 0xfd6d, 0xfd6b, 0xfd90,
+ 0xfdc0, 0xfdcd, 0xfddf, 0xfdcc, 0xfd71, 0xfd44,
+ 0xfdb2, 0xfeb8, 0x0026, 0x018b, 0x0276, 0x02ff,
+ 0x035d, 0x038a, 0x03ab, 0x03ef, 0x0423, 0x0419,
+ 0x0401, 0x040b, 0x0437, 0x046f, 0x0487, 0x0448,
+ 0x03aa, 0x02ee, 0x0275, 0x0282, 0x02dc, 0x02fb,
+ 0x0306, 0x0364, 0x03b3, 0x0392, 0x034e, 0x032b,
+ 0x0350, 0x03b3, 0x03e5, 0x03e1, 0x03f4, 0x03f3,
+ 0x03dc, 0x03fd, 0x0419, 0x03de, 0x038d, 0x0352,
+ 0x02e1, 0x0216, 0x0151, 0x00e4, 0x00c9, 0x012a,
+ 0x01d9, 0x0243, 0x02a8, 0x03a4, 0x04e6, 0x05db,
+ 0x062c, 0x05d9, 0x0576, 0x0555, 0x0533, 0x0509,
+ 0x04da, 0x0493, 0x0445, 0x03a5, 0x029b, 0x01c9,
+ 0x0174, 0x015c, 0x0163, 0x014e, 0x00ef, 0x0067,
+ 0xffe2, 0xff67, 0xfeea, 0xfec5, 0xff76, 0x0089,
+ 0x0137, 0x017a, 0x0177, 0x0133, 0x00c3, 0x001f,
+ 0xff84, 0xff49, 0xff53, 0xff8c, 0x0000, 0x005d,
+ 0x0065, 0x0006, 0xff3a, 0xfe57, 0xfda5, 0xfd08,
+ 0xfc97, 0xfc8e, 0xfce0, 0xfd74, 0xfe2d, 0xfec8,
+ 0xff40, 0xffa4, 0xffc4, 0xffb3, 0x0005, 0x00cf,
+ 0x0181, 0x01c4, 0x0182, 0x00db, 0x0032, 0xff91,
+ 0xfed2, 0xfe46, 0xfe28, 0xfe69, 0xff02, 0xffa8,
+ 0x0020, 0x009b, 0x0103, 0x0116, 0x00e6, 0x008d,
+ 0x0036, 0x002c, 0x0084, 0x0147, 0x025d, 0x0374,
+ 0x0472, 0x053c, 0x05ad, 0x0627, 0x06e0, 0x073e,
+ 0x06fa, 0x0679, 0x05f4, 0x0590, 0x0593, 0x05ee,
+ 0x064d, 0x06a9, 0x0706, 0x073e, 0x077b, 0x07f3,
+ 0x085c, 0x0870, 0x0842, 0x07c1, 0x06e9, 0x0618,
+ 0x0591, 0x0540, 0x052a, 0x0578, 0x0627, 0x06fb,
+ 0x079a, 0x07cd, 0x07c0, 0x07b1, 0x0793, 0x0758,
+ 0x0718, 0x06ee, 0x06f5, 0x0710, 0x06fe, 0x06de,
+ 0x06fe, 0x0752, 0x07b0, 0x0810, 0x0863, 0x087a,
+ 0x085a, 0x0870, 0x08b3, 0x0882, 0x07de, 0x0734,
+ 0x067a, 0x05c4, 0x054a, 0x04cb, 0x0442, 0x03eb,
+ 0x03aa, 0x0371, 0x0353, 0x0339, 0x0336, 0x0365,
+ 0x03be, 0x0439, 0x04be, 0x054f, 0x05f8, 0x066d,
+ 0x067f, 0x0642, 0x05ae, 0x04e4, 0x03ef, 0x029e,
+ 0x0178, 0x0136, 0x01a0, 0x024b, 0x033b, 0x0464,
+ 0x05b6, 0x071d, 0x0837, 0x08c8, 0x08ef, 0x08be,
+ 0x0819, 0x0712, 0x05ed, 0x04e5, 0x0425, 0x03ca,
+ 0x03c2, 0x03ed, 0x0428, 0x0447, 0x044d, 0x0467,
+ 0x0496, 0x0492, 0x0441, 0x040d, 0x043e, 0x0487,
+ 0x04bc, 0x04f4, 0x0526, 0x0570, 0x05c8, 0x05b2,
+ 0x0522, 0x0479, 0x03fa, 0x03cf, 0x03b2, 0x034c,
+ 0x02d8, 0x0265, 0x01e8, 0x01be, 0x01e2, 0x020d,
+ 0x024b, 0x0271, 0x0275, 0x0270, 0x01f9, 0x00f6,
+ 0xffce, 0xfe95, 0xfda4, 0xfd4f, 0xfd19, 0xfce4,
+ 0xfd11, 0xfd69, 0xfd83, 0xfd4b, 0xfcdb, 0xfc66,
+ 0xfbf7, 0xfb8b, 0xfb4f, 0xfb2a, 0xfaeb, 0xfacc,
+ 0xfafa, 0xfb4f, 0xfb9f, 0xfbbf, 0xfb88, 0xfaf8,
+ 0xfa36, 0xf980, 0xf90c, 0xf8f6, 0xf92a, 0xf953,
+ 0xf921, 0xf8a2, 0xf830, 0xf7ee, 0xf7aa, 0xf751,
+ 0xf6e0, 0xf63d, 0xf5a0, 0xf537, 0xf4d2, 0xf473,
+ 0xf44b, 0xf468, 0xf4cb, 0xf548, 0xf5be, 0xf655,
+ 0xf703, 0xf790, 0xf818, 0xf8c7, 0xf975, 0xf9c9,
+ 0xf9bf, 0xf9ad, 0xf9ab, 0xf9e9, 0xfac8, 0xfc00,
+ 0xfd24, 0xfe5f, 0xffa4, 0x00b4, 0x0197, 0x0236,
+ 0x02ab, 0x034c, 0x041a, 0x0513, 0x0635, 0x074f,
+ 0x0868, 0x098c, 0x0a8d, 0x0b66, 0x0c2c, 0x0cce,
+ 0x0d2a, 0x0d34, 0x0d29, 0x0d20, 0x0d0c, 0x0d1f,
+ 0x0d58, 0x0d88, 0x0dd6, 0x0e43, 0x0eb4, 0x0f22,
+ 0x0f48, 0x0f4d, 0x0fb0, 0x105f, 0x113d, 0x1213,
+ 0x125b, 0x1260, 0x1261, 0x11ca, 0x10b5, 0x0fa0,
+ 0x0e96, 0x0dd3, 0x0d4b, 0x0cc5, 0x0c93, 0x0c97,
+ 0x0c83, 0x0ca5, 0x0cc0, 0x0c82, 0x0c6b, 0x0c83,
+ 0x0c65, 0x0c26, 0x0bca, 0x0b64, 0x0b30, 0x0b16,
+ 0x0b00, 0x0ad0, 0x0a2c, 0x0930, 0x0828, 0x06fd,
+ 0x05dc, 0x0516, 0x047b, 0x03dc, 0x037c, 0x0388,
+ 0x03de, 0x0426, 0x0405, 0x03a2, 0x037e, 0x0398,
+ 0x03af, 0x03df, 0x0428, 0x0448, 0x044f, 0x0454,
+ 0x03ed, 0x02b7, 0x0131, 0x0039, 0xffc8, 0xff4e,
+ 0xfee1, 0xfe86, 0xfdde, 0xfd06, 0xfc48, 0xfbaa,
+ 0xfb41, 0xfb07, 0xfaea, 0xfae6, 0xfacd, 0xfabe,
+ 0xfaff, 0xfb6b, 0xfbef, 0xfc60, 0xfc46, 0xfbcb,
+ 0xfb45, 0xfaa1, 0xfa1e, 0xf9cf, 0xf973, 0xf974,
+ 0xfa1a, 0xfaf9, 0xfbce, 0xfc52, 0xfc30, 0xfbad,
+ 0xfb29, 0xfadb, 0xfb01, 0xfb71, 0xfbd2, 0xfc24,
+ 0xfc93, 0xfd2b, 0xfdac, 0xfddd, 0xfdf9, 0xfe49,
+ 0xfea6, 0xfeb8, 0xfe61, 0xfdef, 0xfdb2, 0xfdaa,
+ 0xfdc0, 0xfdd9, 0xfdf0, 0xfe52, 0xff19, 0xffec,
+ 0x008e, 0x010c, 0x0175, 0x01c2, 0x01ca, 0x0181,
+ 0x013d, 0x0167, 0x01f2, 0x028b, 0x0320, 0x03b0,
+ 0x0414, 0x0439, 0x0422, 0x0407, 0x0427, 0x0438,
+ 0x0410, 0x03fc, 0x03ba, 0x0340, 0x0352, 0x03e8,
+ 0x046b, 0x04bd, 0x04b4, 0x0465, 0x042c, 0x03db,
+ 0x0385, 0x035e, 0x02fc, 0x026f, 0x01fe, 0x0159,
+ 0x00b6, 0x009c, 0x00d8, 0x0107, 0x00dd, 0x0046,
+ 0xffab, 0xff30, 0xfeb5, 0xfe55, 0xfe1b, 0xfe27,
+ 0xfe89, 0xfedd, 0xfee7, 0xfed7, 0xfece, 0xfecd,
+ 0xfec9, 0xfec8, 0xfeba, 0xfe42, 0xfd4c, 0xfc3e,
+ 0xfb56, 0xfabd, 0xfa9c, 0xfadd, 0xfb5f, 0xfbd7,
+ 0xfbed, 0xfbd7, 0xfbf8, 0xfc5e, 0xfcfa, 0xfdb6,
+ 0xfe69, 0xfeda, 0xfec1, 0xfe21, 0xfd30, 0xfc1a,
+ 0xfb3c, 0xfafb, 0xfb63, 0xfc3b, 0xfd28, 0xfdec,
+ 0xfe84, 0xfedb, 0xfeee, 0xff04, 0xff3f, 0xff93,
+ 0x0005, 0x008d, 0x0114, 0x0169, 0x0144, 0x00d9,
+ 0x00aa, 0x00cd, 0x0114, 0x0172, 0x01ab, 0x018a,
+ 0x014f, 0x0115, 0x0085, 0xffbb, 0xff62, 0xffa8,
+ 0x001b, 0x009e, 0x014d, 0x01ee, 0x023a, 0x0248,
+ 0x0225, 0x01b3, 0x0141, 0x0125, 0x0103, 0x00a2,
+ 0x006a, 0x0064, 0x0046, 0x003c, 0x0080, 0x00d2,
+ 0x00d6, 0x008d, 0x004c, 0x0026, 0xffda, 0xff55,
+ 0xfed3, 0xfe9a, 0xfed2, 0xff38, 0xff68, 0xff65,
+ 0xff3a, 0xfed9, 0xfe56, 0xfdce, 0xfd7f, 0xfdb5,
+ 0xfe5f, 0xff1f, 0xff9a, 0xffac, 0xff74, 0xff02,
+ 0xfe64, 0xfde4, 0xfda3, 0xfd72, 0xfd2e, 0xfce4,
+ 0xfcbe, 0xfcb1, 0xfc90, 0xfc7b, 0xfc97, 0xfcca,
+ 0xfcfd, 0xfd10, 0xfd11, 0xfd59, 0xfdd7, 0xfe26,
+ 0xfe40, 0xfe20, 0xfda7, 0xfd11, 0xfcd3, 0xfd25,
+ 0xfdc8, 0xfe47, 0xfe9d, 0xfef6, 0xff48, 0xff81,
+ 0xff8f, 0xff5d, 0xff00, 0xfeae, 0xfe8e, 0xfea5,
+ 0xfee6, 0xff4c, 0xffc0, 0x0010, 0x0003, 0xff6b,
+ 0xfe9a, 0xfe3d, 0xfe44, 0xfe37, 0xfe19, 0xfe34,
+ 0xfece, 0xffe3, 0x00db, 0x014c, 0x015d, 0x012a,
+ 0x00c4, 0x006f, 0x0047, 0x0040, 0x0047, 0x003f,
+ 0x001c, 0xffd2, 0xff61, 0xff1c, 0xff3c, 0xff5f,
+ 0xff1f, 0xfea2, 0xfe51, 0xfe78, 0xff06, 0xff8a,
+ 0xffc5, 0xfff5, 0x0069, 0x013d, 0x0233, 0x02ca,
+ 0x02e2, 0x02c2, 0x025d, 0x018f, 0x00bf, 0x0066,
+ 0x0087, 0x00f4, 0x0182, 0x01ff, 0x025e, 0x029c,
+ 0x0295, 0x0259, 0x021f, 0x01e8, 0x01c8, 0x01fc,
+ 0x0267, 0x02b8, 0x02e0, 0x02e2, 0x02a7, 0x0243,
+ 0x0213, 0x0255, 0x02f2, 0x03ac, 0x041d, 0x03f4,
+ 0x0374, 0x030e, 0x02d9, 0x02e9, 0x0340, 0x03ba,
+ 0x0458, 0x04cf, 0x04b6, 0x0428, 0x0347, 0x0241,
+ 0x019a, 0x0169, 0x0179, 0x01c7, 0x0210, 0x0216,
+ 0x01dd, 0x0145, 0x007a, 0xffcc, 0xff03, 0xfe0b,
+ 0xfd0f, 0xfbf6, 0xfad9, 0xfa17, 0xf9e6, 0xfa52,
+ 0xfb4d, 0xfcbf, 0xfe7d, 0x0008, 0x0108, 0x0199,
+ 0x01d7, 0x01b3, 0x0130, 0x008d, 0x002b, 0x0036,
+ 0x0096, 0x011a, 0x018b, 0x01af, 0x013f, 0x003d,
+ 0xff37, 0xfe93, 0xfe64, 0xfedd, 0xffeb, 0x00fd,
+ 0x01aa, 0x01ae, 0x011b, 0x0087, 0x0044, 0x0018,
+ 0xffea, 0xffb5, 0xff60, 0xff07, 0xfed7, 0xfee4,
+ 0xff14, 0xff14, 0xfebd, 0xfe50, 0xfe1b, 0xfe59,
+ 0xff1d, 0x001e, 0x010e, 0x01dd, 0x0292, 0x032d,
+ 0x03c2, 0x0459, 0x04d1, 0x04d0, 0x0450, 0x03f0,
+ 0x0409, 0x0468, 0x0522, 0x0640, 0x0729, 0x0762,
+ 0x06f3, 0x0626, 0x056b, 0x04e1, 0x0463, 0x03fc,
+ 0x03a2, 0x0357, 0x0372, 0x0406, 0x04c9, 0x0589,
+ 0x05fc, 0x05f2, 0x05bb, 0x059a, 0x0597, 0x05d1,
+ 0x0647, 0x06b6, 0x06e5, 0x06e6, 0x070a, 0x0758,
+ 0x0774, 0x0729, 0x0680, 0x05a4, 0x04fc, 0x04dc,
+ 0x053c, 0x0609, 0x0707, 0x07c3, 0x07f7, 0x079e,
+ 0x06dc, 0x060c, 0x057c, 0x0542, 0x054d, 0x0572,
+ 0x059d, 0x05c3, 0x05d4, 0x05d8, 0x05af, 0x052a,
+ 0x0498, 0x0446, 0x0432, 0x047b, 0x051c, 0x05bb,
+ 0x061e, 0x063b, 0x0634, 0x0642, 0x0661, 0x0678,
+ 0x069c, 0x06f6, 0x078b, 0x0801, 0x080a, 0x07cf,
+ 0x077c, 0x0734, 0x070e, 0x06d5, 0x0682, 0x0650,
+ 0x0628, 0x0616, 0x0628, 0x05ff, 0x05bc, 0x05f0,
+ 0x0681, 0x06f9, 0x0714, 0x06d4, 0x067d, 0x061c,
+ 0x059f, 0x052e, 0x04da, 0x04ac, 0x04ac, 0x0487,
+ 0x041d, 0x03b7, 0x034f, 0x02c9, 0x0269, 0x0278,
+ 0x030c, 0x03fe, 0x04ea, 0x058a, 0x05c7, 0x0586,
+ 0x04d4, 0x0410, 0x0394, 0x0377, 0x03d2, 0x0483,
+ 0x04f2, 0x04de, 0x048c, 0x041d, 0x03a0, 0x0338,
+ 0x02c7, 0x024c, 0x0208, 0x01ed, 0x01b2, 0x0136,
+ 0x0083, 0xffd2, 0xff65, 0xff21, 0xfeca, 0xfe84,
+ 0xfe73, 0xfe59, 0xfe03, 0xfd7c, 0xfcd6, 0xfc60,
+ 0xfc7c, 0xfd02, 0xfd70, 0xfd81, 0xfd3e, 0xfcbe,
+ 0xfc13, 0xfb55, 0xfac2, 0xfab3, 0xfb40, 0xfc10,
+ 0xfca5, 0xfca5, 0xfc07, 0xfb4b, 0xfae5, 0xfac2,
+ 0xfacb, 0xfaff, 0xfb1a, 0xfad6, 0xfa3d, 0xf9ac,
+ 0xf975, 0xf952, 0xf8e1, 0xf83a, 0xf784, 0xf6dc,
+ 0xf692, 0xf6c8, 0xf74a, 0xf7d2, 0xf846, 0xf8ac,
+ 0xf8d7, 0xf897, 0xf842, 0xf85f, 0xf925, 0xfa4a,
+ 0xfb68, 0xfc9a, 0xfe1a, 0xffa7, 0x00b5, 0x00d9,
+ 0x0057, 0xfff2, 0xffe9, 0x0040, 0x00f6, 0x01a2,
+ 0x0241, 0x0331, 0x0440, 0x0547, 0x064e, 0x0719,
+ 0x07be, 0x0870, 0x0900, 0x0986, 0x0a36, 0x0ae7,
+ 0x0b66, 0x0ba2, 0x0baa, 0x0ba4, 0x0ba6, 0x0bda,
+ 0x0c3c, 0x0c90, 0x0cd6, 0x0d25, 0x0d68, 0x0db1,
+ 0x0e4b, 0x0f54, 0x1037, 0x1055, 0x100b, 0x0fdc,
+ 0x0fae, 0x0f69, 0x0f01, 0x0e7e, 0x0e3b, 0x0e40,
+ 0x0e4c, 0x0e63, 0x0e78, 0x0e88, 0x0ec6, 0x0f23,
+ 0x0f52, 0x0f33, 0x0ed3, 0x0e41, 0x0d77, 0x0c72,
+ 0x0b26, 0x099f, 0x0857, 0x0787, 0x06da, 0x064b,
+ 0x060f, 0x0622, 0x066f, 0x06b7, 0x06c2, 0x0699,
+ 0x0657, 0x063e, 0x065a, 0x0650, 0x0616, 0x05d5,
+ 0x0594, 0x0566, 0x051f, 0x04a3, 0x0416, 0x0340,
+ 0x0224, 0x013e, 0x009a, 0x0027, 0x0008, 0x0014,
+ 0x0027, 0x003d, 0x005d, 0x00ad, 0x00f1, 0x00f9,
+ 0x00fa, 0x00cd, 0x0044, 0xffa4, 0xff0e, 0xfe98,
+ 0xfe44, 0xfdda, 0xfd7e, 0xfd57, 0xfd2f, 0xfd19,
+ 0xfd0a, 0xfc9d, 0xfbda, 0xfb2d, 0xfade, 0xfb00,
+ 0xfb4a, 0xfb66, 0xfb58, 0xfb28, 0xfaad, 0xf9f0,
+ 0xf939, 0xf8c3, 0xf8c1, 0xf93d, 0xf9ed, 0xfaaa,
+ 0xfb86, 0xfc33, 0xfc65, 0xfc3e, 0xfbe2, 0xfb6f,
+ 0xfb1a, 0xfaf5, 0xfae3, 0xfaaf, 0xfa45, 0xf9cb,
+ 0xf940, 0xf8c4, 0xf8af, 0xf902, 0xf971, 0xf9e0,
+ 0xfa5f, 0xfade, 0xfb1e, 0xfb2f, 0xfb43, 0xfb33,
+ 0xfb1a, 0xfb38, 0xfb72, 0xfbf7, 0xfcd0, 0xfd69,
+ 0xfdb8, 0xfdff, 0xfe35, 0xfe8c, 0xfeea, 0xff22,
+ 0xff93, 0x0012, 0x003c, 0x0068, 0x00b9, 0x0106,
+ 0x0162, 0x01b1, 0x01ec, 0x0225, 0x0232, 0x0225,
+ 0x020e, 0x01d9, 0x01a4, 0x0149, 0x00ad, 0x0024,
+ 0xffc9, 0xff9c, 0xff90, 0xff57, 0xff12, 0xff0c,
+ 0xff2a, 0xff59, 0xff65, 0xff28, 0xfedd, 0xfe72,
+ 0xfdc9, 0xfd27, 0xfc7e, 0xfbb0, 0xfaf0, 0xfa45,
+ 0xf9c8, 0xf9a4, 0xf9d8, 0xfa77, 0xfb57, 0xfc00,
+ 0xfc47, 0xfc39, 0xfbc2, 0xfaed, 0xfa20, 0xf9bd,
+ 0xf9b9, 0xfa06, 0xfa8e, 0xfae2, 0xfb0d, 0xfb84,
+ 0xfc40, 0xfd1f, 0xfdf3, 0xfe40, 0xfe21, 0xfe02,
+ 0xfdb5, 0xfd33, 0xfcce, 0xfcb9, 0xfd15, 0xfdc0,
+ 0xfe42, 0xfe48, 0xfddf, 0xfd46, 0xfc9a, 0xfc03,
+ 0xfbd2, 0xfbf6, 0xfc41, 0xfcb6, 0xfd17, 0xfd7e,
+ 0xfe5d, 0xff80, 0x009d, 0x01a9, 0x0236, 0x022b,
+ 0x01cc, 0x0124, 0x0056, 0xff82, 0xfea4, 0xfdf2,
+ 0xfd78, 0xfd50, 0xfdc6, 0xfe97, 0xff62, 0x0012,
+ 0x0065, 0x003b, 0xffd2, 0xff6c, 0xff39, 0xff0e,
+ 0xfeb6, 0xfe74, 0xfe56, 0xfe55, 0xfed4, 0xffc2,
+ 0x0085, 0x00e7, 0x00e4, 0x007d, 0xffe6, 0xff6e,
+ 0xff5b, 0xffa1, 0x0002, 0x004c, 0x0053, 0x0040,
+ 0x0060, 0x007c, 0x0056, 0x0018, 0xfff4, 0xffe4,
+ 0xffcb, 0xffab, 0xff9b, 0xff73, 0xff22, 0xfec0,
+ 0xfe5b, 0xfe47, 0xfe9f, 0xfee0, 0xfed9, 0xfe9c,
+ 0xfe03, 0xfd5c, 0xfcff, 0xfcb8, 0xfc8a, 0xfc77,
+ 0xfc4c, 0xfc4b, 0xfc7e, 0xfc70, 0xfc24, 0xfbc4,
+ 0xfb60, 0xfb41, 0xfb6a, 0xfb9c, 0xfbd5, 0xfc0f,
+ 0xfc2f, 0xfc4c, 0xfc78, 0xfc98, 0xfc9c, 0xfc9b,
+ 0xfc9e, 0xfc92, 0xfca1, 0xfd14, 0xfe00, 0xff3b,
+ 0x0042, 0x00ae, 0x00ad, 0x005f, 0xffd5, 0xff88,
+ 0xff98, 0xffb0, 0xffd9, 0x0015, 0x001e, 0xffd0,
+ 0xff38, 0xfe74, 0xfd95, 0xfc9a, 0xfbbc, 0xfb3b,
+ 0xfb23, 0xfb72, 0xfbf5, 0xfc7f, 0xfd1e, 0xfdbf,
+ 0xfe57, 0xfefc, 0xff75, 0xff96, 0xff7f, 0xff29,
+ 0xfea8, 0xfe15, 0xfd68, 0xfcfb, 0xfd23, 0xfd8a,
+ 0xfdea, 0xfe43, 0xfe7d, 0xfea6, 0xfebb, 0xfe94,
+ 0xfe76, 0xfe9b, 0xfee0, 0xff48, 0xffcf, 0x003f,
+ 0x00bd, 0x0154, 0x01be, 0x01f9, 0x01f4, 0x015b,
+ 0x0073, 0xffcb, 0xff52, 0xfeea, 0xfec9, 0xfefe,
+ 0xff83, 0x005c, 0x0174, 0x02bc, 0x03f6, 0x04a4,
+ 0x04af, 0x047f, 0x0456, 0x0444, 0x0459, 0x048e,
+ 0x04db, 0x0528, 0x054c, 0x0572, 0x05ec, 0x0680,
+ 0x06bb, 0x06b5, 0x06a6, 0x066d, 0x05fc, 0x057b,
+ 0x0506, 0x0487, 0x03e4, 0x0362, 0x036e, 0x03cc,
+ 0x0403, 0x040e, 0x03d4, 0x0305, 0x01bc, 0x0063,
+ 0xff41, 0xfe7a, 0xfe3d, 0xfebd, 0xffda, 0x00fb,
+ 0x01ad, 0x01fa, 0x01f4, 0x01b1, 0x016d, 0x012c,
+ 0x00d5, 0x0086, 0x004c, 0x0040, 0x00a4, 0x0148,
+ 0x01cb, 0x0249, 0x02b3, 0x02c3, 0x0287, 0x020b,
+ 0x0157, 0x00dc, 0x00d3, 0x0106, 0x0132, 0x010b,
+ 0x007d, 0xffb1, 0xfec1, 0xfde1, 0xfd64, 0xfd68,
+ 0xfdcc, 0xfe40, 0xfead, 0xff64, 0x0046, 0x00bf,
+ 0x00b6, 0x0071, 0x0010, 0xffcf, 0xffee, 0x0046,
+ 0x00a6, 0x0112, 0x0177, 0x01cc, 0x023e, 0x02bd,
+ 0x0312, 0x0364, 0x03d2, 0x042c, 0x047e, 0x04e2,
+ 0x053b, 0x05a5, 0x064e, 0x0707, 0x079e, 0x0811,
+ 0x086d, 0x08d8, 0x0962, 0x09cd, 0x09ef, 0x09f3,
+ 0x09d5, 0x0962, 0x08bf, 0x0837, 0x07d7, 0x07a3,
+ 0x0796, 0x078c, 0x078a, 0x07b6, 0x080a, 0x0868,
+ 0x08ae, 0x08c8, 0x08c1, 0x08aa, 0x088f, 0x0876,
+ 0x0865, 0x0851, 0x0831, 0x0834, 0x0898, 0x093b,
+ 0x09b6, 0x09bd, 0x095a, 0x08e0, 0x0880, 0x0844,
+ 0x0838, 0x0836, 0x0822, 0x0805, 0x07b1, 0x074b,
+ 0x073f, 0x073b, 0x06e8, 0x0698, 0x0664, 0x063b,
+ 0x063a, 0x065f, 0x06b0, 0x0723, 0x0771, 0x0787,
+ 0x0767, 0x0715, 0x06d0, 0x0693, 0x0629, 0x05ce,
+ 0x05cd, 0x0636, 0x06f8, 0x07ba, 0x081c, 0x0812,
+ 0x07d0, 0x079c, 0x0771, 0x0712, 0x068a, 0x060e,
+ 0x05c1, 0x05ba, 0x05df, 0x0603, 0x0618, 0x0618,
+ 0x0628, 0x066f, 0x06be, 0x06e7, 0x06f6, 0x06ce,
+ 0x0645, 0x058c, 0x04f4, 0x0493, 0x0469, 0x047c,
+ 0x04ab, 0x04e1, 0x0517, 0x050f, 0x04ad, 0x042a,
+ 0x03c0, 0x03a7, 0x03ec, 0x0443, 0x046d, 0x0465,
+ 0x0454, 0x047d, 0x04bc, 0x04c0, 0x04d7, 0x0539,
+ 0x0590, 0x05ba, 0x05ab, 0x053f, 0x04c1, 0x0478,
+ 0x042d, 0x03d5, 0x0392, 0x0343, 0x02b9, 0x020b,
+ 0x0169, 0x00dd, 0x0068, 0x002e, 0x0023, 0x001b,
+ 0x002b, 0x005b, 0x0088, 0x00c3, 0x010f, 0x0150,
+ 0x0183, 0x017d, 0x0122, 0x00cd, 0x009e, 0x0067,
+ 0x003e, 0x001c, 0xffc7, 0xff6a, 0xff54, 0xff8f,
+ 0x0013, 0x00c2, 0x013b, 0x0135, 0x00b9, 0xffd0,
+ 0xfe72, 0xfcfc, 0xfbf0, 0xfb3f, 0xfa9c, 0xfa0f,
+ 0xf995, 0xf926, 0xf8f1, 0xf909, 0xf952, 0xf9a6,
+ 0xf9db, 0xf9f3, 0xf9f8, 0xf9b7, 0xf90d, 0xf824,
+ 0xf73f, 0xf693, 0xf623, 0xf5ee, 0xf616, 0xf68a,
+ 0xf71c, 0xf7a7, 0xf815, 0xf888, 0xf8fb, 0xf924,
+ 0xf93c, 0xf99a, 0xf9f7, 0xfa34, 0xfa90, 0xfb03,
+ 0xfb74, 0xfbe1, 0xfc3a, 0xfc87, 0xfcce, 0xfd1a,
+ 0xfd87, 0xfe06, 0xfe96, 0xff5e, 0x0074, 0x01f1,
+ 0x03b8, 0x056d, 0x06d0, 0x07be, 0x0840, 0x089d,
+ 0x08d6, 0x08da, 0x08d8, 0x08bf, 0x08a0, 0x08f3,
+ 0x09a6, 0x0a47, 0x0ac1, 0x0b18, 0x0b80, 0x0c50,
+ 0x0d45, 0x0dd5, 0x0df7, 0x0df0, 0x0de1, 0x0dc7,
+ 0x0da6, 0x0d9a, 0x0dc8, 0x0e48, 0x0ee1, 0x0f1e,
+ 0x0ef8, 0x0e9d, 0x0df2, 0x0cf5, 0x0be6, 0x0af8,
+ 0x0a4e, 0x09e2, 0x098f, 0x095a, 0x0947, 0x093c,
+ 0x0956, 0x09a5, 0x09e2, 0x09e3, 0x09d3, 0x09c1,
+ 0x0993, 0x094c, 0x08db, 0x0820, 0x0757, 0x06ce,
+ 0x068b, 0x0696, 0x06e1, 0x0722, 0x072c, 0x06fc,
+ 0x06a5, 0x066e, 0x0679, 0x0694, 0x0697, 0x0663,
+ 0x05de, 0x052d, 0x047e, 0x03cd, 0x0330, 0x030e,
+ 0x039d, 0x0477, 0x052a, 0x05af, 0x05f0, 0x05c4,
+ 0x0549, 0x0494, 0x038f, 0x025a, 0x013e, 0x0062,
+ 0xffe7, 0xffcf, 0xffe6, 0xffdc, 0xff98, 0xff41,
+ 0xff01, 0xff05, 0xff34, 0xff0e, 0xfe69, 0xfd9e,
+ 0xfcd6, 0xfc2e, 0xfbd6, 0xfba7, 0xfb89, 0xfbb6,
+ 0xfc08, 0xfc12, 0xfbb1, 0xfaf7, 0xfa26, 0xf998,
+ 0xf964, 0xf989, 0xfa2c, 0xfb48, 0xfc93, 0xfda6,
+ 0xfe1e, 0xfe09, 0xfddb, 0xfd96, 0xfd19, 0xfcbe,
+ 0xfc97, 0xfc4c, 0xfc0c, 0xfc25, 0xfc7e, 0xfd06,
+ 0xfd8c, 0xfdcc, 0xfdf5, 0xfe2b, 0xfe39, 0xfdf0,
+ 0xfd36, 0xfc33, 0xfb62, 0xfad4, 0xfa5b, 0xfa1b,
+ 0xfa29, 0xfa75, 0xfb12, 0xfbd5, 0xfc4c, 0xfc63,
+ 0xfc60, 0xfc61, 0xfc5a, 0xfc54, 0xfc72, 0xfccb,
+ 0xfd36, 0xfd86, 0xfdc2, 0xfde2, 0xfde2, 0xfe07,
+ 0xfe66, 0xfeca, 0xff2a, 0xff5e, 0xff24, 0xfeb0,
+ 0xfe63, 0xfe6d, 0xfed4, 0xff52, 0xffbb, 0x0022,
+ 0x003d, 0xffea, 0xff87, 0xff2e, 0xfed8, 0xfebd,
+ 0xfec7, 0xfec5, 0xfec0, 0xfec9, 0xfef8, 0xff4d,
+ 0xff7f, 0xff62, 0xff10, 0xfec8, 0xfec1, 0xfed5,
+ 0xfea4, 0xfe37, 0xfdf8, 0xfe06, 0xfe11, 0xfdee,
+ 0xfdb2, 0xfd5e, 0xfd08, 0xfcc7, 0xfc80, 0xfc31,
+ 0xfbe5, 0xfb6d, 0xfac8, 0xfa39, 0xf9ea, 0xf9db,
+ 0xf9f0, 0xfa32, 0xfaa2, 0xfaed, 0xfb12, 0xfb22,
+ 0xfab5, 0xf9de, 0xf928, 0xf899, 0xf840, 0xf844,
+ 0xf85f, 0xf875, 0xf8b7, 0xf921, 0xf991, 0xf9d8,
+ 0xf9ee, 0xf9f9, 0xf9fc, 0xfa0f, 0xfa4c, 0xfa99,
+ 0xfb35, 0xfc38, 0xfd2b, 0xfdd6, 0xfe22, 0xfde6,
+ 0xfd70, 0xfcf4, 0xfc94, 0xfcc8, 0xfd5f, 0xfdaf,
+ 0xfdd0, 0xfe09, 0xfe3e, 0xfe46, 0xfe02, 0xfd9d,
+ 0xfd41, 0xfcee, 0xfcd3, 0xfce0, 0xfcc8, 0xfcb3,
+ 0xfcc4, 0xfce3, 0xfd13, 0xfd30, 0xfd42, 0xfd74,
+ 0xfd7e, 0xfd54, 0xfd41, 0xfd35, 0xfd51, 0xfda3,
+ 0xfdb2, 0xfd86, 0xfd78, 0xfd75, 0xfd7f, 0xfd84,
+ 0xfd5a, 0xfd3f, 0xfd3f, 0xfd56, 0xfddb, 0xfeb2,
+ 0xff75, 0x001c, 0x0077, 0x0068, 0x0050, 0x0054,
+ 0x0047, 0x0010, 0xffb6, 0xff5b, 0xff23, 0xff02,
+ 0xfee5, 0xfecd, 0xfeed, 0xff57, 0xffc3, 0x000b,
+ 0x0038, 0x0032, 0xfff4, 0xff88, 0xff01, 0xfe97,
+ 0xfe5f, 0xfe52, 0xfe73, 0xfe9a, 0xfea5, 0xfea5,
+ 0xfe6b, 0xfdcb, 0xfcfa, 0xfc3a, 0xfba6, 0xfb46,
+ 0xfb27, 0xfb75, 0xfc27, 0xfcec, 0xfd84, 0xfdb8,
+ 0xfd75, 0xfd17, 0xfcd2, 0xfc76, 0xfbfa, 0xfb7d,
+ 0xfb0e, 0xfada, 0xfad7, 0xfac0, 0xfaae, 0xfadf,
+ 0xfb36, 0xfb8d, 0xfbd3, 0xfbe6, 0xfbc7, 0xfba0,
+ 0xfb9e, 0xfbf5, 0xfcad, 0xfd9f, 0xfec6, 0xfffc,
+ 0x00e2, 0x0156, 0x0175, 0x018d, 0x01d2, 0x0219,
+ 0x025c, 0x02d2, 0x034c, 0x0386, 0x037a, 0x0321,
+ 0x02a4, 0x0225, 0x0193, 0x0132, 0x0129, 0x0120,
+ 0x0110, 0x0114, 0x0111, 0x012b, 0x0168, 0x0184,
+ 0x017f, 0x014f, 0x00ff, 0x00fc, 0x0156, 0x01d6,
+ 0x0273, 0x02fc, 0x0336, 0x0328, 0x02eb, 0x02db,
+ 0x0331, 0x03a6, 0x0420, 0x04b1, 0x052f, 0x05a2,
+ 0x0617, 0x0654, 0x0645, 0x05f0, 0x0553, 0x04a7,
+ 0x0416, 0x038c, 0x030f, 0x02d6, 0x0305, 0x0380,
+ 0x040d, 0x0485, 0x04b5, 0x047b, 0x040d, 0x03b1,
+ 0x0380, 0x0359, 0x02fe, 0x0262, 0x01ce, 0x018a,
+ 0x01b0, 0x020e, 0x024a, 0x024c, 0x022e, 0x01fe,
+ 0x01d3, 0x01c7, 0x01f5, 0x0269, 0x02f8, 0x0359,
+ 0x0365, 0x0326, 0x02c9, 0x024c, 0x017e, 0x0080,
+ 0xffbc, 0xff71, 0xffcc, 0x00b4, 0x01ae, 0x024e,
+ 0x0266, 0x01e9, 0x010c, 0x0010, 0xff1e, 0xfe65,
+ 0xfe03, 0xfdfd, 0xfe54, 0xfeba, 0xfec7, 0xfe89,
+ 0xfe2e, 0xfdc5, 0xfd79, 0xfd5b, 0xfd55, 0xfd8a,
+ 0xfe26, 0xff0b, 0x0007, 0x00e9, 0x0182, 0x01e1,
+ 0x0248, 0x02c6, 0x0320, 0x031c, 0x02e5, 0x02b5,
+ 0x0282, 0x025d, 0x0271, 0x02b7, 0x034e, 0x042a,
+ 0x04be, 0x04df, 0x04f6, 0x0524, 0x0575, 0x0600,
+ 0x069d, 0x073d, 0x07dc, 0x0840, 0x0875, 0x089f,
+ 0x0888, 0x082f, 0x07b1, 0x0706, 0x0689, 0x068e,
+ 0x06d9, 0x0735, 0x0766, 0x0725, 0x06b6, 0x065d,
+ 0x05f7, 0x05af, 0x05b1, 0x05b5, 0x05a8, 0x05c1,
+ 0x060a, 0x067f, 0x06f7, 0x072d, 0x072c, 0x072f,
+ 0x0757, 0x07be, 0x0858, 0x08f2, 0x095b, 0x0962,
+ 0x0905, 0x089b, 0x0862, 0x0851, 0x0848, 0x080e,
+ 0x0777, 0x06ca, 0x0661, 0x062b, 0x0604, 0x0604,
+ 0x0619, 0x060b, 0x060b, 0x0663, 0x06e4, 0x0746,
+ 0x07a0, 0x0805, 0x0856, 0x0885, 0x088f, 0x0870,
+ 0x084b, 0x0839, 0x0821, 0x0809, 0x07f3, 0x07ba,
+ 0x0776, 0x0763, 0x0778, 0x079c, 0x07d1, 0x0804,
+ 0x0806, 0x07b7, 0x072e, 0x06ba, 0x067b, 0x0641,
+ 0x05ee, 0x059a, 0x0546, 0x04c8, 0x0416, 0x0371,
+ 0x030a, 0x02dd, 0x02dc, 0x02ff, 0x033b, 0x038e,
+ 0x03db, 0x03fd, 0x03fd, 0x03e2, 0x0396, 0x0324,
+ 0x02c2, 0x029f, 0x02d8, 0x035e, 0x040b, 0x04c5,
+ 0x054b, 0x055d, 0x052c, 0x04ff, 0x04ce, 0x0487,
+ 0x0435, 0x03db, 0x0381, 0x0349, 0x0357, 0x03a0,
+ 0x03e9, 0x040e, 0x041a, 0x0413, 0x0408, 0x0400,
+ 0x03cf, 0x0359, 0x02c8, 0x0241, 0x01e2, 0x01c4,
+ 0x01d1, 0x01d3, 0x019c, 0x0123, 0x00a9, 0x0065,
+ 0x0063, 0x009b, 0x00ee, 0x013d, 0x0144, 0x00c2,
+ 0xfffa, 0xff40, 0xfe91, 0xfe2d, 0xfe57, 0xfeda,
+ 0xff9c, 0x0066, 0x00e4, 0x013e, 0x0172, 0x012a,
+ 0x009c, 0xfff5, 0xff0c, 0xfe21, 0xfd62, 0xfcc3,
+ 0xfc5d, 0xfc0d, 0xfbbd, 0xfb91, 0xfb5a, 0xfb08,
+ 0xfad5, 0xfaa1, 0xfa86, 0xfac7, 0xfb18, 0xfb45,
+ 0xfb6b, 0xfb45, 0xfaa0, 0xf9ab, 0xf8a0, 0xf7d3,
+ 0xf772, 0xf75f, 0xf78c, 0xf7e7, 0xf850, 0xf8dd,
+ 0xf996, 0xfa36, 0xfa8c, 0xfaae, 0xfac0, 0xfad8,
+ 0xfb18, 0xfba7, 0xfc7c, 0xfd82, 0xfea1, 0xff6e,
+ 0xffa5, 0xff8e, 0xff7c, 0xff8b, 0xffce, 0x0040,
+ 0x00f2, 0x01ef, 0x02f0, 0x03bd, 0x0471, 0x0515,
+ 0x05ac, 0x064f, 0x06ed, 0x0763, 0x07a7, 0x07ca,
+ 0x080d, 0x089c, 0x0945, 0x09ca, 0x0a21, 0x0a5d,
+ 0x0a8b, 0x0a96, 0x0a6a, 0x0a1b, 0x09c4, 0x097a,
+ 0x0962, 0x099f, 0x0a1b, 0x0a8a, 0x0ab9, 0x0aac,
+ 0x0a65, 0x09de, 0x0922, 0x085a, 0x07e1, 0x07ef,
+ 0x084d, 0x0897, 0x08a2, 0x087f, 0x085c, 0x083a,
+ 0x0818, 0x080e, 0x07fd, 0x07c0, 0x078f, 0x0782,
+ 0x077c, 0x0791, 0x07b6, 0x07b4, 0x07aa, 0x07d7,
+ 0x0827, 0x087e, 0x08e9, 0x0940, 0x094c, 0x092d,
+ 0x0903, 0x08c8, 0x08b2, 0x08e5, 0x090e, 0x08fa,
+ 0x08d1, 0x08b5, 0x0894, 0x083c, 0x0796, 0x06bf,
+ 0x05d2, 0x0508, 0x0493, 0x0455, 0x0444, 0x044e,
+ 0x0425, 0x03d9, 0x0399, 0x0338, 0x02cb, 0x0274,
+ 0x0209, 0x019c, 0x0141, 0x00ce, 0x004a, 0xffb9,
+ 0xff11, 0xfeac, 0xfea8, 0xfeb3, 0xfe98, 0xfe2a,
+ 0xfd80, 0xfd0c, 0xfceb, 0xfd00, 0xfd60, 0xfdd3,
+ 0xfe01, 0xfe01, 0xfdd5, 0xfd60, 0xfce8, 0xfcb6,
+ 0xfcbc, 0xfcfc, 0xfd78, 0xfdea, 0xfe27, 0xfe47,
+ 0xfe4f, 0xfe41, 0xfe33, 0xfe34, 0xfe32, 0xfdfb,
+ 0xfd79, 0xfcf0, 0xfcac, 0xfca0, 0xfc8d, 0xfc65,
+ 0xfc59, 0xfc70, 0xfc7f, 0xfc81, 0xfc8c, 0xfca5,
+ 0xfcdf, 0xfd36, 0xfd8b, 0xfdbb, 0xfda8, 0xfd5c,
+ 0xfce8, 0xfc3a, 0xfb8d, 0xfb3b, 0xfb16, 0xfae4,
+ 0xfad7, 0xfb0e, 0xfb8e, 0xfc36, 0xfca8, 0xfcd1,
+ 0xfcd2, 0xfc9c, 0xfc50, 0xfc2d, 0xfc3b, 0xfc77,
+ 0xfcd0, 0xfd19, 0xfd56, 0xfd8f, 0xfdca, 0xfe37,
+ 0xfebd, 0xff0e, 0xff2d, 0xff40, 0xff50, 0xff63,
+ 0xff67, 0xff60, 0xff6c, 0xff7b, 0xff6f, 0xff4e,
+ 0xff1a, 0xfef2, 0xfefd, 0xff2f, 0xff80, 0xffe7,
+ 0x0033, 0x003e, 0xffeb, 0xff45, 0xfe84, 0xfdcd,
+ 0xfd45, 0xfd13, 0xfd13, 0xfd2a, 0xfd70, 0xfdbc,
+ 0xfdca, 0xfd8a, 0xfd0b, 0xfc95, 0xfc6f, 0xfc6f,
+ 0xfc3f, 0xfbdd, 0xfb73, 0xfb11, 0xfaac, 0xfa54,
+ 0xfa2b, 0xfa48, 0xfab4, 0xfb40, 0xfbab, 0xfbe0,
+ 0xfbde, 0xfbae, 0xfb74, 0xfb47, 0xfb3d, 0xfb5b,
+ 0xfb7f, 0xfbac, 0xfbe6, 0xfc16, 0xfc4b, 0xfc93,
+ 0xfcf2, 0xfd55, 0xfd7f, 0xfd95, 0xfdec, 0xfe4d,
+ 0xfe9f, 0xfefe, 0xff16, 0xfef3, 0xfefb, 0xff14,
+ 0xff19, 0xfefa, 0xfe8d, 0xfdf2, 0xfd34, 0xfc4c,
+ 0xfbb2, 0xfb95, 0xfbc8, 0xfc55, 0xfce4, 0xfd03,
+ 0xfcd7, 0xfc8d, 0xfc3e, 0xfbee, 0xfb6f, 0xfafc,
+ 0xfae4, 0xfaf4, 0xfb08, 0xfb11, 0xfae9, 0xfa8e,
+ 0xfa04, 0xf96b, 0xf8f3, 0xf899, 0xf881, 0xf8c7,
+ 0xf91f, 0xf98f, 0xfa3f, 0xfae0, 0xfb65, 0xfbea,
+ 0xfc21, 0xfbfd, 0xfbbe, 0xfb66, 0xfaff, 0xfac5,
+ 0xfad7, 0xfb30, 0xfbb7, 0xfc43, 0xfca2, 0xfccc,
+ 0xfce9, 0xfcf0, 0xfcca, 0xfcb3, 0xfcc4, 0xfcd2,
+ 0xfced, 0xfd26, 0xfd5e, 0xfda9, 0xfe03, 0xfe15,
+ 0xfdc7, 0xfd57, 0xfce4, 0xfc7d, 0xfc4a, 0xfc5d,
+ 0xfcb7, 0xfd39, 0xfd9e, 0xfdd2, 0xfde2, 0xfdd0,
+ 0xfdc7, 0xfde5, 0xfded, 0xfdb3, 0xfd33, 0xfc6e,
+ 0xfba9, 0xfb16, 0xfa9b, 0xfa50, 0xfa5c, 0xfaa0,
+ 0xfb0c, 0xfba9, 0xfc6c, 0xfd25, 0xfd9d, 0xfdd0,
+ 0xfdd0, 0xfdb1, 0xfda8, 0xfdb3, 0xfd9e, 0xfd8d,
+ 0xfdaa, 0xfdeb, 0xfe62, 0xff13, 0xffd7, 0x0096,
+ 0x0131, 0x018d, 0x01b2, 0x01af, 0x019f, 0x019f,
+ 0x01bf, 0x020b, 0x0280, 0x0309, 0x03a8, 0x043f,
+ 0x0489, 0x044b, 0x0394, 0x02bb, 0x0209, 0x019c,
+ 0x016c, 0x0142, 0x0105, 0x00e4, 0x00f0, 0x011e,
+ 0x0171, 0x01b2, 0x0199, 0x013a, 0x00d9, 0x008e,
+ 0x004c, 0x0015, 0x000b, 0x002a, 0x0063, 0x00b7,
+ 0x0102, 0x0103, 0x00a9, 0x002d, 0xffeb, 0xfff3,
+ 0x0008, 0x001a, 0x003b, 0x0054, 0x005f, 0x0084,
+ 0x00d6, 0x0136, 0x0186, 0x01c8, 0x0202, 0x0221,
+ 0x021c, 0x01ff, 0x01c6, 0x016f, 0x011f, 0x0104,
+ 0x0118, 0x0147, 0x018f, 0x01db, 0x021b, 0x0264,
+ 0x02a0, 0x0296, 0x0249, 0x01ce, 0x0139, 0x00b5,
+ 0x004a, 0xffe1, 0xff80, 0xff31, 0xff1a, 0xff71,
+ 0x0000, 0x0079, 0x00dd, 0x0119, 0x0119, 0x00e1,
+ 0x0057, 0xff9d, 0xfef5, 0xfe4c, 0xfdc4, 0xfdd5,
+ 0xfe76, 0xff4c, 0x0010, 0x0072, 0x0074, 0x0063,
+ 0x0042, 0x0013, 0x000b, 0x004a, 0x00e2, 0x0199,
+ 0x0215, 0x0264, 0x0297, 0x02a2, 0x02d3, 0x0358,
+ 0x03f2, 0x0488, 0x0517, 0x0580, 0x05c1, 0x05f8,
+ 0x062c, 0x0639, 0x0610, 0x05eb, 0x0608, 0x0687,
+ 0x0759, 0x0823, 0x08a2, 0x08d5, 0x08af, 0x085d,
+ 0x0818, 0x07bf, 0x0762, 0x0722, 0x06de, 0x06c3,
+ 0x0709, 0x076e, 0x07b4, 0x079b, 0x06e9, 0x05f2,
+ 0x0520, 0x048f, 0x0460, 0x0490, 0x04ed, 0x054b,
+ 0x056e, 0x0542, 0x04eb, 0x047a, 0x0407, 0x03ac,
+ 0x0357, 0x0315, 0x0323, 0x039a, 0x0463, 0x053a,
+ 0x05c7, 0x05ea, 0x05c6, 0x058b, 0x0565, 0x0550,
+ 0x0521, 0x04fe, 0x0558, 0x062f, 0x0713, 0x07a7,
+ 0x07ab, 0x072e, 0x06ae, 0x067d, 0x0692, 0x06d3,
+ 0x0717, 0x0738, 0x073e, 0x0736, 0x0724, 0x0704,
+ 0x06d0, 0x069b, 0x0673, 0x063d, 0x05f7, 0x05e4,
+ 0x063b, 0x06d6, 0x076c, 0x07b6, 0x0773, 0x06d9,
+ 0x0667, 0x0615, 0x05d0, 0x05c5, 0x05c0, 0x05ae,
+ 0x05c2, 0x05b0, 0x055d, 0x0524, 0x04f4, 0x0497,
+ 0x0431, 0x03eb, 0x03dc, 0x03f9, 0x0420, 0x0443,
+ 0x0438, 0x040f, 0x041e, 0x045c, 0x04a2, 0x04d3,
+ 0x04a1, 0x0423, 0x03a7, 0x032f, 0x02d7, 0x02a0,
+ 0x0245, 0x01ee, 0x01ce, 0x01cf, 0x01fd, 0x0257,
+ 0x02bc, 0x032e, 0x039a, 0x03e2, 0x03f3, 0x03b8,
+ 0x035b, 0x030e, 0x02cd, 0x02a9, 0x02a3, 0x02a7,
+ 0x02c9, 0x0302, 0x0317, 0x02e0, 0x0264, 0x01e3,
+ 0x019a, 0x018c, 0x01a7, 0x01b9, 0x018d, 0x014f,
+ 0x0132, 0x0122, 0x0114, 0x011f, 0x011d, 0x00ca,
+ 0x0032, 0xff90, 0xff05, 0xfed0, 0xff0c, 0xff7a,
+ 0x000a, 0x00be, 0x0138, 0x016e, 0x0195, 0x0191,
+ 0x015d, 0x0126, 0x010d, 0x013e, 0x01a8, 0x01f9,
+ 0x01f9, 0x0179, 0x008b, 0xff7c, 0xfe59, 0xfd51,
+ 0xfcb7, 0xfc91, 0xfcce, 0xfd34, 0xfd6c, 0xfd84,
+ 0xfd8a, 0xfd60, 0xfd3e, 0xfd3a, 0xfd2f, 0xfd44,
+ 0xfd8c, 0xfdd9, 0xfdfc, 0xfdb3, 0xfd08, 0xfc54,
+ 0xfba7, 0xfb03, 0xfa91, 0xfa5a, 0xfa49, 0xfa57,
+ 0xfa83, 0xfadc, 0xfb5b, 0xfbe4, 0xfc44, 0xfc42,
+ 0xfbed, 0xfb80, 0xfb22, 0xfb00, 0xfb28, 0xfb70,
+ 0xfbed, 0xfcbc, 0xfd93, 0xfe34, 0xfea5, 0xfee9,
+ 0xff02, 0xfefb, 0xfedd, 0xfed0, 0xff0c, 0xff9c,
+ 0x0040, 0x00a6, 0x00c2, 0x00bc, 0x00b1, 0x00be,
+ 0x0109, 0x0178, 0x01da, 0x023c, 0x02b7, 0x0351,
+ 0x040d, 0x04c6, 0x0538, 0x054d, 0x050e, 0x04aa,
+ 0x0481, 0x04a8, 0x04e9, 0x0545, 0x05b2, 0x05eb,
+ 0x0601, 0x0628, 0x0641, 0x064a, 0x0670, 0x069e,
+ 0x06b5, 0x06c7, 0x06e7, 0x0737, 0x07a7, 0x07ea,
+ 0x0809, 0x0819, 0x07eb, 0x07a6, 0x0781, 0x0758,
+ 0x072c, 0x0716, 0x0704, 0x0711, 0x0730, 0x0728,
+ 0x0712, 0x0706, 0x06fa, 0x070d, 0x0720, 0x06fd,
+ 0x06bb, 0x0658, 0x05d8, 0x057f, 0x055b, 0x0566,
+ 0x059d, 0x05c3, 0x05d2, 0x05f6, 0x0635, 0x0695,
+ 0x06dc, 0x06b5, 0x0647, 0x05c6, 0x0543, 0x0511,
+ 0x0549, 0x0587, 0x0582, 0x053e, 0x04fe, 0x04f2,
+ 0x04f1, 0x04d4, 0x04a4, 0x0465, 0x044d, 0x0489,
+ 0x04e2, 0x0529, 0x0555, 0x0568, 0x0583, 0x05a1,
+ 0x0594, 0x055c, 0x04f1, 0x045d, 0x03e6, 0x03b2,
+ 0x03aa, 0x03ae, 0x03a5, 0x03a8, 0x03cb, 0x03e0,
+ 0x03d2, 0x03ab, 0x0347, 0x02b7, 0x025f, 0x0266,
+ 0x02a0, 0x02b8, 0x0253, 0x018a, 0x00af, 0xffda,
+ 0xff33, 0xfed1, 0xfe7f, 0xfe63, 0xfed4, 0xffa7,
+ 0x0073, 0x00df, 0x00a8, 0x0000, 0xff55, 0xfedc,
+ 0xfeb8, 0xfeef, 0xff4a, 0xff9a, 0xffce, 0xfff3,
+ 0x0018, 0x001b, 0xffd2, 0xff50, 0xfec4, 0xfe51,
+ 0xfe16, 0xfe34, 0xfebe, 0xff81, 0x0042, 0x00f4,
+ 0x0172, 0x0198, 0x017b, 0x012c, 0x00d3, 0x00b5,
+ 0x00d3, 0x0108, 0x0140, 0x0157, 0x014c, 0x013d,
+ 0x0113, 0x00c0, 0x0079, 0x0061, 0x0071, 0x00a4,
+ 0x00f8, 0x013d, 0x0136, 0x00f1, 0x0095, 0x001e,
+ 0xff9e, 0xff2a, 0xfec6, 0xfe9e, 0xfed2, 0xff3c,
+ 0xff9b, 0xffae, 0xff7b, 0xff63, 0xff93, 0x000a,
+ 0x00a5, 0x00eb, 0x00cf, 0x00dd, 0x0126, 0x015f,
+ 0x0169, 0x0126, 0x00ab, 0x003f, 0xfff5, 0xffe3,
+ 0x0000, 0x0003, 0x0003, 0x0018, 0x001a, 0x0032,
+ 0x0078, 0x00a9, 0x00c3, 0x00cb, 0x009d, 0x0055,
+ 0x000b, 0xffc4, 0xff90, 0xff54, 0xff09, 0xfeca,
+ 0xfe6d, 0xfdf7, 0xfdc5, 0xfdc7, 0xfdc3, 0xfdda,
+ 0xfe00, 0xfde7, 0xfd81, 0xfd0d, 0xfcbd, 0xfc7d,
+ 0xfc3d, 0xfc1f, 0xfc26, 0xfc34, 0xfc41, 0xfc44,
+ 0xfc41, 0xfc41, 0xfc22, 0xfbd7, 0xfbad, 0xfbca,
+ 0xfbff, 0xfc29, 0xfc44, 0xfc56, 0xfc86, 0xfcde,
+ 0xfd20, 0xfd31, 0xfd4d, 0xfd89, 0xfdae, 0xfd8e,
+ 0xfd2d, 0xfcb2, 0xfc48, 0xfc05, 0xfc0b, 0xfc84,
+ 0xfd52, 0xfe18, 0xfeb5, 0xff30, 0xff6e, 0xff5e,
+ 0xff09, 0xfe74, 0xfde2, 0xfdb2, 0xfdd9, 0xfe33,
+ 0xfea6, 0xfee5, 0xfed0, 0xfea4, 0xfe6e, 0xfe1e,
+ 0xfdc6, 0xfd61, 0xfd0a, 0xfcfa, 0xfd0b, 0xfd07,
+ 0xfd08, 0xfd0e, 0xfd0b, 0xfd2e, 0xfd77, 0xfda8,
+ 0xfd9c, 0xfd51, 0xfcf0, 0xfcc7, 0xfce2, 0xfd14,
+ 0xfd35, 0xfd2a, 0xfcf2, 0xfcac, 0xfc82, 0xfca0,
+ 0xfd07, 0xfd78, 0xfdbe, 0xfdb4, 0xfd4f, 0xfcb9,
+ 0xfc12, 0xfb6e, 0xfb17, 0xfb29, 0xfb73, 0xfbc4,
+ 0xfbf9, 0xfc0b, 0xfc23, 0xfc57, 0xfc9e, 0xfcf0,
+ 0xfd30, 0xfd37, 0xfce6, 0xfc5e, 0xfbfe, 0xfbdd,
+ 0xfbcc, 0xfbc4, 0xfbc6, 0xfbcb, 0xfbea, 0xfc1f,
+ 0xfc42, 0xfc31, 0xfbc6, 0xfb24, 0xfaa4, 0xfa66,
+ 0xfa56, 0xfa61, 0xfa79, 0xfaaa, 0xfaef, 0xfb28,
+ 0xfb59, 0xfb93, 0xfbbd, 0xfba0, 0xfb2c, 0xfab6,
+ 0xfa9a, 0xfadf, 0xfb6f, 0xfc3d, 0xfd19, 0xfde9,
+ 0xfe9b, 0xff03, 0xfef9, 0xfe76, 0xfdb1, 0xfd0d,
+ 0xfca7, 0xfc57, 0xfc08, 0xfbbc, 0xfb97, 0xfbd1,
+ 0xfc73, 0xfd4a, 0xfe0c, 0xfe85, 0xfed4, 0xff33,
+ 0xff9e, 0xffe8, 0xffeb, 0xffbc, 0xffa7, 0xffd7,
+ 0x0033, 0x0093, 0x00a8, 0x004c, 0xffd7, 0xff8f,
+ 0xff47, 0xfeed, 0xfe99, 0xfe38, 0xfe0a, 0xfe5a,
+ 0xfec9, 0xfef0, 0xfef9, 0xff12, 0xff58, 0xffca,
+ 0x0000, 0xffca, 0xff62, 0xfedb, 0xfe3c, 0xfdbe,
+ 0xfd7a, 0xfd6a, 0xfd6e, 0xfd50, 0xfd38, 0xfd5e,
+ 0xfd8d, 0xfdb0, 0xfde4, 0xfde7, 0xfdab, 0xfd8b,
+ 0xfd9f, 0xfdda, 0xfe4b, 0xfea2, 0xfe91, 0xfe53,
+ 0xfe21, 0xfe0e, 0xfe47, 0xfecf, 0xff66, 0xffc0,
+ 0xffc5, 0xffac, 0xffa4, 0xffbb, 0xffff, 0x0048,
+ 0x006d, 0x0088, 0x0099, 0x0098, 0x00bb, 0x00fa,
+ 0x011b, 0x0122, 0x010b, 0x00e4, 0x00d3, 0x00ca,
+ 0x00c3, 0x00c5, 0x00b1, 0x00af, 0x00ec, 0x013e,
+ 0x01b5, 0x0261, 0x0305, 0x038a, 0x03d3, 0x0396,
+ 0x02d5, 0x01e9, 0x013c, 0x010b, 0x0157, 0x0210,
+ 0x02e2, 0x0365, 0x03ae, 0x03df, 0x03f3, 0x041a,
+ 0x0456, 0x0475, 0x0498, 0x04b7, 0x04a7, 0x0491,
+ 0x0482, 0x0466, 0x0467, 0x049e, 0x0508, 0x058a,
+ 0x05d5, 0x05ef, 0x0639, 0x06c8, 0x0752, 0x0794,
+ 0x0796, 0x0779, 0x0752, 0x0746, 0x0761, 0x0787,
+ 0x07b0, 0x07cd, 0x07c2, 0x0798, 0x073c, 0x06a9,
+ 0x061a, 0x0595, 0x0513, 0x04cb, 0x04c1, 0x04de,
+ 0x0522, 0x0567, 0x0588, 0x057d, 0x0537, 0x04d7,
+ 0x047e, 0x0430, 0x0406, 0x03ff, 0x040a, 0x043f,
+ 0x0483, 0x04af, 0x04c3, 0x04a6, 0x0447, 0x03a1,
+ 0x02a9, 0x0194, 0x00a7, 0x0009, 0xffe4, 0x0016,
+ 0x0051, 0x0088, 0x00aa, 0x009c, 0x0084, 0x0083,
+ 0x00b9, 0x0132, 0x01b4, 0x021a, 0x025e, 0x024c,
+ 0x01e8, 0x0190, 0x0194, 0x0217, 0x02ea, 0x03b5,
+ 0x0452, 0x04bc, 0x04db, 0x04a9, 0x0443, 0x03c0,
+ 0x0326, 0x0297, 0x0251, 0x024c, 0x025f, 0x0291,
+ 0x02d7, 0x02f3, 0x02c5, 0x0257, 0x01d6, 0x0176,
+ 0x014f, 0x0151, 0x0150, 0x0155, 0x0190, 0x01e8,
+ 0x0214, 0x01f1, 0x018c, 0x0125, 0x00fc, 0x00ff,
+ 0x0100, 0x00d0, 0x0069, 0x0018, 0x0028, 0x0095,
+ 0x0130, 0x01ac, 0x01d0, 0x01a2, 0x014b, 0x00fd,
+ 0x00cd, 0x00b6, 0x00d1, 0x0123, 0x018b, 0x0212,
+ 0x02a8, 0x0313, 0x0356, 0x0389, 0x03be, 0x0412,
+ 0x046a, 0x0483, 0x0455, 0x03ff, 0x03a6, 0x0377,
+ 0x038a, 0x03c7, 0x0402, 0x0422, 0x041c, 0x03e7,
+ 0x03a6, 0x037e, 0x036a, 0x0372, 0x0393, 0x03c5,
+ 0x0422, 0x047e, 0x0492, 0x0477, 0x0442, 0x03f4,
+ 0x03af, 0x0362, 0x0316, 0x030d, 0x0324, 0x032a,
+ 0x033a, 0x0351, 0x0361, 0x0355, 0x02ed, 0x0237,
+ 0x017d, 0x00e4, 0x0092, 0x0050, 0xffc7, 0xff37,
+ 0xfef6, 0xfefa, 0xff2d, 0xff5a, 0xff6d, 0xff97,
+ 0xffc8, 0xffec, 0x001e, 0x003a, 0x001b, 0xfff0,
+ 0xffe7, 0x001c, 0x0076, 0x00b2, 0x00e0, 0x0126,
+ 0x017a, 0x01d5, 0x0214, 0x0204, 0x019d, 0x00ec,
+ 0x003a, 0x0002, 0x0069, 0x0130, 0x01ee, 0x0258,
+ 0x028c, 0x02b0, 0x02c1, 0x02d1, 0x02f3, 0x0323,
+ 0x036a, 0x03ae, 0x03ce, 0x03d8, 0x03de, 0x03ec,
+ 0x03fd, 0x03f7, 0x03f8, 0x0431, 0x0496, 0x050b,
+ 0x056d, 0x05b1, 0x05f6, 0x0629, 0x0644, 0x06a1,
+ 0x072b, 0x0760, 0x0735, 0x06ef, 0x06b4, 0x06a3,
+ 0x06dc, 0x075f, 0x07f5, 0x0860, 0x08a6, 0x08ef,
+ 0x094b, 0x09ac, 0x09ed, 0x0a0d, 0x0a26, 0x0a18,
+ 0x09c5, 0x0953, 0x08f7, 0x08de, 0x08fd, 0x090d,
+ 0x08f3, 0x08c9, 0x089b, 0x086f, 0x082f, 0x07b7,
+ 0x0723, 0x06b4, 0x0687, 0x068b, 0x069f, 0x06a2,
+ 0x0686, 0x0663, 0x0658, 0x0656, 0x064b, 0x063e,
+ 0x0628, 0x0616, 0x061b, 0x0614, 0x05e7, 0x0583,
+ 0x04d2, 0x040e, 0x0385, 0x0327, 0x02e6, 0x02cf,
+ 0x02cd, 0x02dd, 0x02f9, 0x0305, 0x0321, 0x0368,
+ 0x03a9, 0x03c9, 0x03b4, 0x0353, 0x02f1, 0x02c3,
+ 0x0287, 0x022d, 0x0202, 0x0221, 0x0276, 0x02eb,
+ 0x033e, 0x032f, 0x02cc, 0x0241, 0x01b7, 0x015d,
+ 0x013a, 0x0135, 0x0141, 0x0148, 0x0135, 0x0139,
+ 0x0173, 0x01ca, 0x0226, 0x026d, 0x0288, 0x0288,
+ 0x0271, 0x023b, 0x0217, 0x020c, 0x01f5, 0x01cb,
+ 0x0185, 0x011a, 0x00b7, 0x007b, 0x0072, 0x00b2,
+ 0x010b, 0x012e, 0x010c, 0x00b5, 0x003d, 0xffcd,
+ 0xff81, 0xff60, 0xff4f, 0xff48, 0xff6f, 0xffab,
+ 0xffc1, 0xffd0, 0xfff6, 0x002d, 0x0095, 0x011a,
+ 0x0176, 0x01a4, 0x01a0, 0x0175, 0x015e, 0x016a,
+ 0x01a1, 0x020e, 0x0259, 0x0254, 0x024f, 0x0264,
+ 0x0283, 0x02a7, 0x029d, 0x0258, 0x0209, 0x01d3,
+ 0x01d4, 0x01f0, 0x01d0, 0x017d, 0x012f, 0x00e1,
+ 0x009b, 0x006f, 0x0061, 0x007a, 0x00a0, 0x00a6,
+ 0x0090, 0x006f, 0x0047, 0x002b, 0x001b, 0x001b,
+ 0x0043, 0x0096, 0x00dd, 0x00e0, 0x00a7, 0x005f,
+ 0x003f, 0x007e, 0x0100, 0x016c, 0x01aa, 0x01b5,
+ 0x016b, 0x00ed, 0x0083, 0x0057, 0x007e, 0x00d1,
+ 0x010a, 0x011f, 0x0117, 0x00da, 0x0076, 0x0006,
+ 0xff92, 0xff2d, 0xfefc, 0xfef9, 0xff05, 0xff11,
+ 0xff29, 0xff3f, 0xff0d, 0xfe7c, 0xfddd, 0xfd84,
+ 0xfd69, 0xfd60, 0xfd49, 0xfd28, 0xfd1a, 0xfd0f,
+ 0xfcda, 0xfc88, 0xfc29, 0xfbc6, 0xfb80, 0xfb4b,
+ 0xfb04, 0xfacc, 0xfaac, 0xfa81, 0xfa4f, 0xfa1f,
+ 0xf9ef, 0xf9e1, 0xfa01, 0xfa37, 0xfa7d, 0xfac2,
+ 0xfae3, 0xfac5, 0xfa79, 0xfa4b, 0xfa67, 0xfaa9,
+ 0xfae4, 0xfaf5, 0xfada, 0xfac7, 0xfadb, 0xfb03,
+ 0xfb3f, 0xfb8f, 0xfbdf, 0xfc1a, 0xfc18, 0xfbc9,
+ 0xfb5e, 0xfb14, 0xfaf6, 0xfaea, 0xfaea, 0xfb15,
+ 0xfb64, 0xfbb0, 0xfbe2, 0xfbe2, 0xfba5, 0xfb71,
+ 0xfb67, 0xfb57, 0xfb4f, 0xfb8e, 0xfbfe, 0xfc5d,
+ 0xfc77, 0xfc24, 0xfb78, 0xfaba, 0xfa1b, 0xf9b2,
+ 0xf96c, 0xf93e, 0xf94e, 0xf98f, 0xf9e0, 0xfa56,
+ 0xfab7, 0xfaa4, 0xfa59, 0xfa3f, 0xfa7a, 0xfb13,
+ 0xfbc4, 0xfc32, 0xfc4f, 0xfc29, 0xfbfc, 0xfc07,
+ 0xfc39, 0xfc81, 0xfcdd, 0xfd32, 0xfdac, 0xfe40,
+ 0xfe8d, 0xfea1, 0xfe9c, 0xfe49, 0xfdc9, 0xfd4f,
+ 0xfcc2, 0xfc43, 0xfbf2, 0xfbcb, 0xfbd2, 0xfbc5,
+ 0xfb8b, 0xfb92, 0xfbec, 0xfc52, 0xfca8, 0xfcca,
+ 0xfccf, 0xfcf4, 0xfd15, 0xfd2b, 0xfd48, 0xfd10,
+ 0xfc8c, 0xfc39, 0xfc13, 0xfbeb, 0xfbe7, 0xfc06,
+ 0xfc2e, 0xfc45, 0xfc31, 0xfc09, 0xfbed, 0xfbe9,
+ 0xfbfe, 0xfc12, 0xfc12, 0xfc17, 0xfc47, 0xfca9,
+ 0xfd04, 0xfd31, 0xfd4d, 0xfd4a, 0xfd3a, 0xfd6a,
+ 0xfdad, 0xfdbb, 0xfdc9, 0xfdd9, 0xfdc3, 0xfda2,
+ 0xfd85, 0xfd9b, 0xfdef, 0xfe15, 0xfdf6, 0xfdbb,
+ 0xfd51, 0xfcfb, 0xfcde, 0xfccb, 0xfce1, 0xfd11,
+ 0xfd24, 0xfd4d, 0xfd73, 0xfd77, 0xfdb3, 0xfdf0,
+ 0xfdcf, 0xfd98, 0xfd63, 0xfd45, 0xfd8b, 0xfdec,
+ 0xfe33, 0xfea5, 0xff0c, 0xff0e, 0xfec5, 0xfe56,
+ 0xfdd6, 0xfd47, 0xfcb9, 0xfc7d, 0xfca0, 0xfcd0,
+ 0xfcdc, 0xfccc, 0xfcbb, 0xfcb8, 0xfcbc, 0xfcd8,
+ 0xfd07, 0xfd2e, 0xfd78, 0xfdfb, 0xfe63, 0xfe74,
+ 0xfe6c, 0xfe9c, 0xfeff, 0xff5b, 0xff91, 0xff96,
+ 0xff6e, 0xff58, 0xff85, 0xffd7, 0x0040, 0x00cc,
+ 0x012d, 0x010b, 0x0083, 0xffed, 0xff6f, 0xff18,
+ 0xfef8, 0xff04, 0xff02, 0xfedb, 0xfed9, 0xff27,
+ 0xff6d, 0xff9b, 0x000f, 0x0095, 0x00be, 0x00d0,
+ 0x0109, 0x011c, 0x00ec, 0x00b9, 0x00a7, 0x00a1,
+ 0x008b, 0x0085, 0x00b2, 0x00f5, 0x0124, 0x0123,
+ 0x00ea, 0x009b, 0x0064, 0x006f, 0x00b8, 0x00f4,
+ 0x0114, 0x013d, 0x015a, 0x019c, 0x0231, 0x0275,
+ 0x0226, 0x01ec, 0x020a, 0x024b, 0x02ac, 0x0302,
+ 0x032f, 0x033d, 0x0307, 0x02a1, 0x026e, 0x027d,
+ 0x02a8, 0x02d5, 0x02c6, 0x0295, 0x02b9, 0x0331,
+ 0x036c, 0x033e, 0x031b, 0x033b, 0x0352, 0x0358,
+ 0x037f, 0x03b8, 0x0403, 0x048f, 0x0545, 0x05d1,
+ 0x0612, 0x065a, 0x06dc, 0x0733, 0x0738, 0x0713,
+ 0x0694, 0x05ed, 0x05bb, 0x05d9, 0x05e9, 0x05fe,
+ 0x0602, 0x05cf, 0x0554, 0x0496, 0x03f6, 0x0383,
+ 0x031f, 0x0328, 0x0368, 0x0355, 0x0355, 0x03a1,
+ 0x03d5, 0x03ef, 0x03d3, 0x0381, 0x036e, 0x036d,
+ 0x0337, 0x033a, 0x037b, 0x03aa, 0x03f4, 0x0463,
+ 0x04a6, 0x048d, 0x0450, 0x0433, 0x03e6, 0x033a,
+ 0x02a4, 0x0244, 0x0217, 0x0273, 0x0322, 0x03a6,
+ 0x0414, 0x0498, 0x0506, 0x04fe, 0x0465, 0x03c6,
+ 0x0359, 0x02d0, 0x026c, 0x025f, 0x0243, 0x023b,
+ 0x02b8, 0x0363, 0x03a3, 0x0366, 0x0301, 0x029c,
+ 0x0210, 0x018d, 0x0141, 0x0102, 0x00eb, 0x010d,
+ 0x011e, 0x0133, 0x0167, 0x0184, 0x01a5, 0x01b1,
+ 0x0166, 0x0132, 0x0141, 0x0143, 0x0186, 0x020a,
+ 0x023f, 0x0269, 0x02d1, 0x0300, 0x02da, 0x0297,
+ 0x0241, 0x0209, 0x0221, 0x0290, 0x0331, 0x0392,
+ 0x0394, 0x0386, 0x034b, 0x02cb, 0x0269, 0x0238,
+ 0x01fd, 0x01ca, 0x01df, 0x025e, 0x02fe, 0x0349,
+ 0x036f, 0x03ca, 0x03ee, 0x03a7, 0x038f, 0x03ac,
+ 0x0363, 0x02f0, 0x02f5, 0x0336, 0x032b, 0x02df,
+ 0x02ab, 0x02b4, 0x02f2, 0x035a, 0x03a0, 0x0360,
+ 0x02d4, 0x027f, 0x0272, 0x02c5, 0x0372, 0x03e6,
+ 0x03ec, 0x03d2, 0x039b, 0x0336, 0x02c4, 0x025a,
+ 0x020e, 0x01e6, 0x01d6, 0x01fb, 0x025e, 0x02cc,
+ 0x02fe, 0x02e7, 0x02b6, 0x0276, 0x0219, 0x01db,
+ 0x01d0, 0x01aa, 0x0161, 0x0136, 0x013a, 0x0148,
+ 0x0169, 0x01d6, 0x0246, 0x0255, 0x0261, 0x02a5,
+ 0x02da, 0x0309, 0x033d, 0x0359, 0x0356, 0x02f9,
+ 0x0261, 0x0218, 0x0202, 0x01ec, 0x01f5, 0x01ec,
+ 0x01f1, 0x026c, 0x031d, 0x03c1, 0x042a, 0x03fd,
+ 0x038b, 0x0355, 0x0354, 0x0386, 0x03ca, 0x03ee,
+ 0x042f, 0x046d, 0x0465, 0x0481, 0x0494, 0x0402,
+ 0x0371, 0x038d, 0x03c2, 0x03cb, 0x03ff, 0x0443,
+ 0x0447, 0x0410, 0x03f7, 0x0434, 0x0464, 0x046a,
+ 0x04c7, 0x0520, 0x04c7, 0x042e, 0x03ab, 0x02ce,
+ 0x01d3, 0x0169, 0x01a3, 0x0237, 0x02dc, 0x0376,
+ 0x0401, 0x0462, 0x0485, 0x044f, 0x03ae, 0x02e6,
+ 0x0261, 0x02a2, 0x03bd, 0x04d7, 0x056d, 0x05c9,
+ 0x05cc, 0x0554, 0x04da, 0x049b, 0x0476, 0x044e,
+ 0x0435, 0x046c, 0x04f8, 0x05bc, 0x066c, 0x0681,
+ 0x062a, 0x05ec, 0x05a8, 0x0564, 0x0521, 0x0464,
+ 0x036d, 0x02e4, 0x02ce, 0x02e8, 0x02d9, 0x02c9,
+ 0x032a, 0x037c, 0x0379, 0x038a, 0x034e, 0x02c5,
+ 0x02c3, 0x031d, 0x0374, 0x03ca, 0x03bc, 0x034e,
+ 0x02b4, 0x01ce, 0x010c, 0x00a6, 0x0055, 0x0074,
+ 0x00d4, 0x00b2, 0x00b6, 0x0185, 0x0236, 0x0258,
+ 0x028c, 0x02ed, 0x030f, 0x02e8, 0x02b2, 0x0276,
+ 0x0238, 0x022f, 0x023a, 0x01fb, 0x0194, 0x0161,
+ 0x0147, 0x012b, 0x0129, 0x010c, 0x00ba, 0x008f,
+ 0x0094, 0x0088, 0x0078, 0x0098, 0x00fa, 0x016f,
+ 0x01bc, 0x0205, 0x023a, 0x020d, 0x01c9, 0x01aa,
+ 0x0153, 0x00b9, 0x0021, 0xffbe, 0xff8a, 0xff16,
+ 0xfe79, 0xfe72, 0xfeda, 0xff05, 0xff04, 0xff37,
+ 0xff93, 0xffc2, 0xffb6, 0xff9a, 0xff5d, 0xff4e,
+ 0xffd8, 0x006c, 0x0080, 0x004d, 0xfff1, 0xff6b,
+ 0xfefd, 0xfee9, 0xff1c, 0xff4e, 0xff9f, 0x002b,
+ 0x00b5, 0x0157, 0x01c5, 0x0185, 0x0134, 0x010f,
+ 0x00ca, 0x00a1, 0x004a, 0xffee, 0x006b, 0x00e2,
+ 0x008d, 0x003b, 0xffdf, 0xff54, 0xff0b, 0xff0b,
+ 0xff8c, 0x0014, 0x000a, 0x0047, 0x00a1, 0x0081,
+ 0x00de, 0x0170, 0x0152, 0x0106, 0x009e, 0x003b,
+ 0x001e, 0xffd1, 0xfff2, 0x0089, 0x006f, 0x00a5,
+ 0x0184, 0x013d, 0x0064, 0x0054, 0x0075, 0x0091,
+ 0x00c1, 0x00e4, 0x0132, 0x0124, 0x007f, 0xffee,
+ 0xff7d, 0xff39, 0xff34, 0xfefb, 0xfee8, 0xff33,
+ 0xff51, 0xff8b, 0xffc9, 0xff1c, 0xfe25, 0xfdf1,
+ 0xfe0e, 0xfdef, 0xfdc2, 0xfdfc, 0xfe88, 0xfe85,
+ 0xfe07, 0xfdfb, 0xfe14, 0xfdd4, 0xfdc7, 0xfe08,
+ 0xfe10, 0xfdd8, 0xfddb, 0xfe27, 0xfe37, 0xfdff,
+ 0xfdb0, 0xfd31, 0xfd2b, 0xfd9a, 0xfd6c, 0xfd61,
+ 0xfdfa, 0xfded, 0xfde2, 0xfe50, 0xfdb6, 0xfcf8,
+ 0xfd32, 0xfd11, 0xfc91, 0xfc82, 0xfc91, 0xfc07,
+ 0xfa95, 0xf9fe, 0xfb01, 0xfb48, 0xfb50, 0xfcac,
+ 0xfd98, 0xfde2, 0xfe42, 0xfdd6, 0xfd7f, 0xfd88,
+ 0xfd40, 0xfdab, 0xfde5, 0xfd52, 0xfd9d, 0xfd81,
+ 0xfc89, 0xfcaf, 0xfc8f, 0xfbe7, 0xfc92, 0xfd33,
+ 0xfdb1, 0xff11, 0xff5a, 0xfeaa, 0xfee0, 0xff28,
+ 0xfec7, 0xfe5b, 0xfe51, 0xfe5c, 0xfdf9, 0xfe14,
+ 0xfea9, 0xfe36, 0xfdc4, 0xfe31, 0xfe11, 0xfdcf,
+ 0xfe1e, 0xfe2d, 0xfe5b, 0xfefe, 0xff52, 0xfef0,
+ 0xfdf6, 0xfd51, 0xfd72, 0xfd9d, 0xfe0f, 0xff2f,
+ 0x0024, 0x0043, 0xffd1, 0xffbf, 0x0044, 0x006d,
+ 0x0059, 0x0065, 0xfffd, 0xff96, 0xff8e, 0xff62,
+ 0xff88, 0xffda, 0xff81, 0xff19, 0xfeed, 0xfeb3,
+ 0xfeb2, 0xfe47, 0xfd4b, 0xfd49, 0xfe3e, 0xfebc,
+ 0xfef2, 0xff80, 0xffa1, 0xfec0, 0xfde0, 0xfe03,
+ 0xfe6a, 0xfe28, 0xfddd, 0xfe24, 0xfe58, 0xfe1a,
+ 0xfdec, 0xfe1e, 0xfe72, 0xfe92, 0xfe95, 0xfebe,
+ 0xfee1, 0xfeec, 0xfefc, 0xff10, 0xff57, 0xff44,
+ 0xfe31, 0xfd7a, 0xfda8, 0xfd2e, 0xfc96, 0xfcd7,
+ 0xfcf2, 0xfd5e, 0xfead, 0xff9b, 0x000f, 0x0028,
+ 0xff7f, 0xfef1, 0xfe8b, 0xfdcb, 0xfd69, 0xfd6c,
+ 0xfd99, 0xfde5, 0xfdb8, 0xfddb, 0xfecc, 0xff25,
+ 0xff1f, 0xffa4, 0x0011, 0x0046, 0x0057, 0x0027,
+ 0x0018, 0xffcb, 0xff5d, 0xff8c, 0xff6c, 0xfeb6,
+ 0xfeb8, 0xff43, 0xffcc, 0x0066, 0x004e, 0xffdd,
+ 0x0082, 0x012d, 0x0071, 0xffb6, 0xff73, 0xfe77,
+ 0xfddf, 0xfe83, 0xfecc, 0xfee7, 0xffb9, 0x0016,
+ 0xff8e, 0xfee6, 0xfee0, 0xffe1, 0x0096, 0x003f,
+ 0x0009, 0x000c, 0xfff7, 0xffeb, 0xff72, 0xff73,
+ 0x0086, 0x0136, 0x01ad, 0x02a1, 0x02fa, 0x02c5,
+ 0x02d0, 0x0302, 0x0336, 0x0301, 0x022f, 0x012b,
+ 0x0082, 0x00ed, 0x01a5, 0x0180, 0x015a, 0x014a,
+ 0x0099, 0x0060, 0x00cd, 0x0108, 0x016e, 0x01ab,
+ 0x0152, 0x0157, 0x01a9, 0x016c, 0x0143, 0x01dc,
+ 0x0249, 0x01d7, 0x013d, 0x00bc, 0xfffc, 0xff64,
+ 0xff48, 0xff92, 0x0015, 0x00b4, 0x01d6, 0x02a9,
+ 0x0243, 0x025e, 0x02bf, 0x012c, 0xff70, 0xff2e,
+ 0xff2f, 0xff9d, 0x0004, 0xffae, 0xfffd, 0x0077,
+ 0x0085, 0x019e, 0x02bd, 0x02af, 0x025f, 0x0183,
+ 0x008b, 0x0093, 0x00c4, 0x013b, 0x0228, 0x01ed,
+ 0x00f4, 0x00b1, 0x009f, 0x00ca, 0x01ad, 0x0210,
+ 0x016d, 0x0111, 0x016e, 0x01de, 0x0230, 0x0275,
+ 0x02ac, 0x02bd, 0x02ab, 0x02dd, 0x02cc, 0x0256,
+ 0x034d, 0x047d, 0x0340, 0x020e, 0x0240, 0x0190,
+ 0x0116, 0x018f, 0x0158, 0x0169, 0x01bd, 0x011b,
+ 0x0130, 0x0264, 0x0315, 0x032c, 0x03a4, 0x0490,
+ 0x03ff, 0x02c2, 0x043c, 0x05b6, 0x0484, 0x03da,
+ 0x02fe, 0x00be, 0x0041, 0x0044, 0xffa2, 0x00db,
+ 0x021e, 0x027b, 0x0428, 0x0591, 0x05da, 0x0660,
+ 0x062a, 0x0513, 0x0423, 0x0393, 0x03dd, 0x0463,
+ 0x045b, 0x04a2, 0x0519, 0x04db, 0x0475, 0x041b,
+ 0x02f0, 0x01f2, 0x028a, 0x02be, 0x0150, 0x0021,
+ 0xffd8, 0x00e1, 0x0292, 0x022e, 0x01d5, 0x030f,
+ 0x022e, 0x0139, 0x025b, 0x023a, 0x02b2, 0x03ac,
+ 0x016c, 0x0054, 0x00c9, 0xfe7c, 0xfe31, 0x00a8,
+ 0x00d7, 0x00b9, 0x017c, 0x01fa, 0x02d0, 0x02ee,
+ 0x0396, 0x0455, 0x018a, 0xff92, 0x0114, 0x00a8,
+ 0xff39, 0x00b1, 0x0391, 0x04d7, 0x0324, 0x020c,
+ 0x0307, 0x01a2, 0x006c, 0x02c9, 0x03aa, 0x0273,
+ 0x01c4, 0x0150, 0x025d, 0x02d1, 0x011e, 0x017f,
+ 0x0214, 0x0035, 0x007e, 0x01f2, 0x00c2, 0xffa9,
+ 0x0031, 0x00d7, 0x012a, 0x018e, 0x025f, 0x0227,
+ 0x0114, 0x01c5, 0x027a, 0x0178, 0x0180, 0x0261,
+ 0x0259, 0x021b, 0x013d, 0x005f, 0x00ed, 0x00dd,
+ 0x004d, 0x01c8, 0x02f1, 0x024b, 0x02f2, 0x03f8,
+ 0x0314, 0x02c3, 0x0392, 0x03a5, 0x03d8, 0x040e,
+ 0x032d, 0x0304, 0x0485, 0x055d, 0x0406, 0x02ad,
+ 0x0352, 0x039d, 0x02ac, 0x02cc, 0x027f, 0x0097,
+ 0xffe9, 0x00c2, 0x017f, 0x00ee, 0xff7e, 0x006a,
+ 0x01cf, 0x000b, 0xff56, 0x0000, 0xfde6, 0xfc68,
+ 0xfcf9, 0xfc8a, 0xfc68, 0xfd75, 0xfefc, 0x0019,
+ 0xfff4, 0x016a, 0x02f0, 0x0095, 0xff29, 0xfef4,
+ 0xfca7, 0xfd0c, 0xfddd, 0xfbd4, 0xfe35, 0x01bd,
+ 0x00fe, 0x02e5, 0x05a6, 0x04a5, 0x04a5, 0x041b,
+ 0x0185, 0x00e1, 0xff83, 0xfd49, 0xfe54, 0xffd3,
+ 0x0054, 0x01ba, 0x02cd, 0x03cb, 0x051c, 0x053c,
+ 0x044c, 0x0288, 0x00af, 0x0027, 0xffde, 0xff48,
+ 0xffbe, 0x016a, 0x02f5, 0x0302, 0x02fa, 0x0471,
+ 0x052b, 0x04f8, 0x0538, 0x03ae, 0x0122, 0x004c,
+ 0xff35, 0xfe56, 0xff7b, 0xffff, 0x00e8, 0x036f,
+ 0x0372, 0x0307, 0x057a, 0x067f, 0x066d, 0x06c7,
+ 0x03af, 0x00aa, 0x0111, 0x003f, 0xffd6, 0x012d,
+ 0x0041, 0x0060, 0x0215, 0x0142, 0x01e6, 0x0337,
+ 0x017a, 0x02bc, 0x0548, 0x02b0, 0x006e, 0x0053,
+ 0xfee1, 0xfed3, 0x000d, 0x0003, 0x0038, 0x016f,
+ 0x02da, 0x02c5, 0x01fc, 0x03ce, 0x04f4, 0x02fd,
+ 0x028a, 0x02cb, 0x0141, 0x00b4, 0x011e, 0x0196,
+ 0x026a, 0x02c6, 0x03a7, 0x045f, 0x0378, 0x02c8,
+ 0x01d5, 0x00ed, 0x0187, 0x004b, 0xfeb0, 0xffdc,
+ 0xff20, 0xfdfd, 0x0072, 0x00b0, 0xfe92, 0xfedc,
+ 0xfea1, 0xfdbd, 0xfeae, 0xfe17, 0xfbff, 0xfc11,
+ 0xfcb2, 0xfc74, 0xfdd8, 0xffd2, 0xff67, 0xfed1,
+ 0xff82, 0xfee3, 0xfdec, 0xfe28, 0xfe44, 0xfee3,
+ 0xff83, 0xff68, 0x0094, 0x00e5, 0xff42, 0xffe1,
+ 0x012c, 0x0032, 0xff11, 0xfe1d, 0xfdd1, 0xfe99,
+ 0xfea7, 0xff73, 0x00fc, 0x0157, 0x02bf, 0x045b,
+ 0x0417, 0x0414, 0x037c, 0x0287, 0x02e3, 0x00d5,
+ 0xfdb2, 0xfe3f, 0xff19, 0xfea6, 0xffb1, 0x0123,
+ 0x0180, 0x0122, 0x0125, 0x019b, 0x008c, 0xff86,
+ 0x005d, 0x009e, 0x003e, 0x0039, 0xffea, 0xffea,
+ 0xff9b, 0xffe1, 0x01a6, 0x00fc, 0xff3f, 0xffc2,
+ 0xff3a, 0xff07, 0x0095, 0xffe8, 0xffb7, 0x0091,
+ 0xfec4, 0xff21, 0x01ac, 0x0155, 0x01a8, 0x02d3,
+ 0x0214, 0x01f3, 0x018c, 0x00e6, 0x01c9, 0x0146,
+ 0x0108, 0x0229, 0x00a0, 0x0047, 0x0296, 0x0223,
+ 0x0229, 0x03e3, 0x026a, 0x0101, 0x014e, 0xff81,
+ 0xfe10, 0xff04, 0xffa1, 0xff33, 0xfe49, 0xfd65,
+ 0xfcf7, 0xfd09, 0xfde5, 0xfe7d, 0xfeba, 0xffce,
+ 0x0027, 0xffa2, 0xff90, 0xfdf7, 0xfbf8, 0xfc5a,
+ 0xfc3d, 0xfb65, 0xfca0, 0xfd15, 0xfba3, 0xfc04,
+ 0xfdcd, 0xfe9d, 0xfe8b, 0xfe23, 0xfe90, 0xff69,
+ 0xfeac, 0xfe01, 0xfeb1, 0xfeb9, 0xfee5, 0xff1d,
+ 0xfd32, 0xfcfc, 0xff7c, 0xfea9, 0xfd06, 0xfeeb,
+ 0xff34, 0xfdfd, 0xff2e, 0xff3a, 0xfe33, 0xfee4,
+ 0xfe54, 0xfd52, 0xfe09, 0xfd5e, 0xfc5a, 0xfd34,
+ 0xfda0, 0xfe0b, 0xfeb5, 0xfdb2, 0xfd67, 0xfeaa,
+ 0xfe52, 0xfcec, 0xfc41, 0xfc23, 0xfc83, 0xfc7d,
+ 0xfcc3, 0xff25, 0x00cf, 0xffa5, 0xfed4, 0xfee5,
+ 0xfdd1, 0xfd49, 0xfdfb, 0xfdec, 0xfe1f, 0xfecc,
+ 0xfdb0, 0xfcfb, 0xfe3b, 0xfe2b, 0xfe28, 0x002a,
+ 0x006d, 0x001e, 0x01c8, 0x013f, 0xfffd, 0x01e0,
+ 0x0250, 0x0113, 0x0203, 0x01d9, 0x0073, 0x0128,
+ 0x01b9, 0x022c, 0x03b8, 0x031a, 0x010e, 0x006f,
+ 0x00b0, 0x0205, 0x0315, 0x0282, 0x031e, 0x03f1,
+ 0x02a9, 0x02b9, 0x0448, 0x040c, 0x0309, 0x025e,
+ 0x0216, 0x0212, 0x0012, 0xfdae, 0xfe6a, 0xffab,
+ 0xff66, 0xff31, 0xfed4, 0xfeef, 0xfffd, 0xffe0,
+ 0xff85, 0xffdd, 0xfe6a, 0xfc8e, 0xfce9, 0xfd84,
+ 0xfdbc, 0xfea0, 0xfed6, 0xfe68, 0xfedc, 0xff39,
+ 0xfef6, 0xffdd, 0x0172, 0x0118, 0xffa5, 0xffec,
+ 0x0163, 0x0265, 0x02ba, 0x0232, 0x018b, 0x0167,
+ 0x00f6, 0x00aa, 0x0035, 0xfe62, 0xfdce, 0xff84,
+ 0x0055, 0x0060, 0x0087, 0x000a, 0x00d0, 0x024e,
+ 0x0221, 0x022b, 0x0209, 0x00c3, 0x0230, 0x04a1,
+ 0x03b2, 0x023d, 0x015a, 0xffff, 0x00e2, 0x0207,
+ 0x0077, 0xffc5, 0xfff7, 0xfee7, 0xff65, 0x00c9,
+ 0x001c, 0xff89, 0x0012, 0x0070, 0x015d, 0x0214,
+ 0x0138, 0x0067, 0x0079, 0x009c, 0x012d, 0x0225,
+ 0x01dd, 0x00a8, 0x00ef, 0x01cc, 0x00f7, 0x0050,
+ 0x00e8, 0x00f5, 0x0181, 0x02b7, 0x0253, 0x0166,
+ 0x0094, 0xffaa, 0x012f, 0x02ef, 0x01a5, 0x0145,
+ 0x01cf, 0x002b, 0x000a, 0x0128, 0xffc4, 0xff4e,
+ 0x009b, 0x0092, 0x0095, 0x001e, 0xfeb3, 0xffcf,
+ 0x00ea, 0xfeea, 0xfded, 0xfe4d, 0xfda8, 0xfe5a,
+ 0x0028, 0x0044, 0xff5d, 0xfdf8, 0xfc20, 0xfbac,
+ 0xfc49, 0xfc23, 0xfc29, 0xfd60, 0xfe36, 0xfe27,
+ 0xfe5c, 0xfe7c, 0xfe9d, 0xffc4, 0x0039, 0xff45,
+ 0xfef8, 0xfec7, 0xfe9b, 0x0025, 0x012a, 0x0123,
+ 0x0279, 0x0271, 0x0060, 0x0079, 0x0136, 0x00ad,
+ 0x0119, 0x0152, 0x0120, 0x0237, 0x0211, 0x011b,
+ 0x022c, 0x0288, 0x0173, 0x0164, 0x014a, 0x014f,
+ 0x0255, 0x0297, 0x0303, 0x046b, 0x047b, 0x03ce,
+ 0x03ba, 0x0345, 0x02bd, 0x024e, 0x01ac, 0x01a2,
+ 0x01a9, 0x0198, 0x020d, 0x01c3, 0x012c, 0x01a6,
+ 0x0177, 0x00a9, 0x0111, 0x019e, 0x01a1, 0x01d5,
+ 0x0247, 0x033a, 0x0383, 0x023b, 0x01be, 0x0235,
+ 0x0173, 0x009d, 0x00b8, 0x00af, 0x00d8, 0x0154,
+ 0x014b, 0x0116, 0x00f9, 0x00f5, 0x01b9, 0x02f0,
+ 0x034c, 0x02c1, 0x027e, 0x02e2, 0x0320, 0x02bb,
+ 0x01f7, 0x01ec, 0x0341, 0x03da, 0x02a9, 0x024f,
+ 0x02a1, 0x016a, 0x008a, 0x0114, 0x0148, 0x014a,
+ 0x0154, 0x016d, 0x021d, 0x01a9, 0x00ab, 0x01b0,
+ 0x021b, 0x00d7, 0x00b3, 0x0032, 0xff4d, 0x00b3,
+ 0x015d, 0x000f, 0xffe8, 0xff8c, 0xfe8b, 0xfeba,
+ 0xfdf9, 0xfcac, 0xfd1d, 0xfd38, 0xfd33, 0xfe42,
+ 0xfdf7, 0xfd6a, 0xfe76, 0xfec0, 0xfead, 0xff98,
+ 0x0000, 0x0031, 0x0056, 0xffdc, 0x0080, 0x018f,
+ 0x0113, 0x0065, 0xffa5, 0xfed2, 0xffcf, 0x00bb,
+ 0xffee, 0xffd1, 0x001d, 0xff96, 0xffe9, 0x00c3,
+ 0x00b0, 0x002d, 0xff81, 0xff54, 0x000a, 0x0030,
+ 0xffc0, 0xffb3, 0xffae, 0x0014, 0x00ad, 0xffc7,
+ 0xfeb2, 0xffca, 0x012c, 0x00e7, 0x00eb, 0x01d0,
+ 0x013c, 0xffbd, 0xff4b, 0xfe46, 0xfc97, 0xfd38,
+ 0xfeaf, 0xfe61, 0xfed0, 0x00c9, 0x014e, 0x0086,
+ 0x009e, 0x0174, 0x022e, 0x0288, 0x0238, 0x0161,
+ 0x00cd, 0x00d6, 0x0131, 0x01d3, 0x023a, 0x01b6,
+ 0x014f, 0x0166, 0x0131, 0x017d, 0x017c, 0x0001,
+ 0x0047, 0x0240, 0x01bc, 0x00d6, 0x01bf, 0x0184,
+ 0x0141, 0x0281, 0x0293, 0x01e5, 0x01a3, 0x011d,
+ 0x018d, 0x01d4, 0x00b6, 0x0121, 0x01a3, 0xffb2,
+ 0xff48, 0x00b2, 0x0057, 0xffcf, 0x0027, 0xffd6,
+ 0x0006, 0x0159, 0x0211, 0x0157, 0x0054, 0x008c,
+ 0x00c9, 0x0044, 0x00e1, 0x00d8, 0xfeb3, 0xfe6f,
+ 0xff59, 0xfdf8, 0xfd5d, 0xfe66, 0xfe43, 0xfe4a,
+ 0xfebc, 0xfe51, 0xfebd, 0xffae, 0x0045, 0x0183,
+ 0x0181, 0x0006, 0x0000, 0x0024, 0xffd7, 0x014f,
+ 0x01f5, 0x0046, 0x003d, 0x0152, 0x0067, 0xffe7,
+ 0x0124, 0x00be, 0xfee5, 0xff06, 0x0054, 0x00c4,
+ 0x01bf, 0x032c, 0x02e4, 0x0241, 0x02e1, 0x0302,
+ 0x01f6, 0x00e5, 0x002c, 0x0000, 0x003d, 0x0053,
+ 0x0058, 0x007f, 0x00f4, 0x0188, 0x0180, 0x010b,
+ 0x0066, 0xff82, 0xffa1, 0x00c3, 0x014c, 0x01a3,
+ 0x01e4, 0x0145, 0x015c, 0x0234, 0x01b9, 0x0130,
+ 0x01a6, 0x0157, 0x00c5, 0x0131, 0x019a, 0x01e3,
+ 0x0273, 0x028a, 0x0228, 0x01d0, 0x0194, 0x0198,
+ 0x01a7, 0x01ea, 0x0318, 0x040c, 0x0331, 0x01ea,
+ 0x0193, 0x011e, 0x00dd, 0x01bf, 0x0201, 0x013e,
+ 0x0154, 0x018a, 0x015d, 0x0204, 0x01ed, 0x00ca,
+ 0x0143, 0x01a3, 0x0061, 0x00db, 0x021f, 0x0115,
+ 0x00d4, 0x024b, 0x01ae, 0x0019, 0x0067, 0x011f,
+ 0x012b, 0x012a, 0x00f4, 0x00d1, 0x00fb, 0x00bd,
+ 0x005f, 0x0092, 0x00c6, 0x0069, 0xffef, 0xffe1,
+ 0x0045, 0x00cb, 0x00cc, 0xfff9, 0xff3c, 0xff56,
+ 0xff91, 0xffd4, 0x00b7, 0x010d, 0x0027, 0xffa0,
+ 0xffd3, 0x0017, 0x00c8, 0x0128, 0x009d, 0x0087,
+ 0x007a, 0xff23, 0xfe1c, 0xfe7e, 0xfeac, 0xfdf9,
+ 0xfd93, 0xfe06, 0xfe2c, 0xfdad, 0xfe42, 0xff58,
+ 0xfec3, 0xfe4a, 0xff60, 0xff97, 0xfeeb, 0xff3e,
+ 0xff7c, 0xff1e, 0xff36, 0xff3b, 0xfee9, 0xff33,
+ 0xfffe, 0x0075, 0x0074, 0x0097, 0x0109, 0x00d7,
+ 0x0012, 0xffcf, 0xffaf, 0xff9c, 0x0098, 0x01b1,
+ 0x01ef, 0x026f, 0x02bf, 0x020d, 0x01e9, 0x021e,
+ 0x0187, 0x018d, 0x01f4, 0x017a, 0x01aa, 0x0232,
+ 0x01a0, 0x01cc, 0x0284, 0x01be, 0x0113, 0x017a,
+ 0x01bc, 0x01fb, 0x0203, 0x01c4, 0x0227, 0x02d6,
+ 0x03ab, 0x0425, 0x0335, 0x0298, 0x02b2, 0x0189,
+ 0x00f8, 0x01f3, 0x0212, 0x0205, 0x01f5, 0x00c7,
+ 0x0116, 0x025f, 0x01ab, 0x014d, 0x01c8, 0x0096,
+ 0xffb0, 0x0037, 0x00b2, 0x018e, 0x01e5, 0x0150,
+ 0x01d4, 0x01b1, 0xffe9, 0xffdb, 0x005f, 0xff14,
+ 0xfea6, 0xff12, 0xfe85, 0xfeea, 0xfff4, 0xffda,
+ 0x001a, 0x0098, 0x006c, 0x010b, 0x01c4, 0x0188,
+ 0x018f, 0x0158, 0x00e1, 0x017d, 0x01ca, 0x0180,
+ 0x023e, 0x02d4, 0x0275, 0x021e, 0x01c2, 0x01c9,
+ 0x0226, 0x01d7, 0x0192, 0x01a2, 0x0194, 0x01c5,
+ 0x0157, 0x00a8, 0x0181, 0x0247, 0x0214, 0x0288,
+ 0x0272, 0x014d, 0x0119, 0x0134, 0x00cc, 0x00de,
+ 0x00d4, 0xfffd, 0xff53, 0xff79, 0xffd9, 0xffa4,
+ 0xff43, 0xff17, 0xfea8, 0xfea6, 0xff71, 0x000e,
+ 0x0098, 0x00e5, 0x0073, 0x0081, 0x0134, 0x0168,
+ 0x016c, 0x0146, 0x009d, 0xfff6, 0xff68, 0xfed3,
+ 0xfe43, 0xfdf2, 0xfe75, 0xff19, 0xff23, 0xff47,
+ 0xff41, 0xfeed, 0xff1e, 0xff3b, 0xff18, 0xff31,
+ 0xfedb, 0xfea6, 0xff1f, 0xff3b, 0xff54, 0xff8e,
+ 0xff49, 0xff81, 0xffa6, 0xfee7, 0xfeeb, 0xff04,
+ 0xfe4a, 0xfedb, 0xffde, 0xff99, 0x001a, 0x0130,
+ 0x00e6, 0x00f3, 0x023a, 0x029a, 0x01d2, 0x017c,
+ 0x019a, 0x0146, 0x00dd, 0x012b, 0x019c, 0x016e,
+ 0x013e, 0x018e, 0x019f, 0x0108, 0x0070, 0xffea,
+ 0xff2d, 0xfee6, 0xff0d, 0xfee0, 0xfec8, 0xfefc,
+ 0xff42, 0xffe1, 0x0056, 0x008f, 0x0111, 0x00b3,
+ 0xffd1, 0x0032, 0x006a, 0xffeb, 0x0093, 0x0151,
+ 0x012a, 0x0156, 0x012f, 0x0094, 0x0080, 0xffe8,
+ 0xff13, 0xff59, 0xffba, 0xffcf, 0xffe3, 0xff6e,
+ 0xff2c, 0xff59, 0xff12, 0xff01, 0xff27, 0xfee5,
+ 0xff31, 0xff82, 0xfeed, 0xfef9, 0xff7e, 0xff1c,
+ 0xfef6, 0xff58, 0xff34, 0xff33, 0xff7c, 0xff3b,
+ 0xfee2, 0xfeaa, 0xfe73, 0xfec4, 0xfef6, 0xfe21,
+ 0xfd53, 0xfd5d, 0xfdc7, 0xfe90, 0xff81, 0xffc8,
+ 0xffa8, 0xff9f, 0xff5a, 0xff1b, 0xff5c, 0xff5c,
+ 0xfe88, 0xfd9c, 0xfd7c, 0xfe1e, 0xfecf, 0xff48,
+ 0xffb3, 0xffcf, 0xffb4, 0xffd0, 0xffa9, 0xff2b,
+ 0xff0a, 0xfecb, 0xfe4b, 0xfeae, 0xff51, 0xff0c,
+ 0xfeec, 0xff44, 0xff19, 0xff21, 0xffd4, 0x000d,
+ 0x000e, 0x008f, 0x00a7, 0x0033, 0xffe2, 0xff65,
+ 0xff3e, 0xffed, 0x0039, 0x0017, 0x0032, 0xfffc,
+ 0x0021, 0x0105, 0x00f5, 0x006f, 0x00d7, 0x00ed,
+ 0x0052, 0xffde, 0xff50, 0xfecd, 0xfe43, 0xfd6a,
+ 0xfd4b, 0xfdcd, 0xfdfe, 0xfe77, 0xff25, 0xff52,
+ 0xff7e, 0xffdd, 0x000c, 0xffe6, 0xffa7, 0xffeb,
+ 0x004a, 0x003b, 0x0050, 0x005a, 0x001c, 0x0022,
+ 0x0002, 0xffbf, 0x0002, 0x0032, 0x003f, 0x0088,
+ 0x0080, 0x0077, 0x00b6, 0x009f, 0x0039, 0xff7e,
+ 0xfe9e, 0xfe1e, 0xfd86, 0xfd41, 0xfdde, 0xfe10,
+ 0xfde1, 0xfe3c, 0xfec3, 0xff90, 0x0022, 0xffd4,
+ 0xffa4, 0xff6a, 0xfeff, 0xff3f, 0xfee0, 0xfde5,
+ 0xfde6, 0xfd8b, 0xfcd1, 0xfd23, 0xfd01, 0xfcac,
+ 0xfd81, 0xfdf5, 0xfe32, 0xff49, 0xffd8, 0xff8a,
+ 0xfecb, 0xfd91, 0xfcf5, 0xfd34, 0xfd6f, 0xfd70,
+ 0xfd59, 0xfddb, 0xfeda, 0xff67, 0xffee, 0x003b,
+ 0xffc8, 0xffdb, 0x0027, 0xff9e, 0xff7a, 0xffad,
+ 0xff59, 0xff66, 0xff8d, 0xff2b, 0xfefb, 0xfecb,
+ 0xfe6a, 0xfe63, 0xfe77, 0xfebd, 0xff17, 0xfead,
+ 0xfe57, 0xff00, 0xff70, 0xff3e, 0xff2f, 0xff01,
+ 0xfecd, 0xff5c, 0x0003, 0x0020, 0x0062, 0x0067,
+ 0xffd6, 0x000d, 0x00f2, 0x0127, 0x0103, 0x0100,
+ 0x0109, 0x0136, 0x0104, 0x0072, 0xffef, 0xff39,
+ 0xff11, 0xff8a, 0xff24, 0xfee8, 0xffed, 0x0052,
+ 0x0025, 0x00af, 0x010b, 0x0116, 0x0155, 0x012f,
+ 0x0108, 0x0134, 0x00df, 0x000e, 0xff34, 0xfe7b,
+ 0xfe39, 0xfe36, 0xfe10, 0xfddd, 0xfdb2, 0xfdae,
+ 0xfdab, 0xfd85, 0xfdb7, 0xfe34, 0xfe8b, 0xfedf,
+ 0xfece, 0xfe11, 0xfd89, 0xfd47, 0xfccd, 0xfcce,
+ 0xfd6c, 0xfdbb, 0xfdbf, 0xfdc4, 0xfdb0, 0xfdf2,
+ 0xfe8f, 0xff13, 0xffca, 0x00ac, 0x0115, 0x013e,
+ 0x016c, 0x012e, 0x008a, 0x0008, 0x000a, 0x0079,
+ 0x00c3, 0x00f1, 0x0159, 0x015e, 0x00b8, 0x004c,
+ 0x0083, 0x00c0, 0x00c5, 0x0118, 0x01b6, 0x020a,
+ 0x0257, 0x02bd, 0x029f, 0x0279, 0x02a8, 0x023c,
+ 0x018f, 0x018b, 0x0191, 0x015b, 0x0141, 0x00f7,
+ 0x0070, 0xffd1, 0xff3b, 0xff3a, 0xff9c, 0xff9d,
+ 0xff47, 0xfed5, 0xfe62, 0xfe44, 0xfe98, 0xff1d,
+ 0xff89, 0xffff, 0x00cf, 0x018a, 0x01c5, 0x01bf,
+ 0x0165, 0x00e3, 0x00d4, 0x00c9, 0x004f, 0x001e,
+ 0x005d, 0x0083, 0x00b9, 0x0138, 0x01c3, 0x0243,
+ 0x02a4, 0x02b5, 0x0295, 0x025e, 0x01e9, 0x0132,
+ 0x0082, 0x0055, 0x00a9, 0x00be, 0x0083, 0x0085,
+ 0x0080, 0x0051, 0x0042, 0xffd5, 0xff0d, 0xfeb2,
+ 0xfeb1, 0xfedd, 0xff1b, 0xff01, 0xfee7, 0xfed9,
+ 0xfe73, 0xfe9a, 0xff67, 0xffb3, 0xffea, 0x006b,
+ 0x0060, 0xffe1, 0xff4e, 0xfeba, 0xfe8e, 0xfeb1,
+ 0xfef6, 0xff8c, 0x0007, 0x003e, 0x007d, 0x008c,
+ 0x006f, 0x0083, 0x0098, 0x0074, 0x0071, 0x00ef,
+ 0x016a, 0x0146, 0x0121, 0x016b, 0x01ad, 0x01df,
+ 0x0214, 0x023c, 0x025f, 0x0211, 0x01a2, 0x01b6,
+ 0x01a5, 0x0184, 0x01e7, 0x01e6, 0x01d2, 0x0288,
+ 0x029e, 0x01da, 0x01b6, 0x01ec, 0x0206, 0x0244,
+ 0x0268, 0x029c, 0x02c8, 0x0270, 0x024b, 0x0296,
+ 0x026c, 0x01cd, 0x012d, 0x00c7, 0x00e6, 0x014f,
+ 0x01b6, 0x01d8, 0x015c, 0x00e6, 0x0108, 0x011d,
+ 0x0109, 0x0123, 0x0129, 0x012e, 0x0136, 0x00fb,
+ 0x0104, 0x0189, 0x01fd, 0x029f, 0x0391, 0x040c,
+ 0x0426, 0x0469, 0x045e, 0x03f8, 0x0439, 0x04c7,
+ 0x043c, 0x0337, 0x0324, 0x035d, 0x0304, 0x02a0,
+ 0x0265, 0x0220, 0x01d9, 0x0185, 0x015c, 0x0179,
+ 0x017f, 0x017e, 0x0184, 0x015a, 0x0141, 0x012e,
+ 0x00f1, 0x00e7, 0x00d3, 0x0069, 0x0014, 0xffb7,
+ 0xff58, 0xff72, 0xffc7, 0x0033, 0x00a8, 0x00da,
+ 0x0173, 0x0278, 0x02be, 0x0280, 0x0241, 0x01bb,
+ 0x016a, 0x014c, 0x00d2, 0x0091, 0x00c2, 0x00f4,
+ 0x0162, 0x0201, 0x0269, 0x0271, 0x0209, 0x0164,
+ 0x009d, 0x000b, 0x0038, 0x0067, 0x003d, 0x00f4,
+ 0x0230, 0x0284, 0x0273, 0x02b5, 0x02d5, 0x02a1,
+ 0x0244, 0x01a9, 0x00d3, 0x002e, 0x000c, 0x001a,
+ 0x003b, 0x0089, 0x00cd, 0x011f, 0x019b, 0x0208,
+ 0x0286, 0x02c8, 0x027f, 0x0268, 0x0298, 0x028d,
+ 0x02a8, 0x02da, 0x02b0, 0x0274, 0x0265, 0x028b,
+ 0x02cb, 0x02d2, 0x02e6, 0x0342, 0x037e, 0x0378,
+ 0x0357, 0x032a, 0x02e2, 0x0289, 0x02a8, 0x032c,
+ 0x0375, 0x03b9, 0x03df, 0x038e, 0x0374, 0x037e,
+ 0x030c, 0x02b3, 0x02bf, 0x02dd, 0x0305, 0x0314,
+ 0x032b, 0x036c, 0x0392, 0x03ae, 0x039a, 0x032c,
+ 0x02ae, 0x01ec, 0x010a, 0x006d, 0xffc4, 0xff88,
+ 0x0007, 0x0069, 0x00e2, 0x015c, 0x0130, 0x0160,
+ 0x01ae, 0x00e6, 0x005c, 0x0086, 0x004b, 0xffe0,
+ 0xff1e, 0xfe20, 0xfddc, 0xfda5, 0xfd30, 0xfd44,
+ 0xfd7b, 0xfdd8, 0xfe88, 0xfebc, 0xfeb2, 0xfecb,
+ 0xfed1, 0xff16, 0xff30, 0xfef0, 0xff3b, 0xffb9,
+ 0x0007, 0x0087, 0x00bb, 0x00b8, 0x00cc, 0x005f,
+ 0x0007, 0x003e, 0x0033, 0x004b, 0x00c4, 0x00af,
+ 0x0070, 0x0095, 0x00a5, 0x00b2, 0x00aa, 0x0047,
+ 0x003e, 0x0085, 0x0066, 0x006a, 0x00c7, 0x009d,
+ 0x0070, 0x0129, 0x01e4, 0x0213, 0x025b, 0x0281,
+ 0x022d, 0x01dc, 0x017c, 0x00e3, 0x0088, 0x006a,
+ 0x0047, 0x0037, 0x004e, 0x0095, 0x00fd, 0x0151,
+ 0x01a2, 0x020c, 0x024b, 0x020f, 0x01af, 0x01c3,
+ 0x0215, 0x0237, 0x023b, 0x01f9, 0x018d, 0x0184,
+ 0x01b9, 0x020d, 0x02a5, 0x02ff, 0x02e7, 0x02a1,
+ 0x0245, 0x020d, 0x01e0, 0x01bb, 0x021f, 0x0296,
+ 0x02b3, 0x0313, 0x036b, 0x034d, 0x0348, 0x0351,
+ 0x032d, 0x02e8, 0x023b, 0x0169, 0x00bd, 0x003b,
+ 0x0061, 0x00b1, 0x0091, 0x00eb, 0x0174, 0x012e,
+ 0x00e1, 0x00d0, 0x0095, 0x0096, 0x007d, 0x0015,
+ 0x0005, 0xffd6, 0xff5e, 0xff8e, 0x0005, 0x0013,
+ 0x0016, 0x0014, 0xffd3, 0xff86, 0xff3a, 0xfed1,
+ 0xfe6a, 0xfe4e, 0xfe97, 0xfef8, 0xff43, 0xffaf,
+ 0x003b, 0x0085, 0x0054, 0x000c, 0xffe7, 0xff6b,
+ 0xfecd, 0xfebd, 0xfed3, 0xfeba, 0xff0d, 0xff93,
+ 0xffcd, 0xffff, 0x0023, 0x0042, 0x00ad, 0x00c1,
+ 0x0045, 0x0023, 0x003d, 0x000e, 0x0002, 0xfffc,
+ 0xffc5, 0xffd8, 0xffc5, 0xff34, 0xfefb, 0xff1c,
+ 0xff2a, 0xff55, 0xff3b, 0xfee1, 0xff03, 0xff28,
+ 0xff17, 0xff88, 0xfffa, 0xffee, 0xffff, 0x0006,
+ 0xffe4, 0x0007, 0xffe7, 0xff37, 0xfec5, 0xfe96,
+ 0xfe3e, 0xfe1b, 0xfe6c, 0xfefb, 0xff9a, 0x0015,
+ 0x006e, 0x00cd, 0x00f7, 0x00cb, 0x00b5, 0x00ca,
+ 0x00b2, 0x00b3, 0x0100, 0x0120, 0x0146, 0x01dc,
+ 0x0245, 0x023d, 0x0214, 0x0190, 0x00e2, 0x00a9,
+ 0x0084, 0x001d, 0xffec, 0xffed, 0xffea, 0x0032,
+ 0x00ca, 0x0134, 0x0148, 0x0126, 0x00e3, 0x00af,
+ 0x0089, 0x0033, 0xffce, 0xff83, 0xff22, 0xfec2,
+ 0xfe71, 0xfdfc, 0xfdd0, 0xfdf1, 0xfd95, 0xfd50,
+ 0xfdf7, 0xfe86, 0xfe88, 0xfebf, 0xfef2, 0xfebf,
+ 0xfe7d, 0xfe39, 0xfe2c, 0xfea1, 0xff09, 0xff25,
+ 0xff65, 0xffba, 0xffc8, 0xff9b, 0xff66, 0xff4c,
+ 0xff4a, 0xff47, 0xff56, 0xff9e, 0x0015, 0x0058,
+ 0x002b, 0xffea, 0xffb8, 0xff7b, 0xff78, 0xff7e,
+ 0xff31, 0xff26, 0xff6b, 0xff2c, 0xfecb, 0xfefb,
+ 0xff36, 0xff33, 0xff20, 0xfeb7, 0xfe04, 0xfd82,
+ 0xfd56, 0xfd79, 0xfdc1, 0xfe03, 0xfe54, 0xfea5,
+ 0xfec9, 0xfede, 0xff23, 0xffab, 0x0019, 0x001c,
+ 0x002c, 0x008a, 0x009d, 0x004d, 0x000a, 0xffb4,
+ 0xff52, 0xff67, 0xffce, 0xfff0, 0xffe8, 0x0025,
+ 0x00ae, 0x014e, 0x01f0, 0x0288, 0x0305, 0x0331,
+ 0x02e2, 0x0266, 0x0204, 0x019d, 0x0153, 0x0156,
+ 0x0151, 0x0120, 0x0101, 0x00da, 0x0086, 0x0040,
+ 0x0038, 0x004c, 0x004b, 0x001a, 0xffba, 0xff47,
+ 0xfefd, 0xfef4, 0xfedf, 0xfe7a, 0xfe08, 0xfdf9,
+ 0xfe4d, 0xfeda, 0xffae, 0x0094, 0x012b, 0x016c,
+ 0x015a, 0x00e3, 0x005b, 0xffeb, 0xff69, 0xff16,
+ 0xff0b, 0xfed0, 0xfe7a, 0xfe81, 0xfea1, 0xfe79,
+ 0xfe4e, 0xfe3e, 0xfe0c, 0xfddf, 0xfe07, 0xfe60,
+ 0xfece, 0xff6d, 0x002e, 0x00c0, 0x00d3, 0x0094,
+ 0x006d, 0x0040, 0xffed, 0xffc0, 0xffad, 0xff84,
+ 0xff68, 0xff59, 0xff7b, 0x0006, 0x0092, 0x00cc,
+ 0x00be, 0x0051, 0xffba, 0xff43, 0xfecf, 0xfe50,
+ 0xfde8, 0xfdbf, 0xfde9, 0xfe16, 0xfe31, 0xfe66,
+ 0xfe7c, 0xfe79, 0xfea5, 0xfed3, 0xfef5, 0xff12,
+ 0xff13, 0xff4a, 0xff92, 0xff6c, 0xff48, 0xff7c,
+ 0xffad, 0xfff7, 0x005e, 0x0085, 0x0096, 0x00c1,
+ 0x00e2, 0x011b, 0x0197, 0x0235, 0x02b5, 0x02ef,
+ 0x02db, 0x0274, 0x01dd, 0x0150, 0x00c6, 0x005c,
+ 0x0060, 0x009f, 0x00a2, 0x006a, 0x0067, 0x00d1,
+ 0x015c, 0x01e3, 0x0259, 0x0245, 0x01b9, 0x0171,
+ 0x014f, 0x00eb, 0x0084, 0x001e, 0xff9f, 0xff59,
+ 0xff55, 0xff63, 0xffaf, 0x0027, 0x0046, 0x0006,
+ 0xffed, 0x0013, 0x002c, 0x0035, 0x0057, 0x0078,
+ 0x0062, 0x001d, 0xffe8, 0xffc9, 0xff9e, 0xff93,
+ 0xffa2, 0xff87, 0xff8a, 0xffef, 0x0057, 0x0099,
+ 0x00b8, 0x008d, 0x0042, 0x0003, 0xffb3, 0xff5c,
+ 0xff00, 0xfe86, 0xfe38, 0xfe5a, 0xfea8, 0xfeee,
+ 0xff65, 0xffe8, 0x0004, 0xfff7, 0x0019, 0x000e,
+ 0xffd0, 0xffe2, 0x0011, 0x0000, 0xffea, 0xffed,
+ 0xfff0, 0x0013, 0x0059, 0x00a9, 0x0101, 0x0123,
+ 0x00c9, 0x0048, 0xfff9, 0xff88, 0xfeea, 0xfe7d,
+ 0xfe2c, 0xfe1f, 0xfed7, 0xffc3, 0x0065, 0x013f,
+ 0x0216, 0x0242, 0x021d, 0x01e9, 0x017b, 0x0103,
+ 0x00c2, 0x00b5, 0x00ba, 0x00c2, 0x00fa, 0x0158,
+ 0x01a9, 0x01f8, 0x021f, 0x0221, 0x023b, 0x021a,
+ 0x01a2, 0x0178, 0x019c, 0x01a5, 0x01bc, 0x01e2,
+ 0x01e5, 0x01f8, 0x024d, 0x02c2, 0x02e8, 0x0275,
+ 0x01c1, 0x0141, 0x00f0, 0x00a6, 0x0063, 0x004b,
+ 0x0071, 0x00af, 0x0100, 0x016a, 0x0199, 0x0163,
+ 0x00eb, 0x0041, 0xff86, 0xfee5, 0xfe6d, 0xfe50,
+ 0xfe89, 0xfec9, 0xff34, 0xffe3, 0x0062, 0x0098,
+ 0x00b7, 0x00a1, 0x0070, 0x0062, 0x0062, 0x006b,
+ 0x006b, 0x0054, 0x0076, 0x00b7, 0x00b1, 0x00c0,
+ 0x0126, 0x0155, 0x012b, 0x00db, 0x006a, 0x001a,
+ 0x0007, 0xfffa, 0x000d, 0x004a, 0x0082, 0x00c2,
+ 0x00dd, 0x009c, 0x004c, 0x0009, 0xffb4, 0xff81,
+ 0xff61, 0xff16, 0xfee6, 0xfef7, 0xff2c, 0xff95,
+ 0x0015, 0x0086, 0x00f1, 0x0125, 0x00e8, 0x004f,
+ 0xff79, 0xfea7, 0xfe45, 0xfe4e, 0xfe6c, 0xfe6e,
+ 0xfe68, 0xfe92, 0xfeec, 0xff5f, 0xffe5, 0x0029,
+ 0x0004, 0xffc6, 0xff7d, 0xff20, 0xfef7, 0xfefb,
+ 0xfefa, 0xfefa, 0xfed8, 0xfea3, 0xfec0, 0xff23,
+ 0xff7a, 0xffbf, 0x000c, 0x0067, 0x00a0, 0x00a0,
+ 0x0091, 0x006b, 0x0012, 0xffb4, 0xff65, 0xff60,
+ 0xffd6, 0x0021, 0xffe4, 0xffc8, 0xfff5, 0xfff8,
+ 0x0016, 0x008e, 0x00d9, 0x00f9, 0x0160, 0x01a5,
+ 0x0180, 0x0191, 0x01c6, 0x0183, 0x0118, 0x00f0,
+ 0x00ec, 0x00fe, 0x00f1, 0x00b6, 0x00a8, 0x0087,
+ 0xfff5, 0xff6d, 0xff3e, 0xff3a, 0xff7d, 0x0006,
+ 0x007e, 0x00a5, 0x008f, 0x0087, 0x009e, 0x00cf,
+ 0x011d, 0x0131, 0x00f7, 0x00f0, 0x0111, 0x0110,
+ 0x0126, 0x013d, 0x0118, 0x00da, 0x006c, 0xffb8,
+ 0xff21, 0xfefd, 0xff4b, 0xffc9, 0x0039, 0x00ac,
+ 0x010f, 0x012f, 0x012e, 0x0111, 0x00d1, 0x00a3,
+ 0x006e, 0x000c, 0xffc1, 0xff81, 0xff14, 0xfec7,
+ 0xfecb, 0xfec4, 0xfe95, 0xfe8d, 0xfecb, 0xff35,
+ 0xffa1, 0xffd9, 0xffe9, 0xfff2, 0xffc6, 0xff4f,
+ 0xfedf, 0xfeae, 0xfed3, 0xff32, 0xff90, 0x0022,
+ 0x0102, 0x018e, 0x01a0, 0x01a8, 0x0197, 0x015d,
+ 0x0123, 0x00ba, 0x0018, 0xff64, 0xfeae, 0xfe32,
+ 0xfdec, 0xfdba, 0xfdea, 0xfe63, 0xfeb7, 0xff15,
+ 0xff8d, 0xffc3, 0xffce, 0xfff3, 0x0031, 0x005b,
+ 0x0041, 0x001e, 0x002e, 0x0023, 0x000f, 0x0031,
+ 0x002d, 0xffeb, 0xffd0, 0xffd8, 0xffdd, 0x0007,
+ 0x0081, 0x0130, 0x01c9, 0x023c, 0x0298, 0x0295,
+ 0x022c, 0x01bf, 0x016a, 0x0123, 0x00f9, 0x00eb,
+ 0x010b, 0x0138, 0x013c, 0x014b, 0x015e, 0x0132,
+ 0x0113, 0x0122, 0x010f, 0x0103, 0x012b, 0x013a,
+ 0x0131, 0x013c, 0x0134, 0x00f8, 0x0095, 0x0029,
+ 0xffc5, 0xff6c, 0xff29, 0xfef9, 0xfee0, 0xfeed,
+ 0xff08, 0xff2a, 0xff74, 0xffcc, 0xfffd, 0xfffc,
+ 0xffd5, 0xffc2, 0xffdd, 0xffda, 0xffac, 0xff86,
+ 0xff71, 0xff5d, 0xff2c, 0xfeef, 0xfee1, 0xfede,
+ 0xfed3, 0xff01, 0xff43, 0xff62, 0xff74, 0xff6e,
+ 0xff6e, 0xff98, 0xffb2, 0xffec, 0x0075, 0x00d8,
+ 0x0104, 0x0143, 0x0140, 0x00e1, 0x0098, 0x008e,
+ 0x007b, 0x003a, 0x001a, 0x0047, 0x006d, 0x0088,
+ 0x00c9, 0x00f0, 0x00ee, 0x00e4, 0x00ac, 0x005c,
+ 0x000b, 0xff97, 0xff37, 0xff15, 0xff1e, 0xff69,
+ 0xffd2, 0x001e, 0x006e, 0x00af, 0x00bc, 0x00c5,
+ 0x00b9, 0x006b, 0x000d, 0xffdb, 0xffe5, 0x000b,
+ 0x0026, 0x0056, 0x00aa, 0x00e3, 0x00df, 0x00c8,
+ 0x00d2, 0x00ec, 0x00f1, 0x00f7, 0x00e9, 0x0091,
+ 0x004f, 0x005f, 0x0060, 0x0054, 0x007f, 0x00b7,
+ 0x00ef, 0x013f, 0x017d, 0x0199, 0x01a7, 0x01ac,
+ 0x01ac, 0x0195, 0x0156, 0x0119, 0x00fe, 0x010e,
+ 0x0141, 0x015c, 0x014f, 0x0145, 0x0123, 0x00bb,
+ 0x0046, 0xfff0, 0xffa0, 0xff67, 0xff66, 0xff84,
+ 0xff9a, 0xff9d, 0xffa2, 0xffb8, 0xffc6, 0xffd2,
+ 0x0002, 0x0011, 0xffb6, 0xff60, 0xff74, 0xffb8,
+ 0xffed, 0x0001, 0xfff7, 0xffe4, 0xffe9, 0x001f,
+ 0x0050, 0x0025, 0xffdc, 0xffd0, 0xffeb, 0x0016,
+ 0x003c, 0x0039, 0x0035, 0x001d, 0xffaf, 0xff38,
+ 0xff0c, 0xff11, 0xff47, 0xff85, 0xff83, 0xff76,
+ 0xff75, 0xff52, 0xff2a, 0xff1d, 0xff1b, 0xff3c,
+ 0xff71, 0xff96, 0xffd0, 0x002d, 0x005d, 0x002b,
+ 0xffd1, 0xff98, 0xff83, 0xff68, 0xff42, 0xff1f,
+ 0xfefa, 0xfec9, 0xfe9c, 0xfe9c, 0xfee7, 0xff68,
+ 0xffed, 0x0060, 0x00af, 0x00cb, 0x00cf, 0x00d4,
+ 0x00dd, 0x00df, 0x00af, 0x0062, 0x0050, 0x0059,
+ 0x003a, 0x0026, 0x002f, 0x0024, 0x000e, 0xfff1,
+ 0xffd9, 0xffe6, 0xffd0, 0xff84, 0xff6e, 0xff9d,
+ 0xffed, 0x0057, 0x00a6, 0x00db, 0x0121, 0x0159,
+ 0x0183, 0x0192, 0x014a, 0x00e2, 0x00a6, 0x008c,
+ 0x0093, 0x0089, 0x0048, 0x001d, 0x0030, 0x0070,
+ 0x00d3, 0x0117, 0x0141, 0x018f, 0x01c5, 0x01cf,
+ 0x01fc, 0x0228, 0x0207, 0x01b8, 0x0177, 0x0157,
+ 0x0146, 0x012f, 0x010e, 0x00e4, 0x00c3, 0x00b9,
+ 0x00c1, 0x00f1, 0x012c, 0x0122, 0x00ee, 0x00c2,
+ 0x007d, 0x002e, 0x0008, 0x0001, 0x0000, 0xfff6,
+ 0xffe8, 0xfff7, 0x0036, 0x00a2, 0x0117, 0x015a,
+ 0x0173, 0x01a1, 0x01cb, 0x019a, 0x0133, 0x00eb,
+ 0x00aa, 0x0042, 0xffcc, 0xff3b, 0xfe8f, 0xfe2b,
+ 0xfe42, 0xfeab, 0xff43, 0xffca, 0xfff6, 0xfff4,
+ 0x0018, 0x004e, 0x003f, 0xfff4, 0xffba, 0xff8e,
+ 0xff5a, 0xff3e, 0xff40, 0xff5c, 0xff75, 0xff45,
+ 0xff07, 0xff13, 0xff34, 0xff6d, 0xffea, 0x0070,
+ 0x00e8, 0x0125, 0x00df, 0x0083, 0x0072, 0x0082,
+ 0x00b6, 0x00f7, 0x0109, 0x0110, 0x0117, 0x0120,
+ 0x0147, 0x0143, 0x00f1, 0x00a1, 0x0049, 0xfff5,
+ 0x0004, 0x005d, 0x00ac, 0x00c8, 0x009e, 0x0069,
+ 0x004b, 0x0022, 0x0015, 0x003a, 0x005e, 0x0094,
+ 0x00f3, 0x0153, 0x019d, 0x01c5, 0x01c2, 0x0186,
+ 0x00fc, 0x004c, 0xffc3, 0xff7e, 0xff84, 0xffc6,
+ 0x0019, 0x0072, 0x00cb, 0x0111, 0x0142, 0x0140,
+ 0x00da, 0x0042, 0xffda, 0xffaa, 0xffa4, 0xffd8,
+ 0x001a, 0x0028, 0x0005, 0xffc3, 0xff6e, 0xff46,
+ 0xff58, 0xff78, 0xffb3, 0xffff, 0x003e, 0x009e,
+ 0x0129, 0x0197, 0x01be, 0x0193, 0x0117, 0x006e,
+ 0xffd3, 0xff7e, 0xff7a, 0xffa8, 0x000b, 0x0095,
+ 0x0115, 0x0188, 0x01d9, 0x01ea, 0x01cc, 0x0170,
+ 0x00d4, 0x0051, 0xfffd, 0xffb4, 0xffb9, 0x0017,
+ 0x0062, 0x0064, 0x0021, 0xffb4, 0xff7b, 0xffa1,
+ 0xffd7, 0xffe7, 0xffdc, 0xffb7, 0xff8e, 0xff6d,
+ 0xff37, 0xfef3, 0xfecc, 0xfeb3, 0xfe8b, 0xfe79,
+ 0xfeb7, 0xff33, 0xffb3, 0x0028, 0x007a, 0x005f,
+ 0xffe9, 0xff7d, 0xff37, 0xff1c, 0xff29, 0xff1b,
+ 0xfee5, 0xfedb, 0xff27, 0xffa0, 0xfff9, 0x0018,
+ 0x0024, 0x0019, 0x0000, 0x001c, 0x0066, 0x00c2,
+ 0x0147, 0x01ac, 0x01c1, 0x01cc, 0x01c1, 0x0170,
+ 0x010a, 0x00b0, 0x0076, 0x0070, 0x006f, 0x0044,
+ 0x0008, 0xfff3, 0x0012, 0x0042, 0x006d, 0x008e,
+ 0x0071, 0x0029, 0x0008, 0x0011, 0x002f, 0x0064,
+ 0x0083, 0x0082, 0x0089, 0x00a5, 0x00c9, 0x00e8,
+ 0x0110, 0x013a, 0x0138, 0x0113, 0x00e6, 0x0096,
+ 0x004d, 0x0020, 0xffca, 0xff76, 0xff8f, 0xfff9,
+ 0x006c, 0x00cb, 0x011e, 0x018a, 0x01d1, 0x01c1,
+ 0x01b1, 0x0196, 0x0118, 0x0091, 0x005b, 0x0045,
+ 0x0032, 0x003c, 0x0064, 0x009f, 0x00de, 0x0104,
+ 0x00fe, 0x00d6, 0x009f, 0x0065, 0x003c, 0x002e,
+ 0x002d, 0x002f, 0x0024, 0x0003, 0xffe6, 0xffcb,
+ 0xffac, 0xffa0, 0xffa8, 0xffbc, 0xffd3, 0xffc1,
+ 0xff8b, 0xff5c, 0xff1f, 0xfee9, 0xfedd, 0xfea9,
+ 0xfe33, 0xfdf7, 0xfe18, 0xfe53, 0xfe98, 0xfedc,
+ 0xfeee, 0xfed5, 0xfeb1, 0xfe73, 0xfe2a, 0xfe08,
+ 0xfe15, 0xfe55, 0xfec1, 0xff1e, 0xff76, 0xfffe,
+ 0x0075, 0x009e, 0x00aa, 0x0091, 0x0023, 0xff8f,
+ 0xfeff, 0xfe8b, 0xfe5f, 0xfe80, 0xfefd, 0xffea,
+ 0x00e2, 0x017b, 0x01e3, 0x0241, 0x025b, 0x021a,
+ 0x01b9, 0x0163, 0x0117, 0x00d2, 0x0099, 0x006c,
+ 0x0050, 0x004b, 0x005e, 0x0071, 0x005b, 0x0036,
+ 0x004b, 0x00a5, 0x0136, 0x01f0, 0x028c, 0x02d8,
+ 0x02f0, 0x02dd, 0x02a7, 0x027c, 0x0255, 0x021d,
+ 0x01d8, 0x0175, 0x00f5, 0x008a, 0x0055, 0x0049,
+ 0x0048, 0x0039, 0x001f, 0xffff, 0xffd5, 0xffc1,
+ 0xffe1, 0x0033, 0x00af, 0x0133, 0x0176, 0x0132,
+ 0x0073, 0xff9f, 0xff13, 0xfee2, 0xff01, 0xff62,
+ 0xffc4, 0xffee, 0xfff1, 0xffd8, 0xff93, 0xff25,
+ 0xfe9d, 0xfe22, 0xfe16, 0xfe8f, 0xff2a, 0xffae,
+ 0x0013, 0x0039, 0x002f, 0x0029, 0x0026, 0x0020,
+ 0x0012, 0xffeb, 0xffd9, 0xfff7, 0x0006, 0x000e,
+ 0x003e, 0x0079, 0x00b6, 0x00fa, 0x00fe, 0x00af,
+ 0x0061, 0x0041, 0x002c, 0x000a, 0xfffe, 0x0016,
+ 0x0030, 0x003b, 0x0031, 0xfff0, 0xff99, 0xff73,
+ 0xff70, 0xff97, 0xfff5, 0x0046, 0x0070, 0x008b,
+ 0x007d, 0x0031, 0xffc1, 0xff43, 0xfec9, 0xfe70,
+ 0xfe57, 0xfe7a, 0xfe9c, 0xfec0, 0xff0a, 0xff58,
+ 0xffd4, 0x00ab, 0x0176, 0x01fe, 0x0268, 0x0271,
+ 0x01f9, 0x016a, 0x0103, 0x00c6, 0x00cb, 0x00fe,
+ 0x0136, 0x0168, 0x0187, 0x0178, 0x0142, 0x0117,
+ 0x011d, 0x0157, 0x01a7, 0x01dc, 0x020c, 0x0256,
+ 0x0286, 0x0299, 0x02cf, 0x030c, 0x0324, 0x031b,
+ 0x02de, 0x028c, 0x0246, 0x01df, 0x0153, 0x00af,
+ 0xffea, 0xff59, 0xff4c, 0xffa1, 0x0035, 0x00e0,
+ 0x0166, 0x01ab, 0x01a2, 0x0165, 0x010e, 0x0088,
+ 0x0009, 0xffce, 0xff9e, 0xff7b, 0xff88, 0xff87,
+ 0xff71, 0xff62, 0xff2b, 0xfed3, 0xfe84, 0xfe3b,
+ 0xfe05, 0xfded, 0xfdfd, 0xfe59, 0xfedc, 0xff5c,
+ 0xffe5, 0x0054, 0x0085, 0x007c, 0x002a, 0xffb7,
+ 0xff7b, 0xff89, 0xffd0, 0x0040, 0x009c, 0x00b1,
+ 0x0091, 0x0064, 0x0033, 0xfff1, 0xffad, 0xff87,
+ 0xff76, 0xff6a, 0xff5a, 0xff2f, 0xfed7, 0xfe67,
+ 0xfe06, 0xfdd3, 0xfdef, 0xfe6f, 0xff0a, 0xff65,
+ 0xff9b, 0xffd9, 0xfffa, 0xffe2, 0xff9f, 0xff5b,
+ 0xff4f, 0xff7f, 0xffc2, 0xfff3, 0x0009, 0x0032,
+ 0x0072, 0x0086, 0x0082, 0x008e, 0x0082, 0x0073,
+ 0x008a, 0x00aa, 0x00cf, 0x00e1, 0x00bf, 0x00ba,
+ 0x00ee, 0x0100, 0x00e7, 0x00c1, 0x0088, 0x0068,
+ 0x007a, 0x009f, 0x00e0, 0x0135, 0x016f, 0x0188,
+ 0x017e, 0x013a, 0x00bc, 0x0015, 0xff87, 0xff63,
+ 0xffa1, 0xfff7, 0x002d, 0x0025, 0xfffc, 0xffef,
+ 0xfff1, 0xffea, 0x0000, 0x0026, 0x0033, 0x0041,
+ 0x0068, 0x009d, 0x00d5, 0x00fb, 0x00fd, 0x00cf,
+ 0x006e, 0x000e, 0xffda, 0xffb2, 0xffa4, 0xffe8,
+ 0x007a, 0x012f, 0x01b0, 0x01b5, 0x0165, 0x010f,
+ 0x00d4, 0x00b7, 0x0095, 0x005e, 0x0030, 0x0027,
+ 0x006e, 0x00fc, 0x0167, 0x018a, 0x018d, 0x0168,
+ 0x0117, 0x00c2, 0x008b, 0x0073, 0x0051, 0x0024,
+ 0x0025, 0x0045, 0x0071, 0x00b5, 0x00db, 0x00c5,
+ 0x0098, 0x0042, 0xffcd, 0xff55, 0xfeb8, 0xfe26,
+ 0xfdf5, 0xfde9, 0xfdcf, 0xfdd6, 0xfdfc, 0xfe39,
+ 0xfe94, 0xfeee, 0xff50, 0xffcc, 0x001f, 0x002e,
+ 0x0013, 0xffd9, 0xffb4, 0xffc7, 0xffd5, 0xffc6,
+ 0xffac, 0xff7c, 0xff49, 0xff3e, 0xff3d, 0xff27,
+ 0xff0f, 0xff0d, 0xff21, 0xff42, 0xff81, 0xfff3,
+ 0x0065, 0x00b4, 0x00fd, 0x0138, 0x0151, 0x0167,
+ 0x0164, 0x0122, 0x00c5, 0x006b, 0x0014, 0xffcf,
+ 0xff93, 0xff59, 0xff40, 0xff67, 0xffdd, 0x007d,
+ 0x00fc, 0x011c, 0x00e7, 0x0099, 0x005d, 0x0036,
+ 0x003a, 0x006b, 0x008b, 0x008f, 0x0098, 0x009a,
+ 0x0088, 0x005e, 0x000a, 0xff9c, 0xff2b, 0xfeca,
+ 0xfe88, 0xfe64, 0xfe7c, 0xfee6, 0xff52, 0xff80,
+ 0xff78, 0xff39, 0xfee3, 0xfeaa, 0xfea1, 0xfece,
+ 0xff0b, 0xff10, 0xfee8, 0xfeb6, 0xfe92, 0xfe9d,
+ 0xfec3, 0xfef3, 0xff3b, 0xff74, 0xff82, 0xff66,
+ 0xff05, 0xfe7e, 0xfe11, 0xfdcc, 0xfdbd, 0xfdda,
+ 0xfdfa, 0xfe2b, 0xfe64, 0xfe78, 0xfe6c, 0xfe42,
+ 0xfe03, 0xfdd0, 0xfd96, 0xfd4f, 0xfd39, 0xfd57,
+ 0xfd80, 0xfda8, 0xfde1, 0xfe38, 0xfe7d, 0xfe9a,
+ 0xfebe, 0xfed9, 0xfed2, 0xfecc, 0xfebd, 0xfeac,
+ 0xfec9, 0xff05, 0xff4e, 0xff95, 0xffa2, 0xff8e,
+ 0xff8d, 0xff7d, 0xff7d, 0xffc7, 0x0029, 0x006d,
+ 0x0084, 0x0070, 0x004c, 0x0023, 0xfff6, 0xffcd,
+ 0xffa9, 0xffa7, 0xffda, 0x0013, 0x001f, 0xfffd,
+ 0xffbe, 0xff75, 0xff36, 0xff41, 0xffb8, 0x005e,
+ 0x00fb, 0x015f, 0x0159, 0x0121, 0x00ee, 0x008f,
+ 0x0001, 0xff71, 0xfef7, 0xfeb3, 0xfe9b, 0xfea3,
+ 0xfee1, 0xff26, 0xff5a, 0xffab, 0xfffc, 0x0023,
+ 0x0030, 0x0017, 0xffcf, 0xff66, 0xfef6, 0xfeb8,
+ 0xfea0, 0xfe7c, 0xfe71, 0xfe78, 0xfe6b, 0xfe6a,
+ 0xfe79, 0xfe7a, 0xfe89, 0xfeac, 0xfedb, 0xff04,
+ 0xfefb, 0xfed2, 0xfea0, 0xfe5d, 0xfe3e, 0xfe47,
+ 0xfe40, 0xfe41, 0xfe59, 0xfe80, 0xfed1, 0xff32,
+ 0xff96, 0x000e, 0x0053, 0x004b, 0x0030, 0xfff4,
+ 0xff98, 0xff37, 0xfeb3, 0xfe2c, 0xfdd0, 0xfd92,
+ 0xfda6, 0xfe24, 0xfebf, 0xff3f, 0xff77, 0xff5c,
+ 0xff23, 0xfec3, 0xfe24, 0xfd71, 0xfcc8, 0xfc64,
+ 0xfc7a, 0xfcd4, 0xfd48, 0xfdb4, 0xfdc4, 0xfda2,
+ 0xfdae, 0xfdd9, 0xfe1c, 0xfe7a, 0xfebe, 0xfef7,
+ 0xff47, 0xff85, 0xff9a, 0xff8c, 0xff57, 0xff02,
+ 0xfeaa, 0xfe7f, 0xfe87, 0xfe9f, 0xfebd, 0xfed9,
+ 0xfee9, 0xff02, 0xff18, 0xff17, 0xff18, 0xff2f,
+ 0xff65, 0xffac, 0xffd0, 0xffc6, 0xff9d, 0xff4f,
+ 0xfef5, 0xfebc, 0xfeb0, 0xfed3, 0xfefc, 0xff0a,
+ 0xff22, 0xff50, 0xff95, 0xffec, 0x0010, 0x0002,
+ 0x0000, 0xffe4, 0xffa8, 0xff82, 0xff66, 0xff6c,
+ 0xffc6, 0x003f, 0x00cd, 0x016c, 0x01c0, 0x01b7,
+ 0x018d, 0x0146, 0x00f1, 0x0095, 0x0021, 0xffbb,
+ 0xff7b, 0xff5b, 0xff6c, 0xff92, 0xffb1, 0xffed,
+ 0x0027, 0x0031, 0x0027, 0x0015, 0x0007, 0x0015,
+ 0x000f, 0xffce, 0xff6e, 0xff00, 0xfea5, 0xfe7b,
+ 0xfe7d, 0xfebc, 0xff1a, 0xff20, 0xfec9, 0xfe7b,
+ 0xfe4c, 0xfe3d, 0xfe72, 0xfee6, 0xff7f, 0x0026,
+ 0x00a5, 0x00e5, 0x00e6, 0x009d, 0x0031, 0xffd0,
+ 0xff65, 0xff01, 0xfed3, 0xfed5, 0xff02, 0xff52,
+ 0xff90, 0xffb2, 0xffc2, 0xffa1, 0xff5a, 0xff1d,
+ 0xfeea, 0xfebf, 0xfeac, 0xfec2, 0xff0f, 0xff6e,
+ 0xffad, 0xffd1, 0xfff3, 0x002b, 0x0081, 0x00c3,
+ 0x00dd, 0x00ea, 0x00db, 0x00af, 0x0097, 0x0093,
+ 0x0089, 0x007c, 0x0080, 0x009e, 0x00bd, 0x00c6,
+ 0x00c9, 0x00df, 0x010f, 0x0152, 0x0178, 0x016a,
+ 0x013b, 0x00f6, 0x00b4, 0x0086, 0x0057, 0x003e,
+ 0x0050, 0x0066, 0x0086, 0x00c3, 0x00f2, 0x0109,
+ 0x0136, 0x0177, 0x01a5, 0x01a0, 0x016f, 0x012d,
+ 0x00d6, 0x0074, 0x0040, 0x0041, 0x0050, 0x0074,
+ 0x00b8, 0x00f9, 0x012c, 0x0158, 0x0175, 0x0178,
+ 0x0165, 0x0142, 0x0125, 0x011e, 0x011c, 0x011f,
+ 0x0139, 0x0154, 0x0145, 0x0103, 0x00af, 0x0068,
+ 0x0029, 0xffed, 0xffb8, 0xff99, 0xff9d, 0xffb3,
+ 0xffbe, 0xffcc, 0xffec, 0xfffc, 0xffe9, 0xffc2,
+ 0xff9f, 0xff92, 0xff92, 0xff9f, 0xffcf, 0x000a,
+ 0x002d, 0x0039, 0x002b, 0x0018, 0x002e, 0x005f,
+ 0x007c, 0x0085, 0x0083, 0x006e, 0x003c, 0x0000,
+ 0xffda, 0xffc5, 0xffbe, 0xffc9, 0xffc8, 0xffca,
+ 0xfff8, 0x001f, 0x0023, 0x0037, 0x0060, 0x0072,
+ 0x005d, 0x001c, 0xffd0, 0xffa4, 0xffa1, 0xffca,
+ 0x001e, 0x008a, 0x00fb, 0x0159, 0x0197, 0x01b9,
+ 0x01b5, 0x018f, 0x0173, 0x0176, 0x0183, 0x0174,
+ 0x0139, 0x0102, 0x0111, 0x0158, 0x01b1, 0x0218,
+ 0x026d, 0x026e, 0x021a, 0x01a1, 0x0120, 0x00cb,
+ 0x00c6, 0x00de, 0x00fd, 0x014a, 0x01b9, 0x022e,
+ 0x0292, 0x02aa, 0x026a, 0x01f8, 0x0174, 0x011e,
+ 0x0126, 0x014a, 0x0162, 0x017f, 0x0186, 0x0158,
+ 0x0107, 0x00c8, 0x00d5, 0x0121, 0x0175, 0x01a9,
+ 0x019f, 0x0168, 0x0145, 0x013b, 0x0135, 0x0141,
+ 0x014f, 0x0139, 0x010c, 0x00d8, 0x00a8, 0x009e,
+ 0x00b2, 0x00bd, 0x00b2, 0x0091, 0x0054, 0x000b,
+ 0xffc2, 0xff7f, 0xff64, 0xff8b, 0xffcb, 0xffff,
+ 0x003b, 0x0087, 0x00c0, 0x00d5, 0x00b4, 0x0050,
+ 0xffe0, 0xff94, 0xff6b, 0xff70, 0xff99, 0xffba,
+ 0xffda, 0x000d, 0x0033, 0x003b, 0x0041, 0x0062,
+ 0x00ac, 0x0109, 0x015d, 0x01aa, 0x01eb, 0x0226,
+ 0x0265, 0x0283, 0x0276, 0x026b, 0x025d, 0x0231,
+ 0x0205, 0x01e8, 0x01d4, 0x01c3, 0x019f, 0x0170,
+ 0x0158, 0x0167, 0x01b3, 0x0233, 0x02b2, 0x031c,
+ 0x035a, 0x033c, 0x02d1, 0x022d, 0x0160, 0x00b5,
+ 0x0057, 0x0029, 0x0039, 0x0096, 0x0106, 0x0161,
+ 0x01a0, 0x01bc, 0x01ca, 0x01d5, 0x01c2, 0x0197,
+ 0x0164, 0x0115, 0x00c7, 0x00b3, 0x00d2, 0x0111,
+ 0x0158, 0x0175, 0x015a, 0x0126, 0x00f1, 0x00d3,
+ 0x00c9, 0x00ba, 0x00a5, 0x007b, 0x0031, 0xffed,
+ 0xffb5, 0xff79, 0xff69, 0xffad, 0x001f, 0x0096,
+ 0x0106, 0x0168, 0x01a3, 0x01a9, 0x0183, 0x0140,
+ 0x00e6, 0x0092, 0x0066, 0x0067, 0x0087, 0x00c0,
+ 0x010a, 0x0155, 0x0192, 0x01b0, 0x01a6, 0x0187,
+ 0x016f, 0x0156, 0x0130, 0x0100, 0x00b0, 0x002c,
+ 0xffa4, 0xff56, 0xff4c, 0xff66, 0xff8f, 0xffb2,
+ 0xffaf, 0xff81, 0xff48, 0xff16, 0xfef1, 0xfee2,
+ 0xfee3, 0xfeee, 0xff07, 0xff30, 0xff58, 0xff7f,
+ 0xffc3, 0x002b, 0x009e, 0x010c, 0x0155, 0x016c,
+ 0x018b, 0x01a6, 0x0173, 0x011b, 0x00e1, 0x00bd,
+ 0x00bd, 0x00d0, 0x00b6, 0x0078, 0x003a, 0x000a,
+ 0x0007, 0x0047, 0x00b2, 0x010c, 0x0125, 0x010c,
+ 0x00d8, 0x0096, 0x006d, 0x005b, 0x0041, 0x001f,
+ 0xffed, 0xffac, 0xff7c, 0xff54, 0xff35, 0xff37,
+ 0xff56, 0xff96, 0xffea, 0x0024, 0x0054, 0x008a,
+ 0x00a1, 0x0094, 0x0059, 0xfffc, 0xffb7, 0xff92,
+ 0xff78, 0xff86, 0xffa7, 0xffa0, 0xff84, 0xff7b,
+ 0xff90, 0xffb3, 0xffe2, 0x0039, 0x00af, 0x0117,
+ 0x0168, 0x018f, 0x017a, 0x0143, 0x00ef, 0x0091,
+ 0x0076, 0x00ae, 0x00ef, 0x0109, 0x0110, 0x0129,
+ 0x015b, 0x019a, 0x01da, 0x0211, 0x0237, 0x0233,
+ 0x01ff, 0x01cf, 0x01c0, 0x01ce, 0x01eb, 0x01ec,
+ 0x01ca, 0x01ab, 0x017b, 0x011f, 0x00a6, 0x001e,
+ 0xffc1, 0xffb8, 0xffca, 0xffeb, 0x0029, 0x003e,
+ 0x0019, 0xffff, 0xfff2, 0xffe1, 0xffdf, 0xffef,
+ 0xfffc, 0xfffd, 0x0006, 0x0003, 0xffbf, 0xff62,
+ 0xff20, 0xfecc, 0xfe6b, 0xfe27, 0xfde7, 0xfdc3,
+ 0xfdec, 0xfe47, 0xfec4, 0xff62, 0xffe4, 0x0024,
+ 0x0046, 0x0061, 0x0070, 0x007a, 0x0076, 0x0041,
+ 0xffd8, 0xff82, 0xff75, 0xff94, 0xffbc, 0xffe8,
+ 0x000c, 0x0026, 0x0037, 0x0044, 0x0060, 0x008a,
+ 0x00a0, 0x0093, 0x0073, 0x004b, 0x0022, 0xfff6,
+ 0xffad, 0xff58, 0xff20, 0xfef5, 0xfecd, 0xfec1,
+ 0xfec9, 0xfee9, 0xff2a, 0xff67, 0xff8c, 0xff98,
+ 0xff76, 0xff38, 0xff06, 0xfee0, 0xfec9, 0xfec6,
+ 0xfed4, 0xff0c, 0xff62, 0xff98, 0xffa2, 0xff94,
+ 0xff79, 0xff6d, 0xff7c, 0xff8a, 0xff88, 0xff87,
+ 0xff94, 0xff9a, 0xff86, 0xff68, 0xff3d, 0xfefe,
+ 0xfecc, 0xfebf, 0xfed1, 0xff04, 0xff50, 0xff9a,
+ 0xffce, 0xffef, 0x0000, 0xfff8, 0xffdf, 0xffd5,
+ 0xffe2, 0xfff1, 0xffd8, 0xff7c, 0xff08, 0xfeae,
+ 0xfe60, 0xfe1a, 0xfdee, 0xfdd0, 0xfdb7, 0xfda9,
+ 0xfdaa, 0xfddd, 0xfe4c, 0xfeb2, 0xfeef, 0xff24,
+ 0xff51, 0xff71, 0xff8e, 0xff89, 0xff43, 0xfeee,
+ 0xfec9, 0xfed9, 0xff06, 0xff30, 0xff2e, 0xfef5,
+ 0xfea7, 0xfe5d, 0xfe1e, 0xfe00, 0xfe0e, 0xfe40,
+ 0xfe94, 0xfef6, 0xff37, 0xff62, 0xff98, 0xffaa,
+ 0xff8c, 0xff96, 0xffd5, 0xfffd, 0x000a, 0x000b,
+ 0xffe1, 0xffaf, 0xffb5, 0xffe1, 0x001b, 0x005d,
+ 0x008c, 0x00a3, 0x00ac, 0x0097, 0x006e, 0x004d,
+ 0x001f, 0xffed, 0xffeb, 0x001a, 0x005b, 0x00a3,
+ 0x00e1, 0x0101, 0x00ec, 0x0096, 0x0012, 0xff7d,
+ 0xfef7, 0xfea5, 0xfe75, 0xfe56, 0xfe55, 0xfe51,
+ 0xfe39, 0xfe3b, 0xfe4b, 0xfe63, 0xfe91, 0xfe9b,
+ 0xfe6e, 0xfe43, 0xfe18, 0xfdf2, 0xfdec, 0xfde8,
+ 0xfde4, 0xfdec, 0xfde8, 0xfdf8, 0xfe3a, 0xfe8e,
+ 0xfeff, 0xff89, 0xfffb, 0x0049, 0x006b, 0x0051,
+ 0x0022, 0xfffc, 0xffe9, 0x0001, 0x0044, 0x0099,
+ 0x00c9, 0x00a5, 0x004f, 0xfff2, 0xff9d, 0xff7a,
+ 0xff82, 0xff82, 0xff71, 0xff52, 0xff17, 0xfec5,
+ 0xfe77, 0xfe32, 0xfddf, 0xfd9c, 0xfdab, 0xfdfd,
+ 0xfe69, 0xfef5, 0xff73, 0xffa7, 0xffaa, 0xff9c,
+ 0xff85, 0xff7d, 0xff86, 0xff92, 0xff88, 0xff42,
+ 0xfed0, 0xfe53, 0xfdd2, 0xfd5d, 0xfd07, 0xfcec,
+ 0xfd31, 0xfdb1, 0xfe22, 0xfe59, 0xfe4b, 0xfe1c,
+ 0xfdf8, 0xfdda, 0xfdb5, 0xfd93, 0xfd81, 0xfd96,
+ 0xfdc0, 0xfdda, 0xfdde, 0xfddc, 0xfde4, 0xfdf5,
+ 0xfe0c, 0xfe2a, 0xfe4d, 0xfe7a, 0xfec6, 0xff16,
+ 0xff4e, 0xff8b, 0xffcb, 0xfff3, 0x0002, 0xfff7,
+ 0xffd5, 0xffb4, 0xff8b, 0xff6a, 0xff73, 0xff9d,
+ 0xffca, 0xffe8, 0xffdc, 0xff9e, 0xff4a, 0xff02,
+ 0xfebe, 0xfe66, 0xfe04, 0xfdb5, 0xfd87, 0xfd78,
+ 0xfd86, 0xfda4, 0xfdc1, 0xfdd2, 0xfddb, 0xfde7,
+ 0xfe09, 0xfe4d, 0xfe8c, 0xfea1, 0xfea3, 0xfe8d,
+ 0xfe40, 0xfde8, 0xfdc8, 0xfdff, 0xfe94, 0xff4f,
+ 0xffe2, 0x0030, 0x0042, 0x0042, 0x005b, 0x0081,
+ 0x00ab, 0x00e2, 0x0109, 0x0107, 0x00ed, 0x00cc,
+ 0x00b3, 0x00b4, 0x00d5, 0x0117, 0x0155, 0x015d,
+ 0x012a, 0x00dd, 0x0090, 0x0056, 0x0040, 0x0041,
+ 0x003f, 0x003f, 0x0043, 0x0043, 0x0050, 0x0066,
+ 0x0063, 0x0052, 0x0043, 0x0030, 0x0025, 0x000d,
+ 0xffce, 0xff8a, 0xff50, 0xff1b, 0xff09, 0xff19,
+ 0xff33, 0xff49, 0xff2e, 0xfed3, 0xfe61, 0xfdf8,
+ 0xfdb6, 0xfdb5, 0xfddf, 0xfe0e, 0xfe39, 0xfe6a,
+ 0xfeb1, 0xff18, 0xff97, 0xfffd, 0x000f, 0xffe8,
+ 0xffbe, 0xff95, 0xff6e, 0xff5b, 0xff40, 0xff14,
+ 0xfef7, 0xfee9, 0xfed8, 0xfed6, 0xfefc, 0xff28,
+ 0xff26, 0xfefa, 0xfebb, 0xfe78, 0xfe58, 0xfe70,
+ 0xfebd, 0xff47, 0xffd9, 0x0021, 0x0029, 0x000a,
+ 0xffc9, 0xff8a, 0xff5f, 0xff48, 0xff4e, 0xff48,
+ 0xff12, 0xfed1, 0xfe8e, 0xfe3a, 0xfdf4, 0xfdcc,
+ 0xfdc7, 0xfdff, 0xfe5f, 0xfec1, 0xff2e, 0xff98,
+ 0xffd7, 0xffee, 0xffec, 0xffd8, 0xffca, 0xffdf,
+ 0x0031, 0x00c1, 0x0147, 0x0177, 0x014a, 0x00f2,
+ 0x00a5, 0x007a, 0x0065, 0x0050, 0x003a, 0x002e,
+ 0x0032, 0x003d, 0x0053, 0x0088, 0x00c6, 0x00e8,
+ 0x00eb, 0x00db, 0x00be, 0x008e, 0x003a, 0xffb9,
+ 0xff2d, 0xfece, 0xfeb5, 0xfec0, 0xfed0, 0xfeee,
+ 0xff2d, 0xff74, 0xffa7, 0xffbf, 0xffb0, 0xff64,
+ 0xfef0, 0xfe77, 0xfdfe, 0xfd81, 0xfd26, 0xfd18,
+ 0xfd5c, 0xfdc7, 0xfe1b, 0xfe1f, 0xfddd, 0xfd94,
+ 0xfd5c, 0xfd28, 0xfd0d, 0xfd1d, 0xfd3f, 0xfd7c,
+ 0xfddd, 0xfe45, 0xfeac, 0xff09, 0xff40, 0xff6f,
+ 0xffa9, 0xffc7, 0xffbf, 0xff7f, 0xfefa, 0xfe7f,
+ 0xfe51, 0xfe62, 0xfe97, 0xfebc, 0xfeb8, 0xfebf,
+ 0xfed6, 0xfef1, 0xff34, 0xff8a, 0xffbd, 0xffe2,
+ 0x0002, 0x0012, 0x0020, 0x0022, 0x0009, 0xffdd,
+ 0xff9d, 0xff41, 0xfedd, 0xfe9f, 0xfeaa, 0xfedf,
+ 0xff12, 0xff36, 0xff3c, 0xff27, 0xff1d, 0xff2d,
+ 0xff53, 0xff86, 0xffa7, 0xffb5, 0xffc5, 0xffd1,
+ 0xffc8, 0xffb8, 0xff92, 0xff4f, 0xff1c, 0xff1a,
+ 0xff36, 0xff69, 0xffaf, 0xffe2, 0x0008, 0x005b,
+ 0x00ce, 0x012e, 0x0173, 0x018b, 0x015c, 0x0108,
+ 0x00bb, 0x0072, 0x003d, 0x0042, 0x0076, 0x00c4,
+ 0x012c, 0x018f, 0x01d2, 0x0203, 0x021a, 0x01ff,
+ 0x01bf, 0x016b, 0x011b, 0x00f5, 0x00f5, 0x00f6,
+ 0x00e6, 0x00bd, 0x008b, 0x006b, 0x0052, 0x0046,
+ 0x0045, 0x0027, 0xffef, 0xffbb, 0xff96, 0xff9b,
+ 0xffc1, 0xffd1, 0xffcd, 0xffc6, 0xffa7, 0xff91,
+ 0xffab, 0xffc3, 0xff9e, 0xff48, 0xfef6, 0xfec8,
+ 0xfebd, 0xfedd, 0xff1b, 0xff60, 0xffaa, 0xffdb,
+ 0xffd1, 0xffb3, 0xffa7, 0xffa3, 0xff91, 0xff55,
+ 0xfef5, 0xfe91, 0xfe3d, 0xfe17, 0xfe36, 0xfe77,
+ 0xfec1, 0xff0d, 0xff4d, 0xff85, 0xff9c, 0xff7e,
+ 0xff58, 0xff28, 0xfed7, 0xfe9e, 0xfe94, 0xfe8f,
+ 0xfe85, 0xfe85, 0xfe8c, 0xfe8d, 0xfe8f, 0xfeba,
+ 0xff08, 0xff45, 0xff6d, 0xff88, 0xff94, 0xffa5,
+ 0xffb3, 0xffbb, 0xffec, 0x0042, 0x009c, 0x00e9,
+ 0x010b, 0x010a, 0x00fd, 0x00d1, 0x009c, 0x0086,
+ 0x0089, 0x009e, 0x00be, 0x00e2, 0x0119, 0x0154,
+ 0x0187, 0x01d0, 0x023b, 0x02b5, 0x0317, 0x031d,
+ 0x02c5, 0x0247, 0x01c3, 0x0160, 0x0126, 0x00f8,
+ 0x00ef, 0x011b, 0x0154, 0x018b, 0x01ce, 0x0212,
+ 0x024c, 0x025e, 0x0237, 0x01f8, 0x01c0, 0x0185,
+ 0x0142, 0x00f8, 0x00af, 0x0077, 0x0066, 0x007b,
+ 0x0098, 0x00af, 0x00b8, 0x00a4, 0x007f, 0x0052,
+ 0x0016, 0xffec, 0xffe9, 0xffd7, 0xff96, 0xff35,
+ 0xfebb, 0xfe46, 0xfe09, 0xfe0b, 0xfe2e, 0xfe56,
+ 0xfe84, 0xfecb, 0xff1a, 0xff51, 0xff76, 0xff89,
+ 0xff76, 0xff47, 0xff1b, 0xfeee, 0xfed5, 0xfef7,
+ 0xff29, 0xff36, 0xff3c, 0xff4d, 0xff63, 0xff90,
+ 0xffca, 0xfff0, 0x0016, 0x0042, 0x005b, 0x0067,
+ 0x006f, 0x007c, 0x00b1, 0x0105, 0x0147, 0x015f,
+ 0x0148, 0x0123, 0x0124, 0x0149, 0x0175, 0x01a9,
+ 0x01e4, 0x0212, 0x0227, 0x0211, 0x01c4, 0x0159,
+ 0x00ee, 0x009d, 0x006a, 0x0027, 0xffc3, 0xff6f,
+ 0xff41, 0xff24, 0xff33, 0xff75, 0xffb7, 0xffef,
+ 0x003b, 0x008c, 0x00bb, 0x00c6, 0x00bb, 0x00b3,
+ 0x00c9, 0x00ff, 0x013f, 0x0178, 0x019e, 0x01b1,
+ 0x01be, 0x01c4, 0x01c0, 0x01b5, 0x0191, 0x0154,
+ 0x0112, 0x00bb, 0x0054, 0x0010, 0x0005, 0x0033,
+ 0x0090, 0x00e8, 0x0124, 0x015b, 0x018a, 0x01b8,
+ 0x01ec, 0x0206, 0x01fb, 0x01d0, 0x0188, 0x0142,
+ 0x0109, 0x00db, 0x00c9, 0x00ca, 0x00cd, 0x00d7,
+ 0x00e2, 0x00ea, 0x00e5, 0x00d0, 0x00c2, 0x00b8,
+ 0x0096, 0x0071, 0x0053, 0x0029, 0xfff2, 0xffa4,
+ 0xff41, 0xfefd, 0xfef3, 0xff10, 0xff3b, 0xff53,
+ 0xff54, 0xff3b, 0xfef7, 0xfeaf, 0xfe99, 0xfeae,
+ 0xfef2, 0xff61, 0xffc2, 0x0000, 0x001a, 0xffef,
+ 0xff95, 0xff49, 0xff16, 0xfef5, 0xfeed, 0xff03,
+ 0xff3e, 0xff80, 0xffa0, 0xffaa, 0xffaa, 0xffa1,
+ 0xffac, 0xffcf, 0xfff1, 0x0013, 0x0037, 0x0053,
+ 0x007a, 0x00a3, 0x00a6, 0x0074, 0x001a, 0xffb6,
+ 0xff5e, 0xff14, 0xfedd, 0xfeb9, 0xfea7, 0xfeb3,
+ 0xfec9, 0xfeb2, 0xfe68, 0xfe00, 0xfd9c, 0xfd75,
+ 0xfd83, 0xfda4, 0xfdf6, 0xfe7f, 0xfefd, 0xff5f,
+ 0xffb6, 0xffff, 0x0045, 0x0094, 0x00c9, 0x00d0,
+ 0x00bd, 0x00a8, 0x009e, 0x00ae, 0x00df, 0x0123,
+ 0x015c, 0x0179, 0x016e, 0x0144, 0x0130, 0x0165,
+ 0x01e3, 0x0285, 0x0306, 0x0328, 0x02fc, 0x02bf,
+ 0x0287, 0x0246, 0x0203, 0x01cf, 0x01a5, 0x0170,
+ 0x0124, 0x00c4, 0x0069, 0x0022, 0xffe1, 0xffa7,
+ 0xff83, 0xff7c, 0xffb0, 0x001b, 0x0078, 0x00ab,
+ 0x00c6, 0x00ae, 0x004c, 0xffc3, 0xff43, 0xfeed,
+ 0xfeb2, 0xfe82, 0xfe69, 0xfe70, 0xfe90, 0xfeb7,
+ 0xfec9, 0xfec6, 0xfeb0, 0xfe85, 0xfe5f, 0xfe50,
+ 0xfe36, 0xfe05, 0xfdc9, 0xfd96, 0xfd98, 0xfde9,
+ 0xfe65, 0xfec1, 0xfed6, 0xfec6, 0xfeb2, 0xfe91,
+ 0xfe71, 0xfe6e, 0xfe8e, 0xfed2, 0xff16, 0xff26,
+ 0xff1f, 0xff29, 0xff3a, 0xff4f, 0xff69, 0xff78,
+ 0xff70, 0xff5b, 0xff5b, 0xff9d, 0x0011, 0x0082,
+ 0x00cf, 0x00e8, 0x00d6, 0x00bd, 0x00a0, 0x0069,
+ 0x0043, 0x004d, 0x0069, 0x009a, 0x00d8, 0x00f5,
+ 0x00fe, 0x0107, 0x00e6, 0x009d, 0x004c, 0xffee,
+ 0xff8a, 0xff37, 0xfefe, 0xfee5, 0xfef4, 0xff3e,
+ 0xffbc, 0x0046, 0x00ca, 0x013d, 0x0195, 0x01f3,
+ 0x0258, 0x02a8, 0x02d9, 0x02cb, 0x0267, 0x01db,
+ 0x0144, 0x00be, 0x0087, 0x009b, 0x00c4, 0x00e2,
+ 0x00f0, 0x00fd, 0x0103, 0x00df, 0x00ab, 0x007f,
+ 0x003c, 0xffe4, 0xff95, 0xff5c, 0xff32, 0xff0d,
+ 0xfeed, 0xfedd, 0xfee2, 0xfeff, 0xff1d, 0xff26,
+ 0xff12, 0xfedb, 0xfe92, 0xfe5a, 0xfe28, 0xfdec,
+ 0xfda5, 0xfd4f, 0xfd0b, 0xfcfa, 0xfd10, 0xfd48,
+ 0xfda0, 0xfe06, 0xfe7e, 0xfef2, 0xff33, 0xff37,
+ 0xff0a, 0xfebf, 0xfe65, 0xfdf8, 0xfd96, 0xfd76,
+ 0xfd8f, 0xfdc0, 0xfdff, 0xfe44, 0xfe8c, 0xfecf,
+ 0xff07, 0xff56, 0xffc9, 0x003a, 0x0088, 0x0093,
+ 0x0069, 0x0035, 0xffe3, 0xff66, 0xfef4, 0xfe99,
+ 0xfe47, 0xfe15, 0xfe14, 0xfe54, 0xfeca, 0xff3f,
+ 0xff9e, 0xffd9, 0xffdf, 0xffde, 0xffe9, 0xffe8,
+ 0xfffe, 0x0029, 0x0033, 0x001f, 0xffea, 0xff7e,
+ 0xff0c, 0xfeaf, 0xfe5d, 0xfe2b, 0xfe12, 0xfe11,
+ 0xfe44, 0xfe9f, 0xff08, 0xff6b, 0xffa8, 0xffc2,
+ 0xffcb, 0xffbf, 0xffaa, 0xff87, 0xff4c, 0xff1c,
+ 0xff23, 0xff64, 0xffc4, 0x0016, 0x0055, 0x009c,
+ 0x00e0, 0x0102, 0x00fb, 0x00d7, 0x00a9, 0x008e,
+ 0x009d, 0x00cf, 0x0113, 0x015f, 0x019f, 0x01bc,
+ 0x01ba, 0x01a2, 0x017a, 0x0148, 0x0113, 0x00f0,
+ 0x00e5, 0x00d9, 0x00cb, 0x00e1, 0x0122, 0x0161,
+ 0x016f, 0x013e, 0x00e2, 0x0067, 0xffdd, 0xff65,
+ 0xff11, 0xfee1, 0xfedb, 0xff00, 0xff43, 0xff77,
+ 0xff7b, 0xff50, 0xff08, 0xfeb4, 0xfe6e, 0xfe33,
+ 0xfdf7, 0xfdd9, 0xfdf4, 0xfe35, 0xfe87, 0xfed1,
+ 0xfef2, 0xfefa, 0xfefa, 0xfece, 0xfe86, 0xfe60,
+ 0xfe67, 0xfe91, 0xfeca, 0xfee4, 0xfee5, 0xfefd,
+ 0xff38, 0xff85, 0xffce, 0x000a, 0x0040, 0x005e,
+ 0x005a, 0x0044, 0x0025, 0x0013, 0x0011, 0x0002,
+ 0xffec, 0xffbf, 0xff62, 0xff05, 0xfeeb, 0xff26,
+ 0xff96, 0xfffe, 0x004d, 0x0086, 0x008c, 0x007f,
+ 0x0071, 0x0035, 0xffdc, 0xff71, 0xfef8, 0xfeb6,
+ 0xfeb2, 0xfea7, 0xfe91, 0xfe7f, 0xfe82, 0xfea8,
+ 0xfed8, 0xff27, 0xff9b, 0xfffe, 0x005b, 0x0095,
+ 0x0052, 0xffd6, 0xff75, 0xff2a, 0xff15, 0xff35,
+ 0xff54, 0xff66, 0xff5b, 0xff34, 0xff19, 0xff08,
+ 0xff09, 0xff2d, 0xff69, 0xffd6, 0x0072, 0x0100,
+ 0x015a, 0x0160, 0x0104, 0x0087, 0x0026, 0xffec,
+ 0xffcb, 0xffb3, 0xffa6, 0xffb2, 0xffd2, 0xfff1,
+ 0x0014, 0x0046, 0x006e, 0x008a, 0x009f, 0x0083,
+ 0x0042, 0x001b, 0xfffd, 0xffef, 0x000e, 0x001b,
+ 0x0014, 0x001e, 0x000b, 0xffec, 0xffdc, 0xffa7,
+ 0xff5f, 0xff11, 0xfe9e, 0xfe4e, 0xfe48, 0xfe5e,
+ 0xfe89, 0xfea5, 0xfea0, 0xfeb5, 0xfed6, 0xfef7,
+ 0xff45, 0xff99, 0xffcf, 0xfff2, 0xfff0, 0xffe4,
+ 0xffe5, 0xffd1, 0xffb5, 0xffaf, 0xffbb, 0xffdf,
+ 0x0006, 0x0006, 0xffd5, 0xff89, 0xff4e, 0xff39,
+ 0xff40, 0xff5d, 0xff71, 0xff5c, 0xff2f, 0xff02,
+ 0xfede, 0xfed7, 0xfed6, 0xfed7, 0xfefd, 0xff40,
+ 0xff7a, 0xffa2, 0xffb0, 0xff9d, 0xff76, 0xff4a,
+ 0xff31, 0xff44, 0xff70, 0xff9e, 0xffd9, 0x0014,
+ 0x0040, 0x0066, 0x008c, 0x00b4, 0x00ee, 0x0120,
+ 0x011d, 0x00f7, 0x00d7, 0x00d9, 0x0102, 0x0121,
+ 0x011b, 0x0111, 0x010f, 0x010a, 0x010c, 0x0111,
+ 0x0111, 0x0116, 0x0121, 0x0125, 0x0122, 0x010c,
+ 0x00cf, 0x0077, 0x0024, 0xffcf, 0xff76, 0xff37,
+ 0xff25, 0xff43, 0xff8a, 0xffca, 0xffe0, 0xffd2,
+ 0xffad, 0xff8e, 0xff81, 0xff64, 0xff39, 0xff24,
+ 0xff22, 0xff34, 0xff6b, 0xffaa, 0xffce, 0xffdc,
+ 0xffd9, 0xffd1, 0xffe1, 0x000b, 0x0036, 0x0047,
+ 0x002c, 0xffed, 0xffb2, 0xff97, 0xffa6, 0xffcf,
+ 0xfff6, 0x000b, 0x0004, 0xffc7, 0xff64, 0xff03,
+ 0xfeb4, 0xfe8c, 0xfe8c, 0xfe8c, 0xfe86, 0xfe84,
+ 0xfe73, 0xfe53, 0xfe2f, 0xfdf6, 0xfdc5, 0xfddb,
+ 0xfe1e, 0xfe4f, 0xfe6a, 0xfe86, 0xfeab, 0xfed4,
+ 0xfee8, 0xfed5, 0xfec6, 0xfecf, 0xfec3, 0xfe9b,
+ 0xfe89, 0xfe90, 0xfe9c, 0xfead, 0xfebc, 0xfec6,
+ 0xfecf, 0xfec8, 0xfeac, 0xfe94, 0xfe8d, 0xfea3,
+ 0xfed1, 0xff0b, 0xff5d, 0xffc1, 0x0008, 0x0023,
+ 0x0026, 0x0039, 0x0094, 0x011b, 0x0165, 0x015f,
+ 0x012c, 0x00d8, 0x0080, 0x0039, 0x000a, 0x000e,
+ 0x003c, 0x005e, 0x005c, 0x0035, 0x0007, 0x0000,
+ 0x0021, 0x004c, 0x005c, 0x0034, 0xfff7, 0xffc9,
+ 0xff98, 0xff53, 0xff19, 0xfeef, 0xfec0, 0xfe8e,
+ 0xfe65, 0xfe2c, 0xfdf1, 0xfde4, 0xfdf6, 0xfdfc,
+ 0xfdf5, 0xfde3, 0xfdde, 0xfdeb, 0xfdd7, 0xfda8,
+ 0xfd96, 0xfda8, 0xfdcf, 0xfe04, 0xfe48, 0xfeaf,
+ 0xff12, 0xff52, 0xff93, 0xffd4, 0x000c, 0x004f,
+ 0x0070, 0x0068, 0x0057, 0x002d, 0x0004, 0xfff6,
+ 0xffd9, 0xffc9, 0xffd1, 0xffbf, 0xffb1, 0xffca,
+ 0xfff7, 0x0036, 0x006c, 0x0073, 0x004d, 0xffec,
+ 0xff58, 0xfec0, 0xfe46, 0xfe18, 0xfe39, 0xfe69,
+ 0xfe80, 0xfe6d, 0xfe36, 0xfe12, 0xfe0e, 0xfe19,
+ 0xfe2f, 0xfe4e, 0xfe78, 0xfe9c, 0xfe9a, 0xfe7e,
+ 0xfe58, 0xfe41, 0xfe5d, 0xfe87, 0xfe84, 0xfe60,
+ 0xfe2a, 0xfdf6, 0xfde4, 0xfde9, 0xfdec, 0xfdeb,
+ 0xfddd, 0xfdcd, 0xfdce, 0xfde9, 0xfe28, 0xfe79,
+ 0xfeb7, 0xfedc, 0xff00, 0xff42, 0xff97, 0xffc0,
+ 0xffb2, 0xff9e, 0xff99, 0xffa0, 0xffa3, 0xff7f,
+ 0xff38, 0xff08, 0xff09, 0xff2e, 0xff63, 0xff83,
+ 0xff8d, 0xffa5, 0xffcd, 0x0005, 0x005b, 0x009d,
+ 0x00b1, 0x00c4, 0x00d4, 0x00b7, 0x0068, 0x000a,
+ 0xffcd, 0xffbe, 0xffc9, 0xffe0, 0xffe9, 0xffdb,
+ 0xffd4, 0xffdd, 0xfff6, 0x001e, 0x0034, 0x0035,
+ 0x0035, 0x0001, 0xff96, 0xff3a, 0xfef9, 0xfed3,
+ 0xfed7, 0xfee9, 0xff01, 0xff25, 0xff3a, 0xff30,
+ 0xff18, 0xff08, 0xff23, 0xff8b, 0x0024, 0x00a1,
+ 0x00d9, 0x00eb, 0x00f0, 0x00de, 0x00a0, 0x002b,
+ 0xffa1, 0xff29, 0xfed9, 0xfec7, 0xfedd, 0xfed9,
+ 0xfeb7, 0xfe89, 0xfe42, 0xfdf7, 0xfdb1, 0xfd6a,
+ 0xfd52, 0xfd85, 0xfdc7, 0xfdf1, 0xfdf5, 0xfdbf,
+ 0xfd60, 0xfcf8, 0xfc92, 0xfc3d, 0xfbf6, 0xfbc1,
+ 0xfbc9, 0xfc03, 0xfc3e, 0xfc86, 0xfcde, 0xfd29,
+ 0xfd77, 0xfdb5, 0xfdb9, 0xfd98, 0xfd67, 0xfd25,
+ 0xfcf9, 0xfcef, 0xfcfb, 0xfd21, 0xfd53, 0xfd92,
+ 0xfdec, 0xfe46, 0xfe9d, 0xff02, 0xff57, 0xff97,
+ 0xffdb, 0x0016, 0x002e, 0x0009, 0xffaa, 0xff41,
+ 0xfeef, 0xfebf, 0xfec5, 0xfee8, 0xff05, 0xff2e,
+ 0xff73, 0xffb3, 0xffd4, 0xffd9, 0xffcd, 0xffc9,
+ 0xffe1, 0xfff1, 0xffe1, 0xffd2, 0xffc9, 0xffb2,
+ 0xffa1, 0xffaa, 0xffb8, 0xffb2, 0xff8d, 0xff66,
+ 0xff61, 0xff81, 0xffb1, 0xffc9, 0xffb8, 0xff9e,
+ 0xff8c, 0xff77, 0xff5a, 0xff1a, 0xfec2, 0xfe84,
+ 0xfe6a, 0xfe78, 0xfea4, 0xfeda, 0xff16, 0xff39,
+ 0xff35, 0xff41, 0xff5a, 0xff5e, 0xff6d, 0xff79,
+ 0xff66, 0xff55, 0xff3a, 0xfef2, 0xfe9d, 0xfe67,
+ 0xfe67, 0xfe9c, 0xfed7, 0xff08, 0xff36, 0xff54,
+ 0xff55, 0xff24, 0xfeba, 0xfe3c, 0xfdda, 0xfdb1,
+ 0xfdc2, 0xfdff, 0xfe53, 0xfea3, 0xfede, 0xff0e,
+ 0xff3e, 0xff6d, 0xff7a, 0xff37, 0xfeb0, 0xfe0c,
+ 0xfd64, 0xfcf4, 0xfcd4, 0xfcdb, 0xfd19, 0xfd89,
+ 0xfde4, 0xfe1e, 0xfe56, 0xfe86, 0xfeb5, 0xfee9,
+ 0xff01, 0xfeee, 0xfecb, 0xfeb8, 0xfeba, 0xfec8,
+ 0xfee7, 0xff04, 0xff16, 0xff53, 0xffc9, 0x0028,
+ 0x0057, 0x0077, 0x0093, 0x00c0, 0x0101, 0x0120,
+ 0x00fe, 0x00b1, 0x0059, 0x000e, 0xffde, 0xffb8,
+ 0xffa8, 0xffce, 0x001c, 0x0071, 0x00c3, 0x00f5,
+ 0x00d6, 0x0080, 0x0035, 0xffee, 0xffa6, 0xff7e,
+ 0xff67, 0xff56, 0xff5f, 0xff5b, 0xff1e, 0xfee1,
+ 0xfedc, 0xff09, 0xff57, 0xffb3, 0xfff5, 0x0011,
+ 0x0013, 0xfffe, 0xffd8, 0xffb5, 0xffa3, 0xff94,
+ 0xff62, 0xff05, 0xfea1, 0xfe5b, 0xfe59, 0xfead,
+ 0xff30, 0xffba, 0x004a, 0x00e2, 0x0198, 0x025d,
+ 0x02de, 0x0306, 0x02fb, 0x02b8, 0x023a, 0x01a0,
+ 0x00df, 0xfffd, 0xff4b, 0xff01, 0xff01, 0xff14,
+ 0xff26, 0xff38, 0xff50, 0xff78, 0xffa9, 0xffcd,
+ 0xffd6, 0xffbf, 0xff89, 0xff3b, 0xfecd, 0xfe3a,
+ 0xfd9d, 0xfd17, 0xfcc1, 0xfca5, 0xfcb7, 0xfcf2,
+ 0xfd56, 0xfddc, 0xfe76, 0xff05, 0xff69, 0xff7d,
+ 0xff20, 0xfe68, 0xfd82, 0xfc84, 0xfbb5, 0xfb5c,
+ 0xfb74, 0xfbe6, 0xfc8f, 0xfd41, 0xfde6, 0xfe6e,
+ 0xfecd, 0xfefd, 0xfeef, 0xfebf, 0xfe89, 0xfe48,
+ 0xfe27, 0xfe44, 0xfe74, 0xfea8, 0xfedc, 0xff13,
+ 0xff80, 0x0021, 0x00b5, 0x0110, 0x011a, 0x0104,
+ 0x0117, 0x013d, 0x0149, 0x012d, 0x00d6, 0x007b,
+ 0x005e, 0x0063, 0x006c, 0x0077, 0x0089, 0x00c4,
+ 0x0139, 0x01cc, 0x024b, 0x028a, 0x02ae, 0x02f3,
+ 0x033f, 0x0367, 0x0365, 0x0336, 0x02ff, 0x02d0,
+ 0x026d, 0x01bf, 0x010a, 0x0092, 0x0081, 0x00cf,
+ 0x013a, 0x017e, 0x0194, 0x01a5, 0x01ce, 0x01f7,
+ 0x01ff, 0x01da, 0x017a, 0x00e7, 0x003a, 0xff70,
+ 0xfe96, 0xfdfd, 0xfde7, 0xfe56, 0xff1e, 0x0009,
+ 0x00f5, 0x01c5, 0x0251, 0x0287, 0x024f, 0x01a0,
+ 0x00a5, 0xff92, 0xfe8a, 0xfdc4, 0xfd67, 0xfd80,
+ 0xfde4, 0xfe50, 0xfebd, 0xff3e, 0xffbd, 0x0032,
+ 0x007c, 0x0050, 0xffae, 0xfed9, 0xfe1e, 0xfdb5,
+ 0xfd96, 0xfd9e, 0xfdc7, 0xfe15, 0xfea0, 0xff4d,
+ 0xffbb, 0xffd8, 0xffda, 0xffdf, 0xffff, 0x0021,
+ 0x0009, 0xffb3, 0xff35, 0xfea9, 0xfe3a, 0xfdfa,
+ 0xfdee, 0xfe29, 0xfea1, 0xff3a, 0xffd3, 0x003f,
+ 0x006e, 0x0064, 0x0032, 0xfff7, 0xffbf, 0xff9a,
+ 0xff97, 0xff9f, 0xff9c, 0xffa4, 0xffc6, 0x0007,
+ 0x0063, 0x00b8, 0x00e2, 0x00e5, 0x00fd, 0x0159,
+ 0x01e2, 0x0266, 0x02d1, 0x0326, 0x035b, 0x0360,
+ 0x032b, 0x02a5, 0x01e4, 0x014e, 0x011a, 0x014c,
+ 0x01d0, 0x0247, 0x0282, 0x02c9, 0x0314, 0x0334,
+ 0x033a, 0x0323, 0x02f1, 0x02a2, 0x0204, 0x0130,
+ 0x0061, 0xffa4, 0xff30, 0xff24, 0xff33, 0xff4f,
+ 0xff99, 0x0000, 0x0056, 0x0074, 0x0050, 0xfffc,
+ 0xff91, 0xff4f, 0xff41, 0xff3f, 0xff56, 0xff74,
+ 0xff70, 0xff63, 0xff4e, 0xff06, 0xfe8c, 0xfdfd,
+ 0xfd8b, 0xfd52, 0xfd55, 0xfda9, 0xfe3c, 0xfec8,
+ 0xff38, 0xff88, 0xffab, 0xffb4, 0xff9c, 0xff4f,
+ 0xfed6, 0xfe4b, 0xfdca, 0xfd67, 0xfd29, 0xfd16,
+ 0xfd18, 0xfd32, 0xfd70, 0xfd9d, 0xfd8f, 0xfd5a,
+ 0xfd20, 0xfd12, 0xfd32, 0xfd41, 0xfd18, 0xfcc2,
+ 0xfc7b, 0xfc7c, 0xfca8, 0xfce3, 0xfd2b, 0xfd62,
+ 0xfd96, 0xfdcd, 0xfdd7, 0xfdc5, 0xfdc2, 0xfdd3,
+ 0xfe07, 0xfe35, 0xfe16, 0xfdb8, 0xfd42, 0xfced,
+ 0xfcfc, 0xfd5f, 0xfddb, 0xfe55, 0xfebe, 0xff1f,
+ 0xff7a, 0xffbd, 0xffda, 0xffc8, 0xffa9, 0xff8e,
+ 0xff5f, 0xff29, 0xff17, 0xff3b, 0xffa5, 0x0043,
+ 0x00ec, 0x0179, 0x01b0, 0x0196, 0x016f, 0x013a,
+ 0x010f, 0x0125, 0x0156, 0x017d, 0x01b0, 0x01ca,
+ 0x01b0, 0x018e, 0x0185, 0x0197, 0x01be, 0x01e0,
+ 0x01e4, 0x01da, 0x01f3, 0x0230, 0x0262, 0x0275,
+ 0x025c, 0x020d, 0x01b8, 0x018f, 0x018a, 0x01a5,
+ 0x01e8, 0x023d, 0x028d, 0x02c9, 0x02e2, 0x02d1,
+ 0x02ad, 0x028b, 0x026c, 0x024a, 0x0221, 0x0201,
+ 0x0201, 0x0235, 0x02ac, 0x0339, 0x037c, 0x0363,
+ 0x0316, 0x02c4, 0x02a3, 0x02ab, 0x02ba, 0x02e2,
+ 0x030f, 0x0303, 0x02b7, 0x022d, 0x0182, 0x00ef,
+ 0x007c, 0x0021, 0xffdd, 0xffa4, 0xff85, 0xff7e,
+ 0xff66, 0xff2a, 0xfecb, 0xfe5b, 0xfe0d, 0xfdfd,
+ 0xfe28, 0xfe7c, 0xfecc, 0xff04, 0xff1b, 0xff0a,
+ 0xfed7, 0xfe7a, 0xfe06, 0xfdbe, 0xfdb4, 0xfdce,
+ 0xfdf6, 0xfe2d, 0xfe9a, 0xff3a, 0xffda, 0x0064,
+ 0x00bf, 0x00d2, 0x00be, 0x0086, 0x0020, 0xffa6,
+ 0xff23, 0xfeba, 0xfe93, 0xfe92, 0xfeac, 0xfedd,
+ 0xfeed, 0xfedc, 0xfedb, 0xfee9, 0xff06, 0xff4f,
+ 0xffc5, 0x003e, 0x0085, 0x008a, 0x005e, 0x0025,
+ 0x0002, 0xffe9, 0xffcb, 0xffc1, 0xffc7, 0xffc7,
+ 0xffc8, 0xffc2, 0xffb2, 0xffa5, 0xff85, 0xff4d,
+ 0xff26, 0xff2b, 0xff66, 0xffc9, 0x002a, 0x006b,
+ 0x007e, 0x007f, 0x008a, 0x0084, 0x004f, 0x000f,
+ 0xfff7, 0x0014, 0x0057, 0x00af, 0x0105, 0x0145,
+ 0x0172, 0x019b, 0x01b1, 0x018b, 0x011d, 0x00a4,
+ 0x0058, 0x001b, 0xffd7, 0xff9e, 0xff73, 0xff66,
+ 0xff83, 0xffc1, 0x0017, 0x0065, 0x008d, 0x00a7,
+ 0x00ba, 0x00c3, 0x00dc, 0x0105, 0x0139, 0x016a,
+ 0x015d, 0x00eb, 0x0021, 0xff24, 0xfe3f, 0xfd9a,
+ 0xfd29, 0xfcf3, 0xfcf1, 0xfd21, 0xfd80, 0xfdcd,
+ 0xfde1, 0xfdcb, 0xfd79, 0xfcf1, 0xfc5c, 0xfbd0,
+ 0xfb78, 0xfb6a, 0xfb94, 0xfbf0, 0xfc62, 0xfcc9,
+ 0xfd23, 0xfd63, 0xfd81, 0xfd8d, 0xfd89, 0xfd92,
+ 0xfdba, 0xfdd6, 0xfde2, 0xfdef, 0xfde7, 0xfdd6,
+ 0xfdd1, 0xfdce, 0xfdea, 0xfe32, 0xfe88, 0xfee8,
+ 0xff3d, 0xff5e, 0xff57, 0xff4e, 0xff5c, 0xff8c,
+ 0xffc7, 0xfff9, 0x0026, 0x004e, 0x0078, 0x00b5,
+ 0x00e7, 0x00f9, 0x00fe, 0x0103, 0x0110, 0x0109,
+ 0x00c5, 0x004c, 0xffc9, 0xff5a, 0xff1a, 0xff09,
+ 0xff13, 0xff3a, 0xff94, 0x000f, 0x006b, 0x0087,
+ 0x0090, 0x0091, 0x0075, 0x005f, 0x004b, 0x0010,
+ 0xffd9, 0xffdd, 0x0010, 0x005d, 0x00aa, 0x00e2,
+ 0x0103, 0x0112, 0x0115, 0x00fb, 0x00a0, 0x0021,
+ 0xffa9, 0xff41, 0xff09, 0xff0e, 0xff27, 0xff34,
+ 0xff29, 0xff10, 0xff05, 0xff0d, 0xff2e, 0xff73,
+ 0xffc5, 0x0017, 0x0070, 0x00ce, 0x012c, 0x0175,
+ 0x019d, 0x01b0, 0x01a0, 0x015f, 0x010b, 0x00b8,
+ 0x0074, 0x0045, 0x001a, 0xffe5, 0xffb7, 0xff98,
+ 0xff7b, 0xff52, 0xff30, 0xff20, 0xff0f, 0xfee7,
+ 0xfea2, 0xfe45, 0xfdec, 0xfda9, 0xfd8f, 0xfdac,
+ 0xfde2, 0xfe1c, 0xfe6d, 0xfec5, 0xff0f, 0xff4b,
+ 0xff6e, 0xff7c, 0xff81, 0xff81, 0xff81, 0xff69,
+ 0xff11, 0xfe87, 0xfdf8, 0xfd92, 0xfd66, 0xfd61,
+ 0xfd8d, 0xfdf5, 0xfe6e, 0xfeeb, 0xff6f, 0xffd5,
+ 0x0017, 0x0058, 0x0083, 0x0077, 0x0040, 0xfff7,
+ 0xffaf, 0xff74, 0xff46, 0xff31, 0xff49, 0xff6f,
+ 0xff6e, 0xff5d, 0xff45, 0xff06, 0xfec8, 0xfeb9,
+ 0xfead, 0xfe95, 0xfe92, 0xfea1, 0xfebb, 0xfec9,
+ 0xfead, 0xfe8b, 0xfe88, 0xfe99, 0xfeb5, 0xfecb,
+ 0xfecc, 0xfec4, 0xfea9, 0xfe7c, 0xfe60, 0xfe5a,
+ 0xfe61, 0xfe81, 0xfeb6, 0xfeee, 0xff31, 0xff89,
+ 0xffe8, 0x0039, 0x007c, 0x0097, 0x006b, 0x0014,
+ 0xffb1, 0xff49, 0xfeec, 0xfe8c, 0xfe1c, 0xfdbd,
+ 0xfd94, 0xfdaa, 0xfdef, 0xfe48, 0xfeab, 0xff08,
+ 0xff5c, 0xffb5, 0x0005, 0x0041, 0x0078, 0x00a4,
+ 0x00c7, 0x00de, 0x00bc, 0x0044, 0xff8d, 0xfeca,
+ 0xfe39, 0xfdea, 0xfdd3, 0xfdee, 0xfe1f, 0xfe5a,
+ 0xfe96, 0xfe95, 0xfe62, 0xfe43, 0xfe35, 0xfe32,
+ 0xfe49, 0xfe69, 0xfe8d, 0xfeb7, 0xfee8, 0xff4b,
+ 0xffdd, 0x0073, 0x00fc, 0x0154, 0x0163, 0x012c,
+ 0x0089, 0xff8e, 0xfe96, 0xfdcc, 0xfd4f, 0xfd41,
+ 0xfd88, 0xfdfc, 0xfe7b, 0xfed3, 0xff05, 0xff29,
+ 0xff43, 0xff70, 0xffac, 0xffc2, 0xffa4, 0xff5b,
+ 0xfeee, 0xfe8f, 0xfe66, 0xfe66, 0xfe82, 0xfeb6,
+ 0xfee3, 0xfee6, 0xfebf, 0xfe73, 0xfe03, 0xfd8e,
+ 0xfd44, 0xfd2c, 0xfd45, 0xfda7, 0xfe35, 0xfeab,
+ 0xfef2, 0xfefe, 0xfed1, 0xfea9, 0xfe97, 0xfe89,
+ 0xfea0, 0xfed8, 0xfefe, 0xff21, 0xff44, 0xff54,
+ 0xff76, 0xffa3, 0xffa5, 0xff81, 0xff6b, 0xff81,
+ 0xffb1, 0xffde, 0x001b, 0x007d, 0x00db, 0x0115,
+ 0x010b, 0x00b3, 0x0032, 0xffa6, 0xff1f, 0xfec1,
+ 0xfe88, 0xfe6d, 0xfe73, 0xfe74, 0xfe6b, 0xfe5d,
+ 0xfe27, 0xfdcb, 0xfd7f, 0xfd60, 0xfd69, 0xfd76,
+ 0xfd86, 0xfda2, 0xfd8e, 0xfd3c, 0xfcea, 0xfc97,
+ 0xfc37, 0xfbeb, 0xfb9f, 0xfb45, 0xfb0f, 0xfb14,
+ 0xfb3f, 0xfb7d, 0xfbb1, 0xfbd2, 0xfbea, 0xfbfa,
+ 0xfc0b, 0xfc26, 0xfc3a, 0xfc42, 0xfc64, 0xfcab,
+ 0xfd19, 0xfda9, 0xfe25, 0xfe6f, 0xfe9e, 0xfeac,
+ 0xfe8e, 0xfe50, 0xfdee, 0xfd7f, 0xfd1e, 0xfcbb,
+ 0xfc6d, 0xfc42, 0xfc11, 0xfbf1, 0xfc04, 0xfc1a,
+ 0xfc2b, 0xfc4d, 0xfc6c, 0xfc9e, 0xfd06, 0xfd94,
+ 0xfe2f, 0xfeb2, 0xfef8, 0xff09, 0xfeef, 0xfea8,
+ 0xfe5b, 0xfe35, 0xfe3c, 0xfe52, 0xfe69, 0xfe7f,
+ 0xfe97, 0xfeb9, 0xfee1, 0xfef7, 0xfef4, 0xfeda,
+ 0xfeae, 0xfe8b, 0xfe95, 0xfee2, 0xff49, 0xff87,
+ 0xffb5, 0xfff3, 0x0014, 0x001c, 0x0025, 0x0028,
+ 0x004a, 0x00a3, 0x00f3, 0x010f, 0x00e8, 0x0087,
+ 0x0025, 0xffea, 0xffcc, 0xffb9, 0xffab, 0xffae,
+ 0xffbe, 0xffce, 0xfff1, 0x0019, 0x0023, 0x0026,
+ 0x0025, 0x0014, 0x000b, 0x0009, 0xfffb, 0xffdf,
+ 0xffaf, 0xff7a, 0xff52, 0xff2a, 0xff08, 0xff08,
+ 0xff23, 0xff43, 0xff58, 0xff5d, 0xff3c, 0xfee3,
+ 0xfe88, 0xfe53, 0xfe25, 0xfe0a, 0xfe1c, 0xfe48,
+ 0xfe8a, 0xfed3, 0xfef9, 0xff04, 0xff04, 0xfee3,
+ 0xfeb0, 0xfe8d, 0xfe69, 0xfe37, 0xfe18, 0xfe10,
+ 0xfe16, 0xfe40, 0xfe83, 0xfeb5, 0xfee5, 0xff1d,
+ 0xff44, 0xff6c, 0xffa2, 0xffd5, 0x0007, 0x0026,
+ 0x0016, 0xfff4, 0xffb7, 0xff53, 0xfef3, 0xfea7,
+ 0xfe76, 0xfe7a, 0xfeab, 0xfef6, 0xff42, 0xff6d,
+ 0xff65, 0xff31, 0xfeed, 0xfec8, 0xfec8, 0xfee8,
+ 0xff19, 0xff36, 0xff3c, 0xff42, 0xff3d, 0xff2d,
+ 0xff27, 0xff38, 0xff61, 0xff91, 0xffca, 0x000b,
+ 0x0026, 0x0018, 0x000c, 0x0002, 0x0001, 0x002a,
+ 0x005f, 0x007f, 0x008e, 0x008f, 0x008a, 0x008a,
+ 0x0085, 0x0074, 0x0051, 0x002a, 0x0020, 0x003a,
+ 0x006b, 0x00a0, 0x00a9, 0x006a, 0x0018, 0xfff8,
+ 0x0005, 0x0023, 0x003c, 0x0034, 0x0000, 0xffb8,
+ 0xff79, 0xff5e, 0xff69, 0xff75, 0xff64, 0xff1e,
+ 0xfe8b, 0xfdd7, 0xfd4a, 0xfd00, 0xfd06, 0xfd4e,
+ 0xfdb0, 0xfe17, 0xfe5b, 0xfe52, 0xfe08, 0xfd95,
+ 0xfd09, 0xfc92, 0xfc58, 0xfc54, 0xfc66, 0xfc81,
+ 0xfcad, 0xfcdf, 0xfd0a, 0xfd38, 0xfd67, 0xfd88,
+ 0xfda3, 0xfdbc, 0xfdc1, 0xfdab, 0xfd8a, 0xfd6a,
+ 0xfd47, 0xfd26, 0xfd15, 0xfd05, 0xfcf0, 0xfce7,
+ 0xfcf6, 0xfd30, 0xfd8c, 0xfdd6, 0xfe03, 0xfe32,
+ 0xfe60, 0xfe87, 0xfeb2, 0xfed8, 0xfee5, 0xfeca,
+ 0xfe8b, 0xfe55, 0xfe42, 0xfe42, 0xfe49, 0xfe4d,
+ 0xfe32, 0xfdf5, 0xfd9c, 0xfd28, 0xfcc3, 0xfca7,
+ 0xfcc1, 0xfcfd, 0xfd76, 0xfe1b, 0xfeb3, 0xff1c,
+ 0xff41, 0xff2a, 0xff06, 0xfee2, 0xfebc, 0xfe9a,
+ 0xfe87, 0xfe96, 0xfed9, 0xff42, 0xffad, 0xfff0,
+ 0x000d, 0x0027, 0x0045, 0x007a, 0x00db, 0x0148,
+ 0x01af, 0x022e, 0x02c0, 0x0348, 0x03b0, 0x03f0,
+ 0x0407, 0x03e9, 0x039a, 0x0346, 0x02fa, 0x02b3,
+ 0x0280, 0x025c, 0x024b, 0x0263, 0x028b, 0x0291,
+ 0x0273, 0x0253, 0x0252, 0x0277, 0x02a9, 0x02b9,
+ 0x0284, 0x0215, 0x0197, 0x011b, 0x0096, 0x0020,
+ 0xffdf, 0xffde, 0x001d, 0x0079, 0x00a5, 0x0089,
+ 0x0045, 0xffed, 0xff95, 0xff58, 0xff30, 0xff11,
+ 0xff09, 0xff32, 0xff99, 0x001e, 0x0098, 0x00fc,
+ 0x0131, 0x011f, 0x0101, 0x00ff, 0x00f7, 0x00e8,
+ 0x00e4, 0x00d7, 0x00bd, 0x00b7, 0x00c4, 0x00bc,
+ 0x00a1, 0x009f, 0x00bd, 0x00ef, 0x0129, 0x0138,
+ 0x0104, 0x00bb, 0x0083, 0x0078, 0x00b3, 0x0109,
+ 0x0147, 0x016e, 0x0186, 0x0186, 0x0162, 0x011c,
+ 0x00b8, 0x0032, 0xffa0, 0xff21, 0xfec6, 0xfe91,
+ 0xfe8e, 0xfeb7, 0xff0b, 0xff70, 0xffb0, 0xffb3,
+ 0xff87, 0xff3c, 0xfee5, 0xfe89, 0xfe29, 0xfdd4,
+ 0xfda3, 0xfdaa, 0xfdeb, 0xfe4f, 0xfec5, 0xff3f,
+ 0xffa4, 0xffe8, 0x0015, 0x003f, 0x006d, 0x008c,
+ 0x0082, 0x005d, 0x0040, 0x003b, 0x004d, 0x007d,
+ 0x00ca, 0x0119, 0x0160, 0x019b, 0x01b9, 0x01c1,
+ 0x01bd, 0x01a4, 0x018b, 0x018a, 0x018b, 0x0183,
+ 0x017d, 0x016c, 0x0156, 0x015f, 0x017b, 0x0182,
+ 0x017e, 0x017d, 0x0161, 0x0125, 0x00cb, 0x0043,
+ 0xffb2, 0xff4e, 0xff20, 0xff35, 0xff85, 0xffcc,
+ 0xffd9, 0xffb9, 0xff85, 0xff5a, 0xff3e, 0xff2e,
+ 0xff1d, 0xfef3, 0xfebf, 0xfeb0, 0xfec6, 0xfef3,
+ 0xff36, 0xff76, 0xffa3, 0xffba, 0xffbb, 0xffa5,
+ 0xff77, 0xff36, 0xfef9, 0xfed0, 0xfed4, 0xff1c,
+ 0xff85, 0xffeb, 0x0038, 0x004f, 0x0034, 0xfff5,
+ 0xff82, 0xfefc, 0xfe80, 0xfe08, 0xfdba, 0xfda2,
+ 0xfd98, 0xfdac, 0xfe00, 0xfe7d, 0xff16, 0xffb2,
+ 0x0007, 0x0003, 0xffc6, 0xff6f, 0xff27, 0xfef3,
+ 0xfeb8, 0xfe7e, 0xfe5e, 0xfe53, 0xfe63, 0xfe95,
+ 0xfed2, 0xff1d, 0xff6e, 0xff9a, 0xff9d, 0xff8c,
+ 0xff65, 0xff48, 0xff4b, 0xff53, 0xff55, 0xff4d,
+ 0xff41, 0xff53, 0xff7f, 0xffa4, 0xffc0, 0xffc5,
+ 0xffab, 0xff91, 0xff83, 0xff79, 0xff77, 0xff70,
+ 0xff68, 0xff78, 0xff9d, 0xffcb, 0x0003, 0x003f,
+ 0x006f, 0x008e, 0x00a5, 0x00c1, 0x00e0, 0x00fb,
+ 0x0114, 0x0122, 0x0118, 0x00fe, 0x00f9, 0x011b,
+ 0x0158, 0x01a9, 0x01fb, 0x021d, 0x0208, 0x01e5,
+ 0x01b5, 0x0162, 0x00fd, 0x00b0, 0x0099, 0x00ba,
+ 0x00fc, 0x0138, 0x0159, 0x017f, 0x01a8, 0x01a5,
+ 0x017f, 0x0165, 0x0152, 0x0139, 0x0121, 0x00f3,
+ 0x00ae, 0x007d, 0x0068, 0x0059, 0x0058, 0x006d,
+ 0x0091, 0x00b9, 0x00dd, 0x00ea, 0x00df, 0x00b9,
+ 0x006e, 0x001d, 0xffe5, 0xffb0, 0xff7f, 0xff76,
+ 0xff92, 0xffb3, 0xffc0, 0xffaa, 0xff70, 0xff2b,
+ 0xfef1, 0xfed2, 0xfed7, 0xfefd, 0xff29, 0xff43,
+ 0xff4e, 0xff44, 0xff25, 0xff08, 0xfeeb, 0xfec4,
+ 0xfeaa, 0xfeae, 0xfecd, 0xfeff, 0xff30, 0xff5d,
+ 0xff88, 0xff8c, 0xff50, 0xfedd, 0xfe57, 0xfde4,
+ 0xfd93, 0xfd79, 0xfdad, 0xfe06, 0xfe60, 0xfeb3,
+ 0xfede, 0xfee1, 0xfedc, 0xfebd, 0xfe98, 0xfe98,
+ 0xfea7, 0xfeb6, 0xfece, 0xfee4, 0xfef8, 0xff08,
+ 0xff0c, 0xff19, 0xff34, 0xff48, 0xff54, 0xff60,
+ 0xff76, 0xff9d, 0xffbb, 0xffc5, 0xffc3, 0xff9c,
+ 0xff45, 0xfee7, 0xfeb4, 0xfeb3, 0xfed1, 0xff09,
+ 0xff51, 0xff93, 0xffdc, 0x0029, 0x0047, 0x002e,
+ 0xfffc, 0xffbb, 0xff88, 0xff83, 0xffa4, 0xffe0,
+ 0x0027, 0x0065, 0x0091, 0x009e, 0x008a, 0x0076,
+ 0x006f, 0x006b, 0x0074, 0x0083, 0x007d, 0x006b,
+ 0x0065, 0x0068, 0x0070, 0x0080, 0x0090, 0x008e,
+ 0x007d, 0x0078, 0x0083, 0x0081, 0x0076, 0x0089,
+ 0x00b5, 0x00e9, 0x0123, 0x0149, 0x015b, 0x017d,
+ 0x01a1, 0x01b0, 0x01a2, 0x015c, 0x00eb, 0x0084,
+ 0x0023, 0xffbb, 0xff67, 0xff3b, 0xff39, 0xff5c,
+ 0xff8c, 0xffc4, 0x0005, 0x0029, 0x000c, 0xffad,
+ 0xff15, 0xfe7d, 0xfe29, 0xfe19, 0xfe1f, 0xfe20,
+ 0xfe0e, 0xfde1, 0xfda5, 0xfd7a, 0xfd74, 0xfd79,
+ 0xfd6b, 0xfd5b, 0xfd47, 0xfd0b, 0xfcb0, 0xfc56,
+ 0xfc14, 0xfc10, 0xfc4c, 0xfc9f, 0xfd0a, 0xfd89,
+ 0xfde8, 0xfe0e, 0xfdfc, 0xfdb9, 0xfd65, 0xfd0f,
+ 0xfcb3, 0xfc66, 0xfc3d, 0xfc33, 0xfc4d, 0xfc99,
+ 0xfd06, 0xfd72, 0xfddf, 0xfe50, 0xfead, 0xfeed,
+ 0xff04, 0xfee0, 0xfe9e, 0xfe51, 0xfde3, 0xfd6e,
+ 0xfd1f, 0xfcef, 0xfcd1, 0xfcce, 0xfcd8, 0xfcd8,
+ 0xfce4, 0xfd2f, 0xfda1, 0xfe04, 0xfe54, 0xfe92,
+ 0xfecb, 0xff0c, 0xff28, 0xff19, 0xfeff, 0xfecc,
+ 0xfe8a, 0xfe4e, 0xfe03, 0xfdc4, 0xfdb6, 0xfdb4,
+ 0xfdc3, 0xfdf7, 0xfe38, 0xfe91, 0xff05, 0xff7f,
+ 0x0002, 0x006f, 0x0091, 0x0064, 0x0000, 0xff90,
+ 0xff40, 0xff1e, 0xff36, 0xff7d, 0xffcc, 0x000b,
+ 0x0025, 0x001e, 0x0003, 0xffbc, 0xff56, 0xff07,
+ 0xfedd, 0xfedd, 0xfef5, 0xff19, 0xff61, 0xffab,
+ 0xffbf, 0xffa4, 0xff69, 0xff24, 0xfefe, 0xfefa,
+ 0xfeff, 0xfeed, 0xfeb5, 0xfe82, 0xfe68, 0xfe5f,
+ 0xfe71, 0xfe91, 0xfeb4, 0xfeda, 0xfed9, 0xfeb6,
+ 0xfea6, 0xfea9, 0xfeb0, 0xfea1, 0xfe64, 0xfe25,
+ 0xfdf4, 0xfdbc, 0xfd9b, 0xfd96, 0xfd99, 0xfdbd,
+ 0xfe09, 0xfe76, 0xff01, 0xff76, 0xffa3, 0xff84,
+ 0xff38, 0xfeeb, 0xfea4, 0xfe70, 0xfe88, 0xfeeb,
+ 0xff5b, 0xffac, 0xffb9, 0xff8f, 0xff69, 0xff60,
+ 0xff6f, 0xff8e, 0xffb4, 0xffd0, 0xffd7, 0xffd9,
+ 0xffe9, 0xfffd, 0x0010, 0x0022, 0x0026, 0x001b,
+ 0xfff6, 0xffa8, 0xff50, 0xfefe, 0xfeba, 0xfeb2,
+ 0xfefd, 0xff73, 0xffd7, 0x0000, 0xffef, 0xffb0,
+ 0xff51, 0xfeee, 0xfe9f, 0xfe74, 0xfe74, 0xfe9f,
+ 0xfee1, 0xff09, 0xff0a, 0xff0a, 0xff11, 0xff20,
+ 0xff43, 0xff5a, 0xff61, 0xff6e, 0xff67, 0xff50,
+ 0xff3b, 0xff07, 0xfebf, 0xfe92, 0xfe81, 0xfe99,
+ 0xfecf, 0xff00, 0xff30, 0xff4c, 0xff37, 0xff06,
+ 0xfec3, 0xfe6e, 0xfe1d, 0xfdf1, 0xfdfc, 0xfe17,
+ 0xfe0f, 0xfdef, 0xfdcf, 0xfdb0, 0xfd9f, 0xfd98,
+ 0xfda1, 0xfdb9, 0xfdb7, 0xfdb9, 0xfdf4, 0xfe54,
+ 0xfecd, 0xff55, 0xffc0, 0xfff4, 0xffd2, 0xff5b,
+ 0xfeda, 0xfe81, 0xfe5c, 0xfe83, 0xfedd, 0xff39,
+ 0xff76, 0xff6c, 0xff23, 0xfed2, 0xfe96, 0xfe7c,
+ 0xfe7f, 0xfe8b, 0xfea2, 0xfed1, 0xff04, 0xff1a,
+ 0xfefb, 0xfea3, 0xfe1d, 0xfd93, 0xfd40, 0xfd2b,
+ 0xfd54, 0xfdb4, 0xfe11, 0xfe4e, 0xfe66, 0xfe3b,
+ 0xfde2, 0xfd87, 0xfd3e, 0xfd2e, 0xfd5a, 0xfd97,
+ 0xfde5, 0xfe32, 0xfe70, 0xfec1, 0xff03, 0xff00,
+ 0xfed1, 0xfe90, 0xfe54, 0xfe49, 0xfe5f, 0xfe84,
+ 0xfebb, 0xfee0, 0xfeee, 0xfeef, 0xfec3, 0xfe5d,
+ 0xfddf, 0xfd75, 0xfd33, 0xfd0a, 0xfcfb, 0xfd10,
+ 0xfd3e, 0xfd76, 0xfda3, 0xfdb8, 0xfdd6, 0xfdfb,
+ 0xfe0c, 0xfe27, 0xfe4b, 0xfe57, 0xfe54, 0xfe3c,
+ 0xfe09, 0xfde1, 0xfdce, 0xfdc6, 0xfdd3, 0xfde3,
+ 0xfdef, 0xfdf5, 0xfdeb, 0xfdea, 0xfe05, 0xfe1c,
+ 0xfe2b, 0xfe35, 0xfe26, 0xfe15, 0xfe17, 0xfe0e,
+ 0xfdf0, 0xfdd4, 0xfdcc, 0xfde1, 0xfdf6, 0xfdef,
+ 0xfddc, 0xfdba, 0xfd7d, 0xfd31, 0xfcda, 0xfc81,
+ 0xfc4c, 0xfc65, 0xfccf, 0xfd5e, 0xfde5, 0xfe4a,
+ 0xfe83, 0xfea7, 0xfeda, 0xff13, 0xff3a, 0xff44,
+ 0xff1f, 0xfecb, 0xfe52, 0xfdcc, 0xfd6d, 0xfd3d,
+ 0xfd28, 0xfd48, 0xfd92, 0xfdc7, 0xfde5, 0xfe01,
+ 0xfe11, 0xfe1e, 0xfe3a, 0xfe63, 0xfe86, 0xfe9c,
+ 0xfeb2, 0xfed7, 0xff0d, 0xff42, 0xff4e, 0xff31,
+ 0xff26, 0xff31, 0xff2f, 0xff20, 0xff03, 0xfedb,
+ 0xfed3, 0xff01, 0xff52, 0xffb6, 0x0018, 0x0063,
+ 0x0087, 0x0078, 0x0043, 0xfffa, 0xffa2, 0xff5b,
+ 0xff46, 0xff60, 0xff97, 0xffe2, 0x0037, 0x0092,
+ 0x00de, 0x010c, 0x0118, 0x00f0, 0x0099, 0x0047,
+ 0x000e, 0xffd9, 0xffa6, 0xff6e, 0xff35, 0xff1c,
+ 0xff28, 0xff49, 0xff75, 0xff95, 0xffa7, 0xffb8,
+ 0xffc0, 0xffc9, 0xffde, 0xffeb, 0xfff1, 0x0010,
+ 0x0038, 0x0043, 0x002f, 0x0002, 0xffc5, 0xff89,
+ 0xff77, 0xff91, 0xffbc, 0xfff4, 0x0038, 0x0062,
+ 0x005a, 0x0023, 0xffd9, 0xff9f, 0xff73, 0xff3f,
+ 0xff0d, 0xfed4, 0xfe94, 0xfe71, 0xfe6b, 0xfe73,
+ 0xfe8b, 0xfe9d, 0xfe99, 0xfe8d, 0xfe7b, 0xfe76,
+ 0xfe90, 0xfeb2, 0xfecf, 0xfecc, 0xfe8a, 0xfe38,
+ 0xfe0c, 0xfe00, 0xfe0e, 0xfe34, 0xfe65, 0xfe98,
+ 0xfebb, 0xfed0, 0xfef4, 0xff1f, 0xff37, 0xff39,
+ 0xff10, 0xfeb7, 0xfe5e, 0xfe25, 0xfe06, 0xfe0d,
+ 0xfe3f, 0xfe89, 0xfed8, 0xff14, 0xff2a, 0xff29,
+ 0xff1c, 0xff0c, 0xff17, 0xff3b, 0xff58, 0xff70,
+ 0xff83, 0xff7a, 0xff4f, 0xff07, 0xfec9, 0xfec4,
+ 0xfedf, 0xfeff, 0xff29, 0xff4a, 0xff6a, 0xffb0,
+ 0xfff2, 0x0000, 0xfff0, 0xffcd, 0xffb3, 0xffc2,
+ 0xfff1, 0x0035, 0x0083, 0x00c4, 0x0102, 0x013e,
+ 0x015f, 0x0178, 0x0185, 0x0161, 0x011f, 0x00c1,
+ 0x002f, 0xffa2, 0xff60, 0xff5b, 0xff84, 0xffce,
+ 0xfff5, 0xffce, 0xff7d, 0xff3a, 0xff1d, 0xff23,
+ 0xff40, 0xff55, 0xff45, 0xff28, 0xff1a, 0xff07,
+ 0xfeef, 0xfeea, 0xfedc, 0xfebf, 0xfeab, 0xfe97,
+ 0xfe7d, 0xfe71, 0xfe67, 0xfe5b, 0xfe62, 0xfe6d,
+ 0xfe53, 0xfe22, 0xfe01, 0xfdec, 0xfdd3, 0xfdae,
+ 0xfd6f, 0xfd1d, 0xfce4, 0xfcd0, 0xfcc6, 0xfcb5,
+ 0xfc9a, 0xfc87, 0xfc8b, 0xfca6, 0xfcdd, 0xfd33,
+ 0xfd8b, 0xfdc7, 0xfdd8, 0xfdb9, 0xfd77, 0xfd27,
+ 0xfce2, 0xfccc, 0xfce8, 0xfd28, 0xfd90, 0xfe08,
+ 0xfe60, 0xfe84, 0xfe73, 0xfe33, 0xfdea, 0xfdb7,
+ 0xfd97, 0xfd90, 0xfdb2, 0xfdf9, 0xfe55, 0xfeb7,
+ 0xff05, 0xff31, 0xff59, 0xff96, 0xffd3, 0x0002,
+ 0x0022, 0x0017, 0xffd6, 0xff85, 0xff56, 0xff57,
+ 0xff7f, 0xffb5, 0xffdc, 0xfff2, 0x000f, 0x0038,
+ 0x0064, 0x0095, 0x00b5, 0x00bb, 0x00bc, 0x00aa,
+ 0x007b, 0x0051, 0x0032, 0x0023, 0x003d, 0x007b,
+ 0x00cd, 0x012d, 0x0186, 0x01bd, 0x01c4, 0x018d,
+ 0x0127, 0x00c4, 0x007e, 0x0056, 0x0058, 0x007b,
+ 0x00a4, 0x00bb, 0x00a7, 0x005a, 0xffed, 0xff81,
+ 0xff31, 0xff08, 0xfefe, 0xff0f, 0xff49, 0xffb6,
+ 0x0033, 0x0087, 0x009c, 0x0087, 0x0050, 0x0008,
+ 0xffd3, 0xffc0, 0xffc8, 0xffd5, 0xffcd, 0xffb9,
+ 0xffab, 0xff93, 0xff79, 0xff87, 0xffb5, 0xffdd,
+ 0xffec, 0xffdb, 0xffb2, 0xff7c, 0xff49, 0xff1d,
+ 0xfeef, 0xfed2, 0xfeda, 0xfee3, 0xfedf, 0xfee7,
+ 0xff05, 0xff2e, 0xff44, 0xff36, 0xff16, 0xfee0,
+ 0xfe9b, 0xfe7b, 0xfe87, 0xfeb5, 0xff0d, 0xff6c,
+ 0xffb5, 0xffeb, 0xffee, 0xffad, 0xff49, 0xfed9,
+ 0xfe78, 0xfe3b, 0xfe11, 0xfdeb, 0xfdc9, 0xfdb1,
+ 0xfd9c, 0xfd83, 0xfd77, 0xfd88, 0xfdad, 0xfdef,
+ 0xfe4a, 0xfe98, 0xfecd, 0xfeea, 0xfee1, 0xfec4,
+ 0xfea3, 0xfe76, 0xfe43, 0xfe10, 0xfdf6, 0xfe0c,
+ 0xfe41, 0xfe86, 0xfece, 0xfefd, 0xff0a, 0xff04,
+ 0xff01, 0xff1b, 0xff3e, 0xff58, 0xff7e, 0xffbc,
+ 0x001d, 0x00ac, 0x014c, 0x01d5, 0x0219, 0x01f8,
+ 0x0194, 0x011b, 0x00a8, 0x006b, 0x0069, 0x0091,
+ 0x00e8, 0x013e, 0x0166, 0x0178, 0x0172, 0x0155,
+ 0x014f, 0x0168, 0x018c, 0x01ae, 0x01bb, 0x01ba,
+ 0x01b3, 0x0199, 0x017d, 0x0156, 0x0117, 0x00ed,
+ 0x00df, 0x00d0, 0x00d5, 0x00e2, 0x00d6, 0x00c2,
+ 0x00aa, 0x0088, 0x0076, 0x006b, 0x005a, 0x0046,
+ 0x0011, 0xffbc, 0xff82, 0xff71, 0xff69, 0xff75,
+ 0xff95, 0xff9d, 0xff74, 0xff2c, 0xfee5, 0xfeb9,
+ 0xfeb2, 0xfec6, 0xfee1, 0xfef4, 0xfee7, 0xfea1,
+ 0xfe2b, 0xfdac, 0xfd40, 0xfcfd, 0xfcfd, 0xfd42,
+ 0xfdb1, 0xfe33, 0xfeb4, 0xff16, 0xff46, 0xff4a,
+ 0xff12, 0xfe93, 0xfdfb, 0xfd8b, 0xfd40, 0xfd0b,
+ 0xfcf8, 0xfd09, 0xfd29, 0xfd45, 0xfd52, 0xfd53,
+ 0xfd50, 0xfd4c, 0xfd4d, 0xfd54, 0xfd5f, 0xfd7a,
+ 0xfda0, 0xfd9e, 0xfd62, 0xfd25, 0xfd0b, 0xfd0f,
+ 0xfd42, 0xfdaa, 0xfe25, 0xfe9a, 0xfeec, 0xff14,
+ 0xff3b, 0xff77, 0xffb4, 0xffe3, 0x0001, 0x001b,
+ 0x0035, 0x0049, 0x0072, 0x00ba, 0x00eb, 0x00f1,
+ 0x00ec, 0x00dc, 0x00d1, 0x00de, 0x00eb, 0x010f,
+ 0x0170, 0x01df, 0x022b, 0x024b, 0x023b, 0x0219,
+ 0x01fb, 0x01dc, 0x01c1, 0x01a0, 0x0164, 0x0115,
+ 0x00c6, 0x0082, 0x0048, 0x0018, 0x0000, 0x0003,
+ 0x001f, 0x005e, 0x00ad, 0x00e6, 0x010b, 0x012c,
+ 0x013d, 0x0126, 0x00dd, 0x0084, 0x0040, 0x0013,
+ 0xffff, 0xfff8, 0xffe3, 0xffbd, 0xffa3, 0xffac,
+ 0xffd2, 0xffee, 0xffe2, 0xffb7, 0xff88, 0xff6d,
+ 0xff6b, 0xff7f, 0xffad, 0xffda, 0xffe2, 0xffc3,
+ 0xff74, 0xfef3, 0xfe6e, 0xfe13, 0xfdf6, 0xfe13,
+ 0xfe4d, 0xfeab, 0xff31, 0xffb0, 0x0018, 0x0067,
+ 0x0090, 0x00af, 0x00cb, 0x00cd, 0x00c5, 0x00aa,
+ 0x0060, 0x0008, 0xffa3, 0xff0c, 0xfe72, 0xfdfe,
+ 0xfdb7, 0xfdab, 0xfdc9, 0xfde9, 0xfe0a, 0xfe2f,
+ 0xfe67, 0xfeb8, 0xfee7, 0xfed1, 0xfe9e, 0xfe71,
+ 0xfe68, 0xfe87, 0xfea1, 0xfeaa, 0xfeb3, 0xfeb7,
+ 0xfeb5, 0xfeb8, 0xfebe, 0xfec0, 0xfebb, 0xfeb6,
+ 0xfecd, 0xff09, 0xff6b, 0xffed, 0x006f, 0x00cd,
+ 0x00e6, 0x00c1, 0x0085, 0x0045, 0x000a, 0xffdf,
+ 0xffb5, 0xffa7, 0xffd1, 0x0007, 0x0038, 0x0064,
+ 0x0060, 0x003d, 0x0021, 0xffe9, 0xff9d, 0xff5f,
+ 0xff1f, 0xfee4, 0xfec0, 0xfea7, 0xfe9d, 0xfea5,
+ 0xfec6, 0xff1b, 0xff99, 0x000f, 0x004a, 0x0019,
+ 0xff9c, 0xff21, 0xfed2, 0xfec6, 0xfeee, 0xff28,
+ 0xff75, 0xffd3, 0x0033, 0x0093, 0x00d9, 0x00ea,
+ 0x00cb, 0x0084, 0x0013, 0xff7d, 0xfee6, 0xfe82,
+ 0xfe61, 0xfe85, 0xfed7, 0xfeff, 0xfede, 0xfea6,
+ 0xfe5d, 0xfe02, 0xfdc6, 0xfdc8, 0xfdf9, 0xfe36,
+ 0xfe6f, 0xfe9a, 0xfea0, 0xfe85, 0xfe5c, 0xfe21,
+ 0xfded, 0xfde2, 0xfe05, 0xfe42, 0xfe6d, 0xfe6f,
+ 0xfe65, 0xfe55, 0xfe3e, 0xfe2e, 0xfe1f, 0xfe18,
+ 0xfe22, 0xfe1a, 0xfe04, 0xfdeb, 0xfdb6, 0xfd6f,
+ 0xfd29, 0xfcec, 0xfcc3, 0xfc99, 0xfc80, 0xfcac,
+ 0xfcff, 0xfd59, 0xfdbf, 0xfe0e, 0xfe36, 0xfe3a,
+ 0xfe12, 0xfde2, 0xfdd9, 0xfdf6, 0xfe24, 0xfe49,
+ 0xfe6e, 0xfe95, 0xfea7, 0xfec1, 0xfeea, 0xfee5,
+ 0xfec9, 0xfec4, 0xfec8, 0xfee3, 0xff16, 0xff2d,
+ 0xff26, 0xff0e, 0xfef1, 0xfee4, 0xfee2, 0xfeda,
+ 0xfec7, 0xfec4, 0xff02, 0xff6f, 0xffe1, 0x004f,
+ 0x0085, 0x0067, 0x0014, 0xff86, 0xfee1, 0xfe73,
+ 0xfe28, 0xfdfc, 0xfe11, 0xfe4d, 0xfe85, 0xfe97,
+ 0xfe89, 0xfe82, 0xfe78, 0xfe78, 0xfeb3, 0xff14,
+ 0xff7e, 0xfff2, 0x004a, 0x0078, 0x006d, 0x0028,
+ 0xffeb, 0xffc6, 0xff96, 0xff74, 0xff4f, 0xff0d,
+ 0xfee3, 0xfedc, 0xfede, 0xfef5, 0xff0b, 0xff08,
+ 0xff03, 0xfefc, 0xfee7, 0xfec7, 0xfebe, 0xfee6,
+ 0xff16, 0xff1b, 0xfef8, 0xfeb9, 0xfe76, 0xfe48,
+ 0xfe25, 0xfe15, 0xfe2b, 0xfe74, 0xfef4, 0xff89,
+ 0x0000, 0x0043, 0x003e, 0xffff, 0xffab, 0xff59,
+ 0xff20, 0xff1a, 0xff3d, 0xff79, 0xffcc, 0x001d,
+ 0x0034, 0xfffd, 0xffa4, 0xff40, 0xfed3, 0xfe89,
+ 0xfe73, 0xfe8f, 0xfee3, 0xff45, 0xff96, 0xffde,
+ 0xfff4, 0xffd5, 0xffb2, 0xff85, 0xff4d, 0xff20,
+ 0xfeef, 0xfed1, 0xfee7, 0xff2c, 0xff92, 0xffe5,
+ 0xfff7, 0xffed, 0xffc8, 0xff82, 0xff44, 0xff16,
+ 0xff02, 0xff24, 0xff50, 0xff6c, 0xff8b, 0xff9b,
+ 0xff9c, 0xffa7, 0xffb9, 0xffdb, 0x000b, 0x0031,
+ 0x0040, 0x0029, 0xffdd, 0xff6e, 0xff03, 0xfeb2,
+ 0xfe92, 0xfebb, 0xff1a, 0xff7a, 0xffcc, 0x000b,
+ 0x0014, 0xffdd, 0xff7e, 0xff13, 0xfeb7, 0xfe66,
+ 0xfe24, 0xfe0b, 0xfe08, 0xfe0b, 0xfe3c, 0xfe8d,
+ 0xfee7, 0xff4c, 0xff90, 0xffa5, 0xffac, 0xffaa,
+ 0xffab, 0xffad, 0xff86, 0xff51, 0xff37, 0xff22,
+ 0xff13, 0xff0c, 0xfef8, 0xfed7, 0xfeb4, 0xfe9e,
+ 0xfec2, 0xff26, 0xffa5, 0x001c, 0x0067, 0x0063,
+ 0x000f, 0xff87, 0xfefb, 0xfea9, 0xfead, 0xfee8,
+ 0xff22, 0xff48, 0xff65, 0xff77, 0xff62, 0xff27,
+ 0xfefc, 0xff04, 0xff35, 0xff8b, 0xfff9, 0x0052,
+ 0x0083, 0x0092, 0x008d, 0x0077, 0x003f, 0xffe8,
+ 0xff82, 0xff25, 0xfef9, 0xfefc, 0xfef1, 0xfec6,
+ 0xfe9b, 0xfe76, 0xfe5f, 0xfe61, 0xfe69, 0xfe6e,
+ 0xfe7b, 0xfe94, 0xfeb5, 0xfed9, 0xff02, 0xff1c,
+ 0xff18, 0xff12, 0xff12, 0xff03, 0xfef7, 0xfef6,
+ 0xfefa, 0xff1d, 0xff4f, 0xff75, 0xffa3, 0xffc1,
+ 0xffb4, 0xff99, 0xff73, 0xff4f, 0xff62, 0xffa0,
+ 0xffea, 0x0034, 0x0051, 0x002d, 0xffe2, 0xff79,
+ 0xff0b, 0xfec0, 0xfe9c, 0xfea7, 0xfee3, 0xff33,
+ 0xff7f, 0xffae, 0xffb3, 0xff99, 0xff5d, 0xff10,
+ 0xfecb, 0xfe7f, 0xfe32, 0xfdf8, 0xfdb4, 0xfd58,
+ 0xfcff, 0xfcc4, 0xfcc1, 0xfcf0, 0xfd37, 0xfd7f,
+ 0xfda5, 0xfdab, 0xfdbf, 0xfdde, 0xfe01, 0xfe37,
+ 0xfe60, 0xfe62, 0xfe46, 0xfe07, 0xfdc4, 0xfdab,
+ 0xfdb9, 0xfdf2, 0xfe58, 0xfec3, 0xff1f, 0xff67,
+ 0xff83, 0xff72, 0xff49, 0xff1a, 0xfee7, 0xfead,
+ 0xfe74, 0xfe57, 0xfe55, 0xfe6b, 0xfe7d, 0xfe61,
+ 0xfe26, 0xfdf1, 0xfdc5, 0xfdb8, 0xfdde, 0xfe25,
+ 0xfe79, 0xfec9, 0xfef0, 0xfed9, 0xfe99, 0xfe4e,
+ 0xfe0c, 0xfdce, 0xfd8b, 0xfd4e, 0xfd25, 0xfd10,
+ 0xfd17, 0xfd48, 0xfd98, 0xfde3, 0xfe15, 0xfe2a,
+ 0xfe20, 0xfe06, 0xfdfd, 0xfe11, 0xfe43, 0xfe98,
+ 0xfeee, 0xff16, 0xff12, 0xfee6, 0xfe97, 0xfe46,
+ 0xfe12, 0xfe02, 0xfe22, 0xfe70, 0xfed9, 0xff43,
+ 0xff89, 0xff9a, 0xff81, 0xff58, 0xff51, 0xff76,
+ 0xffa4, 0xffcc, 0xffd9, 0xffbd, 0xff9a, 0xff7c,
+ 0xff66, 0xff78, 0xff9d, 0xffc0, 0x0000, 0x003e,
+ 0x0036, 0xfffd, 0xffb0, 0xff55, 0xff07, 0xfede,
+ 0xfedf, 0xff04, 0xff36, 0xff5e, 0xff68, 0xff50,
+ 0xff21, 0xfede, 0xfe99, 0xfe69, 0xfe49, 0xfe3a,
+ 0xfe43, 0xfe5a, 0xfe7e, 0xfea4, 0xfec7, 0xfeec,
+ 0xff08, 0xff18, 0xff30, 0xff3e, 0xff28, 0xfeeb,
+ 0xfe98, 0xfe49, 0xfdfd, 0xfdc2, 0xfdcc, 0xfe09,
+ 0xfe50, 0xfeab, 0xfeed, 0xfee8, 0xfed4, 0xfec2,
+ 0xfe98, 0xfe72, 0xfe59, 0xfe47, 0xfe47, 0xfe41,
+ 0xfe1a, 0xfdea, 0xfdd7, 0xfdf4, 0xfe27, 0xfe47,
+ 0xfe48, 0xfe3b, 0xfe4c, 0xfe8a, 0xfeda, 0xff35,
+ 0xff96, 0xffda, 0x0000, 0x0010, 0x0002, 0xffef,
+ 0xffd3, 0xff8a, 0xff1e, 0xfeb9, 0xfe6e, 0xfe3b,
+ 0xfe12, 0xfdef, 0xfde3, 0xfdf3, 0xfe20, 0xfe59,
+ 0xfe88, 0xfeb9, 0xfee1, 0xfee9, 0xfee1, 0xfecd,
+ 0xfea7, 0xfe89, 0xfe7c, 0xfe80, 0xfea0, 0xfecb,
+ 0xfef1, 0xff14, 0xff32, 0xff50, 0xff78, 0xffaf,
+ 0xfff6, 0x001f, 0x0002, 0xffb9, 0xff5e, 0xff02,
+ 0xfebd, 0xfe95, 0xfe94, 0xfec4, 0xff0a, 0xff47,
+ 0xff63, 0xff44, 0xff00, 0xfeb3, 0xfe64, 0xfe28,
+ 0xfe06, 0xfdf6, 0xfe04, 0xfe29, 0xfe59, 0xfe8b,
+ 0xfead, 0xfec6, 0xfedd, 0xfee5, 0xfedd, 0xfec6,
+ 0xfe93, 0xfe54, 0xfe18, 0xfdf0, 0xfdf5, 0xfe21,
+ 0xfe60, 0xfea0, 0xfec0, 0xfeb3, 0xfe92, 0xfe58,
+ 0xfe19, 0xfdf4, 0xfdd8, 0xfdc9, 0xfdd3, 0xfdd9,
+ 0xfdd7, 0xfdd3, 0xfdad, 0xfd70, 0xfd38, 0xfd01,
+ 0xfcec, 0xfd20, 0xfd68, 0xfd8c, 0xfd94, 0xfd7c,
+ 0xfd30, 0xfcd2, 0xfc8b, 0xfc62, 0xfc62, 0xfc8e,
+ 0xfcc7, 0xfcfc, 0xfd29, 0xfd3d, 0xfd38, 0xfd1d,
+ 0xfcf1, 0xfcde, 0xfcfb, 0xfd39, 0xfd92, 0xfdf5,
+ 0xfe50, 0xfe9e, 0xfebc, 0xfe8f, 0xfe2e, 0xfdb8,
+ 0xfd40, 0xfcdc, 0xfc97, 0xfc75, 0xfc80, 0xfcbd,
+ 0xfd17, 0xfd6d, 0xfdaa, 0xfdc9, 0xfdca, 0xfdb5,
+ 0xfd92, 0xfd6e, 0xfd61, 0xfd65, 0xfd6f, 0xfd86,
+ 0xfda7, 0xfdd7, 0xfe14, 0xfe34, 0xfe37, 0xfe49,
+ 0xfe64, 0xfe7a, 0xfe84, 0xfe74, 0xfe51, 0xfe29,
+ 0xfe01, 0xfdef, 0xfdf6, 0xfe12, 0xfe5a, 0xfec2,
+ 0xff25, 0xff6e, 0xff7d, 0xff62, 0xff43, 0xff0c,
+ 0xfebf, 0xfe86, 0xfe66, 0xfe78, 0xfec7, 0xff23,
+ 0xff7f, 0xffdd, 0x0020, 0x0043, 0x0030, 0xfff0,
+ 0xffc2, 0xffb2, 0xffb1, 0xffe5, 0x003e, 0x009b,
+ 0x0101, 0x014b, 0x015d, 0x0149, 0x0112, 0x00d5,
+ 0x00ba, 0x00b0, 0x00b4, 0x00cc, 0x00d6, 0x00c9,
+ 0x00ab, 0x0061, 0xfffd, 0xffa5, 0xff63, 0xff41,
+ 0xff4c, 0xff71, 0xff96, 0xffae, 0xffb5, 0xffa4,
+ 0xff71, 0xff19, 0xfeaa, 0xfe2f, 0xfdbb, 0xfd71,
+ 0xfd5f, 0xfd6f, 0xfd91, 0xfdc8, 0xfdfc, 0xfe08,
+ 0xfde6, 0xfda7, 0xfd6b, 0xfd5b, 0xfd81, 0xfdce,
+ 0xfe22, 0xfe52, 0xfe5f, 0xfe69, 0xfe62, 0xfe35,
+ 0xfdf6, 0xfdab, 0xfd48, 0xfcdb, 0xfc86, 0xfc69,
+ 0xfc8d, 0xfcd6, 0xfd14, 0xfd2b, 0xfd22, 0xfcfe,
+ 0xfcca, 0xfcac, 0xfcb0, 0xfcd5, 0xfd12, 0xfd48,
+ 0xfd6c, 0xfd9e, 0xfddf, 0xfe28, 0xfe92, 0xff04,
+ 0xff5b, 0xffa9, 0xfff0, 0x000b, 0xfff6, 0xffb3,
+ 0xff47, 0xfecf, 0xfe5c, 0xfdf7, 0xfdb2, 0xfd9c,
+ 0xfdb6, 0xfde9, 0xfe1c, 0xfe4e, 0xfe81, 0xfe95,
+ 0xfe70, 0xfe21, 0xfdc3, 0xfd73, 0xfd68, 0xfdb9,
+ 0xfe2f, 0xfea7, 0xff25, 0xff87, 0xffb6, 0xffc5,
+ 0xffc5, 0xffc9, 0xffd2, 0xffbd, 0xff80, 0xff41,
+ 0xff17, 0xff05, 0xff1a, 0xff3f, 0xff47, 0xff3c,
+ 0xff44, 0xff5e, 0xff89, 0xffdb, 0x0037, 0x0076,
+ 0x009c, 0x00a6, 0x008f, 0x0061, 0x0014, 0xffb7,
+ 0xff5b, 0xfeff, 0xfeb0, 0xfe71, 0xfe31, 0xfdf1,
+ 0xfd9a, 0xfd2f, 0xfceb, 0xfcda, 0xfcf6, 0xfd52,
+ 0xfdd0, 0xfe46, 0xfe9e, 0xfeab, 0xfe74, 0xfe2f,
+ 0xfdf1, 0xfdd3, 0xfddb, 0xfdde, 0xfddf, 0xfded,
+ 0xfde9, 0xfde6, 0xfe04, 0xfe2b, 0xfe45, 0xfe59,
+ 0xfe6b, 0xfe78, 0xfe7e, 0xfe8f, 0xfeb2, 0xfed5,
+ 0xfeeb, 0xfefc, 0xff10, 0xff23, 0xff2d, 0xff30,
+ 0xff25, 0xfef8, 0xfea7, 0xfe49, 0xfe02, 0xfdf2,
+ 0xfe04, 0xfe1e, 0xfe3f, 0xfe50, 0xfe53, 0xfe69,
+ 0xfe88, 0xfeae, 0xfee8, 0xff1c, 0xff3e, 0xff4c,
+ 0xff2b, 0xfedd, 0xfe70, 0xfe06, 0xfde0, 0xfdf6,
+ 0xfe29, 0xfe88, 0xfefa, 0xff56, 0xffb3, 0x0013,
+ 0x0069, 0x00ab, 0x00ca, 0x00d2, 0x00d5, 0x00cc,
+ 0x00c7, 0x00bb, 0x0091, 0x006b, 0x005d, 0x0062,
+ 0x007b, 0x0092, 0x00a1, 0x00b9, 0x00b3, 0x0081,
+ 0x005d, 0x0054, 0x0045, 0x002c, 0x0014, 0x0000,
+ 0xffff, 0x002a, 0x006b, 0x00a0, 0x00d7, 0x0114,
+ 0x0137, 0x0146, 0x014c, 0x0135, 0x00fd, 0x00b5,
+ 0x0075, 0x0055, 0x0057, 0x007e, 0x00c2, 0x00eb,
+ 0x00e1, 0x00b0, 0x0043, 0xff9c, 0xfef7, 0xfe77,
+ 0xfe2b, 0xfe1d, 0xfe3d, 0xfe6d, 0xfe9d, 0xfec4,
+ 0xfeea, 0xff0b, 0xff16, 0xff08, 0xfeda, 0xfea4,
+ 0xfe92, 0xfe92, 0xfe87, 0xfe7f, 0xfe81, 0xfe99,
+ 0xfec9, 0xfef7, 0xff1a, 0xff3d, 0xff59, 0xff77,
+ 0xff97, 0xffa2, 0xffad, 0xffc1, 0xffb8, 0xff95,
+ 0xff70, 0xff5b, 0xff6e, 0xff9d, 0xffcf, 0x0009,
+ 0x0033, 0x0034, 0x0021, 0xfffc, 0xffbb, 0xff83,
+ 0xff72, 0xff94, 0xffe3, 0x002c, 0x004d, 0x004a,
+ 0x002f, 0x0002, 0xffc1, 0xff70, 0xff2b, 0xff14,
+ 0xff2d, 0xff5f, 0xff9d, 0xffe2, 0x0019, 0x0040,
+ 0x006c, 0x0095, 0x00b3, 0x00c3, 0x00a9, 0x0073,
+ 0x004e, 0x003e, 0x0047, 0x0075, 0x00a5, 0x00c6,
+ 0x00e7, 0x010d, 0x012f, 0x0144, 0x0146, 0x013b,
+ 0x0125, 0x010d, 0x0104, 0x00fe, 0x00e7, 0x00c1,
+ 0x00ac, 0x00c8, 0x0113, 0x0182, 0x0209, 0x0285,
+ 0x02e4, 0x031a, 0x0307, 0x02b2, 0x0244, 0x01db,
+ 0x0187, 0x0145, 0x0111, 0x0100, 0x0106, 0x010a,
+ 0x010e, 0x010b, 0x00eb, 0x00a4, 0x0039, 0xffc7,
+ 0xff5d, 0xfeff, 0xfecc, 0xfec4, 0xfec9, 0xfede,
+ 0xff05, 0xff33, 0xff62, 0xff83, 0xff8d, 0xff79,
+ 0xff41, 0xff02, 0xfed0, 0xfea4, 0xfe87, 0xfe75,
+ 0xfe5b, 0xfe4a, 0xfe4a, 0xfe5b, 0xfe7f, 0xfeb0,
+ 0xfee8, 0xff27, 0xff60, 0xff88, 0xff8f, 0xff7d,
+ 0xff7e, 0xff9d, 0xffcc, 0x000a, 0x0037, 0x003b,
+ 0x0031, 0x001c, 0xffec, 0xffa3, 0xff3f, 0xfedb,
+ 0xfeb2, 0xfecc, 0xff0b, 0xff65, 0xffbf, 0xfffd,
+ 0x002b, 0x003b, 0x0011, 0xffe0, 0xffc2, 0xff8b,
+ 0xff3e, 0xfefc, 0xfeb8, 0xfe69, 0xfe25, 0xfdf8,
+ 0xfde2, 0xfde9, 0xfe15, 0xfe59, 0xfeb1, 0xff28,
+ 0xff9d, 0xfff9, 0x004a, 0x0053, 0xfffb, 0xffae,
+ 0xff88, 0xff82, 0xffdb, 0x0048, 0x0055, 0x003d,
+ 0x003a, 0x0043, 0x0089, 0x00f0, 0x011c, 0x0120,
+ 0x0137, 0x0146, 0x0128, 0x00fe, 0x00f2, 0x00fe,
+ 0x0119, 0x0149, 0x0178, 0x018f, 0x0199, 0x018c,
+ 0x016b, 0x0152, 0x0107, 0x0060, 0xffcb, 0xff83,
+ 0xff6c, 0xffb4, 0x0030, 0x0048, 0xfff8, 0xff80,
+ 0xff08, 0xfeef, 0xfefe, 0xfea0, 0xfe16, 0xfd8c,
+ 0xfcb6, 0xfc38, 0xfcc8, 0xfdc1, 0xfe85, 0xff31,
+ 0xffa9, 0xffd5, 0xffe4, 0xffc6, 0xff7d, 0xff52,
+ 0xff48, 0xff24, 0xfecd, 0xfe52, 0xfdff, 0xfdfd,
+ 0xfde4, 0xfd8d, 0xfd42, 0xfcf3, 0xfca1, 0xfcd9,
+ 0xfdb6, 0xfea7, 0xff46, 0xff78, 0xff45, 0xff0c,
+ 0xff2e, 0xff96, 0xfff3, 0x0010, 0xffca, 0xff3b,
+ 0xfebd, 0xfe65, 0xfe25, 0xfe12, 0xfe18, 0xfe1f,
+ 0xfe3d, 0xfe66, 0xfe6f, 0xfe34, 0xfdbc, 0xfd85,
+ 0xfe28, 0xff81, 0x00d5, 0x018f, 0x017c, 0x00ac,
+ 0xff81, 0xfe97, 0xfe0d, 0xfd74, 0xfcf2, 0xfd27,
+ 0xfe3c, 0xffd4, 0x0116, 0x0139, 0x007b, 0xff90,
+ 0xfec4, 0xfe71, 0xfedf, 0xffe4, 0x0157, 0x0316,
+ 0x0486, 0x04e2, 0x03d1, 0x01de, 0x0053, 0xffed,
+ 0x0047, 0x00c8, 0x00de, 0x0085, 0x00c6, 0x01bc,
+ 0x01fd, 0x013f, 0x0048, 0xff64, 0xfeff, 0xff04,
+ 0xfe84, 0xfdbb, 0xfd6c, 0xfd84, 0xfe3b, 0xff8f,
+ 0x0086, 0x00ae, 0x0053, 0xffdd, 0xffaf, 0xff8b,
+ 0xff0b, 0xfe6d, 0xfdf4, 0xfddf, 0xfe6b, 0xff16,
+ 0xff67, 0xffa5, 0xffce, 0xff73, 0xfe9b, 0xfda4,
+ 0xfd06, 0xfd7b, 0xff34, 0x012b, 0x020c, 0x0141,
+ 0xff19, 0xfc8c, 0xfa80, 0xf980, 0xf9e7, 0xfb29,
+ 0xfc43, 0xfcdb, 0xfcc5, 0xfc31, 0xfc3b, 0xfd67,
+ 0xfebb, 0xff0b, 0xfe43, 0xfd53, 0xfcc9, 0xfca2,
+ 0xfd2d, 0xfe52, 0xff4b, 0xff87, 0xfec9, 0xfdb0,
+ 0xfd55, 0xfdb3, 0xfe43, 0xfe97, 0xfe7e, 0xfec5,
+ 0xff78, 0xff8f, 0xff92, 0xffe3, 0xff40, 0xfdd4,
+ 0xfcde, 0xfc9c, 0xfd27, 0xfe5c, 0xff8c, 0x0027,
+ 0xffc3, 0xfece, 0xfe1e, 0xfd70, 0xfcb4, 0xfc94,
+ 0xfcf8, 0xfdb9, 0xfee9, 0xffbd, 0xff88, 0xfec1,
+ 0xfe1a, 0xfe32, 0xff72, 0x00e8, 0x0130, 0x00bb,
+ 0x0063, 0xffcf, 0xff57, 0xfff8, 0x0143, 0x023b,
+ 0x0236, 0x00fe, 0xff73, 0xfea3, 0xfea0, 0xfe8d,
+ 0xfdd9, 0xfdeb, 0xff87, 0x006f, 0xffb9, 0xff2b,
+ 0xff5a, 0xffe0, 0x007d, 0x0054, 0xff45, 0xfe36,
+ 0xfd7e, 0xfd06, 0xfcfa, 0xfdab, 0xfeb3, 0xff0c,
+ 0xfe7e, 0xfd76, 0xfcd1, 0xfdb3, 0xfef8, 0xfe7a,
+ 0xfd2c, 0xfcc3, 0xfc8b, 0xfbb1, 0xfac6, 0xfad8,
+ 0xfc30, 0xfdd0, 0xfeba, 0xfe6e, 0xfd20, 0xfc52,
+ 0xfc9a, 0xfd09, 0xfdf9, 0xffbd, 0x0081, 0xff6c,
+ 0xfdea, 0xfd14, 0xfd2d, 0xfe37, 0xff22, 0xfee9,
+ 0xfe00, 0xfcd2, 0xfb78, 0xfab4, 0xfa64, 0xf9e1,
+ 0xfa11, 0xfb5e, 0xfc9e, 0xfd0d, 0xfc93, 0xfbb5,
+ 0xfb29, 0xfb19, 0xfc34, 0xfe53, 0xff95, 0x0021,
+ 0x0112, 0x0135, 0x006b, 0x002e, 0x0050, 0x0014,
+ 0xff4c, 0xfe3f, 0xfe36, 0xffc1, 0x01cd, 0x0326,
+ 0x032c, 0x024a, 0x015c, 0x008c, 0x0039, 0x0117,
+ 0x02a7, 0x0331, 0x01dc, 0x0033, 0xffe8, 0x0063,
+ 0x00d9, 0x0112, 0x0003, 0xfd6f, 0xfa9d, 0xf87a,
+ 0xf7b4, 0xf902, 0xfc12, 0xff54, 0x00c3, 0xffa2,
+ 0xfd6f, 0xfc14, 0xfc0e, 0xfd13, 0xfe96, 0xff85,
+ 0xffb6, 0x000e, 0x0015, 0xfefb, 0xfdb5, 0xfcf0,
+ 0xfc9a, 0xfcfb, 0xfd1b, 0xfc38, 0xfba0, 0xfc0a,
+ 0xfd2e, 0xfe73, 0xfe7b, 0xfd71, 0xfc4b, 0xfaa4,
+ 0xf94f, 0xf907, 0xf822, 0xf6a1, 0xf5f6, 0xf635,
+ 0xf7f3, 0xfa87, 0xfb4c, 0xfaa1, 0xfaa2, 0xfad3,
+ 0xfa3f, 0xf8c7, 0xf674, 0xf4d9, 0xf61a, 0xfa01,
+ 0xfe64, 0x0156, 0x022a, 0x012e, 0xfeea, 0xfbfc,
+ 0xf983, 0xf859, 0xf873, 0xf9eb, 0xfca5, 0xfef9,
+ 0xff3d, 0xfdab, 0xfbab, 0xfa64, 0xf991, 0xf836,
+ 0xf6d3, 0xf6e4, 0xf8cd, 0xfbb6, 0xfe58, 0xff8a,
+ 0xfe9f, 0xfc24, 0xfa34, 0xfa22, 0xfb26, 0xfc4f,
+ 0xfd2c, 0xfd99, 0xfdfc, 0xfe0d, 0xfd38, 0xfc16,
+ 0xfb0f, 0xfa2c, 0xfa29, 0xfb21, 0xfc30, 0xfcb5,
+ 0xfc5e, 0xfb7d, 0xfb14, 0xfbad, 0xfcf8, 0xfe3b,
+ 0xfe92, 0xfd64, 0xfb57, 0xfa03, 0xf9a1, 0xf93f,
+ 0xf91f, 0xf967, 0xf8ff, 0xf86d, 0xf95a, 0xfb7f,
+ 0xfd68, 0xfe0c, 0xfd85, 0xfd4b, 0xfdea, 0xfe92,
+ 0xff7c, 0x00c7, 0x0192, 0x01f9, 0x0172, 0xfee4,
+ 0xfcb5, 0xfd26, 0xfe47, 0xff54, 0x010b, 0x019a,
+ 0x006d, 0xff5c, 0xfee9, 0xff8b, 0x0116, 0x013a,
+ 0xffb5, 0xfe04, 0xfc0d, 0xfaaf, 0xfb49, 0xfc70,
+ 0xfc9d, 0xfc3c, 0xfbf1, 0xfc1f, 0xfcb3, 0xfd31,
+ 0xfd79, 0xfd54, 0xfc90, 0xfbd6, 0xfc04, 0xfd0f,
+ 0xfdd1, 0xfda5, 0xfdc3, 0xfead, 0xfec3, 0xfdf4,
+ 0xfdb9, 0xfd87, 0xfcef, 0xfd2c, 0xfdca, 0xfdc3,
+ 0xfdac, 0xfd2f, 0xfc14, 0xfbd0, 0xfc45, 0xfc94,
+ 0xfcf8, 0xfc91, 0xfb27, 0xfa8b, 0xfae1, 0xfb3f,
+ 0xfc08, 0xfd05, 0xfd3f, 0xfcd1, 0xfc77, 0xfc56,
+ 0xfc32, 0xfc92, 0xfd5b, 0xfcfd, 0xfc1c, 0xfd14,
+ 0xff42, 0x006b, 0xffcd, 0xfe37, 0xfdad, 0xfe8b,
+ 0xfec9, 0xfe11, 0xfd88, 0xfce9, 0xfbe0, 0xfb39,
+ 0xfb76, 0xfc3b, 0xfd32, 0xfe69, 0xff78, 0xff9f,
+ 0xfefa, 0xfe19, 0xfce3, 0xfaf5, 0xf94d, 0xf9a9,
+ 0xfbc7, 0xfe52, 0x00bb, 0x01ae, 0x009a, 0xff63,
+ 0xfec5, 0xfe2b, 0xfe5d, 0xffb8, 0x00ad, 0xfffe,
+ 0xff12, 0x0017, 0x01ed, 0x02d8, 0x03ad, 0x03f2,
+ 0x02f0, 0x02d7, 0x03ac, 0x02d5, 0x007e, 0xfeac,
+ 0xfe8b, 0xfff8, 0x00f4, 0x0001, 0xfe84, 0xfe1c,
+ 0xfd8a, 0xfc1a, 0xfc6d, 0xfea2, 0xffd3, 0x0089,
+ 0x012a, 0xff77, 0xfd0a, 0xfc58, 0xfc67, 0xfd86,
+ 0x0060, 0x0380, 0x05aa, 0x05c2, 0x0443, 0x038e,
+ 0x039e, 0x03cb, 0x04b8, 0x0518, 0x0413, 0x038a,
+ 0x03cc, 0x034f, 0x028b, 0x02ea, 0x037e, 0x030f,
+ 0x02b4, 0x0240, 0x001b, 0xfe2b, 0xfee0, 0x0055,
+ 0x0071, 0x007c, 0x008e, 0xfdf5, 0xfa0e, 0xf94a,
+ 0xfa57, 0xfa93, 0xfb7c, 0xfbd9, 0xfab3, 0xfb81,
+ 0xfdc3, 0xff2a, 0x00b4, 0x0149, 0x00ca, 0x0173,
+ 0x01c4, 0x013e, 0x0138, 0x000c, 0xff0f, 0x0087,
+ 0x012c, 0x005f, 0x0168, 0x02fe, 0x02ef, 0x0258,
+ 0x0110, 0xfdec, 0xfaf6, 0xfab8, 0xfc66, 0xff28,
+ 0x0320, 0x061f, 0x05d6, 0x0239, 0xfcff, 0xf9e1,
+ 0xfa2e, 0xfb5a, 0xfc67, 0xfd31, 0xfe61, 0x02a5,
+ 0x07a0, 0x0829, 0x05d6, 0x03c9, 0x0185, 0xffa0,
+ 0xff70, 0xffaf, 0xfe3a, 0xfc0e, 0xfb89, 0xfbab,
+ 0xfbcd, 0xfd82, 0xff0f, 0xfebe, 0xfe71, 0xfea4,
+ 0xfebd, 0xfea9, 0xfdf7, 0xfdcd, 0xff69, 0x0334,
+ 0x0867, 0x09b7, 0x05ad, 0x03d9, 0x0518, 0x00b4,
+ 0xf670, 0xf1a0, 0xf9b1, 0x097d, 0x17c8, 0x1f63,
+ 0x1cb1, 0x107f, 0x02c6, 0xf92e, 0xf4ef, 0xf971,
+ 0x08c2, 0x1ba2, 0x24a6, 0x1fe3, 0x1699, 0x0d9c,
+ 0x02fd, 0xfa80, 0xf7a7, 0xf727, 0xf5d0, 0xf3e8,
+ 0xf5d5, 0xfef9, 0x08df, 0x0979, 0xfe54, 0xee69,
+ 0xe5c6, 0xe9be, 0xf2d3, 0xf8ad, 0xfce8, 0x046e,
+ 0x0d05, 0x122f, 0x159f, 0x187e, 0x17db, 0x1431,
+ 0x1053, 0x0c5f, 0x072b, 0x0192, 0xff8e, 0x0234,
+ 0x05b8, 0x0807, 0x0750, 0x0254, 0xfd32, 0xf964,
+ 0xf602, 0xf811, 0x0075, 0x0919, 0x0f08, 0x0f7a,
+ 0x0897, 0xffc4, 0xf9c6, 0xf5c8, 0xf211, 0xed38,
+ 0xe60d, 0xddb3, 0xd8d0, 0xdadd, 0xe251, 0xed1a,
+ 0xf786, 0xfacc, 0xf89e, 0xf96f, 0xfc78, 0xfb90,
+ 0xf95a, 0xfd65, 0x04d1, 0x04a3, 0xfe80, 0xfe98,
+ 0x0580, 0x0cdc, 0x14ff, 0x1b65, 0x1784, 0x093a,
+ 0xfa9a, 0xf2fb, 0xf268, 0xf610, 0xfa40, 0xfd8c,
+ 0x009e, 0x0002, 0xfc04, 0xfc7a, 0xff16, 0xfd14,
+ 0xfc73, 0xff7b, 0xff75, 0xfe7a, 0xff28, 0xfc15,
+ 0xf612, 0xf470, 0xf8cc, 0xfe44, 0x011e, 0x0341,
+ 0x07a2, 0x0eb0, 0x17b1, 0x1eff, 0x205d, 0x1c5d,
+ 0x163d, 0x115b, 0x10b6, 0x13cf, 0x1556, 0x0fab,
+ 0x0581, 0x00fd, 0x05c0, 0x0be5, 0x0a73, 0x0201,
+ 0xfafd, 0xf9b2, 0xfc99, 0x0310, 0x0ad6, 0x1198,
+ 0x172e, 0x15ab, 0x0abe, 0x01f2, 0x00ac, 0xffdd,
+ 0xfeeb, 0x02d4, 0x0b2e, 0x14ae, 0x1c4b, 0x1ff9,
+ 0x1faa, 0x1c0e, 0x1759, 0x155e, 0x1552, 0x11e9,
+ 0x0c20, 0x08d9, 0x05c5, 0x0244, 0x0411, 0x07d0,
+ 0x05eb, 0x0064, 0xfa50, 0xf4fa, 0xf247, 0xef2f,
+ 0xed53, 0xf3ac, 0xfb3b, 0xfabc, 0xf991, 0xfa22,
+ 0xf1d6, 0xe3d1, 0xddda, 0xdfc0, 0xe46e, 0xecd5,
+ 0xf155, 0xe9cc, 0xdfb8, 0xdb71, 0xd8ac, 0xd6ca,
+ 0xd86b, 0xded3, 0xec0c, 0xf901, 0xfd1d, 0xfdd3,
+ 0xfd22, 0xf4cf, 0xebea, 0xeac5, 0xe9f0, 0xe732,
+ 0xe999, 0xecdb, 0xeb91, 0xecc0, 0xf193, 0xf262,
+ 0xef95, 0xec96, 0xe9dc, 0xebd3, 0xf36c, 0xf9df,
+ 0xfcda, 0xfe3f, 0xfda9, 0xfca1, 0xfe2e, 0x009c,
+ 0xff35, 0xfb0e, 0xfc01, 0x02e3, 0x072e, 0x07d6,
+ 0x09ee, 0x09df, 0x0450, 0x0075, 0x028a, 0x0645,
+ 0x09fd, 0x0d94, 0x0d9c, 0x0ba2, 0x0cb3, 0x0f46,
+ 0x1343, 0x1cea, 0x25e8, 0x2572, 0x2125, 0x1e5c,
+ 0x1a1e, 0x173c, 0x16f1, 0x1298, 0x0e70, 0x125a,
+ 0x16c6, 0x169d, 0x1545, 0x0ecf, 0x0564, 0x004e,
+ 0xf803, 0xf14e, 0xfd25, 0x0824, 0xff1b, 0xfb12,
+ 0x02b7, 0x039d, 0x0ab6, 0x1a01, 0x166a, 0x0ac4,
+ 0x0c39, 0x0b2f, 0x0545, 0x0602, 0x04b4, 0x03fd,
+ 0x0acd, 0x0b65, 0x08f5, 0x0d4c, 0x0aeb, 0x063b,
+ 0x0d92, 0x11fb, 0x0e96, 0x0c2a, 0xfd9a, 0xe433,
+ 0xd305, 0xc6c8, 0xc497, 0xdaa5, 0xf3b0, 0xffdd,
+ 0x0b74, 0x0df5, 0x0047, 0xf766, 0xf41f, 0xeaf0,
+ 0xe7c7, 0xed5e, 0xf080, 0xf475, 0xf836, 0xf3fd,
+ 0xeec5, 0xebac, 0xe7c3, 0xeee9, 0x0428, 0x1665,
+ 0x1e57, 0x1a90, 0x06aa, 0xf364, 0xf574, 0x0195,
+ 0x07db, 0x0d5e, 0x13d8, 0x14f7, 0x0fef, 0x0365,
+ 0xf289, 0xe8a2, 0xe4a0, 0xe031, 0xe209, 0xe94b,
+ 0xeb88, 0xed5c, 0xf203, 0xf23d, 0xf6f0, 0x05ef,
+ 0x0c66, 0x092c, 0x0c78, 0x0b87, 0x0044, 0x0106,
+ 0x09dc, 0x04d1, 0xfef5, 0x045f, 0x0560, 0x01c5,
+ 0x01b4, 0xfe74, 0xfe07, 0x0562, 0x039d, 0xfebc,
+ 0x09e3, 0x12c0, 0x0bc7, 0x074d, 0x03d4, 0xfa0e,
+ 0xfcbd, 0x0883, 0x0702, 0x0632, 0x1431, 0x1960,
+ 0x0fe6, 0x114a, 0x1c40, 0x1a9e, 0x1329, 0x142c,
+ 0x11d0, 0x09de, 0x0bed, 0x1101, 0x1591, 0x2925,
+ 0x341f, 0x1fe8, 0x1639, 0x2066, 0x1761, 0x1521,
+ 0x2dfc, 0x2ab2, 0x138d, 0x1c9a, 0x1f17, 0x06db,
+ 0x0b80, 0x1fb3, 0x175e, 0x13c3, 0x2a4d, 0x3c3c,
+ 0x3d7f, 0x34df, 0x2d32, 0x2e5a, 0x2dfd, 0x2f86,
+ 0x38ce, 0x3402, 0x2ca1, 0x3f1d, 0x4bc0, 0x40b8,
+ 0x406d, 0x478f, 0x423b, 0x3e55, 0x3e89, 0x3d4e,
+ 0x3ac2, 0x2d3e, 0x2306, 0x2b68, 0x2ec0, 0x2e6d,
+ 0x397c, 0x3629, 0x2984, 0x2f5e, 0x3003, 0x2787,
+ 0x2f23, 0x320f, 0x2b20, 0x2e92, 0x23aa, 0x07e6,
+ 0xfd36, 0xfc70, 0x04c7, 0x1fb0, 0x29b5, 0x2209,
+ 0x2854, 0x25de, 0x18c7, 0x20ea, 0x2496, 0x1765,
+ 0x17b8, 0x1559, 0x07a0, 0x0b4a, 0x0bc7, 0xf6d2,
+ 0xeea6, 0xf41c, 0xf105, 0xef4a, 0xf214, 0xf362,
+ 0xf56f, 0xedc5, 0xdfac, 0xe18c, 0xea84, 0xe90a,
+ 0xe865, 0xec7a, 0xeaa1, 0xe4f1, 0xdd5f, 0xd266,
+ 0xcf20, 0xd845, 0xdf33, 0xdc5d, 0xd985, 0xdbb0,
+ 0xdb16, 0xd4ee, 0xcf0f, 0xc79d, 0xbd7d, 0xb9c5,
+ 0xb635, 0xa929, 0xa641, 0xb1eb, 0xb186, 0xac83,
+ 0xb6f9, 0xbcbb, 0xb75c, 0xbc23, 0xc519, 0xc724,
+ 0xccbc, 0xd5d1, 0xd71c, 0xd04c, 0xcb94, 0xcc2a,
+ 0xc7e1, 0xc4ab, 0xce47, 0xd07d, 0xc7d8, 0xcd94,
+ 0xd29a, 0xc810, 0xc5bf, 0xc426, 0xb759, 0xb858,
+ 0xc053, 0xbc75, 0xbd39, 0xbf77, 0xb7a4, 0xb684,
+ 0xbd57, 0xc168, 0xc5a6, 0xcc11, 0xd764, 0xdcf9,
+ 0xd20c, 0xd25b, 0xdffd, 0xd65a, 0xc8c0, 0xcff0,
+ 0xcc50, 0xc208, 0xcb4c, 0xd0cb, 0xcd52, 0xd48d,
+ 0xd60a, 0xcde2, 0xd1d8, 0xd8a7, 0xd991, 0xe3e3,
+ 0xed72, 0xe38d, 0xd65a, 0xd317, 0xd012, 0xcf96,
+ 0xd547, 0xd6e9, 0xd765, 0xd7b4, 0xcdeb, 0xccd6,
+ 0xde18, 0xdf0f, 0xce76, 0xcbe6, 0xcf61, 0xcea3,
+ 0xd557, 0xdbc5, 0xde27, 0xe5c2, 0xe6c8, 0xda8f,
+ 0xd2e9, 0xd981, 0xe21c, 0xdda0, 0xd63e, 0xdb03,
+ 0xda78, 0xd07c, 0xd5c5, 0xe121, 0xe05f, 0xe000,
+ 0xe081, 0xdefc, 0xe66f, 0xec1d, 0xe943, 0xec6d,
+ 0xed57, 0xe34a, 0xe1d8, 0xec46, 0xf08b, 0xf02d,
+ 0xf7ae, 0xfddb, 0xf814, 0xf5d2, 0xf8b8, 0xf16f,
+ 0xf2ac, 0x024d, 0x02b0, 0x01a6, 0x0bae, 0xffb8,
+ 0xf29f, 0x0535, 0x0de6, 0xffe2, 0xfd2a, 0x01eb,
+ 0x04a5, 0x08e1, 0x0d40, 0x157d, 0x12fb, 0x04d5,
+ 0x0bed, 0x1633, 0x0814, 0x03c0, 0x0b23, 0x0439,
+ 0x0371, 0x0c38, 0x0a88, 0x0630, 0x05e3, 0x0b9a,
+ 0x110f, 0x064f, 0x05a4, 0x1b07, 0x1616, 0x018b,
+ 0x1200, 0x253f, 0x12a4, 0x079e, 0x1f15, 0x26cb,
+ 0x0d58, 0x09fb, 0x1f88, 0x1933, 0x0d59, 0x1c23,
+ 0x1a16, 0x0798, 0x0f77, 0x1d7f, 0x1984, 0x108f,
+ 0x1006, 0x1f45, 0x26e9, 0x1b4a, 0x1ee8, 0x25ad,
+ 0x189f, 0x1df6, 0x2d11, 0x232a, 0x1eea, 0x251d,
+ 0x1fd8, 0x1c92, 0x1654, 0x1126, 0x1d9a, 0x1c8b,
+ 0x17a2, 0x2d44, 0x2d50, 0x1ccb, 0x2ea2, 0x335f,
+ 0x1e95, 0x2868, 0x34e3, 0x2df5, 0x346f, 0x3335,
+ 0x23e4, 0x284e, 0x2e7c, 0x287a, 0x2a93, 0x3374,
+ 0x3cbf, 0x3c44, 0x300a, 0x3522, 0x4229, 0x3af4,
+ 0x392d, 0x3f84, 0x32d6, 0x2a3d, 0x322e, 0x30c3,
+ 0x2b32, 0x2fce, 0x3585, 0x374b, 0x396f, 0x3f0c,
+ 0x404e, 0x3725, 0x3125, 0x3486, 0x3ae8, 0x4052,
+ 0x3e96, 0x412d, 0x4981, 0x3d02, 0x373c, 0x4f9f,
+ 0x4b69, 0x3541, 0x45bf, 0x4bbe, 0x3d14, 0x4f24,
+ 0x5889, 0x4a53, 0x546d, 0x57fc, 0x4ad6, 0x50e3,
+ 0x52ed, 0x5110, 0x54c7, 0x427a, 0x3fcf, 0x553e,
+ 0x4654, 0x376c, 0x457c, 0x42bd, 0x4886, 0x552b,
+ 0x3e58, 0x3c02, 0x4f1c, 0x3f1a, 0x3cfa, 0x4913,
+ 0x3608, 0x3bf6, 0x515e, 0x3c7d, 0x340a, 0x4333,
+ 0x3d44, 0x3e3a, 0x446e, 0x3864, 0x3815, 0x3e6c,
+ 0x3a36, 0x3b53, 0x3886, 0x30dc, 0x32b5, 0x3463,
+ 0x36d4, 0x39ac, 0x39d8, 0x44d2, 0x4471, 0x30d7,
+ 0x33fb, 0x3eb8, 0x3695, 0x38cf, 0x3cd5, 0x30b4,
+ 0x2ac3, 0x29ef, 0x2b0a, 0x2ec1, 0x26d2, 0x2788,
+ 0x2f28, 0x1c0d, 0x10d6, 0x1e57, 0x18fa, 0x0e0a,
+ 0x0ff4, 0x0d79, 0x133f, 0x18dc, 0x1092, 0x1618,
+ 0x1b25, 0x1289, 0x1dc8, 0x24f7, 0x1207, 0x11ba,
+ 0x1e96, 0x15ab, 0x08c4, 0x064d, 0x04cd, 0xfde3,
+ 0xf746, 0xffcc, 0x0890, 0xff26, 0xfa8b, 0x03a7,
+ 0x088d, 0x017d, 0xf0a2, 0xec2a, 0xf689, 0xefbf,
+ 0xe3e8, 0xe2ca, 0xd8d6, 0xde8a, 0xf4bc, 0xe6e7,
+ 0xd51f, 0xe91b, 0xf32e, 0xe721, 0xdd15, 0xd24b,
+ 0xd619, 0xe0d9, 0xd76e, 0xd89b, 0xed73, 0xeedd,
+ 0xe42a, 0xe341, 0xe72d, 0xedd4, 0xef8e, 0xecf2,
+ 0xf103, 0xee50, 0xe373, 0xe528, 0xebc4, 0xee14,
+ 0xf694, 0xf940, 0xec4d, 0xecb4, 0x00cc, 0x032e,
+ 0xf601, 0xf8f6, 0xfa45, 0xf180, 0xfb0f, 0x0173,
+ 0xf63a, 0xfc55, 0xfe02, 0xea99, 0xf078, 0xfa3a,
+ 0xeb7a, 0xf4a6, 0x0343, 0xeb84, 0xdd2c, 0xeb54,
+ 0xf467, 0xf59d, 0xf0ab, 0xef3b, 0xfb8a, 0x00ba,
+ 0xfd7f, 0xf956, 0xf2ee, 0xff8c, 0x095c, 0xf216,
+ 0xedce, 0x056d, 0x07c7, 0x017d, 0xf4aa, 0xde9b,
+ 0xef9c, 0x0760, 0xf12f, 0xe4f9, 0xee3b, 0xe042,
+ 0xd618, 0xdb0e, 0xd4e4, 0xd4f8, 0xe439, 0xeb17,
+ 0xdbe5, 0xc60a, 0xcbcf, 0xda42, 0xcebc, 0xd030,
+ 0xe080, 0xd2cc, 0xce8b, 0xe20b, 0xd773, 0xced2,
+ 0xe56d, 0xe34e, 0xcfd6, 0xd136, 0xcc4b, 0xc025,
+ 0xc660, 0xcd14, 0xc6ca, 0xbfe0, 0xbe5e, 0xc159,
+ 0xc762, 0xd52f, 0xe244, 0xd66e, 0xc61f, 0xd2ae,
+ 0xd96f, 0xc4cf, 0xc279, 0xd2ce, 0xcc87, 0xc0a5,
+ 0xc053, 0xb3fc, 0xae8a, 0xc62d, 0xd15c, 0xc7a4,
+ 0xcd91, 0xd1db, 0xc57f, 0xcb7f, 0xdb1a, 0xd3d2,
+ 0xcb50, 0xd19d, 0xd484, 0xd2e7, 0xd300, 0xd45e,
+ 0xda4f, 0xde81, 0xde84, 0xe167, 0xde2e, 0xd942,
+ 0xe402, 0xe52d, 0xd4c2, 0xe04a, 0xf73e, 0xed19,
+ 0xeccd, 0x0320, 0xfa6f, 0xef16, 0xfd66, 0xefca,
+ 0xdaba, 0xecc2, 0xf40a, 0xeac5, 0xf8c1, 0xfa62,
+ 0xe98d, 0xed79, 0xf161, 0xee33, 0xf791, 0xf76d,
+ 0xf32a, 0xfd8c, 0xf7f3, 0xe816, 0xf02d, 0xf993,
+ 0xf18a, 0xf00b, 0xfdca, 0x05b7, 0xf90c, 0xee95,
+ 0xf780, 0xf911, 0xf403, 0xfd6a, 0xfbac, 0xefe4,
+ 0xfabe, 0x02f1, 0xf954, 0xf9bb, 0xf78e, 0xe71e,
+ 0xe083, 0xdf19, 0xd454, 0xcdeb, 0xda84, 0xee68,
+ 0xeb48, 0xde9b, 0xe975, 0xe4bc, 0xc68a, 0xcfd9,
+ 0xe0a2, 0xc2b7, 0xbb0c, 0xd170, 0xbe66, 0xacb8,
+ 0xc8ac, 0xd7e9, 0xcd33, 0xcb27, 0xcf04, 0xcfc9,
+ 0xca33, 0xc31b, 0xca1e, 0xd208, 0xca65, 0xc241,
+ 0xc25e, 0xc664, 0xc911, 0xc527, 0xc413, 0xc638,
+ 0xbe09, 0xb60d, 0xb6cf, 0xb671, 0xb972, 0xbdb8,
+ 0xb73b, 0xae25, 0xa7a5, 0xa692, 0xb55f, 0xc294,
+ 0xbd15, 0xb6da, 0xb697, 0xb461, 0xb47e, 0xb6f0,
+ 0xb966, 0xbc05, 0xbd05, 0xc33a, 0xc996, 0xc29c,
+ 0xbf9e, 0xca97, 0xcbcf, 0xc2be, 0xc4e5, 0xd263,
+ 0xdbcd, 0xd816, 0xd449, 0xd900, 0xd136, 0xc402,
+ 0xcf6f, 0xdeb0, 0xdeca, 0xe461, 0xe825, 0xe357,
+ 0xe94d, 0xeb0a, 0xe39e, 0xeeb3, 0xf79f, 0xec52,
+ 0xed7c, 0xf51f, 0xf18f, 0xf9c4, 0xffb2, 0xf0eb,
+ 0xf256, 0x0269, 0x02dc, 0x0698, 0x0cac, 0x0153,
+ 0x00c2, 0x0d7b, 0x0bc2, 0x0e75, 0x182d, 0x1001,
+ 0x0a4c, 0x0daa, 0x062f, 0x07c0, 0x139c, 0x15d6,
+ 0x2160, 0x27dc, 0x15b7, 0x1e9d, 0x36d2, 0x2576,
+ 0x2214, 0x3c58, 0x2419, 0x0597, 0x1ef9, 0x2394,
+ 0x11fc, 0x2cb8, 0x3851, 0x1cee, 0x2672, 0x383d,
+ 0x2587, 0x27e9, 0x3866, 0x27cc, 0x1e5e, 0x2150,
+ 0x0e90, 0x0ebd, 0x22ad, 0x1478, 0x06e3, 0x1593,
+ 0x118b, 0x071f, 0x136f, 0x1873, 0x17b3, 0x1fdf,
+ 0x1e67, 0x18b7, 0x135f, 0x0b0e, 0x1637, 0x2306,
+ 0x1986, 0x1b06, 0x1faa, 0x117a, 0x126b, 0x112c,
+ 0xf8a8, 0xfee6, 0x1221, 0x012e, 0xfaf6, 0x0922,
+ 0x053c, 0x0422, 0x0714, 0x000b, 0x0858, 0x108d,
+ 0x08e5, 0x0bba, 0x0631, 0xf3de, 0xfae6, 0xff84,
+ 0xf016, 0xf87e, 0x091e, 0x0411, 0x0233, 0x00be,
+ 0xf446, 0xf2ba, 0xf95d, 0xf7d9, 0xf18c, 0xecf9,
+ 0xf357, 0xff44, 0xffc6, 0xfe1b, 0x046c, 0x058c,
+ 0xfb04, 0xef35, 0xf0b2, 0xfd24, 0x0672, 0x0f32,
+ 0x1102, 0x0174, 0xfc5b, 0x080b, 0x0624, 0x0044,
+ 0x0545, 0x093b, 0x0d7b, 0x0986, 0x001e, 0x0e40,
+ 0x1949, 0x0a89, 0x0bc2, 0x10df, 0xfdd3, 0xfec1,
+ 0x1180, 0x0a87, 0xfd21, 0xfb62, 0xff1d, 0x0b2f,
+ 0x0c96, 0x0312, 0x0c07, 0x18ef, 0x133a, 0x0925,
+ 0x062c, 0x0c3f, 0x145e, 0x13e3, 0x12d8, 0x14d8,
+ 0x1485, 0x1343, 0x0b80, 0x0049, 0xfce6, 0x00e7,
+ 0x1009, 0x1ac2, 0x0df4, 0x0b3a, 0x1756, 0x0aa5,
+ 0xffa3, 0x0d70, 0x0ecd, 0x0986, 0x0cf3, 0x0426,
+ 0xfd07, 0x00c7, 0xfb99, 0xfc6e, 0x01ed, 0xede2,
+ 0xdd44, 0xf284, 0x08d2, 0x055b, 0x051d, 0x0fd5,
+ 0x07c8, 0xf1cf, 0xed10, 0xf476, 0xf8ac, 0xfd69,
+ 0xfee2, 0x00ab, 0x0e58, 0x174e, 0x131e, 0x1373,
+ 0x1050, 0x008d, 0xfccc, 0x06ac, 0x0562, 0xfdf0,
+ 0xffca, 0x049d, 0x06ae, 0x0ba1, 0x15dc, 0x1d0f,
+ 0x1a9e, 0x1554, 0x0f34, 0x0438, 0x0069, 0x0b86,
+ 0x18a3, 0x1e5c, 0x1f1f, 0x20f5, 0x1e5f, 0x0f98,
+ 0x09d5, 0x1412, 0x176e, 0x1fb5, 0x2c5f, 0x1dbd,
+ 0x1204, 0x1c11, 0x1415, 0x0da6, 0x1b8b, 0x16a6,
+ 0x0c8d, 0x12ca, 0x175c, 0x2289, 0x2b09, 0x2247,
+ 0x2266, 0x2285, 0x182f, 0x1929, 0x13ab, 0x0987,
+ 0x15b8, 0x1a97, 0x1266, 0x1aaf, 0x257a, 0x2aac,
+ 0x2db0, 0x274f, 0x24d8, 0x205f, 0x0eed, 0x0c16,
+ 0x168d, 0x1a5d, 0x1f91, 0x1f5a, 0x18c7, 0x1d95,
+ 0x21d3, 0x1f1f, 0x22c4, 0x23b9, 0x1f05, 0x220e,
+ 0x2540, 0x1e53, 0x1b8c, 0x2510, 0x267e, 0x1c53,
+ 0x21d2, 0x3026, 0x2c7d, 0x27d9, 0x2e8d, 0x2986,
+ 0x1e62, 0x2482, 0x2be3, 0x211f, 0x17b0, 0x1d49,
+ 0x206e, 0x1a35, 0x12c5, 0x0e6d, 0x1696, 0x240d,
+ 0x2281, 0x1e06, 0x1f01, 0x145f, 0x0ac8, 0x138b,
+ 0x1ce7, 0x1a02, 0x1077, 0x0e50, 0x19fb, 0x1ed7,
+ 0x16c5, 0x11fd, 0x0e92, 0x11fb, 0x1d56, 0x138d,
+ 0x0295, 0x0b72, 0x11eb, 0x0994, 0x0d56, 0x128b,
+ 0x0ed4, 0x0d9e, 0x06bd, 0x0323, 0x1339, 0x1c34,
+ 0x0f47, 0x036e, 0x02dc, 0x0692, 0x0809, 0x0b55,
+ 0x152b, 0x1675, 0x0e28, 0x0a2e, 0x01de, 0xfbc9,
+ 0x0353, 0x0160, 0xfd70, 0x0972, 0x0b30, 0x09c3,
+ 0x1569, 0x11ed, 0x0bd1, 0x138c, 0x0abf, 0x0182,
+ 0x0a6a, 0x065a, 0xfff0, 0x0894, 0x097c, 0x06f2,
+ 0x09e1, 0x0998, 0x0ecf, 0x14f4, 0x0ff5, 0x0cac,
+ 0x0cd1, 0x066a, 0x00b2, 0x0487, 0x0c0c, 0x0be3,
+ 0x099a, 0x109f, 0x1373, 0x08cb, 0x0382, 0x0a30,
+ 0x0af6, 0x0363, 0x0668, 0x0d5e, 0x02b6, 0xfcda,
+ 0x0db8, 0x164b, 0x1006, 0x0ce2, 0x09ae, 0x0964,
+ 0x09d8, 0x010c, 0xfd10, 0x0059, 0x032a, 0x0b6e,
+ 0x0c94, 0x03cf, 0x036f, 0x0211, 0xfa9f, 0xfa77,
+ 0xfe01, 0x01b7, 0x02ca, 0xff19, 0xffc9, 0xff0f,
+ 0xfc23, 0x000e, 0xfe59, 0xfe64, 0x0910, 0x041a,
+ 0xfc7a, 0x0680, 0x0463, 0xfad9, 0xffa1, 0x01a6,
+ 0x03cc, 0x0d10, 0x0bd1, 0x0376, 0x0003, 0x01e6,
+ 0x0451, 0xffec, 0xfef6, 0x0235, 0xf9a1, 0xf55b,
+ 0xfc2a, 0xf8c2, 0xf982, 0x0665, 0x056f, 0x0094,
+ 0x09d2, 0x0f7d, 0x0d50, 0x0aa8, 0x0070, 0xf6fa,
+ 0xf652, 0xeb6d, 0xe028, 0xf052, 0xfc6c, 0xf019,
+ 0xf5f2, 0x0977, 0x08c8, 0x08f4, 0x0cf4, 0x0301,
+ 0xfe4a, 0xfd39, 0xf517, 0xf6ed, 0xf91e, 0xf55a,
+ 0xfeba, 0x07ee, 0x06dd, 0x0816, 0x0600, 0x05d3,
+ 0x0f13, 0x0d6c, 0x018c, 0xfe1c, 0xff81, 0xfead,
+ 0xfb0e, 0xf9da, 0x0097, 0x0137, 0xf784, 0xf905,
+ 0x04ba, 0x04bc, 0xfd31, 0xfe04, 0xfdff, 0xf767,
+ 0xfd74, 0x0a3d, 0x04d7, 0xfb95, 0xfe67, 0xf96e,
+ 0xec51, 0xee91, 0xfd2b, 0x0591, 0x0358, 0xfcb2,
+ 0xf75e, 0xf5fd, 0xfc6b, 0x0656, 0x06b9, 0xfe15,
+ 0xf673, 0xf44c, 0xf681, 0xf92f, 0xfd9c, 0x025c,
+ 0xfdbc, 0xf419, 0xf2c8, 0xf5fa, 0xf7db, 0xfde9,
+ 0x01bd, 0xfa06, 0xf39e, 0xf4b2, 0xeeac, 0xe744,
+ 0xf18c, 0xfeb3, 0xf816, 0xe9c5, 0xe32c, 0xe23f,
+ 0xe7f7, 0xf4f2, 0xfe72, 0xf941, 0xec50, 0xe673,
+ 0xe1f5, 0xdb47, 0xe089, 0xeb54, 0xeddf, 0xedd7,
+ 0xea32, 0xe2c3, 0xe5da, 0xf08b, 0xf1d7, 0xee4b,
+ 0xf226, 0xf1fd, 0xe81b, 0xe60d, 0xe9f8, 0xe988,
+ 0xedfe, 0xee54, 0xe148, 0xe16d, 0xec6d, 0xe9e9,
+ 0xeab4, 0xf02b, 0xeb32, 0xea89, 0xe83e, 0xdf4a,
+ 0xe386, 0xe8d8, 0xe6cf, 0xee9b, 0xf4cd, 0xeb56,
+ 0xe320, 0xe1b2, 0xe3b3, 0xed66, 0xecdb, 0xe3ae,
+ 0xe7a8, 0xe27e, 0xd2b0, 0xd7eb, 0xe652, 0xea77,
+ 0xe89e, 0xe323, 0xdb6a, 0xd804, 0xde29, 0xe751,
+ 0xe46c, 0xdcc3, 0xe48d, 0xe54c, 0xd523, 0xd7ea,
+ 0xe40f, 0xe5e3, 0xe777, 0xe807, 0xe930, 0xe1cf,
+ 0xdb7f, 0xe911, 0xe6e8, 0xd784, 0xe376, 0xecb8,
+ 0xda77, 0xd4fe, 0xe226, 0xe576, 0xebe5, 0xf3c2,
+ 0xeae1, 0xe60d, 0xe7fe, 0xe1d7, 0xde22, 0xe3b7,
+ 0xe128, 0xd8ce, 0xe13b, 0xe0fa, 0xd6df, 0xe508,
+ 0xe9b9, 0xdba0, 0xdaf2, 0xdc23, 0xd47d, 0xca44,
+ 0xc69b, 0xc93e, 0xc8ad, 0xcaaa, 0xd49e, 0xdbdf,
+ 0xd361, 0xca0e, 0xcd2a, 0xcd02, 0xcaa2, 0xd153,
+ 0xd8fa, 0xd161, 0xcce9, 0xd896, 0xcbc7, 0xba05,
+ 0xc682, 0xcb63, 0xcc2f, 0xd6e3, 0xd524, 0xd533,
+ 0xe2e3, 0xe1fe, 0xd439, 0xd5d4, 0xcf37, 0xc2fa,
+ 0xd555, 0xdc04, 0xcde7, 0xd33f, 0xd871, 0xd3a3,
+ 0xd2ea, 0xd43f, 0xd42b, 0xd24f, 0xd5f4, 0xdd37,
+ 0xd83f, 0xcfe2, 0xdc08, 0xe357, 0xd9eb, 0xdf17,
+ 0xdba9, 0xce09, 0xd2c0, 0xcf47, 0xc870, 0xcf5d,
+ 0xd840, 0xdf28, 0xdd25, 0xdbf1, 0xdb0f, 0xd6cd,
+ 0xddec, 0xe082, 0xdd42, 0xe42d, 0xe3d7, 0xdb1e,
+ 0xdd5e, 0xe34d, 0xe3a9, 0xe379, 0xe1c0, 0xe71b,
+ 0xeaa5, 0xe063, 0xe4cb, 0xe843, 0xde89, 0xea60,
+ 0xf3cf, 0xeef1, 0xecbe, 0xe30e, 0xe02c, 0xe3ac,
+ 0xe3ee, 0xe9e9, 0xeb28, 0xeb4c, 0xf0ff, 0xf553,
+ 0xfead, 0x0105, 0xf116, 0xeab6, 0xefc4, 0xed72,
+ 0xf76b, 0x01ca, 0xf55c, 0xf11b, 0xf557, 0xf570,
+ 0xf8ec, 0xf49a, 0xf3e3, 0xfc83, 0xfb60, 0xf493,
+ 0xf181, 0xf6f2, 0xff52, 0xfc5a, 0xf109, 0xef13,
+ 0xf92a, 0xf7e9, 0xf146, 0xfa9f, 0xfe24, 0xf608,
+ 0xf761, 0xf8c4, 0xf288, 0xef4d, 0xe6bb, 0xdc5e,
+ 0xe4b5, 0xed2e, 0xeed5, 0xfe7e, 0x05dd, 0xf86e,
+ 0xeec3, 0xe98a, 0xe6ac, 0xf03a, 0xf746, 0xee55,
+ 0xec2f, 0xf1f3, 0xe685, 0xdce0, 0xe934, 0xf42d,
+ 0xf0ef, 0xefa1, 0xf542, 0xecad, 0xdda7, 0xe45b,
+ 0xea32, 0xe247, 0xe73a, 0xe8f9, 0xd860, 0xd40a,
+ 0xe075, 0xee3b, 0xf866, 0xf7ad, 0xf2c0, 0xecbc,
+ 0xdf03, 0xd6a3, 0xde78, 0xedc5, 0xf28f, 0xe9cc,
+ 0xe66a, 0xea3d, 0xed02, 0xf058, 0xf1ba, 0xf46a,
+ 0xf837, 0xf5c2, 0xf305, 0xecc1, 0xe395, 0xe7de,
+ 0xe8a2, 0xe4bf, 0xf3e1, 0xf838, 0xef8f, 0xf5d6,
+ 0xf6f7, 0xf9ab, 0xff9c, 0xf551, 0xf852, 0xfe98,
+ 0xee27, 0xeb1c, 0xf7b2, 0xf7c5, 0xf548, 0xf987,
+ 0xfc97, 0xfa63, 0xf4ba, 0xf87c, 0xfe64, 0xf489,
+ 0xf671, 0x020a, 0xf484, 0xeb2e, 0xf5f4, 0xf825,
+ 0xf32e, 0xf115, 0xeaa1, 0xe382, 0xe8f2, 0xed09,
+ 0xec6a, 0xf372, 0xf35d, 0xf36e, 0xf5e1, 0xf58b,
+ 0x03ee, 0x001c, 0xeb4e, 0xf2a7, 0xf6ba, 0xea6f,
+ 0xe92e, 0xe90d, 0xe8b2, 0xed6a, 0xeb39, 0xf25e,
+ 0x033d, 0xf72c, 0xe9c5, 0xf55d, 0xf4f0, 0xf0ee,
+ 0xf56b, 0xf92f, 0xfedc, 0x0242, 0x0b1a, 0x064c,
+ 0xf3bd, 0xf6a7, 0xfaa1, 0xf798, 0x0018, 0x0cf6,
+ 0x0f46, 0x060e, 0x074c, 0x083c, 0xffea, 0x0200,
+ 0x03a3, 0x04b8, 0x09b2, 0x0955, 0x0a82, 0x0c53,
+ 0x07a9, 0x04cb, 0x0b68, 0x094c, 0x01e6, 0x05c4,
+ 0x064b, 0x0994, 0x093e, 0x07a5, 0x1684, 0x0f4d,
+ 0xff81, 0xfeed, 0xfa45, 0x01e4, 0x051e, 0x00d4,
+ 0x0384, 0x007b, 0x0dc3, 0x15c8, 0x0a87, 0x138d,
+ 0x1538, 0x0559, 0x0abd, 0x0d63, 0x0172, 0x0b50,
+ 0x0fe2, 0x09f1, 0x19e8, 0x153a, 0x1167, 0x207f,
+ 0x0d2f, 0x08f3, 0x1289, 0x0450, 0x09dd, 0x1143,
+ 0x15ec, 0x1de0, 0x1151, 0x1078, 0x1db2, 0x1ee3,
+ 0x1ace, 0x1bbb, 0x1a53, 0x1019, 0x0ea0, 0x1392,
+ 0x14e3, 0x12a6, 0x13a3, 0x1a2a, 0x0fb7, 0x0adb,
+ 0x17f6, 0x1c62, 0x1d4d, 0x1693, 0x1428, 0x1876,
+ 0x1313, 0x0cd1, 0x03b0, 0x0e35, 0x1676, 0x06db,
+ 0x1303, 0x17e6, 0x06e8, 0x0b61, 0x0daa, 0x0cf4,
+ 0x1201, 0x12d2, 0x0e40, 0x062b, 0x04e6, 0x0770,
+ 0x0ccb, 0x0f12, 0x0cc0, 0x072c, 0xfdd9, 0x0498,
+ 0x0ae0, 0x0b4f, 0x0cfa, 0x048e, 0x09ff, 0x0d58,
+ 0x0ae3, 0x0ffb, 0x0265, 0x010c, 0x0705, 0xfff1,
+ 0x0553, 0x03a4, 0x0087, 0x0429, 0x05e8, 0x08ad,
+ 0xfdc5, 0xfe62, 0x0d96, 0x0ba9, 0x05c4, 0x07c9,
+ 0x07e8, 0x06e6, 0x0dff, 0x0bfd, 0x07d8, 0x0cd0,
+ 0x02be, 0x0556, 0x0c04, 0x0240, 0x06dd, 0x0143,
+ 0xff0e, 0x079a, 0xfcbb, 0x008c, 0x051a, 0x0213,
+ 0x0bd9, 0x08e0, 0x03f8, 0x06e8, 0x07b4, 0x0a2e,
+ 0x10d5, 0x17b4, 0x1345, 0x0c56, 0x08ca, 0x0c48,
+ 0x1258, 0x0fa5, 0x11d5, 0x0c31, 0x0382, 0x0565,
+ 0x053f, 0x0e8d, 0x0c83, 0x0813, 0x1533, 0x0e37,
+ 0x0903, 0x0d58, 0x07dd, 0x08df, 0x072e, 0x0711,
+ 0x08ec, 0x05e2, 0x0a24, 0x12fb, 0x1b18, 0x12bb,
+ 0x0361, 0x0342, 0x05e0, 0x053d, 0x06e1, 0x0fa8,
+ 0x1131, 0x0d19, 0x0f31, 0x05be, 0x05b8, 0x0f04,
+ 0x0a1b, 0x0a19, 0x0889, 0x097e, 0x0e7a, 0x09d0,
+ 0x0c7f, 0x0b54, 0x058d, 0x089c, 0x09c4, 0x07f3,
+ 0x044f, 0x0723, 0x070e, 0x009f, 0x077f, 0x0bc4,
+ 0x0726, 0x079a, 0x0b0f, 0x0963, 0x05cb, 0x0781,
+ 0x013a, 0x032b, 0x0d48, 0xfec7, 0xfa8d, 0x099d,
+ 0x0843, 0x0254, 0x03cc, 0x0825, 0x09c2, 0x055b,
+ 0xfe15, 0x00cb, 0x0c41, 0x090e, 0x077d, 0x0ace,
+ 0x0313, 0x052d, 0x01d2, 0xf669, 0xfbf5, 0xfd2c,
+ 0xfae5, 0x0220, 0x0641, 0x0889, 0x0ba9, 0x0de4,
+ 0x1351, 0x145b, 0x0a09, 0x085f, 0x0d12, 0x0807,
+ 0x0a92, 0x0d41, 0x0b07, 0x0e94, 0x0529, 0xffb5,
+ 0x09b9, 0x0744, 0x05a9, 0x124e, 0x1732, 0x0d82,
+ 0x0631, 0x067a, 0x06c0, 0x09b1, 0x0b5b, 0x0aed,
+ 0x0e3b, 0x0e50, 0x0dc5, 0x0e5f, 0x0cc7, 0x1312,
+ 0x1ac0, 0x1348, 0x0bb3, 0x1390, 0x1976, 0x1621,
+ 0x14a1, 0x15c3, 0x1722, 0x1341, 0x0dc1, 0x0f33,
+ 0x0eaf, 0x0b3a, 0x0a30, 0x08eb, 0x0838, 0x06cc,
+ 0x0818, 0x0eec, 0x0fd3, 0x090c, 0x0593, 0x080c,
+ 0x0acd, 0x0a2e, 0x0c7e, 0x0fcc, 0x089f, 0x0450,
+ 0x0912, 0x0762, 0x0732, 0x0bf6, 0x0ce2, 0x0bf7,
+ 0x0728, 0x043d, 0x0214, 0xfb73, 0xfe67, 0x02f7,
+ 0xfd64, 0xfd83, 0x02ff, 0x04fe, 0x0aa6, 0x0ecb,
+ 0x0e46, 0x1502, 0x14c8, 0x0909, 0x09d6, 0x10bc,
+ 0x0f66, 0x091e, 0x0552, 0x05be, 0x00fd, 0xfc2f,
+ 0xf97b, 0xf7f1, 0xfcb6, 0xfefa, 0x039b, 0x0629,
+ 0x035c, 0x0c37, 0x0c47, 0x0549, 0x0db0, 0x0ea6,
+ 0x0919, 0x0aec, 0x0547, 0xfe5a, 0x01ed, 0x020c,
+ 0x036a, 0x0ada, 0x0526, 0x0233, 0x0652, 0x01f8,
+ 0x0457, 0x00b5, 0xfa9b, 0x0281, 0x0364, 0x064d,
+ 0x044f, 0xf592, 0xf833, 0xfeaf, 0xfb70, 0xfd61,
+ 0x0423, 0x04ec, 0x02c1, 0x0748, 0x02d8, 0xfce0,
+ 0x034e, 0x0110, 0xff26, 0x0ba2, 0x0f49, 0x01bf,
+ 0xff06, 0x04a3, 0xfc30, 0xfbd4, 0xfeb1, 0xfdb3,
+ 0x07e6, 0x071f, 0x0894, 0x0e34, 0x0650, 0x095b,
+ 0x07cc, 0x023f, 0x08ef, 0x058c, 0x05b4, 0x0b3f,
+ 0x00f7, 0xf58d, 0xf730, 0xf9c4, 0xf8ac, 0xf6c9,
+ 0xebed, 0xece8, 0xf549, 0xed72, 0xf0aa, 0xf0ee,
+ 0xeaec, 0xf99a, 0xfd74, 0xf639, 0xf518, 0xf490,
+ 0xf648, 0xf996, 0x00a3, 0xfc9e, 0xf700, 0xfb0c,
+ 0xf74c, 0xf6b8, 0xf49c, 0xf11d, 0xf6a8, 0xf614,
+ 0xf4d5, 0xf1ca, 0xec9c, 0xec11, 0xec38, 0xf007,
+ 0xf328, 0xfa36, 0xfaf9, 0xf1e5, 0xf269, 0xf15e,
+ 0xf0c1, 0xede4, 0xea9d, 0xf438, 0xf017, 0xee18,
+ 0xf7ca, 0xf40c, 0xf2dc, 0xf2d9, 0xf078, 0xf055,
+ 0xee4d, 0xee1a, 0xec4d, 0xee62, 0xefbf, 0xf138,
+ 0xf42f, 0xedbe, 0xefd6, 0xf322, 0xf28e, 0xf83b,
+ 0xf47a, 0xf4e0, 0xfa5e, 0xf7f6, 0xf467, 0xf1c2,
+ 0xf22c, 0xea88, 0xe8d1, 0xf227, 0xf271, 0xf546,
+ 0xf30b, 0xf0d7, 0xf6b9, 0xf1be, 0xf45d, 0xfb36,
+ 0xfa58, 0x00e5, 0x03cb, 0xfa4d, 0xf61b, 0x0140,
+ 0x0267, 0xfe64, 0x09c2, 0x08f4, 0x043f, 0x0a34,
+ 0x0e3d, 0x107e, 0x0966, 0x0762, 0x0901, 0x02c7,
+ 0x0336, 0x00cf, 0x00fe, 0x0620, 0x0538, 0x0949,
+ 0x0901, 0x0434, 0x04c2, 0x05ff, 0x0957, 0x0d2c,
+ 0x0b7f, 0x01a1, 0xff4d, 0x0259, 0xffe0, 0x051c,
+ 0x034f, 0xfcc3, 0xfd91, 0xf82a, 0xfcf1, 0x05ef,
+ 0x067b, 0x09b4, 0x06c8, 0x020b, 0xffc0, 0x0135,
+ 0x0711, 0x02fd, 0xfe01, 0xfe9e, 0xfdf5, 0xfd0b,
+ 0xfd09, 0xfdb5, 0xfc8e, 0xfdc9, 0xfc1a, 0xfafe,
+ 0x0177, 0xfdac, 0xfae9, 0xfe2f, 0xf739, 0xf312,
+ 0xf406, 0xf590, 0xf67a, 0xf817, 0xfb96, 0xf334,
+ 0xf063, 0xf9c2, 0xf888, 0xf6a6, 0xf8f6, 0xf7b8,
+ 0xf2c4, 0xeb69, 0xea94, 0xefb1, 0xf2ce, 0xf459,
+ 0xf900, 0xf51b, 0xe8a2, 0xea60, 0xec90, 0xe71c,
+ 0xe878, 0xe769, 0xe5b0, 0xe682, 0xe7c1, 0xeb96,
+ 0xea66, 0xe7a1, 0xe6b6, 0xeae1, 0xf103, 0xeb56,
+ 0xe80e, 0xed67, 0xecb2, 0xe860, 0xe6dc, 0xe44d,
+ 0xdec2, 0xe1bd, 0xe74b, 0xe647, 0xee1a, 0xf452,
+ 0xef9d, 0xf427, 0xfd32, 0xfadf, 0xf6b9, 0xf88a,
+ 0xf3f9, 0xee4c, 0xf273, 0xf3e7, 0xf27c, 0xf22e,
+ 0xf409, 0xf8eb, 0xf4d0, 0xefa2, 0xf061, 0xf0c4,
+ 0xf3d6, 0xf168, 0xed63, 0xf0d4, 0xf168, 0xf24b,
+ 0xf52b, 0xf1dc, 0xee18, 0xef3a, 0xf242, 0xf3cf,
+ 0xefe3, 0xebb3, 0xec28, 0xe62c, 0xe334, 0xeaf1,
+ 0xe531, 0xdec4, 0xe46e, 0xde76, 0xda86, 0xe298,
+ 0xe5b0, 0xe7e5, 0xe803, 0xe3f9, 0xe4fc, 0xe579,
+ 0xe210, 0xe4f7, 0xec84, 0xed75, 0xe9fe, 0xe812,
+ 0xe609, 0xe754, 0xefc7, 0xf6b3, 0xf71c, 0xf728,
+ 0xf1df, 0xe8ce, 0xeb6c, 0xef87, 0xed0f, 0xef39,
+ 0xf07b, 0xefb0, 0xf448, 0xf834, 0xf700, 0xf4c0,
+ 0xf8a6, 0xfc2d, 0xf52c, 0xf458, 0xfd45, 0xf999,
+ 0xf124, 0xf2ca, 0xf336, 0xf0fc, 0xefe9, 0xee7f,
+ 0xf3e0, 0xf96e, 0xf567, 0xf2be, 0xf51a, 0xf4cd,
+ 0xf190, 0xf18e, 0xf7c4, 0xfc18, 0xfb46, 0xfb0d,
+ 0xf85b, 0xf3c4, 0xf398, 0xf2e7, 0xf1e9, 0xf481,
+ 0xf404, 0xf39b, 0xf801, 0xfa47, 0xfb2e, 0xfc30,
+ 0xfb9c, 0xfb7e, 0xf9f5, 0xf9f8, 0xfb88, 0xf747,
+ 0xf84a, 0x0383, 0x07fa, 0x0795, 0x0923, 0x078c,
+ 0x0abd, 0x0e28, 0x05c1, 0x0220, 0x0638, 0x0355,
+ 0xff49, 0xff67, 0x0008, 0xfd7a, 0xfa7d, 0x0040,
+ 0x0414, 0x001e, 0x02d8, 0x018b, 0xf69b, 0xf904,
+ 0x0070, 0xfcef, 0xfd38, 0xfe2c, 0xf7ed, 0xf7e4,
+ 0xfa01, 0xf92d, 0xfda3, 0xfe77, 0xf67c, 0xf2bd,
+ 0xf6bf, 0xf8a9, 0xf4d8, 0xf24d, 0xf31a, 0xf3b8,
+ 0xf268, 0xef14, 0xef5b, 0xf47e, 0xf77b, 0xf80b,
+ 0xf658, 0xef9b, 0xedaf, 0xf636, 0xf9c2, 0xf4a1,
+ 0xf465, 0xf6f8, 0xf397, 0xef5d, 0xefdb, 0xf096,
+ 0xf0ba, 0xf3d0, 0xf352, 0xf0a6, 0xf59d, 0xf7f7,
+ 0xf1b5, 0xef98, 0xf1d2, 0xeff3, 0xe9ad, 0xe567,
+ 0xe897, 0xeb3a, 0xea0a, 0xefe6, 0xf533, 0xefc6,
+ 0xee5a, 0xf3f9, 0xf48b, 0xf1a6, 0xf04c, 0xf14f,
+ 0xf20a, 0xf04f, 0xf094, 0xf041, 0xef14, 0xf57a,
+ 0xfb2e, 0xf844, 0xf4d0, 0xf287, 0xf390, 0xf91a,
+ 0xf9d4, 0xf8cb, 0xfae3, 0xf883, 0xf491, 0xf432,
+ 0xf563, 0xf888, 0xf79f, 0xf3b0, 0xf785, 0xfab5,
+ 0xf516, 0xf16a, 0xf223, 0xf287, 0xf367, 0xf15d,
+ 0xedad, 0xf335, 0xfb51, 0xf65d, 0xf14f, 0xf7b0,
+ 0xf6ce, 0xefbc, 0xf28a, 0xf1e9, 0xecca, 0xf2a3,
+ 0xf680, 0xf2f9, 0xf464, 0xf61a, 0xf4f7, 0xf23c,
+ 0xeef6, 0xf3df, 0xf7c1, 0xf2f6, 0xf360, 0xf465,
+ 0xf218, 0xf630, 0xf46d, 0xee22, 0xf49f, 0xf9e4,
+ 0xf695, 0xf7dd, 0xfc08, 0xff2e, 0xfe02, 0xf8ef,
+ 0xfb94, 0xff19, 0xfb31, 0xfaef, 0xfadc, 0xf774,
+ 0xf9fb, 0xfac8, 0xf6bb, 0xf86f, 0xfad5, 0xf822,
+ 0xf4ee, 0xf239, 0xf194, 0xf40d, 0xf6af, 0xf8a5,
+ 0xf985, 0xf80b, 0xf48e, 0xf1b5, 0xf125, 0xf165,
+ 0xf39c, 0xf6e6, 0xf606, 0xf440, 0xf677, 0xf959,
+ 0xf8ff, 0xf450, 0xf18a, 0xf439, 0xf2c7, 0xef06,
+ 0xf2ce, 0xf802, 0xf97e, 0xf7d8, 0xf4a0, 0xf771,
+ 0xf994, 0xf3fb, 0xf4fd, 0xfba8, 0xfdbd, 0x0251,
+ 0x0610, 0x01b6, 0xfc50, 0xf957, 0xfb53, 0xff6e,
+ 0xfd0c, 0xfc0c, 0xff04, 0xfc47, 0xfa96, 0xfc34,
+ 0xf818, 0xf398, 0xf367, 0xf50e, 0xfa29, 0xfeff,
+ 0xff82, 0xffa5, 0x00af, 0xfef0, 0xfa0b, 0xf737,
+ 0xf813, 0xf9bc, 0xfb3a, 0xf8e9, 0xf5e6, 0xfaa0,
+ 0xfd4f, 0xf91d, 0xfa77, 0xfd9b, 0xfe1a, 0x00b2,
+ 0xfd4c, 0xf782, 0xfa23, 0xfbd6, 0xfba6, 0xfeb5,
+ 0xff56, 0x0107, 0x05ca, 0x0a11, 0x0f2c, 0x0cf4,
+ 0x0425, 0x0225, 0x0343, 0x042c, 0x0582, 0x0117,
+ 0xff11, 0x0131, 0xfc96, 0xfae6, 0xff63, 0xfef2,
+ 0xff13, 0x00a7, 0xfce3, 0xf90e, 0xf824, 0xf998,
+ 0xfc07, 0xfc8b, 0xffb1, 0x0419, 0x0315, 0xfeec,
+ 0xfb06, 0xfd12, 0x018b, 0xfd0c, 0xfc42, 0x0167,
+ 0xf949, 0xf470, 0xfd30, 0xfb27, 0xf5d1, 0xf8c3,
+ 0xf4dd, 0xf218, 0xf7b0, 0xf857, 0xf882, 0xfc14,
+ 0xfb5b, 0xfa8e, 0xfd4d, 0xfef4, 0xfd61, 0xfcfe,
+ 0x01e4, 0x0454, 0x0288, 0x03b5, 0x011d, 0xfd46,
+ 0x046c, 0x09f3, 0x0652, 0x04a4, 0x028a, 0xfdb8,
+ 0xfb28, 0xfad2, 0x0045, 0x07a6, 0x07e8, 0x071d,
+ 0x078f, 0x0388, 0xfee2, 0xfd60, 0xfef3, 0x0129,
+ 0xfef4, 0xfcb5, 0xfe99, 0xff2b, 0xfd8b, 0xfb1a,
+ 0xf8ef, 0xfada, 0xfd7b, 0xfe59, 0x0206, 0x05cf,
+ 0x04ea, 0x00fa, 0xfdd8, 0xff26, 0x0152, 0x0076,
+ 0x01be, 0x0478, 0x048d, 0x06cd, 0x0b2e, 0x0c6b,
+ 0x0c78, 0x0df3, 0x0e05, 0x08c7, 0x0216, 0x0172,
+ 0x01af, 0xfe9f, 0x007a, 0x032f, 0xffcf, 0x014b,
+ 0x06c5, 0x03f7, 0x007e, 0x016e, 0xfd48, 0xf8ec,
+ 0xfc28, 0xff38, 0xff02, 0xfe47, 0xfba3, 0xfa5d,
+ 0xfb14, 0xf889, 0xf80b, 0xfcbe, 0xfce7, 0xf968,
+ 0xfa97, 0xfbbf, 0xf863, 0xf5b7, 0xf507, 0xf439,
+ 0xf77a, 0xfe9c, 0xfee4, 0xfa91, 0xfd2f, 0xfd89,
+ 0xf708, 0xf91c, 0xfdde, 0xfb8c, 0xfd4d, 0xfd46,
+ 0xf8a9, 0xffcd, 0x0388, 0xf903, 0xf999, 0x0072,
+ 0xfd85, 0x0030, 0x059c, 0x01b0, 0xfefa, 0xfd58,
+ 0xfa07, 0xfd0e, 0x004f, 0xff9a, 0x0182, 0x02ed,
+ 0x0166, 0x0000, 0xfe29, 0xfc2c, 0xfa1d, 0xf7f2,
+ 0xf5d8, 0xf29d, 0xf2f2, 0xf794, 0xf85a, 0xf6e8,
+ 0xf6e3, 0xf4cd, 0xf432, 0xf820, 0xfcc1, 0x005c,
+ 0x00f8, 0xffcd, 0xff19, 0xfc7a, 0xfd9f, 0x04d1,
+ 0x06cb, 0x058f, 0x07cf, 0x0689, 0x03fb, 0x05fc,
+ 0x070c, 0x07ef, 0x0a57, 0x0ad7, 0x0deb, 0x1347,
+ 0x14f0, 0x175e, 0x1ab5, 0x1916, 0x1815, 0x1b4b,
+ 0x1c3d, 0x1a87, 0x1a3f, 0x1a13, 0x18ed, 0x19b4,
+ 0x1b4f, 0x18f7, 0x165b, 0x1902, 0x1a10, 0x14d5,
+ 0x109c, 0x0fd5, 0x0ebe, 0x0d77, 0x0dde, 0x1137,
+ 0x1447, 0x11b6, 0x0d6d, 0x0cff, 0x0f5f, 0x138a,
+ 0x14cd, 0x103b, 0x0db8, 0x0db2, 0x0a8b, 0x0a39,
+ 0x0ea4, 0x1147, 0x10f8, 0x0d30, 0x0983, 0x0b5d,
+ 0x0ca9, 0x0c4c, 0x0fac, 0x1040, 0x0c19, 0x0a51,
+ 0x0aa0, 0x0cd1, 0x0fa6, 0x0f25, 0x0f05, 0x0e8b,
+ 0x0ad0, 0x0ba3, 0x104c, 0x110a, 0x0f9f, 0x0d8c,
+ 0x0d2f, 0x1044, 0x0f2d, 0x0a8a, 0x08af, 0x060f,
+ 0x0382, 0x04e6, 0x0780, 0x0a06, 0x0965, 0x04dc,
+ 0x02ac, 0x0159, 0xfee1, 0x009f, 0x04e9, 0x05fd,
+ 0x021b, 0xfd33, 0xfe48, 0x0003, 0xfc68, 0xfb9d,
+ 0xfd7a, 0xfc41, 0xfa42, 0xf6d3, 0xf631, 0xfa22,
+ 0xf62a, 0xefc1, 0xf287, 0xf26e, 0xee2b, 0xf0dd,
+ 0xf617, 0xf891, 0xf68f, 0xf4a8, 0xfd1e, 0x02e1,
+ 0xfadc, 0xf68f, 0xf852, 0xf720, 0xf9df, 0xfed6,
+ 0x0101, 0x0433, 0x04d0, 0x026d, 0x0019, 0xfc71,
+ 0xfd28, 0xfff6, 0xfd78, 0xff4f, 0x0564, 0x0559,
+ 0x04f0, 0x04ef, 0x012f, 0x0121, 0x04c2, 0x073f,
+ 0x07a3, 0x0381, 0x024b, 0x06c9, 0x0530, 0x0149,
+ 0x02e1, 0x02af, 0x0206, 0x0415, 0x01ca, 0xfd94,
+ 0xfd45, 0xfd74, 0xfc27, 0xfafb, 0xf9d0, 0xf701,
+ 0xf4a4, 0xf686, 0xf8d1, 0xf962, 0xfb4d, 0xfb55,
+ 0xfaac, 0xfc78, 0xf8ef, 0xf2c9, 0xf24a, 0xf10b,
+ 0xf022, 0xf3e0, 0xf3e0, 0xf26e, 0xf530, 0xf5dd,
+ 0xf5ae, 0xf73f, 0xf6c7, 0xf68b, 0xf6f4, 0xf6e1,
+ 0xf8a6, 0xf8b6, 0xf82d, 0xfc42, 0xfe63, 0xfdce,
+ 0x02a8, 0x0710, 0x0326, 0xfcaa, 0xf8d5, 0xf6e9,
+ 0xf826, 0xfd8c, 0x02b8, 0x0489, 0x03c0, 0xff3c,
+ 0xfa79, 0xfc25, 0xfffe, 0x0179, 0x0394, 0x02f5,
+ 0xfd16, 0xf968, 0xfaad, 0xfba4, 0xfa1c, 0xf7d7,
+ 0xf458, 0xf0ff, 0xf420, 0xf979, 0xf864, 0xf8da,
+ 0xfcb8, 0xf904, 0xf3f0, 0xf430, 0xf3b0, 0xf69c,
+ 0xfd2b, 0xfdce, 0xfc45, 0xfcca, 0xfcd8, 0xfe75,
+ 0x0025, 0x008a, 0x0201, 0x0320, 0x05a6, 0x0811,
+ 0x03d4, 0x0000, 0x0193, 0x00af, 0xff69, 0x01ca,
+ 0x03ba, 0x0683, 0x083c, 0x03a1, 0x00b8, 0x04b8,
+ 0x06f4, 0x05d2, 0x06b2, 0x0690, 0x0452, 0x05cd,
+ 0x0726, 0x0330, 0x02cf, 0x0808, 0x08f5, 0x06d3,
+ 0x05c8, 0x014b, 0xfb31, 0xf9ac, 0xfb60, 0xfddb,
+ 0x0188, 0x039d, 0x00d8, 0xfe10, 0xfedb, 0xfc60,
+ 0xf841, 0xfbed, 0x00e8, 0x00fb, 0x02d0, 0x042c,
+ 0x0197, 0x004d, 0xfd9f, 0xf79c, 0xf4be, 0xf4a2,
+ 0xf524, 0xf791, 0xf99a, 0xfb6a, 0xfd9d, 0xfb9c,
+ 0xf7ab, 0xf854, 0xfa1b, 0xf90c, 0xf989, 0xfb50,
+ 0xfa19, 0xf9b5, 0xfb92, 0xfa52, 0xf977, 0xfcb2,
+ 0xfd3d, 0xfb9d, 0xfd87, 0xfeaf, 0xfb53, 0xf728,
+ 0xf654, 0xf835, 0xf6b6, 0xf2d2, 0xf429, 0xf655,
+ 0xf306, 0xf11b, 0xf446, 0xf736, 0xf7fc, 0xf8ca,
+ 0xfad6, 0xfc25, 0xfa9e, 0xf902, 0xf8f9, 0xf732,
+ 0xf4e6, 0xf742, 0xfa88, 0xf8a9, 0xf79b, 0xfb1f,
+ 0xfb84, 0xf943, 0xf9b7, 0xf8ba, 0xf646, 0xf5ff,
+ 0xf58b, 0xf6bb, 0xf920, 0xf7de, 0xf979, 0xfe6b,
+ 0xfc31, 0xf920, 0xfc47, 0xfc20, 0xf9a3, 0xfc0d,
+ 0xfc90, 0xf957, 0xfb1a, 0xffb8, 0xfe91, 0xf9b1,
+ 0xf793, 0xf90a, 0xfcbe, 0xfedb, 0xfc1a, 0xfb13,
+ 0xfee8, 0xfee7, 0xfb8e, 0xfc32, 0xfde0, 0xfe1f,
+ 0xfeb2, 0xfe92, 0xff7f, 0x01bd, 0x01b8, 0x01e5,
+ 0x0499, 0x063b, 0x046d, 0x000a, 0xfe1c, 0x0128,
+ 0x024f, 0xffcc, 0xff5f, 0xff8c, 0xfe2b, 0xfe5f,
+ 0xff77, 0xffee, 0x0130, 0x0290, 0x0215, 0xffcd,
+ 0xfe38, 0xfd15, 0xf79f, 0xf11f, 0xf282, 0xf863,
+ 0xfbcb, 0xfeb9, 0x010d, 0x003c, 0xfe36, 0xfb74,
+ 0xf8a9, 0xf96f, 0xfbb8, 0xfaf5, 0xf898, 0xf761,
+ 0xf78b, 0xf80c, 0xf765, 0xf77c, 0xfa16, 0xfa4b,
+ 0xf743, 0xf7f5, 0xfa6d, 0xf906, 0xf8ae, 0xf98f,
+ 0xf67c, 0xf617, 0xfa61, 0xfad1, 0xfa12, 0xfb17,
+ 0xf7d4, 0xf404, 0xf53e, 0xf757, 0xf84f, 0xf8e8,
+ 0xf97b, 0xf995, 0xf6fc, 0xf611, 0xf861, 0xf6cf,
+ 0xf66a, 0xfb31, 0xfa50, 0xf779, 0xfa7d, 0xf9e5,
+ 0xf6ac, 0xf947, 0xfc4f, 0xfd4e, 0xff28, 0xffa9,
+ 0xfde1, 0xfbef, 0xfd0b, 0xfee5, 0xfb9f, 0xf972,
+ 0xfcd8, 0xfe4d, 0xfe46, 0xfdff, 0xfa2c, 0xf952,
+ 0xfbdc, 0xfbfb, 0xff61, 0x04b7, 0x04e8, 0x0576,
+ 0x0737, 0x05a2, 0x058f, 0x0874, 0x0949, 0x07b3,
+ 0x0627, 0x058e, 0x057c, 0x05e7, 0x0548, 0x0182,
+ 0xfdc2, 0xfb88, 0xf9e6, 0xfd24, 0x0176, 0xfefc,
+ 0xfd1a, 0x0015, 0x008e, 0xfe91, 0xfd57, 0xfe52,
+ 0x02bb, 0x0566, 0x050b, 0x062b, 0x06ab, 0x0614,
+ 0x05d7, 0x031a, 0x01cc, 0x0482, 0x03cd, 0x0133,
+ 0x025f, 0x0093, 0xfa9b, 0xfa2a, 0xfc23, 0xf957,
+ 0xf9db, 0xfe8f, 0xfd5b, 0xfbf4, 0xfee4, 0xfe08,
+ 0xfecf, 0x04a0, 0x04d8, 0x0372, 0x04ee, 0x0174,
+ 0xfe25, 0xffea, 0x0004, 0xff4c, 0xfee2, 0xfd94,
+ 0xfe8e, 0xfee9, 0xfe6e, 0x01d3, 0x03b4, 0x023d,
+ 0x0233, 0x0088, 0xfdc2, 0xff04, 0x0243, 0x0472,
+ 0x03a6, 0x0049, 0x000a, 0x02ce, 0x0212, 0xfd58,
+ 0xf9c3, 0xf8f5, 0xf775, 0xf62f, 0xf962, 0xfc7e,
+ 0xfa15, 0xf5e2, 0xf3e8, 0xf50e, 0xf818, 0xf9ac,
+ 0xfa2b, 0xfbe6, 0xfe76, 0xffe4, 0xfe06, 0xfb36,
+ 0xfb47, 0xfc7b, 0xfe39, 0x012f, 0x026c, 0x0235,
+ 0x030d, 0x043f, 0x03fe, 0x0186, 0x00de, 0x03fc,
+ 0x04f1, 0x0474, 0x0668, 0x0622, 0x04b4, 0x05ec,
+ 0x04bb, 0x01a7, 0x0079, 0xfec0, 0xfe4e, 0xff88,
+ 0xfd6f, 0xfbd9, 0xfe43, 0xff27, 0xff5c, 0x01a3,
+ 0x0010, 0xfb8b, 0xfbb4, 0xfc9b, 0xf9f1, 0xfa35,
+ 0xfd0f, 0xfc71, 0xfaf3, 0xfb0b, 0xfb1b, 0xfa98,
+ 0xf8c7, 0xf802, 0xf8c1, 0xf6fc, 0xf5f7, 0xf727,
+ 0xf526, 0xf3bd, 0xf50b, 0xf375, 0xf1b7, 0xf192,
+ 0xf092, 0xf258, 0xf59b, 0xf6cf, 0xf848, 0xf83b,
+ 0xf576, 0xf309, 0xf2c9, 0xf743, 0xfbd6, 0xfb01,
+ 0xfb54, 0xfcbb, 0xfa52, 0xfa98, 0xfd57, 0xfcd7,
+ 0xfc42, 0xfb64, 0xf90d, 0xf823, 0xf73b, 0xf71d,
+ 0xf892, 0xf73e, 0xf48f, 0xf367, 0xf349, 0xf5ad,
+ 0xf7ff, 0xf6eb, 0xf48b, 0xf2a3, 0xf3a2, 0xf5ac,
+ 0xf299, 0xefb8, 0xf20f, 0xf1d8, 0xef0e, 0xf075,
+ 0xf2b3, 0xf25b, 0xf263, 0xf2ed, 0xf309, 0xf4ca,
+ 0xf6a6, 0xf575, 0xf5f5, 0xfa9b, 0xfd2c, 0xfeb6,
+ 0x02b2, 0x03ef, 0x033a, 0x0465, 0x03a4, 0x0241,
+ 0x037d, 0x0463, 0x061e, 0x097b, 0x0a53, 0x0a06,
+ 0x0b7d, 0x0ca2, 0x0c01, 0x0ac7, 0x0a0b, 0x0944,
+ 0x0922, 0x0b51, 0x0d0f, 0x0bfe, 0x0a3b, 0x093c,
+ 0x0a02, 0x0b76, 0x0a94, 0x08e7, 0x076d, 0x0543,
+ 0x04cd, 0x0584, 0x0682, 0x090a, 0x0905, 0x0760,
+ 0x09d4, 0x0ab0, 0x075d, 0x084a, 0x0ca0, 0x0dc7,
+ 0x0cc9, 0x0bc1, 0x0a53, 0x09b6, 0x0a9d, 0x0a10,
+ 0x084c, 0x09fe, 0x0bbb, 0x0997, 0x0a29, 0x0d1d,
+ 0x0c64, 0x0b48, 0x0aba, 0x088c, 0x0773, 0x0788,
+ 0x08ea, 0x0b4a, 0x0ab9, 0x09ce, 0x0a55, 0x0963,
+ 0x0956, 0x07e2, 0x03be, 0x0556, 0x08c8, 0x0750,
+ 0x0704, 0x068b, 0x043f, 0x0558, 0x04cf, 0x018d,
+ 0x0179, 0x00bb, 0xfee8, 0xfeba, 0xfd26, 0xfd19,
+ 0xff86, 0xff88, 0xfebb, 0xfce1, 0xf8b1, 0xf68a,
+ 0xf600, 0xf568, 0xf4f5, 0xf301, 0xf269, 0xf26a,
+ 0xef7b, 0xf017, 0xf2b7, 0xefae, 0xeeaf, 0xf1ba,
+ 0xf0dd, 0xf0e8, 0xf4e8, 0xf6fc, 0xf6e4, 0xf4d6,
+ 0xf187, 0xf163, 0xf377, 0xf500, 0xf617, 0xf703,
+ 0xf90e, 0xfa4c, 0xf911, 0xf9c3, 0xfbdb, 0xfb56,
+ 0xfb4e, 0xfd77, 0xfeea, 0xff84, 0x0072, 0x019b,
+ 0x0136, 0xfe97, 0xfd87, 0xff6a, 0x0083, 0xfef5,
+ 0xfc33, 0xfbc4, 0xfe6b, 0xfe9a, 0xfb84, 0xfa47,
+ 0xfa8e, 0xfb1f, 0xfc7d, 0xfc36, 0xfbc2, 0xfdbd,
+ 0xfda0, 0xfa7f, 0xf98b, 0xfa31, 0xf94b, 0xf8ad,
+ 0xf980, 0xf8a8, 0xf59c, 0xf459, 0xf4d9, 0xf42c,
+ 0xf481, 0xf5d6, 0xf484, 0xf3c1, 0xf539, 0xf43f,
+ 0xf2ce, 0xf46e, 0xf511, 0xf2cc, 0xf129, 0xf18f,
+ 0xf1e6, 0xf209, 0xf47b, 0xf765, 0xf756, 0xf7c6,
+ 0xfab7, 0xfb7f, 0xfae7, 0xfcaa, 0xfd13, 0xfa6b,
+ 0xf99f, 0xfb62, 0xfcf2, 0xfea7, 0xfff4, 0xff1e,
+ 0xfe54, 0xfe6d, 0xfe13, 0xffb9, 0x01af, 0xff47,
+ 0xfbb1, 0xf94c, 0xf736, 0xf738, 0xf796, 0xf79a,
+ 0xfa18, 0xfb34, 0xf933, 0xf9c0, 0xfb26, 0xf842,
+ 0xf3fa, 0xf276, 0xf3b4, 0xf3fb, 0xf248, 0xf327,
+ 0xf419, 0xf1da, 0xf275, 0xf464, 0xf2f5, 0xf363,
+ 0xf57c, 0xf419, 0xf2d8, 0xf5df, 0xf9d1, 0xfae6,
+ 0xfa2d, 0xf9ed, 0xfa9d, 0xfc86, 0xfedd, 0xff0c,
+ 0xfe96, 0xffac, 0xfe87, 0xfc58, 0xfd99, 0xff13,
+ 0x008e, 0x0354, 0x03f7, 0x03fe, 0x037d, 0x00e0,
+ 0x01bb, 0x04fc, 0x03e3, 0x0202, 0x02cb, 0x01da,
+ 0xffc0, 0xffb5, 0xff7e, 0xff39, 0x00a2, 0x00be,
+ 0xfecc, 0xff1b, 0x01a9, 0x0240, 0x030d, 0x04d2,
+ 0x02ab, 0x00f5, 0x020c, 0x0010, 0xfe60, 0xff4c,
+ 0xff5e, 0x0082, 0x0231, 0x02db, 0x03fe, 0x037a,
+ 0x013e, 0xffad, 0xfd27, 0xfb79, 0xfd78, 0xfed8,
+ 0xff2e, 0x0066, 0xfe88, 0xfbde, 0xfd18, 0xfe2e,
+ 0xfb9e, 0xf902, 0xfa94, 0xfbce, 0xfa07, 0xfa8c,
+ 0xfb08, 0xfb00, 0xfdaf, 0xfc3f, 0xf8c9, 0xfa9e,
+ 0xfac0, 0xf7b6, 0xf7c8, 0xf836, 0xf80f, 0xf920,
+ 0xf794, 0xf62e, 0xf836, 0xf8e1, 0xf9aa, 0xfae1,
+ 0xf92b, 0xf88d, 0xf882, 0xf755, 0xf86b, 0xf9cd,
+ 0xf9b5, 0xf94f, 0xf854, 0xf76d, 0xf806, 0xf982,
+ 0xf8f2, 0xf775, 0xf77d, 0xf6bd, 0xf5af, 0xf6ee,
+ 0xf88f, 0xf8b3, 0xf996, 0xfaef, 0xfa2e, 0xfa81,
+ 0xfc2c, 0xfbf2, 0xfba5, 0xfb33, 0xfb5a, 0xfd34,
+ 0xfd0e, 0xfc1b, 0xfcaf, 0xfcef, 0xfc55, 0xfb76,
+ 0xfb2f, 0xfae2, 0xf9fd, 0xf9b1, 0xfa12, 0xf920,
+ 0xf676, 0xf6c7, 0xfa80, 0xfc6d, 0xfb85, 0xf977,
+ 0xf957, 0xfa57, 0xf9f9, 0xfc17, 0xff90, 0x00c6,
+ 0x01b7, 0x020f, 0x00e8, 0xffc2, 0x00b2, 0x0202,
+ 0xffca, 0xfce1, 0xfc20, 0xfc9e, 0xfe1f, 0xff2c,
+ 0xff86, 0x00f1, 0x02bd, 0x01e5, 0x0056, 0x018b,
+ 0x02d5, 0x02fa, 0x01d1, 0x00a5, 0x026c, 0x02a1,
+ 0x01f1, 0x038f, 0x0235, 0xffc9, 0xfe8f, 0xfc21,
+ 0xfb92, 0xfbd4, 0xf9a2, 0xf802, 0xf8d4, 0xf954,
+ 0xf8bd, 0xf908, 0xf9dc, 0xfb83, 0xfdd9, 0xff14,
+ 0xffbe, 0x005d, 0x0120, 0x0063, 0xfe8c, 0xfea9,
+ 0xfe25, 0xfd33, 0xfc8a, 0xfa80, 0xfbbe, 0xfd53,
+ 0xfb28, 0xfb9e, 0xfd9e, 0xfc87, 0xfb19, 0xfb74,
+ 0xfa7a, 0xf767, 0xf77e, 0xfa02, 0xfa8f, 0xfb0f,
+ 0xfd0d, 0xfdd5, 0xfce3, 0xfde2, 0xfefa, 0xfd28,
+ 0xfc12, 0xfbb9, 0xfb8e, 0xfc36, 0xfc80, 0xfd6e,
+ 0xfc12, 0xf96b, 0xfa65, 0xfaaf, 0xf9cf, 0xfb89,
+ 0xfd31, 0xfd39, 0xfd82, 0xfd75, 0xfc74, 0xfe92,
+ 0x0224, 0x0223, 0x01a9, 0x01ad, 0x0231, 0x03a2,
+ 0x023a, 0x00f2, 0x02b0, 0x03b8, 0x0362, 0x038b,
+ 0x0398, 0x018f, 0x00d6, 0x0262, 0x00f7, 0xff22,
+ 0xffcb, 0x003c, 0x00fb, 0x0254, 0x0230, 0x01d6,
+ 0x047c, 0x0655, 0x05a0, 0x079b, 0x09ef, 0x0b12,
+ 0x0c07, 0x0a61, 0x0a65, 0x0c0d, 0x0b7a, 0x0b81,
+ 0x0adb, 0x08d4, 0x07fe, 0x06e1, 0x0583, 0x0634,
+ 0x07a3, 0x070b, 0x0699, 0x0706, 0x0658, 0x06b9,
+ 0x0719, 0x05a1, 0x0545, 0x06d9, 0x07a1, 0x05b5,
+ 0x04e8, 0x05f4, 0x051b, 0x0489, 0x04d3, 0x059b,
+ 0x0698, 0x04eb, 0x0435, 0x0505, 0x03fe, 0x03c0,
+ 0x0435, 0x0418, 0x0488, 0x059f, 0x0743, 0x08f0,
+ 0x09b0, 0x07ed, 0x0518, 0x03b8, 0x0339, 0x0393,
+ 0x0404, 0x0410, 0x03e1, 0x030e, 0x02a4, 0x025a,
+ 0x025b, 0x0178, 0xff07, 0xff19, 0xffb5, 0xff96,
+ 0x01b0, 0x022a, 0x00b3, 0x005a, 0xffdb, 0xffa0,
+ 0x013c, 0x038d, 0x0310, 0x0134, 0x024b, 0x03e6,
+ 0x0352, 0x024e, 0x02d8, 0x0388, 0x0298, 0x0237,
+ 0x0219, 0x01b1, 0x0305, 0x0467, 0x0411, 0x03a2,
+ 0x0495, 0x0481, 0x031c, 0x044e, 0x050b, 0x0376,
+ 0x0365, 0x02dc, 0x00c7, 0x0039, 0x01fb, 0x0398,
+ 0x02ea, 0x023e, 0x0258, 0x0274, 0x0342, 0x03d5,
+ 0x0483, 0x04db, 0x036c, 0x01c7, 0x018e, 0x02c4,
+ 0x0340, 0x024e, 0x020c, 0x0246, 0x0195, 0x0033,
+ 0xffdc, 0xffba, 0xfe4e, 0xfea8, 0x0097, 0x0104,
+ 0x0096, 0xffb5, 0xfe17, 0xfd10, 0xfd94, 0xfd43,
+ 0xfbf6, 0xfcfb, 0xfd75, 0xfc5b, 0xfd52, 0xfdf6,
+ 0xfd1c, 0xfca2, 0xfd22, 0xff76, 0x008e, 0xfec6,
+ 0xfe17, 0xff42, 0xffbc, 0xff7f, 0xff1b, 0xfe51,
+ 0xfeae, 0x006b, 0x0173, 0x01a2, 0x0111, 0xffc7,
+ 0xff5d, 0x00d4, 0x023e, 0x019c, 0x0114, 0x00b8,
+ 0xff60, 0xfef2, 0xfcf3, 0xf9b3, 0xf9c0, 0xf94f,
+ 0xf705, 0xf6aa, 0xf5e3, 0xf40b, 0xf411, 0xf463,
+ 0xf345, 0xf2f3, 0xf3b3, 0xf2bc, 0xf15a, 0xf26d,
+ 0xf2ed, 0xf19a, 0xf30d, 0xf5e8, 0xf62b, 0xf717,
+ 0xfa0f, 0xfc88, 0xfde8, 0xfdfc, 0xfe93, 0xffaf,
+ 0xff6b, 0x0083, 0x0216, 0x014e, 0x0191, 0x02a5,
+ 0x0272, 0x03ea, 0x0686, 0x0747, 0x0738, 0x0784,
+ 0x0753, 0x066e, 0x0606, 0x0684, 0x0728, 0x081d,
+ 0x086a, 0x07d3, 0x0942, 0x0b07, 0x0a59, 0x0a85,
+ 0x0b47, 0x0a07, 0x0969, 0x0a31, 0x0af4, 0x0bf7,
+ 0x0c46, 0x0c29, 0x0cf4, 0x0ccf, 0x0ba1, 0x0c1c,
+ 0x0d8d, 0x0dfd, 0x0d46, 0x0bf7, 0x0b77, 0x0c04,
+ 0x0c6d, 0x0ca2, 0x0d20, 0x0d9a, 0x0e34, 0x0f82,
+ 0x0f63, 0x0d16, 0x0caf, 0x0e41, 0x0e4a, 0x0d6e,
+ 0x0cbf, 0x0b89, 0x0b2f, 0x0c6c, 0x0c3c, 0x0b71,
+ 0x0d51, 0x0e3d, 0x0d21, 0x0d64, 0x0cc1, 0x0b27,
+ 0x0bba, 0x0c8b, 0x0c04, 0x0b9c, 0x0b66, 0x0a6b,
+ 0x0926, 0x0884, 0x080d, 0x0734, 0x0786, 0x0939,
+ 0x082a, 0x04b0, 0x0365, 0x033a, 0x025d, 0x00e7,
+ 0xffd4, 0x00f0, 0x0155, 0xffe5, 0xfeb0, 0xfd54,
+ 0xfcd7, 0xfb5e, 0xf837, 0xf87c, 0xfa54, 0xf99d,
+ 0xf820, 0xf6da, 0xf5d5, 0xf4f6, 0xf34f, 0xf2a2,
+ 0xf399, 0xf313, 0xf2df, 0xf532, 0xf57c, 0xf401,
+ 0xf454, 0xf5cd, 0xf735, 0xf76f, 0xf823, 0xf904,
+ 0xf87a, 0xfa29, 0xfbef, 0xfb38, 0xfbce, 0xfc49,
+ 0xfbc2, 0xfbc0, 0xfb36, 0xfb36, 0xfc37, 0xfccb,
+ 0xfd3b, 0xfe14, 0xfe81, 0xfee9, 0xffe7, 0xffd3,
+ 0xff74, 0x0011, 0x0149, 0x025d, 0x00c3, 0xfead,
+ 0xfed2, 0xff32, 0x002a, 0x00df, 0x00ec, 0x012b,
+ 0xff61, 0xfd8d, 0xfe40, 0xff9b, 0xffd6, 0xfeee,
+ 0xfe6e, 0xfd42, 0xfb1e, 0xf9d7, 0xf8e6, 0xf851,
+ 0xf803, 0xf790, 0xf687, 0xf578, 0xf693, 0xf729,
+ 0xf5e6, 0xf4d8, 0xf34f, 0xf313, 0xf453, 0xf487,
+ 0xf4de, 0xf671, 0xf7b1, 0xf6bc, 0xf5f2, 0xf77b,
+ 0xf939, 0xfa7e, 0xfb2c, 0xfb7a, 0xfb1c, 0xfa1a,
+ 0xfa33, 0xf92c, 0xf82b, 0xf9d1, 0xfab3, 0xfaaf,
+ 0xfa0f, 0xf901, 0xf8ff, 0xf852, 0xf8cf, 0xfa5d,
+ 0xf9de, 0xf9bf, 0xfa96, 0xfa98, 0xfa78, 0xfa9e,
+ 0xfa28, 0xf9b1, 0xf9ff, 0xf933, 0xf7cb, 0xf690,
+ 0xf5ec, 0xf6dc, 0xf5ec, 0xf4ff, 0xf6c4, 0xf6f0,
+ 0xf6e8, 0xf75e, 0xf6cd, 0xf729, 0xf753, 0xf733,
+ 0xf755, 0xf841, 0xfa68, 0xfa1d, 0xf844, 0xf851,
+ 0xf9a4, 0xfb4a, 0xfc84, 0xfd1b, 0xfcf4, 0xfcee,
+ 0xfd54, 0xfda0, 0xfe5a, 0xfe2c, 0xfe41, 0xff47,
+ 0xff5a, 0x0068, 0x00d6, 0xfffd, 0x0105, 0x020c,
+ 0x029e, 0x02e2, 0x021f, 0x01a6, 0x01c7, 0x030e,
+ 0x0395, 0x02e8, 0x036e, 0x03f2, 0x03e7, 0x0373,
+ 0x03d0, 0x05a0, 0x0575, 0x03eb, 0x0321, 0x02cd,
+ 0x0299, 0x02a2, 0x0457, 0x054e, 0x0459, 0x0439,
+ 0x0471, 0x04b9, 0x04a1, 0x03ee, 0x0386, 0x029b,
+ 0x01b7, 0x00ef, 0x0086, 0x0079, 0x0054, 0x01b7,
+ 0x01c3, 0x0011, 0x0028, 0x004b, 0x003a, 0xff18,
+ 0xfcb6, 0xfd5a, 0xff90, 0xffcc, 0xfe2b, 0xfd73,
+ 0xfeb1, 0xfe8d, 0xfdc1, 0xfdb1, 0xfc98, 0xfb35,
+ 0xfaa7, 0xfa78, 0xfa78, 0xfb90, 0xfc36, 0xfbfb,
+ 0xfd4e, 0xfd06, 0xfb67, 0xfb7a, 0xfa67, 0xfa0a,
+ 0xfb4b, 0xfb11, 0xfa3b, 0xf9ab, 0xfa7b, 0xfb75,
+ 0xfb03, 0xfad4, 0xfa86, 0xfad9, 0xfc48, 0xfcaf,
+ 0xfc14, 0xfbdd, 0xfc7b, 0xfc1e, 0xfb5f, 0xfc2a,
+ 0xfc7a, 0xfba0, 0xfac6, 0xfb12, 0xfb8b, 0xfb01,
+ 0xfbfb, 0xfcb3, 0xfbcc, 0xfc2f, 0xfc34, 0xfb1a,
+ 0xf9fb, 0xf92d, 0xf97a, 0xf9ca, 0xf9fb, 0xfa16,
+ 0xfa56, 0xfadf, 0xfa0d, 0xf93a, 0xf8e9, 0xf880,
+ 0xf941, 0xfa53, 0xfad6, 0xfa0c, 0xf8a3, 0xf8a1,
+ 0xf94a, 0xfa0d, 0xf99d, 0xf8b8, 0xf9cf, 0xf9c0,
+ 0xf7e5, 0xf7b2, 0xf8a2, 0xf8eb, 0xf986, 0xfb07,
+ 0xfb74, 0xfbe0, 0xfccf, 0xfc1c, 0xfc3f, 0xfda6,
+ 0xfe58, 0xfef9, 0xff70, 0x0083, 0x011b, 0x007d,
+ 0x00b9, 0x00e3, 0x0130, 0x0189, 0x001a, 0xfebd,
+ 0xfe5d, 0xfe12, 0xfd81, 0xfcae, 0xfcd9, 0xfe14,
+ 0xfea7, 0xfe49, 0xfedb, 0xffa2, 0xfef9, 0xfe7a,
+ 0xfe45, 0xfea7, 0xff67, 0xfe8e, 0xfde5, 0xfd3f,
+ 0xfc48, 0xfd15, 0xfcd6, 0xfb6d, 0xfb43, 0xfa85,
+ 0xf92f, 0xf8b1, 0xf917, 0xfa2a, 0xfb33, 0xfb2a,
+ 0xfa38, 0xfa25, 0xfae0, 0xfb7e, 0xfbe1, 0xfbc8,
+ 0xfbf3, 0xfbbe, 0xfad0, 0xfabc, 0xfb22, 0xfb17,
+ 0xfa89, 0xfa60, 0xfa5c, 0xf95f, 0xf974, 0xfa0a,
+ 0xf8cd, 0xf7a5, 0xf7ba, 0xf8c4, 0xfa2a, 0xfae1,
+ 0xfb58, 0xfbf2, 0xfc8b, 0xfcd2, 0xfd1d, 0xfdc2,
+ 0xfddd, 0xfdc7, 0xfd9c, 0xfcf0, 0xfcce, 0xfd74,
+ 0xfde3, 0xfd2f, 0xfcbe, 0xfd58, 0xfca8, 0xfb8f,
+ 0xfbff, 0xfc6d, 0xfc3a, 0xfc1c, 0xfbeb, 0xfb8e,
+ 0xfbbc, 0xfc21, 0xfbb3, 0xfb5f, 0xfbe4, 0xfd05,
+ 0xfe72, 0xffb4, 0x00ad, 0x004e, 0xff82, 0x005b,
+ 0x0118, 0x00c2, 0x005f, 0x003b, 0x010b, 0x0220,
+ 0x0292, 0x02dc, 0x02f5, 0x033b, 0x0464, 0x0575,
+ 0x0512, 0x0429, 0x0476, 0x059d, 0x05db, 0x0525,
+ 0x05b1, 0x0733, 0x076e, 0x06dc, 0x0658, 0x0662,
+ 0x06d3, 0x05db, 0x0458, 0x03a4, 0x02e7, 0x02e3,
+ 0x03d7, 0x043d, 0x040e, 0x03e9, 0x03e5, 0x043f,
+ 0x04f4, 0x052c, 0x04af, 0x047a, 0x04c9, 0x050f,
+ 0x056a, 0x05ef, 0x05bd, 0x050e, 0x054a, 0x05f4,
+ 0x0629, 0x05ed, 0x0528, 0x04a8, 0x045e, 0x034b,
+ 0x0257, 0x01fb, 0x01a1, 0x01d3, 0x0226, 0x0162,
+ 0x00c6, 0x0129, 0x00d3, 0x0020, 0x005e, 0x007b,
+ 0x004f, 0x0008, 0xfee5, 0xfe0e, 0xfe37, 0xfe35,
+ 0xfdd5, 0xfd1d, 0xfc30, 0xfc46, 0xfcfc, 0xfd02,
+ 0xfd5f, 0xfec6, 0xffbd, 0xffa8, 0xff4b, 0xff49,
+ 0xffd1, 0x0090, 0x00bb, 0x003c, 0x0034, 0x0077,
+ 0x0028, 0x0052, 0x00de, 0x007a, 0x005b, 0x0125,
+ 0x016f, 0x012f, 0x00d1, 0x00aa, 0x014f, 0x0191,
+ 0x00fc, 0x0137, 0x0208, 0x0246, 0x01e9, 0x012a,
+ 0x0156, 0x02b6, 0x0368, 0x036e, 0x0390, 0x0330,
+ 0x02b2, 0x023f, 0x014f, 0x00ef, 0x0137, 0x010c,
+ 0x00f3, 0x00f1, 0x0040, 0xffa8, 0xff9d, 0xff6a,
+ 0xfed4, 0xfde5, 0xfce9, 0xfcb6, 0xfd6b, 0xfdf5,
+ 0xfd90, 0xfcd3, 0xfcaa, 0xfd2d, 0xfddb, 0xfe4c,
+ 0xfe9b, 0xfed7, 0xfea9, 0xfe85, 0xff1e, 0xffd4,
+ 0x0011, 0x001c, 0x002f, 0x00a8, 0x0132, 0x010f,
+ 0x00d7, 0x0113, 0x0189, 0x0214, 0x021f, 0x01f3,
+ 0x025a, 0x025c, 0x01e1, 0x0210, 0x023c, 0x0201,
+ 0x0183, 0x0005, 0xfea8, 0xfe37, 0xfd01, 0xfb7a,
+ 0xfaf3, 0xfa67, 0xf97a, 0xf871, 0xf73b, 0xf6a1,
+ 0xf687, 0xf69f, 0xf758, 0xf743, 0xf5aa, 0xf49d,
+ 0xf4a8, 0xf521, 0xf606, 0xf67e, 0xf6ba, 0xf841,
+ 0xfa2c, 0xfab5, 0xfa62, 0xfa5a, 0xfa6a, 0xf9cc,
+ 0xf8c2, 0xf854, 0xf8a3, 0xf94e, 0xfa34, 0xfb2b,
+ 0xfc68, 0xfddc, 0xfea1, 0xfece, 0xff62, 0x00a5,
+ 0x0279, 0x041d, 0x0478, 0x03f9, 0x03f1, 0x04e3,
+ 0x0665, 0x0749, 0x0791, 0x08a9, 0x09d3, 0x099e,
+ 0x0986, 0x0a7e, 0x0b31, 0x0b4c, 0x0b3f, 0x0b4f,
+ 0x0bc9, 0x0bcc, 0x0b32, 0x0bb1, 0x0ce8, 0x0d06,
+ 0x0cc5, 0x0d63, 0x0e29, 0x0e54, 0x0e2b, 0x0e07,
+ 0x0ddd, 0x0de9, 0x0e8c, 0x0f29, 0x0f1c, 0x0ec1,
+ 0x0e61, 0x0e42, 0x0e9a, 0x0ea4, 0x0e4d, 0x0e8c,
+ 0x0eec, 0x0ea8, 0x0e78, 0x0ea3, 0x0e73, 0x0dee,
+ 0x0dba, 0x0e3e, 0x0f34, 0x0fd0, 0x1009, 0x10a9,
+ 0x1168, 0x115a, 0x10f7, 0x1112, 0x1164, 0x11a2,
+ 0x11f0, 0x11f7, 0x1141, 0x104b, 0x0ffb, 0x0fc5,
+ 0x0ebc, 0x0dc9, 0x0d6b, 0x0ca8, 0x0bd8, 0x0b29,
+ 0x0993, 0x07e8, 0x0738, 0x06b7, 0x062a, 0x056c,
+ 0x0426, 0x0342, 0x02be, 0x01cc, 0x011c, 0x00d8,
+ 0x0018, 0xff06, 0xfe24, 0xfd2a, 0xfbac, 0xfa8d,
+ 0xfaec, 0xfb42, 0xfa2f, 0xf935, 0xf8d4, 0xf875,
+ 0xf8da, 0xf97c, 0xf92d, 0xf89e, 0xf851, 0xf826,
+ 0xf82d, 0xf842, 0xf898, 0xf920, 0xf97e, 0xfa36,
+ 0xfb14, 0xfb26, 0xfaf5, 0xfb82, 0xfc83, 0xfcc8,
+ 0xfc55, 0xfcf4, 0xfeac, 0x0007, 0x019c, 0x0348,
+ 0x0340, 0x023f, 0x0209, 0x02b2, 0x03af, 0x042f,
+ 0x0411, 0x03f1, 0x03b6, 0x03c8, 0x046d, 0x0469,
+ 0x03c9, 0x0390, 0x0331, 0x026f, 0x01da, 0x0166,
+ 0x0111, 0x00ce, 0x002d, 0xff00, 0xfd91, 0xfc9f,
+ 0xfc5a, 0xfc35, 0xfc22, 0xfc20, 0xfbfa, 0xfbef,
+ 0xfb76, 0xfa13, 0xf907, 0xf913, 0xf97d, 0xf9ba,
+ 0xf985, 0xf911, 0xf928, 0xf9b6, 0xf9f1, 0xf9cb,
+ 0xf9cb, 0xf9f0, 0xf9d6, 0xf9c7, 0xfa2c, 0xfa81,
+ 0xfa5c, 0xfa49, 0xfaec, 0xfc2c, 0xfd18, 0xfd2f,
+ 0xfd4f, 0xfde8, 0xfe48, 0xfe46, 0xfe26, 0xfdc1,
+ 0xfd44, 0xfd4a, 0xfdfa, 0xfeb4, 0xfecf, 0xfe6f,
+ 0xfdd7, 0xfcaa, 0xfaf9, 0xf9d3, 0xf9d7, 0xfa85,
+ 0xfb21, 0xfb4d, 0xfb01, 0xfa95, 0xfa70, 0xfa7e,
+ 0xfa3b, 0xf97b, 0xf8e7, 0xf8e7, 0xf8b4, 0xf7cc,
+ 0xf6fe, 0xf6ce, 0xf6d1, 0xf6e4, 0xf756, 0xf82d,
+ 0xf928, 0xfa04, 0xfa78, 0xfa64, 0xfa3e, 0xfaa5,
+ 0xfb64, 0xfc18, 0xfd1c, 0xfe50, 0xfed7, 0xff12,
+ 0x0006, 0x00c6, 0x0031, 0xffa9, 0x0033, 0x00b5,
+ 0x00f6, 0x01d5, 0x02fb, 0x03aa, 0x03d0, 0x03d8,
+ 0x041b, 0x0464, 0x04dc, 0x05c9, 0x0649, 0x0651,
+ 0x06a0, 0x0692, 0x0644, 0x0689, 0x068f, 0x0646,
+ 0x065c, 0x05e9, 0x050f, 0x04b8, 0x0423, 0x0357,
+ 0x0355, 0x03ae, 0x0396, 0x0338, 0x0345, 0x03df,
+ 0x0444, 0x048c, 0x052f, 0x05a8, 0x05b6, 0x0530,
+ 0x045e, 0x0487, 0x04ec, 0x0429, 0x0353, 0x0293,
+ 0x0153, 0x00d9, 0x00e8, 0x007d, 0x008c, 0x00d3,
+ 0x0069, 0xffe9, 0xff44, 0xfe7d, 0xfe51, 0xfe4f,
+ 0xfe35, 0xfe72, 0xfeba, 0xff28, 0xffc9, 0xffd9,
+ 0xffa4, 0xffa2, 0xfefc, 0xfda5, 0xfcfd, 0xfd3a,
+ 0xfd0a, 0xfc4d, 0xfbfb, 0xfbcc, 0xfb52, 0xfaf1,
+ 0xfa6a, 0xf9fb, 0xfa75, 0xfaf4, 0xfadd, 0xfb22,
+ 0xfba3, 0xfbeb, 0xfc39, 0xfc61, 0xfca8, 0xfd40,
+ 0xfd52, 0xfcf3, 0xfcab, 0xfc12, 0xfba2, 0xfbfb,
+ 0xfc31, 0xfbc6, 0xfb4c, 0xfb11, 0xfb06, 0xfb08,
+ 0xfb0a, 0xfafe, 0xfaee, 0xfb4e, 0xfbc9, 0xfbb3,
+ 0xfbdb, 0xfc86, 0xfcaa, 0xfcae, 0xfd38, 0xfd9d,
+ 0xfdb7, 0xfd43, 0xfbcc, 0xfa71, 0xf9df, 0xf98b,
+ 0xf985, 0xf97f, 0xf8e8, 0xf870, 0xf87f, 0xf8d1,
+ 0xf93c, 0xf950, 0xf957, 0xfa0c, 0xfaea, 0xfb39,
+ 0xfb00, 0xfaa6, 0xfafb, 0xfc0b, 0xfcfd, 0xfd82,
+ 0xfd7b, 0xfd1d, 0xfd15, 0xfcff, 0xfc65, 0xfbe6,
+ 0xfb9c, 0xfb74, 0xfbbb, 0xfbe9, 0xfbec, 0xfc9c,
+ 0xfd46, 0xfd12, 0xfd1c, 0xfde4, 0xfe7b, 0xfecc,
+ 0xff0b, 0xfeb1, 0xfde8, 0xfd57, 0xfcf3, 0xfc99,
+ 0xfc22, 0xfb7e, 0xfb35, 0xfb2f, 0xfad0, 0xfa3d,
+ 0xf98c, 0xf903, 0xf93d, 0xf947, 0xf8bd, 0xf92d,
+ 0xfa4d, 0xfab4, 0xfade, 0xfb12, 0xfaf8, 0xfaed,
+ 0xfaef, 0xfada, 0xfaab, 0xfa10, 0xf97a, 0xf93a,
+ 0xf8aa, 0xf7da, 0xf749, 0xf704, 0xf6eb, 0xf686,
+ 0xf5fd, 0xf5d6, 0xf59a, 0xf566, 0xf5b4, 0xf5df,
+ 0xf5eb, 0xf648, 0xf698, 0xf721, 0xf7f5, 0xf84e,
+ 0xf86a, 0xf8a5, 0xf8c0, 0xf8af, 0xf83a, 0xf7a9,
+ 0xf771, 0xf703, 0xf6c4, 0xf774, 0xf817, 0xf861,
+ 0xf8fc, 0xf962, 0xf933, 0xf8ef, 0xf91e, 0xf9cf,
+ 0xf9fd, 0xf972, 0xf970, 0xfa05, 0xfaa2, 0xfb2c,
+ 0xfb13, 0xfab1, 0xfab3, 0xfa9a, 0xfab7, 0xfb77,
+ 0xfbf9, 0xfc71, 0xfd55, 0xfdce, 0xfdf2, 0xfe83,
+ 0xff7e, 0x0094, 0x015a, 0x01fa, 0x02ca, 0x031e,
+ 0x030b, 0x034e, 0x0381, 0x0397, 0x03e9, 0x040c,
+ 0x042b, 0x046b, 0x0438, 0x03d8, 0x0386, 0x0301,
+ 0x02d5, 0x0304, 0x02d8, 0x0278, 0x021e, 0x01c7,
+ 0x01ae, 0x01b3, 0x0205, 0x02dc, 0x0378, 0x03b7,
+ 0x0441, 0x04d9, 0x0565, 0x0634, 0x06e5, 0x0769,
+ 0x07d0, 0x074a, 0x0635, 0x05ee, 0x05de, 0x0514,
+ 0x04a9, 0x052d, 0x0581, 0x0537, 0x04d1, 0x04ac,
+ 0x04ff, 0x0581, 0x05de, 0x0646, 0x0671, 0x0615,
+ 0x05e2, 0x0600, 0x05c3, 0x0550, 0x0509, 0x0493,
+ 0x03fb, 0x039c, 0x02f2, 0x01b1, 0x00d1, 0x00b4,
+ 0x005f, 0xffc7, 0xffcb, 0x000b, 0xffd7, 0xff9a,
+ 0xff8d, 0xff5f, 0xff39, 0xff52, 0xff8b, 0xffda,
+ 0x0003, 0xffc6, 0xff4c, 0xfebf, 0xfe00, 0xfd74,
+ 0xfd7e, 0xfd8c, 0xfd33, 0xfcef, 0xfd02, 0xfd4f,
+ 0xfdb5, 0xfdbe, 0xfd52, 0xfd2d, 0xfdab, 0xfe48,
+ 0xfe9a, 0xff00, 0xfff6, 0x011d, 0x020c, 0x0304,
+ 0x0413, 0x051e, 0x062a, 0x06c7, 0x06cc, 0x06dc,
+ 0x072c, 0x0754, 0x0713, 0x0679, 0x05b0, 0x04f4,
+ 0x04ad, 0x04a3, 0x0414, 0x0356, 0x02d9, 0x01fc,
+ 0x011e, 0x00d2, 0x005b, 0xffff, 0x0043, 0x003d,
+ 0x0006, 0x0024, 0xfff1, 0xffb7, 0xffe6, 0xffb9,
+ 0xff5e, 0xff2a, 0xfe80, 0xfdaf, 0xfd7c, 0xfdae,
+ 0xfdb0, 0xfd69, 0xfd3c, 0xfd5c, 0xfdd4, 0xfed5,
+ 0xffc1, 0x0013, 0x0075, 0x00ed, 0x0165, 0x0255,
+ 0x02bd, 0x01fd, 0x015c, 0x0114, 0x00b9, 0x0090,
+ 0x002e, 0xffb7, 0xfff3, 0x004e, 0x0040, 0xfff7,
+ 0xff3d, 0xfe67, 0xfde0, 0xfd66, 0xfd27, 0xfd31,
+ 0xfd28, 0xfd3d, 0xfd6b, 0xfd58, 0xfd24, 0xfcf2,
+ 0xfcc9, 0xfc6e, 0xfb86, 0xfa8d, 0xf9d4, 0xf8f6,
+ 0xf837, 0xf7b6, 0xf701, 0xf678, 0xf639, 0xf5c7,
+ 0xf587, 0xf56c, 0xf4ca, 0xf465, 0xf4ca, 0xf4fb,
+ 0xf50a, 0xf5ec, 0xf731, 0xf82f, 0xf90a, 0xf988,
+ 0xf9a6, 0xfa19, 0xfacd, 0xfb62, 0xfc3d, 0xfd31,
+ 0xfd79, 0xfd45, 0xfd0a, 0xfcf2, 0xfd51, 0xfe29,
+ 0xff22, 0xffe4, 0x003f, 0x00cf, 0x01f2, 0x02ce,
+ 0x032a, 0x03bc, 0x0469, 0x04f9, 0x0597, 0x05fb,
+ 0x0635, 0x06c7, 0x0796, 0x0837, 0x088c, 0x08e9,
+ 0x09d5, 0x0b0a, 0x0be2, 0x0c33, 0x0bf1, 0x0b56,
+ 0x0abe, 0x0a01, 0x0942, 0x08ff, 0x092b, 0x09aa,
+ 0x0a4b, 0x0abc, 0x0b32, 0x0b93, 0x0ba6, 0x0c25,
+ 0x0cfd, 0x0d4d, 0x0d79, 0x0dce, 0x0dc9, 0x0dd5,
+ 0x0e50, 0x0ed4, 0x0f5f, 0x0ff5, 0x1073, 0x10c9,
+ 0x1083, 0x1023, 0x10ce, 0x11d3, 0x1229, 0x121d,
+ 0x11a9, 0x10bb, 0x1002, 0x0f90, 0x0f54, 0x0faf,
+ 0x1029, 0x1032, 0x1013, 0x0fea, 0x0fbb, 0x0fa3,
+ 0x0f47, 0x0e8f, 0x0dd3, 0x0cf2, 0x0bcf, 0x0ae1,
+ 0x0a57, 0x09b5, 0x08b9, 0x07d2, 0x0723, 0x0628,
+ 0x0501, 0x042c, 0x0375, 0x02ca, 0x0246, 0x019d,
+ 0x00f6, 0x0090, 0xfffc, 0xff28, 0xfe49, 0xfd58,
+ 0xfc95, 0xfbd7, 0xfabb, 0xf9c9, 0xf936, 0xf8ab,
+ 0xf882, 0xf8ca, 0xf929, 0xf9b0, 0xfa01, 0xf9d7,
+ 0xf9e0, 0xfa52, 0xfada, 0xfb86, 0xfc28, 0xfc91,
+ 0xfd21, 0xfe13, 0xff3e, 0x0067, 0x0185, 0x02a1,
+ 0x037b, 0x03d2, 0x03dc, 0x040c, 0x04b1, 0x058a,
+ 0x05f5, 0x05f7, 0x05f9, 0x05fc, 0x05e5, 0x059a,
+ 0x051e, 0x04d9, 0x04cc, 0x0456, 0x0372, 0x02c8,
+ 0x0284, 0x023c, 0x01c0, 0x011d, 0x0044, 0xff70,
+ 0xfee7, 0xfe62, 0xfdcd, 0xfd83, 0xfd3a, 0xfc70,
+ 0xfb97, 0xfb37, 0xfae8, 0xfa47, 0xf9d9, 0xf9e7,
+ 0xf9de, 0xf98e, 0xf946, 0xf915, 0xf911, 0xf94f,
+ 0xf9cb, 0xfa93, 0xfb02, 0xfa93, 0xfa3d, 0xfaa1,
+ 0xfb2f, 0xfbee, 0xfcfe, 0xfdc8, 0xfe19, 0xfe17,
+ 0xfdda, 0xfdb0, 0xfdd1, 0xfe0f, 0xfe30, 0xfe4c,
+ 0xfeac, 0xff1c, 0xff10, 0xfea8, 0xfe97, 0xff01,
+ 0xff27, 0xfeb0, 0xfe54, 0xfe2f, 0xfd9b, 0xfcbd,
+ 0xfbeb, 0xfb23, 0xfab8, 0xfa70, 0xf9da, 0xf98c,
+ 0xf998, 0xf93a, 0xf894, 0xf80b, 0xf7a4, 0xf78d,
+ 0xf78f, 0xf753, 0xf70a, 0xf6a2, 0xf601, 0xf580,
+ 0xf54a, 0xf56d, 0xf5ee, 0xf658, 0xf668, 0xf643,
+ 0xf5f5, 0xf5e0, 0xf681, 0xf7aa, 0xf925, 0xfaae,
+ 0xfb64, 0xfb4d, 0xfb76, 0xfc10, 0xfcd2, 0xfdd9,
+ 0xfec9, 0xff1d, 0xfee2, 0xfe13, 0xfcfc, 0xfcad,
+ 0xfd8d, 0xfed3, 0xffd0, 0x0057, 0x003d, 0xffbb,
+ 0xffca, 0x00c7, 0x01ee, 0x0308, 0x0433, 0x0499,
+ 0x0404, 0x038b, 0x03a3, 0x041d, 0x0506, 0x0609,
+ 0x068b, 0x0659, 0x05a9, 0x04cc, 0x041a, 0x03e8,
+ 0x0423, 0x045e, 0x0472, 0x0450, 0x03cc, 0x0339,
+ 0x030c, 0x0370, 0x047a, 0x0577, 0x0588, 0x0530,
+ 0x04fe, 0x049c, 0x0454, 0x049a, 0x04de, 0x0492,
+ 0x03b5, 0x027d, 0x0170, 0x00fb, 0x010b, 0x0158,
+ 0x0177, 0x0129, 0x00a7, 0x004c, 0x0026, 0xffed,
+ 0xff78, 0xff3c, 0xff68, 0xff69, 0xff1d, 0xfef6,
+ 0xfedb, 0xfeb1, 0xfee3, 0xff75, 0xfff1, 0x0022,
+ 0x0000, 0xffa4, 0xff54, 0xff4b, 0xff88, 0xffd1,
+ 0xffc4, 0xff17, 0xfe09, 0xfd48, 0xfd12, 0xfd2f,
+ 0xfd98, 0xfe11, 0xfe41, 0xfe4b, 0xfe32, 0xfdfc,
+ 0xfe33, 0xfebb, 0xff05, 0xff29, 0xff25, 0xff11,
+ 0xff52, 0xff83, 0xff7f, 0xffb0, 0xff9e, 0xfefe,
+ 0xfe54, 0xfda0, 0xfcea, 0xfc77, 0xfc46, 0xfc69,
+ 0xfc6d, 0xfbe6, 0xfb81, 0xfb55, 0xfae9, 0xfac5,
+ 0xfb14, 0xfb66, 0xfbbb, 0xfbdd, 0xfbc8, 0xfbe7,
+ 0xfc41, 0xfce1, 0xfd71, 0xfd45, 0xfcdb, 0xfcd7,
+ 0xfcd8, 0xfcd3, 0xfce6, 0xfd05, 0xfd58, 0xfd9e,
+ 0xfdc5, 0xfe21, 0xfe44, 0xfe01, 0xfde4, 0xfdf2,
+ 0xfe42, 0xfee8, 0xff26, 0xfef6, 0xff18, 0xff4d,
+ 0xff2b, 0xfef5, 0xfed2, 0xfec1, 0xfedb, 0xff07,
+ 0xff10, 0xff03, 0xff2c, 0xff6f, 0xff4a, 0xfee2,
+ 0xfec2, 0xfec5, 0xfea4, 0xfe82, 0xfe4a, 0xfdec,
+ 0xfdc9, 0xfdd3, 0xfdae, 0xfd8b, 0xfd7b, 0xfd41,
+ 0xfd1b, 0xfd1b, 0xfce4, 0xfcc7, 0xfd26, 0xfd81,
+ 0xfd90, 0xfd7f, 0xfd2d, 0xfc8f, 0xfbe2, 0xfb43,
+ 0xface, 0xfab0, 0xfad2, 0xfb0f, 0xfb70, 0xfbdd,
+ 0xfc04, 0xfbca, 0xfb66, 0xfb17, 0xfb00, 0xfb3a,
+ 0xfbb6, 0xfc29, 0xfc4c, 0xfc06, 0xfb66, 0xfad3,
+ 0xfaa2, 0xfa6e, 0xf9d5, 0xf947, 0xf915, 0xf933,
+ 0xf9c2, 0xfaac, 0xfb9f, 0xfc5e, 0xfcaa, 0xfc95,
+ 0xfc5a, 0xfbdf, 0xfb63, 0xfb58, 0xfb82, 0xfb88,
+ 0xfb43, 0xfa96, 0xf9c4, 0xf8fa, 0xf856, 0xf874,
+ 0xf959, 0xfa2a, 0xfab7, 0xfb6c, 0xfc46, 0xfd31,
+ 0xfe42, 0xff49, 0x000c, 0x00ab, 0x0129, 0x0150,
+ 0x0149, 0x0133, 0x00b8, 0xffec, 0xff5e, 0xff40,
+ 0xff64, 0xffa6, 0xffe8, 0xffee, 0xff67, 0xfe97,
+ 0xfe26, 0xfe37, 0xfebc, 0xffd3, 0x0143, 0x02a9,
+ 0x03d4, 0x0483, 0x0494, 0x042c, 0x0393, 0x0326,
+ 0x02f2, 0x029b, 0x0225, 0x0214, 0x026e, 0x02c8,
+ 0x034b, 0x0440, 0x0505, 0x052f, 0x0546, 0x058a,
+ 0x05ca, 0x061f, 0x0677, 0x0685, 0x066f, 0x068a,
+ 0x06c6, 0x0700, 0x0753, 0x078c, 0x0747, 0x06bb,
+ 0x0641, 0x05be, 0x052d, 0x04b7, 0x0473, 0x0467,
+ 0x046f, 0x047e, 0x049e, 0x04aa, 0x04ae, 0x04d4,
+ 0x04d6, 0x04a9, 0x049c, 0x0491, 0x045b, 0x041e,
+ 0x03e8, 0x037e, 0x02bf, 0x01ff, 0x0156, 0x0063,
+ 0xff73, 0xff01, 0xfec1, 0xfe90, 0xfe8c, 0xfe8a,
+ 0xfe98, 0xfea2, 0xfe62, 0xfe0d, 0xfdb0, 0xfd2a,
+ 0xfcca, 0xfcba, 0xfd03, 0xfd85, 0xfdb8, 0xfdaa,
+ 0xfdbf, 0xfdab, 0xfd99, 0xfde7, 0xfe1a, 0xfe44,
+ 0xfecd, 0xff47, 0xffb1, 0x0061, 0x0100, 0x01b6,
+ 0x02bb, 0x035b, 0x039b, 0x041c, 0x046b, 0x0461,
+ 0x04a2, 0x04e8, 0x04ba, 0x043e, 0x0365, 0x0279,
+ 0x01fc, 0x019f, 0x015d, 0x01b0, 0x0229, 0x0254,
+ 0x0257, 0x0215, 0x01af, 0x0195, 0x01c1, 0x0215,
+ 0x0274, 0x02b2, 0x02e4, 0x02c4, 0x01d7, 0x006b,
+ 0xff23, 0xfe71, 0xfe89, 0xff12, 0xff99, 0xfff1,
+ 0x0009, 0xfffb, 0xffe2, 0xffd6, 0x0009, 0x0074,
+ 0x00e8, 0x0161, 0x01c7, 0x01fa, 0x0218, 0x024a,
+ 0x029d, 0x02c1, 0x0274, 0x0203, 0x0181, 0x00b7,
+ 0xffeb, 0xff64, 0xff35, 0xff66, 0xffa1, 0xff8f,
+ 0xff4a, 0xff02, 0xfed9, 0xfed4, 0xfedf, 0xff0f,
+ 0xff5b, 0xff8d, 0xff84, 0xff28, 0xfead, 0xfe73,
+ 0xfe48, 0xfdde, 0xfd5c, 0xfcdf, 0xfc52, 0xfbaa,
+ 0xfaef, 0xfa43, 0xf9c2, 0xf97b, 0xf96d, 0xf974,
+ 0xf994, 0xf9cf, 0xfa0c, 0xfa56, 0xfab7, 0xfb27,
+ 0xfb9e, 0xfbc3, 0xfb84, 0xfb37, 0xfaa4, 0xf9e5,
+ 0xf998, 0xf95d, 0xf8f9, 0xf913, 0xf977, 0xf9ad,
+ 0xf9d0, 0xf9a9, 0xf969, 0xf991, 0xf9e7, 0xfaa2,
+ 0xfc08, 0xfd22, 0xfda2, 0xfe34, 0xfedd, 0xff8e,
+ 0x004c, 0x00b6, 0x00ef, 0x015f, 0x01f2, 0x0294,
+ 0x0308, 0x0320, 0x0348, 0x0388, 0x0380, 0x036e,
+ 0x0386, 0x03a1, 0x03d8, 0x0439, 0x049d, 0x04f4,
+ 0x0564, 0x063a, 0x0745, 0x080a, 0x087b, 0x08ac,
+ 0x08c3, 0x091f, 0x09aa, 0x0a4a, 0x0b32, 0x0c00,
+ 0x0c5c, 0x0c81, 0x0c87, 0x0cc5, 0x0d91, 0x0e77,
+ 0x0f3d, 0x0fe3, 0x1016, 0x1026, 0x106a, 0x108d,
+ 0x10b1, 0x1115, 0x1174, 0x11c4, 0x11f9, 0x121c,
+ 0x128b, 0x131c, 0x1365, 0x136f, 0x132f, 0x12c4,
+ 0x127f, 0x1235, 0x11ad, 0x1111, 0x1081, 0x0ffa,
+ 0x0f78, 0x0f31, 0x0f5f, 0x0fc4, 0x0ff8, 0x0fc6,
+ 0x0f51, 0x0f12, 0x0ef4, 0x0e82, 0x0dfb, 0x0d91,
+ 0x0ce0, 0x0be0, 0x0ac6, 0x0977, 0x07f5, 0x0682,
+ 0x053e, 0x03fe, 0x02c7, 0x01d2, 0x00fb, 0x002c,
+ 0xffa2, 0xff36, 0xfec1, 0xfe71, 0xfe3a, 0xfe09,
+ 0xfddd, 0xfda1, 0xfd9d, 0xfdcc, 0xfda7, 0xfd3e,
+ 0xfce9, 0xfca4, 0xfc86, 0xfc92, 0xfc9d, 0xfcbb,
+ 0xfd00, 0xfd57, 0xfdc4, 0xfe5c, 0xff1d, 0xffdc,
+ 0x0083, 0x0131, 0x01e1, 0x027d, 0x02f4, 0x0334,
+ 0x035c, 0x037a, 0x039a, 0x03f4, 0x044d, 0x044b,
+ 0x0418, 0x03dd, 0x03a0, 0x035b, 0x02ee, 0x0296,
+ 0x026c, 0x020a, 0x01a3, 0x0187, 0x015f, 0x010e,
+ 0x009d, 0xfffa, 0xff6a, 0xff17, 0xfeec, 0xfee6,
+ 0xfebf, 0xfe4d, 0xfd97, 0xfca6, 0xfbed, 0xfba8,
+ 0xfb6d, 0xfb06, 0xfa83, 0xf9ff, 0xf9a7, 0xf948,
+ 0xf8ea, 0xf906, 0xf955, 0xf969, 0xf97e, 0xf9a4,
+ 0xf9c5, 0xfa0e, 0xfa75, 0xfada, 0xfb54, 0xfbef,
+ 0xfc94, 0xfd2d, 0xfd8c, 0xfd90, 0xfd4c, 0xfce6,
+ 0xfc79, 0xfc44, 0xfc5b, 0xfc6b, 0xfc5e, 0xfc78,
+ 0xfcbd, 0xfce6, 0xfccc, 0xfca0, 0xfca0, 0xfcb5,
+ 0xfcd3, 0xfcfe, 0xfced, 0xfca6, 0xfc5b, 0xfbdf,
+ 0xfb46, 0xfac1, 0xfa21, 0xf975, 0xf8ee, 0xf85d,
+ 0xf7c8, 0xf762, 0xf708, 0xf67d, 0xf5c5, 0xf519,
+ 0xf48a, 0xf428, 0xf426, 0xf464, 0xf495, 0xf4de,
+ 0xf540, 0xf576, 0xf595, 0xf5c4, 0xf5f7, 0xf659,
+ 0xf717, 0xf802, 0xf8d5, 0xf96c, 0xf9bf, 0xf9de,
+ 0xf9c6, 0xf972, 0xf94e, 0xf99f, 0xf9ee, 0xfa28,
+ 0xfac7, 0xfb7f, 0xfbfb, 0xfc9e, 0xfd7f, 0xfe74,
+ 0xff71, 0x0044, 0x00f8, 0x01ad, 0x024b, 0x02c7,
+ 0x02f6, 0x02c9, 0x0283, 0x0234, 0x0202, 0x0213,
+ 0x020f, 0x0207, 0x0243, 0x028f, 0x0306, 0x03b5,
+ 0x0439, 0x04a9, 0x0518, 0x0555, 0x058a, 0x05a3,
+ 0x0579, 0x0543, 0x050a, 0x04fd, 0x0524, 0x050c,
+ 0x04ed, 0x04f3, 0x0491, 0x03d0, 0x0317, 0x0284,
+ 0x024c, 0x0232, 0x01fa, 0x0204, 0x0236, 0x025c,
+ 0x02ca, 0x0357, 0x03b6, 0x040c, 0x041d, 0x03b4,
+ 0x0332, 0x02a1, 0x01d3, 0x013f, 0x010f, 0x00a1,
+ 0xffed, 0xff69, 0xfec7, 0xfdba, 0xfca7, 0xfbd1,
+ 0xfb48, 0xfb12, 0xfb0c, 0xfb3d, 0xfba0, 0xfc14,
+ 0xfc89, 0xfcd8, 0xfd2e, 0xfdba, 0xfe0f, 0xfe51,
+ 0xfedc, 0xff2a, 0xff36, 0xff61, 0xff33, 0xfebd,
+ 0xfe80, 0xfe53, 0xfe2f, 0xfe0a, 0xfd99, 0xfd2a,
+ 0xfce4, 0xfca0, 0xfca8, 0xfcd6, 0xfca0, 0xfc57,
+ 0xfc68, 0xfcab, 0xfce8, 0xfd03, 0xfce2, 0xfc92,
+ 0xfc3d, 0xfbe6, 0xfb54, 0xfa87, 0xf9df, 0xf980,
+ 0xf925, 0xf8c1, 0xf8a9, 0xf8d4, 0xf8fe, 0xf930,
+ 0xf957, 0xf95b, 0xf991, 0xfa11, 0xfa8d, 0xfaf3,
+ 0xfb33, 0xfb70, 0xfbe6, 0xfc40, 0xfc1e, 0xfbac,
+ 0xfb1f, 0xfa94, 0xfa14, 0xf9a6, 0xf97b, 0xf9a7,
+ 0xfa19, 0xfaa2, 0xfafe, 0xfb46, 0xfbab, 0xfc14,
+ 0xfc68, 0xfc7d, 0xfc88, 0xfd20, 0xfde8, 0xfe59,
+ 0xfec1, 0xff09, 0xff1c, 0xff55, 0xff64, 0xff1c,
+ 0xfeec, 0xfeb8, 0xfe67, 0xfe3e, 0xfe49, 0xfe99,
+ 0xff06, 0xff3d, 0xff6a, 0xffa9, 0xffce, 0xffca,
+ 0xff84, 0xff20, 0xfeef, 0xfed2, 0xfea0, 0xfe54,
+ 0xfdee, 0xfd8a, 0xfd14, 0xfc60, 0xfba8, 0xfb21,
+ 0xfac0, 0xfa9c, 0xfabc, 0xfae8, 0xfb12, 0xfb6b,
+ 0xfbc4, 0xfbda, 0xfc08, 0xfc63, 0xfc85, 0xfcbf,
+ 0xfd53, 0xfdc0, 0xfdda, 0xfdc4, 0xfd87, 0xfd51,
+ 0xfd27, 0xfd1c, 0xfd48, 0xfd35, 0xfcc4, 0xfc64,
+ 0xfc31, 0xfc3c, 0xfc63, 0xfc3a, 0xfbf6, 0xfbdd,
+ 0xfbaa, 0xfb4f, 0xfad9, 0xfa58, 0xfa1a, 0xfa1d,
+ 0xfa28, 0xfa39, 0xfa41, 0xfa4d, 0xfa96, 0xfb09,
+ 0xfb62, 0xfb75, 0xfb59, 0xfb5c, 0xfb97, 0xfbea,
+ 0xfc5e, 0xfd0f, 0xfddc, 0xfe82, 0xfefd, 0xff6f,
+ 0xffb9, 0xffcc, 0xffdb, 0xfff1, 0xfff7, 0xffe2,
+ 0xffae, 0xff55, 0xfedb, 0xfe61, 0xfe14, 0xfdf5,
+ 0xfdf9, 0xfe04, 0xfe18, 0xfe8f, 0xff6f, 0x003c,
+ 0x00d4, 0x014d, 0x01c4, 0x0266, 0x0316, 0x0393,
+ 0x03e6, 0x0415, 0x040f, 0x03e1, 0x03a6, 0x037c,
+ 0x0354, 0x0328, 0x0326, 0x033e, 0x0342, 0x0344,
+ 0x0360, 0x03b8, 0x044c, 0x04c8, 0x0520, 0x0586,
+ 0x05ea, 0x0651, 0x06c5, 0x06f8, 0x06c3, 0x065b,
+ 0x05f8, 0x05c7, 0x05c1, 0x059b, 0x052b, 0x04b8,
+ 0x048c, 0x0471, 0x0435, 0x041d, 0x045b, 0x04be,
+ 0x0526, 0x05ae, 0x063d, 0x0688, 0x068f, 0x0672,
+ 0x0625, 0x05c8, 0x057f, 0x0516, 0x0477, 0x03c4,
+ 0x02f1, 0x0204, 0x0122, 0x003e, 0xff44, 0xfe56,
+ 0xfda8, 0xfd21, 0xfc88, 0xfbfe, 0xfbb3, 0xfb87,
+ 0xfb74, 0xfb74, 0xfb5f, 0xfb49, 0xfb4c, 0xfb5e,
+ 0xfb95, 0xfbe4, 0xfc16, 0xfc32, 0xfc4f, 0xfc64,
+ 0xfc6a, 0xfc6a, 0xfc7d, 0xfcb8, 0xfd05, 0xfd4e,
+ 0xfd89, 0xfdd8, 0xfe97, 0xffb9, 0x00b8, 0x017b,
+ 0x022a, 0x029a, 0x02c9, 0x030d, 0x0364, 0x03a5,
+ 0x03d2, 0x03d5, 0x03a5, 0x036e, 0x0349, 0x032e,
+ 0x02ea, 0x0263, 0x01ec, 0x01b5, 0x0198, 0x017b,
+ 0x0150, 0x012d, 0x013d, 0x0159, 0x0172, 0x01af,
+ 0x01de, 0x01c4, 0x0179, 0x0143, 0x013d, 0x012c,
+ 0x0112, 0x0138, 0x014f, 0x0110, 0x00da, 0x00db,
+ 0x010b, 0x0152, 0x014d, 0x0104, 0x00e0, 0x00f1,
+ 0x0127, 0x016f, 0x01b4, 0x01e1, 0x01b9, 0x016b,
+ 0x017b, 0x01b4, 0x01ce, 0x01fc, 0x0233, 0x0243,
+ 0x0244, 0x024e, 0x0263, 0x0262, 0x023a, 0x01f7,
+ 0x017d, 0x00e4, 0x004b, 0xff99, 0xff25, 0xff42,
+ 0xff98, 0xfffd, 0x0086, 0x0103, 0x0148, 0x014f,
+ 0x0120, 0x00ce, 0x005b, 0xfff8, 0xffac, 0xff28,
+ 0xfe81, 0xfddd, 0xfd0c, 0xfc34, 0xfb92, 0xfaff,
+ 0xfa48, 0xf98c, 0xf907, 0xf8a3, 0xf834, 0xf7fb,
+ 0xf7eb, 0xf7bb, 0xf7bb, 0xf7fc, 0xf821, 0xf85f,
+ 0xf8d7, 0xf92b, 0xf95a, 0xf9a1, 0xf9fe, 0xfa56,
+ 0xfab5, 0xfb16, 0xfb2d, 0xfb24, 0xfb7c, 0xfc01,
+ 0xfc7a, 0xfd39, 0xfe18, 0xfec2, 0xff4b, 0xffb3,
+ 0x0001, 0x003a, 0x0029, 0xfffb, 0xffee, 0x0001,
+ 0x004b, 0x00c0, 0x0130, 0x01a0, 0x01ed, 0x0229,
+ 0x028c, 0x02c9, 0x02d4, 0x032a, 0x03b7, 0x0447,
+ 0x0505, 0x05b0, 0x0619, 0x06ae, 0x0765, 0x07c0,
+ 0x07d1, 0x07ea, 0x0827, 0x08a1, 0x0936, 0x099c,
+ 0x09e5, 0x0a22, 0x0a2c, 0x0a23, 0x0a44, 0x0a86,
+ 0x0aee, 0x0b99, 0x0c59, 0x0d12, 0x0dec, 0x0ec8,
+ 0x0f71, 0x1019, 0x10e1, 0x119f, 0x1248, 0x12cd,
+ 0x1332, 0x13c5, 0x1472, 0x14e7, 0x1543, 0x157a,
+ 0x155b, 0x152e, 0x152d, 0x1531, 0x1531, 0x153c,
+ 0x153c, 0x150c, 0x14c7, 0x149a, 0x1443, 0x13a2,
+ 0x130c, 0x1287, 0x11ea, 0x1127, 0x1011, 0x0ed2,
+ 0x0dbf, 0x0cba, 0x0bb5, 0x0aad, 0x0973, 0x082d,
+ 0x070c, 0x060e, 0x053c, 0x0479, 0x03ce, 0x0367,
+ 0x02e6, 0x0214, 0x0130, 0x004c, 0xff8b, 0xfef6,
+ 0xfe60, 0xfe03, 0xfe17, 0xfe45, 0xfe49, 0xfe45,
+ 0xfe81, 0xff04, 0xff6c, 0xff93, 0xffbd, 0x0014,
+ 0x008e, 0x00fc, 0x015a, 0x01e4, 0x028e, 0x0314,
+ 0x0384, 0x0409, 0x0498, 0x0510, 0x056b, 0x05ab,
+ 0x05b3, 0x059d, 0x05bb, 0x05fe, 0x0643, 0x0698,
+ 0x06d6, 0x06cd, 0x0696, 0x066d, 0x067e, 0x0691,
+ 0x063f, 0x0593, 0x04cd, 0x040a, 0x0373, 0x030d,
+ 0x0289, 0x01dc, 0x0158, 0x00e8, 0x0046, 0xffbb,
+ 0xff69, 0xfef0, 0xfe66, 0xfe16, 0xfdd4, 0xfd8d,
+ 0xfd5f, 0xfd49, 0xfd4c, 0xfd4b, 0xfd3e, 0xfd3f,
+ 0xfd23, 0xfce9, 0xfcbe, 0xfc88, 0xfc53, 0xfc27,
+ 0xfbf2, 0xfbf4, 0xfc26, 0xfc39, 0xfc70, 0xfcee,
+ 0xfd63, 0xfddb, 0xfe76, 0xff29, 0xffde, 0x004d,
+ 0x0059, 0x0032, 0xffef, 0xff94, 0xff40, 0xff20,
+ 0xff3c, 0xff40, 0xfefb, 0xfe97, 0xfe29, 0xfd92,
+ 0xfcce, 0xfc0b, 0xfb5c, 0xfaa5, 0xf9ec, 0xf937,
+ 0xf88d, 0xf836, 0xf80f, 0xf7b9, 0xf78e, 0xf7a3,
+ 0xf789, 0xf77e, 0xf798, 0xf766, 0xf6fc, 0xf695,
+ 0xf62d, 0xf5cc, 0xf55f, 0xf4e5, 0xf48c, 0xf458,
+ 0xf448, 0xf430, 0xf3ea, 0xf3bd, 0xf3c7, 0xf3fe,
+ 0xf457, 0xf495, 0xf4e0, 0xf56c, 0xf5c3, 0xf603,
+ 0xf697, 0xf727, 0xf7c8, 0xf8b8, 0xf96e, 0xf9e4,
+ 0xfa75, 0xfae5, 0xfb3d, 0xfbc3, 0xfc46, 0xfcb5,
+ 0xfd31, 0xfd9d, 0xfdef, 0xfe57, 0xfeec, 0xff8d,
+ 0x0016, 0x0095, 0x0116, 0x019d, 0x0233, 0x02bd,
+ 0x0317, 0x0356, 0x03ab, 0x040f, 0x0458, 0x047b,
+ 0x0471, 0x0447, 0x043e, 0x0450, 0x0445, 0x043f,
+ 0x0456, 0x0475, 0x04af, 0x04e9, 0x0500, 0x050a,
+ 0x04ee, 0x04ba, 0x04ba, 0x04c4, 0x04b6, 0x04cd,
+ 0x0500, 0x051f, 0x0521, 0x04fd, 0x04ba, 0x045c,
+ 0x03e6, 0x0365, 0x02b5, 0x01e8, 0x0137, 0x0089,
+ 0xffed, 0xff96, 0xff43, 0xfed5, 0xfe88, 0xfe54,
+ 0xfe3a, 0xfe62, 0xfe9c, 0xfebd, 0xfeda, 0xff03,
+ 0xff45, 0xff87, 0xff84, 0xff5c, 0xff48, 0xff0d,
+ 0xfe97, 0xfe35, 0xfdfd, 0xfdf8, 0xfe27, 0xfe3b,
+ 0xfe2b, 0xfe3e, 0xfe5b, 0xfe78, 0xfeaf, 0xfec1,
+ 0xfea1, 0xfe8e, 0xfe81, 0xfe6c, 0xfe2d, 0xfda1,
+ 0xfd29, 0xfcf6, 0xfcb4, 0xfc67, 0xfc1e, 0xfbbe,
+ 0xfb6e, 0xfb37, 0xfb05, 0xfaed, 0xfad2, 0xfaa2,
+ 0xfa6e, 0xfa1a, 0xf9e5, 0xfa14, 0xfa4b, 0xfa5e,
+ 0xfa7e, 0xfa9d, 0xfac4, 0xfb12, 0xfb53, 0xfb6d,
+ 0xfb71, 0xfb5e, 0xfb3b, 0xfb20, 0xfb27, 0xfb36,
+ 0xfb2c, 0xfb41, 0xfb80, 0xfb8c, 0xfb66, 0xfb4e,
+ 0xfb55, 0xfb80, 0xfbb4, 0xfbe4, 0xfc39, 0xfc98,
+ 0xfcdf, 0xfd2a, 0xfd60, 0xfd83, 0xfdc4, 0xfe03,
+ 0xfe39, 0xfea4, 0xff2f, 0xff9e, 0xffe4, 0x0007,
+ 0x000d, 0x0003, 0xfff5, 0xffd5, 0xff99, 0xff66,
+ 0xff3d, 0xff06, 0xff01, 0xff3b, 0xff6d, 0xffa6,
+ 0xfff7, 0x0031, 0x0051, 0x003e, 0xffd7, 0xff53,
+ 0xfeda, 0xfe6d, 0xfe06, 0xfd93, 0xfd44, 0xfd3d,
+ 0xfd3a, 0xfd17, 0xfce6, 0xfcb1, 0xfcad, 0xfce9,
+ 0xfd2e, 0xfd71, 0xfdb5, 0xfdfa, 0xfe48, 0xfe80,
+ 0xfeaa, 0xfee2, 0xfef6, 0xfee0, 0xfeda, 0xfec6,
+ 0xfe7a, 0xfe04, 0xfd7b, 0xfcf6, 0xfc78, 0xfbf6,
+ 0xfb83, 0xfb34, 0xfb08, 0xfae0, 0xfa94, 0xfa28,
+ 0xf9c3, 0xf96c, 0xf92e, 0xf915, 0xf91b, 0xf929,
+ 0xf925, 0xf91d, 0xf932, 0xf96c, 0xf9d7, 0xfa7c,
+ 0xfb30, 0xfbb0, 0xfbe8, 0xfbe5, 0xfba4, 0xfb49,
+ 0xfb2e, 0xfb50, 0xfb6d, 0xfba3, 0xfc04, 0xfc5f,
+ 0xfca3, 0xfcd8, 0xfcf4, 0xfcf5, 0xfcf5, 0xfd37,
+ 0xfdab, 0xfe08, 0xfe70, 0xfee2, 0xff19, 0xff44,
+ 0xff80, 0xff91, 0xff99, 0xff9f, 0xff66, 0xff29,
+ 0xff0f, 0xff09, 0xff32, 0xff68, 0xff8e, 0xffea,
+ 0x0071, 0x00f0, 0x017c, 0x0219, 0x02a6, 0x0316,
+ 0x0362, 0x0382, 0x035f, 0x0316, 0x02fc, 0x0306,
+ 0x02f3, 0x02dc, 0x02ce, 0x029d, 0x024f, 0x020c,
+ 0x01ef, 0x01fc, 0x0220, 0x0265, 0x02d8, 0x0351,
+ 0x03ab, 0x03f2, 0x0438, 0x0473, 0x04a2, 0x04e9,
+ 0x0560, 0x05dc, 0x063c, 0x06a1, 0x070b, 0x0754,
+ 0x0788, 0x07be, 0x07ea, 0x081f, 0x0862, 0x088f,
+ 0x0896, 0x0861, 0x07ed, 0x075f, 0x06b3, 0x05df,
+ 0x0517, 0x0468, 0x03c6, 0x0340, 0x02c9, 0x0262,
+ 0x0218, 0x01c1, 0x0155, 0x0102, 0x00af, 0x0046,
+ 0xffeb, 0xffa7, 0xff62, 0xfefd, 0xfe78, 0xfe05,
+ 0xfdbc, 0xfd84, 0xfd56, 0xfd36, 0xfd2a, 0xfd4a,
+ 0xfd99, 0xfdfc, 0xfe55, 0xfe95, 0xfed9, 0xff46,
+ 0xffcc, 0x0047, 0x00b3, 0x0115, 0x0166, 0x0193,
+ 0x01ae, 0x01da, 0x0208, 0x0227, 0x0242, 0x0241,
+ 0x0202, 0x01c2, 0x01cd, 0x020a, 0x024b, 0x0294,
+ 0x02d3, 0x02fd, 0x0316, 0x031a, 0x0325, 0x034a,
+ 0x035a, 0x0342, 0x031f, 0x02ff, 0x02ec, 0x02dc,
+ 0x02b7, 0x0290, 0x025d, 0x0201, 0x01b2, 0x018b,
+ 0x0162, 0x0142, 0x014a, 0x0167, 0x017c, 0x0177,
+ 0x0167, 0x0160, 0x0147, 0x0107, 0x00c0, 0x00a3,
+ 0x00c2, 0x00fb, 0x0125, 0x013b, 0x0145, 0x013e,
+ 0x0142, 0x016c, 0x0192, 0x0193, 0x0185, 0x0157,
+ 0x00ea, 0x0083, 0x0045, 0x0010, 0x0009, 0x002b,
+ 0x0039, 0x004f, 0x0076, 0x0092, 0x00c8, 0x0101,
+ 0x011b, 0x0146, 0x0160, 0x013e, 0x0111, 0x00cf,
+ 0x0071, 0x001f, 0xffc3, 0xff62, 0xff02, 0xfe52,
+ 0xfd64, 0xfc8c, 0xfbc1, 0xfb03, 0xfa69, 0xf9f7,
+ 0xf9b5, 0xf975, 0xf922, 0xf8f2, 0xf8e2, 0xf8cf,
+ 0xf8bf, 0xf8c8, 0xf8f9, 0xf91a, 0xf90f, 0xf934,
+ 0xf997, 0xf9ec, 0xfa2e, 0xfa38, 0xfa02, 0xf9f0,
+ 0xf9f4, 0xf9ae, 0xf941, 0xf8e8, 0xf89d, 0xf85e,
+ 0xf83d, 0xf841, 0xf866, 0xf89f, 0xf8e7, 0xf932,
+ 0xf983, 0xf9ec, 0xfa6b, 0xfad4, 0xfb0b, 0xfb23,
+ 0xfb2f, 0xfb1a, 0xfb11, 0xfb38, 0xfb6d, 0xfbca,
+ 0xfc6e, 0xfd1a, 0xfdb5, 0xfe42, 0xfea2, 0xfef3,
+ 0xff4a, 0xff93, 0xffd3, 0xfffb, 0x0014, 0x0053,
+ 0x0088, 0x008c, 0x0094, 0x0094, 0x0075, 0x007b,
+ 0x00c7, 0x011f, 0x0167, 0x01cf, 0x0258, 0x02e0,
+ 0x039e, 0x048e, 0x0563, 0x065d, 0x078e, 0x0891,
+ 0x0989, 0x0a83, 0x0b2f, 0x0bc4, 0x0c74, 0x0d1a,
+ 0x0dca, 0x0e7f, 0x0f29, 0x0fe7, 0x1091, 0x1122,
+ 0x11c3, 0x123c, 0x129b, 0x1329, 0x13b4, 0x142c,
+ 0x14b4, 0x151e, 0x155e, 0x1589, 0x1586, 0x156f,
+ 0x1570, 0x157c, 0x157f, 0x1550, 0x14c6, 0x1404,
+ 0x133e, 0x1256, 0x112a, 0x0ff7, 0x0ee7, 0x0dc3,
+ 0x0c95, 0x0b8c, 0x0a8f, 0x098e, 0x089c, 0x07a4,
+ 0x06a5, 0x05c8, 0x0508, 0x0456, 0x03cf, 0x036c,
+ 0x02f1, 0x026f, 0x0211, 0x01b4, 0x0162, 0x013d,
+ 0x0101, 0x00a9, 0x0078, 0x0042, 0x000e, 0x0013,
+ 0x001f, 0x002e, 0x0052, 0x006f, 0x00b1, 0x0115,
+ 0x0159, 0x01c1, 0x026e, 0x0318, 0x03ce, 0x0488,
+ 0x051f, 0x05ac, 0x061c, 0x0661, 0x06a9, 0x06d9,
+ 0x06ef, 0x0717, 0x0718, 0x06da, 0x0694, 0x0651,
+ 0x061e, 0x060a, 0x0603, 0x0601, 0x05f2, 0x05b4,
+ 0x054d, 0x04e4, 0x048b, 0x0428, 0x038f, 0x02ce,
+ 0x01fc, 0x0116, 0x0041, 0xffa8, 0xff42, 0xfeeb,
+ 0xfe8e, 0xfe29, 0xfdaf, 0xfd1f, 0xfc96, 0xfc19,
+ 0xfbb7, 0xfba2, 0xfbc3, 0xfbe5, 0xfc06, 0xfc31,
+ 0xfc5f, 0xfc83, 0xfc9c, 0xfcc5, 0xfd02, 0xfd52,
+ 0xfdde, 0xfe94, 0xff33, 0xffa5, 0xffdb, 0xffd8,
+ 0xffac, 0xff52, 0xfee3, 0xfe81, 0xfe29, 0xfdf1,
+ 0xfdc6, 0xfd92, 0xfd88, 0xfda7, 0xfdbc, 0xfdc2,
+ 0xfda1, 0xfd76, 0xfd7e, 0xfd75, 0xfd33, 0xfcf3,
+ 0xfca1, 0xfc33, 0xfbda, 0xfb7e, 0xfb18, 0xfacb,
+ 0xfa7b, 0xfa0e, 0xf98d, 0xf900, 0xf871, 0xf7d2,
+ 0xf725, 0xf68c, 0xf612, 0xf5b6, 0xf570, 0xf52a,
+ 0xf50c, 0xf545, 0xf59a, 0xf5c0, 0xf5c0, 0xf5bd,
+ 0xf5b7, 0xf5ae, 0xf5ac, 0xf5a4, 0xf599, 0xf5b8,
+ 0xf606, 0xf659, 0xf6a3, 0xf6f7, 0xf75f, 0xf7c8,
+ 0xf841, 0xf8e9, 0xf98f, 0xfa1b, 0xfac9, 0xfb82,
+ 0xfc0f, 0xfc7a, 0xfcc2, 0xfcf8, 0xfd42, 0xfd8b,
+ 0xfdde, 0xfe43, 0xfead, 0xff3d, 0xffd0, 0x001a,
+ 0x004d, 0x0079, 0x008a, 0x00b5, 0x00dc, 0x00de,
+ 0x00fd, 0x012f, 0x0174, 0x01fd, 0x028a, 0x02fd,
+ 0x0379, 0x03d6, 0x0407, 0x0428, 0x042e, 0x042d,
+ 0x0422, 0x040b, 0x0415, 0x0431, 0x043e, 0x045c,
+ 0x047f, 0x048a, 0x0485, 0x0460, 0x0416, 0x03b3,
+ 0x0338, 0x02d4, 0x029a, 0x0260, 0x0228, 0x0202,
+ 0x01c4, 0x015d, 0x010c, 0x00d5, 0x007c, 0x0004,
+ 0xff9b, 0xff32, 0xfed3, 0xfea4, 0xfe9b, 0xfeb6,
+ 0xff02, 0xff61, 0xffab, 0xffd1, 0xfffb, 0x004b,
+ 0x0096, 0x00ca, 0x00ed, 0x00db, 0x009a, 0x003f,
+ 0xffb8, 0xff4d, 0xff37, 0xff2e, 0xff3e, 0xff89,
+ 0xffbf, 0xffc1, 0xffa5, 0xff51, 0xfeda, 0xfe64,
+ 0xfdd2, 0xfd3d, 0xfcec, 0xfcec, 0xfd21, 0xfd74,
+ 0xfddc, 0xfe42, 0xfe85, 0xfe90, 0xfe52, 0xfdb9,
+ 0xfcea, 0xfc2b, 0xfba6, 0xfb7a, 0xfbbc, 0xfc45,
+ 0xfce5, 0xfd7c, 0xfdbb, 0xfd7f, 0xfd03, 0xfc60,
+ 0xfb96, 0xfadf, 0xfa4f, 0xf9d7, 0xf999, 0xf98c,
+ 0xf983, 0xf973, 0xf95e, 0xf940, 0xf913, 0xf8ea,
+ 0xf909, 0xf96a, 0xf9c5, 0xfa2c, 0xfa96, 0xfab7,
+ 0xfab1, 0xfaba, 0xfabb, 0xfadd, 0xfb2a, 0xfb69,
+ 0xfbb8, 0xfc26, 0xfc7e, 0xfce1, 0xfd68, 0xfdcf,
+ 0xfdff, 0xfe0c, 0xfdf8, 0xfdce, 0xfdaa, 0xfdb4,
+ 0xfde5, 0xfe17, 0xfe62, 0xfead, 0xfe98, 0xfe55,
+ 0xfe1f, 0xfdaf, 0xfd32, 0xfcf9, 0xfccc, 0xfca0,
+ 0xfc98, 0xfc8e, 0xfc82, 0xfc89, 0xfc96, 0xfcaa,
+ 0xfcab, 0xfc99, 0xfcbc, 0xfd04, 0xfd3b, 0xfd76,
+ 0xfdc3, 0xfe36, 0xfed9, 0xff63, 0xffcb, 0x002f,
+ 0x004e, 0x001c, 0xffd6, 0xff76, 0xff1d, 0xfef6,
+ 0xfed1, 0xfe9b, 0xfe56, 0xfddd, 0xfd4b, 0xfcc7,
+ 0xfc34, 0xfbaf, 0xfb6d, 0xfb56, 0xfb59, 0xfb70,
+ 0xfb7b, 0xfb88, 0xfba9, 0xfbce, 0xfbf0, 0xfc07,
+ 0xfc03, 0xfbe4, 0xfb9e, 0xfb46, 0xfb08, 0xfaeb,
+ 0xfb01, 0xfb53, 0xfbb0, 0xfc1c, 0xfc94, 0xfcdb,
+ 0xfd17, 0xfd64, 0xfd77, 0xfd5d, 0xfd4b, 0xfd29,
+ 0xfcf4, 0xfca9, 0xfc62, 0xfc53, 0xfc37, 0xfbf8,
+ 0xfbf0, 0xfbed, 0xfbca, 0xfbe1, 0xfbf5, 0xfbc7,
+ 0xfbaa, 0xfba3, 0xfbad, 0xfbf8, 0xfc52, 0xfcab,
+ 0xfd25, 0xfd9e, 0xfe1c, 0xfeaf, 0xff1a, 0xff70,
+ 0xffcc, 0xffee, 0xffe1, 0xffe2, 0xffe0, 0xffda,
+ 0xffe8, 0xfff2, 0xfff7, 0x000f, 0x0029, 0x002a,
+ 0x001f, 0x001a, 0x0014, 0x001a, 0x0047, 0x0085,
+ 0x00ab, 0x00d4, 0x0108, 0x011f, 0x0138, 0x017b,
+ 0x01c0, 0x0215, 0x02a8, 0x0356, 0x0413, 0x04df,
+ 0x057c, 0x05c9, 0x05c9, 0x0573, 0x0502, 0x04c3,
+ 0x04c5, 0x0513, 0x0596, 0x060d, 0x0670, 0x06ce,
+ 0x0720, 0x0763, 0x077a, 0x0758, 0x0731, 0x071c,
+ 0x06fc, 0x06c2, 0x0673, 0x0618, 0x05cb, 0x056e,
+ 0x04d0, 0x0416, 0x036f, 0x02cb, 0x021d, 0x017a,
+ 0x00f5, 0x0099, 0x0046, 0xfff2, 0xffba, 0xff93,
+ 0xff5b, 0xff1f, 0xfefc, 0xff0d, 0xff45, 0xff71,
+ 0xffa7, 0xfffe, 0x003f, 0x0075, 0x00b8, 0x00e7,
+ 0x011f, 0x0172, 0x01a5, 0x01c3, 0x01df, 0x01c1,
+ 0x016f, 0x0120, 0x00d3, 0x0095, 0x0092, 0x00b0,
+ 0x00d1, 0x0105, 0x0146, 0x0171, 0x01a2, 0x01fb,
+ 0x0263, 0x02cb, 0x0318, 0x031c, 0x02d4, 0x0255,
+ 0x01c7, 0x015b, 0x0112, 0x00ef, 0x0105, 0x013f,
+ 0x018b, 0x01d5, 0x0203, 0x022e, 0x025d, 0x0271,
+ 0x0277, 0x0278, 0x027b, 0x0297, 0x0297, 0x0263,
+ 0x0244, 0x0239, 0x021e, 0x0210, 0x01f7, 0x01ad,
+ 0x0160, 0x012f, 0x0116, 0x0121, 0x0146, 0x016f,
+ 0x019a, 0x01b4, 0x01a4, 0x019b, 0x01c4, 0x01ec,
+ 0x0217, 0x0268, 0x02a5, 0x02a8, 0x0298, 0x0278,
+ 0x024c, 0x022b, 0x0216, 0x0214, 0x022b, 0x0255,
+ 0x028a, 0x02ae, 0x02a5, 0x0269, 0x0206, 0x018a,
+ 0x00f3, 0x0063, 0xfff8, 0xff88, 0xff2e, 0xff10,
+ 0xfee7, 0xfec9, 0xfedd, 0xfedf, 0xfed8, 0xfec9,
+ 0xfe82, 0xfe47, 0xfe00, 0xfd7a, 0xfd22, 0xfcda,
+ 0xfc6f, 0xfc47, 0xfc2e, 0xfbff, 0xfc1b, 0xfc3d,
+ 0xfc50, 0xfc80, 0xfc5b, 0xfc03, 0xfbe2, 0xfba4,
+ 0xfb64, 0xfb5a, 0xfb30, 0xfb04, 0xfb05, 0xfafe,
+ 0xfaf9, 0xfafc, 0xfb03, 0xfb0a, 0xfadc, 0xfab1,
+ 0xfabf, 0xfab2, 0xfa96, 0xfaa3, 0xfac9, 0xfb1e,
+ 0xfb8a, 0xfbda, 0xfc30, 0xfc82, 0xfcb4, 0xfce5,
+ 0xfcf6, 0xfcee, 0xfd03, 0xfd09, 0xfce5, 0xfcc6,
+ 0xfcb4, 0xfcae, 0xfcbf, 0xfcd4, 0xfce5, 0xfd09,
+ 0xfd42, 0xfd73, 0xfda5, 0xfdeb, 0xfe28, 0xfe73,
+ 0xfedc, 0xff17, 0xff27, 0xff40, 0xff4d, 0xff6a,
+ 0xffb5, 0x0013, 0x00a2, 0x015a, 0x0200, 0x029d,
+ 0x0323, 0x0382, 0x03f0, 0x047b, 0x053d, 0x065d,
+ 0x0793, 0x08ae, 0x09b4, 0x0a7a, 0x0b1c, 0x0bd9,
+ 0x0c9d, 0x0d71, 0x0e62, 0x0f4b, 0x1035, 0x1127,
+ 0x1200, 0x12c0, 0x1362, 0x13dd, 0x145c, 0x14ce,
+ 0x14e7, 0x14c7, 0x14b2, 0x1496, 0x146b, 0x1440,
+ 0x13f0, 0x138d, 0x1355, 0x130f, 0x1294, 0x1216,
+ 0x1189, 0x10d2, 0x0ffa, 0x0f01, 0x0e1b, 0x0d5a,
+ 0x0c92, 0x0beb, 0x0b60, 0x0aa9, 0x0a05, 0x0972,
+ 0x0897, 0x07ab, 0x06d9, 0x0605, 0x0564, 0x04da,
+ 0x0441, 0x03db, 0x037e, 0x02f1, 0x0272, 0x01f7,
+ 0x0188, 0x016e, 0x018f, 0x01e9, 0x028b, 0x0308,
+ 0x0352, 0x03a3, 0x03ce, 0x03da, 0x03fa, 0x0421,
+ 0x045d, 0x04b6, 0x051b, 0x0593, 0x0601, 0x063d,
+ 0x0648, 0x0624, 0x05f5, 0x05d0, 0x05b8, 0x05c8,
+ 0x05e3, 0x05fc, 0x0644, 0x068c, 0x06a5, 0x06c1,
+ 0x06d3, 0x06e5, 0x0709, 0x06e1, 0x0672, 0x05f7,
+ 0x0549, 0x048c, 0x03ef, 0x034b, 0x02c9, 0x0259,
+ 0x01ad, 0x010c, 0x008e, 0xfffa, 0xff84, 0xff3f,
+ 0xff02, 0xfee7, 0xfee8, 0xfef0, 0xff01, 0xfeeb,
+ 0xfead, 0xfe74, 0xfe42, 0xfe1c, 0xfe05, 0xfdf1,
+ 0xfddb, 0xfdae, 0xfd70, 0xfd3e, 0xfd05, 0xfcde,
+ 0xfce3, 0xfce4, 0xfcf7, 0xfd47, 0xfd9f, 0xfdf4,
+ 0xfe6e, 0xfed8, 0xff06, 0xff29, 0xff58, 0xff79,
+ 0xff94, 0xffbb, 0xffd3, 0xffe3, 0x000e, 0x0050,
+ 0x0087, 0x008d, 0x0054, 0xfffd, 0xff8d, 0xff17,
+ 0xfed1, 0xfea0, 0xfe51, 0xfe03, 0xfda4, 0xfd14,
+ 0xfc89, 0xfc1f, 0xfbd0, 0xfb8d, 0xfb25, 0xfa94,
+ 0xf9ef, 0xf926, 0xf869, 0xf7d8, 0xf742, 0xf6c1,
+ 0xf66a, 0xf60c, 0xf5b4, 0xf571, 0xf520, 0xf4e2,
+ 0xf4bd, 0xf47f, 0xf43a, 0xf40c, 0xf3eb, 0xf3ef,
+ 0xf430, 0xf4bc, 0xf58c, 0xf667, 0xf71e, 0xf79c,
+ 0xf7d7, 0xf7f6, 0xf812, 0xf81c, 0xf83f, 0xf899,
+ 0xf8f8, 0xf964, 0xfa01, 0xfa95, 0xfb01, 0xfb6b,
+ 0xfbd9, 0xfc3d, 0xfc97, 0xfcef, 0xfd5a, 0xfde8,
+ 0xfe92, 0xff42, 0xfff4, 0x00ac, 0x014e, 0x01c5,
+ 0x0221, 0x0269, 0x02ac, 0x02fb, 0x0342, 0x0391,
+ 0x03ef, 0x042e, 0x0465, 0x04ae, 0x04d3, 0x04d8,
+ 0x04d9, 0x04c2, 0x049e, 0x046b, 0x0405, 0x0396,
+ 0x0347, 0x0306, 0x02c9, 0x0285, 0x0238, 0x01ed,
+ 0x01a1, 0x015c, 0x010f, 0x00b9, 0x0087, 0x0086,
+ 0x009e, 0x00c4, 0x00e5, 0x00f7, 0x00f9, 0x00e4,
+ 0x00e3, 0x0104, 0x0124, 0x0149, 0x016b, 0x0187,
+ 0x01b2, 0x01cb, 0x01c3, 0x01ba, 0x0191, 0x013d,
+ 0x00e8, 0x0095, 0x0047, 0x000c, 0xffe4, 0xffcc,
+ 0xff9a, 0xff4a, 0xff03, 0xfeba, 0xfe86, 0xfe8b,
+ 0xfe97, 0xfeac, 0xfee8, 0xff11, 0xff2a, 0xff57,
+ 0xff69, 0xff67, 0xff86, 0xffa8, 0xffb2, 0xffcf,
+ 0xfffe, 0x0004, 0xffe1, 0xffb7, 0xff69, 0xfefe,
+ 0xfea9, 0xfe3d, 0xfda7, 0xfd22, 0xfc96, 0xfbeb,
+ 0xfb68, 0xfb12, 0xfaba, 0xfa63, 0xfa26, 0xfa06,
+ 0xf9e9, 0xf9d6, 0xf9df, 0xf9e1, 0xf9df, 0xf9fa,
+ 0xfa10, 0xfa1c, 0xfa2a, 0xfa23, 0xfa21, 0xfa44,
+ 0xfa63, 0xfa71, 0xfa8b, 0xfaba, 0xfafd, 0xfb63,
+ 0xfbe4, 0xfc44, 0xfc7f, 0xfcca, 0xfd06, 0xfd20,
+ 0xfd3d, 0xfd40, 0xfd3b, 0xfd5c, 0xfd69, 0xfd70,
+ 0xfda2, 0xfda6, 0xfd69, 0xfd19, 0xfc9d, 0xfc1c,
+ 0xfbb2, 0xfb37, 0xfad7, 0xfa9f, 0xfa62, 0xfa46,
+ 0xfa51, 0xfa66, 0xfab1, 0xfb2c, 0xfbb4, 0xfc57,
+ 0xfcdf, 0xfd2a, 0xfd74, 0xfdd5, 0xfe39, 0xfe9e,
+ 0xfeed, 0xff13, 0xff16, 0xfed8, 0xfe55, 0xfddb,
+ 0xfd9d, 0xfd96, 0xfdbf, 0xfdfe, 0xfe36, 0xfe6a,
+ 0xfe77, 0xfe33, 0xfdb9, 0xfd3c, 0xfcef, 0xfce6,
+ 0xfcf0, 0xfd05, 0xfd31, 0xfd3b, 0xfd0c, 0xfcad,
+ 0xfc00, 0xfb38, 0xfaa5, 0xfa3c, 0xfa05, 0xfa29,
+ 0xfa98, 0xfb35, 0xfbe0, 0xfc6a, 0xfcc4, 0xfcdf,
+ 0xfcac, 0xfc40, 0xfbbc, 0xfb43, 0xfaf0, 0xfac4,
+ 0xfac2, 0xfae9, 0xfb13, 0xfb29, 0xfb46, 0xfb6b,
+ 0xfb69, 0xfb36, 0xfaed, 0xfa80, 0xf9f8, 0xf97c,
+ 0xf918, 0xf8ec, 0xf917, 0xf978, 0xfa01, 0xfaa2,
+ 0xfb20, 0xfb6d, 0xfb9a, 0xfbaf, 0xfbd4, 0xfc16,
+ 0xfc4f, 0xfc67, 0xfc5c, 0xfc32, 0xfbe9, 0xfb7a,
+ 0xfb1e, 0xfb18, 0xfb51, 0xfba3, 0xfc03, 0xfc50,
+ 0xfc5a, 0xfc1f, 0xfbce, 0xfb83, 0xfb3d, 0xfb18,
+ 0xfb37, 0xfb92, 0xfc1c, 0xfcc4, 0xfd7c, 0xfe30,
+ 0xfe98, 0xfeaa, 0xfeac, 0xfe9c, 0xfe69, 0xfe46,
+ 0xfe3a, 0xfe42, 0xfe8e, 0xff21, 0xffc7, 0x006b,
+ 0x0117, 0x01c3, 0x0256, 0x02db, 0x0361, 0x03e1,
+ 0x045c, 0x04cf, 0x0520, 0x055e, 0x05a1, 0x05e5,
+ 0x0633, 0x068c, 0x06ea, 0x0753, 0x07c3, 0x0826,
+ 0x0862, 0x0859, 0x081b, 0x07a8, 0x06f0, 0x0614,
+ 0x0534, 0x0459, 0x03b6, 0x0352, 0x030d, 0x0303,
+ 0x032c, 0x0346, 0x032d, 0x02e0, 0x0269, 0x01ce,
+ 0x011c, 0x008e, 0x0053, 0x005c, 0x0091, 0x00c5,
+ 0x00de, 0x00f5, 0x00f1, 0x00b7, 0x0079, 0x0043,
+ 0x0004, 0xffdd, 0xffc9, 0xffb1, 0xffad, 0xffc8,
+ 0xfffc, 0x0043, 0x008a, 0x00c5, 0x00ed, 0x00ef,
+ 0x00d2, 0x00a9, 0x0085, 0x0084, 0x00a4, 0x00c9,
+ 0x00fb, 0x012d, 0x0144, 0x014a, 0x0150, 0x0158,
+ 0x0171, 0x018d, 0x019d, 0x01bc, 0x01cc, 0x01ad,
+ 0x0198, 0x0196, 0x017b, 0x0165, 0x0156, 0x0121,
+ 0x00e9, 0x00c2, 0x008e, 0x0062, 0x0042, 0x001c,
+ 0x000e, 0x000f, 0xfff5, 0xffdd, 0xffe6, 0xfff8,
+ 0x0009, 0x002b, 0x0065, 0x009e, 0x00c2, 0x00ee,
+ 0x0127, 0x015d, 0x01a6, 0x01f3, 0x0226, 0x025d,
+ 0x0296, 0x02bc, 0x02e3, 0x030b, 0x0329, 0x0345,
+ 0x0350, 0x033e, 0x031c, 0x02e1, 0x029b, 0x026e,
+ 0x0244, 0x0209, 0x01d6, 0x01b1, 0x0194, 0x0184,
+ 0x017d, 0x0174, 0x0157, 0x0114, 0x00b9, 0x0052,
+ 0xffd9, 0xff57, 0xfedc, 0xfe74, 0xfe36, 0xfe20,
+ 0xfe1b, 0xfe21, 0xfe1d, 0xfdfa, 0xfdc9, 0xfd89,
+ 0xfd2e, 0xfcd2, 0xfc8c, 0xfc4f, 0xfc15, 0xfbe7,
+ 0xfbc9, 0xfba5, 0xfb69, 0xfb1d, 0xfac9, 0xfa77,
+ 0xfa43, 0xfa32, 0xfa2e, 0xfa3d, 0xfa5c, 0xfa6a,
+ 0xfa63, 0xfa61, 0xfa70, 0xfa92, 0xfac0, 0xfaee,
+ 0xfb1c, 0xfb41, 0xfb5a, 0xfb76, 0xfb90, 0xfbb9,
+ 0xfc11, 0xfc70, 0xfcba, 0xfd0a, 0xfd51, 0xfd80,
+ 0xfdaa, 0xfdb8, 0xfdb4, 0xfdd0, 0xfe02, 0xfe31,
+ 0xfe51, 0xfe50, 0xfe49, 0xfe40, 0xfe13, 0xfdda,
+ 0xfdb3, 0xfd8b, 0xfd66, 0xfd51, 0xfd4f, 0xfd5b,
+ 0xfd63, 0xfd69, 0xfd5f, 0xfd28, 0xfcf9, 0xfce7,
+ 0xfcd1, 0xfcd9, 0xfd02, 0xfd34, 0xfd88, 0xfde3,
+ 0xfe33, 0xfea6, 0xff10, 0xff64, 0xffe0, 0x006e,
+ 0x0118, 0x01fc, 0x02e4, 0x03ea, 0x0535, 0x067e,
+ 0x07c3, 0x0913, 0x0a2c, 0x0b11, 0x0bd5, 0x0c76,
+ 0x0d0f, 0x0d8f, 0x0e01, 0x0e9c, 0x0f3b, 0x0fcb,
+ 0x1072, 0x1113, 0x11a8, 0x123d, 0x12ad, 0x130b,
+ 0x1369, 0x13a3, 0x13cb, 0x1400, 0x1435, 0x145c,
+ 0x1454, 0x1412, 0x13bc, 0x1349, 0x12b5, 0x1229,
+ 0x1194, 0x10cd, 0x0fe7, 0x0f0b, 0x0e41, 0x0d79,
+ 0x0c9f, 0x0bc3, 0x0aff, 0x0a46, 0x098f, 0x08ec,
+ 0x084f, 0x07a6, 0x0716, 0x06a0, 0x0612, 0x0574,
+ 0x04e8, 0x046f, 0x040a, 0x03c5, 0x03b8, 0x03dc,
+ 0x03f8, 0x03fb, 0x03f4, 0x03c4, 0x036c, 0x0312,
+ 0x02c4, 0x029d, 0x02ba, 0x031d, 0x03ad, 0x043e,
+ 0x04bf, 0x0536, 0x0592, 0x05e5, 0x0647, 0x069f,
+ 0x06e9, 0x0723, 0x0749, 0x0776, 0x07a4, 0x07bf,
+ 0x07dd, 0x07fc, 0x0809, 0x07f0, 0x07a0, 0x0738,
+ 0x06d1, 0x065c, 0x05f1, 0x0595, 0x0539, 0x04f4,
+ 0x04b8, 0x0479, 0x0450, 0x0423, 0x03d6, 0x0377,
+ 0x0300, 0x028a, 0x0224, 0x01b1, 0x0148, 0x00e2,
+ 0x0058, 0xffd3, 0xff52, 0xfec1, 0xfe42, 0xfdb9,
+ 0xfd1c, 0xfcb6, 0xfc87, 0xfc6c, 0xfc7f, 0xfcba,
+ 0xfd15, 0xfd87, 0xfdda, 0xfe0c, 0xfe36, 0xfe4c,
+ 0xfe54, 0xfe55, 0xfe55, 0xfe6d, 0xfe7f, 0xfe76,
+ 0xfe78, 0xfe7a, 0xfe65, 0xfe54, 0xfe5e, 0xfe8b,
+ 0xfed5, 0xff2f, 0xff96, 0xfff7, 0x0041, 0x0082,
+ 0x009c, 0x0085, 0x0066, 0x0042, 0x000b, 0xffe2,
+ 0xffc7, 0xff84, 0xfefd, 0xfe40, 0xfd5b, 0xfc55,
+ 0xfb4b, 0xfa5e, 0xf990, 0xf8f2, 0xf8b3, 0xf8aa,
+ 0xf87e, 0xf824, 0xf7af, 0xf721, 0xf68b, 0xf605,
+ 0xf5ab, 0xf59d, 0xf5bc, 0xf5cc, 0xf5ac, 0xf557,
+ 0xf4f1, 0xf4a3, 0xf468, 0xf44c, 0xf451, 0xf448,
+ 0xf42c, 0xf405, 0xf3bb, 0xf38c, 0xf3b7, 0xf40a,
+ 0xf46b, 0xf4f6, 0xf58f, 0xf61e, 0xf6ab, 0xf72e,
+ 0xf7a6, 0xf81b, 0xf8a2, 0xf948, 0xf9f6, 0xfa97,
+ 0xfb26, 0xfb9d, 0xfc0a, 0xfc75, 0xfcd7, 0xfd42,
+ 0xfdc3, 0xfe5d, 0xff12, 0xffbe, 0x0051, 0x00e2,
+ 0x0167, 0x01c2, 0x0203, 0x0247, 0x0296, 0x02ee,
+ 0x035b, 0x03d9, 0x0437, 0x0463, 0x0450, 0x03d4,
+ 0x031a, 0x026b, 0x01ca, 0x0165, 0x0158, 0x0164,
+ 0x017e, 0x0198, 0x017b, 0x0147, 0x0116, 0x00db,
+ 0x00de, 0x012d, 0x017d, 0x01da, 0x0243, 0x028d,
+ 0x02c9, 0x02eb, 0x02d7, 0x02b8, 0x0283, 0x022e,
+ 0x01f3, 0x01c7, 0x0178, 0x0128, 0x00e0, 0x0091,
+ 0x0053, 0x0019, 0xffda, 0xffb5, 0xffb9, 0xffcd,
+ 0xffd0, 0xffc0, 0xffc6, 0xffe4, 0xfffd, 0x001c,
+ 0x0037, 0x0034, 0x0039, 0x0052, 0x0059, 0x0060,
+ 0x006e, 0x0069, 0x005f, 0x006d, 0x0092, 0x00c0,
+ 0x00f7, 0x0138, 0x015b, 0x0149, 0x0110, 0x00a8,
+ 0x0021, 0xffb9, 0xff6d, 0xff38, 0xff2b, 0xff0f,
+ 0xfed1, 0xfe9b, 0xfe5c, 0xfe1b, 0xfdf6, 0xfdbe,
+ 0xfd7a, 0xfd51, 0xfd17, 0xfcbb, 0xfc5e, 0xfbfd,
+ 0xfbaa, 0xfb7e, 0xfb76, 0xfb9f, 0xfbe2, 0xfc1c,
+ 0xfc5a, 0xfc93, 0xfcb3, 0xfcd4, 0xfd10, 0xfd63,
+ 0xfdba, 0xfdfd, 0xfe2f, 0xfe40, 0xfe21, 0xfe02,
+ 0xfe04, 0xfe0f, 0xfe0d, 0xfdec, 0xfdaf, 0xfd7a,
+ 0xfd57, 0xfd3f, 0xfd3f, 0xfd4f, 0xfd56, 0xfd48,
+ 0xfd21, 0xfcef, 0xfcb2, 0xfc65, 0xfc2c, 0xfc13,
+ 0xfbeb, 0xfbc7, 0xfbd8, 0xfc04, 0xfc3a, 0xfc89,
+ 0xfcde, 0xfd21, 0xfd52, 0xfd79, 0xfdb3, 0xfe03,
+ 0xfe66, 0xfedd, 0xff4b, 0xff96, 0xffb6, 0xff9a,
+ 0xff4b, 0xfee2, 0xfe72, 0xfe36, 0xfe4d, 0xfe84,
+ 0xfec9, 0xff14, 0xff45, 0xff63, 0xff65, 0xff39,
+ 0xff01, 0xfeca, 0xfe98, 0xfe88, 0xfe77, 0xfe48,
+ 0xfe0b, 0xfdae, 0xfd3e, 0xfcea, 0xfc9e, 0xfc4b,
+ 0xfc15, 0xfc02, 0xfc09, 0xfc31, 0xfc6a, 0xfc9e,
+ 0xfcce, 0xfcee, 0xfcd5, 0xfc7f, 0xfc0a, 0xfb8d,
+ 0xfb2b, 0xfaef, 0xfaa9, 0xfa58, 0xfa23, 0xf9fc,
+ 0xf9e1, 0xf9dd, 0xf9d2, 0xf9c7, 0xf9c7, 0xf9ba,
+ 0xf9ae, 0xf9bf, 0xf9f8, 0xfa51, 0xfa94, 0xfabb,
+ 0xfaf0, 0xfb12, 0xfb12, 0xfb2a, 0xfb4b, 0xfb58,
+ 0xfb5f, 0xfb58, 0xfb45, 0xfb4b, 0xfb71, 0xfba1,
+ 0xfbcc, 0xfbf4, 0xfc1b, 0xfc2a, 0xfc2f, 0xfc35,
+ 0xfc27, 0xfc14, 0xfbfe, 0xfbd6, 0xfbba, 0xfba8,
+ 0xfb7b, 0xfb58, 0xfb60, 0xfb75, 0xfb89, 0xfb9f,
+ 0xfbc4, 0xfc05, 0xfc4d, 0xfc81, 0xfca0, 0xfca5,
+ 0xfc8d, 0xfc69, 0xfc4b, 0xfc3f, 0xfc4a, 0xfc7e,
+ 0xfcf2, 0xfda9, 0xfe87, 0xff6e, 0x005d, 0x014c,
+ 0x0216, 0x02ac, 0x030a, 0x0336, 0x0357, 0x0374,
+ 0x0385, 0x03aa, 0x03e1, 0x0414, 0x044f, 0x0488,
+ 0x04a6, 0x04b0, 0x04a0, 0x0473, 0x0441, 0x042c,
+ 0x0443, 0x0463, 0x046b, 0x0462, 0x0434, 0x03d4,
+ 0x036c, 0x0313, 0x02d4, 0x02b9, 0x02b3, 0x02ae,
+ 0x027e, 0x0221, 0x01d5, 0x0195, 0x015c, 0x0161,
+ 0x017a, 0x0186, 0x01a1, 0x018a, 0x0133, 0x00ec,
+ 0x0099, 0x0038, 0x0023, 0x003b, 0x0067, 0x00d6,
+ 0x016c, 0x01fa, 0x0274, 0x02be, 0x02c9, 0x029c,
+ 0x024e, 0x0207, 0x01cf, 0x01ad, 0x01b1, 0x01c3,
+ 0x01d6, 0x01ec, 0x01f8, 0x0204, 0x0215, 0x021f,
+ 0x0231, 0x0253, 0x027d, 0x02bc, 0x02fb, 0x0310,
+ 0x02fd, 0x02e1, 0x02cb, 0x02b5, 0x02a0, 0x029e,
+ 0x02af, 0x02b1, 0x0297, 0x027c, 0x0279, 0x0290,
+ 0x02c6, 0x02f9, 0x02ea, 0x02b4, 0x028f, 0x0271,
+ 0x0270, 0x029d, 0x02ca, 0x02f8, 0x0321, 0x0324,
+ 0x0316, 0x0301, 0x02d4, 0x02a9, 0x0282, 0x0261,
+ 0x025d, 0x024c, 0x0233, 0x023c, 0x0237, 0x0210,
+ 0x01d8, 0x0180, 0x012e, 0x00ff, 0x00d6, 0x00c7,
+ 0x00df, 0x00f7, 0x0108, 0x0112, 0x0107, 0x00e3,
+ 0x00a4, 0x005d, 0x0025, 0xffff, 0xfff5, 0xfff1,
+ 0xffd8, 0xffbc, 0xff9e, 0xff77, 0xff54, 0xff36,
+ 0xff24, 0xff35, 0xff66, 0xffb0, 0xffe6, 0xffd5,
+ 0xff94, 0xff3a, 0xfed2, 0xfe8d, 0xfe7f, 0xfe94,
+ 0xfec2, 0xfee3, 0xfed8, 0xfe97, 0xfe1b, 0xfd89,
+ 0xfd13, 0xfcb9, 0xfc84, 0xfc9b, 0xfcfb, 0xfd7f,
+ 0xfe22, 0xfede, 0xff81, 0xfff6, 0x0049, 0x006a,
+ 0x0055, 0x0027, 0xffea, 0xffa6, 0xff75, 0xff61,
+ 0xff79, 0xffc0, 0x0021, 0x0080, 0x00af, 0x00aa,
+ 0x007c, 0x001b, 0xffb8, 0xff75, 0xff26, 0xfeda,
+ 0xfec1, 0xfecb, 0xfefd, 0xff44, 0xff76, 0xffb3,
+ 0xfffa, 0x0018, 0x0032, 0x005a, 0x0084, 0x00d2,
+ 0x0145, 0x01ab, 0x01e8, 0x01e7, 0x01ab, 0x016b,
+ 0x0150, 0x0152, 0x017e, 0x01ef, 0x0281, 0x02f3,
+ 0x0335, 0x0327, 0x02a6, 0x01db, 0x00ef, 0xfff0,
+ 0xff11, 0xfe75, 0xfe20, 0xfe1b, 0xfe40, 0xfe54,
+ 0xfe47, 0xfe12, 0xfdad, 0xfd24, 0xfc9a, 0xfc3b,
+ 0xfc24, 0xfc69, 0xfd10, 0xfdfe, 0xff13, 0x0031,
+ 0x0134, 0x020e, 0x02c9, 0x0369, 0x03f8, 0x0481,
+ 0x0507, 0x0598, 0x0632, 0x06c5, 0x0755, 0x07e2,
+ 0x0867, 0x08d1, 0x090f, 0x0942, 0x099b, 0x0a22,
+ 0x0ac0, 0x0b50, 0x0bb9, 0x0bf8, 0x0bfd, 0x0bd7,
+ 0x0bb3, 0x0baa, 0x0bd0, 0x0c22, 0x0c67, 0x0c8a,
+ 0x0c9d, 0x0c85, 0x0c20, 0x0b9c, 0x0b22, 0x0a98,
+ 0x09f4, 0x0960, 0x08e8, 0x088a, 0x085a, 0x0850,
+ 0x084b, 0x0842, 0x0825, 0x07e1, 0x077e, 0x070c,
+ 0x06ad, 0x0672, 0x064d, 0x0635, 0x0628, 0x0630,
+ 0x066b, 0x06d5, 0x075c, 0x07f8, 0x0887, 0x08ea,
+ 0x091f, 0x092e, 0x093d, 0x0968, 0x09ad, 0x0a23,
+ 0x0aa6, 0x0af5, 0x0b28, 0x0b58, 0x0b68, 0x0b6b,
+ 0x0b7c, 0x0b87, 0x0b85, 0x0b76, 0x0b57, 0x0b28,
+ 0x0ae3, 0x0a95, 0x0a49, 0x09fb, 0x09b3, 0x0954,
+ 0x08c1, 0x081f, 0x077a, 0x06cf, 0x0656, 0x061b,
+ 0x05ec, 0x05c4, 0x0597, 0x0548, 0x04e2, 0x0471,
+ 0x03fd, 0x039f, 0x0356, 0x0315, 0x02d5, 0x0292,
+ 0x024f, 0x021c, 0x01f6, 0x01c0, 0x0166, 0x00f8,
+ 0x0086, 0x0014, 0xffb2, 0xff5f, 0xff07, 0xfeb4,
+ 0xfe76, 0xfe3f, 0xfe10, 0xfe06, 0xfe42, 0xfec2,
+ 0xff43, 0xff93, 0xffbe, 0xffd5, 0xffe9, 0x000f,
+ 0x0049, 0x0091, 0x00dd, 0x0117, 0x0133, 0x011d,
+ 0x00d3, 0x009b, 0x0096, 0x0098, 0x0091, 0x006d,
+ 0x0003, 0xff77, 0xfefa, 0xfe77, 0xfdf0, 0xfd8f,
+ 0xfd3f, 0xfce5, 0xfc82, 0xfc04, 0xfb6a, 0xfacd,
+ 0xfa42, 0xf9ec, 0xf9b8, 0xf974, 0xf94c, 0xf95b,
+ 0xf94b, 0xf920, 0xf912, 0xf8ec, 0xf8ad, 0xf88a,
+ 0xf86d, 0xf850, 0xf856, 0xf871, 0xf8a0, 0xf8ef,
+ 0xf942, 0xf989, 0xf9ac, 0xf985, 0xf91e, 0xf890,
+ 0xf7e5, 0xf74c, 0xf6f7, 0xf6f9, 0xf751, 0xf7d5,
+ 0xf84b, 0xf8a1, 0xf8c1, 0xf8a2, 0xf86e, 0xf83a,
+ 0xf806, 0xf7f7, 0xf816, 0xf84e, 0xf8c0, 0xf96d,
+ 0xfa1f, 0xfaca, 0xfb57, 0xfb9e, 0xfbaf, 0xfba7,
+ 0xfb8f, 0xfb88, 0xfba0, 0xfbc4, 0xfbe1, 0xfbed,
+ 0xfbef, 0xfbf8, 0xfc0e, 0xfc29, 0xfc28, 0xfbfe,
+ 0xfbb8, 0xfb58, 0xfb0d, 0xfb09, 0xfb36, 0xfb7c,
+ 0xfbd2, 0xfc0e, 0xfc16, 0xfbf8, 0xfbe3, 0xfbfa,
+ 0xfc36, 0xfcaf, 0xfd68, 0xfe03, 0xfe51, 0xfe59,
+ 0xfe02, 0xfd68, 0xfcc8, 0xfc43, 0xfc15, 0xfc3d,
+ 0xfc8d, 0xfd01, 0xfd67, 0xfd83, 0xfd6f, 0xfd37,
+ 0xfcf7, 0xfcea, 0xfd08, 0xfd32, 0xfd6c, 0xfdac,
+ 0xfddd, 0xfdf8, 0xfe19, 0xfe56, 0xfe9d, 0xfee7,
+ 0xff2c, 0xff4d, 0xff5f, 0xff5e, 0xff38, 0xff40,
+ 0xff9e, 0x0023, 0x00da, 0x0199, 0x021a, 0x027f,
+ 0x02ca, 0x02cb, 0x02a4, 0x0286, 0x0275, 0x0269,
+ 0x024e, 0x0215, 0x01c1, 0x0168, 0x011b, 0x00c3,
+ 0x0069, 0x0037, 0x002d, 0x003a, 0x0053, 0x0069,
+ 0x007c, 0x0075, 0x0046, 0x0013, 0xfff0, 0xffe9,
+ 0x001b, 0x006d, 0x00ab, 0x00bf, 0x00ae, 0x009d,
+ 0x0099, 0x009c, 0x00b0, 0x00ba, 0x009f, 0x006b,
+ 0x0017, 0xffb8, 0xff78, 0xff57, 0xff41, 0xff1b,
+ 0xfed0, 0xfe75, 0xfe23, 0xfdf1, 0xfe01, 0xfe3b,
+ 0xfe7a, 0xfec4, 0xfeff, 0xff05, 0xfef2, 0xfee8,
+ 0xfed5, 0xfea3, 0xfe6f, 0xfe44, 0xfe11, 0xfdf2,
+ 0xfdf7, 0xfdf7, 0xfded, 0xfde4, 0xfdc3, 0xfd8e,
+ 0xfd49, 0xfcf4, 0xfcb5, 0xfca0, 0xfcaa, 0xfcc2,
+ 0xfcd2, 0xfcd7, 0xfccb, 0xfca0, 0xfc79, 0xfc68,
+ 0xfc54, 0xfc5f, 0xfca0, 0xfcd4, 0xfcde, 0xfcf4,
+ 0xfd2c, 0xfd6e, 0xfdb3, 0xfdf4, 0xfe13, 0xfe0a,
+ 0xfddc, 0xfd96, 0xfd60, 0xfd45, 0xfd45, 0xfd81,
+ 0xfdda, 0xfe1e, 0xfe71, 0xfed5, 0xff1d, 0xff4a,
+ 0xff67, 0xff5e, 0xff20, 0xfecd, 0xfe98, 0xfe76,
+ 0xfe5b, 0xfe4e, 0xfe25, 0xfdd8, 0xfd8e, 0xfd3d,
+ 0xfcf8, 0xfcd8, 0xfcc1, 0xfcbc, 0xfca1, 0xfc20,
+ 0xfb88, 0xfb24, 0xfae2, 0xfaee, 0xfb54, 0xfbe1,
+ 0xfc7f, 0xfce4, 0xfcf2, 0xfcd9, 0xfc83, 0xfc17,
+ 0xfbec, 0xfbbb, 0xfb5f, 0xfb26, 0xfb10, 0xfb04,
+ 0xfb1a, 0xfb5a, 0xfba4, 0xfbbf, 0xfbaa, 0xfb62,
+ 0xfadc, 0xfa6f, 0xfa42, 0xfa2d, 0xfa68, 0xfad5,
+ 0xfb0a, 0xfb20, 0xfaf7, 0xfa98, 0xfaa4, 0xfb05,
+ 0xfb5f, 0xfbd5, 0xfbff, 0xfb9a, 0xfb2c, 0xfb00,
+ 0xfb36, 0xfbcb, 0xfc79, 0xfd47, 0xfe07, 0xfe50,
+ 0xfe3e, 0xfdf1, 0xfd97, 0xfd8a, 0xfd84, 0xfd52,
+ 0xfd41, 0xfd2f, 0xfd00, 0xfce6, 0xfce9, 0xfd2a,
+ 0xfda5, 0xfde7, 0xfde6, 0xfdf3, 0xfe06, 0xfdef,
+ 0xfdc5, 0xfd9c, 0xfd56, 0xfd35, 0xfd83, 0xfde0,
+ 0xfe28, 0xfe85, 0xfea9, 0xfeb6, 0xfeee, 0xfed2,
+ 0xfe4e, 0xfdc3, 0xfd39, 0xfd00, 0xfd50, 0xfde6,
+ 0xfeaa, 0xff47, 0xff7c, 0xffa8, 0xffce, 0xffbf,
+ 0xffb3, 0xffce, 0x0009, 0x0027, 0xffda, 0xff67,
+ 0xff35, 0xff5a, 0xfff6, 0x0104, 0x0261, 0x03e2,
+ 0x0500, 0x0519, 0x0439, 0x0314, 0x0203, 0x010f,
+ 0x00c3, 0x010f, 0x0144, 0x019a, 0x01e3, 0x0161,
+ 0x00c3, 0x006f, 0xffe5, 0xffb0, 0xffe7, 0xffd9,
+ 0xffcb, 0xffd0, 0xfff0, 0x00e2, 0x0233, 0x032c,
+ 0x0432, 0x050a, 0x0563, 0x05b5, 0x05d9, 0x0574,
+ 0x04cd, 0x0417, 0x038b, 0x037d, 0x03e2, 0x04ad,
+ 0x05be, 0x065f, 0x0618, 0x055b, 0x0479, 0x0352,
+ 0x0248, 0x01c8, 0x01d6, 0x029e, 0x03e8, 0x0508,
+ 0x05c2, 0x05cc, 0x04d4, 0x0330, 0x0184, 0x0079,
+ 0x0032, 0x0064, 0x015c, 0x02ab, 0x0321, 0x0338,
+ 0x034b, 0x0253, 0x00df, 0x0047, 0x0037, 0x0046,
+ 0x008b, 0x00df, 0x018e, 0x02c7, 0x039e, 0x0384,
+ 0x02e5, 0x01f0, 0x00ec, 0x00b1, 0x00db, 0x0081,
+ 0x0063, 0x010b, 0x01ec, 0x0308, 0x03dd, 0x03c9,
+ 0x03ba, 0x03d2, 0x035c, 0x02f3, 0x02fe, 0x0319,
+ 0x02eb, 0x0217, 0x0122, 0x0098, 0x0021, 0x0011,
+ 0x0052, 0x003e, 0x0092, 0x00fd, 0x006f, 0x005a,
+ 0x010b, 0x00d8, 0x009d, 0x013d, 0x0158, 0x00fb,
+ 0x00e7, 0x0099, 0x0074, 0x00ff, 0x012b, 0x00d7,
+ 0x00d1, 0x0063, 0xff8c, 0xffa7, 0xff9a, 0xfe4c,
+ 0xfde6, 0xfe9b, 0xfe7d, 0xfe88, 0xff56, 0xff6d,
+ 0xffa3, 0x0097, 0x00e8, 0x0151, 0x023a, 0x019b,
+ 0x002d, 0x0026, 0x0096, 0x00ca, 0x01c9, 0x02d6,
+ 0x02e8, 0x02d1, 0x02ae, 0x01da, 0x00e2, 0x0016,
+ 0xff40, 0xff13, 0xff8f, 0xffab, 0xffd0, 0x0069,
+ 0x003b, 0xff7c, 0xffb9, 0x002f, 0xffcc, 0xffef,
+ 0x00e8, 0x00df, 0x0001, 0xffea, 0xffe1, 0xff10,
+ 0xfede, 0xff87, 0xff92, 0xff40, 0xff4f, 0xfef0,
+ 0xfe22, 0xfdc1, 0xfd90, 0xfd86, 0xfe1a, 0xfeba,
+ 0xff41, 0x004e, 0x011a, 0x00f1, 0x00df, 0x00bd,
+ 0xffc2, 0xffbb, 0x015c, 0x0233, 0x0224, 0x0292,
+ 0x024e, 0x017e, 0x018a, 0x0122, 0x0060, 0x00d6,
+ 0x00a3, 0xff6a, 0xfff3, 0x012d, 0x00ef, 0x00ca,
+ 0x014b, 0x0143, 0x0171, 0x0232, 0x0263, 0x0280,
+ 0x0353, 0x041d, 0x051c, 0x0688, 0x06c5, 0x0653,
+ 0x06c7, 0x0676, 0x0526, 0x051b, 0x054d, 0x048e,
+ 0x0447, 0x0411, 0x0333, 0x0277, 0x01b6, 0x0148,
+ 0x0214, 0x0358, 0x0442, 0x04b8, 0x0522, 0x060e,
+ 0x06a0, 0x06a8, 0x078a, 0x08b7, 0x0920, 0x092b,
+ 0x089c, 0x07f0, 0x0831, 0x07fb, 0x0698, 0x05d4,
+ 0x0622, 0x06da, 0x085a, 0x09f5, 0x0a3c, 0x09bd,
+ 0x097a, 0x0937, 0x08fb, 0x0873, 0x0739, 0x0712,
+ 0x0873, 0x0927, 0x095c, 0x09ed, 0x090a, 0x0666,
+ 0x037c, 0x009e, 0xfe60, 0xfd8f, 0xfe37, 0xfff5,
+ 0x018f, 0x0248, 0x026b, 0x01a6, 0xffed, 0xfe08,
+ 0xfc65, 0xfb7c, 0xfb7e, 0xfbe0, 0xfcc0, 0xfec8,
+ 0x0179, 0x0357, 0x03ae, 0x02b3, 0x005a, 0xfd77,
+ 0xfbda, 0xfc65, 0xfeca, 0x01a8, 0x03f3, 0x0646,
+ 0x07b0, 0x0680, 0x03f1, 0x00ae, 0xfcf8, 0xfb50,
+ 0xfbe3, 0xfd38, 0xff40, 0x001c, 0xff19, 0xfe09,
+ 0xfc2a, 0xf996, 0xf85e, 0xf765, 0xf626, 0xf5fe,
+ 0xf5d4, 0xf515, 0xf4e0, 0xf4b6, 0xf40d, 0xf3a8,
+ 0xf3b0, 0xf301, 0xf122, 0xef94, 0xef32, 0xef93,
+ 0xf0d7, 0xf23e, 0xf2d4, 0xf31a, 0xf2f7, 0xf221,
+ 0xf166, 0xf17c, 0xf2bc, 0xf4a4, 0xf6a7, 0xf901,
+ 0xfaa2, 0xfacf, 0xfa5e, 0xf90b, 0xf759, 0xf68d,
+ 0xf62c, 0xf6b0, 0xf860, 0xfa07, 0xfcca, 0x00c8,
+ 0x03a2, 0x059c, 0x0699, 0x0508, 0x02a5, 0x0172,
+ 0x012b, 0x01f6, 0x041e, 0x0703, 0x096e, 0x0b09,
+ 0x0c45, 0x0bdf, 0x097b, 0x0751, 0x0628, 0x0617,
+ 0x0744, 0x087f, 0x0a01, 0x0bdf, 0x0c7e, 0x0cbd,
+ 0x0e17, 0x100e, 0x123a, 0x13b4, 0x1449, 0x14c1,
+ 0x1478, 0x1372, 0x11f8, 0x102b, 0x0fef, 0x1023,
+ 0x0ece, 0x0ed7, 0x0ffe, 0x0fd6, 0x10f5, 0x1292,
+ 0x1105, 0x0de5, 0x0a6f, 0x06f8, 0x05de, 0x069d,
+ 0x081e, 0x0b12, 0x0e28, 0x100a, 0x10cc, 0x107f,
+ 0x0fd2, 0x0f11, 0x0e18, 0x0d08, 0x0c1c, 0x0c77,
+ 0x0d8b, 0x0d92, 0x0dc6, 0x0e73, 0x0e49, 0x0eef,
+ 0x1043, 0x0fb7, 0x0dd6, 0x0b80, 0x08b6, 0x064f,
+ 0x04d4, 0x05d5, 0x0921, 0x0b2d, 0x0c09, 0x0d65,
+ 0x0d75, 0x0c48, 0x0bbb, 0x0bbb, 0x0c91, 0x0e18,
+ 0x0eca, 0x0e67, 0x0d67, 0x0c86, 0x0ceb, 0x0e4e,
+ 0x0ef5, 0x0da6, 0x0b85, 0x0a3a, 0x0882, 0x056d,
+ 0x02de, 0x01de, 0x01e7, 0x01eb, 0x0117, 0x00d6,
+ 0x0142, 0xffeb, 0xfd74, 0xfbbb, 0xfa5e, 0xf994,
+ 0xf950, 0xf8ef, 0xf94f, 0xfa97, 0xfc63, 0xff1b,
+ 0x019f, 0x02b5, 0x02c1, 0x0202, 0x009d, 0xfeee,
+ 0xfd86, 0xfd17, 0xfd44, 0xfe07, 0xff6e, 0x000e,
+ 0xffdc, 0xfef8, 0xfc92, 0xfb24, 0xfbb6, 0xfade,
+ 0xf8fb, 0xf843, 0xf7d6, 0xf7dd, 0xf875, 0xf932,
+ 0xfb93, 0xfe6e, 0xff5e, 0xff26, 0xfdbb, 0xfaa6,
+ 0xf765, 0xf4c7, 0xf316, 0xf28b, 0xf2e6, 0xf40c,
+ 0xf562, 0xf70f, 0xf912, 0xf9e7, 0xfa04, 0xf8dc,
+ 0xf464, 0xf02f, 0xee3a, 0xeb84, 0xea82, 0xed62,
+ 0xf0c2, 0xf393, 0xf4ef, 0xf495, 0xf524, 0xf479,
+ 0xf157, 0xefb8, 0xeeb6, 0xecd2, 0xec84, 0xed70,
+ 0xeecb, 0xefa4, 0xee3c, 0xedc8, 0xeff8, 0xf147,
+ 0xf139, 0xf03a, 0xedc1, 0xeb97, 0xe9d8, 0xe7f3,
+ 0xe82d, 0xeab7, 0xecc5, 0xedc5, 0xef7a, 0xf11a,
+ 0xf03c, 0xeec6, 0xef1c, 0xf035, 0xf1b9, 0xf1ce,
+ 0xef3a, 0xee75, 0xeffb, 0xf0db, 0xf308, 0xf546,
+ 0xf506, 0xf54f, 0xf59d, 0xf470, 0xf4aa, 0xf573,
+ 0xf52a, 0xf4dc, 0xf3e0, 0xf388, 0xf4eb, 0xf4a4,
+ 0xf257, 0xf0d4, 0xf118, 0xf391, 0xf682, 0xf6c9,
+ 0xf590, 0xf5f7, 0xf680, 0xf406, 0xf09c, 0xef06,
+ 0xee7b, 0xefba, 0xf203, 0xf216, 0xf24c, 0xf3f7,
+ 0xf3f1, 0xf406, 0xf527, 0xf4f5, 0xf52d, 0xf53d,
+ 0xf351, 0xf2f8, 0xf4a7, 0xf5df, 0xf6d7, 0xf742,
+ 0xf809, 0xf9ec, 0xfb0d, 0xfbfe, 0xfcd6, 0xfbef,
+ 0xfaa1, 0xf949, 0xf75f, 0xf600, 0xf4e3, 0xf524,
+ 0xf800, 0xfb4e, 0xfe43, 0xff8b, 0xfdb9, 0xfc30,
+ 0xfafd, 0xf7c8, 0xf620, 0xf6ed, 0xf772, 0xf91b,
+ 0xfc48, 0xfec8, 0x0002, 0xfff0, 0xff93, 0xffc9,
+ 0xff53, 0xfe1f, 0xfdf8, 0xff5d, 0x00da, 0x019b,
+ 0x01b8, 0x0056, 0xfe93, 0xfe31, 0xfce7, 0xfaf9,
+ 0xfb19, 0xfad7, 0xfa3e, 0xfbfd, 0xfcdb, 0xfc3f,
+ 0xfccc, 0xfbad, 0xf8a5, 0xf7e5, 0xf8e0, 0xf9f6,
+ 0xfc0f, 0xfe53, 0xffc3, 0x0162, 0x0194, 0xfeb4,
+ 0xfe2b, 0x01fd, 0x0310, 0x01ff, 0x0433, 0x059b,
+ 0x0429, 0x035a, 0x02e9, 0x0293, 0x01c5, 0xffc7,
+ 0xfee2, 0xfe76, 0xfee2, 0x015a, 0x01b4, 0x0287,
+ 0x0610, 0x0462, 0x01fc, 0x0539, 0x04c1, 0x01ae,
+ 0x021b, 0x010f, 0x0175, 0x05bf, 0x07d7, 0x09f0,
+ 0x0bda, 0x094a, 0x0729, 0x065b, 0x0377, 0x00c1,
+ 0xff84, 0x008c, 0x02ca, 0x030c, 0x0361, 0x0350,
+ 0x018c, 0x0241, 0x0258, 0xfec3, 0xfc6b, 0xfa4a,
+ 0xf865, 0xfa60, 0xfbc8, 0xfb6b, 0xfc45, 0xfd27,
+ 0xffa3, 0x01e0, 0x0039, 0xffd9, 0x0044, 0xfd53,
+ 0xfbd0, 0xfbc6, 0xfb10, 0xfdc3, 0x0124, 0x015e,
+ 0x027d, 0x0508, 0x0526, 0x023d, 0x00a0, 0x02d8,
+ 0x0289, 0xfeeb, 0x0078, 0x0408, 0x02c9, 0x0171,
+ 0x01eb, 0x01c7, 0x01c4, 0x00cb, 0xffa0, 0x003e,
+ 0x0019, 0x0023, 0x013a, 0xfeb7, 0xfbe5, 0xfd65,
+ 0xfca9, 0xf98e, 0xfbba, 0xfefc, 0xfd43, 0xfbb8,
+ 0xfd1c, 0xfd1e, 0xfb28, 0xf9af, 0xf7dc, 0xf54f,
+ 0xf54c, 0xf768, 0xf6b1, 0xf46c, 0xf5fa, 0xf9ac,
+ 0xfafe, 0xfa78, 0xfa63, 0xfb37, 0xfbdc, 0xfb42,
+ 0xfa81, 0xfa94, 0xf9ce, 0xf7d9, 0xf81c, 0xfbab,
+ 0xfeb3, 0xffe9, 0x0200, 0x0489, 0x0547, 0x04d2,
+ 0x03df, 0x0146, 0xfd04, 0xfa9e, 0xfb14, 0xf936,
+ 0xf641, 0xf7f3, 0xf981, 0xf998, 0xfe61, 0x00a8,
+ 0xfbaa, 0xf9db, 0xfb8f, 0xfa46, 0xf7ba, 0xf42d,
+ 0xf104, 0xf1fb, 0xf485, 0xf68a, 0xf869, 0xfb15,
+ 0xffc2, 0x01ae, 0x0131, 0x0391, 0x01d7, 0xfc08,
+ 0xfc8a, 0xfd39, 0xfa74, 0xfc60, 0xfdd5, 0xfbf0,
+ 0xfec2, 0x038f, 0x0480, 0x0280, 0x0156, 0x0489,
+ 0x0676, 0x042a, 0x0475, 0x04e6, 0x03ca, 0x0681,
+ 0x07be, 0x06d6, 0x0a6c, 0x0d35, 0x0e51, 0x1137,
+ 0x10af, 0x0fec, 0x1185, 0x0e86, 0x0c22, 0x0e1a,
+ 0x0d11, 0x0bdc, 0x0d96, 0x0e67, 0x0f1a, 0x0e72,
+ 0x0cf9, 0x0e57, 0x0d5f, 0x0a26, 0x0ac8, 0x0ab4,
+ 0x08f6, 0x0a6b, 0x0ba8, 0x0a81, 0x0904, 0x0930,
+ 0x0c20, 0x0c26, 0x0a69, 0x0ea6, 0x1063, 0x0ca3,
+ 0x0fb4, 0x12a8, 0x0d3b, 0x0c70, 0x107b, 0x0f61,
+ 0x0e19, 0x0f07, 0x0db4, 0x0d1a, 0x0f63, 0x0fb6,
+ 0x0c61, 0x0c06, 0x104d, 0x10bc, 0x0f21, 0x11e7,
+ 0x1162, 0x0e76, 0x1152, 0x1052, 0x0b81, 0x0f8a,
+ 0x11ce, 0x0bb0, 0x0c20, 0x1034, 0x0da0, 0x0ccf,
+ 0x1004, 0x0f3f, 0x0d02, 0x0dac, 0x0ce1, 0x0a01,
+ 0x0bde, 0x0f0e, 0x0a18, 0x0531, 0x07b9, 0x061c,
+ 0x013a, 0x0372, 0x0514, 0x03d5, 0x071f, 0x0772,
+ 0x0268, 0x0218, 0x03db, 0x0289, 0x025a, 0x02e3,
+ 0x0187, 0x00ea, 0x02b6, 0x0428, 0x0297, 0x00eb,
+ 0x0153, 0x00a1, 0x0030, 0x024a, 0x02b9, 0x0225,
+ 0x0428, 0x0612, 0x068e, 0x05d6, 0x03f1, 0x04b1,
+ 0x06ce, 0x0627, 0x069d, 0x087d, 0x06e6, 0x0538,
+ 0x0683, 0x06fa, 0x0680, 0x074a, 0x078b, 0x067a,
+ 0x0706, 0x08c4, 0x074a, 0x04e1, 0x068b, 0x076d,
+ 0x0436, 0x0330, 0x052d, 0x05ed, 0x0624, 0x06a3,
+ 0x06cd, 0x062c, 0x0347, 0x00a6, 0x0249, 0x05f3,
+ 0x0841, 0x0946, 0x090b, 0x06a1, 0x0386, 0x03eb,
+ 0x064e, 0x04f0, 0x030a, 0x04d8, 0x04af, 0x0158,
+ 0x0042, 0x00bc, 0x000f, 0xfee3, 0xfe8e, 0xff2a,
+ 0xfe0f, 0xfcae, 0xff8b, 0x0235, 0x00ba, 0xfffd,
+ 0x0043, 0xff9a, 0x0112, 0x03cd, 0x047e, 0x03aa,
+ 0x0300, 0x03d9, 0x04b5, 0x0492, 0x05e7, 0x0662,
+ 0x0481, 0x0524, 0x05ed, 0x03c5, 0x044d, 0x05b6,
+ 0x02da, 0x0064, 0x0059, 0x002b, 0x00c6, 0x0250,
+ 0x03e6, 0x03d3, 0x0075, 0xfde9, 0xfedb, 0x005f,
+ 0x010b, 0x0004, 0xff3a, 0x0170, 0x012f, 0xfe90,
+ 0x0227, 0x06dc, 0x04af, 0x01c6, 0x0208, 0x02af,
+ 0x030c, 0x02ee, 0x0344, 0x0366, 0x010a, 0xff4d,
+ 0x0005, 0x0125, 0x030f, 0x0361, 0x00c0, 0xffd4,
+ 0xff57, 0xfd05, 0xfe0b, 0x01e8, 0x034a, 0x021d,
+ 0xffa4, 0xfd65, 0xfd05, 0xfe85, 0x0186, 0x026b,
+ 0xffbe, 0xfec7, 0xff49, 0xfddb, 0xfe1f, 0x00b8,
+ 0x01b8, 0x0148, 0x00b9, 0x0034, 0xfef8, 0xfd5a,
+ 0xfe73, 0x0038, 0xff68, 0xff71, 0xffd1, 0xff1a,
+ 0x01d3, 0x04d9, 0x038a, 0x018b, 0xfe6c, 0xfb27,
+ 0xfbdc, 0xfa6a, 0xf670, 0xf88e, 0xfb6b, 0xf89a,
+ 0xf6ec, 0xf8b7, 0xf94e, 0xf800, 0xf862, 0xfbae,
+ 0xfc3b, 0xf944, 0xfa6a, 0xfdb9, 0xfcf8, 0xfc6d,
+ 0xfeda, 0x0077, 0x009f, 0x0180, 0x03a2, 0x03bd,
+ 0x00b5, 0xffad, 0xff7d, 0xfb25, 0xf868, 0xfa4e,
+ 0xf9a1, 0xf7ad, 0xfa46, 0xfc1a, 0xf947, 0xf817,
+ 0xf8e1, 0xf675, 0xf611, 0xfa64, 0xfa78, 0xf9b6,
+ 0xff75, 0x0076, 0xfc6b, 0x010d, 0x0529, 0x0042,
+ 0x0067, 0x047b, 0x00e8, 0xfd30, 0xfe89, 0xfd8e,
+ 0xfa2f, 0xf98e, 0xfab9, 0xf9b6, 0xf821, 0xfa7c,
+ 0xfcf8, 0xfc4d, 0xfd48, 0xfd41, 0xf9a0, 0xfb82,
+ 0x00ba, 0xff3b, 0xfd9f, 0x010f, 0x0201, 0x0170,
+ 0x03ff, 0x046c, 0x00dc, 0xff42, 0xffd7, 0xfda9,
+ 0xfa8d, 0xfbfd, 0xfea4, 0xfcde, 0xfb04, 0xfc69,
+ 0xfb76, 0xf896, 0xfac1, 0xfef1, 0xfe4d, 0xfc0c,
+ 0xfc12, 0xfcd4, 0xfeb6, 0x007e, 0xff88, 0xfeb0,
+ 0xfda0, 0xfaaa, 0xfca1, 0x0193, 0x001f, 0xff01,
+ 0x027d, 0x00f6, 0xfdde, 0xffb2, 0xff36, 0xfdbd,
+ 0x0054, 0xfff1, 0xfc74, 0xfbf0, 0xfc07, 0xfd25,
+ 0x0108, 0x0200, 0x001f, 0x00df, 0x0277, 0x021e,
+ 0x0161, 0x00a0, 0xfed6, 0xfc33, 0xfa73, 0xfad4,
+ 0xfc2c, 0xfd85, 0xfefd, 0x004a, 0x01b2, 0x01db,
+ 0xff33, 0xfd36, 0xfcad, 0xf993, 0xf7ff, 0xfac0,
+ 0xf93c, 0xf5a8, 0xf9e9, 0xfd58, 0xf967, 0xf977,
+ 0xfc7a, 0xf895, 0xf4bb, 0xf5f3, 0xf4e5, 0xf233,
+ 0xf34e, 0xf670, 0xf80d, 0xf75c, 0xf7e0, 0xfbc0,
+ 0xfccd, 0xf9cb, 0xf9e7, 0xfa9b, 0xf702, 0xf537,
+ 0xf62c, 0xf466, 0xf2fc, 0xf408, 0xf357, 0xf175,
+ 0xefce, 0xee67, 0xef4b, 0xeeb3, 0xea3c, 0xe9ca,
+ 0xec82, 0xead1, 0xeb18, 0xf11e, 0xf3aa, 0xf2e8,
+ 0xf513, 0xf680, 0xf4ce, 0xf4ca, 0xf655, 0xf409,
+ 0xf070, 0xf358, 0xf6fa, 0xf2c2, 0xf0f4, 0xf5c5,
+ 0xf445, 0xefe8, 0xf216, 0xf1b4, 0xee13, 0xf078,
+ 0xf3c9, 0xf434, 0xf4f7, 0xf435, 0xf505, 0xf976,
+ 0xfa62, 0xfa85, 0xfe76, 0xfebd, 0xfd5b, 0x0132,
+ 0x0191, 0xfbf6, 0xfbd8, 0xfead, 0xfabe, 0xf7cb,
+ 0xfccf, 0xfe26, 0xf827, 0xf8b3, 0xffad, 0xffdc,
+ 0xfc65, 0xfd9e, 0xfe3e, 0xfc54, 0xfd79, 0xff27,
+ 0xfd3b, 0xfb72, 0xfb82, 0xfb1b, 0xfc10, 0xff9e,
+ 0x024c, 0x03bf, 0x0495, 0x0235, 0xff3b, 0xfe90,
+ 0xfbc4, 0xf83f, 0xf902, 0xfa8b, 0xfc05, 0xfef7,
+ 0x0018, 0x0287, 0x067e, 0x0431, 0x0161, 0x027f,
+ 0xfe3b, 0xfa3b, 0xfddf, 0xfe8c, 0xfd9a, 0x0123,
+ 0xffba, 0xfc1c, 0xfffa, 0x0319, 0x00f9, 0x0019,
+ 0x011c, 0x0115, 0xfdcc, 0xfa0b, 0xfac0, 0xfa7a,
+ 0xf7a8, 0xfa4d, 0xfdce, 0xfc64, 0xfca8, 0xfde1,
+ 0xfcd7, 0xfdee, 0xfec1, 0xfbce, 0xf99a, 0xfa5c,
+ 0xfcef, 0xfead, 0xfe4a, 0x004d, 0x024f, 0xfde0,
+ 0xfb02, 0xff72, 0x01f6, 0x0028, 0x000d, 0x017b,
+ 0x015f, 0xff14, 0xfd2c, 0xfdf4, 0xfda0, 0xfaa3,
+ 0xfa07, 0xfba2, 0xfbde, 0xfcdb, 0xfeee, 0xfe4c,
+ 0xfd2e, 0xff35, 0xffe2, 0xfd28, 0xfc76, 0xfd25,
+ 0xfbe6, 0xfc86, 0xfe68, 0xfd71, 0xfd55, 0xff3e,
+ 0x0059, 0x0232, 0x0287, 0xfff5, 0xffba, 0xffc4,
+ 0xfeaf, 0x01e9, 0x02d5, 0xfd5d, 0xfd55, 0x0180,
+ 0x00c6, 0x0066, 0x0073, 0xfbfc, 0xfa8e, 0xfdc0,
+ 0xfdb5, 0xfc70, 0xfd2f, 0xfc58, 0xf9f3, 0xf923,
+ 0xfb16, 0xfdec, 0xfdc9, 0xfc49, 0xfdc7, 0xffd7,
+ 0x005b, 0x023d, 0x049d, 0x04d5, 0x0400, 0x030e,
+ 0x0339, 0x04bf, 0x0304, 0xff23, 0xffea, 0x00e7,
+ 0xfcc3, 0xfb40, 0xfd86, 0xfc04, 0xfa0b, 0xfbc1,
+ 0xfc9b, 0xfbdc, 0xfbb7, 0xfc44, 0xfd51, 0xfd6c,
+ 0xfe65, 0x00f5, 0xff40, 0xfcc5, 0x006b, 0x0249,
+ 0x0069, 0x0250, 0x0326, 0x0172, 0x0397, 0x037f,
+ 0xfe95, 0xfc90, 0xfc06, 0xfb1d, 0xfc15, 0xfb4a,
+ 0xf965, 0xf9a6, 0xf99e, 0xfb39, 0xfe4b, 0xfc70,
+ 0xf9e7, 0xfc74, 0xfe44, 0xfdab, 0xff05, 0x0077,
+ 0xff92, 0xffd7, 0x02ac, 0x026c, 0xfe3a, 0xfddb,
+ 0x0078, 0xfed9, 0xfbb8, 0xfa4e, 0xf84b, 0xf6e5,
+ 0xf6bd, 0xf78c, 0xf9b6, 0xf922, 0xf799, 0xfa71,
+ 0xfb8e, 0xf984, 0xfa3f, 0xf8ba, 0xf470, 0xf496,
+ 0xf4fd, 0xf413, 0xf612, 0xf653, 0xf56f, 0xf796,
+ 0xf791, 0xf6b6, 0xf8bc, 0xf83c, 0xf77a, 0xf9b4,
+ 0xf855, 0xf5d8, 0xf7b6, 0xf84b, 0xf67e, 0xf653,
+ 0xf5e0, 0xf4e6, 0xf68c, 0xfa93, 0xfdec, 0xfebf,
+ 0xff2b, 0x00c7, 0x01a5, 0x01cc, 0x0203, 0x01a3,
+ 0x01ba, 0x022a, 0x02ce, 0x04f1, 0x052e, 0x0290,
+ 0x0274, 0x0341, 0x017f, 0x00f1, 0x0176, 0x00a8,
+ 0x014b, 0x0372, 0x04d8, 0x0513, 0x0359, 0x01e0,
+ 0x02e2, 0x0378, 0x028e, 0x00d5, 0xfe9a, 0xff96,
+ 0x02c9, 0x02a7, 0x0235, 0x03e0, 0x02cf, 0x0186,
+ 0x04a1, 0x06ec, 0x0588, 0x0492, 0x0533, 0x0590,
+ 0x04ba, 0x03f1, 0x0506, 0x061d, 0x05e7, 0x06ae,
+ 0x06f7, 0x0514, 0x057b, 0x0837, 0x07d5, 0x0605,
+ 0x06dc, 0x07ae, 0x06eb, 0x078b, 0x0925, 0x08ee,
+ 0x085e, 0x0936, 0x08db, 0x0761, 0x08d1, 0x0b1c,
+ 0x0a22, 0x0a3f, 0x0dad, 0x0d78, 0x09f4, 0x0b33,
+ 0x0dd8, 0x0a4e, 0x06bc, 0x094c, 0x0ade, 0x084c,
+ 0x07e6, 0x0915, 0x074b, 0x0564, 0x0579, 0x04df,
+ 0x041a, 0x0478, 0x046c, 0x0404, 0x040f, 0x03fd,
+ 0x049b, 0x0624, 0x063b, 0x0515, 0x0556, 0x0617,
+ 0x0612, 0x07ce, 0x0a80, 0x0989, 0x0693, 0x0620,
+ 0x067e, 0x0587, 0x04c2, 0x0498, 0x049f, 0x04c6,
+ 0x043f, 0x0322, 0x0257, 0x02bd, 0x044e, 0x048a,
+ 0x0345, 0x0384, 0x03a1, 0x01b7, 0x01f2, 0x0488,
+ 0x0465, 0x024f, 0x0264, 0x03ea, 0x043b, 0x03fb,
+ 0x04c6, 0x0553, 0x04cb, 0x0460, 0x0356, 0x021e,
+ 0x0330, 0x0485, 0x0441, 0x052e, 0x074e, 0x0821,
+ 0x0799, 0x06e2, 0x06c6, 0x0616, 0x0535, 0x072b,
+ 0x08c9, 0x071c, 0x0744, 0x086d, 0x070d, 0x07d7,
+ 0x09ad, 0x088d, 0x0936, 0x0acf, 0x09b0, 0x0a3c,
+ 0x0ac6, 0x07ea, 0x0785, 0x0919, 0x075a, 0x05d1,
+ 0x0704, 0x07ed, 0x0790, 0x06a0, 0x0647, 0x071d,
+ 0x077d, 0x067f, 0x0568, 0x053d, 0x04b8, 0x0385,
+ 0x04ab, 0x06e5, 0x05db, 0x0414, 0x0470, 0x0528,
+ 0x059e, 0x04a0, 0x033c, 0x0441, 0x0353, 0x009b,
+ 0x022d, 0x025d, 0xfef5, 0x00ad, 0x03eb, 0x0361,
+ 0x0480, 0x05e6, 0x0507, 0x04cf, 0x0381, 0x02f5,
+ 0x05c1, 0x05dd, 0x04b4, 0x0703, 0x070b, 0x048f,
+ 0x050a, 0x05ec, 0x056d, 0x05c9, 0x0694, 0x06ba,
+ 0x058a, 0x039a, 0x0276, 0x0199, 0x013f, 0x0215,
+ 0x02fa, 0x03a5, 0x03cf, 0x045b, 0x068b, 0x06e4,
+ 0x0585, 0x069d, 0x069b, 0x03d1, 0x02b7, 0x022e,
+ 0x0245, 0x04e5, 0x0619, 0x066a, 0x0772, 0x04ef,
+ 0x01e9, 0x01f7, 0x0070, 0xfe23, 0xfdd2, 0xfdb6,
+ 0xfe7e, 0xff1a, 0xfe9f, 0x004c, 0x01b0, 0x00b6,
+ 0x014a, 0x01af, 0xffc1, 0xfed2, 0xfed9, 0xfeb4,
+ 0xfe0e, 0xfc2a, 0xfc6b, 0xff15, 0xff88, 0xff3d,
+ 0x0043, 0xffd4, 0xfda8, 0xfbc2, 0xfbca, 0xfd0b,
+ 0xfc5d, 0xfc4b, 0xff66, 0xffe7, 0xfdbd, 0xff47,
+ 0x01ca, 0x00c3, 0xff7a, 0x0028, 0x0069, 0xff22,
+ 0xfe60, 0xfe66, 0xfc91, 0xfa7f, 0xfba6, 0xfda3,
+ 0xfdfe, 0xfdd8, 0xfde1, 0xff1a, 0x00ea, 0x00d3,
+ 0xffee, 0xfef2, 0xfcd2, 0xfce0, 0x0065, 0x02d3,
+ 0x02d4, 0x0265, 0x028b, 0x0395, 0x040e, 0x03ff,
+ 0x04c8, 0x03d5, 0x0174, 0x01ea, 0x0272, 0x00a7,
+ 0x0152, 0x037d, 0x0311, 0x0324, 0x04ef, 0x0555,
+ 0x04ea, 0x04c9, 0x03b4, 0x01e6, 0x00ea, 0x00da,
+ 0xfff4, 0xfe48, 0xfe5f, 0xff88, 0xfffc, 0x0103,
+ 0x01f0, 0x0126, 0x00db, 0x0238, 0x0313, 0x0223,
+ 0x008e, 0x000a, 0x000e, 0x0038, 0x01bb, 0x0341,
+ 0x0412, 0x0595, 0x05ed, 0x052b, 0x058f, 0x03fb,
+ 0x00e0, 0x015b, 0x02a4, 0x0198, 0x019c, 0x02bd,
+ 0x027e, 0x01a5, 0x01f7, 0x0306, 0x0260, 0x0196,
+ 0x040a, 0x05f1, 0x0478, 0x03a4, 0x03b2, 0x02cc,
+ 0x034b, 0x0560, 0x0621, 0x051b, 0x042c, 0x0400,
+ 0x038b, 0x0337, 0x03b9, 0x03e1, 0x03dc, 0x0415,
+ 0x0408, 0x04c3, 0x0577, 0x04b4, 0x04a3, 0x05db,
+ 0x075a, 0x0956, 0x0a9c, 0x0b03, 0x0aa7, 0x08ca,
+ 0x0835, 0x0830, 0x04dd, 0x0283, 0x035e, 0x02d1,
+ 0x01fb, 0x0284, 0x0286, 0x031d, 0x0390, 0x0291,
+ 0x027d, 0x02c6, 0x0221, 0x01bf, 0x00f8, 0xffba,
+ 0xff4a, 0xff96, 0x002d, 0xffe8, 0xfef4, 0xff5a,
+ 0x00bd, 0x0156, 0xffc0, 0xfd0f, 0xfc86, 0xfc64,
+ 0xfb06, 0xfba5, 0xfba7, 0xf968, 0xfa89, 0xfc96,
+ 0xfb2f, 0xfa01, 0xf8da, 0xf703, 0xf713, 0xf675,
+ 0xf51f, 0xf5ac, 0xf527, 0xf47c, 0xf65b, 0xf75d,
+ 0xf76b, 0xf80a, 0xf723, 0xf5de, 0xf558, 0xf421,
+ 0xf405, 0xf5ac, 0xf6d0, 0xf797, 0xf828, 0xf74b,
+ 0xf5c5, 0xf524, 0xf53f, 0xf513, 0xf44c, 0xf325,
+ 0xf2a2, 0xf3b4, 0xf4a7, 0xf47a, 0xf519, 0xf601,
+ 0xf62a, 0xf72f, 0xf7dc, 0xf723, 0xf72f, 0xf71b,
+ 0xf6ec, 0xf8de, 0xf9ac, 0xf89f, 0xfa60, 0xfc75,
+ 0xfb85, 0xfae3, 0xfa97, 0xf963, 0xf9a0, 0xfa13,
+ 0xf935, 0xf946, 0xf9d3, 0xfa07, 0xfb30, 0xfb9f,
+ 0xfa79, 0xfa8a, 0xfb72, 0xfabf, 0xf987, 0xf9bc,
+ 0xfa95, 0xfa96, 0xfa68, 0xfb04, 0xfb7f, 0xfbf6,
+ 0xfd89, 0xfef4, 0xff1b, 0xff21, 0xffb3, 0x0090,
+ 0x0105, 0x00c2, 0x0098, 0x004f, 0xffae, 0xff73,
+ 0xfebd, 0xfdbe, 0xfdfb, 0xfdec, 0xfd9f, 0xff07,
+ 0xff8e, 0xfe99, 0xffc2, 0x015d, 0x00d8, 0x00a9,
+ 0x0167, 0x0177, 0x014a, 0x013c, 0x0134, 0x014f,
+ 0x0122, 0x009b, 0x002e, 0x006a, 0x012a, 0x00f0,
+ 0xffd3, 0xff92, 0xffc8, 0xffc3, 0x0042, 0x008a,
+ 0x0009, 0x0000, 0x0039, 0x0002, 0x0026, 0x0091,
+ 0x0050, 0xff39, 0xfe07, 0xfe3c, 0xff28, 0xfeb9,
+ 0xfe94, 0xffba, 0xff85, 0xfeed, 0xffbe, 0xff40,
+ 0xfdb2, 0xfd71, 0xfcef, 0xfc4a, 0xfd05, 0xfd5a,
+ 0xfd2c, 0xfdc7, 0xfde3, 0xfd50, 0xfd2f, 0xfd6b,
+ 0xfdc1, 0xfd8d, 0xfcc0, 0xfca7, 0xfd1e, 0xfd64,
+ 0xfdc9, 0xfddf, 0xfd64, 0xfd6a, 0xfdc4, 0xfd16,
+ 0xfc09, 0xfc37, 0xfc84, 0xfb61, 0xfa69, 0xfaa9,
+ 0xfa55, 0xf923, 0xf8a7, 0xf90f, 0xf98d, 0xf9b1,
+ 0xf967, 0xf91f, 0xf961, 0xf9a2, 0xf8e7, 0xf7ef,
+ 0xf7cd, 0xf7ca, 0xf77a, 0xf744, 0xf73c, 0xf7b8,
+ 0xf830, 0xf819, 0xf87a, 0xf8d5, 0xf863, 0xf8a3,
+ 0xf945, 0xf90e, 0xf89d, 0xf7d2, 0xf726, 0xf76c,
+ 0xf777, 0xf7cf, 0xf8be, 0xf807, 0xf767, 0xf911,
+ 0xf9fd, 0xf919, 0xf8c9, 0xf99a, 0xfa70, 0xfa10,
+ 0xf918, 0xf935, 0xf990, 0xf959, 0xf968, 0xf9a8,
+ 0xf9ca, 0xf9c6, 0xf9da, 0xfa6f, 0xfa82, 0xf9f4,
+ 0xfa48, 0xfb2e, 0xfba8, 0xfb96, 0xfb78, 0xfc69,
+ 0xfd7a, 0xfd44, 0xfce7, 0xfc0f, 0xfa9d, 0xfb41,
+ 0xfc99, 0xfbed, 0xfb8d, 0xfc1d, 0xfbd8, 0xfbb2,
+ 0xfc70, 0xfcfd, 0xfc4b, 0xfac9, 0xfa83, 0xfb94,
+ 0xfbde, 0xfb04, 0xfa6a, 0xfab4, 0xfaf7, 0xfa6e,
+ 0xfa12, 0xf9e0, 0xf86a, 0xf710, 0xf790, 0xf851,
+ 0xf831, 0xf7a7, 0xf70b, 0xf732, 0xf7a2, 0xf6ba,
+ 0xf56b, 0xf515, 0xf45e, 0xf326, 0xf33a, 0xf389,
+ 0xf2bb, 0xf235, 0xf1bf, 0xf150, 0xf275, 0xf33b,
+ 0xf281, 0xf2b6, 0xf326, 0xf31a, 0xf3bf, 0xf39f,
+ 0xf33b, 0xf41a, 0xf485, 0xf545, 0xf702, 0xf754,
+ 0xf7ab, 0xf915, 0xf94e, 0xf968, 0xf9f1, 0xf952,
+ 0xf918, 0xf974, 0xf96b, 0xfa9c, 0xfba8, 0xfb3a,
+ 0xfb66, 0xfb8e, 0xfb2a, 0xfb2a, 0xfad5, 0xfb0a,
+ 0xfbd9, 0xfb79, 0xfb0e, 0xfb5d, 0xfba7, 0xfc68,
+ 0xfc91, 0xfb69, 0xfb7d, 0xfcac, 0xfc25, 0xfaf4,
+ 0xfb94, 0xfd38, 0xfd3c, 0xfbd8, 0xfc70, 0xfddf,
+ 0xfcc4, 0xfc57, 0xfe59, 0xfec2, 0xfe23, 0xff3f,
+ 0x0060, 0x011a, 0x023f, 0x0252, 0x025e, 0x033e,
+ 0x0238, 0x00fe, 0x0204, 0x01ed, 0x00e1, 0x01db,
+ 0x02ab, 0x02ca, 0x046c, 0x051d, 0x03e7, 0x045e,
+ 0x0620, 0x064c, 0x04f1, 0x03e9, 0x046b, 0x0527,
+ 0x05a6, 0x06f8, 0x0778, 0x06d1, 0x071e, 0x0815,
+ 0x08b1, 0x087b, 0x07d0, 0x084a, 0x0916, 0x086e,
+ 0x0808, 0x0867, 0x07b2, 0x0765, 0x07bf, 0x0687,
+ 0x059f, 0x05e0, 0x055e, 0x045f, 0x030f, 0x02ba,
+ 0x04a5, 0x0592, 0x04c5, 0x058f, 0x0690, 0x0547,
+ 0x0465, 0x0464, 0x02be, 0x018e, 0x022d, 0x022b,
+ 0x023e, 0x0363, 0x03a0, 0x0348, 0x03bc, 0x03a6,
+ 0x02ff, 0x02f0, 0x0231, 0x0108, 0x00dc, 0x00ca,
+ 0x00e5, 0x015f, 0x017e, 0x0188, 0x011b, 0x00a6,
+ 0x0185, 0x020c, 0x00f2, 0x001c, 0xfff7, 0xffc9,
+ 0xffef, 0xffb5, 0xff2f, 0xffca, 0x0075, 0x000f,
+ 0x0016, 0x0131, 0x017a, 0x003f, 0x000f, 0x015c,
+ 0x0143, 0x005b, 0x00cb, 0x00e2, 0x0010, 0x0025,
+ 0x00c6, 0x00f9, 0x007b, 0xfff1, 0x0032, 0x0034,
+ 0x004a, 0x0126, 0x0148, 0x0137, 0x0192, 0x019c,
+ 0x01a9, 0x01b3, 0x01d8, 0x022e, 0x01ed, 0x0190,
+ 0x026a, 0x03a0, 0x03e1, 0x0488, 0x04e9, 0x0404,
+ 0x0456, 0x051a, 0x0537, 0x058b, 0x0532, 0x0505,
+ 0x04cf, 0x03c7, 0x0371, 0x02cc, 0x016f, 0x00e6,
+ 0x0146, 0x01a6, 0x015f, 0x01a3, 0x026a, 0x028e,
+ 0x02d5, 0x0363, 0x0394, 0x030c, 0x02ed, 0x041e,
+ 0x04bc, 0x04c8, 0x054b, 0x055b, 0x0509, 0x051d,
+ 0x05a2, 0x059a, 0x050e, 0x0512, 0x04d8, 0x0459,
+ 0x0434, 0x0396, 0x02fe, 0x02cd, 0x025a, 0x0246,
+ 0x028a, 0x0255, 0x024d, 0x02da, 0x0324, 0x0313,
+ 0x03f3, 0x053a, 0x0498, 0x0428, 0x05f4, 0x0653,
+ 0x0585, 0x0634, 0x05e2, 0x0453, 0x03c2, 0x039d,
+ 0x0364, 0x0324, 0x0306, 0x03b8, 0x0440, 0x03a4,
+ 0x038c, 0x03ac, 0x02d5, 0x032a, 0x03aa, 0x02f7,
+ 0x0399, 0x043a, 0x0431, 0x0526, 0x04c5, 0x03b9,
+ 0x03b9, 0x024a, 0x00a3, 0x00cb, 0x005d, 0xff50,
+ 0xff5f, 0xff23, 0xfe26, 0xfe15, 0xfea6, 0xfedb,
+ 0xfed6, 0xfec1, 0xfed0, 0xff1f, 0xff2c, 0xfeb5,
+ 0xfe16, 0xfdf2, 0xfefb, 0xfff4, 0xffae, 0xffbc,
+ 0xffe9, 0xffa8, 0x002a, 0x0021, 0xff30, 0xff21,
+ 0xffa9, 0xfff2, 0x002a, 0x0045, 0xffd4, 0xffa4,
+ 0xff75, 0xfead, 0xfeec, 0xfef7, 0xfedf, 0x0059,
+ 0x0014, 0xff1e, 0xffec, 0xffbe, 0xff26, 0xfece,
+ 0xfe5e, 0xfeff, 0xff53, 0xfea5, 0xfe3b, 0xfed2,
+ 0xffa6, 0xffce, 0xffe6, 0xffeb, 0x0014, 0x0086,
+ 0x0130, 0x0275, 0x02c3, 0x0281, 0x0307, 0x03ce,
+ 0x049b, 0x03b4, 0x02b3, 0x03f2, 0x03d5, 0x029f,
+ 0x02e2, 0x02ee, 0x02c8, 0x02ea, 0x029f, 0x02dd,
+ 0x039e, 0x03a6, 0x0391, 0x03c0, 0x03bc, 0x044a,
+ 0x04be, 0x0481, 0x0548, 0x062d, 0x0642, 0x075b,
+ 0x089a, 0x0820, 0x075f, 0x0789, 0x07a2, 0x073c,
+ 0x06b7, 0x0668, 0x065b, 0x0642, 0x0633, 0x060c,
+ 0x05ae, 0x05a4, 0x05c8, 0x057b, 0x0512, 0x053a,
+ 0x0520, 0x04a5, 0x0587, 0x06be, 0x06f1, 0x07a4,
+ 0x086b, 0x07bd, 0x06c5, 0x06d3, 0x06a3, 0x05c9,
+ 0x060d, 0x06a2, 0x0600, 0x05c5, 0x06a3, 0x06f3,
+ 0x0707, 0x07fa, 0x0807, 0x0777, 0x0816, 0x085c,
+ 0x086d, 0x0895, 0x0811, 0x08b0, 0x0964, 0x089d,
+ 0x086b, 0x08fb, 0x090f, 0x08fd, 0x090d, 0x08bf,
+ 0x08d4, 0x0938, 0x08c7, 0x0908, 0x0962, 0x0836,
+ 0x0757, 0x0723, 0x0709, 0x067a, 0x057d, 0x056d,
+ 0x0545, 0x04c3, 0x0467, 0x03b8, 0x0361, 0x0295,
+ 0x0150, 0x012b, 0x0134, 0x0084, 0x000c, 0x0009,
+ 0xffa6, 0xff7c, 0xff7a, 0xfe71, 0xfdc9, 0xfd94,
+ 0xfd19, 0xfd30, 0xfcc1, 0xfc01, 0xfc20, 0xfc1e,
+ 0xfc06, 0xfcae, 0xfd1d, 0xfc3f, 0xfbaf, 0xfc0f,
+ 0xfc01, 0xfbb5, 0xfaec, 0xfa1a, 0xf9ea, 0xf8e1,
+ 0xf7d4, 0xf82c, 0xf891, 0xf826, 0xf840, 0xf90d,
+ 0xf8b6, 0xf831, 0xf834, 0xf79f, 0xf76e, 0xf6ed,
+ 0xf64f, 0xf744, 0xf7d5, 0xf7bd, 0xf847, 0xf8b3,
+ 0xf8a2, 0xf82e, 0xf7d6, 0xf765, 0xf6dc, 0xf78a,
+ 0xf8d7, 0xf94d, 0xf93a, 0xf997, 0xfa0c, 0xf9c4,
+ 0xf987, 0xf982, 0xf91b, 0xf8f5, 0xf8ee, 0xf88a,
+ 0xf830, 0xf860, 0xf942, 0xf977, 0xf93a, 0xfa2b,
+ 0xfa5e, 0xf9fe, 0xfafd, 0xfb17, 0xfa81, 0xfaba,
+ 0xfae5, 0xfb63, 0xfb43, 0xfab2, 0xfb59, 0xfbcf,
+ 0xfb99, 0xfbd3, 0xfc90, 0xfcc6, 0xfd0a, 0xfe76,
+ 0xfe84, 0xfe1f, 0xff45, 0xff77, 0xff54, 0xff6b,
+ 0xfeff, 0xff34, 0xff8c, 0xffcc, 0xffaa, 0xffb0,
+ 0x0055, 0x0047, 0x00d9, 0x013a, 0x007a, 0x00a1,
+ 0x0088, 0x00bb, 0x019b, 0x015a, 0x0198, 0x025f,
+ 0x0291, 0x02a2, 0x02ba, 0x030e, 0x0300, 0x02b8,
+ 0x0299, 0x029f, 0x0300, 0x02e6, 0x02c5, 0x030c,
+ 0x031f, 0x0356, 0x0344, 0x02fb, 0x02ee, 0x029f,
+ 0x0276, 0x0275, 0x01ec, 0x0113, 0x0070, 0x003a,
+ 0x00a1, 0x012c, 0x0111, 0x009b, 0x006c, 0x00db,
+ 0x011d, 0x009c, 0x00b2, 0x00fd, 0x00d9, 0x0123,
+ 0x0167, 0x01a3, 0x01a0, 0x0135, 0x015a, 0x019b,
+ 0x0191, 0x0152, 0x0157, 0x01fd, 0x0236, 0x0249,
+ 0x023f, 0x01b9, 0x0168, 0x00d4, 0x0090, 0x0109,
+ 0x00d6, 0xfff6, 0xff05, 0xfe7b, 0xfe75, 0xfeab,
+ 0xfef5, 0xfeec, 0xfee9, 0xfea7, 0xfe10, 0xfe46,
+ 0xfe17, 0xfd3b, 0xfd4a, 0xfd1d, 0xfc98, 0xfd04,
+ 0xfd28, 0xfd34, 0xfdc9, 0xfdc3, 0xfdf1, 0xfe44,
+ 0xfd8d, 0xfd15, 0xfcfa, 0xfc4d, 0xfbc1, 0xfbe8,
+ 0xfbf5, 0xfb61, 0xfb0a, 0xfb14, 0xfb54, 0xfb7a,
+ 0xfadd, 0xfaaa, 0xfab3, 0xfaac, 0xfb6c, 0xfbb3,
+ 0xfbfb, 0xfc0a, 0xfb0a, 0xfb6e, 0xfc2d, 0xfbb0,
+ 0xfb6c, 0xfb9c, 0xfc0c, 0xfc1d, 0xfc06, 0xfc12,
+ 0xfbe2, 0xfbed, 0xfbaa, 0xfb9d, 0xfba7, 0xfaf3,
+ 0xfb5d, 0xfc1e, 0xfbd8, 0xfb9e, 0xfba0, 0xfbcb,
+ 0xfb9f, 0xfba3, 0xfc04, 0xfbd7, 0xfbf9, 0xfc34,
+ 0xfc31, 0xfc2b, 0xfbd2, 0xfc04, 0xfc3b, 0xfc00,
+ 0xfc1b, 0xfc58, 0xfcbe, 0xfcfb, 0xfd04, 0xfcfa,
+ 0xfcc3, 0xfcd8, 0xfca0, 0xfc2f, 0xfc25, 0xfc4b,
+ 0xfcc6, 0xfcec, 0xfcc9, 0xfcd8, 0xfc8d, 0xfc52,
+ 0xfc82, 0xfc90, 0xfbf6, 0xfb58, 0xfb36, 0xfa74,
+ 0xf9d2, 0xf9c0, 0xf8b7, 0xf7bf, 0xf76f, 0xf691,
+ 0xf5ef, 0xf5da, 0xf555, 0xf4d2, 0xf4a4, 0xf46a,
+ 0xf486, 0xf45b, 0xf380, 0xf386, 0xf40c, 0xf3c5,
+ 0xf3de, 0xf44d, 0xf3c8, 0xf38b, 0xf439, 0xf493,
+ 0xf4c4, 0xf520, 0xf5c8, 0xf68a, 0xf677, 0xf69c,
+ 0xf737, 0xf725, 0xf714, 0xf717, 0xf751, 0xf7e7,
+ 0xf7dd, 0xf7e2, 0xf88d, 0xf930, 0xf94d, 0xf956,
+ 0xf9e4, 0xfa27, 0xfa42, 0xfa81, 0xfa91, 0xfae6,
+ 0xfae3, 0xfad6, 0xfb31, 0xfb32, 0xfb5f, 0xfb7e,
+ 0xfbcb, 0xfcb5, 0xfce8, 0xfcc6, 0xfd2d, 0xfdce,
+ 0xfdff, 0xfd6e, 0xfd56, 0xfdfb, 0xfe46, 0xfddf,
+ 0xfd61, 0xfd61, 0xfdc3, 0xfe6e, 0xfed0, 0xfef8,
+ 0xffa0, 0x002e, 0x008c, 0x0108, 0x014c, 0x0151,
+ 0x016a, 0x01ee, 0x026a, 0x0286, 0x0245, 0x026d,
+ 0x0386, 0x03ce, 0x039e, 0x0427, 0x043b, 0x045e,
+ 0x04cf, 0x04c5, 0x04e3, 0x05a2, 0x0618, 0x0560,
+ 0x0554, 0x0601, 0x05ca, 0x060a, 0x062b, 0x0601,
+ 0x06ef, 0x076a, 0x07b1, 0x0837, 0x07fb, 0x0789,
+ 0x072c, 0x070b, 0x06c1, 0x0650, 0x0678, 0x06c8,
+ 0x074c, 0x077c, 0x0729, 0x073d, 0x0726, 0x0735,
+ 0x077c, 0x072e, 0x06ed, 0x0679, 0x05e3, 0x05ab,
+ 0x0515, 0x0484, 0x0425, 0x038c, 0x031e, 0x02b2,
+ 0x022c, 0x0199, 0x012b, 0x0133, 0x00e6, 0x00b3,
+ 0x0156, 0x0186, 0x0188, 0x01c6, 0x0185, 0x017f,
+ 0x01d0, 0x01fe, 0x01e7, 0x01bd, 0x0234, 0x0256,
+ 0x01a7, 0x010f, 0x00b4, 0x00ae, 0x0093, 0x0048,
+ 0xffd2, 0xff49, 0xff62, 0xff37, 0xff28, 0xffd1,
+ 0xffb3, 0xffcd, 0x0051, 0x0061, 0x00be, 0x008e,
+ 0x005e, 0x0104, 0x00e1, 0x0046, 0x0040, 0x004a,
+ 0x0001, 0xffbe, 0xff5b, 0xfede, 0xff25, 0xff38,
+ 0xfec1, 0xff27, 0xff9e, 0xffb2, 0xfff1, 0x001a,
+ 0x004a, 0x0084, 0x0110, 0x01ff, 0x028e, 0x02b0,
+ 0x02ee, 0x036f, 0x03a6, 0x034e, 0x02d7, 0x0279,
+ 0x0223, 0x01bd, 0x017b, 0x0151, 0x012c, 0x0123,
+ 0x00c8, 0x008c, 0x00cc, 0x00e4, 0x00f1, 0x011c,
+ 0x0143, 0x014e, 0x0193, 0x0230, 0x023a, 0x0228,
+ 0x0276, 0x028e, 0x02ee, 0x0358, 0x035d, 0x036a,
+ 0x038e, 0x03fa, 0x0443, 0x03f0, 0x037c, 0x035b,
+ 0x036f, 0x0338, 0x02ee, 0x02a1, 0x0246, 0x026e,
+ 0x02ce, 0x034b, 0x03b5, 0x037f, 0x0385, 0x03e4,
+ 0x0409, 0x040d, 0x039c, 0x035f, 0x03b4, 0x038d,
+ 0x0364, 0x03e2, 0x03f5, 0x038b, 0x0376, 0x0399,
+ 0x039a, 0x035b, 0x0361, 0x0423, 0x04a0, 0x0496,
+ 0x0512, 0x0591, 0x0545, 0x050d, 0x0549, 0x0547,
+ 0x050b, 0x04c6, 0x0480, 0x0451, 0x041b, 0x0413,
+ 0x03ec, 0x034b, 0x02c8, 0x0271, 0x024a, 0x0234,
+ 0x01d4, 0x01cd, 0x01f8, 0x01d5, 0x01b7, 0x016a,
+ 0x00ff, 0x00c5, 0x0077, 0xffcf, 0xff2c, 0xff1b,
+ 0xff4f, 0xff60, 0xff31, 0xff15, 0xff48, 0xff29,
+ 0xfef5, 0xfedf, 0xfeb7, 0xff20, 0xffbe, 0x000e,
+ 0x0053, 0x006b, 0x0074, 0x00a2, 0x00ee, 0x00e5,
+ 0x009a, 0x009d, 0x0056, 0xffd9, 0xff80, 0xfecf,
+ 0xfe52, 0xfe50, 0xfe2e, 0xfe06, 0xfe46, 0xfe72,
+ 0xfe25, 0xfe16, 0xfdfe, 0xfd9f, 0xfdaf, 0xfdbf,
+ 0xfdca, 0xfe13, 0xfe38, 0xfea4, 0xff2e, 0xff4f,
+ 0xff54, 0xff5b, 0xff6d, 0xff7a, 0xff5c, 0xff22,
+ 0xfed8, 0xfea1, 0xfeb2, 0xfec4, 0xfe83, 0xfe56,
+ 0xfe8e, 0xfef0, 0xff64, 0xffb2, 0xffe4, 0x0040,
+ 0x00a9, 0x0133, 0x01c7, 0x01ee, 0x022a, 0x02e2,
+ 0x0344, 0x0349, 0x036d, 0x0332, 0x02dc, 0x030a,
+ 0x0332, 0x0306, 0x02d7, 0x02e4, 0x0349, 0x03e5,
+ 0x045c, 0x0494, 0x04e8, 0x052b, 0x053b, 0x058d,
+ 0x05c9, 0x05cd, 0x0629, 0x0646, 0x05e3, 0x05fc,
+ 0x0688, 0x069f, 0x064a, 0x060c, 0x0624, 0x0671,
+ 0x068a, 0x0692, 0x06d4, 0x06f2, 0x06ca, 0x06a5,
+ 0x068b, 0x065e, 0x060c, 0x05f2, 0x0655, 0x06a0,
+ 0x0678, 0x0668, 0x06b1, 0x06f2, 0x06d3, 0x067d,
+ 0x065a, 0x063d, 0x0607, 0x0613, 0x0636, 0x066f,
+ 0x06f5, 0x0761, 0x07b9, 0x0826, 0x0866, 0x08b8,
+ 0x0933, 0x0963, 0x095d, 0x096f, 0x0984, 0x0990,
+ 0x099a, 0x097f, 0x092e, 0x08cf, 0x08b3, 0x0897,
+ 0x07fb, 0x0763, 0x072e, 0x06d3, 0x0655, 0x05e2,
+ 0x054b, 0x04dc, 0x04ce, 0x04c0, 0x046b, 0x03ee,
+ 0x039d, 0x0389, 0x037e, 0x036f, 0x035d, 0x0350,
+ 0x0351, 0x0327, 0x02cb, 0x0289, 0x0245, 0x01ce,
+ 0x0156, 0x00f7, 0x00a1, 0x0051, 0x002d, 0x0036,
+ 0x0004, 0xffaa, 0xff9c, 0xff86, 0xff03, 0xfe5b,
+ 0xfdb0, 0xfd16, 0xfcab, 0xfc22, 0xfb6e, 0xfaf9,
+ 0xfaf5, 0xfb2e, 0xfb20, 0xfaae, 0xfa44, 0xf9ec,
+ 0xf983, 0xf92f, 0xf8d7, 0xf861, 0xf812, 0xf81a,
+ 0xf865, 0xf8ba, 0xf900, 0xf92f, 0xf93b, 0xf92e,
+ 0xf8da, 0xf81b, 0xf78a, 0xf75a, 0xf6eb, 0xf678,
+ 0xf696, 0xf6f2, 0xf735, 0xf76a, 0xf798, 0xf7da,
+ 0xf806, 0xf800, 0xf7f0, 0xf7cb, 0xf7af, 0xf7e3,
+ 0xf846, 0xf8ce, 0xf967, 0xf9b0, 0xf9e7, 0xfa5b,
+ 0xfa9d, 0xfa6d, 0xfa15, 0xf9d7, 0xf9b4, 0xf991,
+ 0xf9a8, 0xfa2d, 0xfa9a, 0xfab7, 0xfaf2, 0xfb16,
+ 0xfad7, 0xfae2, 0xfb7f, 0xfbd3, 0xfb9c, 0xfb85,
+ 0xfb92, 0xfb6c, 0xfb5c, 0xfb86, 0xfbae, 0xfbd0,
+ 0xfbd3, 0xfbcc, 0xfbf3, 0xfc1a, 0xfc71, 0xfd2a,
+ 0xfd8c, 0xfd99, 0xfe14, 0xfe99, 0xfeca, 0xff1a,
+ 0xff72, 0xffa5, 0xfff6, 0x006a, 0x0107, 0x01b4,
+ 0x022e, 0x02b2, 0x0346, 0x035f, 0x0303, 0x0297,
+ 0x0245, 0x0217, 0x01d3, 0x0172, 0x0150, 0x0151,
+ 0x0127, 0x011b, 0x012a, 0x00fe, 0x00dc, 0x00f7,
+ 0x00ea, 0x00b5, 0x00b1, 0x00d1, 0x00e9, 0x00ef,
+ 0x00ec, 0x0107, 0x0136, 0x015e, 0x0189, 0x0181,
+ 0x0151, 0x0171, 0x0192, 0x0146, 0x010f, 0x011e,
+ 0x013d, 0x0188, 0x01b7, 0x01ad, 0x01e2, 0x0233,
+ 0x0250, 0x025b, 0x0250, 0x0229, 0x01f7, 0x0190,
+ 0x0112, 0x00bd, 0x009e, 0x00a7, 0x008a, 0x004b,
+ 0x003b, 0x001c, 0xffcc, 0xff85, 0xff0e, 0xfe76,
+ 0xfe59, 0xfeb1, 0xff12, 0xff42, 0xff58, 0xffa4,
+ 0xffe8, 0xffbc, 0xff80, 0xff63, 0xfefd, 0xfe6f,
+ 0xfe2f, 0xfe07, 0xfd85, 0xfce8, 0xfcac, 0xfc94,
+ 0xfc65, 0xfc50, 0xfc43, 0xfc21, 0xfbf4, 0xfb9a,
+ 0xfb27, 0xfaaa, 0xfa15, 0xf9d3, 0xf9e2, 0xf9c3,
+ 0xf9c5, 0xfa1b, 0xfa40, 0xfa26, 0xfa25, 0xfa4d,
+ 0xfa69, 0xfa41, 0xfa18, 0xfa07, 0xf9d1, 0xf9c0,
+ 0xf9e5, 0xf9d5, 0xf9e1, 0xfa4a, 0xfabe, 0xfb2f,
+ 0xfb6a, 0xfb4c, 0xfb33, 0xfb2b, 0xfb1e, 0xfb14,
+ 0xfacd, 0xfa94, 0xfad9, 0xfb26, 0xfb5a, 0xfbc0,
+ 0xfc1c, 0xfc54, 0xfc90, 0xfc9d, 0xfc67, 0xfc36,
+ 0xfc3f, 0xfc50, 0xfc39, 0xfc52, 0xfcd5, 0xfd60,
+ 0xfdc2, 0xfe3b, 0xfed6, 0xff3b, 0xff5c, 0xff96,
+ 0xffc3, 0xff78, 0xff2a, 0xff3c, 0xff44, 0xff35,
+ 0xff2e, 0xfedd, 0xfe5f, 0xfe08, 0xfdb2, 0xfd49,
+ 0xfce2, 0xfc7a, 0xfc19, 0xfbb3, 0xfb28, 0xfa9a,
+ 0xfa33, 0xf9da, 0xf978, 0xf91d, 0xf8c9, 0xf87a,
+ 0xf83e, 0xf821, 0xf81e, 0xf80f, 0xf7ce, 0xf779,
+ 0xf732, 0xf6f4, 0xf6ab, 0xf63d, 0xf5d8, 0xf59f,
+ 0xf54d, 0xf504, 0xf529, 0xf56c, 0xf575, 0xf570,
+ 0xf572, 0xf58d, 0xf5e0, 0xf646, 0xf681, 0xf68a,
+ 0xf6bc, 0xf744, 0xf79a, 0xf78b, 0xf795, 0xf7d3,
+ 0xf811, 0xf834, 0xf84a, 0xf87f, 0xf8a8, 0xf8c5,
+ 0xf92f, 0xf982, 0xf968, 0xf96e, 0xf99f, 0xf9c1,
+ 0xf9f3, 0xf9f5, 0xf9ce, 0xf9e0, 0xf9f3, 0xf9ed,
+ 0xfa08, 0xfa2b, 0xfa41, 0xfa42, 0xfa30, 0xfa27,
+ 0xfa0e, 0xf9e8, 0xf9e1, 0xf9ff, 0xfa5c, 0xfadf,
+ 0xfb5f, 0xfc02, 0xfc7c, 0xfca4, 0xfd0e, 0xfd8d,
+ 0xfdc6, 0xfe0e, 0xfe3c, 0xfe45, 0xfe9d, 0xff01,
+ 0xff37, 0xff79, 0xffab, 0xfff4, 0x006a, 0x009b,
+ 0x00a9, 0x00fd, 0x015b, 0x01a0, 0x01dc, 0x01fe,
+ 0x021b, 0x024a, 0x0269, 0x026f, 0x028f, 0x02e4,
+ 0x0336, 0x0371, 0x03c7, 0x0430, 0x0480, 0x04ab,
+ 0x04c5, 0x04eb, 0x04f5, 0x04cb, 0x04d0, 0x0524,
+ 0x0574, 0x05d0, 0x0662, 0x06ff, 0x0772, 0x07a9,
+ 0x07a9, 0x079a, 0x07a3, 0x07ab, 0x078d, 0x0759,
+ 0x0719, 0x06cd, 0x0695, 0x0644, 0x05a5, 0x050a,
+ 0x049c, 0x043e, 0x03ff, 0x03cd, 0x03ac, 0x03dc,
+ 0x042e, 0x047f, 0x0500, 0x057a, 0x0590, 0x0564,
+ 0x053a, 0x0500, 0x048e, 0x0419, 0x03bb, 0x0333,
+ 0x02a6, 0x025f, 0x022a, 0x01e5, 0x019b, 0x0151,
+ 0x013e, 0x015b, 0x0174, 0x0196, 0x01a2, 0x0182,
+ 0x0167, 0x0142, 0x00eb, 0x0085, 0x0048, 0x0042,
+ 0x0048, 0x004a, 0x0040, 0xffe9, 0xff67, 0xff15,
+ 0xfec5, 0xfe53, 0xfde5, 0xfd9e, 0xfda6, 0xfdd1,
+ 0xfdec, 0xfe3d, 0xfeaa, 0xfee3, 0xff12, 0xff39,
+ 0xff58, 0xffb4, 0x0018, 0x003e, 0x007c, 0x0105,
+ 0x017a, 0x0196, 0x018d, 0x017d, 0x0137, 0x00ef,
+ 0x00e3, 0x00d0, 0x00a6, 0x0099, 0x00a8, 0x00d5,
+ 0x0103, 0x0123, 0x0161, 0x01b7, 0x020b, 0x023f,
+ 0x022d, 0x0232, 0x027f, 0x02ab, 0x02b5, 0x02bb,
+ 0x0295, 0x024f, 0x01d9, 0x0136, 0x00b4, 0x0038,
+ 0xffd6, 0xffda, 0xffe8, 0xfffa, 0x0078, 0x0115,
+ 0x0184, 0x0209, 0x029a, 0x02ff, 0x034b, 0x0382,
+ 0x037b, 0x0356, 0x036c, 0x0377, 0x0320, 0x02b8,
+ 0x024b, 0x01c5, 0x017c, 0x014e, 0x0117, 0x0119,
+ 0x0127, 0x0153, 0x01d0, 0x0218, 0x022b, 0x0270,
+ 0x0299, 0x02a7, 0x02d3, 0x02eb, 0x0300, 0x0312,
+ 0x0317, 0x034b, 0x0371, 0x036c, 0x0392, 0x03a5,
+ 0x0397, 0x03cb, 0x03ed, 0x03d2, 0x03c6, 0x0397,
+ 0x034a, 0x033c, 0x036d, 0x03bc, 0x03fe, 0x0425,
+ 0x0473, 0x04ed, 0x0555, 0x05a0, 0x05c1, 0x05bd,
+ 0x059e, 0x054e, 0x04ed, 0x0499, 0x0440, 0x03fe,
+ 0x03d7, 0x0399, 0x0358, 0x0325, 0x02d7, 0x0270,
+ 0x0201, 0x019e, 0x0162, 0x0141, 0x012f, 0x013c,
+ 0x0156, 0x0166, 0x0173, 0x0171, 0x0161, 0x0154,
+ 0x0132, 0x00fd, 0x00e4, 0x00d1, 0x009d, 0x0073,
+ 0x0056, 0x0027, 0x0004, 0x0002, 0xfff7, 0xffea,
+ 0xfffa, 0x0004, 0xfff1, 0xffd0, 0xffac, 0xff94,
+ 0xff90, 0xff6b, 0xff1c, 0xfeed, 0xfede, 0xfea6,
+ 0xfe4a, 0xfe1f, 0xfe49, 0xfe7e, 0xfe72, 0xfe4c,
+ 0xfe2e, 0xfdf3, 0xfdc7, 0xfde8, 0xfe17, 0xfe43,
+ 0xfea7, 0xff25, 0xffa0, 0x002e, 0x00b0, 0x0119,
+ 0x0186, 0x01d3, 0x01f9, 0x0235, 0x0293, 0x02ee,
+ 0x0314, 0x02f9, 0x02df, 0x02d6, 0x02a1, 0x025d,
+ 0x0237, 0x0217, 0x021e, 0x0257, 0x0275, 0x0272,
+ 0x0274, 0x0278, 0x029e, 0x02e2, 0x031e, 0x0367,
+ 0x03bd, 0x03fb, 0x0435, 0x046c, 0x0498, 0x04e2,
+ 0x052e, 0x052c, 0x04fa, 0x04f7, 0x0526, 0x0546,
+ 0x054b, 0x0550, 0x054e, 0x0540, 0x0535, 0x050a,
+ 0x04c3, 0x04bc, 0x04f2, 0x0506, 0x050c, 0x0538,
+ 0x055f, 0x0570, 0x0570, 0x0537, 0x04f6, 0x04f6,
+ 0x04e1, 0x0498, 0x0490, 0x04d5, 0x051c, 0x055f,
+ 0x0599, 0x05cd, 0x05fd, 0x0601, 0x05fa, 0x0623,
+ 0x064d, 0x0677, 0x06ce, 0x072b, 0x077e, 0x07c8,
+ 0x07da, 0x07cc, 0x07c2, 0x07a9, 0x0784, 0x0746,
+ 0x06fd, 0x06ef, 0x06f2, 0x06cb, 0x06cc, 0x06ef,
+ 0x06e5, 0x06cd, 0x06b4, 0x067d, 0x0663, 0x067a,
+ 0x0689, 0x0695, 0x06a6, 0x069f, 0x067d, 0x0630,
+ 0x05b9, 0x053e, 0x04ba, 0x0447, 0x041b, 0x0409,
+ 0x03f2, 0x0409, 0x0422, 0x0408, 0x03f7, 0x03f6,
+ 0x03d6, 0x03a6, 0x036c, 0x0307, 0x0281, 0x01f8,
+ 0x0172, 0x00f9, 0x00aa, 0x0078, 0x0030, 0xffe1,
+ 0xffb0, 0xff74, 0xff14, 0xfeb3, 0xfe61, 0xfe2d,
+ 0xfe17, 0xfdf5, 0xfdc5, 0xfda1, 0xfd70, 0xfd1e,
+ 0xfca6, 0xfc28, 0xfbdf, 0xfba3, 0xfb3a, 0xfacf,
+ 0xfa68, 0xf9e6, 0xf97b, 0xf92e, 0xf8c5, 0xf867,
+ 0xf83a, 0xf819, 0xf7ee, 0xf7ae, 0xf75b, 0xf720,
+ 0xf6fb, 0xf6bf, 0xf66a, 0xf640, 0xf681, 0xf6e5,
+ 0xf709, 0xf72b, 0xf766, 0xf770, 0xf76a, 0xf772,
+ 0xf748, 0xf725, 0xf75e, 0xf7cf, 0xf852, 0xf8d9,
+ 0xf959, 0xf9d4, 0xfa1a, 0xfa1d, 0xfa14, 0xfa0a,
+ 0xf9fd, 0xf9e4, 0xf9ae, 0xf982, 0xf96a, 0xf949,
+ 0xf944, 0xf943, 0xf915, 0xf8fb, 0xf8f9, 0xf8db,
+ 0xf8c4, 0xf8c5, 0xf8ec, 0xf954, 0xf9bd, 0xf9fe,
+ 0xfa35, 0xfa7a, 0xfaef, 0xfb7d, 0xfbf8, 0xfc7d,
+ 0xfd00, 0xfd82, 0xfe38, 0xfed6, 0xff17, 0xff53,
+ 0xff88, 0xff7e, 0xff78, 0xff96, 0xffb3, 0xffde,
+ 0x0013, 0x002a, 0x0035, 0x0066, 0x00b0, 0x00eb,
+ 0x010d, 0x0103, 0x00d9, 0x00c8, 0x00a7, 0x0057,
+ 0x0032, 0x0046, 0x0058, 0x007a, 0x00a1, 0x00bb,
+ 0x00e0, 0x00e3, 0x00ae, 0x007f, 0x0064, 0x0062,
+ 0x0091, 0x00ca, 0x00ff, 0x014d, 0x018e, 0x01b2,
+ 0x01df, 0x020e, 0x021c, 0x0219, 0x0227, 0x0243,
+ 0x0260, 0x027e, 0x0290, 0x02a0, 0x02c0, 0x02bd,
+ 0x027b, 0x0232, 0x01e5, 0x0182, 0x0137, 0x0101,
+ 0x00c5, 0x00a8, 0x009d, 0x0088, 0x009c, 0x00d0,
+ 0x00e9, 0x0101, 0x011f, 0x0115, 0x0105, 0x0108,
+ 0x00f9, 0x00df, 0x00c8, 0x00a0, 0x0073, 0x0050,
+ 0x002a, 0xfff6, 0xffb0, 0xff82, 0xff87, 0xff77,
+ 0xff3b, 0xff05, 0xfebd, 0xfe4f, 0xfdea, 0xfd8e,
+ 0xfd33, 0xfd11, 0xfd21, 0xfd1a, 0xfcee, 0xfcc4,
+ 0xfc8d, 0xfc2b, 0xfbb6, 0xfb38, 0xfab8, 0xfa68,
+ 0xfa36, 0xf9f6, 0xf9d1, 0xf9cb, 0xf9d7, 0xfa18,
+ 0xfa5e, 0xfa73, 0xfa9f, 0xfaea, 0xfb1b, 0xfb37,
+ 0xfb37, 0xfb11, 0xfadf, 0xfa89, 0xfa04, 0xf9a3,
+ 0xf987, 0xf980, 0xf96e, 0xf960, 0xf956, 0xf92a,
+ 0xf8e1, 0xf8a6, 0xf87d, 0xf86c, 0xf880, 0xf8bb,
+ 0xf943, 0xf9fa, 0xfa84, 0xfb08, 0xfbc1, 0xfc56,
+ 0xfc8f, 0xfca4, 0xfcbb, 0xfcca, 0xfcbe, 0xfca3,
+ 0xfcb6, 0xfd01, 0xfd6d, 0xfdf6, 0xfe74, 0xfeba,
+ 0xfeef, 0xff2e, 0xff44, 0xff22, 0xff04, 0xff12,
+ 0xff3f, 0xff7f, 0xffb9, 0xffd8, 0xffe4, 0xffc6,
+ 0xff71, 0xff09, 0xfe92, 0xfdfb, 0xfd6b, 0xfd0a,
+ 0xfcd4, 0xfcac, 0xfc80, 0xfc66, 0xfc5d, 0xfc37,
+ 0xfc01, 0xfbd7, 0xfba7, 0xfb6f, 0xfb26, 0xfac3,
+ 0xfa55, 0xf9da, 0xf958, 0xf8d9, 0xf843, 0xf7bf,
+ 0xf76c, 0xf70b, 0xf6a9, 0xf67d, 0xf66e, 0xf67a,
+ 0xf6a5, 0xf6cc, 0xf6fa, 0xf727, 0xf745, 0xf773,
+ 0xf783, 0xf754, 0xf743, 0xf772, 0xf7af, 0xf7f0,
+ 0xf828, 0xf864, 0xf8bf, 0xf8f6, 0xf8f0, 0xf8e4,
+ 0xf8cc, 0xf89a, 0xf884, 0xf880, 0xf865, 0xf849,
+ 0xf844, 0xf837, 0xf808, 0xf7b7, 0xf759, 0xf71e,
+ 0xf710, 0xf70a, 0xf703, 0xf70b, 0xf743, 0xf7bf,
+ 0xf837, 0xf883, 0xf8e9, 0xf96d, 0xf9d0, 0xfa0e,
+ 0xfa38, 0xfa5a, 0xfa93, 0xfad2, 0xfb13, 0xfb72,
+ 0xfbec, 0xfc83, 0xfd2f, 0xfdb6, 0xfe17, 0xfe76,
+ 0xfec7, 0xff00, 0xff2c, 0xff51, 0xff5f, 0xff5d,
+ 0xff76, 0xffaa, 0xffd1, 0xfffc, 0x0036, 0x0061,
+ 0x0080, 0x008f, 0x0082, 0x0090, 0x00da, 0x013c,
+ 0x01a9, 0x0228, 0x02b9, 0x0357, 0x03d7, 0x0415,
+ 0x043f, 0x0485, 0x04ce, 0x0504, 0x0540, 0x056f,
+ 0x056e, 0x054e, 0x051b, 0x04e9, 0x04d3, 0x04c2,
+ 0x04ac, 0x04b2, 0x04c5, 0x04ef, 0x055a, 0x05c9,
+ 0x060a, 0x0657, 0x06a8, 0x06cf, 0x06dc, 0x06cb,
+ 0x068a, 0x0640, 0x0613, 0x05f4, 0x05cc, 0x058a,
+ 0x0537, 0x04f3, 0x04b1, 0x0441, 0x03ac, 0x0330,
+ 0x02e0, 0x02a1, 0x0277, 0x0277, 0x029b, 0x02cf,
+ 0x0318, 0x036a, 0x03a3, 0x03c4, 0x03e0, 0x03ed,
+ 0x03d2, 0x0391, 0x0354, 0x0330, 0x02e4, 0x025d,
+ 0x01dd, 0x015a, 0x00c5, 0x005b, 0x0017, 0xffcd,
+ 0xffa1, 0xffa9, 0xffb2, 0xffab, 0xffb4, 0xffcc,
+ 0xffc4, 0xffab, 0xffaf, 0xffaa, 0xff7e, 0xff61,
+ 0xff68, 0xff7e, 0xff90, 0xff79, 0xff6a, 0xffa6,
+ 0xffe8, 0xfffc, 0x0012, 0x003d, 0x0069, 0x0098,
+ 0x00c7, 0x00ef, 0x010a, 0x012c, 0x0154, 0x0156,
+ 0x0150, 0x017e, 0x01ac, 0x01ab, 0x019e, 0x0195,
+ 0x0187, 0x0188, 0x01b3, 0x01e1, 0x01db, 0x01e3,
+ 0x0226, 0x024a, 0x0239, 0x0222, 0x01fe, 0x01f0,
+ 0x020a, 0x020f, 0x020d, 0x021f, 0x021a, 0x0216,
+ 0x0225, 0x021f, 0x0208, 0x01f2, 0x01db, 0x01c8,
+ 0x01b3, 0x01ab, 0x01b6, 0x01bb, 0x01ce, 0x01fe,
+ 0x022f, 0x0265, 0x029b, 0x02c2, 0x02ee, 0x0322,
+ 0x0364, 0x03ba, 0x03f2, 0x0415, 0x044f, 0x0472,
+ 0x0464, 0x044d, 0x0430, 0x041a, 0x0424, 0x042b,
+ 0x041a, 0x03f9, 0x03cf, 0x03a7, 0x037a, 0x033b,
+ 0x02f0, 0x02ac, 0x028b, 0x02a6, 0x02e5, 0x0328,
+ 0x0384, 0x03fe, 0x0457, 0x0472, 0x0484, 0x04a8,
+ 0x04cf, 0x0509, 0x0552, 0x058f, 0x05e1, 0x0644,
+ 0x065f, 0x0631, 0x05f4, 0x059b, 0x0532, 0x04e0,
+ 0x0479, 0x040c, 0x03fd, 0x0422, 0x0408, 0x03d6,
+ 0x03d7, 0x03d3, 0x0397, 0x0352, 0x0309, 0x0290,
+ 0x0210, 0x01c5, 0x0184, 0x0144, 0x013d, 0x0147,
+ 0x0127, 0x0104, 0x00eb, 0x00ce, 0x00d5, 0x00fe,
+ 0x0117, 0x0125, 0x014c, 0x0195, 0x01ce, 0x01e2,
+ 0x01ff, 0x021e, 0x020f, 0x01ee, 0x01bc, 0x0167,
+ 0x0118, 0x00d8, 0x0096, 0x0067, 0x0038, 0xfff1,
+ 0xffb1, 0xff93, 0xff74, 0xff2c, 0xfee9, 0xfeef,
+ 0xff06, 0xfefe, 0xff11, 0xff31, 0xff45, 0xff72,
+ 0xff8a, 0xff79, 0xff87, 0xffad, 0xffcc, 0xffe6,
+ 0xffdf, 0xffd4, 0xfff5, 0x001a, 0x0028, 0x0033,
+ 0x003d, 0x003e, 0x002a, 0x0006, 0xffd6, 0xff8a,
+ 0xff4a, 0xff40, 0xff4f, 0xff58, 0xff58, 0xff6f,
+ 0xffca, 0x0037, 0x0078, 0x00a5, 0x00db, 0x011f,
+ 0x0171, 0x01ac, 0x01d4, 0x0210, 0x0266, 0x02c9,
+ 0x030f, 0x0339, 0x038f, 0x03f6, 0x041d, 0x0427,
+ 0x0434, 0x042e, 0x0429, 0x0434, 0x0440, 0x044a,
+ 0x044c, 0x0458, 0x046c, 0x0455, 0x040e, 0x03cc,
+ 0x03ae, 0x03b0, 0x03c7, 0x03ff, 0x0465, 0x04d2,
+ 0x051c, 0x0535, 0x0524, 0x0517, 0x0527, 0x0532,
+ 0x0537, 0x053d, 0x0533, 0x053e, 0x0574, 0x05a5,
+ 0x05d3, 0x062b, 0x068b, 0x06cf, 0x06fb, 0x0700,
+ 0x06ec, 0x06f5, 0x070d, 0x0719, 0x0721, 0x071a,
+ 0x0714, 0x0722, 0x0708, 0x06c8, 0x06b3, 0x06bb,
+ 0x06ab, 0x068e, 0x0684, 0x06ad, 0x06fb, 0x073e,
+ 0x0774, 0x07aa, 0x07d7, 0x0804, 0x082c, 0x0841,
+ 0x0842, 0x0820, 0x07ee, 0x07c0, 0x076c, 0x070d,
+ 0x06dc, 0x06a7, 0x0662, 0x063b, 0x0610, 0x05cf,
+ 0x059c, 0x0569, 0x0518, 0x04a9, 0x0449, 0x0423,
+ 0x0401, 0x03bd, 0x0397, 0x038e, 0x0378, 0x0376,
+ 0x0388, 0x039c, 0x03e2, 0x043c, 0x0451, 0x0449,
+ 0x0454, 0x043f, 0x0400, 0x03bd, 0x0368, 0x0302,
+ 0x02a0, 0x0235, 0x01ba, 0x012b, 0x0085, 0xffea,
+ 0xff6a, 0xfeed, 0xfe6c, 0xfdf1, 0xfd93, 0xfd5c,
+ 0xfd17, 0xfca7, 0xfc36, 0xfbd5, 0xfb7b, 0xfb25,
+ 0xfabc, 0xfa3f, 0xf9d4, 0xf991, 0xf969, 0xf950,
+ 0xf938, 0xf90f, 0xf8d1, 0xf89d, 0xf878, 0xf850,
+ 0xf83b, 0xf849, 0xf84c, 0xf836, 0xf820, 0xf822,
+ 0xf847, 0xf871, 0xf884, 0xf8a1, 0xf8d0, 0xf8f3,
+ 0xf8fd, 0xf8ea, 0xf8c3, 0xf89d, 0xf876, 0xf842,
+ 0xf7f3, 0xf788, 0xf72b, 0xf6ff, 0xf6fd, 0xf706,
+ 0xf704, 0xf70a, 0xf724, 0xf72b, 0xf71e, 0xf728,
+ 0xf751, 0xf79e, 0xf7fd, 0xf84e, 0xf8a5, 0xf90f,
+ 0xf976, 0xf9d7, 0xfa2b, 0xfa73, 0xfad9, 0xfb57,
+ 0xfbbc, 0xfc0d, 0xfc64, 0xfcc2, 0xfd19, 0xfd61,
+ 0xfd9a, 0xfdc6, 0xfdf3, 0xfe37, 0xfe86, 0xfec5,
+ 0xfefd, 0xff39, 0xff63, 0xff5e, 0xff27, 0xfed2,
+ 0xfe83, 0xfe54, 0xfe31, 0xfdf9, 0xfdc4, 0xfdba,
+ 0xfdd0, 0xfdfe, 0xfe43, 0xfe8d, 0xfed7, 0xff20,
+ 0xff5b, 0xff7f, 0xff9b, 0xffd8, 0x002f, 0x0067,
+ 0x0091, 0x00e2, 0x0138, 0x0170, 0x0193, 0x01a7,
+ 0x01bb, 0x01c8, 0x01b0, 0x018e, 0x0181, 0x017d,
+ 0x018b, 0x01a5, 0x01ae, 0x01c3, 0x01eb, 0x0214,
+ 0x025e, 0x02b0, 0x02b3, 0x0285, 0x0272, 0x0269,
+ 0x0252, 0x022b, 0x01e7, 0x01b1, 0x01a1, 0x018b,
+ 0x0179, 0x018b, 0x0194, 0x0180, 0x0166, 0x0130,
+ 0x00ea, 0x00cb, 0x00bc, 0x009d, 0x007b, 0x004a,
+ 0x0000, 0xffc0, 0xff90, 0xff59, 0xff2a, 0xff24,
+ 0xff3a, 0xff4c, 0xff56, 0xff56, 0xff3f, 0xff28,
+ 0xff11, 0xfed1, 0xfe75, 0xfe2f, 0xfe00, 0xfdc9,
+ 0xfd77, 0xfd0c, 0xfcb4, 0xfc89, 0xfc73, 0xfc63,
+ 0xfc5c, 0xfc42, 0xfc08, 0xfbc4, 0xfb7c, 0xfb3c,
+ 0xfb22, 0xfb1d, 0xfb03, 0xfadd, 0xfac0, 0xfab0,
+ 0xfaa0, 0xfa80, 0xfa4e, 0xfa11, 0xf9d1, 0xf99c,
+ 0xf977, 0xf95b, 0xf94e, 0xf951, 0xf954, 0xf94d,
+ 0xf937, 0xf92a, 0xf940, 0xf964, 0xf983, 0xf9b4,
+ 0xf9fe, 0xfa60, 0xfac3, 0xfb0f, 0xfb55, 0xfb8b,
+ 0xfb90, 0xfb8d, 0xfb9e, 0xfba8, 0xfbb1, 0xfbc2,
+ 0xfbe0, 0xfc2a, 0xfc81, 0xfcc1, 0xfd1d, 0xfda4,
+ 0xfe27, 0xfe89, 0xfeb8, 0xfecf, 0xfefa, 0xff20,
+ 0xff23, 0xff27, 0xff39, 0xff40, 0xff3c, 0xff3d,
+ 0xff41, 0xff42, 0xff41, 0xff2d, 0xfef8, 0xfeaf,
+ 0xfe53, 0xfde5, 0xfd7b, 0xfd12, 0xfcad, 0xfc63,
+ 0xfc1e, 0xfbbb, 0xfb3b, 0xfaa5, 0xfa0e, 0xf986,
+ 0xf8fa, 0xf867, 0xf7f1, 0xf7a3, 0xf768, 0xf735,
+ 0xf715, 0xf707, 0xf6f8, 0xf6de, 0xf6b0, 0xf677,
+ 0xf652, 0xf64a, 0xf659, 0xf663, 0xf662, 0xf678,
+ 0xf69d, 0xf6b4, 0xf6dd, 0xf705, 0xf6f6, 0xf6ec,
+ 0xf6f7, 0xf6d9, 0xf6c5, 0xf6db, 0xf6f3, 0xf71e,
+ 0xf752, 0xf765, 0xf76e, 0xf76f, 0xf755, 0xf736,
+ 0xf70b, 0xf6d4, 0xf6a9, 0xf678, 0xf642, 0xf60c,
+ 0xf5c5, 0xf593, 0xf583, 0xf581, 0xf5ae, 0xf616,
+ 0xf692, 0xf71a, 0xf7a3, 0xf818, 0xf87a, 0xf8ca,
+ 0xf91c, 0xf976, 0xf9b8, 0xf9e5, 0xfa17, 0xfa5a,
+ 0xfaa1, 0xfabf, 0xfab7, 0xfab7, 0xfab2, 0xfa92,
+ 0xfa6f, 0xfa5c, 0xfa63, 0xfa71, 0xfa7b, 0xfaa1,
+ 0xfaf4, 0xfb74, 0xfc20, 0xfccf, 0xfd6a, 0xfdff,
+ 0xfe88, 0xff10, 0xff97, 0xfffb, 0x0058, 0x00c0,
+ 0x0113, 0x0151, 0x016c, 0x015f, 0x0163, 0x017e,
+ 0x0196, 0x01c4, 0x01fb, 0x0233, 0x028d, 0x02f0,
+ 0x034b, 0x03c1, 0x044b, 0x04d1, 0x054e, 0x05c0,
+ 0x0626, 0x0661, 0x067c, 0x06b0, 0x06d8, 0x06c9,
+ 0x06b5, 0x06b5, 0x06a6, 0x0679, 0x0641, 0x0620,
+ 0x060a, 0x05d8, 0x05ab, 0x0590, 0x055b, 0x052a,
+ 0x0526, 0x051b, 0x0502, 0x0508, 0x051d, 0x0522,
+ 0x0519, 0x04fc, 0x04c3, 0x0475, 0x0421, 0x03dd,
+ 0x03b9, 0x03a9, 0x0396, 0x037f, 0x0361, 0x0326,
+ 0x02e9, 0x02d2, 0x02b7, 0x026e, 0x0223, 0x0200,
+ 0x0203, 0x022b, 0x0258, 0x026f, 0x0279, 0x0273,
+ 0x0255, 0x021d, 0x01c7, 0x0173, 0x0136, 0x00e7,
+ 0x007e, 0x001f, 0xffce, 0xff8d, 0xff6a, 0xff5d,
+ 0xff5a, 0xff45, 0xff1d, 0xff17, 0xff3d, 0xff74,
+ 0xffb7, 0xfffd, 0x003e, 0x006e, 0x0073, 0x0070,
+ 0x0084, 0x0094, 0x009b, 0x009d, 0x0094, 0x0097,
+ 0x0098, 0x007e, 0x0071, 0x0076, 0x0074, 0x008d,
+ 0x00bb, 0x00d8, 0x00ff, 0x013f, 0x017b, 0x01ae,
+ 0x01d4, 0x01f4, 0x0216, 0x022b, 0x0236, 0x0243,
+ 0x0234, 0x0208, 0x01d6, 0x018d, 0x012f, 0x00dd,
+ 0x00a7, 0x0093, 0x00a3, 0x00c9, 0x00f6, 0x0128,
+ 0x0162, 0x01aa, 0x01ee, 0x0225, 0x026b, 0x02b1,
+ 0x02d7, 0x02fa, 0x0330, 0x036f, 0x03b4, 0x03ee,
+ 0x040b, 0x0411, 0x03f5, 0x03b6, 0x0371, 0x0325,
+ 0x02da, 0x02a7, 0x028c, 0x0288, 0x0275, 0x0235,
+ 0x01f4, 0x01d2, 0x01b7, 0x01ae, 0x01bf, 0x01df,
+ 0x0210, 0x023c, 0x0268, 0x029f, 0x02c4, 0x02f2,
+ 0x0342, 0x0384, 0x03ca, 0x042f, 0x048e, 0x04f0,
+ 0x055a, 0x05a5, 0x05e1, 0x060b, 0x0610, 0x0611,
+ 0x0619, 0x061b, 0x060d, 0x05cf, 0x057b, 0x0547,
+ 0x052a, 0x0524, 0x052b, 0x0518, 0x04f7, 0x04d0,
+ 0x048a, 0x0432, 0x03ec, 0x03d8, 0x03e6, 0x03ed,
+ 0x0404, 0x0418, 0x03ec, 0x03b3, 0x0398, 0x0375,
+ 0x0359, 0x0346, 0x031e, 0x0301, 0x02e6, 0x02a9,
+ 0x027d, 0x0275, 0x0266, 0x0243, 0x0218, 0x01ee,
+ 0x01c3, 0x0187, 0x0142, 0x00fb, 0x00b6, 0x008d,
+ 0x0087, 0x0096, 0x00aa, 0x00b4, 0x00c1, 0x00d4,
+ 0x00c8, 0x00a7, 0x0098, 0x008e, 0x0078, 0x005e,
+ 0x0040, 0x001e, 0x0000, 0xffe5, 0xffc1, 0xff91,
+ 0xff62, 0xff37, 0xff10, 0xfefa, 0xfeee, 0xfee2,
+ 0xfedc, 0xfed4, 0xfec6, 0xfeb8, 0xfea3, 0xfe97,
+ 0xfea5, 0xfea7, 0xfe9b, 0xfea7, 0xfecf, 0xff11,
+ 0xff66, 0xffab, 0xffe5, 0x001d, 0x003f, 0x0053,
+ 0x006f, 0x007e, 0x0085, 0x0092, 0x008d, 0x0071,
+ 0x005f, 0x005e, 0x006c, 0x0081, 0x0091, 0x00a3,
+ 0x00c8, 0x00fc, 0x012b, 0x0131, 0x0112, 0x0109,
+ 0x011e, 0x0143, 0x017d, 0x01ba, 0x01f2, 0x0235,
+ 0x0270, 0x0292, 0x02b2, 0x02e3, 0x031e, 0x0357,
+ 0x0385, 0x03b9, 0x03ec, 0x0404, 0x0417, 0x043a,
+ 0x046b, 0x04a0, 0x04b9, 0x04a9, 0x0491, 0x0477,
+ 0x0453, 0x0444, 0x044f, 0x045b, 0x0472, 0x04a4,
+ 0x04e3, 0x0527, 0x0564, 0x059a, 0x05d7, 0x060b,
+ 0x0614, 0x0609, 0x05ff, 0x05f6, 0x060f, 0x0646,
+ 0x066a, 0x0692, 0x06cd, 0x06f7, 0x0717, 0x073b,
+ 0x0759, 0x0789, 0x07d6, 0x081a, 0x083e, 0x084a,
+ 0x0856, 0x0860, 0x0853, 0x0844, 0x0836, 0x0811,
+ 0x07fa, 0x07f4, 0x07c8, 0x078b, 0x074a, 0x06e2,
+ 0x066e, 0x060b, 0x05a7, 0x055b, 0x053c, 0x0539,
+ 0x054a, 0x055c, 0x0568, 0x0586, 0x05a7, 0x05b0,
+ 0x05ae, 0x05a4, 0x058e, 0x0579, 0x055c, 0x0534,
+ 0x0526, 0x052f, 0x0536, 0x0538, 0x0532, 0x0521,
+ 0x051e, 0x051a, 0x04fb, 0x04d7, 0x04aa, 0x0466,
+ 0x0422, 0x03d6, 0x037d, 0x0337, 0x02e3, 0x025c,
+ 0x01bf, 0x010a, 0x0053, 0xffdb, 0xff86, 0xff24,
+ 0xfed4, 0xfe99, 0xfe51, 0xfdf3, 0xfd8d, 0xfd43,
+ 0xfd1d, 0xfd04, 0xfcf6, 0xfcec, 0xfccb, 0xfca1,
+ 0xfc7a, 0xfc5e, 0xfc54, 0xfc4a, 0xfc35, 0xfc23,
+ 0xfc0d, 0xfbec, 0xfbc7, 0xfb8e, 0xfb43, 0xfafa,
+ 0xfab8, 0xfa7e, 0xfa42, 0xf9fc, 0xf9c1, 0xf98e,
+ 0xf956, 0xf92f, 0xf90b, 0xf8c2, 0xf86d, 0xf829,
+ 0xf7e0, 0xf794, 0xf760, 0xf748, 0xf73c, 0xf732,
+ 0xf736, 0xf735, 0xf70c, 0xf6db, 0xf6d2, 0xf6ca,
+ 0xf6b6, 0xf6bd, 0xf6d9, 0xf705, 0xf74d, 0xf79f,
+ 0xf7f7, 0xf858, 0xf8a1, 0xf8e8, 0xf94d, 0xf99f,
+ 0xf9d9, 0xfa35, 0xfaa0, 0xfae5, 0xfb0c, 0xfb32,
+ 0xfb61, 0xfb94, 0xfbce, 0xfc10, 0xfc3f, 0xfc48,
+ 0xfc40, 0xfc3a, 0xfc32, 0xfc42, 0xfc7f, 0xfccf,
+ 0xfd1e, 0xfd67, 0xfd9e, 0xfdce, 0xfe05, 0xfe35,
+ 0xfe6a, 0xfea1, 0xfeb4, 0xfec1, 0xfee7, 0xfef8,
+ 0xfefc, 0xff20, 0xff43, 0xff4e, 0xff52, 0xff4e,
+ 0xff52, 0xff69, 0xff7e, 0xff96, 0xffb4, 0xffcc,
+ 0xfff9, 0x0039, 0x0071, 0x00ad, 0x00f7, 0x0130,
+ 0x0157, 0x017e, 0x019c, 0x01af, 0x01c7, 0x01dd,
+ 0x01e5, 0x01f7, 0x0217, 0x0232, 0x0251, 0x0269,
+ 0x025f, 0x0258, 0x025f, 0x0258, 0x024b, 0x0242,
+ 0x0239, 0x0236, 0x0225, 0x0207, 0x01f8, 0x01e7,
+ 0x01e1, 0x0204, 0x0233, 0x0258, 0x0279, 0x0286,
+ 0x0272, 0x0244, 0x0204, 0x01bc, 0x0162, 0x010d,
+ 0x00df, 0x00c2, 0x00ac, 0x00c2, 0x00ea, 0x00f5,
+ 0x00fc, 0x010a, 0x0100, 0x00dc, 0x00a8, 0x005b,
+ 0x0000, 0xffb4, 0xff5d, 0xfef1, 0xfe9f, 0xfe68,
+ 0xfe24, 0xfddb, 0xfd9f, 0xfd67, 0xfd33, 0xfcf4,
+ 0xfc9d, 0xfc3f, 0xfbf2, 0xfbb9, 0xfb83, 0xfb49,
+ 0xfb1b, 0xfaee, 0xfab6, 0xfa8e, 0xfa76, 0xfa53,
+ 0xfa2a, 0xfa09, 0xf9ed, 0xf9d4, 0xf9c2, 0xf9b7,
+ 0xf9aa, 0xf99a, 0xf993, 0xf992, 0xf990, 0xf9a2,
+ 0xf9c9, 0xf9e2, 0xf9ee, 0xfa07, 0xfa25, 0xfa33,
+ 0xfa3f, 0xfa4c, 0xfa4c, 0xfa46, 0xfa4a, 0xfa53,
+ 0xfa6a, 0xfaa1, 0xfafc, 0xfb66, 0xfbda, 0xfc56,
+ 0xfcbd, 0xfd02, 0xfd52, 0xfdb1, 0xfe00, 0xfe49,
+ 0xfe8c, 0xfecb, 0xff19, 0xff51, 0xff64, 0xff82,
+ 0xffa0, 0xff9a, 0xff84, 0xff62, 0xff31, 0xfefd,
+ 0xfec4, 0xfe99, 0xfe82, 0xfe5b, 0xfe2b, 0xfe04,
+ 0xfdc8, 0xfd6c, 0xfd03, 0xfc8d, 0xfc0b, 0xfb8d,
+ 0xfb23, 0xfae0, 0xfacb, 0xfac6, 0xfaa0, 0xfa6b,
+ 0xfa3f, 0xf9f5, 0xf97d, 0xf8fa, 0xf881, 0xf821,
+ 0xf7e1, 0xf7a9, 0xf778, 0xf769, 0xf77d, 0xf799,
+ 0xf7b2, 0xf7d6, 0xf7f9, 0xf806, 0xf80c, 0xf80c,
+ 0xf7ec, 0xf7b7, 0xf775, 0xf71e, 0xf6cd, 0xf68d,
+ 0xf648, 0xf5fa, 0xf5af, 0xf567, 0xf517, 0xf4cf,
+ 0xf4ad, 0xf497, 0xf480, 0xf486, 0xf49a, 0xf4c2,
+ 0xf506, 0xf52e, 0xf549, 0xf58c, 0xf5ca, 0xf600,
+ 0xf63f, 0xf65a, 0xf667, 0xf681, 0xf67e, 0xf676,
+ 0xf686, 0xf682, 0xf66d, 0xf660, 0xf64f, 0xf63d,
+ 0xf63c, 0xf657, 0xf689, 0xf6cc, 0xf733, 0xf7a9,
+ 0xf824, 0xf8c2, 0xf94d, 0xf995, 0xf9c9, 0xf9ff,
+ 0xfa28, 0xfa51, 0xfa81, 0xfab9, 0xfaf8, 0xfb35,
+ 0xfb76, 0xfbb8, 0xfbf7, 0xfc41, 0xfc82, 0xfcb8,
+ 0xfcf9, 0xfd40, 0xfda8, 0xfe3e, 0xfedf, 0xff96,
+ 0x0056, 0x00ed, 0x0176, 0x01f4, 0x022e, 0x0247,
+ 0x025d, 0x0258, 0x0257, 0x0265, 0x026a, 0x0281,
+ 0x02b0, 0x02dd, 0x030d, 0x034c, 0x039e, 0x0401,
+ 0x046c, 0x04db, 0x0548, 0x05a8, 0x05f9, 0x0638,
+ 0x0657, 0x065d, 0x065d, 0x0651, 0x0622, 0x05da,
+ 0x0590, 0x054b, 0x050f, 0x04cd, 0x0473, 0x0426,
+ 0x0402, 0x03e4, 0x03cb, 0x03c6, 0x03c0, 0x03c5,
+ 0x03e9, 0x0408, 0x0415, 0x0433, 0x045e, 0x047d,
+ 0x0490, 0x0497, 0x0485, 0x045c, 0x0434, 0x0413,
+ 0x03e5, 0x03ad, 0x0381, 0x0358, 0x0325, 0x02e4,
+ 0x0289, 0x0228, 0x01db, 0x0186, 0x011c, 0x00cf,
+ 0x00a9, 0x0099, 0x00a1, 0x00a7, 0x00a0, 0x00a5,
+ 0x00a5, 0x008c, 0x0069, 0x003f, 0x0015, 0xfffc,
+ 0xffdf, 0xffa9, 0xff68, 0xff37, 0xff2d, 0xff35,
+ 0xff3a, 0xff61, 0xffaf, 0x0003, 0x0055, 0x0096,
+ 0x00b9, 0x00d8, 0x00fc, 0x011c, 0x0137, 0x0145,
+ 0x0140, 0x0132, 0x012e, 0x012f, 0x011c, 0x0103,
+ 0x010b, 0x0119, 0x0107, 0x00eb, 0x00d2, 0x00c1,
+ 0x00c0, 0x00b8, 0x00a2, 0x0099, 0x0092, 0x008b,
+ 0x00a5, 0x00cf, 0x00f9, 0x0136, 0x0174, 0x019f,
+ 0x01c4, 0x01e9, 0x0217, 0x0258, 0x0291, 0x02af,
+ 0x02bb, 0x02b8, 0x02aa, 0x0299, 0x027f, 0x0266,
+ 0x025b, 0x025d, 0x025f, 0x0252, 0x0242, 0x022f,
+ 0x01ff, 0x01c5, 0x0192, 0x014a, 0x0104, 0x00ec,
+ 0x00ed, 0x00ff, 0x012c, 0x016d, 0x01cb, 0x022b,
+ 0x0265, 0x0295, 0x02cb, 0x02e8, 0x02f6, 0x030a,
+ 0x0328, 0x0364, 0x03a8, 0x03d3, 0x0405, 0x043e,
+ 0x0450, 0x0455, 0x0476, 0x049a, 0x04b0, 0x04c7,
+ 0x04d4, 0x04ce, 0x04ba, 0x048f, 0x0459, 0x0437,
+ 0x0426, 0x0415, 0x0410, 0x041d, 0x0431, 0x0440,
+ 0x0446, 0x044f, 0x045e, 0x0465, 0x045d, 0x0441,
+ 0x0421, 0x0407, 0x03df, 0x039f, 0x0360, 0x0333,
+ 0x0318, 0x0304, 0x02e7, 0x02c0, 0x02a2, 0x029f,
+ 0x02a9, 0x02b1, 0x02c8, 0x02e9, 0x02fe, 0x0312,
+ 0x0316, 0x02f9, 0x02e3, 0x02db, 0x02c6, 0x02b4,
+ 0x02a6, 0x0296, 0x029a, 0x02a5, 0x029c, 0x0271,
+ 0x0235, 0x0200, 0x01c5, 0x0179, 0x013d, 0x010a,
+ 0x00cc, 0x008f, 0x004e, 0x0010, 0xffea, 0xffc7,
+ 0xffa1, 0xff7f, 0xff55, 0xff38, 0xff33, 0xff2c,
+ 0xff29, 0xff2e, 0xff34, 0xff42, 0xff5f, 0xff8e,
+ 0xffb1, 0xffba, 0xffd7, 0x0000, 0x0012, 0x002d,
+ 0x0046, 0x003d, 0x003d, 0x003e, 0x0019, 0xffe8,
+ 0xffb2, 0xff79, 0xff58, 0xff4d, 0xff53, 0xff71,
+ 0xff96, 0xffbd, 0xffdf, 0xfffc, 0x001b, 0x0026,
+ 0x0026, 0x0037, 0x004e, 0x007b, 0x00c7, 0x0108,
+ 0x0146, 0x017f, 0x01a9, 0x01ed, 0x023d, 0x0261,
+ 0x0276, 0x028c, 0x0294, 0x029b, 0x0299, 0x0291,
+ 0x0299, 0x02a1, 0x02ad, 0x02d0, 0x02ff, 0x0331,
+ 0x0358, 0x0371, 0x038e, 0x03a6, 0x03aa, 0x03a5,
+ 0x03a2, 0x03b2, 0x03cf, 0x03de, 0x03f0, 0x0404,
+ 0x03f4, 0x03e0, 0x03e6, 0x03e5, 0x03d6, 0x03c2,
+ 0x03ac, 0x03b6, 0x03f1, 0x0440, 0x0495, 0x04fb,
+ 0x056f, 0x05da, 0x0627, 0x0661, 0x06a1, 0x06e0,
+ 0x070a, 0x0726, 0x073d, 0x0751, 0x075e, 0x0754,
+ 0x0734, 0x070d, 0x06e0, 0x06be, 0x06b6, 0x06ac,
+ 0x069e, 0x06aa, 0x06be, 0x06cb, 0x06cf, 0x06b5,
+ 0x0687, 0x0663, 0x0643, 0x0614, 0x05de, 0x05c5,
+ 0x05ca, 0x05be, 0x05a3, 0x059e, 0x0598, 0x058f,
+ 0x0598, 0x0594, 0x0590, 0x05a6, 0x05ae, 0x05b1,
+ 0x05c5, 0x05c7, 0x05c0, 0x05cb, 0x05db, 0x05de,
+ 0x05c8, 0x05aa, 0x05a6, 0x05a3, 0x058a, 0x0557,
+ 0x0500, 0x0499, 0x0439, 0x03d7, 0x0387, 0x0354,
+ 0x031a, 0x02e4, 0x02c4, 0x029a, 0x0262, 0x022d,
+ 0x01f4, 0x01b8, 0x0185, 0x0155, 0x0121, 0x00ff,
+ 0x00f1, 0x00dc, 0x00c2, 0x00ad, 0x008b, 0x004b,
+ 0xffe6, 0xff5a, 0xfed9, 0xfe77, 0xfe01, 0xfd77,
+ 0xfd04, 0xfc9c, 0xfc39, 0xfbee, 0xfb9f, 0xfb51,
+ 0xfb1b, 0xfae2, 0xfaa2, 0xfa68, 0xfa0c, 0xf993,
+ 0xf92e, 0xf8dd, 0xf89e, 0xf86e, 0xf831, 0xf7ee,
+ 0xf79d, 0xf72e, 0xf6d0, 0xf69b, 0xf672, 0xf65f,
+ 0xf662, 0xf666, 0xf679, 0xf690, 0xf69f, 0xf6be,
+ 0xf6e4, 0xf718, 0xf76c, 0xf7ad, 0xf7d4, 0xf80b,
+ 0xf842, 0xf867, 0xf885, 0xf89b, 0xf8b7, 0xf8df,
+ 0xf90b, 0xf94d, 0xf999, 0xf9de, 0xfa2c, 0xfa74,
+ 0xfaab, 0xfaeb, 0xfb33, 0xfb7c, 0xfbc9, 0xfc0d,
+ 0xfc49, 0xfc93, 0xfcdc, 0xfd0b, 0xfd29, 0xfd43,
+ 0xfd53, 0xfd4d, 0xfd45, 0xfd48, 0xfd3a, 0xfd13,
+ 0xfced, 0xfcca, 0xfc97, 0xfc6a, 0xfc60, 0xfc6c,
+ 0xfc79, 0xfc8f, 0xfca6, 0xfcbf, 0xfcf4, 0xfd3c,
+ 0xfd7a, 0xfdb2, 0xfdec, 0xfe33, 0xfe88, 0xfec9,
+ 0xfef0, 0xff1b, 0xff51, 0xff8c, 0xffc2, 0xfffa,
+ 0x0056, 0x00d1, 0x0133, 0x017e, 0x01c8, 0x0200,
+ 0x0214, 0x0217, 0x0227, 0x0241, 0x024f, 0x0253,
+ 0x0254, 0x024f, 0x0246, 0x0231, 0x020f, 0x01f0,
+ 0x01c3, 0x0181, 0x0151, 0x013e, 0x0135, 0x0139,
+ 0x013d, 0x013b, 0x0149, 0x016d, 0x019c, 0x01c8,
+ 0x01df, 0x01f1, 0x020e, 0x021c, 0x0212, 0x0200,
+ 0x01ec, 0x01e2, 0x01e5, 0x01e9, 0x01ed, 0x01f6,
+ 0x0207, 0x0213, 0x01f8, 0x01b5, 0x0162, 0x0106,
+ 0x00ab, 0x0062, 0x002c, 0x000f, 0x0000, 0xffe5,
+ 0xffb9, 0xff81, 0xff3d, 0xfefc, 0xfeb5, 0xfe63,
+ 0xfe25, 0xfe08, 0xfdff, 0xfdf4, 0xfdd6, 0xfdac,
+ 0xfd77, 0xfd33, 0xfcf6, 0xfcc4, 0xfc8e, 0xfc57,
+ 0xfc1b, 0xfbd1, 0xfb84, 0xfb36, 0xfae9, 0xfaab,
+ 0xfa77, 0xfa45, 0xfa0a, 0xf9c5, 0xf988, 0xf952,
+ 0xf913, 0xf8d4, 0xf8a1, 0xf889, 0xf88d, 0xf891,
+ 0xf8a5, 0xf8e3, 0xf940, 0xf9b3, 0xfa1d, 0xfa75,
+ 0xfae3, 0xfb4a, 0xfb81, 0xfbab, 0xfbd0, 0xfbee,
+ 0xfc26, 0xfc65, 0xfca7, 0xfcfe, 0xfd3d, 0xfd6a,
+ 0xfda1, 0xfdc9, 0xfde8, 0xfe0e, 0xfe2b, 0xfe5e,
+ 0xfea4, 0xfed7, 0xff1a, 0xff76, 0xffd0, 0x0023,
+ 0x005c, 0x0071, 0x007b, 0x006b, 0x0037, 0xfff6,
+ 0xffa0, 0xff3e, 0xfedd, 0xfe68, 0xfdd9, 0xfd4e,
+ 0xfcde, 0xfc86, 0xfc34, 0xfbe6, 0xfb9e, 0xfb5c,
+ 0xfb24, 0xfae6, 0xfaa3, 0xfa78, 0xfa61, 0xfa4d,
+ 0xfa48, 0xfa42, 0xfa2d, 0xfa06, 0xf9c6, 0xf98c,
+ 0xf95c, 0xf91b, 0xf8e4, 0xf8bb, 0xf86e, 0xf810,
+ 0xf7c4, 0xf781, 0xf743, 0xf70d, 0xf6e2, 0xf6d2,
+ 0xf6d1, 0xf6d2, 0xf6de, 0xf6ea, 0xf6e5, 0xf6e4,
+ 0xf6f6, 0xf70b, 0xf70f, 0xf710, 0xf71a, 0xf71e,
+ 0xf70c, 0xf6df, 0xf6a7, 0xf678, 0xf647, 0xf61c,
+ 0xf60c, 0xf601, 0xf5f6, 0xf5fd, 0xf603, 0xf606,
+ 0xf614, 0xf61b, 0xf624, 0xf639, 0xf64a, 0xf65f,
+ 0xf670, 0xf668, 0xf662, 0xf65b, 0xf648, 0xf641,
+ 0xf635, 0xf615, 0xf602, 0xf603, 0xf626, 0xf67a,
+ 0xf6db, 0xf73e, 0xf7b4, 0xf825, 0xf88f, 0xf8f6,
+ 0xf953, 0xf9b5, 0xfa17, 0xfa72, 0xfacf, 0xfb1c,
+ 0xfb56, 0xfb95, 0xfbc9, 0xfbed, 0xfc20, 0xfc60,
+ 0xfcab, 0xfcf9, 0xfd4b, 0xfdbf, 0xfe4e, 0xfed6,
+ 0xff59, 0xffd0, 0x0038, 0x00aa, 0x0129, 0x01b4,
+ 0x0244, 0x02c6, 0x0348, 0x03d6, 0x044a, 0x049c,
+ 0x04d5, 0x04ee, 0x04ee, 0x04da, 0x04bc, 0x04a6,
+ 0x048f, 0x0479, 0x046e, 0x045a, 0x0440, 0x0431,
+ 0x0423, 0x0416, 0x0416, 0x041d, 0x0432, 0x0451,
+ 0x0474, 0x049e, 0x04c6, 0x04e4, 0x0501, 0x051a,
+ 0x052d, 0x0545, 0x055a, 0x0566, 0x0564, 0x054f,
+ 0x0530, 0x050c, 0x04e7, 0x04c2, 0x049e, 0x0489,
+ 0x0491, 0x04ae, 0x04d7, 0x04fc, 0x0516, 0x0528,
+ 0x050f, 0x04bc, 0x045d, 0x03f7, 0x038d, 0x0347,
+ 0x030d, 0x02b2, 0x0259, 0x0213, 0x01be, 0x015a,
+ 0x00e4, 0x005f, 0xffea, 0xff8f, 0xff47, 0xff23,
+ 0xff2a, 0xff51, 0xff91, 0xffd6, 0x0004, 0x001e,
+ 0x0031, 0x0023, 0xffee, 0xffb8, 0xff8f, 0xff6b,
+ 0xff5d, 0xff68, 0xff7b, 0xff9a, 0xffc7, 0xffef,
+ 0x0000, 0xfff8, 0xffeb, 0xfffa, 0x0026, 0x0062,
+ 0x00a9, 0x00eb, 0x0111, 0x0117, 0x0106, 0x00e2,
+ 0x00b1, 0x0088, 0x0081, 0x0099, 0x00b9, 0x00e6,
+ 0x0130, 0x017f, 0x01b7, 0x01e3, 0x0200, 0x0200,
+ 0x01e6, 0x01b3, 0x0177, 0x014d, 0x013e, 0x0144,
+ 0x0158, 0x0174, 0x018f, 0x019a, 0x0194, 0x0187,
+ 0x0178, 0x0164, 0x0155, 0x014e, 0x0143, 0x012a,
+ 0x0117, 0x011d, 0x012a, 0x0128, 0x0115, 0x00ee,
+ 0x00be, 0x009d, 0x0084, 0x0073, 0x0084, 0x00ad,
+ 0x00d0, 0x00f4, 0x0125, 0x0156, 0x0180, 0x01c2,
+ 0x0218, 0x025b, 0x0292, 0x02c7, 0x02dd, 0x02d9,
+ 0x02e4, 0x02ff, 0x032f, 0x0383, 0x03e7, 0x044f,
+ 0x04bc, 0x0515, 0x0552, 0x057c, 0x0580, 0x0559,
+ 0x052e, 0x0502, 0x04ca, 0x04a7, 0x04a9, 0x04a8,
+ 0x0496, 0x0488, 0x0473, 0x0442, 0x03ff, 0x03b6,
+ 0x0372, 0x0341, 0x032d, 0x032a, 0x032d, 0x033a,
+ 0x034f, 0x0356, 0x0348, 0x0338, 0x032f, 0x032c,
+ 0x0334, 0x0352, 0x0392, 0x03e2, 0x042a, 0x046c,
+ 0x04a0, 0x04b5, 0x04b2, 0x04a1, 0x0480, 0x0454,
+ 0x0426, 0x03f9, 0x03d5, 0x03ac, 0x036d, 0x0328,
+ 0x02e7, 0x02a3, 0x0264, 0x022b, 0x01ef, 0x01bb,
+ 0x0196, 0x0172, 0x014f, 0x0138, 0x011c, 0x00fa,
+ 0x00e6, 0x00e1, 0x00e3, 0x00ea, 0x00ed, 0x00ec,
+ 0x00ee, 0x00e8, 0x00cc, 0x00af, 0x00ad, 0x00bd,
+ 0x00c6, 0x00c4, 0x00c0, 0x00ba, 0x00ae, 0x00ab,
+ 0x00bb, 0x00bf, 0x00b1, 0x00ad, 0x009c, 0x0066,
+ 0x0030, 0xfffb, 0xffab, 0xff6a, 0xff4a, 0xff39,
+ 0xff42, 0xff53, 0xff4c, 0xff3d, 0xff28, 0xff19,
+ 0xff2f, 0xff54, 0xff75, 0xffa0, 0xffc7, 0xffe4,
+ 0x0001, 0x0019, 0x0030, 0x0046, 0x0058, 0x0080,
+ 0x00b1, 0x00d4, 0x010d, 0x015d, 0x01ae, 0x0201,
+ 0x0236, 0x0242, 0x024b, 0x0245, 0x0226, 0x0210,
+ 0x0206, 0x020b, 0x0225, 0x023e, 0x0252, 0x0261,
+ 0x0266, 0x0274, 0x028b, 0x029e, 0x02b9, 0x02d8,
+ 0x02f3, 0x031e, 0x0352, 0x038f, 0x03dd, 0x042f,
+ 0x047f, 0x04c6, 0x04ec, 0x04fb, 0x050e, 0x0523,
+ 0x0528, 0x0525, 0x0543, 0x057a, 0x0593, 0x0599,
+ 0x05ac, 0x05c0, 0x05e0, 0x060b, 0x0621, 0x0636,
+ 0x065a, 0x0672, 0x067e, 0x0683, 0x0680, 0x0684,
+ 0x0684, 0x067a, 0x0678, 0x0671, 0x0660, 0x065f,
+ 0x0669, 0x066a, 0x0669, 0x066c, 0x066d, 0x0670,
+ 0x068a, 0x06b6, 0x06dc, 0x06f4, 0x0705, 0x0711,
+ 0x071a, 0x0711, 0x06eb, 0x06b5, 0x0676, 0x0634,
+ 0x05f9, 0x05be, 0x057b, 0x0537, 0x04f5, 0x04ba,
+ 0x0481, 0x044e, 0x0439, 0x0440, 0x045a, 0x0491,
+ 0x04ce, 0x04e4, 0x04d9, 0x04c4, 0x04b1, 0x04ac,
+ 0x04b1, 0x04af, 0x04ac, 0x04ac, 0x04a2, 0x048a,
+ 0x047b, 0x0478, 0x0471, 0x046e, 0x0475, 0x046f,
+ 0x0455, 0x0427, 0x03d7, 0x036a, 0x02fe, 0x029e,
+ 0x024a, 0x0206, 0x01cb, 0x017f, 0x0125, 0x00d4,
+ 0x0085, 0x0022, 0xffac, 0xff2b, 0xfeb3, 0xfe3e,
+ 0xfdb8, 0xfd2e, 0xfcb8, 0xfc4b, 0xfbdb, 0xfb6a,
+ 0xfaf9, 0xfa8d, 0xfa26, 0xf9cc, 0xf984, 0xf940,
+ 0xf903, 0xf8dc, 0xf8bb, 0xf892, 0xf86c, 0xf853,
+ 0xf83d, 0xf814, 0xf7e1, 0xf7af, 0xf768, 0xf71c,
+ 0xf6eb, 0xf6b8, 0xf680, 0xf66a, 0xf66c, 0xf673,
+ 0xf680, 0xf692, 0xf6b7, 0xf6f0, 0xf72d, 0xf772,
+ 0xf7be, 0xf811, 0xf876, 0xf8d2, 0xf91b, 0xf973,
+ 0xf9d6, 0xfa34, 0xfa91, 0xfade, 0xfb19, 0xfb4f,
+ 0xfb7f, 0xfb98, 0xfb98, 0xfb90, 0xfb92, 0xfba0,
+ 0xfbb7, 0xfbc7, 0xfbc2, 0xfbb3, 0xfb9c, 0xfb77,
+ 0xfb48, 0xfb04, 0xfabb, 0xfa91, 0xfa77, 0xfa6c,
+ 0xfa7d, 0xfa9c, 0xfacd, 0xfb10, 0xfb45, 0xfb72,
+ 0xfba2, 0xfbd0, 0xfc12, 0xfc75, 0xfced, 0xfd7e,
+ 0xfe21, 0xfecf, 0xff80, 0x0023, 0x00b7, 0x0130,
+ 0x0179, 0x01a5, 0x01b6, 0x01aa, 0x01a0, 0x019a,
+ 0x018e, 0x018b, 0x018d, 0x018e, 0x0194, 0x0193,
+ 0x0186, 0x0174, 0x015a, 0x014d, 0x014f, 0x014b,
+ 0x014d, 0x015b, 0x016a, 0x0182, 0x019b, 0x01a6,
+ 0x01a8, 0x01a3, 0x019b, 0x018c, 0x017d, 0x0174,
+ 0x016e, 0x016c, 0x0183, 0x01ab, 0x01d8, 0x020c,
+ 0x023d, 0x0260, 0x0275, 0x0288, 0x02af, 0x02d9,
+ 0x02ee, 0x02f8, 0x02ef, 0x02de, 0x02d4, 0x02a9,
+ 0x025d, 0x0225, 0x01f5, 0x01c1, 0x01a5, 0x0183,
+ 0x0145, 0x010c, 0x00d7, 0x00a0, 0x0087, 0x0087,
+ 0x0093, 0x00ad, 0x00bb, 0x00b5, 0x00a9, 0x0077,
+ 0x0010, 0xffa1, 0xff2c, 0xfea1, 0xfe1d, 0xfda2,
+ 0xfd16, 0xfc8b, 0xfc13, 0xfb9a, 0xfb19, 0xfaa0,
+ 0xfa3b, 0xf9e0, 0xf998, 0xf97a, 0xf974, 0xf975,
+ 0xf985, 0xf993, 0xf992, 0xf98e, 0xf97e, 0xf973,
+ 0xf977, 0xf966, 0xf94f, 0xf950, 0xf93e, 0xf918,
+ 0xf900, 0xf8d8, 0xf8a8, 0xf89a, 0xf8a4, 0xf8c0,
+ 0xf8f7, 0xf941, 0xf9a1, 0xfa09, 0xfa5e, 0xfaa5,
+ 0xfaec, 0xfb3a, 0xfba1, 0xfc15, 0xfc77, 0xfcda,
+ 0xfd48, 0xfd9d, 0xfddc, 0xfe1f, 0xfe52, 0xfe65,
+ 0xfe76, 0xfe7e, 0xfe6e, 0xfe54, 0xfe3d, 0xfe28,
+ 0xfe09, 0xfdd5, 0xfda3, 0xfd84, 0xfd65, 0xfd53,
+ 0xfd5b, 0xfd67, 0xfd81, 0xfdaf, 0xfdcc, 0xfdc8,
+ 0xfdb4, 0xfd94, 0xfd5d, 0xfd12, 0xfcbe, 0xfc5b,
+ 0xfbee, 0xfb83, 0xfb1b, 0xfac4, 0xfa8c, 0xfa5b,
+ 0xfa25, 0xf9f6, 0xf9ba, 0xf964, 0xf913, 0xf8df,
+ 0xf8bb, 0xf89c, 0xf89a, 0xf8b0, 0xf8b0, 0xf896,
+ 0xf871, 0xf831, 0xf7f0, 0xf7bc, 0xf76c, 0xf70a,
+ 0xf6b5, 0xf66d, 0xf64a, 0xf64c, 0xf64e, 0xf65a,
+ 0xf678, 0xf68c, 0xf691, 0xf691, 0xf694, 0xf683,
+ 0xf64b, 0xf60e, 0xf5db, 0xf5a3, 0xf57a, 0xf55e,
+ 0xf542, 0xf53b, 0xf53b, 0xf528, 0xf513, 0xf4f8,
+ 0xf4da, 0xf4cb, 0xf4c1, 0xf4c2, 0xf4da, 0xf4f0,
+ 0xf50a, 0xf540, 0xf586, 0xf5d9, 0xf634, 0xf679,
+ 0xf68e, 0xf674, 0xf648, 0xf612, 0xf5d1, 0xf5a7,
+ 0xf59e, 0xf5a1, 0xf5bd, 0xf5e2, 0xf5fa, 0xf62e,
+ 0xf67f, 0xf6cc, 0xf71e, 0xf776, 0xf7d0, 0xf837,
+ 0xf89b, 0xf907, 0xf99b, 0xfa50, 0xfb18, 0xfbe9,
+ 0xfca7, 0xfd4e, 0xfde8, 0xfe74, 0xfef3, 0xff61,
+ 0xffb7, 0xfff5, 0x0012, 0x001b, 0x0021, 0x0027,
+ 0x0048, 0x0097, 0x00ed, 0x013d, 0x019e, 0x0201,
+ 0x0265, 0x02cb, 0x030d, 0x0337, 0x0366, 0x0373,
+ 0x035f, 0x035d, 0x0364, 0x0369, 0x037c, 0x038d,
+ 0x0392, 0x0395, 0x0391, 0x0392, 0x0396, 0x0390,
+ 0x0393, 0x03a2, 0x03a9, 0x03c4, 0x0400, 0x0448,
+ 0x048d, 0x04ae, 0x04aa, 0x04a9, 0x04a1, 0x0483,
+ 0x0470, 0x0471, 0x0479, 0x048d, 0x04ab, 0x04bc,
+ 0x04bd, 0x04bd, 0x04bd, 0x04b8, 0x04b6, 0x04a5,
+ 0x0477, 0x043f, 0x03f5, 0x038f, 0x0326, 0x02ce,
+ 0x028a, 0x0253, 0x0214, 0x01db, 0x01aa, 0x016c,
+ 0x013b, 0x0116, 0x00e2, 0x00b3, 0x0091, 0x0073,
+ 0x0064, 0x0046, 0x0013, 0xfffe, 0xfffc, 0xfff5,
+ 0xfffd, 0x0004, 0x000d, 0x002b, 0x0045, 0x0059,
+ 0x0070, 0x007f, 0x0090, 0x00a5, 0x00b3, 0x00c1,
+ 0x00c4, 0x00b6, 0x00a0, 0x0072, 0x003e, 0x0018,
+ 0xffe3, 0xffad, 0xff9e, 0xffa0, 0xffad, 0xffd3,
+ 0x0009, 0x004b, 0x008b, 0x00bf, 0x00ea, 0x010c,
+ 0x012e, 0x015b, 0x017b, 0x0187, 0x0195, 0x01a7,
+ 0x01a9, 0x0197, 0x0183, 0x0179, 0x0168, 0x015a,
+ 0x0163, 0x017c, 0x0194, 0x01a5, 0x01ad, 0x01ad,
+ 0x019d, 0x0180, 0x0161, 0x013e, 0x0123, 0x011a,
+ 0x0115, 0x010e, 0x010a, 0x0102, 0x00ec, 0x00c3,
+ 0x00a0, 0x0096, 0x008a, 0x0088, 0x00b6, 0x00f3,
+ 0x012e, 0x0188, 0x01f6, 0x0265, 0x02ce, 0x030d,
+ 0x032b, 0x0347, 0x034f, 0x034f, 0x036d, 0x0395,
+ 0x03b0, 0x03c8, 0x03d5, 0x03d0, 0x03d6, 0x03ef,
+ 0x0409, 0x0426, 0x044b, 0x046b, 0x0485, 0x0492,
+ 0x0485, 0x0474, 0x0468, 0x044e, 0x0424, 0x03f8,
+ 0x03d7, 0x03cf, 0x03e1, 0x040a, 0x0442, 0x046c,
+ 0x0481, 0x048e, 0x0489, 0x0480, 0x048b, 0x049c,
+ 0x04b0, 0x04dc, 0x050f, 0x0532, 0x054f, 0x055f,
+ 0x0558, 0x0549, 0x052c, 0x04f0, 0x04a8, 0x045a,
+ 0x0403, 0x03bc, 0x0383, 0x033c, 0x02fa, 0x02c6,
+ 0x0289, 0x0247, 0x0215, 0x01f9, 0x01e8, 0x01d0,
+ 0x01bc, 0x01c4, 0x01d3, 0x01d1, 0x01c3, 0x01b0,
+ 0x01a5, 0x01a1, 0x018f, 0x0177, 0x0160, 0x014a,
+ 0x013e, 0x0134, 0x0128, 0x0120, 0x0117, 0x0112,
+ 0x0119, 0x0132, 0x0164, 0x018f, 0x0193, 0x017c,
+ 0x013e, 0x00df, 0x0099, 0x0071, 0x004e, 0x004f,
+ 0x0068, 0x0077, 0x0087, 0x0089, 0x0071, 0x0059,
+ 0x003e, 0x0011, 0xffdd, 0xffa6, 0xff7d, 0xff74,
+ 0xff7e, 0xff8e, 0xffb0, 0xffdf, 0x000f, 0x0044,
+ 0x007c, 0x00aa, 0x00d1, 0x00f3, 0x0100, 0x00f6,
+ 0x00de, 0x00b2, 0x0085, 0x006b, 0x005a, 0x0056,
+ 0x0067, 0x0076, 0x0077, 0x006e, 0x0063, 0x0066,
+ 0x007c, 0x009a, 0x00bb, 0x00d7, 0x00f7, 0x0128,
+ 0x015e, 0x019d, 0x01f7, 0x0269, 0x02e8, 0x0361,
+ 0x03b8, 0x03ef, 0x0412, 0x041d, 0x0416, 0x0403,
+ 0x03f3, 0x03f4, 0x03fd, 0x040a, 0x0433, 0x0464,
+ 0x047d, 0x048d, 0x04a4, 0x04be, 0x04da, 0x04f1,
+ 0x0503, 0x0516, 0x0528, 0x053b, 0x0554, 0x0572,
+ 0x059c, 0x05cf, 0x05f7, 0x061b, 0x0639, 0x0639,
+ 0x0629, 0x0626, 0x0629, 0x0635, 0x0659, 0x0699,
+ 0x06ec, 0x0738, 0x0779, 0x07c5, 0x07f8, 0x07fc,
+ 0x0801, 0x07ff, 0x07d8, 0x07a5, 0x0774, 0x0746,
+ 0x0722, 0x06ff, 0x06e8, 0x06cb, 0x0681, 0x0635,
+ 0x0608, 0x05ca, 0x0590, 0x0581, 0x057a, 0x0578,
+ 0x057f, 0x0575, 0x056d, 0x0566, 0x0551, 0x0550,
+ 0x055e, 0x0568, 0x0574, 0x0574, 0x0575, 0x0595,
+ 0x05bc, 0x05e8, 0x0620, 0x063e, 0x0649, 0x0657,
+ 0x0650, 0x064a, 0x0654, 0x0655, 0x0662, 0x0683,
+ 0x068c, 0x0673, 0x0636, 0x05d3, 0x056f, 0x050f,
+ 0x04a0, 0x0438, 0x03e0, 0x0397, 0x0361, 0x0321,
+ 0x02c8, 0x026c, 0x0209, 0x0191, 0x011a, 0x00ba,
+ 0x006c, 0x0033, 0x0007, 0xffd3, 0xff8e, 0xff32,
+ 0xfeb8, 0xfe39, 0xfdc3, 0xfd45, 0xfcd6, 0xfc87,
+ 0xfc33, 0xfbca, 0xfb5a, 0xfae5, 0xfa6e, 0xf9fa,
+ 0xf993, 0xf93d, 0xf8df, 0xf871, 0xf814, 0xf7c2,
+ 0xf76e, 0xf734, 0xf71e, 0xf724, 0xf743, 0xf768,
+ 0xf796, 0xf7d2, 0xf804, 0xf831, 0xf85b, 0xf875,
+ 0xf898, 0xf8c0, 0xf8cd, 0xf8dd, 0xf8f9, 0xf914,
+ 0xf94b, 0xf98b, 0xf9ab, 0xf9d3, 0xfa00, 0xfa11,
+ 0xfa15, 0xfa04, 0xf9d9, 0xf9b4, 0xf98f, 0xf966,
+ 0xf951, 0xf939, 0xf915, 0xf8ef, 0xf8bf, 0xf895,
+ 0xf879, 0xf863, 0xf86a, 0xf887, 0xf898, 0xf8ad,
+ 0xf8d7, 0xf906, 0xf935, 0xf971, 0xf9c8, 0xfa2e,
+ 0xfa85, 0xfad7, 0xfb30, 0xfb7e, 0xfbca, 0xfc22,
+ 0xfc84, 0xfce8, 0xfd44, 0xfd99, 0xfde5, 0xfe20,
+ 0xfe62, 0xfeb9, 0xff15, 0xff7b, 0xffe3, 0x0033,
+ 0x0076, 0x00ad, 0x00d4, 0x00f9, 0x0112, 0x011a,
+ 0x0123, 0x0127, 0x011f, 0x0107, 0x00dd, 0x00cb,
+ 0x00d8, 0x00da, 0x00e3, 0x00ff, 0x0108, 0x00fb,
+ 0x00e3, 0x00c5, 0x00bb, 0x00d2, 0x010a, 0x015e,
+ 0x01b7, 0x0200, 0x0226, 0x021d, 0x01fa, 0x01dc,
+ 0x01d6, 0x01f6, 0x0235, 0x0288, 0x02d9, 0x0303,
+ 0x030d, 0x02ff, 0x02d1, 0x02a5, 0x029a, 0x02b0,
+ 0x02fd, 0x036d, 0x03c5, 0x0403, 0x043a, 0x0455,
+ 0x044c, 0x0437, 0x0425, 0x0401, 0x03c1, 0x0380,
+ 0x033b, 0x02db, 0x0278, 0x0214, 0x019a, 0x011f,
+ 0x009f, 0x0016, 0xff9f, 0xff2d, 0xfead, 0xfe31,
+ 0xfdc1, 0xfd6a, 0xfd32, 0xfcfc, 0xfcc5, 0xfc9d,
+ 0xfc6d, 0xfc33, 0xfbf3, 0xfba0, 0xfb52, 0xfb1e,
+ 0xfaec, 0xfabd, 0xfa90, 0xfa43, 0xf9e6, 0xf9a5,
+ 0xf971, 0xf94a, 0xf952, 0xf96f, 0xf986, 0xf9a1,
+ 0xf9ad, 0xf9a8, 0xf9b6, 0xf9ce, 0xf9f5, 0xfa48,
+ 0xfaa3, 0xfaf5, 0xfb50, 0xfb86, 0xfb8c, 0xfb97,
+ 0xfba7, 0xfbbd, 0xfbf4, 0xfc3b, 0xfc85, 0xfcdc,
+ 0xfd21, 0xfd43, 0xfd55, 0xfd64, 0xfd80, 0xfda7,
+ 0xfdd9, 0xfe1d, 0xfe66, 0xfeae, 0xfef6, 0xff1f,
+ 0xff29, 0xff2c, 0xff1e, 0xfef4, 0xfebd, 0xfe86,
+ 0xfe5e, 0xfe45, 0xfe24, 0xfdf4, 0xfdc6, 0xfda1,
+ 0xfd81, 0xfd63, 0xfd50, 0xfd44, 0xfd2c, 0xfd10,
+ 0xfcfa, 0xfcdc, 0xfcbc, 0xfca1, 0xfc74, 0xfc33,
+ 0xfbfa, 0xfbc2, 0xfb7e, 0xfb40, 0xfb0c, 0xfad2,
+ 0xfa92, 0xfa5e, 0xfa44, 0xfa35, 0xfa23, 0xfa13,
+ 0xfa03, 0xf9f4, 0xf9e5, 0xf9bc, 0xf976, 0xf93a,
+ 0xf90d, 0xf8e2, 0xf8bd, 0xf8a1, 0xf899, 0xf89a,
+ 0xf87f, 0xf844, 0xf7f6, 0xf78a, 0xf71a, 0xf6b9,
+ 0xf657, 0xf601, 0xf5bc, 0xf584, 0xf565, 0xf54d,
+ 0xf534, 0xf537, 0xf545, 0xf553, 0xf573, 0xf58d,
+ 0xf5a4, 0xf5cb, 0xf5e0, 0xf5e5, 0xf5ed, 0xf5e0,
+ 0xf5d0, 0xf5c5, 0xf5a8, 0xf59a, 0xf597, 0xf574,
+ 0xf54e, 0xf531, 0xf4fb, 0xf4c5, 0xf49c, 0xf475,
+ 0xf462, 0xf461, 0xf477, 0xf4ba, 0xf50c, 0xf54f,
+ 0xf591, 0xf5ce, 0xf602, 0xf63e, 0xf67e, 0xf6bb,
+ 0xf6fb, 0xf741, 0xf791, 0xf7ef, 0xf84f, 0xf8ac,
+ 0xf910, 0xf971, 0xf9b7, 0xf9f8, 0xfa54, 0xfab1,
+ 0xfb01, 0xfb68, 0xfbe6, 0xfc57, 0xfcb9, 0xfd1c,
+ 0xfd72, 0xfdc5, 0xfe2f, 0xfea2, 0xff0b, 0xff80,
+ 0x0003, 0x0075, 0x00d3, 0x012b, 0x016e, 0x0190,
+ 0x01a6, 0x01c7, 0x01f1, 0x020f, 0x021f, 0x0224,
+ 0x0221, 0x021b, 0x0212, 0x020d, 0x021f, 0x023f,
+ 0x0262, 0x0298, 0x02de, 0x0321, 0x0351, 0x0365,
+ 0x0371, 0x0387, 0x039f, 0x03c4, 0x0406, 0x0452,
+ 0x048c, 0x04b0, 0x04c2, 0x04c3, 0x04b4, 0x049f,
+ 0x0492, 0x0483, 0x046a, 0x0446, 0x041f, 0x0406,
+ 0x03f6, 0x03e3, 0x03c9, 0x03ad, 0x0389, 0x0346,
+ 0x02df, 0x0271, 0x01f8, 0x0179, 0x011a, 0x00d3,
+ 0x008e, 0x0057, 0x0025, 0xfff8, 0xffd7, 0xffaf,
+ 0xff9b, 0xffb6, 0xffd7, 0x0009, 0x005e, 0x009b,
+ 0x00be, 0x00de, 0x00e1, 0x00cd, 0x00b3, 0x0090,
+ 0x0073, 0x0056, 0x0033, 0x000c, 0xffd5, 0xffa0,
+ 0xff79, 0xff48, 0xff2a, 0xff36, 0xff50, 0xff6f,
+ 0xff84, 0xff81, 0xff8c, 0xff9f, 0xff9f, 0xffa3,
+ 0xffb2, 0xffcd, 0x000b, 0x004a, 0x0070, 0x0098,
+ 0x00c2, 0x00e2, 0x0107, 0x0126, 0x0136, 0x013d,
+ 0x0135, 0x011c, 0x0101, 0x00f1, 0x00f1, 0x00fc,
+ 0x0106, 0x0111, 0x0121, 0x0127, 0x0119, 0x00fe,
+ 0x00de, 0x00bb, 0x009e, 0x0084, 0x006f, 0x0061,
+ 0x004d, 0x002b, 0x0005, 0xffe6, 0xffd4, 0xffd1,
+ 0xffdb, 0xfff7, 0x001c, 0x0037, 0x0040, 0x004b,
+ 0x006a, 0x008f, 0x00ba, 0x0100, 0x014a, 0x018a,
+ 0x01ce, 0x01fd, 0x021b, 0x0261, 0x02b4, 0x02ec,
+ 0x0323, 0x034c, 0x0356, 0x0347, 0x031b, 0x02f3,
+ 0x02ef, 0x02e9, 0x02e4, 0x02fa, 0x0304, 0x02f6,
+ 0x02ef, 0x02ed, 0x02f3, 0x030d, 0x0326, 0x033b,
+ 0x0353, 0x0362, 0x0366, 0x036e, 0x037a, 0x038b,
+ 0x03a7, 0x03cd, 0x03fd, 0x0433, 0x0465, 0x048c,
+ 0x049a, 0x0490, 0x0491, 0x04a6, 0x04b2, 0x04bc,
+ 0x04c8, 0x04c0, 0x04a8, 0x048a, 0x0454, 0x0416,
+ 0x03f1, 0x03dc, 0x03c6, 0x03b6, 0x03b5, 0x03b7,
+ 0x03b1, 0x03a6, 0x0392, 0x0376, 0x0361, 0x0335,
+ 0x02e3, 0x0290, 0x023c, 0x01dd, 0x0195, 0x016c,
+ 0x015e, 0x0172, 0x0197, 0x01bb, 0x01dc, 0x01ed,
+ 0x01e6, 0x01c9, 0x01a9, 0x018d, 0x0163, 0x0134,
+ 0x0112, 0x00f5, 0x00e6, 0x00e0, 0x00cc, 0x00c0,
+ 0x00b5, 0x009b, 0x008c, 0x0079, 0x005d, 0x0068,
+ 0x007b, 0x0081, 0x00a4, 0x00d0, 0x00fa, 0x012b,
+ 0x0141, 0x014b, 0x0147, 0x0110, 0x00dd, 0x00b8,
+ 0x0079, 0x0059, 0x005e, 0x0049, 0x003b, 0x003b,
+ 0x0023, 0x000f, 0x0006, 0x0000, 0x0010, 0x001e,
+ 0x0011, 0xfffe, 0xffd6, 0xffa1, 0xff81, 0xff70,
+ 0xff77, 0xff98, 0xffb8, 0xffd5, 0xfff0, 0x0001,
+ 0x001f, 0x0054, 0x009b, 0x00ed, 0x0139, 0x0173,
+ 0x01a0, 0x01be, 0x01da, 0x0207, 0x0236, 0x0257,
+ 0x0274, 0x0298, 0x02c1, 0x02e6, 0x02fc, 0x0308,
+ 0x0324, 0x034b, 0x0361, 0x036c, 0x037e, 0x0387,
+ 0x037e, 0x0374, 0x0371, 0x037d, 0x0398, 0x03b9,
+ 0x03dc, 0x03fc, 0x0414, 0x0422, 0x042b, 0x0443,
+ 0x0479, 0x04be, 0x0513, 0x0586, 0x05fe, 0x065e,
+ 0x06aa, 0x06e7, 0x071f, 0x074e, 0x0762, 0x0773,
+ 0x0791, 0x07a4, 0x07b4, 0x07c5, 0x07b7, 0x0792,
+ 0x0778, 0x0761, 0x0746, 0x0727, 0x06fb, 0x06c1,
+ 0x068d, 0x066f, 0x065c, 0x0645, 0x0639, 0x063b,
+ 0x0638, 0x0631, 0x0623, 0x0601, 0x05d9, 0x05a4,
+ 0x0557, 0x0510, 0x04e1, 0x04b9, 0x0496, 0x0486,
+ 0x0496, 0x04bc, 0x04f3, 0x053f, 0x0591, 0x05d1,
+ 0x05fd, 0x061e, 0x063d, 0x0658, 0x0668, 0x0673,
+ 0x0689, 0x06ad, 0x06d4, 0x06e8, 0x06e6, 0x06de,
+ 0x06ce, 0x06c6, 0x06c6, 0x06ab, 0x0686, 0x0675,
+ 0x065d, 0x0648, 0x064c, 0x064b, 0x0643, 0x063f,
+ 0x062f, 0x060a, 0x05ca, 0x0562, 0x04e3, 0x0461,
+ 0x03ee, 0x0383, 0x0320, 0x02d1, 0x027e, 0x0217,
+ 0x01b2, 0x012e, 0x0088, 0xfffa, 0xff76, 0xfee8,
+ 0xfe68, 0xfdf3, 0xfd8d, 0xfd31, 0xfcce, 0xfc7a,
+ 0xfc21, 0xfbb1, 0xfb59, 0xfafc, 0xfa75, 0xf9f9,
+ 0xf985, 0xf90d, 0xf8b2, 0xf86a, 0xf840, 0xf846,
+ 0xf85e, 0xf898, 0xf8ef, 0xf932, 0xf97a, 0xf9bc,
+ 0xf9dd, 0xfa06, 0xfa2d, 0xfa41, 0xfa5c, 0xfa5f,
+ 0xfa4b, 0xfa30, 0xf9f5, 0xf9d2, 0xf9dc, 0xf9c5,
+ 0xf9a7, 0xf992, 0xf94b, 0xf8f0, 0xf891, 0xf827,
+ 0xf7f3, 0xf7f1, 0xf7f5, 0xf806, 0xf804, 0xf7ef,
+ 0xf7e2, 0xf7c3, 0xf7ab, 0xf7be, 0xf7da, 0xf7fe,
+ 0xf829, 0xf836, 0xf838, 0xf83d, 0xf835, 0xf837,
+ 0xf85a, 0xf89f, 0xf8fd, 0xf957, 0xf9a1, 0xf9d0,
+ 0xf9df, 0xfa0b, 0xfa73, 0xfb05, 0xfbd2, 0xfcd5,
+ 0xfdcd, 0xfe7b, 0xfecd, 0xfeeb, 0xfeec, 0xfec7,
+ 0xfeb3, 0xfedd, 0xff1f, 0xff70, 0xffd2, 0x0013,
+ 0x002a, 0x0029, 0x0001, 0xffc5, 0xffa7, 0xffc0,
+ 0x0000, 0x0050, 0x009e, 0x00c4, 0x00b3, 0x0093,
+ 0x0071, 0x0047, 0x003b, 0x0052, 0x0060, 0x0050,
+ 0x001f, 0xffdc, 0xff9a, 0xff54, 0xff24, 0xff31,
+ 0xff67, 0xffbf, 0x003e, 0x00b8, 0x010e, 0x0146,
+ 0x016e, 0x01a3, 0x01e2, 0x021d, 0x0274, 0x02e8,
+ 0x0353, 0x03b2, 0x03fc, 0x042c, 0x0462, 0x049d,
+ 0x04cc, 0x04f9, 0x0515, 0x0514, 0x04f7, 0x04b0,
+ 0x044f, 0x03e8, 0x0371, 0x02fb, 0x029e, 0x025c,
+ 0x0237, 0x0223, 0x0205, 0x01cc, 0x0179, 0x011e,
+ 0x00bd, 0x0052, 0xffe4, 0xff6b, 0xfeec, 0xfe83,
+ 0xfe23, 0xfdc4, 0xfd7c, 0xfd3d, 0xfd00, 0xfcc8,
+ 0xfc7e, 0xfc31, 0xfbe8, 0xfb80, 0xfb10, 0xfabe,
+ 0xfa7b, 0xfa4b, 0xfa44, 0xfa55, 0xfa6b, 0xfa7a,
+ 0xfa8b, 0xfa95, 0xfa81, 0xfa5b, 0xfa2d, 0xf9f6,
+ 0xf9d2, 0xf9bd, 0xf9b2, 0xf9cc, 0xf9fe, 0xfa3c,
+ 0xfa91, 0xfada, 0xfb13, 0xfb5d, 0xfba6, 0xfbf2,
+ 0xfc5d, 0xfcc1, 0xfd12, 0xfd5c, 0xfd8d, 0xfda2,
+ 0xfdb5, 0xfdd3, 0xfdfa, 0xfe15, 0xfe29, 0xfe43,
+ 0xfe47, 0xfe2e, 0xfe11, 0xfdf4, 0xfdd4, 0xfdb7,
+ 0xfda2, 0xfd9b, 0xfd98, 0xfd97, 0xfda4, 0xfdc1,
+ 0xfdee, 0xfe1c, 0xfe37, 0xfe45, 0xfe3c, 0xfe0b,
+ 0xfdcf, 0xfd98, 0xfd69, 0xfd49, 0xfd33, 0xfd26,
+ 0xfd20, 0xfd0a, 0xfcea, 0xfcc2, 0xfc84, 0xfc4c,
+ 0xfc26, 0xfbef, 0xfbb5, 0xfb8b, 0xfb5e, 0xfb27,
+ 0xfaf6, 0xfad2, 0xfabc, 0xfaaf, 0xfaa0, 0xfa80,
+ 0xfa46, 0xf9f6, 0xf99e, 0xf947, 0xf8f9, 0xf8b1,
+ 0xf862, 0xf80a, 0xf7ba, 0xf77d, 0xf74e, 0xf72d,
+ 0xf722, 0xf723, 0xf71e, 0xf70e, 0xf6e9, 0xf6ba,
+ 0xf694, 0xf66d, 0xf645, 0xf622, 0xf5f1, 0xf5b3,
+ 0xf579, 0xf540, 0xf503, 0xf4cd, 0xf4a5, 0xf485,
+ 0xf46a, 0xf45d, 0xf458, 0xf44d, 0xf43d, 0xf42e,
+ 0xf42b, 0xf43a, 0xf451, 0xf47d, 0xf4c1, 0xf4f1,
+ 0xf504, 0xf518, 0xf522, 0xf51d, 0xf522, 0xf52a,
+ 0xf537, 0xf55b, 0xf585, 0xf5ac, 0xf5d9, 0xf607,
+ 0xf620, 0xf629, 0xf628, 0xf621, 0xf622, 0xf644,
+ 0xf68c, 0xf6dd, 0xf732, 0xf792, 0xf7f5, 0xf856,
+ 0xf8c6, 0xf94a, 0xf9e1, 0xfa8c, 0xfb3a, 0xfbdd,
+ 0xfc70, 0xfceb, 0xfd50, 0xfda5, 0xfdee, 0xfe3c,
+ 0xfe8e, 0xfece, 0xff05, 0xff3a, 0xff5a, 0xff81,
+ 0xffbd, 0xffe3, 0x0000, 0x0031, 0x0054, 0x0063,
+ 0x006f, 0x0079, 0x008e, 0x00b3, 0x00e5, 0x0124,
+ 0x0160, 0x0192, 0x01c3, 0x01e3, 0x01ff, 0x022d,
+ 0x0251, 0x027c, 0x02c3, 0x02f9, 0x032a, 0x036b,
+ 0x0394, 0x03b7, 0x03f4, 0x042c, 0x046a, 0x04bc,
+ 0x04ff, 0x0526, 0x0532, 0x052c, 0x051d, 0x0502,
+ 0x04f4, 0x04fa, 0x04e6, 0x04c6, 0x04be, 0x04ae,
+ 0x0483, 0x0448, 0x03fa, 0x03a3, 0x0347, 0x02e4,
+ 0x0296, 0x025a, 0x0223, 0x01f2, 0x01be, 0x0191,
+ 0x0185, 0x0192, 0x01ac, 0x01c1, 0x01cb, 0x01df,
+ 0x01e3, 0x01b2, 0x0171, 0x0139, 0x00f5, 0x00b1,
+ 0x0074, 0x003b, 0x0019, 0x0002, 0xffe2, 0xffcd,
+ 0xffc8, 0xffc9, 0xffd9, 0xfff2, 0xfffd, 0x0002,
+ 0x0015, 0x001e, 0x001c, 0x0030, 0x0050, 0x0068,
+ 0x008c, 0x00af, 0x00b6, 0x00a8, 0x0085, 0x0054,
+ 0x002e, 0x001a, 0x001f, 0x0040, 0x0062, 0x007f,
+ 0x00a4, 0x00c1, 0x00cd, 0x00d2, 0x00cf, 0x00bf,
+ 0x00b0, 0x00b1, 0x00b2, 0x00ac, 0x00aa, 0x009f,
+ 0x008c, 0x0089, 0x0083, 0x0072, 0x0075, 0x007b,
+ 0x0071, 0x0073, 0x0073, 0x006c, 0x006b, 0x004c,
+ 0x0018, 0xfff5, 0xffcd, 0xffab, 0xffa4, 0xff99,
+ 0xff91, 0xff9f, 0xffbd, 0xffec, 0x0023, 0x005a,
+ 0x0095, 0x00c5, 0x00e7, 0x0106, 0x0113, 0x011c,
+ 0x0136, 0x0147, 0x0150, 0x0161, 0x0164, 0x016a,
+ 0x0182, 0x018d, 0x019e, 0x01db, 0x022e, 0x0281,
+ 0x02cf, 0x0314, 0x035d, 0x03a1, 0x03d0, 0x03fa,
+ 0x0419, 0x0421, 0x0425, 0x0424, 0x040f, 0x03f7,
+ 0x03f0, 0x03f8, 0x0413, 0x0443, 0x047c, 0x04aa,
+ 0x04bb, 0x04bd, 0x04b8, 0x049a, 0x0476, 0x046a,
+ 0x0471, 0x0488, 0x04ab, 0x04c1, 0x04d4, 0x04f6,
+ 0x050e, 0x0504, 0x04ec, 0x04c9, 0x0493, 0x045b,
+ 0x0433, 0x041b, 0x0410, 0x0406, 0x03f5, 0x03ea,
+ 0x03e6, 0x03d2, 0x03c5, 0x03d1, 0x03d5, 0x03d5,
+ 0x03d4, 0x03ba, 0x039f, 0x037d, 0x032f, 0x02db,
+ 0x029c, 0x0252, 0x0217, 0x01fe, 0x01ed, 0x01ee,
+ 0x01f4, 0x01e0, 0x01c1, 0x019e, 0x0176, 0x0164,
+ 0x016d, 0x018d, 0x01d2, 0x0234, 0x028e, 0x02d3,
+ 0x0301, 0x0306, 0x02ee, 0x02e9, 0x02f9, 0x0309,
+ 0x0321, 0x032b, 0x0310, 0x02ec, 0x02ad, 0x0249,
+ 0x01fa, 0x01d3, 0x01bd, 0x01c3, 0x01c8, 0x01b0,
+ 0x0187, 0x0142, 0x00db, 0x0070, 0x0011, 0xffc3,
+ 0xff8f, 0xff78, 0xff71, 0xff68, 0xff60, 0xff53,
+ 0xff2e, 0xff07, 0xfeeb, 0xfec3, 0xfea7, 0xfea8,
+ 0xfebd, 0xfef5, 0xff49, 0xff9c, 0xfff1, 0x003f,
+ 0x0083, 0x00c1, 0x00e9, 0x0102, 0x0114, 0x010a,
+ 0x00fc, 0x00ff, 0x00f4, 0x00ec, 0x00fd, 0x0110,
+ 0x0118, 0x0111, 0x00fe, 0x00f5, 0x00f6, 0x010c,
+ 0x0148, 0x0198, 0x01e6, 0x0225, 0x024e, 0x026a,
+ 0x028c, 0x02be, 0x02ff, 0x034d, 0x03ab, 0x040f,
+ 0x0467, 0x04b7, 0x04f8, 0x051b, 0x0530, 0x054e,
+ 0x057b, 0x05b5, 0x05eb, 0x0615, 0x0639, 0x0665,
+ 0x069d, 0x06d7, 0x0710, 0x074e, 0x0778, 0x078d,
+ 0x07a3, 0x07ab, 0x07ad, 0x07c5, 0x07dc, 0x07e4,
+ 0x07f1, 0x07f8, 0x07e1, 0x07aa, 0x0761, 0x0711,
+ 0x06b4, 0x065a, 0x0621, 0x05fe, 0x05ed, 0x05ff,
+ 0x0628, 0x064a, 0x0662, 0x0666, 0x0648, 0x061c,
+ 0x0604, 0x05ee, 0x05c6, 0x05aa, 0x059b, 0x0580,
+ 0x0579, 0x058d, 0x0591, 0x059a, 0x05bd, 0x05df,
+ 0x0603, 0x0625, 0x0635, 0x064d, 0x067d, 0x06b9,
+ 0x0701, 0x0747, 0x0789, 0x07be, 0x07c9, 0x07be,
+ 0x07ba, 0x07a6, 0x0781, 0x0762, 0x0735, 0x06f6,
+ 0x06b7, 0x066f, 0x062b, 0x0601, 0x05e0, 0x05bd,
+ 0x0591, 0x054b, 0x04f4, 0x048c, 0x0408, 0x0391,
+ 0x0337, 0x02e4, 0x02a2, 0x0272, 0x0227, 0x01c5,
+ 0x0156, 0x00cf, 0x0040, 0xffb3, 0xff29, 0xfeb9,
+ 0xfe4a, 0xfdce, 0xfd70, 0xfd34, 0xfcf2, 0xfcbc,
+ 0xfca2, 0xfc94, 0xfc86, 0xfc78, 0xfc65, 0xfc3c,
+ 0xfbef, 0xfb95, 0xfb46, 0xfb00, 0xfac8, 0xfaa3,
+ 0xfa87, 0xfa5e, 0xfa1b, 0xf9cd, 0xf98b, 0xf959,
+ 0xf938, 0xf92c, 0xf944, 0xf979, 0xf9a8, 0xf9bd,
+ 0xf9b4, 0xf981, 0xf942, 0xf919, 0xf902, 0xf903,
+ 0xf914, 0xf90d, 0xf8eb, 0xf8aa, 0xf840, 0xf7c6,
+ 0xf741, 0xf6af, 0xf63b, 0xf5f5, 0xf5c9, 0xf5c5,
+ 0xf5eb, 0xf619, 0xf646, 0xf67c, 0xf6b6, 0xf6ed,
+ 0xf71d, 0xf751, 0xf78a, 0xf7be, 0xf7ec, 0xf81d,
+ 0xf83a, 0xf833, 0xf83b, 0xf872, 0xf8c8, 0xf959,
+ 0xfa2c, 0xfaf8, 0xfba4, 0xfc35, 0xfc80, 0xfc8c,
+ 0xfc90, 0xfca1, 0xfcd2, 0xfd38, 0xfdcf, 0xfe81,
+ 0xff20, 0xff8a, 0xffc0, 0xffc5, 0xffb6, 0xff9f,
+ 0xff74, 0xff4d, 0xff2b, 0xfef0, 0xfeaf, 0xfe79,
+ 0xfe43, 0xfe22, 0xfe17, 0xfe24, 0xfe51, 0xfe7d,
+ 0xfe9a, 0xfeaa, 0xfe86, 0xfe38, 0xfdf1, 0xfdaf,
+ 0xfd98, 0xfdd9, 0xfe50, 0xfeee, 0xffab, 0x0057,
+ 0x00da, 0x012f, 0x015e, 0x0182, 0x019f, 0x01b8,
+ 0x01e0, 0x0218, 0x025c, 0x02a6, 0x02f5, 0x035a,
+ 0x03cd, 0x0445, 0x04d4, 0x0555, 0x059e, 0x05a8,
+ 0x055d, 0x04ce, 0x0439, 0x03a3, 0x0315, 0x02b3,
+ 0x0266, 0x022b, 0x021f, 0x0223, 0x0229, 0x0235,
+ 0x021e, 0x01da, 0x0187, 0x0126, 0x00bd, 0x006e,
+ 0x0034, 0x0004, 0xffec, 0xffeb, 0xffe1, 0xffbf,
+ 0xff91, 0xff60, 0xff1a, 0xfeb6, 0xfe34, 0xfd96,
+ 0xfce9, 0xfc3f, 0xfb98, 0xfb03, 0xfaa5, 0xfa86,
+ 0xfa8d, 0xfaa8, 0xfaca, 0xfadc, 0xfad1, 0xfab0,
+ 0xfa88, 0xfa6e, 0xfa73, 0xfa8a, 0xfa9c, 0xfab2,
+ 0xfac9, 0xfae7, 0xfb1e, 0xfb63, 0xfbaa, 0xfc01,
+ 0xfc4f, 0xfc77, 0xfc81, 0xfc6e, 0xfc4a, 0xfc28,
+ 0xfbfd, 0xfbde, 0xfbe7, 0xfbf8, 0xfc0c, 0xfc3e,
+ 0xfc73, 0xfc9d, 0xfcc9, 0xfce5, 0xfcf1, 0xfcf4,
+ 0xfce2, 0xfcd4, 0xfcdb, 0xfcc9, 0xfc9a, 0xfc7d,
+ 0xfc6e, 0xfc4e, 0xfc31, 0xfc25, 0xfc11, 0xfbf2,
+ 0xfbdf, 0xfbda, 0xfbdc, 0xfbe8, 0xfbec, 0xfbf2,
+ 0xfc16, 0xfc43, 0xfc63, 0xfc89, 0xfca6, 0xfc9f,
+ 0xfc82, 0xfc60, 0xfc39, 0xfc19, 0xfc05, 0xfbf4,
+ 0xfbeb, 0xfbf0, 0xfbfb, 0xfc05, 0xfbfe, 0xfbdc,
+ 0xfbb4, 0xfb91, 0xfb5d, 0xfb2c, 0xfb12, 0xfafa,
+ 0xfae4, 0xfadc, 0xfadd, 0xfae4, 0xfad1, 0xfa8d,
+ 0xfa3e, 0xf9ea, 0xf980, 0xf916, 0xf8ad, 0xf832,
+ 0xf7b7, 0xf73f, 0xf6c2, 0xf653, 0xf5fb, 0xf5b9,
+ 0xf596, 0xf581, 0xf56d, 0xf553, 0xf524, 0xf4ef,
+ 0xf4c7, 0xf49e, 0xf47d, 0xf475, 0xf46c, 0xf456,
+ 0xf452, 0xf469, 0xf48d, 0xf4b0, 0xf4c1, 0xf4c4,
+ 0xf4c1, 0xf4a0, 0xf467, 0xf43e, 0xf420, 0xf40c,
+ 0xf417, 0xf415, 0xf3ec, 0xf3c5, 0xf39f, 0xf374,
+ 0xf368, 0xf379, 0xf396, 0xf3d2, 0xf417, 0xf451,
+ 0xf496, 0xf4e1, 0xf523, 0xf56a, 0xf5ae, 0xf5f3,
+ 0xf64c, 0xf6ad, 0xf70f, 0xf78b, 0xf80e, 0xf87b,
+ 0xf8dc, 0xf93a, 0xf98d, 0xf9d0, 0xfa09, 0xfa59,
+ 0xfac1, 0xfb16, 0xfb60, 0xfbb7, 0xfc07, 0xfc4c,
+ 0xfc8e, 0xfcc5, 0xfd07, 0xfd55, 0xfd98, 0xfdeb,
+ 0xfe4b, 0xfe89, 0xfeb9, 0xfee2, 0xfee2, 0xfedf,
+ 0xfef3, 0xff09, 0xff39, 0xff8a, 0xffe1, 0x0040,
+ 0x009c, 0x00dd, 0x0114, 0x014f, 0x0194, 0x01f2,
+ 0x026c, 0x02e9, 0x0351, 0x03a5, 0x03f3, 0x0431,
+ 0x045a, 0x047b, 0x048e, 0x048e, 0x0482, 0x0472,
+ 0x046b, 0x045e, 0x0447, 0x043d, 0x0437, 0x0424,
+ 0x041e, 0x041f, 0x0417, 0x040f, 0x0400, 0x03e1,
+ 0x03be, 0x038a, 0x034b, 0x0314, 0x02d6, 0x028e,
+ 0x024d, 0x0207, 0x01ba, 0x0176, 0x013f, 0x0120,
+ 0x0114, 0x0106, 0x00ef, 0x00db, 0x00c8, 0x00b0,
+ 0x00a0, 0x00a0, 0x00a0, 0x009c, 0x00a4, 0x00bd,
+ 0x00df, 0x00fc, 0x0110, 0x0125, 0x012a, 0x011a,
+ 0x0111, 0x0105, 0x00e4, 0x00c6, 0x00b0, 0x008f,
+ 0x0078, 0x0074, 0x0072, 0x0076, 0x0081, 0x0081,
+ 0x0069, 0x0043, 0x001f, 0x0004, 0xffee, 0xffdb,
+ 0xffd6, 0xffe4, 0xfffc, 0x001a, 0x0042, 0x0066,
+ 0x0077, 0x006f, 0x004e, 0x0023, 0x0001, 0xffed,
+ 0xffe9, 0xfff4, 0x0000, 0x0008, 0x000e, 0x000f,
+ 0x000f, 0xffff, 0xffd6, 0xffb6, 0xffa3, 0xff84,
+ 0xff69, 0xff64, 0xff6e, 0xff86, 0xff9e, 0xffa7,
+ 0xffa8, 0xffa1, 0xff9e, 0xffaf, 0xffbc, 0xffb8,
+ 0xffb4, 0xffac, 0xffa1, 0xff9f, 0xffa6, 0xffb2,
+ 0xffd0, 0x0003, 0x0043, 0x0082, 0x00c1, 0x00fe,
+ 0x0139, 0x0178, 0x01ab, 0x01d4, 0x0213, 0x0267,
+ 0x02b3, 0x02f3, 0x0321, 0x0339, 0x0340, 0x032a,
+ 0x0305, 0x02ea, 0x02ce, 0x02b2, 0x02ac, 0x02ab,
+ 0x02a8, 0x02b5, 0x02cb, 0x02ec, 0x031e, 0x0352,
+ 0x0389, 0x03ca, 0x03fb, 0x040a, 0x03f7, 0x03cc,
+ 0x03a9, 0x03a1, 0x03a4, 0x03b6, 0x03e3, 0x041b,
+ 0x0452, 0x0485, 0x04ab, 0x04c5, 0x04db, 0x04e8,
+ 0x04e7, 0x04e1, 0x04d2, 0x04bb, 0x04a7, 0x0497,
+ 0x0480, 0x0456, 0x0416, 0x03cf, 0x0384, 0x0328,
+ 0x02cb, 0x027d, 0x0239, 0x0210, 0x0208, 0x0202,
+ 0x01f9, 0x01f5, 0x01e2, 0x01c6, 0x01b0, 0x019b,
+ 0x018f, 0x0194, 0x01ac, 0x01dc, 0x0210, 0x0234,
+ 0x0251, 0x026e, 0x028b, 0x02a7, 0x02bf, 0x02d6,
+ 0x02f1, 0x0318, 0x0341, 0x0353, 0x035d, 0x037b,
+ 0x0389, 0x0380, 0x038b, 0x039f, 0x03ad, 0x03c7,
+ 0x03cd, 0x03ad, 0x037f, 0x0336, 0x02d8, 0x0297,
+ 0x0265, 0x022c, 0x01ff, 0x01c9, 0x0173, 0x0116,
+ 0x00bb, 0x0062, 0x0025, 0x0005, 0xfff1, 0xffdb,
+ 0xffc7, 0xffbd, 0xffc2, 0xffcb, 0xffd7, 0xffe3,
+ 0xffe2, 0xffdc, 0xffe1, 0xffea, 0xfff6, 0x0003,
+ 0xfffc, 0xffe2, 0xffc9, 0xffaf, 0xffa9, 0xffc7,
+ 0xfff8, 0x002c, 0x005a, 0x006a, 0x006d, 0x0072,
+ 0x0072, 0x007b, 0x0087, 0x0081, 0x007c, 0x0072,
+ 0x005a, 0x005f, 0x0085, 0x00b3, 0x00f8, 0x014d,
+ 0x019f, 0x0200, 0x0269, 0x02be, 0x0301, 0x0333,
+ 0x035e, 0x038e, 0x03b5, 0x03dc, 0x041e, 0x0469,
+ 0x04b1, 0x04f6, 0x052c, 0x0552, 0x0573, 0x0588,
+ 0x0598, 0x05b5, 0x05e2, 0x0619, 0x065d, 0x06a2,
+ 0x06da, 0x06ff, 0x0716, 0x072a, 0x074c, 0x0778,
+ 0x07a4, 0x07d3, 0x07ff, 0x0812, 0x080a, 0x07ef,
+ 0x07c1, 0x0785, 0x0743, 0x0708, 0x06e5, 0x06de,
+ 0x06de, 0x06d3, 0x06ad, 0x066d, 0x0624, 0x05dc,
+ 0x0598, 0x0576, 0x057c, 0x058b, 0x059c, 0x05b4,
+ 0x05d0, 0x05fb, 0x063e, 0x067e, 0x06b2, 0x06dc,
+ 0x06ef, 0x06f5, 0x0700, 0x0703, 0x06f9, 0x06ef,
+ 0x06de, 0x06c3, 0x06ab, 0x0697, 0x0686, 0x0688,
+ 0x0698, 0x06a2, 0x06ae, 0x06cd, 0x06f1, 0x070a,
+ 0x071f, 0x073b, 0x0750, 0x074a, 0x0741, 0x074c,
+ 0x0750, 0x073d, 0x0724, 0x06fb, 0x06be, 0x0679,
+ 0x061a, 0x05a4, 0x053a, 0x04d6, 0x0471, 0x0425,
+ 0x03f1, 0x03c4, 0x039f, 0x037b, 0x0350, 0x031b,
+ 0x02da, 0x028c, 0x022e, 0x01bf, 0x0140, 0x00b4,
+ 0x0032, 0xffc6, 0xff63, 0xff0f, 0xfebd, 0xfe57,
+ 0xfdeb, 0xfd85, 0xfd28, 0xfce3, 0xfcaf, 0xfc82,
+ 0xfc6b, 0xfc5d, 0xfc5f, 0xfc83, 0xfcb3, 0xfcdf,
+ 0xfd0e, 0xfd21, 0xfd0c, 0xfceb, 0xfcba, 0xfc81,
+ 0xfc55, 0xfc27, 0xfbf6, 0xfbdf, 0xfbd3, 0xfbbb,
+ 0xfb98, 0xfb67, 0xfb28, 0xfae1, 0xfa9e, 0xfa7f,
+ 0xfa83, 0xfa85, 0xfa83, 0xfa83, 0xfa69, 0xfa2e,
+ 0xf9ee, 0xf9bc, 0xf9a0, 0xf999, 0xf9aa, 0xf9cf,
+ 0xf9fd, 0xfa21, 0xfa17, 0xf9bc, 0xf923, 0xf874,
+ 0xf7d7, 0xf78b, 0xf7b2, 0xf83c, 0xf90d, 0xf9ed,
+ 0xfa93, 0xfae2, 0xfadb, 0xfa97, 0xfa42, 0xf9fc,
+ 0xf9d7, 0xf9e9, 0xfa32, 0xfaa4, 0xfb30, 0xfbbb,
+ 0xfc33, 0xfc8a, 0xfcb9, 0xfccf, 0xfcd3, 0xfcce,
+ 0xfcce, 0xfcc2, 0xfc9d, 0xfc83, 0xfc95, 0xfcd1,
+ 0xfd39, 0xfdc8, 0xfe5c, 0xfed0, 0xfef8, 0xfec2,
+ 0xfe54, 0xfdd1, 0xfd47, 0xfcd6, 0xfc99, 0xfc8e,
+ 0xfcb9, 0xfd07, 0xfd5f, 0xfdc2, 0xfe18, 0xfe45,
+ 0xfe64, 0xfe85, 0xfe9b, 0xfea2, 0xfe94, 0xfe6b,
+ 0xfe3a, 0xfe0d, 0xfdf6, 0xfe0d, 0xfe5a, 0xfee9,
+ 0xff96, 0x0017, 0x005c, 0x005e, 0x0004, 0xff77,
+ 0xfedc, 0xfe44, 0xfddf, 0xfdc3, 0xfdd4, 0xfe0c,
+ 0xfe57, 0xfe8f, 0xfeb4, 0xfec8, 0xfec8, 0xfec3,
+ 0xfebe, 0xfeb6, 0xfea6, 0xfe99, 0xfea2, 0xfeb5,
+ 0xfed0, 0xff05, 0xff34, 0xff52, 0xff74, 0xff75,
+ 0xff4b, 0xff19, 0xfed6, 0xfe7b, 0xfe24, 0xfdd0,
+ 0xfd8e, 0xfd75, 0xfd7d, 0xfda3, 0xfde0, 0xfe1d,
+ 0xfe50, 0xfe6a, 0xfe63, 0xfe4e, 0xfe25, 0xfdde,
+ 0xfd8d, 0xfd45, 0xfd15, 0xfd05, 0xfd09, 0xfd2c,
+ 0xfd6e, 0xfda1, 0xfdb0, 0xfdac, 0xfd8b, 0xfd42,
+ 0xfcee, 0xfcab, 0xfc86, 0xfc85, 0xfca2, 0xfcd6,
+ 0xfd1a, 0xfd5c, 0xfd8a, 0xfdb0, 0xfdd9, 0xfdf5,
+ 0xfe0a, 0xfe28, 0xfe3d, 0xfe40, 0xfe42, 0xfe43,
+ 0xfe4b, 0xfe64, 0xfe8a, 0xfebe, 0xfee7, 0xfef0,
+ 0xfeed, 0xfee1, 0xfec9, 0xfec2, 0xfed3, 0xfeee,
+ 0xff1e, 0xff58, 0xff80, 0xff97, 0xffa6, 0xffae,
+ 0xffb8, 0xffce, 0xfff3, 0x000d, 0x0012, 0x000e,
+ 0x0001, 0xffdd, 0xffaa, 0xff87, 0xff76, 0xff5c,
+ 0xff36, 0xff14, 0xfef0, 0xfec5, 0xfe9c, 0xfe72,
+ 0xfe4d, 0xfe2e, 0xfdfd, 0xfdbe, 0xfd83, 0xfd42,
+ 0xfcf8, 0xfca5, 0xfc42, 0xfbdf, 0xfb89, 0xfb39,
+ 0xfae0, 0xfa6f, 0xf9e9, 0xf958, 0xf8b8, 0xf821,
+ 0xf7b0, 0xf763, 0xf72b, 0xf6fb, 0xf6c5, 0xf673,
+ 0xf607, 0xf59e, 0xf548, 0xf511, 0xf515, 0xf547,
+ 0xf583, 0xf5c1, 0xf5e2, 0xf5d4, 0xf5b8, 0xf591,
+ 0xf557, 0xf52d, 0xf519, 0xf519, 0xf53c, 0xf57a,
+ 0xf5bb, 0xf5e5, 0xf5f1, 0xf5f2, 0xf5d3, 0xf58b,
+ 0xf543, 0xf506, 0xf4c9, 0xf4a2, 0xf486, 0xf464,
+ 0xf455, 0xf464, 0xf481, 0xf4a8, 0xf4cf, 0xf4e4,
+ 0xf4e6, 0xf4e6, 0xf4e4, 0xf4e4, 0xf508, 0xf55a,
+ 0xf5c5, 0xf641, 0xf6c3, 0xf730, 0xf788, 0xf7d4,
+ 0xf823, 0xf88f, 0xf914, 0xf99a, 0xfa1c, 0xfa92,
+ 0xfaed, 0xfb20, 0xfb39, 0xfb4d, 0xfb54, 0xfb5d,
+ 0xfb93, 0xfbec, 0xfc56, 0xfcd9, 0xfd5f, 0xfdd1,
+ 0xfe24, 0xfe44, 0xfe32, 0xfe0a, 0xfdd6, 0xfd9c,
+ 0xfd76, 0xfd78, 0xfda1, 0xfdd8, 0xfe1b, 0xfe58,
+ 0xfe65, 0xfe59, 0xfe42, 0xfe10, 0xfddf, 0xfdb7,
+ 0xfd95, 0xfd97, 0xfdc0, 0xfdfa, 0xfe40, 0xfe83,
+ 0xfec9, 0xff17, 0xff4f, 0xff89, 0xffcb, 0xfffd,
+ 0x0031, 0x0065, 0x0081, 0x0092, 0x00b5, 0x00d0,
+ 0x00e0, 0x010e, 0x0148, 0x0183, 0x01c2, 0x01ee,
+ 0x0205, 0x0201, 0x01ef, 0x01dd, 0x01cc, 0x01b7,
+ 0x019e, 0x0182, 0x0165, 0x0149, 0x0125, 0x00f4,
+ 0x00be, 0x0084, 0x004d, 0x002e, 0x0021, 0x0029,
+ 0x004d, 0x0059, 0x0050, 0x003f, 0x0028, 0x001d,
+ 0x0001, 0xfff3, 0x0000, 0x000e, 0x0020, 0x002e,
+ 0x0042, 0x002f, 0x0012, 0xfff5, 0xffa5, 0xff81,
+ 0xff77, 0xff54, 0xff4b, 0xff4f, 0xff57, 0xff69,
+ 0xff74, 0xff6e, 0xff6a, 0xff5b, 0xff67, 0xff9b,
+ 0xffc1, 0x0005, 0x0035, 0x005a, 0x0097, 0x00ac,
+ 0x00df, 0x0133, 0x0186, 0x01b4, 0x01a9, 0x01b7,
+ 0x01c7, 0x01d8, 0x020d, 0x025a, 0x028a, 0x0294,
+ 0x02c7, 0x02f8, 0x02fc, 0x02ed, 0x02d3, 0x02b5,
+ 0x02a8, 0x02a9, 0x02b0, 0x02b2, 0x029c, 0x0267,
+ 0x020b, 0x01f7, 0x01fa, 0x01c7, 0x01ab, 0x014b,
+ 0x013b, 0x0136, 0x011a, 0x0185, 0x013e, 0x00de,
+ 0x00c6, 0x00b5, 0x00d9, 0x00b5, 0x0120, 0x011a,
+ 0x00ca, 0x00ce, 0x001e, 0x003b, 0x008d, 0x0031,
+ 0x0050, 0x0058, 0xffea, 0xffcd, 0xffbd, 0xff8e,
+ 0x0008, 0xffa8, 0xff5c, 0x0021, 0xffec, 0x005d,
+ 0x00bc, 0x004d, 0x0055, 0x0011, 0x0025, 0xfff9,
+ 0x002d, 0x0066, 0xffb3, 0xffdb, 0xffbb, 0x0010,
+ 0x011e, 0x0153, 0x0186, 0x0165, 0x0176, 0x0220,
+ 0x0278, 0x0264, 0x0276, 0x0283, 0x023b, 0x0275,
+ 0x0282, 0x0243, 0x026f, 0x02ef, 0x02e4, 0x0213,
+ 0x02a0, 0x030c, 0x0288, 0x0295, 0x0235, 0x0293,
+ 0x02d6, 0x021b, 0x024d, 0x0235, 0x01ce, 0x0201,
+ 0x0215, 0x0243, 0x0261, 0x0200, 0x01bd, 0x0206,
+ 0x0249, 0x01f0, 0x01a7, 0x021a, 0x01b4, 0x00fa,
+ 0x01f7, 0x02e1, 0x02e2, 0x02d1, 0x02f4, 0x0369,
+ 0x0325, 0x02d3, 0x03a7, 0x03d8, 0x0276, 0x020d,
+ 0x0324, 0x03c3, 0x0421, 0x0417, 0x0377, 0x0329,
+ 0x0363, 0x03a4, 0x03b6, 0x03f5, 0x0352, 0x02be,
+ 0x0278, 0x01fc, 0x0371, 0x042f, 0x03cf, 0x0409,
+ 0x0304, 0x028d, 0x031d, 0x03cf, 0x0441, 0x03f9,
+ 0x03bc, 0x033a, 0x02d6, 0x022f, 0x02ab, 0x03e9,
+ 0x03ac, 0x03a8, 0x0333, 0x030e, 0x031e, 0x0303,
+ 0x03ca, 0x02f9, 0x02e3, 0x030b, 0x02a9, 0x0310,
+ 0x01ca, 0x01d7, 0x021e, 0x0220, 0x0380, 0x0337,
+ 0x02fb, 0x0229, 0x01a2, 0x0273, 0x0261, 0x0207,
+ 0x008f, 0x0045, 0x0077, 0x0017, 0x01d2, 0x02b0,
+ 0x01d2, 0x005d, 0xff5d, 0xffaa, 0x00ae, 0x0182,
+ 0x00c5, 0xff28, 0xfcfb, 0xfdf4, 0x004f, 0xff8f,
+ 0x00e5, 0x012f, 0xfe78, 0xfe3d, 0xff14, 0xffdb,
+ 0xffb9, 0x0010, 0x0146, 0x001e, 0xfe71, 0xfeed,
+ 0x0093, 0xff3b, 0xfe07, 0x00d8, 0x0115, 0x0049,
+ 0x0143, 0x005f, 0x0052, 0x010a, 0x017a, 0x0272,
+ 0x0230, 0x027b, 0x0231, 0x011b, 0x0220, 0x026c,
+ 0x01f8, 0x01a1, 0x0168, 0x01ad, 0x0076, 0x01b2,
+ 0x04c7, 0x0444, 0x03a4, 0x03f7, 0x0336, 0x037e,
+ 0x044e, 0x0477, 0x0529, 0x04b6, 0x03c2, 0x0460,
+ 0x04c4, 0x058c, 0x05b8, 0x052d, 0x054c, 0x041e,
+ 0x0369, 0x034d, 0x03d0, 0x0430, 0x0398, 0x04bd,
+ 0x03ae, 0x029a, 0x0338, 0x0304, 0x05c0, 0x06d3,
+ 0x06e6, 0x05e6, 0x019b, 0x02b3, 0x03a1, 0x0335,
+ 0x05ca, 0x0428, 0x0289, 0x0324, 0x02e5, 0x0559,
+ 0x07c6, 0x0710, 0x0602, 0x0430, 0x02ab, 0x0521,
+ 0x0604, 0x04cc, 0x064d, 0x0568, 0x0411, 0x0670,
+ 0x07dc, 0x06fc, 0x05a9, 0x0499, 0x03d9, 0x03b1,
+ 0x026b, 0x028e, 0x0470, 0x0257, 0x01ed, 0x035e,
+ 0x02d0, 0x042f, 0x036d, 0x025a, 0x02ae, 0x0169,
+ 0x0176, 0x00c4, 0x0115, 0x0198, 0x00d6, 0x02c4,
+ 0x0252, 0x01e4, 0x01dc, 0xfefd, 0x0050, 0x0130,
+ 0xfef0, 0xfecd, 0xfebd, 0xfe29, 0xfe19, 0xfef2,
+ 0x00ca, 0x02d0, 0x0110, 0xfe2f, 0xff8a, 0xfe7f,
+ 0xfdb1, 0xffdc, 0xfd3f, 0xfa8b, 0xfaf1, 0xfb81,
+ 0xfe7a, 0x0138, 0xff82, 0xfe39, 0xfd50, 0xfb24,
+ 0xfdea, 0xfe89, 0xfd07, 0xfe76, 0xfa22, 0xf928,
+ 0xfce5, 0xfdfe, 0x00ef, 0xffc7, 0xfd90, 0xfcbf,
+ 0xfa9c, 0xfc1b, 0xfc35, 0xfba8, 0xfc9e, 0xfbeb,
+ 0xfb2a, 0xfa90, 0xfb9e, 0xfc60, 0xfceb, 0xfe6a,
+ 0xfe3f, 0xfe58, 0xfd4a, 0xfc48, 0xfdc9, 0xfe07,
+ 0xfe70, 0xff1e, 0xfe07, 0xfe6c, 0xfee3, 0xfe0b,
+ 0x00ae, 0x01dd, 0xfe17, 0xfd4d, 0xfd8b, 0xfc51,
+ 0xfc22, 0xfc2d, 0xfdb2, 0xfd4d, 0xfc3d, 0xfe24,
+ 0xfe85, 0xff2a, 0xfff1, 0xff93, 0xffc4, 0xfe3d,
+ 0xfee1, 0xff5e, 0xfe2a, 0x0144, 0x0026, 0xfc96,
+ 0xff38, 0x0031, 0xfd60, 0xfbca, 0xfe33, 0x001d,
+ 0xff40, 0x0051, 0x010e, 0xffe8, 0xfc2d, 0xfbda,
+ 0x0063, 0xff3d, 0x0012, 0x0225, 0xfce1, 0xfa42,
+ 0xfbe7, 0xfe8e, 0x00be, 0xffdf, 0xfd4d, 0xfbac,
+ 0xfc63, 0xff3d, 0x02d3, 0x0164, 0xff55, 0xff4c,
+ 0xfc93, 0xfcde, 0xfe49, 0xff02, 0xfe8d, 0xfc87,
+ 0xfd8e, 0xfe2d, 0x007a, 0x00ae, 0xfe62, 0xfe76,
+ 0xfbdd, 0xfd61, 0xfed7, 0xfdb8, 0xfebf, 0xfcd8,
+ 0xfee6, 0x00e9, 0xffef, 0x0068, 0xff5c, 0xff74,
+ 0xff0e, 0x0098, 0x0184, 0xfe35, 0xfd12, 0xfc84,
+ 0xfcc1, 0xfd66, 0xff13, 0x01d5, 0x0249, 0x0084,
+ 0xfd3d, 0xfe12, 0xfebe, 0xfeef, 0x01c7, 0xff95,
+ 0xfdd5, 0xfd51, 0xfc3c, 0xfe81, 0x000a, 0x00d0,
+ 0x00de, 0xffde, 0xfdf6, 0xfda8, 0x001c, 0x0117,
+ 0x0243, 0x0018, 0xfaaa, 0xfb41, 0xff01, 0xfe4c,
+ 0xfbea, 0xfd3a, 0xfe62, 0xfdb8, 0xfdff, 0x006c,
+ 0x0312, 0xff76, 0xfc11, 0xff16, 0xff49, 0xfd0e,
+ 0xfeb9, 0xffff, 0xfe6c, 0xfcd1, 0xfda1, 0x00a0,
+ 0x0137, 0x0160, 0x0042, 0xfe46, 0x00cf, 0xff28,
+ 0xff12, 0x02f1, 0x0104, 0x0193, 0x00d4, 0x0153,
+ 0x04f6, 0x00e2, 0x0082, 0x0444, 0x03f9, 0x0193,
+ 0x006a, 0x0210, 0x013f, 0x0099, 0x0135, 0x012e,
+ 0x023d, 0x02ec, 0x003a, 0xfd87, 0xff34, 0xfee3,
+ 0x0191, 0x02ff, 0xfe0f, 0xfeba, 0xfc66, 0xfc54,
+ 0xff2d, 0xfc27, 0xfda9, 0xfd7f, 0xfda6, 0xfd81,
+ 0xfd57, 0x00d3, 0xfd77, 0xffc6, 0xff37, 0xf925,
+ 0xfe54, 0xfd85, 0xfa7b, 0xfba3, 0xf8da, 0xf9d3,
+ 0xfc80, 0xfb0b, 0xfb71, 0xfbc9, 0xf646, 0xf67e,
+ 0xf7e4, 0xf6de, 0xfc6a, 0xfc38, 0xfb84, 0xfd3a,
+ 0xfa87, 0xf850, 0xf6dc, 0xfc19, 0xfc5b, 0xf618,
+ 0xf5d7, 0xf597, 0xf798, 0xf8e7, 0xfa07, 0xfb75,
+ 0xf76e, 0xf797, 0xfb06, 0xfb70, 0xf9c4, 0xfa06,
+ 0xfb59, 0xf8ba, 0xf73c, 0xf83c, 0xf9e7, 0xf9ba,
+ 0xf6a5, 0xf459, 0xf4c6, 0xf8ed, 0xfb79, 0xf9cf,
+ 0xf74f, 0xf71c, 0xf7da, 0xf7d1, 0xf8d0, 0xf75f,
+ 0xf751, 0xf9f8, 0xfa75, 0xfada, 0xfa6e, 0xf9d5,
+ 0xf9f0, 0xfa0d, 0xf8ac, 0xfa93, 0xfdd7, 0xfa94,
+ 0xfb7a, 0xfa55, 0xf673, 0xf9f5, 0xf7a0, 0xf7ad,
+ 0xfbec, 0xf8ea, 0xf8f5, 0xfa04, 0xf68c, 0xf6c8,
+ 0xf8bc, 0xf815, 0xfb09, 0xf9e9, 0xf758, 0xf9f0,
+ 0xf7a4, 0xfbeb, 0xfea3, 0xfab6, 0xfc21, 0xf89d,
+ 0xfa3e, 0xfae5, 0xf788, 0xfa7c, 0xf6e7, 0xf6fa,
+ 0xf839, 0xf6c5, 0xf7f9, 0xf698, 0xf8e8, 0xf2e4,
+ 0xe5df, 0xdad4, 0xcf32, 0xcd55, 0xd38b, 0xe2dd,
+ 0xfc1b, 0x0fa3, 0x14c1, 0x1421, 0x0ec5, 0x048d,
+ 0x00a0, 0xf9d1, 0xf543, 0xf45d, 0xec3c, 0xe763,
+ 0xdf71, 0xdc51, 0xdf01, 0xe368, 0xf6aa, 0x0668,
+ 0x1421, 0x1812, 0x0b1c, 0x02ea, 0xed9b, 0xdc2d,
+ 0xe434, 0xe7a2, 0xe9e7, 0xf6b1, 0x0346, 0x0acd,
+ 0x08b5, 0x01a8, 0x025f, 0xfbb3, 0xed9e, 0xefa6,
+ 0xf3d5, 0xf2b1, 0xf4e8, 0xf760, 0xf76e, 0xf88c,
+ 0x01ef, 0x085c, 0x0ad3, 0x0cfa, 0x0936, 0x07eb,
+ 0x05a3, 0x03b3, 0x0419, 0x0170, 0x041c, 0x070c,
+ 0x04ce, 0x04dd, 0x08b6, 0x0aca, 0x0838, 0x06b2,
+ 0x09b3, 0x09f1, 0x0747, 0x0ad7, 0x0a9b, 0x0907,
+ 0x0cf8, 0x0b66, 0x0d82, 0x0ee6, 0x0c5c, 0x0fc0,
+ 0x1124, 0x1229, 0x10d9, 0x0e7f, 0x0f7a, 0x1196,
+ 0x13d8, 0x10bb, 0x0fec, 0x1000, 0x10cf, 0x163e,
+ 0x16e5, 0x1584, 0x1559, 0x1740, 0x13a8, 0x1169,
+ 0x1958, 0x1c2b, 0x2006, 0x204c, 0x1a7a, 0x1908,
+ 0x1583, 0x1569, 0x1699, 0x15f8, 0x167b, 0x1d2e,
+ 0x2277, 0x19ec, 0x1a95, 0x2314, 0x2b87, 0x33ff,
+ 0x3366, 0x3792, 0x3734, 0x313a, 0x30a6, 0x2ec0,
+ 0x2f6c, 0x3183, 0x39b4, 0x3f6d, 0x3a8e, 0x37b5,
+ 0x3732, 0x348b, 0x2eb5, 0x3084, 0x33e8, 0x3402,
+ 0x370a, 0x3230, 0x2d6c, 0x2947, 0x282e, 0x2e13,
+ 0x2bcd, 0x28d3, 0x236a, 0x1783, 0x0a10, 0x0239,
+ 0x06d6, 0x0b0d, 0x16a8, 0x2383, 0x1e38, 0x179d,
+ 0x14e3, 0x1068, 0x0f0a, 0x0cf2, 0x0404, 0xfd7b,
+ 0xf912, 0xf223, 0xf1ad, 0xf216, 0xf088, 0xef5c,
+ 0xef53, 0xeea2, 0xeb3e, 0xf123, 0xf281, 0xe834,
+ 0xdf93, 0xd8c5, 0xd685, 0xcf8c, 0xc763, 0xc0e6,
+ 0xb82d, 0xbdd8, 0xc1d6, 0xbd69, 0xc42b, 0xc60c,
+ 0xc1a1, 0xc2e6, 0xbf8c, 0xc59d, 0xcf1a, 0xcb26,
+ 0xd318, 0xd06f, 0xc3f9, 0xca27, 0xbf0c, 0xbba0,
+ 0xcb4f, 0xc89c, 0xc8e6, 0xca23, 0xc92b, 0xce1d,
+ 0xca22, 0xca3f, 0xd492, 0xd2ec, 0xcbc8, 0xd5e0,
+ 0xdb12, 0xd65d, 0xdce8, 0xdec3, 0xde33, 0xe052,
+ 0xd9e3, 0xd861, 0xd78b, 0xcf75, 0xda67, 0xe35f,
+ 0xd49b, 0xdc68, 0xdf77, 0xd0ca, 0xdff2, 0xde2e,
+ 0xd0f0, 0xda21, 0xd8c3, 0xd72e, 0xd15a, 0xcd36,
+ 0xdbe1, 0xe1ce, 0xe95f, 0xf4b4, 0xef12, 0xe7ec,
+ 0xe57f, 0xe55b, 0xe929, 0xdfd4, 0xd6de, 0xe341,
+ 0xe2b4, 0xd900, 0xe306, 0xe7ad, 0xe2b7, 0xe47f,
+ 0xe743, 0xed2a, 0xf7a5, 0xf477, 0xeae5, 0xeecc,
+ 0xe89f, 0xd90f, 0xd487, 0xd0ad, 0xd3fe, 0xd7dd,
+ 0xd2b5, 0xd17c, 0xcd5f, 0xcf08, 0xd7d5, 0xd252,
+ 0xd141, 0xde90, 0xdf5c, 0xd2dc, 0xcf8b, 0xd666,
+ 0xd741, 0xd7da, 0xe0c6, 0xdfb4, 0xdaa4, 0xe45a,
+ 0xe824, 0xe2a5, 0xe73c, 0xecdc, 0xec75, 0xecf6,
+ 0xef6e, 0xf0b4, 0xf085, 0xf058, 0xeb01, 0xe78c,
+ 0xeec1, 0xef2c, 0xe63e, 0xe7a3, 0xeb66, 0xe59c,
+ 0xe5e2, 0xeb5d, 0xe934, 0xeac3, 0xf21b, 0xf2b0,
+ 0xf20b, 0xf351, 0xef27, 0xec4a, 0xec34, 0xea42,
+ 0xefdf, 0xf409, 0xec34, 0xeea4, 0xfd07, 0xfd2b,
+ 0xf683, 0xf905, 0xf403, 0xf16c, 0x03db, 0x0b6b,
+ 0x02f2, 0x0512, 0x078f, 0x0313, 0x0159, 0xfeb8,
+ 0x00f9, 0x0e53, 0x136e, 0x109c, 0x149b, 0x0f70,
+ 0x02e3, 0x0761, 0x1243, 0x140a, 0x17a9, 0x1ed3,
+ 0x209c, 0x2146, 0x23e2, 0x22b7, 0x1c20, 0x16c7,
+ 0x1a15, 0x1e66, 0x1d48, 0x2351, 0x2eb0, 0x2dc7,
+ 0x2781, 0x2618, 0x1f1f, 0x1754, 0x197d, 0x1b42,
+ 0x1988, 0x1904, 0x169e, 0x16b5, 0x1984, 0x1598,
+ 0x1210, 0x1485, 0x11ee, 0x0bc2, 0x073d, 0x0473,
+ 0x0c62, 0x157d, 0x1044, 0x0ef5, 0x1228, 0x03ae,
+ 0xfadd, 0x06d2, 0x06d6, 0x0100, 0x0e73, 0x182b,
+ 0x14c3, 0x184f, 0x1da8, 0x1ff3, 0x23b4, 0x20cb,
+ 0x2367, 0x30fe, 0x2d39, 0x262d, 0x372f, 0x3ca2,
+ 0x2d8f, 0x30be, 0x3547, 0x28a7, 0x2cf2, 0x3717,
+ 0x2d50, 0x3136, 0x3e5b, 0x2d7e, 0x21c7, 0x35d9,
+ 0x3a21, 0x2beb, 0x3121, 0x34df, 0x24ba, 0x1fac,
+ 0x2787, 0x25e1, 0x2571, 0x2fce, 0x3699, 0x34fd,
+ 0x2fce, 0x2a69, 0x2935, 0x2811, 0x2451, 0x27ac,
+ 0x2d15, 0x2790, 0x25ac, 0x30ef, 0x3352, 0x28f9,
+ 0x24c8, 0x2229, 0x19c9, 0x1a53, 0x2215, 0x213a,
+ 0x2132, 0x2b77, 0x2f1d, 0x27dd, 0x27c1, 0x2d51,
+ 0x2945, 0x22a0, 0x2526, 0x2794, 0x239a, 0x2278,
+ 0x2534, 0x2544, 0x24bd, 0x26f7, 0x2bb2, 0x2fdd,
+ 0x2d8b, 0x2ae3, 0x2f7d, 0x2d01, 0x2329, 0x2915,
+ 0x323b, 0x29ae, 0x296b, 0x35bb, 0x2da0, 0x22ba,
+ 0x2f42, 0x3299, 0x2614, 0x29d1, 0x2d24, 0x1f65,
+ 0x211e, 0x2f6a, 0x2b79, 0x25e5, 0x2aad, 0x22c6,
+ 0x15a6, 0x18f8, 0x210b, 0x22ed, 0x237a, 0x2318,
+ 0x22c4, 0x1f28, 0x1493, 0x1452, 0x2238, 0x2104,
+ 0x11a9, 0x129a, 0x1813, 0x0d6e, 0x0c4a, 0x1b27,
+ 0x1a26, 0x10ea, 0x1518, 0x1112, 0x03a9, 0x0a09,
+ 0x142e, 0x0cf2, 0x0cc4, 0x1544, 0x0f90, 0x0b93,
+ 0x1548, 0x15c0, 0x0e1d, 0x0e8a, 0x0bd5, 0x02fa,
+ 0x020a, 0x05a2, 0x083d, 0x09e4, 0x0405, 0x004b,
+ 0x0712, 0x03c1, 0xfa3b, 0x045b, 0x0d8a, 0x01b2,
+ 0xfe5d, 0x07b2, 0x0152, 0xf772, 0xfdc2, 0xfe5b,
+ 0xf3cf, 0xf86c, 0x01e2, 0xf830, 0xf3b0, 0x00ae,
+ 0xfed6, 0xf238, 0xf653, 0xfb7c, 0xf529, 0xf1a5,
+ 0xf13d, 0xf256, 0xf604, 0xf4a4, 0xf492, 0xf8dd,
+ 0xf3d1, 0xedb2, 0xf34a, 0xf673, 0xf262, 0xf5c5,
+ 0xff03, 0xfbe9, 0xeda7, 0xeaaf, 0xf0dd, 0xec52,
+ 0xe4ee, 0xe4b1, 0xe793, 0xf069, 0xf077, 0xe1a7,
+ 0xe630, 0xf53c, 0xe6bd, 0xd624, 0xe15d, 0xeb2d,
+ 0xe4e1, 0xdcf9, 0xda69, 0xdbc0, 0xda3a, 0xd7c0,
+ 0xdaa5, 0xdd7d, 0xdf1e, 0xdea9, 0xd8d2, 0xd6dc,
+ 0xd88a, 0xdbb4, 0xe659, 0xe3a9, 0xd426, 0xdea5,
+ 0xedc9, 0xde74, 0xd57b, 0xe0db, 0xdfea, 0xd4b1,
+ 0xd0bd, 0xd5c2, 0xdda5, 0xde08, 0xd8ff, 0xd154,
+ 0xc8c7, 0xcdba, 0xd5d9, 0xd2c8, 0xd7eb, 0xe022,
+ 0xdbb4, 0xda74, 0xd6ea, 0xcf46, 0xda06, 0xdf14,
+ 0xcd7e, 0xc858, 0xcfb8, 0xd019, 0xd1d4, 0xd4f4,
+ 0xd7b0, 0xdb9c, 0xdb94, 0xdc9e, 0xdb48, 0xd745,
+ 0xde50, 0xdbe8, 0xc999, 0xc9f6, 0xd122, 0xcefe,
+ 0xd89c, 0xda42, 0xcbb2, 0xcfec, 0xd623, 0xc8fc,
+ 0xc549, 0xd10a, 0xd961, 0xd3e5, 0xc719, 0xcad8,
+ 0xd682, 0xd688, 0xdb92, 0xe205, 0xe042, 0xe603,
+ 0xe27e, 0xd1d9, 0xd3c6, 0xd8a4, 0xd32f, 0xd632,
+ 0xd422, 0xd0c8, 0xdd86, 0xde67, 0xd3cd, 0xd67a,
+ 0xd7f5, 0xd44c, 0xd166, 0xcbb0, 0xd158, 0xdb1e,
+ 0xd966, 0xdc6f, 0xe03b, 0xdbeb, 0xdb6d, 0xd629,
+ 0xd053, 0xd50a, 0xd183, 0xd0f5, 0xdb21, 0xd21c,
+ 0xccee, 0xdd6e, 0xd9da, 0xd095, 0xde93, 0xe012,
+ 0xd131, 0xd15d, 0xd927, 0xd486, 0xca7a, 0xd26c,
+ 0xdd0a, 0xcb59, 0xc33e, 0xd72d, 0xd656, 0xcfca,
+ 0xdddd, 0xda3f, 0xd1db, 0xdbd2, 0xd496, 0xc935,
+ 0xd714, 0xe27b, 0xdfbd, 0xdbc3, 0xdebd, 0xe9c8,
+ 0xe8f1, 0xe072, 0xe351, 0xe15f, 0xdd81, 0xdf5a,
+ 0xd293, 0xd039, 0xe75d, 0xe9dc, 0xdc56, 0xded8,
+ 0xe2a6, 0xe1fd, 0xe01d, 0xdcd9, 0xe4ff, 0xed5a,
+ 0xeb6b, 0xe998, 0xe0d7, 0xdc09, 0xe7f4, 0xe7ed,
+ 0xe108, 0xebf2, 0xf2f2, 0xec71, 0xe6ab, 0xe813,
+ 0xf043, 0xebd8, 0xe69f, 0xf8a3, 0xf5dc, 0xdfc4,
+ 0xef00, 0xf81f, 0xe27c, 0xef6b, 0x059f, 0xf494,
+ 0xec67, 0xf9e8, 0xf94b, 0xf2b6, 0xf7ac, 0xff8a,
+ 0xfa9d, 0xf29d, 0xf9d8, 0xf9ea, 0xef42, 0xf7a5,
+ 0xfc40, 0xee64, 0xedc3, 0xf07c, 0xeec7, 0xfb18,
+ 0xfbd9, 0xeacd, 0xec24, 0xf7a9, 0xf264, 0xe557,
+ 0xeac4, 0xff11, 0xfbc4, 0xedf8, 0xfcbb, 0x05bf,
+ 0xfd58, 0x06fd, 0x06dd, 0xf502, 0xf993, 0x0056,
+ 0xfaa5, 0xfb5c, 0xf8a4, 0xfbfd, 0x01df, 0xec49,
+ 0xe629, 0x02be, 0x03ea, 0xf317, 0xf9f2, 0x016a,
+ 0x0143, 0x0200, 0xf995, 0xf247, 0xf79d, 0xfbdb,
+ 0xf39a, 0xeef1, 0xfe4b, 0x012f, 0xec83, 0xef8d,
+ 0xf937, 0xe6ae, 0xe886, 0xfe2b, 0xf8e0, 0xf67c,
+ 0x0271, 0xfbf2, 0xf327, 0xfaa2, 0x04d1, 0x0318,
+ 0xf991, 0x018b, 0x055b, 0xece4, 0xf1ce, 0x0c2c,
+ 0xfa6b, 0xeeeb, 0x02f5, 0xfb37, 0xf210, 0xfc09,
+ 0xf322, 0xf54f, 0x076f, 0xfb4f, 0xef62, 0xfced,
+ 0x04b3, 0x0578, 0x05a4, 0x00ac, 0xfe3f, 0x005c,
+ 0x064d, 0x0893, 0x0603, 0x10ef, 0x175c, 0x05f3,
+ 0xfe28, 0x04ec, 0x05b2, 0x052c, 0xfba0, 0xf2c5,
+ 0xfd20, 0xfd30, 0xf829, 0x0826, 0x074b, 0xf515,
+ 0xfa11, 0x021c, 0xfeee, 0x004d, 0x0266, 0x0750,
+ 0x09b5, 0x057b, 0x0d2d, 0x0e07, 0x0225, 0x0f01,
+ 0x152f, 0xfbb5, 0xfb7f, 0x0a9d, 0x0125, 0x038f,
+ 0x0cfd, 0xfd87, 0xfbd6, 0x0bfd, 0x0580, 0xfd94,
+ 0x0797, 0x05ac, 0xfbcf, 0x049d, 0x0e0a, 0x04d2,
+ 0x0000, 0x0767, 0x044e, 0xfc8f, 0x0126, 0x0439,
+ 0x0077, 0x02e5, 0x06b8, 0x0574, 0x0712, 0x0b73,
+ 0x091f, 0x0264, 0x035b, 0x0831, 0x04f4, 0x01e4,
+ 0x0370, 0xfe50, 0xfb44, 0x04b7, 0x0afc, 0x068e,
+ 0x0129, 0x00b6, 0x054d, 0x07d6, 0x059d, 0x08b7,
+ 0x1190, 0x10f8, 0x0228, 0xf975, 0x02b0, 0x07ac,
+ 0x0471, 0x0c0e, 0x0d3d, 0xffe8, 0xfddf, 0xffd0,
+ 0x00e4, 0x0cba, 0x088a, 0xfb63, 0x0638, 0x06d5,
+ 0xfa6b, 0x07d3, 0x0d6d, 0xff31, 0x0247, 0x048c,
+ 0x0104, 0x0a11, 0x0692, 0xff61, 0x097a, 0x09eb,
+ 0x07bd, 0x0fa8, 0x0c79, 0x0ade, 0x0d0c, 0x025d,
+ 0x00d1, 0x0414, 0xfe81, 0x0822, 0x0ed4, 0x02cb,
+ 0x0379, 0x039d, 0xf973, 0x00ba, 0x066f, 0x003a,
+ 0x055a, 0x0a1a, 0x0a33, 0x0c6c, 0x0879, 0x0b0b,
+ 0x0cd8, 0x029e, 0x0c15, 0x159f, 0x0447, 0x07c4,
+ 0x155e, 0x0887, 0x0d23, 0x1bb0, 0x0d7d, 0x0a33,
+ 0x1470, 0x0aa5, 0x0362, 0x067c, 0x08ad, 0x0f5f,
+ 0x0efa, 0x0cd6, 0x14a1, 0x12af, 0x0eb9, 0x13c0,
+ 0x0f8d, 0x0fa9, 0x17bd, 0x10f3, 0x1037, 0x19ca,
+ 0x1057, 0x0942, 0x15eb, 0x1ab2, 0x11d6, 0x0a5c,
+ 0x1017, 0x1d9a, 0x1907, 0x0ede, 0x18a0, 0x1e65,
+ 0x1b02, 0x1e49, 0x121c, 0x01af, 0x1216, 0x2313,
+ 0x174f, 0x10f7, 0x1bd3, 0x1f74, 0x176e, 0x1178,
+ 0x15bb, 0x1c94, 0x1b69, 0x17e7, 0x1684, 0x1136,
+ 0x0c8c, 0x0f62, 0x12d7, 0x13be, 0x1656, 0x15d0,
+ 0x113e, 0x159e, 0x1ef1, 0x18e4, 0x0c8f, 0x1192,
+ 0x1b92, 0x16d7, 0x1212, 0x19ce, 0x207d, 0x1fd1,
+ 0x1a40, 0x0cae, 0x05dc, 0x13eb, 0x1b08, 0x0bb7,
+ 0x064a, 0x0f62, 0x0d78, 0x0b54, 0x142f, 0x1677,
+ 0x153e, 0x1a5b, 0x1711, 0x0a5d, 0x079c, 0x0f95,
+ 0x10cf, 0x0a6f, 0x0fcf, 0x1960, 0x0cf9, 0x026b,
+ 0x14a8, 0x1ccc, 0x0bee, 0x0a0f, 0x108a, 0x057d,
+ 0x03af, 0x15d7, 0x1bfb, 0x1269, 0x0ed0, 0x1101,
+ 0x0c6a, 0x02b6, 0xfe7e, 0x017f, 0x07de, 0x0dbc,
+ 0x0b53, 0x0514, 0x0891, 0x0d54, 0x0abc, 0x0bc8,
+ 0x0b07, 0x01cb, 0x014c, 0x07ac, 0x0998, 0x1013,
+ 0x1049, 0x02ca, 0x0577, 0x109e, 0x0579, 0xff14,
+ 0x0beb, 0x0979, 0xfb5e, 0xf895, 0xf828, 0xf898,
+ 0xfd74, 0xfed0, 0x0352, 0x0af4, 0x0576, 0xfa1e,
+ 0xfa03, 0x01d4, 0x06e6, 0x0303, 0xfb33, 0xfab8,
+ 0xfec4, 0x00e4, 0x05a0, 0x09a4, 0x0365, 0xfdde,
+ 0x0550, 0x05fd, 0xf5d5, 0xf359, 0x018a, 0xff30,
+ 0xf4c3, 0xf926, 0xfd0c, 0xfd29, 0x0621, 0x0b48,
+ 0x0389, 0xf9ce, 0xf7ee, 0xfec5, 0x001e, 0xf909,
+ 0xfc73, 0x0292, 0xfa0c, 0xf4e5, 0xfa6a, 0xfa9c,
+ 0xfc61, 0x04a9, 0x0026, 0xf2c1, 0xf75f, 0x063f,
+ 0x0195, 0xf774, 0x02f1, 0x0805, 0xf4e3, 0xf13c,
+ 0xfd8f, 0xf7df, 0xf745, 0x07f1, 0x03d4, 0xf7d1,
+ 0x00fa, 0x01be, 0xf945, 0x0543, 0x0b7c, 0xfe01,
+ 0xfe99, 0x0698, 0x00a7, 0xfd99, 0x025c, 0x0432,
+ 0x030b, 0xff09, 0xff5f, 0x0267, 0xfbc0, 0xfcc6,
+ 0x095c, 0x03d1, 0xf9c6, 0xfebd, 0xf8d0, 0xf076,
+ 0xfda5, 0x04b6, 0xfc23, 0xfb78, 0xfecb, 0xfee6,
+ 0xff12, 0xf9f8, 0xf5ee, 0xfa84, 0xfcbd, 0xf9ee,
+ 0xfb6d, 0x0052, 0x006e, 0xfd9a, 0x0385, 0x0bb7,
+ 0x0295, 0xf614, 0xfecb, 0x08b4, 0xfe21, 0xf603,
+ 0xfd0f, 0xfde6, 0xf83d, 0xfc0c, 0x0059, 0xfdd6,
+ 0xfb2d, 0xf73c, 0xf850, 0xfef1, 0xfae1, 0xf666,
+ 0xf7ca, 0xee32, 0xef34, 0xfd71, 0xf237, 0xeade,
+ 0xfa9c, 0xf03b, 0xe69a, 0xfaa6, 0xf1a2, 0xe140,
+ 0xf8f9, 0xfe2a, 0xe903, 0xea3b, 0xed5c, 0xeba0,
+ 0xf4d3, 0xf208, 0xeaab, 0xf148, 0xf0f7, 0xeaaf,
+ 0xec85, 0xee6d, 0xf06d, 0xf2d0, 0xf00d, 0xeed8,
+ 0xf155, 0xf140, 0xee6f, 0xec2a, 0xea59, 0xe6a7,
+ 0xe572, 0xe681, 0xe499, 0xebe2, 0xf4c7, 0xe621,
+ 0xdc9f, 0xea18, 0xe70d, 0xde6c, 0xe9cd, 0xe789,
+ 0xddf4, 0xea97, 0xf14d, 0xe96b, 0xe72e, 0xe624,
+ 0xe82f, 0xeb6c, 0xe3bb, 0xde62, 0xe2c9, 0xe502,
+ 0xe042, 0xd95f, 0xde19, 0xe69c, 0xe103, 0xdf42,
+ 0xe44a, 0xe2d5, 0xe877, 0xe5e0, 0xd766, 0xe521,
+ 0xf029, 0xdba8, 0xdce4, 0xe9b1, 0xdee5, 0xe115,
+ 0xed32, 0xe914, 0xe66e, 0xe3c3, 0xe306, 0xee83,
+ 0xecdf, 0xe2b4, 0xe45b, 0xdd19, 0xd2b9, 0xdb85,
+ 0xe2a5, 0xdcdd, 0xdc2e, 0xe23a, 0xe11c, 0xda4f,
+ 0xdcd5, 0xe20a, 0xdc91, 0xd980, 0xdbad, 0xd92e,
+ 0xdbda, 0xe40b, 0xe8b1, 0xe9bf, 0xdf86, 0xd624,
+ 0xde6f, 0xdd62, 0xd1d3, 0xdc01, 0xe61a, 0xddda,
+ 0xdbdb, 0xd7ef, 0xceb0, 0xd8fb, 0xe29f, 0xd9dc,
+ 0xd837, 0xdd6c, 0xdba2, 0xd754, 0xd459, 0xdb9c,
+ 0xe40b, 0xda6c, 0xd360, 0xda4e, 0xdc4c, 0xdbd0,
+ 0xdb67, 0xd969, 0xdb71, 0xd6a6, 0xd583, 0xe523,
+ 0xe500, 0xd6c8, 0xd87b, 0xdbde, 0xd960, 0xd859,
+ 0xd9ab, 0xe291, 0xdcf0, 0xcc51, 0xd667, 0xddb9,
+ 0xd2b5, 0xd9f5, 0xdbec, 0xd23c, 0xdc8a, 0xdb27,
+ 0xcd24, 0xd81d, 0xe269, 0xdc4b, 0xd36e, 0xc9b8,
+ 0xce7d, 0xd8fe, 0xd7d0, 0xda96, 0xda99, 0xd134,
+ 0xcfba, 0xd1d5, 0xd70e, 0xde85, 0xdba4, 0xdb0b,
+ 0xdb77, 0xd40d, 0xd602, 0xd7d9, 0xd68e, 0xe43e,
+ 0xe5bc, 0xd6da, 0xdaa9, 0xe3b2, 0xe1a3, 0xe0be,
+ 0xe412, 0xea68, 0xe492, 0xd525, 0xda94, 0xe265,
+ 0xd7b3, 0xda3c, 0xe746, 0xe10d, 0xd3eb, 0xd379,
+ 0xdaee, 0xdcec, 0xd946, 0xdd90, 0xe640, 0xe4b2,
+ 0xdcfb, 0xdbff, 0xe16d, 0xe2d2, 0xe15a, 0xe15c,
+ 0xdcfc, 0xdc69, 0xe13d, 0xd923, 0xd225, 0xdc84,
+ 0xe17a, 0xdc29, 0xdcab, 0xe0f2, 0xde08, 0xd3e8,
+ 0xd6a7, 0xe4de, 0xe1e1, 0xd994, 0xdd50, 0xdd0f,
+ 0xdf14, 0xe93d, 0xebe3, 0xe698, 0xdf51, 0xe466,
+ 0xee9a, 0xde39, 0xd24f, 0xdfd8, 0xdab5, 0xd622,
+ 0xe816, 0xe74b, 0xe2bf, 0xe972, 0xe040, 0xdbf3,
+ 0xe0fc, 0xdf54, 0xe926, 0xed5a, 0xe523, 0xebe1,
+ 0xebf3, 0xe587, 0xf08a, 0xf018, 0xe662, 0xea74,
+ 0xe925, 0xe588, 0xe745, 0xe406, 0xe5a4, 0xe72e,
+ 0xe3ea, 0xe8c5, 0xe736, 0xe141, 0xea5d, 0xeef4,
+ 0xe92f, 0xea03, 0xedf5, 0xf2e1, 0xf2fa, 0xeae7,
+ 0xecf0, 0xf488, 0xf1cd, 0xee71, 0xee01, 0xee51,
+ 0xefd9, 0xeae9, 0xe9d9, 0xf2d5, 0xeef7, 0xe73a,
+ 0xf45c, 0xfde5, 0xf599, 0xf3c5, 0xf555, 0xf160,
+ 0xf481, 0xf7d4, 0xf8ef, 0xff4b, 0xfa6c, 0xf45f,
+ 0xfd9e, 0xf8d8, 0xefee, 0xfd2a, 0xfdb0, 0xf1aa,
+ 0xf5b1, 0xf6ae, 0xf66a, 0xfc8b, 0xf8eb, 0xfc31,
+ 0x0259, 0xf8ff, 0xfa49, 0xfe15, 0xf653, 0xfeba,
+ 0x042c, 0xfa79, 0x0020, 0x047a, 0x008a, 0x0655,
+ 0x02af, 0xfc7d, 0x02e8, 0x0109, 0xfdf3, 0x0259,
+ 0x033e, 0x050a, 0x0021, 0xf994, 0x025d, 0x05ad,
+ 0x0404, 0x0b1c, 0x06de, 0x01ff, 0x07a1, 0x03f3,
+ 0x0679, 0x10b9, 0x0a45, 0x03fb, 0x0361, 0xfecb,
+ 0x052f, 0x0ce8, 0x0942, 0x06d2, 0x0310, 0xff24,
+ 0x0295, 0x074b, 0x0b00, 0x0557, 0xfbed, 0x050a,
+ 0x0c20, 0x0193, 0xff5d, 0x0188, 0xfe28, 0x0240,
+ 0x0571, 0x04e8, 0x076b, 0x0254, 0xfd2c, 0xfffe,
+ 0x001b, 0x05fc, 0x0f27, 0x09ab, 0x052d, 0x0b1e,
+ 0x0b42, 0x092c, 0x0b12, 0x0b30, 0x0d47, 0x0f35,
+ 0x0970, 0x063e, 0x0d74, 0x1248, 0x0e1f, 0x0dad,
+ 0x1533, 0x17df, 0x12d2, 0x0fba, 0x1097, 0x10e7,
+ 0x0f64, 0x0f79, 0x1330, 0x150c, 0x1323, 0x123f,
+ 0x0fd2, 0x0aec, 0x0b5a, 0x0ea4, 0x0d4b, 0x0b36,
+ 0x0b3e, 0x0a9f, 0x0ac7, 0x0ca2, 0x0cf7, 0x0978,
+ 0x05ad, 0x09da, 0x1208, 0x0ff0, 0x08a9, 0x0a01,
+ 0x0dde, 0x0dd2, 0x0d21, 0x094e, 0x07ae, 0x0e7a,
+ 0x0eb3, 0x05fe, 0x0547, 0x08ae, 0x088c, 0x08ce,
+ 0x06b5, 0x08d7, 0x1112, 0x0ddc, 0x0993, 0x109f,
+ 0x0d45, 0x0591, 0x0b93, 0x0ded, 0x0ad0, 0x0d3c,
+ 0x0ea8, 0x11c6, 0x14e0, 0x122b, 0x12bb, 0x10a6,
+ 0x09c2, 0x0b63, 0x0bca, 0x08ad, 0x0b79, 0x0914,
+ 0x07af, 0x0dd6, 0x0b4a, 0x0b56, 0x12af, 0x0e39,
+ 0x0b5b, 0x1054, 0x102f, 0x116b, 0x0c3d, 0x01a2,
+ 0x06b9, 0x0a58, 0x0540, 0x08a3, 0x07eb, 0x0481,
+ 0x0640, 0x00e6, 0x00ed, 0x0491, 0x0082, 0x0910,
+ 0x0d8a, 0x0241, 0x06b8, 0x074c, 0xfbb5, 0x055a,
+ 0x0c73, 0x04b0, 0x0419, 0x0010, 0x006b, 0x0750,
+ 0x01fd, 0x04b4, 0x07a0, 0xfd21, 0x0639, 0x0973,
+ 0xf527, 0xf9b0, 0x0232, 0xfb89, 0x06db, 0x0779,
+ 0xfd73, 0x0ba4, 0x0795, 0xf748, 0x05ba, 0x08c5,
+ 0xfed7, 0x09b9, 0x0b3f, 0x042d, 0x075c, 0x0514,
+ 0x04a3, 0x049c, 0x009c, 0x0995, 0x0af8, 0x04be,
+ 0x0f0c, 0x09cb, 0xfac4, 0x0773, 0x0e14, 0x05b3,
+ 0x0bfd, 0x0fbe, 0x0aaf, 0x0bad, 0x0ccf, 0x0e13,
+ 0x0e2b, 0x09a4, 0x0ad1, 0x0eb0, 0x0e2a, 0x0f6b,
+ 0x10a9, 0x0f7c, 0x1055, 0x100f, 0x0f52, 0x11a2,
+ 0x0c76, 0x0507, 0x1023, 0x1c8d, 0x1632, 0x121e,
+ 0x14b1, 0x1226, 0x129c, 0x118e, 0x0bca, 0x0f77,
+ 0x15c2, 0x1331, 0x0d5c, 0x0c28, 0x0e8d, 0x06be,
+ 0x0048, 0x0eed, 0x13ba, 0x0822, 0x0fdf, 0x15e6,
+ 0x0a4b, 0x0eee, 0x146f, 0x068d, 0x0469, 0x0b3f,
+ 0x095d, 0x0dbd, 0x132f, 0x115b, 0x120a, 0x0ed7,
+ 0x0cb6, 0x1379, 0x12d0, 0x125e, 0x18b9, 0x128f,
+ 0x0cef, 0x123f, 0x10ed, 0x1042, 0x137a, 0x0f9d,
+ 0x0db5, 0x1040, 0x1303, 0x1648, 0x14a7, 0x1339,
+ 0x146d, 0x1099, 0x0d07, 0x0dcb, 0x0ed9, 0x0da0,
+ 0x0c4a, 0x1096, 0x1113, 0x0a9f, 0x0a4d, 0x0655,
+ 0xfdea, 0x0307, 0x080c, 0x037e, 0x0259, 0x03b1,
+ 0x0500, 0x01f3, 0xf7d2, 0xf4a5, 0xf814, 0xf7ed,
+ 0xf800, 0xf939, 0xfb42, 0xfeaf, 0xfdc0, 0xfac9,
+ 0xfad9, 0xf741, 0xf0d2, 0xf50a, 0xfc38, 0xf7dd,
+ 0xf8a9, 0x00e0, 0xfcf7, 0xfb5b, 0x01f7, 0xfd9d,
+ 0xf842, 0xf9de, 0xfa95, 0xfd44, 0xff9a, 0x041c,
+ 0x0911, 0x01c1, 0xfccb, 0xffbf, 0xfee1, 0x0637,
+ 0x0af6, 0x014c, 0x063c, 0x0f1f, 0x0264, 0xfaa1,
+ 0x01ab, 0x0612, 0x065f, 0x049a, 0x087d, 0x0d6b,
+ 0x02bd, 0xfc94, 0x0595, 0x05ca, 0x068a, 0x0c8c,
+ 0x0445, 0x0278, 0x09d2, 0x02d6, 0x0422, 0x096a,
+ 0xfe0b, 0x0412, 0x1052, 0x039c, 0x0143, 0x0a58,
+ 0x0624, 0x066d, 0x0b42, 0x0c54, 0x0c10, 0x0401,
+ 0x0282, 0x0b65, 0x0bb4, 0x097e, 0x091b, 0x06cd,
+ 0x0855, 0x077d, 0x0553, 0x0a70, 0x0c78, 0x06d7,
+ 0x0547, 0x0b26, 0x0b4a, 0x04bb, 0x090f, 0x0ecd,
+ 0x089d, 0x08bc, 0x0ce9, 0x0801, 0x0746, 0x0c27,
+ 0x0b5c, 0x0772, 0x0801, 0x0b83, 0x08f0, 0x066a,
+ 0x0a4d, 0x0a1c, 0x0a22, 0x0d11, 0x08ee, 0x05a0,
+ 0x0620, 0x05dd, 0x073e, 0x03d0, 0x0239, 0x0808,
+ 0x04f0, 0x016d, 0x0726, 0x0611, 0x036d, 0x0632,
+ 0x034d, 0xfff2, 0x019a, 0xff9c, 0xfc3d, 0xfe7b,
+ 0xfe14, 0xf8a3, 0xfc1e, 0x0186, 0xfc42, 0xfcb4,
+ 0x0255, 0xfe18, 0xfbd1, 0xfbc3, 0xf56a, 0xf71e,
+ 0xffd7, 0x01f7, 0x0053, 0xfc74, 0xf970, 0xfd51,
+ 0xfce3, 0xf2f0, 0xf144, 0xf9ec, 0xfa60, 0xf4ea,
+ 0xf63e, 0xf869, 0xf754, 0xf804, 0xf7f8, 0xf6bd,
+ 0xfa21, 0xfc64, 0xf49d, 0xf011, 0xf871, 0xfb86,
+ 0xf6c1, 0xf7c2, 0xf8e2, 0xf8bb, 0xf840, 0xf2c4,
+ 0xf3d7, 0xf9c9, 0xf9ac, 0xfabe, 0xf96d, 0xf5e4,
+ 0xf7ec, 0xf5e4, 0xf499, 0xf798, 0xf43e, 0xf404,
+ 0xf4fb, 0xf09e, 0xf3ef, 0xf827, 0xf693, 0xf4f8,
+ 0xf391, 0xf797, 0xf54e, 0xedd5, 0xf621, 0xf796,
+ 0xf0b0, 0xfa8c, 0xfbc7, 0xf642, 0xfd66, 0xfad4,
+ 0xfaba, 0x0397, 0xfa65, 0xf393, 0xf992, 0xf7d2,
+ 0xf94e, 0x00a1, 0xfe76, 0xf575, 0xf1d8, 0xf69e,
+ 0xf59f, 0xf292, 0xfad1, 0xfb47, 0xf3e5, 0xf7ea,
+ 0xf7dd, 0xf0d5, 0xf446, 0xf941, 0xf6d5, 0xf488,
+ 0xf5ba, 0xf78c, 0xf823, 0xf9ca, 0xfaaf, 0xf904,
+ 0xfab6, 0xfce3, 0xf8c2, 0xf515, 0xf6f3, 0xf8e5,
+ 0xf8dd, 0xf942, 0xf804, 0xf385, 0xf11c, 0xf377,
+ 0xf48c, 0xf3ae, 0xf8bd, 0xfc95, 0xf4c0, 0xf1dd,
+ 0xf843, 0xf488, 0xef81, 0xf3eb, 0xf5d6, 0xf596,
+ 0xf3c6, 0xf236, 0xf7e4, 0xf82c, 0xf3d4, 0xf659,
+ 0xf6c5, 0xf5c2, 0xf5a1, 0xf6b6, 0xfda0, 0xf951,
+ 0xf10b, 0xf81a, 0xf767, 0xf2f4, 0xf9db, 0xf7c7,
+ 0xf3c0, 0xf44e, 0xf226, 0xf82d, 0xf749, 0xef9c,
+ 0xf74a, 0xf7a7, 0xef43, 0xf235, 0xf2f5, 0xf40d,
+ 0xf6a4, 0xf148, 0xf428, 0xfa37, 0xf439, 0xef30,
+ 0xf1e5, 0xf61f, 0xf382, 0xedf6, 0xf0a9, 0xf1bb,
+ 0xf014, 0xf366, 0xf25a, 0xf1a9, 0xf44f, 0xf0fc,
+ 0xf168, 0xf6c5, 0xf683, 0xf449, 0xf546, 0xf8e0,
+ 0xf540, 0xed5e, 0xf3e0, 0xfb65, 0xf58d, 0xf314,
+ 0xf477, 0xf278, 0xf19d, 0xf092, 0xf165, 0xf495,
+ 0xf5d9, 0xf793, 0xf61e, 0xf182, 0xf3e1, 0xf825,
+ 0xf6e0, 0xf6ed, 0xf761, 0xf3ab, 0xf27b, 0xf3a2,
+ 0xf428, 0xf818, 0xf72b, 0xf108, 0xf31a, 0xf468,
+ 0xf3b7, 0xf9a5, 0xf546, 0xeda5, 0xf306, 0xf167,
+ 0xecd2, 0xf307, 0xf3ee, 0xf17c, 0xf44a, 0xf6e9,
+ 0xf84a, 0xf648, 0xf580, 0xf6ae, 0xf2fc, 0xf24d,
+ 0xf32a, 0xefdd, 0xeed8, 0xed1b, 0xeeb7, 0xf428,
+ 0xeff9, 0xec29, 0xeea4, 0xeef0, 0xf104, 0xf10c,
+ 0xf079, 0xf408, 0xf12e, 0xef60, 0xf38c, 0xf2f0,
+ 0xf323, 0xf510, 0xf646, 0xf7a3, 0xf2f8, 0xf20b,
+ 0xf54d, 0xf217, 0xf4e9, 0xf89b, 0xf319, 0xf378,
+ 0xf590, 0xf29b, 0xf243, 0xf2c1, 0xf4ee, 0xf7cd,
+ 0xfa2d, 0xfd2a, 0xf950, 0xf87f, 0xfeb3, 0xfb03,
+ 0xf82c, 0xfc81, 0xf916, 0xf47a, 0xf386, 0xf3a4,
+ 0xf4e4, 0xefeb, 0xed83, 0xf264, 0xf0f1, 0xeeda,
+ 0xef55, 0xec5b, 0xef05, 0xf398, 0xf174, 0xf1b1,
+ 0xf44a, 0xf441, 0xf636, 0xf7ed, 0xf671, 0xf7b5,
+ 0xfa76, 0xf9b1, 0xf7a9, 0xf57e, 0xf84d, 0xfe5c,
+ 0xf818, 0xf34d, 0xfd69, 0xfb2b, 0xf22d, 0xf87e,
+ 0xf95e, 0xf4a6, 0xf79d, 0xf79e, 0xf953, 0xfbde,
+ 0xf8a7, 0xfbfe, 0xfec4, 0xfc10, 0xff1a, 0xfed7,
+ 0xfba1, 0xfdb0, 0xfc23, 0xfb24, 0xff14, 0xfc5f,
+ 0xf6b3, 0xfa1f, 0xfedd, 0xfa7b, 0xf87d, 0xfc3c,
+ 0xf917, 0xf80d, 0xfcfe, 0xfb92, 0xfa15, 0xf90d,
+ 0xf7af, 0xff43, 0x0111, 0xfb3a, 0xfe45, 0xfef4,
+ 0xfa67, 0xfb06, 0xfb49, 0xfb17, 0xfdc9, 0x012f,
+ 0x009e, 0xfb1d, 0xfba4, 0xfdef, 0xfaf5, 0xfefa,
+ 0x0215, 0xfb16, 0xf83a, 0xfb59, 0xfe10, 0xfd05,
+ 0xfca4, 0x02e7, 0x0146, 0xfd01, 0x03ba, 0xffe8,
+ 0xf7e3, 0xfeb2, 0x002b, 0xfba0, 0xfcb6, 0xfe46,
+ 0x00c9, 0xfe40, 0xfb77, 0x013e, 0x001c, 0xfe51,
+ 0x048f, 0x011f, 0xfceb, 0x01b3, 0x017c, 0x005a,
+ 0x0143, 0xfdda, 0xfdda, 0x0170, 0x00fc, 0x01c6,
+ 0x0557, 0x02a4, 0xfce8, 0xfe8b, 0x0316, 0x037b,
+ 0x02d7, 0x064a, 0x0aa4, 0x043c, 0xfb9e, 0x0123,
+ 0x04f7, 0x00e0, 0x03aa, 0x053c, 0x01d9, 0x006e,
+ 0xfdc8, 0xff7b, 0x031e, 0x0153, 0x0348, 0x0400,
+ 0xfed3, 0x00f5, 0x05b2, 0x0345, 0xffad, 0xff93,
+ 0x013a, 0x0159, 0x011d, 0x01b3, 0x01ab, 0x027f,
+ 0x0133, 0xfdb8, 0xfe15, 0x00ce, 0x025c, 0xff36,
+ 0xfa3b, 0xfa33, 0xf8cb, 0xf8a4, 0xfcdf, 0xfb3d,
+ 0xfe3d, 0x035c, 0xfb15, 0xfb4f, 0x02e6, 0xfed2,
+ 0x01d1, 0x0807, 0x024e, 0xff54, 0x0222, 0x0687,
+ 0x0591, 0xfd6d, 0x0142, 0x062c, 0xfd53, 0xfd3e,
+ 0x0341, 0xffda, 0xfd56, 0xff8c, 0x0129, 0xfe0a,
+ 0xfa12, 0xfbc8, 0xfb61, 0xfa79, 0xfcb9, 0xf985,
+ 0xf92c, 0xfece, 0xff48, 0xfe16, 0xfc18, 0xf89a,
+ 0xf7ae, 0xf5f0, 0xf6b4, 0xfab1, 0xfb51, 0xfa58,
+ 0xf775, 0xf716, 0xfc76, 0xfc86, 0xfa41, 0xfb15,
+ 0xf8d9, 0xf97c, 0xfc8a, 0xf9b8, 0xf874, 0xfc14,
+ 0xfdc7, 0xfc0e, 0xfb57, 0xfd31, 0xfa61, 0xf637,
+ 0xfa56, 0xfc33, 0xf847, 0xfb26, 0xfccb, 0xf4ee,
+ 0xf1fb, 0xf557, 0xf5ef, 0xf8ba, 0xfa20, 0xf54e,
+ 0xf549, 0xf5e2, 0xf2c8, 0xf5f4, 0xf624, 0xf2e8,
+ 0xf6cc, 0xf4e1, 0xf140, 0xf435, 0xf1e8, 0xf476,
+ 0xf946, 0xf301, 0xf436, 0xf5bc, 0xedcc, 0xf3f5,
+ 0xfcbf, 0xfab6, 0xfb31, 0xf80e, 0xf5af, 0xfb82,
+ 0xfc3e, 0xfd57, 0x018c, 0xfdee, 0xfab4, 0xfdfe,
+ 0xff83, 0xfc67, 0xfd74, 0x0544, 0x056b, 0x0012,
+ 0x01e3, 0x02bd, 0x01a8, 0x0430, 0x04a2, 0x040b,
+ 0x03bd, 0x025b, 0x00f7, 0x0059, 0x05d7, 0x0857,
+ 0x008e, 0x0028, 0x03ad, 0xff62, 0xff32, 0x0063,
+ 0xfe81, 0x0041, 0xfe7c, 0xfb71, 0xfd26, 0xfbad,
+ 0xfa86, 0xfc53, 0xfa7c, 0xf8c3, 0xfa01, 0xfbbb,
+ 0xfd5b, 0xfd7a, 0xfc0f, 0xfac8, 0xfbf9, 0xfd71,
+ 0xfc5c, 0xff36, 0x03b2, 0x0216, 0x0364, 0x0831,
+ 0x063c, 0x0565, 0x09da, 0x0a44, 0x0965, 0x0ac5,
+ 0x0ad1, 0x0cc7, 0x0d71, 0x0868, 0x0921, 0x0d9e,
+ 0x0a0c, 0x0861, 0x0b53, 0x0929, 0x07bb, 0x08d6,
+ 0x0803, 0x06e2, 0x03e8, 0x0359, 0x05da, 0x03ea,
+ 0x0310, 0x0397, 0x02ed, 0x06f5, 0x03ca, 0xfa60,
+ 0xfe8c, 0x0330, 0xfe4d, 0xfe3a, 0xfe1a, 0xf89d,
+ 0xf5b0, 0xf4ed, 0xf431, 0xf27c, 0xf09a, 0xf0c2,
+ 0xeee8, 0xec06, 0xedf9, 0xf158, 0xeff7, 0xed62,
+ 0xeff1, 0xf0f8, 0xecfe, 0xedbb, 0xefce, 0xef28,
+ 0xf233, 0xf28d, 0xf04e, 0xf35d, 0xf46d, 0xf3d7,
+ 0xf62c, 0xf72d, 0xf8e9, 0xf88d, 0xf475, 0xf554,
+ 0xf8db, 0xfa64, 0xf906, 0xf5ec, 0xf9f6, 0xfe27,
+ 0xfbb5, 0xfece, 0x0008, 0xfa04, 0xfc79, 0xffab,
+ 0xfb27, 0xfa80, 0xfb19, 0xf98b, 0xfaa1, 0xfafa,
+ 0xfa5d, 0xfac1, 0xfa22, 0xf97b, 0xf9b7, 0xfacf,
+ 0xfaca, 0xf879, 0xf9a6, 0xfe14, 0xfed6, 0xfd42,
+ 0xfcf8, 0xfdff, 0xff50, 0xfec5, 0xfe10, 0xffcd,
+ 0x01a2, 0x0191, 0x0059, 0x0049, 0x0193, 0x007f,
+ 0xff85, 0x0231, 0x02cf, 0x01d8, 0x03b7, 0x0329,
+ 0x018c, 0x03b8, 0x055e, 0x07c6, 0x0b59, 0x0b8f,
+ 0x0b3a, 0x0926, 0x0873, 0x0f22, 0x0f7b, 0x0ba1,
+ 0x10a5, 0x0ef7, 0x09e0, 0x0f85, 0x0ea6, 0x0a9c,
+ 0x0db6, 0x09ed, 0x0814, 0x0bcd, 0x06b6, 0x0628,
+ 0x0c2f, 0x0a43, 0x07bc, 0x0615, 0x038b, 0x0626,
+ 0x07f4, 0x0808, 0x0a0a, 0x09f1, 0x083b, 0x0508,
+ 0x03ce, 0x07eb, 0x092d, 0x09bb, 0x0c5f, 0x0862,
+ 0x04ab, 0x06ef, 0x0754, 0x0699, 0x0494, 0x02cf,
+ 0x0653, 0x0537, 0xff67, 0x00b8, 0x021b, 0x0013,
+ 0x01ec, 0x0240, 0xff0d, 0xfded, 0xfe69, 0x0077,
+ 0xffed, 0xfa4e, 0xfa50, 0xfe3a, 0xfc73, 0xfd31,
+ 0x00e5, 0xff37, 0xff6e, 0x01f4, 0xffd9, 0xfed5,
+ 0x0082, 0x017c, 0x0191, 0xff19, 0xfe05, 0xffe3,
+ 0x00d6, 0x02e8, 0x037b, 0x0171, 0x0186, 0xfe9c,
+ 0xfc07, 0x0096, 0x008f, 0xfcd2, 0xfe10, 0xfbad,
+ 0xf867, 0xfafe, 0xfac7, 0xf9ff, 0xfd69, 0xfd45,
+ 0xf9f5, 0xf8d8, 0xf99d, 0xfa7f, 0xf9c7, 0xfb79,
+ 0xff9a, 0xfc13, 0xf663, 0xfa82, 0xfe6a, 0xfbfb,
+ 0xfc74, 0xfdd6, 0xfc97, 0xfcca, 0xfc5a, 0xfc5a,
+ 0x00c2, 0x0398, 0x006f, 0xfb9b, 0xfbdb, 0x0016,
+ 0xfed5, 0xfcf2, 0x0174, 0xfed3, 0xf76c, 0xfbb1,
+ 0xff5e, 0xfa14, 0xfb67, 0x0135, 0xffd6, 0xfbc8,
+ 0xfa74, 0xfbd4, 0xfdf6, 0xff59, 0x022f, 0x0244,
+ 0xfd5e, 0xfe38, 0x026a, 0x00fa, 0x03c4, 0x0946,
+ 0x05f8, 0x04e6, 0x082f, 0x0501, 0x0481, 0x0747,
+ 0x0468, 0x0477, 0x044d, 0xfead, 0x01cb, 0x073b,
+ 0x02cb, 0x00ad, 0x0166, 0xfe67, 0xfda0, 0xfe3b,
+ 0x0083, 0x04fc, 0x02d6, 0xffe4, 0x02f8, 0x0241,
+ 0xff4e, 0x00df, 0x02f7, 0x0353, 0xffea, 0xfc2c,
+ 0xfe4d, 0xfe7a, 0xfcbb, 0x0033, 0xfec8, 0xf9e5,
+ 0xfcf6, 0xfd38, 0xf8eb, 0xfc9a, 0x0058, 0xfdb4,
+ 0xfd05, 0xfd60, 0xfc85, 0xff12, 0x030f, 0x02e1,
+ 0xffc8, 0xffba, 0x01ec, 0x001e, 0xfea0, 0x0302,
+ 0x0442, 0xff3f, 0xfe54, 0x006a, 0xfe32, 0xfd3d,
+ 0x000f, 0x0003, 0xfee5, 0xff8f, 0xfeb6, 0xff1d,
+ 0x0205, 0x0348, 0x040d, 0x02e8, 0xff71, 0x00ec,
+ 0x032e, 0x00c6, 0x01dd, 0x036d, 0xfed9, 0xfd4e,
+ 0xff13, 0xfcfb, 0xfcb0, 0xff4f, 0xfe19, 0xfba9,
+ 0xfb99, 0xfaaa, 0xf9ce, 0xfdbf, 0x0271, 0x0136,
+ 0xfe75, 0xff3d, 0x013f, 0x03b4, 0x0468, 0x01eb,
+ 0x021c, 0x0365, 0xffd8, 0xfd3a, 0xfe74, 0xfebd,
+ 0xfee5, 0xff1a, 0xfd67, 0xfbf1, 0xfb26, 0xfb9f,
+ 0xff1a, 0x00d4, 0xfe75, 0xfdf6, 0xffee, 0x006e,
+ 0x0186, 0x0415, 0x04e1, 0x0448, 0x02e9, 0x0185,
+ 0x0335, 0x03e0, 0x0096, 0x0113, 0x0358, 0xff5b,
+ 0xfbe3, 0xfd2d, 0xfd58, 0xfcfb, 0xfdf4, 0xfe8d,
+ 0xfdc2, 0xfb49, 0xfbee, 0x0079, 0x009c, 0xfdb4,
+ 0xfe5b, 0xfe96, 0xfc2d, 0xfc88, 0xff64, 0xfdd4,
+ 0xf961, 0xfa40, 0xface, 0xf55f, 0xf535, 0xf965,
+ 0xf7c4, 0xf6ea, 0xf815, 0xf612, 0xf66e, 0xf7af,
+ 0xf7f4, 0xfc03, 0xfd6f, 0xfc45, 0xff30, 0xfedf,
+ 0xfda6, 0x02a5, 0x03b7, 0x0129, 0x02d9, 0x01cb,
+ 0xfda4, 0xfccc, 0xfc5a, 0xfb30, 0xfa4f, 0xf7f3,
+ 0xf645, 0xf77f, 0xf8ff, 0xf885, 0xf816, 0xf976,
+ 0xfa05, 0xf9d4, 0xfc1c, 0xfe86, 0xfdbe, 0xfc55,
+ 0xfdee, 0xffe7, 0xfd8a, 0xfc02, 0xff9f, 0x00d0,
+ 0xff8d, 0x016d, 0x01cb, 0xffc1, 0xfeb8, 0xfe13,
+ 0x0090, 0x030d, 0x000d, 0xfeef, 0x01b5, 0x02c1,
+ 0x0389, 0x0374, 0x0325, 0x05a8, 0x0597, 0x0410,
+ 0x0690, 0x06f8, 0x04fd, 0x0639, 0x067c, 0x040c,
+ 0x02dc, 0x0331, 0x0319, 0x016b, 0x01b6, 0x0499,
+ 0x0338, 0x0118, 0x04ae, 0x0577, 0x0175, 0x0298,
+ 0x066a, 0x056c, 0x0395, 0x0510, 0x0677, 0x05e7,
+ 0x0609, 0x06d9, 0x0568, 0x0348, 0x03cf, 0x044d,
+ 0x022b, 0x01cf, 0x0435, 0x0412, 0x033b, 0x0512,
+ 0x04e5, 0x032d, 0x040a, 0x041e, 0x037e, 0x0503,
+ 0x054d, 0x041f, 0x0419, 0x0536, 0x07b9, 0x0897,
+ 0x06d6, 0x077a, 0x08f8, 0x076b, 0x05e3, 0x068a,
+ 0x07d9, 0x071f, 0x051d, 0x0678, 0x0855, 0x0739,
+ 0x0824, 0x09ec, 0x08e4, 0x0883, 0x07bf, 0x0542,
+ 0x04fa, 0x05a4, 0x0548, 0x0516, 0x041b, 0x026b,
+ 0x0113, 0x009d, 0x0128, 0x010e, 0x0267, 0x05b7,
+ 0x04ec, 0x0310, 0x05a4, 0x0572, 0x01ef, 0x035b,
+ 0x05a8, 0x03a6, 0x034e, 0x0651, 0x0706, 0x04e3,
+ 0x0380, 0x02f6, 0x0252, 0x02f2, 0x0496, 0x04bc,
+ 0x03d6, 0x0458, 0x038c, 0xff47, 0xff13, 0x03bc,
+ 0x0302, 0x0130, 0x050e, 0x0463, 0xffe7, 0x0125,
+ 0x02dc, 0x0324, 0x0488, 0x03f7, 0x04e6, 0x052b,
+ 0x003e, 0x0152, 0x0655, 0x0320, 0x00e8, 0x0365,
+ 0x01ee, 0x0082, 0x0172, 0x019a, 0x021c, 0x0184,
+ 0x0153, 0x0216, 0x0012, 0x013e, 0x052e, 0x02c6,
+ 0x00e0, 0x0236, 0xfed1, 0xfdd2, 0x01cc, 0x0160,
+ 0x0161, 0x04cc, 0x02e2, 0xff03, 0xffe0, 0x00bf,
+ 0xfff1, 0x00cd, 0x018c, 0x0013, 0xfebf, 0xfedc,
+ 0xff85, 0x00b4, 0x0187, 0x00cf, 0xffed, 0xff34,
+ 0xfd84, 0xfc84, 0xfd5c, 0xfdc7, 0xfcb8, 0xfbf5,
+ 0xfbf7, 0xfb41, 0xfb09, 0xfe21, 0x01bb, 0x0142,
+ 0xff33, 0xfe93, 0xfd39, 0xfbf3, 0xfd25, 0xfde9,
+ 0xfdc6, 0xff05, 0xfe70, 0xfc43, 0xfdab, 0xffd4,
+ 0xff52, 0xff0c, 0xff25, 0xff48, 0xff3b, 0xfc01,
+ 0xf9f4, 0xfdc3, 0xffd1, 0xfc7b, 0xfaeb, 0xfcb0,
+ 0xfc5b, 0xfa0d, 0xfb09, 0xfcf5, 0xfa8f, 0xf987,
+ 0xfc0c, 0xfadb, 0xf95e, 0xfc38, 0xfc9f, 0xfa2f,
+ 0xf95e, 0xf8ad, 0xf890, 0xf9e8, 0xfa65, 0xf99f,
+ 0xf892, 0xf834, 0xf784, 0xf5ad, 0xf608, 0xf809,
+ 0xf888, 0xf94d, 0xf978, 0xf7dc, 0xf79e, 0xf7f5,
+ 0xf889, 0xfa36, 0xf9df, 0xf9eb, 0xfbbf, 0xf9ef,
+ 0xf948, 0xfdfc, 0xff53, 0xfe0f, 0x0091, 0x01a1,
+ 0x0071, 0x0297, 0x0487, 0x0383, 0x034e, 0x02d0,
+ 0x0199, 0x0356, 0x04a1, 0x037a, 0x04e5, 0x05fd,
+ 0x0447, 0x04eb, 0x047e, 0x01c0, 0x03b7, 0x0567,
+ 0x02fe, 0x02b8, 0x0244, 0x00a1, 0x0149, 0x00fa,
+ 0x017c, 0x02f9, 0xffc2, 0xfe42, 0xffe0, 0xfd3e,
+ 0xfd9e, 0x01ab, 0xfe97, 0xfb1c, 0xfe7e, 0x00f1,
+ 0x0006, 0x006c, 0x0340, 0x04b9, 0x030b, 0x0331,
+ 0x056a, 0x0567, 0x05b4, 0x076c, 0x07dd, 0x07b7,
+ 0x072d, 0x06bc, 0x0760, 0x0845, 0x0a5d, 0x0b58,
+ 0x083a, 0x06c9, 0x092c, 0x0a0b, 0x09af, 0x0a56,
+ 0x0afe, 0x0b0f, 0x0a7a, 0x0a5d, 0x0b5a, 0x0c2a,
+ 0x0c75, 0x0c72, 0x0c41, 0x0b61, 0x0a24, 0x0b16,
+ 0x0bb2, 0x08ad, 0x069d, 0x05e9, 0x0397, 0x0296,
+ 0x01c7, 0x005a, 0x017d, 0xffb7, 0xfa2f, 0xf901,
+ 0xf98b, 0xf88d, 0xf94a, 0xf927, 0xf790, 0xf74b,
+ 0xf649, 0xf4f0, 0xf582, 0xf736, 0xf839, 0xf6e7,
+ 0xf67a, 0xf80b, 0xf683, 0xf60c, 0xfa29, 0xf9f1,
+ 0xf6f7, 0xf886, 0xf8bd, 0xf65d, 0xf72e, 0xf8e5,
+ 0xf92d, 0xf86d, 0xf671, 0xf637, 0xf70f, 0xf66d,
+ 0xf7f0, 0xf9d8, 0xf769, 0xf663, 0xf8a6, 0xf7b3,
+ 0xf5d7, 0xf717, 0xf7c5, 0xf72e, 0xf726, 0xf6c9,
+ 0xf613, 0xf675, 0xf97a, 0xfba3, 0xf7d4, 0xf502,
+ 0xf7cb, 0xf6ec, 0xf36b, 0xf4dc, 0xf627, 0xf574,
+ 0xf637, 0xf659, 0xf65f, 0xf688, 0xf622, 0xf86b,
+ 0xf981, 0xf736, 0xf83f, 0xf9cb, 0xf8b0, 0xfa1c,
+ 0xfb2e, 0xf9c7, 0xf9f9, 0xfac9, 0xfc53, 0xfdb0,
+ 0xfc97, 0xfe78, 0x01ce, 0x00b4, 0x011d, 0x0372,
+ 0x02a0, 0x02f0, 0x0452, 0x0411, 0x0556, 0x05f8,
+ 0x04aa, 0x05e0, 0x077e, 0x05a0, 0x02e0, 0x02e5,
+ 0x0446, 0x02a6, 0x002c, 0x00ea, 0x01b8, 0x0148,
+ 0x00a3, 0xfec3, 0xfee8, 0x00f2, 0xffb1, 0xfe40,
+ 0xffc0, 0x00fd, 0x01eb, 0x0293, 0x021f, 0x023c,
+ 0x0226, 0x014f, 0x01a5, 0x02ba, 0x02b6, 0x00b0,
+ 0xfef9, 0xff8b, 0xfe87, 0xfcb7, 0xfecf, 0xffd9,
+ 0xfd70, 0xfd2b, 0xfd64, 0xfbb3, 0xfb08, 0xfb42,
+ 0xfcc8, 0xff34, 0xfe57, 0xfc30, 0xfc3e, 0xfc28,
+ 0xfbf7, 0xfcca, 0xfce9, 0xfc5f, 0xfb40, 0xf9db,
+ 0xfa33, 0xfac0, 0xfa16, 0xfac2, 0xfb7e, 0xf999,
+ 0xf845, 0xf97a, 0xfa1a, 0xf930, 0xf8ec, 0xfa33,
+ 0xfb37, 0xf9e9, 0xf87f, 0xf9c4, 0xfa74, 0xf8da,
+ 0xf8a9, 0xf86b, 0xf588, 0xf4d8, 0xf6db, 0xf613,
+ 0xf418, 0xf472, 0xf488, 0xf339, 0xf2fe, 0xf456,
+ 0xf5ed, 0xf6e0, 0xf6ec, 0xf6c4, 0xf78e, 0xf867,
+ 0xf84a, 0xf968, 0xfb4d, 0xfa34, 0xf8f5, 0xfb28,
+ 0xfc62, 0xfb6e, 0xfbc3, 0xfb94, 0xf9da, 0xf98d,
+ 0xfa09, 0xf922, 0xf814, 0xf902, 0xfa57, 0xf8b1,
+ 0xf65e, 0xf6a1, 0xf716, 0xf81f, 0xfac4, 0xfa73,
+ 0xf912, 0xfb49, 0xfbc6, 0xf968, 0xfa98, 0xfce4,
+ 0xfb91, 0xfa42, 0xfb8d, 0xfca9, 0xfca6, 0xfd7b,
+ 0xfe2a, 0xfca5, 0xfb73, 0xfb42, 0xf955, 0xf83e,
+ 0xf9a4, 0xf96e, 0xf7fc, 0xf7c8, 0xf771, 0xf720,
+ 0xf77f, 0xf7eb, 0xf8c4, 0xf92b, 0xf8f0, 0xf9c3,
+ 0xfb1d, 0xfc92, 0xfe08, 0xfe0d, 0xfe17, 0xfea4,
+ 0xfce5, 0xfb6d, 0xfd7d, 0xff00, 0xfded, 0xfd38,
+ 0xfcf5, 0xfc70, 0xfc94, 0xfc30, 0xfb48, 0xfbd1,
+ 0xfb56, 0xf8ec, 0xf914, 0xfa4d, 0xf9c1, 0xfb6b,
+ 0xfd02, 0xfb25, 0xfc0f, 0xfdd5, 0xfb3c, 0xfbb5,
+ 0xfed4, 0xfd2a, 0xfc2d, 0xfcc9, 0xf93f, 0xf807,
+ 0xfb2f, 0xfa30, 0xf731, 0xf7e2, 0xf873, 0xf6db,
+ 0xf62c, 0xf690, 0xf6ea, 0xf818, 0xf961, 0xf997,
+ 0xfaba, 0xfca4, 0xfd04, 0xfd86, 0xfe37, 0xfd3a,
+ 0xfd2f, 0xfd8c, 0xfbb2, 0xfba4, 0xfdb8, 0xfd36,
+ 0xfba7, 0xfb59, 0xfb8b, 0xfc3b, 0xfc25, 0xfba7,
+ 0xfc7f, 0xfcf4, 0xfcfb, 0xfdad, 0xfd6c, 0xfd69,
+ 0xfeab, 0xfee4, 0xff0d, 0xfff9, 0xffd2, 0xffc2,
+ 0x0024, 0xff89, 0xff11, 0xfeb0, 0xfdcd, 0xfd98,
+ 0xfcef, 0xfba1, 0xfbc9, 0xfc08, 0xfb9a, 0xfc75,
+ 0xfdae, 0xfe2b, 0xfe4f, 0xfe26, 0xff3b, 0x0094,
+ 0xffaa, 0xffb5, 0x01c0, 0x0190, 0x00a5, 0x019d,
+ 0x01ce, 0x00f3, 0x00a7, 0x00a8, 0x005a, 0xfeb1,
+ 0xfd81, 0xff15, 0xffcf, 0xfe3c, 0xfdcb, 0xfe63,
+ 0xfeae, 0xfecb, 0xfecc, 0xffc4, 0x0053, 0xff56,
+ 0xffa2, 0xffe2, 0xfe16, 0xfe67, 0x0082, 0x000a,
+ 0xfe67, 0xfdd9, 0xfda2, 0xfd25, 0xfcca, 0xfd21,
+ 0xfce2, 0xfc13, 0xfc99, 0xfc63, 0xfb13, 0xfc3f,
+ 0xfd9c, 0xfcb6, 0xfcc8, 0xfdc9, 0xfe05, 0xfe4c,
+ 0xfe53, 0xfe77, 0xff66, 0xffbd, 0xff09, 0xfe08,
+ 0xfe41, 0x0066, 0x0185, 0x00cf, 0x00c8, 0x00c0,
+ 0xffe8, 0xffaf, 0xffc2, 0xff7e, 0xff26, 0xfed5,
+ 0xfec4, 0xfecb, 0xff22, 0xff9a, 0xfede, 0xfe34,
+ 0xff12, 0xfef9, 0xfd2b, 0xfc87, 0xfd8a, 0xfdd2,
+ 0xfce7, 0xfd18, 0xfe58, 0xfe11, 0xfd30, 0xfdd9,
+ 0xfeb0, 0xfe49, 0xfdba, 0xfead, 0xfff0, 0xff33,
+ 0xff1e, 0x0105, 0x0092, 0xff42, 0x00fa, 0x0216,
+ 0x01be, 0x0315, 0x03d0, 0x029c, 0x0220, 0x0303,
+ 0x0401, 0x03b0, 0x0310, 0x03b4, 0x032d, 0x01fe,
+ 0x03c0, 0x0580, 0x0499, 0x042b, 0x04ab, 0x04d8,
+ 0x04bc, 0x03ee, 0x03f1, 0x050e, 0x0496, 0x03ec,
+ 0x04e7, 0x04f0, 0x0404, 0x048a, 0x061f, 0x0740,
+ 0x067a, 0x044b, 0x03c0, 0x04bf, 0x0524, 0x053a,
+ 0x04c1, 0x03be, 0x03b8, 0x0378, 0x0289, 0x0303,
+ 0x0376, 0x02c0, 0x02d3, 0x02cf, 0x0292, 0x03c5,
+ 0x0423, 0x0368, 0x0407, 0x03f3, 0x032a, 0x0453,
+ 0x048e, 0x033e, 0x04a9, 0x0700, 0x0682, 0x052b,
+ 0x04da, 0x0519, 0x05b8, 0x05c8, 0x04d9, 0x0486,
+ 0x04fc, 0x0447, 0x02fd, 0x036e, 0x042c, 0x0314,
+ 0x0240, 0x030b, 0x0370, 0x02f2, 0x0281, 0x0202,
+ 0x01d1, 0x023d, 0x0267, 0x02bb, 0x0458, 0x05ae,
+ 0x050a, 0x049c, 0x0633, 0x0743, 0x0679, 0x0636,
+ 0x069f, 0x05ce, 0x0524, 0x0640, 0x0724, 0x06b8,
+ 0x06e5, 0x082f, 0x08cd, 0x0807, 0x0735, 0x0731,
+ 0x0756, 0x07d0, 0x0917, 0x0970, 0x0836, 0x07da,
+ 0x0939, 0x0a74, 0x0a39, 0x093f, 0x08e3, 0x0899,
+ 0x0838, 0x0962, 0x0a19, 0x0879, 0x0821, 0x08eb,
+ 0x0764, 0x061d, 0x065a, 0x057c, 0x04f8, 0x05a9,
+ 0x058f, 0x0558, 0x054e, 0x04cf, 0x0535, 0x0602,
+ 0x05d7, 0x05dd, 0x067e, 0x067d, 0x05dc, 0x0617,
+ 0x076b, 0x07d8, 0x074d, 0x07c8, 0x08b0, 0x08d1,
+ 0x08de, 0x0883, 0x0722, 0x0678, 0x07c1, 0x08ae,
+ 0x07ff, 0x0860, 0x095e, 0x0829, 0x073a, 0x07be,
+ 0x074c, 0x07d7, 0x08be, 0x06b6, 0x0636, 0x07f6,
+ 0x0655, 0x04b8, 0x05c5, 0x0500, 0x04d6, 0x06f7,
+ 0x0680, 0x058a, 0x0705, 0x0704, 0x05c8, 0x05e2,
+ 0x0564, 0x0425, 0x03fa, 0x044c, 0x049c, 0x04f1,
+ 0x04c1, 0x04b1, 0x04d9, 0x0482, 0x0500, 0x060b,
+ 0x050f, 0x03ef, 0x0522, 0x057b, 0x03fc, 0x03ae,
+ 0x03bd, 0x02ac, 0x023a, 0x0279, 0x028f, 0x02bf,
+ 0x0246, 0x0126, 0x009a, 0x0095, 0x0066, 0xffdf,
+ 0xff53, 0xfed1, 0xfe2e, 0xfe07, 0xfe0c, 0xfd6a,
+ 0xfd05, 0xfce0, 0xfc5d, 0xfc30, 0xfb69, 0xf9c8,
+ 0xf9bc, 0xfaac, 0xfada, 0xfb18, 0xfa68, 0xf832,
+ 0xf78a, 0xf8ce, 0xf900, 0xf837, 0xf8c3, 0xfa36,
+ 0xfa8e, 0xfab3, 0xfc82, 0xfe22, 0xfdec, 0xfe29,
+ 0x0009, 0x011b, 0x0054, 0x00df, 0x03ba, 0x04d3,
+ 0x03e2, 0x047a, 0x05ac, 0x059f, 0x055f, 0x05a6,
+ 0x0693, 0x06d9, 0x0599, 0x051d, 0x0570, 0x0472,
+ 0x03d8, 0x0493, 0x04ba, 0x04b3, 0x043e, 0x0363,
+ 0x04a2, 0x055f, 0x039f, 0x02be, 0x019d, 0x008e,
+ 0x021e, 0x0235, 0x00ee, 0x0133, 0x0000, 0xfee2,
+ 0x0015, 0xffed, 0xff64, 0x00ef, 0x01ce, 0x012c,
+ 0x007d, 0x0015, 0x0077, 0x0118, 0x01ca, 0x02f5,
+ 0x0357, 0x040d, 0x0594, 0x05ee, 0x0717, 0x08e7,
+ 0x08ce, 0x0914, 0x0967, 0x08d3, 0x0a90, 0x0cba,
+ 0x0cb4, 0x0d5f, 0x0e75, 0x0e89, 0x0f4f, 0x0fe4,
+ 0x0fea, 0x10c4, 0x1073, 0x0f42, 0x0eda, 0x0e0c,
+ 0x0ddf, 0x0df0, 0x0d1b, 0x0d89, 0x0d8e, 0x0b8e,
+ 0x0a24, 0x091f, 0x07bc, 0x06ad, 0x05a9, 0x0501,
+ 0x042d, 0x026e, 0x01da, 0x0290, 0x01fd, 0x00e2,
+ 0x003f, 0xff4b, 0xff1a, 0xff38, 0xfe76, 0xfe67,
+ 0xfe55, 0xfd52, 0xfd34, 0xfd50, 0xfcb8, 0xfc50,
+ 0xfb77, 0xfab7, 0xfad8, 0xfa55, 0xf97c, 0xf933,
+ 0xf8bb, 0xf852, 0xf84a, 0xf7b9, 0xf62b, 0xf57f,
+ 0xf6bc, 0xf77d, 0xf764, 0xf7aa, 0xf7be, 0xf828,
+ 0xf8ec, 0xf8f6, 0xf8a8, 0xf8a3, 0xf90e, 0xf939,
+ 0xf919, 0xf9b2, 0xf9ef, 0xf950, 0xf98a, 0xf9b3,
+ 0xf862, 0xf7df, 0xf84e, 0xf7a3, 0xf732, 0xf6ba,
+ 0xf5b1, 0xf638, 0xf5ef, 0xf47f, 0xf540, 0xf585,
+ 0xf495, 0xf4c9, 0xf471, 0xf411, 0xf4a4, 0xf4a9,
+ 0xf54a, 0xf687, 0xf65a, 0xf5c4, 0xf614, 0xf70d,
+ 0xf7cd, 0xf773, 0xf790, 0xf8d5, 0xf9d1, 0xfaf8,
+ 0xfc21, 0xfcc5, 0xfd9d, 0xfdf4, 0xfdd1, 0xfdcd,
+ 0xfdcc, 0xfe42, 0xfea9, 0xff06, 0xff9e, 0xffa7,
+ 0xff8d, 0xff1f, 0xfe0f, 0xfe0e, 0xff2d, 0xff7d,
+ 0xff63, 0xfffc, 0x0026, 0x004b, 0x0104, 0x0186,
+ 0x0288, 0x0293, 0x0176, 0x025f, 0x03ec, 0x0493,
+ 0x0500, 0x04a8, 0x04a6, 0x052e, 0x04a5, 0x039d,
+ 0x03a6, 0x03a5, 0x02e3, 0x037e, 0x0388, 0x01ee,
+ 0x01d6, 0x0159, 0x006e, 0x0149, 0x00fa, 0xfff3,
+ 0xffe6, 0xffb0, 0xffca, 0xffa9, 0xfee0, 0xfe92,
+ 0xfe7a, 0xfde0, 0xfd69, 0xfdcb, 0xfd96, 0xfcf6,
+ 0xfdae, 0xfdd2, 0xfd2b, 0xfd97, 0xfcc3, 0xfb6c,
+ 0xfcb5, 0xfd43, 0xfc36, 0xfcca, 0xfcf9, 0xfc6b,
+ 0xfcf6, 0xfc8a, 0xfbfe, 0xfc83, 0xfbde, 0xfb11,
+ 0xfb59, 0xfb90, 0xfbb0, 0xfb71, 0xfb02, 0xfaec,
+ 0xfa45, 0xf9f6, 0xfa73, 0xfa05, 0xf9fb, 0xfa6b,
+ 0xf996, 0xfa08, 0xfb16, 0xf9a8, 0xf926, 0xfa5f,
+ 0xf9ea, 0xf95d, 0xf9cc, 0xf997, 0xf9d2, 0xfa39,
+ 0xf9bf, 0xf9eb, 0xfa31, 0xf9e0, 0xf9e7, 0xfa12,
+ 0xfaa8, 0xfa9c, 0xf9a4, 0xf933, 0xf8b2, 0xf92c,
+ 0xf9f3, 0xf9a8, 0xfa13, 0xf912, 0xf816, 0xf989,
+ 0xf8f9, 0xf8c2, 0xfa32, 0xf927, 0xf8ca, 0xf99e,
+ 0xf93b, 0xf9a9, 0xfa71, 0xfa97, 0xfb76, 0xfcbc,
+ 0xfd02, 0xfcea, 0xfd37, 0xfd1c, 0xfccf, 0xfc9c,
+ 0xfcc0, 0xfcf8, 0xfc5a, 0xfc56, 0xfce0, 0xfce6,
+ 0xfcf0, 0xfc8e, 0xfc9e, 0xfd3a, 0xfd4b, 0xfd85,
+ 0xfdd0, 0xfe82, 0xff5c, 0xff9a, 0x0010, 0xffc0,
+ 0xff14, 0xff81, 0xff35, 0xfe43, 0xfe0f, 0xfe01,
+ 0xfdcf, 0xfd8c, 0xfd5a, 0xfd7d, 0xfd3e, 0xfcdf,
+ 0xfd60, 0xfd4a, 0xfc90, 0xfce2, 0xfcf3, 0xfcd9,
+ 0xfd7c, 0xfd5e, 0xfd68, 0xfec7, 0xffb9, 0xff47,
+ 0xfef4, 0xff7d, 0xff9d, 0xff45, 0xfeae, 0xfe28,
+ 0xfe26, 0xfd63, 0xfcfe, 0xfd58, 0xfc6c, 0xfbb3,
+ 0xfbfa, 0xfc9b, 0xfd8e, 0xfdb1, 0xfdbd, 0xfe39,
+ 0xfe7d, 0xfecf, 0xfe99, 0xfe16, 0xfe28, 0xfe24,
+ 0xfda8, 0xfd7c, 0xfd48, 0xfc2d, 0xfbb9, 0xfba5,
+ 0xfa46, 0xf9a2, 0xf9cb, 0xf99b, 0xfa25, 0xfa1d,
+ 0xf9a2, 0xfa1f, 0xfa1b, 0xfa17, 0xfa70, 0xfa7c,
+ 0xfbcb, 0xfccb, 0xfc94, 0xfd88, 0xfda3, 0xfc68,
+ 0xfcdb, 0xfd92, 0xfcf2, 0xfc8c, 0xfcee, 0xfca3,
+ 0xfc30, 0xfcfc, 0xfceb, 0xfc79, 0xfd27, 0xfd1e,
+ 0xfdcf, 0xfeec, 0xfea2, 0xff2f, 0x000a, 0x009b,
+ 0x0192, 0x01fb, 0x02b4, 0x0373, 0x033e, 0x02a9,
+ 0x025d, 0x029b, 0x0275, 0x025c, 0x0235, 0x016e,
+ 0x0132, 0x00a8, 0x0036, 0x007d, 0x000b, 0xffc3,
+ 0xff89, 0xff19, 0xff8c, 0x0023, 0x0065, 0x0068,
+ 0x006a, 0x0086, 0x00d5, 0x015b, 0x014a, 0x01c1,
+ 0x02ab, 0x0292, 0x0273, 0x027d, 0x02bf, 0x0305,
+ 0x02dd, 0x02b7, 0x01ce, 0x012c, 0x0162, 0x019e,
+ 0x0208, 0x0172, 0x010e, 0x0137, 0x0104, 0x022b,
+ 0x023a, 0x010e, 0x0159, 0x015e, 0x01e1, 0x02b9,
+ 0x0282, 0x02a0, 0x029c, 0x0392, 0x04ca, 0x03e8,
+ 0x03eb, 0x0478, 0x03d5, 0x0408, 0x03ce, 0x0348,
+ 0x03fe, 0x031c, 0x0152, 0x0122, 0x00b9, 0x001d,
+ 0xffe3, 0xff05, 0xfe7e, 0xfe74, 0xfed5, 0xffde,
+ 0x000b, 0xffef, 0x0008, 0xff80, 0xff91, 0xffde,
+ 0xffae, 0x007c, 0x0101, 0x003e, 0x003f, 0x00c3,
+ 0x0138, 0x01c1, 0x0117, 0x0032, 0xfff4, 0xfff8,
+ 0x00dc, 0x015b, 0x01b5, 0x0286, 0x0233, 0x0234,
+ 0x0286, 0x027b, 0x039a, 0x044e, 0x04e8, 0x0645,
+ 0x068b, 0x06a4, 0x070b, 0x073d, 0x076a, 0x072d,
+ 0x0739, 0x07b3, 0x07ba, 0x06fd, 0x0694, 0x0744,
+ 0x0775, 0x06fa, 0x0647, 0x05a0, 0x05e0, 0x05ac,
+ 0x0573, 0x05ed, 0x0557, 0x053b, 0x0644, 0x06b4,
+ 0x0766, 0x07ba, 0x06e6, 0x073b, 0x080d, 0x0765,
+ 0x069a, 0x05fe, 0x05a0, 0x0612, 0x05eb, 0x05ac,
+ 0x0623, 0x067c, 0x06e1, 0x0766, 0x0816, 0x07f1,
+ 0x07a9, 0x08d3, 0x08e5, 0x087d, 0x08ad, 0x07af,
+ 0x07c7, 0x08d3, 0x08fe, 0x0948, 0x09bd, 0x0a51,
+ 0x0a27, 0x09f3, 0x09e2, 0x0892, 0x0853, 0x07cd,
+ 0x061a, 0x0677, 0x0651, 0x051c, 0x055e, 0x0560,
+ 0x04cd, 0x0496, 0x045c, 0x040c, 0x046c, 0x04be,
+ 0x042d, 0x0472, 0x0473, 0x0382, 0x0384, 0x03ac,
+ 0x04ac, 0x0606, 0x05c7, 0x0634, 0x0722, 0x073f,
+ 0x078e, 0x076a, 0x06f2, 0x06bf, 0x064b, 0x0640,
+ 0x071f, 0x07b9, 0x076c, 0x0734, 0x074c, 0x0757,
+ 0x077a, 0x0790, 0x07a9, 0x07e7, 0x0831, 0x083b,
+ 0x0794, 0x06d5, 0x06b7, 0x06f9, 0x072c, 0x076a,
+ 0x0784, 0x06ef, 0x068f, 0x06d7, 0x06ba, 0x0651,
+ 0x0602, 0x05ab, 0x0558, 0x04e6, 0x04f4, 0x0561,
+ 0x04f9, 0x04d5, 0x0537, 0x04d7, 0x0539, 0x05cd,
+ 0x0505, 0x0510, 0x058d, 0x0587, 0x05a2, 0x050d,
+ 0x050b, 0x0574, 0x04f2, 0x04f7, 0x052c, 0x050c,
+ 0x04ad, 0x0402, 0x03fa, 0x0428, 0x04af, 0x04a1,
+ 0x0358, 0x0368, 0x03f9, 0x03d7, 0x044e, 0x0523,
+ 0x05bb, 0x059e, 0x05ba, 0x05cd, 0x051c, 0x058e,
+ 0x05b0, 0x04a2, 0x0475, 0x041e, 0x0372, 0x03c9,
+ 0x0441, 0x03ed, 0x03dc, 0x0428, 0x03d5, 0x03fb,
+ 0x03e2, 0x0333, 0x037b, 0x0331, 0x033d, 0x038c,
+ 0x023c, 0x0298, 0x0370, 0x02b9, 0x0326, 0x0336,
+ 0x026c, 0x0229, 0x01e8, 0x0243, 0x024c, 0x019a,
+ 0x01a7, 0x01ed, 0x01ba, 0x0149, 0x00b1, 0x005d,
+ 0x008a, 0x009f, 0x0095, 0x0137, 0x01d5, 0x0157,
+ 0x0077, 0x001c, 0x0000, 0xffac, 0xff03, 0xfe7e,
+ 0xfe79, 0xfdc3, 0xfc71, 0xfba6, 0xfaca, 0xfa3b,
+ 0xf984, 0xf83d, 0xf81c, 0xf7a9, 0xf6a3, 0xf639,
+ 0xf523, 0xf504, 0xf5c6, 0xf5aa, 0xf625, 0xf679,
+ 0xf67c, 0xf738, 0xf7e9, 0xf8a0, 0xf91c, 0xf981,
+ 0xf9e6, 0xfa55, 0xfb73, 0xfb79, 0xfb44, 0xfc58,
+ 0xfc36, 0xfc30, 0xfd3a, 0xfce8, 0xfcc2, 0xfd08,
+ 0xfc43, 0xfc6a, 0xfd65, 0xfdeb, 0xfeab, 0xff0e,
+ 0xff2d, 0xff91, 0xff31, 0xff15, 0xffca, 0xff8c,
+ 0xfef9, 0xff03, 0xfef7, 0xfef6, 0xfebf, 0xfe07,
+ 0xfdfa, 0xfdd4, 0xfc7b, 0xfbf3, 0xfc42, 0xfbe5,
+ 0xfbb6, 0xfbbf, 0xfb84, 0xfac6, 0xfa03, 0xfaa1,
+ 0xfb54, 0xfb99, 0xfc8f, 0xfd34, 0xfdb2, 0xfec4,
+ 0xffb8, 0x002f, 0x00ab, 0x0152, 0x017d, 0x0208,
+ 0x027f, 0x01fd, 0x028b, 0x035d, 0x03b6, 0x04ff,
+ 0x05e3, 0x065b, 0x0726, 0x07af, 0x0838, 0x08dd,
+ 0x097e, 0x09aa, 0x09ea, 0x0a85, 0x0ad5, 0x0b84,
+ 0x0bbb, 0x0b53, 0x0b71, 0x0b14, 0x0adc, 0x0b2c,
+ 0x0ac1, 0x0a0a, 0x099a, 0x0975, 0x090a, 0x08ac,
+ 0x089a, 0x07f0, 0x07ac, 0x07bf, 0x077b, 0x075d,
+ 0x06bb, 0x0645, 0x061c, 0x054e, 0x04e6, 0x04db,
+ 0x0483, 0x03de, 0x031a, 0x0265, 0x0155, 0x0066,
+ 0xff91, 0xfe61, 0xfd2b, 0xfb92, 0xfa7b, 0xfa19,
+ 0xf93a, 0xf8cf, 0xf90b, 0xf92d, 0xf973, 0xf9e8,
+ 0xfaa8, 0xfb6e, 0xfc15, 0xfcd9, 0xfd43, 0xfd84,
+ 0xfdec, 0xfddc, 0xfd99, 0xfdac, 0xfd44, 0xfc5b,
+ 0xfbe2, 0xfb41, 0xfa9b, 0xfabb, 0xfa35, 0xf945,
+ 0xf94e, 0xf8f3, 0xf849, 0xf825, 0xf790, 0xf75e,
+ 0xf751, 0xf65b, 0xf67a, 0xf6df, 0xf5d3, 0xf538,
+ 0xf52c, 0xf549, 0xf619, 0xf6bf, 0xf688, 0xf5c7,
+ 0xf5e8, 0xf6aa, 0xf6c3, 0xf722, 0xf795, 0xf7de,
+ 0xf873, 0xf898, 0xf8fd, 0xf98f, 0xf9ae, 0xf9e2,
+ 0xf96f, 0xf90a, 0xf994, 0xf9c5, 0xf9b0, 0xf9a3,
+ 0xf96f, 0xf9ab, 0xfa5b, 0xfb16, 0xfba0, 0xfc04,
+ 0xfc94, 0xfd08, 0xfcf2, 0xfd04, 0xfd5c, 0xfd53,
+ 0xfdb3, 0xfe6c, 0xfe8f, 0xff21, 0x0080, 0x015d,
+ 0x01a0, 0x0224, 0x02a8, 0x02fc, 0x0384, 0x03e4,
+ 0x0448, 0x049d, 0x0485, 0x04ca, 0x04ec, 0x0515,
+ 0x05df, 0x0605, 0x0613, 0x0641, 0x0611, 0x065a,
+ 0x0661, 0x0644, 0x064e, 0x05ae, 0x05af, 0x060a,
+ 0x0589, 0x0547, 0x053b, 0x04d6, 0x04c4, 0x04e6,
+ 0x0485, 0x0421, 0x0434, 0x044d, 0x0417, 0x0386,
+ 0x0372, 0x0387, 0x0273, 0x01de, 0x0207, 0x0176,
+ 0x0121, 0x0079, 0xff6e, 0xff57, 0xfef5, 0xfe83,
+ 0xfeb2, 0xfdf3, 0xfd12, 0xfd5e, 0xfdaa, 0xfda4,
+ 0xfdeb, 0xfe22, 0xfe4a, 0xfe6d, 0xfdfd, 0xfdcf,
+ 0xfe01, 0xfda2, 0xfd88, 0xfd8c, 0xfd19, 0xfd37,
+ 0xfd57, 0xfd05, 0xfcf5, 0xfcbf, 0xfcf3, 0xfda4,
+ 0xfd6e, 0xfd39, 0xfda5, 0xfda8, 0xfdba, 0xfdc3,
+ 0xfd48, 0xfd5f, 0xfd89, 0xfd0d, 0xfd11, 0xfd1d,
+ 0xfc59, 0xfc18, 0xfc56, 0xfb8a, 0xfa53, 0xf9e9,
+ 0xf9dc, 0xf9e6, 0xfa2a, 0xfa5b, 0xfa47, 0xfa3d,
+ 0xfa9a, 0xfb12, 0xfb79, 0xfc05, 0xfc5b, 0xfc5d,
+ 0xfc7d, 0xfcba, 0xfcc5, 0xfcd0, 0xfce8, 0xfc8e,
+ 0xfc13, 0xfc0f, 0xfc6f, 0xfcd4, 0xfc88, 0xfc1e,
+ 0xfc43, 0xfbfd, 0xfbce, 0xfc7d, 0xfce4, 0xfd2b,
+ 0xfe0e, 0xfebe, 0xff0b, 0xffb7, 0x006f, 0x00ba,
+ 0x00e6, 0x00f3, 0x00da, 0x0089, 0x0020, 0x0031,
+ 0x0035, 0x0014, 0x00a9, 0x0124, 0x00cd, 0x0088,
+ 0x00cc, 0x0119, 0x0119, 0x011e, 0x0155, 0x0193,
+ 0x01c7, 0x01de, 0x0206, 0x0279, 0x02f7, 0x0353,
+ 0x03a9, 0x03df, 0x03cd, 0x0387, 0x0335, 0x02e7,
+ 0x0280, 0x0220, 0x0204, 0x01ec, 0x01e4, 0x0235,
+ 0x0279, 0x02a6, 0x0312, 0x0344, 0x030c, 0x0312,
+ 0x0371, 0x03b8, 0x03b5, 0x035d, 0x030f, 0x032a,
+ 0x0360, 0x033c, 0x02c3, 0x0276, 0x023c, 0x0193,
+ 0x010d, 0x00df, 0x008c, 0x008a, 0x008a, 0x0000,
+ 0x000d, 0x0065, 0x000b, 0x0019, 0x0062, 0xffb8,
+ 0xff2a, 0xff2e, 0xfeef, 0xfef1, 0xff5f, 0xff6f,
+ 0xff54, 0xff7d, 0xffb0, 0xffae, 0xff65, 0xfedb,
+ 0xfe2e, 0xfd7d, 0xfcca, 0xfc2a, 0xfbd7, 0xfbad,
+ 0xfb91, 0xfb9f, 0xfba5, 0xfbf3, 0xfccc, 0xfd4d,
+ 0xfd61, 0xfd97, 0xfd94, 0xfdc8, 0xfe78, 0xfe9d,
+ 0xfe8d, 0xfeda, 0xfeee, 0xff46, 0x0007, 0x004f,
+ 0x00b7, 0x01ac, 0x021c, 0x01ed, 0x01dd, 0x01c7,
+ 0x013b, 0x00bb, 0x00ab, 0x0017, 0xff0d, 0xfea9,
+ 0xfe5c, 0xfe05, 0xfe81, 0xfee1, 0xfef2, 0xff9e,
+ 0x0004, 0xfffa, 0x0035, 0x0009, 0xffa7, 0xff9c,
+ 0xff45, 0xff03, 0xff22, 0xfeed, 0xfec2, 0xfec0,
+ 0xfe44, 0xfdb3, 0xfd7c, 0xfd50, 0xfd0c, 0xfcf9,
+ 0xfd5a, 0xfdbe, 0xfdf5, 0xfe74, 0xff01, 0xff7d,
+ 0x0001, 0x002b, 0x0078, 0x00f7, 0x00b9, 0x0096,
+ 0x00fa, 0x00cc, 0x00aa, 0x00d9, 0x007f, 0x0079,
+ 0x00c2, 0x0059, 0x004c, 0x00c9, 0x0077, 0xffc3,
+ 0xff87, 0xff7a, 0xff3e, 0xff08, 0xff45, 0xff6d,
+ 0xff1a, 0xff28, 0xff95, 0xffce, 0x0017, 0x003a,
+ 0x0019, 0x001f, 0xffe1, 0xff8b, 0xff98, 0xff1e,
+ 0xfe14, 0xfd8c, 0xfd3c, 0xfcb4, 0xfc41, 0xfc01,
+ 0xfc21, 0xfc84, 0xfc9c, 0xfc70, 0xfc6b, 0xfc93,
+ 0xfcc9, 0xfd09, 0xfd36, 0xfd13, 0xfce5, 0xfd21,
+ 0xfd78, 0xfda0, 0xfdd1, 0xfdf7, 0xfde7, 0xfdd8,
+ 0xfe23, 0xfed4, 0xff59, 0xff9d, 0x0049, 0x011c,
+ 0x0189, 0x0218, 0x02da, 0x0332, 0x0329, 0x02f6,
+ 0x02c1, 0x02d0, 0x0302, 0x0339, 0x0388, 0x03b1,
+ 0x03b7, 0x03ee, 0x0427, 0x0412, 0x03c5, 0x0378,
+ 0x034c, 0x0325, 0x02cc, 0x026d, 0x026b, 0x02bc,
+ 0x02fa, 0x0316, 0x0336, 0x0314, 0x02b9, 0x02c9,
+ 0x030b, 0x02f7, 0x031b, 0x037d, 0x0369, 0x035c,
+ 0x03e5, 0x0470, 0x04e8, 0x058d, 0x05e8, 0x05ce,
+ 0x05d0, 0x063c, 0x06a4, 0x06a5, 0x06af, 0x06f8,
+ 0x06ce, 0x062e, 0x05d0, 0x05a1, 0x0533, 0x049a,
+ 0x0437, 0x0401, 0x0387, 0x0303, 0x0306, 0x0334,
+ 0x0324, 0x0301, 0x02e5, 0x02e7, 0x02ec, 0x02c7,
+ 0x02db, 0x031b, 0x031d, 0x0344, 0x039b, 0x03a4,
+ 0x0395, 0x03a7, 0x03e6, 0x045e, 0x04a3, 0x04a5,
+ 0x04c7, 0x04d4, 0x04cf, 0x04f5, 0x0505, 0x0536,
+ 0x05ce, 0x064b, 0x0698, 0x06e7, 0x0706, 0x0738,
+ 0x078e, 0x0788, 0x078f, 0x07ff, 0x07f4, 0x079d,
+ 0x07ef, 0x0832, 0x07ca, 0x0790, 0x0779, 0x06f7,
+ 0x06a4, 0x06c2, 0x06ab, 0x061b, 0x05a8, 0x0600,
+ 0x069f, 0x06ad, 0x06c3, 0x074e, 0x07bb, 0x0820,
+ 0x08a0, 0x08e1, 0x08ff, 0x08f3, 0x08a9, 0x086f,
+ 0x0821, 0x07b4, 0x0764, 0x06e9, 0x0653, 0x05fa,
+ 0x05a0, 0x0556, 0x0550, 0x053d, 0x0517, 0x051b,
+ 0x0551, 0x0584, 0x0575, 0x0589, 0x060a, 0x065f,
+ 0x066c, 0x06a8, 0x06f7, 0x072f, 0x0756, 0x0770,
+ 0x078b, 0x0777, 0x0747, 0x075b, 0x077a, 0x0773,
+ 0x0781, 0x0792, 0x07a4, 0x07cd, 0x07c2, 0x0763,
+ 0x06e0, 0x0656, 0x05ac, 0x04d9, 0x0438, 0x03e9,
+ 0x0395, 0x035e, 0x036d, 0x0357, 0x0324, 0x032f,
+ 0x0350, 0x0338, 0x02dd, 0x0298, 0x02bb, 0x02f1,
+ 0x02ee, 0x02f9, 0x035f, 0x03f7, 0x044c, 0x0474,
+ 0x04e9, 0x054a, 0x0520, 0x04f1, 0x0505, 0x050a,
+ 0x050b, 0x0502, 0x04b9, 0x0470, 0x0459, 0x0416,
+ 0x0380, 0x02ed, 0x0289, 0x022b, 0x01bc, 0x013e,
+ 0x00ba, 0x003e, 0xffac, 0xfee6, 0xfe24, 0xfd96,
+ 0xfd09, 0xfc49, 0xfb93, 0xfb1a, 0xfa92, 0xf9e3,
+ 0xf976, 0xf953, 0xf915, 0xf8b9, 0xf87b, 0xf83a,
+ 0xf7ca, 0xf771, 0xf75a, 0xf71e, 0xf6bf, 0xf6b6,
+ 0xf6d3, 0xf703, 0xf792, 0xf80c, 0xf82b, 0xf87f,
+ 0xf911, 0xf98a, 0xf9f4, 0xfa6b, 0xfb29, 0xfc1d,
+ 0xfce1, 0xfdad, 0xfeb9, 0xff9a, 0x0026, 0x008c,
+ 0x00d8, 0x0103, 0x00ea, 0x0098, 0x003e, 0xffca,
+ 0xff3e, 0xfed0, 0xfe87, 0xfe3a, 0xfdb2, 0xfcf7,
+ 0xfc64, 0xfbfe, 0xfb64, 0xfa91, 0xf9da, 0xf976,
+ 0xf94f, 0xf925, 0xf8ff, 0xf91a, 0xf96f, 0xf9b8,
+ 0xf9f7, 0xfa59, 0xfad2, 0xfb5d, 0xfbff, 0xfc68,
+ 0xfc79, 0xfc9c, 0xfcec, 0xfd2c, 0xfd6c, 0xfdcd,
+ 0xfe48, 0xfedc, 0xff97, 0x006f, 0x0136, 0x01dd,
+ 0x0289, 0x0318, 0x0369, 0x03a2, 0x03c4, 0x03e9,
+ 0x0435, 0x047a, 0x04eb, 0x05be, 0x0679, 0x06ff,
+ 0x07a4, 0x0829, 0x086a, 0x08c6, 0x0941, 0x09a7,
+ 0x0a06, 0x0a7b, 0x0afd, 0x0b73, 0x0bcd, 0x0bf3,
+ 0x0bea, 0x0bdc, 0x0ba4, 0x0b11, 0x0a5f, 0x099e,
+ 0x08d7, 0x0857, 0x07f9, 0x0774, 0x06ca, 0x05de,
+ 0x04e9, 0x0452, 0x03ae, 0x02b0, 0x01ba, 0x00e9,
+ 0x002b, 0xff8a, 0xff06, 0xfec7, 0xfeb2, 0xfea4,
+ 0xfeea, 0xff47, 0xff4d, 0xff68, 0xffb1, 0xffc0,
+ 0xffd5, 0x0018, 0x002c, 0xffe6, 0xff5f, 0xfef2,
+ 0xfee9, 0xfef4, 0xfecd, 0xfea1, 0xfe70, 0xfe27,
+ 0xfdde, 0xfd9e, 0xfd46, 0xfce3, 0xfcbb, 0xfcc5,
+ 0xfc9c, 0xfc2c, 0xfbac, 0xfb33, 0xface, 0xfa8d,
+ 0xfa5d, 0xfa20, 0xf9fa, 0xfa2f, 0xfa7c, 0xfa88,
+ 0xfaca, 0xfb69, 0xfba6, 0xfb74, 0xfb78, 0xfbb4,
+ 0xfbd7, 0xfbd4, 0xfbbe, 0xfbab, 0xfb92, 0xfb63,
+ 0xfb22, 0xfadc, 0xfa86, 0xfa02, 0xf97a, 0xf928,
+ 0xf8c7, 0xf84e, 0xf82c, 0xf84b, 0xf868, 0xf878,
+ 0xf860, 0xf850, 0xf868, 0xf882, 0xf8c6, 0xf917,
+ 0xf93c, 0xf9c3, 0xfab4, 0xfb65, 0xfbfc, 0xfcb9,
+ 0xfd71, 0xfe50, 0xff37, 0xfff9, 0x00fc, 0x0224,
+ 0x030b, 0x03ee, 0x049d, 0x04b2, 0x04c4, 0x0537,
+ 0x056b, 0x0536, 0x0517, 0x051a, 0x0517, 0x052b,
+ 0x0557, 0x0584, 0x05b6, 0x05f3, 0x064b, 0x06b6,
+ 0x070b, 0x0750, 0x07b7, 0x082c, 0x0872, 0x0897,
+ 0x08e1, 0x093b, 0x0968, 0x0968, 0x093e, 0x0919,
+ 0x092d, 0x0916, 0x089b, 0x0815, 0x079f, 0x0737,
+ 0x06dc, 0x0656, 0x05e8, 0x05ce, 0x05c1, 0x05da,
+ 0x0626, 0x064b, 0x0653, 0x065e, 0x067e, 0x06ab,
+ 0x0660, 0x05d5, 0x0599, 0x052f, 0x045f, 0x0389,
+ 0x02bf, 0x024b, 0x0205, 0x017e, 0x0142, 0x015e,
+ 0x0162, 0x01aa, 0x0200, 0x0209, 0x022e, 0x0244,
+ 0x025a, 0x02ca, 0x02f7, 0x02eb, 0x032b, 0x0337,
+ 0x0312, 0x0313, 0x02ed, 0x02c1, 0x0294, 0x021a,
+ 0x0193, 0x0114, 0x00ae, 0x007f, 0x0014, 0xffb3,
+ 0xffc6, 0xffa0, 0xff5a, 0xff80, 0xff8e, 0xff82,
+ 0xffb9, 0xffd6, 0xffd7, 0xfff6, 0x0009, 0x0008,
+ 0xfff4, 0xffc4, 0xff87, 0xff28, 0xfeb2, 0xfe48,
+ 0xfde4, 0xfd6f, 0xfcd3, 0xfc53, 0xfc28, 0xfbe0,
+ 0xfb66, 0xfb4b, 0xfb8c, 0xfbd3, 0xfc00, 0xfbf5,
+ 0xfbee, 0xfc1b, 0xfc3a, 0xfc65, 0xfcd9, 0xfd44,
+ 0xfd71, 0xfd9a, 0xfdd5, 0xfdf9, 0xfdfb, 0xfdfe,
+ 0xfe01, 0xfde9, 0xfdea, 0xfe33, 0xfe87, 0xfeaf,
+ 0xfebb, 0xfed6, 0xff27, 0xff8f, 0xffda, 0x0022,
+ 0x0080, 0x00d1, 0x011c, 0x016d, 0x0195, 0x018b,
+ 0x016a, 0x0141, 0x010d, 0x00b4, 0x003c, 0xffdd,
+ 0xffaf, 0xffb4, 0xffb5, 0xff69, 0xff27, 0xff3e,
+ 0xff49, 0xff4e, 0xff8e, 0xff9f, 0xff9e, 0xfffc,
+ 0x0045, 0x004d, 0x009a, 0x0104, 0x0120, 0x011e,
+ 0x012f, 0x013a, 0x0142, 0x0160, 0x0163, 0x0135,
+ 0x012d, 0x014b, 0x012f, 0x010c, 0x0104, 0x00c9,
+ 0x008a, 0x0081, 0x0052, 0xffde, 0xff5e, 0xff00,
+ 0xfee1, 0xfecd, 0xfea6, 0xfec6, 0xff3e, 0xffa3,
+ 0xffc4, 0xffd0, 0x0008, 0x0054, 0x0057, 0x0012,
+ 0xffb6, 0xff37, 0xfeae, 0xfe4a, 0xfdf7, 0xfda2,
+ 0xfd54, 0xfd17, 0xfd1c, 0xfd4d, 0xfd56, 0xfd40,
+ 0xfd13, 0xfca9, 0xfc47, 0xfc14, 0xfbc7, 0xfb6c,
+ 0xfb38, 0xfb1f, 0xfb16, 0xfb1a, 0xfb36, 0xfb89,
+ 0xfc02, 0xfc96, 0xfd2f, 0xfdaf, 0xfe47, 0xfece,
+ 0xfed6, 0xfeb9, 0xfebc, 0xfe8d, 0xfe59, 0xfe4c,
+ 0xfe24, 0xfe19, 0xfe5a, 0xfe86, 0xfe82, 0xfe90,
+ 0xfeec, 0xff79, 0xffb8, 0xffa1, 0xffae, 0xffed,
+ 0x0015, 0x0004, 0xffe1, 0xfff9, 0x0014, 0xffdf,
+ 0xff86, 0xff37, 0xfef0, 0xfecd, 0xfece, 0xfed7,
+ 0xfed9, 0xfed6, 0xfeee, 0xff0a, 0xff06, 0xff09,
+ 0xff03, 0xfedc, 0xfed8, 0xfeef, 0xff04, 0xff40,
+ 0xff6e, 0xff69, 0xff8c, 0xffb7, 0xffa2, 0xffa0,
+ 0xffc9, 0xffd6, 0xffcb, 0xffc5, 0xffbc, 0xffb5,
+ 0xffbc, 0xffbc, 0xff8b, 0xff4e, 0xff68, 0xffbc,
+ 0xffde, 0xffd9, 0xffee, 0x0022, 0x006e, 0x00ba,
+ 0x00fb, 0x014d, 0x01b1, 0x01ee, 0x01e5, 0x01cf,
+ 0x01e1, 0x01db, 0x017b, 0x00f8, 0x0096, 0x004e,
+ 0xffe9, 0xff4f, 0xfebe, 0xfe67, 0xfe2f, 0xfdf0,
+ 0xfd97, 0xfd29, 0xfcc3, 0xfc74, 0xfc5c, 0xfc5d,
+ 0xfc1e, 0xfbeb, 0xfc11, 0xfc20, 0xfc25, 0xfc7e,
+ 0xfccb, 0xfced, 0xfd26, 0xfd4c, 0xfd56, 0xfd57,
+ 0xfd46, 0xfd71, 0xfdca, 0xfde9, 0xfe23, 0xfec0,
+ 0xff60, 0xffcd, 0x0019, 0x006e, 0x00cc, 0x00eb,
+ 0x00e1, 0x00f1, 0x00ee, 0x00dd, 0x00f3, 0x0126,
+ 0x0176, 0x01ae, 0x01bc, 0x0217, 0x02b4, 0x0326,
+ 0x038f, 0x03e6, 0x03f5, 0x040c, 0x0440, 0x0457,
+ 0x046d, 0x047e, 0x0463, 0x0449, 0x0451, 0x045a,
+ 0x0452, 0x0448, 0x046a, 0x04c3, 0x0524, 0x059c,
+ 0x0637, 0x06a2, 0x06d4, 0x071d, 0x0783, 0x07fb,
+ 0x0882, 0x08e4, 0x0925, 0x0965, 0x096b, 0x0920,
+ 0x08c5, 0x088b, 0x084b, 0x07b6, 0x06fc, 0x0685,
+ 0x0626, 0x05a9, 0x0523, 0x0492, 0x041e, 0x03f0,
+ 0x03dd, 0x03dd, 0x03e7, 0x03d5, 0x03e2, 0x03f9,
+ 0x03cc, 0x03a1, 0x0396, 0x038e, 0x03b8, 0x03e1,
+ 0x03d0, 0x03c3, 0x03a8, 0x038a, 0x03a1, 0x03ac,
+ 0x03d3, 0x045c, 0x04be, 0x04f0, 0x056b, 0x05f5,
+ 0x065b, 0x06ae, 0x06b6, 0x066f, 0x0617, 0x05ee,
+ 0x060f, 0x061f, 0x05eb, 0x05c6, 0x05d3, 0x05f8,
+ 0x062c, 0x0640, 0x062c, 0x0617, 0x0603, 0x05d8,
+ 0x0597, 0x057c, 0x0595, 0x058f, 0x056a, 0x057d,
+ 0x05b5, 0x05eb, 0x062d, 0x0663, 0x0669, 0x065c,
+ 0x066c, 0x0695, 0x0691, 0x065c, 0x062a, 0x05e8,
+ 0x058e, 0x0533, 0x04cc, 0x047c, 0x045e, 0x0451,
+ 0x0471, 0x04b7, 0x04c7, 0x04c7, 0x04f5, 0x0507,
+ 0x04fb, 0x052f, 0x059a, 0x05f8, 0x0637, 0x0660,
+ 0x0671, 0x0688, 0x06af, 0x06b5, 0x069d, 0x06a7,
+ 0x06c4, 0x06e0, 0x0716, 0x0748, 0x0767, 0x0791,
+ 0x07a0, 0x077e, 0x073d, 0x06d0, 0x0655, 0x05ff,
+ 0x05d9, 0x05d4, 0x05aa, 0x0553, 0x050c, 0x04b4,
+ 0x0443, 0x03fc, 0x03be, 0x0377, 0x034e, 0x030f,
+ 0x02bf, 0x02b3, 0x02e3, 0x0314, 0x0324, 0x0339,
+ 0x0395, 0x03fc, 0x043b, 0x0478, 0x049a, 0x04aa,
+ 0x04ce, 0x04df, 0x04fe, 0x0535, 0x0531, 0x052a,
+ 0x053e, 0x0525, 0x0524, 0x0535, 0x04f3, 0x04b3,
+ 0x0492, 0x0453, 0x0459, 0x049c, 0x048c, 0x043a,
+ 0x03e8, 0x0390, 0x032b, 0x02a1, 0x01fa, 0x0164,
+ 0x00e4, 0x0076, 0x0006, 0xff6f, 0xfecb, 0xfe5a,
+ 0xfe00, 0xfd57, 0xfc6e, 0xfb9d, 0xfab4, 0xf98f,
+ 0xf8ad, 0xf804, 0xf73e, 0xf6bb, 0xf690, 0xf651,
+ 0xf63b, 0xf696, 0xf70e, 0xf777, 0xf7ee, 0xf88d,
+ 0xf966, 0xfa64, 0xfb68, 0xfc6a, 0xfd54, 0xfe0d,
+ 0xfea5, 0xff1b, 0xff53, 0xff60, 0xff5a, 0xff3b,
+ 0xff2e, 0xff13, 0xfea4, 0xfe63, 0xfeb3, 0xfeee,
+ 0xfedf, 0xfee0, 0xfecf, 0xfe95, 0xfe64, 0xfe3f,
+ 0xfe2c, 0xfdf4, 0xfd86, 0xfd5f, 0xfd65, 0xfd23,
+ 0xfce7, 0xfceb, 0xfcf8, 0xfd12, 0xfd16, 0xfceb,
+ 0xfce0, 0xfce9, 0xfcc2, 0xfc77, 0xfc25, 0xfbea,
+ 0xfbe4, 0xfbfb, 0xfc12, 0xfc2b, 0xfc49, 0xfc64,
+ 0xfc6c, 0xfc81, 0xfcc0, 0xfd06, 0xfd5a, 0xfdd9,
+ 0xfe5b, 0xfee0, 0xff9e, 0x0067, 0x0117, 0x01dc,
+ 0x02a1, 0x0346, 0x0415, 0x050e, 0x05e4, 0x06b8,
+ 0x07a7, 0x087e, 0x0947, 0x0a18, 0x0adf, 0x0bc3,
+ 0x0cb4, 0x0d64, 0x0dd6, 0x0e16, 0x0e3c, 0x0e58,
+ 0x0e10, 0x0d6f, 0x0cf2, 0x0c6d, 0x0bb5, 0x0b34,
+ 0x0af7, 0x0ad0, 0x0abd, 0x0a9b, 0x0a61, 0x0a0c,
+ 0x0994, 0x0923, 0x08ac, 0x0807, 0x0757, 0x06ab,
+ 0x0610, 0x05a2, 0x0547, 0x0510, 0x04f7, 0x04c5,
+ 0x04af, 0x04a8, 0x046a, 0x0453, 0x0468, 0x0439,
+ 0x03fb, 0x03ce, 0x0380, 0x033a, 0x02f4, 0x0290,
+ 0x022f, 0x01b5, 0x0127, 0x00af, 0x0024, 0xff90,
+ 0xff17, 0xfe9a, 0xfe22, 0xfdb5, 0xfd4e, 0xfd1a,
+ 0xfcfd, 0xfcd4, 0xfcd6, 0xfcf8, 0xfd19, 0xfd50,
+ 0xfd8a, 0xfda5, 0xfd96, 0xfd81, 0xfda6, 0xfdd1,
+ 0xfdd2, 0xfdd6, 0xfdbd, 0xfd83, 0xfd6e, 0xfd45,
+ 0xfcf2, 0xfcba, 0xfc6b, 0xfbfb, 0xfbba, 0xfb80,
+ 0xfb2a, 0xfae5, 0xfabe, 0xfa9f, 0xfa56, 0xf9ed,
+ 0xf9a4, 0xf946, 0xf898, 0xf7dd, 0xf733, 0xf693,
+ 0xf612, 0xf5a1, 0xf545, 0xf51b, 0xf52b, 0xf581,
+ 0xf5e1, 0xf62b, 0xf6b5, 0xf767, 0xf7e5, 0xf86a,
+ 0xf90c, 0xf993, 0xfa2d, 0xfad8, 0xfb52, 0xfbac,
+ 0xfbf5, 0xfc22, 0xfc42, 0xfc3e, 0xfc25, 0xfc32,
+ 0xfc43, 0xfc43, 0xfc70, 0xfcc7, 0xfd28, 0xfdab,
+ 0xfe56, 0xff0f, 0xffb0, 0x002c, 0x00e1, 0x01db,
+ 0x0297, 0x031c, 0x03ce, 0x0468, 0x04b5, 0x04f3,
+ 0x0504, 0x04c7, 0x0493, 0x047b, 0x0446, 0x03f5,
+ 0x03b2, 0x039a, 0x03aa, 0x03c8, 0x03f4, 0x0440,
+ 0x04a7, 0x0519, 0x0588, 0x05ea, 0x062b, 0x0641,
+ 0x0658, 0x068c, 0x06a9, 0x0686, 0x062e, 0x05b8,
+ 0x0537, 0x04b8, 0x0431, 0x0381, 0x029d, 0x01cf,
+ 0x0156, 0x00fb, 0x0095, 0x0049, 0xfffc, 0xff9c,
+ 0xff8d, 0xffd6, 0x0018, 0x0058, 0x00be, 0x0125,
+ 0x017f, 0x01cc, 0x01e4, 0x01c7, 0x0196, 0x0151,
+ 0x00f2, 0x006f, 0xffe4, 0xff74, 0xff11, 0xfeb0,
+ 0xfe51, 0xfde1, 0xfd9e, 0xfdab, 0xfda2, 0xfd8c,
+ 0xfdc5, 0xfe1a, 0xfe7c, 0xff12, 0xff85, 0xffb6,
+ 0xffe5, 0xfff5, 0xffd9, 0xffa2, 0xff2a, 0xfe95,
+ 0xfe2c, 0xfdcf, 0xfd70, 0xfd18, 0xfcbb, 0xfc66,
+ 0xfc1a, 0xfbce, 0xfb9d, 0xfb71, 0xfb38, 0xfb20,
+ 0xfb1a, 0xfaf4, 0xfaca, 0xfab3, 0xfa92, 0xfa5d,
+ 0xfa25, 0xf9f9, 0xf9ec, 0xfa00, 0xfa19, 0xf9ff,
+ 0xf9b5, 0xf974, 0xf943, 0xf91b, 0xf912, 0xf90d,
+ 0xf8f0, 0xf8f5, 0xf91a, 0xf933, 0xf971, 0xf9db,
+ 0xfa30, 0xfa8e, 0xfb0d, 0xfb77, 0xfbeb, 0xfc8d,
+ 0xfd1a, 0xfd79, 0xfdbf, 0xfde1, 0xfde9, 0xfdde,
+ 0xfdd0, 0xfdd4, 0xfdb8, 0xfd62, 0xfd0b, 0xfcb0,
+ 0xfc5b, 0xfc3f, 0xfc2c, 0xfc0b, 0xfc0f, 0xfc1e,
+ 0xfc19, 0xfc2f, 0xfc55, 0xfc78, 0xfcb5, 0xfd0f,
+ 0xfd6c, 0xfdbb, 0xfe0f, 0xfe78, 0xfece, 0xff04,
+ 0xff3c, 0xff5b, 0xff55, 0xff65, 0xff97, 0xffbd,
+ 0xffd1, 0xffe7, 0x0004, 0x0018, 0x0020, 0x0017,
+ 0xffe9, 0xffc4, 0xffcf, 0xffc0, 0xff92, 0xff9d,
+ 0xffcf, 0xfffb, 0x003c, 0x0092, 0x00f5, 0x0178,
+ 0x01e8, 0x021b, 0x023c, 0x024d, 0x022b, 0x01ed,
+ 0x01b3, 0x0170, 0x0111, 0x008d, 0xffff, 0xff93,
+ 0xff35, 0xfebd, 0xfe43, 0xfdc6, 0xfd43, 0xfce3,
+ 0xfc9f, 0xfc5a, 0xfc25, 0xfbf3, 0xfbb8, 0xfba2,
+ 0xfbb7, 0xfbe1, 0xfc08, 0xfc0f, 0xfc21, 0xfc5f,
+ 0xfc8c, 0xfcac, 0xfcf4, 0xfd3c, 0xfd68, 0xfd82,
+ 0xfd7b, 0xfd66, 0xfd66, 0xfd73, 0xfd8c, 0xfdc5,
+ 0xfe08, 0xfe3a, 0xfe7b, 0xfee2, 0xff43, 0xff93,
+ 0x0000, 0x007e, 0x00d8, 0x0113, 0x0137, 0x013f,
+ 0x0138, 0x012a, 0x00f9, 0x00a5, 0x0066, 0x004a,
+ 0x0014, 0xffdc, 0xffdb, 0xffdf, 0xffc2, 0xff97,
+ 0xff66, 0xff4e, 0xff43, 0xff1e, 0xff1b, 0xff2c,
+ 0xff08, 0xff0d, 0xff66, 0xff99, 0xffb1, 0xffec,
+ 0x0017, 0x002c, 0x0049, 0x0062, 0x0077, 0x0084,
+ 0x008a, 0x0094, 0x00a8, 0x00d3, 0x0101, 0x0117,
+ 0x012c, 0x013f, 0x0134, 0x0137, 0x016a, 0x01b3,
+ 0x01fe, 0x0242, 0x0291, 0x0304, 0x038c, 0x0411,
+ 0x047c, 0x04b7, 0x04db, 0x04fb, 0x04f5, 0x04b4,
+ 0x0457, 0x03fe, 0x039c, 0x0329, 0x02cc, 0x0280,
+ 0x022f, 0x01f5, 0x01ca, 0x018c, 0x015d, 0x012d,
+ 0x00d1, 0x006d, 0xfffb, 0xff4e, 0xfead, 0xfe5d,
+ 0xfe20, 0xfdbe, 0xfd74, 0xfd74, 0xfd87, 0xfd90,
+ 0xfdb8, 0xfdd8, 0xfde5, 0xfe16, 0xfe4d, 0xfe64,
+ 0xfe87, 0xfebe, 0xfef3, 0xff20, 0xff39, 0xff50,
+ 0xff75, 0xff8c, 0xffa9, 0xffd6, 0xfff8, 0x002a,
+ 0x006e, 0x0092, 0x00a4, 0x00ba, 0x00b5, 0x00b2,
+ 0x00be, 0x00b8, 0x00b5, 0x00c6, 0x00bd, 0x00a3,
+ 0x00b2, 0x00bf, 0x00a3, 0x0093, 0x0082, 0x003f,
+ 0x0010, 0x001c, 0x002e, 0x004d, 0x0082, 0x00b2,
+ 0x00ff, 0x0162, 0x01ad, 0x0219, 0x02ca, 0x0383,
+ 0x043e, 0x0502, 0x05a7, 0x0645, 0x06ed, 0x0758,
+ 0x0788, 0x07c3, 0x07f1, 0x07f9, 0x080c, 0x0827,
+ 0x0830, 0x084a, 0x0874, 0x089c, 0x08d5, 0x0918,
+ 0x095b, 0x09a3, 0x09c2, 0x09b5, 0x09b6, 0x09bd,
+ 0x09b2, 0x099e, 0x0966, 0x08ff, 0x088c, 0x0819,
+ 0x07ac, 0x0760, 0x0728, 0x06e4, 0x06a4, 0x0688,
+ 0x0678, 0x065e, 0x066c, 0x06a2, 0x06c4, 0x06e4,
+ 0x0723, 0x0757, 0x076d, 0x077f, 0x078e, 0x0790,
+ 0x077d, 0x0759, 0x073a, 0x072a, 0x071b, 0x06ff,
+ 0x06dd, 0x06c8, 0x06bc, 0x06be, 0x06dc, 0x0700,
+ 0x071b, 0x0723, 0x0710, 0x0710, 0x0728, 0x0724,
+ 0x0740, 0x07b1, 0x082a, 0x0898, 0x091a, 0x0988,
+ 0x09ce, 0x09fa, 0x09f9, 0x09d3, 0x099f, 0x0961,
+ 0x092f, 0x0902, 0x08c7, 0x0888, 0x0852, 0x082f,
+ 0x0836, 0x085d, 0x0885, 0x08b2, 0x08e2, 0x08ef,
+ 0x08ca, 0x0898, 0x0873, 0x0852, 0x0840, 0x0855,
+ 0x0886, 0x08c4, 0x090c, 0x0957, 0x099b, 0x09d7,
+ 0x09fc, 0x09fd, 0x09f6, 0x09f9, 0x09f9, 0x0a0d,
+ 0x0a35, 0x0a53, 0x0a78, 0x0a9b, 0x0a96, 0x0a9b,
+ 0x0abf, 0x0ac7, 0x0ac0, 0x0a9c, 0x0a31, 0x09c0,
+ 0x095f, 0x08f4, 0x08ab, 0x0877, 0x0844, 0x084e,
+ 0x085f, 0x0838, 0x081d, 0x0808, 0x07cd, 0x0794,
+ 0x0753, 0x0700, 0x06d1, 0x06ac, 0x067a, 0x0677,
+ 0x06a2, 0x06cf, 0x06f4, 0x0718, 0x0739, 0x0744,
+ 0x073e, 0x0751, 0x0760, 0x073d, 0x0730, 0x0762,
+ 0x079a, 0x07d2, 0x081d, 0x0867, 0x08a9, 0x08df,
+ 0x08fc, 0x0915, 0x0936, 0x0943, 0x093c, 0x0923,
+ 0x08eb, 0x08ab, 0x0888, 0x0871, 0x0832, 0x07ba,
+ 0x072f, 0x069e, 0x05e5, 0x0514, 0x044e, 0x037c,
+ 0x029a, 0x01c4, 0x00f2, 0x0026, 0xff5e, 0xfe91,
+ 0xfde9, 0xfd68, 0xfcdd, 0xfc65, 0xfc2c, 0xfc04,
+ 0xfbc5, 0xfb81, 0xfb59, 0xfb5b, 0xfb78, 0xfba9,
+ 0xfbf1, 0xfc40, 0xfc9a, 0xfced, 0xfd14, 0xfd2f,
+ 0xfd5a, 0xfd6f, 0xfd74, 0xfd83, 0xfd80, 0xfd76,
+ 0xfd79, 0xfd78, 0xfd78, 0xfd77, 0xfd6f, 0xfd85,
+ 0xfdaa, 0xfdbb, 0xfddc, 0xfe14, 0xfe3b, 0xfe51,
+ 0xfe5e, 0xfe68, 0xfe7a, 0xfe7f, 0xfe6e, 0xfe5e,
+ 0xfe49, 0xfe3f, 0xfe51, 0xfe56, 0xfe45, 0xfe29,
+ 0xfde5, 0xfd7b, 0xfd00, 0xfc61, 0xfbb8, 0xfb25,
+ 0xfa8c, 0xf9f1, 0xf96c, 0xf8df, 0xf84e, 0xf7ce,
+ 0xf755, 0xf6f2, 0xf6a2, 0xf64b, 0xf612, 0xf61b,
+ 0xf640, 0xf67b, 0xf6f0, 0xf796, 0xf849, 0xf906,
+ 0xf9df, 0xfad0, 0xfbc6, 0xfcbc, 0xfdab, 0xfe93,
+ 0xff87, 0x0081, 0x0174, 0x0264, 0x0348, 0x03fe,
+ 0x0497, 0x052d, 0x05b5, 0x0635, 0x06ba, 0x0720,
+ 0x0768, 0x07b4, 0x07f9, 0x0816, 0x0822, 0x0839,
+ 0x0853, 0x085c, 0x0856, 0x0859, 0x085a, 0x0843,
+ 0x0827, 0x0813, 0x07fc, 0x07f5, 0x0803, 0x0807,
+ 0x0808, 0x0801, 0x07d8, 0x07af, 0x0799, 0x076a,
+ 0x072e, 0x0702, 0x06cb, 0x068e, 0x0651, 0x05ef,
+ 0x057b, 0x0515, 0x0497, 0x040f, 0x03ab, 0x0349,
+ 0x02d1, 0x025f, 0x0203, 0x01bc, 0x0169, 0x00fe,
+ 0x00a4, 0x0052, 0xffee, 0xffa1, 0xff6d, 0xff1e,
+ 0xfecc, 0xfe9d, 0xfe86, 0xfe6d, 0xfe3b, 0xfe08,
+ 0xfde5, 0xfda9, 0xfd68, 0xfd48, 0xfd2a, 0xfd1b,
+ 0xfd2f, 0xfd41, 0xfd66, 0xfdba, 0xfdf8, 0xfe1a,
+ 0xfe55, 0xfe8a, 0xfeaa, 0xfed3, 0xfedf, 0xfeaa,
+ 0xfe47, 0xfdb7, 0xfcfb, 0xfc34, 0xfb66, 0xfa9f,
+ 0xfa03, 0xf982, 0xf908, 0xf8a0, 0xf842, 0xf7e5,
+ 0xf79e, 0xf764, 0xf738, 0xf724, 0xf712, 0xf704,
+ 0xf70d, 0xf70d, 0xf6f3, 0xf6c1, 0xf683, 0xf654,
+ 0xf61e, 0xf5d1, 0xf59a, 0xf577, 0xf554, 0xf53f,
+ 0xf529, 0xf511, 0xf50b, 0xf509, 0xf52a, 0xf57e,
+ 0xf5d8, 0xf649, 0xf6eb, 0xf79e, 0xf861, 0xf93c,
+ 0xfa24, 0xfb10, 0xfbd6, 0xfc5e, 0xfccc, 0xfd22,
+ 0xfd57, 0xfd78, 0xfd8a, 0xfd99, 0xfdb3, 0xfdda,
+ 0xfe12, 0xfe3f, 0xfe6b, 0xfec4, 0xff2a, 0xff7f,
+ 0xffee, 0x0093, 0x0160, 0x023e, 0x0322, 0x03fb,
+ 0x04a6, 0x052e, 0x05b1, 0x0609, 0x0623, 0x061a,
+ 0x05f4, 0x05d0, 0x05ae, 0x0572, 0x0548, 0x052e,
+ 0x04f4, 0x04b6, 0x0480, 0x0455, 0x0448, 0x042a,
+ 0x03fa, 0x03eb, 0x03dc, 0x03d7, 0x03ff, 0x040b,
+ 0x0402, 0x041f, 0x0435, 0x042c, 0x0418, 0x03e5,
+ 0x0392, 0x032d, 0x02ba, 0x0245, 0x01d6, 0x018d,
+ 0x0170, 0x015b, 0x014a, 0x0137, 0x0115, 0x00fb,
+ 0x00ea, 0x00d7, 0x00d7, 0x00c7, 0x00af, 0x00c6,
+ 0x00e3, 0x00d8, 0x00d8, 0x00eb, 0x00f7, 0x0100,
+ 0x00f7, 0x00c8, 0x0090, 0x0060, 0x001c, 0xffd3,
+ 0xffac, 0xff96, 0xff91, 0xffb3, 0xffc9, 0xffc8,
+ 0xffca, 0xff9c, 0xff44, 0xff03, 0xfeb8, 0xfe67,
+ 0xfe49, 0xfe41, 0xfe36, 0xfe22, 0xfdf5, 0xfdc9,
+ 0xfd8f, 0xfd22, 0xfcb2, 0xfc59, 0xfbf8, 0xfba0,
+ 0xfb58, 0xfb17, 0xfad7, 0xfa91, 0xfa61, 0xfa4f,
+ 0xfa28, 0xf9f6, 0xf9e8, 0xf9f4, 0xfa02, 0xfa11,
+ 0xfa31, 0xfa50, 0xfa54, 0xfa62, 0xfa81, 0xfa93,
+ 0xfab9, 0xfaf6, 0xfb21, 0xfb53, 0xfb91, 0xfbc9,
+ 0xfc0d, 0xfc41, 0xfc48, 0xfc47, 0xfc3e, 0xfc22,
+ 0xfc07, 0xfbed, 0xfbd0, 0xfbb2, 0xfb95, 0xfb91,
+ 0xfba7, 0xfbc8, 0xfbf6, 0xfc25, 0xfc48, 0xfc75,
+ 0xfcc4, 0xfd24, 0xfd75, 0xfdb2, 0xfde3, 0xfdf7,
+ 0xfdef, 0xfde6, 0xfdcf, 0xfd95, 0xfd48, 0xfd14,
+ 0xfcfe, 0xfcd4, 0xfca8, 0xfcad, 0xfcae, 0xfc91,
+ 0xfc98, 0xfcc4, 0xfcf1, 0xfd2d, 0xfd77, 0xfdca,
+ 0xfe2c, 0xfe90, 0xfef9, 0xff60, 0xffca, 0x0040,
+ 0x00a8, 0x00f4, 0x0136, 0x0160, 0x017f, 0x01a1,
+ 0x01b9, 0x01bb, 0x018c, 0x0136, 0x00ff, 0x00cf,
+ 0x0082, 0x003f, 0xffef, 0xff8a, 0xff4c, 0xff21,
+ 0xfef7, 0xfee9, 0xfede, 0xfecd, 0xfeb4, 0xfe68,
+ 0xfe01, 0xfdab, 0xfd4f, 0xfcef, 0xfc9f, 0xfc54,
+ 0xfc06, 0xfbb5, 0xfb74, 0xfb44, 0xfb16, 0xfb00,
+ 0xfaf2, 0xfad3, 0xfabf, 0xfab3, 0xfaae, 0xfaec,
+ 0xfb45, 0xfb85, 0xfbe4, 0xfc58, 0xfcbd, 0xfd2c,
+ 0xfd83, 0xfda2, 0xfdb9, 0xfdc7, 0xfdc6, 0xfdd5,
+ 0xfdea, 0xfe06, 0xfe35, 0xfe59, 0xfe7e, 0xfeb5,
+ 0xfede, 0xfef7, 0xff0a, 0xff07, 0xff03, 0xff17,
+ 0xff31, 0xff3e, 0xff2b, 0xff05, 0xfef9, 0xfef7,
+ 0xfee3, 0xfed2, 0xfec2, 0xfea8, 0xfea1, 0xfea9,
+ 0xfea7, 0xfea8, 0xfeb5, 0xfed6, 0xff05, 0xff17,
+ 0xff0f, 0xff0a, 0xfefa, 0xfeef, 0xfeef, 0xfee9,
+ 0xfef9, 0xff23, 0xff44, 0xff74, 0xffb3, 0xffec,
+ 0x0035, 0x0080, 0x00be, 0x011c, 0x0185, 0x01da,
+ 0x0234, 0x0279, 0x02a9, 0x02ea, 0x0318, 0x0328,
+ 0x0343, 0x0356, 0x0368, 0x0396, 0x03af, 0x038e,
+ 0x0352, 0x0308, 0x02a9, 0x0243, 0x01de, 0x0183,
+ 0x0150, 0x0148, 0x0144, 0x0131, 0x0110, 0x00e7,
+ 0x00d0, 0x00dc, 0x00e4, 0x00d9, 0x00ca, 0x00b5,
+ 0x0093, 0x0065, 0x0038, 0x001c, 0x000a, 0x0000,
+ 0xfff9, 0xffdd, 0xffbb, 0xffa2, 0xff74, 0xff46,
+ 0xff37, 0xff4c, 0xffa3, 0x002f, 0x00c1, 0x0164,
+ 0x01ed, 0x0224, 0x0241, 0x024a, 0x020b, 0x01c7,
+ 0x01b5, 0x01a4, 0x0188, 0x0173, 0x0154, 0x0110,
+ 0x00a7, 0x0036, 0xffce, 0xff71, 0xff3a, 0xff34,
+ 0xff50, 0xff87, 0xffb4, 0xffb7, 0xffaa, 0xff8c,
+ 0xff5c, 0xff5c, 0xffa2, 0x0001, 0x006f, 0x00df,
+ 0x013f, 0x0194, 0x01c9, 0x01df, 0x0200, 0x0230,
+ 0x026b, 0x02ce, 0x034d, 0x03c7, 0x043f, 0x04a3,
+ 0x04f2, 0x054d, 0x05aa, 0x060b, 0x067c, 0x06da,
+ 0x0714, 0x0741, 0x0768, 0x079c, 0x07d0, 0x07e1,
+ 0x07fc, 0x0840, 0x0866, 0x0864, 0x085c, 0x082e,
+ 0x07db, 0x0788, 0x0736, 0x06f5, 0x06e4, 0x0706,
+ 0x0744, 0x0770, 0x0774, 0x0760, 0x0723, 0x06b8,
+ 0x0649, 0x05dc, 0x057f, 0x055c, 0x0554, 0x0543,
+ 0x0531, 0x0516, 0x0505, 0x0507, 0x04e2, 0x04ae,
+ 0x04b5, 0x04d6, 0x04f4, 0x0525, 0x0547, 0x0558,
+ 0x057f, 0x05ac, 0x05cb, 0x05e7, 0x0612, 0x0661,
+ 0x06c4, 0x0724, 0x077d, 0x07c3, 0x07ed, 0x0801,
+ 0x0807, 0x0806, 0x07f3, 0x07d5, 0x07cb, 0x07b9,
+ 0x0785, 0x0755, 0x0731, 0x0719, 0x0722, 0x072e,
+ 0x072e, 0x073b, 0x074d, 0x075d, 0x076d, 0x0773,
+ 0x077c, 0x0794, 0x07ae, 0x07bb, 0x07bd, 0x07c5,
+ 0x07be, 0x0780, 0x0730, 0x06f6, 0x06d1, 0x06c1,
+ 0x06af, 0x0699, 0x069e, 0x069d, 0x069a, 0x06b9,
+ 0x06bb, 0x06b2, 0x06ee, 0x072c, 0x074e, 0x0784,
+ 0x07b4, 0x07ed, 0x083e, 0x0871, 0x08a8, 0x08f5,
+ 0x0927, 0x0956, 0x098b, 0x09a5, 0x09aa, 0x0986,
+ 0x094a, 0x0926, 0x08f1, 0x089f, 0x0854, 0x07f8,
+ 0x079e, 0x076e, 0x074d, 0x0740, 0x0748, 0x073a,
+ 0x0712, 0x06e2, 0x06b7, 0x0694, 0x0663, 0x062c,
+ 0x05fe, 0x05d2, 0x05c2, 0x05cb, 0x05bb, 0x05a3,
+ 0x05ac, 0x05ba, 0x05b2, 0x05ac, 0x05b5, 0x05bb,
+ 0x05c1, 0x05e2, 0x0613, 0x065b, 0x06c3, 0x0715,
+ 0x0745, 0x076c, 0x0768, 0x0735, 0x06f2, 0x0692,
+ 0x062e, 0x05e6, 0x05b5, 0x059f, 0x0585, 0x054c,
+ 0x0512, 0x04db, 0x049b, 0x0458, 0x03fa, 0x037f,
+ 0x02fc, 0x0262, 0x01cf, 0x0162, 0x00fe, 0x00ab,
+ 0x007a, 0x0052, 0x0020, 0xffe4, 0xffb2, 0xff92,
+ 0xff67, 0xff46, 0xff3b, 0xff15, 0xfed3, 0xfe9a,
+ 0xfe65, 0xfe29, 0xfde7, 0xfdab, 0xfd7a, 0xfd50,
+ 0xfd40, 0xfd38, 0xfd15, 0xfcfc, 0xfcf3, 0xfcca,
+ 0xfc9f, 0xfc86, 0xfc61, 0xfc45, 0xfc49, 0xfc73,
+ 0xfcc0, 0xfd16, 0xfd7a, 0xfde3, 0xfe2a, 0xfe62,
+ 0xfe91, 0xfe99, 0xfe94, 0xfe96, 0xfe95, 0xfea0,
+ 0xfeb9, 0xfece, 0xfeca, 0xfe9f, 0xfe67, 0xfe1c,
+ 0xfdb0, 0xfd55, 0xfd09, 0xfcb6, 0xfc86, 0xfc59,
+ 0xfc0c, 0xfbd0, 0xfb8d, 0xfb2b, 0xfadd, 0xfa97,
+ 0xfa5b, 0xfa44, 0xfa28, 0xfa12, 0xfa1c, 0xfa22,
+ 0xfa30, 0xfa5a, 0xfa8b, 0xfad0, 0xfb25, 0xfb85,
+ 0xfbfe, 0xfc7a, 0xfcf6, 0xfd8d, 0xfe31, 0xfef1,
+ 0xffcd, 0x0084, 0x011a, 0x01ab, 0x0216, 0x0266,
+ 0x02bf, 0x031c, 0x036d, 0x03a6, 0x03c8, 0x03f0,
+ 0x041d, 0x0442, 0x046e, 0x04a6, 0x04df, 0x052b,
+ 0x05a4, 0x0638, 0x06cb, 0x076a, 0x0812, 0x0896,
+ 0x08fc, 0x095e, 0x0997, 0x0991, 0x096e, 0x093f,
+ 0x08f5, 0x089b, 0x0851, 0x0814, 0x07c8, 0x076c,
+ 0x0707, 0x06a6, 0x065c, 0x0625, 0x0600, 0x05e3,
+ 0x05b6, 0x0595, 0x0597, 0x0587, 0x0560, 0x0546,
+ 0x0520, 0x04e4, 0x049f, 0x045f, 0x0437, 0x0403,
+ 0x03a7, 0x035d, 0x0308, 0x0273, 0x01e0, 0x0163,
+ 0x00e1, 0x0096, 0x008f, 0x00b5, 0x0115, 0x0184,
+ 0x01d3, 0x020b, 0x020c, 0x01dc, 0x01b9, 0x01a0,
+ 0x018e, 0x0193, 0x0199, 0x01ad, 0x01c8, 0x01aa,
+ 0x0156, 0x00db, 0x0025, 0xff59, 0xfe9c, 0xfde9,
+ 0xfd6d, 0xfd3f, 0xfd3a, 0xfd60, 0xfdb8, 0xfe27,
+ 0xfe8e, 0xfed6, 0xff02, 0xff06, 0xfecc, 0xfe79,
+ 0xfe22, 0xfdac, 0xfd28, 0xfca6, 0xfc25, 0xfbbc,
+ 0xfb61, 0xfb01, 0xfaaa, 0xfa4d, 0xf9e2, 0xf989,
+ 0xf944, 0xf90d, 0xf8e1, 0xf8bd, 0xf8d6, 0xf92b,
+ 0xf974, 0xf9be, 0xfa34, 0xfab4, 0xfb1a, 0xfb6c,
+ 0xfbc3, 0xfc21, 0xfc60, 0xfc77, 0xfc6a, 0xfc3b,
+ 0xfc08, 0xfbec, 0xfbe4, 0xfc00, 0xfc37, 0xfc7f,
+ 0xfce8, 0xfd55, 0xfda9, 0xfdfa, 0xfe49, 0xfe8f,
+ 0xfed9, 0xff2e, 0xff92, 0xfff0, 0x003b, 0x0081,
+ 0x00b1, 0x00cb, 0x00eb, 0x00fd, 0x00f8, 0x00df,
+ 0x0099, 0x0043, 0x000d, 0xfffa, 0x000b, 0x0042,
+ 0x008a, 0x00dd, 0x0128, 0x016d, 0x01ac, 0x01cd,
+ 0x01fb, 0x0255, 0x02b2, 0x031b, 0x038f, 0x03d6,
+ 0x0408, 0x043b, 0x0446, 0x0442, 0x0447, 0x0448,
+ 0x0456, 0x045c, 0x0451, 0x044e, 0x0432, 0x03f0,
+ 0x03b8, 0x0376, 0x0322, 0x02eb, 0x02c8, 0x02ac,
+ 0x02bb, 0x02ef, 0x0320, 0x033e, 0x0345, 0x0334,
+ 0x030e, 0x02d8, 0x02a6, 0x0289, 0x027a, 0x026a,
+ 0x025b, 0x0256, 0x025e, 0x0267, 0x0267, 0x0262,
+ 0x0251, 0x022c, 0x01fc, 0x01b3, 0x014e, 0x00ef,
+ 0x00a6, 0x0076, 0x0063, 0x005c, 0x006d, 0x00a6,
+ 0x00d8, 0x00f4, 0x011e, 0x013d, 0x013e, 0x0135,
+ 0x0123, 0x0113, 0x0107, 0x0100, 0x0119, 0x0140,
+ 0x015e, 0x016f, 0x0149, 0x00f1, 0x0090, 0x0007,
+ 0xff67, 0xfee5, 0xfe58, 0xfdc5, 0xfd66, 0xfd24,
+ 0xfcf6, 0xfcfb, 0xfd24, 0xfd50, 0xfd72, 0xfd7d,
+ 0xfd68, 0xfd35, 0xfd0d, 0xfd00, 0xfcf6, 0xfd0a,
+ 0xfd4b, 0xfd88, 0xfdb0, 0xfdc9, 0xfdbc, 0xfd8c,
+ 0xfd58, 0xfd33, 0xfd0d, 0xfcdf, 0xfccb, 0xfcd0,
+ 0xfccf, 0xfcd9, 0xfd04, 0xfd3e, 0xfd77, 0xfdb0,
+ 0xfdf8, 0xfe43, 0xfe6f, 0xfea3, 0xfefc, 0xff45,
+ 0xff76, 0xffa7, 0xffc8, 0xffde, 0xffe4, 0xffc3,
+ 0xff98, 0xff7c, 0xff66, 0xff53, 0xff2b, 0xfeec,
+ 0xfec2, 0xfeb0, 0xfea8, 0xfeb2, 0xfeb6, 0xfeac,
+ 0xfea6, 0xfe92, 0xfe5a, 0xfe0d, 0xfdd0, 0xfda8,
+ 0xfd82, 0xfd6c, 0xfd64, 0xfd4f, 0xfd37, 0xfd21,
+ 0xfcf8, 0xfcde, 0xfceb, 0xfd14, 0xfd65, 0xfdbb,
+ 0xfdf8, 0xfe4c, 0xfea3, 0xfece, 0xfef1, 0xff19,
+ 0xff40, 0xff89, 0xffdd, 0x0015, 0x003a, 0x0040,
+ 0x003c, 0x0048, 0x0048, 0x003a, 0x0032, 0x0022,
+ 0x000d, 0xffe4, 0xff89, 0xff25, 0xfec8, 0xfe68,
+ 0xfe34, 0xfe26, 0xfe18, 0xfe1c, 0xfe22, 0xfe0e,
+ 0xfde8, 0xfda5, 0xfd62, 0xfd3f, 0xfd19, 0xfcfb,
+ 0xfd12, 0xfd3f, 0xfd70, 0xfd91, 0xfd82, 0xfd7a,
+ 0xfd91, 0xfd8e, 0xfd80, 0xfd8b, 0xfd94, 0xfda0,
+ 0xfdb6, 0xfdd3, 0xfdff, 0xfe1d, 0xfe26, 0xfe3c,
+ 0xfe44, 0xfe29, 0xfe0a, 0xfded, 0xfddf, 0xfe01,
+ 0xfe41, 0xfe93, 0xfefc, 0xff66, 0xffca, 0x0024,
+ 0x005f, 0x0083, 0x0098, 0x009f, 0x00b2, 0x00da,
+ 0x0105, 0x0130, 0x0142, 0x012b, 0x010a, 0x00ea,
+ 0x00b5, 0x0079, 0x004b, 0x0037, 0x003d, 0x0058,
+ 0x007f, 0x00a6, 0x00bf, 0x00b8, 0x0088, 0x0051,
+ 0x0039, 0x002c, 0x0024, 0x0032, 0x003e, 0x002f,
+ 0x0007, 0xffd0, 0xffa3, 0xff8c, 0xff7a, 0xff7a,
+ 0xff8f, 0xff9a, 0xff9f, 0xffa9, 0xffb5, 0xffc2,
+ 0xffcd, 0xffe0, 0x0015, 0x005d, 0x0093, 0x00ab,
+ 0x00aa, 0x008b, 0x004b, 0x0004, 0xffc4, 0xff67,
+ 0xfefd, 0xfea4, 0xfe44, 0xfdf7, 0xfdcb, 0xfd94,
+ 0xfd70, 0xfd86, 0xfd92, 0xfd90, 0xfdaf, 0xfdd7,
+ 0xfdfc, 0xfe21, 0xfe43, 0xfe72, 0xfe9f, 0xfeb4,
+ 0xfecb, 0xfedf, 0xfee7, 0xfefe, 0xff10, 0xff05,
+ 0xfeec, 0xfec0, 0xfe7c, 0xfe3c, 0xfe15, 0xfe0d,
+ 0xfe24, 0xfe65, 0xfec7, 0xff1b, 0xff60, 0xffb2,
+ 0xffff, 0x0041, 0x008c, 0x00d6, 0x010e, 0x012f,
+ 0x0145, 0x0155, 0x013b, 0x0110, 0x011d, 0x014a,
+ 0x0170, 0x01bb, 0x022f, 0x029b, 0x02f4, 0x033c,
+ 0x0360, 0x0366, 0x0364, 0x034f, 0x0322, 0x0305,
+ 0x0309, 0x031f, 0x0357, 0x03a5, 0x03d3, 0x03e5,
+ 0x03ef, 0x03d7, 0x039e, 0x0373, 0x0362, 0x0357,
+ 0x0354, 0x035e, 0x0359, 0x034b, 0x0346, 0x0334,
+ 0x0327, 0x0332, 0x032b, 0x032a, 0x0349, 0x0356,
+ 0x036c, 0x03bf, 0x0421, 0x047d, 0x04d2, 0x04f9,
+ 0x04f8, 0x04e1, 0x04c4, 0x04b4, 0x049e, 0x048e,
+ 0x049a, 0x049c, 0x0499, 0x049a, 0x0474, 0x044a,
+ 0x043f, 0x043b, 0x0450, 0x0479, 0x0494, 0x04c1,
+ 0x0502, 0x0539, 0x0576, 0x05b5, 0x05e7, 0x0607,
+ 0x0612, 0x0617, 0x0608, 0x05d8, 0x05bf, 0x05b4,
+ 0x0597, 0x0589, 0x0586, 0x057d, 0x0571, 0x0555,
+ 0x0540, 0x0543, 0x0530, 0x0519, 0x0514, 0x050a,
+ 0x051a, 0x0550, 0x0582, 0x05ac, 0x05cb, 0x05d1,
+ 0x05cb, 0x05b6, 0x0590, 0x0559, 0x050a, 0x04b8,
+ 0x046f, 0x0422, 0x03da, 0x039c, 0x0368, 0x0342,
+ 0x0327, 0x0329, 0x034a, 0x0374, 0x03b8, 0x0426,
+ 0x04a6, 0x0523, 0x059a, 0x0600, 0x064b, 0x0680,
+ 0x06af, 0x06d2, 0x06ea, 0x0708, 0x0714, 0x070b,
+ 0x0702, 0x06e2, 0x06b9, 0x06ad, 0x06a2, 0x068a,
+ 0x0672, 0x0658, 0x0641, 0x0625, 0x060d, 0x0616,
+ 0x0625, 0x0641, 0x0687, 0x06bd, 0x06cf, 0x06e9,
+ 0x06f0, 0x06da, 0x06be, 0x068c, 0x0656, 0x0629,
+ 0x05fc, 0x05e7, 0x05d8, 0x05bb, 0x05b6, 0x05b9,
+ 0x059b, 0x0567, 0x0528, 0x04e0, 0x0490, 0x0440,
+ 0x03fb, 0x03a7, 0x034d, 0x030f, 0x02c4, 0x026e,
+ 0x023a, 0x0206, 0x01cf, 0x01b7, 0x01a2, 0x0197,
+ 0x01ab, 0x01b4, 0x01ac, 0x01b2, 0x01b6, 0x01a6,
+ 0x0191, 0x0193, 0x019e, 0x0193, 0x0194, 0x01ab,
+ 0x01ae, 0x019a, 0x0172, 0x0131, 0x00eb, 0x00b3,
+ 0x008d, 0x007a, 0x0068, 0x0056, 0x0042, 0x002d,
+ 0x0023, 0x0009, 0xffe0, 0xffd1, 0xffc2, 0xffa3,
+ 0xff98, 0xff83, 0xff47, 0xff09, 0xfec1, 0xfe60,
+ 0xfdfa, 0xfd94, 0xfd44, 0xfd18, 0xfcf4, 0xfcd2,
+ 0xfcbf, 0xfcb2, 0xfcab, 0xfcb5, 0xfcc2, 0xfcd2,
+ 0xfcee, 0xfd10, 0xfd33, 0xfd51, 0xfd4c, 0xfd39,
+ 0xfd29, 0xfcfb, 0xfcc6, 0xfcb2, 0xfc8e, 0xfc5f,
+ 0xfc4e, 0xfc35, 0xfc1e, 0xfc2f, 0xfc4c, 0xfc8c,
+ 0xfcf7, 0xfd4c, 0xfd9b, 0xfdfd, 0xfe47, 0xfe7b,
+ 0xfea6, 0xfec3, 0xfeea, 0xff13, 0xff2a, 0xff37,
+ 0xff41, 0xff45, 0xff4a, 0xff5b, 0xff78, 0xff99,
+ 0xffd3, 0x002b, 0x007f, 0x00d1, 0x0123, 0x0163,
+ 0x01c2, 0x0244, 0x02bf, 0x0349, 0x03bf, 0x03f5,
+ 0x041a, 0x042c, 0x041f, 0x0420, 0x0423, 0x0417,
+ 0x0408, 0x03de, 0x039f, 0x0361, 0x0328, 0x030a,
+ 0x02fd, 0x0307, 0x0347, 0x037f, 0x0395, 0x03b9,
+ 0x03d2, 0x03de, 0x0402, 0x042d, 0x045b, 0x0478,
+ 0x046a, 0x044c, 0x03f9, 0x035c, 0x02c7, 0x0230,
+ 0x0186, 0x010f, 0x00b9, 0x0080, 0x0095, 0x00b3,
+ 0x00b5, 0x00d2, 0x00e9, 0x00c9, 0x008f, 0x0059,
+ 0x0045, 0x006b, 0x00bb, 0x0110, 0x014c, 0x016a,
+ 0x0161, 0x012d, 0x00eb, 0x00a3, 0x0052, 0xfffc,
+ 0xff90, 0xff19, 0xfeb6, 0xfe65, 0xfe4f, 0xfe98,
+ 0xff07, 0xff77, 0xffdb, 0x0008, 0x0001, 0xffdb,
+ 0xffa5, 0xff9e, 0xffdc, 0x0037, 0x009e, 0x00f1,
+ 0x00f9, 0x00b9, 0x004e, 0xffc7, 0xff45, 0xfef2,
+ 0xfec4, 0xfea3, 0xfe9b, 0xfe9b, 0xfe78, 0xfe51,
+ 0xfe4d, 0xfe5e, 0xfe83, 0xfeb4, 0xfee2, 0xff31,
+ 0xff9f, 0x0000, 0x0069, 0x00e3, 0x0151, 0x01d3,
+ 0x025e, 0x02ba, 0x0301, 0x0334, 0x0326, 0x02e5,
+ 0x0280, 0x01ee, 0x0161, 0x00eb, 0x0092, 0x0082,
+ 0x00a4, 0x00cb, 0x0113, 0x0161, 0x0181, 0x01a0,
+ 0x01de, 0x0222, 0x0278, 0x02df, 0x0322, 0x0328,
+ 0x030d, 0x02e5, 0x02b1, 0x0284, 0x0286, 0x02b7,
+ 0x02f0, 0x0323, 0x0348, 0x0341, 0x0303, 0x02af,
+ 0x0268, 0x0233, 0x020e, 0x020b, 0x022b, 0x0255,
+ 0x027e, 0x02ab, 0x02d0, 0x02e2, 0x02f2, 0x0303,
+ 0x0303, 0x02f2, 0x02df, 0x02c6, 0x02ac, 0x029b,
+ 0x0298, 0x02a6, 0x02b7, 0x02ba, 0x029a, 0x0253,
+ 0x0200, 0x01a3, 0x0133, 0x00d7, 0x00a2, 0x0085,
+ 0x0096, 0x00d8, 0x0124, 0x0176, 0x01cf, 0x0218,
+ 0x024c, 0x0268, 0x0264, 0x024d, 0x022c, 0x020c,
+ 0x01f7, 0x01ee, 0x01ef, 0x01ed, 0x01ef, 0x01fe,
+ 0x01fd, 0x01e6, 0x01cb, 0x01a6, 0x0186, 0x017a,
+ 0x0171, 0x0182, 0x01ad, 0x01cc, 0x01f0, 0x021e,
+ 0x0239, 0x0256, 0x027c, 0x027f, 0x026d, 0x026f,
+ 0x0263, 0x0231, 0x01fb, 0x01c6, 0x0183, 0x013b,
+ 0x00f1, 0x00a4, 0x0061, 0x0023, 0xfff0, 0xffd8,
+ 0xffc4, 0xffb3, 0xffbd, 0xffd3, 0xffee, 0x000d,
+ 0x001a, 0x0027, 0x004c, 0x007f, 0x00cb, 0x0129,
+ 0x0173, 0x019f, 0x01a6, 0x018f, 0x0163, 0x0110,
+ 0x00af, 0x0058, 0xfff3, 0xff96, 0xff4a, 0xfeed,
+ 0xfea4, 0xfe81, 0xfe57, 0xfe32, 0xfe2b, 0xfe2c,
+ 0xfe26, 0xfe11, 0xfe03, 0xfe11, 0xfe17, 0xfe0f,
+ 0xfe12, 0xfe0e, 0xfdf6, 0xfdd6, 0xfdae, 0xfd83,
+ 0xfd61, 0xfd47, 0xfd2e, 0xfcfb, 0xfcb0, 0xfc6a,
+ 0xfc2d, 0xfbed, 0xfbb0, 0xfb7c, 0xfb40, 0xfb0a,
+ 0xfaee, 0xfac5, 0xfa90, 0xfa85, 0xfa7c, 0xfa60,
+ 0xfa61, 0xfa59, 0xfa44, 0xfa56, 0xfa58, 0xfa4e,
+ 0xfa6b, 0xfa6e, 0xfa58, 0xfa66, 0xfa70, 0xfa78,
+ 0xfaa8, 0xfadc, 0xfb04, 0xfb2d, 0xfb54, 0xfb7c,
+ 0xfb8a, 0xfb89, 0xfba7, 0xfbc9, 0xfbe3, 0xfc0b,
+ 0xfc27, 0xfc34, 0xfc37, 0xfc1f, 0xfc0f, 0xfc0e,
+ 0xfc07, 0xfc1f, 0xfc5a, 0xfc94, 0xfcd8, 0xfd15,
+ 0xfd32, 0xfd50, 0xfd73, 0xfd84, 0xfd8f, 0xfda4,
+ 0xfdc3, 0xfdec, 0xfe1e, 0xfe59, 0xfe8c, 0xfe9e,
+ 0xfeab, 0xfed3, 0xff0a, 0xff3e, 0xff76, 0xffb2,
+ 0xffef, 0x002b, 0x0061, 0x0096, 0x00d3, 0x010b,
+ 0x0143, 0x0169, 0x0164, 0x014c, 0x0129, 0x00f5,
+ 0x00d4, 0x00bf, 0x009a, 0x007a, 0x0050, 0x0010,
+ 0xffea, 0xffd8, 0xffc9, 0xffd3, 0xffd8, 0xffd1,
+ 0xffe2, 0xfff2, 0xffea, 0xffe3, 0xffdf, 0xffdc,
+ 0xffcf, 0xffac, 0xff8d, 0xff70, 0xff3e, 0xff0f,
+ 0xfee4, 0xfeb3, 0xfe9b, 0xfe8d, 0xfe6b, 0xfe51,
+ 0xfe47, 0xfe3e, 0xfe44, 0xfe5b, 0xfe7e, 0xfec1,
+ 0xff10, 0xff43, 0xff6e, 0xff92, 0xff9d, 0xffa9,
+ 0xffb0, 0xff96, 0xff74, 0xff3d, 0xfee5, 0xfea7,
+ 0xfe8c, 0xfe74, 0xfe6b, 0xfe6d, 0xfe68, 0xfe60,
+ 0xfe4c, 0xfe46, 0xfe53, 0xfe4d, 0xfe56, 0xfe81,
+ 0xfe98, 0xfea2, 0xfeb5, 0xfeba, 0xfeb7, 0xfeaa,
+ 0xfe8f, 0xfe84, 0xfe74, 0xfe5a, 0xfe55, 0xfe56,
+ 0xfe53, 0xfe55, 0xfe4d, 0xfe56, 0xfe85, 0xfebc,
+ 0xfef9, 0xff37, 0xff62, 0xff8b, 0xffba, 0xffe9,
+ 0x001c, 0x0048, 0x0062, 0x0077, 0x008f, 0x00ad,
+ 0x00c0, 0x00b8, 0x00a6, 0x008d, 0x0075, 0x0073,
+ 0x0071, 0x0067, 0x006f, 0x007c, 0x0082, 0x008b,
+ 0x0095, 0x00b5, 0x00f1, 0x0136, 0x017b, 0x01b2,
+ 0x01e4, 0x0232, 0x0286, 0x02c2, 0x02f2, 0x0313,
+ 0x0336, 0x035f, 0x036c, 0x0375, 0x0393, 0x03a9,
+ 0x03c2, 0x03e0, 0x03e4, 0x03de, 0x03cd, 0x03a8,
+ 0x0387, 0x034a, 0x02f5, 0x02bb, 0x0284, 0x025b,
+ 0x0254, 0x0236, 0x021d, 0x022d, 0x0224, 0x0214,
+ 0x021e, 0x0215, 0x0220, 0x0248, 0x024e, 0x025d,
+ 0x028a, 0x02b0, 0x02d6, 0x02f1, 0x0307, 0x0332,
+ 0x0346, 0x0358, 0x038a, 0x039b, 0x039a, 0x03bd,
+ 0x03d4, 0x03e8, 0x0417, 0x0428, 0x0421, 0x042a,
+ 0x0433, 0x043c, 0x0448, 0x0457, 0x046d, 0x0473,
+ 0x0472, 0x047a, 0x0474, 0x0478, 0x049d, 0x04bb,
+ 0x04d8, 0x0500, 0x051f, 0x0548, 0x0577, 0x057f,
+ 0x058c, 0x05c9, 0x0600, 0x062a, 0x066d, 0x06a1,
+ 0x06b8, 0x06d3, 0x06c6, 0x0691, 0x0672, 0x0650,
+ 0x0613, 0x05f4, 0x05f2, 0x05dc, 0x05b6, 0x0592,
+ 0x0571, 0x0554, 0x054c, 0x0553, 0x0546, 0x0539,
+ 0x054c, 0x0556, 0x055f, 0x057c, 0x058a, 0x05a4,
+ 0x05db, 0x05ed, 0x05f8, 0x061c, 0x061e, 0x0607,
+ 0x05f3, 0x05d0, 0x05bd, 0x05ba, 0x05a6, 0x059c,
+ 0x059c, 0x0599, 0x05a6, 0x05b1, 0x05ad, 0x05aa,
+ 0x05a9, 0x05ab, 0x05a0, 0x0585, 0x0578, 0x0562,
+ 0x052f, 0x050b, 0x04f6, 0x04d6, 0x04c7, 0x04ca,
+ 0x04c1, 0x04b5, 0x04b9, 0x04c4, 0x04be, 0x04ae,
+ 0x04ae, 0x04ae, 0x049a, 0x0491, 0x0496, 0x0490,
+ 0x0484, 0x0478, 0x046b, 0x0460, 0x044d, 0x0429,
+ 0x03fc, 0x03cc, 0x03a1, 0x037e, 0x035d, 0x0335,
+ 0x030c, 0x02ea, 0x02c8, 0x02ab, 0x0293, 0x0276,
+ 0x0250, 0x0223, 0x01f7, 0x01d0, 0x019d, 0x016b,
+ 0x0151, 0x0150, 0x0163, 0x0176, 0x016f, 0x0168,
+ 0x0172, 0x017d, 0x018d, 0x01ad, 0x01dd, 0x0214,
+ 0x0243, 0x0274, 0x0299, 0x02a5, 0x02ca, 0x02fc,
+ 0x0303, 0x0301, 0x0303, 0x02f2, 0x02e7, 0x02ca,
+ 0x0295, 0x0274, 0x0243, 0x0206, 0x01f1, 0x01d9,
+ 0x01c1, 0x01ce, 0x01cb, 0x01d3, 0x020c, 0x022f,
+ 0x0245, 0x0266, 0x026a, 0x025d, 0x0242, 0x0212,
+ 0x01f3, 0x01ce, 0x01a6, 0x01af, 0x01b3, 0x01a7,
+ 0x01c4, 0x01d6, 0x01cd, 0x01df, 0x01ec, 0x01f4,
+ 0x0219, 0x0235, 0x0251, 0x0286, 0x02af, 0x02c5,
+ 0x02d4, 0x02ce, 0x02b0, 0x0284, 0x025d, 0x0248,
+ 0x0230, 0x021a, 0x021e, 0x0224, 0x0224, 0x0233,
+ 0x0246, 0x0246, 0x0243, 0x0257, 0x0281, 0x02ba,
+ 0x030f, 0x0373, 0x03cc, 0x0421, 0x046a, 0x047f,
+ 0x0468, 0x0444, 0x040c, 0x03d4, 0x03bb, 0x03ac,
+ 0x03a4, 0x03b7, 0x03c7, 0x03ca, 0x03db, 0x03f1,
+ 0x0401, 0x0415, 0x042c, 0x0449, 0x0470, 0x049a,
+ 0x04d6, 0x0516, 0x053c, 0x0562, 0x058d, 0x0592,
+ 0x057a, 0x054d, 0x04fa, 0x04a1, 0x045b, 0x0419,
+ 0x03de, 0x03ad, 0x0385, 0x0370, 0x036b, 0x0370,
+ 0x037a, 0x037f, 0x038b, 0x03a0, 0x03ae, 0x03be,
+ 0x03d8, 0x03ee, 0x0406, 0x0414, 0x0401, 0x03de,
+ 0x03a6, 0x0347, 0x02f1, 0x02ba, 0x027c, 0x023d,
+ 0x020c, 0x01c5, 0x016f, 0x012a, 0x00f5, 0x00d9,
+ 0x00eb, 0x0115, 0x0142, 0x0171, 0x0183, 0x0171,
+ 0x0154, 0x0127, 0x00e5, 0x00b3, 0x009d, 0x009b,
+ 0x00b0, 0x00ce, 0x00e2, 0x00ec, 0x00d9, 0x00a8,
+ 0x0073, 0x0040, 0x0012, 0xfff0, 0xffc7, 0xff99,
+ 0xff7a, 0xff64, 0xff48, 0xff21, 0xfefe, 0xfef1,
+ 0xfee7, 0xfede, 0xfee7, 0xfeef, 0xfeee, 0xfeef,
+ 0xfee5, 0xfed1, 0xfeba, 0xfe9b, 0xfe8e, 0xfe92,
+ 0xfe8e, 0xfe93, 0xfea3, 0xfeb5, 0xfed3, 0xfee5,
+ 0xfeeb, 0xff0e, 0xff31, 0xff43, 0xff63, 0xff80,
+ 0xff8d, 0xffa9, 0xffd9, 0x000d, 0x003b, 0x005b,
+ 0x0072, 0x007d, 0x007f, 0x0087, 0x0087, 0x0081,
+ 0x0091, 0x00b2, 0x00ca, 0x00cc, 0x00ce, 0x00e7,
+ 0x00f7, 0x0102, 0x0131, 0x016f, 0x01a9, 0x01ec,
+ 0x0229, 0x0264, 0x029e, 0x02bf, 0x02e1, 0x030a,
+ 0x0312, 0x0301, 0x02e1, 0x02b5, 0x0297, 0x0280,
+ 0x0262, 0x024b, 0x0237, 0x0233, 0x0238, 0x0226,
+ 0x0220, 0x023d, 0x0260, 0x0290, 0x02c1, 0x02d9,
+ 0x02f8, 0x031d, 0x0330, 0x033e, 0x0341, 0x0338,
+ 0x033a, 0x0336, 0x0333, 0x0341, 0x0348, 0x033d,
+ 0x0328, 0x02fa, 0x02b8, 0x0276, 0x023d, 0x0214,
+ 0x01fb, 0x01f4, 0x0206, 0x021c, 0x0228, 0x022b,
+ 0x022a, 0x023b, 0x025b, 0x0276, 0x028c, 0x029b,
+ 0x0293, 0x0289, 0x0284, 0x026c, 0x0247, 0x022d,
+ 0x0217, 0x020e, 0x0206, 0x01e1, 0x01bc, 0x019e,
+ 0x0163, 0x0123, 0x00ed, 0x00b1, 0x0087, 0x005d,
+ 0x0015, 0xffd6, 0xff9a, 0xff61, 0xff43, 0xff0f,
+ 0xfecf, 0xfeba, 0xfea0, 0xfe8a, 0xfe98, 0xfe7d,
+ 0xfe53, 0xfe5a, 0xfe53, 0xfe3c, 0xfe44, 0xfe4b,
+ 0xfe4e, 0xfe54, 0xfe49, 0xfe35, 0xfe18, 0xfe02,
+ 0xfdfa, 0xfde9, 0xfde8, 0xfde0, 0xfd9c, 0xfd56,
+ 0xfd23, 0xfcde, 0xfcbc, 0xfcba, 0xfcae, 0xfcc7,
+ 0xfd05, 0xfd3a, 0xfd60, 0xfd5e, 0xfd40, 0xfd1f,
+ 0xfcec, 0xfccc, 0xfccb, 0xfcb0, 0xfc8b, 0xfc6e,
+ 0xfc2e, 0xfbd6, 0xfb74, 0xfb02, 0xfa9f, 0xfa58,
+ 0xfa27, 0xfa0f, 0xfa0b, 0xfa17, 0xfa24, 0xfa20,
+ 0xfa18, 0xfa10, 0xfa0e, 0xfa26, 0xfa50, 0xfa7a,
+ 0xfaa6, 0xfacf, 0xfaf3, 0xfb0f, 0xfb1a, 0xfb19,
+ 0xfb12, 0xfb06, 0xfaef, 0xfac1, 0xfa84, 0xfa43,
+ 0xfa0f, 0xf9fc, 0xf9f3, 0xf9f1, 0xfa14, 0xfa40,
+ 0xfa5e, 0xfa8e, 0xfab2, 0xfabd, 0xfadd, 0xfafc,
+ 0xfb0a, 0xfb2e, 0xfb58, 0xfb6e, 0xfb80, 0xfb7f,
+ 0xfb66, 0xfb4e, 0xfb38, 0xfb28, 0xfb2d, 0xfb3b,
+ 0xfb47, 0xfb55, 0xfb59, 0xfb3f, 0xfb0b, 0xfad2,
+ 0xfaa9, 0xfa8e, 0xfa7a, 0xfa81, 0xfaa3, 0xfad2,
+ 0xfb04, 0xfb27, 0xfb2f, 0xfb2f, 0xfb27, 0xfb11,
+ 0xfb0b, 0xfb12, 0xfb0b, 0xfb04, 0xfb0b, 0xfb21,
+ 0xfb34, 0xfb2b, 0xfb18, 0xfb06, 0xfae0, 0xfac2,
+ 0xfabe, 0xfac8, 0xfaf5, 0xfb41, 0xfb87, 0xfbc8,
+ 0xfc10, 0xfc5d, 0xfc93, 0xfc9c, 0xfcad, 0xfcd3,
+ 0xfcd6, 0xfce3, 0xfd18, 0xfd2b, 0xfd2f, 0xfd3d,
+ 0xfd1a, 0xfce5, 0xfcd0, 0xfcab, 0xfc81, 0xfc76,
+ 0xfc74, 0xfc7a, 0xfc8b, 0xfc94, 0xfc94, 0xfc96,
+ 0xfcb0, 0xfce7, 0xfd1b, 0xfd4a, 0xfd8a, 0xfdc7,
+ 0xfdea, 0xfe07, 0xfe29, 0xfe43, 0xfe4e, 0xfe51,
+ 0xfe50, 0xfe53, 0xfe63, 0xfe7a, 0xfe81, 0xfe84,
+ 0xfe90, 0xfe99, 0xfea9, 0xfec6, 0xfeda, 0xfee0,
+ 0xfee7, 0xfee4, 0xfed6, 0xfec1, 0xfe9a, 0xfe73,
+ 0xfe61, 0xfe53, 0xfe50, 0xfe5d, 0xfe5d, 0xfe4e,
+ 0xfe3d, 0xfe27, 0xfe1f, 0xfe32, 0xfe4d, 0xfe6a,
+ 0xfe8c, 0xfea2, 0xfe9f, 0xfe86, 0xfe64, 0xfe43,
+ 0xfe33, 0xfe34, 0xfe25, 0xfe13, 0xfe20, 0xfe2b,
+ 0xfe2b, 0xfe40, 0xfe56, 0xfe5e, 0xfe74, 0xfe94,
+ 0xfeb7, 0xfed1, 0xfeec, 0xff19, 0xff2d, 0xff1b,
+ 0xff16, 0xff13, 0xff00, 0xfef9, 0xfefb, 0xff09,
+ 0xff1d, 0xff21, 0xff1f, 0xff0d, 0xfee8, 0xfeda,
+ 0xfec7, 0xfea5, 0xfeb1, 0xfebf, 0xfeb8, 0xfece,
+ 0xfeda, 0xfed2, 0xfeec, 0xff15, 0xff3b, 0xff67,
+ 0xff82, 0xffa0, 0xffc5, 0xffd1, 0xffe9, 0x0013,
+ 0x0028, 0x0040, 0x0069, 0x008d, 0x00b8, 0x00f6,
+ 0x0135, 0x0160, 0x0178, 0x018c, 0x018f, 0x0186,
+ 0x0187, 0x0190, 0x01a0, 0x01b3, 0x01c1, 0x01d8,
+ 0x01e8, 0x01eb, 0x01ff, 0x020f, 0x0213, 0x0232,
+ 0x025c, 0x027e, 0x02a3, 0x02b5, 0x02c3, 0x02e3,
+ 0x02f9, 0x030f, 0x0333, 0x0349, 0x035e, 0x0380,
+ 0x0390, 0x0396, 0x03a9, 0x03b4, 0x03b1, 0x03be,
+ 0x03dc, 0x03f7, 0x0415, 0x0441, 0x0479, 0x04ad,
+ 0x04cd, 0x04f0, 0x051e, 0x052f, 0x0535, 0x055a,
+ 0x0579, 0x0589, 0x05a9, 0x05bf, 0x05d1, 0x05f3,
+ 0x061c, 0x0651, 0x067c, 0x068d, 0x06ac, 0x06cb,
+ 0x06cf, 0x06d9, 0x06de, 0x06dc, 0x06f7, 0x0717,
+ 0x072e, 0x0752, 0x0774, 0x0795, 0x07b3, 0x07bc,
+ 0x07c7, 0x07cc, 0x07c1, 0x07d2, 0x07e2, 0x07d3,
+ 0x07d4, 0x07d3, 0x07c3, 0x07dc, 0x07fe, 0x0803,
+ 0x081d, 0x084c, 0x0866, 0x0872, 0x086a, 0x0850,
+ 0x0842, 0x083e, 0x0832, 0x0828, 0x0825, 0x0826,
+ 0x083a, 0x085b, 0x086c, 0x086d, 0x0865, 0x085b,
+ 0x085a, 0x085a, 0x0852, 0x0853, 0x0869, 0x0894,
+ 0x08ca, 0x0902, 0x0939, 0x095d, 0x096f, 0x097f,
+ 0x0979, 0x095d, 0x093b, 0x090a, 0x08e2, 0x08d1,
+ 0x08ba, 0x08b9, 0x08d4, 0x08d8, 0x08ce, 0x08c0,
+ 0x0894, 0x0866, 0x0844, 0x0826, 0x0827, 0x083c,
+ 0x0847, 0x084f, 0x085b, 0x0863, 0x0850, 0x0838,
+ 0x083d, 0x082b, 0x0805, 0x0800, 0x07d2, 0x0774,
+ 0x0742, 0x0705, 0x06a7, 0x067a, 0x065b, 0x062e,
+ 0x061f, 0x060a, 0x05ec, 0x05e3, 0x05c7, 0x0594,
+ 0x055f, 0x0520, 0x04e5, 0x04ad, 0x047e, 0x0466,
+ 0x043e, 0x0405, 0x03e4, 0x03c0, 0x038e, 0x0370,
+ 0x035c, 0x0340, 0x0326, 0x030d, 0x02ef, 0x02d3,
+ 0x02b6, 0x0294, 0x027d, 0x0280, 0x0289, 0x027f,
+ 0x025e, 0x022c, 0x01fa, 0x01c8, 0x0189, 0x014c,
+ 0x011d, 0x00f2, 0x00c7, 0x0094, 0x005a, 0x002d,
+ 0x000f, 0xfffa, 0xffe1, 0xffc7, 0xffc3, 0xffc2,
+ 0xffac, 0xffa3, 0xffa7, 0xff9a, 0xff87, 0xff74,
+ 0xff60, 0xff56, 0xff4b, 0xff48, 0xff5e, 0xff8e,
+ 0xffcb, 0xfffd, 0x001e, 0x003f, 0x004f, 0x0058,
+ 0x006d, 0x0076, 0x007d, 0x008d, 0x0095, 0x00aa,
+ 0x00cc, 0x00e1, 0x0103, 0x0128, 0x0131, 0x0141,
+ 0x0155, 0x0164, 0x0180, 0x019b, 0x01ba, 0x01dd,
+ 0x01ef, 0x0204, 0x021b, 0x022c, 0x0252, 0x026f,
+ 0x027b, 0x02ac, 0x02e5, 0x0311, 0x033f, 0x0354,
+ 0x036c, 0x039a, 0x03a9, 0x03c0, 0x03e8, 0x03e9,
+ 0x03e9, 0x03e4, 0x03b3, 0x0399, 0x039a, 0x0390,
+ 0x03a4, 0x03ca, 0x03ee, 0x0427, 0x0451, 0x045e,
+ 0x046c, 0x0464, 0x0448, 0x042a, 0x0407, 0x0403,
+ 0x0420, 0x043c, 0x0458, 0x046f, 0x046c, 0x0450,
+ 0x041f, 0x03e5, 0x03a9, 0x036a, 0x0340, 0x0326,
+ 0x0310, 0x0312, 0x031b, 0x0311, 0x0305, 0x02fe,
+ 0x02f6, 0x02f7, 0x030d, 0x032d, 0x0338, 0x032b,
+ 0x0316, 0x02ee, 0x02ba, 0x028e, 0x025f, 0x0231,
+ 0x0208, 0x01cb, 0x017b, 0x0121, 0x00c8, 0x009b,
+ 0x0090, 0x0085, 0x008b, 0x009d, 0x00b0, 0x00cc,
+ 0x00d0, 0x00c3, 0x00ca, 0x00cb, 0x00c4, 0x00dd,
+ 0x00f6, 0x00f5, 0x00e9, 0x00c1, 0x0081, 0x0055,
+ 0x0041, 0x0035, 0x0038, 0x004b, 0x005d, 0x0063,
+ 0x005c, 0x0045, 0x0010, 0xffc2, 0xff7d, 0xff5b,
+ 0xff52, 0xff5d, 0xff8e, 0xffd5, 0x0010, 0x003b,
+ 0x0056, 0x005e, 0x0059, 0x0043, 0x001d, 0xfff4,
+ 0xffca, 0xffa9, 0xff90, 0xff7e, 0xff81, 0xff9e,
+ 0xffcd, 0xfffb, 0x0010, 0x0007, 0xffeb, 0xffc7,
+ 0xffaf, 0xffa7, 0xffaf, 0xffcf, 0xfff7, 0x0017,
+ 0x003a, 0x0050, 0x0059, 0x0064, 0x0066, 0x0066,
+ 0x006a, 0x005d, 0x0059, 0x0061, 0x0044, 0x001d,
+ 0x0008, 0xffe4, 0xffc3, 0xffc5, 0xffd8, 0xfff5,
+ 0x001c, 0x0044, 0x0065, 0x0078, 0x008c, 0x0094,
+ 0x0071, 0x0055, 0x005e, 0x0060, 0x0074, 0x00b4,
+ 0x00e7, 0x0102, 0x011b, 0x0125, 0x012b, 0x0120,
+ 0x00ee, 0x00b8, 0x008a, 0x005f, 0x005e, 0x007b,
+ 0x0094, 0x00c5, 0x010c, 0x013b, 0x014c, 0x0148,
+ 0x013b, 0x0134, 0x0124, 0x010b, 0x00ff, 0x0102,
+ 0x010d, 0x012b, 0x015d, 0x018e, 0x01b5, 0x01e7,
+ 0x0223, 0x0248, 0x0256, 0x025e, 0x0267, 0x0282,
+ 0x02a7, 0x02c9, 0x02f9, 0x0337, 0x0366, 0x0387,
+ 0x03a5, 0x03b7, 0x03be, 0x03be, 0x03b7, 0x03a4,
+ 0x037e, 0x034b, 0x031c, 0x02fc, 0x02ed, 0x02dd,
+ 0x02d1, 0x02d7, 0x02d1, 0x02b5, 0x02a4, 0x0290,
+ 0x026a, 0x023f, 0x0211, 0x01e0, 0x01b2, 0x0188,
+ 0x0164, 0x013c, 0x0119, 0x010b, 0x00f5, 0x00d8,
+ 0x00ce, 0x00b2, 0x007c, 0x004d, 0x0019, 0xffeb,
+ 0xffdb, 0xffc7, 0xffa6, 0xff94, 0xff77, 0xff4c,
+ 0xff2b, 0xfef5, 0xfea5, 0xfe68, 0xfe39, 0xfe01,
+ 0xfdd2, 0xfdb5, 0xfd97, 0xfd80, 0xfd79, 0xfd74,
+ 0xfd61, 0xfd44, 0xfd32, 0xfd29, 0xfd06, 0xfccc,
+ 0xfc97, 0xfc58, 0xfc16, 0xfbdf, 0xfba4, 0xfb75,
+ 0xfb68, 0xfb59, 0xfb47, 0xfb38, 0xfb1c, 0xfb06,
+ 0xfaed, 0xfabb, 0xfa96, 0xfa8b, 0xfa7e, 0xfa76,
+ 0xfa72, 0xfa66, 0xfa58, 0xfa43, 0xfa36, 0xfa33,
+ 0xfa20, 0xfa12, 0xfa10, 0xf9fa, 0xf9e2, 0xf9dd,
+ 0xf9d7, 0xf9cc, 0xf9c5, 0xf9c6, 0xf9bd, 0xf99c,
+ 0xf986, 0xf971, 0xf93b, 0xf90e, 0xf900, 0xf8fd,
+ 0xf914, 0xf939, 0xf952, 0xf96b, 0xf97d, 0xf98e,
+ 0xf9a4, 0xf9ae, 0xf9bb, 0xf9ce, 0xf9d7, 0xf9eb,
+ 0xf9f5, 0xf9ea, 0xf9f0, 0xf9e5, 0xf9c4, 0xf9cd,
+ 0xf9db, 0xf9d7, 0xf9f5, 0xfa18, 0xfa28, 0xfa47,
+ 0xfa5e, 0xfa6d, 0xfa86, 0xfa93, 0xfa9b, 0xfaac,
+ 0xfac4, 0xfaeb, 0xfb0f, 0xfb30, 0xfb6b, 0xfb9f,
+ 0xfbbb, 0xfbd3, 0xfbdc, 0xfbd6, 0xfbc6, 0xfba7,
+ 0xfb99, 0xfb9b, 0xfb9a, 0xfbaa, 0xfbd1, 0xfbf8,
+ 0xfc14, 0xfc2a, 0xfc49, 0xfc67, 0xfc6a, 0xfc5c,
+ 0xfc47, 0xfc2b, 0xfc18, 0xfc04, 0xfbf6, 0xfbf5,
+ 0xfbe8, 0xfbd8, 0xfbc9, 0xfbad, 0xfba3, 0xfba6,
+ 0xfb94, 0xfb7e, 0xfb6b, 0xfb68, 0xfb7b, 0xfb72,
+ 0xfb6d, 0xfb99, 0xfbb1, 0xfbb3, 0xfbd0, 0xfbef,
+ 0xfbfd, 0xfbf7, 0xfbf0, 0xfc0d, 0xfc1c, 0xfc30,
+ 0xfc7d, 0xfca2, 0xfcad, 0xfcee, 0xfd0b, 0xfd10,
+ 0xfd4a, 0xfd60, 0xfd5d, 0xfd73, 0xfd71, 0xfd87,
+ 0xfda9, 0xfd8c, 0xfd84, 0xfd93, 0xfd7e, 0xfd93,
+ 0xfda0, 0xfd69, 0xfd5d, 0xfd52, 0xfd13, 0xfcf9,
+ 0xfce9, 0xfcc7, 0xfcc0, 0xfcb0, 0xfcb1, 0xfce6,
+ 0xfd0c, 0xfd2f, 0xfd5b, 0xfd71, 0xfd9f, 0xfdd9,
+ 0xfe13, 0xfe72, 0xfe9c, 0xfe9e, 0xfed4, 0xfeda,
+ 0xfed8, 0xff26, 0xff1f, 0xff12, 0xff88, 0xff96,
+ 0xff6e, 0xffcb, 0xffb9, 0xff59, 0xff9a, 0xffb9,
+ 0xffb2, 0x0032, 0x007e, 0x0091, 0x00ec, 0x00ee,
+ 0x00ca, 0x0103, 0x00fb, 0x00d9, 0x00fd, 0x00dd,
+ 0x00aa, 0x00b0, 0x00a7, 0x00e0, 0x014f, 0x0160,
+ 0x0163, 0x0186, 0x0175, 0x0174, 0x0197, 0x0194,
+ 0x0198, 0x01b4, 0x01b6, 0x01bd, 0x01f6, 0x0235,
+ 0x023f, 0x0251, 0x028a, 0x0276, 0x0247, 0x0283,
+ 0x02be, 0x02c0, 0x02d1, 0x02bf, 0x02c5, 0x030e,
+ 0x02ee, 0x02b6, 0x02f0, 0x02fd, 0x02f8, 0x0345,
+ 0x036a, 0x0393, 0x03cf, 0x0392, 0x0384, 0x03f9,
+ 0x0407, 0x03e8, 0x041d, 0x0436, 0x043c, 0x0447,
+ 0x041f, 0x0420, 0x045e, 0x047e, 0x049f, 0x04ba,
+ 0x0481, 0x0426, 0x03de, 0x03a3, 0x03a3, 0x03ff,
+ 0x0469, 0x04a3, 0x04a9, 0x0468, 0x043f, 0x0493,
+ 0x04b8, 0x0481, 0x04b0, 0x04d0, 0x04b7, 0x0556,
+ 0x05ee, 0x05d7, 0x0624, 0x0666, 0x0628, 0x0697,
+ 0x070a, 0x06a7, 0x0688, 0x0687, 0x0645, 0x0694,
+ 0x06d6, 0x0698, 0x06bf, 0x06d2, 0x0680, 0x06ad,
+ 0x06f6, 0x06d8, 0x06fd, 0x0759, 0x0783, 0x07a5,
+ 0x07b9, 0x07ba, 0x07be, 0x07b6, 0x07d1, 0x080f,
+ 0x083b, 0x0892, 0x090c, 0x091a, 0x08ed, 0x08fb,
+ 0x0900, 0x08ed, 0x08f3, 0x08d6, 0x0884, 0x084a,
+ 0x0857, 0x088a, 0x087b, 0x0851, 0x0886, 0x08bd,
+ 0x08cc, 0x08e5, 0x08c5, 0x08d6, 0x0929, 0x08ec,
+ 0x08da, 0x0918, 0x0890, 0x0852, 0x0856, 0x074f,
+ 0x0725, 0x07ab, 0x06b1, 0x0692, 0x078f, 0x06c2,
+ 0x0638, 0x06c6, 0x0607, 0x05d4, 0x06e2, 0x06df,
+ 0x06d3, 0x073b, 0x06f1, 0x06f4, 0x0729, 0x06e4,
+ 0x06f0, 0x06eb, 0x06be, 0x06f7, 0x06f2, 0x06f2,
+ 0x071c, 0x06bf, 0x06a9, 0x06b6, 0x062c, 0x0637,
+ 0x0686, 0x0644, 0x0686, 0x06cf, 0x0675, 0x06b8,
+ 0x071e, 0x06c1, 0x0689, 0x0688, 0x065f, 0x0687,
+ 0x06de, 0x06ba, 0x0634, 0x05df, 0x0596, 0x0534,
+ 0x055d, 0x0575, 0x04d0, 0x04ba, 0x04f7, 0x0485,
+ 0x0474, 0x047f, 0x03ee, 0x0403, 0x0448, 0x03f4,
+ 0x0412, 0x0429, 0x03c8, 0x03a5, 0x034e, 0x02df,
+ 0x02b1, 0x024a, 0x023b, 0x0242, 0x01e0, 0x0220,
+ 0x0235, 0x01d7, 0x0263, 0x01ea, 0x0062, 0x00a6,
+ 0x00a3, 0xffbb, 0x00b0, 0x00e8, 0xff72, 0xffc3,
+ 0xfffd, 0xfebc, 0xfecf, 0xff22, 0xfea3, 0xff03,
+ 0xff34, 0xfec1, 0xff1a, 0xff52, 0xfef3, 0xff02,
+ 0xff40, 0xff5e, 0xff5d, 0xff1e, 0xff10, 0xff42,
+ 0xff61, 0xff51, 0xff06, 0xfeff, 0xff3b, 0xff01,
+ 0xfec4, 0xfee4, 0xfeca, 0xfee9, 0xffa3, 0x0019,
+ 0x0032, 0x0067, 0x006f, 0x0043, 0x0055, 0x0098,
+ 0x00c5, 0x00d8, 0x00e0, 0x00df, 0x009c, 0x000d,
+ 0xffcb, 0xffbc, 0xff41, 0xff11, 0xff99, 0xffe8,
+ 0x004b, 0x010b, 0x011b, 0x0103, 0x0158, 0x015c,
+ 0x01c0, 0x0253, 0x01bb, 0x0173, 0x0200, 0x01c4,
+ 0x01dc, 0x028d, 0x0200, 0x0180, 0x01f5, 0x01c8,
+ 0x01cd, 0x0297, 0x025c, 0x019c, 0x01c4, 0x021f,
+ 0x024e, 0x0281, 0x021d, 0x015d, 0x0126, 0x0122,
+ 0x0105, 0x016b, 0x01dd, 0x01a9, 0x0183, 0x015f,
+ 0x00e2, 0x00f8, 0x0170, 0x019b, 0x01fc, 0x0227,
+ 0x021a, 0x02ad, 0x029d, 0x01d1, 0x022f, 0x02c2,
+ 0x02b5, 0x0318, 0x031d, 0x02bc, 0x02e7, 0x0250,
+ 0x015e, 0x01a5, 0x019a, 0x00dc, 0x00e2, 0x012c,
+ 0x017c, 0x0200, 0x01dd, 0x01b0, 0x023c, 0x0275,
+ 0x0239, 0x0255, 0x0275, 0x020f, 0x0192, 0x0188,
+ 0x016c, 0x010b, 0x0113, 0x00da, 0x001a, 0x0021,
+ 0x0038, 0xffc9, 0x0066, 0x00f8, 0x0035, 0x0006,
+ 0x0022, 0xffa0, 0x0001, 0x005b, 0xffca, 0xffdd,
+ 0xffba, 0xff1d, 0xffa1, 0xffe5, 0xffd0, 0x00a3,
+ 0x0062, 0xffba, 0x006a, 0xffe9, 0xff4a, 0x00cd,
+ 0x0110, 0x006f, 0x0182, 0x016b, 0x0057, 0x00c4,
+ 0x0086, 0xffa8, 0xffcd, 0xff7b, 0xff66, 0x0061,
+ 0x006d, 0x0002, 0x0032, 0x004b, 0x00ad, 0x0155,
+ 0x01d8, 0x0263, 0x0250, 0x01f5, 0x01e1, 0x016d,
+ 0x0155, 0x016e, 0x008b, 0x0043, 0x0090, 0xffd0,
+ 0xff90, 0xffc4, 0xfef4, 0xfe96, 0xfe98, 0xfe6d,
+ 0xff82, 0x0085, 0x0068, 0x00b0, 0x00c5, 0x009f,
+ 0x0120, 0x00c5, 0x001f, 0x0085, 0x000e, 0xff31,
+ 0xffa5, 0xff94, 0xfeb3, 0xfece, 0xfef1, 0xfe5d,
+ 0xfea8, 0xffb5, 0xffe2, 0xffb0, 0x0050, 0x00e1,
+ 0x00bd, 0x0099, 0x00b0, 0x0134, 0x01c0, 0x0176,
+ 0x017b, 0x0219, 0x01d1, 0x0170, 0x0170, 0x010d,
+ 0x014d, 0x018b, 0x00e7, 0x0154, 0x01bb, 0x00cb,
+ 0x00ff, 0x0145, 0x0032, 0x0097, 0x0161, 0x0089,
+ 0x00b4, 0x01fd, 0x022e, 0x01a6, 0x0121, 0x0107,
+ 0x0102, 0x008c, 0x00e7, 0x016e, 0x008a, 0x0014,
+ 0x00d5, 0x011e, 0x0064, 0xfea6, 0xfda5, 0xfefb,
+ 0xfffa, 0xff92, 0xffdf, 0x0042, 0x0047, 0x0112,
+ 0x0167, 0x0098, 0x0037, 0x0067, 0x0049, 0x002e,
+ 0x008e, 0x00b6, 0x0033, 0xffc8, 0xff2e, 0xfe51,
+ 0xfede, 0x000a, 0x0025, 0x00a1, 0x0139, 0x0062,
+ 0x0023, 0x0149, 0x0234, 0x0308, 0x037f, 0x030a,
+ 0x0301, 0x039f, 0x0417, 0x0490, 0x04da, 0x04ad,
+ 0x03ec, 0x02ee, 0x0305, 0x03b2, 0x03d7, 0x04cf,
+ 0x05ee, 0x0531, 0x04d9, 0x05e5, 0x0599, 0x0467,
+ 0x03b6, 0x029c, 0x01bf, 0x017d, 0x00c2, 0x001a,
+ 0xff37, 0xfd7d, 0xfc73, 0xfb8e, 0xfa23, 0xf9fd,
+ 0xf9be, 0xf859, 0xf86b, 0xf8ca, 0xf799, 0xf737,
+ 0xf7ca, 0xf7e1, 0xf77e, 0xf692, 0xf673, 0xf674,
+ 0xf4a1, 0xf42e, 0xf58b, 0xf54b, 0xf533, 0xf4b7,
+ 0xf255, 0xf32d, 0xf5bf, 0xf569, 0xf610, 0xf695,
+ 0xf4cf, 0xf66b, 0xf800, 0xf51c, 0xf58e, 0xf908,
+ 0xf913, 0xf98f, 0xfc25, 0xfc4c, 0xfb18, 0xfc0b,
+ 0xfe15, 0xfe9e, 0xfebd, 0xfef9, 0xfd7a, 0xfe65,
+ 0x027e, 0x01d4, 0x000e, 0x0244, 0x00ac, 0xff1f,
+ 0x034f, 0x02cf, 0x00cc, 0x0584, 0x0616, 0x02e0,
+ 0x056f, 0x0609, 0x0278, 0x031e, 0x0558, 0x05a1,
+ 0x0764, 0x0a9c, 0x0b42, 0x0886, 0x0719, 0x07b3,
+ 0x0745, 0x0883, 0x09cc, 0x07b3, 0x08ef, 0x0b58,
+ 0x07b7, 0x0606, 0x07ca, 0x0676, 0x0657, 0x06ee,
+ 0x05cc, 0x07e8, 0x0796, 0x023b, 0x01d4, 0x0418,
+ 0x03eb, 0x0469, 0x0361, 0x01fb, 0x02ae, 0x0055,
+ 0xfe82, 0x00d0, 0x003d, 0xff0d, 0x008c, 0xfe61,
+ 0xfafc, 0xfaa6, 0xf941, 0xf88a, 0xfa76, 0xf9c2,
+ 0xf7c3, 0xf8ee, 0xf918, 0xf6a4, 0xf7ae, 0xfa66,
+ 0xf847, 0xf65b, 0xf85b, 0xf7e1, 0xf655, 0xf721,
+ 0xf51d, 0xf2c4, 0xf4be, 0xf5a2, 0xf4b6, 0xf456,
+ 0xf239, 0xf165, 0xf34a, 0xf329, 0xf2e1, 0xf468,
+ 0xf3db, 0xf288, 0xf372, 0xf469, 0xf475, 0xf540,
+ 0xf609, 0xf532, 0xf4a6, 0xf55d, 0xf4bd, 0xf438,
+ 0xf5c6, 0xf64e, 0xf64c, 0xf70d, 0xf6ce, 0xf871,
+ 0xfab7, 0xf906, 0xf9a4, 0xfd54, 0xfc7f, 0xfc05,
+ 0xfe77, 0xfdc2, 0xfe05, 0x006e, 0xfed0, 0xfde8,
+ 0x00f7, 0x01e2, 0x00c8, 0x00d9, 0x0153, 0x0191,
+ 0x01a2, 0x02cc, 0x04fa, 0x0543, 0x0417, 0x03ec,
+ 0x0456, 0x0457, 0x04b2, 0x0650, 0x0740, 0x06b7,
+ 0x07c7, 0x0948, 0x098e, 0x0b90, 0x0c9e, 0x0b72,
+ 0x0d4b, 0x0e1d, 0x0baf, 0x0d18, 0x0e58, 0x0c60,
+ 0x0d99, 0x0d09, 0x089d, 0x08ba, 0x08ee, 0x05fa,
+ 0x0684, 0x067c, 0x033f, 0x0293, 0x0230, 0x014e,
+ 0x02dc, 0x02c2, 0x01b2, 0x02cf, 0x0190, 0xff7c,
+ 0x0107, 0x0278, 0x03df, 0x065e, 0x0481, 0x0130,
+ 0x024c, 0x0195, 0xfd67, 0xfcec, 0xfda9, 0xfbed,
+ 0xfc6e, 0xfe34, 0xfccd, 0xfa94, 0xf91e, 0xf77d,
+ 0xf6d9, 0xf712, 0xf706, 0xf6c6, 0xf6b9, 0xf779,
+ 0xf7b8, 0xf63d, 0xf593, 0xf72b, 0xf93d, 0xf9ff,
+ 0xf93a, 0xf8d9, 0xf850, 0xf5eb, 0xf559, 0xf6bf,
+ 0xf5cd, 0xf521, 0xf538, 0xf3bc, 0xf569, 0xf6e4,
+ 0xf2b0, 0xf393, 0xf98c, 0xf843, 0xf726, 0xfbdc,
+ 0xfc40, 0xfbc5, 0xffbd, 0x003c, 0xff0c, 0x0150,
+ 0x026e, 0x02e9, 0x0484, 0x0474, 0x04d1, 0x04cc,
+ 0x0135, 0x0034, 0x03a3, 0x049d, 0x039a, 0x03d4,
+ 0x03e1, 0x0412, 0x04ec, 0x05e0, 0x071c, 0x076e,
+ 0x07f6, 0x0a36, 0x0a33, 0x08a3, 0x0afe, 0x0dd5,
+ 0x0d9b, 0x0e05, 0x0dcb, 0x0b40, 0x0b59, 0x0cfb,
+ 0x0bbd, 0x0ba1, 0x0e8a, 0x0f30, 0x0da3, 0x0df7,
+ 0x0ea2, 0x0da4, 0x0e37, 0x10dc, 0x111d, 0x0fbd,
+ 0x10ca, 0x1245, 0x1265, 0x1227, 0x0f1a, 0x0bb6,
+ 0x0daa, 0x0ebb, 0x0a99, 0x090c, 0x096a, 0x0685,
+ 0x056f, 0x062c, 0x03c9, 0x02ea, 0x0537, 0x04b5,
+ 0x021d, 0x01b2, 0x030f, 0x0359, 0x01d6, 0x020b,
+ 0x0348, 0x003e, 0xfcc0, 0xfd67, 0xfcda, 0xfb18,
+ 0xfba8, 0xf9e7, 0xf6ab, 0xf6f8, 0xf657, 0xf408,
+ 0xf4fc, 0xf598, 0xf3bc, 0xf3ba, 0xf4ad, 0xf4fd,
+ 0xf594, 0xf555, 0xf5c9, 0xf741, 0xf609, 0xf4d9,
+ 0xf5cd, 0xf487, 0xf3f0, 0xf69b, 0xf563, 0xf167,
+ 0xf189, 0xf262, 0xf193, 0xf2e0, 0xf4f5, 0xf519,
+ 0xf579, 0xf87a, 0xfc24, 0xfd00, 0xfd0d, 0xff28,
+ 0x008d, 0x013d, 0x030a, 0x031c, 0x02e4, 0x04ff,
+ 0x052e, 0x0388, 0x02d6, 0x0149, 0x0185, 0x04c1,
+ 0x0650, 0x080f, 0x0a63, 0x09a2, 0x0b4d, 0x0e9e,
+ 0x0b3d, 0x0947, 0x0e5c, 0x0f24, 0x0c42, 0x0ded,
+ 0x0ef0, 0x0c98, 0x0bc3, 0x0ba4, 0x09da, 0x081c,
+ 0x096f, 0x0c5b, 0x0ae7, 0x0845, 0x0b53, 0x0cbc,
+ 0x086b, 0x080a, 0x0af1, 0x0a55, 0x0a1f, 0x0b38,
+ 0x0a2d, 0x0a08, 0x0b06, 0x0aa8, 0x0b5c, 0x0c11,
+ 0x09eb, 0x0881, 0x0943, 0x08b6, 0x06dd, 0x0611,
+ 0x0665, 0x05c2, 0x0360, 0x0227, 0x0361, 0x04fa,
+ 0x06a4, 0x072f, 0x053b, 0x04bb, 0x0631, 0x051b,
+ 0x037b, 0x0302, 0x0123, 0x0113, 0x0194, 0xfbc3,
+ 0xf6e1, 0xf9cd, 0xfb5c, 0xf9d0, 0xfa91, 0xf9e0,
+ 0xf8e1, 0xfc2a, 0xfea0, 0xff3c, 0x00c6, 0x006a,
+ 0x00ad, 0x035c, 0x01ca, 0xfdce, 0xfdad, 0xfe8f,
+ 0xfddc, 0xfc1f, 0xfa54, 0xfa94, 0xfa29, 0xf80d,
+ 0xf849, 0xf800, 0xf665, 0xf8b0, 0xfa58, 0xf881,
+ 0xf85c, 0xf77f, 0xf605, 0xf7e4, 0xf76d, 0xf63e,
+ 0xfa43, 0xfb60, 0xf92a, 0xfadb, 0xfb0e, 0xfa4f,
+ 0xfdb7, 0xfe13, 0xfbed, 0xfd49, 0xfdc4, 0xfe5f,
+ 0x00f7, 0xffec, 0xff4a, 0x0289, 0x0384, 0x034e,
+ 0x0353, 0x0234, 0x0528, 0x09cb, 0x0a6c, 0x0b7d,
+ 0x0b0e, 0x0689, 0x06a1, 0x09f2, 0x095c, 0x08ac,
+ 0x0827, 0x0566, 0x044a, 0x04c8, 0x04f0, 0x0514,
+ 0x04a9, 0x0634, 0x08ee, 0x08e1, 0x09db, 0x0b83,
+ 0x099e, 0x0a7f, 0x0de9, 0x0cec, 0x0d89, 0x10da,
+ 0x105a, 0x10c7, 0x1172, 0x0cc1, 0x0add, 0x0d1f,
+ 0x0c24, 0x0bfb, 0x0c50, 0x0827, 0x06e9, 0x09a6,
+ 0x08c4, 0x0765, 0x073b, 0x042e, 0x01ef, 0x0269,
+ 0x01d3, 0x016a, 0x0225, 0x0196, 0x00b1, 0x00d1,
+ 0x0075, 0xfe44, 0xfb46, 0xfa88, 0xfba5, 0xfb7c,
+ 0xfb92, 0xfc9f, 0xfaaf, 0xf81e, 0xfa31, 0xfca3,
+ 0xfb4a, 0xfa29, 0xfa5f, 0xf968, 0xf929, 0xfb16,
+ 0xfce8, 0xfd5b, 0xfc1e, 0xfa29, 0xf9b9, 0xf94c,
+ 0xf6fb, 0xf57f, 0xf57f, 0xf47d, 0xf33c, 0xf348,
+ 0xf3f3, 0xf49d, 0xf548, 0xf693, 0xf802, 0xf819,
+ 0xf88d, 0xfaf8, 0xfcd6, 0xfcd6, 0xfbfe, 0xfb88,
+ 0xfcf4, 0xff1a, 0x0094, 0x020d, 0x0128, 0xfe4b,
+ 0xff12, 0x017a, 0x0083, 0xff55, 0x00f8, 0x0433,
+ 0x05ff, 0x047a, 0x04cb, 0x07d7, 0x06f8, 0x070e,
+ 0x0bb1, 0x0b7d, 0x0a4a, 0x0ed1, 0x0f45, 0x0cdb,
+ 0x0eb0, 0x0dd6, 0x0cd4, 0x0f9a, 0x0c2c, 0x08a0,
+ 0x0e00, 0x0fa9, 0x0caa, 0x0dc5, 0x0c3b, 0x0890,
+ 0x099c, 0x0a79, 0x0b4a, 0x0d18, 0x0a69, 0x098c,
+ 0x0e30, 0x0eba, 0x0d96, 0x10e8, 0x11d4, 0x0ed1,
+ 0x0d3b, 0x0d02, 0x0d4c, 0x0d84, 0x0c23, 0x0933,
+ 0x0553, 0x0311, 0x037c, 0x034f, 0x028c, 0x023e,
+ 0x00d7, 0x0025, 0xfffe, 0xfdfb, 0xfdf3, 0x000d,
+ 0xffb5, 0xfee5, 0xfe42, 0xfc88, 0xfca5, 0xfc4b,
+ 0xfab3, 0xfc70, 0xfb5f, 0xf5bd, 0xf613, 0xf76d,
+ 0xf2dd, 0xf1e5, 0xf284, 0xee1b, 0xedef, 0xf1c1,
+ 0xf1b7, 0xf271, 0xf385, 0xf19d, 0xf2c9, 0xf4eb,
+ 0xf3db, 0xf541, 0xf71d, 0xf5b2, 0xf575, 0xf486,
+ 0xf20c, 0xf2d0, 0xf2a3, 0xf102, 0xf3cc, 0xf40b,
+ 0xee96, 0xedb3, 0xf128, 0xf2e3, 0xf47a, 0xf585,
+ 0xf540, 0xf5e1, 0xf70f, 0xf94d, 0xfc79, 0xfe22,
+ 0xffa5, 0x0078, 0xfefe, 0xff79, 0x0078, 0xfdea,
+ 0xfdb2, 0x000e, 0xfe33, 0xfbbc, 0xfcfb, 0xff46,
+ 0x01d3, 0x0417, 0x0625, 0x0867, 0x0820, 0x086b,
+ 0x0bdf, 0x0b78, 0x0989, 0x0cae, 0x0d63, 0x0aa1,
+ 0x0bbc, 0x0bf3, 0x09bc, 0x0a6e, 0x09c6, 0x06da,
+ 0x071a, 0x088a, 0x09a6, 0x0ad2, 0x0a62, 0x0b35,
+ 0x0cb9, 0x0b9a, 0x0d2e, 0x10b7, 0x0f8a, 0x0f53,
+ 0x1262, 0x1140, 0x0e74, 0x0e32, 0x0cb6, 0x0a6d,
+ 0x09e6, 0x09b2, 0x0806, 0x0547, 0x0549, 0x06b6,
+ 0x0357, 0x00e6, 0x04d2, 0x05c0, 0x02a4, 0x035c,
+ 0x04f2, 0x0557, 0x06f6, 0x0660, 0x03f3, 0x02a2,
+ 0x00b8, 0xffe2, 0x001b, 0xfdc0, 0xfbe6, 0xfb2a,
+ 0xf882, 0xf7f5, 0xf8a9, 0xf635, 0xf5e9, 0xf7e1,
+ 0xf65e, 0xf551, 0xf64d, 0xf5ca, 0xf6c7, 0xf925,
+ 0xf8d7, 0xf73e, 0xf514, 0xf367, 0xf4c3, 0xf572,
+ 0xf446, 0xf510, 0xf541, 0xf459, 0xf655, 0xf741,
+ 0xf513, 0xf5bc, 0xf88c, 0xf8bf, 0xf774, 0xf72f,
+ 0xf809, 0xf7fd, 0xf695, 0xf76c, 0xf93f, 0xf6dc,
+ 0xf400, 0xf636, 0xf961, 0xf974, 0xf92a, 0xfa91,
+ 0xfbcd, 0xfbd6, 0xfcf2, 0xffad, 0x00ea, 0x0095,
+ 0x00a3, 0x0000, 0xff44, 0x0054, 0x0067, 0xfe60,
+ 0xfde7, 0xfe8f, 0xfde2, 0xfe77, 0x0162, 0x02c6,
+ 0x0226, 0x025d, 0x0321, 0x0426, 0x070d, 0x09fb,
+ 0x0a3d, 0x0970, 0x09ba, 0x0b69, 0x0cf8, 0x0bd8,
+ 0x0ab1, 0x0ce0, 0x0d1b, 0x0989, 0x091e, 0x0adc,
+ 0x09a6, 0x090e, 0x0a3e, 0x09a2, 0x0962, 0x0b16,
+ 0x0bf8, 0x0bd5, 0x0b4d, 0x0a7c, 0x0a7a, 0x0aa4,
+ 0x0b04, 0x0c97, 0x0cbb, 0x0a45, 0x086a, 0x084a,
+ 0x0859, 0x0674, 0x0228, 0xfff6, 0x01a1, 0x01d3,
+ 0xff5e, 0xfe39, 0xfe6a, 0xfe1c, 0xfd48, 0xfcc1,
+ 0xfd52, 0xfd5b, 0xfc63, 0xfd53, 0xfe72, 0xfcf7,
+ 0xfc67, 0xfc81, 0xfa1c, 0xf975, 0xfae6, 0xf925,
+ 0xf805, 0xfa0e, 0xf8b3, 0xf5a4, 0xf67d, 0xf726,
+ 0xf5e3, 0xf611, 0xf5e2, 0xf4f2, 0xf59e, 0xf5b1,
+ 0xf52a, 0xf69c, 0xf6ef, 0xf510, 0xf5b0, 0xf861,
+ 0xf919, 0xf874, 0xf83d, 0xf7bf, 0xf6e9, 0xf728,
+ 0xf7c3, 0xf668, 0xf4c4, 0xf558, 0xf592, 0xf4f2,
+ 0xf685, 0xf828, 0xf833, 0xf999, 0xfa2f, 0xf800,
+ 0xf817, 0xfa59, 0xfa84, 0xfac3, 0xfc52, 0xfc93,
+ 0xfc60, 0xfd2e, 0xfede, 0x0157, 0x0257, 0x0150,
+ 0x0165, 0x02f2, 0x0449, 0x0510, 0x0571, 0x06ca,
+ 0x083b, 0x074d, 0x06e0, 0x081c, 0x06db, 0x05b2,
+ 0x07d6, 0x081e, 0x0720, 0x093e, 0x09df, 0x0832,
+ 0x09f9, 0x0c22, 0x0b05, 0x0b77, 0x0e14, 0x0f29,
+ 0x0fc5, 0x1090, 0x101d, 0x0fae, 0x0f3b, 0x0cd0,
+ 0x0af1, 0x0bfb, 0x0b67, 0x0725, 0x0502, 0x0634,
+ 0x05a2, 0x042c, 0x0537, 0x0688, 0x0704, 0x07bc,
+ 0x0736, 0x068f, 0x0852, 0x0a05, 0x0a26, 0x0a7f,
+ 0x0a12, 0x08bb, 0x0882, 0x074f, 0x03e7, 0x025f,
+ 0x02e0, 0x0153, 0xfe83, 0xfd02, 0xfc05, 0xfb8a,
+ 0xfc14, 0xfc2c, 0xfc7d, 0xfe10, 0xfdfe, 0xfcc0,
+ 0xff2e, 0x0308, 0x0268, 0xffaa, 0xff92, 0x0072,
+ 0xff46, 0xfd03, 0xfbe3, 0xfb54, 0xf98b, 0xf79d,
+ 0xf6e2, 0xf5d7, 0xf43f, 0xf368, 0xf2e7, 0xf2fd,
+ 0xf489, 0xf604, 0xf61f, 0xf5d0, 0xf69d, 0xf8c9,
+ 0xf9fd, 0xf923, 0xf937, 0xfb0c, 0xfbb7, 0xfadd,
+ 0xfa71, 0xfad6, 0xfac2, 0xf973, 0xf8d8, 0xf9d6,
+ 0xf9cc, 0xf907, 0xfa0a, 0xfb15, 0xfb10, 0xfbbc,
+ 0xfca9, 0xfe00, 0x00b4, 0x029e, 0x035c, 0x04af,
+ 0x057e, 0x05cf, 0x06d6, 0x0727, 0x070d, 0x077c,
+ 0x06bd, 0x061d, 0x0726, 0x06c2, 0x057d, 0x068e,
+ 0x0708, 0x050f, 0x04b4, 0x06a4, 0x07d8, 0x08a9,
+ 0x0a9c, 0x0c56, 0x0c52, 0x0b86, 0x0b3f, 0x0b0d,
+ 0x0aa2, 0x0ae6, 0x0b85, 0x0b07, 0x0a00, 0x0a1d,
+ 0x0a8b, 0x0a1c, 0x0a35, 0x0ab2, 0x09ea, 0x09d0,
+ 0x0b25, 0x0aa1, 0x0935, 0x09eb, 0x0ae2, 0x0a62,
+ 0x0921, 0x07f3, 0x0864, 0x08e5, 0x0755, 0x070d,
+ 0x07da, 0x057b, 0x033c, 0x0482, 0x0605, 0x0660,
+ 0x057b, 0x03c9, 0x0409, 0x03e7, 0x01a1, 0x0251,
+ 0x0405, 0x0159, 0xff04, 0xff8d, 0xff56, 0xff5f,
+ 0xff85, 0xfd71, 0xfc08, 0xfc6c, 0xfc0c, 0xfb61,
+ 0xfb16, 0xfae6, 0xfb56, 0xfba0, 0xfbcc, 0xfc47,
+ 0xfb8d, 0xfaaf, 0xfb04, 0xf9e3, 0xf7d0, 0xf7af,
+ 0xf76d, 0xf5dd, 0xf581, 0xf5e5, 0xf576, 0xf4e0,
+ 0xf436, 0xf386, 0xf3a9, 0xf436, 0xf4c1, 0xf56c,
+ 0xf5b6, 0xf61b, 0xf766, 0xf7e5, 0xf70b, 0xf7a2,
+ 0xf984, 0xf91f, 0xf766, 0xf7eb, 0xf906, 0xf819,
+ 0xf751, 0xf7e4, 0xf839, 0xf8b8, 0xf958, 0xf8dc,
+ 0xf98e, 0xfc72, 0xfe08, 0xfe9f, 0x0096, 0x01a1,
+ 0x01b4, 0x03b0, 0x0577, 0x0565, 0x05ec, 0x0642,
+ 0x04ae, 0x0353, 0x0392, 0x0443, 0x041a, 0x02fe,
+ 0x0285, 0x0365, 0x04c9, 0x062c, 0x06a7, 0x06ae,
+ 0x07ed, 0x08c9, 0x080f, 0x0824, 0x0911, 0x09a5,
+ 0x0aa6, 0x0b13, 0x0a14, 0x0926, 0x0835, 0x06f5,
+ 0x0670, 0x0676, 0x0602, 0x04a2, 0x0367, 0x0380,
+ 0x0376, 0x0313, 0x03cb, 0x03c4, 0x02d1, 0x0342,
+ 0x03da, 0x04a7, 0x0614, 0x04ff, 0x03a5, 0x049d,
+ 0x0358, 0x013d, 0x0228, 0x0229, 0x0114, 0x00d8,
+ 0xfeec, 0xfd9a, 0xfe26, 0xfd09, 0xfc7a, 0xfcc1,
+ 0xfb4b, 0xfc25, 0xfe35, 0xfd62, 0xfe1a, 0xff6f,
+ 0xfe05, 0xfebf, 0xff78, 0xfd0d, 0xfe53, 0x00d5,
+ 0xfe86, 0xfd49, 0xfe17, 0xfce3, 0xfc83, 0xfc2c,
+ 0xf9d6, 0xf9b1, 0xfaf5, 0xfa61, 0xfa7d, 0xfbfa,
+ 0xfcbb, 0xfc91, 0xfbc7, 0xfb62, 0xfbfa, 0xfc6f,
+ 0xfc77, 0xfbfc, 0xfb7f, 0xfccb, 0xfe38, 0xfd35,
+ 0xfc2b, 0xfca2, 0xfc7c, 0xfc2f, 0xfcea, 0xfcc6,
+ 0xfbc1, 0xfbbc, 0xfb82, 0xfabe, 0xfbaf, 0xfcad,
+ 0xfbcd, 0xfc0e, 0xfda7, 0xfde4, 0xfe25, 0xfee0,
+ 0xfe74, 0xfeb0, 0xffc6, 0xff6f, 0xff38, 0x0038,
+ 0x00b2, 0x00e5, 0x014c, 0x0122, 0x0037, 0xfeef,
+ 0xfedc, 0x0038, 0x0101, 0x017f, 0x01ec, 0x0148,
+ 0x0173, 0x0258, 0x021e, 0x02d6, 0x03b4, 0x02a9,
+ 0x036b, 0x056b, 0x0510, 0x0515, 0x05a5, 0x04c1,
+ 0x04a2, 0x03f8, 0x025c, 0x0391, 0x0498, 0x0388,
+ 0x0486, 0x0580, 0x04db, 0x0556, 0x044d, 0x0284,
+ 0x0470, 0x0572, 0x0343, 0x031b, 0x03f6, 0x0328,
+ 0x02fa, 0x03e7, 0x04ff, 0x05af, 0x04f8, 0x0437,
+ 0x049f, 0x0533, 0x05b2, 0x0573, 0x0415, 0x030b,
+ 0x0210, 0x00d1, 0x00f5, 0x016b, 0x0028, 0xfea5,
+ 0xfe78, 0xfefd, 0xff2b, 0xfee3, 0xff32, 0x002b,
+ 0x004e, 0xff78, 0xff3c, 0x006b, 0x0184, 0x0131,
+ 0x010a, 0x0102, 0xff3b, 0xfe09, 0xfe3f, 0xfce6,
+ 0xfbf5, 0xfc73, 0xfad5, 0xf9b1, 0xfb22, 0xfb0d,
+ 0xfb17, 0xfd23, 0xfd08, 0xfc84, 0xfe27, 0xfdf8,
+ 0xfcd7, 0xfdb6, 0xfd94, 0xfc38, 0xfc96, 0xfd34,
+ 0xfc09, 0xfa7c, 0xfa22, 0xfa59, 0xf9f6, 0xf99e,
+ 0xfa1a, 0xfa96, 0xfa9b, 0xfab7, 0xfb1c, 0xfb6f,
+ 0xfc06, 0xfd70, 0xfe28, 0xfda2, 0xfe07, 0xfe79,
+ 0xfd7f, 0xfdfe, 0xffd0, 0xff8d, 0xfe87, 0xfe9f,
+ 0xfecd, 0xfef8, 0xff2c, 0xff62, 0xffaa, 0xfefe,
+ 0xfec5, 0x0062, 0x00d7, 0x0035, 0x014d, 0x01cd,
+ 0x0121, 0x0265, 0x034d, 0x01f5, 0x01ed, 0x0346,
+ 0x03d4, 0x045a, 0x048e, 0x0459, 0x04f1, 0x04e0,
+ 0x03fe, 0x0473, 0x04fe, 0x045a, 0x0423, 0x0481,
+ 0x0482, 0x043e, 0x046e, 0x04ff, 0x04ac, 0x0477,
+ 0x0569, 0x04d8, 0x0383, 0x044a, 0x04aa, 0x03c0,
+ 0x03a6, 0x0358, 0x0326, 0x034c, 0x01c9, 0x00b5,
+ 0x013b, 0x0117, 0x010d, 0x00a9, 0xff5c, 0x000a,
+ 0x00e5, 0x0019, 0x00a5, 0x00cb, 0xff4e, 0xff5c,
+ 0xff7f, 0xff0c, 0x0023, 0x0078, 0xffe8, 0x00b6,
+ 0x00ff, 0x0051, 0xffb0, 0xfe6e, 0xfe1b, 0xff0b,
+ 0xfef9, 0xfeb2, 0xff4b, 0xff7b, 0xfefc, 0xfea3,
+ 0xfed9, 0xfeee, 0xfe45, 0xfdd9, 0xfe06, 0xfe59,
+ 0xfedd, 0xfec9, 0xfe32, 0xfe6f, 0xfef8, 0xff0f,
+ 0xff0c, 0xfec0, 0xfea9, 0xff27, 0xfefc, 0xfe54,
+ 0xfea5, 0xff3c, 0xfead, 0xfdf2, 0xfe30, 0xfdf6,
+ 0xfc9d, 0xfc23, 0xfcb0, 0xfc67, 0xfba9, 0xfbd5,
+ 0xfc78, 0xfcdf, 0xfd92, 0xfe86, 0xfeac, 0xfecc,
+ 0xffd9, 0x000f, 0xff31, 0xfefa, 0xfed2, 0xfe39,
+ 0xfdc4, 0xfcec, 0xfc15, 0xfb53, 0xfa14, 0xfa18,
+ 0xfad4, 0xf9c7, 0xf91d, 0xfa13, 0xfa5d, 0xfb02,
+ 0xfcf6, 0xfe4a, 0xff4c, 0x00bc, 0x0192, 0x01b2,
+ 0x019f, 0x01ab, 0x01a4, 0x00f5, 0x005a, 0x0011,
+ 0xff18, 0xfe44, 0xfe26, 0xfdb8, 0xfdba, 0xfea3,
+ 0xfec9, 0xfe76, 0xff29, 0x0034, 0x00b3, 0x012e,
+ 0x01c6, 0x01df, 0x01ba, 0x020f, 0x0273, 0x0274,
+ 0x0265, 0x0202, 0x0142, 0x00dc, 0x005b, 0xff60,
+ 0xfee3, 0xfee8, 0xfecf, 0xfecd, 0xfee0, 0xff36,
+ 0xfff4, 0x0000, 0xff4a, 0xff46, 0x0034, 0x0155,
+ 0x0243, 0x0321, 0x0422, 0x0450, 0x033f, 0x0262,
+ 0x021a, 0x01dc, 0x01dd, 0x0166, 0x0059, 0xffef,
+ 0xffc7, 0xffa5, 0x0006, 0xff92, 0xfe1d, 0xfd78,
+ 0xfd9d, 0xfdc8, 0xfde6, 0xfe26, 0xff88, 0x0140,
+ 0x0125, 0x0074, 0x0112, 0x018b, 0x00e4, 0x0031,
+ 0xffb6, 0xff36, 0xfef8, 0xfee5, 0xfefd, 0xff5b,
+ 0xff1f, 0xfe4d, 0xfe28, 0xfe4b, 0xfe15, 0xfdfa,
+ 0xfd4d, 0xfc7b, 0xfcc1, 0xfc89, 0xfbe7, 0xfcb9,
+ 0xfd20, 0xfcad, 0xfd2c, 0xfd07, 0xfc5e, 0xfcdd,
+ 0xfc79, 0xfb90, 0xfc56, 0xfcaf, 0xfc05, 0xfc41,
+ 0xfc7c, 0xfc05, 0xfb9b, 0xfaf5, 0xfa2b, 0xf9fa,
+ 0xfa74, 0xfb19, 0xfbe3, 0xfd3c, 0xfe0f, 0xfdab,
+ 0xfde3, 0xff0e, 0xff97, 0xff8d, 0xff88, 0xff7f,
+ 0xff6a, 0xff9b, 0x006c, 0x006b, 0xfef6, 0xfe96,
+ 0xff5b, 0xff14, 0xfe72, 0xfe45, 0xfe76, 0xff59,
+ 0xffc7, 0xffb2, 0x0089, 0x0162, 0x017c, 0x01c7,
+ 0x0270, 0x0354, 0x03d6, 0x036b, 0x02f5, 0x031d,
+ 0x03dd, 0x0452, 0x0395, 0x0371, 0x0445, 0x03ad,
+ 0x02e8, 0x0347, 0x027a, 0x0125, 0x0113, 0x00d5,
+ 0x005e, 0x00bd, 0x00ec, 0x0091, 0x00cc, 0x01b4,
+ 0x0268, 0x02f8, 0x03cd, 0x044e, 0x0498, 0x04d8,
+ 0x0402, 0x0340, 0x03cd, 0x0320, 0x0114, 0x0071,
+ 0x004b, 0xff13, 0xfe10, 0xfdc7, 0xfd86, 0xfd95,
+ 0xfe83, 0xff95, 0x0024, 0x0138, 0x02bb, 0x03bc,
+ 0x051f, 0x062f, 0x0598, 0x057a, 0x0613, 0x0536,
+ 0x0405, 0x03ac, 0x02fc, 0x01b8, 0x0063, 0xff97,
+ 0xff8b, 0xff5c, 0xfecf, 0xfe82, 0xfec0, 0xff3c,
+ 0xff56, 0xffa8, 0x009a, 0x0129, 0x01bd, 0x0269,
+ 0x020c, 0x01ac, 0x017e, 0x00a8, 0x00a9, 0x00e7,
+ 0xffc7, 0xff15, 0xfeec, 0xfe01, 0xfd87, 0xfd6e,
+ 0xfce0, 0xfc80, 0xfc7e, 0xfd0d, 0xfdc5, 0xfdce,
+ 0xfe2f, 0xfef8, 0xfec6, 0xfe64, 0xff02, 0xffeb,
+ 0xfffb, 0xffd2, 0x00c8, 0x0123, 0x000a, 0x0055,
+ 0x0100, 0xffd2, 0xff31, 0xff1a, 0xfe12, 0xfdde,
+ 0xfe05, 0xfd81, 0xfdac, 0xfddd, 0xfddf, 0xfea0,
+ 0xff1e, 0xfff0, 0x01fb, 0x0323, 0x02e1, 0x02af,
+ 0x02fd, 0x03c5, 0x049b, 0x0537, 0x058b, 0x055f,
+ 0x0547, 0x055c, 0x0534, 0x052d, 0x048d, 0x0336,
+ 0x02c3, 0x02a0, 0x0227, 0x027c, 0x02db, 0x02e1,
+ 0x03c6, 0x049b, 0x0476, 0x044c, 0x04a0, 0x0561,
+ 0x0610, 0x064c, 0x0691, 0x06c0, 0x0664, 0x05f4,
+ 0x05dc, 0x05d4, 0x0547, 0x0493, 0x049d, 0x049b,
+ 0x03fe, 0x03f3, 0x046f, 0x047e, 0x045d, 0x049e,
+ 0x054e, 0x05aa, 0x0561, 0x0586, 0x0602, 0x0611,
+ 0x063d, 0x0667, 0x0619, 0x05dc, 0x059c, 0x0562,
+ 0x0585, 0x0527, 0x043c, 0x0391, 0x0296, 0x0159,
+ 0x00fc, 0x011b, 0x00e6, 0x00db, 0x013d, 0x01af,
+ 0x0211, 0x01fb, 0x015a, 0x012a, 0x0175, 0x0197,
+ 0x01f3, 0x0264, 0x028b, 0x02e3, 0x0303, 0x02b6,
+ 0x029b, 0x01fa, 0x00dd, 0x0031, 0xff3c, 0xfe1c,
+ 0xfd82, 0xfcb7, 0xfc2e, 0xfc2e, 0xfbd0, 0xfbb4,
+ 0xfbf3, 0xfc0a, 0xfcca, 0xfdb5, 0xfe41, 0xff25,
+ 0xffad, 0xfff2, 0x0087, 0x0049, 0x0008, 0x0074,
+ 0xff9d, 0xfe3a, 0xfdca, 0xfd2b, 0xfc49, 0xfbb9,
+ 0xfb81, 0xfc10, 0xfcc1, 0xfd3b, 0xfe06, 0xfe96,
+ 0xff38, 0x00a2, 0x01f2, 0x02df, 0x0387, 0x03ab,
+ 0x0413, 0x04d4, 0x0529, 0x0520, 0x04c9, 0x0456,
+ 0x040f, 0x03a9, 0x0367, 0x033f, 0x02a2, 0x021e,
+ 0x0218, 0x0263, 0x0318, 0x03a6, 0x03e5, 0x0476,
+ 0x0504, 0x051e, 0x050a, 0x0544, 0x0611, 0x0683,
+ 0x062b, 0x061a, 0x0630, 0x05f2, 0x05d5, 0x0578,
+ 0x04e2, 0x04a8, 0x0408, 0x0317, 0x02d4, 0x02aa,
+ 0x0236, 0x0207, 0x01d7, 0x017d, 0x019a, 0x0206,
+ 0x01fa, 0x01ce, 0x024d, 0x02f3, 0x0325, 0x0344,
+ 0x0356, 0x036a, 0x03b8, 0x0373, 0x02a7, 0x025c,
+ 0x01cf, 0x008b, 0x0000, 0x001c, 0xffa6, 0xff0d,
+ 0xff0c, 0xff4a, 0xff6f, 0xff4f, 0xfee3, 0xfeb4,
+ 0xfef7, 0xff29, 0xff3e, 0xffa6, 0x004e, 0x00b7,
+ 0x00eb, 0x019a, 0x0228, 0x013f, 0x003e, 0x0072,
+ 0xffe4, 0xfe8b, 0xfe52, 0xfdcb, 0xfc79, 0xfc83,
+ 0xfcbf, 0xfc03, 0xfc56, 0xfd1f, 0xfcbe, 0xfca1,
+ 0xfd29, 0xfd57, 0xfd9b, 0xfddf, 0xfdc7, 0xfe10,
+ 0xfe91, 0xfeb4, 0xfeb3, 0xfe6c, 0xfdfa, 0xfde1,
+ 0xfdb0, 0xfd63, 0xfdbe, 0xfe16, 0xfda9, 0xfd5e,
+ 0xfd7e, 0xfd4c, 0xfd06, 0xfd42, 0xfd9b, 0xfdcc,
+ 0xfe3c, 0xfecb, 0xff1b, 0xff79, 0xffeb, 0x0042,
+ 0x00a0, 0x007d, 0xfff7, 0x0018, 0xfff2, 0xfef7,
+ 0xff09, 0xffa7, 0xff2f, 0xfee0, 0xff12, 0xfefb,
+ 0xff63, 0xffcf, 0xff72, 0xffa0, 0x007e, 0x010b,
+ 0x0186, 0x01f5, 0x0237, 0x02cc, 0x0379, 0x03ab,
+ 0x03a4, 0x03c4, 0x03ab, 0x030f, 0x0271, 0x01ff,
+ 0x018b, 0x0144, 0x00c4, 0x000e, 0x000b, 0x0036,
+ 0xffea, 0xffe1, 0x0000, 0x0006, 0x0087, 0x0173,
+ 0x0277, 0x032d, 0x0366, 0x03c8, 0x0413, 0x03ef,
+ 0x0430, 0x0459, 0x03bf, 0x033d, 0x02cc, 0x021c,
+ 0x0168, 0x008c, 0x0019, 0x0000, 0xff61, 0xff28,
+ 0xffa5, 0xfffa, 0x00c5, 0x01b1, 0x01f8, 0x02ce,
+ 0x03d7, 0x03ef, 0x0429, 0x0499, 0x0485, 0x047b,
+ 0x042c, 0x0356, 0x02d3, 0x0231, 0x0113, 0x0087,
+ 0x004e, 0xff7f, 0xfed8, 0xff03, 0xff74, 0xff9e,
+ 0xff49, 0xfefa, 0xff76, 0x0030, 0x00b7, 0x0154,
+ 0x018e, 0x01a2, 0x0220, 0x01dc, 0x0130, 0x015c,
+ 0x00e5, 0xffc3, 0xffa1, 0xff3f, 0xfe2a, 0xfdd5,
+ 0xfd70, 0xfca6, 0xfc70, 0xfc41, 0xfbf6, 0xfc0c,
+ 0xfc11, 0xfc0f, 0xfc84, 0xfd78, 0xfe60, 0xfebb,
+ 0xff52, 0x0050, 0x009e, 0x00d3, 0x016d, 0x0144,
+ 0x00b8, 0x008d, 0x0023, 0xff7e, 0xff07, 0xfee0,
+ 0xff1c, 0xff1e, 0xfeb1, 0xfe42, 0xfdd2, 0xfd9c,
+ 0xfda8, 0xfdaf, 0xfe3c, 0xff2d, 0xffba, 0x0059,
+ 0x0136, 0x01cc, 0x0277, 0x0320, 0x0338, 0x035d,
+ 0x03be, 0x038d, 0x033a, 0x036e, 0x0335, 0x0248,
+ 0x01ac, 0x014a, 0x00ae, 0x003b, 0xffdd, 0xff81,
+ 0xffa3, 0x0008, 0x0058, 0x00d6, 0x0194, 0x0240,
+ 0x0270, 0x025d, 0x0291, 0x02b8, 0x02b0, 0x02e9,
+ 0x02e8, 0x0270, 0x0214, 0x01ee, 0x01c7, 0x0145,
+ 0x007f, 0x0051, 0x003f, 0xff86, 0xff07, 0xfefa,
+ 0xfefd, 0xff72, 0xffd9, 0xffdb, 0x003c, 0x00b9,
+ 0x00db, 0x011a, 0x0150, 0x0138, 0x0120, 0x00fc,
+ 0x00b6, 0x00a8, 0x00d5, 0x00ce, 0x0091, 0x002d,
+ 0xff66, 0xfec6, 0xfea5, 0xfe3a, 0xfddf, 0xfe15,
+ 0xfddf, 0xfda7, 0xfe6f, 0xff47, 0xffd0, 0x0068,
+ 0x00c5, 0x0127, 0x018f, 0x019e, 0x01b7, 0x01e6,
+ 0x021d, 0x0255, 0x01ea, 0x012f, 0x0088, 0xff9a,
+ 0xff01, 0xfea1, 0xfdb8, 0xfd48, 0xfd64, 0xfd27,
+ 0xfd51, 0xfe04, 0xfe89, 0xfefc, 0xff3f, 0xff96,
+ 0x004b, 0x00b5, 0x00ed, 0x0118, 0x00b4, 0x003c,
+ 0xffdb, 0xff47, 0xff04, 0xfebf, 0xfe23, 0xfe02,
+ 0xfe1a, 0xfdb4, 0xfd76, 0xfdc7, 0xfe26, 0xfe90,
+ 0xff46, 0xffc9, 0x000a, 0x00d0, 0x018a, 0x01a0,
+ 0x0202, 0x0246, 0x01b9, 0x0189, 0x01b4, 0x0174,
+ 0x0148, 0x011c, 0x00c0, 0x0062, 0xffc0, 0xff6b,
+ 0xff76, 0xff2d, 0xff4c, 0xffc4, 0xffd1, 0x0055,
+ 0x0116, 0x015c, 0x01dd, 0x020a, 0x01a6, 0x01c8,
+ 0x01d7, 0x0189, 0x0196, 0x0166, 0x00ff, 0x00fa,
+ 0x00d8, 0x0093, 0x0048, 0xffce, 0xff7e, 0xff2e,
+ 0xfeba, 0xfe7c, 0xfe1e, 0xfdcc, 0xfdf9, 0xfe49,
+ 0xff01, 0x003c, 0x0106, 0x0140, 0x0160, 0x0180,
+ 0x01cb, 0x020a, 0x01fe, 0x01f0, 0x01e9, 0x01f8,
+ 0x023e, 0x024a, 0x01da, 0x0131, 0x007c, 0xffed,
+ 0xffb2, 0xff65, 0xfebb, 0xfe67, 0xfec7, 0xff23,
+ 0xff5a, 0xffd2, 0x0045, 0x00a7, 0x010c, 0x0141,
+ 0x019f, 0x022b, 0x025e, 0x0271, 0x027d, 0x022a,
+ 0x01c9, 0x0189, 0x010f, 0x0070, 0x000a, 0xffc7,
+ 0xff3f, 0xfedc, 0xff15, 0xff36, 0xff39, 0xffaa,
+ 0xffe4, 0xffee, 0x0052, 0x0060, 0x0044, 0x00a2,
+ 0x00e0, 0x010d, 0x0146, 0x011a, 0x0112, 0x010b,
+ 0x0080, 0x003b, 0x0004, 0xff42, 0xfec0, 0xfe67,
+ 0xfdef, 0xfe01, 0xfe39, 0xfe3d, 0xfe8e, 0xff07,
+ 0xff9b, 0x0046, 0x007e, 0x007d, 0x0095, 0x0082,
+ 0x0074, 0x008a, 0x0087, 0x0098, 0x00bd, 0x00ae,
+ 0x0068, 0xfff8, 0xff65, 0xfee2, 0xfe98, 0xfe42,
+ 0xfdc8, 0xfdc3, 0xfe14, 0xfe0a, 0xfe32, 0xfef3,
+ 0xff86, 0xfff8, 0x0098, 0x00f7, 0x0159, 0x021f,
+ 0x02ae, 0x02df, 0x031c, 0x032c, 0x02d1, 0x0270,
+ 0x023f, 0x01ea, 0x0157, 0x00ce, 0x004c, 0xffb9,
+ 0xff35, 0xfee3, 0xfee8, 0xff4e, 0xffd5, 0x0050,
+ 0x00e1, 0x018d, 0x0216, 0x024e, 0x026d, 0x0298,
+ 0x0295, 0x0274, 0x0257, 0x0215, 0x01c8, 0x0187,
+ 0x011f, 0x00a2, 0x0011, 0xff65, 0xff16, 0xff24,
+ 0xff02, 0xfefd, 0xff7c, 0xfff3, 0x0029, 0x008b,
+ 0x0103, 0x0153, 0x01a0, 0x01f3, 0x0237, 0x0272,
+ 0x0291, 0x029d, 0x02c6, 0x02ca, 0x025f, 0x01bb,
+ 0x0114, 0x0073, 0xfff6, 0xff9f, 0xff5b, 0xff0d,
+ 0xfebc, 0xfecc, 0xff45, 0xffb6, 0x0027, 0x00a2,
+ 0x00d8, 0x0128, 0x01b7, 0x01da, 0x01d3, 0x023b,
+ 0x0283, 0x0279, 0x0296, 0x029e, 0x0239, 0x0190,
+ 0x00c0, 0x0002, 0xff71, 0xfed2, 0xfe3e, 0xfe02,
+ 0xfe2b, 0xfe7d, 0xfea0, 0xfea1, 0xfeb8, 0xfebb,
+ 0xfeca, 0xff0a, 0xff37, 0xffa4, 0x007d, 0x0107,
+ 0x0156, 0x01d9, 0x020a, 0x01e2, 0x01d4, 0x0193,
+ 0x0113, 0x00a4, 0x0031, 0xffbf, 0xff46, 0xfeae,
+ 0xfe5a, 0xfe5a, 0xfe6a, 0xfebc, 0xff50, 0xffbe,
+ 0x000b, 0x006f, 0x00e5, 0x015d, 0x01c8, 0x023e,
+ 0x02c3, 0x030a, 0x030a, 0x0309, 0x02fc, 0x02cc,
+ 0x02a6, 0x0273, 0x0210, 0x01bd, 0x0176, 0x0106,
+ 0x00b9, 0x00ba, 0x00c8, 0x00df, 0x00fc, 0x0109,
+ 0x013f, 0x018e, 0x01b0, 0x01d8, 0x0221, 0x0245,
+ 0x023e, 0x0245, 0x0254, 0x021c, 0x019a, 0x012f,
+ 0x00e7, 0x0090, 0x0049, 0x002a, 0x001b, 0x0030,
+ 0x005a, 0x0063, 0x0054, 0x005c, 0x008f, 0x00bd,
+ 0x00c3, 0x00f2, 0x0159, 0x0184, 0x01a1, 0x0208,
+ 0x022a, 0x01ea, 0x01e8, 0x01eb, 0x0193, 0x0143,
+ 0x0100, 0x00a9, 0x0076, 0x0027, 0xffba, 0xffc5,
+ 0xfffb, 0x0004, 0x0048, 0x0082, 0x007e, 0x00c0,
+ 0x00f1, 0x00c9, 0x00f9, 0x0189, 0x01fc, 0x026b,
+ 0x02dd, 0x0317, 0x0301, 0x02b7, 0x0279, 0x021f,
+ 0x016c, 0x00af, 0x0029, 0xffbd, 0xff6a, 0xff3f,
+ 0xff4c, 0xff7b, 0xff8f, 0xffa3, 0xffec, 0x004b,
+ 0x009e, 0x00d3, 0x00f0, 0x00f4, 0x00bc, 0x0073,
+ 0x004a, 0xfffd, 0xff93, 0xff48, 0xfeea, 0xfe8f,
+ 0xfe6e, 0xfe4e, 0xfe44, 0xfe75, 0xfe80, 0xfe60,
+ 0xfe69, 0xfe99, 0xfeeb, 0xff5c, 0xffa2, 0xffd8,
+ 0x005b, 0x00fe, 0x017e, 0x01ed, 0x0234, 0x0258,
+ 0x0277, 0x024f, 0x01d7, 0x0170, 0x011c, 0x00b1,
+ 0x0050, 0x001c, 0x0025, 0x0043, 0x0027, 0x0000,
+ 0xfffd, 0xffde, 0xffad, 0xffaa, 0xffcd, 0x0016,
+ 0x00a1, 0x0158, 0x0218, 0x02ab, 0x02db, 0x02a5,
+ 0x022b, 0x01a1, 0x0131, 0x00cc, 0x0061, 0x001e,
+ 0x0007, 0xffcb, 0xff73, 0xff46, 0xff0f, 0xfeb1,
+ 0xfe7e, 0xfe71, 0xfe6b, 0xfe97, 0xfeea, 0xff55,
+ 0xffcc, 0x0006, 0x003b, 0x00cd, 0x0155, 0x0180,
+ 0x01a0, 0x01c9, 0x01bf, 0x018d, 0x015f, 0x012f,
+ 0x00d2, 0x0060, 0x0027, 0x0018, 0xffe5, 0xff8c,
+ 0xff4c, 0xff2a, 0xff2d, 0xff83, 0xffec, 0x0021,
+ 0x008a, 0x0136, 0x01a1, 0x01c8, 0x01e2, 0x01d7,
+ 0x01b6, 0x0197, 0x0173, 0x0155, 0x0118, 0x00c2,
+ 0x0089, 0x004b, 0x0017, 0x000b, 0xffc9, 0xff64,
+ 0xff3e, 0xff10, 0xfee4, 0xff13, 0xff3b, 0xff4f,
+ 0xffc6, 0x0025, 0x001c, 0x0057, 0x00c1, 0x00bf,
+ 0x008f, 0x005b, 0x0006, 0xffd0, 0xffb6, 0xffa9,
+ 0xffca, 0xffb4, 0xff59, 0xff35, 0xff0d, 0xfeb7,
+ 0xfe8f, 0xfe70, 0xfe4f, 0xfe78, 0xfeb7, 0xfee0,
+ 0xff29, 0xffa3, 0x0029, 0x0073, 0x0087, 0x009a,
+ 0x006f, 0x000c, 0xffd9, 0xff9e, 0xff27, 0xfec9,
+ 0xfeb2, 0xfeb7, 0xfe8c, 0xfe47, 0xfe47, 0xfe4d,
+ 0xfe25, 0xfe37, 0xfe65, 0xfe92, 0xff11, 0xff9b,
+ 0xfff3, 0x0071, 0x010c, 0x017b, 0x01ad, 0x01a0,
+ 0x0185, 0x0168, 0x011d, 0x00be, 0x005a, 0xfffe,
+ 0xffdc, 0xffc2, 0xff84, 0xff60, 0xff4a, 0xff3f,
+ 0xff7c, 0xffbc, 0xffd5, 0x0038, 0x00d3, 0x0131,
+ 0x0175, 0x01b7, 0x01a7, 0x0162, 0x0135, 0x0113,
+ 0x00e5, 0x00a3, 0x004f, 0x0017, 0x0003, 0xffec,
+ 0xffe5, 0xffe1, 0xffab, 0xff8b, 0xffc8, 0x0011,
+ 0x003f, 0x007d, 0x00b7, 0x00e7, 0x0148, 0x01cd,
+ 0x0244, 0x02a7, 0x02dc, 0x02c7, 0x0293, 0x0260,
+ 0x0232, 0x0200, 0x01c7, 0x01ac, 0x01c2, 0x01bc,
+ 0x016a, 0x0100, 0x009f, 0x0041, 0xffe0, 0xff9c,
+ 0xffb6, 0x001c, 0x0073, 0x00c4, 0x013c, 0x01a4,
+ 0x01d6, 0x01f8, 0x01fc, 0x01d5, 0x01d2, 0x01f1,
+ 0x01d9, 0x01a9, 0x0184, 0x0133, 0x00cf, 0x0091,
+ 0x0049, 0xffed, 0xff9b, 0xff5d, 0xff31, 0xfefe,
+ 0xfeda, 0xff00, 0xff38, 0xff5d, 0xff99, 0xffae,
+ 0xff8e, 0xffb2, 0x000b, 0x004c, 0x007c, 0x0094,
+ 0x00a5, 0x00d1, 0x00d3, 0x0099, 0x005f, 0x0012,
+ 0xffa9, 0xff53, 0xff0e, 0xfecc, 0xfeaf, 0xfebe,
+ 0xfedf, 0xff14, 0xff54, 0xff86, 0xffd3, 0x0060,
+ 0x00d6, 0x00fd, 0x0119, 0x013b, 0x014d, 0x0171,
+ 0x0189, 0x0175, 0x0168, 0x0165, 0x0153, 0x014f,
+ 0x0142, 0x011e, 0x010f, 0x0101, 0x00f1, 0x00fd,
+ 0x010f, 0x0140, 0x019a, 0x01b1, 0x0195, 0x01a6,
+ 0x01b7, 0x019a, 0x0189, 0x0191, 0x019e, 0x01a7,
+ 0x01b4, 0x01c0, 0x01bb, 0x01ce, 0x01f4, 0x01ca,
+ 0x0187, 0x0193, 0x0199, 0x016e, 0x0158, 0x0143,
+ 0x0131, 0x014f, 0x0174, 0x018a, 0x01b1, 0x01f6,
+ 0x0269, 0x02df, 0x030b, 0x0300, 0x02f6, 0x02e2,
+ 0x02b2, 0x0272, 0x0228, 0x01db, 0x01b0, 0x01a0,
+ 0x0178, 0x013f, 0x0120, 0x0126, 0x0154, 0x0171,
+ 0x0175, 0x01ca, 0x0252, 0x029a, 0x02d4, 0x0321,
+ 0x0336, 0x032e, 0x0334, 0x031b, 0x02dc, 0x0299,
+ 0x025a, 0x020b, 0x01a2, 0x0138, 0x00ea, 0x00b6,
+ 0x0092, 0x0081, 0x0094, 0x00ca, 0x011d, 0x0169,
+ 0x016a, 0x0157, 0x018e, 0x01b7, 0x019c, 0x0193,
+ 0x0187, 0x0164, 0x0166, 0x014e, 0x00f5, 0x00a8,
+ 0x0079, 0x005c, 0x0047, 0x001b, 0x0008, 0x0010,
+ 0xffeb, 0xffd3, 0x0000, 0x001a, 0x0028, 0x006f,
+ 0x00c0, 0x00f6, 0x013d, 0x0185, 0x019e, 0x01a0,
+ 0x019f, 0x0193, 0x01a4, 0x01ea, 0x021f, 0x021c,
+ 0x0216, 0x021b, 0x01e4, 0x0168, 0x0108, 0x00d5,
+ 0x009c, 0x008a, 0x00ba, 0x00ef, 0x0113, 0x0121,
+ 0x0128, 0x0155, 0x0178, 0x0178, 0x01a4, 0x01db,
+ 0x01f0, 0x0223, 0x026e, 0x02b0, 0x02e8, 0x02e4,
+ 0x02a0, 0x0250, 0x01ec, 0x017c, 0x011b, 0x00af,
+ 0x0050, 0x002b, 0x0015, 0xffe5, 0xffc9, 0xffdd,
+ 0xfffa, 0x0026, 0x0061, 0x0060, 0x0046, 0x0078,
+ 0x00d9, 0x013c, 0x01a1, 0x01e0, 0x0201, 0x020f,
+ 0x01f3, 0x01d4, 0x01af, 0x0158, 0x011a, 0x00fe,
+ 0x00a8, 0x004a, 0x003c, 0x0059, 0x0065, 0x004d,
+ 0x001c, 0x0006, 0x0037, 0x0097, 0x00d5, 0x00ea,
+ 0x0120, 0x016e, 0x019e, 0x01ce, 0x0203, 0x0203,
+ 0x01e0, 0x01b8, 0x0170, 0x0113, 0x00ce, 0x0090,
+ 0x004d, 0x0029, 0x001b, 0x000d, 0x001f, 0x003b,
+ 0x002d, 0x0017, 0x001b, 0x0012, 0xfffa, 0x0000,
+ 0x0017, 0x000c, 0x000b, 0x002a, 0x0021, 0xffed,
+ 0xffcc, 0xffc6, 0xffeb, 0x0000, 0xffc3, 0xff9f,
+ 0xffb6, 0xff8f, 0xff5c, 0xff4a, 0xff16, 0xfef4,
+ 0xfef0, 0xfedc, 0xff00, 0xff45, 0xff67, 0xff9d,
+ 0xffca, 0xffbe, 0xffc6, 0xffeb, 0x000e, 0x0021,
+ 0xfffd, 0xffd8, 0xffde, 0xffc3, 0xff87, 0xff5c,
+ 0xff33, 0xff20, 0xff2b, 0xff2b, 0xff23, 0xff2f,
+ 0xff5b, 0xff9c, 0xffd3, 0xfffe, 0x0022, 0x0051,
+ 0x0095, 0x00ba, 0x00ad, 0x00a3, 0x00a5, 0x00a3,
+ 0x00ab, 0x00b3, 0x00b5, 0x00a9, 0x009e, 0x00a8,
+ 0x009d, 0x007d, 0x0091, 0x00b5, 0x00b6, 0x00c8,
+ 0x00f0, 0x0113, 0x0120, 0x00f3, 0x00c6, 0x00d2,
+ 0x00d1, 0x00c8, 0x00de, 0x00d3, 0x00bd, 0x00d4,
+ 0x00d3, 0x009c, 0x0066, 0x0043, 0x0044, 0x0052,
+ 0x0042, 0x0033, 0x003f, 0x0057, 0x0062, 0x0037,
+ 0xfffe, 0x0000, 0x000f, 0x0002, 0x0005, 0x0008,
+ 0x0008, 0x0035, 0x007c, 0x00b6, 0x00dc, 0x00ef,
+ 0x0104, 0x0106, 0x00d6, 0x00b5, 0x00ad, 0x0086,
+ 0x0060, 0x0042, 0x0010, 0xfff1, 0xffde, 0xffc0,
+ 0xffb8, 0xffb4, 0xffa4, 0xffb7, 0xffe8, 0x001d,
+ 0x0043, 0x0056, 0x0079, 0x0082, 0x0052, 0x0048,
+ 0x0061, 0x0045, 0x0013, 0xffd4, 0xff86, 0xff72,
+ 0xff70, 0xff48, 0xff3d, 0xff3f, 0xff22, 0xff20,
+ 0xff2f, 0xff30, 0xff47, 0xff71, 0xff90, 0xffaf,
+ 0xffd7, 0x000f, 0x0050, 0x0077, 0x0083, 0x0074,
+ 0x0046, 0x0025, 0x0030, 0x0044, 0x0042, 0x003a,
+ 0x003f, 0x0049, 0x0043, 0x001e, 0xffeb, 0xffd1,
+ 0xffe1, 0x0006, 0x0025, 0x0037, 0x0062, 0x00b6,
+ 0x010b, 0x0149, 0x015e, 0x013f, 0x012e, 0x014c,
+ 0x0152, 0x0132, 0x0118, 0x0115, 0x0129, 0x0120,
+ 0x00f1, 0x00e9, 0x010b, 0x0123, 0x012e, 0x0123,
+ 0x0117, 0x0133, 0x0144, 0x0132, 0x012b, 0x0129,
+ 0x0131, 0x0155, 0x0152, 0x011c, 0x0101, 0x00fb,
+ 0x00d9, 0x00b3, 0x00a0, 0x008f, 0x0070, 0x0062,
+ 0x007b, 0x0086, 0x006c, 0x007d, 0x00b9, 0x00ce,
+ 0x00cd, 0x00e4, 0x0103, 0x011b, 0x011b, 0x00fa,
+ 0x00df, 0x00da, 0x00d7, 0x00cd, 0x00a8, 0x0079,
+ 0x0078, 0x008a, 0x008c, 0x008f, 0x007e, 0x0057,
+ 0x0042, 0x0029, 0x000b, 0x0014, 0x002f, 0x0045,
+ 0x0052, 0x004f, 0x0050, 0x0062, 0x0079, 0x009b,
+ 0x00bd, 0x00d8, 0x00f8, 0x0109, 0x00f9, 0x00cf,
+ 0x008e, 0x004d, 0x0018, 0xffdf, 0xffad, 0xff9c,
+ 0xff9e, 0xffaf, 0xffd1, 0xfff1, 0xfff0, 0xffe0,
+ 0xfff7, 0x002a, 0x0053, 0x006c, 0x007b, 0x009a,
+ 0x00bc, 0x00b2, 0x00a1, 0x009c, 0x0073, 0x0048,
+ 0x0029, 0xfff2, 0xffde, 0xffeb, 0xffb5, 0xff71,
+ 0xff71, 0xff93, 0xffba, 0xffd8, 0xffe7, 0x0009,
+ 0x0042, 0x007b, 0x00b1, 0x00d9, 0x00fd, 0x0127,
+ 0x014f, 0x016d, 0x0174, 0x0167, 0x0163, 0x016a,
+ 0x017e, 0x0184, 0x0160, 0x0151, 0x0168, 0x014d,
+ 0x011b, 0x011f, 0x0130, 0x0137, 0x0147, 0x014a,
+ 0x0141, 0x014b, 0x0161, 0x0174, 0x017f, 0x0187,
+ 0x019a, 0x01b3, 0x01c4, 0x01bd, 0x019b, 0x017c,
+ 0x0193, 0x01bd, 0x01c0, 0x01c1, 0x01c9, 0x019c,
+ 0x014f, 0x010d, 0x00bf, 0x0084, 0x006f, 0x0045,
+ 0x0028, 0x004d, 0x0083, 0x00ac, 0x00d9, 0x00fd,
+ 0x010f, 0x0115, 0x010d, 0x00fd, 0x00f8, 0x010b,
+ 0x011e, 0x011e, 0x011b, 0x010d, 0x00ed, 0x00d7,
+ 0x00bf, 0x0088, 0x004c, 0x0017, 0xffe8, 0xffd0,
+ 0xffce, 0xffc4, 0xffc1, 0xffee, 0x0024, 0x002c,
+ 0x002a, 0x003b, 0x0051, 0x006e, 0x0066, 0x0036,
+ 0x0035, 0x0051, 0x004f, 0x004d, 0x0035, 0x0004,
+ 0x0004, 0x0017, 0x0010, 0xffff, 0xffdb, 0xffd5,
+ 0xffef, 0xffcb, 0xff95, 0xff95, 0xffa0, 0xffb9,
+ 0xffdc, 0xffed, 0xffff, 0x0005, 0x001b, 0x0066,
+ 0x0084, 0x0078, 0x00b0, 0x00e6, 0x00e2, 0x00e8,
+ 0x00e4, 0x00d0, 0x00c8, 0x009b, 0x0062, 0x005e,
+ 0x0068, 0x007e, 0x00ae, 0x00b5, 0x009a, 0x00ab,
+ 0x00e0, 0x011c, 0x014b, 0x0148, 0x0143, 0x0178,
+ 0x018d, 0x0155, 0x013a, 0x0148, 0x0138, 0x0121,
+ 0x0115, 0x0102, 0x00f4, 0x00fb, 0x0101, 0x00ed,
+ 0x00d0, 0x00da, 0x010a, 0x014a, 0x018a, 0x01ac,
+ 0x01cc, 0x0206, 0x021b, 0x01f9, 0x01d0, 0x01b9,
+ 0x01be, 0x01bd, 0x0190, 0x016b, 0x0157, 0x0142,
+ 0x0141, 0x0127, 0x00ee, 0x00f3, 0x0121, 0x0130,
+ 0x012e, 0x0131, 0x013a, 0x0139, 0x0130, 0x0143,
+ 0x014f, 0x0130, 0x0122, 0x0126, 0x0111, 0x00eb,
+ 0x00c4, 0x00bd, 0x00c4, 0x009c, 0x0078, 0x007b,
+ 0x006d, 0x0064, 0x0075, 0x007d, 0x0091, 0x00b1,
+ 0x00c0, 0x00d2, 0x00e4, 0x00fb, 0x0131, 0x0165,
+ 0x0180, 0x0193, 0x01a5, 0x01c3, 0x01d8, 0x01c8,
+ 0x01b7, 0x01c4, 0x01cb, 0x01af, 0x0196, 0x019d,
+ 0x019f, 0x01a2, 0x01c2, 0x01cb, 0x01b0, 0x01a3,
+ 0x0199, 0x0190, 0x019b, 0x019a, 0x0199, 0x01b3,
+ 0x01d4, 0x01eb, 0x01ef, 0x01ee, 0x020b, 0x0221,
+ 0x0212, 0x0208, 0x01ff, 0x01f6, 0x01f7, 0x01d7,
+ 0x0194, 0x015a, 0x013b, 0x012e, 0x010b, 0x00d6,
+ 0x00c9, 0x00d7, 0x00ea, 0x00ff, 0x00fe, 0x0103,
+ 0x0121, 0x0129, 0x0123, 0x012a, 0x012f, 0x0137,
+ 0x013d, 0x0134, 0x0133, 0x0132, 0x0129, 0x0129,
+ 0x0120, 0x0114, 0x0112, 0x0105, 0x00f5, 0x00e8,
+ 0x00cc, 0x00bb, 0x00bf, 0x00c1, 0x00ca, 0x00de,
+ 0x00ef, 0x00ff, 0x010d, 0x0119, 0x0126, 0x0132,
+ 0x012a, 0x0105, 0x00e2, 0x00d7, 0x00d5, 0x00db,
+ 0x00d4, 0x00bf, 0x00c0, 0x00cc, 0x00d1, 0x00da,
+ 0x00cb, 0x00a5, 0x009a, 0x00a8, 0x00b7, 0x00b0,
+ 0x008e, 0x008c, 0x00a7, 0x00a5, 0x00ab, 0x00b9,
+ 0x00aa, 0x00ba, 0x00d7, 0x00c5, 0x00bd, 0x00d1,
+ 0x00cf, 0x00bf, 0x00ad, 0x00a9, 0x00c5, 0x00e5,
+ 0x00f4, 0x00f8, 0x00fd, 0x0112, 0x0124, 0x011a,
+ 0x0101, 0x00ee, 0x00f3, 0x0108, 0x00fb, 0x00d1,
+ 0x00aa, 0x0087, 0x007d, 0x0088, 0x0083, 0x007c,
+ 0x0088, 0x009f, 0x00b9, 0x00bf, 0x00b2, 0x00b7,
+ 0x00cc, 0x00d5, 0x00d8, 0x00da, 0x00db, 0x00e8,
+ 0x00f4, 0x00e0, 0x00bd, 0x00a9, 0x009d, 0x0088,
+ 0x0060, 0x0031, 0x0020, 0x0017, 0xfff7, 0xffe4,
+ 0xffe6, 0xffe7, 0xffff, 0x0021, 0x0023, 0x0020,
+ 0x0029, 0x0037, 0x004a, 0x0041, 0x001b, 0x0015,
+ 0x002d, 0x0039, 0x0028, 0xfff6, 0xffc5, 0xffb6,
+ 0xffac, 0xff99, 0xff84, 0xff7e, 0xff97, 0xffb8,
+ 0xffbb, 0xffaa, 0xff98, 0xff94, 0xff9a, 0xff9e,
+ 0xffaf, 0xffc8, 0xffd7, 0xfff1, 0x0011, 0x0018,
+ 0x000b, 0x0008, 0x0009, 0xfff5, 0xffd4, 0xffcf,
+ 0xffda, 0xffdc, 0xffdb, 0xffd5, 0xffd3, 0xffe8,
+ 0xfff5, 0xffda, 0xffad, 0xff9a, 0xffb0, 0xffbb,
+ 0xffa4, 0xff96, 0xff92, 0xff9c, 0xffc4, 0xffda,
+ 0xffe1, 0x0006, 0x001f, 0x0023, 0x0040, 0x004a,
+ 0x0033, 0x002e, 0x0028, 0x0010, 0xfffa, 0xffea,
+ 0xfff4, 0x000c, 0x000a, 0xfffa, 0xffed, 0xffde,
+ 0xffcf, 0xffc2, 0xffbb, 0xffcc, 0xffee, 0x0005,
+ 0x001b, 0x002c, 0x001f, 0x0014, 0x002d, 0x002a,
+ 0x0003, 0x000f, 0x0038, 0x0040, 0x0045, 0x0040,
+ 0x0024, 0x0019, 0x000c, 0xfff3, 0xffe5, 0xffd4,
+ 0xffd1, 0xffed, 0xfff7, 0xfffa, 0x0004, 0xfff5,
+ 0xfffe, 0x002a, 0x0036, 0x003b, 0x0053, 0x0047,
+ 0x0030, 0x0033, 0x002b, 0x001e, 0x0021, 0x001b,
+ 0x0000, 0xffe4, 0xffcd, 0xffb6, 0xff9b, 0xff8b,
+ 0xff85, 0xff81, 0xff83, 0xff82, 0xff75, 0xff73,
+ 0xff7a, 0xff80, 0xff9c, 0xffc9, 0xffe1, 0xffeb,
+ 0x0009, 0x0022, 0x0015, 0x000c, 0x0025, 0x003e,
+ 0x0042, 0x003c, 0x0040, 0x004d, 0x0042, 0x001f,
+ 0x0010, 0x000e, 0x0005, 0x000c, 0x0016, 0x0017,
+ 0x002c, 0x004b, 0x0054, 0x0056, 0x0056, 0x0047,
+ 0x0038, 0x002e, 0x001a, 0x0000, 0xfff0, 0xffea,
+ 0xffe2, 0xffdb, 0xffea, 0x0006, 0x0014, 0x001d,
+ 0x002e, 0x0032, 0x002b, 0x002d, 0x002e, 0x0020,
+ 0x0006, 0xfffa, 0x0011, 0x0029, 0x001d, 0x0010,
+ 0x001e, 0x0039, 0x004e, 0x004d, 0x0043, 0x003e,
+ 0x003b, 0x003c, 0x003c, 0x0040, 0x0062, 0x008b,
+ 0x0097, 0x00a3, 0x00af, 0x00a3, 0x009f, 0x009d,
+ 0x007e, 0x0058, 0x003d, 0x0034, 0x0036, 0x0021,
+ 0x000a, 0x0019, 0x0028, 0x0024, 0x0027, 0x0026,
+ 0x0021, 0x0025, 0x0031, 0x0033, 0x0029, 0x0037,
+ 0x0059, 0x005f, 0x005a, 0x0065, 0x0061, 0x0066,
+ 0x007d, 0x0078, 0x006d, 0x0074, 0x007e, 0x008e,
+ 0x0089, 0x0061, 0x004f, 0x0055, 0x004c, 0x0050,
+ 0x0060, 0x0070, 0x0089, 0x009b, 0x00ac, 0x00b2,
+ 0x009e, 0x009f, 0x00ba, 0x00b8, 0x00a9, 0x00ad,
+ 0x00ac, 0x00c5, 0x00ed, 0x00f1, 0x00e9, 0x00f0,
+ 0x00f1, 0x00e8, 0x00f1, 0x0103, 0x0117, 0x0124,
+ 0x0113, 0x00f3, 0x00df, 0x00df, 0x00e7, 0x00e6,
+ 0x00cd, 0x00b3, 0x00bf, 0x00cc, 0x00c6, 0x00c4,
+ 0x00c5, 0x00c4, 0x00cd, 0x00d6, 0x00ce, 0x00c5,
+ 0x00bd, 0x00ca, 0x00e1, 0x00de, 0x00d2, 0x00d1,
+ 0x00d2, 0x00c6, 0x00b3, 0x00a5, 0x00a7, 0x00c1,
+ 0x00e2, 0x0104, 0x011f, 0x0131, 0x0141, 0x0159,
+ 0x0170, 0x016d, 0x0174, 0x0189, 0x0185, 0x0174,
+ 0x0171, 0x0175, 0x0175, 0x016e, 0x014d, 0x0130,
+ 0x012d, 0x0132, 0x0135, 0x0127, 0x0117, 0x0116,
+ 0x0126, 0x0133, 0x0137, 0x0147, 0x0165, 0x0177,
+ 0x0182, 0x0199, 0x0197, 0x0187, 0x019c, 0x01b4,
+ 0x01bb, 0x01b9, 0x01af, 0x01af, 0x01b8, 0x01b4,
+ 0x01ab, 0x01b9, 0x01c9, 0x01d1, 0x01cc, 0x01c2,
+ 0x01bd, 0x01b0, 0x01a9, 0x019c, 0x0193, 0x01ac,
+ 0x01ba, 0x01a4, 0x019c, 0x0197, 0x0180, 0x018a,
+ 0x0186, 0x0159, 0x014d, 0x0152, 0x0155, 0x0164,
+ 0x016c, 0x0170, 0x0189, 0x019f, 0x01a5, 0x01b6,
+ 0x01bd, 0x01b9, 0x01b4, 0x01b4, 0x01b2, 0x01a0,
+ 0x01a3, 0x01c1, 0x01e7, 0x020e, 0x0220, 0x0224,
+ 0x022e, 0x0224, 0x01f1, 0x01e3, 0x01fe, 0x0208,
+ 0x01fc, 0x01e5, 0x01e4, 0x01f9, 0x0209, 0x0207,
+ 0x0201, 0x0206, 0x0212, 0x021f, 0x021e, 0x021e,
+ 0x0214, 0x0206, 0x01fc, 0x01da, 0x01bf, 0x01b1,
+ 0x01a3, 0x01aa, 0x01bf, 0x01bf, 0x01b7, 0x01c3,
+ 0x01bd, 0x01a9, 0x018d, 0x0172, 0x0173, 0x0179,
+ 0x0171, 0x015d, 0x0155, 0x0160, 0x0187, 0x01a2,
+ 0x0187, 0x017b, 0x0190, 0x0190, 0x017a, 0x0177,
+ 0x0174, 0x0169, 0x016c, 0x0159, 0x014a, 0x0156,
+ 0x0163, 0x016f, 0x0167, 0x0141, 0x011b, 0x0119,
+ 0x011b, 0x0115, 0x0117, 0x011e, 0x012c, 0x012e,
+ 0x012b, 0x0112, 0x00f5, 0x010d, 0x013c, 0x0152,
+ 0x014a, 0x014e, 0x015e, 0x0167, 0x0157, 0x013d,
+ 0x0132, 0x0129, 0x0138, 0x0146, 0x014f, 0x0171,
+ 0x018d, 0x019c, 0x01a3, 0x018c, 0x016a, 0x017b,
+ 0x0188, 0x016c, 0x016b, 0x0172, 0x017a, 0x0190,
+ 0x01a3, 0x01a8, 0x01a2, 0x01aa, 0x01b3, 0x01ba,
+ 0x01b1, 0x01a0, 0x019f, 0x01bc, 0x01d0, 0x01b2,
+ 0x01b0, 0x01cb, 0x01db, 0x01e6, 0x01db, 0x01c9,
+ 0x01ca, 0x01c7, 0x01a5, 0x0187, 0x0176, 0x0175,
+ 0x0186, 0x0178, 0x0166, 0x015a, 0x014c, 0x0150,
+ 0x0157, 0x0148, 0x0132, 0x013d, 0x0146, 0x013c,
+ 0x0136, 0x013d, 0x013f, 0x0138, 0x0147, 0x0139,
+ 0x011c, 0x0129, 0x0132, 0x0122, 0x010e, 0x00fd,
+ 0x00e7, 0x00e5, 0x00e8, 0x00e0, 0x00d4, 0x00c2,
+ 0x00cb, 0x00cc, 0x00bc, 0x00b9, 0x00bd, 0x00c5,
+ 0x00c2, 0x00a8, 0x008d, 0x009d, 0x00ab, 0x009f,
+ 0x009b, 0x0098, 0x00a7, 0x00bd, 0x00d0, 0x00dc,
+ 0x00d8, 0x00da, 0x00e5, 0x00f1, 0x00e9, 0x00da,
+ 0x00c8, 0x00be, 0x00bd, 0x00a6, 0x00a3, 0x00ac,
+ 0x00ad, 0x00b4, 0x00c0, 0x00c4, 0x00d0, 0x00f5,
+ 0x0100, 0x010c, 0x012b, 0x0139, 0x013f, 0x0140,
+ 0x013c, 0x0142, 0x0167, 0x0176, 0x0173, 0x0186,
+ 0x0178, 0x0165, 0x0170, 0x0179, 0x016d, 0x016b,
+ 0x0162, 0x014b, 0x015c, 0x016a, 0x0164, 0x0162,
+ 0x016b, 0x016e, 0x0161, 0x0157, 0x013b, 0x0125,
+ 0x012a, 0x0131, 0x0129, 0x011a, 0x0119, 0x0109,
+ 0x00fe, 0x00f3, 0x00dd, 0x00d4, 0x00ce, 0x00d2,
+ 0x00e1, 0x0100, 0x0113, 0x011d, 0x0122, 0x0107,
+ 0x00f0, 0x00f1, 0x0109, 0x0110, 0x0102, 0x0100,
+ 0x010f, 0x011f, 0x0111, 0x010b, 0x0109, 0x00f9,
+ 0x00fc, 0x00ff, 0x00eb, 0x00d3, 0x00d9, 0x00d2,
+ 0x00c4, 0x00d1, 0x00dc, 0x00d8, 0x00b8, 0x00a2,
+ 0x0099, 0x008a, 0x007e, 0x0078, 0x0073, 0x0061,
+ 0x005a, 0x0052, 0x0049, 0x0049, 0x0034, 0x001d,
+ 0x0010, 0x001b, 0x0021, 0x0026, 0x003b, 0x0045,
+ 0x0050, 0x0063, 0x0075, 0x0073, 0x0077, 0x007f,
+ 0x0075, 0x0074, 0x006f, 0x0077, 0x0083, 0x007c,
+ 0x0065, 0x004a, 0x0044, 0x0037, 0x0029, 0x0024,
+ 0x002b, 0x0033, 0x0046, 0x0068, 0x005e, 0x005b,
+ 0x0071, 0x006d, 0x0058, 0x005d, 0x007a, 0x0082,
+ 0x0085, 0x007e, 0x006c, 0x005a, 0x0050, 0x0051,
+ 0x0040, 0x0039, 0x0031, 0x0023, 0x001a, 0x0005,
+ 0xfff9, 0xfff9, 0xfffc, 0xfff9, 0x0006, 0x0012,
+ 0x000a, 0x0009, 0xfffc, 0xfffa, 0xffee, 0xffda,
+ 0xffe9, 0xfff7, 0xffec, 0xffe6, 0xffec, 0xffdc,
+ 0xffe1, 0xffe6, 0xffc9, 0xffc1, 0xffc4, 0xffd0,
+ 0xffd7, 0xffce, 0xffc4, 0xffc4, 0xffca, 0xffb8,
+ 0xffa1, 0xff95, 0xffad, 0xffc1, 0xffba, 0xffb7,
+ 0xffb2, 0xffc2, 0xffd5, 0xffd9, 0xffdb, 0xffdf,
+ 0xffea, 0xfff8, 0xfff7, 0xffd3, 0xffce, 0xffd7,
+ 0xffb2, 0xff95, 0xff8e, 0xff90, 0xff9a, 0xffa7,
+ 0xff9b, 0xff84, 0xff87, 0xff8c, 0xff9a, 0xff9e,
+ 0xff99, 0xff93, 0xff8d, 0xff93, 0xff97, 0xff9e,
+ 0xff9f, 0xffab, 0xffbd, 0xffc2, 0xffc2, 0xffb6,
+ 0xffbe, 0xffd6, 0xfff0, 0xfff1, 0xffe7, 0xffed,
+ 0xffe9, 0xffdb, 0xffbd, 0xffb3, 0xffc4, 0xffcf,
+ 0xffc2, 0xffa6, 0xffac, 0xffc1, 0xffcd, 0xffc7,
+ 0xffb3, 0xff98, 0xff77, 0xff76, 0xff69, 0xff4a,
+ 0xff3f, 0xff4a, 0xff58, 0xff61, 0xff6c, 0xff5c,
+ 0xff62, 0xff76, 0xff5f, 0xff45, 0xff43, 0xff3f,
+ 0xff29, 0xff21, 0xff17, 0xff1a, 0xff37, 0xff41,
+ 0xff47, 0xff3c, 0xff2a, 0xff2e, 0xff3b, 0xff3e,
+ 0xff37, 0xff35, 0xff32, 0xff41, 0xff36, 0xff1d,
+ 0xff29, 0xff2d, 0xff38, 0xff52, 0xff59, 0xff4d,
+ 0xff54, 0xff54, 0xff31, 0xff1c, 0xff17, 0xff28,
+ 0xff3a, 0xff4d, 0xff73, 0xff92, 0xffab, 0xffbf,
+ 0xffe1, 0xffea, 0xffcf, 0xffc4, 0xffd1, 0xffd6,
+ 0xffcc, 0xffe8, 0x0005, 0x0016, 0x0034, 0x0042,
+ 0x004f, 0x005e, 0x005a, 0x003f, 0x002a, 0x001b,
+ 0x0007, 0x0009, 0x0008, 0x0003, 0x0008, 0x0024,
+ 0x004f, 0x006f, 0x008d, 0x008b, 0x0087, 0x0093,
+ 0x009d, 0x009a, 0x0096, 0x0090, 0x0078, 0x0076,
+ 0x007c, 0x0084, 0x009e, 0x00bb, 0x00ce, 0x00d1,
+ 0x00e7, 0x00fe, 0x00fa, 0x00e4, 0x00bd, 0x0096,
+ 0x0084, 0x0088, 0x0080, 0x0088, 0x0094, 0x007e,
+ 0x0085, 0x0099, 0x008f, 0x0075, 0x0062, 0x0046,
+ 0x0030, 0x0033, 0x002d, 0x002d, 0x0022, 0x000d,
+ 0x0004, 0xfff9, 0xffef, 0xffe6, 0xffe6, 0xffd9,
+ 0xffce, 0xffd4, 0xffd7, 0xffcf, 0xffc0, 0xffc8,
+ 0xffdd, 0xfffb, 0x0010, 0x000d, 0x000a, 0x0003,
+ 0x0006, 0x0009, 0x0004, 0x0003, 0x0003, 0x0002,
+ 0xfffc, 0x0004, 0x0011, 0x0027, 0x003e, 0x0051,
+ 0x0075, 0x0092, 0x00a1, 0x0099, 0x0085, 0x006b,
+ 0x004a, 0x003c, 0x0036, 0x0030, 0x0031, 0x004c,
+ 0x0063, 0x006d, 0x007a, 0x006d, 0x0066, 0x0070,
+ 0x0081, 0x0095, 0x00a7, 0x00bd, 0x00c9, 0x00cc,
+ 0x00cb, 0x00df, 0x00f1, 0x00f7, 0x00fd, 0x00ee,
+ 0x00ed, 0x00e4, 0x00c7, 0x00be, 0x00b7, 0x009e,
+ 0x00a4, 0x00c5, 0x00cb, 0x00eb, 0x010e, 0x010c,
+ 0x0125, 0x013d, 0x0139, 0x0137, 0x0136, 0x0127,
+ 0x0125, 0x0121, 0x0107, 0x0114, 0x012f, 0x013f,
+ 0x0152, 0x0164, 0x0171, 0x0172, 0x016b, 0x0151,
+ 0x0132, 0x0118, 0x0113, 0x012d, 0x0144, 0x0154,
+ 0x0161, 0x016c, 0x0167, 0x015b, 0x015f, 0x0160,
+ 0x0159, 0x014b, 0x0142, 0x0139, 0x0137, 0x0141,
+ 0x0143, 0x014c, 0x0146, 0x013b, 0x013d, 0x013b,
+ 0x011e, 0x0102, 0x0105, 0x0101, 0x00fb, 0x00f5,
+ 0x00e4, 0x00dd, 0x00d9, 0x00e2, 0x00ed, 0x00f1,
+ 0x00ee, 0x00fa, 0x010c, 0x0106, 0x00fd, 0x00f0,
+ 0x00ed, 0x00eb, 0x00e8, 0x00f6, 0x0104, 0x0108,
+ 0x010f, 0x0123, 0x0125, 0x0124, 0x0136, 0x0139,
+ 0x012f, 0x0128, 0x0130, 0x013c, 0x0154, 0x016c,
+ 0x016d, 0x0171, 0x0172, 0x0172, 0x0172, 0x016e,
+ 0x0168, 0x0165, 0x0160, 0x014a, 0x013a, 0x012e,
+ 0x0130, 0x013e, 0x0131, 0x0125, 0x0129, 0x012d,
+ 0x0128, 0x0126, 0x012b, 0x012f, 0x012d, 0x0122,
+ 0x0124, 0x011e, 0x0112, 0x0119, 0x012a, 0x0142,
+ 0x014b, 0x014a, 0x015f, 0x0176, 0x016c, 0x015b,
+ 0x0159, 0x0146, 0x0135, 0x011f, 0x0109, 0x0103,
+ 0x00fd, 0x0106, 0x0112, 0x0107, 0x00f4, 0x00f3,
+ 0x00eb, 0x00e2, 0x00e8, 0x00ea, 0x00f1, 0x00eb,
+ 0x00de, 0x00e4, 0x00ec, 0x00fb, 0x010c, 0x0108,
+ 0x00f5, 0x00ec, 0x00e4, 0x00db, 0x00cd, 0x00aa,
+ 0x009c, 0x0098, 0x008c, 0x0090, 0x009b, 0x00a7,
+ 0x00b0, 0x00a9, 0x009e, 0x00aa, 0x00b1, 0x00b1,
+ 0x00bd, 0x00b4, 0x00af, 0x00c0, 0x00c9, 0x00d1,
+ 0x00e6, 0x00f5, 0x00fd, 0x0117, 0x0120, 0x011f,
+ 0x0122, 0x0108, 0x00ed, 0x00f1, 0x00f5, 0x00e4,
+ 0x00e8, 0x00f3, 0x00ec, 0x00f0, 0x00f5, 0x00fd,
+ 0x0117, 0x012c, 0x0132, 0x0140, 0x014f, 0x0148,
+ 0x013f, 0x0135, 0x0126, 0x0117, 0x0111, 0x011c,
+ 0x0123, 0x0125, 0x0124, 0x0120, 0x0116, 0x0106,
+ 0x00fd, 0x00f3, 0x00e5, 0x00d3, 0x00c1, 0x00a9,
+ 0x00a0, 0x00ba, 0x00ce, 0x00d3, 0x00d7, 0x00e5,
+ 0x00fb, 0x010a, 0x0104, 0x00ed, 0x00d9, 0x00ce,
+ 0x00cb, 0x00ba, 0x00a4, 0x00a3, 0x00a5, 0x00ad,
+ 0x00b1, 0x00ac, 0x00b6, 0x00c5, 0x00c3, 0x00c1,
+ 0x00c9, 0x00c8, 0x00ca, 0x00c8, 0x00bf, 0x00c2,
+ 0x00c9, 0x00c6, 0x00bc, 0x00b7, 0x00b4, 0x00ac,
+ 0x00ab, 0x00a8, 0x0083, 0x005b, 0x0065, 0x007a,
+ 0x0085, 0x00a1, 0x00b2, 0x00b8, 0x00ca, 0x00dd,
+ 0x00df, 0x00d1, 0x00c4, 0x00c5, 0x00bc, 0x00a0,
+ 0x009b, 0x00a4, 0x009f, 0x009f, 0x0097, 0x008a,
+ 0x0090, 0x00a1, 0x00a0, 0x009f, 0x00a0, 0x0092,
+ 0x008f, 0x0098, 0x008e, 0x007a, 0x007b, 0x0079,
+ 0x006a, 0x0068, 0x0062, 0x0052, 0x004d, 0x004c,
+ 0x0048, 0x004c, 0x0052, 0x0050, 0x0056, 0x0061,
+ 0x0065, 0x0069, 0x008b, 0x00c4, 0x00da, 0x00dd,
+ 0x00f5, 0x0102, 0x00f7, 0x00e6, 0x00cc, 0x00b0,
+ 0x00a2, 0x009c, 0x009e, 0x00a3, 0x00ab, 0x00bf,
+ 0x00d0, 0x00db, 0x00e3, 0x00e9, 0x00fa, 0x010e,
+ 0x010b, 0x00f7, 0x00dc, 0x00c8, 0x00ca, 0x00b9,
+ 0x0093, 0x008e, 0x0097, 0x0098, 0x00a3, 0x00a1,
+ 0x0093, 0x009e, 0x00a2, 0x008a, 0x0071, 0x006a,
+ 0x0076, 0x0077, 0x0068, 0x0064, 0x0060, 0x005d,
+ 0x0073, 0x007f, 0x006d, 0x005f, 0x004b, 0x002a,
+ 0x0019, 0x000f, 0x0007, 0x0001, 0x0003, 0x0016,
+ 0x0021, 0x0018, 0x001c, 0x002b, 0x001d, 0xfffc,
+ 0xfff4, 0x0008, 0x0012, 0x0003, 0xfffb, 0xfff5,
+ 0xffe6, 0xffe0, 0xffd3, 0xffb7, 0xffb1, 0xffc1,
+ 0xffcb, 0xffd7, 0xffe5, 0xffed, 0xfff4, 0x0005,
+ 0x0010, 0x000a, 0x000c, 0x0018, 0x0021, 0x001f,
+ 0x0014, 0x000d, 0x0021, 0x0043, 0x0051, 0x005d,
+ 0x006f, 0x0073, 0x006e, 0x0074, 0x007c, 0x0085,
+ 0x008f, 0x009a, 0x0099, 0x0091, 0x008e, 0x007e,
+ 0x0067, 0x0062, 0x0071, 0x0075, 0x0071, 0x007d,
+ 0x0091, 0x0098, 0x0090, 0x009d, 0x00b8, 0x00b8,
+ 0x00b2, 0x00c2, 0x00d4, 0x00e2, 0x00e8, 0x00d7,
+ 0x00c3, 0x00b6, 0x00aa, 0x00a0, 0x0093, 0x0082,
+ 0x008a, 0x009e, 0x00a2, 0x00a1, 0x0099, 0x00a3,
+ 0x00b3, 0x00af, 0x00b3, 0x00b5, 0x00a3, 0x009e,
+ 0x00a6, 0x009e, 0x00aa, 0x00c5, 0x00c8, 0x00bb,
+ 0x009d, 0x0071, 0x004b, 0x002b, 0x000b, 0xfff3,
+ 0xffda, 0xffd5, 0xffd7, 0xffd6, 0xffd0, 0xffbb,
+ 0xffb4, 0xffb3, 0xffab, 0xffa8, 0xffba, 0xffcc,
+ 0xffd0, 0xffce, 0xffb8, 0xffa8, 0xffa9, 0xffa8,
+ 0xff9e, 0xff9d, 0xff9e, 0xff9d, 0xffab, 0xffc3,
+ 0xffcc, 0xffc1, 0xffc0, 0xffc4, 0xffbb, 0xffad,
+ 0xffb2, 0xffc0, 0xffcc, 0xffdf, 0xffdb, 0xffe1,
+ 0xfffd, 0x001c, 0x0038, 0x0043, 0x004b, 0x005b,
+ 0x0061, 0x004e, 0x0043, 0x003f, 0x0044, 0x0056,
+ 0x0065, 0x007a, 0x008e, 0x0096, 0x00a8, 0x00bf,
+ 0x00c2, 0x00d4, 0x00e8, 0x00f1, 0x00f8, 0x00dd,
+ 0x00b3, 0x009f, 0x009a, 0x008d, 0x008e, 0x0098,
+ 0x00aa, 0x00d5, 0x00e9, 0x00eb, 0x00f0, 0x00e7,
+ 0x00db, 0x00d5, 0x00c0, 0x00bb, 0x00d4, 0x00d9,
+ 0x00d3, 0x00d7, 0x00d6, 0x00d0, 0x00d2, 0x00b7,
+ 0x0096, 0x0088, 0x007e, 0x008d, 0x00af, 0x00cb,
+ 0x00c2, 0x00b9, 0x00be, 0x00b8, 0x00ba, 0x00b6,
+ 0x00af, 0x00b3, 0x00b9, 0x00b5, 0x00b5, 0x00aa,
+ 0x009f, 0x00a0, 0x0091, 0x007d, 0x006f, 0x005f,
+ 0x0056, 0x004c, 0x0032, 0x0042, 0x005d, 0x005a,
+ 0x0066, 0x005c, 0x0056, 0x0068, 0x006e, 0x0064,
+ 0x0066, 0x006a, 0x0060, 0x0060, 0x0056, 0x0042,
+ 0x0030, 0x0030, 0x0031, 0x0022, 0x0017, 0x0025,
+ 0x0047, 0x0065, 0x0072, 0x0072, 0x0081, 0x008f,
+ 0x00a1, 0x00a3, 0x009d, 0x00ac, 0x00a5, 0x00a7,
+ 0x00ac, 0x009c, 0x0091, 0x008d, 0x008c, 0x00a1,
+ 0x00c4, 0x00ca, 0x00d9, 0x00f5, 0x0109, 0x011e,
+ 0x012f, 0x0136, 0x0139, 0x0133, 0x012c, 0x012f,
+ 0x012f, 0x0145, 0x0158, 0x0168, 0x0175, 0x0183,
+ 0x0198, 0x0184, 0x0171, 0x0171, 0x0176, 0x016c,
+ 0x0162, 0x0166, 0x0174, 0x0192, 0x01a2, 0x01ac,
+ 0x01b8, 0x01af, 0x019a, 0x0191, 0x017c, 0x0169,
+ 0x016f, 0x0174, 0x0178, 0x016f, 0x0157, 0x0133,
+ 0x0131, 0x0140, 0x014b, 0x0158, 0x0150, 0x014f,
+ 0x0143, 0x013f, 0x013c, 0x012c, 0x012a, 0x0122,
+ 0x0112, 0x0107, 0x0101, 0x00fb, 0x00fa, 0x00ef,
+ 0x00f4, 0x0109, 0x0118, 0x0123, 0x012b, 0x0135,
+ 0x0141, 0x014c, 0x0136, 0x012f, 0x012d, 0x0116,
+ 0x00fc, 0x00dc, 0x00d5, 0x00c4, 0x00c4, 0x00cb,
+ 0x00b1, 0x00b0, 0x00c7, 0x00d6, 0x00f1, 0x0110,
+ 0x010f, 0x010c, 0x00fb, 0x00ee, 0x00f4, 0x00e9,
+ 0x00e0, 0x00fd, 0x0114, 0x0113, 0x011d, 0x0109,
+ 0x00fe, 0x00fa, 0x00f3, 0x0106, 0x0108, 0x0111,
+ 0x0119, 0x012d, 0x0146, 0x014a, 0x0154, 0x0169,
+ 0x016b, 0x0163, 0x0174, 0x0175, 0x016c, 0x0171,
+ 0x016a, 0x014f, 0x0141, 0x0130, 0x0119, 0x0116,
+ 0x0113, 0x0118, 0x0118, 0x0121, 0x0112, 0x0105,
+ 0x011b, 0x0120, 0x0126, 0x011d, 0x011f, 0x0136,
+ 0x013b, 0x0128, 0x0106, 0x00e3, 0x00d0, 0x00d0,
+ 0x00cc, 0x00d4, 0x00ea, 0x0101, 0x0117, 0x012e,
+ 0x012b, 0x0119, 0x0112, 0x010b, 0x0113, 0x010e,
+ 0x010b, 0x0108, 0x010e, 0x0115, 0x00f5, 0x00e8,
+ 0x00e4, 0x00eb, 0x00fd, 0x0109, 0x0109, 0x0102,
+ 0x0108, 0x00fc, 0x00d7, 0x00ba, 0x00bc, 0x00ba,
+ 0x00b3, 0x00af, 0x00bc, 0x00c1, 0x00b7, 0x00b5,
+ 0x00aa, 0x00a8, 0x00a8, 0x00b6, 0x00b7, 0x00ba,
+ 0x00bf, 0x00ae, 0x00b7, 0x00a9, 0x0089, 0x007d,
+ 0x008b, 0x00aa, 0x00be, 0x00d0, 0x00e3, 0x00f0,
+ 0x0105, 0x011f, 0x011a, 0x0111, 0x0104, 0x00f1,
+ 0x00e0, 0x00ca, 0x00b6, 0x00ab, 0x00ba, 0x00bd,
+ 0x00c4, 0x00ca, 0x00df, 0x00f9, 0x00f8, 0x0108,
+ 0x010a, 0x011a, 0x0126, 0x0116, 0x0115, 0x0110,
+ 0x00fe, 0x0103, 0x0111, 0x0116, 0x011c, 0x00fd,
+ 0x00e4, 0x00e8, 0x00de, 0x00c0, 0x00b4, 0x00b9,
+ 0x00bd, 0x00ca, 0x00b8, 0x00b3, 0x00bb, 0x00ba,
+ 0x00a7, 0x0090, 0x00a3, 0x00a4, 0x00af, 0x00b9,
+ 0x00a7, 0x00a3, 0x00a0, 0x0091, 0x008f, 0x0082,
+ 0x0065, 0x006d, 0x0066, 0x0049, 0x0034, 0x0025,
+ 0x0019, 0x0016, 0x0014, 0x001b, 0x003b, 0x0046,
+ 0x005d, 0x0065, 0x0060, 0x005e, 0x0055, 0x0068,
+ 0x005d, 0x004c, 0x0055, 0x005a, 0x0056, 0x004f,
+ 0x003a, 0x0033, 0x0048, 0x003d, 0x002c, 0x0035,
+ 0x0032, 0x0011, 0x0002, 0xfff4, 0xffe2, 0xffe2,
+ 0xffe7, 0xfffd, 0x0000, 0x0011, 0x001e, 0x0025,
+ 0x0031, 0x0030, 0x0032, 0x0021, 0x001c, 0x0020,
+ 0x0022, 0x001c, 0x0010, 0x000b, 0x0004, 0x0005,
+ 0x000f, 0x0014, 0x001b, 0x003f, 0x0050, 0x0059,
+ 0x005c, 0x0057, 0x0057, 0x0049, 0x003e, 0x0031,
+ 0x0040, 0x0040, 0x002e, 0x0022, 0x0020, 0x0023,
+ 0x0009, 0x0006, 0x0001, 0xfffe, 0x000b, 0x0004,
+ 0x0007, 0x0013, 0xfffe, 0xfff7, 0x0008, 0xfffc,
+ 0xfff6, 0xfff2, 0xfffb, 0x000b, 0x000b, 0x000a,
+ 0x0014, 0x002a, 0x0026, 0x001c, 0x000d, 0x001e,
+ 0x0035, 0x003c, 0x0051, 0x0049, 0x0055, 0x005b,
+ 0x0047, 0x004b, 0x0046, 0x0036, 0x004e, 0x0059,
+ 0x0047, 0x004d, 0x0040, 0x002c, 0x001b, 0x0007,
+ 0xfffe, 0x0006, 0x0001, 0xffe9, 0xffe1, 0xffd7,
+ 0xffd6, 0xffc5, 0xffc8, 0xffd1, 0xffd1, 0xfff4,
+ 0x0003, 0x0012, 0x0020, 0x001c, 0x001b, 0x001e,
+ 0x001d, 0x001d, 0x001c, 0x001b, 0x0027, 0x002c,
+ 0x0034, 0x0036, 0x003b, 0x0036, 0x002d, 0x0019,
+ 0xfffe, 0xfff8, 0xfff7, 0x000f, 0x0007, 0x0003,
+ 0x0011, 0x0001, 0x0002, 0xfff3, 0xffd6, 0xffd8,
+ 0xfff2, 0xfff4, 0xffe3, 0xffd9, 0xffd9, 0xffdf,
+ 0xffe6, 0xffe3, 0xffe3, 0xfff6, 0xfff9, 0x0006,
+ 0x0005, 0x0006, 0x001f, 0x0025, 0x002d, 0x0028,
+ 0x0025, 0x001a, 0x000e, 0x0004, 0xfff9, 0xffef,
+ 0xffdf, 0xffeb, 0xffe8, 0xffd7, 0xffd3, 0xffcf,
+ 0xffcb, 0xffd0, 0xffc8, 0xffb9, 0xffc2, 0xffd3,
+ 0xfff0, 0xfff4, 0xffe3, 0xffcf, 0xffca, 0xffc6,
+ 0xffad, 0xffa5, 0xffb1, 0xffc5, 0xffc8, 0xffcb,
+ 0xffc6, 0xffcf, 0xffda, 0xffc4, 0xffcc, 0xffcc,
+ 0xffca, 0xffe1, 0xfff2, 0x0004, 0x0019, 0x0026,
+ 0x0042, 0x0054, 0x004c, 0x004d, 0x003d, 0x0037,
+ 0x0047, 0x0053, 0x0043, 0x003a, 0x004c, 0x0055,
+ 0x0058, 0x0038, 0x003b, 0x0052, 0x004c, 0x004b,
+ 0x0038, 0x0042, 0x005b, 0x0055, 0x004e, 0x004e,
+ 0x0045, 0x0047, 0x0055, 0x005d, 0x0055, 0x0057,
+ 0x005f, 0x0052, 0x006d, 0x007c, 0x007f, 0x0094,
+ 0x008d, 0x0083, 0x007a, 0x006a, 0x005b, 0x005a,
+ 0x004a, 0x0047, 0x005c, 0x0064, 0x0083, 0x0092,
+ 0x0083, 0x008e, 0x0094, 0x0083, 0x0094, 0x00a0,
+ 0x00ac, 0x00cd, 0x00c7, 0x00c7, 0x00d3, 0x00cb,
+ 0x00c3, 0x00d0, 0x00cd, 0x00c3, 0x00cd, 0x00e1,
+ 0x010c, 0x011f, 0x011d, 0x0117, 0x0128, 0x0142,
+ 0x0134, 0x0128, 0x0127, 0x0136, 0x0145, 0x013f,
+ 0x0118, 0x00ea, 0x00cc, 0x00c7, 0x00d6, 0x00de,
+ 0x00e0, 0x00df, 0x00d2, 0x00ac, 0x00a1, 0x008f,
+ 0x0072, 0x0071, 0x0061, 0x0048, 0x002a, 0x0024,
+ 0x002a, 0x0035, 0x0040, 0x0039, 0x0045, 0x0051,
+ 0x0057, 0x005c, 0x0060, 0x005a, 0x0048, 0x003c,
+ 0x0033, 0x0021, 0x0025, 0x0024, 0x0007, 0x0020,
+ 0x0033, 0x0039, 0x004e, 0x0045, 0x003c, 0x0045,
+ 0x0049, 0x0044, 0x0059, 0x0063, 0x006d, 0x0083,
+ 0x008a, 0x00a0, 0x00a9, 0x00aa, 0x00c5, 0x00de,
+ 0x00ec, 0x0102, 0x00f9, 0x00e6, 0x00e8, 0x00d7,
+ 0x00b9, 0x00b9, 0x00d6, 0x00d8, 0x00e3, 0x00f4,
+ 0x00f2, 0x0109, 0x0112, 0x0113, 0x0138, 0x015a,
+ 0x0140, 0x0138, 0x0141, 0x013a, 0x014e, 0x0142,
+ 0x0126, 0x0122, 0x010b, 0x00ff, 0x0109, 0x00f1,
+ 0x00f5, 0x00fd, 0x00d7, 0x00df, 0x00ec, 0x00de,
+ 0x00e2, 0x00eb, 0x00de, 0x00e7, 0x00cd, 0x008b,
+ 0x009a, 0x00b8, 0x00ba, 0x00cd, 0x00dd, 0x00de,
+ 0x00f2, 0x00f7, 0x00d9, 0x00d7, 0x00e8, 0x00fe,
+ 0x011d, 0x0128, 0x0113, 0x00fe, 0x00f0, 0x00df,
+ 0x00ca, 0x00a3, 0x0090, 0x008c, 0x008f, 0x0099,
+ 0x00a6, 0x00a8, 0x00a8, 0x00b1, 0x00b2, 0x00c5,
+ 0x00cd, 0x00ce, 0x00d7, 0x00d9, 0x00e6, 0x00e8,
+ 0x00ee, 0x00fe, 0x0105, 0x0102, 0x0102, 0x010a,
+ 0x0117, 0x0128, 0x013b, 0x0138, 0x013a, 0x014d,
+ 0x0147, 0x015e, 0x017c, 0x018f, 0x01b2, 0x01b7,
+ 0x01a6, 0x01a5, 0x01b7, 0x01a2, 0x0192, 0x01a6,
+ 0x0197, 0x0191, 0x0194, 0x017d, 0x0189, 0x01a2,
+ 0x01a5, 0x01bb, 0x01b8, 0x019b, 0x018a, 0x017c,
+ 0x0163, 0x0158, 0x0148, 0x010e, 0x00fa, 0x00df,
+ 0x00a2, 0x00a2, 0x0086, 0x0068, 0x0092, 0x008c,
+ 0x0076, 0x009e, 0x0099, 0x0088, 0x0090, 0x0066,
+ 0x0052, 0x006d, 0x0066, 0x0067, 0x008f, 0x008d,
+ 0x0094, 0x00a0, 0x0080, 0x0080, 0x0079, 0x0067,
+ 0x0089, 0x009a, 0x009a, 0x00be, 0x00bf, 0x00be,
+ 0x00cf, 0x00aa, 0x0094, 0x009f, 0x0089, 0x0066,
+ 0x0066, 0x0058, 0x005a, 0x009f, 0x00ad, 0x00a8,
+ 0x00d0, 0x00cf, 0x00d8, 0x0102, 0x0101, 0x010a,
+ 0x0122, 0x0117, 0x010c, 0x0114, 0x0119, 0x0115,
+ 0x012a, 0x012e, 0x0122, 0x012a, 0x0126, 0x0155,
+ 0x0190, 0x01a5, 0x01c9, 0x01d4, 0x01d7, 0x01f2,
+ 0x01f8, 0x01f8, 0x0203, 0x0203, 0x01f6, 0x01fb,
+ 0x020a, 0x01fe, 0x0202, 0x01f1, 0x01c3, 0x01c3,
+ 0x01a8, 0x0197, 0x01b4, 0x01b6, 0x01c8, 0x01e0,
+ 0x01e8, 0x01fa, 0x01f5, 0x01df, 0x01d4, 0x01c0,
+ 0x01a8, 0x019e, 0x0189, 0x0165, 0x0168, 0x0168,
+ 0x014c, 0x014d, 0x012d, 0x0111, 0x0122, 0x0112,
+ 0x0121, 0x013b, 0x0117, 0x0104, 0x00fd, 0x00d6,
+ 0x00b2, 0x0090, 0x0071, 0x0063, 0x004d, 0x0021,
+ 0x0016, 0x001c, 0xfffb, 0xfffb, 0x0006, 0xfff0,
+ 0xffed, 0xffe0, 0xffda, 0xfff1, 0xfff1, 0xffe8,
+ 0xffd4, 0xffc3, 0xffd6, 0xffec, 0xfff7, 0xfff0,
+ 0xfff1, 0x0000, 0xffec, 0xffd5, 0xffd3, 0xffec,
+ 0x0007, 0x0005, 0x000a, 0x0005, 0xfff1, 0xffee,
+ 0xfff3, 0x000d, 0x0030, 0x003c, 0x0037, 0x0032,
+ 0x0040, 0x0045, 0x0046, 0x004d, 0x004d, 0x0077,
+ 0x0094, 0x008d, 0x00a6, 0x00a3, 0x0090, 0x008b,
+ 0x006e, 0x005e, 0x0052, 0x0032, 0x002f, 0x003f,
+ 0x0046, 0x005f, 0x007a, 0x0066, 0x006c, 0x0095,
+ 0x008f, 0x0098, 0x0099, 0x0072, 0x0084, 0x0082,
+ 0x005e, 0x0071, 0x0063, 0x0048, 0x006e, 0x0082,
+ 0x0085, 0x00b2, 0x00d9, 0x00e0, 0x00df, 0x00bc,
+ 0x00a8, 0x00c2, 0x00af, 0x00a5, 0x00c3, 0x00b3,
+ 0x00ac, 0x00b1, 0x009d, 0x009f, 0x0093, 0x0087,
+ 0x00a5, 0x00ac, 0x00a6, 0x00b6, 0x00aa, 0x008a,
+ 0x008a, 0x007e, 0x0059, 0x004e, 0x0044, 0x0045,
+ 0x0056, 0x003b, 0x002b, 0x0032, 0x000e, 0xfff9,
+ 0x000a, 0x000c, 0x0000, 0xffef, 0xffcc, 0xff95,
+ 0xff71, 0xff6a, 0xff72, 0xff89, 0xff90, 0xff89,
+ 0xff92, 0xff98, 0xff9c, 0xffb2, 0xffcb, 0xffd7,
+ 0xffeb, 0xffff, 0xfffa, 0x0005, 0x0020, 0x001d,
+ 0x0010, 0x000b, 0x001c, 0x0043, 0x004c, 0x0044,
+ 0x004b, 0x0040, 0x0032, 0x0031, 0x001f, 0x0009,
+ 0x0003, 0xfff0, 0xffd6, 0xffc3, 0xff9e, 0xff84,
+ 0xff82, 0xff74, 0xff7c, 0xffa5, 0xffb1, 0xffb8,
+ 0xffde, 0xffeb, 0xffd2, 0xffc8, 0xffc7, 0xffbe,
+ 0xffbb, 0xffaf, 0xff94, 0xff85, 0xff77, 0xff6a,
+ 0xff79, 0xff81, 0xff6b, 0xff6d, 0xff7c, 0xff75,
+ 0xff7c, 0xff8a, 0xff7d, 0xff66, 0xff51, 0xff50,
+ 0xff67, 0xff75, 0xff7c, 0xff89, 0xff7b, 0xff5d,
+ 0xff54, 0xff42, 0xff27, 0xff2a, 0xff30, 0xff37,
+ 0xff34, 0xff0d, 0xff09, 0xff27, 0xff2e, 0xff4e,
+ 0xff7b, 0xff7b, 0xff75, 0xff77, 0xff62, 0xff59,
+ 0xff61, 0xff60, 0xff67, 0xff5d, 0xff38, 0xff3e,
+ 0xff45, 0xff39, 0xff56, 0xff6b, 0xff7c, 0xffae,
+ 0xffcb, 0xffe3, 0x0000, 0xfff9, 0xfff8, 0x000c,
+ 0x0007, 0x001a, 0x0048, 0x0040, 0x0035, 0x004d,
+ 0x0038, 0x0025, 0x0033, 0x0035, 0x004e, 0x0060,
+ 0x0064, 0x0089, 0x009a, 0x0096, 0x00a0, 0x0097,
+ 0x008a, 0x0099, 0x00b3, 0x00c1, 0x00d2, 0x00e9,
+ 0x0116, 0x0150, 0x0158, 0x014d, 0x0149, 0x0125,
+ 0x0113, 0x0122, 0x012c, 0x012c, 0x0117, 0x010e,
+ 0x010f, 0x0107, 0x0110, 0x0103, 0x00ec, 0x0101,
+ 0x0132, 0x016a, 0x018d, 0x018a, 0x017b, 0x0184,
+ 0x017b, 0x013d, 0x011c, 0x0114, 0x00f8, 0x00fb,
+ 0x0102, 0x00ee, 0x00de, 0x00d8, 0x00d3, 0x00c4,
+ 0x00d0, 0x00e3, 0x00ce, 0x00c0, 0x00b0, 0x00a7,
+ 0x00c6, 0x00cc, 0x00c8, 0x00db, 0x00e0, 0x00e6,
+ 0x0100, 0x010b, 0x010a, 0x011d, 0x0116, 0x00ea,
+ 0x00ce, 0x009f, 0x0078, 0x007c, 0x0073, 0x0085,
+ 0x0097, 0x007a, 0x007f, 0x0099, 0x00b2, 0x00d5,
+ 0x00ce, 0x00b0, 0x00b2, 0x00b6, 0x0098, 0x007f,
+ 0x007d, 0x0077, 0x0085, 0x0090, 0x0082, 0x0080,
+ 0x0076, 0x0077, 0x0085, 0x0088, 0x00a1, 0x00c3,
+ 0x00e0, 0x00f6, 0x00ed, 0x00ea, 0x00d6, 0x00a8,
+ 0x008c, 0x0069, 0x0046, 0x0043, 0x0049, 0x002e,
+ 0x000a, 0x0012, 0x0013, 0x000e, 0x0026, 0x0031,
+ 0x0038, 0x0049, 0x0056, 0x006a, 0x0079, 0x007b,
+ 0x0069, 0x0059, 0x005e, 0x0061, 0x007c, 0x009b,
+ 0x009e, 0x00a9, 0x00ae, 0x00ab, 0x00ab, 0x00a5,
+ 0x00b0, 0x00b3, 0x00aa, 0x00a5, 0x0093, 0x008c,
+ 0x00a5, 0x00d3, 0x00ff, 0x0126, 0x013e, 0x0135,
+ 0x014c, 0x0170, 0x0167, 0x0164, 0x0161, 0x0155,
+ 0x0164, 0x017a, 0x0194, 0x01a0, 0x01a4, 0x01da,
+ 0x0214, 0x021b, 0x021d, 0x0232, 0x0232, 0x022d,
+ 0x024b, 0x025b, 0x026e, 0x028b, 0x0275, 0x0271,
+ 0x0287, 0x0272, 0x0268, 0x026e, 0x025a, 0x0254,
+ 0x025e, 0x024d, 0x0234, 0x0228, 0x01ef, 0x01b0,
+ 0x01a6, 0x0198, 0x017d, 0x016f, 0x0163, 0x0167,
+ 0x0166, 0x0163, 0x0166, 0x0152, 0x0155, 0x0179,
+ 0x0178, 0x015b, 0x0150, 0x0140, 0x0128, 0x0130,
+ 0x0133, 0x0127, 0x0127, 0x0101, 0x00e0, 0x00f5,
+ 0x00ef, 0x00dc, 0x00dc, 0x00d3, 0x00e3, 0x00f9,
+ 0x00e7, 0x00d6, 0x00cc, 0x00a6, 0x0087, 0x007f,
+ 0x0071, 0x0081, 0x009a, 0x0095, 0x00a9, 0x00b9,
+ 0x00ac, 0x00a7, 0x0084, 0x006e, 0x008c, 0x0082,
+ 0x0070, 0x0091, 0x009d, 0x0090, 0x0088, 0x006b,
+ 0x0072, 0x00aa, 0x00bd, 0x00d4, 0x011a, 0x0143,
+ 0x0159, 0x0159, 0x012e, 0x0122, 0x011c, 0x00ed,
+ 0x00cd, 0x00b3, 0x009b, 0x009e, 0x009b, 0x0096,
+ 0x00a7, 0x00b4, 0x00bf, 0x00d1, 0x00d4, 0x00eb,
+ 0x0118, 0x0127, 0x0149, 0x0182, 0x0188, 0x0189,
+ 0x0193, 0x016c, 0x014e, 0x0155, 0x0152, 0x014d,
+ 0x0144, 0x0123, 0x010a, 0x00f6, 0x00de, 0x00fd,
+ 0x013e, 0x014c, 0x014f, 0x015d, 0x0153, 0x0154,
+ 0x015c, 0x0159, 0x017e, 0x01a4, 0x0198, 0x0177,
+ 0x0139, 0x00fe, 0x010a, 0x0119, 0x0107, 0x0103,
+ 0x00ce, 0x0076, 0x0054, 0x0049, 0x0054, 0x0072,
+ 0x0054, 0x0036, 0x0029, 0xffe9, 0xffd4, 0xfff0,
+ 0xffd7, 0xffe9, 0x0009, 0xffc9, 0xff9b, 0xff92,
+ 0xff6d, 0xff80, 0xffa8, 0xffb3, 0xffe2, 0xffe2,
+ 0xffae, 0xffc1, 0xffd0, 0xffb6, 0xffc5, 0xffcf,
+ 0xffce, 0xffd5, 0xffaf, 0xff9f, 0xffbb, 0xffb4,
+ 0xffc9, 0xfff6, 0xfff1, 0x0002, 0x0028, 0x0023,
+ 0x002e, 0x0038, 0x0023, 0x0033, 0x004c, 0x0051,
+ 0x007d, 0x009e, 0x0088, 0x007b, 0x007e, 0x008d,
+ 0x00ba, 0x00e4, 0x0105, 0x0128, 0x012c, 0x0126,
+ 0x0135, 0x013f, 0x013f, 0x0135, 0x010a, 0x00d2,
+ 0x00a4, 0x0079, 0x0067, 0x006c, 0x0061, 0x0059,
+ 0x005f, 0x0047, 0x0025, 0x0023, 0x003b, 0x005e,
+ 0x0077, 0x0075, 0x006f, 0x0067, 0x006d, 0x009f,
+ 0x00d5, 0x00e9, 0x00f0, 0x00e5, 0x00c4, 0x00a4,
+ 0x007e, 0x0064, 0x0070, 0x0083, 0x0084, 0x006a,
+ 0x003e, 0x002e, 0x0024, 0x000a, 0x0001, 0xfff2,
+ 0xffbd, 0xff8a, 0xff62, 0xff4e, 0xff61, 0xff6a,
+ 0xff60, 0xff64, 0xff60, 0xff56, 0xff52, 0xff48,
+ 0xff44, 0xff38, 0xff1d, 0xff21, 0xff3d, 0xff52,
+ 0xff66, 0xff61, 0xff3e, 0xff26, 0xff0c, 0xfefd,
+ 0xff13, 0xff22, 0xff1b, 0xff1b, 0xff0c, 0xfeff,
+ 0xff14, 0xff1f, 0xff19, 0xff25, 0xff20, 0xfefb,
+ 0xfeed, 0xfef5, 0xfef8, 0xff13, 0xff4e, 0xff84,
+ 0xff9c, 0xff99, 0xff94, 0xffa4, 0xffb8, 0xffcf,
+ 0xffe9, 0xfff5, 0x000c, 0x0034, 0x002c, 0x001e,
+ 0x0042, 0x0054, 0x004b, 0x0053, 0x0053, 0x0061,
+ 0x008c, 0x00a0, 0x00c1, 0x00f7, 0x00fd, 0x00f9,
+ 0x0114, 0x0120, 0x0123, 0x012e, 0x0122, 0x0115,
+ 0x010c, 0x00e5, 0x00b6, 0x00a1, 0x00a3, 0x00b0,
+ 0x00b1, 0x00a9, 0x00aa, 0x0098, 0x006e, 0x005e,
+ 0x006a, 0x0072, 0x0077, 0x006f, 0x0052, 0x0043,
+ 0x004c, 0x004f, 0x004b, 0x003e, 0x0022, 0x0006,
+ 0xffe0, 0xffad, 0xff9a, 0xff9d, 0xff96, 0xff91,
+ 0xff84, 0xff67, 0xff51, 0xff36, 0xff1f, 0xff19,
+ 0xfefa, 0xfedf, 0xfef0, 0xfefc, 0xfefd, 0xfef9,
+ 0xfecd, 0xfeab, 0xfeab, 0xfe8d, 0xfe72, 0xfe70,
+ 0xfe4b, 0xfe1b, 0xfe09, 0xfe06, 0xfe2b, 0xfe54,
+ 0xfe49, 0xfe32, 0xfe1e, 0xfe05, 0xfe0c, 0xfe25,
+ 0xfe49, 0xfe8c, 0xfeae, 0xfea0, 0xfea3, 0xfe9f,
+ 0xfe9b, 0xfec8, 0xfeec, 0xfef7, 0xff0d, 0xfefc,
+ 0xfee9, 0xff19, 0xff54, 0xff87, 0xffc6, 0xffdb,
+ 0xffe2, 0xfff7, 0xffe0, 0xffd2, 0xfff7, 0x000b,
+ 0x002e, 0x0079, 0x00a2, 0x00b9, 0x00d9, 0x00df,
+ 0x00ea, 0x0102, 0x0107, 0x011b, 0x013e, 0x0156,
+ 0x0172, 0x0188, 0x019c, 0x01c3, 0x01db, 0x01e8,
+ 0x020c, 0x0228, 0x022d, 0x0224, 0x0212, 0x0214,
+ 0x0222, 0x0228, 0x0237, 0x022e, 0x01fe, 0x01e0,
+ 0x01d0, 0x01b1, 0x01a0, 0x019e, 0x019c, 0x0193,
+ 0x0168, 0x0138, 0x0124, 0x010d, 0x00e5, 0x00bb,
+ 0x0097, 0x0084, 0x006c, 0x003f, 0x0021, 0x0018,
+ 0x0005, 0xfff4, 0xffe9, 0xffd9, 0xffc9, 0xffb5,
+ 0xff8e, 0xff65, 0xff49, 0xff34, 0xff0f, 0xfece,
+ 0xfe93, 0xfe88, 0xfe7d, 0xfe4e, 0xfe23, 0xfe02,
+ 0xfdd0, 0xfda1, 0xfd81, 0xfd7b, 0xfd9f, 0xfdbf,
+ 0xfdc8, 0xfde2, 0xfdfc, 0xfe09, 0xfe2b, 0xfe44,
+ 0xfe50, 0xfe7c, 0xfea6, 0xfeb1, 0xfeb7, 0xfeb2,
+ 0xfeb7, 0xfecd, 0xfed0, 0xfedf, 0xff01, 0xff00,
+ 0xfeff, 0xff04, 0xfef3, 0xff05, 0xff34, 0xff46,
+ 0xff68, 0xff99, 0xffaf, 0xffd1, 0xfff6, 0x0007,
+ 0x0031, 0x0069, 0x0090, 0x00c4, 0x00f3, 0x0105,
+ 0x010a, 0x010d, 0x0115, 0x012a, 0x014d, 0x0170,
+ 0x017c, 0x0184, 0x019f, 0x01a9, 0x01b5, 0x01e2,
+ 0x01f8, 0x01e9, 0x01e3, 0x01dd, 0x01de, 0x01ed,
+ 0x01ea, 0x01e3, 0x01e9, 0x01dd, 0x01ce, 0x01d6,
+ 0x01df, 0x01ee, 0x0204, 0x0218, 0x022c, 0x0222,
+ 0x01ee, 0x01bf, 0x01a1, 0x0181, 0x0167, 0x014a,
+ 0x011a, 0x00e7, 0x00bc, 0x0095, 0x007f, 0x007a,
+ 0x0079, 0x007e, 0x0082, 0x0074, 0x005d, 0x0055,
+ 0x0054, 0x004d, 0x004a, 0x0045, 0x0034, 0x001b,
+ 0x0007, 0xfff7, 0xffe0, 0xffc3, 0xffa9, 0xff9d,
+ 0xff9a, 0xff85, 0xff5e, 0xff48, 0xff4f, 0xff68,
+ 0xff93, 0xffbc, 0xffda, 0xffff, 0x001a, 0x0022,
+ 0x0033, 0x0045, 0x0052, 0x0066, 0x0069, 0x0058,
+ 0x0049, 0x0030, 0x001e, 0x002a, 0x003f, 0x0065,
+ 0x0091, 0x0091, 0x0080, 0x007b, 0x0075, 0x0082,
+ 0x00ab, 0x00df, 0x0116, 0x012f, 0x012d, 0x0130,
+ 0x012a, 0x0130, 0x0146, 0x0127, 0x00ef, 0x00d1,
+ 0x00b0, 0x00ae, 0x00d8, 0x00ed, 0x0108, 0x012f,
+ 0x0134, 0x014a, 0x0168, 0x015b, 0x016a, 0x019b,
+ 0x01ad, 0x01b0, 0x01a6, 0x019c, 0x01b8, 0x01cc,
+ 0x01d1, 0x01ed, 0x01f6, 0x01f2, 0x01fc, 0x01e8,
+ 0x01ca, 0x01c8, 0x01bf, 0x01c7, 0x01e7, 0x01e1,
+ 0x01ca, 0x01ca, 0x01d1, 0x01e1, 0x01f5, 0x01ff,
+ 0x0212, 0x022f, 0x0247, 0x0255, 0x0257, 0x024c,
+ 0x0237, 0x0225, 0x0223, 0x021f, 0x020f, 0x0204,
+ 0x01ee, 0x01c8, 0x01b8, 0x01c6, 0x01e1, 0x01f3,
+ 0x01ea, 0x01dc, 0x01dd, 0x01dc, 0x01d0, 0x01c1,
+ 0x01bc, 0x01bb, 0x019a, 0x0164, 0x014d, 0x014b,
+ 0x013e, 0x0130, 0x0127, 0x011e, 0x0121, 0x011f,
+ 0x00f2, 0x00ae, 0x0080, 0x006c, 0x0065, 0x005e,
+ 0x0047, 0x0031, 0x0029, 0x0020, 0x001e, 0x0026,
+ 0x0023, 0x0021, 0x001e, 0x000d, 0x0009, 0x000c,
+ 0x0008, 0x0013, 0x0003, 0xffc5, 0xff94, 0xff6d,
+ 0xff4e, 0xff61, 0xff67, 0xff50, 0xff67, 0xff8c,
+ 0xffaa, 0xffdc, 0xffef, 0xffe9, 0x000b, 0x002c,
+ 0x003d, 0x005f, 0x0073, 0x007b, 0x0093, 0x00b2,
+ 0x00e9, 0x0121, 0x0138, 0x0152, 0x017e, 0x01b1,
+ 0x01fc, 0x0244, 0x0269, 0x0284, 0x0296, 0x02a0,
+ 0x02b7, 0x02cf, 0x02dc, 0x02f6, 0x0323, 0x034d,
+ 0x036f, 0x0399, 0x03bf, 0x03c5, 0x03cc, 0x03e2,
+ 0x03ef, 0x0404, 0x041c, 0x0418, 0x0406, 0x03e1,
+ 0x03aa, 0x039b, 0x039c, 0x037b, 0x0358, 0x033b,
+ 0x0324, 0x031b, 0x02f8, 0x02d1, 0x02c5, 0x0298,
+ 0x025c, 0x0241, 0x021c, 0x01fd, 0x01f8, 0x01d4,
+ 0x01b8, 0x01bf, 0x01a8, 0x018f, 0x018f, 0x016a,
+ 0x0142, 0x0138, 0x0123, 0x0115, 0x010d, 0x00dd,
+ 0x00a2, 0x0073, 0x0050, 0x0050, 0x0043, 0x0001,
+ 0xffcb, 0xffb1, 0xffa6, 0xffb7, 0xffbd, 0xffae,
+ 0xffaf, 0xff9e, 0xff75, 0xff6c, 0xff67, 0xff43,
+ 0xff2d, 0xff1a, 0xfeff, 0xfef8, 0xfedc, 0xfe9f,
+ 0xfe82, 0xfe78, 0xfe6d, 0xfe74, 0xfe7d, 0xfe95,
+ 0xfec7, 0xfed8, 0xfee1, 0xff0c, 0xff36, 0xff6a,
+ 0xffa1, 0xffab, 0xffbe, 0xffd0, 0xffa8, 0xff97,
+ 0xffb6, 0xffc4, 0xffe5, 0x0008, 0x000c, 0x002d,
+ 0x0043, 0x0025, 0x0024, 0x003a, 0x005c, 0x00a7,
+ 0x00c2, 0x00ad, 0x00ba, 0x00c5, 0x00de, 0x011b,
+ 0x012d, 0x0143, 0x0170, 0x0154, 0x0139, 0x0160,
+ 0x0174, 0x018e, 0x01b6, 0x01bb, 0x01e0, 0x0212,
+ 0x020e, 0x021c, 0x023a, 0x0229, 0x0212, 0x01f1,
+ 0x01bf, 0x01a7, 0x0186, 0x0165, 0x0182, 0x019f,
+ 0x019e, 0x019e, 0x0178, 0x0143, 0x0139, 0x0126,
+ 0x00fc, 0x00e9, 0x00d0, 0x00ae, 0x0098, 0x0064,
+ 0x002a, 0x002c, 0x003c, 0x0030, 0x002a, 0x002b,
+ 0x0021, 0x000c, 0xffda, 0xffad, 0xffaa, 0xffa3,
+ 0xff8e, 0xff84, 0xff70, 0xff60, 0xff5b, 0xff45,
+ 0xff46, 0xff73, 0xff88, 0xff87, 0xff84, 0xff63,
+ 0xff4e, 0xff58, 0xff4a, 0xff35, 0xff2a, 0xff07,
+ 0xfee1, 0xfecb, 0xfeb7, 0xfeb3, 0xfeb9, 0xfebf,
+ 0xfed7, 0xfee6, 0xfed4, 0xfeb9, 0xfea0, 0xfea0,
+ 0xfebc, 0xfec8, 0xfeca, 0xfede, 0xfef6, 0xff11,
+ 0xff2f, 0xff34, 0xff37, 0xff48, 0xff52, 0xff56,
+ 0xff68, 0xff94, 0xffcd, 0xffeb, 0xfff1, 0xfff4,
+ 0xfff1, 0xffe8, 0xffdd, 0xffde, 0x0000, 0x0028,
+ 0x0032, 0x003b, 0x004c, 0x004f, 0x004f, 0x0052,
+ 0x005b, 0x007b, 0x00a3, 0x00ba, 0x00c4, 0x00cc,
+ 0x00e1, 0x0104, 0x011f, 0x012c, 0x012a, 0x0119,
+ 0x010a, 0x00fc, 0x00eb, 0x00e8, 0x00f7, 0x00ff,
+ 0x0103, 0x0122, 0x0154, 0x016f, 0x017a, 0x0189,
+ 0x0193, 0x01a5, 0x01ae, 0x018d, 0x0163, 0x012a,
+ 0x00c2, 0x0071, 0x004e, 0x0030, 0x0032, 0x0034,
+ 0x0008, 0xffe4, 0xffbe, 0xff80, 0xff5d, 0xff3d,
+ 0xff13, 0xff0b, 0xfef6, 0xfec9, 0xfebb, 0xfeb1,
+ 0xfeb1, 0xfecd, 0xfecb, 0xfeba, 0xfeb0, 0xfe77,
+ 0xfe3c, 0xfe36, 0xfe3c, 0xfe59, 0xfe85, 0xfe7d,
+ 0xfe64, 0xfe64, 0xfe65, 0xfe74, 0xfe96, 0xfead,
+ 0xfebb, 0xfeb9, 0xfeac, 0xfec1, 0xfef3, 0xff15,
+ 0xff31, 0xff47, 0xff47, 0xff4a, 0xff4e, 0xff40,
+ 0xff43, 0xff4e, 0xff40, 0xff3e, 0xff46, 0xff2b,
+ 0xff1d, 0xff2f, 0xff46, 0xff8b, 0xfff0, 0x0038,
+ 0x007f, 0x00c6, 0x00e9, 0x0113, 0x0145, 0x015c,
+ 0x0176, 0x019a, 0x01b4, 0x01c8, 0x01ba, 0x0197,
+ 0x0191, 0x018b, 0x0189, 0x01b3, 0x01d8, 0x01e2,
+ 0x01e5, 0x01c1, 0x0189, 0x016c, 0x0154, 0x014a,
+ 0x015d, 0x016a, 0x0165, 0x015c, 0x0149, 0x0141,
+ 0x014a, 0x015a, 0x016f, 0x016e, 0x0154, 0x0143,
+ 0x012e, 0x010f, 0x00fe, 0x00e5, 0x00c1, 0x00a6,
+ 0x0086, 0x0074, 0x008a, 0x0097, 0x0085, 0x0081,
+ 0x0090, 0x0095, 0x0090, 0x0091, 0x009a, 0x00a9,
+ 0x00b4, 0x00b1, 0x009e, 0x007b, 0x0041, 0x0003,
+ 0xffde, 0xffc2, 0xffa3, 0xff91, 0xff8b, 0xff82,
+ 0xff6d, 0xff56, 0xff59, 0xff72, 0xff88, 0xffa5,
+ 0xffcc, 0xffef, 0x0011, 0x001d, 0x0009, 0xfff9,
+ 0xfff5, 0xfff6, 0x0001, 0x000c, 0x000c, 0x0011,
+ 0x0018, 0x001e, 0x0033, 0x0051, 0x005a, 0x003d,
+ 0x001a, 0x0014, 0x0021, 0x003c, 0x005e, 0x0060,
+ 0x0048, 0x003c, 0x003f, 0x0056, 0x0076, 0x0081,
+ 0x008d, 0x00a9, 0x00b8, 0x00ba, 0x00b7, 0x00af,
+ 0x00b8, 0x00d7, 0x0100, 0x0126, 0x011c, 0x00e3,
+ 0x00b8, 0x00a5, 0x00a6, 0x00c3, 0x00e4, 0x00f2,
+ 0x00f6, 0x0101, 0x011e, 0x013f, 0x0150, 0x0143,
+ 0x011c, 0x00fd, 0x00e8, 0x00c5, 0x009d, 0x006e,
+ 0x003a, 0x0039, 0x0057, 0x0053, 0x0051, 0x0070,
+ 0x0092, 0x00b3, 0x00c9, 0x00d3, 0x00ee, 0x00fe,
+ 0x00ea, 0x00d4, 0x00c1, 0x00ae, 0x00ab, 0x00a5,
+ 0x009a, 0x009c, 0x009d, 0x00a8, 0x00cf, 0x00ef,
+ 0x00f1, 0x00eb, 0x00e0, 0x00d1, 0x00bf, 0x00a5,
+ 0x0093, 0x009d, 0x00b2, 0x00c8, 0x00de, 0x00d6,
+ 0x00b3, 0x0096, 0x007a, 0x0074, 0x00a0, 0x00c9,
+ 0x00d1, 0x00c8, 0x00aa, 0x0092, 0x008b, 0x0070,
+ 0x005e, 0x005b, 0x003e, 0x0030, 0x002a, 0xfff9,
+ 0xffd7, 0xffe1, 0xfff2, 0x0018, 0x0031, 0x0021,
+ 0x0029, 0x0034, 0x002c, 0x0052, 0x0080, 0x0082,
+ 0x0088, 0x0085, 0x0065, 0x004f, 0x003b, 0x001d,
+ 0x0011, 0x0003, 0xffea, 0xffcf, 0xffb8, 0xffaf,
+ 0xffae, 0xffae, 0xffc4, 0xffd5, 0xffd1, 0xffe6,
+ 0x000b, 0x001d, 0x0032, 0x0051, 0x0069, 0x0087,
+ 0x009d, 0x00a2, 0x00ae, 0x00a3, 0x0076, 0x004f,
+ 0x0035, 0x0030, 0x003f, 0x003a, 0x0033, 0x004b,
+ 0x0061, 0x008f, 0x00e6, 0x0112, 0x0114, 0x0119,
+ 0x00fd, 0x00c0, 0x008f, 0x007a, 0x0097, 0x00ba,
+ 0x00a8, 0x0094, 0x009e, 0x00b1, 0x00d6, 0x00f5,
+ 0x00f4, 0x00e9, 0x00d0, 0x00a5, 0x007c, 0x005a,
+ 0x0064, 0x00a6, 0x00d6, 0x00db, 0x00d8, 0x00cc,
+ 0x00c4, 0x00e1, 0x0101, 0x0116, 0x012e, 0x0130,
+ 0x0113, 0x00fa, 0x00e7, 0x00d5, 0x00c7, 0x00aa,
+ 0x0084, 0x0067, 0x0043, 0x0028, 0x0026, 0x0024,
+ 0x0035, 0x0057, 0x005f, 0x0075, 0x00a0, 0x00a6,
+ 0x00ae, 0x00d0, 0x00d0, 0x00c6, 0x00cf, 0x00c4,
+ 0x00c3, 0x00e1, 0x00ea, 0x00e0, 0x00e3, 0x00f0,
+ 0x00f8, 0x00fe, 0x0103, 0x0107, 0x0114, 0x0139,
+ 0x0152, 0x0147, 0x0146, 0x0156, 0x015e, 0x0161,
+ 0x015d, 0x0153, 0x0154, 0x015b, 0x016d, 0x018b,
+ 0x019b, 0x019b, 0x018f, 0x0170, 0x014c, 0x0135,
+ 0x0112, 0x00d9, 0x00a5, 0x0086, 0x0083, 0x0096,
+ 0x00ab, 0x00b7, 0x00be, 0x00ae, 0x008a, 0x0075,
+ 0x0074, 0x0075, 0x0079, 0x0074, 0x005d, 0x0038,
+ 0x000c, 0x0000, 0x0010, 0x0008, 0xffed, 0xffcf,
+ 0xff99, 0xff59, 0xff1f, 0xfee1, 0xfeb8, 0xfea8,
+ 0xfea1, 0xfea6, 0xfea7, 0xfea4, 0xfebc, 0xfed4,
+ 0xfee2, 0xfef8, 0xff01, 0xfef6, 0xfeea, 0xfee2,
+ 0xfeee, 0xff07, 0xff0d, 0xff0b, 0xff19, 0xff3c,
+ 0xff67, 0xff7e, 0xff89, 0xff95, 0xff8b, 0xff88,
+ 0xffa8, 0xffc0, 0xffca, 0xffd6, 0xffcf, 0xffca,
+ 0xffe0, 0xffee, 0xffee, 0xfff6, 0xfff5, 0xffef,
+ 0xfff7, 0x0000, 0x0001, 0x0002, 0x0007, 0x0018,
+ 0x002e, 0x003b, 0x004f, 0x006d, 0x0084, 0x00a2,
+ 0x00d1, 0x00fe, 0x0111, 0x00f8, 0x00ce, 0x00c0,
+ 0x00c2, 0x00d7, 0x0109, 0x012c, 0x013d, 0x0155,
+ 0x0155, 0x0147, 0x015c, 0x0175, 0x0177, 0x0175,
+ 0x0160, 0x0133, 0x0109, 0x00f1, 0x00fa, 0x0119,
+ 0x012a, 0x0133, 0x0133, 0x0109, 0x00d7, 0x00c1,
+ 0x00be, 0x00d0, 0x00d9, 0x00be, 0x00a2, 0x008a,
+ 0x006d, 0x0074, 0x0087, 0x0079, 0x0078, 0x0078,
+ 0x004d, 0x0032, 0x0028, 0xfffb, 0xffd6, 0xffd3,
+ 0xffdb, 0xfff9, 0x0006, 0xfffc, 0x0007, 0x000a,
+ 0xfff7, 0xfff9, 0xffee, 0xffc2, 0xff95, 0xff52,
+ 0xff00, 0xfec5, 0xfe9d, 0xfe8e, 0xfe8f, 0xfe7a,
+ 0xfe6d, 0xfe78, 0xfe6d, 0xfe63, 0xfe7f, 0xfe9c,
+ 0xfea5, 0xfeac, 0xfeb2, 0xfeb2, 0xfebb, 0xfedc,
+ 0xff0c, 0xff35, 0xff4e, 0xff51, 0xff39, 0xff13,
+ 0xfefc, 0xfef4, 0xfeec, 0xfee1, 0xfecc, 0xfea9,
+ 0xfe91, 0xfe8b, 0xfe88, 0xfe8f, 0xfea2, 0xfebc,
+ 0xfeda, 0xfeea, 0xfeee, 0xff07, 0xff35, 0xff66,
+ 0xff8f, 0xffad, 0xffc7, 0xffda, 0xffdb, 0xffcb,
+ 0xffb7, 0xffb6, 0xffb1, 0xff80, 0xff48, 0xff2e,
+ 0xff29, 0xff4e, 0xff8c, 0xffae, 0xffc5, 0xffde,
+ 0xffe9, 0xffff, 0x0019, 0x0027, 0x0043, 0x005b,
+ 0x0060, 0x006e, 0x0075, 0x0072, 0x008c, 0x00b8,
+ 0x00da, 0x00e7, 0x00df, 0x00d4, 0x00c3, 0x00a2,
+ 0x009d, 0x00b1, 0x00a7, 0x008d, 0x007d, 0x0068,
+ 0x005f, 0x006f, 0x007f, 0x008c, 0x0097, 0x009c,
+ 0x00a2, 0x0098, 0x007d, 0x0073, 0x006b, 0x005a,
+ 0x005a, 0x0056, 0x0046, 0x003a, 0x001e, 0x0008,
+ 0x000c, 0x0005, 0x0004, 0x0010, 0x0000, 0xfff3,
+ 0xffe9, 0xffc3, 0xffb5, 0xffb6, 0xffa0, 0xffa4,
+ 0xffa2, 0xff87, 0xff82, 0xff63, 0xff32, 0xff2f,
+ 0xff16, 0xfeeb, 0xfeea, 0xfed9, 0xfed8, 0xff00,
+ 0xfef8, 0xfef3, 0xff13, 0xff0c, 0xff09, 0xff1c,
+ 0xff13, 0xff20, 0xff31, 0xff1d, 0xff13, 0xff06,
+ 0xfef1, 0xfef2, 0xfede, 0xfec7, 0xfecf, 0xfec2,
+ 0xfeae, 0xfeac, 0xfe8b, 0xfe63, 0xfe5e, 0xfe5e,
+ 0xfe61, 0xfe76, 0xfe92, 0xfeb1, 0xfed8, 0xff07,
+ 0xff3a, 0xff75, 0xffad, 0xffbf, 0xffb5, 0xffb5,
+ 0xffc2, 0xffdd, 0xfffb, 0x0002, 0x000a, 0x001a,
+ 0x0022, 0x0039, 0x005a, 0x0076, 0x009a, 0x00b5,
+ 0x00bc, 0x00ce, 0x00ef, 0x0111, 0x012f, 0x0142,
+ 0x0145, 0x0129, 0x0111, 0x011d, 0x0121, 0x011a,
+ 0x0127, 0x0122, 0x010c, 0x0106, 0x00f6, 0x00ff,
+ 0x0144, 0x0183, 0x01ae, 0x01db, 0x01ec, 0x01ef,
+ 0x01f3, 0x01ef, 0x0203, 0x021f, 0x0213, 0x01f8,
+ 0x01da, 0x01ad, 0x0195, 0x0195, 0x019c, 0x01ac,
+ 0x01a0, 0x0171, 0x014f, 0x012d, 0x0106, 0x00fb,
+ 0x00f1, 0x00d8, 0x00dc, 0x00e8, 0x00df, 0x00d6,
+ 0x00c1, 0x00a4, 0x0094, 0x0082, 0x006a, 0x0055,
+ 0x003c, 0x002b, 0x000f, 0xffe8, 0xffe9, 0xffff,
+ 0xfff9, 0xffef, 0xffd4, 0xff9c, 0xff79, 0xff6c,
+ 0xff68, 0xff79, 0xff76, 0xff68, 0xff80, 0xff94,
+ 0xff97, 0xffac, 0xffbc, 0xffcb, 0xffeb, 0xfff9,
+ 0xfffb, 0x0000, 0xffed, 0xffd7, 0xffe4, 0xffff,
+ 0x001d, 0x003a, 0x003e, 0x0047, 0x0071, 0x00a4,
+ 0x00dd, 0x011c, 0x0136, 0x0138, 0x014d, 0x0160,
+ 0x0172, 0x01a1, 0x01c7, 0x01d5, 0x01e2, 0x01e2,
+ 0x01e1, 0x01f3, 0x0207, 0x021c, 0x0226, 0x0214,
+ 0x020c, 0x0211, 0x0217, 0x0239, 0x0259, 0x0261,
+ 0x0287, 0x02a3, 0x0287, 0x027e, 0x028a, 0x0278,
+ 0x027a, 0x0291, 0x0294, 0x0299, 0x0298, 0x0278,
+ 0x0261, 0x025b, 0x0256, 0x0268, 0x0268, 0x0234,
+ 0x020a, 0x01fe, 0x01e9, 0x01cc, 0x01b0, 0x0197,
+ 0x018b, 0x0180, 0x0170, 0x016b, 0x016e, 0x0179,
+ 0x018b, 0x018d, 0x018d, 0x0199, 0x0199, 0x0188,
+ 0x0170, 0x014e, 0x0140, 0x014c, 0x015b, 0x0161,
+ 0x0152, 0x013c, 0x013e, 0x0144, 0x0148, 0x0166,
+ 0x0181, 0x017e, 0x0181, 0x0183, 0x0166, 0x014a,
+ 0x0142, 0x013b, 0x0138, 0x012d, 0x0112, 0x0104,
+ 0x00ff, 0x00f5, 0x0113, 0x0157, 0x0181, 0x018f,
+ 0x0192, 0x0181, 0x0181, 0x01af, 0x01db, 0x01fb,
+ 0x021f, 0x0232, 0x022a, 0x021f, 0x021a, 0x020d,
+ 0x01f5, 0x01e4, 0x01de, 0x01cc, 0x01b6, 0x01b1,
+ 0x01b3, 0x01b6, 0x01ca, 0x01e8, 0x01f7, 0x01eb,
+ 0x01d9, 0x01ce, 0x01c0, 0x01bd, 0x01d2, 0x01d2,
+ 0x01b4, 0x01b1, 0x01c7, 0x01d4, 0x01dd, 0x01e5,
+ 0x01de, 0x01cc, 0x01b3, 0x01a0, 0x01a1, 0x019b,
+ 0x017b, 0x015e, 0x0146, 0x012e, 0x0124, 0x0116,
+ 0x00f1, 0x00c7, 0x009a, 0x0070, 0x0060, 0x0053,
+ 0x0036, 0x001a, 0x0006, 0xfff4, 0xffe5, 0xffde,
+ 0xffe4, 0xfff3, 0x0008, 0x001d, 0x0016, 0x0002,
+ 0x000d, 0x0024, 0x0029, 0x0033, 0x0042, 0x003f,
+ 0x0038, 0x003c, 0x0058, 0x008a, 0x00b4, 0x00ca,
+ 0x00d4, 0x00ce, 0x00b5, 0x00a1, 0x00ab, 0x00da,
+ 0x0109, 0x0118, 0x0115, 0x0114, 0x0111, 0x0118,
+ 0x013c, 0x0165, 0x017d, 0x0192, 0x01a9, 0x01ac,
+ 0x01a0, 0x0197, 0x0191, 0x018d, 0x018f, 0x019a,
+ 0x01af, 0x01c5, 0x01c4, 0x01af, 0x019c, 0x018c,
+ 0x0188, 0x019b, 0x01a1, 0x0191, 0x0191, 0x018f,
+ 0x0178, 0x0176, 0x017e, 0x0179, 0x0177, 0x0162,
+ 0x012d, 0x00f7, 0x00c4, 0x0096, 0x007a, 0x006f,
+ 0x0083, 0x00a3, 0x00a7, 0x00ad, 0x00bc, 0x00bb,
+ 0x00cd, 0x00e1, 0x00d9, 0x00d6, 0x00bc, 0x0075,
+ 0x0042, 0x001f, 0xfff7, 0xffe1, 0xffbc, 0xff86,
+ 0xff67, 0xff4c, 0xff4a, 0xff6d, 0xff77, 0xff7e,
+ 0xff91, 0xff75, 0xff50, 0xff52, 0xff59, 0xff6c,
+ 0xff91, 0xff9e, 0xff8f, 0xff70, 0xff58, 0xff58,
+ 0xff4f, 0xff3d, 0xff3f, 0xff3c, 0xff2d, 0xff22,
+ 0xff19, 0xff16, 0xff18, 0xff1f, 0xff32, 0xff41,
+ 0xff4c, 0xff51, 0xff46, 0xff4e, 0xff76, 0xff98,
+ 0xffb3, 0xffcf, 0xffd6, 0xffd2, 0xffcf, 0xffcd,
+ 0xffdf, 0xffec, 0xffd6, 0xffb4, 0xff95, 0xff69,
+ 0xff3a, 0xff26, 0xff31, 0xff4d, 0xff8b, 0xffdf,
+ 0x0007, 0x0008, 0x0019, 0x0039, 0x005e, 0x0087,
+ 0x009a, 0x0098, 0x007b, 0x0037, 0xfff4, 0xffca,
+ 0xffb5, 0xffb6, 0xffb8, 0xffb3, 0xffab, 0xff99,
+ 0xff92, 0xff94, 0xff85, 0xff97, 0xffcf, 0xffe1,
+ 0xffde, 0xffdb, 0xffc2, 0xffcc, 0x0000, 0x0025,
+ 0x0045, 0x0053, 0x0035, 0x001f, 0x0008, 0xffdd,
+ 0xffda, 0x0005, 0x0032, 0x0051, 0x0052, 0x0049,
+ 0x004d, 0x003d, 0x0022, 0x0023, 0x002d, 0x002c,
+ 0x0027, 0x0031, 0x0051, 0x0071, 0x0089, 0x009c,
+ 0x0086, 0x0053, 0x0030, 0x0006, 0xffd7, 0xffd2,
+ 0xffe3, 0xffed, 0xfff5, 0xfff6, 0xfff6, 0x0001,
+ 0x0008, 0x000f, 0x001b, 0x0028, 0x0032, 0x002f,
+ 0x002b, 0x0039, 0x0031, 0x0004, 0xffd3, 0xff9d,
+ 0xff68, 0xff40, 0xff04, 0xfed3, 0xfed3, 0xfec8,
+ 0xfeb1, 0xfebf, 0xfece, 0xfec7, 0xfebb, 0xfea7,
+ 0xfe9b, 0xfe9a, 0xfe8f, 0xfe96, 0xfea3, 0xfe97,
+ 0xfea3, 0xfebc, 0xfebb, 0xfed4, 0xfefd, 0xfefd,
+ 0xfef9, 0xfefa, 0xfef3, 0xff16, 0xff4e, 0xff63,
+ 0xff6b, 0xff6a, 0xff5e, 0xff5b, 0xff4a, 0xff2d,
+ 0xff2c, 0xff43, 0xff64, 0xff82, 0xff82, 0xff7a,
+ 0xff80, 0xff82, 0xff9a, 0xffcd, 0xffe1, 0xffe5,
+ 0xfff6, 0xfff5, 0xffea, 0xffda, 0xffb6, 0xffad,
+ 0xffe0, 0x0012, 0x0020, 0x0016, 0x0009, 0x000a,
+ 0x0007, 0x0006, 0x0019, 0x0011, 0xfff4, 0xfffd,
+ 0xfffb, 0xffdb, 0xffe6, 0xfff5, 0xffd3, 0xffbd,
+ 0xffbf, 0xffc4, 0xffe4, 0x0003, 0xfffe, 0xffe6,
+ 0xffdc, 0xffed, 0xfff8, 0xfff0, 0xffed, 0xffcf,
+ 0xff93, 0xff81, 0xff82, 0xff5d, 0xff4a, 0xff61,
+ 0xff75, 0xff75, 0xff6a, 0xff67, 0xff75, 0xff81,
+ 0xff9b, 0xffc4, 0xffd3, 0xffce, 0xffd4, 0xffcd,
+ 0xffb4, 0xffaa, 0xffb6, 0xffc8, 0xffd2, 0xffc3,
+ 0xffb7, 0xffd7, 0xfffe, 0x000a, 0x0015, 0x0020,
+ 0x002e, 0x004a, 0x0060, 0x0070, 0x007c, 0x006a,
+ 0x0057, 0x0058, 0x0058, 0x007c, 0x00bd, 0x00cf,
+ 0x00d0, 0x00c8, 0x008c, 0x005c, 0x0055, 0x0044,
+ 0x0048, 0x0067, 0x007a, 0x0087, 0x0088, 0x0098,
+ 0x00d1, 0x00eb, 0x00e0, 0x00e7, 0x00ee, 0x00ff,
+ 0x0109, 0x00df, 0x00b9, 0x00ad, 0x0091, 0x0094,
+ 0x00ab, 0x009e, 0x009c, 0x0094, 0x0057, 0x0038,
+ 0x0035, 0x0011, 0xfff8, 0xfff2, 0xffde, 0xffdc,
+ 0xffec, 0xfff6, 0x0006, 0x001b, 0x0029, 0x0032,
+ 0x0026, 0x0006, 0xffeb, 0xffc6, 0xff9a, 0xff90,
+ 0xffa2, 0xffae, 0xffb6, 0xffae, 0xff9e, 0xffae,
+ 0xffbc, 0xff94, 0xff75, 0xff8a, 0xff94, 0xff84,
+ 0xff8b, 0xffa3, 0xffa6, 0xffa7, 0xffc7, 0xffd9,
+ 0xffb7, 0xff97, 0xff90, 0xff7f, 0xff69, 0xff5b,
+ 0xff43, 0xff23, 0xff23, 0xff46, 0xff52, 0xff48,
+ 0xff55, 0xff56, 0xff38, 0xff3d, 0xff53, 0xff47,
+ 0xff59, 0xff92, 0xffa9, 0xffa8, 0xffa4, 0xff91,
+ 0xff7f, 0xff7e, 0xff96, 0xffc3, 0xffe6, 0x0000,
+ 0x001a, 0x000e, 0xffef, 0xfff5, 0x000b, 0x0026,
+ 0x0055, 0x006e, 0x006b, 0x0085, 0x00a5, 0x00a0,
+ 0x00a3, 0x00cb, 0x00dc, 0x00ae, 0x0078, 0x0075,
+ 0x00aa, 0x00f2, 0x011e, 0x0131, 0x0152, 0x0163,
+ 0x0140, 0x0136, 0x0169, 0x018d, 0x019a, 0x01bc,
+ 0x01e9, 0x0230, 0x027b, 0x0277, 0x023f, 0x0215,
+ 0x01ed, 0x01d0, 0x01d2, 0x01d2, 0x01c9, 0x01c6,
+ 0x01c9, 0x01b3, 0x0169, 0x0138, 0x015b, 0x015d,
+ 0x0128, 0x012e, 0x014e, 0x0158, 0x017e, 0x019b,
+ 0x017a, 0x013a, 0x00fb, 0x00d7, 0x00d2, 0x00cb,
+ 0x00dc, 0x00ff, 0x00f6, 0x00e6, 0x00ef, 0x00e9,
+ 0x00f4, 0x0129, 0x013d, 0x010b, 0x00ca, 0x008f,
+ 0x004c, 0x0025, 0x0044, 0x0072, 0x0079, 0x0069,
+ 0x003c, 0xfffb, 0xffd1, 0xffc3, 0xffe4, 0x004d,
+ 0x00b7, 0x00ff, 0x0135, 0x011e, 0x00ae, 0x0030,
+ 0xffc6, 0xff7a, 0xff56, 0xff54, 0xff7a, 0xffa2,
+ 0xffab, 0xffc0, 0xffd9, 0xffbf, 0xff75, 0xff2c,
+ 0xff27, 0xff5c, 0xff7a, 0xff93, 0xffd4, 0x0016,
+ 0x003f, 0x0036, 0xfffe, 0xffe1, 0xffe2, 0xffde,
+ 0xfff6, 0x0020, 0x004e, 0x0082, 0x0096, 0x0094,
+ 0x009b, 0x0086, 0x0073, 0x0091, 0x00bd, 0x00eb,
+ 0x00f9, 0x00c9, 0x00a6, 0x00ad, 0x00c3, 0x010f,
+ 0x017b, 0x01c7, 0x01fa, 0x0205, 0x01e8, 0x01e2,
+ 0x0205, 0x0234, 0x0253, 0x0252, 0x024a, 0x024b,
+ 0x0256, 0x0274, 0x028d, 0x02ad, 0x02eb, 0x0305,
+ 0x02f7, 0x0313, 0x0344, 0x0352, 0x0364, 0x0387,
+ 0x038b, 0x035f, 0x0316, 0x02bf, 0x0274, 0x0251,
+ 0x023c, 0x0215, 0x0212, 0x0234, 0x0221, 0x01e8,
+ 0x01be, 0x016b, 0x0104, 0x00f7, 0x0128, 0x013c,
+ 0x013f, 0x0153, 0x0164, 0x014d, 0x0104, 0x00af,
+ 0x0075, 0x0045, 0x001f, 0x0022, 0x0029, 0x0003,
+ 0xffd5, 0xffba, 0xff95, 0xff68, 0xff66, 0xff7c,
+ 0xff6d, 0xff4f, 0xff4c, 0xff4f, 0xff4d, 0xff3d,
+ 0xfefd, 0xfeb1, 0xfe94, 0xfe80, 0xfe61, 0xfe5a,
+ 0xfe6f, 0xfe74, 0xfe4d, 0xfe39, 0xfe6f, 0xfea0,
+ 0xfeb0, 0xfedd, 0xfef8, 0xfede, 0xfec8, 0xfeb6,
+ 0xfebc, 0xff01, 0xff43, 0xff58, 0xff4e, 0xff26,
+ 0xff19, 0xff38, 0xff60, 0xffa8, 0xfffe, 0x003d,
+ 0x0074, 0x007b, 0x0061, 0x0088, 0x00b7, 0x00b2,
+ 0x00bf, 0x00da, 0x00dc, 0x00ec, 0x0112, 0x013c,
+ 0x016b, 0x01ac, 0x020b, 0x0247, 0x022e, 0x021e,
+ 0x0241, 0x024a, 0x0252, 0x0299, 0x02ea, 0x032f,
+ 0x0380, 0x03b2, 0x03c9, 0x040b, 0x043c, 0x041f,
+ 0x0412, 0x0453, 0x0497, 0x0486, 0x0436, 0x03fe,
+ 0x03dd, 0x03a1, 0x0385, 0x038f, 0x0365, 0x031a,
+ 0x02d2, 0x0287, 0x0277, 0x0295, 0x029f, 0x02d7,
+ 0x0321, 0x02e8, 0x0254, 0x01e6, 0x01c7, 0x01ea,
+ 0x01f1, 0x01b4, 0x01a0, 0x01a1, 0x0150, 0x0110,
+ 0x012f, 0x0137, 0x00ff, 0x00dd, 0x00cd, 0x0094,
+ 0x0044, 0x000d, 0xffd2, 0xff65, 0xfef2, 0xfeac,
+ 0xfe86, 0xfe94, 0xfeb8, 0xfe91, 0xfe36, 0xfddf,
+ 0xfd65, 0xfd10, 0xfd41, 0xfd92, 0xfdaf, 0xfd96,
+ 0xfd1f, 0xfc77, 0xfc05, 0xfbd9, 0xfbfb, 0xfc56,
+ 0xfc95, 0xfc9c, 0xfc75, 0xfc23, 0xfbf3, 0xfc07,
+ 0xfc12, 0xfbfb, 0xfc01, 0xfc1b, 0xfc0f, 0xfbee,
+ 0xfbe7, 0xfc01, 0xfc13, 0xfbf4, 0xfbcb, 0xfbcc,
+ 0xfbaf, 0xfb6e, 0xfbb9, 0xfc86, 0xfd0d, 0xfd4a,
+ 0xfdad, 0xfe01, 0xfdee, 0xfd97, 0xfd3a, 0xfcfa,
+ 0xfd0a, 0xfd54, 0xfd8e, 0xfdf4, 0xfe8d, 0xfebb,
+ 0xfeb2, 0xfee4, 0xfee9, 0xfef3, 0xff7d, 0xfff9,
+ 0x0022, 0x002c, 0xffea, 0xffa4, 0xff92, 0xff67,
+ 0xffb2, 0x00c8, 0x019b, 0x019f, 0x0154, 0x0125,
+ 0x0113, 0x0106, 0x0157, 0x023b, 0x02bf, 0x0243,
+ 0x018b, 0x0141, 0x0151, 0x018b, 0x01e3, 0x026e,
+ 0x02d4, 0x026d, 0x018a, 0x011b, 0x0131, 0x0177,
+ 0x01f7, 0x0269, 0x023f, 0x01a6, 0x0169, 0x01cf,
+ 0x0224, 0x01e4, 0x01a6, 0x01d9, 0x01f4, 0x01ad,
+ 0x0136, 0x00b1, 0x0070, 0x0078, 0x006e, 0x0059,
+ 0x0037, 0x0036, 0x00e5, 0x0188, 0x00ec, 0xffd0,
+ 0xff4d, 0xff26, 0xff0f, 0xff2a, 0xff5b, 0xff4e,
+ 0xfee1, 0xfe57, 0xfde9, 0xfdb4, 0xfde5, 0xfe15,
+ 0xfdce, 0xfd8d, 0xfd92, 0xfd70, 0xfd57, 0xfd81,
+ 0xfd76, 0xfd2e, 0xfd2a, 0xfd52, 0xfd4a, 0xfd34,
+ 0xfd2f, 0xfd45, 0xfdd3, 0xfe69, 0xfde2, 0xfcc5,
+ 0xfcac, 0xfd67, 0xfda3, 0xfd5d, 0xfda1, 0xfe3d,
+ 0xfe10, 0xfda4, 0xfe2e, 0xfee9, 0xfeff, 0xfef2,
+ 0xfee0, 0xfeb3, 0xfea3, 0xfe85, 0xfea1, 0xff73,
+ 0x0057, 0x00b9, 0x00c3, 0x0079, 0x000d, 0x0038,
+ 0x0119, 0x01bf, 0x018b, 0x0131, 0x012a, 0x00fb,
+ 0x00ae, 0x00ab, 0x00c1, 0x00e6, 0x012a, 0x0154,
+ 0x018a, 0x01e4, 0x0209, 0x01fe, 0x01fb, 0x01c3,
+ 0x016a, 0x01a2, 0x0279, 0x030d, 0x0315, 0x0326,
+ 0x037d, 0x03a9, 0x0358, 0x02d6, 0x0275, 0x01ee,
+ 0x0125, 0x009c, 0x0072, 0x0089, 0x00fe, 0x014d,
+ 0x00f3, 0x00ab, 0x00eb, 0x0117, 0x013d, 0x01da,
+ 0x022a, 0x01b1, 0x0166, 0x013e, 0x006c, 0xffeb,
+ 0x004d, 0x0067, 0x005c, 0x00fa, 0x014d, 0x00df,
+ 0x008f, 0x006f, 0x002e, 0x002a, 0x00a2, 0x0127,
+ 0x013e, 0x0105, 0x00bb, 0x0068, 0x004b, 0x0050,
+ 0xfff8, 0xff95, 0xffb5, 0xfffe, 0x0022, 0x0037,
+ 0x0007, 0xff8c, 0xff79, 0x005b, 0x0145, 0x010b,
+ 0x007d, 0x00bb, 0x00ec, 0x0076, 0x004c, 0x009e,
+ 0x00a1, 0x007d, 0x0092, 0x0050, 0xffc9, 0x001c,
+ 0x0148, 0x0218, 0x0211, 0x015c, 0x0039, 0xff5f,
+ 0xff78, 0x0064, 0x016d, 0x0212, 0x026b, 0x024b,
+ 0x0157, 0x0051, 0x0017, 0x0079, 0x0138, 0x0205,
+ 0x0235, 0x01fc, 0x0202, 0x01f6, 0x015f, 0x0099,
+ 0x004f, 0x00b3, 0x0145, 0x01ab, 0x022b, 0x0296,
+ 0x024f, 0x01b4, 0x0173, 0x0123, 0x007b, 0x002e,
+ 0x003f, 0x001f, 0x0040, 0x00d2, 0x00e4, 0x00da,
+ 0x0206, 0x0390, 0x03ef, 0x0381, 0x02c7, 0x019b,
+ 0x00e0, 0x0117, 0x0170, 0x0211, 0x031c, 0x030e,
+ 0x01a9, 0x0075, 0xfffd, 0x0051, 0x01a1, 0x02ca,
+ 0x02be, 0x01f4, 0x00fe, 0x004b, 0x005f, 0x00d9,
+ 0x010e, 0x013f, 0x0199, 0x0183, 0x00f9, 0x00d3,
+ 0x015f, 0x025f, 0x038d, 0x041e, 0x03bd, 0x0350,
+ 0x02f9, 0x0214, 0x015a, 0x016d, 0x0154, 0x00bb,
+ 0x0091, 0x0112, 0x01d2, 0x0283, 0x02d0, 0x02ea,
+ 0x0365, 0x03f4, 0x03e9, 0x038b, 0x0345, 0x02cd,
+ 0x0217, 0x0191, 0x0158, 0x0177, 0x0238, 0x036c,
+ 0x0427, 0x03d3, 0x02fb, 0x0262, 0x01ff, 0x01b7,
+ 0x01f1, 0x027f, 0x026a, 0x016c, 0x004b, 0xffd6,
+ 0x007d, 0x022a, 0x03aa, 0x03cd, 0x02cf, 0x0150,
+ 0xff7f, 0xfe50, 0xfebe, 0xffba, 0xffe3, 0xffcf,
+ 0x003f, 0x0067, 0xffe1, 0xffb9, 0x0049, 0x00ad,
+ 0x00a9, 0x0084, 0x0005, 0xffce, 0x00d1, 0x01cf,
+ 0x0184, 0x018e, 0x02ca, 0x031c, 0x01e5, 0x00db,
+ 0x0021, 0xff2f, 0xff07, 0xffdf, 0x0078, 0x00c1,
+ 0x0120, 0x00ee, 0x0040, 0x0021, 0x005b, 0x0016,
+ 0xffb2, 0xffc1, 0xffeb, 0xffbd, 0xff1c, 0xfe48,
+ 0xfe0e, 0xfef0, 0x001b, 0x0098, 0x00c9, 0x0145,
+ 0x014b, 0x002f, 0xff06, 0xfeec, 0xff55, 0xffc5,
+ 0x0082, 0x00cd, 0xffc8, 0xfe6a, 0xfdcb, 0xfdbc,
+ 0xfe44, 0xff3f, 0xff9d, 0xff71, 0xffca, 0x002e,
+ 0xffef, 0xfff6, 0x0088, 0x00c1, 0x00d2, 0x0122,
+ 0x00fe, 0x005d, 0x0042, 0x00c1, 0x0104, 0x00f8,
+ 0x0182, 0x02d4, 0x0356, 0x01d8, 0xfff8, 0xff5e,
+ 0xff0b, 0xfe57, 0xfe8a, 0xff99, 0x0035, 0x0096,
+ 0x0126, 0x0176, 0x020c, 0x0338, 0x0378, 0x0242,
+ 0x00f5, 0x004c, 0x0064, 0x0140, 0x01a3, 0x00fe,
+ 0x00e2, 0x018e, 0x0174, 0x0101, 0x0169, 0x01e0,
+ 0x01e1, 0x0217, 0x01d7, 0x0080, 0xff9c, 0xfff6,
+ 0x002d, 0xffbe, 0xffbd, 0x0080, 0x0132, 0x011a,
+ 0x0041, 0xff47, 0xfe81, 0xfdeb, 0xfdfd, 0xff05,
+ 0x0026, 0x00d0, 0x0188, 0x021d, 0x0174, 0xff9b,
+ 0xfdeb, 0xfd57, 0xfde6, 0xff25, 0x0095, 0x01f4,
+ 0x02b7, 0x0228, 0x00db, 0x002a, 0xffc3, 0xfe95,
+ 0xfd8d, 0xfdfd, 0xfef9, 0xff36, 0xff01, 0xfeec,
+ 0xff50, 0x0062, 0x00d9, 0xff5b, 0xfda3, 0xfe0c,
+ 0xffb2, 0x00bb, 0x00ff, 0x0070, 0xff35, 0xfec2,
+ 0xff47, 0xfedd, 0xfd4a, 0xfcad, 0xfdaf, 0xfe47,
+ 0xfca3, 0xfa17, 0xf9e2, 0xfc47, 0xfdff, 0xfdeb,
+ 0xfe3b, 0xff33, 0xff27, 0xfe8a, 0xfe49, 0xfd4f,
+ 0xfb83, 0xfaf9, 0xfc4b, 0xfdba, 0xfe29, 0xfe2b,
+ 0xfe6e, 0xfec0, 0xfee7, 0xff46, 0xffeb, 0x0053,
+ 0x009a, 0x0123, 0x01a2, 0x01c1, 0x014b, 0xffeb,
+ 0xfe70, 0xfe60, 0xff23, 0xff1c, 0xfeac, 0xfec0,
+ 0xff10, 0xff88, 0x001e, 0x0012, 0xff9c, 0xffba,
+ 0x0012, 0xffdd, 0xff58, 0xfeeb, 0xfea7, 0xfe60,
+ 0xfde6, 0xfe10, 0xff6c, 0x0018, 0xff19, 0xfed2,
+ 0x0029, 0x00c0, 0x0004, 0xff94, 0xff8a, 0xff64,
+ 0xff5d, 0xff67, 0xffc9, 0x00f5, 0x0204, 0x024c,
+ 0x025c, 0x0226, 0x01c3, 0x0209, 0x0223, 0x0146,
+ 0x0120, 0x01cb, 0x0145, 0x0095, 0x0169, 0x020f,
+ 0x023b, 0x03db, 0x057f, 0x0527, 0x04a6, 0x04bf,
+ 0x03cb, 0x026a, 0x018a, 0xffe6, 0xfe06, 0xfdd7,
+ 0xfe9b, 0xff4a, 0x0057, 0x00cc, 0xffcd, 0xff3c,
+ 0x0029, 0x00e5, 0x00a6, 0x0060, 0x0027, 0xff54,
+ 0xfe51, 0xfe30, 0xfeb8, 0xfed4, 0xfee8, 0xffb8,
+ 0xffe8, 0xfeb3, 0xfdff, 0xfe61, 0xfe99, 0xff4d,
+ 0x0096, 0xffd3, 0xfd4a, 0xfc3b, 0xfc0f, 0xfab2,
+ 0xfa3f, 0xfc59, 0xfe44, 0xfde1, 0xfc52, 0xfb91,
+ 0xfcb7, 0xfed4, 0xffe2, 0xffdb, 0xff5f, 0xfd66,
+ 0xfaad, 0xfa5c, 0xfc1a, 0xfc3d, 0xfaa0, 0xfa42,
+ 0xfb32, 0xfb20, 0xfaa6, 0xfc42, 0xfebc, 0xfeb3,
+ 0xfd14, 0xfd0a, 0xfdcd, 0xfd8d, 0xfd49, 0xfcd0,
+ 0xfafe, 0xfa45, 0xfc26, 0xfda0, 0xfe0c, 0xff76,
+ 0xfff7, 0xfdc5, 0xfbf7, 0xfb72, 0xf9f0, 0xf940,
+ 0xfbed, 0xff8e, 0x022a, 0x0482, 0x056b, 0x0404,
+ 0x02c7, 0x02d3, 0x02a8, 0x0238, 0x024e, 0x02b0,
+ 0x0353, 0x0399, 0x0247, 0x0084, 0x0093, 0x01bb,
+ 0x022e, 0x0232, 0x024a, 0x01ef, 0x0159, 0x010e,
+ 0x002e, 0xfe2b, 0xfd33, 0xff65, 0x0251, 0x01ff,
+ 0xffa5, 0xff35, 0x0002, 0xff2d, 0xfdee, 0xfe60,
+ 0xfef7, 0xfe23, 0xfc93, 0xfab5, 0xf985, 0xfb3f,
+ 0xfec7, 0xffcb, 0xfdce, 0xfc42, 0xfbc8, 0xfad4,
+ 0xfa9e, 0xfca8, 0xff0b, 0x0025, 0x00de, 0x00fa,
+ 0xff56, 0xfdd9, 0xff02, 0x014c, 0x0230, 0x0217,
+ 0x0240, 0x02ac, 0x034f, 0x03ee, 0x039e, 0x0275,
+ 0x01cd, 0x0227, 0x02e7, 0x03ee, 0x053c, 0x05ac,
+ 0x042c, 0x01e8, 0x00f3, 0x011b, 0x00bb, 0xffdb,
+ 0xff8c, 0xff8f, 0xfedf, 0xfcfc, 0xfa89, 0xf9d5,
+ 0xfc52, 0xff35, 0xfebb, 0xfb9d, 0xf915, 0xf85a,
+ 0xf914, 0xfad7, 0xfc67, 0xfc25, 0xfa1e, 0xf892,
+ 0xf93d, 0xfa85, 0xfa67, 0xfac6, 0xfd49, 0xfe71,
+ 0xfbd0, 0xf924, 0xf92a, 0xf9ce, 0xfaa9, 0xfdce,
+ 0x01fc, 0x041d, 0x0439, 0x03dc, 0x032a, 0x0239,
+ 0x0207, 0x02b1, 0x0317, 0x031c, 0x03de, 0x04c6,
+ 0x03fc, 0x0268, 0x025e, 0x0383, 0x04c9, 0x068b,
+ 0x07ca, 0x0756, 0x06bf, 0x064c, 0x03a3, 0xff7f,
+ 0xfce7, 0xfc4b, 0xfd82, 0x005a, 0x01b0, 0x0064,
+ 0x0083, 0x0304, 0x03dc, 0x0265, 0x0142, 0x0078,
+ 0xfedc, 0xfc7a, 0xfa6f, 0xfb66, 0xffd8, 0x033b,
+ 0x0325, 0x0286, 0x0227, 0x005f, 0xff55, 0x00fc,
+ 0x020b, 0x003c, 0xfee4, 0x013f, 0x050e, 0x056b,
+ 0x0271, 0x0195, 0x03d7, 0x046e, 0x0360, 0x0467,
+ 0x0517, 0x022d, 0xff62, 0xff4d, 0xff03, 0xfdd5,
+ 0xfdd8, 0xff13, 0x0120, 0x0343, 0x0315, 0x0109,
+ 0x0037, 0x001d, 0xfeb2, 0xfd7c, 0xfe78, 0x00fc,
+ 0x02cc, 0x0179, 0xfe36, 0xfe00, 0x012d, 0x0258,
+ 0x0026, 0xfe32, 0xfd92, 0xfcad, 0xfac2, 0xf8c5,
+ 0xf936, 0xfc41, 0xfdbd, 0xfcb2, 0xfd5e, 0xfff5,
+ 0x00ee, 0x0167, 0x03bf, 0x0614, 0x06bd, 0x05ec,
+ 0x02f9, 0xff43, 0xfe76, 0x00fa, 0x0457, 0x06a9,
+ 0x063b, 0x0310, 0x0039, 0xff4e, 0xff2a, 0x0008,
+ 0x02db, 0x0631, 0x077a, 0x0576, 0x018f, 0xff02,
+ 0xfee7, 0xffdf, 0x01ca, 0x0443, 0x049c, 0x0272,
+ 0x0016, 0xfe05, 0xfcc1, 0xfda5, 0xfe3f, 0xfc87,
+ 0xfc96, 0x0010, 0x020b, 0x0177, 0x01f7, 0x02da,
+ 0x0227, 0x01e4, 0x027d, 0x01c5, 0x0097, 0x008e,
+ 0x0050, 0xff6a, 0xffc1, 0x01d9, 0x042d, 0x0547,
+ 0x049b, 0x02bc, 0x00da, 0x000e, 0x00a0, 0x013e,
+ 0x0132, 0x0285, 0x0589, 0x068b, 0x04cb, 0x040d,
+ 0x051a, 0x05f8, 0x06a2, 0x05f8, 0x01f0, 0xfded,
+ 0xfe40, 0x0097, 0x0247, 0x04f7, 0x07ac, 0x06f9,
+ 0x0439, 0x0271, 0x0109, 0xffc7, 0x0022, 0x00e6,
+ 0xffe9, 0xfe91, 0xff3b, 0x013e, 0x02c0, 0x03ca,
+ 0x0581, 0x0747, 0x0713, 0x04ee, 0x02fc, 0x01ff,
+ 0x0198, 0x020c, 0x0285, 0x019f, 0x00cf, 0x01e2,
+ 0x02e4, 0x01bd, 0xffaa, 0xfe27, 0xfda4, 0xfef5,
+ 0x01a7, 0x03a1, 0x0417, 0x0364, 0x0177, 0xff3a,
+ 0xfe46, 0xfef5, 0x0106, 0x0376, 0x03c0, 0x016c,
+ 0xff2a, 0xfe11, 0xfd77, 0xfe78, 0x017c, 0x0430,
+ 0x052e, 0x04b5, 0x0335, 0x02c6, 0x04ce, 0x069f,
+ 0x0686, 0x0662, 0x05ec, 0x03b1, 0x022d, 0x02c7,
+ 0x0298, 0x0139, 0x00f9, 0x00a6, 0xfeae, 0xfd98,
+ 0xfef3, 0x0009, 0xff39, 0xff33, 0x0226, 0x04fb,
+ 0x04c7, 0x0560, 0x0922, 0x09d2, 0x058d, 0x047a,
+ 0x0809, 0x0909, 0x0891, 0x0b9b, 0x0dc1, 0x0bdf,
+ 0x0b94, 0x0dfe, 0x0e97, 0x0e74, 0x1068, 0x1258,
+ 0x126f, 0x1108, 0x0e36, 0x0b7a, 0x0aa3, 0x0af5,
+ 0x0b5b, 0x0b44, 0x0a20, 0x0906, 0x081d, 0x054d,
+ 0x023b, 0x0293, 0x046c, 0x04ec, 0x0532, 0x04a1,
+ 0x0257, 0x016a, 0x01d4, 0x00da, 0x0112, 0x02dd,
+ 0x0012, 0xfa47, 0xf9b8, 0xfd0a, 0xfe2f, 0xfe13,
+ 0xfeb4, 0xff43, 0xff48, 0xfc90, 0xf6ee, 0xf4ce,
+ 0xf847, 0xfb29, 0xfbcc, 0xfd08, 0xfd39, 0xfb68,
+ 0xfaf1, 0xfc5f, 0xfd66, 0xfd16, 0xfbb9, 0xfb29,
+ 0xfb10, 0xf6fb, 0xf0f6, 0xf0ea, 0xf406, 0xf2ed,
+ 0xf276, 0xf6be, 0xf842, 0xf517, 0xf3ff, 0xf4fa,
+ 0xf474, 0xf339, 0xf16d, 0xef5e, 0xef8f, 0xf07f,
+ 0xf030, 0xf11f, 0xf26c, 0xf173, 0xf192, 0xf27e,
+ 0xedae, 0xe670, 0xe71d, 0xefa6, 0xf7e6, 0xfa34,
+ 0xf66e, 0xf31c, 0xf503, 0xf71a, 0xf632, 0xf5df,
+ 0xf3ee, 0xee97, 0xf00a, 0xfcc7, 0x091d, 0x0c25,
+ 0x064c, 0xf8d5, 0xe978, 0xe1ef, 0xe5c7, 0xf335,
+ 0x0574, 0x1318, 0x170c, 0x14cd, 0x0f3d, 0x092a,
+ 0x06fb, 0x0558, 0xfff2, 0xfdb4, 0x0201, 0x048b,
+ 0x0360, 0x0307, 0x0088, 0xf9f7, 0xf4d8, 0xf3b9,
+ 0xf7ef, 0x045c, 0x12e0, 0x1965, 0x1866, 0x1488,
+ 0x0e54, 0x0662, 0xfd9e, 0xf65e, 0xf621, 0xfb0a,
+ 0xfb77, 0xf54b, 0xeac9, 0xda8c, 0xcc55, 0xce4c,
+ 0xde14, 0xee1f, 0xf986, 0x00d4, 0x0514, 0x094b,
+ 0x0a62, 0x0218, 0xf5f3, 0xf037, 0xf1fb, 0xf821,
+ 0xfd1b, 0xf706, 0xe525, 0xd39e, 0xcb21, 0xccc7,
+ 0xd8e3, 0xed09, 0x0379, 0x1562, 0x1a88, 0x1180,
+ 0x030f, 0xf3a6, 0xe358, 0xdbc1, 0xe36a, 0xef3f,
+ 0xf61d, 0xfc52, 0x030e, 0x05ef, 0x04da, 0x0056,
+ 0xf93d, 0xf52a, 0xf62e, 0xf7ea, 0xf869, 0xf729,
+ 0xf3f2, 0xf472, 0xfbae, 0x027f, 0x052d, 0x075b,
+ 0x0889, 0x07c8, 0x08ac, 0x0978, 0x065c, 0x039c,
+ 0x03d5, 0x02b3, 0x00ac, 0x0196, 0x03b7, 0x056e,
+ 0x084c, 0x0b62, 0x0ca5, 0x0b38, 0x06a5, 0x0206,
+ 0x008a, 0x0023, 0x0222, 0x0b7a, 0x165a, 0x1924,
+ 0x170f, 0x1587, 0x1154, 0x0aaa, 0x0844, 0x0c47,
+ 0x1300, 0x181f, 0x19ca, 0x1963, 0x1760, 0x144b,
+ 0x155a, 0x1c02, 0x21bd, 0x2448, 0x24f5, 0x20b1,
+ 0x19b9, 0x180b, 0x1b2d, 0x1eed, 0x22b6, 0x23c6,
+ 0x22d3, 0x2522, 0x2778, 0x26f1, 0x2946, 0x2b91,
+ 0x289b, 0x27df, 0x272e, 0x1ac4, 0x0c16, 0x0892,
+ 0x0a01, 0x0e82, 0x1a18, 0x23f2, 0x2896, 0x2dfa,
+ 0x2ff6, 0x2d6d, 0x2cd9, 0x290b, 0x20af, 0x1e57,
+ 0x1ec7, 0x1cda, 0x20cf, 0x2466, 0x1c6c, 0x15ef,
+ 0x1834, 0x17fd, 0x17e5, 0x1ce3, 0x1d33, 0x18e0,
+ 0x1620, 0x12fa, 0x1519, 0x1d22, 0x1bed, 0x15c1,
+ 0x16a4, 0x0e81, 0xf8d2, 0xec73, 0xea56, 0xeb9d,
+ 0xfcbe, 0x12e5, 0x1547, 0x10ca, 0x159b, 0x16e9,
+ 0x11a6, 0x0ed5, 0x0bc1, 0x073d, 0x015e, 0xf59e,
+ 0xeb4f, 0xe794, 0xe1b4, 0xdff7, 0xeba8, 0xf4ef,
+ 0xf607, 0xfc54, 0x00c3, 0xfbea, 0xfd08, 0x0110,
+ 0xf7ed, 0xeea2, 0xf222, 0xf5a2, 0xf54d, 0xf801,
+ 0xf9cf, 0xfbb0, 0x0272, 0x02c5, 0xf68d, 0xebe5,
+ 0xe9fa, 0xeb24, 0xeeb9, 0xf50d, 0xf9ec, 0xfc45,
+ 0xfc90, 0xf78c, 0xea29, 0xd7f9, 0xca03, 0xc2bf,
+ 0xbd0d, 0xba77, 0xbeff, 0xc595, 0xca38, 0xce98,
+ 0xd23c, 0xd3c8, 0xd1bc, 0xcda7, 0xce75, 0xd0bd,
+ 0xcdc3, 0xd0ef, 0xdbc7, 0xdcb7, 0xdc80, 0xe90c,
+ 0xeb10, 0xddb1, 0xddb9, 0xe15d, 0xd268, 0xc9a8,
+ 0xd18c, 0xcf58, 0xc960, 0xd113, 0xd1ff, 0xc942,
+ 0xcf5a, 0xd7c4, 0xce4e, 0xc847, 0xcf4c, 0xce25,
+ 0xc92e, 0xcf8d, 0xd13c, 0xc861, 0xca2d, 0xd1f4,
+ 0xcaaf, 0xc01d, 0xc44b, 0xcbd1, 0xccf2, 0xd3dc,
+ 0xe21e, 0xe6fd, 0xe408, 0xe62f, 0xe29e, 0xd48e,
+ 0xcf5c, 0xcf35, 0xc750, 0xc6dd, 0xcf1b, 0xd180,
+ 0xd24a, 0xcd8e, 0xc27a, 0xc5f2, 0xcb6c, 0xc0ab,
+ 0xc34d, 0xd355, 0xce26, 0xc7b5, 0xd41c, 0xd180,
+ 0xc2bb, 0xcd5f, 0xdb26, 0xce8d, 0xcaa2, 0xd8bf,
+ 0xcf6d, 0xc057, 0xd0bf, 0xdbd3, 0xd1c5, 0xd717,
+ 0xde65, 0xd60f, 0xd932, 0xdf9b, 0xd785, 0xd68e,
+ 0xdda2, 0xe081, 0xe564, 0xe60f, 0xe223, 0xe79e,
+ 0xefb0, 0xf28b, 0xf430, 0xf2b0, 0xeff0, 0xef2e,
+ 0xeeb5, 0xecf1, 0xe6b4, 0xe5cf, 0xf119, 0xf518,
+ 0xf2fa, 0xfd5f, 0x0554, 0x01e2, 0x017e, 0x00ba,
+ 0xfc7f, 0xfc33, 0xfdfa, 0xff02, 0xfc73, 0xfc5c,
+ 0x058b, 0x047a, 0xfd57, 0x0c2e, 0x183b, 0x0fc6,
+ 0x14a2, 0x216b, 0x1d53, 0x179a, 0x1844, 0x18bf,
+ 0x17b5, 0x1777, 0x21fe, 0x26d8, 0x1892, 0x1ad9,
+ 0x26bb, 0x16c6, 0x0f99, 0x219f, 0x238c, 0x24f8,
+ 0x3946, 0x3dc8, 0x32d9, 0x33ae, 0x39fd, 0x3821,
+ 0x3152, 0x2c79, 0x26ae, 0x2553, 0x305e, 0x2b58,
+ 0x15c8, 0x1e69, 0x2d18, 0x21e5, 0x2bbd, 0x3ca1,
+ 0x29ae, 0x2422, 0x32c0, 0x2876, 0x2187, 0x2adf,
+ 0x2820, 0x2780, 0x2f10, 0x32ac, 0x3767, 0x3822,
+ 0x3c8e, 0x4a34, 0x4444, 0x3551, 0x392f, 0x378a,
+ 0x2ad6, 0x2c43, 0x3584, 0x37e8, 0x35c7, 0x399d,
+ 0x3f95, 0x34d9, 0x2db0, 0x3cfb, 0x3ee6, 0x37d5,
+ 0x441f, 0x40eb, 0x2bb4, 0x2b44, 0x2ed1, 0x2b63,
+ 0x3074, 0x31e1, 0x2ef6, 0x2ba9, 0x2217, 0x24f1,
+ 0x2e9e, 0x2c63, 0x339c, 0x37af, 0x23dc, 0x2362,
+ 0x342c, 0x2b75, 0x2731, 0x3720, 0x3261, 0x2275,
+ 0x22f8, 0x2106, 0x1af7, 0x2610, 0x2fbd, 0x2418,
+ 0x1f4a, 0x270e, 0x1cd8, 0x17ef, 0x2df6, 0x2bd6,
+ 0x167c, 0x2882, 0x3cca, 0x2ad1, 0x237b, 0x2f10,
+ 0x310a, 0x3d9d, 0x4df6, 0x41dd, 0x35ed, 0x3f8b,
+ 0x4178, 0x40c2, 0x51ba, 0x5849, 0x4c24, 0x4e72,
+ 0x57d4, 0x535e, 0x54c8, 0x5e5c, 0x5e29, 0x5bc3,
+ 0x578f, 0x4e9e, 0x5119, 0x55c6, 0x4ed0, 0x4d07,
+ 0x4c6f, 0x400d, 0x3b54, 0x42f3, 0x43a5, 0x3f1e,
+ 0x40af, 0x4072, 0x34ab, 0x2eb3, 0x39da, 0x3b6b,
+ 0x30e8, 0x329b, 0x2e98, 0x1e3b, 0x2008, 0x2689,
+ 0x1d91, 0x17ac, 0x14a6, 0x0f4d, 0x0f3c, 0x0c08,
+ 0x0630, 0xffcd, 0xf0a2, 0xe67c, 0xe304, 0xdba9,
+ 0xddc3, 0xdec7, 0xd73b, 0xe025, 0xe14b, 0xce2c,
+ 0xd666, 0xe594, 0xd848, 0xd750, 0xe342, 0xddbe,
+ 0xd7cf, 0xd729, 0xd8f7, 0xddc8, 0xd478, 0xd179,
+ 0xe728, 0xf36f, 0xf474, 0xf799, 0xf2da, 0xf732,
+ 0xfe64, 0xef3c, 0xe9f9, 0xf6a1, 0xf652, 0xf739,
+ 0x021e, 0x0934, 0x0ba5, 0x0279, 0xfe94, 0x0b28,
+ 0x068e, 0x02b2, 0x17a6, 0x15b3, 0x092d, 0x1a70,
+ 0x1d66, 0x0f57, 0x17e5, 0x1bc7, 0x1256, 0x127c,
+ 0x1019, 0x112d, 0x1f16, 0x23f6, 0x2495, 0x2bae,
+ 0x28d0, 0x1db9, 0x20c6, 0x3720, 0x43b3, 0x3281,
+ 0x2432, 0x271a, 0x23cf, 0x2764, 0x3614, 0x35b6,
+ 0x3297, 0x31cb, 0x27a1, 0x2b6a, 0x3423, 0x2bb5,
+ 0x2fcd, 0x3530, 0x236e, 0x28f5, 0x4276, 0x3cc3,
+ 0x3312, 0x3ecd, 0x41ed, 0x3ab8, 0x3602, 0x323d,
+ 0x349d, 0x3949, 0x39d7, 0x38f8, 0x3214, 0x28ba,
+ 0x2677, 0x2771, 0x29ab, 0x280e, 0x1dc9, 0x1ab3,
+ 0x1cb7, 0x1056, 0x05f2, 0x0952, 0x03db, 0xf969,
+ 0xfc4a, 0x009a, 0x0018, 0x021e, 0x019f, 0x004a,
+ 0x0204, 0xf896, 0xe406, 0xd82f, 0xd813, 0xdf65,
+ 0xedf0, 0xf4ae, 0xee2f, 0xedb2, 0xf137, 0xe9ae,
+ 0xe4d6, 0xe684, 0xdc3e, 0xd2ca, 0xdc01, 0xe6c9,
+ 0xea6e, 0xeb17, 0xe36d, 0xdce7, 0xdab6, 0xcb26,
+ 0xbd55, 0xc3d8, 0xc568, 0xc1b8, 0xd26d, 0xe2e4,
+ 0xe035, 0xdf3a, 0xe132, 0xddd8, 0xe3a9, 0xee1e,
+ 0xe6f9, 0xd572, 0xd21d, 0xde5f, 0xe3d7, 0xdabd,
+ 0xd668, 0xdbdb, 0xdc93, 0xdab1, 0xdae0, 0xd8b9,
+ 0xda78, 0xd82f, 0xc3ba, 0xbbda, 0xd09a, 0xd6ed,
+ 0xce09, 0xdc93, 0xe84d, 0xd6a1, 0xcc4e, 0xce93,
+ 0xc358, 0xbc38, 0xc855, 0xd458, 0xd5f8, 0xd51a,
+ 0xdfdc, 0xecaf, 0xdec6, 0xcd66, 0xd6a4, 0xd453,
+ 0xc4a5, 0xd5bb, 0xe83f, 0xdce8, 0xe058, 0xf010,
+ 0xe567, 0xd6bb, 0xd571, 0xd02d, 0xcdce, 0xd553,
+ 0xda33, 0xde7b, 0xe65e, 0xe68f, 0xdc85, 0xd662,
+ 0xdc96, 0xe533, 0xe3e0, 0xdf1a, 0xe2b2, 0xe3f6,
+ 0xdb49, 0xdf06, 0xeb46, 0xde9e, 0xcf97, 0xdc9e,
+ 0xe1eb, 0xd8ed, 0xdfbb, 0xde82, 0xcc30, 0xc929,
+ 0xcc5b, 0xcc41, 0xd4da, 0xd682, 0xd1b7, 0xd576,
+ 0xd724, 0xdc8d, 0xe295, 0xcf12, 0xbef1, 0xcf1f,
+ 0xdb28, 0xd698, 0xd671, 0xd5e2, 0xd314, 0xd6b4,
+ 0xd877, 0xd027, 0xc860, 0xce01, 0xd4c6, 0xcff4,
+ 0xd318, 0xdee0, 0xd69d, 0xc2d5, 0xbeb9, 0xc7a8,
+ 0xcd59, 0xc623, 0xc01a, 0xcc3e, 0xd787, 0xd714,
+ 0xdb1b, 0xdc7a, 0xd1ee, 0xcb97, 0xcf47, 0xd381,
+ 0xd399, 0xd4be, 0xd74c, 0xd08f, 0xcd9c, 0xd960,
+ 0xd59e, 0xc926, 0xd465, 0xd7ee, 0xc901, 0xce4d,
+ 0xd90a, 0xd871, 0xdff7, 0xe07c, 0xd4e0, 0xd340,
+ 0xd182, 0xcec7, 0xd715, 0xdbb5, 0xdebe, 0xe5e9,
+ 0xdff5, 0xd90c, 0xe257, 0xea4b, 0xeba7, 0xef4e,
+ 0xefee, 0xeb90, 0xea1b, 0xee46, 0xf012, 0xee41,
+ 0xf3a7, 0xf877, 0xf1da, 0xef87, 0xf3ae, 0xf018,
+ 0xed2e, 0xf438, 0xfc2a, 0xfab7, 0xf4a8, 0xf983,
+ 0xfb8c, 0xeb8c, 0xeec8, 0x0a85, 0x0cae, 0xfcae,
+ 0xfaf1, 0xfb8a, 0xfe8a, 0x0626, 0x01ec, 0xffb7,
+ 0x0703, 0x0273, 0xfaa5, 0xffd2, 0x069d, 0x0829,
+ 0x0893, 0x0bdd, 0x0d70, 0x0257, 0xf689, 0xf755,
+ 0xf688, 0xf61a, 0x0358, 0x0b0d, 0xfffc, 0xf545,
+ 0xf8e0, 0x06d2, 0x11c7, 0x10eb, 0x0d1e, 0x0a0c,
+ 0xfffb, 0xf8a8, 0xfd28, 0xfde6, 0xf7f5, 0xf9ca,
+ 0xfbd1, 0xf73c, 0xfc8e, 0x07fa, 0x08c3, 0x09a6,
+ 0x0ab2, 0xf849, 0xe71e, 0xf509, 0x04fa, 0xf9ba,
+ 0xf2a9, 0xffe6, 0xfd2e, 0xee98, 0xfa20, 0x049e,
+ 0xf142, 0xe8ad, 0xf35d, 0xf0fe, 0xee8b, 0xf5bb,
+ 0xf1f8, 0xe6c2, 0xdd83, 0xdcbb, 0xee24, 0xf96f,
+ 0xeed7, 0xeeec, 0x0014, 0x0040, 0xeab6, 0xdd62,
+ 0xe1d8, 0xe20f, 0xe0d9, 0xee5e, 0xf029, 0xe313,
+ 0xe779, 0xe9e9, 0xe2d7, 0xf050, 0xf77a, 0xee09,
+ 0xf654, 0xf7c4, 0xee2a, 0xfedd, 0x04f5, 0xedfc,
+ 0xe98f, 0xf1bc, 0xf3c5, 0xfab3, 0xfad0, 0xf96f,
+ 0x0350, 0x0355, 0xfd28, 0x008e, 0x01d2, 0x022e,
+ 0x0894, 0x0d85, 0x0b6a, 0x041f, 0x0783, 0x11cf,
+ 0x09f5, 0x00f4, 0x0454, 0xfc15, 0xf50b, 0xfd47,
+ 0x00f9, 0x0609, 0x0c4f, 0x0ae7, 0x14bd, 0x1acd,
+ 0x12b1, 0x1df8, 0x2564, 0x175c, 0x21eb, 0x2cb7,
+ 0x168c, 0x1181, 0x1b90, 0x13ca, 0x142b, 0x19ac,
+ 0x1697, 0x2267, 0x2c1b, 0x225d, 0x22de, 0x29ee,
+ 0x238d, 0x20c7, 0x29e7, 0x2c46, 0x1e15, 0x13e6,
+ 0x1cdf, 0x1995, 0x011e, 0xfd6d, 0x08c1, 0x05fc,
+ 0x0d28, 0x1f6f, 0x1b0f, 0x0e25, 0x0d1b, 0x09e3,
+ 0x0764, 0x0dd8, 0x1025, 0x0f1f, 0x1081, 0x079a,
+ 0xfbcb, 0xfe9f, 0xfc6e, 0xee24, 0xf168, 0xfaca,
+ 0xf0de, 0xf102, 0x0181, 0x019e, 0xff45, 0x0501,
+ 0xf91c, 0xeff8, 0xff62, 0x0448, 0xf896, 0xf3de,
+ 0xef86, 0xf04e, 0x0036, 0x06d7, 0x00d4, 0x047b,
+ 0x0893, 0x00a4, 0xfb2e, 0x01a6, 0x0b64, 0x095c,
+ 0xfde9, 0xffb3, 0x0b51, 0x0a74, 0x0635, 0x0afe,
+ 0x11f2, 0x1b58, 0x1e22, 0x1313, 0x0f27, 0x0c33,
+ 0xfb22, 0x0274, 0x2297, 0x236b, 0x13ec, 0x19c3,
+ 0x1ced, 0x1de9, 0x2a2c, 0x2079, 0x0dca, 0x1e37,
+ 0x2dd6, 0x1ea6, 0x1e1c, 0x31af, 0x2b57, 0x1348,
+ 0x11ea, 0x220c, 0x2a07, 0x29fb, 0x29e3, 0x26ee,
+ 0x1f84, 0x1758, 0x18cb, 0x2b8b, 0x3967, 0x2c49,
+ 0x1f82, 0x2d29, 0x3d38, 0x3b6e, 0x33f8, 0x3338,
+ 0x3ac5, 0x3d43, 0x2f1a, 0x2958, 0x3aa4, 0x3e17,
+ 0x2ef6, 0x357f, 0x3ff9, 0x2fa9, 0x2cc6, 0x3de2,
+ 0x34f0, 0x2cb4, 0x40c8, 0x3c31, 0x2340, 0x2aa7,
+ 0x3616, 0x2df1, 0x2f38, 0x2e8f, 0x24b8, 0x2c7b,
+ 0x34fa, 0x2d57, 0x2c56, 0x308a, 0x3175, 0x3763,
+ 0x3a0a, 0x3808, 0x3849, 0x2f80, 0x2669, 0x2ca8,
+ 0x2c58, 0x21e6, 0x2a8a, 0x3a37, 0x328b, 0x258d,
+ 0x265e, 0x1fe7, 0x11e7, 0x13e9, 0x15eb, 0x0aa0,
+ 0x0e8e, 0x199f, 0x0c3e, 0x03db, 0x1860, 0x2418,
+ 0x1c01, 0x1c7a, 0x2053, 0x178b, 0x1429, 0x1fff,
+ 0x24f8, 0x1d23, 0x18e3, 0x180d, 0x1800, 0x2089,
+ 0x2b32, 0x30d4, 0x32e2, 0x2f57, 0x31df, 0x3a6e,
+ 0x3035, 0x22ee, 0x28f9, 0x2626, 0x1c8f, 0x24b1,
+ 0x259c, 0x1f7a, 0x2a74, 0x26e9, 0x11c5, 0x1a47,
+ 0x2e39, 0x2640, 0x1b17, 0x1ee5, 0x1cf5, 0x1673,
+ 0x1c65, 0x22cc, 0x1c6f, 0x1bd2, 0x268a, 0x2774,
+ 0x2113, 0x216c, 0x21fb, 0x1d75, 0x1390, 0x07ba,
+ 0x038a, 0x001b, 0xfb5a, 0x0291, 0x0686, 0xfc3a,
+ 0xfcd5, 0x07c2, 0x0590, 0xf9fc, 0xf363, 0xf4d9,
+ 0xf39f, 0xea34, 0xe8b6, 0xef25, 0xf0a2, 0xf235,
+ 0xefb4, 0xeee3, 0x0126, 0x06ef, 0xf69f, 0xfe97,
+ 0x0faa, 0x07d8, 0x0372, 0x08c8, 0x07fa, 0x044b,
+ 0xf615, 0xedf7, 0xfe45, 0x03e5, 0xfa9a, 0xfe60,
+ 0x02c1, 0x0363, 0x059e, 0xfc6a, 0xf477, 0xf7ea,
+ 0xf87f, 0xf6f9, 0xf567, 0xfb1a, 0x0b71, 0x0a51,
+ 0x0303, 0x1404, 0x1d49, 0x1786, 0x1bf1, 0x146f,
+ 0x0645, 0x0aed, 0x0b43, 0x09d1, 0x10ea, 0x08be,
+ 0x049f, 0x1218, 0x1374, 0x16d6, 0x2597, 0x234c,
+ 0x16fe, 0x0b09, 0x02fb, 0x0c74, 0x0d11, 0x0090,
+ 0x0c63, 0x1786, 0x0c3e, 0x0c91, 0x147e, 0x1893,
+ 0x1fad, 0x19cd, 0x15d9, 0x23d0, 0x2408, 0x1a5c,
+ 0x197d, 0x1708, 0x1c73, 0x21fb, 0x175b, 0x17cf,
+ 0x2106, 0x20cd, 0x249f, 0x1dbb, 0x0ede, 0x1718,
+ 0x18d3, 0x0991, 0x0df4, 0x177d, 0x17f8, 0x17d1,
+ 0x0e00, 0x0ffc, 0x1fee, 0x16b6, 0x0c36, 0x176a,
+ 0x14f4, 0x0b1c, 0x0c5c, 0x08d9, 0x04a7, 0xffea,
+ 0xf3dc, 0xf0ac, 0xf28a, 0xf447, 0x011b, 0x067a,
+ 0x0277, 0x0bcc, 0x0b73, 0xf89d, 0xf642, 0xfe0f,
+ 0xfbdb, 0xf891, 0xf1ea, 0xef77, 0x0101, 0x0cb8,
+ 0x049a, 0x055d, 0x1019, 0x0d43, 0x0118, 0xfcc1,
+ 0x009b, 0xff29, 0xf202, 0xe584, 0xe77c, 0xf3b6,
+ 0xf8cc, 0xf329, 0xf22c, 0xf47f, 0xf019, 0xeff5,
+ 0xf2a1, 0xee59, 0xf156, 0xf1d7, 0xddfd, 0xdc4e,
+ 0xf7ae, 0xf9de, 0xe6f6, 0xee47, 0xf8ed, 0xeabc,
+ 0xe853, 0xfa60, 0xfd56, 0xf7cb, 0xf9ed, 0xf3cd,
+ 0xec70, 0xeea1, 0xeb14, 0xea98, 0xf354, 0xf0bf,
+ 0xec45, 0xeec0, 0xea02, 0xec06, 0xf4b6, 0xec60,
+ 0xeacb, 0xfac5, 0xf0e0, 0xd778, 0xe169, 0xf784,
+ 0xf20e, 0xeec0, 0xf915, 0xeeef, 0xe340, 0xefc2,
+ 0xf382, 0xed2d, 0xf2d4, 0xf213, 0xead1, 0xe741,
+ 0xdf3e, 0xe4c8, 0xf404, 0xef05, 0xe88d, 0xe972,
+ 0xdfa3, 0xdcc0, 0xe1c9, 0xdd28, 0xe016, 0xe747,
+ 0xda73, 0xca30, 0xcc5e, 0xd566, 0xd798, 0xd9b0,
+ 0xe134, 0xe709, 0xeb52, 0xed2c, 0xe8ae, 0xe5cb,
+ 0xdca6, 0xcb7e, 0xcd68, 0xd530, 0xce2c, 0xd3b9,
+ 0xded5, 0xd863, 0xd6c7, 0xda28, 0xd1c7, 0xc88f,
+ 0xc7e4, 0xd3d1, 0xdbd1, 0xcedc, 0xcd5a, 0xdbd5,
+ 0xd87a, 0xd81b, 0xe9ea, 0xee13, 0xe5e0, 0xe563,
+ 0xe76b, 0xe659, 0xeb40, 0xf760, 0xf403, 0xe3ec,
+ 0xe569, 0xe9ca, 0xe35a, 0xe71a, 0xe8c4, 0xe450,
+ 0xeab7, 0xe475, 0xd5fa, 0xddd5, 0xe532, 0xe0b2,
+ 0xdd6e, 0xd3c5, 0xd040, 0xd9ff, 0xdbac, 0xd9c2,
+ 0xdc5e, 0xdb94, 0xda7d, 0xdb11, 0xdd56, 0xde35,
+ 0xd8a3, 0xda4f, 0xe1b1, 0xdc0a, 0xd39b, 0xd21f,
+ 0xd01e, 0xcf4c, 0xd3ca, 0xe080, 0xe777, 0xd8b5,
+ 0xcf65, 0xd6a7, 0xd56c, 0xd668, 0xdcf1, 0xd4ac,
+ 0xd27a, 0xdb33, 0xd613, 0xd515, 0xe13f, 0xe1a5,
+ 0xd8a9, 0xd250, 0xd38c, 0xe294, 0xed16, 0xe728,
+ 0xe5f6, 0xe82e, 0xda75, 0xcafe, 0xc86e, 0xca15,
+ 0xd3ea, 0xe1e6, 0xdd5f, 0xd479, 0xd977, 0xd6bb,
+ 0xd0e0, 0xd9fd, 0xdbc1, 0xd536, 0xda31, 0xdfac,
+ 0xe3e6, 0xe5f7, 0xd480, 0xc801, 0xd565, 0xd855,
+ 0xcb98, 0xd35b, 0xe502, 0xe198, 0xd680, 0xd609,
+ 0xd441, 0xd19d, 0xda70, 0xdf23, 0xd515, 0xcce1,
+ 0xcdbc, 0xd176, 0xcd1c, 0xc0f3, 0xc54c, 0xd6f3,
+ 0xdd02, 0xdf94, 0xddd7, 0xd137, 0xd43b, 0xe042,
+ 0xddbb, 0xdf1e, 0xe21d, 0xdb65, 0xdf53, 0xe52c,
+ 0xe084, 0xe35e, 0xe897, 0xea0d, 0xeb6d, 0xe107,
+ 0xdd0d, 0xebd5, 0xe94d, 0xda84, 0xe026, 0xea6f,
+ 0xed0a, 0xed98, 0xe54f, 0xde64, 0xe309, 0xe677,
+ 0xe541, 0xe15d, 0xdd0d, 0xe254, 0xea65, 0xeae0,
+ 0xe8de, 0xe1b9, 0xd909, 0xdcb8, 0xe4c6, 0xe887,
+ 0xe99a, 0xe2b9, 0xe021, 0xe941, 0xe4f0, 0xd871,
+ 0xde7f, 0xe78a, 0xe623, 0xe575, 0xe36b, 0xe252,
+ 0xe643, 0xe1b1, 0xd738, 0xd7bb, 0xe2a4, 0xeb3b,
+ 0xeaf4, 0xed2a, 0xf476, 0xf142, 0xf051, 0xfac0,
+ 0xf4fe, 0xe9ba, 0xf2fe, 0xf813, 0xf0cb, 0xee8b,
+ 0xebb0, 0xebc5, 0xef7b, 0xe959, 0xe904, 0xf1bd,
+ 0xed48, 0xe7d1, 0xed84, 0xf08b, 0xf0f2, 0xeec3,
+ 0xe6a7, 0xe405, 0xe8da, 0xed50, 0xee99, 0xed6c,
+ 0xf06d, 0xf602, 0xfaa7, 0x03ab, 0x03e3, 0xf762,
+ 0xf74c, 0xfcc5, 0xf925, 0xfebd, 0x0385, 0xf8ea,
+ 0xf980, 0x0244, 0xfed9, 0x0037, 0x04d3, 0xfafa,
+ 0xf292, 0xf806, 0x0214, 0x0314, 0xf577, 0xf182,
+ 0xfe59, 0xfdcf, 0xf9fa, 0x0472, 0x02f4, 0x003a,
+ 0x103e, 0x10c0, 0x04b7, 0x075a, 0x00c8, 0xf507,
+ 0xfe21, 0x00f9, 0xf4ce, 0xf44c, 0xfc4a, 0x02e6,
+ 0x0440, 0xfd9d, 0xfc85, 0xfbb2, 0xf327, 0xfbc1,
+ 0x0c10, 0x0409, 0xfaa5, 0x01d0, 0x009c, 0xf98d,
+ 0x00b7, 0x0a4b, 0x07cb, 0x00df, 0xfa5f, 0xf28c,
+ 0xf21f, 0xf8cf, 0xf903, 0xfafc, 0x04e5, 0x0248,
+ 0xf7f9, 0xf93b, 0xf91d, 0xf4b2, 0xf91c, 0xf8b3,
+ 0xed6d, 0xeca6, 0xfa88, 0x05aa, 0x04c0, 0x01b1,
+ 0x0b1c, 0x170c, 0x0ec3, 0xfe33, 0x02df, 0x10d8,
+ 0x101a, 0x0fb1, 0x15ce, 0x12a6, 0x11a1, 0x1559,
+ 0x0ff6, 0x12d1, 0x1927, 0x0c5c, 0x0808, 0x103d,
+ 0x09af, 0x0a93, 0x1607, 0x1018, 0x0861, 0x049b,
+ 0xfca1, 0x02ee, 0x0d73, 0x0f63, 0x1880, 0x19d0,
+ 0x0b02, 0x038d, 0x00b5, 0xff92, 0x09d5, 0x127a,
+ 0x1155, 0x0e03, 0x0fb7, 0x186c, 0x1a44, 0x12c3,
+ 0x0f97, 0x0f11, 0x13a2, 0x1d9e, 0x1bfa, 0x15a6,
+ 0x15a5, 0x0fd0, 0x08e7, 0x0a44, 0x0c6c, 0x0d5c,
+ 0x0e1d, 0x11df, 0x189c, 0x1796, 0x1327, 0x14e7,
+ 0x1a2b, 0x2224, 0x20bb, 0x102e, 0x093a, 0x1282,
+ 0x1810, 0x1349, 0x0ea2, 0x1366, 0x1193, 0x001b,
+ 0xfab1, 0x02cd, 0x07d1, 0x1237, 0x15b7, 0x0e92,
+ 0x14ea, 0x17f1, 0x10d3, 0x180a, 0x1ee0, 0x2014,
+ 0x23df, 0x16f9, 0x0b6d, 0x12c1, 0x117d, 0x1146,
+ 0x1c11, 0x1715, 0x0bb3, 0x08ef, 0x06a4, 0x0a02,
+ 0x0fef, 0x1123, 0x12fa, 0x14b7, 0x187e, 0x1c21,
+ 0x177a, 0x0ffb, 0x0871, 0x057b, 0x07db, 0x008f,
+ 0xfd29, 0x07fd, 0x0b07, 0x1101, 0x1b7b, 0x104d,
+ 0x08e7, 0x1126, 0x0de0, 0x0deb, 0x1769, 0x19a0,
+ 0x19d2, 0x10be, 0x0962, 0x1871, 0x1a97, 0x0a4f,
+ 0x0c29, 0x1047, 0x09cd, 0x0e63, 0x1b25, 0x23a2,
+ 0x2524, 0x2158, 0x1b13, 0x1113, 0x1016, 0x1bc7,
+ 0x1e7c, 0x1959, 0x18f9, 0x18a1, 0x13f5, 0x0b5f,
+ 0x0ce6, 0x15e7, 0x0ac4, 0x0130, 0x0dc1, 0x0e1b,
+ 0x0b1c, 0x19d0, 0x1e8d, 0x198e, 0x139c, 0x0944,
+ 0x0de8, 0x145f, 0x0d08, 0x0f9b, 0x11a6, 0x0b47,
+ 0x0deb, 0x095a, 0x02f8, 0x0af4, 0x0925, 0x0508,
+ 0x0ca9, 0x0c43, 0x0aaf, 0x0a88, 0x049e, 0x0c01,
+ 0x12cf, 0x0659, 0x0113, 0x065b, 0x069d, 0x05ff,
+ 0x076b, 0x0c85, 0x0cf9, 0x0477, 0x0721, 0x0ec0,
+ 0x093a, 0x0643, 0x065c, 0xfca3, 0xf7c6, 0xfdac,
+ 0x001f, 0x0013, 0x07be, 0x0f61, 0x0df8, 0x10e2,
+ 0x14d1, 0x08d2, 0x02b3, 0x0b0b, 0x05eb, 0xfb9c,
+ 0xff57, 0x08a0, 0x1070, 0x0eb1, 0x0ac7, 0x124d,
+ 0x119e, 0x0aef, 0x1387, 0x1836, 0x12c8, 0x0d24,
+ 0xfe06, 0xf5b4, 0xfb68, 0xf6e7, 0xf717, 0x0ace,
+ 0x1786, 0x1685, 0x1116, 0x059e, 0xfc34, 0xfedf,
+ 0x0778, 0x0c60, 0x117e, 0x168c, 0x0fb7, 0x0835,
+ 0x0ada, 0x0abb, 0x112f, 0x1ca2, 0x0fb6, 0x0072,
+ 0x0907, 0x0fe4, 0x1260, 0x190d, 0x147d, 0x0bec,
+ 0x0d72, 0x13af, 0x174d, 0x139c, 0x1454, 0x1f36,
+ 0x1f3f, 0x1557, 0x13ba, 0x16d1, 0x17f6, 0x14a6,
+ 0x0c57, 0x06fb, 0x0822, 0x0bc0, 0x0af3, 0x09c3,
+ 0x137c, 0x19ca, 0x158f, 0x18a5, 0x1707, 0x0b63,
+ 0x0e34, 0x1251, 0x0d14, 0x1306, 0x1623, 0x0a22,
+ 0x0449, 0x06f6, 0x0a94, 0x0e70, 0x10bd, 0x15a9,
+ 0x1829, 0x13cc, 0x12d6, 0x11fe, 0x0ce7, 0x0d13,
+ 0x0f74, 0x0cf7, 0x0cce, 0x168f, 0x1f00, 0x1489,
+ 0x032e, 0xfc9d, 0xfa0d, 0xfd42, 0x07e0, 0x0ec6,
+ 0x132e, 0x0d5d, 0xfd01, 0xfcd6, 0x0539, 0x05f0,
+ 0x0c1d, 0x0dc0, 0x09dd, 0x10ab, 0x0981, 0xf58e,
+ 0xf8d8, 0x03ac, 0x0126, 0xfcd5, 0xf8f8, 0xf853,
+ 0xfd18, 0xff99, 0x001f, 0x01f0, 0x07c7, 0x0a17,
+ 0x00c1, 0x013d, 0x0c02, 0x057d, 0x0095, 0x0c84,
+ 0x0a54, 0xfe11, 0x02ca, 0x0e0d, 0x1181, 0x135a,
+ 0x1729, 0x13a4, 0x055e, 0xf9e7, 0xf740, 0xf855,
+ 0xfc32, 0xfe83, 0xfdba, 0xfee7, 0x037a, 0x0a40,
+ 0x0bdf, 0x09d5, 0x0b61, 0x0132, 0xf0aa, 0xf3f4,
+ 0xfa78, 0xfcbb, 0x090e, 0x065a, 0xf6de, 0xfb45,
+ 0x00e9, 0xfea8, 0x057d, 0x062e, 0xfde7, 0xfbbb,
+ 0xfc2d, 0xfc45, 0xf633, 0xefe2, 0xfc29, 0x06cb,
+ 0xff3f, 0xfec9, 0x0727, 0x097c, 0x0c7d, 0x1000,
+ 0x0d35, 0x0885, 0x068a, 0x0604, 0x0598, 0x06d4,
+ 0x0578, 0xff45, 0xfc4a, 0xf999, 0xf80a, 0x022a,
+ 0x061e, 0xfcfb, 0x0096, 0x0946, 0x0722, 0x093c,
+ 0x0b4a, 0x02ae, 0xfe67, 0x01e1, 0x020e, 0x0175,
+ 0x078d, 0x0c47, 0x0893, 0x07a0, 0x0501, 0xf912,
+ 0xf967, 0x001e, 0xfbfc, 0x02bf, 0x079a, 0xf668,
+ 0xf3a9, 0xfc6d, 0xf795, 0xfc99, 0x05d3, 0x0389,
+ 0x08a6, 0x0bdb, 0x0755, 0x099b, 0x04f4, 0xfa12,
+ 0xf3db, 0xeb77, 0xef8a, 0xfd5d, 0xfc7f, 0xfdb2,
+ 0x06d1, 0x0385, 0xffe0, 0x03fe, 0x02c3, 0xfec0,
+ 0xfda4, 0xfe13, 0xfe2e, 0xfd83, 0x005e, 0x038e,
+ 0xff8a, 0xf80a, 0xf740, 0xfdcd, 0xfc17, 0xf52c,
+ 0xfd31, 0x0228, 0xf8be, 0xfa94, 0xfb02, 0xedd8,
+ 0xeecf, 0xf097, 0xe4eb, 0xe929, 0xf24b, 0xe8fd,
+ 0xe2b3, 0xe85f, 0xee43, 0xf232, 0xf546, 0xf775,
+ 0xf360, 0xebf1, 0xea62, 0xe7db, 0xe75a, 0xf1de,
+ 0xf7e7, 0xf3bb, 0xee4d, 0xe84b, 0xe6d4, 0xe6fc,
+ 0xe4b9, 0xe8e1, 0xe891, 0xe1fa, 0xeb35, 0xf53f,
+ 0xf0ea, 0xf31a, 0xf64e, 0xefe8, 0xf044, 0xf2eb,
+ 0xf19a, 0xf857, 0xfc5e, 0xf39a, 0xecd2, 0xeadf,
+ 0xea77, 0xf0ca, 0xf3e8, 0xedfc, 0xf265, 0x0041,
+ 0xffe0, 0xf94c, 0xfcb1, 0xfac7, 0xf386, 0xfa80,
+ 0xff08, 0xede6, 0xe156, 0xe7b0, 0xe91b, 0xe54f,
+ 0xedca, 0xf416, 0xeee7, 0xef98, 0xf2a1, 0xee58,
+ 0xed87, 0xefd6, 0xf0e3, 0xf2b7, 0xece6, 0xe640,
+ 0xecc2, 0xf573, 0xfcac, 0x035d, 0xfc9a, 0xf285,
+ 0xf204, 0xefa1, 0xec74, 0xec97, 0xec4c, 0xf265,
+ 0xf74f, 0xf357, 0xf687, 0xfb27, 0xf3f8, 0xf21c,
+ 0xf9ce, 0xfd05, 0xfbf2, 0xf80b, 0xf02a, 0xe7bc,
+ 0xe39a, 0xe958, 0xf12e, 0xefb4, 0xecbe, 0xed0e,
+ 0xed01, 0xf273, 0xfa04, 0xf92d, 0xf488, 0xf08f,
+ 0xece1, 0xebb6, 0xe78d, 0xdff8, 0xe029, 0xe5cc,
+ 0xe82e, 0xea1b, 0xed46, 0xf175, 0xf66e, 0xf633,
+ 0xf376, 0xf3db, 0xf06a, 0xebb2, 0xec03, 0xe651,
+ 0xded7, 0xe57e, 0xeebe, 0xf174, 0xf736, 0xfad1,
+ 0xf654, 0xf1b9, 0xecc1, 0xe717, 0xe766, 0xe967,
+ 0xe63f, 0xe3d7, 0xe92b, 0xf134, 0xf45a, 0xf5b8,
+ 0xf8f4, 0xfa61, 0xfa3f, 0xfaa0, 0xf98b, 0xf65c,
+ 0xef6e, 0xe5fc, 0xe1dd, 0xe2c8, 0xe2a1, 0xe3b4,
+ 0xe8a9, 0xee68, 0xf2e1, 0xf617, 0xf9b6, 0xff0d,
+ 0x0175, 0xfc5a, 0xf45c, 0xecea, 0xe47a, 0xe35a,
+ 0xec88, 0xf07d, 0xedca, 0xee1a, 0xeb1d, 0xe5c7,
+ 0xe69a, 0xe9c9, 0xf074, 0xf6ec, 0xf447, 0xf53c,
+ 0xf906, 0xf09e, 0xeb4e, 0xeea7, 0xedb0, 0xf21e,
+ 0xf8f3, 0xf52b, 0xf5c3, 0xfdaf, 0xfe27, 0xf5f3,
+ 0xea0e, 0xe4f3, 0xe5db, 0xe3f4, 0xee29, 0xfe13,
+ 0xf8f3, 0xf15c, 0xf2b3, 0xeb55, 0xea82, 0xf4a5,
+ 0xf3ac, 0xef8e, 0xed2a, 0xe5d9, 0xe722, 0xee2f,
+ 0xed73, 0xebb4, 0xed55, 0xf413, 0xfcaf, 0xf9b2,
+ 0xf3b8, 0xf64d, 0xf57b, 0xf049, 0xed11, 0xe890,
+ 0xe7a4, 0xeaeb, 0xea20, 0xe9f8, 0xf01d, 0xf4c3,
+ 0xf05f, 0xeb97, 0xf395, 0xfc35, 0xf703, 0xf2d6,
+ 0xf538, 0xf321, 0xf182, 0xf0ce, 0xed6e, 0xf283,
+ 0xfa12, 0xf7fa, 0xf6f6, 0xf826, 0xf7c5, 0xfd87,
+ 0xfd9f, 0xf240, 0xef95, 0xf0a8, 0xea61, 0xee2a,
+ 0xf91e, 0xf92e, 0xf7c3, 0xfb91, 0xfcbe, 0xfc2e,
+ 0xf9c0, 0xf40f, 0xf19f, 0xf3bf, 0xf470, 0xf218,
+ 0xf291, 0xf656, 0xf467, 0xf18b, 0xf508, 0xf26c,
+ 0xf07d, 0xffd6, 0x07d2, 0xfc0c, 0xf8b6, 0xfd3c,
+ 0xf8a8, 0xf46c, 0xf3a2, 0xf141, 0xf310, 0xf84c,
+ 0xfbb9, 0xfbac, 0xf725, 0xf39d, 0xf36d, 0xf263,
+ 0xf1ea, 0xf30e, 0xf591, 0xf8a3, 0xf446, 0xecc4,
+ 0xf049, 0xf863, 0xfc05, 0xff61, 0xfef9, 0xfb6e,
+ 0xfdf3, 0xff04, 0xf960, 0xf61a, 0xf11d, 0xe9eb,
+ 0xeeaa, 0xf7a2, 0xf8ee, 0xfc15, 0xfd30, 0xf772,
+ 0xfc71, 0x0659, 0x02fc, 0xfe39, 0xfc34, 0xf606,
+ 0xf6a9, 0xf98b, 0xf501, 0xf878, 0xfef5, 0xf7a1,
+ 0xf33e, 0xfa3a, 0xfeb7, 0x0314, 0x07c7, 0x03b1,
+ 0xfe87, 0xfd65, 0xf66c, 0xeca1, 0xec45, 0xf2d6,
+ 0xf764, 0xf964, 0xfa13, 0xf928, 0xf95a, 0xf9c5,
+ 0xf6d1, 0xf4d6, 0xf77f, 0xfa93, 0xfbdc, 0xfae7,
+ 0xf6b8, 0xf184, 0xeec4, 0xf332, 0xfbc5, 0xfc8c,
+ 0xfcd6, 0x07c5, 0x09c6, 0xff5d, 0x01a9, 0x0538,
+ 0xf988, 0xf6cc, 0xfcdb, 0xf74a, 0xf587, 0xfca9,
+ 0xfc8b, 0xfbbb, 0xfc4c, 0xf90f, 0xfc8f, 0x02ca,
+ 0x040b, 0x06fc, 0x0404, 0xfb5e, 0xfc3f, 0xfda6,
+ 0xf828, 0xf54e, 0xf44c, 0xf6ed, 0xfd20, 0xfd37,
+ 0xfc67, 0xfc95, 0xf9b2, 0xfdac, 0x0067, 0xf794,
+ 0xf50d, 0xf7f7, 0xf72c, 0xfe67, 0x02a4, 0xf88d,
+ 0xf40b, 0xf544, 0xf20a, 0xf4b2, 0xfa84, 0xfa48,
+ 0xf99b, 0xf898, 0xf3cd, 0xedf0, 0xead5, 0xee98,
+ 0xf57e, 0xf9fa, 0xff55, 0x0371, 0x02ef, 0x02b9,
+ 0x0045, 0xf99a, 0xf854, 0xfc36, 0xfce8, 0xfacd,
+ 0xf746, 0xf4a2, 0xf7b8, 0xfb16, 0xf921, 0xf94d,
+ 0xff51, 0x0513, 0x06d7, 0x047f, 0x01cd, 0x030f,
+ 0x0467, 0x0137, 0xfba9, 0xf83d, 0xfb4d, 0x01d6,
+ 0x04f2, 0x0854, 0x0cd6, 0x094c, 0x01c1, 0x009a,
+ 0x0232, 0x01ce, 0x0068, 0xfd95, 0xfb8e, 0xfd1a,
+ 0xff29, 0xfe18, 0xfc13, 0xfd90, 0x0024, 0xff3b,
+ 0xfeae, 0xffd4, 0xfc06, 0xf556, 0xf391, 0xf526,
+ 0xf6cc, 0xfa2f, 0xfea9, 0x0392, 0x0aca, 0x1077,
+ 0x0ed9, 0x0888, 0x0232, 0xfcd1, 0xf9bc, 0xf8fc,
+ 0xf92e, 0xfb3b, 0xfeb5, 0x0018, 0xfe64, 0xfe7a,
+ 0x0389, 0x0728, 0x06a4, 0x0854, 0x089d, 0x0213,
+ 0xfe26, 0x00c7, 0x0215, 0x00cc, 0x00db, 0x02a8,
+ 0x03d6, 0x05a2, 0x0b6a, 0x0f07, 0x0db3, 0x0f58,
+ 0x0ea2, 0x0602, 0xffdf, 0xfbaa, 0xf6c9, 0xf982,
+ 0xfdd2, 0xfde8, 0x0028, 0xff77, 0xfaae, 0xfc7e,
+ 0x026e, 0x062b, 0x079a, 0x04d8, 0xfefa, 0xf75c,
+ 0xef2f, 0xed9f, 0xf335, 0xf800, 0xfca0, 0x066f,
+ 0x0cdb, 0x04e1, 0xfd24, 0x0399, 0x0557, 0xfb4f,
+ 0xf894, 0xfa98, 0xf88f, 0xfb61, 0xff09, 0xfb82,
+ 0xfa93, 0xff9b, 0x022a, 0x00b9, 0xffc6, 0x0117,
+ 0x02d7, 0x02fa, 0x01d7, 0x0266, 0x032c, 0xfe47,
+ 0xfc1c, 0x05a6, 0x0a1d, 0x0239, 0xffb7, 0x0455,
+ 0x07f0, 0x0b68, 0x0a04, 0x0405, 0x0304, 0x0606,
+ 0x0693, 0x03c2, 0x0197, 0x0217, 0x0160, 0x020c,
+ 0x0616, 0x0587, 0x032e, 0x0420, 0x0283, 0x0198,
+ 0x034f, 0xff82, 0xf9a5, 0xf8ea, 0xfc62, 0x0087,
+ 0x0343, 0x09b2, 0x104e, 0x0ca1, 0x089f, 0x07e4,
+ 0xfe45, 0xf630, 0xf87c, 0xf94c, 0xf9f1, 0xfda1,
+ 0xfc82, 0xfabc, 0xff8d, 0x0428, 0x020a, 0x013e,
+ 0x06a1, 0x0707, 0x0556, 0x0bd1, 0x0c1f, 0x04ca,
+ 0x0586, 0x040d, 0xfcb9, 0xfd5e, 0xfec6, 0xfd40,
+ 0x02fb, 0x0b71, 0x0f4c, 0x0f2b, 0x0dc4, 0x0c0a,
+ 0x0626, 0x0107, 0x038f, 0x0784, 0x0854, 0x0363,
+ 0xfb29, 0xfb31, 0xfece, 0x0047, 0x057c, 0x05b9,
+ 0x01bd, 0x0368, 0xffef, 0xfb49, 0xfd37, 0xf8b6,
+ 0xf810, 0x0108, 0x021e, 0x05f1, 0x0ea5, 0x0c0d,
+ 0x0c0d, 0x0dea, 0x0424, 0xffc3, 0xffdb, 0xf93a,
+ 0xf978, 0xfe35, 0xff09, 0x01f5, 0x030a, 0x020d,
+ 0x0349, 0x043c, 0x0975, 0x0e32, 0x0a48, 0x08d3,
+ 0x0a3f, 0x0765, 0x07c1, 0x07bc, 0x00a7, 0xfcf9,
+ 0x0161, 0x090b, 0x0f37, 0x0f0a, 0x0c20, 0x0c16,
+ 0x0aed, 0x04ec, 0xff0e, 0xff4f, 0x011f, 0xff8d,
+ 0x02c4, 0x0989, 0x050b, 0xfb2b, 0xfb76, 0x0048,
+ 0x02d0, 0x06c9, 0x0809, 0x04b6, 0x03ad, 0x002c,
+ 0xf7ba, 0xf61c, 0xf936, 0xfb1d, 0x0301, 0x09e4,
+ 0x09b5, 0x0db4, 0x0e5e, 0x04ef, 0x0144, 0xffc3,
+ 0xf861, 0xf7d5, 0xfbdc, 0xfc2f, 0xfeb4, 0x018a,
+ 0x0085, 0xfeaa, 0xff26, 0x03fa, 0x05d2, 0x0290,
+ 0x0314, 0x016c, 0xfda8, 0x051e, 0x0b87, 0x05e0,
+ 0x01dc, 0x01d9, 0x0358, 0x085f, 0x0a04, 0x0968,
+ 0x0950, 0x0470, 0x0213, 0x0459, 0x019b, 0xff66,
+ 0x0132, 0x0178, 0x0412, 0x067a, 0x042b, 0x04ea,
+ 0x0765, 0x06cd, 0x0841, 0x0a9d, 0x0baa, 0x0b9b,
+ 0x040c, 0xf9e1, 0xf7ff, 0xf86c, 0xf84d, 0xfd89,
+ 0x023a, 0x027f, 0x04a5, 0x0820, 0x0902, 0x0699,
+ 0x0156, 0xfd75, 0xfbdb, 0xfab2, 0xfdfd, 0x020e,
+ 0xfedb, 0xfce4, 0x00cd, 0xff20, 0xfa61, 0xfd76,
+ 0x0202, 0x024f, 0x0317, 0x02c2, 0x012a, 0x04b2,
+ 0x07d8, 0x030b, 0xff3f, 0x018f, 0x01a7, 0xff62,
+ 0x0128, 0x056a, 0x0901, 0x0b6c, 0x0b27, 0x0760,
+ 0x0180, 0xfd6a, 0xfca9, 0xfaf6, 0xf83a, 0xf92f,
+ 0xfc13, 0xfd90, 0xff31, 0x00ed, 0x00bf, 0xfee9,
+ 0xfd69, 0xfcf3, 0xfaaf, 0xf696, 0xf769, 0xfd7a,
+ 0xfe06, 0xf781, 0xf64e, 0xfc76, 0x003e, 0x0170,
+ 0x02ca, 0x014a, 0x0030, 0x004f, 0xfbb9, 0xf98f,
+ 0x001c, 0x0369, 0xfe7d, 0xf929, 0xf6c1, 0xf9c3,
+ 0x01cb, 0x0633, 0x0430, 0x0243, 0x031e, 0x02ca,
+ 0x001b, 0xffc6, 0x0122, 0xfe8c, 0xfb8d, 0xfd9d,
+ 0x00c4, 0x0342, 0x0877, 0x0e9b, 0x11bd, 0x10b5,
+ 0x0adc, 0x020d, 0xfb11, 0xf873, 0xfaaf, 0x0095,
+ 0x03e1, 0x01c0, 0x0121, 0x036d, 0x02a1, 0x00e1,
+ 0x0159, 0x0097, 0xffc2, 0x00af, 0x0075, 0x013a,
+ 0x04b4, 0x05c6, 0x0410, 0x0241, 0xff5d, 0xfe90,
+ 0x0386, 0x08f7, 0x09d6, 0x0793, 0x03bb, 0xfed2,
+ 0xf9bf, 0xf5c9, 0xf531, 0xf7f0, 0xfa73, 0xf9fc,
+ 0xf786, 0xf71e, 0xfaa6, 0x0014, 0x0610, 0x0936,
+ 0x05c9, 0x0121, 0x0035, 0xffa4, 0xfea5, 0xfddb,
+ 0xfb84, 0xf9e9, 0xfba2, 0xff53, 0x011e, 0xff3c,
+ 0x0018, 0x03f3, 0x013f, 0xfb72, 0xf8a6, 0xf547,
+ 0xf5bc, 0xfaaf, 0xfc29, 0xfdf1, 0xff84, 0xfb47,
+ 0xfa3d, 0xfda2, 0xfdb4, 0xfcff, 0xfadc, 0xf8bb,
+ 0xfca1, 0xfd40, 0xf747, 0xf5e6, 0xf6f6, 0xf5f4,
+ 0xf7f2, 0xfc93, 0x0045, 0x0132, 0xfeeb, 0xfb05,
+ 0xf553, 0xf1f6, 0xf4b8, 0xf671, 0xf5aa, 0xf7b0,
+ 0xf852, 0xf5d2, 0xf50a, 0xf5e9, 0xf8a7, 0xfd76,
+ 0xffe4, 0xfe85, 0xfc13, 0xfadf, 0xfc71, 0x0055,
+ 0x03fd, 0x0495, 0x019c, 0xfde1, 0xfd2b, 0x0000,
+ 0x01b9, 0x00b6, 0x00be, 0x005e, 0xfe63, 0xfef2,
+ 0xfec6, 0xfab9, 0xf8cc, 0xf939, 0xf808, 0xf774,
+ 0xfa4f, 0xff5a, 0x0113, 0xfe3b, 0xfd6a, 0xfec9,
+ 0xff2c, 0x0062, 0x003a, 0xfe95, 0xff5e, 0xfe94,
+ 0xfa02, 0xf648, 0xf66f, 0xfb7f, 0x00a1, 0x028d,
+ 0x04dc, 0x03af, 0xfe0b, 0xfc6a, 0xfc74, 0xfb8b,
+ 0xfdea, 0xfe67, 0xfc28, 0xfc67, 0xf9e5, 0xf538,
+ 0xf6e4, 0xfd14, 0x02d5, 0x0608, 0x0480, 0xffc7,
+ 0xfb27, 0xf893, 0xf842, 0xf9c6, 0xfc9a, 0xfca6,
+ 0xfa79, 0xfc6f, 0xfe7d, 0xfd52, 0x0069, 0x0458,
+ 0x01f9, 0xffec, 0xffbb, 0xfcb1, 0xfba2, 0xfe0a,
+ 0xfd16, 0xfa04, 0xfa3f, 0xfc95, 0x0051, 0x040a,
+ 0x0187, 0xfc48, 0xfbd5, 0xfa8d, 0xf75c, 0xf908,
+ 0xfb06, 0xfb45, 0xfd4d, 0xfc1d, 0xfa38, 0xfdf7,
+ 0x0067, 0xff61, 0xfe64, 0xfaef, 0xf7a9, 0xf7a3,
+ 0xf8b7, 0xfb0d, 0xfb77, 0xf9c3, 0xfc35, 0xfe27,
+ 0xfb72, 0xfb8d, 0xfda9, 0xfe54, 0x0324, 0x090b,
+ 0x0731, 0x019d, 0xff16, 0xfd0b, 0xf97f, 0xf729,
+ 0xf6f5, 0xf91b, 0xfcff, 0xfec6, 0xfebd, 0x0081,
+ 0x025f, 0x02d7, 0x0354, 0x025f, 0xfea9, 0xfa8e,
+ 0xfa63, 0xfe05, 0xfd93, 0xf84f, 0xf790, 0xfb2b,
+ 0xfceb, 0xfe27, 0xfefd, 0xfcac, 0xfadf, 0xfc98,
+ 0xfccc, 0xfa09, 0xfaa2, 0xfe07, 0xfe77, 0xfdda,
+ 0xfe94, 0xffad, 0x013c, 0x012a, 0x0084, 0x01aa,
+ 0x0102, 0x00c6, 0x0270, 0xff65, 0xfd1a, 0xff5e,
+ 0xfd92, 0xfcff, 0x0113, 0x0116, 0x026f, 0x05f5,
+ 0x02da, 0x0092, 0x00a9, 0xfd19, 0xfe44, 0x02c8,
+ 0x029f, 0x04e1, 0x08cf, 0x05f5, 0x0132, 0x0131,
+ 0x04e4, 0x086c, 0x09cc, 0x0a45, 0x098f, 0x0759,
+ 0x038f, 0xfe67, 0xfd4a, 0xfec8, 0xfbf4, 0xfa72,
+ 0xfcd2, 0xfd7e, 0xff18, 0xff7c, 0xfba2, 0xfb5c,
+ 0xfc5e, 0xfb65, 0xff0e, 0x00ba, 0xfcc6, 0xfccb,
+ 0xfc45, 0xf918, 0xfd25, 0x01c4, 0x0081, 0x022a,
+ 0x0465, 0x0051, 0xfc4e, 0xfc14, 0xfad9, 0xf71e,
+ 0xf531, 0xf879, 0xfd1d, 0xfe29, 0xfe21, 0x0023,
+ 0x02fd, 0x05e7, 0x0816, 0x0899, 0x07ca, 0x04d9,
+ 0x0189, 0x024c, 0x053f, 0x0707, 0x0884, 0x07d1,
+ 0x051e, 0x0512, 0x0626, 0x068f, 0x08f8, 0x0b2e,
+ 0x0b65, 0x0be7, 0x0b5e, 0x0813, 0x0379, 0x011e,
+ 0x0369, 0x0574, 0x04af, 0x056d, 0x061e, 0x05ad,
+ 0x06bc, 0x0598, 0x03c8, 0x058c, 0x04c2, 0x0244,
+ 0x0348, 0x02e4, 0x02e0, 0x062f, 0x058a, 0x0358,
+ 0x040c, 0x014d, 0xfd00, 0xfcbb, 0xfd3f, 0xfd90,
+ 0xfdfe, 0xfcf4, 0xfcad, 0xfdfe, 0xffd6, 0x028f,
+ 0x0371, 0x0170, 0x017d, 0x04af, 0x0624, 0x0545,
+ 0x05c8, 0x065f, 0x0491, 0x032d, 0x028b, 0x017b,
+ 0x0235, 0x0224, 0x000f, 0x0226, 0x066a, 0x0780,
+ 0x08bf, 0x0a35, 0x092f, 0x076c, 0x0518, 0x02c0,
+ 0xfff5, 0xfa98, 0xf868, 0xfb6b, 0xfd39, 0x0020,
+ 0x04c6, 0x04c2, 0x0450, 0x05d1, 0x02b5, 0xfe0c,
+ 0xfc3f, 0xfa9d, 0xfa12, 0xfb63, 0xfd97, 0x0111,
+ 0x0346, 0x03b8, 0x031c, 0xff7d, 0xfd1e, 0xfd9e,
+ 0xfac9, 0xf912, 0xfd49, 0xfeec, 0xfd06, 0xfdea,
+ 0xffa4, 0x000d, 0xff48, 0xfc99, 0xfb6d, 0xfdc8,
+ 0x003b, 0x006a, 0xff3b, 0xfeff, 0xff93, 0xff92,
+ 0x00d5, 0x0296, 0x01ed, 0x00d6, 0xffd7, 0xfec0,
+ 0x01e3, 0x0795, 0x09ff, 0x0a16, 0x08d0, 0x04ff,
+ 0x0144, 0xffc5, 0xffdc, 0x0132, 0x02fd, 0x0382,
+ 0x0276, 0x0245, 0x037d, 0x03ae, 0x03f5, 0x056c,
+ 0x0514, 0x03cb, 0x0362, 0x0192, 0xffab, 0xfffa,
+ 0x00cf, 0x01e8, 0x02d3, 0x02fc, 0x0480, 0x04f1,
+ 0x009c, 0xfbfc, 0xfbab, 0xfdb5, 0xfe94, 0xfd96,
+ 0xfdaa, 0xff95, 0x003c, 0x0036, 0x00b4, 0xff5b,
+ 0xfe7b, 0x013b, 0x0381, 0x047d, 0x0710, 0x06c5,
+ 0x02f9, 0x02c7, 0x031c, 0xff43, 0xfde2, 0xfe72,
+ 0xfbe0, 0xfcf9, 0x026e, 0x04ed, 0x07b9, 0x0a20,
+ 0x04dc, 0xff03, 0xff1f, 0xfd53, 0xf7a0, 0xf53f,
+ 0xf80c, 0xfbb8, 0xfd10, 0xfdb9, 0xff58, 0x0093,
+ 0x0169, 0x019f, 0x00b9, 0x007d, 0xff87, 0xfc9d,
+ 0xfb8c, 0xfc7b, 0xfd6b, 0xff24, 0xff80, 0xfd71,
+ 0xfb7c, 0xfa5c, 0xfb8e, 0xfd27, 0xfac1, 0xf9cf,
+ 0xfcea, 0xfd73, 0xfe71, 0x01d1, 0x0031, 0xfe07,
+ 0x007c, 0x00d3, 0xfff5, 0x0018, 0xfdbe, 0xfe12,
+ 0x0092, 0xfd2c, 0xfba5, 0x014c, 0x033f, 0xffed,
+ 0xfe10, 0xfe2c, 0xff0b, 0xfe98, 0xfe22, 0x0235,
+ 0x05f7, 0x0474, 0x0274, 0x0095, 0xfcc9, 0xfa7a,
+ 0xf98f, 0xf7bc, 0xf75d, 0xf8ff, 0xfaa7, 0xfcd4,
+ 0xff3a, 0xffc5, 0xff64, 0x001d, 0x012a, 0x01d0,
+ 0x0110, 0xfd0d, 0xf93a, 0xf959, 0xfaeb, 0xfe5c,
+ 0x033c, 0x0261, 0xfe21, 0xfe11, 0xfe77, 0xfd74,
+ 0xfdfc, 0xfca0, 0xfa5f, 0xfc02, 0xfdd5, 0xfd5b,
+ 0xfcae, 0xfbd3, 0xfc62, 0xfe17, 0xfd97, 0xfd4d,
+ 0xff6a, 0x000d, 0xff21, 0xffde, 0x0106, 0x00bf,
+ 0x00dc, 0x020d, 0x015f, 0xfed6, 0xfe83, 0xff7e,
+ 0xff42, 0x01fe, 0x073f, 0x06fc, 0x02d3, 0x0122,
+ 0xfea9, 0xf9d3, 0xf720, 0xf658, 0xf6cc, 0xf8a9,
+ 0xf81c, 0xf6cd, 0xf9b2, 0xfd7d, 0xff49, 0x002b,
+ 0xfe75, 0xfb6d, 0xfa6f, 0xf9fd, 0xf935, 0xf984,
+ 0xfbf3, 0x0002, 0x013d, 0xff16, 0xfebc, 0xfeeb,
+ 0xfd72, 0xfdac, 0xfd9a, 0xfb33, 0xfac7, 0xfb1c,
+ 0xf961, 0xf965, 0xfae0, 0xfa4c, 0xfa50, 0xfc43,
+ 0xfc9c, 0xfc5c, 0xff28, 0x02ea, 0x041b, 0x0302,
+ 0x006b, 0xfd71, 0xfc57, 0xfcf3, 0xfda9, 0xfeb8,
+ 0x0073, 0x0172, 0x00b6, 0x009c, 0x02c0, 0x0324,
+ 0x0042, 0xfe2c, 0xfc67, 0xf8e7, 0xf74c, 0xf89d,
+ 0xf8c0, 0xf6d8, 0xf5e9, 0xf76b, 0xf95f, 0xfa6e,
+ 0xfc1c, 0xfe72, 0xff84, 0xfe28, 0xfaf9, 0xf94a,
+ 0xfa32, 0xfa7f, 0xf9f6, 0xfa1b, 0xf9c4, 0xf8c4,
+ 0xf7ff, 0xf829, 0xf9ab, 0xfb2e, 0xfc7e, 0xfcce,
+ 0xf9ac, 0xf6ce, 0xf7b1, 0xf852, 0xf7f2, 0xf812,
+ 0xf767, 0xf805, 0xf9b3, 0xf951, 0xf9d7, 0xfc10,
+ 0xfd22, 0xfee9, 0x011a, 0x0199, 0x020e, 0x010b,
+ 0xfd4e, 0xfae8, 0xfaf1, 0xfb94, 0xfd7e, 0x0085,
+ 0x01e1, 0x002c, 0xfd74, 0xfac6, 0xf796, 0xf698,
+ 0xf848, 0xf834, 0xf657, 0xf595, 0xf665, 0xf91c,
+ 0xfc61, 0xfee8, 0x0116, 0x00ce, 0xfdd7, 0xfa5b,
+ 0xf6c6, 0xf673, 0xf9e8, 0xfc24, 0xfe84, 0x0158,
+ 0xffea, 0xfdbd, 0xfd5e, 0xfbd4, 0xfc20, 0xfe49,
+ 0xfeb7, 0xff32, 0xfdd1, 0xfaa2, 0xfc1c, 0xfeb8,
+ 0xfdc6, 0xfdcf, 0xfe26, 0xfc97, 0xfc5a, 0xfe49,
+ 0x01c4, 0x0418, 0x0274, 0x01b6, 0x0470, 0x06cf,
+ 0x0804, 0x06ce, 0x02dc, 0x0082, 0xffc6, 0xff3c,
+ 0x0136, 0x04e2, 0x06ff, 0x0538, 0x007c, 0xfd2d,
+ 0xf9fe, 0xf5a2, 0xf633, 0xf957, 0xf87b, 0xf883,
+ 0xfab6, 0xfa2a, 0xfae1, 0xff73, 0x024a, 0x01e9,
+ 0x012e, 0x0090, 0xfe2c, 0xfa52, 0xf952, 0xfb98,
+ 0xfcac, 0xfcc3, 0xfe7f, 0xffd3, 0xfee2, 0xfd89,
+ 0xfcaa, 0xfb86, 0xfb15, 0xfb44, 0xfa24, 0xf94d,
+ 0xfa86, 0xfbf9, 0xfd19, 0xfd0e, 0xfb5b, 0xfb29,
+ 0xfa9e, 0xf827, 0xfaa2, 0xff3f, 0xfdd8, 0xfd2f,
+ 0x00e4, 0x027e, 0x03cc, 0x05bf, 0x034f, 0xff0c,
+ 0xfca6, 0xfbe8, 0xfdd9, 0x0084, 0x021b, 0x043e,
+ 0x0437, 0xff7c, 0xfaae, 0xf8eb, 0xf79b, 0xf67c,
+ 0xf7d8, 0xf82b, 0xf53c, 0xf6d7, 0xfd95, 0xffad,
+ 0xff53, 0x0297, 0x03c3, 0x00d6, 0xfe38, 0xfc78,
+ 0xfcaa, 0xfe2f, 0xfe0d, 0xfe0a, 0xfe60, 0xfdfa,
+ 0xff97, 0x0099, 0xfead, 0xffc6, 0x027f, 0x009d,
+ 0xfe63, 0xff13, 0xff31, 0xff75, 0x0141, 0x0269,
+ 0x0218, 0xffb9, 0xfc0c, 0xfac1, 0xfbb2, 0xfc73,
+ 0xfeae, 0x01db, 0x022c, 0x01c4, 0x0441, 0x0729,
+ 0x0829, 0x0762, 0x0477, 0x01a7, 0x0136, 0x0101,
+ 0x002b, 0x0059, 0x00c8, 0x000b, 0xfeae, 0xfdb3,
+ 0xfcbc, 0xfae0, 0xf9d8, 0xfa38, 0xf8ce, 0xf791,
+ 0xfb55, 0x00c9, 0x0317, 0x0245, 0xfeec, 0xfb94,
+ 0xfb07, 0xfc97, 0xffc5, 0x0277, 0x014d, 0xfe39,
+ 0xfbaa, 0xf9bb, 0xfa5e, 0xfc8e, 0xfd81, 0xfec5,
+ 0xffb3, 0xfd62, 0xfa3d, 0xf981, 0xfb27, 0xfe1e,
+ 0x0058, 0x00b1, 0xfff5, 0xfe6b, 0xfc49, 0xfac9,
+ 0xfb46, 0xfd5e, 0xfec5, 0xfeb1, 0xfe51, 0xfec1,
+ 0x0110, 0x043a, 0x0666, 0x08a5, 0x095d, 0x056a,
+ 0x020f, 0x036b, 0x0340, 0x0024, 0xffe1, 0x00c0,
+ 0xfebf, 0xfc55, 0xfb4d, 0xfbb6, 0xfdd6, 0xfe49,
+ 0xfc2c, 0xfc4e, 0xff6a, 0x031a, 0x0668, 0x0691,
+ 0x03ef, 0x023c, 0x00a9, 0xffd2, 0x02b1, 0x0576,
+ 0x04bf, 0x0330, 0x01ef, 0x011b, 0x0126, 0x01d7,
+ 0x0463, 0x0717, 0x05fc, 0x0292, 0x0045, 0x0025,
+ 0x023e, 0x04b1, 0x063b, 0x069b, 0x04c7, 0x021d,
+ 0xff88, 0xfc56, 0xfbd4, 0xff1e, 0x01d5, 0x0324,
+ 0x0413, 0x03e4, 0x039c, 0x03c7, 0x0410, 0x0525,
+ 0x067c, 0x07dd, 0x0937, 0x0872, 0x060f, 0x04b3,
+ 0x033f, 0x001f, 0xfe22, 0xffcd, 0x023a, 0x025c,
+ 0x01b4, 0x00b3, 0xfe73, 0xfd2c, 0xfe33, 0x0155,
+ 0x061f, 0x0885, 0x06e6, 0x0482, 0x01ea, 0x002b,
+ 0x01cc, 0x0487, 0x062b, 0x06bf, 0x0544, 0x02f6,
+ 0x00ee, 0xfe6f, 0xfdd5, 0x0084, 0x0429, 0x06dc,
+ 0x070d, 0x058a, 0x054d, 0x0561, 0x048b, 0x0514,
+ 0x0649, 0x0506, 0x026c, 0x00d3, 0xfee4, 0xfcf7,
+ 0xfe7d, 0x01d4, 0x0426, 0x077a, 0x0a1b, 0x094e,
+ 0x096f, 0x0b2d, 0x0ae8, 0x0aa3, 0x0b4a, 0x0a54,
+ 0x0858, 0x064f, 0x04bc, 0x0431, 0x036e, 0x02d3,
+ 0x0384, 0x0465, 0x0493, 0x02e6, 0x0001, 0xffa1,
+ 0x00e8, 0x00e6, 0x0224, 0x056b, 0x065c, 0x0454,
+ 0x03a1, 0x0585, 0x0677, 0x0523, 0x0463, 0x0527,
+ 0x05ad, 0x0576, 0x0532, 0x047b, 0x0270, 0x00e3,
+ 0x016e, 0x0179, 0x0120, 0x0345, 0x0545, 0x0529,
+ 0x060a, 0x07c4, 0x07b8, 0x05f2, 0x0407, 0x0278,
+ 0xffa9, 0xfcc7, 0xfd22, 0xfee5, 0x00c8, 0x040a,
+ 0x0523, 0x0415, 0x060d, 0x092b, 0x0a1e, 0x0a52,
+ 0x098e, 0x07eb, 0x06fe, 0x0606, 0x0458, 0x02b1,
+ 0x021d, 0x02b6, 0x0293, 0x0176, 0x0101, 0x0130,
+ 0x0190, 0x01b2, 0x01b3, 0x02b3, 0x0427, 0x05ec,
+ 0x0834, 0x07d3, 0x04ee, 0x0441, 0x0597, 0x05bf,
+ 0x0516, 0x055c, 0x0662, 0x06da, 0x0707, 0x06b4,
+ 0x04fb, 0x04c9, 0x06a6, 0x0687, 0x05dd, 0x067c,
+ 0x05f2, 0x05ff, 0x0749, 0x06b8, 0x05e7, 0x0639,
+ 0x068b, 0x06ac, 0x04c0, 0x0246, 0x021c, 0x0133,
+ 0x0074, 0x02ab, 0x0331, 0x02ac, 0x05ed, 0x094b,
+ 0x0a20, 0x0a01, 0x0862, 0x0702, 0x0712, 0x061c,
+ 0x0565, 0x06fe, 0x0808, 0x06a0, 0x04d1, 0x0403,
+ 0x031b, 0x0194, 0x006b, 0xff1a, 0xfd66, 0xfe20,
+ 0x019c, 0x03ed, 0x0468, 0x05e8, 0x06e8, 0x0497,
+ 0x0295, 0x038e, 0x0398, 0x01df, 0x0199, 0x024a,
+ 0x027a, 0x02c0, 0x0358, 0x0475, 0x060f, 0x06b5,
+ 0x04f9, 0x025a, 0x0271, 0x0486, 0x050b, 0x04ab,
+ 0x041d, 0x0247, 0x00d8, 0x0017, 0xfee5, 0xfecc,
+ 0xfeeb, 0xfdd6, 0xfde0, 0xfec6, 0xff16, 0x0088,
+ 0x02f3, 0x0476, 0x04a6, 0x03a8, 0x02c3, 0x0267,
+ 0x0128, 0xffb8, 0x000e, 0x018c, 0x01d7, 0x00cb,
+ 0x00e9, 0x018e, 0xff75, 0xfc5e, 0xfbc5, 0xfc49,
+ 0xfc95, 0xfdc0, 0xfec8, 0xfe9a, 0xff35, 0x009c,
+ 0x0036, 0xff24, 0xff54, 0xff64, 0xffd6, 0x00cd,
+ 0xff86, 0xfe4a, 0x003f, 0x025a, 0x033e, 0x0388,
+ 0x0245, 0x015c, 0x017c, 0x0073, 0xff92, 0xffe2,
+ 0x0043, 0x014c, 0x02b4, 0x038f, 0x036c, 0x01c0,
+ 0x00c5, 0x010e, 0xff7d, 0xfdf3, 0xffa2, 0x0184,
+ 0x01aa, 0x027c, 0x04db, 0x06c8, 0x06fa, 0x06bf,
+ 0x0649, 0x04af, 0x03c3, 0x0397, 0x022e, 0x018a,
+ 0x02e0, 0x03d1, 0x040e, 0x039d, 0x013f, 0xfdde,
+ 0xfbbc, 0xfc5e, 0xfef3, 0x008c, 0xffd0, 0xfe12,
+ 0xfdb1, 0xff13, 0xff82, 0xfeed, 0xfffc, 0x00fb,
+ 0xff93, 0xfe4d, 0xfeee, 0xff39, 0xfe8b, 0x003d,
+ 0x046b, 0x05da, 0x0433, 0x03a2, 0x02de, 0xffc5,
+ 0xfcf6, 0xfc35, 0xfcca, 0xfdb1, 0xff0a, 0x0193,
+ 0x024c, 0xfeea, 0xfc0b, 0xfbd8, 0xfaf8, 0xfaad,
+ 0xfda5, 0x0071, 0x005c, 0x003c, 0x020c, 0x0465,
+ 0x0663, 0x06bd, 0x0390, 0xff70, 0xfdd8, 0xfd36,
+ 0xfce9, 0xfeb5, 0x00ac, 0x00f7, 0x00ab, 0xfeea,
+ 0xfb7d, 0xf9d1, 0xfa4e, 0xf9f9, 0xf9fe, 0xfca8,
+ 0xfe63, 0xfc78, 0xfacd, 0xfb83, 0xfc1f, 0xfbee,
+ 0xfbfa, 0xfca0, 0xfdd7, 0xfe97, 0xfe4e, 0xfdea,
+ 0xfded, 0xfe87, 0x0024, 0x025d, 0x0416, 0x0445,
+ 0x02be, 0x0006, 0xfcfe, 0xfb9f, 0xfcb5, 0xfe97,
+ 0x0109, 0x0423, 0x050f, 0x0320, 0x01a3, 0x0174,
+ 0x00a3, 0xff75, 0xff7e, 0x0075, 0x0197, 0x0399,
+ 0x0710, 0x0abc, 0x0c56, 0x0ae6, 0x081b, 0x05d7,
+ 0x03f8, 0x026b, 0x0242, 0x034c, 0x03bc, 0x02e7,
+ 0x01cc, 0x00b3, 0xffe1, 0x00d8, 0x02b8, 0x02dd,
+ 0x01fa, 0x017b, 0x00e9, 0x00e6, 0x0178, 0x00bb,
+ 0xfec7, 0xfdd9, 0xfeee, 0x0045, 0x0075, 0x00aa,
+ 0x004f, 0xfe34, 0xfd91, 0xff00, 0xff01, 0xff11,
+ 0x00fd, 0x01f4, 0x0183, 0x00af, 0xff86, 0xffa3,
+ 0x006a, 0x0059, 0x01a4, 0x0396, 0x028f, 0x007b,
+ 0xffb3, 0xfdc1, 0xfadd, 0xf9d7, 0xf952, 0xf886,
+ 0xfacf, 0xffdb, 0x03ac, 0x05a9, 0x0658, 0x0577,
+ 0x044d, 0x0339, 0x01d4, 0x00df, 0xff9b, 0xfde8,
+ 0xfe0f, 0xff38, 0xff14, 0xfed4, 0xff31, 0xfee6,
+ 0xfe56, 0xfe9c, 0xff4d, 0xff79, 0xff39, 0xff5c,
+ 0xff6f, 0xfde5, 0xfb25, 0xf9ea, 0xfb86, 0xfe59,
+ 0x0092, 0x0185, 0x0101, 0x0000, 0xff71, 0xfed2,
+ 0xfe48, 0xfe7f, 0xfee0, 0xff6b, 0x006e, 0x00c0,
+ 0x0056, 0x0044, 0xffe1, 0xff9a, 0x01ca, 0x04ba,
+ 0x04b5, 0x0324, 0x0217, 0x0023, 0xfe05, 0xfd0c,
+ 0xfbc5, 0xfc10, 0x007f, 0x0529, 0x06f8, 0x0838,
+ 0x09bb, 0x0a66, 0x0a74, 0x09ec, 0x088e, 0x071d,
+ 0x0604, 0x04ab, 0x035a, 0x0290, 0x00fa, 0xfed1,
+ 0xfe58, 0xfe92, 0xfe6d, 0xfffa, 0x0202, 0x01e1,
+ 0x0138, 0x011a, 0x0012, 0xfde9, 0xfc07, 0xfc0b,
+ 0xfd10, 0xfda0, 0xff9f, 0x0263, 0x0234, 0x00ef,
+ 0x018b, 0x01d6, 0x0118, 0x00fa, 0x0079, 0xfe77,
+ 0xfccc, 0xfd02, 0xfd7d, 0xfcc3, 0xfc7d, 0xfe61,
+ 0x01b1, 0x0399, 0x0159, 0xfcd4, 0xfa78, 0xfae4,
+ 0xfbf5, 0xfb76, 0xf961, 0xf9ae, 0xfcfa, 0xfedb,
+ 0xffe1, 0x02c8, 0x04f1, 0x04ce, 0x0446, 0x030e,
+ 0x0053, 0xfda9, 0xfce5, 0xfe1f, 0xffc6, 0x0027,
+ 0xfec8, 0xfcd1, 0xfc23, 0xfc69, 0xfc0e, 0xfc2e,
+ 0xfdf3, 0xff0a, 0xfe13, 0xfcf5, 0xfc04, 0xf9af,
+ 0xf786, 0xf812, 0xf9d8, 0xfb53, 0xfdd9, 0x005a,
+ 0x004d, 0xff0b, 0xfe86, 0xfe78, 0xff86, 0x019d,
+ 0x0259, 0x0144, 0xff75, 0xfd92, 0xfd7a, 0xff05,
+ 0xffb6, 0x0186, 0x0602, 0x07f1, 0x057a, 0x02e1,
+ 0x0112, 0xffac, 0x0001, 0x001d, 0xfea7, 0xff46,
+ 0x02f2, 0x060e, 0x07e0, 0x09c5, 0x0a7c, 0x098e,
+ 0x089f, 0x0778, 0x0636, 0x0671, 0x0687, 0x0511,
+ 0x045d, 0x041b, 0x0273, 0x0181, 0x0289, 0x0317,
+ 0x023a, 0x01db, 0x02a0, 0x02b9, 0x020e, 0x01fd,
+ 0x0147, 0xff9e, 0xff2b, 0xff6e, 0xffa4, 0x00a0,
+ 0x013a, 0x0111, 0x00e8, 0xffff, 0xff5a, 0x001e,
+ 0x0154, 0x02cd, 0x02c6, 0x004e, 0xff24, 0xff62,
+ 0xfe8b, 0xff15, 0x016d, 0x02e0, 0x03b3, 0x03b1,
+ 0x02b0, 0x0286, 0x025d, 0x0119, 0xff27, 0xfc02,
+ 0xf9fb, 0xfbb8, 0xfe8e, 0x0121, 0x04a5, 0x06cc,
+ 0x0622, 0x04e7, 0x03d2, 0x02a6, 0x027a, 0x02ca,
+ 0x020b, 0x0139, 0x0111, 0xff83, 0xfd13, 0xfcf6,
+ 0xfdc1, 0xfd02, 0xfd45, 0xfedc, 0xfe44, 0xfca6,
+ 0xfc86, 0xfb93, 0xf8fd, 0xf7d2, 0xf89f, 0xf9dc,
+ 0xfbde, 0xfed0, 0x00c0, 0x002f, 0xfdc5, 0xfb60,
+ 0xfaa5, 0xfb6c, 0xfc37, 0xfca2, 0xfd0d, 0xfd28,
+ 0xfd0f, 0xfcf2, 0xfcde, 0xfe76, 0x01ac, 0x0366,
+ 0x03c7, 0x04c7, 0x04b4, 0x02e1, 0x015e, 0xffef,
+ 0xfd79, 0xfb15, 0xfab2, 0xfcd9, 0x0003, 0x03a6,
+ 0x07d4, 0x0a1b, 0x09fd, 0x0999, 0x0858, 0x06ac,
+ 0x069b, 0x0677, 0x058b, 0x05b4, 0x0603, 0x0524,
+ 0x03aa, 0x025d, 0x01d8, 0x0147, 0x00d4, 0x020a,
+ 0x030a, 0x023f, 0x0114, 0xff48, 0xfd80, 0xfd73,
+ 0xfd9c, 0xfe52, 0x0190, 0x0518, 0x06bd, 0x06b0,
+ 0x04e3, 0x0247, 0x003b, 0xffb2, 0x0117, 0x02de,
+ 0x03ad, 0x0317, 0x00e4, 0xff69, 0xffdf, 0x001d,
+ 0x007b, 0x021f, 0x038d, 0x043e, 0x03e1, 0x0204,
+ 0x0079, 0xff37, 0xfc4b, 0xf9e6, 0xfb5b, 0xfedf,
+ 0x013e, 0x0392, 0x06bf, 0x07eb, 0x071e, 0x0675,
+ 0x04b5, 0x02ee, 0x0394, 0x040f, 0x039c, 0x043c,
+ 0x03fd, 0x0262, 0x017a, 0x0094, 0xffb3, 0xfff9,
+ 0x006e, 0x004c, 0x0011, 0x0079, 0x005d, 0xfda3,
+ 0xfae6, 0xfa92, 0xf9d1, 0xf986, 0xfc3c, 0xfe5e,
+ 0xfeb9, 0xff9c, 0xff2c, 0xfccc, 0xfb76, 0xfbae,
+ 0xfc50, 0xfd09, 0xfd8b, 0xfcd0, 0xfac1, 0xfa8b,
+ 0xfd74, 0xffcc, 0x00c7, 0x0272, 0x0397, 0x032f,
+ 0x01f3, 0x002f, 0xfede, 0xfd54, 0xfa66, 0xf93f,
+ 0xfba1, 0xfea0, 0x0194, 0x053d, 0x07cf, 0x08ac,
+ 0x08ae, 0x077b, 0x0610, 0x0628, 0x066e, 0x05a6,
+ 0x055a, 0x0570, 0x04b9, 0x0491, 0x052e, 0x0504,
+ 0x0525, 0x064d, 0x06a4, 0x05f8, 0x054b, 0x0460,
+ 0x0319, 0x019a, 0x0006, 0xfe82, 0xfcc7, 0xfc1d,
+ 0xfe65, 0x01a0, 0x02c2, 0x02d4, 0x0327, 0x026d,
+ 0x0177, 0x023b, 0x0275, 0x00ab, 0xffce, 0xffe3,
+ 0xff17, 0xffc9, 0x027f, 0x0460, 0x05c0, 0x06d3,
+ 0x0599, 0x0384, 0x0302, 0x02de, 0x013b, 0xfe5b,
+ 0xfc31, 0xfbd8, 0xfc28, 0xfcc0, 0xfedb, 0x0215,
+ 0x047e, 0x054d, 0x0583, 0x059d, 0x04d6, 0x03f8,
+ 0x042d, 0x042b, 0x0329, 0x01f1, 0x00dc, 0x00a4,
+ 0x0103, 0x0041, 0xff05, 0xfe52, 0xfd40, 0xfcaa,
+ 0xfd8e, 0xfdfc, 0xfcfc, 0xfb9a, 0xf9f6, 0xf7df,
+ 0xf644, 0xf6ad, 0xf967, 0xfcaa, 0xfed1, 0xff43,
+ 0xfd8a, 0xfaf5, 0xf9fd, 0xfa64, 0xfab0, 0xfaea,
+ 0xfabc, 0xf9ee, 0xfa14, 0xfb94, 0xfd3a, 0xfeef,
+ 0x0094, 0x0191, 0x0209, 0x01ad, 0x00c6, 0x00d0,
+ 0x0099, 0xfe51, 0xfc04, 0xfb51, 0xfb75, 0xfd67,
+ 0x0113, 0x0374, 0x045d, 0x0582, 0x05c5, 0x052b,
+ 0x05c2, 0x06c3, 0x0763, 0x08c7, 0x0952, 0x0792,
+ 0x061e, 0x0611, 0x062d, 0x06b4, 0x0748, 0x0673,
+ 0x04d5, 0x044c, 0x04e7, 0x04b4, 0x0367, 0x02b7,
+ 0x01aa, 0xff01, 0xfd8d, 0xff13, 0x01ee, 0x0483,
+ 0x0573, 0x04ab, 0x03a1, 0x02b7, 0x0262, 0x02fc,
+ 0x031f, 0x0268, 0x0172, 0x005b, 0x0046, 0x01d3,
+ 0x0462, 0x0797, 0x09f3, 0x0a0d, 0x0905, 0x083c,
+ 0x0790, 0x05a3, 0x022f, 0x0019, 0x0056, 0x0010,
+ 0xffba, 0x01dd, 0x04d3, 0x06d5, 0x096f, 0x0be5,
+ 0x0b46, 0x08ed, 0x07ff, 0x0835, 0x091c, 0x09f3,
+ 0x0818, 0x059b, 0x066a, 0x0840, 0x08b1, 0x0875,
+ 0x0724, 0x0587, 0x04da, 0x046b, 0x03d8, 0x01dc,
+ 0xff14, 0xfeaf, 0xfe35, 0xfb56, 0xfaca, 0xfd2f,
+ 0xff22, 0x00e3, 0x019f, 0x0073, 0xff6f, 0xfee5,
+ 0xfea2, 0xff06, 0xff36, 0xff0a, 0xfe8a, 0xfe5c,
+ 0xff9d, 0x004d, 0x0040, 0x01fe, 0x0388, 0x0371,
+ 0x0385, 0x02df, 0x0211, 0x023b, 0x00b7, 0xfeb1,
+ 0xfe97, 0xfe1c, 0xfe33, 0x00f3, 0x033c, 0x049c,
+ 0x077a, 0x09e0, 0x09e4, 0x0992, 0x0a2a, 0x0a57,
+ 0x09a9, 0x08ee, 0x080f, 0x07d9, 0x0960, 0x0a9e,
+ 0x0aa8, 0x0b53, 0x0b8e, 0x09f3, 0x08a7, 0x08a6,
+ 0x08ad, 0x0833, 0x0786, 0x0672, 0x0442, 0x0251,
+ 0x02c0, 0x043a, 0x0555, 0x070a, 0x08d4, 0x0988,
+ 0x0902, 0x071c, 0x0536, 0x04d6, 0x056f, 0x0647,
+ 0x06a1, 0x0666, 0x071d, 0x08d0, 0x0a25, 0x0ae7,
+ 0x0aca, 0x09d7, 0x0994, 0x0ac9, 0x0bde, 0x0abe,
+ 0x0876, 0x06fe, 0x04ec, 0x0261, 0x02bb, 0x0509,
+ 0x069b, 0x0919, 0x0cd0, 0x0e9a, 0x0dea, 0x0c7c,
+ 0x0abf, 0x0925, 0x0940, 0x0a9a, 0x0b21, 0x0b5e,
+ 0x0c09, 0x0bcc, 0x0baa, 0x0c4d, 0x0a94, 0x070b,
+ 0x055b, 0x0415, 0x0155, 0xffcb, 0x006e, 0x00ba,
+ 0xffc8, 0xfed4, 0xfe65, 0xfe7d, 0xffb1, 0x0173,
+ 0x0216, 0x0149, 0xff99, 0xfd9f, 0xfcc0, 0xfd3d,
+ 0xfdb2, 0xfdae, 0xfd9d, 0xfdf5, 0xff51, 0x0107,
+ 0x0233, 0x03d6, 0x05ba, 0x05a7, 0x0459, 0x03f9,
+ 0x0346, 0x0185, 0x00eb, 0x00e4, 0xff04, 0xfcf8,
+ 0xfd1f, 0xfdfe, 0xfec2, 0x018f, 0x0641, 0x09ae,
+ 0x0b16, 0x0b63, 0x09f0, 0x0807, 0x083f, 0x0923,
+ 0x0910, 0x0967, 0x09b1, 0x0940, 0x0a17, 0x0ba7,
+ 0x0b1d, 0x091e, 0x0779, 0x0528, 0x0249, 0x01fc,
+ 0x03f1, 0x044d, 0x0390, 0x03e3, 0x038c, 0x02ad,
+ 0x0387, 0x0496, 0x046e, 0x0461, 0x04bd, 0x04ce,
+ 0x03e1, 0x0246, 0x01b0, 0x01c6, 0x0141, 0x013d,
+ 0x0231, 0x0304, 0x03b5, 0x04bf, 0x05ba, 0x05a2,
+ 0x0501, 0x0511, 0x0408, 0x01e2, 0x024c, 0x032f,
+ 0x00ca, 0xfef3, 0xff6d, 0xfef4, 0xfefa, 0x0149,
+ 0x030c, 0x03e2, 0x0596, 0x06ed, 0x06ba, 0x0669,
+ 0x068c, 0x0610, 0x058c, 0x05dc, 0x0568, 0x0477,
+ 0x056f, 0x0646, 0x0449, 0x024c, 0x0181, 0xfea2,
+ 0xfabd, 0xf9c8, 0xfa54, 0xfa1e, 0xfb11, 0xfcdb,
+ 0xfc6f, 0xfb05, 0xfbbf, 0xfdda, 0xfedd, 0xfead,
+ 0xfe3e, 0xfcb1, 0xf9ff, 0xf903, 0xf9ae, 0xf91c,
+ 0xf85f, 0xf983, 0xfb7d, 0xfd25, 0xfdd1, 0xfdf0,
+ 0xfe6f, 0xfde5, 0xfca0, 0xfc93, 0xfc57, 0xfc29,
+ 0xfd59, 0xfcb6, 0xfac4, 0xfb60, 0xfbc3, 0xfa44,
+ 0xfb07, 0xfe09, 0x00ce, 0x040e, 0x072b, 0x0759,
+ 0x04ee, 0x0385, 0x040b, 0x0462, 0x0529, 0x06b0,
+ 0x05f7, 0x0484, 0x059f, 0x0648, 0x0585, 0x0671,
+ 0x0619, 0x019d, 0xfdf1, 0xfd9a, 0xfd31, 0xfc47,
+ 0xfce7, 0xfdd3, 0xfce5, 0xfb4d, 0xfbf2, 0xfe9e,
+ 0x003c, 0x0065, 0x00c3, 0x00a8, 0xffc9, 0xff11,
+ 0xfd8f, 0xfc21, 0xfda8, 0x00a9, 0x021d, 0x0260,
+ 0x029e, 0x033b, 0x03c1, 0x03a1, 0x0323, 0x0187,
+ 0xff2f, 0xfe99, 0xfe9a, 0xfd67, 0xfd57, 0xfe1e,
+ 0xfd2e, 0xfc56, 0xfdd7, 0x00b7, 0x039f, 0x0644,
+ 0x07cf, 0x0654, 0x0325, 0x01b6, 0x00eb, 0x0068,
+ 0x02ed, 0x052a, 0x041c, 0x0415, 0x0547, 0x0460,
+ 0x038c, 0x03b3, 0x0171, 0xfc8c, 0xf849, 0xf69b,
+ 0xf692, 0xf6e3, 0xf763, 0xf741, 0xf649, 0xf5a6,
+ 0xf586, 0xf66d, 0xf90a, 0xfbaf, 0xfc9d, 0xfbbe,
+ 0xf9c2, 0xf791, 0xf54b, 0xf448, 0xf650, 0xf90d,
+ 0xfa2a, 0xfad5, 0xfab8, 0xf925, 0xf87d, 0xf9b7,
+ 0xfa7a, 0xf916, 0xf717, 0xf6e3, 0xf7da, 0xf88a,
+ 0xf926, 0xf904, 0xf773, 0xf673, 0xf7f7, 0xfac4,
+ 0xfd07, 0xffd0, 0x032d, 0x03b1, 0x015c, 0xff51,
+ 0xfe1e, 0xff0d, 0x01dd, 0x0238, 0x0131, 0x0241,
+ 0x02d9, 0x0264, 0x0321, 0x036a, 0x0244, 0x009a,
+ 0xfe53, 0xfbcc, 0xf991, 0xf966, 0xfc55, 0xfe41,
+ 0xfd38, 0xfc98, 0xfd1d, 0xfe94, 0x01a1, 0x03d0,
+ 0x03a8, 0x0261, 0x002b, 0xfda8, 0xfbe8, 0xfb80,
+ 0xfd11, 0xff19, 0x0007, 0x00f1, 0x0209, 0x0303,
+ 0x0458, 0x0430, 0x00f0, 0xfd44, 0xfc6d, 0xfe04,
+ 0xff6d, 0xfff4, 0x00b2, 0x0179, 0x01de, 0x0279,
+ 0x032a, 0x03f3, 0x05b0, 0x07fc, 0x0943, 0x0869,
+ 0x056d, 0x023d, 0x021c, 0x0537, 0x077d, 0x0783,
+ 0x07d7, 0x07ff, 0x06d6, 0x06bb, 0x078c, 0x0704,
+ 0x05b3, 0x037d, 0xffe1, 0xfcf7, 0xfbc2, 0xfbca,
+ 0xfc31, 0xfabe, 0xf827, 0xf7ab, 0xf944, 0xfbea,
+ 0xff5b, 0x01c7, 0x0256, 0x0179, 0xff1c, 0xfce2,
+ 0xfc76, 0xfd45, 0xff2c, 0x00b9, 0xfec4, 0xfafe,
+ 0xf9e3, 0xfb52, 0xfd27, 0xfe1f, 0xfcbe, 0xfa6c,
+ 0xfa1b, 0xfa95, 0xfa18, 0xf9ef, 0xfa57, 0xfa8c,
+ 0xfaf7, 0xfb4b, 0xfb5a, 0xfcbe, 0x0016, 0x03d4,
+ 0x068d, 0x07c1, 0x06eb, 0x049f, 0x0330, 0x0391,
+ 0x04c7, 0x06d4, 0x093d, 0x09e0, 0x0888, 0x0724,
+ 0x06e4, 0x070d, 0x05fb, 0x03c1, 0x01ac, 0xffdf,
+ 0xfebd, 0xfe99, 0xfde5, 0xfc11, 0xfa5e, 0xf9c0,
+ 0xfadb, 0xfdc4, 0x01e7, 0x0600, 0x077b, 0x0520,
+ 0x0098, 0xfc88, 0xfb54, 0xfc6b, 0xfce4, 0xfc76,
+ 0xfbf2, 0xfb23, 0xfb00, 0xfc17, 0xfd86, 0xfe4d,
+ 0xfdb3, 0xfd04, 0xfcb9, 0xfb12, 0xfa4e, 0xfc99,
+ 0xfe44, 0xfe4f, 0xfeb3, 0xfe1b, 0xfcce, 0xfcd9,
+ 0xfdab, 0xff5b, 0x0238, 0x03da, 0x0267, 0xfff1,
+ 0x0086, 0x0402, 0x0668, 0x070a, 0x0673, 0x03c4,
+ 0x015d, 0x0123, 0x00d4, 0x0010, 0xffde, 0xfe59,
+ 0xfa32, 0xf5cf, 0xf3cc, 0xf35b, 0xf33a, 0xf3a1,
+ 0xf2ba, 0xf031, 0xefe3, 0xf299, 0xf695, 0xfb44,
+ 0xfdae, 0xfc00, 0xf89e, 0xf55e, 0xf428, 0xf5b7,
+ 0xf771, 0xf8c3, 0xf9f5, 0xf9cf, 0xf9ea, 0xfb43,
+ 0xfbff, 0xfc1d, 0xfb74, 0xf982, 0xf81e, 0xf7f5,
+ 0xf88e, 0xfa21, 0xfbb9, 0xfcc1, 0xfd95, 0xfdbf,
+ 0xfd49, 0xfd2e, 0xfeb6, 0x01e5, 0x046f, 0x04d2,
+ 0x032a, 0x012d, 0x02a0, 0x06ba, 0x08ea, 0x09a5,
+ 0x09d3, 0x0842, 0x0794, 0x08df, 0x099e, 0x0a4a,
+ 0x0b08, 0x098e, 0x05d7, 0x021f, 0x00c2, 0x00ff,
+ 0xffe7, 0xfe24, 0xfd3c, 0xfd36, 0x0025, 0x05af,
+ 0x0a19, 0x0cb2, 0x0db0, 0x0c0f, 0x082e, 0x03bf,
+ 0x01e1, 0x0388, 0x053a, 0x05c8, 0x063b, 0x05f0,
+ 0x0607, 0x06da, 0x05f2, 0x0485, 0x0466, 0x0376,
+ 0x01e3, 0x01d4, 0x028f, 0x037a, 0x04d6, 0x0563,
+ 0x0499, 0x036e, 0x029a, 0x02a9, 0x0391, 0x04da,
+ 0x064d, 0x0665, 0x0432, 0x023d, 0x018a, 0x0075,
+ 0x00b9, 0x038f, 0x05b8, 0x0674, 0x074e, 0x071c,
+ 0x0585, 0x03fd, 0x02bf, 0x011e, 0xfe59, 0xfbbd,
+ 0xfb4a, 0xfada, 0xf869, 0xf5ba, 0xf32b, 0xf0c4,
+ 0xf047, 0xf1a2, 0xf4a7, 0xf8ce, 0xfa0d, 0xf72a,
+ 0xf3d8, 0xf1b0, 0xf0c7, 0xf1b2, 0xf27d, 0xf172,
+ 0xf07f, 0xf131, 0xf231, 0xf1c5, 0xf077, 0xf03b,
+ 0xf096, 0xef45, 0xecf3, 0xeb7d, 0xea19, 0xe7f2,
+ 0xe635, 0xe602, 0xe6ee, 0xe70e, 0xe5b8, 0xe520,
+ 0xe641, 0xe7ef, 0xea4a, 0xed83, 0xf05b, 0xf243,
+ 0xf438, 0xf802, 0xfdde, 0x03d2, 0x086d, 0x0a79,
+ 0x09c9, 0x0993, 0x0af2, 0x0bf6, 0x0daf, 0x0f7d,
+ 0x0e61, 0x0d2c, 0x0dff, 0x0d6a, 0x0bdf, 0x0bbe,
+ 0x0b66, 0x0ab0, 0x0bda, 0x0feb, 0x1607, 0x1b0a,
+ 0x1cd4, 0x1bb8, 0x183c, 0x1538, 0x1580, 0x16c4,
+ 0x16c7, 0x16c6, 0x1778, 0x18b9, 0x1a00, 0x1a71,
+ 0x1a65, 0x19dd, 0x1831, 0x1665, 0x1680, 0x194e,
+ 0x1c53, 0x1ca9, 0x1c36, 0x1d39, 0x1e5d, 0x1fd7,
+ 0x21e7, 0x2255, 0x21ab, 0x21b1, 0x219d, 0x2119,
+ 0x2001, 0x1e01, 0x1ce9, 0x1de8, 0x200e, 0x2278,
+ 0x234c, 0x2106, 0x1df3, 0x1d2c, 0x1e56, 0x1fa8,
+ 0x2052, 0x1f58, 0x1c80, 0x19fa, 0x18df, 0x17a1,
+ 0x1585, 0x12e8, 0x0ff7, 0x0d8d, 0x0d53, 0x1097,
+ 0x15bf, 0x18ec, 0x189b, 0x1510, 0x0f8e, 0x0bf2,
+ 0x0b74, 0x0b8a, 0x0b97, 0x0b69, 0x0ad7, 0x0b5b,
+ 0x0c8d, 0x0e0e, 0x0fdc, 0x0ed7, 0x0bf3, 0x0bf3,
+ 0x0e0f, 0x1025, 0x117e, 0x1090, 0x0f64, 0x0f83,
+ 0x0eca, 0x0e48, 0x0ee8, 0x0efa, 0x0f20, 0x0f05,
+ 0x0dee, 0x0da2, 0x0d41, 0x0bc1, 0x0ad0, 0x0aaa,
+ 0x0c38, 0x0fac, 0x118c, 0x116e, 0x1188, 0x1196,
+ 0x1144, 0x0ffc, 0x0d37, 0x0ab6, 0x0901, 0x071c,
+ 0x049a, 0x0119, 0xfe1a, 0xfccb, 0xfaf2, 0xf835,
+ 0xf7a8, 0xfa7e, 0xfee8, 0x024d, 0x0345, 0x01ed,
+ 0xffe9, 0xffae, 0x00e8, 0x014a, 0x007f, 0xfe9c,
+ 0xfc52, 0xfbcd, 0xfcc3, 0xfdf8, 0xff0f, 0xfe5d,
+ 0xfca0, 0xfc9a, 0xfd82, 0xfe10, 0xfe5c, 0xfe04,
+ 0xfdf2, 0xfe59, 0xfe6a, 0xffd9, 0x02e0, 0x04f8,
+ 0x0637, 0x07a7, 0x085b, 0x078c, 0x0559, 0x0260,
+ 0xffd3, 0xff47, 0x014e, 0x0428, 0x0614, 0x0658,
+ 0x047c, 0x028d, 0x024f, 0x0198, 0xffe6, 0xff07,
+ 0xfe36, 0xfce8, 0xfb71, 0xf8bb, 0xf5ee, 0xf549,
+ 0xf5b4, 0xf630, 0xf7f0, 0xfb0e, 0xfe19, 0x000a,
+ 0x00bf, 0x0032, 0xfed3, 0xfe14, 0xfe58, 0xfe69,
+ 0xfe64, 0xfecb, 0xfe91, 0xfdbc, 0xfd5e, 0xfcd0,
+ 0xfb51, 0xf99f, 0xf854, 0xf7de, 0xf8b2, 0xfa4d,
+ 0xfc06, 0xfd48, 0xfd0a, 0xfb83, 0xfa10, 0xf92d,
+ 0xf922, 0xfa4c, 0xfbec, 0xfcfd, 0xfcc0, 0xfac8,
+ 0xf7dc, 0xf570, 0xf498, 0xf5a4, 0xf796, 0xf90d,
+ 0xf94c, 0xf875, 0xf843, 0xf9db, 0xfb60, 0xfb25,
+ 0xf9f2, 0xf8d2, 0xf826, 0xf741, 0xf45f, 0xeff1,
+ 0xed3c, 0xed73, 0xee5c, 0xeec8, 0xf060, 0xf44b,
+ 0xf93c, 0xfd1c, 0xfe53, 0xfc40, 0xf86f, 0xf5f6,
+ 0xf647, 0xf844, 0xfab5, 0xfcd2, 0xfd67, 0xfc96,
+ 0xfbe2, 0xfb4c, 0xfa1d, 0xf929, 0xf91d, 0xf9b6,
+ 0xfad8, 0xfc28, 0xfd3f, 0xfe82, 0x0031, 0x01f1,
+ 0x0324, 0x0378, 0x03f7, 0x05ac, 0x080c, 0x0a3e,
+ 0x0abb, 0x07e9, 0x0451, 0x034d, 0x0364, 0x03a6,
+ 0x0591, 0x0726, 0x0685, 0x05b5, 0x052e, 0x0424,
+ 0x0382, 0x0347, 0x0311, 0x0371, 0x0378, 0x0185,
+ 0xfdae, 0xf997, 0xf6ee, 0xf589, 0xf468, 0xf3c8,
+ 0xf420, 0xf5bd, 0xf8a7, 0xfb48, 0xfb83, 0xf936,
+ 0xf68c, 0xf548, 0xf45b, 0xf2dc, 0xf203, 0xf185,
+ 0xf05b, 0xefad, 0xef93, 0xee42, 0xec27, 0xeb4a,
+ 0xec02, 0xed5c, 0xee5a, 0xee18, 0xed6a, 0xee0c,
+ 0xef19, 0xef39, 0xefaf, 0xf0e4, 0xf19f, 0xf171,
+ 0xf040, 0xee54, 0xeb48, 0xe737, 0xe578, 0xe613,
+ 0xe591, 0xe6cc, 0xeb9d, 0xee8d, 0xeead, 0xeed1,
+ 0xee47, 0xed54, 0xecc7, 0xecb5, 0xee0e, 0xee88,
+ 0xecbe, 0xebf2, 0xebb5, 0xe9b8, 0xe7db, 0xe72f,
+ 0xe74a, 0xe8f5, 0xec35, 0xf030, 0xf37f, 0xf51b,
+ 0xf5c0, 0xf5ed, 0xf5e2, 0xf668, 0xf771, 0xf8ed,
+ 0xfa8c, 0xfb8b, 0xfcc6, 0xfee4, 0x00bf, 0x0183,
+ 0x0156, 0x0143, 0x01d6, 0x0291, 0x0370, 0x03a6,
+ 0x037f, 0x05ce, 0x097b, 0x0bfe, 0x0f2a, 0x129c,
+ 0x146d, 0x165a, 0x1815, 0x17de, 0x165c, 0x13c1,
+ 0x11b0, 0x123e, 0x13e5, 0x16d1, 0x1c04, 0x1ffd,
+ 0x20fa, 0x215b, 0x2168, 0x2013, 0x1e63, 0x1d9b,
+ 0x1ce9, 0x1b23, 0x1914, 0x1735, 0x1420, 0x0fa9,
+ 0x0c0d, 0x0b1e, 0x0bb9, 0x0b83, 0x0ad3, 0x0b70,
+ 0x0d74, 0x0f8c, 0x0fb0, 0x0d47, 0x0a5a, 0x0853,
+ 0x06d9, 0x050e, 0x020c, 0xfec9, 0xfd55, 0xfde4,
+ 0xff58, 0x0047, 0xffac, 0xfeec, 0x0031, 0x0240,
+ 0x01c9, 0xff1d, 0xfda4, 0xfdef, 0xfeaf, 0x0088,
+ 0x031d, 0x0463, 0x051c, 0x07bb, 0x0af0, 0x0ae1,
+ 0x083a, 0x05fc, 0x02fb, 0xff7d, 0xff51, 0x0221,
+ 0x05fa, 0x0a4f, 0x0d28, 0x0ea3, 0x0f11, 0x0c68,
+ 0x0982, 0x097f, 0x0987, 0x08b7, 0x07ef, 0x065d,
+ 0x04ae, 0x034a, 0x030a, 0x04e3, 0x057f, 0x0409,
+ 0x0402, 0x0560, 0x0734, 0x08f0, 0x08c2, 0x082d,
+ 0x08c7, 0x0982, 0x0ab2, 0x0b2e, 0x091d, 0x067c,
+ 0x05a0, 0x073d, 0x09c0, 0x0a3b, 0x09c4, 0x0aee,
+ 0x0e0b, 0x1225, 0x13c7, 0x11ec, 0x0ff2, 0x0e74,
+ 0x0dc5, 0x0ef8, 0x0f8d, 0x0fd7, 0x123f, 0x14ee,
+ 0x16b2, 0x1730, 0x15dc, 0x141a, 0x103c, 0x0a02,
+ 0x0739, 0x0873, 0x0a97, 0x0e0b, 0x1067, 0x0f1b,
+ 0x0c45, 0x0948, 0x074a, 0x06e6, 0x0599, 0x031b,
+ 0x0114, 0xfeb4, 0xfb5a, 0xf7f7, 0xf5c6, 0xf5b9,
+ 0xf6ff, 0xf7d3, 0xf75e, 0xf672, 0xf6b7, 0xf7f9,
+ 0xf8b3, 0xf8d3, 0xf938, 0xfa21, 0xfa89, 0xf9ca,
+ 0xf8d9, 0xf80e, 0xf7d6, 0xf91f, 0xf99a, 0xf75a,
+ 0xf56b, 0xf6a9, 0xfa9b, 0xfef5, 0x0103, 0x006f,
+ 0xfe5e, 0xfb8a, 0xf9d4, 0xfa8f, 0xfc86, 0xfe6c,
+ 0xffc7, 0x002a, 0xff6d, 0xfe7a, 0xfe77, 0xfe1e,
+ 0xfc10, 0xfa16, 0xf9f1, 0xfbe5, 0xff5d, 0x01fd,
+ 0x02c9, 0x028b, 0x007a, 0xfd83, 0xfcd1, 0xfe0c,
+ 0xff00, 0x0016, 0x022d, 0x03bf, 0x0329, 0x01cd,
+ 0x01fe, 0x0419, 0x06f0, 0x0838, 0x071a, 0x05f7,
+ 0x0651, 0x0778, 0x088c, 0x0891, 0x0896, 0x0a76,
+ 0x0c81, 0x0cd7, 0x0c75, 0x0c28, 0x0bbd, 0x0b0c,
+ 0x0a17, 0x0865, 0x065a, 0x0730, 0x0ac3, 0x0c28,
+ 0x0b4e, 0x0a09, 0x06f1, 0x04e6, 0x0661, 0x07e8,
+ 0x09d3, 0x0d5f, 0x0f4f, 0x0fae, 0x0f0c, 0x0bbe,
+ 0x08b1, 0x07e0, 0x064e, 0x03b5, 0x0260, 0x039a,
+ 0x0728, 0x0a8f, 0x0c4a, 0x0bfa, 0x08bf, 0x04f4,
+ 0x03aa, 0x03e2, 0x0430, 0x03db, 0x023b, 0x0060,
+ 0xfea6, 0xfd5a, 0xfe72, 0x0090, 0x0094, 0xfefc,
+ 0xfca9, 0xfa54, 0xf98b, 0xf87d, 0xf5a4, 0xf46f,
+ 0xf66a, 0xf8ed, 0xfa32, 0xf994, 0xf7c5, 0xf6d8,
+ 0xf6d0, 0xf6dd, 0xf6ee, 0xf61b, 0xf58e, 0xf7be,
+ 0xfa69, 0xfa9d, 0xf9a3, 0xf806, 0xf5b8, 0xf547,
+ 0xf712, 0xf8ab, 0xfa10, 0xfc66, 0xff38, 0x0133,
+ 0x00b1, 0xfdba, 0xfb0b, 0xfa28, 0xf9e1, 0xf9d0,
+ 0xfb2a, 0xfe40, 0x0167, 0x0351, 0x04a5, 0x0556,
+ 0x0426, 0x0277, 0x02ca, 0x0464, 0x052f, 0x04b4,
+ 0x0373, 0x01fd, 0x00df, 0x00c9, 0x01ed, 0x0346,
+ 0x039e, 0x01fe, 0xfed3, 0xfcea, 0xfce5, 0xfc0e,
+ 0xfa7a, 0xfa74, 0xfc49, 0xff30, 0x012c, 0x009d,
+ 0xff09, 0xfdd9, 0xfd8e, 0xff18, 0x0080, 0xffd8,
+ 0xff81, 0x0058, 0x0045, 0xff80, 0xfef0, 0xfde8,
+ 0xfcc0, 0xfcfc, 0xfe6b, 0xff2c, 0xff77, 0x0180,
+ 0x04c4, 0x0684, 0x05a4, 0x02bd, 0xff2b, 0xfc17,
+ 0xf9d0, 0xf943, 0xfb52, 0xfe95, 0x00f0, 0x01f8,
+ 0x0235, 0x018e, 0xff99, 0xfd30, 0xfc2f, 0xfcd9,
+ 0xfcf8, 0xfb4f, 0xf940, 0xf745, 0xf559, 0xf5b9,
+ 0xf86e, 0xfa4f, 0xfa09, 0xf746, 0xf365, 0xf290,
+ 0xf450, 0xf525, 0xf619, 0xf7ee, 0xf987, 0xfb81,
+ 0xfc98, 0xfba0, 0xfb0a, 0xfb82, 0xfbfb, 0xfcb4,
+ 0xfd1c, 0xfcea, 0xfd36, 0xfe91, 0x00f8, 0x0383,
+ 0x04ff, 0x04b6, 0x0285, 0x00e8, 0x0196, 0x024a,
+ 0x033b, 0x0687, 0x0a11, 0x0bdf, 0x0c28, 0x0aa3,
+ 0x086e, 0x069c, 0x052b, 0x057c, 0x0771, 0x09a2,
+ 0x0c9c, 0x0f8f, 0x1066, 0x0f45, 0x0cea, 0x0ab0,
+ 0x0a6b, 0x0b77, 0x0c2f, 0x0bed, 0x0a39, 0x07bb,
+ 0x0642, 0x06ed, 0x0976, 0x0bfe, 0x0bf6, 0x08a8,
+ 0x0485, 0x021a, 0x00d7, 0xffc7, 0xffe4, 0x0195,
+ 0x0405, 0x05ea, 0x060a, 0x050a, 0x03f2, 0x02c2,
+ 0x0263, 0x02d2, 0x0216, 0xffeb, 0xfd9c, 0xfc92,
+ 0xfe28, 0x0155, 0x03bd, 0x042a, 0x022d, 0xff49,
+ 0xfdbb, 0xfdb5, 0xff64, 0x02b2, 0x055a, 0x05d5,
+ 0x0444, 0x014d, 0xfe63, 0xfc1d, 0xfad4, 0xfbf3,
+ 0xfef0, 0x01df, 0x0444, 0x0528, 0x0380, 0x00a9,
+ 0xfeac, 0xfe46, 0xfedb, 0xff09, 0xfe1c, 0xfc2c,
+ 0xf99f, 0xf7c3, 0xf7fd, 0xf9f8, 0xfbee, 0xfc8b,
+ 0xfbc5, 0xfa27, 0xf840, 0xf657, 0xf4b0, 0xf467,
+ 0xf65d, 0xf98f, 0xfc10, 0xfc9f, 0xfb91, 0xfa8a,
+ 0xfa58, 0xfafd, 0xfcc3, 0xfebe, 0xff72, 0xff40,
+ 0xff63, 0x00a6, 0x02f5, 0x04fc, 0x05e8, 0x05ea,
+ 0x050a, 0x03b4, 0x02a6, 0x027f, 0x045c, 0x07db,
+ 0x0a6d, 0x0ad9, 0x0946, 0x05a6, 0x01f7, 0x0135,
+ 0x0301, 0x0521, 0x070c, 0x0930, 0x0b77, 0x0cbb,
+ 0x0bb8, 0x0956, 0x074b, 0x05cc, 0x0538, 0x05a8,
+ 0x0565, 0x03e7, 0x025f, 0x01ae, 0x02e0, 0x0536,
+ 0x05a7, 0x0389, 0x0058, 0xfcb7, 0xf96b, 0xf6f6,
+ 0xf53e, 0xf53b, 0xf77c, 0xfadf, 0xfdff, 0xffa9,
+ 0xff40, 0xfd3f, 0xfb0f, 0xfa17, 0xfa15, 0xf9e5,
+ 0xf931, 0xf805, 0xf784, 0xf8d0, 0xfa32, 0xfa61,
+ 0xfa56, 0xf9ab, 0xf7f0, 0xf6ab, 0xf687, 0xf789,
+ 0xf9bb, 0xfba3, 0xfc3b, 0xfc2d, 0xfb43, 0xf8f1,
+ 0xf6fd, 0xf79f, 0xfa06, 0xfbe1, 0xfd27, 0xff5e,
+ 0x020b, 0x02db, 0x016a, 0xffd3, 0xfeb5, 0xfd6d,
+ 0xfd3c, 0xfe71, 0xfee2, 0xfe31, 0xfda3, 0xfe00,
+ 0x001d, 0x02cf, 0x039f, 0x032b, 0x029f, 0x00b5,
+ 0xfd60, 0xfa70, 0xf8c1, 0xf8dd, 0xfb89, 0xffcd,
+ 0x037c, 0x0583, 0x05ab, 0x0476, 0x0375, 0x0335,
+ 0x0331, 0x0380, 0x0391, 0x0336, 0x045c, 0x06e3,
+ 0x0832, 0x0830, 0x0831, 0x07eb, 0x070e, 0x0698,
+ 0x07b2, 0x09af, 0x0ab9, 0x0ad2, 0x0ae5, 0x0a82,
+ 0x08f4, 0x06a8, 0x059d, 0x0711, 0x08ac, 0x089e,
+ 0x0922, 0x0b74, 0x0d52, 0x0d3d, 0x0c22, 0x0a9b,
+ 0x080d, 0x0556, 0x0468, 0x049d, 0x0414, 0x0316,
+ 0x02d9, 0x03ec, 0x05de, 0x0711, 0x0664, 0x041a,
+ 0x00e2, 0xfd43, 0xf99d, 0xf689, 0xf4a7, 0xf456,
+ 0xf610, 0xf96b, 0xfc90, 0xfdfc, 0xfd53, 0xfb9b,
+ 0xfab4, 0xfad2, 0xfacb, 0xf9ea, 0xf806, 0xf694,
+ 0xf71e, 0xf832, 0xf882, 0xf8b1, 0xf85c, 0xf6ed,
+ 0xf573, 0xf55c, 0xf713, 0xf900, 0xf99d, 0xf9e4,
+ 0xfa58, 0xf9ce, 0xf84f, 0xf6ed, 0xf6c7, 0xf846,
+ 0xf9b6, 0xfa5e, 0xfc45, 0xff73, 0x0174, 0x01e0,
+ 0x01ab, 0x0048, 0xfd5b, 0xfa93, 0xf96e, 0xf92c,
+ 0xf8fe, 0xf9ac, 0xfbb4, 0xfe5f, 0x00a0, 0x01a7,
+ 0x016a, 0x0081, 0xff0c, 0xfcc9, 0xfa2a, 0xf832,
+ 0xf773, 0xf82d, 0xfae6, 0xff26, 0x02bc, 0x03fe,
+ 0x0385, 0x0329, 0x03fe, 0x0563, 0x0639, 0x0654,
+ 0x063e, 0x068f, 0x0745, 0x07eb, 0x08d6, 0x0a40,
+ 0x0ae4, 0x09ce, 0x0812, 0x0790, 0x0891, 0x09cd,
+ 0x0b2b, 0x0d33, 0x0e51, 0x0d14, 0x0a70, 0x07ea,
+ 0x06db, 0x075d, 0x080a, 0x0974, 0x0cb2, 0x0f9f,
+ 0x10a0, 0x105a, 0x0e67, 0x0ac6, 0x0748, 0x0517,
+ 0x0429, 0x0392, 0x02c3, 0x02fd, 0x0499, 0x0634,
+ 0x0763, 0x0787, 0x05c4, 0x0343, 0x00a6, 0xfd56,
+ 0xfa3b, 0xf814, 0xf6b7, 0xf727, 0xfa22, 0xfe99,
+ 0x020e, 0x0240, 0x0073, 0xff95, 0xff7a, 0xfeca,
+ 0xfda0, 0xfc9c, 0xfc4b, 0xfc35, 0xfbef, 0xfcb6,
+ 0xfe83, 0xffcc, 0x002c, 0xff87, 0xfeb0, 0xff38,
+ 0x0005, 0x0022, 0x00e7, 0x01d8, 0x01d5, 0x0152,
+ 0x001c, 0xfef7, 0xff59, 0x002b, 0x00f6, 0x0332,
+ 0x064a, 0x08c1, 0x0a66, 0x0b05, 0x0a54, 0x084a,
+ 0x059b, 0x0404, 0x0398, 0x031e, 0x037c, 0x058d,
+ 0x07d9, 0x09a1, 0x0af9, 0x0b0f, 0x09fb, 0x0868,
+ 0x05fd, 0x0367, 0x01d7, 0x00b4, 0xffe9, 0x00fb,
+ 0x0475, 0x08cc, 0x0b3e, 0x0ad4, 0x09f7, 0x0a2d,
+ 0x0a0d, 0x08fc, 0x0826, 0x086a, 0x0945, 0x098f,
+ 0x09ad, 0x0abf, 0x0c2c, 0x0cf2, 0x0ca5, 0x0b40,
+ 0x0a16, 0x0a0d, 0x0a47, 0x0a5a, 0x0a74, 0x0a74,
+ 0x09ed, 0x0840, 0x0650, 0x05a2, 0x0583, 0x0558,
+ 0x062f, 0x0805, 0x09ed, 0x0b79, 0x0c54, 0x0c25,
+ 0x0a4b, 0x0711, 0x045b, 0x02b6, 0x0138, 0x0047,
+ 0x00ad, 0x01cc, 0x0280, 0x029c, 0x02ad, 0x0240,
+ 0x0063, 0xfd72, 0xfa51, 0xf79b, 0xf561, 0xf338,
+ 0xf202, 0xf379, 0xf757, 0xfb3e, 0xfcbf, 0xfbf7,
+ 0xfb70, 0xfb8a, 0xfa83, 0xf8f3, 0xf873, 0xf890,
+ 0xf839, 0xf7a5, 0xf838, 0xfa68, 0xfcb0, 0xfddc,
+ 0xfe00, 0xfd81, 0xfcdd, 0xfc6a, 0xfc63, 0xfccf,
+ 0xfd4c, 0xfdcc, 0xfe12, 0xfd7b, 0xfce0, 0xfd1a,
+ 0xfd60, 0xfdd4, 0xff6e, 0x01eb, 0x047d, 0x069c,
+ 0x084e, 0x095a, 0x0890, 0x065a, 0x0466, 0x0295,
+ 0x0142, 0x0230, 0x04b4, 0x0669, 0x06a8, 0x0679,
+ 0x069a, 0x0653, 0x04d1, 0x02d9, 0x01a1, 0x0121,
+ 0xfffd, 0xfdd6, 0xfd10, 0xff51, 0x0309, 0x0635,
+ 0x07f0, 0x08b4, 0x096d, 0x091d, 0x074d, 0x0654,
+ 0x06ff, 0x079e, 0x076d, 0x06db, 0x06f5, 0x0830,
+ 0x0934, 0x0967, 0x0998, 0x09c8, 0x09b5, 0x097c,
+ 0x0917, 0x08b0, 0x0813, 0x06f0, 0x05da, 0x050c,
+ 0x0427, 0x034a, 0x028d, 0x021c, 0x0295, 0x03bb,
+ 0x050c, 0x06ce, 0x0871, 0x08af, 0x07b6, 0x0621,
+ 0x037c, 0x0039, 0xfe7b, 0xff21, 0x005f, 0x004c,
+ 0xff2b, 0xfe5b, 0xfdf1, 0xfcd5, 0xfac2, 0xf897,
+ 0xf6f2, 0xf57f, 0xf3a1, 0xf1cf, 0xf185, 0xf352,
+ 0xf628, 0xf891, 0xfa01, 0xfb18, 0xfbda, 0xfb39,
+ 0xf9c7, 0xf973, 0xf9ff, 0xf9c4, 0xf8cf, 0xf85e,
+ 0xf92d, 0xfacc, 0xfc29, 0xfd63, 0xfec5, 0xff17,
+ 0xfe6b, 0xfe67, 0xfe94, 0xfde4, 0xfd1c, 0xfc92,
+ 0xfbfb, 0xfb98, 0xfb43, 0xfaca, 0xfa72, 0xfa8a,
+ 0xfbae, 0xfdc5, 0xffe5, 0x01d8, 0x0359, 0x03fa,
+ 0x040a, 0x0314, 0x00bf, 0xfef7, 0xffa6, 0x0235,
+ 0x0429, 0x0425, 0x03d7, 0x0459, 0x0482, 0x041a,
+ 0x0369, 0x025c, 0x017c, 0xfff6, 0xfd35, 0xfbc3,
+ 0xfcca, 0xfeb5, 0x00e7, 0x033a, 0x0559, 0x06fb,
+ 0x0708, 0x05b5, 0x04b6, 0x047d, 0x04c4, 0x04ee,
+ 0x0440, 0x03eb, 0x04e9, 0x05da, 0x064f, 0x074d,
+ 0x0851, 0x084e, 0x07d6, 0x079a, 0x0706, 0x05d5,
+ 0x047b, 0x0314, 0x0211, 0x01a9, 0x010b, 0x0054,
+ 0x0009, 0xffbd, 0x0015, 0x01f4, 0x0443, 0x05f7,
+ 0x0704, 0x075b, 0x068a, 0x03c2, 0x0000, 0xfe19,
+ 0xff05, 0x0144, 0x02ca, 0x0280, 0x01a5, 0x0144,
+ 0x0047, 0xfe6b, 0xfc7a, 0xfa6b, 0xf7f9, 0xf501,
+ 0xf20c, 0xf0a3, 0xf14a, 0xf301, 0xf4e4, 0xf708,
+ 0xf972, 0xfad4, 0xfa8b, 0xf9f2, 0xf9bc, 0xf9c6,
+ 0xfa22, 0xfa2b, 0xfa03, 0xfaa7, 0xfb98, 0xfc7b,
+ 0xfdf7, 0xffa8, 0x00b0, 0x00d8, 0x00eb, 0x01ec,
+ 0x0308, 0x033f, 0x032f, 0x02fd, 0x02a0, 0x025c,
+ 0x018b, 0x0091, 0x00b6, 0x01a8, 0x0344, 0x05e5,
+ 0x08ae, 0x0b28, 0x0d6e, 0x0e8d, 0x0dc1, 0x0ba2,
+ 0x09b9, 0x0952, 0x0a2d, 0x0b3e, 0x0bda, 0x0b9f,
+ 0x0b14, 0x0b31, 0x0b86, 0x0b2f, 0x0aa4, 0x0a0d,
+ 0x0847, 0x0585, 0x0398, 0x0352, 0x0444, 0x05bd,
+ 0x0785, 0x0a0f, 0x0c90, 0x0d91, 0x0dff, 0x0ee5,
+ 0x0f3d, 0x0efc, 0x0ee1, 0x0e9c, 0x0e5e, 0x0eb8,
+ 0x0f4b, 0x1003, 0x115a, 0x12e0, 0x1350, 0x1283,
+ 0x1188, 0x1097, 0x0f71, 0x0e52, 0x0d01, 0x0b79,
+ 0x0a14, 0x0869, 0x0687, 0x0528, 0x047e, 0x04a8,
+ 0x055e, 0x061c, 0x070e, 0x07e8, 0x0836, 0x07c3,
+ 0x05bb, 0x031b, 0x0258, 0x036e, 0x04cb, 0x052d,
+ 0x0418, 0x02b9, 0x0187, 0xffff, 0xfec0, 0xfd7d,
+ 0xfb91, 0xf9a9, 0xf730, 0xf423, 0xf2b6, 0xf325,
+ 0xf44b, 0xf619, 0xf83c, 0xfa32, 0xfb1d, 0xfa7b,
+ 0xfa10, 0xfaca, 0xfb40, 0xfb22, 0xfb2c, 0xfb9d,
+ 0xfc40, 0xfc7e, 0xfcb1, 0xfdee, 0x000b, 0x01d3,
+ 0x025d, 0x0203, 0x016a, 0x002c, 0xfe8a, 0xfd89,
+ 0xfd37, 0xfd62, 0xfd7c, 0xfcde, 0xfc22, 0xfb93,
+ 0xfb5b, 0xfc2c, 0xfd2b, 0xfe0d, 0x002f, 0x02e4,
+ 0x04c9, 0x0571, 0x0480, 0x03d6, 0x057f, 0x0838,
+ 0x0a60, 0x0b77, 0x0b88, 0x0b25, 0x0a33, 0x0914,
+ 0x088e, 0x07c9, 0x06f1, 0x068d, 0x0525, 0x0367,
+ 0x0318, 0x02fd, 0x02ac, 0x0398, 0x0591, 0x074c,
+ 0x07ee, 0x0830, 0x0944, 0x0a1a, 0x099e, 0x08ad,
+ 0x080d, 0x0823, 0x08a7, 0x08cd, 0x093f, 0x0aaa,
+ 0x0c43, 0x0d65, 0x0dd7, 0x0d88, 0x0ccc, 0x0bce,
+ 0x0a97, 0x095a, 0x0895, 0x081f, 0x0697, 0x041f,
+ 0x026a, 0x01ae, 0x01c2, 0x02b7, 0x039b, 0x0461,
+ 0x059e, 0x06d0, 0x0727, 0x05ab, 0x033c, 0x02d7,
+ 0x0488, 0x062d, 0x075e, 0x07c4, 0x0717, 0x0601,
+ 0x0482, 0x02ec, 0x0180, 0xff51, 0xfc9b, 0xfa41,
+ 0xf831, 0xf6b5, 0xf5e6, 0xf599, 0xf66b, 0xf841,
+ 0xf9f1, 0xfaa0, 0xfa61, 0xfa54, 0xfad3, 0xfaec,
+ 0xfab0, 0xfae4, 0xfba0, 0xfca4, 0xfd50, 0xfd73,
+ 0xfdd2, 0xfeac, 0xff74, 0xfffc, 0x0078, 0x00a0,
+ 0x0005, 0xff39, 0xfec0, 0xfe75, 0xfec9, 0xff5e,
+ 0xfeb3, 0xfd18, 0xfbc6, 0xfad9, 0xfaa7, 0xfb48,
+ 0xfbef, 0xfc92, 0xfe06, 0x0033, 0x013d, 0x001a,
+ 0xff05, 0xffcf, 0x019e, 0x0379, 0x0484, 0x046c,
+ 0x0445, 0x03fc, 0x02ec, 0x01b9, 0x005d, 0xfea2,
+ 0xfd21, 0xfbcb, 0xfaf4, 0xfb02, 0xfb15, 0xfb8e,
+ 0xfd6b, 0xff8a, 0x00cd, 0x0150, 0x0155, 0x017a,
+ 0x01ec, 0x0247, 0x02c3, 0x0390, 0x0499, 0x05df,
+ 0x06b0, 0x0699, 0x069a, 0x071a, 0x076b, 0x07e7,
+ 0x08fa, 0x0967, 0x0898, 0x0782, 0x0664, 0x0537,
+ 0x0493, 0x0404, 0x02bd, 0x014a, 0x0037, 0xff4e,
+ 0xfec3, 0xfee7, 0xff59, 0xffd5, 0x00ae, 0x01a5,
+ 0x01d5, 0x0120, 0x0062, 0x007e, 0x0164, 0x01f1,
+ 0x01a9, 0x015d, 0x016c, 0x0131, 0x001d, 0xfe48,
+ 0xfbfb, 0xf92a, 0xf658, 0xf498, 0xf387, 0xf247,
+ 0xf164, 0xf16f, 0xf262, 0xf3cb, 0xf495, 0xf4bd,
+ 0xf53c, 0xf5f8, 0xf64c, 0xf608, 0xf586, 0xf5ba,
+ 0xf6d1, 0xf7e6, 0xf894, 0xf96b, 0xface, 0xfbe0,
+ 0xfbf8, 0xfc43, 0xfd40, 0xfdb4, 0xfd30, 0xfc19,
+ 0xfb14, 0xfaf8, 0xfb43, 0xfadc, 0xf9c5, 0xf8d1,
+ 0xf8b5, 0xf8d9, 0xf8c1, 0xf97c, 0xfadf, 0xfc19,
+ 0xfdcb, 0xff64, 0xfffe, 0x00d7, 0x0288, 0x0490,
+ 0x0684, 0x0776, 0x078f, 0x07b2, 0x0799, 0x072c,
+ 0x0666, 0x0505, 0x03b0, 0x02b7, 0x01f4, 0x018c,
+ 0x00f7, 0x001d, 0xffd9, 0x008f, 0x0246, 0x03eb,
+ 0x0464, 0x04e7, 0x0638, 0x0716, 0x06f6, 0x0656,
+ 0x05d8, 0x05ed, 0x0667, 0x074c, 0x08d8, 0x0aed,
+ 0x0ce9, 0x0db3, 0x0df8, 0x0f0b, 0x0f43, 0x0dcc,
+ 0x0ca8, 0x0c0d, 0x0b62, 0x0b20, 0x0a9d, 0x094b,
+ 0x07bb, 0x062a, 0x04d3, 0x03f7, 0x03f6, 0x04b2,
+ 0x04c2, 0x044f, 0x0481, 0x0480, 0x0465, 0x055d,
+ 0x06cc, 0x0831, 0x0912, 0x089a, 0x07e8, 0x077f,
+ 0x0641, 0x0487, 0x02a6, 0x0059, 0xfe33, 0xfc65,
+ 0xfafd, 0xfa1b, 0xf8ec, 0xf767, 0xf694, 0xf722,
+ 0xf906, 0xfa69, 0xfa11, 0xf9d4, 0xfa8c, 0xfabd,
+ 0xfa2c, 0xf9c3, 0xf9f8, 0xfa93, 0xfae6, 0xfb0b,
+ 0xfba7, 0xfcaf, 0xfd9b, 0xfe36, 0xff24, 0x007a,
+ 0x00a8, 0xff35, 0xfdaa, 0xfcc5, 0xfc80, 0xfce8,
+ 0xfd25, 0xfc83, 0xfb7f, 0xfaac, 0xfa4d, 0xfa70,
+ 0xfa7d, 0xfa2a, 0xfa66, 0xfb9e, 0xfcb2, 0xfd75,
+ 0xff0e, 0x0144, 0x0306, 0x041a, 0x0469, 0x0445,
+ 0x04b3, 0x0574, 0x051d, 0x0356, 0x0113, 0xfefe,
+ 0xfd04, 0xfb8d, 0xfb1c, 0xfb1f, 0xfb27, 0xfbc8,
+ 0xfd31, 0xff14, 0x00e4, 0x01b6, 0x01a1, 0x01dd,
+ 0x02ab, 0x035e, 0x039f, 0x03a7, 0x0404, 0x04e5,
+ 0x05cb, 0x069b, 0x0785, 0x0827, 0x0867, 0x08f5,
+ 0x09f1, 0x0a6b, 0x09ad, 0x084d, 0x0730, 0x064a,
+ 0x05bb, 0x05fc, 0x063c, 0x058c, 0x0430, 0x0277,
+ 0x0139, 0x0157, 0x019d, 0x0112, 0x00ba, 0x00c1,
+ 0x00ad, 0x0131, 0x02aa, 0x0467, 0x05d3, 0x06e6,
+ 0x078d, 0x077b, 0x0727, 0x06de, 0x0598, 0x0348,
+ 0x00f1, 0xfe52, 0xfb82, 0xf960, 0xf78b, 0xf5e8,
+ 0xf547, 0xf599, 0xf671, 0xf7ad, 0xf8b6, 0xf8bd,
+ 0xf7ce, 0xf729, 0xf74b, 0xf765, 0xf73b, 0xf6f4,
+ 0xf6e5, 0xf7fb, 0xf9ae, 0xfacb, 0xfbb3, 0xfc63,
+ 0xfc8f, 0xfd31, 0xfe4a, 0xfed0, 0xfe8a, 0xfda6,
+ 0xfc82, 0xfb83, 0xfaed, 0xfae2, 0xfab0, 0xfa1c,
+ 0xf9d7, 0xf985, 0xf926, 0xf97e, 0xf991, 0xf8e1,
+ 0xf8b1, 0xf93b, 0xfa5a, 0xfc60, 0xfec9, 0x010e,
+ 0x0307, 0x0483, 0x059c, 0x067d, 0x0758, 0x0798,
+ 0x061f, 0x039f, 0x0154, 0xff72, 0xfe96, 0xfe5d,
+ 0xfd57, 0xfc4b, 0xfc68, 0xfd56, 0xfee3, 0x00a6,
+ 0x0202, 0x02e7, 0x0341, 0x0362, 0x0386, 0x033c,
+ 0x02e2, 0x02ec, 0x035a, 0x0490, 0x0607, 0x071c,
+ 0x087b, 0x09ca, 0x0a65, 0x0b25, 0x0c10, 0x0c61,
+ 0x0c18, 0x0b3b, 0x09fc, 0x08f2, 0x0855, 0x07f6,
+ 0x0774, 0x06c1, 0x05c1, 0x043e, 0x0339, 0x02f0,
+ 0x01b1, 0xff9d, 0xfe57, 0xfe07, 0xfeb1, 0x0049,
+ 0x01e7, 0x035d, 0x04a2, 0x0511, 0x04d1, 0x047b,
+ 0x0418, 0x02e4, 0x0033, 0xfce9, 0xfa0a, 0xf7ae,
+ 0xf65d, 0xf5d1, 0xf4e1, 0xf3da, 0xf32c, 0xf2c3,
+ 0xf367, 0xf4e8, 0xf612, 0xf6b5, 0xf6f9, 0xf6fa,
+ 0xf6f2, 0xf68b, 0xf5b4, 0xf51e, 0xf58b, 0xf708,
+ 0xf85c, 0xf922, 0xfa8f, 0xfc61, 0xfd6f, 0xfdda,
+ 0xfdaa, 0xfd33, 0xfd40, 0xfd2d, 0xfc8f, 0xfc54,
+ 0xfc8b, 0xfc9a, 0xfc5c, 0xfbeb, 0xfb95, 0xfb84,
+ 0xfbc7, 0xfc29, 0xfbfa, 0xfb8a, 0xfba5, 0xfc11,
+ 0xfd3a, 0xffa3, 0x0238, 0x048f, 0x06c7, 0x0823,
+ 0x08d8, 0x0988, 0x09a3, 0x08b3, 0x06e5, 0x04ad,
+ 0x02b3, 0x0161, 0x00e5, 0x00b9, 0x0034, 0x0025,
+ 0x00f9, 0x01f2, 0x0342, 0x04fa, 0x0686, 0x07f2,
+ 0x08b0, 0x086f, 0x0899, 0x0987, 0x0a25, 0x0a62,
+ 0x0af7, 0x0c3f, 0x0d8b, 0x0e34, 0x0ee8, 0x0feb,
+ 0x10a6, 0x10db, 0x1039, 0x0f42, 0x0ee4, 0x0e4b,
+ 0x0d39, 0x0ce1, 0x0ce8, 0x0c86, 0x0bfb, 0x0b3d,
+ 0x0a3f, 0x0914, 0x07bd, 0x06a3, 0x05c5, 0x04e7,
+ 0x041f, 0x0393, 0x042a, 0x062c, 0x083f, 0x09f3,
+ 0x0b59, 0x0bba, 0x0b9e, 0x0b9d, 0x0ad8, 0x08f5,
+ 0x061c, 0x0292, 0xff6a, 0xfd31, 0xfbb8, 0xfad9,
+ 0xfa74, 0xfa7a, 0xfa25, 0xf8e1, 0xf813, 0xf8b1,
+ 0xf9f7, 0xfb11, 0xfae9, 0xf987, 0xf89d, 0xf840,
+ 0xf7b7, 0xf7da, 0xf91c, 0xfad2, 0xfc38, 0xfcf6,
+ 0xfdc8, 0xff0c, 0x001b, 0x00b8, 0x00e4, 0x00d2,
+ 0x00a6, 0xffb2, 0xfe90, 0xfe8c, 0xfea8, 0xfe29,
+ 0xfe09, 0xfe5f, 0xfeb5, 0xfea8, 0xfdd8, 0xfd03,
+ 0xfcaf, 0xfc49, 0xfbeb, 0xfc5f, 0xfe36, 0x00ff,
+ 0x0382, 0x05c4, 0x080b, 0x0970, 0x0a1d, 0x0aa8,
+ 0x0a6e, 0x0913, 0x06a0, 0x03b2, 0x01fe, 0x01b4,
+ 0x0187, 0x0150, 0x018b, 0x0261, 0x0354, 0x03ad,
+ 0x0418, 0x057d, 0x0774, 0x090a, 0x090d, 0x07a5,
+ 0x06be, 0x06b2, 0x06cf, 0x0773, 0x0881, 0x09c1,
+ 0x0b6c, 0x0cd1, 0x0db8, 0x0ebd, 0x0f9c, 0x0fe5,
+ 0x0f94, 0x0f09, 0x0ea9, 0x0e04, 0x0d30, 0x0cc9,
+ 0x0c24, 0x0b36, 0x0ac8, 0x0a57, 0x09ab, 0x0900,
+ 0x07d6, 0x0695, 0x0587, 0x0409, 0x02d4, 0x02ed,
+ 0x041a, 0x05bb, 0x06ef, 0x07ac, 0x0890, 0x0933,
+ 0x095e, 0x092a, 0x07e6, 0x057a, 0x0225, 0xfe55,
+ 0xfb79, 0xf9e7, 0xf8de, 0xf8aa, 0xf904, 0xf91d,
+ 0xf93a, 0xf978, 0xf9f5, 0xfb1a, 0xfc51, 0xfcdf,
+ 0xfc5d, 0xfab4, 0xf8f8, 0xf802, 0xf7d3, 0xf8a2,
+ 0xf9ec, 0xfafb, 0xfc13, 0xfd12, 0xfdd5, 0xfeed,
+ 0x0001, 0x0059, 0xfffb, 0xff01, 0xfdae, 0xfc83,
+ 0xfbf9, 0xfc4a, 0xfcf0, 0xfd61, 0xfdab, 0xfde7,
+ 0xfe31, 0xfe2f, 0xfd6b, 0xfcad, 0xfc7a, 0xfc38,
+ 0xfc29, 0xfd0e, 0xfeda, 0x0111, 0x0322, 0x0509,
+ 0x071b, 0x08f2, 0x0a0f, 0x0a1d, 0x0902, 0x073f,
+ 0x04d8, 0x01f9, 0x002d, 0xffdd, 0xffff, 0x0067,
+ 0x0116, 0x01e6, 0x02dd, 0x0392, 0x0468, 0x05f8,
+ 0x0788, 0x0893, 0x08c7, 0x07eb, 0x074c, 0x077a,
+ 0x0798, 0x081f, 0x0969, 0x0ac0, 0x0bf5, 0x0c9e,
+ 0x0d0c, 0x0e48, 0x0f33, 0x0ecf, 0x0e24, 0x0d41,
+ 0x0bda, 0x0a91, 0x097c, 0x08db, 0x08f3, 0x08f0,
+ 0x087e, 0x07f5, 0x0751, 0x06a1, 0x05ba, 0x0482,
+ 0x034b, 0x01ff, 0x0105, 0x0158, 0x02a0, 0x03c9,
+ 0x0490, 0x057e, 0x070a, 0x087b, 0x08bc, 0x07b5,
+ 0x05b4, 0x031b, 0x0024, 0xfce2, 0xfa45, 0xf8fc,
+ 0xf85a, 0xf828, 0xf86e, 0xf87e, 0xf838, 0xf81c,
+ 0xf8a0, 0xf99d, 0xf9cb, 0xf8cc, 0xf7ba, 0xf6df,
+ 0xf619, 0xf597, 0xf570, 0xf617, 0xf761, 0xf86e,
+ 0xf964, 0xfa8d, 0xfbfa, 0xfdce, 0xfedc, 0xfe89,
+ 0xfe06, 0xfd6d, 0xfc75, 0xfbd8, 0xfb85, 0xfb4c,
+ 0xfb78, 0xfbee, 0xfcef, 0xfe62, 0xff40, 0xff6b,
+ 0xff25, 0xfe7e, 0xfdeb, 0xfd64, 0xfd1d, 0xfdf8,
+ 0xff9a, 0x0136, 0x02c3, 0x0443, 0x0638, 0x0897,
+ 0x09e3, 0x0994, 0x0826, 0x05b4, 0x02ff, 0x0151,
+ 0x00fd, 0x0135, 0x012b, 0x014c, 0x0231, 0x0320,
+ 0x0382, 0x03cb, 0x049a, 0x05f2, 0x06c5, 0x064f,
+ 0x0536, 0x0465, 0x0482, 0x0582, 0x0669, 0x071b,
+ 0x0829, 0x094f, 0x0a66, 0x0b94, 0x0cab, 0x0dae,
+ 0x0e6b, 0x0e85, 0x0e06, 0x0cef, 0x0bbb, 0x0ae6,
+ 0x09fb, 0x0943, 0x0970, 0x0a17, 0x0b01, 0x0be8,
+ 0x0bf5, 0x0b5a, 0x0a3b, 0x0858, 0x069e, 0x057e,
+ 0x049b, 0x045d, 0x04b4, 0x0559, 0x068a, 0x079c,
+ 0x0853, 0x095e, 0x09df, 0x08d6, 0x06cf, 0x0409,
+ 0x00e7, 0xfeb4, 0xfdc4, 0xfd4b, 0xfcaa, 0xfbf7,
+ 0xfbed, 0xfca0, 0xfd43, 0xfdfe, 0xff89, 0x010e,
+ 0x0170, 0x00e5, 0xffad, 0xfe14, 0xfd33, 0xfd46,
+ 0xfda8, 0xfe50, 0xff06, 0xff8c, 0x0063, 0x0195,
+ 0x02dc, 0x041a, 0x04b0, 0x047f, 0x03d9, 0x029d,
+ 0x0175, 0x00e9, 0x002e, 0xff54, 0xff36, 0xfff5,
+ 0x015a, 0x0285, 0x02bc, 0x0284, 0x0210, 0x0173,
+ 0x0129, 0x00cc, 0x007e, 0x0129, 0x0255, 0x03ab,
+ 0x056b, 0x06eb, 0x084c, 0x0a14, 0x0b27, 0x0aa2,
+ 0x08a7, 0x05a8, 0x0309, 0x01a0, 0x00ee, 0x00bf,
+ 0x00ec, 0x015d, 0x0266, 0x0385, 0x0445, 0x0568,
+ 0x070c, 0x085b, 0x08a1, 0x076a, 0x05ae, 0x051e,
+ 0x056c, 0x0590, 0x05f0, 0x06d8, 0x07e0, 0x0904,
+ 0x0a12, 0x0aa9, 0x0b1d, 0x0bb5, 0x0be9, 0x0b5e,
+ 0x0a88, 0x09d2, 0x0914, 0x0855, 0x07d4, 0x0754,
+ 0x06e8, 0x0735, 0x07e4, 0x0821, 0x07c5, 0x06a0,
+ 0x04fb, 0x03bf, 0x02e0, 0x021c, 0x01f6, 0x025e,
+ 0x02fc, 0x03d7, 0x0484, 0x0516, 0x063e, 0x0772,
+ 0x079d, 0x069d, 0x048a, 0x01a6, 0xfed4, 0xfcca,
+ 0xfb7e, 0xfab6, 0xfa86, 0xfabe, 0xfad4, 0xfadf,
+ 0xfb50, 0xfbfe, 0xfcbc, 0xfd7d, 0xfd83, 0xfc4f,
+ 0xfac8, 0xf9e4, 0xf981, 0xf975, 0xf9d6, 0xfa2c,
+ 0xfa37, 0xfa9b, 0xfb96, 0xfc81, 0xfcf6, 0xfd0d,
+ 0xfcdf, 0xfca8, 0xfca7, 0xfc97, 0xfc04, 0xfb4c,
+ 0xfb1a, 0xfb42, 0xfb9f, 0xfc87, 0xfdb0, 0xfe8a,
+ 0xfede, 0xfe86, 0xfdc4, 0xfcf1, 0xfc05, 0xfb6c,
+ 0xfb70, 0xfbae, 0xfc6a, 0xfdea, 0xff76, 0x00d0,
+ 0x0253, 0x03c9, 0x04a8, 0x0464, 0x0300, 0x014e,
+ 0xffdf, 0xfece, 0xfe0f, 0xfd7d, 0xfd98, 0xfe7f,
+ 0xff36, 0x0006, 0x01b6, 0x0323, 0x03da, 0x04c8,
+ 0x055e, 0x04f2, 0x0466, 0x045e, 0x04dc, 0x05b4,
+ 0x0688, 0x0758, 0x0800, 0x085c, 0x090e, 0x09f9,
+ 0x0a27, 0x09c9, 0x09a6, 0x09db, 0x0a3d, 0x0a60,
+ 0x09ef, 0x092e, 0x086a, 0x07d8, 0x07cc, 0x0846,
+ 0x08e1, 0x0965, 0x09a8, 0x0932, 0x07cc, 0x0613,
+ 0x04ca, 0x041c, 0x0397, 0x02de, 0x02c8, 0x0420,
+ 0x05c6, 0x068a, 0x06aa, 0x064d, 0x055b, 0x03ec,
+ 0x01f4, 0xfffd, 0xfe93, 0xfd7a, 0xfca3, 0xfbfc,
+ 0xfb3b, 0xfac2, 0xfabb, 0xfafd, 0xfbca, 0xfc8e,
+ 0xfc8a, 0xfc3a, 0xfbba, 0xfa93, 0xf930, 0xf83b,
+ 0xf7ea, 0xf810, 0xf832, 0xf845, 0xf8ad, 0xf9a0,
+ 0xfb14, 0xfc77, 0xfcd8, 0xfc3f, 0xfbb6, 0xfbad,
+ 0xfb77, 0xfa8b, 0xf94a, 0xf837, 0xf774, 0xf70f,
+ 0xf759, 0xf8ab, 0xfa87, 0xfbfb, 0xfcb2, 0xfcb4,
+ 0xfc1b, 0xfb2d, 0xfa27, 0xf999, 0xf9a9, 0xf9ad,
+ 0xfa1d, 0xfbc8, 0xfdec, 0xffe2, 0x015d, 0x0194,
+ 0x0105, 0x0092, 0xffd4, 0xfec6, 0xfde9, 0xfd25,
+ 0xfc6c, 0xfbcb, 0xfb84, 0xfbdb, 0xfc84, 0xfdcf,
+ 0x0009, 0x01f7, 0x02b6, 0x029e, 0x01ed, 0x00f4,
+ 0xfff4, 0xff19, 0xfedc, 0xff05, 0xff57, 0x0047,
+ 0x0199, 0x0318, 0x050c, 0x0699, 0x06fa, 0x06bc,
+ 0x0644, 0x05cd, 0x05af, 0x059d, 0x0503, 0x03db,
+ 0x02ef, 0x02e7, 0x034c, 0x03cd, 0x049e, 0x0519,
+ 0x04ad, 0x03e6, 0x02ff, 0x01d3, 0x00f1, 0x00c8,
+ 0x00cb, 0x0074, 0x0059, 0x012a, 0x0271, 0x034c,
+ 0x0364, 0x02c2, 0x01a9, 0x0087, 0xffa8, 0xfee8,
+ 0xfe14, 0xfd43, 0xfc77, 0xfbd9, 0xfbd0, 0xfc12,
+ 0xfc40, 0xfcdb, 0xfdef, 0xfecd, 0xfef8, 0xfe25,
+ 0xfce0, 0xfc2c, 0xfbc9, 0xfb45, 0xfb17, 0xfb31,
+ 0xfb4b, 0xfbaa, 0xfc25, 0xfc8e, 0xfd51, 0xfe2e,
+ 0xfe47, 0xfd9d, 0xfd0d, 0xfd17, 0xfd6d, 0xfd57,
+ 0xfc6b, 0xfb30, 0xfacf, 0xfba1, 0xfcf1, 0xfe50,
+ 0xffa4, 0x005a, 0x003a, 0xffd8, 0xff3b, 0xfe32,
+ 0xfd99, 0xfdf1, 0xfe6e, 0xfe9d, 0xfede, 0xffa3,
+ 0x010e, 0x0289, 0x0377, 0x03e1, 0x03ea, 0x03fa,
+ 0x043e, 0x0416, 0x0381, 0x02dd, 0x0210, 0x01b3,
+ 0x0212, 0x025f, 0x02d1, 0x03c9, 0x04c2, 0x05da,
+ 0x06b1, 0x0675, 0x061b, 0x066c, 0x06a7, 0x0699,
+ 0x067e, 0x068c, 0x073e, 0x083a, 0x08bf, 0x0914,
+ 0x09b3, 0x0a57, 0x0a72, 0x09f3, 0x095c, 0x093e,
+ 0x09cb, 0x0a52, 0x09ca, 0x089e, 0x0835, 0x08d6,
+ 0x09a9, 0x0a28, 0x0aa3, 0x0b0a, 0x0a9f, 0x09a3,
+ 0x08d3, 0x07e6, 0x06f0, 0x0651, 0x05a2, 0x052a,
+ 0x057a, 0x05f2, 0x0624, 0x0613, 0x057f, 0x04a2,
+ 0x03f1, 0x036a, 0x02fd, 0x0292, 0x01dd, 0x009b,
+ 0xff1d, 0xfe42, 0xfe33, 0xfe73, 0xfec8, 0xfee6,
+ 0xfee7, 0xff26, 0xfef0, 0xfe17, 0xfdd0, 0xfe0c,
+ 0xfdc4, 0xfd26, 0xfc94, 0xfbcb, 0xfb2f, 0xfb5d,
+ 0xfbd6, 0xfc1e, 0xfc91, 0xfceb, 0xfcc2, 0xfcaf,
+ 0xfcc9, 0xfcd4, 0xfd47, 0xfd7d, 0xfc94, 0xfb66,
+ 0xfaa7, 0xfa42, 0xfa79, 0xfb40, 0xfc42, 0xfced,
+ 0xfc94, 0xfbe0, 0xfbc9, 0xfbe7, 0xfbc1, 0xfb80,
+ 0xfb9d, 0xfc8b, 0xfda8, 0xfe39, 0xfe86, 0xfeb7,
+ 0xfeb8, 0xfea0, 0xfe74, 0xfe55, 0xfe49, 0xfe3f,
+ 0xfe24, 0xfd85, 0xfcbc, 0xfcde, 0xfddb, 0xff2c,
+ 0x0048, 0x0086, 0x00b1, 0x017a, 0x01fb, 0x027c,
+ 0x0389, 0x03e8, 0x037e, 0x031a, 0x0234, 0x012d,
+ 0x015c, 0x0240, 0x02ff, 0x0424, 0x059f, 0x066c,
+ 0x0684, 0x0671, 0x063c, 0x0651, 0x06f7, 0x0734,
+ 0x0676, 0x05b8, 0x05ee, 0x06ec, 0x07ef, 0x08ce,
+ 0x0990, 0x099c, 0x08ca, 0x07a0, 0x0693, 0x0646,
+ 0x065b, 0x05bc, 0x054a, 0x05ed, 0x06d6, 0x07e4,
+ 0x08c2, 0x085e, 0x0774, 0x06b5, 0x0579, 0x0456,
+ 0x03f3, 0x0383, 0x02b8, 0x01d2, 0x00dd, 0x0032,
+ 0x001d, 0x007c, 0x00d9, 0x00f0, 0x00f8, 0x00d0,
+ 0x0013, 0xff43, 0xff02, 0xff15, 0xff28, 0xff0f,
+ 0xfe6d, 0xfdaf, 0xfde9, 0xfe96, 0xfe87, 0xfe81,
+ 0xff37, 0xffbb, 0xffb2, 0xff19, 0xfe06, 0xfdb4,
+ 0xfe23, 0xfde5, 0xfd1d, 0xfc72, 0xfc15, 0xfc7f,
+ 0xfd54, 0xfe17, 0xfef2, 0xff43, 0xfea1, 0xfdb6,
+ 0xfd1d, 0xfd29, 0xfd2b, 0xfc82, 0xfc5a, 0xfd0e,
+ 0xfd99, 0xfe06, 0xfe4d, 0xfe16, 0xfde9, 0xfdc5,
+ 0xfdae, 0xfe57, 0xff2d, 0xff37, 0xfea5, 0xfdf0,
+ 0xfd8b, 0xfdab, 0xfe28, 0xfefe, 0xffde, 0x006f,
+ 0x00b5, 0x00a5, 0x00ae, 0x0143, 0x01e7, 0x0256,
+ 0x02ae, 0x02b9, 0x0264, 0x01ea, 0x01eb, 0x02c6,
+ 0x03db, 0x0507, 0x067b, 0x0766, 0x077e, 0x0727,
+ 0x0695, 0x0693, 0x0711, 0x06c0, 0x05bc, 0x04e7,
+ 0x0483, 0x04e2, 0x05cd, 0x06bd, 0x07a8, 0x0812,
+ 0x079e, 0x06d6, 0x065b, 0x0689, 0x06c3, 0x064d,
+ 0x060a, 0x0690, 0x072b, 0x0772, 0x0703, 0x05e2,
+ 0x0508, 0x047c, 0x03eb, 0x03e6, 0x044d, 0x049b,
+ 0x04bf, 0x0458, 0x0382, 0x02ef, 0x02a7, 0x0272,
+ 0x021d, 0x016d, 0x00ea, 0x00cd, 0x007f, 0x0029,
+ 0x0030, 0x0035, 0x003a, 0x0056, 0xffe5, 0xff12,
+ 0xfed6, 0xff0a, 0xff19, 0xff50, 0xffd0, 0x0030,
+ 0x004c, 0x0032, 0x002a, 0x004b, 0xffe3, 0xfe9d,
+ 0xfd3f, 0xfc70, 0xfc39, 0xfc91, 0xfd7e, 0xfec8,
+ 0xffb0, 0xffb3, 0xff08, 0xfe33, 0xfe01, 0xfeac,
+ 0xff06, 0xfea8, 0xfe95, 0xfef6, 0xff73, 0x0000,
+ 0x003c, 0x0029, 0x0006, 0xffc1, 0xfffe, 0x00fb,
+ 0x01a5, 0x01c3, 0x01d6, 0x01b8, 0x01cc, 0x0262,
+ 0x02ab, 0x028f, 0x02cd, 0x033f, 0x0372, 0x0390,
+ 0x03cc, 0x0412, 0x045e, 0x04d7, 0x0553, 0x0538,
+ 0x0483, 0x03ea, 0x03d3, 0x041f, 0x049b, 0x0528,
+ 0x05aa, 0x05f0, 0x061d, 0x068f, 0x0731, 0x07ad,
+ 0x07b1, 0x06db, 0x05a9, 0x0512, 0x0504, 0x0543,
+ 0x0613, 0x070b, 0x07a1, 0x07b9, 0x0715, 0x0647,
+ 0x0637, 0x0665, 0x0655, 0x0656, 0x064b, 0x0663,
+ 0x06d4, 0x06c5, 0x0613, 0x0567, 0x04aa, 0x042b,
+ 0x0474, 0x0504, 0x0567, 0x056b, 0x04ce, 0x03df,
+ 0x02d5, 0x01c8, 0x012f, 0x00da, 0x0093, 0x009a,
+ 0x008c, 0x0074, 0x00e0, 0x0145, 0x0189, 0x020f,
+ 0x01e8, 0x00d2, 0xffb0, 0xfe8b, 0xfda5, 0xfd7b,
+ 0xfd81, 0xfd75, 0xfd73, 0xfd4c, 0xfd43, 0xfd96,
+ 0xfe28, 0xfecd, 0xfec0, 0xfd9f, 0xfc42, 0xfb4b,
+ 0xfaf0, 0xfb49, 0xfbff, 0xfcc9, 0xfd62, 0xfd52,
+ 0xfcb1, 0xfbfb, 0xfba8, 0xfbcc, 0xfbe3, 0xfc1d,
+ 0xfceb, 0xfd79, 0xfd53, 0xfcf9, 0xfc31, 0xfb11,
+ 0xfa85, 0xfac9, 0xfbaf, 0xfcff, 0xfe28, 0xfef2,
+ 0xff5b, 0xff65, 0xff68, 0xff67, 0xff19, 0xfec6,
+ 0xfed8, 0xff27, 0xff42, 0xff43, 0xffe4, 0x0158,
+ 0x030e, 0x0449, 0x0485, 0x0454, 0x0485, 0x0499,
+ 0x0445, 0x042a, 0x043e, 0x045b, 0x04bb, 0x051c,
+ 0x058b, 0x0691, 0x07f4, 0x08cc, 0x0860, 0x0709,
+ 0x05d3, 0x0505, 0x04ab, 0x0520, 0x05e4, 0x0657,
+ 0x069d, 0x06a3, 0x0669, 0x0664, 0x068b, 0x06bc,
+ 0x0726, 0x07b4, 0x0818, 0x082d, 0x07f2, 0x0750,
+ 0x0606, 0x0468, 0x035c, 0x0320, 0x0361, 0x03e1,
+ 0x047e, 0x053e, 0x05ec, 0x05e0, 0x0515, 0x0437,
+ 0x0377, 0x02bb, 0x0227, 0x01a2, 0x00f3, 0x0082,
+ 0x00ae, 0x012a, 0x01b7, 0x01f9, 0x0151, 0x002d,
+ 0xff60, 0xfebc, 0xfe4f, 0xfe61, 0xfe48, 0xfdd8,
+ 0xfd89, 0xfd45, 0xfd64, 0xfe5c, 0xff62, 0xffb8,
+ 0xff51, 0xfe49, 0xfd42, 0xfc95, 0xfbfb, 0xfbda,
+ 0xfc98, 0xfd8b, 0xfe08, 0xfdf6, 0xfda2, 0xfd76,
+ 0xfd6d, 0xfd9d, 0xfe73, 0xff8d, 0x003a, 0x0084,
+ 0x005f, 0xff6f, 0xfdeb, 0xfc8b, 0xfbc1, 0xfb97,
+ 0xfc49, 0xfdf6, 0xffb3, 0x00ad, 0x0129, 0x0123,
+ 0x0056, 0xff49, 0xfe53, 0xfd84, 0xfd41, 0xfd66,
+ 0xfd86, 0xfdc4, 0xfe39, 0xff3e, 0x0105, 0x0251,
+ 0x0251, 0x01d6, 0x013f, 0x00cf, 0x0149, 0x01f1,
+ 0x01b8, 0x013d, 0x011e, 0x017c, 0x02a1, 0x03d9,
+ 0x0450, 0x0472, 0x0464, 0x03c7, 0x02fa, 0x025b,
+ 0x01f8, 0x0233, 0x02f4, 0x0389, 0x03e3, 0x0454,
+ 0x04a0, 0x0483, 0x044b, 0x0482, 0x054e, 0x062f,
+ 0x0665, 0x05c5, 0x04ca, 0x03cf, 0x02cf, 0x01b1,
+ 0x0099, 0xffd9, 0xffbd, 0x0096, 0x024e, 0x0405,
+ 0x04e5, 0x04e1, 0x0430, 0x02f2, 0x015f, 0xffef,
+ 0xfef8, 0xfe55, 0xfdcf, 0xfd9c, 0xfdd5, 0xfe6a,
+ 0xff51, 0xffe0, 0xff79, 0xfea3, 0xfe1a, 0xfe2f,
+ 0xfed6, 0xff1b, 0xfe4a, 0xfd25, 0xfc89, 0xfc9c,
+ 0xfd5b, 0xfe49, 0xfeb0, 0xfe88, 0xfe1a, 0xfd7c,
+ 0xfcc0, 0xfc11, 0xfbb9, 0xfbdb, 0xfc15, 0xfc10,
+ 0xfc1d, 0xfc83, 0xfcc8, 0xfc95, 0xfc7a, 0xfcea,
+ 0xfdc6, 0xff0b, 0x0047, 0x0082, 0xffad, 0xfe83,
+ 0xfd6f, 0xfc9a, 0xfc20, 0xfc01, 0xfc67, 0xfd8a,
+ 0xff5d, 0x0132, 0x0212, 0x01ed, 0x0179, 0x0103,
+ 0x009a, 0x004e, 0xfff2, 0xffc3, 0x003e, 0x0128,
+ 0x022e, 0x0375, 0x04c3, 0x0576, 0x053d, 0x0466,
+ 0x03cb, 0x0423, 0x0540, 0x0638, 0x0657, 0x05d4,
+ 0x05a2, 0x066c, 0x07db, 0x08fc, 0x0968, 0x097d,
+ 0x0966, 0x091b, 0x08d9, 0x088b, 0x07fd, 0x07af,
+ 0x07e7, 0x081c, 0x0836, 0x0877, 0x08bd, 0x0911,
+ 0x09b3, 0x0a6f, 0x0b0d, 0x0bac, 0x0c02, 0x0b92,
+ 0x0a9b, 0x098c, 0x084d, 0x0717, 0x0670, 0x0630,
+ 0x0648, 0x074f, 0x0922, 0x0ae5, 0x0bf3, 0x0bd4,
+ 0x0a7c, 0x0880, 0x0685, 0x04f2, 0x03d9, 0x0344,
+ 0x0378, 0x0422, 0x04b8, 0x0574, 0x0642, 0x068f,
+ 0x0649, 0x0543, 0x03cc, 0x032e, 0x035f, 0x031f,
+ 0x022e, 0x00fe, 0x004d, 0x00be, 0x0188, 0x01c8,
+ 0x01e1, 0x01de, 0x0175, 0x00fb, 0x008d, 0x0004,
+ 0xff83, 0xff1c, 0xfec8, 0xfe8b, 0xfe9a, 0xff35,
+ 0xffd4, 0x000c, 0x0045, 0x0068, 0x0054, 0x00a7,
+ 0x0113, 0x00e1, 0x005b, 0xff73, 0xfe0c, 0xfd10,
+ 0xfcb7, 0xfcb2, 0xfda7, 0xffd2, 0x023f, 0x03eb,
+ 0x0433, 0x036d, 0x02a2, 0x020a, 0x013f, 0x001b,
+ 0xfecd, 0xfe19, 0xfe86, 0xff82, 0x0076, 0x015b,
+ 0x0233, 0x02f3, 0x0338, 0x02c0, 0x025e, 0x02d1,
+ 0x039a, 0x03e5, 0x036d, 0x02b6, 0x0294, 0x031a,
+ 0x03ce, 0x046d, 0x04c7, 0x04bd, 0x0468, 0x0400,
+ 0x03cf, 0x03c7, 0x03b4, 0x03be, 0x03be, 0x03a3,
+ 0x040f, 0x04bc, 0x04e2, 0x0539, 0x063f, 0x0722,
+ 0x07ad, 0x07da, 0x0722, 0x05f1, 0x04e6, 0x03c1,
+ 0x0289, 0x0184, 0x00a4, 0x0043, 0x00f8, 0x02da,
+ 0x0543, 0x0701, 0x0759, 0x069e, 0x0574, 0x0444,
+ 0x02fd, 0x0169, 0x0023, 0xffc6, 0x0011, 0x00e8,
+ 0x020f, 0x02b1, 0x02bf, 0x02a4, 0x021f, 0x0155,
+ 0x0107, 0x014f, 0x01b1, 0x01a7, 0x0114, 0x007f,
+ 0x0052, 0x0090, 0x00ff, 0x0108, 0x0099, 0x003e,
+ 0x0009, 0xfffc, 0x0006, 0xff92, 0xfedf, 0xfea7,
+ 0xfe80, 0xfe53, 0xfea6, 0xff04, 0xff17, 0xff50,
+ 0xffe6, 0x010d, 0x027b, 0x0314, 0x02c5, 0x0238,
+ 0x0161, 0x003a, 0xff02, 0xfdc3, 0xfcc7, 0xfc95,
+ 0xfda6, 0xffd9, 0x0227, 0x03e8, 0x04fd, 0x04d3,
+ 0x0396, 0x0254, 0x013c, 0x004e, 0xffdb, 0xff98,
+ 0xffac, 0x00a4, 0x01e0, 0x0289, 0x02b7, 0x028b,
+ 0x023e, 0x0258, 0x02dd, 0x0328, 0x02b7, 0x01f2,
+ 0x01b0, 0x01eb, 0x0243, 0x02cf, 0x034b, 0x035f,
+ 0x0376, 0x03c8, 0x0412, 0x042f, 0x03e4, 0x0324,
+ 0x0243, 0x014e, 0x008f, 0x00ba, 0x0191, 0x0232,
+ 0x0270, 0x02c8, 0x03af, 0x04fd, 0x05c5, 0x0594,
+ 0x050b, 0x04aa, 0x0431, 0x035b, 0x023a, 0x00f1,
+ 0xffd5, 0xff89, 0x0048, 0x018a, 0x02fb, 0x047d,
+ 0x0545, 0x04e6, 0x041d, 0x0337, 0x01dc, 0x005f,
+ 0xff40, 0xfe83, 0xfe5f, 0xff0b, 0x0006, 0x00b0,
+ 0x00d7, 0x0085, 0x000b, 0xffee, 0x0025, 0x0000,
+ 0xff39, 0xfe4d, 0xfd78, 0xfcbe, 0xfc87, 0xfcef,
+ 0xfd53, 0xfd4e, 0xfd16, 0xfcf3, 0xfcfa, 0xfd09,
+ 0xfce5, 0xfc72, 0xfbbd, 0xfb05, 0xfaa4, 0xfac5,
+ 0xfb3c, 0xfbc1, 0xfc3a, 0xfcbd, 0xfd80, 0xfe69,
+ 0xfec3, 0xfe35, 0xfd80, 0xfd47, 0xfd22, 0xfc87,
+ 0xfb5c, 0xf9f6, 0xf95f, 0xfa69, 0xfc6c, 0xfe3a,
+ 0xff7b, 0x004f, 0x00ba, 0x00bd, 0x005a, 0xff6f,
+ 0xfe2c, 0xfd5a, 0xfd48, 0xfd83, 0xfe21, 0xff69,
+ 0x00b3, 0x0170, 0x01b6, 0x01ad, 0x01c7, 0x025f,
+ 0x02ed, 0x02ea, 0x027f, 0x0209, 0x01ca, 0x01c7,
+ 0x0214, 0x02d1, 0x0372, 0x0372, 0x0352, 0x0395,
+ 0x040d, 0x0440, 0x03b2, 0x02b7, 0x0232, 0x0216,
+ 0x01e5, 0x01ad, 0x019a, 0x01df, 0x028d, 0x0360,
+ 0x0483, 0x0610, 0x0724, 0x072b, 0x067d, 0x0586,
+ 0x04b0, 0x0413, 0x0336, 0x0224, 0x01a4, 0x0250,
+ 0x03f6, 0x059d, 0x06a4, 0x0729, 0x071a, 0x069d,
+ 0x0632, 0x0570, 0x0431, 0x0385, 0x039e, 0x03f0,
+ 0x049b, 0x0573, 0x062a, 0x06ec, 0x0737, 0x0693,
+ 0x05c4, 0x057e, 0x05a2, 0x05ab, 0x0513, 0x0428,
+ 0x038a, 0x0343, 0x0345, 0x034d, 0x030c, 0x02f9,
+ 0x033a, 0x0346, 0x0316, 0x02be, 0x0255, 0x025d,
+ 0x02a6, 0x029e, 0x026f, 0x023b, 0x01fc, 0x01e6,
+ 0x01d8, 0x01eb, 0x029f, 0x03a7, 0x0425, 0x03c1,
+ 0x02e0, 0x023f, 0x01f5, 0x0172, 0x00ae, 0xfffa,
+ 0xff87, 0xffba, 0x00bb, 0x0236, 0x03bc, 0x04a8,
+ 0x0499, 0x03fd, 0x0313, 0x01c7, 0x00a7, 0x004f,
+ 0x009c, 0x0131, 0x0196, 0x018b, 0x0189, 0x0209,
+ 0x02d2, 0x0357, 0x0348, 0x0322, 0x0385, 0x03fb,
+ 0x03d6, 0x033f, 0x02b3, 0x02b7, 0x0342, 0x039f,
+ 0x03cb, 0x0413, 0x0439, 0x0464, 0x0487, 0x03e3,
+ 0x02bc, 0x01db, 0x015a, 0x0164, 0x01e2, 0x0272,
+ 0x0320, 0x039c, 0x03a9, 0x0402, 0x04fa, 0x062d,
+ 0x0703, 0x06d7, 0x0606, 0x052c, 0x03f3, 0x029d,
+ 0x01bd, 0x0130, 0x0160, 0x026b, 0x0351, 0x03ee,
+ 0x04ac, 0x0555, 0x05b2, 0x0553, 0x041a, 0x02f2,
+ 0x0251, 0x020d, 0x023e, 0x029a, 0x02af, 0x028d,
+ 0x0284, 0x0315, 0x0421, 0x04c9, 0x04eb, 0x04e2,
+ 0x04c2, 0x04bd, 0x047b, 0x0373, 0x0258, 0x01ed,
+ 0x0204, 0x0267, 0x02b9, 0x029b, 0x029d, 0x0332,
+ 0x03a9, 0x035a, 0x0264, 0x0148, 0x0060, 0xffa2,
+ 0xff19, 0xff15, 0xff9e, 0x0069, 0x0120, 0x016d,
+ 0x0197, 0x0228, 0x02cd, 0x02f2, 0x02a5, 0x01ef,
+ 0x00c7, 0xff81, 0xfe67, 0xfdce, 0xfdff, 0xfea4,
+ 0xff54, 0x0027, 0x012e, 0x0211, 0x023f, 0x0190,
+ 0x00a6, 0xfff2, 0xff62, 0xff47, 0xffeb, 0x00d3,
+ 0x0143, 0x0101, 0x00a5, 0x00ce, 0x0159, 0x01f4,
+ 0x0250, 0x021f, 0x01d1, 0x01d3, 0x01bf, 0x0173,
+ 0x0125, 0x00b5, 0x006b, 0x00b3, 0x0140, 0x01c0,
+ 0x0244, 0x02a6, 0x028e, 0x01ca, 0x0087, 0xff56,
+ 0xfe83, 0xfe03, 0xfde8, 0xfe48, 0xff1f, 0x006e,
+ 0x01b2, 0x020f, 0x01bd, 0x018e, 0x0196, 0x0190,
+ 0x0155, 0x00be, 0x0029, 0x001f, 0x0059, 0x0059,
+ 0x0031, 0x0038, 0x00cf, 0x01ea, 0x02f4, 0x0384,
+ 0x0385, 0x0314, 0x028b, 0x01f2, 0x0128, 0x00b8,
+ 0x0126, 0x01d4, 0x01f5, 0x01b9, 0x01ba, 0x0235,
+ 0x030e, 0x03c1, 0x03c3, 0x033c, 0x02c3, 0x0299,
+ 0x02a2, 0x0288, 0x01e5, 0x00bb, 0xffc5, 0xffc3,
+ 0x006e, 0x0107, 0x017d, 0x01d3, 0x01b3, 0x0146,
+ 0x00de, 0x0075, 0x001b, 0xffbd, 0xff31, 0xfeaa,
+ 0xfe8a, 0xff30, 0x0032, 0x005b, 0xffa7, 0xff3b,
+ 0xff60, 0xff84, 0xff15, 0xfe36, 0xfded, 0xfe56,
+ 0xfe95, 0xfe87, 0xfe2c, 0xfd9b, 0xfd96, 0xfe3f,
+ 0xff39, 0x0054, 0x00c2, 0x0034, 0xff67, 0xfe76,
+ 0xfd87, 0xfd80, 0xfe65, 0xff4a, 0xff7a, 0xff0a,
+ 0xfecd, 0xff3c, 0x0024, 0x0107, 0x0121, 0x008b,
+ 0x0031, 0x0021, 0x0028, 0x0079, 0x00a1, 0x003e,
+ 0xffc1, 0xff98, 0xfff1, 0x00b7, 0x0163, 0x018c,
+ 0x0153, 0x010b, 0x00bb, 0x0041, 0xffcd, 0xff9e,
+ 0xffc2, 0x0033, 0x00db, 0x01a7, 0x0254, 0x0269,
+ 0x023c, 0x027d, 0x02e8, 0x0303, 0x02b1, 0x01f5,
+ 0x0156, 0x014f, 0x01c3, 0x025e, 0x0297, 0x0257,
+ 0x022a, 0x0254, 0x031d, 0x0441, 0x047e, 0x03d1,
+ 0x0332, 0x027e, 0x01dd, 0x01f6, 0x0269, 0x02d8,
+ 0x02fd, 0x0268, 0x01ea, 0x025d, 0x0345, 0x040f,
+ 0x0452, 0x03f0, 0x0376, 0x030b, 0x029d, 0x0257,
+ 0x01fb, 0x01b4, 0x0208, 0x0290, 0x0309, 0x039e,
+ 0x03bd, 0x0340, 0x02c0, 0x022b, 0x017d, 0x0118,
+ 0x00b3, 0x001f, 0xffde, 0x0011, 0x008f, 0x013b,
+ 0x0191, 0x0126, 0x0073, 0x0040, 0x00ce, 0x017a,
+ 0x0156, 0x0093, 0x002f, 0x0067, 0x00d4, 0x0101,
+ 0x00b0, 0x0069, 0x0072, 0x005b, 0x007c, 0x0122,
+ 0x0149, 0x00a0, 0xffe0, 0xff1f, 0xfec2, 0xff77,
+ 0x0089, 0x010d, 0x013f, 0x016a, 0x018e, 0x01e7,
+ 0x0252, 0x0260, 0x023d, 0x0252, 0x0289, 0x02c0,
+ 0x02f1, 0x02b7, 0x0211, 0x01be, 0x01c7, 0x01b0,
+ 0x01a5, 0x01ba, 0x0199, 0x0158, 0x0127, 0x00f4,
+ 0x010c, 0x0178, 0x0176, 0x00e0, 0x0067, 0x0049,
+ 0x0081, 0x00ff, 0x0115, 0x0071, 0xffe4, 0xfffb,
+ 0x0083, 0x0112, 0x012c, 0x00df, 0x00cd, 0x0123,
+ 0x0177, 0x01a2, 0x0168, 0x009c, 0xfffe, 0x0046,
+ 0x00fa, 0x0158, 0x0179, 0x0181, 0x015f, 0x0171,
+ 0x01cb, 0x022e, 0x0294, 0x02c1, 0x0284, 0x0239,
+ 0x023d, 0x02ca, 0x03a5, 0x03d9, 0x0381, 0x0383,
+ 0x03b6, 0x03cb, 0x0399, 0x02d6, 0x01f5, 0x018e,
+ 0x018f, 0x01ed, 0x0280, 0x02a7, 0x028b, 0x02a7,
+ 0x02cf, 0x02ec, 0x02c6, 0x0250, 0x01b5, 0x00fb,
+ 0x00a8, 0x0116, 0x01b4, 0x01f1, 0x0190, 0x00b0,
+ 0x001e, 0x0030, 0x008e, 0x0128, 0x016e, 0x0101,
+ 0x006d, 0x002f, 0x006c, 0x00cf, 0x0084, 0xff45,
+ 0xfe5b, 0xfe62, 0xfe94, 0xfedf, 0xff60, 0x0021,
+ 0x00cf, 0x0102, 0x00c6, 0xfff1, 0xff20, 0xfed0,
+ 0xfeb1, 0xfec8, 0xff4a, 0x0025, 0x00a1, 0x0045,
+ 0xffad, 0x0000, 0x0105, 0x016b, 0x0101, 0xffff,
+ 0xfed1, 0xfe05, 0xfe0d, 0xff27, 0x0076, 0x00e7,
+ 0x006d, 0x000d, 0x0016, 0x0099, 0x0146, 0x00f3,
+ 0x004a, 0xffb7, 0xfef1, 0xfeac, 0xfed9, 0xff34,
+ 0xff83, 0xffab, 0xff68, 0xff04, 0xff41, 0xff8b,
+ 0xffd4, 0x002f, 0x00a5, 0x0160, 0x0197, 0x015d,
+ 0x00e3, 0x003f, 0x001a, 0x0043, 0x001e, 0xffe4,
+ 0xffc7, 0xff34, 0xfef2, 0xffae, 0x006a, 0x00a9,
+ 0x0057, 0x0005, 0x003a, 0x00a8, 0x012b, 0x01a9,
+ 0x01c1, 0x0190, 0x01a6, 0x0196, 0x01d4, 0x027a,
+ 0x022a, 0x0198, 0x009f, 0xff30, 0xff17, 0xffc6,
+ 0x0060, 0x00d6, 0x00c0, 0x0068, 0x00b5, 0x0187,
+ 0x01bc, 0x017b, 0x00af, 0xff70, 0xfec6, 0xfea3,
+ 0xff04, 0xff56, 0xff72, 0xffbc, 0xff5f, 0xfefd,
+ 0xff4f, 0xff84, 0xff9f, 0xffca, 0xffd9, 0xfffc,
+ 0xffb4, 0xfedc, 0xfe34, 0xfd7d, 0xfd70, 0xfe89,
+ 0xff1f, 0xff26, 0xff2b, 0xff0c, 0xfeee, 0xff5e,
+ 0x0021, 0xffe2, 0xff63, 0xff79, 0xffd8, 0x004e,
+ 0x0077, 0x011b, 0x01c4, 0x01dc, 0x01b4, 0x0162,
+ 0x01cf, 0x0257, 0x02c5, 0x02f6, 0x01e5, 0x0137,
+ 0x015b, 0x017b, 0x01ed, 0x023d, 0x0243, 0x0276,
+ 0x02d4, 0x0343, 0x03d5, 0x0449, 0x0443, 0x03a1,
+ 0x0315, 0x0303, 0x02b2, 0x0244, 0x0176, 0x0092,
+ 0x00c7, 0x017e, 0x0212, 0x0276, 0x0308, 0x0377,
+ 0x03a6, 0x03ff, 0x03e2, 0x0405, 0x0396, 0x027b,
+ 0x02df, 0x0343, 0x0353, 0x03ae, 0x03b8, 0x0449,
+ 0x04c8, 0x048b, 0x03e8, 0x0320, 0x02dd, 0x0380,
+ 0x04a6, 0x055b, 0x05bd, 0x05dc, 0x052d, 0x049c,
+ 0x04d4, 0x0535, 0x05b4, 0x0629, 0x0618, 0x05e5,
+ 0x0522, 0x0464, 0x04d6, 0x0519, 0x04d3, 0x0483,
+ 0x0439, 0x046b, 0x0546, 0x0674, 0x06e2, 0x0705,
+ 0x0684, 0x04f4, 0x0414, 0x0362, 0x0328, 0x036e,
+ 0x031e, 0x03eb, 0x04b4, 0x03f4, 0x0356, 0x0307,
+ 0x02eb, 0x0352, 0x03b1, 0x03c0, 0x03d1, 0x0376,
+ 0x0241, 0x0116, 0x0086, 0x0093, 0x00bd, 0x0005,
+ 0xff8c, 0x0082, 0x01d5, 0x033c, 0x03df, 0x0328,
+ 0x0333, 0x0377, 0x02fe, 0x02ff, 0x0336, 0x03bb,
+ 0x046e, 0x04d8, 0x0561, 0x0653, 0x07b5, 0x07fe,
+ 0x072c, 0x069d, 0x066c, 0x06a4, 0x061e, 0x05aa,
+ 0x069b, 0x06ed, 0x06be, 0x06ee, 0x06f9, 0x07b4,
+ 0x08bf, 0x08a4, 0x07f1, 0x07d1, 0x0740, 0x0597,
+ 0x048d, 0x0416, 0x0422, 0x0535, 0x0532, 0x04b0,
+ 0x0537, 0x0592, 0x0600, 0x0671, 0x0694, 0x06ad,
+ 0x0649, 0x05d4, 0x04f5, 0x03ff, 0x03ed, 0x03de,
+ 0x039c, 0x0326, 0x0314, 0x041a, 0x0503, 0x0595,
+ 0x05b6, 0x055c, 0x05aa, 0x05ec, 0x056f, 0x0516,
+ 0x057a, 0x05b8, 0x04f7, 0x0543, 0x06a7, 0x0748,
+ 0x079b, 0x067f, 0x04ad, 0x046e, 0x0453, 0x03ce,
+ 0x0325, 0x02f8, 0x03b5, 0x03c3, 0x0342, 0x0316,
+ 0x0382, 0x040e, 0x046e, 0x04e3, 0x0423, 0x0362,
+ 0x0304, 0x0152, 0x00a3, 0x00f8, 0x00c8, 0x0167,
+ 0x01b6, 0x018b, 0x0275, 0x0336, 0x0375, 0x03ba,
+ 0x03ae, 0x03cb, 0x03a5, 0x02ce, 0x0213, 0x01b2,
+ 0x014b, 0x00c7, 0x0068, 0x0019, 0x00e8, 0x01fa,
+ 0x01a8, 0x0261, 0x02e6, 0x01dd, 0x0173, 0x00bc,
+ 0x00cc, 0x01da, 0x0273, 0x037f, 0x0440, 0x0539,
+ 0x0642, 0x05ca, 0x04db, 0x048c, 0x048a, 0x03c7,
+ 0x0365, 0x03c5, 0x0344, 0x0328, 0x03eb, 0x047f,
+ 0x0505, 0x049a, 0x0363, 0x0390, 0x0493, 0x0542,
+ 0x0642, 0x066e, 0x054b, 0x0425, 0x02ec, 0x01a0,
+ 0x0224, 0x03e8, 0x045b, 0x0541, 0x05c4, 0x04e2,
+ 0x056f, 0x050f, 0x04ed, 0x0658, 0x0587, 0x0489,
+ 0x03ff, 0x02a9, 0x01db, 0x019d, 0x017e, 0x0195,
+ 0x023e, 0x0233, 0x023a, 0x02a8, 0x018a, 0x00e1,
+ 0x015a, 0x01b9, 0x01d8, 0x01ac, 0x0183, 0x00a3,
+ 0x0036, 0x0176, 0x0294, 0x0329, 0x03c4, 0x02fe,
+ 0x01df, 0x01d5, 0x01a7, 0x0242, 0x023d, 0x0142,
+ 0x0174, 0x00b9, 0x003e, 0x0095, 0x0051, 0x0055,
+ 0x0047, 0x00cf, 0x0118, 0x00e2, 0x0013, 0xfeb0,
+ 0xfe83, 0xfd71, 0xfcb9, 0xfe28, 0xffa8, 0x0082,
+ 0x005a, 0x00ca, 0x009c, 0xff7b, 0xff9e, 0xfef2,
+ 0xfda7, 0xfd2d, 0xfc6f, 0xfaea, 0xf97b, 0xf8f4,
+ 0xf8d1, 0xf87d, 0xf8c6, 0xfa56, 0xfaf6, 0xfacb,
+ 0xfaa2, 0xf9e6, 0xf9c0, 0xf938, 0xf9df, 0xfb1d,
+ 0xfa58, 0xfa6f, 0xfadd, 0xfb65, 0xfca8, 0xfd0d,
+ 0xfc74, 0xfc33, 0xfd0f, 0xfc57, 0xfc73, 0xfd7a,
+ 0xfc4e, 0xfc7f, 0xfbb8, 0xfa74, 0xfc4f, 0xfd69,
+ 0xfdc8, 0xfef1, 0x0038, 0x014d, 0x0166, 0xffd7,
+ 0xfe0a, 0xfd75, 0xfcd2, 0xfcf1, 0xfdbd, 0xfe50,
+ 0xff71, 0x0097, 0x0104, 0x014b, 0x0301, 0x0386,
+ 0x0231, 0x01bb, 0x01b5, 0x022b, 0x0231, 0x02b3,
+ 0x0272, 0x008a, 0x016a, 0x0279, 0x023c, 0x02dd,
+ 0x04a1, 0x05c8, 0x042a, 0x0408, 0x0483, 0x0432,
+ 0x04e6, 0x0473, 0x0517, 0x066d, 0x0750, 0x0919,
+ 0x094f, 0x0893, 0x097b, 0x0b14, 0x0c34, 0x0fd1,
+ 0x1469, 0x164e, 0x176e, 0x1729, 0x1672, 0x1728,
+ 0x16ec, 0x1578, 0x156a, 0x153e, 0x129e, 0x11ea,
+ 0x1124, 0x0d87, 0x0ad7, 0x088d, 0x06ee, 0x0582,
+ 0x0518, 0x0586, 0x04c0, 0x0587, 0x0601, 0x0609,
+ 0x05e0, 0x0495, 0x0486, 0x032a, 0x0202, 0x0293,
+ 0x0297, 0x01e5, 0x00da, 0x0138, 0x00f9, 0x00bc,
+ 0x016b, 0x006a, 0xffe6, 0x0022, 0xff46, 0xfe48,
+ 0xfebf, 0xfe95, 0xfd90, 0xfdef, 0xfdb7, 0xfdbc,
+ 0xfe65, 0xff10, 0xffa6, 0xfeb4, 0xfd69, 0xfc30,
+ 0xfbf1, 0xfb20, 0xfa86, 0xfbbc, 0xfacc, 0xfa39,
+ 0xf9d0, 0xf844, 0xf756, 0xf643, 0xf713, 0xf6cd,
+ 0xf5b9, 0xf59f, 0xf382, 0xf0e4, 0xedc9, 0xec16,
+ 0xec69, 0xec6f, 0xec8c, 0xed13, 0xee71, 0xeec6,
+ 0xefe7, 0xf246, 0xf268, 0xf215, 0xf2ce, 0xf3e9,
+ 0xf426, 0xf51a, 0xf79a, 0xf960, 0xf94d, 0xf816,
+ 0xf95f, 0xfa71, 0xf980, 0xf98b, 0xf9ab, 0xf9a6,
+ 0xf967, 0xfa49, 0xf993, 0xf82a, 0xfac5, 0xfb85,
+ 0xfaa9, 0xfae1, 0xfc6d, 0xfeca, 0xfdd3, 0xfe1f,
+ 0xff5b, 0xfe0e, 0xfdc8, 0xfe74, 0xfea8, 0xffa2,
+ 0x0180, 0xff6a, 0xfd23, 0xfee9, 0xfea0, 0xfe9e,
+ 0x007d, 0x01cf, 0x038b, 0x047a, 0x03a5, 0x01fc,
+ 0x012a, 0x00c4, 0x00b5, 0x00a8, 0x01f3, 0x03ed,
+ 0x032b, 0x04ae, 0x06b6, 0x05c0, 0x055b, 0x04ac,
+ 0x0430, 0x0392, 0x04ae, 0x0629, 0x04eb, 0x05b7,
+ 0x0676, 0x061b, 0x0709, 0x0856, 0x08c5, 0x0928,
+ 0x0c30, 0x0cd6, 0x0c2b, 0x0e0f, 0x0ebf, 0x0e79,
+ 0x0da7, 0x0e85, 0x0f73, 0x0def, 0x0e96, 0x1025,
+ 0x0f9d, 0x0e24, 0x0d53, 0x0c7c, 0x0b52, 0x0a0a,
+ 0x0907, 0x08d5, 0x06db, 0x0683, 0x074d, 0x067e,
+ 0x07a7, 0x0747, 0x075a, 0x08f4, 0x0824, 0x0942,
+ 0x0adb, 0x0890, 0x0618, 0x07bd, 0x0898, 0x0845,
+ 0x09f5, 0x0941, 0x09f9, 0x0acc, 0x09e8, 0x0c2b,
+ 0x0af2, 0x0837, 0x07ea, 0x0570, 0x0351, 0x0301,
+ 0x0246, 0x01c0, 0x0222, 0x016f, 0x00e0, 0x00b4,
+ 0x00bc, 0x025d, 0x016e, 0x002b, 0x0081, 0xffd3,
+ 0xff7d, 0xfdbc, 0xfc27, 0xfbf6, 0xfa97, 0xf965,
+ 0xfa52, 0xfa28, 0xf826, 0xfa10, 0xf9a0, 0xf521,
+ 0xf4a2, 0xf422, 0xf2a5, 0xf1ac, 0xf108, 0xefba,
+ 0xedbe, 0xef3b, 0xef96, 0xef79, 0xf13d, 0xefd9,
+ 0xef1d, 0xf02a, 0xeedf, 0xed1b, 0xed26, 0xec9e,
+ 0xed27, 0xef56, 0xee81, 0xee82, 0xef0e, 0xef20,
+ 0xf233, 0xf1e1, 0xeedb, 0xeeb2, 0xed9d, 0xeaf2,
+ 0xeb6d, 0xebbf, 0xe969, 0xe969, 0xe84b, 0xe65c,
+ 0xe70a, 0xe78c, 0xe748, 0xe522, 0xe61c, 0xe810,
+ 0xe606, 0xe74c, 0xe901, 0xe76d, 0xe719, 0xe891,
+ 0xe965, 0xea9e, 0xee13, 0xf05e, 0xf244, 0xf0c0,
+ 0xe834, 0xde8e, 0xd820, 0xda53, 0xe357, 0xec87,
+ 0xf65e, 0xfdec, 0xfcf8, 0xf5c4, 0xef9c, 0xe9d5,
+ 0xe8a7, 0xf07e, 0xf657, 0xf729, 0xfa52, 0xfec3,
+ 0xff10, 0xffe8, 0x0380, 0x0452, 0x067c, 0x0a4a,
+ 0x0cad, 0x0e54, 0x0f98, 0x122d, 0x1151, 0x0e22,
+ 0x0cf0, 0x0d5f, 0x10c2, 0x12b2, 0x125b, 0x12a2,
+ 0x13a5, 0x1523, 0x14f9, 0x12e9, 0x1265, 0x1520,
+ 0x1509, 0x1506, 0x190b, 0x186b, 0x16f8, 0x170a,
+ 0x158e, 0x18b2, 0x1a5b, 0x1711, 0x1a3b, 0x1d5a,
+ 0x193a, 0x1b6f, 0x1e76, 0x1a43, 0x1aec, 0x1d2a,
+ 0x1e17, 0x1f07, 0x1c3b, 0x1dbf, 0x201e, 0x1abf,
+ 0x1748, 0x19d4, 0x1baa, 0x1e16, 0x20a2, 0x1f96,
+ 0x2114, 0x223f, 0x2060, 0x2097, 0x1dca, 0x1b70,
+ 0x1db7, 0x1eb4, 0x1e54, 0x1e81, 0x2128, 0x21b3,
+ 0x1ca7, 0x1b44, 0x1e62, 0x1e63, 0x1f47, 0x211a,
+ 0x1c9a, 0x19cf, 0x1bd2, 0x1be1, 0x1be7, 0x1ada,
+ 0x195a, 0x193f, 0x1846, 0x18f2, 0x19c5, 0x1726,
+ 0x1582, 0x1689, 0x14ed, 0x1438, 0x172e, 0x1784,
+ 0x1746, 0x1687, 0x135f, 0x101f, 0x0d34, 0x0ed0,
+ 0x119d, 0x10de, 0x0fd5, 0x0e9e, 0x0cf3, 0x09f2,
+ 0x06dd, 0x06d6, 0x075f, 0x0671, 0x074d, 0x08a9,
+ 0x063c, 0x0532, 0x04f2, 0x0154, 0x0125, 0x0447,
+ 0x049c, 0x0205, 0xffd4, 0x0003, 0x0125, 0x0190,
+ 0x01b9, 0x01b1, 0xfe71, 0xfc08, 0xfe27, 0xfebc,
+ 0xfe19, 0xff1e, 0xffad, 0xfd60, 0xfb6e, 0xfca4,
+ 0xfb79, 0xf977, 0xfa1d, 0xfb17, 0xfac3, 0xf7ba,
+ 0xf740, 0xfb37, 0xfc5c, 0xfa9b, 0xfc1d, 0xfdc6,
+ 0xfb9d, 0xfbd3, 0xfc95, 0xfae4, 0xfba7, 0xfce7,
+ 0xfe03, 0xff7a, 0xfd42, 0xfb1a, 0xfd50, 0xfcbd,
+ 0xf9d4, 0xfb8f, 0xfafe, 0xf8b8, 0xfb2c, 0xfada,
+ 0xf84a, 0xfa24, 0xfbda, 0xfbc4, 0xfd9a, 0xfc99,
+ 0xf9eb, 0xfc5f, 0xfc67, 0xf892, 0xf6a0, 0xf4d8,
+ 0xf598, 0xf8ac, 0xfa07, 0xfa8e, 0xfad1, 0xf9b3,
+ 0xf84d, 0xf816, 0xf77d, 0xf642, 0xf582, 0xf5f7,
+ 0xf6b4, 0xf631, 0xf657, 0xf56a, 0xf340, 0xf39e,
+ 0xf40e, 0xf4f9, 0xf7ae, 0xf69a, 0xf3ae, 0xf4bb,
+ 0xf4a9, 0xf224, 0xf33d, 0xf622, 0xf805, 0xf8b5,
+ 0xf93c, 0xfb9c, 0xfb5a, 0xf7b8, 0xf6fe, 0xf981,
+ 0xfaca, 0xfa18, 0xf9ce, 0xf939, 0xf81d, 0xf7de,
+ 0xf779, 0xf689, 0xf633, 0xf780, 0xf94d, 0xf8f9,
+ 0xf5d6, 0xf49f, 0xf849, 0xf884, 0xf41e, 0xf3ed,
+ 0xf543, 0xf3ff, 0xf441, 0xf652, 0xf73c, 0xf6cd,
+ 0xf5a1, 0xf41b, 0xf3e2, 0xf661, 0xf7af, 0xf47a,
+ 0xf3f3, 0xf72a, 0xf621, 0xf579, 0xf785, 0xf57d,
+ 0xf371, 0xf40d, 0xf3b7, 0xf5b4, 0xf7fa, 0xf537,
+ 0xf503, 0xf81c, 0xf5ba, 0xf340, 0xf4cb, 0xf583,
+ 0xf6d3, 0xf7ea, 0xf4c1, 0xf193, 0xf2d4, 0xf3db,
+ 0xf287, 0xf385, 0xf69e, 0xf98e, 0xfae0, 0xf7c8,
+ 0xf4c0, 0xf6a9, 0xf651, 0xf1c5, 0xf1a4, 0xf2a2,
+ 0xef45, 0xeea6, 0xf230, 0xf4bf, 0xf6f6, 0xf99c,
+ 0xfa04, 0xf7e2, 0xf643, 0xf7a5, 0xfa29, 0xf9e7,
+ 0xf8f0, 0xf8f9, 0xf67d, 0xf39d, 0xf436, 0xf608,
+ 0xf87e, 0xfbfd, 0xfb91, 0xf812, 0xf8fe, 0xfafc,
+ 0xf957, 0xf97f, 0xfb63, 0xfb92, 0xfdcb, 0x00e8,
+ 0xfee1, 0xfadc, 0xf99d, 0xf98b, 0xf959, 0xf83d,
+ 0xf6ae, 0xf79b, 0xfaab, 0xfd4d, 0xfec9, 0xfeaa,
+ 0xfe8b, 0x005b, 0x0032, 0xfde2, 0xff1e, 0x008d,
+ 0xfe1e, 0xfc54, 0xfc6f, 0xfeb6, 0x030c, 0x02b5,
+ 0x0018, 0x0270, 0x035a, 0x0120, 0x00cd, 0xffff,
+ 0x0202, 0x0739, 0x06d4, 0x0502, 0x0575, 0x04e0,
+ 0x09b0, 0x0e71, 0x091d, 0x05e7, 0x0690, 0x02c5,
+ 0x0334, 0x0663, 0x0546, 0x07b4, 0x0a08, 0x06db,
+ 0x0810, 0x0ad8, 0x07b2, 0x0627, 0x07c7, 0x072b,
+ 0x072b, 0x0a0f, 0x0b0d, 0x0805, 0x0707, 0x0a83,
+ 0x0b46, 0x0788, 0x0597, 0x06f2, 0x0853, 0x08b5,
+ 0x09fb, 0x0b95, 0x0a69, 0x0966, 0x0cf3, 0x112c,
+ 0x1156, 0x0f26, 0x0e83, 0x0e14, 0x0a96, 0x096e,
+ 0x0c27, 0x0ae4, 0x09f0, 0x0d78, 0x0b98, 0x0756,
+ 0x0992, 0x0c24, 0x0ca6, 0x0d45, 0x0c0a, 0x0abc,
+ 0x0839, 0x0532, 0x0855, 0x0b63, 0x086e, 0x06d5,
+ 0x0628, 0x0464, 0x05d8, 0x0692, 0x049e, 0x0476,
+ 0x04ff, 0x055a, 0x0429, 0x010b, 0x0378, 0x07fd,
+ 0x04fd, 0x02de, 0x0606, 0x0590, 0x0440, 0x05c1,
+ 0x04d1, 0x039b, 0x0484, 0x04d1, 0x0505, 0x038d,
+ 0x0293, 0x07ab, 0x0a9c, 0x06c8, 0x05b8, 0x0625,
+ 0x04dc, 0x084f, 0x0c94, 0x0c75, 0x0c06, 0x0a70,
+ 0x078b, 0x054d, 0x02c8, 0x053e, 0x0a0f, 0x05dc,
+ 0x011a, 0x05fa, 0x09d7, 0x0808, 0x075b, 0x07dd,
+ 0x07aa, 0x0794, 0x06a1, 0x059c, 0x088e, 0x0d08,
+ 0x0c62, 0x0a58, 0x0a89, 0x077e, 0x04de, 0x06f7,
+ 0x07bf, 0x09a4, 0x0d5a, 0x0b86, 0x09b1, 0x0ac8,
+ 0x0a05, 0x0b57, 0x0a90, 0x054b, 0x0795, 0x0aa4,
+ 0x0500, 0x0460, 0x0983, 0x0943, 0x079e, 0x07e8,
+ 0x073d, 0x0612, 0x0542, 0x0503, 0x05cc, 0x0957,
+ 0x0c1d, 0x0769, 0x03df, 0x090f, 0x0bcb, 0x0a34,
+ 0x0bc6, 0x0c61, 0x093e, 0x05d0, 0x056b, 0x097a,
+ 0x0b03, 0x076d, 0x06b4, 0x0957, 0x0afa, 0x0ac5,
+ 0x08cc, 0x084e, 0x098f, 0x09b8, 0x0a3d, 0x0a06,
+ 0x085c, 0x0902, 0x0a29, 0x08d2, 0x065e, 0x03cb,
+ 0x026d, 0x023d, 0x0381, 0x0747, 0x08ca, 0x0700,
+ 0x071a, 0x06d1, 0x0376, 0x0105, 0x0121, 0x0164,
+ 0xffaa, 0xfe99, 0x0060, 0x00bc, 0x001a, 0x0127,
+ 0x0146, 0x0191, 0x010b, 0xfe0b, 0x0004, 0x0475,
+ 0x034e, 0x02ab, 0x03f4, 0x0260, 0x01d4, 0x03c9,
+ 0x05f3, 0x07bf, 0x0878, 0x0776, 0x0239, 0xfe5f,
+ 0x02e1, 0x0538, 0x02e7, 0x05d1, 0x0733, 0x035a,
+ 0x022a, 0x02d3, 0x039c, 0x0265, 0x0018, 0x0250,
+ 0x000e, 0xfae5, 0x0104, 0x03cd, 0xfe10, 0x00da,
+ 0x01f4, 0xfd4b, 0x0064, 0x011f, 0xfce1, 0xfe25,
+ 0xff22, 0xff99, 0x0170, 0xffff, 0xff82, 0xfe96,
+ 0xfcde, 0x010d, 0x0169, 0xfbcd, 0xfcba, 0xff9a,
+ 0x00d8, 0x03e2, 0x02c9, 0x00a2, 0x02cd, 0x0324,
+ 0x02db, 0x059c, 0x06a5, 0x04b7, 0x045e, 0x06cb,
+ 0x06ef, 0x0537, 0x0775, 0x0939, 0x07df, 0x0824,
+ 0x066d, 0x033e, 0x03b1, 0x03be, 0x04e6, 0x07e2,
+ 0x0547, 0x01f6, 0x0266, 0x0224, 0x045f, 0x0681,
+ 0x02d0, 0x01a1, 0x04a7, 0x0435, 0x01d3, 0x0070,
+ 0x000e, 0x0215, 0x03ea, 0x023e, 0x0171, 0x040e,
+ 0x0236, 0xfd25, 0x00d1, 0x05f5, 0x01b6, 0xfe5a,
+ 0xfef7, 0xfe0a, 0xff67, 0x00a3, 0xff77, 0x0009,
+ 0xfe9d, 0xfd41, 0x0032, 0xffe1, 0xfe32, 0xffb0,
+ 0xfe09, 0xfc23, 0xfe18, 0xff3d, 0x000b, 0x00fe,
+ 0x0097, 0xffa4, 0xfe17, 0xffbe, 0x03a5, 0x0316,
+ 0x0299, 0x048f, 0x035d, 0x0218, 0x022e, 0x0125,
+ 0x0194, 0x00cb, 0xfdbd, 0xfeb8, 0x01bf, 0x015d,
+ 0xff80, 0xffd3, 0x016d, 0x007d, 0xff89, 0x0131,
+ 0x0094, 0xff4e, 0xffa2, 0xfc65, 0xf9bd, 0xfb80,
+ 0xfbf8, 0xfc3d, 0xfdc2, 0xfef1, 0x0175, 0x0118,
+ 0xfe06, 0xfe35, 0xfccd, 0xfa96, 0xfcce, 0xfba9,
+ 0xf89e, 0xfc18, 0xff70, 0xfe8f, 0xfd2c, 0xfc2a,
+ 0xfcb4, 0xfbe8, 0xf8dd, 0xf94f, 0xfacb, 0xfa5c,
+ 0xfbd3, 0xfcb6, 0xfb7d, 0xfbab, 0xfca6, 0xff07,
+ 0x01bd, 0xffda, 0xfd16, 0xfe2e, 0xff33, 0xff0e,
+ 0xffd4, 0xff89, 0xfdab, 0xfd45, 0xfea6, 0xffa7,
+ 0x0075, 0x011b, 0x0067, 0x002e, 0x00f8, 0x00e9,
+ 0x01cd, 0x03b7, 0x03c5, 0x02eb, 0x01cb, 0x0065,
+ 0xffa2, 0xfd67, 0xfb88, 0xfd4a, 0xfe2c, 0xfd54,
+ 0xfe30, 0xfeea, 0xfef3, 0xfde8, 0xfb8f, 0xfc61,
+ 0xfe3f, 0xfe24, 0x0013, 0x007d, 0xfea8, 0x0106,
+ 0x014d, 0xfe4f, 0x00ba, 0x022e, 0x0019, 0x01a9,
+ 0x0213, 0x0193, 0x051b, 0x0591, 0x035f, 0x0484,
+ 0x05c3, 0x0627, 0x05d7, 0x0558, 0x0729, 0x0614,
+ 0x030c, 0x03d3, 0x013b, 0xfdef, 0x023b, 0x032e,
+ 0x002d, 0x0383, 0x059f, 0x0397, 0x03a7, 0x027f,
+ 0x013d, 0x034d, 0x0441, 0x02f6, 0x0070, 0xfed4,
+ 0x00c1, 0x0107, 0xfedd, 0xff8a, 0xffd1, 0xfe9c,
+ 0xff33, 0xfece, 0xfde8, 0xfe95, 0xfe04, 0xfd8f,
+ 0xfd5b, 0xf990, 0xf6c1, 0xf925, 0xfb41, 0xfb22,
+ 0xfb73, 0xfaf5, 0xfa35, 0xfaa8, 0xf89d, 0xf5f5,
+ 0xf845, 0xfa53, 0xf950, 0xfafc, 0xfc19, 0xf99d,
+ 0xf9cb, 0xfc89, 0xfe75, 0xff72, 0xff39, 0x00ae,
+ 0x01d8, 0xfe4c, 0xfcda, 0xff2d, 0xff7d, 0x007c,
+ 0x00ea, 0xfe21, 0xfe60, 0xffbf, 0xfe28, 0xfd7f,
+ 0xfcae, 0xfbb1, 0xfd24, 0xfe25, 0xff20, 0xff82,
+ 0xfde6, 0xffc5, 0x012e, 0xfd2d, 0xfcb5, 0xff10,
+ 0xfe8f, 0xffa5, 0xff62, 0xfcfd, 0x0026, 0x025f,
+ 0xfef4, 0xfeae, 0xff72, 0xfcb2, 0xfccc, 0xff74,
+ 0xffac, 0xffd5, 0x0107, 0x00fc, 0x00a9, 0xffcf,
+ 0xfc8d, 0xfa43, 0xfae9, 0xfa9b, 0xf9f2, 0xfbae,
+ 0xfd20, 0xfced, 0xfd4c, 0xffec, 0x0397, 0x0461,
+ 0x038e, 0x0480, 0x0356, 0x001e, 0x0083, 0x01cb,
+ 0x0118, 0x0194, 0x0344, 0x0559, 0x0787, 0x08be,
+ 0x09a6, 0x0977, 0x07af, 0x06c1, 0x0761, 0x07b5,
+ 0x06b1, 0x0627, 0x069d, 0x045c, 0x008c, 0x000b,
+ 0xffab, 0xfdac, 0xfe3a, 0xfee2, 0xfdfa, 0xfe6c,
+ 0xfed8, 0xfe86, 0xfd88, 0xfb95, 0xfadb, 0xf9c3,
+ 0xf7b3, 0xf847, 0xf8ef, 0xf81b, 0xf983, 0xfa7f,
+ 0xf948, 0xf901, 0xf87b, 0xf813, 0xf95f, 0xf8e3,
+ 0xf674, 0xf5c8, 0xf684, 0xf57e, 0xf33b, 0xf498,
+ 0xf784, 0xf693, 0xf609, 0xf69a, 0xf441, 0xf3c4,
+ 0xf585, 0xf48f, 0xf419, 0xf560, 0xf561, 0xf62b,
+ 0xf751, 0xf6c7, 0xf742, 0xf725, 0xf4ed, 0xf459,
+ 0xf468, 0xf30c, 0xf32d, 0xf5ee, 0xf6c7, 0xf3d4,
+ 0xf22b, 0xf2af, 0xf18d, 0xf000, 0xf0ac, 0xf234,
+ 0xf2d4, 0xf2c0, 0xf1f2, 0xf088, 0xefb6, 0xef3b,
+ 0xee07, 0xedb1, 0xef0e, 0xef09, 0xede7, 0xeffb,
+ 0xf412, 0xf5c5, 0xf51a, 0xf4b1, 0xf532, 0xf5b7,
+ 0xf7bf, 0xf9c4, 0xf8f4, 0xf9a4, 0xfa93, 0xf842,
+ 0xf8fc, 0xfc7b, 0xfd2f, 0xfe59, 0x00c1, 0xff29,
+ 0xfd6c, 0xff69, 0xff8f, 0xfe7d, 0xfe7f, 0xfeba,
+ 0xffd9, 0xff48, 0xfdda, 0xfd8d, 0xfcf0, 0xfd8b,
+ 0xfee6, 0xfcec, 0xfa1d, 0xfc79, 0x0119, 0x0314,
+ 0x029d, 0x029c, 0x03b4, 0x0153, 0xff75, 0x0233,
+ 0x030b, 0x01a8, 0x0213, 0x0438, 0x04c9, 0x030c,
+ 0x0363, 0x05e4, 0x0670, 0x0457, 0x042a, 0x06cc,
+ 0x077f, 0x078c, 0x09b3, 0x0a09, 0x07b6, 0x0796,
+ 0x0890, 0x0865, 0x093b, 0x099f, 0x09b1, 0x0a87,
+ 0x0a7f, 0x0b4b, 0x0b86, 0x0a51, 0x0c83, 0x0e6b,
+ 0x0ce1, 0x0e9a, 0x1076, 0x0e05, 0x0e75, 0x103e,
+ 0x0ecb, 0x102b, 0x12ab, 0x116a, 0x1215, 0x1392,
+ 0x1186, 0x108f, 0x1134, 0x10b6, 0x107f, 0x11d9,
+ 0x1321, 0x12f2, 0x1265, 0x1191, 0x10d3, 0x1054,
+ 0x0f01, 0x0e1b, 0x0e8c, 0x0e56, 0x0d4f, 0x0e1c,
+ 0x0e23, 0x0c8a, 0x0d01, 0x0bf4, 0x09e6, 0x0a88,
+ 0x0a13, 0x09a3, 0x0aba, 0x09fa, 0x0a01, 0x0b01,
+ 0x094e, 0x0862, 0x0796, 0x0521, 0x05bd, 0x069f,
+ 0x05c1, 0x05fd, 0x0576, 0x0512, 0x0575, 0x0467,
+ 0x04db, 0x0748, 0x073c, 0x0630, 0x0651, 0x05ca,
+ 0x04b9, 0x04e3, 0x06c3, 0x07c1, 0x0743, 0x06b0,
+ 0x06bb, 0x0853, 0x08a9, 0x065c, 0x03cb, 0x03f8,
+ 0x0526, 0x0401, 0x05ad, 0x087c, 0x078e, 0x0610,
+ 0x03f2, 0x02be, 0x037e, 0x023c, 0x006b, 0x012b,
+ 0x0151, 0x00c2, 0x015e, 0x006b, 0x000a, 0xff91,
+ 0xfdd9, 0xfe6f, 0xfe1c, 0xfe7c, 0x00a5, 0x00bf,
+ 0x0110, 0x00b2, 0xfed7, 0xfe8b, 0xff8c, 0xfff1,
+ 0x007b, 0x0166, 0x0168, 0x0147, 0x000b, 0xff76,
+ 0x017a, 0x01f3, 0x015e, 0x02a6, 0x0390, 0x026d,
+ 0x01e9, 0x0213, 0x00bf, 0x003c, 0x00ce, 0x00a0,
+ 0x00c0, 0x018e, 0x027f, 0x02fc, 0x01f4, 0x00e7,
+ 0x0132, 0xffba, 0xfe77, 0x00d7, 0x0155, 0x0053,
+ 0x0311, 0x0439, 0x014c, 0xffcb, 0xffaa, 0xff7c,
+ 0xffe2, 0xfffe, 0xffee, 0x001e, 0xffa4, 0xfd53,
+ 0xfbc9, 0xfd08, 0xfdc6, 0xfd70, 0xfda7, 0xfd88,
+ 0xfe15, 0x002b, 0xff92, 0xfd69, 0xfded, 0xfd5c,
+ 0xfc2c, 0xfc9e, 0xfce0, 0xfd4e, 0xfcd1, 0xfcbb,
+ 0xfe82, 0xfdbe, 0xfab5, 0xfbfb, 0xfe95, 0xfdd8,
+ 0xff8a, 0x0250, 0x01da, 0xff68, 0xfe8a, 0x00ce,
+ 0xfff8, 0xff2c, 0x012a, 0x0070, 0x0005, 0x00cf,
+ 0x00d4, 0x003b, 0xff9d, 0x0022, 0x00be, 0x0036,
+ 0xffb2, 0x00da, 0x0032, 0xfe65, 0xfe35, 0xfcf5,
+ 0xfb88, 0xfb58, 0xfc58, 0xfc2a, 0xfc5e, 0xfe44,
+ 0xfcc5, 0xfb86, 0xfa5c, 0xf846, 0xf9b9, 0xf913,
+ 0xf7c2, 0xf977, 0xf90a, 0xf925, 0xfa7d, 0xf83a,
+ 0xf726, 0xf86d, 0xf77c, 0xf879, 0xfa35, 0xf9a8,
+ 0xfb5c, 0xfd05, 0xfb4b, 0xf9df, 0xfb8a, 0xfe1b,
+ 0xff72, 0x006a, 0x00e7, 0xff77, 0xfd63, 0xfe0b,
+ 0xff02, 0xfe15, 0xfeea, 0x008b, 0xffb7, 0xff6f,
+ 0x00c0, 0xffe4, 0x0009, 0x0155, 0xff3b, 0xfdc9,
+ 0xfe50, 0x001d, 0x01da, 0x00c8, 0x016c, 0x0340,
+ 0x0158, 0xfeda, 0xffd9, 0x00d1, 0x00af, 0x0316,
+ 0x0386, 0x013e, 0x0198, 0x0126, 0xfe80, 0xff7f,
+ 0x0211, 0x0076, 0x0025, 0x023f, 0x012b, 0x022c,
+ 0x044e, 0x0147, 0x0009, 0x0264, 0x02f3, 0x0239,
+ 0x0216, 0x04cb, 0x0706, 0x055e, 0x04bb, 0x05d7,
+ 0x05fb, 0x05e9, 0x079d, 0x09bc, 0x09f0, 0x0909,
+ 0x07ef, 0x080b, 0x07ee, 0x077c, 0x0816, 0x0858,
+ 0x07e8, 0x06d7, 0x093c, 0x0aee, 0x0889, 0x08a0,
+ 0x07c0, 0x0653, 0x0630, 0x067c, 0x0797, 0x0646,
+ 0x07c3, 0x08d0, 0x05a9, 0x0588, 0x06d6, 0x076e,
+ 0x075a, 0x078c, 0x08b0, 0x0a23, 0x0a46, 0x0914,
+ 0x0992, 0x079f, 0x069f, 0x0912, 0x085a, 0x07ec,
+ 0x091d, 0x09e1, 0x0943, 0x07dd, 0x0702, 0x05a0,
+ 0x05d4, 0x05a2, 0x06a6, 0x0901, 0x0705, 0x068a,
+ 0x0802, 0x06cb, 0x0671, 0x0807, 0x0999, 0x0944,
+ 0x0901, 0x0b73, 0x0ca1, 0x0b48, 0x0ab4, 0x09f2,
+ 0x08bc, 0x08f5, 0x0991, 0x0a34, 0x0b22, 0x0b14,
+ 0x0a95, 0x0a33, 0x089e, 0x07fa, 0x08ce, 0x083f,
+ 0x0791, 0x0795, 0x07ce, 0x0761, 0x05f4, 0x0478,
+ 0x0316, 0x0325, 0x0374, 0x0436, 0x0427, 0x0151,
+ 0x01c9, 0x039c, 0x020c, 0x00c8, 0x00f9, 0x00f6,
+ 0x00d1, 0x0197, 0x013d, 0x0124, 0x0284, 0x018c,
+ 0x0008, 0xff94, 0x0041, 0x0159, 0x008f, 0x0121,
+ 0x02c2, 0x0199, 0x00db, 0x01d9, 0x01bc, 0x02ae,
+ 0x04b4, 0x052f, 0x05d5, 0x064b, 0x0591, 0x04f8,
+ 0x048a, 0x0505, 0x068e, 0x05ca, 0x04f9, 0x0747,
+ 0x07e4, 0x075f, 0x06d9, 0x05dc, 0x05cc, 0x0364,
+ 0x0271, 0x04dd, 0x04e6, 0x0429, 0x0519, 0x0463,
+ 0x027b, 0x0327, 0x0265, 0x0113, 0x0105, 0xff84,
+ 0x00bb, 0x0174, 0x012e, 0x020b, 0x020e, 0x03a5,
+ 0x0260, 0x0139, 0x02ef, 0x02b4, 0x0375, 0x031a,
+ 0x0148, 0x00f5, 0x00a9, 0x00a7, 0x01d8, 0x02a3,
+ 0x022c, 0x0234, 0x013f, 0x016e, 0x01e9, 0x0041,
+ 0x01bb, 0x0320, 0x041a, 0x05bb, 0x04c0, 0x0504,
+ 0x04c1, 0x0385, 0x03a6, 0x032b, 0x0373, 0x03b7,
+ 0x0359, 0x044b, 0x051d, 0x046e, 0x03b6, 0x030a,
+ 0x01cf, 0x013a, 0x010c, 0x0147, 0x0253, 0x02e9,
+ 0x02a0, 0x021d, 0x01ad, 0x018d, 0x0129, 0xffa7,
+ 0xfed2, 0xff76, 0xff4e, 0xfeb0, 0xff26, 0xff23,
+ 0xfeea, 0xffab, 0xff30, 0xfe86, 0xfec1, 0xfe7c,
+ 0xfef4, 0xffbe, 0xff74, 0xfdc8, 0xfc86, 0xfd39,
+ 0xfdfa, 0xfe1c, 0xfe6f, 0xfe7e, 0xfd34, 0xfd23,
+ 0xfdd0, 0xfcc2, 0xfd3c, 0xfdd1, 0xfdd6, 0xff22,
+ 0xff72, 0xff7e, 0xff8f, 0xfe91, 0xfdf8, 0xfe4c,
+ 0xfdef, 0xfe80, 0xffc6, 0xff17, 0xff72, 0xffcf,
+ 0xfef7, 0xfeeb, 0xff7f, 0x0024, 0xfef5, 0xfef1,
+ 0xfff6, 0x0028, 0x00ec, 0xffa6, 0xfec6, 0xff21,
+ 0xfdd3, 0xfcfa, 0xfe09, 0xfe56, 0xfd1c, 0xfe09,
+ 0xfea8, 0xfe26, 0xfeb3, 0xfea0, 0xfeda, 0xfe46,
+ 0xfde1, 0xff25, 0xff4a, 0xfea4, 0xfeed, 0xfec9,
+ 0xfce0, 0xfcea, 0xfdb4, 0xfdeb, 0xffa6, 0xff93,
+ 0xffe9, 0x008d, 0xfefa, 0xff88, 0x0113, 0x0157,
+ 0x0179, 0x0194, 0x01f2, 0x01b7, 0x002f, 0x0001,
+ 0x0078, 0xff8f, 0x001e, 0x00a3, 0x006d, 0x00fa,
+ 0x0065, 0xffc9, 0xffae, 0xffc3, 0xffb8, 0x001a,
+ 0x0126, 0x0028, 0xffea, 0x022f, 0x0333, 0x02f3,
+ 0x0303, 0x0189, 0xfff1, 0x0106, 0x0134, 0x0138,
+ 0x022a, 0x00d0, 0x006c, 0x01ad, 0x01b6, 0x01c0,
+ 0x01bf, 0x0096, 0x003b, 0x0054, 0xff2e, 0xff81,
+ 0xff94, 0xfe77, 0xfff4, 0x00ba, 0xfff0, 0x0010,
+ 0xffe1, 0x005c, 0x002e, 0xff6d, 0x012b, 0x01cb,
+ 0x0124, 0x016d, 0x00d4, 0x016c, 0x0292, 0x0216,
+ 0x0194, 0x014f, 0x00c7, 0xffff, 0xffb0, 0xffdc,
+ 0x00ab, 0x00f1, 0x0076, 0x0086, 0xffad, 0xff54,
+ 0xfe68, 0xfcba, 0xfc87, 0xfbe3, 0xfc66, 0xfc8d,
+ 0xfc7b, 0xfdaa, 0xfcaa, 0xfb97, 0xfb31, 0xfb19,
+ 0xfb8e, 0xfc26, 0xfc8e, 0xfc53, 0xfcb8, 0xfbad,
+ 0xfc57, 0xfdc9, 0xfc3b, 0xfc7e, 0xfbc1, 0xfac4,
+ 0xfb28, 0xf9ea, 0xfa7e, 0xfb61, 0xfb48, 0xfb91,
+ 0xfc0f, 0xfc7e, 0xfbc2, 0xfb15, 0xfb0a, 0xfb9a,
+ 0xfc6a, 0xfdec, 0xfede, 0xfe49, 0xff21, 0xffb6,
+ 0x0067, 0x020a, 0x0266, 0x02e9, 0x01bf, 0x000c,
+ 0x0177, 0x0295, 0x0255, 0x032a, 0x0463, 0x0428,
+ 0x033e, 0x02fa, 0x0296, 0x026d, 0x02dd, 0x032e,
+ 0x044e, 0x0465, 0x0320, 0x03bb, 0x03f0, 0x0272,
+ 0x0183, 0x019a, 0x0193, 0x00bf, 0x0131, 0x01d3,
+ 0x00e0, 0x004d, 0x00f7, 0x013d, 0x009a, 0x0145,
+ 0x014b, 0x0003, 0x001e, 0xffb7, 0xff0c, 0xff7d,
+ 0xff9a, 0xff00, 0xffad, 0x011c, 0x0022, 0xfed6,
+ 0xfea1, 0xfece, 0x000e, 0x01d0, 0x0366, 0x02ed,
+ 0x022d, 0x03e8, 0x04be, 0x03f0, 0x041c, 0x0484,
+ 0x0373, 0x01e9, 0x0188, 0x0242, 0x03b6, 0x0477,
+ 0x037d, 0x031a, 0x031c, 0x0281, 0x026e, 0x016d,
+ 0x0110, 0x0174, 0x0078, 0x00d0, 0x00c6, 0x0018,
+ 0x00f5, 0x001a, 0xfda5, 0xfce4, 0xfd7f, 0xfd51,
+ 0xfd33, 0xfcd0, 0xfc52, 0xfcb0, 0xfc21, 0xfc08,
+ 0xfaeb, 0xf9c0, 0xfb1c, 0xfb1e, 0xfafd, 0xfab0,
+ 0xf9e3, 0xfa23, 0xf9cb, 0xf9ba, 0xfa11, 0xfb85,
+ 0xfc03, 0xfa7a, 0xfa6c, 0xfb38, 0xfc7e, 0xfd2a,
+ 0xfd86, 0xfe73, 0xfeeb, 0x007b, 0x0203, 0x027d,
+ 0x021f, 0x01ac, 0x0154, 0x0017, 0x00fd, 0x0282,
+ 0x028f, 0x03af, 0x0446, 0x035d, 0x029a, 0x020f,
+ 0x0167, 0x00e6, 0x0017, 0xff3e, 0xff19, 0xff21,
+ 0x0046, 0x00e8, 0xffa8, 0xff9f, 0xffb3, 0xfedd,
+ 0xfeed, 0xff33, 0x0007, 0xfff4, 0xfe20, 0xfe65,
+ 0xfed7, 0xfd4e, 0xfcbd, 0xfc1b, 0xfb3f, 0xfbef,
+ 0xfc8b, 0xfc76, 0xfc67, 0xfb9f, 0xfb05, 0xfc0d,
+ 0xfd30, 0xfde9, 0xfddc, 0xfce6, 0xfd64, 0xfe79,
+ 0xff01, 0x002d, 0x00b9, 0x003d, 0x014a, 0x037c,
+ 0x045d, 0x0521, 0x063e, 0x05f9, 0x04fd, 0x055c,
+ 0x06a3, 0x06ef, 0x07cc, 0x0925, 0x08de, 0x0841,
+ 0x07ba, 0x06c7, 0x056e, 0x03c0, 0x02df, 0x027f,
+ 0x0169, 0x0087, 0x0024, 0xffa6, 0xffcd, 0xff04,
+ 0xfd54, 0xfcec, 0xfcb4, 0xfcda, 0xfd46, 0xfd54,
+ 0xfdad, 0xfdf1, 0xfe19, 0xfd6f, 0xfc1c, 0xfb61,
+ 0xfb6f, 0xfbfc, 0xfcb0, 0xfcdc, 0xfb8b, 0xfa44,
+ 0xf98d, 0xf8f9, 0xf9d5, 0xfa95, 0xf9fa, 0xf905,
+ 0xf858, 0xf82c, 0xf85a, 0xf82b, 0xf75b, 0xf72a,
+ 0xf702, 0xf6b0, 0xf6fc, 0xf6f2, 0xf69f, 0xf5d3,
+ 0xf4bb, 0xf3f2, 0xf396, 0xf4a3, 0xf636, 0xf6f3,
+ 0xf758, 0xf7c3, 0xf7b1, 0xf72a, 0xf665, 0xf580,
+ 0xf569, 0xf5a9, 0xf5a3, 0xf5be, 0xf5ce, 0xf5e4,
+ 0xf5f4, 0xf598, 0xf4a2, 0xf449, 0xf4e9, 0xf49e,
+ 0xf3ae, 0xf3b1, 0xf48a, 0xf525, 0xf4dd, 0xf3ce,
+ 0xf2ba, 0xf261, 0xf286, 0xf349, 0xf3fc, 0xf362,
+ 0xf254, 0xf15a, 0xf0db, 0xf1c9, 0xf31b, 0xf3ec,
+ 0xf4c0, 0xf4ff, 0xf47a, 0xf4e5, 0xf643, 0xf6c7,
+ 0xf67b, 0xf6a6, 0xf735, 0xf77d, 0xf80b, 0xf91f,
+ 0xf976, 0xf8c1, 0xf7fa, 0xf759, 0xf6fa, 0xf767,
+ 0xf876, 0xf975, 0xfa34, 0xfa98, 0xfa66, 0xfa15,
+ 0xf9cb, 0xf9c5, 0xfa58, 0xfa7e, 0xfaaf, 0xfbc1,
+ 0xfc8a, 0xfcef, 0xfd1d, 0xfcd4, 0xfcb0, 0xfcb5,
+ 0xfc9c, 0xfcd5, 0xfd7e, 0xfe4f, 0xff75, 0x0094,
+ 0x010f, 0x013a, 0x017b, 0x0260, 0x03fb, 0x051c,
+ 0x056e, 0x0575, 0x0496, 0x031f, 0x0337, 0x04f2,
+ 0x06f5, 0x08c3, 0x093a, 0x08b3, 0x0935, 0x0a76,
+ 0x0b97, 0x0c86, 0x0cad, 0x0ca8, 0x0d6d, 0x0e82,
+ 0x0fa2, 0x10b9, 0x117a, 0x11ea, 0x115a, 0x101c,
+ 0x1056, 0x11a9, 0x1211, 0x1230, 0x1315, 0x13dd,
+ 0x1366, 0x11f1, 0x1128, 0x11b2, 0x11f5, 0x1118,
+ 0x1015, 0x0f7b, 0x0f79, 0x0fdb, 0x0f67, 0x0e1f,
+ 0x0d06, 0x0bee, 0x0b20, 0x0add, 0x0a6e, 0x0acc,
+ 0x0c96, 0x0d84, 0x0cdf, 0x0c18, 0x0b6e, 0x0b4b,
+ 0x0bef, 0x0c02, 0x0b43, 0x0a20, 0x0826, 0x0645,
+ 0x05b3, 0x063b, 0x07b2, 0x092c, 0x0964, 0x08fe,
+ 0x08b3, 0x0856, 0x07fc, 0x0743, 0x0651, 0x05fb,
+ 0x05c1, 0x05a6, 0x0670, 0x070c, 0x06c7, 0x066e,
+ 0x05fb, 0x0594, 0x05b7, 0x05dc, 0x05ed, 0x0643,
+ 0x0675, 0x066a, 0x065c, 0x062f, 0x062b, 0x068e,
+ 0x06ab, 0x0613, 0x05af, 0x0628, 0x06b6, 0x06e9,
+ 0x0711, 0x06a7, 0x0565, 0x0434, 0x038d, 0x033a,
+ 0x031b, 0x034a, 0x03d4, 0x041d, 0x0396, 0x02bb,
+ 0x01fd, 0x017f, 0x018c, 0x017e, 0x007f, 0xff15,
+ 0xfddb, 0xfce4, 0xfc8c, 0xfd1d, 0xfe60, 0xffd0,
+ 0x00df, 0x018d, 0x01df, 0x0179, 0x008d, 0xffd2,
+ 0xff87, 0xffab, 0x002e, 0x00d9, 0x01a9, 0x0291,
+ 0x02f6, 0x0292, 0x0222, 0x0240, 0x026b, 0x0217,
+ 0x016c, 0x009c, 0xfff2, 0x0037, 0x0130, 0x018f,
+ 0x0179, 0x017f, 0x00c1, 0xffb3, 0xfff1, 0x00ab,
+ 0x00d0, 0x0107, 0x00c2, 0xff22, 0xfd25, 0xfbc6,
+ 0xfb5f, 0xfbf0, 0xfc9d, 0xfd02, 0xfd38, 0xfd0a,
+ 0xfd3a, 0xfe43, 0xfefd, 0xff49, 0xfff2, 0x000d,
+ 0xfeb4, 0xfcbb, 0xfb19, 0xfa47, 0xfa83, 0xfb58,
+ 0xfc2e, 0xfd1a, 0xfe3c, 0xff40, 0xffc2, 0xffa7,
+ 0xff28, 0xfeae, 0xfeca, 0xffb9, 0x00c5, 0x018a,
+ 0x0283, 0x0330, 0x02f0, 0x02cf, 0x02e6, 0x0229,
+ 0x015f, 0x012b, 0x0077, 0xff56, 0xfef3, 0xff7e,
+ 0x0059, 0x010b, 0x019f, 0x01b8, 0x00c5, 0xffcd,
+ 0xfff1, 0x00b4, 0x018a, 0x01f2, 0x012b, 0xff7f,
+ 0xfdc9, 0xfcda, 0xfcf0, 0xfd3c, 0xfda5, 0xfe50,
+ 0xfe41, 0xfded, 0xfe9d, 0xff66, 0xff7f, 0xff83,
+ 0xff57, 0xfea3, 0xfd55, 0xfb45, 0xf92d, 0xf7fc,
+ 0xf7b9, 0xf803, 0xf88e, 0xf93a, 0xfa1c, 0xfb28,
+ 0xfbbe, 0xfb2e, 0xfa20, 0xf9ba, 0xf9e6, 0xfa5b,
+ 0xfb2c, 0xfbfd, 0xfc99, 0xfcf0, 0xfcf6, 0xfd07,
+ 0xfcea, 0xfc67, 0xfc24, 0xfbaf, 0xfa85, 0xf9f7,
+ 0xfa99, 0xfb70, 0xfc33, 0xfd01, 0xfd87, 0xfd7b,
+ 0xfd1b, 0xfd19, 0xfdbb, 0xfea1, 0xff67, 0xffc4,
+ 0xff76, 0xfe6f, 0xfd52, 0xfcdf, 0xfcd8, 0xfd22,
+ 0xfdce, 0xfdd3, 0xfd43, 0xfd82, 0xfe80, 0xffd0,
+ 0x0114, 0x014b, 0x010d, 0x011e, 0x0083, 0xff58,
+ 0xfe3b, 0xfd22, 0xfce4, 0xfd6f, 0xfdf0, 0xff08,
+ 0x008f, 0x0192, 0x01f6, 0x0168, 0x004b, 0xffda,
+ 0x0035, 0x0144, 0x0272, 0x02e8, 0x0393, 0x04c6,
+ 0x0514, 0x0489, 0x0430, 0x0437, 0x0422, 0x0333,
+ 0x0212, 0x021d, 0x02fb, 0x03b8, 0x042c, 0x048d,
+ 0x04f9, 0x04d0, 0x0423, 0x0444, 0x0522, 0x0603,
+ 0x0725, 0x07fd, 0x07bc, 0x06e3, 0x0628, 0x05de,
+ 0x062b, 0x06f1, 0x07a5, 0x078f, 0x0724, 0x07a5,
+ 0x091a, 0x0ab0, 0x0bca, 0x0c62, 0x0cec, 0x0cd1,
+ 0x0b5f, 0x09cc, 0x08e9, 0x0830, 0x07e8, 0x084d,
+ 0x08e6, 0x099e, 0x0a4e, 0x0a89, 0x0a2b, 0x0951,
+ 0x0879, 0x080d, 0x0815, 0x0897, 0x0920, 0x0943,
+ 0x0993, 0x0a5b, 0x0ad1, 0x0a9a, 0x0a5a, 0x0a52,
+ 0x09df, 0x091b, 0x08fd, 0x0942, 0x0900, 0x086e,
+ 0x0807, 0x07e0, 0x07dd, 0x0753, 0x0607, 0x050f,
+ 0x0510, 0x054a, 0x0512, 0x04a0, 0x0436, 0x03bf,
+ 0x0311, 0x021a, 0x013c, 0x0100, 0x0112, 0x00bd,
+ 0x0001, 0xffa0, 0x0055, 0x01c5, 0x02e1, 0x038e,
+ 0x03b1, 0x0290, 0x00df, 0xfff6, 0xff64, 0xfe9f,
+ 0xfe9a, 0xffb0, 0x00e6, 0x01e7, 0x02cf, 0x02f4,
+ 0x027b, 0x0260, 0x0242, 0x01dc, 0x01f6, 0x0237,
+ 0x0227, 0x0223, 0x0220, 0x02b3, 0x040b, 0x0465,
+ 0x0381, 0x02ac, 0x01fd, 0x01f9, 0x02e4, 0x0338,
+ 0x02bd, 0x0285, 0x02b3, 0x035c, 0x03f1, 0x0377,
+ 0x02cf, 0x0304, 0x038b, 0x040c, 0x04b4, 0x055b,
+ 0x05b5, 0x058b, 0x0524, 0x04e7, 0x04b2, 0x04a5,
+ 0x04f3, 0x04e7, 0x0476, 0x04d1, 0x0607, 0x0739,
+ 0x084c, 0x08e3, 0x084b, 0x06b6, 0x04a5, 0x02b6,
+ 0x018b, 0x00e2, 0x00cb, 0x01c7, 0x02fa, 0x03ba,
+ 0x0457, 0x047f, 0x0461, 0x049c, 0x04d0, 0x0540,
+ 0x061e, 0x0671, 0x0672, 0x06c7, 0x0720, 0x07d5,
+ 0x08b8, 0x088e, 0x0789, 0x06a3, 0x0648, 0x0666,
+ 0x066a, 0x0615, 0x0568, 0x047a, 0x0407, 0x03d7,
+ 0x0346, 0x0317, 0x02fd, 0x0236, 0x01ff, 0x0261,
+ 0x0266, 0x02bd, 0x02d4, 0x01a6, 0x0094, 0x006a,
+ 0x00bb, 0x018a, 0x0200, 0x0177, 0x00e7, 0x0107,
+ 0x01d2, 0x032f, 0x04a3, 0x054b, 0x0478, 0x029b,
+ 0x0081, 0xfe51, 0xfcad, 0xfc20, 0xfc10, 0xfcb8,
+ 0xfe63, 0xffac, 0xffcc, 0xff53, 0xfed3, 0xfee8,
+ 0xff73, 0xffd6, 0x0026, 0x001d, 0xffcf, 0x0060,
+ 0x0179, 0x0251, 0x0368, 0x03d0, 0x02cc, 0x0268,
+ 0x033b, 0x03dd, 0x0464, 0x0487, 0x038d, 0x02c1,
+ 0x02c4, 0x02bb, 0x02da, 0x0307, 0x02ae, 0x028b,
+ 0x02d6, 0x02d6, 0x02e7, 0x033b, 0x0311, 0x0275,
+ 0x0212, 0x0237, 0x02d5, 0x035e, 0x0332, 0x027e,
+ 0x0214, 0x02a7, 0x040d, 0x0577, 0x0653, 0x0697,
+ 0x0628, 0x048e, 0x01f4, 0xffb1, 0xfe94, 0xfe43,
+ 0xfec4, 0x002f, 0x018b, 0x020d, 0x01ef, 0x015a,
+ 0x0090, 0x006f, 0x0104, 0x0150, 0x0116, 0x00d6,
+ 0x0095, 0x0069, 0x00a6, 0x013a, 0x01ef, 0x0245,
+ 0x01d0, 0x0161, 0x01ba, 0x0274, 0x0341, 0x037c,
+ 0x0286, 0x0191, 0x0185, 0x0181, 0x0161, 0x0181,
+ 0x0169, 0x014a, 0x016f, 0x0157, 0x013a, 0x015a,
+ 0x00e6, 0xffd3, 0xff31, 0xff92, 0x007b, 0x00d3,
+ 0x0058, 0x000a, 0x006c, 0x015a, 0x02ce, 0x0411,
+ 0x047b, 0x0468, 0x03b5, 0x0219, 0x0085, 0xff55,
+ 0xfe18, 0xfd71, 0xfde2, 0xfeee, 0x003e, 0x012c,
+ 0x0117, 0x00d7, 0x0136, 0x01f6, 0x02f6, 0x03b0,
+ 0x036d, 0x02bd, 0x0285, 0x02de, 0x039c, 0x0461,
+ 0x04ca, 0x04ee, 0x04cf, 0x0470, 0x0457, 0x04c7,
+ 0x052b, 0x04e0, 0x03f8, 0x0328, 0x0304, 0x031f,
+ 0x0293, 0x01a7, 0x0175, 0x01e1, 0x01f8, 0x01ac,
+ 0x0159, 0x00f1, 0x0052, 0xff6e, 0xfec6, 0xff10,
+ 0xff85, 0xfeec, 0xfddf, 0xfd78, 0xfdc7, 0xfe90,
+ 0xff6c, 0xffd6, 0xffd1, 0xff70, 0xfe8c, 0xfd3c,
+ 0xfbae, 0xfa21, 0xf900, 0xf892, 0xf91c, 0xfa6a,
+ 0xfb93, 0xfc1d, 0xfc4b, 0xfc9f, 0xfd50, 0xfdd3,
+ 0xfe15, 0xfe9b, 0xfeb1, 0xfdfe, 0xfdd6, 0xfe6a,
+ 0xff07, 0xffe2, 0x007b, 0x0041, 0x0012, 0x004e,
+ 0x00b0, 0x017a, 0x023b, 0x0215, 0x0157, 0x00dd,
+ 0x00cf, 0x009a, 0x0012, 0xffbd, 0xffc3, 0xfffb,
+ 0x0061, 0x00a4, 0x005a, 0xffae, 0xfefa, 0xfe5d,
+ 0xfdfb, 0xfe2d, 0xfeaf, 0xfe9d, 0xfe42, 0xfe70,
+ 0xfefe, 0xfff1, 0x0128, 0x01c2, 0x01cb, 0x01a3,
+ 0x011d, 0x008b, 0xffce, 0xfea2, 0xfdf2, 0xfdf6,
+ 0xfe8c, 0x006b, 0x02a5, 0x03ae, 0x0416, 0x047e,
+ 0x050d, 0x065c, 0x07c0, 0x07fd, 0x0764, 0x06f9,
+ 0x072d, 0x079d, 0x07af, 0x0774, 0x0744, 0x0743,
+ 0x0781, 0x07be, 0x07eb, 0x082d, 0x07ed, 0x06f8,
+ 0x066b, 0x066c, 0x05d9, 0x04e9, 0x0470, 0x03f9,
+ 0x0384, 0x0398, 0x0359, 0x0248, 0x0120, 0x0000,
+ 0xff19, 0xfec0, 0xfe39, 0xfd76, 0xfcf3, 0xfc42,
+ 0xfba6, 0xfbb0, 0xfbe7, 0xfc60, 0xfd48, 0xfdda,
+ 0xfde0, 0xfd9b, 0xfd00, 0xfbf0, 0xfa3d, 0xf87b,
+ 0xf774, 0xf6f9, 0xf74a, 0xf8ab, 0xf9dd, 0xfa38,
+ 0xfa41, 0xfa0a, 0xfa27, 0xfb42, 0xfc69, 0xfcae,
+ 0xfc68, 0xfc2f, 0xfc4a, 0xfc78, 0xfc62, 0xfc70,
+ 0xfcc8, 0xfcc2, 0xfc8b, 0xfce7, 0xfd6d, 0xfd66,
+ 0xfcc9, 0xfbdb, 0xfb76, 0xfbd3, 0xfbb0, 0xfaea,
+ 0xfa9e, 0xfad1, 0xfb60, 0xfc4c, 0xfccd, 0xfcbe,
+ 0xfc93, 0xfc44, 0xfbf8, 0xfbd6, 0xfc13, 0xfcde,
+ 0xfd3b, 0xfcb5, 0xfc8d, 0xfd39, 0xfe30, 0xff2d,
+ 0xffcb, 0x001e, 0x0091, 0x00cb, 0x0061, 0xff47,
+ 0xfdda, 0xfcef, 0xfcac, 0xfccf, 0xfd6e, 0xfe6b,
+ 0xffa6, 0x00ac, 0x00c7, 0x00a0, 0x0125, 0x01eb,
+ 0x028d, 0x02c2, 0x0253, 0x0206, 0x022b, 0x025e,
+ 0x02ea, 0x03cb, 0x0484, 0x0556, 0x068c, 0x07fc,
+ 0x095e, 0x0a24, 0x0a39, 0x0a53, 0x0abf, 0x0b0d,
+ 0x0adb, 0x0a4d, 0x09fa, 0x0a59, 0x0b03, 0x0b23,
+ 0x0aa2, 0x09dd, 0x08bf, 0x0767, 0x0638, 0x052e,
+ 0x044f, 0x0394, 0x028e, 0x0136, 0x0020, 0xffce,
+ 0xffee, 0xff9c, 0xff2d, 0xff97, 0x003b, 0x0042,
+ 0xffb3, 0xfe49, 0xfc42, 0xfa82, 0xf922, 0xf82d,
+ 0xf811, 0xf882, 0xf8c9, 0xf896, 0xf851, 0xf86d,
+ 0xf881, 0xf847, 0xf7fb, 0xf793, 0xf755, 0xf75b,
+ 0xf6fc, 0xf671, 0xf658, 0xf646, 0xf5ff, 0xf5bc,
+ 0xf5c2, 0xf68d, 0xf78f, 0xf7c3, 0xf779, 0xf711,
+ 0xf6a7, 0xf693, 0xf623, 0xf502, 0xf466, 0xf47a,
+ 0xf488, 0xf495, 0xf458, 0xf3b6, 0xf327, 0xf25f,
+ 0xf166, 0xf0f6, 0xf0d3, 0xf0c4, 0xf0eb, 0xf0bd,
+ 0xf091, 0xf108, 0xf14a, 0xf152, 0xf207, 0xf2de,
+ 0xf370, 0xf423, 0xf477, 0xf410, 0xf337, 0xf1f0,
+ 0xf10c, 0xf17e, 0xf2b5, 0xf3ee, 0xf4ed, 0xf572,
+ 0xf5ba, 0xf60c, 0xf625, 0xf63b, 0xf69a, 0xf6d5,
+ 0xf6a9, 0xf637, 0xf5b7, 0xf588, 0xf59d, 0xf592,
+ 0xf58b, 0xf5cb, 0xf63c, 0xf6c9, 0xf729, 0xf710,
+ 0xf6e2, 0xf6f8, 0xf715, 0xf6f9, 0xf693, 0xf61b,
+ 0xf627, 0xf6b9, 0xf729, 0xf751, 0xf76c, 0xf760,
+ 0xf6fa, 0xf648, 0xf593, 0xf54c, 0xf5af, 0xf66f,
+ 0xf715, 0xf797, 0xf819, 0xf86b, 0xf893, 0xf907,
+ 0xf9fd, 0xfb7a, 0xfd4e, 0xfe93, 0xfec8, 0xfe6a,
+ 0xfdbf, 0xfcec, 0xfc8b, 0xfce7, 0xfddf, 0xff10,
+ 0xffd8, 0x006a, 0x0165, 0x0268, 0x031f, 0x03e6,
+ 0x049d, 0x0521, 0x05ae, 0x0628, 0x068c, 0x0729,
+ 0x07f1, 0x08ba, 0x0986, 0x0a65, 0x0b6e, 0x0c6b,
+ 0x0d32, 0x0de7, 0x0e7a, 0x0ef9, 0x0fac, 0x1029,
+ 0x1014, 0x0fea, 0x0fdc, 0x0fc4, 0x1019, 0x10ff,
+ 0x1188, 0x1121, 0x1065, 0x0fda, 0x0f83, 0x0f75,
+ 0x0f6a, 0x0f23, 0x0f1c, 0x0f3c, 0x0ede, 0x0e4d,
+ 0x0e16, 0x0e46, 0x0ed8, 0x0f7e, 0x0fd8, 0x0fa0,
+ 0x0eb5, 0x0dbb, 0x0d00, 0x0c0e, 0x0b61, 0x0b6a,
+ 0x0b8e, 0x0bca, 0x0c30, 0x0c5b, 0x0cac, 0x0d3e,
+ 0x0d8a, 0x0d92, 0x0d24, 0x0c2b, 0x0b71, 0x0b2e,
+ 0x0b42, 0x0bba, 0x0be4, 0x0b44, 0x0a5f, 0x09b2,
+ 0x098c, 0x09fd, 0x0a8b, 0x0ac4, 0x0a89, 0x0a2d,
+ 0x0a08, 0x099a, 0x0892, 0x07b8, 0x0770, 0x0748,
+ 0x072d, 0x070b, 0x0676, 0x0583, 0x0464, 0x02f8,
+ 0x01a6, 0x00e1, 0x0053, 0x0013, 0x0052, 0x0061,
+ 0x001a, 0xffd2, 0xff7b, 0xffa8, 0x0095, 0x016c,
+ 0x01ec, 0x01c9, 0x0082, 0xff04, 0xfe08, 0xfd59,
+ 0xfd2e, 0xfd39, 0xfd15, 0xfd3b, 0xfd7c, 0xfd9c,
+ 0xfe3c, 0xff1c, 0xff84, 0xff71, 0xff19, 0xfeca,
+ 0xfe84, 0xfe1e, 0xfde3, 0xfdba, 0xfd5e, 0xfd02,
+ 0xfc8f, 0xfc4a, 0xfcce, 0xfd9c, 0xfe1d, 0xfe61,
+ 0xfe54, 0xfe17, 0xfdce, 0xfd5b, 0xfcf3, 0xfc9a,
+ 0xfc21, 0xfbe7, 0xfc21, 0xfc8a, 0xfcc7, 0xfc8e,
+ 0xfc0f, 0xfba9, 0xfb7b, 0xfb78, 0xfb52, 0xfb22,
+ 0xfb7f, 0xfc49, 0xfcf3, 0xfd50, 0xfd4f, 0xfd46,
+ 0xfdde, 0xff15, 0x0047, 0x00ca, 0x0060, 0xff6a,
+ 0xfe82, 0xfe34, 0xfe58, 0xfe61, 0xfe78, 0xfeb8,
+ 0xfeda, 0xff45, 0x0018, 0x00b9, 0x0120, 0x016e,
+ 0x0179, 0x014c, 0x00de, 0x0059, 0x0017, 0x0005,
+ 0x0006, 0xffc9, 0xff3e, 0xff57, 0x001f, 0x00b8,
+ 0x013d, 0x0199, 0x017f, 0x01a2, 0x01f4, 0x01d4,
+ 0x017f, 0x00ec, 0x0047, 0x0027, 0x0005, 0xffaf,
+ 0xffae, 0xff65, 0xfe6b, 0xfd6b, 0xfc7c, 0xfb86,
+ 0xfac7, 0xfa6a, 0xfac4, 0xfb90, 0xfbd2, 0xfb6b,
+ 0xfb0c, 0xfb1a, 0xfb7b, 0xfbf7, 0xfc5c, 0xfc37,
+ 0xfb50, 0xfa40, 0xf965, 0xf896, 0xf7f3, 0xf786,
+ 0xf76b, 0xf7ea, 0xf88d, 0xf8f5, 0xf98d, 0xfa15,
+ 0xf9ff, 0xf985, 0xf90c, 0xf8f0, 0xf94f, 0xf978,
+ 0xf90a, 0xf886, 0xf837, 0xf807, 0xf81e, 0xf89d,
+ 0xf934, 0xf9ba, 0xfa75, 0xfb34, 0xfbaa, 0xfc17,
+ 0xfc79, 0xfc98, 0xfca3, 0xfc83, 0xfc5a, 0xfca7,
+ 0xfcfc, 0xfce3, 0xfcca, 0xfcb8, 0xfc83, 0xfc5b,
+ 0xfc24, 0xfbd3, 0xfbb0, 0xfbd9, 0xfc62, 0xfd02,
+ 0xfd40, 0xfd32, 0xfd18, 0xfd3d, 0xfe08, 0xff21,
+ 0xffc4, 0xff9c, 0xfeb3, 0xfd94, 0xfcd8, 0xfc65,
+ 0xfc00, 0xfba4, 0xfb41, 0xfb1d, 0xfb94, 0xfc7f,
+ 0xfd6e, 0xfe2b, 0xfeb7, 0xfed4, 0xfe77, 0xfe3c,
+ 0xfe46, 0xfe21, 0xfdda, 0xfd93, 0xfd30, 0xfd11,
+ 0xfd82, 0xfe5e, 0xff70, 0x0049, 0x0094, 0x0096,
+ 0x0098, 0x00ad, 0x00de, 0x011b, 0x0174, 0x01e8,
+ 0x0229, 0x022c, 0x0246, 0x029c, 0x030a, 0x0348,
+ 0x0353, 0x0384, 0x03a4, 0x0344, 0x02e4, 0x0324,
+ 0x03d6, 0x04a8, 0x0559, 0x0597, 0x0570, 0x0579,
+ 0x062f, 0x0763, 0x0862, 0x08b4, 0x087f, 0x085b,
+ 0x0896, 0x0884, 0x0790, 0x0647, 0x056a, 0x055f,
+ 0x061d, 0x06e0, 0x076c, 0x083d, 0x08e2, 0x08e4,
+ 0x08cb, 0x08c6, 0x08be, 0x08bd, 0x0883, 0x084b,
+ 0x0840, 0x07f2, 0x07c4, 0x0851, 0x0911, 0x09a8,
+ 0x0a49, 0x0aee, 0x0b57, 0x0b1d, 0x0a47, 0x0974,
+ 0x08fc, 0x08fe, 0x094f, 0x0967, 0x0944, 0x090a,
+ 0x086f, 0x079f, 0x0706, 0x06a5, 0x0645, 0x05b6,
+ 0x0526, 0x04ed, 0x04ff, 0x0552, 0x058a, 0x0510,
+ 0x045a, 0x0436, 0x0498, 0x0528, 0x0559, 0x04b4,
+ 0x03b1, 0x0301, 0x02d7, 0x02e4, 0x027d, 0x01b2,
+ 0x0145, 0x015b, 0x01e1, 0x02bd, 0x035d, 0x0389,
+ 0x0380, 0x034e, 0x031a, 0x02f6, 0x02af, 0x025a,
+ 0x0212, 0x01bc, 0x0171, 0x012f, 0x0104, 0x0182,
+ 0x0288, 0x0347, 0x03c5, 0x044f, 0x04a1, 0x04c0,
+ 0x04c8, 0x0486, 0x0447, 0x0481, 0x0500, 0x056e,
+ 0x0586, 0x051e, 0x0493, 0x0453, 0x0469, 0x048b,
+ 0x043c, 0x037f, 0x02f8, 0x02ee, 0x0326, 0x0399,
+ 0x045f, 0x053b, 0x05c2, 0x05cd, 0x05c0, 0x060a,
+ 0x0660, 0x0618, 0x0583, 0x057e, 0x05d5, 0x05bf,
+ 0x051d, 0x0457, 0x0404, 0x047a, 0x0573, 0x065a,
+ 0x069d, 0x0652, 0x062b, 0x0631, 0x0607, 0x05e3,
+ 0x05bf, 0x057b, 0x054c, 0x051d, 0x0515, 0x0586,
+ 0x0610, 0x06a7, 0x076d, 0x07c7, 0x07d2, 0x081b,
+ 0x0836, 0x07ee, 0x07af, 0x077d, 0x0741, 0x071b,
+ 0x0703, 0x06cd, 0x067b, 0x062f, 0x05a8, 0x04db,
+ 0x045c, 0x0434, 0x03de, 0x0338, 0x026b, 0x0207,
+ 0x0272, 0x030a, 0x0331, 0x02eb, 0x028d, 0x02a4,
+ 0x02ee, 0x02b1, 0x023f, 0x01d0, 0x013a, 0x011e,
+ 0x016b, 0x0108, 0xfff9, 0xff08, 0xfe8d, 0xfecd,
+ 0xffe0, 0x010c, 0x018e, 0x0194, 0x0196, 0x018f,
+ 0x018e, 0x019f, 0x0182, 0x013b, 0x00c9, 0x0031,
+ 0x0002, 0x0062, 0x0123, 0x026b, 0x03d7, 0x04db,
+ 0x055d, 0x0526, 0x049c, 0x0476, 0x0466, 0x0420,
+ 0x03e7, 0x03e8, 0x0454, 0x04e9, 0x0526, 0x0529,
+ 0x051b, 0x0518, 0x053b, 0x0527, 0x04ae, 0x03dd,
+ 0x02b1, 0x020e, 0x0269, 0x02dd, 0x0320, 0x035f,
+ 0x037a, 0x03e0, 0x0497, 0x04da, 0x04a3, 0x0449,
+ 0x03ee, 0x03c7, 0x0382, 0x02ad, 0x0188, 0x009f,
+ 0x0081, 0x0147, 0x0249, 0x02ee, 0x030b, 0x02df,
+ 0x02ee, 0x0314, 0x02e0, 0x029d, 0x0289, 0x024b,
+ 0x01bb, 0x0107, 0x0076, 0x007f, 0x0138, 0x0217,
+ 0x02b8, 0x0314, 0x0316, 0x02f2, 0x0314, 0x033a,
+ 0x02f1, 0x027e, 0x0219, 0x0192, 0x0109, 0x00cc,
+ 0x00dd, 0x011b, 0x0148, 0x013b, 0x0111, 0x00ab,
+ 0xffdd, 0xff0d, 0xfe99, 0xfe63, 0xfe82, 0xfef6,
+ 0xff45, 0xff72, 0xffec, 0x009c, 0x013c, 0x01a3,
+ 0x01a1, 0x015e, 0x013f, 0x0151, 0x0149, 0x00d8,
+ 0xfffc, 0xff37, 0xff26, 0xffe9, 0x0127, 0x023e,
+ 0x02a6, 0x0293, 0x027a, 0x026a, 0x0287, 0x030d,
+ 0x038c, 0x03b7, 0x03d8, 0x03af, 0x031a, 0x02fe,
+ 0x03ae, 0x0486, 0x0539, 0x058f, 0x055e, 0x0501,
+ 0x04b1, 0x0481, 0x04be, 0x0536, 0x0542, 0x04e7,
+ 0x04a1, 0x0477, 0x043b, 0x0420, 0x044a, 0x0477,
+ 0x046a, 0x03f7, 0x030a, 0x01f0, 0x0106, 0x00b3,
+ 0x0134, 0x01ca, 0x01bb, 0x0178, 0x0178, 0x01b8,
+ 0x0232, 0x027a, 0x0247, 0x01f6, 0x01b1, 0x013e,
+ 0x0076, 0xff5d, 0xfe65, 0xfe14, 0xfe72, 0xff60,
+ 0x0088, 0x0152, 0x0199, 0x01bf, 0x01e1, 0x01b6,
+ 0x014c, 0x00f6, 0x009e, 0x0014, 0xff63, 0xfe8f,
+ 0xfe09, 0xfe52, 0xff01, 0xffa6, 0x0047, 0x0095,
+ 0x0067, 0xfff9, 0xff6f, 0xff11, 0xfef1, 0xfea8,
+ 0xfe5a, 0xfe59, 0xfe69, 0xfe70, 0xfe6e, 0xfe2b,
+ 0xfdd1, 0xfda3, 0xfd46, 0xfc68, 0xfb74, 0xfac8,
+ 0xfa42, 0xfa20, 0xfabb, 0xfb7c, 0xfbe5, 0xfc6c,
+ 0xfd3d, 0xfe07, 0xfeb6, 0xff25, 0xff3c, 0xff34,
+ 0xff39, 0xff33, 0xfeec, 0xfe60, 0xfdff, 0xfe45,
+ 0xff60, 0x00fa, 0x0244, 0x02ed, 0x0347, 0x035b,
+ 0x0321, 0x02e3, 0x02c9, 0x02da, 0x02df, 0x0282,
+ 0x01e2, 0x0149, 0x0118, 0x01d0, 0x02fb, 0x03b5,
+ 0x0420, 0x0463, 0x041a, 0x0387, 0x0324, 0x02f0,
+ 0x02ff, 0x035b, 0x03c1, 0x03f7, 0x0409, 0x0435,
+ 0x047c, 0x0490, 0x0458, 0x03e1, 0x0318, 0x0212,
+ 0x011d, 0x006c, 0x0007, 0xfff5, 0x0018, 0x002f,
+ 0x0021, 0x001d, 0x0050, 0x00dc, 0x019b, 0x01f2,
+ 0x0184, 0x008e, 0xff87, 0xfebc, 0xfdff, 0xfd19,
+ 0xfc8a, 0xfcd6, 0xfdfa, 0xff91, 0x00c1, 0x0128,
+ 0x012a, 0x00c8, 0x000b, 0xff77, 0xfefc, 0xfe87,
+ 0xfe5d, 0xfe31, 0xfdce, 0xfd87, 0xfd53, 0xfd3c,
+ 0xfd84, 0xfe07, 0xfe7a, 0xfea1, 0xfe79, 0xfe56,
+ 0xfe5c, 0xfe7a, 0xfead, 0xfeb7, 0xfea1, 0xfea8,
+ 0xfe9e, 0xfe85, 0xfeb2, 0xff23, 0xff96, 0xff81,
+ 0xfe6b, 0xfcdc, 0xfb97, 0xfaba, 0xfa6d, 0xfad6,
+ 0xfb7e, 0xfbd2, 0xfbbd, 0xfb95, 0xfbe0, 0xfce0,
+ 0xfe1d, 0xfef4, 0xff36, 0xfec7, 0xfdcc, 0xfce6,
+ 0xfc3b, 0xfba7, 0xfb94, 0xfc2b, 0xfd18, 0xfe18,
+ 0xfeb4, 0xfee6, 0xff52, 0xffea, 0x0059, 0x00ac,
+ 0x00ba, 0x00af, 0x00ed, 0x012b, 0x0169, 0x0212,
+ 0x02f3, 0x03bf, 0x0473, 0x0524, 0x0612, 0x0711,
+ 0x079c, 0x07c4, 0x07ca, 0x07b3, 0x0796, 0x0777,
+ 0x0764, 0x078c, 0x078b, 0x0701, 0x0678, 0x0658,
+ 0x062b, 0x0578, 0x041e, 0x0258, 0x00c2, 0xffa6,
+ 0xff15, 0xff5d, 0x0017, 0x0067, 0x006a, 0x0081,
+ 0x008a, 0x00b7, 0x0122, 0x0162, 0x012b, 0x006e,
+ 0xff58, 0xfe33, 0xfd14, 0xfc4b, 0xfc48, 0xfcf1,
+ 0xfdf1, 0xfed1, 0xff01, 0xfe91, 0xfdf8, 0xfd7f,
+ 0xfd22, 0xfc8d, 0xfbb3, 0xfacf, 0xf9d8, 0xf91a,
+ 0xf8f7, 0xf91c, 0xf95a, 0xf9c0, 0xfa0a, 0xfa3a,
+ 0xfa78, 0xfa9b, 0xfa9d, 0xfa79, 0xfa31, 0xfa08,
+ 0xf9fb, 0xf9dd, 0xf9a9, 0xf94f, 0xf902, 0xf8f8,
+ 0xf914, 0xf932, 0xf8ef, 0xf7f6, 0xf6b5, 0xf543,
+ 0xf34f, 0xf1c2, 0xf198, 0xf23e, 0xf2c4, 0xf2c1,
+ 0xf225, 0xf160, 0xf110, 0xf16b, 0xf244, 0xf2fb,
+ 0xf2f5, 0xf24f, 0xf15e, 0xf041, 0xef5e, 0xef19,
+ 0xef84, 0xf0be, 0xf275, 0xf3ba, 0xf435, 0xf455,
+ 0xf480, 0xf4c7, 0xf4f6, 0xf4d0, 0xf447, 0xf393,
+ 0xf340, 0xf392, 0xf422, 0xf4b2, 0xf556, 0xf5d6,
+ 0xf608, 0xf647, 0xf6d6, 0xf76f, 0xf7e2, 0xf83e,
+ 0xf82c, 0xf782, 0xf709, 0xf712, 0xf702, 0xf6c8,
+ 0xf69b, 0xf65e, 0xf666, 0xf6de, 0xf742, 0xf767,
+ 0xf749, 0xf681, 0xf535, 0xf453, 0xf46b, 0xf542,
+ 0xf656, 0xf734, 0xf7a5, 0xf7da, 0xf81f, 0xf8a7,
+ 0xf97c, 0xfa3f, 0xfa8b, 0xfa4c, 0xf963, 0xf825,
+ 0xf76f, 0xf79e, 0xf8d1, 0xfb07, 0xfd62, 0xff07,
+ 0xffd0, 0xfff2, 0x0033, 0x00eb, 0x0185, 0x01c3,
+ 0x018d, 0x00ed, 0x00b0, 0x0114, 0x01b9, 0x02bc,
+ 0x03f3, 0x04f7, 0x05b3, 0x05ff, 0x0645, 0x0704,
+ 0x07c7, 0x084e, 0x089c, 0x0875, 0x0828, 0x07df,
+ 0x0785, 0x07be, 0x0890, 0x0948, 0x09e7, 0x0a4a,
+ 0x0a2d, 0x0a03, 0x0991, 0x0834, 0x06a5, 0x05ef,
+ 0x062b, 0x070d, 0x083f, 0x0965, 0x0a48, 0x0acb,
+ 0x0b38, 0x0bff, 0x0cd3, 0x0d29, 0x0d2d, 0x0cf6,
+ 0x0c4a, 0x0b7e, 0x0ae9, 0x0a94, 0x0adb, 0x0bc7,
+ 0x0cdf, 0x0dd6, 0x0e62, 0x0e8d, 0x0ea2, 0x0e64,
+ 0x0ddc, 0x0d4b, 0x0c4b, 0x0b15, 0x0a81, 0x0a82,
+ 0x0ac0, 0x0b02, 0x0b26, 0x0b67, 0x0b94, 0x0b70,
+ 0x0b7b, 0x0b99, 0x0b51, 0x0ae6, 0x0a7d, 0x0a2d,
+ 0x0a46, 0x0a8b, 0x0ac5, 0x0b11, 0x0b44, 0x0b3b,
+ 0x0acf, 0x0a2d, 0x09ff, 0x09ff, 0x0953, 0x07f3,
+ 0x0643, 0x0503, 0x04de, 0x0553, 0x05cd, 0x0649,
+ 0x067d, 0x0679, 0x06b5, 0x0718, 0x0771, 0x07aa,
+ 0x0770, 0x0691, 0x0524, 0x036c, 0x01fd, 0x0169,
+ 0x01d4, 0x02cb, 0x038e, 0x03d3, 0x03ed, 0x0430,
+ 0x047e, 0x0487, 0x041f, 0x033e, 0x021e, 0x012a,
+ 0x0096, 0x0073, 0x00c4, 0x015d, 0x0202, 0x025d,
+ 0x022d, 0x01da, 0x01ac, 0x0141, 0x0088, 0xffd6,
+ 0xff4e, 0xfeef, 0xfe8a, 0xfe3c, 0xfe91, 0xff54,
+ 0xffa4, 0xff3e, 0xfe75, 0xfdb1, 0xfd59, 0xfd65,
+ 0xfd1a, 0xfbf8, 0xfa8b, 0xf9b1, 0xf9a0, 0xfa39,
+ 0xfb44, 0xfc34, 0xfc9d, 0xfcc1, 0xfd4b, 0xfe55,
+ 0xff4b, 0xffec, 0x0030, 0xffb9, 0xfe91, 0xfd44,
+ 0xfc34, 0xfbf2, 0xfcb5, 0xfdd9, 0xfedc, 0xff77,
+ 0xff80, 0xff6d, 0xff8a, 0xff85, 0xff26, 0xfe79,
+ 0xfdbd, 0xfd32, 0xfcde, 0xfcff, 0xfdc9, 0xfef8,
+ 0x0027, 0x00cb, 0x00b3, 0x00aa, 0x010f, 0x015d,
+ 0x0164, 0x012f, 0x00bd, 0x003d, 0xff98, 0xfef4,
+ 0xff39, 0x0087, 0x01c8, 0x0234, 0x01da, 0x013e,
+ 0x0114, 0x0146, 0x0100, 0x0037, 0xff6b, 0xfe8c,
+ 0xfdbe, 0xfd5f, 0xfd39, 0xfd40, 0xfd8d, 0xfdd2,
+ 0xfe32, 0xfee2, 0xff68, 0xff72, 0xfef1, 0xfdd5,
+ 0xfc64, 0xfac8, 0xf97a, 0xf955, 0xfa18, 0xfb17,
+ 0xfc25, 0xfcb8, 0xfcbe, 0xfcda, 0xfcc5, 0xfc1d,
+ 0xfb41, 0xfa4f, 0xf962, 0xf8ae, 0xf81f, 0xf7f4,
+ 0xf852, 0xf90a, 0xfa22, 0xfb30, 0xfba8, 0xfbc0,
+ 0xfbb0, 0xfba5, 0xfbfe, 0xfc78, 0xfcbb, 0xfcb4,
+ 0xfc2e, 0xfbbc, 0xfc21, 0xfcdf, 0xfd62, 0xfd8c,
+ 0xfd09, 0xfc45, 0xfc1e, 0xfc48, 0xfc18, 0xfb7c,
+ 0xfa9e, 0xf9fe, 0xf9f0, 0xfa00, 0xf9e9, 0xf9cf,
+ 0xf9b0, 0xf9c9, 0xfa4c, 0xfade, 0xfb45, 0xfb66,
+ 0xfb11, 0xfa82, 0xf9c0, 0xf89e, 0xf7d0, 0xf7e0,
+ 0xf871, 0xf976, 0xfabd, 0xfb9a, 0xfc3d, 0xfced,
+ 0xfd26, 0xfcd9, 0xfc76, 0xfc36, 0xfc1c, 0xfbe0,
+ 0xfb9b, 0xfbdc, 0xfc7b, 0xfd28, 0xfe06, 0xfed4,
+ 0xff51, 0xff8b, 0xff58, 0xff02, 0xff1f, 0xff7d,
+ 0xffc4, 0xffc9, 0xff8b, 0xffa1, 0x0037, 0x00b9,
+ 0x0118, 0x015b, 0x013f, 0x0120, 0x0131, 0x011d,
+ 0x00e4, 0x0076, 0xffd0, 0xff8a, 0xffd1, 0x0055,
+ 0x0105, 0x017d, 0x0193, 0x01fb, 0x02e4, 0x03d4,
+ 0x0498, 0x04ee, 0x0490, 0x03af, 0x0281, 0x0147,
+ 0x00a4, 0x0118, 0x0267, 0x03cc, 0x049e, 0x04ed,
+ 0x051f, 0x052f, 0x04fa, 0x04ba, 0x0496, 0x0499,
+ 0x04c4, 0x04c5, 0x0485, 0x0482, 0x04ea, 0x0592,
+ 0x069d, 0x07c7, 0x083d, 0x07db, 0x0749, 0x0711,
+ 0x0751, 0x07d8, 0x0842, 0x0854, 0x083a, 0x0859,
+ 0x08c9, 0x094b, 0x0990, 0x0970, 0x0941, 0x0958,
+ 0x0978, 0x095b, 0x08db, 0x07ce, 0x06af, 0x0616,
+ 0x05c8, 0x0590, 0x058f, 0x0597, 0x05a5, 0x0611,
+ 0x0700, 0x083b, 0x0913, 0x090a, 0x0897, 0x0819,
+ 0x0730, 0x05d7, 0x04c8, 0x04ad, 0x056d, 0x0662,
+ 0x0736, 0x07f1, 0x086e, 0x089d, 0x087d, 0x07f9,
+ 0x0752, 0x06c6, 0x0628, 0x05ac, 0x05b0, 0x05f5,
+ 0x062c, 0x0673, 0x06f2, 0x079b, 0x07eb, 0x0767,
+ 0x069c, 0x063a, 0x05ff, 0x059d, 0x053f, 0x0502,
+ 0x04f5, 0x0507, 0x050f, 0x0532, 0x055d, 0x0531,
+ 0x04c2, 0x0443, 0x03a6, 0x0310, 0x0270, 0x0187,
+ 0x00ba, 0x0054, 0x0000, 0xffd1, 0xfff0, 0xffea,
+ 0xff8b, 0xff5e, 0xffcf, 0x009d, 0x0125, 0x0122,
+ 0x00cb, 0x0046, 0xff96, 0xfee7, 0xfe9e, 0xff2b,
+ 0x005d, 0x0172, 0x020d, 0x0253, 0x0270, 0x0281,
+ 0x026b, 0x021b, 0x01d8, 0x01b5, 0x0190, 0x01a2,
+ 0x0201, 0x025c, 0x029d, 0x0303, 0x03c0, 0x0482,
+ 0x047f, 0x03cd, 0x0368, 0x0389, 0x03c2, 0x03f7,
+ 0x0413, 0x0403, 0x0415, 0x047d, 0x0518, 0x0580,
+ 0x0552, 0x04d5, 0x0483, 0x0461, 0x0470, 0x0492,
+ 0x045b, 0x03e6, 0x039c, 0x0369, 0x0346, 0x035d,
+ 0x039a, 0x03dc, 0x0413, 0x046e, 0x054a, 0x0632,
+ 0x0648, 0x05c3, 0x054c, 0x04c5, 0x03ec, 0x0300,
+ 0x0259, 0x022c, 0x0286, 0x0327, 0x0395, 0x03b9,
+ 0x03f3, 0x046a, 0x04e8, 0x0543, 0x0524, 0x046f,
+ 0x03e0, 0x03ee, 0x0410, 0x0402, 0x0427, 0x04a3,
+ 0x0539, 0x055a, 0x0487, 0x033d, 0x0263, 0x01f9,
+ 0x01bf, 0x01e4, 0x0266, 0x0306, 0x0373, 0x0375,
+ 0x036c, 0x037d, 0x032c, 0x02ae, 0x026d, 0x01ff,
+ 0x0142, 0x0082, 0xffdd, 0xffb7, 0xfffc, 0xffe9,
+ 0xff7f, 0xff05, 0xfe69, 0xfe02, 0xfe17, 0xfeb8,
+ 0x000c, 0x0161, 0x01b6, 0x013d, 0x007f, 0xff93,
+ 0xfeaf, 0xfe2a, 0xfe36, 0xfec3, 0xff9e, 0x0091,
+ 0x014c, 0x01b7, 0x021f, 0x029c, 0x0304, 0x032f,
+ 0x02d5, 0x0213, 0x0195, 0x01c3, 0x0254, 0x02cb,
+ 0x033f, 0x042e, 0x0554, 0x05bc, 0x052c, 0x046f,
+ 0x0417, 0x03cf, 0x0372, 0x0367, 0x039f, 0x0415,
+ 0x0509, 0x060d, 0x0692, 0x06a5, 0x0662, 0x061b,
+ 0x0603, 0x05ab, 0x04ed, 0x0405, 0x033a, 0x0303,
+ 0x0336, 0x0340, 0x0314, 0x0283, 0x018f, 0x010d,
+ 0x0160, 0x0284, 0x0464, 0x05ed, 0x063a, 0x05bd,
+ 0x04f9, 0x0415, 0x036b, 0x0338, 0x0385, 0x0442,
+ 0x051e, 0x059f, 0x0596, 0x0561, 0x0557, 0x0585,
+ 0x05e0, 0x05f9, 0x0554, 0x0452, 0x03ae, 0x0395,
+ 0x03e1, 0x0472, 0x0514, 0x0568, 0x0526, 0x044a,
+ 0x02f4, 0x01a2, 0x00d7, 0x006c, 0x002e, 0x0045,
+ 0x008b, 0x00f5, 0x01c7, 0x02cb, 0x034a, 0x02d2,
+ 0x01ef, 0x016e, 0x0110, 0x006c, 0xffc4, 0xff19,
+ 0xfe7b, 0xfe4b, 0xfe68, 0xfe9b, 0xfee0, 0xfee8,
+ 0xfe8a, 0xfde8, 0xfd6c, 0xfdc6, 0xfec4, 0xff8c,
+ 0xfff6, 0xfffc, 0xff73, 0xfebd, 0xfe2e, 0xfdd1,
+ 0xfded, 0xfea1, 0xff77, 0xffe3, 0xffd0, 0xffa0,
+ 0xff9a, 0xffb9, 0xffcb, 0xff8d, 0xff0a, 0xfec2,
+ 0xff0e, 0xff90, 0xffd0, 0x000a, 0x0085, 0x00eb,
+ 0x011c, 0x0102, 0x0054, 0xff71, 0xfeca, 0xfe37,
+ 0xfdd4, 0xfdc0, 0xfdb3, 0xfde3, 0xfead, 0xff9b,
+ 0xfffb, 0xffbd, 0xff6e, 0xff77, 0xff94, 0xff43,
+ 0xfe5c, 0xfd33, 0xfc52, 0xfc18, 0xfc8e, 0xfd4d,
+ 0xfdc9, 0xfdff, 0xfe07, 0xfde3, 0xfe20, 0xff1d,
+ 0x004a, 0x011c, 0x0159, 0x00c7, 0xff96, 0xfe5e,
+ 0xfd86, 0xfd26, 0xfd5a, 0xfe1c, 0xfee9, 0xff5e,
+ 0xffaf, 0xffff, 0x0029, 0x0020, 0xffdf, 0xff5e,
+ 0xfea5, 0xfded, 0xfd77, 0xfd35, 0xfd6a, 0xfe62,
+ 0xff76, 0x001d, 0x006e, 0x001f, 0xff76, 0xff30,
+ 0xff21, 0xfeff, 0xfed4, 0xfe81, 0xfe74, 0xff2f,
+ 0x006e, 0x01a0, 0x0218, 0x01dd, 0x01b7, 0x0195,
+ 0x0132, 0x00e8, 0x0089, 0xffed, 0xff7c, 0xff3a,
+ 0xff17, 0xff1e, 0xfefb, 0xfeb4, 0xfe84, 0xfe61,
+ 0xfe9d, 0xff76, 0x0053, 0x00bd, 0x00db, 0x00b6,
+ 0x003c, 0xffbc, 0xff66, 0xff14, 0xff04, 0xff71,
+ 0xffca, 0xffa5, 0xff54, 0xff3c, 0xff7d, 0xffe6,
+ 0x0037, 0x0043, 0xffd9, 0xff41, 0xff00, 0xff26,
+ 0xffa9, 0x002a, 0x000d, 0xff9c, 0xff4e, 0xfeeb,
+ 0xfe86, 0xfe5e, 0xfe49, 0xfe21, 0xfdc6, 0xfd5f,
+ 0xfd63, 0xfdf1, 0xfef4, 0xfff8, 0x003f, 0x0010,
+ 0xffe7, 0xff54, 0xfe60, 0xfd7f, 0xfc90, 0xfbb3,
+ 0xfb4c, 0xfb4e, 0xfb91, 0xfbd5, 0xfbcc, 0xfb90,
+ 0xfb54, 0xfb2f, 0xfb3f, 0xfb6f, 0xfbae, 0xfc1d,
+ 0xfca6, 0xfcf2, 0xfce4, 0xfca8, 0xfc6e, 0xfc9f,
+ 0xfd89, 0xfe98, 0xff25, 0xff5e, 0xffab, 0x0027,
+ 0x00c3, 0x0132, 0x013b, 0x00df, 0x0045, 0xffb6,
+ 0xff64, 0xff75, 0xffea, 0x0051, 0x00a1, 0x0120,
+ 0x015d, 0x0123, 0x00ed, 0x00b5, 0x004b, 0xffc9,
+ 0xff14, 0xfe82, 0xfead, 0xffa0, 0x00df, 0x01a0,
+ 0x01ae, 0x01aa, 0x0183, 0x00e0, 0x005f, 0x0029,
+ 0xffc0, 0xff38, 0xfed0, 0xfeab, 0xfedf, 0xff15,
+ 0xff2b, 0xff2e, 0xfed1, 0xfe60, 0xfe72, 0xfebe,
+ 0xfef8, 0xff4d, 0xff84, 0xff59, 0xfed7, 0xfe05,
+ 0xfd10, 0xfc67, 0xfc54, 0xfcc9, 0xfd6b, 0xfdf5,
+ 0xfe53, 0xfe49, 0xfdf0, 0xfdd0, 0xfde5, 0xfddb,
+ 0xfdc8, 0xfd8c, 0xfd15, 0xfd09, 0xfd8e, 0xfe01,
+ 0xfe5e, 0xfed5, 0xfef5, 0xfe9a, 0xfe2d, 0xfde7,
+ 0xfda1, 0xfd10, 0xfc41, 0xfbbe, 0xfbe1, 0xfc96,
+ 0xfd8d, 0xfe4f, 0xfe9f, 0xfe6c, 0xfd8e, 0xfc71,
+ 0xfbd2, 0xfbae, 0xfb95, 0xfb49, 0xfabf, 0xfa25,
+ 0xf9a5, 0xf94b, 0xf93a, 0xf93a, 0xf8fc, 0xf8d8,
+ 0xf8ef, 0xf8ed, 0xf92e, 0xfa31, 0xfb71, 0xfc3c,
+ 0xfc82, 0xfc4f, 0xfbbd, 0xfb65, 0xfbcf, 0xfcad,
+ 0xfd7d, 0xfe32, 0xfebd, 0xff02, 0xff2f, 0xff60,
+ 0xff84, 0xff8e, 0xff4d, 0xfec6, 0xfe67, 0xfe69,
+ 0xfe87, 0xfe95, 0xfedd, 0xff6d, 0xffb5, 0xff80,
+ 0xff24, 0xfe83, 0xfd7a, 0xfc7d, 0xfbc5, 0xfb49,
+ 0xfb3b, 0xfb89, 0xfbe7, 0xfc68, 0xfcf8, 0xfd03,
+ 0xfc5b, 0xfb72, 0xfa9d, 0xf9f4, 0xf97d, 0xf8fe,
+ 0xf861, 0xf7e2, 0xf770, 0xf6fe, 0xf6d2, 0xf6cb,
+ 0xf6cf, 0xf70e, 0xf724, 0xf6c1, 0xf68c, 0xf6db,
+ 0xf760, 0xf7fe, 0xf878, 0xf85c, 0xf7c1, 0xf741,
+ 0xf74e, 0xf7cb, 0xf878, 0xf938, 0xf9c9, 0xfa02,
+ 0xfa04, 0xf9c8, 0xf957, 0xf8e4, 0xf86d, 0xf809,
+ 0xf7ff, 0xf825, 0xf81c, 0xf7f9, 0xf806, 0xf857,
+ 0xf8b6, 0xf8f1, 0xf8e6, 0xf872, 0xf7d8, 0xf772,
+ 0xf71f, 0xf6f4, 0xf745, 0xf7e8, 0xf8d9, 0xfa3b,
+ 0xfb77, 0xfbfe, 0xfbfd, 0xfbc5, 0xfba3, 0xfbc9,
+ 0xfc1c, 0xfc7c, 0xfccc, 0xfcd5, 0xfc8d, 0xfc31,
+ 0xfc35, 0xfccd, 0xfdad, 0xfe93, 0xff39, 0xff7f,
+ 0x0018, 0x015a, 0x026f, 0x02f4, 0x0312, 0x02a6,
+ 0x0215, 0x01fc, 0x0237, 0x028a, 0x02fc, 0x0381,
+ 0x0416, 0x0494, 0x04d1, 0x04db, 0x04b2, 0x047f,
+ 0x0465, 0x043a, 0x0419, 0x0427, 0x03fd, 0x03aa,
+ 0x03c0, 0x0442, 0x04ef, 0x057f, 0x057d, 0x0500,
+ 0x049b, 0x0468, 0x0459, 0x0483, 0x04bc, 0x04ee,
+ 0x057b, 0x068c, 0x0795, 0x07d9, 0x0739, 0x0656,
+ 0x05dd, 0x05ed, 0x0646, 0x068b, 0x065a, 0x05c1,
+ 0x0529, 0x04da, 0x04f6, 0x058c, 0x066e, 0x072b,
+ 0x0758, 0x072c, 0x074d, 0x07d4, 0x0871, 0x08fa,
+ 0x0910, 0x0883, 0x07be, 0x071e, 0x06d4, 0x0717,
+ 0x07ab, 0x082a, 0x0880, 0x08af, 0x089b, 0x0843,
+ 0x07db, 0x0785, 0x073a, 0x0738, 0x07af, 0x080f,
+ 0x07f0, 0x07b9, 0x07c7, 0x0813, 0x0879, 0x08bb,
+ 0x08b5, 0x088a, 0x084b, 0x07cd, 0x070f, 0x0673,
+ 0x064d, 0x068d, 0x071d, 0x07e0, 0x0867, 0x0857,
+ 0x07cd, 0x0725, 0x06a2, 0x063f, 0x05da, 0x0587,
+ 0x054a, 0x04eb, 0x0441, 0x036b, 0x02b1, 0x0266,
+ 0x0297, 0x02bc, 0x0258, 0x01c0, 0x018b, 0x01d2,
+ 0x026e, 0x030c, 0x0328, 0x02a2, 0x01df, 0x0148,
+ 0x011f, 0x017a, 0x0235, 0x02fa, 0x0370, 0x0372,
+ 0x031b, 0x0296, 0x01fd, 0x015a, 0x00c4, 0x0057,
+ 0x0000, 0xffa1, 0xff68, 0xffa2, 0x0075, 0x01b0,
+ 0x02c3, 0x033a, 0x0313, 0x028a, 0x01d6, 0x0133,
+ 0x00e2, 0x0101, 0x016c, 0x01db, 0x024a, 0x02e0,
+ 0x0379, 0x03ca, 0x03ab, 0x0333, 0x02d7, 0x02d2,
+ 0x02c1, 0x028a, 0x0244, 0x0192, 0x0098, 0xfff1,
+ 0xff88, 0xff4d, 0xff5e, 0xff54, 0xff2f, 0xff5b,
+ 0xffad, 0x0010, 0x009e, 0x00de, 0x0079, 0xffad,
+ 0xfed3, 0xfe5a, 0xfe9a, 0xff68, 0x0032, 0x0085,
+ 0x0080, 0x0080, 0x009c, 0x00af, 0x0084, 0x0016,
+ 0xffb4, 0xff6e, 0xff1c, 0xfec6, 0xfe9d, 0xfeed,
+ 0xffbf, 0x0094, 0x00f6, 0x00eb, 0x00db, 0x0101,
+ 0x0127, 0x0125, 0x00fd, 0x00a4, 0x005b, 0x0070,
+ 0x00e9, 0x01b7, 0x0273, 0x02c0, 0x02b9, 0x0250,
+ 0x01b1, 0x0157, 0x010b, 0x00b0, 0x0091, 0x003f,
+ 0xff9b, 0xff15, 0xfea6, 0xfe57, 0xfe18, 0xfd92,
+ 0xfd56, 0xfdaf, 0xfdfb, 0xfe53, 0xfee1, 0xff13,
+ 0xfec5, 0xfdf8, 0xfcc2, 0xfbf0, 0xfc13, 0xfd12,
+ 0xfe63, 0xff4b, 0xffbc, 0xffed, 0xffa5, 0xfef4,
+ 0xfe0f, 0xfd02, 0xfc4b, 0xfbf9, 0xfb49, 0xfa45,
+ 0xf9b8, 0xf9f0, 0xface, 0xfbf5, 0xfcc8, 0xfcf3,
+ 0xfca2, 0xfc17, 0xfbae, 0xfbc7, 0xfc2b, 0xfc58,
+ 0xfc54, 0xfc50, 0xfc68, 0xfcc9, 0xfd4c, 0xfd8e,
+ 0xfd76, 0xfd23, 0xfce8, 0xfcdf, 0xfccb, 0xfcd0,
+ 0xfd01, 0xfccd, 0xfc41, 0xfbf2, 0xfbdb, 0xfbcf,
+ 0xfbb9, 0xfb84, 0xfb67, 0xfb7b, 0xfbbe, 0xfc61,
+ 0xfd37, 0xfdd6, 0xfdf8, 0xfd59, 0xfc52, 0xfbcd,
+ 0xfc1b, 0xfce2, 0xfdae, 0xfe33, 0xfea7, 0xff38,
+ 0xff95, 0xff93, 0xff50, 0xff21, 0xff6c, 0xffce,
+ 0xff80, 0xfeab, 0xfe19, 0xfe54, 0xff80, 0x010e,
+ 0x0229, 0x029e, 0x0289, 0x021a, 0x01e6, 0x022e,
+ 0x0282, 0x02a7, 0x029f, 0x028e, 0x02e3, 0x03af,
+ 0x0498, 0x057e, 0x0626, 0x0643, 0x0605, 0x05b6,
+ 0x057e, 0x0592, 0x05e5, 0x0632, 0x064f, 0x062b,
+ 0x05d3, 0x054b, 0x04a3, 0x043c, 0x0436, 0x0460,
+ 0x04c8, 0x054f, 0x0598, 0x05a7, 0x0583, 0x0518,
+ 0x04bb, 0x04c2, 0x0511, 0x0559, 0x0589, 0x05ed,
+ 0x0686, 0x06ca, 0x066b, 0x057c, 0x0441, 0x0364,
+ 0x0351, 0x037f, 0x032f, 0x0247, 0x0144, 0x00cc,
+ 0x012c, 0x0227, 0x032e, 0x03af, 0x0366, 0x029f,
+ 0x020e, 0x020e, 0x022a, 0x01e6, 0x0165, 0x010b,
+ 0x010b, 0x015a, 0x01c3, 0x022f, 0x0283, 0x0285,
+ 0x023d, 0x01ed, 0x019a, 0x0151, 0x0163, 0x01e8,
+ 0x0276, 0x02a3, 0x0252, 0x01a1, 0x00f9, 0x00cb,
+ 0x0101, 0x0155, 0x01f4, 0x02e0, 0x0393, 0x03c7,
+ 0x0393, 0x032b, 0x0325, 0x03d2, 0x0476, 0x0475,
+ 0x0445, 0x04a0, 0x05ab, 0x06ed, 0x07a1, 0x077d,
+ 0x06ea, 0x0679, 0x0653, 0x062b, 0x05c9, 0x055e,
+ 0x052c, 0x0556, 0x05cc, 0x064c, 0x06c3, 0x0721,
+ 0x0736, 0x072a, 0x073a, 0x0729, 0x06c3, 0x062e,
+ 0x05c8, 0x05e5, 0x0645, 0x0686, 0x06c1, 0x06eb,
+ 0x06da, 0x06a1, 0x062c, 0x0597, 0x053e, 0x0514,
+ 0x051f, 0x0599, 0x0619, 0x0601, 0x0527, 0x03db,
+ 0x02c7, 0x0225, 0x01be, 0x01b2, 0x01f9, 0x0234,
+ 0x025f, 0x026c, 0x0227, 0x01c7, 0x01ab, 0x01e5,
+ 0x0217, 0x01ee, 0x01e8, 0x027e, 0x033b, 0x0397,
+ 0x0355, 0x0282, 0x01d3, 0x01bb, 0x01c0, 0x0180,
+ 0x00ea, 0x0033, 0xffea, 0x0018, 0x005a, 0x00c2,
+ 0x0144, 0x0190, 0x01dc, 0x024f, 0x0298, 0x0291,
+ 0x0233, 0x01a7, 0x015f, 0x016e, 0x01a5, 0x01fc,
+ 0x024a, 0x0273, 0x029e, 0x02c1, 0x02b4, 0x027e,
+ 0x022f, 0x01f4, 0x021e, 0x02be, 0x0362, 0x0370,
+ 0x02cd, 0x0204, 0x019c, 0x0199, 0x01b2, 0x01dd,
+ 0x024e, 0x02d8, 0x0315, 0x02f7, 0x029e, 0x0236,
+ 0x0221, 0x026f, 0x02ba, 0x02d9, 0x031d, 0x03d1,
+ 0x04df, 0x05c3, 0x05fc, 0x05a8, 0x056b, 0x0576,
+ 0x0569, 0x0508, 0x0458, 0x039b, 0x0359, 0x03a4,
+ 0x0417, 0x0470, 0x0470, 0x044e, 0x04b0, 0x054f,
+ 0x0573, 0x052b, 0x04a8, 0x0414, 0x03b4, 0x034b,
+ 0x02c2, 0x0283, 0x0297, 0x02e1, 0x034b, 0x0359,
+ 0x02e3, 0x0254, 0x01df, 0x01a2, 0x01e0, 0x0292,
+ 0x0323, 0x02e5, 0x01d0, 0x0078, 0xff60, 0xfec4,
+ 0xfea6, 0xfee0, 0xff5e, 0xffdc, 0x0006, 0xfff1,
+ 0xffc4, 0xff80, 0xff21, 0xfeb3, 0xfe6d, 0xfe77,
+ 0xfed2, 0xff82, 0x0042, 0x007f, 0x002c, 0xffc7,
+ 0xff91, 0xff6e, 0xff37, 0xfede, 0xfe54, 0xfdac,
+ 0xfd33, 0xfd29, 0xfd75, 0xfdb5, 0xfdc3, 0xfe0c,
+ 0xfec1, 0xff7b, 0xfff1, 0xfff7, 0xff98, 0xff4a,
+ 0xff12, 0xfebc, 0xfea9, 0xfeee, 0xff6d, 0x003e,
+ 0x00e0, 0x00e8, 0x00ba, 0x0079, 0x004c, 0x00b2,
+ 0x0197, 0x02a5, 0x037e, 0x0391, 0x02e4, 0x01e9,
+ 0x00e0, 0x002d, 0x0007, 0x005c, 0x0119, 0x01d0,
+ 0x0226, 0x023a, 0x023b, 0x026a, 0x02dc, 0x032f,
+ 0x0353, 0x036d, 0x0381, 0x03df, 0x0499, 0x0520,
+ 0x052b, 0x04d7, 0x045a, 0x0405, 0x03e7, 0x03c3,
+ 0x0374, 0x02f0, 0x0247, 0x01ce, 0x01ac, 0x0197,
+ 0x019a, 0x0229, 0x031c, 0x03c2, 0x03ca, 0x034a,
+ 0x02ab, 0x026f, 0x026b, 0x024e, 0x0239, 0x022c,
+ 0x022e, 0x0261, 0x027d, 0x0249, 0x01d1, 0x012f,
+ 0x00dd, 0x0129, 0x01c1, 0x025c, 0x02b3, 0x0280,
+ 0x01e2, 0x00eb, 0xffcb, 0xfef6, 0xfe7a, 0xfe44,
+ 0xfe66, 0xfe8e, 0xfe91, 0xfea5, 0xfea5, 0xfe62,
+ 0xfe09, 0xfdc8, 0xfdc6, 0xfe05, 0xfe5c, 0xfec5,
+ 0xff25, 0xff32, 0xfef0, 0xfe99, 0xfe3d, 0xfdee,
+ 0xfdc0, 0xfd91, 0xfd3c, 0xfcb6, 0xfc19, 0xfbc7,
+ 0xfbec, 0xfc4a, 0xfcfb, 0xfe27, 0xff35, 0xffa0,
+ 0xff80, 0xff02, 0xfe81, 0xfe3e, 0xfe1c, 0xfe36,
+ 0xfe91, 0xfee3, 0xff2a, 0xff63, 0xff83, 0xffa4,
+ 0xff79, 0xff1a, 0xff39, 0xffdd, 0x00d1, 0x01f3,
+ 0x0298, 0x029d, 0x023c, 0x0135, 0xfff4, 0xff39,
+ 0xfeff, 0xff46, 0xfff0, 0x007a, 0x00f4, 0x0150,
+ 0x0148, 0x0132, 0x0135, 0x0143, 0x018c, 0x01c8,
+ 0x01eb, 0x025c, 0x02bb, 0x02be, 0x02d0, 0x02d9,
+ 0x02c7, 0x02ed, 0x0300, 0x02a3, 0x0203, 0x0152,
+ 0x00d6, 0x00a5, 0x0048, 0xffb5, 0xff9b, 0x0050,
+ 0x0162, 0x021d, 0x022b, 0x01d5, 0x0176, 0x0121,
+ 0x00f0, 0x00f4, 0x00e8, 0x00ac, 0x0047, 0xff95,
+ 0xfec1, 0xfe1e, 0xfd77, 0xfce5, 0xfcf7, 0xfd84,
+ 0xfe05, 0xfe45, 0xfe0c, 0xfd72, 0xfcd6, 0xfc2c,
+ 0xfb76, 0xfaea, 0xfa68, 0xf9ff, 0xfa12, 0xfab5,
+ 0xfba5, 0xfc6c, 0xfca3, 0xfc66, 0xfc1d, 0xfc1f,
+ 0xfc8c, 0xfd44, 0xfe0b, 0xfe86, 0xfe5f, 0xfde2,
+ 0xfd9b, 0xfd8a, 0xfdad, 0xfe1d, 0xfe66, 0xfe1b,
+ 0xfd83, 0xfcfe, 0xfcc8, 0xfd07, 0xfd51, 0xfd46,
+ 0xfd62, 0xfe14, 0xff04, 0xffc3, 0x0031, 0x005d,
+ 0x005a, 0x0036, 0x003b, 0x0093, 0x00e9, 0x0126,
+ 0x0164, 0x015f, 0x0130, 0x0121, 0x00fb, 0x00ee,
+ 0x0164, 0x020b, 0x02b0, 0x035e, 0x03b0, 0x0361,
+ 0x0289, 0x017b, 0x00c0, 0x006b, 0x0027, 0xfff7,
+ 0xffff, 0x0053, 0x00e8, 0x0155, 0x015f, 0x014b,
+ 0x0158, 0x0191, 0x01cd, 0x020a, 0x0280, 0x02d0,
+ 0x0288, 0x0204, 0x0191, 0x0162, 0x01dc, 0x029d,
+ 0x02d1, 0x0257, 0x0166, 0x0060, 0xffc6, 0xff88,
+ 0xff4f, 0xff24, 0xff45, 0xff93, 0xff97, 0xff44,
+ 0xfef2, 0xfe9d, 0xfe37, 0xfdf7, 0xfdc6, 0xfd5c,
+ 0xfcd1, 0xfc68, 0xfc44, 0xfc3f, 0xfc00, 0xfb53,
+ 0xfa80, 0xfa26, 0xfa82, 0xfb36, 0xfbdc, 0xfc47,
+ 0xfc66, 0xfc1e, 0xfb5c, 0xfa6a, 0xf98a, 0xf8a5,
+ 0xf7fa, 0xf7dc, 0xf82e, 0xf917, 0xfa78, 0xfb6c,
+ 0xfbbb, 0xfbdc, 0xfbf2, 0xfc3b, 0xfcf2, 0xfddc,
+ 0xfec9, 0xff8c, 0xffdd, 0xffaa, 0xff16, 0xfed1,
+ 0xff6b, 0x005e, 0x0100, 0x0117, 0x0088, 0xffd6,
+ 0xff89, 0xff61, 0xff3c, 0xff4e, 0xff81, 0xffb7,
+ 0xffdb, 0xfffd, 0x0064, 0x00e7, 0x0134, 0x0170,
+ 0x017b, 0x0116, 0x009a, 0x0057, 0x0026, 0xffe9,
+ 0xff93, 0xff1a, 0xfea6, 0xfe9e, 0xff42, 0x0049,
+ 0x0140, 0x01f2, 0x0216, 0x0163, 0x0044, 0xff4b,
+ 0xfe5f, 0xfd7b, 0xfcec, 0xfcb5, 0xfcaf, 0xfcdc,
+ 0xfd38, 0xfd9e, 0xfde2, 0xfe00, 0xfe31, 0xfe89,
+ 0xfeee, 0xff38, 0xff35, 0xfeff, 0xfeb2, 0xfe10,
+ 0xfd5d, 0xfd3e, 0xfd8f, 0xfdda, 0xfdc2, 0xfcee,
+ 0xfba9, 0xfa6d, 0xf94f, 0xf8a1, 0xf881, 0xf8a9,
+ 0xf92c, 0xf9db, 0xfa44, 0xfaa5, 0xfb20, 0xfb4f,
+ 0xfb2c, 0xface, 0xfa2d, 0xf980, 0xf921, 0xf949,
+ 0xf98f, 0xf94a, 0xf8a6, 0xf822, 0xf80e, 0xf8e6,
+ 0xfa75, 0xfbdf, 0xfceb, 0xfd8b, 0xfd88, 0xfd22,
+ 0xfc9e, 0xfbe3, 0xfae2, 0xf9be, 0xf8f4, 0xf8f2,
+ 0xf995, 0xfa9e, 0xfbdd, 0xfced, 0xfd75, 0xfd98,
+ 0xfdeb, 0xfe97, 0xff22, 0xff84, 0xffee, 0x0013,
+ 0xffd3, 0xff3c, 0xfe81, 0xfe60, 0xff0b, 0xffbb,
+ 0x0008, 0xffdd, 0xff30, 0xfe77, 0xfdf6, 0xfd9c,
+ 0xfd97, 0xfdee, 0xfe66, 0xfee2, 0xff4f, 0xffd3,
+ 0x0074, 0x00e9, 0x0143, 0x0190, 0x015d, 0x00d9,
+ 0x009d, 0x007b, 0x003b, 0xfff9, 0xff8e, 0xff08,
+ 0xfed6, 0xff32, 0x002d, 0x01a0, 0x0308, 0x03fe,
+ 0x0448, 0x03e6, 0x0345, 0x0272, 0x0123, 0xffbe,
+ 0xfec1, 0xfe1b, 0xfde0, 0xfe29, 0xfeb8, 0xff57,
+ 0xffbc, 0xffe2, 0x002e, 0x0081, 0x007a, 0x005a,
+ 0x0071, 0x00eb, 0x01a4, 0x01f3, 0x01db, 0x01fb,
+ 0x022a, 0x0204, 0x019e, 0x00e9, 0xfff1, 0xff2a,
+ 0xfef2, 0xff37, 0xffb1, 0x0047, 0x00c3, 0x00ba,
+ 0x0091, 0x00f2, 0x01b1, 0x029d, 0x0395, 0x03e1,
+ 0x035c, 0x02d9, 0x02c1, 0x02d4, 0x02d4, 0x02aa,
+ 0x023f, 0x0191, 0x0119, 0x0151, 0x0210, 0x031b,
+ 0x045a, 0x054b, 0x0596, 0x0586, 0x055a, 0x04dc,
+ 0x03e0, 0x02c3, 0x01f8, 0x017c, 0x0159, 0x01d1,
+ 0x02a4, 0x034c, 0x03b1, 0x03fe, 0x0443, 0x0468,
+ 0x0449, 0x0407, 0x0415, 0x049b, 0x0523, 0x054a,
+ 0x0540, 0x0550, 0x0583, 0x05a8, 0x0576, 0x04d8,
+ 0x03fd, 0x0323, 0x0299, 0x026e, 0x0282, 0x02f3,
+ 0x03a9, 0x0436, 0x048e, 0x04e8, 0x0560, 0x05fc,
+ 0x066d, 0x0657, 0x05c9, 0x0516, 0x0488, 0x0427,
+ 0x03e0, 0x03c2, 0x038d, 0x030a, 0x02b6, 0x02ea,
+ 0x037c, 0x045c, 0x0522, 0x054a, 0x050d, 0x04ca,
+ 0x046f, 0x03bb, 0x028c, 0x0126, 0xffef, 0xff09,
+ 0xfe97, 0xfe97, 0xfeda, 0xff44, 0xffa9, 0x0013,
+ 0x00b9, 0x013d, 0x0141, 0x0125, 0x013a, 0x016b,
+ 0x01ab, 0x01d6, 0x01db, 0x01ec, 0x021c, 0x0243,
+ 0x021e, 0x0183, 0x00b9, 0x002b, 0xffef, 0x0001,
+ 0x0053, 0x0097, 0x00b6, 0x00c0, 0x00b1, 0x00cb,
+ 0x015b, 0x0215, 0x029b, 0x02c8, 0x029a, 0x026f,
+ 0x0268, 0x022e, 0x01cf, 0x016a, 0x00e9, 0x00b6,
+ 0x00f5, 0x0138, 0x01ae, 0x0287, 0x0335, 0x036f,
+ 0x0362, 0x0336, 0x02fd, 0x0286, 0x01b4, 0x00a8,
+ 0xffa4, 0xff0f, 0xfeeb, 0xfec8, 0xfec0, 0xff11,
+ 0xff8d, 0x0021, 0x0099, 0x009c, 0x0052, 0x000f,
+ 0xfffc, 0x002c, 0x0071, 0x0094, 0x008d, 0x0066,
+ 0x004a, 0x003a, 0x0000, 0xff74, 0xfea2, 0xfde8,
+ 0xfd8f, 0xfd61, 0xfd5e, 0xfda9, 0xfded, 0xfe01,
+ 0xfe0e, 0xfe29, 0xfea5, 0xff86, 0x0026, 0x0017,
+ 0xff4b, 0xfe26, 0xfd66, 0xfd32, 0xfd4a, 0xfd75,
+ 0xfd47, 0xfcdb, 0xfcbc, 0xfccb, 0xfd03, 0xfdb5,
+ 0xfe82, 0xff07, 0xff67, 0xff6d, 0xfedb, 0xfdf5,
+ 0xfd04, 0xfc28, 0xfb76, 0xfaf0, 0xfaa2, 0xfa86,
+ 0xfaa6, 0xfb2c, 0xfbf3, 0xfc9b, 0xfcfa, 0xfcf3,
+ 0xfca9, 0xfca3, 0xfcf6, 0xfd3a, 0xfd6c, 0xfd9d,
+ 0xfdbb, 0xfde9, 0xfe22, 0xfe31, 0xfe1d, 0xfdd2,
+ 0xfd53, 0xfd08, 0xfcfb, 0xfcf1, 0xfcf8, 0xfcf7,
+ 0xfcc0, 0xfc86, 0xfc9e, 0xfd3f, 0xfe33, 0xfefe,
+ 0xff86, 0xffbf, 0xff86, 0xff2d, 0xff0d, 0xff19,
+ 0xff1f, 0xfeda, 0xfe66, 0xfe20, 0xfdf6, 0xfde7,
+ 0xfe3c, 0xfecf, 0xff63, 0x0001, 0x007a, 0x0097,
+ 0x0059, 0xffd9, 0xff58, 0xfee7, 0xfe6d, 0xfdfd,
+ 0xfd8e, 0xfcf7, 0xfc88, 0xfc9b, 0xfd1f, 0xfdad,
+ 0xfde2, 0xfdbe, 0xfda4, 0xfdd3, 0xfe2f, 0xfe84,
+ 0xfed9, 0xff49, 0xffb3, 0x000f, 0x0079, 0x00b1,
+ 0x005e, 0xffaf, 0xff06, 0xfe82, 0xfe19, 0xfdd1,
+ 0xfdaa, 0xfd9b, 0xfd9d, 0xfda1, 0xfda8, 0xfdf5,
+ 0xfec4, 0xffe6, 0x00dd, 0x014a, 0x013b, 0x010c,
+ 0x0104, 0x0128, 0x0127, 0x00bb, 0x0038, 0x0006,
+ 0xfff9, 0xffed, 0x000c, 0x0052, 0x00d6, 0x01bf,
+ 0x0285, 0x029a, 0x0233, 0x01a8, 0x011f, 0x00c0,
+ 0x0072, 0xfffa, 0xff69, 0xfef9, 0xfee8, 0xff5f,
+ 0x0029, 0x00f1, 0x017e, 0x01c7, 0x020b, 0x026a,
+ 0x029f, 0x02a7, 0x02ca, 0x031d, 0x0394, 0x040b,
+ 0x0462, 0x04ae, 0x04ca, 0x0489, 0x0442, 0x042b,
+ 0x0408, 0x03d3, 0x03b0, 0x03a7, 0x03b8, 0x03cf,
+ 0x03e0, 0x040f, 0x0464, 0x04ba, 0x0518, 0x0571,
+ 0x0580, 0x0546, 0x051e, 0x0512, 0x04ee, 0x04cc,
+ 0x04d4, 0x04fb, 0x052e, 0x0538, 0x050c, 0x0510,
+ 0x0588, 0x0652, 0x0722, 0x078d, 0x0748, 0x0684,
+ 0x059a, 0x04a9, 0x03ab, 0x02bf, 0x0227, 0x01fd,
+ 0x0237, 0x02cf, 0x0390, 0x0426, 0x0467, 0x0459,
+ 0x0414, 0x03c3, 0x0387, 0x035e, 0x0351, 0x0393,
+ 0x0409, 0x0464, 0x04a9, 0x04c9, 0x0497, 0x0470,
+ 0x0484, 0x0484, 0x0449, 0x03d1, 0x0351, 0x0343,
+ 0x036d, 0x0360, 0x0365, 0x039b, 0x03b2, 0x03b9,
+ 0x03dc, 0x0418, 0x045d, 0x0491, 0x04ad, 0x04b0,
+ 0x0490, 0x0477, 0x0492, 0x04e9, 0x054a, 0x0539,
+ 0x04ae, 0x045d, 0x04ae, 0x0574, 0x064f, 0x06bf,
+ 0x0678, 0x05a8, 0x04b0, 0x03b6, 0x02c1, 0x0214,
+ 0x01e9, 0x0209, 0x0226, 0x0250, 0x02bd, 0x036f,
+ 0x040e, 0x044d, 0x0435, 0x03d4, 0x034c, 0x02f4,
+ 0x0305, 0x036c, 0x03c2, 0x03bb, 0x03a5, 0x03b8,
+ 0x03b5, 0x03b8, 0x03f0, 0x0412, 0x03ee, 0x03b2,
+ 0x0394, 0x03b6, 0x0409, 0x0454, 0x0466, 0x0438,
+ 0x0414, 0x0436, 0x047d, 0x04c5, 0x050a, 0x053b,
+ 0x0545, 0x0516, 0x04d3, 0x04be, 0x04f4, 0x0565,
+ 0x05bd, 0x05a4, 0x056e, 0x0598, 0x061c, 0x06be,
+ 0x0744, 0x077d, 0x076a, 0x070a, 0x064e, 0x0551,
+ 0x0447, 0x0370, 0x0303, 0x02f1, 0x030f, 0x0359,
+ 0x03d4, 0x046a, 0x04f9, 0x054f, 0x053c, 0x04d4,
+ 0x0466, 0x041f, 0x0417, 0x0451, 0x046d, 0x043c,
+ 0x0411, 0x0406, 0x03f4, 0x03e0, 0x03d3, 0x03c4,
+ 0x0384, 0x02df, 0x0220, 0x01ae, 0x0191, 0x01c2,
+ 0x021b, 0x025b, 0x0278, 0x026d, 0x0247, 0x024f,
+ 0x0283, 0x02b5, 0x02e2, 0x02f0, 0x02ca, 0x029d,
+ 0x0290, 0x02ad, 0x02b5, 0x024e, 0x01d1, 0x01e9,
+ 0x02a4, 0x03a5, 0x048a, 0x04eb, 0x04b2, 0x03fa,
+ 0x02d4, 0x017b, 0x004b, 0xff8c, 0xff51, 0xff40,
+ 0xff1e, 0xff5c, 0x003b, 0x015e, 0x0260, 0x02f7,
+ 0x02f7, 0x028e, 0x0204, 0x01ab, 0x01ef, 0x02b9,
+ 0x036d, 0x03ab, 0x0399, 0x038d, 0x0395, 0x0389,
+ 0x036e, 0x0346, 0x02ec, 0x0281, 0x0222, 0x01c3,
+ 0x01a8, 0x020b, 0x02ae, 0x0347, 0x039b, 0x038e,
+ 0x034c, 0x0312, 0x0303, 0x0323, 0x033a, 0x031e,
+ 0x02eb, 0x02bb, 0x029e, 0x02a4, 0x02b8, 0x02cc,
+ 0x0305, 0x0398, 0x0464, 0x04ec, 0x04ed, 0x049f,
+ 0x0443, 0x03e3, 0x035c, 0x0288, 0x018f, 0x00d0,
+ 0x006a, 0x0023, 0xffed, 0x000f, 0x00a5, 0x015e,
+ 0x01e0, 0x01ff, 0x01c3, 0x0161, 0x0107, 0x00e4,
+ 0x0114, 0x0175, 0x01ca, 0x01ec, 0x01dd, 0x01b0,
+ 0x0150, 0x00d1, 0x0070, 0x000c, 0xff8b, 0xff0d,
+ 0xfe67, 0xfdbd, 0xfdb0, 0xfe1c, 0xfe7e, 0xfee7,
+ 0xff36, 0xff1d, 0xfebc, 0xfe40, 0xfde8, 0xfdf5,
+ 0xfe42, 0xfeac, 0xff36, 0xff97, 0xff99, 0xff59,
+ 0xfeeb, 0xfe7a, 0xfe6d, 0xff05, 0x000a, 0x0108,
+ 0x01a4, 0x01c1, 0x016f, 0x00ef, 0x005f, 0xffac,
+ 0xfef9, 0xfe78, 0xfe19, 0xfdea, 0xfe22, 0xfeb0,
+ 0xff67, 0x0036, 0x00ef, 0x0167, 0x01a6, 0x01a0,
+ 0x0155, 0x010b, 0x00f7, 0x011b, 0x0176, 0x01e2,
+ 0x0246, 0x02a3, 0x02bc, 0x0283, 0x024b, 0x022c,
+ 0x0209, 0x01c2, 0x0137, 0x00b3, 0x0090, 0x00a6,
+ 0x00d8, 0x011a, 0x0120, 0x00d6, 0x0068, 0x0013,
+ 0x002f, 0x0094, 0x00d4, 0x00f7, 0x0104, 0x00e9,
+ 0x00d0, 0x009a, 0x002e, 0xfffc, 0x0017, 0x002d,
+ 0x003c, 0x005a, 0x007f, 0x00a6, 0x00ae, 0x007c,
+ 0x0014, 0xff89, 0xfeff, 0xfe80, 0xfdf3, 0xfd64,
+ 0xfd03, 0xfd07, 0xfd80, 0xfe32, 0xfec8, 0xff16,
+ 0xff03, 0xfead, 0xfe56, 0xfe09, 0xfdc7, 0xfdba,
+ 0xfdf2, 0xfe45, 0xfe8f, 0xfea0, 0xfe68, 0xfe2c,
+ 0xfe21, 0xfe07, 0xfd99, 0xfce8, 0xfc3d, 0xfbdc,
+ 0xfbcc, 0xfbe0, 0xfbfe, 0xfc36, 0xfc8d, 0xfcd5,
+ 0xfcd8, 0xfcae, 0xfc93, 0xfca5, 0xfced, 0xfd65,
+ 0xfdfe, 0xfea1, 0xff09, 0xff06, 0xfed4, 0xfeab,
+ 0xfe9d, 0xfed0, 0xff31, 0xff98, 0x0016, 0x0074,
+ 0x005a, 0xffe4, 0xff3a, 0xfe7e, 0xfdf6, 0xfda8,
+ 0xfd77, 0xfd7a, 0xfdac, 0xfe13, 0xfeb4, 0xff3e,
+ 0xffa3, 0x0032, 0x00ca, 0x0115, 0x011d, 0x00f9,
+ 0x00c8, 0x00ba, 0x00e8, 0x0161, 0x0211, 0x02a4,
+ 0x02dd, 0x02c1, 0x0274, 0x0223, 0x01c4, 0x0156,
+ 0x010a, 0x00f8, 0x011b, 0x0178, 0x01ef, 0x023e,
+ 0x023b, 0x01de, 0x0153, 0x00ee, 0x00e6, 0x0129,
+ 0x0177, 0x01af, 0x01d9, 0x01c8, 0x0134, 0x0048,
+ 0xffaa, 0xffb1, 0x0006, 0x002a, 0x0022, 0x0054,
+ 0x00c3, 0x00e9, 0x0067, 0xff83, 0xfeb3, 0xfe17,
+ 0xfd99, 0xfd1b, 0xfc83, 0xfbf3, 0xfbbf, 0xfbfc,
+ 0xfc73, 0xfcf4, 0xfd5c, 0xfd7c, 0xfd66, 0xfd5e,
+ 0xfd60, 0xfd40, 0xfd04, 0xfcd6, 0xfce9, 0xfd40,
+ 0xfd93, 0xfdbc, 0xfdaf, 0xfd4b, 0xfca1, 0xfbd5,
+ 0xfaf5, 0xfa54, 0xfa16, 0xf9f9, 0xf9ff, 0xfa3d,
+ 0xfa92, 0xfaeb, 0xfb0e, 0xfad3, 0xfa8d, 0xfa67,
+ 0xfa60, 0xfaae, 0xfb2e, 0xfb88, 0xfbb8, 0xfbc2,
+ 0xfba3, 0xfb9f, 0xfc09, 0xfce6, 0xfdb7, 0xfe00,
+ 0xfdf2, 0xfde7, 0xfde2, 0xfdc4, 0xfd74, 0xfd09,
+ 0xfcb8, 0xfc8b, 0xfc70, 0xfc5a, 0xfc41, 0xfc59,
+ 0xfcc9, 0xfd6c, 0xfe26, 0xfee5, 0xff74, 0xffac,
+ 0xff9a, 0xff7a, 0xff7c, 0xff9e, 0xffd9, 0x0029,
+ 0x009a, 0x0153, 0x0241, 0x02fe, 0x0336, 0x02dd,
+ 0x023e, 0x01a8, 0x011c, 0x00a4, 0x003b, 0xffa5,
+ 0xff28, 0xff46, 0xffd0, 0x0048, 0x0069, 0x0025,
+ 0xffb9, 0xff53, 0xff11, 0xff44, 0xffea, 0x009a,
+ 0x00f4, 0x00a9, 0xffe7, 0xff6f, 0xffa2, 0x0028,
+ 0x0067, 0x0012, 0xff89, 0xff06, 0xfe3f, 0xfd39,
+ 0xfc5e, 0xfbe2, 0xfbbf, 0xfba3, 0xfb2c, 0xfa8a,
+ 0xfa1f, 0xf9f3, 0xfa05, 0xfa65, 0xfaed, 0xfb52,
+ 0xfb6f, 0xfb5c, 0xfb47, 0xfb4b, 0xfb66, 0xfb83,
+ 0xfb8c, 0xfb82, 0xfb7f, 0xfb96, 0xfbc8, 0xfbf2,
+ 0xfbdd, 0xfb7b, 0xfafc, 0xfaa9, 0xfaa7, 0xfadf,
+ 0xfb04, 0xfae7, 0xfac1, 0xfac4, 0xfac2, 0xfa8a,
+ 0xfa21, 0xf9b7, 0xf993, 0xf9c3, 0xfa28, 0xfad7,
+ 0xfbc4, 0xfc95, 0xfd30, 0xfd94, 0xfda7, 0xfdbf,
+ 0xfe3d, 0xfee0, 0xff34, 0xff33, 0xff1d, 0xff1f,
+ 0xff19, 0xfee4, 0xfe9c, 0xfe6e, 0xfe8b, 0xfee3,
+ 0xfef2, 0xfe8b, 0xfe09, 0xfdb0, 0xfdd2, 0xfead,
+ 0xffc3, 0x007c, 0x00ae, 0x0067, 0x0010, 0x0005,
+ 0x003c, 0x00b6, 0x0154, 0x01e2, 0x027e, 0x032a,
+ 0x03c3, 0x0454, 0x04ac, 0x0474, 0x03b5, 0x02c7,
+ 0x0237, 0x0232, 0x023c, 0x0221, 0x020e, 0x021c,
+ 0x025a, 0x0287, 0x0271, 0x0277, 0x029d, 0x0286,
+ 0x0266, 0x0276, 0x029c, 0x02c5, 0x02d0, 0x029d,
+ 0x024b, 0x0223, 0x025a, 0x029e, 0x029a, 0x027f,
+ 0x023f, 0x0198, 0x00b9, 0xffdf, 0xff3b, 0xff0e,
+ 0xff23, 0xff1a, 0xfed0, 0xfe3e, 0xfd8e, 0xfd19,
+ 0xfd30, 0xfddb, 0xfe98, 0xff0b, 0xff3b, 0xff0e,
+ 0xfea9, 0xfe6a, 0xfe45, 0xfe46, 0xfea6, 0xff39,
+ 0xffdc, 0x007b, 0x00c9, 0x00b8, 0x006c, 0xffef,
+ 0xff58, 0xfebf, 0xfe48, 0xfe18, 0xfe17, 0xfe2e,
+ 0xfe5a, 0xfe82, 0xfe92, 0xfe79, 0xfe53, 0xfe61,
+ 0xfe80, 0xfe90, 0xfebc, 0xfeed, 0xff1b, 0xff65,
+ 0xff84, 0xff6d, 0xff88, 0x0000, 0x00bd, 0x0162,
+ 0x0177, 0x0132, 0x0100, 0x00d9, 0x009f, 0x0040,
+ 0xffd2, 0xffc3, 0x0020, 0x0085, 0x00ca, 0x00e1,
+ 0x00b5, 0x0092, 0x00d3, 0x014f, 0x01ae, 0x01ed,
+ 0x0218, 0x021d, 0x020c, 0x01f1, 0x01cf, 0x01f3,
+ 0x029a, 0x039a, 0x04aa, 0x057c, 0x05d5, 0x05b4,
+ 0x0528, 0x044c, 0x035e, 0x02ac, 0x025c, 0x022a,
+ 0x01df, 0x01d2, 0x0225, 0x0261, 0x0247, 0x01e6,
+ 0x014e, 0x00d7, 0x00c2, 0x00d9, 0x00f1, 0x0119,
+ 0x0138, 0x0138, 0x0125, 0x010d, 0x0102, 0x011f,
+ 0x014c, 0x014d, 0x0106, 0x0084, 0xffe5, 0xff33,
+ 0xfe5a, 0xfd75, 0xfcde, 0xfcc1, 0xfd0a, 0xfd70,
+ 0xfd97, 0xfd5f, 0xfcf6, 0xfc9f, 0xfc9c, 0xfcf4,
+ 0xfd65, 0xfdaa, 0xfd8b, 0xfd08, 0xfc6c, 0xfbf3,
+ 0xfbb5, 0xfbd5, 0xfc6a, 0xfd7e, 0xfed7, 0xffe3,
+ 0x0043, 0x002d, 0xfffd, 0xffb2, 0xff08, 0xfe12,
+ 0xfd48, 0xfcee, 0xfd0b, 0xfd7d, 0xfde0, 0xfdf3,
+ 0xfdda, 0xfdae, 0xfd82, 0xfd81, 0xfda6, 0xfdda,
+ 0xfe1f, 0xfe52, 0xfe58, 0xfe56, 0xfe63, 0xfe82,
+ 0xfedb, 0xff6d, 0xfff8, 0x0061, 0x00ad, 0x00ba,
+ 0x0076, 0x0003, 0xff8b, 0xff34, 0xff25, 0xff5f,
+ 0xffb2, 0xfffd, 0x003a, 0x0040, 0xffff, 0xffdb,
+ 0x0015, 0x007e, 0x00ed, 0x0137, 0x013b, 0x0142,
+ 0x0175, 0x0187, 0x015b, 0x0137, 0x017a, 0x0262,
+ 0x03a1, 0x04a3, 0x050d, 0x04ca, 0x0412, 0x033c,
+ 0x0260, 0x01a5, 0x0140, 0x011c, 0x012c, 0x0167,
+ 0x0180, 0x015f, 0x0134, 0x00f1, 0x008e, 0x003d,
+ 0x001a, 0x0032, 0x006d, 0x008d, 0x00a0, 0x00d8,
+ 0x0118, 0x0163, 0x01d9, 0x023e, 0x0253, 0x0221,
+ 0x01ad, 0x00f8, 0x0014, 0xff19, 0xfe2c, 0xfd7e,
+ 0xfd4b, 0xfd9a, 0xfdfe, 0xfe2a, 0xfe32, 0xfe0a,
+ 0xfd9b, 0xfd2a, 0xfd06, 0xfd45, 0xfda4, 0xfda7,
+ 0xfd3a, 0xfcb7, 0xfc4e, 0xfc06, 0xfbec, 0xfc10,
+ 0xfc8b, 0xfd6f, 0xfe8b, 0xff69, 0xffc5, 0xffc7,
+ 0xff75, 0xfe9f, 0xfd8d, 0xfce1, 0xfcd3, 0xfd2c,
+ 0xfdb4, 0xfe1e, 0xfe39, 0xfe3c, 0xfe42, 0xfe0a,
+ 0xfdb8, 0xfda3, 0xfdba, 0xfdf6, 0xfe40, 0xfe47,
+ 0xfe35, 0xfe66, 0xfeda, 0xffb0, 0x00cb, 0x0192,
+ 0x01df, 0x01df, 0x0195, 0x012c, 0x00d3, 0x0085,
+ 0x0048, 0x0011, 0xfffa, 0x002e, 0x0088, 0x00df,
+ 0x0123, 0x012d, 0x011c, 0x0113, 0x0121, 0x017a,
+ 0x01ff, 0x025b, 0x0290, 0x027c, 0x01fe, 0x0172,
+ 0x013d, 0x0194, 0x0282, 0x03c6, 0x0508, 0x05d9,
+ 0x060c, 0x05ee, 0x0586, 0x04c1, 0x0410, 0x03aa,
+ 0x037a, 0x0396, 0x03c8, 0x03cd, 0x03bf, 0x03a7,
+ 0x0390, 0x037d, 0x0343, 0x02f8, 0x02a8, 0x0226,
+ 0x01a1, 0x0165, 0x0174, 0x01c3, 0x0243, 0x02ef,
+ 0x03be, 0x046f, 0x04c0, 0x048f, 0x03e4, 0x0311,
+ 0x0262, 0x01dd, 0x0189, 0x015f, 0x013f, 0x0116,
+ 0x00e4, 0x00bf, 0x00a9, 0x007c, 0x0044, 0x0020,
+ 0x0027, 0x0080, 0x010a, 0x017d, 0x01d1, 0x01e7,
+ 0x01a6, 0x0158, 0x0150, 0x0193, 0x0227, 0x030c,
+ 0x03fc, 0x0498, 0x04ce, 0x0497, 0x03e9, 0x0313,
+ 0x027d, 0x0247, 0x028d, 0x0318, 0x035a, 0x034a,
+ 0x0322, 0x02e2, 0x02d0, 0x0318, 0x0364, 0x0389,
+ 0x037e, 0x0320, 0x02a3, 0x024d, 0x0237, 0x0292,
+ 0x035a, 0x044e, 0x0547, 0x0616, 0x068b, 0x06a7,
+ 0x064a, 0x057c, 0x04ad, 0x0410, 0x03a1, 0x0390,
+ 0x03d5, 0x0443, 0x04d9, 0x054d, 0x053b, 0x04df,
+ 0x049d, 0x049e, 0x0506, 0x05bc, 0x0666, 0x06b1,
+ 0x0681, 0x061e, 0x05e4, 0x05e0, 0x062b, 0x06e3,
+ 0x07de, 0x08dd, 0x0995, 0x09cc, 0x09af, 0x0957,
+ 0x08be, 0x081e, 0x079d, 0x0722, 0x06c9, 0x06ba,
+ 0x06e1, 0x0700, 0x06d8, 0x0660, 0x05d6, 0x0595,
+ 0x05b5, 0x05d7, 0x0589, 0x04b5, 0x03b0, 0x0321,
+ 0x0362, 0x0437, 0x0559, 0x069f, 0x07aa, 0x083f,
+ 0x085d, 0x07f2, 0x071b, 0x063e, 0x0588, 0x04e2,
+ 0x044d, 0x03ed, 0x03ce, 0x03e8, 0x0416, 0x0407,
+ 0x03a6, 0x0328, 0x02a6, 0x0248, 0x0255, 0x02cf,
+ 0x0381, 0x0420, 0x043b, 0x03b5, 0x02f8, 0x0274,
+ 0x0258, 0x02b7, 0x0393, 0x04a0, 0x0551, 0x056d,
+ 0x0514, 0x047b, 0x0402, 0x03cf, 0x0383, 0x0315,
+ 0x02e2, 0x02f3, 0x030c, 0x02f8, 0x0297, 0x021f,
+ 0x01e8, 0x01fb, 0x0220, 0x0219, 0x01d8, 0x0187,
+ 0x0159, 0x0157, 0x0188, 0x0213, 0x0307, 0x0426,
+ 0x0520, 0x05be, 0x05dd, 0x057f, 0x04d0, 0x042a,
+ 0x03c8, 0x0379, 0x0326, 0x030f, 0x0348, 0x03c8,
+ 0x046f, 0x04cc, 0x04aa, 0x043c, 0x03c4, 0x0389,
+ 0x039e, 0x03eb, 0x047c, 0x04fc, 0x04e3, 0x046c,
+ 0x03fd, 0x03aa, 0x03bd, 0x0460, 0x0541, 0x0612,
+ 0x06a7, 0x06f6, 0x0704, 0x06ad, 0x0619, 0x05b8,
+ 0x0579, 0x051a, 0x04cb, 0x04a9, 0x0484, 0x043d,
+ 0x03dd, 0x0378, 0x032c, 0x0314, 0x0312, 0x02f0,
+ 0x029c, 0x0206, 0x0136, 0x0097, 0x0088, 0x00fd,
+ 0x01d8, 0x02d4, 0x0379, 0x03a7, 0x0378, 0x02f0,
+ 0x0246, 0x01c1, 0x0169, 0x0127, 0x00da, 0x006f,
+ 0x001c, 0x0012, 0x0037, 0x004c, 0x0024, 0xffca,
+ 0xff69, 0xff24, 0xff21, 0xff6c, 0xffcf, 0x000b,
+ 0xffe2, 0xff2e, 0xfe6c, 0xfe2e, 0xfe6c, 0xfef6,
+ 0xffa6, 0x002f, 0x0083, 0x00b5, 0x0094, 0x0022,
+ 0xffc9, 0xffb2, 0xffa7, 0xff76, 0xff1c, 0xfeb6,
+ 0xfe7c, 0xfe75, 0xfe5e, 0xfe20, 0xfdfa, 0xfe0c,
+ 0xfe4e, 0xfe85, 0xfe48, 0xfdb8, 0xfd7b, 0xfdca,
+ 0xfe79, 0xff63, 0x004a, 0x00fd, 0x0179, 0x01c1,
+ 0x01e2, 0x01c3, 0x014f, 0x00dd, 0x00b1, 0x00ac,
+ 0x00ce, 0x0108, 0x0136, 0x0187, 0x01ee, 0x0207,
+ 0x01ba, 0x011c, 0x0065, 0x001b, 0x0077, 0x0145,
+ 0x0229, 0x029b, 0x0265, 0x01e7, 0x0174, 0x013b,
+ 0x0178, 0x0226, 0x02eb, 0x0375, 0x03c3, 0x03f9,
+ 0x0418, 0x041e, 0x041c, 0x0401, 0x03bf, 0x037b,
+ 0x0341, 0x02f0, 0x0272, 0x01d2, 0x0141, 0x00e1,
+ 0x00a9, 0x008f, 0x0074, 0x0020, 0xff83, 0xfeaa,
+ 0xfde1, 0xfda1, 0xfe07, 0xfee8, 0xfff7, 0x00ae,
+ 0x00cd, 0x0093, 0x001a, 0xff51, 0xfe6c, 0xfddf,
+ 0xfdde, 0xfe16, 0xfe23, 0xfe0c, 0xfdf7, 0xfdfb,
+ 0xfe00, 0xfd9a, 0xfcb1, 0xfbcb, 0xfb5d, 0xfb7e,
+ 0xfc06, 0xfca4, 0xfd2f, 0xfd7a, 0xfd2c, 0xfc44,
+ 0xfb45, 0xfac6, 0xfb13, 0xfc0c, 0xfd2c, 0xfdec,
+ 0xfe34, 0xfe37, 0xfe08, 0xfdc6, 0xfda6, 0xfd8b,
+ 0xfd5e, 0xfd37, 0xfce7, 0xfc63, 0xfc09, 0xfbeb,
+ 0xfbce, 0xfbbc, 0xfbe7, 0xfc4a, 0xfc8a, 0xfc5d,
+ 0xfbcd, 0xfb15, 0xfa98, 0xfaa3, 0xfb30, 0xfc3f,
+ 0xfd9b, 0xfeb1, 0xff52, 0xff98, 0xff68, 0xfef1,
+ 0xfe75, 0xfe00, 0xfdcf, 0xfdec, 0xfe22, 0xfe8c,
+ 0xff1f, 0xff83, 0xff8c, 0xff36, 0xfeae, 0xfe46,
+ 0xfe2b, 0xfe7d, 0xff39, 0x0013, 0x00ba, 0x00d0,
+ 0x004c, 0xff96, 0xfee0, 0xfe5b, 0xfe78, 0xff2f,
+ 0x000c, 0x00b2, 0x00f1, 0x00e9, 0x00c6, 0x009d,
+ 0x00a2, 0x00b3, 0x0080, 0x003b, 0x000b, 0xffd9,
+ 0xffc2, 0xffac, 0xff54, 0xff0b, 0xff1f, 0xff3c,
+ 0xff08, 0xfe75, 0xfd99, 0xfcc1, 0xfc44, 0xfc32,
+ 0xfc81, 0xfd2a, 0xfdf9, 0xfeb8, 0xff5c, 0xffa7,
+ 0xff46, 0xfe53, 0xfd32, 0xfc3a, 0xfba1, 0xfb5f,
+ 0xfb5c, 0xfb9e, 0xfc26, 0xfcb6, 0xfceb, 0xfca3,
+ 0xfc1a, 0xfb8e, 0xfb43, 0xfb77, 0xfbfd, 0xfc7c,
+ 0xfcb2, 0xfc75, 0xfbef, 0xfb76, 0xfb2f, 0xfb42,
+ 0xfbc3, 0xfc6f, 0xfd12, 0xfd91, 0xfdc7, 0xfdbe,
+ 0xfdaa, 0xfdad, 0xfdd3, 0xfe1b, 0xfe61, 0xfe6b,
+ 0xfe41, 0xfe0d, 0xfdb5, 0xfd3c, 0xfcf9, 0xfd0b,
+ 0xfd4b, 0xfd8c, 0xfd94, 0xfd5a, 0xfd17, 0xfcf2,
+ 0xfd02, 0xfd4a, 0xfdc2, 0xfe69, 0xff05, 0xff6c,
+ 0xffda, 0x0049, 0x005f, 0x0015, 0xffa6, 0xff51,
+ 0xff3f, 0xff46, 0xff59, 0xffb8, 0x0058, 0x00cf,
+ 0x00d0, 0x0059, 0xff9c, 0xfeeb, 0xfebf, 0xff55,
+ 0x0044, 0x0106, 0x0171, 0x0164, 0x00dd, 0x003e,
+ 0xffc8, 0xff76, 0xff6d, 0xffc0, 0x0029, 0x007f,
+ 0x00ca, 0x0100, 0x010b, 0x00e0, 0x008c, 0x001f,
+ 0xffa7, 0xff5b, 0xff75, 0xffab, 0xff86, 0xff0c,
+ 0xfe94, 0xfe4d, 0xfe13, 0xfda2, 0xfcf5, 0xfc3f,
+ 0xfba8, 0xfb38, 0xfaf1, 0xfaf4, 0xfb69, 0xfc17,
+ 0xfcaa, 0xfd2d, 0xfda9, 0xfdd9, 0xfd7e, 0xfcad,
+ 0xfbc2, 0xfb2c, 0xfb2e, 0xfbb4, 0xfc5d, 0xfce0,
+ 0xfd34, 0xfd50, 0xfd24, 0xfca1, 0xfbbb, 0xfad1,
+ 0xfa7f, 0xfaf8, 0xfc06, 0xfd34, 0xfdf1, 0xfe15,
+ 0xfde6, 0xfda9, 0xfd95, 0xfdb7, 0xfe00, 0xfe6a,
+ 0xfed8, 0xff23, 0xff44, 0xff4b, 0xff63, 0xff8e,
+ 0xff97, 0xff69, 0xff26, 0xff1d, 0xff8e, 0x0004,
+ 0xffd8, 0xff4e, 0xff1b, 0xff5b, 0xffb3, 0xffc0,
+ 0xff5c, 0xfec2, 0xfe4c, 0xfe36, 0xfe73, 0xfed6,
+ 0xff65, 0x0024, 0x00f5, 0x01e6, 0x02ea, 0x0397,
+ 0x0390, 0x02cd, 0x01b0, 0x00ea, 0x00d4, 0x013d,
+ 0x01d9, 0x026a, 0x02bf, 0x02dc, 0x02be, 0x024d,
+ 0x01a8, 0x0128, 0x011f, 0x01a6, 0x0283, 0x033c,
+ 0x037a, 0x033f, 0x02d1, 0x027b, 0x025a, 0x0258,
+ 0x025e, 0x0264, 0x026e, 0x027f, 0x02a1, 0x02e6,
+ 0x033c, 0x0374, 0x035c, 0x02c5, 0x01f9, 0x01bc,
+ 0x0230, 0x029e, 0x0296, 0x0234, 0x01ba, 0x015b,
+ 0x0103, 0x0087, 0xfffb, 0xff66, 0xfedd, 0xfe85,
+ 0xfe53, 0xfe47, 0xfe76, 0xfeae, 0xfee4, 0xff53,
+ 0xffe5, 0x004f, 0x004c, 0xffb8, 0xfef7, 0xfea1,
+ 0xfebd, 0xff12, 0xff70, 0xff95, 0xff8f, 0xff95,
+ 0xff81, 0xff2b, 0xfeb5, 0xfe46, 0xfe18, 0xfe54,
+ 0xfee5, 0xffa3, 0x0050, 0x009f, 0x0087, 0x003a,
+ 0xffe9, 0xffc8, 0x0007, 0x008f, 0x0112, 0x015f,
+ 0x017e, 0x0193, 0x01b4, 0x01d1, 0x01aa, 0x0134,
+ 0x00d8, 0x00ef, 0x014c, 0x0183, 0x0158, 0x00f3,
+ 0x00ad, 0x0084, 0x0047, 0xfff8, 0xff9d, 0xff2e,
+ 0xfec6, 0xfe8a, 0xfe82, 0xfea3, 0xfeed, 0xff5d,
+ 0xffe6, 0x0084, 0x012e, 0x018c, 0x0140, 0x0067,
+ 0xff85, 0xff18, 0xff40, 0xffb4, 0x0023, 0x0068,
+ 0x005f, 0x0014, 0xffbf, 0xff60, 0xfefb, 0xfed7,
+ 0xff06, 0xff62, 0xfff3, 0x008b, 0x00c5, 0x00b5,
+ 0x0090, 0x0038, 0xffc3, 0xff6d, 0xff5a, 0xffae,
+ 0x0035, 0x007f, 0x0096, 0x00a6, 0x00a3, 0x0093,
+ 0x005e, 0xffe3, 0xff90, 0xffd1, 0x0060, 0x00c9,
+ 0x00dc, 0x00bc, 0x009b, 0x0066, 0xfff8, 0xff7b,
+ 0xff1d, 0xfed4, 0xfea1, 0xfe8b, 0xfe77, 0xfe56,
+ 0xfe60, 0xfec8, 0xff84, 0x006b, 0x012d, 0x0157,
+ 0x00c3, 0xffd6, 0xff22, 0xff00, 0xff4f, 0xffbd,
+ 0x0032, 0x0098, 0x00a9, 0x0054, 0xffdc, 0xff72,
+ 0xff2b, 0xff18, 0xff27, 0xff3a, 0xff64, 0xffad,
+ 0xfff4, 0x002f, 0x005c, 0x0053, 0x0013, 0xffcb,
+ 0xff9b, 0xffb1, 0x0016, 0x007c, 0x00a1, 0x0087,
+ 0x0035, 0xffbf, 0xff5d, 0xff3c, 0xff65, 0xffc1,
+ 0x000a, 0x0000, 0xffae, 0xff4d, 0xfeea, 0xfe73,
+ 0xfdfb, 0xfda3, 0xfd58, 0xfd00, 0xfcaa, 0xfc62,
+ 0xfc24, 0xfbf3, 0xfbd0, 0xfbf2, 0xfcaa, 0xfdc0,
+ 0xfe99, 0xfed4, 0xfe55, 0xfd7f, 0xfd0b, 0xfd0d,
+ 0xfd1a, 0xfd2e, 0xfd7a, 0xfdef, 0xfe62, 0xfe82,
+ 0xfe28, 0xfd92, 0xfd00, 0xfca4, 0xfc9f, 0xfcd5,
+ 0xfd27, 0xfd8e, 0xfddd, 0xfdf4, 0xfddc, 0xfda8,
+ 0xfd82, 0xfd8d, 0xfdd8, 0xfe71, 0xff2f, 0xffbe,
+ 0x0018, 0x003a, 0xfff5, 0xff83, 0xff55, 0xff7b,
+ 0xffed, 0x008f, 0x0106, 0x0140, 0x0189, 0x01e9,
+ 0x0222, 0x01f8, 0x015f, 0x00b1, 0x0031, 0xffc7,
+ 0xff85, 0xff81, 0xff80, 0xff62, 0xff56, 0xffa9,
+ 0x00a1, 0x020c, 0x0349, 0x03c9, 0x0361, 0x0291,
+ 0x01fe, 0x01ab, 0x0174, 0x016e, 0x018e, 0x01cb,
+ 0x0218, 0x0243, 0x0248, 0x023a, 0x0218, 0x0209,
+ 0x020f, 0x020e, 0x0223, 0x023e, 0x0252, 0x029f,
+ 0x02fd, 0x02f9, 0x028f, 0x01f5, 0x017d, 0x0173,
+ 0x01b4, 0x020e, 0x0265, 0x0267, 0x01f8, 0x0151,
+ 0x00a2, 0x003c, 0x0063, 0x00d5, 0x011d, 0x011e,
+ 0x00ff, 0x00ef, 0x00cf, 0x0062, 0xffb3, 0xfeee,
+ 0xfe2b, 0xfd83, 0xfd03, 0xfc99, 0xfc3d, 0xfbe7,
+ 0xfba7, 0xfbdb, 0xfcaa, 0xfdae, 0xfe87, 0xfeef,
+ 0xfec0, 0xfe5d, 0xfe1d, 0xfdc7, 0xfd73, 0xfd72,
+ 0xfdb8, 0xfe35, 0xfeb6, 0xfee2, 0xfed7, 0xfea9,
+ 0xfe35, 0xfdc2, 0xfd9d, 0xfdc3, 0xfe16, 0xfe48,
+ 0xfe51, 0xfe8b, 0xfeef, 0xff3f, 0xff6b, 0xff75,
+ 0xffb9, 0x0061, 0x00ff, 0x016a, 0x01ad, 0x019b,
+ 0x014e, 0x00d4, 0x002e, 0xffe6, 0x0033, 0x00c2,
+ 0x0185, 0x0258, 0x02f2, 0x036d, 0x03b4, 0x0372,
+ 0x02d9, 0x0247, 0x01c9, 0x0159, 0x010a, 0x00d6,
+ 0x007f, 0xfff4, 0xffa3, 0xfffc, 0x00ec, 0x01f1,
+ 0x0296, 0x02cd, 0x02b1, 0x0271, 0x0252, 0x0231,
+ 0x01dc, 0x01b8, 0x01fa, 0x0250, 0x028d, 0x02aa,
+ 0x029a, 0x0267, 0x021c, 0x01e5, 0x01e4, 0x01f6,
+ 0x020a, 0x0212, 0x01ed, 0x01be, 0x0195, 0x0140,
+ 0x00d9, 0x00a8, 0x00c0, 0x0111, 0x015c, 0x0171,
+ 0x016c, 0x0157, 0x0118, 0x00a9, 0x0023, 0xffbf,
+ 0xffa0, 0xffbc, 0xfffd, 0x004e, 0x00b7, 0x0134,
+ 0x017c, 0x013d, 0x0091, 0xffde, 0xff66, 0xff1f,
+ 0xfee4, 0xfe94, 0xfe0f, 0xfd86, 0xfd74, 0xfe04,
+ 0xfef6, 0xffdf, 0x006f, 0x00ad, 0x0098, 0x003e,
+ 0xfff8, 0xffd3, 0xffb8, 0xffd6, 0x0025, 0x007e,
+ 0x0106, 0x01a3, 0x01f2, 0x01de, 0x018c, 0x013f,
+ 0x0130, 0x0150, 0x0186, 0x01c7, 0x0224, 0x02ae,
+ 0x0309, 0x02de, 0x0291, 0x02a0, 0x0323, 0x03e6,
+ 0x048d, 0x04e8, 0x04fe, 0x04c9, 0x0466, 0x0404,
+ 0x03b2, 0x03a8, 0x0409, 0x0497, 0x051a, 0x059d,
+ 0x0641, 0x06f2, 0x075a, 0x0737, 0x069b, 0x05d5,
+ 0x0530, 0x04c7, 0x048c, 0x0445, 0x03c1, 0x034c,
+ 0x034d, 0x03c0, 0x0489, 0x0579, 0x064e, 0x0705,
+ 0x0769, 0x0736, 0x06a9, 0x05f8, 0x0548, 0x04e6,
+ 0x04c4, 0x04c4, 0x051b, 0x0591, 0x05c3, 0x05a3,
+ 0x0533, 0x04b6, 0x0473, 0x0440, 0x03f6, 0x03a9,
+ 0x0381, 0x0395, 0x0396, 0x0343, 0x02e2, 0x02ba,
+ 0x02db, 0x032c, 0x035c, 0x0350, 0x0305, 0x0263,
+ 0x0197, 0x00c8, 0x0002, 0xff9f, 0xffbc, 0x0033,
+ 0x00e5, 0x0173, 0x01bf, 0x01f1, 0x01c9, 0x0142,
+ 0x00b2, 0xfff6, 0xff14, 0xfe6a, 0xfded, 0xfd83,
+ 0xfd28, 0xfcef, 0xfd2f, 0xfdea, 0xfeb4, 0xff6c,
+ 0xfffa, 0x0051, 0x009f, 0x00ca, 0x00ab, 0x005e,
+ 0x000f, 0x0002, 0x004f, 0x00be, 0x014e, 0x01f9,
+ 0x0266, 0x026a, 0x021c, 0x01b8, 0x018c, 0x01a1,
+ 0x01db, 0x0245, 0x02e1, 0x038e, 0x0400, 0x03fd,
+ 0x03cc, 0x03d3, 0x0429, 0x04a0, 0x04ec, 0x0505,
+ 0x052a, 0x055d, 0x0582, 0x0583, 0x0543, 0x04fa,
+ 0x0511, 0x0588, 0x062d, 0x06db, 0x0769, 0x07b1,
+ 0x0798, 0x072c, 0x069c, 0x0601, 0x0571, 0x04ff,
+ 0x048a, 0x040f, 0x03b7, 0x038f, 0x0394, 0x03c4,
+ 0x0417, 0x0477, 0x04c7, 0x0510, 0x0558, 0x0576,
+ 0x0555, 0x0504, 0x049e, 0x0472, 0x04bf, 0x055c,
+ 0x05f3, 0x065c, 0x0695, 0x067e, 0x05d0, 0x04a3,
+ 0x0381, 0x02ce, 0x02a0, 0x02da, 0x0332, 0x035d,
+ 0x0336, 0x02bd, 0x0228, 0x01dc, 0x0209, 0x0266,
+ 0x028f, 0x0261, 0x01d9, 0x0128, 0x0096, 0x0024,
+ 0xffe4, 0xfff4, 0x0031, 0x0071, 0x00a8, 0x00d0,
+ 0x00f3, 0x00df, 0x0057, 0xffb6, 0xff47, 0xfecf,
+ 0xfe29, 0xfd60, 0xfc89, 0xfbf5, 0xfbd7, 0xfc11,
+ 0xfc67, 0xfca5, 0xfccd, 0xfd0c, 0xfd75, 0xfe05,
+ 0xfe88, 0xfeb2, 0xfe73, 0xfdf5, 0xfd8b, 0xfd7f,
+ 0xfdd9, 0xfe8b, 0xff6d, 0x0020, 0x007b, 0x0080,
+ 0x0021, 0xff85, 0xfefd, 0xfec0, 0xfeed, 0xff64,
+ 0xffd0, 0xfff7, 0xffd0, 0xff8d, 0xff73, 0xffa7,
+ 0x0033, 0x00ed, 0x017f, 0x01ac, 0x0163, 0x00ee,
+ 0x00be, 0x00be, 0x00bb, 0x00ea, 0x0160, 0x01fc,
+ 0x02c2, 0x037f, 0x03db, 0x03cf, 0x0387, 0x0319,
+ 0x029b, 0x021a, 0x0188, 0x00ca, 0xffed, 0xff37,
+ 0xfef7, 0xff40, 0xffd5, 0x0080, 0x012e, 0x01c2,
+ 0x0234, 0x028e, 0x0299, 0x022e, 0x018f, 0x010c,
+ 0x00cc, 0x00de, 0x013d, 0x01e1, 0x0298, 0x0308,
+ 0x0314, 0x02c2, 0x0223, 0x016c, 0x00bb, 0x002b,
+ 0x0008, 0x0057, 0x00a6, 0x00a0, 0x0046, 0xffd0,
+ 0xff84, 0xff80, 0xffb4, 0x0013, 0x0078, 0x007e,
+ 0xffe4, 0xfefb, 0xfe58, 0xfe28, 0xfe27, 0xfe1e,
+ 0xfe3c, 0xfec1, 0xff88, 0x0025, 0x0055, 0x0037,
+ 0x0017, 0xfff6, 0xff97, 0xfeed, 0xfe0f, 0xfd12,
+ 0xfc19, 0xfb3f, 0xfab1, 0xfa96, 0xfac8, 0xfb21,
+ 0xfbcc, 0xfcb2, 0xfd75, 0xfdec, 0xfe06, 0xfdb9,
+ 0xfd3d, 0xfccf, 0xfc98, 0xfcda, 0xfda7, 0xfea7,
+ 0xff6c, 0xffd2, 0x000b, 0x0037, 0x0011, 0xff77,
+ 0xfec4, 0xfe65, 0xfe6c, 0xfea2, 0xfebe, 0xfeca,
+ 0xfefa, 0xff31, 0xff40, 0xff43, 0xff67, 0xffd5,
+ 0x0084, 0x010d, 0x0125, 0x00cc, 0x0027, 0xffa3,
+ 0xff8c, 0xffe2, 0x009b, 0x0158, 0x01b1, 0x01dc,
+ 0x01ed, 0x01c1, 0x01bb, 0x0209, 0x024a, 0x0234,
+ 0x01a0, 0x00a4, 0xff9a, 0xfea2, 0xfdd6, 0xfd66,
+ 0xfd5d, 0xfdd2, 0xfe9f, 0xff63, 0x001e, 0x00b3,
+ 0x00b0, 0x002a, 0xff85, 0xff0f, 0xff17, 0xff6a,
+ 0xffc5, 0x0052, 0x00de, 0x011d, 0x013b, 0x0110,
+ 0x0063, 0xffb4, 0xff68, 0xff71, 0xffb3, 0xffe4,
+ 0xffbb, 0xff3d, 0xfe9a, 0xfe27, 0xfe12, 0xfe2c,
+ 0xfe4b, 0xfe6c, 0xfe87, 0xfea2, 0xfeba, 0xfe9f,
+ 0xfe40, 0xfdd3, 0xfda7, 0xfdcf, 0xfe14, 0xfe49,
+ 0xfe63, 0xfe4a, 0xfe1c, 0xfe22, 0xfe4d, 0xfe6e,
+ 0xfe6c, 0xfdf7, 0xfcfc, 0xfc02, 0xfb4f, 0xfaac,
+ 0xfa15, 0xf9b4, 0xf9ba, 0xfa52, 0xfb49, 0xfc26,
+ 0xfcb2, 0xfd13, 0xfd58, 0xfd4d, 0xfd1b, 0xfd50,
+ 0xfde5, 0xfe4b, 0xfe88, 0xff0c, 0xffd2, 0x0077,
+ 0x00b4, 0x0094, 0x003c, 0xffc1, 0xff71, 0xffb6,
+ 0x0074, 0x0134, 0x017e, 0x0124, 0x0083, 0x0033,
+ 0x004c, 0x0074, 0x0081, 0x00c8, 0x019f, 0x0290,
+ 0x02d9, 0x0260, 0x0180, 0x00b3, 0x0097, 0x013b,
+ 0x01fe, 0x0299, 0x0310, 0x0302, 0x0254, 0x01b4,
+ 0x01bb, 0x0238, 0x026f, 0x01f9, 0x0122, 0x0025,
+ 0xff15, 0xfe70, 0xfe5f, 0xfe51, 0xfe0b, 0xfdc9,
+ 0xfdea, 0xfecd, 0x000f, 0x00b5, 0x0055, 0xff56,
+ 0xfe49, 0xfd84, 0xfd40, 0xfde0, 0xff2c, 0x003e,
+ 0x00d5, 0x0107, 0x0096, 0xffd4, 0xff6d, 0xff93,
+ 0x001f, 0x0091, 0x006d, 0xffe9, 0xff52, 0xfecc,
+ 0xfe6e, 0xfe11, 0xfdee, 0xfe5b, 0xfeca, 0xfec5,
+ 0xfeb8, 0xfedd, 0xfeed, 0xfeb3, 0xfe6e, 0xfe85,
+ 0xfebd, 0xfead, 0xfe92, 0xfe8a, 0xfe62, 0xfe20,
+ 0xfdc6, 0xfdb6, 0xfe75, 0xff72, 0xffa4, 0xfedb,
+ 0xfdb6, 0xfcfe, 0xfcb9, 0xfc71, 0xfc66, 0xfcf1,
+ 0xfdbf, 0xfe81, 0xfefa, 0xfef4, 0xfeb3, 0xfe7e,
+ 0xfe42, 0xfdf3, 0xfd90, 0xfd2c, 0xfd29, 0xfe09,
+ 0xffcd, 0x018f, 0x024b, 0x0205, 0x0164, 0x00c8,
+ 0x0052, 0x0007, 0xffe6, 0x002b, 0x00f0, 0x01aa,
+ 0x01b6, 0x012b, 0x008b, 0x0016, 0xffe4, 0x0013,
+ 0x00a2, 0x0133, 0x0149, 0x00e5, 0x0063, 0xffcd,
+ 0xff6c, 0xffff, 0x0141, 0x0213, 0x0206, 0x0164,
+ 0x00c1, 0x00cb, 0x0178, 0x01e9, 0x0198, 0x0131,
+ 0x0153, 0x014e, 0x00a0, 0xffea, 0xff4a, 0xfe96,
+ 0xfe54, 0xfe9c, 0xff16, 0xffa8, 0xffe1, 0xffa3,
+ 0xff98, 0xffd0, 0xffb3, 0xfef6, 0xfdfa, 0xfd9c,
+ 0xfdf9, 0xfe52, 0xfea3, 0xff5d, 0x0066, 0x0137,
+ 0x0127, 0x004e, 0xff8f, 0xff3f, 0xff4c, 0xff77,
+ 0xff46, 0xff2b, 0xffa8, 0xffe0, 0xff7f, 0xff2c,
+ 0xfebc, 0xfe32, 0xfe7b, 0xff9b, 0x0057, 0xffd1,
+ 0xfe9f, 0xfe0b, 0xfe8a, 0xffd9, 0x015d, 0x01f3,
+ 0x014a, 0x005d, 0xffb1, 0xff44, 0xff5f, 0xffeb,
+ 0x0061, 0x0064, 0xffff, 0xffa8, 0xff7b, 0xff2f,
+ 0xff11, 0xff62, 0xffa8, 0xffc6, 0x002a, 0x00c5,
+ 0x0103, 0x00a5, 0x001a, 0xfff6, 0x0060, 0x0106,
+ 0x014a, 0x0118, 0x011f, 0x01b6, 0x0271, 0x02fa,
+ 0x0331, 0x02e4, 0x0231, 0x01a1, 0x019d, 0x022b,
+ 0x02fd, 0x0385, 0x036e, 0x0336, 0x0340, 0x02e1,
+ 0x01a2, 0x0071, 0x0070, 0x0152, 0x01b5, 0x0111,
+ 0x0024, 0xff46, 0xfe56, 0xfdb4, 0xfdbe, 0xfea0,
+ 0x004d, 0x01bb, 0x01e2, 0x0146, 0x00c8, 0x005b,
+ 0xffbd, 0xff63, 0xffca, 0x0014, 0xff43, 0xfe12,
+ 0xfd48, 0xfc73, 0xfb8f, 0xfb1f, 0xfb7e, 0xfcea,
+ 0xfec0, 0xffb1, 0xff56, 0xfe69, 0xfde8, 0xfddb,
+ 0xfd73, 0xfce3, 0xfcce, 0xfca3, 0xfc29, 0xfc1e,
+ 0xfc9a, 0xfd55, 0xfe6e, 0xffad, 0x0059, 0x0001,
+ 0xff28, 0xfeb6, 0xfee4, 0xff8c, 0x0042, 0x002f,
+ 0xff6e, 0xfedb, 0xfe50, 0xfdb9, 0xfddd, 0xfe76,
+ 0xfe6d, 0xfdf5, 0xfe0e, 0xfed3, 0xff7f, 0xffd7,
+ 0x0056, 0x00cf, 0x007e, 0xffb8, 0xffad, 0x00e6,
+ 0x02cc, 0x0439, 0x0472, 0x03c2, 0x02fb, 0x028c,
+ 0x0225, 0x0146, 0x0021, 0xff49, 0xff06, 0xff85,
+ 0x0084, 0x0124, 0x0135, 0x0185, 0x024b, 0x031a,
+ 0x03ae, 0x036e, 0x01c9, 0xff62, 0xfdd0, 0xfe5e,
+ 0x00b8, 0x0328, 0x04cb, 0x05fe, 0x0670, 0x0596,
+ 0x045e, 0x0403, 0x043e, 0x03f5, 0x02e7, 0x01b6,
+ 0x00f7, 0x00f9, 0x0176, 0x0166, 0x0097, 0x0006,
+ 0xfffe, 0x003e, 0x00cf, 0x00ff, 0x000f, 0xfea8,
+ 0xfdc6, 0xfdc6, 0xfec0, 0x0042, 0x0153, 0x0182,
+ 0x016f, 0x01aa, 0x01aa, 0x0105, 0x0068, 0x004e,
+ 0x0080, 0x00d7, 0x00d1, 0xffcb, 0xfe44, 0xfd43,
+ 0xfd10, 0xfd6f, 0xfe35, 0xff22, 0xff8b, 0xff06,
+ 0xfe82, 0xff12, 0xfffc, 0x0004, 0xff50, 0xfe72,
+ 0xfdba, 0xfd95, 0xfe1f, 0xfee3, 0xff6b, 0xff94,
+ 0xffc0, 0x003c, 0x0094, 0x0072, 0x001c, 0xff68,
+ 0xfe1d, 0xfced, 0xfc9a, 0xfcf5, 0xfd5d, 0xfdc7,
+ 0xfecd, 0x0075, 0x01db, 0x0243, 0x01b2, 0x009b,
+ 0xff17, 0xfce9, 0xfb25, 0xfb83, 0xfd4b, 0xfe56,
+ 0xfe86, 0xff16, 0x004e, 0x01dc, 0x035e, 0x03f7,
+ 0x02ed, 0x00c6, 0xfe97, 0xfd11, 0xfd02, 0xfe36,
+ 0xfe6f, 0xfcd3, 0xfb8d, 0xfbff, 0xfd91, 0xff68,
+ 0x0061, 0x0023, 0xffbd, 0xff4b, 0xfe40, 0xfd4d,
+ 0xfd08, 0xfce6, 0xfc58, 0xfb8c, 0xfb8e, 0xfcbb,
+ 0xfdd5, 0xfe63, 0xff61, 0x00a9, 0x00e8, 0xffb9,
+ 0xfe23, 0xfd7a, 0xfe1b, 0xff76, 0x00e5, 0x022d,
+ 0x0340, 0x0383, 0x024a, 0x008c, 0xffea, 0x0070,
+ 0x0125, 0x01c8, 0x027a, 0x022e, 0x003b, 0xfea9,
+ 0xfed7, 0xff9d, 0x00c3, 0x0210, 0x01db, 0x012f,
+ 0x01db, 0x0242, 0x01ca, 0x01f4, 0x0210, 0x01bf,
+ 0x0292, 0x038f, 0x02cf, 0x0170, 0x0075, 0xffd9,
+ 0x0092, 0x021c, 0x032d, 0x0441, 0x042e, 0x023b,
+ 0x01a4, 0x0273, 0x01ae, 0x0095, 0x0032, 0xff63,
+ 0xff6c, 0x007d, 0x0104, 0x01eb, 0x0364, 0x039b,
+ 0x02bf, 0x022e, 0x0204, 0x01de, 0x01f7, 0x0210,
+ 0x010b, 0xffb9, 0xffea, 0x0100, 0x028e, 0x04b7,
+ 0x0519, 0x02fc, 0x00fe, 0xff97, 0xfe61, 0xfeaa,
+ 0xff35, 0xfe2e, 0xfe2f, 0x003f, 0x0179, 0x02bf,
+ 0x055b, 0x0552, 0x029c, 0x01e5, 0x02fa, 0x03b4,
+ 0x03a5, 0x0246, 0x00f2, 0x0065, 0xff1c, 0xfe26,
+ 0xfef0, 0x0091, 0x0276, 0x03bc, 0x03f0, 0x0350,
+ 0x0170, 0xffc2, 0xff6e, 0xff31, 0xff57, 0xff70,
+ 0xfe98, 0xff67, 0x0164, 0x01d8, 0x025c, 0x0305,
+ 0x0299, 0x02ae, 0x0277, 0x0223, 0x0476, 0x0593,
+ 0x01ed, 0xff33, 0xfff1, 0xff67, 0xfdab, 0xfe1d,
+ 0xfdf1, 0xfab5, 0xf8ba, 0xf9f3, 0xfbcf, 0xfe38,
+ 0x0068, 0x001e, 0x0047, 0x02ce, 0x02b7, 0xffd8,
+ 0x0053, 0x01f0, 0xffe2, 0xff26, 0x00d8, 0xfffe,
+ 0x0009, 0x0133, 0xfe74, 0xfe95, 0x02e8, 0x024b,
+ 0x023e, 0x065b, 0x03c9, 0xfd7c, 0xfc8e, 0xfc9d,
+ 0xfc89, 0xffaf, 0x0147, 0xfeb3, 0xfe02, 0x016a,
+ 0x0336, 0x0291, 0x02bf, 0x00ed, 0xff1b, 0x02a7,
+ 0x0525, 0x0444, 0x05a5, 0x05cb, 0x0474, 0x05fe,
+ 0x063f, 0x0527, 0x0595, 0x0550, 0x05a9, 0x0520,
+ 0x01df, 0x0252, 0x04f7, 0x044c, 0x0372, 0x0234,
+ 0xffa3, 0xff2b, 0x0048, 0x0148, 0x0092, 0xff5a,
+ 0x024c, 0x057d, 0x05e6, 0x0783, 0x061f, 0x01bc,
+ 0x01e8, 0x0248, 0x00da, 0x035c, 0x057b, 0x03a3,
+ 0x032c, 0x056c, 0x0562, 0x0234, 0x0302, 0x060e,
+ 0x032d, 0x0209, 0x058a, 0x03b2, 0x0266, 0x04ce,
+ 0x01b5, 0x003f, 0x03c1, 0x0154, 0xfe01, 0x0099,
+ 0x0170, 0xff62, 0x00a8, 0x0310, 0x00e7, 0xffcf,
+ 0x03de, 0x02e7, 0x0000, 0x04bd, 0x04b6, 0x003e,
+ 0x054f, 0x07c2, 0x023a, 0x02f2, 0x05d1, 0x034b,
+ 0x004a, 0x0000, 0x0204, 0x00ee, 0xfd89, 0xfe6f,
+ 0xfdf4, 0xfbce, 0xfe4c, 0xffab, 0x00a0, 0x02cd,
+ 0xfffe, 0x0007, 0x043f, 0x0343, 0x041a, 0x05c7,
+ 0x00d0, 0xffb3, 0x01c8, 0xff17, 0xfeca, 0x003e,
+ 0xfe1d, 0xfd00, 0xfd80, 0xfc63, 0xfac0, 0xfc1a,
+ 0xfe90, 0xfd6e, 0xfee8, 0x0298, 0xfe5a, 0xfbb8,
+ 0xff7e, 0xfe18, 0xfe96, 0x0317, 0x00d7, 0x00d0,
+ 0x0343, 0xfd5e, 0xfadd, 0xff9c, 0xfe9c, 0xf92e,
+ 0xf51f, 0xee43, 0xde47, 0xcc25, 0xc972, 0xd5c3,
+ 0xe7e9, 0x00e6, 0x16e1, 0x1d47, 0x1971, 0x13d0,
+ 0x0f66, 0x0a6b, 0x051a, 0x0154, 0xf582, 0xe58d,
+ 0xe1f6, 0xdf93, 0xd988, 0xe083, 0xee7d, 0xff6a,
+ 0x1884, 0x26b5, 0x22a0, 0x1672, 0xff16, 0xe5ca,
+ 0xdb78, 0xdcf3, 0xe41f, 0xefdd, 0xfd8b, 0x076d,
+ 0x0ac3, 0x0e09, 0x0c75, 0x0048, 0xf8a9, 0xf5c0,
+ 0xefda, 0xf2a0, 0xf87a, 0xf82d, 0xfc9c, 0x0143,
+ 0x0305, 0x0ab6, 0x0ff0, 0x102d, 0x0eca, 0x069c,
+ 0x023a, 0x04e5, 0x0240, 0x0083, 0x03bd, 0x0610,
+ 0x08ff, 0x0adf, 0x0dab, 0x0f5a, 0x0797, 0x0539,
+ 0x0b87, 0x07c9, 0x0594, 0x0bfe, 0x0922, 0x05b6,
+ 0x0b0d, 0x0b1c, 0x07c1, 0x0a75, 0x0da8, 0x0c27,
+ 0x0c11, 0x1020, 0x0e75, 0x0b9d, 0x1206, 0x11d2,
+ 0x0a08, 0x0be6, 0x0ba7, 0x078d, 0x0e08, 0x1060,
+ 0x0c13, 0x1144, 0x148a, 0x0f26, 0x0f05, 0x147d,
+ 0x16a4, 0x15b0, 0x1909, 0x1c47, 0x1498, 0x0d30,
+ 0x0d0a, 0x09c5, 0x0b45, 0x1435, 0x1600, 0x163b,
+ 0x1962, 0x17cc, 0x1a07, 0x25a6, 0x30d1, 0x340e,
+ 0x2f66, 0x28bd, 0x2056, 0x1883, 0x1bf0, 0x2276,
+ 0x247a, 0x2dd8, 0x3771, 0x36f4, 0x357d, 0x3212,
+ 0x2db3, 0x2e61, 0x2b66, 0x2822, 0x2bb4, 0x2c4e,
+ 0x2bf9, 0x2d1d, 0x2708, 0x222b, 0x24f1, 0x25b9,
+ 0x241f, 0x1fb6, 0x100d, 0xfc11, 0xf6a3, 0xffb6,
+ 0x085b, 0x125a, 0x1d7d, 0x1928, 0x1085, 0x12b9,
+ 0x0b00, 0xfe5d, 0x03ce, 0x055b, 0xf9d5, 0xf8a9,
+ 0xf9fb, 0xf467, 0xf755, 0xfcb4, 0xf8db, 0xf711,
+ 0xf988, 0xf842, 0xf990, 0xffc1, 0xfec7, 0xf6a9,
+ 0xf253, 0xf163, 0xf08a, 0xf185, 0xf1bf, 0xef80,
+ 0xeee9, 0xf025, 0xeda9, 0xe7cf, 0xe556, 0xe2f8,
+ 0xdd03, 0xdef8, 0xe624, 0xe3d0, 0xe0df, 0xe2a2,
+ 0xde8b, 0xd9a3, 0xd70a, 0xd248, 0xd15f, 0xd1c1,
+ 0xd02e, 0xd1ee, 0xd060, 0xccfc, 0xcfc6, 0xcf41,
+ 0xccce, 0xcf7e, 0xced0, 0xcd94, 0xcf8b, 0xce13,
+ 0xcdfb, 0xcfaf, 0xcea7, 0xce57, 0xca2d, 0xc526,
+ 0xc913, 0xcd11, 0xcf51, 0xd346, 0xcf4c, 0xcb30,
+ 0xce41, 0xc981, 0xc15e, 0xc1c8, 0xc139, 0xbf4d,
+ 0xc3fc, 0xc82c, 0xc718, 0xc8be, 0xcfe4, 0xd61d,
+ 0xdace, 0xdefc, 0xdc83, 0xd687, 0xd3a2, 0xce5c,
+ 0xc88f, 0xc7f2, 0xc731, 0xc7a7, 0xcc15, 0xcda6,
+ 0xcc29, 0xcc68, 0xced0, 0xcecf, 0xca5c, 0xcb79,
+ 0xd131, 0xcf96, 0xcdc4, 0xce99, 0xcb53, 0xca42,
+ 0xc763, 0xc3cd, 0xce33, 0xd471, 0xcebb, 0xd307,
+ 0xd2e5, 0xc93a, 0xcefe, 0xd361, 0xcd01, 0xd116,
+ 0xd146, 0xc99c, 0xcf38, 0xd3a9, 0xd035, 0xd591,
+ 0xd9e9, 0xd661, 0xd76f, 0xdad0, 0xd9a1, 0xd927,
+ 0xdea3, 0xe3dd, 0xe274, 0xe2b7, 0xe6b4, 0xe535,
+ 0xe240, 0xe170, 0xdf27, 0xdfd2, 0xe214, 0xe27b,
+ 0xe533, 0xe699, 0xe70d, 0xe9f8, 0xe5cb, 0xdfa8,
+ 0xe342, 0xe657, 0xe875, 0xf055, 0xf128, 0xeab9,
+ 0xe8ee, 0xe625, 0xe229, 0xe641, 0xeb38, 0xe982,
+ 0xe965, 0xed2a, 0xed90, 0xee7f, 0xf407, 0xf522,
+ 0xf4c2, 0xfa07, 0xf99c, 0xf5e9, 0xf999, 0xf8ff,
+ 0xf687, 0xfc6e, 0xfdca, 0xff33, 0x0645, 0x0140,
+ 0xfe99, 0x0880, 0x0431, 0xff32, 0x09ed, 0x09b0,
+ 0x0792, 0x11c7, 0x1043, 0x0df6, 0x18fa, 0x18a1,
+ 0x1284, 0x1834, 0x1ac0, 0x13d6, 0x0f31, 0x15e1,
+ 0x2014, 0x1c4e, 0x179d, 0x1e67, 0x1975, 0x0d5b,
+ 0x1306, 0x1bac, 0x174a, 0x0fae, 0x0e88, 0x1574,
+ 0x194c, 0x1591, 0x16d5, 0x1b47, 0x1b8a, 0x1d95,
+ 0x2218, 0x2579, 0x2610, 0x23e9, 0x23aa, 0x21b4,
+ 0x1d74, 0x2198, 0x26bd, 0x24be, 0x2715, 0x282d,
+ 0x1d94, 0x19ed, 0x26ae, 0x2ecd, 0x2b0e, 0x2b41,
+ 0x2d51, 0x2707, 0x24bb, 0x289b, 0x2943, 0x304c,
+ 0x360c, 0x2dc3, 0x2d8e, 0x34c7, 0x31c2, 0x3344,
+ 0x360f, 0x2e2e, 0x2c52, 0x2e24, 0x2cd5, 0x3059,
+ 0x2f04, 0x2b28, 0x2d18, 0x2b46, 0x2d55, 0x3047,
+ 0x2971, 0x2ed0, 0x35dc, 0x2b61, 0x2ee8, 0x3790,
+ 0x2be7, 0x2b21, 0x33a9, 0x2e8a, 0x2e8d, 0x322b,
+ 0x2e56, 0x2db9, 0x2c67, 0x2bed, 0x301b, 0x2daa,
+ 0x2d8a, 0x336c, 0x32ea, 0x350f, 0x37a3, 0x2dc7,
+ 0x2707, 0x2db6, 0x3704, 0x3702, 0x2ccd, 0x2a20,
+ 0x2f13, 0x2cac, 0x2fb1, 0x371f, 0x3044, 0x2bf6,
+ 0x3217, 0x31f2, 0x31f3, 0x326d, 0x2c0f, 0x300f,
+ 0x3913, 0x31a4, 0x2d3c, 0x374b, 0x363e, 0x2e27,
+ 0x33be, 0x3365, 0x22fe, 0x206c, 0x2c85, 0x2c6a,
+ 0x2733, 0x2b75, 0x2e09, 0x2a72, 0x27b0, 0x2730,
+ 0x2a49, 0x2cef, 0x2964, 0x290a, 0x2d37, 0x26fa,
+ 0x2074, 0x287c, 0x28e0, 0x1fc0, 0x27cf, 0x2caa,
+ 0x1e1c, 0x1f42, 0x2789, 0x1a22, 0x1859, 0x2962,
+ 0x2571, 0x1858, 0x1c2d, 0x2047, 0x1c6c, 0x1a76,
+ 0x1924, 0x15d4, 0x133a, 0x1226, 0x13a7, 0x1953,
+ 0x1a38, 0x0fdb, 0x0e2f, 0x1b13, 0x1987, 0x0db3,
+ 0x1231, 0x169e, 0x109a, 0x14a4, 0x1aa6, 0x14ec,
+ 0x11d8, 0x13f7, 0x13a7, 0x11d1, 0x0c91, 0x0c8e,
+ 0x1461, 0x0cd7, 0xfeda, 0x0522, 0x0755, 0xfbc7,
+ 0x0333, 0x10c1, 0x0bd4, 0x087b, 0x0e26, 0x0fcb,
+ 0x086e, 0xfedb, 0x02a6, 0x0556, 0xfe4f, 0x09d2,
+ 0x0dd0, 0xf9fe, 0x07db, 0x18b7, 0xfc3b, 0xf6e9,
+ 0x0920, 0xfdd7, 0xf823, 0xfa41, 0xf516, 0x000e,
+ 0xfc72, 0xf31b, 0x0871, 0x00ac, 0xe6c9, 0xf83c,
+ 0xfdc9, 0xf228, 0x01ce, 0x00cc, 0xf5db, 0x0266,
+ 0xfeeb, 0xf4c6, 0xf9f1, 0xf8c0, 0xffac, 0x01d9,
+ 0xea55, 0xe9bd, 0xf687, 0xe70f, 0xe4bd, 0xf315,
+ 0xea07, 0xe41e, 0xef41, 0xf161, 0xef44, 0xee43,
+ 0xeb77, 0xebbf, 0xe34f, 0xda96, 0xe70d, 0xecb8,
+ 0xe1c2, 0xe4d0, 0xe624, 0xdcf2, 0xe202, 0xe08c,
+ 0xd9e6, 0xe652, 0xdcb5, 0xc9e7, 0xdd04, 0xdb3c,
+ 0xc5b5, 0xdc70, 0xe340, 0xcab9, 0xd4a7, 0xd8a5,
+ 0xcda0, 0xe16e, 0xe222, 0xcf72, 0xd95b, 0xd682,
+ 0xcefc, 0xe490, 0xe265, 0xd53f, 0xea20, 0xef69,
+ 0xdba1, 0xdaab, 0xe27d, 0xe42b, 0xe14e, 0xdbaa,
+ 0xdf61, 0xdd18, 0xcc96, 0xd090, 0xe0a9, 0xdd75,
+ 0xdd10, 0xe159, 0xd173, 0xca60, 0xd8d7, 0xd6b5,
+ 0xcf0d, 0xdb5e, 0xdf80, 0xd6ed, 0xd61e, 0xcf0e,
+ 0xc095, 0xbacc, 0xb91e, 0xbee3, 0xc852, 0xc302,
+ 0xc01b, 0xcc7e, 0xd1f1, 0xd168, 0xd663, 0xd899,
+ 0xd74d, 0xd4bf, 0xd2d0, 0xd4e6, 0xce20, 0xc33a,
+ 0xc9bd, 0xd01b, 0xcb9e, 0xd395, 0xd84b, 0xc9d5,
+ 0xcd1e, 0xdf6a, 0xd85e, 0xc93a, 0xcce2, 0xd614,
+ 0xdb56, 0xd280, 0xbd0d, 0xc059, 0xd543, 0xcafa,
+ 0xb6b2, 0xc289, 0xd0a7, 0xc6cd, 0xc103, 0xcbd7,
+ 0xd1cd, 0xcf0b, 0xd395, 0xd7a5, 0xcac2, 0xc083,
+ 0xc889, 0xcb4d, 0xc54b, 0xcc37, 0xd387, 0xcab8,
+ 0xc7f8, 0xd618, 0xde2f, 0xd6ee, 0xd035, 0xd3eb,
+ 0xd8a3, 0xd30b, 0xceed, 0xdc44, 0xe7e1, 0xe050,
+ 0xdf87, 0xede8, 0xee74, 0xe8bc, 0xf5c8, 0x0176,
+ 0xfb6d, 0xf4cd, 0xf0fa, 0xed73, 0xf52e, 0x0184,
+ 0x012b, 0xf94f, 0xf603, 0xf149, 0xe570, 0xe3ba,
+ 0xf170, 0xf0ee, 0xe226, 0xe7b0, 0xf3c2, 0xeb41,
+ 0xe613, 0xeb9e, 0xea20, 0xecc0, 0xed55, 0xde1c,
+ 0xe16d, 0xf81b, 0xf4f3, 0xe677, 0xe96b, 0xe928,
+ 0xe5e4, 0xeb64, 0xe4b7, 0xd9d7, 0xe58f, 0xee04,
+ 0xdc20, 0xd039, 0xda82, 0xdfd4, 0xd94f, 0xd920,
+ 0xdd4f, 0xdb13, 0xd5d4, 0xd210, 0xd40a, 0xda71,
+ 0xd6dd, 0xd043, 0xd8df, 0xdb41, 0xcb60, 0xcc1a,
+ 0xdc1f, 0xd821, 0xd1ca, 0xdeda, 0xdbef, 0xc1dc,
+ 0xbfff, 0xd4d5, 0xd1ba, 0xc09e, 0xc4d9, 0xca8a,
+ 0xbe09, 0xb71d, 0xbab0, 0xbad5, 0xc141, 0xcfb5,
+ 0xd3b9, 0xcd72, 0xcd63, 0xd5e9, 0xd625, 0xc7d8,
+ 0xc0cb, 0xcaa1, 0xd320, 0xd2f3, 0xd231, 0xdb49,
+ 0xee8b, 0xf26e, 0xe4e8, 0xe610, 0xeab9, 0xe296,
+ 0xe9d8, 0xf259, 0xe34f, 0xe42f, 0xf390, 0xeb5d,
+ 0xe894, 0xf3b0, 0xe96d, 0xe316, 0xf1f3, 0xf2d6,
+ 0xf02a, 0xfcea, 0xfd38, 0xf371, 0xf5bc, 0xf31b,
+ 0xeb31, 0xfa90, 0x0eaf, 0x056b, 0xfc97, 0x0c55,
+ 0x0d7b, 0x0053, 0x0a00, 0x0cad, 0xfb71, 0x066c,
+ 0x17c6, 0x0735, 0xfc28, 0x01dd, 0x01ae, 0x0a99,
+ 0x0fe8, 0x026a, 0x055b, 0x127b, 0x0fa0, 0x15b2,
+ 0x21b0, 0x1a08, 0x15e2, 0x213b, 0x2262, 0x1800,
+ 0x1b2f, 0x2aff, 0x2415, 0x0d81, 0x17e6, 0x290a,
+ 0x17b1, 0x187c, 0x3517, 0x2b68, 0x10f5, 0x1aa4,
+ 0x29b8, 0x24b1, 0x20af, 0x246e, 0x2322, 0x19af,
+ 0x1625, 0x18d6, 0x154c, 0x1625, 0x16ad, 0x08ea,
+ 0x0c2d, 0x1b08, 0x0ef3, 0x0d0c, 0x1bfa, 0x09e4,
+ 0x0520, 0x2781, 0x23ce, 0x08e9, 0x1181, 0x18da,
+ 0x1248, 0x1209, 0x052e, 0xfcc4, 0x0c97, 0x0fb3,
+ 0x058b, 0x0e40, 0x1927, 0x0bc4, 0xfde3, 0x0f7e,
+ 0x1b65, 0xffba, 0xfd43, 0x1fd2, 0x148d, 0xf8d3,
+ 0x08b1, 0x094c, 0xf79c, 0x042d, 0x04aa, 0xf23f,
+ 0xf4dd, 0xf7ba, 0xff62, 0x1350, 0x0831, 0xf794,
+ 0x01f7, 0xfc2a, 0xee4a, 0xf111, 0xec91, 0xf17b,
+ 0xfce5, 0xeadb, 0xe9d0, 0x060d, 0xff9e, 0xf418,
+ 0x08fc, 0x08d6, 0xf852, 0xff80, 0xffdd, 0xf3a4,
+ 0xfe54, 0x0f9f, 0x08a4, 0xf8d8, 0xf99f, 0x0572,
+ 0x0a12, 0x06cf, 0x03d1, 0x0681, 0x0c41, 0x071e,
+ 0x01dd, 0x0fbd, 0x1403, 0x03d7, 0x0484, 0x0fca,
+ 0x11b5, 0x193f, 0x1a1c, 0x0e6e, 0x1156, 0x1641,
+ 0x0ff8, 0x0fec, 0x1239, 0x1ad5, 0x22dd, 0x08ef,
+ 0xf81b, 0x1407, 0x14df, 0xf8af, 0xffcd, 0x0774,
+ 0xfb00, 0x05c4, 0x11c8, 0x08c6, 0x0889, 0x0b21,
+ 0x0463, 0x05a7, 0x100b, 0x1782, 0x1358, 0x0c3e,
+ 0x1149, 0x1190, 0x0bec, 0x14fa, 0x13e8, 0x0678,
+ 0x107d, 0x189a, 0x0eb8, 0x1369, 0x17ac, 0x107d,
+ 0x118e, 0x0c88, 0x0c5c, 0x1c25, 0x12e3, 0x0986,
+ 0x2066, 0x1a20, 0xfdcd, 0x0842, 0x1993, 0x1ac0,
+ 0x1ade, 0x0ee9, 0x0be9, 0x1829, 0x1408, 0x1472,
+ 0x19a4, 0x0b53, 0x10f8, 0x1dc5, 0x0c96, 0x161a,
+ 0x2e9d, 0x1c59, 0x186a, 0x2b12, 0x2048, 0x1edd,
+ 0x2641, 0x174a, 0x218d, 0x2fcf, 0x1c8a, 0x22fc,
+ 0x2bc3, 0x0cec, 0x0fe2, 0x2964, 0x1e47, 0x1da7,
+ 0x25dc, 0x1aec, 0x29a5, 0x3261, 0x14f3, 0x1ca3,
+ 0x3619, 0x1f99, 0x16bf, 0x2fa6, 0x29ff, 0x1598,
+ 0x1c09, 0x2f21, 0x3465, 0x1fb5, 0x0f45, 0x1dda,
+ 0x24e7, 0x193a, 0x1dbd, 0x1fe5, 0x0ffb, 0x1539,
+ 0x2703, 0x182a, 0x03f8, 0x1520, 0x22bf, 0x0a20,
+ 0x0067, 0x195e, 0x1e20, 0x0e36, 0x0a62, 0x080c,
+ 0x0e28, 0x1b47, 0x0b94, 0x0042, 0x151e, 0x0e09,
+ 0xf6a6, 0x06e0, 0x0f63, 0x0060, 0x0d91, 0x15a6,
+ 0xfe29, 0xff62, 0x1324, 0x0d92, 0x049b, 0x054f,
+ 0x021d, 0x0720, 0x0cf7, 0x0375, 0x045c, 0x0f7b,
+ 0x04b6, 0xfa3a, 0x04d2, 0x028b, 0xf812, 0x02d9,
+ 0x0b2f, 0x0b0a, 0x172a, 0x13ed, 0xfe19, 0x04bb,
+ 0x17ef, 0x0ced, 0xfe69, 0x0b3a, 0x1bae, 0x17a3,
+ 0x103f, 0x19a0, 0x1e54, 0x11a3, 0x12e0, 0x2155,
+ 0x1d6d, 0x1358, 0x1636, 0x1d20, 0x2257, 0x1e12,
+ 0x1461, 0x17ba, 0x19d2, 0x143f, 0x2141, 0x2e19,
+ 0x1f7e, 0x1509, 0x1cfc, 0x221d, 0x24c6, 0x253e,
+ 0x2195, 0x25a5, 0x28cc, 0x2363, 0x24d2, 0x2696,
+ 0x2231, 0x2a38, 0x311f, 0x226f, 0x1cf9, 0x2e87,
+ 0x3559, 0x2d51, 0x2de5, 0x31fe, 0x2b48, 0x1fc3,
+ 0x1cd3, 0x2777, 0x31df, 0x2b1b, 0x2191, 0x29f3,
+ 0x30af, 0x235f, 0x1c25, 0x2901, 0x30d9, 0x29a3,
+ 0x1e33, 0x18b1, 0x2258, 0x2681, 0x1338, 0x135d,
+ 0x2e16, 0x28f0, 0x171f, 0x286f, 0x2f65, 0x1889,
+ 0x1234, 0x180f, 0x16d2, 0x1a27, 0x1f20, 0x204f,
+ 0x19e1, 0x1051, 0x1ad4, 0x1f7b, 0x0497, 0xfe3e,
+ 0x1019, 0x0d58, 0x0ac4, 0x0a31, 0xfdf9, 0x0943,
+ 0x108c, 0xf949, 0xfec8, 0x0b26, 0xf4de, 0xf98e,
+ 0x0de5, 0xffa2, 0xfd2a, 0x05e5, 0xf8d2, 0xfbab,
+ 0x0909, 0x04f5, 0x04f7, 0x00a9, 0xf644, 0xff9a,
+ 0x0465, 0xfacd, 0xfc04, 0xfc5f, 0xf6c5, 0xf914,
+ 0xfefc, 0x0321, 0xfa75, 0xedb8, 0xf7aa, 0xfec2,
+ 0xf481, 0xf8d7, 0xfbbb, 0xf471, 0x03ef, 0x0e55,
+ 0xfb82, 0xf52a, 0x0169, 0x06c7, 0x037e, 0xfc58,
+ 0xf996, 0xfb0c, 0xfc1e, 0xff22, 0xfabd, 0xfa61,
+ 0x0682, 0xfc65, 0xf455, 0x0ebc, 0x0758, 0xe6ea,
+ 0xfa11, 0x06e6, 0xeb8f, 0xeedf, 0xfff7, 0xfced,
+ 0x0288, 0x02a1, 0xfabb, 0x04c2, 0x096e, 0x0459,
+ 0x05dd, 0x0257, 0x035b, 0x0954, 0x03c7, 0x0445,
+ 0x05bd, 0xfd66, 0x00ed, 0xfc8a, 0xef7d, 0x02bc,
+ 0x0b7f, 0xf3e8, 0xfea5, 0x100c, 0xf3c7, 0xe8f6,
+ 0xfeb6, 0xf813, 0xe328, 0xe704, 0xf2b1, 0xf1ec,
+ 0xebff, 0xeba3, 0xebc6, 0xea09, 0xf15d, 0xf716,
+ 0xed20, 0xe7b8, 0xee12, 0xeca6, 0xe6b2, 0xe825,
+ 0xead5, 0xec3b, 0xed45, 0xe632, 0xdaef, 0xdc04,
+ 0xe66d, 0xebf7, 0xf08f, 0xf635, 0xf283, 0xe84e,
+ 0xe2fb, 0xe96a, 0xf38f, 0xe895, 0xd3a0, 0xd723,
+ 0xe0c3, 0xe1d5, 0xf03a, 0xf31d, 0xdebe, 0xe330,
+ 0xf039, 0xddd4, 0xd6c6, 0xea39, 0xe843, 0xd3c0,
+ 0xd0b3, 0xda77, 0xdbbe, 0xdd21, 0xebb5, 0xeb6f,
+ 0xd81c, 0xdf4b, 0xea30, 0xd033, 0xcfc0, 0xf8a4,
+ 0xf7cb, 0xd821, 0xddb5, 0xf01f, 0xeaf1, 0xe4ab,
+ 0xebe2, 0xef60, 0xe6b5, 0xe4b4, 0xefa8, 0xf069,
+ 0xe82c, 0xecca, 0xf5ee, 0xf411, 0xed97, 0xecf5,
+ 0xef2d, 0xe767, 0xdf2c, 0xea70, 0xf58c, 0xed19,
+ 0xe469, 0xe277, 0xe1e1, 0xea96, 0xf2df, 0xea10,
+ 0xdd7b, 0xe2d1, 0xf180, 0xebf0, 0xda1a, 0xdf3f,
+ 0xe909, 0xdaf7, 0xd523, 0xe589, 0xec66, 0xe5de,
+ 0xe2a0, 0xe5e9, 0xe5d2, 0xd86e, 0xd4b9, 0xe772,
+ 0xe927, 0xdace, 0xe566, 0xee78, 0xd845, 0xcd66,
+ 0xdf63, 0xe71d, 0xdaef, 0xd728, 0xdf2c, 0xda99,
+ 0xcd9a, 0xcffb, 0xd615, 0xd22d, 0xd568, 0xdc7b,
+ 0xd5f9, 0xccea, 0xca56, 0xc9c9, 0xcdc1, 0xcff0,
+ 0xcb75, 0xcf1b, 0xd78b, 0xcf54, 0xc2c1, 0xc933,
+ 0xcfae, 0xc33a, 0xbd13, 0xc8c5, 0xccdc, 0xc93e,
+ 0xcf58, 0xd092, 0xc4e3, 0xc53e, 0xd340, 0xd2b0,
+ 0xc56a, 0xc5ef, 0xcd11, 0xc4c4, 0xc09f, 0xd403,
+ 0xdfb8, 0xd30c, 0xcc4d, 0xd240, 0xcfec, 0xcc24,
+ 0xd40b, 0xd7bc, 0xcba8, 0xc232, 0xcb47, 0xda9f,
+ 0xe066, 0xdf0c, 0xdcda, 0xdbf7, 0xdc2a, 0xd8a8,
+ 0xd6da, 0xe06c, 0xe569, 0xda04, 0xd6b3, 0xe3bc,
+ 0xe7be, 0xe1fd, 0xe463, 0xe84c, 0xe746, 0xe97b,
+ 0xe77f, 0xdde5, 0xe46b, 0xfa0c, 0xfb78, 0xec58,
+ 0xeeab, 0xf7ce, 0xefb3, 0xea17, 0xf46d, 0xf948,
+ 0xf403, 0xf1ec, 0xf301, 0xf639, 0xf89f, 0xf1de,
+ 0xf089, 0x00fb, 0x05e6, 0xf276, 0xea1c, 0xf43f,
+ 0xf444, 0xf182, 0x006a, 0x0c01, 0x00d7, 0xf202,
+ 0xf2a8, 0xfd9a, 0x025b, 0xf878, 0xeeef, 0xf563,
+ 0xfdf4, 0xfb9b, 0xf882, 0xf517, 0xec94, 0xecf0,
+ 0xf464, 0xf033, 0xee3c, 0xfc5a, 0xfd6b, 0xec1c,
+ 0xee24, 0xfd7b, 0xf536, 0xe785, 0xf1e5, 0xf85b,
+ 0xe66c, 0xdbbd, 0xe591, 0xeb02, 0xe8f4, 0xed91,
+ 0xefd9, 0xe801, 0xe3dc, 0xe7f0, 0xebf3, 0xee4a,
+ 0xea96, 0xde30, 0xd88d, 0xdfaa, 0xe41d, 0xe6f1,
+ 0xf1dd, 0xf3ff, 0xe59e, 0xe094, 0xe9c5, 0xeb1d,
+ 0xe820, 0xec23, 0xe9d0, 0xdf5b, 0xdca6, 0xdf28,
+ 0xe090, 0xe643, 0xea14, 0xe726, 0xe954, 0xeccf,
+ 0xe6c3, 0xe720, 0xf2ee, 0xf1da, 0xe5b0, 0xe705,
+ 0xf090, 0xf212, 0xf031, 0xee59, 0xe9fb, 0xe92f,
+ 0xebc5, 0xeacd, 0xec3d, 0xf469, 0xf7e4, 0xf0e8,
+ 0xe96f, 0xeb98, 0xf40d, 0xf6ea, 0xf50b, 0xf8e6,
+ 0xfbe9, 0xf522, 0xf16c, 0xf64d, 0xf65a, 0xf200,
+ 0xf162, 0xf27e, 0xfaa1, 0x082d, 0x059f, 0xfaa7,
+ 0x01a2, 0x06da, 0xf8a1, 0xf7ce, 0x06c2, 0x024d,
+ 0xf7de, 0x00bc, 0x0707, 0x01c8, 0x04cb, 0x0b45,
+ 0x0d41, 0x12d9, 0x0f8e, 0x016d, 0x0768, 0x168a,
+ 0x0aed, 0xfe22, 0x0a5f, 0x0d9f, 0xff1d, 0x0174,
+ 0x0ff4, 0x113f, 0x10de, 0x1617, 0x0e84, 0x020e,
+ 0x08bf, 0x152d, 0x0dbd, 0xff25, 0x0328, 0x107a,
+ 0x1004, 0x0987, 0x0c84, 0x0d24, 0x0534, 0x079e,
+ 0x12b9, 0x1071, 0x0933, 0x0dc7, 0x0eac, 0x04dc,
+ 0x0369, 0x0b08, 0x0f15, 0x0f9a, 0x0b8e, 0x04dd,
+ 0x03a2, 0x0191, 0xfdd0, 0x0633, 0x0e97, 0x0230,
+ 0xf47b, 0xf8e9, 0xfa48, 0xf379, 0xfb5c, 0x05c1,
+ 0xffbb, 0xf8cf, 0xf570, 0xf2ef, 0xf830, 0xf9d7,
+ 0xf465, 0xf2a5, 0xef0b, 0xed8b, 0xf8c0, 0xff0d,
+ 0xf3ee, 0xec16, 0xef94, 0xeec4, 0xf1b8, 0xfdb4,
+ 0xfb05, 0xf263, 0xf90b, 0xfabd, 0xef75, 0xf0f9,
+ 0x01e6, 0x0413, 0xf3d3, 0xee29, 0xf0de, 0xeeac,
+ 0xf0d6, 0xf456, 0xf6e7, 0xf842, 0xf05f, 0xea73,
+ 0xe9eb, 0xebf1, 0xf66c, 0xfa05, 0xf4aa, 0xf2b9,
+ 0xef25, 0xeedb, 0xf175, 0xf319, 0xfc3c, 0x0176,
+ 0xff77, 0x03cc, 0x0a72, 0x0a58, 0xfe6b, 0xf60f,
+ 0x00b5, 0x0593, 0xfdc8, 0x0257, 0x0bc2, 0x051a,
+ 0xfbbb, 0x0333, 0x0d16, 0x0d77, 0x1240, 0x195e,
+ 0x16f4, 0x0e5a, 0x0b9e, 0x0f88, 0x0aab, 0x0a34,
+ 0x1587, 0x0f5f, 0x0ac1, 0x1992, 0x177c, 0x0950,
+ 0x09d0, 0x128b, 0x10d9, 0x043b, 0x0979, 0x1508,
+ 0x0f65, 0x1179, 0x1202, 0x0811, 0x0f3a, 0x1a26,
+ 0x1aa6, 0x1600, 0x123d, 0x14bb, 0x08cb, 0x003e,
+ 0x10ef, 0x13d1, 0x0f1f, 0x1216, 0x07ad, 0x0546,
+ 0x0cb5, 0x0b6f, 0x0f50, 0x0da6, 0x02c7, 0x0319,
+ 0x03d1, 0xfd1f, 0xfccb, 0xfcd0, 0xf1bd, 0xf0b8,
+ 0x0013, 0x01c0, 0xfb51, 0xfeb7, 0xfdb6, 0xf346,
+ 0xe9f7, 0xed65, 0xf1d6, 0xebdc, 0xf1b2, 0xf5b8,
+ 0xec76, 0xf146, 0xf58f, 0xf56d, 0xf9f9, 0xf9b2,
+ 0x05cd, 0xffaf, 0xdfee, 0xe917, 0xfc87, 0xf999,
+ 0xfe9b, 0xf50e, 0xe6a1, 0xebc4, 0xf24a, 0xf92a,
+ 0xf4fa, 0xf5cb, 0x0608, 0xfac3, 0xf2af, 0x0060,
+ 0xf750, 0xfa8c, 0x1204, 0x0a07, 0xfb62, 0x0082,
+ 0x0787, 0x1024, 0x12c5, 0x09f6, 0x1144, 0x1e30,
+ 0x0ddb, 0x049b, 0x150e, 0x16fb, 0x1468, 0x159a,
+ 0x0ff3, 0x1927, 0x21cf, 0x1b4f, 0x174d, 0x147e,
+ 0x1afb, 0x1fdc, 0x15f5, 0x1578, 0x1bfd, 0x2287,
+ 0x20c9, 0x136a, 0x1cdf, 0x2557, 0x1913, 0x207c,
+ 0x2b6c, 0x327c, 0x38cf, 0x272f, 0x258a, 0x31f6,
+ 0x274b, 0x2798, 0x2da3, 0x2a41, 0x2d35, 0x29f6,
+ 0x2ed3, 0x371f, 0x2906, 0x255e, 0x2cd2, 0x2556,
+ 0x2153, 0x26b6, 0x2d1c, 0x3173, 0x29f2, 0x1f72,
+ 0x22db, 0x24d4, 0x1e69, 0x2748, 0x2941, 0x1533,
+ 0x1644, 0x1a45, 0x0dca, 0x1738, 0x22c1, 0x1fd7,
+ 0x1da6, 0x142f, 0x11ec, 0x10ce, 0x093e, 0x10a6,
+ 0x11c6, 0x10ea, 0x1a33, 0x0f29, 0x037b, 0x053f,
+ 0x095c, 0x1400, 0x0b26, 0xfc6a, 0x016c, 0xff0e,
+ 0xfdc3, 0x03eb, 0x02aa, 0x0225, 0xfed9, 0x02f4,
+ 0x08ad, 0xf9e9, 0xf853, 0x0447, 0xfe08, 0xfa7b,
+ 0xffff, 0xfeac, 0xfb46, 0xfae1, 0xf990, 0xf676,
+ 0xf841, 0xf8a3, 0xf735, 0xfac3, 0xf715, 0xf69e,
+ 0xf89e, 0xec07, 0xf0ad, 0xffc0, 0xf9a9, 0xf842,
+ 0x001c, 0x074c, 0x0ace, 0x0235, 0x0009, 0xff84,
+ 0xfc0b, 0x0308, 0xfe43, 0xfd69, 0x0f0e, 0x0e82,
+ 0x0778, 0x08c7, 0x0974, 0x0cd5, 0x0986, 0x0c47,
+ 0x1242, 0x0654, 0x05d6, 0x0f2a, 0x0a1b, 0x0703,
+ 0x0aa2, 0x12e0, 0x157a, 0x09ae, 0x03ea, 0x045e,
+ 0x0582, 0x0d90, 0x1528, 0x14fc, 0x09fb, 0x0627,
+ 0x0be5, 0x03dd, 0x0732, 0x1b03, 0x18a2, 0x08a0,
+ 0x0335, 0x0d52, 0x1042, 0x0352, 0x0f51, 0x1cca,
+ 0x0c28, 0x0cf9, 0x17a2, 0x125f, 0x14fe, 0x177e,
+ 0x1129, 0x0ffe, 0x1236, 0x0a51, 0xfe41, 0x06a1,
+ 0x0c7b, 0xfec2, 0xfed4, 0x03f7, 0x049a, 0x09f0,
+ 0x055a, 0x039c, 0x0233, 0xf668, 0xf7b6, 0xf93b,
+ 0xfc1f, 0x0ca9, 0x0833, 0xfc72, 0x01f6, 0xff0c,
+ 0xf583, 0xf909, 0x067f, 0x09b1, 0x0125, 0x0021,
+ 0xff45, 0xfdfd, 0xff51, 0xf755, 0xf679, 0xfba2,
+ 0xfcef, 0x01fe, 0xfa87, 0xf7a8, 0x041b, 0xfcd6,
+ 0xf5a7, 0xfb26, 0xf708, 0xf69a, 0xf72e, 0xf157,
+ 0xf0b2, 0xf569, 0xfd4d, 0xfdc8, 0xfcbc, 0x019c,
+ 0xfc6f, 0xf7ed, 0xfa92, 0xfed3, 0x05eb, 0xfdec,
+ 0xf787, 0xfe57, 0xf674, 0xf3d3, 0xfd68, 0xfae1,
+ 0xf62e, 0xf289, 0xf3ff, 0xf953, 0xf5ec, 0xf55b,
+ 0xf1d8, 0xeef0, 0xf758, 0xf02e, 0xe96a, 0xf59f,
+ 0xf7a2, 0xf4e9, 0xf86b, 0xfb82, 0xfdea, 0xfa19,
+ 0xf5e5, 0xf6f9, 0x012c, 0x0cd2, 0x03e3, 0xf9f1,
+ 0xfb36, 0xfcef, 0x0986, 0x0bf7, 0x008d, 0x0494,
+ 0x070c, 0x01d5, 0xfedb, 0xfd21, 0x04cd, 0x048e,
+ 0xfc76, 0x004d, 0x02ff, 0x0004, 0xf6e2, 0xf428,
+ 0x0649, 0x09c5, 0xfbb1, 0xf503, 0xf2da, 0xfe75,
+ 0x0516, 0xf8cd, 0xfb2a, 0x0521, 0x016b, 0xf9c7,
+ 0xf9b1, 0x0024, 0xfb8a, 0xf565, 0xf7fb, 0xf403,
+ 0xf587, 0xf897, 0xf2f8, 0xf760, 0xf8db, 0xf25f,
+ 0xf2d8, 0xf2fd, 0xf1b8, 0xeb1b, 0xe721, 0xeefb,
+ 0xedd8, 0xe964, 0xe962, 0xeaaa, 0xf558, 0xf371,
+ 0xed01, 0xf5f2, 0xf09c, 0xed77, 0xfbd0, 0xf66c,
+ 0xe8f6, 0xee82, 0xf912, 0xf5a5, 0xef1f, 0xf706,
+ 0xf441, 0xe543, 0xe77f, 0xef28, 0xf312, 0xf015,
+ 0xe71a, 0xe996, 0xe834, 0xe932, 0xfaf2, 0xfa03,
+ 0xed8c, 0xedaa, 0xf022, 0xf40b, 0xf1af, 0xf232,
+ 0xfd2f, 0xfc79, 0xfb9f, 0xff17, 0xf98c, 0xf8bc,
+ 0xf9de, 0xf9f9, 0xfc6c, 0xf8e9, 0xf913, 0xfc7c,
+ 0xfc53, 0xff05, 0x0087, 0xffc6, 0xfcda, 0xf9cc,
+ 0xf76a, 0xf2f1, 0xfb90, 0x016a, 0xf59e, 0xf69a,
+ 0xfadc, 0xfc53, 0x056c, 0xfbdd, 0xf615, 0x0016,
+ 0xf907, 0xf936, 0x01f8, 0x0001, 0x0625, 0x05bd,
+ 0xfc46, 0xfd27, 0x010e, 0x0686, 0x0030, 0xf48d,
+ 0x01b4, 0x0c6c, 0x00f7, 0xfe77, 0x0816, 0x029b,
+ 0xf3e3, 0xfa77, 0x08ce, 0x09ed, 0x0745, 0xfba7,
+ 0xf4b4, 0xfbc4, 0xf50f, 0xef02, 0xf593, 0xf56b,
+ 0xf79b, 0xf98b, 0xf237, 0xeb6b, 0xebf3, 0xf57c,
+ 0xf4ea, 0xec9b, 0xf075, 0xf095, 0xee71, 0xf118,
+ 0xf0f7, 0xf554, 0xf0af, 0xe8d4, 0xee54, 0xec17,
+ 0xef73, 0xf700, 0xe716, 0xe530, 0xf88c, 0xfa5c,
+ 0xf27e, 0xf11a, 0xf259, 0xeb51, 0xe40f, 0xefc7,
+ 0xfb83, 0xf4b4, 0xe507, 0xe1a4, 0xf1c6, 0xf4be,
+ 0xed60, 0xf366, 0xef1a, 0xe9cd, 0xf141, 0xec59,
+ 0xe70d, 0xe882, 0xe8f9, 0xf769, 0x028e, 0xf395,
+ 0xe237, 0xe71f, 0xf1a7, 0xf0cb, 0xf65c, 0xf972,
+ 0xea77, 0xe78b, 0xf1b7, 0xf3f7, 0xf2a6, 0xf16a,
+ 0xf4a9, 0xf6ba, 0xf6ab, 0xfb6e, 0xf7df, 0xf6a1,
+ 0xfc1b, 0xf722, 0xf82b, 0xf90e, 0xf40e, 0xf9fe,
+ 0xf30e, 0xefc5, 0x028c, 0xf8cc, 0xe587, 0xf2b9,
+ 0xfd66, 0xf81c, 0xfd70, 0x0d36, 0x051f, 0xef53,
+ 0xfbf6, 0x0844, 0xf889, 0xfe7f, 0x0bb0, 0x0077,
+ 0xfc1a, 0xfe84, 0xf605, 0xf564, 0x003f, 0x022f,
+ 0xfda5, 0xfbc3, 0xf711, 0xf652, 0xf9c0, 0xf7d8,
+ 0xf77d, 0xf8d4, 0xfc37, 0xfae9, 0xf25a, 0x0242,
+ 0x0cd7, 0xf469, 0xf9fc, 0x0c1a, 0xfa00, 0xf6a5,
+ 0x00b0, 0xfcf5, 0xff0b, 0xff37, 0xfd7e, 0xfb59,
+ 0xf336, 0xf660, 0xf825, 0xf546, 0xfb0e, 0xf4e3,
+ 0xf1cc, 0x00ae, 0xfe4b, 0xf19c, 0xf6eb, 0xfe09,
+ 0xf796, 0xefc0, 0xef1b, 0xefaf, 0xf0cd, 0xf52a,
+ 0xf68f, 0xec60, 0xe522, 0xf88b, 0x0389, 0xeec1,
+ 0xf193, 0x04f3, 0xf7d3, 0xe8d4, 0xee8a, 0xf930,
+ 0xfc2a, 0xef6c, 0xe899, 0xeca5, 0xed8f, 0xf42b,
+ 0xfa84, 0xfc53, 0xf7e2, 0xec80, 0xf72d, 0x00bb,
+ 0xebf2, 0xeb7d, 0xfc32, 0xf28e, 0xe936, 0xf1a1,
+ 0xf86b, 0xfa13, 0xfbc8, 0xfd21, 0xfa55, 0xf726,
+ 0xf9a6, 0xfd6e, 0xfb2f, 0xf949, 0x033e, 0x05ca,
+ 0xf257, 0xe84a, 0xf719, 0x0416, 0xfa31, 0xf07a,
+ 0xfeff, 0xffb0, 0xee60, 0xf80f, 0x0350, 0xfe4c,
+ 0xff03, 0xf6d0, 0xf26e, 0xfced, 0xfbdd, 0xfd0a,
+ 0x0268, 0xfb0a, 0xfb3b, 0x029b, 0xffad, 0xf887,
+ 0xfb64, 0x09fa, 0x0b6d, 0xfd1b, 0xfbb3, 0x060f,
+ 0x0be4, 0x0600, 0xfb5a, 0x01ad, 0x0ae7, 0x0064,
+ 0xffd5, 0x0ea9, 0x071a, 0xff29, 0x0f44, 0x0993,
+ 0xf867, 0x04f7, 0x0504, 0xf313, 0xf813, 0x0059,
+ 0x006b, 0xfec6, 0xf87c, 0xfd7c, 0x01b9, 0xf89b,
+ 0xf6a8, 0xfb1f, 0x00a2, 0x01ce, 0xfadb, 0xf8d3,
+ 0xf226, 0xecdb, 0xf7dc, 0xf830, 0xfa31, 0x0b42,
+ 0x001e, 0xeb09, 0xf3c0, 0xfba3, 0xf4e9, 0xf623,
+ 0x0078, 0x038d, 0xf808, 0xeeed, 0xf40f, 0xf6ff,
+ 0xf3f0, 0xf7b5, 0xf827, 0xedb1, 0xeb82, 0xf385,
+ 0xf3db, 0xed82, 0xf00b, 0xfa88, 0xf6b2, 0xecfd,
+ 0xf8b5, 0xffcd, 0xf303, 0xf15f, 0xf677, 0xf6f5,
+ 0xfb26, 0xfaed, 0xf60b, 0xf274, 0xf430, 0xfa34,
+ 0xf59c, 0xf422, 0xfbb9, 0xf760, 0xf9d2, 0x0209,
+ 0xfa63, 0xfdbb, 0x04ef, 0xf937, 0xf60a, 0xfb98,
+ 0xfb09, 0xf919, 0xf0f1, 0xefe8, 0xfd41, 0x0307,
+ 0x016c, 0xfedc, 0xf8ed, 0xf83d, 0xf887, 0xf50d,
+ 0xf946, 0xff0a, 0xfdba, 0xfff4, 0x06c1, 0x0907,
+ 0x032c, 0xfda6, 0x049f, 0x0848, 0xff0f, 0xfe20,
+ 0xff44, 0xfea3, 0x0be8, 0x0c1d, 0xfc5f, 0xff90,
+ 0x062e, 0x0744, 0x0ed8, 0x0a55, 0xff66, 0xff6a,
+ 0x001a, 0x0084, 0x02dd, 0x05c5, 0x079a, 0x02ea,
+ 0x019c, 0x03f9, 0x0023, 0x001d, 0x0283, 0x0264,
+ 0x04d7, 0xffad, 0xfad3, 0x0112, 0xfbea, 0xf311,
+ 0xfb85, 0xfd79, 0xf4bf, 0xf72a, 0xf8ce, 0xf300,
+ 0xf838, 0x021f, 0xfb7b, 0xec3e, 0xef03, 0x0022,
+ 0x004f, 0xf336, 0xf3b4, 0xf86c, 0xf682, 0xfcb4,
+ 0x0158, 0xf428, 0xef00, 0xfd50, 0xfa6e, 0xe5c5,
+ 0xe7d3, 0xf8a1, 0xf8f5, 0xefc7, 0xeece, 0xf7c9,
+ 0xf857, 0xea12, 0xe89c, 0xedee, 0xe57a, 0xedc4,
+ 0x0077, 0xf47d, 0xe84c, 0xf52e, 0xf70f, 0xea29,
+ 0xe8be, 0xee07, 0xf042, 0xfab4, 0x06d8, 0xfd05,
+ 0xf1e5, 0xfe0c, 0x005e, 0xf27c, 0xf688, 0x0270,
+ 0x05fa, 0x06e1, 0x003b, 0xfce5, 0x0179, 0xf995,
+ 0xf376, 0x004a, 0x06d7, 0x0091, 0x0220, 0x0619,
+ 0xfdca, 0xfbab, 0x0a03, 0x0790, 0xf849, 0x0327,
+ 0x0e8c, 0x0355, 0x02e5, 0x09e6, 0x07b6, 0x08a7,
+ 0x0a1b, 0x105b, 0x1766, 0x08b2, 0xfe4a, 0x05b3,
+ 0x0259, 0x065f, 0x16bb, 0x1019, 0x0667, 0x0d94,
+ 0x0ab9, 0x01f8, 0x081d, 0x1000, 0x0962, 0x0241,
+ 0x0a53, 0x0dcc, 0x0348, 0x02ed, 0x0976, 0x07b7,
+ 0x062d, 0x04bf, 0x02d5, 0x054d, 0x064c, 0x0736,
+ 0x06df, 0x0409, 0x0ad0, 0x0e1f, 0x00e4, 0xfa75,
+ 0xffe8, 0x0307, 0x03a6, 0x011d, 0xff89, 0x0241,
+ 0x02f9, 0x0546, 0x074e, 0x009c, 0xf9b0, 0xfaa5,
+ 0xff42, 0xfd6b, 0xf65f, 0xfc4e, 0x058d, 0xfe35,
+ 0xf92b, 0xfdb5, 0xfd3e, 0xfb72, 0xf9de, 0xfbd3,
+ 0xffee, 0xf3c8, 0xeb88, 0xfb77, 0x02cc, 0xfb47,
+ 0xf83e, 0xf68a, 0xf905, 0xf8e7, 0xf25d, 0xfb8e,
+ 0x0458, 0xf941, 0xf8c2, 0x0444, 0x01ae, 0xf791,
+ 0xf4e3, 0xfa6e, 0xfca5, 0xfb05, 0x016c, 0xfe0d,
+ 0xede0, 0xf013, 0xfaa5, 0xff87, 0x073d, 0xfd46,
+ 0xeee6, 0xfeb9, 0x0662, 0xf512, 0xf87f, 0x09e0,
+ 0x06e1, 0xfc28, 0xfdae, 0x026a, 0xfaea, 0xf282,
+ 0xfa5f, 0x050f, 0x060d, 0x04fd, 0x0522, 0x025b,
+ 0xfb32, 0xfc33, 0x06a7, 0x011d, 0xf784, 0x024a,
+ 0x026f, 0xf6e0, 0x0167, 0x052e, 0xf1d1, 0xf13f,
+ 0x05e7, 0x106d, 0x0963, 0xfd57, 0xfc3a, 0x0185,
+ 0xff8a, 0xf9f9, 0xfab9, 0x03d7, 0x0297, 0xf351,
+ 0xf7a2, 0x011d, 0xf1a2, 0xf288, 0x067c, 0x0322,
+ 0xfdd0, 0xfca6, 0xf122, 0xf808, 0x00b8, 0xf45d,
+ 0xf55b, 0xf7f8, 0xec62, 0xef90, 0xf35b, 0xf02b,
+ 0xf704, 0xf2a5, 0xec68, 0xf763, 0xf3e1, 0xe75d,
+ 0xeb3a, 0xf11d, 0xf358, 0xef82, 0xe970, 0xf192,
+ 0xf32e, 0xe8ef, 0xf005, 0xfc8d, 0xfe9d, 0xfa75,
+ 0xf05c, 0xf40a, 0xfd82, 0xf524, 0xf8c7, 0x03d8,
+ 0xf7f2, 0xf92f, 0x075c, 0xfd3b, 0xfa99, 0x08c5,
+ 0x01a8, 0xf43d, 0xfb8c, 0x0989, 0x0d2d, 0x0b83,
+ 0x0e40, 0x080c, 0xfa54, 0x014a, 0x0d26, 0x05a8,
+ 0xff64, 0x0007, 0x0478, 0x113d, 0x10f9, 0x07d7,
+ 0x0fa7, 0x15f7, 0x10a0, 0x0fd5, 0x0e80, 0x0bb3,
+ 0x0b57, 0x07e7, 0x0c37, 0x182c, 0x17a4, 0x0f91,
+ 0x0fd4, 0x1644, 0x189b, 0x1307, 0x10ce, 0x1596,
+ 0x1346, 0x0ed7, 0x164b, 0x1b69, 0x1240, 0x0c84,
+ 0x13aa, 0x18f6, 0x1894, 0x19a9, 0x168c, 0x1168,
+ 0x151e, 0x178b, 0x126d, 0x1122, 0x111a, 0x0fbb,
+ 0x1692, 0x1d67, 0x14ce, 0x0746, 0x0af0, 0x196f,
+ 0x18e1, 0x0ffa, 0x1183, 0x0e12, 0x0545, 0x0f4a,
+ 0x1a43, 0x0fcf, 0x09a5, 0x0fa2, 0x0673, 0xf9bf,
+ 0x0737, 0x1243, 0xff67, 0xf606, 0x0124, 0xf9d8,
+ 0xef4e, 0xfab7, 0x009a, 0xfc4a, 0xfafc, 0xf72d,
+ 0xfb76, 0xff9f, 0xef4a, 0xea88, 0xfbc1, 0xfe12,
+ 0xf7a2, 0xf77c, 0xf0b1, 0xef9c, 0xfba2, 0xfe99,
+ 0xf96e, 0xf865, 0xf4e2, 0xefa3, 0xf2d8, 0xfa74,
+ 0xfd91, 0xfd6e, 0xf8e3, 0xefa2, 0xf0d8, 0xfc2c,
+ 0xfad5, 0xefdb, 0xeea0, 0xf48a, 0xf526, 0xebc9,
+ 0xe596, 0xee5d, 0xf403, 0xf30a, 0xfa42, 0xf372,
+ 0xddcc, 0xe34b, 0xf494, 0xf0b7, 0xf30e, 0x00bc,
+ 0xf9bc, 0xea8c, 0xed1d, 0xf5ec, 0xf97a, 0xfca5,
+ 0xf9e7, 0xedc1, 0xeb9e, 0xf811, 0xfa95, 0xf410,
+ 0xfaf0, 0x0657, 0x031a, 0xf9a3, 0xfa80, 0x0264,
+ 0x01db, 0xfcfb, 0x0232, 0x0859, 0x05a5, 0x0171,
+ 0xfdae, 0xfee7, 0x0932, 0x0f79, 0x0dbb, 0x09c7,
+ 0x0285, 0x000b, 0x058a, 0x082b, 0x07f6, 0x05ba,
+ 0x035c, 0x09cf, 0x0b30, 0x018e, 0x049c, 0x0b27,
+ 0x0599, 0x0c5d, 0x1850, 0x0fec, 0x0bbb, 0x1574,
+ 0x15ed, 0x146b, 0x1668, 0x10f6, 0x0ed5, 0x1252,
+ 0x10c7, 0x0f75, 0x0f55, 0x10b7, 0x14df, 0x1052,
+ 0x0d92, 0x1524, 0x0ed6, 0x0465, 0x096f, 0x0a1d,
+ 0x0b88, 0x1260, 0x0887, 0x041c, 0x0b03, 0xff75,
+ 0xfd20, 0x0a88, 0x0363, 0xff4c, 0x05dd, 0xfe3f,
+ 0xfee0, 0x00d1, 0xf133, 0xf1cb, 0xfb39, 0xf772,
+ 0xf952, 0xf79b, 0xf283, 0xfad7, 0xf890, 0xef4e,
+ 0xf0d7, 0xec8a, 0xee2a, 0xf886, 0xf4d1, 0xefec,
+ 0xe800, 0xdc89, 0xe655, 0xe87d, 0xde7d, 0xee76,
+ 0xf2c0, 0xe1ae, 0xe85d, 0xea8f, 0xe0a8, 0xe8d8,
+ 0xe84b, 0xe62d, 0xf433, 0xedbc, 0xe5e1, 0xf0f1,
+ 0xe83f, 0xe166, 0xf466, 0xf66b, 0xe634, 0xe3b0,
+ 0xee7b, 0xf5af, 0xee5d, 0xf046, 0x06c7, 0x07f1,
+ 0xf1fb, 0xeb98, 0xf0b6, 0xf4ce, 0xfac6, 0xfe1f,
+ 0xfcc4, 0xf5da, 0xf3b2, 0x001b, 0x05b0, 0xfffd,
+ 0x0322, 0x0639, 0x0243, 0x011c, 0xff71, 0x0158,
+ 0x0783, 0x0297, 0xfec4, 0x0c54, 0x1329, 0x0447,
+ 0xfdd1, 0x0da7, 0x1234, 0x071b, 0x0bf1, 0x0fe3,
+ 0x048a, 0x0b97, 0x14fe, 0x05af, 0x030b, 0x0bc9,
+ 0x0049, 0xfaf4, 0x0662, 0x0acb, 0x0cfa, 0x1274,
+ 0x152d, 0x10e2, 0x0355, 0x005f, 0x0ac7, 0x0878,
+ 0x03a0, 0x0683, 0xfdb5, 0xf829, 0x02d3, 0x03e0,
+ 0xfda3, 0x0231, 0x071b, 0x01c4, 0xf73d, 0xf836,
+ 0x069c, 0x063f, 0xfae8, 0x0069, 0x036b, 0xf9c7,
+ 0xfec2, 0x067c, 0x0131, 0x027f, 0x0469, 0x006d,
+ 0x06e5, 0x07de, 0xfcd0, 0xfee9, 0x0258, 0xfb92,
+ 0xfe4a, 0x0203, 0xfd6b, 0xfe22, 0xfee9, 0xfdb1,
+ 0x00e1, 0x0142, 0x02d6, 0x0481, 0xfcda, 0xfcdd,
+ 0x0684, 0x05a7, 0xfe5f, 0xf79b, 0xf556, 0xfced,
+ 0x0162, 0x0104, 0xfe62, 0xf3b4, 0xf901, 0x0ac0,
+ 0x037e, 0xfbf8, 0x0570, 0x0019, 0xfcf3, 0x0812,
+ 0x04e8, 0x01f7, 0x085d, 0x01cb, 0xf9c7, 0xfd93,
+ 0x077e, 0x0ead, 0x04bc, 0xfd0f, 0x09d2, 0x0c20,
+ 0x0097, 0xff02, 0x0171, 0x06bf, 0x0e5a, 0x0cf1,
+ 0x0b1e, 0x09a7, 0x0214, 0x00ec, 0x05a1, 0x08c2,
+ 0x0b27, 0x05e8, 0xff52, 0x008c, 0x020d, 0x07da,
+ 0x0fcb, 0x0ba6, 0x04f0, 0x02ad, 0x01f6, 0x0a8d,
+ 0x1219, 0x0d0e, 0x0816, 0x06cb, 0x0b9c, 0x16b0,
+ 0x1196, 0x0447, 0x09bc, 0x0ea6, 0x08de, 0x0dee,
+ 0x116c, 0x0785, 0x04fd, 0x08e2, 0x088e, 0x0847,
+ 0x0234, 0xfb9d, 0x0405, 0x0d47, 0x0b1f, 0x0630,
+ 0x003d, 0xfe17, 0x0030, 0xfdc1, 0x0178, 0x0827,
+ 0xff2e, 0xfbca, 0x0546, 0xfcb4, 0xf037, 0xfcd1,
+ 0x0c3f, 0x0632, 0xf867, 0xfb73, 0x0353, 0xf5bd,
+ 0xf09b, 0x05c9, 0x07dd, 0xfab0, 0xfdd9, 0xfc12,
+ 0xf901, 0x0263, 0xfede, 0xf9bf, 0xffa6, 0xf8a8,
+ 0xf4e8, 0xff91, 0x005a, 0xfefa, 0xfdd9, 0xf377,
+ 0xf427, 0xfd1d, 0xfe5a, 0xfe09, 0xf60c, 0xef01,
+ 0xf7b6, 0xfa5a, 0xf94e, 0x01b7, 0xfccc, 0xf5dd,
+ 0x01a2, 0x0420, 0xfabd, 0xfb56, 0xfdd4, 0xff5d,
+ 0x060d, 0x0945, 0x0413, 0xfe20, 0x0022, 0x0229,
+ 0xffb3, 0x095f, 0x10ba, 0x0145, 0xfa64, 0x01ce,
+ 0x0049, 0x098a, 0x17f1, 0x0bc9, 0xfede, 0x0415,
+ 0x05f7, 0x02db, 0xfead, 0xfd20, 0x08d8, 0x1231,
+ 0x0a96, 0x024c, 0x062f, 0x0e67, 0x0b4b, 0x0208,
+ 0x065e, 0x0c9e, 0x0530, 0x004e, 0x04e6, 0x09fa,
+ 0x0b61, 0x0663, 0x01c2, 0x0325, 0x0832, 0x10cd,
+ 0x0f29, 0x003d, 0xfe6f, 0x079c, 0x06ac, 0x03c6,
+ 0x0551, 0x06e9, 0x079c, 0x0264, 0x0070, 0x06c7,
+ 0x01c1, 0xf9f9, 0x0651, 0x1078, 0x0299, 0xf22a,
+ 0xf3ec, 0xfd2d, 0xfbc0, 0xf79e, 0xff84, 0x02b4,
+ 0xf6b8, 0xf49c, 0xfede, 0xfd5a, 0xf82f, 0xfd4d,
+ 0xfdf3, 0xf964, 0xf9eb, 0xf8f9, 0xf8bd, 0xf99c,
+ 0xf231, 0xf131, 0xf852, 0xf376, 0xf2ef, 0xfd9a,
+ 0xf973, 0xf110, 0xf50c, 0xf8bb, 0xf647, 0xea51,
+ 0xe51b, 0xfb38, 0x068e, 0xf406, 0xecfb, 0xf1c7,
+ 0xee6c, 0xf137, 0xfab9, 0xfda9, 0xf47a, 0xe7f6,
+ 0xef66, 0xfe62, 0xfcc9, 0xf961, 0xf620, 0xef48,
+ 0xf407, 0xf8f1, 0xf9f9, 0x0059, 0xf907, 0xf191,
+ 0xfea1, 0xfff2, 0xf8ad, 0xff96, 0xfe00, 0xf9ba,
+ 0x013b, 0xfe10, 0xf8e0, 0xfe64, 0xfd90, 0xfeed,
+ 0x07ae, 0x0589, 0xff11, 0x010d, 0x05ea, 0x07e3,
+ 0x08c5, 0x0c0b, 0x07b4, 0xfb0b, 0xfbe1, 0x04ce,
+ 0x0732, 0x0cc4, 0x0bba, 0x01b2, 0x0610, 0x08c9,
+ 0xffad, 0x073d, 0x1173, 0x09c1, 0x088f, 0x0f76,
+ 0x0d22, 0x064c, 0x039d, 0x0b46, 0x1207, 0x0a69,
+ 0x09e4, 0x1184, 0x061e, 0xf9e9, 0x0350, 0x0d20,
+ 0x0a11, 0x0161, 0xfd42, 0x0303, 0x076d, 0x0679,
+ 0x04c5, 0xfd23, 0xfa53, 0x03fe, 0x0416, 0xfb0a,
+ 0xfd6b, 0x0276, 0xfcf0, 0xf59a, 0xf916, 0x045d,
+ 0x0589, 0xfc86, 0xfbae, 0x01ad, 0x0178, 0xf9b5,
+ 0xf40b, 0xf9c7, 0xfe26, 0xf824, 0xfc6f, 0x04e7,
+ 0xf747, 0xeaad, 0xf49d, 0xf9eb, 0xf4bc, 0xf8a8,
+ 0xfa2b, 0xee18, 0xe955, 0xf285, 0xf5d0, 0xf0ec,
+ 0xf25d, 0xf925, 0xfb7c, 0xf6df, 0xeeea, 0xee17,
+ 0xf87f, 0xfe52, 0xf562, 0xedbe, 0xf270, 0xf469,
+ 0xee4f, 0xf140, 0xfc3b, 0xfcfd, 0xf3d4, 0xed20,
+ 0xefef, 0xf85d, 0xf798, 0xeeed, 0xefd2, 0xf61b,
+ 0xf417, 0xf235, 0xfab1, 0x01cb, 0xfb06, 0xf2dd,
+ 0xf5ab, 0xf7e0, 0xf849, 0x0163, 0x05c0, 0xfd61,
+ 0xf9e1, 0xfdfc, 0xfdc1, 0xfa9a, 0xfcbe, 0x03a6,
+ 0x048a, 0xfced, 0xfb00, 0x0241, 0x05da, 0x0665,
+ 0x0cfb, 0x0db2, 0x017b, 0x0113, 0x0b8c, 0x0470,
+ 0xffe6, 0x0df7, 0x0ca9, 0x0500, 0x0cef, 0x091f,
+ 0x04bd, 0x133c, 0x0f19, 0xffe2, 0x0913, 0x10eb,
+ 0x0a3b, 0x0b35, 0x115b, 0x1071, 0x07b4, 0x0495,
+ 0x0d64, 0x0b97, 0x033e, 0x0c73, 0x1145, 0x0495,
+ 0xff53, 0x004b, 0xfde5, 0x0289, 0x0ade, 0x0b18,
+ 0x06ef, 0x0502, 0xfff1, 0xf7ff, 0xfc81, 0x063e,
+ 0x014d, 0xfac2, 0xfc13, 0xfa2b, 0xfa04, 0xfa4c,
+ 0xf6a8, 0xfe7c, 0x0640, 0xfb66, 0xf3e8, 0xf66d,
+ 0xf385, 0xf37d, 0xf696, 0xf274, 0xf363, 0xf9ae,
+ 0xf4e7, 0xf07d, 0xf8ef, 0xfaff, 0xf03d, 0xebbc,
+ 0xef2a, 0xefda, 0xef5e, 0xf1dc, 0xf609, 0xf366,
+ 0xead6, 0xefc1, 0xf93d, 0xef34, 0xe71c, 0xef48,
+ 0xf2ce, 0xf2e5, 0xef81, 0xe761, 0xf3ce, 0x00e0,
+ 0xf1d3, 0xedcf, 0xf844, 0xf12e, 0xf181, 0xfab6,
+ 0xf225, 0xf195, 0x0065, 0x02d2, 0xfaac, 0xf349,
+ 0xf7fe, 0x066b, 0x04af, 0xfa78, 0xf885, 0xf700,
+ 0xfdbe, 0x0293, 0xf98e, 0x017a, 0x0afd, 0xfccf,
+ 0xfd6c, 0x02ed, 0xf8e0, 0x06dd, 0x119e, 0xfbae,
+ 0xfe63, 0x0fab, 0x0314, 0xfb68, 0x0427, 0x05c5,
+ 0x044a, 0x00f6, 0x0026, 0x0519, 0x07a8, 0x0f34,
+ 0x113c, 0x0314, 0x04a7, 0x1090, 0x0375, 0xf7e0,
+ 0x091d, 0x15c8, 0x0b70, 0x0756, 0x0c72, 0x0208,
+ 0x003c, 0x1180, 0x05ae, 0xf2d1, 0x043c, 0x0879,
+ 0xf94a, 0xff96, 0xfeb3, 0xf5ab, 0x009b, 0x0104,
+ 0xf4b6, 0xf7d1, 0xfdaf, 0xfa6a, 0xf244, 0xf0f1,
+ 0xf8c2, 0xf461, 0xf0f1, 0xfac8, 0xf2de, 0xea94,
+ 0xf59d, 0xef14, 0xe52c, 0xf1b7, 0xf724, 0xf63e,
+ 0xf987, 0xf241, 0xeba7, 0xeb9f, 0xe803, 0xea69,
+ 0xf4f2, 0xf97f, 0xeea7, 0xe0a6, 0xe6c5, 0xf272,
+ 0xf1ac, 0xf6e5, 0xfa9a, 0xed0e, 0xe642, 0xebf8,
+ 0xedcb, 0xee64, 0xf1ae, 0xf492, 0xf1de, 0xebd3,
+ 0xf09e, 0xf930, 0xf4aa, 0xef32, 0xf5f1, 0xfca4,
+ 0xf790, 0xf25f, 0xf6d7, 0xf73e, 0xf5d9, 0xfc2e,
+ 0xf6eb, 0xef67, 0xfd3d, 0x0354, 0xfb4a, 0x00c2,
+ 0x0063, 0xf369, 0xfa06, 0x08d1, 0x04eb, 0xfcaf,
+ 0x0088, 0x0675, 0x00fd, 0xf74c, 0xfb36, 0x08dd,
+ 0x0a77, 0xffeb, 0xfc6a, 0xfbe2, 0xf5af, 0xfafe,
+ 0x0592, 0x008a, 0xfe04, 0x019d, 0xfc44, 0xffaf,
+ 0x0456, 0xf8c4, 0xfc00, 0x06a4, 0xf90e, 0xf0c5,
+ 0xf8f1, 0xf848, 0xf36b, 0xf25b, 0xf4c8, 0xf496,
+ 0xec5b, 0xf205, 0xfd9d, 0xf427, 0xf1b1, 0xfaa2,
+ 0xf188, 0xeaee, 0xf029, 0xf129, 0xf800, 0xfa43,
+ 0xf1f5, 0xfae2, 0xffe1, 0xeb5a, 0xeb0a, 0xfec8,
+ 0xfcd4, 0xf807, 0xf8d6, 0xeecf, 0xf326, 0xfc16,
+ 0xedf6, 0xf0dd, 0x05ee, 0xff0d, 0xf44b, 0xfb84,
+ 0xfab4, 0xfac7, 0x0339, 0xfd66, 0xf4d6, 0xfb29,
+ 0x01d2, 0xff38, 0xf74c, 0xf531, 0xfca5, 0x009a,
+ 0xfff6, 0xfa2a, 0xf374, 0xff64, 0x0492, 0xf5b8,
+ 0xfcdf, 0x05ed, 0xf7d7, 0xf8ae, 0xffef, 0x0208,
+ 0x0c94, 0x055d, 0xfcea, 0x0c31, 0x0a26, 0x0212,
+ 0x1093, 0x1062, 0x070a, 0x1000, 0x0d69, 0x021f,
+ 0x0f2c, 0x1bfb, 0x13c0, 0x0f95, 0x11b1, 0x0b5c,
+ 0x0959, 0x141b, 0x194b, 0x14db, 0x1709, 0x1700,
+ 0x0c8b, 0x0c9e, 0x12fe, 0x1318, 0x15c0, 0x1103,
+ 0x0893, 0x0e50, 0x1221, 0x10b6, 0x1267, 0x0d99,
+ 0x0a8b, 0x0f11, 0x0f2f, 0x0a81, 0x07a1, 0x0a4a,
+ 0x0b48, 0x06c3, 0x0776, 0x0a74, 0x0b08, 0x0e59,
+ 0x0d0f, 0x0497, 0x0314, 0x0b63, 0x0cb8, 0x061a,
+ 0x0a8b, 0x12d1, 0x0f82, 0x09d9, 0x0751, 0x063e,
+ 0x0606, 0x0924, 0x10fe, 0x0c15, 0xfeb6, 0x0171,
+ 0x0503, 0xffb1, 0x02f2, 0x0503, 0xfde5, 0xfdb9,
+ 0x006d, 0xf9e6, 0xf847, 0xff98, 0xfb6d, 0xf11f,
+ 0xf4b8, 0xfee3, 0xfd80, 0xf19e, 0xf064, 0xf654,
+ 0xf154, 0xf300, 0xf8eb, 0xf20c, 0xf3bc, 0xf725,
+ 0xefe4, 0xf2e9, 0xf417, 0xeb8c, 0xeaaf, 0xef87,
+ 0xf884, 0xfb83, 0xf374, 0xf32e, 0xf429, 0xf106,
+ 0xf940, 0x015d, 0xfc31, 0xf567, 0xf551, 0xf78f,
+ 0xf4fe, 0xefbf, 0xf477, 0x007f, 0xfd84, 0xf292,
+ 0xf5fc, 0xf7de, 0xf2d9, 0xf4a3, 0xf1d8, 0xeebb,
+ 0xf666, 0xfba2, 0xf977, 0xf30b, 0xf4ea, 0x0286,
+ 0x0188, 0xf2ef, 0xf236, 0xff5d, 0x014f, 0xf439,
+ 0xfc22, 0x1239, 0x0a2d, 0xfa5d, 0xff59, 0x0402,
+ 0x039d, 0x093f, 0x0dbc, 0x04ae, 0x00cf, 0x11b6,
+ 0x12fa, 0x0486, 0x0f9c, 0x1f10, 0x16ce, 0x0c2e,
+ 0x0e0a, 0x1404, 0x1630, 0x18db, 0x199b, 0x11a3,
+ 0x0dab, 0x13b8, 0x16f5, 0x11ee, 0x1027, 0x176d,
+ 0x186f, 0x12bf, 0x1027, 0x0ddf, 0x1162, 0x1305,
+ 0x0d91, 0x1235, 0x15b0, 0x102d, 0x0cbc, 0x070b,
+ 0x0832, 0x0e68, 0x0c00, 0x0c6f, 0x0cc6, 0x07f0,
+ 0x0509, 0x0114, 0x017d, 0x0170, 0xfc89, 0x00f2,
+ 0x037e, 0xfc22, 0xfb45, 0xfff2, 0xff18, 0xf975,
+ 0xf8d3, 0xfa68, 0xf5c5, 0xf46e, 0xf64b, 0xf341,
+ 0xeffa, 0xef97, 0xf174, 0xf0d9, 0xf04f, 0xf1e6,
+ 0xee15, 0xee08, 0xed3e, 0xe5fd, 0xebee, 0xee76,
+ 0xeb85, 0xf8e3, 0xf477, 0xe32a, 0xe9b2, 0xec52,
+ 0xe69e, 0xec35, 0xeebe, 0xee5e, 0xeeec, 0xe83f,
+ 0xe523, 0xecdd, 0xef8e, 0xed38, 0xf11d, 0xed36,
+ 0xeb17, 0xf87b, 0xf292, 0xe8a1, 0xf90e, 0xf987,
+ 0xed7f, 0xf5b7, 0xf9d4, 0xf44c, 0xf367, 0xf36d,
+ 0xf4de, 0xf81b, 0xfb5e, 0xfe78, 0x0170, 0x0093,
+ 0xfc99, 0xfd31, 0xfbe4, 0xfbdb, 0x00df, 0xff8b,
+ 0x07c1, 0x0eaf, 0xfc4a, 0xf952, 0x090a, 0x08c7,
+ 0x05c9, 0x05d2, 0x068b, 0x088e, 0x052e, 0x0628,
+ 0x0332, 0xfd4f, 0x0afe, 0x14cf, 0x0b20, 0x04ea,
+ 0x0744, 0x0b9b, 0x0dc0, 0x0e6f, 0x0f94, 0x0ed9,
+ 0x0f0e, 0x1036, 0x11c6, 0x1192, 0x0c91, 0x0a7c,
+ 0x0c4a, 0x0f3c, 0x1005, 0x0cc7, 0x0fcb, 0x1056,
+ 0x0c55, 0x0fbb, 0x0c3e, 0x0b7a, 0x11c1, 0x09a7,
+ 0x08dd, 0x0c91, 0x063c, 0x0b85, 0x0a8e, 0x072f,
+ 0x0e9b, 0xfef3, 0xf9e1, 0x1020, 0x065a, 0xf467,
+ 0x01cb, 0x0c6f, 0x0815, 0x04a2, 0x03e1, 0x02f0,
+ 0x036a, 0x03de, 0x0037, 0x009c, 0x0917, 0x08f5,
+ 0xf918, 0xf469, 0x02ca, 0x01ba, 0xf88e, 0xfc0b,
+ 0xf6de, 0xf4a3, 0xfc54, 0xf7b8, 0xf5d6, 0xf690,
+ 0xf49f, 0xfae5, 0xf866, 0xf45e, 0xf653, 0xf425,
+ 0xfbdb, 0xfb4b, 0xf17c, 0xf9c4, 0xfa3d, 0xf7a3,
+ 0x00d2, 0xf7dc, 0xf094, 0xfa92, 0xf78b, 0xef0b,
+ 0xf616, 0x0307, 0x016a, 0xf575, 0xf490, 0xf866,
+ 0xf6f8, 0xfb24, 0x03f6, 0x00f0, 0xf7a2, 0xfccc,
+ 0x0078, 0xf815, 0xfa94, 0xfff7, 0xff1c, 0x0022,
+ 0xfdfb, 0x00bf, 0x0753, 0x0952, 0x0920, 0x02d3,
+ 0x07c7, 0x0fce, 0x03dd, 0x04d8, 0x102f, 0x1054,
+ 0x131b, 0x093f, 0x018e, 0x109c, 0x12fd, 0x1116,
+ 0x17a9, 0x1000, 0x0a7e, 0x0fa6, 0x0cf8, 0x083e,
+ 0x0c61, 0x0f90, 0x0c5a, 0x0f1e, 0x1037, 0x0976,
+ 0x0ba5, 0x0ddc, 0x0d47, 0x12e4, 0x0f09, 0x07a4,
+ 0x0891, 0x0915, 0x070b, 0x04cc, 0x0a9c, 0x0d86,
+ 0x037a, 0x036a, 0x0852, 0x0583, 0x0259, 0xfece,
+ 0x062f, 0x0a44, 0xfd77, 0x0015, 0x0895, 0x001a,
+ 0xfa94, 0xfef7, 0x04cf, 0x0252, 0xfe3c, 0x01f5,
+ 0xfb9a, 0xf429, 0xfadc, 0xfde9, 0xfa39, 0xf7b8,
+ 0xfc29, 0x012c, 0xf9f7, 0xf249, 0xeec6, 0xf0e4,
+ 0xf812, 0xf38d, 0xf3ca, 0xfa67, 0xf32d, 0xf420,
+ 0xf616, 0xeca9, 0xf526, 0xfffc, 0xf773, 0xf01f,
+ 0xf325, 0xfaa2, 0xfe48, 0xf961, 0xf314, 0xf966,
+ 0x0281, 0xf769, 0xf291, 0xfed8, 0xfc1c, 0xfa24,
+ 0xff29, 0xf7e9, 0xf88d, 0x0090, 0x0002, 0xffc8,
+ 0x019c, 0xfcbe, 0xf2c8, 0xfb52, 0x087b, 0xfd0a,
+ 0x004d, 0x0fbd, 0x03cd, 0xfb93, 0xfdb9, 0x017e,
+ 0x12d9, 0x10d9, 0xfeca, 0x01b8, 0x0591, 0xfc86,
+ 0xfc57, 0x0a07, 0x1172, 0x0a6e, 0x0386, 0x02eb,
+ 0x08b5, 0x0c71, 0x0896, 0x0cae, 0x1267, 0x0ee4,
+ 0x0830, 0xfcb9, 0xfa08, 0x0619, 0x122e, 0x12a2,
+ 0x0328, 0x02d1, 0x11f0, 0x09de, 0x0296, 0x09a7,
+ 0x0983, 0x0ae9, 0x09d4, 0x08b9, 0x0c4d, 0x0704,
+ 0x09e6, 0x0f50, 0x073a, 0x084c, 0x0ce4, 0x0b46,
+ 0x0b9b, 0x079b, 0x04df, 0x06bf, 0x0709, 0x03e2,
+ 0xfcbf, 0xfda7, 0x03f5, 0x026f, 0xfe76, 0xfb3e,
+ 0xf8af, 0xf927, 0xfe15, 0xfeea, 0xf657, 0xf929,
+ 0xffe4, 0xf8f1, 0xf752, 0xf684, 0xf58e, 0xfc65,
+ 0xf7fe, 0xf958, 0x0155, 0xf5cc, 0xf222, 0xf875,
+ 0xf5cf, 0xfa26, 0x000c, 0xfbc6, 0xf201, 0xf2a8,
+ 0xffdc, 0xf91f, 0xef14, 0xfddc, 0x0183, 0xf7b4,
+ 0xf95c, 0xfa9f, 0xf74f, 0xf91d, 0xfba6, 0xf4cb,
+ 0xf2ef, 0xffeb, 0xffdf, 0xf265, 0xf156, 0xfd14,
+ 0x06de, 0xffac, 0xf85e, 0xff61, 0xfcde, 0xf763,
+ 0xfe77, 0x0211, 0xfd58, 0xfb3d, 0x01f8, 0x00af,
+ 0xf7ba, 0xfe59, 0x025c, 0x030d, 0x0bea, 0x02ce,
+ 0xfe1e, 0x07ee, 0xfd6b, 0xfc4d, 0x0fbc, 0x10d7,
+ 0x0639, 0x02e1, 0x0566, 0x0745, 0x085d, 0x08c0,
+ 0x0331, 0x06cc, 0x0dd4, 0x049a, 0x030c, 0x0d52,
+ 0x121f, 0x14ac, 0x0de3, 0x06eb, 0x0fef, 0x14b3,
+ 0x0a98, 0x07e6, 0x144d, 0x17a1, 0x0f50, 0x0bd6,
+ 0x0919, 0x0d9e, 0x1435, 0x0e80, 0x10b0, 0x124a,
+ 0x0917, 0x097c, 0x0654, 0x0402, 0x0b9b, 0x05f4,
+ 0x0364, 0x08a4, 0x00be, 0xfbed, 0x0059, 0x040e,
+ 0x035a, 0x010a, 0x0631, 0x0761, 0x0218, 0xfdd9,
+ 0xf96e, 0x02e8, 0x091a, 0xf9e4, 0xf9bc, 0x05b6,
+ 0xfceb, 0xf44a, 0x00e8, 0x07f7, 0xfa91, 0xf7f5,
+ 0x043f, 0x019e, 0xf6b8, 0xf608, 0xfded, 0xfd2b,
+ 0xef31, 0xf136, 0xfa9c, 0xf53e, 0xf8ff, 0xfffe,
+ 0xf80e, 0xef75, 0xf06b, 0xfa6e, 0xf839, 0xf134,
+ 0x00cb, 0x0303, 0xf0af, 0xf07d, 0xf33f, 0xeea5,
+ 0xf30e, 0xfc76, 0x0145, 0xfb92, 0xf205, 0xf16b,
+ 0xfa21, 0xfa0c, 0xe9f7, 0xecff, 0x0038, 0xfb3f,
+ 0xf246, 0xf5ae, 0xf4b0, 0xf8b1, 0xffe2, 0xfdda,
+ 0xfb9c, 0xfd5f, 0xfacf, 0xf855, 0x01f6, 0x057e,
+ 0xff1a, 0x0719, 0x086f, 0xfd9b, 0x0132, 0x01b1,
+ 0xfefc, 0x053e, 0x0353, 0x023b, 0x05a2, 0x0214,
+ 0x029a, 0x07e9, 0x0a93, 0x0b38, 0x0a38, 0x03d2,
+ 0xfbe0, 0x0572, 0x103d, 0x0669, 0x0590, 0x1085,
+ 0x0dcf, 0x05d2, 0x068c, 0x0e13, 0x0d9f, 0x0720,
+ 0x0b57, 0x0dea, 0x08c1, 0x08c5, 0x0d00, 0x0c9f,
+ 0x034b, 0x0418, 0x0d5f, 0x0336, 0xff89, 0x0e4d,
+ 0x0b7c, 0x045e, 0x0b73, 0x0910, 0xfc02, 0xfd1e,
+ 0x07ce, 0x0398, 0x01a6, 0x0d79, 0x08be, 0xfe16,
+ 0x0277, 0x066b, 0x0619, 0xfea9, 0xf830, 0x054b,
+ 0x0f37, 0x030c, 0xf9de, 0x0300, 0x06cc, 0xfacb,
+ 0xf92c, 0xff40, 0xfc16, 0xfac6, 0xf921, 0xf81a,
+ 0xff6d, 0x0098, 0xfaca, 0xf798, 0xf9f0, 0xfac4,
+ 0xf0b0, 0xf276, 0xff6a, 0xfc97, 0xfc2e, 0x0030,
+ 0xf8b9, 0xf792, 0xf8ec, 0xf51e, 0xfaef, 0xff63,
+ 0xf75b, 0xf35a, 0xf6a2, 0xf3db, 0xf27d, 0xf70f,
+ 0xf490, 0xf6ee, 0xfad1, 0xed8f, 0xed60, 0xfc71,
+ 0xfad2, 0xf6f1, 0xf729, 0xf64a, 0xfff3, 0x03ee,
+ 0xf84f, 0xf460, 0xfdf2, 0x0228, 0xfd96, 0xfe3d,
+ 0x0086, 0xff90, 0xff02, 0xfb6b, 0xffb2, 0x0716,
+ 0x004a, 0xfe87, 0x0279, 0xfea7, 0x002d, 0x0132,
+ 0xff41, 0x0395, 0x0287, 0xffcf, 0x02ca, 0x027b,
+ 0x028d, 0x0803, 0x0c67, 0x0927, 0x03c6, 0x0471,
+ 0x03fe, 0x0164, 0x05c0, 0x0ae8, 0x02d9, 0xfa06,
+ 0x0882, 0x12f9, 0x036b, 0x01b9, 0x0a8d, 0x0219,
+ 0x02a1, 0x0abb, 0x03a4, 0xff90, 0x0774, 0x09bc,
+ 0x00f7, 0xff5d, 0x085b, 0x0714, 0x000b, 0xff9c,
+ 0x00c6, 0x03b9, 0x0499, 0x03b7, 0x05b4, 0x0299,
+ 0xfd52, 0xfc87, 0xfd6b, 0xff6b, 0x0016, 0xffa7,
+ 0xfd1b, 0xf8f0, 0xfb72, 0xfd79, 0xf849, 0xf7a9,
+ 0xfc4d, 0xfae4, 0xf540, 0xf623, 0xf7f2, 0xf5c5,
+ 0xf8f6, 0xf77d, 0xf19d, 0xf935, 0xfd95, 0xf98d,
+ 0xfcfa, 0xfd73, 0xfa7e, 0xfae3, 0xf9cd, 0xfa7d,
+ 0xfb92, 0xfdf2, 0xfe06, 0xf277, 0xf01e, 0xfaf5,
+ 0xf942, 0xf41d, 0xf81b, 0xf8bb, 0xf517, 0xf102,
+ 0xed97, 0xf224, 0xf769, 0xf2de, 0xf152, 0xf131,
+ 0xe68f, 0xe704, 0xf1f7, 0xeda9, 0xea8b, 0xeefc,
+ 0xe8b0, 0xe483, 0xea11, 0xed4d, 0xecf8, 0xec2e,
+ 0xeb73, 0xe7d6, 0xe6ec, 0xef3a, 0xf492, 0xf022,
+ 0xe7b3, 0xe4b9, 0xec53, 0xf017, 0xeef8, 0xf680,
+ 0xfa70, 0xf16c, 0xeaf6, 0xf241, 0xfab2, 0xf509,
+ 0xf330, 0xff28, 0x01ac, 0xfe77, 0x020d, 0xfcf9,
+ 0xf622, 0xffd8, 0x08a4, 0x048b, 0x0310, 0x045a,
+ 0x0297, 0x06cc, 0x08ec, 0xfe70, 0xf8f1, 0x02dc,
+ 0x0dd4, 0x0c6f, 0x03c1, 0xffca, 0xffaf, 0x02f9,
+ 0x0a54, 0x0ca7, 0x0a27, 0x087d, 0x09d0, 0x0e0c,
+ 0x0c78, 0x08aa, 0x0b12, 0x0d4a, 0x0f74, 0x0eed,
+ 0x0bf3, 0x11fb, 0x0fb1, 0x0175, 0x097e, 0x1ae7,
+ 0x13b1, 0x0679, 0x0943, 0x0fe4, 0x0d53, 0x0694,
+ 0x053d, 0x075d, 0x07fb, 0x089c, 0x09a9, 0x0b23,
+ 0x0d53, 0x0d60, 0x0c5c, 0x0a11, 0x033b, 0x029e,
+ 0x0cbc, 0x0fe0, 0x09bc, 0x0601, 0x0523, 0x06a3,
+ 0x06b7, 0x051a, 0x08d2, 0x082f, 0x0154, 0x041b,
+ 0x08dc, 0x0260, 0xfb0f, 0xfd4f, 0x0302, 0x02e4,
+ 0x0119, 0x001f, 0xfb9a, 0xfd0d, 0x056d, 0x0634,
+ 0x0107, 0xfbab, 0xf9e9, 0x01e4, 0x078e, 0x0285,
+ 0xfefd, 0x003a, 0x0127, 0x0066, 0x0043, 0x0441,
+ 0x039b, 0xfd2c, 0xff84, 0x032c, 0x0001, 0x0090,
+ 0xfd76, 0xf655, 0xfa54, 0xfdf6, 0xfcd8, 0x00bb,
+ 0xffb7, 0xffdf, 0x09dd, 0x07fa, 0xfad0, 0xf8fe,
+ 0x037f, 0x0dfb, 0x0c23, 0x0507, 0x0842, 0x087d,
+ 0x003a, 0x03a6, 0x0c92, 0x0910, 0x02f1, 0x067e,
+ 0x0b90, 0x07c4, 0x0566, 0x0de1, 0x0f7a, 0x0698,
+ 0x07fb, 0x0dbd, 0x0b3d, 0x0c52, 0x0fe3, 0x0a9d,
+ 0x058e, 0x08d4, 0x0cd8, 0x0bc7, 0x08fa, 0x097b,
+ 0x0b57, 0x0a7e, 0x08ae, 0x05c9, 0x0250, 0x05eb,
+ 0x0b37, 0x05a4, 0x00f8, 0x04e1, 0xffda, 0xf698,
+ 0xfbdc, 0x01c0, 0xfaf6, 0xf73e, 0xfcaf, 0xfaa8,
+ 0xf05b, 0xf4ed, 0x0316, 0xfce2, 0xf0e8, 0xf85f,
+ 0xfce2, 0xf3bb, 0xf089, 0xf53b, 0xf95c, 0xf6f5,
+ 0xf3ee, 0xfc20, 0xfcf0, 0xf27c, 0xf891, 0xfd59,
+ 0xf1b4, 0xf59f, 0xfd5d, 0xf2e6, 0xf24c, 0xfa5d,
+ 0xf52b, 0xf2a2, 0xfb3b, 0xffab, 0xfb27, 0xf804,
+ 0xfc25, 0xfbbe, 0xf6de, 0xfb13, 0xfe7f, 0xfb4f,
+ 0xfb8d, 0xf9c8, 0xf87d, 0xfed0, 0x0003, 0xfcef,
+ 0xfc68, 0xf8f0, 0xfb63, 0x02fc, 0xffb6, 0xfe04,
+ 0x06d7, 0x057e, 0xfa2a, 0xf970, 0xff79, 0xfde7,
+ 0xfb6f, 0xffd7, 0x01ab, 0xff43, 0x0091, 0x02c8,
+ 0x02ea, 0x0345, 0x0472, 0x06c1, 0x0588, 0x010e,
+ 0x015c, 0x0223, 0x0079, 0x0283, 0x03ca, 0x0318,
+ 0x0451, 0x038d, 0x03fc, 0x060c, 0x0468, 0x05d9,
+ 0x0678, 0xffb6, 0xff7b, 0x0310, 0xff8e, 0x0003,
+ 0x0454, 0x03c5, 0x01fe, 0xff7c, 0xffa6, 0x0267,
+ 0xff00, 0xff67, 0x0632, 0x02dd, 0xff35, 0x0454,
+ 0x0280, 0xfe3f, 0x00d8, 0xff73, 0xfd2f, 0x037b,
+ 0x0709, 0xfe5c, 0xf63d, 0xfae6, 0xfedc, 0xf969,
+ 0xfae8, 0xff1f, 0xf7f5, 0xf683, 0xfc85, 0xf86d,
+ 0xf4e6, 0xf605, 0xf286, 0xf50a, 0xfba9, 0xfd27,
+ 0xff17, 0xf8e6, 0xf06b, 0xf999, 0xfc14, 0xef15,
+ 0xf5de, 0x0492, 0xfd56, 0xf437, 0xf810, 0xf9e5,
+ 0xf5a8, 0xf82d, 0xffb7, 0xf5b7, 0xe7b7, 0xf8a0,
+ 0x0a66, 0xfc53, 0xf215, 0xf887, 0xf65a, 0xf15d,
+ 0xf3da, 0xf6dd, 0xf93d, 0xfa60, 0xf782, 0xf12d,
+ 0xeeea, 0xf66a, 0xfb5c, 0xf973, 0xfb9d, 0xfc72,
+ 0xf8a6, 0xf853, 0xf824, 0xfa6f, 0x024c, 0x01df,
+ 0xf8df, 0xf664, 0xfbe3, 0xfe59, 0xf9ef, 0xfa58,
+ 0x015a, 0x03ee, 0x0672, 0x07ec, 0x0104, 0xffb2,
+ 0x043b, 0x035b, 0x06a1, 0x0a71, 0x0781, 0x0b8f,
+ 0x1227, 0x0f2d, 0x0968, 0x07a7, 0x0d68, 0x1396,
+ 0x105e, 0x0b35, 0x0862, 0x0bb8, 0x14e1, 0x0ed3,
+ 0x055c, 0x1072, 0x130f, 0x06f1, 0x0c0d, 0x176b,
+ 0x1660, 0x0f9b, 0x09f0, 0x0e5d, 0x1286, 0x0b5e,
+ 0x0e86, 0x1751, 0x0e4b, 0x075d, 0x0f6f, 0x0f9c,
+ 0x067b, 0x0808, 0x0ef6, 0x096f, 0x0514, 0x0e23,
+ 0x0cb2, 0x01de, 0x06aa, 0x0c82, 0x053a, 0x0135,
+ 0x0534, 0x0850, 0x0459, 0x008d, 0x05ee, 0x0520,
+ 0xfed2, 0x054d, 0x05c2, 0xfae0, 0xff0f, 0x0516,
+ 0xfb34, 0xf48c, 0xfa51, 0x0349, 0x033c, 0xfa1c,
+ 0xf98e, 0xfca8, 0xf6a1, 0xf93f, 0x04fa, 0x0196,
+ 0xf6ba, 0xf987, 0x00f0, 0xfd51, 0xf788, 0xfa19,
+ 0xfd83, 0x0048, 0x03a7, 0xfd0f, 0xf2e4, 0xf673,
+ 0x000b, 0xff13, 0xf69f, 0xf732, 0xff9d, 0xfdb2,
+ 0xf91f, 0xffc8, 0x0131, 0xf9df, 0xf940, 0xfb24,
+ 0xfab3, 0xfdfd, 0x02f0, 0x00ff, 0xfa37, 0xfe1e,
+ 0x049d, 0xf9fb, 0xf66b, 0x041d, 0x00c7, 0xf5c1,
+ 0xfc84, 0x02bd, 0x0369, 0x06aa, 0x02d8, 0xfbf1,
+ 0xfd6a, 0x03d7, 0x041a, 0xfd43, 0x0035, 0x0786,
+ 0x0184, 0x02c6, 0x0f21, 0x0a8d, 0x0051, 0x0098,
+ 0xfe8f, 0xfd56, 0x0394, 0x08a8, 0x08fb, 0x070d,
+ 0x0805, 0x0b67, 0x0b2b, 0x0763, 0x015d, 0x01b6,
+ 0x0be6, 0x0dcc, 0x0845, 0x08ca, 0x06fb, 0x064e,
+ 0x0a89, 0x03e1, 0xfd25, 0x042a, 0x0a1f, 0x0b6e,
+ 0x0aff, 0x0580, 0x01c6, 0x03b1, 0x072a, 0x060c,
+ 0x00b9, 0x0342, 0x0752, 0x01b1, 0x004f, 0x049f,
+ 0x065d, 0x0913, 0x06ae, 0x0451, 0x085a, 0x0186,
+ 0xfc8a, 0x0855, 0x08ee, 0x00fd, 0x04e1, 0x048d,
+ 0xff38, 0x012f, 0x03ff, 0x0540, 0x0261, 0xff13,
+ 0x0367, 0xff7f, 0xf539, 0xfaba, 0x0114, 0xfbd7,
+ 0xfa71, 0xfbaa, 0xfc70, 0x0056, 0xfcc0, 0xf576,
+ 0xfb7b, 0x0532, 0x0118, 0xf7ab, 0xf789, 0xfbd6,
+ 0xfd6c, 0x0074, 0x00d9, 0xf868, 0xf5dd, 0x0253,
+ 0x0938, 0xff60, 0xf999, 0x0024, 0x006d, 0xf95c,
+ 0xf9a8, 0xff46, 0x02a0, 0x01ad, 0xff73, 0x0297,
+ 0x01f6, 0xf7e4, 0xf5ec, 0xfa66, 0xf947, 0xfe80,
+ 0x06ec, 0x02c9, 0xfc5f, 0xfc75, 0xfd6c, 0xfddf,
+ 0xfe51, 0x01bb, 0x056a, 0x01a5, 0xfec8, 0x02ea,
+ 0x02cf, 0xfde4, 0x003d, 0x0853, 0x06eb, 0xfe1e,
+ 0xfff6, 0x03e9, 0xfca7, 0xfc20, 0x0432, 0x048a,
+ 0x0582, 0x0a1e, 0x074a, 0x0025, 0xfc5d, 0x01f7,
+ 0x0934, 0x046d, 0x0455, 0x0c5c, 0x0536, 0x0008,
+ 0x0999, 0x05f5, 0xfda4, 0x0458, 0x0730, 0x05b4,
+ 0x0c1b, 0x0ce5, 0x0619, 0x0727, 0x0df7, 0x0be2,
+ 0x0117, 0xfdb2, 0x0556, 0x0c5b, 0x0d1b, 0x07df,
+ 0x02dd, 0x045f, 0x05c4, 0x04a3, 0x0586, 0x05a3,
+ 0x0461, 0xfffe, 0xf9e8, 0xfef9, 0x067c, 0x01eb,
+ 0x011f, 0x05a5, 0x0081, 0xfe72, 0x05cc, 0x06a3,
+ 0x01a5, 0x0293, 0x08d4, 0x09dd, 0x04d5, 0x0479,
+ 0x0203, 0xf8d3, 0xfd79, 0x0966, 0x04b0, 0xfec3,
+ 0x0488, 0x06dc, 0x03a9, 0x00c7, 0xfee4, 0xffef,
+ 0x0038, 0xff6d, 0x00ef, 0xff72, 0xfbdb, 0xfe51,
+ 0x0483, 0x05bb, 0xfff1, 0xfd3a, 0x0260, 0x02e0,
+ 0xfc8e, 0xfa0b, 0xfae3, 0xfdb0, 0x0177, 0xfeae,
+ 0xfa78, 0xff02, 0x0586, 0x02c9, 0xf98f, 0xf891,
+ 0x008f, 0x0184, 0xff82, 0x04e8, 0x0589, 0x0117,
+ 0x01fd, 0xffc7, 0xfb21, 0xff5e, 0x05eb, 0x056a,
+ 0xfcab, 0xf439, 0xfa80, 0x04e5, 0x0208, 0xfe18,
+ 0x00a1, 0x0185, 0x03a0, 0x038d, 0xfbc6, 0xfbf6,
+ 0x0769, 0x0b1d, 0x06e9, 0x079c, 0x0893, 0x0342,
+ 0x00d6, 0x04db, 0x041b, 0xff21, 0x0215, 0x08a5,
+ 0x090b, 0x07fd, 0x05da, 0xfd38, 0xf866, 0xffa3,
+ 0x04e7, 0x00e3, 0x0106, 0x05a4, 0x0000, 0xf882,
+ 0x0010, 0x07de, 0x01f2, 0xfedc, 0x0177, 0xfc88,
+ 0xf9af, 0xfdc6, 0xfdbf, 0x00bc, 0x0598, 0xfefb,
+ 0xfe65, 0x08cf, 0x0394, 0xf86a, 0xfbf6, 0xff81,
+ 0x00ac, 0x05d7, 0x017b, 0xf9d8, 0xff5a, 0x03ed,
+ 0xfcfc, 0xfa8e, 0x0261, 0x043c, 0xfb00, 0xf6b8,
+ 0xfe11, 0x04b4, 0x0198, 0xf99d, 0xf7a7, 0xfc41,
+ 0x00de, 0x05c4, 0x033a, 0xf6cf, 0xf6f6, 0x000e,
+ 0xfb3e, 0xf8de, 0x0071, 0xfe56, 0xfc62, 0x0031,
+ 0xfa7d, 0xf6f1, 0xfdf0, 0xffe6, 0xfbd9, 0xfa99,
+ 0xff04, 0x03fc, 0xffd2, 0xf9ee, 0xfc8f, 0x009e,
+ 0x02b5, 0x028b, 0xfde9, 0xfc34, 0xffdb, 0x01c3,
+ 0xff90, 0xfd2c, 0x00f3, 0x0584, 0x01ae, 0xff5c,
+ 0x0371, 0x0342, 0x0066, 0x00f2, 0x0174, 0x0029,
+ 0x0234, 0x08f8, 0x06ce, 0xfd10, 0x0258, 0x090f,
+ 0xfe26, 0xfcd3, 0x0719, 0x03af, 0x016c, 0x07f3,
+ 0x0529, 0x00cf, 0x05e8, 0x0a98, 0x0564, 0xfb77,
+ 0xfd91, 0x05e4, 0x01a1, 0xfdb3, 0x03d3, 0x0627,
+ 0x0417, 0x0132, 0x0058, 0x06b1, 0x07d0, 0x01d5,
+ 0x010c, 0xfe07, 0xfc26, 0x053d, 0x06ce, 0xffd1,
+ 0x0274, 0x05c7, 0x0187, 0xfed8, 0x0251, 0x09b6,
+ 0x0930, 0xff8c, 0xff0f, 0x0500, 0x0414, 0x02ed,
+ 0x0239, 0x0010, 0x05c1, 0x0af7, 0x04e5, 0x0101,
+ 0x03be, 0x01e6, 0xfe70, 0x0030, 0x019e, 0xffe2,
+ 0x0079, 0x02fa, 0x013d, 0xfdf2, 0xff46, 0x015a,
+ 0x0125, 0x0220, 0x01ed, 0xfe9b, 0xfd71, 0xff2b,
+ 0x0167, 0x031d, 0x0198, 0x00f2, 0x0418, 0x01db,
+ 0xfdbd, 0x02dc, 0x0501, 0xff3a, 0x01ca, 0x0439,
+ 0xfa37, 0xf88c, 0x0207, 0x0102, 0xfdf1, 0x0455,
+ 0x0529, 0x0021, 0xffef, 0xfe33, 0xfa7a, 0xfce2,
+ 0x0073, 0xff1c, 0xfee8, 0x054f, 0x07ed, 0xfcc4,
+ 0xf544, 0xfe1c, 0x02f1, 0xfd83, 0xfe3d, 0x029e,
+ 0x0229, 0xfffc, 0xfd52, 0xfab9, 0xf893, 0xf884,
+ 0xfc5b, 0xfbd2, 0xf846, 0xfc6f, 0xfe5c, 0xfaa5,
+ 0xffda, 0x05d6, 0x0037, 0xf971, 0xf902, 0xfc5a,
+ 0xfee0, 0xfecd, 0x0114, 0x029d, 0xff00, 0xfed4,
+ 0x0352, 0x0509, 0x02ae, 0xfeaa, 0xfee5, 0x0195,
+ 0xff5a, 0x00ed, 0x0918, 0x08d7, 0x02a9, 0x0344,
+ 0x0547, 0x01b2, 0x00be, 0x0858, 0x0ca9, 0x0645,
+ 0x0056, 0xffaf, 0x019a, 0x0642, 0x0703, 0x03a0,
+ 0x0207, 0xfe6d, 0xfc12, 0xfcda, 0xfb2e, 0x00c6,
+ 0x0704, 0xfc1c, 0xf70d, 0x013d, 0xfd98, 0xf293,
+ 0xf604, 0xfc7c, 0xfac8, 0xf532, 0xf3c0, 0xf941,
+ 0xfda5, 0xfef8, 0xfd7a, 0xf507, 0xf15f, 0xf7f3,
+ 0xf75e, 0xf178, 0xf81e, 0x0104, 0xf844, 0xebd8,
+ 0xf125, 0xf898, 0xf2ef, 0xeff0, 0xf2cf, 0xf380,
+ 0xf832, 0xfa81, 0xf385, 0xf226, 0xf6fb, 0xf548,
+ 0xf162, 0xf218, 0xf307, 0xf211, 0xf4ea, 0xf8cf,
+ 0xf3cf, 0xef2a, 0xf4d4, 0xf796, 0xf28c, 0xef42,
+ 0xf226, 0xf83e, 0xf404, 0xe976, 0xed0f, 0xf281,
+ 0xefc7, 0xf5ad, 0xfa8e, 0xf60e, 0xf77d, 0xf7bd,
+ 0xf399, 0xf768, 0xfb6a, 0xfb77, 0xf98a, 0xf3d8,
+ 0xf64b, 0xfb2e, 0xf50e, 0xf6c4, 0x00fd, 0xffb4,
+ 0xfd98, 0x019d, 0xffd4, 0xfada, 0xf9c1, 0xfdd8,
+ 0x0413, 0x055c, 0x0343, 0x006b, 0xfdbb, 0x02e7,
+ 0x09b5, 0x0439, 0xfce6, 0x0199, 0x0813, 0x05e3,
+ 0x04da, 0x09fe, 0x08bc, 0x02fb, 0x06a6, 0x0c84,
+ 0x0be0, 0x0bf2, 0x0d92, 0x0d7b, 0x0dde, 0x0ff2,
+ 0x120c, 0x10d7, 0x11cf, 0x19b8, 0x1a4c, 0x1256,
+ 0x120c, 0x13a0, 0x1298, 0x18ea, 0x1c3f, 0x1618,
+ 0x14a4, 0x1686, 0x1442, 0x1302, 0x1439, 0x15b7,
+ 0x1522, 0x1177, 0x11b6, 0x14f6, 0x1236, 0x0ec1,
+ 0x1095, 0x10e7, 0x0e89, 0x0d12, 0x0ab0, 0x08aa,
+ 0x0982, 0x09ea, 0x08a2, 0x07b2, 0x071e, 0x0730,
+ 0x076e, 0x067d, 0x062c, 0x05df, 0x0287, 0xffd9,
+ 0x00c2, 0x00c7, 0x0020, 0x021e, 0x014f, 0xfc08,
+ 0xfccd, 0x0228, 0xfe16, 0xf7d1, 0xfd65, 0x0241,
+ 0xfddb, 0xfbc6, 0xfacc, 0xf763, 0xf9a9, 0xfd43,
+ 0xfe34, 0x0260, 0x01dd, 0xfb7d, 0xfcb7, 0xfeb7,
+ 0xfb82, 0xff00, 0x0194, 0xfaab, 0xf9a3, 0xfc95,
+ 0xf83e, 0xf985, 0x024d, 0x02d1, 0xfcf2, 0xfa3c,
+ 0xff04, 0x064d, 0xffc0, 0xf58b, 0xfd1d, 0x0146,
+ 0xf7e5, 0xfbc4, 0x03f6, 0xfe68, 0xfd09, 0xfe71,
+ 0xf6ad, 0xf558, 0xfbb0, 0xfb27, 0xf826, 0xfb3b,
+ 0x0105, 0xff04, 0xf595, 0xf45c, 0xfaa6, 0xfcf4,
+ 0xff0d, 0x009f, 0xfd3c, 0xfbef, 0xff12, 0x0154,
+ 0xfdcc, 0xf86e, 0xfe10, 0x0429, 0xfb53, 0xf6c0,
+ 0xfb8b, 0xf804, 0xf667, 0xfbd7, 0xfaa3, 0xfac6,
+ 0x0018, 0x0098, 0x00b0, 0x013d, 0x0044, 0x02ec,
+ 0x022e, 0xff11, 0x0546, 0x08d8, 0x03a0, 0x040b,
+ 0x04ff, 0x016b, 0x0643, 0x0c77, 0x0862, 0x0624,
+ 0x0813, 0x0475, 0x026c, 0x0665, 0x05f5, 0x0281,
+ 0x059c, 0x0913, 0x0423, 0xff18, 0x006d, 0x00f5,
+ 0x0262, 0x0992, 0x0b79, 0x0789, 0x07b8, 0x036f,
+ 0xfb9c, 0xff4e, 0x045b, 0x0236, 0x0347, 0x0421,
+ 0x03d0, 0x08bb, 0x08b4, 0x038d, 0x024c, 0xfedb,
+ 0xfe19, 0x063b, 0x078d, 0x0070, 0xfe6a, 0x0032,
+ 0x006b, 0xfe90, 0xfc1a, 0xfae0, 0xf9c8, 0xfc81,
+ 0x01e7, 0xfe61, 0xf8c0, 0xfdf6, 0x013b, 0xfa35,
+ 0xf72a, 0xfb0d, 0xf944, 0xf413, 0xf823, 0xfea4,
+ 0xfbfe, 0xf9a0, 0xfbae, 0xf82a, 0xf20f, 0xf116,
+ 0xf514, 0xf9e2, 0xf740, 0xf26d, 0xf6d8, 0xfa6c,
+ 0xf7c2, 0xf879, 0xf81e, 0xf506, 0xf832, 0xfaa7,
+ 0xf62e, 0xf4f1, 0xf863, 0xf800, 0xf65e, 0xfa8e,
+ 0xfe85, 0xfb83, 0xf8e0, 0xfb22, 0xfcd6, 0xfafe,
+ 0xf7c0, 0xf91c, 0xfcee, 0xfaad, 0xfae0, 0x010f,
+ 0xff85, 0xfd9d, 0x0309, 0x015e, 0xfd05, 0xff1d,
+ 0xfe66, 0xfd2c, 0xfe3e, 0xfba6, 0xfb08, 0xfe0e,
+ 0x000b, 0x00cf, 0xfe36, 0xfdf9, 0x019e, 0xff0b,
+ 0xfd7a, 0x022e, 0x0366, 0x0411, 0x01e9, 0xf9c1,
+ 0xfb19, 0xffe9, 0xfba5, 0xfced, 0x0289, 0x0012,
+ 0xfbdb, 0xf84f, 0xf8c4, 0xfffd, 0xfe79, 0xf55a,
+ 0xf6de, 0xfc52, 0xf93a, 0xf7e6, 0x0032, 0x0428,
+ 0xfe0c, 0xfda8, 0x01b8, 0xfefa, 0xff81, 0x03a0,
+ 0x0345, 0x0628, 0x0626, 0xff8e, 0x01d8, 0x04a3,
+ 0x00e0, 0x040e, 0x05e3, 0x0278, 0x0415, 0x0241,
+ 0x0209, 0x0c61, 0x0cc9, 0x01cb, 0xfd57, 0xffb6,
+ 0x076b, 0x0cc0, 0x0836, 0x0711, 0x08fe, 0x046e,
+ 0x0465, 0x09ad, 0x0aa6, 0x0b76, 0x0bd9, 0x0947,
+ 0x07b1, 0x0519, 0x0433, 0x0a0c, 0x0c9d, 0x06df,
+ 0x02cb, 0x031e, 0x03b5, 0x0546, 0x0704, 0x0739,
+ 0x08c5, 0x08e6, 0x0352, 0x0138, 0x0673, 0x070e,
+ 0x021f, 0x00e0, 0x0312, 0x0591, 0x0693, 0x0642,
+ 0x085d, 0x08ba, 0x0344, 0x0164, 0x058b, 0x05fd,
+ 0x03cd, 0x0666, 0x0970, 0x068d, 0x024c, 0x005b,
+ 0xfef5, 0x0196, 0x0706, 0x072d, 0x06b9, 0x09af,
+ 0x08ef, 0x0813, 0x09dd, 0x05f1, 0x01ab, 0x03d0,
+ 0x04b8, 0x0536, 0x0896, 0x079e, 0x04ee, 0x0883,
+ 0x0b9d, 0x07c9, 0x0513, 0x07fb, 0x073a, 0x0071,
+ 0xffb2, 0x077e, 0x0b9a, 0x07c6, 0x0446, 0x04df,
+ 0x0546, 0x052c, 0x064f, 0x04b8, 0x013f, 0x018e,
+ 0x03fe, 0x063b, 0x06b5, 0x0241, 0xff13, 0x00f4,
+ 0x0047, 0xfead, 0x0162, 0x0383, 0x03ed, 0x03ee,
+ 0x011a, 0xfe39, 0xfede, 0x0194, 0x03aa, 0x039a,
+ 0x032e, 0x036c, 0x0427, 0x05b6, 0x0383, 0xffe2,
+ 0x0470, 0x089f, 0x02eb, 0xff39, 0x0170, 0x01bb,
+ 0x02cd, 0x0637, 0x0679, 0x0412, 0x0407, 0x073e,
+ 0x0821, 0x048e, 0x02a9, 0x02af, 0xffd1, 0xfe33,
+ 0x02fa, 0x07ee, 0x0518, 0x0067, 0x03ad, 0x0850,
+ 0x052f, 0x0040, 0x003f, 0x0385, 0x0589, 0x0412,
+ 0x0224, 0x0077, 0xfef0, 0x00cd, 0x022b, 0x0206,
+ 0x059b, 0x04c1, 0xfe8f, 0x0097, 0x0550, 0x04dd,
+ 0x0615, 0x067e, 0x03c5, 0x0212, 0xff26, 0xfd4f,
+ 0xfef3, 0x02a4, 0x0a61, 0x0beb, 0x0315, 0x010c,
+ 0x041c, 0x0244, 0x030a, 0x04ba, 0x05bb, 0x0941,
+ 0x03e0, 0xfdba, 0x060d, 0x093f, 0x032e, 0x0556,
+ 0x05d0, 0x0265, 0x07ae, 0x09e3, 0x05e1, 0x080a,
+ 0x0832, 0x0364, 0x041c, 0x0483, 0x011f, 0x01ee,
+ 0x0321, 0x0114, 0x01e8, 0x045b, 0x03e4, 0x020b,
+ 0x01cb, 0x0489, 0x0422, 0xfcdd, 0xfbb3, 0x0341,
+ 0x0397, 0x0047, 0x0484, 0x047f, 0xfc70, 0xfa6d,
+ 0xfdd0, 0xff64, 0x0146, 0x01bb, 0xffe1, 0x0186,
+ 0x020d, 0xface, 0xf7dd, 0xffb9, 0x020c, 0xfb57,
+ 0xfa5e, 0xfdb4, 0xfe22, 0x00bb, 0x03a3, 0x01fc,
+ 0x01e8, 0x03e5, 0x0173, 0xfdc7, 0xff62, 0x031e,
+ 0x02b4, 0x008f, 0x012f, 0x015e, 0xffe7, 0x0125,
+ 0x045d, 0x0448, 0x0026, 0xfe29, 0x0094, 0x016a,
+ 0x0198, 0x03ba, 0x0296, 0x01b5, 0x0251, 0xfc86,
+ 0xfae8, 0x024d, 0x0280, 0x0192, 0x076f, 0x05e0,
+ 0x019a, 0x02e9, 0x00b8, 0xffde, 0x01e1, 0xfdd8,
+ 0xfe1a, 0x03fe, 0x01fd, 0x0110, 0x06e8, 0x0527,
+ 0xfe69, 0xfec3, 0x0087, 0xfe40, 0xfdf6, 0xfff2,
+ 0x00b3, 0x02ea, 0x04f6, 0x03b3, 0x0200, 0xfe36,
+ 0xfb4a, 0x006f, 0x0349, 0xff5a, 0xff83, 0xff67,
+ 0xfcff, 0xffe9, 0x014f, 0x01a9, 0x0658, 0x0417,
+ 0xfd2e, 0xfd56, 0xff6e, 0xffe6, 0x0019, 0x0051,
+ 0x0237, 0x0381, 0x0699, 0x0818, 0xff3b, 0xfd5a,
+ 0x06dd, 0x040e, 0xff1b, 0x03c7, 0x00a2, 0xfcdc,
+ 0x007b, 0x0087, 0x01f1, 0x0121, 0xfb3c, 0x0018,
+ 0x030d, 0xfa8e, 0xfb3b, 0xff08, 0xfcbd, 0xffe2,
+ 0x0115, 0xfd1c, 0xfe05, 0xff1f, 0xfe7e, 0xfdc5,
+ 0xfdcf, 0x0396, 0x03b4, 0xfca2, 0x012d, 0x06a7,
+ 0x023e, 0x047e, 0x0741, 0x007a, 0xfee0, 0x030b,
+ 0x03b4, 0x02b2, 0x0222, 0x04ef, 0x084a, 0x0583,
+ 0x0410, 0x07d7, 0x06fc, 0x018d, 0xffc7, 0x0208,
+ 0x0489, 0x0582, 0x0468, 0x01c1, 0x0189, 0x0576,
+ 0x0701, 0x03a2, 0x0225, 0x03a8, 0x0283, 0x001b,
+ 0x0036, 0xfe4b, 0xfc75, 0x046e, 0x0a9b, 0x01ae,
+ 0xfae5, 0xfdcc, 0xfc2d, 0xf9d7, 0xfc13, 0xfc43,
+ 0xfdee, 0xffb1, 0xfd1b, 0xfe2a, 0xfeb1, 0xfadf,
+ 0xfecc, 0x0159, 0xf91c, 0xfa50, 0x0230, 0xfbe9,
+ 0xf80b, 0x029c, 0x0493, 0xfe51, 0x015c, 0x01c3,
+ 0xfaf3, 0xfc33, 0xfe62, 0xfc16, 0x009b, 0x02be,
+ 0xfd11, 0xfe05, 0x0084, 0xfcef, 0xfc5f, 0xfe1c,
+ 0xfe38, 0xfca1, 0xf8a9, 0xf9e3, 0xfd33, 0xf936,
+ 0xf891, 0xfc62, 0xf958, 0xf735, 0xfaf4, 0xfe21,
+ 0xff12, 0xfb06, 0xf7a2, 0xfcdf, 0x0057, 0xfc74,
+ 0xfad0, 0x0063, 0x06ee, 0x02e4, 0xfae7, 0xfe90,
+ 0x0342, 0x021b, 0x0622, 0x072a, 0x0121, 0x0162,
+ 0x02fb, 0x0179, 0x0598, 0x09dc, 0x0853, 0x077c,
+ 0x08d0, 0x06bf, 0x00d4, 0x0203, 0x0ae3, 0x0a4b,
+ 0x0526, 0x0a4b, 0x0b89, 0x0404, 0x0479, 0x084b,
+ 0x0631, 0x0608, 0x0880, 0x08f7, 0x0a12, 0x0be2,
+ 0x0bbb, 0x097e, 0x052a, 0x01c8, 0x04de, 0x09b4,
+ 0x06d2, 0x034f, 0x0724, 0x0784, 0x0308, 0x044b,
+ 0x051e, 0x01c7, 0x040f, 0x077c, 0x0483, 0x017f,
+ 0x0114, 0x02bc, 0x068e, 0x0532, 0xffd9, 0x00b7,
+ 0x0237, 0xfe38, 0xfe83, 0x021b, 0x0182, 0x02c4,
+ 0x0148, 0xf79a, 0xf930, 0x03cc, 0xffbe, 0xfa6c,
+ 0x0000, 0xfe41, 0xfa69, 0xfd9a, 0xf9f4, 0xf7c8,
+ 0x002c, 0x00a2, 0xfba8, 0xfea4, 0xfe30, 0xf7f6,
+ 0xf6f7, 0xf8c0, 0xfb1a, 0xfdec, 0xfb15, 0xf7d9,
+ 0xfcb5, 0x01f2, 0x01fd, 0x0019, 0xfb19, 0xf876,
+ 0xffaf, 0x03e4, 0xfdbd, 0xfe8f, 0x086d, 0x08b6,
+ 0x00d9, 0xfecc, 0x00d6, 0x026a, 0x04f3, 0x054a,
+ 0x03ab, 0x04f8, 0x0532, 0x031d, 0x0450, 0x0451,
+ 0x0189, 0x01d3, 0x0032, 0xfe5f, 0x0414, 0x0565,
+ 0xff87, 0x0044, 0x01e5, 0xfe77, 0xfe8e, 0xfffc,
+ 0x0096, 0x0518, 0x08f5, 0x0704, 0x0086, 0xfc32,
+ 0x00fd, 0x069c, 0x04ff, 0x03dc, 0x0546, 0x0533,
+ 0x0690, 0x0ae1, 0x0d3f, 0x0705, 0xfeb2, 0x0333,
+ 0x0a2d, 0x03af, 0xfe59, 0x02ae, 0x0403, 0x030d,
+ 0x0498, 0x02ec, 0xfe64, 0xfbfb, 0xfd8e, 0x020d,
+ 0x03d4, 0x0182, 0x00b9, 0x029d, 0x03e0, 0x0324,
+ 0x011b, 0xfef1, 0xfd2f, 0xfd67, 0xffac, 0xff9e,
+ 0xfcc0, 0xfb43, 0xfb4d, 0xfb73, 0xfa61, 0xf76a,
+ 0xf823, 0xfcfd, 0xfcba, 0xf8a6, 0xf8e1, 0xf9bb,
+ 0xf59c, 0xf205, 0xf671, 0xfc04, 0xf869, 0xf640,
+ 0xfb75, 0xf93b, 0xf5b4, 0xfb22, 0xf93e, 0xf52e,
+ 0xfd1a, 0xfe3f, 0xf7b8, 0xfa88, 0xfb46, 0xf532,
+ 0xf46a, 0xf701, 0xf8eb, 0xf963, 0xf95d, 0xfc53,
+ 0xfc55, 0xf995, 0xf9b2, 0xf557, 0xf0c9, 0xf3c0,
+ 0xf273, 0xef17, 0xf318, 0xf4d7, 0xf49f, 0xf9a8,
+ 0xfad9, 0xf47a, 0xf0f5, 0xf39c, 0xf53e, 0xf5b6,
+ 0xf83f, 0xf5e3, 0xf345, 0xf942, 0xf81a, 0xf07a,
+ 0xf58e, 0xfa50, 0xf614, 0xf6df, 0xf837, 0xf6e0,
+ 0xf8e7, 0xfa4b, 0xfbad, 0xfae5, 0xf715, 0xfa20,
+ 0xfa09, 0xf2cf, 0xf65f, 0xf9b0, 0xf35d, 0xf5ca,
+ 0xfa85, 0xf85c, 0xfc1d, 0xfffd, 0xfba5, 0xf890,
+ 0xf91d, 0xfa96, 0xfc44, 0xfccd, 0xfcb2, 0xfad7,
+ 0xfa91, 0xfe63, 0xfcc7, 0xf708, 0xf95b, 0xfeae,
+ 0xff17, 0xfee6, 0xfdb4, 0xfab3, 0xfd44, 0x033e,
+ 0x033f, 0x0111, 0x01db, 0x00c0, 0xfff3, 0x03d5,
+ 0x04df, 0x012c, 0x020d, 0x07e9, 0x096a, 0x05ce,
+ 0x05cb, 0x0822, 0x074e, 0x0a6e, 0x0f27, 0x09a5,
+ 0x0424, 0x0877, 0x0caf, 0x0dee, 0x0def, 0x0c1b,
+ 0x0e53, 0x118e, 0x0e4e, 0x0bd7, 0x0ea5, 0x0eae,
+ 0x0992, 0x07b2, 0x0dcb, 0x1359, 0x1061, 0x0a8b,
+ 0x091e, 0x0aaf, 0x0cdf, 0x10fd, 0x136d, 0x0fe2,
+ 0x0e1b, 0x0f6a, 0x0b4f, 0x0a32, 0x0fca, 0x0eb5,
+ 0x0bd6, 0x0d8d, 0x0a65, 0x05d5, 0x053c, 0x05fe,
+ 0x0a8d, 0x0cfc, 0x089f, 0x0707, 0x0a13, 0x0be3,
+ 0x0ac9, 0x0968, 0x08ec, 0x050c, 0x0453, 0x0902,
+ 0x043f, 0x00f9, 0x0906, 0x0630, 0x01f3, 0x0a09,
+ 0x06a0, 0x00f6, 0x0a30, 0x0a48, 0xff48, 0xfb7a,
+ 0xff5e, 0x06bb, 0x07f9, 0x0549, 0x0907, 0x07ef,
+ 0x023d, 0x03ed, 0x04a1, 0x0417, 0x07b3, 0x06d8,
+ 0x02ae, 0x03c7, 0x0910, 0x08b0, 0x00e7, 0x0143,
+ 0x0735, 0x04c0, 0x0364, 0x0387, 0x0086, 0x059f,
+ 0x09e7, 0x06d7, 0x06c0, 0x0223, 0xfdb7, 0x0296,
+ 0x00be, 0xfd5f, 0x0239, 0x02e7, 0x02d8, 0x029f,
+ 0xfce6, 0xfcb5, 0xfe6b, 0xff10, 0x0552, 0x041d,
+ 0xfde2, 0xfe86, 0xfbda, 0xfc18, 0x0298, 0xfe19,
+ 0xfa84, 0x0218, 0x02c3, 0xfeef, 0x0229, 0x04c8,
+ 0x00ac, 0xfae2, 0xf9cc, 0xfb9f, 0xfdc1, 0x02ba,
+ 0x03e0, 0xfd61, 0xfa84, 0xfe81, 0x01e3, 0x018d,
+ 0x011b, 0x0514, 0x06c1, 0xffbf, 0xfacc, 0xff42,
+ 0x036f, 0x01ca, 0x03e8, 0x09f5, 0x0682, 0x017d,
+ 0x060a, 0x0675, 0x0467, 0x0701, 0x00c9, 0xfc63,
+ 0x0579, 0x0796, 0x037a, 0x0462, 0x030b, 0x03f5,
+ 0x07d2, 0x042b, 0xfde1, 0xfcb9, 0x032a, 0x08ba,
+ 0x012c, 0xfb60, 0x0185, 0x046d, 0x0258, 0xfeba,
+ 0xfa08, 0xfc97, 0x02b1, 0x0515, 0x0282, 0xfbe5,
+ 0xfdb0, 0x023a, 0xfc2f, 0xfcf2, 0x01a6, 0xfa85,
+ 0xfc67, 0x03e9, 0xfabe, 0xf54e, 0xfea1, 0x04ac,
+ 0x0372, 0xfded, 0xf94b, 0xfa8c, 0xfbc9, 0xfbdd,
+ 0xfc1b, 0xf8fe, 0xf76b, 0xfc9f, 0x0053, 0xfab1,
+ 0xf6cc, 0xfe6b, 0x01f9, 0xfb26, 0xf8be, 0xfb43,
+ 0xfec8, 0x01db, 0xfcb4, 0xf876, 0xfbfb, 0xfbcd,
+ 0xfce4, 0x0147, 0xfd7b, 0xfba0, 0x0171, 0x0224,
+ 0xfed4, 0xfc69, 0xfb25, 0xfe6b, 0x00bc, 0xfbc0,
+ 0xf74c, 0xfb42, 0xfef7, 0xf99b, 0xf8f3, 0x022e,
+ 0x00e7, 0xf753, 0xf7f7, 0xfc70, 0xfe7d, 0x012a,
+ 0xfca1, 0xf44a, 0xf6f5, 0xfcb3, 0xf97b, 0xf93f,
+ 0xff68, 0xfe39, 0xfc51, 0x007c, 0xfe25, 0xfb6c,
+ 0xff1f, 0xfc7c, 0xfa18, 0xfcb4, 0xf87e, 0xf755,
+ 0xfc88, 0xfb42, 0xfb56, 0xfd7f, 0xf7d2, 0xf4cf,
+ 0xfa32, 0xfe98, 0xfcaa, 0xf624, 0xf1cf, 0xf24f,
+ 0xf7ad, 0xfd5c, 0xf836, 0xf242, 0xf730, 0xf8a2,
+ 0xf626, 0xf71b, 0xf5bd, 0xf89b, 0xfe80, 0xfd83,
+ 0xfc76, 0xf93f, 0xf69d, 0xff74, 0x01c4, 0xfa94,
+ 0xfc20, 0xfcf8, 0xfac2, 0xfe82, 0xfeaf, 0xfb05,
+ 0xfaa1, 0xfe7b, 0x0434, 0x011c, 0xfcc7, 0x01d5,
+ 0x010d, 0xfdcc, 0x0281, 0x029d, 0x02bb, 0x0880,
+ 0x076f, 0x03f4, 0x03b3, 0x0287, 0x0355, 0x0603,
+ 0x088d, 0x0857, 0x04ba, 0x05dc, 0x0816, 0x0627,
+ 0x07ba, 0x0a33, 0x0afb, 0x0a09, 0x03b9, 0x069a,
+ 0x0ff2, 0x08a2, 0x01cd, 0x094b, 0x09b8, 0x0702,
+ 0x0dac, 0x103f, 0x0a70, 0x074c, 0x0723, 0x032c,
+ 0x0248, 0x077d, 0x0429, 0x009d, 0x094b, 0x0a57,
+ 0x04ac, 0x076f, 0x09b1, 0x0c01, 0x0be5, 0x0428,
+ 0x058a, 0x080c, 0x033f, 0x07e6, 0x069d, 0xff6f,
+ 0x0961, 0x0aa5, 0x00d0, 0x0776, 0x0977, 0x0218,
+ 0x04c2, 0x05fe, 0x0697, 0x0b23, 0x0862, 0x0491,
+ 0x0259, 0xffb0, 0x0329, 0x04fa, 0x02ee, 0x039e,
+ 0x02cd, 0x03fc, 0x081d, 0x070d, 0x02d8, 0xff8e,
+ 0x02e6, 0x0914, 0x0334, 0xfc78, 0xff18, 0xfe81,
+ 0x0075, 0x0669, 0x0237, 0xff0d, 0x058e, 0x08a3,
+ 0x0621, 0x0401, 0x02ea, 0x0104, 0xffa9, 0x012e,
+ 0x0089, 0xff03, 0x0142, 0x00e9, 0x0049, 0x02dc,
+ 0x015f, 0xff59, 0xff4e, 0xfec1, 0x006a, 0xfe60,
+ 0xfc5a, 0x01d3, 0x01a3, 0xffcb, 0x03f6, 0x00e2,
+ 0x00b9, 0x07ae, 0x022e, 0xfdfc, 0x05f9, 0x07bc,
+ 0x058d, 0x077a, 0x0926, 0x094d, 0x0581, 0x0119,
+ 0x0108, 0x050a, 0x0c2e, 0x0aed, 0x02cf, 0x0485,
+ 0x0790, 0x05ea, 0x0854, 0x07c0, 0x0648, 0x09b4,
+ 0x0808, 0x05f8, 0x074f, 0x04d8, 0x04ac, 0x0782,
+ 0x094f, 0x0a28, 0x050e, 0x03ce, 0x0a0e, 0x065d,
+ 0x00be, 0x0503, 0x0751, 0x0836, 0x0a40, 0x086b,
+ 0x072f, 0x05b0, 0x03e5, 0x0639, 0x0685, 0x056d,
+ 0x04e8, 0x000c, 0x022a, 0x0c45, 0x0885, 0xfe17,
+ 0x02d5, 0x088e, 0x026b, 0x0279, 0x076e, 0x02d2,
+ 0x036f, 0x091d, 0x033d, 0x02ba, 0x082e, 0x017e,
+ 0x0155, 0x075f, 0x02cd, 0x062a, 0x0a05, 0xff85,
+ 0x01fa, 0x0d0c, 0x0a27, 0x03e7, 0xfcd7, 0xf8dc,
+ 0xfff8, 0x02da, 0x011d, 0x038a, 0x04ea, 0x087c,
+ 0x07aa, 0xfd75, 0xfd09, 0x03ae, 0x040d, 0x0441,
+ 0x0238, 0xfe67, 0xfe6e, 0xfc2e, 0xfcd6, 0x031d,
+ 0x0320, 0x0097, 0xffe2, 0xfe5d, 0x01e8, 0x0437,
+ 0xffb3, 0x00fd, 0x0380, 0xfc8d, 0xf9fc, 0x0061,
+ 0x01cb, 0x0111, 0x0693, 0x0801, 0x000d, 0xfb34,
+ 0xff23, 0x050f, 0x07b3, 0x0651, 0x032b, 0x0167,
+ 0x019b, 0x00f0, 0x0008, 0x046c, 0x082b, 0x036c,
+ 0x0093, 0x0205, 0x00bb, 0x04e5, 0x0add, 0x06ed,
+ 0x0403, 0x0544, 0x0262, 0x005f, 0x0097, 0x0151,
+ 0x03e7, 0x04b1, 0x04b5, 0x0307, 0xffd6, 0x04be,
+ 0x0904, 0x0275, 0xfe69, 0x00cb, 0x04bb, 0x0767,
+ 0x0280, 0xfe47, 0xffeb, 0x00b1, 0x0554, 0x06a7,
+ 0xfd97, 0xfcc9, 0x044c, 0x0721, 0x06df, 0x027a,
+ 0xffee, 0x0225, 0x0253, 0x0770, 0x08ca, 0xfeee,
+ 0x01a5, 0x07ef, 0x0063, 0x00fc, 0x06ea, 0x05fc,
+ 0x0890, 0x0676, 0x0166, 0x04e9, 0x02fd, 0xff9f,
+ 0x054b, 0x05df, 0x01de, 0x0192, 0x03b2, 0x05c6,
+ 0xff8d, 0xfaf7, 0x0457, 0x0734, 0xfe94, 0xfcfa,
+ 0x0007, 0x0164, 0x023a, 0x00de, 0x009e, 0x02a1,
+ 0x01e9, 0xfd9c, 0xfa5e, 0xfa7c, 0xfa06, 0xfb59,
+ 0x0052, 0xffe9, 0xfd01, 0xfda1, 0xfd61, 0xff05,
+ 0xfde4, 0xf85b, 0xfce8, 0xff85, 0xf9be, 0xffd2,
+ 0x019f, 0xf724, 0xfb0b, 0x0059, 0xfc56, 0x00b5,
+ 0x007e, 0xf9e3, 0xff22, 0x043f, 0x04b0, 0x05d8,
+ 0xffc3, 0xfcb3, 0x01a0, 0xfe2d, 0xf872, 0xfd89,
+ 0x03b3, 0x023a, 0x000a, 0x0289, 0x01d2, 0xfcc2,
+ 0xfe87, 0x0409, 0x042a, 0x027f, 0x024a, 0x0374,
+ 0x051f, 0x040d, 0x0147, 0x002a, 0x025f, 0x06fb,
+ 0x0a88, 0x0b23, 0x06d8, 0x032e, 0x093d, 0x0dd7,
+ 0x070c, 0x00af, 0x015c, 0x0775, 0x0b01, 0x02ac,
+ 0xff1e, 0x0817, 0x088d, 0x040b, 0x05df, 0x04b3,
+ 0x04e9, 0x0944, 0x06cc, 0x0300, 0x03ee, 0x03da,
+ 0x0142, 0xfec0, 0x01e7, 0x0837, 0x06ec, 0x013a,
+ 0x000f, 0x0381, 0x062c, 0x027e, 0xfe4c, 0xff43,
+ 0xff2c, 0xfdfe, 0xfdf8, 0xfd17, 0xfd57, 0xfc98,
+ 0xfb9e, 0xfeb6, 0xff1b, 0xfd14, 0xfe50, 0xfe2b,
+ 0xfd4e, 0xfc45, 0xfa96, 0xfeb1, 0x0042, 0xfb0c,
+ 0xfc16, 0xfe82, 0xfd80, 0xffb7, 0xfefa, 0xfd64,
+ 0xfeb0, 0xfb17, 0xfc3d, 0x025d, 0xfe9f, 0xfc96,
+ 0x005d, 0xfd73, 0xfc36, 0xff4d, 0xff20, 0xff79,
+ 0xfe54, 0xfbbe, 0xfd08, 0xfcf9, 0xfcbf, 0xfefe,
+ 0xfdd5, 0xfdf2, 0x013a, 0x00c2, 0x00c9, 0x0318,
+ 0x030c, 0x0375, 0x0408, 0x02f0, 0x03ca, 0x0597,
+ 0x0734, 0x0993, 0x07b7, 0x02cd, 0x03de, 0x0890,
+ 0x0a32, 0x0b41, 0x0b69, 0x08ea, 0x091b, 0x0971,
+ 0x0473, 0x0237, 0x0580, 0x0650, 0x05b0, 0x074d,
+ 0x08e4, 0x0974, 0x08b2, 0x06bc, 0x0560, 0x05cd,
+ 0x06b1, 0x0539, 0x043c, 0x0500, 0x0132, 0xff29,
+ 0x0585, 0x04bd, 0xfc00, 0xfdd5, 0x047a, 0x0378,
+ 0x01c8, 0x02b3, 0x0330, 0x04f4, 0x04f6, 0xffd5,
+ 0xfd25, 0x00fb, 0x0336, 0x027d, 0x0368, 0x01e6,
+ 0x00dc, 0x060b, 0x06b0, 0x0230, 0x0375, 0x04a9,
+ 0x0502, 0x097e, 0x0756, 0x019a, 0x0477, 0x06ba,
+ 0x0540, 0x06ef, 0x069c, 0x0457, 0x0521, 0x064f,
+ 0x0856, 0x096a, 0x05ac, 0x0300, 0x02d6, 0x0113,
+ 0x00d0, 0x017a, 0x0067, 0x0195, 0x028c, 0xff93,
+ 0xfefa, 0x006a, 0xfd59, 0xf934, 0xf909, 0xfbc5,
+ 0xfcbb, 0xf74e, 0xf294, 0xf68d, 0xfa98, 0xf8a9,
+ 0xf5a1, 0xf382, 0xf436, 0xf6a7, 0xf7e8, 0xfbf3,
+ 0xfe3e, 0xf8ec, 0xf5ee, 0xf6f8, 0xf79d, 0xfbd5,
+ 0xfcda, 0xf847, 0xf8fb, 0xf8fa, 0xf430, 0xf624,
+ 0xfac7, 0xf983, 0xf7da, 0xf94d, 0xfa41, 0xf70c,
+ 0xf561, 0xfa26, 0xf992, 0xf380, 0xf5e6, 0xf9e6,
+ 0xf88e, 0xf87c, 0xf70d, 0xf70d, 0xfd1d, 0xfc4e,
+ 0xf4ac, 0xf426, 0xf724, 0xf7cc, 0xf97c, 0xfa00,
+ 0xf832, 0xf986, 0xfc33, 0xfa59, 0xfa08, 0xffc7,
+ 0xff9a, 0xf7d9, 0xf69b, 0xfa00, 0xf9d3, 0xfaa2,
+ 0xfc90, 0xfc5c, 0xfd89, 0xff90, 0xff35, 0xfda6,
+ 0xfd7b, 0x00b2, 0x03bc, 0x01ff, 0x0069, 0x0202,
+ 0x01f8, 0x027e, 0x06a7, 0x06ab, 0x0284, 0x0491,
+ 0x07f7, 0x03a5, 0x015e, 0x0609, 0x0622, 0x0117,
+ 0x0065, 0x036b, 0x041d, 0x01e4, 0x0114, 0x0254,
+ 0x00d9, 0xfdcf, 0xfd74, 0xfdae, 0xfdd7, 0xff48,
+ 0x0042, 0x00c3, 0x0086, 0xff1e, 0xfe8d, 0xfc31,
+ 0xf894, 0xfc21, 0x02d6, 0x01a8, 0xfd81, 0xfed2,
+ 0x018b, 0x0029, 0xfc9e, 0xfaf4, 0xfb80, 0xfc31,
+ 0xfbc6, 0xfb15, 0xfd09, 0x00e6, 0x01db, 0x00e4,
+ 0x0118, 0xfff3, 0xfde7, 0xfdb3, 0xfc72, 0xface,
+ 0xfe54, 0x0493, 0x064a, 0x0242, 0xfe5c, 0x0073,
+ 0x030d, 0xfe8e, 0xfc60, 0x0302, 0x05c1, 0x0207,
+ 0x00d9, 0xff8f, 0xfe65, 0x02c2, 0x0596, 0x033e,
+ 0x0265, 0x03d1, 0x0420, 0x0255, 0x0220, 0x0509,
+ 0x0426, 0x02e7, 0x06bc, 0x04c8, 0x02b5, 0x0a49,
+ 0x07ee, 0xfeea, 0x04d8, 0x0815, 0x01a2, 0x0522,
+ 0x0819, 0x0390, 0x05e9, 0x085e, 0x071d, 0x0969,
+ 0x0711, 0x0252, 0x0484, 0x0641, 0x05da, 0x0548,
+ 0x0222, 0x02ba, 0x04c7, 0x0160, 0x007d, 0x0306,
+ 0x03db, 0x063a, 0x07b9, 0x0605, 0x037b, 0x018c,
+ 0x0678, 0x0c13, 0x06c9, 0x0210, 0x0292, 0x0028,
+ 0x021e, 0x0602, 0x026e, 0x017e, 0x04c2, 0x0415,
+ 0x02d5, 0x02dd, 0x02f5, 0x0217, 0x00f7, 0x0414,
+ 0x0561, 0x01c7, 0x0001, 0xfcb7, 0xfdc9, 0x0635,
+ 0x031f, 0xff19, 0x0781, 0x0470, 0xfb86, 0xfed7,
+ 0xff9b, 0xff34, 0x016e, 0xfcb9, 0xfbe2, 0xfe88,
+ 0xfd19, 0xfeee, 0xfaa3, 0xf4cd, 0xfc8a, 0xfc44,
+ 0xf451, 0xf997, 0xfb75, 0xf6fe, 0xf952, 0xf878,
+ 0xf720, 0xfaca, 0xfa61, 0xf8bd, 0xf672, 0xf431,
+ 0xf9c7, 0xfbcb, 0xf62b, 0xf8d0, 0xffbf, 0xff7c,
+ 0xfc07, 0xfa5c, 0xfb4e, 0xfc8a, 0xfc63, 0xfcb0,
+ 0xfd18, 0xfe88, 0x01d6, 0x0162, 0xfc23, 0xfba6,
+ 0x0214, 0x02e0, 0xfda8, 0x001d, 0x05a1, 0x0535,
+ 0x0348, 0xff2b, 0xfd55, 0x00f5, 0xfe05, 0xfc46,
+ 0x0290, 0x0066, 0xfe27, 0x03a1, 0x018b, 0x005c,
+ 0x0339, 0xffd3, 0x02c5, 0x05aa, 0xfe9c, 0x0375,
+ 0x0ac2, 0x0104, 0xfc73, 0x02de, 0x0384, 0x0011,
+ 0xfe61, 0x01b6, 0x0867, 0x088c, 0x02c4, 0xfe98,
+ 0xfe9f, 0x0321, 0x07c5, 0x060d, 0xfee1, 0xfdc1,
+ 0x04c5, 0x02f3, 0xfacb, 0xff37, 0x0661, 0x02c9,
+ 0xfe68, 0xfe68, 0xfec8, 0xfe79, 0xffa4, 0x0326,
+ 0x027c, 0xfe4b, 0xfe12, 0xfcdf, 0xf843, 0xf7e3,
+ 0xfc56, 0xfecb, 0xfb00, 0xf8ee, 0xfafb, 0xf4fa,
+ 0xf2ba, 0xfe98, 0xfdd7, 0xf2f9, 0xf80e, 0xfc85,
+ 0xf4f0, 0xf3f0, 0xf8c2, 0xf87a, 0xf4f6, 0xf51f,
+ 0xfab5, 0xfc12, 0xf7bd, 0xf789, 0xf9f1, 0xfa9c,
+ 0xfa6b, 0xf939, 0xf901, 0xfa33, 0xfd07, 0x0167,
+ 0x0297, 0x01a6, 0xfff9, 0xfd99, 0x0208, 0x0651,
+ 0x0182, 0x00b7, 0x0320, 0x0076, 0x0222, 0x03f2,
+ 0x00f0, 0x02dd, 0x0331, 0xff25, 0xff6c, 0xff57,
+ 0x01f2, 0x07f2, 0x031f, 0xfe9c, 0x052e, 0x05ad,
+ 0x01a2, 0x02ab, 0x00ff, 0x0015, 0x03f8, 0x050d,
+ 0x0406, 0x02fb, 0x05a3, 0x0b38, 0x03e3, 0xfb6a,
+ 0x066a, 0x0aaf, 0x004b, 0x02bf, 0x06b1, 0x016c,
+ 0x0393, 0x04e1, 0x0248, 0x061b, 0x05c3, 0x04b8,
+ 0x08cf, 0x0443, 0x007a, 0x0477, 0x031b, 0x0481,
+ 0x0aa4, 0x08d0, 0x0606, 0x07f5, 0x0ab9, 0x0a39,
+ 0x03d1, 0x03aa, 0x0a34, 0x092c, 0x083e, 0x0b5d,
+ 0x0a47, 0x09c4, 0x0a1d, 0x0857, 0x0467, 0xfef8,
+ 0x042e, 0x0bc8, 0x0536, 0x0318, 0x06fb, 0x01db,
+ 0x026e, 0x06e8, 0x03eb, 0x03eb, 0x0311, 0x0089,
+ 0x0372, 0x0198, 0xffc8, 0x042c, 0x0457, 0x0496,
+ 0x057b, 0x0459, 0x077f, 0x0535, 0x0038, 0x03a3,
+ 0x0132, 0xfe31, 0x04ad, 0x0247, 0xfcf5, 0x01a1,
+ 0x0235, 0xfe5c, 0xfe65, 0xfe8c, 0xfc72, 0xfaf7,
+ 0xfeda, 0x020a, 0xff65, 0xff4f, 0xfdbc, 0xf9d1,
+ 0xfdac, 0xfe9f, 0xfb7c, 0xff94, 0xff53, 0xfa3b,
+ 0xfbac, 0xfea5, 0x01e4, 0x02b6, 0xfda6, 0xfc5d,
+ 0xff34, 0x0150, 0x0103, 0xfc73, 0xfdee, 0x0443,
+ 0x02eb, 0x00c1, 0x018a, 0x02d9, 0x04e8, 0x0173,
+ 0x01f4, 0x07e9, 0x01f7, 0xfe7e, 0x049b, 0x0317,
+ 0x0381, 0x051b, 0x012e, 0x07f6, 0x0a71, 0x006d,
+ 0x0294, 0x047f, 0xffaf, 0x05e1, 0x055c, 0xfc1d,
+ 0x00b6, 0x0731, 0x04ee, 0x02ea, 0x029b, 0x0284,
+ 0xffe7, 0xfe3c, 0x019e, 0x0145, 0xfffa, 0x05a9,
+ 0x08a2, 0x04f0, 0x01cd, 0x01de, 0x03ea, 0x05d4,
+ 0x0742, 0x055e, 0xff80, 0xfed1, 0x042d, 0x06d9,
+ 0x04d5, 0x0242, 0x04d6, 0x07c9, 0x0374, 0x00d0,
+ 0x0389, 0x0588, 0x0933, 0x0bd8, 0x0921, 0x0401,
+ 0x00a8, 0x0680, 0x0bc4, 0x0430, 0x0363, 0x0c02,
+ 0x08c3, 0x02aa, 0x047d, 0x056e, 0x056c, 0x06e1,
+ 0x07c9, 0x043d, 0xff4e, 0x0452, 0x083f, 0x00db,
+ 0xffe2, 0x04c8, 0x0453, 0x03f5, 0x01f1, 0x00c4,
+ 0x0476, 0x030a, 0x0172, 0x045c, 0x027f, 0xfff5,
+ 0xffce, 0x0197, 0x06ee, 0x0616, 0x03a2, 0x06f5,
+ 0x0411, 0x0308, 0x0a46, 0x0871, 0x04ef, 0x098c,
+ 0x081f, 0x025c, 0x02a9, 0x0641, 0x0752, 0x04c9,
+ 0x04fb, 0x0745, 0x0658, 0x06b9, 0x06b5, 0x04a1,
+ 0x0725, 0x0803, 0x03d9, 0x0417, 0x07b1, 0x08ce,
+ 0x063b, 0x02b5, 0x031d, 0x0365, 0x00aa, 0x000a,
+ 0x01f1, 0x0477, 0x046e, 0x01a6, 0x018c, 0x00e8,
+ 0xfec9, 0xffc6, 0xffa9, 0x005d, 0x0287, 0xffc8,
+ 0x008b, 0x03eb, 0x0055, 0x0025, 0x039f, 0x0454,
+ 0x07bf, 0x0728, 0x02c2, 0x0343, 0x01e3, 0x0327,
+ 0x09c1, 0x08b4, 0x0622, 0x06eb, 0x05af, 0x07dd,
+ 0x0920, 0x0643, 0x0619, 0x057a, 0x07c0, 0x0b32,
+ 0x05ba, 0x0559, 0x0c18, 0x09a9, 0x06e6, 0x095a,
+ 0x09b3, 0x0961, 0x05d5, 0x033a, 0x07c8, 0x0a83,
+ 0x0977, 0x055a, 0xfe97, 0xffcf, 0x04f9, 0x0568,
+ 0x0509, 0x02ad, 0x02b3, 0x062e, 0x0155, 0xfd50,
+ 0x01c2, 0x0191, 0xff85, 0x003c, 0xff95, 0x026f,
+ 0x036e, 0xffd7, 0x045b, 0x06fc, 0xfd5b, 0xfaf0,
+ 0x0187, 0x0148, 0x0164, 0x04c0, 0x0133, 0x006b,
+ 0x04c6, 0x0011, 0xfce6, 0x0217, 0x00fa, 0x007a,
+ 0x04f7, 0x025c, 0x015b, 0x0440, 0x00a7, 0xfdb3,
+ 0xfd30, 0xfe44, 0x03c8, 0x0305, 0x0099, 0x0536,
+ 0x042a, 0x0261, 0x07cb, 0x0820, 0x034f, 0xff3b,
+ 0xffa9, 0x03d1, 0x007b, 0x007e, 0x08b4, 0x02ce,
+ 0xfcc8, 0x0527, 0x03c8, 0xfe6a, 0x03d0, 0x0584,
+ 0x0271, 0x01be, 0x03bf, 0x0583, 0x0082, 0xfff1,
+ 0x06e0, 0x039c, 0xfedc, 0x0319, 0x03c1, 0x0134,
+ 0x01d8, 0x051e, 0x061d, 0x0091, 0x012c, 0x071c,
+ 0x030b, 0x025b, 0x0a12, 0x0939, 0x03b4, 0x014e,
+ 0x0352, 0x0877, 0x05db, 0x0158, 0x0562, 0x092f,
+ 0x0818, 0x0281, 0xffd5, 0x069b, 0x0713, 0x02dd,
+ 0x06e9, 0x062c, 0x03e4, 0x07aa, 0x040f, 0x02cf,
+ 0x08b1, 0x04c2, 0xfecb, 0xffcf, 0x0314, 0x05da,
+ 0x020c, 0x0010, 0x03a1, 0xfebf, 0xfb9b, 0x0124,
+ 0x00e0, 0xff2c, 0x004a, 0x0091, 0x0189, 0xfca7,
+ 0xf915, 0xff5d, 0xffc9, 0xfd41, 0x0320, 0x0554,
+ 0x0015, 0xfb59, 0xfc7f, 0x00ed, 0xfdd9, 0xfc5d,
+ 0x037d, 0x00df, 0xf995, 0xfd75, 0x01a2, 0x0098,
+ 0xffac, 0x00c7, 0x0349, 0x00ac, 0xfec4, 0x049a,
+ 0x052d, 0x0205, 0x070a, 0x09ed, 0x045b, 0x00ea,
+ 0x0405, 0x0692, 0x03a4, 0x0358, 0x088f, 0x0884,
+ 0x04c2, 0x0620, 0x0812, 0x05a2, 0x0309, 0x02b2,
+ 0x01df, 0x0165, 0x0261, 0x01c3, 0x0355, 0x0678,
+ 0x0264, 0xffa5, 0x0346, 0x01fb, 0x0017, 0x0113,
+ 0xfeac, 0xfefd, 0x016a, 0x0118, 0x00aa, 0xfdb9,
+ 0xfde3, 0x00bc, 0xfc8c, 0xfe99, 0x03f8, 0xfc2b,
+ 0xfba7, 0x04c9, 0x0182, 0xfb8f, 0xfc91, 0x0181,
+ 0x04ac, 0xfd03, 0xfb3f, 0x0400, 0x038a, 0x04e5,
+ 0x0717, 0xfd84, 0xffd3, 0x074f, 0x0063, 0x0211,
+ 0x09ba, 0x079f, 0x0624, 0x0358, 0x0365, 0x09b7,
+ 0x05a5, 0x01bd, 0x0729, 0x0541, 0x013b, 0x0308,
+ 0x04b3, 0x04f6, 0x01da, 0x026e, 0x0591, 0xfda4,
+ 0xfa45, 0x0419, 0x05ec, 0x014d, 0x00b3, 0x009e,
+ 0x00a2, 0xfdaa, 0xfb4e, 0xffbe, 0x010b, 0xff08,
+ 0x00de, 0x0107, 0xff88, 0xfe6f, 0xfbb9, 0xfc3b,
+ 0xff58, 0xff31, 0xfc9d, 0xf9c7, 0xf9c7, 0xfd1d,
+ 0xfd7c, 0xfa19, 0xf9d4, 0xfcca, 0xfca4, 0xfb73,
+ 0xfc87, 0xfafd, 0xf9c7, 0xfb5c, 0xf920, 0xf8fa,
+ 0xfb9a, 0xf773, 0xf6b9, 0xfb31, 0xf988, 0xf8a5,
+ 0xf718, 0xf374, 0xf986, 0xfa81, 0xf1dd, 0xf5bd,
+ 0xfa2a, 0xf3bd, 0xf3f8, 0xf83e, 0xf87b, 0xf6ef,
+ 0xf2f9, 0xf52a, 0xfa67, 0xf69a, 0xf643, 0xfc94,
+ 0xfb8d, 0xf9b4, 0xfb94, 0xf81b, 0xf584, 0xfabc,
+ 0xfd9c, 0xfb1a, 0xfb04, 0xfae5, 0xf83f, 0xf9bb,
+ 0xfc18, 0xfa52, 0xf85d, 0xf5d1, 0xf78c, 0x0004,
+ 0x00a2, 0xfc4d, 0xfefc, 0xfe87, 0xfbc6, 0xfee9,
+ 0xfe07, 0xfbb9, 0xfef7, 0xfd9d, 0xfaa0, 0xfe71,
+ 0xfffe, 0xfd5a, 0xfe79, 0xff90, 0xfc0b, 0xf957,
+ 0xf942, 0xfa9c, 0xfe9c, 0x0037, 0xfe63, 0xfea1,
+ 0xfcd4, 0xfb88, 0x0012, 0xfe83, 0xfb83, 0x0192,
+ 0x0081, 0xfa2b, 0xfb4a, 0xfa6c, 0xfb6d, 0xffe0,
+ 0xfc59, 0xfc1f, 0xfe8d, 0xfa1e, 0xfe0d, 0x0324,
+ 0xfd6c, 0xfe03, 0xfffe, 0xfb2e, 0xfcf4, 0x0017,
+ 0xfffe, 0x0290, 0x020a, 0xffbb, 0xfdbc, 0xfa8a,
+ 0xfe1a, 0x0159, 0xfc7a, 0xfcd6, 0x0207, 0x0212,
+ 0xffa3, 0xfd43, 0xfd13, 0xff39, 0x0080, 0x023d,
+ 0x01d6, 0xff34, 0x00e5, 0x0215, 0xfedb, 0xff4c,
+ 0x0374, 0x0387, 0xff55, 0xfe5a, 0x02e2, 0x05b7,
+ 0x042a, 0x01b0, 0xffee, 0x00a5, 0x02d7, 0x03f7,
+ 0x0345, 0x00c2, 0x01bb, 0x057a, 0x03d8, 0x01b3,
+ 0x02af, 0x016a, 0x01d0, 0x04b2, 0x063b, 0x0736,
+ 0x03e7, 0x0181, 0x0505, 0x0271, 0xfe9b, 0x030d,
+ 0x0422, 0x02ab, 0x01e0, 0xfbc7, 0xfd2e, 0x0650,
+ 0x04bc, 0xff44, 0xfee4, 0xfdc6, 0xfd2e, 0xfd3b,
+ 0xfdf2, 0x0257, 0x0409, 0x00d7, 0xff23, 0x003d,
+ 0x0222, 0x0132, 0xfdb4, 0xfd79, 0x0083, 0x03a3,
+ 0x0472, 0x02cc, 0x048e, 0x0788, 0x039b, 0xfdee,
+ 0xfe79, 0x042c, 0x080a, 0x0542, 0x0482, 0x0849,
+ 0x057e, 0x038f, 0x0907, 0x0660, 0x00db, 0x064a,
+ 0x08c6, 0x03fb, 0x02d5, 0x027a, 0x035f, 0x0729,
+ 0x0601, 0x03b5, 0x0431, 0x02a0, 0x02ee, 0x0304,
+ 0xff23, 0x0176, 0x0544, 0x00ea, 0xfe68, 0xff7f,
+ 0x005f, 0x025b, 0xfe25, 0xf92b, 0xfd04, 0xfe51,
+ 0xfcec, 0xff40, 0xfefb, 0x0040, 0x012b, 0xfac1,
+ 0xfb6a, 0x013b, 0xfd0f, 0xf810, 0xf7bf, 0xf9f0,
+ 0xff21, 0xfde5, 0xfaa2, 0xfd68, 0xfb15, 0xf78a,
+ 0xf9a5, 0xf8af, 0xfa8e, 0x0036, 0xfd86, 0xf998,
+ 0xfb16, 0xfca7, 0xfdf5, 0xfda8, 0xfbfe, 0xfb85,
+ 0xface, 0xfa40, 0xf925, 0xf9ef, 0xfee0, 0xfe98,
+ 0xfb40, 0xfc97, 0xfad5, 0xfaa8, 0x00c1, 0xfefe,
+ 0xfaa5, 0xfcb1, 0xfc37, 0xfd5d, 0x0099, 0xfccc,
+ 0xfc36, 0x00fe, 0xff84, 0xfd7c, 0xff87, 0xffba,
+ 0xfe3a, 0xfbf6, 0xfa75, 0xfc50, 0xfda0, 0xfc7a,
+ 0xfc9c, 0xfe10, 0xfe5d, 0xff20, 0x01dc, 0x022f,
+ 0xfeb4, 0xfcba, 0xfccf, 0xfcbc, 0xfdf0, 0xff9e,
+ 0xff7f, 0xfe7c, 0xfe00, 0xfcdd, 0xfaf4, 0xfcfe,
+ 0x017c, 0x0107, 0xff17, 0xff47, 0xfe1d, 0xfeb6,
+ 0x0009, 0xfdf2, 0xfdff, 0xfe23, 0xfb78, 0xfcbb,
+ 0xfd22, 0xfac1, 0xfcd5, 0xfbc6, 0xf786, 0xfac1,
+ 0xfe53, 0xfd92, 0xfc03, 0xf856, 0xf97e, 0xfe7d,
+ 0xfc53, 0xfa77, 0xfd06, 0xfbe7, 0xfb56, 0xfd3c,
+ 0xfdb2, 0xfe76, 0xfc73, 0xfa07, 0xfd3b, 0xfda0,
+ 0xfb5f, 0xff13, 0xfffb, 0xfb0a, 0xfb0a, 0xfe04,
+ 0xfda8, 0xfd13, 0xfe9f, 0xffb4, 0xfe01, 0xfdee,
+ 0x0292, 0x026d, 0xfb8e, 0xfc17, 0x0328, 0x0293,
+ 0xfe67, 0xffff, 0x00f2, 0xfe7f, 0xff1c, 0x0149,
+ 0x01de, 0x01bb, 0xfe78, 0xfa9f, 0xfc43, 0xff96,
+ 0x00b1, 0x028e, 0x0467, 0x0270, 0xfe29, 0xfd9e,
+ 0x0115, 0x02bb, 0x02fb, 0x01d0, 0xfd94, 0xffde,
+ 0x05d3, 0x0053, 0xfc0e, 0x0390, 0x04e5, 0x00bb,
+ 0x01bc, 0xfec1, 0xfb6e, 0x018e, 0x05fb, 0x0355,
+ 0x00e5, 0x000a, 0x0044, 0x021b, 0x0493, 0x060b,
+ 0x064f, 0x0725, 0x05b2, 0x01f4, 0x03a7, 0x06a1,
+ 0x03d9, 0x03a5, 0x071a, 0x05de, 0x03f0, 0x060f,
+ 0x0741, 0x057f, 0x0512, 0x078f, 0x08b9, 0x079d,
+ 0x0721, 0x0734, 0x0a0a, 0x0e11, 0x0b2f, 0x06b5,
+ 0x087b, 0x0943, 0x078a, 0x080e, 0x082a, 0x0821,
+ 0x08e3, 0x07ae, 0x0582, 0x0332, 0x01f0, 0x02a0,
+ 0x012f, 0x0012, 0x036b, 0x0541, 0x03fa, 0x0314,
+ 0x0174, 0xffd3, 0xfee9, 0xfe50, 0xfff9, 0x0129,
+ 0xffb7, 0xffbe, 0x00a7, 0xfefd, 0xfdd1, 0x0075,
+ 0x0241, 0xff23, 0xfd9c, 0x0017, 0xff4a, 0xfd47,
+ 0xfd08, 0xf9cd, 0xfaa0, 0x0220, 0x0098, 0xf85f,
+ 0xfa37, 0xffcd, 0xfd42, 0xfaf3, 0x000d, 0x0374,
+ 0x0087, 0xfeb4, 0xff83, 0xff87, 0xff7e, 0xff1b,
+ 0xffa6, 0x0179, 0xffeb, 0xfea5, 0x00c1, 0x0062,
+ 0x025d, 0x0784, 0x030a, 0xfc03, 0xff1f, 0x0322,
+ 0x038b, 0x0494, 0x0287, 0xff7f, 0x0222, 0x05f9,
+ 0x04b9, 0x01b6, 0x02b6, 0x05a8, 0x0460, 0x0096,
+ 0x01a0, 0x063e, 0x06d3, 0x057c, 0x06a4, 0x04b5,
+ 0x01e5, 0x048c, 0x03f4, 0x0099, 0x04d7, 0x0814,
+ 0x05b1, 0x066a, 0x079e, 0x0751, 0x0865, 0x0843,
+ 0x074a, 0x040b, 0x0169, 0x0821, 0x0c4c, 0x05df,
+ 0x052e, 0x09cf, 0x0844, 0x04d3, 0x0403, 0x0713,
+ 0x09ce, 0x06ab, 0x06a2, 0x0acc, 0x0a98, 0x09f9,
+ 0x07cd, 0x03b7, 0x0712, 0x0a44, 0x07f9, 0x08da,
+ 0x080a, 0x04b6, 0x05d7, 0x05a1, 0x0578, 0x08d6,
+ 0x0696, 0x019f, 0x0311, 0x0693, 0x0606, 0x02ff,
+ 0x0439, 0x0713, 0x01d9, 0xfcba, 0x013a, 0x05ed,
+ 0x060c, 0x052b, 0x03ed, 0x0464, 0x05dd, 0x0655,
+ 0x079a, 0x0806, 0x048b, 0xff16, 0xfd75, 0x016e,
+ 0x032a, 0x0139, 0x0307, 0x0553, 0x031e, 0x00d3,
+ 0x00d5, 0x0262, 0x03a5, 0x0349, 0x02aa, 0x0109,
+ 0x01a3, 0x06c9, 0x06b9, 0x01fd, 0x027b, 0x035d,
+ 0x0287, 0x04c1, 0x05b9, 0x05d9, 0x0741, 0x0550,
+ 0x049f, 0x0795, 0x05b3, 0x021f, 0x04eb, 0x08ac,
+ 0x0787, 0x04cc, 0x033d, 0x02a3, 0x041f, 0x05c2,
+ 0x0548, 0x06b4, 0x0702, 0x00ec, 0xffbb, 0x0706,
+ 0x0925, 0x0647, 0x055d, 0x0384, 0x0158, 0x01e1,
+ 0x04d1, 0x079c, 0x05e0, 0x0386, 0x051b, 0x0508,
+ 0x03cb, 0x0587, 0x06dd, 0x069f, 0x0493, 0x015f,
+ 0x0228, 0x0470, 0x043a, 0x056e, 0x0705, 0x069e,
+ 0x072e, 0x0763, 0x05c8, 0x06d1, 0x0b83, 0x0da0,
+ 0x09d0, 0x0686, 0x07ec, 0x08c9, 0x0755, 0x06ca,
+ 0x07d8, 0x0983, 0x0959, 0x07d4, 0x0931, 0x0bdf,
+ 0x0b44, 0x078c, 0x0497, 0x0605, 0x0834, 0x061f,
+ 0x03f0, 0x03e6, 0x0252, 0x01f5, 0x0660, 0x0927,
+ 0x0512, 0x01ef, 0x052b, 0x065e, 0x036d, 0x02d2,
+ 0x0297, 0x01bc, 0x0226, 0x01a2, 0x03db, 0x0711,
+ 0x0383, 0x020c, 0x0615, 0x03cd, 0xfec0, 0xff2f,
+ 0x02da, 0x06ab, 0x04ff, 0x00bc, 0x02a1, 0x03d4,
+ 0x0064, 0xfeef, 0xff26, 0x0226, 0x0626, 0x03c4,
+ 0x0187, 0x0415, 0x0493, 0x04c4, 0x058b, 0x028f,
+ 0x0014, 0x0144, 0x0350, 0x0440, 0x0420, 0x0545,
+ 0x04d2, 0x005d, 0xffcf, 0x0307, 0x0289, 0x01a2,
+ 0x0201, 0x0165, 0x0370, 0x05e4, 0x04d0, 0x040f,
+ 0x0331, 0x0102, 0x00f1, 0x00cd, 0xffe3, 0x0221,
+ 0x0426, 0x0379, 0x0384, 0x03d6, 0x04e9, 0x06b4,
+ 0x04fd, 0x0400, 0x05df, 0x02c3, 0x000a, 0x046d,
+ 0x068f, 0x0559, 0x04c5, 0x0259, 0x03b1, 0x0837,
+ 0x07b3, 0x07d1, 0x08c7, 0x0444, 0x0151, 0x01d5,
+ 0x024e, 0x0410, 0x0376, 0x033e, 0x05b0, 0x027c,
+ 0x013a, 0x0687, 0x03a2, 0xff42, 0x0357, 0x0148,
+ 0xfb4f, 0xff97, 0x04fa, 0x02a0, 0x006d, 0x0186,
+ 0x001e, 0xfd1c, 0xfc8c, 0xfb64, 0xfc20, 0x0109,
+ 0x006a, 0xfda0, 0xffe9, 0xfdc8, 0xfc6f, 0x0376,
+ 0x0482, 0x006e, 0x0119, 0x0241, 0x0452, 0x044d,
+ 0x0124, 0x0605, 0x0a98, 0x0685, 0x0572, 0x0430,
+ 0x0188, 0x0601, 0x0707, 0x0398, 0x0525, 0x03ef,
+ 0x01f1, 0x04f6, 0x04f3, 0x0539, 0x0775, 0x0336,
+ 0xfed0, 0xffb6, 0x00fb, 0x02f3, 0x04b4, 0x045e,
+ 0x040c, 0x03c6, 0x0349, 0x01be, 0xffa7, 0x00aa,
+ 0x01f2, 0x0025, 0xff90, 0x0195, 0x02a9, 0x0077,
+ 0xfe32, 0x0095, 0x024d, 0xff79, 0xfec6, 0xff4f,
+ 0xfda0, 0xff5e, 0x038e, 0x0486, 0x03d0, 0x0259,
+ 0xffc6, 0xfee3, 0x007e, 0x028d, 0x0309, 0x00e5,
+ 0xff0c, 0x029d, 0x082f, 0x0715, 0x0301, 0x035a,
+ 0x042d, 0x0450, 0x064b, 0x05a1, 0x02ae, 0x025d,
+ 0x03c3, 0x04a4, 0x0385, 0x033f, 0x0611, 0x04e1,
+ 0x014f, 0x0333, 0x0532, 0x05d5, 0x06fb, 0x03cc,
+ 0x0307, 0x0543, 0xff88, 0xfe39, 0x077d, 0x07de,
+ 0x02b4, 0x050f, 0x0654, 0x046a, 0x0489, 0x0428,
+ 0x0474, 0x0521, 0x01f9, 0xfe81, 0xfebc, 0x00c8,
+ 0x01f3, 0x01c1, 0x0229, 0x0287, 0x0159, 0x0222,
+ 0x04eb, 0x0346, 0xfd0a, 0xfaad, 0xfee4, 0x007c,
+ 0xfc62, 0xfc24, 0xff4e, 0xfdb6, 0xfcdf, 0x0117,
+ 0x0212, 0xfe12, 0xfa4c, 0xf8fc, 0xfb28, 0xfca1,
+ 0xfa07, 0xf8f3, 0xf971, 0xf73b, 0xf704, 0xf9bd,
+ 0xfa85, 0xfab2, 0xf9a0, 0xf647, 0xf675, 0xf94d,
+ 0xf8c0, 0xf62f, 0xf5ad, 0xf835, 0xf937, 0xf5d8,
+ 0xf555, 0xf87c, 0xf85d, 0xf828, 0xf9e6, 0xfa8d,
+ 0xfc20, 0xfb9e, 0xf8a6, 0xfa66, 0xfb05, 0xf73f,
+ 0xf834, 0xf878, 0xf46a, 0xf865, 0xff88, 0xfd10,
+ 0xf929, 0xfbcf, 0xfec8, 0xfdcc, 0xfb39, 0xfa5b,
+ 0xfb38, 0xfb5f, 0xfc01, 0xfe7d, 0xfdab, 0xf97a,
+ 0xfb71, 0x0111, 0xff2b, 0xfbf2, 0xff02, 0xff2e,
+ 0xfb15, 0xfacb, 0xfc97, 0xfeaa, 0x0197, 0xffe5,
+ 0xfaaf, 0xfa28, 0xfca3, 0xfc4c, 0xfbae, 0xfc88,
+ 0xfbb0, 0xfba2, 0xfdfb, 0xfd47, 0xfbe8, 0xfe4c,
+ 0xfec9, 0xfd51, 0xfd9e, 0xfb90, 0xf92b, 0xfc5b,
+ 0x0135, 0x0244, 0xff5b, 0xfcc8, 0xfdc4, 0xfe62,
+ 0xfd2a, 0xfd23, 0xfdaf, 0xfd88, 0xfbdf, 0xfa99,
+ 0xfc82, 0xfc76, 0xfa9c, 0xfd1f, 0xfdb9, 0xfa75,
+ 0xfb95, 0xfdbd, 0xfbec, 0xfa50, 0xfce7, 0x01ca,
+ 0x0103, 0xfd41, 0xfedc, 0xfe2f, 0xfb18, 0xfe7b,
+ 0x00fc, 0x00db, 0x0103, 0xfd25, 0xfe13, 0x0231,
+ 0xfe4e, 0x0000, 0x04f8, 0xfe59, 0xfdae, 0x04fb,
+ 0x0325, 0x00e5, 0x0171, 0x01b9, 0x0790, 0x066a,
+ 0xfda2, 0x0063, 0x0529, 0x01e9, 0x0347, 0x0637,
+ 0x02cc, 0x0105, 0x02ab, 0x01aa, 0x01b3, 0x06b5,
+ 0x0621, 0xfdc1, 0xfd18, 0x01b0, 0xff8e, 0xfe28,
+ 0xfefa, 0xfd74, 0x00c6, 0x0391, 0xfe8f, 0xfcd0,
+ 0xfe7b, 0xfc35, 0xfc5a, 0xff31, 0xfcf8, 0xf9cc,
+ 0xfc5a, 0xfe6a, 0xfb53, 0xfc13, 0x0048, 0xfd35,
+ 0xfa3d, 0xfe13, 0xfdf0, 0xfb81, 0xfdc3, 0xfdc4,
+ 0xfaec, 0xfaa5, 0xfc1a, 0xfe60, 0xfecd, 0xfcea,
+ 0xfd58, 0xfecd, 0x0016, 0x0288, 0x0139, 0xfd62,
+ 0xfe03, 0x0021, 0x0147, 0x02ec, 0x009b, 0xfd41,
+ 0x00a3, 0x03ad, 0x0169, 0x018c, 0x0267, 0x00bf,
+ 0x03c2, 0x07cf, 0x0439, 0xfefa, 0xfe80, 0x018c,
+ 0x03ac, 0xff8d, 0xfb70, 0xff33, 0x01f1, 0xfe67,
+ 0xfce2, 0xff6e, 0x00c9, 0xff1e, 0xfcbe, 0xfba7,
+ 0xfbe1, 0xfe5f, 0xffef, 0xfc46, 0xfa4d, 0xfdd9,
+ 0xff5a, 0xfe2e, 0xfe0d, 0xfd82, 0xfc08, 0xfb83,
+ 0xfe88, 0x00e8, 0xfc39, 0xf998, 0xfe5a, 0xffa1,
+ 0xfe50, 0xfec9, 0xfb94, 0xfa6c, 0xff5c, 0x0141,
+ 0x00e3, 0x00d5, 0xfc50, 0xf8ce, 0xfc60, 0x0079,
+ 0x00c5, 0xfffc, 0xfff4, 0x0148, 0x01b9, 0xfdfe,
+ 0xfcf5, 0x03ed, 0x0532, 0xfcd9, 0xfc1f, 0x01c9,
+ 0x00c6, 0xfdf9, 0xfe1f, 0xff5b, 0x0148, 0xffa7,
+ 0xfd86, 0x00cd, 0x033a, 0x023d, 0x00c0, 0xfe34,
+ 0xfcaa, 0xfc85, 0xfe07, 0x0123, 0xff63, 0xfd4b,
+ 0x0148, 0x013b, 0xfe29, 0x002d, 0x0075, 0xfe6b,
+ 0xfdbc, 0xfca9, 0xfe4a, 0xfeba, 0xfb59, 0xfd1f,
+ 0xff4b, 0xfc2a, 0xfcc6, 0xffc3, 0xfedf, 0xfc4f,
+ 0xfa3f, 0xfb42, 0xfe1c, 0xffc0, 0xffd2, 0xfab5,
+ 0xf6e0, 0xfc25, 0xfeb0, 0xfc09, 0xfc5b, 0xfa99,
+ 0xf9cc, 0xfda1, 0xfbac, 0xf91c, 0xfd4d, 0xfe79,
+ 0xfc80, 0xfbe9, 0xfa89, 0xfa8d, 0xfacd, 0xf99c,
+ 0xfa70, 0xfacd, 0xfa9b, 0xfcb5, 0xfc45, 0xfa17,
+ 0xfadb, 0xfbe7, 0xfd79, 0xff17, 0xfbb4, 0xf7b8,
+ 0xf920, 0xfbb6, 0xfc23, 0xfc7b, 0xfe60, 0x001a,
+ 0xfe58, 0xfb8d, 0xfbe0, 0xfc94, 0xfd61, 0x0077,
+ 0x0121, 0xff33, 0xfe86, 0xfc73, 0xfd0e, 0x035f,
+ 0x041e, 0x001b, 0x003d, 0xffbc, 0xff9e, 0x01cc,
+ 0xfe6c, 0xfbe5, 0x0004, 0x0246, 0x028e, 0x0148,
+ 0xff84, 0x03b5, 0x049c, 0x00b7, 0x0340, 0x01d0,
+ 0xfd09, 0x0256, 0x0300, 0xfd45, 0x0099, 0x029e,
+ 0xff47, 0xfed8, 0xfded, 0xff4b, 0x0166, 0xfec7,
+ 0xfff9, 0x00f5, 0xfd15, 0x006e, 0x0529, 0x0231,
+ 0xfe2e, 0xfa5a, 0xfb57, 0x0136, 0x00d5, 0x006a,
+ 0x03b7, 0x0257, 0x022e, 0x02c1, 0xfede, 0xffff,
+ 0x029b, 0xffd6, 0x0007, 0x0264, 0x0394, 0x0504,
+ 0x0433, 0x05bb, 0x083f, 0x03f0, 0x01f6, 0x0540,
+ 0x054b, 0x04fa, 0x0392, 0x01a5, 0x078e, 0x0aa2,
+ 0x0400, 0x03c0, 0x098b, 0x0828, 0x03d7, 0x03e2,
+ 0x04db, 0x0404, 0x063a, 0x0a7a, 0x065f, 0x0079,
+ 0x0558, 0x078d, 0x00ca, 0x01a8, 0x06ff, 0x04b0,
+ 0x0282, 0x045c, 0x03d0, 0x0100, 0x0057, 0x02ff,
+ 0x0250, 0xfd42, 0xff7e, 0x0418, 0xfeb5, 0xfc2d,
+ 0x02a5, 0x0443, 0x028a, 0x01d4, 0xfded, 0xfe27,
+ 0x034d, 0x0256, 0xfefa, 0x005f, 0x02f6, 0x0362,
+ 0x00f1, 0xfecf, 0xfff9, 0x00ad, 0xfffc, 0xfffd,
+ 0xff6b, 0xfeea, 0x0062, 0x0375, 0x045e, 0xff74,
+ 0xfb46, 0xfdb0, 0x00e9, 0x0204, 0x00ee, 0xfe1e,
+ 0x0087, 0x059e, 0x04b2, 0x01e2, 0x0104, 0x019e,
+ 0x0349, 0x0071, 0xfcd5, 0xffd3, 0x0334, 0x0491,
+ 0x03aa, 0xfe8f, 0x009e, 0x06bd, 0x00bd, 0xfbf2,
+ 0x020c, 0x01f7, 0xfd51, 0xff5a, 0x00cf, 0xff3a,
+ 0x001b, 0x012a, 0xfffa, 0xff33, 0x0067, 0x025e,
+ 0x033f, 0x0154, 0xfee5, 0x00fe, 0x02f8, 0x0071,
+ 0x018b, 0x03a7, 0x000d, 0x0113, 0x04ae, 0x0104,
+ 0x015c, 0x06da, 0x0539, 0x014a, 0x0024, 0x00a0,
+ 0x03b8, 0x044d, 0x02b9, 0x0320, 0x02d3, 0x05a6,
+ 0x0926, 0x0384, 0xff57, 0x043d, 0x0701, 0x05b4,
+ 0x03a5, 0x0173, 0x0230, 0x02d7, 0x028c, 0x0439,
+ 0x04cb, 0x064a, 0x087b, 0x0520, 0x038d, 0x06e8,
+ 0x0654, 0x054d, 0x05ef, 0x023f, 0xff36, 0x0125,
+ 0x0433, 0x04f5, 0x0249, 0x0262, 0x065d, 0x05f6,
+ 0x0520, 0x0642, 0x00e8, 0xfd85, 0x0512, 0x09b2,
+ 0x045d, 0x0006, 0x03ca, 0x0983, 0x06b5, 0x0023,
+ 0x01ac, 0x03cf, 0xff16, 0xffde, 0x06f1, 0x05ae,
+ 0x0111, 0x0412, 0x052a, 0x0199, 0x0389, 0x0525,
+ 0x0292, 0x04a7, 0x048f, 0xffd4, 0x04d0, 0x0b08,
+ 0x063f, 0x053f, 0x0a00, 0x062c, 0x0050, 0x032b,
+ 0x0654, 0x02bb, 0x021b, 0x0897, 0x088d, 0x01d9,
+ 0x02ea, 0x065c, 0x0327, 0x00d3, 0x025c, 0x04ae,
+ 0x0573, 0x031c, 0x034b, 0x0561, 0x0454, 0x059a,
+ 0x05e3, 0x01aa, 0x046e, 0x07ac, 0x028f, 0x0453,
+ 0x09b4, 0x0513, 0x02f4, 0x06aa, 0x046a, 0x0266,
+ 0x06ec, 0x0933, 0x05ab, 0x036e, 0x05ae, 0x0699,
+ 0x0526, 0x05ac, 0x05a5, 0x04a6, 0x049f, 0x01cb,
+ 0x012c, 0x06d0, 0x0765, 0x045a, 0x07d5, 0x089c,
+ 0x0317, 0x0386, 0x0736, 0x05d6, 0x0566, 0x0867,
+ 0x095f, 0x083b, 0x067a, 0x05b4, 0x07f0, 0x07eb,
+ 0x0522, 0x076c, 0x091e, 0x0502, 0x05d8, 0x08ef,
+ 0x04a2, 0x01be, 0x0336, 0x0188, 0x00ca, 0x049d,
+ 0x07b8, 0x0748, 0x0625, 0x0752, 0x0728, 0x0601,
+ 0x08a0, 0x063c, 0xfe9a, 0x00a5, 0x060a, 0x056b,
+ 0x05bb, 0x053c, 0x0556, 0x0949, 0x0604, 0x0185,
+ 0x054a, 0x04a2, 0x02b2, 0x073f, 0x0615, 0x01a0,
+ 0x0306, 0x0553, 0x06a3, 0x0602, 0x03ef, 0x022c,
+ 0xfd75, 0xfe64, 0x0617, 0x04c5, 0x0367, 0x0927,
+ 0x066b, 0x036c, 0x062e, 0x0139, 0xffab, 0x0549,
+ 0x0287, 0x007c, 0x0420, 0x03b9, 0x0390, 0x0254,
+ 0xff76, 0x03ae, 0x059c, 0x0167, 0x021f, 0x0268,
+ 0x006b, 0x0379, 0x050c, 0x035b, 0x02da, 0x012c,
+ 0x0193, 0x0412, 0x0352, 0x046f, 0x06f3, 0x04ed,
+ 0x04b6, 0x0663, 0x034b, 0x0212, 0x0397, 0xff1f,
+ 0xfc10, 0x018c, 0x04e7, 0x041a, 0x05e3, 0x04af,
+ 0xfeb3, 0xfc76, 0xfe4d, 0x0003, 0xffb0, 0xfeb2,
+ 0x0320, 0x0751, 0x0256, 0xffa5, 0x03ba, 0x030f,
+ 0x00b4, 0x00ab, 0xfe11, 0xfd49, 0xfeb5, 0xff29,
+ 0x02d0, 0x0362, 0xff50, 0x0309, 0x05d2, 0xfd6b,
+ 0xfb18, 0x0284, 0x028e, 0xfc7f, 0xfd13, 0x02a0,
+ 0x0437, 0x02c4, 0x02c3, 0x001f, 0xfc6d, 0x00b2,
+ 0x06cc, 0x04e5, 0x00ec, 0x01d6, 0x0706, 0x0b03,
+ 0x070d, 0x00a5, 0x01cc, 0x060f, 0x05e9, 0x03de,
+ 0x0436, 0x0520, 0x038e, 0x0316, 0x057d, 0x051e,
+ 0x03f2, 0x0624, 0x0584, 0x02a3, 0x0431, 0x0661,
+ 0x0614, 0x04f9, 0x0317, 0x0386, 0x04fe, 0x0378,
+ 0x03cb, 0x04e9, 0x0239, 0x02ff, 0x063e, 0x050c,
+ 0x066f, 0x088b, 0x0273, 0xfe49, 0x00d0, 0x001d,
+ 0xfeda, 0x0155, 0x01a9, 0x0075, 0x00a4, 0xffcc,
+ 0xffaa, 0x0215, 0x0230, 0xfef9, 0xff62, 0x0407,
+ 0x04fc, 0x0263, 0x01ac, 0x010f, 0x0090, 0x02a4,
+ 0x02d0, 0xffb7, 0xff0c, 0x036c, 0x088b, 0x06b7,
+ 0x01c2, 0x0496, 0x07a5, 0x024c, 0xffe7, 0x0452,
+ 0x07d4, 0x09e7, 0x09cd, 0x06ca, 0x0396, 0x0171,
+ 0x04bf, 0x09a0, 0x0573, 0x0122, 0x0468, 0x04d1,
+ 0x04a0, 0x08a6, 0x072b, 0x0370, 0x05b6, 0x06dd,
+ 0x038f, 0x003e, 0x002b, 0x04aa, 0x079c, 0x064e,
+ 0x0669, 0x057b, 0x019d, 0xfffd, 0xfe03, 0xfcf8,
+ 0x03d1, 0x08b6, 0x040b, 0x00b6, 0x0016, 0xfd47,
+ 0xff1f, 0x0327, 0x010a, 0x0053, 0x0239, 0xfed3,
+ 0xfef9, 0x04ef, 0x01bb, 0xfb64, 0xff9e, 0x02c6,
+ 0xfca8, 0xf8ad, 0xfbcc, 0xff9f, 0xfed8, 0xfaf7,
+ 0xf9fb, 0xfc65, 0xfdf9, 0xfe0f, 0xfe12, 0xfdd9,
+ 0xfbb6, 0xf9d5, 0xfbc6, 0xfbb4, 0xf8ee, 0xfd29,
+ 0x004e, 0xf966, 0xf76c, 0xfb5c, 0xf8a8, 0xf851,
+ 0xfcf9, 0xfb3b, 0xf8f9, 0xfa9c, 0xf98a, 0xf918,
+ 0xfa53, 0xf917, 0xf94e, 0xfb29, 0xfa08, 0xf615,
+ 0xf2ff, 0xf6a3, 0xfc7b, 0xf9f1, 0xf709, 0xfb46,
+ 0xfb6c, 0xf6ff, 0xf7dc, 0xfa77, 0xfa6d, 0xfb16,
+ 0xfbef, 0xfabe, 0xfa47, 0xfc81, 0xfd1a, 0xfb2f,
+ 0xfc8b, 0xff43, 0xfeee, 0xff76, 0x000d, 0xfdbc,
+ 0xfbf0, 0xfa39, 0xfa6b, 0xff90, 0x008a, 0xfd02,
+ 0xff30, 0x0310, 0x04ca, 0x055b, 0xfec2, 0xf805,
+ 0xfb22, 0xfd20, 0xfa36, 0xfb7f, 0xfdad, 0xfc69,
+ 0xfc9f, 0x0044, 0x02d0, 0xff46, 0xf971, 0xf749,
+ 0xf68d, 0xf7fb, 0xfc26, 0xfcd4, 0xfcd3, 0xfe75,
+ 0xfb8c, 0xfa7f, 0xfeef, 0xfd30, 0xf82c, 0xf911,
+ 0xfa55, 0xfad8, 0xfd19, 0xfc35, 0xf9d7, 0xfb41,
+ 0xfdc3, 0xfe15, 0xfc4f, 0xfaaf, 0xfc1b, 0xfeb7,
+ 0xfe78, 0xfd46, 0x004e, 0x04cc, 0x0349, 0xff8d,
+ 0x0056, 0x00d6, 0xfff5, 0x030e, 0x050e, 0x0148,
+ 0xfdbe, 0xfe33, 0x01dc, 0x0468, 0x000a, 0xface,
+ 0xfe29, 0x0463, 0x04d8, 0x01f0, 0x0038, 0xffa0,
+ 0x001c, 0x03c8, 0x073d, 0x0400, 0x004b, 0x0440,
+ 0x077e, 0x055a, 0x051f, 0x045d, 0xff78, 0xfc50,
+ 0xf9fc, 0xf7ab, 0xfaf9, 0xfe3b, 0xfcc8, 0xfeed,
+ 0x02fc, 0x0246, 0x029d, 0x04b1, 0x014e, 0xfbba,
+ 0xfa2c, 0xf9f4, 0xf7e9, 0xf737, 0xfa3e, 0xfdb8,
+ 0x0004, 0x0158, 0xffab, 0xfe6d, 0x0090, 0xff91,
+ 0xfc35, 0xfd96, 0x010d, 0x048d, 0x07b2, 0x0573,
+ 0x010e, 0xff5e, 0xfd82, 0xfd57, 0xff34, 0xff3f,
+ 0x01d6, 0x06eb, 0x0843, 0x0888, 0x0841, 0x050d,
+ 0x039d, 0x02c9, 0xffe2, 0x013c, 0x051b, 0x0487,
+ 0x0351, 0x02ed, 0xffc4, 0xff0c, 0x033a, 0x048c,
+ 0x0343, 0x04f3, 0x04c2, 0x0064, 0xfe3b, 0xfe09,
+ 0xfea7, 0x01b7, 0x00f3, 0xfcb9, 0xfe02, 0xff3c,
+ 0xfb0f, 0xfa53, 0xfc4d, 0xfb42, 0xfd67, 0x032e,
+ 0x03d5, 0xfffe, 0xfe78, 0x00a9, 0x042f, 0x05f6,
+ 0x02a4, 0xfc3b, 0xfac2, 0xfe30, 0xfd3e, 0xf860,
+ 0xf7fa, 0xfa93, 0xfaf3, 0xfd10, 0x0318, 0x04a3,
+ 0x0016, 0xff5a, 0x022e, 0x01d4, 0x023c, 0x052b,
+ 0x0567, 0x0374, 0x012c, 0x0004, 0x01b3, 0x017b,
+ 0xff74, 0x0101, 0x00d4, 0xfcb1, 0xfc1d, 0xfd1f,
+ 0xfb07, 0xf9f9, 0xfb9d, 0xfcde, 0xfc64, 0xfc2d,
+ 0xfef3, 0x0221, 0x0200, 0x010b, 0x0213, 0x01e8,
+ 0xfcd5, 0xf7b4, 0xf872, 0xf967, 0xf74f, 0xf836,
+ 0xf953, 0xf789, 0xfac0, 0x0108, 0x0128, 0xfe83,
+ 0xfee9, 0xfffe, 0xfdb2, 0xf8ec, 0xf815, 0xfb47,
+ 0xfba3, 0xfb41, 0xfdab, 0xfce9, 0xf9c2, 0xfb8f,
+ 0xfe45, 0xfc67, 0xfae4, 0xfbcd, 0xfc67, 0xfdaa,
+ 0xfe75, 0xfd11, 0xfd09, 0xfdf0, 0xfcce, 0xfb2b,
+ 0xf97a, 0xfa39, 0xfe6d, 0xfd7b, 0xf950, 0xfc0e,
+ 0xfe1b, 0xfa82, 0xfa9c, 0xfc1d, 0xfaa0, 0xfabf,
+ 0xfa2a, 0xf8cd, 0xfb13, 0xfb31, 0xf89a, 0xfa0d,
+ 0xf9d8, 0xf522, 0xf550, 0xf94d, 0xfae2, 0xfe45,
+ 0x017d, 0xfd52, 0xf8e9, 0xf92f, 0xf71d, 0xf57c,
+ 0xf873, 0xfa54, 0xfcb7, 0x006c, 0x0065, 0x01db,
+ 0x03b4, 0xfde5, 0xfa41, 0xfd24, 0xfb90, 0xf91f,
+ 0xfcf2, 0x0195, 0x02b4, 0xffac, 0xfcfd, 0xff05,
+ 0xff2b, 0xfb8a, 0xf9c0, 0xf8c2, 0xf8cd, 0xf9c4,
+ 0xf6c0, 0xf491, 0xf8f5, 0xfdf3, 0xffc7, 0x0027,
+ 0xff88, 0xfdcc, 0xfa93, 0xf7b9, 0xf868, 0xfb81,
+ 0xfce4, 0xfb69, 0xfbf6, 0xffdc, 0xffc7, 0xfc5b,
+ 0xfd23, 0xfed9, 0xfcfe, 0xfbc3, 0xfc54, 0xfabd,
+ 0xf828, 0xfa6f, 0xfe2d, 0xfc4e, 0xfc97, 0x0293,
+ 0x03af, 0x02ab, 0x0445, 0x0293, 0x03ff, 0x0965,
+ 0x060f, 0x0128, 0x031c, 0x02e4, 0x0077, 0x0070,
+ 0x01a8, 0x0361, 0x01ca, 0xffc2, 0x02ce, 0x0585,
+ 0x0882, 0x0ca4, 0x097a, 0x043c, 0x022a, 0xfe0e,
+ 0xff74, 0x071d, 0x08d1, 0x088e, 0x0914, 0x0495,
+ 0x019a, 0x0257, 0x013d, 0x0151, 0x03a1, 0x0623,
+ 0x0925, 0x09de, 0x0870, 0x072f, 0x065e, 0x0893,
+ 0x0ac4, 0x06e0, 0x00e3, 0xfdeb, 0xff2e, 0x03e0,
+ 0x052a, 0x0232, 0x0164, 0x0067, 0xfe94, 0x01af,
+ 0x0426, 0x000d, 0xfde9, 0x0238, 0x05c3, 0x0429,
+ 0x0066, 0xff1c, 0x0109, 0x02ef, 0x0299, 0xffb4,
+ 0xfd3b, 0x00a1, 0x05b7, 0x0418, 0x0145, 0x0242,
+ 0x0003, 0xfb75, 0xfa96, 0xf9dd, 0xf8ec, 0xfc81,
+ 0x01da, 0x0284, 0xfe37, 0xfd0d, 0x01e6, 0x045f,
+ 0x0493, 0x0610, 0x0151, 0xf9ae, 0xf913, 0xf941,
+ 0xf735, 0xf870, 0xfb7f, 0xfef7, 0x010b, 0x00b1,
+ 0x01fe, 0x015d, 0xfeec, 0x0243, 0x02ee, 0xfd9d,
+ 0xfd45, 0xfc96, 0xfaaa, 0x00cf, 0x02dd, 0xfd71,
+ 0xffd4, 0x035a, 0x0027, 0xfef0, 0xfd87, 0xfaa5,
+ 0xfd3d, 0xff70, 0xfdf6, 0x0136, 0x066b, 0x04c6,
+ 0x0020, 0x0099, 0x0590, 0x07ba, 0x0377, 0xff3d,
+ 0x01dc, 0x0619, 0x0581, 0x03e5, 0x039c, 0x02b7,
+ 0x02a6, 0x031b, 0x0460, 0x0878, 0x091f, 0x0436,
+ 0x0332, 0x072b, 0x0a09, 0x0b34, 0x0b8d, 0x0b6d,
+ 0x09be, 0x06f0, 0x0787, 0x0813, 0x0404, 0x02dd,
+ 0x0738, 0x0abc, 0x0b4d, 0x0927, 0x0780, 0x0825,
+ 0x068f, 0x04cd, 0x05eb, 0x0514, 0x034a, 0x02cb,
+ 0x0119, 0x00e6, 0x030f, 0x0561, 0x083b, 0x07db,
+ 0x0543, 0x06da, 0x089e, 0x072a, 0x05d7, 0x04e7,
+ 0x0631, 0x082b, 0x05ee, 0x049f, 0x054d, 0x0292,
+ 0x023d, 0x0532, 0x03fc, 0x039f, 0x0658, 0x043f,
+ 0x026c, 0x0895, 0x0d8d, 0x0a68, 0x070a, 0x07b6,
+ 0x06e3, 0x0364, 0x0162, 0x015f, 0x016c, 0x0114,
+ 0x0159, 0x02c0, 0x0491, 0x0687, 0x0576, 0xff05,
+ 0xfaef, 0xfc9e, 0xfd41, 0xff5a, 0x057b, 0x07d3,
+ 0x0812, 0x0a4b, 0x08a3, 0x0420, 0x0081, 0xfca8,
+ 0xfc90, 0xfee9, 0xfcd7, 0xfbbf, 0x0120, 0x066d,
+ 0x0687, 0x04a3, 0x05f2, 0x074c, 0x029a, 0xffef,
+ 0x05c0, 0x0848, 0x0454, 0x04fd, 0x07ab, 0x0586,
+ 0x05a7, 0x07f9, 0x0362, 0xff50, 0x045f, 0x078b,
+ 0x047b, 0x0514, 0x094b, 0x0cd3, 0x0f25, 0x0bf2,
+ 0x06a1, 0x06fe, 0x0733, 0x042c, 0x04a3, 0x0612,
+ 0x0587, 0x07ac, 0x08f6, 0x0576, 0x0429, 0x0636,
+ 0x0646, 0x0738, 0x0a14, 0x080e, 0x0334, 0x032f,
+ 0x0548, 0x04cf, 0x0439, 0x0569, 0x0760, 0x08b7,
+ 0x0802, 0x05c8, 0x03a0, 0x02ff, 0x04ee, 0x07a3,
+ 0x082d, 0x05b5, 0x0243, 0x010a, 0x00c0, 0xff49,
+ 0x00c5, 0x05a9, 0x0786, 0x05b8, 0x046a, 0x03cb,
+ 0x00f5, 0xfd74, 0xffa6, 0x0394, 0x004b, 0xfda3,
+ 0x0140, 0x00f2, 0xff78, 0x0575, 0x09bc, 0x06db,
+ 0x03a6, 0x0162, 0xfec8, 0xfd8d, 0xfe79, 0x0005,
+ 0xff4a, 0xfde0, 0x005a, 0x0559, 0x0719, 0x022b,
+ 0xfc3a, 0xfd46, 0xfeba, 0xfa56, 0xf971, 0xfe1f,
+ 0x0141, 0x0319, 0x026c, 0xfe89, 0xfe9c, 0x0256,
+ 0x028f, 0xffa9, 0xfeb6, 0x0115, 0x0266, 0x00c9,
+ 0x004b, 0x0082, 0x0019, 0x0158, 0x017a, 0x0021,
+ 0x0124, 0x00b0, 0xfea5, 0x0110, 0x0540, 0x084e,
+ 0x09f7, 0x060b, 0x0137, 0x030a, 0x0582, 0x0457,
+ 0x04e6, 0x079d, 0x0736, 0x03ee, 0x04bd, 0x0975,
+ 0x08d9, 0x04e3, 0x05a3, 0x0606, 0x0302, 0x025f,
+ 0x031b, 0x043f, 0x0740, 0x0622, 0x0130, 0x004d,
+ 0x0118, 0xffdb, 0x0077, 0x02cf, 0x0424, 0x05a2,
+ 0x07cf, 0x0892, 0x064c, 0x03be, 0x04cf, 0x06ee,
+ 0x072e, 0x066f, 0x0269, 0xfcc0, 0xfe47, 0x0580,
+ 0x077e, 0x03a9, 0x02bb, 0x0663, 0x0791, 0x04d7,
+ 0x0471, 0x065a, 0x05e2, 0x03c1, 0x01fd, 0x012a,
+ 0x00ed, 0xff55, 0xff08, 0x0301, 0x05cd, 0x03f1,
+ 0x01f4, 0x03d0, 0x076d, 0x0628, 0x013f, 0x0182,
+ 0x0443, 0x0367, 0x032b, 0x0418, 0x0487, 0x071c,
+ 0x0685, 0xffa3, 0xfc2a, 0xffca, 0x0314, 0x00da,
+ 0xfd4e, 0xff9b, 0x0305, 0x00ab, 0xfe7a, 0xffba,
+ 0x01bb, 0x0387, 0x003c, 0xfb74, 0xfe7c, 0x00de,
+ 0xfe3d, 0x00ec, 0x0464, 0x01aa, 0xff5f, 0xfdf9,
+ 0xfc96, 0xfefa, 0x0189, 0x0182, 0x004b, 0xfe96,
+ 0xfff6, 0x01e4, 0xff84, 0xff2a, 0x0199, 0xff5e,
+ 0xfc66, 0xfe1e, 0x003b, 0xffc7, 0xff1a, 0x0043,
+ 0x008e, 0xffd6, 0x0447, 0x08f4, 0x04ee, 0x0169,
+ 0x04b1, 0x062c, 0x04fd, 0x04b9, 0x0443, 0x050b,
+ 0x0600, 0x04e8, 0x0446, 0x03f2, 0x043b, 0x0687,
+ 0x05b7, 0x0195, 0x00fb, 0x03a2, 0x0571, 0x04c1,
+ 0x0378, 0x0689, 0x09ed, 0x05cf, 0x00a5, 0x021c,
+ 0x04cd, 0x048b, 0x049c, 0x0551, 0x03b0, 0x02eb,
+ 0x06b6, 0x076d, 0x01bd, 0xff8d, 0x00ec, 0xff73,
+ 0xfefe, 0xff58, 0xfdcb, 0xff61, 0x00f8, 0xfe74,
+ 0xfea9, 0xff98, 0xfcc8, 0xfdc5, 0x0159, 0x004f,
+ 0x0032, 0x0378, 0x034d, 0xfffc, 0xfd94, 0xfbef,
+ 0xfbf8, 0xfd4d, 0xfb06, 0xf7d5, 0xfd03, 0x051e,
+ 0x047c, 0x0117, 0x0167, 0xfe32, 0xf766, 0xf3df,
+ 0xf3f4, 0xf6db, 0xf94b, 0xf7c8, 0xf8a4, 0xfdf9,
+ 0xfe9a, 0xfaac, 0xfc24, 0x015e, 0xff6c, 0xf904,
+ 0xf9c8, 0xfd7e, 0xfccc, 0xfe10, 0xff7d, 0xfb01,
+ 0xfabd, 0x00c2, 0x00ce, 0xfc7a, 0xfc9b, 0xfffc,
+ 0x00a1, 0xfd42, 0xfd0b, 0x006e, 0xfe48, 0xfaa3,
+ 0xfaf8, 0xf9ac, 0xfc1b, 0x0412, 0x03ec, 0xff35,
+ 0xff91, 0xfe44, 0xfbe4, 0xfd1e, 0xfc52, 0xf9d0,
+ 0xf9ed, 0xfcba, 0x00e4, 0x014f, 0xff72, 0x0014,
+ 0xfd25, 0xf98e, 0xfcbc, 0xfc20, 0xf894, 0xfd7d,
+ 0xff46, 0xf9d8, 0xfb15, 0xfd63, 0xf98d, 0xf835,
+ 0xf871, 0xf69c, 0xf64d, 0xf5c0, 0xf4c4, 0xf643,
+ 0xf88e, 0xfb7c, 0xfcbf, 0xf963, 0xf7c8, 0xf8fa,
+ 0xf69b, 0xf447, 0xf5bb, 0xf787, 0xf979, 0xfa65,
+ 0xf8e0, 0xf8c6, 0xf9da, 0xf982, 0xf912, 0xf86c,
+ 0xf860, 0xf9b9, 0xf966, 0xf96f, 0xfb96, 0xfb9b,
+ 0xfc98, 0xfeea, 0xfa06, 0xf639, 0xfdc1, 0x0263,
+ 0xfe91, 0xffa9, 0x044d, 0x044c, 0x0246, 0x0072,
+ 0x009c, 0x02e7, 0x01f4, 0x0160, 0x053f, 0x0476,
+ 0x0059, 0x0290, 0x03f6, 0x0083, 0x017f, 0x0433,
+ 0x02ad, 0x01d3, 0x0131, 0xff81, 0x02e2, 0x0768,
+ 0x04d4, 0x00c4, 0x00eb, 0x018c, 0x0199, 0x0273,
+ 0x0298, 0x0309, 0x04db, 0x037e, 0xfef6, 0xfe8d,
+ 0x0037, 0xfc6f, 0xf8f3, 0xfc9a, 0x00e9, 0x012c,
+ 0xff93, 0xfd59, 0xfcdb, 0xfd99, 0xfc77, 0xfd4e,
+ 0x00f9, 0x020d, 0x03c0, 0x07c0, 0x06a2, 0x0265,
+ 0x0014, 0xfb8e, 0xf80f, 0xfc7c, 0x015b, 0x0032,
+ 0xff86, 0x01b9, 0x019b, 0x00d2, 0x0300, 0x0275,
+ 0xfe1c, 0xfeca, 0x016f, 0xfd47, 0xfa45, 0xff06,
+ 0x034d, 0x03de, 0x0397, 0x0236, 0x00ce, 0xff52,
+ 0xfcad, 0xfc06, 0xfe4a, 0xffca, 0xfe07, 0xfbaa,
+ 0xfde2, 0x0079, 0xfe3e, 0x0047, 0x0624, 0x0258,
+ 0xfcad, 0x0082, 0x02c9, 0xffa2, 0xfe44, 0xfc67,
+ 0xfb77, 0xffc7, 0x0205, 0xff07, 0xfe3d, 0x0129,
+ 0x0159, 0xfcab, 0xf99b, 0xfabd, 0xfa8d, 0xfa27,
+ 0xfc8c, 0xfc5b, 0xfac1, 0xfd65, 0x0040, 0x015d,
+ 0x0275, 0x002f, 0xfcfa, 0xfe72, 0x0127, 0x0157,
+ 0xffae, 0xfdd2, 0xfdf1, 0xfe36, 0xfe5b, 0x023e,
+ 0x050d, 0x02d8, 0x0245, 0x01a7, 0xfcf3, 0xfbf8,
+ 0xff1e, 0x0074, 0x02da, 0x050a, 0x037a, 0x0239,
+ 0x0131, 0xffdc, 0x007b, 0xfec6, 0xfd8b, 0x0299,
+ 0x03f4, 0xffed, 0x00ca, 0x00fc, 0xfcfa, 0xfd98,
+ 0x0055, 0xffd8, 0xfd48, 0xf9eb, 0xfc1f, 0x00d2,
+ 0xfc63, 0xf842, 0xfd27, 0xfea3, 0xfc5e, 0xff15,
+ 0x02df, 0x03ed, 0x003d, 0xfa6e, 0xfc9c, 0x00de,
+ 0xfd9f, 0xfbce, 0xfbe2, 0xf775, 0xf6c6, 0xfaad,
+ 0xfbf8, 0xfdc1, 0xfffa, 0xff33, 0xfcde, 0xf8c9,
+ 0xf705, 0xfaed, 0xfe40, 0x00ef, 0x03c6, 0xffe7,
+ 0xfb1c, 0xfc33, 0xfa12, 0xf587, 0xf750, 0xfa30,
+ 0xfa94, 0xfb64, 0xfa97, 0xf9ec, 0xfad7, 0xf87d,
+ 0xf710, 0xfac7, 0xfb7b, 0xfa44, 0xfd68, 0xfcee,
+ 0xf902, 0xfc79, 0xffd0, 0xfa6d, 0xf64d, 0xf7e3,
+ 0xf9b5, 0xfa33, 0xfa5d, 0xfd71, 0x006a, 0xfc12,
+ 0xfa83, 0x01b7, 0x0064, 0xf71d, 0xf851, 0xfebe,
+ 0xfebc, 0xfcae, 0xfc18, 0xfc7e, 0xfda1, 0xfeaa,
+ 0x0063, 0xffff, 0xfc9d, 0xfcf2, 0xff43, 0xfcf7,
+ 0xfa10, 0xfa83, 0xfc55, 0xfdbe, 0xfd87, 0xfe0a,
+ 0x00fa, 0x033b, 0x0481, 0x038f, 0xfdd2, 0xfa39,
+ 0xfd54, 0xffb7, 0xfe18, 0xfd7f, 0x0029, 0x01d0,
+ 0xfec2, 0xfc9e, 0x0022, 0x029b, 0x00e8, 0x00db,
+ 0x029d, 0x0181, 0xfeb5, 0xff39, 0x0278, 0x0366,
+ 0x0219, 0x00fc, 0x005a, 0x0205, 0x0375, 0x011e,
+ 0x00f4, 0x03a1, 0x025d, 0xff4e, 0xfc31, 0xf991,
+ 0xfdb3, 0x025e, 0x000b, 0x00e6, 0x045a, 0x0036,
+ 0xfcfa, 0x008b, 0x0195, 0xff93, 0x0129, 0x0498,
+ 0x03d0, 0x00da, 0x02b1, 0x0490, 0x00e5, 0x0052,
+ 0x02fb, 0x01cd, 0x0377, 0x07e6, 0x072a, 0x0792,
+ 0x094d, 0x03cc, 0xfe63, 0xfecd, 0xfecc, 0xff1f,
+ 0x0202, 0x04a6, 0x061e, 0x0540, 0x0364, 0x029a,
+ 0xffbe, 0xfe1d, 0x0301, 0x06b1, 0x04bc, 0x02c8,
+ 0x0101, 0xff99, 0x0191, 0x029d, 0x002e, 0xfe5c,
+ 0xfeae, 0x0199, 0x04bb, 0x02f5, 0x0068, 0x01bf,
+ 0x018c, 0xff23, 0xfe84, 0xfe4a, 0xffb9, 0x03d8,
+ 0x0647, 0x076f, 0x07fb, 0x05c7, 0x0555, 0x06ec,
+ 0x03bb, 0xffac, 0x014a, 0x044a, 0x0384, 0x009d,
+ 0x0200, 0x07fc, 0x08ec, 0x04b3, 0x0328, 0x0235,
+ 0x01cd, 0x057d, 0x07a7, 0x0783, 0x08ac, 0x0579,
+ 0xfe3e, 0xfc15, 0xffa8, 0x035e, 0x04f9, 0x075c,
+ 0x0a08, 0x0620, 0x001c, 0x00ed, 0x0124, 0xfdf0,
+ 0xff43, 0x0019, 0xfd29, 0xfe2f, 0x00a6, 0x0038,
+ 0x0032, 0xffbe, 0xff63, 0x01a0, 0x028d, 0x016a,
+ 0x0110, 0xffe7, 0xfe66, 0xfe8d, 0xfe20, 0xfd0e,
+ 0xfebe, 0x027d, 0x03df, 0x024c, 0x0141, 0x0101,
+ 0x0006, 0xff48, 0xfece, 0xfeb3, 0xff82, 0xff54,
+ 0xff38, 0x0177, 0x04a1, 0x08b1, 0x0b37, 0x0840,
+ 0x044f, 0x0272, 0xffbf, 0xfda8, 0xfdfa, 0x0023,
+ 0x0277, 0x013c, 0xffec, 0x037d, 0x058a, 0x02a8,
+ 0x0137, 0x02d5, 0x038c, 0x025b, 0x024a, 0x03f5,
+ 0x0333, 0x014f, 0x0327, 0x0548, 0x05d5, 0x0914,
+ 0x0c16, 0x0b0f, 0x0881, 0x0531, 0x02f5, 0x03b6,
+ 0x04b4, 0x054f, 0x0498, 0x02b3, 0x0489, 0x05cf,
+ 0x026b, 0x027a, 0x0555, 0x05b4, 0x06fa, 0x088d,
+ 0x08be, 0x0797, 0x04f6, 0x074d, 0x0aad, 0x0504,
+ 0x006e, 0x026d, 0x02b5, 0x0500, 0x08cb, 0x06f7,
+ 0x05aa, 0x0598, 0x03e7, 0x0639, 0x05ef, 0x00fe,
+ 0x0598, 0x0be8, 0x0674, 0x02ed, 0x0845, 0x0b54,
+ 0x09ee, 0x0803, 0x05ea, 0x046d, 0x04e5, 0x0650,
+ 0x0624, 0x05db, 0x075b, 0x0629, 0x0267, 0x021a,
+ 0x02e6, 0x017b, 0x0088, 0x00d6, 0x03f2, 0x06df,
+ 0x0348, 0x0091, 0x01ed, 0xff94, 0xfed3, 0x016d,
+ 0xffab, 0xfe9e, 0x00c3, 0x00df, 0x005f, 0x008c,
+ 0x0179, 0x018f, 0xfeb8, 0xfec9, 0x02b1, 0x02ca,
+ 0x0085, 0x022b, 0x046f, 0x0253, 0x0000, 0x00a7,
+ 0x017e, 0x0259, 0x035e, 0x038b, 0x0310, 0x0286,
+ 0x036a, 0x031b, 0x00b7, 0x009b, 0x00c4, 0x00eb,
+ 0x0308, 0x02e0, 0x038d, 0x0785, 0x0891, 0x0800,
+ 0x0889, 0x07ce, 0x0507, 0x0236, 0x026e, 0x039f,
+ 0x0567, 0x0982, 0x08e6, 0x03e0, 0x027c, 0x03e7,
+ 0x074c, 0x0a5f, 0x08cc, 0x070c, 0x071f, 0x067e,
+ 0x072e, 0x0732, 0x0308, 0x0150, 0x05cc, 0x0776,
+ 0x0428, 0x03d1, 0x06cb, 0x08b1, 0x072f, 0x052e,
+ 0x06d2, 0x04c9, 0xff5d, 0x0225, 0x05c1, 0x026b,
+ 0x01bd, 0x04ef, 0x069b, 0x0616, 0x0375, 0x026a,
+ 0x051d, 0x0658, 0x036c, 0x0231, 0x058a, 0x073c,
+ 0x068a, 0x07ed, 0x0731, 0x02fe, 0x021e, 0x0209,
+ 0xff4a, 0x00f4, 0x0467, 0x028c, 0x0259, 0x0382,
+ 0x0018, 0x006c, 0x04fd, 0x043d, 0x00dc, 0x00d4,
+ 0x0254, 0x00b8, 0xfd99, 0xff0b, 0x024a, 0x019e,
+ 0xff81, 0x002f, 0x00f6, 0xfcd0, 0xf9de, 0xfdb3,
+ 0xff1c, 0xfbf5, 0xfd9d, 0x026b, 0x0190, 0xff10,
+ 0x024c, 0x03cf, 0x00fd, 0x00f0, 0xff72, 0xfd09,
+ 0xfed2, 0xff8a, 0x0225, 0x079e, 0x06af, 0x02cf,
+ 0x01e9, 0x01c4, 0x01f3, 0x0323, 0x02eb, 0x0001,
+ 0x007e, 0x02d4, 0xffed, 0xff4b, 0x01c7, 0x0240,
+ 0x056c, 0x0602, 0x030d, 0x047f, 0x04aa, 0x023f,
+ 0x01fe, 0x0491, 0x07e8, 0x0273, 0xfa82, 0xfe67,
+ 0x0442, 0x0531, 0x081c, 0x097c, 0x05a0, 0x04f4,
+ 0x081a, 0x04c9, 0x017d, 0x05fb, 0x061e, 0x034f,
+ 0x0601, 0x0735, 0x05e2, 0x051c, 0x0574, 0x0552,
+ 0x0060, 0xff50, 0x04fc, 0x0733, 0x08b7, 0x090d,
+ 0x03d4, 0x0052, 0xfef6, 0xfe12, 0x010c, 0x03b3,
+ 0x0390, 0x0527, 0x0762, 0x04d1, 0x001e, 0xfe92,
+ 0xfeb9, 0xfffb, 0x000f, 0xfd6d, 0xff62, 0x03a4,
+ 0x02ff, 0x0379, 0x057d, 0x0330, 0x0188, 0x02e9,
+ 0x0124, 0xfdf3, 0xffd1, 0x02ee, 0x0165, 0xfdc6,
+ 0xfc5e, 0xfe45, 0x0088, 0x0071, 0xfffe, 0x008d,
+ 0x00bd, 0x0079, 0x02c7, 0x0634, 0x04bd, 0x028c,
+ 0x0311, 0x007d, 0xfe50, 0x00c3, 0x032c, 0x0365,
+ 0x01fb, 0x0163, 0x01b6, 0x01b4, 0x02dd, 0x024d,
+ 0x0073, 0xffac, 0xff7e, 0x038f, 0x056e, 0x021e,
+ 0x0441, 0x0698, 0x0623, 0x08dc, 0x0750, 0x02ea,
+ 0x030f, 0x04d7, 0x074b, 0x08eb, 0x0854, 0x06ec,
+ 0x0685, 0x0728, 0x05f3, 0x0745, 0x087a, 0x033c,
+ 0x03e9, 0x0906, 0x0631, 0x0291, 0x02bf, 0x0529,
+ 0x0652, 0x03da, 0x040d, 0x0385, 0x020f, 0x0458,
+ 0x0395, 0x0436, 0x0595, 0x0196, 0x049c, 0x07da,
+ 0x018d, 0xffd2, 0x00d8, 0xfee9, 0x0040, 0x02a3,
+ 0x017f, 0xfe47, 0xfe8f, 0x00c0, 0xff1b, 0xfdf9,
+ 0xfd54, 0xfb53, 0xfcaa, 0xfecb, 0xfe47, 0xfbdf,
+ 0xf972, 0xf8ea, 0xf8cb, 0xfae8, 0xfbfb, 0xf6e1,
+ 0xf566, 0xfa34, 0xfbe3, 0xf974, 0xf7c8, 0xfa00,
+ 0xfaf7, 0xf83b, 0xf870, 0xf8e1, 0xf886, 0xfd34,
+ 0x0078, 0xfd9e, 0xfa9c, 0xfa6d, 0xfc67, 0xfd74,
+ 0xfa9d, 0xf78f, 0xf95e, 0xfd2c, 0xfd62, 0xfb99,
+ 0xfb31, 0xfa9a, 0xf8ed, 0xf987, 0xfc22, 0xfc2c,
+ 0xfaa5, 0xf94e, 0xf8c8, 0xfb93, 0xfdb3, 0xfdfd,
+ 0xfd0d, 0xf6c6, 0xf52f, 0xfb1e, 0xfb1e, 0xfa32,
+ 0xfc6e, 0xfb26, 0xf991, 0xf886, 0xf937, 0xfc86,
+ 0xfc91, 0xfc4b, 0xfe3a, 0xff23, 0xffad, 0xfff6,
+ 0xff43, 0xfd85, 0xfdbe, 0xfd36, 0xf7db, 0xf856,
+ 0xfb7f, 0xf82e, 0xf9d1, 0xfd35, 0xfb2e, 0xfb92,
+ 0xfd2a, 0xfef9, 0xfdf2, 0xf93f, 0xfb13, 0xfd40,
+ 0xfb8b, 0xfcc0, 0xfc1d, 0xf9f9, 0xf99d, 0xfb36,
+ 0xfe24, 0xfb8f, 0xf896, 0xf9f2, 0xfad3, 0xfdb5,
+ 0xfef8, 0xfd88, 0xfd9c, 0xfc89, 0xfe45, 0xffa3,
+ 0xfe03, 0x0095, 0xfeb4, 0xfb28, 0xff8e, 0xfee0,
+ 0xfa2a, 0xfa8a, 0xfb6f, 0xfb3d, 0xf9d6, 0xfb23,
+ 0xff2c, 0xfe5e, 0xfc4d, 0xfcc3, 0xfdfb, 0xff87,
+ 0x0013, 0x00dd, 0x0038, 0xfe14, 0xfdf3, 0xfdf8,
+ 0x0069, 0x03c7, 0x01b4, 0xff65, 0xfed5, 0xfdbf,
+ 0xfe37, 0xfeb7, 0x0029, 0x0260, 0x00db, 0xfed6,
+ 0x008f, 0x01d4, 0xfebd, 0xfd2b, 0xffe2, 0xfee2,
+ 0xfcc1, 0x0033, 0x020f, 0xff31, 0xfcb3, 0xfc5f,
+ 0xfe15, 0xfee2, 0xfceb, 0xfcf2, 0xff45, 0xfd7c,
+ 0xfa81, 0xfb69, 0xfbea, 0xfca2, 0xfe87, 0xfdf3,
+ 0xfe3c, 0xfe66, 0xfbde, 0xfbce, 0xfe89, 0x0162,
+ 0x013e, 0xff15, 0xff32, 0xfd20, 0xfbb4, 0xfe50,
+ 0xfd3a, 0xfd50, 0x0119, 0x0335, 0x0534, 0x0290,
+ 0xfe2f, 0xfe28, 0xfd64, 0xff2f, 0x00d0, 0xfca8,
+ 0xfcbe, 0x0145, 0x0196, 0xfc95, 0xf974, 0xfd1c,
+ 0xfe49, 0xfd94, 0x00b7, 0x00d6, 0x00ca, 0x0299,
+ 0x0066, 0xfc36, 0xfabd, 0xfdb4, 0xfb3c, 0xf6cf,
+ 0x0109, 0x0715, 0xfe74, 0xfce3, 0x00ed, 0x00fa,
+ 0xfe2d, 0xfc11, 0xfebc, 0xfec3, 0xfdbf, 0x010f,
+ 0x0127, 0xff61, 0xfd28, 0xfe3c, 0x0532, 0x031a,
+ 0xfe85, 0x02d5, 0x02ae, 0xffbd, 0xff4f, 0xfdb7,
+ 0xff81, 0x0300, 0x04c0, 0x0427, 0x017c, 0x0253,
+ 0x036e, 0x022a, 0x02a4, 0x0198, 0x005b, 0x025d,
+ 0x00fd, 0xfc59, 0xfebf, 0x04b4, 0x02b7, 0x0157,
+ 0x04dd, 0x019a, 0xff5b, 0x02d9, 0x00b4, 0xfe33,
+ 0x0009, 0x0297, 0x054a, 0x026b, 0xff1c, 0x0275,
+ 0x0272, 0xff79, 0x00df, 0xfffd, 0xfc1a, 0xfd0f,
+ 0x005a, 0x006a, 0xfe83, 0xfd46, 0xfdb3, 0xfed1,
+ 0x001d, 0xffe9, 0xfbb9, 0xfae6, 0xfdb1, 0xf880,
+ 0xf367, 0xf702, 0xfa06, 0xfb23, 0xfbb9, 0xfce9,
+ 0xffa0, 0xfb9c, 0xf650, 0xf957, 0xfc56, 0xfb09,
+ 0xfa7f, 0xfdb8, 0x0043, 0xfdb7, 0xfb93, 0xfb14,
+ 0xfb42, 0xfc41, 0xfb1d, 0xfcac, 0xfdf8, 0xfb2a,
+ 0xfd6c, 0xfe75, 0xfbd0, 0xfe0c, 0xfd6c, 0xfa6e,
+ 0xfa39, 0xf964, 0xfba9, 0xfecc, 0xffa4, 0x013e,
+ 0x018c, 0xff91, 0xfb9e, 0xfa82, 0xfd3f, 0xfd94,
+ 0xff6c, 0xff66, 0xfa23, 0xfa0c, 0xfba7, 0xfc9b,
+ 0xfd71, 0xf828, 0xf748, 0xfbd0, 0xfcbd, 0xfe0f,
+ 0xfbda, 0xf91c, 0xfc6e, 0xfc73, 0xf958, 0xf770,
+ 0xf83f, 0xfcd9, 0xfd82, 0xfb57, 0xf94b, 0xf70b,
+ 0xfb16, 0xfea0, 0xfc72, 0xfcd1, 0xfec9, 0xffb3,
+ 0xfe4a, 0xfbc5, 0xfe12, 0xffcc, 0xfddf, 0xfdf3,
+ 0xfdab, 0xfb8f, 0xfadd, 0xfb98, 0xfd15, 0xff5d,
+ 0xff70, 0xfc63, 0xfcea, 0xfebe, 0xfbba, 0xfa74,
+ 0xf9f4, 0xf8a8, 0xfc75, 0xfc59, 0xf911, 0xfe1c,
+ 0x009a, 0xfcd7, 0xfdc2, 0xfe8b, 0xfad4, 0xf954,
+ 0xfb4e, 0xfd15, 0xfcbc, 0xfc1f, 0xfe4f, 0xffde,
+ 0xfd9c, 0xfc04, 0xfc57, 0xfe24, 0x014f, 0x0021,
+ 0xfd99, 0xfecb, 0xfdf6, 0xfc06, 0xfb88, 0xfd4f,
+ 0x039d, 0x0453, 0xff52, 0xffe6, 0x00a8, 0xff76,
+ 0x00ae, 0x0144, 0x007d, 0xfecf, 0xff6a, 0x0300,
+ 0x0390, 0x024c, 0x021c, 0x03c3, 0x05a2, 0x038c,
+ 0x0329, 0x0560, 0x032a, 0xff9a, 0xfefd, 0x01fe,
+ 0x042d, 0x0271, 0x033d, 0x04aa, 0x037a, 0x0235,
+ 0x0012, 0x00f7, 0x0064, 0xfad9, 0xfc55, 0x01b8,
+ 0x040e, 0x044f, 0x0029, 0xffa9, 0x02cc, 0x01e5,
+ 0x0272, 0x0313, 0x02d7, 0x0478, 0x02d6, 0x00c7,
+ 0x008b, 0x0164, 0x0404, 0x02e0, 0x0231, 0x0438,
+ 0x012d, 0xfe75, 0xffaa, 0x0083, 0x0112, 0x0117,
+ 0x01b0, 0x01c8, 0x0056, 0xff6d, 0xff19, 0x0204,
+ 0x043e, 0x01b1, 0x01df, 0x02fc, 0x019d, 0x0164,
+ 0x00b8, 0x0213, 0x03db, 0x0087, 0xfeef, 0x0060,
+ 0x0027, 0x00ef, 0x02cf, 0x02fb, 0x015d, 0x0043,
+ 0x00be, 0x0172, 0x0236, 0x0053, 0xfd03, 0xffa8,
+ 0x0460, 0x0349, 0xffbd, 0xfe58, 0xfe44, 0xfe3d,
+ 0xfe91, 0xff07, 0xff24, 0xff00, 0xfea0, 0xfe16,
+ 0xfc79, 0xfbe9, 0xff35, 0x0111, 0xfed8, 0xfddf,
+ 0xffe6, 0x02a8, 0x030d, 0x0081, 0xfe43, 0xfdab,
+ 0xfea9, 0x014f, 0x044f, 0x04f4, 0x03fd, 0x055b,
+ 0x05b3, 0x03ba, 0x0453, 0x04ad, 0x0554, 0x074c,
+ 0x04f8, 0x0455, 0x077a, 0x0731, 0x070f, 0x089e,
+ 0x0924, 0x083a, 0x05f8, 0x05f4, 0x04d6, 0x0242,
+ 0x0495, 0x0554, 0x028c, 0x026d, 0x039e, 0x0516,
+ 0x0434, 0x0302, 0x05fa, 0x04f6, 0x00a0, 0x0209,
+ 0x04b8, 0x040d, 0x0479, 0x072f, 0x05ef, 0x02df,
+ 0x044d, 0x0343, 0x00f5, 0x03a3, 0x03dd, 0x0282,
+ 0x0219, 0xff23, 0xfdec, 0xfe3b, 0xfff2, 0x04c7,
+ 0x07f2, 0x09fd, 0x0875, 0x03c1, 0x04f7, 0x071d,
+ 0x070b, 0x0794, 0x045a, 0x0430, 0x097a, 0x0a85,
+ 0x0ade, 0x0cfe, 0x0cba, 0x0c8c, 0x0ae2, 0x055c,
+ 0x0311, 0x06d0, 0x0986, 0x09d1, 0x0a32, 0x0712,
+ 0x043b, 0x07d6, 0x09bc, 0x0549, 0x0272, 0x05f9,
+ 0x0a6e, 0x0878, 0x044d, 0x0452, 0x051a, 0x0591,
+ 0x06fe, 0x074f, 0x0703, 0x05e0, 0x0306, 0x0250,
+ 0x0526, 0x076f, 0x06ee, 0x04af, 0x0356, 0x04b3,
+ 0x05a6, 0x0569, 0x072a, 0x0661, 0x017e, 0xfffc,
+ 0xfff6, 0xfed4, 0x0271, 0x0629, 0x0401, 0x0471,
+ 0x07b6, 0x046a, 0x0173, 0x05f8, 0x0827, 0x0594,
+ 0x0488, 0x0535, 0x05e2, 0x03c0, 0x01e6, 0x0436,
+ 0x047f, 0x0520, 0x0906, 0x083d, 0x05d0, 0x053b,
+ 0x04d8, 0x0860, 0x096b, 0x04f3, 0x03e8, 0x0410,
+ 0x029f, 0x034e, 0x0464, 0x04bf, 0x0528, 0x049e,
+ 0x0361, 0x0401, 0x0687, 0x066b, 0x0426, 0x0404,
+ 0x055a, 0x05c9, 0x04d8, 0x04ab, 0x0497, 0x0263,
+ 0x0205, 0x035b, 0x03fd, 0x067f, 0x0719, 0x045e,
+ 0x03bc, 0x0420, 0x0379, 0x01e3, 0x00c3, 0x024e,
+ 0x044c, 0x0710, 0x09b4, 0x0794, 0x0549, 0x051e,
+ 0x0362, 0x039a, 0x06b5, 0x091c, 0x09b3, 0x073e,
+ 0x050a, 0x06f9, 0x09b7, 0x0a4d, 0x097c, 0x081c,
+ 0x0707, 0x073e, 0x08e6, 0x0a38, 0x0915, 0x064a,
+ 0x0523, 0x063d, 0x0668, 0x0483, 0x024f, 0x013c,
+ 0x01ee, 0x0345, 0x0389, 0x034b, 0x03bd, 0x032e,
+ 0x00fa, 0x01c8, 0x04c9, 0x03e9, 0x0336, 0x04ea,
+ 0x0151, 0xfc46, 0xfd05, 0xfcc6, 0xfad0, 0xfd15,
+ 0xfcf2, 0xf8e2, 0xfb54, 0x012e, 0x026a, 0x02fb,
+ 0x0382, 0x01f3, 0x011b, 0xffe7, 0xfedb, 0x002e,
+ 0x0027, 0x0022, 0x0278, 0x019c, 0xfff0, 0x0290,
+ 0x02e4, 0x00bc, 0x02ca, 0x03dd, 0x014a, 0x0115,
+ 0x0173, 0x00fa, 0x029e, 0x03ce, 0x04ac, 0x0644,
+ 0x041b, 0x0007, 0xffbb, 0x021b, 0x036f, 0x0309,
+ 0x024f, 0x0057, 0xfe3c, 0xfff8, 0x00df, 0xfe3d,
+ 0xffdb, 0x035f, 0x0245, 0x01a6, 0x0222, 0x00fb,
+ 0x01f5, 0x0341, 0x033c, 0x05b0, 0x0619, 0x024f,
+ 0x0194, 0x02bb, 0x013d, 0x0074, 0x0193, 0x0158,
+ 0xffdf, 0x006a, 0x0304, 0x04b1, 0x05a3, 0x05cb,
+ 0x0407, 0x036e, 0x0445, 0x048f, 0x06e4, 0x08b7,
+ 0x05fd, 0x03f5, 0x04ae, 0x0585, 0x07d6, 0x096b,
+ 0x0840, 0x0919, 0x0b84, 0x0aff, 0x0932, 0x093f,
+ 0x0a83, 0x0a40, 0x0869, 0x080f, 0x0814, 0x0642,
+ 0x058b, 0x0701, 0x07f4, 0x0836, 0x0876, 0x0716,
+ 0x0513, 0x06e6, 0x09ac, 0x06ea, 0x039f, 0x043f,
+ 0x035e, 0x01a4, 0x018d, 0x0001, 0xffe2, 0x029f,
+ 0x03cc, 0x044b, 0x02c0, 0xfdab, 0xfcd7, 0x005d,
+ 0x00ed, 0xffa6, 0xfef0, 0x0063, 0x04cf, 0x0649,
+ 0x04a6, 0x0519, 0x0536, 0x048a, 0x0473, 0x0194,
+ 0xffe5, 0x0395, 0x058a, 0x03a0, 0x031f, 0x02d4,
+ 0x0004, 0xfeae, 0x025f, 0x0639, 0x04ce, 0x02c5,
+ 0x04f4, 0x06bc, 0x0471, 0x019f, 0x0205, 0x040d,
+ 0x03c4, 0x0156, 0xfef7, 0xfe03, 0xffea, 0x0075,
+ 0xfbd5, 0xf9e5, 0xfe4f, 0x0091, 0xfe5f, 0xfce1,
+ 0xfec2, 0x0244, 0x01f9, 0xfea5, 0xfea1, 0xff6e,
+ 0xfd26, 0xfad2, 0xf9df, 0xfb92, 0xff9b, 0x0086,
+ 0xff20, 0xfed1, 0xfda7, 0xfe6f, 0x0244, 0x01d7,
+ 0xfe2a, 0xfde3, 0xffa2, 0x0113, 0x01fe, 0x0194,
+ 0x0127, 0x0112, 0x0151, 0x03b3, 0x0567, 0x02e7,
+ 0x0037, 0x0118, 0x0266, 0x00b2, 0xfe0d, 0xfe69,
+ 0x011e, 0x0269, 0x010f, 0xff48, 0xffd1, 0x0144,
+ 0x00bf, 0x0060, 0x00b4, 0xfecd, 0xfda6, 0xff09,
+ 0xfe5e, 0xfc99, 0xfc62, 0xfb8b, 0xfb84, 0xfcc6,
+ 0xfb4d, 0xf949, 0xfa2f, 0xfbbb, 0xfc3f, 0xfa9f,
+ 0xf857, 0xf9db, 0xfb70, 0xf8d4, 0xf7e8, 0xf90f,
+ 0xf6ef, 0xf4ec, 0xf502, 0xf3a1, 0xf336, 0xf567,
+ 0xf603, 0xf499, 0xf378, 0xf365, 0xf484, 0xf54b,
+ 0xf5c1, 0xf6eb, 0xf68c, 0xf5be, 0xf778, 0xf853,
+ 0xf7ac, 0xf891, 0xf863, 0xf77c, 0xf862, 0xf79f,
+ 0xf771, 0xf9cb, 0xf6ef, 0xf3e7, 0xfa20, 0xfe67,
+ 0xfb16, 0xfa73, 0xfbaa, 0xf9b0, 0xf7e6, 0xf83e,
+ 0xfabf, 0xfc83, 0xfa6a, 0xf9dd, 0xfc8b, 0xfd29,
+ 0xfcb9, 0xfc09, 0xf97b, 0xf7ec, 0xf828, 0xf9d1,
+ 0xfc5a, 0xfb8b, 0xf9ae, 0xfb40, 0xfce1, 0xfe45,
+ 0x002f, 0xff0d, 0xfc43, 0xf9c4, 0xf8dc, 0xfc82,
+ 0xffb7, 0x006c, 0x030a, 0x024e, 0xfee7, 0x013e,
+ 0x02a2, 0xffb0, 0xffc6, 0x009e, 0x012f, 0x02a9,
+ 0x0047, 0xfee5, 0x015f, 0x0040, 0xff40, 0x0059,
+ 0xfd15, 0xfc95, 0x01ba, 0x0150, 0xfd9c, 0xfe7e,
+ 0xfff5, 0xff84, 0xffc0, 0x005f, 0xff74, 0xfd61,
+ 0xfdb5, 0x009a, 0x0042, 0xfb08, 0xf700, 0xf79d,
+ 0xf8a9, 0xf7ea, 0xf871, 0xf93f, 0xf918, 0xfb08,
+ 0xfc08, 0xf91c, 0xf77e, 0xf796, 0xf676, 0xf5ec,
+ 0xf5cf, 0xf64a, 0xf863, 0xf8a1, 0xf733, 0xf6ba,
+ 0xf5a9, 0xf4e1, 0xf5bc, 0xf741, 0xf9ad, 0xf9a1,
+ 0xf5f6, 0xf580, 0xf92d, 0xfc08, 0xfc78, 0xfa09,
+ 0xf7f0, 0xf9d9, 0xfbf3, 0xfb33, 0xf93a, 0xf86d,
+ 0xfb9a, 0xfe9a, 0xfb05, 0xf78c, 0xfb48, 0xff10,
+ 0xfe6e, 0xffc8, 0x0333, 0x01ee, 0xfef9, 0x004d,
+ 0x01a9, 0x0120, 0x02b1, 0x0317, 0x0031, 0xff9f,
+ 0x0101, 0x001e, 0xfe45, 0xfd42, 0xfd70, 0xfe89,
+ 0xfee5, 0xff04, 0xffc4, 0xff7d, 0xff6d, 0x029f,
+ 0x0614, 0x051c, 0x02ee, 0x044b, 0x0681, 0x0732,
+ 0x07b9, 0x06c9, 0x0530, 0x0629, 0x075f, 0x06e2,
+ 0x0648, 0x0534, 0x04e3, 0x068a, 0x07f9, 0x09a3,
+ 0x0b74, 0x0b44, 0x0bdf, 0x0e5c, 0x0ee9, 0x0db3,
+ 0x0cca, 0x0c24, 0x0b4a, 0x098d, 0x0855, 0x085b,
+ 0x0794, 0x0799, 0x0931, 0x089d, 0x0710, 0x076f,
+ 0x0767, 0x0552, 0x022b, 0x0120, 0x041c, 0x0540,
+ 0x0218, 0x017f, 0x02ed, 0x00b1, 0xfe7a, 0x0039,
+ 0x021c, 0x0178, 0xfff2, 0xfe52, 0xfc03, 0xfa7f,
+ 0xfaf7, 0xfab7, 0xf8b9, 0xf786, 0xf7c7, 0xf8a9,
+ 0xf84e, 0xf4ff, 0xf282, 0xf40e, 0xf66b, 0xf703,
+ 0xf5e3, 0xf50b, 0xf72f, 0xf86c, 0xf535, 0xf2b1,
+ 0xf332, 0xf495, 0xf683, 0xf60d, 0xf316, 0xf304,
+ 0xf56d, 0xf71c, 0xf7dc, 0xf705, 0xf5ee, 0xf5ad,
+ 0xf511, 0xf5d9, 0xf6ca, 0xf459, 0xf23e, 0xf359,
+ 0xf5ec, 0xf956, 0xfb17, 0xfb0a, 0xfc0c, 0xfbff,
+ 0xfb1c, 0xfb3d, 0xf930, 0xf762, 0xf7cf, 0xf573,
+ 0xf4f0, 0xf9cc, 0xfa6f, 0xf730, 0xf749, 0xf82e,
+ 0xf98a, 0xfbf8, 0xfa04, 0xf5ff, 0xf77b, 0xfc9c,
+ 0xfec8, 0xfd2d, 0xfb9a, 0xfb02, 0xfb2b, 0xfdf7,
+ 0xffa0, 0xfc69, 0xfb3a, 0xfeb3, 0x0061, 0x0005,
+ 0xfff7, 0xff32, 0xff60, 0x010c, 0x013b, 0x0023,
+ 0x009a, 0x02c9, 0x0403, 0x03a9, 0x03bd, 0x03e4,
+ 0x03dc, 0x04f8, 0x04b5, 0x0232, 0x020d, 0x0474,
+ 0x050a, 0x0271, 0xfeb7, 0xfd83, 0xff49, 0x0016,
+ 0xff05, 0xfe0e, 0xfdac, 0xfe89, 0x0094, 0x0205,
+ 0x01d4, 0x004c, 0xff1a, 0xfea2, 0xfd78, 0xfe04,
+ 0x010d, 0x005f, 0xfc97, 0xfd2f, 0xffe7, 0xff53,
+ 0xfe8d, 0x0030, 0x019d, 0x00a1, 0xfddb, 0xfc89,
+ 0xfe29, 0xffbc, 0xffd3, 0x0097, 0x01a1, 0xff17,
+ 0xf9fc, 0xf941, 0xfcdb, 0xfea9, 0xffdc, 0x014e,
+ 0xff18, 0xfdd8, 0x0132, 0x0268, 0x0086, 0xfeab,
+ 0xfc3f, 0xfc75, 0xfe74, 0xfce7, 0xfc74, 0xfffc,
+ 0x014c, 0xffd5, 0xfe59, 0xfdbd, 0xffb5, 0x013f,
+ 0xff05, 0xfd27, 0xfea2, 0x006b, 0xffbc, 0xfe4a,
+ 0xff4a, 0x01c3, 0x0333, 0x02f8, 0x0117, 0xffcb,
+ 0x007d, 0x017a, 0x021b, 0x00f3, 0xfeb1, 0xffe2,
+ 0x016e, 0xff5a, 0xfed6, 0x001b, 0x0006, 0x01a5,
+ 0x0320, 0x002f, 0xfcf7, 0xff1e, 0x0541, 0x0723,
+ 0x02a5, 0x00a0, 0x01fe, 0x012b, 0x00d1, 0x021a,
+ 0x0350, 0x0658, 0x087c, 0x065e, 0x02b4, 0x013b,
+ 0x0494, 0x0890, 0x0727, 0x04da, 0x04bc, 0x033f,
+ 0x021f, 0x0248, 0x010e, 0x0052, 0x022c, 0x04ec,
+ 0x057e, 0x0361, 0x0230, 0x0298, 0x0330, 0x0465,
+ 0x0442, 0x02c7, 0x014f, 0xfe3a, 0xfddf, 0x0201,
+ 0x02a5, 0x0172, 0x035e, 0x037f, 0x0234, 0x0271,
+ 0x0208, 0x0201, 0x0125, 0xfd17, 0xfa44, 0xfa57,
+ 0xfc16, 0xff80, 0x014d, 0x008c, 0x0002, 0x00fb,
+ 0x0303, 0x0266, 0xfffc, 0x0130, 0x01d4, 0xfe5f,
+ 0xfbf8, 0xfb41, 0xfcc9, 0x00c3, 0x007c, 0xfe0b,
+ 0xfede, 0xfda5, 0xfb62, 0xfd8f, 0xff9f, 0x003c,
+ 0x028a, 0x02d7, 0xff26, 0xfc76, 0xfe11, 0x00c6,
+ 0x00b2, 0xff9a, 0xff08, 0xfd3c, 0xfc39, 0xfe99,
+ 0x01f0, 0x039d, 0x031d, 0x0108, 0xff60, 0xffb4,
+ 0x00b7, 0x0085, 0x00f7, 0x0290, 0x0145, 0xff28,
+ 0x015c, 0x03c8, 0x0263, 0x0060, 0x00e5, 0x047b,
+ 0x060c, 0x011c, 0xfd45, 0x00f0, 0x0646, 0x071b,
+ 0x046f, 0x04b1, 0x095f, 0x09d2, 0x059a, 0x051d,
+ 0x0723, 0x08bb, 0x0a44, 0x0889, 0x06b4, 0x08d8,
+ 0x090e, 0x07e7, 0x0a1c, 0x0a64, 0x07a3, 0x073b,
+ 0x0874, 0x09cb, 0x0a7e, 0x08e7, 0x082f, 0x09a1,
+ 0x0a1d, 0x0a43, 0x09bf, 0x066e, 0x030f, 0x019d,
+ 0x01d1, 0x03e0, 0x0452, 0x024a, 0x0287, 0x044d,
+ 0x0425, 0x02de, 0x0151, 0x00c8, 0x013a, 0xfff6,
+ 0xff56, 0x019e, 0x0315, 0x034b, 0x0320, 0x014e,
+ 0x008f, 0x0105, 0xff34, 0xfdbb, 0xfe93, 0xfee4,
+ 0xfdef, 0xfc46, 0xfc26, 0xfe98, 0xfed9, 0xfcef,
+ 0xfd55, 0xfddb, 0xfde2, 0x0024, 0x01d6, 0x020e,
+ 0x02fb, 0x031b, 0x0285, 0x01a9, 0xff4a, 0xff17,
+ 0x0194, 0x00b1, 0xfe70, 0xffa0, 0x001a, 0xfeb0,
+ 0xffaa, 0x010a, 0x0025, 0xffaa, 0x0038, 0x00d5,
+ 0x0215, 0x0337, 0x0466, 0x06de, 0x0897, 0x08a1,
+ 0x08ad, 0x07a7, 0x0525, 0x0400, 0x049a, 0x0579,
+ 0x068c, 0x06da, 0x0550, 0x045b, 0x065a, 0x0785,
+ 0x0435, 0x018c, 0x03b6, 0x05e4, 0x0564, 0x0501,
+ 0x05ad, 0x07bb, 0x0ae2, 0x0c7c, 0x0c2d, 0x0aae,
+ 0x07b8, 0x062a, 0x0773, 0x07ec, 0x0720, 0x077f,
+ 0x084b, 0x09c9, 0x0cec, 0x0e26, 0x0be9, 0x09a0,
+ 0x0830, 0x06f1, 0x0733, 0x08f0, 0x0b7f, 0x0de3,
+ 0x0d25, 0x09b0, 0x079e, 0x07bc, 0x079b, 0x05fd,
+ 0x0582, 0x07f5, 0x082e, 0x0550, 0x060b, 0x072d,
+ 0x0426, 0x045c, 0x06bd, 0x033e, 0xfff4, 0x0188,
+ 0x01aa, 0x0061, 0x00a9, 0x0050, 0xffdc, 0x011d,
+ 0x01ba, 0xff48, 0xfb82, 0xfabb, 0xfdb9, 0x0053,
+ 0xff84, 0xfd6a, 0xfe2b, 0xff91, 0xfcec, 0xfc29,
+ 0x011f, 0x01e4, 0xfe02, 0xffbe, 0x030a, 0x0099,
+ 0xfdf6, 0xfe70, 0xfeb9, 0xfdff, 0xfcfb, 0xfd08,
+ 0xff55, 0x01c8, 0x01fe, 0x0073, 0xfe71, 0xfc4b,
+ 0xfb22, 0xfc33, 0xfd1e, 0xfd04, 0xff11, 0x00ac,
+ 0xfee6, 0xffc0, 0x0372, 0x02cb, 0xffc3, 0xffef,
+ 0x0295, 0x0443, 0x02c0, 0x019d, 0x03ab, 0x03fd,
+ 0x0271, 0x025f, 0x00eb, 0xffab, 0x01c5, 0x0326,
+ 0x0360, 0x0358, 0x01c3, 0x0356, 0x075f, 0x06fa,
+ 0x0545, 0x05bb, 0x05ee, 0x0623, 0x051f, 0x02cb,
+ 0x029d, 0x0357, 0x0494, 0x06a3, 0x052d, 0x01e7,
+ 0x0127, 0x01f0, 0x050c, 0x0791, 0x04e3, 0x02e6,
+ 0x0417, 0x031f, 0x01ce, 0x0341, 0x0579, 0x0713,
+ 0x079a, 0x07a0, 0x0689, 0x03f1, 0x03ab, 0x0497,
+ 0x0306, 0x02b1, 0x036c, 0x01a8, 0x00ed, 0x023c,
+ 0x03a6, 0x05e3, 0x065a, 0x04c7, 0x0402, 0x0212,
+ 0xfff6, 0xffee, 0xfe60, 0xfcaf, 0xfebb, 0x019c,
+ 0x030d, 0x024f, 0xff4d, 0xfe19, 0xfea5, 0xfd72,
+ 0xfd03, 0xfea0, 0xff25, 0xfead, 0xfe45, 0xfe2f,
+ 0xff39, 0xfead, 0xfbcf, 0xfcec, 0x0221, 0x0447,
+ 0x0414, 0x044c, 0x01b6, 0xfee6, 0x005d, 0x01de,
+ 0x0222, 0x03c3, 0x030a, 0x0014, 0x0077, 0x0257,
+ 0x02d9, 0x041c, 0x04f2, 0x0440, 0x04bb, 0x055a,
+ 0x046c, 0x047f, 0x04e4, 0x03cb, 0x043b, 0x0548,
+ 0x03a6, 0x035e, 0x05be, 0x0623, 0x0561, 0x0549,
+ 0x058c, 0x0790, 0x07c0, 0x0430, 0x0430, 0x080e,
+ 0x08d1, 0x06b1, 0x0483, 0x037b, 0x03f1, 0x0370,
+ 0x022b, 0x028b, 0x03a8, 0x03eb, 0x02b7, 0x01b6,
+ 0x020f, 0x0068, 0xfee0, 0x01ce, 0x034b, 0x0183,
+ 0x01ba, 0x0189, 0x00e3, 0x037e, 0x03dc, 0xff77,
+ 0xfc80, 0xfce0, 0xfe7d, 0x000c, 0x0143, 0x01ff,
+ 0x0147, 0x00aa, 0x00ff, 0xffc0, 0xff3a, 0x0158,
+ 0x0208, 0x0275, 0x04cf, 0x04dd, 0x02cf, 0x01ab,
+ 0x0006, 0xff03, 0x011a, 0x032f, 0x0272, 0x016c,
+ 0x01fa, 0x0268, 0x021b, 0x0173, 0x001c, 0xffaa,
+ 0xfff6, 0xff06, 0xffd6, 0x02ad, 0x01ce, 0xff43,
+ 0xffff, 0x004b, 0xfe9e, 0xfec5, 0xff15, 0xfc76,
+ 0xf9fb, 0xfacc, 0xfd67, 0xfefa, 0xfdd6, 0xfc26,
+ 0xfe5c, 0x017b, 0x0036, 0xfe03, 0xfc13, 0xf89c,
+ 0xf9de, 0xff52, 0x0047, 0xfe42, 0xfc01, 0xf918,
+ 0xf945, 0xfa1a, 0xf85a, 0xf857, 0xf934, 0xf9a6,
+ 0xfb68, 0xfa9b, 0xf8a4, 0xf937, 0xf834, 0xf795,
+ 0xf98d, 0xf8b3, 0xf888, 0xfbbc, 0xfb20, 0xf880,
+ 0xf98a, 0xfb5e, 0xfb18, 0xf97d, 0xf910, 0xf9b5,
+ 0xf8e3, 0xf987, 0xfbc4, 0xfa35, 0xf8a1, 0xfb3e,
+ 0xfca8, 0xfb8b, 0xfaf9, 0xfaa7, 0xf9f8, 0xf930,
+ 0xfa24, 0xfc90, 0xfb35, 0xf782, 0xf7fd, 0xf93f,
+ 0xf6af, 0xf5bc, 0xf916, 0xfa50, 0xf7f4, 0xf8a9,
+ 0xfb58, 0xf941, 0xf671, 0xf828, 0xf9bf, 0xf9b2,
+ 0xfaba, 0xfb19, 0xfa44, 0xfa52, 0xfb13, 0xfb0e,
+ 0xf8f8, 0xf757, 0xfab8, 0xfe88, 0xfd0e, 0xfd04,
+ 0x005f, 0xfe5c, 0xfb22, 0xff3b, 0x0211, 0xfe22,
+ 0xfbb8, 0xfcc8, 0xfd17, 0xfcb6, 0xfd46, 0x0009,
+ 0x01b5, 0xfdc6, 0xf9c4, 0xfa6e, 0xfbd2, 0xfe08,
+ 0x0046, 0xfdd6, 0xfbed, 0xff0c, 0xffb1, 0xfaf3,
+ 0xf71a, 0xf74c, 0xfa18, 0xfdd9, 0xff83, 0xfd17,
+ 0xfb29, 0xfc8b, 0xfd70, 0xfd66, 0xfc54, 0xf941,
+ 0xf97a, 0xfbdc, 0xfa1c, 0xf96e, 0xfc29, 0xfc32,
+ 0xfb45, 0xfb6c, 0xfabc, 0xfb10, 0xfac9, 0xf991,
+ 0xfcb4, 0xffc4, 0xfd68, 0xfa93, 0xf893, 0xf753,
+ 0xf87c, 0xf90d, 0xf9a8, 0xfae3, 0xfa5a, 0xfaf5,
+ 0xfaca, 0xf84a, 0xf9d9, 0xfbeb, 0xfa3b, 0xf8e1,
+ 0xf72c, 0xf74a, 0xfa32, 0xfa06, 0xfae4, 0xfed2,
+ 0xfed8, 0xfdbe, 0xfe15, 0xfccf, 0xfd7c, 0xfedc,
+ 0xfa97, 0xf62d, 0xf7e6, 0xfb78, 0xfd3c, 0xfcd9,
+ 0xfbb9, 0xfbf3, 0xfab1, 0xf7da, 0xf7eb, 0xfa26,
+ 0xfbcf, 0xfb23, 0xfa0f, 0xfb43, 0xfa35, 0xf940,
+ 0xfbbf, 0xf9b6, 0xf8bf, 0xfed6, 0xffa0, 0xfd16,
+ 0xffb3, 0x002d, 0xfd3b, 0xfd4e, 0xffaf, 0xffd9,
+ 0xfcb6, 0xfa47, 0xfb6c, 0xfe85, 0x016d, 0x037c,
+ 0x0402, 0x02ca, 0x01be, 0x008c, 0xff42, 0x013a,
+ 0x03aa, 0x0298, 0x0031, 0xfee1, 0xff87, 0xff83,
+ 0xff5c, 0x0180, 0xfff5, 0xfe53, 0x03a8, 0x05c5,
+ 0x0374, 0x0508, 0x065d, 0x0551, 0x052f, 0x04e1,
+ 0x0218, 0xfebe, 0x004c, 0x03db, 0x02f4, 0x01ad,
+ 0x03e4, 0x067b, 0x07c7, 0x0821, 0x0653, 0x03c6,
+ 0x0433, 0x04e5, 0x04f3, 0x07a1, 0x098c, 0x0b4d,
+ 0x0d60, 0x0a79, 0x0868, 0x0864, 0x0475, 0x0325,
+ 0x0465, 0x0278, 0x01b7, 0x034f, 0x047f, 0x030b,
+ 0xffe6, 0x0032, 0x018f, 0x0097, 0xffb8, 0xff91,
+ 0x00f3, 0x02de, 0x01ec, 0xff11, 0xfd54, 0xfd07,
+ 0xfd38, 0xfe76, 0xfe69, 0xfc29, 0xfd76, 0xffc5,
+ 0xfdd5, 0xfb56, 0xf98c, 0xf9d1, 0xfbcd, 0xfb51,
+ 0xfb72, 0xfb33, 0xf8a6, 0xfa50, 0xfd2c, 0xfb71,
+ 0xf894, 0xf785, 0xf767, 0xf56c, 0xf4cf, 0xf881,
+ 0xfa1e, 0xf9e1, 0xfa72, 0xf859, 0xf689, 0xf83e,
+ 0xfa1d, 0xf9e3, 0xf8cf, 0xf954, 0xfb5e, 0xfda5,
+ 0xfe71, 0xfd6f, 0xfd75, 0xfcd2, 0xfb1d, 0xfc13,
+ 0xfce6, 0xfd12, 0xffca, 0x020f, 0x0115, 0xfe5d,
+ 0xfde4, 0xff07, 0xfd15, 0xfb99, 0xfcdc, 0xfd8a,
+ 0xff20, 0x00c4, 0xffed, 0xfe62, 0xfd08, 0xfd0a,
+ 0xff70, 0x010c, 0xfdef, 0xfa1c, 0xfc40, 0xfee4,
+ 0xfd65, 0xfc93, 0xfc3f, 0xfb73, 0xfa17, 0xf848,
+ 0xfb9e, 0xffd8, 0xfea7, 0xfe3e, 0xfd74, 0xfa39,
+ 0xfb93, 0xfded, 0xfc2f, 0xfafd, 0xfab0, 0xfb19,
+ 0xfe99, 0x00da, 0x0045, 0x00f2, 0x0118, 0xfffa,
+ 0xfe0c, 0xf84d, 0xf5e8, 0xfab2, 0xfbf6, 0xfac2,
+ 0xfcdd, 0xfd79, 0xfd4f, 0xfd2f, 0xf9b7, 0xf6e8,
+ 0xf731, 0xf748, 0xf6e6, 0xf86d, 0xfb2e, 0xfb49,
+ 0xfae4, 0xfd77, 0xfd45, 0xf8b3, 0xf56a, 0xf3f1,
+ 0xf52d, 0xf97c, 0xfb2e, 0xfadf, 0xfcf4, 0xff61,
+ 0x00b0, 0xff3c, 0xfad8, 0xfaa6, 0xfd4e, 0xfbc7,
+ 0xfb31, 0xfe22, 0xfe6b, 0xfd11, 0xfe0e, 0xff72,
+ 0xfed8, 0xfde8, 0xfe1c, 0xfdff, 0xfdfc, 0xff4f,
+ 0x0067, 0x00b0, 0x0092, 0x0001, 0x0058, 0x024a,
+ 0x039e, 0x0345, 0x03da, 0x0571, 0x04ac, 0x0212,
+ 0x019c, 0x03a1, 0x03dc, 0x0219, 0x0248, 0x02eb,
+ 0x036a, 0x0599, 0x0696, 0x06ee, 0x074a, 0x0550,
+ 0x051e, 0x0807, 0x09a9, 0x07bb, 0x0377, 0x0347,
+ 0x0600, 0x060f, 0x0807, 0x0ae9, 0x0a1e, 0x09e4,
+ 0x0aa0, 0x094d, 0x061b, 0x03f3, 0x0568, 0x06ef,
+ 0x0742, 0x0803, 0x06ed, 0x05d3, 0x071e, 0x0637,
+ 0x0283, 0x03d0, 0x085a, 0x05da, 0x0387, 0x0822,
+ 0x0800, 0x03e3, 0x0374, 0x037e, 0x047a, 0x0708,
+ 0x082e, 0x070d, 0x0707, 0x0a05, 0x06b1, 0x007f,
+ 0x0399, 0x054f, 0x01a1, 0x01e4, 0x0303, 0x0332,
+ 0x027d, 0x0105, 0x01ba, 0x009f, 0xff25, 0x0025,
+ 0xfe0f, 0xfb26, 0xfcc8, 0x0074, 0x0110, 0xfe9f,
+ 0xfe32, 0xff64, 0xfee4, 0xfc6e, 0xfb22, 0xfc3b,
+ 0xfa3a, 0xfa08, 0xfe91, 0xfd84, 0xfcc2, 0xfdc8,
+ 0xf8c4, 0xf88e, 0xfb8a, 0xfaec, 0xfd72, 0xfd43,
+ 0xfb58, 0xfe37, 0xfede, 0xfe4d, 0xfd28, 0xf943,
+ 0xf89e, 0xfaeb, 0xfd3f, 0xff89, 0x0097, 0xff1a,
+ 0xfbfd, 0xfc6c, 0xff18, 0x016d, 0x04cb, 0x050b,
+ 0x034f, 0x0157, 0xff9f, 0x02c6, 0x03a6, 0x025a,
+ 0x0502, 0x044e, 0x0598, 0x094b, 0x05ea, 0x05b1,
+ 0x0834, 0x0622, 0x066a, 0x07ab, 0x0695, 0x04bd,
+ 0x054c, 0x07d8, 0x0540, 0x04a7, 0x0903, 0x0816,
+ 0x0775, 0x0942, 0x0851, 0x07d3, 0x05d6, 0x01fb,
+ 0x01d8, 0x0716, 0x0a71, 0x0636, 0x0424, 0x04d6,
+ 0x02eb, 0x0435, 0x03be, 0x019f, 0x048f, 0x04df,
+ 0x0352, 0x0330, 0x0316, 0x047c, 0x02c6, 0x0223,
+ 0x0437, 0x023e, 0x027e, 0x02ea, 0x0020, 0x00fa,
+ 0x02b0, 0x0528, 0x05b0, 0x01c3, 0x022f, 0x00d4,
+ 0xfb8f, 0xfd02, 0xff73, 0xfea9, 0xfffb, 0x0334,
+ 0x02e4, 0xff19, 0x000b, 0x0147, 0xfed6, 0xffdc,
+ 0xffba, 0xfd70, 0xfd0b, 0xfdab, 0x012f, 0x0017,
+ 0xfc33, 0xfe4e, 0xfd60, 0xfc82, 0x006b, 0x00e8,
+ 0x020e, 0x0324, 0x005e, 0xfed4, 0xfefc, 0x00d4,
+ 0x0168, 0x00bb, 0x0194, 0x0040, 0x0172, 0x03b4,
+ 0x013f, 0x0200, 0x02a2, 0x0085, 0x0113, 0xfefd,
+ 0xfe7d, 0x033d, 0x0436, 0x026f, 0x0366, 0x0564,
+ 0x02e8, 0x0021, 0x0279, 0x01c7, 0x0259, 0x0709,
+ 0x03bf, 0x00d1, 0x04aa, 0x064b, 0x05c1, 0x0386,
+ 0x0333, 0x05e8, 0x0638, 0x07f0, 0x09e0, 0x09d2,
+ 0x0b67, 0x0b1a, 0x095b, 0x089d, 0x09bf, 0x0c54,
+ 0x09c7, 0x0726, 0x094d, 0x0a33, 0x0b8e, 0x0c48,
+ 0x0bf3, 0x0d8c, 0x0b53, 0x0865, 0x094d, 0x096b,
+ 0x0880, 0x0690, 0x062b, 0x0898, 0x0a7d, 0x0cb7,
+ 0x0b9e, 0x070d, 0x04e1, 0x03c2, 0x0453, 0x058d,
+ 0x066c, 0x09e7, 0x0a47, 0x07ee, 0x072d, 0x0477,
+ 0x0339, 0x0483, 0x0521, 0x069c, 0x07a4, 0x08ed,
+ 0x0973, 0x077f, 0x0768, 0x06fb, 0x04e7, 0x03e4,
+ 0x027d, 0x02de, 0x045a, 0x0327, 0x006e, 0xff5a,
+ 0x02d9, 0x0453, 0x0030, 0xfeca, 0xfe56, 0xfd67,
+ 0xffac, 0xfea6, 0xfbba, 0xfd90, 0xffad, 0xff77,
+ 0xfe45, 0xfb9f, 0xf994, 0xfb0a, 0xfd13, 0xfd9a,
+ 0x000f, 0x001a, 0xfbe4, 0xfca8, 0xff38, 0xfd5d,
+ 0xfb57, 0xfa4d, 0xfba4, 0xfde7, 0xfd78, 0xfe97,
+ 0xff6c, 0xfcca, 0xfc69, 0xfe41, 0xff01, 0xfe80,
+ 0xfd6b, 0xfdd1, 0xfe55, 0xfe1b, 0xff25, 0xff92,
+ 0xffb5, 0x0270, 0x0323, 0xfea0, 0xfc60, 0xfeec,
+ 0x0083, 0x02a4, 0x067a, 0x0641, 0x02a2, 0x0029,
+ 0x003c, 0x0227, 0x0285, 0x01b2, 0x0389, 0x06bd,
+ 0x0758, 0x0511, 0x03ec, 0x054b, 0x054e, 0x0443,
+ 0x0583, 0x06f7, 0x0752, 0x09e5, 0x0ccc, 0x0a90,
+ 0x06ec, 0x0823, 0x09f3, 0x080b, 0x079f, 0x0a79,
+ 0x0ab8, 0x0827, 0x068e, 0x05e6, 0x0695, 0x0775,
+ 0x067a, 0x04ec, 0x0251, 0x0165, 0x048b, 0x0425,
+ 0x0081, 0x0184, 0x042f, 0x0479, 0x03fb, 0x03cc,
+ 0x036d, 0x01ca, 0x00f1, 0x01f6, 0x01cc, 0x0055,
+ 0x003a, 0x0135, 0x0014, 0xfd5b, 0xfc93, 0xfd21,
+ 0xfdea, 0xfed1, 0xff18, 0xfe63, 0xfc55, 0xfcb8,
+ 0xfe9b, 0xfc2c, 0xfaa3, 0xfb2a, 0xf90d, 0xf9a9,
+ 0xfca0, 0xfdec, 0xfeca, 0xfca6, 0xf9cb, 0xfa55,
+ 0xfbc0, 0xfd73, 0xffe5, 0x0104, 0xfd9c, 0xfab5,
+ 0xff7d, 0x0133, 0xfb0a, 0xfa6c, 0xffb0, 0x0171,
+ 0xffc4, 0xff82, 0xff93, 0xfce5, 0xfd39, 0xff89,
+ 0xfc61, 0xf9b6, 0xfbaf, 0xfde7, 0xfdad, 0xfbf4,
+ 0xfe5b, 0x027f, 0x02c0, 0x025c, 0x0249, 0x016e,
+ 0xfef9, 0xfd1f, 0xfff0, 0x019d, 0x021a, 0x049e,
+ 0x03e7, 0x0444, 0x0598, 0x02a7, 0x02ca, 0x03b4,
+ 0x0187, 0x031c, 0x06a4, 0x083c, 0x0817, 0x087e,
+ 0x0a8e, 0x09ba, 0x07f7, 0x0827, 0x07fb, 0x07fb,
+ 0x06f8, 0x0640, 0x07b0, 0x08d9, 0x0926, 0x0727,
+ 0x069a, 0x0890, 0x0603, 0x0335, 0x0344, 0x0548,
+ 0x0a1d, 0x0756, 0x00a6, 0x0204, 0x0379, 0x034e,
+ 0x03e8, 0x00f9, 0xfee3, 0x00c8, 0x036d, 0x0238,
+ 0xfed7, 0x0005, 0x0115, 0xffe7, 0x00ab, 0x01c4,
+ 0x04d5, 0x0628, 0x01e2, 0x0023, 0x01ce, 0x0153,
+ 0xfe40, 0xfe5d, 0x01eb, 0xfec1, 0xfb41, 0xfe6b,
+ 0xfe65, 0xff2d, 0x02fe, 0x023b, 0x003a, 0xfda4,
+ 0xfbf0, 0xfd10, 0xfc5d, 0xfd43, 0xff6f, 0xfda2,
+ 0xfb31, 0xfb87, 0xfe55, 0xfe26, 0xfb07, 0xfb3b,
+ 0xfbf4, 0xfd51, 0xffa8, 0xfe50, 0xfd05, 0xfd67,
+ 0xfe27, 0xfe19, 0xfb12, 0xf9c4, 0xf8f8, 0xf8ae,
+ 0xfcbf, 0xfbd1, 0xf8bd, 0xfb7e, 0xfbcd, 0xfb25,
+ 0xfc01, 0xf9dd, 0xf818, 0xf7ea, 0xf898, 0xf98e,
+ 0xfad8, 0xfd11, 0xfa97, 0xf761, 0xf9a4, 0xfa61,
+ 0xf94c, 0xf9fe, 0xfc0c, 0xff51, 0x0096, 0x000c,
+ 0xfe63, 0xfc09, 0xfbd5, 0xfbe6, 0xfd25, 0xff0a,
+ 0xff23, 0x0171, 0x01a9, 0xff38, 0x00d0, 0x0022,
+ 0xfd56, 0xfe04, 0xfea3, 0xff49, 0xff9a, 0xff6c,
+ 0x0056, 0x00c8, 0x01cc, 0x00e9, 0xfecf, 0xff78,
+ 0xfd75, 0xfc35, 0xff61, 0xfdd4, 0xfa6a, 0xfb79,
+ 0xfcd9, 0xfb5e, 0xf8b2, 0xf8f1, 0xf99a, 0xf822,
+ 0xf8d0, 0xf94f, 0xf6eb, 0xf60c, 0xf87a, 0xf9e0,
+ 0xf7cc, 0xf87c, 0xfacb, 0xf7f7, 0xf56b, 0xf57c,
+ 0xf671, 0xf885, 0xf765, 0xf634, 0xf66c, 0xf4a7,
+ 0xf654, 0xf764, 0xf380, 0xf38b, 0xf649, 0xf726,
+ 0xf747, 0xf621, 0xf59f, 0xf5e2, 0xf5d8, 0xf615,
+ 0xf5ba, 0xf65e, 0xf7a3, 0xf7a4, 0xf806, 0xf7d0,
+ 0xf5fd, 0xf5e4, 0xf8d3, 0xfa2c, 0xf7e3, 0xf6a2,
+ 0xf6a6, 0xf733, 0xf981, 0xf906, 0xf74b, 0xf846,
+ 0xf8e9, 0xfa70, 0xfb1c, 0xf8c8, 0xf91a, 0xfa4b,
+ 0xfac4, 0xfc0f, 0xfa38, 0xf900, 0xfae3, 0xfa94,
+ 0xfa98, 0xfc42, 0xfd26, 0xfe8b, 0xfdf0, 0xfb93,
+ 0xfcc9, 0xfe16, 0xfb7b, 0xfa90, 0xfc0c, 0xfc6d,
+ 0xff0b, 0x010b, 0xfcf6, 0xfa7f, 0xfd33, 0xfe9d,
+ 0xfd62, 0xfc1f, 0xfd25, 0xfe7f, 0xfda0, 0xfd1c,
+ 0xfc0a, 0xfb12, 0xfd5c, 0xfe02, 0xfd21, 0xfecb,
+ 0xff00, 0xfdec, 0xfe2d, 0xfe46, 0xff0d, 0xff02,
+ 0xfd50, 0xfdfb, 0xfee2, 0xfdc8, 0xfdf7, 0xfc44,
+ 0xf8fb, 0xfcfb, 0x028a, 0x001f, 0xfd87, 0xfe59,
+ 0xfd5b, 0xfc03, 0xfb51, 0xfbf4, 0xfea4, 0xfd9e,
+ 0xfb17, 0xff15, 0x048d, 0x03fd, 0xff53, 0xfb52,
+ 0xfb6d, 0xfdda, 0xfd5c, 0xfb3a, 0xfc4f, 0xff3f,
+ 0x006c, 0xffee, 0xff18, 0xfebc, 0xfdd7, 0xfaf3,
+ 0xf94e, 0xfac5, 0xfa75, 0xf945, 0xfd24, 0x00a8,
+ 0xfd8a, 0xfa5e, 0xfa48, 0xf948, 0xf9a8, 0xfbe6,
+ 0xfb5b, 0xfa7b, 0xfbf5, 0xfbed, 0xfb24, 0xfd45,
+ 0x005a, 0x01e4, 0x00bc, 0xfcb5, 0xfb1e, 0xfdea,
+ 0xfe50, 0xfc60, 0xfe0c, 0xfff4, 0xfe6d, 0xfe22,
+ 0xffa4, 0xfeff, 0xfe80, 0x0088, 0x012b, 0xfff3,
+ 0x0042, 0x009b, 0xfffd, 0x00df, 0x02c8, 0x043d,
+ 0x04a0, 0x03cb, 0x04de, 0x0752, 0x0523, 0x005e,
+ 0x002c, 0x02c9, 0x03c7, 0x0379, 0x021d, 0x01c3,
+ 0x051b, 0x0799, 0x059e, 0x0437, 0x061d, 0x06af,
+ 0x03ff, 0x02db, 0x0544, 0x065c, 0x03de, 0x0215,
+ 0x04ff, 0x08fc, 0x06ec, 0x0299, 0x03d7, 0x0643,
+ 0x057b, 0x04a6, 0x04da, 0x06dd, 0x0925, 0x075d,
+ 0x0519, 0x05ff, 0x0611, 0x052e, 0x05ba, 0x0573,
+ 0x03be, 0x02a1, 0x0260, 0x0302, 0x03b5, 0x021f,
+ 0xff99, 0x0015, 0x015c, 0xff2d, 0xfd86, 0xfe9c,
+ 0xfd5d, 0xfc9a, 0x00a8, 0x02d1, 0x0074, 0xfdde,
+ 0xfc6a, 0xfd55, 0xff77, 0x0028, 0xfe95, 0xfa9f,
+ 0xfb97, 0x014c, 0xfe17, 0xf92d, 0xfe32, 0xfea2,
+ 0xf979, 0xfb7c, 0xfc74, 0xfa42, 0xfc96, 0xfc75,
+ 0xf9eb, 0xfbdd, 0xfcaa, 0xf9fc, 0xf7d3, 0xf841,
+ 0xfbb9, 0xfb9c, 0xf71b, 0xf807, 0xfcbf, 0xfd51,
+ 0xfb0a, 0xf9e6, 0xfb3c, 0xfc59, 0xfbb3, 0xfc63,
+ 0xfd29, 0xfd01, 0xfe0f, 0xfcfc, 0xfaca, 0xfc33,
+ 0xfc8b, 0xf9d0, 0xf874, 0xf9fa, 0xff17, 0x018d,
+ 0xfb21, 0xf6f8, 0xfbd5, 0xfedc, 0xfcfc, 0xfc68,
+ 0xfcc9, 0xfc38, 0xfbe9, 0xfc28, 0xfca0, 0xfded,
+ 0xff79, 0xfefd, 0xfcb9, 0xfa9c, 0xf9a3, 0xfb0a,
+ 0xfc71, 0xfb58, 0xfbd3, 0xfd79, 0xfb90, 0xfa30,
+ 0xfc30, 0xfd49, 0xfdc3, 0xfe2b, 0xfbd7, 0xf9dd,
+ 0xfbd6, 0xfddf, 0xfce3, 0xfc9b, 0xfe2e, 0xfc6f,
+ 0xf97c, 0xfd31, 0x02b1, 0x018f, 0xfea6, 0xfe99,
+ 0xfdfe, 0xfdc0, 0xffe0, 0xff1f, 0xfb58, 0xfd06,
+ 0x027c, 0x01e4, 0xfdb9, 0xfe0d, 0x0060, 0xfe86,
+ 0xfaac, 0xfc38, 0x009a, 0xff3f, 0xfe32, 0x0300,
+ 0x038c, 0x0078, 0x0171, 0x0101, 0xff5b, 0xffd8,
+ 0xfd64, 0xfc94, 0x008e, 0x01ce, 0x0334, 0x055e,
+ 0x021c, 0x00c3, 0x03df, 0x0435, 0x0415, 0x036b,
+ 0x0115, 0x02fa, 0x050b, 0x03a2, 0x04d5, 0x0557,
+ 0x026b, 0x0296, 0x04f3, 0x05a7, 0x0424, 0x00f8,
+ 0x01b7, 0x0547, 0x03ef, 0x0182, 0x01fa, 0x01f4,
+ 0x03da, 0x0633, 0x0314, 0x015b, 0x0546, 0x0589,
+ 0x012b, 0xffb9, 0x00cf, 0x017d, 0x0216, 0x019e,
+ 0x0002, 0xff19, 0xfdf1, 0xfcb8, 0xff61, 0x03c7,
+ 0x035a, 0x002a, 0xff61, 0x00c1, 0x03fd, 0x05d1,
+ 0x023d, 0xffcb, 0x01c2, 0x012b, 0xfff8, 0x0201,
+ 0x01fa, 0x0104, 0x0205, 0x01e9, 0x02f4, 0x0498,
+ 0x0391, 0x0567, 0x06cf, 0x0163, 0x0001, 0x03ae,
+ 0x01a2, 0x0159, 0x0776, 0x0900, 0x0656, 0x0520,
+ 0x03c7, 0x0408, 0x05a9, 0x039b, 0x0088, 0x0223,
+ 0x060c, 0x0781, 0x0705, 0x068b, 0x0594, 0x044e,
+ 0x0301, 0x01da, 0x03a3, 0x063a, 0x0340, 0xfefc,
+ 0x0115, 0x04d6, 0x03ea, 0x015b, 0x003f, 0xfef5,
+ 0xfe2d, 0xff39, 0xff1e, 0xff36, 0x0310, 0x0442,
+ 0x0057, 0xff45, 0x000e, 0xff10, 0xffc0, 0xffdd,
+ 0xfe42, 0xff7a, 0x0063, 0xff7e, 0x009b, 0x0108,
+ 0x008d, 0x0194, 0x0037, 0xfe6c, 0x0070, 0x00bc,
+ 0xfe2d, 0xfe45, 0xfff0, 0x00ea, 0x0225, 0x024b,
+ 0x0087, 0xfe8d, 0xfdb9, 0xff45, 0x01f3, 0x0196,
+ 0xff03, 0xfefc, 0x0096, 0x01ae, 0x0363, 0x02db,
+ 0xfeb9, 0xfd23, 0xff55, 0x0095, 0x0107, 0x0235,
+ 0x0275, 0x0154, 0x00b5, 0x0049, 0xfd7c, 0xfb67,
+ 0xfe6d, 0x00e4, 0xff58, 0xffaa, 0x011f, 0x0004,
+ 0xfff0, 0x00d6, 0xff77, 0xfe07, 0xfe4f, 0xff51,
+ 0x0082, 0x00d8, 0x007c, 0x00fa, 0x0156, 0x00a9,
+ 0x0235, 0x0535, 0x031e, 0x0070, 0x04cd, 0x0621,
+ 0x0000, 0xfe76, 0xff86, 0xfd86, 0x0024, 0x03ae,
+ 0x0126, 0x0073, 0x02e3, 0x03d4, 0x048f, 0x02a0,
+ 0xff70, 0x0171, 0x0498, 0x0487, 0x03f4, 0x0302,
+ 0x025d, 0x036c, 0x03fc, 0x037e, 0x02ef, 0x021f,
+ 0x015e, 0x0133, 0x01bb, 0x024c, 0x0301, 0x03ee,
+ 0x0218, 0xfec1, 0xfe5c, 0xfdf3, 0xfd38, 0x00a4,
+ 0x02e5, 0x012f, 0x0178, 0x00e4, 0xfd5a, 0xfeae,
+ 0x0321, 0x022c, 0xfebc, 0xffa0, 0x02a2, 0x02c5,
+ 0x0262, 0x042c, 0x0411, 0x0284, 0x0370, 0x035a,
+ 0x0270, 0x04f4, 0x05b7, 0x02f6, 0x02e2, 0x035c,
+ 0x01ad, 0x0155, 0x0195, 0x0287, 0x0513, 0x038e,
+ 0xff92, 0x0049, 0x01eb, 0x0264, 0x053e, 0x0547,
+ 0x01ba, 0x01db, 0x0223, 0x0033, 0x02e7, 0x064e,
+ 0x0419, 0x01e3, 0x01c9, 0x01a2, 0x02af, 0x0234,
+ 0xff50, 0xff33, 0x016a, 0x0323, 0x03ee, 0x01ed,
+ 0x004b, 0x0259, 0x02ad, 0x01a4, 0x042f, 0x04e7,
+ 0x01e4, 0x01cd, 0x02e5, 0x0164, 0x00f8, 0x02c6,
+ 0x042f, 0x03d3, 0x0286, 0x0353, 0x04ed, 0x03e1,
+ 0x034b, 0x0470, 0x0428, 0x0433, 0x04d2, 0x0379,
+ 0x035c, 0x055d, 0x0604, 0x05e3, 0x0515, 0x0441,
+ 0x06b9, 0x0829, 0x0467, 0x01f6, 0x036d, 0x0480,
+ 0x04e3, 0x04a5, 0x0347, 0x0345, 0x04be, 0x05d9,
+ 0x0620, 0x04ad, 0x02d5, 0x0396, 0x05da, 0x06a9,
+ 0x051a, 0x0297, 0x0222, 0x03ad, 0x0442, 0x0420,
+ 0x043a, 0x0330, 0x022d, 0x0309, 0x03bd, 0x034d,
+ 0x037a, 0x0383, 0x01fd, 0x0044, 0xff37, 0xff80,
+ 0x01cf, 0x0234, 0xff44, 0xff8b, 0x02e1, 0x02fe,
+ 0x02ca, 0x0472, 0x0353, 0x00ee, 0xfee9, 0xfc83,
+ 0xfee4, 0x02ae, 0xffac, 0xfdb7, 0x0118, 0x018c,
+ 0x010f, 0x022c, 0xffe8, 0xfe6e, 0x006a, 0x0077,
+ 0x0084, 0x01ac, 0x0066, 0x00a9, 0x03ad, 0x03d3,
+ 0x029f, 0x0343, 0x0339, 0x034e, 0x05b2, 0x0642,
+ 0x0389, 0x0354, 0x060a, 0x0727, 0x0740, 0x0626,
+ 0x038a, 0x0418, 0x0592, 0x03d5, 0x0421, 0x05bd,
+ 0x0496, 0x0508, 0x054c, 0x0330, 0x050f, 0x0659,
+ 0x01da, 0x0039, 0x01a2, 0x00db, 0x01ae, 0x02b1,
+ 0x00e2, 0x0140, 0x0388, 0x0368, 0x0230, 0x023e,
+ 0x036b, 0x0321, 0x0066, 0xff4c, 0x008a, 0x0048,
+ 0xff86, 0x00bd, 0x0152, 0xff44, 0xfd72, 0xfe08,
+ 0xff27, 0xff8c, 0x0000, 0x0036, 0x0019, 0x00ce,
+ 0x0238, 0x0304, 0x028a, 0x01cd, 0x023e, 0x03ac,
+ 0x0475, 0x0339, 0x01a7, 0x01bc, 0x00ee, 0xff9b,
+ 0x0162, 0x0263, 0x00a5, 0x0142, 0x0241, 0x0166,
+ 0x0295, 0x0332, 0x00fc, 0x0000, 0xffe3, 0x003d,
+ 0x021d, 0x01a8, 0xfe8d, 0xfd07, 0xfde5, 0xff8d,
+ 0x0018, 0x0007, 0x0040, 0xff34, 0xff5d, 0x0172,
+ 0x0065, 0xfec7, 0xff96, 0xfe8f, 0xfdbc, 0xff24,
+ 0xff41, 0x0003, 0x0178, 0x0147, 0x0277, 0x02f7,
+ 0x00a5, 0x0071, 0x00d0, 0xff0e, 0xfe5d, 0xfea1,
+ 0xffed, 0x01d6, 0x007a, 0xfed2, 0xffe7, 0x0000,
+ 0xff99, 0xffeb, 0xff51, 0xff07, 0xfe8f, 0xfd8f,
+ 0xfebd, 0x0038, 0xff4a, 0xfd89, 0xfd0d, 0xfed9,
+ 0xff8d, 0xfcf0, 0xfd0b, 0x009e, 0x00a2, 0xfd88,
+ 0xfc77, 0xfe26, 0xffca, 0xff0c, 0xfe01, 0xfe99,
+ 0xfee8, 0xfebf, 0xff43, 0x00ed, 0x031f, 0x02f4,
+ 0x0248, 0x03d0, 0x035a, 0x02fe, 0x0674, 0x058b,
+ 0x012c, 0x0354, 0x069e, 0x054b, 0x04ee, 0x0609,
+ 0x073e, 0x08f7, 0x07e6, 0x05d7, 0x06ca, 0x07c1,
+ 0x07d3, 0x0840, 0x06e7, 0x056d, 0x0633, 0x067a,
+ 0x0645, 0x07b1, 0x083b, 0x05f6, 0x0374, 0x0319,
+ 0x03e9, 0x0416, 0x048d, 0x056c, 0x0474, 0x0308,
+ 0x0247, 0x007b, 0x014e, 0x0482, 0x0210, 0xfe37,
+ 0xffa6, 0xff41, 0xfd48, 0xfef2, 0xfe9f, 0xfdd6,
+ 0x0052, 0xfe55, 0xfa21, 0xfb18, 0xfcc8, 0xfe15,
+ 0xff6f, 0xfd86, 0xfc51, 0xfc98, 0xfb3f, 0xfc82,
+ 0xfe5d, 0xfc61, 0xfbd3, 0xfc04, 0xf8ac, 0xf6b0,
+ 0xf8f0, 0xfb8e, 0xfae5, 0xf830, 0xf7af, 0xf808,
+ 0xf803, 0xf96e, 0xf81e, 0xf59a, 0xf78a, 0xf7a7,
+ 0xf609, 0xf8f3, 0xf947, 0xf722, 0xf970, 0xf8e3,
+ 0xf4b9, 0xf4fc, 0xf6c0, 0xf79e, 0xf806, 0xf67c,
+ 0xf715, 0xf994, 0xf99e, 0xf9ab, 0xf8de, 0xf6b3,
+ 0xf87a, 0xfa27, 0xf7e2, 0xf85f, 0xfb02, 0xfa39,
+ 0xf8d7, 0xfa64, 0xfcae, 0xfc1e, 0xfab3, 0xfc8d,
+ 0xfd85, 0xfbbd, 0xfdc1, 0x00c8, 0xfe8e, 0xfc41,
+ 0xfca3, 0xfc6d, 0xfce2, 0xfe41, 0xfec2, 0xff3c,
+ 0xfe8e, 0xfcb5, 0xfd23, 0xfe7f, 0xfe0c, 0xfde4,
+ 0xfe37, 0xfd56, 0xfca6, 0xfbc5, 0xf990, 0xf9d8,
+ 0xfcd5, 0xfc80, 0xfa3c, 0xfb8b, 0xfd43, 0xfcab,
+ 0xfceb, 0xfd4c, 0xfd3d, 0xfe4d, 0xfc91, 0xf902,
+ 0xfabd, 0xfdf0, 0xfd60, 0xfd12, 0xfc43, 0xf9ff,
+ 0xfb93, 0xfd78, 0xfaf6, 0xfa89, 0xfd45, 0xfd04,
+ 0xfad5, 0xfa67, 0xfb98, 0xfc95, 0xfb83, 0xf9c1,
+ 0xf8f1, 0xf76f, 0xf663, 0xf802, 0xf92f, 0xf7fd,
+ 0xf6ec, 0xf695, 0xf6a9, 0xf7d9, 0xf7f7, 0xf640,
+ 0xf6cc, 0xf886, 0xf67d, 0xf435, 0xf579, 0xf63e,
+ 0xf69d, 0xf932, 0xf992, 0xf63e, 0xf48e, 0xf5ad,
+ 0xf5d3, 0xf3d5, 0xf32a, 0xf5da, 0xf7cb, 0xf6d1,
+ 0xf6db, 0xf86c, 0xf820, 0xf690, 0xf5fd, 0xf5e5,
+ 0xf5a7, 0xf627, 0xf7a5, 0xf903, 0xf98d, 0xf95f,
+ 0xf8c9, 0xf863, 0xf8a4, 0xf942, 0xf917, 0xf831,
+ 0xf901, 0xfadc, 0xfa2e, 0xf903, 0xfb04, 0xfd3f,
+ 0xfcb7, 0xfb95, 0xfba0, 0xfb90, 0xfb17, 0xfbcc,
+ 0xfc4c, 0xfb86, 0xfc9c, 0xfdb7, 0xfbfd, 0xfc32,
+ 0xfd48, 0xfbec, 0xfdf4, 0x00ae, 0xfd8e, 0xfb51,
+ 0xfb46, 0xf98e, 0xfb04, 0xfdd7, 0xfdd2, 0xfe65,
+ 0xfdde, 0xfcdf, 0xfe7b, 0xfd2b, 0xfc3c, 0x0010,
+ 0xff00, 0xfc2c, 0xffe0, 0x0129, 0xff43, 0x00bf,
+ 0x00ee, 0xffb8, 0x0086, 0x00ed, 0x016a, 0x01c8,
+ 0x0137, 0x01bd, 0x01b8, 0x01ec, 0x032d, 0x012d,
+ 0x0020, 0x0272, 0x00f0, 0xff2b, 0x00c4, 0x0010,
+ 0xffed, 0x0111, 0xfebb, 0xfe49, 0x004c, 0xfec7,
+ 0xfd18, 0xfe3b, 0x0045, 0x00dc, 0xfed3, 0xfefd,
+ 0x00c5, 0xff18, 0xff7f, 0x01d7, 0xffb1, 0xfe1b,
+ 0xfe49, 0xfdcb, 0x008c, 0x022c, 0x0094, 0x009c,
+ 0xfde1, 0xfb96, 0x001a, 0x0132, 0xfe56, 0xfffa,
+ 0x013b, 0x00ac, 0x0096, 0xffb9, 0x026d, 0x05ec,
+ 0x03fb, 0x01c8, 0x00de, 0x0094, 0x02b6, 0x0222,
+ 0x0087, 0x023a, 0x0105, 0xff55, 0x01b6, 0x0277,
+ 0x031b, 0x0439, 0x018b, 0x00d3, 0x02cc, 0x0331,
+ 0x058f, 0x067c, 0x032e, 0x02bc, 0x02f1, 0x00c0,
+ 0x018f, 0x0360, 0x02e3, 0x020f, 0x0118, 0x0216,
+ 0x04e0, 0x047c, 0x024c, 0x0240, 0x0331, 0x0381,
+ 0x0347, 0x032d, 0x02a2, 0x01f3, 0x03a6, 0x048e,
+ 0x01ee, 0x022e, 0x049c, 0x0250, 0xff71, 0xff77,
+ 0xffa2, 0x01c5, 0x0365, 0x008e, 0xffe2, 0x01d3,
+ 0xffdb, 0xfe48, 0xffd0, 0x0036, 0x0168, 0x0222,
+ 0xfe6a, 0xfc95, 0xfebe, 0xff44, 0xffd8, 0x00fd,
+ 0xfe8f, 0xfb6e, 0xfb99, 0xfd4a, 0xfd1d, 0xfa39,
+ 0xf8db, 0xfac3, 0xfc04, 0xfba3, 0xfa8d, 0xfa5c,
+ 0xfc8c, 0xfbd1, 0xf761, 0xf6c1, 0xf8d3, 0xfa29,
+ 0xfb33, 0xf866, 0xf5ee, 0xf9c3, 0xfb8b, 0xf916,
+ 0xf8f7, 0xf8e6, 0xf8b3, 0xf9ad, 0xf74f, 0xf570,
+ 0xf7eb, 0xf883, 0xf80c, 0xfa7c, 0xfba8, 0xfb14,
+ 0xfb95, 0xfb45, 0xfa05, 0xf9e2, 0xf9b5, 0xf8c4,
+ 0xf8b7, 0xfa14, 0xfb6f, 0xfaee, 0xf908, 0xf8b0,
+ 0xf968, 0xf880, 0xf7ca, 0xf87a, 0xf8fc, 0xfa00,
+ 0xf9ef, 0xf88f, 0xfad2, 0xfd1f, 0xfb3b, 0xfbc5,
+ 0xfd3a, 0xfaa6, 0xfacd, 0xfdc8, 0xfddc, 0xfd7c,
+ 0xfcd6, 0xfb2a, 0xfa99, 0xf99a, 0xfa7a, 0xfea3,
+ 0x0000, 0x002e, 0x0265, 0x01fa, 0x008b, 0x019f,
+ 0x024c, 0x026d, 0x02cf, 0x02ae, 0x038b, 0x04e3,
+ 0x04fd, 0x04dc, 0x0569, 0x0551, 0x038f, 0x02fe,
+ 0x04cb, 0x0575, 0x060b, 0x0770, 0x05f6, 0x04d7,
+ 0x0635, 0x0573, 0x054d, 0x0766, 0x06e9, 0x063c,
+ 0x0735, 0x071d, 0x07ab, 0x07e9, 0x062e, 0x05a0,
+ 0x0532, 0x0460, 0x0619, 0x0778, 0x05f2, 0x03ac,
+ 0x01fa, 0x0266, 0x03d9, 0x0332, 0x02b4, 0x0436,
+ 0x0426, 0x01f4, 0x01fc, 0x045c, 0x0402, 0x0131,
+ 0x000f, 0xffed, 0x00b5, 0x0274, 0x00d2, 0xfe33,
+ 0xff32, 0xff8d, 0xfe28, 0xfd7f, 0xfca0, 0xfe28,
+ 0x00e8, 0xff21, 0xfd88, 0x0009, 0x0174, 0x0124,
+ 0x00ba, 0x0004, 0x004e, 0x0027, 0xff07, 0xfe58,
+ 0xfc85, 0xfbe9, 0xfe34, 0xfdb7, 0xfb92, 0xfc16,
+ 0xfbe7, 0xfbe3, 0xfdd0, 0xfcce, 0xfae3, 0xfc02,
+ 0xfbf9, 0xfb38, 0xfcd2, 0xfd58, 0xfc69, 0xfce1,
+ 0xfd78, 0xfcd0, 0xfb6c, 0xfb2d, 0xfd93, 0xff21,
+ 0xfdb1, 0xfd0e, 0xfe7b, 0x001d, 0x007f, 0xfe0b,
+ 0xfbc9, 0xfd65, 0xfea0, 0xfd0a, 0xfd66, 0x008c,
+ 0x0222, 0x0103, 0x00dc, 0x03a9, 0x0577, 0x0436,
+ 0x03a1, 0x0448, 0x03d1, 0x0361, 0x0443, 0x0572,
+ 0x05b0, 0x050d, 0x0530, 0x05f5, 0x05e5, 0x055d,
+ 0x0445, 0x037e, 0x0508, 0x061f, 0x04ba, 0x0438,
+ 0x0558, 0x066e, 0x0697, 0x04ba, 0x03c3, 0x05c4,
+ 0x060b, 0x045c, 0x04ec, 0x0553, 0x0380, 0x02f5,
+ 0x0420, 0x03bf, 0x01e9, 0x0238, 0x0406, 0x02b7,
+ 0x00f8, 0x03b7, 0x0612, 0x041c, 0x019a, 0x0043,
+ 0x003a, 0x01ad, 0x0294, 0x0300, 0x02c5, 0x0100,
+ 0x0148, 0x02f3, 0x01ce, 0x0190, 0x033c, 0x0287,
+ 0x0234, 0x0315, 0x01d6, 0x020f, 0x045f, 0x0400,
+ 0x02bd, 0x029a, 0x01e9, 0x01ce, 0x02cd, 0x03c6,
+ 0x04b0, 0x03fc, 0x00b7, 0xfdfe, 0xff03, 0x0177,
+ 0x0079, 0xfdaa, 0xfd70, 0xfe62, 0xfe9e, 0xfe9e,
+ 0xfe8a, 0xfef3, 0xfd7f, 0xfa04, 0xfada, 0xfe4b,
+ 0xfda9, 0xfc27, 0xfc99, 0xfd58, 0xfe87, 0xfdac,
+ 0xfb8b, 0xfc7b, 0xfce4, 0xfb93, 0xfd4f, 0xffa3,
+ 0xfff3, 0xff5a, 0xfc6a, 0xfacc, 0xfe6b, 0x00b0,
+ 0xfe75, 0xfddf, 0x0045, 0x016a, 0x018d, 0x03bb,
+ 0x05ee, 0x04f2, 0x0398, 0x04e0, 0x06be, 0x0720,
+ 0x067c, 0x05c5, 0x0550, 0x0604, 0x0872, 0x0951,
+ 0x06c8, 0x04a3, 0x04b3, 0x0678, 0x0935, 0x0909,
+ 0x078f, 0x0995, 0x0a17, 0x0754, 0x0830, 0x0a85,
+ 0x09be, 0x0941, 0x09b3, 0x09a0, 0x09d5, 0x08a5,
+ 0x05f1, 0x04ad, 0x0504, 0x056f, 0x0520, 0x04b1,
+ 0x05a3, 0x0688, 0x05b5, 0x054e, 0x064c, 0x06ae,
+ 0x05d7, 0x056a, 0x06cf, 0x0811, 0x05c7, 0x0247,
+ 0x0239, 0x0329, 0x0190, 0x0104, 0x037e, 0x049b,
+ 0x02e0, 0x0168, 0x0175, 0x018a, 0x0038, 0xfec5,
+ 0xff48, 0x00a6, 0x018e, 0x01b0, 0xff89, 0xfd62,
+ 0xfecf, 0x001f, 0xfe91, 0xfdcd, 0xfeb4, 0xff64,
+ 0xff25, 0xfd60, 0xfc4c, 0xfcec, 0xfc0d, 0xfada,
+ 0xfabe, 0xf822, 0xf623, 0xf8f8, 0xfb06, 0xfb68,
+ 0xfdce, 0xfdf5, 0xfb68, 0xfb26, 0xfbb0, 0xfcd2,
+ 0xffd7, 0x00a1, 0xffd6, 0x009c, 0x007b, 0xff8a,
+ 0xff45, 0xff14, 0x00b6, 0x0245, 0x00a8, 0x0003,
+ 0x01cd, 0x02f7, 0x03b6, 0x03b1, 0x02d6, 0x02f7,
+ 0x033b, 0x043b, 0x07cc, 0x0ab0, 0x09c1, 0x074f,
+ 0x0708, 0x0798, 0x0565, 0x039b, 0x0573, 0x06ac,
+ 0x05ed, 0x0545, 0x04c5, 0x061e, 0x086e, 0x08f3,
+ 0x08a3, 0x0737, 0x06b4, 0x09a4, 0x09df, 0x0727,
+ 0x07c9, 0x0852, 0x0832, 0x09ff, 0x07c9, 0x040f,
+ 0x0519, 0x05ab, 0x05d7, 0x0831, 0x07a5, 0x06ff,
+ 0x09a6, 0x099b, 0x0776, 0x07db, 0x09a7, 0x0ab2,
+ 0x0890, 0x04e6, 0x0507, 0x06b2, 0x061a, 0x05d6,
+ 0x0692, 0x0629, 0x0459, 0x0205, 0x00a3, 0x00e6,
+ 0x02c4, 0x0503, 0x0441, 0x015e, 0x0083, 0x0062,
+ 0x000c, 0x01c4, 0x01cb, 0xfd5e, 0xfac9, 0xfca1,
+ 0xfe0d, 0xfe2e, 0xff26, 0xffd6, 0xfed6, 0xfcd3,
+ 0xfb52, 0xfba2, 0xfc75, 0xfba0, 0xfa7d, 0xfa61,
+ 0xf9a7, 0xf878, 0xf7f9, 0xf7a6, 0xf8c1, 0xfa8c,
+ 0xf91e, 0xf7f0, 0xfae7, 0xfb66, 0xf8a6, 0xf9b4,
+ 0xfb51, 0xfa0e, 0xfa68, 0xfb07, 0xfb1a, 0xfdef,
+ 0xff37, 0xfde2, 0xfeda, 0xfeb5, 0xfc8a, 0xfd73,
+ 0xfe79, 0xfd5e, 0xfda8, 0xff01, 0xffe0, 0xff08,
+ 0xfda2, 0x0132, 0x05fb, 0x0410, 0x0079, 0x005c,
+ 0x0073, 0xffab, 0xfe8f, 0xfe80, 0x0160, 0x0387,
+ 0x024b, 0x00a7, 0x0067, 0x018c, 0x02de, 0x0282,
+ 0x0204, 0x030e, 0x04ae, 0x05d8, 0x05ad, 0x04f7,
+ 0x04a0, 0x0332, 0x01ae, 0x02d9, 0x04fc, 0x04d0,
+ 0x035d, 0x03ee, 0x0568, 0x04d1, 0x0504, 0x0778,
+ 0x07aa, 0x05b8, 0x04e9, 0x054c, 0x069a, 0x067c,
+ 0x047e, 0x04f9, 0x058b, 0x0342, 0x03ce, 0x0640,
+ 0x0590, 0x0544, 0x05a3, 0x03a9, 0x032f, 0x0492,
+ 0x0381, 0x01ff, 0x02bf, 0x0347, 0x02ac, 0x035c,
+ 0x0528, 0x04e1, 0x0291, 0x00e5, 0x0077, 0x017a,
+ 0x036f, 0x03a2, 0x0269, 0x025c, 0x0272, 0x01b8,
+ 0x02e0, 0x0581, 0x0491, 0x00f3, 0x00c4, 0x0283,
+ 0x0224, 0x01a4, 0x0091, 0xfe83, 0xff74, 0x009e,
+ 0xfeed, 0xfefd, 0xfff9, 0xff3b, 0xff29, 0xfe22,
+ 0xfcbd, 0xfec4, 0x0078, 0x0046, 0x0027, 0xfe49,
+ 0xfe0a, 0x00ae, 0xffa4, 0xfdbc, 0xffbb, 0x0088,
+ 0xfeed, 0xfdea, 0xff0f, 0x0342, 0x05a1, 0x0371,
+ 0x00de, 0xfe05, 0xfbaf, 0xfd06, 0xff1a, 0xffa8,
+ 0xfe54, 0xfb4e, 0xfbe2, 0xfe6c, 0xfc7d, 0xfae0,
+ 0xfc8e, 0xfcfe, 0xfc87, 0xfb7e, 0xfa6d, 0xfc9e,
+ 0xfedf, 0xfdb1, 0xfb13, 0xf88f, 0xf8cd, 0xfb67,
+ 0xfbf5, 0xfb06, 0xf982, 0xf77c, 0xf6f2, 0xf56e,
+ 0xf436, 0xf84f, 0xfbb8, 0xfaf7, 0xfbb7, 0xfc7e,
+ 0xfbdb, 0xfc95, 0xfc22, 0xfadf, 0xfb55, 0xf9e6,
+ 0xf693, 0xf67d, 0xfaa0, 0xff10, 0x0000, 0xff40,
+ 0xff03, 0xfdae, 0xfcf1, 0xfdf5, 0xfe7c, 0xfee1,
+ 0xfd8e, 0xfa49, 0xfa03, 0xfb26, 0xfb56, 0xfc6e,
+ 0xfb0f, 0xf983, 0xfd05, 0xfdac, 0xf9ee, 0xfaf2,
+ 0xfe8b, 0xff7a, 0xfe42, 0xfb9c, 0xfb2c, 0xfd14,
+ 0xfd1f, 0xfce4, 0xfdf9, 0xfef3, 0xff64, 0xfeb8,
+ 0xfef9, 0xff67, 0xfc36, 0xfa03, 0xfaac, 0xf96b,
+ 0xf93a, 0xfa7c, 0xf92f, 0xf89e, 0xf807, 0xf5fd,
+ 0xf733, 0xf824, 0xf71e, 0xf908, 0xf9a4, 0xf8d0,
+ 0xfb50, 0xfb13, 0xf83b, 0xf921, 0xfa5c, 0xfae0,
+ 0xfc27, 0xfc75, 0xfdbc, 0xfe8f, 0xfd7a, 0xff10,
+ 0x0029, 0xfdfb, 0xfd9c, 0xfd0f, 0xfaa9, 0xf94f,
+ 0xf6c9, 0xf52d, 0xf6a0, 0xf5f7, 0xf60c, 0xf959,
+ 0xf946, 0xf81b, 0xf9ef, 0xf9b2, 0xf767, 0xf6ff,
+ 0xf7f9, 0xf8cb, 0xf763, 0xf47b, 0xf40a, 0xf53b,
+ 0xf48b, 0xf2a3, 0xf263, 0xf3b3, 0xf3dd, 0xf31d,
+ 0xf320, 0xf3cf, 0xf664, 0xf97d, 0xf955, 0xf854,
+ 0xf865, 0xf75d, 0xf73e, 0xf8a7, 0xf8ad, 0xf854,
+ 0xf884, 0xf920, 0xfad3, 0xfaf1, 0xf976, 0xfaba,
+ 0xfe29, 0x002d, 0xff97, 0xfe38, 0xfed3, 0xff5c,
+ 0xfe74, 0xffbb, 0x01b7, 0x0196, 0x01c1, 0x0192,
+ 0x0036, 0x0067, 0x0116, 0x00f7, 0x00ed, 0x0044,
+ 0xfff1, 0x0034, 0xfffa, 0x0237, 0x0640, 0x057d,
+ 0x005c, 0xfdee, 0x0099, 0x03f0, 0x0485, 0x043a,
+ 0x0379, 0x016e, 0x00cc, 0x0173, 0x0178, 0x0217,
+ 0x0255, 0x01bc, 0x0119, 0xfdd5, 0xfb27, 0xfd57,
+ 0xfe13, 0xfb77, 0xfa1d, 0xf86a, 0xf712, 0xf8c4,
+ 0xfa66, 0xfab1, 0xf8a3, 0xf3d2, 0xf2a7, 0xf537,
+ 0xf51a, 0xf485, 0xf5d7, 0xf5ee, 0xf558, 0xf64a,
+ 0xf87f, 0xf9fd, 0xf971, 0xf96c, 0xfa51, 0xf8cf,
+ 0xf5f3, 0xf3fb, 0xf2eb, 0xf37d, 0xf45b, 0xf451,
+ 0xf550, 0xf736, 0xf81c, 0xf767, 0xf5cd, 0xf52b,
+ 0xf562, 0xf595, 0xf613, 0xf594, 0xf4c8, 0xf549,
+ 0xf51a, 0xf533, 0xf5ec, 0xf394, 0xf1cc, 0xf31a,
+ 0xf1f7, 0xf05f, 0xf1c4, 0xf34b, 0xf611, 0xf84f,
+ 0xf6eb, 0xf6ff, 0xf743, 0xf4bf, 0xf5fa, 0xf8ac,
+ 0xf7aa, 0xf896, 0xfad7, 0xfa6b, 0xf9d8, 0xf881,
+ 0xf792, 0xf92d, 0xf8ed, 0xf91c, 0xfcab, 0xfca4,
+ 0xfabf, 0xfd32, 0xff3b, 0xfe7e, 0xfe0b, 0xfee4,
+ 0x0258, 0x05cb, 0x0621, 0x0619, 0x058f, 0x044c,
+ 0x05fb, 0x080f, 0x0884, 0x0af7, 0x0c82, 0x0a99,
+ 0x0a9e, 0x0cdc, 0x0dff, 0x0f77, 0x1102, 0x1196,
+ 0x132a, 0x13a6, 0x1108, 0x1080, 0x130c, 0x1336,
+ 0x11fd, 0x1219, 0x10fb, 0x0f8e, 0x0f61, 0x0d50,
+ 0x0adf, 0x0af1, 0x0b04, 0x0ba6, 0x0dc1, 0x0db8,
+ 0x0c79, 0x0c7d, 0x0bad, 0x09e1, 0x0800, 0x056d,
+ 0x03cf, 0x04c8, 0x06fe, 0x0680, 0x0237, 0x00b8,
+ 0x02f1, 0x0109, 0xfddc, 0xffa4, 0x00c0, 0xff27,
+ 0xff0d, 0xff17, 0xfeb3, 0xfeb9, 0xfd82, 0xfd00,
+ 0xfe81, 0xfe7d, 0xfc5e, 0xfb02, 0xfbde, 0xfcb5,
+ 0xfa7a, 0xf815, 0xf8c8, 0xf994, 0xf8fc, 0xf83e,
+ 0xf772, 0xf727, 0xf619, 0xf3cf, 0xf429, 0xf6cb,
+ 0xf793, 0xf690, 0xf556, 0xf4c6, 0xf4fc, 0xf553,
+ 0xf75a, 0xfa99, 0xfc18, 0xfd0f, 0xfd60, 0xfa9e,
+ 0xf8a3, 0xfa75, 0xfc68, 0xfc7c, 0xfcb9, 0xfef5,
+ 0x0100, 0xff9d, 0xfe27, 0xffc8, 0x0133, 0x01ee,
+ 0x0365, 0x043d, 0x0504, 0x05f2, 0x0649, 0x0745,
+ 0x0785, 0x06f5, 0x08be, 0x09b0, 0x0698, 0x0360,
+ 0x0248, 0x03d7, 0x07d5, 0x0a1e, 0x0977, 0x072e,
+ 0x039c, 0x0356, 0x0726, 0x07b0, 0x04dc, 0x04b2,
+ 0x068f, 0x0774, 0x07a0, 0x080e, 0x08b0, 0x0841,
+ 0x06ee, 0x0649, 0x0666, 0x070b, 0x0767, 0x05ff,
+ 0x046c, 0x03ec, 0x01df, 0xfef2, 0xff78, 0x0198,
+ 0x000e, 0xfd23, 0xfd36, 0xfd8c, 0xfc96, 0xfccf,
+ 0xfbe2, 0xf8d3, 0xf859, 0xf9af, 0xf9fc, 0xfa9f,
+ 0xf8da, 0xf3d6, 0xf356, 0xf77f, 0xf823, 0xf66b,
+ 0xf7e6, 0xf9c6, 0xf86b, 0xf6b9, 0xf677, 0xf5ce,
+ 0xf55b, 0xf596, 0xf42c, 0xf289, 0xf359, 0xf44d,
+ 0xf3f3, 0xf3d4, 0xf3f4, 0xf425, 0xf4df, 0xf5cc,
+ 0xf5e6, 0xf430, 0xf232, 0xf1bb, 0xf15a, 0xf0a7,
+ 0xf0df, 0xf252, 0xf555, 0xf706, 0xf53f, 0xf53d,
+ 0xf83e, 0xf944, 0xf976, 0xfaad, 0xfb0b, 0xfbfe,
+ 0xfd57, 0xfc7c, 0xfadf, 0xfa49, 0xfb9f, 0xfdd2,
+ 0xfc04, 0xf81c, 0xf88f, 0xfaa5, 0xfb1d, 0xfcd1,
+ 0xfebc, 0xfe6c, 0xfda6, 0xfe23, 0x0068, 0x02fc,
+ 0x0325, 0x0279, 0x03b7, 0x04db, 0x03cc, 0x0235,
+ 0x0123, 0xfff3, 0x001a, 0x0247, 0x0331, 0x023a,
+ 0x0209, 0x0222, 0x0233, 0x02ee, 0x0218, 0x0085,
+ 0x01b0, 0x03dc, 0x04e6, 0x059a, 0x05a4, 0x0598,
+ 0x0696, 0x07fd, 0x0972, 0x09b5, 0x0810, 0x069b,
+ 0x05db, 0x0600, 0x077e, 0x0717, 0x0582, 0x0768,
+ 0x0953, 0x0754, 0x04ef, 0x0372, 0x02aa, 0x03ec,
+ 0x04c3, 0x039b, 0x02a5, 0x02c2, 0x03ff, 0x0472,
+ 0x01aa, 0xfe3e, 0xfbf5, 0xfa6b, 0xfcbf, 0x0206,
+ 0x04ae, 0x049e, 0x03a5, 0x0242, 0x022d, 0x029d,
+ 0x02fa, 0x0479, 0x0448, 0x0218, 0x023c, 0x02a2,
+ 0x007a, 0xffd7, 0x0190, 0x01b7, 0x001b, 0xffee,
+ 0x02a9, 0x0524, 0x045a, 0x0361, 0x0422, 0x02ce,
+ 0xff12, 0xfd3c, 0xfe49, 0xff49, 0xfe2b, 0xfcd7,
+ 0xfe2e, 0x0053, 0x0037, 0xff24, 0xfeea, 0xff5a,
+ 0x007f, 0x016d, 0x008a, 0xff0f, 0xfea1, 0xfe3c,
+ 0xfe1f, 0xfff5, 0x014f, 0xff70, 0xfd65, 0xfdd1,
+ 0xfeff, 0x003b, 0x0144, 0x00d7, 0x00fc, 0x02f7,
+ 0x02c6, 0x0022, 0x0068, 0x0346, 0x03ee, 0x02c8,
+ 0x01bb, 0x0011, 0x0027, 0x03be, 0x05e1, 0x0471,
+ 0x0374, 0x0335, 0x023c, 0x0211, 0x022f, 0x01d4,
+ 0x02d7, 0x045d, 0x0486, 0x03e5, 0x0284, 0x016c,
+ 0x02ef, 0x05a0, 0x067c, 0x05e9, 0x057b, 0x04af,
+ 0x036f, 0x0404, 0x0610, 0x0638, 0x04d5, 0x03a0,
+ 0x02d5, 0x044d, 0x062c, 0x041a, 0x01a2, 0x0281,
+ 0x03a3, 0x040c, 0x043b, 0x037e, 0x03b4, 0x04ca,
+ 0x0476, 0x037e, 0x0334, 0x046e, 0x0635, 0x0584,
+ 0x0447, 0x04c2, 0x0400, 0x0314, 0x044f, 0x0502,
+ 0x05b3, 0x0755, 0x06a2, 0x049a, 0x03f2, 0x0390,
+ 0x0342, 0x0370, 0x03c3, 0x044c, 0x044f, 0x039e,
+ 0x0223, 0x0030, 0x0105, 0x040d, 0x0424, 0x0190,
+ 0xfef5, 0xfcca, 0xfcc5, 0xfe14, 0xfdbd, 0xfc5e,
+ 0xfb6e, 0xfb5f, 0xfb7a, 0xfa9f, 0xfb82, 0xfe6a,
+ 0xfe47, 0xfcae, 0xfdbc, 0xfe30, 0xfcc7, 0xfc59,
+ 0xfc93, 0xfcd5, 0xfd27, 0xfcef, 0xfcb9, 0xfcdd,
+ 0xfe1d, 0x0099, 0x0109, 0xff4d, 0xfefa, 0xff23,
+ 0xfe5f, 0xff1f, 0x019f, 0x0344, 0x0277, 0xffd5,
+ 0xfd82, 0xfce5, 0xfe7e, 0x0165, 0x02e4, 0x02de,
+ 0x0303, 0x0297, 0x017c, 0x0059, 0xff1b, 0xffb0,
+ 0x023b, 0x0383, 0x0323, 0x02a2, 0x034f, 0x0539,
+ 0x04a9, 0x024d, 0x0375, 0x052b, 0x0449, 0x0516,
+ 0x0657, 0x05f2, 0x07bf, 0x08de, 0x0687, 0x065f,
+ 0x070f, 0x0540, 0x06cf, 0x0a13, 0x0785, 0x042f,
+ 0x0595, 0x0703, 0x06f0, 0x07d5, 0x088f, 0x08b0,
+ 0x08e5, 0x07f2, 0x070d, 0x08eb, 0x0b77, 0x0b35,
+ 0x0977, 0x0913, 0x0950, 0x089d, 0x0827, 0x0815,
+ 0x0621, 0x03ab, 0x0445, 0x0646, 0x069b, 0x0662,
+ 0x068d, 0x05ce, 0x043c, 0x039a, 0x048a, 0x053f,
+ 0x0463, 0x02e5, 0x00ff, 0xff2a, 0xff71, 0x0045,
+ 0xfef6, 0xfdc9, 0xfdf6, 0xfd38, 0xfca4, 0xfd8c,
+ 0xfcad, 0xf967, 0xf880, 0xfab4, 0xfa90, 0xf6d5,
+ 0xf474, 0xf530, 0xf688, 0xf71f, 0xf719, 0xf784,
+ 0xf8e1, 0xf93c, 0xf747, 0xf4e5, 0xf4f2, 0xf764,
+ 0xf861, 0xf6cf, 0xf639, 0xf772, 0xf8ba, 0xf941,
+ 0xf8ad, 0xf93a, 0xfb87, 0xfba7, 0xfa94, 0xfad6,
+ 0xf976, 0xf84b, 0xfb72, 0xff0c, 0x0027, 0xffc4,
+ 0xfe26, 0xfdb9, 0xfea3, 0xfe33, 0xfe2a, 0xff60,
+ 0x0085, 0x0348, 0x05f5, 0x05a4, 0x054b, 0x0640,
+ 0x0716, 0x088a, 0x09cb, 0x0a4b, 0x0ba3, 0x0c44,
+ 0x0af3, 0x0a9c, 0x0bc5, 0x0bea, 0x0b6d, 0x0c9e,
+ 0x0e66, 0x0dc6, 0x0c07, 0x0c6b, 0x0ddf, 0x0e09,
+ 0x0d34, 0x0bf9, 0x0b01, 0x0b1f, 0x0b61, 0x0b2a,
+ 0x0bbb, 0x0cb7, 0x0c93, 0x0c06, 0x0c29, 0x0ca2,
+ 0x0cf3, 0x0c3d, 0x0b92, 0x0dc9, 0x0ff1, 0x0d57,
+ 0x094b, 0x075c, 0x05fa, 0x0599, 0x06b8, 0x0726,
+ 0x0620, 0x041c, 0x0352, 0x0541, 0x067d, 0x060c,
+ 0x05ef, 0x0474, 0x02be, 0x033f, 0x0249, 0xffa3,
+ 0xff1d, 0xff61, 0xfeff, 0xfe76, 0xfdaf, 0xfdcf,
+ 0xfdbd, 0xfc73, 0xfc5d, 0xfbf2, 0xf98d, 0xf825,
+ 0xf6ea, 0xf4e5, 0xf450, 0xf3c3, 0xf36d, 0xf508,
+ 0xf516, 0xf3ab, 0xf444, 0xf4fb, 0xf530, 0xf67d,
+ 0xf6cd, 0xf564, 0xf471, 0xf512, 0xf63e, 0xf5fc,
+ 0xf60a, 0xf827, 0xf867, 0xf69d, 0xf738, 0xf909,
+ 0xf9c9, 0xfa0f, 0xf95c, 0xf945, 0xfb2e, 0xfbc3,
+ 0xfa3b, 0xf990, 0xfa38, 0xfb56, 0xfc34, 0xfc4d,
+ 0xfd45, 0xffd9, 0x0151, 0x009f, 0x0047, 0x0116,
+ 0x0147, 0x0156, 0x02dd, 0x048b, 0x04ed, 0x04c1,
+ 0x04bb, 0x0564, 0x065e, 0x0667, 0x0744, 0x0a5e,
+ 0x0b8d, 0x08e5, 0x06d6, 0x0764, 0x0903, 0x0ade,
+ 0x0aef, 0x08db, 0x0803, 0x0834, 0x075b, 0x076d,
+ 0x08e6, 0x0a23, 0x0ad2, 0x0961, 0x07cb, 0x0aa5,
+ 0x0d96, 0x0c3d, 0x0aec, 0x0a6b, 0x0a6f, 0x0e2d,
+ 0x108a, 0x0cc2, 0x095e, 0x095c, 0x09bd, 0x0a1c,
+ 0x098d, 0x08ca, 0x0968, 0x0828, 0x05a2, 0x060a,
+ 0x06a3, 0x0536, 0x04bb, 0x0565, 0x0605, 0x0610,
+ 0x0479, 0x029d, 0x018b, 0x0034, 0xff51, 0xfee9,
+ 0xfdf9, 0xfe0e, 0xfec7, 0xfd83, 0xfb64, 0xfa55,
+ 0xf9e0, 0xfa02, 0xfa62, 0xfa0a, 0xf959, 0xf829,
+ 0xf62a, 0xf51b, 0xf549, 0xf480, 0xf317, 0xf365,
+ 0xf50d, 0xf62f, 0xf61a, 0xf564, 0xf5c9, 0xf751,
+ 0xf732, 0xf525, 0xf3d7, 0xf3cf, 0xf480, 0xf5a1,
+ 0xf59e, 0xf451, 0xf340, 0xf282, 0xf28d, 0xf3b5,
+ 0xf3f6, 0xf2d9, 0xf220, 0xf24f, 0xf2ed, 0xf30a,
+ 0xf2f9, 0xf489, 0xf600, 0xf52d, 0xf4de, 0xf602,
+ 0xf601, 0xf57e, 0xf5bb, 0xf5cc, 0xf5b3, 0xf60a,
+ 0xf717, 0xf7e2, 0xf6fd, 0xf664, 0xf7bd, 0xf8a6,
+ 0xf8e5, 0xfa11, 0xfb5b, 0xfc9b, 0xfdbc, 0xfda5,
+ 0xfda1, 0xfec0, 0xff88, 0xff52, 0xfe8c, 0xfdf7,
+ 0xfe31, 0xfe8c, 0xfe8c, 0xfe47, 0xfe3d, 0xff6f,
+ 0x00b1, 0x00dc, 0x0113, 0x0087, 0xff41, 0x008e,
+ 0x032e, 0x0369, 0x0227, 0x00ec, 0x001e, 0x000d,
+ 0xff52, 0xfdea, 0xfd91, 0xfe2e, 0xfe9f, 0xfd45,
+ 0xfa5b, 0xf97d, 0xfad3, 0xfb5d, 0xfbc8, 0xfcdc,
+ 0xfcac, 0xfafc, 0xf9a3, 0xf9b9, 0xfa0c, 0xf9b3,
+ 0xfa26, 0xfa3a, 0xf7b1, 0xf588, 0xf56a, 0xf497,
+ 0xf36b, 0xf390, 0xf44a, 0xf560, 0xf5ff, 0xf519,
+ 0xf4b5, 0xf658, 0xf783, 0xf61a, 0xf457, 0xf43f,
+ 0xf3e9, 0xf2f9, 0xf371, 0xf405, 0xf30e, 0xf197,
+ 0xf0e2, 0xf297, 0xf59a, 0xf5a1, 0xf33a, 0xf1af,
+ 0xf167, 0xf2a5, 0xf458, 0xf4e7, 0xf59e, 0xf5c2,
+ 0xf44c, 0xf44a, 0xf4f0, 0xf2e4, 0xf121, 0xf2e1,
+ 0xf5a4, 0xf64d, 0xf4ee, 0xf39f, 0xf358, 0xf3b2,
+ 0xf463, 0xf486, 0xf4dc, 0xf6ef, 0xf873, 0xf84f,
+ 0xf8ee, 0xf997, 0xf962, 0xfaa1, 0xfd08, 0xfe35,
+ 0xfda2, 0xfc89, 0xfd5f, 0x0016, 0x0137, 0xffef,
+ 0xff5c, 0x014b, 0x0351, 0x02e7, 0x01b9, 0x0149,
+ 0x00f3, 0x019b, 0x02da, 0x032f, 0x041a, 0x0538,
+ 0x047c, 0x038f, 0x033b, 0x02b0, 0x027d, 0x01e4,
+ 0x01bb, 0x03ac, 0x0428, 0x01c4, 0x0091, 0x0176,
+ 0x034e, 0x04ec, 0x03d2, 0x01a7, 0x019e, 0x024c,
+ 0x026b, 0x018b, 0xff18, 0xfdf6, 0xff3f, 0xff8a,
+ 0xfebf, 0xfefd, 0xff8c, 0xff5d, 0xff0d, 0x0017,
+ 0x016c, 0xff4a, 0xfbb0, 0xfbc4, 0xfc6a, 0xf9ed,
+ 0xf7dc, 0xf6fa, 0xf51d, 0xf428, 0xf463, 0xf453,
+ 0xf547, 0xf5a4, 0xf323, 0xf1d9, 0xf3a4, 0xf419,
+ 0xf252, 0xf17c, 0xf27d, 0xf3a0, 0xf297, 0xefb5,
+ 0xee2a, 0xeece, 0xf013, 0xf17d, 0xf29c, 0xf2da,
+ 0xf284, 0xf15b, 0xef31, 0xed9d, 0xedf9, 0xef38,
+ 0xf023, 0xf1d1, 0xf3f8, 0xf35d, 0xf106, 0xf1ab,
+ 0xf4ab, 0xf690, 0xf721, 0xf6bc, 0xf5ed, 0xf5ce,
+ 0xf5bb, 0xf5d9, 0xf742, 0xf919, 0xfadb, 0xfc2a,
+ 0xfbf1, 0xfbf6, 0xfd27, 0xfd10, 0xfd10, 0x0035,
+ 0x041c, 0x0553, 0x0402, 0x0291, 0x02ad, 0x02f6,
+ 0x02d4, 0x041d, 0x05fe, 0x0729, 0x090e, 0x0b24,
+ 0x0bb5, 0x0b1c, 0x09ed, 0x0971, 0x0a98, 0x0b87,
+ 0x0b4e, 0x0aaf, 0x0a3b, 0x0c06, 0x0fc3, 0x1096,
+ 0x0e01, 0x0cac, 0x0ccd, 0x0b6b, 0x0972, 0x0944,
+ 0x0aac, 0x0c93, 0x0de3, 0x0ddb, 0x0dcd, 0x0dd8,
+ 0x0bd9, 0x09eb, 0x0b56, 0x0ccd, 0x0b7a, 0x0a1c,
+ 0x0a0b, 0x0a2d, 0x0975, 0x0701, 0x04ad, 0x04c5,
+ 0x064a, 0x07f1, 0x0885, 0x0731, 0x06b2, 0x0834,
+ 0x0831, 0x059e, 0x029a, 0x0042, 0xff94, 0x0022,
+ 0xff73, 0xfd51, 0xfbd2, 0xfbc8, 0xfcaa, 0xfd02,
+ 0xfb98, 0xf9c6, 0xf97b, 0xfa1e, 0xfa44, 0xf971,
+ 0xf813, 0xf7b4, 0xf891, 0xf89c, 0xf78d, 0xf6f4,
+ 0xf6b3, 0xf5e9, 0xf4e8, 0xf4e9, 0xf5c4, 0xf52b,
+ 0xf3ca, 0xf4c2, 0xf660, 0xf625, 0xf529, 0xf34d,
+ 0xf28d, 0xf63d, 0xf993, 0xf88f, 0xf7c7, 0xf856,
+ 0xf7a0, 0xf6c2, 0xf634, 0xf624, 0xf7c6, 0xf8bb,
+ 0xf7fc, 0xf857, 0xf980, 0xfa09, 0xfb1d, 0xfc87,
+ 0xfd2f, 0xfdc1, 0xfe06, 0xfcb7, 0xfb89, 0xfd86,
+ 0x00c9, 0x019d, 0x0145, 0x016e, 0x00fe, 0x015e,
+ 0x03cf, 0x0582, 0x056a, 0x0569, 0x05b2, 0x0580,
+ 0x0551, 0x0601, 0x0702, 0x06cd, 0x05f3, 0x063c,
+ 0x0732, 0x07ea, 0x08d5, 0x0983, 0x097d, 0x09c9,
+ 0x0a0e, 0x0910, 0x0896, 0x0a28, 0x0b30, 0x0a8c,
+ 0x0a92, 0x0b22, 0x0ad8, 0x0aab, 0x0ab4, 0x0a61,
+ 0x0ae4, 0x0c02, 0x0bf1, 0x0ad7, 0x098d, 0x084c,
+ 0x07d3, 0x07f7, 0x0747, 0x0668, 0x06cf, 0x06d0,
+ 0x05ae, 0x0657, 0x0860, 0x0898, 0x07ea, 0x071c,
+ 0x04f1, 0x0394, 0x03bf, 0x026c, 0x0049, 0xff24,
+ 0xfe0b, 0xfe3f, 0x0031, 0x0057, 0xfe4a, 0xfcb4,
+ 0xfbf5, 0xfbc9, 0xfb80, 0xfa35, 0xfa87, 0xfdae,
+ 0xfecd, 0xfbc7, 0xf8cd, 0xf83c, 0xf8dc, 0xf946,
+ 0xf8d5, 0xf8a4, 0xf967, 0xf9af, 0xf996, 0xfa72,
+ 0xfbe5, 0xfd24, 0xfd6e, 0xfccd, 0xfcaf, 0xfca0,
+ 0xfb52, 0xf9d7, 0xf972, 0xfa7d, 0xfbae, 0xfaea,
+ 0xfa12, 0xfb10, 0xfb99, 0xfbb6, 0xfca5, 0xfd52,
+ 0xfee8, 0x0133, 0x0148, 0x0050, 0xff31, 0xfd5d,
+ 0xfdcd, 0x001c, 0x00c9, 0x009a, 0x003c, 0x0045,
+ 0x02bc, 0x04cb, 0x0421, 0x0417, 0x0580, 0x066d,
+ 0x0677, 0x05b4, 0x054d, 0x058e, 0x050e, 0x045a,
+ 0x046d, 0x052a, 0x064d, 0x06e5, 0x07d1, 0x09de,
+ 0x0a48, 0x0937, 0x0994, 0x09bf, 0x085a, 0x0747,
+ 0x0633, 0x04b2, 0x04b5, 0x0616, 0x066f, 0x065e,
+ 0x08dd, 0x0b83, 0x0974, 0x0627, 0x06b2, 0x07ee,
+ 0x071e, 0x0615, 0x0501, 0x040e, 0x0407, 0x0337,
+ 0x0134, 0x0028, 0x001f, 0xffcf, 0xffbb, 0xfff8,
+ 0xfef2, 0xfd5b, 0xfdbb, 0xff58, 0xffd7, 0xfee4,
+ 0xfcc9, 0xfacd, 0xfacb, 0xfbbb, 0xfba5, 0xfb12,
+ 0xfb2f, 0xfb68, 0xfa5e, 0xf93d, 0xf9e2, 0xfa27,
+ 0xf915, 0xfa10, 0xfca7, 0xfd42, 0xfc29, 0xfac9,
+ 0xfa13, 0xfb62, 0xfce0, 0xfb77, 0xf8a6, 0xf83c,
+ 0xfa72, 0xfbbc, 0xfa9e, 0xf9ec, 0xfb2b, 0xfc04,
+ 0xfae1, 0xf9ed, 0xfbc9, 0xfe32, 0xfdaf, 0xfcae,
+ 0xfdc5, 0xfe50, 0xfd1e, 0xfc11, 0xfc1f, 0xfd76,
+ 0xfead, 0xfe40, 0xfddb, 0xff12, 0x00dd, 0x0188,
+ 0x001c, 0xfe43, 0xfdf6, 0xfe2f, 0xfe68, 0xff44,
+ 0x0031, 0x0193, 0x03a1, 0x052b, 0x069f, 0x073e,
+ 0x0529, 0x03c1, 0x060a, 0x0839, 0x07c4, 0x06c8,
+ 0x06ad, 0x07f5, 0x09ce, 0x0919, 0x061f, 0x0553,
+ 0x072e, 0x0847, 0x089d, 0x09a8, 0x09ea, 0x091a,
+ 0x095f, 0x0a47, 0x0a16, 0x096e, 0x0926, 0x0926,
+ 0x09b7, 0x0a3c, 0x0911, 0x06ef, 0x06ac, 0x082b,
+ 0x08d8, 0x08f4, 0x097b, 0x08e3, 0x0769, 0x06ea,
+ 0x067f, 0x057e, 0x04fb, 0x04d7, 0x053a, 0x0657,
+ 0x0671, 0x052b, 0x040e, 0x03ee, 0x04f0, 0x053f,
+ 0x0392, 0x0324, 0x04fa, 0x04d3, 0x01a8, 0xfe3f,
+ 0xfbf7, 0xfb82, 0xfc2c, 0xfc02, 0xfb6b, 0xfb85,
+ 0xfb8c, 0xfaa2, 0xf929, 0xf855, 0xf7fd, 0xf6ed,
+ 0xf6c4, 0xf8b1, 0xf9c6, 0xf8f8, 0xf79b, 0xf533,
+ 0xf310, 0xf39c, 0xf56e, 0xf6a3, 0xf6c9, 0xf586,
+ 0xf49f, 0xf582, 0xf699, 0xf6bc, 0xf5e2, 0xf4ea,
+ 0xf60b, 0xf86c, 0xf8be, 0xf709, 0xf534, 0xf4e5,
+ 0xf766, 0xf9b8, 0xf813, 0xf597, 0xf602, 0xf73b,
+ 0xf895, 0xfbac, 0xfdba, 0xfd35, 0xfdeb, 0xff43,
+ 0xfd40, 0xfafa, 0xfc1c, 0xfd92, 0xfe7f, 0x0123,
+ 0x02ef, 0x01a8, 0x00b8, 0x01c2, 0x0275, 0x026d,
+ 0x025d, 0x016d, 0x0074, 0x0184, 0x0353, 0x03d0,
+ 0x03ee, 0x0480, 0x0562, 0x06e7, 0x077a, 0x05bd,
+ 0x0482, 0x05b8, 0x0705, 0x0708, 0x071c, 0x07e9,
+ 0x087a, 0x084a, 0x0872, 0x092a, 0x08d2, 0x0846,
+ 0x0a09, 0x0c0b, 0x0b39, 0x0a28, 0x0b06, 0x0b3a,
+ 0x0a29, 0x0994, 0x08f8, 0x0898, 0x0979, 0x0a08,
+ 0x09a7, 0x091e, 0x07e4, 0x06e0, 0x0715, 0x075f,
+ 0x0836, 0x08e8, 0x06ab, 0x04aa, 0x06b9, 0x08b1,
+ 0x079d, 0x0600, 0x049a, 0x02d6, 0x0133, 0xffb4,
+ 0xfe7e, 0xfdb5, 0xfd0e, 0xfcde, 0xfc9e, 0xfb27,
+ 0xf9cc, 0xfa3c, 0xfb17, 0xfae7, 0xfa99, 0xf9e4,
+ 0xf766, 0xf5cc, 0xf7cd, 0xf9a9, 0xf845, 0xf66c,
+ 0xf5c1, 0xf4f6, 0xf474, 0xf59b, 0xf7d2, 0xf8c6,
+ 0xf7e6, 0xf717, 0xf69e, 0xf5a0, 0xf515, 0xf544,
+ 0xf56f, 0xf617, 0xf6f3, 0xf6a4, 0xf55b, 0xf478,
+ 0xf523, 0xf6fb, 0xf7ee, 0xf7d5, 0xf8f3, 0xfb3e,
+ 0xfc21, 0xfb3e, 0xfb21, 0xfc86, 0xfd42, 0xfcdf,
+ 0xfca6, 0xfc77, 0xfc4c, 0xfcf2, 0xfe7b, 0x005d,
+ 0x01f8, 0x0347, 0x0478, 0x04f0, 0x046d, 0x0360,
+ 0x02c3, 0x03a2, 0x0518, 0x0610, 0x0755, 0x0894,
+ 0x085d, 0x06e2, 0x04ff, 0x042a, 0x0639, 0x08e5,
+ 0x08e3, 0x093f, 0x0bdf, 0x0c66, 0x0ac7, 0x0a0f,
+ 0x08ba, 0x076a, 0x08f3, 0x0b62, 0x0bf7, 0x0a70,
+ 0x0816, 0x07e7, 0x0a8a, 0x0ce2, 0x0ce4, 0x0b2d,
+ 0x0903, 0x07e8, 0x0920, 0x0b59, 0x0b40, 0x08e6,
+ 0x07f5, 0x08d0, 0x0905, 0x08d7, 0x08ef, 0x0877,
+ 0x0778, 0x0616, 0x04bf, 0x043f, 0x041f, 0x03cb,
+ 0x0285, 0x00ee, 0x0133, 0x0132, 0xff23, 0xfe4c,
+ 0xfeb5, 0xfe45, 0xfd5d, 0xfc40, 0xfc1e, 0xfd09,
+ 0xfcb7, 0xfb0d, 0xf95b, 0xf8db, 0xf945, 0xf8c5,
+ 0xf884, 0xf95d, 0xf915, 0xf79e, 0xf657, 0xf53a,
+ 0xf41c, 0xf3e5, 0xf514, 0xf5e2, 0xf5d7, 0xf657,
+ 0xf6cf, 0xf6fd, 0xf738, 0xf739, 0xf7a8, 0xf816,
+ 0xf892, 0xfa50, 0xfb4d, 0xfadf, 0xfb76, 0xfb9f,
+ 0xf9b6, 0xf90b, 0xfad6, 0xfc0b, 0xfc62, 0xfd89,
+ 0xfe8e, 0xfeff, 0xffcf, 0x0032, 0xff69, 0xfeba,
+ 0xff91, 0x0152, 0x0245, 0x023e, 0x02d5, 0x04d4,
+ 0x063e, 0x0605, 0x0653, 0x06ce, 0x0612, 0x05c3,
+ 0x0632, 0x0732, 0x088f, 0x0861, 0x07ea, 0x08ad,
+ 0x096f, 0x098c, 0x07bf, 0x063d, 0x0860, 0x09ef,
+ 0x08c2, 0x0824, 0x0830, 0x08d1, 0x0a0d, 0x0a21,
+ 0x094c, 0x0815, 0x06a2, 0x0639, 0x0717, 0x07e6,
+ 0x0730, 0x05b8, 0x053a, 0x047a, 0x027b, 0x01aa,
+ 0x0323, 0x0470, 0x045f, 0x0433, 0x03cd, 0x024b,
+ 0xffe8, 0xfddc, 0xfdee, 0xfed4, 0xfe2c, 0xfd13,
+ 0xfc31, 0xfb6b, 0xfbfb, 0xfcd2, 0xfbf3, 0xf9c5,
+ 0xf7f7, 0xf779, 0xf79a, 0xf780, 0xf66f, 0xf4d8,
+ 0xf4d0, 0xf576, 0xf54e, 0xf580, 0xf57b, 0xf513,
+ 0xf536, 0xf43a, 0xf27a, 0xf2b2, 0xf473, 0xf5c5,
+ 0xf658, 0xf680, 0xf51e, 0xf282, 0xf251, 0xf47c,
+ 0xf541, 0xf511, 0xf58b, 0xf517, 0xf437, 0xf4ea,
+ 0xf4ab, 0xf1f3, 0xf10c, 0xf391, 0xf602, 0xf6ad,
+ 0xf63d, 0xf4cc, 0xf2ff, 0xf3e9, 0xf833, 0xfaba,
+ 0xf9e1, 0xf955, 0xf90e, 0xf843, 0xf902, 0xfb65,
+ 0xfd68, 0xfda6, 0xfd51, 0xfe2d, 0xfe78, 0xfd11,
+ 0xfcf3, 0xff29, 0x00ca, 0x013b, 0x0247, 0x02c1,
+ 0x0211, 0x0260, 0x02cb, 0x02c8, 0x047b, 0x067e,
+ 0x0703, 0x0779, 0x08ee, 0x0af6, 0x0b82, 0x0a15,
+ 0x09d1, 0x0ae9, 0x0a12, 0x07cc, 0x07ee, 0x0a13,
+ 0x09f8, 0x0891, 0x0958, 0x0a5c, 0x0a61, 0x0a99,
+ 0x09fc, 0x0990, 0x0a1d, 0x0948, 0x08f9, 0x0ac5,
+ 0x0a28, 0x0631, 0x02f3, 0x0256, 0x0371, 0x0462,
+ 0x054e, 0x074c, 0x087e, 0x073e, 0x04a6, 0x0320,
+ 0x03a7, 0x0351, 0x017d, 0x011d, 0x012e, 0x0059,
+ 0xff34, 0xfd10, 0xfc16, 0xfcdc, 0xfb8d, 0xf95c,
+ 0xf8d1, 0xf814, 0xf721, 0xf6ee, 0xf684, 0xf5a7,
+ 0xf57a, 0xf678, 0xf67b, 0xf4ba, 0xf3c4, 0xf3a7,
+ 0xf3cd, 0xf4f1, 0xf4a6, 0xf2c2, 0xf1bb, 0xef9a,
+ 0xed6f, 0xeec7, 0xefd6, 0xeec1, 0xeef7, 0xef3c,
+ 0xee8e, 0xeed5, 0xeedb, 0xee94, 0xf022, 0xf152,
+ 0xef2c, 0xec6a, 0xec9a, 0xee01, 0xee7e, 0xef92,
+ 0xf1be, 0xf2d9, 0xf198, 0xf000, 0xf093, 0xf1ed,
+ 0xf21a, 0xf185, 0xf14b, 0xf28e, 0xf473, 0xf5fb,
+ 0xf6ef, 0xf570, 0xf400, 0xf64a, 0xf8a3, 0xf9a9,
+ 0xfb6c, 0xfbb7, 0xfa3f, 0xfa0e, 0xfbcd, 0xfd0d,
+ 0xfc76, 0xfdaf, 0x00f9, 0x013b, 0xffb5, 0xffde,
+ 0x00d6, 0x0295, 0x0405, 0x038a, 0x02f5, 0x0255,
+ 0x0129, 0x022d, 0x048d, 0x0598, 0x06b5, 0x0772,
+ 0x06ee, 0x0754, 0x06e2, 0x054c, 0x05f5, 0x05f0,
+ 0x0421, 0x04b9, 0x066f, 0x065b, 0x04b5, 0x0414,
+ 0x067d, 0x079f, 0x060f, 0x0619, 0x0617, 0x0494,
+ 0x04f2, 0x060e, 0x04a6, 0x0237, 0x01ae, 0x01f2,
+ 0x00b1, 0xfef4, 0xfeba, 0x0016, 0x002b, 0xfe01,
+ 0xfcfa, 0xfc31, 0xf9c3, 0xf8a6, 0xf875, 0xf7fd,
+ 0xf861, 0xf825, 0xf6d2, 0xf533, 0xf446, 0xf595,
+ 0xf646, 0xf481, 0xf388, 0xf358, 0xf1cc, 0xf083,
+ 0xf09f, 0xf03b, 0xef6a, 0xef14, 0xedb3, 0xebcd,
+ 0xeae1, 0xeb73, 0xed7c, 0xed86, 0xecf0, 0xef14,
+ 0xeef7, 0xed60, 0xed9f, 0xeba8, 0xe9e8, 0xea3e,
+ 0xea5b, 0xecd9, 0xee8d, 0xeda6, 0xeeed, 0xefe8,
+ 0xef5f, 0xef40, 0xeeb6, 0xef48, 0xefcb, 0xf002,
+ 0xf2a7, 0xf386, 0xf11d, 0xf02b, 0xf152, 0xf2ce,
+ 0xf373, 0xf3b7, 0xf44a, 0xf48f, 0xf5f8, 0xf800,
+ 0xf866, 0xf933, 0xfae5, 0xfbba, 0xfd06, 0xfdc7,
+ 0xfc53, 0xfd83, 0x01f5, 0x0342, 0x022c, 0x01b4,
+ 0x0173, 0x02c9, 0x02f4, 0x0169, 0x02e0, 0x0434,
+ 0x03cc, 0x0486, 0x058e, 0x08c2, 0x0baa, 0x09d5,
+ 0x0774, 0x06cf, 0x0844, 0x098b, 0x070e, 0x0680,
+ 0x0773, 0x05e5, 0x06eb, 0x08e7, 0x09fb, 0x0be7,
+ 0x0aef, 0x09b6, 0x0a5d, 0x0a95, 0x0c4f, 0x0c49,
+ 0x09f1, 0x09e0, 0x091e, 0x0693, 0x04be, 0x053a,
+ 0x081c, 0x088d, 0x06b8, 0x0576, 0x03e7, 0x0431,
+ 0x045b, 0x01a9, 0x000a, 0xff65, 0xfef5, 0xfed0,
+ 0xfc6b, 0xfb37, 0xfcce, 0xfbf3, 0xf98e, 0xf906,
+ 0xf8f1, 0xf894, 0xf7fb, 0xf779, 0xf8a4, 0xf884,
+ 0xf5b5, 0xf5e4, 0xf70c, 0xf4c8, 0xf38a, 0xf3b7,
+ 0xf469, 0xf59c, 0xf3f1, 0xf3b2, 0xf5cc, 0xf47c,
+ 0xf255, 0xf0f0, 0xf25b, 0xf6de, 0xf5ff, 0xf397,
+ 0xf559, 0xf65b, 0xf7db, 0xf8a6, 0xf760, 0xf7e1,
+ 0xf7dd, 0xf82e, 0xf913, 0xf8f9, 0xfaf4, 0xfa30,
+ 0xf860, 0xfbb9, 0xfc3d, 0xfaf5, 0xfca1, 0xfdda,
+ 0x0055, 0xffea, 0xfd30, 0xffdd, 0x007f, 0xfeea,
+ 0x0161, 0x01a8, 0x01c0, 0x04d4, 0x0568, 0x0653,
+ 0x090b, 0x08d1, 0x07bc, 0x093e, 0x0b8a, 0x0c22,
+ 0x0a95, 0x0931, 0x09c2, 0x097b, 0x0890, 0x0a94,
+ 0x0be1, 0x0b32, 0x0d11, 0x0f1f, 0x0f39, 0x0f4b,
+ 0x0ecf, 0x0da2, 0x0cec, 0x0ddc, 0x0e0b, 0x0cb0,
+ 0x0d95, 0x0d49, 0x0ca2, 0x0f7b, 0x0ddc, 0x0b66,
+ 0x0d78, 0x0b84, 0x0a8d, 0x0d2d, 0x0bba, 0x0ae7,
+ 0x0bcf, 0x0b62, 0x0a27, 0x075b, 0x06f8, 0x06f9,
+ 0x05af, 0x0790, 0x0657, 0x031e, 0x0393, 0x018f,
+ 0xffd1, 0x0049, 0xfebf, 0xfe9b, 0xfdf9, 0xfc7e,
+ 0xfd74, 0xfc06, 0xf9d5, 0xfa96, 0xfadf, 0xfa4e,
+ 0xf9e2, 0xf9b6, 0xf907, 0xf773, 0xf6a7, 0xf617,
+ 0xf6a0, 0xf835, 0xf708, 0xf4c1, 0xf4eb, 0xf6e9,
+ 0xf7e1, 0xf6ff, 0xf811, 0xf9ee, 0xf89c, 0xf680,
+ 0xf51e, 0xf362, 0xf281, 0xf517, 0xf83c, 0xf628,
+ 0xf436, 0xf636, 0xf659, 0xf57a, 0xf557, 0xf62a,
+ 0xf885, 0xf810, 0xf759, 0xf8b9, 0xf92b, 0xfaff,
+ 0xfadd, 0xf939, 0xfc28, 0xfc81, 0xfac4, 0xfd47,
+ 0xfe6e, 0xfe56, 0xff7c, 0x0054, 0x0206, 0x0450,
+ 0x06bd, 0x05d6, 0x01c5, 0x01df, 0x0420, 0x05ff,
+ 0x0960, 0x0b00, 0x0aad, 0x0902, 0x0775, 0x0a0c,
+ 0x0d23, 0x0d9c, 0x0d3d, 0x0d80, 0x0e08, 0x0bd9,
+ 0x0bba, 0x1065, 0x1213, 0x1091, 0x0e8a, 0x0d32,
+ 0x0dc8, 0x0c62, 0x0c9d, 0x0fcd, 0x1073, 0x12f0,
+ 0x13b6, 0x0f2f, 0x0f5c, 0x105b, 0x0e30, 0x0f97,
+ 0x1037, 0x0dfe, 0x0d46, 0x0c53, 0x0b08, 0x0b80,
+ 0x0c4a, 0x0a75, 0x0845, 0x0a0f, 0x0bdf, 0x09b9,
+ 0x070d, 0x06ab, 0x0739, 0x06a8, 0x056a, 0x0392,
+ 0x0140, 0x0056, 0x0078, 0x010f, 0x0024, 0xfdd3,
+ 0xfe19, 0xfca8, 0xf9b9, 0xfb63, 0xfb57, 0xf966,
+ 0xf92a, 0xf6bf, 0xf607, 0xf54b, 0xf2a0, 0xf5d1,
+ 0xf89d, 0xf69f, 0xf4fb, 0xf335, 0xf400, 0xf45c,
+ 0xf1e8, 0xf2a0, 0xf24e, 0xf110, 0xf1b9, 0xf025,
+ 0xf1e6, 0xf4a9, 0xf217, 0xf210, 0xf48a, 0xf656,
+ 0xf784, 0xf65e, 0xf865, 0xfa92, 0xf7f6, 0xf88f,
+ 0xfa7f, 0xfa17, 0xfb7b, 0xfbaf, 0xfa86, 0xfabd,
+ 0xfa18, 0xfa56, 0xfc74, 0xfd09, 0xfbe0, 0xf9f0,
+ 0xf8ff, 0xfc3d, 0xffb2, 0xff29, 0x0040, 0x025b,
+ 0x00b5, 0x0097, 0x0259, 0x026b, 0x0202, 0x0094,
+ 0x029f, 0x08b5, 0x0ac8, 0x09d9, 0x085f, 0x0738,
+ 0x0815, 0x0778, 0x0786, 0x08eb, 0x08ce, 0x0bbb,
+ 0x0dbe, 0x0b3b, 0x09e6, 0x084f, 0x073b, 0x0744,
+ 0x0570, 0x059e, 0x0662, 0x06bb, 0x0899, 0x0780,
+ 0x0704, 0x08fb, 0x08e3, 0x0960, 0x08a5, 0x077d,
+ 0x0990, 0x090c, 0x083e, 0x0971, 0x06e9, 0x04a4,
+ 0x05be, 0x0701, 0x06c3, 0x0500, 0x0545, 0x062f,
+ 0x052e, 0x0528, 0x047d, 0x03b2, 0x05cb, 0x06ef,
+ 0x0517, 0x0267, 0x01f1, 0x03ad, 0x0233, 0xff98,
+ 0x01af, 0x034e, 0x0032, 0xfdbe, 0xfd85, 0xfca1,
+ 0xfc20, 0xfba6, 0xfbda, 0xfec3, 0xfdbe, 0xf9b7,
+ 0xfacb, 0xfaf2, 0xf891, 0xf8b8, 0xf7e5, 0xf7a6,
+ 0xf7f7, 0xf54d, 0xf52b, 0xf6b7, 0xf543, 0xf3ea,
+ 0xf4b1, 0xf716, 0xf87b, 0xf827, 0xf768, 0xf581,
+ 0xf599, 0xf708, 0xf6da, 0xf780, 0xf6da, 0xf73f,
+ 0xfa6d, 0xf835, 0xf5c1, 0xf784, 0xf755, 0xf97c,
+ 0xfb61, 0xf6d7, 0xf45d, 0xf637, 0xf7c4, 0xf81c,
+ 0xf761, 0xf730, 0xf68c, 0xf702, 0xfa36, 0xfaa5,
+ 0xf968, 0xfb17, 0xfdeb, 0xfffa, 0xff62, 0xfe37,
+ 0xffbd, 0x0034, 0xffed, 0x0234, 0x030e, 0x01d5,
+ 0x035a, 0x055f, 0x0476, 0x04b1, 0x06ea, 0x073a,
+ 0x05de, 0x0502, 0x06ae, 0x0827, 0x0556, 0x04f6,
+ 0x0963, 0x0a9a, 0x096d, 0x0a18, 0x0bed, 0x0d39,
+ 0x0bc2, 0x0960, 0x08fc, 0x0acf, 0x0cf6, 0x0c23,
+ 0x0b60, 0x0c2c, 0x0aaf, 0x09e5, 0x0aee, 0x0c1d,
+ 0x0e27, 0x0cd0, 0x098b, 0x090e, 0x08bf, 0x0929,
+ 0x09b0, 0x0888, 0x086f, 0x0717, 0x042a, 0x02fd,
+ 0x026b, 0x026b, 0x01b6, 0x0095, 0x01bb, 0x00ef,
+ 0xfe9f, 0xffc4, 0x0191, 0x01e1, 0xfff2, 0xfb5c,
+ 0xf976, 0xfba0, 0xfc85, 0xfaf5, 0xfac8, 0xfca0,
+ 0xfcc2, 0xfa53, 0xf7f2, 0xf780, 0xf803, 0xf749,
+ 0xf688, 0xf693, 0xf6e3, 0xf857, 0xf73e, 0xf2e9,
+ 0xf28a, 0xf520, 0xf537, 0xf560, 0xf794, 0xf8ce,
+ 0xf7b3, 0xf605, 0xf5b9, 0xf754, 0xf8bd, 0xf863,
+ 0xf8e0, 0xf9a5, 0xf8b7, 0xf962, 0xf99c, 0xf813,
+ 0xfb5c, 0xfe71, 0xfa09, 0xf6dd, 0xf97e, 0xfacd,
+ 0xf902, 0xf8d7, 0xfa1c, 0xfaa1, 0xfcdb, 0xfda1,
+ 0xfa0f, 0xfa25, 0xfd55, 0xfcfb, 0xfd0a, 0xff5e,
+ 0x011d, 0x0142, 0x003c, 0x01cb, 0x0399, 0x01bb,
+ 0x0208, 0x04a3, 0x0472, 0x048f, 0x05a3, 0x0493,
+ 0x03eb, 0x04b4, 0x03e1, 0x02dc, 0x0464, 0x0603,
+ 0x05af, 0x04a8, 0x0422, 0x0474, 0x03be, 0x01ab,
+ 0x0232, 0x05bd, 0x0822, 0x074b, 0x053e, 0x0504,
+ 0x0578, 0x04c6, 0x0512, 0x068e, 0x06eb, 0x06f8,
+ 0x0834, 0x08c1, 0x0751, 0x05b6, 0x044f, 0x03e2,
+ 0x05ea, 0x0668, 0x04e7, 0x063d, 0x06df, 0x03b7,
+ 0x0257, 0x0427, 0x0494, 0x016c, 0xfee1, 0x0095,
+ 0x00f0, 0xfe2e, 0xfe92, 0xff08, 0xfbae, 0xfb14,
+ 0xfcd3, 0xfb7f, 0xfb02, 0xfc1d, 0xfa3d, 0xf8df,
+ 0xf9ea, 0xf85b, 0xf594, 0xf5fd, 0xf7e1, 0xf8c8,
+ 0xf92a, 0xf908, 0xf7e5, 0xf787, 0xf78e, 0xf5e0,
+ 0xf6f9, 0xfa5d, 0xf76e, 0xf31e, 0xf4fd, 0xf676,
+ 0xf5fe, 0xf6cf, 0xf61b, 0xf501, 0xf4ea, 0xf482,
+ 0xf568, 0xf4fb, 0xf200, 0xf1c2, 0xf23e, 0xf114,
+ 0xf324, 0xf5bb, 0xf4d1, 0xf562, 0xf7cd, 0xf7ac,
+ 0xf625, 0xf5fd, 0xf81c, 0xfabc, 0xfaeb, 0xfa90,
+ 0xfb54, 0xfa92, 0xf9d6, 0xfc17, 0xfd91, 0xfb90,
+ 0xfb05, 0xff47, 0x0276, 0x0100, 0x0206, 0x0668,
+ 0x058a, 0x0282, 0x04d3, 0x0727, 0x063a, 0x0642,
+ 0x068b, 0x06fa, 0x0958, 0x09cf, 0x07b3, 0x07d9,
+ 0x09bb, 0x0a14, 0x0a71, 0x0d51, 0x103c, 0x0f74,
+ 0x0c96, 0x0b2e, 0x0ba2, 0x0d0e, 0x0dfc, 0x0d65,
+ 0x0bdc, 0x0a2a, 0x0a7a, 0x0d1f, 0x0d96, 0x0b7c,
+ 0x0af6, 0x0ba7, 0x0b89, 0x0b01, 0x0b10, 0x0b2e,
+ 0x0904, 0x07cb, 0x0b6f, 0x0bdc, 0x06d6, 0x072b,
+ 0x09ab, 0x062b, 0x04fc, 0x07cd, 0x0564, 0x01a9,
+ 0x0359, 0x052d, 0x02d6, 0xff49, 0xfe25, 0xffc2,
+ 0x003c, 0xfd46, 0xfb72, 0xfc43, 0xf932, 0xf423,
+ 0xf5eb, 0xf8df, 0xf60c, 0xf616, 0xf9ca, 0xf82c,
+ 0xf5bc, 0xf721, 0xf590, 0xf26e, 0xf526, 0xf99d,
+ 0xf8d7, 0xf617, 0xf5fc, 0xf5c9, 0xf486, 0xf543,
+ 0xf5b0, 0xf3c9, 0xf38e, 0xf545, 0xf5bc, 0xf538,
+ 0xf53e, 0xf5e2, 0xf561, 0xf45e, 0xf638, 0xf7ed,
+ 0xf6cc, 0xf775, 0xf77d, 0xf39a, 0xf49b, 0xfab6,
+ 0xfb37, 0xf845, 0xf8b1, 0xf95a, 0xf85f, 0xf8ac,
+ 0xf9dd, 0xfa05, 0xfa6d, 0xfc7a, 0xfe08, 0xfd8a,
+ 0xfd91, 0x000c, 0x0297, 0x02aa, 0x01d9, 0x0154,
+ 0xff88, 0xff7d, 0x0330, 0x0377, 0x013a, 0x04dd,
+ 0x06dd, 0x00cb, 0xfed9, 0x03e1, 0x05f3, 0x05a5,
+ 0x0610, 0x052b, 0x04dd, 0x0661, 0x0742, 0x0682,
+ 0x0527, 0x075a, 0x0c2b, 0x0a36, 0x04b1, 0x0722,
+ 0x0a86, 0x0723, 0x06b1, 0x0a16, 0x0914, 0x0757,
+ 0x075f, 0x057b, 0x0495, 0x05da, 0x05ef, 0x055b,
+ 0x047a, 0x03b2, 0x040b, 0x0360, 0x02a7, 0x039e,
+ 0x03c7, 0x03ff, 0x0459, 0x02aa, 0x02ca, 0x042f,
+ 0x0233, 0x0137, 0x028e, 0x0100, 0xfd8a, 0xfb57,
+ 0xfc09, 0xfe08, 0xfc71, 0xfa20, 0xfaa2, 0xfaa6,
+ 0xfb45, 0xfaf0, 0xf679, 0xf5ed, 0xf8a0, 0xf5fb,
+ 0xf497, 0xf7d0, 0xf879, 0xf6e0, 0xf499, 0xf323,
+ 0xf527, 0xf5db, 0xf47d, 0xf4ab, 0xf377, 0xf266,
+ 0xf3b8, 0xf298, 0xefe7, 0xef18, 0xf040, 0xf229,
+ 0xefa5, 0xebd9, 0xee2f, 0xef57, 0xed08, 0xef18,
+ 0xf008, 0xec67, 0xebde, 0xed7f, 0xee91, 0xf099,
+ 0xf085, 0xee56, 0xee58, 0xeffc, 0xf19e, 0xf3d7,
+ 0xf51e, 0xf324, 0xf1af, 0xf52e, 0xf836, 0xf7ab,
+ 0xfa42, 0xfe0b, 0xfb52, 0xf795, 0xfa2a, 0xfd5a,
+ 0xfbdd, 0xfbc8, 0xff89, 0xffce, 0xfd95, 0xfed9,
+ 0xffe2, 0xff77, 0x0053, 0x002d, 0x00f3, 0x0360,
+ 0x02e1, 0x032b, 0x05eb, 0x0668, 0x0718, 0x076a,
+ 0x0421, 0x0387, 0x06e6, 0x073a, 0x0470, 0x04f1,
+ 0x09c0, 0x0a7a, 0x0709, 0x0901, 0x0b1b, 0x079c,
+ 0x0737, 0x0866, 0x0678, 0x06e4, 0x0894, 0x0848,
+ 0x0621, 0x03ca, 0x06f6, 0x07fe, 0x0041, 0xff80,
+ 0x04ab, 0x013f, 0xfeb2, 0x0120, 0xff6f, 0xfdbc,
+ 0xfeca, 0xff46, 0xfe78, 0xfb64, 0xf9f1, 0xf951,
+ 0xf554, 0xf587, 0xf932, 0xf82f, 0xf6f0, 0xf61e,
+ 0xf48e, 0xf6fc, 0xf842, 0xf5ec, 0xf4a6, 0xf294,
+ 0xf201, 0xf3ae, 0xf2aa, 0xf3ba, 0xf64a, 0xf38f,
+ 0xf1bb, 0xf39e, 0xf382, 0xf219, 0xf36a, 0xf818,
+ 0xf883, 0xf30b, 0xf38a, 0xf594, 0xf145, 0xf34d,
+ 0xf83e, 0xf3ce, 0xf17f, 0xf47c, 0xf410, 0xf439,
+ 0xf594, 0xf568, 0xf58b, 0xf40d, 0xf39f, 0xf5d0,
+ 0xf4bd, 0xf497, 0xf8d1, 0xf91a, 0xf5df, 0xf645,
+ 0xf8da, 0xf915, 0xf7ec, 0xfa1b, 0xfd39, 0xfadf,
+ 0xf87f, 0xfcdd, 0x01b3, 0x0186, 0x002f, 0x00c6,
+ 0x0126, 0x004b, 0x008c, 0x014d, 0x008a, 0x0149,
+ 0x0514, 0x066c, 0x037e, 0x03f1, 0x08bd, 0x0791,
+ 0x021b, 0x0308, 0x0616, 0x04ef, 0x03d0, 0x04af,
+ 0x0604, 0x0408, 0xffa5, 0x02df, 0x07d1, 0x0292,
+ 0xffa7, 0x0502, 0x05f0, 0x03df, 0x0524, 0x062f,
+ 0x03ff, 0x0072, 0x0229, 0x05ac, 0x0257, 0x0153,
+ 0x0408, 0x00bc, 0x00e9, 0x04c3, 0x00e2, 0xff5f,
+ 0x01f2, 0xff08, 0xfe36, 0xfff8, 0xfecb, 0x000b,
+ 0x0185, 0x00f3, 0x0031, 0xfb64, 0xf835, 0xfa07,
+ 0xf97f, 0xfacc, 0xfdda, 0xfa84, 0xf79d, 0xf7bf,
+ 0xf5e3, 0xf68b, 0xf884, 0xf826, 0xf880, 0xf6fa,
+ 0xf47e, 0xf59f, 0xf5fb, 0xf5fc, 0xf87c, 0xf765,
+ 0xf400, 0xf53f, 0xf6e7, 0xf447, 0xf366, 0xf692,
+ 0xf57c, 0xf1dc, 0xf5bc, 0xf863, 0xf23f, 0xf24c,
+ 0xf858, 0xf508, 0xf0f7, 0xf595, 0xf722, 0xf3ba,
+ 0xf4b7, 0xf885, 0xf975, 0xf72d, 0xf5cb, 0xf885,
+ 0xf94f, 0xf581, 0xf620, 0xf914, 0xf684, 0xf709,
+ 0xfc4f, 0xfb96, 0xfa12, 0xfc6a, 0xfad7, 0xf8f7,
+ 0xfab4, 0xfb10, 0xfbf5, 0xfc55, 0xfac8, 0xfe1e,
+ 0x0087, 0xfd40, 0xff1d, 0x0258, 0x0014, 0x0275,
+ 0x0721, 0x053d, 0x0425, 0x0666, 0x0649, 0x04ec,
+ 0x04ed, 0x078d, 0x0ace, 0x091b, 0x05bd, 0x0796,
+ 0x0a52, 0x09b5, 0x0a7e, 0x0c34, 0x0a31, 0x091a,
+ 0x0acd, 0x0980, 0x08e9, 0x0afc, 0x08dc, 0x0877,
+ 0x0cab, 0x0a6e, 0x0884, 0x0dab, 0x0a9a, 0x0332,
+ 0x078d, 0x0b7a, 0x05bc, 0x0541, 0x0bae, 0x0aa2,
+ 0x04c2, 0x069d, 0x0960, 0x0368, 0x0117, 0x0713,
+ 0x0675, 0x0123, 0x01e4, 0x0252, 0xff9c, 0xff78,
+ 0xfef4, 0xfd36, 0xfd94, 0xfbb6, 0xf816, 0xfa0b,
+ 0xfde7, 0xfdd6, 0xfdd7, 0xfd8c, 0xf9ca, 0xf7ea,
+ 0xf98f, 0xfa41, 0xfa07, 0xf9b1, 0xfa1b, 0xfab9,
+ 0xf7b4, 0xf6ba, 0xfb6d, 0xfabd, 0xf73e, 0xfa7b,
+ 0xfa5b, 0xf5f7, 0xf877, 0xfa14, 0xf58c, 0xf49b,
+ 0xf725, 0xf775, 0xf5c7, 0xf574, 0xf947, 0xfaf1,
+ 0xf648, 0xf4b4, 0xf792, 0xf75c, 0xf766, 0xfa86,
+ 0xfac6, 0xf832, 0xf8f9, 0xfd13, 0xfdc8, 0xfa18,
+ 0xfa2f, 0xfe8c, 0xfdf7, 0xfb30, 0xff21, 0x0152,
+ 0xfb27, 0xfadb, 0x01d5, 0xffe9, 0xfb21, 0xff7f,
+ 0x01a8, 0xfda4, 0xfde8, 0x00ab, 0x0166, 0x0272,
+ 0x0367, 0x035a, 0x0240, 0x00e8, 0x025b, 0x0532,
+ 0x059c, 0x0412, 0x03a8, 0x0551, 0x0466, 0x0174,
+ 0x049b, 0x099b, 0x0871, 0x05ea, 0x0487, 0x043a,
+ 0x073a, 0x0918, 0x0905, 0x08f0, 0x066a, 0x0723,
+ 0x0ada, 0x08db, 0x08dc, 0x0cad, 0x0a14, 0x0903,
+ 0x0c9d, 0x0b7f, 0x0b39, 0x0c5b, 0x08e3, 0x0972,
+ 0x0d46, 0x0be4, 0x0b90, 0x0dc5, 0x0c62, 0x0957,
+ 0x073c, 0x06c5, 0x07bb, 0x076d, 0x0656, 0x055a,
+ 0x04c2, 0x0642, 0x065b, 0x036b, 0x0349, 0x0568,
+ 0x0501, 0x03f8, 0x0375, 0x0154, 0xff4e, 0xff61,
+ 0xff6c, 0xfed7, 0xfe92, 0xfdaf, 0xfe9c, 0x0184,
+ 0xffc7, 0xfd5c, 0x012f, 0x0273, 0xff82, 0x00bf,
+ 0x0124, 0xfe51, 0xfe3d, 0xfe00, 0xfce6, 0xfda7,
+ 0xfe35, 0x0012, 0x006d, 0xfbe2, 0xfb6d, 0xfe62,
+ 0xfc7f, 0xfbe7, 0xfe67, 0xfd48, 0xfaa0, 0xf9e9,
+ 0xfc16, 0xff0c, 0xfe32, 0xfe51, 0x008f, 0xfd88,
+ 0xfb70, 0xfe8c, 0xfe5b, 0xfe1c, 0x0103, 0xff9d,
+ 0xfcb7, 0xfc5a, 0xfc09, 0xfed9, 0x0300, 0x02db,
+ 0x00c2, 0xfd5f, 0xfb00, 0xfee9, 0x023c, 0x00c9,
+ 0x01c3, 0x03a7, 0x0344, 0x0409, 0x0370, 0x0154,
+ 0x0270, 0x0420, 0x05ad, 0x080a, 0x0635, 0x038c,
+ 0x05b6, 0x06f0, 0x05b9, 0x0522, 0x038a, 0x031a,
+ 0x039e, 0x0200, 0x045f, 0x095b, 0x06b8, 0x0254,
+ 0x0449, 0x0662, 0x06aa, 0x08e5, 0x0a57, 0x0805,
+ 0x046b, 0x033b, 0x0547, 0x0899, 0x0a64, 0x090a,
+ 0x072d, 0x0696, 0x04d7, 0x047a, 0x0704, 0x06ef,
+ 0x06d7, 0x093e, 0x06ee, 0x03c5, 0x0520, 0x0402,
+ 0x0311, 0x04d2, 0x00dc, 0xfd5a, 0x0045, 0x009b,
+ 0x00ef, 0x0360, 0xfefd, 0xfa67, 0xfbc9, 0xfacf,
+ 0xfa0f, 0xfca4, 0xfb89, 0xf94c, 0xf944, 0xf82e,
+ 0xf81f, 0xf962, 0xfa41, 0xfc05, 0xfb43, 0xf8c4,
+ 0xf9fb, 0xfb08, 0xfabe, 0xfc47, 0xfafb, 0xf824,
+ 0xf9ff, 0xfc82, 0xfba6, 0xf932, 0xf8d3, 0xfbd9,
+ 0xfaa9, 0xf6c3, 0xfb1c, 0xfde7, 0xf7b6, 0xf845,
+ 0xfedd, 0xff1f, 0xfdd1, 0xfcc3, 0xf9c4, 0xf97a,
+ 0xf9ba, 0xf946, 0xfb22, 0xfafa, 0xfa16, 0xfc8b,
+ 0xfd47, 0xfda7, 0x008d, 0xffce, 0xfdc6, 0xff8d,
+ 0xff00, 0xfc7d, 0xff18, 0x0152, 0xfce2, 0xf9c7,
+ 0xfcf5, 0x0045, 0x0200, 0x030d, 0x01bd, 0x017d,
+ 0x0231, 0x0002, 0x00d1, 0x0485, 0x02d5, 0x0071,
+ 0x016f, 0x00e8, 0x008b, 0x0220, 0x03cc, 0x04ef,
+ 0x0349, 0x026e, 0x05f7, 0x07b8, 0x05de, 0x033a,
+ 0x027b, 0x0617, 0x0614, 0x02b2, 0x0763, 0x0973,
+ 0x02d8, 0x045f, 0x08ce, 0x04fd, 0x03d7, 0x06fa,
+ 0x0816, 0x0709, 0x0428, 0x05a3, 0x08dc, 0x05f1,
+ 0x0645, 0x0968, 0x0670, 0x064e, 0x076d, 0x029a,
+ 0x017d, 0x01fc, 0xff1e, 0x0104, 0x02ff, 0x006b,
+ 0x004f, 0x0191, 0x0248, 0x0125, 0xfc4d, 0xfbe7,
+ 0xfe87, 0xfbee, 0xfb8d, 0xfe2e, 0xfc71, 0xfbba,
+ 0xfd22, 0xfc39, 0xfc30, 0xfc22, 0xf9ec, 0xf963,
+ 0xf9c5, 0xf7f9, 0xf6ac, 0xf849, 0xf810, 0xf403,
+ 0xf49f, 0xf954, 0xf86c, 0xf70f, 0xf988, 0xf854,
+ 0xf717, 0xf97f, 0xf8bb, 0xf7a0, 0xf986, 0xf9c1,
+ 0xfaca, 0xfd39, 0xfb3e, 0xf8df, 0xfb54, 0xfc06,
+ 0xf84d, 0xf948, 0xfe9c, 0xfcab, 0xf7a9, 0xf9f6,
+ 0xfc5e, 0xfc03, 0xff9c, 0x01e2, 0x013c, 0x03bf,
+ 0x0388, 0xff4c, 0xffb0, 0x019f, 0x00e2, 0x0213,
+ 0x0402, 0x0317, 0x0210, 0x028f, 0x02c3, 0x031b,
+ 0x051f, 0x0688, 0x0629, 0x0755, 0x07ee, 0x0451,
+ 0x02ba, 0x04d9, 0x0347, 0x00f0, 0x03c9, 0x06df,
+ 0x0820, 0x0929, 0x06d5, 0x03e4, 0x048c, 0x0432,
+ 0x0416, 0x083b, 0x0960, 0x05a0, 0x0375, 0x02af,
+ 0x03e2, 0x0766, 0x0801, 0x07fe, 0x091f, 0x06b7,
+ 0x05fd, 0x094b, 0x08dd, 0x079d, 0x08d3, 0x07a5,
+ 0x07bc, 0x0a4a, 0x073b, 0x0116, 0x00a7, 0x0364,
+ 0x020c, 0xffd0, 0x0210, 0x0222, 0xfebe, 0x001c,
+ 0x011e, 0xfe76, 0xfeb9, 0xfd0a, 0xfb3f, 0xff57,
+ 0xfc7d, 0xf771, 0xfe02, 0xff08, 0xfa05, 0x010c,
+ 0x04b5, 0xfde4, 0xfe3c, 0xffff, 0xfb9f, 0xfab8,
+ 0xfc20, 0xfc5c, 0xfe36, 0xff35, 0xfcbe, 0xf78a,
+ 0xf335, 0xf365, 0xf65b, 0xfa63, 0xfc13, 0xf8f7,
+ 0xf85f, 0xf9e3, 0xf76b, 0xf810, 0xfaf1, 0xf788,
+ 0xf4e2, 0xf633, 0xf62b, 0xf668, 0xf673, 0xf75d,
+ 0xf9ad, 0xf5dc, 0xf379, 0xf9b9, 0xf9bd, 0xf68d,
+ 0xfbcf, 0xfb9f, 0xf63e, 0xf9ee, 0xfd81, 0xfc7b,
+ 0xfd9d, 0xfb8e, 0xf7a2, 0xf763, 0xf67c, 0xf773,
+ 0xfb1e, 0xfac9, 0xfa8e, 0xfc7e, 0xfac5, 0xf803,
+ 0xf764, 0xf8b7, 0xfb4d, 0xfa57, 0xf906, 0xfbe0,
+ 0xfbbc, 0xfb27, 0x003c, 0x0194, 0xfe4f, 0xfdc9,
+ 0xfcd8, 0xfc7a, 0xff8d, 0x0156, 0x01d8, 0x01f4,
+ 0x01fc, 0x04cb, 0x04de, 0x0288, 0x0782, 0x0a9d,
+ 0x02bf, 0xff10, 0x04aa, 0x0594, 0x00cc, 0x0118,
+ 0x066c, 0x08da, 0x084c, 0x07e3, 0x05d6, 0x0437,
+ 0x05c1, 0x063d, 0x04aa, 0x033c, 0x02bc, 0x0524,
+ 0x07df, 0x07bc, 0x062b, 0x031f, 0x0318, 0x07c0,
+ 0x078c, 0x0552, 0x07ad, 0x0566, 0x0042, 0x009e,
+ 0xff0d, 0xfb76, 0xfdc9, 0x0216, 0x02d0, 0x0085,
+ 0x002b, 0x0296, 0x00c9, 0xfeed, 0x0212, 0x00bd,
+ 0xfd98, 0xffb1, 0xfdc5, 0xf885, 0xf8f0, 0xfc0c,
+ 0xfd45, 0xfb5d, 0xfa9c, 0xfd8a, 0xfbc1, 0xf978,
+ 0xfd97, 0xfc3e, 0xf926, 0xfddd, 0xfd9d, 0xfb27,
+ 0xff76, 0xfcbd, 0xf539, 0xf608, 0xf7ef, 0xf81f,
+ 0xfb26, 0xfd0d, 0xfae1, 0xf5be, 0xf3d6, 0xf876,
+ 0xfbc5, 0xfd46, 0xff59, 0xfcd9, 0xfb62, 0xfc88,
+ 0xf64b, 0xf22e, 0xf7f1, 0xf8e6, 0xf58c, 0xf85c,
+ 0xfbbe, 0xfdd8, 0x0133, 0x00d6, 0xff14, 0xff69,
+ 0xfd52, 0xfd0c, 0x021f, 0x0283, 0xfe23, 0xfdaa,
+ 0xfe0d, 0xfeb3, 0x03e2, 0x0716, 0x04f3, 0x0244,
+ 0xff10, 0xfd85, 0x0017, 0x026c, 0x0423, 0x0579,
+ 0x039b, 0x019e, 0x0069, 0xfe46, 0x0001, 0x0506,
+ 0x06bb, 0x05a7, 0x0580, 0x06bf, 0x05d0, 0x0130,
+ 0xff6f, 0x0232, 0x0373, 0x0286, 0x00c6, 0xffaf,
+ 0x0109, 0x0079, 0xff2e, 0x0385, 0x0754, 0x0655,
+ 0x070d, 0x07a2, 0x03a8, 0xfffc, 0xff19, 0xfead,
+ 0xff95, 0x028a, 0x03a5, 0x026e, 0x036e, 0x0302,
+ 0xfcf3, 0xfa13, 0xfd48, 0xff05, 0x000c, 0x0239,
+ 0x02eb, 0x0264, 0xff58, 0xfc64, 0xffc5, 0x0406,
+ 0x032a, 0x002e, 0xfc9c, 0xfc75, 0x0159, 0x01cf,
+ 0xfd20, 0xfc7e, 0xfdbd, 0xfbe6, 0xfaf3, 0xfc3b,
+ 0xfd30, 0xfef6, 0xffe9, 0xfc4f, 0xfa4c, 0xfdee,
+ 0xfdf3, 0xf9af, 0xf9c5, 0xfa79, 0xf7ef, 0xf782,
+ 0xf94e, 0xfb2a, 0xfcb1, 0xfc37, 0xfb32, 0xfa48,
+ 0xf964, 0xfa23, 0xf8e4, 0xf75a, 0xfb5e, 0xfcdf,
+ 0xf996, 0xf9f9, 0xf959, 0xf7e3, 0xfc24, 0xfc98,
+ 0xfaa3, 0x0001, 0x008d, 0xfbd6, 0xffe0, 0x0276,
+ 0xfd64, 0xfb87, 0xf953, 0xf7eb, 0x01e8, 0x09ca,
+ 0x03ad, 0xfe1d, 0xfdd4, 0xf9de, 0xf72a, 0xfb24,
+ 0xfee0, 0x00cd, 0x035e, 0x028d, 0xffe5, 0xffbc,
+ 0xfd1d, 0xfa2e, 0xfee3, 0x0348, 0x02a5, 0x056c,
+ 0x0761, 0x03ec, 0x033a, 0x0249, 0xfe95, 0x0188,
+ 0x05b1, 0x0534, 0x0864, 0x07b0, 0xfd16, 0xf9e0,
+ 0xfecf, 0xfef2, 0xff65, 0x003b, 0xfb28, 0xfafe,
+ 0x025f, 0x03ff, 0x017c, 0x01f2, 0x0083, 0xfddf,
+ 0xffbd, 0x01c4, 0x011b, 0xffcf, 0xf97d, 0xf308,
+ 0xfa96, 0x0690, 0x06dd, 0x0509, 0x05aa, 0xffd3,
+ 0xfbac, 0xffe0, 0x024e, 0x0069, 0xfc61, 0xf649,
+ 0xf345, 0xf376, 0xf596, 0xfc27, 0xff2f, 0xfaf5,
+ 0xf8a2, 0xf562, 0xee96, 0xefd6, 0xf48d, 0xeebf,
+ 0xe76f, 0xea43, 0xefbc, 0xf28d, 0xf792, 0xfc05,
+ 0xf8ba, 0xf262, 0xf0f2, 0xf3aa, 0xf80a, 0xfbaf,
+ 0xfc92, 0xfd7a, 0xfdad, 0xfacd, 0xfa01, 0xfa6e,
+ 0xf779, 0xf714, 0xf89b, 0xf6c7, 0xf98d, 0xff10,
+ 0xfe2f, 0x00da, 0x05b7, 0xfecc, 0xfa8c, 0xff42,
+ 0xf7ef, 0xf03f, 0xfca5, 0x0818, 0x09d7, 0x0ec2,
+ 0x0951, 0xf631, 0xecb6, 0xec5d, 0xee00, 0xfb0b,
+ 0x0bc7, 0x1311, 0x130c, 0x08c7, 0xf8b9, 0xf0ec,
+ 0xe955, 0xde6a, 0xe410, 0xf6f1, 0x044a, 0x101c,
+ 0x1895, 0x0f0c, 0xfbfa, 0xef4c, 0xe9ec, 0xee22,
+ 0xf89c, 0xf8d5, 0xed79, 0xe2af, 0xd9f2, 0xd94f,
+ 0xeca9, 0x0689, 0x13e3, 0x1b6b, 0x1dca, 0x1022,
+ 0x00f8, 0xfc94, 0xf3c3, 0xe9f0, 0xef6f, 0xf5ec,
+ 0xefd3, 0xe69e, 0xdd7a, 0xd5ee, 0xd809, 0xe327,
+ 0xf3e9, 0x049d, 0x0b5d, 0x0a5b, 0x02ac, 0xed39,
+ 0xd738, 0xd0d6, 0xcfae, 0xcbfe, 0xce8f, 0xd978,
+ 0xe57e, 0xeb0f, 0xe7b5, 0xe07d, 0xdc3e, 0xdfd9,
+ 0xe7de, 0xea98, 0xeaa0, 0xefa3, 0xf576, 0xf962,
+ 0xfede, 0x0734, 0x0f64, 0x0b0d, 0xf9ba, 0xf0af,
+ 0xf00a, 0xecfa, 0xf893, 0x1092, 0x1618, 0x0d23,
+ 0x067e, 0xfcdb, 0xf85c, 0xffd2, 0xffc7, 0xf6eb,
+ 0xf796, 0xfeee, 0x030a, 0x05be, 0x0572, 0xfffe,
+ 0xfd1d, 0xff4d, 0xff4b, 0x00bf, 0x0982, 0x0c77,
+ 0x037a, 0xfc27, 0xfb73, 0x0160, 0x0e2e, 0x1438,
+ 0x100a, 0x0b8a, 0x047f, 0x0259, 0x0de5, 0x160f,
+ 0x1c7c, 0x2a9a, 0x2391, 0x097e, 0x06f9, 0x129b,
+ 0x137e, 0x1997, 0x22a9, 0x1e4f, 0x1aae, 0x1d19,
+ 0x18cb, 0x1311, 0x1251, 0x113b, 0x12f6, 0x19e4,
+ 0x1d49, 0x1c7c, 0x1df9, 0x20d2, 0x272a, 0x34b4,
+ 0x4008, 0x44b4, 0x4717, 0x40c7, 0x347a, 0x2ea3,
+ 0x28d0, 0x2788, 0x39d7, 0x4782, 0x3ff8, 0x3cbc,
+ 0x3c65, 0x2ede, 0x2790, 0x2cfb, 0x2e21, 0x2c85,
+ 0x2cb4, 0x2bde, 0x298d, 0x239c, 0x221b, 0x287e,
+ 0x2516, 0x1b4e, 0x1bcc, 0x16e7, 0x0493, 0xfb08,
+ 0xff05, 0x05af, 0x0de2, 0x152f, 0x181e, 0x183a,
+ 0x1576, 0x1048, 0x0beb, 0x08ed, 0x0493, 0x01c9,
+ 0x057b, 0x03a8, 0xf456, 0xec79, 0xf205, 0xf1c6,
+ 0xef6f, 0xf237, 0xf0e8, 0xf269, 0xf701, 0xeeeb,
+ 0xe69c, 0xe88c, 0xe32a, 0xda16, 0xdb6d, 0xdda6,
+ 0xdc61, 0xde7e, 0xe335, 0xe6d1, 0xe5ea, 0xe264,
+ 0xdfb2, 0xd717, 0xca11, 0xc473, 0xc35b, 0xc379,
+ 0xcbe3, 0xd67f, 0xd840, 0xd608, 0xd598, 0xd2e2,
+ 0xd030, 0xd750, 0xe1ff, 0xe0aa, 0xd972, 0xd87e,
+ 0xda1a, 0xdd29, 0xde93, 0xd780, 0xd631, 0xe0f7,
+ 0xe534, 0xe2eb, 0xe06c, 0xd733, 0xd293, 0xd5aa,
+ 0xd038, 0xcedf, 0xd7b4, 0xd184, 0xc6ca, 0xcdc5,
+ 0xd1bb, 0xc9d8, 0xc6d3, 0xc58a, 0xc1e0, 0xc41f,
+ 0xcb09, 0xd281, 0xd95e, 0xde07, 0xe2e8, 0xe5fa,
+ 0xe28f, 0xde54, 0xdd6d, 0xdc64, 0xdda7, 0xe204,
+ 0xe0ac, 0xdaf6, 0xdb7d, 0xddc6, 0xdb99, 0xdb9d,
+ 0xd8a4, 0xcecb, 0xd165, 0xdc4e, 0xd6f2, 0xce73,
+ 0xd2ba, 0xd6b8, 0xd97a, 0xdb7d, 0xd72c, 0xdafc,
+ 0xe27f, 0xd74c, 0xca51, 0xcea3, 0xd55e, 0xd833,
+ 0xdbca, 0xdde6, 0xdf0a, 0xdd1a, 0xd723, 0xd46a,
+ 0xd60b, 0xdaeb, 0xdead, 0xd4f5, 0xc905, 0xcd94,
+ 0xd025, 0xc9c6, 0xd682, 0xea82, 0xe12b, 0xced3,
+ 0xd346, 0xd77a, 0xcc86, 0xcea4, 0xde69, 0xe149,
+ 0xdd1e, 0xde07, 0xddcc, 0xe027, 0xe6c1, 0xe8b8,
+ 0xe8c5, 0xea88, 0xeb0d, 0xe8b1, 0xe294, 0xe2a3,
+ 0xeae7, 0xe991, 0xe888, 0xf80b, 0xfbdf, 0xef69,
+ 0xf4e3, 0xfe6d, 0xf1a0, 0xe919, 0xf409, 0xf975,
+ 0xf4d0, 0xf7a1, 0xfd1d, 0xf7a7, 0xf3ca, 0xfeec,
+ 0x0816, 0x032d, 0xfe62, 0xfeb3, 0xff34, 0x017d,
+ 0xffbc, 0xfd3f, 0x0349, 0x0263, 0xfbdd, 0x0298,
+ 0x0791, 0x033c, 0x04c4, 0x0768, 0x07a3, 0x0ac2,
+ 0x0b5a, 0x08eb, 0x098e, 0x0d0f, 0x0fe5, 0x11dd,
+ 0x1570, 0x1938, 0x1a2b, 0x1979, 0x172e, 0x139a,
+ 0x17af, 0x2093, 0x1b2e, 0x11e6, 0x1b0d, 0x22b2,
+ 0x1857, 0x14d7, 0x2250, 0x2795, 0x19b1, 0x115a,
+ 0x1d17, 0x23f1, 0x1e32, 0x2256, 0x2209, 0x148b,
+ 0x1b4f, 0x2819, 0x2270, 0x237b, 0x290f, 0x278a,
+ 0x26c7, 0x22a3, 0x26d1, 0x2fb8, 0x27b3, 0x2292,
+ 0x2505, 0x1b5d, 0x1658, 0x1b94, 0x1804, 0x18a1,
+ 0x2425, 0x2398, 0x223a, 0x2b45, 0x2743, 0x239e,
+ 0x2eab, 0x2c9e, 0x23d8, 0x2c80, 0x3525, 0x2dff,
+ 0x2a04, 0x3255, 0x351f, 0x354e, 0x3dc6, 0x3d9b,
+ 0x37f9, 0x402f, 0x4242, 0x36de, 0x3969, 0x3dce,
+ 0x38b2, 0x3dad, 0x3996, 0x2d03, 0x33eb, 0x37f4,
+ 0x36d1, 0x3b2d, 0x3620, 0x38c4, 0x3fb0, 0x363e,
+ 0x3267, 0x362e, 0x308e, 0x2b31, 0x2c20, 0x2a02,
+ 0x306a, 0x4686, 0x48e2, 0x3c4e, 0x40bf, 0x3db2,
+ 0x32d3, 0x342b, 0x2f7a, 0x2858, 0x2922, 0x2a5d,
+ 0x2c8a, 0x2c10, 0x28e6, 0x2a8b, 0x2ffd, 0x2d9c,
+ 0x1f67, 0x1d80, 0x3161, 0x35d1, 0x2555, 0x2e36,
+ 0x3dd9, 0x2891, 0x1d76, 0x2c66, 0x254e, 0x1bca,
+ 0x2b5c, 0x3850, 0x33fb, 0x2c99, 0x2abb, 0x2a8e,
+ 0x2a51, 0x2557, 0x2655, 0x3406, 0x3327, 0x2e33,
+ 0x3348, 0x2afa, 0x229b, 0x24f5, 0x2c37, 0x331a,
+ 0x2aa3, 0x28dd, 0x26e3, 0x130a, 0x18eb, 0x26ef,
+ 0x2024, 0x289a, 0x2ebd, 0x2075, 0x1f94, 0x24b8,
+ 0x21bd, 0x23c1, 0x1c12, 0x10eb, 0x1f55, 0x2239,
+ 0x0e95, 0x117b, 0x17f8, 0x1537, 0x1dd8, 0x1c92,
+ 0x0f37, 0x0809, 0x0635, 0x1109, 0x1e65, 0x1673,
+ 0x0f0f, 0x1c2d, 0x1c95, 0x136b, 0x1844, 0x13e0,
+ 0x0dbb, 0x0f4a, 0x0d84, 0x149f, 0x10aa, 0x07a2,
+ 0x12b3, 0x16cb, 0x189e, 0x17a9, 0x0a8f, 0x09b4,
+ 0x0500, 0x0125, 0x0a9d, 0x02d9, 0xfccf, 0x00f1,
+ 0xf5a9, 0xf172, 0xff28, 0x0046, 0xf3be, 0xf8f7,
+ 0x0718, 0x053a, 0x0340, 0x05db, 0x03ab, 0x00d5,
+ 0x0269, 0x0a9b, 0x0ac0, 0xffa1, 0xf7d2, 0xf4e3,
+ 0xf550, 0xf5ed, 0xf865, 0xff57, 0x02c7, 0xf9fc,
+ 0xedd1, 0xf6a6, 0x015b, 0xfcce, 0x0046, 0xffae,
+ 0xffc1, 0x065f, 0xf8cf, 0xf8b9, 0x0807, 0xfbf3,
+ 0xefad, 0xfd01, 0x08fc, 0xf8ff, 0xf0a6, 0x01f6,
+ 0xf80d, 0xebf9, 0xf96e, 0xf527, 0xeff3, 0xf4f7,
+ 0xf353, 0xf3e4, 0xf0de, 0xee3d, 0xf18b, 0xfa09,
+ 0x0300, 0xf6be, 0xed5f, 0xfd85, 0xfe09, 0xea19,
+ 0xeb51, 0xf4e0, 0xeaa7, 0xe78c, 0xed6f, 0xe82d,
+ 0xe992, 0xee56, 0xec39, 0xeccf, 0xf3cd, 0xfd75,
+ 0xf69c, 0xe9b3, 0xe921, 0xe82b, 0xe75d, 0xe533,
+ 0xe612, 0xe932, 0xe5b9, 0xeeb4, 0xf26c, 0xe9ff,
+ 0xe99f, 0xe56b, 0xf25e, 0xfd94, 0xed11, 0xef31,
+ 0xeaa1, 0xd898, 0xe666, 0xecfd, 0xe1ab, 0xe17f,
+ 0xde28, 0xd300, 0xd2f8, 0xdd4d, 0xd898, 0xd0d1,
+ 0xd467, 0xd047, 0xd16e, 0xd8b2, 0xd79c, 0xd5a1,
+ 0xc88f, 0xb7b3, 0xb81b, 0xc204, 0xc9f1, 0xcd5f,
+ 0xcf30, 0xd263, 0xd368, 0xc805, 0xc198, 0xce7a,
+ 0xcff1, 0xce21, 0xd2d9, 0xc9e2, 0xc559, 0xc099,
+ 0xbd5b, 0xc40f, 0xbcab, 0xc3a6, 0xcf80, 0xc496,
+ 0xc99c, 0xcfee, 0xcfa2, 0xd66c, 0xd354, 0xd0f5,
+ 0xc363, 0xb927, 0xceb5, 0xd158, 0xc282, 0xcf2c,
+ 0xdf76, 0xd481, 0xce2c, 0xe5d4, 0xe617, 0xccc4,
+ 0xcdad, 0xd539, 0xd575, 0xd574, 0xd330, 0xd3cb,
+ 0xc919, 0xc456, 0xdac8, 0xe4d7, 0xd586, 0xd3f6,
+ 0xe11d, 0xdfcf, 0xde08, 0xe35b, 0xde08, 0xd396,
+ 0xcbd3, 0xd56a, 0xde21, 0xd232, 0xd90f, 0xe0b9,
+ 0xdd12, 0xea71, 0xe7d1, 0xdf43, 0xe199, 0xdde9,
+ 0xe348, 0xe2d1, 0xe36d, 0xe977, 0xe0c7, 0xe71a,
+ 0xe795, 0xdb5b, 0xe53b, 0xe17f, 0xd7a7, 0xe0dd,
+ 0xe361, 0xe475, 0xea46, 0xec9f, 0xec98, 0xef78,
+ 0xef67, 0xe8b8, 0xef1c, 0xf5cf, 0xf13b, 0xee14,
+ 0xe5cd, 0xe665, 0xe8da, 0xdbd6, 0xdeb6, 0xece9,
+ 0xe993, 0xdebd, 0xdcf0, 0xdf94, 0xe078, 0xe464,
+ 0xe622, 0xe86c, 0xe80e, 0xe42d, 0xeb4c, 0xe85a,
+ 0xedfd, 0xff3f, 0xeba1, 0xe932, 0xf415, 0xdac7,
+ 0xd9eb, 0xde0d, 0xd24e, 0xd881, 0xd128, 0xcf8d,
+ 0xdc4b, 0xd8c0, 0xd932, 0xdadf, 0xd8e9, 0xd420,
+ 0xccfc, 0xd631, 0xddb2, 0xd869, 0xd282, 0xd166,
+ 0xd803, 0xdcd6, 0xe02f, 0xdc84, 0xd4e6, 0xd7f3,
+ 0xd502, 0xcdd4, 0xce94, 0xd358, 0xd642, 0xcfef,
+ 0xd245, 0xd786, 0xd03c, 0xd5ff, 0xe525, 0xe6c1,
+ 0xe188, 0xe51d, 0xe613, 0xdf55, 0xe68b, 0xe5c0,
+ 0xe20e, 0xed79, 0xe3c9, 0xe4ce, 0xf57a, 0xf137,
+ 0xf59a, 0xf10b, 0xeac5, 0xf345, 0xe4f6, 0xe602,
+ 0xee66, 0xe7d2, 0xfe6c, 0x06ba, 0xf999, 0x0356,
+ 0x062a, 0xffd6, 0x0311, 0x049f, 0xfd61, 0xfa9c,
+ 0x04a2, 0x0879, 0x06ea, 0x0b90, 0x1638, 0x1799,
+ 0x03c0, 0x016c, 0x0e9b, 0x05b9, 0xfd94, 0x017e,
+ 0x071d, 0x11fb, 0x1e1b, 0x1d6f, 0x12f0, 0x1951,
+ 0x1eca, 0x1594, 0x16ab, 0x1994, 0x1c97, 0x1dd5,
+ 0x1b8e, 0x1b89, 0x1109, 0x192f, 0x1bf0, 0xfd6a,
+ 0x095f, 0x24f5, 0x204b, 0x20d6, 0x1f4b, 0x1a02,
+ 0x0de8, 0x09a6, 0x20d6, 0x1e2a, 0x1231, 0x1af7,
+ 0x17e6, 0x13d2, 0x0df3, 0x0a89, 0x122b, 0x07f5,
+ 0x02a6, 0x159d, 0x1cdd, 0x0f5e, 0x0448, 0xfe75,
+ 0xfa8e, 0x055e, 0x09ad, 0xff62, 0xfff8, 0xfcf4,
+ 0xf63a, 0xf6b4, 0xf459, 0xf2a8, 0xf285, 0xfb39,
+ 0x05e8, 0x08e2, 0x0760, 0xfa80, 0x00a7, 0x1341,
+ 0x0958, 0xf921, 0xf3d3, 0x00b3, 0x062a, 0xf539,
+ 0xfe2d, 0xfe7b, 0xf1d2, 0x06d6, 0x06db, 0xf8df,
+ 0x00c8, 0x0114, 0xff13, 0x009a, 0x0102, 0xf709,
+ 0xf105, 0x02bd, 0x0214, 0xfe6a, 0x0a2c, 0xfb30,
+ 0xf1ee, 0xfced, 0xfee1, 0x0623, 0x095b, 0xfdae,
+ 0xfc74, 0x04b4, 0x0329, 0x0521, 0x0ad9, 0x0476,
+ 0x0799, 0x0c81, 0x07a6, 0x07f2, 0xfb2f, 0xf4ab,
+ 0xffa8, 0xfd8c, 0xfe0b, 0x04de, 0x088f, 0x07b4,
+ 0x08dd, 0x170e, 0x10ed, 0x0aed, 0x16db, 0x0561,
+ 0xfa40, 0x0751, 0x0b2a, 0x0b0d, 0x070d, 0x0ee0,
+ 0x120b, 0x0740, 0x130b, 0x1543, 0x045b, 0xfd5b,
+ 0xffd4, 0x0e4f, 0x0dcd, 0x069a, 0x0fa5, 0x0e7c,
+ 0x0d06, 0x1034, 0x0b86, 0x07d3, 0x0417, 0x068d,
+ 0x0a28, 0x0600, 0x04ed, 0x066d, 0x053f, 0x0401,
+ 0x050c, 0x0136, 0xffee, 0x01a8, 0xfa4f, 0x0477,
+ 0x0b55, 0xf6a1, 0xf6f4, 0xffb4, 0xfb73, 0xf7cb,
+ 0xf86f, 0x0bde, 0x0a13, 0xf6af, 0x0485, 0x0bcd,
+ 0x0566, 0x0c5e, 0x1480, 0x1345, 0x0b8d, 0x13c0,
+ 0x10cd, 0x029e, 0x10bb, 0x0889, 0xf8a6, 0x09d5,
+ 0x0655, 0xfe47, 0x0664, 0x0140, 0x0137, 0x0d9d,
+ 0x0f68, 0x07cd, 0x0c64, 0x1047, 0x084d, 0x0f7e,
+ 0x1613, 0x116f, 0x14f4, 0x13c2, 0x1193, 0x1658,
+ 0x1481, 0x103c, 0x1458, 0x155b, 0x105e, 0x1a49,
+ 0x16ab, 0x0393, 0x125a, 0x1c1b, 0x1421, 0x1ae2,
+ 0x1723, 0x133e, 0x18af, 0x1f7c, 0x25e7, 0x1a07,
+ 0x1829, 0x1962, 0x0bfc, 0x13c0, 0x175e, 0x11b4,
+ 0x1dbe, 0x262e, 0x235a, 0x16ae, 0x128b, 0x171d,
+ 0x10bd, 0x148f, 0x1712, 0x150c, 0x2005, 0x1d29,
+ 0x1520, 0x14ec, 0x106a, 0x0f3b, 0x0e11, 0x0e7f,
+ 0x151d, 0x18c4, 0x13e7, 0x0ba9, 0x0dcc, 0x1599,
+ 0x18f9, 0x195a, 0x1cd4, 0x1854, 0x0261, 0x0789,
+ 0x1afc, 0x1089, 0x16f3, 0x247e, 0x184f, 0x18c0,
+ 0x1e76, 0x17fb, 0x1325, 0x1873, 0x183e, 0x0869,
+ 0x0c8b, 0x1324, 0x0bcf, 0x13d2, 0x0e72, 0x087f,
+ 0x168f, 0x1653, 0x122f, 0x0956, 0x06dd, 0x166b,
+ 0x0ecf, 0x0894, 0x15a5, 0x1108, 0x09e2, 0x10a2,
+ 0x10de, 0x0175, 0xfc89, 0x0e0f, 0x19e0, 0x18aa,
+ 0x1161, 0x0afa, 0x0bbc, 0x0c0e, 0x0aab, 0x09c3,
+ 0x102c, 0x133a, 0x0ae8, 0x0c9e, 0x0871, 0xfcdf,
+ 0x02df, 0x0880, 0x07f7, 0x0535, 0x0616, 0x0dc6,
+ 0x0e5f, 0x172c, 0x1c46, 0x12b7, 0x1351, 0x0b51,
+ 0x003f, 0x030b, 0x021b, 0x01dd, 0x036b, 0x0a5a,
+ 0x0e61, 0x0a8e, 0x123c, 0x0d6c, 0x0770, 0x12dc,
+ 0x0897, 0xfdbf, 0x0302, 0x06b9, 0x0d16, 0x08b9,
+ 0x0e42, 0x20fa, 0x16f9, 0x0d09, 0x1493, 0x06ba,
+ 0xf8ce, 0x0848, 0x0d2c, 0x027e, 0x0abb, 0x17d6,
+ 0x212f, 0x1ff3, 0x0d8a, 0x0b20, 0x0c79, 0x07f7,
+ 0x144f, 0x18c5, 0x166e, 0x18ac, 0x103c, 0x0945,
+ 0x0b14, 0x0fd7, 0x0cc1, 0x06f8, 0x0b5e, 0x0b4a,
+ 0x0e52, 0x1387, 0x11a0, 0x140d, 0x0c62, 0x0b5a,
+ 0x115b, 0x0298, 0x07c4, 0x15a3, 0x0bd7, 0x0b85,
+ 0x09fe, 0x039c, 0x0ec1, 0x1685, 0x0fc6, 0x0a8c,
+ 0x103b, 0x1767, 0x1a2a, 0x19a6, 0x1345, 0x1089,
+ 0x11c8, 0x124d, 0x0fc9, 0x0a4c, 0x0f64, 0x1256,
+ 0x1253, 0x1dcf, 0x1c43, 0x14dc, 0x18d5, 0x16e4,
+ 0x13c2, 0x1198, 0x06dd, 0x00ac, 0x0bb5, 0x1427,
+ 0x10f8, 0x1469, 0x0ff9, 0x0987, 0x0b36, 0xfa6e,
+ 0xfeca, 0x16c6, 0x0cdd, 0x0b25, 0x14e5, 0x0dc6,
+ 0x0f15, 0x0f98, 0x0bc4, 0x07d8, 0x004a, 0x09ce,
+ 0x1176, 0x02d8, 0xfc1f, 0x07fe, 0x0947, 0xfb44,
+ 0xfde5, 0x08c6, 0x04fe, 0x00b1, 0xfde1, 0xf875,
+ 0xf6f6, 0xfaff, 0x000d, 0x00ca, 0x00d7, 0xfcfa,
+ 0xf782, 0xf48c, 0xee84, 0xf403, 0xfd8c, 0xf964,
+ 0xfa60, 0xff70, 0xf959, 0xf238, 0xf79b, 0xf769,
+ 0xe5ff, 0xe825, 0xf164, 0xe418, 0xe51d, 0xf174,
+ 0xeff3, 0xea7d, 0xe8d5, 0xf56c, 0xfe04, 0xf3b3,
+ 0xedd0, 0xee99, 0xec32, 0xeac7, 0xf4eb, 0xfcf8,
+ 0xf3b6, 0xf3f8, 0xf6c0, 0xee4f, 0xf5dc, 0xf994,
+ 0xebd5, 0xeddc, 0xf920, 0xf877, 0xf8d7, 0x02b6,
+ 0x033f, 0xf6d1, 0xedad, 0xe790, 0xdfbd, 0xd95e,
+ 0xde25, 0xe558, 0xdcfb, 0xdc08, 0xe6ba, 0xe400,
+ 0xe0a5, 0xe6ca, 0xec78, 0xed60, 0xeb60, 0xe94a,
+ 0xe36b, 0xe00a, 0xe120, 0xe2dd, 0xe41d, 0xdc49,
+ 0xdcca, 0xe6d0, 0xe281, 0xe17a, 0xe810, 0xebb4,
+ 0xf0db, 0xeddc, 0xe761, 0xe113, 0xe110, 0xf0d8,
+ 0xed73, 0xdd3b, 0xe8fb, 0xf3fc, 0xee2c, 0xf0e5,
+ 0xf07c, 0xe783, 0xebda, 0xed05, 0xe04a, 0xe0d5,
+ 0xe2b0, 0xde35, 0xeb77, 0xef7d, 0xdbb5, 0xdb34,
+ 0xef7d, 0xefdb, 0xdf5d, 0xdfd6, 0xe8bd, 0xe58f,
+ 0xdb65, 0xd027, 0xd72e, 0xe93e, 0xe3a0, 0xdc84,
+ 0xe603, 0xe384, 0xdc3a, 0xe416, 0xe73d, 0xdfe9,
+ 0xe056, 0xde6a, 0xd9cb, 0xe24a, 0xe49f, 0xe43e,
+ 0xee36, 0xe6c8, 0xd8a5, 0xdd64, 0xe254, 0xdfab,
+ 0xdf62, 0xe125, 0xdf02, 0xdd06, 0xe1e5, 0xe2f0,
+ 0xdb6e, 0xd4b5, 0xd452, 0xd9ce, 0xdf45, 0xe030,
+ 0xd823, 0xd147, 0xd9e6, 0xdc53, 0xd442, 0xdef3,
+ 0xec15, 0xe635, 0xe5dc, 0xe625, 0xd4ae, 0xd060,
+ 0xdb51, 0xd9f7, 0xdb9b, 0xdc56, 0xcff8, 0xd1e1,
+ 0xdd5d, 0xe2a6, 0xe98a, 0xe9f8, 0xe1bd, 0xd815,
+ 0xd3be, 0xd76f, 0xd548, 0xd788, 0xe59d, 0xe4bc,
+ 0xe29d, 0xef3a, 0xe743, 0xd37d, 0xd7ca, 0xe10a,
+ 0xe34f, 0xe5d9, 0xdef0, 0xddc0, 0xe85f, 0xe75b,
+ 0xe4ac, 0xe864, 0xe673, 0xe32b, 0xd9e3, 0xcc81,
+ 0xcdf3, 0xd9c8, 0xe44c, 0xec0f, 0xf00f, 0xee1a,
+ 0xe660, 0xe32e, 0xe204, 0xd712, 0xcfa7, 0xd2da,
+ 0xd878, 0xe25a, 0xe405, 0xdc06, 0xe0c1, 0xe261,
+ 0xd750, 0xd999, 0xdc0d, 0xd8b1, 0xe694, 0xec99,
+ 0xdfcc, 0xdbd9, 0xd985, 0xd8c0, 0xe07b, 0xddad,
+ 0xdd65, 0xe515, 0xdc03, 0xd8d0, 0xe3a5, 0xddea,
+ 0xdd85, 0xebbd, 0xe4e1, 0xd8e5, 0xdcd7, 0xdce8,
+ 0xdde4, 0xe2c8, 0xdb97, 0xda16, 0xe583, 0xe3d0,
+ 0xd990, 0xd5ca, 0xd2e6, 0xd554, 0xdc13, 0xdcd1,
+ 0xde06, 0xdeca, 0xdbaf, 0xe10c, 0xe6cc, 0xe13e,
+ 0xdfba, 0xe21e, 0xdd48, 0xdc73, 0xe37f, 0xe6a8,
+ 0xe12b, 0xda0f, 0xde17, 0xe71b, 0xe69c, 0xe3c0,
+ 0xe2ce, 0xe08f, 0xe05d, 0xdf19, 0xe229, 0xeb29,
+ 0xe6a0, 0xdfa7, 0xe905, 0xede6, 0xebe8, 0xeeca,
+ 0xe8bb, 0xded9, 0xdf70, 0xe3f2, 0xe986, 0xe896,
+ 0xdfac, 0xded4, 0xe14a, 0xe3aa, 0xec89, 0xecca,
+ 0xec10, 0xf981, 0xfc44, 0xf65a, 0xf92d, 0xf1f3,
+ 0xe971, 0xef8a, 0xee64, 0xec58, 0xf2f5, 0xec57,
+ 0xe5db, 0xf006, 0xf442, 0xf15e, 0xf34c, 0xf020,
+ 0xe5fe, 0xe0a7, 0xe672, 0xed1d, 0xe7c7, 0xe669,
+ 0xf2d0, 0xf58d, 0xec54, 0xe8ff, 0xeaf3, 0xf069,
+ 0xf7a3, 0xf8e5, 0xf5d9, 0xf117, 0xec5c, 0xea92,
+ 0xe979, 0xed99, 0xf551, 0xf4cb, 0xf37b, 0xf561,
+ 0xf33f, 0xf8de, 0x0414, 0x04b5, 0x020f, 0xfcb2,
+ 0xf5f8, 0xfcea, 0x002b, 0xf7cc, 0xfd8f, 0x0563,
+ 0x00c8, 0x0526, 0x0a07, 0x0107, 0xff5a, 0x061e,
+ 0x0314, 0xfdce, 0x02d5, 0x0940, 0x07b6, 0x0663,
+ 0x0a71, 0x0d35, 0x0b59, 0x033f, 0xfc7d, 0x0142,
+ 0x049b, 0x03e3, 0x0c63, 0x11be, 0x118f, 0x16af,
+ 0x11b5, 0x0899, 0x0e78, 0x0ffa, 0x064e, 0x01ab,
+ 0x0362, 0x09f9, 0x0d99, 0x0b2a, 0x0cd5, 0x0bb0,
+ 0x0809, 0x0a6b, 0x06b8, 0x04a1, 0x0bb8, 0x05e1,
+ 0xfb20, 0xfbe6, 0xff03, 0x05f4, 0x0bc3, 0x0c49,
+ 0x12ff, 0x136f, 0x0b03, 0x09b6, 0x07d4, 0x08ee,
+ 0x0d6e, 0x04c1, 0x0138, 0x07f0, 0x0902, 0x0fc6,
+ 0x0e67, 0x0157, 0x07e2, 0x0867, 0xfb11, 0x0737,
+ 0x0ef7, 0x0400, 0x0b77, 0x0e43, 0x02a4, 0x0670,
+ 0x076a, 0x0029, 0x04d1, 0x0597, 0xfd1c, 0xfd83,
+ 0x0639, 0x0a7b, 0x0a54, 0x10db, 0x1215, 0x043e,
+ 0x00a3, 0x0444, 0x0022, 0x06d1, 0x0929, 0xfa5e,
+ 0xff79, 0x0ef4, 0x0b1d, 0x0745, 0x0824, 0x0673,
+ 0x0b51, 0x103c, 0x1097, 0x10ca, 0x0d6f, 0x081c,
+ 0x03a8, 0x04ac, 0x0bad, 0x0d2e, 0x0f8a, 0x178c,
+ 0x1486, 0x0baa, 0x082c, 0x0574, 0x04c7, 0x00a2,
+ 0xfcaf, 0x06fa, 0x0cf1, 0x0591, 0x031e, 0x02f8,
+ 0x05aa, 0x0f15, 0x0ec2, 0x0882, 0x099e, 0x09dc,
+ 0x0331, 0xfa27, 0xfb9e, 0x076c, 0x098c, 0x06e5,
+ 0x0844, 0x0359, 0x05b9, 0x134b, 0x1371, 0x0b98,
+ 0x0b9c, 0x0dff, 0x0bd4, 0x064a, 0x0908, 0x0d3e,
+ 0x0619, 0x0a31, 0x1454, 0x0b23, 0x0964, 0x111d,
+ 0x0a29, 0x0c5a, 0x1419, 0x0abc, 0x08d5, 0x0f75,
+ 0x0f91, 0x1303, 0x131a, 0x12f2, 0x1b25, 0x17a9,
+ 0x0dc2, 0x0a88, 0x045b, 0x0690, 0x11e6, 0x1528,
+ 0x1610, 0x11be, 0x0af1, 0x1379, 0x16ab, 0x0b17,
+ 0x0c0c, 0x1186, 0x0c64, 0x0bd3, 0x1065, 0x1115,
+ 0x1259, 0x14ff, 0x131a, 0x0e1a, 0x0d33, 0x0cfb,
+ 0x09e0, 0x0b2c, 0x0c9d, 0x0c28, 0x11b7, 0x10b6,
+ 0x09fa, 0x118f, 0x183b, 0x1389, 0x1401, 0x14bd,
+ 0x1565, 0x1bf5, 0x17e8, 0x1245, 0x1b5d, 0x1ca9,
+ 0x13f3, 0x1587, 0x194d, 0x19cc, 0x1c13, 0x1531,
+ 0x0884, 0x09ef, 0x116d, 0x0e31, 0x0c12, 0x1191,
+ 0x10ef, 0x0d03, 0x0c76, 0x0aa7, 0x0eaf, 0x153f,
+ 0x106c, 0x0d5b, 0x1195, 0x0edc, 0x0d16, 0x1276,
+ 0x142c, 0x11c9, 0x0e49, 0x0ca1, 0x0c96, 0x0725,
+ 0x0761, 0x1446, 0x1adf, 0x1841, 0x14c0, 0x0e62,
+ 0x0ca1, 0x0f2a, 0x08b0, 0xfecb, 0xfbd0, 0xfd7c,
+ 0x00c6, 0x02e6, 0x019a, 0xfeaf, 0xff54, 0x02a0,
+ 0x0038, 0xfee2, 0x053d, 0x030a, 0xf9a0, 0xfbc8,
+ 0x030b, 0x03b4, 0x0001, 0xfd88, 0x01b8, 0x079a,
+ 0x09f0, 0x092e, 0x0270, 0x0114, 0x0741, 0xffba,
+ 0xf6c5, 0xfe3e, 0x02a5, 0x02bc, 0x0603, 0x031f,
+ 0x0342, 0x067a, 0x018f, 0x033f, 0x0a05, 0x0742,
+ 0x0508, 0x0715, 0x0c39, 0x14b0, 0x1377, 0x0dfa,
+ 0x0e32, 0x0918, 0x053b, 0x0b44, 0x0cf6, 0x093c,
+ 0x095e, 0x0cf7, 0x10eb, 0x123f, 0x1195, 0x0f74,
+ 0x0dcc, 0x0ea5, 0x0a57, 0x0849, 0x0ee2, 0x093d,
+ 0x0414, 0x117c, 0x10e7, 0x09e4, 0x14ae, 0x108b,
+ 0x06de, 0x107c, 0x0b60, 0x0439, 0x12e9, 0x0fd0,
+ 0x03cb, 0x0c65, 0x0d7f, 0x084a, 0x0f89, 0x10e4,
+ 0x0bf1, 0x0cb5, 0x0fc4, 0x12ec, 0x10a9, 0x0e29,
+ 0x12ad, 0x0f60, 0x0913, 0x0fc7, 0x1484, 0x11fa,
+ 0x122b, 0x1080, 0x1091, 0x132a, 0x0bfd, 0x06b4,
+ 0x0c2e, 0x09e0, 0x02c6, 0x0657, 0x0b88, 0x0e07,
+ 0x1210, 0x1002, 0x099d, 0x07e3, 0x0918, 0x0d34,
+ 0x119b, 0x0e32, 0x0697, 0x033b, 0x071c, 0x0c14,
+ 0x0ade, 0x0fb5, 0x1786, 0x0a23, 0xff35, 0x0e1a,
+ 0x11c1, 0x049e, 0x0328, 0x03fa, 0x03ac, 0x0754,
+ 0x0183, 0xfba4, 0xfdd1, 0xfd2f, 0x00ea, 0x056c,
+ 0x01f1, 0x04ee, 0x072b, 0xffb5, 0x0212, 0x0979,
+ 0x07fc, 0x07b6, 0x07f4, 0x04f4, 0x07c1, 0x0b1f,
+ 0x04d4, 0xffab, 0x05fe, 0x091e, 0x023a, 0x0227,
+ 0x04b7, 0xfed0, 0xfd1a, 0xfea8, 0x01e6, 0x0fdf,
+ 0x1314, 0x0716, 0x0751, 0x0ab6, 0x0529, 0xffe4,
+ 0xf82a, 0xf7f1, 0x0117, 0xff55, 0xfddc, 0x049b,
+ 0x0450, 0x0244, 0xfbc8, 0xef23, 0xf1da, 0xfa8a,
+ 0xfac8, 0xff94, 0x01e0, 0xfa47, 0xf5af, 0xf6e4,
+ 0xfb2f, 0xfae1, 0xf32b, 0xf094, 0xf051, 0xee3a,
+ 0xf05f, 0xf107, 0xf78c, 0x0440, 0xfdba, 0xf2cf,
+ 0xf948, 0xf92a, 0xf236, 0xf721, 0xfc1f, 0xfa50,
+ 0xf539, 0xee4d, 0xef1b, 0xf62e, 0xf8f2, 0xf7a5,
+ 0xf8b5, 0xffac, 0x01bb, 0xf93d, 0xf67b, 0xfa25,
+ 0xf9b5, 0xfba8, 0xfc4e, 0xf4b4, 0xf2ed, 0xf92b,
+ 0xf8a1, 0xf39a, 0xf73d, 0xff97, 0x00a9, 0xfed7,
+ 0xfd47, 0xf547, 0xf220, 0xfa3f, 0xfc8d, 0xfab0,
+ 0xfd3a, 0xf8f5, 0xf253, 0xf535, 0xf6fe, 0xf598,
+ 0xfcb7, 0x043b, 0xff70, 0xf77c, 0xf447, 0xf29d,
+ 0xf7a5, 0xfeb1, 0xfa9a, 0xfa16, 0x02dc, 0x0003,
+ 0xfade, 0xff57, 0xfb76, 0xf4c3, 0xf7ec, 0xf936,
+ 0xfb6a, 0x0385, 0x02ce, 0xf8b2, 0xf39e, 0xf740,
+ 0xfb8e, 0xfc6e, 0xfd1f, 0xf982, 0xf23c, 0xf1f4,
+ 0xf43a, 0xf67b, 0xfdbe, 0xfe33, 0xf7d4, 0xf873,
+ 0xfac3, 0xfa6b, 0xf828, 0xf2ef, 0xf404, 0xf75b,
+ 0xf467, 0xf500, 0xf51f, 0xf005, 0xf10b, 0xf08c,
+ 0xea60, 0xec1d, 0xf0a1, 0xf029, 0xee79, 0xeb92,
+ 0xea13, 0xea87, 0xeaa5, 0xeb9a, 0xea91, 0xeb51,
+ 0xf131, 0xf0ea, 0xea31, 0xe5b1, 0xe522, 0xeb31,
+ 0xf031, 0xecc2, 0xeac1, 0xeb33, 0xe9cd, 0xe954,
+ 0xe692, 0xe579, 0xeb87, 0xef15, 0xee68, 0xee3f,
+ 0xebad, 0xe824, 0xe6ea, 0xe8e9, 0xee7b, 0xf4ee,
+ 0xf9d3, 0xf878, 0xf231, 0xee8a, 0xe977, 0xe833,
+ 0xf299, 0xf492, 0xedb5, 0xef0b, 0xe933, 0xdf81,
+ 0xe849, 0xf2bd, 0xf2b6, 0xf17c, 0xeeca, 0xeff2,
+ 0xf3c1, 0xf37c, 0xf78d, 0xf98f, 0xf352, 0xf31a,
+ 0xf587, 0xf58f, 0xf86f, 0xf6b5, 0xf680, 0xfcde,
+ 0xf6d0, 0xecab, 0xf3f3, 0x0001, 0x0234, 0xfbee,
+ 0xf283, 0xee7e, 0xf090, 0xf36f, 0xf533, 0xf4f9,
+ 0xf356, 0xf09d, 0xf064, 0xf36c, 0xefd3, 0xeb43,
+ 0xf010, 0xefba, 0xecab, 0xf933, 0x030a, 0xfa86,
+ 0xf3b6, 0xf566, 0xf22f, 0xe9ed, 0xe7be, 0xed9c,
+ 0xf251, 0xf372, 0xf524, 0xf47e, 0xefb7, 0xea5e,
+ 0xe88d, 0xedef, 0xf48a, 0xf440, 0xf122, 0xf05c,
+ 0xf22a, 0xf39e, 0xf211, 0xf35e, 0xf632, 0xf23a,
+ 0xf093, 0xf548, 0xf510, 0xf452, 0xf721, 0xf62b,
+ 0xf602, 0xf680, 0xf2b6, 0xf58d, 0xfbee, 0xf8b1,
+ 0xf781, 0xfcb0, 0xf9ef, 0xf544, 0xf8f9, 0xfd16,
+ 0xfe01, 0xfd25, 0xf8f2, 0xf6c6, 0xf9ef, 0xfdd8,
+ 0x02cc, 0x07c9, 0x0512, 0xfcde, 0xfa3c, 0xfdb0,
+ 0xff67, 0xfe4d, 0xfd6d, 0xfbe0, 0xf951, 0xf723,
+ 0xf4c7, 0xf423, 0xf761, 0xfa0b, 0xf841, 0xf4c2,
+ 0xf474, 0xf8f2, 0xfcf6, 0xfc10, 0xf9ac, 0xf74e,
+ 0xf3b5, 0xf307, 0xf6a3, 0xf847, 0xf6c8, 0xf84d,
+ 0xfbb2, 0xfa53, 0xf8a9, 0xfc65, 0xff12, 0xfdfb,
+ 0xfb19, 0xf698, 0xf845, 0xfe4a, 0xfba9, 0xf87d,
+ 0xfc94, 0xfb6e, 0xf6f1, 0xf93c, 0xfd48, 0xfd95,
+ 0xf81f, 0xf1b8, 0xf4e5, 0xfc2c, 0xfe6e, 0xfe73,
+ 0xfd65, 0xfd82, 0xfec4, 0xfb09, 0xf774, 0xf793,
+ 0xf4cd, 0xf249, 0xf2d0, 0xf3cb, 0xf7a0, 0xf994,
+ 0xf6c7, 0xf747, 0xf98c, 0xf861, 0xf590, 0xf334,
+ 0xf587, 0xf918, 0xf770, 0xf854, 0xfb63, 0xf81b,
+ 0xf6a0, 0xf954, 0xf92e, 0xfb63, 0xfdf6, 0xf8c3,
+ 0xf278, 0xef45, 0xede7, 0xf172, 0xf4b7, 0xf355,
+ 0xf3a1, 0xf597, 0xf571, 0xf481, 0xf3cb, 0xf5d3,
+ 0xf87f, 0xf67e, 0xf794, 0xfdb7, 0xfc41, 0xf7de,
+ 0xfaed, 0xfea7, 0xffd2, 0xfdb8, 0xf75a, 0xf792,
+ 0xfc21, 0xfa19, 0xfa79, 0xfe9a, 0xfde3, 0xfd91,
+ 0xfd02, 0xfba5, 0xfdde, 0xf914, 0xf401, 0xfe0d,
+ 0x0285, 0xfa26, 0xf89d, 0xf8cc, 0xf6b9, 0xfaa2,
+ 0xfbaf, 0xf8db, 0xfa3e, 0xfbb0, 0xfc23, 0xfc73,
+ 0xfc67, 0xfd48, 0xf8fd, 0xf4d2, 0xf986, 0xf951,
+ 0xf547, 0xfc3d, 0xffb8, 0xf7e2, 0xf686, 0xfbe4,
+ 0xfd6b, 0xfd08, 0xfc95, 0xfaa7, 0xf9c0, 0xfbef,
+ 0xfb52, 0xf4d7, 0xf3b7, 0xfa02, 0xfa99, 0xf851,
+ 0xfc3a, 0xfe6f, 0xfb5b, 0xf9b6, 0xf8b6, 0xf72b,
+ 0xf8c3, 0xfb6c, 0xfbd2, 0xfc4d, 0xfe1a, 0x00cf,
+ 0x0328, 0xffdd, 0xf8ee, 0xf7a1, 0xf9b4, 0xf9d4,
+ 0xfa90, 0xfac2, 0xfa4e, 0xfb90, 0xfc10, 0xfe7b,
+ 0x0144, 0xfcd4, 0xfafe, 0x000f, 0x008b, 0x023b,
+ 0x06a0, 0x0291, 0x0091, 0x02d9, 0xfb5f, 0xf60a,
+ 0xfa8e, 0xfb6d, 0xfbee, 0xff89, 0xff6a, 0x00ee,
+ 0x031b, 0x0036, 0x00f0, 0x0138, 0xf672, 0xefd2,
+ 0xf7ce, 0xff78, 0xfe9b, 0xfadc, 0xf9c6, 0xfce3,
+ 0xfca9, 0xf668, 0xf6ff, 0xfd97, 0xfa31, 0xf152,
+ 0xefe0, 0xf25e, 0xf5b8, 0xf9dc, 0xf82f, 0xf24a,
+ 0xf1ed, 0xf70f, 0xfa06, 0xf878, 0xf7e0, 0xfae4,
+ 0xfc1d, 0xfa26, 0xf8bf, 0xf67a, 0xf487, 0xf907,
+ 0xfebd, 0xfce7, 0xf94c, 0xf894, 0xf612, 0xf678,
+ 0xfd86, 0x0109, 0xff98, 0xfe92, 0xfa69, 0xf5d5,
+ 0xf5e5, 0xf69a, 0xf888, 0xf9be, 0xf421, 0xee8c,
+ 0xedad, 0xefa8, 0xf760, 0xfd92, 0xfbde, 0xfa00,
+ 0xf76b, 0xf43c, 0xf6a2, 0xf610, 0xf1e7, 0xf574,
+ 0xf8fa, 0xf6af, 0xf7d6, 0xfb05, 0xfb98, 0xfcd3,
+ 0xfe96, 0xfc47, 0xf4b0, 0xf15c, 0xf7e7, 0xfa91,
+ 0xf509, 0xf5e1, 0xfca6, 0xfd13, 0xf8af, 0xf86c,
+ 0xfbb4, 0xfa0c, 0xf5eb, 0xf916, 0xfc57, 0xf6d8,
+ 0xf217, 0xf3bf, 0xf6d2, 0xf900, 0xf8d6, 0xf858,
+ 0xfab6, 0xfa9f, 0xf739, 0xf92e, 0xff52, 0x008d,
+ 0xfca7, 0xf856, 0xf5ba, 0xf6a5, 0xf9cf, 0xfba9,
+ 0xfe1a, 0x019c, 0x00d1, 0xfd23, 0xfb8c, 0xfad3,
+ 0xfbbc, 0xfef4, 0x004a, 0x01a7, 0x05a2, 0x0687,
+ 0x0314, 0xffbd, 0xfc99, 0xf97f, 0xf9a6, 0xfd9e,
+ 0xffdf, 0xfc96, 0xf8b3, 0xf78b, 0xf64c, 0xf652,
+ 0xf8fe, 0xfa88, 0xfa6c, 0xfa8d, 0xfb9a, 0xfca0,
+ 0xf9c9, 0xf67a, 0xf9d9, 0xfe06, 0xfe7a, 0x0074,
+ 0x0001, 0xf9f7, 0xf6e9, 0xf78e, 0xf879, 0xfc4e,
+ 0xffe4, 0x00eb, 0x0325, 0x02cb, 0xff37, 0x00fd,
+ 0x04c0, 0x017e, 0xfc29, 0xfb5f, 0xfc88, 0xfc3c,
+ 0xfa43, 0xf8bb, 0xf94d, 0xf9cd, 0xf899, 0xf6b1,
+ 0xf459, 0xf3ca, 0xf694, 0xf6db, 0xf2a8, 0xf200,
+ 0xf5cc, 0xf74f, 0xf78f, 0xf9a0, 0xfa92, 0xf923,
+ 0xf76c, 0xf680, 0xf778, 0xfac1, 0xfcbd, 0xfb23,
+ 0xfc8f, 0x0379, 0x0497, 0xfeec, 0xff29, 0x0263,
+ 0x007e, 0xff9e, 0xff95, 0xfa9f, 0xf6b7, 0xf745,
+ 0xf85b, 0xf8aa, 0xf7d0, 0xfa8e, 0x035a, 0x0716,
+ 0x02c9, 0xff93, 0xfceb, 0xfa97, 0xfca9, 0xfd2d,
+ 0xfaaf, 0xfb5a, 0xfcc7, 0xfe74, 0x0180, 0xffb7,
+ 0xfde9, 0x027a, 0x0202, 0xfc2d, 0xfdc8, 0x014e,
+ 0xfffb, 0x020a, 0x07f5, 0x09cf, 0x063e, 0x0196,
+ 0x008a, 0x021f, 0x036c, 0x05bf, 0x06c6, 0x0428,
+ 0x0337, 0x0599, 0x082a, 0x0a67, 0x0a9b, 0x08b2,
+ 0x07d8, 0x07b6, 0x06f9, 0x0540, 0x023c, 0x00ca,
+ 0x0227, 0x033c, 0x0382, 0x04b0, 0x05c3, 0x04ce,
+ 0x045f, 0x0814, 0x0b2c, 0x0867, 0x03d6, 0x008d,
+ 0xfe51, 0xff60, 0x02fa, 0x0559, 0x0495, 0x0256,
+ 0x0212, 0x010f, 0xfe77, 0x0133, 0x0582, 0x059b,
+ 0x0687, 0x0410, 0xfd4e, 0xffcf, 0x062a, 0x0468,
+ 0x0338, 0x05f4, 0x05ce, 0x0277, 0xfe15, 0xfcaf,
+ 0xfd73, 0xfba8, 0xfc5e, 0xff77, 0xffbe, 0x0364,
+ 0x0729, 0x0280, 0xffc7, 0x03e0, 0x05cf, 0x0500,
+ 0x04a6, 0x04a9, 0x0344, 0xff99, 0xfe81, 0xff7b,
+ 0xfef8, 0x0256, 0x06bf, 0x0495, 0x01b9, 0xfff8,
+ 0xfbdb, 0xf9bf, 0xf9b8, 0xfa4a, 0xfcf6, 0xfd9f,
+ 0xfd70, 0x0132, 0x040b, 0x0320, 0x0064, 0xfd2b,
+ 0xfe12, 0x0225, 0x03e9, 0x050d, 0x06da, 0x0856,
+ 0x094a, 0x05af, 0xff83, 0xfe4f, 0xffe3, 0x00ee,
+ 0x034d, 0x0460, 0x039d, 0x04e6, 0x0577, 0x0327,
+ 0x0398, 0x06fd, 0x065b, 0x016b, 0xfe3c, 0x0000,
+ 0x0581, 0x09b0, 0x0915, 0x0693, 0x0418, 0x01c1,
+ 0x019b, 0x0296, 0x0562, 0x0c48, 0x0f25, 0x0a9a,
+ 0x084f, 0x07be, 0x046e, 0x041e, 0x06bd, 0x0918,
+ 0x0c16, 0x0b13, 0x074b, 0x0835, 0x089c, 0x0525,
+ 0x056a, 0x0895, 0x08fc, 0x071f, 0x04f9, 0x055a,
+ 0x07be, 0x075f, 0x0564, 0x0465, 0x02ef, 0x0336,
+ 0x0561, 0x0414, 0x0141, 0x002e, 0xfccc, 0xfaf6,
+ 0x0175, 0x068e, 0x02e6, 0x001a, 0x01ef, 0x02f7,
+ 0x0303, 0x027b, 0x0178, 0x01f6, 0x019f, 0xffb6,
+ 0xff93, 0x0046, 0x00e7, 0x025d, 0x030c, 0x0425,
+ 0x06e2, 0x065e, 0x005f, 0xfb94, 0xfea2, 0x03d6,
+ 0x027c, 0x0184, 0x067e, 0x07cb, 0x0511, 0x051e,
+ 0x041c, 0x0202, 0x0193, 0xfdcf, 0xf8d1, 0xf918,
+ 0xfc92, 0xffd5, 0x0155, 0x01a5, 0x0203, 0xffad,
+ 0xfc12, 0xfa47, 0xf78b, 0xf782, 0xfd41, 0x0053,
+ 0xff0b, 0xfcea, 0xf7cf, 0xf41e, 0xf655, 0xf924,
+ 0xfb20, 0xfd88, 0xfd59, 0xfc04, 0xfd59, 0xff4c,
+ 0xfff7, 0x01f3, 0x03e0, 0x01f2, 0x014f, 0x03b5,
+ 0x0038, 0xf9fb, 0xfa3b, 0xfcd2, 0xffb1, 0x027b,
+ 0xff56, 0xfcbd, 0x0016, 0xffed, 0xfd83, 0xff95,
+ 0x010b, 0x006c, 0x004e, 0x001e, 0x012f, 0x01cc,
+ 0x0034, 0xff90, 0xfea1, 0xfc1f, 0xfbb7, 0xfcdc,
+ 0xfdbb, 0x0040, 0x0392, 0x03e6, 0x01e0, 0x0253,
+ 0x04aa, 0x044a, 0x0350, 0x047b, 0x04f6, 0x04e2,
+ 0x06e5, 0x09fb, 0x097a, 0x0356, 0x0013, 0x04c3,
+ 0x076f, 0x04f2, 0x04c0, 0x0685, 0x0775, 0x06f0,
+ 0x03d6, 0x027f, 0x04c3, 0x05e7, 0x062e, 0x0603,
+ 0x02ef, 0x00f3, 0x02d6, 0x03ef, 0x0353, 0x0355,
+ 0x0109, 0xfbcb, 0xf9dd, 0xfbab, 0xfbeb, 0xfbae,
+ 0xfd2b, 0xffa5, 0x02b6, 0x025a, 0xff7c, 0x0120,
+ 0x0297, 0x0005, 0x010d, 0x030a, 0x00be, 0xff9b,
+ 0xfee3, 0xfcd7, 0xfe17, 0x0015, 0x0098, 0x0267,
+ 0x0239, 0xff0f, 0xfd96, 0xfd45, 0xfc7c, 0xfd9a,
+ 0x0031, 0x00c1, 0x0055, 0x0228, 0x03a5, 0x02bb,
+ 0x01e5, 0x00cc, 0x0019, 0x012c, 0x000d, 0xfdd3,
+ 0xfe8a, 0xfebf, 0xfdb8, 0xfdc6, 0xfe0e, 0xffa0,
+ 0x008a, 0xff3e, 0x0164, 0x047d, 0x01d4, 0xfe6d,
+ 0xfdd8, 0xfd2b, 0xfd7d, 0xff99, 0x0038, 0xfe72,
+ 0xfe72, 0x0143, 0x0187, 0xff71, 0xfe5a, 0xfd32,
+ 0xff09, 0x02aa, 0x0063, 0xfd17, 0xfcd7, 0xfb08,
+ 0xfc94, 0x00d4, 0xff15, 0xfd2f, 0xfedd, 0xfeab,
+ 0xfef9, 0xff7c, 0xfcf2, 0xfba3, 0xfc31, 0xfbe2,
+ 0xfb2e, 0xfa30, 0xf9d5, 0xf99d, 0xf917, 0xfade,
+ 0xfc43, 0xfacc, 0xfa8e, 0xfb2b, 0xfa44, 0xf90f,
+ 0xf862, 0xfa0e, 0xfbd1, 0xf924, 0xf70b, 0xfa19,
+ 0xfe9b, 0x00c8, 0xfdf9, 0xf9b6, 0xfb0a, 0xfd55,
+ 0xfb16, 0xfa56, 0xfd41, 0xfe15, 0xfb51, 0xf842,
+ 0xf6d2, 0xf642, 0xf604, 0xf6cb, 0xf8b5, 0xfaa5,
+ 0xfb29, 0xfb1a, 0xfbb9, 0xfb94, 0xfbc7, 0xfdf0,
+ 0xfdfe, 0xfbae, 0xfb7c, 0xfbac, 0xfab7, 0xfbfd,
+ 0xfe05, 0xfc8e, 0xf94e, 0xf7a8, 0xf706, 0xf798,
+ 0xfa5d, 0xfb9a, 0xfa6d, 0xfa92, 0xf97c, 0xf69f,
+ 0xf811, 0xfbd6, 0xfd48, 0xfd23, 0xfb6d, 0xfaf6,
+ 0xfc60, 0xfac1, 0xf9e4, 0xfd9a, 0xffcf, 0xffa6,
+ 0x0051, 0x01c9, 0x0308, 0x0102, 0xfef3, 0x02b1,
+ 0x0615, 0x040e, 0x000e, 0xfca9, 0xfcce, 0xfe2f,
+ 0xfc49, 0xfc5a, 0xff3e, 0xff3b, 0xfe4d, 0xff4a,
+ 0x0237, 0x042a, 0xfffc, 0xfbd7, 0xfd1d, 0xfcd4,
+ 0xfc5b, 0xff0e, 0xff7f, 0xffe8, 0x0219, 0x015a,
+ 0x0019, 0xffca, 0xffa2, 0x01a6, 0x00bf, 0xfc5e,
+ 0xfcf8, 0xfef7, 0xfc3d, 0xfad3, 0xfe52, 0x0314,
+ 0x051e, 0x02e7, 0xff77, 0xfdee, 0xfe7f, 0x006b,
+ 0x013c, 0xffdc, 0xfecc, 0xfef3, 0xff18, 0xff84,
+ 0xfff9, 0xfe59, 0xfc51, 0xfd97, 0xfec0, 0xfc69,
+ 0xfb16, 0xfbad, 0xfb2d, 0xfbfa, 0xfed3, 0x00ac,
+ 0x00fb, 0xffc3, 0xfdc8, 0xfd36, 0xfe19, 0xff22,
+ 0xfeb0, 0xfcd5, 0xfcb0, 0xff1a, 0x0163, 0x00ce,
+ 0xfe4b, 0xfee5, 0x0155, 0xff92, 0xfd5a, 0xfeea,
+ 0xff97, 0xff42, 0x00d2, 0x01ae, 0x017c, 0x0265,
+ 0x0366, 0x03b9, 0x0392, 0x01bb, 0xfe97, 0xfdc7,
+ 0x0062, 0x0210, 0x004c, 0xfda2, 0xfc78, 0xfc7d,
+ 0xfbe8, 0xfb49, 0xfce7, 0xff64, 0x0130, 0x0238,
+ 0x00db, 0xff6e, 0x0032, 0xff93, 0xfead, 0x002c,
+ 0x0163, 0x0323, 0x0526, 0x041b, 0x0311, 0x0312,
+ 0x02da, 0x050f, 0x0617, 0x046d, 0x0723, 0x0b48,
+ 0x0a69, 0x07ee, 0x0689, 0x0719, 0x08e7, 0x076c,
+ 0x0574, 0x0846, 0x0bb9, 0x0b82, 0x0913, 0x070b,
+ 0x0614, 0x046d, 0x036a, 0x05b8, 0x0879, 0x08bc,
+ 0x06fd, 0x043a, 0x02fd, 0x045b, 0x0523, 0x02f1,
+ 0x0018, 0x0021, 0x0162, 0x00d0, 0x0118, 0x0377,
+ 0x03da, 0x01ac, 0x007f, 0x0151, 0x011c, 0xfed8,
+ 0xfe4c, 0xff0c, 0xfd06, 0xfb46, 0xfcb6, 0xfd74,
+ 0xfcb4, 0xfd2a, 0xfea3, 0xff95, 0xffa4, 0x003e,
+ 0x0208, 0x0249, 0xff28, 0xfc29, 0xfdb9, 0x00be,
+ 0x0067, 0x0005, 0x00a8, 0xfe8c, 0xfd06, 0xfe0c,
+ 0xfed2, 0x00a5, 0xffca, 0xf9fc, 0xf96f, 0xfe1e,
+ 0xff01, 0xffb2, 0x02eb, 0x03d7, 0x0272, 0x0058,
+ 0xfe88, 0xfdd4, 0xfcd5, 0xfc95, 0xfdda, 0xfe30,
+ 0xfddf, 0xff78, 0x0414, 0x0802, 0x0661, 0x0306,
+ 0x01ed, 0x00ae, 0x00b4, 0x01fc, 0x0145, 0x0176,
+ 0x027f, 0x016e, 0x0135, 0x0184, 0x00f9, 0x0217,
+ 0x0262, 0x00df, 0x01da, 0x0360, 0x0102, 0xfcfe,
+ 0xfc7b, 0xff08, 0xff5d, 0xfea9, 0x00ba, 0x02c4,
+ 0x02e6, 0x00e1, 0xfd2b, 0xfcdd, 0xff30, 0xff8c,
+ 0x0044, 0x01b1, 0x02ee, 0x03ee, 0x0029, 0xfbe4,
+ 0xfddf, 0xff3b, 0xfe33, 0xffca, 0x01f3, 0x03d3,
+ 0x0316, 0xfe99, 0xfe3a, 0xfff1, 0xfe12, 0xfe9c,
+ 0xff53, 0xfc60, 0xfd41, 0x0037, 0xffe6, 0xff0c,
+ 0xfd33, 0xfb97, 0xfd1e, 0xfec7, 0x003b, 0x00e9,
+ 0xfe76, 0xfceb, 0xfd95, 0xfde7, 0xfe5a, 0xfcb9,
+ 0xf956, 0xf8b5, 0xf951, 0xf965, 0xf9cb, 0xf9f5,
+ 0xfbed, 0xfea7, 0xfda5, 0xfb09, 0xf8b7, 0xf65a,
+ 0xf7d6, 0xfbe0, 0xfce2, 0xfbc5, 0xf9f0, 0xf750,
+ 0xf71d, 0xf97e, 0xfb3c, 0xfc98, 0xfdad, 0xfc94,
+ 0xfb33, 0xfc1f, 0xfd0a, 0xfc4b, 0xfb4e, 0xfa3c,
+ 0xf9fd, 0xfba6, 0xfcde, 0xfdc2, 0x0047, 0x00b7,
+ 0xfd27, 0xfa52, 0xf9f0, 0xfa79, 0xfc10, 0xfd24,
+ 0xfc5c, 0xfbff, 0xfc58, 0xfc14, 0xfceb, 0xfe17,
+ 0xfcd4, 0xfc27, 0xfdbf, 0xfe37, 0xfeed, 0x012f,
+ 0x014b, 0x00de, 0x022e, 0x0195, 0x000c, 0x0070,
+ 0xfff1, 0xfe58, 0xfecd, 0x0128, 0x029e, 0x0100,
+ 0xff42, 0x0102, 0x02b7, 0x01d5, 0x0106, 0x0135,
+ 0x0337, 0x060d, 0x0507, 0x018e, 0x0014, 0xfff8,
+ 0x0101, 0x01cb, 0xff1b, 0xfcba, 0xfdd3, 0xfe40,
+ 0xfe20, 0x00d0, 0x03d0, 0x043c, 0x03af, 0x0445,
+ 0x04df, 0x0342, 0x017f, 0x022f, 0x02c7, 0x01c8,
+ 0x0127, 0x018e, 0x0265, 0x01a1, 0xfe7d, 0xfca3,
+ 0xfd0f, 0xfdda, 0xffd4, 0x00c8, 0xfe3c, 0xfc7a,
+ 0xfd15, 0xfd2e, 0xfd52, 0xfdf3, 0xfe15, 0xfded,
+ 0xfdbf, 0xfe9a, 0xffd5, 0xffae, 0x0032, 0x014c,
+ 0x0099, 0xffd4, 0xfeb5, 0xfc1b, 0xfad0, 0xfaa9,
+ 0xfb45, 0xfd72, 0xfd4d, 0xfb61, 0xfb4f, 0xf9e1,
+ 0xf79d, 0xf84d, 0xf957, 0xf9fc, 0xfafc, 0xfab5,
+ 0xfb25, 0xfca9, 0xfd33, 0xfe0c, 0xfdb2, 0xfb58,
+ 0xfafd, 0xfbe0, 0xfc79, 0xfef4, 0x0103, 0xffd7,
+ 0xfd34, 0xfac2, 0xf953, 0xf90f, 0xf973, 0xfa47,
+ 0xfafc, 0xfba9, 0xfbfe, 0xfbad, 0xfc2a, 0xfbee,
+ 0xf9da, 0xf973, 0xf9be, 0xf928, 0xfaf2, 0xfc8a,
+ 0xfb41, 0xfa86, 0xf94b, 0xf763, 0xf858, 0xf986,
+ 0xf99f, 0xface, 0xfb09, 0xfa8e, 0xfb01, 0xfb59,
+ 0xfcc6, 0xfdb3, 0xfbbc, 0xfb36, 0xfc63, 0xfb78,
+ 0xfb46, 0xfdbb, 0x0035, 0x016f, 0x00ee, 0xff93,
+ 0xfe2b, 0xfc87, 0xfccf, 0xfe4f, 0xfdd1, 0xfdb7,
+ 0xfefe, 0xff46, 0x0127, 0x0435, 0x039f, 0x01bc,
+ 0x00e6, 0xfe89, 0xfc9f, 0xfd36, 0xfdfe, 0xff65,
+ 0x0114, 0x0033, 0xfe94, 0xfe74, 0xfeaf, 0xfee3,
+ 0xfe05, 0xfc47, 0xfc50, 0xfbc7, 0xf88e, 0xf730,
+ 0xf854, 0xf91a, 0xfb5c, 0xfec6, 0xffb5, 0xfebc,
+ 0xfda1, 0xfcae, 0xfc9c, 0xfce1, 0xfc42, 0xfb4e,
+ 0xfac1, 0xfa10, 0xf985, 0xfa85, 0xfbe2, 0xfc00,
+ 0xfd2c, 0xff92, 0xffc6, 0xfe91, 0xfe70, 0xff13,
+ 0xffe8, 0xffc7, 0xfec2, 0xfeda, 0xfec0, 0xfd36,
+ 0xfc4a, 0xfc2a, 0xfc3f, 0xfc5d, 0xfb49, 0xfa78,
+ 0xfb1b, 0xfaca, 0xfa0d, 0xfb36, 0xfd26, 0xfe2b,
+ 0xfe05, 0xfd6a, 0xfc85, 0xfae5, 0xfb08, 0xfdcf,
+ 0xfef7, 0xfe50, 0xfe57, 0xfcde, 0xfa82, 0xfadc,
+ 0xfbd1, 0xfb1e, 0xfb4c, 0xfcf6, 0xfddc, 0xfdff,
+ 0xfe62, 0xfd82, 0xfb7b, 0xfbfb, 0xfdfb, 0xfd16,
+ 0xfb55, 0xfb54, 0xfaf1, 0xfa6e, 0xfa17, 0xf82b,
+ 0xf7d2, 0xfaf3, 0xfcb6, 0xfc08, 0xfbe3, 0xfbde,
+ 0xfb81, 0xfbb0, 0xfc90, 0xfe97, 0x0108, 0x02c8,
+ 0x03f6, 0x0368, 0x0207, 0x02b5, 0x02f2, 0x0192,
+ 0x0315, 0x05ba, 0x04d5, 0x0353, 0x037a, 0x0312,
+ 0x0259, 0x02a0, 0x03a9, 0x0540, 0x06c7, 0x06c9,
+ 0x04e4, 0x03d4, 0x0531, 0x052b, 0x029a, 0x020e,
+ 0x03a7, 0x0397, 0x01ed, 0x0076, 0xff54, 0xfe27,
+ 0xfdb1, 0xfeb4, 0xffe3, 0x00f3, 0x02ec, 0x03e9,
+ 0x02a9, 0x0106, 0x001a, 0x003f, 0x0078, 0x0000,
+ 0x00c9, 0x0140, 0xff18, 0xfe0a, 0xfe0d, 0xfc72,
+ 0xfcf9, 0xff32, 0xfe21, 0xfbfb, 0xfb89, 0xfbb7,
+ 0xfc64, 0xfca4, 0xfc6e, 0xfd00, 0xfcd7, 0xfc2c,
+ 0xfd6e, 0xfed9, 0xfdc1, 0xfc1c, 0xfcbd, 0xfe21,
+ 0xfe4e, 0xff55, 0x00bc, 0xff79, 0xfe22, 0xfeea,
+ 0xff67, 0xff54, 0xfe56, 0xfbf5, 0xfac5, 0xf9fc,
+ 0xf84c, 0xf8b3, 0xfa5b, 0xfa35, 0xf941, 0xf883,
+ 0xf807, 0xf7cd, 0xf7e4, 0xf98a, 0xfb6d, 0xfbc8,
+ 0xfcd0, 0xfe47, 0xfe2d, 0xfdfc, 0xfd9c, 0xfc8a,
+ 0xfd29, 0xfe3a, 0xfcb2, 0xfa52, 0xf968, 0xf9ca,
+ 0xfb94, 0xfd8b, 0xfcf4, 0xfb42, 0xfb8e, 0xfb9d,
+ 0xfa3f, 0xfa78, 0xfb19, 0xfa84, 0xfaa2, 0xfa44,
+ 0xf9ad, 0xfb9e, 0xfcfd, 0xfcb2, 0xfe4a, 0xfefe,
+ 0xfbca, 0xf8e2, 0xf990, 0xfc06, 0xfcec, 0xfc37,
+ 0xfcbe, 0xfe95, 0x001c, 0x0025, 0xfe7a, 0xfe8d,
+ 0x0148, 0x02d1, 0x031d, 0x02c3, 0x0065, 0xfe3f,
+ 0xfd42, 0xfcfc, 0xff58, 0x0159, 0xff78, 0xfd51,
+ 0xfcc3, 0xfc8c, 0xfda6, 0xffc7, 0x0169, 0x024f,
+ 0x0243, 0x018f, 0x0147, 0x01da, 0x019c, 0xff8a,
+ 0xfea6, 0xfffd, 0x010a, 0x01df, 0x0205, 0x0078,
+ 0xffc2, 0xff83, 0xfdf4, 0xfdc7, 0xfef5, 0xff0e,
+ 0xfefb, 0xff3e, 0xffb3, 0x000d, 0xfe8e, 0xfc7c,
+ 0xfc73, 0xfd92, 0xfe39, 0xfda7, 0xfc83, 0xfc18,
+ 0xfb56, 0xf9cb, 0xf907, 0xf93f, 0xfa06, 0xfa66,
+ 0xf9ac, 0xf9a1, 0xfaba, 0xfb86, 0xfc01, 0xfbd0,
+ 0xfadf, 0xfaaf, 0xfc2e, 0xfe6a, 0xfe5f, 0xfc27,
+ 0xfbe2, 0xfc73, 0xfba2, 0xfc66, 0xfd02, 0xfa4b,
+ 0xf88e, 0xf994, 0xfaa9, 0xfb87, 0xfbcb, 0xfb9c,
+ 0xfbd3, 0xfad6, 0xf978, 0xfa8d, 0xfd33, 0xffc6,
+ 0x0151, 0x00d6, 0xffe3, 0xffd9, 0xffb3, 0xff85,
+ 0x0048, 0x01c8, 0x033d, 0x039b, 0x0249, 0x00c0,
+ 0x0135, 0x0368, 0x04fa, 0x04ca, 0x0436, 0x04e3,
+ 0x059b, 0x043d, 0x02af, 0x031e, 0x0340, 0x022d,
+ 0x0207, 0x0283, 0x02ac, 0x0396, 0x0516, 0x053e,
+ 0x040b, 0x03b5, 0x044c, 0x043c, 0x043f, 0x0418,
+ 0x02bc, 0x02bd, 0x044f, 0x044e, 0x0431, 0x05f4,
+ 0x076c, 0x0704, 0x0569, 0x04b0, 0x04e7, 0x03f7,
+ 0x03f9, 0x066a, 0x07b5, 0x07ca, 0x0843, 0x0830,
+ 0x0884, 0x085a, 0x06b3, 0x074f, 0x08ea, 0x079e,
+ 0x0639, 0x0576, 0x037a, 0x0280, 0x02fb, 0x03b5,
+ 0x04d8, 0x04ff, 0x0474, 0x0501, 0x0539, 0x0433,
+ 0x034d, 0x0338, 0x03a2, 0x0360, 0x0249, 0x01a9,
+ 0x01e2, 0x02c8, 0x03b1, 0x03d8, 0x0419, 0x0482,
+ 0x044a, 0x03f6, 0x036d, 0x02b8, 0x024a, 0x00d8,
+ 0xfeed, 0xfecb, 0xffaf, 0x005c, 0x0109, 0x0149,
+ 0x0103, 0x0035, 0xfe85, 0xfd04, 0xfd7a, 0xffb1,
+ 0x013a, 0x0195, 0x02b8, 0x0329, 0x00b3, 0xfe2e,
+ 0xfd8a, 0xfdc5, 0xfee1, 0xff75, 0xfe69, 0xfd83,
+ 0xfcb8, 0xfb9e, 0xfbcf, 0xfce8, 0xfdb5, 0xfe4f,
+ 0xfe52, 0xfdd9, 0xfdd3, 0xfe58, 0xfe48, 0xfce3,
+ 0xfc50, 0xfe01, 0xff55, 0xff70, 0xfff4, 0x0028,
+ 0xffb2, 0xffb6, 0x0048, 0x012d, 0x0196, 0x00ab,
+ 0xff91, 0xff4f, 0xff9b, 0xffd0, 0xff43, 0xfe5d,
+ 0xfe0f, 0xfed6, 0x0061, 0x00b1, 0xff81, 0xff2e,
+ 0xff1a, 0xfda0, 0xfc71, 0xfced, 0xfea9, 0x003f,
+ 0x0019, 0xff3e, 0xfedd, 0xfeac, 0xff6c, 0x0037,
+ 0xffcf, 0x0027, 0x00cf, 0x004c, 0x0101, 0x02a7,
+ 0x028b, 0x0180, 0x00bb, 0x00cb, 0x021a, 0x0326,
+ 0x03a5, 0x0440, 0x0438, 0x0431, 0x04c2, 0x0501,
+ 0x053c, 0x0568, 0x055d, 0x05d4, 0x056f, 0x03c9,
+ 0x0339, 0x03b5, 0x03f2, 0x03d7, 0x0301, 0x0269,
+ 0x034a, 0x0488, 0x04e0, 0x0405, 0x026b, 0x0107,
+ 0xfff7, 0xffc5, 0x008c, 0x002c, 0xfe44, 0xfccb,
+ 0xfc6b, 0xfced, 0xfd9c, 0xfde1, 0xfe15, 0xfd9f,
+ 0xfcb5, 0xfcf2, 0xfd65, 0xfd05, 0xfc9f, 0xfb92,
+ 0xfa0d, 0xf99f, 0xf9fe, 0xfaa9, 0xfac3, 0xf932,
+ 0xf805, 0xf871, 0xf8c7, 0xf975, 0xfb09, 0xfc21,
+ 0xfcfd, 0xfdb8, 0xfd66, 0xfd11, 0xfd68, 0xfda8,
+ 0xfe6c, 0xffb9, 0x000d, 0xffe9, 0x0040, 0xffbb,
+ 0xfe4e, 0xfe38, 0xff22, 0xff47, 0xff89, 0x009c,
+ 0x013b, 0x00df, 0xff9c, 0xfde7, 0xfd13, 0xfcdc,
+ 0xfc5f, 0xfd0d, 0xff2c, 0x0065, 0x00bb, 0x01b5,
+ 0x022d, 0x0140, 0x0074, 0xffea, 0xfeb8, 0xfdd6,
+ 0xfdde, 0xfde9, 0xfdc6, 0xfd92, 0xfc99, 0xfae9,
+ 0xf9f7, 0xfa3e, 0xfacd, 0xfb97, 0xfc73, 0xfc50,
+ 0xfc13, 0xfc87, 0xfc92, 0xfd2c, 0xfe4c, 0xfd67,
+ 0xfc72, 0xfd9a, 0xfe3a, 0xfe70, 0xff7b, 0xff7e,
+ 0xff51, 0xffd9, 0xff33, 0xfe70, 0xfe90, 0xfe30,
+ 0xfec6, 0x0145, 0x02c7, 0x01e1, 0x009b, 0x00b9,
+ 0x015b, 0x0180, 0x01b9, 0x0199, 0x014d, 0x01c7,
+ 0x0126, 0xff9b, 0x0014, 0x0113, 0x00ec, 0x00b1,
+ 0xffb2, 0xfed4, 0xff6b, 0xff4e, 0xff07, 0xfffc,
+ 0x003e, 0x009a, 0x01b5, 0x00c5, 0xfef0, 0xfeb7,
+ 0xfea7, 0xfe02, 0xfd76, 0xfd24, 0xfd9b, 0xfe65,
+ 0xfe71, 0xfe79, 0xff4e, 0x0037, 0x0070, 0x0065,
+ 0x00d1, 0x01de, 0x032c, 0x037b, 0x0277, 0x01ff,
+ 0x02b0, 0x0399, 0x0488, 0x045c, 0x0317, 0x0399,
+ 0x0584, 0x05e6, 0x0556, 0x054f, 0x0564, 0x055c,
+ 0x0563, 0x05a6, 0x05e3, 0x0598, 0x057e, 0x05c2,
+ 0x0563, 0x050a, 0x0551, 0x04f1, 0x03da, 0x0316,
+ 0x02c9, 0x02b2, 0x0224, 0x012a, 0x017f, 0x02fb,
+ 0x0361, 0x02bc, 0x01e2, 0x0035, 0xfeab, 0xfeab,
+ 0xfefe, 0xfeb7, 0xfe73, 0xfe8e, 0xffa2, 0x0187,
+ 0x02a9, 0x02b5, 0x024c, 0x015c, 0x0031, 0xff83,
+ 0xff96, 0x004c, 0x0132, 0x016e, 0xffd0, 0xfd31,
+ 0xfd00, 0xff28, 0x001c, 0xffe3, 0xffc1, 0xfeb8,
+ 0xfdbf, 0xfe7a, 0xff7d, 0xff84, 0xfea6, 0xfcdf,
+ 0xfb0c, 0xfa5c, 0xfb28, 0xfcdb, 0xfd81, 0xfbf7,
+ 0xfa04, 0xf96a, 0xf9a5, 0xf9d3, 0xfa1c, 0xfafe,
+ 0xfc0f, 0xfc60, 0xfc66, 0xfd28, 0xfdd5, 0xfd93,
+ 0xfd98, 0xfe74, 0xfec7, 0xfe37, 0xfe2d, 0xff45,
+ 0x0024, 0xffbf, 0xff49, 0xffe4, 0x00b1, 0x00f8,
+ 0x00e8, 0x0103, 0x01d0, 0x026a, 0x0223, 0x0279,
+ 0x0342, 0x0301, 0x032b, 0x049b, 0x054f, 0x04ca,
+ 0x0415, 0x03ba, 0x03f1, 0x03c3, 0x02af, 0x0255,
+ 0x03a1, 0x0570, 0x063e, 0x05c1, 0x057c, 0x0602,
+ 0x05d8, 0x04be, 0x03b8, 0x0314, 0x0304, 0x0348,
+ 0x035c, 0x03a5, 0x041f, 0x03fc, 0x035c, 0x032a,
+ 0x03d8, 0x04af, 0x04a9, 0x044f, 0x048b, 0x04a8,
+ 0x03fb, 0x033b, 0x02e7, 0x02fe, 0x0404, 0x05f2,
+ 0x072e, 0x0709, 0x06d8, 0x06ec, 0x065d, 0x057f,
+ 0x04e9, 0x0466, 0x03a8, 0x0247, 0x00da, 0x00e2,
+ 0x01bd, 0x01b1, 0x011e, 0x006d, 0xfeca, 0xfd24,
+ 0xfd49, 0xfe57, 0xfeed, 0xff72, 0xff77, 0xfe85,
+ 0xfeba, 0x00b0, 0x01c8, 0x0154, 0x00b3, 0x001f,
+ 0xffcd, 0x0018, 0x0061, 0x001b, 0xfef2, 0xfd33,
+ 0xfce3, 0xfe9d, 0xffe4, 0xff45, 0xfe02, 0xfd4d,
+ 0xfd75, 0xfe46, 0xfefc, 0xff3f, 0xff49, 0xff0c,
+ 0xfeb5, 0xfecb, 0xff22, 0xff7d, 0x0038, 0x00ee,
+ 0x0092, 0xff7f, 0xfefd, 0xff57, 0x0015, 0x00ae,
+ 0x0019, 0xfe8a, 0xfe46, 0xffd0, 0x0146, 0x0245,
+ 0x0303, 0x02f2, 0x025e, 0x013c, 0xffd6, 0x004f,
+ 0x021a, 0x025e, 0x018d, 0x0145, 0x01e5, 0x0381,
+ 0x04cf, 0x052b, 0x057b, 0x0523, 0x042e, 0x040d,
+ 0x0481, 0x0560, 0x064a, 0x05ef, 0x05a4, 0x062f,
+ 0x059a, 0x0496, 0x0459, 0x0401, 0x043a, 0x04e5,
+ 0x0466, 0x03c2, 0x03c9, 0x037c, 0x0313, 0x030d,
+ 0x034b, 0x0342, 0x0260, 0x01d2, 0x0279, 0x0345,
+ 0x03ce, 0x040c, 0x03f4, 0x0423, 0x0457, 0x04ad,
+ 0x059e, 0x05dd, 0x0537, 0x0477, 0x031c, 0x028c,
+ 0x03ab, 0x03f7, 0x031f, 0x0271, 0x01c7, 0x0230,
+ 0x03a2, 0x0487, 0x05ba, 0x070a, 0x06c8, 0x062b,
+ 0x060c, 0x05ba, 0x05d1, 0x05ff, 0x055f, 0x047d,
+ 0x0365, 0x025d, 0x0262, 0x031f, 0x0407, 0x044a,
+ 0x027e, 0x0003, 0xff7f, 0x0029, 0x003b, 0xffeb,
+ 0xffc0, 0xffb1, 0xffaa, 0xffb5, 0xffb6, 0xff24,
+ 0xfe5d, 0xfe8a, 0xfefd, 0xfe95, 0xfe55, 0xfea5,
+ 0xfe4a, 0xfd30, 0xfc42, 0xfc63, 0xfd7d, 0xfd94,
+ 0xfca3, 0xfd02, 0xfdec, 0xfddf, 0xfe1a, 0xfe51,
+ 0xfde6, 0xfe5f, 0xfef2, 0xfe09, 0xfcec, 0xfc62,
+ 0xfc13, 0xfc44, 0xfca6, 0xfcd2, 0xfc9c, 0xfc39,
+ 0xfce7, 0xfe56, 0xff0e, 0xff5f, 0xff7d, 0xff74,
+ 0x009b, 0x0233, 0x0287, 0x02bd, 0x0387, 0x034a,
+ 0x01c7, 0x00de, 0x018c, 0x0241, 0x0190, 0x008a,
+ 0x005a, 0x00f6, 0x01ff, 0x029e, 0x02a8, 0x02d2,
+ 0x02dc, 0x02ac, 0x030e, 0x03d0, 0x03f7, 0x034a,
+ 0x02aa, 0x02f1, 0x0390, 0x03c8, 0x03bf, 0x0384,
+ 0x0358, 0x0347, 0x02e7, 0x02e7, 0x035f, 0x02dc,
+ 0x01f4, 0x01d2, 0x014c, 0x007e, 0x010b, 0x024e,
+ 0x02fc, 0x0372, 0x03cf, 0x0366, 0x0244, 0x0107,
+ 0xfff8, 0xff8c, 0x0045, 0x014e, 0x0181, 0x0147,
+ 0x0151, 0x019a, 0x01ea, 0x01ed, 0x01c3, 0x01ee,
+ 0x0208, 0x01ba, 0x01e3, 0x02a6, 0x02af, 0x01e0,
+ 0x01b1, 0x021d, 0x0216, 0x0231, 0x029c, 0x01d8,
+ 0x001a, 0xfec4, 0xfdba, 0xfd15, 0xfd63, 0xfdf0,
+ 0xfe38, 0xfe55, 0xfdb5, 0xfc97, 0xfc6c, 0xfd4b,
+ 0xfde0, 0xfd9f, 0xfd3f, 0xfd99, 0xfe80, 0xfeea,
+ 0xfea6, 0xfec2, 0xff98, 0x0059, 0x0076, 0xfff2,
+ 0xff6d, 0xff9e, 0xffd1, 0xff63, 0xff76, 0x0011,
+ 0xffc5, 0xff1b, 0xff54, 0xffe3, 0x0050, 0x00d7,
+ 0x0123, 0x015f, 0x023b, 0x031b, 0x0307, 0x0287,
+ 0x0286, 0x02b7, 0x0294, 0x0298, 0x032f, 0x03b2,
+ 0x036f, 0x02dc, 0x02c3, 0x02c9, 0x0223, 0x01a8,
+ 0x02b0, 0x0425, 0x044d, 0x0414, 0x0474, 0x0401,
+ 0x0298, 0x022c, 0x02bd, 0x02fa, 0x02f3, 0x02f1,
+ 0x02e1, 0x02f1, 0x02bb, 0x0222, 0x0220, 0x02f3,
+ 0x03e0, 0x04a0, 0x0525, 0x055e, 0x0567, 0x0505,
+ 0x0432, 0x03c9, 0x043f, 0x04b8, 0x0499, 0x0492,
+ 0x04e6, 0x04eb, 0x04ca, 0x04f5, 0x04ca, 0x0442,
+ 0x042f, 0x043a, 0x040b, 0x0494, 0x05bb, 0x0613,
+ 0x0577, 0x04a1, 0x03da, 0x03c5, 0x0489, 0x04c4,
+ 0x0424, 0x040a, 0x0440, 0x03be, 0x0374, 0x03cb,
+ 0x0339, 0x01d2, 0x012b, 0x011d, 0x00f5, 0x0111,
+ 0x0182, 0x01c8, 0x0181, 0x006f, 0xff0b, 0xfe41,
+ 0xfe1a, 0xfe18, 0xfe55, 0xfef0, 0xff6d, 0xff62,
+ 0xfedd, 0xfdf8, 0xfd30, 0xfd37, 0xfd8a, 0xfd56,
+ 0xfd0d, 0xfce9, 0xfc93, 0xfc6a, 0xfc67, 0xfc25,
+ 0xfc15, 0xfc11, 0xfbc4, 0xfbc7, 0xfbd6, 0xfb9b,
+ 0xfbbe, 0xfb8a, 0xfa86, 0xfa45, 0xfade, 0xfb65,
+ 0xfcb1, 0xfeb6, 0xffa9, 0xfeef, 0xfd91, 0xfce9,
+ 0xfd20, 0xfd31, 0xfd00, 0xfd1a, 0xfd1c, 0xfcb3,
+ 0xfc3f, 0xfc16, 0xfc20, 0xfbd5, 0xfb45, 0xfb19,
+ 0xfb27, 0xfb16, 0xfb20, 0xfb15, 0xfaa9, 0xfa35,
+ 0xfa1a, 0xfa5a, 0xfa80, 0xfa1c, 0xf9a8, 0xf9ac,
+ 0xf9b1, 0xf97e, 0xf9e0, 0xfb37, 0xfca3, 0xfd46,
+ 0xfd57, 0xfd69, 0xfd60, 0xfcc9, 0xfc0f, 0xfc0b,
+ 0xfc6f, 0xfc79, 0xfc98, 0xfd56, 0xfdec, 0xfd8d,
+ 0xfd0e, 0xfda1, 0xfe79, 0xfe54, 0xfe44, 0xff2d,
+ 0xffe8, 0x000a, 0x000d, 0xffd3, 0xff69, 0xfed9,
+ 0xfe54, 0xfebc, 0xffbc, 0x0034, 0x001b, 0xff7b,
+ 0xfea3, 0xfe4a, 0xfe47, 0xfe7c, 0xfeca, 0xfe7b,
+ 0xfe11, 0xfe0c, 0xfddb, 0xfe25, 0xff1a, 0xff84,
+ 0xffd5, 0x0067, 0x002d, 0xffb3, 0xffbe, 0xff9a,
+ 0xff6a, 0xff9f, 0xff96, 0xff3a, 0xff67, 0x0035,
+ 0x00b2, 0x0094, 0x0084, 0x0096, 0x00c5, 0x012b,
+ 0x0125, 0x0123, 0x025d, 0x03da, 0x0425, 0x0375,
+ 0x025b, 0x018b, 0x0167, 0x0150, 0x00fb, 0x00ab,
+ 0x008e, 0x00d8, 0x0169, 0x01e1, 0x01cd, 0x011b,
+ 0x00d9, 0x016e, 0x01e2, 0x021b, 0x023e, 0x01e1,
+ 0x01a4, 0x01da, 0x01ae, 0x014e, 0x0198, 0x0295,
+ 0x0364, 0x0347, 0x0311, 0x0346, 0x02d4, 0x01f7,
+ 0x01ac, 0x0170, 0x010e, 0x00d0, 0x005a, 0xffc7,
+ 0xff5b, 0xfefe, 0xfeef, 0xff61, 0x0029, 0x00b0,
+ 0x0061, 0x0004, 0x002e, 0x002d, 0xffff, 0xffd1,
+ 0xff7a, 0xffbe, 0x007a, 0x007b, 0x0038, 0x005d,
+ 0x0074, 0x0068, 0x002a, 0xffe8, 0x002a, 0x006f,
+ 0x006d, 0x00f1, 0x01bd, 0x0222, 0x0250, 0x024e,
+ 0x0228, 0x0229, 0x023e, 0x0275, 0x02c2, 0x02b5,
+ 0x0277, 0x0268, 0x0238, 0x019e, 0x00fb, 0x0103,
+ 0x01ac, 0x0205, 0x01e9, 0x0204, 0x0202, 0x0155,
+ 0x0095, 0x008a, 0x0107, 0x015c, 0x0142, 0x0110,
+ 0x00df, 0x006f, 0x0012, 0x004c, 0x00ae, 0x0066,
+ 0xffc4, 0xffc8, 0x0072, 0x010f, 0x016b, 0x016c,
+ 0x010a, 0x00c6, 0x00e8, 0x014c, 0x01c0, 0x01e0,
+ 0x01be, 0x01d3, 0x01f7, 0x0228, 0x029d, 0x028b,
+ 0x01cb, 0x0188, 0x01a5, 0x013a, 0x00d7, 0x0111,
+ 0x017b, 0x0202, 0x0298, 0x02a7, 0x0264, 0x02ac,
+ 0x0353, 0x0389, 0x0348, 0x0302, 0x02b9, 0x0235,
+ 0x01ac, 0x019f, 0x01c4, 0x0155, 0x0093, 0x001a,
+ 0xffa4, 0xff26, 0xfee3, 0xfe91, 0xfe6c, 0xfecc,
+ 0xfedf, 0xfe56, 0xfdf2, 0xfdc2, 0xfd75, 0xfd35,
+ 0xfd31, 0xfd85, 0xfdee, 0xfdc3, 0xfd1f, 0xfca7,
+ 0xfc8f, 0xfcd5, 0xfd4a, 0xfd8e, 0xfd7d, 0xfd19,
+ 0xfca1, 0xfc48, 0xfb9e, 0xfaa1, 0xfa46, 0xfab8,
+ 0xfb3e, 0xfbc3, 0xfc4e, 0xfc60, 0xfc08, 0xfbf2,
+ 0xfc35, 0xfc2d, 0xfba8, 0xfb42, 0xfb4a, 0xfb7d,
+ 0xfbbb, 0xfc09, 0xfc88, 0xfd7d, 0xfe68, 0xfe84,
+ 0xfe4b, 0xfe78, 0xfedf, 0xff40, 0xff85, 0xffa8,
+ 0x000a, 0x007e, 0x003a, 0xff8c, 0xff3a, 0xff04,
+ 0xfeb4, 0xfec4, 0xff3a, 0xffa8, 0xffe6, 0xfffb,
+ 0xffec, 0xffe6, 0x0001, 0x0000, 0xfff0, 0x0009,
+ 0xffcc, 0xff0b, 0xfed1, 0xff55, 0xffad, 0xffcf,
+ 0xffe8, 0xffc3, 0xffa7, 0xff88, 0xff2b, 0xff1a,
+ 0xff4d, 0xff62, 0xffbc, 0x0002, 0xff9f, 0xff4e,
+ 0xff50, 0xff14, 0xff07, 0xff9b, 0x004e, 0x00aa,
+ 0x00dc, 0x013e, 0x0186, 0x0175, 0x01b0, 0x021d,
+ 0x0205, 0x01c8, 0x01b4, 0x01a6, 0x01ec, 0x0209,
+ 0x0165, 0x00c5, 0x0073, 0x0009, 0xffdf, 0x000f,
+ 0x003b, 0x0057, 0x0046, 0xfff4, 0xffbc, 0xffd0,
+ 0xffa6, 0xfeb6, 0xfda2, 0xfd5f, 0xfda3, 0xfdf0,
+ 0xfe46, 0xfe4a, 0xfdf2, 0xfdaf, 0xfd7f, 0xfd5b,
+ 0xfd40, 0xfd09, 0xfd3c, 0xfdd9, 0xfdc1, 0xfd0e,
+ 0xfd05, 0xfdcf, 0xfeeb, 0x0020, 0x0106, 0x014c,
+ 0x012e, 0x00c8, 0x0002, 0xfefd, 0xfe05, 0xfdaa,
+ 0xfe0f, 0xfe5a, 0xfe64, 0xfede, 0xff39, 0xfed2,
+ 0xfe85, 0xfea1, 0xfeaf, 0xfec8, 0xfebd, 0xfe81,
+ 0xfebe, 0xff33, 0xff1d, 0xfec9, 0xfecc, 0xfee9,
+ 0xfe73, 0xfd92, 0xfd58, 0xfdcc, 0xfe00, 0xfdaf,
+ 0xfd3a, 0xfd59, 0xfe23, 0xfe89, 0xfeaa, 0xff88,
+ 0x0034, 0xff96, 0xfe7d, 0xfde5, 0xfdea, 0xfe1c,
+ 0xfe35, 0xfe99, 0xfed3, 0xfe11, 0xfd53, 0xfd7c,
+ 0xfdc9, 0xfe26, 0xff05, 0xffcd, 0x0012, 0x0019,
+ 0xffe8, 0xff97, 0xff8d, 0xffdd, 0x0034, 0x0057,
+ 0x004b, 0x002f, 0x0008, 0xffea, 0x0016, 0x00ab,
+ 0x0161, 0x01f6, 0x0251, 0x028e, 0x02da, 0x02ef,
+ 0x029c, 0x0275, 0x02b4, 0x02f9, 0x0344, 0x037e,
+ 0x0367, 0x0332, 0x02da, 0x0292, 0x02e0, 0x031b,
+ 0x02b5, 0x027b, 0x0276, 0x020d, 0x01c7, 0x020d,
+ 0x0266, 0x025f, 0x01ed, 0x016c, 0x012b, 0x013d,
+ 0x01b0, 0x020e, 0x020d, 0x024d, 0x02a8, 0x0216,
+ 0x0100, 0x00b3, 0x014b, 0x01f7, 0x022e, 0x021a,
+ 0x0223, 0x025b, 0x027f, 0x024f, 0x01eb, 0x01bc,
+ 0x01b2, 0x016a, 0x00d7, 0x002c, 0xffbf, 0xffb0,
+ 0xffa2, 0xff91, 0xffcd, 0x0006, 0x000e, 0x0043,
+ 0x0075, 0x0049, 0x0005, 0xffbd, 0xff4b, 0xfefb,
+ 0xfeeb, 0xfe88, 0xfd78, 0xfc67, 0xfc29, 0xfc59,
+ 0xfc3e, 0xfc29, 0xfc60, 0xfc62, 0xfbfb, 0xfb90,
+ 0xfba0, 0xfc58, 0xfd2c, 0xfd63, 0xfcef, 0xfc57,
+ 0xfc21, 0xfc4f, 0xfc9d, 0xfcf6, 0xfd16, 0xfcca,
+ 0xfc86, 0xfc8a, 0xfcb5, 0xfd1c, 0xfda7, 0xfe1c,
+ 0xfe9d, 0xff3b, 0xffde, 0x0070, 0x00e1, 0x0151,
+ 0x0195, 0x0149, 0x00e2, 0x00eb, 0x0129, 0x0180,
+ 0x01e4, 0x0209, 0x021e, 0x0286, 0x0319, 0x037e,
+ 0x03bf, 0x03fc, 0x0411, 0x0403, 0x0406, 0x03f9,
+ 0x03e3, 0x0400, 0x03ed, 0x0382, 0x036f, 0x0401,
+ 0x04bb, 0x04fb, 0x049c, 0x0415, 0x03bd, 0x03ad,
+ 0x03ee, 0x0437, 0x0480, 0x04ef, 0x051b, 0x04fe,
+ 0x051a, 0x054c, 0x0533, 0x04cc, 0x0449, 0x0403,
+ 0x03ec, 0x03e5, 0x043d, 0x04d1, 0x054a, 0x05a3,
+ 0x05a2, 0x057c, 0x0587, 0x0566, 0x0549, 0x05a7,
+ 0x05d4, 0x0583, 0x054d, 0x054b, 0x0555, 0x0557,
+ 0x0529, 0x04e0, 0x0487, 0x0413, 0x03c7, 0x03b2,
+ 0x037c, 0x02f6, 0x0240, 0x0194, 0x0133, 0x012a,
+ 0x0117, 0x00d1, 0x0100, 0x0191, 0x0177, 0x00e7,
+ 0x00f4, 0x016c, 0x01b9, 0x021b, 0x02b7, 0x02d3,
+ 0x0211, 0x015b, 0x0139, 0x0114, 0x010a, 0x0157,
+ 0x0141, 0x00df, 0x00fd, 0x014b, 0x014d, 0x0135,
+ 0x0124, 0x00fc, 0x00bf, 0x00a3, 0x0094, 0x0057,
+ 0x0051, 0x00b3, 0x00c7, 0x0088, 0x00bd, 0x0145,
+ 0x0197, 0x01c2, 0x01d9, 0x01be, 0x01b4, 0x01f5,
+ 0x021c, 0x01f3, 0x01e3, 0x01f7, 0x01da, 0x01a1,
+ 0x01d8, 0x02ed, 0x042e, 0x0476, 0x044f, 0x04a1,
+ 0x04b9, 0x045c, 0x047f, 0x050c, 0x052a, 0x04d4,
+ 0x046a, 0x0433, 0x0481, 0x0534, 0x0592, 0x0577,
+ 0x0591, 0x05dd, 0x05c5, 0x0563, 0x04f1, 0x048e,
+ 0x04a2, 0x0511, 0x0548, 0x053f, 0x0568, 0x05c4,
+ 0x05aa, 0x051c, 0x04ec, 0x04de, 0x0465, 0x0415,
+ 0x0406, 0x03c5, 0x0395, 0x036d, 0x0311, 0x02e5,
+ 0x02fd, 0x0341, 0x0397, 0x0378, 0x033e, 0x03a5,
+ 0x03dd, 0x0340, 0x02bf, 0x02ce, 0x02ff, 0x0357,
+ 0x03c7, 0x03b5, 0x0307, 0x0257, 0x01f4, 0x01ae,
+ 0x016c, 0x016d, 0x01ae, 0x019b, 0x011c, 0x00df,
+ 0x0125, 0x0191, 0x01e0, 0x01ee, 0x01d7, 0x01c1,
+ 0x017a, 0x0107, 0x00b2, 0x0071, 0x0025, 0xffc7,
+ 0xff77, 0xff58, 0xff12, 0xfe9d, 0xfe89, 0xfea6,
+ 0xfe8c, 0xfe98, 0xfedd, 0xff00, 0xff1a, 0xff66,
+ 0xffbb, 0xffc1, 0xff92, 0xffa4, 0xffe1, 0x0001,
+ 0xfff4, 0xff8f, 0xff21, 0xff0e, 0xff08, 0xfee6,
+ 0xfecc, 0xfebb, 0xfed3, 0xfee5, 0xfea7, 0xfe4a,
+ 0xfdd7, 0xfd4d, 0xfce1, 0xfc93, 0xfc95, 0xfcd1,
+ 0xfcd6, 0xfd07, 0xfd73, 0xfd8e, 0xfdb0, 0xfdda,
+ 0xfd98, 0xfd72, 0xfd63, 0xfcfd, 0xfcbf, 0xfcbb,
+ 0xfcb4, 0xfcf0, 0xfd53, 0xfdb2, 0xfde0, 0xfd84,
+ 0xfd2a, 0xfd22, 0xfcfe, 0xfd21, 0xfd95, 0xfda5,
+ 0xfdb5, 0xfdf4, 0xfd84, 0xfc87, 0xfc23, 0xfcb1,
+ 0xfd89, 0xfe2e, 0xfeb3, 0xfeed, 0xfecc, 0xfead,
+ 0xfe7c, 0xfe23, 0xfdeb, 0xfddd, 0xfe12, 0xfe64,
+ 0xfe5c, 0xfe5e, 0xfe9c, 0xfea9, 0xfec8, 0xfef6,
+ 0xfef0, 0xff2d, 0xff7a, 0xff8e, 0xffef, 0x002b,
+ 0xfffb, 0x0031, 0x007e, 0x005c, 0x007a, 0x00bf,
+ 0x00a6, 0x00ae, 0x012b, 0x01a4, 0x01c4, 0x01ed,
+ 0x0260, 0x0290, 0x0277, 0x02b3, 0x0306, 0x0308,
+ 0x02d8, 0x0282, 0x0240, 0x0262, 0x02d0, 0x035c,
+ 0x03cf, 0x0417, 0x046c, 0x0499, 0x047a, 0x0480,
+ 0x04d3, 0x0542, 0x0572, 0x04fb, 0x0457, 0x0454,
+ 0x04b8, 0x0504, 0x052a, 0x0538, 0x053e, 0x050c,
+ 0x0464, 0x03b4, 0x036e, 0x034c, 0x0321, 0x032e,
+ 0x037a, 0x03f0, 0x047a, 0x04bf, 0x04c2, 0x04fc,
+ 0x053b, 0x0511, 0x04d3, 0x0490, 0x040b, 0x03db,
+ 0x0438, 0x0465, 0x0458, 0x0485, 0x049b, 0x0458,
+ 0x0434, 0x0449, 0x0433, 0x0414, 0x043d, 0x0471,
+ 0x0491, 0x049b, 0x0441, 0x0399, 0x0308, 0x0299,
+ 0x024c, 0x0211, 0x01cf, 0x01cc, 0x01fe, 0x0229,
+ 0x0280, 0x02b9, 0x0276, 0x024b, 0x027f, 0x02c6,
+ 0x031a, 0x0367, 0x03b8, 0x041b, 0x041b, 0x03b4,
+ 0x035b, 0x02f9, 0x02b1, 0x02e7, 0x034d, 0x035b,
+ 0x02fb, 0x02ab, 0x02fc, 0x0382, 0x037e, 0x0335,
+ 0x0332, 0x0361, 0x0365, 0x0357, 0x03c7, 0x0495,
+ 0x0521, 0x054c, 0x04f3, 0x0437, 0x03eb, 0x041e,
+ 0x0442, 0x0459, 0x042b, 0x0386, 0x0320, 0x0368,
+ 0x03fe, 0x0477, 0x047a, 0x0401, 0x0384, 0x0344,
+ 0x030f, 0x02c3, 0x028b, 0x0289, 0x0293, 0x0299,
+ 0x02d0, 0x035b, 0x0400, 0x0444, 0x0435, 0x0460,
+ 0x0498, 0x0458, 0x03e6, 0x03a7, 0x039f, 0x03c0,
+ 0x03e5, 0x03f6, 0x0413, 0x0437, 0x0446, 0x0442,
+ 0x043a, 0x0423, 0x03d0, 0x034a, 0x02c7, 0x0248,
+ 0x01ed, 0x01eb, 0x0208, 0x020f, 0x0213, 0x01f9,
+ 0x01ad, 0x0134, 0x008f, 0x0010, 0xfffc, 0x0005,
+ 0xffc7, 0xff2c, 0xfe97, 0xfe70, 0xfea4, 0xfef9,
+ 0xff4f, 0xff67, 0xff2c, 0xfec7, 0xfe67, 0xfe39,
+ 0xfe01, 0xfd6d, 0xfcde, 0xfca3, 0xfc68, 0xfc2d,
+ 0xfc32, 0xfc3b, 0xfc0f, 0xfbd1, 0xfbb9, 0xfbe5,
+ 0xfc2e, 0xfc52, 0xfc5f, 0xfc6a, 0xfc74, 0xfca3,
+ 0xfcce, 0xfcb6, 0xfcb7, 0xfcd5, 0xfc8f, 0xfc3c,
+ 0xfc59, 0xfc57, 0xfbf9, 0xfbe2, 0xfc2f, 0xfc7b,
+ 0xfcbd, 0xfd2e, 0xfdd0, 0xfe2d, 0xfe08, 0xfdd7,
+ 0xfde7, 0xfe0b, 0xfe5e, 0xff07, 0xff9f, 0xffda,
+ 0xffd2, 0xff7e, 0xff02, 0xfeee, 0xff44, 0xff84,
+ 0xff9f, 0xff93, 0xff44, 0xff2f, 0xff9f, 0x0019,
+ 0x006a, 0x0097, 0x0068, 0x000d, 0xffde, 0xffb8,
+ 0xff82, 0xff52, 0xff03, 0xfe74, 0xfde2, 0xfdb6,
+ 0xfe12, 0xfe8f, 0xfebe, 0xfecb, 0xfef7, 0xff11,
+ 0xff0f, 0xff0a, 0xfec4, 0xfe5c, 0xfe5d, 0xfe9e,
+ 0xfead, 0xfea1, 0xfe99, 0xfe7e, 0xfe65, 0xfe9d,
+ 0xff3b, 0xffaf, 0xffa8, 0xff98, 0xff9a, 0xff7e,
+ 0xff69, 0xff6a, 0xffaa, 0x0042, 0x00c9, 0x0133,
+ 0x01b9, 0x020a, 0x022f, 0x0267, 0x028d, 0x02b1,
+ 0x02a5, 0x020c, 0x017d, 0x0189, 0x01e8, 0x0246,
+ 0x027f, 0x029f, 0x02bc, 0x02ac, 0x0255, 0x01b2,
+ 0x00ed, 0x007e, 0x0081, 0x00db, 0x015e, 0x01a7,
+ 0x0204, 0x02ae, 0x02d7, 0x028a, 0x0260, 0x01ee,
+ 0x013d, 0x00f5, 0x010b, 0x0145, 0x0181, 0x01e5,
+ 0x0278, 0x025e, 0x01bd, 0x01b8, 0x01db, 0x0185,
+ 0x0135, 0x00e6, 0x00a3, 0x00cb, 0x0105, 0x0126,
+ 0x0147, 0x0148, 0x013d, 0x010f, 0x00e6, 0x0143,
+ 0x01a9, 0x019d, 0x017b, 0x0155, 0x011a, 0x00b9,
+ 0x000d, 0xff86, 0xff49, 0xfefd, 0xfed8, 0xfeee,
+ 0xff27, 0xffb7, 0x0028, 0x0002, 0xff89, 0xfeec,
+ 0xfe79, 0xfe61, 0xfe23, 0xfdad, 0xfd72, 0xfd7d,
+ 0xfda3, 0xfdd3, 0xfe33, 0xfea2, 0xfeaf, 0xfea8,
+ 0xfef2, 0xff24, 0xff3d, 0xff81, 0xffc5, 0x002f,
+ 0x00c0, 0x00f2, 0x00d7, 0x00e0, 0x0100, 0x00de,
+ 0x0082, 0x0060, 0x0061, 0x0040, 0x0063, 0x00c0,
+ 0x00f2, 0x013c, 0x0184, 0x015c, 0x0113, 0x00f0,
+ 0x0100, 0x0162, 0x01da, 0x0237, 0x027c, 0x02a4,
+ 0x02c2, 0x02b4, 0x0265, 0x021b, 0x01a9, 0x0113,
+ 0x00f0, 0x00f5, 0x00ce, 0x010f, 0x016d, 0x0152,
+ 0x0144, 0x015c, 0x010f, 0x00af, 0x008e, 0x0065,
+ 0x004d, 0x0055, 0x0021, 0xffe0, 0xffc2, 0xff82,
+ 0xff51, 0xff51, 0xfee9, 0xfe35, 0xfdd3, 0xfdbc,
+ 0xfddc, 0xfe1b, 0xfdfd, 0xfd96, 0xfd55, 0xfd44,
+ 0xfd71, 0xfdcd, 0xfe10, 0xfe25, 0xfe37, 0xfe66,
+ 0xfe8e, 0xfe69, 0xfe21, 0xfdee, 0xfdbb, 0xfda0,
+ 0xfdae, 0xfdc2, 0xfdef, 0xfe4c, 0xfed4, 0xff63,
+ 0xff94, 0xff3c, 0xfe9a, 0xfe1f, 0xfe27, 0xfe55,
+ 0xfe2a, 0xfe05, 0xfe33, 0xfe64, 0xfea5, 0xff0f,
+ 0xff3f, 0xfeee, 0xfe52, 0xfde1, 0xfdd9, 0xfdf8,
+ 0xfdf7, 0xfdf0, 0xfe01, 0xfdfc, 0xfdca, 0xfdb5,
+ 0xfdd8, 0xfdf9, 0xfe13, 0xfe25, 0xfe02, 0xfdd1,
+ 0xfdec, 0xfe46, 0xfe6d, 0xfe27, 0xfdf0, 0xfe1c,
+ 0xfe52, 0xfe96, 0xff3b, 0xffff, 0x0077, 0x008b,
+ 0x0060, 0x002e, 0xfff3, 0xffb1, 0xff81, 0xff50,
+ 0xff74, 0xfffc, 0x003a, 0x0064, 0x00ff, 0x017b,
+ 0x01ad, 0x01dd, 0x01b0, 0x014c, 0x00fe, 0x0077,
+ 0x0002, 0xffee, 0xffd0, 0xffdd, 0x003a, 0x0062,
+ 0x0066, 0x007f, 0x006e, 0x005b, 0x0081, 0x0092,
+ 0x003f, 0xffbd, 0xffb2, 0x0021, 0x0039, 0xfff1,
+ 0xffda, 0xffd2, 0xffc5, 0xffe9, 0x000c, 0x0033,
+ 0x007a, 0x0086, 0x0061, 0x0055, 0x0024, 0xffe9,
+ 0x0029, 0x00a8, 0x00c7, 0x009b, 0x0082, 0x0082,
+ 0x008a, 0x009d, 0x0075, 0xffe6, 0xff4f, 0xfef1,
+ 0xfeb0, 0xfeac, 0xfeda, 0xfec1, 0xfe77, 0xfe9b,
+ 0xff4e, 0x000b, 0x0066, 0x008b, 0x00d6, 0x011a,
+ 0x00f6, 0x00a1, 0x0086, 0x0097, 0x009e, 0x00b3,
+ 0x00cf, 0x00cc, 0x00e0, 0x0136, 0x0181, 0x0182,
+ 0x0140, 0x00f0, 0x00e5, 0x0100, 0x00f8, 0x0104,
+ 0x0149, 0x016f, 0x0159, 0x014e, 0x0191, 0x0211,
+ 0x0290, 0x02e8, 0x0300, 0x02d2, 0x0280, 0x022b,
+ 0x021e, 0x0282, 0x02d5, 0x02e4, 0x0314, 0x0369,
+ 0x03ce, 0x0430, 0x0410, 0x039a, 0x037d, 0x0375,
+ 0x0331, 0x02ff, 0x02db, 0x029b, 0x0247, 0x01ee,
+ 0x01d3, 0x01fe, 0x021c, 0x0233, 0x0271, 0x02ca,
+ 0x0333, 0x0379, 0x037f, 0x0367, 0x0313, 0x0284,
+ 0x0212, 0x01b8, 0x0172, 0x01a4, 0x022b, 0x0282,
+ 0x02a5, 0x028a, 0x01f4, 0x0131, 0x00a0, 0x0026,
+ 0xffb8, 0xff75, 0xff41, 0xff01, 0xfed7, 0xfed8,
+ 0xfecb, 0xfe92, 0xfe6a, 0xfe68, 0xfe5f, 0xfe40,
+ 0xfdf8, 0xfd82, 0xfd0e, 0xfca5, 0xfc6a, 0xfcbc,
+ 0xfd49, 0xfd80, 0xfd91, 0xfdba, 0xfdf1, 0xfe34,
+ 0xfe6a, 0xfe84, 0xfe8f, 0xfe88, 0xfeae, 0xff19,
+ 0xff5c, 0xff54, 0xff54, 0xff7a, 0xffb2, 0xffe8,
+ 0x002d, 0x008b, 0x00bc, 0x00af, 0x008d, 0x004d,
+ 0x0000, 0xffb2, 0xff4e, 0xff1e, 0xff2b, 0xff0f,
+ 0xfeef, 0xff11, 0xff45, 0xff8e, 0x0010, 0x0064,
+ 0x0035, 0xffe2, 0xffcb, 0xffcd, 0xffdf, 0x001c,
+ 0x0043, 0x003f, 0x0058, 0x0065, 0x0040, 0x0036,
+ 0x005d, 0x0099, 0x00c4, 0x00af, 0x0070, 0x0033,
+ 0x002f, 0x00a8, 0x0133, 0x0141, 0x0114, 0x00e2,
+ 0x0094, 0x004d, 0x002d, 0x0042, 0x0080, 0x00af,
+ 0x00c9, 0x00c8, 0x009a, 0x00a8, 0x00fe, 0x0117,
+ 0x00ef, 0x00c1, 0x00a6, 0x00bf, 0x00cd, 0x00af,
+ 0x00a4, 0x008d, 0x006a, 0x009e, 0x0108, 0x016d,
+ 0x01d0, 0x01f5, 0x01e7, 0x0211, 0x0260, 0x0287,
+ 0x0284, 0x026f, 0x0259, 0x023b, 0x021d, 0x0223,
+ 0x0230, 0x021d, 0x0227, 0x0267, 0x0298, 0x029c,
+ 0x027c, 0x0240, 0x0213, 0x01fe, 0x01d5, 0x01a3,
+ 0x0194, 0x0197, 0x018f, 0x018e, 0x0191, 0x0169,
+ 0x0114, 0x00c2, 0x008c, 0x0073, 0x0059, 0x0005,
+ 0xff81, 0xfeff, 0xfe8a, 0xfe50, 0xfe4f, 0xfe1f,
+ 0xfdff, 0xfe66, 0xfed4, 0xfeef, 0xff16, 0xff4a,
+ 0xff56, 0xff49, 0xff36, 0xff44, 0xff6b, 0xff7a,
+ 0xff95, 0xffd9, 0x0021, 0x005a, 0x0066, 0x0052,
+ 0x0055, 0x0052, 0x0045, 0x006b, 0x009f, 0x00a9,
+ 0x00ab, 0x00c4, 0x00e8, 0x00eb, 0x00c4, 0x00b1,
+ 0x00db, 0x012c, 0x017e, 0x01a5, 0x019b, 0x018d,
+ 0x019e, 0x01cc, 0x01fa, 0x021a, 0x0249, 0x029b,
+ 0x02fb, 0x0348, 0x036b, 0x0361, 0x0334, 0x02ef,
+ 0x02b3, 0x02aa, 0x02d8, 0x0300, 0x0304, 0x0302,
+ 0x02f9, 0x0304, 0x037c, 0x041d, 0x045c, 0x0453,
+ 0x0437, 0x040f, 0x0421, 0x0477, 0x04a4, 0x047d,
+ 0x0440, 0x0419, 0x0411, 0x042b, 0x0448, 0x045b,
+ 0x048a, 0x04c4, 0x04d2, 0x04c8, 0x0493, 0x0428,
+ 0x03e2, 0x03b9, 0x0381, 0x0366, 0x033a, 0x02e0,
+ 0x02b8, 0x02bd, 0x02d0, 0x02e2, 0x02a9, 0x0265,
+ 0x0261, 0x0249, 0x0218, 0x01e2, 0x0193, 0x0183,
+ 0x01a9, 0x019b, 0x0170, 0x0134, 0x0112, 0x0169,
+ 0x01c2, 0x01b4, 0x01a3, 0x019f, 0x017d, 0x015f,
+ 0x013f, 0x0112, 0x00fd, 0x0106, 0x0102, 0x00d7,
+ 0x00c6, 0x00d8, 0x00c1, 0x00c0, 0x0109, 0x013e,
+ 0x0173, 0x01c9, 0x01d5, 0x0193, 0x0165, 0x0169,
+ 0x018c, 0x01a6, 0x01ab, 0x01a9, 0x0194, 0x016f,
+ 0x0145, 0x0121, 0x0130, 0x016e, 0x01b6, 0x0208,
+ 0x0259, 0x0292, 0x02ae, 0x0294, 0x024d, 0x0219,
+ 0x0215, 0x022a, 0x0240, 0x0241, 0x0228, 0x0228,
+ 0x0260, 0x027d, 0x026f, 0x028b, 0x029a, 0x0266,
+ 0x024c, 0x0259, 0x0250, 0x021d, 0x01b9, 0x015e,
+ 0x012c, 0x0102, 0x0120, 0x017a, 0x01ad, 0x01d9,
+ 0x01fd, 0x01e3, 0x01bf, 0x019a, 0x0163, 0x0143,
+ 0x0105, 0x00a6, 0x0084, 0x008a, 0x0084, 0x008b,
+ 0x00af, 0x0101, 0x0156, 0x015b, 0x0116, 0x00cd,
+ 0x00ba, 0x00c7, 0x00a3, 0x006f, 0x0068, 0x0050,
+ 0x0015, 0xffe1, 0xff9c, 0xff3e, 0xfefc, 0xfef8,
+ 0xff16, 0xff18, 0xfefe, 0xfef0, 0xfef7, 0xff18,
+ 0xff42, 0xff46, 0xff05, 0xfeaa, 0xfe99, 0xfee3,
+ 0xff40, 0xff99, 0xffd9, 0xffde, 0xffb6, 0xff6d,
+ 0xff29, 0xff10, 0xfee9, 0xfedb, 0xff2d, 0xff78,
+ 0xff94, 0xffab, 0xff77, 0xff11, 0xfed9, 0xfea6,
+ 0xfe8d, 0xfedf, 0xff6d, 0xffe8, 0x0035, 0x006a,
+ 0x009b, 0x00a2, 0x0085, 0x0069, 0x0047, 0x004b,
+ 0x0080, 0x008b, 0x007b, 0x009d, 0x00e3, 0x0132,
+ 0x0161, 0x0142, 0x0110, 0x011c, 0x014d, 0x0165,
+ 0x0170, 0x01a4, 0x01f4, 0x024e, 0x02be, 0x0315,
+ 0x0316, 0x02ba, 0x025d, 0x02ab, 0x0386, 0x042b,
+ 0x04a7, 0x053a, 0x0592, 0x05c3, 0x0605, 0x062d,
+ 0x0641, 0x0647, 0x0627, 0x0608, 0x05ec, 0x05cc,
+ 0x05c8, 0x0598, 0x0507, 0x0490, 0x048f, 0x04c6,
+ 0x04e8, 0x04da, 0x0494, 0x0425, 0x03c1, 0x0397,
+ 0x0386, 0x0340, 0x02d5, 0x0297, 0x028d, 0x0278,
+ 0x024c, 0x01fc, 0x0179, 0x00f6, 0x007f, 0xffd9,
+ 0xff3d, 0xff0d, 0xff26, 0xff3b, 0xff2a, 0xfef5,
+ 0xfec3, 0xfea5, 0xfe99, 0xfe9b, 0xfe8f, 0xfe79,
+ 0xfe8f, 0xfec1, 0xfed8, 0xfec4, 0xfe83, 0xfe25,
+ 0xfdc5, 0xfd93, 0xfdda, 0xfe65, 0xfebd, 0xfee5,
+ 0xfee1, 0xfea9, 0xfead, 0xff01, 0xff3b, 0xff5d,
+ 0xff6a, 0xff59, 0xff72, 0xffa3, 0xffb0, 0xffe8,
+ 0x004c, 0x0093, 0x00d2, 0x011f, 0x0174, 0x01c6,
+ 0x01ec, 0x0223, 0x02b4, 0x0345, 0x0396, 0x03bf,
+ 0x03bf, 0x03b8, 0x03df, 0x0437, 0x048d, 0x0480,
+ 0x041c, 0x03e2, 0x03f9, 0x045d, 0x04ff, 0x0571,
+ 0x059e, 0x05c8, 0x05cf, 0x05a3, 0x057a, 0x0555,
+ 0x0527, 0x04f2, 0x04c2, 0x04c1, 0x04f9, 0x054e,
+ 0x058b, 0x0579, 0x053e, 0x0502, 0x049a, 0x041c,
+ 0x03da, 0x03e0, 0x0409, 0x0431, 0x0442, 0x042f,
+ 0x03f0, 0x03c1, 0x03ce, 0x03c4, 0x0368, 0x02e6,
+ 0x027a, 0x024a, 0x0225, 0x01d2, 0x0180, 0x015f,
+ 0x0178, 0x01ca, 0x0220, 0x026a, 0x02ae, 0x02b9,
+ 0x02a8, 0x0299, 0x0241, 0x01c6, 0x017a, 0x012c,
+ 0x00f6, 0x0109, 0x0110, 0x00ec, 0x00b5, 0x0056,
+ 0x0001, 0xffe5, 0xffe4, 0xfff5, 0x0006, 0x000c,
+ 0x0017, 0x0002, 0xffbe, 0xff6c, 0xff0f, 0xfec0,
+ 0xfeb3, 0xfee2, 0xff2f, 0xff6e, 0xff70, 0xff3f,
+ 0xfefd, 0xfeba, 0xfe78, 0xfe42, 0xfe33, 0xfe3e,
+ 0xfe4c, 0xfe77, 0xfe9e, 0xfe96, 0xfe9b, 0xfeb9,
+ 0xfea8, 0xfe81, 0xfe7a, 0xfe82, 0xfe70, 0xfe47,
+ 0xfe45, 0xfe96, 0xff1d, 0xffa6, 0xffe0, 0xffa7,
+ 0xff77, 0xffbe, 0x005b, 0x0107, 0x017e, 0x01b1,
+ 0x01d9, 0x0218, 0x0256, 0x0261, 0x022e, 0x01ef,
+ 0x019b, 0x0137, 0x0120, 0x0161, 0x01b8, 0x021a,
+ 0x024d, 0x0235, 0x021d, 0x0204, 0x01c5, 0x018d,
+ 0x0171, 0x0168, 0x0161, 0x0131, 0x00fc, 0x0116,
+ 0x0164, 0x01b2, 0x0225, 0x02c3, 0x0338, 0x0356,
+ 0x0327, 0x02b9, 0x023b, 0x01d6, 0x0180, 0x0153,
+ 0x0173, 0x01a1, 0x019c, 0x0152, 0x00d1, 0x0067,
+ 0x0047, 0x0056, 0x0071, 0x006e, 0x003d, 0x0011,
+ 0x0006, 0x0026, 0x0078, 0x00c7, 0x00e4, 0x00e3,
+ 0x00e4, 0x00ed, 0x00ea, 0x00d1, 0x00a8, 0x007a,
+ 0x0055, 0x0043, 0x0042, 0x0052, 0x0068, 0x008b,
+ 0x00b4, 0x0097, 0x0049, 0x0032, 0x001e, 0xffc7,
+ 0xff67, 0xff2a, 0xff0a, 0xfeed, 0xfeb5, 0xfe8b,
+ 0xfe89, 0xfe96, 0xfec1, 0xff01, 0xff3a, 0xff77,
+ 0xff9a, 0xff98, 0xffc4, 0x0029, 0x0078, 0x008d,
+ 0x0096, 0x00b8, 0x00c8, 0x00b0, 0x009f, 0x00a0,
+ 0x0098, 0x007e, 0x0049, 0x000b, 0xffd6, 0xffb2,
+ 0xffba, 0xffe7, 0x0035, 0x00c7, 0x0169, 0x01d5,
+ 0x022b, 0x027b, 0x02b3, 0x02e0, 0x02fa, 0x02da,
+ 0x0277, 0x0206, 0x01a9, 0x0163, 0x015c, 0x0185,
+ 0x0189, 0x018c, 0x01bc, 0x01bd, 0x016e, 0x0102,
+ 0x00ab, 0x0087, 0x0056, 0x0009, 0xffe1, 0xffb5,
+ 0xff7d, 0xff68, 0xff3a, 0xfef5, 0xfed9, 0xfec7,
+ 0xfecf, 0xfef0, 0xfeec, 0xfef8, 0xff24, 0xff22,
+ 0xff1d, 0xff2e, 0xff30, 0xff28, 0xfefe, 0xfebd,
+ 0xfe9d, 0xfe91, 0xfe9c, 0xfeb8, 0xfea0, 0xfe68,
+ 0xfe3c, 0xfe0e, 0xfdfd, 0xfe0b, 0xfe0c, 0xfdf2,
+ 0xfdda, 0xfdfe, 0xfe50, 0xfe6f, 0xfe64, 0xfe6b,
+ 0xfe81, 0xfe9d, 0xfea5, 0xfea9, 0xfed1, 0xfed8,
+ 0xfebf, 0xfeeb, 0xff36, 0xff78, 0xffd2, 0x000a,
+ 0x0001, 0xffd8, 0xff7b, 0xff03, 0xfeb1, 0xfe78,
+ 0xfe46, 0xfe10, 0xfddf, 0xfdfb, 0xfe70, 0xfee4,
+ 0xff19, 0xff0f, 0xff0f, 0xff4d, 0xff6e, 0xff3c,
+ 0xff10, 0xfeef, 0xfe9d, 0xfe58, 0xfe62, 0xfe9a,
+ 0xfeec, 0xff48, 0xff87, 0xffa0, 0xff87, 0xff48,
+ 0xff13, 0xfec7, 0xfe51, 0xfe1e, 0xfe49, 0xfe85,
+ 0xfeb9, 0xfece, 0xfeb1, 0xfe88, 0xfe61, 0xfe49,
+ 0xfe4a, 0xfe23, 0xfdd5, 0xfdae, 0xfda0, 0xfd86,
+ 0xfd6b, 0xfd52, 0xfd41, 0xfd39, 0xfd24, 0xfd04,
+ 0xfcec, 0xfce4, 0xfd07, 0xfd71, 0xfde9, 0xfe0a,
+ 0xfdd5, 0xfd98, 0xfd68, 0xfd4c, 0xfd5b, 0xfd7c,
+ 0xfd9f, 0xfdd8, 0xfe17, 0xfe58, 0xfe90, 0xfe85,
+ 0xfe5b, 0xfe7c, 0xfec3, 0xfee8, 0xff21, 0xff8d,
+ 0xfff6, 0x007a, 0x013a, 0x01c7, 0x01fe, 0x0229,
+ 0x0229, 0x01fc, 0x0201, 0x0211, 0x01fa, 0x01f6,
+ 0x01fd, 0x01fb, 0x021e, 0x0246, 0x0252, 0x026d,
+ 0x029a, 0x02c9, 0x02f1, 0x02df, 0x028d, 0x022b,
+ 0x01db, 0x01a4, 0x0180, 0x0169, 0x0155, 0x013a,
+ 0x011e, 0x0107, 0x00e6, 0x00b1, 0x0084, 0x0072,
+ 0x004d, 0x0009, 0xffe6, 0xffd8, 0xffb1, 0xffa2,
+ 0xffaf, 0xffa9, 0xffae, 0xffaf, 0xff80, 0xff35,
+ 0xfec6, 0xfe57, 0xfe30, 0xfe16, 0xfddb, 0xfdbd,
+ 0xfdc8, 0xfdf3, 0xfe2c, 0xfe54, 0xfe97, 0xff03,
+ 0xff52, 0xff5d, 0xff20, 0xfed1, 0xfecf, 0xfeeb,
+ 0xfede, 0xfeeb, 0xff20, 0xff47, 0xff6a, 0xff8c,
+ 0xff9e, 0xffbb, 0xffe0, 0xfff5, 0x0015, 0x005f,
+ 0x00b9, 0x0120, 0x01a5, 0x0212, 0x022a, 0x021b,
+ 0x0213, 0x01f9, 0x01cf, 0x01b6, 0x01a6, 0x018c,
+ 0x0189, 0x01ab, 0x01bb, 0x01ad, 0x01b2, 0x01b8,
+ 0x01a1, 0x0182, 0x0161, 0x015c, 0x0195, 0x01da,
+ 0x0204, 0x022f, 0x0264, 0x028a, 0x027a, 0x0258,
+ 0x0280, 0x02d2, 0x0309, 0x0339, 0x0343, 0x02fa,
+ 0x02a1, 0x027f, 0x0298, 0x02c9, 0x02fd, 0x033e,
+ 0x0364, 0x0344, 0x030c, 0x02b8, 0x023d, 0x01fb,
+ 0x0203, 0x021b, 0x024a, 0x027a, 0x029e, 0x02da,
+ 0x0314, 0x0344, 0x0367, 0x0348, 0x0315, 0x0304,
+ 0x02d5, 0x029d, 0x0299, 0x02a4, 0x02b1, 0x02b7,
+ 0x0287, 0x0242, 0x0228, 0x0237, 0x023b, 0x0206,
+ 0x01c4, 0x01bc, 0x01eb, 0x0242, 0x0283, 0x027b,
+ 0x0282, 0x02bc, 0x02c9, 0x02a6, 0x0280, 0x024f,
+ 0x0227, 0x01fa, 0x01a3, 0x014b, 0x0100, 0x00c0,
+ 0x00b2, 0x00c6, 0x00d5, 0x00d5, 0x00b1, 0x0075,
+ 0x0037, 0xfff9, 0xffc3, 0xff93, 0xff60, 0xff39,
+ 0xff0b, 0xfed6, 0xfeba, 0xfe98, 0xfe5b, 0xfe26,
+ 0xfe01, 0xfdf5, 0xfe02, 0xfdff, 0xfde8, 0xfdcc,
+ 0xfda5, 0xfd7d, 0xfd5c, 0xfd4c, 0xfd5e, 0xfd69,
+ 0xfd52, 0xfd44, 0xfd59, 0xfd6e, 0xfd60, 0xfd43,
+ 0xfd55, 0xfd89, 0xfdbf, 0xfdf5, 0xfe02, 0xfdea,
+ 0xfdf7, 0xfe0d, 0xfe00, 0xfe03, 0xfe20, 0xfe53,
+ 0xfeb9, 0xff12, 0xff06, 0xfebd, 0xfe75, 0xfe32,
+ 0xfdf7, 0xfde7, 0xfe06, 0xfe39, 0xfe60, 0xfe6e,
+ 0xfe8a, 0xfeea, 0xff70, 0xffd1, 0xfff1, 0xffcf,
+ 0xff89, 0xff49, 0xff2c, 0xff43, 0xff75, 0xffa5,
+ 0xfff1, 0x003e, 0x0048, 0x0034, 0x004b, 0x0096,
+ 0x00ff, 0x0152, 0x018f, 0x01d7, 0x01f1, 0x01c0,
+ 0x018d, 0x016d, 0x0162, 0x016a, 0x0155, 0x013a,
+ 0x0144, 0x0144, 0x0140, 0x015e, 0x0158, 0x010f,
+ 0x00c3, 0x008e, 0x006d, 0x006c, 0x0071, 0x0065,
+ 0x0062, 0x0075, 0x0094, 0x00c5, 0x00e5, 0x00c2,
+ 0x009c, 0x008f, 0x004c, 0x0006, 0x0018, 0x0044,
+ 0x006d, 0x00a0, 0x00b4, 0x00d7, 0x013d, 0x018a,
+ 0x0195, 0x017d, 0x0131, 0x00d4, 0x009c, 0x008b,
+ 0x00a1, 0x00ca, 0x00ea, 0x0109, 0x0131, 0x016f,
+ 0x01b6, 0x01e4, 0x0211, 0x024d, 0x026d, 0x027c,
+ 0x027b, 0x0262, 0x0277, 0x0293, 0x0254, 0x0209,
+ 0x01e4, 0x01bb, 0x01c5, 0x01db, 0x0197, 0x0151,
+ 0x0140, 0x0123, 0x0108, 0x00f8, 0x00e0, 0x00db,
+ 0x00c9, 0x0094, 0x007b, 0x0071, 0x0046, 0x000a,
+ 0xffd6, 0xffc0, 0xffd4, 0xffeb, 0xffe0, 0xffb8,
+ 0xff9a, 0xff94, 0xff94, 0xffae, 0xffd9, 0xffd6,
+ 0xffcb, 0xffec, 0x0006, 0x0012, 0x0029, 0x0024,
+ 0x0002, 0xffee, 0xffe2, 0xffeb, 0x001c, 0x005b,
+ 0x007e, 0x007c, 0x0076, 0x0086, 0x0099, 0x009c,
+ 0x0096, 0x009e, 0x00c1, 0x00ed, 0x0122, 0x0161,
+ 0x018f, 0x01a4, 0x01a7, 0x0185, 0x0160, 0x0167,
+ 0x01a0, 0x01e6, 0x01d7, 0x016c, 0x011b, 0x00fa,
+ 0x00d3, 0x00c2, 0x00dc, 0x010a, 0x014c, 0x0196,
+ 0x01c8, 0x01d1, 0x01d5, 0x0208, 0x0245, 0x0259,
+ 0x0269, 0x0287, 0x029a, 0x02b1, 0x02e7, 0x0343,
+ 0x0384, 0x037c, 0x037f, 0x03a2, 0x039a, 0x03a1,
+ 0x03bc, 0x0372, 0x030b, 0x02fa, 0x0309, 0x0326,
+ 0x0356, 0x0367, 0x0365, 0x035b, 0x0340, 0x0337,
+ 0x0342, 0x034c, 0x0361, 0x0358, 0x0320, 0x02f5,
+ 0x02e8, 0x02fa, 0x0336, 0x0365, 0x0371, 0x0371,
+ 0x034a, 0x0311, 0x030e, 0x032d, 0x032e, 0x02f1,
+ 0x0275, 0x0209, 0x01e4, 0x01e2, 0x01fb, 0x022a,
+ 0x023d, 0x0237, 0x022f, 0x022a, 0x024c, 0x0285,
+ 0x0286, 0x0256, 0x0225, 0x01fc, 0x01ef, 0x0201,
+ 0x0210, 0x0209, 0x01e3, 0x01a4, 0x016f, 0x0166,
+ 0x0180, 0x0192, 0x0190, 0x0197, 0x019a, 0x016f,
+ 0x012a, 0x00f4, 0x00d9, 0x00d4, 0x00f6, 0x013a,
+ 0x0171, 0x018e, 0x0189, 0x013e, 0x00da, 0x009c,
+ 0x005a, 0x000f, 0xffd3, 0xff79, 0xff16, 0xfedc,
+ 0xfea2, 0xfe5e, 0xfe28, 0xfe04, 0xfdf3, 0xfddb,
+ 0xfdb0, 0xfd7f, 0xfd41, 0xfd1c, 0xfd20, 0xfd0b,
+ 0xfceb, 0xfcdf, 0xfcc5, 0xfcdf, 0xfd3f, 0xfd74,
+ 0xfd7e, 0xfd76, 0xfd49, 0xfd33, 0xfd41, 0xfd4c,
+ 0xfd66, 0xfd77, 0xfd6d, 0xfd7c, 0xfda2, 0xfdd5,
+ 0xfe13, 0xfe4a, 0xfeab, 0xff1f, 0xff44, 0xff55,
+ 0xff8c, 0xffa3, 0xffa3, 0xffb7, 0xffe3, 0x003d,
+ 0x009b, 0x00e4, 0x013b, 0x016a, 0x0164, 0x016b,
+ 0x0164, 0x0152, 0x0167, 0x0170, 0x017e, 0x01ce,
+ 0x021c, 0x0242, 0x026b, 0x0292, 0x02ba, 0x02d1,
+ 0x02ac, 0x0273, 0x0248, 0x021e, 0x01fa, 0x01d9,
+ 0x01cf, 0x01ef, 0x0212, 0x0237, 0x026d, 0x0292,
+ 0x02ba, 0x02e4, 0x02e7, 0x0306, 0x034c, 0x0363,
+ 0x0375, 0x038e, 0x0372, 0x036b, 0x039a, 0x03b7,
+ 0x03cd, 0x03dc, 0x03c4, 0x03bf, 0x03db, 0x0413,
+ 0x047b, 0x04d6, 0x04f4, 0x04f5, 0x04d4, 0x04ab,
+ 0x049e, 0x0491, 0x0489, 0x0487, 0x045b, 0x0421,
+ 0x0402, 0x03f8, 0x0404, 0x0415, 0x041b, 0x042c,
+ 0x0434, 0x0417, 0x03ed, 0x03ba, 0x0368, 0x030a,
+ 0x02b4, 0x025c, 0x0202, 0x01c2, 0x01a6, 0x0198,
+ 0x0193, 0x0179, 0x012f, 0x00e9, 0x00d0, 0x00c0,
+ 0x00c4, 0x00e8, 0x00fc, 0x00f4, 0x00f8, 0x00fc,
+ 0x00e7, 0x00ba, 0x0070, 0x001d, 0xffeb, 0xffd6,
+ 0xffc6, 0xffbb, 0xff9f, 0xff74, 0xff6a, 0xff78,
+ 0xff80, 0xffa6, 0xffc7, 0xff8b, 0xff1d, 0xfebd,
+ 0xfe70, 0xfe59, 0xfe7b, 0xfea4, 0xfede, 0xff1f,
+ 0xff17, 0xfecc, 0xfe82, 0xfe4c, 0xfe48, 0xfe84,
+ 0xfed0, 0xff11, 0xff47, 0xff64, 0xff7f, 0xffaf,
+ 0xffde, 0x0007, 0x002d, 0x003f, 0x0048, 0x0056,
+ 0x0070, 0x00a2, 0x00c9, 0x00d0, 0x00e0, 0x0112,
+ 0x014e, 0x0189, 0x01cc, 0x0228, 0x0293, 0x02ed,
+ 0x0327, 0x0332, 0x0313, 0x02f7, 0x02f2, 0x030a,
+ 0x0332, 0x0331, 0x0309, 0x02eb, 0x02c6, 0x02a3,
+ 0x02ad, 0x02d7, 0x030f, 0x034c, 0x0368, 0x0365,
+ 0x0356, 0x0327, 0x02dd, 0x02a1, 0x028e, 0x0297,
+ 0x0298, 0x028b, 0x027c, 0x0260, 0x0235, 0x01f3,
+ 0x0193, 0x0131, 0x00e5, 0x00b5, 0x009c, 0x0083,
+ 0x0063, 0x0046, 0x0024, 0x0003, 0xffdb, 0xffa3,
+ 0xff7b, 0xff60, 0xff49, 0xff4e, 0xff55, 0xff39,
+ 0xff05, 0xfed0, 0xfeae, 0xfe96, 0xfe67, 0xfe43,
+ 0xfe3d, 0xfe2b, 0xfe28, 0xfe4b, 0xfe6e, 0xfe89,
+ 0xfea4, 0xfebd, 0xfedb, 0xfef9, 0xff10, 0xff13,
+ 0xfef5, 0xfed9, 0xfee2, 0xff0c, 0xff4a, 0xff89,
+ 0xffc2, 0xfff9, 0x0017, 0x0026, 0x002d, 0x0021,
+ 0x0024, 0x004d, 0x0084, 0x00bb, 0x00e3, 0x00fc,
+ 0x0114, 0x012c, 0x016f, 0x01ea, 0x024d, 0x0298,
+ 0x02ec, 0x032f, 0x0371, 0x039e, 0x0375, 0x0330,
+ 0x02ff, 0x02bc, 0x028b, 0x02a2, 0x02f3, 0x0353,
+ 0x0385, 0x0378, 0x0351, 0x031d, 0x02ee, 0x02e2,
+ 0x0304, 0x034c, 0x0391, 0x03bd, 0x03cd, 0x03a1,
+ 0x033f, 0x02e2, 0x02b2, 0x02c4, 0x02ed, 0x02ef,
+ 0x02d3, 0x02bf, 0x02da, 0x032f, 0x0370, 0x037d,
+ 0x037f, 0x0368, 0x0333, 0x02e7, 0x026c, 0x01e8,
+ 0x017c, 0x012b, 0x011c, 0x0136, 0x013c, 0x0137,
+ 0x0122, 0x00ef, 0x00cc, 0x00c1, 0x00be, 0x00ab,
+ 0x0072, 0x0042, 0x0040, 0x0044, 0x0034, 0x000c,
+ 0xffe9, 0xfffe, 0x0029, 0x002c, 0x0007, 0xffbb,
+ 0xff61, 0xff40, 0xff5d, 0xff7b, 0xff81, 0xff7a,
+ 0xff50, 0xff09, 0xfef0, 0xfef0, 0xfec4, 0xfea6,
+ 0xfebd, 0xfed4, 0xfefb, 0xff32, 0xff56, 0xff89,
+ 0xffb8, 0xffbd, 0xffc1, 0xffc7, 0xffbb, 0xffbd,
+ 0xffda, 0x0020, 0x0081, 0x00d0, 0x012a, 0x0189,
+ 0x01b6, 0x01de, 0x020a, 0x0204, 0x01ec, 0x01e0,
+ 0x01d6, 0x01e5, 0x0219, 0x0267, 0x02b2, 0x02d1,
+ 0x02ea, 0x0319, 0x034b, 0x0393, 0x03da, 0x03eb,
+ 0x03ef, 0x03fd, 0x03ea, 0x03c6, 0x03a5, 0x0384,
+ 0x0376, 0x0375, 0x036e, 0x0368, 0x0368, 0x037f,
+ 0x03b0, 0x03ca, 0x03c6, 0x03c2, 0x03c1, 0x03c1,
+ 0x03b8, 0x0399, 0x037c, 0x0372, 0x0376, 0x0392,
+ 0x03be, 0x03de, 0x0409, 0x043c, 0x0438, 0x0407,
+ 0x03e4, 0x03c2, 0x0395, 0x037b, 0x035d, 0x0323,
+ 0x02df, 0x0285, 0x021f, 0x01e9, 0x01df, 0x01d8,
+ 0x01ce, 0x01b8, 0x0181, 0x012f, 0x00e5, 0x00be,
+ 0x00a3, 0x007e, 0x0052, 0x0000, 0xff6f, 0xfec5,
+ 0xfe31, 0xfdcb, 0xfd81, 0xfd1d, 0xfcb5, 0xfc7d,
+ 0xfc45, 0xfbed, 0xfb9c, 0xfb51, 0xfafa, 0xfaa3,
+ 0xfa46, 0xf9dd, 0xf970, 0xf913, 0xf8e7, 0xf8e7,
+ 0xf8f8, 0xf90b, 0xf8ed, 0xf892, 0xf861, 0xf87f,
+ 0xf8a7, 0xf8e9, 0xf95d, 0xf9a9, 0xf9b6, 0xf9da,
+ 0xfa12, 0xfa21, 0xfa1d, 0xfa2a, 0xfa39, 0xfa5e,
+ 0xfac2, 0xfb3d, 0xfb95, 0xfbd0, 0xfc03, 0xfc41,
+ 0xfca3, 0xfd0d, 0xfd51, 0xfd76, 0xfd95, 0xfdb2,
+ 0xfdcd, 0xfdd3, 0xfdc4, 0xfdc7, 0xfde3, 0xfe16,
+ 0xfe6a, 0xfeb0, 0xfebd, 0xfeab, 0xfe85, 0xfe66,
+ 0xfe86, 0xfebb, 0xfed4, 0xfef5, 0xff20, 0xff52,
+ 0xff96, 0xffbf, 0xffcf, 0x0003, 0x0049, 0x008f,
+ 0x00e9, 0x0136, 0x0155, 0x0148, 0x0129, 0x0131,
+ 0x0159, 0x0162, 0x0130, 0x00d5, 0x0099, 0x00b9,
+ 0x0113, 0x0189, 0x0217, 0x0286, 0x02c8, 0x02fa,
+ 0x030d, 0x02f2, 0x02ac, 0x024c, 0x020a, 0x01f6,
+ 0x01f2, 0x01f6, 0x01fc, 0x0209, 0x0227, 0x0236,
+ 0x0234, 0x022a, 0x01f9, 0x01c1, 0x01b4, 0x01a9,
+ 0x0196, 0x01a5, 0x01b7, 0x01a5, 0x017e, 0x0156,
+ 0x0130, 0x0103, 0x00c5, 0x0078, 0x002d, 0x0010,
+ 0x0028, 0x004e, 0x0070, 0x0076, 0x0054, 0x0040,
+ 0x003c, 0x000d, 0xffc3, 0xff78, 0xff37, 0xff34,
+ 0xff54, 0xff52, 0xff42, 0xff2e, 0xff20, 0xff60,
+ 0xffd5, 0x002e, 0x0075, 0x00aa, 0x00bf, 0x00bf,
+ 0x0095, 0x0060, 0x005a, 0x0059, 0x004f, 0x0063,
+ 0x0066, 0x0035, 0xfff3, 0xffb9, 0xff9a, 0xff94,
+ 0xff8d, 0xff83, 0xff74, 0xff6c, 0xff7b, 0xff93,
+ 0xffb5, 0xffcd, 0xffbe, 0xffb1, 0xffae, 0xff93,
+ 0xffa3, 0xffff, 0x0065, 0x00b0, 0x00cc, 0x00c5,
+ 0x00b7, 0x0074, 0x0000, 0xffa3, 0xff5c, 0xff25,
+ 0xff29, 0xff59, 0xff89, 0xffb7, 0xffff, 0x0051,
+ 0x0082, 0x00aa, 0x00dd, 0x00ea, 0x00e7, 0x00f9,
+ 0x010e, 0x013e, 0x0171, 0x0180, 0x01a4, 0x01e4,
+ 0x020c, 0x022b, 0x0235, 0x0225, 0x0213, 0x01e9,
+ 0x01b2, 0x0190, 0x0169, 0x0132, 0x00f7, 0x00d2,
+ 0x00d8, 0x00db, 0x00e1, 0x0118, 0x012d, 0x00f9,
+ 0x00bc, 0x0074, 0x001d, 0xffbd, 0xff44, 0xfee1,
+ 0xfe99, 0xfe62, 0xfe67, 0xfe74, 0xfe78, 0xfeac,
+ 0xfed2, 0xfed6, 0xfeff, 0xff18, 0xff06, 0xfee7,
+ 0xfea1, 0xfe60, 0xfe54, 0xfe62, 0xfe99, 0xfec7,
+ 0xfeae, 0xfe95, 0xfe99, 0xfe94, 0xfea4, 0xfedc,
+ 0xff1a, 0xff44, 0xff68, 0xffad, 0xffe8, 0xfff4,
+ 0xffff, 0xfff3, 0xffbb, 0xff8a, 0xff4f, 0xff07,
+ 0xfee6, 0xfeda, 0xfed3, 0xfee6, 0xff14, 0xff6b,
+ 0xffc2, 0xffe2, 0xfff8, 0x0028, 0x0061, 0x00a1,
+ 0x00c7, 0x00c6, 0x00d0, 0x00f7, 0x012b, 0x0168,
+ 0x0191, 0x01a1, 0x01c1, 0x0200, 0x024a, 0x028f,
+ 0x02b0, 0x02a8, 0x02b9, 0x0303, 0x0349, 0x0374,
+ 0x0396, 0x03a8, 0x03c8, 0x03fd, 0x0409, 0x03fc,
+ 0x040b, 0x041d, 0x0415, 0x03f1, 0x03b0, 0x0363,
+ 0x0310, 0x02cf, 0x029c, 0x0234, 0x019e, 0x011c,
+ 0x00ac, 0x004d, 0x0000, 0xffb9, 0xff8e, 0xff79,
+ 0xff51, 0xff2a, 0xff12, 0xff03, 0xff07, 0xff0b,
+ 0xfef4, 0xfea6, 0xfe33, 0xfde7, 0xfdca, 0xfdcb,
+ 0xfe1b, 0xfe8c, 0xfec8, 0xfee0, 0xfec3, 0xfe5f,
+ 0xfe05, 0xfdd1, 0xfdb9, 0xfdc5, 0xfdce, 0xfdc1,
+ 0xfdc4, 0xfdcd, 0xfdc7, 0xfdb5, 0xfd93, 0xfd6b,
+ 0xfd31, 0xfce2, 0xfcb1, 0xfc9d, 0xfc6d, 0xfc3f,
+ 0xfc49, 0xfc71, 0xfc9d, 0xfcc0, 0xfcc0, 0xfcad,
+ 0xfca7, 0xfcac, 0xfcbc, 0xfce2, 0xfd17, 0xfd42,
+ 0xfd57, 0xfd6a, 0xfd94, 0xfdcd, 0xfe06, 0xfe2a,
+ 0xfe32, 0xfe37, 0xfe36, 0xfe31, 0xfe5a, 0xfe9c,
+ 0xfeba, 0xfee2, 0xff1d, 0xff47, 0xff99, 0x001a,
+ 0x0079, 0x00a1, 0x00a7, 0x00b6, 0x00ee, 0x0108,
+ 0x00dc, 0x009e, 0x006b, 0x0070, 0x00d1, 0x0155,
+ 0x01da, 0x025d, 0x02bb, 0x030b, 0x0368, 0x03b4,
+ 0x03e9, 0x0413, 0x0425, 0x0422, 0x041d, 0x042c,
+ 0x044e, 0x0471, 0x0497, 0x04a8, 0x0499, 0x04ba,
+ 0x0517, 0x055d, 0x0582, 0x058e, 0x056e, 0x055a,
+ 0x0556, 0x0520, 0x04e7, 0x04e0, 0x04da, 0x04dd,
+ 0x0509, 0x054b, 0x0597, 0x05c1, 0x05b5, 0x05b5,
+ 0x05b4, 0x057f, 0x054a, 0x0515, 0x04af, 0x0435,
+ 0x03b2, 0x0339, 0x02f5, 0x02c2, 0x0299, 0x0285,
+ 0x025e, 0x0250, 0x0272, 0x0262, 0x0227, 0x01ec,
+ 0x019f, 0x0174, 0x0167, 0x0135, 0x010a, 0x00e8,
+ 0x0098, 0x0033, 0xffc0, 0xff5f, 0xff4f, 0xff49,
+ 0xff0e, 0xfea4, 0xfe0f, 0xfdaf, 0xfdbd, 0xfdd1,
+ 0xfdbe, 0xfd86, 0xfd27, 0xfcee, 0xfce6, 0xfccf,
+ 0xfcc1, 0xfcd4, 0xfd03, 0xfd51, 0xfd83, 0xfd94,
+ 0xfdb7, 0xfdca, 0xfdd3, 0xfdfc, 0xfe16, 0xfe16,
+ 0xfe22, 0xfe28, 0xfe35, 0xfe4f, 0xfe4a, 0xfe3c,
+ 0xfe2b, 0xfdff, 0xfdf6, 0xfe1f, 0xfe55, 0xfeb4,
+ 0xff27, 0xff87, 0xfff2, 0x003b, 0x0044, 0x005a,
+ 0x006d, 0x0068, 0x00aa, 0x012c, 0x01a3, 0x0209,
+ 0x0237, 0x0234, 0x0242, 0x025f, 0x0290, 0x02bb,
+ 0x0280, 0x021d, 0x01ef, 0x01b5, 0x0167, 0x012b,
+ 0x00ea, 0x00df, 0x0123, 0x015e, 0x018e, 0x01c2,
+ 0x01d0, 0x01df, 0x021b, 0x0254, 0x026c, 0x026e,
+ 0x027c, 0x02a0, 0x02ca, 0x02fd, 0x030c, 0x02c8,
+ 0x0275, 0x0238, 0x0201, 0x01fb, 0x0216, 0x021d,
+ 0x0227, 0x0229, 0x0215, 0x0220, 0x022f, 0x022d,
+ 0x023e, 0x022d, 0x01f8, 0x01ed, 0x01e5, 0x01cc,
+ 0x01e2, 0x0205, 0x022e, 0x0273, 0x0285, 0x0252,
+ 0x021f, 0x01e0, 0x0199, 0x0160, 0x010b, 0x009d,
+ 0x0037, 0xffe2, 0xffbc, 0xffb1, 0xff82, 0xff44,
+ 0xff1e, 0xff14, 0xff2d, 0xff56, 0xff79, 0xff8a,
+ 0xff78, 0xff3e, 0xfee9, 0xfe94, 0xfe6b, 0xfe80,
+ 0xfeb8, 0xfeee, 0xff0f, 0xff39, 0xff72, 0xff92,
+ 0xffa1, 0xffb2, 0xffaa, 0xff87, 0xff5d, 0xff41,
+ 0xff56, 0xff92, 0xffdf, 0x0023, 0x0030, 0x000a,
+ 0xffe9, 0xffdc, 0xffee, 0x0014, 0x0038, 0x005f,
+ 0x0077, 0x007e, 0x008e, 0x008a, 0x0059, 0x001d,
+ 0xfff4, 0xfff9, 0x0026, 0x0059, 0x00a9, 0x0109,
+ 0x0143, 0x0168, 0x016a, 0x0147, 0x013b, 0x0131,
+ 0x0119, 0x0133, 0x015f, 0x017c, 0x01b1, 0x01e1,
+ 0x01f2, 0x0201, 0x0213, 0x022e, 0x023e, 0x0215,
+ 0x01c8, 0x019d, 0x01ac, 0x01dc, 0x0215, 0x0267,
+ 0x02b7, 0x02cf, 0x02e1, 0x030f, 0x0333, 0x035f,
+ 0x0393, 0x03ac, 0x03b3, 0x03a6, 0x0395, 0x03b5,
+ 0x03cf, 0x039e, 0x0357, 0x0324, 0x030c, 0x0316,
+ 0x031f, 0x0321, 0x0335, 0x0348, 0x0340, 0x031b,
+ 0x02e1, 0x02ba, 0x02bd, 0x02cf, 0x02d8, 0x02d5,
+ 0x02d8, 0x02f3, 0x0312, 0x0317, 0x02f5, 0x02a2,
+ 0x0237, 0x01ee, 0x01d3, 0x01d4, 0x01e9, 0x01fd,
+ 0x01ff, 0x020a, 0x0227, 0x0224, 0x01ea, 0x01a3,
+ 0x0165, 0x0120, 0x00d5, 0x0089, 0x0048, 0x0040,
+ 0x006e, 0x00a2, 0x00e7, 0x014d, 0x0193, 0x0195,
+ 0x0178, 0x015f, 0x0159, 0x0154, 0x0141, 0x0136,
+ 0x0138, 0x013c, 0x0144, 0x014a, 0x014c, 0x015e,
+ 0x0175, 0x0179, 0x0176, 0x018d, 0x01ac, 0x01b3,
+ 0x01af, 0x01aa, 0x019a, 0x0195, 0x01a4, 0x01bb,
+ 0x01f6, 0x025b, 0x02b3, 0x02d9, 0x02d6, 0x02cf,
+ 0x02e6, 0x0309, 0x0318, 0x0309, 0x02ea, 0x02c8,
+ 0x029b, 0x0278, 0x0284, 0x0295, 0x0290, 0x0296,
+ 0x029a, 0x02a3, 0x02cf, 0x02f4, 0x0307, 0x0324,
+ 0x0339, 0x0343, 0x034a, 0x0350, 0x035c, 0x0347,
+ 0x030b, 0x02d6, 0x0297, 0x024e, 0x022e, 0x0228,
+ 0x022a, 0x0226, 0x01f6, 0x01a4, 0x0139, 0x00d6,
+ 0x00cd, 0x00ea, 0x00e9, 0x0101, 0x0116, 0x00f7,
+ 0x00d1, 0x0097, 0x0049, 0x0019, 0xffd9, 0xff7b,
+ 0xff40, 0xff25, 0xff18, 0xff18, 0xff1b, 0xff15,
+ 0xfed8, 0xfe64, 0xfdfe, 0xfdad, 0xfd6f, 0xfd5c,
+ 0xfd66, 0xfd89, 0xfdb1, 0xfda6, 0xfd79, 0xfd4c,
+ 0xfd08, 0xfcc7, 0xfca0, 0xfc78, 0xfc4b, 0xfc1a,
+ 0xfbe7, 0xfbda, 0xfbe8, 0xfbed, 0xfc02, 0xfc3a,
+ 0xfc62, 0xfc6e, 0xfc83, 0xfc91, 0xfc91, 0xfca5,
+ 0xfcb4, 0xfc94, 0xfc65, 0xfc35, 0xfc09, 0xfc01,
+ 0xfc11, 0xfc29, 0xfc55, 0xfc87, 0xfcc1, 0xfcfc,
+ 0xfd11, 0xfd1b, 0xfd48, 0xfd86, 0xfdc3, 0xfdf1,
+ 0xfe19, 0xfe5d, 0xfea3, 0xfedf, 0xff3c, 0xffa0,
+ 0xffec, 0x0039, 0x006d, 0x0085, 0x00bf, 0x0102,
+ 0x0130, 0x0167, 0x0199, 0x01ba, 0x01e6, 0x0211,
+ 0x0232, 0x0259, 0x0271, 0x028b, 0x02d0, 0x0323,
+ 0x0368, 0x03a7, 0x03d0, 0x03e1, 0x040c, 0x0465,
+ 0x04d6, 0x0548, 0x05af, 0x05ff, 0x0621, 0x0609,
+ 0x05d3, 0x05b6, 0x05bc, 0x05bb, 0x0596, 0x0563,
+ 0x0535, 0x051c, 0x051b, 0x04fd, 0x04b2, 0x0474,
+ 0x044b, 0x042c, 0x0432, 0x0449, 0x0460, 0x0482,
+ 0x0483, 0x045b, 0x041d, 0x03b4, 0x033f, 0x02e6,
+ 0x0275, 0x01ec, 0x0182, 0x012b, 0x00dd, 0x00a3,
+ 0x0068, 0x0015, 0xffb5, 0xff5f, 0xff24, 0xfeeb,
+ 0xfeaf, 0xfe7d, 0xfe4b, 0xfe3a, 0xfe56, 0xfe60,
+ 0xfe3a, 0xfdec, 0xfd75, 0xfd01, 0xfcbc, 0xfc9a,
+ 0xfc91, 0xfc9a, 0xfcb4, 0xfcd7, 0xfce6, 0xfcef,
+ 0xfd08, 0xfd24, 0xfd51, 0xfd88, 0xfda7, 0xfdb7,
+ 0xfdab, 0xfd67, 0xfd18, 0xfcd5, 0xfca0, 0xfc9f,
+ 0xfcce, 0xfd07, 0xfd48, 0xfd98, 0xfe0d, 0xfe9f,
+ 0xff07, 0xff2e, 0xff36, 0xff2a, 0xff10, 0xfeed,
+ 0xfed5, 0xfef8, 0xff4d, 0xffa7, 0xfff8, 0x003d,
+ 0x0080, 0x00c0, 0x00ec, 0x010c, 0x0126, 0x0127,
+ 0x0134, 0x0169, 0x01a2, 0x01c4, 0x01d6, 0x01d9,
+ 0x01bf, 0x0191, 0x0189, 0x01b8, 0x01f3, 0x0226,
+ 0x023e, 0x0231, 0x0238, 0x0268, 0x02a9, 0x02f1,
+ 0x0314, 0x030c, 0x0326, 0x036a, 0x03a9, 0x03dc,
+ 0x03fb, 0x0407, 0x0404, 0x03e3, 0x03b5, 0x0388,
+ 0x034d, 0x0319, 0x02f9, 0x02e3, 0x02e1, 0x02e7,
+ 0x02e5, 0x02dd, 0x02ab, 0x0256, 0x0219, 0x0201,
+ 0x01f3, 0x01ed, 0x01ee, 0x01f1, 0x01f7, 0x0205,
+ 0x0218, 0x0216, 0x01f2, 0x01c3, 0x0185, 0x0144,
+ 0x0119, 0x00e8, 0x00af, 0x00a9, 0x00c6, 0x00b8,
+ 0x0086, 0x006a, 0x0066, 0x0053, 0x001b, 0xffce,
+ 0xff89, 0xff60, 0xff61, 0xff7f, 0xff8e, 0xff7e,
+ 0xff57, 0xff17, 0xfee0, 0xfec9, 0xfeb6, 0xfe97,
+ 0xfe6f, 0xfe4a, 0xfe41, 0xfe4b, 0xfe4b, 0xfe37,
+ 0xfe01, 0xfdb7, 0xfd78, 0xfd36, 0xfd0b, 0xfd09,
+ 0xfcff, 0xfcec, 0xfce1, 0xfcc6, 0xfc9c, 0xfc5b,
+ 0xfbfe, 0xfbb0, 0xfb72, 0xfb46, 0xfb49, 0xfb5c,
+ 0xfb7c, 0xfbb8, 0xfbcf, 0xfbba, 0xfbaa, 0xfb8b,
+ 0xfb6b, 0xfb77, 0xfb95, 0xfbb4, 0xfbc5, 0xfbc1,
+ 0xfbca, 0xfbd7, 0xfbe4, 0xfc15, 0xfc39, 0xfc37,
+ 0xfc46, 0xfc6c, 0xfc98, 0xfcbe, 0xfcd5, 0xfd00,
+ 0xfd34, 0xfd46, 0xfd61, 0xfda4, 0xfe0e, 0xfeb5,
+ 0xff65, 0xffcb, 0xfffc, 0x0012, 0x0006, 0xfff0,
+ 0xffe0, 0xffd3, 0xffef, 0x003c, 0x0084, 0x00aa,
+ 0x00b5, 0x00a8, 0x00a2, 0x00c4, 0x00fc, 0x0122,
+ 0x0137, 0x014a, 0x0156, 0x0164, 0x018e, 0x01c0,
+ 0x01d0, 0x01d7, 0x01e8, 0x01e1, 0x01ca, 0x01bc,
+ 0x01a9, 0x018d, 0x0162, 0x0115, 0x00c7, 0x009b,
+ 0x009d, 0x00b3, 0x00a6, 0x0097, 0x00ca, 0x0119,
+ 0x0157, 0x0182, 0x018b, 0x0193, 0x01b0, 0x01ba,
+ 0x01a7, 0x017a, 0x013c, 0x0115, 0x0110, 0x0129,
+ 0x0160, 0x01a3, 0x01ec, 0x0217, 0x01ef, 0x01a2,
+ 0x0171, 0x015d, 0x015d, 0x0153, 0x013f, 0x0130,
+ 0x00fb, 0x009f, 0x004f, 0x0003, 0xffe3, 0x000f,
+ 0x004a, 0x007a, 0x00a8, 0x00cc, 0x010c, 0x0161,
+ 0x0184, 0x0175, 0x0156, 0x0144, 0x0151, 0x014d,
+ 0x0126, 0x00fd, 0x00da, 0x00cd, 0x00e9, 0x0112,
+ 0x0137, 0x0154, 0x015a, 0x014e, 0x0137, 0x011f,
+ 0x0113, 0x0101, 0x00e2, 0x00d1, 0x00d9, 0x00ea,
+ 0x0102, 0x011d, 0x012c, 0x0133, 0x0141, 0x014c,
+ 0x0151, 0x0155, 0x0134, 0x00fc, 0x00d7, 0x00bb,
+ 0x00ac, 0x00af, 0x00ab, 0x00c2, 0x00fb, 0x0121,
+ 0x0146, 0x015e, 0x012f, 0x00ec, 0x00b1, 0x0064,
+ 0x0039, 0x002e, 0x000d, 0xfff7, 0xffea, 0xffc1,
+ 0xffa4, 0xffb1, 0xffdc, 0x0024, 0x0070, 0x00a5,
+ 0x00bf, 0x00c3, 0x00c4, 0x00b6, 0x007e, 0x0032,
+ 0xfff0, 0xffc5, 0xffbc, 0xffc4, 0xffd1, 0xfff0,
+ 0x0014, 0x0028, 0x003c, 0x0053, 0x0053, 0x0045,
+ 0x0041, 0x0017, 0xffb0, 0xff42, 0xfedf, 0xfe7c,
+ 0xfe37, 0xfe04, 0xfdd7, 0xfdd7, 0xfdf5, 0xfe03,
+ 0xfe05, 0xfdf3, 0xfdd7, 0xfdce, 0xfdc0, 0xfd89,
+ 0xfd28, 0xfcb2, 0xfc4a, 0xfbf7, 0xfba6, 0xfb5c,
+ 0xfb18, 0xfad3, 0xfa99, 0xfa6b, 0xfa4e, 0xfa55,
+ 0xfa85, 0xfad2, 0xfb1e, 0xfb4e, 0xfb63, 0xfb76,
+ 0xfba4, 0xfbf0, 0xfc3e, 0xfc8f, 0xfce1, 0xfd0c,
+ 0xfd1c, 0xfd2a, 0xfd27, 0xfd2a, 0xfd54, 0xfd93,
+ 0xfde9, 0xfe48, 0xfe81, 0xfea4, 0xfeb8, 0xfe98,
+ 0xfe6b, 0xfe6c, 0xfe96, 0xfee5, 0xff54, 0xffc6,
+ 0x002a, 0x007e, 0x00bc, 0x0100, 0x015a, 0x01b1,
+ 0x01fa, 0x0235, 0x024e, 0x0248, 0x0246, 0x024a,
+ 0x0249, 0x0268, 0x02c3, 0x0343, 0x03c6, 0x041b,
+ 0x042a, 0x041c, 0x0419, 0x0428, 0x0445, 0x0463,
+ 0x047d, 0x0483, 0x0470, 0x045a, 0x0447, 0x0440,
+ 0x0457, 0x0472, 0x048f, 0x04bc, 0x04c6, 0x04a0,
+ 0x046d, 0x0420, 0x03d1, 0x039f, 0x0363, 0x0324,
+ 0x02ef, 0x02ae, 0x0278, 0x024c, 0x0212, 0x01e0,
+ 0x01a0, 0x0146, 0x00f7, 0x009c, 0x003c, 0xfff7,
+ 0xff9f, 0xff4e, 0xff1e, 0xfece, 0xfe7e, 0xfe54,
+ 0xfe1a, 0xfdf4, 0xfdf8, 0xfde6, 0xfdce, 0xfdba,
+ 0xfd91, 0xfd7c, 0xfd79, 0xfd6a, 0xfd60, 0xfd43,
+ 0xfd1e, 0xfd17, 0xfd09, 0xfcef, 0xfcd8, 0xfcae,
+ 0xfc92, 0xfc9e, 0xfcaf, 0xfcc6, 0xfcd4, 0xfccc,
+ 0xfcd5, 0xfcdb, 0xfcca, 0xfcd6, 0xfd05, 0xfd42,
+ 0xfd9d, 0xfe01, 0xfe51, 0xfe91, 0xfec0, 0xfed7,
+ 0xfed5, 0xfed9, 0xff02, 0xff37, 0xff77, 0xffe4,
+ 0x0057, 0x00a9, 0x00db, 0x00f2, 0x00fc, 0x0116,
+ 0x0141, 0x016b, 0x0195, 0x01c7, 0x01ed, 0x01f2,
+ 0x01ff, 0x023a, 0x02a9, 0x0359, 0x0413, 0x0490,
+ 0x04eb, 0x053b, 0x057a, 0x05c6, 0x0615, 0x064b,
+ 0x067e, 0x06ad, 0x06c8, 0x06d7, 0x06c9, 0x06a4,
+ 0x0688, 0x0672, 0x0664, 0x0679, 0x0690, 0x0685,
+ 0x0671, 0x0667, 0x065f, 0x065e, 0x0662, 0x064d,
+ 0x0635, 0x063f, 0x063d, 0x0614, 0x05e6, 0x05a8,
+ 0x0549, 0x04de, 0x0479, 0x0440, 0x0440, 0x0441,
+ 0x044a, 0x0474, 0x0498, 0x0495, 0x045d, 0x0408,
+ 0x03d6, 0x03c4, 0x03af, 0x038b, 0x032d, 0x029e,
+ 0x0225, 0x01c0, 0x0175, 0x015d, 0x013b, 0x010c,
+ 0x0108, 0x0119, 0x0126, 0x0138, 0x0130, 0x00fa,
+ 0x00b2, 0x006f, 0x0032, 0x0005, 0xffef, 0xffc6,
+ 0xff7f, 0xff50, 0xff38, 0xff15, 0xff08, 0xff17,
+ 0xff19, 0xff0f, 0xfef7, 0xfedd, 0xfed0, 0xfeba,
+ 0xfea0, 0xfe8b, 0xfe5f, 0xfe24, 0xfdd9, 0xfd7a,
+ 0xfd23, 0xfcc7, 0xfc64, 0xfc3f, 0xfc55, 0xfc7f,
+ 0xfcbe, 0xfcf4, 0xfd1b, 0xfd57, 0xfd98, 0xfdd0,
+ 0xfdea, 0xfdba, 0xfd6f, 0xfd4b, 0xfd43, 0xfd46,
+ 0xfd4f, 0xfd5d, 0xfd87, 0xfdac, 0xfdb0, 0xfdc5,
+ 0xfe0a, 0xfe55, 0xfe81, 0xfea3, 0xfeee, 0xff38,
+ 0xff32, 0xfefe, 0xfedc, 0xfee4, 0xff46, 0xffd8,
+ 0x0028, 0x003b, 0x0053, 0x006b, 0x008c, 0x00c1,
+ 0x00cd, 0x00b3, 0x00a7, 0x0097, 0x0078, 0x0067,
+ 0x0073, 0x00bd, 0x0136, 0x018c, 0x01bf, 0x01f3,
+ 0x0213, 0x0217, 0x01df, 0x015e, 0x00ef, 0x00b3,
+ 0x0084, 0x0089, 0x00be, 0x00f5, 0x0148, 0x0194,
+ 0x01ac, 0x01c9, 0x01dc, 0x01be, 0x01a2, 0x018f,
+ 0x0166, 0x0127, 0x00ac, 0xfff9, 0xff62, 0xfefa,
+ 0xfe9d, 0xfe59, 0xfe47, 0xfe58, 0xfe85, 0xfee2,
+ 0xff5b, 0xffa9, 0xffaf, 0xff8f, 0xff60, 0xff22,
+ 0xfef0, 0xfefb, 0xff2b, 0xff40, 0xff34, 0xff0b,
+ 0xfeba, 0xfe6d, 0xfe2a, 0xfdc1, 0xfd82, 0xfdb0,
+ 0xfde2, 0xfddd, 0xfdc4, 0xfdaf, 0xfdc5, 0xfe04,
+ 0xfe2c, 0xfe50, 0xfea8, 0xff18, 0xff77, 0xffa8,
+ 0xffa9, 0xffc5, 0xfffe, 0x0000, 0xffd3, 0xffd5,
+ 0x0043, 0x00ee, 0x0162, 0x01b2, 0x0230, 0x0291,
+ 0x0297, 0x0282, 0x025d, 0x0247, 0x025c, 0x0226,
+ 0x01a4, 0x0158, 0x0139, 0x0155, 0x01cd, 0x021d,
+ 0x023f, 0x0299, 0x02c3, 0x0281, 0x023c, 0x01f7,
+ 0x01ad, 0x018b, 0x018d, 0x01db, 0x0276, 0x02af,
+ 0x023a, 0x01a7, 0x0180, 0x01ab, 0x01c7, 0x01e6,
+ 0x024c, 0x02b8, 0x02ba, 0x0237, 0x017e, 0x0126,
+ 0x0146, 0x0162, 0x017b, 0x01ce, 0x022b, 0x026a,
+ 0x0255, 0x01a5, 0x00bb, 0x0001, 0xff7f, 0xff7a,
+ 0x0008, 0x00ce, 0x01b0, 0x026b, 0x027a, 0x0202,
+ 0x0179, 0x0147, 0x01a3, 0x0219, 0x0252, 0x0288,
+ 0x0281, 0x0223, 0x01e9, 0x01b5, 0x0159, 0x011f,
+ 0x00d6, 0x0069, 0x0024, 0xffd3, 0xff90, 0xfff8,
+ 0x00e1, 0x01c9, 0x024a, 0x0209, 0x0168, 0x00eb,
+ 0x0051, 0xff9c, 0xff5f, 0xff9e, 0xffc4, 0xff91,
+ 0xff3e, 0xfecb, 0xfdf3, 0xfd1a, 0xfcf4, 0xfd8b,
+ 0xfe69, 0xff2a, 0xffd3, 0x0071, 0x008f, 0xffeb,
+ 0xff2a, 0xfeff, 0xff7f, 0x002d, 0x0072, 0x0068,
+ 0x0073, 0x0043, 0xff93, 0xfed7, 0xfe94, 0xfee1,
+ 0xff5b, 0xffb0, 0x0019, 0x009a, 0x00b6, 0x009c,
+ 0x00d2, 0x010f, 0x0120, 0x018f, 0x0275, 0x034b,
+ 0x03ab, 0x0343, 0x0235, 0x0152, 0x0104, 0x010e,
+ 0x0142, 0x0178, 0x01aa, 0x0208, 0x0270, 0x02ba,
+ 0x0326, 0x03c2, 0x0480, 0x055a, 0x05dc, 0x05b0,
+ 0x0534, 0x04f6, 0x0555, 0x0602, 0x063a, 0x0603,
+ 0x05ba, 0x0514, 0x041a, 0x0353, 0x02b3, 0x023f,
+ 0x0256, 0x02b4, 0x02de, 0x02d8, 0x02a9, 0x026b,
+ 0x0232, 0x01a4, 0x00d8, 0x009a, 0x0130, 0x0206,
+ 0x026f, 0x0249, 0x0201, 0x01c4, 0x0132, 0x0052,
+ 0xffe9, 0x0078, 0x015b, 0x0170, 0x00b4, 0xffd3,
+ 0xfef3, 0xfe3b, 0xfde2, 0xfdd0, 0xfe35, 0xfee3,
+ 0xff1f, 0xff18, 0xff03, 0xfe54, 0xfd5c, 0xfc80,
+ 0xfb97, 0xfb58, 0xfbef, 0xfc4f, 0xfc7d, 0xfce4,
+ 0xfd48, 0xfdfd, 0xfec7, 0xfecc, 0xfe8e, 0xfe87,
+ 0xfe35, 0xfdbd, 0xfd70, 0xfd4f, 0xfd8b, 0xfdb5,
+ 0xfd59, 0xfd09, 0xfd04, 0xfce7, 0xfc8d, 0xfbfd,
+ 0xfb9d, 0xfbb4, 0xfbdc, 0xfbfc, 0xfc3d, 0xfc6b,
+ 0xfcac, 0xfce2, 0xfc5d, 0xfb95, 0xfb74, 0xfbb7,
+ 0xfc0b, 0xfcaf, 0xfd8e, 0xfe5b, 0xfee1, 0xfed3,
+ 0xfe5a, 0xfe2f, 0xfe9c, 0xff2b, 0xff8f, 0xffd3,
+ 0xffd6, 0xff9f, 0xff62, 0xff20, 0xfee8, 0xfeb7,
+ 0xfe7b, 0xfe8b, 0xfeec, 0xff38, 0xff9e, 0x0041,
+ 0x00c2, 0x0115, 0x0146, 0x017c, 0x01f3, 0x0221,
+ 0x01de, 0x0202, 0x027e, 0x02c0, 0x02d6, 0x02a0,
+ 0x021a, 0x0194, 0x00d4, 0xfffb, 0xffab, 0xffcf,
+ 0x0006, 0x004c, 0x00a2, 0x0139, 0x0206, 0x024b,
+ 0x01a2, 0x00c6, 0x006a, 0x0054, 0x004e, 0x0080,
+ 0x00bd, 0x00c9, 0x007e, 0xffac, 0xfede, 0xfed5,
+ 0xff58, 0x0003, 0x0080, 0x0030, 0xff29, 0xfe21,
+ 0xfdc8, 0xfe4e, 0xfec8, 0xfe80, 0xfe34, 0xfe53,
+ 0xfe63, 0xfe51, 0xfe74, 0xfef3, 0xff65, 0xff3b,
+ 0xfeb7, 0xfe76, 0xfea3, 0xff0a, 0xff63, 0x0013,
+ 0x016d, 0x025c, 0x0249, 0x01f2, 0x0184, 0x0109,
+ 0x00f6, 0x010a, 0x00d3, 0x0042, 0xff55, 0xfe89,
+ 0xfe60, 0xfeba, 0xff56, 0xffd9, 0xffec, 0xffd3,
+ 0xfff6, 0x0026, 0xffe2, 0xff1e, 0xfe8a, 0xfeb6,
+ 0xff7b, 0x0038, 0x007d, 0x0095, 0x00d2, 0x00fe,
+ 0x0131, 0x018f, 0x01a2, 0x00f9, 0xffac, 0xfe92,
+ 0xfe92, 0xff4b, 0x002c, 0x0131, 0x01c3, 0x019b,
+ 0x0169, 0x0176, 0x01b7, 0x0201, 0x01fc, 0x01e3,
+ 0x01d6, 0x016c, 0x0109, 0x0147, 0x01a2, 0x0141,
+ 0xffe1, 0xfe2b, 0xfd44, 0xfda5, 0xfee0, 0x0010,
+ 0x00a4, 0x00d2, 0x00ce, 0x00a3, 0x00bd, 0x0108,
+ 0x00ff, 0x00c4, 0x00a9, 0x0093, 0x0078, 0x0091,
+ 0x00e9, 0x00f1, 0x0036, 0xff53, 0xff38, 0xfff4,
+ 0x008b, 0x0009, 0xfec8, 0xfe08, 0xfe8d, 0x0007,
+ 0x0134, 0x0156, 0x0145, 0x018e, 0x0182, 0x011e,
+ 0x0127, 0x01a0, 0x01c4, 0x014a, 0x0105, 0x017d,
+ 0x0200, 0x020f, 0x01d8, 0x0140, 0x003d, 0xff3e,
+ 0xfeda, 0xff92, 0x00fa, 0x01cc, 0x01b9, 0x0199,
+ 0x01bc, 0x01c9, 0x01b5, 0x01ac, 0x01c3, 0x01d2,
+ 0x019b, 0x016b, 0x01ae, 0x0206, 0x0236, 0x028f,
+ 0x0276, 0x010e, 0xff32, 0xfe99, 0xff96, 0x00dd,
+ 0x017a, 0x01d5, 0x0236, 0x0249, 0x022a, 0x0218,
+ 0x022d, 0x0277, 0x0261, 0x01dc, 0x01e0, 0x022b,
+ 0x0208, 0x0247, 0x031f, 0x034d, 0x027a, 0x0176,
+ 0x010f, 0x0161, 0x0181, 0x00e3, 0x0086, 0x014d,
+ 0x025c, 0x0225, 0x00e9, 0x00e4, 0x0319, 0x05d3,
+ 0x072b, 0x06d1, 0x05a5, 0x0492, 0x0314, 0x00b1,
+ 0xff1f, 0xff72, 0x005e, 0x00d4, 0x00bb, 0x008e,
+ 0x00fc, 0x0123, 0x006b, 0x0048, 0x00b2, 0x0046,
+ 0xff1c, 0xfd64, 0xfbb2, 0xfb34, 0xfb72, 0xfc06,
+ 0xfd19, 0xfd7b, 0xfd49, 0xfdd5, 0xfecf, 0xffef,
+ 0x00e5, 0x0125, 0x01c7, 0x025a, 0x00e6, 0xfec2,
+ 0xfdda, 0xfe1a, 0xffb2, 0x01aa, 0x0248, 0x01b8,
+ 0x0045, 0xfe08, 0xfc12, 0xfae6, 0xfac3, 0xfc1d,
+ 0xfe13, 0xff32, 0xff6a, 0xffc7, 0x0074, 0x007a,
+ 0xffbc, 0xff1d, 0xff9e, 0x018b, 0x0308, 0x02b6,
+ 0x01f0, 0x0108, 0xffb1, 0xff1a, 0xfed9, 0xfe82,
+ 0xff15, 0xff1e, 0xfdb9, 0xfc86, 0xfb40, 0xfa33,
+ 0xfb68, 0xfe2f, 0x00f2, 0x027a, 0x0180, 0xffd9,
+ 0xff5e, 0xff61, 0x008f, 0x0285, 0x02e1, 0x029b,
+ 0x02c1, 0x01c8, 0x0051, 0xff3c, 0xfd81, 0xfc48,
+ 0xfd0e, 0xfebd, 0x00ae, 0x028b, 0x030b, 0x0267,
+ 0x0190, 0x0085, 0x0074, 0x0242, 0x0396, 0x02f7,
+ 0x023f, 0x0253, 0x0274, 0x0245, 0x0160, 0x0090,
+ 0x016d, 0x02e0, 0x0317, 0x02db, 0x0319, 0x0315,
+ 0x025b, 0x01c4, 0x0257, 0x0362, 0x032c, 0x01de,
+ 0x00fb, 0x010c, 0x0174, 0x0177, 0x016c, 0x01f9,
+ 0x0207, 0x00e8, 0x004b, 0x00cd, 0x0138, 0x0196,
+ 0x0232, 0x0273, 0x029e, 0x02c4, 0x0262, 0x026f,
+ 0x0341, 0x032b, 0x0236, 0x01f7, 0x0260, 0x02d3,
+ 0x032f, 0x0335, 0x0308, 0x02c0, 0x020e, 0x014d,
+ 0x010a, 0x0105, 0x00ee, 0x00e8, 0x00d2, 0x007f,
+ 0x008d, 0x00f3, 0x0074, 0xff7b, 0xff47, 0xff23,
+ 0xff1b, 0x004d, 0x0145, 0x0094, 0xff15, 0xfd40,
+ 0xfbe2, 0xfbf3, 0xfc64, 0xfc97, 0xfd12, 0xfd33,
+ 0xfcf9, 0xfd82, 0xfec6, 0xffee, 0x0003, 0xfea6,
+ 0xfd33, 0xfcdb, 0xfcc4, 0xfba0, 0xf9a8, 0xf855,
+ 0xf80c, 0xf812, 0xf901, 0xfb3e, 0xfd15, 0xfdb3,
+ 0xfdc3, 0xfd87, 0xfd97, 0xfe0d, 0xfd9f, 0xfcad,
+ 0xfc8f, 0xfcaf, 0xfcca, 0xfd21, 0xfcaa, 0xfbbe,
+ 0xfb92, 0xfb41, 0xfad3, 0xfb5f, 0xfbbd, 0xfb6d,
+ 0xfb4c, 0xfaf2, 0xfae1, 0xfba1, 0xfb9a, 0xfb01,
+ 0xfb2e, 0xfb63, 0xfb90, 0xfc0f, 0xfc67, 0xfd33,
+ 0xfdfa, 0xfd8c, 0xfd89, 0xfed8, 0x0039, 0x01c2,
+ 0x033c, 0x03ca, 0x03b0, 0x02b5, 0x0110, 0x0004,
+ 0xff05, 0xfd59, 0xfc19, 0xfbeb, 0xfca1, 0xfd9b,
+ 0xfe47, 0xff28, 0x0004, 0x0003, 0x0007, 0x00a2,
+ 0x0112, 0x015b, 0x0197, 0x01fd, 0x0342, 0x0458,
+ 0x0434, 0x0402, 0x03b7, 0x0246, 0x00e3, 0x00d7,
+ 0x01ec, 0x0384, 0x03d7, 0x01dd, 0xffcb, 0xffaf,
+ 0x0109, 0x0329, 0x0586, 0x0710, 0x0761, 0x06ee,
+ 0x063c, 0x0616, 0x07a1, 0x0b1f, 0x0f5c, 0x131b,
+ 0x1585, 0x1585, 0x1383, 0x1157, 0x0fd8, 0x0fc1,
+ 0x1172, 0x1332, 0x14c2, 0x1738, 0x186a, 0x16e8,
+ 0x14f9, 0x1347, 0x10fc, 0x0e61, 0x0b8b, 0x09a0,
+ 0x09f9, 0x0abb, 0x0a01, 0x0880, 0x075b, 0x0772,
+ 0x0826, 0x07aa, 0x066c, 0x0536, 0x02cc, 0xff55,
+ 0xfcc5, 0xfc05, 0xfcba, 0xfdc6, 0xfe59, 0xfe53,
+ 0xfc6e, 0xf7dd, 0xf2bd, 0xef3f, 0xed93, 0xec80,
+ 0xea1c, 0xe6fd, 0xe5a8, 0xe429, 0xddb1, 0xd30c,
+ 0xcb0e, 0xcb8d, 0xd38f, 0xdc5c, 0xe129, 0xe196,
+ 0xdd4e, 0xd417, 0xc870, 0xbf10, 0xbcd7, 0xc1c2,
+ 0xc7af, 0xca8f, 0xcc94, 0xd0f4, 0xd6e5, 0xd9a5,
+ 0xd72a, 0xd59d, 0xdbde, 0xe893, 0xf52d, 0xfc66,
+ 0xfd1f, 0xf9a7, 0xf39d, 0xeb88, 0xe536, 0xe52d,
+ 0xe949, 0xebb2, 0xebae, 0xec01, 0xed49, 0xef03,
+ 0xf079, 0xf1c2, 0xf4fd, 0xf902, 0xfa7f, 0xfbf0,
+ 0xff72, 0x01f0, 0x03b5, 0x0618, 0x0745, 0x08bb,
+ 0x0abb, 0x09cf, 0x08fc, 0x0b75, 0x0cec, 0x0d0c,
+ 0x0ed0, 0x1051, 0x114f, 0x130b, 0x1375, 0x133c,
+ 0x140e, 0x13b7, 0x133a, 0x1571, 0x1809, 0x197e,
+ 0x1b4c, 0x1c76, 0x1c84, 0x1ccd, 0x1c0b, 0x19a1,
+ 0x17ed, 0x1754, 0x1718, 0x1830, 0x1a71, 0x1cbc,
+ 0x1f5a, 0x220d, 0x2363, 0x22e0, 0x2130, 0x1fad,
+ 0x1fa0, 0x20c1, 0x21cb, 0x2251, 0x2238, 0x206e,
+ 0x1c54, 0x1748, 0x12bb, 0x0f12, 0x0d99, 0x0f82,
+ 0x1362, 0x169c, 0x1736, 0x14e5, 0x1206, 0x1036,
+ 0x0df7, 0x0af0, 0x08fb, 0x0884, 0x090b, 0x0a27,
+ 0x0b0e, 0x0bff, 0x0cd8, 0x0bb1, 0x08cf, 0x0688,
+ 0x0537, 0x0500, 0x06bb, 0x09b6, 0x0d2c, 0x106d,
+ 0x11b8, 0x1149, 0x10c0, 0x0fee, 0x0f23, 0x0f44,
+ 0x0f61, 0x0f09, 0x0e3f, 0x0c16, 0x098a, 0x0870,
+ 0x08ef, 0x0b8b, 0x0ffb, 0x142f, 0x17c7, 0x1ac0,
+ 0x1be4, 0x1b89, 0x19d0, 0x15c6, 0x10e1, 0x0d1e,
+ 0x0aa5, 0x094c, 0x0800, 0x0601, 0x0494, 0x03b6,
+ 0x027e, 0x018c, 0x0088, 0xfed1, 0xfd7b, 0xfcba,
+ 0xfc54, 0xfc69, 0xfb74, 0xf910, 0xf731, 0xf670,
+ 0xf6a9, 0xf79f, 0xf843, 0xf981, 0xfc2a, 0xfe2e,
+ 0xff15, 0xff6a, 0xfdb9, 0xfad4, 0xf8d7, 0xf784,
+ 0xf745, 0xf818, 0xf828, 0xf814, 0xf8a5, 0xf867,
+ 0xf7a4, 0xf689, 0xf46c, 0xf3e0, 0xf5b6, 0xf661,
+ 0xf50f, 0xf313, 0xf052, 0xedc1, 0xec24, 0xeb35,
+ 0xec31, 0xef01, 0xf103, 0xf0fe, 0xef1e, 0xec0e,
+ 0xe94e, 0xe74d, 0xe633, 0xe731, 0xe9dd, 0xec63,
+ 0xee0e, 0xeeb5, 0xee53, 0xed4c, 0xec17, 0xeb45,
+ 0xea6c, 0xe894, 0xe6d5, 0xe6dc, 0xe888, 0xeb98,
+ 0xef56, 0xf13d, 0xf059, 0xee79, 0xecd2, 0xeb6d,
+ 0xeaf8, 0xec32, 0xef3b, 0xf3b7, 0xf832, 0xfaf4,
+ 0xfbf0, 0xfbc9, 0xfae6, 0xfa79, 0xfae0, 0xfad4,
+ 0xfa9d, 0xfaa5, 0xf93c, 0xf6ce, 0xf5b0, 0xf603,
+ 0xf81c, 0xfc38, 0xff67, 0x0096, 0x01de, 0x02af,
+ 0x01c5, 0x0049, 0xff12, 0xfe94, 0xfed4, 0xfe59,
+ 0xfd3a, 0xfc91, 0xfb8d, 0xfa7a, 0xfb2e, 0xfd43,
+ 0xff6f, 0x018c, 0x031d, 0x02e0, 0x0000, 0xfb5f,
+ 0xf719, 0xf480, 0xf463, 0xf709, 0xfb14, 0xff16,
+ 0x01d3, 0x01dc, 0x0079, 0x006b, 0x019e, 0x0292,
+ 0x01f3, 0xfece, 0xfa76, 0xf6cc, 0xf4b7, 0xf5f6,
+ 0xfaab, 0x0080, 0x0664, 0x0abe, 0x0b1e, 0x08aa,
+ 0x05de, 0x036d, 0x01be, 0x0084, 0xffd6, 0x00bf,
+ 0x01c7, 0x0163, 0x00f0, 0x0082, 0xffbc, 0x002d,
+ 0x01ac, 0x033e, 0x04cd, 0x04d0, 0x032c, 0x0205,
+ 0x0109, 0xff7c, 0xfe1f, 0xfca6, 0xfb5f, 0xfb15,
+ 0xfb30, 0xfc6e, 0xff60, 0x01eb, 0x033a, 0x0372,
+ 0x01aa, 0xfe72, 0xfaa4, 0xf69f, 0xf486, 0xf56f,
+ 0xf8a1, 0xfdde, 0x02e0, 0x0508, 0x0511, 0x0352,
+ 0xff9e, 0xfc28, 0xf9ce, 0xf80a, 0xf7de, 0xf92b,
+ 0xfb33, 0xfe96, 0x0279, 0x0595, 0x0841, 0x09d4,
+ 0x0942, 0x06ef, 0x0365, 0xffb2, 0xfd0d, 0xfb6e,
+ 0xfada, 0xfb52, 0xfc03, 0xfcb7, 0xfd77, 0xfdee,
+ 0xfe30, 0xfdd1, 0xfcc0, 0xfc2f, 0xfbc7, 0xfa87,
+ 0xf96e, 0xf8dc, 0xf868, 0xf899, 0xf88c, 0xf754,
+ 0xf67d, 0xf6ae, 0xf7dc, 0xfafb, 0xfe6e, 0xfff4,
+ 0x00de, 0x01d0, 0x0172, 0x0042, 0xfed6, 0xfcf7,
+ 0xfbdb, 0xfc04, 0xfcb3, 0xfe19, 0xffb9, 0x0082,
+ 0x0112, 0x01e4, 0x023f, 0x01df, 0x0082, 0xfe0b,
+ 0xfbe7, 0xfbcf, 0xfdaf, 0xfffb, 0x01be, 0x03b4,
+ 0x0625, 0x07a4, 0x07a3, 0x071a, 0x064f, 0x0544,
+ 0x04c8, 0x0508, 0x056b, 0x05f3, 0x068a, 0x06d8,
+ 0x071a, 0x06ff, 0x05e6, 0x04c1, 0x0422, 0x0395,
+ 0x03cb, 0x03eb, 0x01b9, 0xff91, 0xffc9, 0xff84,
+ 0xfed5, 0xffe8, 0xff20, 0xfb34, 0xf8b5, 0xf80f,
+ 0xf7cd, 0xf92e, 0xfb02, 0xfc01, 0xfd42, 0xfd8f,
+ 0xfcbf, 0xfda0, 0x0012, 0x029c, 0x04f7, 0x062f,
+ 0x067a, 0x05f3, 0x034c, 0x0078, 0xff6d, 0xfe88,
+ 0xfeb3, 0x00aa, 0x0121, 0x00fd, 0x02ce, 0x02f4,
+ 0xfff1, 0xfd3b, 0xfb2c, 0xf993, 0xfa10, 0xfb8a,
+ 0xfd31, 0x0014, 0x025e, 0x0242, 0x016a, 0x013e,
+ 0x0287, 0x056b, 0x0758, 0x0784, 0x0874, 0x09c0,
+ 0x0970, 0x07d7, 0x04e2, 0x020a, 0x0204, 0x01cd,
+ 0xff45, 0xfee1, 0xff6b, 0xfc8e, 0xfae2, 0xfc49,
+ 0xfbb8, 0xfb40, 0xfd51, 0xfce8, 0xfa3d, 0xf92b,
+ 0xf7f5, 0xf681, 0xf7a6, 0xfafd, 0xfef2, 0x0191,
+ 0x0125, 0xfee9, 0xfc90, 0xfbaf, 0xfd54, 0xff04,
+ 0xff62, 0xff6f, 0xfdaa, 0xfade, 0xf9ec, 0xf933,
+ 0xf934, 0xfcad, 0xfffc, 0x00c3, 0x0191, 0x01ce,
+ 0x00ed, 0x00ae, 0x01b2, 0x04e1, 0x0828, 0x089b,
+ 0x0920, 0x0936, 0x05b0, 0x03f7, 0x050c, 0x02ce,
+ 0x00b7, 0x0139, 0xff1d, 0xfd80, 0xff4b, 0xffca,
+ 0x00eb, 0x0326, 0xffce, 0xfa55, 0xf8c8, 0xf7cc,
+ 0xf7b7, 0xfa56, 0xfa29, 0xf6e7, 0xf61f, 0xf773,
+ 0xf923, 0xfc08, 0xfe4f, 0xfde3, 0xfc91, 0xfc99,
+ 0xfddf, 0xff7c, 0x007a, 0xfffd, 0xfef6, 0xfee6,
+ 0xfef7, 0xfe59, 0xfe4b, 0xff86, 0x010e, 0x01aa,
+ 0x026b, 0x0513, 0x06cc, 0x05b4, 0x0568, 0x0537,
+ 0x0345, 0x048e, 0x0745, 0x0542, 0x0483, 0x07c5,
+ 0x077a, 0x0598, 0x0645, 0x0560, 0x04d2, 0x07af,
+ 0x0909, 0x086b, 0x0801, 0x0511, 0x0137, 0x0162,
+ 0x04c1, 0x07c5, 0x08fc, 0x0873, 0x0563, 0x019a,
+ 0x02d7, 0x0666, 0x04e0, 0x0388, 0x0593, 0x0369,
+ 0x00af, 0x02e1, 0x023c, 0x0010, 0x0353, 0x057a,
+ 0x03d4, 0x03e9, 0x0471, 0x0484, 0x05f7, 0x0755,
+ 0x0849, 0x0832, 0x07ed, 0x0abf, 0x0b1d, 0x0628,
+ 0x0541, 0x074e, 0x05ea, 0x06a9, 0x0740, 0x0195,
+ 0xff53, 0x0244, 0x00b6, 0xfee9, 0x012d, 0x0111,
+ 0xfffe, 0x01d7, 0x0319, 0x0390, 0x04b1, 0x03dc,
+ 0x01f8, 0x02b0, 0x0475, 0x03bf, 0x0252, 0x0317,
+ 0x03e0, 0x03f7, 0x0590, 0x052e, 0x0151, 0x0026,
+ 0x0085, 0xfcc7, 0xf95c, 0xf9f6, 0xf9f7, 0xf836,
+ 0xf6f5, 0xf4e4, 0xf0d5, 0xeda8, 0xee07, 0xef0d,
+ 0xee03, 0xee35, 0xeed5, 0xea98, 0xe5b9, 0xe5e8,
+ 0xe65f, 0xe53a, 0xe78a, 0xec3f, 0xee66, 0xeead,
+ 0xef9e, 0xefd3, 0xeeb4, 0xefa8, 0xf1e4, 0xf218,
+ 0xf537, 0xfd65, 0x0167, 0xffb9, 0xff99, 0xfff6,
+ 0xfe8b, 0xfebe, 0x00c4, 0x031e, 0x0528, 0x0518,
+ 0x0373, 0x00ce, 0xfd13, 0xfbd8, 0xfd24, 0xfd4d,
+ 0xfe96, 0x016b, 0x0178, 0x00d1, 0x01fe, 0x0183,
+ 0xfeef, 0xfcce, 0xfbf7, 0xfca8, 0xfe0b, 0x006a,
+ 0x0445, 0x061a, 0x0532, 0x053c, 0x062e, 0x075e,
+ 0x0997, 0x0b0b, 0x0b93, 0x0b80, 0x08d8, 0x06ce,
+ 0x0844, 0x08dc, 0x08b2, 0x0a80, 0x0a6d, 0x0971,
+ 0x0c28, 0x0d6a, 0x0aa6, 0x0b0a, 0x0d33, 0x0a1a,
+ 0x075f, 0x0bd2, 0x10b4, 0x11a3, 0x1419, 0x16b3,
+ 0x14c7, 0x1474, 0x189f, 0x1a4d, 0x19fc, 0x1b30,
+ 0x1957, 0x1547, 0x158d, 0x176b, 0x15f6, 0x13f3,
+ 0x14ea, 0x17e5, 0x18be, 0x166e, 0x161f, 0x181d,
+ 0x167f, 0x12b4, 0x10c7, 0x0dc7, 0x0a1c, 0x0a66,
+ 0x0b96, 0x0a22, 0x09ea, 0x0a6c, 0x07a5, 0x06fc,
+ 0x0bb4, 0x0cd2, 0x08e1, 0x084e, 0x08b1, 0x0533,
+ 0x0353, 0x03b2, 0x029f, 0x0375, 0x0581, 0x0540,
+ 0x07b7, 0x0c58, 0x0b34, 0x07c8, 0x07e1, 0x0669,
+ 0x01ec, 0x0026, 0x00e7, 0x016a, 0x0355, 0x055c,
+ 0x03a6, 0x01be, 0x0319, 0x0259, 0xff37, 0xfff9,
+ 0x00b0, 0xfc74, 0xfa32, 0xfcab, 0xfe09, 0xfd0a,
+ 0xfb4e, 0xfa11, 0xfade, 0xfb8a, 0xfb66, 0xfdc2,
+ 0x0093, 0x005e, 0xff42, 0xfd62, 0xf9e7, 0xf8a0,
+ 0xf90e, 0xf6aa, 0xf5a6, 0xfa18, 0xfba7, 0xf7f7,
+ 0xf9c5, 0xffce, 0x0059, 0xffdb, 0x00e4, 0xfcf6,
+ 0xf9a3, 0xfb11, 0xf822, 0xf3ea, 0xf616, 0xf74f,
+ 0xf6ef, 0xfbaf, 0xff84, 0xfef4, 0xff1d, 0xfd8e,
+ 0xf86f, 0xf428, 0xefc8, 0xeab7, 0xea76, 0xeeaf,
+ 0xf175, 0xf382, 0xf87f, 0xfcfa, 0xfd41, 0xfc0d,
+ 0xf9d8, 0xf577, 0xf2d0, 0xf2ce, 0xf31c, 0xf549,
+ 0xf790, 0xf66d, 0xf541, 0xf593, 0xf52e, 0xf4b8,
+ 0xf41d, 0xf4b5, 0xf82a, 0xf898, 0xf4bd, 0xf48f,
+ 0xf78a, 0xf758, 0xf42b, 0xf0f3, 0xefa0, 0xef92,
+ 0xefd1, 0xf25b, 0xf4ae, 0xf3f1, 0xf40d, 0xf22d,
+ 0xeb4e, 0xe948, 0xebfe, 0xea11, 0xe961, 0xed47,
+ 0xecab, 0xe99e, 0xeae4, 0xecbf, 0xec5b, 0xec24,
+ 0xed88, 0xef6a, 0xef83, 0xeef7, 0xefec, 0xf0f0,
+ 0xf140, 0xf14e, 0xf1b2, 0xf362, 0xf46a, 0xf534,
+ 0xf834, 0xf8de, 0xf6e7, 0xf7d6, 0xf758, 0xf503,
+ 0xf801, 0xf9cd, 0xf6dd, 0xf943, 0xfe8e, 0x0012,
+ 0x0205, 0x0341, 0x01f7, 0x02b0, 0x035f, 0x0274,
+ 0x0307, 0x02b9, 0x0171, 0x01c6, 0x0062, 0xfd3d,
+ 0xfca3, 0xfeb1, 0x018f, 0x027f, 0x00d7, 0x0046,
+ 0x00de, 0x005e, 0xff16, 0xfce9, 0xfbc5, 0xfc4c,
+ 0xfa5b, 0xf849, 0xfaad, 0xfd74, 0xfe4e, 0xff58,
+ 0x0028, 0x0024, 0xfe44, 0xfc23, 0xfd90, 0xfe55,
+ 0xfc78, 0xfd69, 0xfd84, 0xfaea, 0xfcf4, 0xfeec,
+ 0xfbc0, 0xfbab, 0xfe0d, 0xfe1b, 0x0033, 0x0315,
+ 0x038b, 0x040e, 0x031c, 0x0185, 0x01df, 0xff8f,
+ 0xfd2a, 0x015c, 0x04e0, 0x02ef, 0x0324, 0x0654,
+ 0x06ee, 0x05b2, 0x0479, 0x0181, 0xfea3, 0xff7a,
+ 0x0011, 0xfdee, 0xff2f, 0x01c4, 0xff49, 0xfdb5,
+ 0xfe8c, 0xfc00, 0xfb55, 0xfd8d, 0xfbd8, 0xfb43,
+ 0xfd69, 0xfbc9, 0xfb5d, 0xfe30, 0xfdbf, 0xfcba,
+ 0xfcdc, 0xfba4, 0xfcb1, 0xfe40, 0xfc16, 0xfa58,
+ 0xf9b3, 0xf8c2, 0xf9b5, 0xfa06, 0xf98a, 0xfb91,
+ 0xfc89, 0xfb6a, 0xfaf1, 0xf95d, 0xf88e, 0xfa87,
+ 0xfb2a, 0xfac5, 0xfae3, 0xfa1a, 0xfb2a, 0xfe1e,
+ 0xff38, 0xff11, 0xfdb2, 0xfca5, 0xfe4e, 0xfce6,
+ 0xf92c, 0xfc30, 0x002d, 0xfdb6, 0xfc63, 0xfe56,
+ 0xfd66, 0xfa69, 0xf921, 0xf9b1, 0xf98d, 0xf8d7,
+ 0xfafd, 0xfc85, 0xfacd, 0xfcbc, 0xfef7, 0xfa44,
+ 0xf93b, 0xfedb, 0xfe23, 0xfa02, 0xfb65, 0xfc97,
+ 0xfb87, 0xfbe1, 0xfbd9, 0xfca7, 0xff90, 0xff72,
+ 0xfd47, 0xfe20, 0xfe7a, 0xfb8d, 0xfac0, 0xfd52,
+ 0xfe12, 0xfc71, 0xfbf9, 0xfd3c, 0xfe60, 0xfd89,
+ 0xfb8f, 0xfbc5, 0xfcb4, 0xfb03, 0xfa88, 0xfd9c,
+ 0xffe0, 0x00e3, 0x01f2, 0x0114, 0x005c, 0x0151,
+ 0xffd9, 0xfd39, 0xfe32, 0x0082, 0x0188, 0x0290,
+ 0x0303, 0x02d8, 0x0418, 0x0468, 0x0167, 0x00ab,
+ 0x04a1, 0x0579, 0x02e6, 0x0516, 0x07cf, 0x0471,
+ 0x028f, 0x04a2, 0x037b, 0x0219, 0x04ee, 0x0632,
+ 0x043e, 0x02ff, 0x0272, 0x026d, 0x032e, 0x0253,
+ 0xffe4, 0xfeef, 0xff28, 0xfd47, 0xf9c9, 0xf7fe,
+ 0xf703, 0xf571, 0xf567, 0xf513, 0xf223, 0xf127,
+ 0xf39e, 0xf588, 0xf5a2, 0xf394, 0xf1c0, 0xf393,
+ 0xf4a5, 0xf49f, 0xf8e3, 0xf9dc, 0xf43e, 0xf4d8,
+ 0xf95a, 0xf7d3, 0xf873, 0xfc84, 0xfae1, 0xf982,
+ 0xfc86, 0xfd40, 0xfd82, 0xfed2, 0xfe09, 0xfe42,
+ 0xfdf8, 0xfa6f, 0xfb23, 0xfef5, 0xfe18, 0xfdb4,
+ 0x00da, 0x0210, 0x02a4, 0x0443, 0x04a5, 0x051f,
+ 0x05ab, 0x0520, 0x04f1, 0x0403, 0x02b1, 0x038d,
+ 0x0393, 0x017c, 0x010e, 0x01b6, 0x01e6, 0x02ce,
+ 0x0318, 0x011f, 0xfe12, 0xfcfc, 0xff91, 0x0152,
+ 0xffbf, 0x005d, 0x0334, 0x02af, 0xffff, 0xfd2a,
+ 0xfa4a, 0xfb00, 0xfe7e, 0xffe3, 0x0077, 0x01ea,
+ 0x0239, 0x01e3, 0x01c9, 0x0128, 0x006c, 0xff5d,
+ 0xfdf9, 0xfe27, 0xff5f, 0xff9e, 0x000d, 0x01dd,
+ 0x0306, 0x022c, 0x00d7, 0x002e, 0xff9c, 0xff0e,
+ 0xff1e, 0x0075, 0x0347, 0x04e4, 0x033a, 0x01b4,
+ 0x018f, 0xff85, 0xfe14, 0x0079, 0x0274, 0x02ed,
+ 0x0437, 0x0371, 0x021c, 0x04f2, 0x072a, 0x066f,
+ 0x07d3, 0x088d, 0x06c0, 0x0806, 0x08df, 0x0613,
+ 0x0714, 0x09bd, 0x08ce, 0x0b2b, 0x0f01, 0x0ce5,
+ 0x0bb2, 0x0cba, 0x098b, 0x0883, 0x0b43, 0x0a6b,
+ 0x0ae5, 0x0dbd, 0x0aa9, 0x07bb, 0x09c9, 0x0822,
+ 0x0500, 0x066b, 0x060e, 0x034e, 0x041e, 0x0648,
+ 0x0726, 0x0814, 0x083d, 0x066f, 0x0394, 0x0214,
+ 0x02a0, 0x02cf, 0x0362, 0x061a, 0x080c, 0x08ab,
+ 0x0915, 0x064e, 0x01be, 0xffc2, 0xfe7b, 0xfda2,
+ 0x0015, 0x0304, 0x0378, 0x0320, 0x02e3, 0x0238,
+ 0x005e, 0xfd81, 0xfc46, 0xfd6d, 0xfec0, 0x0045,
+ 0x02d4, 0x048d, 0x03e5, 0x02d2, 0x03b2, 0x0533,
+ 0x05e4, 0x070f, 0x084f, 0x08f4, 0x0aa1, 0x0c0b,
+ 0x0ba6, 0x0bc8, 0x0bbd, 0x098e, 0x07cb, 0x07bb,
+ 0x0833, 0x083e, 0x0665, 0x04e2, 0x05f0, 0x05b6,
+ 0x0400, 0x03e0, 0x0261, 0xff79, 0xfea3, 0xfcc3,
+ 0xf92f, 0xf7d9, 0xf651, 0xf33f, 0xf2d3, 0xf435,
+ 0xf4ed, 0xf6be, 0xf95f, 0xfa59, 0xf925, 0xf64b,
+ 0xf368, 0xf291, 0xf398, 0xf4c7, 0xf638, 0xf98c,
+ 0xfd91, 0xff4b, 0xff09, 0xfe3a, 0xfc70, 0xfa6f,
+ 0xfa1f, 0xfbc4, 0xfd96, 0xfde6, 0xfe03, 0xfee3,
+ 0xfe95, 0xfde9, 0xfe5f, 0xfe21, 0xfe75, 0x009b,
+ 0x0125, 0x00ff, 0x01bc, 0xff59, 0xfba8, 0xfad7,
+ 0xf9e7, 0xf988, 0xfc2d, 0xfd2d, 0xfcb8, 0xff89,
+ 0x02cb, 0x0380, 0x02ae, 0xffaf, 0xfbf9, 0xf9d8,
+ 0xf708, 0xf39b, 0xf39f, 0xf65c, 0xf856, 0xfac6,
+ 0xfe8f, 0xffb5, 0xfe3e, 0xfe0f, 0xfc9d, 0xf7f6,
+ 0xf500, 0xf3f6, 0xf30f, 0xf57d, 0xf8da, 0xf916,
+ 0xfac1, 0xff29, 0x026c, 0x053d, 0x075c, 0x072d,
+ 0x06d2, 0x0657, 0x054a, 0x0606, 0x079e, 0x0925,
+ 0x0c96, 0x102a, 0x11bd, 0x12e8, 0x1327, 0x110c,
+ 0x0e9c, 0x0d54, 0x0b9b, 0x094e, 0x0962, 0x0b20,
+ 0x0a74, 0x09ac, 0x0bf9, 0x0c8e, 0x09af, 0x07fb,
+ 0x07dc, 0x0836, 0x094a, 0x0900, 0x07d5, 0x0896,
+ 0x0a0a, 0x0a3e, 0x097e, 0x08e9, 0x0935, 0x0896,
+ 0x070e, 0x0784, 0x080b, 0x068b, 0x0601, 0x058f,
+ 0x028b, 0xff6e, 0xfd92, 0xfcaa, 0xfda3, 0xfef0,
+ 0xff8b, 0x00c8, 0x01a3, 0x0189, 0x01a5, 0x00f1,
+ 0xff1d, 0xfe19, 0xfe97, 0xffc7, 0x00e3, 0x01ec,
+ 0x02a5, 0x0281, 0x02e9, 0x03e0, 0x0343, 0x033b,
+ 0x052a, 0x056d, 0x04d7, 0x05a7, 0x050c, 0x03fd,
+ 0x04e7, 0x04d7, 0x0420, 0x0536, 0x05b8, 0x053d,
+ 0x05b8, 0x0609, 0x05b1, 0x0544, 0x042a, 0x0300,
+ 0x0367, 0x05f8, 0x08ce, 0x0953, 0x08c5, 0x0893,
+ 0x0732, 0x056f, 0x0452, 0x02af, 0x0225, 0x02d3,
+ 0x017e, 0xffed, 0x007a, 0x003e, 0xfe55, 0xfcae,
+ 0xfb81, 0xfa8c, 0xf9f4, 0xfada, 0xfda8, 0xff77,
+ 0xfeb8, 0xfcb2, 0xfa2a, 0xf8d7, 0xf966, 0xf9ec,
+ 0xfaff, 0xfd30, 0xfe48, 0xfe7c, 0xfeb3, 0xfe94,
+ 0xff46, 0x005e, 0x0145, 0x03c3, 0x05d3, 0x058b,
+ 0x0658, 0x07a1, 0x0663, 0x0542, 0x0556, 0x04bd,
+ 0x04a5, 0x058c, 0x065e, 0x0743, 0x06a9, 0x0306,
+ 0xfe84, 0xfbc9, 0xfb0e, 0xfb00, 0xfafb, 0xfb38,
+ 0xfb34, 0xfaa2, 0xf976, 0xf76d, 0xf5fc, 0xf589,
+ 0xf4d0, 0xf51b, 0xf5cf, 0xf4bc, 0xf502, 0xf686,
+ 0xf4b4, 0xf2cb, 0xf328, 0xf1c0, 0xf179, 0xf490,
+ 0xf515, 0xf41c, 0xf578, 0xf4dd, 0xf25e, 0xf280,
+ 0xf2b5, 0xf139, 0xf196, 0xf3a3, 0xf4c2, 0xf561,
+ 0xf5f8, 0xf5e1, 0xf636, 0xf79a, 0xf81f, 0xf81f,
+ 0xf9fb, 0xfbb0, 0xfb36, 0xfba6, 0xfd87, 0xfdf1,
+ 0xfd84, 0xfdbc, 0xfe59, 0xff49, 0xff86, 0xff1d,
+ 0xffd3, 0x00a2, 0x00e2, 0x0269, 0x03eb, 0x0346,
+ 0x01e5, 0x0115, 0x00bb, 0x0049, 0xff0d, 0xfe18,
+ 0xfe74, 0xff1e, 0xfee8, 0xfd3e, 0xfb7f, 0xfb1c,
+ 0xf9cc, 0xf762, 0xf768, 0xf881, 0xf82f, 0xf89e,
+ 0xf9c6, 0xf994, 0xf900, 0xf922, 0xf9f3, 0xfb2a,
+ 0xfc27, 0xfd55, 0xfeb9, 0xff84, 0xfff1, 0xff9b,
+ 0xfed5, 0xff5a, 0x0014, 0x008e, 0x02af, 0x046a,
+ 0x03f4, 0x03cf, 0x039e, 0x021b, 0x011e, 0x0073,
+ 0xff4e, 0xfe96, 0xfd85, 0xfc65, 0xfca0, 0xfc79,
+ 0xfb28, 0xf9fe, 0xf900, 0xf944, 0xfade, 0xfb25,
+ 0xfadb, 0xfba8, 0xfbcc, 0xfbd8, 0xfcec, 0xfd02,
+ 0xfc9f, 0xfd4c, 0xfda0, 0xfdc4, 0xfe7f, 0xfe19,
+ 0xfc49, 0xfab3, 0xf9d9, 0xf91d, 0xf7df, 0xf6ca,
+ 0xf6d1, 0xf72b, 0xf6b9, 0xf5c0, 0xf5f5, 0xf767,
+ 0xf714, 0xf5a1, 0xf6da, 0xf8b9, 0xf844, 0xf7bd,
+ 0xf80b, 0xf7db, 0xf6e6, 0xf566, 0xf522, 0xf5f7,
+ 0xf4f3, 0xf376, 0xf3fb, 0xf493, 0xf45a, 0xf459,
+ 0xf4c5, 0xf5c1, 0xf6b2, 0xf78b, 0xf910, 0xfa59,
+ 0xfb13, 0xfbd9, 0xfc8a, 0xfdab, 0xfe5a, 0xfde1,
+ 0xfebe, 0x0058, 0x0086, 0x01a5, 0x0368, 0x0335,
+ 0x037a, 0x04af, 0x03bc, 0x0206, 0x01b1, 0x015e,
+ 0x0095, 0x0071, 0x00f8, 0x0144, 0x0155, 0x01c4,
+ 0x01b6, 0x0079, 0xff3f, 0xfe9c, 0xfe4d, 0xfe7e,
+ 0xfeda, 0xfee9, 0xfebf, 0xfe79, 0xfe85, 0xff13,
+ 0xff8c, 0xffda, 0x0033, 0x0057, 0x0068, 0x00bf,
+ 0x00cc, 0x0012, 0xfefd, 0xfdf1, 0xfd52, 0xfd6a,
+ 0xfde2, 0xfebd, 0xffd7, 0x0036, 0xfff0, 0xff41,
+ 0xfdde, 0xfd3a, 0xfdab, 0xfd50, 0xfcf9, 0xfdd8,
+ 0xfeba, 0xffcc, 0x0112, 0x014a, 0x0127, 0x010e,
+ 0x0034, 0xfeed, 0xfd84, 0xfc9f, 0xfcff, 0xfdb7,
+ 0xfe37, 0xfe25, 0xfd56, 0xfd70, 0xfe00, 0xfd56,
+ 0xfccb, 0xfc44, 0xfac9, 0xfa6b, 0xfb07, 0xfae6,
+ 0xfadd, 0xfadf, 0xfac1, 0xfb3f, 0xfb0c, 0xfa5c,
+ 0xfb21, 0xfbed, 0xfb1f, 0xfa4c, 0xfab3, 0xfb3e,
+ 0xfaca, 0xfa84, 0xfb5e, 0xfbe0, 0xfc09, 0xfd50,
+ 0xfec8, 0xff31, 0xfef5, 0xff10, 0x0053, 0x0185,
+ 0x00f4, 0x0024, 0x0116, 0x02e7, 0x03d1, 0x03e9,
+ 0x049a, 0x058c, 0x053b, 0x04dc, 0x05d1, 0x0670,
+ 0x060e, 0x05cb, 0x054b, 0x04bb, 0x0544, 0x05e4,
+ 0x0615, 0x075e, 0x08f4, 0x08f3, 0x07e7, 0x067d,
+ 0x04bc, 0x0303, 0x0140, 0xffdb, 0xff0a, 0xfe3b,
+ 0xfe70, 0xffa7, 0x0001, 0x00b6, 0x0248, 0x01f8,
+ 0x010c, 0x021c, 0x02f3, 0x0276, 0x0298, 0x0387,
+ 0x043e, 0x0495, 0x04d4, 0x04f5, 0x04b7, 0x0496,
+ 0x0501, 0x0577, 0x0591, 0x0576, 0x05a5, 0x05cb,
+ 0x0547, 0x0550, 0x05b9, 0x0479, 0x0382, 0x04bc,
+ 0x0555, 0x04be, 0x04bd, 0x041f, 0x0286, 0x01dc,
+ 0x0260, 0x02fe, 0x0347, 0x0372, 0x0376, 0x0311,
+ 0x02d0, 0x02c2, 0x0219, 0x0165, 0x01a7, 0x0212,
+ 0x0196, 0x0133, 0x01d6, 0x0172, 0xff6f, 0xfe9c,
+ 0xfe7f, 0xfd28, 0xfc89, 0xfd1a, 0xfd73, 0xfe96,
+ 0x0033, 0x00d8, 0x0140, 0x0191, 0x011f, 0x0039,
+ 0xff57, 0xfed6, 0xfe6c, 0xfdc3, 0xfd6d, 0xfdab,
+ 0xfee1, 0x00d1, 0x01c4, 0x01d9, 0x01f2, 0x0132,
+ 0xfffa, 0xff42, 0xfede, 0xfec3, 0xfe44, 0xfd90,
+ 0xfe12, 0xfefc, 0xff88, 0x0049, 0x00d3, 0x018e,
+ 0x02c0, 0x033a, 0x038d, 0x0416, 0x03ca, 0x0324,
+ 0x0243, 0x00f2, 0x0046, 0xfff9, 0xff80, 0xff67,
+ 0xff11, 0xfe36, 0xfdd3, 0xfe25, 0xfe29, 0xfcd7,
+ 0xfb77, 0xfb15, 0xf9ad, 0xf7ae, 0xf790, 0xf7f7,
+ 0xf81c, 0xf99f, 0xfb7a, 0xfc8d, 0xfdd9, 0xff99,
+ 0x017a, 0x0318, 0x03fd, 0x04b4, 0x059a, 0x061a,
+ 0x062f, 0x0678, 0x071a, 0x07fc, 0x092c, 0x09fd,
+ 0x09ea, 0x0981, 0x0853, 0x0646, 0x0512, 0x0406,
+ 0x020a, 0x0172, 0x0256, 0x0258, 0x0208, 0x025a,
+ 0x02e8, 0x039d, 0x0406, 0x040e, 0x0406, 0x03a5,
+ 0x02bc, 0x013c, 0xffec, 0xff9f, 0xff41, 0xfece,
+ 0xff50, 0xff9c, 0xff8c, 0x0010, 0x0000, 0xff16,
+ 0xfde6, 0xfbfd, 0xfa4e, 0xf9b6, 0xf921, 0xf85f,
+ 0xf874, 0xf953, 0xf9dc, 0xfa5b, 0xfbc3, 0xfc87,
+ 0xfc5a, 0xfd55, 0xfdfb, 0xfd2c, 0xfd8b, 0xfe2a,
+ 0xfd1d, 0xfc91, 0xfd14, 0xfd42, 0xfd48, 0xfd64,
+ 0xfdf4, 0xfed5, 0xff1f, 0xff0f, 0xfeae, 0xfe0a,
+ 0xfe1a, 0xfded, 0xfcb3, 0xfc02, 0xfbf9, 0xfbbc,
+ 0xfc12, 0xfd41, 0xfe8a, 0xffb8, 0x00c5, 0x0170,
+ 0x018f, 0x012d, 0x001b, 0xfe68, 0xfcc9, 0xfb4d,
+ 0xf996, 0xf860, 0xf862, 0xf924, 0xfa0b, 0xfb22,
+ 0xfc19, 0xfc1a, 0xfbc9, 0xfbe6, 0xfb6b, 0xfac1,
+ 0xfb44, 0xfc3e, 0xfd89, 0xff5a, 0x008e, 0x0156,
+ 0x0223, 0x0297, 0x0364, 0x0468, 0x04f9, 0x055a,
+ 0x054c, 0x05c5, 0x075f, 0x07fc, 0x07ff, 0x0912,
+ 0x09f3, 0x0a8e, 0x0b54, 0x0b23, 0x0a57, 0x0981,
+ 0x08e4, 0x091a, 0x08ee, 0x0860, 0x08ef, 0x0980,
+ 0x0960, 0x0956, 0x0936, 0x095c, 0x09c0, 0x09eb,
+ 0x0a45, 0x09d8, 0x08a6, 0x0882, 0x08ea, 0x0958,
+ 0x0a22, 0x0a82, 0x0b05, 0x0bb1, 0x0b78, 0x0b7d,
+ 0x0b41, 0x095b, 0x07b7, 0x0697, 0x04db, 0x03b9,
+ 0x0324, 0x02fe, 0x044f, 0x0583, 0x0584, 0x0579,
+ 0x04f8, 0x039e, 0x026a, 0x01c4, 0x01e2, 0x02cc,
+ 0x03b2, 0x042f, 0x04b3, 0x0514, 0x048f, 0x0388,
+ 0x02c4, 0x01e5, 0x00d5, 0xffa8, 0xfe16, 0xfd0f,
+ 0xfcd1, 0xfc38, 0xfb92, 0xfba8, 0xfc59, 0xfd52,
+ 0xfe27, 0xff34, 0x006a, 0x00cf, 0x0149, 0x026c,
+ 0x02e1, 0x0322, 0x0402, 0x04df, 0x05c9, 0x0684,
+ 0x0678, 0x05f3, 0x0524, 0x048d, 0x03e6, 0x0229,
+ 0x0072, 0xff48, 0xfdda, 0xfd82, 0xfe54, 0xfe89,
+ 0xfe73, 0xfe4b, 0xfdca, 0xfd3e, 0xfb93, 0xf91b,
+ 0xf7f5, 0xf785, 0xf6b4, 0xf662, 0xf6dd, 0xf7eb,
+ 0xf9a9, 0xfba8, 0xfce9, 0xfd58, 0xfe36, 0xff83,
+ 0x004f, 0x0165, 0x02ac, 0x02d1, 0x028b, 0x027e,
+ 0x022a, 0x01f0, 0x018c, 0x0085, 0xffd8, 0xffec,
+ 0x0037, 0x0056, 0x000b, 0xffba, 0xff4f, 0xfdf4,
+ 0xfc3c, 0xfb45, 0xfa95, 0xf9db, 0xfa0e, 0xfafc,
+ 0xfb3a, 0xfaf0, 0xfaae, 0xf9db, 0xf8e5, 0xf84c,
+ 0xf766, 0xf6de, 0xf725, 0xf73c, 0xf75d, 0xf75a,
+ 0xf62c, 0xf4b2, 0xf399, 0xf2a1, 0xf234, 0xf1a9,
+ 0xf08e, 0xf022, 0xf012, 0xef91, 0xef92, 0xf025,
+ 0xf072, 0xf0e7, 0xf188, 0xf15d, 0xf0ea, 0xf14b,
+ 0xf1b8, 0xf22d, 0xf41c, 0xf641, 0xf71f, 0xf827,
+ 0xf966, 0xf9ec, 0xfadb, 0xfc4c, 0xfd7b, 0xfed8,
+ 0x000e, 0x00b3, 0x015b, 0x0236, 0x0387, 0x0582,
+ 0x077b, 0x092d, 0x0adc, 0x0c3f, 0x0cde, 0x0d07,
+ 0x0d7d, 0x0dfb, 0x0e5e, 0x0f8a, 0x109d, 0x1054,
+ 0x0fcc, 0x0f64, 0x0e44, 0x0d02, 0x0bff, 0x0abb,
+ 0x0983, 0x08cd, 0x0857, 0x0793, 0x069c, 0x05c7,
+ 0x0487, 0x030d, 0x0262, 0x0235, 0x0204, 0x01ec,
+ 0x01c8, 0x01df, 0x0235, 0x023c, 0x0252, 0x02b5,
+ 0x0320, 0x03c4, 0x044c, 0x046e, 0x04ac, 0x0519,
+ 0x0576, 0x0534, 0x03ce, 0x01f5, 0x0057, 0xff46,
+ 0xff52, 0xffed, 0x00a7, 0x01ef, 0x02a8, 0x021d,
+ 0x01ad, 0x0174, 0x008e, 0xff9e, 0xff68, 0xff74,
+ 0xff35, 0xfefd, 0xff29, 0xffa9, 0x007d, 0x0131,
+ 0x0156, 0x015f, 0x00fe, 0xffc9, 0xfe83, 0xfd10,
+ 0xfb22, 0xf97b, 0xf7ed, 0xf6a7, 0xf686, 0xf678,
+ 0xf5f7, 0xf5ba, 0xf4d6, 0xf32c, 0xf203, 0xf104,
+ 0xf011, 0xefc4, 0xef6e, 0xef0b, 0xef69, 0xf02b,
+ 0xf122, 0xf28d, 0xf3d9, 0xf4d5, 0xf5cc, 0xf630,
+ 0xf5af, 0xf54e, 0xf5c1, 0xf657, 0xf6ab, 0xf726,
+ 0xf78c, 0xf777, 0xf716, 0xf64f, 0xf542, 0xf4ba,
+ 0xf4e5, 0xf57f, 0xf663, 0xf71d, 0xf7b0, 0xf89b,
+ 0xf99b, 0xfaac, 0xfc49, 0xfe17, 0xffd7, 0x01b6,
+ 0x033b, 0x0436, 0x04f1, 0x0522, 0x04c8, 0x0452,
+ 0x03af, 0x02c3, 0x01d9, 0x014a, 0x0112, 0x00ee,
+ 0x0109, 0x013a, 0x00c2, 0xffef, 0xff5a, 0xfeb6,
+ 0xfe0f, 0xfdcb, 0xfe0a, 0xfecc, 0xff5f, 0xff73,
+ 0xffa8, 0xffa9, 0xff1f, 0xfef3, 0xff54, 0xffb1,
+ 0xfff1, 0x000b, 0xffff, 0xffcb, 0xffa8, 0xfffc,
+ 0x0068, 0x00b3, 0x0141, 0x01a2, 0x017d, 0x0148,
+ 0x00f6, 0x0061, 0xffa3, 0xfee2, 0xfeb7, 0xfed7,
+ 0xfe8a, 0xfe69, 0xfe84, 0xfe3b, 0xfe2f, 0xfea2,
+ 0xff01, 0xff7c, 0xfff2, 0xff85, 0xfe47, 0xfd16,
+ 0xfc2e, 0xfb5c, 0xfb47, 0xfc79, 0xfdee, 0xfee2,
+ 0xff95, 0xffe1, 0xffdf, 0xffe7, 0xff86, 0xfebc,
+ 0xfde4, 0xfc90, 0xfac5, 0xf961, 0xf8ac, 0xf84e,
+ 0xf807, 0xf7de, 0xf7b8, 0xf76f, 0xf757, 0xf796,
+ 0xf7f8, 0xf8b1, 0xf9a2, 0xfa6a, 0xfb70, 0xfcbc,
+ 0xfd90, 0xfe1d, 0xff08, 0xfffc, 0x0059, 0xfffd,
+ 0xff25, 0xfe3d, 0xfd56, 0xfc33, 0xfae2, 0xf9de,
+ 0xf981, 0xf9bb, 0xfa8d, 0xfc1b, 0xfde3, 0xff48,
+ 0x0074, 0x018b, 0x0295, 0x0418, 0x05ed, 0x0762,
+ 0x08b9, 0x0a0a, 0x0aa6, 0x0ab4, 0x0ab9, 0x0acd,
+ 0x0b30, 0x0b95, 0x0b3e, 0x0a52, 0x0906, 0x075b,
+ 0x0600, 0x0541, 0x04c3, 0x04a1, 0x04bc, 0x047e,
+ 0x040b, 0x03b6, 0x0364, 0x0347, 0x035d, 0x032b,
+ 0x02e1, 0x02ef, 0x0328, 0x0364, 0x038e, 0x0376,
+ 0x033c, 0x02ea, 0x0255, 0x0187, 0x0086, 0xffac,
+ 0xff47, 0xff18, 0xff49, 0xffdc, 0x0002, 0xffe3,
+ 0x0012, 0x001e, 0xffd1, 0xff6f, 0xff29, 0xff1a,
+ 0xfeec, 0xfed5, 0xfef7, 0xfe2a, 0xfce6, 0xfcbf,
+ 0xfcf3, 0xfd02, 0xfd8d, 0xfe0e, 0xfe8a, 0xff33,
+ 0xff59, 0xff7c, 0xffdc, 0xffef, 0x0079, 0x0161,
+ 0x0192, 0x0169, 0x0100, 0x002a, 0xff85, 0xff17,
+ 0xfef6, 0xff4c, 0xff5a, 0xfeef, 0xfe4f, 0xfd58,
+ 0xfc5f, 0xfb95, 0xfaed, 0xfac7, 0xfb30, 0xfbf6,
+ 0xfcee, 0xfdec, 0xfefe, 0xffd6, 0x0094, 0x01bf,
+ 0x0283, 0x029c, 0x02eb, 0x02ef, 0x0283, 0x026a,
+ 0x0239, 0x0209, 0x023e, 0x0231, 0x0245, 0x02b0,
+ 0x028a, 0x0261, 0x02f3, 0x03ac, 0x0466, 0x0523,
+ 0x05b8, 0x063c, 0x06c5, 0x0786, 0x084d, 0x08cb,
+ 0x0919, 0x08dc, 0x082f, 0x07b8, 0x0701, 0x062f,
+ 0x0611, 0x05f8, 0x05c2, 0x05f4, 0x0601, 0x0613,
+ 0x0672, 0x0663, 0x05ea, 0x0554, 0x04b8, 0x0461,
+ 0x03e9, 0x0353, 0x0306, 0x0265, 0x0191, 0x0138,
+ 0x012a, 0x01ae, 0x0286, 0x0295, 0x0239, 0x0205,
+ 0x01cf, 0x01e9, 0x024d, 0x02e4, 0x03c3, 0x03ff,
+ 0x0367, 0x02c3, 0x0209, 0x0199, 0x01e8, 0x020d,
+ 0x01b4, 0x0159, 0x00b7, 0xffc0, 0xfef5, 0xfe92,
+ 0xfea6, 0xfed6, 0xfeaa, 0xfe77, 0xfe7a, 0xfe40,
+ 0xfdd0, 0xfd71, 0xfcf5, 0xfca8, 0xfcdb, 0xfce9,
+ 0xfcce, 0xfced, 0xfc78, 0xfb3d, 0xfa12, 0xf8da,
+ 0xf770, 0xf617, 0xf496, 0xf361, 0xf30a, 0xf2e1,
+ 0xf28f, 0xf269, 0xf27b, 0xf2dc, 0xf368, 0xf3c6,
+ 0xf40e, 0xf452, 0xf4c4, 0xf5a2, 0xf69b, 0xf797,
+ 0xf8cd, 0xfa04, 0xfb18, 0xfbf1, 0xfc44, 0xfc26,
+ 0xfbc7, 0xfb50, 0xfb1e, 0xfafa, 0xfa77, 0xf9de,
+ 0xf97a, 0xf920, 0xf8b2, 0xf829, 0xf74d, 0xf5e3,
+ 0xf414, 0xf254, 0xf13a, 0xf153, 0xf26f, 0xf3d5,
+ 0xf54b, 0xf6e1, 0xf869, 0xf9c9, 0xfae1, 0xfb7a,
+ 0xfbaf, 0xfbd4, 0xfc16, 0xfc52, 0xfc60, 0xfc7c,
+ 0xfcdd, 0xfd8a, 0xfe80, 0xff6a, 0x0019, 0x00f1,
+ 0x01ec, 0x02ad, 0x030b, 0x02cd, 0x0223, 0x01dc,
+ 0x0253, 0x035d, 0x04a3, 0x0589, 0x05f1, 0x0661,
+ 0x06ee, 0x077a, 0x0856, 0x0990, 0x0ac0, 0x0bb1,
+ 0x0c6d, 0x0cde, 0x0ccb, 0x0c29, 0x0b58, 0x0ac6,
+ 0x0a74, 0x0a4b, 0x0a5f, 0x0aa5, 0x0af6, 0x0b29,
+ 0x0b28, 0x0b3a, 0x0b85, 0x0ba4, 0x0b6a, 0x0b3f,
+ 0x0b65, 0x0b94, 0x0b97, 0x0bdd, 0x0cbf, 0x0dcc,
+ 0x0e6f, 0x0e4b, 0x0d72, 0x0ccc, 0x0cc2, 0x0cba,
+ 0x0cd1, 0x0d57, 0x0d9b, 0x0d3a, 0x0c94, 0x0c11,
+ 0x0be1, 0x0b9e, 0x0af9, 0x0a34, 0x0918, 0x0775,
+ 0x05ca, 0x0435, 0x02a7, 0x015b, 0x005b, 0xffb5,
+ 0xff37, 0xfe8c, 0xfe1c, 0xfe2d, 0xfe8f, 0xff70,
+ 0x008c, 0x016d, 0x023d, 0x02b1, 0x025f, 0x0199,
+ 0x0076, 0xff35, 0xfe74, 0xfe36, 0xfe24, 0xfdda,
+ 0xfd24, 0xfc73, 0xfbc8, 0xfaf3, 0xfa90, 0xfa94,
+ 0xfa7b, 0xfa9a, 0xfaee, 0xfb32, 0xfbae, 0xfc61,
+ 0xfd45, 0xfe6a, 0xff4b, 0xffb1, 0xffc4, 0xff75,
+ 0xff16, 0xfeed, 0xfecc, 0xfec3, 0xfee1, 0xfef4,
+ 0xfe8a, 0xfd54, 0xfc0c, 0xfb8a, 0xfb8f, 0xfbea,
+ 0xfcb3, 0xfd8b, 0xfe1a, 0xfe2e, 0xfdb6, 0xfd21,
+ 0xfcf5, 0xfd4f, 0xfde4, 0xfe64, 0xfec9, 0xfef2,
+ 0xfef9, 0xff5a, 0xffe6, 0x002c, 0x0057, 0x0080,
+ 0x009d, 0x008b, 0x002b, 0xffe0, 0xffa7, 0xff15,
+ 0xfe75, 0xfdee, 0xfd73, 0xfd6a, 0xfd8d, 0xfdac,
+ 0xfe39, 0xfe9e, 0xfe7d, 0xfe91, 0xfeb9, 0xfebb,
+ 0xfec2, 0xfe4d, 0xfd9a, 0xfd50, 0xfcef, 0xfc70,
+ 0xfc19, 0xfb48, 0xf9ee, 0xf88f, 0xf737, 0xf628,
+ 0xf571, 0xf483, 0xf360, 0xf268, 0xf171, 0xf076,
+ 0xefde, 0xefc7, 0xf014, 0xf0cd, 0xf197, 0xf1d3,
+ 0xf1ad, 0xf1ac, 0xf1c1, 0xf1d8, 0xf240, 0xf308,
+ 0xf3f5, 0xf530, 0xf6f3, 0xf8d9, 0xfa9b, 0xfc66,
+ 0xfe12, 0xffa5, 0x017c, 0x031a, 0x03ef, 0x0450,
+ 0x042e, 0x0354, 0x0241, 0x0141, 0x0075, 0x0004,
+ 0xff8e, 0xfee5, 0xfe6d, 0xfe3f, 0xfe44, 0xfe70,
+ 0xfe9b, 0xfed1, 0xff22, 0xff3f, 0xff1b, 0xff41,
+ 0xfff4, 0x00e1, 0x01f8, 0x034f, 0x0474, 0x04f0,
+ 0x04da, 0x047a, 0x03ec, 0x0327, 0x0278, 0x0283,
+ 0x0343, 0x0424, 0x04e8, 0x056d, 0x0591, 0x056e,
+ 0x0524, 0x04d5, 0x04a3, 0x048b, 0x0462, 0x03ca,
+ 0x02da, 0x0231, 0x01db, 0x0198, 0x0183, 0x0160,
+ 0x0101, 0x00c6, 0x00cf, 0x00ed, 0x0103, 0x0117,
+ 0x014b, 0x0164, 0x011e, 0x00af, 0x0006, 0xff31,
+ 0xfee2, 0xff23, 0xff45, 0xff27, 0xfedf, 0xfe58,
+ 0xfd91, 0xfcb0, 0xfbdd, 0xfb3b, 0xfb20, 0xfbab,
+ 0xfc48, 0xfc9f, 0xfcdd, 0xfcdb, 0xfcc6, 0xfd26,
+ 0xfd98, 0xfd91, 0xfd6c, 0xfd48, 0xfcd7, 0xfc6c,
+ 0xfc5e, 0xfc40, 0xfbef, 0xfbd3, 0xfbcd, 0xfbaa,
+ 0xfbc6, 0xfc29, 0xfc95, 0xfd0b, 0xfd40, 0xfcf1,
+ 0xfc6d, 0xfbdd, 0xfb34, 0xfa80, 0xf9b6, 0xf8fe,
+ 0xf8b7, 0xf8e1, 0xf955, 0xfa20, 0xfb50, 0xfca8,
+ 0xfdb9, 0xfe72, 0xff0a, 0xff54, 0xfef8, 0xfe0f,
+ 0xfcf0, 0xfbaa, 0xfa4c, 0xf968, 0xf94c, 0xf970,
+ 0xf99d, 0xf9ea, 0xf9f1, 0xf9e9, 0xfa7c, 0xfb50,
+ 0xfc0b, 0xfce5, 0xfdb0, 0xfe69, 0xff82, 0x00e7,
+ 0x0283, 0x0467, 0x062f, 0x078d, 0x08a0, 0x0947,
+ 0x0972, 0x097e, 0x098a, 0x094b, 0x08c0, 0x083e,
+ 0x07db, 0x0793, 0x0772, 0x0736, 0x069e, 0x05cc,
+ 0x04d5, 0x03c9, 0x02eb, 0x025c, 0x01f8, 0x01a2,
+ 0x0159, 0x010f, 0x00a5, 0x0045, 0x001c, 0xffc9,
+ 0xff2a, 0xfebc, 0xfe63, 0xfdca, 0xfd49, 0xfd01,
+ 0xfcd7, 0xfcfe, 0xfd4b, 0xfd87, 0xfdf1, 0xfe68,
+ 0xfe7a, 0xfe19, 0xfd75, 0xfd1d, 0xfd6e, 0xfdd4,
+ 0xfe00, 0xfe4a, 0xfe6a, 0xfe01, 0xfd68, 0xfced,
+ 0xfcc5, 0xfd2b, 0xfdd0, 0xfe4b, 0xfe8f, 0xfe6c,
+ 0xfdc0, 0xfcd0, 0xfbd9, 0xfb05, 0xfa68, 0xf9d2,
+ 0xf92a, 0xf87b, 0xf7b5, 0xf6ee, 0xf659, 0xf60d,
+ 0xf620, 0xf66e, 0xf68a, 0xf649, 0xf5aa, 0xf4a2,
+ 0xf383, 0xf2bf, 0xf243, 0xf1e2, 0xf1bb, 0xf1e4,
+ 0xf23e, 0xf2c3, 0xf3a3, 0xf509, 0xf6d0, 0xf892,
+ 0xfa04, 0xfb10, 0xfbc0, 0xfc51, 0xfcee, 0xfd49,
+ 0xfd47, 0xfd72, 0xfddc, 0xfe06, 0xfded, 0xfdd1,
+ 0xfd96, 0xfd3f, 0xfcec, 0xfcb4, 0xfce1, 0xfd81,
+ 0xfe3a, 0xfefa, 0x000c, 0x0189, 0x031c, 0x0477,
+ 0x05af, 0x06bc, 0x0733, 0x0703, 0x068e, 0x0611,
+ 0x05b7, 0x05b1, 0x05ea, 0x05fe, 0x059e, 0x04f9,
+ 0x0497, 0x04a6, 0x04e8, 0x0513, 0x0500, 0x04c7,
+ 0x0471, 0x03c1, 0x02da, 0x0233, 0x01e9, 0x01c6,
+ 0x01a7, 0x019f, 0x01f5, 0x027f, 0x02b2, 0x02a4,
+ 0x02d8, 0x0342, 0x0393, 0x03c3, 0x03f8, 0x0465,
+ 0x04f2, 0x052a, 0x0518, 0x0553, 0x05e3, 0x066a,
+ 0x06dd, 0x0700, 0x068b, 0x05ec, 0x057c, 0x050f,
+ 0x04c6, 0x04d5, 0x04e6, 0x04aa, 0x0435, 0x03cd,
+ 0x0387, 0x0321, 0x029b, 0x0225, 0x0185, 0x0098,
+ 0xff92, 0xfe90, 0xfde2, 0xfdde, 0xfe3f, 0xfeb0,
+ 0xff2e, 0xff9e, 0xfff1, 0x0029, 0x0036, 0x0061,
+ 0x0108, 0x0215, 0x034d, 0x0456, 0x04db, 0x0508,
+ 0x0502, 0x048a, 0x03ce, 0x036e, 0x03a1, 0x0439,
+ 0x04f3, 0x05af, 0x068a, 0x078d, 0x086b, 0x08ee,
+ 0x0908, 0x089f, 0x07cf, 0x06b7, 0x053c, 0x0374,
+ 0x01ad, 0x0008, 0xfe9e, 0xfd50, 0xfbca, 0xfa2f,
+ 0xf8f4, 0xf833, 0xf7e1, 0xf815, 0xf8da, 0xfa0b,
+ 0xfb6b, 0xfcdb, 0xfe58, 0xffcb, 0x0155, 0x0328,
+ 0x04fc, 0x067a, 0x076a, 0x0794, 0x0738, 0x06d0,
+ 0x0673, 0x064c, 0x068b, 0x06eb, 0x0725, 0x0721,
+ 0x06e3, 0x06be, 0x06c1, 0x06a3, 0x06ab, 0x0739,
+ 0x07f7, 0x0879, 0x08ae, 0x0898, 0x083e, 0x07a7,
+ 0x06e3, 0x0621, 0x059b, 0x056a, 0x0568, 0x0560,
+ 0x054e, 0x0545, 0x0534, 0x04ff, 0x04b6, 0x0474,
+ 0x0412, 0x0351, 0x0248, 0x015d, 0x00d3, 0x0088,
+ 0x001a, 0xff64, 0xfe99, 0xfdc4, 0xfcd1, 0xfc08,
+ 0xfbc0, 0xfbe4, 0xfc2c, 0xfc6b, 0xfc8d, 0xfc9c,
+ 0xfcaf, 0xfcb0, 0xfc78, 0xfc27, 0xfc0e, 0xfc39,
+ 0xfc5d, 0xfc62, 0xfc83, 0xfcd2, 0xfd12, 0xfd18,
+ 0xfcd1, 0xfc4b, 0xfbcd, 0xfb6e, 0xfaf9, 0xfa59,
+ 0xf99c, 0xf8db, 0xf84a, 0xf7ce, 0xf730, 0xf689,
+ 0xf5d7, 0xf509, 0xf470, 0xf433, 0xf436, 0xf47e,
+ 0xf4c6, 0xf4b8, 0xf49c, 0xf4ac, 0xf4ba, 0xf4c0,
+ 0xf4be, 0xf4a0, 0xf46e, 0xf3ed, 0xf2c8, 0xf13c,
+ 0xefd0, 0xeece, 0xee35, 0xeddf, 0xeda1, 0xed55,
+ 0xecee, 0xeca7, 0xecc7, 0xed2d, 0xedc1, 0xef05,
+ 0xf137, 0xf3b1, 0xf5e4, 0xf7e9, 0xf9cf, 0xfb71,
+ 0xfce1, 0xfe4d, 0xffbb, 0x010f, 0x0234, 0x0337,
+ 0x040e, 0x04b0, 0x0538, 0x05a9, 0x0613, 0x069f,
+ 0x0725, 0x0771, 0x079e, 0x07bb, 0x07ec, 0x0843,
+ 0x086e, 0x0862, 0x0849, 0x07ee, 0x0766, 0x0704,
+ 0x06c9, 0x06fd, 0x07c2, 0x0897, 0x0961, 0x0a2b,
+ 0x0a91, 0x0ab7, 0x0b00, 0x0b5a, 0x0bd1, 0x0c6c,
+ 0x0cf6, 0x0d54, 0x0d4a, 0x0cf8, 0x0d04, 0x0d5c,
+ 0x0d94, 0x0de6, 0x0e7b, 0x0f10, 0x0f7e, 0x0fad,
+ 0x0fb3, 0x0fc6, 0x0fe9, 0x1005, 0x0ffa, 0x0fba,
+ 0x0f6b, 0x0f02, 0x0e3e, 0x0d20, 0x0bc6, 0x0a65,
+ 0x0939, 0x083e, 0x0782, 0x0721, 0x06f2, 0x06c2,
+ 0x0683, 0x0641, 0x0632, 0x063a, 0x060f, 0x05de,
+ 0x05e6, 0x0619, 0x064a, 0x064e, 0x063e, 0x0629,
+ 0x05b1, 0x04e9, 0x0448, 0x03d7, 0x03aa, 0x03ec,
+ 0x0460, 0x04de, 0x0547, 0x0546, 0x04fd, 0x0492,
+ 0x03c1, 0x0293, 0x0149, 0xfff6, 0xfec7, 0xfdd0,
+ 0xfcf1, 0xfc2e, 0xfb70, 0xfa94, 0xf992, 0xf878,
+ 0xf7a5, 0xf774, 0xf7a6, 0xf7ea, 0xf835, 0xf88c,
+ 0xf906, 0xf9a6, 0xfa61, 0xfb57, 0xfc8b, 0xfddc,
+ 0xff2a, 0x004f, 0x016b, 0x027c, 0x0327, 0x038d,
+ 0x0404, 0x0450, 0x045a, 0x046c, 0x04a5, 0x051f,
+ 0x05ca, 0x0651, 0x06a6, 0x06d8, 0x06d6, 0x06c5,
+ 0x06cf, 0x06d7, 0x06d9, 0x0722, 0x07fc, 0x0911,
+ 0x09c2, 0x0a05, 0x0a12, 0x09d7, 0x096b, 0x0903,
+ 0x08b8, 0x08bb, 0x08f2, 0x08f4, 0x08a9, 0x0833,
+ 0x0779, 0x065a, 0x04fa, 0x03a8, 0x0263, 0x00ec,
+ 0xff4d, 0xfdb1, 0xfc2d, 0xfae4, 0xf9d2, 0xf8da,
+ 0xf80d, 0xf784, 0xf743, 0xf72a, 0xf6f8, 0xf6a1,
+ 0xf624, 0xf559, 0xf46a, 0xf393, 0xf2b6, 0xf1fc,
+ 0xf1ab, 0xf19b, 0xf1cc, 0xf240, 0xf27b, 0xf263,
+ 0xf264, 0xf282, 0xf2b0, 0xf308, 0xf374, 0xf3f2,
+ 0xf493, 0xf52a, 0xf5b1, 0xf631, 0xf679, 0xf69f,
+ 0xf6dd, 0xf703, 0xf716, 0xf74d, 0xf78a, 0xf7e6,
+ 0xf894, 0xf93f, 0xf9b0, 0xfa08, 0xfa41, 0xfa79,
+ 0xfaa1, 0xfa3f, 0xf95c, 0xf85a, 0xf73c, 0xf61f,
+ 0xf540, 0xf4ab, 0xf48b, 0xf4d1, 0xf52b, 0xf5a6,
+ 0xf643, 0xf6d5, 0xf770, 0xf7fa, 0xf85f, 0xf8f5,
+ 0xf9cc, 0xfaba, 0xfbed, 0xfd4a, 0xfe79, 0xff7a,
+ 0x003d, 0x00ac, 0x00fe, 0x0144, 0x013f, 0x00e3,
+ 0x0077, 0x0038, 0x0022, 0x0019, 0x001b, 0x0034,
+ 0x0067, 0x0096, 0x008f, 0x007b, 0x00c5, 0x0193,
+ 0x028c, 0x031d, 0x0331, 0x0330, 0x0332, 0x031a,
+ 0x02f9, 0x02b6, 0x0243, 0x01e5, 0x01a6, 0x016f,
+ 0x0150, 0x0144, 0x014e, 0x018b, 0x01cc, 0x01e4,
+ 0x0213, 0x0298, 0x0350, 0x03f4, 0x0467, 0x048f,
+ 0x043e, 0x038e, 0x02d4, 0x0232, 0x01ba, 0x017e,
+ 0x017e, 0x01b5, 0x01ef, 0x01d7, 0x015e, 0x0075,
+ 0xff16, 0xfdb3, 0xfcad, 0xfbea, 0xfb58, 0xfaea,
+ 0xfa71, 0xf9d1, 0xf8f2, 0xf7e3, 0xf6ed, 0xf61c,
+ 0xf552, 0xf4a6, 0xf43d, 0xf42c, 0xf46e, 0xf4e2,
+ 0xf580, 0xf640, 0xf6df, 0xf724, 0xf709, 0xf6ba,
+ 0xf684, 0xf692, 0xf6ce, 0xf71e, 0xf79c, 0xf864,
+ 0xf941, 0xfa07, 0xfae9, 0xfbf0, 0xfcf2, 0xfdf9,
+ 0xfeea, 0xff72, 0xff85, 0xff4b, 0xfed4, 0xfe3f,
+ 0xfdbe, 0xfd7d, 0xfd6a, 0xfd1e, 0xfc74, 0xfbce,
+ 0xfb78, 0xfb5d, 0xfb50, 0xfb5d, 0xfbc6, 0xfc75,
+ 0xfced, 0xfd27, 0xfd78, 0xfdda, 0xfe31, 0xfe83,
+ 0xfeaf, 0xfebf, 0xfee2, 0xfee7, 0xfe9a, 0xfe19,
+ 0xfd6f, 0xfcbd, 0xfc5d, 0xfc48, 0xfc47, 0xfc82,
+ 0xfd0c, 0xfd9a, 0xfe0a, 0xfe7b, 0xff05, 0xff98,
+ 0x001e, 0x007e, 0x0085, 0x004c, 0x0062, 0x00f6,
+ 0x018a, 0x01df, 0x021a, 0x0232, 0x0201, 0x0191,
+ 0x0114, 0x00c4, 0x00a2, 0x0095, 0x00a9, 0x00f0,
+ 0x014d, 0x0180, 0x017a, 0x0171, 0x0158, 0x00f9,
+ 0x0093, 0x0070, 0x006c, 0x0086, 0x00ae, 0x0086,
+ 0x002d, 0x0008, 0xfffb, 0xffdc, 0xffc5, 0xffa2,
+ 0xff4c, 0xfebd, 0xfe0f, 0xfd8e, 0xfd50, 0xfd0d,
+ 0xfcab, 0xfc2a, 0xfb7f, 0xfadc, 0xfa6d, 0xfa1b,
+ 0xf9fc, 0xfa36, 0xfaa0, 0xfb15, 0xfb8a, 0xfbf7,
+ 0xfc7f, 0xfd30, 0xfdc8, 0xfe0f, 0xfdf9, 0xfd99,
+ 0xfd15, 0xfc56, 0xfb45, 0xfa49, 0xf9c7, 0xf9b0,
+ 0xf9e1, 0xfa4d, 0xfab4, 0xface, 0xfab8, 0xfab0,
+ 0xfa83, 0xfa0f, 0xf9c0, 0xf9b5, 0xf98b, 0xf940,
+ 0xf91d, 0xf944, 0xf9bc, 0xfa59, 0xfb00, 0xfbd2,
+ 0xfcbc, 0xfd91, 0xfe4b, 0xfeec, 0xffb4, 0x00dc,
+ 0x0216, 0x033f, 0x0482, 0x05c6, 0x06ed, 0x07d8,
+ 0x085f, 0x08b8, 0x08f0, 0x089e, 0x07cb, 0x06cc,
+ 0x05a9, 0x0496, 0x03db, 0x0379, 0x0365, 0x0382,
+ 0x0392, 0x036a, 0x030b, 0x02ad, 0x0278, 0x0247,
+ 0x0211, 0x01f7, 0x01c1, 0x012f, 0x006f, 0xffd3,
+ 0xff65, 0xff16, 0xfef2, 0xfed5, 0xfe76, 0xfde0,
+ 0xfd2c, 0xfc3c, 0xfb2d, 0xfa33, 0xf974, 0xf928,
+ 0xf93c, 0xf986, 0xfa11, 0xfa9e, 0xfaf8, 0xfb45,
+ 0xfb5d, 0xfb44, 0xfb75, 0xfc09, 0xfcdf, 0xfe05,
+ 0xff50, 0x00a2, 0x01ea, 0x02db, 0x0385, 0x0402,
+ 0x0411, 0x03d0, 0x0389, 0x033b, 0x0330, 0x038a,
+ 0x03dc, 0x03eb, 0x03d9, 0x03c4, 0x03b4, 0x0398,
+ 0x037e, 0x036d, 0x0336, 0x02d9, 0x027e, 0x0210,
+ 0x01a4, 0x0163, 0x0130, 0x00de, 0x005d, 0xffc8,
+ 0xff4a, 0xfee1, 0xfe78, 0xfe18, 0xfdd3, 0xfdde,
+ 0xfe3a, 0xfea4, 0xff3f, 0x0033, 0x0123, 0x01d5,
+ 0x0243, 0x025e, 0x024f, 0x022e, 0x01e6, 0x01a5,
+ 0x017f, 0x0157, 0x013e, 0x014a, 0x0197, 0x022a,
+ 0x02ad, 0x0307, 0x036f, 0x03d1, 0x043d, 0x04f0,
+ 0x05b7, 0x0674, 0x074f, 0x082d, 0x08d8, 0x093a,
+ 0x0956, 0x0975, 0x09a5, 0x099b, 0x095a, 0x0921,
+ 0x08fb, 0x08e6, 0x08d0, 0x08b2, 0x08b5, 0x08ec,
+ 0x0941, 0x09a8, 0x09f5, 0x09f2, 0x09b0, 0x0955,
+ 0x08d3, 0x0820, 0x0768, 0x06d8, 0x0664, 0x05ef,
+ 0x0593, 0x0570, 0x0562, 0x0528, 0x04b5, 0x042f,
+ 0x03ae, 0x031e, 0x0289, 0x0231, 0x0225, 0x0236,
+ 0x0246, 0x0249, 0x022a, 0x01dd, 0x0151, 0x008b,
+ 0xffd4, 0xff63, 0xff3c, 0xff4b, 0xff46, 0xfee2,
+ 0xfe4d, 0xfdb0, 0xfd03, 0xfc88, 0xfc6f, 0xfc82,
+ 0xfc9a, 0xfc88, 0xfbfc, 0xfb25, 0xfa86, 0xfa56,
+ 0xfa8d, 0xfafe, 0xfb60, 0xfbb5, 0xfc42, 0xfd07,
+ 0xfda7, 0xfddc, 0xfdc0, 0xfda6, 0xfdc0, 0xfdfc,
+ 0xfe22, 0xfdfd, 0xfd81, 0xfccf, 0xfbf5, 0xfae4,
+ 0xf9c3, 0xf8c8, 0xf7d5, 0xf6ee, 0xf654, 0xf5cd,
+ 0xf50d, 0xf475, 0xf446, 0xf42a, 0xf3e7, 0xf370,
+ 0xf2c7, 0xf23a, 0xf207, 0xf1ff, 0xf1e9, 0xf1d0,
+ 0xf1cc, 0xf1c0, 0xf18a, 0xf158, 0xf152, 0xf15c,
+ 0xf184, 0xf1ed, 0xf285, 0xf36c, 0xf4d1, 0xf664,
+ 0xf7cb, 0xf924, 0xfa9e, 0xfc1e, 0xfd70, 0xfe95,
+ 0xffc3, 0x00fe, 0x01f9, 0x02a3, 0x035a, 0x0454,
+ 0x057a, 0x06b4, 0x07e1, 0x08d1, 0x099e, 0x0a93,
+ 0x0bad, 0x0cb2, 0x0d96, 0x0e65, 0x0f16, 0x0f98,
+ 0x0fcf, 0x0fa4, 0x0f40, 0x0eea, 0x0eb8, 0x0e8a,
+ 0x0e47, 0x0e02, 0x0dc1, 0x0d4f, 0x0c8f, 0x0bc8,
+ 0x0b3e, 0x0b02, 0x0b1d, 0x0b58, 0x0b4d, 0x0afa,
+ 0x0aad, 0x0a85, 0x0a8c, 0x0acf, 0x0b33, 0x0b95,
+ 0x0bf8, 0x0c66, 0x0cde, 0x0d58, 0x0de2, 0x0e96,
+ 0x0f57, 0x0fed, 0x1055, 0x1095, 0x10ae, 0x10c6,
+ 0x10ca, 0x106b, 0x0fc2, 0x0f30, 0x0eba, 0x0e32,
+ 0x0d85, 0x0caa, 0x0b97, 0x0a77, 0x0994, 0x08fc,
+ 0x0870, 0x07ba, 0x06e5, 0x0624, 0x05b2, 0x058b,
+ 0x0564, 0x04fd, 0x0430, 0x02f3, 0x0177, 0xfff8,
+ 0xfe7d, 0xfd26, 0xfc23, 0xfb6a, 0xfae0, 0xfa7d,
+ 0xfa16, 0xf9a1, 0xf977, 0xf9c1, 0xfa12, 0xfa07,
+ 0xf9b7, 0xf95b, 0xf916, 0xf8e3, 0xf89c, 0xf850,
+ 0xf832, 0xf80e, 0xf7b0, 0xf763, 0xf742, 0xf717,
+ 0xf700, 0xf727, 0xf772, 0xf7f9, 0xf8cf, 0xf9b8,
+ 0xfa87, 0xfb45, 0xfc1b, 0xfd28, 0xfe43, 0xff45,
+ 0x0050, 0x015e, 0x0227, 0x028c, 0x029d, 0x02a9,
+ 0x02f9, 0x036c, 0x03c8, 0x040f, 0x0438, 0x0440,
+ 0x0442, 0x043f, 0x0419, 0x03ca, 0x035d, 0x02de,
+ 0x023b, 0x0164, 0x008b, 0xfff6, 0xffa8, 0xff8b,
+ 0xff97, 0xffbf, 0xffd4, 0xff9d, 0xff23, 0xfe86,
+ 0xfdd5, 0xfd38, 0xfcec, 0xfce8, 0xfcf8, 0xfd00,
+ 0xfcd1, 0xfc52, 0xfba2, 0xfad6, 0xf9f1, 0xf93b,
+ 0xf8e5, 0xf8ac, 0xf870, 0xf859, 0xf839, 0xf7da,
+ 0xf77f, 0xf740, 0xf6eb, 0xf69c, 0xf672, 0xf665,
+ 0xf67b, 0xf690, 0xf688, 0xf6ac, 0xf6fa, 0xf707,
+ 0xf6ce, 0xf68c, 0xf656, 0xf64e, 0xf697, 0xf734,
+ 0xf81f, 0xf922, 0xf9ea, 0xfa76, 0xfb04, 0xfb9b,
+ 0xfc1a, 0xfc8c, 0xfd12, 0xfd88, 0xfdb7, 0xfd9c,
+ 0xfd42, 0xfcad, 0xfc05, 0xfba3, 0xfbd9, 0xfc80,
+ 0xfd20, 0xfd92, 0xfdfd, 0xfe52, 0xfe4f, 0xfdc4,
+ 0xfcd6, 0xfbef, 0xfb27, 0xfa64, 0xf9cd, 0xf97a,
+ 0xf945, 0xf922, 0xf8fb, 0xf8ba, 0xf89c, 0xf8c9,
+ 0xf910, 0xf956, 0xf9b8, 0xfa67, 0xfb7b, 0xfcb0,
+ 0xfdb6, 0xfe87, 0xff3e, 0xffd3, 0x0033, 0x008b,
+ 0x0120, 0x01d4, 0x025e, 0x02d5, 0x034e, 0x03b0,
+ 0x0414, 0x04a0, 0x0559, 0x061f, 0x06a0, 0x06c0,
+ 0x06ba, 0x0696, 0x0633, 0x05a8, 0x050b, 0x0458,
+ 0x038a, 0x02b6, 0x0209, 0x0166, 0x008c, 0xffab,
+ 0xfef0, 0xfe28, 0xfd55, 0xfcad, 0xfc4e, 0xfc46,
+ 0xfc64, 0xfc72, 0xfc7f, 0xfc82, 0xfc69, 0xfc4d,
+ 0xfbfd, 0xfb73, 0xfb33, 0xfb57, 0xfb88, 0xfbc2,
+ 0xfc07, 0xfc38, 0xfc48, 0xfc25, 0xfbd0, 0xfb75,
+ 0xfb1b, 0xfacb, 0xfa87, 0xfa27, 0xf9a4, 0xf920,
+ 0xf89d, 0xf820, 0xf7c2, 0xf795, 0xf7b6, 0xf815,
+ 0xf87a, 0xf8dd, 0xf92f, 0xf93d, 0xf910, 0xf8e7,
+ 0xf8e9, 0xf913, 0xf956, 0xf9ba, 0xfa39, 0xfa93,
+ 0xfa94, 0xfa43, 0xf9bb, 0xf917, 0xf86b, 0xf7b4,
+ 0xf6f7, 0xf64c, 0xf5e2, 0xf5e4, 0xf632, 0xf698,
+ 0xf71c, 0xf7bc, 0xf86b, 0xf91e, 0xf995, 0xf998,
+ 0xf951, 0xf8fd, 0xf8c9, 0xf8d6, 0xf91f, 0xf99b,
+ 0xfa37, 0xfaac, 0xfacc, 0xfacb, 0xfb08, 0xfbca,
+ 0xfce5, 0xfddf, 0xfe9b, 0xff52, 0x0004, 0x00a8,
+ 0x0158, 0x0225, 0x0306, 0x03d4, 0x0468, 0x04db,
+ 0x0533, 0x0541, 0x050c, 0x04be, 0x0460, 0x03ff,
+ 0x03ae, 0x036a, 0x0347, 0x0356, 0x0372, 0x0371,
+ 0x0355, 0x0333, 0x0301, 0x02a9, 0x0230, 0x019b,
+ 0x00d6, 0x000a, 0xff8c, 0xff63, 0xff5f, 0xff56,
+ 0xff2e, 0xfefb, 0xfee9, 0xfefc, 0xff23, 0xff5a,
+ 0xff83, 0xff78, 0xff23, 0xfe89, 0xfdf6, 0xfdaa,
+ 0xfd95, 0xfdbd, 0xfe34, 0xfeaf, 0xfee4, 0xfeef,
+ 0xfeff, 0xff1e, 0xff37, 0xff46, 0xff67, 0xffa6,
+ 0xffd8, 0xffd7, 0xff9a, 0xff32, 0xfeb9, 0xfe1d,
+ 0xfd47, 0xfc56, 0xfb70, 0xfa90, 0xf9b6, 0xf8e0,
+ 0xf805, 0xf73c, 0xf6b6, 0xf670, 0xf63c, 0xf611,
+ 0xf615, 0xf65b, 0xf6dc, 0xf775, 0xf800, 0xf874,
+ 0xf8cc, 0xf8f5, 0xf912, 0xf963, 0xf9da, 0xfa4f,
+ 0xfad3, 0xfb76, 0xfc2d, 0xfce2, 0xfd87, 0xfe31,
+ 0xfee9, 0xff8d, 0x001a, 0x00b1, 0x0138, 0x0182,
+ 0x018a, 0x014f, 0x00ca, 0x001c, 0xff7a, 0xfefa,
+ 0xfe98, 0xfe40, 0xfdd2, 0xfd50, 0xfcfe, 0xfcfb,
+ 0xfd17, 0xfd3c, 0xfd67, 0xfd9a, 0xfdf4, 0xfe81,
+ 0xff32, 0x0030, 0x019a, 0x0321, 0x046e, 0x055c,
+ 0x05f7, 0x065d, 0x068b, 0x0691, 0x06ae, 0x06e0,
+ 0x06fb, 0x0717, 0x0751, 0x079a, 0x07e3, 0x0808,
+ 0x07ea, 0x07ab, 0x0765, 0x0709, 0x0686, 0x05d8,
+ 0x0504, 0x0416, 0x031f, 0x0249, 0x01c4, 0x01a0,
+ 0x01b4, 0x01ac, 0x015b, 0x00d4, 0x0049, 0x000a,
+ 0x0036, 0x00a2, 0x0136, 0x01df, 0x0266, 0x02bd,
+ 0x02ee, 0x02f6, 0x030a, 0x0346, 0x035c, 0x0333,
+ 0x0310, 0x0315, 0x0333, 0x0358, 0x0387, 0x03d4,
+ 0x042b, 0x046a, 0x04a7, 0x04ed, 0x051b, 0x0508,
+ 0x04a3, 0x0413, 0x03a2, 0x0361, 0x0346, 0x034e,
+ 0x037f, 0x03f0, 0x0488, 0x0502, 0x0576, 0x0606,
+ 0x066a, 0x0688, 0x0688, 0x0663, 0x0624, 0x05f1,
+ 0x05b0, 0x0543, 0x04a6, 0x03c7, 0x02a9, 0x0183,
+ 0x0086, 0xffc1, 0xff3f, 0xff1c, 0xff3c, 0xff49,
+ 0xff37, 0xff2a, 0xff22, 0xff2f, 0xff65, 0xff8e,
+ 0xff84, 0xff54, 0xfefb, 0xfe83, 0xfdf9, 0xfd66,
+ 0xfcfb, 0xfcdb, 0xfcf3, 0xfd49, 0xfde6, 0xfea1,
+ 0xff66, 0x003b, 0x0119, 0x01f5, 0x02c7, 0x03ad,
+ 0x04cb, 0x05e2, 0x06c2, 0x07a3, 0x0878, 0x08dd,
+ 0x08df, 0x08ba, 0x0857, 0x07c1, 0x0730, 0x06a4,
+ 0x062f, 0x05fd, 0x05eb, 0x05da, 0x05ef, 0x0606,
+ 0x05c2, 0x0529, 0x0478, 0x03b1, 0x02cc, 0x01da,
+ 0x00ec, 0x0022, 0xff7f, 0xfee3, 0xfe61, 0xfe17,
+ 0xfde7, 0xfdc0, 0xfda3, 0xfd5d, 0xfcda, 0xfc51,
+ 0xfbff, 0xfc13, 0xfc90, 0xfd3a, 0xfdf5, 0xfed2,
+ 0xff9e, 0x0023, 0x008e, 0x0105, 0x016b, 0x01b6,
+ 0x01fc, 0x0227, 0x021c, 0x01f0, 0x01d6, 0x01c3,
+ 0x018b, 0x0144, 0x0112, 0x00d0, 0x0056, 0xffaf,
+ 0xfed6, 0xfdcb, 0xfcbb, 0xfbd0, 0xfb23, 0xfad2,
+ 0xfac7, 0xfab5, 0xfa6a, 0xf9e0, 0xf931, 0xf89b,
+ 0xf846, 0xf821, 0xf819, 0xf816, 0xf7e4, 0xf77b,
+ 0xf70d, 0xf6b4, 0xf66c, 0xf63d, 0xf623, 0xf5e6,
+ 0xf571, 0xf4fe, 0xf4c5, 0xf4d2, 0xf524, 0xf5a5,
+ 0xf62e, 0xf6b5, 0xf723, 0xf753, 0xf73b, 0xf6e0,
+ 0xf63a, 0xf55c, 0xf46a, 0xf379, 0xf2b8, 0xf262,
+ 0xf27b, 0xf2ec, 0xf3ba, 0xf4e3, 0xf64c, 0xf7cd,
+ 0xf930, 0xfa49, 0xfb32, 0xfc38, 0xfd76, 0xfee7,
+ 0x0095, 0x026f, 0x0427, 0x0586, 0x067a, 0x0709,
+ 0x076b, 0x07de, 0x086e, 0x08fd, 0x096a, 0x09a7,
+ 0x09b7, 0x09a9, 0x0999, 0x09a4, 0x09c4, 0x09f5,
+ 0x0a33, 0x0a42, 0x0a07, 0x09ce, 0x09c4, 0x09c2,
+ 0x09bc, 0x09c4, 0x09ef, 0x0a40, 0x0a8e, 0x0ac5,
+ 0x0b18, 0x0ba4, 0x0c56, 0x0d17, 0x0dac, 0x0df9,
+ 0x0e48, 0x0ebd, 0x0f25, 0x0f86, 0x1007, 0x108d,
+ 0x10df, 0x10de, 0x109a, 0x104e, 0x1027, 0x101f,
+ 0x1040, 0x108f, 0x10ca, 0x10a6, 0x101d, 0x0f4d,
+ 0x0e55, 0x0d6c, 0x0cac, 0x0c02, 0x0b5b, 0x0aad,
+ 0x09eb, 0x0912, 0x0812, 0x0701, 0x0631, 0x05bd,
+ 0x056e, 0x0527, 0x04d6, 0x045d, 0x03df, 0x0388,
+ 0x0347, 0x0326, 0x0335, 0x033c, 0x02f5, 0x0240,
+ 0x011a, 0xffb5, 0xfe44, 0xfcbb, 0xfb1d, 0xf989,
+ 0xf7fe, 0xf694, 0xf585, 0xf4d6, 0xf489, 0xf4b7,
+ 0xf51c, 0xf554, 0xf548, 0xf50b, 0xf4b9, 0xf479,
+ 0xf45d, 0xf47e, 0xf4fc, 0xf5a6, 0xf651, 0xf717,
+ 0xf7e9, 0xf8a0, 0xf95c, 0xfa33, 0xfb1a, 0xfc48,
+ 0xfdd3, 0xff64, 0x00ce, 0x0223, 0x0344, 0x042c,
+ 0x0503, 0x05b8, 0x0632, 0x06ab, 0x0742, 0x07b2,
+ 0x07ca, 0x07ad, 0x0796, 0x079b, 0x0798, 0x076e,
+ 0x0748, 0x074c, 0x0763, 0x0787, 0x07a6, 0x078d,
+ 0x072d, 0x068a, 0x05a3, 0x04a6, 0x03b4, 0x02af,
+ 0x01a9, 0x00cf, 0x000e, 0xff48, 0xfe6f, 0xfd73,
+ 0xfc6c, 0xfb6b, 0xfa51, 0xf920, 0xf811, 0xf748,
+ 0xf6cd, 0xf68a, 0xf650, 0xf622, 0xf61a, 0xf632,
+ 0xf66f, 0xf6ec, 0xf796, 0xf847, 0xf8e7, 0xf94b,
+ 0xf95d, 0xf94a, 0xf94e, 0xf96e, 0xf98e, 0xf9c2,
+ 0xfa24, 0xfa7f, 0xfa8e, 0xfa5e, 0xfa16, 0xf9b3,
+ 0xf927, 0xf88b, 0xf826, 0xf815, 0xf82d, 0xf85a,
+ 0xf8a4, 0xf905, 0xf981, 0xfa03, 0xfa53, 0xfa70,
+ 0xfa81, 0xfa8a, 0xfa83, 0xfa5b, 0xfa00, 0xf98b,
+ 0xf907, 0xf848, 0xf734, 0xf5f1, 0xf4c8, 0xf3ec,
+ 0xf35f, 0xf31d, 0xf314, 0xf317, 0xf32c, 0xf362,
+ 0xf3b6, 0xf448, 0xf50b, 0xf5a7, 0xf629, 0xf6b7,
+ 0xf704, 0xf700, 0xf703, 0xf731, 0xf785, 0xf7ee,
+ 0xf853, 0xf8c8, 0xf94f, 0xf9c8, 0xfa62, 0xfb5e,
+ 0xfca6, 0xfe21, 0xffb1, 0x0116, 0x0236, 0x030b,
+ 0x038b, 0x03d0, 0x0408, 0x044e, 0x04ae, 0x0513,
+ 0x0555, 0x055a, 0x052b, 0x04e9, 0x04ba, 0x04b1,
+ 0x04c4, 0x04c9, 0x04ae, 0x048c, 0x0464, 0x0430,
+ 0x0415, 0x0424, 0x0448, 0x0475, 0x0483, 0x043d,
+ 0x03ab, 0x02f5, 0x0227, 0x016c, 0x0104, 0x00f5,
+ 0x010f, 0x0125, 0x0130, 0x0147, 0x014d, 0x00fb,
+ 0x0066, 0xffdb, 0xff5b, 0xfed0, 0xfe62, 0xfe38,
+ 0xfe50, 0xfeab, 0xff2d, 0xff93, 0xffb5, 0xff87,
+ 0xff07, 0xfe65, 0xfdea, 0xfdb4, 0xfdae, 0xfdc2,
+ 0xfdd5, 0xfdc0, 0xfd7c, 0xfd11, 0xfc84, 0xfbe4,
+ 0xfb5c, 0xfb0f, 0xfb01, 0xfb05, 0xfaee, 0xfac7,
+ 0xfab5, 0xfab1, 0xfab5, 0xfada, 0xfb39, 0xfbca,
+ 0xfc6c, 0xfce0, 0xfd02, 0xfcee, 0xfcd4, 0xfcb6,
+ 0xfc8f, 0xfc61, 0xfc24, 0xfbdb, 0xfb7d, 0xfaf9,
+ 0xfa84, 0xfa63, 0xfa79, 0xfa93, 0xfaad, 0xfabe,
+ 0xfacf, 0xfaec, 0xfaed, 0xfabd, 0xfa71, 0xfa0b,
+ 0xf998, 0xf937, 0xf8f2, 0xf8d5, 0xf8ed, 0xf91b,
+ 0xf94e, 0xf991, 0xf9cc, 0xf9eb, 0xfa2d, 0xfac2,
+ 0xfb71, 0xfc11, 0xfcca, 0xfda9, 0xfe88, 0xff5a,
+ 0x0005, 0x006f, 0x00b2, 0x00f5, 0x0155, 0x01d9,
+ 0x024d, 0x028b, 0x02a1, 0x027c, 0x0212, 0x01a4,
+ 0x0165, 0x0175, 0x01de, 0x026c, 0x02d9, 0x0309,
+ 0x02f7, 0x02bb, 0x0258, 0x01cd, 0x0147, 0x00cb,
+ 0x003d, 0xffc5, 0xff76, 0xff57, 0xff88, 0xffe5,
+ 0x0036, 0x0091, 0x00cb, 0x0097, 0x0019, 0xff87,
+ 0xfefe, 0xfea0, 0xfe66, 0xfe4a, 0xfe45, 0xfe08,
+ 0xfd76, 0xfcc6, 0xfbfc, 0xfb25, 0xfa8c, 0xfa52,
+ 0xfa6a, 0xfaa9, 0xfad7, 0xfafb, 0xfb2c, 0xfb54,
+ 0xfb7c, 0xfbb8, 0xfbe2, 0xfbce, 0xfb78, 0xfae8,
+ 0xfa31, 0xf98e, 0xf961, 0xf9e3, 0xfae4, 0xfc2d,
+ 0xfd92, 0xfec4, 0xffa3, 0x0054, 0x00d5, 0x0130,
+ 0x018d, 0x01c1, 0x01a3, 0x016d, 0x0135, 0x00e7,
+ 0x00aa, 0x0086, 0x0034, 0xff9a, 0xfece, 0xfde8,
+ 0xfd20, 0xfcbb, 0xfcd3, 0xfd64, 0xfe43, 0xff12,
+ 0xff86, 0xffb7, 0xffd1, 0xffbd, 0xff73, 0xff4c,
+ 0xff7e, 0xffd7, 0x0025, 0x0059, 0x0074, 0x0085,
+ 0x0082, 0x0070, 0x008d, 0x0103, 0x01ab, 0x0247,
+ 0x02a9, 0x02d4, 0x02e5, 0x02f9, 0x033a, 0x03b8,
+ 0x0455, 0x04f1, 0x0566, 0x0599, 0x05a0, 0x0583,
+ 0x0531, 0x04bf, 0x0426, 0x033f, 0x0223, 0x0107,
+ 0x0018, 0xff87, 0xff54, 0xff53, 0xff65, 0xff80,
+ 0xffaf, 0xfff4, 0x0023, 0x003e, 0x0060, 0x0075,
+ 0x0066, 0x002d, 0xffd0, 0xff82, 0xff65, 0xff4f,
+ 0xff33, 0xff38, 0xff71, 0xffcf, 0x0035, 0x009c,
+ 0x0102, 0x0155, 0x01a9, 0x022a, 0x02c3, 0x035d,
+ 0x040a, 0x04af, 0x051f, 0x0572, 0x05dd, 0x0661,
+ 0x06de, 0x075c, 0x07f4, 0x0878, 0x08ac, 0x089b,
+ 0x085d, 0x0808, 0x07af, 0x0737, 0x068d, 0x05bb,
+ 0x04c3, 0x03c8, 0x02f4, 0x0243, 0x01d7, 0x01d6,
+ 0x020f, 0x024b, 0x028c, 0x02ca, 0x02f3, 0x0303,
+ 0x02f9, 0x02e4, 0x02c0, 0x0266, 0x01a9, 0x0097,
+ 0xff78, 0xfe85, 0xfdb8, 0xfd0f, 0xfcaf, 0xfcb3,
+ 0xfd13, 0xfda5, 0xfe38, 0xfed2, 0xff80, 0x002c,
+ 0x00c9, 0x015f, 0x01e7, 0x024a, 0x027a, 0x028e,
+ 0x02a9, 0x02e0, 0x033f, 0x03cd, 0x0475, 0x0523,
+ 0x05c1, 0x063f, 0x06a6, 0x070a, 0x077a, 0x0801,
+ 0x0880, 0x08c9, 0x08de, 0x08de, 0x08df, 0x08f5,
+ 0x0910, 0x08fb, 0x089c, 0x07fb, 0x0725, 0x0647,
+ 0x058a, 0x04ef, 0x046a, 0x03f4, 0x0380, 0x0314,
+ 0x02c2, 0x027f, 0x0245, 0x022b, 0x0232, 0x0239,
+ 0x0228, 0x020e, 0x020a, 0x0218, 0x0216, 0x01f7,
+ 0x01b7, 0x015b, 0x0107, 0x00c8, 0x007f, 0x0031,
+ 0xffeb, 0xffb0, 0xff9e, 0xffc5, 0x0013, 0x0077,
+ 0x00cd, 0x00f5, 0x00e7, 0x00a6, 0x0038, 0xffa8,
+ 0xfef0, 0xfe1e, 0xfd42, 0xfc7b, 0xfbfb, 0xfbc2,
+ 0xfbb5, 0xfbd7, 0xfc0a, 0xfc13, 0xfbef, 0xfb94,
+ 0xfb08, 0xfa98, 0xfa58, 0xfa12, 0xf9d2, 0xf9cd,
+ 0xfa08, 0xfa60, 0xfaa9, 0xfadd, 0xfb14, 0xfb3c,
+ 0xfb39, 0xfb2b, 0xfb3f, 0xfb5b, 0xfb51, 0xfb1e,
+ 0xfab2, 0xf9ef, 0xf8e9, 0xf7b8, 0xf662, 0xf4fb,
+ 0xf38c, 0xf209, 0xf095, 0xef42, 0xee08, 0xecf8,
+ 0xec2e, 0xebd1, 0xebf6, 0xec61, 0xecfb, 0xede2,
+ 0xeeec, 0xefd7, 0xf0a6, 0xf154, 0xf1ef, 0xf28d,
+ 0xf31a, 0xf3b6, 0xf490, 0xf59b, 0xf6d5, 0xf824,
+ 0xf944, 0xfa42, 0xfb32, 0xfbf5, 0xfcb5, 0xfd95,
+ 0xfe76, 0xff6f, 0x0081, 0x016b, 0x0231, 0x02f9,
+ 0x03bf, 0x0485, 0x054d, 0x0616, 0x06d0, 0x0749,
+ 0x0786, 0x07c8, 0x080e, 0x084a, 0x08ad, 0x0959,
+ 0x0a42, 0x0b3d, 0x0c15, 0x0cb2, 0x0cff, 0x0cf2,
+ 0x0cb0, 0x0c68, 0x0c39, 0x0c2f, 0x0c27, 0x0c15,
+ 0x0c15, 0x0c1b, 0x0c0f, 0x0c03, 0x0bef, 0x0bbe,
+ 0x0b78, 0x0b2d, 0x0b05, 0x0b26, 0x0b79, 0x0bdc,
+ 0x0c48, 0x0c9c, 0x0cb5, 0x0ca4, 0x0c98, 0x0cc1,
+ 0x0d1a, 0x0d78, 0x0dd5, 0x0e2f, 0x0e66, 0x0e74,
+ 0x0e71, 0x0e6f, 0x0e76, 0x0e76, 0x0e5a, 0x0e34,
+ 0x0e02, 0x0dbb, 0x0d65, 0x0ce1, 0x0c1e, 0x0b4e,
+ 0x0a78, 0x0983, 0x0883, 0x0783, 0x0688, 0x05a6,
+ 0x04c0, 0x03d5, 0x0316, 0x0278, 0x01d7, 0x0124,
+ 0x0031, 0xff08, 0xfdd1, 0xfc7d, 0xfb21, 0xf9f1,
+ 0xf8d8, 0xf7de, 0xf72a, 0xf6ab, 0xf671, 0xf687,
+ 0xf6da, 0xf790, 0xf891, 0xf977, 0xfa54, 0xfb55,
+ 0xfc46, 0xfd0d, 0xfd98, 0xfdfb, 0xfe8a, 0xff2a,
+ 0xffa0, 0x0028, 0x00bc, 0x0105, 0x011a, 0x0132,
+ 0x015a, 0x01a2, 0x020b, 0x02b2, 0x03a7, 0x049b,
+ 0x0569, 0x0639, 0x0706, 0x07c3, 0x085c, 0x089e,
+ 0x089c, 0x0876, 0x0813, 0x078c, 0x0704, 0x0663,
+ 0x05b0, 0x0503, 0x044d, 0x0386, 0x02c0, 0x0209,
+ 0x0172, 0x0106, 0x00c2, 0x0090, 0x004e, 0xffed,
+ 0xff5b, 0xfe97, 0xfdcf, 0xfd27, 0xfc8b, 0xfbe1,
+ 0xfb18, 0xfa39, 0xf96b, 0xf8ba, 0xf81c, 0xf79a,
+ 0xf72c, 0xf6b5, 0xf62b, 0xf597, 0xf508, 0xf499,
+ 0xf475, 0xf4b0, 0xf525, 0xf59b, 0xf610, 0xf688,
+ 0xf6d0, 0xf6d9, 0xf6d9, 0xf6ff, 0xf750, 0xf7bd,
+ 0xf828, 0xf883, 0xf8bc, 0xf8ac, 0xf855, 0xf7e4,
+ 0xf75a, 0xf6c8, 0xf677, 0xf653, 0xf608, 0xf5ab,
+ 0xf56c, 0xf55a, 0xf590, 0xf5f5, 0xf64f, 0xf6aa,
+ 0xf712, 0xf766, 0xf79c, 0xf7bd, 0xf7d4, 0xf7e8,
+ 0xf7e0, 0xf7be, 0xf79c, 0xf76d, 0xf713, 0xf6a3,
+ 0xf651, 0xf631, 0xf634, 0xf651, 0xf686, 0xf6c7,
+ 0xf716, 0xf778, 0xf7e4, 0xf86a, 0xf924, 0xf9fa,
+ 0xfadc, 0xfbbf, 0xfc76, 0xfcf1, 0xfd54, 0xfdaf,
+ 0xfdf5, 0xfe17, 0xfe23, 0xfe2a, 0xfe19, 0xfde2,
+ 0xfdaf, 0xfdb3, 0xfdf8, 0xfe5e, 0xfed2, 0xff6f,
+ 0x0038, 0x0107, 0x01ee, 0x02ff, 0x0401, 0x04e1,
+ 0x05c9, 0x06a7, 0x0742, 0x0774, 0x0723, 0x0681,
+ 0x05d9, 0x0523, 0x046e, 0x040a, 0x03f6, 0x03ee,
+ 0x03d2, 0x039e, 0x0368, 0x0354, 0x034a, 0x0330,
+ 0x030a, 0x02bd, 0x0226, 0x0172, 0x00d6, 0x0056,
+ 0xffef, 0xffb9, 0xffb8, 0xffbd, 0xff99, 0xff4c,
+ 0xfeee, 0xfe8e, 0xfe2b, 0xfdb8, 0xfd35, 0xfcb4,
+ 0xfc37, 0xfbb9, 0xfb4a, 0xfb0d, 0xfb16, 0xfb48,
+ 0xfb6b, 0xfb69, 0xfb4f, 0xfb29, 0xfb0b, 0xfb0d,
+ 0xfb45, 0xfbb7, 0xfc46, 0xfcc9, 0xfd2e, 0xfd74,
+ 0xfda2, 0xfdce, 0xfe00, 0xfe28, 0xfe31, 0xfe07,
+ 0xfda5, 0xfd39, 0xfd04, 0xfd15, 0xfd57, 0xfdca,
+ 0xfe61, 0xfeda, 0xfef8, 0xfeb0, 0xfe12, 0xfd3a,
+ 0xfc5d, 0xfba9, 0xfb24, 0xfac7, 0xfa72, 0xf9f5,
+ 0xf958, 0xf8d5, 0xf863, 0xf7e2, 0xf77c, 0xf750,
+ 0xf748, 0xf76c, 0xf7c2, 0xf82b, 0xf89a, 0xf91e,
+ 0xf9ae, 0xfa40, 0xfad8, 0xfb5b, 0xfb96, 0xfba7,
+ 0xfbe0, 0xfc4d, 0xfcbd, 0xfd0b, 0xfd2a, 0xfd31,
+ 0xfd30, 0xfd1a, 0xfd16, 0xfd60, 0xfdda, 0xfe5d,
+ 0xfeff, 0xffc5, 0x0095, 0x016c, 0x0249, 0x031d,
+ 0x03c3, 0x0413, 0x0419, 0x0406, 0x03f5, 0x03db,
+ 0x03a4, 0x0351, 0x030c, 0x0305, 0x032e, 0x036d,
+ 0x03c9, 0x0439, 0x0496, 0x04e1, 0x0517, 0x051a,
+ 0x04ef, 0x04a2, 0x0418, 0x0356, 0x0277, 0x0182,
+ 0x00a2, 0x0004, 0xff8e, 0xff1f, 0xfecf, 0xfe9a,
+ 0xfe6d, 0xfe45, 0xfe12, 0xfdc9, 0xfd81, 0xfd52,
+ 0xfd44, 0xfd66, 0xfdbd, 0xfe26, 0xfe72, 0xfe9e,
+ 0xfeb4, 0xfea3, 0xfe7f, 0xfe6c, 0xfe58, 0xfe48,
+ 0xfe77, 0xfedd, 0xff38, 0xff70, 0xff84, 0xff60,
+ 0xfef6, 0xfe59, 0xfdb5, 0xfd20, 0xfc83, 0xfbe7,
+ 0xfb7e, 0xfb50, 0xfb49, 0xfb69, 0xfbad, 0xfbfd,
+ 0xfc35, 0xfc55, 0xfc7e, 0xfcaf, 0xfccc, 0xfcbe,
+ 0xfc65, 0xfbe7, 0xfb93, 0xfb45, 0xfabe, 0xfa34,
+ 0xf9d6, 0xf991, 0xf941, 0xf8d3, 0xf873, 0xf86a,
+ 0xf8b0, 0xf916, 0xf988, 0xf9f3, 0xfa3d, 0xfa41,
+ 0xfa03, 0xf9d2, 0xf9d0, 0xf9e8, 0xfa25, 0xfa81,
+ 0xfadd, 0xfb27, 0xfb3a, 0xfb0e, 0xfad6, 0xfaa2,
+ 0xfa79, 0xfa82, 0xfaba, 0xfb10, 0xfb8d, 0xfc2b,
+ 0xfce9, 0xfdc4, 0xfe8d, 0xff1f, 0xff72, 0xff68,
+ 0xff09, 0xfeb2, 0xfea8, 0xfecf, 0xfeef, 0xfedf,
+ 0xfe93, 0xfe43, 0xfe19, 0xfdff, 0xfdfc, 0xfe37,
+ 0xfe9b, 0xfef0, 0xff18, 0xff2a, 0xff64, 0xffe2,
+ 0x008b, 0x013b, 0x01bd, 0x01fb, 0x020e, 0x01fa,
+ 0x01dd, 0x0205, 0x0267, 0x02c4, 0x032d, 0x03c3,
+ 0x0468, 0x04de, 0x0503, 0x0503, 0x050b, 0x050d,
+ 0x0510, 0x0549, 0x05c6, 0x0646, 0x0681, 0x0685,
+ 0x069e, 0x06d7, 0x070c, 0x072e, 0x0750, 0x078f,
+ 0x07d7, 0x080c, 0x084e, 0x0899, 0x08b1, 0x0886,
+ 0x082e, 0x07b0, 0x0711, 0x0645, 0x0562, 0x04b2,
+ 0x0443, 0x0400, 0x03f4, 0x041c, 0x0471, 0x04de,
+ 0x0525, 0x051e, 0x04cb, 0x0434, 0x0374, 0x02b0,
+ 0x0204, 0x0197, 0x016e, 0x0166, 0x0168, 0x0157,
+ 0x011d, 0x00e6, 0x00d8, 0x00d0, 0x00ac, 0x008a,
+ 0x0098, 0x00df, 0x015e, 0x0207, 0x02bf, 0x036e,
+ 0x03f9, 0x043b, 0x0434, 0x0408, 0x03cf, 0x0394,
+ 0x0347, 0x02ca, 0x0243, 0x01e7, 0x01b8, 0x01b9,
+ 0x0202, 0x0289, 0x0319, 0x0386, 0x03d7, 0x0436,
+ 0x049e, 0x0505, 0x058d, 0x0631, 0x06b4, 0x06f7,
+ 0x06f4, 0x06b1, 0x0660, 0x0628, 0x0602, 0x05f4,
+ 0x060a, 0x0633, 0x064b, 0x062b, 0x05db, 0x05b2,
+ 0x05e1, 0x0624, 0x0620, 0x05da, 0x0575, 0x04e0,
+ 0x041e, 0x0364, 0x02c9, 0x024d, 0x01e8, 0x0174,
+ 0x00e0, 0x003a, 0xff76, 0xfe9b, 0xfddb, 0xfd51,
+ 0xfcf9, 0xfcdb, 0xfcf6, 0xfd1f, 0xfd2e, 0xfd3f,
+ 0xfd7d, 0xfdd1, 0xfe25, 0xfe7b, 0xfec9, 0xff0d,
+ 0xff49, 0xff72, 0xffaa, 0xffe1, 0xffcf, 0xff84,
+ 0xff23, 0xfea0, 0xfe25, 0xfdd4, 0xfd7f, 0xfd01,
+ 0xfc5a, 0xfba6, 0xfb0c, 0xfa7c, 0xf9d8, 0xf92d,
+ 0xf87b, 0xf7bf, 0xf700, 0xf646, 0xf5b2, 0xf542,
+ 0xf4ca, 0xf461, 0xf428, 0xf401, 0xf3db, 0xf3c5,
+ 0xf3ae, 0xf36a, 0xf2db, 0xf21a, 0xf160, 0xf0dd,
+ 0xf0a9, 0xf0b0, 0xf0d9, 0xf112, 0xf12a, 0xf122,
+ 0xf151, 0xf1d7, 0xf290, 0xf355, 0xf401, 0xf4a5,
+ 0xf559, 0xf601, 0xf6a6, 0xf74f, 0xf7de, 0xf86d,
+ 0xf8f8, 0xf94e, 0xf9a8, 0xfa42, 0xfaf0, 0xfb9a,
+ 0xfc64, 0xfd66, 0xfe93, 0xffde, 0x014c, 0x02b3,
+ 0x03e2, 0x04ee, 0x05d8, 0x0693, 0x0740, 0x07cc,
+ 0x0832, 0x0895, 0x08bf, 0x089a, 0x0865, 0x0836,
+ 0x084a, 0x08c5, 0x093d, 0x0991, 0x09ef, 0x0a49,
+ 0x0abe, 0x0b4b, 0x0bac, 0x0c04, 0x0c75, 0x0cd2,
+ 0x0d35, 0x0d9a, 0x0dd6, 0x0e16, 0x0e74, 0x0ee3,
+ 0x0f71, 0x1001, 0x1073, 0x10c3, 0x10da, 0x10db,
+ 0x10ec, 0x10f4, 0x10f2, 0x10e9, 0x10c3, 0x107a,
+ 0x1016, 0x0fc9, 0x0fb9, 0x0fa9, 0x0f81, 0x0f69,
+ 0x0f4f, 0x0f18, 0x0eaf, 0x0e06, 0x0d43, 0x0c6e,
+ 0x0b79, 0x0a8e, 0x09b0, 0x08b5, 0x0788, 0x0622,
+ 0x04ae, 0x036a, 0x024e, 0x0172, 0x00e5, 0x0059,
+ 0xff9a, 0xfea6, 0xfd8e, 0xfc93, 0xfbeb, 0xfb9e,
+ 0xfb9e, 0xfbb7, 0xfbbe, 0xfbad, 0xfb95, 0xfba2,
+ 0xfbda, 0xfc1b, 0xfc5d, 0xfc90, 0xfcb1, 0xfce9,
+ 0xfd20, 0xfd51, 0xfdb5, 0xfe32, 0xfe8b, 0xfebf,
+ 0xfeca, 0xfedd, 0xff34, 0xffaf, 0x0045, 0x0111,
+ 0x01da, 0x026a, 0x02a9, 0x0290, 0x0261, 0x0246,
+ 0x022b, 0x021c, 0x021e, 0x021b, 0x020d, 0x01f5,
+ 0x01ed, 0x0218, 0x0272, 0x0307, 0x03f7, 0x0533,
+ 0x066d, 0x073e, 0x078e, 0x078c, 0x073a, 0x068c,
+ 0x05a8, 0x04b5, 0x03cc, 0x02ea, 0x020d, 0x0159,
+ 0x00e7, 0x00b5, 0x00b2, 0x008d, 0x0000, 0xff21,
+ 0xfe18, 0xfd1b, 0xfc83, 0xfc6e, 0xfcb8, 0xfd39,
+ 0xfdca, 0xfe3b, 0xfe5f, 0xfe14, 0xfd71, 0xfcac,
+ 0xfc04, 0xfbb2, 0xfbb6, 0xfbeb, 0xfc41, 0xfca4,
+ 0xfcfe, 0xfd52, 0xfd8d, 0xfd7f, 0xfd25, 0xfcc1,
+ 0xfc88, 0xfc62, 0xfc41, 0xfc5b, 0xfcb9, 0xfd2b,
+ 0xfd94, 0xfdd8, 0xfddd, 0xfda3, 0xfd29, 0xfc7e,
+ 0xfbd3, 0xfb3a, 0xfab9, 0xfa67, 0xfa36, 0xf9f4,
+ 0xf989, 0xf8fd, 0xf85f, 0xf7b7, 0xf722, 0xf6c2,
+ 0xf68b, 0xf66b, 0xf677, 0xf6b8, 0xf712, 0xf76d,
+ 0xf7bc, 0xf7f6, 0xf80b, 0xf7e2, 0xf793, 0xf770,
+ 0xf79e, 0xf801, 0xf888, 0xf91a, 0xf988, 0xf9cb,
+ 0xf9e9, 0xf9d1, 0xf98c, 0xf94a, 0xf943, 0xf9a1,
+ 0xfa61, 0xfb5c, 0xfc5d, 0xfd36, 0xfdd2, 0xfe30,
+ 0xfe57, 0xfe67, 0xfe92, 0xfeea, 0xff65, 0xffde,
+ 0x0025, 0x002d, 0x0009, 0xffe7, 0xffe2, 0x0001,
+ 0x0053, 0x00cb, 0x013c, 0x01b6, 0x024d, 0x02d5,
+ 0x0344, 0x0392, 0x0389, 0x0330, 0x02aa, 0x0205,
+ 0x017c, 0x0130, 0x010f, 0x0122, 0x0132, 0x0107,
+ 0x00da, 0x00ba, 0x006d, 0x0006, 0xffa7, 0xff51,
+ 0xff0a, 0xfebe, 0xfe6e, 0xfe27, 0xfdd6, 0xfd7e,
+ 0xfd28, 0xfcbf, 0xfc3e, 0xfbb0, 0xfb0c, 0xfa58,
+ 0xf9b2, 0xf951, 0xf94f, 0xf98b, 0xf9eb, 0xfa50,
+ 0xfa87, 0xfa8f, 0xfa75, 0xfa35, 0xfa0b, 0xfa2f,
+ 0xfa91, 0xfb16, 0xfb93, 0xfbd2, 0xfbf3, 0xfc13,
+ 0xfc0f, 0xfbff, 0xfc1d, 0xfc57, 0xfc63, 0xfc17,
+ 0xfb80, 0xfad9, 0xfa51, 0xf9ea, 0xf99d, 0xf961,
+ 0xf8fe, 0xf84d, 0xf774, 0xf6b7, 0xf649, 0xf652,
+ 0xf6d9, 0xf7d3, 0xf917, 0xfa42, 0xfaef, 0xfb07,
+ 0xfa95, 0xf9b7, 0xf8bb, 0xf803, 0xf7d9, 0xf83d,
+ 0xf900, 0xf9d7, 0xfa56, 0xfa3b, 0xf9a8, 0xf8cc,
+ 0xf7dc, 0xf729, 0xf6ce, 0xf6bf, 0xf718, 0xf7d8,
+ 0xf8ed, 0xfa37, 0xfb4e, 0xfbda, 0xfbe0, 0xfb76,
+ 0xfabe, 0xfa07, 0xf9aa, 0xf9e0, 0xfa93, 0xfb85,
+ 0xfc90, 0xfd6e, 0xfdeb, 0xfe24, 0xfe3b, 0xfe5a,
+ 0xfec2, 0xff65, 0x000b, 0x00ba, 0x0161, 0x01e2,
+ 0x023f, 0x028d, 0x02de, 0x031a, 0x0318, 0x02f0,
+ 0x02a2, 0x020a, 0x0150, 0x00b2, 0x005d, 0x0087,
+ 0x0100, 0x014f, 0x013f, 0x00ae, 0xff8a, 0xfe21,
+ 0xfcec, 0xfc4b, 0xfc7a, 0xfd6e, 0xfed7, 0x003c,
+ 0x012b, 0x015d, 0x00d0, 0xffcc, 0xfeb1, 0xfdbd,
+ 0xfd40, 0xfd87, 0xfe7f, 0xffe3, 0x0147, 0x0207,
+ 0x01e3, 0x0115, 0xffc0, 0xfe30, 0xfcf9, 0xfc6d,
+ 0xfca6, 0xfda6, 0xff2c, 0x00de, 0x025e, 0x0346,
+ 0x0370, 0x02fe, 0x0221, 0x0119, 0x0046, 0xffea,
+ 0xfff3, 0x0037, 0x00aa, 0x0128, 0x0193, 0x01f1,
+ 0x022f, 0x022b, 0x01eb, 0x0174, 0x00dd, 0x005a,
+ 0xfffb, 0xfff5, 0x0093, 0x019e, 0x02af, 0x03ac,
+ 0x047a, 0x04dd, 0x04bb, 0x041f, 0x0350, 0x029b,
+ 0x0219, 0x01cf, 0x01c8, 0x01e8, 0x01f3, 0x01ac,
+ 0x0107, 0x001e, 0xff10, 0xfe15, 0xfd79, 0xfd5c,
+ 0xfdb6, 0xfe44, 0xfea9, 0xfec7, 0xfe91, 0xfdf2,
+ 0xfd12, 0xfc36, 0xfb76, 0xfaf3, 0xfad8, 0xfb48,
+ 0xfc2a, 0xfd1c, 0xfdd6, 0xfe4e, 0xfe63, 0xfe1e,
+ 0xfdde, 0xfddd, 0xfe2c, 0xfee7, 0xfff6, 0x0117,
+ 0x0220, 0x02ed, 0x0370, 0x03ae, 0x03af, 0x037c,
+ 0x0328, 0x02c7, 0x0261, 0x01fa, 0x01a1, 0x015e,
+ 0x0122, 0x00f5, 0x00ec, 0x00fd, 0x0103, 0x00d0,
+ 0x004b, 0xff9b, 0xfef5, 0xfe79, 0xfe4c, 0xfe7d,
+ 0xfedf, 0xff49, 0xffab, 0xffe9, 0xfffa, 0xfff9,
+ 0xfff4, 0xffef, 0xfffa, 0xfffe, 0xffcd, 0xff77,
+ 0xff1b, 0xfec1, 0xfe8f, 0xfea9, 0xfef0, 0xff44,
+ 0xff96, 0xffcf, 0xffff, 0x0056, 0x00da, 0x0162,
+ 0x01c9, 0x01f6, 0x01ce, 0x0158, 0x00c9, 0x003a,
+ 0xffc4, 0xff9d, 0xffad, 0xffa8, 0xffa4, 0xffaf,
+ 0xffaa, 0xffbe, 0x0007, 0x0062, 0x00d8, 0x0169,
+ 0x01d8, 0x0220, 0x0266, 0x02ba, 0x0326, 0x038b,
+ 0x03bf, 0x03b9, 0x0365, 0x02b6, 0x01c5, 0x00bf,
+ 0xfff7, 0xff8d, 0xff56, 0xff2a, 0xfee9, 0xfe6a,
+ 0xfda8, 0xfcba, 0xfbca, 0xfb04, 0xfa78, 0xfa4e,
+ 0xfaab, 0xfb4c, 0xfbe7, 0xfc79, 0xfced, 0xfd34,
+ 0xfd52, 0xfd39, 0xfcf2, 0xfc80, 0xfbce, 0xfb11,
+ 0xfa95, 0xfa72, 0xfaab, 0xfb00, 0xfb2c, 0xfb4c,
+ 0xfb75, 0xfb9b, 0xfbea, 0xfc67, 0xfcd2, 0xfcf8,
+ 0xfcc1, 0xfc45, 0xfbbc, 0xfb49, 0xfb1b, 0xfb47,
+ 0xfb91, 0xfbd0, 0xfbf0, 0xfbc9, 0xfb5a, 0xfac4,
+ 0xfa33, 0xf9db, 0xf9c7, 0xf9f8, 0xfa81, 0xfb39,
+ 0xfbe4, 0xfc76, 0xfce0, 0xfd27, 0xfd7e, 0xfe03,
+ 0xfeb8, 0xff81, 0x0005, 0x000c, 0xffac, 0xff04,
+ 0xfe3d, 0xfd98, 0xfd4b, 0xfd5a, 0xfd9b, 0xfde4,
+ 0xfe0b, 0xfdf9, 0xfdc7, 0xfda0, 0xfd8e, 0xfd94,
+ 0xfdaa, 0xfdba, 0xfde0, 0xfe52, 0xff1d, 0x002e,
+ 0x015d, 0x0269, 0x0336, 0x03bd, 0x0402, 0x042e,
+ 0x046b, 0x04bf, 0x052b, 0x05bc, 0x0683, 0x0780,
+ 0x0894, 0x09a6, 0x0ab5, 0x0bad, 0x0c7f, 0x0d4c,
+ 0x0e26, 0x0ef1, 0x0f94, 0x1000, 0x1032, 0x1044,
+ 0x1059, 0x1087, 0x10eb, 0x1164, 0x11a6, 0x11ab,
+ 0x1185, 0x1132, 0x10d4, 0x1080, 0x1011, 0x0f87,
+ 0x0ed9, 0x0dd6, 0x0c8f, 0x0b46, 0x0a2c, 0x0964,
+ 0x08d7, 0x083d, 0x0783, 0x06a5, 0x059c, 0x048e,
+ 0x039d, 0x02c0, 0x01f1, 0x013a, 0x009a, 0xffee,
+ 0xff2b, 0xfe8d, 0xfe24, 0xfdc4, 0xfd73, 0xfd53,
+ 0xfd70, 0xfdd9, 0xfe7d, 0xff39, 0x0012, 0x00e9,
+ 0x0199, 0x0248, 0x0307, 0x03ad, 0x041f, 0x044f,
+ 0x0441, 0x0414, 0x03ed, 0x03ee, 0x0411, 0x0429,
+ 0x042c, 0x0421, 0x0419, 0x0448, 0x04ab, 0x0516,
+ 0x0594, 0x0609, 0x061f, 0x05e3, 0x05a2, 0x0584,
+ 0x0587, 0x05a2, 0x05bf, 0x05c3, 0x05a0, 0x056b,
+ 0x052a, 0x04be, 0x0428, 0x037c, 0x02be, 0x01fd,
+ 0x013a, 0x007a, 0x0002, 0x0004, 0x004b, 0x008f,
+ 0x00a8, 0x006e, 0xffd0, 0xfeee, 0xfe03, 0xfd3f,
+ 0xfcb3, 0xfc72, 0xfc94, 0xfd0e, 0xfd8e, 0xfdd2,
+ 0xfdda, 0xfda4, 0xfd39, 0xfcdb, 0xfcb9, 0xfcd4,
+ 0xfd37, 0xfdbd, 0xfe28, 0xfe73, 0xfea1, 0xfea7,
+ 0xfeb2, 0xfef6, 0xff6b, 0xffe7, 0x0036, 0x0053,
+ 0x0064, 0x007a, 0x00a7, 0x00ec, 0x0116, 0x0115,
+ 0x00f9, 0x009c, 0xffeb, 0xfeec, 0xfdad, 0xfc73,
+ 0xfb78, 0xfab0, 0xfa1a, 0xf9c0, 0xf98e, 0xf96d,
+ 0xf923, 0xf875, 0xf77e, 0xf66c, 0xf558, 0xf45f,
+ 0xf39d, 0xf32b, 0xf339, 0xf3c4, 0xf481, 0xf52e,
+ 0xf5ac, 0xf5db, 0xf5a6, 0xf54b, 0xf523, 0xf565,
+ 0xf647, 0xf7cf, 0xf988, 0xfafa, 0xfbe8, 0xfc45,
+ 0xfc5d, 0xfc7b, 0xfca3, 0xfd01, 0xfda9, 0xfe4e,
+ 0xfec9, 0xff2b, 0xff5e, 0xff67, 0xff6e, 0xff6f,
+ 0xff5c, 0xff2e, 0xfeeb, 0xfed0, 0xff0a, 0xff79,
+ 0x0008, 0x00c7, 0x018f, 0x0222, 0x026d, 0x0281,
+ 0x026f, 0x0260, 0x0283, 0x02e5, 0x0372, 0x0409,
+ 0x0474, 0x048f, 0x0465, 0x041a, 0x03b6, 0x0342,
+ 0x02fd, 0x030d, 0x0343, 0x038e, 0x0411, 0x04a7,
+ 0x0512, 0x0558, 0x057f, 0x0573, 0x0526, 0x0494,
+ 0x03ed, 0x036c, 0x0318, 0x02ff, 0x034d, 0x03e2,
+ 0x046f, 0x04dc, 0x0528, 0x0535, 0x04ef, 0x0477,
+ 0x03ff, 0x03a0, 0x036f, 0x036a, 0x036c, 0x0377,
+ 0x039d, 0x03c0, 0x03c8, 0x03af, 0x0363, 0x02ef,
+ 0x026c, 0x01d1, 0x0127, 0x0085, 0xffe8, 0xff5b,
+ 0xfef9, 0xfeaf, 0xfe59, 0xfdf0, 0xfd69, 0xfcc6,
+ 0xfc2d, 0xfbbd, 0xfb6a, 0xfb19, 0xfacb, 0xfa81,
+ 0xfa33, 0xf9ce, 0xf937, 0xf893, 0xf818, 0xf7be,
+ 0xf77d, 0xf757, 0xf728, 0xf6f6, 0xf6f0, 0xf70e,
+ 0xf72f, 0xf744, 0xf727, 0xf6ce, 0xf669, 0xf61f,
+ 0xf602, 0xf61c, 0xf679, 0xf701, 0xf771, 0xf7b0,
+ 0xf7be, 0xf771, 0xf6d2, 0xf62c, 0xf5ac, 0xf573,
+ 0xf58f, 0xf5db, 0xf64a, 0xf6e0, 0xf777, 0xf7fe,
+ 0xf86f, 0xf8ad, 0xf8cb, 0xf8f1, 0xf919, 0xf939,
+ 0xf952, 0xf974, 0xf9c8, 0xfa58, 0xfaf4, 0xfb63,
+ 0xfb96, 0xfba6, 0xfb96, 0xfb4e, 0xfadc, 0xfa69,
+ 0xfa29, 0xfa4d, 0xfab6, 0xfb17, 0xfb5d, 0xfb87,
+ 0xfb8a, 0xfb79, 0xfb5d, 0xfb36, 0xfb20, 0xfb1f,
+ 0xfb14, 0xfafc, 0xfafa, 0xfb2b, 0xfb6c, 0xfb7c,
+ 0xfb4d, 0xfadf, 0xfa35, 0xf98c, 0xf936, 0xf951,
+ 0xf9e4, 0xfad5, 0xfbe2, 0xfcd3, 0xfd98, 0xfe19,
+ 0xfe2b, 0xfdf5, 0xfddf, 0xfe0a, 0xfe74, 0xff40,
+ 0x004b, 0x014f, 0x0235, 0x02cd, 0x02eb, 0x02bc,
+ 0x025f, 0x01e2, 0x0177, 0x0136, 0x0126, 0x014d,
+ 0x018e, 0x01d5, 0x0220, 0x0227, 0x01ae, 0x00e4,
+ 0x000a, 0xff41, 0xfeb1, 0xfe76, 0xfe81, 0xfeba,
+ 0xff12, 0xff69, 0xff8f, 0xff7c, 0xff53, 0xff2c,
+ 0xff00, 0xfec8, 0xfe84, 0xfe3e, 0xfe2c, 0xfe73,
+ 0xfedd, 0xff2d, 0xff5a, 0xff60, 0xff51, 0xff4d,
+ 0xff3c, 0xff15, 0xff02, 0xff0c, 0xff20, 0xff38,
+ 0xff4d, 0xff6c, 0xffa8, 0xffd7, 0xffd9, 0xffbe,
+ 0xff94, 0xff65, 0xff38, 0xff1b, 0xff13, 0xff00,
+ 0xfed1, 0xfeb6, 0xfeab, 0xfe89, 0xfe79, 0xfe8c,
+ 0xfe9a, 0xfea2, 0xfea3, 0xfe99, 0xfe9f, 0xfeac,
+ 0xfeb0, 0xfec5, 0xfed6, 0xfec8, 0xfea7, 0xfe6c,
+ 0xfe52, 0xfe9b, 0xff02, 0xff52, 0xffb0, 0xfff9,
+ 0xffff, 0xffce, 0xff76, 0xff39, 0xff45, 0xff5b,
+ 0xff76, 0xffbd, 0x0011, 0x0076, 0x00e5, 0x0120,
+ 0x0125, 0x0113, 0x00ed, 0x00d3, 0x00c7, 0x00c1,
+ 0x00e8, 0x0145, 0x01c8, 0x0280, 0x033f, 0x03c9,
+ 0x0422, 0x043f, 0x0416, 0x03dd, 0x03a7, 0x0375,
+ 0x0371, 0x0393, 0x039d, 0x0399, 0x03b2, 0x03de,
+ 0x0412, 0x0443, 0x0453, 0x0451, 0x0440, 0x03eb,
+ 0x036e, 0x031f, 0x02f8, 0x02c8, 0x0294, 0x026b,
+ 0x025f, 0x026f, 0x027e, 0x0280, 0x0287, 0x028d,
+ 0x0276, 0x023f, 0x0205, 0x01c2, 0x0174, 0x0150,
+ 0x0160, 0x0170, 0x0170, 0x014c, 0x00ee, 0x007e,
+ 0x001d, 0xffce, 0xffab, 0xffb7, 0xffe5, 0x003c,
+ 0x00a1, 0x00d3, 0x00b9, 0x0061, 0xfffb, 0xffb3,
+ 0xff8e, 0xff87, 0xff98, 0xff97, 0xff65, 0xff14,
+ 0xfeba, 0xfe50, 0xfddc, 0xfd6b, 0xfd01, 0xfc9e,
+ 0xfc40, 0xfbd6, 0xfb51, 0xfacb, 0xfa69, 0xfa23,
+ 0xf9da, 0xf985, 0xf924, 0xf8ae, 0xf83f, 0xf7ef,
+ 0xf7a9, 0xf76d, 0xf751, 0xf746, 0xf73d, 0xf73e,
+ 0xf749, 0xf768, 0xf7a0, 0xf7d3, 0xf7f5, 0xf80d,
+ 0xf809, 0xf7e5, 0xf7d8, 0xf805, 0xf856, 0xf8af,
+ 0xf90b, 0xf96f, 0xf9e4, 0xfa56, 0xfa8f, 0xfa83,
+ 0xfa65, 0xfa45, 0xf9fc, 0xf97c, 0xf8d7, 0xf833,
+ 0xf79c, 0xf714, 0xf6c8, 0xf6dc, 0xf73c, 0xf7ca,
+ 0xf861, 0xf8da, 0xf925, 0xf93e, 0xf938, 0xf932,
+ 0xf935, 0xf957, 0xf9a4, 0xfa02, 0xfa73, 0xfaf7,
+ 0xfb63, 0xfbb5, 0xfc09, 0xfc52, 0xfc8c, 0xfccb,
+ 0xfd07, 0xfd43, 0xfd9d, 0xfe30, 0xfef1, 0xffc7,
+ 0x00aa, 0x0196, 0x0277, 0x0356, 0x042e, 0x04e9,
+ 0x05a3, 0x0680, 0x077e, 0x0897, 0x09c2, 0x0ade,
+ 0x0bcc, 0x0c96, 0x0d4e, 0x0de2, 0x0e54, 0x0ed3,
+ 0x0f6a, 0x0ffc, 0x1084, 0x10f5, 0x1154, 0x11bd,
+ 0x121d, 0x126c, 0x12c1, 0x12e3, 0x12a7, 0x124f,
+ 0x1200, 0x11aa, 0x114f, 0x10dc, 0x102c, 0x0f40,
+ 0x0e13, 0x0cb2, 0x0b69, 0x0a72, 0x09c6, 0x094a,
+ 0x08de, 0x086b, 0x07ed, 0x074a, 0x0672, 0x059b,
+ 0x04e8, 0x0445, 0x03ce, 0x039e, 0x0389, 0x0367,
+ 0x034e, 0x0370, 0x03eb, 0x047d, 0x04ea, 0x055a,
+ 0x05c5, 0x05ff, 0x0629, 0x0657, 0x0689, 0x06f1,
+ 0x0782, 0x0807, 0x0887, 0x08ed, 0x0916, 0x092e,
+ 0x0966, 0x09c6, 0x0a39, 0x0a91, 0x0ab7, 0x0aaf,
+ 0x0a87, 0x0a5f, 0x0a30, 0x09e2, 0x099a, 0x0960,
+ 0x08fa, 0x086e, 0x07e2, 0x0755, 0x06c4, 0x0632,
+ 0x059b, 0x051d, 0x04e7, 0x04e9, 0x04ed, 0x04dd,
+ 0x04b5, 0x0452, 0x03b0, 0x0300, 0x024e, 0x0188,
+ 0x00ad, 0xffdd, 0xff31, 0xfea1, 0xfe1b, 0xfdaa,
+ 0xfd4b, 0xfce7, 0xfc6b, 0xfbde, 0xfb61, 0xfb08,
+ 0xfabd, 0xfa76, 0xfa3d, 0xfa1d, 0xfa09, 0xf9e9,
+ 0xf9c7, 0xf9d3, 0xfa24, 0xfab8, 0xfb6f, 0xfc18,
+ 0xfcb9, 0xfd52, 0xfdb6, 0xfdfc, 0xfe3d, 0xfe71,
+ 0xfeb7, 0xff1e, 0xff81, 0xffdb, 0x0020, 0x0045,
+ 0x0070, 0x00a2, 0x00c1, 0x00c6, 0x0082, 0xfff1,
+ 0xff42, 0xfe72, 0xfd77, 0xfc81, 0xfba3, 0xfad7,
+ 0xfa2b, 0xf997, 0xf8f9, 0xf84b, 0xf7a6, 0xf725,
+ 0xf6d2, 0xf6a4, 0xf694, 0xf6a6, 0xf6cc, 0xf6ea,
+ 0xf6fe, 0xf6ff, 0xf6d4, 0xf6ab, 0xf6b6, 0xf6cd,
+ 0xf6d5, 0xf6ec, 0xf71d, 0xf762, 0xf7b3, 0xf80b,
+ 0xf881, 0xf913, 0xf994, 0xf9f3, 0xfa53, 0xfada,
+ 0xfb7c, 0xfc19, 0xfcc5, 0xfd9a, 0xfe72, 0xff3d,
+ 0xfff5, 0x0071, 0x00b2, 0x00ed, 0x0134, 0x0186,
+ 0x01f9, 0x0281, 0x02f3, 0x0341, 0x036e, 0x0371,
+ 0x035a, 0x0322, 0x02b2, 0x023c, 0x01f2, 0x01bc,
+ 0x01ab, 0x01eb, 0x0270, 0x0312, 0x039f, 0x03e9,
+ 0x03df, 0x038f, 0x033d, 0x0320, 0x032a, 0x0359,
+ 0x039e, 0x03be, 0x03bc, 0x03bf, 0x03c2, 0x03df,
+ 0x0413, 0x041e, 0x03fe, 0x03d2, 0x03ae, 0x03a9,
+ 0x03aa, 0x038f, 0x037a, 0x0370, 0x0348, 0x0304,
+ 0x02a7, 0x0220, 0x0185, 0x00f8, 0x0076, 0x0010,
+ 0xffe8, 0xffd3, 0xffa5, 0xff7d, 0xff67, 0xff41,
+ 0xff13, 0xfee7, 0xfeb7, 0xfe85, 0xfe46, 0xfdf3,
+ 0xfd9f, 0xfd5b, 0xfd37, 0xfd33, 0xfd3a, 0xfd45,
+ 0xfd45, 0xfd1f, 0xfce1, 0xfca0, 0xfc69, 0xfc3b,
+ 0xfbfe, 0xfbbb, 0xfb7f, 0xfb33, 0xfad2, 0xfa72,
+ 0xfa05, 0xf982, 0xf8f1, 0xf866, 0xf800, 0xf7bf,
+ 0xf77b, 0xf71c, 0xf6b5, 0xf676, 0xf668, 0xf67e,
+ 0xf6bb, 0xf703, 0xf73d, 0xf77b, 0xf7b0, 0xf7da,
+ 0xf820, 0xf86e, 0xf8a6, 0xf8db, 0xf914, 0xf959,
+ 0xf9af, 0xfa07, 0xfa62, 0xfacb, 0xfb33, 0xfb87,
+ 0xfbb8, 0xfbc4, 0xfbba, 0xfb94, 0xfb4f, 0xfb14,
+ 0xfb03, 0xfb13, 0xfb3b, 0xfb8e, 0xfc01, 0xfc51,
+ 0xfc7a, 0xfca5, 0xfcca, 0xfce3, 0xfd06, 0xfd31,
+ 0xfd5a, 0xfd7d, 0xfda5, 0xfde1, 0xfe18, 0xfe40,
+ 0xfe6b, 0xfe7c, 0xfe71, 0xfe6f, 0xfe52, 0xfe08,
+ 0xfda8, 0xfd22, 0xfc82, 0xfbe3, 0xfb49, 0xfad4,
+ 0xfa98, 0xfa79, 0xfa6f, 0xfa7e, 0xfaa9, 0xfacf,
+ 0xfac7, 0xfab8, 0xfac2, 0xfabc, 0xfab1, 0xfaba,
+ 0xfac4, 0xfacf, 0xfab2, 0xfa5d, 0xfa19, 0xf9fa,
+ 0xfa01, 0xfa65, 0xfaf8, 0xfb72, 0xfbdb, 0xfc19,
+ 0xfc24, 0xfc45, 0xfc97, 0xfcfb, 0xfd5a, 0xfdb3,
+ 0xfe24, 0xfeae, 0xff3a, 0xffd0, 0x0065, 0x00e5,
+ 0x0154, 0x01ae, 0x01e2, 0x0205, 0x0228, 0x024e,
+ 0x0274, 0x02a2, 0x02d8, 0x02fa, 0x02f4, 0x02d7,
+ 0x02af, 0x0280, 0x0246, 0x0203, 0x01be, 0x0172,
+ 0x0122, 0x00db, 0x0086, 0x002a, 0xfff3, 0xffd4,
+ 0xffc6, 0xffce, 0xffc0, 0xff87, 0xff3e, 0xfeee,
+ 0xfeb8, 0xfeb9, 0xfec6, 0xfed7, 0xff18, 0xff85,
+ 0xfff8, 0x0063, 0x00c4, 0x010c, 0x0123, 0x0110,
+ 0x00fb, 0x00ee, 0x00c7, 0x0080, 0x0028, 0xffc5,
+ 0xff62, 0xff19, 0xfef4, 0xfee5, 0xfed1, 0xfea9,
+ 0xfe7a, 0xfe5b, 0xfe5a, 0xfe74, 0xfe86, 0xfe86,
+ 0xfe9a, 0xfecb, 0xff02, 0xff46, 0xff8e, 0xffc6,
+ 0xfff9, 0x0023, 0x002f, 0x0028, 0x0001, 0xff9e,
+ 0xff2a, 0xfed9, 0xfe92, 0xfe57, 0xfe4b, 0xfe5f,
+ 0xfe6e, 0xfe6f, 0xfe5d, 0xfe37, 0xfe0b, 0xfdeb,
+ 0xfdec, 0xfe05, 0xfe10, 0xfe07, 0xfdf9, 0xfddf,
+ 0xfdc2, 0xfdbb, 0xfdaf, 0xfd82, 0xfd51, 0xfd42,
+ 0xfd5a, 0xfd98, 0xfdf4, 0xfe5e, 0xfec5, 0xff36,
+ 0xffd4, 0x009d, 0x0182, 0x025d, 0x0300, 0x0363,
+ 0x03ac, 0x03f1, 0x0435, 0x0485, 0x04ec, 0x055d,
+ 0x05b7, 0x05ed, 0x061d, 0x064c, 0x0655, 0x062e,
+ 0x05d4, 0x055b, 0x04f2, 0x04a3, 0x0457, 0x0408,
+ 0x039b, 0x02fa, 0x0251, 0x01cb, 0x0174, 0x0165,
+ 0x01a3, 0x020d, 0x0277, 0x02b6, 0x02d2, 0x02fd,
+ 0x0342, 0x0382, 0x03b0, 0x03c0, 0x039b, 0x0354,
+ 0x0321, 0x0320, 0x033b, 0x0358, 0x037b, 0x039c,
+ 0x03a2, 0x0374, 0x02f4, 0x022e, 0x015a, 0x0093,
+ 0xffe2, 0xff5b, 0xfef2, 0xfe97, 0xfe59, 0xfe1e,
+ 0xfdbb, 0xfd4b, 0xfce7, 0xfc8a, 0xfc4a, 0xfc31,
+ 0xfc1b, 0xfc09, 0xfc1d, 0xfc56, 0xfc9a, 0xfcdd,
+ 0xfd0e, 0xfd2c, 0xfd49, 0xfd5a, 0xfd34, 0xfcca,
+ 0xfc3b, 0xfbaf, 0xfb38, 0xfad4, 0xfa80, 0xfa43,
+ 0xfa10, 0xf9cc, 0xf969, 0xf8f7, 0xf894, 0xf837,
+ 0xf7c1, 0xf73e, 0xf6d2, 0xf685, 0xf647, 0xf5f9,
+ 0xf584, 0xf4f3, 0xf46b, 0xf3f8, 0xf38c, 0xf322,
+ 0xf2c3, 0xf26b, 0xf20e, 0xf1b4, 0xf166, 0xf123,
+ 0xf0ed, 0xf0d5, 0xf0f5, 0xf165, 0xf213, 0xf2ce,
+ 0xf386, 0xf447, 0xf519, 0xf5db, 0xf661, 0xf6c4,
+ 0xf74f, 0xf81f, 0xf92f, 0xfa81, 0xfbfb, 0xfd6c,
+ 0xfeca, 0x0021, 0x0173, 0x02ae, 0x03bf, 0x04aa,
+ 0x0571, 0x0615, 0x06af, 0x0760, 0x0830, 0x0928,
+ 0x0a35, 0x0b29, 0x0bf3, 0x0ca6, 0x0d52, 0x0df8,
+ 0x0e75, 0x0eae, 0x0eb3, 0x0eae, 0x0ec6, 0x0eed,
+ 0x0f04, 0x0f0e, 0x0f01, 0x0ec8, 0x0e67, 0x0ddc,
+ 0x0d45, 0x0cda, 0x0c8b, 0x0c2c, 0x0bc7, 0x0b58,
+ 0x0ad4, 0x0a36, 0x0959, 0x084e, 0x0746, 0x063c,
+ 0x0544, 0x048a, 0x040f, 0x03cf, 0x03ac, 0x036b,
+ 0x02fe, 0x0284, 0x0229, 0x0211, 0x022c, 0x0270,
+ 0x02eb, 0x0387, 0x0431, 0x04eb, 0x05a3, 0x0658,
+ 0x0713, 0x07c6, 0x0864, 0x08e4, 0x0949, 0x0999,
+ 0x09ce, 0x0a06, 0x0a56, 0x0aa7, 0x0afc, 0x0b4f,
+ 0x0b7d, 0x0b97, 0x0bb0, 0x0bae, 0x0b8b, 0x0b42,
+ 0x0ada, 0x0a89, 0x0a57, 0x0a28, 0x09ed, 0x0994,
+ 0x0930, 0x08d7, 0x0861, 0x07be, 0x070c, 0x0657,
+ 0x05a1, 0x04ed, 0x0443, 0x03b3, 0x033b, 0x02cb,
+ 0x0253, 0x01da, 0x0180, 0x0146, 0x010b, 0x00d2,
+ 0x009a, 0x005d, 0x003f, 0x0043, 0x004b, 0x0053,
+ 0x005a, 0x006f, 0x00ab, 0x00f8, 0x014d, 0x01ae,
+ 0x01f7, 0x0216, 0x020c, 0x01d7, 0x0199, 0x016b,
+ 0x0132, 0x00e8, 0x0098, 0x0045, 0x0001, 0xffcf,
+ 0xffaf, 0xffb6, 0xffd7, 0xfff2, 0x000a, 0x0033,
+ 0x0069, 0x0085, 0x0065, 0x0010, 0xffaa, 0xff50,
+ 0xff22, 0xff16, 0xff06, 0xfeea, 0xfecf, 0xfeaf,
+ 0xfe90, 0xfe7f, 0xfe6f, 0xfe57, 0xfe24, 0xfdb5,
+ 0xfd1c, 0xfc7d, 0xfbd2, 0xfb21, 0xfa83, 0xf9eb,
+ 0xf95a, 0xf8ef, 0xf8b2, 0xf898, 0xf88d, 0xf87e,
+ 0xf86b, 0xf856, 0xf84a, 0xf865, 0xf89f, 0xf8ed,
+ 0xf956, 0xf9c0, 0xfa28, 0xfaa1, 0xfb25, 0xfbb1,
+ 0xfc57, 0xfd1b, 0xfdeb, 0xfe9e, 0xff31, 0xffbe,
+ 0x002e, 0x007e, 0x00d1, 0x0121, 0x0160, 0x01a4,
+ 0x01ef, 0x023d, 0x027e, 0x0289, 0x0250, 0x01e4,
+ 0x016d, 0x0127, 0x0110, 0x011e, 0x014f, 0x016d,
+ 0x016c, 0x0167, 0x0135, 0x00d5, 0x006d, 0xffdf,
+ 0xff53, 0xff1f, 0xff22, 0xff34, 0xff64, 0xffad,
+ 0x0008, 0x006d, 0x00cc, 0x011c, 0x013e, 0x0140,
+ 0x0169, 0x01b3, 0x01fc, 0x0254, 0x02be, 0x032b,
+ 0x0385, 0x03b5, 0x03c2, 0x03ba, 0x03a0, 0x037b,
+ 0x033b, 0x02d8, 0x0263, 0x01d1, 0x012f, 0x00a7,
+ 0x0036, 0xffd3, 0xff7e, 0xff34, 0xff0a, 0xff05,
+ 0xff03, 0xfef0, 0xfeb9, 0xfe54, 0xfdeb, 0xfda2,
+ 0xfd6d, 0xfd2a, 0xfccc, 0xfc60, 0xfbf8, 0xfbb1,
+ 0xfba2, 0xfbbe, 0xfbf5, 0xfc4b, 0xfc98, 0xfcbe,
+ 0xfcd7, 0xfcf3, 0xfd15, 0xfd3a, 0xfd44, 0xfd2e,
+ 0xfd19, 0xfcfb, 0xfcc1, 0xfc7a, 0xfc20, 0xfb90,
+ 0xfabc, 0xf9c1, 0xf8c7, 0xf7ef, 0xf751, 0xf6ed,
+ 0xf6b0, 0xf694, 0xf69d, 0xf6c2, 0xf6e4, 0xf6df,
+ 0xf6c2, 0xf6bd, 0xf6d4, 0xf700, 0xf74d, 0xf7b9,
+ 0xf833, 0xf8aa, 0xf903, 0xf93c, 0xf969, 0xf991,
+ 0xf9cd, 0xfa31, 0xfa97, 0xfad7, 0xfaf2, 0xfae0,
+ 0xfaa6, 0xfa6b, 0xfa33, 0xf9f3, 0xf9ba, 0xf984,
+ 0xf94e, 0xf937, 0xf94c, 0xf985, 0xf9c8, 0xf9fa,
+ 0xfa27, 0xfa5f, 0xfa9b, 0xfad0, 0xfae9, 0xfae9,
+ 0xfaf1, 0xfafa, 0xfae1, 0xfaa9, 0xfa5a, 0xfa0b,
+ 0xf9ef, 0xfa0a, 0xfa3e, 0xfa8a, 0xfaef, 0xfb5c,
+ 0xfbb2, 0xfbee, 0xfc2f, 0xfc78, 0xfcc9, 0xfd45,
+ 0xfdfb, 0xfec7, 0xff79, 0xffe4, 0x0008, 0xffed,
+ 0xff8f, 0xff10, 0xfe95, 0xfe20, 0xfdc7, 0xfd9f,
+ 0xfda1, 0xfdc7, 0xfdf5, 0xfe08, 0xfe09, 0xfdf3,
+ 0xfdb7, 0xfd6b, 0xfd2a, 0xfcfe, 0xfcfa, 0xfd23,
+ 0xfd71, 0xfde4, 0xfe6f, 0xfef2, 0xff67, 0xffde,
+ 0x0067, 0x0109, 0x01ba, 0x0268, 0x02ef, 0x0330,
+ 0x0345, 0x034b, 0x0339, 0x032a, 0x0350, 0x0395,
+ 0x03d0, 0x03fb, 0x040e, 0x0406, 0x03e8, 0x03b6,
+ 0x0371, 0x0309, 0x027f, 0x01fa, 0x017f, 0x0109,
+ 0x00b3, 0x0079, 0x0052, 0x0055, 0x0075, 0x00a9,
+ 0x00fc, 0x0142, 0x015c, 0x0163, 0x0158, 0x0147,
+ 0x015b, 0x0194, 0x01ce, 0x01e6, 0x01d6, 0x01b4,
+ 0x0185, 0x0144, 0x00f5, 0x007a, 0xffc9, 0xff14,
+ 0xfe87, 0xfe1d, 0xfdd6, 0xfdac, 0xfd80, 0xfd36,
+ 0xfcd4, 0xfc66, 0xfbef, 0xfb8a, 0xfb69, 0xfb81,
+ 0xfb97, 0xfb93, 0xfb86, 0xfb72, 0xfb4c, 0xfb23,
+ 0xfb0f, 0xfb10, 0xfb20, 0xfb4a, 0xfb85, 0xfbb5,
+ 0xfbc9, 0xfbc5, 0xfba9, 0xfb92, 0xfbad, 0xfbf7,
+ 0xfc5c, 0xfce3, 0xfd6d, 0xfdd8, 0xfe39, 0xfe96,
+ 0xfee7, 0xff4a, 0xffa3, 0xffb5, 0xff87, 0xff2c,
+ 0xfeb7, 0xfe55, 0xfe16, 0xfdf5, 0xfde7, 0xfdde,
+ 0xfdf5, 0xfe35, 0xfe74, 0xfea6, 0xfed5, 0xff03,
+ 0xff3a, 0xff5f, 0xff7b, 0xffc7, 0x0026, 0x006c,
+ 0x00aa, 0x00f2, 0x014d, 0x01b2, 0x01ec, 0x0201,
+ 0x020f, 0x0212, 0x0234, 0x027f, 0x02c4, 0x0303,
+ 0x033f, 0x0365, 0x038b, 0x03b2, 0x03dc, 0x042b,
+ 0x0480, 0x04aa, 0x04bb, 0x04c9, 0x04d3, 0x04d9,
+ 0x04d8, 0x04c9, 0x04a3, 0x0467, 0x0426, 0x03e1,
+ 0x039f, 0x035d, 0x0306, 0x02b7, 0x029c, 0x02ab,
+ 0x02d1, 0x02f0, 0x02e4, 0x02bd, 0x02a4, 0x029a,
+ 0x028d, 0x027f, 0x0270, 0x0231, 0x01af, 0x0117,
+ 0x0074, 0xffca, 0xff31, 0xfe92, 0xfde0, 0xfd4b,
+ 0xfcd7, 0xfc77, 0xfc45, 0xfc3e, 0xfc3b, 0xfc15,
+ 0xfbcd, 0xfb95, 0xfb64, 0xfb20, 0xfae8, 0xfabd,
+ 0xfa9b, 0xfaa8, 0xfacc, 0xfaec, 0xfb22, 0xfb4d,
+ 0xfb5e, 0xfb62, 0xfb46, 0xfb21, 0xfb01, 0xfac5,
+ 0xfa93, 0xfa84, 0xfa81, 0xfab2, 0xfb18, 0xfb8b,
+ 0xfc1f, 0xfcb8, 0xfd2c, 0xfd99, 0xfdf7, 0xfe31,
+ 0xfe65, 0xfe82, 0xfe6f, 0xfe36, 0xfdc3, 0xfd17,
+ 0xfc5c, 0xfba3, 0xfaed, 0xfa37, 0xf980, 0xf8cc,
+ 0xf819, 0xf778, 0xf700, 0xf69f, 0xf645, 0xf5fd,
+ 0xf5dd, 0xf5f4, 0xf633, 0xf682, 0xf6e8, 0xf75a,
+ 0xf7c5, 0xf83a, 0xf8dd, 0xf9b0, 0xfa9e, 0xfb91,
+ 0xfc8e, 0xfdb0, 0xfef1, 0x0016, 0x0114, 0x01ff,
+ 0x02c3, 0x0363, 0x0419, 0x04ec, 0x05cb, 0x06c3,
+ 0x07b8, 0x088d, 0x095e, 0x0a29, 0x0ad4, 0x0b76,
+ 0x0c18, 0x0ca5, 0x0d1a, 0x0d90, 0x0e08, 0x0e5b,
+ 0x0e94, 0x0ed6, 0x0ef8, 0x0ed6, 0x0e9d, 0x0e6d,
+ 0x0e48, 0x0e29, 0x0df6, 0x0da5, 0x0d41, 0x0cda,
+ 0x0c7b, 0x0c13, 0x0b8d, 0x0aed, 0x0a2e, 0x0966,
+ 0x08cb, 0x084e, 0x07c1, 0x0725, 0x0681, 0x05d7,
+ 0x053f, 0x04ce, 0x046c, 0x0400, 0x03a4, 0x0372,
+ 0x0347, 0x030f, 0x02e3, 0x02be, 0x028a, 0x0247,
+ 0x021b, 0x0225, 0x0246, 0x026f, 0x02ad, 0x02e0,
+ 0x02ff, 0x0324, 0x0341, 0x035b, 0x038f, 0x03d6,
+ 0x043f, 0x04dc, 0x0599, 0x065c, 0x0714, 0x07c2,
+ 0x0879, 0x091f, 0x099c, 0x0a07, 0x0a54, 0x0a7c,
+ 0x0a89, 0x0a6d, 0x0a22, 0x09b7, 0x091c, 0x0856,
+ 0x0784, 0x06ab, 0x05d4, 0x0500, 0x041a, 0x0333,
+ 0x026b, 0x01b8, 0x0105, 0x006c, 0x0005, 0xffca,
+ 0xffaf, 0xff9d, 0xff6c, 0xff1d, 0xfec7, 0xfe74,
+ 0xfe3c, 0xfe32, 0xfe4d, 0xfe76, 0xfe8b, 0xfe97,
+ 0xfeb1, 0xfebc, 0xfea9, 0xfea8, 0xfecd, 0xff11,
+ 0xff67, 0xffb5, 0xffe3, 0xffe2, 0xffbf, 0xffa2,
+ 0xffa8, 0xffd1, 0x0012, 0x0059, 0x00a5, 0x00e9,
+ 0x0107, 0x0107, 0x00f4, 0x00d6, 0x00cf, 0x00d7,
+ 0x00b9, 0x0075, 0x0033, 0x000f, 0x0005, 0x000b,
+ 0x0022, 0x003c, 0x004e, 0x0059, 0x004d, 0x003f,
+ 0x0054, 0x0043, 0xffd9, 0xff45, 0xfe9b, 0xfdea,
+ 0xfd41, 0xfc7f, 0xfba8, 0xfade, 0xfa12, 0xf94f,
+ 0xf89a, 0xf7d7, 0xf716, 0xf66b, 0xf5d6, 0xf578,
+ 0xf566, 0xf587, 0xf5c5, 0xf608, 0xf634, 0xf645,
+ 0xf65c, 0xf696, 0xf6e0, 0xf72c, 0xf781, 0xf7d5,
+ 0xf831, 0xf8a7, 0xf924, 0xf9a7, 0xfa2e, 0xfaa7,
+ 0xfb0d, 0xfb4c, 0xfb7b, 0xfbe4, 0xfc86, 0xfd40,
+ 0xfe0a, 0xfeac, 0xff19, 0xff81, 0xffe1, 0x0039,
+ 0x0093, 0x00ca, 0x00de, 0x00e6, 0x00e7, 0x00e0,
+ 0x00c8, 0x00ad, 0x00a8, 0x00b4, 0x00d6, 0x010a,
+ 0x0128, 0x0126, 0x010c, 0x00f3, 0x010d, 0x0157,
+ 0x01be, 0x0242, 0x02c8, 0x033d, 0x03ae, 0x0403,
+ 0x043e, 0x047f, 0x04da, 0x0551, 0x05c3, 0x061d,
+ 0x0675, 0x06cc, 0x0731, 0x07bf, 0x085c, 0x08e0,
+ 0x0936, 0x0946, 0x0928, 0x08f8, 0x08b9, 0x0885,
+ 0x086b, 0x0867, 0x0869, 0x083e, 0x07d0, 0x0737,
+ 0x068d, 0x0606, 0x05ac, 0x0564, 0x0536, 0x0502,
+ 0x0495, 0x040e, 0x0383, 0x02ff, 0x02a6, 0x0269,
+ 0x0242, 0x0247, 0x0255, 0x025e, 0x026d, 0x0256,
+ 0x020c, 0x01b0, 0x014a, 0x00e9, 0x008c, 0x001d,
+ 0xffa1, 0xff0d, 0xfe4d, 0xfd7a, 0xfcaa, 0xfbdd,
+ 0xfb14, 0xfa4e, 0xf996, 0xf905, 0xf8a8, 0xf876,
+ 0xf855, 0xf828, 0xf7d3, 0xf758, 0xf6d1, 0xf64e,
+ 0xf5e7, 0xf5ba, 0xf5a4, 0xf56d, 0xf512, 0xf49a,
+ 0xf410, 0xf39e, 0xf372, 0xf39b, 0xf3fa, 0xf471,
+ 0xf4fd, 0xf588, 0xf610, 0xf6a2, 0xf70a, 0xf731,
+ 0xf73d, 0xf73c, 0xf74a, 0xf785, 0xf7b3, 0xf7a9,
+ 0xf77a, 0xf73f, 0xf719, 0xf712, 0xf727, 0xf764,
+ 0xf7b3, 0xf7ff, 0xf83a, 0xf840, 0xf820, 0xf7fa,
+ 0xf7bf, 0xf784, 0xf76a, 0xf775, 0xf7bf, 0xf838,
+ 0xf8bd, 0xf950, 0xf9c2, 0xf9f1, 0xfa02, 0xfa01,
+ 0xfa09, 0xfa50, 0xfab1, 0xfb08, 0xfb60, 0xfb97,
+ 0xfb9d, 0xfb99, 0xfb7b, 0xfb2a, 0xfaba, 0xfa38,
+ 0xf9b5, 0xf95e, 0xf948, 0xf961, 0xf9a2, 0xfa03,
+ 0xfa64, 0xfabd, 0xfb1d, 0xfb79, 0xfbce, 0xfc19,
+ 0xfc4d, 0xfc80, 0xfcbb, 0xfce7, 0xfd0c, 0xfd3e,
+ 0xfd92, 0xfe15, 0xfeb0, 0xff4f, 0xffe7, 0x0065,
+ 0x00de, 0x0152, 0x01a0, 0x01e2, 0x0228, 0x0255,
+ 0x0280, 0x02b4, 0x02c8, 0x02b5, 0x027b, 0x021a,
+ 0x01ae, 0x0148, 0x00fb, 0x00d6, 0x00c1, 0x0097,
+ 0x0042, 0xffd2, 0xff61, 0xfed5, 0xfe32, 0xfdb7,
+ 0xfd6c, 0xfd4e, 0xfd4c, 0xfd25, 0xfce4, 0xfcb4,
+ 0xfc81, 0xfc49, 0xfc08, 0xfba6, 0xfb51, 0xfb2a,
+ 0xfb13, 0xfafd, 0xfad9, 0xfaab, 0xfa9d, 0xfabc,
+ 0xfb09, 0xfb82, 0xfc08, 0xfc97, 0xfd26, 0xfda0,
+ 0xfe1f, 0xfea1, 0xff10, 0xff7d, 0xffd1, 0xffe7,
+ 0xffe0, 0xffd0, 0xffba, 0xffbb, 0xffcc, 0xffdc,
+ 0x0000, 0x002d, 0x003c, 0x002e, 0x0028, 0x0048,
+ 0x0073, 0x0080, 0x0078, 0x0072, 0x0060, 0x0034,
+ 0x0006, 0xffed, 0xffe3, 0xffff, 0x004d, 0x00b1,
+ 0x010e, 0x014d, 0x0156, 0x013b, 0x011c, 0x0109,
+ 0x0112, 0x0132, 0x0154, 0x0164, 0x0155, 0x0147,
+ 0x015d, 0x0185, 0x01b8, 0x020b, 0x0271, 0x02d5,
+ 0x0322, 0x0341, 0x0335, 0x0306, 0x02c3, 0x0285,
+ 0x023d, 0x01e1, 0x0198, 0x0168, 0x0145, 0x0138,
+ 0x0132, 0x0135, 0x015b, 0x0192, 0x01c8, 0x0210,
+ 0x026d, 0x02cd, 0x031f, 0x0358, 0x0388, 0x03b8,
+ 0x03ca, 0x03b5, 0x0387, 0x0349, 0x031e, 0x0319,
+ 0x0317, 0x02f7, 0x02ae, 0x0243, 0x01e9, 0x01c1,
+ 0x01b7, 0x01c0, 0x01e4, 0x0210, 0x0226, 0x0216,
+ 0x01dd, 0x018e, 0x0135, 0x00da, 0x008c, 0x0047,
+ 0xfffe, 0xffa1, 0xff33, 0xfec0, 0xfe55, 0xfdee,
+ 0xfd8b, 0xfd2c, 0xfce9, 0xfccf, 0xfccd, 0xfcc9,
+ 0xfcb6, 0xfc97, 0xfc88, 0xfc9c, 0xfcd4, 0xfd2e,
+ 0xfd93, 0xfdf0, 0xfe41, 0xfe71, 0xfe8b, 0xfea8,
+ 0xfeae, 0xfe8b, 0xfe4b, 0xfdf4, 0xfda8, 0xfd85,
+ 0xfd5a, 0xfd11, 0xfcd2, 0xfca6, 0xfc81, 0xfc73,
+ 0xfc87, 0xfcbf, 0xfd15, 0xfd71, 0xfdc2, 0xfdf9,
+ 0xfe09, 0xfdf8, 0xfddb, 0xfdac, 0xfd76, 0xfd5b,
+ 0xfd45, 0xfd0c, 0xfcc2, 0xfc6e, 0xfbff, 0xfb7f,
+ 0xfaeb, 0xfa45, 0xf9b5, 0xf92b, 0xf888, 0xf7dc,
+ 0xf72e, 0xf66f, 0xf5a6, 0xf4ed, 0xf456, 0xf3cf,
+ 0xf33d, 0xf2a7, 0xf217, 0xf1a4, 0xf152, 0xf0fe,
+ 0xf0b1, 0xf08f, 0xf08b, 0xf0b7, 0xf120, 0xf199,
+ 0xf22b, 0xf2e0, 0xf386, 0xf442, 0xf530, 0xf611,
+ 0xf6ea, 0xf7dc, 0xf8c8, 0xf9b9, 0xfac8, 0xfbe5,
+ 0xfd0b, 0xfe2e, 0xff40, 0x0059, 0x018b, 0x02ba,
+ 0x03db, 0x050b, 0x063c, 0x071f, 0x07af, 0x0831,
+ 0x08c1, 0x0961, 0x0a05, 0x0a8e, 0x0af9, 0x0b38,
+ 0x0b35, 0x0b0c, 0x0ad3, 0x0a7e, 0x0a24, 0x09d9,
+ 0x0996, 0x0946, 0x08e9, 0x0895, 0x084a, 0x07f8,
+ 0x07b8, 0x0797, 0x0795, 0x07b9, 0x07db, 0x07d8,
+ 0x07bb, 0x0772, 0x070a, 0x06b8, 0x0689, 0x068a,
+ 0x06c4, 0x0701, 0x071f, 0x0720, 0x0704, 0x06d6,
+ 0x069e, 0x0674, 0x066d, 0x0672, 0x0689, 0x06cb,
+ 0x0717, 0x0769, 0x07cb, 0x081e, 0x087a, 0x08f5,
+ 0x0968, 0x09d1, 0x0a4c, 0x0ad0, 0x0b4d, 0x0bb1,
+ 0x0c07, 0x0c64, 0x0ca5, 0x0cb1, 0x0caf, 0x0cb1,
+ 0x0cbd, 0x0cda, 0x0cdc, 0x0cb2, 0x0c95, 0x0c92,
+ 0x0c88, 0x0c77, 0x0c63, 0x0c44, 0x0c1b, 0x0be1,
+ 0x0b91, 0x0b3d, 0x0ae2, 0x0a79, 0x0a0c, 0x098e,
+ 0x08f4, 0x0858, 0x07ca, 0x0747, 0x06d7, 0x0670,
+ 0x060e, 0x05c0, 0x058e, 0x0579, 0x0572, 0x0552,
+ 0x0509, 0x04a5, 0x0433, 0x03b9, 0x0339, 0x02cd,
+ 0x0296, 0x0287, 0x0289, 0x0286, 0x0279, 0x027a,
+ 0x027d, 0x0274, 0x0277, 0x0269, 0x0241, 0x0243,
+ 0x0267, 0x0270, 0x0266, 0x024f, 0x0224, 0x0202,
+ 0x01eb, 0x01e2, 0x01d7, 0x01ab, 0x0174, 0x014f,
+ 0x0128, 0x0106, 0x00f6, 0x00e0, 0x00b5, 0x006b,
+ 0xfffc, 0xff7d, 0xff00, 0xfe88, 0xfe1f, 0xfdd1,
+ 0xfda9, 0xfd8c, 0xfd56, 0xfd0e, 0xfccf, 0xfca0,
+ 0xfc6c, 0xfc23, 0xfbd5, 0xfb86, 0xfb2a, 0xfadf,
+ 0xfaaa, 0xfa78, 0xfa56, 0xfa46, 0xfa2f, 0xfa12,
+ 0xf9f6, 0xf9e7, 0xf9fe, 0xfa23, 0xfa35, 0xfa36,
+ 0xfa20, 0xf9e0, 0xf988, 0xf946, 0xf938, 0xf95c,
+ 0xf99f, 0xf9e6, 0xfa29, 0xfa67, 0xfa93, 0xfad0,
+ 0xfb3e, 0xfbb6, 0xfc29, 0xfca6, 0xfd07, 0xfd3b,
+ 0xfd5b, 0xfd6a, 0xfd8b, 0xfdca, 0xfdf5, 0xfe0c,
+ 0xfe1b, 0xfe10, 0xfdff, 0xfded, 0xfde9, 0xfe2a,
+ 0xfe93, 0xfef6, 0xff67, 0xffca, 0x0008, 0x002c,
+ 0x0022, 0x0016, 0x0041, 0x007a, 0x00ad, 0x00ed,
+ 0x011f, 0x0149, 0x0183, 0x01c1, 0x01fb, 0x0232,
+ 0x0273, 0x02c4, 0x02f6, 0x030f, 0x033b, 0x035c,
+ 0x0379, 0x03d0, 0x043f, 0x049d, 0x04fa, 0x0536,
+ 0x0549, 0x0564, 0x057b, 0x056b, 0x053a, 0x04e7,
+ 0x0476, 0x040a, 0x03b2, 0x0362, 0x0304, 0x0291,
+ 0x0218, 0x0196, 0x0105, 0x0080, 0x0019, 0xffcf,
+ 0xff91, 0xff4c, 0xff07, 0xfeb9, 0xfe36, 0xfd8b,
+ 0xfce5, 0xfc3f, 0xfba4, 0xfb25, 0xfabc, 0xfa86,
+ 0xfa88, 0xfa96, 0xfaa2, 0xfa9d, 0xfa78, 0xfa5c,
+ 0xfa69, 0xfa92, 0xfabe, 0xfabd, 0xfa86, 0xfa26,
+ 0xf99c, 0xf907, 0xf89a, 0xf85f, 0xf841, 0xf819,
+ 0xf7d9, 0xf79c, 0xf763, 0xf73b, 0xf736, 0xf73c,
+ 0xf755, 0xf79b, 0xf7ea, 0xf832, 0xf879, 0xf8a1,
+ 0xf8af, 0xf8b7, 0xf8cd, 0xf907, 0xf944, 0xf973,
+ 0xf9c0, 0xfa1a, 0xfa61, 0xfa94, 0xfa80, 0xfa2b,
+ 0xf9d7, 0xf98e, 0xf95e, 0xf958, 0xf960, 0xf98a,
+ 0xf9e3, 0xfa41, 0xfaa0, 0xfb17, 0xfb90, 0xfc01,
+ 0xfc77, 0xfcf9, 0xfd75, 0xfdca, 0xfdf3, 0xfdf9,
+ 0xfdf6, 0xfe10, 0xfe2b, 0xfe22, 0xfe03, 0xfde5,
+ 0xfdd8, 0xfded, 0xfe11, 0xfe30, 0xfe4e, 0xfe60,
+ 0xfe53, 0xfe1c, 0xfdca, 0xfd77, 0xfd27, 0xfcec,
+ 0xfce5, 0xfd0e, 0xfd44, 0xfd60, 0xfd59, 0xfd5a,
+ 0xfd62, 0xfd61, 0xfd81, 0xfdbb, 0xfddd, 0xfded,
+ 0xfde7, 0xfdc3, 0xfda5, 0xfd7a, 0xfd21, 0xfccb,
+ 0xfc94, 0xfc5b, 0xfc23, 0xfbeb, 0xfba0, 0xfb61,
+ 0xfb40, 0xfb23, 0xfb15, 0xfb2b, 0xfb43, 0xfb58,
+ 0xfb94, 0xfbdf, 0xfc08, 0xfc19, 0xfc17, 0xfc06,
+ 0xfc1b, 0xfc77, 0xfcff, 0xfda9, 0xfe6d, 0xff17,
+ 0xff87, 0xffdc, 0x0024, 0x0063, 0x00bf, 0x014b,
+ 0x01d0, 0x022a, 0x0266, 0x0279, 0x025c, 0x0236,
+ 0x0227, 0x0234, 0x0257, 0x027c, 0x0291, 0x029b,
+ 0x029f, 0x029a, 0x0272, 0x0212, 0x0194, 0x0125,
+ 0x00d6, 0x00b8, 0x00da, 0x011e, 0x0156, 0x016b,
+ 0x0156, 0x0129, 0x0102, 0x00e9, 0x00e5, 0x0103,
+ 0x0139, 0x016d, 0x018e, 0x01a1, 0x01b3, 0x01b8,
+ 0x0199, 0x015e, 0x0126, 0x00fb, 0x00c1, 0x0057,
+ 0xffcf, 0xff47, 0xfeda, 0xfea0, 0xfe99, 0xfec1,
+ 0xff15, 0xff62, 0xff7c, 0xff65, 0xff29, 0xfee4,
+ 0xfeb3, 0xfe8b, 0xfe78, 0xfe8a, 0xfea4, 0xfec0,
+ 0xfee7, 0xff04, 0xff1a, 0xff22, 0xff12, 0xff11,
+ 0xff18, 0xfefc, 0xfed2, 0xfe9b, 0xfe4b, 0xfe12,
+ 0xfdf7, 0xfde4, 0xfdeb, 0xfe02, 0xfe1d, 0xfe4b,
+ 0xfe72, 0xfe7e, 0xfe84, 0xfe7f, 0xfe7f, 0xfe9a,
+ 0xfead, 0xfea2, 0xfe82, 0xfe50, 0xfe1f, 0xfded,
+ 0xfdb0, 0xfd7e, 0xfd61, 0xfd4a, 0xfd3f, 0xfd44,
+ 0xfd51, 0xfd5d, 0xfd64, 0xfd78, 0xfda3, 0xfdd3,
+ 0xfe0b, 0xfe46, 0xfe79, 0xfec9, 0xff42, 0xffc2,
+ 0x003d, 0x00a3, 0x00df, 0x0118, 0x0164, 0x01b4,
+ 0x0204, 0x023d, 0x0255, 0x025d, 0x024c, 0x021a,
+ 0x01e7, 0x01aa, 0x014b, 0x00cb, 0x002b, 0xff82,
+ 0xfef1, 0xfe85, 0xfe3c, 0xfe1c, 0xfe1a, 0xfe2e,
+ 0xfe53, 0xfe6e, 0xfe78, 0xfe89, 0xfe97, 0xfe90,
+ 0xfe83, 0xfe6f, 0xfe41, 0xfe0a, 0xfde5, 0xfdd8,
+ 0xfde9, 0xfe08, 0xfe22, 0xfe3e, 0xfe5f, 0xfe78,
+ 0xfe8a, 0xfe95, 0xfea4, 0xfec4, 0xfee0, 0xfee1,
+ 0xfecd, 0xfeb6, 0xfec3, 0xff1a, 0xffaa, 0x0047,
+ 0x00cb, 0x0116, 0x0136, 0x0158, 0x0180, 0x0191,
+ 0x017e, 0x0146, 0x00ec, 0x0083, 0x0019, 0xffb1,
+ 0xff52, 0xfefd, 0xfeb9, 0xfe9a, 0xfe84, 0xfe52,
+ 0xfe0b, 0xfda1, 0xfd0a, 0xfc77, 0xfbeb, 0xfb46,
+ 0xfa95, 0xf9dd, 0xf913, 0xf83d, 0xf750, 0xf65e,
+ 0xf597, 0xf4fa, 0xf483, 0xf442, 0xf424, 0xf40f,
+ 0xf3f8, 0xf3ea, 0xf415, 0xf48f, 0xf52d, 0xf5bc,
+ 0xf623, 0xf674, 0xf6e7, 0xf792, 0xf852, 0xf900,
+ 0xf990, 0xfa0f, 0xfa86, 0xfb1f, 0xfc0c, 0xfd2d,
+ 0xfe4d, 0xff64, 0x0057, 0x0115, 0x01be, 0x0266,
+ 0x0305, 0x039d, 0x0435, 0x04c9, 0x0563, 0x0614,
+ 0x06e0, 0x07a7, 0x0854, 0x08e2, 0x0946, 0x097f,
+ 0x098b, 0x0968, 0x092a, 0x08e1, 0x0885, 0x081d,
+ 0x07a2, 0x0718, 0x06af, 0x0676, 0x0650, 0x0631,
+ 0x0606, 0x05bd, 0x055f, 0x04f8, 0x048d, 0x0415,
+ 0x038d, 0x0310, 0x02b4, 0x0281, 0x027f, 0x0296,
+ 0x02a2, 0x02a3, 0x02a4, 0x02ac, 0x02d0, 0x031a,
+ 0x0387, 0x041d, 0x04d3, 0x0580, 0x0601, 0x065a,
+ 0x06a3, 0x06ee, 0x074e, 0x07cc, 0x0854, 0x08d5,
+ 0x094e, 0x09b9, 0x0a10, 0x0a57, 0x0a86, 0x0aa5,
+ 0x0ad6, 0x0b17, 0x0b51, 0x0b78, 0x0b79, 0x0b56,
+ 0x0b35, 0x0b34, 0x0b54, 0x0b95, 0x0bd9, 0x0c00,
+ 0x0c0c, 0x0bf9, 0x0bc6, 0x0b77, 0x0b05, 0x0a86,
+ 0x0a11, 0x099c, 0x0930, 0x08cf, 0x0854, 0x07cc,
+ 0x0760, 0x070d, 0x06c6, 0x0675, 0x05f0, 0x0546,
+ 0x04b2, 0x043b, 0x03da, 0x039a, 0x0363, 0x0309,
+ 0x028e, 0x0202, 0x0164, 0x00d2, 0x0060, 0xfffc,
+ 0xffb1, 0xff96, 0xff94, 0xffa8, 0xffd5, 0x0013,
+ 0x006c, 0x00cf, 0x0122, 0x0176, 0x01c1, 0x01e7,
+ 0x01fd, 0x0213, 0x0224, 0x0235, 0x0233, 0x021f,
+ 0x0218, 0x021a, 0x0221, 0x023c, 0x0250, 0x0252,
+ 0x0251, 0x0238, 0x01f3, 0x018c, 0x011a, 0x00b8,
+ 0x0068, 0x0010, 0xffbb, 0xff7b, 0xff3a, 0xfedf,
+ 0xfe80, 0xfe45, 0xfe24, 0xfdfc, 0xfdcb, 0xfd87,
+ 0xfd16, 0xfc8c, 0xfc12, 0xfbaf, 0xfb5b, 0xfb08,
+ 0xfaa7, 0xfa28, 0xf996, 0xf915, 0xf8b9, 0xf873,
+ 0xf843, 0xf83c, 0xf84c, 0xf85d, 0xf884, 0xf8cf,
+ 0xf92d, 0xf98d, 0xf9f0, 0xfa5c, 0xfad1, 0xfb4d,
+ 0xfbd4, 0xfc63, 0xfcd8, 0xfd15, 0xfd2d, 0xfd49,
+ 0xfd77, 0xfda6, 0xfdc2, 0xfdd4, 0xfdf8, 0xfe3a,
+ 0xfe94, 0xfefa, 0xff5d, 0xffac, 0xffda, 0xffe3,
+ 0xffe0, 0xffed, 0x0004, 0x001e, 0x0046, 0x006c,
+ 0x008b, 0x00b3, 0x00c8, 0x00bf, 0x00b4, 0x00a4,
+ 0x00a0, 0x00c0, 0x00cf, 0x00a3, 0x006b, 0x005a,
+ 0x006f, 0x008c, 0x00a9, 0x00c8, 0x00c7, 0x00b7,
+ 0x00cd, 0x00cd, 0x0084, 0x0035, 0x0001, 0xffef,
+ 0x002e, 0x00af, 0x012f, 0x0195, 0x01eb, 0x0247,
+ 0x02b2, 0x0314, 0x036b, 0x03b7, 0x03db, 0x03d1,
+ 0x03b9, 0x03a1, 0x037c, 0x034d, 0x0323, 0x02f8,
+ 0x02d7, 0x02fb, 0x035c, 0x03b5, 0x03fd, 0x043c,
+ 0x0440, 0x03ea, 0x0367, 0x0304, 0x02b0, 0x0212,
+ 0x015b, 0x0107, 0x00f4, 0x00c3, 0x0074, 0x0025,
+ 0xffb9, 0xff21, 0xfed1, 0xff0f, 0xff42, 0xfefe,
+ 0xfe9c, 0xfe42, 0xfdb4, 0xfd07, 0xfcb0, 0xfcd2,
+ 0xfcf8, 0xfce1, 0xfcbb, 0xfc93, 0xfc95, 0xfcbb,
+ 0xfc74, 0xfbed, 0xfbe1, 0xfbfd, 0xfbca, 0xfbbd,
+ 0xfbe6, 0xfbb6, 0xfb4e, 0xfb3c, 0xfb7a, 0xfbd0,
+ 0xfc1c, 0xfbe5, 0xfb2a, 0xfa87, 0xf9e2, 0xf914,
+ 0xf89f, 0xf871, 0xf842, 0xf845, 0xf858, 0xf85e,
+ 0xf87a, 0xf88b, 0xf8c7, 0xf95b, 0xf9d0, 0xfa14,
+ 0xfa69, 0xfacf, 0xfb26, 0xfae2, 0xfa25, 0xfa1f,
+ 0xfa7d, 0xf9df, 0xf8e7, 0xf8d5, 0xf959, 0xf9c8,
+ 0xfa0e, 0xfa63, 0xfadf, 0xfb1a, 0xface, 0xfa46,
+ 0xf982, 0xf87c, 0xf7be, 0xf755, 0xf6c0, 0xf620,
+ 0xf5c0, 0xf564, 0xf50c, 0xf4f0, 0xf4d9, 0xf493,
+ 0xf469, 0xf467, 0xf444, 0xf46d, 0xf54e, 0xf645,
+ 0xf71a, 0xf849, 0xf964, 0xf9c5, 0xf9a9, 0xf973,
+ 0xf96b, 0xf95c, 0xf8c7, 0xf829, 0xf82e, 0xf87f,
+ 0xf8dc, 0xf987, 0xfa5a, 0xfad8, 0xfb3a, 0xfc20,
+ 0xfd0a, 0xfd3b, 0xfd49, 0xfd8e, 0xfdb5, 0xfded,
+ 0xfe43, 0xfeaa, 0xff2e, 0xff48, 0xff2d, 0xff6b,
+ 0xff4a, 0xfec8, 0xfee4, 0xff4f, 0xff5d, 0xff69,
+ 0xffea, 0x00a4, 0x0105, 0x016d, 0x0257, 0x02e0,
+ 0x02e4, 0x031f, 0x031c, 0x02d7, 0x0321, 0x0386,
+ 0x038d, 0x03c0, 0x0405, 0x03aa, 0x02f9, 0x02ba,
+ 0x0267, 0x016c, 0x0116, 0x01dc, 0x01fc, 0x00f4,
+ 0xffea, 0xff89, 0xffd8, 0x0053, 0x0083, 0x007d,
+ 0x0018, 0xff8c, 0xff8a, 0xffbf, 0xffd5, 0x0047,
+ 0x0080, 0xffd2, 0xff38, 0xfeed, 0xfe09, 0xfd19,
+ 0xfcb2, 0xfc2e, 0xfbd0, 0xfbdb, 0xfbb1, 0xfbb7,
+ 0xfc18, 0xfc10, 0xfbf0, 0xfc67, 0xfd96, 0xfead,
+ 0xfe42, 0xfd9d, 0xfe5d, 0xfe8b, 0xfdcd, 0xfe09,
+ 0xfe3d, 0xfd88, 0xfcc6, 0xfc23, 0xfc7f, 0xfde5,
+ 0xfe99, 0xfebe, 0xfefc, 0xfedc, 0xfeb5, 0xfeed,
+ 0xff79, 0xffc6, 0xfeba, 0xfd8e, 0xfe1d, 0xff2f,
+ 0xffcc, 0x0111, 0x02d0, 0x03ed, 0x04ee, 0x05b0,
+ 0x03d7, 0x001b, 0xfe0c, 0xfd06, 0xfbca, 0xfc5e,
+ 0xfd97, 0xfd61, 0xfd44, 0xfd5b, 0xfd63, 0xfe80,
+ 0xff97, 0x004c, 0x0193, 0x0227, 0x014a, 0xff4d,
+ 0xfd29, 0xfcea, 0xfd0c, 0xfbd0, 0xfc16, 0xfdb7,
+ 0xfd73, 0xfc51, 0xfc27, 0xfc85, 0xfd03, 0xfdc2,
+ 0xff51, 0x00d2, 0x00ba, 0x006a, 0x00bc, 0xff9b,
+ 0xfd63, 0xfcc8, 0xfd36, 0xfcbd, 0xfcad, 0xfdde,
+ 0xfe34, 0xfe1a, 0xff03, 0xff12, 0xfe9e, 0xffd3,
+ 0x0110, 0x01e2, 0x03ca, 0x04d0, 0x03eb, 0x03e9,
+ 0x0563, 0x05ec, 0x0585, 0x068d, 0x082b, 0x07f9,
+ 0x0761, 0x0723, 0x05a0, 0x0455, 0x042f, 0x034c,
+ 0x028d, 0x02c4, 0x01f6, 0x0088, 0x000a, 0xff1e,
+ 0xfd3a, 0xfd0c, 0xfef2, 0xfff4, 0x0058, 0x0205,
+ 0x030d, 0x023f, 0x0118, 0x0028, 0xff6d, 0xfea1,
+ 0xfea9, 0x00a8, 0x0138, 0xff1a, 0xfe8b, 0xfea4,
+ 0xfcc0, 0xfbd1, 0xfd24, 0xff71, 0x01b9, 0x0268,
+ 0x026e, 0x0262, 0x00ad, 0xfee2, 0xfdd6, 0xfca4,
+ 0xfcbc, 0xfc4c, 0xf923, 0xf677, 0xf486, 0xf1ec,
+ 0xf251, 0xf63a, 0xf968, 0xfb19, 0xfcb0, 0xfd42,
+ 0xfc46, 0xfb67, 0xfa71, 0xf7e8, 0xf60d, 0xf6b6,
+ 0xf7ac, 0xf7ad, 0xf731, 0xf6fd, 0xf7da, 0xf8a7,
+ 0xf948, 0xfa64, 0xf9d7, 0xf7ef, 0xf72c, 0xf748,
+ 0xf8bf, 0xfad8, 0xfb27, 0xfc43, 0xff14, 0xfff2,
+ 0x00a7, 0x03d7, 0x0678, 0x06ca, 0x05f8, 0x0566,
+ 0x058f, 0x0544, 0x04da, 0x052f, 0x04f9, 0x048a,
+ 0x04ad, 0x03fb, 0x033b, 0x03ed, 0x04a1, 0x0510,
+ 0x068d, 0x07f5, 0x07e8, 0x078c, 0x0742, 0x062b,
+ 0x056e, 0x0611, 0x06bf, 0x06c1, 0x0621, 0x046c,
+ 0x0221, 0x0067, 0x003a, 0x0101, 0x0027, 0xfe10,
+ 0xfddc, 0xfeca, 0xfec2, 0xff32, 0x00f0, 0x021e,
+ 0x026b, 0x0394, 0x0517, 0x0567, 0x05fe, 0x0787,
+ 0x082f, 0x08b2, 0x099f, 0x08ef, 0x0791, 0x0761,
+ 0x06fc, 0x05bc, 0x0509, 0x0593, 0x0636, 0x05d4,
+ 0x05d5, 0x06ae, 0x069b, 0x0692, 0x07df, 0x0904,
+ 0x09a1, 0x0a2a, 0x0a93, 0x0b3c, 0x0b9c, 0x0c2f,
+ 0x0e1f, 0x0f15, 0x0d9b, 0x0c30, 0x0bb9, 0x0b2b,
+ 0x0a8e, 0x0a0a, 0x08e8, 0x06a0, 0x04a6, 0x0457,
+ 0x042d, 0x0379, 0x03c3, 0x054e, 0x07aa, 0x09ce,
+ 0x0a33, 0x09d1, 0x0938, 0x06d9, 0x0412, 0x02df,
+ 0x01c2, 0x0087, 0x00d3, 0x01c2, 0x0228, 0x02a5,
+ 0x02a1, 0x014c, 0x003c, 0xffd8, 0xfe1d, 0xfc03,
+ 0xfc46, 0xfe22, 0x009b, 0x044e, 0x0761, 0x082f,
+ 0x081d, 0x0826, 0x0848, 0x0758, 0x040c, 0x021c,
+ 0x040f, 0x0472, 0x01a4, 0x013b, 0x03df, 0x0686,
+ 0x083c, 0x08b9, 0x0998, 0x0b2f, 0x0a49, 0x076d,
+ 0x053e, 0x031c, 0x0163, 0x00af, 0xffca, 0xfeef,
+ 0xfdd9, 0xfc3d, 0xfc73, 0xfe4e, 0xff8c, 0x0119,
+ 0x0330, 0x03b7, 0x02d1, 0x017f, 0xffc3, 0xffc1,
+ 0x026b, 0x02f3, 0x005a, 0x0078, 0x0133, 0xfd50,
+ 0xfb1d, 0xfe7a, 0x0130, 0x01dd, 0x025b, 0x0207,
+ 0x0201, 0x0123, 0xfd6d, 0xfa0e, 0xf92a, 0xfa04,
+ 0xfb1c, 0xf9f0, 0xf905, 0xfaf3, 0xfa19, 0xf62b,
+ 0xf711, 0xfb8f, 0xfd53, 0xfe34, 0x0021, 0xff07,
+ 0xfab6, 0xf8ac, 0xf9b0, 0xf8c5, 0xf50b, 0xf3e6,
+ 0xf7a6, 0xfbd4, 0xfe60, 0x0156, 0x01f9, 0xfdc0,
+ 0xf9f4, 0xf964, 0xf8be, 0xf7a7, 0xf76e, 0xf725,
+ 0xf69c, 0xf71c, 0xf924, 0xfb16, 0xfb74, 0xfb05,
+ 0xfb35, 0xfd80, 0x011a, 0x032a, 0x050b, 0x07a2,
+ 0x07a5, 0x0764, 0x099e, 0x0a41, 0x09a2, 0x09a8,
+ 0x0651, 0x0152, 0x0062, 0x00fe, 0xfff4, 0x0065,
+ 0x0272, 0x00f8, 0xfdb2, 0xffd1, 0x041b, 0x0294,
+ 0xfeae, 0xff4a, 0x026c, 0x0397, 0x0456, 0x05de,
+ 0x0239, 0xfb35, 0xfbd8, 0x0080, 0x01ab, 0x0623,
+ 0x0d91, 0x104d, 0x1006, 0x0d79, 0x0a0d, 0x0a6f,
+ 0x0a5e, 0x083c, 0x0848, 0x081b, 0x084f, 0x09c2,
+ 0x0667, 0x025a, 0x0508, 0x0996, 0x0ccf, 0x1084,
+ 0x12c3, 0x11e7, 0x0eb4, 0x0a40, 0x05c1, 0x0210,
+ 0xfeca, 0xfae7, 0xf8e4, 0xfa20, 0xf9e9, 0xf8e1,
+ 0xfb8a, 0xfec0, 0xffe1, 0x0003, 0xff20, 0xfefd,
+ 0xff35, 0xfe85, 0xffbd, 0x00a0, 0xfdb0, 0xfa7b,
+ 0xf9b0, 0xfc6e, 0x0078, 0xfeba, 0xfb4c, 0xfef0,
+ 0x0236, 0xfcbf, 0xf67a, 0xf7f5, 0xfbbb, 0xfa8f,
+ 0xf8e6, 0xfa09, 0xf8a0, 0xf584, 0xf4bb, 0xf3e5,
+ 0xf34c, 0xf514, 0xf71e, 0xf8bf, 0xfa60, 0xfabb,
+ 0xfabf, 0xfcaa, 0xfec2, 0xfd8b, 0xfb02, 0xf9e8,
+ 0xf795, 0xf4ba, 0xf475, 0xf51d, 0xf711, 0xfa79,
+ 0xfb23, 0xf87d, 0xf3f6, 0xefcb, 0xee70, 0xec3a,
+ 0xea22, 0xed1d, 0xef7e, 0xefdb, 0xf434, 0xf997,
+ 0xfe18, 0x0202, 0x00f6, 0xfd82, 0xfb15, 0xf7d0,
+ 0xf641, 0xf6c6, 0xf754, 0xf9c6, 0xfb38, 0xf94c,
+ 0xf861, 0xf88d, 0xf6a4, 0xf491, 0xf693, 0xf9f9,
+ 0xf87c, 0xf6a8, 0xf7f5, 0xf59f, 0xf3ec, 0xf841,
+ 0xfaa6, 0xfbfe, 0xffa0, 0xff0f, 0xfbce, 0xf97b,
+ 0xf719, 0xf6fb, 0xf65a, 0xf32b, 0xf19b, 0xef84,
+ 0xec7e, 0xecd8, 0xf02d, 0xf61e, 0xfac0, 0xfaec,
+ 0xfc23, 0xfba9, 0xf625, 0xf508, 0xf84b, 0xf8c4,
+ 0xf822, 0xf7c6, 0xf8b8, 0xfb6d, 0xfcd8, 0xfe62,
+ 0xff72, 0xfe24, 0xffe0, 0x0349, 0x038c, 0x042f,
+ 0x03c1, 0x006d, 0x012f, 0x06b8, 0x0bb6, 0x0e5a,
+ 0x0e72, 0x0e42, 0x0f1e, 0x0f7b, 0x1177, 0x1580,
+ 0x1582, 0x1149, 0x0fc3, 0x10b9, 0x11b0, 0x168d,
+ 0x1b48, 0x1a11, 0x1cbd, 0x24b9, 0x26d3, 0x281b,
+ 0x2b72, 0x258a, 0x1af5, 0x15c4, 0x1292, 0x1083,
+ 0x0f0d, 0x0989, 0x0368, 0x00d1, 0xff9f, 0x00c1,
+ 0x0519, 0x0503, 0xfb72, 0xf041, 0xe8b3, 0xdfe7,
+ 0xd50e, 0xc95f, 0xbcb4, 0xb3b1, 0xae3a, 0xa901,
+ 0xa656, 0xa6d4, 0xaf57, 0xc552, 0xe074, 0xfb9c,
+ 0x1362, 0x19fb, 0x1067, 0x03fa, 0xf840, 0xed73,
+ 0xe002, 0xcefa, 0xc1a8, 0xb6ae, 0xad49, 0xa8ee,
+ 0xa72c, 0xb1a1, 0xc953, 0xda19, 0xea61, 0x00c9,
+ 0x0175, 0xeb37, 0xd8d0, 0xce18, 0xc67b, 0xc615,
+ 0xd179, 0xdedd, 0xdc35, 0xd97b, 0xe9bd, 0xf1fc,
+ 0xe95f, 0xe844, 0xeaf3, 0xeb3c, 0xf17f, 0xf4cf,
+ 0xf0e5, 0xee8c, 0xf19d, 0xfc6b, 0x04b2, 0x0697,
+ 0x1586, 0x27da, 0x2743, 0x2818, 0x31df, 0x2e93,
+ 0x2677, 0x2482, 0x2012, 0x210e, 0x2882, 0x2aa2,
+ 0x2e77, 0x3020, 0x25f2, 0x2417, 0x2dcd, 0x2d6c,
+ 0x26c0, 0x23ec, 0x2365, 0x23ed, 0x1e83, 0x1ce7,
+ 0x2d1a, 0x336b, 0x24a6, 0x266d, 0x3664, 0x2f1e,
+ 0x2069, 0x2a27, 0x33d2, 0x26e0, 0x23ae, 0x31b8,
+ 0x2e3f, 0x289d, 0x39c4, 0x3f66, 0x331d, 0x3124,
+ 0x2d34, 0x2534, 0x281a, 0x21d9, 0x15d3, 0x1e2e,
+ 0x2966, 0x2aef, 0x2ce8, 0x2342, 0x122d, 0x0f49,
+ 0x0c50, 0x031c, 0x0c90, 0x1c6c, 0x1595, 0x0ac2,
+ 0x0d62, 0x0d50, 0x11ee, 0x28a8, 0x36db, 0x30bc,
+ 0x2c77, 0x2baa, 0x2635, 0x2288, 0x215f, 0x22d5,
+ 0x2966, 0x2c79, 0x295f, 0x26e4, 0x24f8, 0x231f,
+ 0x20f4, 0x1dfa, 0x2269, 0x29dd, 0x2267, 0x1480,
+ 0x12a0, 0x1530, 0x1702, 0x1db3, 0x2142, 0x20d4,
+ 0x21fe, 0x15c8, 0xfd12, 0xf202, 0xf465, 0xf8c7,
+ 0x0422, 0x103c, 0x1606, 0x1a6e, 0x1638, 0x0a0d,
+ 0x02a8, 0xf8c3, 0xef23, 0xf29f, 0xec66, 0xd974,
+ 0xdd38, 0xe557, 0xd33f, 0xcd4b, 0xdd26, 0xd702,
+ 0xcb5f, 0xda22, 0xe1a0, 0xd79a, 0xdc5b, 0xe431,
+ 0xde17, 0xe23b, 0xef90, 0xedf7, 0xe94b, 0xf009,
+ 0xf3c3, 0xefe4, 0xecdf, 0xe54a, 0xd781, 0xd235,
+ 0xd59e, 0xd2fa, 0xcfca, 0xd5f9, 0xd5ad, 0xca56,
+ 0xca18, 0xd360, 0xd2e6, 0xcf6c, 0xd17e, 0xcfcf,
+ 0xcbd5, 0xccfd, 0xcf8b, 0xd077, 0xcd54, 0xc724,
+ 0xcba8, 0xdae0, 0xe23c, 0xe274, 0xe54d, 0xe368,
+ 0xdd24, 0xdc06, 0xd9d1, 0xd407, 0xd422, 0xd70b,
+ 0xd804, 0xdbde, 0xdea9, 0xdd3b, 0xdf37, 0xe241,
+ 0xe0ab, 0xe1e3, 0xe7f8, 0xea8e, 0xe6f5, 0xe080,
+ 0xdcfc, 0xdb51, 0xd0f1, 0xc83b, 0xd781, 0xee26,
+ 0xf3bf, 0xf6fd, 0xfa14, 0xe97b, 0xd8d3, 0xdcdb,
+ 0xde82, 0xdb2d, 0xe516, 0xe872, 0xda47, 0xd5a9,
+ 0xdbe4, 0xdba9, 0xdd3a, 0xe52b, 0xe857, 0xe4ba,
+ 0xdfa9, 0xe27a, 0xecab, 0xead3, 0xe0b4, 0xe3ef,
+ 0xe786, 0xe224, 0xe767, 0xe9e9, 0xd785, 0xcfee,
+ 0xde10, 0xe56c, 0xe5fe, 0xe7fe, 0xe3dc, 0xe0ae,
+ 0xde9f, 0xd7a3, 0xdee0, 0xefb4, 0xee79, 0xeddc,
+ 0xfcaa, 0xfce8, 0xf379, 0xf923, 0xf8b4, 0xea8a,
+ 0xea45, 0xf26f, 0xed86, 0xe5b0, 0xe83e, 0xeab4,
+ 0xe17c, 0xdc97, 0xec74, 0xf4f8, 0xe55b, 0xe49d,
+ 0xf444, 0xebc2, 0xe1fc, 0xf12a, 0xf1cb, 0xe6a0,
+ 0xf6a6, 0x02a2, 0xf3a8, 0xf5c1, 0x0b61, 0x0cc0,
+ 0xffa8, 0xf89c, 0xf1d6, 0xeb6b, 0xf014, 0xfb0c,
+ 0xfc7e, 0xf891, 0x0022, 0x03fb, 0xf469, 0xf26a,
+ 0x0661, 0x08c1, 0x0434, 0x13d3, 0x14a3, 0x00bc,
+ 0x036e, 0x0e24, 0x0540, 0x060d, 0x1524, 0x1284,
+ 0x05d6, 0x0771, 0x1188, 0x12cb, 0x08c0, 0x03bc,
+ 0x08b7, 0x0859, 0x0902, 0x143e, 0x138b, 0x08ca,
+ 0x0f99, 0x1a63, 0x1870, 0x19ab, 0x1b64, 0x1521,
+ 0x1437, 0x16ed, 0x18c0, 0x22dd, 0x2802, 0x1e39,
+ 0x193c, 0x18e7, 0x1136, 0x10b3, 0x1a70, 0x1cf0,
+ 0x1ac7, 0x1c8f, 0x1a76, 0x1074, 0x08d6, 0x0e63,
+ 0x1a41, 0x1c7b, 0x19ed, 0x1c6d, 0x1a5d, 0x1789,
+ 0x2225, 0x2874, 0x1cc6, 0x146f, 0x15cc, 0x14ee,
+ 0x1732, 0x1edd, 0x2326, 0x23b9, 0x2019, 0x1ab0,
+ 0x1a22, 0x16d4, 0x12d5, 0x1dfe, 0x2977, 0x25a5,
+ 0x2663, 0x2df1, 0x2c1d, 0x2a52, 0x2d1e, 0x2ad5,
+ 0x299d, 0x2af5, 0x292d, 0x2a9b, 0x2db8, 0x2fe2,
+ 0x36c6, 0x35e0, 0x299f, 0x282d, 0x2c5b, 0x26d4,
+ 0x2773, 0x2e5d, 0x292e, 0x22d2, 0x272e, 0x2b7e,
+ 0x2bbe, 0x2ab5, 0x28fb, 0x2860, 0x25fd, 0x2346,
+ 0x2577, 0x256e, 0x22fa, 0x27e7, 0x2a80, 0x2473,
+ 0x2521, 0x2a15, 0x2798, 0x2866, 0x2d37, 0x2874,
+ 0x228a, 0x2391, 0x229b, 0x2222, 0x24b1, 0x23d5,
+ 0x2797, 0x2f35, 0x290c, 0x1ffd, 0x2519, 0x28cd,
+ 0x2498, 0x2425, 0x23ee, 0x220b, 0x22f0, 0x2132,
+ 0x1ee7, 0x2087, 0x219a, 0x27b4, 0x2ffc, 0x284f,
+ 0x1bcf, 0x1f98, 0x2750, 0x25cd, 0x22dc, 0x2510,
+ 0x296e, 0x277e, 0x232b, 0x2927, 0x2d50, 0x24bb,
+ 0x218d, 0x2393, 0x1d70, 0x1db1, 0x25e5, 0x220b,
+ 0x1ae1, 0x1dc6, 0x1e24, 0x1872, 0x1840, 0x1d39,
+ 0x1dd0, 0x1934, 0x1775, 0x18ae, 0x17dc, 0x1908,
+ 0x1a79, 0x1540, 0x10cb, 0x1015, 0x0db1, 0x10ff,
+ 0x180a, 0x1521, 0x0f4a, 0x0e08, 0x0a4e, 0x08d3,
+ 0x0eb8, 0x13dc, 0x151f, 0x11be, 0x0a72, 0x08f4,
+ 0x0d85, 0x0f86, 0x10fe, 0x11bb, 0x0b48, 0x0633,
+ 0x0bd1, 0x0f45, 0x0c6d, 0x14a7, 0x1bde, 0x09fe,
+ 0xfdc8, 0x0c3e, 0x0b65, 0xfc12, 0x079d, 0x1433,
+ 0x0a43, 0x0a06, 0x0bf6, 0xfe12, 0xfdfe, 0x079c,
+ 0x0053, 0xfa0c, 0xfc7f, 0xfb2f, 0xfe40, 0x0235,
+ 0xfe36, 0xff54, 0x0386, 0xfee7, 0xf8b4, 0xf59a,
+ 0xf63c, 0xfd6a, 0x019c, 0xfecd, 0xfeec, 0xff37,
+ 0xf624, 0xed68, 0xf31d, 0xfb0f, 0xf72a, 0xf8ba,
+ 0x0255, 0xfaf3, 0xefa7, 0xf59f, 0xf7c3, 0xf526,
+ 0xfaca, 0xf46d, 0xeabf, 0xf6dc, 0xfe50, 0xf61f,
+ 0xf74e, 0xf96c, 0xf203, 0xefac, 0xf33f, 0xf84d,
+ 0xfa01, 0xf2e3, 0xf19b, 0xf64f, 0xf114, 0xf0d0,
+ 0xf815, 0xf2b9, 0xf1c8, 0xfb28, 0xf3b4, 0xec9a,
+ 0xf7ec, 0xf57c, 0xe720, 0xea81, 0xee34, 0xe3aa,
+ 0xe17a, 0xe9de, 0xec4b, 0xec34, 0xeea7, 0xeaca,
+ 0xe3d3, 0xe658, 0xeb08, 0xea60, 0xeef2, 0xf31a,
+ 0xebfc, 0xe7e4, 0xe83e, 0xe255, 0xe2e9, 0xe965,
+ 0xe5e2, 0xe3a8, 0xea4a, 0xeef6, 0xf0dc, 0xee5d,
+ 0xea77, 0xee9f, 0xedf1, 0xe3e5, 0xe102, 0xddce,
+ 0xd3c3, 0xd4c0, 0xdf89, 0xe41e, 0xe0d1, 0xde5b,
+ 0xe385, 0xe482, 0xdb21, 0xda25, 0xdc43, 0xd226,
+ 0xcfa8, 0xd741, 0xd561, 0xd32b, 0xd426, 0xcf5a,
+ 0xce4b, 0xcdb7, 0xc705, 0xca1e, 0xd1d9, 0xccea,
+ 0xc76d, 0xcbd5, 0xcfcc, 0xccc4, 0xc9b1, 0xcd95,
+ 0xcd86, 0xc521, 0xc7d9, 0xd085, 0xca7f, 0xc56f,
+ 0xcc91, 0xd0fa, 0xd1e3, 0xce6b, 0xc5f7, 0xcaf9,
+ 0xd452, 0xcc1d, 0xc770, 0xcfeb, 0xcdd4, 0xc747,
+ 0xcbe3, 0xd185, 0xd43e, 0xd5cf, 0xd45d, 0xd5c5,
+ 0xd60f, 0xd02b, 0xd110, 0xd659, 0xd219, 0xccd8,
+ 0xcf37, 0xd61b, 0xdd32, 0xd914, 0xd0bb, 0xd99d,
+ 0xe441, 0xddc2, 0xdafd, 0xe3c4, 0xe5c7, 0xdf8c,
+ 0xdb8f, 0xde68, 0xe301, 0xe202, 0xe312, 0xe74b,
+ 0xe2cd, 0xe158, 0xe92e, 0xe34d, 0xd8a0, 0xe3f4,
+ 0xf150, 0xec49, 0xe756, 0xe880, 0xe571, 0xe56f,
+ 0xea0d, 0xe7bc, 0xe6c3, 0xec47, 0xe817, 0xe460,
+ 0xf08b, 0xf49f, 0xedf5, 0xf13f, 0xef15, 0xe5d8,
+ 0xe7f2, 0xe645, 0xe347, 0xeb6d, 0xe70c, 0xe20f,
+ 0xee5c, 0xe65a, 0xd3af, 0xdc14, 0xe51c, 0xe51c,
+ 0xe932, 0xe197, 0xde6c, 0xe9af, 0xe20d, 0xd819,
+ 0xe62b, 0xecd7, 0xe2ff, 0xe0bb, 0xe9a7, 0xf066,
+ 0xead3, 0xe808, 0xed00, 0xe1b4, 0xda5f, 0xeb1c,
+ 0xe99e, 0xdb8d, 0xe9a5, 0xf579, 0xeb1e, 0xe592,
+ 0xe3d6, 0xe1e2, 0xe4fb, 0xe352, 0xe1f9, 0xe6a4,
+ 0xe52c, 0xe2a6, 0xea13, 0xf087, 0xea81, 0xe65e,
+ 0xf278, 0xf591, 0xe7aa, 0xee40, 0xfbf3, 0xef31,
+ 0xe8a0, 0xf0a8, 0xead5, 0xe802, 0xec1f, 0xe680,
+ 0xe700, 0xea9e, 0xe653, 0xe6d8, 0xe566, 0xe59b,
+ 0xf26c, 0xf32f, 0xefc5, 0xfb9d, 0xf7d6, 0xed47,
+ 0xf8dc, 0xfb6f, 0xf391, 0xfc47, 0xfe29, 0xf410,
+ 0xf602, 0xf7a7, 0xefc2, 0xeed9, 0xf7f9, 0xff2a,
+ 0xfce7, 0xf91a, 0xf8db, 0xf21d, 0xe9f9, 0xec3d,
+ 0xf2c1, 0xf979, 0xfd08, 0xfb2b, 0xfe10, 0xfd9b,
+ 0xf17d, 0xf20b, 0xfdd4, 0xfa0a, 0xf5eb, 0x026a,
+ 0x0661, 0xf8c0, 0xf2a1, 0xf912, 0xf9e9, 0xfa2a,
+ 0x0591, 0x0775, 0xf8df, 0xf4f9, 0xfba4, 0xfc01,
+ 0xfcd3, 0xfe97, 0xfd7a, 0x0106, 0x014d, 0xfb1d,
+ 0xfecb, 0x038d, 0xfa43, 0xf85d, 0x0829, 0x0b26,
+ 0xf990, 0xf5bc, 0x0428, 0x0522, 0xfcfd, 0x027b,
+ 0x0748, 0x002e, 0xfdd5, 0x0345, 0x04eb, 0x0047,
+ 0xfd36, 0x0315, 0x0945, 0x05dd, 0x00c7, 0x0055,
+ 0x00fb, 0xfddf, 0xf7a8, 0xf9de, 0xff7d, 0xf936,
+ 0xf8ce, 0x03b3, 0xffd4, 0xfbb5, 0x07b8, 0x06a6,
+ 0xfdfc, 0x0612, 0x0936, 0x01c7, 0x022a, 0xffe6,
+ 0xfb02, 0x03a4, 0x0bdb, 0x0784, 0x04ad, 0x05fa,
+ 0x00c9, 0xfa8d, 0xff56, 0x07b7, 0x07e7, 0x0502,
+ 0x0143, 0xf9d8, 0xf8e6, 0x017d, 0x091a, 0x0c52,
+ 0x0872, 0xff90, 0xff8b, 0x04c4, 0x01de, 0x0122,
+ 0x0a3e, 0x0d0b, 0x056e, 0x034d, 0x05b2, 0xff42,
+ 0xfc8d, 0x0a6a, 0x0e42, 0xfd89, 0xfad6, 0x0822,
+ 0x06c3, 0x0176, 0x0948, 0x0b52, 0x06ba, 0x0ac7,
+ 0x0a79, 0x01ab, 0x0398, 0x0993, 0x0472, 0x0271,
+ 0x0b1f, 0x0e8a, 0x0924, 0x05ca, 0x0704, 0x0799,
+ 0x058d, 0x0677, 0x0bf9, 0x0ae1, 0x0188, 0x022a,
+ 0x10d2, 0x1693, 0x0a50, 0x02f1, 0x0b43, 0x0ef7,
+ 0x099c, 0x0c01, 0x0f8d, 0x0a87, 0x0ac6, 0x0c61,
+ 0x0374, 0x053d, 0x15da, 0x15b4, 0x097c, 0x0d0e,
+ 0x12b8, 0x0a2f, 0x093b, 0x1726, 0x18d5, 0x0973,
+ 0x0530, 0x119f, 0x16e0, 0x10e8, 0x10dc, 0x17b4,
+ 0x177f, 0x0cc9, 0x06d1, 0x1107, 0x1aae, 0x16a8,
+ 0x158f, 0x194a, 0x1361, 0x0fec, 0x1630, 0x170c,
+ 0x168b, 0x1a1e, 0x170d, 0x13de, 0x16fd, 0x178d,
+ 0x199e, 0x1d34, 0x192e, 0x17ae, 0x1bd8, 0x1a27,
+ 0x1816, 0x1902, 0x17b5, 0x19e7, 0x1ced, 0x1d69,
+ 0x2317, 0x219d, 0x14a8, 0x16e5, 0x216b, 0x1910,
+ 0x11ab, 0x1eb5, 0x28b7, 0x21b7, 0x195a, 0x1b89,
+ 0x2041, 0x1d78, 0x1cda, 0x2488, 0x22bd, 0x1589,
+ 0x14d3, 0x2156, 0x221a, 0x15e8, 0x167b, 0x240e,
+ 0x2458, 0x1d3c, 0x233e, 0x25c1, 0x1c32, 0x1b9e,
+ 0x20e9, 0x1f2b, 0x1b9b, 0x16cf, 0x16f5, 0x1f9d,
+ 0x1d35, 0x14ca, 0x19d7, 0x1cb9, 0x1b40, 0x23e4,
+ 0x2506, 0x1e3e, 0x21e7, 0x1e41, 0x1355, 0x1991,
+ 0x1d9b, 0x1288, 0x12fa, 0x1d84, 0x1e9a, 0x18f0,
+ 0x140e, 0x16f2, 0x1e33, 0x1b35, 0x169f, 0x1bd3,
+ 0x1c08, 0x1455, 0x123e, 0x14ab, 0x14fc, 0x13b5,
+ 0x1602, 0x1bb2, 0x18ec, 0x0f53, 0x0dfd, 0x124d,
+ 0x1653, 0x1a44, 0x15e4, 0x0ed1, 0x1236, 0x1572,
+ 0x1108, 0x0d2b, 0x0c1a, 0x0efc, 0x11b8, 0x0f6a,
+ 0x11a7, 0x13fb, 0x0da8, 0x1008, 0x1726, 0x0ec7,
+ 0x07e2, 0x0aee, 0x097d, 0x0ced, 0x14b5, 0x1132,
+ 0x0d33, 0x0bd8, 0x0654, 0x08c6, 0x0c4b, 0x06f9,
+ 0x0a64, 0x0d4e, 0x01d6, 0x0479, 0x13aa, 0x0fa1,
+ 0x0809, 0x0f73, 0x121e, 0x0af5, 0x05d1, 0x040e,
+ 0x054a, 0x0714, 0x0914, 0x0fa8, 0x11cd, 0x09b2,
+ 0x0748, 0x0ed0, 0x0eb6, 0x0520, 0x0365, 0x0846,
+ 0x0441, 0x0117, 0x092a, 0x0a40, 0x071f, 0x0f69,
+ 0x0e9f, 0x035a, 0x06d5, 0x0b09, 0x0698, 0x08fb,
+ 0x0749, 0x0392, 0x0cf7, 0x0f61, 0x0bcb, 0x12fd,
+ 0x1059, 0x09c6, 0x147f, 0x13c6, 0x03b8, 0x05ad,
+ 0x0e8e, 0x0cc9, 0x0c27, 0x0972, 0x0270, 0x0648,
+ 0x0df1, 0x0aef, 0x0a24, 0x1153, 0x0fb0, 0x08f3,
+ 0x0bf3, 0x0e37, 0x0a2b, 0x0b38, 0x0ecc, 0x1197,
+ 0x13ff, 0x0d61, 0x099a, 0x1575, 0x178d, 0x0ba7,
+ 0x0f8d, 0x1834, 0x0df7, 0x057f, 0x0aae, 0x0be0,
+ 0x0a06, 0x0dcd, 0x1098, 0x127d, 0x152d, 0x1102,
+ 0x0afe, 0x0b86, 0x0be2, 0x0c58, 0x1164, 0x1175,
+ 0x0cce, 0x0d77, 0x0c85, 0x07c4, 0x09b5, 0x0a33,
+ 0x02aa, 0x03df, 0x0d9c, 0x0e2a, 0x086c, 0x0455,
+ 0x018f, 0x04fd, 0x09ee, 0x07d2, 0x07e0, 0x0b1d,
+ 0x080c, 0x066b, 0x087f, 0x04d6, 0x0452, 0x0b8c,
+ 0x0988, 0xff3a, 0xff2d, 0x050f, 0x01ec, 0xfda8,
+ 0x0168, 0x02a0, 0x0066, 0x00d9, 0xfa49, 0xf401,
+ 0xfdfb, 0x0304, 0xfa5f, 0xfc9b, 0x0085, 0xf761,
+ 0xf686, 0xfdfe, 0xfefc, 0x0172, 0x027e, 0xff6f,
+ 0x044b, 0x0539, 0xfc3c, 0xfd38, 0x0224, 0xfe1e,
+ 0xfb0e, 0xf842, 0xf418, 0xf6c1, 0xfa4f, 0xfa33,
+ 0xfa61, 0xfafc, 0xfd7d, 0xfcb1, 0xf8d0, 0xfcb9,
+ 0xfc2f, 0xf24d, 0xf5b9, 0xff4e, 0xfd6a, 0xf915,
+ 0xf5d7, 0xf65b, 0xf826, 0xef62, 0xf152, 0x01f2,
+ 0xfd77, 0xf372, 0xfa0b, 0xf5e5, 0xef71, 0xf973,
+ 0xfbfe, 0xf937, 0xfe7e, 0xfa55, 0xeecb, 0xee67,
+ 0xf4ff, 0xf64b, 0xf35a, 0xf518, 0xf737, 0xf4ed,
+ 0xf6c1, 0xf639, 0xefd5, 0xf183, 0xf306, 0xf06a,
+ 0xf5bb, 0xf5c5, 0xf13c, 0xf72c, 0xf6b4, 0xf0bb,
+ 0xf16b, 0xe8e7, 0xe4bd, 0xf237, 0xf31f, 0xedfd,
+ 0xf66d, 0xf3b4, 0xe82d, 0xe8f3, 0xe905, 0xe7e7,
+ 0xeccb, 0xeb69, 0xeab8, 0xf10a, 0xef3f, 0xece7,
+ 0xf13e, 0xeb3e, 0xe39e, 0xea21, 0xedb4, 0xe6f4,
+ 0xe1af, 0xe22b, 0xe913, 0xeace, 0xe0f0, 0xdf18,
+ 0xe389, 0xdf34, 0xdf3d, 0xe080, 0xd8e0, 0xdce5,
+ 0xe421, 0xdaf4, 0xdc1e, 0xea26, 0xe890, 0xe1bf,
+ 0xe0bf, 0xdd07, 0xddeb, 0xdff7, 0xda32, 0xdd23,
+ 0xe6bb, 0xe1cb, 0xd962, 0xd945, 0xd61a, 0xd623,
+ 0xdde4, 0xdb8f, 0xd6d9, 0xde01, 0xde9a, 0xd7ee,
+ 0xdbdd, 0xe064, 0xddbe, 0xdb91, 0xd7e3, 0xd31b,
+ 0xd240, 0xd8bb, 0xe3ee, 0xe44e, 0xde21, 0xdfe1,
+ 0xdb1f, 0xd2b8, 0xd882, 0xdc34, 0xdafa, 0xde4e,
+ 0xd8b5, 0xd5c6, 0xdd5a, 0xd812, 0xd537, 0xdfbf,
+ 0xda06, 0xd261, 0xdee7, 0xe439, 0xdc96, 0xda86,
+ 0xdb8c, 0xdbe6, 0xdc0c, 0xdc34, 0xdfdb, 0xe1e2,
+ 0xdf52, 0xdef4, 0xdea2, 0xd94c, 0xd6af, 0xdc3c,
+ 0xdf32, 0xda83, 0xd95b, 0xdc1f, 0xdc98, 0xdf48,
+ 0xe03e, 0xdd48, 0xe070, 0xe2fa, 0xe014, 0xe16d,
+ 0xdee2, 0xd8a2, 0xde2a, 0xe29d, 0xdee4, 0xe3f0,
+ 0xe7d4, 0xdea8, 0xdbc7, 0xe232, 0xe088, 0xdb8d,
+ 0xde50, 0xdf4c, 0xdb57, 0xdfdc, 0xe72d, 0xe1b5,
+ 0xdaeb, 0xdf3b, 0xe454, 0xe486, 0xe44c, 0xe4a4,
+ 0xe332, 0xde0a, 0xda4d, 0xda2d, 0xd846, 0xdc15,
+ 0xe6a0, 0xe3ca, 0xd9f1, 0xded8, 0xe4a5, 0xe06e,
+ 0xe14a, 0xe3fa, 0xe0cd, 0xe1db, 0xe240, 0xd9fa,
+ 0xd75d, 0xdc6f, 0xdba4, 0xdaa9, 0xe12c, 0xe391,
+ 0xddae, 0xdca6, 0xe39e, 0xe5b4, 0xe0f2, 0xe15d,
+ 0xe4c7, 0xe09e, 0xdcf8, 0xe2e5, 0xe648, 0xddda,
+ 0xd69b, 0xdbcb, 0xe0e2, 0xdb60, 0xd9c5, 0xe1c8,
+ 0xe38e, 0xe08f, 0xe406, 0xe449, 0xdd6a, 0xdd7d,
+ 0xe3b9, 0xe4c9, 0xe330, 0xe229, 0xde37, 0xdcd3,
+ 0xe28f, 0xe6ad, 0xe694, 0xe70a, 0xe416, 0xdf2c,
+ 0xe1f5, 0xe75e, 0xe699, 0xe608, 0xe8d8, 0xe70c,
+ 0xe257, 0xe37e, 0xe723, 0xe8dd, 0xeb70, 0xea4f,
+ 0xe629, 0xe8ee, 0xeb5b, 0xe888, 0xec1b, 0xee85,
+ 0xe66e, 0xe32d, 0xe876, 0xea9b, 0xe806, 0xe653,
+ 0xeab2, 0xeecb, 0xec17, 0xebf1, 0xee24, 0xee21,
+ 0xf156, 0xf0ae, 0xed87, 0xf16a, 0xefa7, 0xef94,
+ 0xfb01, 0xf4b5, 0xe690, 0xee47, 0xf129, 0xea09,
+ 0xeebf, 0xeeec, 0xebc2, 0xf15c, 0xed12, 0xe72c,
+ 0xedb7, 0xed4c, 0xe86b, 0xea92, 0xea5a, 0xebfc,
+ 0xf2e0, 0xf2ff, 0xee79, 0xee2d, 0xf0c0, 0xf0c0,
+ 0xee68, 0xf0a7, 0xf16a, 0xe9c7, 0xec29, 0xf9c2,
+ 0xf858, 0xefd2, 0xf350, 0xf0f0, 0xe68c, 0xebe9,
+ 0xf661, 0xf277, 0xec7e, 0xee54, 0xf395, 0xf59d,
+ 0xeedd, 0xebcb, 0xf359, 0xf48f, 0xf262, 0xf875,
+ 0xfa92, 0xf738, 0xf5f4, 0xf49b, 0xf742, 0xf8a6,
+ 0xf34f, 0xf5e5, 0xfbfd, 0xf939, 0xf74f, 0xf67f,
+ 0xf5aa, 0xf9a4, 0xf812, 0xf6f9, 0xff70, 0xfe80,
+ 0xf915, 0xfe90, 0xfce7, 0xf640, 0xfd35, 0x01e7,
+ 0xfbdb, 0xfa7d, 0xfae1, 0xf84a, 0xfd83, 0x02cb,
+ 0xfbaf, 0xf9dc, 0x0294, 0x011f, 0xfcd6, 0x0068,
+ 0xfeb5, 0x007d, 0x0923, 0x0478, 0xffa9, 0x04d6,
+ 0x00ee, 0xfe0e, 0x05ec, 0x088f, 0x073a, 0x03fd,
+ 0xfe21, 0x004e, 0x031b, 0x028c, 0x093b, 0x0bd5,
+ 0x06e0, 0x082c, 0x08be, 0x05ff, 0x0b8e, 0x11fd,
+ 0x0e89, 0x0a6b, 0x0e3d, 0x103b, 0x0bb6, 0x0bfa,
+ 0x0d39, 0x0982, 0x0d0e, 0x113d, 0x0c36, 0x0ba8,
+ 0x0cb2, 0x08dc, 0x0ba5, 0x10d8, 0x1245, 0x123f,
+ 0x0d15, 0x0c06, 0x11c7, 0x1174, 0x1202, 0x1449,
+ 0x0dc8, 0x0a90, 0x0d0a, 0x0b83, 0x0bbb, 0x0b3a,
+ 0x08d2, 0x0dbb, 0x0fd4, 0x0a16, 0x0ad7, 0x0f89,
+ 0x0e5c, 0x0d2d, 0x0f8b, 0x0ddf, 0x0868, 0x0832,
+ 0x0995, 0x07aa, 0x082b, 0x0832, 0x0a06, 0x1208,
+ 0x0e65, 0x0546, 0x0c54, 0x0e4d, 0x05ba, 0x0bbd,
+ 0x1399, 0x0fab, 0x0bfe, 0x0982, 0x0a3e, 0x0cc1,
+ 0x09f9, 0x0bcc, 0x10a5, 0x1013, 0x10fb, 0x0ee1,
+ 0x0bf2, 0x1090, 0x0c91, 0x0637, 0x0ec9, 0x107e,
+ 0x0961, 0x0e07, 0x1191, 0x0d42, 0x0ebb, 0x11bb,
+ 0x0e8a, 0x0b3e, 0x0e40, 0x1234, 0x10a3, 0x10d0,
+ 0x12c6, 0x0f35, 0x0d51, 0x0efc, 0x105e, 0x1369,
+ 0x11b9, 0x0f71, 0x12c9, 0x0d1d, 0x0795, 0x10de,
+ 0x11fc, 0x0aae, 0x0ed2, 0x1016, 0x0948, 0x0b3e,
+ 0x1177, 0x0fbb, 0x0b3d, 0x0efe, 0x13fa, 0x0ebc,
+ 0x0d3a, 0x13a7, 0x1232, 0x11c9, 0x1759, 0x13b6,
+ 0x0e38, 0x1032, 0x14de, 0x19bf, 0x159e, 0x0e81,
+ 0x128c, 0x12c0, 0x0e46, 0x148e, 0x167e, 0x10a8,
+ 0x1399, 0x170f, 0x14ce, 0x1477, 0x14d6, 0x179b,
+ 0x1c56, 0x19b3, 0x1300, 0x12b6, 0x155e, 0x12c9,
+ 0x11b5, 0x1822, 0x184d, 0x0f7c, 0x0cdb, 0x0ec4,
+ 0x0f18, 0x116c, 0x1354, 0x13ab, 0x120e, 0x0d8f,
+ 0x0d52, 0x0e22, 0x0bd6, 0x0f59, 0x10bd, 0x098d,
+ 0x0992, 0x0f19, 0x0dfc, 0x0ac3, 0x0bca, 0x0fdd,
+ 0x0d65, 0x0685, 0x0a85, 0x0e89, 0x0b16, 0x0f4d,
+ 0x0eff, 0x0738, 0x0dbf, 0x108f, 0x069b, 0x0ae1,
+ 0x12f3, 0x0e7e, 0x0baf, 0x0b73, 0x09d3, 0x0846,
+ 0x05d5, 0x08a9, 0x0bcc, 0x09d8, 0x0ba9, 0x0b00,
+ 0x071b, 0x09f7, 0x0859, 0x05fc, 0x0ec2, 0x109f,
+ 0x0b74, 0x0bda, 0x076b, 0x038b, 0x08fa, 0x0c41,
+ 0x0df1, 0x0de6, 0x0864, 0x08d8, 0x0b7f, 0x0743,
+ 0x07fd, 0x0e6c, 0x0e96, 0x0974, 0x0819, 0x0c20,
+ 0x0918, 0x007d, 0x04dc, 0x0d5a, 0x0d49, 0x1026,
+ 0x10a6, 0x0874, 0x06b6, 0x0a27, 0x0cd0, 0x102c,
+ 0x0b8f, 0x07b9, 0x0e44, 0x0c32, 0x070b, 0x0fc5,
+ 0x118f, 0x099a, 0x0d65, 0x11a5, 0x0c53, 0x0ada,
+ 0x0cf5, 0x0e6f, 0x10e6, 0x1034, 0x0ec1, 0x0ec5,
+ 0x0c8d, 0x0d9f, 0x10e0, 0x0f64, 0x1065, 0x1202,
+ 0x0dec, 0x0fc3, 0x147b, 0x118e, 0x12d0, 0x16d7,
+ 0x12aa, 0x1153, 0x145d, 0x1384, 0x1412, 0x132f,
+ 0x0d88, 0x0c2d, 0x0e44, 0x1038, 0x1288, 0x1242,
+ 0x1238, 0x111c, 0x0c30, 0x0c6b, 0x0d36, 0x08c3,
+ 0x0b6f, 0x0e8a, 0x0982, 0x0a3e, 0x0bde, 0x072f,
+ 0x07fa, 0x09be, 0x0964, 0x0d74, 0x0cc5, 0x09c7,
+ 0x0bab, 0x08bf, 0x0701, 0x0975, 0x0399, 0x00fb,
+ 0x06dd, 0x0732, 0x07d6, 0x08a9, 0x031f, 0x0406,
+ 0x0682, 0x018a, 0x0307, 0x05c5, 0x0083, 0x0136,
+ 0x0686, 0x04d9, 0xfef7, 0xfb3c, 0xfebc, 0x0342,
+ 0x0130, 0x0116, 0x01f0, 0xfe5a, 0xff8d, 0x02a0,
+ 0x029e, 0x0627, 0x064d, 0x01ab, 0x0342, 0x0704,
+ 0x08e3, 0x0793, 0x014c, 0x026d, 0x070d, 0x03e1,
+ 0x083e, 0x0db0, 0x04b2, 0x048a, 0x0bd6, 0x064a,
+ 0x066b, 0x0a2c, 0xffbf, 0xfe1f, 0x07be, 0x058e,
+ 0x01f2, 0x0469, 0x040d, 0x03e4, 0x0225, 0xff7c,
+ 0x031e, 0x04f6, 0x040d, 0x0700, 0x0566, 0x0162,
+ 0x02fe, 0x0197, 0xff00, 0x040e, 0x082b, 0x0557,
+ 0x017c, 0x01a8, 0x043a, 0x01de, 0xfe93, 0x023a,
+ 0x0226, 0xfc52, 0xfee5, 0x03a0, 0x00a4, 0xffc1,
+ 0x01fb, 0xfecf, 0xfa78, 0xfbb2, 0xff31, 0xfefe,
+ 0xfd4d, 0xff89, 0x01fa, 0x023e, 0x0462, 0x045e,
+ 0x0017, 0xfe34, 0xfcf8, 0xfabd, 0xfc62, 0xfd53,
+ 0xfa64, 0xf9ec, 0xfac7, 0xf9cf, 0xfa23, 0xfb52,
+ 0xfbca, 0xfbf6, 0xfb21, 0xfaf2, 0xfb72, 0xf9da,
+ 0xf89b, 0xfa65, 0xfd1b, 0xfdf6, 0xfb7c, 0xf9fd,
+ 0xfc78, 0xfbfa, 0xf9c1, 0xfd2d, 0xfec2, 0xfc44,
+ 0xfd5f, 0xfb84, 0xf7ea, 0xfd65, 0xfeb2, 0xf6cb,
+ 0xf77d, 0xfb2b, 0xf80a, 0xf7f8, 0xf7ed, 0xf5be,
+ 0xf9e8, 0xfa7c, 0xf4ad, 0xf6b4, 0xfaaa, 0xf841,
+ 0xf7f8, 0xfa61, 0xf947, 0xf5f1, 0xf686, 0xfb39,
+ 0xfc79, 0xfd61, 0x004a, 0xf9c4, 0xf408, 0xfbd0,
+ 0xfd53, 0xf8cd, 0xfed4, 0xffa0, 0xf8c8, 0xfb3c,
+ 0xfc8f, 0xf893, 0xf9e2, 0xf974, 0xf72d, 0xfa03,
+ 0xfb18, 0xfb23, 0xfd9c, 0xfd92, 0xfeae, 0x0172,
+ 0xff6c, 0xfdf8, 0xff98, 0xfe5a, 0xfe10, 0x0142,
+ 0x0086, 0xfbb1, 0xf92e, 0xf919, 0xfa35, 0xfd2c,
+ 0xfd98, 0xfa35, 0xfa1f, 0xfbdc, 0xf9a1, 0xf989,
+ 0xfce6, 0xfc7b, 0xfbe6, 0xfd39, 0xf9c0, 0xf5b3,
+ 0xf6ae, 0xf6ba, 0xf54c, 0xf6a1, 0xf7d0, 0xf85a,
+ 0xfa2d, 0xf8fa, 0xf4e8, 0xf436, 0xf527, 0xf471,
+ 0xf53f, 0xf636, 0xf472, 0xf3a8, 0xf368, 0xf108,
+ 0xf14a, 0xf46d, 0xf406, 0xf21f, 0xf43e, 0xf660,
+ 0xf2c8, 0xeee9, 0xf2b6, 0xf7ba, 0xf4a3, 0xf0ec,
+ 0xf3a1, 0xf3cb, 0xefd5, 0xf223, 0xf6ab, 0xf47c,
+ 0xf338, 0xf5d0, 0xf480, 0xf35c, 0xf4c5, 0xf22f,
+ 0xf13c, 0xf3ba, 0xf20c, 0xf27b, 0xf3b9, 0xec62,
+ 0xea1b, 0xefbb, 0xeda8, 0xecde, 0xf233, 0xef66,
+ 0xebc9, 0xef1f, 0xefa5, 0xedd9, 0xec11, 0xeacb,
+ 0xee63, 0xedcf, 0xe6ff, 0xe89f, 0xee05, 0xec34,
+ 0xeac7, 0xedec, 0xf055, 0xeed1, 0xeb97, 0xec56,
+ 0xee28, 0xecd6, 0xeda5, 0xeedf, 0xec75, 0xece1,
+ 0xf000, 0xef7e, 0xed89, 0xed99, 0xedfc, 0xedf5,
+ 0xf1fd, 0xf827, 0xf53c, 0xef40, 0xf330, 0xf65f,
+ 0xf467, 0xf846, 0xfa2d, 0xf4a0, 0xf306, 0xf3d9,
+ 0xf1df, 0xf0b6, 0xf06a, 0xf1d8, 0xf3fe, 0xf2bb,
+ 0xf253, 0xf47b, 0xf48d, 0xf30b, 0xf24c, 0xf47a,
+ 0xf6ef, 0xf51f, 0xf623, 0xf8dc, 0xf347, 0xf043,
+ 0xf4ee, 0xf4f1, 0xf49b, 0xf5cf, 0xf232, 0xf3dc,
+ 0xf815, 0xf503, 0xf67b, 0xf841, 0xf0d0, 0xf126,
+ 0xf67b, 0xf260, 0xf1e7, 0xf60f, 0xf394, 0xf277,
+ 0xf432, 0xf3ee, 0xf579, 0xf5b8, 0xf559, 0xf8a6,
+ 0xf839, 0xf649, 0xf8f3, 0xf8a3, 0xf78e, 0xfa99,
+ 0xfa93, 0xf9ac, 0xfa6c, 0xf75f, 0xf653, 0xfa2b,
+ 0xfb29, 0xf8e9, 0xf5fe, 0xf5b2, 0xf95c, 0xf913,
+ 0xf658, 0xf778, 0xf60d, 0xf479, 0xf822, 0xf7f3,
+ 0xf5ec, 0xf930, 0xfa98, 0xf964, 0xf9b9, 0xf980,
+ 0xf8f3, 0xf6fe, 0xf60d, 0xf9af, 0xf8e7, 0xf455,
+ 0xf4a1, 0xf32c, 0xf1bf, 0xf54e, 0xf334, 0xf13f,
+ 0xf5e4, 0xf328, 0xf079, 0xf746, 0xf7cc, 0xf52e,
+ 0xf7e8, 0xf45b, 0xef0a, 0xf075, 0xf086, 0xf00a,
+ 0xf0ac, 0xefa7, 0xf1d6, 0xf19d, 0xeb99, 0xee1c,
+ 0xf4fa, 0xf296, 0xf11f, 0xf536, 0xf449, 0xf13e,
+ 0xf20d, 0xf302, 0xf35f, 0xf33e, 0xf105, 0xf01c,
+ 0xf23e, 0xf44c, 0xf57a, 0xf591, 0xf449, 0xf41a,
+ 0xf53b, 0xf63c, 0xf7e0, 0xf8a1, 0xf774, 0xf7b6,
+ 0xf903, 0xf893, 0xf9a3, 0xfd65, 0xfd2f, 0xf859,
+ 0xf80b, 0xfc8f, 0xfd1d, 0xfb95, 0xfd17, 0xfd31,
+ 0xfb31, 0xfaec, 0xfb8b, 0xfc32, 0xfac2, 0xf7d4,
+ 0xf98a, 0xfbab, 0xf932, 0xf94c, 0xfb84, 0xfb8c,
+ 0xfc44, 0xfbd0, 0xfbba, 0xfe14, 0xfab8, 0xf72d,
+ 0xfba8, 0xfc3b, 0xf88f, 0xfaac, 0xfd65, 0xfe40,
+ 0xff00, 0xfde6, 0xfea4, 0xff3c, 0xfd09, 0xfeae,
+ 0x0032, 0xfd41, 0xfcf5, 0xfcfa, 0xfad1, 0xfbc3,
+ 0xfd03, 0xfd50, 0xfe88, 0xfcfd, 0xfb0b, 0xfb66,
+ 0xfaa1, 0xfac1, 0xfc51, 0xfc0e, 0xfb97, 0xfac7,
+ 0xf9ad, 0xfb36, 0xfb9b, 0xf8bf, 0xf872, 0xfa9b,
+ 0xfa05, 0xf8ca, 0xfb57, 0xfdbe, 0xfc22, 0xfc02,
+ 0xff11, 0xfed7, 0xfb9a, 0xfa83, 0xfb9b, 0xfc72,
+ 0xfb63, 0xf82f, 0xf3ca, 0xf0f6, 0xf2c6, 0xf52f,
+ 0xf3a6, 0xf349, 0xf683, 0xf854, 0xf772, 0xf680,
+ 0xf7c6, 0xf9b1, 0xf93f, 0xf8f7, 0xf967, 0xf842,
+ 0xf81d, 0xf87e, 0xf8d1, 0xfc08, 0xfcd7, 0xf9cd,
+ 0xf9e8, 0xfa07, 0xf78c, 0xf758, 0xf893, 0xf96e,
+ 0xf8b7, 0xf73f, 0xfa38, 0xfc53, 0xf9e8, 0xfb6a,
+ 0xfd3c, 0xfb34, 0xfc45, 0xfcce, 0xfbeb, 0xff32,
+ 0xff7a, 0xfc3c, 0xfbdb, 0xfa70, 0xf8c0, 0xf8ce,
+ 0xf86f, 0xfb09, 0xfd2c, 0xfb93, 0xfced, 0xfdab,
+ 0xfb52, 0xfdeb, 0x014c, 0xfed2, 0xfbc3, 0xfd15,
+ 0xffab, 0xfc3a, 0xf8df, 0xff01, 0x0155, 0xfb88,
+ 0xfbcb, 0xfc7b, 0xf7fc, 0xf7bf, 0xf986, 0xfb25,
+ 0xfd41, 0xfb19, 0xfbd4, 0xff76, 0xfb8d, 0xf9f4,
+ 0xfd7f, 0xfab3, 0xf9cf, 0xfd18, 0xf9ab, 0xf745,
+ 0xfab4, 0xfbb3, 0xfb2d, 0xfa89, 0xf9e3, 0xfcb0,
+ 0xfe1c, 0xfbca, 0xfbb2, 0xfc99, 0xfc4e, 0xfcb5,
+ 0xfba6, 0xf9b3, 0xf9b4, 0xf938, 0xf8e6, 0xfb54,
+ 0xfcc2, 0xfb8f, 0xfaa6, 0xfa9d, 0xfbed, 0xfdf7,
+ 0xfd65, 0xfaf1, 0xfa40, 0xfbdd, 0xfdbc, 0xfe80,
+ 0xffe5, 0x005e, 0xfbd0, 0xf915, 0xfd29, 0xfe11,
+ 0xfb23, 0xfcee, 0xff80, 0xff4b, 0xff5f, 0xfedf,
+ 0xfe76, 0xfeaa, 0xfdc6, 0xfd73, 0xfc9d, 0xfa8e,
+ 0xfa0a, 0xf924, 0xf908, 0xfc8c, 0xfe88, 0xfdc7,
+ 0xfcfd, 0xfd16, 0x0029, 0x0123, 0xfeb2, 0x009c,
+ 0x0105, 0xfd46, 0x0034, 0x0427, 0x02e0, 0x038a,
+ 0x03bc, 0x0254, 0x028a, 0x0111, 0x0158, 0x0295,
+ 0xff2a, 0xfed5, 0xffd6, 0xfc22, 0xfe0b, 0x021e,
+ 0xffd6, 0x0017, 0x013d, 0xff3f, 0x0140, 0x0304,
+ 0x0178, 0x0161, 0x0005, 0xff19, 0xfffe, 0xfd89,
+ 0xfc95, 0xfeac, 0xfd24, 0xfb48, 0xfb69, 0xfb2c,
+ 0xfc47, 0xfca4, 0xfc8c, 0xff3e, 0xff2b, 0xfc79,
+ 0xfdc8, 0xfef4, 0xfe18, 0x0013, 0x0112, 0xfdd3,
+ 0xfbb8, 0xfbb0, 0xfacd, 0xfa7e, 0xfb69, 0xfce9,
+ 0xfefe, 0xfe6b, 0xfc46, 0xfd51, 0xfd4f, 0xfb3b,
+ 0xfde8, 0x007c, 0xfd5f, 0xfc04, 0xfdce, 0xfd9e,
+ 0xfd69, 0xfee4, 0xffa2, 0xfe79, 0xfe05, 0x0081,
+ 0x014c, 0xffaa, 0x00b9, 0x0155, 0x0073, 0x024f,
+ 0x0392, 0x03df, 0x05d0, 0x064a, 0x063e, 0x0610,
+ 0x03da, 0x0428, 0x05cd, 0x04f4, 0x05fe, 0x074c,
+ 0x0588, 0x0368, 0x0066, 0xffb8, 0x0314, 0x03f6,
+ 0x03ac, 0x038b, 0x00e0, 0x0176, 0x0477, 0x042b,
+ 0x04b5, 0x0511, 0x034f, 0x040e, 0x03d9, 0x0333,
+ 0x05ca, 0x0537, 0x0542, 0x08ae, 0x05a6, 0x01dd,
+ 0x0368, 0x037a, 0x038d, 0x043a, 0x02f4, 0x02e5,
+ 0x01e6, 0x0001, 0x030e, 0x0501, 0x018c, 0x00a2,
+ 0x0139, 0x0085, 0x01a5, 0x016e, 0xffa2, 0x002a,
+ 0x0292, 0x03b9, 0x0269, 0x0310, 0x057d, 0x04b5,
+ 0x02fe, 0x032e, 0x03aa, 0x0477, 0x03b8, 0x00b7,
+ 0x01df, 0x052f, 0x03aa, 0x0253, 0x03e0, 0x03b7,
+ 0x038a, 0x05e1, 0x05c0, 0x0224, 0x018a, 0x027d,
+ 0x01d2, 0x0395, 0x03a7, 0x00af, 0x03c6, 0x067d,
+ 0x038f, 0x045f, 0x0584, 0x031a, 0x03bc, 0x05ae,
+ 0x0505, 0x04f2, 0x058a, 0x04da, 0x04bf, 0x040e,
+ 0x045a, 0x0620, 0x040b, 0x019b, 0x00be, 0xff3a,
+ 0xff57, 0x00c9, 0x01e2, 0x013f, 0x00e9, 0x0293,
+ 0x03cc, 0x0547, 0x05fe, 0x033f, 0x009b, 0x021f,
+ 0x04ab, 0x03fb, 0x028a, 0x03bf, 0x0565, 0x05f7,
+ 0x070b, 0x0657, 0x0250, 0xffee, 0x0172, 0x0228,
+ 0x019a, 0x0297, 0x016b, 0xff10, 0x002c, 0x01ab,
+ 0x0113, 0x0010, 0x00aa, 0x0130, 0x004e, 0x010a,
+ 0x01ca, 0x00a5, 0xff33, 0xfdb7, 0xfecb, 0x010c,
+ 0xff45, 0xfd53, 0xfea8, 0xff5c, 0xff72, 0xff95,
+ 0xfdc9, 0xfe17, 0x015e, 0x010b, 0x0088, 0x02f6,
+ 0x02b7, 0x0194, 0x024e, 0x0400, 0x050d, 0x0402,
+ 0x0351, 0x0296, 0x00ef, 0x002e, 0xffeb, 0xffc2,
+ 0x01af, 0x0347, 0x01a2, 0x0204, 0x0261, 0x0003,
+ 0x00ae, 0x0187, 0x00ba, 0x0126, 0x01f1, 0x0301,
+ 0x03d3, 0x049d, 0x05a2, 0x04db, 0x0498, 0x06aa,
+ 0x06c8, 0x070d, 0x0893, 0x07e9, 0x0952, 0x0b2c,
+ 0x09d0, 0x091d, 0x08ac, 0x0770, 0x082f, 0x0990,
+ 0x0898, 0x07fc, 0x0764, 0x06d6, 0x085e, 0x07b0,
+ 0x06cd, 0x072b, 0x04eb, 0x03f7, 0x05b1, 0x066a,
+ 0x06f8, 0x07a6, 0x07bd, 0x093a, 0x08cb, 0x0695,
+ 0x0773, 0x07e1, 0x0806, 0x0724, 0x0444, 0x0719,
+ 0x0a9a, 0x0892, 0x086c, 0x0898, 0x0582, 0x04fd,
+ 0x050f, 0x03b5, 0x03d5, 0x022b, 0x00ba, 0x028d,
+ 0x0310, 0x0079, 0xfef8, 0x005f, 0xffd7, 0xff5a,
+ 0x01b1, 0x00ec, 0xfede, 0x003e, 0x017a, 0xff7c,
+ 0xfd8c, 0xfe54, 0xfebc, 0xfddc, 0xfd51, 0xfd66,
+ 0xfd5b, 0xfc2f, 0xfd23, 0xfdcf, 0xfaa7, 0xfa70,
+ 0xfb98, 0xfa38, 0xfac9, 0xfd7f, 0xfdb0, 0xfb0b,
+ 0xfb82, 0xfb8e, 0xfa9d, 0xfda0, 0xfdaf, 0xfbb2,
+ 0xfb26, 0xfb93, 0xfc89, 0xfcc0, 0xffb7, 0xffde,
+ 0xfe34, 0xffe3, 0xfe4c, 0xfc35, 0xfc83, 0xfd40,
+ 0xfe8c, 0xfe01, 0xfd54, 0xff18, 0xffd3, 0xfe9a,
+ 0xff3d, 0xffef, 0xfe35, 0xfbef, 0xfbc5, 0xfd96,
+ 0xfdcb, 0xfdb7, 0xff31, 0xffff, 0xff38, 0xfe89,
+ 0xfe95, 0xfdaf, 0xfd33, 0xfe36, 0xfe55, 0xfd57,
+ 0xfdf9, 0xfe76, 0xfe9d, 0x0072, 0x0024, 0xff99,
+ 0x00c2, 0x01e3, 0x01a2, 0xff5f, 0xfe0a, 0xfc71,
+ 0xfe33, 0xff81, 0xfb84, 0xfc7f, 0xfdbe, 0xfd5e,
+ 0xff0e, 0xfdfb, 0xfd35, 0xfbe2, 0xfb41, 0xfcee,
+ 0xfb49, 0xf991, 0xfad3, 0xfa96, 0xf9a6, 0xfc93,
+ 0xfde4, 0xfc71, 0xff3b, 0x00df, 0xff54, 0xfefb,
+ 0xfe6b, 0xfee5, 0xfe8b, 0xfdad, 0xffa6, 0xfed9,
+ 0xfc97, 0xfdb8, 0xff1d, 0xfec7, 0xfde1, 0xfe5b,
+ 0xfdd5, 0xfc64, 0xfba1, 0xfb1c, 0xfd3e, 0xfda5,
+ 0xfb73, 0xfca5, 0xfdc4, 0xfc42, 0xfd63, 0x0055,
+ 0x0048, 0xffb9, 0x0092, 0x0192, 0x014a, 0x0098,
+ 0x0118, 0x0029, 0xff97, 0xffc2, 0xff63, 0xfe9b,
+ 0xfc70, 0xfda8, 0x0082, 0x00a0, 0x0051, 0x00fc,
+ 0x026b, 0x026d, 0x00bc, 0x000a, 0x017b, 0x01cb,
+ 0x0254, 0x0389, 0x01d5, 0x01c6, 0x0169, 0xfef5,
+ 0xfe7f, 0xfea3, 0xfe81, 0xfd5f, 0xfe8a, 0x0154,
+ 0x00d8, 0x0082, 0x01e3, 0x019d, 0x00c4, 0x01a9,
+ 0x016e, 0x0093, 0x005a, 0x00a2, 0x0295, 0x02cd,
+ 0x0122, 0x0111, 0x02e9, 0x01cd, 0xff62, 0x0013,
+ 0xff6f, 0x0043, 0x01b2, 0xffae, 0xfd80, 0xfc5d,
+ 0xfddf, 0xfe04, 0xfd36, 0xfe4a, 0xfdcd, 0xfd7b,
+ 0xfe4a, 0xff93, 0xfeca, 0xfc2f, 0xfc46, 0xfd26,
+ 0xfb8d, 0xf9ae, 0xfbd6, 0xfcf3, 0xfb14, 0xfcb3,
+ 0xfc82, 0xf989, 0xfac1, 0xfc71, 0xfbbb, 0xfacd,
+ 0xfaea, 0xfb22, 0xfa8d, 0xfc01, 0xfc78, 0xfb47,
+ 0xfbdd, 0xfa33, 0xf94c, 0xfb93, 0xfc17, 0xfb96,
+ 0xfc0f, 0xfcb5, 0xfcd4, 0xfea9, 0xff40, 0xfdc5,
+ 0xfe41, 0xfc21, 0xfa97, 0xfc90, 0xfb5d, 0xfaa9,
+ 0xfc4c, 0xfce9, 0xfe47, 0xfe56, 0xfe8f, 0x0052,
+ 0xfef0, 0xfecd, 0xfef0, 0xfe2f, 0x0015, 0xfe15,
+ 0xfc58, 0xfdb7, 0xfda1, 0xfdc8, 0xfeb5, 0xff9f,
+ 0xfd1a, 0xfd02, 0xfeb7, 0xfdb6, 0x0010, 0x0031,
+ 0xff4f, 0x0083, 0xffbd, 0xff3c, 0xff8c, 0x00d7,
+ 0xff89, 0xff5f, 0x016d, 0xff61, 0x0021, 0x0171,
+ 0xff94, 0xffce, 0xff72, 0x014a, 0x0389, 0x007c,
+ 0x023e, 0x054c, 0x0266, 0x01ca, 0x00a5, 0xff4d,
+ 0xff70, 0xfddc, 0xfe82, 0xfe03, 0xfd0c, 0xfeb2,
+ 0xfece, 0xfde1, 0xfebb, 0xffce, 0xff42, 0x002d,
+ 0xff50, 0xfe13, 0xffa7, 0xff57, 0x006c, 0x00d5,
+ 0x0036, 0x00b1, 0xffe9, 0x010b, 0xffbc, 0xfdce,
+ 0xfef2, 0xfde7, 0xfd0b, 0xfd02, 0xfcbb, 0xfc04,
+ 0xfbd4, 0xfcc5, 0xfb93, 0xfbcd, 0xfcbd, 0xfcce,
+ 0xff3a, 0xff44, 0xff44, 0x006b, 0xff2a, 0xffd9,
+ 0xff85, 0xfe26, 0xfe82, 0xfed6, 0x0059, 0x00e8,
+ 0x0202, 0x0294, 0x016a, 0x0258, 0x0279, 0x01c5,
+ 0x0204, 0x037f, 0x03ca, 0x029e, 0x0314, 0x01fd,
+ 0x0272, 0x0385, 0x0030, 0x0021, 0x0313, 0x0212,
+ 0x0224, 0x0495, 0x03e2, 0x038f, 0x0461, 0x05a3,
+ 0x0691, 0x0505, 0x06b1, 0x069c, 0x044e, 0x0627,
+ 0x0571, 0x0392, 0x048e, 0x0637, 0x05cf, 0x04c8,
+ 0x0634, 0x05cd, 0x0531, 0x068f, 0x0590, 0x0413,
+ 0x0545, 0x0502, 0x02ee, 0x0363, 0x035c, 0x012a,
+ 0xffdb, 0x0058, 0x0095, 0x0040, 0x0141, 0x01ce,
+ 0x00ee, 0x005e, 0x012e, 0x0032, 0xff25, 0x0039,
+ 0xff84, 0xffe1, 0xfe58, 0xfccf, 0xff85, 0xff42,
+ 0xff35, 0xfea3, 0xfdba, 0xff38, 0xfdfd, 0xfdbf,
+ 0xfe02, 0xfdb3, 0xfea0, 0xfec4, 0xff13, 0xfe6c,
+ 0xfdda, 0xfe1e, 0xfe28, 0xfda4, 0xfc73, 0xfda7,
+ 0xff9e, 0x00d7, 0x0149, 0xffb9, 0xff7a, 0xff7f,
+ 0xff47, 0x0014, 0xfecd, 0xff29, 0x0197, 0x0202,
+ 0x028c, 0x0441, 0x064f, 0x05ea, 0x04b8, 0x0505,
+ 0x0511, 0x0595, 0x037b, 0x0144, 0x018f, 0xffab,
+ 0xfe48, 0xff48, 0x0070, 0x011e, 0x00b5, 0x0020,
+ 0x0214, 0x03b2, 0x01d3, 0x014b, 0x02c5, 0x04a7,
+ 0x042e, 0x0228, 0x03c7, 0x0357, 0x00db, 0x0158,
+ 0x0168, 0x0092, 0x006e, 0xff9f, 0xfea4, 0xff02,
+ 0xfe4c, 0xfd77, 0xfd8e, 0xfd88, 0xfe69, 0xfeb5,
+ 0xfed4, 0xfed1, 0xff3f, 0xff4b, 0xfe7e, 0xff3d,
+ 0xfe2c, 0xfd52, 0xfe8a, 0xff69, 0xff7d, 0xfe66,
+ 0xfe37, 0xfdfa, 0xff43, 0xff45, 0xfc24, 0xfcbe,
+ 0xfd79, 0xfd50, 0xfe43, 0xfda2, 0xfd9d, 0xfe22,
+ 0xfce4, 0xfc62, 0xfee5, 0x0095, 0x002f, 0xff1d,
+ 0xfdc3, 0xfcd9, 0xfc46, 0xfd09, 0xfceb, 0xfd46,
+ 0xfdde, 0xfbba, 0xfc47, 0xfd64, 0xfd10, 0xfe03,
+ 0xfd0d, 0xfc90, 0xfe9c, 0xfef3, 0xfd00, 0xfc55,
+ 0xfbeb, 0xfa7f, 0xfb5e, 0xfc68, 0xfcc4, 0xfdcf,
+ 0xfe12, 0xfeb9, 0xfe15, 0xfd28, 0xfeb5, 0xfe2a,
+ 0xfcaf, 0xfdfe, 0xfe7b, 0xfd24, 0xfca6, 0xfc2a,
+ 0xfc44, 0xfd71, 0xfc33, 0xfbc9, 0xfd2b, 0xfd51,
+ 0xfe1a, 0xfe0c, 0xfea9, 0xff99, 0xfecd, 0x0001,
+ 0x0164, 0x00a6, 0xff77, 0xffe5, 0xffd1, 0xffc7,
+ 0x014e, 0x00fb, 0x0244, 0x02bf, 0x02cd, 0x04c8,
+ 0x0324, 0x0371, 0x02c5, 0xffd9, 0x00d3, 0x003a,
+ 0xff77, 0xffcd, 0xff1d, 0xfe13, 0xfce8, 0xfd13,
+ 0xfd2b, 0xfc9f, 0xfd3c, 0xfed7, 0xff17, 0xff56,
+ 0xffeb, 0xff6f, 0xff24, 0xfecb, 0xff7c, 0xfec6,
+ 0xfd37, 0xfd03, 0xfafb, 0xfaaa, 0xfbd5, 0xfb13,
+ 0xfaf1, 0xfb30, 0xfacf, 0xfb5f, 0xfbf4, 0xfc0d,
+ 0xfd01, 0xfc5c, 0xfc77, 0xfd50, 0xfc5c, 0xfd36,
+ 0xfd3d, 0xfce0, 0xfcf3, 0xfd03, 0xfe45, 0xfc7b,
+ 0xfbd4, 0xfc4e, 0xfa2f, 0xfa3c, 0xfad2, 0xfa4c,
+ 0xf9f9, 0xf9c4, 0xfa48, 0xfafd, 0xfaed, 0xfb47,
+ 0xfd8f, 0xff7a, 0x0080, 0x0193, 0x01ce, 0x0145,
+ 0x000a, 0xff3c, 0xff28, 0xfe2e, 0xfca5, 0xfc0b,
+ 0xfbe4, 0xfb23, 0xfb9d, 0xfc63, 0xfaa6, 0xfb3b,
+ 0xfdbe, 0xfd68, 0xfd9a, 0xfdf7, 0xfe41, 0xff13,
+ 0xfee6, 0x0008, 0x0091, 0x00ad, 0x012b, 0x00eb,
+ 0x0159, 0x0059, 0xff47, 0xff1f, 0xfdce, 0xfd8a,
+ 0xfeee, 0xfe7a, 0xfd4b, 0xfeaa, 0xfeb4, 0xfdd3,
+ 0xfde0, 0xfd8a, 0xfd66, 0xfbb0, 0xfb39, 0xfb9f,
+ 0xfb7d, 0xfd27, 0xfce0, 0xfccb, 0xfdea, 0xfcf3,
+ 0xfd8e, 0xfe7a, 0xfccd, 0xfcb5, 0xfcb3, 0xfa10,
+ 0xfa22, 0xfb28, 0xf93a, 0xf93f, 0xfad6, 0xfa5a,
+ 0xfae6, 0xfc4e, 0xfb7a, 0xfb85, 0xfcd0, 0xfc83,
+ 0xfaf3, 0xfad2, 0xfc21, 0xfc4c, 0xfd3e, 0xfd97,
+ 0xfdd1, 0xff02, 0xfe96, 0xffa7, 0x000d, 0x0096,
+ 0x0125, 0xfea2, 0xfef8, 0xfeab, 0xfd7b, 0xfebd,
+ 0xfe3e, 0xfe7c, 0xff04, 0xfe2e, 0xfec4, 0xfff5,
+ 0x008a, 0x0126, 0x0195, 0x0174, 0x0052, 0xff9e,
+ 0xffed, 0xff2a, 0x001a, 0x016a, 0x017b, 0x01c4,
+ 0x0016, 0x00ae, 0x013f, 0x0003, 0x0127, 0x000d,
+ 0xfedb, 0xff73, 0xff1a, 0xffb2, 0x0034, 0xfefc,
+ 0xfea4, 0xff1a, 0xfdac, 0xfe12, 0xff4e, 0xfe96,
+ 0xff3f, 0x005a, 0x012b, 0x01a5, 0x0194, 0x01a0,
+ 0x0243, 0x028b, 0x0122, 0xff73, 0xfe51, 0xff04,
+ 0xfda7, 0xfb0a, 0xfc3c, 0xfc02, 0xfb4c, 0xfc34,
+ 0xfc6f, 0xfc30, 0xfb10, 0xfa95, 0xfaa2, 0xfb46,
+ 0xfbd2, 0xfbb0, 0xfbe9, 0xfb8f, 0xfb8c, 0xfb1e,
+ 0xf99b, 0xf9b0, 0xfb4c, 0xfb97, 0xfaea, 0xfaf3,
+ 0xfb25, 0xfb5c, 0xfb3a, 0xfbaa, 0xfc4d, 0xfc5c,
+ 0xfc59, 0xfc2b, 0xfd09, 0xfcbb, 0xfc5d, 0xfd91,
+ 0xfd68, 0xfdcb, 0xfdb9, 0xfc93, 0xfd2a, 0xfd42,
+ 0xfc8d, 0xfcdd, 0xfcbd, 0xfcd7, 0xfd6a, 0xfcfb,
+ 0xfde0, 0xfe48, 0xfe3e, 0x0011, 0x002b, 0x013e,
+ 0x02f8, 0x02bb, 0x03a5, 0x03ce, 0x0301, 0x01e9,
+ 0x0035, 0x002d, 0xffd3, 0xfdbd, 0xfce3, 0xfc43,
+ 0xfbc7, 0xfdcd, 0xfecf, 0xff81, 0x017d, 0x01ec,
+ 0x016b, 0x00cd, 0x0248, 0x0361, 0x024b, 0x028a,
+ 0x0203, 0x01cc, 0x014f, 0xff7f, 0x014e, 0x0331,
+ 0x028c, 0x0250, 0x01f9, 0x020b, 0x01ac, 0x0039,
+ 0xffd9, 0xffdb, 0x0014, 0x00cc, 0x00e7, 0x0109,
+ 0x0120, 0x0104, 0x00e9, 0x0090, 0x00b0, 0x011d,
+ 0x0090, 0xfffc, 0x0055, 0xff56, 0xfe4a, 0xfe83,
+ 0xfebf, 0xff84, 0xfe62, 0xfd13, 0xfda3, 0xfcdb,
+ 0xfc36, 0xfcfa, 0xfe34, 0xff51, 0xffd9, 0x009f,
+ 0x0195, 0x015e, 0x00ff, 0x0133, 0xffb2, 0xff2f,
+ 0xffee, 0xfed7, 0xfeb8, 0xfff3, 0x0000, 0xff47,
+ 0x0036, 0x003b, 0xffeb, 0x01ee, 0x014f, 0x01ab,
+ 0x02c6, 0x0134, 0x0204, 0x01ce, 0x0086, 0x0097,
+ 0x0029, 0x0099, 0x0135, 0x01a7, 0x0275, 0x027b,
+ 0x01cb, 0x0216, 0x0186, 0x0088, 0x00ed, 0x004b,
+ 0x005a, 0x000d, 0xfff6, 0x018b, 0x019e, 0x0260,
+ 0x0354, 0x03ee, 0x044c, 0x046f, 0x0504, 0x0416,
+ 0x04a7, 0x0537, 0x04fe, 0x0573, 0x0431, 0x03eb,
+ 0x0391, 0x02ef, 0x039c, 0x030d, 0x025e, 0x035c,
+ 0x0454, 0x046b, 0x05fa, 0x0697, 0x0611, 0x06d1,
+ 0x0654, 0x0579, 0x0422, 0x031b, 0x02a9, 0x0104,
+ 0x00bd, 0x00fd, 0x00a6, 0x0034, 0x0022, 0x00b5,
+ 0x007f, 0x0070, 0x007c, 0xff88, 0xfec8, 0xff42,
+ 0xfe6b, 0xfca3, 0xfcd5, 0xfc97, 0xfbe7, 0xfbb5,
+ 0xfbac, 0xfc5b, 0xfc8f, 0xfcc7, 0xfcaa, 0xfc94,
+ 0xfe17, 0xff24, 0xfe62, 0xfdfa, 0xfee8, 0xfe90,
+ 0xfe0b, 0xff4e, 0xfeed, 0xfdcc, 0xfe3b, 0xfd7f,
+ 0xfc90, 0xfcdc, 0xfcb5, 0xfcff, 0xfd0c, 0xfcb0,
+ 0xfcc5, 0xfcbd, 0xfde9, 0xfe6d, 0xfe69, 0x002f,
+ 0x0086, 0xfff2, 0x0134, 0x0207, 0x0249, 0x03aa,
+ 0x0439, 0x03e3, 0x03ae, 0x031e, 0x0305, 0x029a,
+ 0x0254, 0x01f3, 0x0053, 0xffdc, 0xffda, 0x0009,
+ 0x0173, 0x0258, 0x02e6, 0x0337, 0x0355, 0x051d,
+ 0x06e9, 0x0723, 0x0814, 0x0844, 0x0760, 0x07a4,
+ 0x0741, 0x0690, 0x0653, 0x0686, 0x0675, 0x053c,
+ 0x0569, 0x05a1, 0x058a, 0x05fc, 0x050c, 0x0514,
+ 0x0551, 0x04c9, 0x058c, 0x0589, 0x0554, 0x0540,
+ 0x0482, 0x0569, 0x054b, 0x042d, 0x053f, 0x052d,
+ 0x0449, 0x0459, 0x03c7, 0x02fc, 0x0201, 0x0122,
+ 0x00a7, 0xffda, 0xfe64, 0xfd3c, 0xfd47, 0xfd33,
+ 0xfd82, 0xfee9, 0xffea, 0x0049, 0x0095, 0x012e,
+ 0x023d, 0x0273, 0x026a, 0x033a, 0x02c9, 0x02a1,
+ 0x02de, 0x025d, 0x0373, 0x0343, 0x02b3, 0x0360,
+ 0x030e, 0x03ba, 0x03bf, 0x02bc, 0x02f0, 0x02c1,
+ 0x021c, 0x02ca, 0x02ee, 0x01b8, 0x0256, 0x0254,
+ 0x0283, 0x03c3, 0x028b, 0x034d, 0x04bf, 0x0420,
+ 0x043a, 0x03ef, 0x0358, 0x033f, 0x034a, 0x02e9,
+ 0x036f, 0x044c, 0x0401, 0x03c8, 0x0307, 0x033b,
+ 0x042d, 0x044a, 0x040d, 0x03f2, 0x0409, 0x032f,
+ 0x0355, 0x0365, 0x0354, 0x042d, 0x0325, 0x031f,
+ 0x039d, 0x02f5, 0x02e2, 0x02ee, 0x031a, 0x02a4,
+ 0x02e5, 0x03b7, 0x03d0, 0x037b, 0x0313, 0x033c,
+ 0x0267, 0x0176, 0x00e4, 0x0098, 0x012e, 0x0149,
+ 0x0152, 0x00df, 0x0146, 0x02bd, 0x0319, 0x03e2,
+ 0x043b, 0x0318, 0x02d0, 0x0353, 0x027a, 0x01c6,
+ 0x01d7, 0x0082, 0xffb4, 0xff6f, 0xfe87, 0xfeec,
+ 0xff90, 0xfef2, 0xfee0, 0xffd2, 0x008b, 0x01d2,
+ 0x02fd, 0x0357, 0x040a, 0x0474, 0x04a4, 0x0462,
+ 0x0421, 0x0506, 0x0553, 0x052b, 0x052b, 0x042a,
+ 0x0316, 0x027e, 0x01aa, 0x00e4, 0x007d, 0x0055,
+ 0xff81, 0xfedb, 0xffbe, 0x0080, 0x0165, 0x0296,
+ 0x0357, 0x0492, 0x05fd, 0x07cf, 0x08fd, 0x0903,
+ 0x08cc, 0x0756, 0x05bb, 0x050d, 0x045a, 0x034b,
+ 0x02bb, 0x0268, 0x014f, 0x015b, 0x0218, 0x01f8,
+ 0x02c8, 0x03e8, 0x03f7, 0x0490, 0x0576, 0x0573,
+ 0x058f, 0x058c, 0x0592, 0x060f, 0x0627, 0x0629,
+ 0x05cf, 0x05a5, 0x0588, 0x04e1, 0x04ec, 0x04a2,
+ 0x03b8, 0x0327, 0x02c7, 0x022f, 0x01a0, 0x020b,
+ 0x0229, 0x01b8, 0x01b1, 0x01d6, 0x024b, 0x0230,
+ 0x01fe, 0x0279, 0x024f, 0x024b, 0x0201, 0x004b,
+ 0xffaa, 0xff97, 0xfebb, 0xfe78, 0xfdfb, 0xfd3d,
+ 0xfccc, 0xfc53, 0xfc5a, 0xfc80, 0xfccc, 0xfdfc,
+ 0xff37, 0xff90, 0xffb9, 0xffbb, 0xfff9, 0x00dd,
+ 0x00d3, 0x00ac, 0x0106, 0x00b0, 0x00bc, 0x016c,
+ 0x0163, 0x0125, 0x016d, 0x0158, 0x01c0, 0x0235,
+ 0x01cb, 0x01f8, 0x01a5, 0x0141, 0x0183, 0x0134,
+ 0x00b8, 0x0022, 0x0037, 0x00a8, 0x0083, 0xffe2,
+ 0xffa8, 0x0012, 0xffd7, 0xffe8, 0x005b, 0x00dc,
+ 0x0100, 0x00a3, 0x0118, 0x009d, 0xffed, 0x0049,
+ 0x0085, 0x00aa, 0x004a, 0x004b, 0x0099, 0x00c8,
+ 0x00ec, 0x00c3, 0x00ad, 0x0041, 0x0059, 0x0088,
+ 0x0014, 0xfffa, 0xffaf, 0xfeaa, 0xfe58, 0xff58,
+ 0xff5a, 0xff40, 0x002d, 0x010a, 0x020f, 0x0187,
+ 0x00f4, 0x01b7, 0x01b5, 0x01ab, 0x010d, 0xff6e,
+ 0xfe87, 0xfe07, 0xfcd0, 0xfc34, 0xfccc, 0xfd58,
+ 0xfdfd, 0xfe08, 0xfe02, 0xfe82, 0xfe72, 0xfeb9,
+ 0xfec4, 0xfe3b, 0xfe12, 0xfde5, 0xfd9f, 0xfced,
+ 0xfbe9, 0xfb0b, 0xfa4e, 0xfa12, 0xfa46, 0xfa74,
+ 0xfa8f, 0xfa4f, 0xf9f9, 0xfa52, 0xfaa9, 0xfa83,
+ 0xfa5f, 0xfab5, 0xfb79, 0xfc08, 0xfc51, 0xfc71,
+ 0xfcfe, 0xfdaa, 0xfd99, 0xfdbc, 0xfd5e, 0xfc2e,
+ 0xfbf9, 0xfc09, 0xfbd8, 0xfbfc, 0xfbc5, 0xfbc8,
+ 0xfc4d, 0xfcab, 0xfd30, 0xfdaf, 0xfe74, 0xff77,
+ 0x003c, 0x0122, 0x0186, 0x01b5, 0x0252, 0x02de,
+ 0x030c, 0x02d9, 0x02d9, 0x02ad, 0x02a6, 0x0323,
+ 0x0296, 0x01fe, 0x02c0, 0x035e, 0x0394, 0x041a,
+ 0x0476, 0x04ea, 0x0556, 0x0549, 0x05ad, 0x05b3,
+ 0x04e5, 0x0493, 0x0440, 0x0354, 0x0296, 0x02b1,
+ 0x02cf, 0x0264, 0x0279, 0x02b1, 0x021a, 0x0183,
+ 0x0149, 0x010e, 0x014d, 0x01be, 0x01f8, 0x024c,
+ 0x0257, 0x0252, 0x0217, 0x018c, 0x0194, 0x0150,
+ 0x009f, 0x005a, 0xffd7, 0xff4f, 0xfedb, 0xfdd3,
+ 0xfd76, 0xfde8, 0xfd52, 0xfc87, 0xfcc4, 0xfcd7,
+ 0xfcc4, 0xfd54, 0xfdd7, 0xfe42, 0xfeee, 0xffbd,
+ 0x00f1, 0x01b2, 0x018a, 0x01bd, 0x021e, 0x01cb,
+ 0x012f, 0x012f, 0x01aa, 0x0156, 0x0072, 0x0070,
+ 0x00dd, 0x009f, 0x004b, 0x0095, 0x00cc, 0x004c,
+ 0x001a, 0x00b4, 0x005a, 0xff81, 0x0045, 0x0134,
+ 0x00ec, 0x010c, 0x01bc, 0x01a2, 0x0107, 0x00a6,
+ 0x0085, 0x0051, 0xffb8, 0xff28, 0xff02, 0xff4a,
+ 0xffe0, 0x001a, 0x004d, 0x0101, 0x0124, 0x00b6,
+ 0x0119, 0x01f4, 0x0256, 0x02a2, 0x0312, 0x034d,
+ 0x035a, 0x0390, 0x0396, 0x0303, 0x02a9, 0x02b8,
+ 0x0254, 0x01da, 0x019a, 0x0148, 0x0164, 0x01a5,
+ 0x0185, 0x01c1, 0x0222, 0x021b, 0x026e, 0x0307,
+ 0x0321, 0x02ed, 0x0289, 0x01c0, 0x00fe, 0x00b5,
+ 0x00bb, 0x0086, 0x001d, 0xffd6, 0xff99, 0xff7b,
+ 0xff88, 0xff84, 0xff7d, 0xff4c, 0xfef1, 0xfebf,
+ 0xfe37, 0xfd6b, 0xfd50, 0xfd46, 0xfc80, 0xfbc5,
+ 0xfb57, 0xfaeb, 0xfaee, 0xfb88, 0xfc29, 0xfc68,
+ 0xfc76, 0xfc85, 0xfc69, 0xfc3b, 0xfc31, 0xfc28,
+ 0xfc35, 0xfc78, 0xfce0, 0xfd40, 0xfd2e, 0xfd22,
+ 0xfd9c, 0xfd78, 0xfca0, 0xfc30, 0xfb96, 0xfb0e,
+ 0xfbc4, 0xfc6d, 0xfc69, 0xfd17, 0xfde1, 0xfe10,
+ 0xfec8, 0xfff5, 0x00b7, 0x0140, 0x0172, 0x0130,
+ 0x016f, 0x026d, 0x0302, 0x02d8, 0x0291, 0x021b,
+ 0x0165, 0x0100, 0x00d3, 0x008e, 0x0062, 0x0053,
+ 0x0093, 0x0130, 0x01b4, 0x027a, 0x03ab, 0x0491,
+ 0x0588, 0x06a4, 0x06a9, 0x061a, 0x0619, 0x05cf,
+ 0x04fe, 0x049a, 0x0456, 0x039f, 0x02f5, 0x029b,
+ 0x025b, 0x0260, 0x0282, 0x01f9, 0x00fe, 0x00a3,
+ 0x00c1, 0x00c1, 0x00dc, 0x0107, 0x010b, 0x0148,
+ 0x01b8, 0x01fd, 0x023b, 0x02b0, 0x031b, 0x02d9,
+ 0x01e1, 0x0102, 0x0070, 0xffff, 0xffd9, 0xff7f,
+ 0xfe81, 0xfd72, 0xfc93, 0xfbdb, 0xfb83, 0xfb44,
+ 0xfb25, 0xfb9c, 0xfc5a, 0xfd13, 0xfe02, 0xff1a,
+ 0x001e, 0x00bb, 0x00eb, 0x0112, 0x011c, 0x00e9,
+ 0x00c5, 0x00a3, 0x00af, 0x010b, 0x00f4, 0x004a,
+ 0xffc3, 0xff6b, 0xff3f, 0xff3b, 0xff07, 0xfeb9,
+ 0xfe8b, 0xfe8f, 0xfee2, 0xff3b, 0xff76, 0xffd2,
+ 0x0034, 0x0099, 0x00f8, 0x00f6, 0x00f6, 0x0178,
+ 0x01e3, 0x01aa, 0x0161, 0x01b6, 0x022f, 0x0251,
+ 0x02d5, 0x035f, 0x029d, 0x0197, 0x0187, 0x0174,
+ 0x014a, 0x01bb, 0x022a, 0x023d, 0x0252, 0x02b3,
+ 0x036c, 0x03dc, 0x03f3, 0x044d, 0x0448, 0x0372,
+ 0x02ae, 0x021d, 0x01a7, 0x01ca, 0x0232, 0x0274,
+ 0x02ea, 0x0386, 0x03d2, 0x03c3, 0x03a1, 0x0385,
+ 0x032b, 0x02c2, 0x02e9, 0x0341, 0x030a, 0x02b5,
+ 0x0287, 0x01c6, 0x00d8, 0x00d4, 0x015f, 0x020b,
+ 0x031f, 0x03f2, 0x0407, 0x03e9, 0x036a, 0x026b,
+ 0x01a2, 0x00e4, 0xffb5, 0xfe93, 0xfe05, 0xfe25,
+ 0xfeaf, 0xff1b, 0xff47, 0xff63, 0xffc5, 0x008d,
+ 0x00f5, 0x00a0, 0x006e, 0x00b3, 0x0115, 0x019b,
+ 0x021c, 0x023a, 0x01ed, 0x0165, 0x00d5, 0x0022,
+ 0xff5c, 0xfee8, 0xfe7d, 0xfd9a, 0xfcb6, 0xfc3d,
+ 0xfbfb, 0xfbfa, 0xfc70, 0xfd50, 0xfe34, 0xfe9c,
+ 0xfe87, 0xfe58, 0xfe6c, 0xff04, 0x0000, 0x00f4,
+ 0x01a9, 0x0212, 0x0244, 0x028d, 0x02dd, 0x02ff,
+ 0x0317, 0x02f3, 0x0251, 0x01b7, 0x0156, 0x00b0,
+ 0x002f, 0x006d, 0x00ee, 0x0183, 0x025c, 0x02ef,
+ 0x032d, 0x03af, 0x041d, 0x03d9, 0x0342, 0x02f2,
+ 0x02dd, 0x02c8, 0x02c2, 0x02a9, 0x0268, 0x027e,
+ 0x02c6, 0x0285, 0x023a, 0x0252, 0x022f, 0x0233,
+ 0x02b2, 0x028f, 0x01d3, 0x0159, 0x00b8, 0xffed,
+ 0xffb7, 0xffe2, 0x001e, 0x00ad, 0x015b, 0x01a9,
+ 0x018f, 0x0178, 0x0196, 0x01a1, 0x018d, 0x015a,
+ 0x008a, 0xff11, 0xfdb0, 0xfce9, 0xfcdf, 0xfda9,
+ 0xfefa, 0x0024, 0x00ad, 0x00c1, 0x00eb, 0x015e,
+ 0x01e8, 0x0234, 0x0226, 0x0220, 0x021d, 0x01d9,
+ 0x01f1, 0x024f, 0x01d3, 0x0130, 0x017c, 0x01c6,
+ 0x01e4, 0x024e, 0x01f6, 0x0132, 0x0165, 0x0164,
+ 0x0067, 0xffbc, 0xff4a, 0xfe80, 0xfe2b, 0xfe84,
+ 0xff1b, 0xffcc, 0x0066, 0x0105, 0x01a8, 0x0201,
+ 0x022f, 0x023a, 0x0202, 0x0202, 0x0245, 0x0276,
+ 0x02f2, 0x03c9, 0x0470, 0x04ba, 0x04ab, 0x046e,
+ 0x046a, 0x0485, 0x046e, 0x046a, 0x04c2, 0x04fb,
+ 0x04b4, 0x0445, 0x03a6, 0x028d, 0x0190, 0x0140,
+ 0x0161, 0x01b4, 0x0206, 0x0246, 0x02c7, 0x0381,
+ 0x0412, 0x042f, 0x03ae, 0x030d, 0x02f6, 0x0376,
+ 0x0454, 0x04b9, 0x040e, 0x035e, 0x032f, 0x02dd,
+ 0x02eb, 0x0380, 0x036a, 0x02f9, 0x032e, 0x036d,
+ 0x0343, 0x0330, 0x02ea, 0x0201, 0x011b, 0x0095,
+ 0x0007, 0xffa8, 0xffa5, 0xff61, 0xff0a, 0xff1d,
+ 0xff22, 0xff1d, 0xff65, 0xff91, 0xff66, 0xff0d,
+ 0xfecc, 0xfeec, 0xff08, 0xff2f, 0xffbd, 0xffed,
+ 0x0000, 0x0110, 0x01ea, 0x01b5, 0x01af, 0x0204,
+ 0x0224, 0x020f, 0x0187, 0x00c0, 0x002f, 0xffd8,
+ 0x000c, 0x00d0, 0x01be, 0x02b4, 0x0330, 0x02fa,
+ 0x02a7, 0x024c, 0x01e1, 0x01af, 0x01c6, 0x021a,
+ 0x0255, 0x0271, 0x02de, 0x034d, 0x03c9, 0x04b9,
+ 0x0508, 0x0467, 0x03ff, 0x03a4, 0x033d, 0x0374,
+ 0x039a, 0x0343, 0x0323, 0x0351, 0x03c2, 0x043c,
+ 0x0408, 0x0355, 0x02d5, 0x02a2, 0x02ac, 0x02be,
+ 0x029c, 0x022a, 0x01a5, 0x01e8, 0x02ec, 0x0392,
+ 0x03a4, 0x0364, 0x02ae, 0x020a, 0x01ff, 0x0212,
+ 0x01da, 0x0148, 0x0068, 0xffaa, 0xff6c, 0xff87,
+ 0xff9f, 0xff75, 0xff4b, 0xffd6, 0x0122, 0x0227,
+ 0x0215, 0x0103, 0xff4b, 0xfdbc, 0xfd13, 0xfcae,
+ 0xfc1e, 0xfc01, 0xfc24, 0xfc2f, 0xfca1, 0xfcd3,
+ 0xfc03, 0xfb66, 0xfbb4, 0xfc25, 0xfcba, 0xfddf,
+ 0xff16, 0xffaa, 0xff73, 0xfefd, 0xfedc, 0xfece,
+ 0xfe79, 0xfe40, 0xfe61, 0xfe95, 0xfee6, 0xff89,
+ 0x001a, 0x0022, 0xffc7, 0xff4f, 0xfebd, 0xfe35,
+ 0xfe01, 0xfe29, 0xfe81, 0xfefb, 0xffbc, 0x009c,
+ 0x0104, 0x0106, 0x0166, 0x01e5, 0x01fc, 0x0237,
+ 0x02bf, 0x0323, 0x039b, 0x0430, 0x049a, 0x050f,
+ 0x055c, 0x054f, 0x0570, 0x05aa, 0x05c0, 0x0639,
+ 0x06fc, 0x075d, 0x075e, 0x0731, 0x06dc, 0x0659,
+ 0x05b7, 0x052a, 0x0472, 0x0378, 0x02d3, 0x0273,
+ 0x0216, 0x022a, 0x025b, 0x026b, 0x02fb, 0x038d,
+ 0x0356, 0x02e5, 0x0293, 0x023b, 0x01d9, 0x0120,
+ 0x0013, 0xff27, 0xfe91, 0xfeaa, 0xff64, 0xfffe,
+ 0x004b, 0x00ac, 0x011f, 0x0175, 0x01db, 0x0284,
+ 0x02d5, 0x0214, 0x00c2, 0xff9a, 0xfe9e, 0xfdfa,
+ 0xfdc4, 0xfd74, 0xfc9d, 0xfb94, 0xfb4b, 0xfc0f,
+ 0xfd20, 0xfe17, 0xfef2, 0xff77, 0xffe5, 0x009b,
+ 0x016f, 0x0218, 0x0258, 0x0244, 0x0245, 0x0287,
+ 0x0333, 0x0417, 0x0445, 0x0391, 0x02d1, 0x0278,
+ 0x02a0, 0x033f, 0x03d8, 0x03f5, 0x03b6, 0x0396,
+ 0x03ad, 0x03b2, 0x0391, 0x0373, 0x03a7, 0x0436,
+ 0x048c, 0x04d0, 0x055f, 0x0519, 0x03af, 0x02a4,
+ 0x0263, 0x0289, 0x0304, 0x0346, 0x036a, 0x0444,
+ 0x058a, 0x0691, 0x070e, 0x070d, 0x0746, 0x07dd,
+ 0x082a, 0x084b, 0x086f, 0x085b, 0x0852, 0x088b,
+ 0x08c9, 0x0906, 0x0970, 0x0a1f, 0x0aee, 0x0ba1,
+ 0x0c39, 0x0c9a, 0x0cad, 0x0cd9, 0x0d4f, 0x0da6,
+ 0x0d87, 0x0cfd, 0x0c4a, 0x0bb9, 0x0b82, 0x0ba5,
+ 0x0c0c, 0x0caa, 0x0d14, 0x0ce2, 0x0c92, 0x0c5a,
+ 0x0b9b, 0x0a5f, 0x095d, 0x08cf, 0x085f, 0x07b3,
+ 0x0727, 0x072e, 0x06f6, 0x05bc, 0x040f, 0x0296,
+ 0x0174, 0x00a6, 0x002b, 0x001a, 0x0046, 0x002c,
+ 0xff73, 0xfe38, 0xfcf9, 0xfbe6, 0xfae7, 0xfa29,
+ 0xf99f, 0xf901, 0xf851, 0xf73c, 0xf5b1, 0xf41e,
+ 0xf284, 0xf188, 0xf15e, 0xef84, 0xe9d4, 0xe08c,
+ 0xd4da, 0xca56, 0xc52b, 0xc538, 0xc812, 0xcc12,
+ 0xcf9b, 0xd255, 0xd5f4, 0xdbda, 0xe330, 0xe8a7,
+ 0xe94f, 0xe60e, 0xe23e, 0xe03e, 0xe0bc, 0xe375,
+ 0xe750, 0xeaad, 0xed10, 0xef6b, 0xf244, 0xf537,
+ 0xf7af, 0xf957, 0xfa77, 0xfb61, 0xfc8a, 0xfed5,
+ 0x01a1, 0x0336, 0x0385, 0x0321, 0x026b, 0x02a6,
+ 0x0446, 0x0643, 0x07f4, 0x0922, 0x09c1, 0x0a61,
+ 0x0b89, 0x0d63, 0x0f87, 0x114d, 0x12b8, 0x13cf,
+ 0x1428, 0x13fd, 0x1417, 0x14fc, 0x16d9, 0x1992,
+ 0x1c8a, 0x1e85, 0x1f37, 0x1fb5, 0x2010, 0x1fd5,
+ 0x1fe9, 0x2077, 0x2093, 0x202d, 0x1f71, 0x1e7f,
+ 0x1d7d, 0x1bd6, 0x19a2, 0x17ec, 0x16ca, 0x15f0,
+ 0x155b, 0x14a7, 0x13a6, 0x125c, 0x10e9, 0x0fcf,
+ 0x0f21, 0x0ec6, 0x0ef8, 0x0f4b, 0x0f4a, 0x0efc,
+ 0x0ddd, 0x0bb1, 0x093a, 0x0743, 0x0675, 0x06bf,
+ 0x0728, 0x075f, 0x0792, 0x076a, 0x06b9, 0x0589,
+ 0x03cf, 0x01f8, 0x008c, 0xffb4, 0xff94, 0x0033,
+ 0x00f8, 0x0127, 0x00ce, 0x0049, 0xff96, 0xff25,
+ 0xffa6, 0x0084, 0x0102, 0x0165, 0x01c8, 0x020e,
+ 0x0256, 0x0234, 0x0151, 0x0046, 0xff8d, 0xff5d,
+ 0x0000, 0x00e9, 0x0131, 0x00e4, 0x004d, 0xff6e,
+ 0xfe89, 0xfe02, 0xfe2c, 0xff1a, 0xfff3, 0xffe9,
+ 0xff73, 0xfedc, 0xfd9a, 0xfbfb, 0xfadb, 0xfa20,
+ 0xf979, 0xf915, 0xf928, 0xf9e2, 0xfb3d, 0xfcac,
+ 0xfddf, 0xfec4, 0xfee9, 0xfe5c, 0xfdd7, 0xfd9d,
+ 0xfdc4, 0xfe70, 0xff2b, 0xff9d, 0xffca, 0xff59,
+ 0xfe8b, 0xfe47, 0xfe65, 0xfe3d, 0xfe09, 0xfdd9,
+ 0xfd24, 0xfbd3, 0xfa2d, 0xf84c, 0xf67e, 0xf518,
+ 0xf3d4, 0xf251, 0xf083, 0xee68, 0xeca5, 0xec2b,
+ 0xec68, 0xec59, 0xec1f, 0xebc0, 0xeb1f, 0xeac9,
+ 0xeae6, 0xeb7a, 0xecdf, 0xeeea, 0xf171, 0xf447,
+ 0xf673, 0xf76c, 0xf766, 0xf674, 0xf553, 0xf508,
+ 0xf5aa, 0xf6ee, 0xf873, 0xf9c7, 0xfa95, 0xfa82,
+ 0xf989, 0xf814, 0xf6b1, 0xf651, 0xf74d, 0xf903,
+ 0xfb1d, 0xfd4a, 0xfec4, 0xff62, 0xff3f, 0xfe75,
+ 0xfdaf, 0xfd6e, 0xfdb6, 0xfe81, 0xff92, 0x00b3,
+ 0x019f, 0x01db, 0x01a1, 0x018d, 0x01a3, 0x01d4,
+ 0x024f, 0x034b, 0x04e5, 0x06b6, 0x0845, 0x098b,
+ 0x0a7e, 0x0b12, 0x0b6a, 0x0bd8, 0x0c7e, 0x0ce7,
+ 0x0ce6, 0x0d0d, 0x0d60, 0x0d61, 0x0d1f, 0x0cdc,
+ 0x0cb6, 0x0cbb, 0x0ce9, 0x0d76, 0x0e69, 0x0f56,
+ 0x100f, 0x1098, 0x10fb, 0x116a, 0x11c4, 0x1196,
+ 0x10b0, 0x0f3e, 0x0dd7, 0x0d17, 0x0ce0, 0x0c5f,
+ 0x0af4, 0x0918, 0x07a8, 0x0690, 0x0595, 0x04ec,
+ 0x0470, 0x040e, 0x03e4, 0x03d7, 0x041f, 0x04ca,
+ 0x0518, 0x04cd, 0x046b, 0x043c, 0x0458, 0x0481,
+ 0x045c, 0x041e, 0x040a, 0x0430, 0x04b8, 0x055b,
+ 0x0588, 0x0521, 0x048d, 0x046c, 0x04e3, 0x0553,
+ 0x0565, 0x0575, 0x05a2, 0x05a9, 0x0587, 0x056a,
+ 0x0545, 0x050f, 0x0504, 0x054b, 0x05ab, 0x05b2,
+ 0x0540, 0x04c5, 0x0486, 0x043f, 0x0401, 0x040c,
+ 0x042d, 0x043d, 0x045c, 0x049c, 0x0506, 0x054d,
+ 0x04f3, 0x041d, 0x037a, 0x0381, 0x0439, 0x0550,
+ 0x0657, 0x0701, 0x0718, 0x0686, 0x05a0, 0x04e9,
+ 0x0462, 0x03ab, 0x029c, 0x0159, 0x0053, 0xffda,
+ 0xff66, 0xfe75, 0xfd63, 0xfc73, 0xfb8e, 0xfae3,
+ 0xfa83, 0xfa58, 0xfa69, 0xfa6a, 0xfa44, 0xfa54,
+ 0xfa73, 0xfa21, 0xf93b, 0xf7cf, 0xf64d, 0xf52f,
+ 0xf435, 0xf315, 0xf20e, 0xf117, 0xefcd, 0xee20,
+ 0xec31, 0xea2a, 0xe86e, 0xe719, 0xe5d6, 0xe499,
+ 0xe387, 0xe293, 0xe1f4, 0xe20c, 0xe2ba, 0xe3a4,
+ 0xe482, 0xe537, 0xe5fc, 0xe6d4, 0xe778, 0xe842,
+ 0xe9a5, 0xeb4b, 0xecd8, 0xee5b, 0xefc1, 0xf0f9,
+ 0xf219, 0xf31f, 0xf40b, 0xf4f1, 0xf5c7, 0xf67e,
+ 0xf723, 0xf7c5, 0xf891, 0xf9a3, 0xfab2, 0xfb83,
+ 0xfc58, 0xfd5d, 0xfe76, 0xff7c, 0x001a, 0x0040,
+ 0x0097, 0x017f, 0x0282, 0x0346, 0x03f8, 0x04e0,
+ 0x060e, 0x072a, 0x07d0, 0x07f7, 0x07ba, 0x074c,
+ 0x070a, 0x0705, 0x071f, 0x0782, 0x0817, 0x0866,
+ 0x088b, 0x08e5, 0x0914, 0x0886, 0x077d, 0x0698,
+ 0x060a, 0x0583, 0x04cc, 0x042d, 0x03c5, 0x0357,
+ 0x030b, 0x0340, 0x03ca, 0x0466, 0x0513, 0x05a9,
+ 0x0610, 0x0663, 0x068c, 0x06ab, 0x073a, 0x082b,
+ 0x08f7, 0x0965, 0x0987, 0x0952, 0x08a0, 0x0771,
+ 0x062b, 0x051e, 0x040f, 0x02ef, 0x0223, 0x019f,
+ 0x0112, 0x00bb, 0x00c3, 0x00b9, 0x0068, 0x0016,
+ 0xffd5, 0xff87, 0xff26, 0xfec7, 0xfe87, 0xfe45,
+ 0xfdeb, 0xfdd4, 0xfe34, 0xfead, 0xff11, 0xff85,
+ 0x000d, 0x00a4, 0x0119, 0x011c, 0x0100, 0x015e,
+ 0x0203, 0x0256, 0x0239, 0x01e1, 0x016e, 0x00ce,
+ 0x0000, 0xff6e, 0xff6e, 0xffb5, 0xffed, 0x0021,
+ 0x0049, 0x0052, 0x004e, 0x0012, 0xff85, 0xfefb,
+ 0xfeb5, 0xfec0, 0xff31, 0xffe4, 0x0078, 0x00ca,
+ 0x00f3, 0x0135, 0x01ca, 0x0297, 0x0344, 0x03a6,
+ 0x03c3, 0x03c4, 0x03f0, 0x0450, 0x0498, 0x04aa,
+ 0x04af, 0x04bf, 0x04de, 0x051c, 0x0591, 0x063a,
+ 0x06b8, 0x068e, 0x05fc, 0x059d, 0x0575, 0x0558,
+ 0x055a, 0x0580, 0x05bf, 0x0603, 0x0623, 0x0652,
+ 0x06e6, 0x07a0, 0x0802, 0x07ea, 0x076c, 0x06d5,
+ 0x068e, 0x067d, 0x0643, 0x0603, 0x05f7, 0x05e6,
+ 0x059a, 0x0511, 0x047a, 0x0438, 0x0420, 0x03b0,
+ 0x0321, 0x02d2, 0x0297, 0x024e, 0x01d6, 0x011a,
+ 0x0068, 0xffbd, 0xfedf, 0xfe30, 0xfdda, 0xfd84,
+ 0xfd4b, 0xfd6f, 0xfda6, 0xfdba, 0xfddb, 0xfe53,
+ 0xff2b, 0xfffb, 0x0071, 0x00d7, 0x015c, 0x01a9,
+ 0x01aa, 0x01a6, 0x0186, 0x0115, 0x007a, 0xffce,
+ 0xff27, 0xfed0, 0xfec8, 0xfeba, 0xfe89, 0xfe37,
+ 0xfdc5, 0xfd38, 0xfc95, 0xfc2e, 0xfc64, 0xfcff,
+ 0xfda0, 0xfe40, 0xfecf, 0xff51, 0xfff7, 0x0092,
+ 0x00e2, 0x0132, 0x01b0, 0x0201, 0x01ff, 0x01ee,
+ 0x020b, 0x024d, 0x025d, 0x0221, 0x01ea, 0x01c4,
+ 0x0199, 0x0193, 0x019f, 0x01ab, 0x0223, 0x030d,
+ 0x03c0, 0x03f2, 0x0400, 0x042e, 0x0452, 0x042d,
+ 0x03ef, 0x03d3, 0x03bd, 0x038f, 0x0365, 0x0360,
+ 0x0381, 0x03ba, 0x03f2, 0x041c, 0x046a, 0x04f7,
+ 0x0545, 0x0512, 0x04e1, 0x04e8, 0x04f3, 0x051c,
+ 0x054b, 0x0535, 0x04ed, 0x0495, 0x0425, 0x0387,
+ 0x02ac, 0x020d, 0x0209, 0x021a, 0x01f5, 0x01d0,
+ 0x0176, 0x00dd, 0x0078, 0x0064, 0x0064, 0x005a,
+ 0x0059, 0x009e, 0x0121, 0x0185, 0x01a2, 0x0189,
+ 0x0166, 0x0189, 0x0204, 0x0285, 0x02d4, 0x0315,
+ 0x0354, 0x0342, 0x02d5, 0x0283, 0x0295, 0x02e4,
+ 0x032a, 0x0342, 0x0345, 0x0343, 0x0322, 0x0300,
+ 0x02f2, 0x02c7, 0x027b, 0x0230, 0x01ea, 0x01ba,
+ 0x019e, 0x019a, 0x01f2, 0x02ac, 0x0379, 0x044d,
+ 0x053e, 0x0628, 0x06cc, 0x0724, 0x0781, 0x0804,
+ 0x0872, 0x08c8, 0x0929, 0x097f, 0x09a8, 0x0978,
+ 0x08ed, 0x0843, 0x0783, 0x06c1, 0x0651, 0x061e,
+ 0x05f4, 0x05e8, 0x05ce, 0x0590, 0x055b, 0x050c,
+ 0x04ab, 0x0470, 0x042a, 0x0400, 0x0442, 0x0476,
+ 0x0452, 0x0416, 0x03c4, 0x0367, 0x0304, 0x0274,
+ 0x0210, 0x022c, 0x026f, 0x02b1, 0x02f0, 0x02f7,
+ 0x02ef, 0x0310, 0x0330, 0x0336, 0x0325, 0x02fd,
+ 0x02ed, 0x0303, 0x02fe, 0x02bd, 0x025b, 0x01ec,
+ 0x017d, 0x012d, 0x011c, 0x015e, 0x01db, 0x021a,
+ 0x01f1, 0x01ee, 0x0230, 0x0231, 0x01fe, 0x01f5,
+ 0x0217, 0x0248, 0x024b, 0x021d, 0x0234, 0x0280,
+ 0x02a8, 0x02b9, 0x0295, 0x0224, 0x01b4, 0x014b,
+ 0x00f8, 0x010b, 0x0150, 0x018b, 0x01d6, 0x020e,
+ 0x021a, 0x0215, 0x01ef, 0x01ab, 0x0171, 0x0163,
+ 0x0191, 0x01d0, 0x0209, 0x0252, 0x0284, 0x027b,
+ 0x0246, 0x01fd, 0x01d8, 0x01e9, 0x0214, 0x0269,
+ 0x02ca, 0x0314, 0x036d, 0x03ae, 0x03a2, 0x0386,
+ 0x036d, 0x034b, 0x0333, 0x0311, 0x02f7, 0x02fe,
+ 0x02bf, 0x0227, 0x01b6, 0x0171, 0x0101, 0x006b,
+ 0xfff0, 0xff9c, 0xff51, 0xff08, 0xfed7, 0xfeae,
+ 0xfe79, 0xfe53, 0xfe47, 0xfe31, 0xfe0f, 0xfe18,
+ 0xfe5a, 0xfe91, 0xfe9a, 0xfe91, 0xfe94, 0xfeae,
+ 0xfebe, 0xfe96, 0xfe49, 0xfe15, 0xfdf5, 0xfdae,
+ 0xfd4b, 0xfd06, 0xfcd9, 0xfca1, 0xfc5f, 0xfc36,
+ 0xfc50, 0xfc88, 0xfc9e, 0xfce0, 0xfd84, 0xfe30,
+ 0xfec3, 0xff41, 0xff89, 0xffc3, 0x0015, 0x0056,
+ 0x0091, 0x00fe, 0x0193, 0x01ff, 0x022d, 0x025e,
+ 0x0290, 0x0294, 0x027e, 0x0246, 0x01fc, 0x01ea,
+ 0x01ec, 0x01fb, 0x0232, 0x0229, 0x01ee, 0x01ea,
+ 0x01ec, 0x01fa, 0x0230, 0x023a, 0x0269, 0x0308,
+ 0x0397, 0x0409, 0x0499, 0x0509, 0x0552, 0x057d,
+ 0x0594, 0x05e7, 0x064a, 0x066a, 0x0698, 0x06fa,
+ 0x0735, 0x0727, 0x06f7, 0x06b0, 0x0647, 0x05de,
+ 0x0595, 0x0557, 0x0520, 0x04f8, 0x04d5, 0x04bc,
+ 0x04a4, 0x047e, 0x045a, 0x0440, 0x042d, 0x03ef,
+ 0x037a, 0x035a, 0x038f, 0x0371, 0x032f, 0x030c,
+ 0x028f, 0x01c4, 0x00f6, 0x0005, 0xff37, 0xfec4,
+ 0xfe51, 0xfdce, 0xfd71, 0xfd36, 0xfd06, 0xfcc5,
+ 0xfc73, 0xfc30, 0xfbf7, 0xfbb4, 0xfb7b, 0xfb80,
+ 0xfba8, 0xfb8d, 0xfb32, 0xfae6, 0xfaa9, 0xfa63,
+ 0xfa26, 0xfa03, 0xf9fd, 0xfa0b, 0xfa2d, 0xfa6a,
+ 0xfaa2, 0xfac8, 0xfaf7, 0xfb29, 0xfb4a, 0xfb67,
+ 0xfba4, 0xfc19, 0xfcaa, 0xfd39, 0xfdbf, 0xfe31,
+ 0xfea0, 0xff0b, 0xff4d, 0xff8a, 0xffef, 0x005d,
+ 0x00bf, 0x010a, 0x0135, 0x014a, 0x0159, 0x0170,
+ 0x0191, 0x01b4, 0x01ea, 0x021f, 0x0240, 0x027b,
+ 0x02ce, 0x030a, 0x0350, 0x03a4, 0x03cc, 0x03cc,
+ 0x03c1, 0x03b7, 0x03c7, 0x03f1, 0x041c, 0x043e,
+ 0x0454, 0x0467, 0x047d, 0x048c, 0x0483, 0x0478,
+ 0x0491, 0x04ab, 0x049e, 0x049d, 0x04ae, 0x04a1,
+ 0x047c, 0x0448, 0x040b, 0x03e5, 0x03d2, 0x03be,
+ 0x03c6, 0x03f9, 0x0423, 0x0421, 0x042e, 0x0450,
+ 0x043c, 0x0421, 0x0449, 0x047e, 0x04ab, 0x04e1,
+ 0x0505, 0x051f, 0x0538, 0x054a, 0x054a, 0x04e8,
+ 0x042f, 0x03a1, 0x0347, 0x0300, 0x02e4, 0x02d1,
+ 0x02c3, 0x02be, 0x0288, 0x0231, 0x01e2, 0x0195,
+ 0x0165, 0x0136, 0x00f9, 0x0103, 0x014b, 0x0177,
+ 0x0170, 0x0154, 0x0141, 0x0118, 0x00c1, 0x0085,
+ 0x005b, 0x000c, 0xffda, 0xffbc, 0xff78, 0xff4b,
+ 0xff35, 0xff06, 0xfef1, 0xfef0, 0xfed0, 0xfeae,
+ 0xfe92, 0xfe65, 0xfe31, 0xfdfe, 0xfdd7, 0xfdae,
+ 0xfd7c, 0xfd5c, 0xfd55, 0xfd57, 0xfd76, 0xfdba,
+ 0xfe19, 0xfe98, 0xff1f, 0xff9b, 0x0013, 0x007c,
+ 0x00c2, 0x0110, 0x0182, 0x01fe, 0x027d, 0x02df,
+ 0x030b, 0x0330, 0x0345, 0x031d, 0x02f9, 0x02de,
+ 0x028b, 0x023f, 0x0228, 0x0207, 0x01d7, 0x019b,
+ 0x0148, 0x0115, 0x00f7, 0x00b6, 0x0077, 0x0061,
+ 0x0069, 0x0084, 0x0099, 0x008c, 0x0063, 0x0036,
+ 0x0002, 0xffaf, 0xff56, 0xff13, 0xfebb, 0xfe51,
+ 0xfe02, 0xfdb2, 0xfd67, 0xfd3c, 0xfcf5, 0xfc87,
+ 0xfc2a, 0xfbd7, 0xfb94, 0xfb87, 0xfb8a, 0xfb67,
+ 0xfb24, 0xfadd, 0xfaa8, 0xfa91, 0xfab3, 0xfb0c,
+ 0xfb71, 0xfbd2, 0xfc29, 0xfc6e, 0xfcd3, 0xfd53,
+ 0xfd91, 0xfda7, 0xfde4, 0xfe1a, 0xfe3b, 0xfe76,
+ 0xfeae, 0xfeca, 0xfed4, 0xfec5, 0xfea6, 0xfe78,
+ 0xfe2d, 0xfde8, 0xfdbd, 0xfda2, 0xfdb3, 0xfde0,
+ 0xfdea, 0xfde3, 0xfdeb, 0xfddf, 0xfdbf, 0xfdbf,
+ 0xfdca, 0xfda3, 0xfd74, 0xfd81, 0xfdb8, 0xfdfd,
+ 0xfe5b, 0xfec1, 0xfefc, 0xff05, 0xfefe, 0xfef9,
+ 0xfedd, 0xfeaf, 0xfe79, 0xfe22, 0xfdcc, 0xfda8,
+ 0xfd8f, 0xfd7d, 0xfdaf, 0xfe07, 0xfe53, 0xfead,
+ 0xff1c, 0xff9b, 0x002d, 0x00b1, 0x0109, 0x014d,
+ 0x0183, 0x0199, 0x01a6, 0x01c8, 0x01f0, 0x0214,
+ 0x0233, 0x023b, 0x022c, 0x0202, 0x01c4, 0x01b3,
+ 0x01d2, 0x01d3, 0x01ae, 0x017a, 0x0144, 0x0135,
+ 0x0140, 0x0151, 0x0182, 0x01a9, 0x019b, 0x0179,
+ 0x0170, 0x01a3, 0x01ec, 0x01f4, 0x01e8, 0x01e6,
+ 0x01a9, 0x016d, 0x0154, 0x0104, 0x009e, 0x0056,
+ 0xfffd, 0xffb9, 0xffb2, 0xffbe, 0xffe8, 0x0024,
+ 0x0039, 0x004b, 0x0084, 0x00c0, 0x0102, 0x016b,
+ 0x01d4, 0x0207, 0x0221, 0x0243, 0x0261, 0x028c,
+ 0x02c5, 0x02e4, 0x02e7, 0x02c7, 0x027c, 0x0237,
+ 0x01fc, 0x01b6, 0x0194, 0x018f, 0x016d, 0x0146,
+ 0x0147, 0x0169, 0x0199, 0x01c6, 0x01f0, 0x022f,
+ 0x0291, 0x030b, 0x038b, 0x03fc, 0x044d, 0x048c,
+ 0x04dd, 0x0523, 0x052f, 0x0520, 0x0513, 0x04f0,
+ 0x04a7, 0x0426, 0x0385, 0x02fd, 0x0289, 0x0236,
+ 0x0225, 0x022e, 0x0224, 0x0219, 0x0214, 0x0206,
+ 0x01d1, 0x0173, 0x0116, 0x00ae, 0x003b, 0x0000,
+ 0xfffd, 0xfff5, 0xffd6, 0xff99, 0xff4d, 0xff01,
+ 0xfeaa, 0xfe6d, 0xfe45, 0xfdec, 0xfd88, 0xfd51,
+ 0xfd10, 0xfcc5, 0xfc9a, 0xfc78, 0xfc6c, 0xfc85,
+ 0xfc88, 0xfc6b, 0xfc49, 0xfc26, 0xfbfd, 0xfbcd,
+ 0xfbc3, 0xfbe5, 0xfbd5, 0xfb9c, 0xfb8d, 0xfb7f,
+ 0xfb68, 0xfb83, 0xfba0, 0xfbb1, 0xfbf7, 0xfc52,
+ 0xfc9d, 0xfce9, 0xfd30, 0xfd6a, 0xfdab, 0xfe06,
+ 0xfe6c, 0xfe9e, 0xfec0, 0xff1b, 0xff74, 0xff96,
+ 0xff9c, 0xff81, 0xff58, 0xff45, 0xff2d, 0xff02,
+ 0xfeda, 0xfeca, 0xfeda, 0xfedb, 0xfecc, 0xfef2,
+ 0xff21, 0xff38, 0xffa9, 0x006f, 0x0108, 0x0163,
+ 0x01b4, 0x0209, 0x025f, 0x0293, 0x02b8, 0x0303,
+ 0x0345, 0x035a, 0x0378, 0x0383, 0x034b, 0x0325,
+ 0x032c, 0x0324, 0x0331, 0x0374, 0x03a6, 0x03cc,
+ 0x0403, 0x041f, 0x041c, 0x041e, 0x0427, 0x0437,
+ 0x0446, 0x044a, 0x0448, 0x042b, 0x03f3, 0x03b5,
+ 0x0366, 0x0314, 0x02ec, 0x02da, 0x02ba, 0x0282,
+ 0x0237, 0x01ff, 0x0202, 0x0230, 0x0256, 0x0266,
+ 0x025f, 0x0228, 0x01d3, 0x018e, 0x0159, 0x0133,
+ 0x012b, 0x0125, 0x0125, 0x014b, 0x0169, 0x0166,
+ 0x014d, 0x010a, 0x00b6, 0x0070, 0x0027, 0x0000,
+ 0x0021, 0x0060, 0x00b1, 0x0103, 0x012c, 0x0145,
+ 0x015e, 0x0167, 0x0186, 0x01cc, 0x01fd, 0x020d,
+ 0x0225, 0x024b, 0x026e, 0x028f, 0x02bf, 0x02f2,
+ 0x0306, 0x0304, 0x030c, 0x030e, 0x0307, 0x031f,
+ 0x0335, 0x0321, 0x031e, 0x0343, 0x035c, 0x0374,
+ 0x039d, 0x03ba, 0x03ee, 0x0441, 0x0474, 0x0499,
+ 0x04d6, 0x04fa, 0x04fa, 0x0505, 0x0508, 0x04ff,
+ 0x0507, 0x051f, 0x0549, 0x0578, 0x0587, 0x0598,
+ 0x05b5, 0x05ae, 0x05af, 0x05d6, 0x05d8, 0x05ce,
+ 0x05f7, 0x061e, 0x063c, 0x0660, 0x064d, 0x0616,
+ 0x05fb, 0x05e2, 0x05bc, 0x0595, 0x054a, 0x04d0,
+ 0x0454, 0x03e9, 0x037c, 0x0316, 0x02c1, 0x0260,
+ 0x0210, 0x0203, 0x01f2, 0x01b6, 0x0184, 0x0146,
+ 0x00f0, 0x00af, 0x0063, 0x0000, 0xffbc, 0xff9f,
+ 0xff94, 0xff7e, 0xff5e, 0xff5c, 0xff4f, 0xff25,
+ 0xff1d, 0xff17, 0xfee4, 0xfeb7, 0xfe8d, 0xfe59,
+ 0xfe40, 0xfe34, 0xfe30, 0xfe43, 0xfe66, 0xfe9c,
+ 0xfed2, 0xff0a, 0xff7d, 0x000b, 0x008b, 0x011c,
+ 0x0198, 0x01d1, 0x01fb, 0x021e, 0x0209, 0x01d8,
+ 0x01ba, 0x01a3, 0x0184, 0x0165, 0x013d, 0x010a,
+ 0x00d0, 0x0073, 0x000a, 0xffd2, 0xffad, 0xff95,
+ 0xffbe, 0xfff2, 0x0015, 0x0063, 0x00b7, 0x0109,
+ 0x0193, 0x021e, 0x0276, 0x02b3, 0x02d1, 0x02e3,
+ 0x02eb, 0x02aa, 0x0237, 0x01e9, 0x01c4, 0x01a9,
+ 0x01a6, 0x01d2, 0x020a, 0x022a, 0x0256, 0x028e,
+ 0x02b8, 0x02e5, 0x0310, 0x033b, 0x0377, 0x038d,
+ 0x0377, 0x0371, 0x036c, 0x035e, 0x035c, 0x0362,
+ 0x0384, 0x03ae, 0x03b4, 0x03c4, 0x03d7, 0x03bf,
+ 0x03c1, 0x03ee, 0x0403, 0x0406, 0x03fe, 0x03e5,
+ 0x03d9, 0x03ca, 0x03a5, 0x037f, 0x0363, 0x0366,
+ 0x0386, 0x038d, 0x036d, 0x0333, 0x02c8, 0x0247,
+ 0x01ec, 0x01c3, 0x01af, 0x0197, 0x0172, 0x014d,
+ 0x0130, 0x0101, 0x00bf, 0x009a, 0x00a1, 0x00be,
+ 0x00dd, 0x00ee, 0x00f2, 0x00e8, 0x00be, 0x0080,
+ 0x0040, 0x0009, 0xffe8, 0xffc6, 0xffa5, 0xffa7,
+ 0xffaf, 0xffa8, 0xffa5, 0xff86, 0xff70, 0xffa1,
+ 0xffcc, 0xffce, 0xfff5, 0x0028, 0x0058, 0x00b5,
+ 0x010b, 0x0146, 0x01a5, 0x021d, 0x0289, 0x02ec,
+ 0x0330, 0x0355, 0x0375, 0x038d, 0x03a9, 0x03c5,
+ 0x03cd, 0x03da, 0x03ea, 0x03cd, 0x0397, 0x0372,
+ 0x0345, 0x030a, 0x02ed, 0x02fc, 0x0330, 0x036d,
+ 0x0383, 0x0368, 0x033c, 0x0323, 0x031b, 0x0307,
+ 0x02f8, 0x02f1, 0x02cd, 0x02b0, 0x02bf, 0x02ac,
+ 0x026f, 0x0247, 0x021e, 0x01ff, 0x0207, 0x01fc,
+ 0x01dc, 0x01d0, 0x019b, 0x012e, 0x00cd, 0x0087,
+ 0x0042, 0x0008, 0xfff2, 0xffe3, 0xffca, 0xffce,
+ 0xffee, 0x0009, 0x0056, 0x00df, 0x0160, 0x01c1,
+ 0x01fc, 0x020c, 0x0210, 0x0213, 0x0214, 0x021d,
+ 0x0225, 0x0228, 0x0217, 0x01e1, 0x01a5, 0x016a,
+ 0x012c, 0x0114, 0x0118, 0x011d, 0x0146, 0x018a,
+ 0x01c4, 0x01fe, 0x0228, 0x0228, 0x020d, 0x01da,
+ 0x019d, 0x0171, 0x013a, 0x00df, 0x0088, 0x0056,
+ 0x0029, 0x0003, 0x0007, 0x000b, 0xfffe, 0x0008,
+ 0x0019, 0x001e, 0x0038, 0x0055, 0x0079, 0x00b3,
+ 0x00ce, 0x00df, 0x0111, 0x0136, 0x0147, 0x0154,
+ 0x0154, 0x0163, 0x0177, 0x0185, 0x01c3, 0x0214,
+ 0x024c, 0x02a4, 0x030d, 0x0362, 0x03ba, 0x03f0,
+ 0x0412, 0x045f, 0x04a8, 0x04cc, 0x04ec, 0x04fc,
+ 0x04ef, 0x04cc, 0x0494, 0x0450, 0x03f9, 0x03a0,
+ 0x0365, 0x0335, 0x030e, 0x0315, 0x0332, 0x0355,
+ 0x0388, 0x03af, 0x03d3, 0x0404, 0x0414, 0x03ed,
+ 0x03b4, 0x037e, 0x034c, 0x0324, 0x0302, 0x02e2,
+ 0x02c6, 0x02ac, 0x0287, 0x0250, 0x0211, 0x01d6,
+ 0x0198, 0x014e, 0x0112, 0x00f8, 0x00e8, 0x00d3,
+ 0x00d0, 0x00d7, 0x00d2, 0x00db, 0x0104, 0x013c,
+ 0x0170, 0x01a8, 0x01e9, 0x0210, 0x0207, 0x01ef,
+ 0x01cc, 0x01a3, 0x018b, 0x0166, 0x012f, 0x011e,
+ 0x0135, 0x0157, 0x0178, 0x018c, 0x019f, 0x01a6,
+ 0x017f, 0x014c, 0x0124, 0x00f6, 0x00f3, 0x0128,
+ 0x0166, 0x01b5, 0x01ee, 0x01dd, 0x01d4, 0x01f3,
+ 0x01fb, 0x01fd, 0x0207, 0x01f1, 0x01d7, 0x01d0,
+ 0x01ba, 0x019d, 0x0197, 0x0199, 0x019c, 0x01bb,
+ 0x01f2, 0x0213, 0x0218, 0x0218, 0x020c, 0x01e9,
+ 0x01a8, 0x0148, 0x00f6, 0x00c4, 0x0088, 0x003e,
+ 0x0008, 0xffdd, 0xffa2, 0xff5b, 0xff1d, 0xfef0,
+ 0xfeda, 0xfeea, 0xff0e, 0xff17, 0xff15, 0xff27,
+ 0xff35, 0xff31, 0xff14, 0xfedd, 0xfebe, 0xfec0,
+ 0xfeb9, 0xfeb3, 0xfebf, 0xfecc, 0xfed5, 0xfedd,
+ 0xfeff, 0xff3c, 0xff5d, 0xff7f, 0xffca, 0xfffd,
+ 0x0019, 0x005a, 0x00a0, 0x00e0, 0x0129, 0x0149,
+ 0x013f, 0x0134, 0x012a, 0x013a, 0x0179, 0x01d5,
+ 0x0236, 0x027e, 0x02b4, 0x02de, 0x02d1, 0x02a2,
+ 0x0281, 0x024b, 0x0205, 0x01dd, 0x01ba, 0x0185,
+ 0x014f, 0x012c, 0x0123, 0x0115, 0x00ed, 0x00d8,
+ 0x00ec, 0x0104, 0x010c, 0x0111, 0x0125, 0x013a,
+ 0x014a, 0x0175, 0x01ad, 0x01da, 0x0213, 0x0241,
+ 0x024a, 0x0247, 0x022d, 0x01ff, 0x01ec, 0x01d0,
+ 0x01a8, 0x01a8, 0x01ab, 0x0197, 0x01bc, 0x021f,
+ 0x027e, 0x02cf, 0x031f, 0x0373, 0x03c9, 0x0411,
+ 0x0434, 0x0424, 0x03ef, 0x03ad, 0x0364, 0x0323,
+ 0x02f6, 0x02d3, 0x02b9, 0x029f, 0x0271, 0x023c,
+ 0x0219, 0x0205, 0x01f5, 0x01dc, 0x01bd, 0x0195,
+ 0x0153, 0x010c, 0x00d4, 0x00aa, 0x009d, 0x00a8,
+ 0x00be, 0x00e8, 0x010a, 0x0109, 0x0106, 0x0113,
+ 0x011c, 0x0116, 0x00fc, 0x00e5, 0x00fa, 0x0132,
+ 0x0167, 0x018d, 0x01a1, 0x01a1, 0x0191, 0x017d,
+ 0x0174, 0x0175, 0x0182, 0x01a0, 0x01c7, 0x01f3,
+ 0x0221, 0x0250, 0x0280, 0x02a2, 0x02a8, 0x02b2,
+ 0x02d3, 0x02e4, 0x02d3, 0x02cf, 0x02e0, 0x02d6,
+ 0x02b4, 0x02a3, 0x0296, 0x028a, 0x029f, 0x02c9,
+ 0x02e8, 0x02f0, 0x02e6, 0x02de, 0x02ce, 0x02b7,
+ 0x02b6, 0x02b7, 0x02a8, 0x02a5, 0x02b6, 0x02db,
+ 0x0313, 0x0339, 0x0353, 0x036e, 0x0374, 0x037e,
+ 0x0385, 0x0372, 0x037e, 0x03a4, 0x03b1, 0x03bc,
+ 0x03b1, 0x0389, 0x037f, 0x036e, 0x033b, 0x031d,
+ 0x02eb, 0x0291, 0x023c, 0x01ea, 0x01a6, 0x0169,
+ 0x0110, 0x00ca, 0x0095, 0x004b, 0x0017, 0xfff5,
+ 0xffd0, 0xffcc, 0xffaf, 0xff6b, 0xff39, 0xfee0,
+ 0xfe51, 0xfdbd, 0xfd10, 0xfc7c, 0xfc2e, 0xfbe7,
+ 0xfbb8, 0xfbb3, 0xfba1, 0xfb9c, 0xfbab, 0xfba4,
+ 0xfbb7, 0xfbe5, 0xfc00, 0xfc1f, 0xfc32, 0xfc21,
+ 0xfc1a, 0xfc0f, 0xfbeb, 0xfbe4, 0xfbf4, 0xfbf5,
+ 0xfbfc, 0xfc05, 0xfbf1, 0xfbe6, 0xfc00, 0xfc1c,
+ 0xfc41, 0xfc7e, 0xfcb4, 0xfcef, 0xfd4c, 0xfd9f,
+ 0xfdcd, 0xfde3, 0xfdef, 0xfdff, 0xfdff, 0xfdde,
+ 0xfdbf, 0xfda2, 0xfd7b, 0xfd6e, 0xfd79, 0xfd91,
+ 0xfdc2, 0xfe00, 0xfe3d, 0xfe65, 0xfe6c, 0xfe8e,
+ 0xfed3, 0xfefc, 0xff21, 0xff65, 0xffa9, 0xffe7,
+ 0x0015, 0x0036, 0x006c, 0x00a7, 0x00cf, 0x00f2,
+ 0x0110, 0x012e, 0x0153, 0x0171, 0x0195, 0x01c3,
+ 0x01e8, 0x021a, 0x0262, 0x02b3, 0x0317, 0x0378,
+ 0x03c3, 0x0407, 0x0431, 0x0433, 0x0438, 0x0449,
+ 0x0454, 0x0457, 0x044f, 0x044d, 0x0465, 0x0482,
+ 0x048c, 0x0494, 0x04a0, 0x049c, 0x048c, 0x047b,
+ 0x045a, 0x042c, 0x0408, 0x03e5, 0x03b3, 0x0389,
+ 0x037e, 0x037d, 0x0370, 0x0361, 0x035c, 0x0344,
+ 0x0311, 0x02d4, 0x028d, 0x0240, 0x01ef, 0x0190,
+ 0x012f, 0x00d5, 0x007f, 0x0050, 0x0049, 0x0035,
+ 0x0023, 0x0041, 0x0071, 0x0090, 0x00a4, 0x00c8,
+ 0x00f4, 0x00fb, 0x00e2, 0x00d2, 0x00c7, 0x00b4,
+ 0x00af, 0x00b1, 0x00b1, 0x00c0, 0x00de, 0x0110,
+ 0x0157, 0x018a, 0x01a4, 0x01cb, 0x01fd, 0x022f,
+ 0x027a, 0x02dc, 0x033a, 0x0388, 0x03b8, 0x03c5,
+ 0x03c9, 0x03c9, 0x03bf, 0x03c1, 0x03d5, 0x03f2,
+ 0x040c, 0x0409, 0x03f5, 0x03f4, 0x0409, 0x042b,
+ 0x045f, 0x049f, 0x04de, 0x0509, 0x0528, 0x054a,
+ 0x054d, 0x052e, 0x0516, 0x04fb, 0x04dd, 0x04db,
+ 0x04c4, 0x046f, 0x0407, 0x03a1, 0x0341, 0x02f1,
+ 0x0292, 0x0223, 0x01d0, 0x01a2, 0x018d, 0x0184,
+ 0x016f, 0x0150, 0x0132, 0x011f, 0x010c, 0x00e9,
+ 0x00db, 0x00e7, 0x00e5, 0x00ee, 0x0104, 0x00ea,
+ 0x00cf, 0x00e7, 0x00ed, 0x00e2, 0x00ed, 0x00df,
+ 0x00b2, 0x0088, 0x0049, 0xfffe, 0xffb8, 0xff65,
+ 0xff19, 0xfee1, 0xfeb6, 0xfeb6, 0xfed6, 0xfeef,
+ 0xff16, 0xff3e, 0xff4d, 0xff66, 0xff8d, 0xffa5,
+ 0xffb2, 0xffa4, 0xff71, 0xff31, 0xfeef, 0xfeb5,
+ 0xfe93, 0xfe6c, 0xfe28, 0xfddc, 0xfd97, 0xfd68,
+ 0xfd59, 0xfd50, 0xfd49, 0xfd59, 0xfd6d, 0xfd73,
+ 0xfd87, 0xfdb5, 0xfdfe, 0xfe63, 0xfeca, 0xff03,
+ 0xff07, 0xfefd, 0xff00, 0xfefc, 0xfedc, 0xfead,
+ 0xfe7d, 0xfe56, 0xfe42, 0xfe44, 0xfe64, 0xfe9e,
+ 0xfee3, 0xff26, 0xff61, 0xff98, 0xffe1, 0x0039,
+ 0x009b, 0x010a, 0x0171, 0x01b1, 0x01da, 0x020c,
+ 0x023c, 0x0254, 0x025c, 0x0256, 0x023b, 0x022b,
+ 0x022f, 0x0215, 0x01e9, 0x01d6, 0x01b8, 0x018c,
+ 0x0178, 0x0171, 0x0173, 0x0172, 0x015b, 0x014e,
+ 0x013f, 0x0100, 0x00c8, 0x00af, 0x0089, 0x006b,
+ 0x0055, 0x002c, 0xfffc, 0xffc8, 0xff9e, 0xff8e,
+ 0xff71, 0xff51, 0xff4f, 0xff58, 0xff73, 0xff93,
+ 0xff8c, 0xff84, 0xff93, 0xffa8, 0xffcd, 0xfff3,
+ 0x0014, 0x0047, 0x0068, 0x0070, 0x0084, 0x008b,
+ 0x0084, 0x007b, 0x005d, 0x003e, 0x0029, 0x0015,
+ 0x0015, 0x000c, 0xfff0, 0xffff, 0x0021, 0x002b,
+ 0x0040, 0x0056, 0x0069, 0x0097, 0x00b9, 0x00cd,
+ 0x0104, 0x013f, 0x0174, 0x01b2, 0x01c7, 0x01af,
+ 0x01a2, 0x019b, 0x0183, 0x0172, 0x0174, 0x0174,
+ 0x0176, 0x0184, 0x018e, 0x01a5, 0x01d8, 0x0201,
+ 0x0217, 0x023c, 0x025c, 0x0271, 0x029a, 0x02bc,
+ 0x02b7, 0x02af, 0x02bf, 0x02cd, 0x02c4, 0x02b5,
+ 0x02aa, 0x028d, 0x026d, 0x025b, 0x0240, 0x022e,
+ 0x0233, 0x0215, 0x01db, 0x01c0, 0x01bc, 0x01be,
+ 0x01d1, 0x01f9, 0x0233, 0x026b, 0x0295, 0x02b8,
+ 0x02c4, 0x02c5, 0x02d3, 0x02cd, 0x02b9, 0x02c2,
+ 0x02d6, 0x02e4, 0x030f, 0x034d, 0x0377, 0x038b,
+ 0x0390, 0x0392, 0x039c, 0x03af, 0x03ab, 0x0377,
+ 0x0336, 0x0311, 0x02f6, 0x02e1, 0x02e8, 0x02f9,
+ 0x02fe, 0x02f9, 0x02eb, 0x02cf, 0x02ac, 0x0299,
+ 0x0292, 0x027a, 0x025c, 0x025a, 0x0268, 0x0273,
+ 0x0274, 0x026c, 0x0266, 0x026c, 0x027b, 0x0287,
+ 0x028d, 0x029a, 0x02a1, 0x027f, 0x0245, 0x021a,
+ 0x01f5, 0x01cc, 0x01b3, 0x01a3, 0x0181, 0x0157,
+ 0x013d, 0x0126, 0x0115, 0x0123, 0x0135, 0x013e,
+ 0x015c, 0x017d, 0x0187, 0x0192, 0x019d, 0x0198,
+ 0x018d, 0x017c, 0x017a, 0x018f, 0x01a4, 0x01bb,
+ 0x01bc, 0x0180, 0x013a, 0x0105, 0x00bd, 0x0084,
+ 0x0071, 0x0060, 0x005f, 0x0075, 0x008d, 0x00b4,
+ 0x00d9, 0x00f0, 0x011f, 0x0157, 0x0169, 0x0167,
+ 0x016a, 0x0172, 0x0176, 0x016a, 0x015a, 0x0149,
+ 0x0126, 0x0104, 0x00f0, 0x00d6, 0x00c6, 0x00cb,
+ 0x00c4, 0x00be, 0x00c2, 0x00b0, 0x009c, 0x00a8,
+ 0x00b7, 0x00c5, 0x00df, 0x00ee, 0x0105, 0x013a,
+ 0x0153, 0x0135, 0x010e, 0x00ed, 0x00cd, 0x00c5,
+ 0x00de, 0x00fd, 0x011a, 0x014a, 0x017b, 0x018c,
+ 0x0192, 0x019c, 0x0199, 0x0193, 0x019d, 0x01a6,
+ 0x01a0, 0x0196, 0x0191, 0x0190, 0x01a1, 0x01b6,
+ 0x01ac, 0x01a1, 0x01b8, 0x01e1, 0x0225, 0x0280,
+ 0x02b2, 0x02c0, 0x02cd, 0x02c8, 0x02c3, 0x02d1,
+ 0x02da, 0x02f0, 0x0312, 0x0329, 0x0343, 0x034e,
+ 0x0340, 0x033b, 0x0332, 0x0325, 0x0327, 0x031d,
+ 0x0322, 0x0345, 0x034e, 0x034b, 0x035b, 0x035d,
+ 0x0354, 0x033d, 0x0313, 0x02f3, 0x02cb, 0x028b,
+ 0x0259, 0x022a, 0x01f0, 0x01ac, 0x015e, 0x0133,
+ 0x012f, 0x011c, 0x0100, 0x00e0, 0x00ab, 0x0074,
+ 0x0028, 0xffcb, 0xff96, 0xff7a, 0xff50, 0xff37,
+ 0xff37, 0xff37, 0xff37, 0xff3a, 0xff49, 0xff6b,
+ 0xff9d, 0xffce, 0xffe6, 0xffef, 0x0001, 0x0013,
+ 0x0013, 0x0004, 0xffed, 0xffd8, 0xffc3, 0xffb2,
+ 0xffa8, 0xff99, 0xffa1, 0xffdb, 0x0021, 0x0062,
+ 0x00a7, 0x00e2, 0x010c, 0x0121, 0x0119, 0x010c,
+ 0x011e, 0x015b, 0x01a1, 0x01d5, 0x01f2, 0x01ed,
+ 0x01c8, 0x01a7, 0x018e, 0x016f, 0x0158, 0x0154,
+ 0x0166, 0x018f, 0x01b9, 0x01d5, 0x01e4, 0x01e8,
+ 0x01ea, 0x01ed, 0x01f0, 0x01ec, 0x01dc, 0x01c1,
+ 0x019b, 0x016f, 0x015a, 0x0164, 0x0184, 0x01b8,
+ 0x01f2, 0x0236, 0x0283, 0x02ba, 0x02e8, 0x0330,
+ 0x0379, 0x03c4, 0x0427, 0x0486, 0x04cf, 0x0507,
+ 0x0526, 0x052d, 0x0533, 0x0544, 0x054f, 0x0555,
+ 0x056b, 0x057c, 0x0582, 0x0586, 0x056c, 0x0552,
+ 0x0562, 0x0568, 0x0558, 0x0550, 0x0521, 0x04d4,
+ 0x048e, 0x043a, 0x03f9, 0x03d7, 0x03b5, 0x03af,
+ 0x03a1, 0x0359, 0x031e, 0x02f4, 0x02b4, 0x028c,
+ 0x026a, 0x0226, 0x01db, 0x017c, 0x0114, 0x00c4,
+ 0x0066, 0x0010, 0xfff6, 0xffe5, 0xffcd, 0xffca,
+ 0xffce, 0xffd7, 0xffef, 0x0003, 0x001e, 0x004c,
+ 0x007a, 0x009f, 0x00d6, 0x0122, 0x015d, 0x0176,
+ 0x0184, 0x0186, 0x0176, 0x015d, 0x013d, 0x011a,
+ 0x0100, 0x00e1, 0x00bb, 0x00ac, 0x00ba, 0x00da,
+ 0x011c, 0x0179, 0x01c3, 0x01ff, 0x0240, 0x025f,
+ 0x0272, 0x029d, 0x02b3, 0x02c7, 0x02fb, 0x0311,
+ 0x030f, 0x0329, 0x0330, 0x0322, 0x0328, 0x032b,
+ 0x0333, 0x0358, 0x037a, 0x0391, 0x0396, 0x037c,
+ 0x036b, 0x037a, 0x0393, 0x03b9, 0x03e1, 0x03f6,
+ 0x0401, 0x03fb, 0x03e5, 0x03c7, 0x03a3, 0x0385,
+ 0x0374, 0x0357, 0x0331, 0x0320, 0x0311, 0x02e7,
+ 0x02bd, 0x02b1, 0x02b0, 0x02b8, 0x02d5, 0x02f2,
+ 0x030e, 0x033d, 0x0368, 0x0377, 0x0377, 0x0373,
+ 0x0365, 0x034b, 0x031d, 0x02e0, 0x02a1, 0x0277,
+ 0x025d, 0x022d, 0x01ff, 0x01f7, 0x01f1, 0x01df,
+ 0x01da, 0x01ca, 0x01aa, 0x0187, 0x0146, 0x00ec,
+ 0x0098, 0x004a, 0x001a, 0x000d, 0xfff7, 0xffc8,
+ 0xff7e, 0xff18, 0xfeb5, 0xfe65, 0xfe21, 0xfde5,
+ 0xfd9b, 0xfd51, 0xfd27, 0xfd15, 0xfd21, 0xfd46,
+ 0xfd5e, 0xfd7b, 0xfda8, 0xfdbe, 0xfddf, 0xfe22,
+ 0xfe4e, 0xfe62, 0xfe74, 0xfe77, 0xfe71, 0xfe60,
+ 0xfe37, 0xfe1b, 0xfe10, 0xfe06, 0xfe10, 0xfe20,
+ 0xfe28, 0xfe50, 0xfe92, 0xfecb, 0xff0a, 0xff55,
+ 0xff93, 0xffc8, 0x0006, 0x004a, 0x0094, 0x00e2,
+ 0x0131, 0x0194, 0x01fe, 0x025c, 0x02c7, 0x0334,
+ 0x0373, 0x0394, 0x03a9, 0x03a5, 0x03a9, 0x03bd,
+ 0x03ca, 0x03e6, 0x0402, 0x040a, 0x042c, 0x0470,
+ 0x04aa, 0x04c5, 0x04c6, 0x04c8, 0x04d8, 0x04d7,
+ 0x04c5, 0x04b0, 0x049d, 0x0497, 0x0496, 0x048d,
+ 0x0487, 0x047b, 0x046f, 0x0460, 0x0435, 0x0415,
+ 0x040e, 0x03fa, 0x03e1, 0x03c9, 0x03a4, 0x038e,
+ 0x037c, 0x0365, 0x0363, 0x0356, 0x0343, 0x035c,
+ 0x0367, 0x035a, 0x0366, 0x0363, 0x0348, 0x0339,
+ 0x0326, 0x0321, 0x0334, 0x033c, 0x033e, 0x0336,
+ 0x0328, 0x0349, 0x0380, 0x0391, 0x0385, 0x0361,
+ 0x0325, 0x02eb, 0x02bb, 0x02a2, 0x02a4, 0x02b6,
+ 0x02e4, 0x0317, 0x0311, 0x02e3, 0x02b2, 0x026f,
+ 0x0222, 0x01f1, 0x01e8, 0x01ee, 0x01f2, 0x01ec,
+ 0x01dd, 0x01c8, 0x01b3, 0x01a8, 0x01a3, 0x0198,
+ 0x018f, 0x018d, 0x0186, 0x017f, 0x0180, 0x0169,
+ 0x0148, 0x0135, 0x011a, 0x0102, 0x00f8, 0x00d9,
+ 0x00b8, 0x00b5, 0x00bc, 0x00c4, 0x00ca, 0x00c5,
+ 0x00d1, 0x00f0, 0x010e, 0x0125, 0x012c, 0x0125,
+ 0x0119, 0x0109, 0x00fc, 0x00e7, 0x00d1, 0x00e9,
+ 0x0117, 0x012c, 0x0149, 0x017b, 0x0197, 0x01a2,
+ 0x01a5, 0x0198, 0x0193, 0x0190, 0x017e, 0x0179,
+ 0x017e, 0x016d, 0x0153, 0x0141, 0x0129, 0x0117,
+ 0x0111, 0x0101, 0x00f2, 0x00fb, 0x0108, 0x010a,
+ 0x0104, 0x00f5, 0x00df, 0x00ba, 0x0072, 0x0031,
+ 0x0023, 0x0029, 0x002e, 0x003f, 0x0051, 0x005f,
+ 0x007b, 0x009b, 0x00b1, 0x00c4, 0x00dd, 0x00e6,
+ 0x00cb, 0x00ac, 0x009a, 0x0077, 0x0049, 0x0027,
+ 0x000c, 0xfffb, 0xfffb, 0xfffc, 0xfffc, 0x0003,
+ 0x000e, 0x000d, 0xfff0, 0xffcb, 0xffb7, 0xff97,
+ 0xff64, 0xff34, 0xff0f, 0xfefe, 0xff0c, 0xff39,
+ 0xff7f, 0xffbb, 0xffdc, 0xfff7, 0xfff7, 0xffc8,
+ 0xff91, 0xff65, 0xff49, 0xff4f, 0xff59, 0xff5d,
+ 0xff81, 0xffc6, 0x000e, 0x0059, 0x009f, 0x00cf,
+ 0x00e9, 0x00fb, 0x010c, 0x0113, 0x0104, 0x00e8,
+ 0x00c4, 0x008e, 0x0047, 0x0005, 0xffdd, 0xffcb,
+ 0xffd7, 0x0002, 0x002d, 0x0044, 0x004f, 0x005d,
+ 0x007f, 0x00a8, 0x00c5, 0x00eb, 0x010e, 0x0117,
+ 0x011d, 0x0124, 0x0128, 0x0137, 0x0142, 0x0148,
+ 0x0151, 0x0152, 0x0164, 0x0190, 0x01a6, 0x01ab,
+ 0x01ab, 0x019d, 0x01a2, 0x01be, 0x01c0, 0x01ac,
+ 0x0192, 0x0186, 0x01a7, 0x01d2, 0x01ea, 0x0210,
+ 0x023d, 0x0260, 0x0288, 0x02a6, 0x02b9, 0x02c4,
+ 0x02ac, 0x0287, 0x027b, 0x0272, 0x0264, 0x0265,
+ 0x0277, 0x0295, 0x02ba, 0x02e3, 0x030f, 0x0330,
+ 0x0346, 0x0369, 0x0398, 0x03c1, 0x03d6, 0x03cc,
+ 0x03a3, 0x0370, 0x0341, 0x031f, 0x0308, 0x02f1,
+ 0x02e7, 0x02f6, 0x02f8, 0x02e1, 0x02d5, 0x02c6,
+ 0x0298, 0x0267, 0x0224, 0x01b9, 0x0153, 0x00ef,
+ 0x0082, 0x003b, 0x0020, 0x0010, 0x000f, 0x0014,
+ 0x0015, 0x0017, 0x000e, 0xfff7, 0xffdd, 0xffb9,
+ 0xff8e, 0xff69, 0xff51, 0xff50, 0xff56, 0xff5e,
+ 0xff8a, 0xffde, 0x003a, 0x009b, 0x00f3, 0x012c,
+ 0x014a, 0x0152, 0x0139, 0x00ff, 0x00c8, 0x00a5,
+ 0x0081, 0x005f, 0x0056, 0x004f, 0x0049, 0x006b,
+ 0x00b2, 0x00ff, 0x013b, 0x0150, 0x0144, 0x0135,
+ 0x0132, 0x013a, 0x0135, 0x010e, 0x00db, 0x00bb,
+ 0x00ac, 0x00a6, 0x00b4, 0x00d0, 0x00d8, 0x00cc,
+ 0x00db, 0x0105, 0x011e, 0x0124, 0x0134, 0x0145,
+ 0x0140, 0x012b, 0x0115, 0x00fb, 0x00dc, 0x00c1,
+ 0x00ac, 0x00a4, 0x00bf, 0x00e6, 0x0107, 0x013a,
+ 0x017b, 0x01a5, 0x01be, 0x01c7, 0x01ad, 0x0184,
+ 0x0151, 0x010a, 0x00d9, 0x00d1, 0x00db, 0x0103,
+ 0x0147, 0x0187, 0x01bf, 0x01ec, 0x0208, 0x021e,
+ 0x0226, 0x0220, 0x0224, 0x0222, 0x0208, 0x01f8,
+ 0x01fc, 0x0208, 0x0210, 0x01fe, 0x01dc, 0x01c5,
+ 0x01bc, 0x01be, 0x01ce, 0x01df, 0x01e2, 0x01cd,
+ 0x01a5, 0x016d, 0x011a, 0x00c0, 0x0081, 0x0062,
+ 0x006c, 0x00a0, 0x00d9, 0x0109, 0x012d, 0x012b,
+ 0x0108, 0x00d6, 0x009e, 0x005f, 0x000e, 0xffb0,
+ 0xff59, 0xff0c, 0xfed5, 0xfeb9, 0xfeb1, 0xfecf,
+ 0xff08, 0xff37, 0xff6a, 0xffa3, 0xffda, 0x001b,
+ 0x0042, 0x002b, 0x0006, 0xffe9, 0xffc1, 0xffa8,
+ 0xffa6, 0xffb9, 0xffdd, 0x0008, 0x0044, 0x0099,
+ 0x0100, 0x015d, 0x0192, 0x01b3, 0x01c7, 0x01ae,
+ 0x018d, 0x0187, 0x0178, 0x017b, 0x01a4, 0x01c9,
+ 0x0205, 0x025e, 0x0296, 0x02bd, 0x02e1, 0x02f5,
+ 0x031d, 0x034c, 0x035b, 0x0366, 0x0370, 0x0378,
+ 0x0390, 0x0394, 0x037d, 0x0368, 0x0343, 0x031c,
+ 0x02f9, 0x02bb, 0x0282, 0x025f, 0x0230, 0x020a,
+ 0x01f7, 0x01d7, 0x01b6, 0x019d, 0x0178, 0x0158,
+ 0x014b, 0x0141, 0x0132, 0x0129, 0x013a, 0x015e,
+ 0x0188, 0x01c6, 0x0206, 0x022f, 0x024d, 0x0257,
+ 0x023d, 0x0221, 0x0215, 0x020f, 0x020e, 0x020b,
+ 0x0205, 0x020a, 0x0218, 0x0229, 0x023b, 0x0233,
+ 0x0218, 0x0202, 0x01dc, 0x01a1, 0x017f, 0x016a,
+ 0x014b, 0x0134, 0x010d, 0x00cc, 0x00a1, 0x0085,
+ 0x005a, 0x0031, 0xfffc, 0xffb7, 0xff7e, 0xff3d,
+ 0xfee5, 0xfe9a, 0xfe5c, 0xfe20, 0xfdee, 0xfdca,
+ 0xfdc2, 0xfdce, 0xfdde, 0xfdfe, 0xfe1d, 0xfe2a,
+ 0xfe3c, 0xfe52, 0xfe61, 0xfe6a, 0xfe5f, 0xfe4c,
+ 0xfe47, 0xfe44, 0xfe4a, 0xfe63, 0xfe82, 0xfeb3,
+ 0xfef6, 0xff40, 0xff99, 0xfff3, 0x004c, 0x00b8,
+ 0x0102, 0x0119, 0x012a, 0x012e, 0x011e, 0x0114,
+ 0x0106, 0x0106, 0x0127, 0x0144, 0x016b, 0x01b3,
+ 0x01f4, 0x0228, 0x0257, 0x0267, 0x025a, 0x023a,
+ 0x0214, 0x01f4, 0x01d0, 0x01bc, 0x01d7, 0x0202,
+ 0x0222, 0x0247, 0x0268, 0x028e, 0x02c2, 0x02f1,
+ 0x031c, 0x0344, 0x034b, 0x0331, 0x030a, 0x02db,
+ 0x02ab, 0x0292, 0x0293, 0x0296, 0x0297, 0x02a6,
+ 0x02bc, 0x02c7, 0x02bc, 0x02a5, 0x028d, 0x0268,
+ 0x0230, 0x0203, 0x01e8, 0x01c7, 0x01b1, 0x01b5,
+ 0x01ba, 0x01c4, 0x01eb, 0x0224, 0x025e, 0x0295,
+ 0x02cc, 0x0302, 0x0337, 0x0376, 0x03bb, 0x03ee,
+ 0x040b, 0x0413, 0x03f0, 0x039b, 0x0332, 0x02d6,
+ 0x0295, 0x0269, 0x024b, 0x024e, 0x0272, 0x0294,
+ 0x02ab, 0x02b2, 0x028d, 0x0247, 0x0202, 0x01ab,
+ 0x015b, 0x0142, 0x013b, 0x0127, 0x0118, 0x0105,
+ 0x00fd, 0x0123, 0x0165, 0x01ae, 0x01d8, 0x01d1,
+ 0x01d3, 0x01f3, 0x0206, 0x0210, 0x0205, 0x01d6,
+ 0x01b1, 0x0193, 0x016e, 0x015b, 0x013f, 0x0127,
+ 0x0147, 0x016e, 0x017c, 0x018c, 0x018a, 0x0176,
+ 0x015e, 0x0133, 0x0113, 0x010a, 0x0102, 0x0109,
+ 0x011d, 0x013e, 0x0182, 0x01d2, 0x021e, 0x0266,
+ 0x02a1, 0x02e1, 0x030b, 0x0305, 0x0302, 0x02ff,
+ 0x02d5, 0x02b3, 0x0293, 0x0265, 0x0265, 0x027e,
+ 0x028d, 0x02ba, 0x02e3, 0x02e9, 0x02f0, 0x02d6,
+ 0x028e, 0x0255, 0x0223, 0x01e9, 0x01c9, 0x01b9,
+ 0x01a7, 0x0186, 0x014d, 0x0107, 0x00c3, 0x009a,
+ 0x0097, 0x0094, 0x0081, 0x0073, 0x006d, 0x005f,
+ 0x0032, 0xfff4, 0xffc9, 0xffb5, 0xffb1, 0xffc1,
+ 0xffc0, 0xffaf, 0xffaa, 0xff93, 0xff5f, 0xff2b,
+ 0xfef8, 0xfecf, 0xfec3, 0xfecf, 0xfef9, 0xff2f,
+ 0xff4d, 0xff5c, 0xff6c, 0xff63, 0xff4e, 0xff4d,
+ 0xff50, 0xff55, 0xff6f, 0xff82, 0xff6a, 0xff42,
+ 0xff21, 0xfefe, 0xfee6, 0xfed3, 0xfeb1, 0xfe87,
+ 0xfe4c, 0xfe0d, 0xfdf7, 0xfdf8, 0xfe0b, 0xfe45,
+ 0xfe6e, 0xfe77, 0xfe9d, 0xfec3, 0xfee4, 0xff25,
+ 0xff55, 0xff6f, 0xff96, 0xffa8, 0xffb5, 0xffdf,
+ 0x0001, 0x0035, 0x0084, 0x00bd, 0x00fa, 0x013b,
+ 0x0156, 0x0178, 0x01a4, 0x01b2, 0x01c7, 0x01e3,
+ 0x01e7, 0x01f4, 0x0216, 0x024d, 0x02a7, 0x02f9,
+ 0x0328, 0x0344, 0x034a, 0x033d, 0x0323, 0x02fc,
+ 0x02e5, 0x02e1, 0x02e0, 0x02f5, 0x031a, 0x033b,
+ 0x036a, 0x03a5, 0x03d8, 0x0416, 0x046c, 0x04bb,
+ 0x04f3, 0x0526, 0x0546, 0x0536, 0x0511, 0x04e9,
+ 0x04b7, 0x0491, 0x047c, 0x0463, 0x0454, 0x045b,
+ 0x046a, 0x047c, 0x0491, 0x04ac, 0x04cf, 0x04ee,
+ 0x0516, 0x053a, 0x0544, 0x0556, 0x0562, 0x0545,
+ 0x052b, 0x0519, 0x04ec, 0x04c5, 0x04a3, 0x047b,
+ 0x0466, 0x0446, 0x0411, 0x03fe, 0x040d, 0x042f,
+ 0x045f, 0x047e, 0x0493, 0x0497, 0x0470, 0x0447,
+ 0x0431, 0x040c, 0x03e1, 0x03b8, 0x0377, 0x0328,
+ 0x02e2, 0x02a1, 0x0261, 0x0224, 0x01f7, 0x01cd,
+ 0x0186, 0x013c, 0x0103, 0x00cd, 0x009b, 0x0072,
+ 0x004d, 0x0034, 0x0037, 0x005b, 0x008f, 0x00be,
+ 0x00e7, 0x0112, 0x0139, 0x014b, 0x013f, 0x0126,
+ 0x0104, 0x00c8, 0x008d, 0x0072, 0x0061, 0x0046,
+ 0x0032, 0x002f, 0x0027, 0x0016, 0x001a, 0x0034,
+ 0x0055, 0x007d, 0x008b, 0x007e, 0x0085, 0x0090,
+ 0x0081, 0x0085, 0x009a, 0x009f, 0x00a2, 0x00ad,
+ 0x00c0, 0x00d3, 0x00d3, 0x00df, 0x0113, 0x014c,
+ 0x016b, 0x0173, 0x016a, 0x0166, 0x016e, 0x0172,
+ 0x0178, 0x018d, 0x01ac, 0x01b8, 0x01a8, 0x019c,
+ 0x01a2, 0x01ba, 0x01d9, 0x01e0, 0x01d5, 0x01d8,
+ 0x01da, 0x01d4, 0x01e2, 0x01f6, 0x0203, 0x0217,
+ 0x0227, 0x022c, 0x022b, 0x0217, 0x01f7, 0x01db,
+ 0x01b1, 0x0178, 0x014e, 0x0132, 0x0110, 0x0102,
+ 0x011d, 0x0140, 0x0150, 0x014d, 0x0138, 0x012a,
+ 0x0125, 0x0110, 0x00ff, 0x0114, 0x013a, 0x015f,
+ 0x0189, 0x01ab, 0x01af, 0x0196, 0x016c, 0x0134,
+ 0x0109, 0x00fc, 0x00f4, 0x00e4, 0x00e3, 0x00ed,
+ 0x00eb, 0x00d3, 0x00a2, 0x0067, 0x002b, 0xfffb,
+ 0xffec, 0xffeb, 0xffe7, 0xfff4, 0xfff3, 0xffce,
+ 0xffa6, 0xff72, 0xff1f, 0xfed3, 0xfea7, 0xfe8f,
+ 0xfe89, 0xfe99, 0xfebd, 0xfee3, 0xfef9, 0xff03,
+ 0xff06, 0xff03, 0xfeed, 0xfed4, 0xfee7, 0xff0f,
+ 0xff32, 0xff7a, 0xffc8, 0xffec, 0x0016, 0x0030,
+ 0x001f, 0x0038, 0x006d, 0x0089, 0x00c2, 0x0117,
+ 0x0166, 0x01b3, 0x01dd, 0x01eb, 0x01f8, 0x01e4,
+ 0x01c7, 0x01cd, 0x01d4, 0x01ff, 0x0269, 0x02b7,
+ 0x02c9, 0x02c6, 0x02a5, 0x026e, 0x0238, 0x0215,
+ 0x0222, 0x0252, 0x028a, 0x02d4, 0x0320, 0x035a,
+ 0x0387, 0x039c, 0x0398, 0x038e, 0x036b, 0x0335,
+ 0x0316, 0x0310, 0x031d, 0x032b, 0x030e, 0x02d5,
+ 0x029e, 0x025e, 0x0233, 0x0225, 0x0205, 0x01e4,
+ 0x01d7, 0x01b9, 0x01a9, 0x01b1, 0x01a1, 0x0194,
+ 0x0198, 0x0185, 0x0180, 0x01a0, 0x01c3, 0x01f2,
+ 0x022f, 0x025c, 0x0283, 0x029f, 0x02a7, 0x02a6,
+ 0x02a2, 0x02b9, 0x02e4, 0x02e8, 0x02de, 0x02ed,
+ 0x02e4, 0x02be, 0x0297, 0x025e, 0x0210, 0x01ba,
+ 0x0164, 0x013b, 0x0141, 0x0144, 0x0134, 0x0103,
+ 0x009b, 0x0017, 0xff9b, 0xff31, 0xfef2, 0xfee2,
+ 0xfee7, 0xfef9, 0xff17, 0xff37, 0xff62, 0xff8d,
+ 0xffa1, 0xffaf, 0xffaf, 0xff88, 0xff60, 0xff40,
+ 0xff07, 0xfedf, 0xfed5, 0xfec2, 0xfec9, 0xfefa,
+ 0xff2e, 0xff72, 0xffce, 0x0027, 0x007b, 0x00c1,
+ 0x00f4, 0x0117, 0x0121, 0x0132, 0x0156, 0x0167,
+ 0x017d, 0x019f, 0x019f, 0x019d, 0x01b7, 0x01c9,
+ 0x01e0, 0x0207, 0x0224, 0x023e, 0x0244, 0x0225,
+ 0x01ff, 0x01db, 0x01a9, 0x0176, 0x0154, 0x014b,
+ 0x015c, 0x0175, 0x018b, 0x019f, 0x01ad, 0x01b2,
+ 0x01b5, 0x01bb, 0x01b7, 0x0196, 0x015e, 0x0115,
+ 0x00ce, 0x00ac, 0x00af, 0x00c8, 0x00f8, 0x012b,
+ 0x014b, 0x015c, 0x015e, 0x014c, 0x0138, 0x0137,
+ 0x014b, 0x0159, 0x0147, 0x0124, 0x0103, 0x00e2,
+ 0x00c1, 0x00a3, 0x008b, 0x0091, 0x00c8, 0x0114,
+ 0x015a, 0x01a9, 0x01f1, 0x020d, 0x0212, 0x021a,
+ 0x021d, 0x021e, 0x021f, 0x0216, 0x0206, 0x01f1,
+ 0x01d2, 0x01b5, 0x0195, 0x0165, 0x0129, 0x00f4,
+ 0x00ce, 0x00a5, 0x007c, 0x0075, 0x0089, 0x0094,
+ 0x0089, 0x0066, 0x0039, 0x0016, 0x0003, 0xffff,
+ 0x0001, 0x000d, 0x0032, 0x0064, 0x0084, 0x00a2,
+ 0x00c0, 0x00c7, 0x00ca, 0x00d8, 0x00d9, 0x00c6,
+ 0x00b4, 0x00b2, 0x00d4, 0x011f, 0x0171, 0x01ae,
+ 0x01ea, 0x022b, 0x0261, 0x028d, 0x02ba, 0x02e5,
+ 0x0306, 0x030c, 0x02f3, 0x02c8, 0x0297, 0x0270,
+ 0x0258, 0x0242, 0x023e, 0x024a, 0x0253, 0x0267,
+ 0x0280, 0x0282, 0x027f, 0x027f, 0x0265, 0x0240,
+ 0x022a, 0x0228, 0x023a, 0x024b, 0x024e, 0x0262,
+ 0x0290, 0x02ae, 0x02b7, 0x02c8, 0x02e9, 0x030f,
+ 0x0325, 0x0313, 0x02eb, 0x02cf, 0x02ae, 0x0272,
+ 0x0226, 0x01da, 0x01a4, 0x0187, 0x0167, 0x0144,
+ 0x0128, 0x0112, 0x0103, 0x00da, 0x0088, 0x0029,
+ 0xffc2, 0xff59, 0xff02, 0xfebb, 0xfe9a, 0xfea9,
+ 0xfec1, 0xfef5, 0xff48, 0xff8a, 0xffbd, 0xffde,
+ 0xffdf, 0xffe0, 0xffe1, 0xffd7, 0xffe2, 0xffe7,
+ 0xffd4, 0xffc4, 0xffa6, 0xff83, 0xff82, 0xff93,
+ 0xffb9, 0xfff3, 0x0013, 0x0016, 0x0002, 0xffcb,
+ 0xff8e, 0xff74, 0xff5c, 0xff27, 0xfef7, 0xfedc,
+ 0xfeb0, 0xfe80, 0xfe77, 0xfe71, 0xfe67, 0xfe6c,
+ 0xfe69, 0xfe68, 0xfe86, 0xfea6, 0xfed2, 0xff14,
+ 0xff45, 0xff5b, 0xff58, 0xff43, 0xff30, 0xff17,
+ 0xff05, 0xff0a, 0xff0d, 0xff21, 0xff5e, 0xffa9,
+ 0x0007, 0x0068, 0x00a1, 0x00c7, 0x00e6, 0x00fd,
+ 0x0126, 0x014e, 0x016c, 0x019e, 0x01db, 0x021c,
+ 0x0263, 0x02a7, 0x02f8, 0x0348, 0x0382, 0x03af,
+ 0x03c3, 0x03c7, 0x03c9, 0x03a3, 0x0366, 0x0333,
+ 0x02f7, 0x02c5, 0x02b3, 0x02bc, 0x02f2, 0x033f,
+ 0x0381, 0x03c9, 0x03fe, 0x0408, 0x0406, 0x03ee,
+ 0x03b5, 0x037a, 0x0351, 0x0342, 0x034c, 0x036b,
+ 0x0399, 0x03bf, 0x03dc, 0x03e5, 0x03be, 0x038c,
+ 0x036b, 0x033f, 0x031c, 0x030c, 0x02f3, 0x02da,
+ 0x02c9, 0x02a2, 0x0274, 0x0266, 0x0285, 0x02b3,
+ 0x02cc, 0x02e5, 0x0300, 0x030a, 0x0305, 0x02f0,
+ 0x02d3, 0x02be, 0x02b3, 0x02b8, 0x02c6, 0x02e2,
+ 0x032e, 0x0379, 0x039a, 0x03c5, 0x03d4, 0x03a3,
+ 0x036f, 0x0331, 0x02e4, 0x02b4, 0x026d, 0x0209,
+ 0x01b6, 0x0154, 0x010a, 0x00fd, 0x00db, 0x00ab,
+ 0x009d, 0x0079, 0x003e, 0x0011, 0xfff2, 0xffdc,
+ 0xffb3, 0xff85, 0xff84, 0xff89, 0xff78, 0xff7c,
+ 0xff99, 0xffae, 0xffb1, 0xffa6, 0xff8f, 0xff64,
+ 0xff34, 0xff1f, 0xff2a, 0xff50, 0xff90, 0xffe2,
+ 0x0044, 0x009e, 0x00dd, 0x010d, 0x0115, 0x0102,
+ 0x0105, 0x0107, 0x0102, 0x0114, 0x0129, 0x0153,
+ 0x01a3, 0x01db, 0x01ed, 0x01e2, 0x01a3, 0x014c,
+ 0x00ef, 0x0099, 0x0074, 0x0072, 0x0076, 0x0097,
+ 0x00c0, 0x00d8, 0x00e1, 0x00c8, 0x00b1, 0x00c2,
+ 0x00df, 0x010d, 0x0148, 0x015c, 0x014d, 0x0129,
+ 0x00df, 0x0086, 0x0042, 0x0028, 0x003f, 0x0067,
+ 0x0099, 0x00d5, 0x00f9, 0x0102, 0x0107, 0x0108,
+ 0x010b, 0x00f0, 0x00af, 0x008b, 0x008d, 0x0093,
+ 0x00b2, 0x00dc, 0x00f9, 0x011d, 0x0138, 0x0148,
+ 0x0162, 0x017f, 0x01a3, 0x01c4, 0x01cc, 0x01ea,
+ 0x022d, 0x025b, 0x0282, 0x02b7, 0x02de, 0x02fb,
+ 0x0318, 0x0330, 0x0352, 0x0376, 0x0395, 0x03b1,
+ 0x039e, 0x035b, 0x032c, 0x0314, 0x02ee, 0x02d8,
+ 0x02e0, 0x02e5, 0x02e8, 0x02e9, 0x02d8, 0x02ca,
+ 0x02b6, 0x0282, 0x024e, 0x022b, 0x0205, 0x01f7,
+ 0x0202, 0x0205, 0x020d, 0x0217, 0x01ff, 0x01df,
+ 0x01c8, 0x01ab, 0x019b, 0x01a3, 0x01ac, 0x01a6,
+ 0x01a1, 0x01ae, 0x01b1, 0x019f, 0x01a7, 0x01ca,
+ 0x01ec, 0x022c, 0x0290, 0x0302, 0x037a, 0x03d4,
+ 0x03f7, 0x03ea, 0x03aa, 0x0360, 0x0335, 0x0314,
+ 0x0308, 0x0320, 0x033a, 0x0346, 0x033a, 0x0319,
+ 0x02fa, 0x02d2, 0x02a9, 0x0297, 0x0283, 0x027f,
+ 0x029c, 0x02af, 0x02da, 0x033a, 0x036d, 0x034f,
+ 0x030a, 0x02a1, 0x022a, 0x01c6, 0x0182, 0x016c,
+ 0x016d, 0x017a, 0x01a4, 0x01cb, 0x01e4, 0x01fe,
+ 0x01f5, 0x01ca, 0x0199, 0x014c, 0x00f3, 0x00cd,
+ 0x00c4, 0x0097, 0x0064, 0x0059, 0x0030, 0xffde,
+ 0xffd5, 0x0008, 0x001c, 0x001c, 0x0002, 0xffbd,
+ 0xff8f, 0xff77, 0xff53, 0xff41, 0xff3a, 0xff39,
+ 0xff5c, 0xff9e, 0xfff8, 0x005e, 0x00a5, 0x00c8,
+ 0x00de, 0x0100, 0x013b, 0x016b, 0x018a, 0x01b3,
+ 0x01c2, 0x0191, 0x013c, 0x00f9, 0x00e8, 0x00da,
+ 0x008e, 0x0024, 0xffd9, 0xffa2, 0xff76, 0xff88,
+ 0xffcc, 0xffd4, 0xff9f, 0xff8b, 0xff85, 0xff84,
+ 0xffae, 0xffd4, 0xffe1, 0xffe7, 0xffbc, 0xff84,
+ 0xff6f, 0xff4f, 0xff2b, 0xff13, 0xfedf, 0xfe9a,
+ 0xfe73, 0xfe83, 0xfec7, 0xff08, 0xff43, 0xff9e,
+ 0xffed, 0x001b, 0x0052, 0x00a1, 0x00eb, 0x00f9,
+ 0x00ec, 0x0122, 0x0167, 0x0168, 0x0142, 0x011c,
+ 0x00ff, 0x00da, 0x0091, 0x004c, 0x0048, 0x007c,
+ 0x00bb, 0x00f9, 0x013c, 0x0155, 0x0140, 0x0141,
+ 0x0135, 0x00e7, 0x00c3, 0x010b, 0x0175, 0x01a4,
+ 0x019e, 0x01c9, 0x01ee, 0x0192, 0x013b, 0x0127,
+ 0x00cf, 0x0085, 0x00a2, 0x00a8, 0x00aa, 0x00ec,
+ 0x011c, 0x0100, 0x00ac, 0x0078, 0x008c, 0x0073,
+ 0x0044, 0x0073, 0x009c, 0x0082, 0x0076, 0x0064,
+ 0x0042, 0x0052, 0x005f, 0x002d, 0x0015, 0x0047,
+ 0x006a, 0x005b, 0x0046, 0x001b, 0xffdf, 0xffd4,
+ 0xfff4, 0x0017, 0x0062, 0x00de, 0x0147, 0x0172,
+ 0x016d, 0x0149, 0x0110, 0x00c9, 0x0063, 0x0004,
+ 0xffef, 0xffe7, 0xffeb, 0x0048, 0x0082, 0x0058,
+ 0x0056, 0x004e, 0x0023, 0x006c, 0x00f5, 0x0171,
+ 0x01f3, 0x020e, 0x01de, 0x01c4, 0x014d, 0x00a3,
+ 0x003e, 0xfff9, 0xfffe, 0x002e, 0x0028, 0x0061,
+ 0x00bb, 0x00b6, 0x00c2, 0x00e1, 0x00f6, 0x0175,
+ 0x01fb, 0x0253, 0x02e1, 0x0337, 0x0351, 0x0378,
+ 0x030e, 0x026d, 0x023d, 0x01cd, 0x014a, 0x0158,
+ 0x015f, 0x0142, 0x014b, 0x0144, 0x0132, 0x00e2,
+ 0x007b, 0x00be, 0x0136, 0x0176, 0x0222, 0x02b6,
+ 0x02b4, 0x02c3, 0x02b9, 0x025d, 0x01ff, 0x0190,
+ 0x0192, 0x0220, 0x0261, 0x02be, 0x036a, 0x0388,
+ 0x039d, 0x040d, 0x040d, 0x03cd, 0x0397, 0x0351,
+ 0x035a, 0x034e, 0x02e1, 0x02a4, 0x0276, 0x0242,
+ 0x0241, 0x0208, 0x01ba, 0x0196, 0x0158, 0x0166,
+ 0x01aa, 0x019d, 0x01b8, 0x0201, 0x0258, 0x030f,
+ 0x0366, 0x034d, 0x03a1, 0x0389, 0x02d6, 0x0283,
+ 0x01eb, 0x00f8, 0x00b9, 0x00d8, 0x0112, 0x0188,
+ 0x01d9, 0x025a, 0x02db, 0x02ab, 0x0287, 0x026c,
+ 0x0199, 0x00f0, 0x00cb, 0x0089, 0x0049, 0xffea,
+ 0xff6d, 0xff20, 0xfe75, 0xfdce, 0xfdc8, 0xfd7b,
+ 0xfd48, 0xfe03, 0xfe99, 0xff11, 0x0002, 0x0091,
+ 0x00e3, 0x014b, 0x00fc, 0x006a, 0x002c, 0xffe7,
+ 0xffe4, 0xfff3, 0xff84, 0xff26, 0xfed8, 0xfe30,
+ 0xfd99, 0xfd41, 0xfd50, 0xfdd8, 0xfe30, 0xfe72,
+ 0xff0d, 0xff82, 0xffab, 0xff96, 0xff29, 0xff01,
+ 0xff47, 0xff72, 0xffe5, 0x00c5, 0x0141, 0x015f,
+ 0x0199, 0x0196, 0x014b, 0x013b, 0x0147, 0x0138,
+ 0x0154, 0x01a5, 0x0219, 0x0294, 0x02b1, 0x02b5,
+ 0x02f7, 0x02d5, 0x025d, 0x0263, 0x02c1, 0x0326,
+ 0x039c, 0x03d6, 0x039b, 0x0327, 0x02fd, 0x0316,
+ 0x02da, 0x02b4, 0x0301, 0x031c, 0x036b, 0x03d5,
+ 0x0334, 0x0280, 0x0289, 0x021c, 0x0197, 0x01bf,
+ 0x0204, 0x0261, 0x0284, 0x022f, 0x01ff, 0x017f,
+ 0x00d5, 0x0115, 0x0154, 0x013f, 0x0202, 0x02cc,
+ 0x02b9, 0x02a2, 0x02d4, 0x02ce, 0x0239, 0x0187,
+ 0x0190, 0x01e6, 0x01fc, 0x0247, 0x02bb, 0x02fb,
+ 0x0325, 0x0314, 0x029f, 0x01df, 0x0132, 0x0104,
+ 0x0113, 0x00f3, 0x00d7, 0x010f, 0x0192, 0x01d0,
+ 0x0184, 0x0174, 0x0208, 0x02a2, 0x02ab, 0x0249,
+ 0x0215, 0x01e1, 0x012b, 0x006c, 0xffe6, 0xff3c,
+ 0xfe7c, 0xfdce, 0xfda4, 0xfe15, 0xfe30, 0xfe15,
+ 0xfe26, 0xfdc0, 0xfda3, 0xfe60, 0xfed1, 0xff24,
+ 0xffbe, 0xffd8, 0xffcc, 0xffac, 0xff00, 0xfeee,
+ 0xffc2, 0x0022, 0xffe1, 0xffa2, 0xff9a, 0xffc9,
+ 0x003d, 0x00e8, 0x0126, 0x00b4, 0x0032, 0xffff,
+ 0x0028, 0x0072, 0x007a, 0x0095, 0x00b7, 0x0095,
+ 0x00be, 0x0123, 0x01ac, 0x02c1, 0x0366, 0x0343,
+ 0x034f, 0x0321, 0x0297, 0x0230, 0x0189, 0x00f6,
+ 0x007b, 0xff8b, 0xff37, 0xff8f, 0xff9c, 0x0014,
+ 0x0059, 0xff90, 0xffb0, 0x00bf, 0x00d2, 0x00b3,
+ 0x0125, 0x0100, 0x005c, 0x002b, 0x0034, 0x0020,
+ 0x0072, 0x012f, 0x01a1, 0x01f9, 0x0293, 0x02f7,
+ 0x0303, 0x0278, 0x0125, 0x001d, 0xffcb, 0xff7d,
+ 0xff46, 0xff83, 0x005e, 0x0164, 0x0176, 0x0165,
+ 0x0256, 0x02e4, 0x02c0, 0x0346, 0x03cc, 0x03a7,
+ 0x03cc, 0x042b, 0x041d, 0x03c4, 0x0363, 0x02fe,
+ 0x025e, 0x01be, 0x01cd, 0x0210, 0x01ab, 0x0161,
+ 0x01e1, 0x025c, 0x026a, 0x0266, 0x0221, 0x01db,
+ 0x0251, 0x02d8, 0x02ae, 0x0287, 0x028a, 0x0249,
+ 0x024a, 0x02a3, 0x02eb, 0x0365, 0x03b3, 0x035f,
+ 0x034d, 0x03af, 0x03b4, 0x03aa, 0x0426, 0x04d5,
+ 0x050a, 0x044f, 0x0363, 0x0359, 0x035c, 0x028a,
+ 0x0199, 0x00c6, 0x0002, 0x0027, 0x0136, 0x0254,
+ 0x034b, 0x03eb, 0x0414, 0x0431, 0x045d, 0x0471,
+ 0x0487, 0x04b8, 0x04e8, 0x04bb, 0x046c, 0x04b5,
+ 0x04e6, 0x0468, 0x046c, 0x04d7, 0x0497, 0x0480,
+ 0x04cc, 0x04c3, 0x04d5, 0x0488, 0x035e, 0x02c0,
+ 0x02a9, 0x026e, 0x02e0, 0x0384, 0x03b9, 0x03fd,
+ 0x03d8, 0x03ba, 0x0404, 0x034e, 0x02a7, 0x02b6,
+ 0x0150, 0x0034, 0x0117, 0x012c, 0x010b, 0x0216,
+ 0x01c7, 0x0103, 0x01c8, 0x0240, 0x0265, 0x0307,
+ 0x02d4, 0x01f5, 0x013d, 0x00a3, 0x0039, 0xffb3,
+ 0xff66, 0xffa7, 0xff98, 0xff7d, 0xffa6, 0xff6a,
+ 0xff4f, 0xff42, 0xfe5c, 0xfd55, 0xfcfe, 0xfd1c,
+ 0xfd1c, 0xfd00, 0xfdaa, 0xfe43, 0xfdf7, 0xfe80,
+ 0xff84, 0xffd2, 0x00ad, 0x011a, 0x0053, 0x005b,
+ 0xffff, 0xfe84, 0xfe68, 0xfe6b, 0xfd84, 0xfe18,
+ 0xff12, 0xfeec, 0xff53, 0xffad, 0xfe9e, 0xfdbf,
+ 0xfdb4, 0xfd21, 0xfc61, 0xfc7c, 0xfc7a, 0xfc72,
+ 0xfd92, 0xfdf5, 0xfcf9, 0xfd1b, 0xfcf7, 0xfb3b,
+ 0xfacd, 0xfb40, 0xfb16, 0xfc29, 0xfd85, 0xfd69,
+ 0xfd64, 0xfdb8, 0xfe0f, 0xff1f, 0x0038, 0x0100,
+ 0x01a4, 0x01ae, 0x01e3, 0x0296, 0x0297, 0x0209,
+ 0x016e, 0x0075, 0xffd7, 0x004a, 0x00ba, 0x00a6,
+ 0x0130, 0x0153, 0xffbb, 0xff4c, 0x00b4, 0x0086,
+ 0x0031, 0x01a5, 0x01dd, 0x0196, 0x02f3, 0x0378,
+ 0x0331, 0x0352, 0x026d, 0x01f2, 0x02aa, 0x02c6,
+ 0x03ec, 0x05cb, 0x0564, 0x050d, 0x05e4, 0x04ff,
+ 0x03bb, 0x0375, 0x0256, 0x0196, 0x0221, 0x021f,
+ 0x01f9, 0x01e4, 0x00b8, 0x000a, 0x0089, 0x0049,
+ 0xffe5, 0x008e, 0x0108, 0x00e8, 0x00b4, 0x0070,
+ 0x006e, 0xffd3, 0xfe31, 0xfe05, 0xff29, 0xfef5,
+ 0xff65, 0x01f2, 0x031b, 0x02ff, 0x0460, 0x055e,
+ 0x0507, 0x0533, 0x04b1, 0x0304, 0x02c8, 0x0390,
+ 0x0344, 0x02f2, 0x0339, 0x026d, 0x0137, 0x01b0,
+ 0x02a4, 0x0264, 0x0248, 0x030e, 0x03c0, 0x0465,
+ 0x04fd, 0x04ce, 0x03fb, 0x03ad, 0x0452, 0x0454,
+ 0x03b7, 0x047f, 0x0452, 0x0176, 0x003b, 0x004b,
+ 0xfe49, 0xfd80, 0xfe4e, 0xfcc1, 0xfb6a, 0xfc63,
+ 0xfcb4, 0xfc82, 0xfd5d, 0xfe23, 0xfda4, 0xfc3b,
+ 0xfb67, 0xfbfe, 0xfdd1, 0xffab, 0xff51, 0xfe26,
+ 0xff3f, 0x00e6, 0x0161, 0x01d2, 0x02bb, 0x03da,
+ 0x03a3, 0x030c, 0x0432, 0x0325, 0x00c6, 0x0228,
+ 0x01a6, 0xff54, 0x0278, 0x037b, 0xffbb, 0x011b,
+ 0x03ce, 0x02c6, 0x029e, 0x023c, 0x014a, 0x01c0,
+ 0x01a7, 0x021b, 0x0258, 0x015e, 0x02da, 0x02a9,
+ 0xfef4, 0xfe79, 0xfdb6, 0xfa54, 0xfaf8, 0xfd17,
+ 0xfd69, 0xfdea, 0xfd19, 0xfc5f, 0xfc95, 0xfb95,
+ 0xfc15, 0xfda3, 0xfe80, 0x0132, 0x0325, 0x03bd,
+ 0x0623, 0x06ee, 0x0603, 0x05d3, 0x03ed, 0x0263,
+ 0x01f9, 0xff73, 0xfe6b, 0x0085, 0x0170, 0xff9d,
+ 0xfcdf, 0xfd37, 0xfeb1, 0xfce5, 0xfcdb, 0xfd89,
+ 0xf9ce, 0xf968, 0xfbfd, 0xf9e6, 0xf94f, 0xfb4a,
+ 0xf9dc, 0xf8eb, 0xfaa5, 0xfd37, 0xff9e, 0xffc0,
+ 0x0090, 0x0195, 0xfe32, 0xfbd4, 0xfc2b, 0xfb06,
+ 0xfc6a, 0xfec1, 0xfd68, 0xfdd9, 0xffe0, 0xff1a,
+ 0xff42, 0x01a6, 0x0266, 0x0127, 0x0213, 0x0515,
+ 0x03cc, 0x01e8, 0x05c8, 0x0619, 0x00e7, 0x0090,
+ 0x0178, 0xfdd5, 0xfb24, 0xfd16, 0x01df, 0x035c,
+ 0x00f6, 0x025c, 0x036e, 0xff00, 0xfe81, 0x017f,
+ 0x007f, 0x0113, 0x043c, 0x03cd, 0x0426, 0x0997,
+ 0x0dbb, 0x0d35, 0x0d74, 0x0f39, 0x0de9, 0x0c34,
+ 0x0d0d, 0x0d52, 0x0d89, 0x0e39, 0x0de3, 0x0dcc,
+ 0x0b73, 0x0760, 0x0682, 0x046e, 0x0233, 0x06fb,
+ 0x09f6, 0x07c8, 0x0aa7, 0x0e79, 0x0dc5, 0x0e4b,
+ 0x0ef9, 0x0d63, 0x0c92, 0x0cca, 0x0d82, 0x0d44,
+ 0x0aba, 0x0817, 0x0542, 0x015f, 0xfd73, 0xf94b,
+ 0xf6bb, 0xf664, 0xf641, 0xf885, 0xfc66, 0xfcb3,
+ 0xf9c8, 0xf3f1, 0xe953, 0xdba0, 0xccab, 0xc06d,
+ 0xbc55, 0xbe49, 0xc1f1, 0xc76f, 0xcfb9, 0xdb82,
+ 0xe9b0, 0xf68b, 0xfef8, 0x0206, 0x0211, 0x0203,
+ 0x016a, 0xff04, 0xf99f, 0xf104, 0xe85e, 0xe148,
+ 0xdbaf, 0xdaf5, 0xdf98, 0xe45c, 0xe79c, 0xec5c,
+ 0xf2a7, 0xf6ad, 0xf741, 0xf863, 0xfc04, 0xfe41,
+ 0xfd3c, 0xfc29, 0xfc97, 0xfdd7, 0xffa9, 0xffad,
+ 0xfd68, 0xfd27, 0xfe00, 0xfdb7, 0x0173, 0x07dc,
+ 0x0af8, 0x0fab, 0x15de, 0x14a3, 0x1017, 0x0f81,
+ 0x0f71, 0x0fec, 0x156b, 0x1e8e, 0x26c4, 0x2bad,
+ 0x2e33, 0x2ef5, 0x2ca6, 0x2708, 0x1ed4, 0x171b,
+ 0x12c2, 0x0f62, 0x0cee, 0x0d1b, 0x0c30, 0x0aad,
+ 0x0a85, 0x06de, 0x01e3, 0x0148, 0x0188, 0x0221,
+ 0x060f, 0x09a3, 0x0ae5, 0x0ce3, 0x105f, 0x12ee,
+ 0x1381, 0x14d2, 0x1783, 0x1979, 0x1b55, 0x1c9b,
+ 0x1ce5, 0x1df5, 0x1cd8, 0x185b, 0x13d4, 0x0e2f,
+ 0x08c1, 0x0757, 0x06e4, 0x04d3, 0x020b, 0x0078,
+ 0x0128, 0xff7f, 0xfd8b, 0x015a, 0x030f, 0x023a,
+ 0x070e, 0x07ac, 0x0304, 0x06c8, 0x0a71, 0x05f1,
+ 0x04cf, 0x06df, 0x0599, 0x05a9, 0x089e, 0x09a8,
+ 0x080f, 0x075a, 0x06b3, 0x0369, 0x02b2, 0x054c,
+ 0x057a, 0x06d1, 0x089c, 0x05dd, 0x062b, 0x08bf,
+ 0x07a7, 0x0b85, 0x10f1, 0x0e99, 0x0e1c, 0x0f66,
+ 0x0a48, 0x07d9, 0x0a55, 0x07f9, 0x02ae, 0xffd0,
+ 0xfde3, 0xfc97, 0xfdb2, 0xfe68, 0xfa24, 0xf4e2,
+ 0xf3ab, 0xf2cc, 0xf138, 0xf1ee, 0xf3cc, 0xf4e9,
+ 0xf54a, 0xf860, 0xfd26, 0xfca3, 0xfd81, 0x039e,
+ 0x00da, 0xfba6, 0x014a, 0x0311, 0xff5d, 0x02e3,
+ 0x04ab, 0x0296, 0x044a, 0x0329, 0x00f0, 0x04cf,
+ 0x080c, 0x0718, 0x056c, 0x04d5, 0x03ee, 0xfff8,
+ 0xff76, 0x051e, 0x06ee, 0x0763, 0x0bd7, 0x0c32,
+ 0x09a5, 0x0923, 0x0788, 0x068f, 0x052f, 0x01c7,
+ 0x0206, 0x014e, 0xfd3d, 0x0010, 0x0454, 0x0177,
+ 0x0064, 0x013b, 0xfdf2, 0xfeb1, 0x0584, 0x077a,
+ 0x0423, 0x040e, 0x0581, 0x01b4, 0xfcd8, 0xfd9c,
+ 0xff9f, 0xfded, 0xfcd3, 0x0035, 0x0485, 0x05c5,
+ 0x04c7, 0x02db, 0x0129, 0x01a8, 0x023c, 0x00d9,
+ 0x007d, 0x01a0, 0x0248, 0x01ae, 0xfe2e, 0xfa97,
+ 0xfaa8, 0xfa77, 0xf7fa, 0xf5f1, 0xf5b5, 0xf850,
+ 0xfa8e, 0xf955, 0xf95f, 0xfac7, 0xf936, 0xf834,
+ 0xfabb, 0xfdcf, 0xfe8a, 0xfd75, 0xfe51, 0xfec0,
+ 0xfb1c, 0xf98c, 0xf985, 0xf5d2, 0xf615, 0xfa52,
+ 0xfa59, 0xfbf5, 0xff17, 0xfaf2, 0xf60e, 0xf51b,
+ 0xf2c6, 0xf294, 0xf5ef, 0xf779, 0xfa2f, 0xfe6f,
+ 0xfde2, 0xfcbf, 0xffaf, 0xff92, 0xfc62, 0xfced,
+ 0xfcda, 0xfa2a, 0xfb96, 0xfd74, 0xfb47, 0xfa39,
+ 0xf890, 0xf48a, 0xf40d, 0xf4f0, 0xf465, 0xf639,
+ 0xf8b8, 0xfa44, 0xfac7, 0xf7b5, 0xf603, 0xf773,
+ 0xf5c7, 0xf55e, 0xf8bf, 0xf99b, 0xfc08, 0x00f0,
+ 0x0043, 0xfe4c, 0xff39, 0xfd6e, 0xfa25, 0xf907,
+ 0xf9d8, 0xfcbb, 0xffab, 0x0297, 0x04f0, 0x01dd,
+ 0xfe40, 0x00bd, 0x02d4, 0x0203, 0x0210, 0x0190,
+ 0x025c, 0x04fa, 0x0449, 0x0384, 0x0586, 0x049c,
+ 0x020f, 0x0267, 0x0318, 0x029e, 0x0311, 0x04bb,
+ 0x03e6, 0xffca, 0xfedd, 0xff22, 0xfa96, 0xf9a9,
+ 0xfc2a, 0xf72d, 0xf4b0, 0xfa24, 0xf9f0, 0xf8a9,
+ 0xfcab, 0xfc2e, 0xfbec, 0x0075, 0xfff5, 0xfea1,
+ 0x01cc, 0x0273, 0x01c2, 0x011b, 0xfe4e, 0xfe14,
+ 0xfefc, 0xfd27, 0xfc77, 0xfc21, 0xfa46, 0xf886,
+ 0xf5a1, 0xf477, 0xf6e5, 0xf7c4, 0xf830, 0xfab3,
+ 0xfc06, 0xfc26, 0xfc03, 0xfc0b, 0xfddf, 0xff45,
+ 0xff44, 0xfeb1, 0xfcc1, 0xfd20, 0xff00, 0xfc54,
+ 0xfa38, 0xfaf8, 0xf721, 0xf2e9, 0xf3c2, 0xf3da,
+ 0xf313, 0xf415, 0xf3a5, 0xf34e, 0xf672, 0xf8f8,
+ 0xf7d2, 0xf7e1, 0xfb2a, 0xfb2f, 0xf85d, 0xf9dd,
+ 0xfb60, 0xf8ca, 0xf904, 0xfadf, 0xf8cb, 0xf748,
+ 0xf8d7, 0xfb05, 0xfcbf, 0xfc2c, 0xfbc9, 0xfe40,
+ 0xfded, 0xf9fc, 0xf8cd, 0xfb23, 0xfe88, 0x0056,
+ 0xff0d, 0xfede, 0x0127, 0x02b9, 0x04fe, 0x06c3,
+ 0x0471, 0x038b, 0x067f, 0x05ee, 0x0247, 0x01ab,
+ 0x0145, 0xfd14, 0xf97f, 0xfac2, 0xfd2a, 0xfc91,
+ 0xfbef, 0xfe06, 0xffcc, 0xfff1, 0x012c, 0x03ca,
+ 0x04c0, 0x036a, 0x0333, 0x0448, 0x0353, 0x0234,
+ 0x0324, 0x037f, 0x0335, 0x022b, 0xff53, 0xfe39,
+ 0xfd96, 0xfac4, 0xfc01, 0xff88, 0xfeb2, 0xff12,
+ 0x00a0, 0xfe96, 0xfff7, 0x0399, 0x0154, 0xfecc,
+ 0xff67, 0xffa8, 0x0106, 0x0101, 0xfe03, 0xfe49,
+ 0x00f0, 0x0129, 0x011f, 0x02a6, 0x0392, 0x02a2,
+ 0x0248, 0x021e, 0xfd6b, 0xf99f, 0xfcc6, 0xfda4,
+ 0xfb32, 0xfdcd, 0xfff6, 0xffbd, 0x033a, 0x05d8,
+ 0x0691, 0x08fb, 0x08f4, 0x0918, 0x0bb3, 0x0991,
+ 0x0691, 0x07e6, 0x06f9, 0x04eb, 0x05bc, 0x0549,
+ 0x0408, 0x043a, 0x0467, 0x0499, 0x03f5, 0x0360,
+ 0x0466, 0x03ee, 0x044c, 0x0840, 0x08ad, 0x0660,
+ 0x0851, 0x0a24, 0x09e0, 0x0b77, 0x0c47, 0x0bf6,
+ 0x0c8f, 0x0bb7, 0x0ba2, 0x0d28, 0x0b15, 0x0898,
+ 0x09fb, 0x0a6a, 0x0921, 0x08d5, 0x0822, 0x07d5,
+ 0x0939, 0x0a8b, 0x0b17, 0x0ab0, 0x0a61, 0x0bc2,
+ 0x0c86, 0x0bcb, 0x0c75, 0x0e46, 0x0f5b, 0x101f,
+ 0x114b, 0x1231, 0x1188, 0x10ba, 0x10b8, 0x0e33,
+ 0x0b3a, 0x0c6e, 0x0c65, 0x08cb, 0x07b1, 0x0678,
+ 0x02a1, 0x02df, 0x0500, 0x039f, 0x0458, 0x072e,
+ 0x05e8, 0x049f, 0x0591, 0x029f, 0xfe88, 0xfee6,
+ 0xfeb2, 0xfb89, 0xfa27, 0xf954, 0xf5bf, 0xf23b,
+ 0xf190, 0xf25e, 0xf16c, 0xee0c, 0xeca8, 0xeebd,
+ 0xefd8, 0xef2e, 0xeecb, 0xee03, 0xed63, 0xedce,
+ 0xee71, 0xf07a, 0xf379, 0xf3f9, 0xf335, 0xf524,
+ 0xf92e, 0xfbfb, 0xfc70, 0xfd36, 0x0075, 0x0423,
+ 0x065a, 0x0716, 0x06b4, 0x0817, 0x0ba4, 0x0c3e,
+ 0x09c6, 0x0809, 0x0626, 0x05bd, 0x09c9, 0x0c81,
+ 0x0ab7, 0x0a1f, 0x0b21, 0x0abf, 0x0b3b, 0x0c27,
+ 0x0aca, 0x0a10, 0x0b8b, 0x0b98, 0x0a7d, 0x0bd8,
+ 0x0d27, 0x0a0e, 0x0670, 0x0664, 0x0615, 0x0524,
+ 0x0742, 0x094c, 0x08bd, 0x07b6, 0x05da, 0x053f,
+ 0x07a9, 0x08cf, 0x0a4c, 0x0e7f, 0x0f9e, 0x102b,
+ 0x14eb, 0x16cb, 0x1628, 0x1980, 0x1bd1, 0x1add,
+ 0x1ac1, 0x1a80, 0x1b1f, 0x1cf2, 0x1aba, 0x164b,
+ 0x14a9, 0x13c5, 0x1177, 0x0eed, 0x0de1, 0x0d6a,
+ 0x0aa0, 0x084c, 0x0877, 0x0706, 0x0699, 0x0923,
+ 0x0771, 0x0418, 0x04ef, 0x0408, 0x022b, 0x0464,
+ 0x04a1, 0x01e7, 0x0188, 0x016e, 0x00e1, 0x0142,
+ 0x0104, 0x0266, 0x0570, 0x05b2, 0x049b, 0x049d,
+ 0x060c, 0x096a, 0x09fc, 0x0733, 0x07c5, 0x08ab,
+ 0x0657, 0x0756, 0x09ff, 0x0899, 0x073e, 0x07a7,
+ 0x0858, 0x0a24, 0x09d6, 0x0771, 0x06e3, 0x0567,
+ 0x0229, 0xff83, 0xfbcc, 0xf9e2, 0xfb14, 0xf9cb,
+ 0xf8ad, 0xf9a5, 0xf6fe, 0xf4e5, 0xf697, 0xf66a,
+ 0xf760, 0xfa39, 0xf93e, 0xf99a, 0xfcab, 0xfcc0,
+ 0xfe31, 0x002b, 0xfd5e, 0xfc97, 0xfedf, 0xff16,
+ 0x00fc, 0x0384, 0x0305, 0x02d2, 0x026a, 0x01d1,
+ 0x02d2, 0x01e1, 0x0152, 0x0321, 0x0159, 0xff07,
+ 0x0016, 0x00c1, 0x0270, 0x024c, 0xfd6d, 0xfd5e,
+ 0xffa5, 0xfd06, 0xfef3, 0x02dc, 0xffb8, 0xffe5,
+ 0x0380, 0xffde, 0xfca7, 0xff49, 0x00b1, 0x0080,
+ 0x013c, 0x029a, 0x03bd, 0x03ef, 0x058d, 0x071c,
+ 0x04a2, 0x0236, 0x02df, 0x0517, 0x07d6, 0x064e,
+ 0x027c, 0x0436, 0x05b2, 0x032c, 0x0444, 0x05c0,
+ 0x02f8, 0x0276, 0x0458, 0x0434, 0x0386, 0x0371,
+ 0x03fb, 0x0504, 0x05a0, 0x05c4, 0x049f, 0x0353,
+ 0x03ea, 0x0454, 0x045e, 0x04ed, 0x0487, 0x0543,
+ 0x0645, 0x0470, 0x04d1, 0x06ab, 0x0434, 0x0373,
+ 0x0615, 0x05b9, 0x055f, 0x06b2, 0x06a2, 0x0769,
+ 0x0854, 0x079b, 0x075f, 0x0747, 0x0794, 0x072a,
+ 0x041a, 0x034c, 0x0311, 0xfeaf, 0xfe16, 0x0036,
+ 0xfc90, 0xfaaa, 0xfce5, 0xfc03, 0xfb54, 0xfb5a,
+ 0xf9a3, 0xfa94, 0xfb8b, 0xfa80, 0xfbe2, 0xfbff,
+ 0xfa12, 0xfae6, 0xfaf8, 0xf9d0, 0xfa45, 0xf9be,
+ 0xfa3c, 0xfbed, 0xfa05, 0xf837, 0xf83f, 0xf6a0,
+ 0xf6ff, 0xf890, 0xf677, 0xf5bc, 0xf7d3, 0xf6c2,
+ 0xf417, 0xf36e, 0xf2d7, 0xf196, 0xf20a, 0xf4bf,
+ 0xf633, 0xf460, 0xf2a6, 0xf31e, 0xf3d4, 0xf394,
+ 0xf32c, 0xf39b, 0xf3d1, 0xf295, 0xf1f3, 0xf257,
+ 0xf1f3, 0xf24b, 0xf3dd, 0xf49e, 0xf5de, 0xf890,
+ 0xf9ec, 0xf8f5, 0xf844, 0xf9c3, 0xfb50, 0xfb3e,
+ 0xfc63, 0xfe1b, 0xfc8c, 0xfae7, 0xfc07, 0xfb98,
+ 0xf9c7, 0xfa91, 0xfbd8, 0xfb8b, 0xfbdb, 0xfc22,
+ 0xfaba, 0xf9c6, 0xf9e3, 0xf99f, 0xfa0e, 0xfa1a,
+ 0xf7d6, 0xf7cb, 0xfa45, 0xf888, 0xf618, 0xf8fd,
+ 0xfb39, 0xfa4d, 0xfae3, 0xfbcd, 0xfb58, 0xfafd,
+ 0xfafd, 0xfc04, 0xfc68, 0xfab4, 0xfabb, 0xfc61,
+ 0xfc94, 0xfd31, 0xfd9c, 0xfc77, 0xfd37, 0xfecc,
+ 0xfe88, 0xff65, 0x011c, 0x0092, 0xff93, 0x0001,
+ 0x0143, 0x02b5, 0x026c, 0x001e, 0xfff4, 0x022e,
+ 0x013f, 0xfede, 0x00a2, 0x018f, 0xfef0, 0xffeb,
+ 0x0288, 0x0191, 0x01e3, 0x034f, 0x0245, 0x02ba,
+ 0x0391, 0x0141, 0x000a, 0x00ca, 0x0097, 0x003d,
+ 0xff92, 0xfed6, 0x0001, 0x0183, 0x00f4, 0xff22,
+ 0xfec2, 0x0061, 0x013d, 0x00de, 0x0079, 0x0049,
+ 0x01f9, 0x035f, 0x0170, 0x00a4, 0x0169, 0x008c,
+ 0x01a0, 0x030c, 0x014a, 0x0071, 0xfead, 0xfbed,
+ 0xfe43, 0xfece, 0xfafe, 0xfc17, 0xfd53, 0xfb93,
+ 0xfd72, 0xfcfb, 0xfa21, 0xfcf6, 0xfd90, 0xfb25,
+ 0xfec9, 0x00d2, 0xfe39, 0xff11, 0xff8f, 0xfd58,
+ 0xfd20, 0xfd7a, 0xfe89, 0x006a, 0xff2d, 0xfddb,
+ 0xfecf, 0xfdda, 0xfca1, 0xfd88, 0xfd73, 0xfd63,
+ 0xfef7, 0xfe58, 0xfbe9, 0xfc52, 0xfd8b, 0xfc17,
+ 0xfb62, 0xfd2a, 0xfedb, 0x004a, 0x0065, 0xfece,
+ 0xffba, 0x0191, 0x003e, 0xffd7, 0x0155, 0x0191,
+ 0x02e8, 0x03fe, 0x013f, 0xff69, 0x0035, 0xff95,
+ 0xfec6, 0x0003, 0x0195, 0x0140, 0xff43, 0xff5f,
+ 0x0181, 0x01c2, 0x0222, 0x03a7, 0x032c, 0x0285,
+ 0x01a9, 0xff29, 0xfff4, 0x01fd, 0xffcd, 0xfe7b,
+ 0xfedd, 0xfda2, 0xfe9b, 0xff9b, 0xfda8, 0xfe45,
+ 0xff5f, 0xfd90, 0xfd5a, 0xfd81, 0xfcf1, 0xfea4,
+ 0xffa6, 0xffad, 0x0096, 0xffef, 0x0014, 0x01ba,
+ 0x011a, 0x00fb, 0x0167, 0x0036, 0x014c, 0x01fc,
+ 0xff98, 0xffd7, 0x00a3, 0xfe59, 0xfcdb, 0xfc15,
+ 0xfb8c, 0xfc0a, 0xfae4, 0xf95b, 0xf7f7, 0xf498,
+ 0xf351, 0xf4d9, 0xf501, 0xf548, 0xf5d9, 0xf447,
+ 0xf28f, 0xf365, 0xf684, 0xf803, 0xf75e, 0xf997,
+ 0xfbc0, 0xfa54, 0xfb5a, 0xfdda, 0xfdd2, 0xff66,
+ 0x015f, 0x00f8, 0x014d, 0x01a5, 0x0204, 0x0401,
+ 0x04eb, 0x058c, 0x0639, 0x047a, 0x04cb, 0x0882,
+ 0x0a51, 0x0a7b, 0x0a87, 0x0ad5, 0x0bdc, 0x0ab4,
+ 0x0a0c, 0x0ccb, 0x0bdf, 0x08c3, 0x09cb, 0x082c,
+ 0x042f, 0x05d4, 0x069e, 0x03d2, 0x04ae, 0x046f,
+ 0x0080, 0x0170, 0x0430, 0x0300, 0x0386, 0x0570,
+ 0x04a2, 0x0520, 0x071e, 0x0771, 0x0875, 0x0a3c,
+ 0x0b28, 0x0ced, 0x0eb0, 0x0f25, 0x0fd0, 0x1093,
+ 0x1118, 0x117c, 0x10ba, 0x0fbf, 0x0ff1, 0x10a6,
+ 0x1134, 0x10d7, 0x0f38, 0x0daf, 0x0d16, 0x0cc3,
+ 0x0bf6, 0x0b1f, 0x0a94, 0x0937, 0x0704, 0x0519,
+ 0x043f, 0x052c, 0x059a, 0x040a, 0x039b, 0x036d,
+ 0x01ac, 0x01cd, 0x0231, 0x005e, 0x0090, 0x01a3,
+ 0x00b8, 0x00fc, 0x015c, 0xfffa, 0xff94, 0x0037,
+ 0x00e6, 0x00b6, 0xff1c, 0xff66, 0x00f1, 0x00ec,
+ 0x0223, 0x03a0, 0x02d6, 0x02c7, 0x029c, 0x014e,
+ 0x0273, 0x047c, 0x04ea, 0x0501, 0x0438, 0x0329,
+ 0x034e, 0x03dd, 0x0449, 0x0338, 0x017c, 0x01fe,
+ 0x01d6, 0xff7d, 0xff74, 0x004e, 0xfe5f, 0xfd1c,
+ 0xfe61, 0xfe61, 0xfc8e, 0xfc70, 0xfdf1, 0xfe23,
+ 0xfdfb, 0xfee8, 0xfee9, 0xfe3c, 0xfecc, 0xff6b,
+ 0xff04, 0xfeb7, 0xfe95, 0xfd68, 0xfc68, 0xfd6f,
+ 0xfdf1, 0xfcce, 0xfcf1, 0xfd66, 0xfdba, 0xffab,
+ 0xff6e, 0xfdb5, 0xffe7, 0x0168, 0xffcf, 0x0093,
+ 0x0209, 0x0282, 0x0406, 0x036a, 0x0176, 0x01f9,
+ 0x0252, 0x0289, 0x04e0, 0x06d3, 0x06e5, 0x0592,
+ 0x04ed, 0x0747, 0x08a5, 0x06ea, 0x06ab, 0x077f,
+ 0x06c4, 0x066f, 0x06c3, 0x06b4, 0x0657, 0x0558,
+ 0x0573, 0x0720, 0x0756, 0x0686, 0x06b3, 0x0690,
+ 0x0662, 0x0723, 0x06d8, 0x05ec, 0x069d, 0x06dd,
+ 0x0535, 0x04bf, 0x0634, 0x06ff, 0x0722, 0x0805,
+ 0x0909, 0x0967, 0x09b3, 0x09bf, 0x089e, 0x07a3,
+ 0x085a, 0x08e3, 0x07c2, 0x0684, 0x0641, 0x068e,
+ 0x06d6, 0x073a, 0x086f, 0x09a4, 0x09a9, 0x08fe,
+ 0x08d2, 0x0a15, 0x0b13, 0x09cf, 0x0979, 0x0ad2,
+ 0x09ee, 0x08dc, 0x098c, 0x0857, 0x0685, 0x065f,
+ 0x05f0, 0x060a, 0x0669, 0x04fb, 0x044c, 0x0565,
+ 0x05be, 0x04d8, 0x03cc, 0x03d2, 0x03ca, 0x024c,
+ 0x01dc, 0x0247, 0x0138, 0x00a2, 0x005a, 0xfef5,
+ 0xfec9, 0xff71, 0xff69, 0xff3b, 0xfe44, 0xfdea,
+ 0xfe26, 0xfc50, 0xfba1, 0xfd3a, 0xfcbd, 0xfbc0,
+ 0xfbc2, 0xfabb, 0xfaa8, 0xfbec, 0xfcb4, 0xfd80,
+ 0xfd10, 0xfbd5, 0xfc6e, 0xfcc4, 0xfbf9, 0xfca6,
+ 0xfd88, 0xfcac, 0xfbc4, 0xfc30, 0xfc16, 0xfabd,
+ 0xfb50, 0xfca9, 0xfb0d, 0xfa96, 0xfcaa, 0xfb8d,
+ 0xf942, 0xfa3d, 0xfba5, 0xfb58, 0xf9e0, 0xf863,
+ 0xf8cf, 0xf9e3, 0xf9a6, 0xf8c5, 0xf7b3, 0xf781,
+ 0xf870, 0xf8bb, 0xf96f, 0xfaa0, 0xfa3c, 0xfa5d,
+ 0xfb20, 0xfa68, 0xfa9f, 0xfb42, 0xfa5a, 0xfaae,
+ 0xfb96, 0xfad8, 0xfab5, 0xfb3d, 0xfaa2, 0xfa95,
+ 0xfbc7, 0xfc22, 0xfbeb, 0xfc3d, 0xfc09, 0xfbb0,
+ 0xfc85, 0xfda6, 0xfe19, 0xfe5b, 0xfe93, 0xfe65,
+ 0xff2a, 0x00f9, 0x00ec, 0xfff9, 0x000e, 0xfed0,
+ 0xfdb0, 0xfedc, 0xfe36, 0xfc48, 0xfd57, 0xfe20,
+ 0xfce2, 0xfcfc, 0xfd0f, 0xfc7e, 0xfd91, 0xfe1a,
+ 0xfdb0, 0xfe71, 0xfeaf, 0xfdab, 0xfcb4, 0xfc9e,
+ 0xfdb2, 0xfde5, 0xfcf0, 0xfd16, 0xfd09, 0xfc35,
+ 0xfd51, 0xfebd, 0xfda6, 0xfc86, 0xfd44, 0xfe7e,
+ 0xfead, 0xfe51, 0xff6f, 0xffde, 0xfe5b, 0xffc8,
+ 0x02c0, 0x0299, 0x0280, 0x03ee, 0x0420, 0x03c5,
+ 0x0442, 0x04b7, 0x04e0, 0x0536, 0x0519, 0x0525,
+ 0x0576, 0x03fc, 0x0316, 0x0439, 0x02ec, 0x005d,
+ 0x00e1, 0x0246, 0x01dd, 0x00e8, 0x0067, 0x0014,
+ 0x0029, 0x0033, 0xffb6, 0xffb5, 0xffe0, 0xff6a,
+ 0xfeb6, 0xfe26, 0xfe59, 0xfede, 0xff55, 0x002d,
+ 0x0081, 0x0048, 0x0027, 0x00ad, 0x01c8, 0x0191,
+ 0x01a1, 0x0313, 0x01fe, 0x00a8, 0x02de, 0x03b1,
+ 0x0211, 0x028f, 0x0309, 0x0201, 0x02f1, 0x041d,
+ 0x0443, 0x05e0, 0x0686, 0x0597, 0x0572, 0x04ea,
+ 0x053e, 0x068d, 0x057d, 0x045b, 0x04f3, 0x0435,
+ 0x0312, 0x0371, 0x034b, 0x0261, 0x016f, 0x0044,
+ 0x00e0, 0x01d7, 0x00be, 0x0194, 0x0357, 0x0186,
+ 0x004c, 0x0198, 0x01a2, 0x0139, 0x0260, 0x0334,
+ 0x022f, 0x01b5, 0x0363, 0x0458, 0x03ca, 0x0415,
+ 0x03d5, 0x01bb, 0x00b7, 0x008f, 0xff7c, 0xffbb,
+ 0x003a, 0xfeef, 0xfef4, 0xffb8, 0xff3c, 0x0065,
+ 0x0267, 0x0214, 0x01a5, 0x02a9, 0x02ce, 0x026b,
+ 0x0350, 0x0406, 0x0374, 0x02f2, 0x02d9, 0x01b6,
+ 0x0028, 0x0030, 0xffe0, 0xfe56, 0xfdc2, 0xfcd7,
+ 0xfbbb, 0xfbb9, 0xfafc, 0xfa7d, 0xfa6c, 0xf909,
+ 0xf841, 0xf862, 0xf7fb, 0xf772, 0xf6ca, 0xf5f6,
+ 0xf531, 0xf43f, 0xf343, 0xf304, 0xf2cc, 0xf1f3,
+ 0xf238, 0xf2c5, 0xf23f, 0xf22c, 0xf28b, 0xf395,
+ 0xf440, 0xf34d, 0xf442, 0xf672, 0xf741, 0xf8fd,
+ 0xfb5d, 0xfced, 0xfd83, 0xfd87, 0xfed7, 0xff93,
+ 0xfeea, 0xffe7, 0x014d, 0x019b, 0x0216, 0x022c,
+ 0x01e1, 0x0224, 0x0252, 0x026d, 0x0308, 0x0323,
+ 0x0274, 0x01bb, 0x00a1, 0xff8f, 0xff6a, 0xff26,
+ 0xfe02, 0xfcd8, 0xfc86, 0xfd30, 0xfdeb, 0xfdd7,
+ 0xfe11, 0xffb1, 0x012a, 0x01ad, 0x02a0, 0x0429,
+ 0x0569, 0x06ae, 0x0801, 0x0889, 0x0920, 0x0a6b,
+ 0x0b5d, 0x0c79, 0x0d60, 0x0dc7, 0x0f47, 0x0ffa,
+ 0x0fb9, 0x106b, 0x0fd9, 0x0f25, 0x0fba, 0x0f27,
+ 0x0dd6, 0x0c32, 0x0afa, 0x0ac1, 0x09a4, 0x090b,
+ 0x08f5, 0x0769, 0x0689, 0x066c, 0x051f, 0x0450,
+ 0x0549, 0x04da, 0x0237, 0x01cf, 0x029c, 0x01a5,
+ 0x014e, 0x015a, 0x00cb, 0x00ce, 0x00cd, 0x00f9,
+ 0x01cd, 0x02b2, 0x02ef, 0x02ea, 0x03c9, 0x03d6,
+ 0x0329, 0x0474, 0x05df, 0x0592, 0x0599, 0x069e,
+ 0x06a8, 0x05f3, 0x06fa, 0x083d, 0x07e0, 0x07d8,
+ 0x082f, 0x078b, 0x067b, 0x05df, 0x05f5, 0x061a,
+ 0x0569, 0x0412, 0x0341, 0x02b8, 0x015d, 0x005b,
+ 0x0090, 0x0081, 0xff5f, 0xfe7f, 0xfe46, 0xfdd5,
+ 0xfe84, 0xff63, 0xfddc, 0xfd09, 0xfdf7, 0xfdf9,
+ 0xfe71, 0xff70, 0xfe8b, 0xfd55, 0xfdc4, 0xfd76,
+ 0xfc4e, 0xfd34, 0xfdfb, 0xfda8, 0xfe59, 0xfe34,
+ 0xfe0f, 0xfedf, 0xfe4e, 0xfe36, 0xfe68, 0xfd13,
+ 0xfc8d, 0xfd03, 0xfd8a, 0xfdf4, 0xfd30, 0xfcca,
+ 0xfe2b, 0xfef9, 0xfe8d, 0xfe7d, 0xfe23, 0xfe45,
+ 0xff18, 0xfdf7, 0xfd76, 0xfe2e, 0xfd20, 0xfd70,
+ 0xfe1b, 0xfc97, 0xfc5f, 0xfc6d, 0xfbf1, 0xfcc4,
+ 0xfda2, 0xfea0, 0xff78, 0xff7b, 0x0058, 0x01cd,
+ 0x01f0, 0x0172, 0x01dc, 0x01c3, 0x0109, 0x0137,
+ 0x0148, 0x012f, 0x00b9, 0x0072, 0x01d2, 0x022d,
+ 0x022b, 0x0367, 0x0344, 0x0327, 0x041e, 0x0510,
+ 0x0584, 0x047d, 0x0420, 0x04ba, 0x04f0, 0x053a,
+ 0x04a9, 0x049a, 0x04b0, 0x0396, 0x0461, 0x056d,
+ 0x0480, 0x03c8, 0x03bf, 0x04c1, 0x059a, 0x052a,
+ 0x0542, 0x057e, 0x050e, 0x0559, 0x065f, 0x0611,
+ 0x04fd, 0x0508, 0x04ed, 0x04e9, 0x0554, 0x0492,
+ 0x040b, 0x037e, 0x021a, 0x021f, 0x026d, 0x017a,
+ 0x00e7, 0x00ed, 0x004f, 0xff58, 0xff63, 0xffff,
+ 0x001d, 0xffae, 0xff1b, 0xff11, 0xff57, 0xff63,
+ 0xfea1, 0xfdf5, 0xfe78, 0xfe67, 0xfe4e, 0xfeb2,
+ 0xfd8f, 0xfc65, 0xfbc8, 0xfb1f, 0xfb20, 0xfaea,
+ 0xfacb, 0xfa73, 0xf9cd, 0xf9e9, 0xf9ee, 0xfa52,
+ 0xfa0f, 0xf929, 0xf98d, 0xf8d3, 0xf83e, 0xf8c6,
+ 0xf7fe, 0xf7e8, 0xf76c, 0xf64c, 0xf6ad, 0xf634,
+ 0xf5c1, 0xf5d8, 0xf587, 0xf5e5, 0xf592, 0xf59a,
+ 0xf658, 0xf660, 0xf71a, 0xf74f, 0xf6b7, 0xf6d9,
+ 0xf789, 0xf830, 0xf7c5, 0xf816, 0xf846, 0xf6ef,
+ 0xf794, 0xf7da, 0xf672, 0xf705, 0xf7c0, 0xf7fa,
+ 0xf8bd, 0xf938, 0xf945, 0xf89d, 0xf875, 0xf8ef,
+ 0xf918, 0xf92f, 0xf934, 0xfa55, 0xfb5f, 0xfb1a,
+ 0xfb9f, 0xfc0b, 0xfbbb, 0xfc1e, 0xfcb6, 0xfd04,
+ 0xfd05, 0xfd46, 0xfd85, 0xfc91, 0xfba8, 0xfc32,
+ 0xfceb, 0xfd5d, 0xff23, 0x005e, 0xff6d, 0xffbe,
+ 0x00f6, 0x018f, 0x030d, 0x03e9, 0x03bd, 0x037e,
+ 0x0361, 0x03d0, 0x0313, 0x023b, 0x0280, 0x01f5,
+ 0x016b, 0x0145, 0x00d1, 0x0054, 0x0035, 0x00b7,
+ 0x0064, 0x004d, 0x00ba, 0xff66, 0xfed9, 0xff65,
+ 0xfef0, 0xfef9, 0xff9a, 0xfff1, 0xff9c, 0xff9b,
+ 0x004e, 0xfff4, 0x0001, 0x0099, 0x0046, 0x0035,
+ 0x0054, 0x00eb, 0x0107, 0x0036, 0x00a0, 0x00ab,
+ 0x006a, 0x00e7, 0x0086, 0x0092, 0x009a, 0xfff8,
+ 0xfff6, 0xffaf, 0xffc7, 0x0026, 0x001b, 0x007f,
+ 0x0060, 0xfff2, 0xffde, 0xffd5, 0x000c, 0x0063,
+ 0x00e0, 0x00fe, 0x0134, 0x01bc, 0x01b0, 0x01ac,
+ 0x00ba, 0xffee, 0x0091, 0xffa3, 0xff05, 0xffab,
+ 0xfef0, 0xfedd, 0xff7f, 0xffbc, 0xffeb, 0xffd5,
+ 0x0085, 0x0096, 0x0048, 0x0126, 0x00eb, 0x0087,
+ 0x011f, 0x0110, 0x009a, 0x0034, 0x002e, 0x0003,
+ 0xffcc, 0x0000, 0xff99, 0xffbd, 0x0046, 0xffcb,
+ 0xffa4, 0xffca, 0xffef, 0x00ba, 0x021b, 0x0338,
+ 0x034e, 0x03e7, 0x0428, 0x030b, 0x0370, 0x0436,
+ 0x03fb, 0x047d, 0x04ed, 0x0506, 0x04e4, 0x045e,
+ 0x0474, 0x042a, 0x035e, 0x039c, 0x03a8, 0x026b,
+ 0x01a2, 0x0147, 0x001c, 0xffc9, 0x0065, 0x0042,
+ 0xfffa, 0x0005, 0x0094, 0x012b, 0x0121, 0x0195,
+ 0x0214, 0x01f8, 0x0229, 0x029d, 0x02b1, 0x0257,
+ 0x02d6, 0x0334, 0x0227, 0x022a, 0x02ce, 0x029f,
+ 0x0274, 0x020c, 0x01e4, 0x0174, 0x0134, 0x01d8,
+ 0x00a3, 0xff86, 0xffe6, 0xfee5, 0xfe1e, 0xfe23,
+ 0xfd64, 0xfc52, 0xfc14, 0xfd1a, 0xfc96, 0xfb10,
+ 0xfaf5, 0xfa33, 0xf95b, 0xf933, 0xf88c, 0xf799,
+ 0xf602, 0xf553, 0xf57a, 0xf4c6, 0xf481, 0xf453,
+ 0xf418, 0xf46c, 0xf528, 0xf693, 0xf6ee, 0xf796,
+ 0xf990, 0xf9fb, 0xfae6, 0xfc7e, 0xfc87, 0xfd8e,
+ 0xfefa, 0xff5d, 0x0015, 0x0100, 0x01e9, 0x023e,
+ 0x0290, 0x038d, 0x0351, 0x02e1, 0x0378, 0x030a,
+ 0x021e, 0x01d4, 0x0111, 0x004c, 0x001a, 0xff89,
+ 0xff10, 0xff1f, 0xfefb, 0xff0b, 0xff2e, 0xfee7,
+ 0xff05, 0xffe0, 0x0112, 0x0186, 0x012a, 0x0198,
+ 0x025d, 0x02a2, 0x0328, 0x03d4, 0x047e, 0x0567,
+ 0x0691, 0x07f7, 0x08a1, 0x08a5, 0x0a35, 0x0c93,
+ 0x0d4c, 0x0e58, 0x1016, 0x0fe4, 0x1014, 0x116e,
+ 0x10ff, 0x102c, 0x100d, 0x0f8f, 0x0ed0, 0x0ddb,
+ 0x0d30, 0x0c42, 0x0b06, 0x0aac, 0x0a0f, 0x093c,
+ 0x08ae, 0x0721, 0x0582, 0x0492, 0x03b3, 0x02eb,
+ 0x0227, 0x01a8, 0x0163, 0x0135, 0x012b, 0x0106,
+ 0x013b, 0x01b4, 0x0209, 0x0217, 0x01dd, 0x0210,
+ 0x0248, 0x0279, 0x0337, 0x0397, 0x0425, 0x0512,
+ 0x0566, 0x05d1, 0x0602, 0x05e3, 0x0639, 0x066d,
+ 0x0696, 0x0697, 0x064b, 0x0692, 0x0708, 0x073e,
+ 0x0770, 0x0772, 0x0745, 0x0749, 0x0788, 0x073d,
+ 0x06c4, 0x06ce, 0x06b6, 0x06b2, 0x06b9, 0x068b,
+ 0x068b, 0x05f6, 0x055e, 0x055b, 0x048e, 0x03de,
+ 0x043c, 0x03f0, 0x02bf, 0x0246, 0x0232, 0x0167,
+ 0x011a, 0x014a, 0x00be, 0x00d5, 0x017c, 0x012a,
+ 0x00c7, 0x0159, 0x0235, 0x024e, 0x0233, 0x0211,
+ 0x013a, 0x0132, 0x0189, 0x00e1, 0x00c7, 0x00e7,
+ 0x00c2, 0x00e4, 0x00ab, 0x00e2, 0x0161, 0x0197,
+ 0x0217, 0x01fa, 0x0204, 0x028b, 0x0231, 0x02b7,
+ 0x03cd, 0x0362, 0x036d, 0x0442, 0x0406, 0x038c,
+ 0x039c, 0x039c, 0x0380, 0x037b, 0x03c3, 0x040d,
+ 0x03b3, 0x038e, 0x03d5, 0x030f, 0x0210, 0x021f,
+ 0x0239, 0x01f6, 0x01b0, 0x017e, 0x0168, 0x0145,
+ 0x01a6, 0x029a, 0x0313, 0x034e, 0x03f7, 0x0442,
+ 0x0428, 0x0455, 0x0428, 0x03fa, 0x0453, 0x042c,
+ 0x03be, 0x0383, 0x034b, 0x0355, 0x037d, 0x0411,
+ 0x04b1, 0x050b, 0x05e8, 0x05dd, 0x0544, 0x061b,
+ 0x06c6, 0x06e6, 0x0716, 0x0677, 0x0607, 0x0649,
+ 0x0654, 0x05cd, 0x054f, 0x059a, 0x05a7, 0x0552,
+ 0x05a7, 0x061f, 0x063b, 0x060d, 0x0615, 0x0651,
+ 0x060b, 0x0587, 0x0491, 0x036d, 0x02ce, 0x0242,
+ 0x0201, 0x0196, 0x00e1, 0x00ca, 0x007c, 0x004d,
+ 0x004c, 0xff2b, 0xfe4c, 0xfe62, 0xfe6f, 0xfe4c,
+ 0xfe01, 0xfe0c, 0xfdf6, 0xfd9c, 0xfdf2, 0xfe34,
+ 0xfdc8, 0xfd2b, 0xfc93, 0xfc06, 0xfb6c, 0xfb05,
+ 0xfa70, 0xf9bf, 0xf9c6, 0xf985, 0xf8c7, 0xf892,
+ 0xf85d, 0xf7ee, 0xf7a2, 0xf783, 0xf79a, 0xf767,
+ 0xf72a, 0xf755, 0xf707, 0xf686, 0xf6d0, 0xf6fd,
+ 0xf6f8, 0xf792, 0xf7cb, 0xf785, 0xf780, 0xf769,
+ 0xf769, 0xf78e, 0xf7cb, 0xf857, 0xf8bf, 0xf926,
+ 0xf960, 0xf91f, 0xf909, 0xf912, 0xf957, 0xf9e2,
+ 0xfa27, 0xfa4b, 0xfa49, 0xfa85, 0xfaf5, 0xfae6,
+ 0xfb4a, 0xfbe2, 0xfbf1, 0xfc85, 0xfd07, 0xfcb2,
+ 0xfc98, 0xfd11, 0xfd86, 0xfda2, 0xfdb9, 0xfde7,
+ 0xfdef, 0xfdf7, 0xfe24, 0xfe76, 0xfea2, 0xfef4,
+ 0xffbb, 0x0022, 0x0075, 0x011c, 0x0178, 0x01e4,
+ 0x0260, 0x02bf, 0x0350, 0x034a, 0x02c2, 0x02cf,
+ 0x030e, 0x02a5, 0x020e, 0x0205, 0x021e, 0x020f,
+ 0x0223, 0x021a, 0x01bd, 0x0173, 0x018d, 0x0165,
+ 0x00f2, 0x0135, 0x017d, 0x0147, 0x0171, 0x019c,
+ 0x01a9, 0x01a8, 0x013a, 0x011c, 0x013c, 0x0134,
+ 0x017b, 0x01c2, 0x01d4, 0x019a, 0x0114, 0x00fa,
+ 0x00e0, 0x0045, 0xffd0, 0xffa6, 0xffc9, 0xfff6,
+ 0xffbf, 0xffe6, 0x0058, 0x002c, 0xfffe, 0xffed,
+ 0xff5d, 0xff27, 0xff54, 0xff00, 0xfebd, 0xfec8,
+ 0xfe8e, 0xfe4e, 0xfe33, 0xfdfc, 0xfdc1, 0xfd89,
+ 0xfd1c, 0xfcbd, 0xfcb2, 0xfc72, 0xfbf4, 0xfc11,
+ 0xfc9f, 0xfcd7, 0xfce0, 0xfd1e, 0xfd5c, 0xfda3,
+ 0xfe25, 0xfe36, 0xfdda, 0xfe40, 0xfefa, 0xff02,
+ 0xfee6, 0xfeff, 0xff26, 0xff4c, 0xff14, 0xfeba,
+ 0xfe61, 0xfdab, 0xfd33, 0xfd28, 0xfd06, 0xfd18,
+ 0xfd3d, 0xfd32, 0xfd6a, 0xfdac, 0xfda8, 0xfdeb,
+ 0xfe89, 0xfeff, 0xff74, 0x0016, 0x0067, 0x008c,
+ 0x00f7, 0x012c, 0x0121, 0x0135, 0x014a, 0x014d,
+ 0x00f6, 0x0096, 0x00f0, 0x0137, 0x00fa, 0x011f,
+ 0x0191, 0x01e3, 0x0219, 0x021f, 0x020c, 0x01d0,
+ 0x01a3, 0x019b, 0x010e, 0x009e, 0x00dd, 0x00bf,
+ 0x0097, 0x00d6, 0x00bc, 0x00e7, 0x0161, 0x0135,
+ 0x0130, 0x0196, 0x0186, 0x0168, 0x0181, 0x013a,
+ 0x00c8, 0x00b2, 0x00c4, 0x00ad, 0x0095, 0x007b,
+ 0x0052, 0x0089, 0x0108, 0x0116, 0x00d5, 0x0108,
+ 0x017f, 0x0188, 0x0151, 0x013f, 0x0105, 0x0082,
+ 0x0000, 0xff82, 0xfec4, 0xfddb, 0xfd3b, 0xfc99,
+ 0xfb93, 0xfadf, 0xfa62, 0xf997, 0xf919, 0xf87e,
+ 0xf740, 0xf672, 0xf600, 0xf536, 0xf4af, 0xf4c7,
+ 0xf506, 0xf4f9, 0xf509, 0xf5c4, 0xf679, 0xf70d,
+ 0xf82e, 0xf957, 0xfa54, 0xfb38, 0xfb90, 0xfc0c,
+ 0xfd14, 0xfdd9, 0xfe59, 0xfed5, 0xff54, 0xffe7,
+ 0x003c, 0x009d, 0x0156, 0x01c0, 0x01bd, 0x01b7,
+ 0x01a1, 0x0179, 0x0139, 0x00c4, 0x003c, 0xffaf,
+ 0xff01, 0xfe7c, 0xfe4d, 0xfdf9, 0xfdb3, 0xfe05,
+ 0xfe48, 0xfe40, 0xfe90, 0xfeea, 0xfef1, 0xfefe,
+ 0xff49, 0xffb8, 0xffd7, 0xffe9, 0x0084, 0x011b,
+ 0x019e, 0x029c, 0x0383, 0x041e, 0x04fe, 0x0618,
+ 0x071e, 0x07ec, 0x08cf, 0x09e6, 0x0a86, 0x0ad4,
+ 0x0b80, 0x0c13, 0x0c34, 0x0c47, 0x0c42, 0x0c19,
+ 0x0bf9, 0x0bc1, 0x0b75, 0x0b3c, 0x0ab1, 0x09ec,
+ 0x0962, 0x0872, 0x0731, 0x0671, 0x0549, 0x039c,
+ 0x02bd, 0x0216, 0x00f6, 0x0012, 0xffa0, 0xff8e,
+ 0xff9d, 0xffa1, 0xfff1, 0x003d, 0x0090, 0x015d,
+ 0x0219, 0x02ce, 0x03bc, 0x0461, 0x050a, 0x05b4,
+ 0x05c4, 0x05b2, 0x05ce, 0x05eb, 0x061d, 0x062c,
+ 0x0625, 0x0666, 0x06de, 0x073e, 0x0736, 0x073c,
+ 0x07ce, 0x0823, 0x07f1, 0x07da, 0x079c, 0x06ed,
+ 0x0648, 0x05cd, 0x057b, 0x0588, 0x05ab, 0x0590,
+ 0x0578, 0x0560, 0x0516, 0x04ee, 0x04ef, 0x04ad,
+ 0x0440, 0x040d, 0x03e9, 0x0354, 0x0290, 0x021f,
+ 0x01a3, 0x0125, 0x00fc, 0x00af, 0x0050, 0x0019,
+ 0xffb0, 0xff4e, 0xfedf, 0xfe53, 0xfe37, 0xfe0b,
+ 0xfdbc, 0xfdef, 0xfdd1, 0xfd6e, 0xfd7d, 0xfd2a,
+ 0xfcb5, 0xfce0, 0xfd13, 0xfd53, 0xfdca, 0xfe2a,
+ 0xfe9d, 0xfee3, 0xfed4, 0xfec3, 0xfe8d, 0xfe47,
+ 0xfe2f, 0xfe43, 0xfeb1, 0xff07, 0xfed3, 0xfed3,
+ 0xff41, 0xff8a, 0xffea, 0x007d, 0x00b9, 0x00ec,
+ 0x015d, 0x0175, 0x0151, 0x0156, 0x0142, 0x012e,
+ 0x0112, 0x00c3, 0x00b0, 0x009b, 0x003b, 0x0022,
+ 0x0016, 0xffe5, 0x0019, 0x003e, 0xfff3, 0xffe0,
+ 0x0016, 0x003b, 0x006d, 0x00dd, 0x0160, 0x01be,
+ 0x022f, 0x02c0, 0x0317, 0x033a, 0x0365, 0x03a0,
+ 0x03e3, 0x0426, 0x0476, 0x04cc, 0x04ed, 0x04d3,
+ 0x04bc, 0x04c2, 0x04b8, 0x04c3, 0x050e, 0x0516,
+ 0x04e8, 0x051e, 0x0564, 0x056e, 0x0593, 0x05d7,
+ 0x060c, 0x0628, 0x066d, 0x06ee, 0x0730, 0x0761,
+ 0x07a4, 0x076d, 0x0737, 0x074e, 0x0717, 0x0704,
+ 0x0746, 0x0733, 0x06fe, 0x06e0, 0x06b4, 0x0678,
+ 0x0613, 0x05eb, 0x060d, 0x05ca, 0x055e, 0x053d,
+ 0x052d, 0x050e, 0x04bd, 0x0457, 0x040a, 0x0379,
+ 0x02e4, 0x02bc, 0x026b, 0x01c0, 0x0124, 0x0093,
+ 0x0040, 0x003b, 0x0011, 0xffd4, 0xff9f, 0xff32,
+ 0xfec4, 0xfe6f, 0xfdf6, 0xfd77, 0xfcf7, 0xfc72,
+ 0xfc0f, 0xfba2, 0xfb43, 0xfaf1, 0xfa54, 0xf9e9,
+ 0xf9cd, 0xf96c, 0xf94b, 0xf978, 0xf94a, 0xf960,
+ 0xf9be, 0xf9bf, 0xf9eb, 0xfa42, 0xfa39, 0xfa16,
+ 0xf9f7, 0xf9d4, 0xf9d0, 0xf9d6, 0xfa09, 0xfa67,
+ 0xfac5, 0xfb29, 0xfb51, 0xfb39, 0xfb1d, 0xfadc,
+ 0xfa95, 0xfa4f, 0xf9c6, 0xf96c, 0xf979, 0xf976,
+ 0xf96b, 0xf977, 0xf95f, 0xf941, 0xf95c, 0xf984,
+ 0xf999, 0xf9bc, 0xf9e4, 0xfa03, 0xfa5c, 0xfb0a,
+ 0xfbb1, 0xfbff, 0xfc27, 0xfc95, 0xfd29, 0xfda2,
+ 0xfe22, 0xfe6e, 0xfe54, 0xfe4f, 0xfe5e, 0xfe26,
+ 0xfdd6, 0xfd7a, 0xfd0e, 0xfccf, 0xfcc6, 0xfce2,
+ 0xfd00, 0xfd01, 0xfd36, 0xfd91, 0xfdbc, 0xfdf9,
+ 0xfe40, 0xfe59, 0xfeb0, 0xff23, 0xff48, 0xff82,
+ 0xffc2, 0xffbc, 0xffdf, 0x001b, 0x0038, 0x005d,
+ 0x0042, 0x0011, 0x0035, 0x0023, 0xffeb, 0xffd4,
+ 0xff5c, 0xfef8, 0xff0e, 0xfef8, 0xfeff, 0xff56,
+ 0xff7b, 0xffb1, 0x0007, 0x0037, 0x0077, 0x00bf,
+ 0x00ee, 0x011a, 0x0154, 0x01b2, 0x01c7, 0x019d,
+ 0x01dd, 0x01f4, 0x0170, 0x00ec, 0x0052, 0xffb2,
+ 0xff66, 0xff1a, 0xff04, 0xff4a, 0xff65, 0xffa3,
+ 0x0035, 0x0097, 0x00de, 0x0113, 0x011b, 0x013c,
+ 0x0148, 0x0123, 0x0121, 0x010e, 0x00d7, 0x00c1,
+ 0x00b0, 0x008f, 0x0045, 0xffc8, 0xff6d, 0xff24,
+ 0xfecc, 0xfec4, 0xfec1, 0xfe6a, 0xfe30, 0xfe2a,
+ 0xfe38, 0xfe51, 0xfe32, 0xfe30, 0xfea2, 0xff1d,
+ 0xff87, 0xfff7, 0x005e, 0x00f4, 0x0164, 0x015f,
+ 0x0175, 0x019c, 0x0168, 0x012e, 0x0135, 0x0143,
+ 0x0132, 0x0137, 0x0169, 0x0166, 0x0132, 0x0139,
+ 0x014c, 0x012a, 0x010d, 0x00ff, 0x00d8, 0x009c,
+ 0x0072, 0x0049, 0xfff1, 0xffac, 0xffb2, 0xffc9,
+ 0xfffe, 0x0062, 0x00a1, 0x00a4, 0x00b3, 0x00e1,
+ 0x00e9, 0x00bd, 0x00cf, 0x0112, 0x0111, 0x011f,
+ 0x0178, 0x01c1, 0x0211, 0x026c, 0x0294, 0x02e8,
+ 0x036c, 0x03bb, 0x041b, 0x048b, 0x04a4, 0x04a5,
+ 0x04a8, 0x0494, 0x0499, 0x047e, 0x041f, 0x03b3,
+ 0x02f7, 0x021f, 0x01b5, 0x0151, 0x00cf, 0x0084,
+ 0x0010, 0xff5f, 0xfebd, 0xfdfc, 0xfd2c, 0xfc63,
+ 0xfb70, 0xfab1, 0xfa59, 0xf9f0, 0xf965, 0xf8d8,
+ 0xf854, 0xf819, 0xf7ef, 0xf7a6, 0xf7a8, 0xf7f0,
+ 0xf857, 0xf918, 0xf9d0, 0xfa2d, 0xfa92, 0xfafb,
+ 0xfb4c, 0xfbd9, 0xfc94, 0xfd4e, 0xfe08, 0xfead,
+ 0xff47, 0xffc1, 0x000e, 0x0058, 0x0050, 0xffe9,
+ 0xffd1, 0xffea, 0xffaf, 0xff55, 0xfeec, 0xfe80,
+ 0xfe59, 0xfe36, 0xfde1, 0xfd95, 0xfd51, 0xfd1b,
+ 0xfcff, 0xfcd7, 0xfcb4, 0xfca0, 0xfc84, 0xfc7d,
+ 0xfc89, 0xfc9e, 0xfcbe, 0xfce2, 0xfd51, 0xfe18,
+ 0xfec2, 0xff68, 0x0058, 0x0153, 0x0241, 0x0358,
+ 0x0475, 0x0560, 0x063a, 0x0749, 0x0863, 0x0945,
+ 0x0a1c, 0x0ae8, 0x0b6d, 0x0bd7, 0x0c4c, 0x0ca3,
+ 0x0cca, 0x0cc3, 0x0c9c, 0x0c5e, 0x0c1b, 0x0bec,
+ 0x0b81, 0x0abc, 0x0a21, 0x0996, 0x08cc, 0x0824,
+ 0x0786, 0x06c8, 0x0664, 0x0648, 0x0614, 0x05ce,
+ 0x056c, 0x0500, 0x0493, 0x03ff, 0x038e, 0x0343,
+ 0x02ce, 0x0265, 0x020b, 0x01a5, 0x018e, 0x019b,
+ 0x0179, 0x0173, 0x0182, 0x017d, 0x0184, 0x019d,
+ 0x01df, 0x0253, 0x02bd, 0x0321, 0x037e, 0x03ca,
+ 0x0429, 0x047f, 0x04c0, 0x050f, 0x0545, 0x0555,
+ 0x0549, 0x0524, 0x0520, 0x0525, 0x04f0, 0x04c7,
+ 0x04c0, 0x04a5, 0x0485, 0x045d, 0x0437, 0x043f,
+ 0x0440, 0x042a, 0x043a, 0x0458, 0x0450, 0x0419,
+ 0x03c6, 0x037c, 0x032d, 0x02cf, 0x0285, 0x0230,
+ 0x01ad, 0x0130, 0x00de, 0x00a6, 0x0080, 0x006c,
+ 0x0068, 0x0073, 0x0082, 0x005f, 0x000f, 0xffca,
+ 0xff67, 0xfed9, 0xfe87, 0xfe52, 0xfdf8, 0xfdd2,
+ 0xfde4, 0xfddd, 0xfdd3, 0xfdf1, 0xfe29, 0xfe67,
+ 0xfeb5, 0xff2a, 0xff94, 0xffda, 0x0024, 0x004b,
+ 0x004e, 0x0070, 0x006e, 0x003e, 0x0041, 0x0053,
+ 0x0059, 0x0080, 0x00b1, 0x00df, 0x010e, 0x0127,
+ 0x014d, 0x0175, 0x0168, 0x013d, 0x0114, 0x00ff,
+ 0x0107, 0x0120, 0x015b, 0x01b7, 0x020f, 0x0267,
+ 0x02bd, 0x0317, 0x0368, 0x0383, 0x03a8, 0x0403,
+ 0x0435, 0x0461, 0x04b4, 0x04e3, 0x0517, 0x0558,
+ 0x0566, 0x0595, 0x05e6, 0x060c, 0x0652, 0x06c0,
+ 0x0716, 0x0774, 0x07ce, 0x0810, 0x0851, 0x087c,
+ 0x089c, 0x08c1, 0x08e2, 0x0901, 0x08e3, 0x089b,
+ 0x088a, 0x0868, 0x081e, 0x07fc, 0x07b3, 0x0734,
+ 0x06ea, 0x06bf, 0x06a8, 0x06bf, 0x06e3, 0x071f,
+ 0x0756, 0x075d, 0x0786, 0x07cc, 0x07e3, 0x07d9,
+ 0x07b6, 0x0783, 0x075c, 0x071c, 0x06b9, 0x064f,
+ 0x05eb, 0x05a7, 0x0578, 0x055c, 0x056a, 0x0565,
+ 0x0543, 0x0515, 0x0499, 0x0405, 0x03c3, 0x038f,
+ 0x0349, 0x032c, 0x032a, 0x0325, 0x0307, 0x02cb,
+ 0x0287, 0x021e, 0x0195, 0x0106, 0x004d, 0xff99,
+ 0xff24, 0xfeb1, 0xfe3c, 0xfdd4, 0xfd3a, 0xfc90,
+ 0xfbf6, 0xfb40, 0xfaa1, 0xfa37, 0xf9ce, 0xf96c,
+ 0xf916, 0xf8c1, 0xf88e, 0xf866, 0xf828, 0xf7f8,
+ 0xf7c2, 0xf75e, 0xf6fb, 0xf6bc, 0xf68f, 0xf671,
+ 0xf656, 0xf625, 0xf5f0, 0xf5c6, 0xf588, 0xf544,
+ 0xf52c, 0xf520, 0xf4e8, 0xf4b9, 0xf4c2, 0xf4c0,
+ 0xf49c, 0xf4a6, 0xf4cd, 0xf4da, 0xf506, 0xf558,
+ 0xf586, 0xf5b9, 0xf613, 0xf662, 0xf6b0, 0xf709,
+ 0xf749, 0xf78f, 0xf7df, 0xf813, 0xf851, 0xf89e,
+ 0xf8bb, 0xf8b5, 0xf8c6, 0xf8f6, 0xf93f, 0xf992,
+ 0xf9f3, 0xfa6c, 0xfaef, 0xfb75, 0xfbfc, 0xfc88,
+ 0xfd1c, 0xfd9d, 0xfe04, 0xfe65, 0xfeb3, 0xfeec,
+ 0xff36, 0xff8f, 0xffd6, 0x0019, 0x0069, 0x009f,
+ 0x00b6, 0x00db, 0x0108, 0x0133, 0x0175, 0x01a8,
+ 0x01b0, 0x01da, 0x022c, 0x026b, 0x0292, 0x0299,
+ 0x028f, 0x02a3, 0x02b0, 0x02a6, 0x02ad, 0x02b1,
+ 0x02a9, 0x0290, 0x022f, 0x01ae, 0x014e, 0x00f7,
+ 0x0099, 0x0038, 0xffe2, 0xffbe, 0xffa0, 0xff65,
+ 0xff4a, 0xff34, 0xfef3, 0xfeb7, 0xfe84, 0xfe58,
+ 0xfe5e, 0xfe7b, 0xfeab, 0xff03, 0xff54, 0xffa8,
+ 0x0007, 0x0031, 0x0040, 0x0056, 0x0040, 0x001c,
+ 0x0019, 0x0002, 0xffd8, 0xffbd, 0xffa2, 0xff78,
+ 0xff46, 0xff24, 0xff09, 0xfece, 0xfe94, 0xfe90,
+ 0xfe9b, 0xfe8b, 0xfe69, 0xfe5c, 0xfe77, 0xfe8b,
+ 0xfe8b, 0xfe9b, 0xfea4, 0xfe9c, 0xfe99, 0xfe8d,
+ 0xfe8f, 0xfead, 0xfeb9, 0xfeca, 0xfef7, 0xff1f,
+ 0xff67, 0xffc5, 0xffeb, 0x001c, 0x0086, 0x00c2,
+ 0x00c6, 0x00d4, 0x00ea, 0x00f4, 0x00ef, 0x00f7,
+ 0x012b, 0x0163, 0x018d, 0x01c6, 0x01e5, 0x01db,
+ 0x01f3, 0x021a, 0x0215, 0x020f, 0x021a, 0x0209,
+ 0x01ee, 0x01db, 0x01af, 0x0185, 0x017c, 0x0162,
+ 0x0125, 0x00f9, 0x00fc, 0x011e, 0x014e, 0x017d,
+ 0x01ae, 0x01df, 0x0211, 0x0250, 0x028e, 0x02bc,
+ 0x02c7, 0x02a7, 0x0292, 0x02a2, 0x02a3, 0x0295,
+ 0x0292, 0x0280, 0x026e, 0x025d, 0x0227, 0x01eb,
+ 0x01c1, 0x0185, 0x013c, 0x0103, 0x00e6, 0x00e2,
+ 0x00da, 0x00d8, 0x00d8, 0x0089, 0x000e, 0xffd3,
+ 0xff9e, 0xff25, 0xfe95, 0xfe00, 0xfd5d, 0xfcbf,
+ 0xfc13, 0xfb5b, 0xfacc, 0xfa5d, 0xf9d6, 0xf955,
+ 0xf90c, 0xf8d5, 0xf8a8, 0xf89f, 0xf89e, 0xf8af,
+ 0xf8f1, 0xf931, 0xf962, 0xf98e, 0xf998, 0xf9ae,
+ 0xf9fa, 0xfa4f, 0xfab0, 0xfb35, 0xfbc5, 0xfc71,
+ 0xfd2b, 0xfdb8, 0xfe28, 0xfe8b, 0xfed6, 0xff1a,
+ 0xff46, 0xff4b, 0xff3c, 0xff05, 0xfec9, 0xfebc,
+ 0xfeae, 0xfe8b, 0xfe71, 0xfe53, 0xfe2f, 0xfdfd,
+ 0xfd9a, 0xfd32, 0xfce3, 0xfc87, 0xfc4e, 0xfc61,
+ 0xfc8a, 0xfccb, 0xfd3e, 0xfdc0, 0xfe44, 0xfecd,
+ 0xff4c, 0xffe0, 0x008f, 0x0137, 0x01d7, 0x026a,
+ 0x02e7, 0x0371, 0x0403, 0x0483, 0x051f, 0x05d0,
+ 0x0652, 0x06c5, 0x074d, 0x07c0, 0x081b, 0x086f,
+ 0x08a6, 0x08be, 0x08cd, 0x08de, 0x08eb, 0x08e2,
+ 0x08cc, 0x08c2, 0x08ba, 0x08a6, 0x0889, 0x085a,
+ 0x0800, 0x076e, 0x06ba, 0x0605, 0x0548, 0x0470,
+ 0x0398, 0x02f6, 0x0293, 0x023d, 0x01d8, 0x0171,
+ 0x010e, 0x00c3, 0x0092, 0x0057, 0x0019, 0xffed,
+ 0xffc1, 0xffaf, 0xffb1, 0xff9c, 0xff96, 0xffb3,
+ 0xffc0, 0xffbf, 0xffca, 0xffea, 0x0026, 0x005f,
+ 0x008c, 0x00d1, 0x011d, 0x0167, 0x01d6, 0x0265,
+ 0x02f6, 0x036c, 0x03c8, 0x041e, 0x043d, 0x0411,
+ 0x03d9, 0x038d, 0x0323, 0x02cb, 0x028e, 0x0266,
+ 0x025c, 0x0276, 0x02c4, 0x0301, 0x02fe, 0x0315,
+ 0x0340, 0x0330, 0x0307, 0x02cf, 0x02a0, 0x02b7,
+ 0x02cd, 0x02c1, 0x02db, 0x02f6, 0x02fc, 0x0315,
+ 0x031e, 0x0303, 0x02ce, 0x0277, 0x0234, 0x0208,
+ 0x01c7, 0x01a6, 0x01ad, 0x019f, 0x0196, 0x01a8,
+ 0x01c3, 0x01fa, 0x023d, 0x026f, 0x029b, 0x02b0,
+ 0x02a4, 0x028b, 0x0266, 0x023f, 0x0224, 0x0207,
+ 0x01f0, 0x0203, 0x0241, 0x0290, 0x02d1, 0x0303,
+ 0x034e, 0x039c, 0x03b9, 0x03c4, 0x03d2, 0x03c4,
+ 0x03b7, 0x03b6, 0x038b, 0x0350, 0x0327, 0x02e1,
+ 0x0291, 0x0276, 0x0267, 0x022e, 0x01e1, 0x0195,
+ 0x0147, 0x0104, 0x00f5, 0x0123, 0x0165, 0x01bf,
+ 0x023e, 0x02bd, 0x032b, 0x0393, 0x03e2, 0x0415,
+ 0x043d, 0x046e, 0x04b2, 0x04fa, 0x053b, 0x0585,
+ 0x05e5, 0x0658, 0x06cf, 0x072d, 0x0772, 0x07ab,
+ 0x07da, 0x07fa, 0x0802, 0x07f4, 0x07ca, 0x0794,
+ 0x0783, 0x0792, 0x0792, 0x0783, 0x0770, 0x075c,
+ 0x0749, 0x0716, 0x06ce, 0x06a9, 0x0685, 0x0633,
+ 0x05e5, 0x05b8, 0x058a, 0x0556, 0x0545, 0x0562,
+ 0x058a, 0x05bc, 0x0600, 0x062e, 0x0647, 0x0664,
+ 0x066a, 0x065b, 0x064d, 0x062e, 0x0607, 0x060a,
+ 0x0629, 0x0626, 0x05fa, 0x05ce, 0x0598, 0x054c,
+ 0x0509, 0x04ce, 0x0490, 0x0452, 0x03ed, 0x0370,
+ 0x02f5, 0x024f, 0x019d, 0x012d, 0x00da, 0x008e,
+ 0x004b, 0xffd8, 0xff55, 0xff00, 0xfea8, 0xfe4b,
+ 0xfe13, 0xfde0, 0xfd8a, 0xfd27, 0xfcdc, 0xfca2,
+ 0xfc62, 0xfc29, 0xfbfc, 0xfbce, 0xfbb4, 0xfb9a,
+ 0xfb5d, 0xfb15, 0xfadd, 0xfab7, 0xfa8b, 0xfa4d,
+ 0xfa23, 0xf9f9, 0xf9ac, 0xf974, 0xf942, 0xf8dd,
+ 0xf886, 0xf85f, 0xf853, 0xf87b, 0xf8bd, 0xf8ee,
+ 0xf911, 0xf91c, 0xf925, 0xf938, 0xf93f, 0xf94f,
+ 0xf949, 0xf900, 0xf8b4, 0xf878, 0xf81a, 0xf7c1,
+ 0xf791, 0xf77b, 0xf77e, 0xf794, 0xf7c5, 0xf80c,
+ 0xf855, 0xf8c5, 0xf953, 0xf9c3, 0xfa30, 0xfa94,
+ 0xfac1, 0xfaef, 0xfb2f, 0xfb53, 0xfb73, 0xfb8d,
+ 0xfb7c, 0xfb65, 0xfb65, 0xfb6d, 0xfb7b, 0xfb84,
+ 0xfb93, 0xfbb2, 0xfbbc, 0xfbb7, 0xfbc4, 0xfbe2,
+ 0xfc0d, 0xfc34, 0xfc52, 0xfc94, 0xfcea, 0xfd19,
+ 0xfd3e, 0xfd6a, 0xfd70, 0xfd5c, 0xfd53, 0xfd4c,
+ 0xfd35, 0xfd0e, 0xfcf8, 0xfcfb, 0xfcdd, 0xfcb7,
+ 0xfcc6, 0xfcd3, 0xfcc7, 0xfcd4, 0xfcdb, 0xfcc0,
+ 0xfc9f, 0xfc6d, 0xfc29, 0xfbeb, 0xfbc0, 0xfbaa,
+ 0xfb90, 0xfb6b, 0xfb4d, 0xfb2e, 0xfb20, 0xfb33,
+ 0xfb43, 0xfb6d, 0xfbcd, 0xfc27, 0xfc66, 0xfc8d,
+ 0xfc8c, 0xfc82, 0xfc77, 0xfc56, 0xfc51, 0xfc82,
+ 0xfcdb, 0xfd4d, 0xfdc2, 0xfe46, 0xfee7, 0xff70,
+ 0xffd5, 0x002d, 0x0067, 0x008a, 0x00a5, 0x00ad,
+ 0x00ad, 0x00b4, 0x00cf, 0x010b, 0x0147, 0x0173,
+ 0x01a6, 0x01ce, 0x01ed, 0x0220, 0x0246, 0x0237,
+ 0x0218, 0x0219, 0x023a, 0x0257, 0x0276, 0x02b3,
+ 0x02eb, 0x02f3, 0x02f3, 0x0310, 0x033d, 0x0385,
+ 0x03f3, 0x0456, 0x048e, 0x04b0, 0x04b6, 0x0492,
+ 0x047d, 0x0490, 0x0493, 0x0473, 0x0455, 0x0438,
+ 0x03fc, 0x03b0, 0x037b, 0x0358, 0x032a, 0x0310,
+ 0x0331, 0x0366, 0x0397, 0x03dd, 0x0418, 0x0424,
+ 0x042e, 0x0451, 0x0464, 0x044f, 0x040f, 0x03af,
+ 0x035b, 0x0323, 0x02f2, 0x02ba, 0x0287, 0x0267,
+ 0x0243, 0x0205, 0x01c1, 0x0178, 0x0132, 0x011c,
+ 0x0118, 0x00f5, 0x00d9, 0x00c4, 0x00a2, 0x0095,
+ 0x009c, 0x0094, 0x006f, 0x0032, 0xfff9, 0xffbc,
+ 0xff6b, 0xff1e, 0xfebf, 0xfe3c, 0xfdcc, 0xfd7d,
+ 0xfd3f, 0xfd20, 0xfd0b, 0xfd05, 0xfd2c, 0xfd3f,
+ 0xfd24, 0xfd06, 0xfce2, 0xfcbc, 0xfc90, 0xfc41,
+ 0xfbfb, 0xfbe1, 0xfbc7, 0xfba6, 0xfb96, 0xfb99,
+ 0xfbaf, 0xfbce, 0xfbe0, 0xfbfa, 0xfc45, 0xfca2,
+ 0xfce8, 0xfd4a, 0xfdc9, 0xfe14, 0xfe62, 0xfeed,
+ 0xff68, 0xffc0, 0x001a, 0x005f, 0x008b, 0x009e,
+ 0x008c, 0x006b, 0x0034, 0xffea, 0xff9f, 0xff44,
+ 0xfee9, 0xfeb0, 0xfe76, 0xfe48, 0xfe4b, 0xfe61,
+ 0xfe7a, 0xfe97, 0xfea2, 0xfe97, 0xfe69, 0xfe1e,
+ 0xfddb, 0xfd8c, 0xfd36, 0xfd20, 0xfd44, 0xfd6b,
+ 0xfd94, 0xfdc6, 0xfdf2, 0xfe20, 0xfe61, 0xfeb7,
+ 0xff15, 0xff6e, 0xffbb, 0xfff5, 0x0021, 0x004a,
+ 0x0082, 0x00d9, 0x0143, 0x01aa, 0x020c, 0x0271,
+ 0x02c3, 0x02f6, 0x0323, 0x0368, 0x03bc, 0x0413,
+ 0x0463, 0x049f, 0x04d3, 0x04f1, 0x04e6, 0x04d6,
+ 0x04c4, 0x048d, 0x0448, 0x0416, 0x0404, 0x0404,
+ 0x03f5, 0x03e8, 0x03f4, 0x03f1, 0x03de, 0x03cf,
+ 0x03b5, 0x039e, 0x0395, 0x037f, 0x034d, 0x02f4,
+ 0x0288, 0x023c, 0x020f, 0x020c, 0x023f, 0x0273,
+ 0x0292, 0x02b6, 0x02df, 0x0313, 0x034b, 0x0365,
+ 0x0368, 0x0365, 0x035a, 0x0342, 0x0323, 0x030e,
+ 0x0313, 0x0339, 0x038e, 0x0400, 0x046f, 0x04d8,
+ 0x0532, 0x057c, 0x05bc, 0x05d9, 0x05cf, 0x05bb,
+ 0x05b5, 0x05ba, 0x05bb, 0x05c2, 0x05d4, 0x05da,
+ 0x05d9, 0x05d5, 0x05ba, 0x05a7, 0x05ab, 0x05a1,
+ 0x059a, 0x05a1, 0x058f, 0x0572, 0x0562, 0x055e,
+ 0x056b, 0x0570, 0x0568, 0x0570, 0x057f, 0x0582,
+ 0x056e, 0x0542, 0x052b, 0x0524, 0x0506, 0x04f4,
+ 0x04e9, 0x04b0, 0x046e, 0x0446, 0x0422, 0x040f,
+ 0x041d, 0x0441, 0x0472, 0x0489, 0x047b, 0x046d,
+ 0x045b, 0x042f, 0x03f5, 0x03a6, 0x032d, 0x029e,
+ 0x021f, 0x01c4, 0x018c, 0x0160, 0x012e, 0x0109,
+ 0x00f7, 0x00e6, 0x00d7, 0x00cc, 0x00b7, 0x0091,
+ 0x0057, 0x001c, 0xfff3, 0xffb8, 0xff6d, 0xff45,
+ 0xff2c, 0xff10, 0xff13, 0xff1e, 0xff18, 0xff24,
+ 0xff4c, 0xff80, 0xffc6, 0x0025, 0x0092, 0x00e6,
+ 0x011b, 0x0148, 0x016b, 0x017d, 0x018a, 0x0198,
+ 0x01b9, 0x01da, 0x01c8, 0x0199, 0x017f, 0x016c,
+ 0x0163, 0x0172, 0x0196, 0x01c4, 0x01e9, 0x01fd,
+ 0x0214, 0x022c, 0x0249, 0x027e, 0x02c3, 0x030a,
+ 0x0349, 0x037d, 0x03a7, 0x03af, 0x039f, 0x03ac,
+ 0x03c0, 0x03c4, 0x03cf, 0x03cc, 0x03b3, 0x03a8,
+ 0x039b, 0x038c, 0x03a1, 0x03c8, 0x03f6, 0x0433,
+ 0x045c, 0x046f, 0x0479, 0x0462, 0x0436, 0x040f,
+ 0x03ee, 0x03e4, 0x03e6, 0x03e1, 0x03e8, 0x03e6,
+ 0x03bb, 0x0380, 0x034e, 0x0325, 0x0308, 0x02ee,
+ 0x02d5, 0x02a2, 0x0238, 0x01c1, 0x015d, 0x00f2,
+ 0x0099, 0x0073, 0x005a, 0x0049, 0x0055, 0x0055,
+ 0x003c, 0x003a, 0x0047, 0x002b, 0xfffc, 0xffe9,
+ 0xffe2, 0xffbe, 0xff81, 0xff56, 0xff4b, 0xff45,
+ 0xff3e, 0xff49, 0xff69, 0xff8e, 0xffa8, 0xffb5,
+ 0xffbb, 0xffb8, 0xff99, 0xff6a, 0xff4e, 0xff37,
+ 0xff14, 0xff05, 0xff08, 0xfeeb, 0xfebd, 0xfeab,
+ 0xfeb7, 0xfef4, 0xff58, 0xffa0, 0xffca, 0xffec,
+ 0xffe4, 0xffc7, 0xffc1, 0xffc5, 0xffd6, 0x0000,
+ 0x0030, 0x006b, 0x00a8, 0x00d3, 0x00e6, 0x00cb,
+ 0x0099, 0x007f, 0x006d, 0x005a, 0x0059, 0x0055,
+ 0x005c, 0x0084, 0x00a8, 0x00d2, 0x0114, 0x0149,
+ 0x0177, 0x01a7, 0x01c0, 0x01d1, 0x01f2, 0x0212,
+ 0x0228, 0x022e, 0x0224, 0x021c, 0x021a, 0x0224,
+ 0x0237, 0x023f, 0x0247, 0x0259, 0x0257, 0x0245,
+ 0x024b, 0x0261, 0x0261, 0x0248, 0x0219, 0x01cf,
+ 0x0171, 0x0106, 0x0096, 0x0024, 0xff9e, 0xff12,
+ 0xfea2, 0xfe40, 0xfdf3, 0xfdd3, 0xfdc6, 0xfdcf,
+ 0xfe00, 0xfe1d, 0xfe10, 0xfe09, 0xfdfa, 0xfdcb,
+ 0xfd97, 0xfd6f, 0xfd53, 0xfd2f, 0xfd01, 0xfcf3,
+ 0xfcff, 0xfcf6, 0xfcda, 0xfcb9, 0xfc91, 0xfc70,
+ 0xfc60, 0xfc42, 0xfc0b, 0xfbdb, 0xfbb3, 0xfb69,
+ 0xfb19, 0xfaf1, 0xfae2, 0xfaf2, 0xfb26, 0xfb5c,
+ 0xfb93, 0xfbc1, 0xfbbc, 0xfba7, 0xfbaf, 0xfbad,
+ 0xfb8d, 0xfb67, 0xfb43, 0xfb26, 0xfb1b, 0xfb1a,
+ 0xfb23, 0xfb48, 0xfb78, 0xfb97, 0xfbc3, 0xfc10,
+ 0xfc55, 0xfc91, 0xfcd7, 0xfd09, 0xfd26, 0xfd42,
+ 0xfd56, 0xfd68, 0xfd71, 0xfd61, 0xfd56, 0xfd56,
+ 0xfd49, 0xfd41, 0xfd58, 0xfd85, 0xfda4, 0xfd94,
+ 0xfd60, 0xfd1b, 0xfcc9, 0xfc80, 0xfc51, 0xfc3f,
+ 0xfc5e, 0xfca4, 0xfcf3, 0xfd50, 0xfdab, 0xfde3,
+ 0xfdfe, 0xfe1c, 0xfe49, 0xfe79, 0xfe9c, 0xfea3,
+ 0xfe8b, 0xfe5b, 0xfe1e, 0xfde1, 0xfdbe, 0xfdad,
+ 0xfda6, 0xfdc4, 0xfdfe, 0xfe3a, 0xfe86, 0xfece,
+ 0xfee3, 0xfef2, 0xff25, 0xff55, 0xff69, 0xff60,
+ 0xff34, 0xfeff, 0xfed4, 0xfe9c, 0xfe5b, 0xfe41,
+ 0xfe50, 0xfe4d, 0xfe1b, 0xfddd, 0xfdb5, 0xfd81,
+ 0xfd2d, 0xfce4, 0xfcae, 0xfc7c, 0xfc5f, 0xfc3e,
+ 0xfc08, 0xfbe9, 0xfbdb, 0xfbd1, 0xfbe4, 0xfbf1,
+ 0xfbea, 0xfbfe, 0xfc1c, 0xfc20, 0xfc27, 0xfc22,
+ 0xfbfb, 0xfbc8, 0xfb8e, 0xfb54, 0xfb44, 0xfb66,
+ 0xfb9d, 0xfbdc, 0xfc2f, 0xfc90, 0xfcec, 0xfd4e,
+ 0xfdb5, 0xfe15, 0xfe75, 0xfebd, 0xfed4, 0xfedd,
+ 0xfefa, 0xff2f, 0xff6c, 0xff9c, 0xffd4, 0x0011,
+ 0x002e, 0x0037, 0x0049, 0x004f, 0x004a, 0x0048,
+ 0x003b, 0x0032, 0x0037, 0x0035, 0x002e, 0x0033,
+ 0x0039, 0x0047, 0x007b, 0x00d1, 0x0128, 0x0174,
+ 0x01a2, 0x01b1, 0x01be, 0x01b6, 0x017c, 0x0136,
+ 0x00f4, 0x009d, 0x0045, 0x0008, 0xffdc, 0xffb9,
+ 0xffa6, 0xffb1, 0xffd8, 0x000e, 0x0060, 0x00bc,
+ 0x0101, 0x0135, 0x015a, 0x017c, 0x01bc, 0x01f3,
+ 0x0200, 0x021c, 0x0254, 0x0283, 0x02b1, 0x02da,
+ 0x02fb, 0x032b, 0x034d, 0x034f, 0x0352, 0x0344,
+ 0x02ff, 0x02a0, 0x024c, 0x0212, 0x0202, 0x01ff,
+ 0x01e6, 0x01d9, 0x01dd, 0x01ce, 0x01b2, 0x0186,
+ 0x0145, 0x0110, 0x00d4, 0x0088, 0x0053, 0x0018,
+ 0xffd9, 0xffd5, 0xffd9, 0xffae, 0xff8c, 0xff7b,
+ 0xff79, 0xffad, 0xffe6, 0xfff5, 0xffff, 0x0008,
+ 0x0005, 0xfffe, 0xffe4, 0xffc6, 0xffb7, 0xff92,
+ 0xff4f, 0xff17, 0xfeef, 0xfec6, 0xfe9f, 0xfe6f,
+ 0xfe30, 0xfdfc, 0xfdd8, 0xfdbb, 0xfdb8, 0xfdbe,
+ 0xfda9, 0xfd8e, 0xfd8e, 0xfda6, 0xfdda, 0xfe20,
+ 0xfe66, 0xfea9, 0xfee6, 0xff16, 0xff45, 0xff79,
+ 0xffaf, 0xffeb, 0x002c, 0x0062, 0x0080, 0x008f,
+ 0x00a2, 0x00b7, 0x00c2, 0x00c8, 0x00e4, 0x011a,
+ 0x0151, 0x0197, 0x01fe, 0x0262, 0x02b8, 0x0325,
+ 0x0395, 0x03f0, 0x043d, 0x0464, 0x0465, 0x0466,
+ 0x0470, 0x047d, 0x0497, 0x04c1, 0x04fa, 0x0544,
+ 0x0584, 0x058f, 0x0569, 0x054a, 0x052c, 0x04ef,
+ 0x04a9, 0x0467, 0x0421, 0x03df, 0x039a, 0x0357,
+ 0x032c, 0x0308, 0x02f7, 0x02f8, 0x02ea, 0x02f4,
+ 0x0328, 0x0341, 0x0349, 0x0354, 0x0339, 0x031f,
+ 0x031b, 0x02fe, 0x02e5, 0x02e1, 0x02d0, 0x02ce,
+ 0x02da, 0x02da, 0x02dc, 0x02db, 0x02cd, 0x02c1,
+ 0x029c, 0x0258, 0x0220, 0x0203, 0x01fe, 0x020d,
+ 0x0227, 0x024c, 0x0270, 0x0286, 0x0294, 0x029d,
+ 0x02a6, 0x02a4, 0x0283, 0x025c, 0x0240, 0x0210,
+ 0x01ce, 0x0192, 0x0158, 0x0125, 0x010c, 0x0118,
+ 0x0147, 0x018c, 0x01dd, 0x0218, 0x022b, 0x023e,
+ 0x024f, 0x0248, 0x0257, 0x0280, 0x029f, 0x02c3,
+ 0x02d7, 0x02aa, 0x025e, 0x0221, 0x020a, 0x0221,
+ 0x0257, 0x02a4, 0x02f4, 0x0329, 0x0360, 0x0397,
+ 0x03a7, 0x03a3, 0x0396, 0x0375, 0x036c, 0x0387,
+ 0x039d, 0x03a5, 0x039e, 0x0393, 0x0392, 0x0390,
+ 0x0388, 0x037b, 0x0362, 0x0344, 0x0314, 0x02c9,
+ 0x027d, 0x0239, 0x0202, 0x01ea, 0x01d9, 0x01c6,
+ 0x01b3, 0x019b, 0x0187, 0x017d, 0x018c, 0x01ce,
+ 0x0219, 0x0237, 0x022b, 0x0200, 0x01c3, 0x0186,
+ 0x0155, 0x013f, 0x014a, 0x0174, 0x01af, 0x01d8,
+ 0x01fe, 0x0230, 0x0252, 0x0274, 0x029b, 0x0299,
+ 0x028f, 0x0287, 0x025c, 0x0245, 0x0249, 0x0225,
+ 0x01fc, 0x01e3, 0x01c6, 0x01d0, 0x01f6, 0x020a,
+ 0x0212, 0x01fe, 0x01d5, 0x01b4, 0x0194, 0x0187,
+ 0x0195, 0x019f, 0x01a9, 0x01ba, 0x01d3, 0x020d,
+ 0x0262, 0x02c7, 0x0334, 0x0392, 0x03ea, 0x0438,
+ 0x045d, 0x0469, 0x0466, 0x044a, 0x041f, 0x03eb,
+ 0x03c5, 0x03bb, 0x03b4, 0x03c4, 0x03fa, 0x0427,
+ 0x0451, 0x0494, 0x04dd, 0x0525, 0x055b, 0x056f,
+ 0x0575, 0x055c, 0x051b, 0x04e5, 0x04d6, 0x04df,
+ 0x04eb, 0x04ff, 0x052a, 0x0543, 0x0549, 0x0569,
+ 0x0589, 0x0599, 0x05ac, 0x0599, 0x0561, 0x052a,
+ 0x04dd, 0x0482, 0x043c, 0x03fe, 0x03c9, 0x039b,
+ 0x0367, 0x034b, 0x033a, 0x0312, 0x02e9, 0x02ca,
+ 0x02a9, 0x0291, 0x0283, 0x0279, 0x0268, 0x0246,
+ 0x022b, 0x0213, 0x01e5, 0x01af, 0x017b, 0x0143,
+ 0x0117, 0x00fc, 0x00df, 0x00c0, 0x009c, 0x006f,
+ 0x0038, 0xfffb, 0xffc2, 0xffa2, 0xff93, 0xff7e,
+ 0xff5d, 0xff30, 0xfeea, 0xfe9b, 0xfe66, 0xfe48,
+ 0xfe32, 0xfe2e, 0xfe33, 0xfe29, 0xfe1b, 0xfe1d,
+ 0xfe18, 0xfe18, 0xfe45, 0xfe87, 0xfec4, 0xff12,
+ 0xff55, 0xff80, 0xffc6, 0x001d, 0x0058, 0x0082,
+ 0x00a4, 0x00b4, 0x00b0, 0x0082, 0x0028, 0xffc2,
+ 0xff66, 0xff24, 0xfef4, 0xfed7, 0xfedf, 0xff03,
+ 0xff37, 0xff74, 0xffa3, 0xffba, 0xffae, 0xff82,
+ 0xff62, 0xff4e, 0xff31, 0xff22, 0xff23, 0xff28,
+ 0xff38, 0xff36, 0xff19, 0xfef0, 0xfeab, 0xfe6d,
+ 0xfe62, 0xfe54, 0xfe35, 0xfe24, 0xfe07, 0xfdd4,
+ 0xfdab, 0xfd94, 0xfd94, 0xfda5, 0xfdb2, 0xfdbd,
+ 0xfddd, 0xfe29, 0xfe88, 0xfecf, 0xfeff, 0xff1c,
+ 0xff12, 0xfed8, 0xfe67, 0xfdda, 0xfd5f, 0xfcf8,
+ 0xfca8, 0xfc7e, 0xfc67, 0xfc55, 0xfc39, 0xfc04,
+ 0xfbd0, 0xfbb4, 0xfbb4, 0xfbdd, 0xfc1d, 0xfc60,
+ 0xfc9f, 0xfca9, 0xfc84, 0xfc6d, 0xfc5e, 0xfc51,
+ 0xfc68, 0xfc80, 0xfc7d, 0xfc74, 0xfc56, 0xfc30,
+ 0xfc33, 0xfc54, 0xfc79, 0xfc9c, 0xfcb9, 0xfcec,
+ 0xfd41, 0xfd9a, 0xfdea, 0xfe37, 0xfe7d, 0xfeb8,
+ 0xfee7, 0xff10, 0xff46, 0xff82, 0xffcf, 0x003f,
+ 0x00ac, 0x0105, 0x0162, 0x01a5, 0x01c1, 0x01d7,
+ 0x01e2, 0x01d9, 0x01d8, 0x01e8, 0x0219, 0x0269,
+ 0x02c1, 0x0315, 0x0359, 0x0381, 0x0397, 0x0398,
+ 0x0384, 0x036d, 0x035d, 0x0371, 0x03a5, 0x03cc,
+ 0x03eb, 0x0417, 0x0433, 0x043f, 0x044c, 0x044c,
+ 0x0454, 0x046c, 0x0475, 0x045f, 0x0419, 0x03a4,
+ 0x0332, 0x02db, 0x0293, 0x025f, 0x023c, 0x021a,
+ 0x01f3, 0x01ab, 0x013f, 0x00df, 0x008f, 0x003b,
+ 0xfffc, 0xffc8, 0xff85, 0xff4c, 0xff11, 0xfeb6,
+ 0xfe65, 0xfe2c, 0xfdee, 0xfdbf, 0xfd9b, 0xfd5f,
+ 0xfd19, 0xfcd5, 0xfc96, 0xfc63, 0xfc2f, 0xfbfd,
+ 0xfbcb, 0xfb8c, 0xfb50, 0xfb10, 0xfaba, 0xfa82,
+ 0xfa71, 0xfa5f, 0xfa53, 0xfa49, 0xfa36, 0xfa22,
+ 0xf9fb, 0xf9cc, 0xf9bd, 0xf9be, 0xf9ce, 0xf9fd,
+ 0xfa34, 0xfa7e, 0xfaf0, 0xfb6e, 0xfbea, 0xfc5e,
+ 0xfcc4, 0xfd1c, 0xfd54, 0xfd71, 0xfd8a, 0xfd93,
+ 0xfd89, 0xfd76, 0xfd4b, 0xfd13, 0xfce5, 0xfccd,
+ 0xfce4, 0xfd1c, 0xfd52, 0xfd83, 0xfdac, 0xfdcb,
+ 0xfdf5, 0xfe2d, 0xfe6f, 0xfe9b, 0xfe93, 0xfe75,
+ 0xfe5f, 0xfe4a, 0xfe53, 0xfe8c, 0xfed5, 0xff20,
+ 0xff72, 0xffcb, 0x001b, 0x0051, 0x007c, 0x00ac,
+ 0x00d1, 0x00f0, 0x0125, 0x0173, 0x01cb, 0x0216,
+ 0x0248, 0x0266, 0x0284, 0x02b0, 0x02df, 0x030d,
+ 0x033a, 0x0358, 0x0364, 0x0366, 0x0362, 0x0368,
+ 0x0374, 0x0369, 0x035d, 0x0357, 0x0324, 0x02e7,
+ 0x02cc, 0x02b3, 0x029d, 0x0292, 0x026f, 0x0242,
+ 0x0213, 0x01c3, 0x016c, 0x011a, 0x00b6, 0x0069,
+ 0x0040, 0x000c, 0xffc1, 0xff68, 0xff0b, 0xfeba,
+ 0xfe72, 0xfe38, 0xfe1c, 0xfe0a, 0xfdf3, 0xfddc,
+ 0xfdce, 0xfdd4, 0xfddc, 0xfdd3, 0xfdcd, 0xfddb,
+ 0xfdf9, 0xfe26, 0xfe57, 0xfe85, 0xfea5, 0xfeaa,
+ 0xfea1, 0xfe8d, 0xfe6f, 0xfe70, 0xfe8d, 0xfea3,
+ 0xfec3, 0xfef0, 0xff08, 0xff09, 0xff0b, 0xff16,
+ 0xff1a, 0xff1a, 0xff32, 0xff4e, 0xff60, 0xff9e,
+ 0xffea, 0x000b, 0x002f, 0x004e, 0x0037, 0x0019,
+ 0xfff9, 0xffbb, 0xff9c, 0xffb3, 0xffe6, 0x004d,
+ 0x00df, 0x0176, 0x0203, 0x0270, 0x02b3, 0x02da,
+ 0x02f0, 0x02ff, 0x0304, 0x0305, 0x0327, 0x035c,
+ 0x037c, 0x0397, 0x03b7, 0x03da, 0x0415, 0x0458,
+ 0x0497, 0x04db, 0x0509, 0x0516, 0x0522, 0x0523,
+ 0x051c, 0x0525, 0x052a, 0x052a, 0x0530, 0x0527,
+ 0x0505, 0x04c8, 0x0467, 0x0405, 0x03b8, 0x035d,
+ 0x02eb, 0x0285, 0x023a, 0x01f7, 0x01b2, 0x017c,
+ 0x0162, 0x0149, 0x0115, 0x00d5, 0x009d, 0x0063,
+ 0x001f, 0xffd8, 0xff97, 0xff62, 0xff36, 0xff08,
+ 0xfecf, 0xfe8c, 0xfe40, 0xfdf1, 0xfdaa, 0xfd7d,
+ 0xfd7e, 0xfd9f, 0xfdce, 0xfe14, 0xfe66, 0xfea6,
+ 0xfedb, 0xff0f, 0xff2f, 0xff3f, 0xff52, 0xff58,
+ 0xff49, 0xff39, 0xff33, 0xff30, 0xff1d, 0xfef6,
+ 0xfec9, 0xfea0, 0xfe7b, 0xfe6c, 0xfe68, 0xfe58,
+ 0xfe4c, 0xfe51, 0xfe55, 0xfe66, 0xfe93, 0xfeca,
+ 0xff0d, 0xff5f, 0xffb0, 0x0005, 0x0069, 0x00cc,
+ 0x0132, 0x019e, 0x01ef, 0x022d, 0x027b, 0x02d5,
+ 0x0315, 0x033e, 0x0365, 0x038d, 0x03aa, 0x03ce,
+ 0x03ff, 0x042a, 0x0448, 0x0466, 0x0480, 0x048e,
+ 0x0498, 0x04a8, 0x04b8, 0x04b0, 0x0485, 0x0445,
+ 0x0401, 0x03c2, 0x0383, 0x0349, 0x0336, 0x033f,
+ 0x0336, 0x032e, 0x033c, 0x0341, 0x034a, 0x0362,
+ 0x035d, 0x0341, 0x0326, 0x02f8, 0x02c8, 0x02a3,
+ 0x0270, 0x0235, 0x01f6, 0x01b1, 0x0177, 0x013f,
+ 0x00f7, 0x00a7, 0x0052, 0x0001, 0xffbd, 0xff77,
+ 0xff38, 0xff0f, 0xfef9, 0xff01, 0xff1f, 0xff42,
+ 0xff71, 0xff9f, 0xffb8, 0xffc6, 0xffb4, 0xff84,
+ 0xff5d, 0xff3d, 0xff17, 0xff0d, 0xff1c, 0xff16,
+ 0xfeef, 0xfec3, 0xfebc, 0xfedd, 0xff05, 0xff2a,
+ 0xff53, 0xff6c, 0xff70, 0xff7c, 0xffa8, 0xfffd,
+ 0x0072, 0x00e9, 0x0147, 0x01a9, 0x0222, 0x0293,
+ 0x02f1, 0x034e, 0x03a6, 0x03fc, 0x0454, 0x049d,
+ 0x04db, 0x051f, 0x056a, 0x05a7, 0x05c2, 0x05c0,
+ 0x05be, 0x05c2, 0x05c7, 0x05d4, 0x05e0, 0x05d9,
+ 0x05c7, 0x05c1, 0x05da, 0x0606, 0x0625, 0x0629,
+ 0x0618, 0x05f6, 0x05cc, 0x059e, 0x0568, 0x0527,
+ 0x04e8, 0x04bd, 0x049f, 0x047d, 0x044b, 0x03fd,
+ 0x03a3, 0x035b, 0x031b, 0x02d6, 0x0292, 0x024b,
+ 0x0208, 0x01df, 0x01cd, 0x01bb, 0x01a0, 0x018b,
+ 0x0183, 0x017c, 0x0171, 0x016c, 0x0155, 0x0115,
+ 0x00c7, 0x008b, 0x005c, 0x003d, 0x003c, 0x004a,
+ 0x004e, 0x003c, 0x001f, 0x0008, 0x0007, 0x0020,
+ 0x0047, 0x0070, 0x0098, 0x00b3, 0x00ab, 0x0094,
+ 0x0088, 0x006e, 0x003d, 0xfffe, 0xffa8, 0xff4d,
+ 0xff05, 0xfec3, 0xfe8e, 0xfe6d, 0xfe57, 0xfe5c,
+ 0xfe79, 0xfe86, 0xfe8f, 0xfe98, 0xfe7c, 0xfe3a,
+ 0xfdf8, 0xfdc2, 0xfd9e, 0xfd93, 0xfda3, 0xfdc3,
+ 0xfdec, 0xfe25, 0xfe65, 0xfe8d, 0xfea9, 0xfed4,
+ 0xff07, 0xff41, 0xff7d, 0xff9b, 0xff95, 0xff95,
+ 0xffb3, 0xffe6, 0x0030, 0x0092, 0x00e2, 0x0111,
+ 0x0132, 0x0131, 0x00f9, 0x00b0, 0x0079, 0x005a,
+ 0x004c, 0x0041, 0x002a, 0xffff, 0xffc8, 0xffa0,
+ 0xff8c, 0xff7f, 0xff86, 0xffa6, 0xffc1, 0xffd4,
+ 0xfffb, 0x002d, 0x0051, 0x0064, 0x0074, 0x0084,
+ 0x008d, 0x0091, 0x00a5, 0x00c2, 0x00c8, 0x00b5,
+ 0x0099, 0x006f, 0x003a, 0x000d, 0xffe0, 0xff9f,
+ 0xff47, 0xfedd, 0xfe6c, 0xfe01, 0xfd9f, 0xfd36,
+ 0xfccb, 0xfc74, 0xfc35, 0xfc05, 0xfbee, 0xfbed,
+ 0xfbf1, 0xfbf7, 0xfbf7, 0xfbf3, 0xfbf2, 0xfbec,
+ 0xfbec, 0xfbf9, 0xfbf5, 0xfbe9, 0xfbfd, 0xfc31,
+ 0xfc7d, 0xfcd9, 0xfd2c, 0xfd76, 0xfdb3, 0xfdd3,
+ 0xfdf1, 0xfe23, 0xfe63, 0xfeaf, 0xfeff, 0xff4e,
+ 0xff9d, 0xffd5, 0xffe6, 0xffeb, 0xfffb, 0x0015,
+ 0x0037, 0x005d, 0x007d, 0x009d, 0x00c3, 0x00f5,
+ 0x0138, 0x0179, 0x019b, 0x01ae, 0x01b7, 0x01a6,
+ 0x0198, 0x0195, 0x017e, 0x016b, 0x0168, 0x0158,
+ 0x0155, 0x015d, 0x0151, 0x0155, 0x0164, 0x0158,
+ 0x014c, 0x0136, 0x00f1, 0x00a5, 0x0065, 0x0022,
+ 0x0000, 0x0000, 0x0001, 0x001b, 0x004f, 0x0074,
+ 0x0084, 0x008a, 0x007f, 0x0069, 0x004d, 0x0023,
+ 0xffff, 0xfffd, 0x0022, 0x0055, 0x0077, 0x0088,
+ 0x009b, 0x00a4, 0x0080, 0x0041, 0x0000, 0xffb9,
+ 0xff72, 0xff37, 0xfef9, 0xfebc, 0xfe84, 0xfe3c,
+ 0xfde5, 0xfd94, 0xfd4c, 0xfd0a, 0xfceb, 0xfcf8,
+ 0xfd06, 0xfd05, 0xfd0c, 0xfd0e, 0xfd02, 0xfcf0,
+ 0xfcc5, 0xfc8a, 0xfc57, 0xfc1c, 0xfbd7, 0xfb8d,
+ 0xfb2f, 0xfac5, 0xfa72, 0xfa3b, 0xfa14, 0xfa06,
+ 0xfa16, 0xfa30, 0xfa47, 0xfa6a, 0xfa95, 0xfab9,
+ 0xfae6, 0xfb29, 0xfb75, 0xfbcb, 0xfc35, 0xfcb4,
+ 0xfd43, 0xfdc6, 0xfe32, 0xfe9f, 0xff10, 0xff67,
+ 0xff9c, 0xffc7, 0xffde, 0xffda, 0xffe6, 0x0010,
+ 0x003a, 0x006b, 0x00ae, 0x00e9, 0x011b, 0x0141,
+ 0x0149, 0x013e, 0x0124, 0x0103, 0x00fb, 0x0106,
+ 0x0114, 0x0132, 0x0151, 0x0161, 0x0165, 0x0166,
+ 0x0170, 0x018a, 0x01a9, 0x01d2, 0x0204, 0x023d,
+ 0x027d, 0x02ae, 0x02cc, 0x02e4, 0x02f2, 0x030f,
+ 0x0350, 0x0393, 0x03c9, 0x03fb, 0x040b, 0x03f2,
+ 0x03ce, 0x03b2, 0x03b8, 0x03d9, 0x03e4, 0x03d8,
+ 0x03c1, 0x0392, 0x035c, 0x0321, 0x02c8, 0x0271,
+ 0x0231, 0x01e7, 0x01ac, 0x019b, 0x0199, 0x01a8,
+ 0x01c3, 0x01ce, 0x01dc, 0x01ec, 0x01ea, 0x01f0,
+ 0x01e9, 0x01ba, 0x0198, 0x018d, 0x0176, 0x0161,
+ 0x0153, 0x0140, 0x0135, 0x0126, 0x0107, 0x00e8,
+ 0x00cd, 0x00be, 0x00c6, 0x00db, 0x00e5, 0x00de,
+ 0x00dc, 0x00db, 0x00c9, 0x00bf, 0x00c2, 0x00bf,
+ 0x00d7, 0x00ff, 0x010e, 0x0123, 0x0146, 0x0159,
+ 0x0169, 0x0157, 0x011b, 0x00fb, 0x00f4, 0x00e2,
+ 0x00dc, 0x00d9, 0x00b9, 0x009b, 0x008a, 0x0072,
+ 0x0059, 0x0051, 0x0052, 0x0046, 0x002f, 0x0010,
+ 0xffee, 0xffe0, 0xffda, 0xffb1, 0xff8f, 0xff92,
+ 0xff9c, 0xffb0, 0xffd2, 0xfff6, 0x0029, 0x005e,
+ 0x0082, 0x00ab, 0x00cb, 0x00d5, 0x00eb, 0x0116,
+ 0x0158, 0x01aa, 0x01f7, 0x0247, 0x0298, 0x02cb,
+ 0x02eb, 0x02f1, 0x02c6, 0x0293, 0x026c, 0x0245,
+ 0x0232, 0x0236, 0x0245, 0x0253, 0x024a, 0x0239,
+ 0x0236, 0x0235, 0x0247, 0x0275, 0x0285, 0x0277,
+ 0x026a, 0x0245, 0x020a, 0x01d1, 0x019b, 0x016d,
+ 0x0132, 0x00db, 0x0094, 0x0063, 0x0022, 0xffe3,
+ 0xffaf, 0xff7d, 0xff66, 0xff72, 0xff90, 0xffc3,
+ 0xfff9, 0x001d, 0x003b, 0x004e, 0x0051, 0x0057,
+ 0x005c, 0x0055, 0x0059, 0x0073, 0x00a0, 0x00e0,
+ 0x0120, 0x0150, 0x017a, 0x0198, 0x019f, 0x0192,
+ 0x0168, 0x0128, 0x00f1, 0x00c3, 0x009f, 0x009c,
+ 0x00b5, 0x00de, 0x0123, 0x0171, 0x01a1, 0x01ac,
+ 0x019a, 0x0179, 0x0170, 0x0185, 0x019c, 0x01bf,
+ 0x01f4, 0x021b, 0x022b, 0x0243, 0x0270, 0x02b2,
+ 0x030b, 0x036c, 0x03ce, 0x043d, 0x04a3, 0x04eb,
+ 0x052d, 0x057a, 0x05ba, 0x05e8, 0x0614, 0x0642,
+ 0x0676, 0x06ac, 0x06d4, 0x06df, 0x06c2, 0x068a,
+ 0x0656, 0x0629, 0x05e4, 0x0589, 0x0530, 0x04e2,
+ 0x04a3, 0x0477, 0x0456, 0x0434, 0x040e, 0x03e5,
+ 0x03c6, 0x03ad, 0x038f, 0x037b, 0x0375, 0x035f,
+ 0x0331, 0x0303, 0x02d8, 0x02ab, 0x0284, 0x025d,
+ 0x0229, 0x01f1, 0x01c1, 0x018d, 0x0153, 0x0123,
+ 0x0102, 0x00ec, 0x00d5, 0x00c1, 0x00bd, 0x00c3,
+ 0x00d4, 0x0102, 0x013e, 0x016e, 0x019d, 0x01c5,
+ 0x01db, 0x01ec, 0x0205, 0x0226, 0x0245, 0x025b,
+ 0x0271, 0x027d, 0x0275, 0x0273, 0x026e, 0x0251,
+ 0x0236, 0x0221, 0x01fc, 0x01dd, 0x01d8, 0x01e0,
+ 0x01fa, 0x021b, 0x0231, 0x0245, 0x025a, 0x026b,
+ 0x027d, 0x028c, 0x028d, 0x028e, 0x0294, 0x0288,
+ 0x026e, 0x025d, 0x0247, 0x0225, 0x020f, 0x020d,
+ 0x0226, 0x025c, 0x0292, 0x02c5, 0x02fe, 0x0329,
+ 0x0339, 0x0325, 0x02f5, 0x02cf, 0x02b9, 0x02a9,
+ 0x02c0, 0x02f8, 0x0332, 0x0372, 0x03ad, 0x03d2,
+ 0x03e4, 0x03db, 0x03b6, 0x038a, 0x0363, 0x0346,
+ 0x032e, 0x030f, 0x02ef, 0x02c7, 0x0292, 0x0263,
+ 0x0243, 0x0234, 0x0231, 0x022d, 0x021d, 0x01f2,
+ 0x01b0, 0x0172, 0x013d, 0x0106, 0x00cf, 0x0082,
+ 0x002a, 0xffe0, 0xff9a, 0xff52, 0xff0c, 0xfec7,
+ 0xfe8f, 0xfe6c, 0xfe50, 0xfe33, 0xfe13, 0xfdf4,
+ 0xfdd6, 0xfdb0, 0xfd90, 0xfd82, 0xfd77, 0xfd70,
+ 0xfd74, 0xfd74, 0xfd5e, 0xfd29, 0xfceb, 0xfcc6,
+ 0xfcb3, 0xfc9d, 0xfc8c, 0xfc8c, 0xfc97, 0xfc99,
+ 0xfc97, 0xfc9f, 0xfca6, 0xfcb6, 0xfce1, 0xfd16,
+ 0xfd52, 0xfd8f, 0xfdac, 0xfdb4, 0xfdc3, 0xfdcf,
+ 0xfde7, 0xfe21, 0xfe75, 0xfede, 0xff59, 0xffca,
+ 0x001a, 0x0055, 0x008e, 0x00c3, 0x00ec, 0x010d,
+ 0x0134, 0x0169, 0x019c, 0x01b7, 0x01b6, 0x01a1,
+ 0x017d, 0x0158, 0x012f, 0x0107, 0x00f7, 0x00f3,
+ 0x00ea, 0x00e2, 0x00d9, 0x00d1, 0x00c9, 0x00b3,
+ 0x009a, 0x0085, 0x006e, 0x0057, 0x0038, 0x0014,
+ 0xfff6, 0xffc3, 0xff82, 0xff54, 0xff2c, 0xff06,
+ 0xfeec, 0xfedd, 0xfeeb, 0xff11, 0xff44, 0xff92,
+ 0xffe8, 0x0029, 0x0066, 0x0094, 0x0099, 0x0079,
+ 0x0044, 0x0019, 0x0003, 0xfff6, 0x0000, 0x0024,
+ 0x0044, 0x0055, 0x0044, 0x000b, 0xffc6, 0xff7b,
+ 0xff2d, 0xfee7, 0xfeab, 0xfe82, 0xfe66, 0xfe50,
+ 0xfe40, 0xfe2b, 0xfe29, 0xfe51, 0xfe78, 0xfe8d,
+ 0xfea0, 0xfea2, 0xfe90, 0xfe7b, 0xfe5b, 0xfe28,
+ 0xfdec, 0xfdc6, 0xfdb8, 0xfda8, 0xfda0, 0xfda5,
+ 0xfda0, 0xfda4, 0xfdac, 0xfda0, 0xfd99, 0xfd98,
+ 0xfd8f, 0xfd9e, 0xfdae, 0xfdab, 0xfdb0, 0xfdb7,
+ 0xfdc2, 0xfdd9, 0xfde3, 0xfdf1, 0xfe16, 0xfe36,
+ 0xfe51, 0xfe6a, 0xfe81, 0xfeae, 0xfecf, 0xfed1,
+ 0xfece, 0xfec5, 0xfec3, 0xfedc, 0xff09, 0xff54,
+ 0xffa1, 0xffd5, 0x0016, 0x0050, 0x0059, 0x0061,
+ 0x005b, 0x002c, 0x000a, 0xfff0, 0xffc9, 0xffc7,
+ 0xffda, 0xffe6, 0xfff5, 0xfff4, 0xffe2, 0xffd7,
+ 0xffc8, 0xffb6, 0xffb2, 0xffb1, 0xffad, 0xffae,
+ 0xffb2, 0xffaa, 0xff95, 0xff72, 0xff32, 0xfee0,
+ 0xfe9c, 0xfe63, 0xfe29, 0xfe01, 0xfde5, 0xfdca,
+ 0xfdab, 0xfd7b, 0xfd42, 0xfd0b, 0xfcd1, 0xfcaf,
+ 0xfca2, 0xfc88, 0xfc73, 0xfc77, 0xfc70, 0xfc5f,
+ 0xfc60, 0xfc5e, 0xfc52, 0xfc50, 0xfc4f, 0xfc3a,
+ 0xfc13, 0xfbdf, 0xfbaf, 0xfb8b, 0xfb5c, 0xfb1a,
+ 0xfae2, 0xfac2, 0xfaaa, 0xfa99, 0xfaa2, 0xfad1,
+ 0xfb0e, 0xfb49, 0xfb8f, 0xfbe0, 0xfc24, 0xfc57,
+ 0xfc82, 0xfcb0, 0xfce9, 0xfd27, 0xfd6a, 0xfdb4,
+ 0xfdff, 0xfe3f, 0xfe76, 0xfea6, 0xfece, 0xfefb,
+ 0xff35, 0xff60, 0xff74, 0xff86, 0xff87, 0xff72,
+ 0xff65, 0xff4e, 0xff36, 0xff55, 0xff91, 0xffc2,
+ 0xfff8, 0x001b, 0x0016, 0x0001, 0xffd2, 0xff8b,
+ 0xff4c, 0xff16, 0xfef2, 0xfee4, 0xfed7, 0xfedd,
+ 0xff01, 0xff2a, 0xff63, 0xffa1, 0xffce, 0x000a,
+ 0x0054, 0x0082, 0x00b0, 0x00fd, 0x014e, 0x019a,
+ 0x01eb, 0x0231, 0x025e, 0x026f, 0x026c, 0x025f,
+ 0x0251, 0x0245, 0x0243, 0x0247, 0x024b, 0x0252,
+ 0x025b, 0x0258, 0x024b, 0x0238, 0x021c, 0x0207,
+ 0x0204, 0x020f, 0x0225, 0x023d, 0x0241, 0x0234,
+ 0x0225, 0x0220, 0x0217, 0x01f8, 0x01d2, 0x01b4,
+ 0x0193, 0x0168, 0x0136, 0x010f, 0x00fc, 0x00df,
+ 0x00b4, 0x009a, 0x008e, 0x008f, 0x00ac, 0x00c1,
+ 0x00c4, 0x00d0, 0x00dc, 0x00d9, 0x00c8, 0x00a0,
+ 0x0076, 0x005d, 0x003b, 0x0003, 0xffc9, 0xff90,
+ 0xff4f, 0xff0e, 0xfef2, 0xfefa, 0xff05, 0xff22,
+ 0xff4d, 0xff65, 0xff75, 0xff6d, 0xff32, 0xfefc,
+ 0xfed7, 0xfe9c, 0xfe73, 0xfe72, 0xfe6f, 0xfe77,
+ 0xfe96, 0xfeb6, 0xfee2, 0xff11, 0xff29, 0xff39,
+ 0xff42, 0xff39, 0xff29, 0xff1a, 0xff15, 0xff2d,
+ 0xff61, 0xffb6, 0x0023, 0x0085, 0x00d9, 0x0129,
+ 0x0170, 0x01c0, 0x021e, 0x0278, 0x02cb, 0x030a,
+ 0x0327, 0x0331, 0x0331, 0x0323, 0x0319, 0x0318,
+ 0x0327, 0x0351, 0x037e, 0x03a6, 0x03d1, 0x03e6,
+ 0x03da, 0x03d5, 0x03d9, 0x03d7, 0x03d7, 0x03ca,
+ 0x03af, 0x03a5, 0x03a6, 0x0396, 0x038b, 0x0390,
+ 0x0380, 0x035d, 0x0344, 0x0323, 0x02ee, 0x02b6,
+ 0x026e, 0x021b, 0x01de, 0x01aa, 0x0179, 0x015c,
+ 0x013c, 0x010e, 0x00e2, 0x00c7, 0x00c2, 0x00bf,
+ 0x00b4, 0x00c7, 0x00e1, 0x00df, 0x00e2, 0x00e7,
+ 0x00d8, 0x00de, 0x00f9, 0x0110, 0x013c, 0x016f,
+ 0x0192, 0x01b1, 0x01c8, 0x01d6, 0x01e6, 0x01f6,
+ 0x0217, 0x0238, 0x0235, 0x0219, 0x01e1, 0x0190,
+ 0x014c, 0x011a, 0x00f8, 0x00e5, 0x00cb, 0x00b6,
+ 0x00ad, 0x0088, 0x005b, 0x0037, 0x0006, 0xfff1,
+ 0x0007, 0x002a, 0x0060, 0x00ac, 0x00f5, 0x013b,
+ 0x0177, 0x01b7, 0x020f, 0x026b, 0x02be, 0x030d,
+ 0x034e, 0x0394, 0x03db, 0x040d, 0x0443, 0x047f,
+ 0x04a7, 0x04c3, 0x04d0, 0x04cb, 0x04c3, 0x04b6,
+ 0x04ab, 0x04ba, 0x04dc, 0x0505, 0x0524, 0x051e,
+ 0x04fe, 0x04d9, 0x04a4, 0x0461, 0x041f, 0x03e3,
+ 0x03ad, 0x0391, 0x0398, 0x03ad, 0x03cb, 0x03fc,
+ 0x0429, 0x044c, 0x046d, 0x0483, 0x0487, 0x0478,
+ 0x0456, 0x0436, 0x041c, 0x03f7, 0x03d9, 0x03cf,
+ 0x03cb, 0x03c3, 0x03bc, 0x03ae, 0x0394, 0x0372,
+ 0x0355, 0x032e, 0x02f6, 0x02b4, 0x0263, 0x0215,
+ 0x01df, 0x01a4, 0x015a, 0x011e, 0x00ed, 0x00c2,
+ 0x0090, 0x004a, 0x0011, 0xffea, 0xffb7, 0xff89,
+ 0xff5f, 0xff29, 0xff01, 0xfee8, 0xfedd, 0xfeff,
+ 0xff43, 0xff8f, 0xffee, 0x005a, 0x00c8, 0x013f,
+ 0x01b9, 0x0225, 0x027e, 0x02c7, 0x030f, 0x0353,
+ 0x038a, 0x03c5, 0x0407, 0x044b, 0x0497, 0x04ef,
+ 0x0552, 0x05b2, 0x0602, 0x0651, 0x06b2, 0x071a,
+ 0x077e, 0x07e5, 0x0847, 0x0897, 0x08c7, 0x08c2,
+ 0x0897, 0x0866, 0x081f, 0x07b8, 0x0757, 0x06ec,
+ 0x0668, 0x0602, 0x05b6, 0x0556, 0x04fa, 0x04a1,
+ 0x0432, 0x03cd, 0x036a, 0x02f9, 0x0297, 0x023b,
+ 0x01e9, 0x01ce, 0x01d1, 0x01d9, 0x01ff, 0x0228,
+ 0x0244, 0x0266, 0x0270, 0x025b, 0x023f, 0x021a,
+ 0x01f9, 0x01ec, 0x01d8, 0x01b9, 0x0197, 0x0166,
+ 0x0128, 0x00f3, 0x00d1, 0x00c1, 0x00b9, 0x00a7,
+ 0x0080, 0x0044, 0xfffc, 0xffaf, 0xff66, 0xff26,
+ 0xfee4, 0xfea1, 0xfe60, 0xfe11, 0xfdb8, 0xfd62,
+ 0xfd0b, 0xfcbd, 0xfc82, 0xfc55, 0xfc33, 0xfc0a,
+ 0xfbcb, 0xfb87, 0xfb36, 0xfacd, 0xfa7e, 0xfa66,
+ 0xfa76, 0xfab5, 0xfb13, 0xfb6a, 0xfbb2, 0xfbe8,
+ 0xfc12, 0xfc42, 0xfc62, 0xfc6b, 0xfc75, 0xfc6f,
+ 0xfc59, 0xfc56, 0xfc57, 0xfc5a, 0xfc81, 0xfcc5,
+ 0xfd13, 0xfd67, 0xfdb1, 0xfdf1, 0xfe2a, 0xfe50,
+ 0xfe78, 0xfeb1, 0xfee9, 0xff1f, 0xff5c, 0xffa4,
+ 0xfff4, 0x0031, 0x0054, 0x0060, 0x0057, 0x0053,
+ 0x0064, 0x007a, 0x0099, 0x00c0, 0x00da, 0x00e3,
+ 0x00d8, 0x00c9, 0x00c6, 0x00ba, 0x00aa, 0x00b2,
+ 0x00bb, 0x00d3, 0x0113, 0x0151, 0x018d, 0x01ee,
+ 0x025b, 0x02c9, 0x033f, 0x0380, 0x0378, 0x035c,
+ 0x0337, 0x02f4, 0x02a4, 0x026b, 0x024b, 0x0232,
+ 0x0219, 0x01ff, 0x01de, 0x01b3, 0x017c, 0x013e,
+ 0x0100, 0x00af, 0x0053, 0x0000, 0xffa7, 0xff5e,
+ 0xff49, 0xff51, 0xff5e, 0xff73, 0xff79, 0xff73,
+ 0xff77, 0xff73, 0xff65, 0xff57, 0xff2f, 0xfeed,
+ 0xfeab, 0xfe5f, 0xfe14, 0xfde9, 0xfdce, 0xfdb9,
+ 0xfdc5, 0xfde6, 0xfe0a, 0xfe3e, 0xfe72, 0xfe97,
+ 0xfed3, 0xff25, 0xff65, 0xff9e, 0xffd4, 0xffe2,
+ 0xffc9, 0xffaa, 0xff8a, 0xff65, 0xff50, 0xff55,
+ 0xff70, 0xff99, 0xffc3, 0xffd8, 0xffd8, 0xffd8,
+ 0xffe2, 0xffe8, 0xffd1, 0xff9e, 0xff6b, 0xff35,
+ 0xfef1, 0xfeba, 0xfe9c, 0xfe89, 0xfe83, 0xfe81,
+ 0xfe74, 0xfe67, 0xfe6d, 0xfe88, 0xfead, 0xfec7,
+ 0xfecf, 0xfecb, 0xfeb6, 0xfe94, 0xfe79, 0xfe6d,
+ 0xfe68, 0xfe6e, 0xfe78, 0xfe82, 0xfe9c, 0xfec2,
+ 0xfeda, 0xfee2, 0xfee7, 0xfee3, 0xfed0, 0xfebe,
+ 0xfeb0, 0xfe91, 0xfe67, 0xfe53, 0xfe62, 0xfe84,
+ 0xfeb5, 0xfeea, 0xff10, 0xff33, 0xff5a, 0xff6a,
+ 0xff51, 0xff17, 0xfec1, 0xfe57, 0xfde8, 0xfd88,
+ 0xfd43, 0xfd11, 0xfce8, 0xfcc6, 0xfcaa, 0xfc95,
+ 0xfc76, 0xfc44, 0xfc14, 0xfbeb, 0xfbca, 0xfbbb,
+ 0xfbaa, 0xfb95, 0xfb94, 0xfb8c, 0xfb7c, 0xfb87,
+ 0xfba5, 0xfbbf, 0xfbd7, 0xfbea, 0xfbff, 0xfc13,
+ 0xfc29, 0xfc59, 0xfc89, 0xfca2, 0xfcc7, 0xfd03,
+ 0xfd38, 0xfd5a, 0xfd65, 0xfd6c, 0xfd80, 0xfd8c,
+ 0xfd98, 0xfdbd, 0xfde9, 0xfe06, 0xfe12, 0xfe0f,
+ 0xfe02, 0xfdee, 0xfde2, 0xfde1, 0xfdd6, 0xfdc4,
+ 0xfdc3, 0xfdd0, 0xfde1, 0xfdf8, 0xfe22, 0xfe61,
+ 0xfe99, 0xfec4, 0xfeef, 0xff11, 0xff2f, 0xff50,
+ 0xff5e, 0xff5f, 0xff73, 0xff9b, 0xffd4, 0x0017,
+ 0x005c, 0x00b8, 0x012b, 0x018e, 0x01e4, 0x0246,
+ 0x02b2, 0x0317, 0x036c, 0x03aa, 0x03d6, 0x03f7,
+ 0x0404, 0x03fb, 0x03f8, 0x03fc, 0x03f5, 0x03f7,
+ 0x0400, 0x03f7, 0x03de, 0x03b6, 0x037b, 0x033e,
+ 0x02ec, 0x027d, 0x020c, 0x0190, 0x0118, 0x00bc,
+ 0x005e, 0x000c, 0xffe8, 0xffcb, 0xffb8, 0xffb5,
+ 0xff9e, 0xff7f, 0xff64, 0xff32, 0xff02, 0xfece,
+ 0xfe73, 0xfe1e, 0xfde5, 0xfdaa, 0xfd80, 0xfd65,
+ 0xfd3d, 0xfd22, 0xfd1b, 0xfd09, 0xfcf3, 0xfcdf,
+ 0xfcbd, 0xfc91, 0xfc65, 0xfc38, 0xfc0b, 0xfbd8,
+ 0xfbaf, 0xfba7, 0xfbb4, 0xfbc0, 0xfbcb, 0xfbd7,
+ 0xfbd7, 0xfbd4, 0xfbe3, 0xfc01, 0xfc20, 0xfc3b,
+ 0xfc3c, 0xfc27, 0xfc18, 0xfc0c, 0xfbff, 0xfc00,
+ 0xfc0f, 0xfc25, 0xfc3d, 0xfc56, 0xfc78, 0xfc9c,
+ 0xfcaa, 0xfcb5, 0xfce0, 0xfd1b, 0xfd5a, 0xfdad,
+ 0xfdfe, 0xfe25, 0xfe37, 0xfe58, 0xfe80, 0xfea8,
+ 0xfedd, 0xff2a, 0xff8b, 0xffea, 0x0035, 0x007a,
+ 0x00ae, 0x00d6, 0x0116, 0x015d, 0x0184, 0x01b4,
+ 0x01f5, 0x0224, 0x0260, 0x02af, 0x02f6, 0x034d,
+ 0x03a7, 0x03e7, 0x0426, 0x044f, 0x0453, 0x045f,
+ 0x0464, 0x044c, 0x044a, 0x0445, 0x0417, 0x03f7,
+ 0x03fe, 0x040f, 0x0425, 0x043f, 0x0461, 0x047d,
+ 0x047c, 0x0474, 0x0466, 0x0440, 0x0410, 0x03d1,
+ 0x0387, 0x0354, 0x031c, 0x02d1, 0x028a, 0x0239,
+ 0x01fa, 0x01e0, 0x01b4, 0x0179, 0x0150, 0x012b,
+ 0x011c, 0x0116, 0x00f1, 0x00c8, 0x0097, 0x0049,
+ 0x0004, 0xffc6, 0xff81, 0xff52, 0xff23, 0xfee6,
+ 0xfeae, 0xfe63, 0xfe0a, 0xfdc2, 0xfd80, 0xfd4e,
+ 0xfd32, 0xfd21, 0xfd28, 0xfd43, 0xfd6b, 0xfda6,
+ 0xfde2, 0xfe2a, 0xfe91, 0xfef2, 0xff44, 0xffa4,
+ 0xfffd, 0x003b, 0x0066, 0x008b, 0x00ba, 0x00fc,
+ 0x0154, 0x01ba, 0x021a, 0x0279, 0x02d7, 0x0330,
+ 0x03a1, 0x0426, 0x04a8, 0x0529, 0x059d, 0x05f5,
+ 0x063c, 0x066a, 0x0688, 0x06a3, 0x06a3, 0x0694,
+ 0x0690, 0x068d, 0x0680, 0x0661, 0x0635, 0x061c,
+ 0x060a, 0x05f0, 0x05e5, 0x05ce, 0x059c, 0x056e,
+ 0x053b, 0x04eb, 0x049d, 0x045c, 0x041d, 0x03e5,
+ 0x03bb, 0x0396, 0x036f, 0x035a, 0x0348, 0x0314,
+ 0x02d1, 0x0293, 0x0245, 0x01f3, 0x01a1, 0x014a,
+ 0x0112, 0x0101, 0x0100, 0x011c, 0x0148, 0x0168,
+ 0x0188, 0x01a6, 0x01b0, 0x01a6, 0x0191, 0x0170,
+ 0x0138, 0x00ed, 0x00b1, 0x008d, 0x006c, 0x0045,
+ 0x0010, 0xffd6, 0xffa0, 0xff62, 0xff1e, 0xfeea,
+ 0xfecd, 0xfec8, 0xfed6, 0xfef2, 0xff2e, 0xff8b,
+ 0xffef, 0x0046, 0x0085, 0x00b6, 0x00ee, 0x011b,
+ 0x012c, 0x0129, 0x0121, 0x0123, 0x0140, 0x017a,
+ 0x01cc, 0x0225, 0x027d, 0x02cb, 0x02ff, 0x0323,
+ 0x0346, 0x0356, 0x0366, 0x0392, 0x03c6, 0x0404,
+ 0x0451, 0x0486, 0x04a7, 0x04d4, 0x04fd, 0x0522,
+ 0x0546, 0x054f, 0x0543, 0x0533, 0x0526, 0x0535,
+ 0x056a, 0x05b6, 0x060f, 0x0660, 0x06a1, 0x06e3,
+ 0x0709, 0x06f9, 0x06dc, 0x06b3, 0x0666, 0x0618,
+ 0x05dd, 0x05a0, 0x056c, 0x0544, 0x0512, 0x04e2,
+ 0x04d1, 0x04d9, 0x04ea, 0x04f9, 0x04fd, 0x04f3,
+ 0x04ce, 0x048b, 0x0441, 0x03fc, 0x03b5, 0x037d,
+ 0x0360, 0x0340, 0x0311, 0x02d7, 0x027e, 0x0209,
+ 0x0192, 0x011e, 0x00b5, 0x0063, 0x001d, 0xffea,
+ 0xffc3, 0xff8b, 0xff52, 0xff2c, 0xff08, 0xfee2,
+ 0xfec2, 0xfe8e, 0xfe50, 0xfe1c, 0xfddb, 0xfd94,
+ 0xfd69, 0xfd4a, 0xfd3c, 0xfd65, 0xfda6, 0xfdd6,
+ 0xfe09, 0xfe36, 0xfe51, 0xfe6e, 0xfe86, 0xfe96,
+ 0xfec0, 0xfef0, 0xff22, 0xff76, 0xffce, 0x0008,
+ 0x003e, 0x006b, 0x0089, 0x00a4, 0x00b7, 0x00c0,
+ 0x00ca, 0x00ce, 0x00d6, 0x00f4, 0x0133, 0x018f,
+ 0x01e1, 0x0225, 0x026d, 0x029e, 0x02b1, 0x02c5,
+ 0x02e4, 0x030d, 0x0331, 0x033e, 0x034e, 0x0358,
+ 0x0341, 0x032e, 0x0323, 0x030b, 0x030e, 0x0328,
+ 0x0343, 0x0371, 0x039c, 0x03ae, 0x03bc, 0x03b6,
+ 0x039e, 0x0392, 0x038c, 0x038f, 0x039c, 0x039f,
+ 0x039f, 0x039f, 0x0389, 0x0368, 0x033c, 0x02fa,
+ 0x02b5, 0x0266, 0x01f6, 0x0184, 0x012b, 0x00e1,
+ 0x0097, 0x005d, 0x0048, 0x003b, 0x0025, 0x0016,
+ 0xfffa, 0xffbd, 0xff7c, 0xff2e, 0xfec2, 0xfe52,
+ 0xfdd7, 0xfd5c, 0xfd09, 0xfcc7, 0xfc80, 0xfc44,
+ 0xfbfb, 0xfb9d, 0xfb49, 0xfb04, 0xfaca, 0xfaa3,
+ 0xfa85, 0xfa73, 0xfa85, 0xfab3, 0xfadd, 0xfb0b,
+ 0xfb51, 0xfb93, 0xfbc2, 0xfbf0, 0xfc0c, 0xfc06,
+ 0xfc02, 0xfc19, 0xfc40, 0xfc77, 0xfcb4, 0xfce4,
+ 0xfd0d, 0xfd35, 0xfd51, 0xfd64, 0xfd7d, 0xfd94,
+ 0xfd9f, 0xfdac, 0xfdc7, 0xfdea, 0xfe03, 0xfe00,
+ 0xfde0, 0xfdb0, 0xfd78, 0xfd46, 0xfd2f, 0xfd33,
+ 0xfd4a, 0xfd6d, 0xfd8c, 0xfd9f, 0xfdba, 0xfdea,
+ 0xfe32, 0xfe8f, 0xfef3, 0xff48, 0xff7d, 0xffa3,
+ 0xffc7, 0xffcc, 0xffa7, 0xff79, 0xff4e, 0xff23,
+ 0xff0c, 0xff05, 0xfefa, 0xfef7, 0xff0e, 0xff3b,
+ 0xff7b, 0xffca, 0x0016, 0x004e, 0x0062, 0x0049,
+ 0x0014, 0xffd6, 0xff98, 0xff73, 0xff62, 0xff52,
+ 0xff54, 0xff59, 0xff38, 0xff08, 0xfee2, 0xfeb1,
+ 0xfe7c, 0xfe49, 0xfe03, 0xfdb2, 0xfd56, 0xfce2,
+ 0xfc72, 0xfc1c, 0xfbda, 0xfbae, 0xfb98, 0xfb9b,
+ 0xfbb0, 0xfbc0, 0xfbc6, 0xfbbf, 0xfb95, 0xfb61,
+ 0xfb3e, 0xfb21, 0xfb08, 0xfafc, 0xfaf4, 0xfae4,
+ 0xfacd, 0xfabf, 0xfaca, 0xfaec, 0xfb2d, 0xfb8b,
+ 0xfbf2, 0xfc5f, 0xfccb, 0xfd1b, 0xfd4a, 0xfd66,
+ 0xfd71, 0xfd6e, 0xfd6a, 0xfd6a, 0xfd65, 0xfd55,
+ 0xfd45, 0xfd3b, 0xfd3d, 0xfd4f, 0xfd67, 0xfd76,
+ 0xfd7f, 0xfd85, 0xfd87, 0xfd88, 0xfd95, 0xfdae,
+ 0xfdcd, 0xfdfb, 0xfe2f, 0xfe50, 0xfe64, 0xfe77,
+ 0xfe83, 0xfe9d, 0xfed7, 0xff26, 0xff89, 0xfff7,
+ 0x005f, 0x00ba, 0x00ed, 0x0103, 0x011c, 0x012d,
+ 0x013e, 0x015e, 0x0182, 0x01b5, 0x01fd, 0x024b,
+ 0x02a5, 0x02f4, 0x0320, 0x0346, 0x0366, 0x0365,
+ 0x0352, 0x0328, 0x02e4, 0x02a5, 0x026d, 0x0236,
+ 0x021a, 0x021a, 0x021d, 0x021c, 0x0228, 0x0234,
+ 0x022a, 0x021b, 0x0206, 0x01c8, 0x017b, 0x0136,
+ 0x00e8, 0x00a7, 0x007d, 0x0053, 0x002f, 0x000e,
+ 0xffed, 0xffde, 0xffd8, 0xffcb, 0xffb8, 0xff9c,
+ 0xff87, 0xff7e, 0xff71, 0xff73, 0xff8f, 0xffad,
+ 0xffc9, 0xffe5, 0xfff0, 0xffe5, 0xffca, 0xffaf,
+ 0xffa1, 0xff8f, 0xff71, 0xff52, 0xff31, 0xff05,
+ 0xfecf, 0xfe97, 0xfe55, 0xfe01, 0xfdb4, 0xfd7c,
+ 0xfd4f, 0xfd35, 0xfd16, 0xfce0, 0xfcb4, 0xfc8b,
+ 0xfc46, 0xfc04, 0xfbdf, 0xfbd4, 0xfbd2, 0xfbbf,
+ 0xfbac, 0xfba3, 0xfb9b, 0xfba3, 0xfbc1, 0xfbef,
+ 0xfc3f, 0xfc9d, 0xfcf3, 0xfd4e, 0xfda7, 0xfdf5,
+ 0xfe49, 0xfe94, 0xfecd, 0xff06, 0xff3e, 0xff66,
+ 0xff87, 0xffb1, 0xffe3, 0x0025, 0x008b, 0x00f0,
+ 0x0141, 0x019b, 0x01e4, 0x0202, 0x0220, 0x023b,
+ 0x0242, 0x024f, 0x0261, 0x0284, 0x02c1, 0x02f6,
+ 0x0321, 0x0344, 0x034e, 0x036a, 0x03a1, 0x03d7,
+ 0x0419, 0x044c, 0x0455, 0x0449, 0x0421, 0x03df,
+ 0x03a2, 0x035d, 0x0320, 0x0304, 0x02f6, 0x02f7,
+ 0x02f9, 0x02e6, 0x02d6, 0x02b6, 0x0272, 0x022d,
+ 0x01e8, 0x01ae, 0x0189, 0x0158, 0x0141, 0x0162,
+ 0x0177, 0x018a, 0x01c3, 0x01fb, 0x022e, 0x0269,
+ 0x0293, 0x02b2, 0x02c8, 0x02ba, 0x0297, 0x0270,
+ 0x0244, 0x0215, 0x01e6, 0x01c5, 0x01ab, 0x0182,
+ 0x015f, 0x0153, 0x0150, 0x0153, 0x0156, 0x014a,
+ 0x013f, 0x013c, 0x0148, 0x016f, 0x01a9, 0x01e4,
+ 0x0227, 0x0265, 0x028a, 0x029f, 0x02aa, 0x02a6,
+ 0x02a7, 0x02b9, 0x02d0, 0x02e3, 0x02f4, 0x0304,
+ 0x0311, 0x0314, 0x0319, 0x0327, 0x032a, 0x0340,
+ 0x0389, 0x03e4, 0x043f, 0x0499, 0x04d7, 0x04ff,
+ 0x0517, 0x0515, 0x0511, 0x04ff, 0x04ca, 0x0489,
+ 0x042e, 0x03b6, 0x035d, 0x032f, 0x0312, 0x031d,
+ 0x0340, 0x0358, 0x0376, 0x0394, 0x0394, 0x037d,
+ 0x0356, 0x030c, 0x02a7, 0x0244, 0x01e5, 0x0187,
+ 0x013f, 0x0103, 0x00c9, 0x00a1, 0x008e, 0x0085,
+ 0x0074, 0x0050, 0x001f, 0xffe2, 0xff96, 0xff5b,
+ 0xff2b, 0xff01, 0xfeff, 0xff17, 0xff31, 0xff5b,
+ 0xff7a, 0xff77, 0xff64, 0xff3c, 0xff0c, 0xfee5,
+ 0xfeb0, 0xfe79, 0xfe49, 0xfe0e, 0xfdde, 0xfdb2,
+ 0xfd87, 0xfd82, 0xfd8d, 0xfd97, 0xfdc0, 0xfdf2,
+ 0xfe1a, 0xfe54, 0xfe90, 0xfec4, 0xfefb, 0xff35,
+ 0xff7a, 0xffbc, 0xfff0, 0x002e, 0x0060, 0x0085,
+ 0x00cd, 0x0125, 0x0184, 0x020c, 0x029e, 0x031b,
+ 0x0394, 0x03fd, 0x0453, 0x0492, 0x04bc, 0x04eb,
+ 0x0516, 0x053a, 0x0574, 0x05b4, 0x05e0, 0x05f6,
+ 0x05f3, 0x05f6, 0x0615, 0x0636, 0x0656, 0x067c,
+ 0x068e, 0x0689, 0x0673, 0x064f, 0x0629, 0x0604,
+ 0x05e3, 0x05d0, 0x05c8, 0x05cb, 0x05d1, 0x05c7,
+ 0x05be, 0x05b9, 0x05b2, 0x05b3, 0x05a9, 0x0583,
+ 0x0558, 0x0530, 0x04f7, 0x04ae, 0x045d, 0x0413,
+ 0x03da, 0x03ae, 0x0390, 0x0389, 0x0393, 0x039f,
+ 0x03a2, 0x0394, 0x036a, 0x032c, 0x02e5, 0x0286,
+ 0x0208, 0x0179, 0x00e1, 0x0056, 0xffe5, 0xff82,
+ 0xff4c, 0xff55, 0xff65, 0xff70, 0xff96, 0xffb3,
+ 0xffb4, 0xffa8, 0xff7e, 0xff36, 0xfeea, 0xfe9d,
+ 0xfe66, 0xfe54, 0xfe46, 0xfe25, 0xfe05, 0xfdf6,
+ 0xfdf9, 0xfe13, 0xfe3e, 0xfe68, 0xfe8d, 0xfea7,
+ 0xfea4, 0xfe8f, 0xfe81, 0xfe7d, 0xfe8c, 0xfeb4,
+ 0xfeef, 0xff3c, 0xff86, 0xffbf, 0xfffe, 0x003e,
+ 0x007a, 0x00b8, 0x00e3, 0x00f8, 0x0115, 0x012c,
+ 0x013e, 0x015c, 0x016e, 0x016a, 0x0160, 0x014a,
+ 0x013a, 0x0142, 0x014b, 0x0154, 0x015f, 0x0167,
+ 0x0178, 0x0187, 0x0184, 0x0180, 0x0176, 0x0161,
+ 0x0150, 0x013d, 0x0125, 0x011a, 0x0120, 0x012b,
+ 0x0134, 0x0148, 0x0162, 0x0153, 0x0118, 0x00df,
+ 0x00a6, 0x005a, 0x0019, 0xfffc, 0xfff8, 0xffea,
+ 0xffba, 0xff77, 0xff2f, 0xfee8, 0xfeb3, 0xfe8a,
+ 0xfe67, 0xfe56, 0xfe3f, 0xfe10, 0xfddd, 0xfdb2,
+ 0xfd90, 0xfd81, 0xfd88, 0xfda7, 0xfdd1, 0xfdf1,
+ 0xfdf9, 0xfde6, 0xfdbb, 0xfd85, 0xfd58, 0xfd3f,
+ 0xfd26, 0xfd08, 0xfcfe, 0xfcf9, 0xfcee, 0xfcf5,
+ 0xfcf7, 0xfce4, 0xfcd6, 0xfcc6, 0xfcb1, 0xfcb0,
+ 0xfcbd, 0xfccd, 0xfce0, 0xfcf5, 0xfd0c, 0xfd1c,
+ 0xfd1f, 0xfd1f, 0xfd10, 0xfd04, 0xfd21, 0xfd4f,
+ 0xfd7e, 0xfdbc, 0xfdf9, 0xfe3e, 0xfe8d, 0xfeb9,
+ 0xfecb, 0xfedb, 0xfed0, 0xfeb1, 0xfe91, 0xfe57,
+ 0xfe13, 0xfde9, 0xfdc6, 0xfd9f, 0xfd88, 0xfd8b,
+ 0xfd9d, 0xfdbb, 0xfde4, 0xfe0d, 0xfe35, 0xfe63,
+ 0xfe87, 0xfe8e, 0xfe84, 0xfe7f, 0xfe86, 0xfe90,
+ 0xfe9c, 0xfeb7, 0xfee5, 0xff2a, 0xff7e, 0xffbf,
+ 0xffee, 0x002d, 0x0063, 0x0070, 0x0074, 0x0072,
+ 0x005f, 0x0053, 0x0050, 0x0042, 0x002b, 0x0008,
+ 0xffd1, 0xff99, 0xff68, 0xff38, 0xff12, 0xfeec,
+ 0xfea9, 0xfe51, 0xfdf2, 0xfd84, 0xfd19, 0xfccc,
+ 0xfc87, 0xfc41, 0xfc0d, 0xfbe0, 0xfbb4, 0xfb9f,
+ 0xfb9e, 0xfba7, 0xfbc2, 0xfbe4, 0xfbef, 0xfbe4,
+ 0xfbd7, 0xfbc8, 0xfba8, 0xfb77, 0xfb43, 0xfb1a,
+ 0xfb09, 0xfb05, 0xfb03, 0xfb16, 0xfb40, 0xfb6d,
+ 0xfb9c, 0xfbcd, 0xfbfc, 0xfc35, 0xfc6e, 0xfc94,
+ 0xfcb3, 0xfcdd, 0xfd1e, 0xfd77, 0xfdc0, 0xfdf8,
+ 0xfe44, 0xfe91, 0xfebd, 0xfed4, 0xfee5, 0xfeef,
+ 0xfeed, 0xfee5, 0xfee8, 0xfef1, 0xfef3, 0xfeff,
+ 0xff17, 0xff2b, 0xff37, 0xff33, 0xff2b, 0xff34,
+ 0xff2f, 0xff20, 0xff2b, 0xff30, 0xff24, 0xff1f,
+ 0xff01, 0xfed2, 0xfec4, 0xfebe, 0xfeaa, 0xfeaf,
+ 0xfecd, 0xfef2, 0xff2d, 0xff79, 0xffc4, 0x0011,
+ 0x005d, 0x0099, 0x00c6, 0x00ec, 0x010c, 0x012f,
+ 0x0159, 0x017d, 0x0198, 0x01ac, 0x01a9, 0x018e,
+ 0x0170, 0x0157, 0x013f, 0x0127, 0x0114, 0x010c,
+ 0x00fb, 0x00e3, 0x00e6, 0x00e6, 0x00d5, 0x00e4,
+ 0x0108, 0x0125, 0x0161, 0x01aa, 0x01d5, 0x01f9,
+ 0x021c, 0x021d, 0x020a, 0x01f8, 0x01de, 0x01ba,
+ 0x018d, 0x0156, 0x0114, 0x00d9, 0x00b2, 0x0096,
+ 0x007d, 0x005f, 0x0043, 0x0034, 0x0018, 0xffe7,
+ 0xffcb, 0xffc7, 0xffb8, 0xffae, 0xffac, 0xffac,
+ 0xffc3, 0xffdd, 0xffce, 0xffb8, 0xffbe, 0xffc5,
+ 0xffbf, 0xffca, 0xffe6, 0xfff5, 0xfff7, 0xfff3,
+ 0xffd2, 0xff9d, 0xff6d, 0xff25, 0xfebe, 0xfe62,
+ 0xfe11, 0xfdc2, 0xfd85, 0xfd5e, 0xfd4f, 0xfd5e,
+ 0xfd75, 0xfd87, 0xfd9c, 0xfdae, 0xfdb8, 0xfdaf,
+ 0xfd90, 0xfd72, 0xfd61, 0xfd54, 0xfd5a, 0xfd79,
+ 0xfd93, 0xfdab, 0xfdcd, 0xfdea, 0xfe05, 0xfe2d,
+ 0xfe5e, 0xfe9b, 0xfede, 0xff08, 0xff27, 0xff55,
+ 0xff7a, 0xff8b, 0xff93, 0xff9e, 0xffb5, 0xffc4,
+ 0xffc3, 0xffca, 0xffc3, 0xffa2, 0xff9b, 0xffad,
+ 0xffbc, 0xffda, 0xffff, 0x000d, 0x000f, 0x0018,
+ 0x0037, 0x0070, 0x00b7, 0x0111, 0x0179, 0x01d2,
+ 0x0217, 0x0252, 0x0288, 0x02c3, 0x02fc, 0x0321,
+ 0x0342, 0x036d, 0x0393, 0x03ab, 0x03c8, 0x03f5,
+ 0x0425, 0x0452, 0x0480, 0x04af, 0x04e2, 0x0515,
+ 0x0535, 0x054d, 0x056f, 0x058a, 0x058f, 0x0592,
+ 0x0599, 0x058c, 0x057a, 0x0581, 0x0593, 0x05a7,
+ 0x05c3, 0x05d0, 0x05c3, 0x05a7, 0x057a, 0x054b,
+ 0x0535, 0x0529, 0x0522, 0x0523, 0x0512, 0x04ed,
+ 0x04cb, 0x04ad, 0x0497, 0x0486, 0x0467, 0x0441,
+ 0x0414, 0x03db, 0x03b7, 0x039f, 0x0379, 0x0358,
+ 0x0335, 0x0302, 0x02e9, 0x02ed, 0x02ec, 0x02f3,
+ 0x0308, 0x0320, 0x0345, 0x0378, 0x03a7, 0x03d2,
+ 0x03ff, 0x0421, 0x0426, 0x041c, 0x0416, 0x0406,
+ 0x03e8, 0x03c8, 0x038d, 0x0347, 0x032b, 0x031b,
+ 0x02f8, 0x02e3, 0x02d9, 0x02b7, 0x028f, 0x0262,
+ 0x0228, 0x01f1, 0x01c9, 0x01b2, 0x01ad, 0x01bb,
+ 0x01e4, 0x0226, 0x025c, 0x027d, 0x029f, 0x02ac,
+ 0x0292, 0x0277, 0x0264, 0x0249, 0x023e, 0x0254,
+ 0x026e, 0x0289, 0x02aa, 0x02c1, 0x02d9, 0x02fc,
+ 0x031d, 0x0343, 0x0366, 0x036d, 0x035e, 0x0341,
+ 0x0310, 0x02d9, 0x02a2, 0x026c, 0x0243, 0x0225,
+ 0x021e, 0x0236, 0x0256, 0x026c, 0x028b, 0x02b0,
+ 0x02be, 0x02bc, 0x02ba, 0x02a8, 0x0289, 0x026a,
+ 0x0237, 0x01f6, 0x01b4, 0x015f, 0x010c, 0x00d9,
+ 0x00a9, 0x0074, 0x004f, 0x003c, 0x004a, 0x006b,
+ 0x0078, 0x0081, 0x0090, 0x008c, 0x0086, 0x0088,
+ 0x0088, 0x0091, 0x00ae, 0x00d7, 0x010d, 0x0149,
+ 0x0186, 0x01b5, 0x01d4, 0x01f1, 0x020f, 0x0226,
+ 0x022f, 0x0224, 0x0219, 0x0224, 0x0238, 0x024d,
+ 0x025f, 0x0269, 0x0271, 0x026b, 0x0247, 0x0218,
+ 0x01ea, 0x01bb, 0x0190, 0x0166, 0x013f, 0x011f,
+ 0x0112, 0x011e, 0x0121, 0x0114, 0x0110, 0x010d,
+ 0x0118, 0x0145, 0x0178, 0x01a1, 0x01d4, 0x0213,
+ 0x025e, 0x02a3, 0x02d8, 0x0304, 0x0312, 0x0305,
+ 0x02f8, 0x02d9, 0x02b6, 0x02ab, 0x02a4, 0x02ab,
+ 0x02d2, 0x02f8, 0x0314, 0x0328, 0x032c, 0x031c,
+ 0x02e5, 0x029a, 0x0264, 0x022e, 0x0212, 0x022d,
+ 0x0245, 0x0254, 0x0277, 0x028b, 0x0296, 0x02a3,
+ 0x029a, 0x028e, 0x0284, 0x0267, 0x0239, 0x01fd,
+ 0x01bf, 0x018e, 0x0158, 0x0134, 0x012a, 0x0121,
+ 0x0129, 0x013e, 0x014e, 0x0170, 0x0191, 0x0196,
+ 0x01a7, 0x01bc, 0x01ad, 0x0187, 0x0150, 0x0115,
+ 0x00ee, 0x00c6, 0x009f, 0x0099, 0x00a1, 0x0096,
+ 0x0083, 0x006d, 0x0053, 0x003f, 0x0026, 0x0003,
+ 0xffeb, 0xffd3, 0xff9c, 0xff59, 0xff26, 0xfef8,
+ 0xfec7, 0xfe87, 0xfe3a, 0xfdff, 0xfdda, 0xfdc0,
+ 0xfdb4, 0xfda7, 0xfd98, 0xfd8e, 0xfd75, 0xfd5c,
+ 0xfd53, 0xfd43, 0xfd3a, 0xfd39, 0xfd33, 0xfd55,
+ 0xfd97, 0xfdd1, 0xfe18, 0xfe5d, 0xfe87, 0xfeb2,
+ 0xfed2, 0xfed4, 0xfecd, 0xfebe, 0xfeb1, 0xfeb0,
+ 0xfea6, 0xfea3, 0xfec3, 0xfee9, 0xff05, 0xff25,
+ 0xff3f, 0xff3e, 0xff20, 0xfef3, 0xfeb8, 0xfe73,
+ 0xfe42, 0xfe2e, 0xfe29, 0xfe31, 0xfe38, 0xfe29,
+ 0xfe08, 0xfdda, 0xfdaa, 0xfd88, 0xfd77, 0xfd81,
+ 0xfda0, 0xfdb7, 0xfdc2, 0xfdce, 0xfdce, 0xfdb1,
+ 0xfd76, 0xfd34, 0xfd01, 0xfcd5, 0xfcb9, 0xfccc,
+ 0xfcf8, 0xfd1c, 0xfd4c, 0xfd91, 0xfdd0, 0xfdfa,
+ 0xfe13, 0xfe19, 0xfe09, 0xfde9, 0xfdd5, 0xfddb,
+ 0xfdf0, 0xfe13, 0xfe46, 0xfe79, 0xfea3, 0xfec4,
+ 0xfecf, 0xfec1, 0xfeb5, 0xfeb9, 0xfec0, 0xfeb1,
+ 0xfe97, 0xfe81, 0xfe60, 0xfe38, 0xfe1a, 0xfdf6,
+ 0xfdce, 0xfdb7, 0xfda3, 0xfd9a, 0xfd9b, 0xfd7c,
+ 0xfd4c, 0xfd15, 0xfcae, 0xfc46, 0xfc10, 0xfbe5,
+ 0xfbcd, 0xfbf1, 0xfc2d, 0xfc5a, 0xfc76, 0xfc8e,
+ 0xfca5, 0xfcab, 0xfcb3, 0xfcc0, 0xfcaa, 0xfc83,
+ 0xfc69, 0xfc4a, 0xfc3d, 0xfc4c, 0xfc3e, 0xfc0e,
+ 0xfbeb, 0xfbdb, 0xfbcd, 0xfbb4, 0xfba4, 0xfbb3,
+ 0xfbc0, 0xfbc5, 0xfbe7, 0xfc04, 0xfbe7, 0xfbb4,
+ 0xfb95, 0xfb8d, 0xfb9a, 0xfbbb, 0xfbf1, 0xfc35,
+ 0xfc6d, 0xfc89, 0xfc96, 0xfca4, 0xfcbc, 0xfcdc,
+ 0xfd02, 0xfd28, 0xfd43, 0xfd52, 0xfd6a, 0xfd8b,
+ 0xfdac, 0xfddb, 0xfe0b, 0xfe29, 0xfe4f, 0xfe8e,
+ 0xfeca, 0xfef7, 0xff11, 0xff1c, 0xff41, 0xff76,
+ 0xff81, 0xff74, 0xff6b, 0xff57, 0xff4e, 0xff5d,
+ 0xff64, 0xff7a, 0xffad, 0xffd5, 0xffea, 0x0002,
+ 0x0018, 0x001c, 0x0020, 0x002d, 0x0035, 0x0040,
+ 0x0054, 0x004c, 0x0024, 0x000c, 0xffef, 0xffc5,
+ 0xffb8, 0xffb9, 0xffc0, 0xffea, 0x0006, 0xfffd,
+ 0xfff0, 0xffd3, 0xffab, 0xff99, 0xff8e, 0xff8a,
+ 0xff9d, 0xffc5, 0x0003, 0x0042, 0x007f, 0x00c5,
+ 0x00f0, 0x0107, 0x0132, 0x014b, 0x0153, 0x015e,
+ 0x0138, 0x00f0, 0x00bd, 0x008e, 0x0081, 0x00b4,
+ 0x00f8, 0x0150, 0x01bc, 0x020a, 0x023f, 0x0264,
+ 0x026e, 0x026f, 0x025c, 0x022b, 0x01f4, 0x01b3,
+ 0x0169, 0x012d, 0x00fe, 0x00de, 0x00cb, 0x00b8,
+ 0x00af, 0x00ad, 0x009c, 0x0088, 0x0077, 0x005c,
+ 0x0038, 0x001c, 0x000a, 0xfff9, 0xffe7, 0xffda,
+ 0xffc9, 0xffb9, 0xffbd, 0xffdb, 0x0009, 0x0031,
+ 0x0052, 0x0070, 0x0072, 0x0063, 0x0057, 0x002f,
+ 0x0006, 0x0003, 0xfff2, 0xffc0, 0xff9e, 0xff88,
+ 0xff77, 0xff75, 0xff72, 0xff69, 0xff5d, 0xff4e,
+ 0xff47, 0xff37, 0xff1c, 0xfefd, 0xfeb8, 0xfe5e,
+ 0xfe1b, 0xfdd8, 0xfd8f, 0xfd5f, 0xfd3f, 0xfd22,
+ 0xfd0e, 0xfcef, 0xfcb7, 0xfc7d, 0xfc4e, 0xfc1d,
+ 0xfbe7, 0xfbb4, 0xfb72, 0xfb34, 0xfb2e, 0xfb4a,
+ 0xfb5b, 0xfb71, 0xfb93, 0xfbc9, 0xfc18, 0xfc65,
+ 0xfca4, 0xfce3, 0xfd21, 0xfd59, 0xfd7c, 0xfd89,
+ 0xfd9b, 0xfdaa, 0xfdac, 0xfdcd, 0xfe04, 0xfe29,
+ 0xfe4f, 0xfe91, 0xfef6, 0xff63, 0xff9e, 0xffab,
+ 0xffba, 0xffd5, 0xffeb, 0xfff0, 0xffe6, 0xffd7,
+ 0xffd2, 0xffe3, 0x000e, 0x0048, 0x008a, 0x00e3,
+ 0x015c, 0x01e4, 0x0262, 0x02ce, 0x0316, 0x032e,
+ 0x0341, 0x0362, 0x0362, 0x0339, 0x0319, 0x0314,
+ 0x0331, 0x0370, 0x03b2, 0x03e8, 0x0430, 0x0489,
+ 0x04d5, 0x050e, 0x053e, 0x055f, 0x057a, 0x0593,
+ 0x059a, 0x058e, 0x0575, 0x055b, 0x055d, 0x0580,
+ 0x05b5, 0x05e6, 0x05f9, 0x05eb, 0x05e1, 0x05ed,
+ 0x05f7, 0x05e2, 0x05b3, 0x057c, 0x0528, 0x04c1,
+ 0x047f, 0x0462, 0x0441, 0x0426, 0x041c, 0x041e,
+ 0x0425, 0x0421, 0x0412, 0x03ff, 0x03e5, 0x03dc,
+ 0x03e9, 0x03e7, 0x03d1, 0x03c3, 0x03c1, 0x03bd,
+ 0x03b8, 0x03b1, 0x0396, 0x0378, 0x037e, 0x0393,
+ 0x03a4, 0x03d7, 0x040f, 0x0409, 0x03db, 0x03ad,
+ 0x037a, 0x0343, 0x031d, 0x0319, 0x0325, 0x0328,
+ 0x0323, 0x031c, 0x0324, 0x0354, 0x0393, 0x03ab,
+ 0x0395, 0x0368, 0x032d, 0x02d2, 0x025c, 0x01fe,
+ 0x01cd, 0x01b0, 0x01b2, 0x01d5, 0x01f9, 0x0217,
+ 0x0226, 0x021c, 0x01fb, 0x01ca, 0x01ac, 0x01b0,
+ 0x019e, 0x0155, 0x00f0, 0x0075, 0x0004, 0xffc9,
+ 0xff9b, 0xff6e, 0xff66, 0xff7c, 0xffa9, 0xfff8,
+ 0x0041, 0x0071, 0x0099, 0x00a5, 0x007c, 0x0035,
+ 0xfff4, 0xffc7, 0xffa6, 0xff8a, 0xff8e, 0xffac,
+ 0xffb8, 0xffb2, 0xffb4, 0xffbc, 0xffb7, 0xff99,
+ 0xff65, 0xff2d, 0xfefa, 0xfed3, 0xfeae, 0xfe8c,
+ 0xfe88, 0xfe92, 0xfe87, 0xfe80, 0xfe94, 0xfebf,
+ 0xff03, 0xff46, 0xff75, 0xff9d, 0xffab, 0xff94,
+ 0xff66, 0xff20, 0xfee8, 0xfee7, 0xfef4, 0xfeea,
+ 0xfeea, 0xfef7, 0xfeee, 0xfeeb, 0xff16, 0xff57,
+ 0xff8f, 0xffc9, 0x0006, 0x0040, 0x0068, 0x0072,
+ 0x0073, 0x007c, 0x007c, 0x008c, 0x00ab, 0x009c,
+ 0x0096, 0x00dc, 0x0126, 0x0148, 0x0167, 0x0183,
+ 0x01a5, 0x01dc, 0x01fd, 0x01ee, 0x01d5, 0x01ee,
+ 0x0249, 0x02ba, 0x0332, 0x03b2, 0x0422, 0x0487,
+ 0x04e9, 0x0536, 0x0574, 0x05a0, 0x059a, 0x0579,
+ 0x056e, 0x056e, 0x0559, 0x0530, 0x050d, 0x04ef,
+ 0x04da, 0x04f8, 0x0532, 0x054e, 0x0574, 0x059e,
+ 0x057e, 0x0542, 0x0522, 0x04e3, 0x048c, 0x0446,
+ 0x03eb, 0x038a, 0x0358, 0x034d, 0x0356, 0x035a,
+ 0x032b, 0x02e8, 0x02c1, 0x028d, 0x0241, 0x01fb,
+ 0x01b6, 0x0175, 0x014d, 0x0118, 0x00cb, 0x0080,
+ 0x0039, 0x0011, 0x0018, 0x001b, 0x0003, 0xffdc,
+ 0xff98, 0xff69, 0xff74, 0xff79, 0xff6a, 0xff68,
+ 0xff3a, 0xfed9, 0xfe96, 0xfe73, 0xfe3e, 0xfe15,
+ 0xfe1c, 0xfe3a, 0xfe42, 0xfe26, 0xfe00, 0xfdf6,
+ 0xfe20, 0xfe63, 0xfe75, 0xfe46, 0xfe08, 0xfdc1,
+ 0xfd6d, 0xfd2f, 0xfd13, 0xfd0b, 0xfd20, 0xfd51,
+ 0xfd95, 0xfddb, 0xfe19, 0xfe5a, 0xfe71, 0xfe38,
+ 0xfe07, 0xfe15, 0xfe1d, 0xfe1c, 0xfe45, 0xfe8c,
+ 0xfed0, 0xfeff, 0xff18, 0xff23, 0xff14, 0xfef3,
+ 0xfed2, 0xfeb2, 0xfead, 0xfebe, 0xfea6, 0xfe80,
+ 0xfe87, 0xfe8f, 0xfe89, 0xfea5, 0xfec2, 0xfeb7,
+ 0xfeb3, 0xfed8, 0xff16, 0xff63, 0xffa7, 0xffbd,
+ 0xff9a, 0xff4e, 0xff07, 0xfedf, 0xfec2, 0xfe9b,
+ 0xfe73, 0xfe58, 0xfe4e, 0xfe4f, 0xfe55, 0xfe5d,
+ 0xfe5d, 0xfe68, 0xfe75, 0xfe4b, 0xfe06, 0xfdea,
+ 0xfdb9, 0xfd66, 0xfd57, 0xfd65, 0xfd3e, 0xfd0e,
+ 0xfd04, 0xfd21, 0xfd48, 0xfd33, 0xfcf3, 0xfcce,
+ 0xfcb9, 0xfcbb, 0xfcf0, 0xfd15, 0xfcfe, 0xfcda,
+ 0xfcd5, 0xfcf4, 0xfd23, 0xfd56, 0xfd79, 0xfd67,
+ 0xfd41, 0xfd2d, 0xfd12, 0xfd03, 0xfd16, 0xfd15,
+ 0xfd03, 0xfcfc, 0xfcc3, 0xfc66, 0xfc48, 0xfc52,
+ 0xfc37, 0xfc26, 0xfc5b, 0xfca5, 0xfccd, 0xfcea,
+ 0xfd0e, 0xfd36, 0xfd5e, 0xfd73, 0xfd8f, 0xfdc0,
+ 0xfdbc, 0xfd8a, 0xfd93, 0xfddd, 0xfe40, 0xfea7,
+ 0xfef2, 0xff44, 0xffac, 0xffd4, 0xffc0, 0xffc7,
+ 0xfff6, 0x0044, 0x00a3, 0x00db, 0x00dd, 0x00b7,
+ 0x009a, 0x00a7, 0x00aa, 0x00af, 0x0103, 0x0160,
+ 0x0190, 0x01e5, 0x0247, 0x0268, 0x0273, 0x026e,
+ 0x0237, 0x01f6, 0x01c6, 0x0190, 0x0151, 0x0138,
+ 0x016f, 0x01b0, 0x01aa, 0x019a, 0x01b6, 0x01b1,
+ 0x0175, 0x0149, 0x0136, 0x0122, 0x0129, 0x015d,
+ 0x017f, 0x014c, 0x00e5, 0x0095, 0x0077, 0x007d,
+ 0x00a1, 0x00d5, 0x00fc, 0x0128, 0x016f, 0x01a5,
+ 0x01b1, 0x01a6, 0x0178, 0x013b, 0x0111, 0x00d2,
+ 0x008a, 0x0066, 0x0032, 0xfff2, 0xfffb, 0x0026,
+ 0x0030, 0x0020, 0xffef, 0xffac, 0xff7d, 0xff4a,
+ 0xff0f, 0xfee6, 0xfec4, 0xfeb5, 0xfeba, 0xfea0,
+ 0xfe7b, 0xfe7e, 0xfe8f, 0xfea0, 0xfec9, 0xfeef,
+ 0xfefb, 0xff16, 0xff39, 0xff33, 0xff12, 0xfeeb,
+ 0xfebc, 0xfebf, 0xff0c, 0xff48, 0xff47, 0xff48,
+ 0xff60, 0xff89, 0xffca, 0xfffb, 0xffd9, 0xff75,
+ 0xff33, 0xff48, 0xff7d, 0xff87, 0xff51, 0xfefe,
+ 0xfecc, 0xfeb7, 0xfe8e, 0xfe58, 0xfe26, 0xfe09,
+ 0xfe2f, 0xfe78, 0xfead, 0xfefb, 0xff85, 0x0015,
+ 0x006f, 0x0077, 0x0034, 0xffc1, 0xff3d, 0xfeea,
+ 0xfee2, 0xff1b, 0xff98, 0x0024, 0x0082, 0x00d1,
+ 0x00f4, 0x00c2, 0x0095, 0x0080, 0x004c, 0x0033,
+ 0x004f, 0x0058, 0x004a, 0x0038, 0x0021, 0x000d,
+ 0xffe8, 0xffc9, 0xfff0, 0x0042, 0x00a7, 0x0117,
+ 0x013b, 0x00f3, 0x0080, 0x0005, 0xffbe, 0xffee,
+ 0x006e, 0x00f7, 0x0160, 0x0170, 0x0117, 0x0088,
+ 0x0006, 0xffc6, 0xffd7, 0x0023, 0x0079, 0x00c4,
+ 0x010b, 0x0120, 0x00d6, 0x0046, 0xff6d, 0xfe8e,
+ 0xfe57, 0xfebf, 0xff4f, 0xfffb, 0x0095, 0x00dd,
+ 0x00e6, 0x00b4, 0x0067, 0x0048, 0x0046, 0x0048,
+ 0x0030, 0xffdd, 0xffd1, 0x0050, 0x00c4, 0x0118,
+ 0x0195, 0x01f1, 0x020c, 0x0212, 0x0204, 0x01f5,
+ 0x0207, 0x0235, 0x025f, 0x0249, 0x01ee, 0x0186,
+ 0x0151, 0x0163, 0x016d, 0x0133, 0x010b, 0x013a,
+ 0x0194, 0x01e9, 0x0247, 0x02dc, 0x036f, 0x039a,
+ 0x0391, 0x0386, 0x0355, 0x032f, 0x0325, 0x0304,
+ 0x0311, 0x034c, 0x0330, 0x02d7, 0x02a6, 0x029a,
+ 0x02c9, 0x0355, 0x03d2, 0x03dc, 0x03e1, 0x042c,
+ 0x0452, 0x043d, 0x0412, 0x039b, 0x0314, 0x02e3,
+ 0x02ff, 0x0389, 0x0433, 0x044d, 0x0438, 0x0463,
+ 0x0475, 0x04a3, 0x04fe, 0x04b2, 0x039a, 0x0262,
+ 0x017f, 0x0122, 0x0161, 0x020d, 0x02b8, 0x0328,
+ 0x0392, 0x03c5, 0x036e, 0x02f1, 0x0288, 0x0228,
+ 0x021b, 0x0239, 0x0214, 0x01d5, 0x01af, 0x01a1,
+ 0x01e5, 0x0293, 0x034f, 0x0398, 0x0389, 0x0383,
+ 0x0344, 0x02b9, 0x023f, 0x019f, 0x00f4, 0x00cf,
+ 0x00fd, 0x0164, 0x0230, 0x02dd, 0x032a, 0x0324,
+ 0x027b, 0x0182, 0x00da, 0x005e, 0x000e, 0x0024,
+ 0x0062, 0x0060, 0x0002, 0xff81, 0xff18, 0xfede,
+ 0xfee5, 0xfee6, 0xfeaf, 0xfe80, 0xfe48, 0xfe2b,
+ 0xfe97, 0xfeec, 0xfea8, 0xfe6b, 0xfe3f, 0xfe06,
+ 0xfe1e, 0xfe1d, 0xfdbf, 0xfdab, 0xfdcd, 0xfdb8,
+ 0xfda3, 0xfdbf, 0xfe0e, 0xfe74, 0xfecf, 0xff2b,
+ 0xff45, 0xfedb, 0xfe67, 0xfe5a, 0xfea5, 0xff03,
+ 0xfefe, 0xfe7c, 0xfdf4, 0xfdf1, 0xfe8d, 0xff2b,
+ 0xff5e, 0xff69, 0xff0a, 0xfe4c, 0xfe4e, 0xff07,
+ 0xff74, 0xff9f, 0xff66, 0xfe62, 0xfd95, 0xfdb6,
+ 0xfe26, 0xfe9d, 0xfeeb, 0xfe8a, 0xfde0, 0xfdb7,
+ 0xfe02, 0xfe71, 0xfec9, 0xfeb5, 0xfe6e, 0xfea5,
+ 0xff41, 0xffa2, 0xffc8, 0xffd1, 0xff89, 0xff23,
+ 0xfeed, 0xfef4, 0xff44, 0xff91, 0xffcb, 0x0074,
+ 0x0122, 0x0144, 0x018b, 0x01f2, 0x01da, 0x01d8,
+ 0x0200, 0x01a7, 0x016c, 0x01ef, 0x028b, 0x02e5,
+ 0x0321, 0x02ff, 0x025b, 0x01d0, 0x01e5, 0x0254,
+ 0x02b4, 0x02be, 0x021f, 0x0145, 0x00ca, 0x00b8,
+ 0x014f, 0x0263, 0x0342, 0x0414, 0x04b6, 0x0479,
+ 0x03d4, 0x0314, 0x021e, 0x01b2, 0x01a9, 0x014c,
+ 0x0153, 0x0205, 0x02a3, 0x034f, 0x044e, 0x04eb,
+ 0x047b, 0x0387, 0x0308, 0x02cc, 0x02ae, 0x0338,
+ 0x037c, 0x02a0, 0x01de, 0x01db, 0x021c, 0x02b4,
+ 0x03a0, 0x048b, 0x053e, 0x0583, 0x053e, 0x0423,
+ 0x0264, 0x011b, 0x00b2, 0x00eb, 0x0152, 0x00f3,
+ 0x0024, 0xfffc, 0xfff6, 0xffd4, 0x0026, 0x0080,
+ 0x0084, 0x0035, 0xff7a, 0xfef5, 0xfee5, 0xfeee,
+ 0xff55, 0xffc1, 0xff76, 0xff15, 0xff45, 0xff7d,
+ 0xff07, 0xfe06, 0xfd42, 0xfce0, 0xfcd3, 0xfd7c,
+ 0xfe46, 0xfe80, 0xfe90, 0xfe88, 0xfe64, 0xfe60,
+ 0xfe42, 0xfe68, 0xff03, 0xff0e, 0xfe96, 0xfe93,
+ 0xfef6, 0xff47, 0xfeeb, 0xfddf, 0xfd5e, 0xfd70,
+ 0xfce7, 0xfc0f, 0xfbea, 0xfc89, 0xfd39, 0xfd4d,
+ 0xfd0b, 0xfce9, 0xfca9, 0xfc5a, 0xfc5e, 0xfc9d,
+ 0xfcca, 0xfce5, 0xfd2d, 0xfd73, 0xfd65, 0xfda8,
+ 0xfea0, 0xff6d, 0xff63, 0xfe9f, 0xfdcb, 0xfdbf,
+ 0xfe48, 0xfeb3, 0xff10, 0xff75, 0xffb7, 0xffa4,
+ 0xfede, 0xfdb7, 0xfd25, 0xfd7b, 0xfe70, 0xff79,
+ 0x001f, 0x008a, 0x00c5, 0x003e, 0xfee7, 0xfd8a,
+ 0xfca1, 0xfc2c, 0xfcb3, 0xfe86, 0x0089, 0x01a6,
+ 0x0206, 0x01df, 0x0106, 0xffb1, 0xfe9b, 0xfe73,
+ 0xfef6, 0xff6a, 0xffc2, 0xffdb, 0xff11, 0xfd94,
+ 0xfc67, 0xfc24, 0xfc96, 0xfd56, 0xfe50, 0xff48,
+ 0xff77, 0xfe6a, 0xfcf4, 0xfc80, 0xfd07, 0xfd6b,
+ 0xfdfe, 0xff7b, 0x00f6, 0x01ce, 0x0266, 0x0239,
+ 0x0082, 0xfdfb, 0xfc23, 0xfb85, 0xfbcb, 0xfd29,
+ 0xff8e, 0x01d7, 0x0360, 0x03f7, 0x0330, 0x0173,
+ 0xffc0, 0xff15, 0x0003, 0x014a, 0x0195, 0x016e,
+ 0x0143, 0x011f, 0x0150, 0x0173, 0x0174, 0x019c,
+ 0x010c, 0xffb1, 0xff28, 0x0000, 0x0123, 0x021a,
+ 0x0329, 0x0354, 0x01d8, 0x0078, 0x0069, 0x00e8,
+ 0x01d4, 0x02c5, 0x0328, 0x0401, 0x04d2, 0x0428,
+ 0x0318, 0x022d, 0x0099, 0xff24, 0xfe94, 0xff07,
+ 0x009c, 0x0249, 0x037a, 0x04a3, 0x052c, 0x04b2,
+ 0x03d7, 0x02ce, 0x0190, 0x005e, 0xff95, 0xff58,
+ 0xff9a, 0x0057, 0x00a2, 0x0006, 0xffde, 0xfff3,
+ 0xff75, 0xffa5, 0x0028, 0xffe5, 0xffea, 0xffe4,
+ 0xff2d, 0xfec9, 0xfe56, 0xfe0f, 0xfec3, 0xfe6f,
+ 0xfcc6, 0xfbc6, 0xfadc, 0xfa17, 0xfb3b, 0xfd74,
+ 0xff07, 0x0011, 0x00df, 0x00c1, 0xff61, 0xfd89,
+ 0xfb8c, 0xf9bb, 0xf990, 0xfab2, 0xfb99, 0xfcbe,
+ 0xfdfd, 0xfea6, 0xff8b, 0x0013, 0xff45, 0xfe48,
+ 0xfdb5, 0xfda0, 0xfe0f, 0xfdfe, 0xfdeb, 0xfe65,
+ 0xfdbe, 0xfc25, 0xfb69, 0xfbc1, 0xfcdc, 0xfd8b,
+ 0xfd47, 0xfd49, 0xfc68, 0xf9f4, 0xf8f5, 0xf9d3,
+ 0xfb13, 0xfd2b, 0xfebb, 0xfea5, 0xfe54, 0xfd48,
+ 0xfbaf, 0xfc17, 0xfdb2, 0xfe1d, 0xfe14, 0xfe8f,
+ 0xfe93, 0xfe34, 0xff03, 0xfff1, 0xff7b, 0x0030,
+ 0x028b, 0x0352, 0x02ec, 0x0256, 0x00cc, 0xffc4,
+ 0xff34, 0xfe81, 0xffac, 0x0138, 0x0144, 0x017d,
+ 0x00b1, 0xfec4, 0xfe73, 0xfda3, 0xfbab, 0xfc29,
+ 0xfd7a, 0xfd6a, 0xfedc, 0x01c3, 0x0262, 0x00da,
+ 0x00af, 0x01f1, 0x020c, 0x01eb, 0x02d3, 0x03be,
+ 0x057c, 0x0754, 0x0648, 0x03b2, 0x01a7, 0x0012,
+ 0x0040, 0x0173, 0x01a3, 0x0280, 0x0483, 0x04c7,
+ 0x02e3, 0x019a, 0x023f, 0x02ea, 0x02c8, 0x0365,
+ 0x039f, 0x0251, 0x01b1, 0x0151, 0xffc8, 0xff2c,
+ 0xff41, 0xfe5f, 0xfe63, 0xff31, 0xfec0, 0xfed3,
+ 0x00bd, 0x02b5, 0x03ca, 0x034d, 0x0136, 0xfff9,
+ 0x0042, 0x0014, 0xff97, 0x00a3, 0x031f, 0x04ff,
+ 0x054c, 0x0535, 0x050b, 0x0418, 0x0322, 0x026a,
+ 0x0170, 0x0127, 0x01ff, 0x0362, 0x0443, 0x02f6,
+ 0x00b8, 0x00c1, 0x02ce, 0x03fe, 0x02f9, 0x020d,
+ 0x034f, 0x03e0, 0x02a8, 0x028c, 0x035f, 0x04ef,
+ 0x071b, 0x06cf, 0x0629, 0x07da, 0x07af, 0x05b8,
+ 0x0490, 0x02a8, 0x023a, 0x0422, 0x035c, 0x00ee,
+ 0x0174, 0x03e5, 0x0527, 0x04db, 0x0504, 0x057c,
+ 0x051c, 0x06c2, 0x0a69, 0x0af2, 0x073e, 0x02bf,
+ 0x012b, 0x01e4, 0x00c9, 0xff8f, 0x0058, 0x000f,
+ 0x002f, 0x01ce, 0x01a8, 0x0285, 0x0521, 0x0431,
+ 0x0150, 0x0041, 0x00b5, 0x02cc, 0x052e, 0x063d,
+ 0x0698, 0x06b5, 0x06fc, 0x0661, 0x04f9, 0x05d8,
+ 0x0760, 0x0656, 0x0483, 0x02ea, 0x01d2, 0x019c,
+ 0x0051, 0xff77, 0x00b1, 0xff74, 0xfb48, 0xfa23,
+ 0xfc94, 0xfdf2, 0xfe57, 0x00e7, 0x02b4, 0x014f,
+ 0x0159, 0x029e, 0x0198, 0x0178, 0x029a, 0x0230,
+ 0x0282, 0x035c, 0x0231, 0x001a, 0xfd61, 0xfb33,
+ 0xfbc1, 0xfc43, 0xfb71, 0xfce9, 0xffae, 0xffe3,
+ 0x0043, 0x03ca, 0x0666, 0x069c, 0x0697, 0x0493,
+ 0x02e7, 0x04f5, 0x03ce, 0xfded, 0xfb10, 0xfadc,
+ 0xfaf6, 0xfc75, 0xfd57, 0xfe1f, 0xfee8, 0xfc08,
+ 0xf8c2, 0xf926, 0xf954, 0xf7b9, 0xf725, 0xf6b6,
+ 0xf3f9, 0xf277, 0xf666, 0xfb70, 0xfe08, 0xffba,
+ 0xfe8e, 0xfc66, 0xfe3c, 0x0054, 0x0165, 0x042c,
+ 0x04fd, 0x038a, 0x02e1, 0x01b2, 0x00ad, 0x0123,
+ 0x02d6, 0x0547, 0x0508, 0x033e, 0x03f5, 0x0510,
+ 0x05f6, 0x06cb, 0x05d0, 0x05ae, 0x04dd, 0x0124,
+ 0x0100, 0x0378, 0x03a9, 0x05b0, 0x0734, 0x02ce,
+ 0xfeb8, 0xfeea, 0xfe81, 0xfc67, 0xfc7c, 0xfcfd,
+ 0xf9c8, 0xf7e7, 0xfa15, 0xfa7e, 0xfa3e, 0xfa30,
+ 0xf773, 0xf7c1, 0xf93c, 0xf5d5, 0xf75b, 0xfd78,
+ 0xfcd0, 0xfc6e, 0x015e, 0x046d, 0x076d, 0x0adf,
+ 0x0832, 0x0237, 0xff55, 0xfdc3, 0xfb80, 0xfc95,
+ 0x00c5, 0x01eb, 0x0124, 0x0202, 0x02ea, 0x03a3,
+ 0x026f, 0x0022, 0x031c, 0x0689, 0x057e, 0x06da,
+ 0x07d5, 0x0525, 0x06da, 0x098f, 0x066a, 0x031e,
+ 0x018d, 0xfdcf, 0xf8bf, 0xf6a0, 0xf841, 0xf854,
+ 0xf70f, 0xf9be, 0xfca6, 0xfbda, 0xfa0a, 0xf8f5,
+ 0xf9e7, 0xfaca, 0xf960, 0xf991, 0xfb2f, 0xfc69,
+ 0xffd9, 0x0379, 0x0537, 0x05fe, 0x047d, 0x0149,
+ 0xfcc2, 0xf9e1, 0xfda0, 0x0057, 0xfeb2, 0x01ae,
+ 0x03e3, 0xff95, 0xfc6d, 0xf8cb, 0xf46f, 0xf678,
+ 0xf88e, 0xf514, 0xf2da, 0xf59a, 0xfa3e, 0xfb69,
+ 0xfa06, 0xfc66, 0x00d4, 0x0407, 0x071d, 0x080f,
+ 0x04d8, 0xfe1f, 0xf8a5, 0xf95f, 0xfa8b, 0xf96f,
+ 0xfb51, 0xfd20, 0xfeab, 0x02ce, 0x0301, 0x0270,
+ 0x0569, 0x0181, 0xfa85, 0xfd62, 0x0783, 0x14ce,
+ 0x1fab, 0x1e63, 0x12a6, 0x0205, 0xf0b4, 0xe68d,
+ 0xe715, 0xf30f, 0x070f, 0x14a4, 0x13d4, 0x0ad6,
+ 0xff01, 0xf280, 0xe973, 0xe73d, 0xe994, 0xeeb6,
+ 0xfc76, 0x0f81, 0x1956, 0x185a, 0x1032, 0xff54,
+ 0xefe2, 0xed70, 0xf5ed, 0x055c, 0x156d, 0x1d70,
+ 0x1bdc, 0x1368, 0x0c2e, 0x0b8e, 0x0828, 0x0068,
+ 0xfd77, 0xf90a, 0xef7d, 0xed13, 0xf10d, 0xf26d,
+ 0xf39f, 0xf4fd, 0xf25e, 0xee62, 0xed1a, 0xedaa,
+ 0xed5d, 0xebe0, 0xe9ab, 0xe6c7, 0xe775, 0xec60,
+ 0xedcb, 0xebef, 0xec4b, 0xecc3, 0xee18, 0xf1ea,
+ 0xf210, 0xed44, 0xe83b, 0xe5c7, 0xe8dc, 0xf1dc,
+ 0xfca1, 0x0149, 0xfc16, 0xf7b3, 0xf9fb, 0xfcdb,
+ 0x04b0, 0x1176, 0x1700, 0x1846, 0x1792, 0x0bcc,
+ 0xfbb8, 0xf178, 0xece2, 0xf11b, 0xfbea, 0x0504,
+ 0x076e, 0xfee6, 0xf252, 0xecc4, 0xecb9, 0xf2a3,
+ 0xfdc2, 0x017b, 0xfd43, 0xfdc4, 0x0345, 0x04f6,
+ 0x03ea, 0x06eb, 0x093b, 0x06bf, 0x07ee, 0x09e4,
+ 0x069b, 0x095a, 0x1238, 0x1905, 0x22a7, 0x28b3,
+ 0x23bd, 0x1e6e, 0x17d8, 0x0eda, 0x12a6, 0x1ec9,
+ 0x23de, 0x260c, 0x28f1, 0x27ae, 0x23fd, 0x2098,
+ 0x1aaa, 0x12fc, 0x1289, 0x1b67, 0x2147, 0x1ce8,
+ 0x12d4, 0x0841, 0x0220, 0x0131, 0x00ce, 0x0192,
+ 0x068d, 0x0f51, 0x19b5, 0x1e27, 0x178c, 0x0ec3,
+ 0x0c9f, 0x0f49, 0x14aa, 0x1b47, 0x1daf, 0x1a9d,
+ 0x167a, 0x1179, 0x0932, 0x01f3, 0x00ca, 0x0058,
+ 0xfc28, 0xfc45, 0x01b8, 0x0108, 0xfb0a, 0xf866,
+ 0xf89e, 0xf967, 0xf6c6, 0xf032, 0xee4c, 0xed42,
+ 0xe765, 0xe796, 0xea9e, 0xe5fa, 0xe17a, 0xdd8c,
+ 0xd779, 0xd80d, 0xda7a, 0xd8e1, 0xda80, 0xdc0a,
+ 0xd921, 0xd8f3, 0xde58, 0xe498, 0xe6ab, 0xe5be,
+ 0xe333, 0xde8f, 0xe0f9, 0xe985, 0xed6b, 0xf3dd,
+ 0xf85e, 0xeecc, 0xe883, 0xe694, 0xdcff, 0xde4d,
+ 0xe75d, 0xe47e, 0xe69a, 0xf58f, 0xff73, 0xfd1b,
+ 0xf204, 0xe6f0, 0xdbf1, 0xd0ea, 0xd53d, 0xdf38,
+ 0xdc99, 0xdd0b, 0xe3d4, 0xe5cf, 0xe9f3, 0xf009,
+ 0xf510, 0xf992, 0xf87c, 0xf97d, 0xfd0b, 0xfa5a,
+ 0xfb11, 0xfc66, 0xf884, 0xfe7b, 0x0919, 0x0f33,
+ 0x16d1, 0x17ed, 0x14b7, 0x1641, 0x153a, 0x16c8,
+ 0x1b7a, 0x1984, 0x1b34, 0x2081, 0x2009, 0x1b22,
+ 0x0b52, 0xfc52, 0xfc83, 0xf828, 0xf2c1, 0xfc19,
+ 0xffef, 0xfce3, 0x0438, 0x0c7d, 0x0d3f, 0x0bcb,
+ 0x0c48, 0x0acf, 0x0270, 0x0215, 0x0fcb, 0x1a55,
+ 0x2053, 0x21e4, 0x19bc, 0x13ba, 0x10e9, 0x0f14,
+ 0x17ac, 0x1d32, 0x1678, 0x1227, 0x103f, 0x0f2c,
+ 0x1240, 0x129b, 0x1340, 0x165d, 0x1528, 0x1337,
+ 0x0e72, 0x02a7, 0xfa88, 0xf91c, 0xf93c, 0xfb46,
+ 0xff1c, 0x0372, 0x0506, 0x0589, 0x0b18, 0x0d47,
+ 0x03ab, 0xf795, 0xf181, 0xeef4, 0xe8a0, 0xde99,
+ 0xd709, 0xcd61, 0xc463, 0xccbb, 0xe2ae, 0xf9b2,
+ 0x115e, 0x1ea4, 0x1576, 0x05e0, 0x0484, 0x075b,
+ 0xfd58, 0xf29c, 0xf125, 0xebd9, 0xe3e4, 0xe15c,
+ 0xdc47, 0xd3e8, 0xd189, 0xdb8b, 0xef18, 0xfe01,
+ 0x040b, 0x00dd, 0xefb0, 0xe06c, 0xdc82, 0xd911,
+ 0xdc3d, 0xe61c, 0xeae8, 0xf217, 0xfa9b, 0xfbb4,
+ 0xf8ec, 0xf043, 0xe774, 0xe5b7, 0xe48c, 0xea18,
+ 0xf394, 0xf36c, 0xf5af, 0xfbe1, 0xfbee, 0xffe7,
+ 0x07de, 0x11d0, 0x207b, 0x25b6, 0x23aa, 0x24b1,
+ 0x227b, 0x213e, 0x1dc1, 0x0ff1, 0x083d, 0x0c46,
+ 0x1525, 0x1dc1, 0x1d33, 0x2010, 0x26cc, 0x1cee,
+ 0x1737, 0x1f5e, 0x1a9c, 0x1333, 0x1594, 0x1433,
+ 0x114b, 0x1121, 0x134f, 0x1219, 0x08e8, 0x0a42,
+ 0x0e75, 0x0445, 0x07ac, 0x1403, 0x10f9, 0x148f,
+ 0x1912, 0x1109, 0x1482, 0x19a9, 0x1715, 0x2134,
+ 0x2bd6, 0x289e, 0x1d7e, 0x0f09, 0x0768, 0x051c,
+ 0x0b4b, 0x1f11, 0x2472, 0x1b72, 0x18eb, 0x0e59,
+ 0x06c2, 0x0de8, 0x0b13, 0x0bb0, 0x1671, 0x1479,
+ 0x1695, 0x1892, 0x0849, 0x072b, 0x14fe, 0x173a,
+ 0x1c37, 0x2269, 0x2392, 0x2e39, 0x35fb, 0x3208,
+ 0x2f62, 0x2df4, 0x2fab, 0x3541, 0x34ed, 0x31a0,
+ 0x2ea9, 0x25d6, 0x197b, 0x139b, 0x166a, 0x1872,
+ 0x1dd9, 0x31f5, 0x3f22, 0x3569, 0x2bf6, 0x290e,
+ 0x21cc, 0x1d03, 0x196a, 0x1226, 0x0d99, 0x0128,
+ 0xeb0a, 0xe994, 0xfdc2, 0x0d24, 0x1b75, 0x27ff,
+ 0x2361, 0x20b0, 0x298c, 0x28d7, 0x23cd, 0x216d,
+ 0x1b59, 0x1a9c, 0x1727, 0x0e11, 0x13cf, 0x162a,
+ 0x0edb, 0x1a46, 0x20a7, 0x1599, 0x191c, 0x18c4,
+ 0x08cc, 0x07d2, 0x0c33, 0x0839, 0x06f0, 0x0475,
+ 0x00b7, 0xfa03, 0xee18, 0xef88, 0xf842, 0xf44e,
+ 0xedb2, 0xea60, 0xe906, 0xee38, 0xf39b, 0xf317,
+ 0xe86f, 0xd678, 0xc8e4, 0xb4af, 0x9ae7, 0x962d,
+ 0x9b2e, 0x9c04, 0xa34a, 0xa369, 0xa1cf, 0xb455,
+ 0xc683, 0xd6e2, 0xeac8, 0xddef, 0xc8b6, 0xd8c0,
+ 0xdec6, 0xcb3d, 0xc6b1, 0xb533, 0x9673, 0xa082,
+ 0xae7b, 0xa110, 0xa838, 0xae94, 0x9bba, 0xa85f,
+ 0xc13a, 0xb629, 0xb7a5, 0xce57, 0xcf88, 0xd227,
+ 0xdf1f, 0xd43a, 0xc208, 0xc7af, 0xd0b7, 0xc57c,
+ 0xbd2a, 0xc9c9, 0xd0a9, 0xd214, 0xe1cc, 0xe248,
+ 0xd2a5, 0xd7ed, 0xdce0, 0xd297, 0xd11f, 0xd058,
+ 0xd16b, 0xdd6b, 0xdd5d, 0xde57, 0xf440, 0xfc79,
+ 0xeda6, 0xe733, 0xf03a, 0xf417, 0xe977, 0xeadb,
+ 0xf4a7, 0xdfc5, 0xd19b, 0xe643, 0xdf29, 0xcd07,
+ 0xe0fc, 0xdf0a, 0xc6fc, 0xd718, 0xe36c, 0xd292,
+ 0xd362, 0xd8c0, 0xd13e, 0xd0e9, 0xd2f7, 0xdaad,
+ 0xeae6, 0xeec2, 0xf1e4, 0xfe8b, 0xfd44, 0xf3e4,
+ 0xf5ca, 0xfacb, 0xf929, 0xf2bf, 0xf266, 0xf8ca,
+ 0xf700, 0xf449, 0xf8d3, 0xf5f3, 0xf3da, 0xfb5f,
+ 0xf8e6, 0xf0da, 0xf4eb, 0xfd12, 0xfdd9, 0xf5cc,
+ 0xf167, 0xf523, 0xf029, 0xf0b3, 0xfe15, 0xf153,
+ 0xe19f, 0xf534, 0xf7de, 0xe8ef, 0xfad9, 0x031d,
+ 0xf4a0, 0x0195, 0x09f0, 0xf994, 0xffa7, 0x0a1e,
+ 0xfc89, 0xfa9d, 0x0a1e, 0x0c74, 0x00f4, 0xfb3a,
+ 0x008b, 0x0497, 0x0573, 0x09f9, 0x1065, 0x1bc0,
+ 0x21ae, 0x1523, 0x0eef, 0x111d, 0x0555, 0x028f,
+ 0x07f4, 0xfa78, 0xf86c, 0x032d, 0xf50d, 0xebfe,
+ 0xfbfb, 0x02b5, 0x028d, 0x0a7d, 0x1082, 0x0ede,
+ 0x0762, 0x097c, 0x14ef, 0x11dd, 0x0fe4, 0x1e94,
+ 0x2336, 0x1cc7, 0x151f, 0x0934, 0x0b25, 0x13f7,
+ 0x1104, 0x1897, 0x242d, 0x1d0c, 0x182b, 0x1640,
+ 0x0e65, 0x11de, 0x1347, 0x0e42, 0x1c01, 0x262b,
+ 0x1fd0, 0x2b20, 0x3987, 0x2b5a, 0x1a90, 0x1cda,
+ 0x2025, 0x194c, 0x184e, 0x270d, 0x3121, 0x2fd1,
+ 0x344f, 0x32d9, 0x243a, 0x2527, 0x2fce, 0x2a80,
+ 0x26a6, 0x2b03, 0x21e2, 0x159a, 0x1817, 0x1ffe,
+ 0x2926, 0x30d1, 0x3040, 0x3713, 0x4667, 0x44d5,
+ 0x40d4, 0x5066, 0x5815, 0x518b, 0x5233, 0x4b97,
+ 0x3baa, 0x3931, 0x3a6d, 0x3a41, 0x4174, 0x3d9a,
+ 0x3106, 0x35f2, 0x416c, 0x4388, 0x46ad, 0x4bcb,
+ 0x476e, 0x3c86, 0x3df4, 0x4b58, 0x4e20, 0x4a59,
+ 0x4834, 0x39a7, 0x32a2, 0x4335, 0x465d, 0x3c25,
+ 0x40e1, 0x401e, 0x3341, 0x2dc0, 0x2658, 0x2068,
+ 0x2c23, 0x3ce5, 0x48f4, 0x4dc5, 0x463e, 0x4083,
+ 0x41c3, 0x3b64, 0x31db, 0x2e9c, 0x2baa, 0x2953,
+ 0x2c6b, 0x2faf, 0x2e7e, 0x2b76, 0x2724, 0x2508,
+ 0x2d01, 0x32d4, 0x2a10, 0x27e9, 0x3064, 0x2cd0,
+ 0x2a5d, 0x3396, 0x2ef1, 0x2031, 0x1aff, 0x1a6e,
+ 0x1f6f, 0x2689, 0x22e6, 0x1d9c, 0x1bc8, 0x171e,
+ 0x14e9, 0x135a, 0x1060, 0x12ad, 0x131b, 0x10f9,
+ 0x17ba, 0x20bc, 0x225b, 0x1e3d, 0x1851, 0x138b,
+ 0x0b18, 0x029e, 0x044c, 0x06db, 0x0aba, 0x14b8,
+ 0x0e4e, 0x01c3, 0x0cde, 0x140c, 0x08ea, 0x086b,
+ 0x0a57, 0x03f5, 0x065f, 0x0932, 0x080a, 0x10a9,
+ 0x1383, 0x0998, 0x0abf, 0x1322, 0x0f96, 0x0b3e,
+ 0x0e44, 0x0af1, 0x05a0, 0x0ac8, 0x104a, 0x14a2,
+ 0x1ac0, 0x0f9d, 0xfdba, 0x0125, 0x076e, 0x0816,
+ 0x13a6, 0x17cf, 0x142b, 0x1e4c, 0x1be7, 0x07bb,
+ 0x09bd, 0x1765, 0x1079, 0x0132, 0xfc3e, 0xfe46,
+ 0xfdc7, 0xfe14, 0x04a9, 0x077c, 0x0a9a, 0x13f6,
+ 0x0d37, 0xff27, 0x078a, 0x11ef, 0x0ba1, 0x009d,
+ 0xf34f, 0xf0d8, 0x00a9, 0x0dd8, 0x15d2, 0x18fb,
+ 0x10d7, 0x130c, 0x1dc9, 0x165c, 0x0d44, 0x0dd0,
+ 0x043f, 0xf84a, 0xf72b, 0xf9e4, 0xfc78, 0xf762,
+ 0xed76, 0xf23f, 0xfdf9, 0xfcec, 0xfb07, 0x01eb,
+ 0xff89, 0xf403, 0xf708, 0xfee0, 0xf50e, 0xef00,
+ 0xf8a2, 0xf832, 0xf3d5, 0xfc6e, 0xfe11, 0xf677,
+ 0xf689, 0xf446, 0xeab7, 0xe82d, 0xe958, 0xe155,
+ 0xd91e, 0xdd16, 0xddce, 0xd5ab, 0xdba0, 0xe51b,
+ 0xdff7, 0xe5da, 0xec0f, 0xd303, 0xc40f, 0xd7ee,
+ 0xe3dd, 0xdf01, 0xe105, 0xec18, 0xf26b, 0xeab3,
+ 0xe925, 0xeef6, 0xdbcf, 0xccd0, 0xdbea, 0xd3ea,
+ 0xbe73, 0xccca, 0xd340, 0xbcf2, 0xb899, 0xc32a,
+ 0xc544, 0xc76d, 0xd4e6, 0xea51, 0xeb6c, 0xd570,
+ 0xcf6f, 0xd852, 0xdae5, 0xdbaa, 0xd76f, 0xd6d1,
+ 0xdc20, 0xcf2b, 0xc9d9, 0xdb93, 0xd7ec, 0xd555,
+ 0xebcc, 0xe04a, 0xc46a, 0xd1d4, 0xde4f, 0xcf72,
+ 0xc500, 0xc79c, 0xd5f7, 0xdb91, 0xcbf3, 0xcd73,
+ 0xdc5d, 0xd7d3, 0xd690, 0xd9a7, 0xcdea, 0xce20,
+ 0xd985, 0xd8fa, 0xd9fb, 0xdc08, 0xd94e, 0xdc69,
+ 0xd8b9, 0xd011, 0xd670, 0xdcde, 0xdb27, 0xdd5c,
+ 0xe1d0, 0xeba2, 0xf281, 0xea24, 0xee32, 0x0274,
+ 0x034d, 0xf681, 0xee39, 0xe803, 0xeb82, 0xeea6,
+ 0xe505, 0xe383, 0xe87b, 0xe615, 0xe926, 0xe4df,
+ 0xceb8, 0xcb38, 0xd95f, 0xd705, 0xd6b8, 0xea86,
+ 0xf547, 0xed54, 0xe7e9, 0xeb1f, 0xed5a, 0xea2c,
+ 0xe4b1, 0xdc39, 0xd058, 0xcbcd, 0xce6a, 0xcc31,
+ 0xcda5, 0xd5a6, 0xd1e7, 0xcf98, 0xe210, 0xec2e,
+ 0xdd67, 0xd083, 0xd26d, 0xdba0, 0xe077, 0xdbf7,
+ 0xdebe, 0xe5d5, 0xe074, 0xe6a7, 0xf773, 0xedf4,
+ 0xe76c, 0xfa5d, 0xf4c3, 0xdc61, 0xddcc, 0xe54d,
+ 0xe384, 0xe376, 0xdde1, 0xdc5f, 0xe4bc, 0xe03e,
+ 0xd42f, 0xd3a1, 0xdac2, 0xddc5, 0xcde0, 0xb932,
+ 0xbdc6, 0xc733, 0xc5b6, 0xd3c7, 0xe4b1, 0xde4e,
+ 0xd52e, 0xd5d8, 0xd5ef, 0xd439, 0xd3ec, 0xd7d9,
+ 0xd890, 0xd20a, 0xd485, 0xdbd5, 0xd79e, 0xd178,
+ 0xcf5c, 0xd39f, 0xdd24, 0xd479, 0xcca1, 0xe5b1,
+ 0xef0d, 0xd871, 0xdc32, 0xec82, 0xe590, 0xe8bc,
+ 0xf98e, 0xfd1e, 0xff7f, 0x0917, 0x1117, 0x10ee,
+ 0x06bd, 0x0449, 0x087e, 0xfcdd, 0xf689, 0x04c3,
+ 0x046a, 0xf477, 0xf662, 0x04fd, 0x06d6, 0xfa4d,
+ 0xf42e, 0xfb7c, 0xfcaf, 0xf9f8, 0x0358, 0x07cd,
+ 0xffac, 0xfb9c, 0xf8fc, 0xf9be, 0x03ec, 0x0024,
+ 0xede9, 0xeb5d, 0xf03e, 0xe984, 0xeac3, 0xfc82,
+ 0x01b5, 0xf5ca, 0xfdfa, 0x1593, 0x0b2d, 0xf2f0,
+ 0x00f5, 0x1148, 0x031b, 0x00ce, 0x0d37, 0x0cb8,
+ 0x10f5, 0x1792, 0x0f3d, 0x0dc4, 0x1020, 0x05e3,
+ 0x09c8, 0x1a47, 0x18a2, 0x10b5, 0x0be7, 0x0271,
+ 0x06d4, 0x1850, 0x1d0d, 0x1b6d, 0x1a88, 0x0b1f,
+ 0xf4b2, 0xebe6, 0xf082, 0xf5b8, 0xf023, 0xe5f4,
+ 0xeb6e, 0xfb72, 0xfe4b, 0xfc20, 0x0817, 0x0bb2,
+ 0xf476, 0xe640, 0xf1f3, 0xf3c5, 0xea73, 0xf247,
+ 0xfaa7, 0xf458, 0xf49a, 0xfb9c, 0xfe2a, 0xffa2,
+ 0xf84e, 0xf0c7, 0xfe6c, 0x0582, 0xf263, 0xed2c,
+ 0xfed9, 0x07a9, 0x0937, 0x0c5c, 0x0aa6, 0x07f1,
+ 0x06c7, 0x0d07, 0x1c84, 0x192d, 0x0462, 0x01a1,
+ 0x02e0, 0xfa25, 0x0491, 0x12ea, 0x0caa, 0x1151,
+ 0x1da4, 0x0da9, 0xf7ba, 0xfa34, 0x0615, 0x0a81,
+ 0x0af6, 0x1098, 0x11f8, 0x02ca, 0xfb54, 0x06c0,
+ 0x06b9, 0xfc7d, 0xfe88, 0x0432, 0x0704, 0x07b5,
+ 0x02e3, 0x0334, 0x035b, 0xf7c8, 0xf8fd, 0x0aa9,
+ 0x0d70, 0x048f, 0x026e, 0x0445, 0x087b, 0x0b9d,
+ 0x07ed, 0x009a, 0xf733, 0xee44, 0xe6c9, 0xe0fc,
+ 0xeafb, 0xff1b, 0x03e1, 0x01e1, 0x0145, 0xf4e4,
+ 0xf003, 0xfd23, 0x0362, 0x09f9, 0x1477, 0x09a5,
+ 0x0186, 0x0d74, 0x02b3, 0xedf6, 0xfbec, 0x0b22,
+ 0x0599, 0x0909, 0x08e8, 0xfd0d, 0x045c, 0x0c4e,
+ 0x000d, 0x02c3, 0x1147, 0x101d, 0x119a, 0x1336,
+ 0x05ee, 0x07ba, 0x15c6, 0x0e00, 0x029f, 0x0447,
+ 0x049f, 0x0b0e, 0x1678, 0x12f9, 0x0920, 0x076c,
+ 0x0897, 0x085f, 0x0c36, 0x179f, 0x1851, 0x0497,
+ 0xfd3c, 0x0bb5, 0x1028, 0x08c8, 0x035c, 0x012f,
+ 0x07e1, 0x0963, 0xfc49, 0xfacc, 0x0585, 0x099d,
+ 0x0c09, 0x09fe, 0x0662, 0x0eb8, 0x10d3, 0x083d,
+ 0x0be6, 0x13d0, 0x12e8, 0x0d1b, 0x0628, 0x090e,
+ 0x0b00, 0xffc4, 0x050a, 0x14c3, 0x0de7, 0x09f8,
+ 0x0ed3, 0x0079, 0xfa00, 0x06dd, 0x0679, 0x021d,
+ 0x0593, 0x02ac, 0x049f, 0x1093, 0x138b, 0x0ad0,
+ 0x03fd, 0x0bc2, 0x186b, 0x16df, 0x131b, 0x1241,
+ 0x0736, 0x06d1, 0x16c6, 0x149f, 0x06ee, 0x0788,
+ 0x0a59, 0x07b7, 0x06f3, 0x05c0, 0x04f3, 0x07ea,
+ 0x0a15, 0x061f, 0x0203, 0x0a09, 0x16a5, 0x1853,
+ 0x1125, 0x06db, 0x0692, 0x11a7, 0x0720, 0xf608,
+ 0x0a5c, 0x17a0, 0x0504, 0x10bd, 0x292b, 0x1965,
+ 0x0c3b, 0x126f, 0x0ba0, 0x078a, 0x07ad, 0xfbb1,
+ 0xfa7e, 0x0256, 0x009d, 0x00cf, 0xfe7f, 0xf8f5,
+ 0x01da, 0x05b9, 0xfc18, 0x02cd, 0x129f, 0x1550,
+ 0x1371, 0x0fbc, 0x08b5, 0x05dc, 0x068d, 0x09e9,
+ 0x0bec, 0x0492, 0xfe92, 0x05f7, 0x12e8, 0x1785,
+ 0x0f9f, 0x0c3b, 0x1445, 0x0f75, 0x045e, 0x0dba,
+ 0x1303, 0x0593, 0x039e, 0x0817, 0x047d, 0x0cf2,
+ 0x158f, 0x0693, 0xfd78, 0x0bad, 0x136a, 0x0d1f,
+ 0x0a6f, 0x0844, 0x01d1, 0x00b8, 0x0143, 0xfd7a,
+ 0x0146, 0x0b7e, 0x0f0e, 0x0fec, 0x0e11, 0x04fd,
+ 0x02a6, 0x0bac, 0x12d2, 0x12bb, 0x0ed8, 0x102b,
+ 0x14e9, 0x0fb6, 0x0a45, 0x0ce3, 0x0ad2, 0x0a36,
+ 0x0d70, 0x0b3c, 0x12be, 0x1c87, 0x170d, 0x1a8f,
+ 0x1e63, 0x0dcd, 0x0cd0, 0x136e, 0x01ce, 0xffe7,
+ 0x102f, 0x097e, 0x04f1, 0x13d6, 0x1a5e, 0x14bd,
+ 0x0b65, 0x0a31, 0x13ea, 0x1364, 0x13e5, 0x231b,
+ 0x249f, 0x1d70, 0x2193, 0x1f7f, 0x1a84, 0x1f3c,
+ 0x2068, 0x18ff, 0x07b7, 0xf7d6, 0xfdc6, 0x0537,
+ 0x01da, 0x07a4, 0x09e8, 0x02c7, 0x08fe, 0x0fe1,
+ 0x0838, 0x028b, 0x0763, 0x0f36, 0x0eac, 0x0bc3,
+ 0x0ef4, 0x050a, 0xfb32, 0x0cee, 0x178e, 0x15d8,
+ 0x255d, 0x22f9, 0x10b7, 0x1ded, 0x2661, 0x1798,
+ 0x1afe, 0x1f42, 0x1789, 0x1ade, 0x1581, 0x08cb,
+ 0x1306, 0x202d, 0x1f5e, 0x1dae, 0x196f, 0x1348,
+ 0x105d, 0x0e3b, 0x0fa3, 0x0f33, 0x048c, 0xfca3,
+ 0x044c, 0x0bdd, 0x0335, 0x0094, 0x0d3d, 0x06f3,
+ 0xf749, 0xfa56, 0xf11c, 0xe39b, 0xf753, 0x02eb,
+ 0xfab4, 0x0901, 0x15f6, 0x11d5, 0x1412, 0x0c11,
+ 0x00eb, 0x0760, 0x012f, 0xf4a0, 0xfce5, 0x0127,
+ 0xfe4e, 0x05bb, 0x0b02, 0x0cb4, 0x0a32, 0xfb6a,
+ 0xf596, 0x020a, 0x0c3a, 0x0d83, 0x0841, 0xffd6,
+ 0xfd86, 0x009a, 0x0208, 0x01e1, 0x0774, 0x1273,
+ 0x126b, 0x0767, 0x01bf, 0x007b, 0x062f, 0x108b,
+ 0x0730, 0xf93c, 0xfd84, 0xf3a8, 0xe106, 0xed47,
+ 0xf9d7, 0xf1f7, 0xf5f1, 0xfbad, 0xf899, 0x065a,
+ 0x1146, 0x00d1, 0xf058, 0xe93c, 0xe1e4, 0xe84d,
+ 0xf560, 0xefe7, 0xeaa2, 0xf953, 0xfb37, 0xe9cb,
+ 0xed19, 0xfa2e, 0xf65e, 0xfc9a, 0x09ce, 0x0050,
+ 0xf665, 0xf7e3, 0xf5df, 0xf949, 0xfa12, 0xee5f,
+ 0xebec, 0xf09d, 0xf4fa, 0x009e, 0x0066, 0xf54d,
+ 0xf980, 0xff9e, 0xfe41, 0xffbc, 0xf97a, 0xf3a8,
+ 0xfbec, 0xfa1d, 0xed71, 0xee5a, 0xf0f5, 0xea78,
+ 0xe9b2, 0xe7f7, 0xda7c, 0xd4e7, 0xdcaa, 0xdc76,
+ 0xd9a0, 0xe51e, 0xeecf, 0xeb35, 0xea3e, 0xee74,
+ 0xed0e, 0xe92a, 0xea2d, 0xec13, 0xe777, 0xe27b,
+ 0xe89c, 0xf52d, 0xfe79, 0x03dc, 0x053b, 0x054c,
+ 0x07f1, 0x07c6, 0x01e5, 0xfb59, 0xf632, 0xf38c,
+ 0xf084, 0xe6fb, 0xe36e, 0xf186, 0xfa2c, 0xf10b,
+ 0xed70, 0xefb8, 0xe9c6, 0xe947, 0xf0b9, 0xf37a,
+ 0xf498, 0xf104, 0xea67, 0xebf8, 0xe85e, 0xe035,
+ 0xe668, 0xe9e7, 0xe2c2, 0xe36b, 0xe589, 0xe678,
+ 0xe9ed, 0xe2cf, 0xdd91, 0xe392, 0xded5, 0xdac3,
+ 0xe68e, 0xe727, 0xdd72, 0xe44e, 0xefba, 0xed43,
+ 0xeb06, 0xf48e, 0xfbea, 0xf8c2, 0xf6a3, 0xf5da,
+ 0xecaa, 0xe34e, 0xe220, 0xe194, 0xe0b1, 0xe578,
+ 0xea73, 0xeb53, 0xf0b5, 0xf67a, 0xee97, 0xe650,
+ 0xed62, 0xf25e, 0xe7ca, 0xdafb, 0xd971, 0xe161,
+ 0xe99f, 0xedec, 0xe85b, 0xdc25, 0xe28e, 0xf035,
+ 0xe043, 0xd1db, 0xe659, 0xf43c, 0xe7d3, 0xddd4,
+ 0xdd97, 0xdce7, 0xdc1d, 0xe6c8, 0xf33a, 0xe582,
+ 0xd48f, 0xdec1, 0xe6d4, 0xe37e, 0xe5af, 0xe142,
+ 0xdd00, 0xe4ee, 0xe44b, 0xdbb4, 0xd8ca, 0xd4b6,
+ 0xd102, 0xd601, 0xe06f, 0xe3a3, 0xda96, 0xd230,
+ 0xcb0b, 0xc2cd, 0xc947, 0xd4f3, 0xd567, 0xd5ab,
+ 0xd3f0, 0xd0c6, 0xd735, 0xd9c1, 0xdab9, 0xe4ce,
+ 0xe5a2, 0xe267, 0xe579, 0xdbef, 0xcfcf, 0xd0c9,
+ 0xd2e4, 0xda32, 0xe21e, 0xda1e, 0xd62f, 0xddd7,
+ 0xda33, 0xd60a, 0xddb8, 0xd9ef, 0xd0b8, 0xd9c8,
+ 0xddbb, 0xd385, 0xd8da, 0xe09e, 0xdb95, 0xe1f9,
+ 0xe65f, 0xddbd, 0xe4fc, 0xe984, 0xd8fb, 0xd382,
+ 0xd530, 0xcf89, 0xd168, 0xd626, 0xda0a, 0xdcc0,
+ 0xd564, 0xd4ab, 0xd901, 0xd037, 0xd21c, 0xdec1,
+ 0xd72c, 0xc935, 0xc7a1, 0xcb35, 0xcd28, 0xca41,
+ 0xce1a, 0xdb40, 0xe087, 0xe199, 0xe21c, 0xdcaa,
+ 0xddce, 0xe325, 0xe0e9, 0xe0fc, 0xe614, 0xea15,
+ 0xea79, 0xe4f7, 0xdf8c, 0xdb45, 0xda0d, 0xe197,
+ 0xe30e, 0xe1e5, 0xee96, 0xf03b, 0xe5ce, 0xedfd,
+ 0xf270, 0xdfbe, 0xd3f3, 0xdb9c, 0xe940, 0xeeee,
+ 0xe887, 0xdfac, 0xd834, 0xd7ae, 0xe134, 0xe3ab,
+ 0xe120, 0xe6d6, 0xe8f5, 0xe73b, 0xe985, 0xe846,
+ 0xe6f3, 0xe73f, 0xe26c, 0xdf1f, 0xe155, 0xe776,
+ 0xea56, 0xe048, 0xdbdb, 0xe383, 0xdc0b, 0xd0ce,
+ 0xd8e4, 0xe102, 0xe410, 0xeb83, 0xed29, 0xeb44,
+ 0xeab8, 0xe516, 0xe5ee, 0xf0c5, 0xf414, 0xf29d,
+ 0xf1ca, 0xe9f2, 0xe8de, 0xf221, 0xedc7, 0xe9b3,
+ 0xf982, 0xfeb3, 0xf42f, 0xf08c, 0xe7e3, 0xe06b,
+ 0xeb59, 0xefe2, 0xeb9c, 0xee8a, 0xeca7, 0xef5c,
+ 0xfab6, 0xf42f, 0xebc3, 0xf3f1, 0xf313, 0xe9eb,
+ 0xea2d, 0xeae1, 0xe6a6, 0xe570, 0xedd8, 0xf898,
+ 0xf9ea, 0xfc10, 0x02d4, 0x0222, 0xffdb, 0xfc13,
+ 0xf2b8, 0xf426, 0xfaa3, 0xf5be, 0xf1bb, 0xf2e4,
+ 0xf248, 0xf234, 0xf276, 0xf7f0, 0x0075, 0x008d,
+ 0x049d, 0x0e4b, 0x052a, 0xf594, 0xfc37, 0x0b3a,
+ 0x0c69, 0x0793, 0x093d, 0x0ace, 0x077f, 0x097a,
+ 0x0fcb, 0x11e2, 0x1115, 0x095d, 0xfef7, 0x01b6,
+ 0x0595, 0xfd57, 0xf97d, 0xfd05, 0xff87, 0x05d5,
+ 0x0ba5, 0x0eec, 0x1623, 0x1503, 0x0c3e, 0x107a,
+ 0x15a9, 0x0e06, 0x0ba5, 0x0d07, 0x062a, 0x0334,
+ 0x0589, 0x082f, 0x1200, 0x174a, 0x10d7, 0x112e,
+ 0x171c, 0x15f0, 0x126c, 0x0c14, 0x0197, 0xfc17,
+ 0xfd67, 0x02e4, 0x0804, 0x0671, 0x03f0, 0x05dd,
+ 0x07b5, 0x09bf, 0x0bca, 0x0ad8, 0x0b48, 0x0db6,
+ 0x0b4c, 0x06f9, 0x09b3, 0x0d8d, 0x0874, 0x030c,
+ 0x03d6, 0x0434, 0x0a78, 0x1848, 0x1b82, 0x153b,
+ 0x12ef, 0x12d2, 0x162b, 0x1a8b, 0x12f9, 0x0909,
+ 0x0e3e, 0x16bf, 0x12d4, 0x0c9e, 0x0f55, 0x13af,
+ 0x15b9, 0x1671, 0x0e9a, 0x0547, 0x073d, 0x09df,
+ 0x097a, 0x0bf6, 0x0840, 0x0360, 0x0468, 0xfec1,
+ 0xff1a, 0x0f07, 0x0f87, 0x02c5, 0x0589, 0x06dc,
+ 0xfaac, 0xfbce, 0x0ae3, 0x1094, 0x0f58, 0x1091,
+ 0x0db7, 0x067c, 0x0159, 0xfe23, 0x01ed, 0x0de9,
+ 0x1306, 0x0fb8, 0x0f5d, 0x0d3c, 0x07d6, 0x0afe,
+ 0x139c, 0x16ed, 0x186f, 0x18ba, 0x0e63, 0x03a1,
+ 0x0cc8, 0x1b38, 0x164c, 0x0b07, 0x0d8e, 0x1734,
+ 0x19dd, 0x16ae, 0x18e4, 0x1d27, 0x1ce2, 0x2071,
+ 0x201f, 0x15cc, 0x15c8, 0x17f0, 0x0d61, 0x0a07,
+ 0x090e, 0x01ce, 0x07a8, 0x0d5c, 0x0b3e, 0x1365,
+ 0x11bb, 0x0727, 0x0fc5, 0x1317, 0x0adf, 0x102c,
+ 0x0d96, 0x00b6, 0x03fd, 0x0621, 0x01e8, 0x0ae1,
+ 0x0df1, 0xff70, 0xfb77, 0x087f, 0x1227, 0x153e,
+ 0x160b, 0x1067, 0x0d34, 0x116c, 0x0db2, 0x09c2,
+ 0x1339, 0x1643, 0x0d12, 0x04cb, 0x0085, 0x0891,
+ 0x1101, 0x076e, 0x0310, 0x08e8, 0x0737, 0x0f06,
+ 0x1da7, 0x1bde, 0x1698, 0x1372, 0x0fff, 0x19c7,
+ 0x1fed, 0x1205, 0x0800, 0x0884, 0x048b, 0xff16,
+ 0xfdeb, 0xfd98, 0xfc7c, 0xfb2a, 0xf963, 0xfa60,
+ 0x01b9, 0x0672, 0x0249, 0x00ec, 0x0535, 0x06a3,
+ 0x07ed, 0x0d0a, 0x1209, 0x11c1, 0x0df7, 0x0fa3,
+ 0x141a, 0x1509, 0x1898, 0x1bfa, 0x1a7d, 0x1cb8,
+ 0x20ed, 0x20f5, 0x1eb6, 0x19e1, 0x175f, 0x199f,
+ 0x19d4, 0x190e, 0x194f, 0x19b6, 0x1872, 0x10a1,
+ 0x0cb6, 0x10e9, 0x0d62, 0x092d, 0x0a1d, 0x042a,
+ 0x04c8, 0x0a6b, 0x011e, 0xfe0d, 0x08b1, 0x0be8,
+ 0x0f03, 0x1092, 0x06ca, 0x0321, 0x051e, 0xff9a,
+ 0xfa92, 0xfbc5, 0x0088, 0x0047, 0xf9eb, 0xfe28,
+ 0x0746, 0x06f4, 0x09fc, 0x0fac, 0x0c07, 0x0704,
+ 0x0587, 0x06d1, 0x0b5a, 0x105e, 0x1583, 0x13cd,
+ 0x0e20, 0x1532, 0x1e22, 0x1c39, 0x19c3, 0x12ba,
+ 0x0a33, 0x1209, 0x1d6f, 0x1b43, 0x1374, 0x0fa5,
+ 0x128d, 0x14a4, 0x0ece, 0x0908, 0x0792, 0x041c,
+ 0xfcdf, 0xfba8, 0x047e, 0x050d, 0xfdac, 0x0482,
+ 0x0c24, 0x0830, 0x0abd, 0x0e03, 0x0bbb, 0x0ff3,
+ 0x11fa, 0x106d, 0x12aa, 0x0f2b, 0x0a98, 0x0676,
+ 0xfa99, 0xf9e0, 0x06bc, 0x0ae5, 0x07a0, 0x006f,
+ 0xf97e, 0xffd2, 0x0a37, 0x10c2, 0x1609, 0x10ef,
+ 0x0910, 0x092d, 0x05eb, 0x0398, 0x0a02, 0x0b9b,
+ 0x073a, 0x0561, 0x0244, 0xfe71, 0x027c, 0x0b02,
+ 0x0c6f, 0x0c0f, 0x1189, 0x10e2, 0x0b1e, 0x0a00,
+ 0x029b, 0xfc0b, 0x03c4, 0x0265, 0xf793, 0xfffc,
+ 0x0c73, 0x0516, 0xf8c7, 0xf6dd, 0xfe81, 0x0619,
+ 0x02de, 0xfe38, 0x03bf, 0x0769, 0x03d4, 0x0582,
+ 0x0b4c, 0x0e77, 0x138f, 0x15bf, 0x0e07, 0x0545,
+ 0xff8f, 0xfaa5, 0xf888, 0xf844, 0xfde2, 0x0786,
+ 0x07c2, 0x08da, 0x148f, 0x16e7, 0x0fe9, 0x0f4f,
+ 0x0eee, 0x09d9, 0x02ef, 0x0004, 0x059d, 0x05aa,
+ 0x0122, 0x0685, 0x04a6, 0xfaa9, 0x0068, 0x0711,
+ 0x021f, 0x00f5, 0xfeaa, 0xf845, 0xfbc2, 0x0622,
+ 0x0be4, 0x0ac3, 0x0a38, 0x1041, 0x13e7, 0x1077,
+ 0x0c05, 0x0962, 0x0afe, 0x0c02, 0x084d, 0x0746,
+ 0x04cb, 0xff36, 0x01bf, 0x0545, 0x0485, 0x058a,
+ 0x010b, 0xfca6, 0x01e4, 0x057d, 0x09c5, 0x0e84,
+ 0x0565, 0xfd52, 0xfee0, 0xfbb5, 0x0065, 0x0d39,
+ 0x077d, 0xfbf4, 0xfd7c, 0xfb93, 0xf925, 0x03c6,
+ 0x079b, 0xfcb1, 0xf6f6, 0xf5c7, 0xf4f9, 0xffd7,
+ 0x0770, 0xfbb4, 0xf2ff, 0xf49e, 0xf27f, 0xf58e,
+ 0xfdf7, 0xfb1b, 0xf413, 0xf311, 0xf352, 0xf511,
+ 0xf83b, 0xf9ea, 0xfb27, 0xf9ae, 0xf68e, 0xfa1f,
+ 0x0320, 0x06e8, 0x02ca, 0xfd26, 0xf9a1, 0xf86b,
+ 0xfa2a, 0xfc00, 0xfa05, 0xf559, 0xf10f, 0xeef1,
+ 0xee5f, 0xee7c, 0xf0cc, 0xf4cb, 0xf818, 0xf9c7,
+ 0xfc36, 0x021a, 0x0260, 0xf9a7, 0xf906, 0xfdbd,
+ 0xf91f, 0xf79d, 0xfa70, 0xf916, 0x00f4, 0x0655,
+ 0xf911, 0xf302, 0xf6a0, 0xf1b5, 0xf0e6, 0xf4f8,
+ 0xf55a, 0xfb12, 0xfe31, 0xf72b, 0xf285, 0xf320,
+ 0xf7e5, 0xfd54, 0xfbf6, 0xfadd, 0xfb61, 0xf7ba,
+ 0xf8b9, 0xfe7d, 0x011a, 0x0201, 0xfec6, 0xf900,
+ 0xf79e, 0xf9b4, 0xfec4, 0xffeb, 0xf837, 0xf561,
+ 0xf775, 0xf44a, 0xf486, 0xf842, 0xf6e5, 0xf4be,
+ 0xf0a5, 0xeadd, 0xec9f, 0xf29d, 0xf864, 0xff42,
+ 0x0276, 0x03f1, 0x06f3, 0x042a, 0xfec2, 0x018e,
+ 0x0668, 0x0237, 0xfbf9, 0xff07, 0x03f2, 0x01d3,
+ 0x0035, 0xffc9, 0xfaf4, 0xfaca, 0x00bd, 0x00d5,
+ 0xfcc8, 0xf993, 0xf578, 0xf497, 0xf611, 0xf3b1,
+ 0xf1af, 0xf337, 0xf492, 0xf52a, 0xf60b, 0xf856,
+ 0xfa67, 0xfa56, 0xfce1, 0xffe6, 0xff8f, 0x0398,
+ 0x04cb, 0xf9ed, 0xf583, 0xf9dc, 0xf7b0, 0xf742,
+ 0xf8a8, 0xf579, 0xfb84, 0x01e8, 0xfb94, 0xfc6a,
+ 0x013a, 0xf9dd, 0xf790, 0xfd88, 0xfc3d, 0xf992,
+ 0xfa43, 0xf939, 0xf8c7, 0xfba0, 0x002d, 0x0016,
+ 0xf90b, 0xf2fe, 0xee66, 0xe8aa, 0xe758, 0xe993,
+ 0xecfe, 0xf306, 0xf5f6, 0xf552, 0xf7d1, 0xfa97,
+ 0xf9bd, 0xf893, 0xf6fc, 0xf2ea, 0xf30e, 0xf9b6,
+ 0xf7ac, 0xec2a, 0xec47, 0xf45f, 0xf3df, 0xf321,
+ 0xf7b3, 0xfa30, 0xfb73, 0xfa81, 0xf4c7, 0xf09f,
+ 0xf140, 0xf006, 0xe799, 0xe150, 0xe618, 0xec56,
+ 0xefe2, 0xf2dc, 0xed81, 0xe884, 0xef66, 0xf373,
+ 0xf0cd, 0xf147, 0xf185, 0xf27c, 0xf55f, 0xf283,
+ 0xee3a, 0xf09a, 0xf6cd, 0xfbb8, 0xfe17, 0xfeca,
+ 0xfb38, 0xf615, 0xf65e, 0xf3b3, 0xeb2e, 0xe9c9,
+ 0xee0e, 0xf0f3, 0xf124, 0xeec6, 0xf33a, 0xf84c,
+ 0xf374, 0xf6b8, 0xfd65, 0xf3ac, 0xef4e, 0xf829,
+ 0xfa85, 0xf91b, 0xf3ac, 0xe8ea, 0xe6e3, 0xea0a,
+ 0xecd7, 0xf16e, 0xeecc, 0xe76e, 0xe1ab, 0xdd10,
+ 0xe2e5, 0xea06, 0xe434, 0xe28b, 0xe7e9, 0xe756,
+ 0xeafc, 0xf202, 0xeebd, 0xecb1, 0xf4f6, 0xf9d1,
+ 0xf844, 0xf980, 0xf876, 0xf342, 0xf59f, 0xf7ce,
+ 0xf06d, 0xefba, 0xf664, 0xf8ca, 0xfda2, 0x0232,
+ 0xfe38, 0xf6e2, 0xf094, 0xf23d, 0xf664, 0xee92,
+ 0xe88d, 0xea8c, 0xe79a, 0xe7d3, 0xe981, 0xe6a1,
+ 0xef93, 0xf84d, 0xf0ee, 0xee1e, 0xf2c4, 0xf5e3,
+ 0xfb2e, 0xfcd3, 0xfce3, 0xffff, 0xffba, 0x0055,
+ 0xfece, 0xf919, 0xfe0e, 0x02ec, 0xfe8f, 0x02a6,
+ 0x07d0, 0x05d2, 0x086f, 0x0865, 0x05e5, 0x0aef,
+ 0x0cd9, 0x0b4d, 0x0c0f, 0x0b06, 0x1049, 0x17bb,
+ 0x11b1, 0x09b6, 0x0923, 0x05ef, 0x017a, 0x017f,
+ 0x0163, 0xfc4e, 0xf3b7, 0xedde, 0xeee5, 0xf562,
+ 0xfc13, 0xfcbc, 0xf6c2, 0xf1a8, 0xf5a1, 0xfa7d,
+ 0xf099, 0xe467, 0xe6d2, 0xeaa7, 0xec68, 0xf4ee,
+ 0xf8fb, 0xf7fa, 0xfbcb, 0xfc43, 0xfa45, 0xfe78,
+ 0x0377, 0x0838, 0x0d1c, 0x0d17, 0x0bfb, 0x0d1b,
+ 0x0d24, 0x0b0d, 0x096d, 0x0c45, 0x0e24, 0x077b,
+ 0x00e4, 0x0182, 0x0300, 0x007f, 0xfc73, 0xfe37,
+ 0x0476, 0x04fa, 0x01bc, 0xff9e, 0xfdb3, 0xfeb2,
+ 0xfe92, 0xfb54, 0xfbcd, 0xfbae, 0xfc2f, 0x02a3,
+ 0x0145, 0xfbea, 0x018b, 0x02d3, 0xfbff, 0xfc79,
+ 0xffa4, 0x0256, 0x0436, 0xff04, 0xfde3, 0x02ce,
+ 0x02e0, 0x0844, 0x0ff4, 0x0ae6, 0x07be, 0x0aaf,
+ 0x04c6, 0xfd5e, 0xfadf, 0xf988, 0xfb09, 0xf668,
+ 0xee4d, 0xf64a, 0x01cf, 0xff64, 0xfedb, 0x0353,
+ 0x002e, 0xfc80, 0xfca8, 0xf8d8, 0xf414, 0xf421,
+ 0xf64e, 0xf79a, 0xf7c7, 0xf748, 0xf669, 0xf5d8,
+ 0xf527, 0xf3dc, 0xf604, 0xf9d6, 0xf6e6, 0xf3b6,
+ 0xf884, 0xfa39, 0xf4ca, 0xf2d4, 0xf64d, 0xfd00,
+ 0x03d3, 0x0294, 0xfbac, 0xf7a5, 0xf364, 0xed29,
+ 0xecc9, 0xf31b, 0xf917, 0xfd21, 0xff8c, 0xfde3,
+ 0xfbbe, 0xfd26, 0xfddf, 0xfd8d, 0xfd39, 0xf87e,
+ 0xf4ff, 0xf781, 0xf6d0, 0xf5ca, 0xfc4d, 0xfff3,
+ 0xfdbf, 0xfec2, 0xff40, 0xfbc6, 0xfbc8, 0xffbe,
+ 0x0050, 0xfdd7, 0x008e, 0x0733, 0x06c5, 0x00bd,
+ 0xfe68, 0xfe38, 0xfbea, 0xf884, 0xf82d, 0xfd75,
+ 0xff4f, 0xf7d8, 0xf428, 0xf9ea, 0xfe64, 0xff72,
+ 0x0119, 0x00e5, 0xfb6c, 0xf1ce, 0xed55, 0xf3ff,
+ 0xfaa7, 0xfaa0, 0xfb44, 0xfbd8, 0xfa69, 0xfb59,
+ 0xfa6c, 0xf8c9, 0xfcff, 0xfc69, 0xf557, 0xf561,
+ 0xf75a, 0xf7df, 0xfe26, 0x00b0, 0xfeca, 0x0194,
+ 0xfed5, 0xf9a7, 0xfe2a, 0xfea2, 0xfa30, 0xfd4c,
+ 0xfd6b, 0xf956, 0xfc3b, 0xfef6, 0xfe62, 0x0163,
+ 0x056e, 0x055d, 0x01a2, 0x00ce, 0x0345, 0x0098,
+ 0xfd88, 0xfcff, 0xf59b, 0xef58, 0xf0f6, 0xf0ed,
+ 0xf1cf, 0xf340, 0xf0da, 0xf481, 0xf6c8, 0xefa8,
+ 0xf17f, 0xf822, 0xf5b0, 0xf6d2, 0xf805, 0xee77,
+ 0xea60, 0xf2db, 0xfbec, 0xfc47, 0xf245, 0xe92d,
+ 0xe86c, 0xec94, 0xf631, 0xfde9, 0xfce5, 0xfbe4,
+ 0xfa11, 0xf4f6, 0xf5c0, 0xf890, 0xf775, 0xf5b6,
+ 0xf1d5, 0xef87, 0xef7d, 0xec80, 0xf11e, 0xfb1f,
+ 0xf92a, 0xf5fb, 0xfbc3, 0xff59, 0xffba, 0xfd79,
+ 0xf908, 0xfacc, 0xfe47, 0x01af, 0x0a22, 0x0a40,
+ 0x00ad, 0xfce2, 0xf87d, 0xef1b, 0xeda7, 0xf3e4,
+ 0xf935, 0xfb2a, 0xf9c9, 0xf68d, 0xf417, 0xf657,
+ 0xf98d, 0xf647, 0xf3fb, 0xf861, 0xfd98, 0x0086,
+ 0xfb9e, 0xf542, 0xfb6d, 0xfe55, 0xf7e1, 0xfb10,
+ 0xfbab, 0xf2fa, 0xf56f, 0xf8fe, 0xf7d5, 0x00fb,
+ 0x04b7, 0xfe71, 0x0134, 0x03a7, 0x01ba, 0x06cb,
+ 0x096e, 0x0508, 0xff38, 0xfa93, 0xffb6, 0x0708,
+ 0x03d0, 0x013c, 0x01ce, 0xffa2, 0x01db, 0x04e4,
+ 0x0527, 0x0986, 0x0a0e, 0x04f9, 0x0649, 0x08db,
+ 0x08de, 0x0d2b, 0x0ea4, 0x07fd, 0x0043, 0xf9c8,
+ 0xf639, 0xf6c5, 0xf7e2, 0xf9ed, 0xfb36, 0xfa18,
+ 0xfd94, 0x02e3, 0x030f, 0x05e6, 0x0ac4, 0x0a91,
+ 0x0ce5, 0x0ea7, 0x08a1, 0x07f3, 0x09e7, 0x0299,
+ 0x0281, 0x0cea, 0x0eef, 0x0c37, 0x0a7a, 0x0451,
+ 0x00c6, 0x01d1, 0x0285, 0x0703, 0x099a, 0x03c7,
+ 0x002d, 0x015c, 0x006c, 0xff39, 0xfeb3, 0xfe1a,
+ 0x015e, 0x07d9, 0x0c0d, 0x0b94, 0x08cf, 0x0776,
+ 0x05ff, 0x0339, 0x0499, 0x08b7, 0x086d, 0x0761,
+ 0x0724, 0x0120, 0xfcb7, 0x0128, 0x038d, 0x0375,
+ 0x0769, 0x04e4, 0xfce0, 0xfd5c, 0xfede, 0xf9ac,
+ 0xf75a, 0xf8a1, 0xf8c7, 0xfaff, 0xfeac, 0xfed9,
+ 0xfd1a, 0xff92, 0x047e, 0x055d, 0x050e, 0x041f,
+ 0xfde6, 0xfbd7, 0x0257, 0x04ad, 0x0291, 0x023a,
+ 0x0079, 0xfe6f, 0xfd3c, 0xfcc6, 0x019f, 0x0653,
+ 0x052f, 0x03d0, 0x0044, 0xfa8a, 0xfceb, 0x02d6,
+ 0x0341, 0x045b, 0x0704, 0x05b4, 0x05cf, 0x0945,
+ 0x08b7, 0x05ab, 0x03b0, 0xff6e, 0xfca8, 0xfdcd,
+ 0xfbcc, 0xf936, 0xf926, 0xf5cc, 0xf49f, 0xf856,
+ 0xf7d4, 0xf622, 0xf460, 0xed14, 0xea5a, 0xeeb1,
+ 0xee98, 0xec51, 0xed97, 0xf1ef, 0xf6b4, 0xf67d,
+ 0xf66b, 0xfaed, 0xfd37, 0x010a, 0x067e, 0x03aa,
+ 0xfff9, 0xff81, 0xfc03, 0xfbe2, 0xfd3a, 0xfb98,
+ 0x006f, 0x03d0, 0xfdef, 0xfe83, 0x0496, 0x03e9,
+ 0x0151, 0xff87, 0xfc6e, 0xf9f7, 0xf889, 0xf9e6,
+ 0xfc84, 0xfc47, 0xfd69, 0x0256, 0x0561, 0x03d6,
+ 0x0271, 0x051e, 0x04d8, 0xfe7a, 0xfbb4, 0xfac9,
+ 0xf7d5, 0xfe6f, 0x0a53, 0x0be1, 0x0862, 0x0758,
+ 0x08fb, 0x103b, 0x158e, 0x10ec, 0x0acc, 0x09ea,
+ 0x0c7c, 0x100c, 0x0fda, 0x0d30, 0x0fb5, 0x1305,
+ 0x0de9, 0x07ac, 0x0a53, 0x10bd, 0x1530, 0x1856,
+ 0x187a, 0x15b2, 0x111f, 0x0913, 0x018e, 0xff2a,
+ 0xff75, 0x0134, 0x037b, 0x0297, 0xfd45, 0xf69a,
+ 0xf5c4, 0xfb3e, 0xfe96, 0xfffa, 0x01c2, 0xffb1,
+ 0xfdb6, 0xff05, 0xfea2, 0xfe69, 0xff5d, 0xfeff,
+ 0xffe7, 0x0109, 0x0390, 0x08aa, 0x0646, 0x00ff,
+ 0x04d1, 0x0702, 0x0655, 0x0dfd, 0x136d, 0x115e,
+ 0x10e0, 0x0e7a, 0x0b0e, 0x0de7, 0x12e5, 0x1750,
+ 0x16f9, 0x0c1a, 0x038a, 0x063c, 0x0837, 0x06c1,
+ 0x09db, 0x0f78, 0x1181, 0x0ee7, 0x0bdc, 0x0cc2,
+ 0x0e21, 0x0c8f, 0x0bdd, 0x0cb0, 0x0c69, 0x0b62,
+ 0x076b, 0x00b5, 0xffd2, 0x0551, 0x0866, 0x0a4c,
+ 0x0e86, 0x0de1, 0x082f, 0x0792, 0x0b23, 0x0c07,
+ 0x0c90, 0x0d5b, 0x0ab1, 0x0942, 0x0c75, 0x0e1c,
+ 0x0d76, 0x0da8, 0x0c09, 0x09a1, 0x0a7d, 0x0d18,
+ 0x0eac, 0x0ceb, 0x0997, 0x0966, 0x0825, 0x0596,
+ 0x0b48, 0x1298, 0x103a, 0x0cf3, 0x1008, 0x13a5,
+ 0x125b, 0x0c43, 0x0740, 0x03a2, 0xfd46, 0xfa75,
+ 0xfcee, 0xff91, 0x04bd, 0x05f8, 0xfee8, 0xfe54,
+ 0x0396, 0x0388, 0x0392, 0x02a2, 0xfc95, 0xf8e8,
+ 0xf74e, 0xf62e, 0xf773, 0xf740, 0xf963, 0xfd51,
+ 0xfa01, 0xf910, 0xfea7, 0xfda2, 0xfad8, 0xfd57,
+ 0xfea9, 0xff0f, 0xfe2e, 0xfc79, 0xfea9, 0xfe02,
+ 0xfa86, 0xfcef, 0x0073, 0x04a0, 0x0961, 0x04d8,
+ 0x01b3, 0x08ed, 0x09f1, 0x053e, 0x0579, 0x03e2,
+ 0x0234, 0x070f, 0x0cce, 0x10a4, 0x123d, 0x1031,
+ 0x0b7b, 0x054c, 0x03e9, 0x067b, 0x01e5, 0xfb35,
+ 0xfa96, 0xfa37, 0xfb59, 0xfe9b, 0xfeae, 0x00b9,
+ 0x0247, 0xfbf9, 0xf6de, 0xf570, 0xf2f1, 0xf2fe,
+ 0xf0d0, 0xebf2, 0xef4d, 0xf3ee, 0xf3a3, 0xf851,
+ 0xfd1c, 0xf996, 0xf5e3, 0xf63c, 0xf845, 0xfbad,
+ 0xfe16, 0xfdd1, 0xfb03, 0xf7d9, 0xf7b0, 0xf832,
+ 0xf7fb, 0xfa4f, 0xfd81, 0xff52, 0x0077, 0xfff6,
+ 0xff07, 0xfee9, 0xfe24, 0xfcf9, 0xfb01, 0xf944,
+ 0xf9d2, 0xf9a7, 0xfa3a, 0xff28, 0x02f0, 0x0452,
+ 0x051d, 0x0072, 0xfa06, 0xf7e5, 0xf615, 0xf5fa,
+ 0xf7e0, 0xf464, 0xef39, 0xedde, 0xed03, 0xee1b,
+ 0xf14e, 0xf2ca, 0xf4ca, 0xf61e, 0xf306, 0xefd8,
+ 0xef8b, 0xf099, 0xf263, 0xf2fc, 0xf1a7, 0xf04d,
+ 0xf0ad, 0xf353, 0xf502, 0xf429, 0xf3a7, 0xf229,
+ 0xf011, 0xf2d4, 0xf628, 0xf328, 0xef9f, 0xf178,
+ 0xf55a, 0xf779, 0xf84b, 0xf97d, 0xf9e6, 0xf890,
+ 0xf8ff, 0xfc3e, 0xfeee, 0x0081, 0x0133, 0xff87,
+ 0xfcea, 0xfbea, 0xfc54, 0xfe05, 0x0183, 0x0491,
+ 0x04e6, 0x04cf, 0x05c3, 0x058e, 0x043e, 0x0244,
+ 0xfefc, 0xfcb0, 0xfa3a, 0xf4ec, 0xf2bf, 0xf588,
+ 0xf66e, 0xf706, 0xfa4b, 0xfb86, 0xfbf2, 0xfe4d,
+ 0xfe3b, 0xfc06, 0xfa30, 0xf6da, 0xf5b7, 0xfa51,
+ 0xfd8f, 0xfbc6, 0xfa60, 0xfab9, 0xfae6, 0xfb32,
+ 0xf9b1, 0xf6a7, 0xf765, 0xfa75, 0xfa3c, 0xf8fe,
+ 0xf972, 0xfab0, 0xfeb7, 0x0447, 0x0654, 0x0618,
+ 0x06c8, 0x0723, 0x054f, 0x021c, 0x01d9, 0x0577,
+ 0x05db, 0x0259, 0x03cd, 0x08e3, 0x0938, 0x08bf,
+ 0x0c82, 0x0cc9, 0x0866, 0x08c0, 0x0b4e, 0x08cc,
+ 0x059b, 0x04d9, 0x0499, 0x042b, 0x005d, 0xfc09,
+ 0xfe89, 0x0336, 0x0545, 0x0771, 0x078b, 0x0656,
+ 0x07f7, 0x07d9, 0x0450, 0x0279, 0x03f6, 0x07a9,
+ 0x0910, 0x0674, 0x047b, 0x0122, 0xfb78, 0xfa52,
+ 0xfae1, 0xf92b, 0xfa53, 0xfbb1, 0xf931, 0xf8ab,
+ 0xfc26, 0x0007, 0x02ed, 0x057c, 0x0814, 0x0777,
+ 0x0378, 0x0265, 0x046c, 0x053f, 0x05a0, 0x05b8,
+ 0x0347, 0xff03, 0xfc83, 0xfd64, 0xff37, 0x01f5,
+ 0x05fb, 0x0635, 0x039a, 0x047f, 0x06bb, 0x0684,
+ 0x0490, 0x02b5, 0x0323, 0x01c3, 0xfb23, 0xf65e,
+ 0xf69f, 0xf917, 0xfdcb, 0x016a, 0x0278, 0x03ba,
+ 0x02ec, 0x005c, 0xff28, 0xfe2a, 0xfed2, 0x00c2,
+ 0x0149, 0x02d0, 0x01fb, 0xfbcd, 0xf85b, 0xf817,
+ 0xf7c8, 0xfc1e, 0x0056, 0xfdea, 0xfba2, 0xfc37,
+ 0xfbcd, 0xfba1, 0xfd99, 0xfff4, 0xffd4, 0xfec4,
+ 0x0016, 0x0061, 0xff8d, 0x02e1, 0x05d3, 0x0557,
+ 0x0778, 0x084c, 0x02bf, 0xff86, 0x0196, 0x01c1,
+ 0x000f, 0xffb2, 0xff08, 0xfee3, 0x0110, 0x01b7,
+ 0xff38, 0xfe61, 0xffd3, 0xffcb, 0xffca, 0x016f,
+ 0xffb2, 0xf9db, 0xf7bf, 0xfa90, 0xfc0a, 0xfc80,
+ 0xfd4a, 0xfb5e, 0xfa1a, 0xfc93, 0xfe62, 0xfff9,
+ 0x0233, 0x006c, 0xfd0f, 0xfc3f, 0xfba3, 0xfbb8,
+ 0xfe76, 0x030f, 0x0799, 0x0819, 0x04e7, 0x0137,
+ 0xfbac, 0xf69a, 0xf61b, 0xf783, 0xf950, 0xfa9f,
+ 0xf970, 0xf8dc, 0xf877, 0xf4ec, 0xf25e, 0xf292,
+ 0xf28f, 0xf342, 0xf51b, 0xf713, 0xf8c0, 0xf964,
+ 0xfa66, 0xfb55, 0xfa96, 0xfb78, 0xfdf4, 0xfeec,
+ 0x0085, 0x02a3, 0x0386, 0x05e1, 0x087c, 0x0919,
+ 0x0ba8, 0x1023, 0x1113, 0x0ef6, 0x0ed4, 0x1130,
+ 0x1386, 0x1592, 0x1649, 0x1419, 0x11a2, 0x1000,
+ 0x0db7, 0x0d13, 0x0d7a, 0x0ac1, 0x0766, 0x0682,
+ 0x067d, 0x07be, 0x094a, 0x071e, 0x0225, 0xfe05,
+ 0xfc21, 0xfcfe, 0xfe51, 0xfd4c, 0xfc84, 0xfcf4,
+ 0xfa4d, 0xf68b, 0xf711, 0xf8f9, 0xf9c9, 0xfc10,
+ 0xfe5a, 0xffd3, 0x02b8, 0x04d7, 0x04b7, 0x0482,
+ 0x0438, 0x03d8, 0x03e9, 0x03c3, 0x03b7, 0x0456,
+ 0x0686, 0x08fa, 0x0774, 0x04d9, 0x06a3, 0x0a00,
+ 0x0ccd, 0x0ebd, 0x0da9, 0x0ccf, 0x0cd0, 0x0a17,
+ 0x08f5, 0x09a1, 0x07a2, 0x0920, 0x0da5, 0x0b98,
+ 0x0768, 0x0742, 0x07b2, 0x0952, 0x0bb4, 0x0a71,
+ 0x0761, 0x0520, 0x03ab, 0x03ef, 0x04b3, 0x05bf,
+ 0x08c4, 0x0b50, 0x0b08, 0x091a, 0x0687, 0x041c,
+ 0x0179, 0xfd77, 0xfa51, 0xfb7d, 0x00f5, 0x06bb,
+ 0x09b8, 0x0be5, 0x0de8, 0x0ddc, 0x0e78, 0x1044,
+ 0x0eed, 0x0aca, 0x04dc, 0xfe1f, 0xfbb1, 0xfbc5,
+ 0xfb0d, 0xfeb0, 0x03c5, 0x03d8, 0x03fa, 0x0483,
+ 0x0132, 0xfead, 0xfe8b, 0xfdf2, 0xfcc7, 0xf9a6,
+ 0xf6cb, 0xf73d, 0xf83f, 0xfa9e, 0xfdcc, 0xfd13,
+ 0xfc6c, 0xfe18, 0xfd46, 0xfc66, 0xfdb4, 0xfde5,
+ 0xfd2b, 0xfc31, 0xfbbe, 0xfc98, 0xfc62, 0xfcfd,
+ 0xffac, 0xff0a, 0xfafb, 0xf760, 0xf5cd, 0xf7b2,
+ 0xfa0b, 0xfadd, 0xfca1, 0xfbcc, 0xf6e1, 0xf395,
+ 0xf2af, 0xf3da, 0xf7ad, 0xfa08, 0xf960, 0xf77c,
+ 0xf63c, 0xf8c1, 0xfcda, 0xfdf3, 0xfd28, 0xfd43,
+ 0x004c, 0x04d4, 0x0735, 0x08b0, 0x086a, 0x0453,
+ 0x0214, 0x0216, 0x0009, 0xffcf, 0x01d0, 0x0264,
+ 0x035e, 0x0356, 0x00cc, 0xffaa, 0xff98, 0xff42,
+ 0xff8a, 0xfe6a, 0xfc9d, 0xfce3, 0xfd6d, 0xfc7a,
+ 0xfa7c, 0xf900, 0xf9f1, 0xfb49, 0xfab2, 0xfaa1,
+ 0xfbe8, 0xfbea, 0xfb1c, 0xfb26, 0xfa8d, 0xf9c2,
+ 0xfade, 0xfa72, 0xf67f, 0xf391, 0xf235, 0xf14e,
+ 0xf428, 0xf93f, 0xfc99, 0xff12, 0xffe8, 0xfe40,
+ 0xfd2a, 0xfd4c, 0xfcdc, 0xfbd7, 0xfb93, 0xfc06,
+ 0xfa6a, 0xf74c, 0xf795, 0xfbb6, 0x0049, 0x036f,
+ 0x04b7, 0x053a, 0x05a9, 0x0563, 0x03bd, 0xffd5,
+ 0xfa7b, 0xf491, 0xeeb3, 0xed4f, 0xf0c5, 0xf403,
+ 0xf777, 0xfaaa, 0xfa62, 0xfa26, 0xfb7a, 0xfb83,
+ 0xfaf6, 0xf976, 0xf7b8, 0xf7d3, 0xf770, 0xf70c,
+ 0xf633, 0xf10c, 0xee3a, 0xf17c, 0xf29d, 0xf28d,
+ 0xf47c, 0xf36a, 0xf134, 0xf042, 0xec8f, 0xe85c,
+ 0xe7de, 0xe95e, 0xea79, 0xeabf, 0xeb4d, 0xec10,
+ 0xec64, 0xedc8, 0xef69, 0xf073, 0xf2c8, 0xf42c,
+ 0xf3a1, 0xf540, 0xf82a, 0xf973, 0xf9f3, 0xf910,
+ 0xf624, 0xf368, 0xf34c, 0xf56d, 0xf563, 0xf1d6,
+ 0xef87, 0xf066, 0xf32e, 0xf7e9, 0xfd11, 0x0138,
+ 0x04cc, 0x04fc, 0xfef3, 0xf7a0, 0xf51c, 0xf5cd,
+ 0xf759, 0xfa8c, 0xfc7b, 0xfb4e, 0xfb80, 0xfe98,
+ 0x01f0, 0x03c7, 0x01f1, 0xfcda, 0xf83b, 0xf5f2,
+ 0xf5f0, 0xf689, 0xf645, 0xf64c, 0xf5ef, 0xf437,
+ 0xf3b5, 0xf4b4, 0xf5be, 0xf7c6, 0xfa32, 0xfb50,
+ 0xfbdb, 0xfcca, 0xfd44, 0xfcc5, 0xfd82, 0xfff0,
+ 0x0073, 0xff37, 0xff7c, 0x00e9, 0x0359, 0x0763,
+ 0x0a41, 0x09a8, 0x07c1, 0x0824, 0x0977, 0x07db,
+ 0x05a6, 0x0573, 0x0401, 0x00bb, 0xfeb8, 0x003b,
+ 0x04fe, 0x086f, 0x0a40, 0x0e1a, 0x103a, 0x0ede,
+ 0x0f40, 0x1117, 0x1164, 0x0f85, 0x0c51, 0x0a95,
+ 0x0805, 0x034b, 0x0283, 0x037d, 0x0196, 0x024f,
+ 0x05ba, 0x0748, 0x0765, 0x04d1, 0x0188, 0x013f,
+ 0x006a, 0xfed1, 0xff38, 0xfef0, 0xfcdd, 0xfa0f,
+ 0xf845, 0xf995, 0xfb18, 0xfcba, 0x00fe, 0x02bf,
+ 0x0189, 0x02eb, 0x0404, 0x02a6, 0x016e, 0xff1e,
+ 0xfc5b, 0xfb40, 0xf9df, 0xf82b, 0xf780, 0xf776,
+ 0xf879, 0xfa2c, 0xfb37, 0xfc56, 0xfe75, 0x0044,
+ 0x012b, 0x02fb, 0x04ff, 0x044f, 0x01d0, 0xff07,
+ 0xfc3a, 0xfbba, 0xfd83, 0xff8c, 0x0170, 0x01d5,
+ 0x020f, 0x04d6, 0x0755, 0x08cb, 0x0b32, 0x0c06,
+ 0x0a59, 0x06d2, 0x013a, 0xfd33, 0xfb6f, 0xfa31,
+ 0xfc89, 0x001e, 0xfffd, 0xffb3, 0xff4d, 0xfb15,
+ 0xf853, 0xfadd, 0xfd4f, 0xfcc3, 0xfcb7, 0xfe25,
+ 0xfd25, 0xfa71, 0xfb56, 0xfebe, 0x012b, 0x02b2,
+ 0x016e, 0xfe08, 0xfdd3, 0xff8a, 0xff0e, 0xfe15,
+ 0xfce3, 0xf993, 0xf6d0, 0xf671, 0xf663, 0xf6fd,
+ 0xf8fd, 0xf9c7, 0xf94d, 0xf970, 0xf922, 0xf909,
+ 0xfb1b, 0xfd36, 0xfe83, 0x00ff, 0x02d5, 0x0158,
+ 0xff13, 0x0003, 0x025b, 0x0115, 0xfe88, 0xffc4,
+ 0x0115, 0xff78, 0xffac, 0x027c, 0x03c2, 0x02c8,
+ 0x00f5, 0xff07, 0xfd3b, 0xfb3e, 0xf8d5, 0xf61b,
+ 0xf36f, 0xf036, 0xec6c, 0xec10, 0xeff0, 0xf1d1,
+ 0xf04d, 0xef84, 0xef34, 0xee8c, 0xefbb, 0xf265,
+ 0xf444, 0xf4d1, 0xf59f, 0xf804, 0xf9be, 0xf93a,
+ 0xf9f8, 0xfd79, 0x00b0, 0x02c6, 0x045b, 0x04d7,
+ 0x0521, 0x053b, 0x0336, 0x013b, 0x0224, 0x0359,
+ 0x0421, 0x07a7, 0x0c69, 0x0f35, 0x10eb, 0x117f,
+ 0x105a, 0x104c, 0x11e7, 0x123d, 0x11d5, 0x12a1,
+ 0x1322, 0x121a, 0x0f4e, 0x0a81, 0x072d, 0x0758,
+ 0x06a9, 0x047f, 0x0487, 0x053c, 0x051f, 0x056d,
+ 0x0411, 0x004f, 0xfc65, 0xf884, 0xf694, 0xf928,
+ 0xfdc4, 0x0118, 0x0253, 0x0215, 0x022e, 0x0322,
+ 0x03f1, 0x03ca, 0x0285, 0x01ce, 0x0209, 0x01d1,
+ 0x02a6, 0x049a, 0x0462, 0x02ed, 0x02e4, 0x0423,
+ 0x0694, 0x089b, 0x0884, 0x0865, 0x08b8, 0x0774,
+ 0x0566, 0x0496, 0x04f8, 0x0522, 0x05a8, 0x0826,
+ 0x0956, 0x0737, 0x07ab, 0x0b5d, 0x0c9d, 0x0d7f,
+ 0x1030, 0x0fef, 0x0d70, 0x0bfb, 0x09d4, 0x0862,
+ 0x0958, 0x08cd, 0x070b, 0x0778, 0x07ee, 0x06c1,
+ 0x050f, 0x029f, 0x00a3, 0x001e, 0xffab, 0x0050,
+ 0x03ed, 0x0900, 0x0c65, 0x0bc2, 0x0930, 0x07fb,
+ 0x0610, 0x03a8, 0x054e, 0x08fc, 0x0aed, 0x0c23,
+ 0x0bc6, 0x0a25, 0x0a3e, 0x0982, 0x0568, 0x0185,
+ 0x0085, 0x0281, 0x05e4, 0x0707, 0x0580, 0x038e,
+ 0x019a, 0x004c, 0x001f, 0xffee, 0x002e, 0x0228,
+ 0x0521, 0x0736, 0x06e6, 0x053a, 0x0466, 0x03c8,
+ 0x0277, 0x01dd, 0x01f0, 0x016f, 0x0140, 0x0210,
+ 0x028e, 0x0278, 0x022e, 0x003c, 0xfcd2, 0xfab3,
+ 0xf9c4, 0xf919, 0xfa7a, 0xfcd2, 0xfdc3, 0xfee1,
+ 0xff97, 0xfe41, 0xfdea, 0xfe42, 0xfc51, 0xfbbe,
+ 0xfea6, 0x00fc, 0x0218, 0x039c, 0x04ee, 0x0534,
+ 0x02c6, 0xfe9a, 0xfe24, 0x016b, 0x02eb, 0x0351,
+ 0x0623, 0x08b0, 0x092b, 0x0acf, 0x0c4b, 0x09be,
+ 0x0646, 0x053f, 0x048d, 0x040a, 0x053e, 0x06c2,
+ 0x0762, 0x07a5, 0x07ec, 0x073c, 0x04c8, 0x0361,
+ 0x04c4, 0x05f6, 0x0648, 0x06c8, 0x061f, 0x04d3,
+ 0x0267, 0xfc54, 0xf728, 0xf82f, 0xfb4b, 0xfcf6,
+ 0xff5e, 0x01bd, 0x015e, 0xffed, 0xff45, 0xfd7d,
+ 0xfaf0, 0xfaf7, 0xfcbb, 0xfe2c, 0x0059, 0x0230,
+ 0x0231, 0x02ab, 0x043b, 0x04f3, 0x046c, 0x0322,
+ 0x023c, 0x0276, 0x02a3, 0x02bc, 0x036c, 0x033e,
+ 0x015a, 0xff4c, 0xfe63, 0xfe37, 0xfe22, 0xff46,
+ 0x029d, 0x05b9, 0x068c, 0x0791, 0x0962, 0x077a,
+ 0x0253, 0xffb3, 0xff2c, 0xfe0c, 0xfe24, 0xfeed,
+ 0xfe89, 0xfe8f, 0xfede, 0xfe9c, 0xff1b, 0x0089,
+ 0x022b, 0x0184, 0xfc5b, 0xf6d8, 0xf48d, 0xf3d5,
+ 0xf45a, 0xf4a0, 0xf27b, 0xf092, 0xefde, 0xeef4,
+ 0xef56, 0xf11c, 0xf31c, 0xf546, 0xf627, 0xf566,
+ 0xf3f1, 0xf20c, 0xf112, 0xf093, 0xeefc, 0xedfd,
+ 0xeef9, 0xf1db, 0xf60f, 0xf98b, 0xfcc8, 0x0024,
+ 0x008d, 0xfeb4, 0xfce0, 0xfa79, 0xf9a2, 0xfb0c,
+ 0xfbee, 0xfd66, 0xfed5, 0xfcbd, 0xfa30, 0xfa01,
+ 0xf995, 0xf95f, 0xfa64, 0xfa4a, 0xfa43, 0xfcfd,
+ 0xffc7, 0x0053, 0x00b9, 0x00fa, 0xffaa, 0xfeda,
+ 0xff45, 0xfefe, 0xfea1, 0xfefe, 0xff53, 0xffc2,
+ 0xffaf, 0xff16, 0xffcc, 0x0185, 0x0377, 0x05be,
+ 0x06be, 0x0660, 0x05e0, 0x03e3, 0x00d0, 0xff28,
+ 0xfe6f, 0xfded, 0xfe24, 0xfe7a, 0xff15, 0x001b,
+ 0x0038, 0x004b, 0x0223, 0x0452, 0x0588, 0x067c,
+ 0x06cc, 0x0615, 0x0584, 0x0547, 0x049c, 0x0425,
+ 0x053a, 0x080c, 0x0b26, 0x0cbb, 0x0c7c, 0x0b9b,
+ 0x0b36, 0x0ad2, 0x09d3, 0x08dd, 0x0739, 0x0497,
+ 0x03da, 0x0506, 0x05ac, 0x077a, 0x0abf, 0x0c9e,
+ 0x0d7d, 0x0e41, 0x0ec3, 0x0ecc, 0x0c6f, 0x0a0c,
+ 0x0ab7, 0x0941, 0x0517, 0x0452, 0x04db, 0x045e,
+ 0x05c4, 0x0702, 0x06f1, 0x07a4, 0x0693, 0x03d3,
+ 0x03ec, 0x05df, 0x05f1, 0x0458, 0x029d, 0x0020,
+ 0xfbe2, 0xf73d, 0xf3fd, 0xf3c2, 0xf79d, 0xfca3,
+ 0xffe6, 0x014e, 0x0019, 0xfe78, 0xfed9, 0xfe28,
+ 0xfd89, 0x0030, 0x01a7, 0x00b3, 0x009c, 0xffef,
+ 0xfed2, 0xfe98, 0xfcaa, 0xf992, 0xf80f, 0xf823,
+ 0xf915, 0xf9d6, 0xfa25, 0xfa01, 0xf8b2, 0xf7df,
+ 0xf807, 0xf7b8, 0xf87e, 0xfaec, 0xfec3, 0x0414,
+ 0x05ed, 0x03ce, 0x03fc, 0x0446, 0x00be, 0xfdd3,
+ 0xfe3a, 0x008f, 0x021f, 0x0163, 0x01e3, 0x030f,
+ 0x0079, 0xfe0c, 0xff29, 0x0064, 0x0159, 0x0293,
+ 0x024f, 0x00a1, 0xfeec, 0xfe3a, 0xfd4c, 0xfb5b,
+ 0xfb83, 0xfd15, 0xfce5, 0xfcf4, 0xfd01, 0xfa98,
+ 0xf848, 0xf7a8, 0xf79b, 0xf745, 0xf5a3, 0xf511,
+ 0xf773, 0xf9da, 0xfb2c, 0xfc14, 0xfca7, 0xfdc2,
+ 0xfd73, 0xfa5b, 0xf76c, 0xf600, 0xf6e7, 0xfa30,
+ 0xfc29, 0xfcb9, 0xfe0b, 0xfee6, 0x0003, 0x0146,
+ 0x0040, 0x0007, 0x0261, 0x03cf, 0x055a, 0x0877,
+ 0x097f, 0x0846, 0x07d8, 0x06fe, 0x03b5, 0x0034,
+ 0xfe8f, 0xfd6e, 0xfb55, 0xf829, 0xf511, 0xf3ad,
+ 0xf277, 0xf00b, 0xef3c, 0xf0c1, 0xf257, 0xf362,
+ 0xf385, 0xf3c4, 0xf60c, 0xf999, 0xfd5d, 0xff59,
+ 0xfe11, 0xfd4e, 0xfddd, 0xfc70, 0xfacb, 0xfa89,
+ 0xfbb2, 0x0000, 0x04d0, 0x080e, 0x0b2b, 0x0c13,
+ 0x0c05, 0x0d9b, 0x0c9a, 0x0ab6, 0x0d24, 0x0fd0,
+ 0x106b, 0x10dc, 0x0ff6, 0x0e5a, 0x0caa, 0x0a41,
+ 0x08cf, 0x0766, 0x052e, 0x04ad, 0x05b0, 0x0832,
+ 0x0bfe, 0x0c88, 0x092a, 0x049f, 0xfef5, 0xf9e6,
+ 0xf7ac, 0xf832, 0xfaab, 0xfce9, 0xff27, 0x020f,
+ 0x01d3, 0xfe84, 0xfb60, 0xf7b9, 0xf596, 0xf6fe,
+ 0xf89d, 0xfa1f, 0xfbec, 0xfc46, 0xfd96, 0x006d,
+ 0x01ec, 0x0379, 0x05b1, 0x06f1, 0x07cb, 0x0708,
+ 0x0473, 0x0355, 0x0341, 0x033f, 0x0469, 0x0358,
+ 0xfed8, 0xfce2, 0xfe92, 0xffd5, 0x0128, 0x03bd,
+ 0x05a6, 0x06bd, 0x087c, 0x0aa7, 0x0bd8, 0x0b2d,
+ 0x094c, 0x07d3, 0x07cd, 0x0888, 0x0853, 0x0839,
+ 0x0a61, 0x0c64, 0x0c2a, 0x0c17, 0x0c8a, 0x0c74,
+ 0x0cac, 0x0c8d, 0x0c1f, 0x0bf9, 0x0990, 0x0655,
+ 0x067c, 0x075d, 0x06d1, 0x0742, 0x0755, 0x0634,
+ 0x071f, 0x08cf, 0x07e5, 0x06e3, 0x0847, 0x099a,
+ 0x0a46, 0x0beb, 0x0bdf, 0x08fc, 0x074e, 0x069f,
+ 0x051d, 0x059d, 0x0762, 0x0707, 0x05ab, 0x04a2,
+ 0x0443, 0x04cc, 0x056a, 0x0760, 0x0945, 0x066e,
+ 0x0215, 0x00da, 0x005c, 0x00fe, 0x0460, 0x0750,
+ 0x083b, 0x0704, 0x03ad, 0x00e9, 0xff9b, 0xff59,
+ 0x0176, 0x04b2, 0x0730, 0x095a, 0x0a32, 0x091a,
+ 0x07bf, 0x06d9, 0x0604, 0x04e4, 0x0345, 0x0119,
+ 0xfec3, 0xfdee, 0xfe9e, 0xfe75, 0xfdd2, 0xfdb7,
+ 0xfc50, 0xfa3b, 0xf9dc, 0xfa4a, 0xfa9b, 0xfc2e,
+ 0xff61, 0x0288, 0x041f, 0x042a, 0x02db, 0x00ac,
+ 0xffbe, 0x0043, 0xff75, 0xfcb9, 0xfa43, 0xfa12,
+ 0xfc4c, 0xfe86, 0xff2d, 0xff55, 0xff5a, 0xffba,
+ 0x01b0, 0x03cb, 0x04a9, 0x05ea, 0x087d, 0x0b8f,
+ 0x0dc8, 0x0dc7, 0x0b8e, 0x0798, 0x02b7, 0xff93,
+ 0xfec2, 0xfe24, 0xfe0d, 0xff0a, 0xffa2, 0x00a5,
+ 0x0304, 0x0539, 0x071c, 0x086f, 0x07dc, 0x0734,
+ 0x07c7, 0x06c0, 0x02c6, 0xfd74, 0xf89f, 0xf6bb,
+ 0xf892, 0xfb6b, 0xfd0a, 0xfe17, 0xffa7, 0x00fe,
+ 0x00d2, 0xfef1, 0xfbac, 0xf8b4, 0xf898, 0xfa37,
+ 0xfb39, 0xfd27, 0x0046, 0x01ca, 0x0195, 0x0090,
+ 0xfed8, 0xfe2d, 0xfe61, 0xfd38, 0xfbac, 0xfa98,
+ 0xf8f0, 0xf7f3, 0xf831, 0xf856, 0xf93f, 0xfae6,
+ 0xfbda, 0xfd7e, 0x000b, 0x0143, 0x0112, 0xff54,
+ 0xfb72, 0xf7cd, 0xf5f0, 0xf4ea, 0xf432, 0xf3dc,
+ 0xf5ad, 0xfabb, 0xffa2, 0x0172, 0x0078, 0xfdab,
+ 0xfafb, 0xf911, 0xf6cf, 0xf4f2, 0xf36d, 0xf1ae,
+ 0xf1e8, 0xf431, 0xf6e2, 0xf9bc, 0xf9f9, 0xf60e,
+ 0xf114, 0xec94, 0xe9cf, 0xeabb, 0xedaf, 0xf10e,
+ 0xf44c, 0xf63a, 0xf86b, 0xfb91, 0xfd3f, 0xfd1a,
+ 0xfb5d, 0xf8a1, 0xf699, 0xf366, 0xef30, 0xee96,
+ 0xf00c, 0xefd8, 0xf07a, 0xf340, 0xf5c0, 0xf6aa,
+ 0xf631, 0xf595, 0xf58b, 0xf675, 0xf95f, 0xfc27,
+ 0xfbca, 0xfa27, 0xf9f7, 0xfafd, 0xfbde, 0xfc55,
+ 0xfdce, 0xff9f, 0xffef, 0x0114, 0x040d, 0x04e2,
+ 0x02ba, 0xfff6, 0xfd5a, 0xfbf6, 0xfd02, 0xffee,
+ 0x02df, 0x03b1, 0x0312, 0x03a8, 0x0491, 0x0398,
+ 0x020e, 0x01c7, 0x0251, 0x0318, 0x03c8, 0x03de,
+ 0x041d, 0x04c2, 0x0435, 0x03b4, 0x05ab, 0x07a3,
+ 0x078e, 0x07b7, 0x0837, 0x074b, 0x04f2, 0x016b,
+ 0xfecb, 0xffbd, 0x02ca, 0x0605, 0x093a, 0x0a77,
+ 0x08c1, 0x060e, 0x0323, 0x0029, 0xff28, 0x0101,
+ 0x0424, 0x07df, 0x0bb9, 0x0d03, 0x0b02, 0x087b,
+ 0x0686, 0x0536, 0x05b4, 0x06eb, 0x0749, 0x07a3,
+ 0x081e, 0x0843, 0x0843, 0x07b6, 0x068c, 0x04f3,
+ 0x0342, 0x0322, 0x0456, 0x04fc, 0x059a, 0x064c,
+ 0x0611, 0x05e6, 0x05e8, 0x046c, 0x00ea, 0xfd06,
+ 0xfc59, 0xff56, 0x01bf, 0x031d, 0x0566, 0x0660,
+ 0x052c, 0x0450, 0x0449, 0x0408, 0x029b, 0x005f,
+ 0xff07, 0xfe0f, 0xfd6b, 0xfed9, 0x002e, 0xff15,
+ 0xfcc5, 0xf8ee, 0xf4f9, 0xf4da, 0xf712, 0xf8e7,
+ 0xfb19, 0xfca6, 0xfd3e, 0xfedd, 0xfff7, 0xfe83,
+ 0xfccc, 0xfd21, 0xfefc, 0x0112, 0x0278, 0x0216,
+ 0xffd7, 0xfe13, 0xfe3b, 0xff19, 0x0025, 0x0131,
+ 0x0196, 0x01a6, 0x0167, 0x0154, 0x0289, 0x03df,
+ 0x04f5, 0x06e0, 0x076a, 0x0518, 0x026a, 0x0104,
+ 0x00eb, 0x0163, 0x0127, 0x004c, 0xff3a, 0xff0f,
+ 0x00e6, 0x0230, 0x0234, 0x03df, 0x054f, 0x0420,
+ 0x033e, 0x035b, 0x02bf, 0x01d0, 0x00cf, 0xff6d,
+ 0xfcd8, 0xf969, 0xf870, 0xf9cc, 0xfad4, 0xfd7b,
+ 0x019e, 0x02e7, 0x01c6, 0x0076, 0xfeef, 0xff5a,
+ 0x02be, 0x05b4, 0x06b1, 0x078d, 0x084d, 0x06e2,
+ 0x037d, 0x005a, 0xfeab, 0xff3d, 0x0215, 0x0463,
+ 0x0415, 0x01f4, 0xfeab, 0xfb70, 0xf9ee, 0xf8cf,
+ 0xf6d3, 0xf645, 0xf7e2, 0xf8da, 0xf87e, 0xf881,
+ 0xf82d, 0xf5fd, 0xf305, 0xf137, 0xf1c8, 0xf434,
+ 0xf60a, 0xf7a1, 0xfbf8, 0x019f, 0x0471, 0x0486,
+ 0x040b, 0x0356, 0x030a, 0x04cc, 0x07ed, 0x09a5,
+ 0x0990, 0x09d3, 0x0b1a, 0x0c6b, 0x0cf5, 0x0c25,
+ 0x09ef, 0x06fa, 0x04b4, 0x04c5, 0x06e4, 0x09db,
+ 0x0d5d, 0x0f88, 0x0e66, 0x0c30, 0x0ac5, 0x08a0,
+ 0x0690, 0x071e, 0x0965, 0x0b5f, 0x0c7a, 0x0c2c,
+ 0x0a6c, 0x0776, 0x035e, 0xffd9, 0xfe1a, 0xfceb,
+ 0xfc64, 0xfdc7, 0xffcc, 0x003d, 0xfed3, 0xfd43,
+ 0xfd27, 0xfdb9, 0xfdca, 0xfd54, 0xfc1f, 0xfb20,
+ 0xfbae, 0xfc99, 0xfd3e, 0xfe99, 0x004d, 0x01cd,
+ 0x02cf, 0x02ee, 0x0308, 0x0340, 0x035c, 0x0459,
+ 0x04bb, 0x0295, 0x0033, 0xff09, 0xfdd3, 0xfd43,
+ 0xff34, 0x0337, 0x0661, 0x0706, 0x0754, 0x0912,
+ 0x0b73, 0x0d5c, 0x0cf5, 0x09b6, 0x0637, 0x03f1,
+ 0x0290, 0x0200, 0x0225, 0x03fa, 0x0822, 0x0d06,
+ 0x10f9, 0x11fa, 0x0f04, 0x0b42, 0x097d, 0x08d3,
+ 0x086a, 0x08ae, 0x09d2, 0x0a90, 0x0947, 0x07ac,
+ 0x0839, 0x09c7, 0x0a89, 0x0a93, 0x0a35, 0x08f9,
+ 0x0683, 0x0448, 0x033a, 0x01f7, 0x00e4, 0x01ed,
+ 0x0475, 0x0687, 0x068d, 0x0492, 0x026e, 0x00ba,
+ 0xffb0, 0x0040, 0x016a, 0x0297, 0x0510, 0x0839,
+ 0x0a58, 0x0b05, 0x0b1d, 0x0b4a, 0x0a53, 0x0889,
+ 0x07bf, 0x0660, 0x0462, 0x0467, 0x04cb, 0x04b1,
+ 0x05bf, 0x05d6, 0x0559, 0x074d, 0x08ea, 0x087c,
+ 0x0889, 0x08c5, 0x08cc, 0x093a, 0x0885, 0x0679,
+ 0x043d, 0x01cc, 0xff68, 0xfd95, 0xfd08, 0xfdde,
+ 0xfe6d, 0xfe6b, 0xfed6, 0xff02, 0xfe57, 0xfcb5,
+ 0xfa3a, 0xf8e5, 0xfa71, 0xfe3d, 0x022e, 0x0445,
+ 0x0515, 0x05c7, 0x05ad, 0x0504, 0x0411, 0x0245,
+ 0x0159, 0x019c, 0x00cc, 0x0025, 0x00fc, 0x00f3,
+ 0xffdf, 0xff8e, 0xff8d, 0xff80, 0x0054, 0x0289,
+ 0x05eb, 0x0958, 0x0bb2, 0x0d16, 0x0d81, 0x0c19,
+ 0x0984, 0x088d, 0x09c9, 0x0a36, 0x08ac, 0x0749,
+ 0x0773, 0x08b2, 0x093f, 0x080b, 0x06eb, 0x06c1,
+ 0x061a, 0x05c8, 0x0674, 0x05be, 0x03b2, 0x0272,
+ 0x016e, 0x007a, 0x0105, 0x0212, 0x01eb, 0x0168,
+ 0x0194, 0x0181, 0xffbe, 0xfc9c, 0xfa78, 0xfa86,
+ 0xfacd, 0xf9f8, 0xf9cd, 0xfaf1, 0xfc0d, 0xfdda,
+ 0x009d, 0x01d2, 0x01a0, 0x023e, 0x02d5, 0x028c,
+ 0x01f4, 0x00cb, 0x000f, 0x0008, 0xfe7d, 0xfc9a,
+ 0xfcbe, 0xfc98, 0xfaff, 0xf9c8, 0xf8de, 0xf8ae,
+ 0xfa86, 0xfd2d, 0xffe2, 0x0331, 0x05fc, 0x0755,
+ 0x0758, 0x056a, 0x01ed, 0xfeae, 0xfc60, 0xfb10,
+ 0xfb52, 0xfc5c, 0xfc42, 0xfb5e, 0xfad4, 0xf966,
+ 0xf6e3, 0xf5a1, 0xf5d0, 0xf57d, 0xf458, 0xf3b4,
+ 0xf485, 0xf5e0, 0xf668, 0xf6c6, 0xf768, 0xf729,
+ 0xf66d, 0xf5fd, 0xf4b2, 0xf265, 0xf042, 0xee7e,
+ 0xee2b, 0xf0b7, 0xf373, 0xf299, 0xefc3, 0xeed1,
+ 0xf05f, 0xf373, 0xf734, 0xfa2b, 0xfbab, 0xfbfa,
+ 0xfb13, 0xf962, 0xf7ef, 0xf799, 0xf858, 0xf8ed,
+ 0xf916, 0xfa1f, 0xfbe1, 0xfcc3, 0xfbe2, 0xf9af,
+ 0xf802, 0xf802, 0xf8f1, 0xfa49, 0xfc0f, 0xfe47,
+ 0x012b, 0x03d8, 0x051e, 0x04de, 0x0301, 0x00b7,
+ 0xff7e, 0xfe00, 0xfc0c, 0xfbe3, 0xfcb9, 0xfc60,
+ 0xfb74, 0xfb68, 0xfcfa, 0xff81, 0x014f, 0x0228,
+ 0x01f6, 0x0080, 0xffb3, 0x0051, 0x0061, 0xff56,
+ 0xfe83, 0xff41, 0x01c2, 0x0426, 0x053c, 0x0589,
+ 0x051b, 0x04c4, 0x050d, 0x048f, 0x03da, 0x0417,
+ 0x03f6, 0x0482, 0x0770, 0x09f9, 0x0a11, 0x08ee,
+ 0x0792, 0x075a, 0x08cf, 0x0a0d, 0x0a6a, 0x0b05,
+ 0x0bc5, 0x0baa, 0x0ac5, 0x0a74, 0x0af2, 0x0b12,
+ 0x0a99, 0x0949, 0x071c, 0x0623, 0x06db, 0x07cd,
+ 0x0975, 0x0b99, 0x0caa, 0x0ccb, 0x0b50, 0x079e,
+ 0x03fb, 0x01a6, 0x0043, 0xfffa, 0xffb6, 0xff56,
+ 0x010f, 0x048f, 0x06c0, 0x064a, 0x04be, 0x0455,
+ 0x0509, 0x0537, 0x045d, 0x031d, 0x01fe, 0x0074,
+ 0xfda8, 0xfaab, 0xf98d, 0xfb30, 0xfe8b, 0x00b7,
+ 0x0093, 0xffd2, 0xfe98, 0xfcc0, 0xfbf3, 0xfbac,
+ 0xfa69, 0xf927, 0xf8e7, 0xf9b9, 0xfbaf, 0xfe29,
+ 0x0034, 0x0112, 0x0144, 0x020c, 0x0216, 0xffce,
+ 0xfcef, 0xfad5, 0xf959, 0xf97e, 0xfbae, 0xfebd,
+ 0x01a2, 0x0393, 0x0455, 0x0410, 0x026f, 0x0012,
+ 0xff48, 0x00f0, 0x02b3, 0x0264, 0x00a5, 0xfe8c,
+ 0xfcb0, 0xfbe9, 0xfb8e, 0xfa88, 0xf9ad, 0xf96f,
+ 0xf935, 0xf914, 0xf915, 0xf925, 0xf937, 0xf8dc,
+ 0xf894, 0xf93a, 0xfa79, 0xfbcb, 0xfd5c, 0xff9f,
+ 0x0195, 0x0111, 0xfed1, 0xfd3f, 0xfc1d, 0xfb81,
+ 0xfc9e, 0xfdfd, 0xfe27, 0xfdec, 0xfdaa, 0xfd6d,
+ 0xfd8e, 0xfdba, 0xfdab, 0xfda9, 0xfe5a, 0x0036,
+ 0x02b6, 0x04e1, 0x05a9, 0x0470, 0x0298, 0x01a2,
+ 0x00db, 0xff60, 0xfd9b, 0xfc45, 0xfb84, 0xfaf7,
+ 0xfa20, 0xf870, 0xf5df, 0xf382, 0xf218, 0xf17a,
+ 0xf0e1, 0xef67, 0xee6d, 0xefe2, 0xf26e, 0xf54a,
+ 0xf983, 0xfd12, 0xfde7, 0xfd62, 0xfc02, 0xf969,
+ 0xf6cd, 0xf566, 0xf627, 0xf8ce, 0xfadb, 0xfb6c,
+ 0xfc57, 0xfe85, 0x01ca, 0x05d9, 0x08eb, 0x096f,
+ 0x08d1, 0x08e0, 0x08fe, 0x08a2, 0x0814, 0x068d,
+ 0x04ed, 0x0646, 0x0a44, 0x0dc5, 0x0fcd, 0x1036,
+ 0x0ebe, 0x0cec, 0x0b23, 0x079d, 0x03bb, 0x029f,
+ 0x031a, 0x030b, 0x0395, 0x04e4, 0x05a3, 0x06c0,
+ 0x08f0, 0x0aa5, 0x0acd, 0x090c, 0x0575, 0x0153,
+ 0xfdd4, 0xfb71, 0xfa77, 0xfa31, 0xf9e0, 0xfa4d,
+ 0xfc2d, 0xfe7f, 0xffac, 0xff49, 0xfe4a, 0xfe67,
+ 0x0098, 0x030b, 0x0348, 0x0272, 0x029d, 0x02cf,
+ 0x02c0, 0x0469, 0x06ff, 0x07ad, 0x06db, 0x0632,
+ 0x04fc, 0x032d, 0x0273, 0x02f8, 0x0423, 0x0605,
+ 0x07a5, 0x08ae, 0x0ac0, 0x0d6d, 0x0e21, 0x0c52,
+ 0x0966, 0x06ab, 0x0551, 0x05fb, 0x07e0, 0x09e9,
+ 0x0c0c, 0x0de9, 0x0e8c, 0x0e5b, 0x0d8f, 0x0b55,
+ 0x08d8, 0x07c5, 0x07d4, 0x08e4, 0x0a1f, 0x0999,
+ 0x07e8, 0x0621, 0x03fe, 0x0326, 0x04a7, 0x05cf,
+ 0x0527, 0x0477, 0x0540, 0x07a7, 0x0a94, 0x0bd7,
+ 0x0ae1, 0x09c6, 0x095b, 0x0802, 0x05b6, 0x0455,
+ 0x04a3, 0x06c1, 0x09f3, 0x0bf6, 0x0c27, 0x0bc8,
+ 0x0b1c, 0x09e1, 0x0860, 0x0757, 0x07cb, 0x098a,
+ 0x0b25, 0x0b91, 0x0a97, 0x0933, 0x08b1, 0x0912,
+ 0x09e6, 0x0ae6, 0x0b9e, 0x0bcb, 0x0b22, 0x09d3,
+ 0x08ff, 0x08ed, 0x08a6, 0x0723, 0x0474, 0x02ca,
+ 0x0346, 0x0370, 0x02ad, 0x03d7, 0x069f, 0x0792,
+ 0x05d2, 0x027c, 0xfe28, 0xfac8, 0xfb1e, 0xfe3e,
+ 0x0069, 0x0004, 0xfe36, 0xfd0f, 0xfdca, 0xfed8,
+ 0xfe87, 0xfe3a, 0xfef5, 0xff3e, 0xfe86, 0xfdc5,
+ 0xfd59, 0xfd59, 0xfe19, 0xff0f, 0xff5d, 0xff98,
+ 0x0048, 0x007e, 0x0039, 0x004f, 0x0092, 0x0178,
+ 0x0318, 0x037b, 0x02f6, 0x0408, 0x0613, 0x0753,
+ 0x07b5, 0x0738, 0x0724, 0x098b, 0x0c48, 0x0b6e,
+ 0x08a1, 0x0885, 0x0b3f, 0x0dde, 0x0f31, 0x0f0d,
+ 0x0dd5, 0x0cd9, 0x0ba8, 0x08fa, 0x0619, 0x047a,
+ 0x039b, 0x02bd, 0x0109, 0xfe92, 0xfdb3, 0xff3b,
+ 0x003f, 0xfee3, 0xfc98, 0xfacd, 0xf9e5, 0xfab2,
+ 0xfcd9, 0xfe72, 0xff97, 0x0103, 0x00c6, 0xfe95,
+ 0xfd5d, 0xfd75, 0xfd52, 0xfd68, 0xfd2f, 0xfb56,
+ 0xfa18, 0xfba5, 0xfda1, 0xfded, 0xfe6c, 0x0087,
+ 0x0267, 0x0265, 0x0122, 0x0018, 0x0083, 0x0263,
+ 0x042c, 0x04ae, 0x040f, 0x02e6, 0x01df, 0x0128,
+ 0x00aa, 0x00bf, 0x00b8, 0xff9e, 0xff48, 0x0137,
+ 0x02dd, 0x0231, 0x004f, 0xfdcf, 0xfafc, 0xf9cf,
+ 0xfb1a, 0xfd45, 0xff0a, 0x0011, 0xff9d, 0xfd3e,
+ 0xf990, 0xf59c, 0xf318, 0xf349, 0xf41f, 0xf2a7,
+ 0xf037, 0xeff6, 0xf1a0, 0xf347, 0xf470, 0xf4bc,
+ 0xf328, 0xf014, 0xed77, 0xebff, 0xea6c, 0xe8b4,
+ 0xe815, 0xe7d1, 0xe6c9, 0xe6d2, 0xe9d3, 0xee57,
+ 0xf1e4, 0xf347, 0xf236, 0xf022, 0xefb6, 0xf126,
+ 0xf268, 0xf30f, 0xf368, 0xf27e, 0xf0e7, 0xf154,
+ 0xf48b, 0xf8a1, 0xfb34, 0xfaeb, 0xf923, 0xf8c5,
+ 0xfa11, 0xfb20, 0xfb9b, 0xfbfe, 0xfc13, 0xfc41,
+ 0xfcf2, 0xfd54, 0xfd36, 0xfd73, 0xfde6, 0xfdfe,
+ 0xfe01, 0xfe3e, 0xfef2, 0x0011, 0x002d, 0xfe85,
+ 0xfd25, 0xfd86, 0xfe18, 0xfdd6, 0xfe40, 0x00b8,
+ 0x045c, 0x0609, 0x037f, 0xff58, 0xfdcd, 0xfe43,
+ 0xfdcd, 0xfc70, 0xfaf9, 0xf957, 0xf8fc, 0xfaf7,
+ 0xfdd6, 0x00d6, 0x03f1, 0x04ca, 0x0219, 0xff01,
+ 0xfe96, 0x0107, 0x0591, 0x0a12, 0x0bbc, 0x0b16,
+ 0x0ae0, 0x0ba5, 0x0ca4, 0x0daf, 0x0df0, 0x0cbc,
+ 0x0ab7, 0x083f, 0x0621, 0x06e4, 0x0ad3, 0x0e13,
+ 0x0dde, 0x0b74, 0x0974, 0x0955, 0x0a6a, 0x0aeb,
+ 0x0afd, 0x0c04, 0x0d5a, 0x0d5f, 0x0c1c, 0x0a37,
+ 0x0869, 0x07e6, 0x0843, 0x0757, 0x04f0, 0x0308,
+ 0x02ac, 0x03b7, 0x0567, 0x05f6, 0x0498, 0x0277,
+ 0x0012, 0xfd5a, 0xfbd9, 0xfc22, 0xfbf4, 0xfaad,
+ 0xfab1, 0xfc9c, 0xfe63, 0xff0f, 0xff49, 0xff54,
+ 0xfe9c, 0xfcc9, 0xfaf9, 0xfa65, 0xfa0f, 0xf8cf,
+ 0xf7cc, 0xf7c3, 0xf7c5, 0xf837, 0xfa07, 0xfbe3,
+ 0xfc8a, 0xfce6, 0xfd91, 0xfe3f, 0xffde, 0x0319,
+ 0x0614, 0x073c, 0x0772, 0x0756, 0x0690, 0x060d,
+ 0x0728, 0x0992, 0x0b93, 0x0b57, 0x08d7, 0x060c,
+ 0x0447, 0x0372, 0x0375, 0x03d0, 0x03aa, 0x02f9,
+ 0x0211, 0x0195, 0x022b, 0x02d4, 0x029c, 0x02b3,
+ 0x0335, 0x0234, 0x002d, 0xff23, 0xfe4c, 0xfc77,
+ 0xfaf8, 0xfabc, 0xfb03, 0xfc15, 0xfeb7, 0x015f,
+ 0x01aa, 0xffd1, 0xfdf7, 0xfd12, 0xfcde, 0xfd35,
+ 0xfdb6, 0xfe52, 0xffef, 0x0287, 0x050d, 0x072e,
+ 0x0859, 0x07d4, 0x06c3, 0x0601, 0x047f, 0x02c0,
+ 0x02f5, 0x050f, 0x06de, 0x0723, 0x0690, 0x05c6,
+ 0x0397, 0x0013, 0xfe33, 0xfe6e, 0xfdbd, 0xfbdb,
+ 0xfaab, 0xf9c3, 0xf913, 0xfa33, 0xfc52, 0xfd20,
+ 0xfc7e, 0xfb45, 0xf9e3, 0xf954, 0xfa2a, 0xfbb4,
+ 0xfd4e, 0xfebe, 0xff75, 0xfefc, 0xfdba, 0xfca9,
+ 0xfc2e, 0xfba1, 0xfaa7, 0xfa58, 0xfbe8, 0xfeca,
+ 0x0165, 0x0338, 0x048e, 0x0504, 0x04c2, 0x055a,
+ 0x0734, 0x089a, 0x087a, 0x07e5, 0x086e, 0x09a9,
+ 0x0967, 0x078a, 0x067c, 0x069d, 0x0600, 0x04b6,
+ 0x047f, 0x0561, 0x060a, 0x0623, 0x060a, 0x0594,
+ 0x048c, 0x0355, 0x02af, 0x0340, 0x0481, 0x0527,
+ 0x0595, 0x06de, 0x0796, 0x05c5, 0x0298, 0x00b1,
+ 0x003a, 0xff36, 0xfd45, 0xfc4a, 0xfd3f, 0xff51,
+ 0x0146, 0x02c7, 0x04ae, 0x0664, 0x0598, 0x034e,
+ 0x026e, 0x0227, 0x0197, 0x0274, 0x03e1, 0x03d6,
+ 0x03c6, 0x04e8, 0x05bb, 0x059c, 0x0562, 0x04f7,
+ 0x03fa, 0x0337, 0x02c0, 0x0151, 0xff88, 0xfecc,
+ 0xfdf0, 0xfcee, 0xfe56, 0x00f6, 0x011c, 0xffa2,
+ 0xffc4, 0x01c0, 0x0415, 0x05ee, 0x070f, 0x0816,
+ 0x09ec, 0x0bd1, 0x0c4e, 0x0b86, 0x09c9, 0x075e,
+ 0x069c, 0x0864, 0x09c4, 0x098a, 0x0935, 0x08af,
+ 0x0749, 0x05e6, 0x05fc, 0x0800, 0x0a2f, 0x0ae7,
+ 0x0b32, 0x0bdf, 0x0c3e, 0x0c44, 0x0c55, 0x0d11,
+ 0x0e99, 0x0f23, 0x0d91, 0x0b32, 0x0989, 0x092e,
+ 0x0944, 0x08ba, 0x08bf, 0x0a04, 0x0b2a, 0x0c03,
+ 0x0ca0, 0x0c0a, 0x0ad1, 0x0a59, 0x0b38, 0x0d1d,
+ 0x0dec, 0x0cbe, 0x0be4, 0x0c04, 0x0b22, 0x0949,
+ 0x0846, 0x07c8, 0x059d, 0x0263, 0x019c, 0x0315,
+ 0x03be, 0x042b, 0x0596, 0x069a, 0x077e, 0x088c,
+ 0x073e, 0x0411, 0x02f5, 0x03f9, 0x0453, 0x0434,
+ 0x0463, 0x034a, 0x013e, 0x0098, 0x0092, 0x0005,
+ 0x00af, 0x0206, 0x016e, 0xfffc, 0xffe4, 0x00b6,
+ 0x01bc, 0x02d9, 0x0355, 0x02e3, 0x0282, 0x02af,
+ 0x0216, 0x009b, 0x006a, 0x0192, 0x0248, 0x0275,
+ 0x020b, 0x012b, 0x019e, 0x030e, 0x037d, 0x036d,
+ 0x03d9, 0x04da, 0x06c8, 0x087d, 0x08e1, 0x08fb,
+ 0x08a1, 0x0702, 0x05bb, 0x05a8, 0x055f, 0x0510,
+ 0x05fb, 0x06e3, 0x0661, 0x0640, 0x07fc, 0x0970,
+ 0x08bf, 0x06bf, 0x0478, 0x02b4, 0x0219, 0x019f,
+ 0x0079, 0xffcc, 0xffdf, 0xff72, 0xfe91, 0xfeac,
+ 0x0000, 0x0161, 0x0211, 0x01eb, 0x0133, 0x00ee,
+ 0x014f, 0x0149, 0x014d, 0x0288, 0x03e6, 0x038f,
+ 0x016f, 0xff00, 0xfdcc, 0xfd51, 0xfc2a, 0xfb15,
+ 0xfaa3, 0xf9fa, 0xfa99, 0xfe21, 0x01cb, 0x0333,
+ 0x03ec, 0x04ae, 0x0438, 0x0327, 0x0314, 0x03c1,
+ 0x044e, 0x0489, 0x03e5, 0x01c6, 0xff27, 0xfd65,
+ 0xfc56, 0xfbe4, 0xfc91, 0xfd7b, 0xfe67, 0x00ba,
+ 0x0321, 0x03c1, 0x045d, 0x047b, 0x015c, 0xfdf3,
+ 0xfd79, 0xfd70, 0xfd2d, 0xfd8f, 0xfc08, 0xf911,
+ 0xf7fe, 0xf7b4, 0xf708, 0xf70d, 0xf620, 0xf3e0,
+ 0xf32f, 0xf3a1, 0xf342, 0xf2e0, 0xf284, 0xf1bf,
+ 0xf205, 0xf2d3, 0xf1e9, 0xf036, 0xefc8, 0xf002,
+ 0xf005, 0xf07e, 0xf153, 0xf149, 0xf09e, 0xf0ca,
+ 0xf172, 0xf17d, 0xf1be, 0xf24d, 0xf1f4, 0xf25c,
+ 0xf514, 0xf77b, 0xf84a, 0xf8d2, 0xf861, 0xf759,
+ 0xf7ed, 0xf8e6, 0xf90a, 0xfa16, 0xfb9c, 0xfca0,
+ 0xfe90, 0x011d, 0x0306, 0x04be, 0x04f0, 0x020d,
+ 0xfecc, 0xfdfc, 0xfec4, 0x0000, 0x0177, 0x01fb,
+ 0x00fc, 0xffab, 0xfdf0, 0xfb36, 0xfa3f, 0xfcad,
+ 0xfeea, 0xff1b, 0xff82, 0x0059, 0x00a8, 0x011d,
+ 0x0150, 0x00d8, 0x012b, 0x024e, 0x0300, 0x035d,
+ 0x0335, 0x01d2, 0x0071, 0x00a4, 0x0185, 0x0196,
+ 0x019c, 0x0300, 0x04d3, 0x0589, 0x060d, 0x07d3,
+ 0x09e5, 0x0a91, 0x09c5, 0x0892, 0x07b1, 0x06cc,
+ 0x0542, 0x0398, 0x032d, 0x04fd, 0x0889, 0x0b0c,
+ 0x0aaf, 0x0a24, 0x0bfe, 0x0e65, 0x0fe5, 0x110b,
+ 0x10ed, 0x0f5e, 0x0e2a, 0x0d7f, 0x0d4f, 0x0eb3,
+ 0x1059, 0x0ffe, 0x0e39, 0x0c3c, 0x0a74, 0x09ff,
+ 0x0b0c, 0x0be0, 0x0b79, 0x0a60, 0x08eb, 0x0735,
+ 0x0618, 0x061d, 0x0691, 0x06f3, 0x0738, 0x063d,
+ 0x02fa, 0xfea5, 0xfae9, 0xf85f, 0xf7a9, 0xf8bd,
+ 0xfa1a, 0xfaf2, 0xfb09, 0xf97c, 0xf780, 0xf76d,
+ 0xf82c, 0xf7f6, 0xf7cf, 0xf858, 0xf955, 0xfaf6,
+ 0xfc34, 0xfc86, 0xfd20, 0xfdb6, 0xfd2f, 0xfbb5,
+ 0xf9c5, 0xf91a, 0xfb35, 0xfde8, 0xff6c, 0x017e,
+ 0x04a7, 0x0747, 0x08a7, 0x0881, 0x0725, 0x0656,
+ 0x067e, 0x05c5, 0x03b4, 0x0204, 0x01a4, 0x0267,
+ 0x03f3, 0x0527, 0x0532, 0x041e, 0x01b1, 0xff14,
+ 0xfe18, 0xfd7b, 0xfc04, 0xfb4f, 0xfb52, 0xfabf,
+ 0xfa2d, 0xf9fb, 0xfa6d, 0xfc61, 0xfeb7, 0xff65,
+ 0xfe0c, 0xfbdf, 0xfa7f, 0xf956, 0xf6f4, 0xf4df,
+ 0xf45b, 0xf4cb, 0xf6c4, 0xf9a0, 0xfb46, 0xfc6e,
+ 0xfe03, 0xff31, 0x0009, 0x0077, 0xffeb, 0xfeec,
+ 0xfe19, 0xfdf6, 0xfea5, 0xff88, 0x00e0, 0x0246,
+ 0x022f, 0x0153, 0x0090, 0xfef4, 0xfd23, 0xfc26,
+ 0xfb66, 0xfb69, 0xfcce, 0xfe19, 0xfdf2, 0xfcd7,
+ 0xfc63, 0xfcf4, 0xfccb, 0xfb43, 0xf9c5, 0xf968,
+ 0xfa69, 0xfc28, 0xfd8f, 0xfea3, 0xffb8, 0x0083,
+ 0x007d, 0xff30, 0xfdbd, 0xfe02, 0xff84, 0x0071,
+ 0xffd8, 0xfe1c, 0xfd32, 0xfdd4, 0xfea2, 0xff9f,
+ 0x0155, 0x030f, 0x04b5, 0x0620, 0x06b2, 0x06c1,
+ 0x05ec, 0x03ec, 0x0248, 0x0156, 0x0097, 0x00c9,
+ 0x01c2, 0x02d7, 0x03c9, 0x0386, 0x028f, 0x029c,
+ 0x02f9, 0x02fb, 0x0379, 0x0425, 0x049e, 0x054a,
+ 0x0627, 0x070b, 0x072b, 0x0616, 0x04fd, 0x0431,
+ 0x0344, 0x0295, 0x01da, 0x0157, 0x0210, 0x02af,
+ 0x0205, 0x011a, 0x00a0, 0x018d, 0x0424, 0x05f3,
+ 0x05ec, 0x053e, 0x043a, 0x03e8, 0x0512, 0x05c5,
+ 0x056c, 0x05f7, 0x0739, 0x0725, 0x0535, 0x02b3,
+ 0x014d, 0x0173, 0x018a, 0x0009, 0xfdfd, 0xfd42,
+ 0xfdd6, 0xff30, 0x0108, 0x026d, 0x0366, 0x04e1,
+ 0x0624, 0x0646, 0x0598, 0x044a, 0x02a2, 0x010e,
+ 0xff9d, 0xfedc, 0xff48, 0x008b, 0x023a, 0x03ec,
+ 0x05f6, 0x087b, 0x09af, 0x0918, 0x08c6, 0x0903,
+ 0x0917, 0x09ca, 0x0b0c, 0x0c2b, 0x0d6e, 0x0e4d,
+ 0x0da4, 0x0bcc, 0x0a3d, 0x09f4, 0x0a97, 0x0b8f,
+ 0x0ccf, 0x0daa, 0x0d90, 0x0cdc, 0x0b60, 0x09b8,
+ 0x09c1, 0x0b1a, 0x0c35, 0x0d45, 0x0e0e, 0x0df5,
+ 0x0df5, 0x0e5f, 0x0e76, 0x0e65, 0x0e46, 0x0df6,
+ 0x0db7, 0x0ce3, 0x0b39, 0x0a52, 0x0aa3, 0x0ac1,
+ 0x0a61, 0x09eb, 0x08bf, 0x06d0, 0x056b, 0x050e,
+ 0x04fd, 0x051d, 0x05e3, 0x068b, 0x05af, 0x0386,
+ 0x01b0, 0x00d1, 0x003d, 0xff92, 0xff5e, 0x008f,
+ 0x0291, 0x02d7, 0x0102, 0xffc2, 0xff98, 0xff31,
+ 0xff1b, 0xff50, 0xfee9, 0xff34, 0x00dc, 0x01eb,
+ 0x0163, 0x0048, 0xffb1, 0xff95, 0xff2f, 0xfef9,
+ 0x000b, 0x01d5, 0x030e, 0x0317, 0x01df, 0x0022,
+ 0xfeb8, 0xfe1d, 0xfe4c, 0xfe27, 0xfd6a, 0xfd88,
+ 0xfe98, 0xfed7, 0xfdc2, 0xfd2b, 0xfeaa, 0x00a7,
+ 0x00d2, 0x0059, 0x00e6, 0x0190, 0x01bf, 0x01da,
+ 0x0166, 0x0032, 0xff71, 0xffdc, 0x0086, 0x00c1,
+ 0x0140, 0x025c, 0x03d9, 0x0561, 0x05d7, 0x0524,
+ 0x0481, 0x03a4, 0x020e, 0x004b, 0xfe2b, 0xfc15,
+ 0xfb0f, 0xfaa8, 0xfab6, 0xfb3c, 0xfb39, 0xfb4b,
+ 0xfc83, 0xfdff, 0xff59, 0x00c9, 0x01d8, 0x027f,
+ 0x02ce, 0x031d, 0x0450, 0x056f, 0x04db, 0x0374,
+ 0x0292, 0x0204, 0x018f, 0x01a5, 0x029d, 0x03cb,
+ 0x0407, 0x02fd, 0x0144, 0xffb7, 0xfebb, 0xfe1d,
+ 0xfe04, 0xff11, 0x017a, 0x0474, 0x067a, 0x0752,
+ 0x07d8, 0x0779, 0x05f8, 0x04b8, 0x03bc, 0x02c7,
+ 0x02d3, 0x02f8, 0x021e, 0x0166, 0x00b2, 0xff4b,
+ 0xfe6e, 0xfe31, 0xfd73, 0xfd1b, 0xfe19, 0xff9b,
+ 0x00bb, 0x011f, 0x00dc, 0x0038, 0xfebf, 0xfc14,
+ 0xf8e3, 0xf5c8, 0xf375, 0xf330, 0xf4d7, 0xf655,
+ 0xf636, 0xf4e6, 0xf3a6, 0xf303, 0xf21e, 0xf0e8,
+ 0xf176, 0xf412, 0xf600, 0xf66c, 0xf6bc, 0xf68a,
+ 0xf4db, 0xf2b1, 0xf195, 0xf1ee, 0xf2ec, 0xf381,
+ 0xf3e4, 0xf4b0, 0xf569, 0xf584, 0xf545, 0xf503,
+ 0xf4b4, 0xf42e, 0xf3af, 0xf3af, 0xf454, 0xf5b8,
+ 0xf796, 0xf919, 0xf9f5, 0xfa3d, 0xf9af, 0xf889,
+ 0xf781, 0xf72d, 0xf784, 0xf772, 0xf6e2, 0xf737,
+ 0xf804, 0xf806, 0xf815, 0xf8c5, 0xf942, 0xf9de,
+ 0xfb6f, 0xfd24, 0xfda8, 0xfd31, 0xfcbe, 0xfc9d,
+ 0xfd0f, 0xfde4, 0xfdde, 0xfd3c, 0xfd57, 0xfdea,
+ 0xfeca, 0x0013, 0x009c, 0x0048, 0x003e, 0x00f2,
+ 0x01f6, 0x01a0, 0xffdf, 0xff77, 0x0061, 0x00c9,
+ 0x01a5, 0x0314, 0x03f2, 0x04d3, 0x05dd, 0x0736,
+ 0x0937, 0x0a63, 0x0b13, 0x0cd1, 0x0e07, 0x0e0b,
+ 0x0e0a, 0x0d2f, 0x0b5b, 0x09b8, 0x0844, 0x077a,
+ 0x0792, 0x079b, 0x07e0, 0x08b6, 0x0993, 0x0ac8,
+ 0x0c51, 0x0d5d, 0x0dce, 0x0e22, 0x0ebb, 0x0eff,
+ 0x0e19, 0x0d2a, 0x0d56, 0x0d87, 0x0cf0, 0x0c39,
+ 0x0ba6, 0x0ad7, 0x09f5, 0x0990, 0x094b, 0x0861,
+ 0x074b, 0x0690, 0x05d6, 0x052a, 0x0472, 0x031d,
+ 0x01c1, 0x013f, 0x0127, 0x0107, 0x0101, 0x00b5,
+ 0xffc3, 0xfee2, 0xfef5, 0xff39, 0xfe42, 0xfcc9,
+ 0xfc8f, 0xfced, 0xfc5d, 0xfb67, 0xfabf, 0xfa70,
+ 0xfbaf, 0xfeac, 0x0148, 0x02be, 0x0386, 0x0348,
+ 0x02af, 0x02b5, 0x025d, 0x014f, 0x00d5, 0x014b,
+ 0x0244, 0x0375, 0x040c, 0x037d, 0x0298, 0x0262,
+ 0x0291, 0x026a, 0x0271, 0x0315, 0x033e, 0x0263,
+ 0x0176, 0x00f4, 0x0074, 0xff8c, 0xfe62, 0xfe08,
+ 0xfeda, 0xff92, 0xff9b, 0xffad, 0xffd3, 0xfffc,
+ 0x008e, 0x0072, 0xfe2d, 0xfb06, 0xf98e, 0xfa2a,
+ 0xfb5f, 0xfc63, 0xfda1, 0xff10, 0x0010, 0x0061,
+ 0xff8d, 0xfdc4, 0xfd0e, 0xfe5a, 0x0016, 0x0157,
+ 0x0242, 0x02e7, 0x03f4, 0x0569, 0x05a1, 0x041a,
+ 0x0291, 0x0241, 0x0279, 0x0266, 0x0236, 0x0200,
+ 0x01cf, 0x01e6, 0x01c7, 0x0147, 0x014c, 0x0172,
+ 0x007a, 0xfe99, 0xfcb9, 0xfbac, 0xfb8d, 0xfb25,
+ 0xfa4d, 0xfa71, 0xfb86, 0xfc7a, 0xfd29, 0xfd5d,
+ 0xfce4, 0xfc71, 0xfc9f, 0xfd5f, 0xfe59, 0xfee4,
+ 0xfe67, 0xfd87, 0xfdc7, 0xfefd, 0xff63, 0xfed2,
+ 0xfec4, 0xff9b, 0x00a7, 0x016b, 0x01cb, 0x0222,
+ 0x02b8, 0x0363, 0x03d9, 0x035c, 0x01ab, 0x0069,
+ 0x00bf, 0x015e, 0x0110, 0x003b, 0xff65, 0xfeba,
+ 0xfe4c, 0xfe11, 0xfe16, 0xfe42, 0xff0d, 0x019a,
+ 0x0514, 0x06f3, 0x06b3, 0x05dc, 0x05b6, 0x0654,
+ 0x06c9, 0x06d7, 0x06cc, 0x05e3, 0x0432, 0x0323,
+ 0x0292, 0x0227, 0x02a7, 0x035e, 0x0314, 0x0258,
+ 0x01e3, 0x0188, 0x0128, 0x0102, 0x0171, 0x0275,
+ 0x0373, 0x0367, 0x024a, 0x01d3, 0x0299, 0x033d,
+ 0x03c0, 0x04a8, 0x04ee, 0x0471, 0x03fc, 0x037c,
+ 0x02fb, 0x02b3, 0x029d, 0x02c5, 0x02d5, 0x02d4,
+ 0x0317, 0x02f3, 0x0226, 0x016d, 0x0125, 0x0160,
+ 0x018d, 0x013a, 0x01c2, 0x037a, 0x049b, 0x04b9,
+ 0x0474, 0x03d0, 0x0305, 0x021c, 0x00e7, 0xffca,
+ 0xff33, 0xffc3, 0x01b5, 0x0392, 0x0407, 0x03b8,
+ 0x03fe, 0x057e, 0x07ef, 0x0a8e, 0x0c5e, 0x0ca3,
+ 0x0bf8, 0x0b98, 0x0bc6, 0x0c2f, 0x0c51, 0x0be2,
+ 0x0baa, 0x0c2e, 0x0c64, 0x0ba3, 0x0adf, 0x0b03,
+ 0x0bdf, 0x0d1b, 0x0eb4, 0x102e, 0x1110, 0x11c5,
+ 0x12c1, 0x13e2, 0x14ba, 0x14d5, 0x1443, 0x1312,
+ 0x10f7, 0x0e92, 0x0c8c, 0x0a79, 0x08a5, 0x0787,
+ 0x067a, 0x05c3, 0x0600, 0x063e, 0x0660, 0x0776,
+ 0x08b3, 0x0898, 0x07c6, 0x0746, 0x068f, 0x0560,
+ 0x048f, 0x041e, 0x03be, 0x03eb, 0x03e9, 0x0295,
+ 0x018a, 0x0265, 0x038e, 0x038a, 0x02e8, 0x01f3,
+ 0x00c0, 0x0000, 0xffbc, 0xffff, 0x01b3, 0x0481,
+ 0x0666, 0x06bf, 0x06ed, 0x07aa, 0x081d, 0x078a,
+ 0x0674, 0x05f1, 0x0688, 0x0771, 0x0787, 0x070e,
+ 0x06bc, 0x068d, 0x06f4, 0x07e0, 0x07be, 0x0695,
+ 0x05a2, 0x0478, 0x034b, 0x034d, 0x03be, 0x03e7,
+ 0x0486, 0x0583, 0x061b, 0x05bd, 0x04b1, 0x048b,
+ 0x0527, 0x048a, 0x0338, 0x02db, 0x0305, 0x02da,
+ 0x01c1, 0xff9b, 0xfe33, 0xfea8, 0xff47, 0xfeea,
+ 0xfe80, 0xfe96, 0xfed8, 0xff05, 0xff34, 0x0026,
+ 0x024c, 0x0464, 0x0533, 0x054e, 0x054e, 0x0495,
+ 0x02cb, 0x00ab, 0xff23, 0xfe8e, 0xfefc, 0x0049,
+ 0x0174, 0x01b8, 0x0204, 0x02e1, 0x0380, 0x0408,
+ 0x04f5, 0x055f, 0x04c3, 0x03fd, 0x03f5, 0x04ba,
+ 0x0563, 0x0536, 0x04c2, 0x049c, 0x0459, 0x0373,
+ 0x01c5, 0xff9c, 0xfdfd, 0xfdf6, 0xff5a, 0x00d1,
+ 0x0137, 0x00a5, 0xffd5, 0xfefa, 0xfe1c, 0xfdfe,
+ 0xff79, 0x021a, 0x0407, 0x03c7, 0x024f, 0x01ba,
+ 0x0206, 0x01b5, 0x00bb, 0x0000, 0xff88, 0xfefb,
+ 0xfe5e, 0xfd83, 0xfc45, 0xfb7e, 0xfb44, 0xfa08,
+ 0xf86c, 0xf8a4, 0xf9c3, 0xfa9c, 0xfc44, 0xfd94,
+ 0xfd07, 0xfc9b, 0xfcaf, 0xfb25, 0xf896, 0xf6ab,
+ 0xf51c, 0xf3c4, 0xf323, 0xf327, 0xf3cf, 0xf575,
+ 0xf797, 0xf8f1, 0xf920, 0xf8bb, 0xf839, 0xf7d0,
+ 0xf764, 0xf70a, 0xf764, 0xf83e, 0xf929, 0xfa53,
+ 0xfad2, 0xfa1b, 0xf9a6, 0xf9a7, 0xf901, 0xf7e7,
+ 0xf6ca, 0xf5c8, 0xf4d3, 0xf387, 0xf330, 0xf549,
+ 0xf83f, 0xfa24, 0xfabf, 0xfa2f, 0xf95a, 0xf901,
+ 0xf83d, 0xf6f0, 0xf683, 0xf735, 0xf82d, 0xf96b,
+ 0xfb14, 0xfc61, 0xfd20, 0xfe00, 0xfec6, 0xfef4,
+ 0xfee2, 0xfe92, 0xfdc7, 0xfce6, 0xfc76, 0xfcfe,
+ 0xfe68, 0xff7c, 0xff85, 0xff3a, 0xff9c, 0x00bc,
+ 0x01c2, 0x026f, 0x0389, 0x0572, 0x077d, 0x084e,
+ 0x076f, 0x064f, 0x05b0, 0x050a, 0x04eb, 0x0571,
+ 0x0515, 0x03d6, 0x0348, 0x03b0, 0x0462, 0x053f,
+ 0x06b9, 0x091a, 0x0bd1, 0x0dc5, 0x0e8d, 0x0edc,
+ 0x0f31, 0x0eb2, 0x0cda, 0x0afb, 0x0a40, 0x09d8,
+ 0x08c9, 0x07b6, 0x073f, 0x0697, 0x055c, 0x04ae,
+ 0x0583, 0x0786, 0x0935, 0x0932, 0x07b8, 0x05ac,
+ 0x0381, 0x01e2, 0x018d, 0x029e, 0x046c, 0x060e,
+ 0x0730, 0x0745, 0x0589, 0x0290, 0xff35, 0xfc29,
+ 0xfa91, 0xf9e2, 0xf954, 0xfa40, 0xfc19, 0xfc81,
+ 0xfbbc, 0xfaf6, 0xfa6f, 0xfa38, 0xf9b7, 0xf908,
+ 0xf8f2, 0xf913, 0xf9da, 0xfc34, 0xfef5, 0x0094,
+ 0x00ad, 0xffd9, 0xff14, 0xfe04, 0xfcc9, 0xfd07,
+ 0xfe2e, 0xfe8f, 0xfe73, 0xfe6a, 0xfee9, 0x003d,
+ 0x0173, 0x022e, 0x02da, 0x0362, 0x03ef, 0x043e,
+ 0x039c, 0x02ba, 0x0277, 0x02bf, 0x032f, 0x02d9,
+ 0x01a7, 0x0113, 0x0186, 0x01f2, 0x01b7, 0x010b,
+ 0x0085, 0x0081, 0x0087, 0x0002, 0xff71, 0xffb4,
+ 0x0084, 0x0144, 0x020d, 0x0274, 0x01dc, 0x010a,
+ 0x00f3, 0x0176, 0x01d5, 0x0165, 0x008e, 0x00a3,
+ 0x0247, 0x0479, 0x052c, 0x03f1, 0x02b7, 0x0280,
+ 0x025f, 0x01bf, 0x00bd, 0xff70, 0xfe01, 0xfcd4,
+ 0xfc66, 0xfce8, 0xfe3c, 0x002b, 0x020e, 0x035d,
+ 0x0429, 0x0471, 0x0435, 0x0371, 0x01f8, 0x004f,
+ 0xff71, 0xff95, 0xffbc, 0xff00, 0xfe70, 0xfee3,
+ 0xff07, 0xfeb5, 0xfebd, 0xfe44, 0xfd9d, 0xfe24,
+ 0xff1a, 0xffc4, 0x003f, 0x003c, 0x0049, 0x00fc,
+ 0x01c4, 0x0274, 0x0313, 0x03a0, 0x040e, 0x0388,
+ 0x023c, 0x01cb, 0x02ce, 0x0446, 0x04a5, 0x03b4,
+ 0x02bc, 0x016d, 0xff01, 0xfce9, 0xfba9, 0xfa91,
+ 0xfa71, 0xfb9c, 0xfd3c, 0xfef8, 0x0041, 0x00bf,
+ 0x011f, 0x01b8, 0x020f, 0x01af, 0x00d0, 0x0014,
+ 0xffb6, 0xffda, 0x004c, 0xffe8, 0xfe8d, 0xfdcc,
+ 0xfe64, 0xff46, 0xff3d, 0xfea0, 0xfe7c, 0xfeed,
+ 0xffd9, 0x0131, 0x0246, 0x02e7, 0x0341, 0x0332,
+ 0x035e, 0x0438, 0x04fa, 0x0513, 0x0460, 0x02ec,
+ 0x010c, 0xff1c, 0xfe72, 0x003b, 0x02c8, 0x0405,
+ 0x0404, 0x0342, 0x01c9, 0x0014, 0xff4b, 0xfffc,
+ 0x0131, 0x022e, 0x02ca, 0x0258, 0x0183, 0x017a,
+ 0x0180, 0x0162, 0x0194, 0x0101, 0xff85, 0xfdfe,
+ 0xfc89, 0xfc1c, 0xfcae, 0xfc5f, 0xfc18, 0xfd76,
+ 0xfe8b, 0xfe53, 0xfe70, 0xff14, 0xff71, 0xff90,
+ 0xffa9, 0x007c, 0x0223, 0x02de, 0x0234, 0x01e0,
+ 0x0268, 0x0312, 0x03c3, 0x0436, 0x03fe, 0x037a,
+ 0x0351, 0x03f6, 0x059d, 0x081f, 0x0ade, 0x0cef,
+ 0x0e27, 0x0ee9, 0x0ef4, 0x0e42, 0x0d2b, 0x0bab,
+ 0x0a89, 0x0a3e, 0x09da, 0x098c, 0x09d2, 0x09ce,
+ 0x09fb, 0x0b05, 0x0bb5, 0x0bdb, 0x0c35, 0x0c77,
+ 0x0c70, 0x0bd1, 0x0ac3, 0x0ab5, 0x0b6a, 0x0ba0,
+ 0x0bcb, 0x0bd6, 0x0aee, 0x0a35, 0x0aeb, 0x0c0f,
+ 0x0c32, 0x0bdc, 0x0c34, 0x0c5c, 0x0b65, 0x0a37,
+ 0x08d9, 0x06d8, 0x0579, 0x0520, 0x04a3, 0x03ea,
+ 0x0339, 0x024b, 0x016a, 0x0123, 0x017b, 0x0212,
+ 0x02c0, 0x03da, 0x0512, 0x0543, 0x044f, 0x0357,
+ 0x02fd, 0x02a6, 0x019f, 0x0094, 0x00a3, 0x016b,
+ 0x021a, 0x0315, 0x04f8, 0x0778, 0x09ae, 0x0a6b,
+ 0x093f, 0x0779, 0x0670, 0x0606, 0x05ea, 0x060a,
+ 0x05e7, 0x054f, 0x0459, 0x029c, 0x0079, 0xff43,
+ 0xfeff, 0xfea5, 0xfe43, 0xfe9b, 0xff93, 0x009a,
+ 0x0182, 0x021d, 0x0256, 0x02c5, 0x03bc, 0x0490,
+ 0x04c5, 0x04c7, 0x04f4, 0x050f, 0x04e0, 0x048c,
+ 0x0420, 0x037e, 0x02c3, 0x024d, 0x0238, 0x024d,
+ 0x02b8, 0x0402, 0x058f, 0x060f, 0x0596, 0x04a2,
+ 0x0313, 0x01b6, 0x0190, 0x01d9, 0x013b, 0xff76,
+ 0xfd33, 0xfb8e, 0xfb74, 0xfcfc, 0xff14, 0x0088,
+ 0x0197, 0x02bc, 0x0345, 0x02dc, 0x0212, 0x014c,
+ 0x00d0, 0x00bf, 0x0107, 0x0193, 0x01d9, 0x0179,
+ 0x012b, 0x01ad, 0x0274, 0x0224, 0x0087, 0xfeea,
+ 0xfe06, 0xfe0d, 0xff73, 0x012a, 0x016b, 0x0056,
+ 0xff62, 0xffcf, 0x0142, 0x01cf, 0x0130, 0x00e8,
+ 0x0142, 0x01e8, 0x02c1, 0x0360, 0x03a8, 0x038d,
+ 0x02bd, 0x015b, 0xffb8, 0xfe7b, 0xfe04, 0xfd65,
+ 0xfc74, 0xfc09, 0xfc08, 0xfc7d, 0xfd54, 0xfd4e,
+ 0xfc3d, 0xfac0, 0xf8fd, 0xf7a7, 0xf6e9, 0xf636,
+ 0xf5e5, 0xf5c0, 0xf502, 0xf3fc, 0xf2fc, 0xf232,
+ 0xf1ed, 0xf1a6, 0xf15b, 0xf19f, 0xf239, 0xf335,
+ 0xf483, 0xf510, 0xf4cd, 0xf4b7, 0xf519, 0xf5a6,
+ 0xf5fe, 0xf615, 0xf637, 0xf667, 0xf61b, 0xf4b7,
+ 0xf323, 0xf32d, 0xf465, 0xf58c, 0xf6d4, 0xf7ed,
+ 0xf8b7, 0xf9e3, 0xfa41, 0xf930, 0xf866, 0xf7e7,
+ 0xf6d8, 0xf60b, 0xf5fd, 0xf65b, 0xf683, 0xf5e7,
+ 0xf57e, 0xf632, 0xf7b9, 0xf9dc, 0xfb8d, 0xfbd9,
+ 0xfc26, 0xfd6d, 0xfed7, 0x001d, 0x017c, 0x0279,
+ 0x0221, 0x00d5, 0x0078, 0x00e5, 0x00a8, 0x0093,
+ 0x0119, 0x012b, 0x013e, 0x01dc, 0x02b1, 0x03d0,
+ 0x04d3, 0x0590, 0x05fb, 0x0511, 0x0359, 0x021e,
+ 0x011d, 0x00df, 0x01cb, 0x02f4, 0x04d6, 0x0721,
+ 0x081d, 0x08dd, 0x0a97, 0x0c2f, 0x0d31, 0x0da2,
+ 0x0d8e, 0x0d94, 0x0d82, 0x0d2c, 0x0cac, 0x0b66,
+ 0x0a25, 0x0a33, 0x0acc, 0x0b3a, 0x0bb2, 0x0c4d,
+ 0x0ccc, 0x0c56, 0x0b2d, 0x0a9f, 0x0a79, 0x0a43,
+ 0x09d9, 0x0870, 0x06c0, 0x0622, 0x05fa, 0x059d,
+ 0x0504, 0x0400, 0x0292, 0x0098, 0xfee2, 0xfeb5,
+ 0xff41, 0xff92, 0x0000, 0x0037, 0x0009, 0x0015,
+ 0x00b4, 0x01bb, 0x020e, 0x018a, 0x0189, 0x0190,
+ 0x007b, 0xfebb, 0xfcfd, 0xfc54, 0xfcd2, 0xfcc5,
+ 0xfc4e, 0xfc18, 0xfb6d, 0xfaf0, 0xfb07, 0xfae6,
+ 0xfb63, 0xfceb, 0xfe9f, 0x001c, 0x00a2, 0x0065,
+ 0x003f, 0xff7b, 0xfea3, 0xfec8, 0xfead, 0xfe66,
+ 0xfeb3, 0xfe66, 0xfe18, 0xfee1, 0xff6c, 0xffa0,
+ 0x0036, 0x006f, 0x0099, 0x01ad, 0x02dd, 0x0325,
+ 0x02bc, 0x021e, 0x017a, 0x011f, 0x00f8, 0x006a,
+ 0x002b, 0x017c, 0x0388, 0x04fc, 0x05ad, 0x05c8,
+ 0x0604, 0x0696, 0x06ab, 0x0669, 0x0631, 0x0582,
+ 0x0472, 0x031b, 0x017f, 0x00be, 0x0108, 0x00f4,
+ 0x002d, 0xff60, 0xfec4, 0xfe62, 0xfdeb, 0xfcff,
+ 0xfc76, 0xfd32, 0xfdff, 0xfd95, 0xfce4, 0xfc7d,
+ 0xfb4f, 0xf975, 0xf837, 0xf804, 0xf88f, 0xf947,
+ 0xf9f1, 0xfad8, 0xfbbb, 0xfc17, 0xfbf6, 0xfb8b,
+ 0xfaf7, 0xfa37, 0xf99d, 0xf9e8, 0xfaa3, 0xfad4,
+ 0xfae8, 0xfb5c, 0xfc4a, 0xfe49, 0x009b, 0x01b5,
+ 0x01e2, 0x0208, 0x0224, 0x0267, 0x02fb, 0x0345,
+ 0x0322, 0x0357, 0x0437, 0x057a, 0x0705, 0x0848,
+ 0x0865, 0x0770, 0x05f1, 0x047e, 0x03c1, 0x030a,
+ 0x015c, 0xffea, 0x0006, 0x00ba, 0x00ca, 0x00a3,
+ 0x0104, 0x018e, 0x01c8, 0x0212, 0x0261, 0x021c,
+ 0x0154, 0x0049, 0xff16, 0xfe11, 0xfdad, 0xfe36,
+ 0xff05, 0xff45, 0xfff9, 0x018b, 0x020d, 0x0115,
+ 0x001f, 0xff64, 0xfef9, 0xff70, 0x005c, 0x0141,
+ 0x01f6, 0x0239, 0x0267, 0x02bf, 0x02b5, 0x024d,
+ 0x020f, 0x01b6, 0x00ab, 0xff36, 0xfe45, 0xfe50,
+ 0xfeec, 0xff77, 0xffa6, 0xffb1, 0x003a, 0x019a,
+ 0x0321, 0x03cd, 0x03b5, 0x037d, 0x02f5, 0x0203,
+ 0x0139, 0x00a0, 0x0039, 0x00aa, 0x01c4, 0x02de,
+ 0x0433, 0x0583, 0x05b9, 0x0494, 0x02e0, 0x01be,
+ 0x01d6, 0x02a5, 0x03a1, 0x0507, 0x06b1, 0x07d5,
+ 0x07b8, 0x061d, 0x0422, 0x0357, 0x03c0, 0x043e,
+ 0x0407, 0x0334, 0x02e6, 0x03d3, 0x0538, 0x0681,
+ 0x07a6, 0x083a, 0x084a, 0x08c4, 0x09fd, 0x0b55,
+ 0x0c31, 0x0caa, 0x0ce1, 0x0c81, 0x0be4, 0x0bf2,
+ 0x0c38, 0x0ba2, 0x0ac2, 0x0ae4, 0x0bbb, 0x0c0f,
+ 0x0bed, 0x0bfa, 0x0c03, 0x0bdf, 0x0bd5, 0x0bca,
+ 0x0bb6, 0x0bba, 0x0bf4, 0x0ca5, 0x0d26, 0x0ca4,
+ 0x0c02, 0x0bf0, 0x0b89, 0x0a79, 0x0941, 0x0837,
+ 0x07f7, 0x08e2, 0x0a9e, 0x0ca6, 0x0e6b, 0x0f35,
+ 0x0ea1, 0x0d0e, 0x0b28, 0x094b, 0x07f6, 0x0774,
+ 0x06f4, 0x0614, 0x05c8, 0x065c, 0x06cf, 0x0665,
+ 0x0565, 0x042a, 0x02a1, 0x015a, 0x0190, 0x034b,
+ 0x0536, 0x061f, 0x05d5, 0x0526, 0x04b3, 0x0453,
+ 0x0400, 0x03d5, 0x039d, 0x0340, 0x031b, 0x03bb,
+ 0x04c9, 0x0542, 0x055a, 0x058a, 0x0515, 0x0430,
+ 0x03ec, 0x03d3, 0x0328, 0x0263, 0x01e9, 0x0181,
+ 0x00fb, 0x0090, 0x0091, 0x00ea, 0x0153, 0x01af,
+ 0x021f, 0x0294, 0x028f, 0x022d, 0x01fe, 0x01a7,
+ 0x0120, 0x018e, 0x02f9, 0x0413, 0x0472, 0x04dd,
+ 0x05b4, 0x0658, 0x0662, 0x060c, 0x0592, 0x0539,
+ 0x04fb, 0x048f, 0x045c, 0x0499, 0x04fb, 0x05de,
+ 0x0722, 0x07d8, 0x07df, 0x0762, 0x0650, 0x04d0,
+ 0x0329, 0x0234, 0x021b, 0x0195, 0x00b3, 0x00b8,
+ 0x018e, 0x0252, 0x025e, 0x01dd, 0x0195, 0x0186,
+ 0x0218, 0x03de, 0x058c, 0x06a4, 0x07df, 0x07d7,
+ 0x05c1, 0x0386, 0x024d, 0x0204, 0x028b, 0x0390,
+ 0x04d5, 0x0568, 0x0486, 0x0336, 0x022d, 0x00f0,
+ 0xff87, 0xfe9d, 0xfed7, 0x000d, 0x015b, 0x0276,
+ 0x034a, 0x03ae, 0x041a, 0x04aa, 0x04d3, 0x049f,
+ 0x046f, 0x0453, 0x0404, 0x0352, 0x0250, 0x00c3,
+ 0xfeff, 0xfe16, 0xfdd2, 0xfd92, 0xfdae, 0xfdd4,
+ 0xfd34, 0xfbcf, 0xfa61, 0xf9d6, 0xf991, 0xf880,
+ 0xf804, 0xf914, 0xfa0b, 0xfa20, 0xf9d7, 0xf939,
+ 0xf86a, 0xf7a3, 0xf6c3, 0xf5b2, 0xf4c7, 0xf49c,
+ 0xf4dd, 0xf4ff, 0xf588, 0xf656, 0xf6b6, 0xf6df,
+ 0xf6a5, 0xf5f6, 0xf580, 0xf4e2, 0xf3f8, 0xf3bb,
+ 0xf3cc, 0xf3a8, 0xf42d, 0xf563, 0xf61d, 0xf5de,
+ 0xf53d, 0xf476, 0xf2f2, 0xf123, 0xf02f, 0xeff3,
+ 0xf04b, 0xf133, 0xf192, 0xf189, 0xf248, 0xf345,
+ 0xf3fc, 0xf518, 0xf644, 0xf69a, 0xf633, 0xf5d7,
+ 0xf63f, 0xf755, 0xf887, 0xfa00, 0xfc09, 0xfe1d,
+ 0xffa9, 0x007a, 0x008b, 0x0022, 0xff62, 0xfe5b,
+ 0xfdfc, 0xfed6, 0xffdc, 0x008d, 0x0169, 0x0201,
+ 0x024d, 0x0345, 0x04b8, 0x05d0, 0x063b, 0x05e2,
+ 0x0523, 0x0431, 0x0373, 0x03fe, 0x0509, 0x0507,
+ 0x04ea, 0x0578, 0x0639, 0x07c7, 0x09cd, 0x0aaf,
+ 0x0a86, 0x0a11, 0x09ca, 0x0a87, 0x0c30, 0x0e14,
+ 0x0f88, 0x0f48, 0x0d6d, 0x0bc7, 0x0ae8, 0x0a58,
+ 0x09c4, 0x0876, 0x0697, 0x057b, 0x0555, 0x0555,
+ 0x0577, 0x05f0, 0x0649, 0x0637, 0x05fb, 0x0554,
+ 0x03a5, 0x0151, 0xff9d, 0xff66, 0x0024, 0x006c,
+ 0x0011, 0x001d, 0x0076, 0x0063, 0x0082, 0x0136,
+ 0x01a1, 0x017b, 0x0133, 0x00f2, 0x00b2, 0x003e,
+ 0xff9b, 0xff3f, 0xff06, 0xfea4, 0xfe55, 0xfde9,
+ 0xfd91, 0xfe58, 0xfffa, 0x015a, 0x0253, 0x02d1,
+ 0x02a9, 0x021a, 0x0160, 0x011f, 0x01dd, 0x02f0,
+ 0x0394, 0x038c, 0x02d5, 0x01a7, 0xffe7, 0xfe02,
+ 0xfd91, 0xfec8, 0x0047, 0x0184, 0x026d, 0x02f7,
+ 0x037f, 0x03d7, 0x0380, 0x02cd, 0x0249, 0x01ff,
+ 0x01ad, 0x0153, 0x016e, 0x0235, 0x0336, 0x03ca,
+ 0x0374, 0x0245, 0x00f9, 0x002e, 0xffda, 0xff99,
+ 0xff51, 0xfefd, 0xfead, 0xfefe, 0x001d, 0x0162,
+ 0x02b9, 0x0435, 0x0508, 0x04b6, 0x0392, 0x025e,
+ 0x0192, 0x00b8, 0xffae, 0xfef5, 0xfe68, 0xfe54,
+ 0xfefd, 0xff13, 0xfe2a, 0xfd22, 0xfbc8, 0xfa58,
+ 0xf9c8, 0xf9c9, 0xf9ec, 0xfa64, 0xfb1a, 0xfc1a,
+ 0xfd3a, 0xfddc, 0xfdde, 0xfd93, 0xfd4e, 0xfd08,
+ 0xfc84, 0xfc07, 0xfbae, 0xfb39, 0xfacd, 0xfa92,
+ 0xfacb, 0xfbc0, 0xfcd4, 0xfdaa, 0xfe8a, 0xff39,
+ 0xffec, 0x00e9, 0x019d, 0x022a, 0x0287, 0x01d1,
+ 0x00a8, 0xffd4, 0xfecd, 0xfde0, 0xfd55, 0xfcc7,
+ 0xfce3, 0xfe13, 0xff81, 0x00af, 0x018a, 0x0217,
+ 0x026a, 0x0264, 0x0252, 0x02a7, 0x0322, 0x0355,
+ 0x0308, 0x0239, 0x0113, 0xffae, 0xfe5e, 0xfd83,
+ 0xfd40, 0xfdd3, 0xfed4, 0xff7a, 0xfff9, 0x00aa,
+ 0x0194, 0x02aa, 0x032e, 0x0302, 0x02fd, 0x02dc,
+ 0x022e, 0x016d, 0x00da, 0x00e9, 0x01bf, 0x0269,
+ 0x0290, 0x021a, 0x008d, 0xfeb9, 0xfd89, 0xfcf8,
+ 0xfd77, 0xfedc, 0xffac, 0xff57, 0xfe9a, 0xfe68,
+ 0xff28, 0x0023, 0x007a, 0x0028, 0xffc5, 0xffdd,
+ 0x0028, 0x0029, 0x0053, 0x013c, 0x02ee, 0x052d,
+ 0x070f, 0x075c, 0x0608, 0x0435, 0x02c5, 0x01a3,
+ 0x00ab, 0x0019, 0xffd9, 0xffa7, 0xff2f, 0xfe56,
+ 0xfe2a, 0xff70, 0x0140, 0x02db, 0x0443, 0x0548,
+ 0x05f0, 0x0662, 0x06c2, 0x0758, 0x07be, 0x07eb,
+ 0x08b0, 0x09a0, 0x0a13, 0x0a99, 0x0ab5, 0x0971,
+ 0x07c0, 0x06d2, 0x0682, 0x063a, 0x05c0, 0x05ce,
+ 0x0738, 0x0999, 0x0beb, 0x0d91, 0x0e99, 0x0f52,
+ 0x0f75, 0x0efe, 0x0ec4, 0x0e94, 0x0d8c, 0x0cad,
+ 0x0d19, 0x0dac, 0x0d99, 0x0dbe, 0x0e02, 0x0da4,
+ 0x0d23, 0x0cef, 0x0ccb, 0x0cc1, 0x0c7a, 0x0b97,
+ 0x0ab9, 0x0a4e, 0x0a78, 0x0bb5, 0x0d5b, 0x0dba,
+ 0x0c78, 0x0ab2, 0x0979, 0x08d5, 0x0837, 0x07c8,
+ 0x07ec, 0x0832, 0x0871, 0x0914, 0x09f9, 0x0a4b,
+ 0x092e, 0x06f1, 0x04cd, 0x02fb, 0x0159, 0x0096,
+ 0x0062, 0xffe7, 0xffcf, 0x0093, 0x0167, 0x01f4,
+ 0x0290, 0x039e, 0x0541, 0x06cb, 0x07ab, 0x0849,
+ 0x08cf, 0x089b, 0x07ae, 0x0757, 0x0828, 0x0863,
+ 0x070b, 0x05af, 0x0505, 0x0412, 0x028c, 0x00ed,
+ 0x0028, 0x00e9, 0x0239, 0x0375, 0x04f2, 0x05f4,
+ 0x05fb, 0x058c, 0x047d, 0x0311, 0x0229, 0x018c,
+ 0x00d0, 0xffe6, 0xfee6, 0xfec5, 0xffb0, 0x0029,
+ 0xff8b, 0xfe9a, 0xfe49, 0xfeb5, 0xff1d, 0xff89,
+ 0x0064, 0x00f3, 0x0115, 0x0194, 0x01e3, 0x01b2,
+ 0x0218, 0x02ca, 0x0246, 0x00af, 0xff6e, 0xff01,
+ 0xfeeb, 0xfec9, 0xfeb9, 0xff12, 0xff98, 0xff71,
+ 0xfec3, 0xfe95, 0xfee7, 0xff30, 0xff72, 0xff9e,
+ 0xff9f, 0xff79, 0xff51, 0xffa7, 0x003b, 0x003f,
+ 0x001d, 0x00b7, 0x01f6, 0x034d, 0x044b, 0x051d,
+ 0x05ca, 0x059a, 0x04e7, 0x049b, 0x0459, 0x0412,
+ 0x0425, 0x040e, 0x03be, 0x0357, 0x0227, 0x0064,
+ 0xff40, 0xff44, 0x0022, 0x014d, 0x02bf, 0x0477,
+ 0x0598, 0x05ee, 0x0617, 0x05c7, 0x0493, 0x0310,
+ 0x0193, 0xffa9, 0xfd74, 0xfc4e, 0xfcbe, 0xfdd5,
+ 0xff45, 0x00b8, 0x00fa, 0x0063, 0x0024, 0xffd2,
+ 0xfefc, 0xfe38, 0xfe04, 0xfe60, 0xfe8d, 0xfdf1,
+ 0xfcd0, 0xfb48, 0xf99a, 0xf844, 0xf723, 0xf640,
+ 0xf5d6, 0xf5a9, 0xf5ee, 0xf6c2, 0xf78b, 0xf857,
+ 0xf967, 0xfa28, 0xfa14, 0xf967, 0xf8ea, 0xf8e1,
+ 0xf87d, 0xf769, 0xf646, 0xf56f, 0xf4cc, 0xf453,
+ 0xf441, 0xf45b, 0xf3f5, 0xf3ce, 0xf4d4, 0xf5ee,
+ 0xf692, 0xf755, 0xf797, 0xf736, 0xf70f, 0xf6e8,
+ 0xf6a5, 0xf6ca, 0xf71f, 0xf750, 0xf70f, 0xf651,
+ 0xf60f, 0xf653, 0xf61d, 0xf60d, 0xf76e, 0xfa1e,
+ 0xfd1a, 0xff51, 0x000f, 0xff4d, 0xfd58, 0xfafa,
+ 0xf91c, 0xf81f, 0xf852, 0xf9b8, 0xfb65, 0xfccf,
+ 0xfe9b, 0x00d3, 0x0244, 0x023a, 0x015a, 0x00a9,
+ 0x00b4, 0x0157, 0x01ea, 0x01c6, 0x0116, 0x00e2,
+ 0x012c, 0x00b8, 0x000a, 0x00d8, 0x02b1, 0x045e,
+ 0x0602, 0x077e, 0x0839, 0x084a, 0x0831, 0x0875,
+ 0x0920, 0x09a5, 0x09b5, 0x092f, 0x0877, 0x086a,
+ 0x08be, 0x08e5, 0x095b, 0x09ac, 0x090b, 0x0863,
+ 0x0846, 0x080d, 0x07a3, 0x0719, 0x065b, 0x05cd,
+ 0x05a9, 0x05da, 0x05f9, 0x054b, 0x041a, 0x033f,
+ 0x0276, 0x017e, 0x00c3, 0x0035, 0xfffd, 0x009e,
+ 0x01a4, 0x023b, 0x0208, 0x00db, 0xff3d, 0xfe4f,
+ 0xfe5a, 0xfed8, 0xff90, 0x00b3, 0x0200, 0x0289,
+ 0x0216, 0x0164, 0x00bf, 0x0037, 0x0000, 0xffbf,
+ 0xff5d, 0xff8b, 0x0030, 0x0072, 0xffed, 0xfebd,
+ 0xfd7e, 0xfcd8, 0xfcc3, 0xfcf0, 0xfd46, 0xfdf3,
+ 0xfeeb, 0xff1f, 0xfdfa, 0xfcb6, 0xfc32, 0xfc47,
+ 0xfd55, 0xff2f, 0x00c0, 0x01ea, 0x028b, 0x01be,
+ 0x003e, 0xffc8, 0x0056, 0x00fc, 0x0144, 0x00e6,
+ 0x0007, 0xff27, 0xfe9f, 0xfede, 0xffc5, 0x00dd,
+ 0x028c, 0x04aa, 0x05c3, 0x056f, 0x046b, 0x0311,
+ 0x0212, 0x0220, 0x0299, 0x02b8, 0x02e9, 0x0388,
+ 0x03db, 0x0361, 0x02eb, 0x02ed, 0x027b, 0x0116,
+ 0xff82, 0xfea3, 0xfeb6, 0xff69, 0x0040, 0x0081,
+ 0xffd2, 0xff06, 0xfe70, 0xfd48, 0xfbfa, 0xfb65,
+ 0xfb09, 0xfacc, 0xfb1b, 0xfb7c, 0xfb94, 0xfb98,
+ 0xfba3, 0xfbb7, 0xfbd4, 0xfc32, 0xfc7c, 0xfbc3,
+ 0xfaa0, 0xfa59, 0xfac9, 0xfbea, 0xfd99, 0xfe66,
+ 0xfe17, 0xfdcb, 0xfdb0, 0xfd78, 0xfcef, 0xfc51,
+ 0xfc8a, 0xfd8f, 0xfee7, 0x0119, 0x0397, 0x04b5,
+ 0x049a, 0x0496, 0x04e0, 0x0503, 0x052c, 0x0578,
+ 0x050d, 0x03ba, 0x02a0, 0x0256, 0x02f3, 0x0441,
+ 0x050c, 0x04e7, 0x0472, 0x039e, 0x0289, 0x01b1,
+ 0x0127, 0x0165, 0x025d, 0x02db, 0x02c0, 0x02b8,
+ 0x02ca, 0x02d4, 0x02c1, 0x02af, 0x02ba, 0x028b,
+ 0x023e, 0x01e3, 0x00ff, 0x0034, 0x005b, 0x00f5,
+ 0x017a, 0x0187, 0x0129, 0x0147, 0x0189, 0x0119,
+ 0x0092, 0xffd1, 0xfe2d, 0xfcb5, 0xfc34, 0xfc10,
+ 0xfbc3, 0xfb8b, 0xfc3b, 0xfd9e, 0xfe69, 0xfe83,
+ 0xfe38, 0xfd5f, 0xfced, 0xfdc9, 0xff5f, 0x00df,
+ 0x01d3, 0x0226, 0x01e7, 0x011c, 0x0083, 0x007a,
+ 0x004e, 0x0028, 0x0075, 0x00cc, 0x0153, 0x01db,
+ 0x0190, 0x0135, 0x01ff, 0x0388, 0x04bd, 0x04d1,
+ 0x03f1, 0x032b, 0x02ed, 0x02ae, 0x019f, 0xfff9,
+ 0xff42, 0xfff8, 0x0134, 0x02af, 0x0457, 0x05ca,
+ 0x06c3, 0x069b, 0x055c, 0x044d, 0x040a, 0x047e,
+ 0x05b2, 0x072b, 0x085b, 0x092f, 0x09e4, 0x0ae1,
+ 0x0bfe, 0x0c79, 0x0bf9, 0x0afb, 0x0a6a, 0x0a7b,
+ 0x0a7a, 0x0a28, 0x09c2, 0x098b, 0x0a3a, 0x0bf3,
+ 0x0dbb, 0x0e97, 0x0e3c, 0x0d7a, 0x0d3f, 0x0d15,
+ 0x0c89, 0x0c07, 0x0bd3, 0x0c1f, 0x0cb7, 0x0d3c,
+ 0x0e03, 0x0e6b, 0x0d58, 0x0bc8, 0x0aaf, 0x0991,
+ 0x08ab, 0x082d, 0x077b, 0x06dc, 0x06ea, 0x0751,
+ 0x0790, 0x079e, 0x078d, 0x0722, 0x0678, 0x05f0,
+ 0x056f, 0x0547, 0x05c1, 0x05b3, 0x04ba, 0x0405,
+ 0x0422, 0x04e3, 0x05a1, 0x05c9, 0x0602, 0x065e,
+ 0x0654, 0x0672, 0x065a, 0x0580, 0x0518, 0x0522,
+ 0x0501, 0x0584, 0x0608, 0x05c6, 0x05fb, 0x06b8,
+ 0x0762, 0x085a, 0x0907, 0x08c3, 0x07e4, 0x0687,
+ 0x0531, 0x046b, 0x0413, 0x047d, 0x0551, 0x0572,
+ 0x0549, 0x054b, 0x048e, 0x02ec, 0x0166, 0x007a,
+ 0xffaf, 0xfe64, 0xfcd1, 0xfbc5, 0xfbd5, 0xfcc0,
+ 0xfdd3, 0xff33, 0x011f, 0x026c, 0x0236, 0x0115,
+ 0xffe1, 0xff5d, 0xff8f, 0xff74, 0xff0b, 0xff38,
+ 0xffd0, 0x003d, 0x00c0, 0x01a2, 0x0264, 0x0297,
+ 0x02bf, 0x0310, 0x02d9, 0x0224, 0x01ab, 0x018f,
+ 0x018f, 0x0191, 0x01f8, 0x02d9, 0x0327, 0x02a8,
+ 0x026b, 0x02ae, 0x0376, 0x04e0, 0x05c9, 0x058d,
+ 0x051c, 0x0509, 0x0547, 0x055b, 0x045d, 0x02e8,
+ 0x0254, 0x0223, 0x01dc, 0x025f, 0x039c, 0x04d8,
+ 0x0626, 0x06ea, 0x063c, 0x04e2, 0x03e6, 0x0335,
+ 0x02a1, 0x01fc, 0x010f, 0x002f, 0xffd6, 0x001e,
+ 0x0061, 0xffb1, 0xfeeb, 0xff5c, 0x0003, 0xfff8,
+ 0x0008, 0x0051, 0x0067, 0x00a0, 0x00de, 0x00a5,
+ 0x0062, 0x00b3, 0x0113, 0x009e, 0xffd1, 0xff6b,
+ 0xfed2, 0xfdcc, 0xfd05, 0xfca2, 0xfcea, 0xfddd,
+ 0xfea9, 0xff70, 0x0072, 0x00f1, 0x0113, 0x012b,
+ 0x005e, 0xfe76, 0xfc30, 0xfa61, 0xf9a5, 0xf995,
+ 0xf9ae, 0xf9d5, 0xf94f, 0xf831, 0xf7d1, 0xf85e,
+ 0xf914, 0xf94e, 0xf87d, 0xf718, 0xf5ae, 0xf3c7,
+ 0xf1cb, 0xf0e7, 0xf107, 0xf1a5, 0xf2a4, 0xf3ad,
+ 0xf441, 0xf3f7, 0xf298, 0xf0d1, 0xefc1, 0xefbd,
+ 0xf083, 0xf21f, 0xf421, 0xf534, 0xf4d4, 0xf3f9,
+ 0xf3e0, 0xf4ef, 0xf658, 0xf747, 0xf7ee, 0xf84d,
+ 0xf843, 0xf875, 0xf906, 0xf9b3, 0xfacc, 0xfbfb,
+ 0xfca3, 0xfd29, 0xfdfb, 0xff4f, 0x00dc, 0x0158,
+ 0x00d7, 0x00d1, 0x0107, 0x0099, 0x000a, 0x0007,
+ 0x0104, 0x030e, 0x0587, 0x07fd, 0x098e, 0x093c,
+ 0x0814, 0x0774, 0x0724, 0x070c, 0x070a, 0x0646,
+ 0x0567, 0x0604, 0x07f2, 0x0a12, 0x0c1a, 0x0e12,
+ 0x0f8b, 0x1008, 0x0f3a, 0x0cf3, 0x0a1b, 0x083f,
+ 0x0732, 0x0625, 0x05fc, 0x070f, 0x082d, 0x08f2,
+ 0x0912, 0x07e4, 0x0629, 0x0472, 0x022c, 0x0020,
+ 0xff7b, 0xffc1, 0x0077, 0x0164, 0x01d4, 0x021f,
+ 0x02c9, 0x02c7, 0x01a8, 0x0063, 0xff13, 0xfd67,
+ 0xfc09, 0xfb60, 0xfb47, 0xfbfd, 0xfd6b, 0xfefc,
+ 0x009a, 0x01e7, 0x0201, 0x010f, 0x0027, 0xfff8,
+ 0x0080, 0x0118, 0x0157, 0x01f4, 0x0336, 0x042e,
+ 0x03f9, 0x0225, 0xff29, 0xfcd2, 0xfc0c, 0xfbd8,
+ 0xfbdc, 0xfcb2, 0xfdbb, 0xfe00, 0xfe00, 0xfe3a,
+ 0xfe40, 0xfe63, 0xff5b, 0x006f, 0x00b5, 0x00ab,
+ 0x00f5, 0x0170, 0x01bd, 0x0198, 0x012e, 0x0101,
+ 0x0126, 0x0124, 0x00bb, 0x006a, 0x0056, 0xffe7,
+ 0xffa0, 0x0062, 0x0148, 0x0183, 0x0155, 0x0082,
+ 0xffb3, 0x0035, 0x0128, 0x0191, 0x0235, 0x02b1,
+ 0x0208, 0x010d, 0x00cf, 0x0157, 0x0267, 0x0368,
+ 0x037d, 0x0271, 0x0100, 0xffdc, 0xfef2, 0xfe24,
+ 0xfd6d, 0xfc84, 0xfb83, 0xfaca, 0xfa5e, 0xfa66,
+ 0xfb1b, 0xfc33, 0xfd10, 0xfd71, 0xfdde, 0xfe84,
+ 0xfe8c, 0xfdc2, 0xfce4, 0xfc2f, 0xfbc4, 0xfbcd,
+ 0xfbf5, 0xfc28, 0xfcae, 0xfd72, 0xfe13, 0xfe51,
+ 0xfe3e, 0xfdb6, 0xfc91, 0xfbd3, 0xfc48, 0xfd0b,
+ 0xfd53, 0xfd6d, 0xfe1f, 0xffb3, 0x00cf, 0x0076,
+ 0xff9b, 0xfe8a, 0xfd45, 0xfcfb, 0xfd88, 0xfdb0,
+ 0xfdb2, 0xfe82, 0x0072, 0x027d, 0x0323, 0x031e,
+ 0x03d9, 0x04c9, 0x0545, 0x054c, 0x04a0, 0x037c,
+ 0x0268, 0x01ab, 0x0126, 0x002f, 0xfef4, 0xfe82,
+ 0xff0a, 0x0030, 0x0188, 0x0259, 0x025f, 0x01e7,
+ 0x01a3, 0x01d8, 0x0149, 0xff8f, 0xfe29, 0xfdbb,
+ 0xfdee, 0xfe48, 0xfe00, 0xfdc8, 0xfece, 0x0016,
+ 0x00b3, 0x0126, 0x0198, 0x019a, 0x00ce, 0xffa9,
+ 0xff29, 0xff6d, 0x0054, 0x01d7, 0x0301, 0x033c,
+ 0x0277, 0x00a0, 0xfefb, 0xfe68, 0xfe16, 0xfe30,
+ 0xfee6, 0xff2e, 0xffa0, 0x0126, 0x0272, 0x02a1,
+ 0x0273, 0x027e, 0x02a1, 0x0242, 0x0106, 0xff35,
+ 0xfd5a, 0xfc24, 0xfbe6, 0xfc94, 0xfe10, 0xff8c,
+ 0x0052, 0x00b7, 0x00e6, 0x00ea, 0x0136, 0x0199,
+ 0x0146, 0xffc8, 0xfdaf, 0xfc85, 0xfc84, 0xfcc7,
+ 0xfde1, 0x000e, 0x01c9, 0x02a2, 0x0345, 0x03dd,
+ 0x0495, 0x054f, 0x0574, 0x04f7, 0x042d, 0x0384,
+ 0x0337, 0x02fb, 0x02ef, 0x0398, 0x04a8, 0x05b3,
+ 0x06fc, 0x0897, 0x09ee, 0x0a7c, 0x0a99, 0x0ac3,
+ 0x0af2, 0x0b81, 0x0cb5, 0x0dac, 0x0e23, 0x0ed5,
+ 0x0f4b, 0x0ec4, 0x0e17, 0x0dec, 0x0dce, 0x0dd0,
+ 0x0e0d, 0x0dbb, 0x0ccc, 0x0c03, 0x0b5a, 0x0aaf,
+ 0x0a81, 0x0ae5, 0x0b6b, 0x0bb3, 0x0bab, 0x0b5e,
+ 0x0a77, 0x0909, 0x07ce, 0x068e, 0x0509, 0x0446,
+ 0x0445, 0x03f2, 0x037d, 0x0365, 0x03b1, 0x04a6,
+ 0x0605, 0x071f, 0x07cb, 0x0825, 0x082e, 0x078d,
+ 0x062f, 0x04fc, 0x0467, 0x0414, 0x0416, 0x0475,
+ 0x052b, 0x0669, 0x079b, 0x0861, 0x0907, 0x091f,
+ 0x089e, 0x0858, 0x083d, 0x0841, 0x08d3, 0x0965,
+ 0x0954, 0x08d8, 0x0830, 0x079f, 0x0733, 0x0697,
+ 0x05a4, 0x046b, 0x0393, 0x0404, 0x052c, 0x05ca,
+ 0x0608, 0x0692, 0x0715, 0x074f, 0x079f, 0x0812,
+ 0x0818, 0x0714, 0x04d0, 0x0244, 0x00ce, 0x0026,
+ 0xff88, 0xff39, 0xff3a, 0xff97, 0x00da, 0x023c,
+ 0x02e4, 0x0386, 0x03e8, 0x0318, 0x0193, 0x0022,
+ 0xff1c, 0xfeb4, 0xfe97, 0xfe9a, 0xfeb5, 0xfebb,
+ 0xff62, 0x010d, 0x0280, 0x02ba, 0x0254, 0x0287,
+ 0x0394, 0x043a, 0x03ff, 0x03b6, 0x0381, 0x0370,
+ 0x03cc, 0x0397, 0x029b, 0x0281, 0x03be, 0x0537,
+ 0x062c, 0x0656, 0x0608, 0x05d9, 0x05cf, 0x05da,
+ 0x0614, 0x0664, 0x0685, 0x05eb, 0x0460, 0x02d3,
+ 0x0226, 0x023c, 0x028d, 0x0294, 0x022e, 0x0190,
+ 0x0072, 0xfed8, 0xfdc2, 0xfdb8, 0xfe85, 0x003c,
+ 0x0246, 0x0381, 0x041a, 0x04cf, 0x0557, 0x0510,
+ 0x0411, 0x030e, 0x0250, 0x015f, 0x0058, 0xffb1,
+ 0xff40, 0xff5a, 0x005d, 0x0149, 0x017a, 0x015e,
+ 0x0110, 0x00d3, 0x00e8, 0x009d, 0xff7a, 0xfde4,
+ 0xfc87, 0xfbeb, 0xfc07, 0xfc94, 0xfd3d, 0xfd5e,
+ 0xfd05, 0xfc92, 0xfb82, 0xf9f9, 0xf8d3, 0xf7e6,
+ 0xf71c, 0xf6da, 0xf6e1, 0xf706, 0xf71a, 0xf697,
+ 0xf5f5, 0xf596, 0xf49d, 0xf2e1, 0xf112, 0xef6c,
+ 0xee33, 0xeddb, 0xee2f, 0xee7e, 0xeea9, 0xef66,
+ 0xf0f0, 0xf277, 0xf392, 0xf4b3, 0xf5cc, 0xf5e6,
+ 0xf4ac, 0xf359, 0xf2e8, 0xf2e0, 0xf2bb, 0xf278,
+ 0xf243, 0xf2d9, 0xf485, 0xf67a, 0xf83e, 0xf9b1,
+ 0xfa6f, 0xfab9, 0xfb3c, 0xfbed, 0xfc77, 0xfd12,
+ 0xfde4, 0xfe22, 0xfd63, 0xfcc4, 0xfcbb, 0xfc97,
+ 0xfcd4, 0xfe0b, 0xff3d, 0xff9e, 0xffac, 0x005e,
+ 0x021b, 0x03e1, 0x04c0, 0x0524, 0x0537, 0x048b,
+ 0x037f, 0x02f6, 0x0369, 0x0479, 0x056f, 0x063f,
+ 0x06fd, 0x076d, 0x079a, 0x0741, 0x0624, 0x051a,
+ 0x04c9, 0x04e5, 0x0556, 0x0614, 0x06d2, 0x0733,
+ 0x069c, 0x04f9, 0x031b, 0x01a2, 0x00c9, 0x00d2,
+ 0x019b, 0x0289, 0x0343, 0x03ed, 0x04c1, 0x05d1,
+ 0x06cb, 0x06ed, 0x0646, 0x05bb, 0x0524, 0x03cb,
+ 0x020e, 0x00c2, 0x0042, 0x0017, 0xffcc, 0x0067,
+ 0x021f, 0x0317, 0x0376, 0x04a1, 0x055a, 0x049a,
+ 0x0382, 0x0297, 0x01df, 0x0178, 0x00e3, 0x002c,
+ 0xffbf, 0xff1e, 0xfdfc, 0xfd0e, 0xfd18, 0xfdce,
+ 0xfe0e, 0xfdb5, 0xfda1, 0xfde3, 0xfddd, 0xfd47,
+ 0xfc28, 0xfb09, 0xfa82, 0xfa90, 0xfb30, 0xfc73,
+ 0xfdc7, 0xfe46, 0xfdbd, 0xfd0f, 0xfd44, 0xfe4b,
+ 0xff73, 0x006a, 0x0100, 0x0121, 0x018f, 0x02a7,
+ 0x0335, 0x02a2, 0x01e9, 0x013a, 0x0043, 0x0013,
+ 0x012c, 0x0249, 0x0292, 0x0281, 0x02d2, 0x03a6,
+ 0x046a, 0x04ed, 0x058e, 0x061f, 0x066b, 0x06ad,
+ 0x0676, 0x0566, 0x041f, 0x02f1, 0x01d1, 0x011f,
+ 0x00d1, 0x006e, 0xff8f, 0xfdd1, 0xfbfd, 0xfbcb,
+ 0xfd31, 0xfedf, 0x00bb, 0x02e5, 0x0422, 0x03c2,
+ 0x02c8, 0x017f, 0xff17, 0xfc7b, 0xfb00, 0xf9f0,
+ 0xf935, 0xf992, 0xfa17, 0xfa4a, 0xfae0, 0xfb67,
+ 0xfbd0, 0xfcd8, 0xfe0e, 0xfef6, 0xff7a, 0xff8c,
+ 0xffa5, 0xff5c, 0xfe20, 0xfcd1, 0xfb9a, 0xfa73,
+ 0xfa67, 0xfb39, 0xfc78, 0xfe72, 0xffc1, 0xffba,
+ 0x0007, 0x00f7, 0x01bf, 0x021b, 0x018f, 0x006d,
+ 0xffa6, 0xff7b, 0x0050, 0x0218, 0x03e3, 0x053e,
+ 0x05ef, 0x05ae, 0x04ea, 0x044f, 0x03f3, 0x0337,
+ 0x01d9, 0x0089, 0xffac, 0xff5a, 0xffa1, 0xffa9,
+ 0xffa9, 0x00e8, 0x025d, 0x0299, 0x0285, 0x0296,
+ 0x0231, 0x0182, 0x00ca, 0x004e, 0x0070, 0x00d3,
+ 0x013a, 0x01dd, 0x024a, 0x021c, 0x01cc, 0x01a7,
+ 0x0188, 0x019d, 0x0260, 0x03c4, 0x04a2, 0x0384,
+ 0x00bc, 0xfe2b, 0xfcc7, 0xfca4, 0xfdb2, 0xfeea,
+ 0xff9f, 0x005f, 0x00ca, 0x0096, 0x0159, 0x0340,
+ 0x0440, 0x03c1, 0x02b8, 0x018e, 0x0057, 0xff61,
+ 0xfe7c, 0xfcf7, 0xfb47, 0xfadc, 0xfb92, 0xfc39,
+ 0xfce3, 0xfde8, 0xff1c, 0x0051, 0x00f1, 0x00d1,
+ 0x0105, 0x01d3, 0x022e, 0x01f3, 0x01cb, 0x017b,
+ 0x008d, 0xff51, 0xfdf1, 0xfca4, 0xfc57, 0xfd40,
+ 0xfe9b, 0x004d, 0x0265, 0x043d, 0x057f, 0x060b,
+ 0x0587, 0x0441, 0x0333, 0x02ac, 0x0214, 0x015f,
+ 0x0145, 0x01a9, 0x01c9, 0x0171, 0x00b9, 0x003c,
+ 0x00cd, 0x0219, 0x03d9, 0x066a, 0x08e7, 0x0a05,
+ 0x09f6, 0x097b, 0x08df, 0x0807, 0x0728, 0x06ea,
+ 0x0717, 0x071c, 0x0763, 0x0837, 0x0955, 0x0a77,
+ 0x0b14, 0x0b81, 0x0c61, 0x0cb4, 0x0bfa, 0x0b62,
+ 0x0b77, 0x0c33, 0x0d7b, 0x0e70, 0x0ec9, 0x0ede,
+ 0x0e4b, 0x0d1a, 0x0c27, 0x0b9d, 0x0b24, 0x0aff,
+ 0x0bd3, 0x0d79, 0x0f24, 0x10c1, 0x123a, 0x12dc,
+ 0x12ed, 0x1305, 0x1285, 0x1139, 0x101f, 0x0f83,
+ 0x0eca, 0x0e12, 0x0d96, 0x0c7b, 0x0a87, 0x0922,
+ 0x08ef, 0x09db, 0x0c34, 0x0eac, 0x0f5b, 0x0ea8,
+ 0x0d72, 0x0beb, 0x0ae7, 0x0a93, 0x09e5, 0x0888,
+ 0x0741, 0x06bb, 0x06d9, 0x075e, 0x085c, 0x0955,
+ 0x0a12, 0x0b01, 0x0b54, 0x0a6c, 0x095c, 0x081a,
+ 0x0563, 0x0174, 0xfd9a, 0xfad0, 0xf985, 0xf9c2,
+ 0xfb41, 0xfd43, 0xff0c, 0xfffe, 0xffa9, 0xff1a,
+ 0xff64, 0xffce, 0x0064, 0x01d0, 0x02da, 0x02c8,
+ 0x027b, 0x024e, 0x0234, 0x01d2, 0x00cf, 0xffe9,
+ 0xff7f, 0xff11, 0xfe4c, 0xfcce, 0xfaf9, 0xf9f5,
+ 0xf973, 0xf8da, 0xf931, 0xfaba, 0xfbd1, 0xfbbe,
+ 0xfb54, 0xfa4b, 0xf7e5, 0xf5b2, 0xf55f, 0xf634,
+ 0xf74f, 0xf89e, 0xfa04, 0xfb8d, 0xfcec, 0xfdb0,
+ 0xfdcd, 0xfcf1, 0xfb34, 0xf962, 0xf7da, 0xf6e8,
+ 0xf680, 0xf60e, 0xf582, 0xf47c, 0xf313, 0xf337,
+ 0xf53c, 0xf6eb, 0xf71d, 0xf5ec, 0xf42e, 0xf386,
+ 0xf480, 0xf66e, 0xf867, 0xf985, 0xfa2b, 0xfb1d,
+ 0xfc06, 0xfce5, 0xfddc, 0xfe33, 0xfe0d, 0xfebd,
+ 0x0072, 0x01d6, 0x0201, 0x0184, 0x014c, 0x01c3,
+ 0x0304, 0x051d, 0x07ef, 0x0ab2, 0x0c5e, 0x0cc8,
+ 0x0c49, 0x0b05, 0x093a, 0x078e, 0x0705, 0x077d,
+ 0x07a7, 0x07c4, 0x0844, 0x07dd, 0x06e7, 0x0696,
+ 0x060e, 0x0569, 0x057d, 0x050e, 0x03b2, 0x028c,
+ 0x0172, 0xffb4, 0xfe01, 0xfdd2, 0xfefc, 0xff68,
+ 0xfe37, 0xfc0d, 0xf977, 0xf7c4, 0xf792, 0xf7a7,
+ 0xf771, 0xf71b, 0xf6d6, 0xf77f, 0xf911, 0xfa3a,
+ 0xfa46, 0xf9bb, 0xf99b, 0xf9b2, 0xf936, 0xf8e8,
+ 0xf8e0, 0xf7ed, 0xf695, 0xf596, 0xf4db, 0xf529,
+ 0xf611, 0xf62b, 0xf5f1, 0xf5c5, 0xf591, 0xf6b8,
+ 0xf996, 0xfc4d, 0xfd84, 0xfd2d, 0xfc06, 0xfaf5,
+ 0xfa37, 0xfa3a, 0xfbde, 0xfef7, 0x027f, 0x057c,
+ 0x06fb, 0x0717, 0x06a5, 0x0553, 0x02f0, 0x00e4,
+ 0x000b, 0x001f, 0x00d8, 0x017f, 0x018c, 0x0131,
+ 0x0048, 0xff22, 0xfec9, 0xff26, 0xff7f, 0xff92,
+ 0xff40, 0xfeed, 0xfee6, 0xfec0, 0xfeaf, 0xff0a,
+ 0xff1d, 0xfed4, 0xff18, 0xffda, 0x000e, 0xfef4,
+ 0xfc72, 0xf97a, 0xf7aa, 0xf77c, 0xf842, 0xf99d,
+ 0xfae8, 0xfb46, 0xfb4c, 0xfbd4, 0xfc84, 0xfcf1,
+ 0xfcee, 0xfcc7, 0xfd34, 0xfdcd, 0xfe56, 0xffdf,
+ 0x01d9, 0x02a8, 0x0291, 0x0284, 0x02c1, 0x0333,
+ 0x034c, 0x0305, 0x030d, 0x0354, 0x0383, 0x03d5,
+ 0x04b4, 0x065d, 0x081d, 0x08db, 0x08f1, 0x08c0,
+ 0x073d, 0x04db, 0x03c9, 0x03eb, 0x03dc, 0x0428,
+ 0x053b, 0x0611, 0x0642, 0x061a, 0x0608, 0x0639,
+ 0x05d2, 0x04aa, 0x041b, 0x0492, 0x059a, 0x071d,
+ 0x0876, 0x08bf, 0x0820, 0x0760, 0x06d6, 0x0687,
+ 0x070e, 0x08a4, 0x09f7, 0x0a40, 0x09db, 0x08e3,
+ 0x07b4, 0x06e9, 0x06c1, 0x06a8, 0x04ff, 0x0245,
+ 0x00e9, 0x0102, 0x0297, 0x0607, 0x0824, 0x070e,
+ 0x04ba, 0x022d, 0x008a, 0x00d1, 0x01b3, 0x02b0,
+ 0x0334, 0x01ec, 0xfffb, 0xfe26, 0xfc7b, 0xfc3b,
+ 0xfc6c, 0xfc22, 0xfcbc, 0xfd08, 0xfba1, 0xf9fa,
+ 0xf8d2, 0xf86a, 0xf909, 0xfa76, 0xfc88, 0xfdad,
+ 0xfd46, 0xfd3b, 0xfd4e, 0xfca0, 0xfc02, 0xfac1,
+ 0xf863, 0xf5be, 0xf332, 0xf297, 0xf510, 0xf883,
+ 0xfbde, 0xff32, 0x0092, 0xfeb9, 0xfb6a, 0xf88f,
+ 0xf64d, 0xf5bc, 0xf804, 0xfadb, 0xfc93, 0xfe8e,
+ 0x00d4, 0x0288, 0x0398, 0x03c6, 0x0364, 0x02c6,
+ 0x030a, 0x0557, 0x06a6, 0x04d0, 0x024c, 0xff9e,
+ 0xfd0b, 0xfda7, 0x01bd, 0x06eb, 0x0afd, 0x0d5c,
+ 0x0f8a, 0x107f, 0x0edc, 0x0d3a, 0x0be1, 0x098f,
+ 0x086f, 0x0978, 0x0b77, 0x0cc3, 0x0c21, 0x0b2f,
+ 0x09c6, 0x06a3, 0x059f, 0x0854, 0x0bfa, 0x10da,
+ 0x15a7, 0x160d, 0x11f9, 0x0c65, 0x07ef, 0x062c,
+ 0x06c8, 0x0800, 0x0806, 0x0755, 0x0723, 0x073b,
+ 0x0865, 0x0962, 0x0747, 0x0412, 0x009d, 0xfb32,
+ 0xf6d0, 0xf3fa, 0xef8b, 0xea07, 0xe266, 0xd865,
+ 0xd0ae, 0xcbe0, 0xc882, 0xc844, 0xcba1, 0xd1cc,
+ 0xd8c1, 0xdf47, 0xe75b, 0xef4b, 0xf3ca, 0xf5d5,
+ 0xf4de, 0xf0a3, 0xec50, 0xe895, 0xe5b5, 0xe47c,
+ 0xe2c1, 0xdf83, 0xdc36, 0xda6f, 0xdb27, 0xdd6b,
+ 0xe085, 0xe40e, 0xe71d, 0xeb0d, 0xf034, 0xf4f7,
+ 0xf98e, 0xfcd7, 0xfd41, 0xfc25, 0xfb2d, 0xfbe2,
+ 0xfdde, 0x003a, 0x03b9, 0x0445, 0x00f8, 0x0187,
+ 0x04dd, 0x06d2, 0x0b31, 0x0f8c, 0x102f, 0x0fee,
+ 0x0eb2, 0x0ec4, 0x11b8, 0x12f9, 0x15ef, 0x1cfc,
+ 0x2139, 0x23f8, 0x287c, 0x2ad8, 0x2a27, 0x2775,
+ 0x242f, 0x20d5, 0x1b01, 0x15b4, 0x12b0, 0x0f0a,
+ 0x0e6b, 0x10df, 0x11a0, 0x1319, 0x1454, 0x133e,
+ 0x131f, 0x1206, 0x1114, 0x13ca, 0x1528, 0x16ba,
+ 0x1c0f, 0x1f69, 0x2126, 0x232e, 0x2342, 0x2370,
+ 0x2196, 0x1cd1, 0x1a30, 0x1614, 0x0fd1, 0x0cc3,
+ 0x090d, 0x04dd, 0x0381, 0x0069, 0xfdb6, 0xfd9e,
+ 0xfb31, 0xf920, 0xf95f, 0xf924, 0xfa9d, 0xfcae,
+ 0xfcfa, 0xfd73, 0xfd13, 0xfc44, 0xfc9e, 0xfc5d,
+ 0xfbe8, 0xfacb, 0xf9f5, 0xfdb1, 0x0133, 0xffc2,
+ 0xfeaf, 0xfeba, 0xfd6b, 0xfcb4, 0xfe0f, 0x01f5,
+ 0x0592, 0x06dc, 0x08d2, 0x095d, 0x07fe, 0x0a31,
+ 0x0c5f, 0x0beb, 0x0d9d, 0x0e10, 0x0ba1, 0x0b82,
+ 0x0c19, 0x0bff, 0x0c1e, 0x09f3, 0x06c1, 0x0469,
+ 0x01f8, 0xfff2, 0xfd39, 0xfac1, 0xfb68, 0xfc4e,
+ 0xfbf9, 0xfba5, 0xfb23, 0xfd17, 0xffee, 0xffba,
+ 0x00b6, 0x0321, 0x037d, 0x05b1, 0x08f9, 0x096c,
+ 0x0ad7, 0x0dfb, 0x0f76, 0x101c, 0x1197, 0x130c,
+ 0x124b, 0x11b1, 0x156e, 0x1819, 0x1559, 0x127e,
+ 0x10f7, 0x0f7a, 0x0f90, 0x1037, 0x105a, 0x0f6f,
+ 0x0e21, 0x0f35, 0x0fdd, 0x0f30, 0x10e8, 0x1030,
+ 0x0bd7, 0x0a39, 0x08da, 0x0798, 0x097f, 0x0999,
+ 0x08be, 0x07da, 0x02af, 0x0011, 0x01aa, 0xffaa,
+ 0xfdb1, 0xfd0f, 0xfad9, 0xfbed, 0xfe7b, 0x0021,
+ 0x03c7, 0x043a, 0x0196, 0x00ef, 0xff15, 0xfe67,
+ 0x0043, 0xff1d, 0xfe76, 0xfe7d, 0xfb46, 0xfb00,
+ 0xfcf1, 0xfcca, 0xfead, 0xffb2, 0xfcaa, 0xf9c0,
+ 0xf728, 0xf64b, 0xf7af, 0xf736, 0xf58e, 0xf30b,
+ 0xf0d0, 0xf238, 0xf29a, 0xf2b4, 0xf71f, 0xf76d,
+ 0xf314, 0xf231, 0xf236, 0xf3a5, 0xf68e, 0xf559,
+ 0xf661, 0xfb25, 0xfac4, 0xf9be, 0xfae1, 0xf895,
+ 0xf773, 0xf9a7, 0xfa50, 0xfb32, 0xfd43, 0xfe2c,
+ 0xfe89, 0xfe5e, 0xfde1, 0xfe28, 0xfe9f, 0xff10,
+ 0xff7b, 0xff30, 0xfe3f, 0xfd93, 0xfe46, 0xff99,
+ 0xff6d, 0xfd8b, 0xfbc4, 0xfbbe, 0xfd59, 0x0017,
+ 0x02ea, 0x025a, 0xff88, 0x0007, 0x0243, 0x0257,
+ 0x01c0, 0x014f, 0xffed, 0xfc79, 0xf90f, 0xfa82,
+ 0xfca4, 0xfa58, 0xf9a7, 0xfb82, 0xfc21, 0xfe77,
+ 0x00ed, 0x00e6, 0x0138, 0xffca, 0xfca8, 0xfbab,
+ 0xfa48, 0xf90c, 0xf9f8, 0xf901, 0xf803, 0xf9e2,
+ 0xfa0f, 0xf92b, 0xfaaa, 0xfb06, 0xf854, 0xf70f,
+ 0xf8e0, 0xf9c8, 0xf991, 0xfac9, 0xf9a8, 0xf583,
+ 0xf482, 0xf5bc, 0xf5f6, 0xf6e1, 0xf742, 0xf5dd,
+ 0xf4df, 0xf535, 0xf6bf, 0xf6e2, 0xf421, 0xf34b,
+ 0xf596, 0xf60e, 0xf493, 0xf4f9, 0xf6a8, 0xf651,
+ 0xf566, 0xf602, 0xf470, 0xf1f2, 0xf4b0, 0xf83c,
+ 0xf727, 0xf666, 0xf795, 0xf6b7, 0xf4b2, 0xf4a6,
+ 0xf62b, 0xf73a, 0xf7a9, 0xf887, 0xfa00, 0xfaaf,
+ 0xf95a, 0xf938, 0xfbc4, 0xfbd4, 0xfb01, 0xfcd5,
+ 0xfb2c, 0xf85c, 0xfab0, 0xfbd8, 0xfbbd, 0xfd63,
+ 0xfbdc, 0xfbc8, 0xfe48, 0xfb7c, 0xfa05, 0xfbe2,
+ 0xf9eb, 0xfabb, 0xfd42, 0xfa37, 0xfa1a, 0xfccc,
+ 0xfb46, 0xfacf, 0xfade, 0xf908, 0xf9f9, 0xfad8,
+ 0xf9c9, 0xfa39, 0xfa99, 0xfb58, 0xfce5, 0xfbed,
+ 0xfa79, 0xfa86, 0xf9f9, 0xf901, 0xf8d3, 0xfaa8,
+ 0xfdd6, 0xffa4, 0x0089, 0x0046, 0xfdc5, 0xfc82,
+ 0xfdcd, 0x000d, 0x038f, 0x05d3, 0x04a7, 0x0354,
+ 0x0445, 0x0618, 0x06af, 0x054c, 0x0412, 0x05d4,
+ 0x0938, 0x0a7e, 0x0adb, 0x0bfa, 0x09a6, 0x0570,
+ 0x0542, 0x052e, 0x0326, 0x03b5, 0x0493, 0x04ad,
+ 0x05c0, 0x035a, 0xff00, 0xfe24, 0xfdfe, 0xfde4,
+ 0xfedc, 0xfe46, 0xff1d, 0x0303, 0x04af, 0x03eb,
+ 0x02dc, 0x0067, 0xfdc1, 0xfc5d, 0xfc25, 0xfd68,
+ 0xfe9b, 0xff37, 0x00e9, 0x01ed, 0x00c4, 0xffd2,
+ 0xff02, 0xfd73, 0xfd2d, 0xfdaf, 0xfe18, 0xffea,
+ 0x012b, 0x00d9, 0x0144, 0x008b, 0xfeb2, 0xff6e,
+ 0x00bb, 0x016f, 0x0390, 0x0441, 0x020c, 0x0006,
+ 0xffdd, 0x0081, 0xff46, 0xfde6, 0xfe63, 0xfcbf,
+ 0xfbcd, 0xfed1, 0xff08, 0xfede, 0x02a5, 0x03aa,
+ 0x0491, 0x0819, 0x0794, 0x07b6, 0x0aac, 0x08bd,
+ 0x0660, 0x07e9, 0x08b8, 0x0869, 0x07eb, 0x0915,
+ 0x0b1e, 0x095f, 0x08d1, 0x0b78, 0x0ace, 0x0a10,
+ 0x0954, 0x042a, 0x028b, 0x05e0, 0x075d, 0x0866,
+ 0x07cc, 0x0541, 0x05dd, 0x06d4, 0x058e, 0x047e,
+ 0x0348, 0x02ea, 0x04da, 0x0905, 0x0d73, 0x0cd8,
+ 0x0a05, 0x0a88, 0x0943, 0x0595, 0x051e, 0x05b8,
+ 0x0469, 0x02e3, 0x042e, 0x073f, 0x05bf, 0x01aa,
+ 0x0172, 0x02d3, 0x0441, 0x0596, 0x056f, 0x060d,
+ 0x04fe, 0x01ce, 0x02d3, 0x03df, 0x01a8, 0x01e0,
+ 0x023c, 0x0191, 0x0262, 0x01ad, 0x01a8, 0x0340,
+ 0x0311, 0x047c, 0x0579, 0x03af, 0x0568, 0x077b,
+ 0x0749, 0x09ea, 0x0b67, 0x0aa0, 0x0b30, 0x0aff,
+ 0x0c31, 0x0cb3, 0x0831, 0x0662, 0x06c1, 0x0492,
+ 0x05e1, 0x05e6, 0x0012, 0xfd66, 0xfb67, 0xf726,
+ 0xf80d, 0xf92d, 0xf599, 0xf53a, 0xf802, 0xf7b0,
+ 0xf6d4, 0xf94e, 0xfbc7, 0xfbc4, 0xfbf9, 0xfc66,
+ 0xfceb, 0x0012, 0x02ec, 0x039c, 0x04be, 0x054d,
+ 0x06f4, 0x0af9, 0x0c6a, 0x0bce, 0x0a61, 0x0788,
+ 0x079b, 0x07ac, 0x0575, 0x06cb, 0x0643, 0x02f4,
+ 0x0561, 0x04ca, 0xff89, 0x01d3, 0x043b, 0x0285,
+ 0x05fa, 0x07fc, 0x047c, 0x0448, 0x06a0, 0x0882,
+ 0x0a32, 0x0920, 0x060c, 0x02a1, 0x0019, 0x002a,
+ 0xfef3, 0xfb60, 0xfa32, 0xfaee, 0xfc3a, 0xfea5,
+ 0x0035, 0x01d6, 0x047d, 0x0550, 0x058c, 0x070f,
+ 0x07dc, 0x097d, 0x0c3c, 0x0b73, 0x0a43, 0x0d96,
+ 0x0eab, 0x0b22, 0x0aa8, 0x0cdf, 0x0dd1, 0x0f31,
+ 0x10bc, 0x10f1, 0x0e50, 0x08f4, 0x069f, 0x0628,
+ 0x0304, 0x0349, 0x0560, 0x028e, 0x0283, 0x05d5,
+ 0x0467, 0x02d9, 0x03be, 0x04a4, 0x073a, 0x06c1,
+ 0x02e1, 0x032b, 0x03c0, 0x022d, 0x0413, 0x058c,
+ 0x0469, 0x0703, 0x0b53, 0x0cb9, 0x0ea6, 0x118c,
+ 0x1049, 0x0d16, 0x0dba, 0x0e2c, 0x0c40, 0x0e49,
+ 0x116d, 0x10bf, 0x112b, 0x10f3, 0x0d77, 0x0e6a,
+ 0x115a, 0x0f14, 0x0e9e, 0x118d, 0x0f08, 0x0a71,
+ 0x0a7e, 0x0a66, 0x09c3, 0x0d3e, 0x0ed9, 0x0baa,
+ 0x0b68, 0x0b9f, 0x06aa, 0x038a, 0x0480, 0x03f7,
+ 0x02fa, 0x033c, 0x0374, 0x041c, 0x05ad, 0x07c3,
+ 0x0859, 0x07e5, 0x0a3c, 0x0b57, 0x072c, 0x053d,
+ 0x07a7, 0x07d2, 0x061a, 0x05a8, 0x0578, 0x0529,
+ 0x05b7, 0x05d1, 0x0436, 0x0345, 0x01e4, 0xfdce,
+ 0xfd90, 0x00e4, 0xffaf, 0xff07, 0xffef, 0xfb6f,
+ 0xfaa6, 0xff6f, 0xfe93, 0xfe54, 0x016b, 0xfec7,
+ 0xfce9, 0xffef, 0x00c7, 0x0188, 0x0323, 0x0174,
+ 0xfe37, 0xfcba, 0xfec4, 0x0022, 0xfd59, 0xfe82,
+ 0x035c, 0x0329, 0x0322, 0x0602, 0x0547, 0x03e9,
+ 0x04ae, 0x0443, 0x0359, 0x025f, 0x0198, 0x025e,
+ 0x028a, 0x027f, 0x0446, 0x05b9, 0x06a1, 0x07ed,
+ 0x0776, 0x055d, 0x0387, 0x0129, 0xfe86, 0xfe9f,
+ 0x00d4, 0x01fc, 0x0338, 0x04a0, 0x0482, 0x0699,
+ 0x09b3, 0x078f, 0x04fc, 0x053c, 0x031b, 0x0214,
+ 0x036b, 0x00da, 0xffcc, 0x02eb, 0x0169, 0xff24,
+ 0x014e, 0xff6b, 0xfba3, 0xfe1e, 0xffac, 0xfd63,
+ 0xfe91, 0x005e, 0xff01, 0xfe5f, 0xfdf9, 0xfd6c,
+ 0xfe81, 0xfe75, 0xfe3c, 0xfec2, 0xfc6e, 0xfb5f,
+ 0xfbeb, 0xf7fb, 0xf753, 0xfbe0, 0xfa83, 0xf8be,
+ 0xfb98, 0xfaa9, 0xf9ff, 0xfcad, 0xfc3b, 0xfcdf,
+ 0xfedb, 0xfbaf, 0xf87c, 0xf836, 0xf832, 0xf908,
+ 0xf7da, 0xf605, 0xf785, 0xf74b, 0xf679, 0xf9c7,
+ 0xfaa7, 0xf7c8, 0xf6e9, 0xf6c3, 0xf5c0, 0xf491,
+ 0xf34b, 0xf244, 0xeed2, 0xeaa0, 0xeb98, 0xedae,
+ 0xed51, 0xf020, 0xf39a, 0xf1f4, 0xf08e, 0xf163,
+ 0xef61, 0xeec2, 0xf39f, 0xf5af, 0xf31b, 0xf43a,
+ 0xf76a, 0xf79a, 0xf804, 0xf8c9, 0xf8e5, 0xfba1,
+ 0xfdb2, 0xfbb0, 0xf9d2, 0xf83c, 0xf62f, 0xf6d5,
+ 0xf797, 0xf689, 0xf717, 0xf7b1, 0xf697, 0xf62a,
+ 0xf5b6, 0xf503, 0xf502, 0xf407, 0xf42b, 0xf72d,
+ 0xf888, 0xf819, 0xf8e6, 0xf8a5, 0xf766, 0xf849,
+ 0xf95a, 0xf7ed, 0xf5ef, 0xf68f, 0xf8e8, 0xf886,
+ 0xf67a, 0xf81f, 0xfb49, 0xfb57, 0xfb80, 0xfef4,
+ 0x010b, 0xfe4b, 0xfcc8, 0x004a, 0x00e1, 0xfd0d,
+ 0xfde6, 0x00f7, 0xff5c, 0xff14, 0x02d8, 0x0445,
+ 0x0378, 0x031d, 0x0143, 0xff03, 0xff4f, 0xff5f,
+ 0xfd25, 0xfd3a, 0xff71, 0xfe09, 0xfc6f, 0xfe95,
+ 0xfec0, 0xfd26, 0xfe6e, 0xff71, 0xff10, 0xff82,
+ 0xff80, 0xfef9, 0xfe4d, 0xfe71, 0x0092, 0x0006,
+ 0xfca6, 0xfc86, 0xfcea, 0xfbb7, 0xfcb4, 0xfcef,
+ 0xfb7c, 0xfbdf, 0xfb81, 0xfa83, 0xfb0f, 0xf9dc,
+ 0xf86f, 0xfa08, 0xfb98, 0xfbf6, 0xfbee, 0xfbfb,
+ 0xfdc3, 0xfebf, 0xfd06, 0xfc62, 0xfc6a, 0xfa61,
+ 0xf897, 0xf7c3, 0xf6c7, 0xf784, 0xf965, 0xf9e7,
+ 0xfa7b, 0xfbfb, 0xfd27, 0xff10, 0x0119, 0x0132,
+ 0x011c, 0x00d4, 0xff2f, 0xff3a, 0xfff9, 0xfe2a,
+ 0xfc4c, 0xfb16, 0xfa86, 0xfc2e, 0xfc5f, 0xfbce,
+ 0xfe54, 0xfe93, 0xfd00, 0xff4b, 0x002e, 0xfe8d,
+ 0xff50, 0x0011, 0x007c, 0x0095, 0xfe4b, 0xfe56,
+ 0xffe7, 0xff50, 0x025a, 0x06f0, 0x0760, 0x08ba,
+ 0x0a8e, 0x0a69, 0x0bd2, 0x0bc6, 0x0a10, 0x0ad8,
+ 0x097c, 0x0651, 0x0674, 0x0606, 0x048c, 0x0557,
+ 0x05ea, 0x0645, 0x0794, 0x07d1, 0x0730, 0x05d0,
+ 0x0393, 0x029a, 0x030d, 0x03aa, 0x03ef, 0x040b,
+ 0x043f, 0x02c5, 0x0065, 0x0035, 0x0043, 0xff99,
+ 0xff79, 0xfdb4, 0xfc45, 0xfd3d, 0xfc2e, 0xfb0d,
+ 0xfc5b, 0xfb22, 0xfa6b, 0xfdb1, 0xfe9f, 0xfe45,
+ 0x0037, 0x0070, 0x0046, 0x0184, 0x00c1, 0x00c7,
+ 0x031e, 0x046c, 0x06a1, 0x08ec, 0x0777, 0x0586,
+ 0x03b5, 0xff60, 0xfc4c, 0xfbce, 0xfb3f, 0xfb6f,
+ 0xfa3d, 0xf53a, 0xf1f9, 0xf2f3, 0xf320, 0xf284,
+ 0xf470, 0xf5d5, 0xf43a, 0xf30a, 0xf2a8, 0xf150,
+ 0xf209, 0xf53c, 0xf67f, 0xf61b, 0xf69d, 0xf7b0,
+ 0xf99d, 0xfc17, 0xfdfe, 0xfffd, 0x0077, 0xfe16,
+ 0xfd75, 0xff87, 0xfee5, 0xfd51, 0xff94, 0x013f,
+ 0xffb1, 0xfffa, 0x01c0, 0x01be, 0x018c, 0x0163,
+ 0x0134, 0x018c, 0xff96, 0xfd88, 0xff51, 0x001c,
+ 0xfeb1, 0xfed9, 0xff3a, 0x0015, 0x007b, 0xfd0b,
+ 0xfa86, 0xf9bb, 0xf5f2, 0xf3a7, 0xf386, 0xf228,
+ 0xf3f4, 0xf66d, 0xf64c, 0xf955, 0xfc16, 0xfc53,
+ 0x00fc, 0x04b8, 0x036b, 0x04d3, 0x0746, 0x0724,
+ 0x07f5, 0x08ba, 0x080f, 0x0711, 0x0635, 0x07ba,
+ 0x0aae, 0x0c78, 0x0d28, 0x0be8, 0x0aa5, 0x0a24,
+ 0x0727, 0x04f5, 0x0415, 0x006d, 0x004e, 0x035e,
+ 0x00c1, 0xff4e, 0x0296, 0x01c2, 0x00b8, 0x0421,
+ 0x05a8, 0x0550, 0x05ac, 0x05ab, 0x05eb, 0x0539,
+ 0x03d5, 0x0402, 0x03ac, 0x0363, 0x050d, 0x053e,
+ 0x04a8, 0x0698, 0x0894, 0x0964, 0x0a56, 0x0ae7,
+ 0x0b62, 0x0c7c, 0x0e88, 0x10ab, 0x105a, 0x0f9b,
+ 0x1167, 0x11ce, 0x102f, 0x1189, 0x13da, 0x1324,
+ 0x1210, 0x1208, 0x114e, 0x1086, 0x0fd2, 0x0d80,
+ 0x0b21, 0x0b13, 0x0b90, 0x0c0f, 0x0dbf, 0x0d25,
+ 0x0a33, 0x0ae9, 0x0d00, 0x0bea, 0x0b8a, 0x0b23,
+ 0x07b2, 0x06a3, 0x0809, 0x06c4, 0x05ab, 0x064d,
+ 0x05ef, 0x05d5, 0x067c, 0x06c2, 0x0715, 0x06ba,
+ 0x0642, 0x073c, 0x0809, 0x0729, 0x0575, 0x049e,
+ 0x0475, 0x0318, 0x027b, 0x02fa, 0x0015, 0xfd03,
+ 0xfe12, 0xfddc, 0xfc7f, 0xfea1, 0x003a, 0xffb2,
+ 0x0076, 0x00c9, 0xff65, 0xfef9, 0x0021, 0x00dd,
+ 0x00a5, 0x01af, 0x0307, 0x0199, 0x0018, 0x0040,
+ 0xff04, 0xfd76, 0xfdda, 0xff41, 0x00f1, 0x0247,
+ 0x03f9, 0x05df, 0x057c, 0x0532, 0x067a, 0x0588,
+ 0x0415, 0x0409, 0x0296, 0x01b0, 0x01f1, 0x0073,
+ 0xff6c, 0xff92, 0xffea, 0x0207, 0x030d, 0x01dc,
+ 0x029f, 0x03ba, 0x039b, 0x056b, 0x078e, 0x0723,
+ 0x0578, 0x04c4, 0x0696, 0x0885, 0x07ba, 0x078b,
+ 0x099b, 0x0a7d, 0x09e9, 0x09bd, 0x09f2, 0x0a1e,
+ 0x09ff, 0x09b3, 0x0908, 0x0788, 0x073a, 0x08fc,
+ 0x0944, 0x0765, 0x0675, 0x0663, 0x05e1, 0x04ac,
+ 0x032a, 0x0484, 0x0769, 0x057e, 0x0238, 0x0343,
+ 0x03f2, 0x03b4, 0x04fb, 0x0315, 0x0032, 0x0095,
+ 0xfe46, 0xfacd, 0xfc89, 0xfe08, 0xfd01, 0xfe06,
+ 0xff2a, 0xff69, 0x0159, 0x02d5, 0x0246, 0x01e6,
+ 0x01c5, 0x00f3, 0x015b, 0x0391, 0x046f, 0x03b4,
+ 0x02f7, 0x0088, 0xfde0, 0xfdd5, 0xfd98, 0xfccc,
+ 0xfd31, 0xfc75, 0xfafb, 0xf9eb, 0xf81b, 0xf839,
+ 0xfa68, 0xfb34, 0xfba8, 0xfb24, 0xf86e, 0xf815,
+ 0xfaa1, 0xfb36, 0xf94a, 0xf834, 0xf942, 0xfa02,
+ 0xfa18, 0xfb3c, 0xfb1c, 0xfa54, 0xfaf2, 0xf881,
+ 0xf5c3, 0xf92f, 0xfbc2, 0xfa56, 0xfb65, 0xfd2d,
+ 0xfd69, 0xfdd7, 0xfc3d, 0xfa65, 0xfb40, 0xfb26,
+ 0xfa47, 0xfba7, 0xfcc9, 0xfc27, 0xfbcb, 0xfc61,
+ 0xfd3d, 0xfe22, 0xfe8c, 0xfdcd, 0xfd93, 0xfed8,
+ 0xfec8, 0xfd45, 0xfbf2, 0xf8b6, 0xf53b, 0xf5a3,
+ 0xf728, 0xf760, 0xf83f, 0xf8db, 0xf869, 0xf916,
+ 0xfa4a, 0xfaa5, 0xfc64, 0xff99, 0x008e, 0xffd3,
+ 0x002e, 0x0054, 0x0013, 0x001e, 0xfe9c, 0xfd97,
+ 0xff6e, 0x012a, 0x02a6, 0x0541, 0x072d, 0x07f2,
+ 0x0745, 0x066d, 0x0862, 0x09b1, 0x0838, 0x0820,
+ 0x080c, 0x05db, 0x0497, 0x0481, 0x0589, 0x078b,
+ 0x07d4, 0x0874, 0x0ac2, 0x0a9f, 0x08db, 0x0819,
+ 0x06ad, 0x04ec, 0x04a8, 0x0547, 0x0524, 0x0420,
+ 0x03ec, 0x0370, 0x0192, 0x011f, 0x0152, 0x00c6,
+ 0x01e5, 0x0216, 0x000c, 0x00be, 0x0248, 0x0134,
+ 0x0036, 0xff30, 0xfe2b, 0xfe5a, 0xfd03, 0xfc69,
+ 0xfee7, 0xfe57, 0xfb61, 0xfbb9, 0xfc1f, 0xfb9b,
+ 0xfdea, 0xffa7, 0xfe72, 0xfdc2, 0xfd5e, 0xfc5f,
+ 0xfd90, 0x004d, 0x0105, 0x0017, 0xffe1, 0x0074,
+ 0x00fe, 0x0108, 0x002c, 0xff27, 0xfefd, 0xff3b,
+ 0xff96, 0xffdb, 0xfedc, 0xfdbf, 0xfed0, 0xffed,
+ 0xfeb3, 0xfd4a, 0xfd4b, 0xfd50, 0xfc55, 0xfb5a,
+ 0xfbd1, 0xfc7f, 0xfc85, 0xfe48, 0x0099, 0x0119,
+ 0x02b0, 0x040a, 0x01dd, 0x01f9, 0x0576, 0x0545,
+ 0x038e, 0x04ae, 0x0583, 0x05dd, 0x0791, 0x08ee,
+ 0x0965, 0x093f, 0x08a4, 0x0882, 0x0841, 0x0741,
+ 0x0671, 0x06a4, 0x07a3, 0x07b3, 0x0702, 0x0762,
+ 0x0717, 0x05c8, 0x0643, 0x0710, 0x068c, 0x05ed,
+ 0x03f5, 0x013c, 0x0090, 0x00bf, 0x0117, 0x02c1,
+ 0x0448, 0x04a4, 0x0454, 0x0395, 0x0342, 0x0335,
+ 0x0221, 0x0040, 0xff30, 0xffae, 0x0061, 0x012e,
+ 0x036e, 0x04a8, 0x03a4, 0x03dc, 0x03a9, 0x008d,
+ 0xffab, 0x01c0, 0x01e7, 0x015f, 0x017d, 0xffe9,
+ 0xfea3, 0xff67, 0xffaf, 0xff74, 0xff46, 0xfd0f,
+ 0xf9a0, 0xf7c4, 0xf714, 0xf69f, 0xf6f7, 0xf778,
+ 0xf742, 0xf750, 0xf81b, 0xf87c, 0xf802, 0xf762,
+ 0xf76a, 0xf837, 0xf898, 0xf876, 0xf93b, 0xf9e0,
+ 0xf984, 0xfa4f, 0xfb5f, 0xfa6f, 0xfa3a, 0xfc74,
+ 0xfedc, 0x0098, 0x0195, 0x01cf, 0x01ef, 0x0271,
+ 0x051a, 0x0871, 0x07d0, 0x0629, 0x071a, 0x068f,
+ 0x051d, 0x05f3, 0x05a1, 0x034e, 0x00c5, 0xfd6c,
+ 0xfb53, 0xfb7a, 0xfbd5, 0xfc60, 0xfc1f, 0xfa79,
+ 0xf8df, 0xf6b4, 0xf56f, 0xf648, 0xf584, 0xf3a9,
+ 0xf37c, 0xf398, 0xf531, 0xf89a, 0xfaa6, 0xfc9d,
+ 0xff23, 0x0016, 0x00ff, 0x0256, 0x0316, 0x047e,
+ 0x059a, 0x0530, 0x04ed, 0x0537, 0x0501, 0x043a,
+ 0x04a6, 0x0712, 0x0843, 0x0782, 0x0805, 0x089a,
+ 0x072f, 0x05c9, 0x0506, 0x040e, 0x034a, 0x02ca,
+ 0x0211, 0x00e1, 0xffd5, 0xff89, 0xffcf, 0x00e3,
+ 0x017b, 0xffde, 0xfe50, 0xfe75, 0xfee7, 0xff46,
+ 0xfef3, 0xfe70, 0xff6b, 0xffc8, 0xff58, 0x00a0,
+ 0x00d0, 0xff5a, 0x0063, 0x01e4, 0x0198, 0x0263,
+ 0x039f, 0x03e6, 0x0553, 0x0778, 0x08ed, 0x0b04,
+ 0x0dbd, 0x0efb, 0x0e20, 0x0cf7, 0x0ce7, 0x0ce6,
+ 0x0ccc, 0x0dd4, 0x0e28, 0x0cb8, 0x0c89, 0x0d1b,
+ 0x0c24, 0x0c3a, 0x0d07, 0x0b71, 0x0a40, 0x0a4f,
+ 0x089a, 0x0741, 0x075a, 0x06b0, 0x069e, 0x0710,
+ 0x06a9, 0x0733, 0x0842, 0x08bc, 0x08ff, 0x07f2,
+ 0x071f, 0x07aa, 0x073b, 0x0754, 0x089f, 0x08ba,
+ 0x09c5, 0x0b34, 0x0a1c, 0x09bb, 0x09cc, 0x07b7,
+ 0x0751, 0x083c, 0x0712, 0x06a1, 0x06d8, 0x0463,
+ 0x019a, 0x013e, 0x0158, 0x003a, 0xff78, 0xff92,
+ 0xfed8, 0xfe56, 0xfea1, 0xfd6d, 0xfc6c, 0xfd1e,
+ 0xfcc9, 0xfc5d, 0xfd06, 0xfca5, 0xfcb7, 0xfe50,
+ 0xfef5, 0xfe5b, 0xfd21, 0xfbf4, 0xfbee, 0xfbd8,
+ 0xfb78, 0xfc2a, 0xfd58, 0xfe87, 0xff4a, 0xff29,
+ 0xff6d, 0xff8b, 0xfe53, 0xfd9e, 0xfe3c, 0xff1f,
+ 0xff96, 0xfee3, 0xfde7, 0xfdeb, 0xfe1b, 0xfe35,
+ 0xfef7, 0xffe2, 0x006b, 0x0163, 0x0304, 0x03be,
+ 0x0417, 0x059d, 0x0597, 0x03e6, 0x0501, 0x06c6,
+ 0x05d7, 0x0566, 0x05e0, 0x05fa, 0x0746, 0x07f9,
+ 0x0775, 0x08ab, 0x09af, 0x08a8, 0x07c0, 0x0651,
+ 0x0420, 0x0384, 0x03d1, 0x03f7, 0x04a6, 0x053d,
+ 0x0592, 0x0608, 0x0550, 0x034e, 0x01a5, 0x0094,
+ 0xffe0, 0xffbd, 0xffc5, 0xfff4, 0x0068, 0x0077,
+ 0x0064, 0x0090, 0x0081, 0x010d, 0x023a, 0x0245,
+ 0x01dc, 0x0260, 0x0328, 0x0419, 0x04f8, 0x04e5,
+ 0x0402, 0x02a4, 0x0224, 0x036e, 0x0464, 0x0433,
+ 0x03d9, 0x02db, 0x01a3, 0x00c9, 0xfffc, 0x002a,
+ 0x009b, 0x0015, 0xffee, 0xff60, 0xfd93, 0xfc93,
+ 0xfbb0, 0xf9e3, 0xf8a9, 0xf7bf, 0xf761, 0xf83e,
+ 0xf88d, 0xf88a, 0xf8e7, 0xf7cd, 0xf5e3, 0xf459,
+ 0xf230, 0xf09b, 0xf0bf, 0xf083, 0xeefa, 0xee1d,
+ 0xef17, 0xf0a3, 0xf1f8, 0xf330, 0xf2f8, 0xf1b8,
+ 0xf1bf, 0xf24d, 0xf29a, 0xf3f2, 0xf5c0, 0xf6db,
+ 0xf711, 0xf776, 0xf9d3, 0xfbb3, 0xfa9a, 0xf965,
+ 0xf870, 0xf6b1, 0xf66f, 0xf627, 0xf4ad, 0xf541,
+ 0xf610, 0xf53a, 0xf5eb, 0xf700, 0xf6f5, 0xf7f0,
+ 0xf8f5, 0xf942, 0xf92a, 0xf720, 0xf57c, 0xf621,
+ 0xf634, 0xf6a2, 0xf85d, 0xf8b1, 0xf967, 0xfba2,
+ 0xfc5f, 0xfc78, 0xfc85, 0xfb84, 0xfc94, 0xfef1,
+ 0xfe68, 0xfd9a, 0xfe68, 0xfde4, 0xfd60, 0xfec5,
+ 0xffd3, 0x001b, 0x00e6, 0x0233, 0x03e1, 0x0566,
+ 0x066b, 0x074a, 0x0748, 0x0622, 0x059d, 0x069c,
+ 0x0784, 0x06c1, 0x050c, 0x03eb, 0x03c7, 0x0463,
+ 0x04a3, 0x038c, 0x022a, 0x0132, 0x0042, 0x0016,
+ 0x00ca, 0x01aa, 0x02d4, 0x0363, 0x02b5, 0x01ca,
+ 0x0065, 0xfeb9, 0xfe58, 0xfeb2, 0xfe7b, 0xfd8d,
+ 0xfc36, 0xfbca, 0xfc71, 0xfd0d, 0xfde3, 0xfe5f,
+ 0xfdf4, 0xfd8c, 0xfc26, 0xfa62, 0xfae9, 0xfbae,
+ 0xfba2, 0xfce6, 0xfd1e, 0xfbc2, 0xfc18, 0xfc14,
+ 0xfad1, 0xfbab, 0xfce5, 0xfc3d, 0xfbf9, 0xfce6,
+ 0xfdf9, 0xfe89, 0xfeef, 0xff9f, 0xfea9, 0xfcec,
+ 0xfe2f, 0x002f, 0x0004, 0xffa5, 0xff82, 0xfffc,
+ 0x0187, 0x01b0, 0x011c, 0x0098, 0xfde3, 0xfba2,
+ 0xfb8d, 0xfa91, 0xfa65, 0xfbf0, 0xfc32, 0xfcf2,
+ 0xfeb6, 0xff0f, 0x0005, 0x01c7, 0x01ce, 0x012d,
+ 0x0073, 0xff42, 0xfe67, 0xfd9e, 0xfd3e, 0xfd64,
+ 0xfd88, 0xff48, 0x022f, 0x0447, 0x0683, 0x0837,
+ 0x0848, 0x0866, 0x07eb, 0x05f1, 0x03f8, 0x0236,
+ 0x01a9, 0x0378, 0x0640, 0x08fc, 0x0a6c, 0x0a19,
+ 0x0a26, 0x0a08, 0x08ae, 0x0832, 0x07cc, 0x05c7,
+ 0x03f4, 0x0379, 0x042f, 0x0594, 0x06d6, 0x0858,
+ 0x092a, 0x084b, 0x07ac, 0x074b, 0x05e2, 0x0487,
+ 0x035f, 0x0282, 0x02ac, 0x0268, 0x01a1, 0x0204,
+ 0x02b7, 0x021d, 0x0074, 0xff71, 0xffc3, 0xff70,
+ 0xfdef, 0xfcc7, 0xfc09, 0xfb7e, 0xfa9d, 0xf8f6,
+ 0xf7e1, 0xf704, 0xf630, 0xf7a0, 0xf979, 0xf922,
+ 0xf8d2, 0xf90d, 0xf8f8, 0xf982, 0xf9e2, 0xf98f,
+ 0xf938, 0xf85f, 0xf777, 0xf70e, 0xf6bc, 0xf67d,
+ 0xf550, 0xf3d0, 0xf45a, 0xf60d, 0xf7de, 0xfa13,
+ 0xfb99, 0xfd16, 0xff00, 0x0000, 0x013e, 0x02ba,
+ 0x02eb, 0x035a, 0x03a5, 0x0298, 0x02a4, 0x034c,
+ 0x027f, 0x01b7, 0x0150, 0x010a, 0x01e7, 0x031f,
+ 0x0430, 0x04ae, 0x0316, 0x0076, 0xfe45, 0xfc29,
+ 0xfb00, 0xfaba, 0xf9e9, 0xf930, 0xf952, 0xf9da,
+ 0xfa2d, 0xf965, 0xf82e, 0xf804, 0xf8a6, 0xf9aa,
+ 0xfa8e, 0xfacc, 0xfbc7, 0xfd6f, 0xfdc3, 0xfe47,
+ 0x0085, 0x01e5, 0x01e4, 0x0241, 0x01d0, 0x002d,
+ 0xff8a, 0x007f, 0x0260, 0x0436, 0x0503, 0x0591,
+ 0x0623, 0x05b1, 0x04e4, 0x0426, 0x030b, 0x025c,
+ 0x01ab, 0x00a6, 0x00e6, 0x0190, 0x014c, 0x01d2,
+ 0x030f, 0x0312, 0x0257, 0x020a, 0x0246, 0x02db,
+ 0x03fc, 0x05b9, 0x068e, 0x05cf, 0x050b, 0x04ae,
+ 0x04c9, 0x05f7, 0x06e7, 0x06dc, 0x069c, 0x05c7,
+ 0x04cb, 0x0470, 0x03d0, 0x038e, 0x04e6, 0x0668,
+ 0x072f, 0x0857, 0x0a2a, 0x0bcd, 0x0c71, 0x0bfd,
+ 0x0afa, 0x09f9, 0x093d, 0x08ab, 0x0889, 0x099a,
+ 0x0b73, 0x0cb9, 0x0cd6, 0x0c34, 0x0b96, 0x0b0b,
+ 0x0a40, 0x09e7, 0x0a6a, 0x0b20, 0x0bdb, 0x0c74,
+ 0x0c7b, 0x0c86, 0x0d4c, 0x0e90, 0x0f5a, 0x0e5e,
+ 0x0c4d, 0x0bb3, 0x0c57, 0x0c60, 0x0cb4, 0x0daa,
+ 0x0d7d, 0x0c85, 0x0bbe, 0x0ab2, 0x0a1f, 0x0a70,
+ 0x0a66, 0x0975, 0x07b8, 0x0660, 0x0695, 0x0688,
+ 0x05ab, 0x055e, 0x040b, 0x019f, 0x00c9, 0x00ce,
+ 0x007e, 0x003b, 0xff55, 0xfec6, 0xff83, 0x0004,
+ 0x0033, 0x0080, 0x00c2, 0x0164, 0x013e, 0x0067,
+ 0x00a6, 0x0080, 0xffa2, 0xffd5, 0xff76, 0xfe44,
+ 0xfe46, 0xfe63, 0xfe11, 0xfe2e, 0xfe39, 0xfed2,
+ 0x0053, 0x0154, 0x0162, 0x00a9, 0xffd8, 0xff7e,
+ 0xfe9d, 0xfdce, 0xfe50, 0xfec2, 0xfe92, 0xfe8c,
+ 0xfeb2, 0xff83, 0x00de, 0x01c6, 0x0257, 0x029a,
+ 0x0270, 0x0266, 0x0271, 0x0240, 0x0194, 0x0081,
+ 0x001f, 0x00dd, 0x025b, 0x045d, 0x05e7, 0x06d1,
+ 0x07d3, 0x0803, 0x072b, 0x06c3, 0x06d5, 0x06ee,
+ 0x06fd, 0x0603, 0x0404, 0x02a4, 0x023d, 0x0193,
+ 0x0085, 0x0076, 0x0147, 0x015e, 0x013d, 0x0220,
+ 0x02bc, 0x0236, 0x01e6, 0x01cd, 0x0106, 0x0071,
+ 0x009e, 0x00df, 0x017e, 0x02b4, 0x042c, 0x065d,
+ 0x088c, 0x093c, 0x08ef, 0x0823, 0x06e0, 0x0620,
+ 0x05a1, 0x04cc, 0x0441, 0x039c, 0x02fe, 0x0372,
+ 0x03de, 0x03b6, 0x0435, 0x04f6, 0x0521, 0x0516,
+ 0x052b, 0x052c, 0x0482, 0x0391, 0x02f4, 0x01fc,
+ 0x0152, 0x01bb, 0x0172, 0x0068, 0xffe0, 0xff1c,
+ 0xfe30, 0xfd35, 0xfb0a, 0xf8b8, 0xf72b, 0xf5ca,
+ 0xf5b4, 0xf742, 0xf8f1, 0xfa80, 0xfb84, 0xfae4,
+ 0xf925, 0xf78c, 0xf689, 0xf58e, 0xf42b, 0xf2f0,
+ 0xf229, 0xf1e3, 0xf2aa, 0xf3dc, 0xf422, 0xf3fb,
+ 0xf4ca, 0xf628, 0xf6e1, 0xf76b, 0xf7f6, 0xf751,
+ 0xf61e, 0xf5ba, 0xf58d, 0xf563, 0xf578, 0xf5ae,
+ 0xf6ee, 0xf8b0, 0xf945, 0xf974, 0xf9bb, 0xf992,
+ 0xf9cb, 0xfa33, 0xfa2a, 0xfabf, 0xfbbe, 0xfbb8,
+ 0xfa6f, 0xf909, 0xf928, 0xf9fe, 0xf9cf, 0xfa0f,
+ 0xfbba, 0xfd6d, 0xfedd, 0xff97, 0xff09, 0xfe88,
+ 0xfe52, 0xfdda, 0xfe4a, 0xffdd, 0x018c, 0x0329,
+ 0x0426, 0x03e3, 0x034e, 0x0323, 0x02c4, 0x0252,
+ 0x0289, 0x02a0, 0x0222, 0x0232, 0x0273, 0x023e,
+ 0x02ee, 0x0438, 0x0482, 0x0447, 0x03d8, 0x02f8,
+ 0x02c4, 0x0389, 0x047d, 0x0574, 0x0633, 0x0672,
+ 0x0661, 0x0694, 0x078d, 0x087d, 0x0872, 0x07c9,
+ 0x065c, 0x03d7, 0x0152, 0xffc3, 0xff23, 0xff57,
+ 0x0008, 0x0075, 0x0058, 0x00ab, 0x01bd, 0x0224,
+ 0x0205, 0x0278, 0x0203, 0x0010, 0xfe64, 0xfd24,
+ 0xfbe7, 0xfb25, 0xfacf, 0xfb55, 0xfc9a, 0xfd48,
+ 0xfdd5, 0xfeb0, 0xfea4, 0xfe4f, 0xfe31, 0xfcc2,
+ 0xfa99, 0xf925, 0xf7e9, 0xf763, 0xf840, 0xf8e7,
+ 0xf880, 0xf80d, 0xf853, 0xf973, 0xfab9, 0xfb6f,
+ 0xfc0e, 0xfce5, 0xfd94, 0xfdfb, 0xfe38, 0xfef4,
+ 0x0047, 0x0079, 0xff2b, 0xfe05, 0xfcff, 0xfb77,
+ 0xfa35, 0xf961, 0xf8d2, 0xf917, 0xf9f9, 0xfad3,
+ 0xfb86, 0xfc68, 0xfe07, 0x000c, 0x01ba, 0x02f2,
+ 0x031e, 0x0220, 0x0156, 0x01a0, 0x02c8, 0x03f0,
+ 0x0456, 0x0498, 0x04a8, 0x03c9, 0x0363, 0x0410,
+ 0x0456, 0x0435, 0x038b, 0x01ac, 0x003f, 0x009b,
+ 0x01f2, 0x0321, 0x0342, 0x0337, 0x0473, 0x060e,
+ 0x0735, 0x07e2, 0x07be, 0x07df, 0x0894, 0x0878,
+ 0x083e, 0x08a4, 0x0897, 0x0874, 0x08a4, 0x088c,
+ 0x08c7, 0x0945, 0x08d1, 0x07a3, 0x064a, 0x04fa,
+ 0x0449, 0x0408, 0x0383, 0x02d4, 0x0251, 0x0201,
+ 0x0191, 0x00b0, 0xffaf, 0xfef4, 0xfe65, 0xfdcc,
+ 0xfd18, 0xfc86, 0xfc6f, 0xfc84, 0xfc2f, 0xfb9f,
+ 0xfae9, 0xf9c0, 0xf89f, 0xf75a, 0xf4d2, 0xf28a,
+ 0xf2dd, 0xf497, 0xf615, 0xf791, 0xf846, 0xf797,
+ 0xf6a8, 0xf61f, 0xf66b, 0xf822, 0xfa43, 0xfbb2,
+ 0xfd14, 0xfef5, 0x00e1, 0x029a, 0x03d9, 0x041a,
+ 0x03cf, 0x03a3, 0x0310, 0x01dd, 0x00bc, 0xffcf,
+ 0xff3b, 0xff43, 0xff82, 0x0001, 0x00c5, 0x0106,
+ 0x00ce, 0x00aa, 0x009d, 0x008a, 0xffd5, 0xfe3d,
+ 0xfcae, 0xfb7a, 0xfa72, 0xf9d7, 0xf99d, 0xf9a8,
+ 0xf9f3, 0xfa54, 0xfaa3, 0xfa5d, 0xf9e4, 0xfa6f,
+ 0xfb0d, 0xfa79, 0xf99f, 0xf8ed, 0xf842, 0xf819,
+ 0xf85a, 0xf93e, 0xfb02, 0xfcbf, 0xfe55, 0xffaa,
+ 0xfffd, 0x0067, 0x019b, 0x0250, 0x02d4, 0x041a,
+ 0x05a2, 0x0737, 0x0842, 0x07e0, 0x0742, 0x0757,
+ 0x06e8, 0x05aa, 0x046f, 0x02d7, 0x00ca, 0xff80,
+ 0xff21, 0xfea1, 0xfdca, 0xfd04, 0xfc6b, 0xfc58,
+ 0xfd32, 0xfe5a, 0xfecc, 0xff2e, 0x0075, 0x011f,
+ 0x005d, 0x0063, 0x0160, 0x015e, 0x00db, 0x00ba,
+ 0x0090, 0x00d4, 0x01b8, 0x028f, 0x02fd, 0x02b8,
+ 0x026a, 0x02fd, 0x03b5, 0x0407, 0x0421, 0x03b6,
+ 0x030d, 0x0256, 0x01b8, 0x029a, 0x04d2, 0x0688,
+ 0x0759, 0x06f3, 0x0580, 0x0535, 0x0657, 0x0735,
+ 0x07ea, 0x08ec, 0x09eb, 0x0b00, 0x0c16, 0x0d6b,
+ 0x0f35, 0x104c, 0x101c, 0x0f34, 0x0da1, 0x0c17,
+ 0x0b7a, 0x0ac7, 0x0937, 0x07cc, 0x0724, 0x0709,
+ 0x075e, 0x0818, 0x0985, 0x0ba1, 0x0d83, 0x0ebd,
+ 0x0f71, 0x0f1f, 0x0d8b, 0x0b5c, 0x08f4, 0x06c0,
+ 0x0583, 0x050f, 0x04e2, 0x0533, 0x060b, 0x0719,
+ 0x082f, 0x0906, 0x097b, 0x097e, 0x08a3, 0x06d6,
+ 0x04c7, 0x0355, 0x02f5, 0x0373, 0x0479, 0x05ba,
+ 0x0667, 0x0616, 0x0535, 0x043a, 0x03b1, 0x03d4,
+ 0x043c, 0x04d8, 0x0544, 0x04bf, 0x03dd, 0x0339,
+ 0x02b5, 0x02ba, 0x029f, 0x0157, 0x000d, 0xff71,
+ 0xfee7, 0xff48, 0x00cc, 0x0200, 0x0263, 0x0230,
+ 0x01ad, 0x0152, 0x012d, 0x01ad, 0x02dc, 0x0362,
+ 0x030e, 0x0291, 0x0189, 0x0034, 0xff28, 0xfe11,
+ 0xfd65, 0xfd91, 0xfe14, 0xff05, 0x0009, 0x004d,
+ 0x006b, 0x00bc, 0x00c5, 0x011e, 0x020b, 0x0292,
+ 0x0289, 0x02c1, 0x0397, 0x0476, 0x04ca, 0x0529,
+ 0x0614, 0x06bd, 0x067c, 0x05f4, 0x060f, 0x063e,
+ 0x04fa, 0x02d4, 0x01a8, 0x0151, 0x0137, 0x01db,
+ 0x02bc, 0x0327, 0x03b6, 0x04a7, 0x05b8, 0x06b3,
+ 0x0715, 0x072c, 0x07ad, 0x0815, 0x082e, 0x085b,
+ 0x080e, 0x0782, 0x07c2, 0x07cf, 0x06bc, 0x05e7,
+ 0x05d1, 0x05af, 0x05a8, 0x05ae, 0x052d, 0x046e,
+ 0x03f2, 0x03f0, 0x0458, 0x0499, 0x04b2, 0x04cf,
+ 0x044a, 0x036e, 0x0330, 0x031a, 0x02e0, 0x02de,
+ 0x02a2, 0x0213, 0x0178, 0x0068, 0xff53, 0xff43,
+ 0xffd0, 0xffd7, 0xfee7, 0xfd37, 0xfb5a, 0xf9f4,
+ 0xf95d, 0xf915, 0xf82a, 0xf6d1, 0xf5d0, 0xf4f7,
+ 0xf3f4, 0xf2d9, 0xf1a7, 0xf0b3, 0xf03a, 0xefd7,
+ 0xef89, 0xf021, 0xf1c7, 0xf349, 0xf3bb, 0xf365,
+ 0xf2d6, 0xf26b, 0xf22f, 0xf1da, 0xf1a6, 0xf187,
+ 0xf0ec, 0xf0b1, 0xf173, 0xf1f6, 0xf25e, 0xf36b,
+ 0xf3aa, 0xf2a1, 0xf17a, 0xf056, 0xefcf, 0xf0aa,
+ 0xf1c5, 0xf2a1, 0xf3e7, 0xf51c, 0xf5df, 0xf696,
+ 0xf738, 0xf7f5, 0xf91d, 0xf9e3, 0xf9be, 0xf9ab,
+ 0xfa42, 0xfaaa, 0xfa89, 0xfa60, 0xfa07, 0xf96d,
+ 0xf95a, 0xf9d0, 0xfa23, 0xfa9a, 0xfbcf, 0xfd7a,
+ 0xff04, 0x0003, 0x0073, 0x00ee, 0x01f4, 0x02f9,
+ 0x0353, 0x0386, 0x0475, 0x05d2, 0x068e, 0x066f,
+ 0x0619, 0x05b2, 0x052f, 0x0510, 0x0585, 0x0663,
+ 0x0768, 0x07a1, 0x070a, 0x06d1, 0x0660, 0x0516,
+ 0x044e, 0x03e9, 0x02f8, 0x0274, 0x02b3, 0x037e,
+ 0x056f, 0x077e, 0x084e, 0x0841, 0x0747, 0x05c8,
+ 0x0512, 0x0478, 0x0355, 0x02a4, 0x023d, 0x018f,
+ 0x00d4, 0x0038, 0x00b3, 0x0268, 0x0362, 0x0359,
+ 0x0334, 0x023e, 0x00db, 0x004e, 0xff96, 0xfe24,
+ 0xfd24, 0xfc62, 0xfb42, 0xfa6f, 0xfa2c, 0xfa0d,
+ 0xfa31, 0xfb01, 0xfc34, 0xfcbd, 0xfc42, 0xfb65,
+ 0xfa8a, 0xfa01, 0xfa15, 0xfa33, 0xf9c3, 0xf8ff,
+ 0xf84c, 0xf7b6, 0xf709, 0xf696, 0xf70e, 0xf83c,
+ 0xf997, 0xfafd, 0xfbf7, 0xfc96, 0xfda7, 0xff23,
+ 0x0083, 0x014b, 0x00f8, 0x0036, 0xffe1, 0xff6e,
+ 0xfe7b, 0xfd77, 0xfcc4, 0xfcc7, 0xfd75, 0xfe4a,
+ 0xff4d, 0x00a3, 0x01cc, 0x0256, 0x0294, 0x02d3,
+ 0x02f2, 0x035a, 0x0466, 0x0566, 0x0644, 0x0768,
+ 0x0803, 0x07d5, 0x07b9, 0x07b3, 0x078e, 0x0785,
+ 0x077f, 0x074a, 0x0692, 0x0562, 0x0449, 0x0328,
+ 0x0247, 0x02b9, 0x0414, 0x056d, 0x06ee, 0x088b,
+ 0x09ed, 0x0ab4, 0x0a74, 0x09b4, 0x0920, 0x08a5,
+ 0x082f, 0x077b, 0x067a, 0x059b, 0x04ce, 0x0423,
+ 0x03f6, 0x040c, 0x0454, 0x049f, 0x042e, 0x030c,
+ 0x0185, 0xffb1, 0xfe39, 0xfd1e, 0xfbd9, 0xfafe,
+ 0xfac5, 0xfa96, 0xfab6, 0xfb64, 0xfbd5, 0xfb83,
+ 0xfad5, 0xfa66, 0xfa56, 0xfa2d, 0xf985, 0xf8d4,
+ 0xf8a6, 0xf859, 0xf762, 0xf665, 0xf5c3, 0xf56f,
+ 0xf59d, 0xf631, 0xf754, 0xf938, 0xfaea, 0xfbc7,
+ 0xfc38, 0xfc8b, 0xfd27, 0xfe1e, 0xfec4, 0xfec3,
+ 0xfe35, 0xfd98, 0xfd83, 0xfda4, 0xfdc4, 0xfe42,
+ 0xfed6, 0xff53, 0xffaf, 0xff71, 0xff25, 0xff41,
+ 0xfee3, 0xfdff, 0xfd37, 0xfc87, 0xfc75, 0xfd66,
+ 0xfe71, 0xfec0, 0xfe87, 0xfe5b, 0xfe30, 0xfda9,
+ 0xfcfa, 0xfc53, 0xfbeb, 0xfc2b, 0xfc60, 0xfc0b,
+ 0xfc6a, 0xfddf, 0xff69, 0x00b9, 0x01a0, 0x01e9,
+ 0x023f, 0x02df, 0x034c, 0x0391, 0x03c7, 0x0388,
+ 0x02f5, 0x02b2, 0x02ba, 0x02e4, 0x0372, 0x0415,
+ 0x043c, 0x0415, 0x03bd, 0x0350, 0x0359, 0x0398,
+ 0x0371, 0x02f3, 0x0216, 0x010b, 0x0089, 0x0080,
+ 0x001a, 0xfef5, 0xfd95, 0xfd09, 0xfda4, 0xfeb6,
+ 0xff96, 0x001c, 0x006d, 0x00b6, 0x0100, 0x0159,
+ 0x01b8, 0x01ce, 0x0132, 0xfff3, 0xfef0, 0xfefb,
+ 0xffff, 0x015f, 0x023a, 0x025b, 0x0279, 0x027d,
+ 0x0267, 0x0327, 0x0414, 0x043d, 0x04ac, 0x0538,
+ 0x04c4, 0x0428, 0x03c8, 0x0311, 0x02e7, 0x03fd,
+ 0x05bb, 0x07ab, 0x0946, 0x09e2, 0x0977, 0x08a3,
+ 0x0842, 0x0877, 0x0896, 0x085c, 0x07f0, 0x0789,
+ 0x0790, 0x082e, 0x0974, 0x0b81, 0x0d96, 0x0eae,
+ 0x0ee4, 0x0eb0, 0x0dea, 0x0c76, 0x0a85, 0x0855,
+ 0x069b, 0x061f, 0x06ac, 0x0782, 0x0839, 0x08b3,
+ 0x0907, 0x0965, 0x09d5, 0x0a16, 0x09bd, 0x0920,
+ 0x0933, 0x09d0, 0x0a2e, 0x0a3b, 0x09d9, 0x08cd,
+ 0x0778, 0x0660, 0x0615, 0x06af, 0x0734, 0x0728,
+ 0x06d2, 0x05e3, 0x0476, 0x0373, 0x0306, 0x02fc,
+ 0x039b, 0x04e9, 0x0658, 0x076e, 0x080b, 0x0803,
+ 0x0711, 0x058d, 0x0454, 0x03b5, 0x0349, 0x02ac,
+ 0x01d7, 0x00c0, 0xff19, 0xfd30, 0xfbfa, 0xfb89,
+ 0xfb35, 0xfad0, 0xfa42, 0xf99a, 0xf994, 0xfa74,
+ 0xfba4, 0xfce9, 0xfe1b, 0xfea2, 0xfe5a, 0xfd94,
+ 0xfc84, 0xfba4, 0xfb4a, 0xfb06, 0xfabd, 0xfac1,
+ 0xfaae, 0xfa30, 0xf9f1, 0xfa6c, 0xfb0f, 0xfb66,
+ 0xfbcf, 0xfc86, 0xfd45, 0xfe13, 0xff46, 0x00d2,
+ 0x0245, 0x0341, 0x0405, 0x04bc, 0x0511, 0x0560,
+ 0x0644, 0x072b, 0x07eb, 0x0943, 0x0ab0, 0x0b0f,
+ 0x0a36, 0x0893, 0x06f1, 0x05ef, 0x0599, 0x05f4,
+ 0x068d, 0x06f2, 0x07a6, 0x0868, 0x0882, 0x08c0,
+ 0x097b, 0x09a8, 0x093a, 0x091b, 0x0970, 0x098c,
+ 0x0953, 0x09c8, 0x0ae4, 0x0b54, 0x0b17, 0x0a8f,
+ 0x0974, 0x0876, 0x07d8, 0x06cb, 0x05a6, 0x04d3,
+ 0x0402, 0x0382, 0x032d, 0x02a1, 0x02b0, 0x0395,
+ 0x046b, 0x04a4, 0x0436, 0x03cb, 0x03b5, 0x032d,
+ 0x0243, 0x0151, 0xffcb, 0xfe3b, 0xfd7a, 0xfcb9,
+ 0xfbb6, 0xfb66, 0xfbd0, 0xfc23, 0xfc04, 0xfbb8,
+ 0xfb76, 0xfb07, 0xfa4b, 0xf94c, 0xf83b, 0xf776,
+ 0xf6c2, 0xf5c1, 0xf4ca, 0xf3eb, 0xf309, 0xf2b7,
+ 0xf334, 0xf3f4, 0xf40a, 0xf30a, 0xf1e2, 0xf133,
+ 0xf09c, 0xf04f, 0xf07f, 0xf10d, 0xf235, 0xf31d,
+ 0xf2c5, 0xf1fa, 0xf15b, 0xf0cc, 0xf0c0, 0xf156,
+ 0xf27b, 0xf419, 0xf53a, 0xf574, 0xf57f, 0xf5c1,
+ 0xf6c0, 0xf8a9, 0xfa4a, 0xfafb, 0xfb2b, 0xfacb,
+ 0xf9f5, 0xf988, 0xf9d2, 0xfa5d, 0xfa9f, 0xfa47,
+ 0xf9d3, 0xfa25, 0xfb10, 0xfc10, 0xfd1b, 0xfde3,
+ 0xfe90, 0xff9b, 0x004a, 0x0048, 0x002c, 0xffb9,
+ 0xff17, 0xfeb7, 0xfdee, 0xfd47, 0xfd71, 0xfd4d,
+ 0xfd2b, 0xfdb7, 0xfdc3, 0xfdc8, 0xfed3, 0xffd0,
+ 0x0056, 0x00aa, 0x00a3, 0x0103, 0x01ff, 0x02e2,
+ 0x037e, 0x0394, 0x035b, 0x03a2, 0x0420, 0x045e,
+ 0x047f, 0x04a7, 0x0520, 0x0585, 0x0547, 0x04d3,
+ 0x047f, 0x04b6, 0x05db, 0x06dd, 0x073e, 0x07b3,
+ 0x07ec, 0x0795, 0x06df, 0x059c, 0x048a, 0x0443,
+ 0x03dd, 0x0316, 0x02a5, 0x02b7, 0x0304, 0x032e,
+ 0x02fe, 0x0292, 0x01f8, 0x011f, 0x0015, 0xff37,
+ 0xfe99, 0xfdb1, 0xfc8e, 0xfb72, 0xf9d3, 0xf83f,
+ 0xf7fe, 0xf879, 0xf8b9, 0xf8cb, 0xf873, 0xf7d2,
+ 0xf7e4, 0xf8dc, 0xf9d3, 0xfa1d, 0xf9d1, 0xf95d,
+ 0xf944, 0xf9f7, 0xfb53, 0xfcd7, 0xfdee, 0xfde4,
+ 0xfd03, 0xfc74, 0xfc68, 0xfc67, 0xfc6a, 0xfc54,
+ 0xfbf2, 0xfb60, 0xfaee, 0xfae2, 0xfb3f, 0xfbf4,
+ 0xfc82, 0xfc1f, 0xfb34, 0xfaa3, 0xfa60, 0xfa81,
+ 0xfb1c, 0xfb9d, 0xfbcc, 0xfba2, 0xfb14, 0xfa9d,
+ 0xfa83, 0xfae4, 0xfc1a, 0xfe05, 0x002b, 0x01cc,
+ 0x022b, 0x019b, 0x00a4, 0xffd7, 0x0014, 0x00d0,
+ 0x0123, 0x01a2, 0x029a, 0x03eb, 0x0580, 0x067e,
+ 0x06f1, 0x078c, 0x07d5, 0x0818, 0x091d, 0x0a52,
+ 0x0b70, 0x0c9a, 0x0dc4, 0x0f4a, 0x106d, 0x1005,
+ 0x0e9a, 0x0cf6, 0x0b75, 0x0a64, 0x0971, 0x08dc,
+ 0x0909, 0x0916, 0x08a5, 0x080d, 0x071f, 0x05f6,
+ 0x04bb, 0x034f, 0x01dd, 0x001f, 0xfe07, 0xfc5d,
+ 0xfb53, 0xfac2, 0xfa94, 0xfa59, 0xfa0f, 0xf984,
+ 0xf82e, 0xf6d5, 0xf62c, 0xf593, 0xf525, 0xf575,
+ 0xf64b, 0xf74f, 0xf819, 0xf875, 0xf8e1, 0xf9a8,
+ 0xfa91, 0xfb20, 0xfaef, 0xfa69, 0xfa12, 0xf9dd,
+ 0xfa0f, 0xfad3, 0xfba8, 0xfc44, 0xfcbb, 0xfd5e,
+ 0xfe8d, 0xffd1, 0x0073, 0x004d, 0xff5c, 0xfe03,
+ 0xfcd5, 0xfbbd, 0xfaba, 0xfa02, 0xf990, 0xf9a1,
+ 0xfa32, 0xfadc, 0xfba4, 0xfc6d, 0xfd19, 0xfe21,
+ 0xff29, 0xffa7, 0x004b, 0x013e, 0x01c0, 0x01ac,
+ 0x0114, 0x008b, 0x0120, 0x0278, 0x0359, 0x039a,
+ 0x03b8, 0x0400, 0x045a, 0x0474, 0x0434, 0x03cf,
+ 0x03dc, 0x04ba, 0x05c0, 0x0675, 0x073e, 0x0814,
+ 0x087e, 0x0852, 0x07b3, 0x06d1, 0x0569, 0x0391,
+ 0x024d, 0x01e0, 0x01c5, 0x01e0, 0x019a, 0x0099,
+ 0xff87, 0xfe54, 0xfd0a, 0xfcc7, 0xfd33, 0xfcfc,
+ 0xfc34, 0xfb18, 0xf9a0, 0xf863, 0xf799, 0xf6f8,
+ 0xf69c, 0xf6c6, 0xf7a8, 0xf909, 0xfa1f, 0xfac0,
+ 0xfb4b, 0xfb97, 0xfbfa, 0xfd0c, 0xfdec, 0xfde7,
+ 0xfe14, 0xfee9, 0xff81, 0xffaa, 0xffdd, 0x0060,
+ 0x0110, 0x0156, 0x013d, 0x016c, 0x01f1, 0x02b3,
+ 0x03df, 0x0545, 0x0698, 0x07a0, 0x0856, 0x091d,
+ 0x09c0, 0x09d1, 0x09d3, 0x0a26, 0x0a62, 0x0a68,
+ 0x0a6b, 0x0aad, 0x0b5d, 0x0c1b, 0x0c7b, 0x0c51,
+ 0x0b8e, 0x0ad8, 0x0ae0, 0x0b3b, 0x0b80, 0x0bfc,
+ 0x0cad, 0x0d54, 0x0e24, 0x0ee0, 0x0e83, 0x0d1d,
+ 0x0bd1, 0x0ac4, 0x09ea, 0x09d9, 0x0a21, 0x0a6c,
+ 0x0b6f, 0x0c64, 0x0bf4, 0x0ae3, 0x0a3d, 0x09f3,
+ 0x0a04, 0x0a8f, 0x0b53, 0x0bab, 0x0b34, 0x0a75,
+ 0x09b7, 0x0891, 0x0722, 0x05b8, 0x0459, 0x0353,
+ 0x02c0, 0x0256, 0x020f, 0x01db, 0x01b0, 0x01e2,
+ 0x0260, 0x02a4, 0x02a9, 0x02ea, 0x0369, 0x0372,
+ 0x02a0, 0x0185, 0x00b1, 0xffd6, 0xfea2, 0xfd98,
+ 0xfcd1, 0xfbc7, 0xfb0d, 0xfb78, 0xfc43, 0xfcb8,
+ 0xfd14, 0xfd44, 0xfd98, 0xfea0, 0xffbd, 0x002b,
+ 0x0012, 0xffbc, 0xff67, 0xff2f, 0xff17, 0xff5e,
+ 0xffe1, 0x0033, 0x0065, 0x0082, 0x008c, 0x00b3,
+ 0x0088, 0xffd8, 0xff97, 0x0013, 0x0075, 0x00a8,
+ 0x0138, 0x01ef, 0x029e, 0x036f, 0x03f3, 0x040a,
+ 0x046c, 0x04f4, 0x0525, 0x056c, 0x05e9, 0x0667,
+ 0x0760, 0x08cb, 0x0a0a, 0x0b30, 0x0c53, 0x0cc7,
+ 0x0c09, 0x0a77, 0x089b, 0x0691, 0x04e0, 0x0404,
+ 0x037b, 0x0367, 0x0453, 0x0538, 0x057e, 0x05d4,
+ 0x0607, 0x05e5, 0x05bd, 0x054b, 0x04f1, 0x055b,
+ 0x0615, 0x06c1, 0x0742, 0x076b, 0x0791, 0x0780,
+ 0x06c5, 0x05e4, 0x0549, 0x04e1, 0x0489, 0x041c,
+ 0x03dc, 0x03ba, 0x0381, 0x03aa, 0x03ef, 0x03cb,
+ 0x03dd, 0x042f, 0x0485, 0x050f, 0x04c2, 0x0358,
+ 0x0244, 0x01a1, 0x00f8, 0x00b0, 0x00c1, 0x00f1,
+ 0x00c3, 0xffe1, 0xff64, 0xffd6, 0x0069, 0x0078,
+ 0xff37, 0xfd49, 0xfc72, 0xfc00, 0xfaf4, 0xfa13,
+ 0xf8f3, 0xf772, 0xf6e6, 0xf6a3, 0xf56c, 0xf425,
+ 0xf382, 0xf326, 0xf30f, 0xf351, 0xf368, 0xf2da,
+ 0xf210, 0xf1a1, 0xf151, 0xf0c9, 0xeff6, 0xef02,
+ 0xee90, 0xeea0, 0xee87, 0xee47, 0xee32, 0xee7f,
+ 0xef70, 0xf0c8, 0xf265, 0xf451, 0xf5f8, 0xf707,
+ 0xf77e, 0xf723, 0xf689, 0xf666, 0xf664, 0xf637,
+ 0xf5e5, 0xf585, 0xf5c4, 0xf6c5, 0xf7b2, 0xf88f,
+ 0xf9e4, 0xfb01, 0xfb19, 0xfada, 0xfb1d, 0xfbd0,
+ 0xfce5, 0xfe3a, 0xff4f, 0x0003, 0x0039, 0xffbd,
+ 0xff13, 0xfe74, 0xfdab, 0xfd65, 0xfdfe, 0xfefb,
+ 0x0056, 0x01d7, 0x02d6, 0x0381, 0x043b, 0x04fd,
+ 0x05c7, 0x0666, 0x0703, 0x0831, 0x0988, 0x0a24,
+ 0x0a35, 0x0a32, 0x0a47, 0x0a97, 0x0a6f, 0x0945,
+ 0x0868, 0x08cb, 0x097f, 0x09f3, 0x0a25, 0x09c0,
+ 0x0906, 0x0834, 0x06fa, 0x0589, 0x0418, 0x02fb,
+ 0x02c1, 0x029e, 0x01cd, 0x00eb, 0xffec, 0xfec3,
+ 0xfe49, 0xfe2a, 0xfddd, 0xfdca, 0xfdee, 0xfe19,
+ 0xfe38, 0xfde7, 0xfd1c, 0xfbd8, 0xfa6d, 0xf984,
+ 0xf8af, 0xf7a4, 0xf72b, 0xf72b, 0xf73c, 0xf782,
+ 0xf7d9, 0xf87e, 0xf965, 0xf9db, 0xfa4b, 0xfae5,
+ 0xfae8, 0xfaec, 0xfb94, 0xfc9e, 0xfe52, 0x0068,
+ 0x01e6, 0x0281, 0x024d, 0x01b5, 0x0116, 0x0036,
+ 0xff6f, 0xff30, 0xff55, 0x0003, 0x00ef, 0x0179,
+ 0x01d6, 0x01fb, 0x01d9, 0x021c, 0x02da, 0x03b6,
+ 0x0452, 0x041b, 0x0342, 0x025f, 0x01ac, 0x0129,
+ 0x001d, 0xfe49, 0xfcd4, 0xfc1e, 0xfbad, 0xfb63,
+ 0xfad7, 0xfa23, 0xfa0d, 0xfa80, 0xfb38, 0xfc11,
+ 0xfc85, 0xfccc, 0xfd33, 0xfd19, 0xfc39, 0xfae9,
+ 0xf986, 0xf8a0, 0xf88c, 0xf924, 0xf9fc, 0xfac6,
+ 0xfbb7, 0xfcd9, 0xfdaf, 0xfdfe, 0xfe10, 0xfe8d,
+ 0xff86, 0x0045, 0x00fa, 0x01e1, 0x01f3, 0x011f,
+ 0x001d, 0xfe93, 0xfcd4, 0xfc00, 0xfc33, 0xfd3b,
+ 0xfe99, 0xff7b, 0xffda, 0xff7e, 0xfe2d, 0xfd0c,
+ 0xfcd5, 0xfd1b, 0xfd88, 0xfd6b, 0xfc4a, 0xfaf3,
+ 0xf9f6, 0xf91e, 0xf8b4, 0xf957, 0xfad2, 0xfc28,
+ 0xfd26, 0xfe73, 0xffc9, 0x009f, 0x014e, 0x01a6,
+ 0x0156, 0x00fb, 0x00e5, 0x0115, 0x019e, 0x01c5,
+ 0x014f, 0x0142, 0x01b4, 0x0216, 0x02a7, 0x0349,
+ 0x039a, 0x0400, 0x0482, 0x049a, 0x0454, 0x0426,
+ 0x044e, 0x04b6, 0x052c, 0x05ac, 0x05f4, 0x05b3,
+ 0x051f, 0x0442, 0x02f0, 0x017d, 0x0051, 0xffcc,
+ 0x0000, 0xfff6, 0xff3d, 0xfea2, 0xfe3b, 0xfdcb,
+ 0xfe1c, 0xff93, 0x0176, 0x0312, 0x041d, 0x047f,
+ 0x0422, 0x0336, 0x026c, 0x0247, 0x02b7, 0x034b,
+ 0x03a9, 0x0401, 0x0457, 0x0454, 0x03fc, 0x0331,
+ 0x01d2, 0x0067, 0xff34, 0xfe79, 0xfed3, 0xff89,
+ 0xffa4, 0xff7a, 0xff0e, 0xfe50, 0xfdea, 0xfdb5,
+ 0xfd53, 0xfd3c, 0xfd60, 0xfd53, 0xfd30, 0xfd08,
+ 0xfc84, 0xfb7d, 0xfad2, 0xfb35, 0xfbcf, 0xfc2d,
+ 0xfca0, 0xfca2, 0xfc34, 0xfbf1, 0xfb63, 0xfac0,
+ 0xfb07, 0xfbd0, 0xfc95, 0xfd7a, 0xfe08, 0xfe2b,
+ 0xfead, 0xffb7, 0x00c0, 0x0182, 0x01f6, 0x01e7,
+ 0x0153, 0x0098, 0xff9e, 0xfe85, 0xfe6c, 0xff59,
+ 0x000f, 0x0086, 0x0160, 0x0295, 0x03ce, 0x04b2,
+ 0x055e, 0x065d, 0x077c, 0x082f, 0x0880, 0x08af,
+ 0x08c7, 0x08a9, 0x0873, 0x085e, 0x081d, 0x07a4,
+ 0x0782, 0x07a2, 0x0789, 0x0739, 0x06e6, 0x06f3,
+ 0x0795, 0x0846, 0x08c7, 0x0986, 0x0a82, 0x0b3a,
+ 0x0b8c, 0x0bc6, 0x0c06, 0x0c11, 0x0bf1, 0x0bb0,
+ 0x0b0a, 0x0a6e, 0x0a80, 0x0aa1, 0x0a26, 0x0999,
+ 0x0953, 0x0900, 0x08b9, 0x08a6, 0x0894, 0x0892,
+ 0x08b0, 0x0892, 0x083a, 0x0823, 0x0877, 0x0917,
+ 0x09e6, 0x0a77, 0x0a63, 0x09f5, 0x0997, 0x090e,
+ 0x0814, 0x06e8, 0x05e2, 0x0558, 0x0559, 0x052a,
+ 0x0471, 0x03ef, 0x0405, 0x0485, 0x0559, 0x05f5,
+ 0x05ef, 0x05ba, 0x05b2, 0x05e7, 0x065c, 0x0669,
+ 0x058b, 0x047a, 0x03f1, 0x03d5, 0x040a, 0x0483,
+ 0x04a0, 0x03d7, 0x028e, 0x016b, 0x00a6, 0x0056,
+ 0x006d, 0x0099, 0x009a, 0x0080, 0x0094, 0x00c1,
+ 0x00cd, 0x0115, 0x016d, 0x0104, 0x0067, 0x0061,
+ 0x0092, 0x00f6, 0x01af, 0x0218, 0x0200, 0x019a,
+ 0x0107, 0x00e7, 0x0171, 0x0229, 0x02e3, 0x036c,
+ 0x0381, 0x036a, 0x0359, 0x0330, 0x032d, 0x036c,
+ 0x033c, 0x025e, 0x01df, 0x0246, 0x0304, 0x03fe,
+ 0x0523, 0x05da, 0x0613, 0x05d6, 0x0539, 0x04ef,
+ 0x04c3, 0x0408, 0x034e, 0x031d, 0x033a, 0x0398,
+ 0x041a, 0x045f, 0x0410, 0x0389, 0x038f, 0x03a0,
+ 0x0322, 0x02d8, 0x02c7, 0x02bf, 0x036f, 0x0410,
+ 0x0393, 0x02aa, 0x016b, 0xff70, 0xfd61, 0xfbad,
+ 0xfa56, 0xf997, 0xf9e0, 0xfbb0, 0xfe6d, 0x00d4,
+ 0x023f, 0x0265, 0x01f7, 0x0219, 0x025a, 0x020d,
+ 0x0187, 0x00ec, 0x0015, 0xfec4, 0xfd68, 0xfd31,
+ 0xfdba, 0xfe02, 0xfe5a, 0xfe82, 0xfe0c, 0xfdc0,
+ 0xfdb6, 0xfd7e, 0xfd40, 0xfd0f, 0xfcce, 0xfc12,
+ 0xfadc, 0xfa50, 0xfa98, 0xfb0d, 0xfbf1, 0xfcdd,
+ 0xfcfd, 0xfcc0, 0xfc6d, 0xfbed, 0xfb68, 0xfaa9,
+ 0xf98a, 0xf81b, 0xf6a8, 0xf61b, 0xf6b0, 0xf807,
+ 0xfa0a, 0xfbf4, 0xfd0c, 0xfd9a, 0xfdb5, 0xfd5b,
+ 0xfc77, 0xfacd, 0xf8e7, 0xf75a, 0xf6a8, 0xf76b,
+ 0xf87d, 0xf8a9, 0xf898, 0xf862, 0xf837, 0xf8f9,
+ 0xf99c, 0xf95a, 0xf96f, 0xf9fb, 0xfa7d, 0xfb25,
+ 0xfb9c, 0xfbcd, 0xfc0a, 0xfc13, 0xfba4, 0xfa79,
+ 0xf8cc, 0xf7b6, 0xf77e, 0xf7c3, 0xf89e, 0xf9a6,
+ 0xf9f7, 0xf97d, 0xf905, 0xf90e, 0xf90d, 0xf8da,
+ 0xf931, 0xfa01, 0xfae1, 0xfbf8, 0xfd41, 0xfede,
+ 0x00b9, 0x01e7, 0x0207, 0x0173, 0x00cd, 0x00df,
+ 0x0167, 0x021e, 0x036b, 0x0457, 0x0455, 0x04cc,
+ 0x0597, 0x05ae, 0x05a0, 0x0562, 0x0457, 0x0359,
+ 0x0300, 0x0281, 0x0153, 0x0024, 0xffd6, 0x0055,
+ 0x0184, 0x037c, 0x0526, 0x0554, 0x0478, 0x0359,
+ 0x023e, 0x0154, 0x00a3, 0x0024, 0xffc4, 0xff36,
+ 0xfe48, 0xfd0f, 0xfbfe, 0xfb66, 0xfaf2, 0xfa6e,
+ 0xf9fc, 0xf96f, 0xf8eb, 0xf91d, 0xfa32, 0xfb80,
+ 0xfc4d, 0xfcb9, 0xfd4d, 0xfde8, 0xfe5b, 0xfeb3,
+ 0xfeab, 0xfe6f, 0xfe57, 0xfde8, 0xfcfc, 0xfc4e,
+ 0xfc45, 0xfcbc, 0xfd5c, 0xfdfb, 0xfece, 0xffad,
+ 0x0009, 0xffbb, 0xfefc, 0xfe4a, 0xfdf7, 0xfdb9,
+ 0xfd89, 0xfdea, 0xfeb4, 0xff65, 0xfff3, 0x0020,
+ 0xff9d, 0xff0f, 0xff2f, 0xff75, 0xff14, 0xfe13,
+ 0xfcd4, 0xfbc1, 0xfb3e, 0xfb37, 0xfb90, 0xfc62,
+ 0xfd7c, 0xfe90, 0xff7e, 0x0014, 0x0052, 0x0052,
+ 0xffd5, 0xfee9, 0xfe1e, 0xfdb6, 0xfdc8, 0xfe61,
+ 0xff0d, 0xff9a, 0x0080, 0x01c0, 0x02fd, 0x046b,
+ 0x05fe, 0x0712, 0x0787, 0x077c, 0x06aa, 0x0543,
+ 0x03de, 0x0282, 0x0169, 0x0160, 0x025c, 0x0351,
+ 0x037c, 0x02d1, 0x01e1, 0x0169, 0x0147, 0x00c2,
+ 0xffae, 0xfe4c, 0xfd17, 0xfcbc, 0xfd3c, 0xfdc8,
+ 0xfde8, 0xfd8a, 0xfc9c, 0xfb7b, 0xfae2, 0xfb23,
+ 0xfbe9, 0xfcba, 0xfd48, 0xfd76, 0xfda8, 0xfe43,
+ 0xfedc, 0xff04, 0xfef0, 0xfead, 0xfe3c, 0xfdb4,
+ 0xfcdd, 0xfc33, 0xfc88, 0xfd4d, 0xfdf1, 0xff09,
+ 0x0070, 0x0123, 0x00d5, 0x0011, 0xff8e, 0xff74,
+ 0xff58, 0xff49, 0xff8c, 0xffc0, 0xffde, 0x003d,
+ 0x003d, 0xff64, 0xfe92, 0xfe3c, 0xfe11, 0xfe61,
+ 0xff24, 0xff9a, 0xffb9, 0xff70, 0xfe50, 0xfd0b,
+ 0xfc3f, 0xfb74, 0xface, 0xfade, 0xfbbe, 0xfd6c,
+ 0xff5a, 0x00e9, 0x022c, 0x02cb, 0x028c, 0x021b,
+ 0x01c7, 0x01c3, 0x0251, 0x0284, 0x01ea, 0x01c6,
+ 0x026a, 0x02fa, 0x0387, 0x0451, 0x04c8, 0x04a0,
+ 0x03f2, 0x02a2, 0x0128, 0x0076, 0x00b1, 0x0154,
+ 0x01ce, 0x019c, 0x00fb, 0x0095, 0x0093, 0x00e0,
+ 0x0106, 0x00b7, 0x00c8, 0x0105, 0xffe7, 0xfdf4,
+ 0xfc9d, 0xfb8f, 0xfa66, 0xf98f, 0xf93a, 0xf964,
+ 0xf9c1, 0xfa44, 0xfb43, 0xfc4e, 0xfcc7, 0xfc82,
+ 0xfb2d, 0xf955, 0xf824, 0xf78e, 0xf758, 0xf7dd,
+ 0xf8e3, 0xf9d4, 0xfa88, 0xfb1c, 0xfb8b, 0xfbaf,
+ 0xfbe5, 0xfc93, 0xfd5b, 0xfdd2, 0xfdbc, 0xfcf8,
+ 0xfc51, 0xfc5b, 0xfc95, 0xfd34, 0xfefc, 0x015c,
+ 0x032e, 0x042d, 0x04b7, 0x0518, 0x057f, 0x0637,
+ 0x075b, 0x089a, 0x0951, 0x0922, 0x08a4, 0x0879,
+ 0x085b, 0x0850, 0x08d8, 0x09d1, 0x0b1d, 0x0ca0,
+ 0x0da7, 0x0e2d, 0x0ecf, 0x0f7e, 0x0ff5, 0x1014,
+ 0x0f9a, 0x0e88, 0x0d21, 0x0bfd, 0x0bbe, 0x0c01,
+ 0x0c10, 0x0be5, 0x0ba0, 0x0b74, 0x0bab, 0x0c2a,
+ 0x0cd0, 0x0d83, 0x0de1, 0x0df3, 0x0e0f, 0x0e06,
+ 0x0db9, 0x0d7c, 0x0d3c, 0x0c80, 0x0b7d, 0x0abe,
+ 0x0a3a, 0x09aa, 0x090b, 0x08ba, 0x0934, 0x09fa,
+ 0x09d0, 0x0891, 0x06bc, 0x0492, 0x02d6, 0x0200,
+ 0x01be, 0x022f, 0x02eb, 0x02de, 0x0278, 0x028e,
+ 0x02b6, 0x02f5, 0x037c, 0x0357, 0x021f, 0x009c,
+ 0xff30, 0xfde0, 0xfd1b, 0xfd1c, 0xfd77, 0xfdbb,
+ 0xfdf1, 0xfe30, 0xfe4e, 0xfe33, 0xfde9, 0xfd8a,
+ 0xfd30, 0xfcc0, 0xfc1b, 0xfb3a, 0xfa2c, 0xf97c,
+ 0xf9a4, 0xfa49, 0xfb1e, 0xfc57, 0xfdef, 0xffb9,
+ 0x0142, 0x01ba, 0x011b, 0x002b, 0xff41, 0xfe78,
+ 0xfe21, 0xfe51, 0xfede, 0xff54, 0xff46, 0xff31,
+ 0xffb1, 0x0056, 0x0098, 0x0096, 0x008e, 0x008d,
+ 0x00ad, 0x014a, 0x029b, 0x03f1, 0x0454, 0x03a7,
+ 0x026f, 0x0131, 0x006f, 0x0065, 0x00cf, 0x012d,
+ 0x0105, 0x005a, 0xffed, 0x006c, 0x01da, 0x03df,
+ 0x05de, 0x0705, 0x071e, 0x068a, 0x05a4, 0x0527,
+ 0x05d8, 0x0758, 0x08d8, 0x0a08, 0x0a93, 0x0a74,
+ 0x0a3b, 0x09e2, 0x08e8, 0x075e, 0x0577, 0x0398,
+ 0x02a9, 0x0303, 0x041b, 0x0547, 0x05d3, 0x05a8,
+ 0x05c0, 0x0678, 0x0719, 0x074f, 0x0725, 0x0685,
+ 0x058e, 0x0477, 0x03ae, 0x03bd, 0x0439, 0x0437,
+ 0x0364, 0x016f, 0xfe84, 0xfc14, 0xfb08, 0xfac8,
+ 0xfaa1, 0xfa39, 0xf967, 0xf821, 0xf667, 0xf4b2,
+ 0xf3b2, 0xf355, 0xf357, 0xf3f4, 0xf522, 0xf64f,
+ 0xf72d, 0xf7f5, 0xf8a7, 0xf8a4, 0xf79d, 0xf620,
+ 0xf4f3, 0xf4b5, 0xf5a3, 0xf704, 0xf7aa, 0xf746,
+ 0xf6a9, 0xf6cb, 0xf7e8, 0xf987, 0xfb0d, 0xfc44,
+ 0xfd53, 0xfe07, 0xfe0a, 0xfdd5, 0xfdfe, 0xfe2a,
+ 0xfde0, 0xfd6e, 0xfd54, 0xfdaa, 0xfe23, 0xfe5b,
+ 0xfe63, 0xfe8a, 0xfebc, 0xfec1, 0xfed6, 0xff1f,
+ 0xff50, 0xff5e, 0xff78, 0xff59, 0xfebe, 0xfe06,
+ 0xfdbe, 0xfe0d, 0xfe9b, 0xff06, 0xff26, 0xff08,
+ 0xff15, 0xffb4, 0x0093, 0x0135, 0x0182, 0x0165,
+ 0x00fe, 0x00da, 0x013a, 0x01b7, 0x01ee, 0x01d2,
+ 0x014a, 0x0079, 0x0033, 0x00c2, 0x0170, 0x01f9,
+ 0x0239, 0x01a6, 0x00b3, 0x0039, 0x0022, 0x0045,
+ 0x005c, 0xffc8, 0xfeac, 0xfdb2, 0xfd51, 0xfdcb,
+ 0xfebd, 0xffa8, 0x00a8, 0x0192, 0x01d4, 0x0135,
+ 0x0000, 0xfee9, 0xfe3b, 0xfdaa, 0xfd60, 0xfd87,
+ 0xfd9e, 0xfd9c, 0xfdc0, 0xfdc7, 0xfd87, 0xfce3,
+ 0xfb94, 0xfa0f, 0xf937, 0xf937, 0xf9be, 0xfaab,
+ 0xfba1, 0xfbf1, 0xfb7e, 0xfaef, 0xfab6, 0xfaa5,
+ 0xfa8f, 0xfab8, 0xfb60, 0xfc5d, 0xfdc3, 0xffbd,
+ 0x017f, 0x0232, 0x0214, 0x0155, 0xfff8, 0xfea5,
+ 0xfd95, 0xfc8e, 0xfc2c, 0xfcb8, 0xfd74, 0xfe2a,
+ 0xff00, 0xff77, 0xff6d, 0xff67, 0xff7d, 0xffbb,
+ 0x006a, 0x011e, 0x0156, 0x017f, 0x01d8, 0x0210,
+ 0x0222, 0x021b, 0x01dd, 0x017b, 0x0106, 0x00a8,
+ 0x0099, 0x0098, 0x005e, 0xfffe, 0xff82, 0xfeef,
+ 0xfe35, 0xfd73, 0xfd19, 0xfd2b, 0xfdaa, 0xff07,
+ 0x0090, 0x0120, 0x0111, 0x00cc, 0x0024, 0xffbe,
+ 0xffc1, 0xff52, 0xfe8c, 0xfdfa, 0xfd64, 0xfcf5,
+ 0xfd2c, 0xfdae, 0xfe24, 0xfee3, 0xff9c, 0xff84,
+ 0xfeea, 0xfe4b, 0xfd92, 0xfd44, 0xfd96, 0xfdc2,
+ 0xfe03, 0xfedc, 0xff56, 0xff02, 0xfea2, 0xfe58,
+ 0xfde0, 0xfd4c, 0xfcc1, 0xfc64, 0xfc27, 0xfc20,
+ 0xfcb6, 0xfdc4, 0xfeda, 0xffb3, 0xffd0, 0xff4a,
+ 0xfefb, 0xff0c, 0xff2a, 0xff52, 0xff89, 0xffec,
+ 0x006a, 0x0082, 0x0029, 0xffaa, 0xfef0, 0xfe67,
+ 0xfecc, 0xffb7, 0x005b, 0x00e4, 0x0171, 0x0185,
+ 0x0105, 0x003e, 0xff5c, 0xfeaf, 0xfe60, 0xfe41,
+ 0xfe94, 0xffa8, 0x0102, 0x01e8, 0x01fd, 0x0153,
+ 0x0049, 0xff42, 0xfeb5, 0xfee6, 0xff71, 0x0000,
+ 0x00c0, 0x015b, 0x010e, 0xffd3, 0xfe56, 0xfcf2,
+ 0xfbbf, 0xfb3b, 0xfba2, 0xfc65, 0xfd15, 0xfda2,
+ 0xfdff, 0xfe74, 0xff12, 0xff49, 0xff07, 0xfebe,
+ 0xfea3, 0xfee0, 0xff68, 0xffc9, 0xffd2, 0xffa6,
+ 0xff6c, 0xff34, 0xfeff, 0xff0a, 0xff7e, 0xffe9,
+ 0xffe8, 0xff9a, 0xff78, 0x000e, 0x0149, 0x0279,
+ 0x0327, 0x033b, 0x02fe, 0x02d4, 0x02b7, 0x02d3,
+ 0x03b7, 0x0543, 0x068e, 0x06d0, 0x05ef, 0x047f,
+ 0x032c, 0x0233, 0x019b, 0x016e, 0x0191, 0x017e,
+ 0x00d4, 0x004a, 0x009d, 0x016f, 0x024e, 0x0305,
+ 0x0345, 0x0364, 0x03cc, 0x03f9, 0x03b4, 0x0371,
+ 0x0329, 0x02d1, 0x02d9, 0x033f, 0x03a7, 0x043e,
+ 0x0526, 0x05d5, 0x05e5, 0x05aa, 0x05b9, 0x0668,
+ 0x0789, 0x086c, 0x0898, 0x0847, 0x07dc, 0x074b,
+ 0x067a, 0x05b8, 0x053b, 0x04c9, 0x0453, 0x03f9,
+ 0x0392, 0x02ec, 0x0231, 0x01ba, 0x01b8, 0x01e9,
+ 0x0206, 0x0222, 0x024f, 0x02b5, 0x03ab, 0x04f2,
+ 0x05b2, 0x058d, 0x04f3, 0x0489, 0x045a, 0x03fb,
+ 0x033e, 0x0235, 0x0142, 0x00fc, 0x0165, 0x0209,
+ 0x0290, 0x02b6, 0x02c5, 0x0319, 0x032f, 0x02d4,
+ 0x029e, 0x0291, 0x0297, 0x0307, 0x039b, 0x03ba,
+ 0x0361, 0x0294, 0x015a, 0x003a, 0xffa7, 0xff67,
+ 0xff40, 0xff80, 0x005d, 0x0193, 0x029a, 0x02f7,
+ 0x02b0, 0x025e, 0x0246, 0x0240, 0x024d, 0x025f,
+ 0x028e, 0x033c, 0x0406, 0x0429, 0x041b, 0x04a9,
+ 0x0564, 0x05a5, 0x05cc, 0x0636, 0x0685, 0x06d6,
+ 0x07ba, 0x08a4, 0x08ad, 0x083b, 0x07e9, 0x07a4,
+ 0x07af, 0x081e, 0x0816, 0x0778, 0x0720, 0x0749,
+ 0x07fe, 0x0979, 0x0adf, 0x0b49, 0x0b17, 0x0ad2,
+ 0x0ab6, 0x0afe, 0x0b56, 0x0b69, 0x0b62, 0x0b41,
+ 0x0b03, 0x0aaa, 0x0a1c, 0x09b4, 0x0973, 0x08a6,
+ 0x0784, 0x06b6, 0x0616, 0x05a0, 0x0564, 0x0527,
+ 0x04e4, 0x042b, 0x0294, 0x00bb, 0xfecc, 0xfccf,
+ 0xfbbc, 0xfb6e, 0xfac3, 0xf9af, 0xf885, 0xf7ae,
+ 0xf7a0, 0xf772, 0xf650, 0xf4ff, 0xf41d, 0xf3d8,
+ 0xf484, 0xf59e, 0xf676, 0xf6d1, 0xf665, 0xf58d,
+ 0xf512, 0xf51f, 0xf5d8, 0xf718, 0xf7f0, 0xf822,
+ 0xf853, 0xf8ec, 0xf9f4, 0xfae9, 0xfb1e, 0xfaa3,
+ 0xf998, 0xf843, 0xf7cd, 0xf8b1, 0xf9f7, 0xfb24,
+ 0xfc71, 0xfd86, 0xfe39, 0xfec3, 0xfed5, 0xfe26,
+ 0xfd17, 0xfc13, 0xfb94, 0xfbd9, 0xfc86, 0xfd97,
+ 0xff18, 0x0016, 0x0014, 0xffbf, 0xff50, 0xfea6,
+ 0xfe39, 0xfe5e, 0xfeb4, 0xfec0, 0xfe95, 0xfea0,
+ 0xff0a, 0xffe6, 0x012b, 0x0285, 0x03e7, 0x0545,
+ 0x05f8, 0x05d8, 0x058f, 0x055e, 0x04fe, 0x045f,
+ 0x03f2, 0x0420, 0x04cf, 0x05b2, 0x0643, 0x05c8,
+ 0x045a, 0x02b1, 0x014b, 0x00ae, 0x00ea, 0x017f,
+ 0x023a, 0x02d7, 0x0324, 0x0366, 0x0376, 0x0334,
+ 0x02e4, 0x021d, 0x00e6, 0x0036, 0x001d, 0xfffc,
+ 0xffa3, 0xff1a, 0xfe9b, 0xfe3a, 0xfdc7, 0xfd66,
+ 0xfd0c, 0xfc70, 0xfbdd, 0xfbd0, 0xfc5c, 0xfd0a,
+ 0xfd47, 0xfd31, 0xfcf0, 0xfc5e, 0xfbdf, 0xfb93,
+ 0xfb18, 0xfa93, 0xfa0b, 0xf930, 0xf831, 0xf75a,
+ 0xf6cb, 0xf6a1, 0xf6c8, 0xf737, 0xf7d0, 0xf852,
+ 0xf8d2, 0xf97f, 0xfa70, 0xfb87, 0xfc45, 0xfc91,
+ 0xfcac, 0xfc81, 0xfc7d, 0xfd04, 0xfda3, 0xfe35,
+ 0xfea4, 0xfe93, 0xfe8a, 0xfefb, 0xff71, 0xffb0,
+ 0xff76, 0xfeb5, 0xfe38, 0xfe6d, 0xff2d, 0x0024,
+ 0x00c1, 0x0139, 0x0206, 0x0277, 0x023e, 0x01ff,
+ 0x01e0, 0x01d7, 0x020f, 0x0254, 0x0298, 0x032d,
+ 0x0416, 0x04da, 0x0500, 0x0472, 0x0360, 0x0216,
+ 0x00eb, 0x0004, 0xff4e, 0xfec5, 0xfe97, 0xfec8,
+ 0xfefb, 0xfef7, 0xfed9, 0xfeaa, 0xfe83, 0xfe6a,
+ 0xfe13, 0xfdac, 0xfd8e, 0xfd5f, 0xfd24, 0xfd1d,
+ 0xfce6, 0xfc8b, 0xfc37, 0xfb77, 0xfab3, 0xfa5c,
+ 0xf9ce, 0xf91e, 0xf902, 0xf94c, 0xf9d5, 0xfaf0,
+ 0xfc69, 0xfd94, 0xfe06, 0xfe10, 0xfe1e, 0xfe2e,
+ 0xfe74, 0xff0f, 0xff72, 0xff41, 0xfe8f, 0xfda7,
+ 0xfd19, 0xfcf1, 0xfcb7, 0xfc7a, 0xfca6, 0xfd70,
+ 0xfea2, 0xff8d, 0xffbd, 0xff59, 0xfec8, 0xfe60,
+ 0xfe18, 0xfdfc, 0xfe61, 0xfee7, 0xff1a, 0xff84,
+ 0x0030, 0x0057, 0x000b, 0xffc8, 0xff82, 0xff52,
+ 0xff6a, 0xff7f, 0xff33, 0xfeb6, 0xfe96, 0xfefb,
+ 0xffb0, 0x00b0, 0x01bb, 0x0232, 0x01ec, 0x0155,
+ 0x00cf, 0x0057, 0xff8b, 0xfe5a, 0xfd0f, 0xfbfb,
+ 0xfbce, 0xfcab, 0xfd9f, 0xfe72, 0xff7b, 0xfff3,
+ 0xff83, 0xff0f, 0xfefd, 0xff2f, 0xff72, 0xff50,
+ 0xfed0, 0xfe3d, 0xfd9e, 0xfd2e, 0xfcf3, 0xfcc1,
+ 0xfce5, 0xfd32, 0xfd3b, 0xfd71, 0xfdf9, 0xfe2d,
+ 0xfe0d, 0xfdf0, 0xfdaa, 0xfd27, 0xfcb7, 0xfc9a,
+ 0xfcbf, 0xfcf3, 0xfd22, 0xfd61, 0xfde5, 0xfed0,
+ 0xffd7, 0x00a8, 0x015d, 0x021b, 0x02b8, 0x02fe,
+ 0x0318, 0x0354, 0x03bc, 0x0455, 0x051e, 0x05b0,
+ 0x05a5, 0x0546, 0x0510, 0x04d2, 0x0405, 0x02e5,
+ 0x021f, 0x01ec, 0x0251, 0x0321, 0x03e6, 0x0499,
+ 0x052d, 0x0556, 0x0587, 0x064f, 0x0771, 0x087b,
+ 0x08ef, 0x088b, 0x07c7, 0x070f, 0x06c4, 0x0736,
+ 0x07ef, 0x0881, 0x08f0, 0x090b, 0x0907, 0x091b,
+ 0x08df, 0x085b, 0x07b2, 0x0691, 0x0554, 0x0493,
+ 0x03ed, 0x0325, 0x02c7, 0x02e9, 0x02ce, 0x0254,
+ 0x0246, 0x0291, 0x028c, 0x026d, 0x024a, 0x01df,
+ 0x01bc, 0x021a, 0x022a, 0x017f, 0x0085, 0xffe9,
+ 0xffc8, 0xffad, 0xff8d, 0xff67, 0xfeb4, 0xfda7,
+ 0xfd21, 0xfd52, 0xfdf9, 0xfef8, 0x0015, 0x0109,
+ 0x01a6, 0x01b9, 0x010f, 0x0045, 0x003f, 0x0084,
+ 0x0055, 0x003b, 0x003e, 0xff9d, 0xfeb2, 0xfe27,
+ 0xfdbf, 0xfd4d, 0xfd21, 0xfd80, 0xfe47, 0xff20,
+ 0x0021, 0x01ae, 0x03d1, 0x05e9, 0x071a, 0x0755,
+ 0x072a, 0x06ef, 0x06fa, 0x0748, 0x0756, 0x077b,
+ 0x0849, 0x0953, 0x0a42, 0x0af0, 0x0ae6, 0x0a74,
+ 0x0a2d, 0x09f8, 0x0a17, 0x0aac, 0x0af7, 0x0aee,
+ 0x0b11, 0x0b23, 0x0b07, 0x0afc, 0x0acd, 0x0a7f,
+ 0x0a71, 0x0a8d, 0x0acf, 0x0b62, 0x0bfd, 0x0c3a,
+ 0x0be3, 0x0b2b, 0x0ace, 0x0afc, 0x0b2d, 0x0b4e,
+ 0x0b6b, 0x0b67, 0x0b91, 0x0baa, 0x0b03, 0x09ed,
+ 0x08da, 0x078c, 0x05f5, 0x0457, 0x02fe, 0x01fb,
+ 0x00f9, 0x0022, 0xffe5, 0xffd0, 0xff79, 0xff00,
+ 0xfe4d, 0xfd67, 0xfc9b, 0xfbf5, 0xfb96, 0xfb88,
+ 0xfb4a, 0xfa74, 0xf943, 0xf864, 0xf826, 0xf808,
+ 0xf79e, 0xf706, 0xf61d, 0xf4e4, 0xf3f4, 0xf36b,
+ 0xf309, 0xf328, 0xf406, 0xf522, 0xf60e, 0xf6b1,
+ 0xf710, 0xf789, 0xf872, 0xf977, 0xfa21, 0xfa7a,
+ 0xfa9f, 0xfa84, 0xfa87, 0xfb47, 0xfcb1, 0xfe0b,
+ 0xfed4, 0xfef5, 0xfeb8, 0xfe8b, 0xfe74, 0xfe3c,
+ 0xfdfe, 0xfdf5, 0xfe49, 0xfedb, 0xff58, 0xffc7,
+ 0x003a, 0x006d, 0x005f, 0x0065, 0x00d5, 0x01ea,
+ 0x031a, 0x03b0, 0x03e8, 0x0430, 0x048a, 0x0501,
+ 0x056f, 0x058b, 0x053e, 0x047e, 0x037e, 0x029c,
+ 0x0217, 0x0228, 0x02a5, 0x0319, 0x037f, 0x03c5,
+ 0x037c, 0x02df, 0x02a0, 0x02e5, 0x031f, 0x02ba,
+ 0x01a7, 0x0022, 0xfeb2, 0xfe38, 0xfeca, 0xffab,
+ 0x0080, 0x00f0, 0x0087, 0xffe9, 0xffff, 0x0055,
+ 0xffd2, 0xfe6a, 0xfd39, 0xfcb9, 0xfc70, 0xfc5c,
+ 0xfc99, 0xfcb1, 0xfc87, 0xfc54, 0xfc21, 0xfc1e,
+ 0xfc63, 0xfcc2, 0xfd3f, 0xfdb8, 0xfe19, 0xfea8,
+ 0xff30, 0xff26, 0xfeaa, 0xfdf9, 0xfd23, 0xfc91,
+ 0xfc8a, 0xfcba, 0xfcfd, 0xfd7d, 0xfe0a, 0xfe4d,
+ 0xfe4c, 0xfe2c, 0xfdd2, 0xfd50, 0xfd27, 0xfd83,
+ 0xfdfc, 0xfe94, 0xff62, 0xffc5, 0xffb7, 0x0017,
+ 0x00f9, 0x01cf, 0x025c, 0x0264, 0x01e6, 0x0137,
+ 0x005e, 0xff70, 0xfeb4, 0xfe20, 0xfda0, 0xfd65,
+ 0xfda9, 0xfe56, 0xfef6, 0xff5a, 0xffa0, 0xff9c,
+ 0xff68, 0xff53, 0xff0b, 0xfe4a, 0xfd7f, 0xfd15,
+ 0xfd52, 0xfe30, 0xff16, 0xff8b, 0xff6d, 0xfeac,
+ 0xfdac, 0xfd3e, 0xfd8a, 0xfddb, 0xfdb1, 0xfd46,
+ 0xfcd4, 0xfc7b, 0xfca0, 0xfd56, 0xfdf5, 0xfe0f,
+ 0xfdf8, 0xfdf5, 0xfdd3, 0xfd8e, 0xfd73, 0xfd91,
+ 0xfdeb, 0xfe88, 0xfefe, 0xff04, 0xfee8, 0xfedb,
+ 0xff04, 0xffbf, 0x00e0, 0x01bb, 0x01ca, 0x0103,
+ 0xffe0, 0xff03, 0xfeaa, 0xfea6, 0xfecf, 0xff27,
+ 0xff7a, 0xff9e, 0x0005, 0x00da, 0x018c, 0x01ff,
+ 0x0259, 0x0256, 0x0228, 0x022e, 0x0215, 0x01b1,
+ 0x0172, 0x0198, 0x01df, 0x01df, 0x01cb, 0x022a,
+ 0x02b0, 0x02aa, 0x0231, 0x01c3, 0x0183, 0x0151,
+ 0x010f, 0x00eb, 0x0114, 0x012d, 0x00e1, 0x008b,
+ 0x009e, 0x00f6, 0x0138, 0x013d, 0x00f8, 0x0083,
+ 0x004a, 0x00a5, 0x011a, 0x00f7, 0x006a, 0xffc2,
+ 0xfede, 0xfe37, 0xfe59, 0xfec3, 0xff15, 0xff61,
+ 0xff30, 0xfe6c, 0xfdaa, 0xfd09, 0xfcb5, 0xfd0c,
+ 0xfdba, 0xfe60, 0xfed2, 0xfe8b, 0xfd97, 0xfcc8,
+ 0xfc75, 0xfc8c, 0xfcf9, 0xfd33, 0xfcdd, 0xfc67,
+ 0xfc44, 0xfc6c, 0xfcad, 0xfcbe, 0xfca3, 0xfcd7,
+ 0xfd5c, 0xfd98, 0xfd62, 0xfced, 0xfc77, 0xfc66,
+ 0xfc93, 0xfc72, 0xfc47, 0xfc88, 0xfd24, 0xfe12,
+ 0xff22, 0xfff7, 0x007e, 0x005c, 0xff47, 0xfe28,
+ 0xfdf2, 0xfe93, 0xffdf, 0x0188, 0x02c7, 0x0371,
+ 0x03f8, 0x040b, 0x0362, 0x02db, 0x0301, 0x0350,
+ 0x0385, 0x0399, 0x0354, 0x0317, 0x031f, 0x02d2,
+ 0x0245, 0x023d, 0x0285, 0x0262, 0x01c3, 0x0110,
+ 0x00ba, 0x00ea, 0x016d, 0x01f1, 0x020d, 0x01a1,
+ 0x0117, 0x00e0, 0x0142, 0x023b, 0x031f, 0x037a,
+ 0x03ba, 0x0430, 0x04ad, 0x0511, 0x0541, 0x052a,
+ 0x04d4, 0x046e, 0x0452, 0x0434, 0x038b, 0x02fb,
+ 0x0323, 0x0357, 0x034b, 0x0349, 0x02ff, 0x0265,
+ 0x01eb, 0x0179, 0x0110, 0x0115, 0x0172, 0x01db,
+ 0x023f, 0x027b, 0x026f, 0x022a, 0x01cb, 0x0170,
+ 0x0135, 0x0118, 0x00e9, 0x00b4, 0x00c9, 0x0112,
+ 0x0128, 0x00f0, 0x006f, 0xffc9, 0xff58, 0xff37,
+ 0xff5a, 0xffc1, 0x0027, 0x007b, 0x00ef, 0x013d,
+ 0x0126, 0x00ea, 0x008c, 0x0017, 0xffef, 0xffea,
+ 0xff84, 0xfed5, 0xfe65, 0xfeaf, 0xffb9, 0x0102,
+ 0x0205, 0x029f, 0x030e, 0x039b, 0x0411, 0x041a,
+ 0x03fd, 0x0422, 0x047b, 0x04f9, 0x05a5, 0x063b,
+ 0x064f, 0x05e9, 0x058c, 0x05b8, 0x069a, 0x0801,
+ 0x094b, 0x09ec, 0x09e5, 0x094f, 0x0850, 0x0785,
+ 0x072e, 0x06ba, 0x060c, 0x05a3, 0x05a0, 0x05e0,
+ 0x0668, 0x070a, 0x076a, 0x076d, 0x0730, 0x06b7,
+ 0x060f, 0x0588, 0x0578, 0x05d4, 0x0689, 0x07aa,
+ 0x08d7, 0x099c, 0x0a4f, 0x0b24, 0x0b81, 0x0b80,
+ 0x0c13, 0x0d07, 0x0d4d, 0x0cca, 0x0bee, 0x0aba,
+ 0x0939, 0x0795, 0x05c7, 0x0402, 0x02b6, 0x01d7,
+ 0x00fc, 0x001f, 0xff86, 0xff4d, 0xff9a, 0x007d,
+ 0x0170, 0x01a9, 0x0108, 0xffc9, 0xfe21, 0xfcab,
+ 0xfbe4, 0xfb53, 0xfa77, 0xf999, 0xf8e6, 0xf832,
+ 0xf7bb, 0xf7ce, 0xf828, 0xf881, 0xf8c8, 0xf8de,
+ 0xf8af, 0xf84b, 0xf7ce, 0xf733, 0xf62e, 0xf4c5,
+ 0xf3d3, 0xf3e7, 0xf4c3, 0xf642, 0xf7fd, 0xf8ed,
+ 0xf8fd, 0xf905, 0xf939, 0xf97f, 0xfa18, 0xfaf8,
+ 0xfbc8, 0xfc7c, 0xfd1c, 0xfd80, 0xfd88, 0xfd67,
+ 0xfd4c, 0xfd21, 0xfd15, 0xfd9c, 0xfe98, 0xffa7,
+ 0x0099, 0x012f, 0x015d, 0x017d, 0x01c8, 0x0279,
+ 0x03b0, 0x04e2, 0x0588, 0x05d7, 0x061f, 0x065a,
+ 0x0666, 0x0645, 0x0606, 0x0587, 0x04c1, 0x0402,
+ 0x0340, 0x024f, 0x0193, 0x0149, 0x012e, 0x0132,
+ 0x015b, 0x015d, 0x0121, 0x00e9, 0x00d7, 0x00e3,
+ 0x0131, 0x019f, 0x0179, 0x0080, 0xff46, 0xfe1c,
+ 0xfd07, 0xfc4b, 0xfbf3, 0xfbb4, 0xfb7a, 0xfb3c,
+ 0xfb0c, 0xfb37, 0xfba7, 0xfbe9, 0xfbee, 0xfc07,
+ 0xfc5c, 0xfcc3, 0xfced, 0xfcb7, 0xfc4d, 0xfc15,
+ 0xfc4f, 0xfc8a, 0xfc3e, 0xfbb8, 0xfba8, 0xfc42,
+ 0xfd38, 0xfe21, 0xfee8, 0xff8b, 0xffad, 0xff12,
+ 0xfe25, 0xfd87, 0xfd86, 0xfe08, 0xfed4, 0xff9d,
+ 0xfff3, 0xffb5, 0xff28, 0xfe78, 0xfe08, 0xfe6a,
+ 0xff47, 0xffb8, 0xff84, 0xfef9, 0xfe9a, 0xfee4,
+ 0xffb8, 0x00a7, 0x0170, 0x01ce, 0x01c2, 0x018f,
+ 0x0130, 0x009b, 0x0035, 0x0057, 0x00a1, 0x008c,
+ 0x0048, 0x000a, 0xff71, 0xfeac, 0xfe86, 0xff0a,
+ 0xffec, 0x00e9, 0x0153, 0x0121, 0x0132, 0x01bf,
+ 0x0257, 0x02b0, 0x0282, 0x01cb, 0x00e6, 0x0026,
+ 0xffd3, 0xffce, 0xffda, 0x0038, 0x00bf, 0x00af,
+ 0x000e, 0xff51, 0xfe8a, 0xfde0, 0xfd71, 0xfd32,
+ 0xfd47, 0xfd9f, 0xfdc1, 0xfd5b, 0xfcb8, 0xfc84,
+ 0xfcce, 0xfd1a, 0xfd72, 0xfdc1, 0xfd66, 0xfc90,
+ 0xfbd1, 0xfb09, 0xfa4f, 0xf9f4, 0xf9d2, 0xf9ed,
+ 0xfa57, 0xfaa3, 0xfa9f, 0xfa75, 0xfa45, 0xfa38,
+ 0xfa67, 0xfaeb, 0xfbe0, 0xfcf0, 0xfdc8, 0xfe99,
+ 0xff64, 0xffe5, 0x0014, 0x0004, 0xffe5, 0xffcf,
+ 0xff70, 0xfee5, 0xfee0, 0xff72, 0x003c, 0x0124,
+ 0x01da, 0x0223, 0x0268, 0x02e0, 0x0339, 0x0338,
+ 0x02cc, 0x01fe, 0x0156, 0x015c, 0x01de, 0x026a,
+ 0x02f1, 0x0376, 0x03db, 0x041f, 0x0437, 0x0417,
+ 0x03e1, 0x039e, 0x033c, 0x0309, 0x035b, 0x039f,
+ 0x02e5, 0x0164, 0x004a, 0x001d, 0x0065, 0x00a0,
+ 0x0097, 0x0025, 0xff62, 0xfe94, 0xfdec, 0xfd8f,
+ 0xfd7a, 0xfd43, 0xfcc9, 0xfc7e, 0xfc87, 0xfc9d,
+ 0xfca7, 0xfc94, 0xfc5b, 0xfc52, 0xfc90, 0xfca0,
+ 0xfc42, 0xfb94, 0xfaf3, 0xfaf4, 0xfb78, 0xfbab,
+ 0xfb61, 0xfb13, 0xfb08, 0xfb50, 0xfbbc, 0xfc27,
+ 0xfcd1, 0xfda5, 0xfe26, 0xfe42, 0xfe1a, 0xfdc3,
+ 0xfd8a, 0xfd79, 0xfd93, 0xfe5e, 0xffd8, 0x0129,
+ 0x01ec, 0x0230, 0x0209, 0x01b3, 0x014b, 0x00ea,
+ 0x00ce, 0x00de, 0x0104, 0x01a8, 0x02ce, 0x03d2,
+ 0x044a, 0x042b, 0x03a3, 0x030c, 0x028f, 0x0252,
+ 0x02b8, 0x0397, 0x0432, 0x0452, 0x0448, 0x045c,
+ 0x04cb, 0x058f, 0x0643, 0x06a5, 0x06bc, 0x0693,
+ 0x0663, 0x065e, 0x0628, 0x0569, 0x0480, 0x03ed,
+ 0x03a8, 0x037f, 0x0383, 0x03c8, 0x0428, 0x048d,
+ 0x0506, 0x057c, 0x05bf, 0x05b5, 0x0541, 0x0474,
+ 0x03be, 0x0363, 0x0340, 0x0356, 0x03b7, 0x0407,
+ 0x03d0, 0x02ee, 0x018f, 0x0035, 0xff67, 0xff24,
+ 0xff27, 0xff75, 0x0000, 0x007d, 0x00f8, 0x0195,
+ 0x0207, 0x0226, 0x0228, 0x020e, 0x01bd, 0x013a,
+ 0x0099, 0x0012, 0xffc6, 0xff88, 0xff5d, 0xff6c,
+ 0xff8f, 0xff98, 0xff96, 0xffbb, 0x001c, 0x0054,
+ 0xffd3, 0xfe9a, 0xfd1a, 0xfbe9, 0xfb84, 0xfbc8,
+ 0xfc73, 0xfda2, 0xff20, 0x0076, 0x017e, 0x01f7,
+ 0x01b0, 0x0119, 0x008b, 0xffea, 0xff34, 0xfeb3,
+ 0xfea4, 0xfeff, 0xff83, 0x0014, 0x00be, 0x01a0,
+ 0x02d7, 0x0432, 0x0569, 0x0694, 0x07a9, 0x0851,
+ 0x087d, 0x0842, 0x07a3, 0x06d6, 0x0621, 0x0592,
+ 0x0519, 0x04cc, 0x051b, 0x0642, 0x07c8, 0x0922,
+ 0x0a34, 0x0b03, 0x0b9e, 0x0be7, 0x0b83, 0x0abe,
+ 0x0a85, 0x0b20, 0x0c08, 0x0cd8, 0x0d9d, 0x0e77,
+ 0x0f56, 0x0fe8, 0x0fd3, 0x0f21, 0x0e76, 0x0e6b,
+ 0x0ed9, 0x0f17, 0x0eae, 0x0da8, 0x0c6d, 0x0b39,
+ 0x09f2, 0x08bc, 0x0806, 0x07dd, 0x07ca, 0x0746,
+ 0x0634, 0x04f4, 0x03c4, 0x0279, 0x0105, 0xffe2,
+ 0xff76, 0xff7b, 0xff5d, 0xff03, 0xfec6, 0xfeb4,
+ 0xfe5f, 0xfd68, 0xfbec, 0xfa66, 0xf949, 0xf8ce,
+ 0xf8f7, 0xf96d, 0xf9a9, 0xf96f, 0xf8e4, 0xf838,
+ 0xf770, 0xf68e, 0xf5ac, 0xf4cb, 0xf3cd, 0xf2cc,
+ 0xf232, 0xf257, 0xf320, 0xf41d, 0xf504, 0xf5e9,
+ 0xf6c7, 0xf742, 0xf730, 0xf6d0, 0xf67a, 0xf65e,
+ 0xf67c, 0xf6c8, 0xf74c, 0xf807, 0xf8d8, 0xf9b1,
+ 0xfaac, 0xfbc6, 0xfcca, 0xfdb4, 0xfebd, 0xffd2,
+ 0x0087, 0x00c1, 0x00d7, 0x0110, 0x014f, 0x0164,
+ 0x0184, 0x021f, 0x033c, 0x0470, 0x0570, 0x0656,
+ 0x073b, 0x07d2, 0x07b9, 0x0719, 0x068a, 0x0666,
+ 0x0695, 0x06cb, 0x06c1, 0x066f, 0x0604, 0x05aa,
+ 0x055a, 0x04e3, 0x0436, 0x03b0, 0x03b1, 0x0404,
+ 0x040e, 0x039c, 0x031a, 0x02e3, 0x02c2, 0x0267,
+ 0x01f2, 0x01b6, 0x01c7, 0x01ef, 0x01f9, 0x01d7,
+ 0x015d, 0x0049, 0xfeb6, 0xfd35, 0xfc3a, 0xfbb0,
+ 0xfb3d, 0xfabe, 0xfa61, 0xfa6a, 0xfaff, 0xfc12,
+ 0xfd46, 0xfe0b, 0xfe1f, 0xfdd6, 0xfda7, 0xfd85,
+ 0xfcf7, 0xfbdb, 0xfab8, 0xfa37, 0xfa7b, 0xfb28,
+ 0xfbd1, 0xfc38, 0xfc38, 0xfbc8, 0xfb25, 0xfaae,
+ 0xfa86, 0xfa8d, 0xfa99, 0xfa94, 0xfa7c, 0xfa61,
+ 0xfa6f, 0xfacd, 0xfb75, 0xfc42, 0xfd1a, 0xfdeb,
+ 0xfe77, 0xfe6a, 0xfdc0, 0xfd06, 0xfcda, 0xfd61,
+ 0xfe51, 0xff55, 0x0038, 0x00cd, 0x00e7, 0x0091,
+ 0x001f, 0xffce, 0xff80, 0xff22, 0xfefb, 0xff60,
+ 0x0032, 0x00eb, 0x0125, 0x00fc, 0x00ce, 0x00cc,
+ 0x00da, 0x00d8, 0x00dd, 0x0111, 0x016f, 0x01bd,
+ 0x01cd, 0x01ae, 0x018c, 0x0167, 0x012d, 0x0101,
+ 0x013a, 0x01f9, 0x02e1, 0x034a, 0x02ec, 0x020f,
+ 0x0111, 0x0006, 0xfeeb, 0xfdfc, 0xfda4, 0xfe0a,
+ 0xfedf, 0xffaf, 0x0047, 0x00ba, 0x00f8, 0x00b6,
+ 0xffd6, 0xfe94, 0xfd58, 0xfc71, 0xfbd6, 0xfb4f,
+ 0xfaed, 0xfaec, 0xfb3c, 0xfb84, 0xfb7d, 0xfb46,
+ 0xfb44, 0xfbaa, 0xfc59, 0xfd14, 0xfda0, 0xfddc,
+ 0xfde1, 0xfde2, 0xfdfc, 0xfe18, 0xfdf3, 0xfd73,
+ 0xfcd4, 0xfc77, 0xfc90, 0xfceb, 0xfd38, 0xfd58,
+ 0xfd41, 0xfd04, 0xfcf2, 0xfd4a, 0xfdf6, 0xfeac,
+ 0xff2e, 0xff7f, 0xffe7, 0x0061, 0x00a0, 0x0095,
+ 0x0075, 0x0056, 0x0046, 0x0068, 0x00bd, 0x010a,
+ 0x0109, 0x00a0, 0xfff9, 0xff44, 0xfea1, 0xfe43,
+ 0xfe52, 0xfec0, 0xff70, 0x003f, 0x00ec, 0x0138,
+ 0x00eb, 0xfff8, 0xfef3, 0xfe8f, 0xfeb2, 0xfedd,
+ 0xfee3, 0xfed7, 0xfed1, 0xfed8, 0xfed2, 0xfeca,
+ 0xfec2, 0xfe7b, 0xfdcf, 0xfcf8, 0xfc82, 0xfcd0,
+ 0xfd93, 0xfe52, 0xff17, 0xffe7, 0x007a, 0x00c7,
+ 0x00d8, 0x00ad, 0x0083, 0x008b, 0x00b3, 0x00d2,
+ 0x009e, 0xffe7, 0xfeef, 0xfe1e, 0xfdab, 0xfdaa,
+ 0xfe08, 0xfea6, 0xff5b, 0xffd2, 0xffcd, 0xff66,
+ 0xfee1, 0xfe71, 0xfe34, 0xfe40, 0xfeb5, 0xff66,
+ 0xffe7, 0x000c, 0xffd4, 0xff16, 0xfe04, 0xfd44,
+ 0xfd35, 0xfdb7, 0xfe70, 0xff17, 0xffd2, 0x00d4,
+ 0x01bf, 0x0221, 0x022f, 0x0245, 0x0248, 0x01f4,
+ 0x0151, 0x00b9, 0x0071, 0x0053, 0x0020, 0xffe4,
+ 0xffdd, 0x0017, 0x0052, 0x004c, 0x0019, 0xfff4,
+ 0x0003, 0x004e, 0x00ad, 0x0104, 0x0160, 0x01c7,
+ 0x021c, 0x023a, 0x021f, 0x01f2, 0x01d4, 0x01cc,
+ 0x01ca, 0x019c, 0x012f, 0x00c8, 0x008b, 0x004d,
+ 0x000f, 0x0030, 0x00d8, 0x01a4, 0x0246, 0x02d4,
+ 0x032e, 0x0301, 0x0278, 0x01eb, 0x0168, 0x00f1,
+ 0x0087, 0x0043, 0x0083, 0x0132, 0x019b, 0x0169,
+ 0x00e3, 0x0087, 0x00ba, 0x016b, 0x022f, 0x02ac,
+ 0x02ae, 0x0263, 0x0230, 0x0211, 0x01e4, 0x01c2,
+ 0x01a5, 0x016c, 0x0114, 0x00aa, 0x005b, 0x0055,
+ 0x0090, 0x00ec, 0x0127, 0x00fe, 0x0097, 0x005b,
+ 0x0098, 0x0173, 0x02c5, 0x0404, 0x0497, 0x0465,
+ 0x03f2, 0x03ae, 0x0375, 0x0303, 0x0256, 0x01a7,
+ 0x0153, 0x0185, 0x021d, 0x02eb, 0x03b6, 0x0470,
+ 0x054c, 0x0657, 0x0743, 0x07b1, 0x0782, 0x070e,
+ 0x06c2, 0x06b0, 0x06bc, 0x06b3, 0x0664, 0x05fa,
+ 0x05d1, 0x060f, 0x068c, 0x06f6, 0x0747, 0x07ea,
+ 0x0923, 0x0aba, 0x0c2e, 0x0cfc, 0x0d17, 0x0cdc,
+ 0x0c91, 0x0c49, 0x0be6, 0x0b41, 0x0a88, 0x0a10,
+ 0x09bc, 0x0921, 0x0829, 0x0743, 0x06b5, 0x0638,
+ 0x05ad, 0x0565, 0x0595, 0x0621, 0x06b6, 0x070f,
+ 0x073a, 0x074a, 0x0732, 0x06e2, 0x0612, 0x04b9,
+ 0x0380, 0x02ec, 0x02c7, 0x02a2, 0x0222, 0x0146,
+ 0x0064, 0xffb0, 0xff4d, 0xff52, 0xff5a, 0xfef1,
+ 0xfde8, 0xfc60, 0xfb1e, 0xfad1, 0xfb0c, 0xfb17,
+ 0xfacb, 0xfa43, 0xf9d9, 0xf9da, 0xf9df, 0xf961,
+ 0xf87a, 0xf774, 0xf65d, 0xf55a, 0xf4c7, 0xf4a2,
+ 0xf485, 0xf46f, 0xf4c3, 0xf55d, 0xf5b9, 0xf5c9,
+ 0xf5fb, 0xf68c, 0xf749, 0xf80a, 0xf8d9, 0xf981,
+ 0xf9a9, 0xf971, 0xf968, 0xfa02, 0xfb37, 0xfc97,
+ 0xfdce, 0xfecc, 0xff8b, 0x001b, 0x00c5, 0x01c6,
+ 0x02ff, 0x040e, 0x04d4, 0x057a, 0x05f3, 0x0631,
+ 0x0666, 0x0686, 0x0667, 0x0627, 0x05cb, 0x055d,
+ 0x0521, 0x04dc, 0x0424, 0x035b, 0x031a, 0x0366,
+ 0x0416, 0x04dc, 0x0552, 0x057f, 0x05a7, 0x05bb,
+ 0x058e, 0x04eb, 0x0397, 0x01c0, 0x0002, 0xfefc,
+ 0xfedd, 0xff30, 0xff83, 0xffca, 0xffce, 0xff4c,
+ 0xfe83, 0xfdcd, 0xfd4c, 0xfceb, 0xfc7c, 0xfc51,
+ 0xfccb, 0xfd66, 0xfdb2, 0xfde9, 0xfdf8, 0xfdc0,
+ 0xfd81, 0xfd36, 0xfcfc, 0xfd30, 0xfd74, 0xfd4a,
+ 0xfcf9, 0xfcd2, 0xfcbd, 0xfc7d, 0xfc1e, 0xfc26,
+ 0xfcc6, 0xfd94, 0xfe42, 0xfe6a, 0xfdc4, 0xfd01,
+ 0xfcda, 0xfd15, 0xfd65, 0xfda5, 0xfd9f, 0xfdb4,
+ 0xfe46, 0xfefb, 0xff85, 0xffee, 0xfff5, 0xff72,
+ 0xfecb, 0xfe86, 0xfed1, 0xff4f, 0xff89, 0xffac,
+ 0x001d, 0x00d6, 0x01b6, 0x0267, 0x024a, 0x016b,
+ 0x0073, 0xff7b, 0xfe77, 0xfdc3, 0xfd76, 0xfd73,
+ 0xfdae, 0xfdd5, 0xfddd, 0xfe2a, 0xfeba, 0xff3c,
+ 0xff86, 0xff8b, 0xff7f, 0xffa8, 0xffed, 0xffe6,
+ 0xff32, 0xfe0a, 0xfd20, 0xfc99, 0xfc53, 0xfc87,
+ 0xfd0e, 0xfd6d, 0xfd7f, 0xfd61, 0xfd4a, 0xfd57,
+ 0xfd5e, 0xfd7a, 0xfdbd, 0xfdc2, 0xfd7e, 0xfd19,
+ 0xfc55, 0xfb62, 0xfab7, 0xfa3b, 0xf9de, 0xf9bf,
+ 0xf9cb, 0xfa18, 0xfac5, 0xfba7, 0xfc83, 0xfd13,
+ 0xfd43, 0xfd67, 0xfdda, 0xfec7, 0x0001, 0x00fb,
+ 0x0178, 0x019e, 0x016e, 0x00fb, 0x0057, 0xff72,
+ 0xfe92, 0xfe1a, 0xfe16, 0xfe7f, 0xff48, 0x004f,
+ 0x0166, 0x022f, 0x02a0, 0x0313, 0x037f, 0x03c2,
+ 0x0433, 0x04d3, 0x0503, 0x0478, 0x03a0, 0x02fd,
+ 0x02a2, 0x0273, 0x0241, 0x01d0, 0x016d, 0x019f,
+ 0x0220, 0x027e, 0x02cf, 0x0318, 0x034a, 0x035c,
+ 0x02ff, 0x025b, 0x021f, 0x024d, 0x025f, 0x0201,
+ 0x00ff, 0xff95, 0xfe73, 0xfdea, 0xfdbb, 0xfd90,
+ 0xfd23, 0xfc48, 0xfb2c, 0xfa42, 0xf9d3, 0xf9e3,
+ 0xfa56, 0xfaeb, 0xfb7c, 0xfc20, 0xfc9d, 0xfc96,
+ 0xfc24, 0xfb8c, 0xfb19, 0xfb28, 0xfb85, 0xfbbe,
+ 0xfbfc, 0xfc67, 0xfcc1, 0xfcf3, 0xfcf0, 0xfc92,
+ 0xfc06, 0xfb97, 0xfb69, 0xfb8d, 0xfbdf, 0xfc0e,
+ 0xfc15, 0xfc22, 0xfc4a, 0xfca4, 0xfd33, 0xfd8f,
+ 0xfd45, 0xfc7f, 0xfbb3, 0xfb08, 0xfa73, 0xfa00,
+ 0xf9d1, 0xfa03, 0xfa9d, 0xfba4, 0xfd21, 0xfee5,
+ 0x0079, 0x0160, 0x0188, 0x0178, 0x01af, 0x023a,
+ 0x02f7, 0x03a3, 0x03e8, 0x03c7, 0x035c, 0x02c9,
+ 0x029e, 0x035d, 0x04b4, 0x05f8, 0x06e1, 0x0765,
+ 0x0781, 0x0741, 0x06c7, 0x0659, 0x0651, 0x06a9,
+ 0x06c8, 0x064d, 0x05b5, 0x058e, 0x05c4, 0x060c,
+ 0x0625, 0x05d9, 0x052c, 0x0474, 0x03fb, 0x03af,
+ 0x036d, 0x0375, 0x03d3, 0x03fd, 0x03a5, 0x0309,
+ 0x0266, 0x01fc, 0x0201, 0x0236, 0x023c, 0x01bb,
+ 0x006c, 0xfec4, 0xfda8, 0xfd43, 0xfd54, 0xfdd1,
+ 0xfe6e, 0xfebb, 0xfec6, 0xfea0, 0xfe47, 0xfe04,
+ 0xfe08, 0xfe4f, 0xfee2, 0xff6f, 0xff94, 0xff7f,
+ 0xff65, 0xff41, 0xff3a, 0xff3c, 0xfefa, 0xfe90,
+ 0xfe4e, 0xfe82, 0xff32, 0xfff1, 0x00a4, 0x0159,
+ 0x0187, 0x0119, 0x00e0, 0x0129, 0x01c3, 0x0264,
+ 0x0298, 0x028d, 0x02c1, 0x02ea, 0x02d2, 0x02cb,
+ 0x02e3, 0x0314, 0x0378, 0x03ee, 0x0452, 0x047f,
+ 0x0465, 0x0461, 0x049c, 0x04f9, 0x0597, 0x064a,
+ 0x06b7, 0x06f6, 0x072c, 0x079f, 0x08a3, 0x09c3,
+ 0x0a7f, 0x0b11, 0x0b6e, 0x0b51, 0x0af9, 0x0a84,
+ 0x09f3, 0x0990, 0x095e, 0x094f, 0x09cd, 0x0ae5,
+ 0x0c02, 0x0ce6, 0x0dc8, 0x0e8d, 0x0eda, 0x0ec3,
+ 0x0eca, 0x0f06, 0x0ef7, 0x0e61, 0x0d5f, 0x0c06,
+ 0x0ac9, 0x0a1b, 0x0997, 0x091b, 0x095a, 0x0a1a,
+ 0x0a85, 0x0acf, 0x0afb, 0x0a35, 0x0894, 0x06f1,
+ 0x059b, 0x04a7, 0x041f, 0x0401, 0x0449, 0x0481,
+ 0x044d, 0x03f2, 0x036f, 0x02b6, 0x0264, 0x0282,
+ 0x0264, 0x022d, 0x022c, 0x01eb, 0x0130, 0x005a,
+ 0xff97, 0xfed0, 0xfe16, 0xfd76, 0xfce9, 0xfc84,
+ 0xfc3c, 0xfbc0, 0xfafc, 0xfa37, 0xf9a4, 0xf94c,
+ 0xf8eb, 0xf81a, 0xf6eb, 0xf5b8, 0xf48f, 0xf363,
+ 0xf264, 0xf1fe, 0xf27b, 0xf364, 0xf405, 0xf446,
+ 0xf472, 0xf4e2, 0xf5b7, 0xf672, 0xf6af, 0xf6aa,
+ 0xf67e, 0xf640, 0xf66e, 0xf710, 0xf7c5, 0xf87f,
+ 0xf94e, 0xfa3b, 0xfb93, 0xfd7d, 0xff91, 0x013c,
+ 0x0262, 0x034a, 0x0425, 0x0509, 0x05f0, 0x0675,
+ 0x066d, 0x0657, 0x0654, 0x0609, 0x05b5, 0x05d8,
+ 0x064e, 0x06a1, 0x067a, 0x05f2, 0x05b5, 0x0649,
+ 0x0769, 0x0868, 0x08b4, 0x07f9, 0x066d, 0x04ca,
+ 0x03a3, 0x0323, 0x035e, 0x042b, 0x04c4, 0x0479,
+ 0x0361, 0x01ef, 0x0091, 0xffc5, 0xff96, 0xff9e,
+ 0xff95, 0xff35, 0xfe67, 0xfdbd, 0xfd83, 0xfd3b,
+ 0xfce7, 0xfcf2, 0xfd29, 0xfd55, 0xfda5, 0xfdfb,
+ 0xfe27, 0xfe16, 0xfd74, 0xfc5f, 0xfb71, 0xfab6,
+ 0xfa0c, 0xf9e5, 0xfa81, 0xfb8d, 0xfcb8, 0xfdb7,
+ 0xfe26, 0xfe11, 0xfde8, 0xfde4, 0xfe09, 0xfe35,
+ 0xfdf8, 0xfd23, 0xfc23, 0xfb32, 0xfa50, 0xf9f8,
+ 0xfa73, 0xfb34, 0xfba8, 0xfbbc, 0xfb99, 0xfb8e,
+ 0xfbec, 0xfcdf, 0xfe31, 0xff3c, 0xffa4, 0xff9b,
+ 0xff45, 0xfeb0, 0xfe1e, 0xfdb4, 0xfd88, 0xfdad,
+ 0xfde8, 0xfe10, 0xfe65, 0xfefe, 0xffb3, 0x0060,
+ 0x00be, 0x008c, 0x0013, 0xff95, 0xfee6, 0xfe5f,
+ 0xfeca, 0xffe9, 0x009f, 0x0078, 0xffde, 0xff73,
+ 0xff72, 0xff60, 0xfee2, 0xfe7a, 0xfe9e, 0xfee7,
+ 0xfebd, 0xfe0f, 0xfd3c, 0xfca6, 0xfc91, 0xfd1c,
+ 0xfddf, 0xfe4d, 0xfe82, 0xfed8, 0xff4f, 0xffc2,
+ 0xfff9, 0xffca, 0xff7f, 0xff5e, 0xff38, 0xfef0,
+ 0xfea8, 0xfe5c, 0xfde4, 0xfd5a, 0xfcfb, 0xfc9a,
+ 0xfbee, 0xfb3e, 0xfaf2, 0xfb2b, 0xfbe0, 0xfcb4,
+ 0xfd34, 0xfd57, 0xfd29, 0xfcde, 0xfcef, 0xfd45,
+ 0xfd3d, 0xfc9a, 0xfbb7, 0xfb09, 0xfaa9, 0xfa8a,
+ 0xfb0a, 0xfc07, 0xfc8b, 0xfc84, 0xfca7, 0xfcce,
+ 0xfcb3, 0xfca3, 0xfcaf, 0xfcc7, 0xfd02, 0xfd34,
+ 0xfd2e, 0xfd2b, 0xfd87, 0xfe57, 0xff23, 0xff60,
+ 0xff17, 0xfe95, 0xfdf5, 0xfd5c, 0xfd3c, 0xfdea,
+ 0xff37, 0x00a9, 0x01e9, 0x02b7, 0x031a, 0x035f,
+ 0x0362, 0x02b4, 0x0179, 0x0031, 0xff33, 0xfe96,
+ 0xfe58, 0xfe9b, 0xff62, 0x0040, 0x00ca, 0x00a2,
+ 0xff98, 0xfe76, 0xfe3b, 0xfec4, 0xff95, 0x0088,
+ 0x0174, 0x021d, 0x01f1, 0x0063, 0xfe51, 0xfd06,
+ 0xfc7d, 0xfc3d, 0xfc4b, 0xfcad, 0xfd65, 0xfe51,
+ 0xff12, 0xff8b, 0xffcf, 0xffab, 0xff0e, 0xfe58,
+ 0xfde3, 0xfdd0, 0xfe0f, 0xfe8d, 0xff21, 0xff49,
+ 0xfeab, 0xfdc0, 0xfd3a, 0xfd34, 0xfd7f, 0xfe0b,
+ 0xfeb8, 0xff42, 0xff67, 0xff11, 0xfe52, 0xfd4e,
+ 0xfc6a, 0xfc23, 0xfc69, 0xfcde, 0xfd8d, 0xfe8d,
+ 0xff8a, 0x0059, 0x0113, 0x01d0, 0x02b5, 0x037d,
+ 0x0378, 0x0293, 0x0154, 0x0033, 0xffbe, 0x0034,
+ 0x0149, 0x028c, 0x036b, 0x0368, 0x02c9, 0x0212,
+ 0x0181, 0x014d, 0x014f, 0x0127, 0x00fa, 0x00de,
+ 0x00b4, 0x00de, 0x0199, 0x026d, 0x02ea, 0x02e1,
+ 0x024f, 0x0189, 0x0103, 0x0140, 0x0287, 0x044b,
+ 0x05ad, 0x0639, 0x05cb, 0x04a9, 0x036a, 0x0255,
+ 0x0162, 0x0096, 0xfff1, 0xff64, 0xff04, 0xff18,
+ 0xffa7, 0x003b, 0x00a8, 0x0111, 0x0106, 0x0039,
+ 0xff44, 0xfea3, 0xfe71, 0xfeef, 0xfff5, 0x00ad,
+ 0x00a6, 0x003a, 0xffe6, 0xffc0, 0xffdc, 0x0042,
+ 0x008c, 0x0077, 0x0026, 0xff9b, 0xff40, 0xffc0,
+ 0x00a2, 0x0128, 0x015b, 0x0135, 0x00d8, 0x00e0,
+ 0x0138, 0x0172, 0x01bf, 0x023d, 0x02ad, 0x02ae,
+ 0x01a7, 0xffce, 0xfe5e, 0xfe00, 0xfe64, 0xff18,
+ 0xffe5, 0x00ca, 0x019d, 0x01e6, 0x0190, 0x010d,
+ 0x00f0, 0x0183, 0x0251, 0x02c2, 0x0326, 0x0405,
+ 0x0538, 0x0655, 0x0726, 0x07a1, 0x07bd, 0x0760,
+ 0x06c1, 0x0649, 0x062b, 0x06c0, 0x081b, 0x094a,
+ 0x098c, 0x0957, 0x092d, 0x08f7, 0x08b2, 0x08a1,
+ 0x08e4, 0x0969, 0x0a24, 0x0ad2, 0x0afe, 0x0ac6,
+ 0x0acb, 0x0b10, 0x0b0b, 0x0ab5, 0x0a8c, 0x0a9b,
+ 0x0a71, 0x0a27, 0x0a3b, 0x0a90, 0x0ad6, 0x0ae1,
+ 0x0a27, 0x08c5, 0x07c8, 0x0762, 0x0717, 0x070b,
+ 0x0720, 0x06e1, 0x06c6, 0x076e, 0x085b, 0x08cd,
+ 0x08c5, 0x0845, 0x0705, 0x056f, 0x045c, 0x0408,
+ 0x0458, 0x0501, 0x0576, 0x0595, 0x055f, 0x0475,
+ 0x0321, 0x022a, 0x01a1, 0x0120, 0x006b, 0xff87,
+ 0xfeb1, 0xfdbf, 0xfc5c, 0xfae8, 0xf9d4, 0xf8e9,
+ 0xf7de, 0xf6af, 0xf5a8, 0xf534, 0xf553, 0xf5c5,
+ 0xf637, 0xf5ff, 0xf4d2, 0xf35e, 0xf27f, 0xf294,
+ 0xf383, 0xf4c5, 0xf5c5, 0xf657, 0xf6be, 0xf74d,
+ 0xf7ed, 0xf84d, 0xf84b, 0xf7e3, 0xf781, 0xf7fa,
+ 0xf95e, 0xfb09, 0xfccd, 0xfe7d, 0xff9d, 0x004f,
+ 0x0104, 0x0188, 0x017b, 0x0102, 0x00a0, 0x0095,
+ 0x00ec, 0x01b9, 0x02c9, 0x03de, 0x04fa, 0x05b3,
+ 0x05ba, 0x059c, 0x0582, 0x051e, 0x04a4, 0x0404,
+ 0x033b, 0x030b, 0x0360, 0x0362, 0x031b, 0x02bf,
+ 0x0234, 0x01a5, 0x0142, 0x0149, 0x01c2, 0x0209,
+ 0x01d1, 0x0189, 0x0178, 0x0187, 0x0142, 0x0026,
+ 0xfea7, 0xfdb0, 0xfd84, 0xfdd1, 0xfe31, 0xfe76,
+ 0xfea4, 0xfebe, 0xfefa, 0xff79, 0xffce, 0xff86,
+ 0xfec0, 0xfdfe, 0xfdb6, 0xfdf9, 0xfeb6, 0xfff5,
+ 0x015a, 0x025d, 0x02f0, 0x0332, 0x030a, 0x0248,
+ 0x00d2, 0xff0b, 0xfdc1, 0xfd32, 0xfd06, 0xfd46,
+ 0xfe24, 0xff2a, 0xffb1, 0xff81, 0xfe9e, 0xfd44,
+ 0xfc13, 0xfb88, 0xfbb0, 0xfc98, 0xfe25, 0xff9f,
+ 0x0046, 0x002e, 0xffe4, 0xffba, 0xffdc, 0x0043,
+ 0x0070, 0x0002, 0xff5c, 0xfef6, 0xfee4, 0xff06,
+ 0xfefc, 0xfe8f, 0xfe42, 0xfe9b, 0xff74, 0x006f,
+ 0x0130, 0x0140, 0x00c1, 0x0040, 0xffc8, 0xff2f,
+ 0xfea6, 0xfe4f, 0xfe40, 0xfe99, 0xff0b, 0xff3a,
+ 0xff3c, 0xff07, 0xfe48, 0xfd05, 0xfbc7, 0xfb0f,
+ 0xfad0, 0xfac0, 0xfaef, 0xfb7c, 0xfc3c, 0xfcdc,
+ 0xfd21, 0xfd29, 0xfd12, 0xfcc2, 0xfc91, 0xfcdd,
+ 0xfd20, 0xfd07, 0xfd04, 0xfd43, 0xfda4, 0xfdfe,
+ 0xfe0a, 0xfde0, 0xfda5, 0xfd0b, 0xfc2e, 0xfb8d,
+ 0xfb6b, 0xfc0f, 0xfd58, 0xfe75, 0xff12, 0xff5e,
+ 0xff66, 0xff57, 0xff2c, 0xfeab, 0xfe21, 0xfdd8,
+ 0xfda8, 0xfdbc, 0xfe60, 0xff4f, 0x002f, 0x00dc,
+ 0x0143, 0x017c, 0x01ac, 0x01ed, 0x022e, 0x022b,
+ 0x01df, 0x0194, 0x015f, 0x00fc, 0x0058, 0xffe9,
+ 0xfff2, 0xfffa, 0xffac, 0xff67, 0xff6c, 0xffbd,
+ 0x0067, 0x0152, 0x023f, 0x02ce, 0x02ad, 0x0219,
+ 0x0167, 0x00d2, 0x00e0, 0x0169, 0x0175, 0x00ed,
+ 0x005b, 0xffe3, 0xffaf, 0xffba, 0xff94, 0xff3e,
+ 0xfece, 0xfe15, 0xfd4c, 0xfcb9, 0xfc43, 0xfbe8,
+ 0xfba9, 0xfb8e, 0xfbbe, 0xfc0f, 0xfc5c, 0xfcee,
+ 0xfdaa, 0xfe0b, 0xfe18, 0xfe0e, 0xfdee, 0xfdf3,
+ 0xfe59, 0xfeb8, 0xfe8c, 0xfdeb, 0xfd28, 0xfc67,
+ 0xfbc7, 0xfb7d, 0xfb9d, 0xfc05, 0xfc66, 0xfc75,
+ 0xfc48, 0xfc24, 0xfc22, 0xfc27, 0xfc13, 0xfc0d,
+ 0xfc57, 0xfcec, 0xfdac, 0xfe74, 0xfef5, 0xff36,
+ 0xff65, 0xff48, 0xfedb, 0xfe78, 0xfe57, 0xfebd,
+ 0xff7b, 0xfffd, 0x0085, 0x0158, 0x01b5, 0x0156,
+ 0x00c4, 0x004b, 0x001f, 0x0043, 0x0083, 0x00f9,
+ 0x01b0, 0x028a, 0x038f, 0x0478, 0x04f1, 0x050d,
+ 0x04f9, 0x04ef, 0x04ed, 0x048e, 0x03da, 0x032c,
+ 0x02a1, 0x026a, 0x0290, 0x02d3, 0x031a, 0x032f,
+ 0x0301, 0x02f7, 0x033a, 0x039f, 0x040d, 0x042e,
+ 0x03bb, 0x02f3, 0x0240, 0x01e1, 0x01ef, 0x024e,
+ 0x02b6, 0x02e7, 0x02e3, 0x02ce, 0x02c2, 0x02de,
+ 0x02e9, 0x026d, 0x016a, 0x0033, 0xff21, 0xfe5f,
+ 0xfdb2, 0xfd1b, 0xfcec, 0xfcbc, 0xfc1d, 0xfb6c,
+ 0xfac5, 0xf9ef, 0xf92f, 0xf8cc, 0xf8bf, 0xf902,
+ 0xf982, 0xfa2a, 0xfaf5, 0xfbba, 0xfc23, 0xfbff,
+ 0xfb8e, 0xfb4b, 0xfb68, 0xfb98, 0xfba0, 0xfbc0,
+ 0xfc36, 0xfcc8, 0xfd4a, 0xfdc4, 0xfe1d, 0xfe64,
+ 0xfedf, 0xff6b, 0xff7c, 0xff04, 0xfeae, 0xfe92,
+ 0xfe13, 0xfd5f, 0xfd13, 0xfd07, 0xfd2f, 0xfdc0,
+ 0xfe5a, 0xfef3, 0x0017, 0x01b8, 0x0364, 0x051d,
+ 0x0702, 0x08d3, 0x0a22, 0x0aff, 0x0bd0, 0x0c68,
+ 0x0c5f, 0x0bc7, 0x0ae1, 0x09fa, 0x09a5, 0x0a22,
+ 0x0b00, 0x0bba, 0x0c35, 0x0c70, 0x0c5a, 0x0c0c,
+ 0x0bd5, 0x0bfa, 0x0c4a, 0x0c65, 0x0c8e, 0x0d04,
+ 0x0d55, 0x0d6e, 0x0d75, 0x0d24, 0x0cba, 0x0c98,
+ 0x0c6f, 0x0c32, 0x0beb, 0x0b28, 0x0a0a, 0x0921,
+ 0x08a7, 0x08b0, 0x08e4, 0x08b1, 0x0817, 0x0757,
+ 0x06a9, 0x0638, 0x05dd, 0x058d, 0x0580, 0x05b6,
+ 0x060b, 0x0642, 0x0637, 0x0634, 0x0671, 0x069a,
+ 0x066a, 0x0626, 0x061b, 0x061a, 0x05f2, 0x05b8,
+ 0x0551, 0x04ad, 0x03c9, 0x025c, 0x009e, 0xff47,
+ 0xfe7f, 0xfe26, 0xfdfa, 0xfd7a, 0xfc4c, 0xfa73,
+ 0xf8a8, 0xf7df, 0xf7c1, 0xf7b3, 0xf7f2, 0xf836,
+ 0xf826, 0xf848, 0xf8b1, 0xf8f6, 0xf8fe, 0xf8ae,
+ 0xf7fc, 0xf70a, 0xf5fa, 0xf51c, 0xf48a, 0xf43e,
+ 0xf463, 0xf4b9, 0xf4fa, 0xf56b, 0xf600, 0xf656,
+ 0xf67a, 0xf6bb, 0xf730, 0xf7a3, 0xf81e, 0xf8f9,
+ 0xf9fd, 0xfac8, 0xfb94, 0xfc85, 0xfd77, 0xfe64,
+ 0xff3a, 0x0003, 0x00f4, 0x01f2, 0x02ca, 0x0383,
+ 0x0433, 0x04e0, 0x057a, 0x05e8, 0x05fa, 0x059d,
+ 0x0519, 0x0498, 0x0431, 0x0455, 0x0514, 0x05f5,
+ 0x06b0, 0x0716, 0x0713, 0x06da, 0x0679, 0x0600,
+ 0x05a0, 0x0561, 0x054c, 0x055b, 0x055d, 0x0549,
+ 0x0521, 0x04d0, 0x0439, 0x0312, 0x0176, 0x0015,
+ 0xff38, 0xfea2, 0xfe32, 0xfdd3, 0xfd7f, 0xfd56,
+ 0xfd59, 0xfd3f, 0xfcb6, 0xfbda, 0xfb2c, 0xfaf2,
+ 0xfaee, 0xfabc, 0xfa6a, 0xfa81, 0xfb31, 0xfc10,
+ 0xfc82, 0xfc33, 0xfb81, 0xfb08, 0xfae5, 0xfafa,
+ 0xfb28, 0xfb35, 0xfad5, 0xf9e9, 0xf8f2, 0xf899,
+ 0xf8c4, 0xf933, 0xf9e2, 0xfa70, 0xfab4, 0xfb02,
+ 0xfb97, 0xfc84, 0xfd68, 0xfde8, 0xfe6d, 0xff2b,
+ 0xffd1, 0x0050, 0x0077, 0x004f, 0x0091, 0x015c,
+ 0x021c, 0x026c, 0x021c, 0x014f, 0x006e, 0xffe1,
+ 0x000b, 0x00c1, 0x016d, 0x01e3, 0x01ef, 0x0180,
+ 0x0111, 0x00c5, 0x0092, 0x00b8, 0x0103, 0x00f7,
+ 0x009b, 0x0019, 0xff7c, 0xfed0, 0xfe42, 0xfe0a,
+ 0xfe2d, 0xfe8d, 0xff0d, 0xff78, 0xffa3, 0xff6d,
+ 0xfeeb, 0xfe71, 0xfe16, 0xfde7, 0xfe09, 0xfe3e,
+ 0xfe69, 0xfec4, 0xff0c, 0xfee8, 0xfe4f, 0xfd48,
+ 0xfc66, 0xfc2e, 0xfc33, 0xfc28, 0xfc53, 0xfcbd,
+ 0xfd3d, 0xfda5, 0xfdea, 0xfe38, 0xfe78, 0xfe8d,
+ 0xfeb8, 0xfef7, 0xff2a, 0xff85, 0xfff7, 0x001d,
+ 0xfff1, 0xff8b, 0xfef6, 0xfe5f, 0xfde4, 0xfd4a,
+ 0xfc8b, 0xfc2a, 0xfc87, 0xfd89, 0xfeea, 0x0027,
+ 0x00a7, 0x005c, 0xffbf, 0xff32, 0xfed5, 0xfec9,
+ 0xff43, 0xfff4, 0x0026, 0xffbd, 0xff19, 0xfe9f,
+ 0xfe81, 0xfe52, 0xfd8f, 0xfcc3, 0xfcb4, 0xfd40,
+ 0xfe10, 0xff00, 0xffd7, 0x007d, 0x00ec, 0x00e6,
+ 0x0058, 0xff88, 0xfedf, 0xfec8, 0xff19, 0xff2f,
+ 0xfec3, 0xfe1b, 0xfdac, 0xfdcd, 0xfe39, 0xfe67,
+ 0xfe69, 0xfe7a, 0xfe70, 0xfe46, 0xfe0a, 0xfd84,
+ 0xfc88, 0xfb4f, 0xfa5c, 0xf9ea, 0xf9f0, 0xfa98,
+ 0xfbad, 0xfc77, 0xfcf4, 0xfd9e, 0xfe57, 0xfee6,
+ 0xff3f, 0xff32, 0xfecb, 0xfe52, 0xfdd9, 0xfd61,
+ 0xfcf1, 0xfc86, 0xfc1d, 0xfbbd, 0xfb7a, 0xfb54,
+ 0xfb68, 0xfbee, 0xfcbd, 0xfd9f, 0xfe9a, 0xff63,
+ 0xffc5, 0x000e, 0x003d, 0x001f, 0x0025, 0x0085,
+ 0x0094, 0xffed, 0xfef9, 0xfdf2, 0xfcb5, 0xfbd5,
+ 0xfc04, 0xfcd9, 0xfdc1, 0xfeba, 0xffab, 0x007d,
+ 0x0135, 0x01bb, 0x0229, 0x0297, 0x02ee, 0x034c,
+ 0x03a6, 0x03db, 0x041b, 0x044a, 0x042b, 0x03c9,
+ 0x02f0, 0x01aa, 0x0094, 0xffe1, 0xff7a, 0xff73,
+ 0xff92, 0xffba, 0x0012, 0x0066, 0x0096, 0x00ef,
+ 0x018c, 0x0229, 0x025f, 0x021f, 0x01f8, 0x020f,
+ 0x01c4, 0x0106, 0x0068, 0xfffa, 0xff9d, 0xff75,
+ 0xff65, 0xff48, 0xff66, 0xffd1, 0x003f, 0x00a3,
+ 0x00fd, 0x0129, 0x0118, 0x00a1, 0xff7e, 0xfdd9,
+ 0xfc54, 0xfb83, 0xfb88, 0xfc08, 0xfca3, 0xfd05,
+ 0xfcd3, 0xfc0f, 0xfb37, 0xfa92, 0xfa20, 0xfa11,
+ 0xfab0, 0xfbf4, 0xfd66, 0xfe83, 0xff39, 0xffc2,
+ 0x0032, 0x0081, 0x00a7, 0x007d, 0xffce, 0xfec8,
+ 0xfdf4, 0xfd75, 0xfd15, 0xfce4, 0xfd01, 0xfd5b,
+ 0xfdd2, 0xfe13, 0xfe0f, 0xfe6d, 0xff69, 0x0067,
+ 0x012d, 0x01a0, 0x0175, 0x011b, 0x0121, 0x0154,
+ 0x01a6, 0x023c, 0x02ac, 0x02d3, 0x033a, 0x0427,
+ 0x0555, 0x068e, 0x07df, 0x0931, 0x0a2f, 0x0aba,
+ 0x0b01, 0x0b12, 0x0b06, 0x0b31, 0x0b84, 0x0b99,
+ 0x0b74, 0x0b69, 0x0b94, 0x0bcb, 0x0bc4, 0x0b47,
+ 0x0a4f, 0x0906, 0x07d5, 0x0729, 0x0700, 0x073f,
+ 0x07f6, 0x08f4, 0x09fb, 0x0ae4, 0x0b3a, 0x0ac4,
+ 0x09b8, 0x0811, 0x0630, 0x04f7, 0x049f, 0x04e9,
+ 0x0574, 0x05a5, 0x057b, 0x0585, 0x05e6, 0x067f,
+ 0x0702, 0x06eb, 0x0656, 0x05af, 0x0537, 0x0544,
+ 0x05d6, 0x069d, 0x0794, 0x087b, 0x08f6, 0x093d,
+ 0x0965, 0x093a, 0x08de, 0x0863, 0x079e, 0x06bc,
+ 0x0609, 0x0572, 0x04a4, 0x0369, 0x01f2, 0x00d0,
+ 0x008b, 0x012a, 0x021d, 0x02dd, 0x0346, 0x0339,
+ 0x0290, 0x016d, 0x000f, 0xfe88, 0xfce8, 0xfb6f,
+ 0xfa6f, 0xfa0d, 0xf9ed, 0xf979, 0xf8b3, 0xf80a,
+ 0xf797, 0xf74a, 0xf6ff, 0xf680, 0xf5f2, 0xf585,
+ 0xf545, 0xf5a2, 0xf6ac, 0xf7b1, 0xf84f, 0xf872,
+ 0xf837, 0xf850, 0xf8ff, 0xf9c0, 0xfa66, 0xfb07,
+ 0xfb84, 0xfbba, 0xfb9a, 0xfb9b, 0xfc68, 0xfdd1,
+ 0xff4b, 0x00da, 0x02a5, 0x0485, 0x060e, 0x06e7,
+ 0x0720, 0x0701, 0x06d1, 0x0696, 0x060c, 0x0542,
+ 0x048a, 0x03fd, 0x03f0, 0x048e, 0x051f, 0x0529,
+ 0x04f6, 0x04c2, 0x0493, 0x0490, 0x04e7, 0x0575,
+ 0x05a8, 0x0557, 0x050b, 0x051a, 0x055c, 0x0595,
+ 0x058b, 0x04f6, 0x03ca, 0x028a, 0x0195, 0x0035,
+ 0xfe02, 0xfbe8, 0xfaa2, 0xfa47, 0xfac0, 0xfb2d,
+ 0xfadf, 0xfa73, 0xfa8b, 0xfb4a, 0xfc7d, 0xfd43,
+ 0xfd31, 0xfcf6, 0xfd0f, 0xfd7f, 0xfe12, 0xfe75,
+ 0xfebe, 0xfefa, 0xfed2, 0xfe82, 0xfe90, 0xfeed,
+ 0xff86, 0x005a, 0x012f, 0x01f3, 0x0296, 0x02c1,
+ 0x0263, 0x01b5, 0x00db, 0x0000, 0xff6b, 0xff26,
+ 0xfedf, 0xfe74, 0xfe2c, 0xfe2a, 0xfe7f, 0xff60,
+ 0x008f, 0x0170, 0x01b9, 0x0183, 0x013a, 0x0177,
+ 0x0249, 0x0309, 0x0338, 0x02cc, 0x01d2, 0x0089,
+ 0xff6f, 0xfeb5, 0xfe26, 0xfda6, 0xfd36, 0xfce9,
+ 0xfcf7, 0xfd54, 0xfdaf, 0xfe08, 0xfe69, 0xfea7,
+ 0xfeb7, 0xfeac, 0xfe9c, 0xfeb5, 0xff05, 0xff70,
+ 0xffb9, 0xffca, 0xffc0, 0xff61, 0xfe67, 0xfd58,
+ 0xfcd0, 0xfcd0, 0xfd2f, 0xfd95, 0xfdb3, 0xfdc9,
+ 0xfe11, 0xfe46, 0xfe2d, 0xfdda, 0xfd5a, 0xfca8,
+ 0xfc22, 0xfc52, 0xfcf7, 0xfd8c, 0xfe23, 0xfeac,
+ 0xfee0, 0xfecb, 0xfe67, 0xfdd6, 0xfd89, 0xfd62,
+ 0xfd21, 0xfcf9, 0xfd0b, 0xfd6c, 0xfde4, 0xfdce,
+ 0xfd5b, 0xfd4e, 0xfd82, 0xfd75, 0xfd0e, 0xfc64,
+ 0xfbc6, 0xfb5b, 0xfafb, 0xfab0, 0xfa9e, 0xfad0,
+ 0xfb4e, 0xfc10, 0xfd0a, 0xfe1a, 0xfef6, 0xff75,
+ 0xffaa, 0xffc6, 0x0000, 0x0030, 0x000e, 0xff9e,
+ 0xfeec, 0xfe33, 0xfdc3, 0xfd7f, 0xfd49, 0xfd21,
+ 0xfce9, 0xfce4, 0xfd3c, 0xfd74, 0xfd5a, 0xfd47,
+ 0xfd8a, 0xfe23, 0xfe97, 0xfe98, 0xfeaa, 0xff1e,
+ 0xffc0, 0x008e, 0x0179, 0x022e, 0x0262, 0x01da,
+ 0x00ce, 0xffdb, 0xff2f, 0xfea9, 0xfe53, 0xfe37,
+ 0xfe0c, 0xfd76, 0xfc89, 0xfba7, 0xfb16, 0xfb0f,
+ 0xfb74, 0xfbd3, 0xfc23, 0xfc63, 0xfc43, 0xfbe9,
+ 0xfbf3, 0xfca6, 0xfda9, 0xfe0f, 0xfd71, 0xfcab,
+ 0xfc97, 0xfd45, 0xfe41, 0xfebe, 0xfe7c, 0xfe19,
+ 0xfdcc, 0xfd69, 0xfd17, 0xfcd9, 0xfca3, 0xfcd7,
+ 0xfdd4, 0xff5d, 0x00a9, 0x011b, 0x00cb, 0x0013,
+ 0xff0d, 0xfdd2, 0xfcbb, 0xfc0f, 0xfbc9, 0xfbc7,
+ 0xfbfa, 0xfc71, 0xfd7a, 0xff35, 0x00fd, 0x0246,
+ 0x0334, 0x03e8, 0x0452, 0x0464, 0x0404, 0x0378,
+ 0x0326, 0x02e0, 0x0268, 0x01d2, 0x0157, 0x014c,
+ 0x018f, 0x019c, 0x01a3, 0x0214, 0x02f0, 0x0418,
+ 0x0535, 0x05fc, 0x069b, 0x071f, 0x0761, 0x0781,
+ 0x0765, 0x06d1, 0x060f, 0x056f, 0x04f0, 0x04ab,
+ 0x046f, 0x03b7, 0x029c, 0x01d0, 0x01a2, 0x01cf,
+ 0x0209, 0x0239, 0x0256, 0x0238, 0x01c1, 0x0126,
+ 0x007e, 0xff89, 0xfe67, 0xfd8a, 0xfcf7, 0xfc89,
+ 0xfc33, 0xfbbb, 0xfb2b, 0xfad4, 0xfab5, 0xfac5,
+ 0xfaf8, 0xfaf2, 0xfa7a, 0xf9c6, 0xf929, 0xf8df,
+ 0xf8e2, 0xf922, 0xf9a4, 0xfa1a, 0xfa45, 0xfa5b,
+ 0xfa66, 0xfa50, 0xfa84, 0xfb3f, 0xfc16, 0xfc98,
+ 0xfcc5, 0xfccc, 0xfcb0, 0xfc6c, 0xfc53, 0xfcb0,
+ 0xfd48, 0xfdae, 0xfdd3, 0xfe1b, 0xfee0, 0x0026,
+ 0x01a9, 0x02d1, 0x031b, 0x02ae, 0x021b, 0x01f1,
+ 0x0285, 0x0363, 0x03d1, 0x03e3, 0x03f8, 0x044c,
+ 0x053c, 0x06bd, 0x0842, 0x0995, 0x0abf, 0x0bb6,
+ 0x0c6d, 0x0ca2, 0x0c20, 0x0b35, 0x0a6c, 0x09e7,
+ 0x0950, 0x0872, 0x077a, 0x06a4, 0x0642, 0x067c,
+ 0x06c8, 0x06dd, 0x0741, 0x0813, 0x0901, 0x09f7,
+ 0x0a87, 0x0a5c, 0x09f2, 0x09a9, 0x0974, 0x0979,
+ 0x09af, 0x09c2, 0x09cd, 0x0a37, 0x0b0b, 0x0bdd,
+ 0x0c21, 0x0bc7, 0x0b2d, 0x0a91, 0x09e3, 0x08fd,
+ 0x080c, 0x0791, 0x07a7, 0x07fc, 0x0878, 0x0916,
+ 0x098a, 0x098a, 0x0921, 0x0895, 0x0807, 0x0748,
+ 0x065b, 0x059b, 0x0523, 0x04db, 0x04a2, 0x0420,
+ 0x0347, 0x02b1, 0x0297, 0x0269, 0x01d7, 0x0120,
+ 0x0073, 0xffbd, 0xfedf, 0xfde3, 0xfce8, 0xfbe5,
+ 0xfae1, 0xfa35, 0xfa17, 0xfa2d, 0xf9ef, 0xf948,
+ 0xf8be, 0xf8be, 0xf8fe, 0xf90a, 0xf8e1, 0xf88c,
+ 0xf7f8, 0xf74e, 0xf6d9, 0xf6d0, 0xf757, 0xf846,
+ 0xf933, 0xf9e7, 0xfa97, 0xfb8b, 0xfca9, 0xfd72,
+ 0xfdc2, 0xfe0f, 0xfead, 0xff61, 0xffbf, 0xff94,
+ 0xff03, 0xfe63, 0xfdf7, 0xfdce, 0xfe08, 0xfec7,
+ 0xffc2, 0x0091, 0x014b, 0x0231, 0x030d, 0x0385,
+ 0x03b6, 0x03b6, 0x032c, 0x0229, 0x015c, 0x00f9,
+ 0x00d3, 0x011a, 0x01d1, 0x02b4, 0x03bb, 0x04b5,
+ 0x054b, 0x05a3, 0x05d3, 0x0598, 0x04d3, 0x03a2,
+ 0x0297, 0x0258, 0x02a7, 0x030e, 0x0396, 0x03f0,
+ 0x03b0, 0x0304, 0x01fd, 0x009c, 0xff4c, 0xfe3d,
+ 0xfd71, 0xfd1d, 0xfd4e, 0xfdc1, 0xfe39, 0xfe8e,
+ 0xfea7, 0xfe66, 0xfdbf, 0xfce8, 0xfc17, 0xfb7f,
+ 0xfb41, 0xfb36, 0xfb46, 0xfb4a, 0xfad3, 0xfa0f,
+ 0xf9a6, 0xf9b1, 0xfa14, 0xfabc, 0xfb59, 0xfbeb,
+ 0xfc87, 0xfcc0, 0xfc94, 0xfc8b, 0xfcb2, 0xfce6,
+ 0xfd12, 0xfce0, 0xfc6a, 0xfc44, 0xfc85, 0xfce7,
+ 0xfd4c, 0xfd7d, 0xfd6d, 0xfd8a, 0xfe1c, 0xff00,
+ 0x000a, 0x010d, 0x01dd, 0x0270, 0x0281, 0x01d5,
+ 0x00e2, 0x003b, 0x0001, 0x0035, 0x0087, 0x0081,
+ 0x0047, 0x0040, 0x009f, 0x0196, 0x02db, 0x03b5,
+ 0x03ec, 0x039e, 0x02eb, 0x020d, 0x00f6, 0xff9a,
+ 0xfe71, 0xfda6, 0xfce5, 0xfc41, 0xfbde, 0xfb8c,
+ 0xfb4b, 0xfb44, 0xfb79, 0xfbf7, 0xfceb, 0xfe4e,
+ 0xff89, 0xfffd, 0xffb4, 0xfef8, 0xfdf5, 0xfd22,
+ 0xfccf, 0xfca6, 0xfc62, 0xfbf6, 0xfb38, 0xfa5e,
+ 0xfa01, 0xfa1d, 0xfa2c, 0xf9e0, 0xf954, 0xf8f3,
+ 0xf91b, 0xf9b0, 0xfa87, 0xfb94, 0xfc75, 0xfcca,
+ 0xfcd5, 0xfd02, 0xfd74, 0xfe17, 0xfe7c, 0xfe3a,
+ 0xfd9f, 0xfd15, 0xfc8e, 0xfc0c, 0xfbd5, 0xfc0e,
+ 0xfc8e, 0xfcf0, 0xfd13, 0xfd23, 0xfd16, 0xfcfb,
+ 0xfd27, 0xfd6b, 0xfd54, 0xfcf0, 0xfc5e, 0xfbad,
+ 0xfb41, 0xfb57, 0xfbde, 0xfcb5, 0xfd7c, 0xfdd1,
+ 0xfdb0, 0xfd5b, 0xfd27, 0xfd31, 0xfd6b, 0xfddf,
+ 0xfe5b, 0xfe84, 0xfe72, 0xfe3a, 0xfdb1, 0xfd1b,
+ 0xfcdc, 0xfcd3, 0xfcfc, 0xfd83, 0xfe5a, 0xff6e,
+ 0x0098, 0x016d, 0x01b5, 0x0189, 0x00fb, 0x0032,
+ 0xff85, 0xff1b, 0xfed8, 0xfea0, 0xfe59, 0xfdfc,
+ 0xfd95, 0xfd21, 0xfcb3, 0xfc9e, 0xfcf3, 0xfd69,
+ 0xfde9, 0xfe34, 0xfde1, 0xfd11, 0xfc0c, 0xfaf1,
+ 0xfa2b, 0xf9e7, 0xf9d1, 0xfa1c, 0xfb11, 0xfc1e,
+ 0xfcb3, 0xfcf9, 0xfd27, 0xfd2e, 0xfd1c, 0xfd34,
+ 0xfd8a, 0xfde1, 0xfdfe, 0xfdd9, 0xfda2, 0xfdcf,
+ 0xfe91, 0xff71, 0xffc3, 0xff47, 0xfe57, 0xfd85,
+ 0xfd17, 0xfd32, 0xfda6, 0xfdd9, 0xfdbf, 0xfdc6,
+ 0xfdc1, 0xfda5, 0xfe17, 0xff4f, 0x00e4, 0x0264,
+ 0x034e, 0x0385, 0x0361, 0x02f0, 0x0208, 0x00ee,
+ 0x002b, 0xffe5, 0xffdf, 0x000c, 0x0073, 0x00ec,
+ 0x0185, 0x0240, 0x02c1, 0x02d3, 0x0294, 0x0235,
+ 0x0207, 0x023d, 0x02e3, 0x03ff, 0x0501, 0x0537,
+ 0x04d3, 0x0464, 0x0427, 0x0436, 0x047e, 0x04d4,
+ 0x051d, 0x0541, 0x0567, 0x05c3, 0x062c, 0x065e,
+ 0x05ef, 0x04a9, 0x034b, 0x0282, 0x01d6, 0x00f5,
+ 0x0062, 0x006c, 0x00cc, 0x010f, 0x00ef, 0x0075,
+ 0xffd1, 0xff3f, 0xff0a, 0xff6e, 0x006f, 0x01ac,
+ 0x0298, 0x02e9, 0x02a6, 0x0231, 0x01e8, 0x01b4,
+ 0x0195, 0x01b0, 0x0198, 0x0115, 0x00b9, 0x0095,
+ 0x002c, 0xff88, 0xfee4, 0xfe0b, 0xfd0c, 0xfc80,
+ 0xfc72, 0xfc1b, 0xfb82, 0xfb68, 0xfb77, 0xfb0d,
+ 0xfa71, 0xf9c0, 0xf8fc, 0xf8ba, 0xf8f8, 0xf93a,
+ 0xf973, 0xf94e, 0xf87d, 0xf793, 0xf729, 0xf763,
+ 0xf839, 0xf975, 0xfaeb, 0xfc59, 0xfd66, 0xfe49,
+ 0xff5c, 0x007a, 0x01ab, 0x02e6, 0x03c9, 0x046b,
+ 0x051f, 0x05b5, 0x0622, 0x06c9, 0x07bf, 0x08ad,
+ 0x0955, 0x09bf, 0x09f5, 0x09cb, 0x0940, 0x08bb,
+ 0x089b, 0x08eb, 0x096d, 0x09db, 0x0a38, 0x0ab6,
+ 0x0b0d, 0x0abc, 0x09ef, 0x0911, 0x0822, 0x0764,
+ 0x0710, 0x06a2, 0x05f9, 0x0597, 0x055a, 0x051a,
+ 0x0540, 0x05d5, 0x06d9, 0x0867, 0x09e1, 0x0adc,
+ 0x0ba5, 0x0c20, 0x0bf8, 0x0b27, 0x09d1, 0x089e,
+ 0x0811, 0x07cb, 0x07aa, 0x07e0, 0x0825, 0x0851,
+ 0x0874, 0x084c, 0x07d7, 0x0759, 0x06d5, 0x064c,
+ 0x05f2, 0x05cd, 0x05b3, 0x0583, 0x0518, 0x042d,
+ 0x02f0, 0x0226, 0x0213, 0x024c, 0x02b3, 0x0338,
+ 0x0376, 0x0341, 0x02bb, 0x01f0, 0x00fd, 0x0048,
+ 0x002d, 0x0071, 0x0084, 0x004e, 0xfffc, 0xff93,
+ 0xff19, 0xfe69, 0xfd81, 0xfcd7, 0xfc96, 0xfc9c,
+ 0xfd12, 0xfdc9, 0xfe54, 0xfedd, 0xff78, 0xffa6,
+ 0xff27, 0xfe6f, 0xfe0f, 0xfdeb, 0xfda1, 0xfd67,
+ 0xfd52, 0xfd07, 0xfcc4, 0xfcd8, 0xfd14, 0xfd8e,
+ 0xfe4e, 0xff0e, 0xffba, 0x000a, 0xffb6, 0xff56,
+ 0xff81, 0x001e, 0x00ee, 0x0199, 0x01cc, 0x017d,
+ 0x00d5, 0x0029, 0xffae, 0xff49, 0xfef5, 0xfe90,
+ 0xfde7, 0xfd8a, 0xfe0e, 0xff00, 0xffdd, 0x00ac,
+ 0x014b, 0x017a, 0x015e, 0x0114, 0x0068, 0xff6d,
+ 0xfe9c, 0xfe08, 0xfd5f, 0xfcb4, 0xfc36, 0xfbd1,
+ 0xfb8f, 0xfb97, 0xfc00, 0xfc9f, 0xfd22, 0xfd92,
+ 0xfdef, 0xfdf0, 0xfe0e, 0xfed5, 0xff63, 0xfeed,
+ 0xfe0f, 0xfd56, 0xfcaa, 0xfc0d, 0xfbbb, 0xfbcf,
+ 0xfc2b, 0xfcc0, 0xfd73, 0xfdd1, 0xfdcd, 0xfde0,
+ 0xfdfa, 0xfdec, 0xfe03, 0xfe19, 0xfdcb, 0xfd6d,
+ 0xfd67, 0xfdb1, 0xfe28, 0xfebe, 0xff7d, 0x002e,
+ 0x007f, 0x00ab, 0x00fa, 0x012c, 0x011a, 0x00d7,
+ 0x007c, 0x0049, 0x005b, 0x00a0, 0x0109, 0x0126,
+ 0x00b1, 0x0067, 0x00e3, 0x0190, 0x01cc, 0x01df,
+ 0x0204, 0x01e9, 0x018c, 0x0161, 0x0176, 0x019e,
+ 0x01e1, 0x023b, 0x026c, 0x0230, 0x0190, 0x00d5,
+ 0xfffa, 0xfee8, 0xfe4a, 0xfea8, 0xff8c, 0x0055,
+ 0x00db, 0x0144, 0x01b3, 0x01ef, 0x01d2, 0x01ba,
+ 0x01cc, 0x01f6, 0x0252, 0x0286, 0x01f6, 0x00bf,
+ 0xff88, 0xfebf, 0xfe53, 0xfde2, 0xfd30, 0xfc34,
+ 0xfb0d, 0xfa46, 0xfa44, 0xfad0, 0xfb9f, 0xfc4b,
+ 0xfc55, 0xfbe3, 0xfb7d, 0xfb25, 0xfabb, 0xfa88,
+ 0xfab9, 0xfb2e, 0xfbc2, 0xfc0a, 0xfb6d, 0xfa40,
+ 0xf9a8, 0xf9e1, 0xfa40, 0xfa83, 0xfac2, 0xfb0a,
+ 0xfb95, 0xfc6c, 0xfd52, 0xfdf4, 0xfdf2, 0xfd6b,
+ 0xfcfc, 0xfcce, 0xfcbd, 0xfce2, 0xfd1a, 0xfd15,
+ 0xfccd, 0xfc3e, 0xfb8b, 0xfb23, 0xfb3b, 0xfbba,
+ 0xfc95, 0xfd6b, 0xfdc1, 0xfda3, 0xfd37, 0xfc79,
+ 0xfbd2, 0xfb9a, 0xfb99, 0xfbf4, 0xfcfe, 0xfe11,
+ 0xfe8b, 0xfed4, 0xff34, 0xff7c, 0xffb6, 0xffe1,
+ 0xffb9, 0xff43, 0xfee3, 0xfeed, 0xff4b, 0xff82,
+ 0xff71, 0xff86, 0x001a, 0x0105, 0x01cd, 0x0235,
+ 0x0239, 0x01b0, 0x00b7, 0xffeb, 0xff99, 0xffbe,
+ 0x0050, 0x00d0, 0x00b4, 0x0033, 0xffb8, 0xff82,
+ 0xffcb, 0x0045, 0x0081, 0x00a6, 0x00a0, 0x0015,
+ 0xffa7, 0xfff8, 0x0061, 0x006c, 0x0097, 0x00e8,
+ 0x0112, 0x015a, 0x01ad, 0x0179, 0x00e6, 0x0088,
+ 0x0076, 0x0095, 0x010b, 0x01d0, 0x024e, 0x021e,
+ 0x018a, 0x00b7, 0xffbc, 0xff3d, 0xff44, 0xff24,
+ 0xfef6, 0xfef8, 0xfed7, 0xfe97, 0xfe1b, 0xfd02,
+ 0xfbbd, 0xfacb, 0xfa39, 0xfa29, 0xfa48, 0xfa82,
+ 0xfb72, 0xfc6b, 0xfc77, 0xfc53, 0xfc75, 0xfc71,
+ 0xfc6f, 0xfc52, 0xfbe4, 0xfbc3, 0xfc21, 0xfcdc,
+ 0xfe50, 0x001b, 0x0159, 0x01c8, 0x0158, 0x0047,
+ 0xff67, 0xff41, 0xffd3, 0x00a0, 0x0118, 0x0148,
+ 0x013f, 0x00dc, 0x00b2, 0x0121, 0x01ce, 0x02a7,
+ 0x0395, 0x0445, 0x04dc, 0x053a, 0x050d, 0x04d5,
+ 0x04d4, 0x0480, 0x03db, 0x0373, 0x036a, 0x035c,
+ 0x02c1, 0x01bc, 0x00f5, 0x009d, 0x00b6, 0x013c,
+ 0x01a0, 0x01b9, 0x0202, 0x0261, 0x02ad, 0x0340,
+ 0x03f6, 0x048b, 0x0530, 0x05a8, 0x057e, 0x04d2,
+ 0x03f0, 0x0311, 0x027d, 0x0241, 0x0254, 0x02df,
+ 0x03ff, 0x0555, 0x0603, 0x05a3, 0x04ba, 0x03af,
+ 0x0279, 0x0169, 0x00de, 0x00bd, 0x0109, 0x020e,
+ 0x034c, 0x03ae, 0x02fc, 0x0214, 0x01c1, 0x01d3,
+ 0x0164, 0x0044, 0xff22, 0xfe49, 0xfe02, 0xfeb5,
+ 0xffa9, 0x0037, 0x00d9, 0x0171, 0x0176, 0x0118,
+ 0x0064, 0xff54, 0xfe39, 0xfd0e, 0xfbee, 0xfb59,
+ 0xfb8f, 0xfc89, 0xfdcc, 0xfeba, 0xff4d, 0xff7b,
+ 0xff1e, 0xfe89, 0xfdd6, 0xfcf5, 0xfc47, 0xfc25,
+ 0xfcb0, 0xfdbd, 0xfe88, 0xfeb9, 0xfec3, 0xfeec,
+ 0xff5e, 0x004f, 0x012c, 0x015e, 0x0193, 0x0236,
+ 0x027c, 0x023f, 0x01e8, 0x014c, 0x00c2, 0x00bf,
+ 0x00e7, 0x014f, 0x0236, 0x034c, 0x0450, 0x04be,
+ 0x04bf, 0x052c, 0x0595, 0x0611, 0x0768, 0x0823,
+ 0x079e, 0x0744, 0x0717, 0x071f, 0x07c0, 0x0807,
+ 0x0815, 0x0837, 0x07c1, 0x077f, 0x0783, 0x0662,
+ 0x04b2, 0x038e, 0x031f, 0x0354, 0x0386, 0x03bd,
+ 0x03d5, 0x02d3, 0x01bd, 0x0145, 0x003c, 0xff8a,
+ 0x0041, 0x0148, 0x0211, 0x026b, 0x0258, 0x0241,
+ 0x0159, 0xfff5, 0xffa1, 0xffa3, 0xff72, 0x0058,
+ 0x01f8, 0x0280, 0x0173, 0xffd9, 0xfe99, 0xfdcd,
+ 0xfdd4, 0xff09, 0x00e6, 0x02b4, 0x038d, 0x02c5,
+ 0x00d4, 0xfedf, 0xfe1a, 0xfea8, 0xffa1, 0x006d,
+ 0x0088, 0x0032, 0x000e, 0xff5a, 0xfec7, 0xff69,
+ 0xfef7, 0xfd5f, 0xfce7, 0xfc69, 0xfbb6, 0xfc26,
+ 0xfcc5, 0xfd75, 0xfdf3, 0xfd82, 0xfd73, 0xfcdd,
+ 0xfb10, 0xfa79, 0xfa33, 0xf9b5, 0xfaa3, 0xfa96,
+ 0xf95f, 0xf959, 0xf8cd, 0xf84d, 0xf8ff, 0xf8c9,
+ 0xf964, 0xfb54, 0xfbb4, 0xfbf4, 0xfc15, 0xfac0,
+ 0xfada, 0xfbe1, 0xfbcb, 0xfc39, 0xfcad, 0xfc6f,
+ 0xfbe4, 0xfa6d, 0xfa3d, 0xfbe3, 0xfcd0, 0xfdfc,
+ 0xff4d, 0xff8a, 0x00c7, 0x01ea, 0x0126, 0x005f,
+ 0xff46, 0xfddf, 0xfde6, 0xfeb6, 0x0029, 0x0154,
+ 0x0125, 0x0219, 0x0309, 0x019c, 0x0143, 0x019e,
+ 0xfff7, 0xff58, 0xffac, 0xfe23, 0xfd4e, 0xfe80,
+ 0xff58, 0xffe6, 0x0109, 0x017a, 0x010e, 0x01cb,
+ 0x02cb, 0x01c0, 0x0134, 0x0250, 0x01b3, 0x0066,
+ 0x00b7, 0x00dc, 0x0152, 0x034e, 0x04e0, 0x05a3,
+ 0x0620, 0x056c, 0x03e2, 0x030b, 0x02cf, 0x023a,
+ 0x0270, 0x03f2, 0x047d, 0x04f0, 0x0689, 0x05b7,
+ 0x02f7, 0x01bd, 0x0008, 0xfdeb, 0xfe58, 0x0026,
+ 0x0228, 0x039e, 0x031a, 0x015c, 0xfecd, 0xfcbe,
+ 0xfc74, 0xfb2d, 0xfa85, 0xfd2c, 0xfde8, 0xfcd0,
+ 0xfe75, 0xfef4, 0xfd2a, 0xfd5a, 0xfe0e, 0xfd6a,
+ 0xfcc1, 0xfc5e, 0xfbb7, 0xfaf8, 0xfc67, 0xfe1b,
+ 0xfadf, 0xf7ac, 0xf93f, 0xf97f, 0xf8eb, 0xfb60,
+ 0xfc42, 0xfc2f, 0xff08, 0x0097, 0xfea2, 0xfc73,
+ 0xfbb2, 0xfafd, 0xf9de, 0xfba3, 0xfeb4, 0xfdf6,
+ 0xfe12, 0x00ba, 0xfee1, 0xfc8d, 0xfee9, 0xff7d,
+ 0xfea1, 0x00c9, 0x015c, 0xff27, 0xff63, 0x016a,
+ 0x010c, 0x002d, 0x01dd, 0x01ea, 0x003a, 0x0345,
+ 0x057c, 0x00ee, 0xfea2, 0xfef1, 0xfb50, 0xfb00,
+ 0xff3d, 0xff18, 0xfe55, 0x0143, 0x0137, 0xfe21,
+ 0xfe2e, 0xffbf, 0xfe17, 0xfbbd, 0xfcc8, 0xfdea,
+ 0xfc7c, 0xfbe4, 0xfc3b, 0xfc09, 0xfddc, 0x0111,
+ 0x029f, 0x0305, 0x02d0, 0x016b, 0xff41, 0xfdf0,
+ 0xff2f, 0x0142, 0x0171, 0x007f, 0xff31, 0xfd82,
+ 0xfc53, 0xfb77, 0xfb64, 0xfc68, 0xfd4f, 0xff6a,
+ 0x01e7, 0x00a8, 0xfeae, 0xff45, 0xfea1, 0xfe33,
+ 0x0081, 0x009b, 0xff58, 0x00b3, 0x010a, 0x00b7,
+ 0x0335, 0x043e, 0x0208, 0x003b, 0xff08, 0xfe4f,
+ 0xfe73, 0xfe39, 0xfe27, 0xfe07, 0xfd35, 0xfda1,
+ 0xfdf9, 0xfbb1, 0xf9a6, 0xfa67, 0xfca6, 0xff12,
+ 0x01a4, 0x03c8, 0x0329, 0x00ee, 0x0150, 0x024c,
+ 0x01ca, 0x036e, 0x04fd, 0x025d, 0x0095, 0x0297,
+ 0x02eb, 0x0013, 0x0093, 0x04ed, 0x052c, 0x049c,
+ 0x09eb, 0x0a9e, 0x04ad, 0x0487, 0x04ac, 0x00d5,
+ 0x052f, 0x0b97, 0x08a0, 0x0616, 0x0779, 0x0587,
+ 0x03e2, 0x06b6, 0x0872, 0x06b3, 0x081b, 0x0ccd,
+ 0x0c0c, 0x09be, 0x0bb1, 0x08d8, 0x047f, 0x08d1,
+ 0x0b4a, 0x0852, 0x09c8, 0x0a4b, 0x0504, 0x01c0,
+ 0x01b2, 0x00c8, 0x0013, 0x0336, 0x073a, 0x05dc,
+ 0x04e9, 0x07fa, 0x0675, 0x043f, 0x0639, 0x02cc,
+ 0xfee0, 0x040a, 0x07b3, 0x04b5, 0x0307, 0x03f8,
+ 0x03ea, 0x027a, 0x02fb, 0x041b, 0x01d6, 0x027a,
+ 0x0680, 0x04c5, 0x038c, 0x073d, 0x05eb, 0x02c9,
+ 0x03e2, 0x02ed, 0x006b, 0x0082, 0x0185, 0x027d,
+ 0x02f5, 0x03ff, 0x04c1, 0x01d5, 0xffca, 0x002b,
+ 0xfd79, 0xfd0b, 0x020c, 0x035a, 0x014c, 0x0179,
+ 0x007a, 0xfd8c, 0xfc89, 0xfc37, 0xfabf, 0xfac9,
+ 0xfc07, 0xfaa6, 0xf96f, 0xfb3d, 0xfb3f, 0xf95d,
+ 0xf7c8, 0xf398, 0xf0e2, 0xf318, 0xf2ed, 0xf049,
+ 0xf123, 0xf245, 0xf02f, 0xeeb6, 0xf05c, 0xf15d,
+ 0xf02d, 0xf061, 0xef34, 0xeb0d, 0xeaf7, 0xebae,
+ 0xe8c4, 0xea59, 0xedd9, 0xed56, 0xeee2, 0xefb7,
+ 0xebf1, 0xe9a5, 0xe7b9, 0xe55a, 0xe4f7, 0xe382,
+ 0xe348, 0xe449, 0xe219, 0xe2c9, 0xe65e, 0xe74a,
+ 0xeaa2, 0xee65, 0xedd1, 0xecbd, 0xe6ed, 0xdbbe,
+ 0xd53e, 0xd47f, 0xd77c, 0xddee, 0xe62a, 0xef05,
+ 0xef1a, 0xe632, 0xe45f, 0xe7a2, 0xe957, 0xf11e,
+ 0xf94a, 0xfbfa, 0xff25, 0xfe7e, 0xfb1f, 0xfc13,
+ 0xfc62, 0xfee7, 0x0600, 0x0793, 0x06a1, 0x06b5,
+ 0x020f, 0x0005, 0x0416, 0x062c, 0x080f, 0x0bd0,
+ 0x0e31, 0x0f2f, 0x0eda, 0x1065, 0x142b, 0x1484,
+ 0x14ec, 0x1758, 0x1509, 0x1250, 0x13b7, 0x1274,
+ 0x106a, 0x1326, 0x15c3, 0x172d, 0x1aa6, 0x1b4e,
+ 0x17af, 0x1722, 0x1818, 0x1469, 0x1053, 0x0b30,
+ 0xfce3, 0xebba, 0xe2b5, 0xe2b7, 0xeed6, 0x0880,
+ 0x236c, 0x31ac, 0x319c, 0x2b21, 0x23b0, 0x1c5c,
+ 0x1875, 0x171b, 0x11ee, 0x0845, 0xfe04, 0xf845,
+ 0xf991, 0xfc80, 0x00a3, 0x0bd6, 0x1b27, 0x28e7,
+ 0x305a, 0x2aaa, 0x195e, 0x050a, 0xf792, 0xf78b,
+ 0xfebe, 0x08bd, 0x15eb, 0x1ac1, 0x167c, 0x15b3,
+ 0x12db, 0x097f, 0x023c, 0xfd59, 0xfbb6, 0xfd3c,
+ 0xfc98, 0x00a5, 0x0874, 0x0990, 0x0e3e, 0x1a49,
+ 0x20b8, 0x241a, 0x259d, 0x1f4e, 0x1ab3, 0x1c26,
+ 0x1c5a, 0x1c42, 0x1c2c, 0x18ed, 0x157f, 0x1638,
+ 0x1ae6, 0x1dc6, 0x1d19, 0x1df1, 0x1cb4, 0x161b,
+ 0x13d7, 0x1771, 0x17e1, 0x1562, 0x15c3, 0x1912,
+ 0x1a4b, 0x1750, 0x1427, 0x1225, 0x0fd2, 0x0f4b,
+ 0x11ea, 0x170b, 0x1b80, 0x1955, 0x1406, 0x14fb,
+ 0x1936, 0x1844, 0x1339, 0x0faf, 0x0fba, 0x11aa,
+ 0x11f1, 0x0fa6, 0x0ef0, 0x102a, 0x0ebb, 0x0f0c,
+ 0x147a, 0x1556, 0x1366, 0x165c, 0x11e6, 0x04ff,
+ 0x02b3, 0x07eb, 0x0899, 0x0a5e, 0x0e5f, 0x0e67,
+ 0x0ba7, 0x0995, 0x0b0b, 0x1116, 0x18d9, 0x1f05,
+ 0x2151, 0x212d, 0x21fb, 0x240a, 0x250c, 0x20a1,
+ 0x1ba6, 0x2115, 0x2755, 0x256c, 0x2914, 0x2dc9,
+ 0x25e8, 0x210a, 0x23f2, 0x2035, 0x1e7d, 0x2752,
+ 0x2cd6, 0x277d, 0x1f00, 0x1d19, 0x1de5, 0x1798,
+ 0x1478, 0x1aea, 0x194a, 0x0c8f, 0x0058, 0xf593,
+ 0xf284, 0xfd70, 0x0adb, 0x0ff3, 0x0bfd, 0x0540,
+ 0x05a0, 0x09b5, 0x0673, 0xfed4, 0xfb14, 0xf9cb,
+ 0xf76e, 0xf639, 0xf3da, 0xe978, 0xe2a8, 0xeb02,
+ 0xee35, 0xe5e6, 0xeb46, 0xf744, 0xf339, 0xee3d,
+ 0xf237, 0xf1a0, 0xf081, 0xf5e5, 0xf880, 0xf4cd,
+ 0xef62, 0xebce, 0xe9dd, 0xe389, 0xdb78, 0xdd0f,
+ 0xe394, 0xe249, 0xdefa, 0xe120, 0xde8c, 0xd80c,
+ 0xdc77, 0xe0fc, 0xd7ba, 0xd229, 0xd3b2, 0xcd00,
+ 0xc8d5, 0xcfcc, 0xd735, 0xddb8, 0xde38, 0xd707,
+ 0xd669, 0xd5e1, 0xd0c2, 0xd7ea, 0xdbe0, 0xce58,
+ 0xcce1, 0xd6b1, 0xcfd3, 0xc840, 0xd24a, 0xd8a6,
+ 0xd005, 0xcd58, 0xd805, 0xd71b, 0xc6bb, 0xc3b1,
+ 0xce27, 0xd1a1, 0xd148, 0xd2b9, 0xd25b, 0xcecb,
+ 0xc8c6, 0xc84c, 0xc919, 0xbdf1, 0xb792, 0xc32e,
+ 0xccf8, 0xcdae, 0xceb7, 0xd2ce, 0xd6e6, 0xd2c7,
+ 0xcb5e, 0xcabe, 0xcaa5, 0xcc79, 0xcd8f, 0xc2d1,
+ 0xc0a1, 0xcbb4, 0xcb6c, 0xce00, 0xd912, 0xd55d,
+ 0xd2ad, 0xd7f3, 0xd523, 0xda8a, 0xe1a1, 0xd557,
+ 0xcdb9, 0xce85, 0xc762, 0xc6f9, 0xcc05, 0xcbf5,
+ 0xcec9, 0xce8f, 0xcb06, 0xcd38, 0xcba1, 0xc88e,
+ 0xcb7e, 0xcbe9, 0xce16, 0xd363, 0xd139, 0xd0ad,
+ 0xd78e, 0xd80b, 0xd091, 0xcfc8, 0xd970, 0xdba1,
+ 0xd489, 0xda14, 0xe0e7, 0xd8de, 0xda7f, 0xe29c,
+ 0xd9e9, 0xd4ae, 0xd9ef, 0xd731, 0xd781, 0xe008,
+ 0xe181, 0xdd85, 0xda87, 0xdb54, 0xdefe, 0xda8f,
+ 0xd14b, 0xd087, 0xd634, 0xdc5b, 0xded9, 0xde18,
+ 0xe319, 0xe97c, 0xe832, 0xe729, 0xe9c2, 0xeb20,
+ 0xeb6f, 0xea1b, 0xeb36, 0xeed4, 0xea3d, 0xe6a8,
+ 0xeed0, 0xf0b2, 0xed60, 0xf609, 0xf9d5, 0xf4b1,
+ 0xfe4c, 0x0727, 0xfc7a, 0xf7f7, 0xffd1, 0x0071,
+ 0xfdec, 0xfe95, 0x0174, 0x08f6, 0x09b3, 0x0344,
+ 0x085e, 0x0f4b, 0x087b, 0x0305, 0x0718, 0x0eb9,
+ 0x1753, 0x16db, 0x0e2b, 0x0e32, 0x12f8, 0x1198,
+ 0x143b, 0x1c8c, 0x1bb6, 0x14cd, 0x15c8, 0x18fd,
+ 0x14cf, 0x1341, 0x1c43, 0x22e4, 0x1cdb, 0x168e,
+ 0x1d5c, 0x24d0, 0x1e7b, 0x16eb, 0x165b, 0x1382,
+ 0x14e3, 0x1ee5, 0x214c, 0x1e50, 0x21b4, 0x228a,
+ 0x201e, 0x23ad, 0x281e, 0x2b7b, 0x307d, 0x30a6,
+ 0x2962, 0x1e93, 0x1a99, 0x28fe, 0x3714, 0x2eb9,
+ 0x27e8, 0x3272, 0x337c, 0x2ba3, 0x3380, 0x3d19,
+ 0x3789, 0x3298, 0x35c0, 0x38e5, 0x3b11, 0x3dae,
+ 0x3fda, 0x3ef0, 0x3cb5, 0x4147, 0x44a0, 0x3bf9,
+ 0x3aa8, 0x496e, 0x4c08, 0x3b3e, 0x33dc, 0x3fc1,
+ 0x4835, 0x4193, 0x3e3f, 0x4541, 0x4383, 0x38fc,
+ 0x36c8, 0x3ad3, 0x3fff, 0x48d3, 0x4f18, 0x4d67,
+ 0x46d8, 0x417e, 0x4291, 0x44d2, 0x4385, 0x444d,
+ 0x4408, 0x3fa1, 0x42e2, 0x4b85, 0x4947, 0x40d7,
+ 0x4047, 0x4240, 0x3ccc, 0x3882, 0x3ee4, 0x43f1,
+ 0x3ef6, 0x3c68, 0x3d4c, 0x34b0, 0x2cb3, 0x366a,
+ 0x43e6, 0x428b, 0x3d58, 0x3ec8, 0x3857, 0x2906,
+ 0x2942, 0x387c, 0x3c62, 0x3580, 0x366f, 0x39f5,
+ 0x350a, 0x3350, 0x3c5d, 0x3eca, 0x344a, 0x3135,
+ 0x362d, 0x2e28, 0x236f, 0x2b77, 0x3605, 0x32fb,
+ 0x30f0, 0x3543, 0x3456, 0x2ef5, 0x2d78, 0x2d69,
+ 0x2822, 0x2340, 0x2664, 0x275a, 0x2222, 0x26b0,
+ 0x2ef4, 0x2697, 0x1d7d, 0x2727, 0x2e76, 0x260f,
+ 0x2716, 0x367c, 0x3207, 0x19ea, 0x17b3, 0x2710,
+ 0x2338, 0x17f5, 0x1c8d, 0x2136, 0x1c21, 0x1892,
+ 0x1830, 0x1654, 0x15ff, 0x1b83, 0x1d29, 0x1174,
+ 0x0a15, 0x11d1, 0x142e, 0x0d6c, 0x0ef6, 0x161a,
+ 0x1395, 0x0895, 0x0896, 0x14b3, 0x12c1, 0x0967,
+ 0x111c, 0x14b9, 0x08b1, 0x064a, 0x08d8, 0x027e,
+ 0x01c1, 0x0b35, 0x10ae, 0x09da, 0x0409, 0x0c4b,
+ 0x0b76, 0xfb9e, 0xfdef, 0x07f4, 0x0000, 0xfbd4,
+ 0x0129, 0xff76, 0xfd64, 0xff41, 0x0348, 0x066d,
+ 0xff0d, 0xfa1c, 0x0111, 0xff2f, 0xf4cb, 0xf28b,
+ 0xf473, 0xf675, 0xf9ad, 0xf9fa, 0xf43b, 0xeffb,
+ 0xfa83, 0x0321, 0xf684, 0xf333, 0x0122, 0xfdad,
+ 0xf565, 0xfcd2, 0xfded, 0xf67f, 0xf4c4, 0xf80e,
+ 0xfa04, 0xf068, 0xeb54, 0xfb04, 0xfdeb, 0xef36,
+ 0xf2e8, 0xfd63, 0xf984, 0xf261, 0xf092, 0xf839,
+ 0xfa21, 0xeb80, 0xeb84, 0xf798, 0xf147, 0xeeec,
+ 0xf76a, 0xef29, 0xe8d5, 0xf522, 0xf94a, 0xf050,
+ 0xf011, 0xf7dc, 0xf160, 0xe2c3, 0xe770, 0xf089,
+ 0xec25, 0xec81, 0xe80d, 0xd99c, 0xe01a, 0xe9c4,
+ 0xddfd, 0xda96, 0xe2da, 0xe2f9, 0xdc9d, 0xce46,
+ 0xc5b2, 0xcf67, 0xd46d, 0xcf5c, 0xd046, 0xd844,
+ 0xddb2, 0xd369, 0xcc17, 0xda5a, 0xd7ce, 0xc535,
+ 0xcabe, 0xcbdf, 0xc162, 0xd1b1, 0xe1aa, 0xdf0b,
+ 0xe2ef, 0xe51c, 0xeb89, 0xf7fd, 0xe75e, 0xd766,
+ 0xe625, 0xdca3, 0xbdb9, 0xc4e7, 0xd90b, 0xd0d9,
+ 0xcb6b, 0xdb6a, 0xdfbd, 0xd730, 0xdeaf, 0xe038,
+ 0xcaeb, 0xc5f7, 0xce6b, 0xc73c, 0xc35b, 0xc470,
+ 0xc21f, 0xcc87, 0xcf2a, 0xc38f, 0xcad8, 0xd362,
+ 0xcd58, 0xcddb, 0xca71, 0xc81e, 0xd356, 0xcb09,
+ 0xbe01, 0xce98, 0xd519, 0xc87f, 0xcc15, 0xcda5,
+ 0xc419, 0xcaae, 0xd3d6, 0xcc51, 0xcafb, 0xd738,
+ 0xd857, 0xd112, 0xd594, 0xd75b, 0xcfda, 0xd392,
+ 0xd5b5, 0xce83, 0xd814, 0xe29f, 0xd730, 0xcdfa,
+ 0xcfd9, 0xd523, 0xdcb2, 0xdae7, 0xd756, 0xdb48,
+ 0xd86d, 0xd879, 0xe315, 0xe49d, 0xde81, 0xd787,
+ 0xd0d6, 0xcf68, 0xc6d1, 0xc05b, 0xc984, 0xc446,
+ 0xbc8d, 0xcc16, 0xcc61, 0xc79e, 0xda32, 0xd498,
+ 0xc384, 0xd28e, 0xd0ce, 0xbb1d, 0xc54f, 0xd396,
+ 0xcdd4, 0xd2ac, 0xe441, 0xeab9, 0xdf8d, 0xdc9a,
+ 0xed70, 0xe93e, 0xd05e, 0xd227, 0xdbc4, 0xcdce,
+ 0xc921, 0xe0b0, 0xf00a, 0xdf07, 0xd84a, 0xf558,
+ 0xf7f8, 0xddf2, 0xec8d, 0xf708, 0xd2eb, 0xcf16,
+ 0xe971, 0xe4b7, 0xe3e8, 0xf2a6, 0xef9d, 0xec79,
+ 0xec5a, 0xe5d8, 0xe876, 0xe523, 0xdc6c, 0xe66b,
+ 0xe52c, 0xd52b, 0xdfca, 0xea4f, 0xde16, 0xe278,
+ 0xece2, 0xe1a9, 0xddd4, 0xe2dc, 0xdd3f, 0xe487,
+ 0xf29e, 0xe817, 0xe239, 0xf275, 0xf201, 0xe61e,
+ 0xeac8, 0xe853, 0xda8d, 0xe111, 0xeb89, 0xdf9d,
+ 0xdcef, 0xf473, 0xf8fe, 0xdff5, 0xdd80, 0xf149,
+ 0xec0b, 0xdde1, 0xe1bb, 0xe1e1, 0xe409, 0xf1b5,
+ 0xec7e, 0xe156, 0xed51, 0xf268, 0xe6e4, 0xe721,
+ 0xe9c8, 0xe158, 0xe125, 0xeabd, 0xe9ae, 0xe779,
+ 0xf7e9, 0x0016, 0xf0f3, 0xf2ee, 0xfe79, 0xef3a,
+ 0xe9de, 0xf6cb, 0xecf4, 0xe81c, 0xf086, 0xde6f,
+ 0xda68, 0xf6ce, 0xf2cf, 0xda85, 0xdc55, 0xe36f,
+ 0xe7b6, 0xed62, 0xe7fa, 0xe45d, 0xe510, 0xe040,
+ 0xe4f6, 0xea7f, 0xe447, 0xe8b1, 0xefdf, 0xe83d,
+ 0xe756, 0xeea0, 0xf1ee, 0xf803, 0xf5e1, 0xecbe,
+ 0xf508, 0xffc7, 0xfc13, 0xfa3b, 0xf9c5, 0xfb35,
+ 0x083c, 0x0de3, 0x0876, 0x0786, 0xffb8, 0xf912,
+ 0x054a, 0x0937, 0x0274, 0x08bd, 0x054e, 0xfad6,
+ 0x0d4f, 0x1787, 0xfc0d, 0xf5e0, 0x0c5e, 0x0482,
+ 0xf52d, 0x08b6, 0x0cf2, 0xf52a, 0xff50, 0x0fda,
+ 0xf612, 0xf2db, 0x1290, 0x080b, 0xed52, 0xf54d,
+ 0xf7e4, 0xf363, 0x0001, 0x00e7, 0xfd4c, 0x0714,
+ 0x0077, 0xf698, 0x00e6, 0x00ea, 0xfae3, 0x03f9,
+ 0x03df, 0xfd63, 0x03a5, 0x0335, 0xffa1, 0x0b97,
+ 0x10f1, 0x0760, 0x052e, 0x0ac8, 0x0bd2, 0x0287,
+ 0xf649, 0xfcd6, 0x09c2, 0xffff, 0xf890, 0x022a,
+ 0xfb47, 0xefdd, 0xf82e, 0xf9fb, 0xf7a1, 0xfd20,
+ 0xf357, 0xf0e6, 0x06db, 0x07b8, 0xfbe7, 0xfd6e,
+ 0xf166, 0xee17, 0x03c5, 0x00a0, 0xf735, 0x0372,
+ 0xfa93, 0xeea6, 0xfba9, 0xfd80, 0x01bd, 0x0e54,
+ 0xfd95, 0xf7cf, 0x0de0, 0x058f, 0xf71b, 0x058c,
+ 0x0721, 0xfe12, 0x04de, 0x085a, 0x026a, 0x00d7,
+ 0x0713, 0x0a22, 0x0236, 0x0691, 0x1275, 0x05be,
+ 0x0051, 0x120f, 0x10a1, 0x0b16, 0x10fd, 0x0654,
+ 0x03d8, 0x1178, 0x0d13, 0x0ece, 0x1a92, 0x0dbe,
+ 0x03a5, 0x0e3d, 0x17eb, 0x1e45, 0x152a, 0x087e,
+ 0x152f, 0x167b, 0x06fa, 0x14ac, 0x21ea, 0x19c5,
+ 0x215c, 0x2416, 0x101a, 0x09ee, 0x0e32, 0x0e29,
+ 0x15db, 0x1b7e, 0x16c8, 0x0f78, 0x0804, 0x0a92,
+ 0x12ba, 0x0feb, 0x1140, 0x1d3b, 0x1b07, 0x0deb,
+ 0x0bdd, 0x1047, 0x1404, 0x1983, 0x1862, 0x144d,
+ 0x1ebd, 0x2576, 0x1767, 0x1623, 0x2208, 0x171e,
+ 0x1069, 0x1fbe, 0x1a18, 0x0c5c, 0x1826, 0x1b56,
+ 0x0d1f, 0x0d14, 0x13a2, 0x13e5, 0x163a, 0x1ccb,
+ 0x2309, 0x2048, 0x1ac4, 0x200b, 0x21a9, 0x1c08,
+ 0x20a7, 0x22cb, 0x1778, 0x0e6e, 0x0b31, 0x0cfd,
+ 0x15b3, 0x1d6b, 0x1eb6, 0x15e5, 0x0d21, 0x15bd,
+ 0x1dee, 0x18b9, 0x1923, 0x1b3b, 0x19e1, 0x20d7,
+ 0x2266, 0x1d72, 0x22a9, 0x22c0, 0x1bd3, 0x2034,
+ 0x2294, 0x1651, 0x0659, 0x0424, 0x1613, 0x1e70,
+ 0x135d, 0x1588, 0x1a0e, 0x1038, 0x1724, 0x25bb,
+ 0x215d, 0x20ef, 0x26e3, 0x205e, 0x19b3, 0x1ad0,
+ 0x1b01, 0x1801, 0x1ac4, 0x267e, 0x2408, 0x179b,
+ 0x2101, 0x245b, 0x1049, 0x1018, 0x1718, 0x0d37,
+ 0x142d, 0x209d, 0x1a7d, 0x190a, 0x183c, 0x1692,
+ 0x1f92, 0x19ed, 0x14f5, 0x27d1, 0x2626, 0x1860,
+ 0x22a5, 0x1f7c, 0x1262, 0x1bc4, 0x197c, 0x0e5c,
+ 0x1c4e, 0x27bb, 0x2340, 0x1ffd, 0x1a90, 0x187c,
+ 0x1834, 0x0e80, 0x0e1a, 0x16e5, 0x1304, 0x1223,
+ 0x1de5, 0x1fa7, 0x1795, 0x1865, 0x208d, 0x20f0,
+ 0x18b7, 0x177f, 0x1db5, 0x1c3c, 0x14bd, 0x10f7,
+ 0x0f24, 0x0df0, 0x127d, 0x1bc6, 0x1dbe, 0x157c,
+ 0x1271, 0x1913, 0x1b9b, 0x149b, 0x0d53, 0x0fc9,
+ 0x1546, 0x1238, 0x1221, 0x1862, 0x130a, 0x0c62,
+ 0x1307, 0x13ca, 0x0b50, 0x0b54, 0x0ef3, 0x07ae,
+ 0xfeec, 0x0d3b, 0x2001, 0x0fe1, 0x0468, 0x1cb9,
+ 0x1a00, 0x02c0, 0x1417, 0x2021, 0x0eb6, 0x13cc,
+ 0x1d85, 0x1666, 0x1488, 0x0c14, 0x099e, 0x1737,
+ 0x0b2a, 0xffa8, 0x11da, 0x0ee3, 0x07c4, 0x1b76,
+ 0x165e, 0x050d, 0x0f96, 0x13f8, 0x1295, 0x1ba4,
+ 0x189b, 0x14ac, 0x135b, 0x0904, 0x11a5, 0x1bff,
+ 0x0c4c, 0x1170, 0x2541, 0x18f6, 0x1094, 0x1a80,
+ 0x12d2, 0x0c39, 0x1456, 0x13b4, 0x11f0, 0x1432,
+ 0x0cb0, 0x0881, 0x146e, 0x20a1, 0x2035, 0x1d9c,
+ 0x2207, 0x1f3c, 0x1588, 0x1a10, 0x201a, 0x1b7a,
+ 0x22bb, 0x2a22, 0x1b8c, 0x12ac, 0x18a0, 0x1816,
+ 0x1527, 0x121e, 0x0e79, 0x1647, 0x1bff, 0x1752,
+ 0x1be3, 0x21d9, 0x1e87, 0x1fe8, 0x20b6, 0x1f10,
+ 0x249f, 0x228b, 0x1d3d, 0x2497, 0x2245, 0x183d,
+ 0x1cc6, 0x1b76, 0x146f, 0x1ba3, 0x1af2, 0x14e8,
+ 0x1d96, 0x1949, 0x0cb3, 0x16b0, 0x19ef, 0x0cb9,
+ 0x0e59, 0x1177, 0x0d73, 0x143a, 0x1584, 0x0eb1,
+ 0x15c2, 0x1ad9, 0x1421, 0x1494, 0x16b6, 0x128c,
+ 0x142f, 0x1b5d, 0x1cd4, 0x1288, 0x068c, 0x0afa,
+ 0x135e, 0x0cca, 0x06c3, 0x07b2, 0x0564, 0x085f,
+ 0x0c68, 0x0421, 0x0123, 0x08eb, 0x069e, 0x01e8,
+ 0x09e2, 0x0ced, 0x0260, 0xfd71, 0xff29, 0xf744,
+ 0xf266, 0xfe3c, 0xff01, 0xee8e, 0xefe0, 0xfa45,
+ 0xf383, 0xf210, 0xf9f8, 0xf3b1, 0xef98, 0xf7cc,
+ 0xf84e, 0xf690, 0xf915, 0xf71b, 0xf8bd, 0xfb8b,
+ 0xf6b6, 0xf7c7, 0xf97f, 0xf1f7, 0xf4bf, 0xfc39,
+ 0xf865, 0xfc85, 0x0288, 0xf52f, 0xebd6, 0xedba,
+ 0xe6e0, 0xe609, 0xf110, 0xf0c1, 0xeaca, 0xec51,
+ 0xedda, 0xeeb7, 0xed9d, 0xea6e, 0xf19b, 0xf859,
+ 0xedd4, 0xe830, 0xf1c2, 0xf057, 0xe6dd, 0xed05,
+ 0xf393, 0xea5c, 0xe96b, 0xf521, 0xf2be, 0xef90,
+ 0xfeb6, 0xfe14, 0xed08, 0xf6cd, 0x0078, 0xea59,
+ 0xe62c, 0xf88e, 0xf22e, 0xefc8, 0x06b6, 0x03c1,
+ 0xedd8, 0xf40f, 0xff3e, 0xf6c1, 0xf0c5, 0xf243,
+ 0xf183, 0xeecb, 0xeb57, 0xefb7, 0xf8e5, 0xf505,
+ 0xef1e, 0xf6e9, 0xfaeb, 0xf6e6, 0xfb15, 0xff1a,
+ 0xf758, 0xf056, 0xf1df, 0xf463, 0xf4e1, 0xf62b,
+ 0xf5ce, 0xf25f, 0xf106, 0xef36, 0xeb78, 0xf1e1,
+ 0xf9a0, 0xf09a, 0xea97, 0xf022, 0xec4b, 0xed79,
+ 0xf9db, 0xf360, 0xeb46, 0xf3d6, 0xec53, 0xe436,
+ 0xf77a, 0xfb44, 0xe998, 0xee1f, 0xf8f2, 0xef88,
+ 0xe5a4, 0xe6d0, 0xec98, 0xf056, 0xec1f, 0xe676,
+ 0xe724, 0xed39, 0xf349, 0xed2b, 0xe143, 0xe2ca,
+ 0xe432, 0xdbf9, 0xe188, 0xee15, 0xe945, 0xe253,
+ 0xe682, 0xe969, 0xe8e9, 0xe761, 0xe286, 0xdf59,
+ 0xe2a4, 0xe918, 0xe865, 0xe0a2, 0xe373, 0xea64,
+ 0xe356, 0xe423, 0xf098, 0xe865, 0xde3a, 0xe89f,
+ 0xe9fa, 0xe6a0, 0xecc0, 0xe399, 0xdc29, 0xe9a6,
+ 0xeac5, 0xe1eb, 0xe044, 0xdc4a, 0xe341, 0xed15,
+ 0xe33a, 0xe01b, 0xe6b9, 0xe2c4, 0xe37f, 0xe6a8,
+ 0xe476, 0xe827, 0xe489, 0xdb80, 0xe1be, 0xe7d5,
+ 0xe21a, 0xdf15, 0xe6c0, 0xf1ce, 0xf00c, 0xe783,
+ 0xe8f7, 0xe69b, 0xdba7, 0xdce9, 0xe659, 0xe612,
+ 0xe2af, 0xe5ea, 0xe7b0, 0xe7f5, 0xe9e4, 0xe3df,
+ 0xe220, 0xea47, 0xe53f, 0xe3b7, 0xeb44, 0xdc60,
+ 0xd7e2, 0xebc9, 0xea3b, 0xe6b6, 0xebcc, 0xde2a,
+ 0xdcc8, 0xe959, 0xe7a4, 0xe928, 0xea2b, 0xe6a5,
+ 0xe6ad, 0xdb1e, 0xda4c, 0xe7b0, 0xe1c1, 0xe2ab,
+ 0xeb0c, 0xe0d8, 0xe580, 0xee37, 0xe254, 0xe543,
+ 0xeb43, 0xe1ea, 0xe5be, 0xeaec, 0xe3fe, 0xe6e9,
+ 0xf1e4, 0xf48e, 0xed10, 0xe975, 0xf094, 0xf1b1,
+ 0xecf3, 0xf0a9, 0xf20e, 0xe7c1, 0xe3d7, 0xee49,
+ 0xeeab, 0xe65a, 0xf099, 0xf881, 0xef78, 0xef75,
+ 0xf1c1, 0xf3b9, 0xfaab, 0xef45, 0xe5a4, 0xee10,
+ 0xedea, 0xf314, 0xfa41, 0xf1a8, 0xf745, 0xfe29,
+ 0xf653, 0xf8fa, 0xf443, 0xebd4, 0xf409, 0xf23e,
+ 0xefe1, 0xf3c2, 0xea6e, 0xea9e, 0xeff4, 0xef84,
+ 0xfa2a, 0xf730, 0xec2b, 0xf15a, 0xed62, 0xecda,
+ 0xf71a, 0xef7b, 0xe716, 0xe2e3, 0xdf97, 0xeb36,
+ 0xef46, 0xeed2, 0xf2a5, 0xe7c8, 0xe9fd, 0xf357,
+ 0xe97d, 0xf081, 0xf52f, 0xe588, 0xeeb7, 0xf613,
+ 0xea74, 0xede0, 0xf12e, 0xf57e, 0xfbc9, 0xed56,
+ 0xe71b, 0xed94, 0xeb92, 0xef47, 0xf099, 0xf00f,
+ 0xf505, 0xeb2e, 0xe55b, 0xeaaf, 0xe625, 0xebd2,
+ 0xf38a, 0xe91e, 0xe6f3, 0xeece, 0xf111, 0xec70,
+ 0xe7d4, 0xeed2, 0xeeb8, 0xe877, 0xf04b, 0xec25,
+ 0xe629, 0xf31f, 0xf0a1, 0xee92, 0xfcda, 0xfa77,
+ 0xf510, 0xf4fe, 0xf184, 0xf3d3, 0xee60, 0xf153,
+ 0x0078, 0xf6ef, 0xf747, 0x0606, 0xfaa7, 0xfcfc,
+ 0x04f7, 0xf5d3, 0xfbd3, 0xfde3, 0xef87, 0xfd57,
+ 0xfe10, 0xf004, 0xfe72, 0x02b5, 0xfd27, 0x02c6,
+ 0xfc74, 0xfcf8, 0x04f5, 0xfe7e, 0xff28, 0x041e,
+ 0x042a, 0x074f, 0x03bc, 0x0432, 0x09e0, 0x0499,
+ 0x0555, 0x0709, 0xfcb3, 0xfd14, 0x03ab, 0x00a9,
+ 0xff4b, 0x0393, 0x04dc, 0xff78, 0x0026, 0x06bb,
+ 0x0233, 0x00ea, 0x04c3, 0xfde7, 0x0050, 0x041a,
+ 0xfa5a, 0xfdb8, 0x00f5, 0xfa93, 0x0035, 0xfdbc,
+ 0xf8ce, 0x0141, 0xfbd2, 0xfbb0, 0x0905, 0x01de,
+ 0xfe67, 0x059c, 0x00aa, 0x03a9, 0x0734, 0x020b,
+ 0x0817, 0x085b, 0x0386, 0x095d, 0x0836, 0x0926,
+ 0x0f8c, 0x07f4, 0x0323, 0x04fb, 0x04a8, 0x09a6,
+ 0x04e9, 0xfd28, 0x0517, 0x0407, 0xfeea, 0x097c,
+ 0x0aba, 0x038c, 0x077f, 0x09ef, 0x07b2, 0x0948,
+ 0x0beb, 0x0b7d, 0x0634, 0x03b9, 0x0801, 0x0966,
+ 0x0745, 0x04ac, 0x0313, 0x09cd, 0x1081, 0x0af6,
+ 0x05a3, 0x087d, 0x0916, 0x067b, 0x05a2, 0x0396,
+ 0x01b7, 0x0607, 0x0de3, 0x112c, 0x0d52, 0x0a78,
+ 0x0f4c, 0x124c, 0x0ef6, 0x0e5b, 0x0ca5, 0x07b4,
+ 0x0a83, 0x0f27, 0x0ed8, 0x10f2, 0x1180, 0x0f25,
+ 0x0fcf, 0x0dbe, 0x0a87, 0x0bd1, 0x0caf, 0x0cf0,
+ 0x0ad2, 0x07a3, 0x0cee, 0x1139, 0x0e1a, 0x0ed3,
+ 0x0eb0, 0x0d6b, 0x1151, 0x0df1, 0x0982, 0x0e0e,
+ 0x0b73, 0x08e9, 0x1017, 0x0ff6, 0x0d8e, 0x0df2,
+ 0x0977, 0x0b80, 0x0c98, 0x07ac, 0x115b, 0x1335,
+ 0x049f, 0x0eab, 0x1bf9, 0x1094, 0x10b2, 0x14b2,
+ 0x0626, 0x02ce, 0x08b5, 0x0666, 0x0ced, 0x1510,
+ 0x101e, 0x0f75, 0x13d2, 0x0d97, 0x074b, 0x0ce6,
+ 0x0f8b, 0x09c7, 0x0a76, 0x0ba6, 0x0614, 0x0ab0,
+ 0x1320, 0x0f41, 0x0f56, 0x145e, 0x0d84, 0x09af,
+ 0x126e, 0x142b, 0x1009, 0x1341, 0x12a0, 0x0cc7,
+ 0x0f9a, 0x11b1, 0x106a, 0x167a, 0x14ec, 0x0d96,
+ 0x1234, 0x11ba, 0x0d44, 0x1305, 0x0eaf, 0x0831,
+ 0x11b0, 0x1581, 0x11ac, 0x1026, 0x0e8d, 0x118c,
+ 0x0d87, 0x055f, 0x0a59, 0x08c0, 0x04ee, 0x0fa5,
+ 0x0d0c, 0x03ea, 0x0a16, 0x0b68, 0x0991, 0x0bec,
+ 0x08e7, 0x088c, 0x0b64, 0x0f48, 0x1216, 0x0aa3,
+ 0x0d29, 0x189d, 0x1204, 0x0eb5, 0x14e6, 0x1194,
+ 0x1532, 0x196a, 0x1066, 0x0da7, 0x0e4e, 0x0bb2,
+ 0x0a7f, 0x04ff, 0x041d, 0x0851, 0x088b, 0x0e20,
+ 0x12ab, 0x0f1e, 0x0c93, 0x0a51, 0x0cc5, 0x0f99,
+ 0x0a88, 0x0c22, 0x0d21, 0x04e8, 0x06f1, 0x0d45,
+ 0x0d40, 0x0ca3, 0x0bbc, 0x10c0, 0x1195, 0x0a5a,
+ 0x1081, 0x125b, 0x0711, 0x0a30, 0x0e31, 0x0bfa,
+ 0x121a, 0x10c5, 0x0b6d, 0x0e9f, 0x100f, 0x0f49,
+ 0x0bb7, 0x0cc4, 0x1386, 0x0c4a, 0x0916, 0x0e97,
+ 0x03db, 0x0444, 0x0fe0, 0x086d, 0x0889, 0x0c65,
+ 0x0267, 0x071e, 0x0ce7, 0x0585, 0x0a24, 0x116f,
+ 0x10c2, 0x0dd5, 0x09a3, 0x0ec3, 0x1458, 0x1152,
+ 0x0ef9, 0x0a23, 0x0bcd, 0x137c, 0x108b, 0x115b,
+ 0x1109, 0x0717, 0x0e32, 0x1683, 0x0f26, 0x1064,
+ 0x147a, 0x14a4, 0x1525, 0x1021, 0x115c, 0x11d2,
+ 0x0b7d, 0x10bd, 0x0ea5, 0x0474, 0x08e1, 0x03a7,
+ 0xf9e1, 0x01eb, 0x061f, 0x0689, 0x07b3, 0x03b3,
+ 0x0591, 0x013d, 0xfb01, 0x0485, 0x033b, 0xfb45,
+ 0x0155, 0x03a9, 0x06c6, 0x0d5a, 0x0df0, 0x135d,
+ 0x106a, 0x0769, 0x0e12, 0x0a7d, 0xfb2c, 0xfa2f,
+ 0xfa25, 0xf999, 0xff34, 0xffff, 0xfdc9, 0xf988,
+ 0xf81f, 0xfc0c, 0xf6e7, 0xf292, 0xf7c9, 0xf8d2,
+ 0xf958, 0xfbf4, 0xff82, 0x03ce, 0xfee2, 0xfe22,
+ 0x031f, 0xfac9, 0xfa9f, 0x03b4, 0xfcc6, 0xfafb,
+ 0x0386, 0x007b, 0xf7e2, 0xf462, 0xfb82, 0x0086,
+ 0xf7e3, 0xfa17, 0x012d, 0xfa73, 0xfb66, 0xfef5,
+ 0xfb01, 0xfc85, 0xf8a9, 0xf4e0, 0xfadd, 0xfa29,
+ 0xfbd6, 0x0168, 0x0140, 0x078c, 0x053e, 0xf9ee,
+ 0x0095, 0x074b, 0x0640, 0x06bb, 0xfdcc, 0xfe28,
+ 0x07fc, 0x025d, 0x0376, 0x0b36, 0x05cc, 0x09a8,
+ 0x1400, 0x14b5, 0x15fe, 0x1338, 0x0eb7, 0x101f,
+ 0x0ca4, 0x0a90, 0x0e55, 0x0e74, 0x0f5d, 0x100f,
+ 0x0e92, 0x0ede, 0x0b26, 0x0ac3, 0x12b8, 0x128b,
+ 0x0d26, 0x0d0f, 0x0b8f, 0x0c23, 0x125a, 0x108e,
+ 0x0654, 0x03a2, 0x07d3, 0x076a, 0x07cd, 0x0dbb,
+ 0x0e9b, 0x0b8d, 0x0c06, 0x085d, 0xff99, 0xfda4,
+ 0x018a, 0x02c4, 0x0457, 0x05ce, 0xffa3, 0xfcbd,
+ 0x05f9, 0x0a29, 0x0383, 0xfe2d, 0xfc57, 0xfb84,
+ 0xfabf, 0xfe56, 0x06ab, 0x0625, 0x01df, 0x0595,
+ 0x0597, 0x041d, 0x06e2, 0x01f2, 0xfc75, 0xfd4d,
+ 0xfd40, 0xfe4a, 0xfcbc, 0xfb70, 0xff82, 0xfc9c,
+ 0xfb7f, 0xffa1, 0xf628, 0xf0d5, 0xf8fb, 0xf907,
+ 0xf832, 0xfa2f, 0xf858, 0xfd00, 0x0299, 0x02a8,
+ 0xff54, 0xf6b5, 0xf4e6, 0xf4af, 0xebbb, 0xed89,
+ 0xf3c4, 0xf069, 0xf16c, 0xf2c9, 0xf290, 0xf641,
+ 0xf3d1, 0xf201, 0xf0d8, 0xe8d3, 0xea07, 0xedf7,
+ 0xebe3, 0xf19e, 0xf512, 0xf475, 0xf746, 0xf156,
+ 0xeeb8, 0xf430, 0xeee6, 0xeb6c, 0xf105, 0xf244,
+ 0xefaf, 0xee01, 0xf48b, 0xfa78, 0xf42b, 0xf344,
+ 0xf39d, 0xec61, 0xee8b, 0xee5f, 0xebc2, 0xf6a3,
+ 0xf709, 0xf029, 0xf20a, 0xecf8, 0xf0c4, 0xfcf6,
+ 0xf52a, 0xee5d, 0xf193, 0xf11d, 0xf5cc, 0xf6de,
+ 0xf268, 0xf215, 0xee89, 0xf3ff, 0xfd41, 0xf58c,
+ 0xf278, 0xf4cb, 0xf02b, 0xf684, 0xfc45, 0xf7e1,
+ 0xf80e, 0xf60f, 0xf793, 0xfcad, 0xf4fe, 0xf396,
+ 0xf7c1, 0xf0a6, 0xf4bc, 0xfdd4, 0xf910, 0xf7d7,
+ 0xf716, 0xf3f5, 0xfbb6, 0xfe0e, 0xf60a, 0xf4d4,
+ 0xf681, 0xf570, 0xf53c, 0xf570, 0xf4e2, 0xf4e0,
+ 0xf84c, 0xfab7, 0xfa38, 0xfb80, 0xf751, 0xf0d0,
+ 0xf39e, 0xf3e1, 0xf0b8, 0xf47e, 0xf4eb, 0xf44a,
+ 0xf8fd, 0xf8ad, 0xf8fe, 0xfb81, 0xf6b8, 0xf6f6,
+ 0xfc2f, 0xf837, 0xf54d, 0xf630, 0xf102, 0xeed3,
+ 0xf3d5, 0xf71c, 0xf747, 0xf519, 0xf2ff, 0xf3e7,
+ 0xf2a5, 0xf021, 0xf347, 0xf57f, 0xeea5, 0xe865,
+ 0xef05, 0xf928, 0xf6b6, 0xf26e, 0xf933, 0xfb3a,
+ 0xf5f4, 0xf8aa, 0xf95f, 0xf16b, 0xee6e, 0xeea8,
+ 0xee12, 0xf0fe, 0xf371, 0xf42a, 0xf45a, 0xf4a0,
+ 0xf7e8, 0xf7b4, 0xf3e1, 0xf3ad, 0xf24a, 0xf23a,
+ 0xf499, 0xf182, 0xf2d7, 0xf633, 0xf0a3, 0xf2b9,
+ 0xf7fb, 0xf0ff, 0xef31, 0xf172, 0xebbb, 0xeab4,
+ 0xef7f, 0xf3bc, 0xf473, 0xee9f, 0xef87, 0xf62c,
+ 0xf416, 0xf1b9, 0xf202, 0xf0f9, 0xf2f4, 0xf236,
+ 0xf003, 0xef63, 0xeac5, 0xecce, 0xf451, 0xf2d5,
+ 0xef48, 0xeca0, 0xeb04, 0xedaa, 0xebd2, 0xed1f,
+ 0xf2f0, 0xedb8, 0xed27, 0xf2cb, 0xecd1, 0xee80,
+ 0xf72f, 0xf247, 0xee01, 0xef23, 0xf132, 0xf5a9,
+ 0xf1f1, 0xf222, 0xfc83, 0xf9a6, 0xf3eb, 0xf6cb,
+ 0xf326, 0xf34a, 0xfb78, 0xfdeb, 0xff9c, 0xfea5,
+ 0xf752, 0xf6f7, 0xfe20, 0x0002, 0xf943, 0xf70a,
+ 0xfcfd, 0xf961, 0xf5cc, 0x0043, 0x0038, 0xf880,
+ 0xfc18, 0xf8b8, 0xf2c6, 0xf9ed, 0xfb46, 0xf832,
+ 0xfcaa, 0xfc24, 0xf7ab, 0xf734, 0xf6ea, 0xf709,
+ 0xf706, 0xf77c, 0xf978, 0xf85d, 0xf7e6, 0xf940,
+ 0xf756, 0xf95c, 0xfe98, 0xfba3, 0xf54c, 0xf3fc,
+ 0xf743, 0xfb22, 0xf8b9, 0xf3ed, 0xf62f, 0xf9b3,
+ 0xf79d, 0xf4be, 0xf45c, 0xf55d, 0xf701, 0xf6cc,
+ 0xf3b7, 0xf336, 0xf786, 0xfa14, 0xfa44, 0xfc6a,
+ 0xfd31, 0xfbcc, 0xfab3, 0xf760, 0xf50e, 0xf7ab,
+ 0xf9e0, 0xf8f0, 0xf5e5, 0xf515, 0xfb17, 0xfdb7,
+ 0xf97a, 0xfc99, 0x0164, 0xfc28, 0xfaa3, 0x009d,
+ 0xffcb, 0xfb5d, 0xfcb2, 0xfd91, 0xfaf8, 0xfd4f,
+ 0x0055, 0xf9de, 0xf635, 0xfb74, 0xfa0f, 0xf78a,
+ 0xfcaa, 0xfc15, 0xf965, 0xfa39, 0xf6d3, 0xfa21,
+ 0xff49, 0xf5d0, 0xf558, 0x00f8, 0xfcc7, 0xf8a3,
+ 0x01c9, 0x01dc, 0xfa62, 0xf85e, 0xfaad, 0xffc4,
+ 0x0108, 0xfe93, 0xfdcd, 0xfa4e, 0xf985, 0xfe34,
+ 0xfc5b, 0xfa4f, 0xfffd, 0x01c3, 0xfe77, 0xfd0f,
+ 0xfdaa, 0xffdf, 0x0082, 0xff40, 0xff01, 0xfcd0,
+ 0xf952, 0xfa27, 0xffde, 0x0453, 0x0246, 0x0053,
+ 0x012e, 0xfd8a, 0xfc23, 0xff82, 0xfdc1, 0xfde4,
+ 0xffb7, 0xf9b6, 0xf9e9, 0x012c, 0x00e8, 0xfeec,
+ 0xfb16, 0xf821, 0x01a3, 0x035e, 0xf943, 0xfde8,
+ 0x0379, 0xfd91, 0x003b, 0x02cc, 0xfd70, 0xff2e,
+ 0xff49, 0xfa5d, 0xfced, 0xfbac, 0xf334, 0xf348,
+ 0xf874, 0xfadf, 0xfd3c, 0xfe5b, 0xfe83, 0xff76,
+ 0xff05, 0xff09, 0x017d, 0x02bb, 0x00f3, 0xff40,
+ 0x017d, 0x0630, 0x073e, 0x0522, 0x049e, 0x04a4,
+ 0x056a, 0x0749, 0x03cc, 0xfe66, 0xff87, 0xffe6,
+ 0xfe6c, 0x0224, 0x01cb, 0xfe17, 0x0276, 0x03c1,
+ 0xff98, 0x02e6, 0x03e8, 0xfeb9, 0xffec, 0x01bf,
+ 0x0046, 0x01f6, 0x01a6, 0xfef6, 0xff3f, 0xff6f,
+ 0xffa4, 0x00d2, 0x010e, 0x0165, 0x00fb, 0x0163,
+ 0x0489, 0x05bb, 0x050b, 0x044e, 0x02d2, 0x03b2,
+ 0x03dd, 0x00f9, 0x00dd, 0x00e2, 0x0035, 0x0217,
+ 0xffa7, 0xfcdf, 0xffce, 0xfdfb, 0xfc2e, 0x0079,
+ 0xfd0f, 0xf92f, 0xffa4, 0xfef3, 0xf7d0, 0xfb70,
+ 0x00e7, 0xfe49, 0xfbfd, 0xfcea, 0xfdd4, 0xff77,
+ 0xff73, 0xfc66, 0xfd5a, 0x0150, 0x00d8, 0x01c5,
+ 0x0257, 0xf904, 0xf67e, 0x0025, 0xfd94, 0xf74d,
+ 0x0014, 0x0291, 0xf908, 0xf9d7, 0x0050, 0xfdca,
+ 0xf9df, 0xfbd1, 0xfcbe, 0xfa9e, 0xfe0a, 0x03dd,
+ 0x0106, 0xfc38, 0xfc99, 0xfb8f, 0xfa46, 0xfc9e,
+ 0xfd66, 0xfb04, 0xfa33, 0xfe66, 0x016f, 0xfcb0,
+ 0xfb25, 0x003f, 0xfe6a, 0xfb4d, 0xfe84, 0xfcef,
+ 0xfb63, 0x00e8, 0x01d5, 0x0242, 0x08f5, 0x0955,
+ 0x06da, 0x0a51, 0x0776, 0x0000, 0x00c3, 0x016c,
+ 0xfe0a, 0xfe82, 0xfe7a, 0xfcf5, 0xfe84, 0xfe12,
+ 0xfe78, 0x0272, 0x0066, 0xfe6c, 0x021b, 0xfeb3,
+ 0xfad3, 0xffbc, 0xfff6, 0xfdee, 0x0052, 0xfd28,
+ 0xfb5c, 0xffe0, 0xfc98, 0xf798, 0xfac3, 0xfc17,
+ 0xfa93, 0xfaea, 0xf8d8, 0xf412, 0xf1aa, 0xf4e5,
+ 0xf91f, 0xf7f5, 0xf6b1, 0xf89d, 0xf9cc, 0xfadc,
+ 0xfa49, 0xfaba, 0x00e0, 0x00d9, 0xfa46, 0xfbf5,
+ 0xfd3d, 0xf85d, 0xf9ef, 0xfbb7, 0xf7cf, 0xf8a9,
+ 0xfb12, 0xfa8f, 0xfc0e, 0xfb9e, 0xf8d0, 0xf91c,
+ 0xf8c2, 0xf6ce, 0xf6c9, 0xf67d, 0xf5ef, 0xf623,
+ 0xf3a6, 0xefb0, 0xef6a, 0xf26d, 0xf478, 0xf464,
+ 0xf3ab, 0xf1b2, 0xefb6, 0xf25e, 0xf612, 0xf48a,
+ 0xf40a, 0xf837, 0xf902, 0xf684, 0xf5bb, 0xf47a,
+ 0xf51c, 0xf9f6, 0xfc3c, 0xfbb6, 0xfe66, 0x03d6,
+ 0x0875, 0x085c, 0x0574, 0x06f0, 0x0913, 0x0687,
+ 0x0542, 0x0696, 0x06ac, 0x05d5, 0x0480, 0x04a9,
+ 0x061c, 0x06a3, 0x090c, 0x09b9, 0x058e, 0x064a,
+ 0x0a9b, 0x0ab7, 0x0c70, 0x0f9f, 0x1005, 0x111f,
+ 0x113e, 0x119e, 0x1430, 0x1118, 0x0cd1, 0x0e09,
+ 0x0c71, 0x0a62, 0x0cc7, 0x0d61, 0x0e50, 0x0f46,
+ 0x0b4d, 0x09f6, 0x0c1d, 0x0ae4, 0x0873, 0x05c6,
+ 0x04cd, 0x0723, 0x064e, 0x04ff, 0x06af, 0x05b1,
+ 0x0814, 0x0eba, 0x0e58, 0x0d85, 0x0f5d, 0x0a29,
+ 0x077b, 0x0b16, 0x0848, 0x066f, 0x0a6e, 0x0817,
+ 0x0543, 0x08fb, 0x08e7, 0x05a5, 0x065f, 0x08cb,
+ 0x090f, 0x0472, 0x00ae, 0x02aa, 0x002d, 0xfd43,
+ 0x05dc, 0x09ce, 0x02b8, 0x01fb, 0x0416, 0x01fa,
+ 0x01bd, 0xff3d, 0xfb91, 0xfc22, 0xfa59, 0xf9bc,
+ 0xfd6b, 0xfbef, 0xf998, 0xf9b3, 0xf6b8, 0xf8df,
+ 0xfe8b, 0xfac5, 0xf5a2, 0xf705, 0xf723, 0xf4fd,
+ 0xf505, 0xf621, 0xf63f, 0xf7af, 0xf9e2, 0xf693,
+ 0xf360, 0xf71b, 0xf701, 0xf381, 0xf63f, 0xf7aa,
+ 0xf607, 0xf526, 0xf101, 0xf147, 0xf5d7, 0xf2b9,
+ 0xf216, 0xf721, 0xf416, 0xf1c1, 0xf81a, 0xfbb5,
+ 0xfaa8, 0xf9b0, 0xfa8f, 0xfd05, 0xfc69, 0xfad5,
+ 0xfcc1, 0xfe26, 0xfd8e, 0xfd7f, 0xfee1, 0xff93,
+ 0xfce6, 0xfcd5, 0x0015, 0xfe0f, 0xfccf, 0x0011,
+ 0xfe5b, 0xfd52, 0x00eb, 0xff50, 0xfd35, 0x003a,
+ 0x01a8, 0x017f, 0x010d, 0x0024, 0x0270, 0x04d9,
+ 0x03a2, 0x0277, 0x0356, 0x04b4, 0x040e, 0x02bb,
+ 0x040d, 0x0499, 0x047b, 0x0736, 0x0609, 0x019f,
+ 0x04ab, 0x0994, 0x07ee, 0x06a4, 0x0774, 0x0565,
+ 0x0480, 0x05d5, 0x0350, 0x016f, 0x052a, 0x066e,
+ 0x055f, 0x098b, 0x0cb6, 0x0a4d, 0x0893, 0x0844,
+ 0x07e6, 0x0797, 0x0578, 0x0393, 0x03d9, 0x04b5,
+ 0x0590, 0x04ff, 0x0366, 0x0200, 0x0102, 0x03f8,
+ 0x06f2, 0x042e, 0x0403, 0x067a, 0x0424, 0x04cd,
+ 0x08d9, 0x07ae, 0x062f, 0x066e, 0x053f, 0x0518,
+ 0x05d4, 0x076a, 0x0778, 0x0331, 0x02c7, 0x05ba,
+ 0x05b0, 0x08da, 0x0a82, 0x0533, 0x0435, 0x03e1,
+ 0xffdf, 0x0235, 0x02e0, 0xfe76, 0x0209, 0x05af,
+ 0x0339, 0x0506, 0x0696, 0x0372, 0x0228, 0x01a3,
+ 0x00b7, 0xffb2, 0xfd2c, 0xfd7e, 0xff1f, 0xfcf6,
+ 0xfc61, 0xfe7c, 0xfe1a, 0xfdbc, 0xfecd, 0xfe3e,
+ 0xfd8e, 0xfe12, 0xfdb6, 0xfdae, 0x0006, 0x00fb,
+ 0xfe8d, 0xfe91, 0x01ad, 0x0167, 0xff5b, 0xfef0,
+ 0xfbd6, 0xf902, 0xfcd0, 0xff0c, 0xfbd3, 0xfe05,
+ 0x02fe, 0x0053, 0xfd83, 0x00ac, 0x02ff, 0x02ae,
+ 0x00a2, 0xfe02, 0xfebc, 0xff21, 0xfd9e, 0x0056,
+ 0x02ed, 0x00c3, 0xffac, 0xff87, 0xff00, 0x0046,
+ 0xff97, 0xfd2a, 0xfd40, 0xfd58, 0xfd08, 0xfd6b,
+ 0xfbf9, 0xfb60, 0xfdb6, 0xfe23, 0xfd77, 0x0113,
+ 0x052e, 0x030a, 0xfed4, 0xfebc, 0xff4a, 0xfe50,
+ 0xfeb0, 0xfec9, 0xfd1d, 0xfb78, 0xfa8e, 0xfbe2,
+ 0xfe02, 0xfd9e, 0xfcf4, 0xfc18, 0xf9ca, 0xfb8c,
+ 0x0042, 0x0067, 0xff6b, 0x017e, 0x0143, 0xff75,
+ 0x01d4, 0x03fa, 0x0222, 0x0217, 0x041d, 0x045e,
+ 0x0469, 0x0359, 0x01db, 0x03a9, 0x03a4, 0x00b6,
+ 0x0139, 0x01ca, 0x009c, 0x009a, 0xfe88, 0xfd64,
+ 0xffb1, 0xffe7, 0x0178, 0x04db, 0x03af, 0x030d,
+ 0x0400, 0x0235, 0x01e7, 0x01b6, 0x0034, 0x007d,
+ 0xfd9c, 0xfab1, 0xfce4, 0xfb2a, 0xf844, 0xfb1d,
+ 0xfb29, 0xf91f, 0xfa8a, 0xfb2d, 0xfbf9, 0xfd51,
+ 0xfc48, 0xfc81, 0xfe25, 0xfeac, 0xfec7, 0xfe08,
+ 0xfe9f, 0x0083, 0x0082, 0x0152, 0x01ce, 0xff34,
+ 0xff1e, 0x0044, 0xfe6b, 0xfebc, 0xffcd, 0xfcd7,
+ 0xfc1e, 0xffcd, 0x0122, 0x0084, 0x025d, 0x03ab,
+ 0x0202, 0x0123, 0x0144, 0x00fa, 0x01f9, 0x01cd,
+ 0xff64, 0xff16, 0x008f, 0x01d4, 0x0292, 0x0246,
+ 0x036a, 0x0439, 0x0249, 0x0210, 0x010e, 0xfe1e,
+ 0xffb1, 0xff08, 0xfa88, 0xfd10, 0xff27, 0xfc42,
+ 0xfe1e, 0xfe50, 0xfa70, 0xfbcf, 0xfc0e, 0xf968,
+ 0xfb99, 0xfcb1, 0xfabe, 0xfc29, 0xfd7e, 0xfb5e,
+ 0xf9d2, 0xfb5f, 0xfc49, 0xf949, 0xf878, 0xfc30,
+ 0xfd4d, 0xfc85, 0xfd6e, 0xfd99, 0xfd79, 0xfda0,
+ 0xfdcd, 0xff45, 0xff8a, 0xff19, 0x00c0, 0x01d2,
+ 0x02d5, 0x0455, 0x023e, 0xffc8, 0x005d, 0x0043,
+ 0xff23, 0xfe29, 0xfdad, 0xfe37, 0xfc6f, 0xf9f3,
+ 0xfcaa, 0x0054, 0x000b, 0xff29, 0xfe95, 0xfd1d,
+ 0xfbc6, 0xfa9a, 0xf9f1, 0xfa58, 0xfaa2, 0xfac7,
+ 0xfc13, 0xfeb0, 0x016a, 0x01e4, 0xff67, 0xfd3b,
+ 0xfdfa, 0xfff0, 0x0099, 0xff50, 0xfe37, 0xff6d,
+ 0xffed, 0xfeb3, 0xffc3, 0x00a1, 0xfeed, 0xffbe,
+ 0x011e, 0xffdc, 0x00c7, 0x017f, 0xff3b, 0x001d,
+ 0x01fc, 0x003e, 0xff78, 0x00d3, 0x023e, 0x02fe,
+ 0x01aa, 0x0125, 0x023b, 0x0080, 0xfe42, 0xff78,
+ 0x01f4, 0x0346, 0x02de, 0x02d4, 0x03e2, 0x02cc,
+ 0x0225, 0x050f, 0x05c9, 0x02c3, 0x010e, 0x00a2,
+ 0x0047, 0x0144, 0x019d, 0x0021, 0x010c, 0x03b7,
+ 0x02ad, 0x0256, 0x0671, 0x06e3, 0x03ff, 0x041a,
+ 0x03a6, 0x0383, 0x054b, 0x032f, 0x0215, 0x0494,
+ 0x01b7, 0xfefc, 0x0214, 0x01f6, 0x0007, 0x00c3,
+ 0xff0f, 0xfd2c, 0xfe86, 0xff5c, 0x000d, 0x01c5,
+ 0x0234, 0x0132, 0x0027, 0xffd0, 0x0006, 0x011c,
+ 0x02c2, 0x0259, 0x009b, 0x0028, 0x0065, 0x01c4,
+ 0x030e, 0x0146, 0x0014, 0x01cf, 0x021e, 0x0003,
+ 0xfde7, 0xfd26, 0xfdd0, 0xff02, 0x011b, 0x02f9,
+ 0x02ee, 0x0353, 0x048d, 0x0546, 0x065b, 0x06e7,
+ 0x072f, 0x0791, 0x05fa, 0x0561, 0x065b, 0x04dd,
+ 0x0492, 0x05dc, 0x03da, 0x0277, 0x02f4, 0x0269,
+ 0x0374, 0x045c, 0x03b5, 0x0527, 0x065d, 0x066b,
+ 0x0751, 0x06ca, 0x06ac, 0x07ef, 0x0753, 0x0760,
+ 0x07fe, 0x0695, 0x0662, 0x065f, 0x04b7, 0x041b,
+ 0x020e, 0xfe30, 0xfd3d, 0xfe2b, 0xfe0e, 0xfc8f,
+ 0xfb18, 0xfb0d, 0xf9e6, 0xf86f, 0xf9c7, 0xfa57,
+ 0xf941, 0xf8eb, 0xf8b0, 0xfb12, 0xfdfd, 0xfbfe,
+ 0xfacc, 0xfc76, 0xfb7e, 0xfba7, 0xfe42, 0xfdae,
+ 0xfc98, 0xfdff, 0xfe2e, 0xfcf3, 0xfce6, 0xfc46,
+ 0xf975, 0xf85d, 0xf9a1, 0xf8e7, 0xf858, 0xf8f5,
+ 0xf6b1, 0xf5ee, 0xf803, 0xf6cd, 0xf654, 0xf7d3,
+ 0xf4af, 0xf1ad, 0xf2ff, 0xf387, 0xf1f8, 0xef7d,
+ 0xeedc, 0xf089, 0xee95, 0xec2b, 0xeed7, 0xefc1,
+ 0xecec, 0xeb73, 0xebd4, 0xee09, 0xef94, 0xee61,
+ 0xee08, 0xee8d, 0xeefc, 0xf09a, 0xf1b5, 0xf31c,
+ 0xf4b4, 0xf446, 0xf5ce, 0xf878, 0xf85e, 0xf9d8,
+ 0xfbd1, 0xfbf5, 0xfe4a, 0xfedc, 0xfd52, 0xff80,
+ 0xfff0, 0xff3d, 0x02ef, 0x02de, 0x0002, 0x022c,
+ 0x033a, 0x0323, 0x0641, 0x0715, 0x06e5, 0x089a,
+ 0x085d, 0x08ab, 0x0a73, 0x0a7f, 0x0b98, 0x0d5c,
+ 0x0db1, 0x0ecd, 0x0eb0, 0x0df2, 0x10a2, 0x11bc,
+ 0x0e74, 0x0c22, 0x0b6f, 0x0a6a, 0x08c1, 0x0739,
+ 0x08c5, 0x0a89, 0x0828, 0x0713, 0x092c, 0x08dc,
+ 0x07e8, 0x0911, 0x0a23, 0x0c24, 0x0e79, 0x0dea,
+ 0x0ca5, 0x0c8d, 0x0c3f, 0x0c1f, 0x0c3d, 0x0c40,
+ 0x0c94, 0x0bf5, 0x09fb, 0x085b, 0x0804, 0x07e4,
+ 0x0677, 0x0648, 0x08a0, 0x0815, 0x0631, 0x08f2,
+ 0x0abe, 0x0885, 0x07e4, 0x0754, 0x05b8, 0x062c,
+ 0x060b, 0x0553, 0x05ba, 0x049f, 0x04aa, 0x0628,
+ 0x03bd, 0x01df, 0x0333, 0x00dd, 0xfd72, 0xfe89,
+ 0xff69, 0xfd5f, 0xfbd0, 0xfb99, 0xfb1c, 0xfa4c,
+ 0xfa1a, 0xf9f3, 0xfa13, 0xfb4a, 0xfb31, 0xf945,
+ 0xf87a, 0xf902, 0xf9d2, 0xfa16, 0xf922, 0xf876,
+ 0xf854, 0xf8a5, 0xf934, 0xf707, 0xf4f6, 0xf666,
+ 0xf551, 0xf323, 0xf5b6, 0xf691, 0xf425, 0xf3db,
+ 0xf352, 0xf30e, 0xf50b, 0xf5c7, 0xf6a0, 0xf837,
+ 0xf7f5, 0xf87b, 0xf93a, 0xf847, 0xf83e, 0xf7e2,
+ 0xf7b9, 0xfa0c, 0xf9f1, 0xf7a5, 0xf7e8, 0xf7b4,
+ 0xf609, 0xf562, 0xf52f, 0xf680, 0xf81c, 0xf6cc,
+ 0xf5a5, 0xf6e7, 0xf7c9, 0xf7aa, 0xf7e3, 0xf8c3,
+ 0xf974, 0xf952, 0xf90b, 0xf8ab, 0xf81e, 0xf83f,
+ 0xf919, 0xfa36, 0xfae2, 0xfad9, 0xfb1b, 0xfba9,
+ 0xfc07, 0xfc27, 0xfc15, 0xfd28, 0xfe64, 0xfe91,
+ 0x00b2, 0x02ee, 0x01f8, 0x0272, 0x03fa, 0x0274,
+ 0x0186, 0x01de, 0x0193, 0x0260, 0x0232, 0x0101,
+ 0x0169, 0x00c6, 0x0081, 0x0266, 0x0219, 0x01d2,
+ 0x0415, 0x0443, 0x0291, 0x014e, 0x00ec, 0x027c,
+ 0x0387, 0x03bc, 0x0477, 0x027c, 0x000d, 0x0043,
+ 0xfee0, 0xfd71, 0xfe95, 0xfe3d, 0xfdbb, 0xff28,
+ 0xffa9, 0x0010, 0x0125, 0x00f7, 0xffba, 0xfe98,
+ 0xfeb7, 0xfede, 0xfdd6, 0xfea1, 0x0000, 0xfeba,
+ 0xfe81, 0xffa1, 0xfec7, 0xfe95, 0xffe2, 0xffdf,
+ 0xfe8b, 0xfc76, 0xfac9, 0xfa98, 0xfa4c, 0xf99c,
+ 0xf9f6, 0xfb72, 0xfd18, 0xfda5, 0xfd02, 0xfc1c,
+ 0xfb7a, 0xfb5e, 0xfb82, 0xfc20, 0xfcff, 0xfcb0,
+ 0xfc5d, 0xfc90, 0xfba6, 0xfb56, 0xfb4b, 0xf9a4,
+ 0xf99b, 0xf9f1, 0xf7f6, 0xf7f2, 0xf860, 0xf67b,
+ 0xf713, 0xf866, 0xf777, 0xf85b, 0xf9b7, 0xf9c4,
+ 0xfb36, 0xfc0c, 0xfb06, 0xfa09, 0xf8fb, 0xf899,
+ 0xf8fe, 0xf9c2, 0xfb64, 0xfb71, 0xf9e5, 0xf98d,
+ 0xf8ed, 0xf7ce, 0xf7c9, 0xf763, 0xf6c6, 0xf751,
+ 0xf8c2, 0xfa22, 0xfa57, 0xfb82, 0xfe3e, 0xff0c,
+ 0xffc0, 0x022e, 0x0282, 0x00f2, 0xffc1, 0xff0c,
+ 0xfe92, 0xfc0a, 0xf974, 0xfa49, 0xfaa5, 0xfa38,
+ 0xfb99, 0xfbb0, 0xfb95, 0xfd5c, 0xfd9d, 0xfc72,
+ 0xfb80, 0xfbb4, 0xfdb1, 0xfd60, 0xfbb4, 0xfd4a,
+ 0xfd98, 0xfaf6, 0xfa2f, 0xfa89, 0xfaa8, 0xfae1,
+ 0xfaec, 0xfb8f, 0xfb5c, 0xfa73, 0xfacb, 0xfaa5,
+ 0xfae4, 0xfc1b, 0xfb1e, 0xfa7e, 0xfb7e, 0xfb7f,
+ 0xfc97, 0xfd32, 0xfb7f, 0xfbbd, 0xfc4c, 0xfba2,
+ 0xfc57, 0xfc58, 0xfcc4, 0xfe7c, 0xfd91, 0xfdc2,
+ 0x001e, 0xff81, 0xff85, 0x010f, 0x0036, 0x001b,
+ 0x0126, 0x01b5, 0x02ae, 0x01e9, 0x0153, 0x0253,
+ 0x0064, 0xfed1, 0x00c0, 0x01b3, 0x01f6, 0x01ec,
+ 0x0091, 0x00e2, 0x00f8, 0xff2d, 0xff20, 0xff92,
+ 0xffac, 0x015b, 0x01f7, 0x009c, 0xffbd, 0xffb2,
+ 0xffbd, 0xfe97, 0xfd45, 0xfdb2, 0xfdbc, 0xfc66,
+ 0xfb61, 0xfb5a, 0xfc25, 0xfbc5, 0xfad4, 0xfc8b,
+ 0xfe93, 0xff11, 0x0009, 0x0052, 0xffa5, 0xfea7,
+ 0xfc03, 0xfa64, 0xfb2f, 0xfb5d, 0xfb5c, 0xfc0b,
+ 0xfcb4, 0xfdc6, 0xfe84, 0xff17, 0xff5c, 0xfda2,
+ 0xfc24, 0xfc14, 0xfb90, 0xfba3, 0xfbb5, 0xfaf1,
+ 0xfbb9, 0xfcf6, 0xfd73, 0xfdba, 0xfc99, 0xfc83,
+ 0xfdd9, 0xfc8f, 0xfbb3, 0xfce8, 0xfc1b, 0xfbe7,
+ 0xfe15, 0xffc0, 0x0169, 0x0165, 0xfee9, 0xfea7,
+ 0xff83, 0xfded, 0xfc54, 0xfc78, 0xfd2e, 0xfd22,
+ 0xfcb1, 0xfdfb, 0xffc1, 0x0033, 0x00d9, 0x00f0,
+ 0xffd0, 0xff99, 0xfef8, 0xfcf2, 0xfd03, 0xff0f,
+ 0xff51, 0xfe4d, 0xfed0, 0xffbe, 0xffaa, 0x0047,
+ 0x00f4, 0x0045, 0x0085, 0x015a, 0x00c6, 0x0096,
+ 0x0093, 0xffef, 0x00a5, 0x00dd, 0xff89, 0x0031,
+ 0x01bc, 0x0202, 0x02dc, 0x0335, 0x0227, 0x0230,
+ 0x02b0, 0x0286, 0x02ce, 0x02bb, 0x024c, 0x02ee,
+ 0x0301, 0x01ce, 0x01a3, 0x01f0, 0x00f1, 0xffed,
+ 0xffa4, 0xff6d, 0xff70, 0xff24, 0xfec5, 0xffef,
+ 0x015d, 0x01b3, 0x02c5, 0x044c, 0x0498, 0x0519,
+ 0x0622, 0x05aa, 0x0426, 0x032f, 0x02b0, 0x0291,
+ 0x02ea, 0x0318, 0x02f3, 0x029a, 0x019e, 0x00cd,
+ 0x00ea, 0x007b, 0xffbb, 0x0043, 0x006c, 0xffbf,
+ 0x00ac, 0x0221, 0x0204, 0x0179, 0x0157, 0x0137,
+ 0x0101, 0x0160, 0x02af, 0x0316, 0x02e1, 0x049b,
+ 0x05d5, 0x04f8, 0x059c, 0x06f0, 0x0692, 0x0652,
+ 0x05da, 0x04e6, 0x04f8, 0x0400, 0x026e, 0x03a1,
+ 0x04f1, 0x03d3, 0x02e5, 0x02f1, 0x027d, 0x0149,
+ 0x007e, 0x0123, 0x01b9, 0x018d, 0x0226, 0x02b4,
+ 0x02b7, 0x0394, 0x03a3, 0x01fa, 0x0129, 0x017e,
+ 0x01a5, 0x017b, 0x014d, 0x01da, 0x029f, 0x02d7,
+ 0x0393, 0x0453, 0x046c, 0x04fb, 0x048e, 0x030c,
+ 0x0380, 0x0429, 0x031d, 0x0327, 0x0377, 0x0255,
+ 0x024c, 0x030d, 0x02bf, 0x0292, 0x0238, 0x0158,
+ 0x01f7, 0x0343, 0x02c7, 0x01bf, 0x0282, 0x0420,
+ 0x0493, 0x04a9, 0x054f, 0x0530, 0x04cb, 0x0571,
+ 0x057d, 0x04e9, 0x05fa, 0x0764, 0x06c7, 0x05cd,
+ 0x06bd, 0x0848, 0x0840, 0x07b4, 0x0885, 0x0981,
+ 0x08fa, 0x07ba, 0x06f0, 0x0688, 0x0635, 0x05f3,
+ 0x059f, 0x053e, 0x04cb, 0x03c8, 0x02f7, 0x039f,
+ 0x0445, 0x0379, 0x029d, 0x027e, 0x02c9, 0x0310,
+ 0x02bc, 0x02f1, 0x0408, 0x041a, 0x03d5, 0x0494,
+ 0x0562, 0x0617, 0x05ec, 0x045d, 0x03ca, 0x03d1,
+ 0x026b, 0x013b, 0x00dc, 0x005d, 0xffda, 0xfe80,
+ 0xfcfd, 0xfc72, 0xfb65, 0xfaf0, 0xfc5c, 0xfcd0,
+ 0xfc25, 0xfc10, 0xfbd3, 0xfbf7, 0xfbfa, 0xfa4d,
+ 0xf977, 0xf9e4, 0xf88e, 0xf6e2, 0xf6af, 0xf66d,
+ 0xf5fc, 0xf537, 0xf3da, 0xf46e, 0xf6f1, 0xf7de,
+ 0xf71a, 0xf6b9, 0xf657, 0xf4f4, 0xf34e, 0xf2f4,
+ 0xf3d1, 0xf433, 0xf494, 0xf67d, 0xf893, 0xf9d2,
+ 0xfb2f, 0xfbfe, 0xfbc7, 0xfbe8, 0xfc65, 0xfc63,
+ 0xfc22, 0xfc54, 0xfd01, 0xfd93, 0xfedd, 0x0148,
+ 0x0289, 0x0356, 0x0602, 0x0814, 0x0903, 0x0aa4,
+ 0x0a7c, 0x0946, 0x0a10, 0x09f3, 0x08fb, 0x0a07,
+ 0x0a78, 0x0a8c, 0x0ca4, 0x0dd1, 0x0db8, 0x0e2f,
+ 0x0daf, 0x0ce7, 0x0d09, 0x0d21, 0x0dd7, 0x0e66,
+ 0x0de5, 0x0e7b, 0x0f7a, 0x0f90, 0x1054, 0x10d9,
+ 0x10a9, 0x118d, 0x1192, 0x0fd9, 0x0f8a, 0x106d,
+ 0x10c1, 0x1155, 0x1202, 0x11d7, 0x1106, 0x1009,
+ 0x0f87, 0x0f02, 0x0d9d, 0x0d29, 0x0e47, 0x0e14,
+ 0x0ca1, 0x0ca9, 0x0d87, 0x0e2e, 0x0f86, 0x10cc,
+ 0x10da, 0x0ffe, 0x0e7b, 0x0d3f, 0x0c9b, 0x0b4b,
+ 0x09c4, 0x090b, 0x0891, 0x0859, 0x0822, 0x07cd,
+ 0x08c6, 0x0a11, 0x0a01, 0x09ee, 0x09a8, 0x0854,
+ 0x07ad, 0x0731, 0x0558, 0x03f5, 0x03b6, 0x037a,
+ 0x03a9, 0x03f6, 0x03cc, 0x0427, 0x04af, 0x044f,
+ 0x0411, 0x0453, 0x03aa, 0x0276, 0x01dc, 0x010a,
+ 0xffbf, 0xfee8, 0xfe69, 0xfe31, 0xfdf9, 0xfccc,
+ 0xfbf0, 0xfc80, 0xfc7b, 0xfb7e, 0xfb16, 0xfae7,
+ 0xfa2a, 0xf8d0, 0xf760, 0xf711, 0xf7e4, 0xf96b,
+ 0xfb25, 0xfb71, 0xfb6b, 0xfd19, 0xfde7, 0xfc8e,
+ 0xfbb2, 0xfb67, 0xfa75, 0xf93e, 0xf82e, 0xf7e5,
+ 0xf84b, 0xf902, 0xfa41, 0xfa8b, 0xf9f5, 0xfb04,
+ 0xfc87, 0xfd0b, 0xfdd8, 0xfd53, 0xfadb, 0xf9ab,
+ 0xf9c7, 0xf9c7, 0xfa6c, 0xfb15, 0xfb26, 0xfb65,
+ 0xfb95, 0xfbf3, 0xfcc2, 0xfcf5, 0xfcd8, 0xfd31,
+ 0xfd13, 0xfc79, 0xfccc, 0xfe22, 0xff8a, 0x0114,
+ 0x02f5, 0x043d, 0x04a4, 0x04ae, 0x03dc, 0x02bb,
+ 0x0312, 0x03b7, 0x02cf, 0x01cd, 0x0169, 0x0074,
+ 0x0026, 0x0186, 0x022d, 0x013c, 0x00d6, 0x0157,
+ 0x01a5, 0x0211, 0x02c9, 0x032c, 0x0362, 0x03de,
+ 0x0475, 0x04ff, 0x0543, 0x04d6, 0x03e8, 0x030f,
+ 0x026d, 0x0219, 0x01b3, 0x0054, 0xff06, 0xff78,
+ 0x0024, 0xffcc, 0x0087, 0x02b5, 0x0392, 0x02a4,
+ 0x0272, 0x036e, 0x0318, 0x01aa, 0x01ba, 0x0243,
+ 0x01d5, 0x021a, 0x02a1, 0x01dd, 0x00c0, 0xff98,
+ 0xfea2, 0xfea5, 0xfe3f, 0xfd02, 0xfc2f, 0xfb72,
+ 0xfacb, 0xfa85, 0xfa2c, 0xfa33, 0xfa5b, 0xfa02,
+ 0xf9f8, 0xfa30, 0xfaa1, 0xfb95, 0xfb97, 0xfb19,
+ 0xfbca, 0xfc22, 0xfb5e, 0xfae6, 0xfad0, 0xfa9c,
+ 0xfa15, 0xfa01, 0xfb15, 0xfba8, 0xfb70, 0xfb7a,
+ 0xfa92, 0xf9ec, 0xfb70, 0xfc35, 0xfbcd, 0xfc9d,
+ 0xfc99, 0xfb20, 0xfb22, 0xfbef, 0xfbdc, 0xfc35,
+ 0xfd61, 0xfe39, 0xfe6f, 0xfe49, 0xfddd, 0xfd46,
+ 0xfc99, 0xfc23, 0xfc2c, 0xfb96, 0xf9d0, 0xf8ed,
+ 0xf93b, 0xf937, 0xfa03, 0xfbcd, 0xfc7c, 0xfc60,
+ 0xfc3b, 0xfbd8, 0xfbbe, 0xfb68, 0xfab0, 0xfa3f,
+ 0xf949, 0xf862, 0xf83c, 0xf7a7, 0xf7e8, 0xf93f,
+ 0xf92d, 0xf932, 0xfa44, 0xf9bd, 0xf8d1, 0xf91b,
+ 0xf91a, 0xf972, 0xfaa8, 0xfb8c, 0xfc81, 0xfd6d,
+ 0xfdc2, 0xfe3d, 0xfeaf, 0xfecf, 0xff23, 0xfee4,
+ 0xfd6e, 0xfbe6, 0xfb41, 0xfb10, 0xfaec, 0xfb64,
+ 0xfc2e, 0xfc4a, 0xfc1b, 0xfc22, 0xfc6d, 0xfd5f,
+ 0xfe59, 0xff01, 0x0023, 0x00f8, 0x00a9, 0x006f,
+ 0x0088, 0xffee, 0xfe87, 0xfd25, 0xfc89, 0xfc58,
+ 0xfbf6, 0xfba5, 0xfb82, 0xfbb3, 0xfc26, 0xfbdd,
+ 0xfb4a, 0xfb66, 0xfb0a, 0xfa2b, 0xfa58, 0xfb03,
+ 0xfb2c, 0xfb38, 0xfb63, 0xfc01, 0xfd07, 0xfd7a,
+ 0xfdac, 0xfebc, 0x000c, 0x0093, 0x0056, 0x0021,
+ 0x00b5, 0x00fc, 0xffd5, 0xff0a, 0xff5c, 0xff02,
+ 0xfe89, 0xfec0, 0xfe32, 0xfd90, 0xfdf7, 0xfe1a,
+ 0xfe39, 0xfed4, 0xfebe, 0xfea6, 0xff35, 0xff6b,
+ 0xff8d, 0xfffd, 0x0055, 0x0064, 0xff9a, 0xfe9c,
+ 0xfe5e, 0xfe2a, 0xfe56, 0xfeee, 0xfe9b, 0xfe8b,
+ 0xff8f, 0xffd1, 0xff94, 0xff81, 0xfe8c, 0xfd12,
+ 0xfbd1, 0xfb09, 0xfb1f, 0xfb05, 0xfa50, 0xf9ff,
+ 0xf9e8, 0xfa55, 0xfbe4, 0xfd65, 0xfe35, 0xfe77,
+ 0xfe23, 0xfe15, 0xfe42, 0xfdd9, 0xfd73, 0xfd5e,
+ 0xfd73, 0xfe06, 0xfe94, 0xff49, 0x00ed, 0x028c,
+ 0x03c2, 0x04e5, 0x04a5, 0x0323, 0x023c, 0x01dc,
+ 0x0188, 0x0199, 0x01c5, 0x01fe, 0x0214, 0x0172,
+ 0x00d4, 0x00b0, 0x003c, 0xff82, 0xfee7, 0xfe99,
+ 0xfeaf, 0xfe77, 0xfe1a, 0xfe7d, 0xff30, 0x002b,
+ 0x0122, 0x00a2, 0x0023, 0x00ef, 0x00c1, 0x003d,
+ 0x012c, 0x0157, 0x0072, 0x003f, 0xffd0, 0xff08,
+ 0xfec4, 0xfe5d, 0xfdce, 0xfd47, 0xfcaa, 0xfc4e,
+ 0xfbc7, 0xfb94, 0xfca7, 0xfd95, 0xfe15, 0xff58,
+ 0x003c, 0x0024, 0x0075, 0x0164, 0x01fd, 0x0215,
+ 0x02b5, 0x03df, 0x040a, 0x03c4, 0x040f, 0x03be,
+ 0x0316, 0x02b1, 0x01d8, 0x01f3, 0x031f, 0x0337,
+ 0x039c, 0x054a, 0x05f3, 0x05c9, 0x05d6, 0x0561,
+ 0x04f0, 0x04dd, 0x048e, 0x0472, 0x0475, 0x03e7,
+ 0x02ff, 0x021f, 0x01c2, 0x020f, 0x0269, 0x0290,
+ 0x0240, 0x012c, 0x0044, 0x0030, 0x0061, 0x0099,
+ 0x00cc, 0x00f0, 0x01af, 0x02ef, 0x03cd, 0x04bb,
+ 0x0618, 0x06ec, 0x06d7, 0x05f6, 0x049f, 0x0438,
+ 0x04b5, 0x04c8, 0x04e6, 0x0501, 0x0433, 0x0387,
+ 0x0363, 0x032b, 0x0378, 0x0408, 0x04a1, 0x05c2,
+ 0x05be, 0x0436, 0x036d, 0x032e, 0x0291, 0x0296,
+ 0x038c, 0x0505, 0x0625, 0x0680, 0x0706, 0x0711,
+ 0x0625, 0x05fb, 0x05c7, 0x04bd, 0x0536, 0x06a5,
+ 0x072c, 0x07d2, 0x0864, 0x0825, 0x07d5, 0x06ef,
+ 0x058d, 0x04a6, 0x0376, 0x026e, 0x02c6, 0x036e,
+ 0x03d0, 0x0420, 0x03b5, 0x02fe, 0x02b8, 0x025b,
+ 0x0206, 0x01fe, 0x01cc, 0x01a8, 0x01c1, 0x01c1,
+ 0x01f3, 0x027c, 0x02f5, 0x0354, 0x0351, 0x02da,
+ 0x02a8, 0x02a4, 0x026a, 0x0265, 0x0281, 0x02f5,
+ 0x044b, 0x056c, 0x05e6, 0x0693, 0x0693, 0x05b2,
+ 0x0568, 0x050c, 0x03de, 0x031a, 0x029f, 0x01b4,
+ 0x0159, 0x021a, 0x02fa, 0x0365, 0x03ff, 0x04fb,
+ 0x0572, 0x0574, 0x0568, 0x04aa, 0x038b, 0x02c0,
+ 0x01e3, 0x0158, 0x0157, 0x011e, 0x00f6, 0x00e6,
+ 0x00ab, 0x012e, 0x01a9, 0x00ab, 0xffb2, 0xffac,
+ 0xff93, 0xffb3, 0x0074, 0x0126, 0x01c9, 0x024d,
+ 0x0229, 0x01a8, 0x0131, 0x0089, 0xffad, 0xfecc,
+ 0xfe37, 0xfe5c, 0xfeea, 0xff33, 0xff68, 0xff9a,
+ 0xff77, 0xff7c, 0xffb8, 0xff62, 0xfe88, 0xfd91,
+ 0xfc9e, 0xfbb6, 0xfa70, 0xf950, 0xf94d, 0xf96f,
+ 0xf92a, 0xf955, 0xf944, 0xf854, 0xf748, 0xf663,
+ 0xf61b, 0xf6cb, 0xf77c, 0xf7e4, 0xf830, 0xf7cf,
+ 0xf723, 0xf6fc, 0xf6d5, 0xf621, 0xf548, 0xf4bf,
+ 0xf438, 0xf39d, 0xf3b7, 0xf45b, 0xf49c, 0xf4ce,
+ 0xf53e, 0xf565, 0xf590, 0xf67a, 0xf80c, 0xf99b,
+ 0xfab8, 0xfbb2, 0xfc8a, 0xfce1, 0xfd16, 0xfd75,
+ 0xfded, 0xfec1, 0xffc0, 0x0063, 0x008a, 0x006b,
+ 0x00cc, 0x01a5, 0x0219, 0x02c3, 0x0418, 0x04f4,
+ 0x052a, 0x0560, 0x05c7, 0x0686, 0x0773, 0x088e,
+ 0x09d7, 0x0a48, 0x09fe, 0x0a35, 0x0abc, 0x0b57,
+ 0x0c49, 0x0d38, 0x0e38, 0x0f5f, 0x1053, 0x1105,
+ 0x10a2, 0x0ef3, 0x0db7, 0x0d2e, 0x0c66, 0x0c19,
+ 0x0ca5, 0x0d5d, 0x0e34, 0x0f14, 0x0fa8, 0x0fa7,
+ 0x0edf, 0x0dba, 0x0c71, 0x0b27, 0x0ab1, 0x0b1e,
+ 0x0bf9, 0x0d6b, 0x0eab, 0x0f02, 0x0f23, 0x0ee0,
+ 0x0dda, 0x0cec, 0x0c32, 0x0b7e, 0x0b56, 0x0b64,
+ 0x0b43, 0x0b56, 0x0b5b, 0x0aec, 0x0a5a, 0x09c2,
+ 0x0918, 0x0883, 0x0835, 0x083e, 0x084c, 0x0825,
+ 0x07e7, 0x079a, 0x0755, 0x0705, 0x065b, 0x0586,
+ 0x04c2, 0x03f9, 0x035a, 0x02e9, 0x027d, 0x0221,
+ 0x018c, 0x00b7, 0x004d, 0x007d, 0x00b9, 0x0051,
+ 0xff1a, 0xfdaf, 0xfc8a, 0xfc29, 0xfce8, 0xfd9c,
+ 0xfd69, 0xfd15, 0xfc76, 0xfb5a, 0xfabf, 0xfa67,
+ 0xf9cd, 0xf9a5, 0xf9e2, 0xfa05, 0xfa07, 0xfa03,
+ 0xfa8d, 0xfb5c, 0xfb71, 0xfb62, 0xfbf1, 0xfcdc,
+ 0xfdce, 0xfdfa, 0xfd9d, 0xfdf0, 0xfe28, 0xfdb8,
+ 0xfdeb, 0xfe72, 0xfe71, 0xfe76, 0xfe6a, 0xfe23,
+ 0xfe13, 0xfde8, 0xfd86, 0xfd41, 0xfcf1, 0xfcd3,
+ 0xfd26, 0xfd7d, 0xfdb2, 0xfdd7, 0xfe09, 0xfeb0,
+ 0xffd6, 0x00cc, 0x00fa, 0x009d, 0x0017, 0xff05,
+ 0xfd7c, 0xfc55, 0xfb81, 0xfacc, 0xfac4, 0xfb6e,
+ 0xfc76, 0xfd82, 0xfdaf, 0xfcdd, 0xfbb4, 0xfa97,
+ 0xfa6a, 0xfb98, 0xfcfe, 0xfe2c, 0xff94, 0x00e0,
+ 0x0222, 0x03c0, 0x04b7, 0x042b, 0x02d5, 0x015e,
+ 0xffec, 0xfeda, 0xfe4b, 0xfe49, 0xff06, 0xffe7,
+ 0x0048, 0x00d5, 0x01ba, 0x021d, 0x026d, 0x0345,
+ 0x039d, 0x033c, 0x031b, 0x0319, 0x0306, 0x032c,
+ 0x0309, 0x029d, 0x0299, 0x028d, 0x022b, 0x01f1,
+ 0x01c1, 0x01b5, 0x021d, 0x0252, 0x022c, 0x023d,
+ 0x0295, 0x0349, 0x03f8, 0x03b5, 0x02ea, 0x022d,
+ 0x0127, 0x002d, 0xff81, 0xfe7c, 0xfd54, 0xfcc8,
+ 0xfcc7, 0xfcf3, 0xfd27, 0xfd60, 0xfd4f, 0xfcac,
+ 0xfc16, 0xfbf1, 0xfbe6, 0xfc15, 0xfc53, 0xfc19,
+ 0xfbd1, 0xfbe1, 0xfc3d, 0xfd14, 0xfdf7, 0xfe6d,
+ 0xfe9b, 0xfe47, 0xfd81, 0xfd05, 0xfced, 0xfd0c,
+ 0xfd6b, 0xfdf2, 0xfe91, 0xff0d, 0xff32, 0xff21,
+ 0xfee6, 0xfec7, 0xff14, 0xff76, 0xffc2, 0x0000,
+ 0x0023, 0x0094, 0x011f, 0x0117, 0x00dd, 0x008f,
+ 0xffd9, 0xff43, 0xfefe, 0xfe7b, 0xfd93, 0xfc8a,
+ 0xfbe2, 0xfb86, 0xfb10, 0xfb31, 0xfc13, 0xfcc9,
+ 0xfd5c, 0xfdcc, 0xfd84, 0xfcf0, 0xfca5, 0xfcbd,
+ 0xfd25, 0xfd21, 0xfcd5, 0xfd75, 0xfed9, 0xffe8,
+ 0x003e, 0x001b, 0xffdf, 0xff68, 0xfedd, 0xfed2,
+ 0xfec0, 0xfe2e, 0xfdec, 0xfe30, 0xfe79, 0xfeb5,
+ 0xfef8, 0xff41, 0xff80, 0xffcd, 0x003a, 0x001f,
+ 0xff66, 0xfefb, 0xff32, 0xffd9, 0x0042, 0xffb7,
+ 0xff2b, 0xff42, 0xff0a, 0xfec5, 0xfeee, 0xfeac,
+ 0xfe0f, 0xfd6e, 0xfc8d, 0xfc21, 0xfc97, 0xfd3b,
+ 0xfdea, 0xfeb3, 0xff20, 0xfeff, 0xfe7c, 0xfd94,
+ 0xfc51, 0xfb65, 0xfb19, 0xfa88, 0xf9dc, 0xfa0e,
+ 0xfa7a, 0xfa9a, 0xfb17, 0xfba0, 0xfbb1, 0xfba6,
+ 0xfb81, 0xfb60, 0xfbda, 0xfcdf, 0xfdcb, 0xfe5d,
+ 0xfed6, 0xff4d, 0xff8b, 0xffab, 0xffab, 0xff70,
+ 0xff6b, 0xff92, 0xff5c, 0xff4e, 0xffec, 0x00bc,
+ 0x017d, 0x021e, 0x0284, 0x0313, 0x03d7, 0x0425,
+ 0x0401, 0x0409, 0x03f9, 0x03a1, 0x03f0, 0x04ae,
+ 0x0473, 0x03d2, 0x03c9, 0x0339, 0x01e3, 0x0132,
+ 0x0131, 0x012f, 0x0126, 0x00d0, 0xfff1, 0xfee4,
+ 0xfe19, 0xfdf2, 0xfe65, 0xfee2, 0xff4d, 0xffd6,
+ 0x004f, 0x007f, 0x0044, 0xffdf, 0xffca, 0xffb0,
+ 0xff2c, 0xfece, 0xfec4, 0xfedf, 0xff95, 0x00c6,
+ 0x01b5, 0x0200, 0x0170, 0x00aa, 0x0088, 0x008e,
+ 0x009e, 0x00fe, 0x00e8, 0x0079, 0x005a, 0x0003,
+ 0xffc4, 0x0011, 0x002c, 0x0038, 0x007f, 0x0089,
+ 0x00ba, 0x011d, 0x014c, 0x01a5, 0x01c5, 0x0169,
+ 0x0176, 0x01cb, 0x020c, 0x0272, 0x029a, 0x02ab,
+ 0x02f3, 0x02cf, 0x029b, 0x02e3, 0x0300, 0x02de,
+ 0x02ca, 0x02a7, 0x025e, 0x017a, 0x0002, 0xff00,
+ 0xfe70, 0xfdac, 0xfd3a, 0xfd7f, 0xfda3, 0xfd54,
+ 0xfd60, 0xfdcf, 0xfde0, 0xfda9, 0xfd99, 0xfdc9,
+ 0xfe2a, 0xfe55, 0xfe96, 0xffae, 0x00ec, 0x01c0,
+ 0x02a4, 0x0345, 0x0352, 0x0345, 0x0334, 0x033c,
+ 0x0376, 0x03be, 0x0472, 0x0574, 0x0625, 0x0699,
+ 0x06fa, 0x0756, 0x07bb, 0x07ad, 0x0707, 0x0645,
+ 0x05cd, 0x05de, 0x05e2, 0x053c, 0x0496, 0x0440,
+ 0x03ce, 0x0362, 0x031a, 0x02e2, 0x02b2, 0x0266,
+ 0x0204, 0x0141, 0x0033, 0x0008, 0x00b5, 0x014d,
+ 0x024f, 0x03cc, 0x04b2, 0x04f7, 0x050c, 0x04cb,
+ 0x044e, 0x03f5, 0x03a6, 0x0300, 0x024c, 0x020c,
+ 0x020c, 0x022e, 0x029a, 0x0317, 0x03a8, 0x0419,
+ 0x03ce, 0x0329, 0x02b5, 0x022b, 0x01ce, 0x021d,
+ 0x02a9, 0x0307, 0x036f, 0x0406, 0x0487, 0x050a,
+ 0x05e4, 0x066a, 0x05fd, 0x0575, 0x0569, 0x0548,
+ 0x04c7, 0x043d, 0x03fc, 0x03f1, 0x0414, 0x04a8,
+ 0x058b, 0x0650, 0x06a2, 0x063c, 0x0590, 0x0513,
+ 0x0489, 0x044a, 0x045b, 0x03f8, 0x039c, 0x0376,
+ 0x028c, 0x01a5, 0x01c2, 0x020d, 0x0236, 0x0251,
+ 0x01d6, 0x0101, 0x0056, 0xffe2, 0xffca, 0x0000,
+ 0x0056, 0x00a1, 0x00b1, 0x00cd, 0x00fc, 0x00d9,
+ 0x00bc, 0x00f2, 0x0115, 0x0134, 0x017b, 0x01b3,
+ 0x0201, 0x025f, 0x0246, 0x01c3, 0x012b, 0x004f,
+ 0xff6c, 0xff30, 0xff85, 0x001b, 0x00f4, 0x018c,
+ 0x0191, 0x018a, 0x0189, 0x015a, 0x0177, 0x01e4,
+ 0x01f1, 0x01bd, 0x01f0, 0x0259, 0x0255, 0x0235,
+ 0x027c, 0x0292, 0x0216, 0x01a7, 0x0160, 0x00ef,
+ 0x00ac, 0x00de, 0x0159, 0x01e9, 0x0251, 0x0278,
+ 0x0284, 0x025b, 0x01d6, 0x0134, 0x00e9, 0x0121,
+ 0x01a0, 0x01f8, 0x01fa, 0x01e3, 0x01db, 0x01b3,
+ 0x0182, 0x0193, 0x0187, 0x00c6, 0xff96, 0xfece,
+ 0xfe92, 0xfe35, 0xfd92, 0xfd2e, 0xfd23, 0xfd33,
+ 0xfd61, 0xfdae, 0xfdf8, 0xfded, 0xfd51, 0xfc7a,
+ 0xfbce, 0xfb3f, 0xfaa1, 0xf9ea, 0xf935, 0xf8a7,
+ 0xf84e, 0xf835, 0xf823, 0xf7c6, 0xf770, 0xf78c,
+ 0xf7e2, 0xf829, 0xf864, 0xf891, 0xf8aa, 0xf89e,
+ 0xf84f, 0xf7bc, 0xf74f, 0xf74a, 0xf734, 0xf702,
+ 0xf746, 0xf7c7, 0xf82d, 0xf8a3, 0xf8c8, 0xf87d,
+ 0xf87d, 0xf8b1, 0xf8b1, 0xf8fc, 0xf99c, 0xf9f0,
+ 0xfa0f, 0xfa3a, 0xfa0f, 0xf9cc, 0xfa24, 0xfa9d,
+ 0xfabd, 0xfb41, 0xfc55, 0xfd7b, 0xfec4, 0xffbb,
+ 0xffed, 0x0004, 0x0029, 0x0007, 0x001b, 0x00be,
+ 0x01b8, 0x028c, 0x02c1, 0x02dc, 0x035d, 0x03a8,
+ 0x03a5, 0x03c2, 0x03f4, 0x0489, 0x0594, 0x0687,
+ 0x0788, 0x08bb, 0x09b8, 0x0ad0, 0x0c21, 0x0cbb,
+ 0x0c84, 0x0c4b, 0x0c1d, 0x0ba0, 0x0afb, 0x0a95,
+ 0x0aa8, 0x0b1e, 0x0bbe, 0x0c7c, 0x0d48, 0x0dd1,
+ 0x0de1, 0x0da5, 0x0d8c, 0x0dd1, 0x0e1c, 0x0e23,
+ 0x0e2a, 0x0e3c, 0x0e17, 0x0e0c, 0x0e58, 0x0e7c,
+ 0x0e3e, 0x0dd6, 0x0d4d, 0x0cb6, 0x0c30, 0x0ba5,
+ 0x0b3c, 0x0b1a, 0x0af7, 0x0ab1, 0x0a4f, 0x09be,
+ 0x0953, 0x094a, 0x0911, 0x0882, 0x07fb, 0x0740,
+ 0x0633, 0x0552, 0x04b3, 0x0439, 0x040b, 0x03f1,
+ 0x036c, 0x027a, 0x018e, 0x0106, 0x009c, 0xffe1,
+ 0xff07, 0xfe87, 0xfe6c, 0xfe71, 0xfe46, 0xfdc1,
+ 0xfcfd, 0xfc34, 0xfb9a, 0xfb2d, 0xfac8, 0xfaa3,
+ 0xfafc, 0xfb4e, 0xfb36, 0xfb4b, 0xfbca, 0xfc26,
+ 0xfc4a, 0xfc66, 0xfc5c, 0xfc57, 0xfc5b, 0xfc11,
+ 0xfba5, 0xfb86, 0xfbc9, 0xfc3c, 0xfc96, 0xfcff,
+ 0xfda6, 0xfe29, 0xfe89, 0xfee4, 0xfedd, 0xff01,
+ 0xffe8, 0x0096, 0x0066, 0xffea, 0xff50, 0xfe51,
+ 0xfcef, 0xfbc1, 0xfb4c, 0xfb1f, 0xfade, 0xfaf8,
+ 0xfb48, 0xfb41, 0xfb24, 0xfb54, 0xfba2, 0xfbde,
+ 0xfc30, 0xfc9e, 0xfcfc, 0xfd30, 0xfd18, 0xfcb6,
+ 0xfc51, 0xfbf7, 0xfbf6, 0xfcc5, 0xfd98, 0xfdcd,
+ 0xfe4f, 0xff30, 0xff78, 0xff2b, 0xfeaa, 0xfdf9,
+ 0xfd62, 0xfd42, 0xfd74, 0xfd98, 0xfdd8, 0xfe86,
+ 0xff56, 0x004f, 0x019c, 0x0292, 0x0316, 0x0385,
+ 0x0379, 0x0320, 0x0321, 0x032b, 0x02f5, 0x02c3,
+ 0x02d7, 0x033e, 0x039d, 0x03d9, 0x0436, 0x047e,
+ 0x048c, 0x045d, 0x03af, 0x02e0, 0x026f, 0x023f,
+ 0x0246, 0x0247, 0x0202, 0x01c8, 0x01b2, 0x01bf,
+ 0x01df, 0x018a, 0x0108, 0x00f7, 0x0103, 0x011a,
+ 0x017c, 0x01e6, 0x0252, 0x0289, 0x01f9, 0x00ee,
+ 0x000d, 0xff5b, 0xfebe, 0xfe62, 0xfe6d, 0xfec3,
+ 0xff43, 0xffe1, 0x005c, 0x00b5, 0x00ff, 0x00e6,
+ 0x00a8, 0x00c3, 0x00ba, 0x004c, 0xfff5, 0xffd8,
+ 0x000a, 0x009e, 0x0135, 0x0191, 0x01c0, 0x01e2,
+ 0x01f2, 0x01ce, 0x01af, 0x01b7, 0x01a9, 0x016d,
+ 0x0103, 0x0069, 0xffbf, 0xff06, 0xfe5c, 0xfdea,
+ 0xfdc3, 0xfdf9, 0xfe18, 0xfdde, 0xfdb6, 0xfd47,
+ 0xfc6b, 0xfc14, 0xfbd4, 0xfaf9, 0xfa9e, 0xfaed,
+ 0xfb10, 0xfb4f, 0xfba0, 0xfb7e, 0xfb1f, 0xfa9a,
+ 0xf9f4, 0xf980, 0xf943, 0xf95c, 0xf9ea, 0xfa63,
+ 0xfa52, 0xf9fc, 0xf9ba, 0xf966, 0xf92b, 0xf9b1,
+ 0xfa7c, 0xfaac, 0xface, 0xfb3e, 0xfb99, 0xfc42,
+ 0xfd4c, 0xfe31, 0xff13, 0xffe1, 0x0055, 0x00c3,
+ 0x0139, 0x01aa, 0x0225, 0x0240, 0x0243, 0x02bb,
+ 0x02e8, 0x027b, 0x0234, 0x01e9, 0x0173, 0x0153,
+ 0x0138, 0x00db, 0x00d6, 0x0114, 0x010e, 0x00e8,
+ 0x00d3, 0x00d2, 0x00d8, 0x00cd, 0x00fd, 0x0162,
+ 0x016d, 0x014c, 0x0164, 0x0164, 0x014f, 0x0147,
+ 0x00f5, 0x005f, 0xffbe, 0xff27, 0xfeca, 0xfe5a,
+ 0xfd9e, 0xfd25, 0xfd11, 0xfcfd, 0xfcec, 0xfce5,
+ 0xfcd2, 0xfcb8, 0xfca7, 0xfcbe, 0xfce0, 0xfd11,
+ 0xfdb1, 0xfe64, 0xfed3, 0xff8e, 0x0058, 0x0095,
+ 0x00cb, 0x0123, 0x0146, 0x01a2, 0x0251, 0x02e0,
+ 0x034c, 0x0385, 0x0379, 0x0349, 0x02cb, 0x021e,
+ 0x01c2, 0x018c, 0x015d, 0x01a2, 0x0211, 0x0219,
+ 0x0236, 0x02a7, 0x0297, 0x01e9, 0x017a, 0x016b,
+ 0x0143, 0x00f2, 0x009d, 0x0058, 0x002a, 0x001e,
+ 0x0044, 0x005d, 0x0011, 0xffa5, 0xff78, 0xff85,
+ 0xffc9, 0x004b, 0x0101, 0x01c3, 0x0223, 0x01e9,
+ 0x0170, 0x0107, 0x00c4, 0x0090, 0x0038, 0xffe1,
+ 0xffcf, 0xffdd, 0xffc2, 0xff5c, 0xfede, 0xfe93,
+ 0xfe53, 0xfe16, 0xfe45, 0xfede, 0xffa1, 0x0075,
+ 0x00ff, 0x0115, 0x00fe, 0x00dd, 0x00de, 0x010a,
+ 0x0101, 0x00aa, 0x0036, 0xffea, 0x0018, 0x0084,
+ 0x00b8, 0x0108, 0x01ad, 0x023b, 0x0292, 0x029d,
+ 0x0221, 0x0173, 0x0108, 0x00bb, 0x0060, 0x0033,
+ 0x0050, 0x0083, 0x008c, 0x004a, 0xffe3, 0xffac,
+ 0xffc0, 0xffeb, 0x0000, 0x001e, 0x006b, 0x00a3,
+ 0x004f, 0xff8c, 0xfebe, 0xfe31, 0xfe18, 0xfe2d,
+ 0xfe32, 0xfe83, 0xff18, 0xff68, 0xff9d, 0xfffe,
+ 0x0043, 0x0059, 0x007a, 0x00aa, 0x00c7, 0x00e8,
+ 0x015d, 0x022c, 0x0315, 0x03e9, 0x0470, 0x04a7,
+ 0x04dc, 0x04ee, 0x047e, 0x039a, 0x0297, 0x01ee,
+ 0x01c7, 0x01eb, 0x0260, 0x02e9, 0x030a, 0x0303,
+ 0x02fc, 0x02d8, 0x0328, 0x03fe, 0x04b5, 0x056e,
+ 0x0653, 0x070b, 0x07b3, 0x085b, 0x0887, 0x07f3,
+ 0x06e6, 0x0616, 0x05dd, 0x05c2, 0x0590, 0x057c,
+ 0x0567, 0x0525, 0x04bf, 0x045b, 0x0440, 0x0471,
+ 0x04bd, 0x0509, 0x052d, 0x0527, 0x050b, 0x04ba,
+ 0x045f, 0x0442, 0x0439, 0x0428, 0x0424, 0x0429,
+ 0x0440, 0x0466, 0x0493, 0x04c8, 0x04ee, 0x0536,
+ 0x05a2, 0x0584, 0x04e7, 0x0491, 0x0488, 0x0497,
+ 0x04d2, 0x051b, 0x05a0, 0x0675, 0x0723, 0x079e,
+ 0x07fc, 0x0806, 0x07f7, 0x07f8, 0x07d0, 0x07cd,
+ 0x0807, 0x07fc, 0x079f, 0x0729, 0x06c0, 0x0695,
+ 0x0668, 0x05fb, 0x05b0, 0x0598, 0x055c, 0x053e,
+ 0x05a5, 0x0637, 0x0677, 0x0687, 0x0689, 0x0661,
+ 0x0643, 0x0653, 0x0646, 0x060a, 0x05bb, 0x055d,
+ 0x0533, 0x0537, 0x04f3, 0x0463, 0x03ab, 0x02d3,
+ 0x0220, 0x01ba, 0x019a, 0x01c2, 0x01f9, 0x0223,
+ 0x0278, 0x02e4, 0x0338, 0x0375, 0x0375, 0x032d,
+ 0x02d0, 0x026d, 0x0201, 0x01af, 0x01ae, 0x01fb,
+ 0x0252, 0x028c, 0x028a, 0x0243, 0x0208, 0x020f,
+ 0x022b, 0x0251, 0x029c, 0x032b, 0x03d7, 0x0433,
+ 0x0459, 0x0495, 0x049e, 0x0460, 0x0428, 0x03f6,
+ 0x03e4, 0x042b, 0x04bc, 0x057b, 0x0600, 0x05fc,
+ 0x05b9, 0x0530, 0x0462, 0x03e5, 0x039e, 0x0342,
+ 0x0328, 0x0314, 0x02cb, 0x02d9, 0x0310, 0x0303,
+ 0x0312, 0x031c, 0x02af, 0x0252, 0x0275, 0x02a8,
+ 0x029a, 0x0263, 0x0208, 0x0180, 0x00df, 0x0028,
+ 0xff6a, 0xfed6, 0xfe5f, 0xfdb8, 0xfd01, 0xfc97,
+ 0xfc4f, 0xfbbe, 0xfb1a, 0xfac9, 0xfa94, 0xfa68,
+ 0xfa81, 0xfa7c, 0xfa1e, 0xfa03, 0xfa33, 0xfa48,
+ 0xfa64, 0xfa7d, 0xfa63, 0xfa46, 0xfa25, 0xf9ee,
+ 0xf9af, 0xf961, 0xf94a, 0xf997, 0xf9f8, 0xfa35,
+ 0xfa29, 0xf9d7, 0xf998, 0xf949, 0xf8c9, 0xf898,
+ 0xf8ba, 0xf8c9, 0xf8bc, 0xf883, 0xf837, 0xf814,
+ 0xf801, 0xf7fb, 0xf803, 0xf7ec, 0xf7e8, 0xf821,
+ 0xf85b, 0xf8a0, 0xf923, 0xf9d5, 0xfa7d, 0xfb08,
+ 0xfbac, 0xfc70, 0xfd30, 0xfe0b, 0xfece, 0xfefe,
+ 0xfecb, 0xfeb9, 0xff28, 0x0026, 0x0119, 0x01bc,
+ 0x0288, 0x037c, 0x0456, 0x051a, 0x05b3, 0x0628,
+ 0x06ab, 0x0744, 0x07dd, 0x085f, 0x090a, 0x09fb,
+ 0x0a8d, 0x0ab1, 0x0b17, 0x0ba5, 0x0bff, 0x0c59,
+ 0x0cca, 0x0d73, 0x0e5d, 0x0f23, 0x0fb3, 0x1025,
+ 0x1049, 0x1041, 0x104d, 0x104e, 0x1022, 0x0fdf,
+ 0x0f9c, 0x0f45, 0x0ebd, 0x0e33, 0x0dba, 0x0d42,
+ 0x0d0e, 0x0d35, 0x0d84, 0x0e00, 0x0e95, 0x0ef6,
+ 0x0f15, 0x0eee, 0x0e68, 0x0d9b, 0x0cc2, 0x0bee,
+ 0x0af8, 0x09ef, 0x0918, 0x0866, 0x07d5, 0x07bf,
+ 0x07e8, 0x07a6, 0x06e4, 0x05e8, 0x04dc, 0x03d8,
+ 0x02e4, 0x0218, 0x017b, 0x00c7, 0xfffe, 0xff8e,
+ 0xff64, 0xff03, 0xfe93, 0xfe62, 0xfe10, 0xfd87,
+ 0xfd3b, 0xfd1f, 0xfce1, 0xfc74, 0xfbcd, 0xfb11,
+ 0xfa8b, 0xfa3f, 0xfa1f, 0xfa30, 0xfa7f, 0xfb08,
+ 0xfb62, 0xfb7a, 0xfbc3, 0xfc09, 0xfc03, 0xfc0d,
+ 0xfc24, 0xfc24, 0xfc6b, 0xfce1, 0xfd3c, 0xfd82,
+ 0xfd8c, 0xfd62, 0xfd54, 0xfd5e, 0xfd8e, 0xfdd7,
+ 0xfde3, 0xfdd8, 0xfdc7, 0xfd4c, 0xfc97, 0xfc21,
+ 0xfbf5, 0xfc00, 0xfc12, 0xfbf4, 0xfbd2, 0xfbcf,
+ 0xfbdc, 0xfc0d, 0xfc74, 0xfce4, 0xfd10, 0xfce6,
+ 0xfcb7, 0xfcaa, 0xfca1, 0xfcc3, 0xfd1f, 0xfd46,
+ 0xfd0a, 0xfcdd, 0xfd06, 0xfd52, 0xfdbe, 0xfe68,
+ 0xfefb, 0xff3b, 0xff7d, 0xffc5, 0xffa4, 0xff4a,
+ 0xff37, 0xff48, 0xff4a, 0xff76, 0xffd1, 0x0024,
+ 0x006a, 0x008b, 0x0052, 0xfff6, 0xffcd, 0xffed,
+ 0x004f, 0x00f7, 0x01ed, 0x02f7, 0x038f, 0x03ba,
+ 0x03d1, 0x0390, 0x02bf, 0x01c7, 0x00e5, 0x0040,
+ 0x0028, 0x0093, 0x0152, 0x024d, 0x031f, 0x038b,
+ 0x03ac, 0x038f, 0x035a, 0x032b, 0x02c9, 0x0245,
+ 0x0210, 0x0227, 0x0234, 0x023a, 0x026c, 0x02c4,
+ 0x02fe, 0x02d0, 0x0243, 0x01c3, 0x018c, 0x0189,
+ 0x01c2, 0x0217, 0x0230, 0x022b, 0x0239, 0x024b,
+ 0x0278, 0x029f, 0x0282, 0x025f, 0x0240, 0x01fb,
+ 0x020d, 0x0288, 0x02b9, 0x0260, 0x01b0, 0x00fc,
+ 0x00bd, 0x00e9, 0x0140, 0x01b7, 0x0215, 0x0248,
+ 0x0275, 0x0279, 0x0263, 0x0252, 0x0223, 0x0203,
+ 0x01eb, 0x016b, 0x00bf, 0x0033, 0xff7e, 0xfec4,
+ 0xfe33, 0xfd6d, 0xfcac, 0xfc82, 0xfcaa, 0xfca5,
+ 0xfc99, 0xfcca, 0xfcff, 0xfcef, 0xfccd, 0xfcdc,
+ 0xfd11, 0xfd4c, 0xfd69, 0xfd52, 0xfd13, 0xfc8b,
+ 0xfba2, 0xfabf, 0xfa75, 0xfad4, 0xfb77, 0xfc1d,
+ 0xfca8, 0xfce0, 0xfccd, 0xfc91, 0xfc1a, 0xfba8,
+ 0xfb80, 0xfb62, 0xfb62, 0xfbc2, 0xfc17, 0xfc1e,
+ 0xfc0a, 0xfbdb, 0xfbd1, 0xfc25, 0xfc83, 0xfd0b,
+ 0xfdf2, 0xfe9d, 0xfee0, 0xff3c, 0xffa7, 0xffdd,
+ 0xffd6, 0xff76, 0xfefd, 0xfee6, 0xff35, 0xffc0,
+ 0x0076, 0x011e, 0x018b, 0x01d0, 0x0205, 0x023a,
+ 0x0255, 0x022b, 0x01da, 0x0196, 0x0152, 0x0110,
+ 0x0102, 0x010a, 0x00c6, 0x002a, 0xff88, 0xfeec,
+ 0xfe39, 0xfd86, 0xfce0, 0xfc4c, 0xfc17, 0xfc60,
+ 0xfcc5, 0xfd0b, 0xfd4b, 0xfd8b, 0xfdb0, 0xfdb3,
+ 0xfdaa, 0xfd96, 0xfd62, 0xfd2c, 0xfd1f, 0xfcf9,
+ 0xfc80, 0xfbe2, 0xfb5e, 0xfb31, 0xfb67, 0xfbb0,
+ 0xfbef, 0xfc42, 0xfc7c, 0xfc90, 0xfcac, 0xfcad,
+ 0xfc76, 0xfc46, 0xfc61, 0xfcb8, 0xfcf8, 0xfd22,
+ 0xfd95, 0xfe2a, 0xfe7d, 0xfead, 0xfebc, 0xfe6b,
+ 0xfde9, 0xfd6b, 0xfcdd, 0xfc7e, 0xfc9e, 0xfd10,
+ 0xfd93, 0xfe2e, 0xfec8, 0xff23, 0xff65, 0xffb8,
+ 0xffe6, 0x000a, 0x0057, 0x0069, 0x001d, 0xffbc,
+ 0xff57, 0xff10, 0xfeec, 0xfeb2, 0xfe77, 0xfe37,
+ 0xfddb, 0xfdcb, 0xfdf9, 0xfde8, 0xfde9, 0xfe2c,
+ 0xfe4a, 0xfe69, 0xfec7, 0xff4b, 0xfffd, 0x00a9,
+ 0x00ef, 0x00e3, 0x00ab, 0x0053, 0x0011, 0x0029,
+ 0x00b6, 0x017b, 0x0213, 0x023b, 0x01ab, 0x0088,
+ 0xff83, 0xfec0, 0xfe1d, 0xfddb, 0xfdee, 0xfe0e,
+ 0xfe4a, 0xfe9e, 0xff00, 0xff80, 0xffd6, 0xffdf,
+ 0xffe8, 0x001a, 0x007d, 0x0104, 0x015f, 0x015f,
+ 0x0111, 0x0063, 0xff75, 0xfea2, 0xfdfc, 0xfd4d,
+ 0xfca7, 0xfc54, 0xfc5e, 0xfc87, 0xfca5, 0xfcb6,
+ 0xfcd3, 0xfd18, 0xfd56, 0xfd3b, 0xfcdc, 0xfc83,
+ 0xfc34, 0xfbe6, 0xfbc9, 0xfbf6, 0xfc44, 0xfc8e,
+ 0xfcd8, 0xfd2b, 0xfd62, 0xfd58, 0xfd34, 0xfd29,
+ 0xfd29, 0xfd36, 0xfd84, 0xfe09, 0xfe7f, 0xfec0,
+ 0xfeeb, 0xff78, 0x00b5, 0x0247, 0x03b5, 0x04fb,
+ 0x0617, 0x06ca, 0x06f1, 0x0699, 0x05e5, 0x050f,
+ 0x0453, 0x03cd, 0x0386, 0x0377, 0x0386, 0x03ac,
+ 0x03f6, 0x0451, 0x04b1, 0x04ff, 0x050d, 0x050a,
+ 0x0526, 0x051a, 0x04f3, 0x0510, 0x0545, 0x054b,
+ 0x0545, 0x0535, 0x0512, 0x050b, 0x0510, 0x04de,
+ 0x0468, 0x03d3, 0x033d, 0x02af, 0x0246, 0x0222,
+ 0x0217, 0x01f0, 0x01d6, 0x01fe, 0x023f, 0x026e,
+ 0x0295, 0x02a1, 0x028f, 0x02b8, 0x032e, 0x0396,
+ 0x03d7, 0x03e6, 0x03ab, 0x0372, 0x0355, 0x031f,
+ 0x02e9, 0x02ab, 0x0233, 0x01c0, 0x0197, 0x01d8,
+ 0x02b1, 0x03c9, 0x0491, 0x0507, 0x0558, 0x0591,
+ 0x059c, 0x056c, 0x0552, 0x0574, 0x0599, 0x05c0,
+ 0x05e4, 0x05cb, 0x0564, 0x04c8, 0x0446, 0x0429,
+ 0x0439, 0x041f, 0x03c5, 0x0330, 0x02ad, 0x0267,
+ 0x023e, 0x0240, 0x0245, 0x0205, 0x01ce, 0x01e1,
+ 0x021f, 0x0281, 0x02a5, 0x0238, 0x01a2, 0x0111,
+ 0x007b, 0x0028, 0x0009, 0xffde, 0xffcd, 0xffeb,
+ 0x0030, 0x00af, 0x012d, 0x016d, 0x0188, 0x0197,
+ 0x01c8, 0x0255, 0x031a, 0x03d0, 0x046c, 0x04e0,
+ 0x0522, 0x0569, 0x05bf, 0x05d7, 0x059e, 0x0556,
+ 0x0531, 0x051b, 0x04f5, 0x04f2, 0x0536, 0x0565,
+ 0x0552, 0x052e, 0x04f7, 0x04c9, 0x04e3, 0x0543,
+ 0x05ed, 0x06c0, 0x0744, 0x0782, 0x07a8, 0x077d,
+ 0x073b, 0x073c, 0x0742, 0x072a, 0x0712, 0x06e7,
+ 0x0685, 0x05e5, 0x053c, 0x04b5, 0x0412, 0x0350,
+ 0x02ae, 0x0216, 0x0196, 0x0165, 0x014b, 0x012a,
+ 0x010d, 0x00c7, 0x006e, 0x0035, 0xffef, 0xff8d,
+ 0xff2f, 0xfece, 0xfe81, 0xfe5b, 0xfe24, 0xfdcc,
+ 0xfd81, 0xfd61, 0xfd71, 0xfd9b, 0xfdca, 0xfe0a,
+ 0xfe33, 0xfe0d, 0xfddc, 0xfddb, 0xfdcc, 0xfda5,
+ 0xfd80, 0xfd3b, 0xfcfc, 0xfd0c, 0xfd51, 0xfdaf,
+ 0xfe1c, 0xfe56, 0xfe33, 0xfdb9, 0xfd22, 0xfcae,
+ 0xfc22, 0xfb76, 0xfb23, 0xfaf3, 0xfa5d, 0xf999,
+ 0xf8f5, 0xf874, 0xf82f, 0xf80f, 0xf7fa, 0xf7fb,
+ 0xf7f3, 0xf7e8, 0xf808, 0xf83b, 0xf86f, 0xf8a4,
+ 0xf8b9, 0xf8c9, 0xf921, 0xf9d2, 0xfaa8, 0xfb5f,
+ 0xfbc8, 0xfbca, 0xfb9b, 0xfbcf, 0xfca9, 0xfdd2,
+ 0xff0f, 0x004a, 0x0146, 0x01f7, 0x027a, 0x02e0,
+ 0x0350, 0x03d4, 0x0463, 0x0511, 0x05d1, 0x069d,
+ 0x07aa, 0x08ea, 0x0a0a, 0x0afe, 0x0bd7, 0x0c7f,
+ 0x0cf4, 0x0d62, 0x0dd4, 0x0e36, 0x0ea6, 0x0f35,
+ 0x0f83, 0x0f71, 0x0f5f, 0x0f42, 0x0ef5, 0x0eca,
+ 0x0eb8, 0x0e90, 0x0ea6, 0x0ee4, 0x0ee9, 0x0eed,
+ 0x0efb, 0x0eda, 0x0ea8, 0x0e6a, 0x0e22, 0x0df9,
+ 0x0dbe, 0x0d73, 0x0d6a, 0x0d68, 0x0d52, 0x0d43,
+ 0x0cd8, 0x0c21, 0x0b8d, 0x0af8, 0x0a6c, 0x0a17,
+ 0x09b0, 0x0935, 0x08ce, 0x085a, 0x0802, 0x07e6,
+ 0x07f2, 0x0853, 0x08cd, 0x08db, 0x0899, 0x082e,
+ 0x079b, 0x070b, 0x0666, 0x058c, 0x04c4, 0x0422,
+ 0x0381, 0x02f7, 0x028e, 0x0214, 0x0178, 0x00f8,
+ 0x00c5, 0x00c2, 0x00e1, 0x0124, 0x0156, 0x0146,
+ 0x00d1, 0xfff8, 0xff21, 0xfe91, 0xfe2a, 0xfe12,
+ 0xfe56, 0xfe89, 0xfe80, 0xfe60, 0xfe1e, 0xfdc0,
+ 0xfd80, 0xfd79, 0xfda1, 0xfdda, 0xfe04, 0xfe00,
+ 0xfdd5, 0xfdb4, 0xfdb2, 0xfdbd, 0xfdc7, 0xfdbd,
+ 0xfd87, 0xfd38, 0xfd0c, 0xfd36, 0xfda7, 0xfe23,
+ 0xfe89, 0xfee6, 0xff1b, 0xfee2, 0xfe46, 0xfd97,
+ 0xfcf4, 0xfc6c, 0xfc16, 0xfbb4, 0xfb2a, 0xfade,
+ 0xfafd, 0xfb48, 0xfb9c, 0xfbe8, 0xfc13, 0xfc18,
+ 0xfc0e, 0xfc35, 0xfcb3, 0xfd51, 0xfdfa, 0xfea2,
+ 0xfef2, 0xfed3, 0xfe8f, 0xfe66, 0xfe77, 0xfec6,
+ 0xff42, 0xffbc, 0xffdb, 0xffaa, 0xffb3, 0x0013,
+ 0x0086, 0x00e1, 0x00fc, 0x00ea, 0x0102, 0x0140,
+ 0x0182, 0x01e6, 0x0266, 0x02e2, 0x0357, 0x03bc,
+ 0x0426, 0x04a8, 0x04fc, 0x04f0, 0x049e, 0x0424,
+ 0x03b8, 0x039e, 0x03c9, 0x0405, 0x045c, 0x04de,
+ 0x0569, 0x05e4, 0x066e, 0x0706, 0x0775, 0x07b3,
+ 0x07d0, 0x07b1, 0x073e, 0x0692, 0x05da, 0x0544,
+ 0x04e6, 0x04d1, 0x04d0, 0x047a, 0x03d5, 0x0323,
+ 0x025c, 0x01ac, 0x014e, 0x00e9, 0x006a, 0x002b,
+ 0x000d, 0xffe5, 0xffdd, 0xfff8, 0x001a, 0x0031,
+ 0x001d, 0xfff4, 0xffdd, 0xffdd, 0xffd3, 0xff78,
+ 0xfee7, 0xfe7c, 0xfe3d, 0xfe38, 0xfe7c, 0xfeb8,
+ 0xfeda, 0xff05, 0xff09, 0xfee6, 0xfe95, 0xfdf3,
+ 0xfd6e, 0xfd5a, 0xfd85, 0xfe06, 0xfecf, 0xff6f,
+ 0xffd4, 0xfffe, 0xffea, 0xffd8, 0xffc0, 0xff6f,
+ 0xfefa, 0xfe66, 0xfdd7, 0xfd97, 0xfd7d, 0xfd52,
+ 0xfd3a, 0xfd37, 0xfd24, 0xfcf9, 0xfccc, 0xfcc2,
+ 0xfcda, 0xfd02, 0xfd43, 0xfd91, 0xfda1, 0xfd5c,
+ 0xfcf9, 0xfc74, 0xfbbc, 0xfb3c, 0xfb2b, 0xfb41,
+ 0xfb77, 0xfbd6, 0xfc1b, 0xfc63, 0xfcdf, 0xfd5b,
+ 0xfdc8, 0xfe27, 0xfe69, 0xfea7, 0xfee5, 0xff3a,
+ 0xffd2, 0x0053, 0x0076, 0x007e, 0x00a7, 0x00f9,
+ 0x016b, 0x01dc, 0x025d, 0x02d2, 0x02e3, 0x02a9,
+ 0x024a, 0x01bb, 0x0142, 0x0110, 0x012b, 0x01b1,
+ 0x023d, 0x0255, 0x0211, 0x018a, 0x00e4, 0x007d,
+ 0x0047, 0x002f, 0x0074, 0x00dc, 0x00eb, 0x00a3,
+ 0x003f, 0xffce, 0xff5e, 0xff01, 0xfea7, 0xfe4f,
+ 0xfe12, 0xfdce, 0xfd6e, 0xfd1d, 0xfcbd, 0xfc24,
+ 0xfbb5, 0xfba9, 0xfbb8, 0xfbd4, 0xfc0d, 0xfc2c,
+ 0xfc0e, 0xfbb9, 0xfb34, 0xfaa6, 0xfa39, 0xfa0d,
+ 0xfa3b, 0xfab9, 0xfb6c, 0xfc3f, 0xfd15, 0xfdc6,
+ 0xfe27, 0xfe14, 0xfda9, 0xfd3a, 0xfd14, 0xfd4e,
+ 0xfdce, 0xfe6a, 0xff10, 0xffa7, 0x0015, 0x0067,
+ 0x00be, 0x011b, 0x0160, 0x0172, 0x0141, 0x00bc,
+ 0xfff2, 0xff13, 0xfe42, 0xfd8f, 0xfd16, 0xfccf,
+ 0xfc9c, 0xfc86, 0xfc99, 0xfcfb, 0xfdae, 0xfe3d,
+ 0xfe71, 0xfe82, 0xfe56, 0xfe0a, 0xfe12, 0xfe54,
+ 0xfea8, 0xff2c, 0xff82, 0xff71, 0xff53, 0xff3b,
+ 0xff17, 0xfef0, 0xfeb0, 0xfe7f, 0xfe7c, 0xfe81,
+ 0xfea5, 0xfee3, 0xfefa, 0xfef3, 0xfee6, 0xfefd,
+ 0xff73, 0x0001, 0x004e, 0x0074, 0x0065, 0x000f,
+ 0xffc1, 0xffae, 0xffcd, 0x0001, 0x001f, 0x001f,
+ 0x0026, 0x0039, 0x0041, 0x0038, 0x0032, 0x002a,
+ 0x0008, 0xffd8, 0xff9e, 0xff51, 0xfef5, 0xfe8f,
+ 0xfe38, 0xfe05, 0xfdd8, 0xfd9b, 0xfd5e, 0xfd2b,
+ 0xfd05, 0xfcd8, 0xfc7c, 0xfbe8, 0xfb1a, 0xfa37,
+ 0xf98c, 0xf927, 0xf912, 0xf96a, 0xf9df, 0xfa1e,
+ 0xfa48, 0xfa75, 0xfa91, 0xfa8c, 0xfa60, 0xfa1f,
+ 0xf9c9, 0xf974, 0xf975, 0xf9d7, 0xfa72, 0xfb79,
+ 0xfcf7, 0xfe99, 0x0027, 0x015f, 0x01e2, 0x01a4,
+ 0x00dd, 0xffe9, 0xff2c, 0xfec2, 0xfea4, 0xfeff,
+ 0xffd8, 0x00fb, 0x024d, 0x0390, 0x0474, 0x04df,
+ 0x04e5, 0x04c1, 0x04c4, 0x050e, 0x0596, 0x0636,
+ 0x06a6, 0x06d3, 0x06d3, 0x068f, 0x0619, 0x05bd,
+ 0x058d, 0x057d, 0x05a0, 0x05ef, 0x0654, 0x06b8,
+ 0x06f0, 0x06f1, 0x06e4, 0x06eb, 0x0723, 0x0796,
+ 0x080b, 0x083c, 0x0820, 0x07c3, 0x0734, 0x06a9,
+ 0x0652, 0x060e, 0x05a6, 0x0531, 0x04fd, 0x050c,
+ 0x050c, 0x04da, 0x04a7, 0x0490, 0x0485, 0x0480,
+ 0x0487, 0x049e, 0x04c8, 0x0507, 0x0558, 0x0597,
+ 0x058f, 0x0539, 0x04bf, 0x044a, 0x03f7, 0x03d6,
+ 0x03cc, 0x03c8, 0x03e7, 0x0442, 0x04c2, 0x0536,
+ 0x056b, 0x0557, 0x0523, 0x04e8, 0x04a8, 0x0460,
+ 0x0400, 0x0393, 0x032b, 0x02ad, 0x0223, 0x01bc,
+ 0x017f, 0x0169, 0x0170, 0x0176, 0x0177, 0x017c,
+ 0x018d, 0x01b4, 0x01be, 0x015f, 0x008d, 0xff8e,
+ 0xfebc, 0xfe3b, 0xfe09, 0xfe2d, 0xfe79, 0xfec9,
+ 0xff3c, 0xffbe, 0x0023, 0x007a, 0x00c7, 0x0123,
+ 0x01a0, 0x0216, 0x027e, 0x02c7, 0x02c6, 0x02c3,
+ 0x02e4, 0x0301, 0x032e, 0x035a, 0x0374, 0x03d2,
+ 0x0477, 0x0522, 0x05c1, 0x062c, 0x0666, 0x0677,
+ 0x0644, 0x062b, 0x0659, 0x0673, 0x0699, 0x06d8,
+ 0x06df, 0x06e7, 0x0708, 0x06f0, 0x06c2, 0x06a8,
+ 0x06a7, 0x06ec, 0x0741, 0x0769, 0x0789, 0x0792,
+ 0x0774, 0x073e, 0x06c1, 0x060b, 0x056c, 0x04e5,
+ 0x0486, 0x046a, 0x0449, 0x03f7, 0x03a1, 0x0340,
+ 0x02c4, 0x0259, 0x021e, 0x01ec, 0x019a, 0x0126,
+ 0x00ad, 0x004e, 0x001c, 0x0019, 0x0019, 0xffd0,
+ 0xff41, 0xfec0, 0xfe88, 0xfe87, 0xfe8c, 0xfe7c,
+ 0xfe57, 0xfe21, 0xfdfb, 0xfdd5, 0xfd83, 0xfd60,
+ 0xfdb6, 0xfe13, 0xfe61, 0xfef1, 0xff74, 0xffa9,
+ 0xffc1, 0xffb4, 0xff92, 0xff9c, 0xffb0, 0xff92,
+ 0xff26, 0xfe5d, 0xfd69, 0xfc88, 0xfbb7, 0xfb23,
+ 0xfb00, 0xfb06, 0xfb03, 0xfb24, 0xfb3d, 0xfaf5,
+ 0xfa60, 0xf9ac, 0xf902, 0xf8aa, 0xf887, 0xf866,
+ 0xf860, 0xf86d, 0xf896, 0xf908, 0xf97d, 0xf9ae,
+ 0xf98d, 0xf904, 0xf878, 0xf85f, 0xf893, 0xf8f4,
+ 0xf988, 0xfa33, 0xfb05, 0xfbfc, 0xfce8, 0xfdb2,
+ 0xfe33, 0xfe85, 0xff0d, 0xffdb, 0x00df, 0x0228,
+ 0x037c, 0x0495, 0x055e, 0x05dd, 0x062b, 0x064f,
+ 0x064d, 0x0643, 0x0650, 0x06ad, 0x0769, 0x083f,
+ 0x0913, 0x09ce, 0x0a3f, 0x0a7a, 0x0a96, 0x0aad,
+ 0x0b09, 0x0baf, 0x0c6a, 0x0d0a, 0x0d57, 0x0d5d,
+ 0x0d3e, 0x0cce, 0x0c34, 0x0be2, 0x0bed, 0x0c41,
+ 0x0cbf, 0x0d2e, 0x0d6a, 0x0d57, 0x0d02, 0x0cab,
+ 0x0c54, 0x0bde, 0x0b51, 0x0ab2, 0x0a13, 0x0999,
+ 0x0955, 0x093f, 0x091e, 0x08c8, 0x0878, 0x0858,
+ 0x0849, 0x0839, 0x0808, 0x0799, 0x0733, 0x06fb,
+ 0x0695, 0x05e8, 0x054d, 0x04d1, 0x045c, 0x040a,
+ 0x03c3, 0x036d, 0x0317, 0x02a7, 0x0226, 0x01d6,
+ 0x01b1, 0x01a9, 0x01c0, 0x01bf, 0x0198, 0x0163,
+ 0x0101, 0x007d, 0xfff7, 0xff44, 0xfe89, 0xfe23,
+ 0xfe05, 0xfdff, 0xfe08, 0xfdfc, 0xfdca, 0xfd8d,
+ 0xfd4d, 0xfd17, 0xfd01, 0xfd06, 0xfd38, 0xfd88,
+ 0xfd85, 0xfd2b, 0xfce8, 0xfca7, 0xfc3c, 0xfbfb,
+ 0xfbe0, 0xfbb0, 0xfb8c, 0xfb72, 0xfb58, 0xfb5e,
+ 0xfb7a, 0xfbae, 0xfc0a, 0xfc42, 0xfc3f, 0xfc39,
+ 0xfc2b, 0xfc13, 0xfc20, 0xfc58, 0xfca3, 0xfce9,
+ 0xfd27, 0xfd6c, 0xfd91, 0xfd7a, 0xfd38, 0xfcc0,
+ 0xfc2f, 0xfbc4, 0xfb7f, 0xfb63, 0xfb93, 0xfc05,
+ 0xfc99, 0xfd2b, 0xfda4, 0xfe1c, 0xfe8c, 0xfec0,
+ 0xfec5, 0xfec0, 0xfec6, 0xfee9, 0xff08, 0xfefe,
+ 0xfede, 0xfeb7, 0xfe9b, 0xfea1, 0xfec0, 0xff00,
+ 0xff56, 0xff9c, 0xffe5, 0x0016, 0xffd9, 0xff69,
+ 0xff2f, 0xff0f, 0xfeff, 0xff19, 0xff44, 0xff83,
+ 0xffe7, 0x004d, 0x0099, 0x00c0, 0x00cd, 0x00c9,
+ 0x00ae, 0x009a, 0x00a3, 0x00b4, 0x00cb, 0x00c6,
+ 0x0073, 0xfffc, 0xff94, 0xff47, 0xff39, 0xff6e,
+ 0xffc2, 0x0029, 0x0085, 0x00ae, 0x00a6, 0x0080,
+ 0x0057, 0x0040, 0x004d, 0x0091, 0x00fb, 0x0168,
+ 0x01b3, 0x017b, 0x0099, 0xff68, 0xfe41, 0xfd5c,
+ 0xfcde, 0xfcac, 0xfca1, 0xfc98, 0xfc7a, 0xfc73,
+ 0xfc99, 0xfccd, 0xfd15, 0xfd5c, 0xfd70, 0xfd72,
+ 0xfd81, 0xfd96, 0xfdd0, 0xfe21, 0xfe5f, 0xfe8e,
+ 0xfe8c, 0xfe50, 0xfe20, 0xfe1d, 0xfe4e, 0xfebe,
+ 0xff30, 0xff67, 0xff6f, 0xff61, 0xff5e, 0xff82,
+ 0xffbb, 0xfff8, 0x002f, 0x004d, 0x0061, 0x007a,
+ 0x0087, 0x007b, 0x0049, 0xffec, 0xff85, 0xff39,
+ 0xff19, 0xff1e, 0xff10, 0xfed9, 0xfe90, 0xfe3d,
+ 0xfddf, 0xfd82, 0xfd3a, 0xfd2a, 0xfd5e, 0xfdbc,
+ 0xfe27, 0xfe87, 0xfed2, 0xfef4, 0xfec9, 0xfe7e,
+ 0xfe4d, 0xfe1c, 0xfde3, 0xfdc3, 0xfda4, 0xfd6d,
+ 0xfd29, 0xfcdf, 0xfca1, 0xfc8b, 0xfc9f, 0xfcc9,
+ 0xfcfe, 0xfd39, 0xfd72, 0xfdae, 0xfdea, 0xfe03,
+ 0xfe20, 0xfe71, 0xfeb7, 0xfeda, 0xff05, 0xff2f,
+ 0xff75, 0xffe8, 0x003d, 0x0079, 0x00ae, 0x00a2,
+ 0x006a, 0x003c, 0xfffc, 0xffa6, 0xff3f, 0xfed2,
+ 0xfe97, 0xfe86, 0xfe71, 0xfe6f, 0xfe80, 0xfe95,
+ 0xfec0, 0xfefd, 0xff3b, 0xff7c, 0xffba, 0xffea,
+ 0xffee, 0xffa4, 0xff28, 0xfea5, 0xfe0c, 0xfd57,
+ 0xfcde, 0xfccb, 0xfcc3, 0xfcb3, 0xfce5, 0xfd44,
+ 0xfdb8, 0xfe5e, 0xfeea, 0xff25, 0xff48, 0xff5f,
+ 0xff56, 0xff43, 0xff3c, 0xff54, 0xff79, 0xff87,
+ 0xff9a, 0xffb3, 0xffa6, 0xffa4, 0xffd4, 0x000b,
+ 0x0024, 0x0012, 0xffe3, 0xffbc, 0xff9c, 0xff91,
+ 0xffa7, 0xff98, 0xff6d, 0xff80, 0xffaf, 0xffcf,
+ 0x0013, 0x0053, 0x0066, 0x007d, 0x0073, 0x0041,
+ 0x0056, 0x009d, 0x00c1, 0x00bb, 0x0066, 0xffdc,
+ 0xff7c, 0xff43, 0xff3b, 0xff80, 0xffae, 0xff8e,
+ 0xff65, 0xff4d, 0xff52, 0xff7d, 0xff9c, 0xff90,
+ 0xff65, 0xff3d, 0xff28, 0xff11, 0xff17, 0xff57,
+ 0xff90, 0xffb2, 0xffe2, 0xfffa, 0xfff7, 0xfff9,
+ 0xffe6, 0xffca, 0xffd5, 0xffea, 0xffe9, 0xffe7,
+ 0xfffa, 0x002f, 0x0079, 0x00a3, 0x008a, 0x002d,
+ 0xffb5, 0xff53, 0xff0a, 0xfeba, 0xfe66, 0xfe37,
+ 0xfe3a, 0xfe65, 0xfec5, 0xff78, 0x0059, 0x0112,
+ 0x017a, 0x0173, 0x00cd, 0xffbb, 0xfea2, 0xfda5,
+ 0xfd01, 0xfd02, 0xfd91, 0xfe5e, 0xff09, 0xff4a,
+ 0xff35, 0xfef1, 0xfe90, 0xfe47, 0xfe1b, 0xfe02,
+ 0xfe29, 0xfe98, 0xff32, 0xffe2, 0x0063, 0x0087,
+ 0x005e, 0x0007, 0xffbc, 0xffa6, 0xffd5, 0x0046,
+ 0x00c7, 0x0136, 0x01ad, 0x020e, 0x023a, 0x024c,
+ 0x024d, 0x0260, 0x029b, 0x02c6, 0x02c8, 0x02b1,
+ 0x028f, 0x02ad, 0x0334, 0x03d5, 0x0444, 0x047d,
+ 0x0493, 0x0482, 0x045d, 0x0446, 0x0425, 0x03e4,
+ 0x03b7, 0x03b0, 0x03dd, 0x044a, 0x04aa, 0x04ce,
+ 0x04e5, 0x04fe, 0x0524, 0x0550, 0x0555, 0x0545,
+ 0x0540, 0x0542, 0x0568, 0x05a0, 0x059a, 0x055b,
+ 0x050e, 0x04a8, 0x044e, 0x0457, 0x04cb, 0x0579,
+ 0x0640, 0x06e2, 0x0731, 0x0756, 0x0753, 0x0705,
+ 0x069e, 0x0636, 0x05c1, 0x0574, 0x054f, 0x053c,
+ 0x0566, 0x05b0, 0x05f5, 0x065e, 0x06b1, 0x06a7,
+ 0x0666, 0x05e7, 0x0554, 0x0515, 0x0506, 0x04da,
+ 0x0499, 0x043b, 0x03c7, 0x036c, 0x0331, 0x0301,
+ 0x02d8, 0x02b5, 0x029b, 0x0291, 0x0293, 0x028b,
+ 0x0271, 0x0251, 0x0227, 0x01f4, 0x01ac, 0x015e,
+ 0x0150, 0x0176, 0x0185, 0x0186, 0x0173, 0x0146,
+ 0x0148, 0x0162, 0x0156, 0x0143, 0x011a, 0x00bb,
+ 0x005b, 0x000b, 0xffd1, 0xffd3, 0xfff3, 0x0029,
+ 0x0099, 0x011a, 0x018d, 0x01ff, 0x024c, 0x0265,
+ 0x0270, 0x0275, 0x0273, 0x0276, 0x0280, 0x028d,
+ 0x02a8, 0x02df, 0x031a, 0x032a, 0x0325, 0x034b,
+ 0x039a, 0x03fb, 0x047d, 0x04f2, 0x0528, 0x0550,
+ 0x058a, 0x05be, 0x060c, 0x066a, 0x0697, 0x0687,
+ 0x0639, 0x05b3, 0x052d, 0x04d4, 0x04cd, 0x050f,
+ 0x0540, 0x055f, 0x0582, 0x0570, 0x0539, 0x050d,
+ 0x04d3, 0x0497, 0x0461, 0x041e, 0x03d8, 0x036c,
+ 0x02dd, 0x0269, 0x01f6, 0x0195, 0x018b, 0x01b3,
+ 0x0215, 0x02ca, 0x036c, 0x03c4, 0x03c1, 0x0350,
+ 0x02bc, 0x0203, 0x0104, 0x0037, 0xffcc, 0xff8f,
+ 0xff7f, 0xff7b, 0xff65, 0xff52, 0xff4d, 0xff7e,
+ 0xffd5, 0xfffe, 0x001d, 0x0058, 0x0080, 0x00aa,
+ 0x00df, 0x0116, 0x016c, 0x0193, 0x0151, 0x00ef,
+ 0x0089, 0x002b, 0xfff5, 0xffbb, 0xff7a, 0xff56,
+ 0xff37, 0xff09, 0xfedd, 0xfee0, 0xff1b, 0xff35,
+ 0xff1d, 0xfeec, 0xfe54, 0xfd81, 0xfd14, 0xfcd3,
+ 0xfc58, 0xfbcc, 0xfb4c, 0xfaf7, 0xfb09, 0xfb57,
+ 0xfb96, 0xfbaf, 0xfb8b, 0xfb39, 0xfada, 0xfa7e,
+ 0xfa43, 0xfa59, 0xfac8, 0xfb72, 0xfc30, 0xfce5,
+ 0xfd80, 0xfde1, 0xfdf7, 0xfdf5, 0xfe2a, 0xfe92,
+ 0xfefa, 0xff4d, 0xff89, 0xffd6, 0x0066, 0x0121,
+ 0x01d4, 0x0268, 0x02cc, 0x0323, 0x0397, 0x0403,
+ 0x046c, 0x04fb, 0x058f, 0x0624, 0x06f1, 0x07e3,
+ 0x08c4, 0x0971, 0x09ba, 0x09a7, 0x0986, 0x097f,
+ 0x0970, 0x095b, 0x096f, 0x09ae, 0x09ed, 0x0a2f,
+ 0x0a7b, 0x0aa8, 0x0aa9, 0x0a89, 0x0a45, 0x09f1,
+ 0x09a2, 0x0934, 0x08a1, 0x0829, 0x07f5, 0x07ef,
+ 0x07fc, 0x0818, 0x083e, 0x0860, 0x0861, 0x082c,
+ 0x07cf, 0x0764, 0x070a, 0x06da, 0x06b0, 0x065f,
+ 0x0602, 0x05a3, 0x053e, 0x04fa, 0x04ed, 0x04fc,
+ 0x0505, 0x04eb, 0x04c6, 0x04c7, 0x04e5, 0x051a,
+ 0x0553, 0x0548, 0x050e, 0x04de, 0x04aa, 0x0477,
+ 0x0441, 0x03d0, 0x0345, 0x02d0, 0x0259, 0x0202,
+ 0x01f9, 0x0236, 0x02bb, 0x0354, 0x039b, 0x037f,
+ 0x0311, 0x0255, 0x0180, 0x00be, 0x0021, 0xffc1,
+ 0xff7e, 0xff3a, 0xff00, 0xfed4, 0xfebb, 0xfeca,
+ 0xfeea, 0xfeee, 0xfec4, 0xfe7d, 0xfe32, 0xfdec,
+ 0xfdb3, 0xfd8d, 0xfd84, 0xfd96, 0xfd8f, 0xfd4c,
+ 0xfcf3, 0xfc98, 0xfc51, 0xfc51, 0xfc7e, 0xfcb3,
+ 0xfcf1, 0xfd09, 0xfcfb, 0xfd17, 0xfd66, 0xfdd3,
+ 0xfe4e, 0xfe9e, 0xfec1, 0xfee2, 0xfefb, 0xff18,
+ 0xff40, 0xff62, 0xff93, 0xffdc, 0x0032, 0x0095,
+ 0x00db, 0x0106, 0x0141, 0x015f, 0x014e, 0x0153,
+ 0x016d, 0x016e, 0x0172, 0x0195, 0x01b5, 0x01b8,
+ 0x01c0, 0x01d5, 0x01be, 0x016f, 0x011f, 0x00e4,
+ 0x00c8, 0x00cf, 0x00d6, 0x00d0, 0x00db, 0x010b,
+ 0x016c, 0x01f2, 0x0278, 0x02d7, 0x0305, 0x0303,
+ 0x02b3, 0x0218, 0x017a, 0x010c, 0x00dd, 0x00f8,
+ 0x0141, 0x01a6, 0x022b, 0x028e, 0x0290, 0x0249,
+ 0x01f7, 0x01d2, 0x01db, 0x01ed, 0x0210, 0x0239,
+ 0x0247, 0x0253, 0x026c, 0x0276, 0x0243, 0x01bf,
+ 0x0122, 0x0096, 0x0008, 0xff9a, 0xff63, 0xff3f,
+ 0xff3b, 0xff66, 0xff7f, 0xff81, 0xff8d, 0xff88,
+ 0xff75, 0xff74, 0xff66, 0xff24, 0xfecd, 0xfe83,
+ 0xfe36, 0xfdda, 0xfd8d, 0xfd71, 0xfd7e, 0xfd8d,
+ 0xfd98, 0xfdab, 0xfdab, 0xfd90, 0xfd83, 0xfd82,
+ 0xfd7e, 0xfd8a, 0xfd97, 0xfd97, 0xfd97, 0xfd91,
+ 0xfd8e, 0xfda1, 0xfdb9, 0xfdc9, 0xfddd, 0xfde5,
+ 0xfdc9, 0xfdaf, 0xfdd5, 0xfe2f, 0xfe93, 0xff06,
+ 0xff6e, 0xffb2, 0xfff1, 0x0000, 0xffbd, 0xff64,
+ 0xff03, 0xfe8e, 0xfe1a, 0xfd94, 0xfd1d, 0xfcf3,
+ 0xfcf9, 0xfd21, 0xfd29, 0xfcb8, 0xfc3d, 0xfbfa,
+ 0xfb9c, 0xfb75, 0xfbba, 0xfbd9, 0xfbb3, 0xfb5c,
+ 0xfae3, 0xfac3, 0xfb03, 0xfb3e, 0xfb79, 0xfb88,
+ 0xfb45, 0xfb1c, 0xfb2e, 0xfb61, 0xfbbf, 0xfbff,
+ 0xfbea, 0xfbac, 0xfb4c, 0xfae5, 0xfad4, 0xfb3c,
+ 0xfbe7, 0xfc96, 0xfd1b, 0xfd61, 0xfd7a, 0xfda1,
+ 0xfddf, 0xfdf7, 0xfde0, 0xfd95, 0xfd0e, 0xfc91,
+ 0xfc55, 0xfc30, 0xfc0f, 0xfbef, 0xfbbe, 0xfb8a,
+ 0xfb5e, 0xfb3d, 0xfb21, 0xfafa, 0xfae2, 0xfae1,
+ 0xfabe, 0xfa74, 0xfa32, 0xfa03, 0xfa06, 0xfa62,
+ 0xfae2, 0xfb44, 0xfb82, 0xfb8c, 0xfb5a, 0xfb26,
+ 0xfb19, 0xfb2b, 0xfb56, 0xfb79, 0xfb73, 0xfb71,
+ 0xfb9f, 0xfbe4, 0xfc40, 0xfcc1, 0xfd56, 0xfde9,
+ 0xfe45, 0xfe55, 0xfe4f, 0xfe3e, 0xfe1b, 0xfe13,
+ 0xfe19, 0xfe1a, 0xfe37, 0xfe59, 0xfe7a, 0xfecd,
+ 0xff3d, 0xff9e, 0xffdb, 0xffcf, 0xff85, 0xff35,
+ 0xfef6, 0xfeeb, 0xff2e, 0xff9c, 0x0002, 0x003e,
+ 0x0053, 0x0051, 0x0032, 0xfff3, 0xff8c, 0xff11,
+ 0xfebe, 0xfea0, 0xfeaf, 0xfefa, 0xff5e, 0xffc1,
+ 0x002a, 0x006b, 0x0086, 0x00bc, 0x00da, 0x00b4,
+ 0x0081, 0x0032, 0xffb9, 0xff64, 0xff44, 0xff2f,
+ 0xff1c, 0xff10, 0xff1c, 0xff57, 0xffbd, 0x0021,
+ 0x0060, 0x0078, 0x0063, 0x0012, 0xffac, 0xff5b,
+ 0xff1b, 0xfeef, 0xfef3, 0xfefe, 0xfec2, 0xfe3e,
+ 0xfdab, 0xfd30, 0xfce3, 0xfccd, 0xfcd8, 0xfcd9,
+ 0xfcb1, 0xfc6a, 0xfc3a, 0xfc59, 0xfcd8, 0xfd93,
+ 0xfe47, 0xfeaf, 0xfead, 0xfe6c, 0xfe26, 0xfde1,
+ 0xfdad, 0xfdb7, 0xfdf1, 0xfe2a, 0xfe62, 0xfeac,
+ 0xff1f, 0xffb1, 0x003a, 0x00bd, 0x0143, 0x01c7,
+ 0x025a, 0x02dd, 0x0312, 0x02f4, 0x0287, 0x01ee,
+ 0x016a, 0x0107, 0x00cc, 0x00d3, 0x010f, 0x0162,
+ 0x019f, 0x01ab, 0x01ae, 0x01af, 0x01b5, 0x01ee,
+ 0x021d, 0x0217, 0x0230, 0x0272, 0x02c0, 0x0318,
+ 0x0344, 0x0359, 0x038e, 0x03ab, 0x03be, 0x03f0,
+ 0x03fd, 0x03fd, 0x0424, 0x043b, 0x0443, 0x0463,
+ 0x048e, 0x04d1, 0x0518, 0x0525, 0x050b, 0x04ea,
+ 0x04d5, 0x04e8, 0x0501, 0x04f7, 0x04e3, 0x04ea,
+ 0x051a, 0x058f, 0x0630, 0x06a2, 0x06aa, 0x065b,
+ 0x05ec, 0x058f, 0x056e, 0x059b, 0x05f9, 0x0641,
+ 0x0660, 0x0674, 0x067c, 0x068d, 0x06b8, 0x06b8,
+ 0x0675, 0x0607, 0x0554, 0x0499, 0x0437, 0x041a,
+ 0x0432, 0x0468, 0x0451, 0x03e4, 0x0378, 0x033d,
+ 0x035b, 0x03bf, 0x0412, 0x041e, 0x03df, 0x0381,
+ 0x0344, 0x0342, 0x0379, 0x03c3, 0x03f5, 0x0421,
+ 0x043b, 0x0430, 0x043a, 0x0464, 0x0486, 0x0491,
+ 0x045f, 0x03e9, 0x0367, 0x030a, 0x02f1, 0x0305,
+ 0x030a, 0x0316, 0x033c, 0x0350, 0x0353, 0x0363,
+ 0x037c, 0x039d, 0x03b6, 0x03a0, 0x0356, 0x02f8,
+ 0x02a4, 0x0257, 0x020f, 0x01da, 0x01b0, 0x01a7,
+ 0x01cc, 0x01ec, 0x01fc, 0x021e, 0x025a, 0x02c3,
+ 0x0338, 0x0358, 0x030d, 0x0276, 0x01c7, 0x015f,
+ 0x0153, 0x0179, 0x01b9, 0x01e4, 0x01cf, 0x0196,
+ 0x0163, 0x0143, 0x013a, 0x0152, 0x01a0, 0x0213,
+ 0x0272, 0x02a3, 0x02b2, 0x02ac, 0x029a, 0x0273,
+ 0x023a, 0x0208, 0x01ee, 0x01de, 0x01d6, 0x01fc,
+ 0x025a, 0x02c9, 0x032a, 0x0370, 0x03a0, 0x03be,
+ 0x03ae, 0x0366, 0x030d, 0x02b7, 0x027a, 0x0267,
+ 0x0272, 0x02b2, 0x031e, 0x0361, 0x035b, 0x02fe,
+ 0x0236, 0x0166, 0x00ee, 0x00b2, 0x008c, 0x004f,
+ 0xffdc, 0xff62, 0xfefc, 0xfeae, 0xfe93, 0xfe8d,
+ 0xfe91, 0xfec4, 0xff06, 0xff36, 0xff62, 0xff5d,
+ 0xff07, 0xfe89, 0xfe09, 0xfdb8, 0xfd9a, 0xfd90,
+ 0xfdc5, 0xfe4d, 0xfed8, 0xff23, 0xff07, 0xfe7b,
+ 0xfdc7, 0xfd30, 0xfcc4, 0xfc81, 0xfc4e, 0xfc07,
+ 0xfb97, 0xfb08, 0xfa9f, 0xfa7d, 0xfa8b, 0xfac1,
+ 0xfafd, 0xfb0e, 0xfb08, 0xfb14, 0xfb4f, 0xfbc3,
+ 0xfc38, 0xfc76, 0xfc8f, 0xfca9, 0xfcdb, 0xfd1d,
+ 0xfd55, 0xfd7c, 0xfd7e, 0xfd5a, 0xfd39, 0xfd36,
+ 0xfd61, 0xfdb7, 0xfe0f, 0xfe7e, 0xff30, 0xfff7,
+ 0x00a9, 0x013d, 0x0178, 0x0175, 0x0186, 0x01a1,
+ 0x01b4, 0x01d6, 0x01ff, 0x023d, 0x02b3, 0x034c,
+ 0x03d4, 0x0439, 0x0485, 0x04db, 0x0557, 0x05d9,
+ 0x063d, 0x0699, 0x06e6, 0x06fc, 0x06ec, 0x06e4,
+ 0x0707, 0x0757, 0x0788, 0x078a, 0x07b0, 0x0802,
+ 0x0874, 0x093b, 0x0a39, 0x0b13, 0x0ba7, 0x0bcb,
+ 0x0b7e, 0x0b09, 0x0a8e, 0x0a06, 0x097c, 0x090f,
+ 0x08d7, 0x08c3, 0x0893, 0x0828, 0x07c4, 0x07b9,
+ 0x0803, 0x087b, 0x08f8, 0x0930, 0x091e, 0x08f0,
+ 0x08ac, 0x087c, 0x0873, 0x0849, 0x0809, 0x07f5,
+ 0x0808, 0x0855, 0x08ba, 0x08bc, 0x0834, 0x0739,
+ 0x0612, 0x0547, 0x04ed, 0x04ef, 0x0573, 0x063d,
+ 0x06e6, 0x0743, 0x0737, 0x06d8, 0x064b, 0x0593,
+ 0x04f9, 0x04ab, 0x047b, 0x0469, 0x0448, 0x03c3,
+ 0x032f, 0x02f9, 0x0305, 0x0340, 0x03a2, 0x03d5,
+ 0x03aa, 0x033a, 0x02a5, 0x0222, 0x01ea, 0x01e2,
+ 0x01d6, 0x01c8, 0x01b6, 0x0198, 0x0174, 0x012b,
+ 0x00b1, 0x0045, 0xfff7, 0xffb4, 0xffb0, 0xfffc,
+ 0x0056, 0x00ba, 0x0131, 0x0189, 0x01a9, 0x01a5,
+ 0x0185, 0x016b, 0x0192, 0x01e1, 0x0212, 0x0200,
+ 0x0198, 0x0103, 0x0095, 0x0083, 0x00ee, 0x01a9,
+ 0x0238, 0x0269, 0x024b, 0x01f1, 0x0192, 0x0148,
+ 0x0108, 0x00f7, 0x0124, 0x017f, 0x01fa, 0x025f,
+ 0x028d, 0x027f, 0x0228, 0x01c6, 0x0195, 0x0192,
+ 0x01b9, 0x01de, 0x01d1, 0x01b5, 0x0183, 0x0139,
+ 0x010e, 0x00dd, 0x008d, 0x0072, 0x00b2, 0x014d,
+ 0x021b, 0x02a5, 0x02c6, 0x028a, 0x01fe, 0x018b,
+ 0x016a, 0x0184, 0x01eb, 0x0279, 0x02e6, 0x0339,
+ 0x0368, 0x0366, 0x0368, 0x038c, 0x03d7, 0x0440,
+ 0x04a8, 0x04e6, 0x04b7, 0x03fb, 0x030c, 0x023f,
+ 0x01b6, 0x0194, 0x01be, 0x0208, 0x0270, 0x02cd,
+ 0x02ea, 0x02e3, 0x02c6, 0x027b, 0x0217, 0x0199,
+ 0x00f6, 0x005d, 0xffd7, 0xff29, 0xfe82, 0xfe33,
+ 0xfe3c, 0xfe9f, 0xff36, 0xffa0, 0xffd5, 0xffd7,
+ 0xff9b, 0xff5d, 0xff32, 0xff00, 0xfedf, 0xfebf,
+ 0xfe99, 0xfe9a, 0xfe90, 0xfe45, 0xfde6, 0xfd8f,
+ 0xfd6d, 0xfda4, 0xfdf3, 0xfe2d, 0xfe3a, 0xfdf8,
+ 0xfd9d, 0xfd50, 0xfd11, 0xfd17, 0xfd53, 0xfd69,
+ 0xfd4b, 0xfd04, 0xfca2, 0xfc4a, 0xfc0c, 0xfc0c,
+ 0xfc63, 0xfce9, 0xfd7f, 0xfdf0, 0xfe18, 0xfe2d,
+ 0xfe43, 0xfe3e, 0xfe31, 0xfe1a, 0xfdfa, 0xfdfb,
+ 0xfe02, 0xfdfd, 0xfe03, 0xfdf0, 0xfdb0, 0xfd5c,
+ 0xfceb, 0xfc6b, 0xfc07, 0xfbd1, 0xfbd4, 0xfbef,
+ 0xfc04, 0xfc19, 0xfc14, 0xfbf8, 0xfbe2, 0xfbb3,
+ 0xfb6f, 0xfb4a, 0xfb2b, 0xfae2, 0xfa6c, 0xf9e2,
+ 0xf97e, 0xf954, 0xf94f, 0xf961, 0xf96a, 0xf968,
+ 0xf980, 0xf994, 0xf985, 0xf988, 0xf997, 0xf978,
+ 0xf933, 0xf8df, 0xf888, 0xf840, 0xf81d, 0xf82e,
+ 0xf848, 0xf835, 0xf80a, 0xf7e5, 0xf7b9, 0xf795,
+ 0xf784, 0xf775, 0xf798, 0xf829, 0xf90a, 0xf9ff,
+ 0xfadc, 0xfb72, 0xfbc5, 0xfbee, 0xfbca, 0xfb54,
+ 0xface, 0xfa5f, 0xfa39, 0xfa81, 0xfaf1, 0xfb51,
+ 0xfbb0, 0xfbf1, 0xfc0a, 0xfc2c, 0xfc59, 0xfc8a,
+ 0xfcbc, 0xfcd5, 0xfce2, 0xfcef, 0xfcf5, 0xfcfb,
+ 0xfce7, 0xfca1, 0xfc54, 0xfc03, 0xfbb4, 0xfba9,
+ 0xfbe1, 0xfc26, 0xfc77, 0xfcd4, 0xfd1e, 0xfd42,
+ 0xfd3f, 0xfd28, 0xfd22, 0xfd4e, 0xfd95, 0xfda2,
+ 0xfd62, 0xfd01, 0xfc9f, 0xfc6b, 0xfc83, 0xfcdd,
+ 0xfd75, 0xfe19, 0xfe67, 0xfe50, 0xfe0b, 0xfdd8,
+ 0xfde6, 0xfe15, 0xfe2d, 0xfe27, 0xfe03, 0xfdc3,
+ 0xfd7b, 0xfd3f, 0xfd12, 0xfcea, 0xfcd9, 0xfce8,
+ 0xfcf7, 0xfd10, 0xfd4d, 0xfd83, 0xfda4, 0xfdb6,
+ 0xfd86, 0xfd24, 0xfcd2, 0xfc95, 0xfc82, 0xfca3,
+ 0xfcc3, 0xfcd9, 0xfce8, 0xfcd0, 0xfc9f, 0xfc75,
+ 0xfc59, 0xfc6f, 0xfcca, 0xfd3a, 0xfd7d, 0xfd84,
+ 0xfd5a, 0xfd11, 0xfcc0, 0xfc70, 0xfc03, 0xfb8d,
+ 0xfb4d, 0xfb36, 0xfb2d, 0xfb5e, 0xfbd6, 0xfc71,
+ 0xfd26, 0xfdd0, 0xfe42, 0xfe81, 0xfe83, 0xfe43,
+ 0xfded, 0xfd9d, 0xfd62, 0xfd70, 0xfde1, 0xfe8d,
+ 0xff36, 0xffa7, 0xffdd, 0xffeb, 0xffd2, 0xffc0,
+ 0xffdf, 0x0019, 0x0061, 0x00a2, 0x00cd, 0x010f,
+ 0x0160, 0x0182, 0x0190, 0x01a3, 0x01a0, 0x019d,
+ 0x01b8, 0x0205, 0x02a1, 0x035f, 0x03f0, 0x0435,
+ 0x0423, 0x03d6, 0x0394, 0x0382, 0x0390, 0x0396,
+ 0x0385, 0x036a, 0x033d, 0x0307, 0x02e3, 0x02ce,
+ 0x02d0, 0x02d6, 0x02b3, 0x0287, 0x027c, 0x0286,
+ 0x02ae, 0x02df, 0x02f7, 0x0310, 0x032e, 0x0331,
+ 0x0322, 0x0323, 0x0354, 0x03a2, 0x03d5, 0x03fe,
+ 0x0416, 0x03f4, 0x03d3, 0x03eb, 0x041e, 0x0458,
+ 0x0491, 0x04cf, 0x0521, 0x0567, 0x0594, 0x05b3,
+ 0x05a3, 0x057c, 0x0565, 0x0556, 0x056f, 0x05c3,
+ 0x0624, 0x0689, 0x06e6, 0x070e, 0x06f4, 0x069e,
+ 0x0620, 0x05a3, 0x0534, 0x04e3, 0x04c2, 0x04c3,
+ 0x04df, 0x04ff, 0x04ff, 0x04e9, 0x04c6, 0x047d,
+ 0x0421, 0x03d6, 0x03ab, 0x0394, 0x0377, 0x0355,
+ 0x032d, 0x02ef, 0x02c8, 0x02e9, 0x0322, 0x0344,
+ 0x0351, 0x0344, 0x0329, 0x0308, 0x02c6, 0x026c,
+ 0x0235, 0x0233, 0x0247, 0x0250, 0x024b, 0x0244,
+ 0x0230, 0x01f3, 0x0187, 0x0103, 0x0099, 0x008e,
+ 0x00eb, 0x0167, 0x01d4, 0x0220, 0x0244, 0x0257,
+ 0x024c, 0x0207, 0x01cd, 0x01c3, 0x01b6, 0x01bd,
+ 0x01e5, 0x01f7, 0x0207, 0x0232, 0x0252, 0x025d,
+ 0x025d, 0x0259, 0x0270, 0x02ae, 0x030e, 0x0381,
+ 0x03d6, 0x03f9, 0x03fc, 0x03e2, 0x03a9, 0x034b,
+ 0x02da, 0x0277, 0x021f, 0x01f6, 0x0238, 0x02ae,
+ 0x033c, 0x03fa, 0x0485, 0x0493, 0x045a, 0x03ed,
+ 0x0371, 0x032b, 0x02fe, 0x02d2, 0x02c1, 0x02bb,
+ 0x02d2, 0x031b, 0x0354, 0x0388, 0x03de, 0x0408,
+ 0x03f6, 0x03f1, 0x03e9, 0x03c5, 0x0393, 0x0332,
+ 0x02c1, 0x0292, 0x028a, 0x0287, 0x029c, 0x02bb,
+ 0x02ec, 0x033e, 0x035f, 0x0314, 0x026f, 0x01a1,
+ 0x00ee, 0x007a, 0x0037, 0x0037, 0x0080, 0x0103,
+ 0x01a3, 0x0215, 0x022f, 0x0209, 0x01a0, 0x0125,
+ 0x00e8, 0x00db, 0x00f1, 0x0138, 0x018d, 0x01e8,
+ 0x024a, 0x0279, 0x025b, 0x0200, 0x0187, 0x0122,
+ 0x00df, 0x00ce, 0x00f0, 0x010c, 0x0119, 0x012c,
+ 0x011d, 0x00df, 0x0090, 0x0034, 0xffdf, 0xff92,
+ 0xff35, 0xfed8, 0xfe9d, 0xfe9c, 0xfee0, 0xff53,
+ 0xffd2, 0x0033, 0x0065, 0x007d, 0x0078, 0x005d,
+ 0x0053, 0x003b, 0xffea, 0xff98, 0xff83, 0xffcd,
+ 0x0064, 0x00f0, 0x0155, 0x019c, 0x01a9, 0x019b,
+ 0x0198, 0x0192, 0x019e, 0x01be, 0x01cd, 0x01c4,
+ 0x01a3, 0x018b, 0x01a2, 0x01d7, 0x0221, 0x027f,
+ 0x02cb, 0x0300, 0x030b, 0x02e2, 0x02c4, 0x02d4,
+ 0x0312, 0x0392, 0x0425, 0x04a9, 0x0518, 0x0535,
+ 0x0522, 0x053b, 0x055b, 0x0571, 0x059b, 0x059d,
+ 0x056c, 0x054a, 0x053b, 0x0532, 0x051d, 0x04e0,
+ 0x04a6, 0x04b0, 0x04ff, 0x0572, 0x05d5, 0x060b,
+ 0x061e, 0x061f, 0x0623, 0x062e, 0x063e, 0x065e,
+ 0x0676, 0x0650, 0x05e7, 0x0550, 0x04aa, 0x0431,
+ 0x0400, 0x040e, 0x045d, 0x04d4, 0x052d, 0x0548,
+ 0x0545, 0x052f, 0x04e3, 0x0465, 0x03c6, 0x0306,
+ 0x0268, 0x0212, 0x01c7, 0x0195, 0x01bf, 0x021d,
+ 0x0280, 0x02e1, 0x031c, 0x0339, 0x0346, 0x02fd,
+ 0x025b, 0x01af, 0x0103, 0x0076, 0x0039, 0x002f,
+ 0x0048, 0x0083, 0x0095, 0x008b, 0x00a9, 0x00db,
+ 0x0111, 0x0145, 0x014d, 0x0149, 0x0159, 0x015e,
+ 0x016e, 0x018e, 0x0195, 0x01ab, 0x01d7, 0x01be,
+ 0x016e, 0x0136, 0x012e, 0x0170, 0x01e3, 0x022d,
+ 0x0245, 0x023c, 0x0205, 0x01c5, 0x01a2, 0x018e,
+ 0x0197, 0x01b5, 0x01ad, 0x017a, 0x0147, 0x0118,
+ 0x00f2, 0x00da, 0x00b8, 0x0080, 0x0046, 0x002a,
+ 0x0047, 0x0073, 0x0085, 0x0097, 0x00aa, 0x00b6,
+ 0x00c8, 0x00d2, 0x00fd, 0x0176, 0x01da, 0x020d,
+ 0x025d, 0x02a0, 0x0298, 0x026e, 0x0244, 0x023a,
+ 0x0264, 0x029f, 0x02d4, 0x02e9, 0x02e0, 0x02ee,
+ 0x02f8, 0x02e8, 0x02f7, 0x0313, 0x031f, 0x032d,
+ 0x0322, 0x031f, 0x036f, 0x03f0, 0x0477, 0x04d1,
+ 0x04bf, 0x0459, 0x03a6, 0x02a5, 0x01d3, 0x017f,
+ 0x0193, 0x01f9, 0x024e, 0x0255, 0x0248, 0x0231,
+ 0x01fc, 0x01b2, 0x0143, 0x00dc, 0x00a7, 0x0075,
+ 0x0052, 0x0073, 0x00d1, 0x015e, 0x01f3, 0x024a,
+ 0x0273, 0x028d, 0x028e, 0x0273, 0x022c, 0x01a9,
+ 0x0116, 0x00a3, 0x0060, 0x0040, 0x0023, 0xfffe,
+ 0xffdc, 0xffbc, 0xffa2, 0xff9b, 0xff9b, 0xff94,
+ 0xffad, 0xfff5, 0x0046, 0x00b6, 0x0152, 0x01bd,
+ 0x01c0, 0x017c, 0x0107, 0x0099, 0x0079, 0x0086,
+ 0x007f, 0x0061, 0x003d, 0xfffe, 0xff82, 0xfee6,
+ 0xfe68, 0xfe26, 0xfe3c, 0xfea7, 0xff14, 0xff47,
+ 0xff3e, 0xfef0, 0xfe7f, 0xfe1f, 0xfdc6, 0xfd72,
+ 0xfd3a, 0xfd0f, 0xfce1, 0xfcc9, 0xfcd8, 0xfcfc,
+ 0xfd2d, 0xfd6f, 0xfdae, 0xfdd8, 0xfded, 0xfde3,
+ 0xfdbf, 0xfd9b, 0xfd82, 0xfd86, 0xfda7, 0xfdba,
+ 0xfdb1, 0xfd85, 0xfd31, 0xfcf0, 0xfce0, 0xfcdb,
+ 0xfcf0, 0xfd27, 0xfd4f, 0xfd55, 0xfd34, 0xfcf3,
+ 0xfcbe, 0xfca0, 0xfc91, 0xfcb0, 0xfcf6, 0xfd3f,
+ 0xfd71, 0xfd65, 0xfd22, 0xfce1, 0xfcaa, 0xfc80,
+ 0xfc7a, 0xfc83, 0xfc7a, 0xfc70, 0xfc6d, 0xfc58,
+ 0xfc2e, 0xfc11, 0xfc1a, 0xfc37, 0xfc5e, 0xfc90,
+ 0xfcbc, 0xfccc, 0xfcc0, 0xfc8f, 0xfc38, 0xfbef,
+ 0xfbd8, 0xfbf9, 0xfc5c, 0xfccd, 0xfd14, 0xfd4b,
+ 0xfd6f, 0xfd65, 0xfd50, 0xfd36, 0xfd01, 0xfcca,
+ 0xfca8, 0xfcb1, 0xfcf6, 0xfd59, 0xfdd5, 0xfe51,
+ 0xfe81, 0xfe7c, 0xfe66, 0xfe19, 0xfdbe, 0xfd7e,
+ 0xfd36, 0xfcfc, 0xfcc8, 0xfc76, 0xfc54, 0xfc6b,
+ 0xfc78, 0xfc84, 0xfc7d, 0xfc63, 0xfc76, 0xfc99,
+ 0xfcc5, 0xfd1d, 0xfd47, 0xfd21, 0xfce9, 0xfc80,
+ 0xfbfc, 0xfbb9, 0xfbb5, 0xfbe0, 0xfc31, 0xfc76,
+ 0xfca6, 0xfcb5, 0xfc9a, 0xfc81, 0xfc82, 0xfca2,
+ 0xfce3, 0xfd00, 0xfcd9, 0xfc96, 0xfc64, 0xfc7f,
+ 0xfcdf, 0xfd3f, 0xfd95, 0xfdd8, 0xfe05, 0xfe48,
+ 0xfe90, 0xfeba, 0xfee1, 0xfefb, 0xff05, 0xff1d,
+ 0xff30, 0xff3c, 0xff5e, 0xff75, 0xff71, 0xff53,
+ 0xff0d, 0xfec4, 0xfe99, 0xfe7e, 0xfe7d, 0xfe99,
+ 0xfeb8, 0xfeca, 0xfebe, 0xfe82, 0xfe12, 0xfd8f,
+ 0xfd34, 0xfd04, 0xfcda, 0xfca0, 0xfc4b, 0xfbe4,
+ 0xfb7a, 0xfb12, 0xfacb, 0xfaac, 0xfa95, 0xfa95,
+ 0xfabd, 0xfaee, 0xfb28, 0xfb62, 0xfb6b, 0xfb59,
+ 0xfb5a, 0xfb6b, 0xfb90, 0xfbb4, 0xfbc7, 0xfbe0,
+ 0xfc07, 0xfc45, 0xfcb0, 0xfd2e, 0xfd93, 0xfde6,
+ 0xfe38, 0xfe6e, 0xfe82, 0xfea2, 0xfec1, 0xfecb,
+ 0xfeea, 0xff33, 0xff93, 0x0002, 0x005d, 0x0071,
+ 0x005c, 0x004b, 0x004c, 0x0070, 0x00b0, 0x00f9,
+ 0x013e, 0x0174, 0x01b8, 0x0202, 0x0212, 0x01e0,
+ 0x017e, 0x0106, 0x00c4, 0x00c7, 0x00e2, 0x0111,
+ 0x0147, 0x0153, 0x0140, 0x014b, 0x0179, 0x01b2,
+ 0x01d3, 0x01ac, 0x016f, 0x0162, 0x0178, 0x01b8,
+ 0x0216, 0x025c, 0x0285, 0x0290, 0x0272, 0x0253,
+ 0x027e, 0x02f5, 0x038c, 0x043c, 0x04d1, 0x050f,
+ 0x0523, 0x0526, 0x052b, 0x0554, 0x059a, 0x05f7,
+ 0x063a, 0x0648, 0x063a, 0x0614, 0x05f5, 0x05e7,
+ 0x05dd, 0x05e8, 0x05f3, 0x05f3, 0x05ed, 0x05da,
+ 0x05af, 0x055d, 0x04f6, 0x046e, 0x03e5, 0x039e,
+ 0x0364, 0x0335, 0x033e, 0x0358, 0x0373, 0x035f,
+ 0x030d, 0x0292, 0x01fb, 0x0196, 0x0143, 0x010e,
+ 0x0153, 0x01a4, 0x01e0, 0x01f9, 0x01a6, 0x0172,
+ 0x0181, 0x0187, 0x017b, 0x0111, 0x007c, 0x0013,
+ 0xffd1, 0xffbc, 0xffb0, 0xffd0, 0x0030, 0x00ae,
+ 0x0166, 0x01fd, 0x0245, 0x0296, 0x02b1, 0x027e,
+ 0x0237, 0x01f1, 0x01d0, 0x01e4, 0x0223, 0x0253,
+ 0x0273, 0x02b3, 0x02d2, 0x02d3, 0x02cc, 0x02a9,
+ 0x02ae, 0x02b8, 0x0299, 0x029b, 0x02c8, 0x0313,
+ 0x037c, 0x03f4, 0x0453, 0x049b, 0x0500, 0x050d,
+ 0x0499, 0x041e, 0x0375, 0x02f5, 0x030e, 0x033d,
+ 0x037c, 0x03c9, 0x03d2, 0x03c0, 0x0389, 0x0333,
+ 0x02f5, 0x02cd, 0x02d5, 0x02e3, 0x02f1, 0x0336,
+ 0x0370, 0x039f, 0x03c1, 0x0391, 0x0360, 0x033d,
+ 0x0312, 0x034e, 0x0393, 0x0380, 0x03a7, 0x03cb,
+ 0x037a, 0x030f, 0x02e8, 0x032e, 0x0377, 0x0389,
+ 0x03cd, 0x03e8, 0x03cf, 0x03eb, 0x03ca, 0x0395,
+ 0x0384, 0x0352, 0x035e, 0x0341, 0x02d2, 0x02d7,
+ 0x02f2, 0x0307, 0x0364, 0x037e, 0x0347, 0x02f0,
+ 0x0288, 0x0248, 0x0210, 0x01dc, 0x0190, 0x0110,
+ 0x00e0, 0x00ff, 0x0109, 0x0136, 0x016f, 0x0175,
+ 0x01ab, 0x01e0, 0x0198, 0x0151, 0x0134, 0x00e3,
+ 0x00a2, 0x0080, 0x002b, 0xff9a, 0xff2e, 0xff40,
+ 0xff51, 0xff67, 0xffde, 0x000a, 0xfffd, 0x0024,
+ 0x002e, 0x0029, 0x0041, 0x0064, 0x0083, 0x0068,
+ 0xfff6, 0xff5f, 0xff3a, 0xff7a, 0xffb4, 0xffd8,
+ 0xffa6, 0xff87, 0xff98, 0xff5c, 0xff99, 0x0011,
+ 0x0030, 0x0088, 0x00c9, 0x0125, 0x01ad, 0x01c2,
+ 0x01f5, 0x0203, 0x01c6, 0x01d3, 0x01ab, 0x018a,
+ 0x0171, 0x011c, 0x0142, 0x01d5, 0x0292, 0x0313,
+ 0x0341, 0x0365, 0x02d3, 0x0264, 0x027c, 0x01f6,
+ 0x01b7, 0x01be, 0x01bf, 0x0247, 0x0250, 0x0282,
+ 0x032e, 0x032c, 0x0358, 0x031a, 0x024e, 0x0287,
+ 0x02a4, 0x028d, 0x033d, 0x0390, 0x0372, 0x03aa,
+ 0x03d5, 0x03b9, 0x03d9, 0x041b, 0x0404, 0x0401,
+ 0x0410, 0x043d, 0x04d8, 0x04da, 0x048b, 0x04b0,
+ 0x0491, 0x0486, 0x04a4, 0x045a, 0x040b, 0x03c8,
+ 0x0399, 0x033e, 0x026b, 0x01d3, 0x0165, 0x011c,
+ 0x0185, 0x01e6, 0x01f5, 0x023b, 0x0262, 0x0293,
+ 0x031c, 0x0322, 0x02a4, 0x0262, 0x023a, 0x0229,
+ 0x0214, 0x01ec, 0x0214, 0x0238, 0x0253, 0x0274,
+ 0x0203, 0x0160, 0x00d4, 0x0049, 0xffeb, 0xffcb,
+ 0x005c, 0x00f3, 0x0135, 0x01de, 0x021c, 0x024b,
+ 0x02b4, 0x0217, 0x01c9, 0x0230, 0x022e, 0x0219,
+ 0x01bb, 0x0156, 0x0119, 0x00fb, 0x016b, 0x015b,
+ 0x0144, 0x01c4, 0x01ee, 0x0268, 0x025a, 0x01ab,
+ 0x01c7, 0x014e, 0x00cf, 0x0126, 0x0118, 0x0134,
+ 0x00fd, 0x0068, 0x0061, 0xffd7, 0xff29, 0xfee9,
+ 0xfeb9, 0xfee7, 0xff35, 0xffd7, 0x000d, 0xffb4,
+ 0x0057, 0x00b2, 0x005c, 0x007d, 0x0028, 0xfff4,
+ 0x004c, 0x003c, 0x0051, 0x009b, 0x00cd, 0x0105,
+ 0x014d, 0x01ed, 0x0245, 0x0222, 0x021c, 0x01f1,
+ 0x01d8, 0x0214, 0x0233, 0x021b, 0x01b8, 0x014d,
+ 0x0148, 0x012e, 0x011d, 0x0180, 0x01ab, 0x01ea,
+ 0x027c, 0x024e, 0x0206, 0x0212, 0x0194, 0x0158,
+ 0x0189, 0x016e, 0x011b, 0x00b5, 0x00de, 0x0119,
+ 0x00ee, 0x011a, 0x00cd, 0x008f, 0x013e, 0x015e,
+ 0x0143, 0x017e, 0x01a2, 0x0219, 0x0224, 0x016a,
+ 0x0102, 0x00ec, 0x006e, 0x0047, 0x00fa, 0x00b4,
+ 0x004d, 0x00ef, 0x002a, 0xff78, 0x0000, 0xff98,
+ 0xff79, 0xff53, 0xfedc, 0xffbc, 0x002a, 0x0060,
+ 0x00e4, 0x00b1, 0x0165, 0x01da, 0x014d, 0x0186,
+ 0x014c, 0x00a4, 0x009e, 0x00cc, 0x00cc, 0x0057,
+ 0x007f, 0x00d1, 0x006a, 0x004d, 0xffd0, 0xff4e,
+ 0xff86, 0xff99, 0x0005, 0x0029, 0xfffa, 0x0041,
+ 0x000b, 0x0048, 0x00a1, 0xffe6, 0xffd1, 0xffb8,
+ 0xfee0, 0xfeaa, 0xfe8b, 0xfe56, 0xfe3d, 0xfde5,
+ 0xfde8, 0xfe57, 0xfe88, 0xfe45, 0xfdfe, 0xfdd5,
+ 0xfda1, 0xfd73, 0xfcc6, 0xfc66, 0xfd3b, 0xfdb7,
+ 0xfdd1, 0xfe49, 0xfe0b, 0xfd58, 0xfd27, 0xfcfd,
+ 0xfc56, 0xfbd5, 0xfc40, 0xfcb8, 0xfcb8, 0xfd66,
+ 0xfe68, 0xfe94, 0xfebe, 0xff12, 0xfec2, 0xfec4,
+ 0xfedb, 0xfdf0, 0xfd33, 0xfcda, 0xfc9b, 0xfcca,
+ 0xfcf4, 0xfd95, 0xfe1c, 0xfe07, 0xfe8d, 0xfe81,
+ 0xfe16, 0xfe51, 0xfd79, 0xfd01, 0xfdc0, 0xfd97,
+ 0xfd36, 0xfd02, 0xfd2b, 0xfde1, 0xfd74, 0xfd1d,
+ 0xfdb2, 0xfd82, 0xfdba, 0xfec5, 0xfed6, 0xfe6b,
+ 0xfea8, 0xff4f, 0xff4b, 0xfe45, 0xfe02, 0xfe97,
+ 0xfe15, 0xfd3f, 0xfcf9, 0xfcb9, 0xfce2, 0xfcc7,
+ 0xfc73, 0xfcf2, 0xfd69, 0xfe1c, 0xfeca, 0xfea6,
+ 0xff06, 0xff56, 0xff86, 0x0004, 0xff82, 0xff9e,
+ 0x002f, 0xffe9, 0x0025, 0xff74, 0xfe7b, 0xfeba,
+ 0xfe0d, 0xfdcc, 0xfe55, 0xfdf5, 0xfdfe, 0xfe72,
+ 0xfedc, 0xff46, 0xff81, 0xff93, 0xfef7, 0xfecd,
+ 0xfea6, 0xfd90, 0xfd66, 0xfd59, 0xfd0d, 0xfd31,
+ 0xfc6a, 0xfbc8, 0xfbf7, 0xfc15, 0xfbd5, 0xfb70,
+ 0xfbea, 0xfbe3, 0xfba5, 0xfc5f, 0xfc1f, 0xfc25,
+ 0xfc77, 0xfbe0, 0xfbd5, 0xfb46, 0xfb6a, 0xfc53,
+ 0xfc0e, 0xfcbb, 0xfc75, 0xfbd5, 0xfd07, 0xfc45,
+ 0xfc37, 0xfd1a, 0xfc41, 0xfd5e, 0xfd9d, 0xfcfc,
+ 0xfea8, 0xfe5c, 0xfe0e, 0xff16, 0xfe85, 0xfe58,
+ 0xfe3c, 0xfe48, 0xfecd, 0xfe7f, 0xfef5, 0xff2e,
+ 0xff05, 0xff5d, 0xfeb2, 0xfe7c, 0xfe8a, 0xfe2d,
+ 0xfe5d, 0xfe17, 0xfe72, 0xfec0, 0xfe2a, 0xfedd,
+ 0xfed7, 0xfe17, 0xfe9a, 0xfe40, 0xfd94, 0xfe21,
+ 0xfead, 0xfeea, 0xff3f, 0xff09, 0xfe4f, 0xfe21,
+ 0xfd86, 0xfcc5, 0xfd47, 0xfd5f, 0xfd58, 0xfd94,
+ 0xfd20, 0xfd12, 0xfd18, 0xfdc0, 0xfe08, 0xfcaa,
+ 0xfd57, 0xfdec, 0xfd07, 0xfe51, 0xff45, 0xfff5,
+ 0x00f3, 0x0056, 0x0080, 0xffdf, 0xfeae, 0xff37,
+ 0xfe88, 0xfe57, 0xff3d, 0xff1b, 0xff4a, 0xff30,
+ 0xff5b, 0xff65, 0xfed7, 0xffcc, 0xffc3, 0xff74,
+ 0x008f, 0x003c, 0x0069, 0x0166, 0x018f, 0x01fd,
+ 0x01ea, 0x01b6, 0x01b7, 0x020a, 0x0226, 0x0116,
+ 0x01fb, 0x02c6, 0x0157, 0x01a0, 0x01d5, 0x01bc,
+ 0x02eb, 0x0324, 0x031d, 0x02e6, 0x0325, 0x0376,
+ 0x02e0, 0x0447, 0x0441, 0x031f, 0x0483, 0x036b,
+ 0x02e8, 0x0474, 0x03bd, 0x0495, 0x04ce, 0x041d,
+ 0x0583, 0x04d2, 0x050e, 0x05e3, 0x04a7, 0x059d,
+ 0x04e4, 0x0359, 0x0474, 0x0376, 0x033d, 0x042d,
+ 0x034d, 0x0387, 0x0371, 0x02ed, 0x02f0, 0x029b,
+ 0x0329, 0x0236, 0x013a, 0x02b2, 0x0250, 0x01a9,
+ 0x02a3, 0x021b, 0x0168, 0x0183, 0x0107, 0x00ed,
+ 0x01cc, 0x0205, 0x016e, 0x019e, 0x01da, 0x0186,
+ 0x0178, 0x01cd, 0x029e, 0x02c2, 0x026d, 0x026a,
+ 0x0101, 0xffde, 0x00f4, 0x0262, 0x02a8, 0x0179,
+ 0x018f, 0x02a3, 0x00e6, 0xffdc, 0x0128, 0x0102,
+ 0x0112, 0x01ec, 0x0187, 0x0191, 0x026c, 0x029f,
+ 0x028a, 0x02da, 0x0331, 0x02fe, 0x02b7, 0x02c9,
+ 0x0272, 0x01d8, 0x0207, 0x020c, 0x012f, 0x0111,
+ 0x01c9, 0x01ac, 0x0138, 0x0208, 0x02d8, 0x0226,
+ 0x0222, 0x02ab, 0x0203, 0x021a, 0x0209, 0x00e1,
+ 0x0189, 0x0271, 0x0178, 0xffe7, 0xff25, 0x00bd,
+ 0x0298, 0x0279, 0x01d6, 0x013d, 0x0191, 0x0269,
+ 0x01e4, 0x01d4, 0x036c, 0x0455, 0x035a, 0x023e,
+ 0x01db, 0x018e, 0x02b4, 0x04a4, 0x0471, 0x0296,
+ 0x024b, 0x047f, 0x041a, 0x01f0, 0x0438, 0x0525,
+ 0x027e, 0x023c, 0x01cd, 0x016e, 0x023c, 0x0149,
+ 0x012c, 0x0124, 0x00ad, 0x01f6, 0x0234, 0x0293,
+ 0x02be, 0x00a3, 0x0037, 0x0035, 0xffee, 0x0208,
+ 0x02f6, 0x01ff, 0x021b, 0x0330, 0x0346, 0x0212,
+ 0x020c, 0x023b, 0x0222, 0x0336, 0x02aa, 0x013d,
+ 0x01f3, 0x0367, 0x03f3, 0x02d7, 0x0181, 0x01d6,
+ 0x02de, 0x023a, 0x0168, 0x0430, 0x0544, 0x039f,
+ 0x050a, 0x02c4, 0xfee6, 0x0157, 0x0155, 0xffb8,
+ 0x0186, 0x01c3, 0x011d, 0xffc2, 0xff6b, 0x00c4,
+ 0xfffa, 0x021e, 0x049f, 0x018f, 0xffa9, 0x00d6,
+ 0x02c7, 0x0168, 0xfe88, 0x00fe, 0xff36, 0xfb50,
+ 0xfff5, 0x00bf, 0xfe8c, 0x0144, 0x00f4, 0x008a,
+ 0x01ee, 0x0073, 0x003b, 0x0287, 0x041a, 0x028b,
+ 0x010b, 0x01df, 0xff97, 0xff8c, 0x04e0, 0x04c6,
+ 0x0230, 0x03c2, 0x042d, 0x03c4, 0x0565, 0x053c,
+ 0x0363, 0x043c, 0x052d, 0x045e, 0x05b3, 0x0748,
+ 0x07cc, 0x0862, 0x072c, 0x06fc, 0x06d8, 0x0446,
+ 0x052b, 0x06f5, 0x04ad, 0x03f8, 0x06a7, 0x07f0,
+ 0x070a, 0x0983, 0x0d22, 0x09f9, 0x06ca, 0x0852,
+ 0x0862, 0x0821, 0x08bb, 0x0871, 0x06aa, 0x03d2,
+ 0x044d, 0x046b, 0x0215, 0x03a7, 0x0460, 0x045d,
+ 0x0776, 0x04fc, 0x025c, 0x056d, 0x025e, 0xfde8,
+ 0x01e2, 0x047b, 0x0162, 0x00c1, 0x0276, 0x00bd,
+ 0xff4d, 0x0267, 0x0474, 0x023b, 0x0047, 0x01cd,
+ 0x02be, 0x0045, 0x0087, 0x034e, 0x0281, 0x00f3,
+ 0xffc0, 0xfec1, 0x0184, 0x0279, 0xffb9, 0x011d,
+ 0x0226, 0xfdf0, 0xfded, 0x016f, 0xff7d, 0xfdc5,
+ 0x011a, 0x0269, 0xff14, 0xfc35, 0xff15, 0x0348,
+ 0x00b7, 0xfe83, 0x017f, 0x0110, 0xff5a, 0x0184,
+ 0x0263, 0x0141, 0x007c, 0x010c, 0x038b, 0x01c1,
+ 0xfc90, 0xff54, 0x039d, 0xff4e, 0xff87, 0x0597,
+ 0x0294, 0xff8d, 0x0451, 0x0413, 0x01a2, 0x041f,
+ 0x0374, 0x013a, 0x02df, 0x02df, 0x017b, 0x01d4,
+ 0x004e, 0xfe82, 0x002e, 0x01e5, 0x01cb, 0x019f,
+ 0x0181, 0x0101, 0xff9a, 0xff0e, 0x0148, 0x030e,
+ 0x02d9, 0x025c, 0x0110, 0x0045, 0x00dd, 0x005a,
+ 0x0014, 0x00c5, 0xff79, 0xfefe, 0x01d5, 0x03c9,
+ 0x0454, 0x0469, 0x020d, 0x006b, 0x0171, 0x018d,
+ 0x021c, 0x0398, 0x024b, 0x01a7, 0x03f5, 0x0358,
+ 0x0064, 0x0087, 0x021d, 0x0257, 0x024c, 0x0310,
+ 0x0450, 0x03ef, 0x02c4, 0x050e, 0x0732, 0x0470,
+ 0x034c, 0x0551, 0x038a, 0x021d, 0x0597, 0x05fa,
+ 0x030b, 0x04a9, 0x0718, 0x05bd, 0x0512, 0x04f6,
+ 0x039f, 0x048b, 0x059f, 0x0421, 0x05ad, 0x0952,
+ 0x07b0, 0x04aa, 0x059f, 0x04d7, 0x0188, 0x0332,
+ 0x07bc, 0x0796, 0x04db, 0x04a3, 0x0550, 0x03dc,
+ 0x0214, 0x03d4, 0x0765, 0x0661, 0x021e, 0x0232,
+ 0x0449, 0x02ea, 0x03f7, 0x086d, 0x0626, 0x008c,
+ 0x0276, 0x056b, 0x02bf, 0x01ed, 0x0381, 0x01f9,
+ 0x0122, 0x0273, 0x01cd, 0x0128, 0x014f, 0xff62,
+ 0xfe66, 0xffa2, 0xfed0, 0xfce8, 0xfc7b, 0xfc4b,
+ 0xfd39, 0xff18, 0xfe0c, 0xfad5, 0xf97b, 0xfa68,
+ 0xfb8a, 0xfadb, 0xf974, 0xfa53, 0xfb07, 0xf903,
+ 0xf92b, 0xfc7e, 0xfcf4, 0xfb54, 0xfba8, 0xfb10,
+ 0xf8fc, 0xfa26, 0xfcc1, 0xfc60, 0xfbcd, 0xfd0f,
+ 0xfcf8, 0xfc51, 0xfdcc, 0xfe3b, 0xfc5a, 0xfcfd,
+ 0xffd3, 0xffe0, 0xfeba, 0xffaf, 0x001c, 0xff35,
+ 0x00a3, 0x0374, 0x030f, 0x0098, 0x00e5, 0x02c6,
+ 0x0133, 0xfe52, 0xffa5, 0x01cf, 0xffcc, 0xfdf7,
+ 0xffb1, 0x00d2, 0x0036, 0x0004, 0xff41, 0xfe44,
+ 0xff45, 0x00ab, 0x0098, 0x0056, 0x005e, 0x004f,
+ 0x00ee, 0x0211, 0x025a, 0x0136, 0xffa6, 0xffd9,
+ 0x017b, 0x00b1, 0xfde1, 0xfded, 0x000e, 0x00dd,
+ 0x01e2, 0x01e4, 0xfda5, 0xfb2c, 0xfea9, 0xffed,
+ 0xfcef, 0xfda2, 0x0062, 0xff6d, 0xff5c, 0x0211,
+ 0x010c, 0xfe38, 0x00a0, 0x03b9, 0x0181, 0x0017,
+ 0x02e5, 0x0275, 0xfe86, 0xff42, 0x0241, 0x003c,
+ 0xfd86, 0xfef6, 0xff87, 0xfd81, 0xfd1f, 0xfe26,
+ 0xff3f, 0x00dc, 0x00bb, 0xffca, 0x01a0, 0x025c,
+ 0xffb9, 0xff70, 0x0100, 0x00f6, 0x0231, 0x02fb,
+ 0x009c, 0x0046, 0x00f4, 0xfe24, 0xfcf0, 0xfe59,
+ 0xfe38, 0xfffc, 0x024f, 0xff2a, 0xfc93, 0xff55,
+ 0x00cd, 0xff92, 0xff5e, 0xff16, 0xfe87, 0xff85,
+ 0x00c2, 0x0111, 0x0091, 0xfef3, 0xfeb1, 0x01c6,
+ 0x0391, 0x01d7, 0x00cd, 0xff53, 0xfc1e, 0xfd4e,
+ 0x0045, 0xfe42, 0xfe3a, 0x0197, 0xfe7e, 0xfa27,
+ 0xfd10, 0xfebc, 0xfb66, 0xfa51, 0xfb45, 0xfb1e,
+ 0xfbe2, 0xfce0, 0xfb83, 0xfa49, 0xfb8c, 0xfc36,
+ 0xfb64, 0xfbf7, 0xfc1b, 0xfa11, 0xf98d, 0xfa85,
+ 0xfa4d, 0xfa29, 0xfa4f, 0xfa60, 0xfb22, 0xfb12,
+ 0xfadb, 0xfbd1, 0xfae6, 0xf91b, 0xfa13, 0xfb66,
+ 0xfbb7, 0xfca8, 0xfd3e, 0xfcf3, 0xfc0f, 0xfb61,
+ 0xfd29, 0xfef0, 0xfd63, 0xfc86, 0xfe79, 0xfebe,
+ 0xfc8e, 0xfbee, 0xfd01, 0xfcbd, 0xfc9c, 0xfe69,
+ 0xfde3, 0xfb6a, 0xfc4e, 0xfd10, 0xfada, 0xfb29,
+ 0xfd45, 0xfd88, 0xfe37, 0xff03, 0xfe92, 0xfe48,
+ 0xfda3, 0xfd65, 0xfe2b, 0xfd52, 0xfc52, 0xfdcf,
+ 0x001a, 0x018c, 0x00d7, 0xff3b, 0xff14, 0xfd52,
+ 0xfb65, 0xfe9e, 0x014e, 0xffd0, 0xff66, 0xfefa,
+ 0xfe55, 0x008d, 0x0087, 0xfe82, 0x0000, 0xff69,
+ 0xfc50, 0xfee0, 0x023f, 0x00f5, 0x0112, 0x0205,
+ 0x0017, 0x00a6, 0x03bc, 0x02f8, 0x0139, 0x0232,
+ 0x0230, 0x01eb, 0x033a, 0x0296, 0x01df, 0x037c,
+ 0x038a, 0x03e8, 0x059b, 0x036c, 0x0232, 0x0571,
+ 0x0514, 0x02af, 0x032c, 0x021f, 0x00b5, 0x00b1,
+ 0xffa0, 0x019a, 0x0466, 0x01db, 0x004f, 0x00c8,
+ 0xfebc, 0xff89, 0x0116, 0xfdab, 0xfc73, 0xfe40,
+ 0xfe2d, 0x0032, 0x024c, 0xff8b, 0xfdb3, 0xff3e,
+ 0xffc9, 0xfe93, 0xfdec, 0xfff7, 0x01f6, 0xffed,
+ 0xfe2d, 0xffd8, 0x00ee, 0x00da, 0x0074, 0xfebf,
+ 0xfe61, 0x0034, 0x004c, 0xfe8f, 0xfe6f, 0xfff0,
+ 0x00c7, 0x00d5, 0x00ce, 0x00d4, 0x01c0, 0x01e8,
+ 0xffdc, 0x0018, 0x0208, 0x001f, 0xff2a, 0x0172,
+ 0xffe6, 0xfe58, 0x01b1, 0x02eb, 0x0191, 0x00b0,
+ 0xfe0f, 0xfdf0, 0x013d, 0x00b7, 0xff14, 0x0041,
+ 0xffc8, 0xfe20, 0xfda6, 0xfdd9, 0x003f, 0x01c9,
+ 0xff7c, 0xff2e, 0x0203, 0x0291, 0x01a8, 0x0181,
+ 0x00d4, 0x0049, 0x007e, 0x002e, 0x001f, 0x0191,
+ 0x02f1, 0x028d, 0x014d, 0x00bc, 0x00fe, 0x012b,
+ 0x00a9, 0x0099, 0x020a, 0x0347, 0x0282, 0x0126,
+ 0x01c5, 0x0378, 0x0306, 0x01b0, 0x01f1, 0x014f,
+ 0x00ba, 0x038c, 0x0525, 0x039e, 0x034f, 0x029b,
+ 0x01a4, 0x02d4, 0x012d, 0xfeca, 0x014f, 0x0129,
+ 0xfdb5, 0xff2c, 0x007d, 0xfef4, 0x008a, 0x01b3,
+ 0xffa1, 0xfe20, 0xfdae, 0xff67, 0x00d8, 0xfe6d,
+ 0xff17, 0x02a3, 0x0043, 0xfd9a, 0xffcb, 0x00b0,
+ 0x00d7, 0x01f9, 0x0209, 0x025f, 0x0077, 0xfd28,
+ 0xffbe, 0x020f, 0xfe42, 0xfe87, 0x02f0, 0x0218,
+ 0xffa3, 0xffe5, 0xffed, 0x009d, 0x02f9, 0x0403,
+ 0x0260, 0x006c, 0x016b, 0x03cd, 0x03af, 0x029f,
+ 0x02fd, 0x036c, 0x02c4, 0x00e1, 0x002c, 0x0271,
+ 0x02db, 0x00b3, 0x01d8, 0x02b6, 0xff29, 0xfee6,
+ 0x024f, 0x0178, 0xff84, 0x0056, 0xfffe, 0xff80,
+ 0x0002, 0xfead, 0xffb9, 0x0491, 0x04fa, 0x01d0,
+ 0x01ff, 0x0250, 0x00bf, 0x01e2, 0x03dd, 0x02c6,
+ 0x0124, 0x00b1, 0x0095, 0x014d, 0x019c, 0x003d,
+ 0xffc3, 0x004d, 0xff1d, 0xfe95, 0x0104, 0x02d9,
+ 0x0351, 0x03ed, 0x020f, 0xff0c, 0x0023, 0x02f6,
+ 0x02a0, 0x00e8, 0x011d, 0x0249, 0x0132, 0xff7f,
+ 0x01d4, 0x0460, 0x022b, 0x007e, 0x0172, 0x0113,
+ 0x0189, 0x0334, 0x0254, 0x0153, 0x012c, 0x0021,
+ 0x01ab, 0x03e6, 0x0178, 0xff8b, 0x0103, 0x0085,
+ 0xffc3, 0x01ee, 0x02b9, 0x0158, 0x0110, 0x0119,
+ 0x00dd, 0x01f3, 0x02ce, 0x0165, 0x0066, 0x0153,
+ 0x0084, 0xfeb1, 0xffd8, 0x004d, 0xfea1, 0x00c1,
+ 0x0379, 0x017c, 0x00b2, 0x01b0, 0xffa7, 0xfed9,
+ 0x005c, 0x002c, 0x0083, 0x007e, 0xfe3d, 0xfef7,
+ 0x0132, 0x0155, 0x03a5, 0x04bb, 0x00c7, 0x0080,
+ 0x038a, 0x01f8, 0x0069, 0x0223, 0x023d, 0x00bc,
+ 0xff71, 0xff97, 0x0214, 0x0277, 0x007d, 0x0111,
+ 0x0180, 0x0032, 0x00f2, 0x01dc, 0x027d, 0x0487,
+ 0x02bd, 0xfec2, 0x007f, 0x02ea, 0x00f5, 0x012b,
+ 0x03cc, 0x0342, 0x019a, 0x027e, 0x0486, 0x0485,
+ 0x0214, 0x00f0, 0x01f7, 0x0195, 0x00a1, 0x0289,
+ 0x0552, 0x04f2, 0x0241, 0x0192, 0x021d, 0xff88,
+ 0xfe08, 0x0229, 0x0438, 0x01cd, 0x02cc, 0x0469,
+ 0x014a, 0xfff6, 0x01de, 0x0173, 0x00d8, 0x01bc,
+ 0x007e, 0xfebe, 0xffc6, 0x0176, 0x012b, 0xffe2,
+ 0x002c, 0x0179, 0x015c, 0x01af, 0x03ea, 0x0523,
+ 0x0524, 0x04ef, 0x03a4, 0x0392, 0x047d, 0x0231,
+ 0x0009, 0x016d, 0x0192, 0x00e8, 0x02ce, 0x03a9,
+ 0x0349, 0x048e, 0x0502, 0x04c2, 0x0506, 0x02df,
+ 0x00cb, 0x01c5, 0x01c2, 0x018a, 0x0367, 0x02e8,
+ 0x013a, 0x021b, 0x0150, 0xfefa, 0xff91, 0x0010,
+ 0xff16, 0xffb2, 0x0001, 0xfeda, 0xfe83, 0xfe73,
+ 0xfe43, 0xfe2a, 0xfd16, 0xfc83, 0xfcc8, 0xfbb2,
+ 0xfba5, 0xfdfb, 0xfe65, 0xfd5d, 0xfee5, 0x01aa,
+ 0x0397, 0x0450, 0x02b1, 0x00b2, 0x0142, 0x01e3,
+ 0x0066, 0xffa5, 0x008f, 0x00f7, 0x012f, 0x021c,
+ 0x02e0, 0x03bc, 0x03ec, 0x01fe, 0x014a, 0x029b,
+ 0x0031, 0xfc6b, 0xfe6b, 0x01af, 0x0194, 0x029e,
+ 0x044d, 0x0328, 0x01a5, 0x0065, 0xfefa, 0xff36,
+ 0xfe76, 0xfc06, 0xfd0a, 0xfff4, 0x002a, 0x002a,
+ 0x0140, 0x00cd, 0xff31, 0xfe25, 0xfe92, 0x0041,
+ 0x00e0, 0x0086, 0x01dd, 0x0365, 0x023c, 0x0146,
+ 0x036b, 0x03e5, 0xffe8, 0xfee4, 0x02ef, 0x03ab,
+ 0x01e2, 0x03dd, 0x0510, 0x0318, 0x02d5, 0x02d4,
+ 0x01f9, 0x02df, 0x0287, 0x00f6, 0x0210, 0x02f2,
+ 0x0339, 0x057f, 0x0577, 0x0342, 0x0358, 0x0279,
+ 0x004e, 0x0115, 0x0274, 0x0292, 0x01ad, 0xfebe,
+ 0xfe58, 0x0185, 0x01c9, 0x0167, 0x0343, 0x01b5,
+ 0xffb6, 0x0285, 0x03b8, 0x019a, 0x017b, 0x0208,
+ 0x01ae, 0x0245, 0x02e9, 0x0214, 0x0042, 0x0062,
+ 0x0390, 0x0421, 0x011b, 0x00ed, 0x0194, 0xff7f,
+ 0x002b, 0x02a6, 0x00dd, 0xff29, 0x010f, 0x015b,
+ 0xff5b, 0xff4b, 0x0051, 0xfeeb, 0xfc98, 0xfd46,
+ 0xff20, 0xfe88, 0xfd86, 0xfdb8, 0xfdf6, 0xfeae,
+ 0xfe41, 0xfbfc, 0xfc37, 0xfdb8, 0xfcb8, 0xfd4b,
+ 0xff45, 0xfd99, 0xfca3, 0xfea2, 0xfd97, 0xfc21,
+ 0xfe75, 0xfe6a, 0xfbda, 0xfdb2, 0x007b, 0xfee5,
+ 0xfddc, 0xffc3, 0xffda, 0xfe7e, 0xff2c, 0xffc4,
+ 0xfec9, 0xfef8, 0xffb1, 0xfeb7, 0xfda2, 0xfd12,
+ 0xfbfe, 0xfb7d, 0xfb73, 0xfac3, 0xfadc, 0xfbda,
+ 0xfbc6, 0xfb37, 0xfbaf, 0xfc81, 0xfc63, 0xfb90,
+ 0xfb49, 0xfb4e, 0xfafb, 0xfb9d, 0xfd04, 0xfd6e,
+ 0xfd35, 0xfca2, 0xfc98, 0xfec7, 0xff51, 0xfbc6,
+ 0xfa8f, 0xfcb5, 0xfc55, 0xfb81, 0xfd93, 0xfe9e,
+ 0xfd43, 0xfc6b, 0xfd56, 0xfedd, 0xfe98, 0xfde9,
+ 0xff8f, 0xffde, 0xfdac, 0xfd9c, 0xfe03, 0xfd14,
+ 0xfec5, 0x0091, 0xff30, 0xfee8, 0xff1a, 0xfd51,
+ 0xfd8a, 0xfe24, 0xfbe2, 0xfbe3, 0xfd40, 0xfad7,
+ 0xfa39, 0xfd98, 0xfde3, 0xfc57, 0xfd31, 0xfd3c,
+ 0xfc95, 0xfdc4, 0xfdd0, 0xfc99, 0xfda7, 0xfef7,
+ 0xfdc4, 0xfc97, 0xfd6a, 0xfedb, 0xffd0, 0x0060,
+ 0x0088, 0xffda, 0xfe93, 0xfe58, 0xff6b, 0xff9c,
+ 0xff39, 0x0007, 0xfff0, 0xff0c, 0x00fd, 0x0257,
+ 0xffa7, 0xff1c, 0x01c9, 0x018d, 0x0006, 0x0043,
+ 0x004c, 0x0113, 0x020f, 0x008a, 0xfff3, 0x00fa,
+ 0xff96, 0xff20, 0x0177, 0x0149, 0x003d, 0x014d,
+ 0x007f, 0xff97, 0x0107, 0xffde, 0xfe6c, 0x0092,
+ 0x0011, 0xfe1a, 0x0096, 0x01ba, 0x0004, 0x00d1,
+ 0x00a1, 0xff25, 0x00e4, 0x00f6, 0xfe6f, 0xff9d,
+ 0x00b7, 0xfe07, 0xfd57, 0xff10, 0xfef6, 0xfe66,
+ 0xff33, 0x0025, 0x0049, 0xff91, 0xff12, 0xffb5,
+ 0x0009, 0xff58, 0xff9d, 0x00ea, 0x00eb, 0x0041,
+ 0x0084, 0x005b, 0xff8e, 0xff6f, 0xff75, 0xff92,
+ 0xffbc, 0xfef2, 0xff46, 0x0137, 0x005c, 0xfda1,
+ 0xfe4d, 0x00d9, 0x0164, 0x00a7, 0x005e, 0x00df,
+ 0x00b8, 0xff12, 0xfee8, 0x00cd, 0x00ff, 0xfff3,
+ 0x0031, 0x0063, 0x0016, 0x0048, 0x0045, 0x007a,
+ 0x0155, 0x0165, 0x013d, 0x01bc, 0x010d, 0xff79,
+ 0xff5b, 0xff5e, 0xfe0c, 0xfdb6, 0xfe55, 0xfda4,
+ 0xfd2b, 0xfdca, 0xfdaa, 0xfd89, 0xfd86, 0xfcc8,
+ 0xfde8, 0x0001, 0xff3a, 0xfdde, 0xfe16, 0xfe19,
+ 0xfe51, 0xfeb8, 0xfe9f, 0xfefa, 0xfee3, 0xfece,
+ 0xffe9, 0xff38, 0xfdd1, 0xff6c, 0x0073, 0xff36,
+ 0xff41, 0xff90, 0xff0a, 0xff79, 0xff8e, 0xfed9,
+ 0xffb0, 0x013c, 0x0100, 0xff6d, 0xfefa, 0x0008,
+ 0xfff4, 0xfe8d, 0xfe8d, 0xff5d, 0xff61, 0xfff2,
+ 0x00d0, 0x00ad, 0x00dd, 0x0113, 0x0023, 0x004f,
+ 0x013f, 0xffea, 0xfe2a, 0xfe0c, 0xfe36, 0xfed0,
+ 0xff4a, 0xfede, 0xff7c, 0xfffd, 0xfef1, 0xff4d,
+ 0x0091, 0x0090, 0x0116, 0x01b3, 0x00e5, 0x007a,
+ 0x00c3, 0x00c6, 0x00a2, 0x002e, 0x0040, 0x0167,
+ 0x0201, 0x0125, 0xfff5, 0x000b, 0x00eb, 0x008b,
+ 0xffe8, 0x0080, 0x00cf, 0x00f1, 0x01e6, 0x0206,
+ 0x0145, 0x0154, 0x01bb, 0x01da, 0x022c, 0x024f,
+ 0x01b2, 0x012c, 0x018b, 0x01b9, 0x0116, 0x011c,
+ 0x01ba, 0x013a, 0x0076, 0x00c8, 0x00b6, 0x003d,
+ 0x0163, 0x0252, 0x012b, 0x0096, 0x0090, 0xff7b,
+ 0xff79, 0xffe2, 0xff40, 0x0003, 0x0051, 0xfe83,
+ 0xff03, 0x00c3, 0x009d, 0x010f, 0x0162, 0x004c,
+ 0x005e, 0x0045, 0xfeeb, 0xfeeb, 0x0005, 0x00d1,
+ 0x00f1, 0x003b, 0xffe9, 0x0016, 0x0036, 0x0091,
+ 0x008e, 0x0081, 0x00a2, 0xfffa, 0xffee, 0x00ae,
+ 0x00b9, 0x013a, 0x01e5, 0x01d2, 0x0248, 0x0225,
+ 0x014c, 0x01a2, 0x01e2, 0x01e8, 0x0256, 0x01c2,
+ 0x0165, 0x0198, 0x00af, 0x0042, 0x00d3, 0x017e,
+ 0x0271, 0x01fd, 0x00f9, 0x0157, 0x00dd, 0x0038,
+ 0x0109, 0x00af, 0xfff4, 0x00ac, 0x008f, 0xff9a,
+ 0xff95, 0x0010, 0x0060, 0x008f, 0x00e1, 0x00e2,
+ 0x00ee, 0x01cf, 0x0192, 0x0094, 0x013b, 0x0143,
+ 0x0068, 0x00f4, 0x00ed, 0x00b2, 0x01af, 0x01b1,
+ 0x01d8, 0x028f, 0x01cd, 0x01ae, 0x01d1, 0x011d,
+ 0x0258, 0x02d1, 0x013c, 0x021a, 0x02e3, 0x01d7,
+ 0x02f7, 0x03b8, 0x0241, 0x01f5, 0x018e, 0x006d,
+ 0x00ee, 0x015d, 0x0094, 0x0068, 0x00ae, 0x0065,
+ 0x0015, 0x0027, 0x0055, 0x0120, 0x0248, 0x0212,
+ 0x01c9, 0x02e1, 0x027a, 0x00cc, 0x00e7, 0x0162,
+ 0x0143, 0x019a, 0x015d, 0x007c, 0xfff7, 0xffc1,
+ 0x0001, 0x002a, 0x000e, 0x000c, 0xff1f, 0xfe2b,
+ 0xfecb, 0xff88, 0xfff2, 0x00a4, 0x00cb, 0x00b5,
+ 0x0100, 0x016d, 0x01b7, 0x0115, 0x00a0, 0x01b7,
+ 0x0216, 0x012f, 0x013b, 0x01a2, 0x01ba, 0x0247,
+ 0x0247, 0x01b0, 0x01a6, 0x0149, 0x00b0, 0x0126,
+ 0x0170, 0x00ea, 0x00d2, 0x00a0, 0x0033, 0x004d,
+ 0xffdc, 0xffc3, 0x010b, 0x0109, 0x007a, 0x0168,
+ 0x0167, 0x0178, 0x02d9, 0x0206, 0x00c3, 0x010a,
+ 0xff98, 0xfed6, 0x0057, 0xffc3, 0xff01, 0x0040,
+ 0x0010, 0xff4e, 0xffd9, 0xfff6, 0xff7a, 0xff3b,
+ 0xff8f, 0x0024, 0x00c8, 0x0237, 0x0298, 0x01be,
+ 0x032a, 0x0431, 0x0231, 0x0167, 0x0179, 0x007f,
+ 0x00cd, 0x00d4, 0xffec, 0x00e1, 0x01df, 0x01eb,
+ 0x02ec, 0x038b, 0x0359, 0x038f, 0x035c, 0x0270,
+ 0x01a1, 0x019a, 0x01d7, 0x0130, 0x00d8, 0x0177,
+ 0x0185, 0x0192, 0x022e, 0x01f5, 0x0106, 0x007a,
+ 0x00a3, 0x00be, 0x000d, 0xff97, 0xffc2, 0x0046,
+ 0x016b, 0x0166, 0x000c, 0xfffe, 0x0022, 0xff6a,
+ 0xff78, 0xff3f, 0xfe86, 0xfeeb, 0xff40, 0xff0c,
+ 0xff4d, 0xffe2, 0x00bc, 0x0128, 0x00d6, 0x00db,
+ 0x00ea, 0x00b4, 0x007b, 0xffff, 0xffe6, 0xffe4,
+ 0xff95, 0x002f, 0x00b9, 0x00b8, 0x0178, 0x01b0,
+ 0x01c1, 0x02b5, 0x0220, 0x0137, 0x01c6, 0x017f,
+ 0x0159, 0x01c4, 0x009c, 0xfff9, 0x0022, 0xff56,
+ 0xff9d, 0x0037, 0xffd4, 0x0054, 0x0068, 0x0000,
+ 0x00f9, 0x00fc, 0x005e, 0x010e, 0x00d6, 0x0035,
+ 0x006f, 0x0059, 0x011f, 0x01a1, 0x0010, 0xffab,
+ 0x0006, 0xfeb3, 0xfe65, 0xfefb, 0xfe50, 0xfe23,
+ 0xfe49, 0xfe0d, 0xff0d, 0xffc3, 0xfee3, 0xfecc,
+ 0xff74, 0xff38, 0xff13, 0xffba, 0x001b, 0xffc3,
+ 0xff82, 0x0002, 0x0091, 0x0079, 0x004e, 0x0069,
+ 0x007c, 0x00bf, 0x0122, 0x00f3, 0x0085, 0x0090,
+ 0x00c5, 0x00fd, 0x013d, 0x00e2, 0x0028, 0x000b,
+ 0x0066, 0x00cd, 0x0122, 0x0124, 0x014e, 0x01c7,
+ 0x0190, 0x014c, 0x022d, 0x02b2, 0x01df, 0x011c,
+ 0x00b7, 0x006b, 0x00af, 0x00e2, 0x00e2, 0x014f,
+ 0x00e5, 0xffb6, 0xffee, 0x008f, 0xffda, 0xff18,
+ 0xff0a, 0xff37, 0xff62, 0xff04, 0xfedf, 0xff87,
+ 0xff83, 0xff09, 0xff4d, 0xff85, 0xffda, 0x00a4,
+ 0x007d, 0xffce, 0xffbe, 0xff79, 0xff15, 0xff30,
+ 0xff39, 0xff93, 0x0067, 0x0083, 0x0039, 0x008d,
+ 0x00ce, 0x00c3, 0x0118, 0x0131, 0x00ac, 0x007c,
+ 0x0061, 0xffc2, 0xffc8, 0x006f, 0x0057, 0x0016,
+ 0xfff4, 0xff46, 0xff85, 0x0094, 0x000c, 0xff35,
+ 0xffbf, 0xffb3, 0xfef2, 0xff37, 0x0008, 0x00da,
+ 0x017c, 0x0187, 0x01c5, 0x022a, 0x01d5, 0x017b,
+ 0x0140, 0x0081, 0xffa9, 0xfecb, 0xfe31, 0xfe93,
+ 0xff1d, 0xff5f, 0xffc9, 0xffb6, 0xff5c, 0xff73,
+ 0xff56, 0xff2d, 0xff6b, 0xffb1, 0x0034, 0x008d,
+ 0x004e, 0x006a, 0x0077, 0x0024, 0x00b4, 0x0135,
+ 0x00cb, 0x00c8, 0x00c8, 0x0056, 0x0031, 0x0019,
+ 0x00b5, 0x018c, 0x0073, 0xff95, 0x0071, 0xfff7,
+ 0xff2a, 0x0027, 0x0083, 0x006f, 0x0129, 0x00c0,
+ 0xffc9, 0xffad, 0xff92, 0xffe8, 0x007d, 0x0063,
+ 0x00ac, 0x012b, 0x011e, 0x014e, 0x010d, 0x0000,
+ 0xff82, 0xff33, 0xfe4f, 0xfd4a, 0xfcbd, 0xfd1a,
+ 0xfd8e, 0xfdd2, 0xfef4, 0xffd8, 0xff9b, 0xffbd,
+ 0x001c, 0xfffc, 0xffaa, 0xff31, 0xff8f, 0x0071,
+ 0x000b, 0xffbb, 0x0019, 0xff61, 0xfed9, 0xff30,
+ 0xfed0, 0xfedb, 0xffb1, 0xffb4, 0xffa6, 0xfff0,
+ 0xffec, 0x0069, 0x00ff, 0x00b5, 0x00af, 0x012c,
+ 0x0113, 0x00df, 0x0165, 0x01df, 0x01ca, 0x01b0,
+ 0x0158, 0x00d5, 0x0143, 0x01de, 0x019b, 0x018e,
+ 0x018b, 0x00b5, 0x0014, 0xffee, 0xffc1, 0xff91,
+ 0xfedc, 0xfe59, 0xff06, 0xff67, 0xfeba, 0xfe34,
+ 0xfe43, 0xfe6c, 0xfe1b, 0xfdd1, 0xfe8f, 0xff2b,
+ 0xfeed, 0xff45, 0xffe1, 0xffc2, 0xffb1, 0xffb0,
+ 0xff19, 0xfe90, 0xfea7, 0xfeed, 0xfed8, 0xfe74,
+ 0xfe4c, 0xfec9, 0xff9a, 0xffba, 0xff1f, 0xfef1,
+ 0xff0a, 0xfec3, 0xfeba, 0xfef8, 0xfefd, 0xff01,
+ 0xff1b, 0xff5e, 0xffb8, 0xfff5, 0x0065, 0x0095,
+ 0x003b, 0x007f, 0x00d8, 0x0046, 0x0019, 0x0075,
+ 0x0051, 0x0005, 0xffb1, 0xff43, 0xfef2, 0xfeb7,
+ 0xff1f, 0xffc6, 0xffd9, 0x0065, 0x00f6, 0x0021,
+ 0xff57, 0xff40, 0xfee9, 0xfed6, 0xfed7, 0xfe7b,
+ 0xfebf, 0xff6d, 0xffb1, 0xff9d, 0xff81, 0x0017,
+ 0x00d9, 0x0063, 0xff77, 0xff23, 0xff4a, 0xff90,
+ 0xff33, 0xfee8, 0xff7c, 0xff44, 0xfeb0, 0xffb3,
+ 0x00b8, 0x00c7, 0x00f0, 0x00b8, 0x0087, 0x010d,
+ 0x010d, 0x00df, 0x012a, 0x00fc, 0x00ca, 0x0111,
+ 0x013f, 0x0152, 0x00aa, 0xffa8, 0xffc2, 0xff92,
+ 0xfe83, 0xfe88, 0xfe93, 0xfdc2, 0xfe18, 0xfef4,
+ 0xff2f, 0xffd2, 0xfff6, 0xff17, 0xff2d, 0xffb8,
+ 0xff09, 0xfdf5, 0xfd68, 0xfd35, 0xfd28, 0xfcf6,
+ 0xfc95, 0xfc25, 0xfbc6, 0xfbf5, 0xfcca, 0xfdb2,
+ 0xfe52, 0xfeb5, 0xfef6, 0xff00, 0xfee8, 0xfef4,
+ 0xfeef, 0xfeda, 0xff0c, 0xfef0, 0xfeb0, 0xff6c,
+ 0x006f, 0x00d7, 0x016a, 0x0216, 0x026a, 0x02c2,
+ 0x02bf, 0x0243, 0x01bb, 0x0123, 0x011b, 0x0190,
+ 0x018e, 0x01ec, 0x0297, 0x0235, 0x01eb, 0x01dc,
+ 0x00d1, 0x00d3, 0x01f0, 0x016a, 0x00c0, 0x0152,
+ 0x011e, 0x00a2, 0x00c3, 0x0050, 0xffb7, 0xff6e,
+ 0xff0e, 0xff1b, 0xff25, 0xfeb1, 0xfe70, 0xfdfe,
+ 0xfd63, 0xfd6d, 0xfd8a, 0xfdb2, 0xfe59, 0xfef3,
+ 0xff9f, 0x001c, 0xffad, 0xff64, 0xff9c, 0xff8a,
+ 0x000d, 0x011d, 0x0140, 0x00e3, 0x00d2, 0x00b7,
+ 0x00cd, 0x0151, 0x01a3, 0x012e, 0x006d, 0x0078,
+ 0x00eb, 0x00b7, 0x0099, 0x010e, 0x010c, 0x00b3,
+ 0x00c7, 0x009f, 0x0010, 0x0034, 0x00d5, 0x00ba,
+ 0x001b, 0xff89, 0xfec1, 0xfe68, 0xff02, 0xff37,
+ 0xfeb7, 0xfead, 0xfead, 0xfe23, 0xfde9, 0xfe15,
+ 0xfe3e, 0xfeaa, 0xfefd, 0xfed9, 0xfed9, 0xfed4,
+ 0xfe37, 0xfddd, 0xfe4e, 0xfe8d, 0xfe8c, 0xfef9,
+ 0xff23, 0xfee8, 0xff50, 0xfffa, 0x0070, 0x0115,
+ 0x0125, 0x00e8, 0x01b9, 0x0227, 0x0148, 0x00e5,
+ 0x00c3, 0x0047, 0x00b7, 0x016a, 0x0160, 0x0199,
+ 0x01d7, 0x018c, 0x0195, 0x01ec, 0x0228, 0x0250,
+ 0x021f, 0x01e0, 0x01e0, 0x01be, 0x01a0, 0x01d1,
+ 0x0218, 0x0211, 0x01a0, 0x0185, 0x01d4, 0x0187,
+ 0x00fe, 0x0105, 0x00f7, 0x00a2, 0x005d, 0x0029,
+ 0x0055, 0x00bc, 0x0104, 0x015f, 0x0126, 0x0016,
+ 0xff89, 0xffa8, 0xffa1, 0xffdb, 0x005d, 0x0050,
+ 0x0008, 0x0050, 0x00d6, 0x0124, 0x0165, 0x01a6,
+ 0x01f5, 0x0284, 0x02f1, 0x02d7, 0x027e, 0x0226,
+ 0x01cf, 0x0153, 0x008f, 0x0009, 0xfff6, 0xffd3,
+ 0x0001, 0x00f0, 0x01b8, 0x01ba, 0x018f, 0x01f7,
+ 0x02b0, 0x02b6, 0x021f, 0x01a5, 0x00fc, 0x004f,
+ 0x0063, 0x00fb, 0x01c2, 0x0269, 0x0267, 0x0235,
+ 0x021a, 0x0195, 0x0115, 0x00cc, 0x0039, 0xffcf,
+ 0xffbb, 0xff75, 0xff49, 0xff58, 0xff43, 0xff6a,
+ 0x000e, 0x00a1, 0x00c9, 0x00d3, 0x0120, 0x0164,
+ 0x013f, 0x0129, 0x0134, 0x00d8, 0x00a1, 0x011f,
+ 0x01ac, 0x0219, 0x0295, 0x0276, 0x01c1, 0x0167,
+ 0x015e, 0x0144, 0x015d, 0x01a4, 0x01cd, 0x01ca,
+ 0x01b5, 0x01ca, 0x01f1, 0x01c8, 0x0179, 0x013c,
+ 0x00f8, 0x00e0, 0x0131, 0x01c8, 0x023a, 0x0227,
+ 0x01cf, 0x0192, 0x0146, 0x00ea, 0x00cb, 0x00db,
+ 0x00ef, 0x010a, 0x011b, 0x00e7, 0x007f, 0x0057,
+ 0x005e, 0x0039, 0x0014, 0xfffe, 0x0003, 0x006a,
+ 0x009f, 0x006c, 0x009d, 0x00c5, 0x0051, 0x001f,
+ 0x0056, 0x0075, 0x009d, 0x0096, 0x0040, 0x000a,
+ 0xffe2, 0xffaa, 0xffc4, 0x002b, 0x0082, 0x0092,
+ 0x0064, 0x004f, 0x00ac, 0x010d, 0x00a3, 0xffe5,
+ 0xffaf, 0xff86, 0xff57, 0xffc8, 0x0060, 0x00c3,
+ 0x0126, 0x0138, 0x0130, 0x0175, 0x01a1, 0x017b,
+ 0x00d1, 0xffe7, 0xffab, 0xffb2, 0xff71, 0xffb4,
+ 0x0023, 0x001f, 0x0037, 0x0050, 0x004b, 0x00af,
+ 0x0120, 0x0147, 0x015f, 0x0158, 0x0120, 0x00b7,
+ 0x0082, 0x00de, 0x0105, 0x00b1, 0x0076, 0x0024,
+ 0xffc9, 0xffa9, 0xff71, 0xff69, 0xff9f, 0xff9b,
+ 0xffd7, 0x0044, 0x0058, 0x00a0, 0x00fb, 0x00e8,
+ 0x0125, 0x019a, 0x016e, 0x012d, 0x0147, 0x0112,
+ 0x0088, 0x005a, 0x0080, 0x008a, 0x009e, 0x00ed,
+ 0x014c, 0x018a, 0x019c, 0x01cc, 0x0235, 0x023a,
+ 0x01c4, 0x0145, 0x00d3, 0x00b3, 0x00cb, 0x00c5,
+ 0x0109, 0x0100, 0x001a, 0xffd9, 0x0054, 0x0050,
+ 0x0070, 0x00b9, 0x0055, 0x0020, 0x0035, 0xffb3,
+ 0xff20, 0xfee5, 0xfeb2, 0xfe9e, 0xfeb4, 0xff05,
+ 0xff8a, 0xffc3, 0xff95, 0xff8f, 0xffe6, 0xffc4,
+ 0xfecb, 0xfe3f, 0xfe82, 0xfebd, 0xff2a, 0xffb4,
+ 0xffcd, 0x000e, 0x0076, 0x00a8, 0x0106, 0x00db,
+ 0x0037, 0x007f, 0x00ef, 0x00b3, 0x00bf, 0x00c6,
+ 0x006c, 0x005b, 0x004b, 0x004d, 0x00dc, 0x0149,
+ 0x017e, 0x0207, 0x0286, 0x02c0, 0x02c5, 0x026d,
+ 0x020d, 0x01e4, 0x019c, 0x0133, 0x011b, 0x016b,
+ 0x0197, 0x0162, 0x0155, 0x0164, 0x011c, 0x00e2,
+ 0x00e6, 0x00ac, 0x006d, 0x0093, 0x00c3, 0x00db,
+ 0x00e8, 0x008d, 0x0020, 0x0047, 0x0083, 0x0099,
+ 0x0114, 0x0189, 0x017c, 0x0165, 0x0142, 0x00ed,
+ 0x00a4, 0x0044, 0x000c, 0x006a, 0x009d, 0x0042,
+ 0x0001, 0xffdb, 0xff8d, 0xff64, 0xff72, 0xff7b,
+ 0xff77, 0xff86, 0xff98, 0xff81, 0xff89, 0xfff1,
+ 0x0043, 0x004c, 0x006e, 0x00a7, 0x00a4, 0x0075,
+ 0x005e, 0x004e, 0x0013, 0xffe4, 0xffe7, 0xffec,
+ 0x0022, 0x00ab, 0x00f7, 0x00d7, 0x009d, 0x004f,
+ 0x0013, 0x002f, 0x005e, 0x0087, 0x00e8, 0x0137,
+ 0x012d, 0x0106, 0x00cc, 0x007e, 0x0064, 0x0067,
+ 0x004f, 0x0035, 0xffd3, 0xff2e, 0xff0c, 0xff51,
+ 0xff6c, 0xffb3, 0x003f, 0x008e, 0x00b0, 0x00d3,
+ 0x00dc, 0x00cb, 0x00a9, 0x007b, 0x0012, 0xff63,
+ 0xff04, 0xff08, 0xff02, 0xff74, 0x003d, 0x005f,
+ 0x005d, 0x00cc, 0x00e9, 0x00e1, 0x0142, 0x015e,
+ 0x0103, 0x009d, 0x002d, 0xffd7, 0xffb1, 0xff99,
+ 0xffb2, 0xffdf, 0xffea, 0x0009, 0x003d, 0x0055,
+ 0x004d, 0x0017, 0xffe2, 0xffcf, 0xff9d, 0xff57,
+ 0xff3d, 0xff61, 0xffa6, 0xffaf, 0xff80, 0xff7c,
+ 0xff5c, 0xfefd, 0xfed5, 0xfebf, 0xfe9b, 0xfec2,
+ 0xfefb, 0xff1b, 0xff6a, 0xffb1, 0xffaa, 0xff78,
+ 0xff53, 0xff6e, 0xffa9, 0xffdb, 0x000f, 0x001d,
+ 0x0016, 0x004c, 0x0076, 0x0065, 0x0042, 0xffde,
+ 0xff77, 0xff85, 0xffa9, 0xffc8, 0x0011, 0x0009,
+ 0xffac, 0xff95, 0xffa6, 0xffaf, 0x0002, 0x0081,
+ 0x00ce, 0x00f6, 0x00f6, 0x00ac, 0x004c, 0x0006,
+ 0xffb5, 0xff62, 0xff3f, 0xff4e, 0xff89, 0xffc9,
+ 0xffca, 0xff9a, 0xff58, 0xfeed, 0xfe95, 0xfeaa,
+ 0xfef1, 0xff28, 0xff68, 0xff99, 0xffb8, 0xfffa,
+ 0x0021, 0xffe8, 0xff93, 0xff5f, 0xff57, 0xffa5,
+ 0x0017, 0x0035, 0x0016, 0x002b, 0x0050, 0x0032,
+ 0x000a, 0xffeb, 0xff85, 0xff21, 0xff29, 0xff3b,
+ 0xff0a, 0xfeee, 0xff33, 0xffb1, 0x0011, 0x006d,
+ 0x00d0, 0x00bd, 0x0085, 0x00b4, 0x0088, 0x0001,
+ 0xffd8, 0xff6d, 0xfec7, 0xfeb8, 0xfea4, 0xfe4f,
+ 0xfe47, 0xfe1e, 0xfdeb, 0xfe4d, 0xfeec, 0xff6d,
+ 0xff9d, 0xff76, 0xff61, 0xff22, 0xfebd, 0xfef1,
+ 0xff3e, 0xff13, 0xfef5, 0xfee9, 0xfed8, 0xfebc,
+ 0xfe4a, 0xfdfd, 0xfe28, 0xfe28, 0xfe0a, 0xfe44,
+ 0xfeb8, 0xff13, 0xff1c, 0xff21, 0xff65, 0xffa5,
+ 0xffd5, 0xffbc, 0xff3d, 0xfefa, 0xfed2, 0xfe87,
+ 0xfeb5, 0xfef6, 0xfebd, 0xfe87, 0xfe4c, 0xfe19,
+ 0xfe3c, 0xfe56, 0xfe9e, 0xff40, 0xff74, 0xff74,
+ 0xffc0, 0xffcd, 0xff70, 0xff00, 0xfea6, 0xfe7d,
+ 0xfe81, 0xfed2, 0xff2b, 0xff2b, 0xff39, 0xff51,
+ 0xff24, 0xff32, 0xff45, 0xfee3, 0xfeb4, 0xfeeb,
+ 0xff41, 0xffa7, 0xffd1, 0xffdf, 0xfff4, 0xffc2,
+ 0xffaa, 0xffcb, 0xffc2, 0xffee, 0x002e, 0x0016,
+ 0x0011, 0x000a, 0xffca, 0xff8d, 0xff30, 0xff0c,
+ 0xff6b, 0xff8c, 0xff77, 0xff95, 0xff7b, 0xff51,
+ 0xff5a, 0xff34, 0xfee2, 0xfe96, 0xfe7b, 0xfebf,
+ 0xfefe, 0xff08, 0xff15, 0xff17, 0xff23, 0xff51,
+ 0xff83, 0xffc7, 0xfff1, 0x0001, 0x0030, 0x0013,
+ 0xffad, 0xff85, 0xff50, 0xfef5, 0xfee8, 0xfef7,
+ 0xff00, 0xff30, 0xff4e, 0xff50, 0xff57, 0xff54,
+ 0xff69, 0xffa5, 0xffd0, 0xffe8, 0x0005, 0x0014,
+ 0xfff2, 0xffbf, 0xffa8, 0xff88, 0xff58, 0xff2f,
+ 0xfed7, 0xfe81, 0xfe73, 0xfe6c, 0xfe89, 0xfee6,
+ 0xff03, 0xff27, 0xffd5, 0x005d, 0x006b, 0x007d,
+ 0x0073, 0x001b, 0xffc5, 0xff78, 0xff1b, 0xfecc,
+ 0xfe98, 0xfe7d, 0xfe72, 0xfe69, 0xfe75, 0xfe9c,
+ 0xfec7, 0xff00, 0xff35, 0xff33, 0xff10, 0xff00,
+ 0xff0e, 0xff44, 0xff90, 0xffc2, 0xffc1, 0xff88,
+ 0xff34, 0xff09, 0xff0d, 0xff08, 0xfed5, 0xfe87,
+ 0xfe71, 0xfeab, 0xfee0, 0xfeee, 0xfee5, 0xfecc,
+ 0xfee5, 0xff35, 0xff46, 0xff00, 0xfed7, 0xff00,
+ 0xff3b, 0xff3d, 0xff18, 0xfef2, 0xfec5, 0xfeb1,
+ 0xfec1, 0xfed3, 0xfeea, 0xfede, 0xfe8a, 0xfe73,
+ 0xfed1, 0xff17, 0xff40, 0xffa6, 0x001c, 0x0056,
+ 0x003f, 0x0016, 0x0021, 0x002d, 0x0019, 0x003f,
+ 0x0093, 0x00aa, 0x0071, 0x0023, 0x001d, 0x005f,
+ 0x007c, 0x0080, 0x00a5, 0x00b5, 0x00b9, 0x00b9,
+ 0x005a, 0xffd2, 0xffa2, 0xffa1, 0xff93, 0xff6e,
+ 0xff2f, 0xff04, 0xff02, 0xff04, 0xfee1, 0xfe72,
+ 0xfde0, 0xfd98, 0xfdbc, 0xfe24, 0xfe82, 0xfec4,
+ 0xff44, 0xffe3, 0x0039, 0x0069, 0x0068, 0x0008,
+ 0xffab, 0xff76, 0xff60, 0xff90, 0xffb1, 0xff8f,
+ 0xff94, 0xffb6, 0xffb8, 0xffb8, 0xffb9, 0xffbc,
+ 0xffba, 0xff97, 0xff8a, 0xffac, 0xffbb, 0xffda,
+ 0x003f, 0x00ba, 0x0106, 0x0120, 0x0140, 0x0175,
+ 0x018d, 0x018d, 0x0164, 0x00d9, 0x0043, 0x0013,
+ 0x0005, 0xffc3, 0xff64, 0xff2e, 0xff30, 0xff62,
+ 0xffd1, 0x0049, 0x0077, 0x007f, 0x0077, 0x001a,
+ 0xff92, 0xff3f, 0xff35, 0xff63, 0xff97, 0xffb2,
+ 0xffc8, 0xffcc, 0xffbb, 0xffa4, 0xff7a, 0xff5f,
+ 0xff6e, 0xff75, 0xff79, 0xff8d, 0xff91, 0xffbc,
+ 0x002e, 0x0090, 0x00c1, 0x00c1, 0x0081, 0x0048,
+ 0x0036, 0x001a, 0x0013, 0x0037, 0x004e, 0x006b,
+ 0x00a8, 0x00e2, 0x0110, 0x012e, 0x012f, 0x0115,
+ 0x00d4, 0x0084, 0x0052, 0x0026, 0xffed, 0xffd9,
+ 0x0012, 0x0075, 0x00aa, 0x00ad, 0x00b7, 0x00a9,
+ 0x008e, 0x00a7, 0x00bb, 0x00ab, 0x00b2, 0x0090,
+ 0x002e, 0x0004, 0x0023, 0x0056, 0x0089, 0x009a,
+ 0x0079, 0x002f, 0xffdb, 0xffb6, 0xffa4, 0xff79,
+ 0xff57, 0xff4b, 0xff6a, 0xffb5, 0xffbe, 0xff99,
+ 0xffbc, 0x0009, 0x0066, 0x00bf, 0x00c0, 0x00a2,
+ 0x009c, 0x0055, 0x0009, 0x0011, 0x0012, 0xffdc,
+ 0xff90, 0xff2d, 0xfedf, 0xfee1, 0xff19, 0xff54,
+ 0xff7b, 0xffa5, 0xfffe, 0x007d, 0x00ea, 0x0116,
+ 0x00fe, 0x00c0, 0x0079, 0x0039, 0x000c, 0xfff2,
+ 0xffef, 0x0012, 0x005e, 0x00ce, 0x013b, 0x0157,
+ 0x0113, 0x00be, 0x007b, 0x0041, 0x0030, 0x0046,
+ 0x003b, 0x0013, 0x000a, 0x0052, 0x0106, 0x01be,
+ 0x01fb, 0x01ec, 0x01c8, 0x015e, 0x00d9, 0x0070,
+ 0xffe1, 0xff3b, 0xfef0, 0xff05, 0xff31, 0xff65,
+ 0xffa5, 0xffe0, 0x0007, 0x001b, 0x0038, 0x0097,
+ 0x0114, 0x0138, 0x00fd, 0x00d9, 0x00e5, 0x00e3,
+ 0x00d5, 0x00d8, 0x00cf, 0x00be, 0x00ed, 0x0130,
+ 0x0127, 0x011a, 0x0137, 0x0123, 0x010c, 0x013c,
+ 0x014d, 0x0137, 0x0147, 0x0139, 0x0114, 0x0142,
+ 0x0191, 0x01af, 0x01b0, 0x0187, 0x014d, 0x0156,
+ 0x018b, 0x01a8, 0x01a9, 0x018f, 0x0160, 0x011f,
+ 0x00dc, 0x00dc, 0x0118, 0x0119, 0x00da, 0x009e,
+ 0x0052, 0x000c, 0x0012, 0x005f, 0x00d0, 0x0134,
+ 0x0161, 0x0164, 0x0123, 0x0083, 0xffce, 0xff35,
+ 0xfebb, 0xfe78, 0xfe6f, 0xfe8c, 0xfeab, 0xfeae,
+ 0xfed6, 0xff47, 0xffb6, 0xfff6, 0x0014, 0x0029,
+ 0x003f, 0x003c, 0x0026, 0x0011, 0xfffc, 0x0004,
+ 0x0025, 0x0030, 0x0046, 0x0065, 0x0059, 0x0030,
+ 0xfff4, 0xffe0, 0x0034, 0x008f, 0x00da, 0x0165,
+ 0x01c2, 0x01c5, 0x01e2, 0x01e4, 0x01a3, 0x0183,
+ 0x0186, 0x018c, 0x01a3, 0x01b8, 0x01d2, 0x0204,
+ 0x0229, 0x0239, 0x0253, 0x0266, 0x023a, 0x01e6,
+ 0x01a8, 0x0163, 0x00fd, 0x00af, 0x008c, 0x0086,
+ 0x0086, 0x0087, 0x00d1, 0x0147, 0x0178, 0x0196,
+ 0x01c0, 0x019c, 0x0142, 0x00e2, 0x0094, 0x00a8,
+ 0x0106, 0x014f, 0x0160, 0x011d, 0x00b2, 0x0077,
+ 0x005d, 0x0050, 0x0051, 0x0063, 0x009b, 0x00bb,
+ 0x00a5, 0x00a2, 0x00a7, 0x00ae, 0x00cf, 0x00b4,
+ 0x0076, 0x006f, 0x0054, 0x002f, 0x0051, 0x0067,
+ 0x0058, 0x006d, 0x0096, 0x00cf, 0x011a, 0x0149,
+ 0x014a, 0x0114, 0x009e, 0x001a, 0xffc2, 0xffb1,
+ 0xffe6, 0x0043, 0x00a3, 0x00d0, 0x00cb, 0x00c3,
+ 0x00a7, 0x006e, 0x0040, 0x000f, 0xffce, 0xff99,
+ 0xff7b, 0xff77, 0xff85, 0xffa2, 0xffe6, 0x0036,
+ 0x0067, 0x008d, 0x00b0, 0x00a2, 0x0069, 0x0057,
+ 0x005b, 0x000a, 0xff98, 0xff7d, 0xff92, 0xffa4,
+ 0xffc6, 0xffc4, 0xffa4, 0xff9c, 0xff99, 0xffb0,
+ 0xffeb, 0x0018, 0x0064, 0x00e3, 0x013d, 0x0155,
+ 0x0149, 0x0149, 0x0165, 0x0162, 0x015a, 0x0181,
+ 0x0184, 0x0161, 0x0150, 0x013a, 0x0121, 0x0102,
+ 0x00e5, 0x011b, 0x015e, 0x0169, 0x018d, 0x0193,
+ 0x013f, 0x0108, 0x00ef, 0x00b8, 0x0097, 0x008e,
+ 0x009e, 0x00da, 0x0111, 0x0128, 0x012d, 0x0137,
+ 0x0167, 0x01aa, 0x01ee, 0x022c, 0x0246, 0x0272,
+ 0x02a9, 0x028d, 0x0278, 0x0298, 0x0289, 0x028c,
+ 0x02d0, 0x02fb, 0x0306, 0x02c8, 0x022b, 0x01b1,
+ 0x0160, 0x011f, 0x0136, 0x0162, 0x0179, 0x01bb,
+ 0x01f3, 0x0207, 0x0204, 0x01b5, 0x0155, 0x0110,
+ 0x00a4, 0x0051, 0x003c, 0x0014, 0xfff8, 0xfff9,
+ 0xffd2, 0xff91, 0xff52, 0xff1b, 0xff14, 0xff39,
+ 0xff5e, 0xff6f, 0xff71, 0xff83, 0xffad, 0xffee,
+ 0x004f, 0x0081, 0x0048, 0xffff, 0xffdb, 0xffc4,
+ 0xffc4, 0xffdc, 0xffeb, 0xfff1, 0x0005, 0x0017,
+ 0x0002, 0xffe3, 0xffed, 0x001b, 0x0058, 0x00a8,
+ 0x00fe, 0x0134, 0x0133, 0x0119, 0x0108, 0x00db,
+ 0x006c, 0xfffb, 0xffa8, 0xff57, 0xff31, 0xff76,
+ 0xffdf, 0x000d, 0x0010, 0x0013, 0x0013, 0x000d,
+ 0x000f, 0x002f, 0x0079, 0x00c2, 0x00ce, 0x00aa,
+ 0x0066, 0xfff8, 0xff8c, 0xff51, 0xff3a, 0xff4a,
+ 0xff75, 0xff98, 0xffbc, 0xffea, 0xfffc, 0xfff5,
+ 0xfff6, 0xfffb, 0xfff1, 0xffdc, 0xffed, 0x001c,
+ 0x002d, 0x003e, 0x007d, 0x00b5, 0x00ef, 0x0144,
+ 0x0173, 0x019a, 0x01e2, 0x01e1, 0x019e, 0x0167,
+ 0x011d, 0x00f4, 0x0113, 0x0105, 0x00de, 0x00e4,
+ 0x00be, 0x0074, 0x0046, 0x0007, 0xffc8, 0xff9b,
+ 0xff51, 0xfef7, 0xfeae, 0xfe89, 0xfe9b, 0xfeb1,
+ 0xfeba, 0xfed5, 0xfed4, 0xfea6, 0xfe72, 0xfe2e,
+ 0xfdf0, 0xfde1, 0xfde9, 0xfdf7, 0xfdf7, 0xfddc,
+ 0xfdc2, 0xfda8, 0xfd96, 0xfd9e, 0xfd90, 0xfd68,
+ 0xfd5f, 0xfd84, 0xfdce, 0xfe18, 0xfe45, 0xfe72,
+ 0xfe93, 0xfea4, 0xfed4, 0xff06, 0xff30, 0xff8c,
+ 0x000b, 0x0099, 0x0124, 0x0165, 0x0157, 0x0117,
+ 0x00b5, 0x008c, 0x00af, 0x00e5, 0x014d, 0x01c1,
+ 0x01e8, 0x01dd, 0x0197, 0x00fb, 0x0058, 0xffd6,
+ 0xff88, 0xffa5, 0xfff1, 0x002c, 0x0081, 0x00d8,
+ 0x00e8, 0x00ba, 0x007a, 0x002b, 0xffd0, 0xff8f,
+ 0xff73, 0xff6b, 0xff96, 0xffdf, 0xfffd, 0xfffc,
+ 0xffe6, 0xff96, 0xff4e, 0xff35, 0xff01, 0xfecb,
+ 0xfeca, 0xfed9, 0xfef3, 0xff29, 0xff57, 0xff75,
+ 0xff95, 0xffa0, 0xff84, 0xff58, 0xff2e, 0xff0f,
+ 0xff13, 0xff33, 0xff33, 0xfefe, 0xfec5, 0xfe9f,
+ 0xfe89, 0xfe97, 0xfeb8, 0xfec6, 0xfec7, 0xfed6,
+ 0xff03, 0xff35, 0xff3e, 0xff26, 0xff20, 0xff2b,
+ 0xff2b, 0xff31, 0xff48, 0xff5f, 0xff72, 0xff8d,
+ 0xff95, 0xff63, 0xff1d, 0xff07, 0xff06, 0xfefb,
+ 0xff13, 0xff41, 0xff43, 0xff2a, 0xff10, 0xfeca,
+ 0xfe58, 0xfdf8, 0xfdd2, 0xfdf0, 0xfe42, 0xfea3,
+ 0xff06, 0xff5d, 0xff8a, 0xff99, 0xff9f, 0xff88,
+ 0xff67, 0xff67, 0xff66, 0xff41, 0xfefe, 0xfe9b,
+ 0xfe50, 0xfe58, 0xfe73, 0xfe8e, 0xfef0, 0xff65,
+ 0xffa1, 0xffd1, 0xfff6, 0xfffa, 0x000c, 0x002c,
+ 0x0031, 0x0025, 0x0015, 0x0010, 0x0017, 0xffff,
+ 0xffd5, 0xff9b, 0xff1f, 0xfe9c, 0xfe66, 0xfe4a,
+ 0xfe3d, 0xfe9b, 0xff49, 0xffbd, 0xffd5, 0xffc7,
+ 0xffa8, 0xff70, 0xff31, 0xfef0, 0xfeb0, 0xfe88,
+ 0xfe6f, 0xfe5c, 0xfe55, 0xfe46, 0xfe36, 0xfe49,
+ 0xfe5d, 0xfe62, 0xfe8b, 0xfecf, 0xff00, 0xff29,
+ 0xff48, 0xff4b, 0xff44, 0xff2d, 0xfef2, 0xfea9,
+ 0xfe6b, 0xfe5b, 0xfe8e, 0xfed6, 0xff0c, 0xff3a,
+ 0xff59, 0xff66, 0xff7a, 0xff8e, 0xff9b, 0xff9b,
+ 0xff7c, 0xff57, 0xff5d, 0xff85, 0xffcf, 0x0034,
+ 0x006e, 0x0065, 0x0049, 0x001a, 0xffe2, 0xffd9,
+ 0xfff8, 0x0017, 0x004e, 0x0091, 0x009b, 0x0075,
+ 0x004f, 0x0028, 0x000e, 0x0012, 0x0017, 0x0013,
+ 0x0018, 0x0019, 0x001e, 0x002e, 0x0030, 0x0023,
+ 0x0001, 0xffa1, 0xff1e, 0xfed0, 0xfec9, 0xfeeb,
+ 0xff19, 0xff2d, 0xff1a, 0xfee8, 0xfeaf, 0xfe97,
+ 0xfe8d, 0xfe66, 0xfe36, 0xfe1b, 0xfdfd, 0xfddc,
+ 0xfdd4, 0xfded, 0xfe3c, 0xfebc, 0xff21, 0xff4b,
+ 0xff63, 0xff63, 0xff31, 0xfee5, 0xfea1, 0xfe74,
+ 0xfe5b, 0xfe55, 0xfe7b, 0xfecd, 0xff14, 0xff46,
+ 0xff76, 0xff8d, 0xff83, 0xff7b, 0xff80, 0xff94,
+ 0xffc5, 0x000d, 0x004e, 0x0072, 0x009a, 0x00db,
+ 0x00f6, 0x00d2, 0x00b5, 0x00ae, 0x0080, 0x003b,
+ 0x0011, 0xffe0, 0xff84, 0xff38, 0xff12, 0xfef8,
+ 0xff01, 0xff2a, 0xff3b, 0xff42, 0xff5b, 0xff62,
+ 0xff4f, 0xff16, 0xfea4, 0xfe40, 0xfe1e, 0xfe0a,
+ 0xfdfd, 0xfe23, 0xfe61, 0xfe9f, 0xfef8, 0xff5d,
+ 0xff82, 0xff5d, 0xff29, 0xfef3, 0xfebb, 0xfe90,
+ 0xfe66, 0xfe45, 0xfe3b, 0xfe29, 0xfe0d, 0xfe02,
+ 0xfe0c, 0xfe24, 0xfe2d, 0xfe21, 0xfe3a, 0xfe82,
+ 0xfed1, 0xff15, 0xff2a, 0xff1e, 0xff24, 0xff08,
+ 0xfed0, 0xfeca, 0xfec5, 0xfea1, 0xfea8, 0xfec5,
+ 0xfed1, 0xfef7, 0xff2c, 0xff35, 0xff0e, 0xfed9,
+ 0xfea5, 0xfe72, 0xfe6b, 0xfea1, 0xfed3, 0xfef2,
+ 0xff22, 0xff53, 0xff7b, 0xff98, 0xff8e, 0xff66,
+ 0xff26, 0xfed3, 0xfe96, 0xfe74, 0xfe6c, 0xfe9c,
+ 0xfeee, 0xff3c, 0xff81, 0xff99, 0xff93, 0xffa4,
+ 0xffbf, 0xffe8, 0x0025, 0x0046, 0x005a, 0x0080,
+ 0x0098, 0x00b3, 0x00f6, 0x013f, 0x0170, 0x0176,
+ 0x013d, 0x00e9, 0x00a4, 0x006d, 0x0056, 0x0051,
+ 0x002d, 0x0001, 0xfff9, 0x000a, 0x003b, 0x0086,
+ 0x00b8, 0x00c5, 0x00bc, 0x0083, 0x0012, 0xff92,
+ 0xff2e, 0xfefe, 0xfee2, 0xfebd, 0xfeab, 0xfeb2,
+ 0xfedc, 0xff46, 0xffa2, 0xffa9, 0xff8e, 0xff56,
+ 0xfee0, 0xfe61, 0xfe05, 0xfdd2, 0xfdee, 0xfe67,
+ 0xff10, 0xffa2, 0xfffa, 0x001e, 0x000c, 0xffdb,
+ 0xffbb, 0xff7c, 0xff0c, 0xfed8, 0xfef4, 0xff29,
+ 0xff88, 0xffff, 0x0069, 0x00cd, 0x00eb, 0x00a8,
+ 0x004f, 0x0007, 0xffd8, 0xffca, 0xffd0, 0xffe9,
+ 0x000f, 0x0020, 0x0029, 0x003f, 0x0054, 0x0070,
+ 0x008a, 0x0087, 0x0061, 0x001b, 0xffd2, 0xffa8,
+ 0xff9c, 0xffa6, 0xffc4, 0xffd8, 0xffe0, 0xfff1,
+ 0x0013, 0x0050, 0x0092, 0x00b3, 0x00ad, 0x007a,
+ 0x0020, 0xffcc, 0xff94, 0xff74, 0xff6f, 0xff83,
+ 0xffb7, 0xfffa, 0x0007, 0xffe3, 0xffd7, 0xfff8,
+ 0x0011, 0xfff8, 0xffaf, 0xff6c, 0xff4e, 0xff49,
+ 0xff75, 0xffd5, 0x0022, 0x003d, 0x0039, 0x001c,
+ 0x0004, 0xfff8, 0xffd4, 0xffb5, 0xffa8, 0xff83,
+ 0xff63, 0xff72, 0xff96, 0xffd4, 0x0017, 0x0028,
+ 0x0028, 0x001a, 0xffcb, 0xff6a, 0xff28, 0xfee4,
+ 0xfebf, 0xfecc, 0xfed9, 0xfee2, 0xfef8, 0xff1d,
+ 0xff6a, 0xffd1, 0x0013, 0x002b, 0x0031, 0x0010,
+ 0xffc8, 0xff9c, 0xff9d, 0xff7c, 0xff3c, 0xff25,
+ 0xff1c, 0xff18, 0xff60, 0xffe8, 0x0068, 0x00d8,
+ 0x0131, 0x0173, 0x01ab, 0x01d1, 0x01d8, 0x01ba,
+ 0x0184, 0x0155, 0x0138, 0x012d, 0x014a, 0x0193,
+ 0x01f1, 0x0256, 0x02c0, 0x032d, 0x0371, 0x0365,
+ 0x0333, 0x0301, 0x02ce, 0x02b3, 0x02b2, 0x029b,
+ 0x0274, 0x0258, 0x023c, 0x020f, 0x01cb, 0x0171,
+ 0x0117, 0x00cf, 0x00a2, 0x007d, 0x004c, 0x0022,
+ 0x0019, 0x0025, 0x0031, 0x004b, 0x007c, 0x00a3,
+ 0x00ae, 0x00a6, 0x0086, 0x0050, 0x000a, 0xffa9,
+ 0xff41, 0xfeff, 0xfee8, 0xff05, 0xff4e, 0xff7f,
+ 0xff91, 0xffb3, 0xffd1, 0xffd4, 0xffcc, 0xffba,
+ 0xffb4, 0xffc2, 0xffc0, 0xffb8, 0xffcc, 0xffef,
+ 0x0006, 0x0018, 0x003b, 0x0066, 0x0084, 0x00a5,
+ 0x00d0, 0x00ee, 0x010a, 0x0118, 0x0103, 0x0104,
+ 0x012f, 0x0162, 0x01b1, 0x0204, 0x021b, 0x01ff,
+ 0x01c0, 0x015f, 0x0109, 0x00de, 0x00d8, 0x00d0,
+ 0x0094, 0x0061, 0x007a, 0x00b0, 0x00f0, 0x0149,
+ 0x018a, 0x0199, 0x0185, 0x0155, 0x0120, 0x00ee,
+ 0x00b5, 0x0086, 0x004e, 0x000e, 0x0007, 0x004c,
+ 0x00a3, 0x00f0, 0x013f, 0x017f, 0x017f, 0x015c,
+ 0x0154, 0x014a, 0x013e, 0x0167, 0x0197, 0x01ae,
+ 0x01d7, 0x01fd, 0x0211, 0x0240, 0x027a, 0x02a4,
+ 0x02b6, 0x0283, 0x0220, 0x01b7, 0x0135, 0x00bb,
+ 0x0078, 0x0059, 0x0061, 0x00a0, 0x00f6, 0x014e,
+ 0x018f, 0x019a, 0x016f, 0x011b, 0x00bc, 0x007f,
+ 0x006b, 0x007b, 0x00a6, 0x00c4, 0x00cc, 0x00d5,
+ 0x00c5, 0x0077, 0xffff, 0xff88, 0xff3d, 0xff2e,
+ 0xff4c, 0xff79, 0xff93, 0xff8f, 0xff7c, 0xff62,
+ 0xff42, 0xff26, 0xff15, 0xff0c, 0xfefe, 0xfedd,
+ 0xfec7, 0xfed6, 0xfeed, 0xff0c, 0xff43, 0xff52,
+ 0xff2b, 0xff16, 0xff19, 0xff26, 0xff4b, 0xff69,
+ 0xff6f, 0xff72, 0xff65, 0xff5a, 0xff6b, 0xff79,
+ 0xff7c, 0xff6f, 0xff45, 0xff32, 0xff5f, 0xffb9,
+ 0x002d, 0x0092, 0x00c7, 0x00d7, 0x00b4, 0x0065,
+ 0x0021, 0xfff1, 0xffd6, 0xffe1, 0xffe2, 0xffc1,
+ 0xffa2, 0xffa1, 0xffc7, 0xfff8, 0x000a, 0x0019,
+ 0x0029, 0x0024, 0x001e, 0x0022, 0x0025, 0x001f,
+ 0x0006, 0xffed, 0xfff5, 0x000e, 0x002f, 0x0058,
+ 0x006e, 0x0064, 0x003e, 0x0001, 0xffcc, 0xffb0,
+ 0xffa8, 0xffc0, 0xfff8, 0x0045, 0x00a1, 0x00f4,
+ 0x0129, 0x013d, 0x0130, 0x0119, 0x00f8, 0x00bb,
+ 0x008c, 0x008c, 0x0090, 0x0080, 0x0078, 0x007e,
+ 0x009c, 0x00d9, 0x0113, 0x011f, 0x00ff, 0x00c3,
+ 0x006c, 0x0008, 0xffb7, 0xff89, 0xff75, 0xff71,
+ 0xff76, 0xff7e, 0xff94, 0xffc7, 0xfff2, 0xfffa,
+ 0xfff4, 0xffdd, 0xff9d, 0xff62, 0xff4f, 0xff39,
+ 0xff23, 0xff28, 0xff1d, 0xfef3, 0xfedb, 0xfed1,
+ 0xfeb7, 0xfe91, 0xfe62, 0xfe35, 0xfe1b, 0xfe0f,
+ 0xfe29, 0xfe6d, 0xfea0, 0xfebc, 0xfef8, 0xff39,
+ 0xff60, 0xff88, 0xffaa, 0xffb4, 0xffae, 0xffac,
+ 0xffc2, 0xffe2, 0xfffa, 0x002c, 0x0065, 0x006d,
+ 0x0069, 0x0082, 0x0099, 0x00b6, 0x00ea, 0x011f,
+ 0x0143, 0x0149, 0x0139, 0x0125, 0x0109, 0x00dc,
+ 0x00a2, 0x0065, 0x003b, 0x0022, 0x0020, 0x0042,
+ 0x0066, 0x0073, 0x0070, 0x004e, 0x0012, 0xffe2,
+ 0xffbc, 0xffa3, 0xffa6, 0xffb9, 0xffd7, 0xfffb,
+ 0x0018, 0x0031, 0x0030, 0x0005, 0xffbe, 0xff5f,
+ 0xff02, 0xfed2, 0xfeda, 0xff26, 0xffa3, 0x000b,
+ 0x0058, 0x00ab, 0x00fd, 0x0136, 0x0153, 0x0169,
+ 0x0174, 0x0159, 0x0132, 0x011a, 0x00fb, 0x00e3,
+ 0x00d0, 0x00a4, 0x007b, 0x0050, 0x0007, 0xffda,
+ 0xffd0, 0xffb5, 0xff90, 0xff59, 0xff01, 0xfebb,
+ 0xfe8a, 0xfe44, 0xfdfc, 0xfdd5, 0xfdd4, 0xfe02,
+ 0xfe49, 0xfe7d, 0xfe92, 0xfeaa, 0xfed1, 0xfee3,
+ 0xfedd, 0xfec7, 0xfe8f, 0xfe41, 0xfdfd, 0xfdd6,
+ 0xfdd3, 0xfdda, 0xfde4, 0xfdfd, 0xfe05, 0xfdf0,
+ 0xfde5, 0xfdde, 0xfdd1, 0xfddf, 0xfe24, 0xfead,
+ 0xff58, 0xffe8, 0x004b, 0x0096, 0x00dd, 0x011f,
+ 0x0132, 0x0116, 0x00e7, 0x0098, 0x0046, 0x0013,
+ 0xffdd, 0xffab, 0xffa9, 0xffc2, 0xffef, 0x0039,
+ 0x0090, 0x00ed, 0x0141, 0x016b, 0x0179, 0x0172,
+ 0x0152, 0x012f, 0x010c, 0x00e1, 0x00af, 0x0065,
+ 0x000a, 0xffc6, 0xff99, 0xff67, 0xff31, 0xff13,
+ 0xff15, 0xff1f, 0xff21, 0xff13, 0xfee2, 0xfea8,
+ 0xfe88, 0xfe86, 0xfeae, 0xfef4, 0xff1a, 0xff1f,
+ 0xff1d, 0xff11, 0xff27, 0xff75, 0xffc1, 0x000f,
+ 0x007d, 0x00e8, 0x013a, 0x0156, 0x0117, 0x00b2,
+ 0x0072, 0x006b, 0x009c, 0x00eb, 0x0136, 0x0183,
+ 0x01c5, 0x01e1, 0x01e1, 0x01c2, 0x0173, 0x0108,
+ 0x00a7, 0x006a, 0x005d, 0x006f, 0x007e, 0x006a,
+ 0x0040, 0x001d, 0xfff1, 0xffb3, 0xff8e, 0xff86,
+ 0xff7e, 0xff72, 0xff5c, 0xff4a, 0xff4f, 0xff5b,
+ 0xff75, 0xffaf, 0xffe0, 0xffeb, 0xffca, 0xff59,
+ 0xfea4, 0xfe02, 0xfdaf, 0xfda0, 0xfdb6, 0xfdde,
+ 0xfded, 0xfdcb, 0xfda7, 0xfdb0, 0xfdf2, 0xfe68,
+ 0xfee9, 0xff54, 0xffa9, 0xffd8, 0xffde, 0xffda,
+ 0xffce, 0xffbb, 0xffa3, 0xff8e, 0xff91, 0xff9a,
+ 0xff87, 0xff74, 0xff67, 0xff54, 0xff58, 0xff67,
+ 0xff6b, 0xff7c, 0xff9b, 0xffe1, 0x005b, 0x00c1,
+ 0x00fb, 0x0124, 0x0123, 0x0115, 0x0122, 0x011a,
+ 0x00f7, 0x00cc, 0x0073, 0xffff, 0xffa2, 0xff5f,
+ 0xff3f, 0xff54, 0xff7f, 0xffa2, 0xffbb, 0xffd3,
+ 0xffec, 0xffe4, 0xffb1, 0xff92, 0xffb3, 0xfff8,
+ 0x0035, 0x0047, 0x0008, 0xff87, 0xff08, 0xfeb1,
+ 0xfe73, 0xfe53, 0xfe69, 0xfe9e, 0xfec5, 0xfedc,
+ 0xfeef, 0xfef4, 0xfee5, 0xfec9, 0xfea2, 0xfea1,
+ 0xfee2, 0xff2b, 0xff57, 0xff7e, 0xffa3, 0xffc5,
+ 0xffef, 0x000e, 0x0017, 0x0017, 0x0015, 0x001d,
+ 0x0035, 0x0051, 0x006a, 0x0078, 0x006d, 0x0050,
+ 0x0022, 0xffe1, 0xff95, 0xff59, 0xff49, 0xff57,
+ 0xff65, 0xff79, 0xff8b, 0xff85, 0xff6d, 0xff54,
+ 0xff52, 0xff7e, 0xffaf, 0xffbc, 0xff9f, 0xff4e,
+ 0xfeef, 0xfeb0, 0xfe6e, 0xfe0d, 0xfdb1, 0xfd6b,
+ 0xfd4e, 0xfd76, 0xfdcb, 0xfe2e, 0xfe9e, 0xfeeb,
+ 0xfef2, 0xfee5, 0xfee1, 0xfed3, 0xfec3, 0xfec8,
+ 0xfee9, 0xff3e, 0xffbb, 0x0034, 0x0096, 0x00ce,
+ 0x00d6, 0x00c4, 0x0090, 0x002a, 0xffbb, 0xff64,
+ 0xff28, 0xff1d, 0xff54, 0xffbc, 0x002e, 0x009c,
+ 0x010b, 0x0157, 0x0170, 0x017f, 0x0178, 0x014a,
+ 0x011f, 0x00ef, 0x00b3, 0x0094, 0x0088, 0x007e,
+ 0x0081, 0x0072, 0x0064, 0x007a, 0x007c, 0x005e,
+ 0x0047, 0x0023, 0xfff1, 0xffce, 0xffb3, 0xff9e,
+ 0xff8a, 0xff6e, 0xff70, 0xff93, 0xffa7, 0xffb6,
+ 0xffd0, 0xffe0, 0xfffa, 0x0038, 0x0077, 0x008a,
+ 0x0067, 0x0019, 0xffbe, 0xff84, 0xff8f, 0xffdd,
+ 0x0054, 0x00dc, 0x014d, 0x018c, 0x01a4, 0x019c,
+ 0x0176, 0x0160, 0x0162, 0x0155, 0x014e, 0x0153,
+ 0x0138, 0x0116, 0x0101, 0x00c2, 0x0072, 0x0053,
+ 0x003d, 0x0007, 0xffca, 0xff8d, 0xff46, 0xfef7,
+ 0xfeaa, 0xfe6f, 0xfe45, 0xfe32, 0xfe50, 0xfe91,
+ 0xfedd, 0xff2d, 0xff65, 0xff60, 0xff1a, 0xfead,
+ 0xfe3a, 0xfdbe, 0xfd35, 0xfcd3, 0xfcbd, 0xfcec,
+ 0xfd6d, 0xfe26, 0xfeb3, 0xfee9, 0xfef4, 0xfee7,
+ 0xfead, 0xfe5d, 0xfe17, 0xfde7, 0xfe04, 0xfe99,
+ 0xff5d, 0x0009, 0x00a6, 0x010c, 0x010d, 0x00cc,
+ 0x006f, 0x0005, 0xffbe, 0xffbb, 0xfff8, 0x005d,
+ 0x00c8, 0x0118, 0x0143, 0x0149, 0x013d, 0x013c,
+ 0x0153, 0x017c, 0x01a4, 0x01ce, 0x0205, 0x022d,
+ 0x0227, 0x0202, 0x01c2, 0x015d, 0x00fd, 0x00b6,
+ 0x0066, 0x0015, 0xffe0, 0xffbc, 0xffaa, 0xff95,
+ 0xff58, 0xff1d, 0xff1e, 0xff4a, 0xff82, 0xffb9,
+ 0xffff, 0x006a, 0x00d5, 0x011c, 0x0156, 0x016d,
+ 0x013f, 0x00f1, 0x00ad, 0x0075, 0x004c, 0x0031,
+ 0x002e, 0x0049, 0x0073, 0x00a9, 0x00eb, 0x012f,
+ 0x016c, 0x0190, 0x018b, 0x0172, 0x0164, 0x0154,
+ 0x0125, 0x00e6, 0x00c4, 0x00b0, 0x0082, 0x0048,
+ 0x0015, 0xffe2, 0xffaf, 0xff7a, 0xff4c, 0xff32,
+ 0xff22, 0xff1c, 0xff2b, 0xff46, 0xff6a, 0xff87,
+ 0xff82, 0xff77, 0xff79, 0xff71, 0xff6c, 0xff7e,
+ 0xff8e, 0xff7d, 0xff3d, 0xfedd, 0xfe78, 0xfe1b,
+ 0xfdd4, 0xfdb0, 0xfda5, 0xfdb0, 0xfdd0, 0xfdec,
+ 0xfe05, 0xfe2b, 0xfe54, 0xfe84, 0xfed3, 0xff24,
+ 0xff54, 0xff61, 0xff4e, 0xff26, 0xfef9, 0xfeb7,
+ 0xfe73, 0xfe61, 0xfe6e, 0xfe8a, 0xfeda, 0xff47,
+ 0xffa2, 0xffec, 0x000e, 0xfffc, 0xffeb, 0xffe3,
+ 0xffc9, 0xffb0, 0xffa1, 0xff91, 0xff87, 0xff7f,
+ 0xff87, 0xffba, 0x0003, 0x0040, 0x0054, 0x0023,
+ 0xffc8, 0xff71, 0xff2a, 0xff0d, 0xff25, 0xff4c,
+ 0xff76, 0xffa9, 0xffbd, 0xffa0, 0xff6a, 0xff26,
+ 0xfed7, 0xfe90, 0xfe61, 0xfe4b, 0xfe43, 0xfe47,
+ 0xfe5e, 0xfe7b, 0xfe9f, 0xfed4, 0xfefc, 0xff07,
+ 0xff04, 0xfefe, 0xff09, 0xff23, 0xff23, 0xff25,
+ 0xff4c, 0xff69, 0xff7a, 0xff9e, 0xffb6, 0xffc6,
+ 0xffe8, 0xffea, 0xffc1, 0xff97, 0xff61, 0xff2d,
+ 0xff1e, 0xff21, 0xff23, 0xff17, 0xfeed, 0xfeb7,
+ 0xfe81, 0xfe4c, 0xfe28, 0xfe1d, 0xfe23, 0xfe31,
+ 0xfe26, 0xfdef, 0xfd99, 0xfd4b, 0xfd3a, 0xfd58,
+ 0xfd72, 0xfd92, 0xfdcb, 0xfe07, 0xfe3c, 0xfe64,
+ 0xfe74, 0xfe63, 0xfe21, 0xfdce, 0xfd9d, 0xfd80,
+ 0xfd66, 0xfd69, 0xfd7d, 0xfd7f, 0xfd79, 0xfd7f,
+ 0xfd99, 0xfdca, 0xfe08, 0xfe4e, 0xfe95, 0xfee7,
+ 0xff4b, 0xff8f, 0xff9b, 0xff9c, 0xff95, 0xff6f,
+ 0xff41, 0xff11, 0xfece, 0xfe8e, 0xfe73, 0xfe8b,
+ 0xfec8, 0xfefb, 0xff10, 0xff1e, 0xff2b, 0xff32,
+ 0xff32, 0xff25, 0xff12, 0xfef1, 0xfeb2, 0xfe7f,
+ 0xfe8d, 0xfec8, 0xff17, 0xff85, 0xfff7, 0x0047,
+ 0x007f, 0x0097, 0x007c, 0x0049, 0x001c, 0x0001,
+ 0xfffb, 0xfff7, 0xffe2, 0xffc6, 0xffa4, 0xff6c,
+ 0xff1c, 0xfed0, 0xfe9f, 0xfe82, 0xfe79, 0xfeb9,
+ 0xff42, 0xffc9, 0x003a, 0x0099, 0x00c0, 0x00d0,
+ 0x00fb, 0x0114, 0x00f6, 0x00b1, 0x0040, 0xffad,
+ 0xff1d, 0xfeaa, 0xfe64, 0xfe50, 0xfe75, 0xfece,
+ 0xff2c, 0xff71, 0xffa8, 0xffab, 0xff74, 0xff3b,
+ 0xfeff, 0xfec1, 0xfeb1, 0xfebd, 0xfece, 0xfef3,
+ 0xfefd, 0xfebf, 0xfe59, 0xfdea, 0xfd8e, 0xfd63,
+ 0xfd68, 0xfdab, 0xfe21, 0xfe7d, 0xfea2, 0xfeb4,
+ 0xfeb6, 0xfe9f, 0xfe73, 0xfe3c, 0xfe15, 0xfe11,
+ 0xfe22, 0xfe30, 0xfe2a, 0xfe16, 0xfe08, 0xfe0a,
+ 0xfe17, 0xfe25, 0xfe4c, 0xfea7, 0xff0d, 0xff58,
+ 0xffa1, 0xffd9, 0xffdc, 0xffc4, 0xffae, 0xffaf,
+ 0xffdc, 0x000c, 0x0023, 0x0036, 0x0032, 0x0008,
+ 0xffde, 0xffbf, 0xffb5, 0xffc8, 0xffdc, 0x0008,
+ 0x006d, 0x00cb, 0x00f2, 0x00f4, 0x00cc, 0x006c,
+ 0xfff4, 0xff7d, 0xff0f, 0xfebe, 0xfea0, 0xfec9,
+ 0xff2f, 0xffa1, 0xffec, 0x000c, 0x0018, 0x0008,
+ 0xffe7, 0xffcb, 0xffa9, 0xff7c, 0xff6b, 0xff6b,
+ 0xff61, 0xff63, 0xff5c, 0xff2f, 0xff0f, 0xff19,
+ 0xff3b, 0xff80, 0xffd9, 0x0011, 0x0033, 0x005d,
+ 0x007e, 0x0098, 0x00c9, 0x00f3, 0x00ee, 0x00d3,
+ 0x00b6, 0x0079, 0x0033, 0x000e, 0xffed, 0xffca,
+ 0xffcf, 0xffe9, 0xfffb, 0x001e, 0x0059, 0x009d,
+ 0x00e1, 0x0112, 0x0126, 0x011b, 0x00e6, 0x0098,
+ 0x0048, 0xfff9, 0xffc5, 0xffce, 0xfff7, 0x0021,
+ 0x0056, 0x009f, 0x00f8, 0x015e, 0x01b7, 0x01d6,
+ 0x01c1, 0x019c, 0x016a, 0x0130, 0x010c, 0x0103,
+ 0x0106, 0x0115, 0x012b, 0x0128, 0x00eb, 0x0071,
+ 0xffe1, 0xff5b, 0xfef1, 0xfeaf, 0xfe89, 0xfe6c,
+ 0xfe69, 0xfe82, 0xfe9f, 0xfec4, 0xfef4, 0xff19,
+ 0xff1d, 0xfefd, 0xfed7, 0xfec2, 0xfead, 0xfe98,
+ 0xfe82, 0xfe57, 0xfe2e, 0xfe28, 0xfe3b, 0xfe72,
+ 0xfed4, 0xff34, 0xff7f, 0xffb0, 0xffac, 0xff9a,
+ 0xffa4, 0xffa5, 0xff98, 0xffa2, 0xffc0, 0xfff1,
+ 0x002a, 0x004d, 0x0073, 0x00c6, 0x0121, 0x0155,
+ 0x0165, 0x0164, 0x0169, 0x0182, 0x0193, 0x0180,
+ 0x0148, 0x00e1, 0x004c, 0xffc8, 0xff8b, 0xff97,
+ 0xffd9, 0x0035, 0x0089, 0x00c3, 0x00da, 0x00c2,
+ 0x0094, 0x0070, 0x005d, 0x005c, 0x005d, 0x0055,
+ 0x0051, 0x005f, 0x0086, 0x00c6, 0x00f3, 0x00f1,
+ 0x00cc, 0x008a, 0x0045, 0x0006, 0xffa9, 0xff39,
+ 0xfefb, 0xfef8, 0xff11, 0xff3a, 0xff63, 0xff8e,
+ 0xffba, 0xffd0, 0xffca, 0xffad, 0xff7b, 0xff51,
+ 0xff43, 0xff54, 0xff84, 0xffa9, 0xffb5, 0xffc7,
+ 0xffd5, 0xffd0, 0xffe2, 0x0008, 0x0020, 0x0037,
+ 0x0043, 0x0020, 0xffe4, 0xffb6, 0xff9c, 0xff91,
+ 0xff8b, 0xff7c, 0xff58, 0xff15, 0xfec4, 0xfe74,
+ 0xfe34, 0xfe1d, 0xfe29, 0xfe3d, 0xfe61, 0xfe95,
+ 0xfec4, 0xff00, 0xff4f, 0xff80, 0xff7e, 0xff6a,
+ 0xff4a, 0xff1e, 0xff01, 0xfeec, 0xfec1, 0xfe98,
+ 0xfe84, 0xfe70, 0xfe73, 0xfeaa, 0xfeec, 0xff1d,
+ 0xff52, 0xff89, 0xffb8, 0xffe4, 0x0018, 0x0064,
+ 0x00b9, 0x00f7, 0x010f, 0x0100, 0x00cf, 0x00ab,
+ 0x00ba, 0x00e8, 0x0110, 0x0129, 0x0133, 0x013a,
+ 0x0151, 0x0170, 0x0165, 0x0125, 0x00e0, 0x00a3,
+ 0x006a, 0x0060, 0x008a, 0x00c1, 0x00f8, 0x0125,
+ 0x012a, 0x0113, 0x00f9, 0x00d8, 0x00aa, 0x0091,
+ 0x00b0, 0x00f6, 0x0148, 0x01a6, 0x01e5, 0x01d4,
+ 0x018f, 0x012b, 0x00aa, 0x0032, 0xffd6, 0xff84,
+ 0xff45, 0xff18, 0xfefc, 0xff0c, 0xff35, 0xff64,
+ 0xffaf, 0x0006, 0x004a, 0x007b, 0x00a0, 0x00bd,
+ 0x00d9, 0x00eb, 0x00f0, 0x00d4, 0x0093, 0x005e,
+ 0x0048, 0x003d, 0x0036, 0x0024, 0xfff5, 0xffb9,
+ 0xff7f, 0xff60, 0xff75, 0xffad, 0xfff4, 0x0037,
+ 0x0052, 0x0040, 0x0022, 0x000f, 0x0018, 0x0028,
+ 0x002b, 0x0042, 0x0077, 0x00a9, 0x00e1, 0x0113,
+ 0x0120, 0x0115, 0x00f7, 0x00af, 0x005f, 0x0040,
+ 0x0051, 0x0070, 0x0086, 0x0087, 0x0074, 0x005d,
+ 0x0054, 0x0054, 0x0047, 0x0023, 0xfff4, 0xffdd,
+ 0xffec, 0x0003, 0x001b, 0x004a, 0x0095, 0x00f9,
+ 0x016f, 0x01cb, 0x01f1, 0x01dc, 0x018e, 0x012a,
+ 0x00cd, 0x006a, 0x0013, 0xfff4, 0x0002, 0x0027,
+ 0x0061, 0x00a7, 0x00e5, 0x011a, 0x015b, 0x01a6,
+ 0x01de, 0x01f8, 0x01f6, 0x01d7, 0x01ad, 0x018f,
+ 0x0178, 0x0160, 0x0147, 0x0138, 0x0146, 0x015a,
+ 0x014f, 0x0139, 0x0129, 0x010f, 0x010d, 0x014b,
+ 0x01b4, 0x022f, 0x02a8, 0x02f5, 0x02f1, 0x028f,
+ 0x01e5, 0x012e, 0x0091, 0x001d, 0xffe9, 0xffe8,
+ 0xffee, 0xffe9, 0xffd5, 0xffc0, 0xffcb, 0xfff3,
+ 0x0020, 0x0049, 0x0053, 0x0027, 0xffe0, 0xff87,
+ 0xff1d, 0xfebd, 0xfe81, 0xfe7b, 0xfeb4, 0xff00,
+ 0xff2f, 0xff37, 0xff11, 0xfec8, 0xfe7b, 0xfe30,
+ 0xfdea, 0xfdbe, 0xfdaf, 0xfdb4, 0xfdcd, 0xfde7,
+ 0xfde0, 0xfdac, 0xfd66, 0xfd21, 0xfce7, 0xfcd9,
+ 0xfd0c, 0xfd61, 0xfdb8, 0xfe0b, 0xfe49, 0xfe66,
+ 0xfe6f, 0xfe78, 0xfe98, 0xfed4, 0xff1a, 0xff56,
+ 0xff81, 0xffa7, 0xffcb, 0xffd7, 0xffe2, 0x0010,
+ 0x004e, 0x0085, 0x00b8, 0x00cc, 0x00c0, 0x00be,
+ 0x00b3, 0x0093, 0x0091, 0x00b3, 0x00db, 0x0118,
+ 0x016b, 0x01ad, 0x01c1, 0x019f, 0x014e, 0x00e2,
+ 0x006c, 0x0018, 0x0018, 0x0060, 0x00c3, 0x0121,
+ 0x0166, 0x0199, 0x01bc, 0x01bc, 0x01a6, 0x018b,
+ 0x015d, 0x012c, 0x010f, 0x00f9, 0x00f0, 0x00fa,
+ 0x00ff, 0x010f, 0x0135, 0x0140, 0x0137, 0x013b,
+ 0x013e, 0x013e, 0x0145, 0x0140, 0x0149, 0x0166,
+ 0x015e, 0x012b, 0x00f7, 0x00c8, 0x00a8, 0x00a2,
+ 0x00b1, 0x00cb, 0x00ed, 0x0122, 0x0160, 0x0178,
+ 0x0159, 0x011f, 0x00e1, 0x00b9, 0x00a8, 0x0087,
+ 0x0048, 0xfffe, 0xffa8, 0xff5b, 0xff38, 0xff34,
+ 0xff31, 0xff35, 0xff4b, 0xff65, 0xff7d, 0xff8b,
+ 0xff68, 0xff22, 0xfef7, 0xfee1, 0xfeca, 0xfece,
+ 0xfee6, 0xff0b, 0xff4b, 0xff6a, 0xff4b, 0xff17,
+ 0xfec9, 0xfe71, 0xfe46, 0xfe2e, 0xfe17, 0xfe23,
+ 0xfe57, 0xfec9, 0xff6b, 0xffea, 0x003d, 0x006e,
+ 0x0057, 0x0021, 0xfff2, 0xffad, 0xff7b, 0xff7c,
+ 0xff96, 0xffdc, 0x0032, 0x0054, 0x0044, 0x001b,
+ 0xffe5, 0xffc3, 0xffbb, 0xffc4, 0xffd4, 0xffd9,
+ 0xffeb, 0x0008, 0x000c, 0x000d, 0x0029, 0x0041,
+ 0x004e, 0x0059, 0x0056, 0x003f, 0x0010, 0xffdc,
+ 0xffaf, 0xff76, 0xff3c, 0xff00, 0xfe9e, 0xfe31,
+ 0xfdd6, 0xfd89, 0xfd6c, 0xfd74, 0xfd59, 0xfd1e,
+ 0xfceb, 0xfcd8, 0xfcfe, 0xfd46, 0xfd93, 0xfde4,
+ 0xfe0e, 0xfe09, 0xfe04, 0xfe00, 0xfdfe, 0xfe07,
+ 0xfdfe, 0xfde8, 0xfde6, 0xfde2, 0xfde0, 0xfe09,
+ 0xfe53, 0xfe95, 0xfeba, 0xfec1, 0xfec1, 0xfeca,
+ 0xfed1, 0xfed0, 0xfedc, 0xff01, 0xff3a, 0xff8a,
+ 0xfff6, 0x0065, 0x00bf, 0x00f3, 0x00e9, 0x00a0,
+ 0x0040, 0xffff, 0xfff4, 0x001b, 0x0064, 0x00c2,
+ 0x011d, 0x0159, 0x0165, 0x0131, 0x00db, 0x009b,
+ 0x0078, 0x0067, 0x0061, 0x004b, 0x002b, 0x0015,
+ 0xfff8, 0xffd5, 0xffc4, 0xffaa, 0xff83, 0xff68,
+ 0xff4a, 0xff22, 0xfef7, 0xfeb3, 0xfe67, 0xfe33,
+ 0xfe10, 0xfe05, 0xfe14, 0xfe23, 0xfe3c, 0xfe63,
+ 0xfe73, 0xfe69, 0xfe4d, 0xfe18, 0xfde0, 0xfdb4,
+ 0xfd92, 0xfd7a, 0xfd5b, 0xfd31, 0xfd12, 0xfd06,
+ 0xfd19, 0xfd64, 0xfddf, 0xfe5e, 0xfeb9, 0xfee2,
+ 0xfeeb, 0xfed8, 0xfeb2, 0xfe85, 0xfe51, 0xfe1f,
+ 0xfdfb, 0xfdda, 0xfdcd, 0xfdea, 0xfe27, 0xfe76,
+ 0xfeb9, 0xfed2, 0xfed2, 0xfecc, 0xfeca, 0xfedc,
+ 0xfeec, 0xfee4, 0xfed7, 0xfec6, 0xfeae, 0xfe99,
+ 0xfe82, 0xfe7c, 0xfe9c, 0xfecc, 0xff00, 0xff2e,
+ 0xff47, 0xff57, 0xff5f, 0xff5a, 0xff57, 0xff4e,
+ 0xff3d, 0xff32, 0xff22, 0xff01, 0xfedf, 0xfeb9,
+ 0xfe93, 0xfe71, 0xfe4f, 0xfe3d, 0xfe2c, 0xfe0e,
+ 0xfe05, 0xfdfd, 0xfdcf, 0xfdab, 0xfdab, 0xfdba,
+ 0xfde5, 0xfe19, 0xfe3f, 0xfe56, 0xfe3a, 0xfdf1,
+ 0xfdc1, 0xfdaf, 0xfdac, 0xfdd9, 0xfe34, 0xfe9f,
+ 0xff04, 0xff53, 0xff92, 0xffb8, 0xffad, 0xff85,
+ 0xff52, 0xff10, 0xfed2, 0xfea2, 0xfe7e, 0xfe6f,
+ 0xfe6a, 0xfe67, 0xfe70, 0xfe7e, 0xfe90, 0xfead,
+ 0xfecd, 0xff04, 0xff4d, 0xff81, 0xffa1, 0xffb0,
+ 0xff8e, 0xff5d, 0xff50, 0xff5d, 0xff7c, 0xffad,
+ 0xffd5, 0xffeb, 0xfff7, 0xffea, 0xffc5, 0xff9d,
+ 0xff7d, 0xff64, 0xff61, 0xff86, 0xffc6, 0x0010,
+ 0x0066, 0x00c1, 0x0111, 0x014c, 0x0168, 0x0167,
+ 0x0158, 0x014c, 0x014a, 0x0147, 0x0135, 0x010b,
+ 0x00cf, 0x00a4, 0x00ab, 0x00da, 0x011c, 0x0153,
+ 0x0162, 0x0157, 0x0154, 0x0167, 0x0189, 0x019f,
+ 0x0192, 0x0170, 0x0149, 0x012d, 0x0135, 0x0156,
+ 0x0176, 0x018f, 0x01a7, 0x01bf, 0x01c7, 0x01a6,
+ 0x015f, 0x0105, 0x00a9, 0x0062, 0x0026, 0xffdd,
+ 0xffa8, 0xff9f, 0xffa0, 0xff87, 0xff49, 0xfef0,
+ 0xfea4, 0xfe82, 0xfe81, 0xfe87, 0xfe8a, 0xfe93,
+ 0xfea1, 0xfeaa, 0xfeb9, 0xfec5, 0xfebc, 0xfeb0,
+ 0xfeb9, 0xfecd, 0xfed8, 0xfec9, 0xfe95, 0xfe43,
+ 0xfdf6, 0xfddc, 0xfe07, 0xfe56, 0xfe96, 0xfec0,
+ 0xfee5, 0xff0b, 0xff2c, 0xff45, 0xff47, 0xff2b,
+ 0xff08, 0xff01, 0xff20, 0xff51, 0xff78, 0xff82,
+ 0xff63, 0xff17, 0xfeb2, 0xfe59, 0xfe29, 0xfe3b,
+ 0xfe97, 0xff18, 0xff90, 0xffe4, 0x0009, 0x0000,
+ 0xffcd, 0xff89, 0xff4f, 0xff18, 0xfeee, 0xfeec,
+ 0xfef3, 0xfef3, 0xff03, 0xff05, 0xfed4, 0xfe9a,
+ 0xfe7c, 0xfe7c, 0xfea0, 0xfee0, 0xff2b, 0xff5a,
+ 0xff45, 0xff02, 0xfeba, 0xfe7f, 0xfe57, 0xfe25,
+ 0xfddd, 0xfdb0, 0xfdb0, 0xfdbf, 0xfdda, 0xfdf2,
+ 0xfdf5, 0xfde8, 0xfdcd, 0xfdbe, 0xfdbf, 0xfdaa,
+ 0xfd96, 0xfdb0, 0xfddb, 0xfdf3, 0xfdfe, 0xfe09,
+ 0xfe2e, 0xfe5e, 0xfe6f, 0xfe55, 0xfe24, 0xfdf5,
+ 0xfdcb, 0xfda2, 0xfd82, 0xfd56, 0xfd10, 0xfcee,
+ 0xfcf1, 0xfcf1, 0xfcff, 0xfd10, 0xfd01, 0xfcf3,
+ 0xfcfb, 0xfd11, 0xfd3b, 0xfd5b, 0xfd59, 0xfd44,
+ 0xfd27, 0xfd09, 0xfceb, 0xfcd0, 0xfcd2, 0xfcf4,
+ 0xfd2b, 0xfd85, 0xfdf0, 0xfe48, 0xfe75, 0xfe66,
+ 0xfe29, 0xfdd7, 0xfd7a, 0xfd37, 0xfd1f, 0xfd18,
+ 0xfd2c, 0xfd60, 0xfd9c, 0xfdd8, 0xfe1f, 0xfe8b,
+ 0xff12, 0xff78, 0xffa9, 0xff9e, 0xff4b, 0xfee1,
+ 0xfe94, 0xfe71, 0xfe94, 0xfee0, 0xff14, 0xff3c,
+ 0xff68, 0xff8c, 0xffad, 0xffcb, 0xffe4, 0x0000,
+ 0x001a, 0x0034, 0x004b, 0x004f, 0x0042, 0x0026,
+ 0x0009, 0x0003, 0x0000, 0x0000, 0x001e, 0x0047,
+ 0x007a, 0x00c6, 0x0106, 0x0127, 0x0122, 0x00e0,
+ 0x008f, 0x0076, 0x0096, 0x00d9, 0x0117, 0x0123,
+ 0x0104, 0x00ce, 0x0090, 0x0063, 0x0052, 0x005a,
+ 0x0075, 0x0091, 0x009f, 0x0097, 0x007a, 0x005b,
+ 0x0046, 0x003e, 0x0038, 0x0021, 0xfffe, 0xfff0,
+ 0xfff6, 0xfffb, 0x0005, 0x0000, 0xffc2, 0xff55,
+ 0xfedc, 0xfe7b, 0xfe4b, 0xfe3e, 0xfe37, 0xfe3c,
+ 0xfe5d, 0xfe8f, 0xfeb9, 0xfed8, 0xfef8, 0xff11,
+ 0xff10, 0xfef4, 0xfec5, 0xfe99, 0xfe93, 0xfeb1,
+ 0xfed6, 0xfef0, 0xfef5, 0xfeeb, 0xfed8, 0xfeb3,
+ 0xfe81, 0xfe4f, 0xfe1c, 0xfe08, 0xfe18, 0xfe2f,
+ 0xfe59, 0xfe95, 0xfeb1, 0xfe99, 0xfe50, 0xfde5,
+ 0xfd8b, 0xfd66, 0xfd78, 0xfdbc, 0xfe00, 0xfe23,
+ 0xfe31, 0xfe27, 0xfe12, 0xfe15, 0xfe33, 0xfe61,
+ 0xfe8a, 0xfe8c, 0xfe69, 0xfe3b, 0xfe09, 0xfdd4,
+ 0xfdb1, 0xfdb2, 0xfdd2, 0xfe12, 0xfe7e, 0xfeef,
+ 0xff2e, 0xff36, 0xff05, 0xfeae, 0xfe6e, 0xfe5c,
+ 0xfe71, 0xfe9b, 0xfeb3, 0xfeb7, 0xfec3, 0xfecf,
+ 0xfee8, 0xff16, 0xff5e, 0xffce, 0x003b, 0x0084,
+ 0x00cd, 0x00fc, 0x00fa, 0x010a, 0x012b, 0x013c,
+ 0x016d, 0x01b6, 0x01e1, 0x01f4, 0x01f4, 0x01e0,
+ 0x01cd, 0x01cf, 0x01f3, 0x022a, 0x0257, 0x0270,
+ 0x026e, 0x0255, 0x0242, 0x023b, 0x0238, 0x022e,
+ 0x021d, 0x0210, 0x01f6, 0x01c4, 0x01a0, 0x0194,
+ 0x0193, 0x019d, 0x0191, 0x0158, 0x0107, 0x00a7,
+ 0x0042, 0x0003, 0xffff, 0x0022, 0x0049, 0x0066,
+ 0x0085, 0x0098, 0x008d, 0x0069, 0x002d, 0xffe2,
+ 0xffa8, 0xff83, 0xff75, 0xff87, 0xff9b, 0xff94,
+ 0xff86, 0xff86, 0xff8d, 0xff8e, 0xff99, 0xffc3,
+ 0x0006, 0x0045, 0x0064, 0x0061, 0x003f, 0x0009,
+ 0xffd6, 0xffa4, 0xff76, 0xff70, 0xff80, 0xff72,
+ 0xff5b, 0xff57, 0xff4f, 0xff3a, 0xff1c, 0xfef0,
+ 0xfec8, 0xfec5, 0xfef1, 0xff2c, 0xff4d, 0xff54,
+ 0xff4e, 0xff4c, 0xff5a, 0xff60, 0xff51, 0xff47,
+ 0xff40, 0xff3a, 0xff46, 0xff5e, 0xff8e, 0xffd8,
+ 0x000b, 0x000b, 0xffda, 0xff84, 0xff24, 0xfed2,
+ 0xfead, 0xfece, 0xff1b, 0xff73, 0xffb5, 0xffbe,
+ 0xffb6, 0xffbe, 0xffb4, 0xffa9, 0xffb5, 0xffbe,
+ 0xffca, 0xffe6, 0x0003, 0x0032, 0x0077, 0x00ae,
+ 0x00c5, 0x00ba, 0x00a4, 0x00a7, 0x00c2, 0x00d9,
+ 0x00e9, 0x00f3, 0x00e4, 0x00ba, 0x0098, 0x0093,
+ 0x00a0, 0x00bb, 0x00ce, 0x00c1, 0x00bc, 0x00da,
+ 0x0100, 0x012e, 0x0165, 0x0187, 0x0188, 0x0171,
+ 0x0150, 0x0137, 0x0125, 0x0123, 0x0140, 0x016a,
+ 0x0183, 0x0183, 0x016e, 0x0149, 0x012a, 0x0137,
+ 0x015e, 0x0174, 0x0186, 0x019a, 0x0189, 0x0164,
+ 0x013a, 0x00f3, 0x00b1, 0x008c, 0x0063, 0x003e,
+ 0x0031, 0x002d, 0x0044, 0x007b, 0x00ab, 0x00c3,
+ 0x00b0, 0x006f, 0x0034, 0x0014, 0xfffa, 0xffe5,
+ 0xffd0, 0xffb1, 0xffa0, 0xffac, 0xffd1, 0x000e,
+ 0x0043, 0x006b, 0x0092, 0x0091, 0x0057, 0x001c,
+ 0x0001, 0x0005, 0x002a, 0x005a, 0x007a, 0x0085,
+ 0x007e, 0x0073, 0x0071, 0x007f, 0x00a9, 0x00e2,
+ 0x0104, 0x0102, 0x00e8, 0x00c0, 0x0090, 0x0069,
+ 0x0052, 0x0032, 0xfff4, 0xffa9, 0xff69, 0xff4b,
+ 0xff5c, 0xff77, 0xff7c, 0xff80, 0xffa1, 0xffd7,
+ 0xfffd, 0x0004, 0xfffa, 0xffe8, 0xffde, 0xffe5,
+ 0xfff3, 0xfffc, 0xfff6, 0xffd7, 0xffa3, 0xff5e,
+ 0xff0c, 0xfed0, 0xfec1, 0xfed8, 0xff0f, 0xff61,
+ 0xffb9, 0x0000, 0x0029, 0x0041, 0x005b, 0x008d,
+ 0x00e1, 0x0137, 0x0171, 0x0192, 0x01a2, 0x01a1,
+ 0x0192, 0x0171, 0x014e, 0x013f, 0x014b, 0x017d,
+ 0x01c3, 0x01f6, 0x0215, 0x022d, 0x024a, 0x0275,
+ 0x0288, 0x026c, 0x0253, 0x023e, 0x021a, 0x0207,
+ 0x01fc, 0x01cd, 0x0199, 0x0174, 0x0154, 0x0152,
+ 0x0157, 0x0123, 0x00cf, 0x0088, 0x0050, 0x003c,
+ 0x0044, 0x0034, 0x0010, 0xffe4, 0xff95, 0xff3a,
+ 0xfef2, 0xfebf, 0xfeb2, 0xfebc, 0xfebd, 0xfec5,
+ 0xfec8, 0xfe9a, 0xfe48, 0xfdea, 0xfd90, 0xfd60,
+ 0xfd59, 0xfd57, 0xfd49, 0xfd20, 0xfcf3, 0xfce3,
+ 0xfcd8, 0xfcb9, 0xfc98, 0xfc7b, 0xfc63, 0xfc53,
+ 0xfc46, 0xfc3f, 0xfc45, 0xfc61, 0xfca2, 0xfcf4,
+ 0xfd20, 0xfd1d, 0xfd11, 0xfd0e, 0xfd13, 0xfd24,
+ 0xfd45, 0xfd69, 0xfd76, 0xfd62, 0xfd36, 0xfcf3,
+ 0xfca6, 0xfc75, 0xfc72, 0xfca1, 0xfd0d, 0xfda4,
+ 0xfe3b, 0xfec2, 0xff3e, 0xffa7, 0xffe3, 0xfff2,
+ 0xffee, 0xffd9, 0xffb7, 0xffa5, 0xff95, 0xff63,
+ 0xff27, 0xff0d, 0xff30, 0xff93, 0x0012, 0x008b,
+ 0x00f4, 0x0142, 0x016e, 0x017d, 0x0163, 0x011d,
+ 0x00d3, 0x00ae, 0x00ad, 0x00c6, 0x00fa, 0x0133,
+ 0x0139, 0x011b, 0x0114, 0x0120, 0x0130, 0x0159,
+ 0x018b, 0x01a9, 0x01c7, 0x01e5, 0x01fc, 0x0229,
+ 0x025f, 0x0275, 0x027e, 0x0286, 0x0276, 0x025a,
+ 0x0242, 0x022a, 0x0221, 0x022f, 0x023a, 0x021e,
+ 0x01e9, 0x01cf, 0x01d6, 0x01e5, 0x020d, 0x0232,
+ 0x0216, 0x01e2, 0x01c1, 0x0199, 0x017b, 0x016b,
+ 0x0147, 0x012a, 0x0123, 0x010e, 0x00ec, 0x00d3,
+ 0x00c7, 0x00be, 0x00ae, 0x0091, 0x005c, 0x000f,
+ 0xffc7, 0xff93, 0xff70, 0xff62, 0xff5b, 0xff4b,
+ 0xff2d, 0xff04, 0xfeeb, 0xfee7, 0xfed9, 0xfec2,
+ 0xfeb9, 0xfec1, 0xfec8, 0xfeb7, 0xfe9d, 0xfe88,
+ 0xfe65, 0xfe4a, 0xfe4c, 0xfe3e, 0xfe22, 0xfe18,
+ 0xfe01, 0xfde8, 0xfdf3, 0xfe0b, 0xfe10, 0xfe10,
+ 0xfe24, 0xfe58, 0xfeb2, 0xff36, 0xffbb, 0x000a,
+ 0x0038, 0x005a, 0x005a, 0x003e, 0x000f, 0xffda,
+ 0xffbc, 0xffb6, 0xffaf, 0xff9a, 0xff78, 0xff5d,
+ 0xff56, 0xff61, 0xff7d, 0xff95, 0xffa5, 0xffd0,
+ 0x0016, 0x005e, 0x0085, 0x0072, 0x0041, 0x0024,
+ 0x0016, 0x001d, 0x0044, 0x0060, 0x004d, 0x001a,
+ 0xffda, 0xff90, 0xff54, 0xff47, 0xff5f, 0xff7d,
+ 0xff9b, 0xffae, 0xffa9, 0xff85, 0xff41, 0xff0b,
+ 0xff0f, 0xff3e, 0xff89, 0xffca, 0xffc4, 0xff8d,
+ 0xff5b, 0xff39, 0xff45, 0xff87, 0xffcc, 0x0008,
+ 0x0055, 0x00aa, 0x00f8, 0x012f, 0x0149, 0x0147,
+ 0x012a, 0x00fd, 0x00d3, 0x00b6, 0x00a4, 0x00a6,
+ 0x00d0, 0x011f, 0x0185, 0x01f4, 0x0231, 0x0208,
+ 0x01ab, 0x0157, 0x0112, 0x00d1, 0x0092, 0x0068,
+ 0x0061, 0x0063, 0x0065, 0x0058, 0x0015, 0xffac,
+ 0xff45, 0xfede, 0xfe7f, 0xfe45, 0xfe2d, 0xfe29,
+ 0xfe2f, 0xfe3b, 0xfe53, 0xfe73, 0xfe87, 0xfe75,
+ 0xfe40, 0xfe00, 0xfdb4, 0xfd55, 0xfce4, 0xfc6b,
+ 0xfc17, 0xfbf3, 0xfbe7, 0xfbfd, 0xfc29, 0xfc47,
+ 0xfc5d, 0xfc5a, 0xfc2e, 0xfc0b, 0xfc0a, 0xfc2a,
+ 0xfc77, 0xfccd, 0xfd15, 0xfd63, 0xfda9, 0xfde6,
+ 0xfe2a, 0xfe5e, 0xfe79, 0xfe7f, 0xfe77, 0xfe7c,
+ 0xfe90, 0xfea0, 0xfeba, 0xfee0, 0xfefd, 0xff07,
+ 0xff0d, 0xff1e, 0xff23, 0xff12, 0xff12, 0xff19,
+ 0xff04, 0xfeed, 0xfedf, 0xfed7, 0xfee9, 0xff05,
+ 0xff14, 0xff14, 0xfef4, 0xfec3, 0xfea2, 0xfe90,
+ 0xfe89, 0xfe87, 0xfe8c, 0xfebb, 0xff16, 0xff64,
+ 0xff84, 0xff72, 0xff34, 0xfee0, 0xfe97, 0xfe7c,
+ 0xfe87, 0xfe92, 0xfea6, 0xfeda, 0xff1d, 0xff65,
+ 0xffa0, 0xffb8, 0xffc4, 0xffd1, 0xffbe, 0xff86,
+ 0xff51, 0xff31, 0xff24, 0xff22, 0xff3a, 0xff79,
+ 0xffc1, 0xfff0, 0xfffa, 0xffe9, 0xffca, 0xffba,
+ 0xffce, 0xfff8, 0x001a, 0x0040, 0x0079, 0x00b2,
+ 0x00d9, 0x00d7, 0x00a5, 0x006f, 0x0045, 0x000f,
+ 0xffd8, 0xffa8, 0xff7b, 0xff6c, 0xff85, 0xffb7,
+ 0xfffc, 0x003a, 0x004e, 0x0028, 0xffd3, 0xff7f,
+ 0xff4a, 0xff13, 0xfec9, 0xfe80, 0xfe3c, 0xfdfd,
+ 0xfdcb, 0xfdbf, 0xfdd6, 0xfdfd, 0xfe3f, 0xfe8e,
+ 0xfec1, 0xfeee, 0xff23, 0xff3e, 0xff48, 0xff3b,
+ 0xff09, 0xfed7, 0xfea8, 0xfe78, 0xfe5c, 0xfe3c,
+ 0xfe1a, 0xfe13, 0xfdfd, 0xfde0, 0xfdec, 0xfe08,
+ 0xfe38, 0xfe8a, 0xfed7, 0xff21, 0xff69, 0xff8c,
+ 0xff82, 0xff4d, 0xff02, 0xfed6, 0xfec2, 0xfeb0,
+ 0xfeae, 0xfeb3, 0xfebf, 0xfee3, 0xff17, 0xff39,
+ 0xff31, 0xff13, 0xfefa, 0xfed5, 0xfeaa, 0xfe8d,
+ 0xfe6b, 0xfe51, 0xfe4e, 0xfe59, 0xfe7b, 0xfea9,
+ 0xfecb, 0xfef1, 0xff0a, 0xff11, 0xff24, 0xff20,
+ 0xfef3, 0xfece, 0xfea9, 0xfe7e, 0xfe7d, 0xfea0,
+ 0xfec3, 0xfeef, 0xff29, 0xff5c, 0xff82, 0xff9f,
+ 0xffa3, 0xff88, 0xff5c, 0xff1d, 0xfed3, 0xfea7,
+ 0xfeab, 0xfece, 0xff00, 0xff35, 0xff69, 0xff95,
+ 0xffa0, 0xff8c, 0xff75, 0xff6e, 0xff85, 0xffc2,
+ 0x0015, 0x005f, 0x007a, 0x006d, 0x0055, 0x0033,
+ 0x0018, 0x001a, 0x002d, 0x0049, 0x0077, 0x00ad,
+ 0x00e4, 0x011b, 0x013c, 0x0145, 0x0150, 0x0157,
+ 0x0145, 0x011d, 0x00e2, 0x009a, 0x0064, 0x003e,
+ 0x0019, 0x0008, 0x000e, 0x001e, 0x0040, 0x0061,
+ 0x0063, 0x005a, 0x004e, 0x003f, 0x0040, 0x0042,
+ 0x002f, 0x001b, 0x0000, 0xffd6, 0xffb6, 0xffa9,
+ 0xff9a, 0xff71, 0xff18, 0xfe98, 0xfe1d, 0xfdd4,
+ 0xfdcd, 0xfdec, 0xfe08, 0xfe16, 0xfe12, 0xfe07,
+ 0xfe04, 0xfdf8, 0xfdd1, 0xfd8c, 0xfd28, 0xfcc5,
+ 0xfc9a, 0xfca1, 0xfcba, 0xfcf0, 0xfd34, 0xfd64,
+ 0xfd8d, 0xfda1, 0xfd8a, 0xfd74, 0xfd63, 0xfd3a,
+ 0xfd24, 0xfd29, 0xfd2a, 0xfd3d, 0xfd60, 0xfd80,
+ 0xfdad, 0xfdd2, 0xfde1, 0xfde7, 0xfdc9, 0xfd9f,
+ 0xfda0, 0xfdbd, 0xfdef, 0xfe35, 0xfe64, 0xfe7f,
+ 0xfe8c, 0xfe76, 0xfe48, 0xfe0d, 0xfdc6, 0xfd84,
+ 0xfd43, 0xfd20, 0xfd49, 0xfd9c, 0xfe07, 0xfe8e,
+ 0xfef4, 0xff1e, 0xff30, 0xff22, 0xfee9, 0xfeb3,
+ 0xfea6, 0xfeb2, 0xfec0, 0xfedb, 0xfef6, 0xfeed,
+ 0xfed1, 0xfeb3, 0xfe86, 0xfe5e, 0xfe41, 0xfe19,
+ 0xfdf8, 0xfdea, 0xfddc, 0xfdde, 0xfe03, 0xfe34,
+ 0xfe5d, 0xfe83, 0xfeae, 0xfed9, 0xff02, 0xff30,
+ 0xff58, 0xff7a, 0xff8d, 0xff8d, 0xff99, 0xffbc,
+ 0xffde, 0x0006, 0x0034, 0x004c, 0x0057, 0x005f,
+ 0x0068, 0x0082, 0x00a4, 0x00c7, 0x00ed, 0x00f4,
+ 0x00d6, 0x00ab, 0x0066, 0x001b, 0x0007, 0x0022,
+ 0x003f, 0x0059, 0x0069, 0x0062, 0x0050, 0x0038,
+ 0x000e, 0xffe4, 0xffcc, 0xffbc, 0xffa6, 0xff83,
+ 0xff47, 0xfefb, 0xfeaf, 0xfe73, 0xfe50, 0xfe3e,
+ 0xfe40, 0xfe65, 0xfe9e, 0xfed0, 0xfef3, 0xfefd,
+ 0xfefe, 0xfefa, 0xfee2, 0xfeca, 0xfebd, 0xfeb7,
+ 0xfebc, 0xfea8, 0xfe79, 0xfe62, 0xfe47, 0xfe1b,
+ 0xfe18, 0xfe3e, 0xfe7f, 0xfeee, 0xff55, 0xff93,
+ 0xffbe, 0xffd4, 0xffe5, 0xfff2, 0xffd9, 0xffa3,
+ 0xff64, 0xff1a, 0xfedc, 0xfeba, 0xfeae, 0xfebc,
+ 0xfeda, 0xff01, 0xff2c, 0xff3c, 0xff32, 0xff22,
+ 0xff09, 0xfef1, 0xfef1, 0xfef9, 0xfefa, 0xfef9,
+ 0xfeed, 0xfeca, 0xfeaa, 0xfe98, 0xfe6b, 0xfe22,
+ 0xfde3, 0xfdb0, 0xfd9a, 0xfda8, 0xfdb0, 0xfdaf,
+ 0xfdba, 0xfdb9, 0xfdb1, 0xfdb2, 0xfdb9, 0xfdd1,
+ 0xfdfb, 0xfe31, 0xfe68, 0xfe74, 0xfe54, 0xfe2d,
+ 0xfded, 0xfdae, 0xfda8, 0xfdd0, 0xfe1d, 0xfe80,
+ 0xfed1, 0xff1d, 0xff6e, 0xff9d, 0xffb0, 0xffbc,
+ 0xffcd, 0xfff9, 0x0039, 0x0086, 0x00d3, 0x010d,
+ 0x0151, 0x01ad, 0x01ef, 0x0227, 0x0268, 0x0276,
+ 0x024d, 0x021b, 0x01e8, 0x01d0, 0x01e1, 0x01f4,
+ 0x01f0, 0x01be, 0x015b, 0x00f7, 0x00a7, 0x0056,
+ 0x0016, 0xfff0, 0xffba, 0xff76, 0xff49, 0xff30,
+ 0xff33, 0xff4d, 0xff44, 0xff1c, 0xfefc, 0xfec6,
+ 0xfe6b, 0xfe08, 0xfda3, 0xfd46, 0xfd12, 0xfd06,
+ 0xfd0c, 0xfd22, 0xfd4e, 0xfd88, 0xfdbb, 0xfde0,
+ 0xfded, 0xfddd, 0xfdb8, 0xfd83, 0xfd4e, 0xfd40,
+ 0xfd4e, 0xfd64, 0xfd87, 0xfda7, 0xfdab, 0xfda3,
+ 0xfd97, 0xfd84, 0xfd76, 0xfd74, 0xfd85, 0xfdb5,
+ 0xfe03, 0xfe5c, 0xfe99, 0xfea6, 0xfe99, 0xfe97,
+ 0xfeaf, 0xfecf, 0xfeef, 0xff1a, 0xff3b, 0xff3c,
+ 0xff23, 0xfeed, 0xfead, 0xfe86, 0xfe64, 0xfe3b,
+ 0xfe2e, 0xfe32, 0xfe35, 0xfe56, 0xfe97, 0xfed1,
+ 0xff05, 0xff38, 0xff3d, 0xff14, 0xfef2, 0xfed4,
+ 0xfeb2, 0xfeb2, 0xfec7, 0xfed8, 0xfeff, 0xff2a,
+ 0xff47, 0xff7b, 0xffb4, 0xffd4, 0xfff2, 0x000b,
+ 0x0014, 0x001a, 0x002b, 0x004e, 0x006e, 0x0074,
+ 0x006e, 0x0067, 0x0065, 0x007f, 0x00ac, 0x00e2,
+ 0x012b, 0x0161, 0x016d, 0x016a, 0x0162, 0x016b,
+ 0x019b, 0x01e2, 0x0236, 0x0291, 0x02cf, 0x02e7,
+ 0x02dc, 0x02a1, 0x0246, 0x01ee, 0x019d, 0x0158,
+ 0x0122, 0x0102, 0x010d, 0x0141, 0x017e, 0x01ac,
+ 0x01c5, 0x01d8, 0x01f8, 0x0211, 0x0211, 0x0206,
+ 0x01f3, 0x01d5, 0x01b6, 0x018f, 0x015d, 0x0140,
+ 0x0136, 0x012c, 0x0125, 0x0117, 0x00f7, 0x00cf,
+ 0x00a3, 0x0085, 0x008c, 0x00c0, 0x010b, 0x014d,
+ 0x0173, 0x0173, 0x014c, 0x0125, 0x010d, 0x00e4,
+ 0x00c3, 0x00ba, 0x00a8, 0x00a6, 0x00c4, 0x00c1,
+ 0x008e, 0x0047, 0xfffd, 0xffcd, 0xffca, 0xffe4,
+ 0x000e, 0x0036, 0x0060, 0x007a, 0x005c, 0x0022,
+ 0xffe7, 0xffa0, 0xff69, 0xff48, 0xff2c, 0xff2d,
+ 0xff34, 0xff24, 0xff25, 0xff31, 0xff35, 0xff3f,
+ 0xff33, 0xff04, 0xfed8, 0xfead, 0xfe82, 0xfe6d,
+ 0xfe6a, 0xfe6b, 0xfe6e, 0xfe7c, 0xfe7f, 0xfe5c,
+ 0xfe3a, 0xfe31, 0xfe22, 0xfe2d, 0xfe55, 0xfe53,
+ 0xfe33, 0xfe2c, 0xfe42, 0xfe7d, 0xfecc, 0xff1e,
+ 0xff83, 0xffdc, 0x0016, 0x004f, 0x0073, 0x0079,
+ 0x007c, 0x006d, 0x004a, 0x0023, 0xfff9, 0xfff4,
+ 0x0033, 0x0099, 0x0111, 0x016d, 0x0163, 0x00f6,
+ 0x0064, 0xffe6, 0xffa2, 0xff98, 0xffb4, 0xfffd,
+ 0x0063, 0x00bc, 0x010b, 0x0173, 0x01e4, 0x024a,
+ 0x02ac, 0x02e6, 0x02d8, 0x02aa, 0x0282, 0x0259,
+ 0x022b, 0x01f7, 0x01c0, 0x019e, 0x0190, 0x018a,
+ 0x019c, 0x01cb, 0x0206, 0x0239, 0x0256, 0x0250,
+ 0x0219, 0x01c6, 0x0172, 0x0118, 0x00be, 0x0076,
+ 0x0033, 0xfff9, 0xffd8, 0xffb8, 0xff8b, 0xff64,
+ 0xff2c, 0xfed7, 0xfe84, 0xfe30, 0xfdc6, 0xfd58,
+ 0xfcfb, 0xfcbb, 0xfcab, 0xfcc6, 0xfce7, 0xfcfd,
+ 0xfd08, 0xfd03, 0xfcee, 0xfcd1, 0xfca7, 0xfc72,
+ 0xfc43, 0xfc25, 0xfc1c, 0xfc2a, 0xfc35, 0xfc33,
+ 0xfc3b, 0xfc4f, 0xfc56, 0xfc45, 0xfc16, 0xfbd8,
+ 0xfbb3, 0xfbb6, 0xfbdd, 0xfc19, 0xfc54, 0xfc9b,
+ 0xfcf9, 0xfd5a, 0xfda6, 0xfdba, 0xfd99, 0xfd90,
+ 0xfdc0, 0xfe07, 0xfe64, 0xfebb, 0xfee4, 0xff06,
+ 0xff41, 0xff8d, 0xffee, 0x0038, 0x004b, 0x0057,
+ 0x0064, 0x0057, 0x0042, 0x002c, 0x000e, 0xfff3,
+ 0xffd6, 0xffb4, 0xffa6, 0xffba, 0xffea, 0x002d,
+ 0x006b, 0x0081, 0x006e, 0x004d, 0x0024, 0xffe5,
+ 0xffa9, 0xff8a, 0xff78, 0xff76, 0xff9c, 0xffdb,
+ 0x001a, 0x004d, 0x0061, 0x0054, 0x0046, 0x0056,
+ 0x008e, 0x00e8, 0x0148, 0x017f, 0x0181, 0x0166,
+ 0x0137, 0x0104, 0x00f9, 0x0118, 0x0143, 0x017b,
+ 0x01bb, 0x01ee, 0x0226, 0x0271, 0x02ae, 0x02ca,
+ 0x02c6, 0x028f, 0x022f, 0x01d4, 0x0192, 0x017c,
+ 0x019e, 0x01d2, 0x01f2, 0x01f5, 0x01d1, 0x0190,
+ 0x014d, 0x0113, 0x0101, 0x0118, 0x0121, 0x0115,
+ 0x0107, 0x00e2, 0x00a5, 0x006f, 0x0043, 0x0011,
+ 0xffd5, 0xff90, 0xff4a, 0xff03, 0xfec7, 0xfe9b,
+ 0xfe7b, 0xfe7b, 0xfe9f, 0xfecb, 0xff02, 0xff3e,
+ 0xff66, 0xff7a, 0xff7d, 0xff63, 0xff34, 0xff06,
+ 0xfee6, 0xfec7, 0xfe8d, 0xfe53, 0xfe45, 0xfe54,
+ 0xfe63, 0xfe79, 0xfe9d, 0xfed1, 0xff1a, 0xff6d,
+ 0xffb4, 0xffe4, 0x0000, 0x000d, 0x000e, 0x0012,
+ 0x0015, 0x0011, 0x000a, 0xffef, 0xffc6, 0xffb4,
+ 0xffa4, 0xff87, 0xff78, 0xff68, 0xff4a, 0xff3f,
+ 0xff40, 0xff3a, 0xff3c, 0xff44, 0xff4e, 0xff6f,
+ 0xff98, 0xffb4, 0xffcd, 0xffe5, 0xfff5, 0x0004,
+ 0x0015, 0x0017, 0xfffd, 0xffc2, 0xff71, 0xff25,
+ 0xfef1, 0xfee5, 0xff15, 0xff6d, 0xffb9, 0xfff4,
+ 0x002e, 0x004d, 0x004a, 0x0043, 0x0044, 0x0054,
+ 0x0080, 0x00a8, 0x00b8, 0x00c5, 0x00e3, 0x0115,
+ 0x015f, 0x01b4, 0x01f8, 0x0217, 0x0219, 0x0220,
+ 0x0231, 0x0240, 0x0257, 0x0281, 0x02b4, 0x02f3,
+ 0x0337, 0x0372, 0x039b, 0x03a5, 0x0390, 0x0377,
+ 0x035b, 0x033d, 0x0326, 0x0300, 0x02cc, 0x02a8,
+ 0x0284, 0x0245, 0x01fd, 0x01a9, 0x0141, 0x00d6,
+ 0x0070, 0x0018, 0xffdd, 0xffbd, 0xffa4, 0xff78,
+ 0xff2e, 0xfed4, 0xfe76, 0xfe23, 0xfde2, 0xfdb0,
+ 0xfd9c, 0xfd9b, 0xfd96, 0xfd9c, 0xfda4, 0xfd8a,
+ 0xfd62, 0xfd3a, 0xfd09, 0xfce4, 0xfcc4, 0xfc93,
+ 0xfc6a, 0xfc61, 0xfc7c, 0xfcc0, 0xfd14, 0xfd54,
+ 0xfd81, 0xfd96, 0xfd9c, 0xfdaa, 0xfdba, 0xfdc8,
+ 0xfdd0, 0xfdca, 0xfdc8, 0xfdcb, 0xfdbd, 0xfdad,
+ 0xfdb2, 0xfdc4, 0xfdd5, 0xfded, 0xfe0f, 0xfe3a,
+ 0xfe7d, 0xfecf, 0xff07, 0xff18, 0xff12, 0xfefa,
+ 0xfee7, 0xfee8, 0xfee7, 0xfeee, 0xff02, 0xff03,
+ 0xfee2, 0xfeab, 0xfe70, 0xfe4f, 0xfe4d, 0xfe62,
+ 0xfe8b, 0xfeae, 0xfecc, 0xfeff, 0xff31, 0xff52,
+ 0xff6a, 0xff61, 0xff27, 0xfed9, 0xfe8d, 0xfe54,
+ 0xfe42, 0xfe51, 0xfe77, 0xfeb6, 0xff08, 0xff66,
+ 0xffc4, 0x0015, 0x0057, 0x007e, 0x0085, 0x006e,
+ 0x0032, 0xffd3, 0xff7b, 0xff65, 0xff8b, 0xffc6,
+ 0x000f, 0x0062, 0x00a5, 0x00d2, 0x00e9, 0x00d9,
+ 0x00ae, 0x0081, 0x0050, 0x0023, 0x0008, 0xfff8,
+ 0xffe4, 0xffd3, 0xffcd, 0xffca, 0xffc5, 0xffcc,
+ 0xffd7, 0xffcb, 0xffa8, 0xff73, 0xff28, 0xfed9,
+ 0xfe9a, 0xfe77, 0xfe8c, 0xfed7, 0xff34, 0xff8d,
+ 0xffc6, 0xffc9, 0xffad, 0xff7c, 0xff31, 0xfee6,
+ 0xfea0, 0xfe4f, 0xfe0f, 0xfdec, 0xfdd3, 0xfdd2,
+ 0xfded, 0xfe12, 0xfe47, 0xfe7e, 0xfe90, 0xfe83,
+ 0xfe6d, 0xfe4d, 0xfe28, 0xfe10, 0xfe01, 0xfded,
+ 0xfdd2, 0xfdb8, 0xfdb0, 0xfdce, 0xfe0d, 0xfe4f,
+ 0xfe8c, 0xfeb9, 0xfead, 0xfe6c, 0xfe18, 0xfdc4,
+ 0xfd8d, 0xfd82, 0xfd9b, 0xfdd6, 0xfe23, 0xfe6a,
+ 0xfe95, 0xfe8c, 0xfe5c, 0xfe18, 0xfdcb, 0xfd95,
+ 0xfd7b, 0xfd69, 0xfd78, 0xfdb2, 0xfdea, 0xfe27,
+ 0xfe73, 0xfeab, 0xfed1, 0xfefa, 0xff16, 0xff20,
+ 0xff1f, 0xff1b, 0xff17, 0xff04, 0xfee5, 0xfece,
+ 0xfec7, 0xfed8, 0xff06, 0xff3b, 0xff61, 0xff72,
+ 0xff79, 0xff7f, 0xff5e, 0xff12, 0xfec0, 0xfe6e,
+ 0xfe33, 0xfe3e, 0xfe7b, 0xfebc, 0xfef6, 0xff10,
+ 0xff11, 0xff19, 0xff18, 0xfef6, 0xfebe, 0xfe7c,
+ 0xfe45, 0xfe2b, 0xfe24, 0xfe25, 0xfe24, 0xfe26,
+ 0xfe4c, 0xfe8d, 0xfec2, 0xfef4, 0xff31, 0xff6b,
+ 0xffa7, 0xffd1, 0xffc7, 0xffa4, 0xff88, 0xff70,
+ 0xff6d, 0xff83, 0xff9b, 0xffb3, 0xffc1, 0xffc3,
+ 0xffc9, 0xffbf, 0xffa1, 0xff8e, 0xff79, 0xff4c,
+ 0xff1a, 0xfef3, 0xfedd, 0xfee2, 0xfef0, 0xfefe,
+ 0xff05, 0xfefa, 0xfed7, 0xfea3, 0xfe69, 0xfe33,
+ 0xfdfa, 0xfdc1, 0xfd85, 0xfd3b, 0xfcfa, 0xfce0,
+ 0xfced, 0xfd12, 0xfd3e, 0xfd62, 0xfd84, 0xfd9d,
+ 0xfda0, 0xfd93, 0xfd75, 0xfd4e, 0xfd21, 0xfce5,
+ 0xfcb5, 0xfcb1, 0xfcd0, 0xfd10, 0xfd5a, 0xfd73,
+ 0xfd5b, 0xfd2a, 0xfce3, 0xfca1, 0xfc91, 0xfcc2,
+ 0xfd23, 0xfd9c, 0xfe1a, 0xfe71, 0xfe82, 0xfe68,
+ 0xfe44, 0xfe22, 0xfe07, 0xfde7, 0xfdcc, 0xfddc,
+ 0xfe0a, 0xfe47, 0xfe8e, 0xfeb8, 0xfec0, 0xfec0,
+ 0xfeb0, 0xfe94, 0xfe8c, 0xfe95, 0xfea3, 0xfeb7,
+ 0xfeca, 0xfed6, 0xfed2, 0xfeb5, 0xfe8c, 0xfe70,
+ 0xfe61, 0xfe54, 0xfe4a, 0xfe44, 0xfe36, 0xfe1e,
+ 0xfdfd, 0xfdcd, 0xfda4, 0xfd99, 0xfda0, 0xfdc0,
+ 0xfdf2, 0xfe07, 0xfdfb, 0xfddc, 0xfda1, 0xfd64,
+ 0xfd3d, 0xfd24, 0xfd1f, 0xfd2f, 0xfd58, 0xfd99,
+ 0xfdc4, 0xfdd2, 0xfde2, 0xfdd6, 0xfdb4, 0xfda7,
+ 0xfd8b, 0xfd61, 0xfd62, 0xfd7c, 0xfd9f, 0xfde1,
+ 0xfe17, 0xfe23, 0xfe21, 0xfe15, 0xfe05, 0xfdf3,
+ 0xfdd4, 0xfdc0, 0xfdd7, 0xfe1d, 0xfe8b, 0xfefb,
+ 0xff4c, 0xff81, 0xff8f, 0xff7d, 0xff7a, 0xff82,
+ 0xff77, 0xff6d, 0xff74, 0xff93, 0xffdc, 0x0036,
+ 0x0072, 0x0084, 0x007a, 0x006a, 0x0070, 0x0088,
+ 0x008f, 0x0083, 0x006e, 0x0045, 0x0007, 0xffcd,
+ 0xff9f, 0xff7f, 0xff74, 0xff85, 0xffb2, 0xffe6,
+ 0x0001, 0x0008, 0x0008, 0xfff2, 0xffce, 0xffbd,
+ 0xffc4, 0xffd7, 0xffec, 0xfff3, 0xfff2, 0xfff5,
+ 0xfffc, 0x0003, 0x000b, 0x0007, 0xfff1, 0xffd0,
+ 0xffb2, 0xff94, 0xff77, 0xff6f, 0xff79, 0xff82,
+ 0xff87, 0xff82, 0xff74, 0xff60, 0xff41, 0xff0f,
+ 0xfebd, 0xfe47, 0xfddd, 0xfdab, 0xfda7, 0xfdc0,
+ 0xfde6, 0xfe06, 0xfe09, 0xfddf, 0xfda5, 0xfd75,
+ 0xfd4c, 0xfd47, 0xfd70, 0xfd9a, 0xfdc7, 0xfe02,
+ 0xfe2f, 0xfe4a, 0xfe47, 0xfe0b, 0xfda7, 0xfd2d,
+ 0xfcbc, 0xfc8c, 0xfc8c, 0xfc9f, 0xfcce, 0xfcee,
+ 0xfce6, 0xfcd5, 0xfcb7, 0xfc9c, 0xfca3, 0xfcb3,
+ 0xfcbf, 0xfcde, 0xfd02, 0xfd21, 0xfd38, 0xfd3c,
+ 0xfd46, 0xfd63, 0xfd81, 0xfd9a, 0xfdb4, 0xfddd,
+ 0xfe1f, 0xfe6e, 0xfec5, 0xff1a, 0xff48, 0xff65,
+ 0xff9b, 0xffd9, 0x0011, 0x0045, 0x0060, 0x006c,
+ 0x0074, 0x006d, 0x006e, 0x0085, 0x0090, 0x0090,
+ 0x009b, 0x00a3, 0x00b6, 0x00eb, 0x0128, 0x0155,
+ 0x0163, 0x0135, 0x00dc, 0x0076, 0x0007, 0xffb2,
+ 0xff9b, 0xffaa, 0xffca, 0xfff3, 0x000b, 0x0007,
+ 0xfff6, 0xffdf, 0xffb4, 0xff73, 0xff2b, 0xfee0,
+ 0xfe9e, 0xfe88, 0xfe92, 0xfe97, 0xfe9e, 0xfea0,
+ 0xfe90, 0xfe7e, 0xfe6e, 0xfe5f, 0xfe67, 0xfe78,
+ 0xfe7d, 0xfe7a, 0xfe6f, 0xfe5f, 0xfe4f, 0xfe3a,
+ 0xfe2b, 0xfe1f, 0xfe04, 0xfde6, 0xfdcf, 0xfdbd,
+ 0xfdc1, 0xfde0, 0xfe09, 0xfe36, 0xfe59, 0xfe56,
+ 0xfe2e, 0xfe0d, 0xfe07, 0xfe04, 0xfe07, 0xfe0c,
+ 0xfdf0, 0xfdb4, 0xfd7c, 0xfd56, 0xfd4a, 0xfd59,
+ 0xfd76, 0xfd8e, 0xfd92, 0xfd90, 0xfd95, 0xfd94,
+ 0xfda3, 0xfdd2, 0xfdf9, 0xfe0c, 0xfe03, 0xfdcd,
+ 0xfd9c, 0xfd90, 0xfd90, 0xfd9d, 0xfda5, 0xfd9e,
+ 0xfd9f, 0xfd97, 0xfd85, 0xfd96, 0xfdbe, 0xfdf4,
+ 0xfe3f, 0xfe80, 0xfebb, 0xff09, 0xff4c, 0xff7d,
+ 0xffa8, 0xffc0, 0xffbd, 0xffa5, 0xff92, 0xff9a,
+ 0xffb4, 0xffe5, 0x0030, 0x0076, 0x00b1, 0x00e7,
+ 0x0100, 0x00ff, 0x00ea, 0x00ba, 0x007e, 0x0051,
+ 0x0047, 0x0065, 0x009b, 0x00e7, 0x013a, 0x017f,
+ 0x01b1, 0x01b8, 0x018f, 0x0162, 0x0134, 0x010f,
+ 0x0121, 0x0154, 0x0191, 0x01da, 0x0211, 0x023e,
+ 0x0272, 0x0287, 0x027b, 0x0256, 0x0212, 0x01ce,
+ 0x0190, 0x014e, 0x012d, 0x0143, 0x0176, 0x01aa,
+ 0x01b5, 0x018f, 0x0152, 0x0118, 0x00ea, 0x00ba,
+ 0x008e, 0x007b, 0x007a, 0x0092, 0x00c1, 0x00eb,
+ 0x0110, 0x0129, 0x011f, 0x0116, 0x010e, 0x00e7,
+ 0x00bf, 0x008e, 0x002d, 0xffcd, 0xff75, 0xff0b,
+ 0xfec9, 0xfec1, 0xfec9, 0xfee5, 0xff15, 0xff3c,
+ 0xff54, 0xff5e, 0xff62, 0xff63, 0xff5f, 0xff5d,
+ 0xff53, 0xff2f, 0xff06, 0xfeed, 0xfedb, 0xfed2,
+ 0xfed1, 0xfec7, 0xfeb1, 0xfe99, 0xfe81, 0xfe6b,
+ 0xfe62, 0xfe67, 0xfe70, 0xfe83, 0xfea8, 0xfedc,
+ 0xff11, 0xff37, 0xff4f, 0xff5f, 0xff70, 0xff8b,
+ 0xffa5, 0xffc3, 0x0003, 0x005b, 0x00aa, 0x00e6,
+ 0x00f4, 0x00cc, 0x008c, 0x003c, 0xffe5, 0xffa3,
+ 0xff7f, 0xff7f, 0xffa5, 0xffdb, 0x0020, 0x0072,
+ 0x00ac, 0x00c5, 0x00c3, 0x0096, 0x0053, 0x002f,
+ 0x0039, 0x0061, 0x009c, 0x00e8, 0x0125, 0x0140,
+ 0x0143, 0x0136, 0x012e, 0x0148, 0x0175, 0x019e,
+ 0x01bd, 0x01d5, 0x01fe, 0x022c, 0x0238, 0x0238,
+ 0x023d, 0x0226, 0x0200, 0x01e7, 0x01d7, 0x01d4,
+ 0x01f8, 0x0241, 0x028f, 0x02c2, 0x02d3, 0x02c4,
+ 0x02a5, 0x0290, 0x0278, 0x024b, 0x0213, 0x01ce,
+ 0x018b, 0x0159, 0x012a, 0x0108, 0x00fd, 0x00ef,
+ 0x00e0, 0x00dd, 0x00e3, 0x00f6, 0x00fa, 0x00e1,
+ 0x00bd, 0x007b, 0x0015, 0xffbd, 0xff76, 0xff3c,
+ 0xff38, 0xff64, 0xff8d, 0xff97, 0xff8d, 0xff7f,
+ 0xff63, 0xff38, 0xff17, 0xfef4, 0xfebb, 0xfe79,
+ 0xfe36, 0xfe03, 0xfdf5, 0xfe04, 0xfe30, 0xfe74,
+ 0xfe9a, 0xfe86, 0xfe4d, 0xfdf6, 0xfd91, 0xfd3f,
+ 0xfd06, 0xfcda, 0xfcbe, 0xfca9, 0xfc9c, 0xfcb5,
+ 0xfcea, 0xfd17, 0xfd3b, 0xfd53, 0xfd54, 0xfd54,
+ 0xfd6b, 0xfd96, 0xfdd7, 0xfe1d, 0xfe49, 0xfe54,
+ 0xfe3f, 0xfe1f, 0xfe06, 0xfdeb, 0xfdd3, 0xfdcb,
+ 0xfdd4, 0xfdf8, 0xfe30, 0xfe71, 0xfeb5, 0xfef3,
+ 0xff31, 0xff64, 0xff71, 0xff71, 0xff71, 0xff63,
+ 0xff67, 0xff76, 0xff72, 0xff7a, 0xff77, 0xff37,
+ 0xfefc, 0xfee5, 0xfedc, 0xfef7, 0xff28, 0xff5a,
+ 0xff9b, 0xffd4, 0x000b, 0x0063, 0x00bb, 0x0104,
+ 0x0142, 0x0151, 0x0145, 0x0140, 0x0130, 0x012c,
+ 0x0144, 0x0155, 0x014d, 0x012f, 0x0105, 0x00e9,
+ 0x00d9, 0x00d6, 0x00ec, 0x0106, 0x0109, 0x00f2,
+ 0x00c8, 0x00a4, 0x0090, 0x0095, 0x00b9, 0x00e9,
+ 0x011d, 0x015a, 0x017a, 0x0173, 0x0160, 0x0139,
+ 0x0102, 0x00d3, 0x00b3, 0x00b9, 0x00e1, 0x00fd,
+ 0x0106, 0x0104, 0x00ed, 0x00cf, 0x00b1, 0x0094,
+ 0x0083, 0x0069, 0x0030, 0xfff1, 0xffa9, 0xff55,
+ 0xff18, 0xff09, 0xff17, 0xff37, 0xff5a, 0xff6d,
+ 0xff69, 0xff3e, 0xfeed, 0xfe96, 0xfe51, 0xfe22,
+ 0xfe02, 0xfde7, 0xfdcc, 0xfdb9, 0xfdb7, 0xfdba,
+ 0xfdab, 0xfd94, 0xfd8d, 0xfd96, 0xfdac, 0xfddd,
+ 0xfe2a, 0xfe76, 0xfea7, 0xfeba, 0xfebb, 0xfeaf,
+ 0xfea5, 0xfeae, 0xfeb7, 0xfeb1, 0xfea1, 0xfe83,
+ 0xfe56, 0xfe22, 0xfdf2, 0xfddb, 0xfdd5, 0xfdd3,
+ 0xfdf2, 0xfe39, 0xfe8f, 0xfef6, 0xff5f, 0xffa3,
+ 0xffc2, 0xffc3, 0xff9f, 0xff75, 0xff5b, 0xff55,
+ 0xff75, 0xffaa, 0xffc8, 0xffcc, 0xffcc, 0xffbe,
+ 0xffa0, 0xff80, 0xff59, 0xff2f, 0xff16, 0xff06,
+ 0xfef7, 0xff0f, 0xff58, 0xffb9, 0x0023, 0x007e,
+ 0x00ae, 0x00b6, 0x00a2, 0x0077, 0x004a, 0x002c,
+ 0x0021, 0x0029, 0x0046, 0x006d, 0x008f, 0x00b9,
+ 0x00f5, 0x011f, 0x0129, 0x0123, 0x011e, 0x0128,
+ 0x013f, 0x0154, 0x0174, 0x0197, 0x01ad, 0x01c4,
+ 0x01df, 0x01ec, 0x01f3, 0x0202, 0x0212, 0x0219,
+ 0x0203, 0x01d8, 0x01a4, 0x0177, 0x016c, 0x0178,
+ 0x016c, 0x0152, 0x012b, 0x00d3, 0x0060, 0xfffb,
+ 0xffaa, 0xff81, 0xff7f, 0xff82, 0xff84, 0xff8b,
+ 0xff82, 0xff54, 0xff0a, 0xfebb, 0xfe69, 0xfe0a,
+ 0xfdb0, 0xfd73, 0xfd59, 0xfd63, 0xfd8a, 0xfdc3,
+ 0xfdfd, 0xfe29, 0xfe3a, 0xfe25, 0xfdee, 0xfdb8,
+ 0xfd89, 0xfd56, 0xfd31, 0xfd16, 0xfcef, 0xfce8,
+ 0xfd1f, 0xfd64, 0xfda3, 0xfde9, 0xfe21, 0xfe3e,
+ 0xfe4a, 0xfe4e, 0xfe54, 0xfe5f, 0xfe5f, 0xfe50,
+ 0xfe37, 0xfe23, 0xfe25, 0xfe3c, 0xfe56, 0xfe64,
+ 0xfe5c, 0xfe45, 0xfe3e, 0xfe4f, 0xfe76, 0xfeac,
+ 0xfed9, 0xfeeb, 0xfeef, 0xfeea, 0xfedd, 0xfed0,
+ 0xfebf, 0xfead, 0xfe9c, 0xfe89, 0xfe85, 0xfe9d,
+ 0xfec8, 0xff13, 0xff7a, 0xffcf, 0x000e, 0x0047,
+ 0x005a, 0x004f, 0x004e, 0x0042, 0x0017, 0xffec,
+ 0xffcf, 0xffbd, 0xffc2, 0xffe5, 0x0010, 0x003b,
+ 0x006c, 0x0099, 0x00bf, 0x00ef, 0x011d, 0x0138,
+ 0x0143, 0x013d, 0x012f, 0x012b, 0x0122, 0x011c,
+ 0x012e, 0x0146, 0x0159, 0x016f, 0x017a, 0x016c,
+ 0x013c, 0x00ea, 0x0091, 0x003b, 0xffe9, 0xffb4,
+ 0xffa5, 0xffb3, 0xffcf, 0xffdb, 0xffd2, 0xffbb,
+ 0xff93, 0xff63, 0xff36, 0xff13, 0xff12, 0xff29,
+ 0xff46, 0xff65, 0xff67, 0xff49, 0xff21, 0xfee8,
+ 0xfeb4, 0xfea2, 0xfea1, 0xfeb5, 0xfecd, 0xfec2,
+ 0xfeb5, 0xfeb9, 0xfebb, 0xfecf, 0xfeef, 0xff05,
+ 0xff29, 0xff3f, 0xff20, 0xfeed, 0xfebc, 0xfe8b,
+ 0xfe67, 0xfe5b, 0xfe65, 0xfe76, 0xfe81, 0xfe8a,
+ 0xfe7e, 0xfe60, 0xfe49, 0xfe26, 0xfdf2, 0xfdca,
+ 0xfda1, 0xfd81, 0xfd86, 0xfda3, 0xfddb, 0xfe24,
+ 0xfe5d, 0xfe8a, 0xfea5, 0xfe9b, 0xfe88, 0xfe6c,
+ 0xfe41, 0xfe27, 0xfe1f, 0xfe18, 0xfe14, 0xfe17,
+ 0xfe28, 0xfe43, 0xfe63, 0xfe99, 0xfed3, 0xfefb,
+ 0xff1b, 0xff2f, 0xff42, 0xff65, 0xff7c, 0xff88,
+ 0xff96, 0xff82, 0xff54, 0xff20, 0xfedd, 0xfea8,
+ 0xfe90, 0xfe81, 0xfe8c, 0xfeab, 0xfed5, 0xff1e,
+ 0xff63, 0xff82, 0xff81, 0xff58, 0xff23, 0xff15,
+ 0xff18, 0xff22, 0xff44, 0xff6a, 0xff83, 0xff8a,
+ 0xff6b, 0xff39, 0xff09, 0xfec2, 0xfe63, 0xfe0a,
+ 0xfdc9, 0xfda1, 0xfd97, 0xfdb6, 0xfdf5, 0xfe3e,
+ 0xfe82, 0xfead, 0xfeb4, 0xfe9b, 0xfe5d, 0xfdfe,
+ 0xfd91, 0xfd33, 0xfd00, 0xfd02, 0xfd2e, 0xfd80,
+ 0xfde3, 0xfe41, 0xfe8e, 0xfeb7, 0xfec4, 0xfed5,
+ 0xfee3, 0xfee0, 0xfed1, 0xfeb5, 0xfe96, 0xfe86,
+ 0xfe87, 0xfe9d, 0xfec4, 0xfee4, 0xfee8, 0xfedc,
+ 0xfed6, 0xfed7, 0xfece, 0xfeb6, 0xfe8a, 0xfe4b,
+ 0xfe1f, 0xfe1d, 0xfe3a, 0xfe7b, 0xfecd, 0xfefe,
+ 0xff04, 0xfeee, 0xfebc, 0xfe84, 0xfe59, 0xfe34,
+ 0xfe11, 0xfdef, 0xfdd1, 0xfdc1, 0xfdc2, 0xfdd2,
+ 0xfdeb, 0xfdf3, 0xfddd, 0xfdb8, 0xfd95, 0xfd7c,
+ 0xfd6a, 0xfd62, 0xfd65, 0xfd74, 0xfd97, 0xfdcb,
+ 0xfdf9, 0xfe16, 0xfe2b, 0xfe34, 0xfe30, 0xfe2f,
+ 0xfe2a, 0xfe18, 0xfdff, 0xfde6, 0xfdce, 0xfdb6,
+ 0xfda8, 0xfdb7, 0xfdd3, 0xfde6, 0xfdf6, 0xfdf8,
+ 0xfdde, 0xfdb6, 0xfd8f, 0xfd76, 0xfd7d, 0xfda1,
+ 0xfdd8, 0xfe29, 0xfe8b, 0xfee1, 0xff1f, 0xff39,
+ 0xff2a, 0xfef4, 0xfe9a, 0xfe32, 0xfde7, 0xfdc1,
+ 0xfdbc, 0xfdd3, 0xfdf4, 0xfe16, 0xfe37, 0xfe4e,
+ 0xfe56, 0xfe4c, 0xfe2e, 0xfe06, 0xfdd2, 0xfd98,
+ 0xfd79, 0xfd73, 0xfd76, 0xfd95, 0xfdcc, 0xfe02,
+ 0xfe34, 0xfe65, 0xfe9d, 0xfed5, 0xfee3, 0xfec1,
+ 0xfe92, 0xfe59, 0xfe14, 0xfddf, 0xfdd0, 0xfddf,
+ 0xfdf4, 0xfe13, 0xfe3d, 0xfe52, 0xfe4b, 0xfe3f,
+ 0xfe2f, 0xfe20, 0xfe2b, 0xfe49, 0xfe6b, 0xfe96,
+ 0xfed0, 0xff0c, 0xff36, 0xff4d, 0xff5c, 0xff4a,
+ 0xff22, 0xff22, 0xff54, 0xff95, 0xffda, 0x0004,
+ 0xfff6, 0xffbb, 0xff75, 0xff47, 0xff42, 0xff5e,
+ 0xff8f, 0xffbc, 0xffdb, 0xfffc, 0x000f, 0x000d,
+ 0x000f, 0x0002, 0xffd6, 0xffb0, 0xff90, 0xff5f,
+ 0xff3c, 0xff34, 0xff2a, 0xff10, 0xfee9, 0xfec1,
+ 0xfea8, 0xfe9d, 0xfeab, 0xfed1, 0xfef2, 0xfef4,
+ 0xfede, 0xfec2, 0xfea1, 0xfe7d, 0xfe72, 0xfe82,
+ 0xfe9f, 0xfec9, 0xfef1, 0xff07, 0xff29, 0xff57,
+ 0xff70, 0xff76, 0xff57, 0xff02, 0xfeb2, 0xfe93,
+ 0xfe93, 0xfebd, 0xff0b, 0xff3a, 0xff32, 0xff07,
+ 0xfec2, 0xfe7d, 0xfe49, 0xfe26, 0xfe1b, 0xfe0c,
+ 0xfde3, 0xfdc1, 0xfda0, 0xfd6d, 0xfd4a, 0xfd3c,
+ 0xfd2f, 0xfd2b, 0xfd19, 0xfcf6, 0xfce6, 0xfce6,
+ 0xfce7, 0xfcf4, 0xfcf4, 0xfcda, 0xfcbc, 0xfc96,
+ 0xfc76, 0xfc6f, 0xfc78, 0xfc94, 0xfcb7, 0xfcc7,
+ 0xfcd8, 0xfcf3, 0xfd02, 0xfd15, 0xfd32, 0xfd47,
+ 0xfd67, 0xfd91, 0xfda7, 0xfdb1, 0xfdb5, 0xfda6,
+ 0xfd8d, 0xfd87, 0xfd9c, 0xfdcf, 0xfe20, 0xfe81,
+ 0xfee2, 0xff44, 0xff98, 0xffc9, 0xffe0, 0xffec,
+ 0xfff6, 0x001f, 0x006b, 0x00ad, 0x00db, 0x0100,
+ 0x010e, 0x0110, 0x011e, 0x0141, 0x017c, 0x01cb,
+ 0x020e, 0x021c, 0x01f2, 0x01b8, 0x0189, 0x016d,
+ 0x016e, 0x018d, 0x01ba, 0x01ea, 0x0209, 0x0208,
+ 0x01e6, 0x0192, 0x010a, 0x0073, 0xfff1, 0xff97,
+ 0xff73, 0xff8e, 0xffda, 0x0021, 0x0042, 0x003f,
+ 0x0004, 0xff92, 0xff15, 0xfea3, 0xfe49, 0xfe20,
+ 0xfe15, 0xfe0f, 0xfe01, 0xfddb, 0xfda5, 0xfd63,
+ 0xfd00, 0xfca4, 0xfc7e, 0xfc83, 0xfcb2, 0xfd0c,
+ 0xfd6e, 0xfdbe, 0xfde9, 0xfdde, 0xfda5, 0xfd57,
+ 0xfd14, 0xfcf5, 0xfce9, 0xfce8, 0xfcea, 0xfcd7,
+ 0xfcb6, 0xfc90, 0xfc55, 0xfc15, 0xfbe5, 0xfbbc,
+ 0xfbaa, 0xfbb7, 0xfbd1, 0xfc03, 0xfc45, 0xfc76,
+ 0xfc94, 0xfc9b, 0xfc94, 0xfca3, 0xfcbb, 0xfccb,
+ 0xfce7, 0xfcf6, 0xfcde, 0xfcc1, 0xfcb9, 0xfcc0,
+ 0xfcda, 0xfd0f, 0xfd52, 0xfd8a, 0xfdb8, 0xfdf0,
+ 0xfe2a, 0xfe5e, 0xfe89, 0xfe91, 0xfe7b, 0xfe69,
+ 0xfe57, 0xfe4d, 0xfe6d, 0xfeba, 0xff27, 0xff9c,
+ 0xffed, 0x001a, 0x0034, 0x002b, 0x000c, 0xffec,
+ 0xffc6, 0xffaa, 0xffa6, 0xffc7, 0x0018, 0x0078,
+ 0x00bf, 0x00f0, 0x00fb, 0x00db, 0x00c1, 0x00b5,
+ 0x00a9, 0x00b7, 0x00e1, 0x010d, 0x013b, 0x0171,
+ 0x01a9, 0x01d1, 0x01d0, 0x01ac, 0x0178, 0x0133,
+ 0x00f3, 0x00d4, 0x00c9, 0x00bf, 0x00c9, 0x00e6,
+ 0x00fc, 0x0101, 0x00fb, 0x00f1, 0x00e7, 0x00de,
+ 0x00d5, 0x00cb, 0x00bb, 0x00ad, 0x00a0, 0x0091,
+ 0x0080, 0x0074, 0x006d, 0x005e, 0x0038, 0x000a,
+ 0xffef, 0xffdb, 0xffd5, 0xffee, 0x0012, 0x0033,
+ 0x0055, 0x006a, 0x006f, 0x0075, 0x0071, 0x0052,
+ 0x0029, 0x0007, 0xffe7, 0xffc2, 0xffa7, 0xff9f,
+ 0xff92, 0xff6f, 0xff53, 0xff3e, 0xff19, 0xfefc,
+ 0xfef9, 0xfefb, 0xff02, 0xff18, 0xff1c, 0xff01,
+ 0xfee2, 0xfeca, 0xfeb7, 0xfeb1, 0xfeaa, 0xfe92,
+ 0xfe7a, 0xfe73, 0xfe71, 0xfe83, 0xfeae, 0xfebd,
+ 0xfe9d, 0xfe71, 0xfe50, 0xfe43, 0xfe54, 0xfe6c,
+ 0xfe7c, 0xfe89, 0xfe7e, 0xfe58, 0xfe3d, 0xfe3c,
+ 0xfe54, 0xfe8d, 0xfedf, 0xff35, 0xff90, 0xffdf,
+ 0x0007, 0x001e, 0x003b, 0x0056, 0x0063, 0x005a,
+ 0x003d, 0x002f, 0x004b, 0x007d, 0x00b5, 0x00ee,
+ 0x0110, 0x0116, 0x00f9, 0x00b9, 0x008b, 0x008e,
+ 0x00a7, 0x00cd, 0x00ec, 0x00f1, 0x0106, 0x013d,
+ 0x0173, 0x01a9, 0x01e8, 0x0211, 0x0219, 0x0202,
+ 0x01ca, 0x0186, 0x0156, 0x014b, 0x0166, 0x0197,
+ 0x01cd, 0x0201, 0x022e, 0x0254, 0x026d, 0x0275,
+ 0x0270, 0x025d, 0x023b, 0x0211, 0x01eb, 0x01d7,
+ 0x01cf, 0x01cf, 0x01dd, 0x01e6, 0x01e6, 0x01ff,
+ 0x021d, 0x021d, 0x0210, 0x01ec, 0x019b, 0x0144,
+ 0x0105, 0x00ec, 0x00f9, 0x010d, 0x0112, 0x0106,
+ 0x00db, 0x00a4, 0x0076, 0x0034, 0xffd6, 0xff77,
+ 0xff2a, 0xfef6, 0xfed0, 0xfeae, 0xfe9e, 0xfe9d,
+ 0xfea1, 0xfeb4, 0xfecc, 0xfed0, 0xfeb7, 0xfe8e,
+ 0xfe5c, 0xfe1f, 0xfde0, 0xfdaf, 0xfd85, 0xfd5f,
+ 0xfd41, 0xfd34, 0xfd45, 0xfd68, 0xfd83, 0xfd91,
+ 0xfd8b, 0xfd67, 0xfd37, 0xfd08, 0xfced, 0xfd05,
+ 0xfd3e, 0xfd88, 0xfde4, 0xfe26, 0xfe37, 0xfe3d,
+ 0xfe45, 0xfe4e, 0xfe75, 0xfeb0, 0xfed2, 0xfedb,
+ 0xfedf, 0xfeda, 0xfed2, 0xfed9, 0xfee9, 0xfef8,
+ 0xff17, 0xff44, 0xff6b, 0xff93, 0xffc3, 0xffeb,
+ 0x0004, 0x0014, 0x001e, 0x0031, 0x0053, 0x007e,
+ 0x00a5, 0x00b9, 0x00bf, 0x00c5, 0x00d4, 0x00db,
+ 0x00cc, 0x00be, 0x00b8, 0x009f, 0x0084, 0x007c,
+ 0x006e, 0x005c, 0x0050, 0x002a, 0xfff7, 0xffd7,
+ 0xffc2, 0xffc7, 0xfffd, 0x004c, 0x009b, 0x00e8,
+ 0x0144, 0x01a4, 0x01ce, 0x01b4, 0x0178, 0x012f,
+ 0x00fa, 0x00f7, 0x0110, 0x0128, 0x013b, 0x0141,
+ 0x012a, 0x00f7, 0x00c5, 0x00b3, 0x00c2, 0x00de,
+ 0x0102, 0x0122, 0x0124, 0x00f0, 0x0098, 0x004b,
+ 0x001a, 0x0013, 0x002f, 0x0031, 0x0007, 0xffd7,
+ 0xff99, 0xff49, 0xff11, 0xfefd, 0xfeda, 0xfe96,
+ 0xfe50, 0xfe0c, 0xfde5, 0xfe09, 0xfe3c, 0xfe44,
+ 0xfe54, 0xfe5b, 0xfe37, 0xfe2f, 0xfe54, 0xfe7a,
+ 0xfe9d, 0xfe9a, 0xfe8f, 0xfee0, 0xff73, 0xffe6,
+ 0xffed, 0xff61, 0xfe8d, 0xfdda, 0xfd79, 0xfd83,
+ 0xfdca, 0xfdfe, 0xfe0d, 0xfe0a, 0xfe39, 0xfecb,
+ 0xff5b, 0xff6e, 0xff1a, 0xfed9, 0xfef4, 0xff3c,
+ 0xffa2, 0x0017, 0xfffc, 0xff23, 0xfe48, 0xfdde,
+ 0xfe0d, 0xfeea, 0xffdd, 0x004a, 0x003f, 0xffd7,
+ 0xff33, 0xfec9, 0xfeee, 0xff62, 0xffc4, 0x0000,
+ 0x0030, 0x0065, 0x0096, 0x0089, 0x0010, 0xff47,
+ 0xfe8f, 0xfe89, 0xff40, 0xffe3, 0xfffb, 0xff9f,
+ 0xfece, 0xfdea, 0xfd87, 0xfd6e, 0xfd44, 0xfd61,
+ 0xfdfc, 0xfeb9, 0xff61, 0xffdd, 0xffe4, 0xff8e,
+ 0xff2d, 0xfea3, 0xfe1a, 0xfe39, 0xfefb, 0xffbb,
+ 0x0033, 0x006f, 0x004d, 0xffeb, 0xffe6, 0x0050,
+ 0x0061, 0xfffd, 0xffac, 0xff85, 0xffdd, 0x00f9,
+ 0x01f3, 0x020f, 0x01b0, 0x0111, 0x0017, 0xff28,
+ 0xfef3, 0xff9c, 0x008e, 0x013f, 0x0187, 0x015f,
+ 0x00c1, 0xffe2, 0xff30, 0xff06, 0xff5f, 0x0012,
+ 0x00ba, 0x00e7, 0x00c1, 0x0058, 0xff5e, 0xfe54,
+ 0xfde7, 0xfe09, 0xfebb, 0xffcb, 0x0096, 0x00ee,
+ 0x00d3, 0x0048, 0xffa9, 0xff2d, 0xff00, 0xff25,
+ 0xff30, 0xff1e, 0xff2b, 0xff3d, 0xff9a, 0x0047,
+ 0x00b7, 0x012a, 0x01bc, 0x017e, 0x00ae, 0x007c,
+ 0x00da, 0x013b, 0x0186, 0x0196, 0x0185, 0x0191,
+ 0x0177, 0x0101, 0x008a, 0x0075, 0x00a9, 0x00a5,
+ 0x0070, 0x008e, 0x00ac, 0x0035, 0xffda, 0x0053,
+ 0x010e, 0x0167, 0x01b7, 0x0244, 0x0262, 0x0183,
+ 0x001a, 0xfeec, 0xfea7, 0xff5a, 0xfff5, 0x0018,
+ 0x0073, 0x008f, 0xffd8, 0xff33, 0xfee3, 0xfe2c,
+ 0xfd47, 0xfcd0, 0xfcd9, 0xfd60, 0xfe2e, 0xfeb0,
+ 0xfec4, 0xfeaf, 0xfe16, 0xfce8, 0xfc79, 0xfd1a,
+ 0xfd94, 0xfdd1, 0xfe0e, 0xfdc5, 0xfd3a, 0xfce7,
+ 0xfcec, 0xfd98, 0xfe5e, 0xfe7e, 0xfe0e, 0xfd2d,
+ 0xfc93, 0xfce6, 0xfd80, 0xfe76, 0xffdf, 0x0026,
+ 0xff28, 0xfe1c, 0xfcf6, 0xfc0c, 0xfc14, 0xfc87,
+ 0xfd54, 0xfead, 0xff88, 0xff73, 0xff24, 0xfe93,
+ 0xfd5d, 0xfc0d, 0xfb45, 0xfaaa, 0xf9fa, 0xf9f5,
+ 0xfaea, 0xfbd0, 0xfbfb, 0xfbe2, 0xfba5, 0xfb08,
+ 0xfa8c, 0xfa92, 0xfaf1, 0xfbda, 0xfcdf, 0xfd40,
+ 0xfd9a, 0xfe42, 0xfe1c, 0xfce2, 0xfc03, 0xfccd,
+ 0xfe79, 0xff69, 0x0000, 0x008b, 0xffa2, 0xfdac,
+ 0xfc40, 0xfbb1, 0xfcac, 0xfef0, 0x008c, 0x0179,
+ 0x0260, 0x021f, 0x0086, 0xff43, 0xff7c, 0x0090,
+ 0x010a, 0x0100, 0x0170, 0x01cc, 0x017e, 0x0101,
+ 0x0076, 0x0008, 0x000c, 0x001a, 0x0010, 0x005e,
+ 0x007a, 0xff7e, 0xfe0d, 0xfd5b, 0xfd3c, 0xfd12,
+ 0xfd2e, 0xfde1, 0xfe94, 0xfef3, 0xff94, 0x0047,
+ 0x0003, 0xff13, 0xfe11, 0xfcb5, 0xfbc4, 0xfbd6,
+ 0xfc4e, 0xfdc1, 0xfff6, 0x00d8, 0x008d, 0x0004,
+ 0xfed1, 0xfdc6, 0xfdbd, 0xfe42, 0xff34, 0xffba,
+ 0xff1b, 0xfe56, 0xfded, 0xfdf8, 0xfea0, 0xff0e,
+ 0xff33, 0xff41, 0xfe15, 0xfc5b, 0xfc1f, 0xfd12,
+ 0xfe0b, 0xfef5, 0xff94, 0xff5f, 0xfe52, 0xfd01,
+ 0xfbfe, 0xfbd7, 0xfc9a, 0xfd19, 0xfd20, 0xfe00,
+ 0xff31, 0xff7f, 0xffb1, 0xffb5, 0xfe54, 0xfc27,
+ 0xfac1, 0xfaeb, 0xfc69, 0xfdf5, 0xfea7, 0xfee7,
+ 0xff43, 0xff35, 0xfe27, 0xfd31, 0xfd67, 0xfdb7,
+ 0xfd69, 0xfd59, 0xfd7f, 0xfd14, 0xfc4b, 0xfbec,
+ 0xfc6c, 0xfd48, 0xfd9f, 0xfdb9, 0xfe0c, 0xfe18,
+ 0xfda5, 0xfcb9, 0xfb87, 0xfba8, 0xfda8, 0xff71,
+ 0x0055, 0x0164, 0x0223, 0x023a, 0x0242, 0x01f5,
+ 0x0166, 0x00db, 0xffae, 0xfe39, 0xfd61, 0xfd2d,
+ 0xfdf3, 0xffa8, 0x018c, 0x0335, 0x0398, 0x0238,
+ 0x0028, 0xfdfe, 0xfcb4, 0xfd7f, 0xff26, 0x008b,
+ 0x022a, 0x0328, 0x02a1, 0x0158, 0xffe4, 0xfeb7,
+ 0xfe79, 0xff0a, 0x0004, 0x0125, 0x01ea, 0x0191,
+ 0xff8f, 0xfccb, 0xfb48, 0xfb98, 0xfc99, 0xfe2c,
+ 0x00d7, 0x02d9, 0x0239, 0x004d, 0xfee5, 0xfe0c,
+ 0xfe07, 0xfe59, 0xfd96, 0xfc94, 0xfd23, 0xfeef,
+ 0x00b1, 0x01d7, 0x0202, 0x0095, 0xfdf8, 0xfc5f,
+ 0xfcb1, 0xfd57, 0xfe1a, 0xffc3, 0x0124, 0x0183,
+ 0x0175, 0x007a, 0xfeec, 0xfe50, 0xfdc0, 0xfc31,
+ 0xfba0, 0xfcfc, 0xfef2, 0x00ef, 0x01b6, 0xffb6,
+ 0xfc96, 0xfb02, 0xfb6a, 0xfd1a, 0xfede, 0xffab,
+ 0xffc3, 0xffb1, 0xffa2, 0xff71, 0xfe5e, 0xfc67,
+ 0xfb38, 0xfc1c, 0xfe80, 0x016d, 0x042e, 0x04d3,
+ 0x023f, 0xfe99, 0xfbfd, 0xfb40, 0xfda8, 0x01aa,
+ 0x0391, 0x0362, 0x0296, 0x0098, 0xfe59, 0xfe1e,
+ 0xff47, 0xff71, 0xfe7e, 0xfe56, 0xff90, 0x0172,
+ 0x0363, 0x03f5, 0x0200, 0xfea5, 0xfbe6, 0xfb71,
+ 0xfe14, 0x0268, 0x0538, 0x0450, 0x01aa, 0x00dd,
+ 0x01d4, 0x0343, 0x04da, 0x04a9, 0x02cc, 0x01f6,
+ 0x0152, 0x0055, 0x0173, 0x0333, 0x02ca, 0x01d7,
+ 0x0196, 0x0140, 0x0172, 0x0261, 0x0245, 0x0093,
+ 0xff31, 0xff32, 0x000e, 0x01da, 0x03b5, 0x02ff,
+ 0xffbb, 0xfcd5, 0xfbc4, 0xfc5b, 0xfe8d, 0x0118,
+ 0x01b7, 0x00d8, 0x009d, 0x0022, 0xfea5, 0xfeaa,
+ 0x000e, 0xffe5, 0xfec5, 0xfee8, 0x008b, 0x02e0,
+ 0x0419, 0x02e1, 0x009b, 0xff87, 0xffb4, 0xffcd,
+ 0x004b, 0x024c, 0x03fa, 0x0378, 0x0213, 0x011a,
+ 0x004b, 0xff6a, 0xff15, 0xfff0, 0x009c, 0xffc7,
+ 0xfefe, 0xff73, 0x00a5, 0x0212, 0x01bf, 0xfefb,
+ 0xfd21, 0xfd2f, 0xfca0, 0xfc68, 0xfe69, 0x000d,
+ 0xff3f, 0xfd6c, 0xfb6c, 0xf989, 0xf935, 0xfabb,
+ 0xfcbb, 0xfdc5, 0xfd31, 0xfbfe, 0xfbce, 0xfd5b,
+ 0xff4a, 0xfead, 0xfc76, 0xfc0f, 0xfbc5, 0xfae1,
+ 0xfd2e, 0x00ca, 0x01ea, 0x020c, 0x010c, 0xff04,
+ 0xff75, 0x018c, 0x02b8, 0x0342, 0x0267, 0x0049,
+ 0xfec0, 0xfeb8, 0x00bf, 0x0253, 0x00a8, 0xfe5a,
+ 0xfcea, 0xfb74, 0xfbd4, 0xfda1, 0xfe46, 0xfe88,
+ 0xfea0, 0xfdf3, 0xfe46, 0xffd1, 0x0058, 0xff21,
+ 0xfd44, 0xfbaf, 0xfa80, 0xfae2, 0xfd91, 0xffa4,
+ 0xff5c, 0xff2a, 0xfff7, 0x009d, 0x00c6, 0xff59,
+ 0xfce2, 0xfc5b, 0xfca7, 0xfb3b, 0xfb7f, 0xffd5,
+ 0x0369, 0x02d3, 0x0078, 0xff52, 0x0030, 0x0195,
+ 0x0212, 0x02a7, 0x0281, 0xff19, 0xfb24, 0xfb5a,
+ 0xfea1, 0x00c3, 0x0046, 0xfe99, 0xfdbc, 0xfde3,
+ 0xfd28, 0xfb41, 0xfb62, 0xfe6f, 0x005b, 0xff8a,
+ 0xfead, 0xfee7, 0xff3c, 0xff16, 0xff17, 0xffe7,
+ 0x0001, 0xfef0, 0xfe65, 0xfd9c, 0xfc12, 0xfb72,
+ 0xfb50, 0xfbe2, 0xfd94, 0xfda3, 0xfcaf, 0xfd4e,
+ 0xfdac, 0xfd98, 0xfe2d, 0xfd50, 0xfba8, 0xfadb,
+ 0xf94a, 0xf834, 0xf98d, 0xfaa6, 0xfacc, 0xfcd3,
+ 0xff9a, 0xff6e, 0xfd59, 0xfccf, 0xfd5c, 0xfcde,
+ 0xfb6c, 0xfa9c, 0xfc00, 0xfe19, 0xfdbd, 0xfc3c,
+ 0xfc49, 0xfcd2, 0xfd14, 0xfde6, 0xfeee, 0xff7b,
+ 0xff4b, 0xfe83, 0xfdfd, 0xfe40, 0xfdea, 0xfb1e,
+ 0xf821, 0xf8c4, 0xfb86, 0xfe0b, 0x00ed, 0x0282,
+ 0x0126, 0xff06, 0xfe89, 0x010b, 0x047d, 0x036c,
+ 0xfdda, 0xf9c4, 0xf9aa, 0xfa9f, 0xfacd, 0xfc4d,
+ 0xfe9e, 0xfd4f, 0xf950, 0xf7a3, 0xf910, 0xfbf1,
+ 0xfe9a, 0x0065, 0x029d, 0x0385, 0x00b0, 0xfdf5,
+ 0xff18, 0x0119, 0xfe40, 0xf5c6, 0xf1b3, 0xfc50,
+ 0x0e3c, 0x1834, 0x172b, 0x0d26, 0xf9fd, 0xe7d5,
+ 0xe479, 0xedd9, 0xfbed, 0x0cbb, 0x199d, 0x1a82,
+ 0x13e0, 0x0c4c, 0x0102, 0xf3c3, 0xef86, 0xf393,
+ 0xf635, 0xfb7c, 0x06a8, 0x0dfd, 0x11c4, 0x140a,
+ 0x0bce, 0x000c, 0xfe5d, 0xff85, 0xfc47, 0xf715,
+ 0xf0ea, 0xee88, 0xf395, 0xfe94, 0x0d91, 0x1895,
+ 0x18c6, 0x0f90, 0x0227, 0xfd5d, 0x05e9, 0x0c9c,
+ 0x098e, 0x0233, 0xfaec, 0xf7e5, 0xf7f3, 0xface,
+ 0x05cf, 0x0ff7, 0x0e51, 0x07b5, 0x0269, 0x0292,
+ 0x0b0d, 0x0ef5, 0x076f, 0xffdf, 0xf8fa, 0xebcd,
+ 0xe2bd, 0xeac5, 0xfa70, 0x00d6, 0xfc9b, 0xf29a,
+ 0xe8ce, 0xe7fc, 0xe92a, 0xe1af, 0xdcc2, 0xe19f,
+ 0xe72f, 0xeb26, 0xeff4, 0xf6d6, 0xfe81, 0xff35,
+ 0xfc13, 0x009b, 0x0992, 0x0f3e, 0x1035, 0x0ca5,
+ 0x0781, 0xff7c, 0xf34b, 0xec53, 0xee52, 0xf215,
+ 0xf3b2, 0xf3bb, 0xf54e, 0xf94e, 0xfb17, 0xf9fc,
+ 0xf80c, 0xf3bd, 0xed60, 0xe959, 0xec30, 0xf2da,
+ 0xf5f0, 0xf8c0, 0xfe13, 0xfe96, 0xfd83, 0x0221,
+ 0x0748, 0x0bd8, 0x1203, 0x1489, 0x14f1, 0x1805,
+ 0x18f1, 0x174a, 0x1839, 0x1487, 0x0617, 0xfc06,
+ 0xffc7, 0x02d7, 0x008f, 0x023c, 0x0225, 0xfb3c,
+ 0xf4ca, 0xeeb6, 0xec13, 0xf409, 0xfaeb, 0xf899,
+ 0xf813, 0xf93a, 0xf3c4, 0xedd1, 0xeeec, 0xf66c,
+ 0x01fc, 0x0ad7, 0x0a84, 0x05e6, 0x043c, 0x0482,
+ 0x0669, 0x0d01, 0x14f6, 0x1940, 0x1ad6, 0x1894,
+ 0x1037, 0x0903, 0x094c, 0x0a75, 0x0826, 0x0825,
+ 0x097d, 0x05a9, 0xff39, 0xf95a, 0xf48c, 0xf718,
+ 0xfdbc, 0xfb1f, 0xf459, 0xf44f, 0xf277, 0xec03,
+ 0xeba2, 0xecc2, 0xe9b7, 0xeed9, 0xfaf1, 0xfccd,
+ 0xf5e5, 0xedd9, 0xe209, 0xdb61, 0xe119, 0xe541,
+ 0xe585, 0xea30, 0xe820, 0xe008, 0xe7ca, 0xf882,
+ 0xfd41, 0xfcff, 0xffd7, 0x01b1, 0x03b0, 0xfe18,
+ 0xebe4, 0xe286, 0xe70c, 0xe2f2, 0xdbc6, 0xe434,
+ 0xf0a8, 0xf763, 0xfcfe, 0xfb46, 0xf364, 0xed22,
+ 0xdfd0, 0xd265, 0xd986, 0xe3c8, 0xdde1, 0xdef1,
+ 0xeef9, 0xf6b8, 0xf61b, 0xf8f2, 0xf963, 0xf795,
+ 0xfad2, 0xfe34, 0xfe2f, 0xfff4, 0x03b4, 0x0371,
+ 0xfd5f, 0xfafb, 0x0434, 0x0d8d, 0x0d64, 0x0f96,
+ 0x1656, 0x12a1, 0x09d1, 0x0c8c, 0x135b, 0x1269,
+ 0x1053, 0x0ee4, 0x0818, 0x04c0, 0x095b, 0x0368,
+ 0xf219, 0xf127, 0x018d, 0x080b, 0x01d7, 0xfd39,
+ 0xf8e9, 0xf28a, 0xf262, 0xfc5d, 0x09e6, 0x120b,
+ 0x1444, 0x1466, 0x11a4, 0x114d, 0x1731, 0x146a,
+ 0x07ce, 0x042d, 0x0169, 0xf4a9, 0xf3e8, 0xff93,
+ 0xfec4, 0xf7dd, 0xf47e, 0xe7fd, 0xd88a, 0xd6ed,
+ 0xe48b, 0xffb6, 0x1b80, 0x27a6, 0x2a80, 0x24da,
+ 0x0f07, 0xfc6b, 0xf990, 0xf944, 0xff54, 0x0a0d,
+ 0x0202, 0xf570, 0xfa72, 0xf1bd, 0xd46e, 0xd2a9,
+ 0xe9f1, 0xefae, 0xef8b, 0xf9b8, 0xf172, 0xdb50,
+ 0xd994, 0xdded, 0xd7b8, 0xde75, 0xedbe, 0xef6d,
+ 0xf520, 0x04c8, 0x0481, 0xf604, 0xe7d1, 0xd96b,
+ 0xd269, 0xd2a2, 0xd27a, 0xde11, 0xed44, 0xe8a9,
+ 0xe535, 0xee6d, 0xe741, 0xdc3a, 0xe7f9, 0xef7d,
+ 0xe6ca, 0xe475, 0xe44a, 0xe07b, 0xe351, 0xe611,
+ 0xe5dc, 0xe849, 0xe51e, 0xe1ef, 0xe953, 0xedc1,
+ 0xf10e, 0x0004, 0x073f, 0xfe2d, 0xfb34, 0xff15,
+ 0xfdc6, 0xfda3, 0x01d4, 0x050c, 0x04d7, 0xfff4,
+ 0xfe41, 0x0602, 0x0a49, 0x0587, 0x060e, 0x0bf6,
+ 0x0842, 0xffd3, 0x02d1, 0x0a0f, 0x088c, 0x0a91,
+ 0x1532, 0x14bb, 0x0d19, 0x1274, 0x178f, 0x1050,
+ 0x0f6f, 0x1851, 0x1c78, 0x1bee, 0x1adb, 0x1cf9,
+ 0x2645, 0x2d35, 0x2d4b, 0x2f63, 0x2e3a, 0x22c8,
+ 0x1a56, 0x1df8, 0x23b8, 0x1f73, 0x14f1, 0x13db,
+ 0x1af7, 0x1fd3, 0x2b96, 0x3cd0, 0x40e3, 0x4135,
+ 0x4664, 0x3f2b, 0x35a0, 0x3989, 0x36a8, 0x3039,
+ 0x3c2c, 0x44d4, 0x398f, 0x2f16, 0x2b62, 0x298f,
+ 0x2c7c, 0x301b, 0x36e2, 0x4185, 0x41f1, 0x3f02,
+ 0x417f, 0x368f, 0x279c, 0x2de6, 0x32cc, 0x2888,
+ 0x269f, 0x218c, 0x067e, 0xf4f0, 0xff09, 0x0c8a,
+ 0x1554, 0x2198, 0x26f0, 0x1aab, 0x091e, 0x0203,
+ 0x0291, 0x0264, 0x00ae, 0xfb98, 0xf62f, 0xf96e,
+ 0xfb10, 0xedb8, 0xe168, 0xe2ab, 0xe4cc, 0xe4c8,
+ 0xe8b0, 0xe915, 0xe2f7, 0xe051, 0xe507, 0xeb80,
+ 0xeded, 0xebff, 0xea04, 0xe9d8, 0xea0f, 0xe9b9,
+ 0xe944, 0xe77c, 0xdf1d, 0xd5b1, 0xdae3, 0xe2da,
+ 0xd767, 0xcdd2, 0xd937, 0xdc6f, 0xce92, 0xc9a0,
+ 0xc9ef, 0xc4b8, 0xc967, 0xd648, 0xd9ea, 0xd842,
+ 0xd9af, 0xd98f, 0xd1e7, 0xc5aa, 0xc218, 0xc874,
+ 0xc8b7, 0xc3db, 0xc3f1, 0xc04b, 0xb82e, 0xb871,
+ 0xbcad, 0xbc91, 0xbacd, 0xb918, 0xbbfb, 0xc13c,
+ 0xba35, 0xae1b, 0xb11f, 0xbc40, 0xc34a, 0xc971,
+ 0xcca7, 0xcb91, 0xcaba, 0xc4c6, 0xb996, 0xb5cb,
+ 0xb955, 0xbb18, 0xbb67, 0xbd54, 0xc376, 0xcfe8,
+ 0xdaa3, 0xd999, 0xd236, 0xd0ac, 0xd2ab, 0xcdaa,
+ 0xc861, 0xd217, 0xe230, 0xe3be, 0xd960, 0xd7fa,
+ 0xe7fb, 0xf7b0, 0xf216, 0xe415, 0xe65e, 0xeb41,
+ 0xe000, 0xd929, 0xe247, 0xe36e, 0xd76f, 0xd3b8,
+ 0xd76f, 0xd086, 0xc641, 0xcb1a, 0xd43a, 0xd0bc,
+ 0xcc1d, 0xce98, 0xd06f, 0xd8b6, 0xe628, 0xe106,
+ 0xd1c8, 0xd325, 0xd54d, 0xc88b, 0xc647, 0xd527,
+ 0xdb58, 0xd92a, 0xe13a, 0xeae7, 0xe746, 0xe05b,
+ 0xdd0f, 0xd1e9, 0xc484, 0xc70a, 0xcdab, 0xc6b4,
+ 0xc118, 0xc54e, 0xc31b, 0xbfe7, 0xcb94, 0xd411,
+ 0xca89, 0xc7aa, 0xd658, 0xd9b1, 0xcaf3, 0xc90e,
+ 0xd73d, 0xda1b, 0xd3eb, 0xd7f4, 0xdfb7, 0xe2ac,
+ 0xe6be, 0xe97a, 0xe63b, 0xe3ad, 0xe6b1, 0xebc8,
+ 0xee3a, 0xedb3, 0xebf6, 0xeb21, 0xf141, 0xfafd,
+ 0xfac3, 0xf73e, 0xfb66, 0xf9c0, 0xf303, 0xfa26,
+ 0x05eb, 0x0564, 0x00a9, 0x02cb, 0x090b, 0x0a33,
+ 0x088f, 0x0ccb, 0x0c8e, 0x05d7, 0x09bd, 0x0cfb,
+ 0x063b, 0x0ce5, 0x1903, 0x13f6, 0x113f, 0x1b15,
+ 0x2122, 0x2287, 0x218e, 0x1c59, 0x18d8, 0x1c73,
+ 0x27a3, 0x2e63, 0x29f3, 0x2c59, 0x328b, 0x2720,
+ 0x1b43, 0x2057, 0x2319, 0x1d1e, 0x1fa6, 0x2f0d,
+ 0x3678, 0x2849, 0x1d5a, 0x2309, 0x22ba, 0x1e70,
+ 0x209e, 0x1c80, 0x1c05, 0x2826, 0x2b9e, 0x25d7,
+ 0x22bb, 0x21e2, 0x23b8, 0x210d, 0x219c, 0x3062,
+ 0x2ed6, 0x1f3d, 0x29ed, 0x3464, 0x2664, 0x242f,
+ 0x29ef, 0x2226, 0x1f04, 0x20b5, 0x1d31, 0x1c70,
+ 0x1c82, 0x1a50, 0x1788, 0x19ae, 0x2901, 0x3149,
+ 0x2777, 0x275d, 0x2d6f, 0x25dc, 0x212f, 0x2557,
+ 0x2890, 0x2d00, 0x32f3, 0x38ea, 0x3058, 0x18b2,
+ 0x1b3a, 0x307d, 0x2d5a, 0x2af1, 0x37d3, 0x3823,
+ 0x39d7, 0x3f50, 0x38d2, 0x3bf2, 0x3d5d, 0x2b6b,
+ 0x2815, 0x2f5b, 0x2ec7, 0x3bee, 0x493d, 0x44da,
+ 0x41a0, 0x3b31, 0x2e8b, 0x2649, 0x1f42, 0x2732,
+ 0x3671, 0x2d96, 0x25a3, 0x311e, 0x3504, 0x378d,
+ 0x4183, 0x45a7, 0x4820, 0x43eb, 0x3a51, 0x3ea8,
+ 0x4500, 0x44cf, 0x45c2, 0x3fc7, 0x3e54, 0x4251,
+ 0x34e6, 0x2b82, 0x2ca6, 0x22f7, 0x2be2, 0x3fd4,
+ 0x3420, 0x2ef6, 0x3eb5, 0x37f2, 0x2caa, 0x2e5f,
+ 0x2a2c, 0x29bc, 0x2973, 0x2305, 0x2840, 0x2814,
+ 0x1ccf, 0x20e9, 0x2305, 0x183a, 0x1a6b, 0x2320,
+ 0x2249, 0x1d86, 0x1ba1, 0x1f5c, 0x1e5e, 0x1a4b,
+ 0x1d95, 0x1464, 0x089f, 0x1653, 0x162c, 0xff8d,
+ 0x0669, 0x1735, 0x0dc9, 0x0626, 0x0e05, 0x169c,
+ 0x1310, 0x0602, 0x09db, 0x145f, 0x0dbd, 0x0e95,
+ 0x0fe5, 0xfe69, 0xfd64, 0xfe3a, 0xe5d2, 0xea60,
+ 0x05e6, 0xfdb1, 0xf2f6, 0x0173, 0x0745, 0x058a,
+ 0x07a1, 0x056d, 0x03f2, 0x0030, 0xf48d, 0xef10,
+ 0xf45e, 0xf53a, 0xecbf, 0xf0cc, 0x02cb, 0xff94,
+ 0xf336, 0xfddf, 0xfdd2, 0xebc3, 0xee49, 0xee53,
+ 0xddce, 0xe1ea, 0xeb50, 0xde92, 0xd028, 0xcd85,
+ 0xd7a5, 0xe3ce, 0xe412, 0xea6d, 0xefdb, 0xdc4e,
+ 0xd2c0, 0xdf4d, 0xdf67, 0xdf00, 0xe5e1, 0xe158,
+ 0xe1f9, 0xe72a, 0xe40a, 0xef25, 0xf921, 0xe9f1,
+ 0xe4ef, 0xed47, 0xe9ab, 0xee46, 0xf8ae, 0xf178,
+ 0xf036, 0xfa8f, 0xf287, 0xe3d7, 0xe8ad, 0xf334,
+ 0xf3b4, 0xf545, 0xfca1, 0xfbc9, 0xf41a, 0xf4f7,
+ 0xfa27, 0xfadb, 0xf963, 0xf668, 0xfdd7, 0x11d5,
+ 0x0f0b, 0xf560, 0xf368, 0x013c, 0xfdfc, 0xfe54,
+ 0x07a9, 0xfe5b, 0xf3ec, 0xfca7, 0xfedc, 0xf79b,
+ 0xfb4f, 0xff94, 0xfcae, 0xfe5f, 0x00c3, 0xff14,
+ 0x010a, 0x03eb, 0x00e9, 0xfc95, 0xfe6e, 0x0258,
+ 0xfb88, 0xf34a, 0xfc55, 0x038e, 0xf9a3, 0xf67b,
+ 0xf92d, 0xf04a, 0xec77, 0xf03f, 0xeee8, 0xf7a5,
+ 0x03e5, 0xfabd, 0xedf9, 0xecba, 0xea79, 0xec35,
+ 0xf250, 0xed5f, 0xe2a6, 0xdb5e, 0xd657, 0xd531,
+ 0xd65b, 0xdefd, 0xf0e2, 0xf122, 0xd90f, 0xc998,
+ 0xcad7, 0xcb2d, 0xc6b0, 0xbfbc, 0xbac3, 0xb82b,
+ 0xaf4a, 0xa5fa, 0xa371, 0x9fb7, 0x9f06, 0xa19b,
+ 0x976f, 0x89aa, 0x86a3, 0x85e6, 0x8931, 0x8f3e,
+ 0x8d69, 0x92f8, 0x9fab, 0x9810, 0x8958, 0x8a60,
+ 0x8d12, 0x8e6d, 0x950c, 0x95e2, 0x9340, 0x98b2,
+ 0xa0b0, 0xa282, 0x9fa4, 0xa266, 0xac91, 0xb0aa,
+ 0xaf26, 0xb274, 0xb5ef, 0xb53b, 0xb1a4, 0xae77,
+ 0xb5c6, 0xc3ab, 0xcb36, 0xcbf0, 0xc596, 0xc151,
+ 0xc93a, 0xcb2e, 0xc824, 0xd33e, 0xd536, 0xc8a7,
+ 0xcf77, 0xda88, 0xd127, 0xcb27, 0xd166, 0xd588,
+ 0xd4ac, 0xd102, 0xd370, 0xd9c5, 0xd8bf, 0xdcb8,
+ 0xe60b, 0xe44d, 0xe78e, 0xf7a5, 0xfd4c, 0xf697,
+ 0xf03e, 0xf1dc, 0xfdb4, 0x022f, 0xf9e9, 0xf7dc,
+ 0xfaf5, 0xfa9e, 0xfebf, 0x0b2d, 0x189c, 0x1d1e,
+ 0x209a, 0x2be6, 0x25c0, 0x14b7, 0x2063, 0x28ea,
+ 0x150f, 0x1721, 0x2b81, 0x301c, 0x3818, 0x3aba,
+ 0x2faf, 0x3717, 0x3e60, 0x3653, 0x3672, 0x269c,
+ 0x0dc8, 0x1692, 0x159e, 0xff5a, 0x0e5d, 0x20f9,
+ 0x0e9a, 0x02ea, 0x0071, 0xf30b, 0xea04, 0xdec2,
+ 0xd3d7, 0xda28, 0xdb41, 0xd696, 0xe656, 0xf8b0,
+ 0xfcd3, 0xff4c, 0xfe50, 0xf67d, 0xf078, 0xf185,
+ 0xf9a0, 0xfd01, 0xf56c, 0xf42e, 0xff1a, 0x0367,
+ 0xfa73, 0xf338, 0xf482, 0xf3ae, 0xf1af, 0xf809,
+ 0xfbdb, 0xf997, 0x002f, 0x073a, 0x02d9, 0xfe0d,
+ 0xfaea, 0xf8f3, 0xfb30, 0xf586, 0xedef, 0xf3b2,
+ 0xf34b, 0xe984, 0xefce, 0xf926, 0xf272, 0xeda0,
+ 0xeff6, 0xef4a, 0xef06, 0xeb6a, 0xe291, 0xe482,
+ 0xee82, 0xf186, 0xf68c, 0xfd3f, 0xf505, 0xeeb8,
+ 0xf687, 0xf147, 0xe790, 0xf5e0, 0x0157, 0xfcf4,
+ 0x02e5, 0x04aa, 0xf6b0, 0xf513, 0xfc6c, 0xfecf,
+ 0x0451, 0x0394, 0xfbda, 0xfab5, 0xf68d, 0xf20a,
+ 0xf5da, 0xf4a7, 0xf7ac, 0x0396, 0x0179, 0x01a1,
+ 0x0f3e, 0x07a9, 0xf66a, 0xfc17, 0x0249, 0xf949,
+ 0xef92, 0xeb94, 0xf06f, 0xf71e, 0xf90a, 0x005f,
+ 0x054b, 0xfc42, 0xf5f9, 0xfa0e, 0xfd97, 0xfafc,
+ 0xf4c6, 0xf70b, 0x0200, 0x06bb, 0x036c, 0xf84b,
+ 0xeda9, 0xf69a, 0xfd8a, 0xeed6, 0xea26, 0xef1d,
+ 0xe723, 0xeac6, 0xfca9, 0xfbdd, 0xe8a4, 0xd5bb,
+ 0xd6f8, 0xe8dc, 0xe359, 0xd59c, 0xece5, 0x01a3,
+ 0xf4ce, 0xf047, 0xf478, 0xe92c, 0xe569, 0xf56e,
+ 0x064e, 0x0728, 0xf54d, 0xeb65, 0xf93d, 0x0492,
+ 0x0317, 0x020b, 0xffc7, 0xfd7a, 0x0071, 0x040c,
+ 0x091e, 0x0b7d, 0x0357, 0xff13, 0x054f, 0x054d,
+ 0x0147, 0x05c8, 0x0aa2, 0x08e6, 0x013e, 0xf23c,
+ 0xeb4e, 0xf897, 0x00f3, 0xf705, 0xf61b, 0x0085,
+ 0xfb1c, 0xf043, 0xf77f, 0x0259, 0x04ec, 0x097b,
+ 0x0a8f, 0x0101, 0xface, 0xfde2, 0x034f, 0x0592,
+ 0xf9ab, 0xe697, 0xec28, 0x0577, 0x0c27, 0x04b1,
+ 0x0920, 0x0a77, 0xfd9a, 0xfde7, 0x0c4b, 0x0b20,
+ 0x0361, 0x0957, 0x095d, 0xfdaa, 0xfea4, 0x07eb,
+ 0x0864, 0x0640, 0x04b1, 0xff4d, 0xf819, 0xf263,
+ 0xf502, 0x0187, 0x0c20, 0x0c09, 0x0417, 0xfebc,
+ 0xfd3b, 0xfa1d, 0x0433, 0x1668, 0x0df2, 0x008d,
+ 0x0c9a, 0x0e31, 0x062b, 0x1186, 0x0fa4, 0x022a,
+ 0x0fe4, 0x1b68, 0x13f9, 0x1793, 0x1ba0, 0x1403,
+ 0x1056, 0x0dd1, 0x0957, 0x07cb, 0x0bb4, 0x18d5,
+ 0x1d84, 0x11ae, 0x0d11, 0x0a5c, 0xfde2, 0xfcfd,
+ 0x0325, 0x0341, 0x0ab7, 0x0b5a, 0xfd5b, 0x025f,
+ 0x10fa, 0x0a88, 0x0582, 0x0cab, 0x0d15, 0x0ec3,
+ 0x143d, 0x107f, 0x0d12, 0x1032, 0x16b5, 0x2371,
+ 0x288e, 0x1e78, 0x16ce, 0x1557, 0x12a1, 0x0d64,
+ 0x0b2c, 0x1973, 0x262f, 0x164f, 0x07b1, 0x0e82,
+ 0x138e, 0x1a01, 0x2102, 0x1841, 0x13a3, 0x17f5,
+ 0x1593, 0x1977, 0x1f04, 0x1beb, 0x22b2, 0x2805,
+ 0x1b77, 0x147c, 0x1a91, 0x21f0, 0x2673, 0x21b6,
+ 0x192e, 0x15a7, 0x15af, 0x1cbd, 0x23fd, 0x215b,
+ 0x1d73, 0x1a59, 0x143c, 0x0d1d, 0x0549, 0x0946,
+ 0x18a3, 0x193a, 0x13c3, 0x1dd5, 0x20fa, 0x14ff,
+ 0x171c, 0x237f, 0x1c21, 0x0d96, 0x15ff, 0x20f2,
+ 0x18b6, 0x1a7e, 0x2725, 0x2105, 0x1c83, 0x2398,
+ 0x19a7, 0x10d4, 0x1d4d, 0x234e, 0x1efe, 0x1a74,
+ 0x1376, 0x1d6f, 0x30a7, 0x2a4d, 0x1e40, 0x1f54,
+ 0x1497, 0x08e9, 0x0f90, 0x1179, 0x0c57, 0x1112,
+ 0x1897, 0x1bfb, 0x190a, 0x126f, 0x134f, 0x11f9,
+ 0x0ad4, 0x109a, 0x175d, 0x120c, 0x1324, 0x1645,
+ 0x11be, 0x14b8, 0x1c76, 0x1c90, 0x16d7, 0x1007,
+ 0x0eb7, 0x0e34, 0x0d1f, 0x193a, 0x21b5, 0x15c4,
+ 0x1024, 0x1757, 0x192c, 0x1674, 0x1266, 0x1254,
+ 0x13c8, 0x0aca, 0x0849, 0x1086, 0x0eca, 0x1140,
+ 0x182f, 0x0cc5, 0x058b, 0x0b9e, 0x0929, 0x0b0c,
+ 0x1668, 0x1a10, 0x194e, 0x1977, 0x1fde, 0x27dc,
+ 0x1a23, 0x0419, 0x00f6, 0x05dd, 0x08c1, 0x07c9,
+ 0x02c6, 0x0512, 0x0790, 0x082e, 0x13e8, 0x13fc,
+ 0x05de, 0x0fdb, 0x207b, 0x158d, 0x0639, 0x05cf,
+ 0x0874, 0x05fc, 0x0734, 0x159b, 0x1a9d, 0x0997,
+ 0x0451, 0x0e38, 0x0eb4, 0x127e, 0x19e2, 0x1231,
+ 0x0b6a, 0x0a09, 0x00cf, 0x024a, 0x0e28, 0x06d9,
+ 0xfa10, 0xfd9b, 0xfcbd, 0xf583, 0x0052, 0x0f36,
+ 0x0a3f, 0x006d, 0x0090, 0x06d6, 0x12e6, 0x1a4c,
+ 0x11b4, 0x0905, 0x0bb9, 0x1020, 0x138b, 0x13c4,
+ 0x0bfa, 0x0763, 0x0be5, 0x0cec, 0x0793, 0x06d1,
+ 0x0b8f, 0x0a2f, 0x0554, 0x0958, 0x07a9, 0xf9a4,
+ 0xfd1a, 0x0b0d, 0x077d, 0x0a9b, 0x18bf, 0x11a9,
+ 0x0500, 0x040d, 0x045b, 0x0dbd, 0x12d3, 0x0774,
+ 0x0b26, 0x166f, 0x13d2, 0x1913, 0x1863, 0x07c0,
+ 0x104c, 0x1eb8, 0x0c2d, 0xfc8b, 0x00ff, 0x0294,
+ 0x060e, 0x0de1, 0x0baf, 0x03c0, 0x045f, 0x0696,
+ 0xfc14, 0xf7c6, 0x038f, 0x030b, 0x02b4, 0x1529,
+ 0x118b, 0xfe18, 0x03ff, 0x06fe, 0xfca8, 0x00be,
+ 0x0134, 0xfb4d, 0x0392, 0x0481, 0xfc6c, 0x047b,
+ 0x0bd0, 0x033e, 0xfd4c, 0xfe12, 0xfdd0, 0x029a,
+ 0x0a34, 0x02dd, 0xf415, 0xf7da, 0x02c6, 0x0184,
+ 0x056d, 0x0f0a, 0x0cdc, 0x0d82, 0x1245, 0x0839,
+ 0x0213, 0x0860, 0x01c4, 0xf918, 0x00d8, 0x083b,
+ 0x0b65, 0x0bc9, 0x0323, 0x006c, 0x00e0, 0xfac2,
+ 0x0516, 0x0df1, 0xfc70, 0xfbb6, 0x0649, 0xf871,
+ 0xfafa, 0x07d5, 0xf834, 0xf98f, 0x077b, 0xf719,
+ 0xf4ca, 0x0539, 0x01c9, 0x00fb, 0x03a5, 0x00c0,
+ 0x0840, 0x030d, 0xf716, 0x001f, 0x006c, 0xf8b3,
+ 0xfca5, 0xf8fa, 0xf991, 0x03c8, 0x042a, 0x066a,
+ 0xff85, 0xeedf, 0xf7f0, 0xff79, 0xf56c, 0xfb5f,
+ 0xfb04, 0xeea2, 0xf27c, 0xee3e, 0xe773, 0xf560,
+ 0xf613, 0xebc9, 0xec08, 0xe1fa, 0xd8c1, 0xe03b,
+ 0xe1c9, 0xdfa1, 0xe4aa, 0xe6f7, 0xe608, 0xe51c,
+ 0xe41b, 0xe402, 0xe5db, 0xea2d, 0xe485, 0xd7b7,
+ 0xde5a, 0xec57, 0xe805, 0xe338, 0xe7d6, 0xe80c,
+ 0xe6cb, 0xe84c, 0xe72b, 0xe4c0, 0xe6bc, 0xea3a,
+ 0xe5b8, 0xe351, 0xec88, 0xea38, 0xe008, 0xe8e2,
+ 0xed25, 0xe1d0, 0xe537, 0xe90e, 0xdcb4, 0xd99d,
+ 0xde52, 0xdd7b, 0xdf2c, 0xe329, 0xe99c, 0xf145,
+ 0xee9e, 0xe4e5, 0xdced, 0xdc65, 0xe61b, 0xeaff,
+ 0xe527, 0xe0a1, 0xe0eb, 0xe9a0, 0xf1a4, 0xe5ce,
+ 0xd96d, 0xe128, 0xe7ff, 0xe67c, 0xeb48, 0xf05c,
+ 0xeacd, 0xe24e, 0xe23d, 0xe68b, 0xe3ea, 0xe1d1,
+ 0xe55d, 0xdb2c, 0xd024, 0xe2cc, 0xef8a, 0xe015,
+ 0xe5dc, 0xfb34, 0xf4f7, 0xeba5, 0xed4b, 0xe5c6,
+ 0xe1d7, 0xe835, 0xedd0, 0xf336, 0xf364, 0xef98,
+ 0xf194, 0xf77a, 0xfc75, 0xfbe2, 0xf7ce, 0xf271,
+ 0xe9e6, 0xed61, 0xf689, 0xee2f, 0xebd0, 0xf194,
+ 0xe163, 0xd947, 0xe652, 0xe500, 0xe54a, 0xeeff,
+ 0xe5e1, 0xe25e, 0xeeb6, 0xe906, 0xe43d, 0xee9c,
+ 0xe66e, 0xdcab, 0xe825, 0xe520, 0xd9d6, 0xe867,
+ 0xf43e, 0xeb72, 0xe853, 0xe7ef, 0xe131, 0xe4a1,
+ 0xeb28, 0xe119, 0xd90d, 0xe245, 0xe26f, 0xd709,
+ 0xd879, 0xd911, 0xd2d0, 0xd8bd, 0xd9cd, 0xd0b7,
+ 0xd2f4, 0xd560, 0xd6e9, 0xdf7c, 0xd993, 0xcf49,
+ 0xd59f, 0xd8ee, 0xd402, 0xd23d, 0xd5a2, 0xdcf0,
+ 0xd725, 0xcb14, 0xd2d3, 0xd6aa, 0xcce3, 0xd8f5,
+ 0xe875, 0xdcdb, 0xd5e7, 0xddc9, 0xd9eb, 0xd1ff,
+ 0xd4f1, 0xda86, 0xdb85, 0xd786, 0xd95b, 0xe1a7,
+ 0xdc46, 0xd547, 0xdcf8, 0xdc02, 0xd9d4, 0xe62b,
+ 0xe204, 0xd3e9, 0xdaf5, 0xe3bb, 0xe2b4, 0xe1d4,
+ 0xd937, 0xcd55, 0xcfda, 0xda54, 0xd854, 0xd382,
+ 0xde32, 0xe034, 0xd518, 0xd81c, 0xd64d, 0xcda4,
+ 0xd721, 0xd8a1, 0xd67e, 0xe8af, 0xe9e6, 0xdfab,
+ 0xe951, 0xe85c, 0xdbc5, 0xdb91, 0xda4a, 0xd951,
+ 0xe112, 0xe6f3, 0xe7e5, 0xe4dc, 0xe1b9, 0xdf7f,
+ 0xd8d4, 0xd469, 0xd4b1, 0xd576, 0xd828, 0xd63e,
+ 0xd3e6, 0xd822, 0xd285, 0xca43, 0xd161, 0xd4e6,
+ 0xd558, 0xdf1a, 0xdc52, 0xd802, 0xe404, 0xdd32,
+ 0xcc66, 0xd2c9, 0xd336, 0xcdac, 0xdb95, 0xe496,
+ 0xe46d, 0xe50f, 0xdd1a, 0xdb03, 0xdcd2, 0xd97b,
+ 0xe07c, 0xde29, 0xd2fb, 0xe15b, 0xef64, 0xeca6,
+ 0xeda3, 0xe818, 0xe02d, 0xdef4, 0xdcf2, 0xe665,
+ 0xed82, 0xe550, 0xe987, 0xf014, 0xe83d, 0xe6b3,
+ 0xea7a, 0xec94, 0xedbb, 0xe712, 0xe512, 0xee36,
+ 0xf096, 0xe703, 0xe0b2, 0xec14, 0xf7a1, 0xebb4,
+ 0xdf18, 0xe5a4, 0xed62, 0xefec, 0xf3c5, 0xf425,
+ 0xeffe, 0xf05d, 0xf546, 0xf849, 0xfbfd, 0xf7a9,
+ 0xe8d4, 0xec4f, 0xf9a7, 0xf46b, 0xf501, 0xfde4,
+ 0xf76b, 0xf817, 0x0244, 0x01ad, 0x066d, 0x0c1f,
+ 0x0125, 0xfae3, 0x0227, 0x047c, 0x0022, 0xffbb,
+ 0x0422, 0x05fc, 0x0494, 0x0640, 0x08fc, 0x05c2,
+ 0x0093, 0x016a, 0x0305, 0x00a8, 0x0435, 0x0f09,
+ 0x1229, 0x09ed, 0x0884, 0x11b1, 0x0cab, 0x00ae,
+ 0x09e7, 0x10de, 0x06de, 0x073b, 0x0b24, 0x06ed,
+ 0x08c2, 0x0cab, 0x0cfa, 0x094f, 0x0174, 0xfdcb,
+ 0xf88b, 0xf5e6, 0x00b7, 0x050a, 0x0305, 0x05b9,
+ 0x016f, 0x014d, 0x05b6, 0xffde, 0x0005, 0xfd02,
+ 0xec37, 0xedde, 0xfd2f, 0x00d6, 0xff75, 0x0044,
+ 0x06cc, 0x0713, 0xf63d, 0xf063, 0xfaf7, 0xfa80,
+ 0xf451, 0xf36e, 0xefeb, 0xf0a8, 0xfcbc, 0x049f,
+ 0x029d, 0x03fc, 0x0364, 0xf81e, 0xf4c0, 0xff48,
+ 0x051a, 0x0319, 0x0464, 0x0821, 0x040b, 0xfe1f,
+ 0x00af, 0x02d6, 0x0492, 0x087d, 0x053f, 0x046e,
+ 0x0656, 0x0183, 0x0544, 0x099b, 0x05a5, 0x0d01,
+ 0x0fe8, 0x07a1, 0x0bd9, 0x0f6f, 0x0b60, 0x0966,
+ 0x0661, 0x0b29, 0x0e05, 0x07b6, 0x0dce, 0x12b6,
+ 0x0d42, 0x0d0c, 0x0886, 0x0903, 0x11f2, 0x0d1b,
+ 0x0e54, 0x16b0, 0x0d54, 0x07fe, 0x0aff, 0x0a9a,
+ 0x1119, 0x1084, 0x0aec, 0x1186, 0x0f8f, 0x0822,
+ 0x0be5, 0x0c11, 0x0f5e, 0x180b, 0x1094, 0x09b3,
+ 0x1012, 0x100c, 0x1259, 0x1cd2, 0x1ada, 0x14ce,
+ 0x15ec, 0x11a6, 0x0c8f, 0x0d86, 0x0fbe, 0x126c,
+ 0x0e79, 0x08ec, 0x0910, 0x0375, 0x0582, 0x1364,
+ 0x128d, 0x1067, 0x125d, 0x05bb, 0x06fd, 0x18bb,
+ 0x18c9, 0x12a4, 0x10f9, 0x0c95, 0x06be, 0x00c4,
+ 0x07c9, 0x0f07, 0x0504, 0x0884, 0x1262, 0x08b9,
+ 0x0894, 0x1029, 0x0d48, 0x1204, 0x125c, 0x0307,
+ 0xfd1f, 0x028d, 0x05d1, 0x054e, 0x01cf, 0xff54,
+ 0x02c1, 0x089d, 0x059b, 0xfeee, 0x0299, 0x05f9,
+ 0x0153, 0xfb90, 0xf6d9, 0xfc6f, 0x08a6, 0x0ac3,
+ 0x0525, 0xff3d, 0x02a1, 0x0be2, 0x07ae, 0x0575,
+ 0x0e17, 0x0afb, 0x0676, 0x0a12, 0x0a42, 0x0b48,
+ 0x09c3, 0x0762, 0x0934, 0x023a, 0x00f4, 0x0c5a,
+ 0x0ad0, 0x071c, 0x0ed4, 0x146d, 0x176b, 0x138e,
+ 0x0a06, 0x0997, 0x0b76, 0x0a2a, 0x0b7c, 0x0bbf,
+ 0x0ab9, 0x0b89, 0x0f10, 0x13c9, 0x14f9, 0x14b2,
+ 0x11d0, 0x0915, 0x03ae, 0x04d9, 0x05a1, 0x04b3,
+ 0x04cd, 0x04ee, 0x02fe, 0x0590, 0x0ac7, 0x0842,
+ 0x072e, 0x08c9, 0x0581, 0x093d, 0x0beb, 0x0593,
+ 0x0a35, 0x0ed4, 0x086d, 0x0a90, 0x0e12, 0x0b89,
+ 0x0fcc, 0x173d, 0x1b4f, 0x15c3, 0x069d, 0x0187,
+ 0x072a, 0x08f1, 0x0be2, 0x12e1, 0x127b, 0x0cef,
+ 0x1000, 0x1332, 0x1088, 0x1796, 0x16c2, 0x0348,
+ 0x03aa, 0x0f9b, 0x0a9c, 0x0c90, 0x11b3, 0x0661,
+ 0x0055, 0x05bf, 0x0bf3, 0x11e3, 0x11b1, 0x0d13,
+ 0x0ae0, 0x0bfb, 0x0d89, 0x0c07, 0x0cee, 0x0f42,
+ 0x0e74, 0x106c, 0x0ea0, 0x07d3, 0x07f5, 0x06b7,
+ 0x0138, 0x034d, 0x0a64, 0x0d4c, 0x0728, 0x00c3,
+ 0x018f, 0x023f, 0x07c9, 0x0d12, 0x0618, 0x05ad,
+ 0x085d, 0x0111, 0x0641, 0x0ef5, 0x08b6, 0x08cb,
+ 0x0e28, 0x0986, 0x04a8, 0x08e3, 0x0fd3, 0x0cb1,
+ 0x086e, 0x0d8b, 0x0b87, 0x076e, 0x0c4f, 0x0af6,
+ 0x0925, 0x0d08, 0x0b61, 0x0c32, 0x10e8, 0x1107,
+ 0x10d1, 0x0ff8, 0x0c50, 0x0734, 0x0866, 0x12be,
+ 0x1051, 0x038d, 0x05cb, 0x09fe, 0x05d3, 0x0727,
+ 0x0a77, 0x0ab3, 0x0a82, 0x0a8a, 0x0afc, 0x08f0,
+ 0x0ba2, 0x12cd, 0x0e80, 0x0794, 0x0aba, 0x0da4,
+ 0x0d13, 0x0b19, 0x077f, 0x0676, 0x07de, 0x0c15,
+ 0x14b8, 0x1aa8, 0x1773, 0x117e, 0x0fcb, 0x0ceb,
+ 0x0ba9, 0x1094, 0x0c84, 0x057c, 0x0c79, 0x0fc0,
+ 0x093e, 0x0696, 0x05d8, 0x075b, 0x088f, 0x06eb,
+ 0x0714, 0x00af, 0xfc97, 0x03ec, 0xff54, 0xf702,
+ 0xfda0, 0xfefc, 0xfb71, 0x0032, 0x046d, 0x063a,
+ 0x05cc, 0x0183, 0xfe93, 0xfea6, 0x0292, 0x0750,
+ 0x0899, 0x0789, 0x03e2, 0x00c6, 0xff48, 0xff82,
+ 0x027f, 0xfea2, 0xfc65, 0x057f, 0x04d2, 0x0226,
+ 0x09aa, 0x028c, 0xfab8, 0x058a, 0x08d3, 0x0169,
+ 0xfb43, 0xf7f0, 0xfb4f, 0xfa32, 0xf7dd, 0xff75,
+ 0xfd71, 0xf39f, 0xf79a, 0xff3a, 0xfdd7, 0xfade,
+ 0xfd7e, 0xfd3f, 0xf3ac, 0xf15a, 0xf850, 0xf842,
+ 0xf681, 0xf944, 0xfca5, 0x000c, 0xffaa, 0xff6b,
+ 0x020f, 0xff82, 0xfc9f, 0xff9a, 0x0177, 0xff0a,
+ 0xfeb1, 0x0586, 0x09c8, 0x0693, 0x076e, 0x0a07,
+ 0x0930, 0x084c, 0x031e, 0x0023, 0x037f, 0x025c,
+ 0x04f1, 0x0fd5, 0x14f8, 0x14fe, 0x1265, 0x0c15,
+ 0x0b9f, 0x1183, 0x1104, 0x097f, 0x0aff, 0x1287,
+ 0x0e13, 0x0a96, 0x0f5b, 0x0af7, 0x0899, 0x0f53,
+ 0x0fde, 0x1039, 0x110e, 0x0e0e, 0x0f7b, 0x0bee,
+ 0x03e3, 0x0435, 0x01d2, 0xfd39, 0xffc2, 0x0026,
+ 0x00dc, 0x0747, 0x08ed, 0x0611, 0x087f, 0x0baa,
+ 0x071f, 0x0341, 0x03e0, 0x0106, 0x01a9, 0x0424,
+ 0xfe66, 0x0063, 0x08da, 0x056b, 0x0274, 0x03ea,
+ 0x0023, 0x01ed, 0x096a, 0x07e2, 0xff69, 0xfdb9,
+ 0x00e9, 0xfb9a, 0xf8f9, 0x0155, 0x00be, 0xfc25,
+ 0xfec4, 0xfaf2, 0xf9e6, 0x027f, 0x0149, 0xfc1c,
+ 0xfed0, 0xfe4f, 0xf761, 0xef18, 0xe82b, 0xe9a0,
+ 0xf434, 0xfb12, 0xfa95, 0xfc4e, 0xfa55, 0xf11d,
+ 0xf21f, 0xf932, 0xf4b5, 0xeca1, 0xeb51, 0xeddb,
+ 0xf06b, 0xf326, 0xf2f1, 0xe9a2, 0xe757, 0xf3e6,
+ 0xf3c9, 0xebb8, 0xf25f, 0xf772, 0xf4a2, 0xf25c,
+ 0xeeff, 0xf06c, 0xf25b, 0xf241, 0xf631, 0xf28f,
+ 0xee8e, 0xf5bb, 0xf75d, 0xf760, 0xfaf0, 0xf7e8,
+ 0xf7b6, 0xf67c, 0xf169, 0xf8b4, 0xfd5a, 0xf766,
+ 0xf601, 0xf1a6, 0xecce, 0xee7a, 0xec93, 0xee14,
+ 0xf382, 0xf54c, 0xfc01, 0xff07, 0xf8e2, 0xf6b0,
+ 0xf3dd, 0xf26e, 0xf782, 0xf349, 0xec38, 0xef60,
+ 0xf116, 0xf27d, 0xf58e, 0xf0e6, 0xeedb, 0xf164,
+ 0xed54, 0xedfd, 0xf2a5, 0xed39, 0xead5, 0xedd7,
+ 0xe8a5, 0xe359, 0xdef0, 0xd7f7, 0xd9b5, 0xde57,
+ 0xe0e1, 0xe6c3, 0xe5d9, 0xe41b, 0xeb19, 0xe9f3,
+ 0xe4b0, 0xe5cb, 0xe08b, 0xdd0d, 0xe671, 0xeba7,
+ 0xe876, 0xe927, 0xe969, 0xe3ed, 0xe7dd, 0xf331,
+ 0xee12, 0xe6ce, 0xf236, 0xf8f7, 0xf289, 0xee17,
+ 0xec7b, 0xeedd, 0xf1ad, 0xf23f, 0xf785, 0xfacc,
+ 0xfce1, 0x0213, 0xfddf, 0xf96c, 0xfd12, 0xf7d9,
+ 0xeeb0, 0xee3b, 0xf21e, 0xf528, 0xf435, 0xf66a,
+ 0xf95f, 0xf14b, 0xed59, 0xf134, 0xed97, 0xecf8,
+ 0xf14d, 0xedf8, 0xe783, 0xe2f0, 0xe681, 0xefc4,
+ 0xedeb, 0xe975, 0xed51, 0xed75, 0xea7a, 0xe9a0,
+ 0xe85e, 0xeae9, 0xeffd, 0xf062, 0xeb6b, 0xea83,
+ 0xf75e, 0x0102, 0xf7fa, 0xf29b, 0xf995, 0xf9de,
+ 0xf63a, 0xf875, 0xfb2e, 0xfbba, 0xf930, 0xf8e9,
+ 0x01ca, 0x04f9, 0xfd48, 0xfc91, 0xfdf4, 0xfa18,
+ 0x0007, 0x0782, 0x00be, 0xfabb, 0xfd6c, 0xfeea,
+ 0xfd13, 0xfa1f, 0xf8a9, 0xf6ff, 0xf2ee, 0xf5a8,
+ 0xfd57, 0xfbbb, 0xf656, 0xf7e5, 0xfaab, 0xfb6b,
+ 0xfe02, 0xfe78, 0xf939, 0xf7ed, 0xfdd2, 0xfe71,
+ 0xf9ed, 0xfa16, 0xf9c3, 0xf4ef, 0xf388, 0xf6f7,
+ 0xf92a, 0xfa25, 0xfd5a, 0xfe3e, 0xfa96, 0xf97f,
+ 0xf99c, 0xf7ba, 0xf728, 0xf4ae, 0xf343, 0xf55c,
+ 0xf08f, 0xecd6, 0xf06a, 0xeb5b, 0xe678, 0xee59,
+ 0xf246, 0xef07, 0xf02b, 0xf5f8, 0xf833, 0xefcb,
+ 0xe944, 0xeea1, 0xf28f, 0xf285, 0xf19f, 0xed66,
+ 0xef57, 0xf4cc, 0xf3d8, 0xf447, 0xf5ae, 0xf4b5,
+ 0xf6ca, 0xf678, 0xf38b, 0xf387, 0xf139, 0xeff0,
+ 0xf409, 0xf72d, 0xf87e, 0xf69b, 0xf2e0, 0xf591,
+ 0xf86c, 0xf6b7, 0xf914, 0xfaf0, 0xf805, 0xf7ad,
+ 0xf5bf, 0xf026, 0xeecb, 0xf0a3, 0xf48f, 0xf7f3,
+ 0xf33a, 0xeddc, 0xed7d, 0xecf2, 0xf285, 0xfaf1,
+ 0xf862, 0xf33e, 0xf3ca, 0xf492, 0xf5d8, 0xf52d,
+ 0xf1ac, 0xf3f1, 0xf99f, 0xf8d2, 0xf362, 0xf23f,
+ 0xf5b0, 0xf6e6, 0xf81c, 0xf818, 0xee95, 0xea55,
+ 0xf4aa, 0xf78c, 0xf346, 0xf696, 0xf450, 0xed51,
+ 0xf2af, 0xfa62, 0xfab0, 0xf8ac, 0xf459, 0xf46e,
+ 0xfa1b, 0xf751, 0xf09d, 0xf159, 0xf32f, 0xf4fc,
+ 0xf7f2, 0xf6ba, 0xf681, 0xf919, 0xf7e0, 0xf796,
+ 0xfb52, 0xff63, 0x02cb, 0xfe1e, 0xf2ac, 0xefca,
+ 0xf38a, 0xf55c, 0xf8fc, 0xfbb6, 0xf935, 0xf4d7,
+ 0xf129, 0xf3b3, 0xf8a2, 0xf3a5, 0xf001, 0xf7ce,
+ 0xfa42, 0xf5fd, 0xf7fa, 0xfb66, 0xfb0e, 0xf6a8,
+ 0xeed2, 0xecc3, 0xef94, 0xf13c, 0xf50f, 0xf48f,
+ 0xef71, 0xf060, 0xee82, 0xeac5, 0xf13a, 0xf308,
+ 0xf06a, 0xf8db, 0xfc9d, 0xf798, 0xf4ac, 0xeabb,
+ 0xe307, 0xe92c, 0xec83, 0xee48, 0xf494, 0xf3f2,
+ 0xf1f8, 0xf432, 0xf3ae, 0xf211, 0xeeaa, 0xecfc,
+ 0xf28e, 0xf53b, 0xf530, 0xf701, 0xf4ff, 0xf634,
+ 0xf80c, 0xf14d, 0xf09b, 0xf4a6, 0xf39d, 0xf86c,
+ 0xfa9c, 0xf4d2, 0xf625, 0xf459, 0xee89, 0xf366,
+ 0xf3c5, 0xeef5, 0xf34e, 0xf6da, 0xfbba, 0x0397,
+ 0x0036, 0xfcbe, 0xff72, 0xfc7d, 0xfbfe, 0xfe88,
+ 0xfb11, 0xf9b8, 0xf890, 0xf23e, 0xf12f, 0xf63e,
+ 0xfa15, 0xfb18, 0xf988, 0xf7ce, 0xf6fd, 0xf8ab,
+ 0xfd20, 0xfd9e, 0xfa29, 0xf6fc, 0xf40d, 0xf63c,
+ 0xfb03, 0xf9cb, 0xf892, 0xfa82, 0xf9be, 0xf87e,
+ 0xf8b0, 0xf83d, 0xf6e5, 0xf5e7, 0xf7c7, 0xf8ed,
+ 0xf7f5, 0xfacd, 0xfcdb, 0xfcdc, 0x0232, 0x03ad,
+ 0xfd77, 0xfb91, 0xfc24, 0xfce6, 0x01b0, 0x037a,
+ 0x025a, 0x0491, 0x0608, 0x05dc, 0x057e, 0x031c,
+ 0x013c, 0xfeb6, 0xf951, 0xf85a, 0xfdc5, 0xff76,
+ 0xfa77, 0xf957, 0xff26, 0x00f0, 0xfc37, 0xf958,
+ 0xfaa5, 0xfc65, 0xfc65, 0xfe24, 0x0122, 0xfd9e,
+ 0xfa73, 0xfdf8, 0xfb58, 0xf816, 0xff2e, 0xfffa,
+ 0xfa13, 0xfbe2, 0xfd9b, 0xfdb6, 0xffc3, 0xfc0b,
+ 0xf910, 0xfb13, 0xf971, 0xf9aa, 0xfd68, 0xfc2e,
+ 0xfa41, 0xfaa3, 0xf9b7, 0xf823, 0xf5b3, 0xf441,
+ 0xf7dd, 0x002b, 0x0658, 0x00fa, 0xf933, 0xfe3a,
+ 0x043f, 0x0318, 0x05cb, 0x06d5, 0x010f, 0xffb5,
+ 0x0042, 0xfdd9, 0xff9c, 0x0220, 0xffb8, 0xff4b,
+ 0x02f2, 0x044c, 0x0327, 0x0434, 0x05ea, 0x03fc,
+ 0x00cb, 0xffc7, 0x0076, 0x01bc, 0x0021, 0xfccd,
+ 0x0000, 0x048c, 0xff02, 0xf9a7, 0xfe95, 0x0190,
+ 0xfef7, 0x0028, 0x018e, 0xff75, 0xfec5, 0xfe65,
+ 0xfecc, 0x0158, 0x0033, 0xfd76, 0xfddd, 0xfdd2,
+ 0xfed8, 0x0130, 0xff96, 0xfc51, 0xf901, 0xf778,
+ 0xfd5a, 0x036f, 0x0278, 0x0046, 0xff61, 0xff96,
+ 0xfd9d, 0xf6a0, 0xf6b6, 0xfe65, 0xfdb5, 0xf8d7,
+ 0xf847, 0xf85d, 0xfa6d, 0xfa9d, 0xf69a, 0xf8b8,
+ 0xfd96, 0xfd15, 0xfc05, 0xf9de, 0xf73e, 0xf9c5,
+ 0xfbd6, 0xfaa6, 0xfb1c, 0xfaab, 0xf7bd, 0xf6a6,
+ 0xf908, 0xfd86, 0xffa9, 0xfada, 0xf313, 0xf162,
+ 0xf56a, 0xf746, 0xf7a5, 0xfa46, 0xfba2, 0xfb30,
+ 0xfab5, 0xf931, 0xf844, 0xf728, 0xf667, 0xfaaa,
+ 0xfd8c, 0xfb3d, 0xfcd0, 0xfebd, 0xf9b0, 0xf5c9,
+ 0xf793, 0xfbb2, 0x0081, 0x039a, 0x03fa, 0x01d4,
+ 0xff1d, 0xfffc, 0x0201, 0x031a, 0x078a, 0x0cee,
+ 0x0ed9, 0x0f2b, 0x0dd5, 0x0b6c, 0x0c3b, 0x0f23,
+ 0x0ee3, 0x0cc1, 0x0dfe, 0x1024, 0x0fb8, 0x1091,
+ 0x1111, 0x0e4a, 0x0eba, 0x11b6, 0x11a3, 0x11e1,
+ 0x1276, 0x111a, 0x1096, 0x0f20, 0x0bd9, 0x0b4a,
+ 0x0e44, 0x134f, 0x1708, 0x15c0, 0x124c, 0x1002,
+ 0x0e92, 0x0d51, 0x0c1c, 0x0d2b, 0x0fcf, 0x0f65,
+ 0x0c88, 0x0add, 0x0ba7, 0x0e13, 0x0fc3, 0x0f5b,
+ 0x0b8b, 0x0797, 0x0a28, 0x0d6b, 0x0c1e, 0x0c67,
+ 0x0a99, 0x0667, 0x0945, 0x0a49, 0x05c1, 0x083e,
+ 0x0996, 0x0273, 0x011a, 0x0705, 0x0a18, 0x0995,
+ 0x0958, 0x09ce, 0x0697, 0x0247, 0x02f2, 0x03af,
+ 0x03e8, 0x06ed, 0x06d4, 0x0424, 0x0272, 0x0024,
+ 0x0070, 0x01b4, 0x007d, 0xff7f, 0xfbe8, 0xf853,
+ 0xf9e1, 0xfac7, 0xfdab, 0x02f4, 0x0119, 0xfe2e,
+ 0xfbe5, 0xf60b, 0xf8f0, 0xffac, 0xfd04, 0xfae0,
+ 0xf987, 0xf576, 0xf790, 0xfa3e, 0xfa6b, 0xfda7,
+ 0xfe08, 0xfea1, 0x0290, 0x0068, 0xfe10, 0x006d,
+ 0xff3e, 0xfd45, 0xfcae, 0xfaff, 0xfba2, 0xfc7e,
+ 0xfcd3, 0xffcb, 0x0215, 0x037a, 0x0437, 0x02c5,
+ 0x0363, 0x03b8, 0x00c6, 0x0143, 0x0498, 0x0762,
+ 0x0b3a, 0x0d37, 0x0d7e, 0x0e3d, 0x0cfb, 0x0be5,
+ 0x0d08, 0x0eb1, 0x1078, 0x0e45, 0x0838, 0x05ea,
+ 0x079f, 0x09a8, 0x0a2a, 0x07ae, 0x06f0, 0x0a4b,
+ 0x0ae2, 0x078c, 0x063a, 0x062b, 0x0279, 0xfe37,
+ 0xfdca, 0xfcad, 0xfaab, 0xfca4, 0xfda4, 0xfb3a,
+ 0xf97b, 0xf79b, 0xf93c, 0xfdca, 0xf9c1, 0xf1d1,
+ 0xf09e, 0xf17d, 0xf37b, 0xf746, 0xf7c6, 0xf7ab,
+ 0xf774, 0xf4d4, 0xf711, 0xfd98, 0xff29, 0xfd0c,
+ 0xfc2b, 0xfcc5, 0xfd4a, 0xfc52, 0xfb68, 0xfbbe,
+ 0xfd91, 0x00ff, 0x0181, 0xfeb3, 0xfef3, 0xfff8,
+ 0xfd0c, 0xfc18, 0x0066, 0x01f3, 0xfc2e, 0xf7d9,
+ 0xfb7b, 0xff14, 0xfd81, 0xfc7c, 0xfd3d, 0xfd96,
+ 0xfde4, 0xfc4f, 0xfa92, 0xfbd6, 0xfaae, 0xf678,
+ 0xf720, 0xf9c9, 0xf814, 0xf74c, 0xf9d2, 0xfacf,
+ 0xfa61, 0xf8a2, 0xf58a, 0xf691, 0xf99f, 0xf80e,
+ 0xf6e8, 0xfa2e, 0xfca4, 0xfd43, 0xfdee, 0xfe21,
+ 0xfedd, 0x0123, 0x0351, 0x02cf, 0x0161, 0x03db,
+ 0x0822, 0x0a50, 0x0bd0, 0x0ae1, 0x06e5, 0x052d,
+ 0x05ee, 0x0756, 0x09ed, 0x0b5b, 0x0bd2, 0x0c42,
+ 0x09d5, 0x06ea, 0x06f5, 0x079b, 0x08ae, 0x0b93,
+ 0x0e55, 0x0e09, 0x0b4c, 0x0a88, 0x0aba, 0x0887,
+ 0x0805, 0x09d1, 0x0ab6, 0x0c7f, 0x0d59, 0x0cc0,
+ 0x0e87, 0x0e75, 0x0c09, 0x0c03, 0x0a5a, 0x08af,
+ 0x0b43, 0x0b4e, 0x0999, 0x0a4d, 0x0916, 0x0989,
+ 0x0da7, 0x0d1c, 0x08af, 0x059a, 0x046a, 0x0474,
+ 0x01fe, 0x0020, 0x0389, 0x0473, 0x0223, 0x02be,
+ 0x0106, 0xfd0b, 0xfd5a, 0xfe90, 0xfea2, 0xffd5,
+ 0x004e, 0xff9e, 0xfdd2, 0xfabf, 0xfa70, 0xfd22,
+ 0xfec0, 0xff5f, 0xff71, 0xfec7, 0xfe78, 0xfd30,
+ 0xfbb3, 0xfc27, 0xfc80, 0xfd31, 0xfe80, 0xfcd6,
+ 0xfc9c, 0x015f, 0x01b6, 0xfc8e, 0xfb68, 0xfbdb,
+ 0xfaf4, 0xfd8b, 0xfe47, 0xf9a1, 0xf861, 0xfb49,
+ 0xfd7c, 0xfe16, 0xfbb4, 0xf924, 0xf8df, 0xf8e3,
+ 0xfb10, 0xfdb5, 0xfd06, 0xfd9a, 0xfe11, 0xfb49,
+ 0xfcd3, 0xfdce, 0xf604, 0xf29f, 0xf6de, 0xf701,
+ 0xf638, 0xf88b, 0xfa2e, 0xfb3b, 0xfa50, 0xf8a6,
+ 0xf9f8, 0xfa0a, 0xf7cc, 0xf8b5, 0xfbf6, 0xfc0e,
+ 0xf791, 0xf49d, 0xf76a, 0xf95b, 0xf7d8, 0xf8f7,
+ 0xfc34, 0xfe57, 0xff89, 0xff38, 0xfef1, 0xffcc,
+ 0x009d, 0x0114, 0xff57, 0xfcde, 0xfddc, 0xffbe,
+ 0x0002, 0x019e, 0x03e8, 0x0325, 0x0080, 0xfefd,
+ 0xffba, 0x01d1, 0x0084, 0xfdd3, 0x0092, 0x01d7,
+ 0xfe14, 0xfeee, 0x01d4, 0x006f, 0xfec2, 0xfd2c,
+ 0xfb2c, 0xfaa7, 0xf8ab, 0xf614, 0xf8b5, 0xfd79,
+ 0xfe29, 0xfcf9, 0xfba3, 0xf9cd, 0xf99b, 0xf881,
+ 0xf5cd, 0xf5ab, 0xf5eb, 0xf571, 0xf4be, 0xf16b,
+ 0xf155, 0xf582, 0xf452, 0xf0f4, 0xf15b, 0xf152,
+ 0xf206, 0xf5bc, 0xf81e, 0xf6f4, 0xf518, 0xf68b,
+ 0xf821, 0xf593, 0xf47b, 0xf63e, 0xf683, 0xf769,
+ 0xf7e8, 0xf6b7, 0xfa8a, 0x0005, 0xfe20, 0xfaf6,
+ 0xfac8, 0xf800, 0xf7e6, 0xfe13, 0x0090, 0xff20,
+ 0xff87, 0xfdea, 0xf9e6, 0xf941, 0xfb4c, 0xfb12,
+ 0xfa29, 0xfbd7, 0xfb42, 0xf862, 0xfa63, 0xfe2b,
+ 0xfeb4, 0xfd54, 0xf994, 0xf6d9, 0xf80c, 0xf7e8,
+ 0xf629, 0xf5f7, 0xf69c, 0xf88e, 0xf995, 0xf870,
+ 0xf8a7, 0xf8ae, 0xf86a, 0xfb2c, 0xfcf5, 0xfc84,
+ 0xfcf7, 0xfb93, 0xf960, 0xfa25, 0xfae0, 0xfcf5,
+ 0x0235, 0x0287, 0xfeb7, 0xff06, 0x0138, 0x02e0,
+ 0x0385, 0x0181, 0x008f, 0x01f4, 0x03ed, 0x0408,
+ 0x0033, 0xffa4, 0x03f6, 0x05a3, 0x05b9, 0x056e,
+ 0x046a, 0x0571, 0x0531, 0x0264, 0x01cb, 0x01e3,
+ 0x005d, 0x021a, 0x05ca, 0x0456, 0x01e0, 0x033a,
+ 0x04bf, 0x040a, 0x00d6, 0xffe1, 0x0275, 0x01df,
+ 0x00d1, 0x019d, 0x0127, 0x03be, 0x0685, 0x0377,
+ 0x0109, 0x01cb, 0x0135, 0xffb0, 0xff51, 0x0107,
+ 0x03af, 0x034d, 0x0181, 0x01d3, 0x00f0, 0xff51,
+ 0xff5f, 0xfe57, 0xfdb5, 0xfe3f, 0xfe27, 0xffc2,
+ 0x0111, 0xffc2, 0x0015, 0x00bb, 0xfd54, 0xfb87,
+ 0xfe6a, 0xffb9, 0x009d, 0x01a4, 0x0014, 0x0271,
+ 0x0538, 0x0278, 0x0118, 0x0035, 0xff45, 0xff41,
+ 0xfbad, 0xfab7, 0xfca6, 0xfb3b, 0xfb77, 0xfce0,
+ 0xfdb9, 0x022b, 0x05bb, 0x03ed, 0x01b0, 0x01ec,
+ 0x022c, 0x02b6, 0x0358, 0x023a, 0x00d2, 0xfee6,
+ 0xfe67, 0x007f, 0x00b2, 0x02f4, 0x07ef, 0x0765,
+ 0x049f, 0x0376, 0x00b0, 0xfdd4, 0xfd4b, 0xff30,
+ 0x023b, 0x0304, 0x01ef, 0x030f, 0x0470, 0x02d3,
+ 0x005a, 0xfece, 0x00b4, 0x037a, 0x029e, 0x039b,
+ 0x04d4, 0x035c, 0x047f, 0x0404, 0x029a, 0x0432,
+ 0x0380, 0x02e4, 0x02a7, 0x0071, 0x0003, 0xfedd,
+ 0xfd18, 0xfd32, 0xfc52, 0xfb74, 0xfcaa, 0xfe58,
+ 0xfd56, 0xfbec, 0xfe16, 0xff7c, 0xfe41, 0xfc16,
+ 0xf9ec, 0xfa2b, 0xf9df, 0xf8eb, 0xfa62, 0xfa6b,
+ 0xf9bf, 0xfb6d, 0xfbf6, 0xfc2f, 0xff6d, 0x014d,
+ 0xff5e, 0xfdd4, 0xfc82, 0xfbc2, 0xfdb7, 0xfd4d,
+ 0xfade, 0xfb6e, 0xfaf0, 0xf8a3, 0xf9f5, 0xfc6d,
+ 0xfc3d, 0xfc95, 0xfc98, 0xfa62, 0xf96d, 0xf7c2,
+ 0xf64c, 0xf795, 0xf59e, 0xf41f, 0xf5eb, 0xf4d9,
+ 0xf476, 0xf3f5, 0xf1b1, 0xf39b, 0xf453, 0xf0c0,
+ 0xef7f, 0xf0ec, 0xf164, 0xef95, 0xef02, 0xf222,
+ 0xf627, 0xf74d, 0xf4d7, 0xf3d7, 0xf493, 0xf3d0,
+ 0xf4df, 0xf6be, 0xf720, 0xf923, 0xfc26, 0xfdd3,
+ 0xfdf7, 0xfeb7, 0x022c, 0x05a8, 0x060e, 0x03ed,
+ 0x02d3, 0x033f, 0x029a, 0x0386, 0x060c, 0x0684,
+ 0x075f, 0x089f, 0x086a, 0x0958, 0x09ec, 0x08e7,
+ 0x08e8, 0x08a5, 0x0853, 0x0a48, 0x0c4a, 0x0ca5,
+ 0x0b64, 0x09ad, 0x0af7, 0x0d7a, 0x0c8d, 0x0aca,
+ 0x0bde, 0x0c5c, 0x0add, 0x0b70, 0x0bb1, 0x090a,
+ 0x07c0, 0x0733, 0x0710, 0x08ea, 0x088b, 0x073d,
+ 0x0855, 0x093a, 0x097c, 0x08cc, 0x0702, 0x0664,
+ 0x0753, 0x0865, 0x088c, 0x0915, 0x09af, 0x08d8,
+ 0x0801, 0x05ac, 0x0324, 0x0441, 0x0531, 0x0534,
+ 0x0531, 0x02d8, 0x0262, 0x03ce, 0x031f, 0x0377,
+ 0x04cd, 0x05cd, 0x0594, 0x018e, 0xff85, 0x00eb,
+ 0x0008, 0xff59, 0xfedf, 0xfd37, 0xfd14, 0xfc3a,
+ 0xfaf8, 0xfa06, 0xf7fa, 0xf7e2, 0xf876, 0xf7e5,
+ 0xf7e2, 0xf7e4, 0xf78e, 0xf600, 0xf5e8, 0xf6d6,
+ 0xf3e6, 0xf2e3, 0xf513, 0xf573, 0xf646, 0xf689,
+ 0xf5d3, 0xf53f, 0xf4e3, 0xf643, 0xf5c8, 0xf656,
+ 0xf90b, 0xf652, 0xf3fd, 0xf429, 0xf243, 0xf38d,
+ 0xf521, 0xf3d4, 0xf4b0, 0xf6ee, 0xf956, 0xfab7,
+ 0xfa9f, 0xfc70, 0xfdca, 0xfc7f, 0xfd53, 0xff50,
+ 0xfdc8, 0xfc27, 0xfd1a, 0xfe64, 0xff82, 0xff4c,
+ 0xff2d, 0x008c, 0x003d, 0x0009, 0x01be, 0x0292,
+ 0x02ee, 0x0366, 0x0282, 0x00c9, 0x00a2, 0x01ef,
+ 0x037a, 0x042f, 0x01fa, 0x00a6, 0x007b, 0xfda6,
+ 0xfcfb, 0xfc1e, 0xf8ec, 0xf9ba, 0xf918, 0xf5a8,
+ 0xf554, 0xf5bd, 0xf582, 0xf3e6, 0xf27b, 0xf2f5,
+ 0xf21f, 0xf16b, 0xf186, 0xf069, 0xee07, 0xec67,
+ 0xeea5, 0xf071, 0xefce, 0xf100, 0xf323, 0xf420,
+ 0xf27a, 0xf08f, 0xf152, 0xf29f, 0xf3db, 0xf39e,
+ 0xf4e4, 0xf87f, 0xf719, 0xf60b, 0xf929, 0xf9f5,
+ 0xf8fd, 0xf76a, 0xf7b7, 0xfa2e, 0xfae8, 0xfbce,
+ 0xfc11, 0xfad2, 0xf977, 0xf77f, 0xf6d4, 0xf5b5,
+ 0xf3de, 0xf371, 0xf2a8, 0xf2a4, 0xf257, 0xf0e8,
+ 0xf12b, 0xf296, 0xf48d, 0xf425, 0xf1a9, 0xf1d4,
+ 0xf129, 0xeeeb, 0xefc0, 0xf132, 0xf103, 0xf1bc,
+ 0xf2d0, 0xf240, 0xf25e, 0xf35e, 0xf3df, 0xf5d0,
+ 0xf7e2, 0xf8f7, 0xfa10, 0xfa7f, 0xfab7, 0xfa9e,
+ 0xfada, 0xfb74, 0xfc40, 0xfe42, 0xfe4e, 0xfe67,
+ 0x00f2, 0x0196, 0x01cc, 0x013a, 0x0008, 0x019b,
+ 0x0294, 0x0479, 0x0706, 0x065c, 0x0597, 0x0478,
+ 0x051b, 0x07e7, 0x0840, 0x095a, 0x09ec, 0x08af,
+ 0x094e, 0x099a, 0x0a8b, 0x0bae, 0x0acc, 0x0ac3,
+ 0x0af7, 0x0b0c, 0x0af3, 0x0a31, 0x0a98, 0x0b00,
+ 0x0af9, 0x0958, 0x062e, 0x0618, 0x07d1, 0x0852,
+ 0x0735, 0x0563, 0x055c, 0x0426, 0x019d, 0x01bf,
+ 0x019f, 0x00bf, 0x013e, 0x00a7, 0xfff8, 0x01a1,
+ 0x02bd, 0x0188, 0x0044, 0xffc7, 0xff2a, 0xfe0c,
+ 0xfd0f, 0xfcb1, 0xfc41, 0xfc82, 0xfd2a, 0xfc90,
+ 0xfc4a, 0xfc03, 0xfa79, 0xf9a0, 0xf9c2, 0xfa92,
+ 0xfb5a, 0xfae2, 0xfaf8, 0xfc65, 0xfc84, 0xfac1,
+ 0xfa42, 0xfb0f, 0xfb5c, 0xfc5d, 0xfc96, 0xfbbf,
+ 0xfc13, 0xfc19, 0xfbd2, 0xfaf4, 0xfaa3, 0xfca2,
+ 0xfb67, 0xf99c, 0xfc2f, 0xfc9c, 0xfc4b, 0xfdc7,
+ 0xfcd0, 0xfbb4, 0xfb42, 0xfa83, 0xfb1a, 0xfb97,
+ 0xfbd3, 0xfbf7, 0xfb31, 0xfa70, 0xfa06, 0xfa74,
+ 0xfb3f, 0xfbed, 0xfc96, 0xfbbb, 0xfb2f, 0xfb1d,
+ 0xf958, 0xf99b, 0xfb47, 0xfb1f, 0xfbd3, 0xfc4e,
+ 0xfb66, 0xfad7, 0xfa2a, 0xf9ad, 0xf853, 0xf7a1,
+ 0xf96a, 0xf9f2, 0xfa22, 0xfa46, 0xf9d1, 0xfc11,
+ 0xfc29, 0xfa48, 0xfaf9, 0xf98e, 0xf97b, 0xfc95,
+ 0xfcb9, 0xfcba, 0xfceb, 0xfc3f, 0xfd44, 0xfd19,
+ 0xfc97, 0xfe67, 0xff8f, 0xff1a, 0xffc7, 0x0180,
+ 0x000c, 0xfdcd, 0xff1b, 0xffed, 0x0053, 0x01ef,
+ 0x012c, 0xfffc, 0x005b, 0x004b, 0x00b9, 0x0155,
+ 0x0078, 0xfed9, 0xfdc5, 0xfe81, 0xfec4, 0xfc67,
+ 0xfbb0, 0xfc77, 0xfb11, 0xfa2a, 0xf9ef, 0xf9de,
+ 0xfb92, 0xfc01, 0xfb25, 0xfac1, 0xf9ed, 0xf93b,
+ 0xf8f2, 0xf9d0, 0xf9d4, 0xf83f, 0xf89c, 0xf8e4,
+ 0xf9c4, 0xfc0e, 0xfbe1, 0xfc94, 0xfc4f, 0xf920,
+ 0xfa4a, 0xfc07, 0xfa56, 0xfa1a, 0xfac1, 0xf9d0,
+ 0xf867, 0xf927, 0xfb34, 0xfcda, 0xfdb8, 0xfb59,
+ 0xf98f, 0xfab5, 0xf9ec, 0xf936, 0xfa0a, 0xf9c5,
+ 0xf933, 0xf8c7, 0xf8e7, 0xf983, 0xf997, 0xf8af,
+ 0xf7f2, 0xf964, 0xfab0, 0xfa7e, 0xfa75, 0xfa77,
+ 0xfb4b, 0xfc74, 0xfcf6, 0xfd7f, 0xfe57, 0xffb8,
+ 0xffeb, 0xfecd, 0xfd8e, 0xfc8d, 0xfd5c, 0xfdf8,
+ 0xfe38, 0xffff, 0x0066, 0xff54, 0xfdfe, 0xfd99,
+ 0xff13, 0xff21, 0xfee3, 0xffc6, 0x0003, 0x0066,
+ 0xffb1, 0xfe9d, 0xff32, 0xffde, 0x0045, 0x0041,
+ 0x000d, 0xfff8, 0x003d, 0x0115, 0x00e3, 0x01a6,
+ 0x035a, 0x02f3, 0x0265, 0x01c3, 0x0093, 0xff42,
+ 0xfdf9, 0x0019, 0x02a6, 0x01b6, 0x00c0, 0x0112,
+ 0x01f5, 0x023d, 0x026b, 0x040d, 0x0461, 0x02d9,
+ 0x0115, 0xff7b, 0xff45, 0x004d, 0x01ca, 0x0292,
+ 0x023d, 0x01b0, 0x0192, 0x02ef, 0x03f4, 0x0396,
+ 0x031e, 0x0227, 0x0289, 0x03a3, 0x02d3, 0x0293,
+ 0x038f, 0x0429, 0x0462, 0x04ea, 0x053a, 0x03ea,
+ 0x0353, 0x036f, 0x01fb, 0x016a, 0x01d7, 0x0179,
+ 0x007d, 0xff96, 0xffb7, 0xffe8, 0x001f, 0xffe4,
+ 0xfea2, 0xfeb8, 0xff67, 0x005f, 0x0167, 0x005b,
+ 0xfffc, 0x0063, 0x00ce, 0x02a2, 0x0240, 0x012c,
+ 0x029e, 0x03ce, 0x04db, 0x04be, 0x030b, 0x035b,
+ 0x0439, 0x036f, 0x0228, 0x01d3, 0x0358, 0x044b,
+ 0x02ec, 0x01ac, 0x01c7, 0x0252, 0x031e, 0x03db,
+ 0x03bb, 0x02b0, 0x0163, 0x007e, 0xfff9, 0x0008,
+ 0x014b, 0x0348, 0x055a, 0x0642, 0x0515, 0x0469,
+ 0x0638, 0x0855, 0x0965, 0x0a83, 0x09a4, 0x05d3,
+ 0x0574, 0x0845, 0x07b8, 0x068d, 0x0669, 0x054c,
+ 0x05e5, 0x072d, 0x0710, 0x0656, 0x04fe, 0x0450,
+ 0x030d, 0x00ce, 0x00ba, 0x01b2, 0x01cb, 0x00ea,
+ 0xffb8, 0xffe3, 0x0022, 0xffc2, 0xffb0, 0xff6f,
+ 0xffa3, 0xffac, 0xff52, 0x0099, 0x02ac, 0x0465,
+ 0x04aa, 0x02a8, 0x01eb, 0x02e8, 0x029b, 0x01c0,
+ 0x00f7, 0x00a5, 0x014f, 0x0143, 0x015c, 0x0291,
+ 0x02ed, 0x0342, 0x042c, 0x036f, 0x0223, 0x02b7,
+ 0x036d, 0x036c, 0x0436, 0x03e1, 0x01f1, 0x0091,
+ 0xfebd, 0xfda2, 0xfe21, 0xfceb, 0xfbac, 0xfb67,
+ 0xf9a1, 0xf8ce, 0xf954, 0xf91c, 0xf959, 0xf8fe,
+ 0xf716, 0xf5fa, 0xf5b5, 0xf4a7, 0xf3db, 0xf4f3,
+ 0xf6a3, 0xf7b3, 0xf91f, 0xfa74, 0xfa7c, 0xfa06,
+ 0xfa29, 0xfb2d, 0xfccd, 0xfdae, 0xfd85, 0xfe3c,
+ 0xff90, 0xff59, 0xfe9c, 0xff70, 0x00e3, 0x0188,
+ 0x0211, 0x02bf, 0x02e5, 0x037a, 0x050d, 0x0630,
+ 0x069d, 0x0756, 0x07da, 0x0772, 0x07cf, 0x0953,
+ 0x09fd, 0x0a10, 0x09f4, 0x096d, 0x0a2c, 0x0bad,
+ 0x0bc3, 0x0b94, 0x0d20, 0x0e9f, 0x0de5, 0x0d5f,
+ 0x0e5f, 0x0f11, 0x0f33, 0x0e11, 0x0c01, 0x0b6c,
+ 0x0c1b, 0x0cf6, 0x0d7a, 0x0d9f, 0x0d9e, 0x0c60,
+ 0x0af7, 0x0b3d, 0x0beb, 0x0bf6, 0x0b6c, 0x0ad1,
+ 0x0b37, 0x0c47, 0x0c9f, 0x0c50, 0x0d09, 0x0e5c,
+ 0x0ea1, 0x0edf, 0x0f9a, 0x0fd5, 0x0fe2, 0x103c,
+ 0x10b4, 0x10b1, 0x100f, 0x0fc6, 0x101d, 0x0ff8,
+ 0x0e9b, 0x0cc9, 0x0b30, 0x09d5, 0x0927, 0x08d1,
+ 0x086b, 0x0831, 0x0757, 0x063e, 0x0615, 0x05b2,
+ 0x04b2, 0x0480, 0x0504, 0x0558, 0x04d2, 0x0335,
+ 0x0173, 0xffbc, 0xfe36, 0xfe33, 0xfe1f, 0xfc46,
+ 0xfb0a, 0xfa4c, 0xf849, 0xf7a9, 0xf959, 0xfa50,
+ 0xf9e2, 0xf976, 0xf9ee, 0xfb19, 0xfbd6, 0xfc5f,
+ 0xfd65, 0xfdc5, 0xfd1b, 0xfcf1, 0xfe29, 0xffdf,
+ 0x0096, 0x003a, 0xfff8, 0x0015, 0xfff2, 0xffc1,
+ 0x0014, 0x002b, 0xff6c, 0xfed5, 0xfe93, 0xfe24,
+ 0xfe7e, 0xffb9, 0x0075, 0x00ca, 0x0141, 0x016d,
+ 0x0136, 0x012f, 0x01c4, 0x027f, 0x0351, 0x0554,
+ 0x0722, 0x068b, 0x0562, 0x04fe, 0x049a, 0x0551,
+ 0x069e, 0x066c, 0x05d7, 0x05b4, 0x04f3, 0x03de,
+ 0x02f3, 0x0259, 0x01f7, 0x00ae, 0xfecf, 0xfd7e,
+ 0xfc0a, 0xfa7a, 0xf9a7, 0xf8fe, 0xf830, 0xf728,
+ 0xf5ac, 0xf505, 0xf557, 0xf459, 0xf20f, 0xf124,
+ 0xf1df, 0xf232, 0xf1a8, 0xf0b4, 0xef62, 0xef50,
+ 0xf0f9, 0xf15a, 0xf0ad, 0xf25d, 0xf498, 0xf489,
+ 0xf4bc, 0xf675, 0xf7a1, 0xf80e, 0xf816, 0xf779,
+ 0xf757, 0xf7eb, 0xf803, 0xf7b5, 0xf7b9, 0xf83c,
+ 0xf8ae, 0xf836, 0xf801, 0xf941, 0xfa02, 0xf948,
+ 0xf8a3, 0xf863, 0xf839, 0xf838, 0xf807, 0xf7de,
+ 0xf737, 0xf54a, 0xf3f3, 0xf416, 0xf3d3, 0xf325,
+ 0xf2ee, 0xf286, 0xf1ae, 0xf101, 0xf13c, 0xf228,
+ 0xf256, 0xf1fe, 0xf278, 0xf381, 0xf40f, 0xf3a0,
+ 0xf352, 0xf423, 0xf441, 0xf3c6, 0xf4fd, 0xf62d,
+ 0xf641, 0xf77c, 0xf8ce, 0xf8dd, 0xf969, 0xfaa6,
+ 0xfbfa, 0xfd13, 0xfd94, 0xfefa, 0x00b1, 0x0040,
+ 0xff72, 0x0023, 0x00dc, 0x0181, 0x02eb, 0x0516,
+ 0x0730, 0x078a, 0x06d1, 0x06e3, 0x0723, 0x074c,
+ 0x07ad, 0x07a3, 0x0803, 0x090b, 0x0957, 0x09a6,
+ 0x0ac6, 0x0b65, 0x0b04, 0x0aaa, 0x0b20, 0x0b60,
+ 0x0a6f, 0x0a3f, 0x0b72, 0x0ba0, 0x0b2e, 0x0b5e,
+ 0x0ab2, 0x099e, 0x09b6, 0x09a9, 0x0906, 0x0935,
+ 0x0987, 0x0904, 0x08cb, 0x090e, 0x0849, 0x065e,
+ 0x0472, 0x0308, 0x0272, 0x02b5, 0x032c, 0x039f,
+ 0x03a0, 0x026c, 0x0102, 0x00b6, 0x009c, 0xffb6,
+ 0xfe89, 0xfd8d, 0xfcd9, 0xfcb2, 0xfd11, 0xfdb2,
+ 0xfe4d, 0xfe5f, 0xfe25, 0xfea0, 0xff40, 0xfebd,
+ 0xfe3e, 0xff42, 0x0085, 0x0081, 0xffe0, 0xffbd,
+ 0xffc0, 0xff7d, 0xfff8, 0x013d, 0x01a3, 0x0100,
+ 0x003c, 0xff44, 0xfea1, 0xfef2, 0xff4c, 0xff43,
+ 0xff0f, 0xfe38, 0xfd31, 0xfd33, 0xfdbc, 0xfd91,
+ 0xfd49, 0xfdb1, 0xfde4, 0xfda5, 0xfd74, 0xfccd,
+ 0xfc74, 0xfd5e, 0xfd2b, 0xfb24, 0xfa5a, 0xfb30,
+ 0xfbaf, 0xfba0, 0xfb6f, 0xfbe4, 0xfd50, 0xfdf6,
+ 0xfd40, 0xfc5a, 0xfb47, 0xfab3, 0xfbd1, 0xfc9c,
+ 0xfb78, 0xfab7, 0xfb06, 0xfa92, 0xfa52, 0xfb3c,
+ 0xfbb4, 0xfbf6, 0xfc9e, 0xfc2d, 0xfb2c, 0xfacf,
+ 0xfa56, 0xfa3f, 0xfae3, 0xfb3c, 0xfbe5, 0xfcaa,
+ 0xfc7c, 0xfcd5, 0xfdb2, 0xfda5, 0xfe2c, 0xffa7,
+ 0x0072, 0x00fe, 0x0191, 0x01b7, 0x01ed, 0x01a9,
+ 0x00ee, 0x014c, 0x021b, 0x01d8, 0x00f9, 0xfff3,
+ 0xff3a, 0xffa7, 0x004e, 0xffb0, 0xfe40, 0xfd2b,
+ 0xfc70, 0xfba7, 0xfae2, 0xfa40, 0xfa24, 0xfad5,
+ 0xfacb, 0xf8c9, 0xf6c2, 0xf64f, 0xf672, 0xf6e3,
+ 0xf78f, 0xf774, 0xf753, 0xf7ec, 0xf845, 0xf8fd,
+ 0xfa83, 0xfb0d, 0xfaf6, 0xfb91, 0xfbed, 0xfbfc,
+ 0xfc4e, 0xfc3d, 0xfc2a, 0xfc44, 0xfbad, 0xfb0b,
+ 0xfaee, 0xfb1a, 0xfc07, 0xfd12, 0xfd48, 0xfd55,
+ 0xfd53, 0xfcf7, 0xfca8, 0xfc1d, 0xfb50, 0xfaf4,
+ 0xfb09, 0xfb79, 0xfc2d, 0xfcb6, 0xfcf4, 0xfd04,
+ 0xfd71, 0xfe7a, 0xff14, 0xfeca, 0xfe0c, 0xfce5,
+ 0xfc03, 0xfbc9, 0xfb8b, 0xfb8f, 0xfbcb, 0xfb9d,
+ 0xfc15, 0xfd41, 0xfd97, 0xfde9, 0xfeb5, 0xfdfd,
+ 0xfc40, 0xfbb0, 0xfb94, 0xfb2c, 0xfbb0, 0xfca4,
+ 0xfc88, 0xfc11, 0xfbf9, 0xfba8, 0xfb98, 0xfc82,
+ 0xfd58, 0xfd59, 0xfd65, 0xfdfa, 0xfe83, 0xfe99,
+ 0xfe5d, 0xfe22, 0xfe53, 0xfecc, 0xff07, 0xff60,
+ 0x0033, 0x00f0, 0x017a, 0x01f7, 0x021a, 0x01cd,
+ 0x00b1, 0xff18, 0xfe8c, 0xfeea, 0xff24, 0xffa0,
+ 0x0023, 0x0027, 0x0033, 0x004d, 0x0093, 0x0106,
+ 0x009d, 0xffee, 0xffff, 0x0044, 0x0100, 0x01fb,
+ 0x0230, 0x02cc, 0x042a, 0x0535, 0x06af, 0x080c,
+ 0x0797, 0x06a2, 0x064a, 0x05c3, 0x053a, 0x04d9,
+ 0x0449, 0x03f6, 0x03ff, 0x03d5, 0x0346, 0x02c3,
+ 0x0275, 0x01dc, 0x0127, 0x00af, 0x001c, 0xffca,
+ 0xff67, 0xfe12, 0xfd59, 0xfde3, 0xfdc0, 0xfd66,
+ 0xfde0, 0xfddb, 0xfd5a, 0xfd43, 0xfd26, 0xfd27,
+ 0xfd9e, 0xfe6f, 0xffbd, 0x00e5, 0x012e, 0x00ea,
+ 0x0094, 0x0092, 0x00f7, 0x017c, 0x0245, 0x0305,
+ 0x031a, 0x02a1, 0x01ee, 0x0197, 0x020e, 0x029a,
+ 0x0290, 0x01d0, 0x00db, 0x00e7, 0x0168, 0x0156,
+ 0x01a8, 0x01c2, 0x0089, 0x0012, 0x00ab, 0x006e,
+ 0x002b, 0x003f, 0xffcb, 0xffee, 0x00c4, 0x0120,
+ 0x01b0, 0x02cd, 0x03a2, 0x03be, 0x02ff, 0x024e,
+ 0x027e, 0x028d, 0x01dd, 0x012a, 0x00e9, 0x0111,
+ 0x0178, 0x01df, 0x01d3, 0x0139, 0x0101, 0x012d,
+ 0x007b, 0xff44, 0xfec6, 0xfee6, 0xfee4, 0xfe99,
+ 0xfe99, 0xfeab, 0xfe12, 0xfdf9, 0xfefa, 0xff89,
+ 0xffee, 0x00a1, 0x004b, 0xffaf, 0x000e, 0x004d,
+ 0x0034, 0x006b, 0x00e4, 0x01be, 0x0290, 0x02fa,
+ 0x034d, 0x0320, 0x029c, 0x028d, 0x0266, 0x01e6,
+ 0x0194, 0x0166, 0x0182, 0x01e9, 0x0236, 0x0234,
+ 0x016f, 0x003c, 0xffab, 0xff6d, 0xff0d, 0xff05,
+ 0xfef5, 0xfe34, 0xfd18, 0xfc21, 0xfb42, 0xfa1d,
+ 0xf8c9, 0xf7d6, 0xf76f, 0xf74e, 0xf715, 0xf6cd,
+ 0xf69c, 0xf61c, 0xf580, 0xf56a, 0xf52f, 0xf4b4,
+ 0xf52c, 0xf633, 0xf66d, 0xf5e6, 0xf59b, 0xf5eb,
+ 0xf625, 0xf614, 0xf66d, 0xf713, 0xf7a0, 0xf814,
+ 0xf84b, 0xf8c3, 0xf986, 0xf9e5, 0xfaa7, 0xfc0b,
+ 0xfcda, 0xfd8a, 0xfead, 0xff6e, 0x002b, 0x019b,
+ 0x0330, 0x0427, 0x0463, 0x04e7, 0x0634, 0x0735,
+ 0x07e8, 0x0912, 0x0a16, 0x0a96, 0x0b2e, 0x0c01,
+ 0x0c89, 0x0c55, 0x0be6, 0x0bdb, 0x0bf6, 0x0c23,
+ 0x0c1d, 0x0b6f, 0x0ae5, 0x0ae2, 0x0aa9, 0x0abb,
+ 0x0bad, 0x0c67, 0x0c3a, 0x0bd9, 0x0be8, 0x0c8e,
+ 0x0db3, 0x0ea1, 0x0ed8, 0x0f01, 0x0f46, 0x0f38,
+ 0x0fa9, 0x10e4, 0x11c4, 0x1232, 0x1254, 0x11f8,
+ 0x11f9, 0x1221, 0x1191, 0x112f, 0x1104, 0x103b,
+ 0x0fc1, 0x0fd6, 0x0fb7, 0x0fd6, 0x102c, 0x1017,
+ 0x1033, 0x10a8, 0x1067, 0x0f4b, 0x0eb0, 0x0f43,
+ 0x0fd5, 0x0f98, 0x0f44, 0x0ef2, 0x0e17, 0x0d0a,
+ 0x0c10, 0x0b12, 0x0a84, 0x0a0f, 0x08b9, 0x0755,
+ 0x0701, 0x06d2, 0x0610, 0x0550, 0x04b2, 0x03ed,
+ 0x02fc, 0x0234, 0x01ef, 0x0183, 0x00a6, 0x004e,
+ 0x0039, 0xffba, 0xff6f, 0xff2a, 0xfe86, 0xfe48,
+ 0xfe09, 0xfd36, 0xfcb7, 0xfc98, 0xfc4a, 0xfc4e,
+ 0xfcca, 0xfd03, 0xfcd0, 0xfcb1, 0xfcb4, 0xfccc,
+ 0xfd71, 0xfe30, 0xfe0d, 0xfd82, 0xfd22, 0xfcee,
+ 0xfd3a, 0xfdb2, 0xfe28, 0xff1d, 0x0002, 0x00b8,
+ 0x01bb, 0x0236, 0x0247, 0x02eb, 0x0377, 0x03bf,
+ 0x04a1, 0x0615, 0x07ed, 0x09af, 0x0a56, 0x09e2,
+ 0x0920, 0x0878, 0x07d9, 0x077c, 0x07a3, 0x0770,
+ 0x06af, 0x062d, 0x056a, 0x0444, 0x0344, 0x01b1,
+ 0x0023, 0xff5a, 0xfdc6, 0xfbdf, 0xfb20, 0xfa81,
+ 0xf9a2, 0xf8b8, 0xf794, 0xf728, 0xf70f, 0xf655,
+ 0xf5d4, 0xf56f, 0xf502, 0xf533, 0xf525, 0xf4f5,
+ 0xf54c, 0xf4ef, 0xf46e, 0xf50c, 0xf593, 0xf5c2,
+ 0xf64b, 0xf6df, 0xf7a7, 0xf896, 0xf931, 0xf987,
+ 0xf994, 0xf992, 0xf998, 0xf99b, 0xfa3c, 0xfabb,
+ 0xfa80, 0xfb2f, 0xfc18, 0xfb6a, 0xfaac, 0xfa65,
+ 0xf989, 0xf92e, 0xf937, 0xf850, 0xf79f, 0xf7a3,
+ 0xf722, 0xf660, 0xf5dc, 0xf4f8, 0xf3f1, 0xf363,
+ 0xf307, 0xf2d6, 0xf30e, 0xf32e, 0xf2e4, 0xf28d,
+ 0xf25c, 0xf251, 0xf23e, 0xf1e9, 0xf1ab, 0xf1ba,
+ 0xf225, 0xf35c, 0xf4a9, 0xf52f, 0xf5cc, 0xf6c3,
+ 0xf764, 0xf805, 0xf8a3, 0xf90f, 0xf9c4, 0xfa2d,
+ 0xfa1e, 0xfad9, 0xfbe6, 0xfc5b, 0xfcfe, 0xfddb,
+ 0xfeb5, 0x0044, 0x01f5, 0x02d2, 0x0367, 0x03d6,
+ 0x03c1, 0x03c9, 0x0439, 0x0496, 0x04e6, 0x05a5,
+ 0x06e9, 0x081a, 0x08c9, 0x093a, 0x09a0, 0x0a04,
+ 0x0a67, 0x0a82, 0x0aac, 0x0b27, 0x0b2d, 0x0b2a,
+ 0x0bd4, 0x0c10, 0x0bf1, 0x0c5f, 0x0c5a, 0x0c25,
+ 0x0cd4, 0x0d18, 0x0cbb, 0x0cff, 0x0d74, 0x0e07,
+ 0x0ebf, 0x0e65, 0x0d86, 0x0d28, 0x0c97, 0x0bf8,
+ 0x0bad, 0x0b22, 0x0a9b, 0x0a3c, 0x0996, 0x08f2,
+ 0x083e, 0x0774, 0x0710, 0x065d, 0x050d, 0x0425,
+ 0x035b, 0x0261, 0x0255, 0x02db, 0x029d, 0x01e1,
+ 0x0138, 0x00c4, 0x00e1, 0x0137, 0x0148, 0x018c,
+ 0x0213, 0x023d, 0x021f, 0x0206, 0x01d7, 0x017a,
+ 0x00ea, 0x006f, 0x005f, 0x007e, 0x00ae, 0x00fb,
+ 0x00ec, 0x007f, 0x002e, 0xffb6, 0xff16, 0xfedf,
+ 0xfed8, 0xfecd, 0xff26, 0xffc3, 0x001f, 0x0000,
+ 0xff74, 0xfef6, 0xfeba, 0xfe9b, 0xfee9, 0xff72,
+ 0xff68, 0xfefe, 0xfeb6, 0xfe76, 0xfe49, 0xfe0b,
+ 0xfd94, 0xfd6b, 0xfd80, 0xfd64, 0xfd46, 0xfce0,
+ 0xfc22, 0xfc16, 0xfca2, 0xfcd2, 0xfd23, 0xfdf0,
+ 0xfe32, 0xfd94, 0xfce4, 0xfc80, 0xfc4b, 0xfc3f,
+ 0xfc15, 0xfbd9, 0xfc3a, 0xfcd5, 0xfcd9, 0xfcd5,
+ 0xfcd2, 0xfc09, 0xfb64, 0xfbd3, 0xfc84, 0xfcbf,
+ 0xfcd4, 0xfd85, 0xfed2, 0xffa7, 0xffec, 0x003b,
+ 0x004f, 0x0050, 0x0097, 0x00b2, 0x00bd, 0x00d1,
+ 0x00ab, 0x00bd, 0x010e, 0x0176, 0x023b, 0x02ac,
+ 0x02a6, 0x0316, 0x0337, 0x0236, 0x0135, 0x00ea,
+ 0x00e1, 0x00c0, 0x00a5, 0x009a, 0x0004, 0xfeff,
+ 0xfe4a, 0xfd8c, 0xfcb4, 0xfc9c, 0xfd25, 0xfdf8,
+ 0xfeed, 0xff1c, 0xfe5b, 0xfd81, 0xfcf8, 0xfcf2,
+ 0xfd4f, 0xfda6, 0xfe12, 0xfeb6, 0xff6d, 0xfff5,
+ 0xffe1, 0xff3a, 0xfe54, 0xfd74, 0xfd19, 0xfd35,
+ 0xfd62, 0xfdd8, 0xfe30, 0xfdba, 0xfd46, 0xfd59,
+ 0xfd2c, 0xfcc1, 0xfc64, 0xfbd8, 0xfbb7, 0xfc4a,
+ 0xfc93, 0xfcc4, 0xfd9b, 0xfe31, 0xfe24, 0xfe1e,
+ 0xfde3, 0xfd5f, 0xfd02, 0xfc6e, 0xfbe3, 0xfbff,
+ 0xfc03, 0xfba7, 0xfbbf, 0xfbe1, 0xfb34, 0xfa94,
+ 0xfad3, 0xfb05, 0xfaa2, 0xfa7f, 0xfae8, 0xfb94,
+ 0xfc54, 0xfc90, 0xfc57, 0xfc59, 0xfc32, 0xfbc0,
+ 0xfb89, 0xfb44, 0xfb05, 0xfb41, 0xfb9e, 0xfc49,
+ 0xfd63, 0xfe2f, 0xfeaf, 0xfee1, 0xfe34, 0xfd32,
+ 0xfc8f, 0xfc49, 0xfc96, 0xfd52, 0xfe10, 0xfee3,
+ 0xffd8, 0x008f, 0x005c, 0xff27, 0xfdbf, 0xfc74,
+ 0xfb65, 0xfb4e, 0xfbf5, 0xfc7c, 0xfcfd, 0xfd7b,
+ 0xfd97, 0xfd7c, 0xfd55, 0xfd38, 0xfd64, 0xfdad,
+ 0xfdbe, 0xfdb6, 0xfdb4, 0xfdb1, 0xfdea, 0xfe69,
+ 0xff04, 0x0013, 0x016d, 0x0205, 0x022d, 0x02b9,
+ 0x02d6, 0x0242, 0x0205, 0x0214, 0x020b, 0x0249,
+ 0x02b1, 0x02d0, 0x02c0, 0x02dd, 0x031f, 0x0327,
+ 0x02fb, 0x02da, 0x029a, 0x021b, 0x0164, 0x0070,
+ 0xff99, 0xff17, 0xfe88, 0xfde1, 0xfda3, 0xfdd6,
+ 0xfdf8, 0xfdfb, 0xfe3d, 0xfe89, 0xfe97, 0xfe7f,
+ 0xfe38, 0xfe02, 0xfe41, 0xfe9a, 0xfed9, 0xff08,
+ 0xfeda, 0xfea5, 0xfed6, 0xff14, 0xff7f, 0x0037,
+ 0x009f, 0x0090, 0x0050, 0xffd7, 0xff3f, 0xfec6,
+ 0xfe69, 0xfe1a, 0xfde1, 0xfde0, 0xfe36, 0xfecc,
+ 0xff4a, 0xffba, 0x0074, 0x0101, 0x00fc, 0x0145,
+ 0x01fe, 0x025f, 0x0294, 0x02cb, 0x02ab, 0x027c,
+ 0x028d, 0x02d3, 0x0338, 0x0384, 0x03d8, 0x043b,
+ 0x0415, 0x0361, 0x02b2, 0x0256, 0x025c, 0x0280,
+ 0x02af, 0x0314, 0x0342, 0x02ba, 0x01b0, 0x00ca,
+ 0x0077, 0x0044, 0xffe4, 0xffd7, 0x0007, 0x000f,
+ 0x001f, 0x005f, 0x00e2, 0x0158, 0x0158, 0x0136,
+ 0x00eb, 0x006a, 0x0095, 0x0127, 0x0168, 0x01f0,
+ 0x0281, 0x0293, 0x02d5, 0x0329, 0x0338, 0x0387,
+ 0x03fc, 0x0475, 0x0506, 0x0501, 0x0441, 0x0367,
+ 0x02cf, 0x0292, 0x024f, 0x01ec, 0x01e4, 0x01f9,
+ 0x01db, 0x01da, 0x01ce, 0x0179, 0x0107, 0x0075,
+ 0xffdf, 0xff76, 0xfefd, 0xfe46, 0xfda3, 0xfd44,
+ 0xfcdf, 0xfc82, 0xfc67, 0xfbfd, 0xfb0e, 0xfa40,
+ 0xf98e, 0xf8d9, 0xf865, 0xf7a1, 0xf697, 0xf656,
+ 0xf693, 0xf668, 0xf61f, 0xf623, 0xf64c, 0xf62b,
+ 0xf593, 0xf50a, 0xf4dc, 0xf4d8, 0xf51d, 0xf560,
+ 0xf503, 0xf48b, 0xf4a0, 0xf4e4, 0xf555, 0xf63b,
+ 0xf718, 0xf7da, 0xf8da, 0xf9ab, 0xfa35, 0xfad7,
+ 0xfb5a, 0xfbf3, 0xfd02, 0xfdf8, 0xfeed, 0x006d,
+ 0x01f8, 0x0327, 0x03e3, 0x03db, 0x0396, 0x03c3,
+ 0x0430, 0x049e, 0x04f5, 0x0545, 0x05c1, 0x0639,
+ 0x069e, 0x071c, 0x078b, 0x07eb, 0x0844, 0x085d,
+ 0x0849, 0x0848, 0x08a3, 0x096c, 0x0a3b, 0x0ae9,
+ 0x0b56, 0x0b42, 0x0b6a, 0x0c30, 0x0c91, 0x0c54,
+ 0x0c21, 0x0c20, 0x0c52, 0x0c89, 0x0c94, 0x0cdd,
+ 0x0d7e, 0x0e2a, 0x0f0a, 0x1023, 0x1125, 0x120e,
+ 0x12e2, 0x131b, 0x1289, 0x1212, 0x122e, 0x125e,
+ 0x1298, 0x12e9, 0x12ef, 0x12e7, 0x12db, 0x124a,
+ 0x1198, 0x1134, 0x10c7, 0x1047, 0x0fac, 0x0ebe,
+ 0x0dd8, 0x0d43, 0x0cc0, 0x0c1c, 0x0b7c, 0x0b00,
+ 0x0a57, 0x096a, 0x08a2, 0x07ef, 0x0709, 0x0614,
+ 0x0513, 0x041b, 0x0345, 0x024b, 0x0150, 0x00c9,
+ 0x009d, 0x009c, 0x00bc, 0x00ca, 0x00b6, 0x009b,
+ 0x0094, 0x009b, 0x006a, 0xfff1, 0xff67, 0xfee7,
+ 0xfe8c, 0xfe68, 0xfe48, 0xfdfd, 0xfda4, 0xfd6c,
+ 0xfd2d, 0xfcd2, 0xfcda, 0xfd7a, 0xfe15, 0xfe45,
+ 0xfe60, 0xfeac, 0xfef9, 0xff4d, 0xffe5, 0x0082,
+ 0x0113, 0x0210, 0x0336, 0x040c, 0x0508, 0x064a,
+ 0x0714, 0x0716, 0x06dc, 0x0734, 0x0816, 0x08a2,
+ 0x08b3, 0x08a3, 0x0888, 0x0896, 0x0893, 0x082b,
+ 0x07e9, 0x07c8, 0x0742, 0x06bd, 0x0635, 0x051a,
+ 0x03eb, 0x0321, 0x0254, 0x015f, 0x009b, 0x004f,
+ 0x003d, 0xffe4, 0xff30, 0xfe28, 0xfccd, 0xfb79,
+ 0xfa2a, 0xf8eb, 0xf85f, 0xf831, 0xf7b2, 0xf770,
+ 0xf797, 0xf784, 0xf742, 0xf6f9, 0xf6b7, 0xf6cf,
+ 0xf6de, 0xf694, 0xf6b3, 0xf768, 0xf81d, 0xf8b7,
+ 0xf94c, 0xfa0d, 0xfafd, 0xfb6d, 0xfb7e, 0xfbe5,
+ 0xfc0c, 0xfb7f, 0xfb09, 0xfae1, 0xfac3, 0xfae0,
+ 0xfb18, 0xfb12, 0xfad7, 0xfa7c, 0xfa12, 0xf9bd,
+ 0xf984, 0xf91f, 0xf82a, 0xf6ef, 0xf616, 0xf571,
+ 0xf4a2, 0xf405, 0xf3b4, 0xf32b, 0xf26e, 0xf215,
+ 0xf213, 0xf1c9, 0xf139, 0xf0d5, 0xf08e, 0xf038,
+ 0xefc8, 0xef1b, 0xee80, 0xee75, 0xeed4, 0xef61,
+ 0xf033, 0xf12c, 0xf21c, 0xf2f1, 0xf3b8, 0xf4bd,
+ 0xf5ec, 0xf6cb, 0xf777, 0xf845, 0xf910, 0xf9d4,
+ 0xfab1, 0xfb70, 0xfbf9, 0xfc8b, 0xfd24, 0xfd9f,
+ 0xfe1b, 0xfebd, 0xff51, 0xffd1, 0x0094, 0x0188,
+ 0x025c, 0x0362, 0x04b4, 0x05cf, 0x068e, 0x0709,
+ 0x0750, 0x07a5, 0x07ea, 0x0814, 0x08ab, 0x0985,
+ 0x0a31, 0x0b09, 0x0bcb, 0x0bdf, 0x0bd2, 0x0be6,
+ 0x0bc2, 0x0bc5, 0x0c0f, 0x0c2a, 0x0c45, 0x0cb6,
+ 0x0d47, 0x0d8d, 0x0d6c, 0x0d6b, 0x0d8c, 0x0cff,
+ 0x0bf3, 0x0b47, 0x0ae0, 0x0a4b, 0x098b, 0x08fe,
+ 0x08fc, 0x091b, 0x08db, 0x0880, 0x0819, 0x0782,
+ 0x06d2, 0x05e9, 0x0525, 0x051a, 0x054a, 0x0559,
+ 0x058e, 0x05ac, 0x05b0, 0x05d6, 0x05bc, 0x0569,
+ 0x0523, 0x0484, 0x03a3, 0x02fb, 0x027c, 0x0228,
+ 0x0200, 0x01e4, 0x01f0, 0x01d4, 0x0147, 0x00cb,
+ 0x00a6, 0x0088, 0x002d, 0xffb0, 0xffa6, 0x0019,
+ 0x0055, 0x0060, 0x0071, 0x002e, 0xffe7, 0x0003,
+ 0x002f, 0x0060, 0x00bf, 0x0115, 0x0160, 0x01b2,
+ 0x01df, 0x01f2, 0x0224, 0x023c, 0x01aa, 0x00a5,
+ 0x0002, 0xffb7, 0xff63, 0xff53, 0xff68, 0xff4d,
+ 0xff70, 0xffca, 0xffc2, 0xff6e, 0xfefb, 0xfe47,
+ 0xfd9a, 0xfd2d, 0xfcce, 0xfc90, 0xfc9e, 0xfcbe,
+ 0xfcd0, 0xfce2, 0xfcd6, 0xfcab, 0xfc8d, 0xfc75,
+ 0xfc49, 0xfc18, 0xfc10, 0xfc41, 0xfc59, 0xfc39,
+ 0xfc4c, 0xfcb6, 0xfd30, 0xfd9a, 0xfdd5, 0xfde9,
+ 0xfe1d, 0xfe57, 0xfe51, 0xfe37, 0xfe60, 0xfeb4,
+ 0xfea2, 0xfe3f, 0xfe57, 0xfec8, 0xfec9, 0xfe93,
+ 0xfea0, 0xfeb9, 0xfebf, 0xfedd, 0xff2c, 0xffa8,
+ 0x0013, 0x0023, 0xffe9, 0xffc5, 0xffca, 0xff95,
+ 0xff1f, 0xfed5, 0xfed0, 0xfeed, 0xff23, 0xff5d,
+ 0xff7f, 0xff8a, 0xff93, 0xff9b, 0xff8d, 0xff8a,
+ 0xffa0, 0xff87, 0xff4c, 0xff1f, 0xfef3, 0xfebe,
+ 0xfe65, 0xfe16, 0xfe2d, 0xfe4f, 0xfe61, 0xfed5,
+ 0xff48, 0xff51, 0xff37, 0xfefe, 0xfef2, 0xff46,
+ 0xff57, 0xff4d, 0xffc5, 0x0025, 0xfff5, 0xff89,
+ 0xff24, 0xfed3, 0xfe59, 0xfd98, 0xfcf2, 0xfc82,
+ 0xfc2f, 0xfc22, 0xfc45, 0xfc45, 0xfbef, 0xfb6e,
+ 0xfb12, 0xfabc, 0xfa5e, 0xfa45, 0xfa44, 0xfa49,
+ 0xfa8c, 0xfa92, 0xfa0e, 0xf98f, 0xf983, 0xf9fe,
+ 0xfaa6, 0xfb01, 0xfb60, 0xfbed, 0xfc43, 0xfc87,
+ 0xfce2, 0xfd17, 0xfd5c, 0xfdc6, 0xfdef, 0xfdfd,
+ 0xfe5d, 0xfec3, 0xfe8c, 0xfdd7, 0xfd6c, 0xfd91,
+ 0xfdfd, 0xfe60, 0xfe81, 0xfea5, 0xfeff, 0xfef2,
+ 0xfe57, 0xfdd4, 0xfd7d, 0xfd2c, 0xfd1a, 0xfd3c,
+ 0xfd7e, 0xfdd9, 0xfe07, 0xfe18, 0xfe4c, 0xfe60,
+ 0xfe22, 0xfdcd, 0xfd89, 0xfd79, 0xfdcf, 0xfe83,
+ 0xff58, 0xfff8, 0x0040, 0x007c, 0x00fa, 0x01b6,
+ 0x0297, 0x038f, 0x0466, 0x04de, 0x0515, 0x054c,
+ 0x0590, 0x05e2, 0x064e, 0x06cf, 0x075e, 0x07b7,
+ 0x077e, 0x070b, 0x06e5, 0x06b6, 0x0634, 0x05be,
+ 0x0570, 0x053e, 0x052a, 0x04dc, 0x046b, 0x0440,
+ 0x0429, 0x040b, 0x0406, 0x03f8, 0x0423, 0x0499,
+ 0x04bf, 0x04b0, 0x04a0, 0x0430, 0x03d0, 0x03c7,
+ 0x0378, 0x0338, 0x0378, 0x038a, 0x0351, 0x033b,
+ 0x0339, 0x0335, 0x02fc, 0x0272, 0x01fd, 0x01a0,
+ 0x012d, 0x0109, 0x0148, 0x017e, 0x0184, 0x0183,
+ 0x01a6, 0x01d1, 0x01e4, 0x021b, 0x026d, 0x0289,
+ 0x0298, 0x02c4, 0x02e1, 0x02fc, 0x033c, 0x03ab,
+ 0x0424, 0x0452, 0x0436, 0x042b, 0x0439, 0x043f,
+ 0x044b, 0x0469, 0x0487, 0x047b, 0x0451, 0x0433,
+ 0x0402, 0x03aa, 0x0349, 0x02bf, 0x021b, 0x01a1,
+ 0x0134, 0x00d2, 0x00b1, 0x0080, 0x0013, 0xffd1,
+ 0xffe8, 0x0038, 0x009d, 0x00d6, 0x00de, 0x00e0,
+ 0x00e7, 0x0114, 0x0158, 0x016f, 0x018d, 0x01e2,
+ 0x0216, 0x021e, 0x0239, 0x0232, 0x01ed, 0x01c6,
+ 0x01e8, 0x0242, 0x02c4, 0x0331, 0x0346, 0x030f,
+ 0x02c1, 0x0293, 0x02ae, 0x0309, 0x0392, 0x0424,
+ 0x0471, 0x047d, 0x047d, 0x0444, 0x03be, 0x0351,
+ 0x0332, 0x0358, 0x0395, 0x039a, 0x0387, 0x0393,
+ 0x0356, 0x02b4, 0x0203, 0x012b, 0x0037, 0xff97,
+ 0xff2b, 0xfebd, 0xfe83, 0xfe89, 0xfe8a, 0xfe64,
+ 0xfe31, 0xfe06, 0xfdcf, 0xfd76, 0xfce3, 0xfc0b,
+ 0xfb3b, 0xfa94, 0xf9d3, 0xf906, 0xf851, 0xf7a4,
+ 0xf745, 0xf753, 0xf762, 0xf73a, 0xf6cc, 0xf5f3,
+ 0xf4c7, 0xf397, 0xf2ce, 0xf2d5, 0xf37e, 0xf447,
+ 0xf510, 0xf5cf, 0xf62a, 0xf5fc, 0xf5a6, 0xf58b,
+ 0xf5b3, 0xf618, 0xf6c4, 0xf782, 0xf7fc, 0xf837,
+ 0xf87c, 0xf8de, 0xf94f, 0xf9ef, 0xfabd, 0xfba6,
+ 0xfcae, 0xfd7a, 0xfdd3, 0xfe4a, 0xff00, 0xff76,
+ 0xffc5, 0x001d, 0x0061, 0x00b2, 0x0104, 0x012d,
+ 0x016c, 0x01b3, 0x01cd, 0x01e2, 0x0204, 0x023a,
+ 0x02b4, 0x036e, 0x0429, 0x04b0, 0x0527, 0x0600,
+ 0x0732, 0x0843, 0x090e, 0x09c4, 0x0a9d, 0x0b67,
+ 0x0bd1, 0x0c3b, 0x0cfd, 0x0db2, 0x0e3c, 0x0ef6,
+ 0x0fef, 0x1100, 0x11f0, 0x12ab, 0x1340, 0x139a,
+ 0x13cf, 0x140c, 0x1423, 0x1409, 0x13e2, 0x13b8,
+ 0x13cc, 0x1431, 0x146b, 0x1453, 0x1434, 0x1422,
+ 0x13e6, 0x1351, 0x1286, 0x11ae, 0x10b6, 0x0fb8,
+ 0x0eef, 0x0e4f, 0x0dc8, 0x0d4c, 0x0cb2, 0x0c12,
+ 0x0b97, 0x0b1b, 0x0a74, 0x09d7, 0x0982, 0x0947,
+ 0x08e1, 0x0863, 0x07ee, 0x076e, 0x06b0, 0x05aa,
+ 0x04c8, 0x043b, 0x039f, 0x02f7, 0x0295, 0x024d,
+ 0x01e1, 0x012f, 0x0064, 0xfffa, 0xff8b, 0xfe95,
+ 0xfdd9, 0xfdd8, 0xfe05, 0xfe44, 0xfec7, 0xff3d,
+ 0xff70, 0xff7c, 0xffb0, 0x0043, 0x00e4, 0x0143,
+ 0x01a5, 0x0229, 0x028d, 0x02ea, 0x038d, 0x0466,
+ 0x053b, 0x05d1, 0x05fd, 0x05f6, 0x060d, 0x0634,
+ 0x0661, 0x0699, 0x06e4, 0x076d, 0x080b, 0x0879,
+ 0x08f7, 0x0988, 0x09c5, 0x09b6, 0x096a, 0x08d9,
+ 0x0839, 0x076d, 0x0675, 0x05bc, 0x052d, 0x0473,
+ 0x039a, 0x02b9, 0x01e9, 0x013c, 0x009c, 0xffed,
+ 0xff0a, 0xfe2b, 0xfd9c, 0xfd03, 0xfc48, 0xfbda,
+ 0xfb9c, 0xfb7f, 0xfb93, 0xfb56, 0xfadc, 0xfaab,
+ 0xfa8e, 0xfa73, 0xfaae, 0xfb16, 0xfb7d, 0xfbe9,
+ 0xfc4b, 0xfc8f, 0xfcc2, 0xfd16, 0xfd7c, 0xfdb0,
+ 0xfe02, 0xfe9e, 0xff0c, 0xff3b, 0xff3b, 0xfefb,
+ 0xfedb, 0xfeff, 0xff22, 0xff4c, 0xff4d, 0xff08,
+ 0xfecb, 0xfe65, 0xfdb3, 0xfd1b, 0xfc79, 0xfb9b,
+ 0xfad7, 0xfa2e, 0xf968, 0xf89a, 0xf7c9, 0xf6fb,
+ 0xf63b, 0xf56b, 0xf488, 0xf3da, 0xf377, 0xf304,
+ 0xf238, 0xf146, 0xf078, 0xefec, 0xefa3, 0xef80,
+ 0xef80, 0xef90, 0xef7f, 0xef76, 0xefa3, 0xefd9,
+ 0xf022, 0xf09e, 0xf131, 0xf1d3, 0xf27c, 0xf31d,
+ 0xf3d3, 0xf49c, 0xf54e, 0xf5e6, 0xf671, 0xf6f9,
+ 0xf78a, 0xf827, 0xf8e9, 0xf9cd, 0xfaa7, 0xfb65,
+ 0xfc10, 0xfcd2, 0xfdb8, 0xfe7f, 0xff23, 0xffe0,
+ 0x00aa, 0x018f, 0x02b4, 0x03d8, 0x04c2, 0x0599,
+ 0x067c, 0x074a, 0x07fa, 0x08c2, 0x09a9, 0x0a5f,
+ 0x0aed, 0x0b9b, 0x0c45, 0x0cb8, 0x0cff, 0x0d27,
+ 0x0d2b, 0x0d29, 0x0d5b, 0x0da9, 0x0daa, 0x0d7e,
+ 0x0d6e, 0x0d4b, 0x0d19, 0x0d0d, 0x0d02, 0x0ce5,
+ 0x0cb9, 0x0c63, 0x0bff, 0x0ba0, 0x0b3a, 0x0af2,
+ 0x0ad3, 0x0ab5, 0x0a86, 0x0a4a, 0x0a12, 0x09bd,
+ 0x092c, 0x08b5, 0x086c, 0x07fb, 0x077d, 0x0708,
+ 0x0651, 0x058e, 0x050d, 0x049f, 0x0435, 0x03df,
+ 0x036d, 0x02f3, 0x02cb, 0x02cf, 0x028d, 0x0227,
+ 0x020a, 0x021f, 0x0204, 0x0198, 0x0111, 0x00c8,
+ 0x00a3, 0x005b, 0x0019, 0x000c, 0x000d, 0x000d,
+ 0x000a, 0x0009, 0x0011, 0xffe3, 0xff70, 0xff01,
+ 0xfe87, 0xfe00, 0xfdbb, 0xfdad, 0xfdbb, 0xfdf1,
+ 0xfe16, 0xfe03, 0xfdea, 0xfdbb, 0xfd39, 0xfc79,
+ 0xfbd0, 0xfb56, 0xfaec, 0xfa91, 0xfa4a, 0xfa08,
+ 0xf9d0, 0xf9a1, 0xf96c, 0xf92a, 0xf8d5, 0xf895,
+ 0xf893, 0xf89c, 0xf8a4, 0xf8d5, 0xf920, 0xf97c,
+ 0xf9ce, 0xf9c2, 0xf982, 0xf96d, 0xf96d, 0xf96a,
+ 0xf983, 0xf9d2, 0xfa4b, 0xfaae, 0xfb07, 0xfb9d,
+ 0xfc2c, 0xfc8b, 0xfd03, 0xfd62, 0xfd7e, 0xfdbc,
+ 0xfe05, 0xfe0c, 0xfe1a, 0xfe50, 0xfe6e, 0xfe8a,
+ 0xfeca, 0xfef9, 0xff0a, 0xff37, 0xff6b, 0xff65,
+ 0xff4f, 0xff88, 0x001b, 0x00c9, 0x013a, 0x0161,
+ 0x0179, 0x0187, 0x0159, 0x00ff, 0x00ab, 0x0066,
+ 0x002e, 0x0006, 0xffe1, 0xffa3, 0xff4f, 0xfefe,
+ 0xfecc, 0xfebf, 0xfe9f, 0xfe47, 0xfde5, 0xfd8d,
+ 0xfd3b, 0xfd30, 0xfd79, 0xfdda, 0xfe4f, 0xfec5,
+ 0xff02, 0xff0e, 0xff03, 0xfed0, 0xfe81, 0xfe51,
+ 0xfe6a, 0xfeaa, 0xfed6, 0xfefc, 0xff28, 0xff25,
+ 0xfed5, 0xfe5b, 0xfe03, 0xfdec, 0xfdee, 0xfe0d,
+ 0xfe3f, 0xfe29, 0xfdc2, 0xfd60, 0xfd1b, 0xfcd3,
+ 0xfc67, 0xfbea, 0xfba3, 0xfb8b, 0xfb74, 0xfb4a,
+ 0xfb03, 0xfac8, 0xfab7, 0xfaaf, 0xfac9, 0xfb0b,
+ 0xfb21, 0xfb1b, 0xfb10, 0xfadb, 0xfacb, 0xfb1a,
+ 0xfb8d, 0xfc25, 0xfcdd, 0xfd88, 0xfe23, 0xfe71,
+ 0xfe5e, 0xfe42, 0xfe1d, 0xfdcd, 0xfd97, 0xfd7a,
+ 0xfd4e, 0xfd36, 0xfd43, 0xfd61, 0xfd73, 0xfd53,
+ 0xfd0f, 0xfcc6, 0xfc6e, 0xfc16, 0xfbe7, 0xfbcb,
+ 0xfb8c, 0xfb26, 0xfac3, 0xfa80, 0xfa7b, 0xfac5,
+ 0xfb19, 0xfb4d, 0xfb87, 0xfbbc, 0xfbd1, 0xfbd9,
+ 0xfbe5, 0xfc13, 0xfc7b, 0xfcf3, 0xfd88, 0xfe48,
+ 0xfed9, 0xff2e, 0xff92, 0xffe2, 0x0000, 0x002b,
+ 0x0071, 0x00bf, 0x011c, 0x0180, 0x01e2, 0x021b,
+ 0x01e4, 0x015a, 0x00f7, 0x00e9, 0x0118, 0x0177,
+ 0x01e8, 0x0248, 0x027a, 0x0279, 0x027a, 0x02ad,
+ 0x0303, 0x036b, 0x03e2, 0x044e, 0x049e, 0x04ad,
+ 0x0468, 0x0410, 0x03bd, 0x0344, 0x02c6, 0x026a,
+ 0x021b, 0x01dc, 0x01bb, 0x01a3, 0x0172, 0x012a,
+ 0x00f9, 0x00d9, 0x00ae, 0x00a0, 0x0088, 0x0005,
+ 0xff71, 0xff20, 0xfeb6, 0xfe28, 0xfde6, 0xfdfb,
+ 0xfe3a, 0xfe9c, 0xff1b, 0xffa0, 0x001a, 0x008c,
+ 0x00dd, 0x0101, 0x0146, 0x01d2, 0x0266, 0x02d8,
+ 0x0327, 0x0354, 0x0382, 0x03c8, 0x040b, 0x0413,
+ 0x03ca, 0x037b, 0x0357, 0x0336, 0x0317, 0x0306,
+ 0x02ea, 0x02e2, 0x02f4, 0x02f0, 0x02e3, 0x02c8,
+ 0x0288, 0x0258, 0x0243, 0x0233, 0x0243, 0x0276,
+ 0x02b5, 0x02e6, 0x02e4, 0x02cf, 0x02d5, 0x02c3,
+ 0x0284, 0x0248, 0x0234, 0x025c, 0x0275, 0x0244,
+ 0x022e, 0x0257, 0x0283, 0x02d7, 0x034a, 0x039b,
+ 0x03e8, 0x0409, 0x03c7, 0x03a5, 0x03d4, 0x03ec,
+ 0x040a, 0x044c, 0x045f, 0x0441, 0x041a, 0x03d5,
+ 0x0380, 0x0349, 0x0346, 0x0384, 0x03c9, 0x03be,
+ 0x0378, 0x033a, 0x02f9, 0x029a, 0x0232, 0x01e7,
+ 0x01c6, 0x01b9, 0x01bb, 0x01cb, 0x01d7, 0x01d1,
+ 0x01bc, 0x0195, 0x015e, 0x011c, 0x00c6, 0x0059,
+ 0xffde, 0xff5e, 0xfede, 0xfe5e, 0xfdff, 0xfde6,
+ 0xfde8, 0xfdcb, 0xfd88, 0xfd27, 0xfca0, 0xfbdf,
+ 0xfaeb, 0xfa02, 0xf94c, 0xf8ae, 0xf834, 0xf812,
+ 0xf831, 0xf84c, 0xf83f, 0xf7f7, 0xf780, 0xf704,
+ 0xf683, 0xf604, 0xf5cc, 0xf5ff, 0xf67b, 0xf725,
+ 0xf7d0, 0xf836, 0xf858, 0xf864, 0xf869, 0xf88c,
+ 0xf8fc, 0xf985, 0xf9f2, 0xfa57, 0xfa93, 0xfa89,
+ 0xfaa5, 0xfb1a, 0xfb92, 0xfbfd, 0xfc74, 0xfcb0,
+ 0xfc99, 0xfc78, 0xfc5e, 0xfc48, 0xfc64, 0xfcc7,
+ 0xfd5b, 0xfe11, 0xfed0, 0xff8a, 0x0041, 0x00f6,
+ 0x018d, 0x01ec, 0x0241, 0x02b9, 0x0316, 0x033a,
+ 0x0364, 0x03a8, 0x0401, 0x0486, 0x0536, 0x0614,
+ 0x071a, 0x0820, 0x0930, 0x0a43, 0x0b16, 0x0bc6,
+ 0x0c7b, 0x0d03, 0x0d85, 0x0e3d, 0x0ee7, 0x0f96,
+ 0x108a, 0x1172, 0x1229, 0x12c6, 0x130d, 0x131c,
+ 0x133e, 0x1326, 0x12ca, 0x12a3, 0x12ad, 0x12b6,
+ 0x12bc, 0x12a1, 0x1280, 0x128d, 0x127d, 0x122c,
+ 0x11d6, 0x1175, 0x10f5, 0x107c, 0x1011, 0x0fbc,
+ 0x0f8f, 0x0f6d, 0x0f32, 0x0ec1, 0x0e15, 0x0d62,
+ 0x0c9f, 0x0b91, 0x0a63, 0x0955, 0x085e, 0x078c,
+ 0x06d7, 0x060f, 0x0549, 0x049c, 0x03ef, 0x034e,
+ 0x02c5, 0x0239, 0x01c5, 0x017a, 0x0126, 0x00d3,
+ 0x00a9, 0x0089, 0x0069, 0x006f, 0x007e, 0x006f,
+ 0x005c, 0x0047, 0x001e, 0x0011, 0x003b, 0x0082,
+ 0x00eb, 0x0171, 0x01e1, 0x023e, 0x02ae, 0x0315,
+ 0x0359, 0x0397, 0x03ed, 0x045e, 0x04e0, 0x0569,
+ 0x05f7, 0x0663, 0x068c, 0x06b9, 0x0723, 0x0796,
+ 0x0804, 0x0899, 0x0929, 0x096e, 0x0973, 0x095e,
+ 0x0948, 0x0936, 0x090c, 0x08cd, 0x089a, 0x085b,
+ 0x07ec, 0x0757, 0x06aa, 0x05e8, 0x052c, 0x047b,
+ 0x03ce, 0x0320, 0x0279, 0x01eb, 0x016c, 0x00d5,
+ 0x0036, 0xffc4, 0xff78, 0xff46, 0xff35, 0xff30,
+ 0xff1c, 0xff04, 0xfef6, 0xfef4, 0xfef0, 0xfee7,
+ 0xfeee, 0xff04, 0xff15, 0xff29, 0xff53, 0xff8d,
+ 0xffbe, 0xfffa, 0x0067, 0x00d4, 0x0108, 0x0124,
+ 0x012d, 0x010b, 0x00f2, 0x00e4, 0x00a8, 0x006b,
+ 0x0063, 0x0058, 0x0019, 0xffaa, 0xff37, 0xfedb,
+ 0xfe72, 0xfdf2, 0xfd7a, 0xfcf4, 0xfc41, 0xfb67,
+ 0xfa7f, 0xf9a7, 0xf8d3, 0xf7e2, 0xf6f2, 0xf622,
+ 0xf55c, 0xf491, 0xf3c5, 0xf30d, 0xf276, 0xf1dd,
+ 0xf13d, 0xf0be, 0xf063, 0xf027, 0xf016, 0xf030,
+ 0xf067, 0xf09f, 0xf0cf, 0xf104, 0xf125, 0xf12d,
+ 0xf13d, 0xf15f, 0xf192, 0xf1c5, 0xf1e2, 0xf21d,
+ 0xf28d, 0xf304, 0xf3ab, 0xf48e, 0xf562, 0xf63a,
+ 0xf731, 0xf7fa, 0xf896, 0xf931, 0xf9d3, 0xfaa2,
+ 0xfb96, 0xfc89, 0xfd8f, 0xfe97, 0xff7e, 0x0088,
+ 0x01cc, 0x02ff, 0x0415, 0x052b, 0x0623, 0x06f4,
+ 0x07c7, 0x08ab, 0x0982, 0x0a3e, 0x0ad2, 0x0b2b,
+ 0x0b5d, 0x0b82, 0x0b97, 0x0bb5, 0x0be7, 0x0c17,
+ 0x0c53, 0x0c98, 0x0cc4, 0x0ce2, 0x0cff, 0x0d0c,
+ 0x0d22, 0x0d4e, 0x0d70, 0x0d82, 0x0d8c, 0x0d8a,
+ 0x0d7e, 0x0d5f, 0x0d1d, 0x0cbd, 0x0c47, 0x0bd1,
+ 0x0b62, 0x0ad8, 0x0a3a, 0x099f, 0x08fb, 0x0864,
+ 0x07f3, 0x0784, 0x0711, 0x06ab, 0x0636, 0x05ce,
+ 0x058d, 0x0545, 0x0504, 0x04f0, 0x04d2, 0x04a8,
+ 0x04a3, 0x049d, 0x047e, 0x045e, 0x042e, 0x03ec,
+ 0x039b, 0x032a, 0x02b8, 0x024e, 0x01d2, 0x0176,
+ 0x0134, 0x00d7, 0x00a1, 0x00b8, 0x00c3, 0x00bb,
+ 0x00cb, 0x00cc, 0x009a, 0x0044, 0xffde, 0xff7f,
+ 0xff39, 0xfeff, 0xfec1, 0xfe86, 0xfe6a, 0xfe5e,
+ 0xfe2c, 0xfdd0, 0xfd75, 0xfd37, 0xfd06, 0xfcc1,
+ 0xfc6f, 0xfc16, 0xfb94, 0xfb04, 0xfacd, 0xfaee,
+ 0xfb11, 0xfb2d, 0xfb53, 0xfb6f, 0xfb75, 0xfb4e,
+ 0xfaf5, 0xfaab, 0xfa8c, 0xfa73, 0xfa6f, 0xfa8d,
+ 0xfa9c, 0xfa97, 0xfa9e, 0xfaac, 0xfad5, 0xfb2c,
+ 0xfb8a, 0xfbf0, 0xfc7a, 0xfcfc, 0xfd4c, 0xfd74,
+ 0xfd6f, 0xfd51, 0xfd49, 0xfd55, 0xfd6d, 0xfdae,
+ 0xfe1a, 0xfe97, 0xff18, 0xff8d, 0xffc9, 0xffc7,
+ 0xffbc, 0xffc0, 0xffd0, 0xfff9, 0x0022, 0x002c,
+ 0x0026, 0x001a, 0x0012, 0x002e, 0x0051, 0x004f,
+ 0x003c, 0x0017, 0xffd1, 0xff76, 0xff24, 0xfeec,
+ 0xfead, 0xfe55, 0xfe29, 0xfe18, 0xfdde, 0xfdc4,
+ 0xfde1, 0xfdd6, 0xfdba, 0xfdba, 0xfdac, 0xfdae,
+ 0xfdec, 0xfe41, 0xfe9f, 0xfefb, 0xff2e, 0xff4b,
+ 0xff7b, 0xffb8, 0xffeb, 0x000f, 0x001c, 0xfff8,
+ 0xffb1, 0xff66, 0xff12, 0xfee0, 0xfecf, 0xfe8b,
+ 0xfe2a, 0xfddf, 0xfd83, 0xfd3a, 0xfd2b, 0xfd17,
+ 0xfcee, 0xfcb3, 0xfc5c, 0xfc10, 0xfbbe, 0xfb4d,
+ 0xfafe, 0xfaee, 0xfb26, 0xfbb0, 0xfc20, 0xfc2a,
+ 0xfbfe, 0xfbb7, 0xfb85, 0xfba0, 0xfbed, 0xfc56,
+ 0xfcc3, 0xfd14, 0xfd4b, 0xfd4e, 0xfd13, 0xfce2,
+ 0xfcd7, 0xfcee, 0xfd22, 0xfd44, 0xfd64, 0xfdb1,
+ 0xfe09, 0xfe6a, 0xfee3, 0xff31, 0xff3b, 0xff00,
+ 0xfe7a, 0xfde3, 0xfd52, 0xfcba, 0xfc57, 0xfc3a,
+ 0xfc44, 0xfc8d, 0xfceb, 0xfd08, 0xfcf9, 0xfcdf,
+ 0xfcb1, 0xfc6f, 0xfc27, 0xfc04, 0xfc20, 0xfc58,
+ 0xfcac, 0xfd23, 0xfd92, 0xfde8, 0xfe33, 0xfe5d,
+ 0xfe59, 0xfe40, 0xfe29, 0xfe19, 0xfe14, 0xfe1c,
+ 0xfe3a, 0xfe85, 0xfee8, 0xff43, 0xffb1, 0x0020,
+ 0x0055, 0x0090, 0x00fa, 0x0135, 0x0149, 0x018c,
+ 0x01d7, 0x020a, 0x024a, 0x029b, 0x02fe, 0x0359,
+ 0x0384, 0x03a1, 0x03c8, 0x03ee, 0x041a, 0x044a,
+ 0x0486, 0x04bb, 0x04ab, 0x0465, 0x0425, 0x03eb,
+ 0x03c2, 0x03a7, 0x038e, 0x0387, 0x035f, 0x02df,
+ 0x0240, 0x01ad, 0x011d, 0x00a2, 0x0035, 0xffcc,
+ 0xff7e, 0xff53, 0xff56, 0xff8b, 0xffcf, 0x000b,
+ 0x0054, 0x00b1, 0x0101, 0x013b, 0x0181, 0x01c9,
+ 0x01fd, 0x0235, 0x0256, 0x025a, 0x0288, 0x02c8,
+ 0x02f5, 0x033b, 0x035b, 0x032f, 0x0301, 0x02b9,
+ 0x0258, 0x0238, 0x0221, 0x01f7, 0x020e, 0x0243,
+ 0x027b, 0x02e1, 0x032b, 0x0333, 0x0344, 0x035a,
+ 0x035e, 0x0358, 0x0341, 0x032f, 0x0317, 0x02de,
+ 0x02b4, 0x02b5, 0x02c7, 0x02f4, 0x0342, 0x0393,
+ 0x03c1, 0x03b2, 0x0392, 0x037c, 0x0345, 0x030a,
+ 0x0306, 0x0327, 0x0388, 0x043a, 0x04d8, 0x053f,
+ 0x0591, 0x05aa, 0x0592, 0x0582, 0x0576, 0x0563,
+ 0x054a, 0x0519, 0x04cc, 0x0474, 0x0437, 0x0423,
+ 0x03fe, 0x03c0, 0x03a1, 0x038d, 0x0376, 0x038c,
+ 0x03a9, 0x03ac, 0x03bd, 0x03be, 0x0388, 0x0348,
+ 0x0307, 0x02c7, 0x02a5, 0x028d, 0x027c, 0x029f,
+ 0x02cd, 0x02c7, 0x02a0, 0x0276, 0x0255, 0x023a,
+ 0x0200, 0x01b3, 0x0171, 0x0113, 0x0097, 0x002a,
+ 0xffc4, 0xff64, 0xff20, 0xfed1, 0xfe57, 0xfdc3,
+ 0xfd17, 0xfc5a, 0xfba6, 0xfb0a, 0xfa88, 0xfa26,
+ 0xfa00, 0xf9ff, 0xf9db, 0xf99d, 0xf97e, 0xf965,
+ 0xf93d, 0xf926, 0xf91d, 0xf912, 0xf91c, 0xf941,
+ 0xf973, 0xf99f, 0xf9be, 0xf9d0, 0xf9d4, 0xf9c2,
+ 0xf999, 0xf962, 0xf938, 0xf90f, 0xf8dd, 0xf8c8,
+ 0xf8d8, 0xf8ef, 0xf910, 0xf93a, 0xf94d, 0xf952,
+ 0xf95f, 0xf965, 0xf951, 0xf93f, 0xf95c, 0xf98c,
+ 0xf9aa, 0xf9d1, 0xfa14, 0xfa69, 0xfabb, 0xfaf4,
+ 0xfb1b, 0xfb3f, 0xfb62, 0xfb8f, 0xfbd2, 0xfc28,
+ 0xfc97, 0xfd11, 0xfd7c, 0xfdd1, 0xfe16, 0xfe61,
+ 0xfebf, 0xff41, 0x0006, 0x00fe, 0x01fd, 0x0301,
+ 0x03fd, 0x04ec, 0x05e0, 0x06cc, 0x07c7, 0x08f2,
+ 0x0a0b, 0x0ade, 0x0b7c, 0x0c05, 0x0cab, 0x0d61,
+ 0x0e04, 0x0ec3, 0x0f83, 0x0fff, 0x1077, 0x10eb,
+ 0x1116, 0x1139, 0x1173, 0x118c, 0x11aa, 0x11d6,
+ 0x11dc, 0x11d8, 0x11d8, 0x11d6, 0x11eb, 0x11f6,
+ 0x11be, 0x114c, 0x10a1, 0x0fd8, 0x0f2c, 0x0e92,
+ 0x0df4, 0x0d6f, 0x0cf9, 0x0c6b, 0x0bc8, 0x0b14,
+ 0x0a4c, 0x096e, 0x086e, 0x0778, 0x06b5, 0x060b,
+ 0x057b, 0x050b, 0x0482, 0x03ed, 0x0383, 0x02ff,
+ 0x0250, 0x01e8, 0x01bb, 0x0168, 0x00f7, 0x0072,
+ 0xffdb, 0xff63, 0xff01, 0xfead, 0xfea2, 0xfeba,
+ 0xfec8, 0xfef1, 0xff0e, 0xff09, 0xff17, 0xff19,
+ 0xff11, 0xff3e, 0xff78, 0xffc8, 0x0051, 0x00c0,
+ 0x011e, 0x01b8, 0x0258, 0x02fb, 0x03ca, 0x0496,
+ 0x054a, 0x05e8, 0x0667, 0x06d5, 0x071e, 0x073b,
+ 0x074b, 0x0733, 0x0708, 0x06fb, 0x06ec, 0x06d7,
+ 0x06bc, 0x067a, 0x0633, 0x05e8, 0x0572, 0x04ee,
+ 0x045a, 0x03ab, 0x030f, 0x0277, 0x01d0, 0x0138,
+ 0x00aa, 0x002e, 0xffcd, 0xff6c, 0xff22, 0xfee6,
+ 0xfe8b, 0xfe2e, 0xfdd2, 0xfd6d, 0xfd38, 0xfd33,
+ 0xfd37, 0xfd4c, 0xfd7f, 0xfdd6, 0xfe21, 0xfe30,
+ 0xfe4a, 0xfea0, 0xfeff, 0xff4f, 0xff97, 0xffd1,
+ 0x0001, 0x0035, 0x0080, 0x00cb, 0x00f0, 0x0117,
+ 0x0143, 0x013c, 0x0118, 0x0101, 0x00df, 0x00ae,
+ 0x007c, 0x0040, 0xffe7, 0xff6b, 0xfeef, 0xfe7b,
+ 0xfe0d, 0xfdc2, 0xfd77, 0xfce6, 0xfc25, 0xfb54,
+ 0xfa6d, 0xf981, 0xf8a5, 0xf7cd, 0xf6e9, 0xf606,
+ 0xf54b, 0xf4b9, 0xf430, 0xf3ae, 0xf330, 0xf2c4,
+ 0xf27f, 0xf23a, 0xf1e4, 0xf199, 0xf13f, 0xf0d4,
+ 0xf07c, 0xf02c, 0xefdc, 0xefa3, 0xef80, 0xef78,
+ 0xef85, 0xefa1, 0xeff9, 0xf08c, 0xf11a, 0xf19c,
+ 0xf227, 0xf2a5, 0xf317, 0xf3ae, 0xf480, 0xf55c,
+ 0xf626, 0xf704, 0xf7f7, 0xf8e9, 0xf9f7, 0xfb0e,
+ 0xfc08, 0xfcfc, 0xfde7, 0xfec1, 0xffa6, 0x006f,
+ 0x010b, 0x01b8, 0x0262, 0x02de, 0x0369, 0x042e,
+ 0x051d, 0x061a, 0x06fd, 0x07bd, 0x0868, 0x08f5,
+ 0x0975, 0x09fe, 0x0a83, 0x0aee, 0x0b47, 0x0bad,
+ 0x0c22, 0x0c80, 0x0cc2, 0x0d06, 0x0d3c, 0x0d50,
+ 0x0d58, 0x0d73, 0x0d88, 0x0d6e, 0x0d30, 0x0cdd,
+ 0x0c69, 0x0bf8, 0x0ba8, 0x0b67, 0x0b25, 0x0ad9,
+ 0x0a86, 0x0a39, 0x09dd, 0x0978, 0x0932, 0x08ff,
+ 0x08c8, 0x088c, 0x0843, 0x07ea, 0x0796, 0x075c,
+ 0x0731, 0x06fd, 0x06d1, 0x06a8, 0x065e, 0x0617,
+ 0x05d4, 0x0577, 0x053b, 0x0518, 0x04e7, 0x04df,
+ 0x04e4, 0x04c7, 0x04b0, 0x0473, 0x0405, 0x03b5,
+ 0x035e, 0x0302, 0x02d5, 0x029d, 0x0270, 0x0282,
+ 0x028f, 0x0292, 0x0290, 0x0268, 0x0253, 0x024e,
+ 0x0229, 0x01ff, 0x01b8, 0x015f, 0x0138, 0x0114,
+ 0x00e7, 0x00e3, 0x00d1, 0x0099, 0x005f, 0x0011,
+ 0xffbb, 0xff5f, 0xfef0, 0xfe8e, 0xfe33, 0xfdbf,
+ 0xfd47, 0xfce9, 0xfcaa, 0xfc7e, 0xfc60, 0xfc48,
+ 0xfc1f, 0xfbfa, 0xfbf3, 0xfbe7, 0xfbec, 0xfc16,
+ 0xfc38, 0xfc47, 0xfc23, 0xfbbc, 0xfb63, 0xfb31,
+ 0xfb16, 0xfb36, 0xfb8e, 0xfc07, 0xfca4, 0xfd37,
+ 0xfdac, 0xfe08, 0xfe52, 0xfe9f, 0xfec8, 0xfed8,
+ 0xff0c, 0xff32, 0xff48, 0xff8d, 0xffd0, 0x000e,
+ 0x005f, 0x006f, 0x0054, 0x002f, 0xffc3, 0xff5c,
+ 0xff2e, 0xfedc, 0xfe80, 0xfe4b, 0xfe18, 0xfe03,
+ 0xfe1e, 0xfe2c, 0xfe19, 0xfdf7, 0xfdd2, 0xfd98,
+ 0xfd57, 0xfd4a, 0xfd54, 0xfd55, 0xfd87, 0xfddd,
+ 0xfe28, 0xfe7f, 0xfed9, 0xff21, 0xff6e, 0xffa1,
+ 0xff92, 0xff73, 0xff68, 0xff65, 0xff64, 0xff63,
+ 0xff62, 0xff51, 0xff0b, 0xfeb2, 0xfe99, 0xfe9b,
+ 0xfe79, 0xfe6a, 0xfe76, 0xfe64, 0xfe3d, 0xfdec,
+ 0xfd76, 0xfd42, 0xfd35, 0xfd1e, 0xfd3a, 0xfd65,
+ 0xfd59, 0xfd38, 0xfd1c, 0xfd19, 0xfd38, 0xfd44,
+ 0xfd44, 0xfd49, 0xfd30, 0xfcf3, 0xfc95, 0xfc40,
+ 0xfc26, 0xfc26, 0xfc4b, 0xfc93, 0xfc9f, 0xfc87,
+ 0xfc8b, 0xfc6c, 0xfc43, 0xfc49, 0xfc4d, 0xfc60,
+ 0xfca9, 0xfcfd, 0xfd3b, 0xfd65, 0xfd89, 0xfdb4,
+ 0xfdd2, 0xfded, 0xfe12, 0xfe2e, 0xfe43, 0xfe4a,
+ 0xfe43, 0xfe43, 0xfe34, 0xfe0e, 0xfdfb, 0xfdf4,
+ 0xfdd9, 0xfdb3, 0xfda1, 0xfda6, 0xfd8e, 0xfd5b,
+ 0xfd2b, 0xfcd5, 0xfc6c, 0xfc40, 0xfc38, 0xfc4f,
+ 0xfca3, 0xfcf0, 0xfd1e, 0xfd44, 0xfd34, 0xfcea,
+ 0xfcb1, 0xfc96, 0xfc8c, 0xfcb7, 0xfd24, 0xfd8f,
+ 0xfdd4, 0xfe0c, 0xfe27, 0xfe34, 0xfe84, 0xfefb,
+ 0xff66, 0xffef, 0x0081, 0x00e2, 0x012d, 0x0167,
+ 0x017c, 0x0193, 0x01be, 0x01df, 0x01fb, 0x0226,
+ 0x0252, 0x0275, 0x0296, 0x02a2, 0x0290, 0x0284,
+ 0x027d, 0x0271, 0x0258, 0x020b, 0x0197, 0x012e,
+ 0x00cf, 0x0087, 0x006f, 0x0064, 0x005b, 0x0071,
+ 0x0096, 0x00b3, 0x00d0, 0x0101, 0x013b, 0x0166,
+ 0x0182, 0x018e, 0x019c, 0x01c4, 0x01ec, 0x0208,
+ 0x0220, 0x0225, 0x023d, 0x0273, 0x0281, 0x028b,
+ 0x02bb, 0x02d4, 0x0307, 0x0381, 0x03ed, 0x043f,
+ 0x047d, 0x0476, 0x043c, 0x03e6, 0x0385, 0x0337,
+ 0x02f1, 0x02c2, 0x02c2, 0x02c3, 0x02c8, 0x02d1,
+ 0x02ba, 0x029f, 0x0290, 0x0289, 0x029b, 0x029e,
+ 0x028d, 0x029e, 0x02aa, 0x02a7, 0x02c2, 0x02d5,
+ 0x02d0, 0x02d2, 0x02cf, 0x02d6, 0x02ec, 0x0304,
+ 0x0342, 0x038d, 0x03b2, 0x03d1, 0x03f8, 0x0428,
+ 0x047d, 0x04cc, 0x04f7, 0x052b, 0x055b, 0x057f,
+ 0x05ad, 0x05c8, 0x05cc, 0x05da, 0x05ca, 0x0579,
+ 0x0522, 0x04f2, 0x04d6, 0x04bf, 0x04ae, 0x0492,
+ 0x0460, 0x041e, 0x03dd, 0x03a8, 0x0378, 0x035a,
+ 0x036d, 0x039c, 0x03c0, 0x03e4, 0x03ff, 0x03f1,
+ 0x03be, 0x037d, 0x0343, 0x0324, 0x0325, 0x0331,
+ 0x0335, 0x0346, 0x0360, 0x0350, 0x0315, 0x02d1,
+ 0x0280, 0x0213, 0x018d, 0x0110, 0x00af, 0x0048,
+ 0xffd7, 0xff7a, 0xff19, 0xfeaa, 0xfe68, 0xfe46,
+ 0xfe16, 0xfdd3, 0xfd7f, 0xfd24, 0xfcd5, 0xfcaa,
+ 0xfca1, 0xfc9b, 0xfc9f, 0xfcb7, 0xfcaa, 0xfc78,
+ 0xfc47, 0xfbe7, 0xfb61, 0xfaec, 0xfa72, 0xfa0a,
+ 0xf9d0, 0xf990, 0xf955, 0xf94a, 0xf948, 0xf950,
+ 0xf97d, 0xf9a1, 0xf9ab, 0xf9bf, 0xf9ed, 0xfa32,
+ 0xfa88, 0xfaea, 0xfb39, 0xfb61, 0xfb75, 0xfb74,
+ 0xfb47, 0xfb0c, 0xfae0, 0xfac5, 0xfac1, 0xfad3,
+ 0xfafc, 0xfb28, 0xfb2d, 0xfb20, 0xfb1c, 0xfb08,
+ 0xfaee, 0xfae4, 0xfadb, 0xfae2, 0xfb09, 0xfb40,
+ 0xfb85, 0xfbc4, 0xfbef, 0xfc37, 0xfc9e, 0xfd00,
+ 0xfd92, 0xfe86, 0xffa1, 0x00ba, 0x01db, 0x02ec,
+ 0x03e8, 0x04f6, 0x0607, 0x06f1, 0x07c9, 0x08a7,
+ 0x096f, 0x0a2d, 0x0afd, 0x0bcc, 0x0ca4, 0x0da2,
+ 0x0e97, 0x0f67, 0x1032, 0x10e1, 0x115d, 0x11dd,
+ 0x127c, 0x1319, 0x13ac, 0x142a, 0x1482, 0x14b9,
+ 0x14d5, 0x14d4, 0x14af, 0x145d, 0x13ea, 0x136b,
+ 0x12e3, 0x125e, 0x11de, 0x1161, 0x10f9, 0x1087,
+ 0x0fef, 0x0f66, 0x0ee6, 0x0e45, 0x0db7, 0x0d43,
+ 0x0c9f, 0x0bf9, 0x0b6c, 0x0ab8, 0x09e5, 0x090f,
+ 0x0827, 0x0758, 0x06a8, 0x05e3, 0x051f, 0x046a,
+ 0x03ba, 0x032a, 0x02aa, 0x0223, 0x01b9, 0x0161,
+ 0x00fb, 0x00a4, 0x0060, 0x0014, 0xffbf, 0xff79,
+ 0xff67, 0xff76, 0xff79, 0xff8f, 0xffda, 0x0034,
+ 0x00a6, 0x015a, 0x022c, 0x02dc, 0x036e, 0x040f,
+ 0x04b6, 0x0542, 0x05c1, 0x0644, 0x06ab, 0x06ea,
+ 0x072b, 0x0779, 0x07be, 0x07f2, 0x0832, 0x0889,
+ 0x08c4, 0x08b8, 0x088b, 0x0858, 0x0810, 0x07bc,
+ 0x0776, 0x0734, 0x06ec, 0x069e, 0x0642, 0x05cc,
+ 0x0535, 0x0496, 0x041c, 0x03cf, 0x0387, 0x0335,
+ 0x02f2, 0x02c3, 0x0293, 0x0246, 0x01de, 0x0174,
+ 0x0110, 0x00ad, 0x006c, 0x0054, 0x0031, 0x000d,
+ 0x001d, 0x0050, 0x008d, 0x00d6, 0x0118, 0x014b,
+ 0x0171, 0x018c, 0x01ae, 0x01c9, 0x01da, 0x021b,
+ 0x027b, 0x02ab, 0x02d0, 0x031f, 0x037e, 0x03d5,
+ 0x0411, 0x0425, 0x0418, 0x03e0, 0x038d, 0x0342,
+ 0x02fb, 0x02bd, 0x027a, 0x01f4, 0x0152, 0x00ba,
+ 0xfffe, 0xff40, 0xfeb7, 0xfe2b, 0xfd96, 0xfd11,
+ 0xfc75, 0xfbc6, 0xfb20, 0xfa6c, 0xf9a3, 0xf8c3,
+ 0xf7c9, 0xf6e8, 0xf638, 0xf595, 0xf4f4, 0xf463,
+ 0xf3cc, 0xf30e, 0xf236, 0xf15c, 0xf084, 0xefd0,
+ 0xef52, 0xeee6, 0xee9a, 0xee88, 0xee75, 0xee5d,
+ 0xee76, 0xeeaa, 0xeef0, 0xef54, 0xefa8, 0xeff0,
+ 0xf05d, 0xf0d1, 0xf133, 0xf188, 0xf1d0, 0xf21b,
+ 0xf268, 0xf2ae, 0xf323, 0xf3d3, 0xf48a, 0xf546,
+ 0xf618, 0xf701, 0xf813, 0xf943, 0xfa65, 0xfb7b,
+ 0xfca8, 0xfde4, 0xff04, 0x0005, 0x0104, 0x01f6,
+ 0x02d9, 0x03c0, 0x04a8, 0x0585, 0x0655, 0x0709,
+ 0x07a0, 0x0818, 0x086b, 0x08ba, 0x0915, 0x0967,
+ 0x09b2, 0x09ed, 0x0a16, 0x0a4a, 0x0a6c, 0x0a5e,
+ 0x0a4b, 0x0a3a, 0x0a11, 0x09e9, 0x09d6, 0x09dd,
+ 0x0a10, 0x0a57, 0x0a90, 0x0ab9, 0x0abb, 0x0a87,
+ 0x0a3d, 0x09f0, 0x098f, 0x092a, 0x08d9, 0x0898,
+ 0x086a, 0x0867, 0x0881, 0x08aa, 0x08e4, 0x08fb,
+ 0x08bf, 0x0865, 0x081c, 0x07cd, 0x077b, 0x0733,
+ 0x06f5, 0x06df, 0x06e9, 0x06e6, 0x06f0, 0x071b,
+ 0x0740, 0x074e, 0x0741, 0x0706, 0x069d, 0x061e,
+ 0x05aa, 0x054f, 0x0509, 0x04f8, 0x051d, 0x0535,
+ 0x0533, 0x052d, 0x0506, 0x04c3, 0x0487, 0x0447,
+ 0x03f7, 0x0398, 0x0324, 0x02b0, 0x0241, 0x01bf,
+ 0x0134, 0x00af, 0x0030, 0xffce, 0xff94, 0xff77,
+ 0xff51, 0xff02, 0xfea1, 0xfe2c, 0xfd88, 0xfcf3,
+ 0xfc97, 0xfc50, 0xfc34, 0xfc34, 0xfbf9, 0xfb8b,
+ 0xfb04, 0xfa67, 0xfa06, 0xf9fa, 0xfa14, 0xfa60,
+ 0xfabc, 0xfae9, 0xfb0d, 0xfb31, 0xfb3d, 0xfb6a,
+ 0xfbcb, 0xfc37, 0xfcab, 0xfd22, 0xfd93, 0xfe03,
+ 0xfe5e, 0xfe97, 0xfe9e, 0xfe77, 0xfe52, 0xfe34,
+ 0xfe0d, 0xfdf9, 0xfdf3, 0xfde3, 0xfdd4, 0xfdcb,
+ 0xfdcb, 0xfdc5, 0xfd9d, 0xfd70, 0xfd4c, 0xfd08,
+ 0xfcc1, 0xfca1, 0xfc97, 0xfca7, 0xfcdb, 0xfd2b,
+ 0xfd9f, 0xfe1f, 0xfe8a, 0xfed4, 0xfef5, 0xff00,
+ 0xff04, 0xfeef, 0xfeea, 0xff21, 0xff6d, 0xffaa,
+ 0xffcc, 0xffbc, 0xff86, 0xff40, 0xff01, 0xfed3,
+ 0xfeae, 0xfe9b, 0xfea7, 0xfea7, 0xfe93, 0xfe81,
+ 0xfe5e, 0xfe27, 0xfdf3, 0xfdd0, 0xfddb, 0xfe18,
+ 0xfe5a, 0xfe90, 0xfeae, 0xfe8f, 0xfe33, 0xfdc1,
+ 0xfd5a, 0xfd0a, 0xfcea, 0xfd19, 0xfd86, 0xfe05,
+ 0xfe7a, 0xfebf, 0xfeb4, 0xfe5c, 0xfdb0, 0xfcc9,
+ 0xfbf1, 0xfb50, 0xfaf9, 0xfaea, 0xfb00, 0xfb32,
+ 0xfb8d, 0xfbdb, 0xfbe1, 0xfbae, 0xfb62, 0xfaff,
+ 0xfa8e, 0xfa48, 0xfa4b, 0xfa94, 0xfb2d, 0xfc05,
+ 0xfcdd, 0xfd86, 0xfde9, 0xfe01, 0xfdd6, 0xfd62,
+ 0xfcc9, 0xfc3c, 0xfbc3, 0xfb85, 0xfb97, 0xfbc8,
+ 0xfc15, 0xfc67, 0xfc70, 0xfc3c, 0xfbdb, 0xfb32,
+ 0xfa8f, 0xfa20, 0xf9c8, 0xf9c8, 0xfa18, 0xfa46,
+ 0xfa52, 0xfa3c, 0xf9ee, 0xf9a4, 0xf966, 0xf921,
+ 0xf911, 0xf92d, 0xf943, 0xf973, 0xf9b5, 0xf9e3,
+ 0xf9f9, 0xf9ea, 0xf9cc, 0xf9cb, 0xf9f0, 0xfa58,
+ 0xfb0d, 0xfbed, 0xfce8, 0xfddd, 0xfe96, 0xff0e,
+ 0xff5c, 0xff91, 0xffb1, 0xffc4, 0xfff9, 0x0051,
+ 0x0094, 0x00d5, 0x0135, 0x0195, 0x01f6, 0x024e,
+ 0x025d, 0x022a, 0x01d5, 0x0167, 0x011a, 0x00f9,
+ 0x00d4, 0x00d3, 0x0108, 0x0121, 0x011b, 0x0122,
+ 0x010e, 0x00e3, 0x00c3, 0x0086, 0x0024, 0xffc4,
+ 0xff69, 0xff30, 0xff48, 0xffa5, 0x002f, 0x00c1,
+ 0x0116, 0x0127, 0x0113, 0x00f3, 0x00e7, 0x00fe,
+ 0x012e, 0x0174, 0x01bf, 0x01fe, 0x0234, 0x0260,
+ 0x028a, 0x02b0, 0x02c2, 0x02cf, 0x02d9, 0x02cb,
+ 0x02ac, 0x0282, 0x0255, 0x023d, 0x0230, 0x0221,
+ 0x021f, 0x0222, 0x0234, 0x0261, 0x0274, 0x0263,
+ 0x0252, 0x0229, 0x01f7, 0x01e1, 0x01da, 0x01f3,
+ 0x0233, 0x025a, 0x0259, 0x0256, 0x0267, 0x028f,
+ 0x02b5, 0x02d5, 0x0301, 0x0320, 0x032f, 0x033a,
+ 0x032d, 0x0328, 0x0342, 0x0358, 0x0365, 0x0362,
+ 0x0338, 0x030a, 0x02de, 0x02a1, 0x0274, 0x0249,
+ 0x020c, 0x01f2, 0x0203, 0x021c, 0x022d, 0x021f,
+ 0x020d, 0x0209, 0x01e9, 0x01c2, 0x01b4, 0x01a3,
+ 0x01aa, 0x01d6, 0x01f7, 0x01fd, 0x01c6, 0x0140,
+ 0x00c9, 0x0088, 0x0056, 0x0058, 0x008f, 0x00c3,
+ 0x00f2, 0x0107, 0x00d7, 0x0076, 0x0012, 0xffc7,
+ 0xff90, 0xff61, 0xff4c, 0xff4c, 0xff4e, 0xff5d,
+ 0xff7d, 0xffb6, 0x0017, 0x0083, 0x00ee, 0x0173,
+ 0x01ea, 0x0235, 0x025b, 0x023c, 0x01e0, 0x0176,
+ 0x010b, 0x00b7, 0x0094, 0x007d, 0x0057, 0x0027,
+ 0xffe5, 0xff88, 0xff13, 0xfe91, 0xfe16, 0xfdab,
+ 0xfd66, 0xfd5f, 0xfd8b, 0xfdd0, 0xfdfb, 0xfde2,
+ 0xfda9, 0xfd6c, 0xfd1d, 0xfcdd, 0xfcd2, 0xfcf6,
+ 0xfd51, 0xfdc0, 0xfe11, 0xfe44, 0xfe41, 0xfdfc,
+ 0xfda9, 0xfd51, 0xfced, 0xfca5, 0xfc7e, 0xfc6e,
+ 0xfc82, 0xfc91, 0xfc77, 0xfc42, 0xfbec, 0xfb7d,
+ 0xfb13, 0xfaac, 0xfa5b, 0xfa32, 0xfa1a, 0xfa11,
+ 0xfa0a, 0xf9ee, 0xf9ca, 0xf9a4, 0xf98e, 0xf9ae,
+ 0xf9f3, 0xfa4a, 0xfac1, 0xfb33, 0xfb8d, 0xfbee,
+ 0xfc44, 0xfc94, 0xfcfa, 0xfd70, 0xfe0a, 0xfed2,
+ 0xffa2, 0x0084, 0x017a, 0x0266, 0x035f, 0x0461,
+ 0x0552, 0x0659, 0x0766, 0x084e, 0x0927, 0x09dc,
+ 0x0a5a, 0x0ad3, 0x0b4d, 0x0bc8, 0x0c6a, 0x0d15,
+ 0x0db3, 0x0e54, 0x0ecd, 0x0f0f, 0x0f4d, 0x0f85,
+ 0x0fb6, 0x0fff, 0x1047, 0x107b, 0x10b5, 0x10e6,
+ 0x10f0, 0x10d1, 0x108c, 0x1031, 0x0fdd, 0x0f92,
+ 0x0f55, 0x0f27, 0x0eee, 0x0ea1, 0x0e45, 0x0dc6,
+ 0x0d1e, 0x0c5d, 0x0b82, 0x0aae, 0x0a17, 0x09a8,
+ 0x0930, 0x08b6, 0x083f, 0x07a8, 0x06ea, 0x062d,
+ 0x058f, 0x0509, 0x0494, 0x042a, 0x03cb, 0x0382,
+ 0x033f, 0x0306, 0x0306, 0x0330, 0x0363, 0x03bd,
+ 0x0426, 0x046f, 0x04aa, 0x04c6, 0x04be, 0x04cf,
+ 0x04ee, 0x0506, 0x0548, 0x05a7, 0x0611, 0x0699,
+ 0x070f, 0x075f, 0x07b5, 0x0800, 0x082f, 0x085c,
+ 0x0882, 0x08a9, 0x08ba, 0x0894, 0x0866, 0x0842,
+ 0x07ff, 0x07c8, 0x07b7, 0x07a3, 0x0790, 0x077c,
+ 0x0748, 0x06fe, 0x06a1, 0x0613, 0x055a, 0x0495,
+ 0x03eb, 0x0378, 0x0338, 0x031b, 0x0307, 0x02e6,
+ 0x029e, 0x020f, 0x0151, 0x009c, 0x000b, 0xffcb,
+ 0xffee, 0x003a, 0x00a0, 0x0113, 0x014d, 0x015a,
+ 0x0170, 0x016b, 0x015a, 0x0187, 0x01e4, 0x0262,
+ 0x0312, 0x03c6, 0x0466, 0x04f3, 0x0544, 0x055c,
+ 0x054b, 0x0500, 0x04ae, 0x0493, 0x0492, 0x04c1,
+ 0x053d, 0x05b1, 0x05f7, 0x061f, 0x05f6, 0x057a,
+ 0x04e5, 0x0448, 0x03d4, 0x03ad, 0x0394, 0x0374,
+ 0x035d, 0x032f, 0x02f0, 0x02a4, 0x021f, 0x0166,
+ 0x0091, 0xff9a, 0xfe99, 0xfdaa, 0xfccd, 0xfc22,
+ 0xfbaf, 0xfb60, 0xfb2b, 0xfaf0, 0xfa8f, 0xfa12,
+ 0xf973, 0xf8a8, 0xf7d6, 0xf72e, 0xf6c1, 0xf674,
+ 0xf635, 0xf60f, 0xf5ed, 0xf5ba, 0xf584, 0xf552,
+ 0xf530, 0xf52c, 0xf52a, 0xf52c, 0xf54f, 0xf589,
+ 0xf5b5, 0xf5ba, 0xf5a1, 0xf596, 0xf58e, 0xf565,
+ 0xf538, 0xf528, 0xf52a, 0xf539, 0xf548, 0xf54a,
+ 0xf535, 0xf4f7, 0xf4ad, 0xf48b, 0xf4a0, 0xf4f2,
+ 0xf580, 0xf63f, 0xf72e, 0xf82e, 0xf91a, 0xf9e6,
+ 0xfa7e, 0xfaf7, 0xfb7a, 0xfbdf, 0xfc1e, 0xfc6c,
+ 0xfcc5, 0xfd2c, 0xfdbd, 0xfe69, 0xff26, 0xffe1,
+ 0x0076, 0x0108, 0x018d, 0x01d1, 0x01f9, 0x0227,
+ 0x023b, 0x024e, 0x028a, 0x02e1, 0x035b, 0x03fd,
+ 0x04a2, 0x052e, 0x0599, 0x05e1, 0x0606, 0x061e,
+ 0x0641, 0x0671, 0x06b0, 0x070c, 0x077a, 0x07f4,
+ 0x086d, 0x08c0, 0x08f0, 0x090e, 0x0900, 0x08cd,
+ 0x088e, 0x0830, 0x07c5, 0x0774, 0x072e, 0x06f9,
+ 0x0704, 0x0741, 0x0768, 0x0763, 0x0748, 0x0718,
+ 0x06d5, 0x0697, 0x0663, 0x0645, 0x0656, 0x068b,
+ 0x06ce, 0x070a, 0x0722, 0x0727, 0x072f, 0x0720,
+ 0x0708, 0x070d, 0x0728, 0x0762, 0x07a8, 0x07cb,
+ 0x07de, 0x07e0, 0x07a0, 0x072f, 0x06ab, 0x0623,
+ 0x05c6, 0x0582, 0x051e, 0x04be, 0x0474, 0x0414,
+ 0x03a2, 0x0322, 0x0283, 0x01e6, 0x0151, 0x00ad,
+ 0x0024, 0xffd8, 0xffb5, 0xffc1, 0xffe9, 0xfffe,
+ 0x0012, 0x0039, 0x0037, 0x0013, 0x0009, 0x0003,
+ 0xffee, 0xffde, 0xffc6, 0xffae, 0xffa0, 0xff82,
+ 0xff5b, 0xff37, 0xfeff, 0xfebd, 0xfe6b, 0xfdf2,
+ 0xfd93, 0xfd6e, 0xfd5c, 0xfd62, 0xfd7f, 0xfd98,
+ 0xfdc7, 0xfdfd, 0xfe13, 0xfe20, 0xfe2e, 0xfe39,
+ 0xfe3f, 0xfe23, 0xfdeb, 0xfdc0, 0xfdb0, 0xfdca,
+ 0xfe12, 0xfe76, 0xfedd, 0xff13, 0xff0f, 0xfeff,
+ 0xfee7, 0xfec8, 0xfec8, 0xfee3, 0xff01, 0xff16,
+ 0xfef1, 0xfe91, 0xfe39, 0xfe15, 0xfe25, 0xfe4a,
+ 0xfe60, 0xfe5e, 0xfe3c, 0xfde6, 0xfd7b, 0xfd29,
+ 0xfd0e, 0xfd4d, 0xfde7, 0xfe9a, 0xff29, 0xff84,
+ 0xffb0, 0xffbb, 0xffb9, 0xffb8, 0xffcb, 0x0005,
+ 0x0041, 0x005c, 0x0079, 0x009e, 0x0093, 0x0044,
+ 0xffc4, 0xff2a, 0xfe84, 0xfdd2, 0xfd49, 0xfd19,
+ 0xfd1c, 0xfd35, 0xfd66, 0xfd7d, 0xfd5d, 0xfd0d,
+ 0xfc8a, 0xfbfe, 0xfba7, 0xfb93, 0xfbc5, 0xfc1a,
+ 0xfc5b, 0xfc87, 0xfcaa, 0xfcae, 0xfc9d, 0xfc9c,
+ 0xfcb3, 0xfcd8, 0xfcfb, 0xfd0c, 0xfd1a, 0xfd30,
+ 0xfd4c, 0xfd79, 0xfdc7, 0xfe16, 0xfe40, 0xfe3e,
+ 0xfe0f, 0xfdc2, 0xfd81, 0xfd63, 0xfd5f, 0xfd71,
+ 0xfd90, 0xfda2, 0xfd94, 0xfd60, 0xfcfd, 0xfc82,
+ 0xfc25, 0xfbf2, 0xfbd5, 0xfbd6, 0xfbea, 0xfbf1,
+ 0xfbf1, 0xfbda, 0xfb8e, 0xfb38, 0xfb04, 0xfae5,
+ 0xfaec, 0xfb1a, 0xfb4f, 0xfb86, 0xfbae, 0xfbc3,
+ 0xfbe0, 0xfbf3, 0xfbf6, 0xfc0f, 0xfc3d, 0xfc76,
+ 0xfcba, 0xfce9, 0xfd18, 0xfd6e, 0xfdc5, 0xfe1f,
+ 0xfe8d, 0xfef0, 0xff4c, 0xffa8, 0xffe4, 0x000f,
+ 0x003f, 0x0064, 0x0088, 0x00ad, 0x00c2, 0x00ce,
+ 0x00d2, 0x00c9, 0x00be, 0x00b7, 0x00c3, 0x00df,
+ 0x00ef, 0x00fe, 0x011d, 0x0139, 0x014d, 0x016e,
+ 0x019d, 0x01cb, 0x01f0, 0x0213, 0x023a, 0x0261,
+ 0x0282, 0x029f, 0x02ab, 0x028d, 0x0254, 0x022d,
+ 0x0218, 0x0203, 0x0204, 0x0229, 0x0257, 0x0278,
+ 0x027d, 0x026c, 0x025e, 0x024b, 0x0236, 0x0239,
+ 0x0249, 0x025f, 0x0284, 0x02ac, 0x02cf, 0x02f4,
+ 0x030c, 0x0307, 0x02dd, 0x028b, 0x021b, 0x019e,
+ 0x012f, 0x00f2, 0x00ef, 0x010d, 0x0130, 0x0150,
+ 0x0157, 0x0137, 0x010c, 0x00de, 0x009a, 0x0076,
+ 0x0093, 0x00bb, 0x00ec, 0x0134, 0x016f, 0x01a1,
+ 0x01c9, 0x01b5, 0x0189, 0x017b, 0x0171, 0x0159,
+ 0x0146, 0x0140, 0x013e, 0x0135, 0x012d, 0x0118,
+ 0x00d9, 0x00a4, 0x0094, 0x007c, 0x006e, 0x0088,
+ 0x009a, 0x009a, 0x009b, 0x008c, 0x0071, 0x005d,
+ 0x0054, 0x0042, 0x000f, 0xffc5, 0xff6a, 0xfefd,
+ 0xfe9d, 0xfe54, 0xfe15, 0xfdec, 0xfdc2, 0xfd94,
+ 0xfd8c, 0xfd8e, 0xfd85, 0xfd91, 0xfda1, 0xfd9b,
+ 0xfd93, 0xfd95, 0xfdaa, 0xfdd6, 0xfe18, 0xfe73,
+ 0xfec8, 0xff0f, 0xff62, 0xff9c, 0xffaf, 0xffca,
+ 0xfff4, 0x002d, 0x0081, 0x00c7, 0x00fc, 0x012f,
+ 0x014a, 0x015d, 0x0175, 0x0187, 0x01ab, 0x01ce,
+ 0x01c6, 0x019d, 0x0152, 0x00f3, 0x00a3, 0x006c,
+ 0x0060, 0x007d, 0x0098, 0x00b8, 0x00d6, 0x00cd,
+ 0x00b9, 0x00a7, 0x0089, 0x0075, 0x0068, 0x005d,
+ 0x0069, 0x0068, 0x005d, 0x0063, 0x005b, 0x0049,
+ 0x0045, 0x003b, 0x0046, 0x0077, 0x00b6, 0x010e,
+ 0x0163, 0x0184, 0x018c, 0x0174, 0x012d, 0x00eb,
+ 0x00c3, 0x00c4, 0x00ed, 0x0109, 0x0124, 0x0151,
+ 0x0154, 0x0131, 0x00fc, 0x00ab, 0x0075, 0x0073,
+ 0x0073, 0x0076, 0x0070, 0x004c, 0x0030, 0x0027,
+ 0x002c, 0x0061, 0x00c5, 0x0135, 0x0190, 0x01c9,
+ 0x01f0, 0x01f8, 0x01d5, 0x01b9, 0x01b7, 0x01d7,
+ 0x0222, 0x0267, 0x029c, 0x02d9, 0x02e8, 0x02c5,
+ 0x029c, 0x0268, 0x0240, 0x0231, 0x0213, 0x01f7,
+ 0x01e6, 0x01be, 0x0192, 0x016b, 0x015e, 0x0195,
+ 0x01ce, 0x01eb, 0x022d, 0x0258, 0x0241, 0x0234,
+ 0x020c, 0x01ae, 0x017b, 0x0177, 0x018b, 0x01d0,
+ 0x020f, 0x022f, 0x026a, 0x02a2, 0x02ba, 0x02cf,
+ 0x02e1, 0x02f5, 0x031d, 0x0353, 0x03a5, 0x0408,
+ 0x0464, 0x04c7, 0x0520, 0x054f, 0x0575, 0x0594,
+ 0x058d, 0x0571, 0x054b, 0x0523, 0x051a, 0x051b,
+ 0x0506, 0x04f3, 0x04fb, 0x053a, 0x05a4, 0x0601,
+ 0x065c, 0x06bf, 0x06f0, 0x06e8, 0x06b9, 0x0657,
+ 0x05f5, 0x05b2, 0x0582, 0x0583, 0x05b0, 0x05e6,
+ 0x063c, 0x0694, 0x06bb, 0x06d3, 0x06df, 0x06d4,
+ 0x06d9, 0x06d9, 0x06c9, 0x06e4, 0x072d, 0x078e,
+ 0x0803, 0x0854, 0x086b, 0x087f, 0x08a4, 0x08c8,
+ 0x08d7, 0x08d2, 0x08cd, 0x08dc, 0x0907, 0x0939,
+ 0x0962, 0x0996, 0x09c8, 0x09dd, 0x09f4, 0x0a10,
+ 0x0a09, 0x09e4, 0x0994, 0x0928, 0x08f3, 0x08f6,
+ 0x08ee, 0x08da, 0x08af, 0x0870, 0x0858, 0x085b,
+ 0x0845, 0x0828, 0x0809, 0x07d3, 0x079f, 0x0782,
+ 0x0771, 0x0766, 0x075c, 0x074e, 0x0753, 0x0778,
+ 0x07af, 0x07ea, 0x080d, 0x0801, 0x07f5, 0x0819,
+ 0x0852, 0x0882, 0x08b2, 0x08df, 0x0900, 0x090e,
+ 0x08ed, 0x0882, 0x07cf, 0x0705, 0x0659, 0x05ce,
+ 0x0570, 0x0554, 0x0549, 0x051a, 0x04dc, 0x0497,
+ 0x043f, 0x03ed, 0x03ac, 0x0362, 0x0314, 0x02d7,
+ 0x02a4, 0x0267, 0x020c, 0x0193, 0x0120, 0x00cf,
+ 0x0086, 0x002d, 0xffcf, 0xff78, 0xff39, 0xff19,
+ 0xfef8, 0xfebb, 0xfe70, 0xfe25, 0xfdd4, 0xfd8a,
+ 0xfd60, 0xfd51, 0xfd3d, 0xfd21, 0xfcfa, 0xfca7,
+ 0xfc22, 0xfb8f, 0xfb16, 0xfac8, 0xfaa0, 0xfaa5,
+ 0xfac2, 0xfa9e, 0xfa37, 0xf9cf, 0xf963, 0xf906,
+ 0xf8e6, 0xf8c1, 0xf889, 0xf889, 0xf8a3, 0xf8a7,
+ 0xf89d, 0xf879, 0xf84a, 0xf830, 0xf82b, 0xf83d,
+ 0xf847, 0xf837, 0xf835, 0xf832, 0xf811, 0xf7f8,
+ 0xf7ec, 0xf7df, 0xf7db, 0xf7d2, 0xf7d9, 0xf817,
+ 0xf86e, 0xf89e, 0xf88e, 0xf866, 0xf858, 0xf875,
+ 0xf8c8, 0xf935, 0xf987, 0xf9ca, 0xfa0f, 0xfa46,
+ 0xfa75, 0xfa70, 0xfa27, 0xfa00, 0xfa00, 0xf9d7,
+ 0xf9ae, 0xf9b2, 0xf9c3, 0xf9d1, 0xf9e0, 0xfa03,
+ 0xfa38, 0xfa5f, 0xfa82, 0xfa95, 0xfa93, 0xfad0,
+ 0xfb44, 0xfba7, 0xfc18, 0xfca1, 0xfd27, 0xfdc7,
+ 0xfe56, 0xfeac, 0xfef5, 0xff19, 0xff0f, 0xff0d,
+ 0xff05, 0xfef1, 0xfef5, 0xfef7, 0xfefb, 0xff1a,
+ 0xff3d, 0xff62, 0xff74, 0xff60, 0xff65, 0xff9e,
+ 0xfff1, 0x006a, 0x00eb, 0x0151, 0x01bf, 0x022a,
+ 0x028b, 0x0302, 0x0350, 0x0354, 0x0368, 0x038d,
+ 0x0395, 0x03b8, 0x03e7, 0x03e3, 0x03d1, 0x03cd,
+ 0x03d2, 0x03ec, 0x0402, 0x040d, 0x0437, 0x046f,
+ 0x049e, 0x04c1, 0x04c1, 0x04b8, 0x04e1, 0x0533,
+ 0x057e, 0x0595, 0x057f, 0x056b, 0x0556, 0x053d,
+ 0x053a, 0x0521, 0x04dd, 0x04a4, 0x0472, 0x0441,
+ 0x0434, 0x0447, 0x047c, 0x04da, 0x051b, 0x051a,
+ 0x04ef, 0x049f, 0x043c, 0x03d2, 0x036e, 0x033d,
+ 0x033e, 0x033d, 0x0323, 0x02ee, 0x02b0, 0x028d,
+ 0x027a, 0x0264, 0x0267, 0x027e, 0x027a, 0x0251,
+ 0x0217, 0x01be, 0x015c, 0x0134, 0x0144, 0x0167,
+ 0x0197, 0x019c, 0x015b, 0x0119, 0x00e8, 0x00b5,
+ 0x0091, 0x0056, 0xffe4, 0xff6b, 0xff0d, 0xfeda,
+ 0xfed2, 0xfec6, 0xfea7, 0xfe80, 0xfe5f, 0xfe75,
+ 0xfeaa, 0xfeba, 0xfeb6, 0xfeb5, 0xfecb, 0xff09,
+ 0xff3f, 0xff55, 0xff6b, 0xff78, 0xff83, 0xff80,
+ 0xff39, 0xfedb, 0xfe8a, 0xfe2a, 0xfdf4, 0xfe03,
+ 0xfe15, 0xfe3a, 0xfe80, 0xfeb3, 0xfec6, 0xfeae,
+ 0xfe6d, 0xfe36, 0xfe15, 0xfe08, 0xfe06, 0xfde9,
+ 0xfdd8, 0xfe03, 0xfe19, 0xfdf1, 0xfdb2, 0xfd78,
+ 0xfd5f, 0xfd59, 0xfd2d, 0xfce0, 0xfc87, 0xfc30,
+ 0xfc06, 0xfc0b, 0xfc36, 0xfc90, 0xfcfb, 0xfd50,
+ 0xfd83, 0xfd99, 0xfdc2, 0xfe17, 0xfe5e, 0xfe72,
+ 0xfe75, 0xfe98, 0xfee3, 0xff20, 0xff19, 0xfecc,
+ 0xfe55, 0xfded, 0xfdc6, 0xfdc8, 0xfdd4, 0xfdee,
+ 0xfdfa, 0xfddd, 0xfdb0, 0xfd89, 0xfd6a, 0xfd57,
+ 0xfd40, 0xfd26, 0xfd3e, 0xfd8d, 0xfdca, 0xfdbd,
+ 0xfd72, 0xfd11, 0xfcd3, 0xfce7, 0xfd30, 0xfd78,
+ 0xfdb6, 0xfdfc, 0xfe45, 0xfe6e, 0xfe57, 0xfe17,
+ 0xfdf7, 0xfe2d, 0xfe9a, 0xfef6, 0xff2c, 0xff40,
+ 0xff28, 0xfef8, 0xfed1, 0xfe99, 0xfe4b, 0xfe18,
+ 0xfdfa, 0xfdde, 0xfdc9, 0xfdac, 0xfd91, 0xfd8c,
+ 0xfd80, 0xfd6d, 0xfd69, 0xfd6c, 0xfd73, 0xfd6b,
+ 0xfd46, 0xfd36, 0xfd3d, 0xfd3a, 0xfd42, 0xfd42,
+ 0xfd39, 0xfd6a, 0xfd9a, 0xfd6e, 0xfd2a, 0xfcf6,
+ 0xfca3, 0xfc36, 0xfbd9, 0xfbad, 0xfba4, 0xfba2,
+ 0xfba7, 0xfb97, 0xfb71, 0xfb75, 0xfb9f, 0xfbe0,
+ 0xfc53, 0xfcbd, 0xfcdd, 0xfcd0, 0xfcbd, 0xfcd4,
+ 0xfd31, 0xfdb8, 0xfe4a, 0xfed0, 0xff72, 0x0042,
+ 0x00d6, 0x00ce, 0x001e, 0xfeed, 0xfdf6, 0xfdc8,
+ 0xfe2a, 0xfed2, 0xff73, 0xffa7, 0xff53, 0xfe93,
+ 0xfdbb, 0xfd28, 0xfd02, 0xfd53, 0xfda5, 0xfd81,
+ 0xfd5a, 0xfd71, 0xfd96, 0xfe0b, 0xfec6, 0xff85,
+ 0x0069, 0x0124, 0x0152, 0x0137, 0x00fd, 0x00ba,
+ 0x00a3, 0x00c8, 0x0142, 0x01f4, 0x02b4, 0x037b,
+ 0x03d0, 0x038d, 0x034b, 0x0303, 0x027d, 0x01f5,
+ 0x0159, 0x00bf, 0x008d, 0x0092, 0x008f, 0x007e,
+ 0x0048, 0x0000, 0xffb2, 0xff83, 0xfff4, 0x0119,
+ 0x028d, 0x0390, 0x0302, 0x00c4, 0xfe64, 0xfd81,
+ 0xfe99, 0x00f2, 0x0345, 0x04c2, 0x0563, 0x058f,
+ 0x057d, 0x04dc, 0x03b5, 0x0291, 0x01aa, 0x0128,
+ 0x013a, 0x0145, 0x009d, 0xff99, 0xfee2, 0xfef9,
+ 0x0034, 0x0225, 0x0394, 0x039b, 0x028c, 0x018e,
+ 0x0153, 0x01b2, 0x0261, 0x0322, 0x0385, 0x036d,
+ 0x031b, 0x02b2, 0x0234, 0x01c9, 0x01ab, 0x01d0,
+ 0x01c8, 0x015e, 0x00e8, 0x00c2, 0x00e7, 0x010e,
+ 0x0110, 0x00e6, 0x009c, 0x00d3, 0x0208, 0x035f,
+ 0x03a2, 0x0285, 0x00be, 0xfff0, 0x00f1, 0x0281,
+ 0x031e, 0x0282, 0x014b, 0x0062, 0x0015, 0x0021,
+ 0x0058, 0x005b, 0x000d, 0xffc0, 0xff8b, 0xff99,
+ 0xffdf, 0xffd4, 0xff93, 0xffac, 0x0020, 0x00c0,
+ 0x0155, 0x01ac, 0x01d0, 0x01e7, 0x020b, 0x01f0,
+ 0x0149, 0x0061, 0xff95, 0xff89, 0x00a5, 0x0195,
+ 0x01b6, 0x022b, 0x02ea, 0x038c, 0x0453, 0x045d,
+ 0x037b, 0x02e7, 0x02c8, 0x0304, 0x03b7, 0x0469,
+ 0x04f7, 0x0519, 0x046c, 0x0378, 0x026f, 0x0183,
+ 0x0165, 0x018e, 0x019d, 0x0226, 0x02b7, 0x02e2,
+ 0x02b3, 0x01b5, 0x0053, 0xff9b, 0xffe0, 0x0105,
+ 0x021f, 0x027a, 0x02c1, 0x035c, 0x0444, 0x0549,
+ 0x0575, 0x04bb, 0x03e0, 0x02e7, 0x028e, 0x03ad,
+ 0x0557, 0x06b6, 0x0773, 0x06e1, 0x0554, 0x039d,
+ 0x01de, 0x00aa, 0x00aa, 0x016f, 0x0229, 0x0287,
+ 0x0278, 0x01ea, 0x00ff, 0x0009, 0xff3e, 0xfef3,
+ 0xff72, 0x0045, 0x00c2, 0x0090, 0xffb2, 0xfed6,
+ 0xfe81, 0xfea7, 0xff93, 0x00cc, 0x00e4, 0xfff8,
+ 0xff23, 0xfe6a, 0xfdca, 0xfdd0, 0xfe73, 0xff3f,
+ 0xfff5, 0x00aa, 0x0178, 0x01ee, 0x01b6, 0x0149,
+ 0x010b, 0x00fa, 0x0133, 0x01c1, 0x0257, 0x02b8,
+ 0x02fc, 0x0352, 0x0370, 0x02ed, 0x0228, 0x01d9,
+ 0x01df, 0x01eb, 0x02a2, 0x0415, 0x04d1, 0x0444,
+ 0x0352, 0x0266, 0x01fc, 0x02dc, 0x0463, 0x055e,
+ 0x057d, 0x04cf, 0x03f6, 0x03b2, 0x03e1, 0x046b,
+ 0x0587, 0x06ec, 0x0844, 0x0934, 0x08fc, 0x0799,
+ 0x0625, 0x0582, 0x05e9, 0x07a0, 0x0a88, 0x0d68,
+ 0x0f11, 0x0f21, 0x0dc7, 0x0c3d, 0x0ba8, 0x0be7,
+ 0x0cd5, 0x0e05, 0x0e7c, 0x0e66, 0x0e44, 0x0e1a,
+ 0x0e21, 0x0d95, 0x0ba1, 0x0935, 0x074a, 0x068f,
+ 0x075f, 0x0876, 0x08fe, 0x0918, 0x0872, 0x07a0,
+ 0x0709, 0x05ea, 0x04f7, 0x052a, 0x0633, 0x0815,
+ 0x0a29, 0x0b3f, 0x0b60, 0x0abb, 0x09ad, 0x08cf,
+ 0x0857, 0x0914, 0x0af0, 0x0c76, 0x0d77, 0x0dd3,
+ 0x0d65, 0x0dc2, 0x0e83, 0x0d81, 0x0b86, 0x0a28,
+ 0x0972, 0x099f, 0x0a85, 0x0b32, 0x0b25, 0x0a79,
+ 0x0996, 0x08b1, 0x07c1, 0x06c4, 0x0593, 0x04a4,
+ 0x0453, 0x03d3, 0x02fd, 0x025b, 0x01db, 0x019b,
+ 0x0182, 0x0108, 0x0022, 0xfee2, 0xfe08, 0xfed5,
+ 0x010e, 0x0361, 0x0383, 0xffef, 0xfc0c, 0xfc17,
+ 0xff29, 0x02a1, 0x04b3, 0x0403, 0x0212, 0x014d,
+ 0x0198, 0x0210, 0x022b, 0x018c, 0x00b7, 0x003f,
+ 0x0022, 0xfffe, 0xff30, 0xfdee, 0xfd04, 0xfc61,
+ 0xfbd7, 0xfbea, 0xfcc7, 0xfdc3, 0xfdfb, 0xfd09,
+ 0xfb13, 0xf885, 0xf664, 0xf5f1, 0xf74c, 0xf925,
+ 0xf9c8, 0xf893, 0xf65b, 0xf43d, 0xf2cb, 0xf214,
+ 0xf13d, 0xef1d, 0xebd4, 0xe8b4, 0xe706, 0xe7bc,
+ 0xeab8, 0xedeb, 0xeeb3, 0xec2b, 0xe770, 0xe285,
+ 0xdfa6, 0xe043, 0xe33b, 0xe5ab, 0xe5e6, 0xe420,
+ 0xe17c, 0xdf68, 0xde62, 0xde3a, 0xdf28, 0xe100,
+ 0xe36a, 0xe664, 0xe8f7, 0xe9be, 0xe8b3, 0xe70a,
+ 0xe62e, 0xe69e, 0xe82c, 0xeb05, 0xeec0, 0xf2dc,
+ 0xf7d1, 0xfcc5, 0xffc5, 0x0099, 0x006e, 0x00a2,
+ 0x01e9, 0x0431, 0x0785, 0x0ae6, 0x0d2f, 0x0f41,
+ 0x10e7, 0x10e5, 0x1073, 0x1041, 0x0f98, 0x0f0a,
+ 0x0e5b, 0x0cd7, 0x0b84, 0x0ab7, 0x09ec, 0x095e,
+ 0x097a, 0x0ae1, 0x0db8, 0x10fe, 0x132f, 0x12b7,
+ 0x0fa1, 0x0b50, 0x06ea, 0x04d7, 0x06a4, 0x0a75,
+ 0x0e90, 0x11c5, 0x12f5, 0x13ba, 0x1501, 0x1546,
+ 0x149f, 0x13aa, 0x1296, 0x12a9, 0x13f2, 0x1573,
+ 0x16e8, 0x17d2, 0x1867, 0x18f0, 0x1883, 0x1786,
+ 0x16e9, 0x1629, 0x155c, 0x150b, 0x14e7, 0x1483,
+ 0x13ae, 0x1298, 0x11aa, 0x11d5, 0x1420, 0x16f2,
+ 0x1800, 0x17d0, 0x1676, 0x1379, 0x10fc, 0x1078,
+ 0x116a, 0x138f, 0x158e, 0x157b, 0x1312, 0x0f5d,
+ 0x0c52, 0x0b42, 0x0b54, 0x0b8a, 0x0bc2, 0x0bc8,
+ 0x0b29, 0x09db, 0x0866, 0x06ab, 0x04a3, 0x03f7,
+ 0x04fd, 0x061f, 0x0765, 0x0902, 0x0a3a, 0x0b3b,
+ 0x0bc2, 0x0bc8, 0x0c83, 0x0d50, 0x0d31, 0x0cf9,
+ 0x0cd5, 0x0d38, 0x0ece, 0x0fe5, 0x0f4e, 0x0dad,
+ 0x0b5c, 0x0953, 0x07f8, 0x06b1, 0x0643, 0x068c,
+ 0x0643, 0x0602, 0x05af, 0x0430, 0x01f7, 0xff48,
+ 0xfd08, 0xfcef, 0xfdef, 0xfedd, 0x0028, 0x00ac,
+ 0x0033, 0x0071, 0x00e1, 0x0070, 0xff52, 0xfd14,
+ 0xf9ef, 0xf805, 0xf889, 0xfa13, 0xfb59, 0xfcad,
+ 0xfd57, 0xfc9e, 0xfbf9, 0xfb09, 0xf852, 0xf597,
+ 0xf462, 0xf4b6, 0xf698, 0xf827, 0xf8a4, 0xf98c,
+ 0xfa65, 0xfafb, 0xfb98, 0xfa80, 0xf7c4, 0xf496,
+ 0xf13b, 0xefa1, 0xf034, 0xf16d, 0xf33f, 0xf413,
+ 0xf2ca, 0xf138, 0xef3f, 0xed34, 0xecbd, 0xec2c,
+ 0xeb25, 0xeb42, 0xeb46, 0xea96, 0xe91f, 0xe651,
+ 0xe47d, 0xe4c1, 0xe5f6, 0xe7c5, 0xe7c7, 0xe57d,
+ 0xe47a, 0xe429, 0xe383, 0xe4f3, 0xe658, 0xe532,
+ 0xe4ab, 0xe5ad, 0xe657, 0xe733, 0xe84a, 0xe89e,
+ 0xe91e, 0xea9f, 0xec81, 0xee91, 0xf0ae, 0xf1fc,
+ 0xf2c7, 0xf3cf, 0xf452, 0xf40c, 0xf38f, 0xf2c7,
+ 0xf2c9, 0xf4b2, 0xf729, 0xf8f9, 0xf9f8, 0xf9a8,
+ 0xf88a, 0xf79a, 0xf69a, 0xf515, 0xf3a4, 0xf39a,
+ 0xf553, 0xf764, 0xf8a0, 0xf903, 0xf89d, 0xf7a4,
+ 0xf711, 0xf7b3, 0xf8df, 0xf9a7, 0xfa19, 0xf9d8,
+ 0xf8c0, 0xf84f, 0xf98a, 0xfc00, 0xfec3, 0x00eb,
+ 0x01f1, 0x0120, 0xfedf, 0xfd84, 0xfd78, 0xfd90,
+ 0xfe00, 0xfe80, 0xff46, 0x012e, 0x0266, 0x01d2,
+ 0x0046, 0xfd55, 0xfa77, 0xf9fd, 0xfb12, 0xfd23,
+ 0xffa0, 0x00c3, 0x0084, 0xff11, 0xfd1b, 0xfce0,
+ 0xfdc6, 0xfe65, 0xffca, 0x01e9, 0x0437, 0x06e2,
+ 0x08f3, 0x09ae, 0x090f, 0x07d6, 0x07ad, 0x0872,
+ 0x0912, 0x0963, 0x089e, 0x06a7, 0x04cf, 0x0445,
+ 0x05bb, 0x07f3, 0x08e4, 0x0834, 0x05d6, 0x0289,
+ 0xffe9, 0xfe48, 0xfdc0, 0xfdd1, 0xfd8d, 0xfe33,
+ 0x0030, 0x027c, 0x057a, 0x0829, 0x08d9, 0x0851,
+ 0x06f5, 0x048b, 0x021e, 0x0131, 0x021b, 0x02cc,
+ 0x0302, 0x0522, 0x0776, 0x0728, 0x0504, 0x01ac,
+ 0xfeb1, 0xfd99, 0xfcc2, 0xfc96, 0xfdb3, 0xfdad,
+ 0xfd1a, 0xfd35, 0xfcda, 0xfd14, 0xfe2a, 0xfe7e,
+ 0xfe2a, 0xfd19, 0xfb72, 0xfa2f, 0xf93a, 0xf8df,
+ 0xf8b8, 0xf83b, 0xf8c1, 0xf987, 0xf99d, 0xfa77,
+ 0xfadb, 0xfa57, 0xfad4, 0xfa7c, 0xf86f, 0xf6c6,
+ 0xf559, 0xf491, 0xf49b, 0xf42b, 0xf5da, 0xfa9c,
+ 0xfd7d, 0xfc80, 0xfa18, 0xf83b, 0xf77c, 0xf727,
+ 0xf72b, 0xf834, 0xf9f0, 0xfbaf, 0xfbb8, 0xf952,
+ 0xf694, 0xf3eb, 0xf254, 0xf4fa, 0xf8c8, 0xf97b,
+ 0xf9af, 0xf8fb, 0xf578, 0xf421, 0xf563, 0xf4dd,
+ 0xf50b, 0xf6bb, 0xf6b3, 0xf781, 0xfa78, 0xfc9c,
+ 0xfd39, 0xfb7d, 0xf928, 0xf9b5, 0xfa88, 0xfb17,
+ 0xfd27, 0xfdd8, 0xff50, 0x01ff, 0xfffd, 0xff6f,
+ 0x039c, 0x02a0, 0x00e7, 0x0401, 0x030c, 0x00f0,
+ 0x02d4, 0x026c, 0x021c, 0x040d, 0x02c3, 0x0012,
+ 0xfde1, 0xfc93, 0xfe3a, 0xff43, 0x00b7, 0x03e2,
+ 0x0171, 0xfe2f, 0x009a, 0x0113, 0x0140, 0x0425,
+ 0x02ac, 0x0102, 0x0282, 0x01a0, 0x02c3, 0x0709,
+ 0x0911, 0x0ac3, 0x08c3, 0x0221, 0x010f, 0x027f,
+ 0xff9c, 0x001f, 0x04fa, 0x064b, 0x0506, 0x05c9,
+ 0x087d, 0x09a5, 0x0844, 0x0772, 0x062e, 0x0263,
+ 0xfff5, 0x013f, 0x04ba, 0x0854, 0x09a3, 0x09fe,
+ 0x0ab5, 0x086c, 0x04a5, 0x0417, 0x0441, 0x02f7,
+ 0x037f, 0x04a9, 0x0254, 0xffe0, 0x015d, 0x01fe,
+ 0xff6d, 0xfeb6, 0xfeec, 0xfd40, 0xfdba, 0xffd0,
+ 0xffc9, 0xffc7, 0xff1c, 0xfc83, 0xfca1, 0xfec8,
+ 0xff16, 0xff3c, 0xff1f, 0xfdc5, 0xfdd0, 0xff90,
+ 0x01ab, 0x0300, 0x0277, 0x019d, 0x001b, 0xfd47,
+ 0xfce8, 0xfdd6, 0xfcc3, 0xfd1c, 0xfed1, 0xff90,
+ 0x00ee, 0x00b8, 0x0068, 0x04fb, 0x071a, 0x0324,
+ 0x01ec, 0x022b, 0xff2f, 0xfe8d, 0x01c1, 0x04db,
+ 0x062c, 0x04c8, 0x037f, 0x049c, 0x051f, 0x04b1,
+ 0x0521, 0x0685, 0x08d1, 0x0985, 0x08bf, 0x0acb,
+ 0x0c4c, 0x091f, 0x0799, 0x0a5e, 0x0b79, 0x0a0c,
+ 0x09ff, 0x0b9c, 0x0c4e, 0x0b69, 0x0af5, 0x0abf,
+ 0x08d8, 0x0821, 0x0ac6, 0x0c3b, 0x0c05, 0x0e13,
+ 0x0dcd, 0x0896, 0x0761, 0x0a84, 0x09dc, 0x092f,
+ 0x0c7a, 0x0de4, 0x0cfb, 0x0c9f, 0x0c5f, 0x0d7c,
+ 0x0e84, 0x0e8b, 0x1187, 0x1448, 0x11af, 0x0dd8,
+ 0x0c90, 0x0d3b, 0x0d13, 0x0ba0, 0x0e62, 0x10d8,
+ 0x0bb5, 0x0b23, 0x1189, 0x0ff0, 0x0c0c, 0x0df7,
+ 0x0c9e, 0x0a8b, 0x0c73, 0x0c10, 0x0b52, 0x0b65,
+ 0x08e7, 0x080d, 0x08bb, 0x083d, 0x07ee, 0x05d0,
+ 0x059d, 0x08b4, 0x0607, 0x0344, 0x0627, 0x0386,
+ 0xffd7, 0x0252, 0x001f, 0xfc8f, 0xff7e, 0x0074,
+ 0x0063, 0x03b4, 0x040d, 0x016d, 0xff9f, 0x00bf,
+ 0x04f1, 0x04f1, 0x036c, 0x0746, 0x0693, 0x020d,
+ 0x05a5, 0x08de, 0x063f, 0x0620, 0x05fe, 0x046f,
+ 0x059a, 0x0649, 0x06f3, 0x0857, 0x0618, 0x03b4,
+ 0x0324, 0x015e, 0x0240, 0x05ac, 0x06ea, 0x0730,
+ 0x065d, 0x0564, 0x067c, 0x0571, 0x04df, 0x0954,
+ 0x09e4, 0x061f, 0x07f7, 0x0aea, 0x09d6, 0x0b20,
+ 0x0e30, 0x0c6a, 0x0711, 0x048b, 0x066f, 0x080f,
+ 0x0985, 0x0e9b, 0x11fc, 0x0f90, 0x0d7a, 0x0d29,
+ 0x0b93, 0x0a61, 0x0919, 0x06c5, 0x0750, 0x0aaa,
+ 0x0c8b, 0x0d0f, 0x0e02, 0x0e4b, 0x0c66, 0x09ef,
+ 0x0a36, 0x0c4a, 0x0cb8, 0x0cd3, 0x0e16, 0x0ca0,
+ 0x0816, 0x067b, 0x0873, 0x088f, 0x0742, 0x08dd,
+ 0x09d1, 0x053e, 0x01ba, 0x0524, 0x07b4, 0x04d8,
+ 0x03e7, 0x0594, 0x0418, 0x0327, 0x06b8, 0x089c,
+ 0x05e7, 0x038e, 0x02c2, 0x0066, 0xfd78, 0xfdd5,
+ 0x00e1, 0x027e, 0x0197, 0x0037, 0xffac, 0xfed1,
+ 0xfbea, 0xf99d, 0xfafd, 0xfb5c, 0xf854, 0xf89d,
+ 0xfc31, 0xfc2a, 0xfb08, 0xfc85, 0xfb71, 0xf7a3,
+ 0xf807, 0xfb64, 0xfba7, 0xfa96, 0xfc52, 0xfea1,
+ 0xfec8, 0xfe51, 0xfebd, 0x0009, 0x00fe, 0xff0a,
+ 0xfb34, 0xf99f, 0xf92b, 0xf6dc, 0xf5e2, 0xf865,
+ 0xf9a1, 0xf7b7, 0xf706, 0xf7e2, 0xf66d, 0xf471,
+ 0xf510, 0xf4c9, 0xf2b6, 0xf43e, 0xf85a, 0xf957,
+ 0xf8c8, 0xf991, 0xf9b9, 0xf98b, 0xfa54, 0xf9a5,
+ 0xf840, 0xfa1d, 0xfc75, 0xfa74, 0xf7e5, 0xf8d6,
+ 0xf92b, 0xf81f, 0xfa6a, 0xfcc1, 0xfa18, 0xf78b,
+ 0xf740, 0xf3f8, 0xf0be, 0xf31d, 0xf523, 0xf25d,
+ 0xf196, 0xf5b7, 0xf7a4, 0xf503, 0xf47d, 0xf71f,
+ 0xf702, 0xf5f7, 0xf898, 0xfa07, 0xf838, 0xf986,
+ 0xfcdd, 0xfc77, 0xfb10, 0xfc1d, 0xfd4d, 0xfd6e,
+ 0xfd23, 0xfc4e, 0xfb28, 0xf9df, 0xf9ae, 0xfc1d,
+ 0xfe79, 0xfe23, 0xfdca, 0xfdb0, 0xfb36, 0xfa81,
+ 0xfdeb, 0xfe5a, 0xfc24, 0xfed8, 0x0201, 0x00b0,
+ 0x01a2, 0x03ba, 0x0082, 0xfe85, 0x0162, 0x0194,
+ 0x0006, 0x0237, 0x04c3, 0x04e1, 0x051a, 0x060c,
+ 0x05bb, 0x0353, 0x01da, 0x03a8, 0x04eb, 0x0378,
+ 0x02eb, 0x049d, 0x0659, 0x05d5, 0x038e, 0x03d5,
+ 0x05bd, 0x0478, 0x0488, 0x08e2, 0x0994, 0x067f,
+ 0x0639, 0x05af, 0x0353, 0x0492, 0x06c0, 0x0460,
+ 0x0271, 0x0554, 0x068b, 0x035f, 0x03a3, 0x062b,
+ 0x01dd, 0xfd35, 0xfffa, 0x0052, 0xfcae, 0xfeab,
+ 0x0127, 0xff11, 0xfee4, 0xfe78, 0xfb43, 0xfbe8,
+ 0xfd5f, 0xfaa9, 0xfaa2, 0xfdcc, 0xfd63, 0xfbf2,
+ 0xfd73, 0xfeb3, 0xfd8d, 0xfc22, 0xfc9e, 0xfe6c,
+ 0xff71, 0xff74, 0xff86, 0xff83, 0xfe55, 0xfc5c,
+ 0xfc3b, 0xfe42, 0xff22, 0xfdc6, 0xfba9, 0xfa82,
+ 0xfbeb, 0xfdb7, 0xfd95, 0xfe3a, 0xff86, 0xfee0,
+ 0xfe09, 0xfd61, 0xfcf0, 0xfeec, 0xffb2, 0xfdbb,
+ 0xfdf6, 0xfdf9, 0xfc10, 0xfca9, 0xfb82, 0xf7d2,
+ 0xf91b, 0xf9c8, 0xf60c, 0xf684, 0xf779, 0xf4aa,
+ 0xf5e1, 0xf657, 0xf0ee, 0xf0c5, 0xf530, 0xf414,
+ 0xf125, 0xf126, 0xf23f, 0xf379, 0xf3f8, 0xf51d,
+ 0xf744, 0xf711, 0xf5c6, 0xf544, 0xf535, 0xf7e7,
+ 0xf9b4, 0xf781, 0xf8dd, 0xfbe6, 0xf981, 0xf977,
+ 0xfd48, 0xfbdd, 0xf972, 0xfbc4, 0xfe4f, 0xfed5,
+ 0xfd5d, 0xfc74, 0xff70, 0x0092, 0xfded, 0xfece,
+ 0x015b, 0x00b5, 0xffed, 0xff89, 0xff13, 0x0055,
+ 0x008e, 0xff0c, 0xfffa, 0x0247, 0x01c3, 0xff01,
+ 0xfdd6, 0xff23, 0xff0e, 0xfb93, 0xf7e0, 0xf7f9,
+ 0xfb9f, 0xfce6, 0xfb16, 0xfce0, 0xfe69, 0xf951,
+ 0xf5fe, 0xf74e, 0xf6bb, 0xf73c, 0xf90a, 0xf870,
+ 0xfa8a, 0xfd14, 0xfc07, 0xfee2, 0x0169, 0xfdc8,
+ 0xff0e, 0x0259, 0xfe59, 0xfdd7, 0x01af, 0x00a4,
+ 0x01de, 0x0567, 0x02d1, 0x0185, 0x04de, 0x0505,
+ 0x027b, 0x0064, 0x006f, 0x037c, 0x039e, 0x0117,
+ 0x02b9, 0x047f, 0x034e, 0x043a, 0x0548, 0x045b,
+ 0x0551, 0x057d, 0x0222, 0x00e1, 0x02f5, 0x033a,
+ 0x01fa, 0x02f6, 0x0474, 0x02f0, 0x0002, 0xfeb5,
+ 0xfefd, 0xff12, 0xfe2a, 0xfed3, 0x0145, 0x00b2,
+ 0xff84, 0x02d9, 0x03a3, 0xfe29, 0xfab4, 0xfb13,
+ 0xfc5b, 0xfe8e, 0xff6a, 0x009d, 0x037a, 0x01d1,
+ 0xff98, 0x0357, 0x03cf, 0xffe8, 0x017f, 0x0392,
+ 0x016d, 0x01b9, 0x0325, 0x0263, 0x028c, 0x027a,
+ 0x0116, 0x0088, 0xffce, 0xff7d, 0x0124, 0x020d,
+ 0x0146, 0xffad, 0xfcd5, 0xfb52, 0xfcfa, 0xfdfa,
+ 0xfd0c, 0xfe54, 0x00de, 0xff84, 0xfd89, 0xfef9,
+ 0xfd48, 0xf929, 0xfbe8, 0xfed4, 0xfaa9, 0xfa72,
+ 0xff38, 0xfe6d, 0xfc53, 0xfcc9, 0xf9ae, 0xf6d0,
+ 0xf935, 0xfa4c, 0xf838, 0xf8a2, 0xfb4c, 0xfc10,
+ 0xfbbe, 0xfc67, 0xfabf, 0xf720, 0xf947, 0xfe61,
+ 0xfc99, 0xf91e, 0xfb11, 0xfbd9, 0xf98f, 0xfabd,
+ 0xfd4a, 0xfb7c, 0xf921, 0xfb12, 0xfc45, 0xf902,
+ 0xf830, 0xfbc5, 0xfc2c, 0xf956, 0xf8f6, 0xfb06,
+ 0xfd2c, 0xfd43, 0xfc00, 0xfd3a, 0xfe6c, 0xfcf1,
+ 0xfdd1, 0xffec, 0xfe68, 0xfd3c, 0xfe9a, 0xffb5,
+ 0x00b2, 0x0101, 0x0091, 0x00d6, 0xff94, 0xfd5d,
+ 0xfd6b, 0xfd93, 0xfd32, 0xfdf1, 0xfdc5, 0xfda4,
+ 0xff0f, 0xfe3d, 0xfbcb, 0xfc22, 0xfe1c, 0xfefe,
+ 0xfe78, 0xfd68, 0xfd97, 0xfec7, 0xfeae, 0xfcff,
+ 0xfbb7, 0xfc13, 0xfcd0, 0xfd65, 0xfeb8, 0xff25,
+ 0xfe41, 0xfde2, 0xfc29, 0xf9f4, 0xfbf3, 0xfed2,
+ 0xfe72, 0xfeae, 0x005c, 0x0051, 0xfef7, 0xfecb,
+ 0x00d6, 0x01c1, 0x0001, 0x00fe, 0x0359, 0x0104,
+ 0xff31, 0x0182, 0x027b, 0x0237, 0x029a, 0x01cd,
+ 0x00f8, 0x0060, 0xfefd, 0xfe05, 0xfd61, 0xfe29,
+ 0x0073, 0x005d, 0xff87, 0x0032, 0xff40, 0xfde2,
+ 0xfbbb, 0xf6f7, 0xf733, 0xfb6e, 0xfa70, 0xfa45,
+ 0xfd3c, 0xfa4a, 0xf64f, 0xf6a6, 0xf5d4, 0xf522,
+ 0xf4fa, 0xf318, 0xf4c9, 0xf73e, 0xf542, 0xf6a2,
+ 0xfa43, 0xf82b, 0xf70e, 0xf9a0, 0xf8f4, 0xf8b5,
+ 0xfc33, 0xfcb8, 0xfa82, 0xfba7, 0xfde1, 0xfd32,
+ 0xfd67, 0x0081, 0x018e, 0x0085, 0x014e, 0x0147,
+ 0xff7a, 0xffbe, 0x0051, 0xff8f, 0x007b, 0x01b6,
+ 0x0198, 0x0317, 0x054b, 0x04d7, 0x0372, 0x0411,
+ 0x0527, 0x0422, 0x02eb, 0x03c3, 0x0540, 0x071e,
+ 0x0865, 0x06aa, 0x0600, 0x07eb, 0x0585, 0x01ce,
+ 0x0434, 0x061a, 0x03d2, 0x04ad, 0x0759, 0x0638,
+ 0x04c5, 0x065c, 0x084f, 0x07df, 0x05fd, 0x060c,
+ 0x0791, 0x0706, 0x0615, 0x07b7, 0x09b3, 0x0a4d,
+ 0x0a0a, 0x083d, 0x065d, 0x06be, 0x0712, 0x0646,
+ 0x0733, 0x0857, 0x0764, 0x07ea, 0x0a7b, 0x0abd,
+ 0x08b3, 0x0740, 0x077a, 0x087c, 0x07fc, 0x06fb,
+ 0x07c7, 0x08ac, 0x09b3, 0x0ac6, 0x083d, 0x05be,
+ 0x07e4, 0x0941, 0x0882, 0x0842, 0x0653, 0x064c,
+ 0x090d, 0x0600, 0x016a, 0x039f, 0x0593, 0x047c,
+ 0x04df, 0x049b, 0x0420, 0x0502, 0x040a, 0x02af,
+ 0x027a, 0x01b6, 0x0225, 0x027d, 0x0188, 0x033f,
+ 0x04b5, 0x02d3, 0x0288, 0x02b5, 0x0148, 0x028f,
+ 0x0415, 0x02b1, 0x02f9, 0x0508, 0x0541, 0x0429,
+ 0x034e, 0x03b5, 0x04f0, 0x05dc, 0x067e, 0x05c0,
+ 0x04c6, 0x0583, 0x0467, 0x01c7, 0x0299, 0x0402,
+ 0x032c, 0x0306, 0x039b, 0x04c4, 0x0696, 0x069d,
+ 0x05f6, 0x05a0, 0x04fa, 0x0743, 0x09da, 0x06e2,
+ 0x0430, 0x061f, 0x06d9, 0x05af, 0x060c, 0x06e1,
+ 0x06be, 0x05d9, 0x0542, 0x056a, 0x0545, 0x05d3,
+ 0x073a, 0x069f, 0x0538, 0x0571, 0x055f, 0x04fc,
+ 0x063b, 0x07a3, 0x0730, 0x05a8, 0x05cc, 0x080b,
+ 0x088e, 0x06ec, 0x0797, 0x0a17, 0x0a11, 0x0821,
+ 0x081b, 0x09ff, 0x0a89, 0x09a1, 0x0990, 0x0948,
+ 0x0867, 0x09a7, 0x0c23, 0x0d8d, 0x0df1, 0x0bec,
+ 0x0921, 0x0a21, 0x0ba1, 0x0a17, 0x0aa4, 0x0d33,
+ 0x0c62, 0x0b44, 0x0cd3, 0x0d1f, 0x0b8e, 0x09d1,
+ 0x083d, 0x08fa, 0x0a47, 0x0845, 0x06bd, 0x07dc,
+ 0x0737, 0x05d6, 0x067a, 0x0607, 0x0409, 0x0323,
+ 0x02df, 0x028d, 0x0244, 0x01bb, 0x00dd, 0xff8a,
+ 0xff85, 0x015d, 0x0106, 0xfea6, 0xfedc, 0x000a,
+ 0xff76, 0xffec, 0x01ba, 0x013b, 0xff08, 0xff73,
+ 0x0215, 0x02c1, 0x0229, 0x01fc, 0x00cf, 0x0146,
+ 0x03c6, 0x02ee, 0x01fe, 0x0466, 0x0381, 0x0122,
+ 0x0366, 0x051f, 0x04c8, 0x05d7, 0x058d, 0x0461,
+ 0x0472, 0x0323, 0x023e, 0x03db, 0x045c, 0x02c9,
+ 0x0141, 0x0177, 0x02b2, 0x01c4, 0x00b1, 0x01aa,
+ 0x0087, 0xfee4, 0x0019, 0xffa3, 0xfe3e, 0xff31,
+ 0xfe26, 0xfc4f, 0xfe28, 0xff4b, 0xfdeb, 0xfe20,
+ 0xff02, 0xfe63, 0xfe13, 0xfe97, 0xfdc9, 0xfc51,
+ 0xfcf3, 0xfe4b, 0xfeb2, 0xffef, 0x006c, 0xff56,
+ 0x0046, 0x0119, 0xff64, 0xff93, 0x00d0, 0x0047,
+ 0x015b, 0x0301, 0x023d, 0x0223, 0x02b4, 0x012a,
+ 0xff98, 0x003a, 0x01f9, 0x0277, 0x0163, 0x0196,
+ 0x02da, 0x024e, 0x019f, 0x027f, 0x0253, 0x00d3,
+ 0x00a9, 0x019f, 0x01f3, 0x028e, 0x03b5, 0x0310,
+ 0x0185, 0x015d, 0x0154, 0x01f6, 0x039d, 0x02f7,
+ 0x0259, 0x04a0, 0x0513, 0x041d, 0x0513, 0x04a8,
+ 0x0446, 0x06f6, 0x07d9, 0x06b8, 0x0772, 0x0846,
+ 0x0868, 0x086d, 0x07f7, 0x0854, 0x0841, 0x0762,
+ 0x0844, 0x0882, 0x07fc, 0x09a8, 0x0985, 0x0828,
+ 0x0a21, 0x0a07, 0x0774, 0x08a3, 0x098c, 0x07f6,
+ 0x07f3, 0x07b2, 0x06d0, 0x0704, 0x06cd, 0x079a,
+ 0x0879, 0x0638, 0x0460, 0x0407, 0x032b, 0x03d1,
+ 0x0477, 0x03e2, 0x0463, 0x03df, 0x035d, 0x051f,
+ 0x043e, 0x027f, 0x044e, 0x04df, 0x0445, 0x0532,
+ 0x049c, 0x047e, 0x05bf, 0x04eb, 0x04c8, 0x0548,
+ 0x0397, 0x0388, 0x0470, 0x038e, 0x0440, 0x053a,
+ 0x041d, 0x03c1, 0x03dc, 0x03f0, 0x04e5, 0x04e2,
+ 0x0477, 0x04fa, 0x056b, 0x05c9, 0x0543, 0x04a9,
+ 0x0576, 0x049e, 0x0396, 0x0568, 0x0531, 0x0365,
+ 0x03c9, 0x0201, 0xff1e, 0xff11, 0xfdef, 0xfcbd,
+ 0xfd7b, 0xfb7b, 0xf98a, 0xfb64, 0xfbb9, 0xfa66,
+ 0xfaf2, 0xfb63, 0xfb26, 0xfb2d, 0xfb24, 0xfb76,
+ 0xfabc, 0xf918, 0xf95e, 0xf943, 0xf702, 0xf6e9,
+ 0xf885, 0xf81c, 0xf7d6, 0xf87f, 0xf750, 0xf5b5,
+ 0xf4fa, 0xf3ad, 0xf3da, 0xf61d, 0xf674, 0xf597,
+ 0xf688, 0xf773, 0xf809, 0xf981, 0xf98b, 0xf8cd,
+ 0xf9d7, 0xfa50, 0xfa16, 0xfb6d, 0xfba1, 0xfb12,
+ 0xfd2f, 0xfe0f, 0xfc4a, 0xfccd, 0xfda9, 0xfc84,
+ 0xfcd3, 0xfd6a, 0xfcca, 0xfd14, 0xfccf, 0xfc26,
+ 0xfc83, 0xfb53, 0xfaf0, 0xfd54, 0xfd3a, 0xfc73,
+ 0xff01, 0x0027, 0xfead, 0xfcd2, 0xfa8f, 0xfa6a,
+ 0xfb46, 0xfa45, 0xfadf, 0xfcd4, 0xfd3c, 0xfde0,
+ 0xfd87, 0xfbee, 0xfc7d, 0xfcbb, 0xfb8d, 0xfc41,
+ 0xfd46, 0xfd99, 0xfe8b, 0xfed7, 0xff6f, 0x0102,
+ 0x00da, 0xff75, 0xfed6, 0xfeed, 0xff8e, 0x0026,
+ 0x0090, 0x00f9, 0x0083, 0xff63, 0xff38, 0x0100,
+ 0x02a2, 0x01b9, 0x0197, 0x0316, 0x0194, 0x0054,
+ 0x0278, 0x01ce, 0xffb8, 0x0107, 0x014b, 0x0086,
+ 0x01e9, 0x01bd, 0x0026, 0x005c, 0x0087, 0xfff0,
+ 0xffa2, 0xff9e, 0x0057, 0x014e, 0x0226, 0x027f,
+ 0x0126, 0x0018, 0x012e, 0x028e, 0x0366, 0x0387,
+ 0x02c5, 0x02e5, 0x03cb, 0x0429, 0x045a, 0x03be,
+ 0x0205, 0x002f, 0xfe64, 0xfd6d, 0xfd5f, 0xfcb3,
+ 0xfc9d, 0xfe58, 0xfed3, 0xfc9b, 0xfb68, 0xfcc3,
+ 0xfce6, 0xfb42, 0xfb6a, 0xfc40, 0xfba4, 0xfc23,
+ 0xfdc1, 0xfe35, 0xfe0e, 0xfcfa, 0xfb04, 0xfaa5,
+ 0xfb91, 0xfc2e, 0xfc8f, 0xfc3a, 0xfb91, 0xfbb0,
+ 0xfb67, 0xfa2e, 0xf9c6, 0xfa4e, 0xfa40, 0xf9cd,
+ 0xf9ad, 0xf925, 0xf89c, 0xf96b, 0xfaaf, 0xfb56,
+ 0xfb3b, 0xfa4f, 0xfaa8, 0xfc69, 0xfbea, 0xfa61,
+ 0xfb11, 0xfb44, 0xf9c1, 0xf974, 0xf98e, 0xf883,
+ 0xf8b9, 0xfa32, 0xf980, 0xf757, 0xf6ea, 0xf76b,
+ 0xf7d5, 0xf88c, 0xf7b3, 0xf68e, 0xf7cb, 0xf7b4,
+ 0xf5d8, 0xf6ac, 0xf7a9, 0xf6ce, 0xf6e4, 0xf657,
+ 0xf548, 0xf68a, 0xf6f9, 0xf58a, 0xf5cc, 0xf6f1,
+ 0xf71c, 0xf681, 0xf586, 0xf622, 0xf826, 0xf8b1,
+ 0xf885, 0xf98a, 0xfa49, 0xf983, 0xf8c7, 0xf959,
+ 0xf9dd, 0xf97b, 0xf978, 0xfa01, 0xfa0f, 0xf978,
+ 0xf95c, 0xfa90, 0xfaea, 0xf940, 0xf8d8, 0xfa76,
+ 0xfb7c, 0xfb74, 0xfac9, 0xfa84, 0xfb95, 0xfc17,
+ 0xfbc7, 0xfc33, 0xfcce, 0xfd50, 0xfd4f, 0xfcb0,
+ 0xfd2b, 0xfde4, 0xfe4f, 0xff73, 0xfeee, 0xfdc4,
+ 0xfeb5, 0xfdd8, 0xfbfd, 0xfd72, 0xfe1e, 0xfd2c,
+ 0xfdd9, 0xfd56, 0xfca2, 0xfe8c, 0xff0f, 0xfdc5,
+ 0xfd8e, 0xfd8b, 0xfd79, 0xfd39, 0xfd09, 0xfe7c,
+ 0xffed, 0x006e, 0x01f0, 0x02ae, 0x00d5, 0xff11,
+ 0xfea1, 0xfe2b, 0xfd3d, 0xfc9a, 0xfcbb, 0xfcfd,
+ 0xfdb7, 0xfe6e, 0xfd2d, 0xfba9, 0xfb41, 0xfa58,
+ 0xf944, 0xf85c, 0xf7e7, 0xf84a, 0xf752, 0xf64b,
+ 0xf7f6, 0xf8dc, 0xf819, 0xf8ce, 0xf8af, 0xf700,
+ 0xf720, 0xf764, 0xf68a, 0xf702, 0xf7d0, 0xf7ab,
+ 0xf879, 0xfa6f, 0xfb61, 0xfb0e, 0xfb00, 0xfad2,
+ 0xf9bb, 0xf93c, 0xf984, 0xf93f, 0xf9a7, 0xfb46,
+ 0xfbc7, 0xfad3, 0xfaa0, 0xfb4c, 0xfac2, 0xfa74,
+ 0xfc4b, 0xfcb4, 0xfbb7, 0xfcb5, 0xfd26, 0xfc52,
+ 0xfca3, 0xfce1, 0xfcc9, 0xfd6c, 0xfd1d, 0xfbe8,
+ 0xfc40, 0xfd1e, 0xfd0a, 0xfd7b, 0xfe92, 0xffa2,
+ 0x000a, 0xffdf, 0x00df, 0x021f, 0x0247, 0x0259,
+ 0x0215, 0x01c9, 0x0280, 0x0316, 0x0305, 0x03e4,
+ 0x05aa, 0x0643, 0x059c, 0x057a, 0x0587, 0x04d2,
+ 0x04f7, 0x05c8, 0x0552, 0x04e9, 0x04cf, 0x0428,
+ 0x046b, 0x0497, 0x0416, 0x04ee, 0x054f, 0x041f,
+ 0x0470, 0x0584, 0x053c, 0x0598, 0x0677, 0x05fd,
+ 0x053a, 0x0510, 0x0524, 0x0546, 0x05e4, 0x0694,
+ 0x05aa, 0x048a, 0x053e, 0x057f, 0x03d7, 0x02b2,
+ 0x02b5, 0x029b, 0x032d, 0x0404, 0x03b2, 0x02ff,
+ 0x02aa, 0x0267, 0x0158, 0x0081, 0x017a, 0x0257,
+ 0x0234, 0x024c, 0x0261, 0x0214, 0x01ee, 0x01d1,
+ 0x0157, 0x0180, 0x0142, 0x005c, 0x017b, 0x01e8,
+ 0x00b2, 0x014c, 0x0124, 0xffad, 0xffe1, 0xfff9,
+ 0xfee2, 0xfebf, 0xfff3, 0x000a, 0xfe7b, 0xfe23,
+ 0xfee9, 0xfea9, 0xff24, 0x0120, 0x016c, 0x001c,
+ 0xfff2, 0x003c, 0xffc7, 0x0043, 0x01d7, 0x023a,
+ 0x0269, 0x034b, 0x0303, 0x02ff, 0x0430, 0x045d,
+ 0x03c2, 0x03c7, 0x042a, 0x042e, 0x03d7, 0x0382,
+ 0x0368, 0x02f9, 0x0248, 0x02bd, 0x030a, 0x02b2,
+ 0x031d, 0x0335, 0x039f, 0x045a, 0x03c3, 0x030f,
+ 0x02d9, 0x0360, 0x03fb, 0x03d6, 0x0467, 0x0498,
+ 0x03b6, 0x0395, 0x038e, 0x034b, 0x0427, 0x051e,
+ 0x052c, 0x058f, 0x0595, 0x053f, 0x05d5, 0x059a,
+ 0x0598, 0x0700, 0x0667, 0x04f1, 0x060c, 0x0772,
+ 0x0739, 0x0720, 0x06ec, 0x0639, 0x0653, 0x0626,
+ 0x05f8, 0x06ba, 0x0719, 0x07b0, 0x083b, 0x083d,
+ 0x0883, 0x0794, 0x0682, 0x0728, 0x0770, 0x0719,
+ 0x06f1, 0x0667, 0x0686, 0x0738, 0x0735, 0x066b,
+ 0x04f4, 0x046b, 0x045d, 0x0391, 0x0427, 0x043c,
+ 0x02a1, 0x01fe, 0x0171, 0x0112, 0x00bf, 0xffb7,
+ 0xffe2, 0x0028, 0xffc4, 0x004b, 0x00e3, 0x00a4,
+ 0x00a5, 0x00a3, 0xfffb, 0x010b, 0x02a5, 0x0243,
+ 0x02e4, 0x04a6, 0x04f9, 0x03c8, 0x02ae, 0x0362,
+ 0x0475, 0x04d0, 0x043d, 0x0379, 0x03fb, 0x0333,
+ 0x01d8, 0x0245, 0x017f, 0x0083, 0x0123, 0x00a0,
+ 0xffe8, 0x008d, 0x007f, 0x0001, 0x007c, 0x00be,
+ 0xfff7, 0xff0f, 0xfe7f, 0xfd68, 0xfd1d, 0xfe1f,
+ 0xfcd7, 0xfb49, 0xfca7, 0xfd71, 0xfceb, 0xfcc3,
+ 0xfc81, 0xfc4c, 0xfcdc, 0xfd93, 0xfced, 0xfbec,
+ 0xfbec, 0xfc4f, 0xfcae, 0xfd02, 0xfd81, 0xfd98,
+ 0xfde2, 0xff24, 0xff3d, 0xfe1f, 0xfe21, 0xff06,
+ 0xfedc, 0xfe82, 0xfee2, 0xfe6b, 0xfe65, 0xfec8,
+ 0xfe35, 0xfec6, 0xffaa, 0xff2e, 0xfe86, 0xff0b,
+ 0xfff7, 0xffa8, 0xffed, 0x0058, 0xff6c, 0xffa1,
+ 0x00b4, 0x00e9, 0x0032, 0xffe3, 0x00c5, 0x00f2,
+ 0x0126, 0x025e, 0x0263, 0x01b6, 0x0242, 0x0293,
+ 0x01c5, 0x0222, 0x0375, 0x0457, 0x0543, 0x0598,
+ 0x05fa, 0x06ae, 0x065d, 0x064e, 0x06fd, 0x07d7,
+ 0x08a0, 0x07f9, 0x07cc, 0x0997, 0x09cf, 0x0954,
+ 0x0a08, 0x094d, 0x08d3, 0x0947, 0x08e0, 0x0914,
+ 0x094d, 0x09ce, 0x0a4f, 0x09b7, 0x0a0d, 0x09c5,
+ 0x0932, 0x0936, 0x0774, 0x06d9, 0x0742, 0x065e,
+ 0x068c, 0x0722, 0x071f, 0x07a5, 0x07e6, 0x0703,
+ 0x0661, 0x0688, 0x0681, 0x067c, 0x05ea, 0x0588,
+ 0x05c8, 0x0510, 0x0530, 0x05f5, 0x0596, 0x05d7,
+ 0x0614, 0x052a, 0x0506, 0x0674, 0x072d, 0x069f,
+ 0x0702, 0x078f, 0x076e, 0x0870, 0x09a8, 0x08d0,
+ 0x0835, 0x09be, 0x0972, 0x074d, 0x078c, 0x092c,
+ 0x09ef, 0x0a21, 0x0a36, 0x09d1, 0x08f9, 0x084f,
+ 0x07b3, 0x077e, 0x0796, 0x0722, 0x0647, 0x059b,
+ 0x0518, 0x044c, 0x0442, 0x04a8, 0x03b6, 0x022f,
+ 0x012a, 0x00fb, 0x00d5, 0x0067, 0x0009, 0xfee3,
+ 0xfe47, 0xfe78, 0xfd9d, 0xfc71, 0xfc13, 0xfbb7,
+ 0xfb00, 0xfb63, 0xfae3, 0xf97e, 0xfa9a, 0xfa66,
+ 0xf9a8, 0xfb75, 0xfadb, 0xf98b, 0xf9fa, 0xfa08,
+ 0xfabd, 0xfb78, 0xfb2f, 0xfa65, 0xfa8f, 0xfbba,
+ 0xfb67, 0xfaf5, 0xfb53, 0xfafc, 0xfaea, 0xfb13,
+ 0xfb30, 0xfbf2, 0xfb9e, 0xfa86, 0xfb70, 0xfc0c,
+ 0xfb6f, 0xfd0e, 0xfe28, 0xfc9d, 0xfcfc, 0xfec7,
+ 0xfe7c, 0xfe76, 0xff98, 0xff6e, 0xff45, 0xff5e,
+ 0xfeb1, 0xfe87, 0xfe4c, 0xfe2c, 0xfe92, 0xfe8b,
+ 0xfe06, 0xfd0c, 0xfd0c, 0xfd62, 0xfcf5, 0xfcd4,
+ 0xfc49, 0xfc1f, 0xfc2d, 0xfbcc, 0xfcaa, 0xfd6d,
+ 0xfdb1, 0xfe14, 0xfe0a, 0xfe82, 0xff1d, 0xff0a,
+ 0xff03, 0xfff2, 0x00cd, 0x00a9, 0x00a3, 0x00bc,
+ 0x0144, 0x01ee, 0x0233, 0x028d, 0x0225, 0x023c,
+ 0x0284, 0x0198, 0x01f8, 0x02fe, 0x02c7, 0x02b2,
+ 0x0352, 0x037b, 0x0340, 0x03fe, 0x0476, 0x040b,
+ 0x03c2, 0x03a4, 0x03f1, 0x0386, 0x02c3, 0x02bc,
+ 0x025e, 0x02da, 0x0405, 0x03e2, 0x03ab, 0x040e,
+ 0x0443, 0x04ae, 0x052b, 0x0544, 0x0512, 0x04aa,
+ 0x04f2, 0x0546, 0x0535, 0x05e3, 0x058a, 0x047e,
+ 0x04a5, 0x04ae, 0x044d, 0x038c, 0x0343, 0x0308,
+ 0x01d7, 0x01fb, 0x0251, 0x01db, 0x01e1, 0x01e4,
+ 0x0271, 0x0282, 0x0220, 0x0257, 0x029b, 0x030d,
+ 0x0282, 0x0249, 0x02cb, 0x01d1, 0x0133, 0x0187,
+ 0x01d0, 0x0137, 0xffaf, 0xff5e, 0xfef9, 0xfdf3,
+ 0xfe74, 0xff90, 0xff8b, 0xfeb4, 0xfe85, 0xfe8e,
+ 0xfe43, 0xff1f, 0x0014, 0xff73, 0xff4a, 0x0050,
+ 0x0049, 0x0022, 0x0078, 0xffd1, 0xffb4, 0x0041,
+ 0xffde, 0xfee5, 0xfdd1, 0xfd4c, 0xfd8e, 0xfd58,
+ 0xfc0a, 0xfb7d, 0xfb6d, 0xfa7e, 0xfb09, 0xfbe6,
+ 0xfaee, 0xf9c2, 0xf92b, 0xf9e2, 0xfa08, 0xf92a,
+ 0xf9b4, 0xf973, 0xf83a, 0xf85e, 0xf86b, 0xf83d,
+ 0xf94a, 0xf9a6, 0xf8ba, 0xf8f6, 0xf906, 0xf88b,
+ 0xf909, 0xf8f9, 0xf8e8, 0xf977, 0xfa30, 0xfa60,
+ 0xf987, 0xf9fc, 0xfaa4, 0xfab4, 0xfb3f, 0xfae7,
+ 0xfb0f, 0xfb16, 0xfa7d, 0xfb76, 0xfbb2, 0xfaed,
+ 0xfaf2, 0xfb2e, 0xfb58, 0xfafb, 0xfa62, 0xfa58,
+ 0xfabf, 0xfaab, 0xfa39, 0xfa99, 0xfb29, 0xfb5f,
+ 0xfbc7, 0xfc2a, 0xfc07, 0xfbde, 0xfc0c, 0xfc14,
+ 0xfc8e, 0xfcf2, 0xfc35, 0xfbf2, 0xfc6e, 0xfbd8,
+ 0xfb1d, 0xfc0d, 0xfc93, 0xfc07, 0xfbea, 0xfb6b,
+ 0xfb9b, 0xfc41, 0xfc35, 0xfce2, 0xfce5, 0xfc4e,
+ 0xfce3, 0xfdcd, 0xfdce, 0xfd72, 0xfeaf, 0xff24,
+ 0xfe77, 0xff3d, 0xff1a, 0xfeda, 0xff80, 0xff5b,
+ 0xff8f, 0xffc8, 0xff8b, 0xff1b, 0xff18, 0xffdc,
+ 0xffaa, 0xff16, 0xfea0, 0xfddf, 0xfe21, 0xfe6d,
+ 0xfdbc, 0xfdea, 0xfe71, 0xfd2e, 0xfc8a, 0xfd28,
+ 0xfc83, 0xfc65, 0xfca4, 0xfb4b, 0xf9fc, 0xf9d6,
+ 0xfa5c, 0xfa4b, 0xfa37, 0xfacd, 0xfa8f, 0xf9ce,
+ 0xf956, 0xf97f, 0xfa10, 0xf9de, 0xf9e3, 0xfaaa,
+ 0xfa9c, 0xfa30, 0xfa6f, 0xfa4c, 0xfa97, 0xfb51,
+ 0xfabd, 0xfaba, 0xfaf8, 0xfa47, 0xfa94, 0xfb59,
+ 0xfba7, 0xfaf1, 0xfa5b, 0xfb53, 0xfb3d, 0xfad9,
+ 0xfc05, 0xfc8b, 0xfc15, 0xfc46, 0xfcba, 0xfca4,
+ 0xfd0e, 0xfd02, 0xfca2, 0xfd9c, 0xfdac, 0xfdcf,
+ 0xfeba, 0xfe17, 0xfe26, 0xff32, 0xff4d, 0xfec7,
+ 0xfedf, 0xffa0, 0xff09, 0xff2a, 0x007b, 0xffe5,
+ 0xffdf, 0x0120, 0x012a, 0x0145, 0x01bd, 0x0155,
+ 0x0151, 0x0242, 0x02b8, 0x02ba, 0x032a, 0x03c7,
+ 0x03d2, 0x03c6, 0x042a, 0x0427, 0x0448, 0x049c,
+ 0x046c, 0x044f, 0x043a, 0x04a9, 0x050b, 0x04d3,
+ 0x0507, 0x0491, 0x0456, 0x056a, 0x0575, 0x04ac,
+ 0x04cc, 0x0554, 0x052e, 0x04ff, 0x0543, 0x054e,
+ 0x0540, 0x0503, 0x04c9, 0x04ba, 0x04f3, 0x0528,
+ 0x0471, 0x044a, 0x0441, 0x0374, 0x03dc, 0x0432,
+ 0x03cc, 0x041e, 0x047b, 0x0429, 0x03ea, 0x04a0,
+ 0x04a4, 0x0415, 0x04a8, 0x04a3, 0x03f3, 0x03c1,
+ 0x0346, 0x0295, 0x026c, 0x0256, 0x0181, 0x00c8,
+ 0x0091, 0x009d, 0x00a0, 0xfff4, 0xffe4, 0x0039,
+ 0x0005, 0x0010, 0xff9c, 0xff91, 0x0057, 0x002f,
+ 0x002f, 0x004f, 0xfffe, 0x00b4, 0x0128, 0x00e6,
+ 0x0177, 0x019d, 0x018f, 0x01ac, 0x00bf, 0x00a0,
+ 0x0110, 0x00b7, 0x00b2, 0x00b5, 0x00f0, 0x00ca,
+ 0x009c, 0x0177, 0x00fc, 0x0091, 0x014b, 0x013e,
+ 0x01bc, 0x01c6, 0x00d7, 0x00c5, 0x00fa, 0x014f,
+ 0x0169, 0x0121, 0x0146, 0x0195, 0x01b9, 0x0226,
+ 0x0308, 0x0315, 0x0280, 0x02da, 0x038d, 0x03a2,
+ 0x0387, 0x0451, 0x0503, 0x0493, 0x04f6, 0x05e1,
+ 0x059d, 0x0542, 0x055d, 0x0597, 0x0611, 0x0623,
+ 0x0611, 0x0680, 0x066f, 0x0650, 0x06f0, 0x0740,
+ 0x072e, 0x0712, 0x074f, 0x07d6, 0x07a6, 0x0770,
+ 0x07e8, 0x082a, 0x0798, 0x0749, 0x07b4, 0x0728,
+ 0x064b, 0x063e, 0x0663, 0x0678, 0x0574, 0x0499,
+ 0x0503, 0x0464, 0x03d0, 0x0479, 0x03ea, 0x0321,
+ 0x0398, 0x0332, 0x029d, 0x0300, 0x02b9, 0x0266,
+ 0x024a, 0x0197, 0x016e, 0x01b2, 0x0171, 0x00c5,
+ 0x006c, 0x0094, 0x00e8, 0x0185, 0x017f, 0x0169,
+ 0x020e, 0x01e3, 0x018e, 0x01dc, 0x023c, 0x024f,
+ 0x01c4, 0x0257, 0x0348, 0x028b, 0x0265, 0x031f,
+ 0x02d9, 0x02ba, 0x0319, 0x02ae, 0x0200, 0x01ee,
+ 0x020f, 0x01fb, 0x01d6, 0x01c6, 0x019e, 0x014c,
+ 0x011a, 0x012a, 0x0117, 0x00e7, 0x00e2, 0x007c,
+ 0xfff1, 0xffaa, 0xff39, 0xff09, 0xfecf, 0xfe8d,
+ 0xfea4, 0xfe41, 0xfe50, 0xfe9c, 0xfe27, 0xfe10,
+ 0xfe0c, 0xfe4f, 0xfe97, 0xfddc, 0xfdf3, 0xfe7d,
+ 0xfdd2, 0xfd59, 0xfd92, 0xfd81, 0xfd44, 0xfd93,
+ 0xfe11, 0xfdf0, 0xfda4, 0xfde5, 0xfe2e, 0xfe1b,
+ 0xfe32, 0xfe06, 0xfda6, 0xfde2, 0xfdcb, 0xfd47,
+ 0xfd34, 0xfd22, 0xfd3a, 0xfd6b, 0xfd17, 0xfd64,
+ 0xfe1a, 0xfdd5, 0xfda4, 0xfdc3, 0xfdae, 0xfdd5,
+ 0xfd97, 0xfd63, 0xfdb2, 0xfe00, 0xfe7b, 0xfe79,
+ 0xfe70, 0xfee9, 0xfeb8, 0xfe7b, 0xfec7, 0xfeeb,
+ 0xfec3, 0xfee4, 0xffbc, 0x0094, 0x0167, 0x0226,
+ 0x0281, 0x0366, 0x0454, 0x0495, 0x051b, 0x059f,
+ 0x05bc, 0x062b, 0x067f, 0x06b2, 0x075b, 0x0759,
+ 0x0737, 0x07eb, 0x082f, 0x0824, 0x0832, 0x0845,
+ 0x087d, 0x0828, 0x07b6, 0x07da, 0x083c, 0x080c,
+ 0x076b, 0x078a, 0x07b7, 0x074b, 0x0709, 0x0701,
+ 0x06dd, 0x0666, 0x05f7, 0x0596, 0x0540, 0x0534,
+ 0x04e7, 0x049d, 0x04ae, 0x047d, 0x0445, 0x049a,
+ 0x04ec, 0x04d5, 0x0501, 0x04fb, 0x04c9, 0x0559,
+ 0x059a, 0x0580, 0x05b5, 0x05c9, 0x0621, 0x0695,
+ 0x06df, 0x077e, 0x080e, 0x083e, 0x086e, 0x08b7,
+ 0x095a, 0x09ed, 0x09d6, 0x0a20, 0x0a49, 0x09d7,
+ 0x0a44, 0x0a66, 0x0a31, 0x0a6a, 0x09d5, 0x09eb,
+ 0x0a70, 0x09f0, 0x09e2, 0x09c2, 0x090b, 0x0868,
+ 0x0798, 0x0714, 0x06f4, 0x065c, 0x0581, 0x0516,
+ 0x048b, 0x03c6, 0x0352, 0x02b8, 0x021d, 0x0186,
+ 0x00cd, 0x0083, 0x0059, 0x0022, 0x0000, 0xff88,
+ 0xfef2, 0xfeb4, 0xfe4a, 0xfde7, 0xfddb, 0xfd2a,
+ 0xfc9b, 0xfc74, 0xfb6d, 0xfa9f, 0xfa52, 0xf9d1,
+ 0xf979, 0xf920, 0xf8ef, 0xf910, 0xf97b, 0xf9e9,
+ 0xfa39, 0xfae2, 0xfb6c, 0xfbda, 0xfc78, 0xfd18,
+ 0xfd92, 0xfd86, 0xfdf3, 0xfe7f, 0xfe02, 0xfe04,
+ 0xfeab, 0xfeb6, 0xfe8d, 0xfe91, 0xfe64, 0xfe08,
+ 0xfd89, 0xfcf7, 0xfcd6, 0xfca0, 0xfc30, 0xfc19,
+ 0xfbd4, 0xfbb2, 0xfbc9, 0xfb8e, 0xfbc5, 0xfc0e,
+ 0xfb8b, 0xfb52, 0xfbbc, 0xfba0, 0xfba0, 0xfbe8,
+ 0xfb61, 0xfb3c, 0xfb60, 0xfb16, 0xfb7a, 0xfbe5,
+ 0xfbf2, 0xfc3a, 0xfc90, 0xfcb3, 0xfcae, 0xfd34,
+ 0xfdac, 0xfda0, 0xfde5, 0xfe57, 0xfeb1, 0xfec9,
+ 0xff13, 0xffac, 0xffad, 0xff87, 0xff99, 0xffa4,
+ 0xffa4, 0xffaa, 0x0007, 0x002f, 0x000e, 0x0082,
+ 0x0113, 0x0151, 0x01cb, 0x0262, 0x02df, 0x0350,
+ 0x0375, 0x0414, 0x04c7, 0x04aa, 0x04ea, 0x04e7,
+ 0x0484, 0x04ed, 0x04f2, 0x04c5, 0x04e2, 0x04d4,
+ 0x04d7, 0x046b, 0x0418, 0x0429, 0x03cf, 0x036e,
+ 0x034b, 0x0312, 0x02a3, 0x027c, 0x02cb, 0x0309,
+ 0x0324, 0x0360, 0x03ad, 0x03ac, 0x03c1, 0x0402,
+ 0x0419, 0x046c, 0x0450, 0x03db, 0x03fb, 0x03dc,
+ 0x035b, 0x02f9, 0x0271, 0x01da, 0x0178, 0x00e9,
+ 0x0029, 0xfffb, 0xffd8, 0xff52, 0xff61, 0xffdf,
+ 0xffd2, 0xff84, 0xffce, 0x0036, 0x0075, 0x00d7,
+ 0x0132, 0x01cb, 0x01e8, 0x01c6, 0x026f, 0x027c,
+ 0x0239, 0x025c, 0x021a, 0x01ce, 0x015c, 0x00fe,
+ 0x00d5, 0x0048, 0xfff9, 0xffc7, 0xff54, 0xff13,
+ 0xfed1, 0xfe7e, 0xfe79, 0xfe65, 0xfde9, 0xfd9a,
+ 0xfd77, 0xfd00, 0xfc91, 0xfc6a, 0xfbf0, 0xfb39,
+ 0xfafd, 0xfa77, 0xf9d9, 0xf9f6, 0xf980, 0xf8f3,
+ 0xf92a, 0xf923, 0xf90f, 0xf91e, 0xf931, 0xf920,
+ 0xf8f1, 0xf936, 0xf96d, 0xf986, 0xf9a4, 0xf983,
+ 0xf9a6, 0xf9f1, 0xfa0f, 0xfa2b, 0xfa1a, 0xf9d0,
+ 0xf9fc, 0xfa58, 0xfa02, 0xfa22, 0xfa9e, 0xfa34,
+ 0xfa10, 0xfa52, 0xfa60, 0xfa9f, 0xfa89, 0xfa34,
+ 0xfa78, 0xfab9, 0xfa5e, 0xfa44, 0xfa88, 0xfa73,
+ 0xfa38, 0xfa1f, 0xfa37, 0xfa63, 0xfa88, 0xfa77,
+ 0xfa36, 0xfa5b, 0xfa41, 0xf9a9, 0xf991, 0xf9bb,
+ 0xf983, 0xf925, 0xf92d, 0xf915, 0xf8cf, 0xf92e,
+ 0xf981, 0xf9da, 0xfa3c, 0xf9f8, 0xfa3c, 0xfacd,
+ 0xfadf, 0xfb42, 0xfbcf, 0xfc32, 0xfcbc, 0xfd4c,
+ 0xfd7d, 0xfd90, 0xfe06, 0xfe96, 0xfee5, 0xfee4,
+ 0xfed2, 0xfeea, 0xff21, 0xff58, 0xff7f, 0xffb8,
+ 0xffb6, 0xff7a, 0xff90, 0xffb1, 0xff9c, 0xffbf,
+ 0x000e, 0xffc9, 0xff51, 0xff3e, 0xfeca, 0xfe6e,
+ 0xfe65, 0xfdf5, 0xfda7, 0xfd78, 0xfd45, 0xfd26,
+ 0xfcb9, 0xfc41, 0xfc1b, 0xfc4f, 0xfc1d, 0xfb6e,
+ 0xfb34, 0xfb00, 0xfa91, 0xfa46, 0xfa02, 0xfa05,
+ 0xfa32, 0xf9f6, 0xf9ac, 0xfa0b, 0xfa6c, 0xfa12,
+ 0xf9d1, 0xfa30, 0xfa50, 0xf9c8, 0xf9b7, 0xfa26,
+ 0xfa43, 0xfa7d, 0xfaa8, 0xfaab, 0xfad7, 0xfaad,
+ 0xfa7e, 0xfa8b, 0xfa8b, 0xfac2, 0xfaea, 0xfab3,
+ 0xfad5, 0xfb37, 0xfb16, 0xfb3b, 0xfbb1, 0xfb92,
+ 0xfba2, 0xfbe5, 0xfbf8, 0xfc1a, 0xfbf3, 0xfbdb,
+ 0xfc16, 0xfc55, 0xfc58, 0xfc1f, 0xfc67, 0xfcf3,
+ 0xfd0b, 0xfcf0, 0xfd0c, 0xfd71, 0xfdb7, 0xfdc7,
+ 0xfdf8, 0xfe5d, 0xfedd, 0xff37, 0xff77, 0xfffd,
+ 0x00ac, 0x0129, 0x0191, 0x01ed, 0x022a, 0x0268,
+ 0x029d, 0x02f3, 0x0349, 0x0382, 0x03c9, 0x03a4,
+ 0x03a9, 0x03f0, 0x0399, 0x03a0, 0x03f5, 0x03df,
+ 0x03db, 0x039e, 0x037e, 0x03c9, 0x03c8, 0x03d8,
+ 0x042a, 0x041b, 0x041b, 0x04b3, 0x04ed, 0x04a3,
+ 0x04cb, 0x0517, 0x04ef, 0x049d, 0x0474, 0x0470,
+ 0x0476, 0x046c, 0x0462, 0x049a, 0x047a, 0x03dd,
+ 0x03aa, 0x03b4, 0x0388, 0x0332, 0x02d3, 0x02d0,
+ 0x02ea, 0x028e, 0x0215, 0x020d, 0x0226, 0x01e9,
+ 0x0181, 0x014a, 0x0141, 0x0105, 0x00d9, 0x00e4,
+ 0x00ce, 0x00f1, 0x0124, 0x0136, 0x0160, 0x0136,
+ 0x0112, 0x0142, 0x0168, 0x018d, 0x0198, 0x01a9,
+ 0x01db, 0x01ee, 0x01e3, 0x01aa, 0x0173, 0x017d,
+ 0x018c, 0x0167, 0x0130, 0x0137, 0x015e, 0x0142,
+ 0x012e, 0x015c, 0x0148, 0x0117, 0x012d, 0x0107,
+ 0x00cc, 0x00d4, 0x00ad, 0x003d, 0xffec, 0xffe5,
+ 0xffda, 0xffdb, 0x0044, 0x0094, 0x007d, 0x0095,
+ 0x00f5, 0x0103, 0x00e4, 0x0126, 0x0155, 0x014e,
+ 0x014e, 0x0133, 0x017d, 0x020d, 0x023a, 0x0295,
+ 0x030e, 0x02f6, 0x0306, 0x0382, 0x03a5, 0x03ca,
+ 0x0414, 0x041a, 0x0451, 0x04ab, 0x0502, 0x059a,
+ 0x05f4, 0x0625, 0x0692, 0x06c7, 0x06ed, 0x073b,
+ 0x073e, 0x0740, 0x075c, 0x0727, 0x073e, 0x07ae,
+ 0x07cc, 0x07ed, 0x0803, 0x07f1, 0x07fd, 0x07b2,
+ 0x0736, 0x0710, 0x06ed, 0x06cb, 0x06aa, 0x0623,
+ 0x05a4, 0x0576, 0x0518, 0x04b2, 0x047c, 0x0439,
+ 0x040c, 0x03d6, 0x039e, 0x03be, 0x03d3, 0x03bf,
+ 0x03d8, 0x03cf, 0x039e, 0x0391, 0x039c, 0x03af,
+ 0x038e, 0x032a, 0x030f, 0x0333, 0x0333, 0x0331,
+ 0x032d, 0x0331, 0x0375, 0x03b2, 0x03ba, 0x03bd,
+ 0x03d5, 0x03f1, 0x03fe, 0x042c, 0x0482, 0x04ab,
+ 0x0499, 0x049a, 0x04ad, 0x0490, 0x0448, 0x0405,
+ 0x03d0, 0x037f, 0x031e, 0x02cd, 0x0263, 0x01f8,
+ 0x01bb, 0x0161, 0x00f9, 0x00de, 0x00e9, 0x00d5,
+ 0x009d, 0x008f, 0x00a1, 0x003a, 0xffb2, 0xffa5,
+ 0xff5a, 0xfeab, 0xfe82, 0xfe9f, 0xfe67, 0xfe3e,
+ 0xfe42, 0xfe26, 0xfdfd, 0xfdcc, 0xfd88, 0xfd50,
+ 0xfd13, 0xfccd, 0xfcb1, 0xfca6, 0xfc76, 0xfc63,
+ 0xfc99, 0xfcc7, 0xfcd6, 0xfd19, 0xfd94, 0xfdf4,
+ 0xfe2f, 0xfe8a, 0xfefb, 0xff1c, 0xfef2, 0xfee9,
+ 0xfef8, 0xfedf, 0xfecc, 0xfedb, 0xfedb, 0xfed1,
+ 0xfecc, 0xfeac, 0xfe79, 0xfe4f, 0xfdfe, 0xfd92,
+ 0xfd6f, 0xfd70, 0xfd4e, 0xfd48, 0xfd61, 0xfd78,
+ 0xfdc0, 0xfe14, 0xfe4b, 0xfec9, 0xff54, 0xff73,
+ 0xff9d, 0xfff1, 0xfff6, 0x0000, 0x0067, 0x00eb,
+ 0x017b, 0x020e, 0x0291, 0x0327, 0x03bd, 0x0424,
+ 0x047e, 0x04da, 0x0519, 0x053b, 0x0554, 0x058e,
+ 0x060a, 0x0698, 0x06f6, 0x0746, 0x07c4, 0x0840,
+ 0x0874, 0x0892, 0x08ca, 0x08ed, 0x08db, 0x08ab,
+ 0x0876, 0x0851, 0x0821, 0x07ca, 0x0768, 0x0707,
+ 0x0695, 0x0622, 0x05d2, 0x059e, 0x0562, 0x051a,
+ 0x04dd, 0x04b1, 0x04a7, 0x04b6, 0x04c0, 0x0502,
+ 0x0584, 0x05cd, 0x05f6, 0x0646, 0x066d, 0x0687,
+ 0x06cc, 0x06bd, 0x0679, 0x0693, 0x06d3, 0x06e9,
+ 0x06f4, 0x0709, 0x0741, 0x077a, 0x0783, 0x079f,
+ 0x07cf, 0x07c4, 0x07b3, 0x07f1, 0x0842, 0x0849,
+ 0x083b, 0x086d, 0x089b, 0x0899, 0x08be, 0x08f0,
+ 0x08e7, 0x08ec, 0x08fe, 0x08d6, 0x08af, 0x08b9,
+ 0x08aa, 0x0853, 0x07f6, 0x07d7, 0x07b1, 0x0746,
+ 0x06cf, 0x0665, 0x05fc, 0x059f, 0x052c, 0x04a2,
+ 0x0424, 0x0393, 0x02d1, 0x01fb, 0x0136, 0x007e,
+ 0xff9d, 0xfeb5, 0xfe32, 0xfdda, 0xfd60, 0xfd0d,
+ 0xfce2, 0xfc9b, 0xfc55, 0xfc2e, 0xfc1a, 0xfc08,
+ 0xfbfa, 0xfc18, 0xfc60, 0xfcb4, 0xfd2c, 0xfda1,
+ 0xfdcd, 0xfdd2, 0xfdee, 0xfe18, 0xfe21, 0xfdf3,
+ 0xfdab, 0xfd5d, 0xfd11, 0xfcd4, 0xfc93, 0xfc5e,
+ 0xfc50, 0xfc36, 0xfc0d, 0xfc0d, 0xfc18, 0xfc1c,
+ 0xfc37, 0xfc55, 0xfc69, 0xfc78, 0xfc7d, 0xfc88,
+ 0xfca2, 0xfccb, 0xfcf2, 0xfcef, 0xfce8, 0xfd03,
+ 0xfcf2, 0xfcc3, 0xfcb4, 0xfc8e, 0xfc4c, 0xfc19,
+ 0xfbe0, 0xfbbb, 0xfba6, 0xfb74, 0xfb5f, 0xfb74,
+ 0xfb6e, 0xfb72, 0xfb8e, 0xfba3, 0xfbdc, 0xfc19,
+ 0xfc1c, 0xfc33, 0xfc72, 0xfc80, 0xfc80, 0xfcc6,
+ 0xfd1b, 0xfd2e, 0xfd2c, 0xfd59, 0xfd9d, 0xfdcf,
+ 0xfdfa, 0xfe3a, 0xfe96, 0xfefb, 0xff53, 0xffa4,
+ 0xfffb, 0x0058, 0x00b7, 0x010c, 0x0162, 0x01b4,
+ 0x01ce, 0x01d8, 0x0211, 0x0235, 0x0217, 0x01f0,
+ 0x01d6, 0x01bf, 0x0194, 0x014a, 0x011f, 0x012e,
+ 0x0152, 0x017c, 0x01af, 0x020f, 0x029d, 0x0309,
+ 0x0366, 0x03e4, 0x0449, 0x04a4, 0x0507, 0x0525,
+ 0x051e, 0x051a, 0x04e6, 0x0491, 0x040f, 0x0353,
+ 0x02a9, 0x0203, 0x0151, 0x00e1, 0x0082, 0x0016,
+ 0xffee, 0xffe4, 0xffdc, 0xfffb, 0x000a, 0x0020,
+ 0x0072, 0x00b4, 0x00d7, 0x0127, 0x019c, 0x01ff,
+ 0x023a, 0x0274, 0x02c1, 0x02eb, 0x02d1, 0x0289,
+ 0x0258, 0x0272, 0x0285, 0x0262, 0x025d, 0x0255,
+ 0x0209, 0x01ce, 0x01c5, 0x01d1, 0x01ec, 0x01f9,
+ 0x021e, 0x026e, 0x0292, 0x027d, 0x025b, 0x023e,
+ 0x0229, 0x01d3, 0x0141, 0x00ee, 0x00a2, 0xfffd,
+ 0xff4f, 0xfec9, 0xfe4f, 0xfdf5, 0xfdb9, 0xfd88,
+ 0xfd5a, 0xfd25, 0xfce8, 0xfc91, 0xfc45, 0xfc47,
+ 0xfc56, 0xfc3c, 0xfc30, 0xfc2a, 0xfc07, 0xfbe5,
+ 0xfbdc, 0xfbde, 0xfbc2, 0xfb86, 0xfb66, 0xfb57,
+ 0xfb33, 0xfb0e, 0xfade, 0xfac0, 0xfae3, 0xfae9,
+ 0xfaae, 0xfaae, 0xfae7, 0xfaef, 0xfae5, 0xfaf2,
+ 0xfae0, 0xfaa7, 0xfa93, 0xfabb, 0xfae8, 0xfb09,
+ 0xfb33, 0xfb42, 0xfb32, 0xfb3f, 0xfb54, 0xfb3f,
+ 0xfb28, 0xfb10, 0xfacb, 0xfa8d, 0xfa7d, 0xfa54,
+ 0xfa02, 0xf9b5, 0xf96e, 0xf929, 0xf8ff, 0xf8e8,
+ 0xf8cf, 0xf8c9, 0xf8d9, 0xf8d8, 0xf8cc, 0xf8e9,
+ 0xf924, 0xf95e, 0xf992, 0xf9ae, 0xf9d1, 0xfa14,
+ 0xfa32, 0xfa24, 0xfa42, 0xfa8f, 0xfad8, 0xfb17,
+ 0xfb71, 0xfc05, 0xfca5, 0xfd24, 0xfda0, 0xfe1e,
+ 0xfe86, 0xfede, 0xff0e, 0xff2f, 0xff6c, 0xff9d,
+ 0xffc0, 0xfff2, 0x000f, 0x001b, 0x0024, 0x000b,
+ 0xffde, 0xffa7, 0xff68, 0xff47, 0xff2c, 0xff10,
+ 0xff1c, 0xff0b, 0xfeb5, 0xfe74, 0xfe53, 0xfe22,
+ 0xfe0c, 0xfe2f, 0xfe41, 0xfe08, 0xfdc6, 0xfda8,
+ 0xfd61, 0xfcfe, 0xfcb6, 0xfc52, 0xfc00, 0xfbfd,
+ 0xfbd1, 0xfb80, 0xfb73, 0xfb5e, 0xfb31, 0xfb2d,
+ 0xfb0e, 0xfae3, 0xfafe, 0xfb1a, 0xfb27, 0xfb5e,
+ 0xfb8a, 0xfb98, 0xfbb9, 0xfbd5, 0xfbeb, 0xfc08,
+ 0xfc02, 0xfbf5, 0xfc02, 0xfbe2, 0xfba2, 0xfb8a,
+ 0xfb79, 0xfb5f, 0xfb4b, 0xfb15, 0xfad2, 0xfab7,
+ 0xfa95, 0xfa53, 0xfa31, 0xfa44, 0xfa59, 0xfa58,
+ 0xfa68, 0xfa97, 0xfad3, 0xfb10, 0xfb38, 0xfb47,
+ 0xfb79, 0xfbcb, 0xfc0c, 0xfc50, 0xfca5, 0xfd06,
+ 0xfd77, 0xfdce, 0xfe08, 0xfe4c, 0xfe8c, 0xfed1,
+ 0xff1c, 0xff43, 0xff6c, 0xffa7, 0xffb4, 0xffb0,
+ 0xffbc, 0xffcb, 0xfff6, 0x0027, 0x003a, 0x0050,
+ 0x006f, 0x0094, 0x00b2, 0x00b2, 0x00cb, 0x0117,
+ 0x015a, 0x01ac, 0x022f, 0x02b1, 0x031b, 0x0362,
+ 0x038e, 0x03d0, 0x0419, 0x044a, 0x046b, 0x048c,
+ 0x04bf, 0x04e1, 0x04cf, 0x04cb, 0x04dd, 0x04d5,
+ 0x04df, 0x04f4, 0x04d3, 0x04a7, 0x049a, 0x0488,
+ 0x0477, 0x047a, 0x0478, 0x0456, 0x0426, 0x0407,
+ 0x03ef, 0x03ca, 0x0398, 0x034e, 0x0302, 0x02d3,
+ 0x02a3, 0x0267, 0x024d, 0x0255, 0x0263, 0x0278,
+ 0x0295, 0x02aa, 0x029b, 0x025b, 0x021c, 0x0203,
+ 0x01e1, 0x01af, 0x01af, 0x01d5, 0x01e5, 0x01fc,
+ 0x0216, 0x01fc, 0x01d1, 0x01bc, 0x01af, 0x01b4,
+ 0x01a2, 0x016c, 0x015e, 0x0161, 0x0147, 0x0155,
+ 0x0175, 0x0169, 0x0165, 0x016b, 0x015c, 0x0169,
+ 0x017e, 0x0170, 0x016f, 0x0170, 0x0144, 0x0115,
+ 0x00f1, 0x00ae, 0x0077, 0x006c, 0x0060, 0x005f,
+ 0x0072, 0x0075, 0x0085, 0x00a0, 0x007c, 0x004e,
+ 0x0045, 0x0018, 0xffee, 0x000b, 0x0030, 0x0040,
+ 0x006b, 0x00a9, 0x00e8, 0x0121, 0x0161, 0x01bc,
+ 0x0217, 0x0261, 0x02a5, 0x02d9, 0x0318, 0x037d,
+ 0x03cd, 0x0409, 0x046a, 0x04d0, 0x0520, 0x057c,
+ 0x05d6, 0x0617, 0x0653, 0x068d, 0x06b7, 0x06d2,
+ 0x06d2, 0x06ba, 0x06ba, 0x06d4, 0x06dd, 0x06dd,
+ 0x06d3, 0x06b0, 0x0698, 0x068a, 0x0657, 0x0621,
+ 0x0602, 0x05e5, 0x05dc, 0x05e8, 0x05f1, 0x0601,
+ 0x0604, 0x05f2, 0x05ef, 0x05f9, 0x05ef, 0x05ca,
+ 0x0597, 0x0571, 0x0558, 0x0538, 0x051e, 0x04ff,
+ 0x04c8, 0x049d, 0x047d, 0x044e, 0x042c, 0x041e,
+ 0x041b, 0x042b, 0x0438, 0x043e, 0x044f, 0x0452,
+ 0x0451, 0x0463, 0x0465, 0x0461, 0x0471, 0x0468,
+ 0x0431, 0x03f4, 0x03d2, 0x03c3, 0x03b9, 0x03b3,
+ 0x03a2, 0x037e, 0x0366, 0x0355, 0x0327, 0x02f4,
+ 0x02d9, 0x02cf, 0x02d1, 0x02de, 0x02f0, 0x02e7,
+ 0x02b0, 0x0287, 0x026d, 0x0220, 0x01c7, 0x0183,
+ 0x0121, 0x00c1, 0x0082, 0x0049, 0x0023, 0xfff7,
+ 0xffb6, 0xff93, 0xff64, 0xff0e, 0xfedc, 0xfec2,
+ 0xfeae, 0xfed4, 0xff0a, 0xff28, 0xff66, 0xffad,
+ 0xffbf, 0xffbb, 0xffc9, 0xffc9, 0xffa9, 0xff9a,
+ 0xff88, 0xff55, 0xff31, 0xff05, 0xfea5, 0xfe5b,
+ 0xfe21, 0xfdcb, 0xfda6, 0xfda2, 0xfd7f, 0xfd6b,
+ 0xfd52, 0xfd19, 0xfcf4, 0xfcdc, 0xfccb, 0xfccc,
+ 0xfcb2, 0xfca5, 0xfcc8, 0xfcc7, 0xfca6, 0xfca8,
+ 0xfca2, 0xfc78, 0xfc4d, 0xfc2e, 0xfc12, 0xfc0f,
+ 0xfc36, 0xfc62, 0xfc82, 0xfcc2, 0xfd1a, 0xfd7e,
+ 0xfe18, 0xfecc, 0xff6e, 0x0014, 0x00b6, 0x0147,
+ 0x01da, 0x026b, 0x02fd, 0x038b, 0x03f5, 0x044c,
+ 0x04a4, 0x04e0, 0x04f5, 0x04fa, 0x050c, 0x052c,
+ 0x053c, 0x0549, 0x0563, 0x0574, 0x057e, 0x0583,
+ 0x0582, 0x059b, 0x05c9, 0x05ea, 0x0605, 0x0622,
+ 0x0637, 0x062f, 0x05ff, 0x05c7, 0x05a8, 0x05a0,
+ 0x059c, 0x058d, 0x0582, 0x056f, 0x0546, 0x052a,
+ 0x052b, 0x0532, 0x053b, 0x0531, 0x0528, 0x0541,
+ 0x0548, 0x0550, 0x058e, 0x05a3, 0x0587, 0x05ab,
+ 0x05e7, 0x0600, 0x0626, 0x0651, 0x066e, 0x06a9,
+ 0x0700, 0x074c, 0x077a, 0x07a9, 0x07f6, 0x083e,
+ 0x0879, 0x08c3, 0x0906, 0x093f, 0x0988, 0x09ce,
+ 0x0a24, 0x0a9c, 0x0afa, 0x0b38, 0x0b7c, 0x0ba0,
+ 0x0b7d, 0x0b33, 0x0aca, 0x0a2f, 0x0986, 0x08f0,
+ 0x085a, 0x07ae, 0x06f9, 0x064b, 0x05a5, 0x0501,
+ 0x0458, 0x03a3, 0x02e4, 0x0235, 0x01ac, 0x0144,
+ 0x00ff, 0x00db, 0x00c5, 0x00c1, 0x00c0, 0x0096,
+ 0x0055, 0x0021, 0xffe8, 0xffa5, 0xff73, 0xff43,
+ 0xff01, 0xfec3, 0xfe9b, 0xfe74, 0xfe45, 0xfe0d,
+ 0xfdce, 0xfd9f, 0xfd7e, 0xfd52, 0xfd31, 0xfd34,
+ 0xfd35, 0xfd2b, 0xfd3d, 0xfd77, 0xfdb8, 0xfde8,
+ 0xfe09, 0xfe19, 0xfe0a, 0xfde5, 0xfdb4, 0xfd84,
+ 0xfd6e, 0xfd6d, 0xfd76, 0xfd89, 0xfd83, 0xfd67,
+ 0xfd68, 0xfd60, 0xfd1d, 0xfcdd, 0xfcb8, 0xfc7a,
+ 0xfc1c, 0xfbd3, 0xfbb4, 0xfba6, 0xfb9b, 0xfba3,
+ 0xfbb5, 0xfbb8, 0xfba6, 0xfb86, 0xfb5c, 0xfb1d,
+ 0xfad3, 0xfa94, 0xfa6b, 0xfa78, 0xfabc, 0xfaf3,
+ 0xfb20, 0xfb69, 0xfbac, 0xfbe1, 0xfc0c, 0xfc13,
+ 0xfc1c, 0xfc4b, 0xfc6f, 0xfc87, 0xfcab, 0xfccd,
+ 0xfcf3, 0xfd23, 0xfd4b, 0xfd5d, 0xfd58, 0xfd51,
+ 0xfd50, 0xfd48, 0xfd56, 0xfd7f, 0xfdb2, 0xfe0f,
+ 0xfe92, 0xff01, 0xff61, 0xffd9, 0x005c, 0x00bb,
+ 0x0100, 0x016d, 0x01de, 0x021b, 0x0262, 0x02c8,
+ 0x0322, 0x037a, 0x03c8, 0x03fc, 0x042c, 0x0437,
+ 0x0410, 0x03ea, 0x03c1, 0x0386, 0x0353, 0x031d,
+ 0x02f2, 0x02e2, 0x02c1, 0x0295, 0x028f, 0x029c,
+ 0x029d, 0x0297, 0x0289, 0x0285, 0x0290, 0x0280,
+ 0x025e, 0x0254, 0x024d, 0x0234, 0x0215, 0x01e7,
+ 0x01bc, 0x01a7, 0x0189, 0x0172, 0x0177, 0x0184,
+ 0x01a0, 0x01c2, 0x01d7, 0x020d, 0x0253, 0x0273,
+ 0x029f, 0x02e6, 0x0311, 0x031e, 0x0325, 0x0334,
+ 0x0344, 0x033a, 0x0338, 0x033c, 0x0315, 0x02f7,
+ 0x02f8, 0x02d7, 0x02a9, 0x0277, 0x021a, 0x01cc,
+ 0x01a9, 0x0188, 0x0170, 0x015f, 0x0149, 0x0134,
+ 0x010b, 0x00da, 0x009f, 0x0039, 0xffd2, 0xff84,
+ 0xff1f, 0xfeb8, 0xfe67, 0xfdf2, 0xfd76, 0xfd3c,
+ 0xfd16, 0xfcc6, 0xfc75, 0xfc44, 0xfc08, 0xfbb3,
+ 0xfb6e, 0xfb41, 0xfb28, 0xfb12, 0xfaec, 0xfae3,
+ 0xfafe, 0xfb05, 0xfb1a, 0xfb52, 0xfb62, 0xfb53,
+ 0xfb52, 0xfb3d, 0xfb24, 0xfb2f, 0xfb3b, 0xfb2f,
+ 0xfb1c, 0xfb08, 0xfaf7, 0xfae6, 0xfacf, 0xfaac,
+ 0xfa8d, 0xfa81, 0xfa68, 0xfa36, 0xfa19, 0xfa02,
+ 0xf9d2, 0xf9b7, 0xf9c2, 0xf9cc, 0xf9c3, 0xf9a8,
+ 0xf974, 0xf928, 0xf8d2, 0xf880, 0xf83c, 0xf81a,
+ 0xf81a, 0xf814, 0xf80e, 0xf82a, 0xf856, 0xf886,
+ 0xf8c1, 0xf8eb, 0xf906, 0xf92b, 0xf955, 0xf987,
+ 0xf9c5, 0xfa0c, 0xfa5e, 0xfab2, 0xfb03, 0xfb5a,
+ 0xfbb0, 0xfc08, 0xfc63, 0xfcaa, 0xfce1, 0xfd1f,
+ 0xfd5e, 0xfd97, 0xfdd0, 0xfe18, 0xfe79, 0xfeda,
+ 0xff1e, 0xff65, 0xffb9, 0xffe3, 0xffd8, 0xffd3,
+ 0xffe0, 0xffd4, 0xffba, 0xffab, 0xff90, 0xff74,
+ 0xff6f, 0xff55, 0xff1e, 0xfef5, 0xfec4, 0xfe71,
+ 0xfe23, 0xfde8, 0xfda9, 0xfd61, 0xfd0e, 0xfcbf,
+ 0xfc86, 0xfc49, 0xfc09, 0xfbdc, 0xfbb0, 0xfb7c,
+ 0xfb5e, 0xfb57, 0xfb58, 0xfb5f, 0xfb6f, 0xfb93,
+ 0xfbb6, 0xfbb8, 0xfbbc, 0xfbd1, 0xfbd4, 0xfbc5,
+ 0xfbb2, 0xfb8f, 0xfb65, 0xfb3c, 0xfb01, 0xfab7,
+ 0xfa6c, 0xfa3b, 0xfa23, 0xf9fb, 0xf9cb, 0xf9b9,
+ 0xf9ae, 0xf991, 0xf97a, 0xf97e, 0xf997, 0xf9ac,
+ 0xf9bd, 0xf9e7, 0xfa19, 0xfa32, 0xfa43, 0xfa67,
+ 0xfa95, 0xfaae, 0xfaa1, 0xfa8c, 0xfa90, 0xfa99,
+ 0xfa92, 0xfa91, 0xfaa7, 0xfad1, 0xfb04, 0xfb2a,
+ 0xfb3e, 0xfb50, 0xfb6a, 0xfb7a, 0xfb7c, 0xfb91,
+ 0xfbbf, 0xfbdf, 0xfbee, 0xfc1d, 0xfc61, 0xfc8f,
+ 0xfcd0, 0xfd37, 0xfd79, 0xfd9c, 0xfddc, 0xfe15,
+ 0xfe28, 0xfe47, 0xfe8a, 0xfee6, 0xff52, 0xffc3,
+ 0x003d, 0x00c1, 0x0139, 0x01a3, 0x0201, 0x025e,
+ 0x02b2, 0x02de, 0x02ee, 0x0310, 0x0330, 0x0340,
+ 0x0362, 0x039a, 0x03d7, 0x0415, 0x0448, 0x0460,
+ 0x045d, 0x045a, 0x045c, 0x0446, 0x042a, 0x0427,
+ 0x0426, 0x042b, 0x0447, 0x0456, 0x0448, 0x0438,
+ 0x0422, 0x03fc, 0x03d5, 0x03b8, 0x039b, 0x0374,
+ 0x034a, 0x0332, 0x0326, 0x030b, 0x02e7, 0x02ca,
+ 0x02b3, 0x02a3, 0x029a, 0x0289, 0x0273, 0x025d,
+ 0x0230, 0x0203, 0x020f, 0x022c, 0x0229, 0x0229,
+ 0x022c, 0x021c, 0x0211, 0x0206, 0x01e9, 0x01dd,
+ 0x01d2, 0x01a9, 0x0190, 0x01a2, 0x01b0, 0x01a3,
+ 0x0191, 0x0178, 0x015a, 0x0146, 0x0129, 0x00f8,
+ 0x00de, 0x00f5, 0x0112, 0x0118, 0x0112, 0x010f,
+ 0x0103, 0x00de, 0x00b9, 0x00a6, 0x0099, 0x0084,
+ 0x005b, 0x001a, 0xffe3, 0xffb8, 0xff8b, 0xff72,
+ 0xff6b, 0xff59, 0xff4c, 0xff55, 0xff62, 0xff72,
+ 0xff9d, 0xffdf, 0x0026, 0x0088, 0x00ff, 0x0150,
+ 0x0189, 0x01d6, 0x021e, 0x0256, 0x0299, 0x02e2,
+ 0x0327, 0x0366, 0x03a0, 0x03e6, 0x0420, 0x044e,
+ 0x0492, 0x04ca, 0x04ee, 0x053c, 0x059d, 0x05da,
+ 0x0603, 0x061a, 0x0628, 0x0646, 0x0663, 0x066f,
+ 0x067d, 0x0695, 0x06ac, 0x06af, 0x06ae, 0x06b7,
+ 0x06b1, 0x06a9, 0x06a1, 0x0676, 0x0646, 0x0622,
+ 0x05e9, 0x05cd, 0x05df, 0x05d9, 0x05cd, 0x05db,
+ 0x05d4, 0x05b3, 0x0590, 0x0566, 0x0537, 0x050b,
+ 0x04ee, 0x04d0, 0x049e, 0x047b, 0x047b, 0x047d,
+ 0x047e, 0x0494, 0x04b5, 0x04c6, 0x04b7, 0x0498,
+ 0x047a, 0x044e, 0x042e, 0x0438, 0x044b, 0x0457,
+ 0x046a, 0x048d, 0x04b8, 0x04c6, 0x04c0, 0x04cc,
+ 0x04d1, 0x04ce, 0x04e4, 0x04e6, 0x04c9, 0x04c8,
+ 0x04d7, 0x04c8, 0x04a2, 0x046e, 0x0431, 0x03e2,
+ 0x0381, 0x032c, 0x02e6, 0x0297, 0x0250, 0x0228,
+ 0x0218, 0x021c, 0x0226, 0x0225, 0x021b, 0x0200,
+ 0x01c1, 0x016c, 0x0123, 0x00e4, 0x00ad, 0x0089,
+ 0x006b, 0x0051, 0x005c, 0x007b, 0x008c, 0x00a5,
+ 0x00bd, 0x00a2, 0x006b, 0x0046, 0x002b, 0x000c,
+ 0xfff1, 0xffe9, 0xfff5, 0x0006, 0x0018, 0x0021,
+ 0x0008, 0xffd2, 0xff95, 0xff50, 0xfef7, 0xfe99,
+ 0xfe50, 0xfe1c, 0xfde3, 0xfda0, 0xfd53, 0xfcf2,
+ 0xfc88, 0xfc22, 0xfbb8, 0xfb64, 0xfb32, 0xfaf4,
+ 0xfab8, 0xfaaf, 0xfab6, 0xfabb, 0xfae7, 0xfb38,
+ 0xfb9b, 0xfc13, 0xfc7e, 0xfcca, 0xfd1b, 0xfd80,
+ 0xfdea, 0xfe59, 0xfedb, 0xff73, 0x0002, 0x0071,
+ 0x00c9, 0x010d, 0x0140, 0x016b, 0x0190, 0x01c2,
+ 0x0201, 0x023b, 0x0281, 0x02c6, 0x02ed, 0x031f,
+ 0x0355, 0x0367, 0x0385, 0x03c2, 0x03f3, 0x042d,
+ 0x046c, 0x048e, 0x04be, 0x0508, 0x0537, 0x054d,
+ 0x056f, 0x0595, 0x0596, 0x056e, 0x0543, 0x0512,
+ 0x04c6, 0x047a, 0x0435, 0x03f3, 0x03ca, 0x039f,
+ 0x0368, 0x0351, 0x0351, 0x0358, 0x037f, 0x03b5,
+ 0x03f5, 0x043e, 0x047e, 0x04be, 0x0503, 0x054b,
+ 0x05ac, 0x060c, 0x0653, 0x06a2, 0x06d9, 0x06e8,
+ 0x071f, 0x077f, 0x07d9, 0x084b, 0x08cf, 0x093f,
+ 0x09b1, 0x0a28, 0x0a90, 0x0aed, 0x0b41, 0x0b7e,
+ 0x0b91, 0x0b7b, 0x0b5b, 0x0b31, 0x0af8, 0x0ac6,
+ 0x0a97, 0x0a51, 0x09fe, 0x09b4, 0x095d, 0x08de,
+ 0x0855, 0x07f0, 0x07a7, 0x076e, 0x074b, 0x0728,
+ 0x0708, 0x06fc, 0x06d2, 0x066c, 0x05f8, 0x057f,
+ 0x04fc, 0x0482, 0x0414, 0x039d, 0x031a, 0x028e,
+ 0x0203, 0x017b, 0x00fa, 0x008f, 0x003b, 0xfff4,
+ 0xffab, 0xff5e, 0xff1c, 0xfefd, 0xfef1, 0xfee3,
+ 0xfee5, 0xff12, 0xff54, 0xff82, 0xff9b, 0xffa6,
+ 0xff99, 0xff7e, 0xff65, 0xff4f, 0xff36, 0xff14,
+ 0xfef2, 0xfed2, 0xfeac, 0xfe81, 0xfe51, 0xfe1e,
+ 0xfdf9, 0xfdcf, 0xfd87, 0xfd4c, 0xfd25, 0xfcf5,
+ 0xfcd5, 0xfcc0, 0xfca9, 0xfcb2, 0xfcc5, 0xfcc1,
+ 0xfcc3, 0xfcc8, 0xfcc1, 0xfcb8, 0xfc97, 0xfc71,
+ 0xfc6e, 0xfc6e, 0xfc69, 0xfc68, 0xfc3a, 0xfbf5,
+ 0xfbd7, 0xfbc7, 0xfbb3, 0xfbb2, 0xfbbe, 0xfbc7,
+ 0xfbca, 0xfbc8, 0xfbc1, 0xfbb4, 0xfbb5, 0xfbd0,
+ 0xfbe9, 0xfbea, 0xfbd8, 0xfbae, 0xfb7b, 0xfb48,
+ 0xfb0a, 0xfae9, 0xfb05, 0xfb32, 0xfb60, 0xfbab,
+ 0xfc02, 0xfc52, 0xfcaf, 0xfd13, 0xfd6a, 0xfdc7,
+ 0xfe39, 0xfec0, 0xff59, 0xffe9, 0x0061, 0x00d3,
+ 0x0140, 0x01a0, 0x01ec, 0x021f, 0x024d, 0x026d,
+ 0x026f, 0x0279, 0x029d, 0x02b7, 0x02cb, 0x02ea,
+ 0x0307, 0x0322, 0x0337, 0x0339, 0x032f, 0x031e,
+ 0x0314, 0x030d, 0x02fc, 0x02ee, 0x02e0, 0x02c8,
+ 0x02bb, 0x02a5, 0x0274, 0x0255, 0x023d, 0x0204,
+ 0x01cd, 0x01a7, 0x017e, 0x0160, 0x0150, 0x0147,
+ 0x013d, 0x0118, 0x00de, 0x00b7, 0x00b7, 0x00e6,
+ 0x012f, 0x0175, 0x01af, 0x01d2, 0x01e9, 0x01fc,
+ 0x01f6, 0x01f5, 0x0223, 0x0271, 0x02d6, 0x0338,
+ 0x0379, 0x03ac, 0x03c8, 0x03b9, 0x03a9, 0x03ab,
+ 0x03b1, 0x03c2, 0x03d9, 0x03fe, 0x042a, 0x0433,
+ 0x042d, 0x043f, 0x0440, 0x0438, 0x044f, 0x0459,
+ 0x0430, 0x03eb, 0x038c, 0x02fc, 0x023a, 0x016b,
+ 0x00b5, 0x0032, 0xfff2, 0xffe6, 0xffdf, 0xffc3,
+ 0xff8d, 0xff51, 0xff1f, 0xfeef, 0xfec4, 0xfeb4,
+ 0xfead, 0xfe96, 0xfe79, 0xfe57, 0xfe26, 0xfddc,
+ 0xfd91, 0xfd5f, 0xfd2f, 0xfcfe, 0xfcf2, 0xfcee,
+ 0xfcc5, 0xfc92, 0xfc79, 0xfc76, 0xfc76, 0xfc72,
+ 0xfc7d, 0xfc92, 0xfc96, 0xfc83, 0xfc5a, 0xfc22,
+ 0xfbe8, 0xfba8, 0xfb68, 0xfb35, 0xfb0f, 0xfb07,
+ 0xfb1d, 0xfb25, 0xfb18, 0xfb08, 0xfae1, 0xfaaa,
+ 0xfa6f, 0xfa1e, 0xf9ca, 0xf99d, 0xf989, 0xf978,
+ 0xf96d, 0xf968, 0xf95f, 0xf948, 0xf926, 0xf909,
+ 0xf8f2, 0xf8cf, 0xf8b2, 0xf8b1, 0xf8b4, 0xf8a9,
+ 0xf8ae, 0xf8c6, 0xf8d9, 0xf8f0, 0xf91e, 0xf956,
+ 0xf98c, 0xf9d1, 0xfa3c, 0xfab9, 0xfb3b, 0xfbd2,
+ 0xfc71, 0xfceb, 0xfd48, 0xfda1, 0xfde9, 0xfe0f,
+ 0xfe14, 0xfe0b, 0xfe0a, 0xfe19, 0xfe32, 0xfe37,
+ 0xfe25, 0xfe28, 0xfe2e, 0xfe0a, 0xfdeb, 0xfde8,
+ 0xfdd8, 0xfdc6, 0xfdc6, 0xfdc5, 0xfdc9, 0xfdcb,
+ 0xfdb8, 0xfda9, 0xfdac, 0xfdae, 0xfdb5, 0xfdbe,
+ 0xfda4, 0xfd5e, 0xfd0f, 0xfcd9, 0xfcb3, 0xfc91,
+ 0xfc93, 0xfcc0, 0xfcf1, 0xfd0e, 0xfd1c, 0xfd23,
+ 0xfd1f, 0xfd0a, 0xfce8, 0xfcb8, 0xfc6d, 0xfc09,
+ 0xfb9e, 0xfb3d, 0xfaf7, 0xfacb, 0xfaad, 0xfa90,
+ 0xfa6d, 0xfa4a, 0xfa21, 0xf9e5, 0xf9ad, 0xf994,
+ 0xf984, 0xf97d, 0xf99a, 0xf9c5, 0xf9df, 0xf9e6,
+ 0xf9eb, 0xf9fa, 0xfa04, 0xf9f6, 0xf9d9, 0xf9bd,
+ 0xf9a7, 0xf99e, 0xf9a7, 0xf9b4, 0xf9be, 0xf9d3,
+ 0xf9ee, 0xfa08, 0xfa21, 0xfa2c, 0xfa2d, 0xfa32,
+ 0xfa2c, 0xfa21, 0xfa23, 0xfa1a, 0xfa0d, 0xfa19,
+ 0xfa26, 0xfa3e, 0xfa7e, 0xfac0, 0xfafe, 0xfb4d,
+ 0xfb8b, 0xfbc4, 0xfc18, 0xfc62, 0xfca9, 0xfd04,
+ 0xfd49, 0xfd74, 0xfda4, 0xfdd2, 0xfe01, 0xfe3b,
+ 0xfe7b, 0xfed1, 0xff2b, 0xff7a, 0xffd0, 0x0024,
+ 0x0082, 0x00f3, 0x0146, 0x0180, 0x01d5, 0x0220,
+ 0x024c, 0x028e, 0x02db, 0x030e, 0x033a, 0x0361,
+ 0x036b, 0x0360, 0x0354, 0x034f, 0x034c, 0x034c,
+ 0x034e, 0x0354, 0x036f, 0x0399, 0x03b6, 0x03ba,
+ 0x03ac, 0x039f, 0x0393, 0x0376, 0x0359, 0x0349,
+ 0x0325, 0x02ee, 0x02b3, 0x0272, 0x0244, 0x0229,
+ 0x0202, 0x01ee, 0x01f7, 0x01f1, 0x01eb, 0x01f9,
+ 0x01f2, 0x01d3, 0x01b3, 0x0194, 0x0179, 0x0162,
+ 0x0161, 0x017a, 0x0181, 0x0175, 0x0179, 0x017b,
+ 0x0175, 0x0178, 0x0179, 0x017e, 0x0194, 0x019f,
+ 0x01a9, 0x01cd, 0x01f4, 0x0209, 0x021b, 0x0223,
+ 0x021b, 0x0210, 0x01fb, 0x01ca, 0x0184, 0x0134,
+ 0x00d9, 0x0083, 0x003c, 0xffff, 0xffca, 0xffa9,
+ 0xff96, 0xff7c, 0xff5c, 0xff3c, 0xff13, 0xfedc,
+ 0xfeb4, 0xfea7, 0xfe94, 0xfe7a, 0xfe6c, 0xfe60,
+ 0xfe5a, 0xfe68, 0xfe7d, 0xfe9a, 0xfec6, 0xfeef,
+ 0xff1b, 0xff5e, 0xffa4, 0xffd1, 0xffe3, 0xffef,
+ 0x0009, 0x002c, 0x005d, 0x00b0, 0x0110, 0x016d,
+ 0x01ec, 0x0280, 0x02f7, 0x0356, 0x03b6, 0x040c,
+ 0x045d, 0x04b0, 0x04ff, 0x0545, 0x057b, 0x05a4,
+ 0x05c4, 0x05cc, 0x05c1, 0x05c3, 0x05c1, 0x05a7,
+ 0x0597, 0x0597, 0x058c, 0x057f, 0x0579, 0x056a,
+ 0x055c, 0x0562, 0x0574, 0x0589, 0x059e, 0x05b6,
+ 0x05d0, 0x05db, 0x05d1, 0x05b8, 0x0594, 0x0565,
+ 0x0532, 0x0501, 0x04d4, 0x04a8, 0x0472, 0x043e,
+ 0x0425, 0x041e, 0x0417, 0x0417, 0x0436, 0x0466,
+ 0x0489, 0x04ad, 0x04e0, 0x0506, 0x0520, 0x0540,
+ 0x055a, 0x055d, 0x0555, 0x0557, 0x0565, 0x056a,
+ 0x0561, 0x0558, 0x0546, 0x052c, 0x0522, 0x051b,
+ 0x0504, 0x04e3, 0x04b5, 0x047e, 0x044d, 0x041a,
+ 0x03eb, 0x03c5, 0x0393, 0x0357, 0x0328, 0x02f1,
+ 0x02ae, 0x0286, 0x0276, 0x0258, 0x023c, 0x022d,
+ 0x020f, 0x01e8, 0x01d4, 0x01c4, 0x01b3, 0x01a6,
+ 0x0189, 0x0164, 0x0153, 0x014e, 0x014d, 0x0161,
+ 0x0197, 0x01d6, 0x0208, 0x0240, 0x0271, 0x026e,
+ 0x0245, 0x0213, 0x01c0, 0x014f, 0x00d6, 0x004f,
+ 0xffd0, 0xff67, 0xff07, 0xfea6, 0xfe45, 0xfdf0,
+ 0xfdb1, 0xfd76, 0xfd3f, 0xfd1c, 0xfcfe, 0xfcd9,
+ 0xfcb0, 0xfc84, 0xfc5d, 0xfc35, 0xfc12, 0xfc15,
+ 0xfc22, 0xfc20, 0xfc3c, 0xfc67, 0xfc7d, 0xfca0,
+ 0xfcc8, 0xfcd9, 0xfcf7, 0xfd22, 0xfd32, 0xfd41,
+ 0xfd66, 0xfd95, 0xfdce, 0xfe0f, 0xfe4b, 0xfe90,
+ 0xfee4, 0xff2f, 0xff78, 0xffd2, 0x0034, 0x009d,
+ 0x0116, 0x018e, 0x01eb, 0x0236, 0x027b, 0x02c0,
+ 0x0307, 0x0357, 0x03ba, 0x041f, 0x046f, 0x04a3,
+ 0x04ac, 0x048c, 0x0468, 0x0445, 0x0419, 0x03f0,
+ 0x03c5, 0x0391, 0x036f, 0x035a, 0x0340, 0x0321,
+ 0x02f4, 0x02bf, 0x029b, 0x0282, 0x0261, 0x023a,
+ 0x0217, 0x01f2, 0x01ce, 0x01c1, 0x01ca, 0x01e4,
+ 0x0228, 0x028f, 0x02f7, 0x036d, 0x03f7, 0x0482,
+ 0x0516, 0x05a8, 0x0623, 0x069b, 0x070c, 0x0772,
+ 0x07dd, 0x083e, 0x0895, 0x08f4, 0x0940, 0x096d,
+ 0x0984, 0x098e, 0x09ac, 0x09d6, 0x09f2, 0x0a2d,
+ 0x0a84, 0x0abc, 0x0ae8, 0x0b16, 0x0b2c, 0x0b3b,
+ 0x0b4f, 0x0b62, 0x0b79, 0x0b83, 0x0b72, 0x0b4b,
+ 0x0b15, 0x0ae0, 0x0a9a, 0x0a2e, 0x09bb, 0x0942,
+ 0x08b6, 0x0843, 0x07d4, 0x0733, 0x0683, 0x05de,
+ 0x053a, 0x04a4, 0x0424, 0x03c7, 0x039f, 0x0380,
+ 0x0362, 0x0364, 0x0360, 0x0336, 0x030a, 0x02e9,
+ 0x02b8, 0x0270, 0x021f, 0x01cb, 0x0179, 0x012f,
+ 0x00e7, 0x009c, 0x0053, 0x0008, 0xffcd, 0xffb2,
+ 0xff9c, 0xff83, 0xff7b, 0xff75, 0xff61, 0xff43,
+ 0xff2c, 0xff2a, 0xff29, 0xff10, 0xfef9, 0xfeec,
+ 0xfee4, 0xfee6, 0xfed4, 0xfeab, 0xfea2, 0xfe9d,
+ 0xfe7c, 0xfe69, 0xfe68, 0xfe60, 0xfe67, 0xfe74,
+ 0xfe6d, 0xfe67, 0xfe72, 0xfe71, 0xfe55, 0xfe3a,
+ 0xfe2a, 0xfe17, 0xfe0e, 0xfe14, 0xfe10, 0xfe00,
+ 0xfdcf, 0xfd71, 0xfd1b, 0xfcc8, 0xfc52, 0xfbdc,
+ 0xfb6e, 0xfafa, 0xfaa6, 0xfa5d, 0xfa0f, 0xf9d9,
+ 0xf9a3, 0xf974, 0xf972, 0xf968, 0xf953, 0xf973,
+ 0xf9a2, 0xf9c9, 0xfa0d, 0xfa5c, 0xfaa0, 0xfae3,
+ 0xfb1d, 0xfb62, 0xfbaa, 0xfbe0, 0xfc34, 0xfca5,
+ 0xfcfb, 0xfd4c, 0xfdaa, 0xfdef, 0xfe34, 0xfe93,
+ 0xfef2, 0xff4f, 0xffb9, 0x001b, 0x005f, 0x0078,
+ 0x0087, 0x00bb, 0x0108, 0x015d, 0x01c7, 0x0233,
+ 0x0282, 0x02b6, 0x02ce, 0x02b9, 0x0288, 0x025d,
+ 0x024b, 0x0251, 0x0261, 0x0272, 0x026d, 0x0237,
+ 0x01e0, 0x0181, 0x012a, 0x00f8, 0x0104, 0x013e,
+ 0x017f, 0x0194, 0x0164, 0x0103, 0x0083, 0xfffa,
+ 0xff98, 0xff75, 0xff85, 0xffc4, 0x001b, 0x0071,
+ 0x00bc, 0x00f3, 0x010d, 0x0116, 0x011b, 0x0130,
+ 0x0166, 0x01bd, 0x0220, 0x0284, 0x02eb, 0x034d,
+ 0x03a6, 0x0409, 0x047d, 0x04ec, 0x054a, 0x058d,
+ 0x05a0, 0x057b, 0x0530, 0x04d9, 0x0493, 0x045d,
+ 0x043e, 0x0442, 0x0455, 0x0462, 0x0464, 0x0442,
+ 0x0400, 0x03ab, 0x033a, 0x02bf, 0x0256, 0x01fd,
+ 0x01b6, 0x0171, 0x011c, 0x00da, 0x00bc, 0x00ac,
+ 0x00b3, 0x00cd, 0x00dd, 0x00db, 0x00b7, 0x0065,
+ 0xfffa, 0xff76, 0xfee1, 0xfe55, 0xfdeb, 0xfdbb,
+ 0xfdb9, 0xfdc4, 0xfddd, 0xfded, 0xfdca, 0xfd8f,
+ 0xfd53, 0xfd0b, 0xfcc2, 0xfc78, 0xfc3b, 0xfc29,
+ 0xfc36, 0xfc56, 0xfc86, 0xfcb6, 0xfced, 0xfd22,
+ 0xfd40, 0xfd5c, 0xfd6a, 0xfd49, 0xfd20, 0xfcfb,
+ 0xfcc4, 0xfc9b, 0xfc7b, 0xfc3f, 0xfc01, 0xfbd2,
+ 0xfba1, 0xfb73, 0xfb3c, 0xfaf0, 0xfa97, 0xfa36,
+ 0xf9d3, 0xf967, 0xf8fc, 0xf8b5, 0xf88a, 0xf862,
+ 0xf84e, 0xf85a, 0xf876, 0xf88e, 0xf895, 0xf892,
+ 0xf88e, 0xf889, 0xf895, 0xf8b2, 0xf8d5, 0xf905,
+ 0xf93d, 0xf976, 0xf9b5, 0xf9f8, 0xfa4a, 0xfaa4,
+ 0xfaf6, 0xfb51, 0xfba9, 0xfbdb, 0xfbf9, 0xfc11,
+ 0xfc23, 0xfc49, 0xfc76, 0xfc9f, 0xfcd8, 0xfd0a,
+ 0xfd32, 0xfd68, 0xfd8f, 0xfda5, 0xfdba, 0xfdbf,
+ 0xfdcb, 0xfde9, 0xfe02, 0xfe22, 0xfe36, 0xfe28,
+ 0xfe1e, 0xfe15, 0xfe02, 0xfdf5, 0xfde5, 0xfde6,
+ 0xfdfa, 0xfdf7, 0xfdf8, 0xfe04, 0xfdea, 0xfdd2,
+ 0xfdc9, 0xfd9a, 0xfd79, 0xfd7c, 0xfd63, 0xfd31,
+ 0xfcf6, 0xfcb0, 0xfc79, 0xfc3c, 0xfbef, 0xfbb3,
+ 0xfb6c, 0xfb15, 0xfadc, 0xfab6, 0xfa9c, 0xfa9f,
+ 0xfaa9, 0xfab9, 0xfac4, 0xfab9, 0xfab3, 0xfaa2,
+ 0xfa58, 0xf9f5, 0xf996, 0xf934, 0xf8ea, 0xf8bd,
+ 0xf8a2, 0xf8ab, 0xf8c5, 0xf8d5, 0xf8f4, 0xf919,
+ 0xf92b, 0xf930, 0xf92b, 0xf927, 0xf939, 0xf94e,
+ 0xf965, 0xf98c, 0xf9a6, 0xf9b3, 0xf9cd, 0xf9d8,
+ 0xf9c4, 0xf9b3, 0xf99c, 0xf971, 0xf94a, 0xf92d,
+ 0xf910, 0xf90a, 0xf921, 0xf944, 0xf969, 0xf99a,
+ 0xf9e7, 0xfa3f, 0xfa81, 0xfaa0, 0xfab1, 0xfacd,
+ 0xfaf0, 0xfb09, 0xfb20, 0xfb45, 0xfb72, 0xfb9b,
+ 0xfbce, 0xfc1d, 0xfc7f, 0xfcdf, 0xfd4e, 0xfdcd,
+ 0xfe4c, 0xfed8, 0xff6d, 0xfff7, 0x007f, 0x0105,
+ 0x0166, 0x019b, 0x01ba, 0x01cc, 0x01d9, 0x01f5,
+ 0x0228, 0x025e, 0x028d, 0x02bd, 0x02e3, 0x0309,
+ 0x033c, 0x0362, 0x038b, 0x03d9, 0x042b, 0x047a,
+ 0x04d1, 0x0504, 0x0505, 0x04e2, 0x0498, 0x043f,
+ 0x03e8, 0x0391, 0x0356, 0x0328, 0x02f1, 0x02d0,
+ 0x02b5, 0x0288, 0x0263, 0x0234, 0x01f8, 0x01de,
+ 0x01cd, 0x01af, 0x01af, 0x01c7, 0x01de, 0x01f9,
+ 0x020c, 0x020c, 0x0211, 0x0225, 0x023b, 0x0249,
+ 0x0253, 0x025d, 0x025c, 0x0253, 0x0251, 0x024c,
+ 0x023d, 0x022c, 0x021a, 0x01fc, 0x01c5, 0x0181,
+ 0x0134, 0x00e0, 0x00a0, 0x006f, 0x0036, 0x000d,
+ 0xfffc, 0xffef, 0xfff6, 0x0007, 0x000a, 0x0000,
+ 0xffd7, 0xff91, 0xff4b, 0xff0a, 0xfed1, 0xfea0,
+ 0xfe6f, 0xfe4f, 0xfe3a, 0xfe15, 0xfdf1, 0xfdda,
+ 0xfdcd, 0xfdda, 0xfdec, 0xfdff, 0xfe2a, 0xfe5b,
+ 0xfe96, 0xfedf, 0xff0e, 0xff35, 0xff7f, 0xffcc,
+ 0x0013, 0x0062, 0x0094, 0x00ac, 0x00cf, 0x00f2,
+ 0x010d, 0x0132, 0x0167, 0x01b5, 0x0218, 0x027e,
+ 0x02d7, 0x0322, 0x0354, 0x036b, 0x0384, 0x03b0,
+ 0x03dc, 0x0406, 0x043f, 0x047e, 0x04b8, 0x04e0,
+ 0x04fa, 0x0517, 0x0528, 0x0529, 0x0533, 0x0540,
+ 0x0550, 0x0564, 0x055f, 0x054b, 0x0542, 0x052d,
+ 0x0502, 0x04d0, 0x0496, 0x0461, 0x0436, 0x0409,
+ 0x03d7, 0x039f, 0x036e, 0x0361, 0x0377, 0x03a4,
+ 0x03df, 0x0411, 0x043f, 0x0477, 0x04a0, 0x04bd,
+ 0x04df, 0x04ff, 0x0519, 0x053b, 0x0566, 0x058d,
+ 0x05a9, 0x05c2, 0x05d3, 0x05df, 0x05f7, 0x0600,
+ 0x05ee, 0x05e6, 0x05d7, 0x05a5, 0x057b, 0x055b,
+ 0x053d, 0x0541, 0x055a, 0x0568, 0x056e, 0x0550,
+ 0x0510, 0x04ce, 0x0476, 0x0410, 0x03d6, 0x03bd,
+ 0x03b2, 0x03ba, 0x03c2, 0x03bb, 0x03b5, 0x03af,
+ 0x03af, 0x03c8, 0x03f0, 0x041a, 0x044a, 0x047f,
+ 0x04a4, 0x04ad, 0x049f, 0x0486, 0x0468, 0x0450,
+ 0x0442, 0x0436, 0x0421, 0x03f5, 0x03ac, 0x0343,
+ 0x02b9, 0x021d, 0x0182, 0x00f9, 0x0094, 0x0047,
+ 0xfffe, 0xffc5, 0xff96, 0xff5f, 0xff39, 0xff2e,
+ 0xff2c, 0xff37, 0xff42, 0xff34, 0xff20, 0xff0a,
+ 0xfee0, 0xfeb2, 0xfe87, 0xfe4a, 0xfdf8, 0xfd95,
+ 0xfd22, 0xfca4, 0xfc1e, 0xfba1, 0xfb47, 0xfb20,
+ 0xfb23, 0xfb42, 0xfb7d, 0xfbd3, 0xfc2b, 0xfc75,
+ 0xfcb7, 0xfcf3, 0xfd2a, 0xfd5c, 0xfda5, 0xfe23,
+ 0xfeb4, 0xff3e, 0xffd0, 0x004b, 0x0097, 0x00df,
+ 0x0123, 0x014c, 0x0175, 0x01aa, 0x01d8, 0x01fe,
+ 0x0222, 0x0238, 0x0241, 0x0257, 0x027f, 0x02a3,
+ 0x02cd, 0x0304, 0x0329, 0x033d, 0x0346, 0x0322,
+ 0x02f7, 0x02f3, 0x02f1, 0x02e5, 0x02e2, 0x02d7,
+ 0x02b3, 0x0275, 0x0222, 0x01c4, 0x0165, 0x0122,
+ 0x010a, 0x00f8, 0x00fb, 0x012e, 0x016f, 0x01c0,
+ 0x0228, 0x0272, 0x02a6, 0x02ed, 0x0331, 0x0373,
+ 0x03ca, 0x0422, 0x0474, 0x04da, 0x0541, 0x058a,
+ 0x05d0, 0x0631, 0x0690, 0x06f3, 0x077a, 0x0803,
+ 0x0885, 0x0916, 0x0991, 0x09f8, 0x0a6e, 0x0ac8,
+ 0x0b02, 0x0b4a, 0x0b85, 0x0bae, 0x0be3, 0x0c0c,
+ 0x0c17, 0x0c11, 0x0bf2, 0x0bc0, 0x0b78, 0x0b0a,
+ 0x0a91, 0x0a2e, 0x09d5, 0x097d, 0x092e, 0x08ef,
+ 0x08b5, 0x087e, 0x0855, 0x0836, 0x0818, 0x07f7,
+ 0x07ca, 0x0788, 0x0745, 0x0710, 0x06da, 0x0697,
+ 0x0661, 0x062f, 0x05e2, 0x0591, 0x0543, 0x04da,
+ 0x0474, 0x0425, 0x03cf, 0x0385, 0x0346, 0x02e8,
+ 0x0289, 0x0241, 0x01f4, 0x01ba, 0x019c, 0x0176,
+ 0x0156, 0x0144, 0x012e, 0x010c, 0x00d2, 0x007b,
+ 0x0028, 0xffde, 0xff98, 0xff6a, 0xff5a, 0xff56,
+ 0xff5a, 0xff70, 0xff94, 0xffb2, 0xffc4, 0xffd1,
+ 0xffd9, 0xffe1, 0xffe6, 0xffe2, 0xffda, 0xffdd,
+ 0xffef, 0x0002, 0x001b, 0x0034, 0x0030, 0x0006,
+ 0xffca, 0xff74, 0xff06, 0xfe8f, 0xfe0a, 0xfd89,
+ 0xfd1f, 0xfcc0, 0xfc6b, 0xfc29, 0xfbf0, 0xfbb9,
+ 0xfb83, 0xfb55, 0xfb23, 0xfadf, 0xfa9b, 0xfa57,
+ 0xf9ff, 0xf9b2, 0xf97a, 0xf94a, 0xf948, 0xf96d,
+ 0xf985, 0xf9a2, 0xf9be, 0xf9b9, 0xf9b1, 0xf9b0,
+ 0xf9a0, 0xf9a1, 0xf9cb, 0xfa0a, 0xfa59, 0xfabf,
+ 0xfb3a, 0xfbbe, 0xfc3f, 0xfcb3, 0xfd18, 0xfd83,
+ 0xfdfc, 0xfe71, 0xfee1, 0xff51, 0xffba, 0x001f,
+ 0x0074, 0x00ad, 0x00d7, 0x00fe, 0x0132, 0x0171,
+ 0x0198, 0x01a7, 0x01b0, 0x01b5, 0x01bd, 0x01b9,
+ 0x019f, 0x017f, 0x0149, 0x010a, 0x00dc, 0x00a9,
+ 0x007e, 0x006a, 0x0045, 0x001e, 0x0003, 0xffc5,
+ 0xff75, 0xff30, 0xfeea, 0xfeb8, 0xfe96, 0xfe83,
+ 0xfe90, 0xfe9b, 0xfea5, 0xfed0, 0xff05, 0xff43,
+ 0xff94, 0xffe2, 0x0054, 0x00ee, 0x0179, 0x0201,
+ 0x027f, 0x02b9, 0x02cc, 0x02d2, 0x02c0, 0x02a4,
+ 0x0290, 0x0296, 0x02c0, 0x02f7, 0x0330, 0x0372,
+ 0x03bc, 0x0405, 0x0435, 0x045a, 0x048a, 0x04a2,
+ 0x049b, 0x0483, 0x044e, 0x0412, 0x03ef, 0x03de,
+ 0x03e8, 0x0405, 0x040e, 0x03fd, 0x03d7, 0x039c,
+ 0x034d, 0x02db, 0x025b, 0x01f1, 0x0198, 0x0147,
+ 0x010a, 0x00de, 0x00c2, 0x00b5, 0x00af, 0x00a1,
+ 0x0084, 0x006c, 0x0057, 0x0033, 0x0012, 0xfff0,
+ 0xffad, 0xff5b, 0xff01, 0xfe9a, 0xfe43, 0xfe0d,
+ 0xfdf1, 0xfdf1, 0xfe06, 0xfe2d, 0xfe5e, 0xfe7a,
+ 0xfe7d, 0xfe7a, 0xfe6b, 0xfe53, 0xfe48, 0xfe55,
+ 0xfe62, 0xfe55, 0xfe33, 0xfe05, 0xfdcf, 0xfda0,
+ 0xfd75, 0xfd39, 0xfcfa, 0xfcbc, 0xfc6a, 0xfc0a,
+ 0xfba3, 0xfb39, 0xfadf, 0xfa9b, 0xfa6f, 0xfa6f,
+ 0xfa94, 0xfaba, 0xfadb, 0xfaf0, 0xfae4, 0xfab5,
+ 0xfa6a, 0xfa18, 0xf9e0, 0xf9d2, 0xf9e7, 0xfa19,
+ 0xfa52, 0xfa7e, 0xfa96, 0xfa9e, 0xfa9f, 0xfa9c,
+ 0xfa93, 0xfa97, 0xfaa1, 0xfa97, 0xfa8e, 0xfa91,
+ 0xfa8e, 0xfa9d, 0xfac7, 0xfaf0, 0xfb1b, 0xfb4a,
+ 0xfb65, 0xfb6f, 0xfb70, 0xfb61, 0xfb55, 0xfb5a,
+ 0xfb71, 0xfb9e, 0xfbd4, 0xfc06, 0xfc34, 0xfc55,
+ 0xfc6c, 0xfc83, 0xfc98, 0xfca5, 0xfcc1, 0xfcf5,
+ 0xfd1c, 0xfd30, 0xfd4a, 0xfd63, 0xfd74, 0xfd81,
+ 0xfd71, 0xfd52, 0xfd41, 0xfd2a, 0xfd09, 0xfced,
+ 0xfcd3, 0xfcd1, 0xfcdc, 0xfcce, 0xfcca, 0xfcdc,
+ 0xfcda, 0xfcc0, 0xfc8d, 0xfc4a, 0xfc18, 0xfbde,
+ 0xfb9f, 0xfb7f, 0xfb67, 0xfb4b, 0xfb39, 0xfb1d,
+ 0xfaff, 0xfaee, 0xfad7, 0xfac2, 0xfaae, 0xfa87,
+ 0xfa5d, 0xfa37, 0xfa08, 0xf9d7, 0xf9a2, 0xf964,
+ 0xf928, 0xf8f2, 0xf8c7, 0xf8a7, 0xf890, 0xf881,
+ 0xf870, 0xf866, 0xf870, 0xf875, 0xf86d, 0xf86a,
+ 0xf85d, 0xf848, 0xf846, 0xf862, 0xf890, 0xf8b4,
+ 0xf8c0, 0xf8c5, 0xf8c6, 0xf8cc, 0xf8e0, 0xf8ee,
+ 0xf8f9, 0xf921, 0xf958, 0xf985, 0xf9a4, 0xf9a8,
+ 0xf99b, 0xf98e, 0xf971, 0xf945, 0xf92d, 0xf937,
+ 0xf965, 0xf9b3, 0xfa08, 0xfa51, 0xfa8c, 0xfab3,
+ 0xfac4, 0xfadb, 0xfb09, 0xfb4d, 0xfba1, 0xfc01,
+ 0xfc72, 0xfcf2, 0xfd6d, 0xfde6, 0xfe5e, 0xfec7,
+ 0xff25, 0xff7a, 0xffb8, 0xffe3, 0x0000, 0x0013,
+ 0x002c, 0x0059, 0x009d, 0x00fa, 0x0154, 0x0196,
+ 0x01ca, 0x01f9, 0x0222, 0x023e, 0x023a, 0x0220,
+ 0x020b, 0x0200, 0x01f9, 0x01f0, 0x01ee, 0x01ed,
+ 0x01df, 0x01d3, 0x01d0, 0x01b8, 0x0192, 0x017c,
+ 0x016b, 0x015d, 0x0171, 0x0198, 0x01b9, 0x01e2,
+ 0x0215, 0x023c, 0x025a, 0x0270, 0x026e, 0x025c,
+ 0x0246, 0x0222, 0x0204, 0x0202, 0x0210, 0x0225,
+ 0x0240, 0x0252, 0x0252, 0x023d, 0x0220, 0x020b,
+ 0x01f0, 0x01cb, 0x01b2, 0x01a0, 0x01a0, 0x01c5,
+ 0x01fe, 0x0238, 0x026e, 0x0292, 0x0299, 0x027f,
+ 0x0240, 0x01e2, 0x017b, 0x0121, 0x00ce, 0x0074,
+ 0x0030, 0x0002, 0xffd2, 0xffae, 0xff99, 0xff70,
+ 0xff3a, 0xff03, 0xfeb5, 0xfe54, 0xfe05, 0xfdd6,
+ 0xfdc1, 0xfdd3, 0xfe11, 0xfe50, 0xfe74, 0xfe91,
+ 0xfea3, 0xfe9e, 0xfe92, 0xfe83, 0xfe7a, 0xfe82,
+ 0xfe8b, 0xfe91, 0xfea6, 0xfec2, 0xfee3, 0xff0a,
+ 0xff3b, 0xff7e, 0xffd3, 0x0039, 0x00b9, 0x0146,
+ 0x01c9, 0x022e, 0x0281, 0x02de, 0x0333, 0x036b,
+ 0x03ab, 0x03fe, 0x0444, 0x0479, 0x049d, 0x04a6,
+ 0x0496, 0x047e, 0x0471, 0x0470, 0x0477, 0x048b,
+ 0x0495, 0x047f, 0x045d, 0x0437, 0x040b, 0x03ef,
+ 0x03eb, 0x03eb, 0x03ee, 0x03f9, 0x0403, 0x040a,
+ 0x041e, 0x044a, 0x0482, 0x04b5, 0x04d3, 0x04d6,
+ 0x04ce, 0x04bf, 0x04af, 0x04b7, 0x04de, 0x0518,
+ 0x055b, 0x0599, 0x05c8, 0x05e2, 0x05ec, 0x05fd,
+ 0x0612, 0x0612, 0x060e, 0x0610, 0x060b, 0x05f8,
+ 0x05d2, 0x059f, 0x056d, 0x053a, 0x050b, 0x04f5,
+ 0x04f1, 0x04ea, 0x04c5, 0x0483, 0x0445, 0x040b,
+ 0x03da, 0x03da, 0x03fd, 0x042f, 0x0478, 0x04c7,
+ 0x0511, 0x054a, 0x0556, 0x055c, 0x0578, 0x0589,
+ 0x05a3, 0x05d0, 0x05e3, 0x05e2, 0x05cd, 0x0589,
+ 0x053b, 0x04f3, 0x04a5, 0x0473, 0x045a, 0x043d,
+ 0x0422, 0x0400, 0x03bf, 0x036f, 0x0328, 0x02f9,
+ 0x02e6, 0x02ed, 0x0306, 0x030e, 0x02ff, 0x02e6,
+ 0x02a3, 0x0233, 0x01ce, 0x017f, 0x0140, 0x0116,
+ 0x00df, 0x0096, 0x0045, 0xffd5, 0xff55, 0xfeed,
+ 0xfe8b, 0xfe2c, 0xfdd5, 0xfd73, 0xfd17, 0xfcd1,
+ 0xfc90, 0xfc68, 0xfc71, 0xfc90, 0xfcb0, 0xfcd6,
+ 0xfcf5, 0xfd03, 0xfcff, 0xfcf7, 0xfcf8, 0xfcfb,
+ 0xfcf7, 0xfcf1, 0xfcf2, 0xfd01, 0xfd24, 0xfd53,
+ 0xfd80, 0xfdb3, 0xfdef, 0xfe2f, 0xfe80, 0xfeed,
+ 0xff66, 0xffe4, 0x0064, 0x00cc, 0x0115, 0x0152,
+ 0x017d, 0x01a1, 0x01cc, 0x01f2, 0x0219, 0x023d,
+ 0x0242, 0x0234, 0x0218, 0x01dc, 0x019d, 0x016b,
+ 0x0147, 0x0149, 0x015b, 0x0165, 0x0179, 0x0186,
+ 0x0177, 0x016b, 0x0154, 0x0123, 0x00ed, 0x00b6,
+ 0x0082, 0x0053, 0x001a, 0xffe5, 0xffc5, 0xffb0,
+ 0xffb8, 0xfff1, 0x0040, 0x00a3, 0x0118, 0x0184,
+ 0x01de, 0x0235, 0x028d, 0x02e2, 0x0348, 0x03dc,
+ 0x0493, 0x0558, 0x0629, 0x06ea, 0x0783, 0x07f1,
+ 0x0833, 0x085b, 0x0884, 0x08bb, 0x090c, 0x0973,
+ 0x09d6, 0x0a3e, 0x0aa5, 0x0ae6, 0x0b03, 0x0b0d,
+ 0x0b0c, 0x0b12, 0x0b22, 0x0b29, 0x0b21, 0x0b07,
+ 0x0ae0, 0x0ab2, 0x0a84, 0x0a63, 0x0a59, 0x0a61,
+ 0x0a6c, 0x0a63, 0x0a44, 0x0a18, 0x09df, 0x09a5,
+ 0x0973, 0x0941, 0x0915, 0x08ef, 0x08bf, 0x0881,
+ 0x0826, 0x07aa, 0x0725, 0x069f, 0x061e, 0x05b1,
+ 0x0559, 0x0522, 0x04fd, 0x04c2, 0x0490, 0x0476,
+ 0x0440, 0x03e6, 0x037e, 0x0304, 0x0285, 0x0212,
+ 0x01b0, 0x0166, 0x012f, 0x0115, 0x011b, 0x011f,
+ 0x0125, 0x0136, 0x0131, 0x012a, 0x0134, 0x012f,
+ 0x012d, 0x0140, 0x014f, 0x0165, 0x0190, 0x01b8,
+ 0x01df, 0x01fe, 0x0207, 0x01ff, 0x01e8, 0x01d6,
+ 0x01cd, 0x01b9, 0x01a3, 0x017d, 0x0129, 0x00cd,
+ 0x007d, 0x002f, 0x0004, 0xffe9, 0xffaa, 0xff57,
+ 0xfef3, 0xfe6e, 0xfdef, 0xfd8d, 0xfd40, 0xfd0a,
+ 0xfcd9, 0xfc9d, 0xfc4b, 0xfbe7, 0xfb89, 0xfb2e,
+ 0xfac8, 0xfa6b, 0xfa0f, 0xf999, 0xf928, 0xf8d9,
+ 0xf89a, 0xf86d, 0xf869, 0xf88a, 0xf8b5, 0xf8e4,
+ 0xf916, 0xf93f, 0xf976, 0xf9cd, 0xfa28, 0xfa97,
+ 0xfb2a, 0xfbb2, 0xfc3a, 0xfcd8, 0xfd57, 0xfdc1,
+ 0xfe2e, 0xfe71, 0xfe9d, 0xfed5, 0xff02, 0xff37,
+ 0xff86, 0xffcf, 0x0017, 0x005e, 0x0091, 0x00bf,
+ 0x00e2, 0x00f6, 0x0106, 0x0100, 0x00dd, 0x00b6,
+ 0x0086, 0x0055, 0x0034, 0x000f, 0xffe5, 0xffbd,
+ 0xff84, 0xff44, 0xff08, 0xfebe, 0xfe71, 0xfe39,
+ 0xfe11, 0xfdee, 0xfdd4, 0xfdce, 0xfde6, 0xfe12,
+ 0xfe37, 0xfe54, 0xfe82, 0xfeb9, 0xfeeb, 0xff2a,
+ 0xff72, 0xffaa, 0xffd6, 0x0000, 0x0024, 0x004a,
+ 0x006c, 0x008d, 0x00ca, 0x0123, 0x0185, 0x01f3,
+ 0x025b, 0x02a9, 0x02ee, 0x0333, 0x036a, 0x0389,
+ 0x0394, 0x0398, 0x03a5, 0x03c9, 0x0406, 0x0452,
+ 0x049e, 0x04e8, 0x051e, 0x0528, 0x04fc, 0x04a9,
+ 0x0452, 0x0409, 0x03be, 0x0384, 0x0372, 0x0358,
+ 0x0320, 0x02e7, 0x02a7, 0x025d, 0x021e, 0x01e7,
+ 0x01ba, 0x01a6, 0x01a2, 0x01aa, 0x01b6, 0x01aa,
+ 0x018c, 0x0161, 0x0113, 0x00bc, 0x0088, 0x0069,
+ 0x0057, 0x0057, 0x0050, 0x0035, 0x0013, 0xfff0,
+ 0xffcf, 0xffc8, 0xffe8, 0x000d, 0x001c, 0x0018,
+ 0x0001, 0xffd2, 0xff99, 0xff69, 0xff55, 0xff5a,
+ 0xff5f, 0xff65, 0xff62, 0xff34, 0xfeed, 0xfea2,
+ 0xfe43, 0xfdec, 0xfdbd, 0xfd9f, 0xfd99, 0xfda8,
+ 0xfda4, 0xfd82, 0xfd4b, 0xfcfe, 0xfcaa, 0xfc64,
+ 0xfc3d, 0xfc39, 0xfc36, 0xfc1f, 0xfc01, 0xfbd7,
+ 0xfb9f, 0xfb77, 0xfb69, 0xfb67, 0xfb6d, 0xfb79,
+ 0xfb7c, 0xfb71, 0xfb4d, 0xfb06, 0xfaac, 0xfa5e,
+ 0xfa29, 0xfa19, 0xfa37, 0xfa76, 0xfac4, 0xfb10,
+ 0xfb49, 0xfb6e, 0xfb7b, 0xfb76, 0xfb79, 0xfb85,
+ 0xfb90, 0xfb98, 0xfb88, 0xfb5a, 0xfb33, 0xfb27,
+ 0xfb2f, 0xfb4d, 0xfb86, 0xfbcd, 0xfc00, 0xfc0f,
+ 0xfc20, 0xfc37, 0xfc4e, 0xfc7f, 0xfcc8, 0xfd11,
+ 0xfd59, 0xfd97, 0xfdb8, 0xfdbf, 0xfdb7, 0xfda6,
+ 0xfd90, 0xfd81, 0xfd82, 0xfd7b, 0xfd66, 0xfd58,
+ 0xfd4a, 0xfd3c, 0xfd3c, 0xfd31, 0xfd22, 0xfd1f,
+ 0xfd06, 0xfce5, 0xfccc, 0xfc99, 0xfc6c, 0xfc5e,
+ 0xfc4b, 0xfc45, 0xfc54, 0xfc4e, 0xfc3a, 0xfc12,
+ 0xfbd1, 0xfb99, 0xfb63, 0xfb27, 0xfb00, 0xfad7,
+ 0xfaa9, 0xfa8e, 0xfa62, 0xfa29, 0xfa01, 0xf9ca,
+ 0xf98a, 0xf958, 0xf917, 0xf8d6, 0xf8ae, 0xf88f,
+ 0xf885, 0xf895, 0xf8a3, 0xf8bf, 0xf8ea, 0xf8fa,
+ 0xf8eb, 0xf8d6, 0xf8cc, 0xf8cc, 0xf8d1, 0xf8e3,
+ 0xf8fb, 0xf907, 0xf908, 0xf8f7, 0xf8d4, 0xf8bb,
+ 0xf8b2, 0xf8b0, 0xf8c4, 0xf8e6, 0xf8f8, 0xf8fa,
+ 0xf8f4, 0xf8e5, 0xf8d2, 0xf8c5, 0xf8bf, 0xf8c4,
+ 0xf8db, 0xf8f9, 0xf915, 0xf939, 0xf962, 0xf98b,
+ 0xf9c7, 0xfa1e, 0xfa81, 0xfadc, 0xfb2e, 0xfb82,
+ 0xfbd0, 0xfc0b, 0xfc4d, 0xfca4, 0xfcfc, 0xfd5a,
+ 0xfdc9, 0xfe35, 0xfe96, 0xfeea, 0xff1e, 0xff3d,
+ 0xff65, 0xff9b, 0xffd9, 0x0025, 0x0074, 0x00b5,
+ 0x00ec, 0x011f, 0x0144, 0x0164, 0x017b, 0x017e,
+ 0x0181, 0x0193, 0x01a0, 0x01a4, 0x01ad, 0x01b7,
+ 0x01bc, 0x01ba, 0x01b2, 0x01a7, 0x01a4, 0x01ac,
+ 0x01b6, 0x01c4, 0x01de, 0x01fa, 0x0217, 0x0236,
+ 0x0241, 0x0237, 0x021f, 0x01ef, 0x01c0, 0x01b5,
+ 0x01ba, 0x01cd, 0x01f8, 0x021c, 0x0223, 0x0221,
+ 0x0225, 0x022c, 0x023c, 0x025c, 0x027e, 0x0297,
+ 0x029f, 0x0290, 0x0271, 0x024f, 0x0229, 0x020e,
+ 0x0205, 0x0202, 0x0211, 0x021f, 0x0208, 0x01e7,
+ 0x01c6, 0x018a, 0x014d, 0x0120, 0x00ef, 0x00cf,
+ 0x00b7, 0x008c, 0x0065, 0x0042, 0x0015, 0xffed,
+ 0xffc1, 0xff8d, 0xff5d, 0xff21, 0xfeda, 0xfe87,
+ 0xfe1e, 0xfdc4, 0xfd74, 0xfd0d, 0xfcb3, 0xfc72,
+ 0xfc2e, 0xfbfd, 0xfbed, 0xfbee, 0xfc06, 0xfc31,
+ 0xfc68, 0xfcae, 0xfcef, 0xfd29, 0xfd78, 0xfdda,
+ 0xfe4c, 0xfed9, 0xff7b, 0x001a, 0x00ac, 0x012a,
+ 0x0188, 0x01b9, 0x01cf, 0x01d5, 0x01cc, 0x01c5,
+ 0x01c8, 0x01ce, 0x01db, 0x01ea, 0x01f8, 0x020b,
+ 0x0220, 0x0240, 0x0277, 0x02ac, 0x02d3, 0x0300,
+ 0x032b, 0x034d, 0x036a, 0x0378, 0x0380, 0x0397,
+ 0x03ab, 0x03a8, 0x03a0, 0x0396, 0x0380, 0x0370,
+ 0x0365, 0x0355, 0x0353, 0x0368, 0x0380, 0x03a9,
+ 0x03e7, 0x0427, 0x046c, 0x04b1, 0x04e2, 0x050c,
+ 0x0536, 0x054b, 0x054d, 0x054b, 0x0549, 0x0548,
+ 0x0547, 0x0541, 0x0538, 0x052f, 0x0518, 0x04e5,
+ 0x04bd, 0x04be, 0x04d9, 0x0506, 0x053a, 0x0564,
+ 0x0589, 0x0594, 0x0579, 0x0569, 0x0571, 0x057c,
+ 0x059d, 0x05c2, 0x05d6, 0x05e6, 0x05dd, 0x05bc,
+ 0x05b4, 0x05b0, 0x05a3, 0x05a8, 0x05af, 0x05ad,
+ 0x05a4, 0x0585, 0x0564, 0x054f, 0x0530, 0x0520,
+ 0x0520, 0x051c, 0x0525, 0x0534, 0x0531, 0x0529,
+ 0x0519, 0x0510, 0x0513, 0x04ff, 0x04d6, 0x049b,
+ 0x0429, 0x039c, 0x0319, 0x029e, 0x0243, 0x01f9,
+ 0x01ab, 0x016d, 0x0124, 0x00c3, 0x0080, 0x004b,
+ 0x000e, 0xffec, 0xffd7, 0xffbc, 0xffa9, 0xff83,
+ 0xff3e, 0xfef4, 0xfea4, 0xfe56, 0xfe11, 0xfdc5,
+ 0xfd6b, 0xfd05, 0xfc94, 0xfc2b, 0xfbcb, 0xfb6b,
+ 0xfb21, 0xfb08, 0xfb14, 0xfb39, 0xfb7f, 0xfbde,
+ 0xfc36, 0xfc88, 0xfcd4, 0xfd0a, 0xfd3d, 0xfd76,
+ 0xfda3, 0xfde0, 0xfe3d, 0xfe93, 0xfedd, 0xff20,
+ 0xff3f, 0xff47, 0xff5a, 0xff7d, 0xffac, 0xffd8,
+ 0x0000, 0x0035, 0x0070, 0x00a8, 0x00df, 0x010c,
+ 0x011e, 0x0122, 0x0127, 0x0129, 0x011a, 0x00ff,
+ 0x00dd, 0x00a6, 0x0069, 0x0033, 0xfff6, 0xffb1,
+ 0xff6a, 0xff1d, 0xfedd, 0xfeae, 0xfe7b, 0xfe54,
+ 0xfe40, 0xfe22, 0xfe01, 0xfdf5, 0xfe07, 0xfe47,
+ 0xfeb0, 0xff24, 0xff99, 0x0009, 0x0068, 0x00b9,
+ 0x0101, 0x013e, 0x0184, 0x01e0, 0x0249, 0x02bd,
+ 0x0337, 0x03a1, 0x03f9, 0x0454, 0x04b9, 0x0529,
+ 0x05a0, 0x061d, 0x0690, 0x06ec, 0x0743, 0x079a,
+ 0x07e1, 0x0826, 0x0882, 0x08ee, 0x095c, 0x09c4,
+ 0x0a24, 0x0a80, 0x0aca, 0x0af5, 0x0b10, 0x0b18,
+ 0x0b04, 0x0aee, 0x0ae6, 0x0aec, 0x0b08, 0x0b3d,
+ 0x0b7d, 0x0ba3, 0x0b97, 0x0b66, 0x0b11, 0x0aa2,
+ 0x0a4e, 0x0a1f, 0x09ee, 0x09bd, 0x0998, 0x0968,
+ 0x0919, 0x08b4, 0x0847, 0x07dd, 0x0776, 0x0713,
+ 0x06c0, 0x067f, 0x062f, 0x05d0, 0x0583, 0x052f,
+ 0x04c2, 0x0461, 0x0413, 0x03cc, 0x03a1, 0x0386,
+ 0x0364, 0x0349, 0x0331, 0x031a, 0x0318, 0x031f,
+ 0x032e, 0x033d, 0x0339, 0x0323, 0x02fb, 0x02c0,
+ 0x029c, 0x0294, 0x0299, 0x02b3, 0x02d1, 0x02e1,
+ 0x02e3, 0x02c4, 0x02a9, 0x02b1, 0x02b5, 0x02c1,
+ 0x02f6, 0x032e, 0x0351, 0x0357, 0x0332, 0x02ff,
+ 0x02c9, 0x028f, 0x025f, 0x0221, 0x01d7, 0x0198,
+ 0x0130, 0x0090, 0xffea, 0xff34, 0xfe72, 0xfdc4,
+ 0xfd2e, 0xfcab, 0xfc32, 0xfbc5, 0xfb6a, 0xfb01,
+ 0xfa8b, 0xfa2d, 0xf9dc, 0xf993, 0xf95c, 0xf91a,
+ 0xf8d6, 0xf89e, 0xf865, 0xf841, 0xf84b, 0xf872,
+ 0xf8ba, 0xf917, 0xf96c, 0xf9b4, 0xf9f2, 0xfa2e,
+ 0xfa7a, 0xfae1, 0xfb5a, 0xfbd4, 0xfc4e, 0xfcbd,
+ 0xfd10, 0xfd52, 0xfd8a, 0xfdb3, 0xfdf2, 0xfe48,
+ 0xfe89, 0xfec1, 0xfef4, 0xfef7, 0xfed9, 0xfebb,
+ 0xfe9d, 0xfe8c, 0xfe9c, 0xfec5, 0xfeee, 0xfef7,
+ 0xfedc, 0xfea7, 0xfe5b, 0xfe17, 0xfdf4, 0xfde4,
+ 0xfde0, 0xfdef, 0xfe0f, 0xfe23, 0xfe16, 0xfdf8,
+ 0xfdcc, 0xfd95, 0xfd66, 0xfd3d, 0xfd1b, 0xfd15,
+ 0xfd1a, 0xfd1c, 0xfd37, 0xfd5f, 0xfd89, 0xfdca,
+ 0xfe1a, 0xfe74, 0xfede, 0xff40, 0xff96, 0xfff5,
+ 0x0050, 0x009d, 0x00ed, 0x0141, 0x0194, 0x01eb,
+ 0x0243, 0x0282, 0x029d, 0x02a8, 0x02a0, 0x0296,
+ 0x02ad, 0x02e3, 0x032c, 0x037c, 0x03b0, 0x03c8,
+ 0x03cc, 0x03a9, 0x0378, 0x0352, 0x0330, 0x0320,
+ 0x031f, 0x0312, 0x0313, 0x0320, 0x030b, 0x02dd,
+ 0x02b2, 0x028d, 0x026b, 0x0240, 0x021b, 0x020d,
+ 0x0200, 0x01fa, 0x0208, 0x0213, 0x021c, 0x0236,
+ 0x0251, 0x0260, 0x0261, 0x024d, 0x022b, 0x01ff,
+ 0x01c1, 0x0188, 0x016f, 0x0174, 0x018c, 0x01a5,
+ 0x01a5, 0x018f, 0x015f, 0x010e, 0x00be, 0x0083,
+ 0x0048, 0x000a, 0xffda, 0xffbc, 0xffb1, 0xffaf,
+ 0xffb2, 0xffc4, 0xffd4, 0xffd9, 0xffd9, 0xffc8,
+ 0xffa6, 0xff86, 0xff5b, 0xff25, 0xfef9, 0xfedc,
+ 0xfed0, 0xfec7, 0xfead, 0xfe99, 0xfe86, 0xfe52,
+ 0xfe13, 0xfde5, 0xfdba, 0xfd97, 0xfd80, 0xfd6f,
+ 0xfd62, 0xfd48, 0xfd0f, 0xfcc6, 0xfc8e, 0xfc6c,
+ 0xfc51, 0xfc3f, 0xfc3b, 0xfc25, 0xfbf4, 0xfbb9,
+ 0xfb63, 0xfafc, 0xfab1, 0xfa87, 0xfa71, 0xfa6e,
+ 0xfa79, 0xfa85, 0xfa87, 0xfa91, 0xfab6, 0xfae0,
+ 0xfb09, 0xfb34, 0xfb45, 0xfb3f, 0xfb3d, 0xfb2f,
+ 0xfb1e, 0xfb2b, 0xfb4d, 0xfb7c, 0xfbb8, 0xfbee,
+ 0xfc24, 0xfc5e, 0xfc88, 0xfc9c, 0xfcaa, 0xfcb2,
+ 0xfcbc, 0xfcd4, 0xfcf1, 0xfd00, 0xfd0e, 0xfd23,
+ 0xfd36, 0xfd4b, 0xfd6b, 0xfd8b, 0xfda3, 0xfda5,
+ 0xfd95, 0xfd93, 0xfd95, 0xfd89, 0xfd8b, 0xfd94,
+ 0xfd8c, 0xfd7f, 0xfd6e, 0xfd50, 0xfd2b, 0xfcf4,
+ 0xfcb1, 0xfc74, 0xfc33, 0xfbfe, 0xfbd7, 0xfba7,
+ 0xfb84, 0xfb73, 0xfb56, 0xfb40, 0xfb2b, 0xfb03,
+ 0xfae9, 0xfad2, 0xfa94, 0xfa4f, 0xfa14, 0xf9cc,
+ 0xf993, 0xf975, 0xf95e, 0xf95c, 0xf96e, 0xf978,
+ 0xf973, 0xf964, 0xf942, 0xf915, 0xf8f0, 0xf8da,
+ 0xf8d0, 0xf8db, 0xf8f6, 0xf8fc, 0xf8e8, 0xf8d3,
+ 0xf8b8, 0xf895, 0xf879, 0xf867, 0xf862, 0xf865,
+ 0xf85c, 0xf858, 0xf85f, 0xf85d, 0xf862, 0xf870,
+ 0xf86a, 0xf85e, 0xf868, 0xf874, 0xf879, 0xf87a,
+ 0xf87e, 0xf88b, 0xf88e, 0xf87e, 0xf878, 0xf87e,
+ 0xf885, 0xf899, 0xf8bd, 0xf8ef, 0xf93c, 0xf99b,
+ 0xf9fb, 0xfa5a, 0xfaba, 0xfb14, 0xfb5c, 0xfb9b,
+ 0xfbe8, 0xfc40, 0xfca5, 0xfd1b, 0xfd80, 0xfdc8,
+ 0xfdfc, 0xfe08, 0xfdf8, 0xfdf7, 0xfe06, 0xfe26,
+ 0xfe68, 0xfebd, 0xff10, 0xff65, 0xffbb, 0xffff,
+ 0x002d, 0x005b, 0x008c, 0x00b0, 0x00dc, 0x011f,
+ 0x015c, 0x0199, 0x01dc, 0x01f5, 0x01ea, 0x01df,
+ 0x01bf, 0x018a, 0x0167, 0x0159, 0x0157, 0x0165,
+ 0x017a, 0x0198, 0x01aa, 0x019d, 0x0196, 0x01a5,
+ 0x01b2, 0x01c8, 0x01ed, 0x0207, 0x021c, 0x023c,
+ 0x0259, 0x0265, 0x0262, 0x0254, 0x023a, 0x0211,
+ 0x01e3, 0x01d0, 0x01cf, 0x01cb, 0x01cb, 0x01cf,
+ 0x01c6, 0x01b7, 0x01a4, 0x018f, 0x018a, 0x01a6,
+ 0x01cb, 0x01e8, 0x0200, 0x020c, 0x01f9, 0x01cc,
+ 0x018c, 0x0136, 0x00d8, 0x0077, 0x000d, 0xffa1,
+ 0xff31, 0xfebc, 0xfe47, 0xfdcc, 0xfd53, 0xfcf0,
+ 0xfca3, 0xfc6e, 0xfc60, 0xfc68, 0xfc83, 0xfcbd,
+ 0xfd00, 0xfd3c, 0xfd72, 0xfda0, 0xfdc9, 0xfde6,
+ 0xfdef, 0xfdfa, 0xfe1c, 0xfe45, 0xfe67, 0xfe8d,
+ 0xfec0, 0xfee9, 0xfefb, 0xff08, 0xff14, 0xff1a,
+ 0xff30, 0xff4a, 0xff59, 0xff80, 0xffbe, 0xfff1,
+ 0x0014, 0x0035, 0x005c, 0x0090, 0x00c7, 0x00ff,
+ 0x0132, 0x0164, 0x01a4, 0x01d2, 0x01d8, 0x01da,
+ 0x01d5, 0x01bc, 0x01ba, 0x01c6, 0x01ce, 0x01f4,
+ 0x0231, 0x0262, 0x029a, 0x02de, 0x031b, 0x0356,
+ 0x0399, 0x03e1, 0x0421, 0x0447, 0x0456, 0x0458,
+ 0x0453, 0x044f, 0x044d, 0x0450, 0x0462, 0x0474,
+ 0x0476, 0x046b, 0x0455, 0x042e, 0x0408, 0x03f9,
+ 0x0406, 0x0429, 0x045f, 0x04a4, 0x04e5, 0x0517,
+ 0x052b, 0x0520, 0x0508, 0x04ed, 0x04d0, 0x04be,
+ 0x04b5, 0x04a6, 0x0491, 0x0476, 0x0457, 0x043e,
+ 0x0427, 0x0419, 0x0428, 0x0443, 0x0458, 0x0474,
+ 0x048f, 0x04a7, 0x04dd, 0x051f, 0x054e, 0x0580,
+ 0x05b6, 0x05d5, 0x05f0, 0x060a, 0x0612, 0x061a,
+ 0x0621, 0x0613, 0x05fd, 0x05e1, 0x05c1, 0x05b0,
+ 0x0592, 0x0562, 0x054d, 0x0541, 0x0529, 0x0520,
+ 0x0518, 0x04fc, 0x04e5, 0x04d1, 0x04ac, 0x047f,
+ 0x044d, 0x0418, 0x03e4, 0x03b1, 0x0383, 0x0349,
+ 0x02f9, 0x02a7, 0x024b, 0x01d6, 0x0160, 0x0101,
+ 0x00a2, 0x003c, 0xffe2, 0xff90, 0xff2e, 0xfeca,
+ 0xfe78, 0xfe35, 0xfdfb, 0xfdca, 0xfda1, 0xfd87,
+ 0xfd70, 0xfd4f, 0xfd39, 0xfd2e, 0xfd1a, 0xfd0a,
+ 0xfd03, 0xfcf3, 0xfcf3, 0xfd0e, 0xfd34, 0xfd74,
+ 0xfdd0, 0xfe38, 0xfea9, 0xff16, 0xff78, 0xffe0,
+ 0x003c, 0x0079, 0x00ab, 0x00dc, 0x0107, 0x012b,
+ 0x013e, 0x0140, 0x0133, 0x0117, 0x00f3, 0x00cf,
+ 0x00aa, 0x008f, 0x007b, 0x006a, 0x006c, 0x0066,
+ 0x003e, 0x0009, 0xffc9, 0xff7f, 0xff46, 0xff07,
+ 0xfebb, 0xfe7f, 0xfe4a, 0xfe11, 0xfde0, 0xfda9,
+ 0xfd74, 0xfd56, 0xfd3d, 0xfd3d, 0xfd5c, 0xfd79,
+ 0xfda6, 0xfde8, 0xfe10, 0xfe31, 0xfe5b, 0xfe7b,
+ 0xfea8, 0xfee4, 0xff13, 0xff56, 0xffa8, 0xffe6,
+ 0x002f, 0x009b, 0x0110, 0x0184, 0x01f9, 0x0277,
+ 0x0300, 0x0387, 0x040a, 0x0488, 0x04f5, 0x0566,
+ 0x05e7, 0x0667, 0x06dd, 0x074e, 0x07ba, 0x081f,
+ 0x0877, 0x08d2, 0x092c, 0x0970, 0x09b0, 0x09f2,
+ 0x0a17, 0x0a2a, 0x0a45, 0x0a62, 0x0a72, 0x0a7b,
+ 0x0a8f, 0x0aa9, 0x0aaf, 0x0a9f, 0x0a88, 0x0a6e,
+ 0x0a43, 0x0a0a, 0x09dc, 0x09b4, 0x097a, 0x093e,
+ 0x090f, 0x08d1, 0x088c, 0x084e, 0x080a, 0x07c4,
+ 0x0789, 0x0758, 0x0735, 0x0712, 0x06ec, 0x06d5,
+ 0x06ae, 0x0665, 0x061e, 0x05d2, 0x056c, 0x0511,
+ 0x04cd, 0x048a, 0x0459, 0x0435, 0x0409, 0x03e7,
+ 0x03d4, 0x03c4, 0x03c3, 0x03cb, 0x03d4, 0x03ec,
+ 0x040e, 0x0425, 0x0437, 0x0439, 0x042d, 0x0439,
+ 0x045b, 0x0473, 0x048a, 0x04a4, 0x04b7, 0x04cf,
+ 0x04ef, 0x050a, 0x0524, 0x0531, 0x0518, 0x04d9,
+ 0x047d, 0x0403, 0x0376, 0x02ec, 0x026a, 0x01ee,
+ 0x017c, 0x0113, 0x009f, 0x0024, 0xffb9, 0xff4f,
+ 0xfed9, 0xfe6e, 0xfe21, 0xfdda, 0xfd80, 0xfd18,
+ 0xfcae, 0xfc45, 0xfbe6, 0xfb94, 0xfb4f, 0xfb1e,
+ 0xfaf5, 0xfac6, 0xfa94, 0xfa57, 0xfa1b, 0xf9f9,
+ 0xf9e4, 0xf9e0, 0xf9ff, 0xfa2b, 0xfa58, 0xfa92,
+ 0xfad1, 0xfb12, 0xfb59, 0xfb9b, 0xfbe4, 0xfc36,
+ 0xfc83, 0xfcd8, 0xfd32, 0xfd7a, 0xfdb7, 0xfdec,
+ 0xfe07, 0xfe09, 0xfe03, 0xfdf6, 0xfde3, 0xfde5,
+ 0xfe01, 0xfe16, 0xfe27, 0xfe43, 0xfe4b, 0xfe36,
+ 0xfe0f, 0xfdce, 0xfd8f, 0xfd66, 0xfd47, 0xfd3c,
+ 0xfd41, 0xfd3d, 0xfd36, 0xfd19, 0xfcd9, 0xfc8c,
+ 0xfc39, 0xfbf2, 0xfbd4, 0xfbd3, 0xfbfa, 0xfc55,
+ 0xfcb3, 0xfcfe, 0xfd38, 0xfd47, 0xfd37, 0xfd23,
+ 0xfd18, 0xfd3a, 0xfd98, 0xfe1e, 0xfec3, 0xff6d,
+ 0xfff1, 0x0048, 0x007f, 0x009e, 0x00a6, 0x00a1,
+ 0x00a1, 0x00a8, 0x00ab, 0x00ac, 0x00b2, 0x00cb,
+ 0x00fe, 0x0143, 0x01a5, 0x0224, 0x0298, 0x02e6,
+ 0x030d, 0x0306, 0x02d6, 0x029e, 0x0284, 0x028a,
+ 0x02a6, 0x02d0, 0x02f4, 0x02fa, 0x02e7, 0x02c4,
+ 0x029a, 0x027e, 0x027d, 0x0294, 0x02c3, 0x02ed,
+ 0x02f4, 0x02ef, 0x02f0, 0x02eb, 0x02f0, 0x030e,
+ 0x032e, 0x034b, 0x0367, 0x036d, 0x035b, 0x032c,
+ 0x02d8, 0x028b, 0x0254, 0x0214, 0x01e6, 0x01d6,
+ 0x01bd, 0x01a2, 0x018a, 0x0164, 0x0147, 0x012e,
+ 0x0102, 0x00e2, 0x00d0, 0x00b9, 0x00ad, 0x00a5,
+ 0x0093, 0x0088, 0x007c, 0x0062, 0x004a, 0x0047,
+ 0x005c, 0x007a, 0x0092, 0x009e, 0x008b, 0x0054,
+ 0x0005, 0xffa3, 0xff48, 0xff0c, 0xfede, 0xfeb8,
+ 0xfea4, 0xfe92, 0xfe70, 0xfe3f, 0xfe16, 0xfdf3,
+ 0xfdbd, 0xfd81, 0xfd57, 0xfd2c, 0xfcfc, 0xfce0,
+ 0xfccc, 0xfcb0, 0xfc8e, 0xfc70, 0xfc50, 0xfc20,
+ 0xfbe8, 0xfbc2, 0xfbab, 0xfb9c, 0xfb96, 0xfb93,
+ 0xfb90, 0xfb8b, 0xfb7b, 0xfb67, 0xfb57, 0xfb56,
+ 0xfb6e, 0xfb95, 0xfbbb, 0xfbde, 0xfbfa, 0xfc01,
+ 0xfbe9, 0xfbd4, 0xfbd6, 0xfbd7, 0xfbda, 0xfbec,
+ 0xfbee, 0xfbe4, 0xfbe2, 0xfbe1, 0xfbf2, 0xfc11,
+ 0xfc23, 0xfc37, 0xfc42, 0xfc2b, 0xfc16, 0xfc08,
+ 0xfbf2, 0xfbf2, 0xfc07, 0xfc17, 0xfc2e, 0xfc4a,
+ 0xfc5f, 0xfc71, 0xfc7a, 0xfc7e, 0xfc83, 0xfc80,
+ 0xfc77, 0xfc66, 0xfc4e, 0xfc3a, 0xfc29, 0xfc20,
+ 0xfc26, 0xfc27, 0xfc1d, 0xfc13, 0xfc05, 0xfbee,
+ 0xfbcc, 0xfba1, 0xfb80, 0xfb65, 0xfb44, 0xfb2d,
+ 0xfb25, 0xfb17, 0xfb02, 0xfae9, 0xfac9, 0xfaaa,
+ 0xfa93, 0xfa71, 0xfa44, 0xfa23, 0xfa0f, 0xfa03,
+ 0xfa10, 0xfa2b, 0xfa41, 0xfa56, 0xfa54, 0xfa2c,
+ 0xf9f5, 0xf9c4, 0xf99f, 0xf98d, 0xf980, 0xf978,
+ 0xf975, 0xf96e, 0xf95b, 0xf92e, 0xf8ea, 0xf8a6,
+ 0xf862, 0xf824, 0xf7fe, 0xf7e1, 0xf7d2, 0xf7dd,
+ 0xf7e6, 0xf7df, 0xf7d8, 0xf7d3, 0xf7cf, 0xf7d5,
+ 0xf7e5, 0xf7f9, 0xf80d, 0xf829, 0xf847, 0xf867,
+ 0xf8a3, 0xf8f1, 0xf932, 0xf97a, 0xf9cd, 0xfa10,
+ 0xfa4b, 0xfa8c, 0xface, 0xfb0d, 0xfb46, 0xfb7b,
+ 0xfbab, 0xfbc7, 0xfbdf, 0xfc05, 0xfc26, 0xfc40,
+ 0xfc62, 0xfc93, 0xfcc5, 0xfcf4, 0xfd34, 0xfd88,
+ 0xfddc, 0xfe2e, 0xfe79, 0xfeac, 0xfed5, 0xfef5,
+ 0xff0a, 0xff2a, 0xff47, 0xff56, 0xff75, 0xff98,
+ 0xffb0, 0xffd2, 0xfff1, 0xfffc, 0x0009, 0x0028,
+ 0x0051, 0x007e, 0x00a3, 0x00b4, 0x00bb, 0x00bb,
+ 0x00b2, 0x00b1, 0x00c0, 0x00d3, 0x00e8, 0x00ff,
+ 0x0107, 0x0104, 0x0104, 0x010a, 0x011f, 0x013b,
+ 0x0155, 0x0176, 0x0193, 0x01ad, 0x01dd, 0x0214,
+ 0x0249, 0x0284, 0x02b7, 0x02e1, 0x02fc, 0x0300,
+ 0x0309, 0x031a, 0x0325, 0x0341, 0x0354, 0x0340,
+ 0x0325, 0x02f6, 0x02ad, 0x0269, 0x0210, 0x019d,
+ 0x013a, 0x00cd, 0x0059, 0xfffa, 0xff94, 0xff32,
+ 0xfeef, 0xfeb9, 0xfe8f, 0xfe6b, 0xfe40, 0xfe1f,
+ 0xfe00, 0xfde7, 0xfde6, 0xfddf, 0xfdd5, 0xfde9,
+ 0xfdf9, 0xfdee, 0xfdda, 0xfdb5, 0xfd89, 0xfd68,
+ 0xfd49, 0xfd38, 0xfd38, 0xfd27, 0xfd0b, 0xfd0a,
+ 0xfd1a, 0xfd2e, 0xfd5a, 0xfd99, 0xfdda, 0xfe21,
+ 0xfe66, 0xfe9b, 0xfeda, 0xff19, 0xff45, 0xff7c,
+ 0xffad, 0xffb9, 0xffc7, 0xffe3, 0xffef, 0xfff9,
+ 0xfffb, 0xffe6, 0xffde, 0xffed, 0x0003, 0x002e,
+ 0x0075, 0x00c8, 0x010c, 0x013b, 0x0165, 0x0181,
+ 0x0185, 0x018c, 0x019f, 0x01be, 0x01ec, 0x021b,
+ 0x0241, 0x025a, 0x0260, 0x025c, 0x0256, 0x0256,
+ 0x0269, 0x028c, 0x02b8, 0x02f4, 0x032b, 0x034c,
+ 0x0364, 0x0371, 0x0373, 0x0383, 0x03aa, 0x03d6,
+ 0x03fb, 0x041f, 0x0439, 0x0439, 0x0429, 0x0413,
+ 0x03f2, 0x03e1, 0x03e1, 0x03cd, 0x03b5, 0x03b7,
+ 0x03ba, 0x03ac, 0x03a2, 0x039f, 0x03a9, 0x03c7,
+ 0x03ea, 0x0405, 0x0428, 0x044d, 0x0461, 0x046f,
+ 0x0484, 0x0499, 0x04c4, 0x0503, 0x0533, 0x0555,
+ 0x0569, 0x0563, 0x055a, 0x0562, 0x0575, 0x059e,
+ 0x05cd, 0x05f7, 0x0625, 0x0644, 0x064f, 0x065e,
+ 0x066d, 0x0689, 0x06b3, 0x06cf, 0x06e7, 0x0706,
+ 0x0710, 0x0717, 0x0726, 0x071a, 0x06fb, 0x06d3,
+ 0x0698, 0x0663, 0x0634, 0x05f0, 0x05a5, 0x054f,
+ 0x04dc, 0x0470, 0x040e, 0x0392, 0x0314, 0x02b0,
+ 0x024d, 0x01e7, 0x018f, 0x0138, 0x00e3, 0x0091,
+ 0x002a, 0xffb9, 0xff53, 0xfeec, 0xfe82, 0xfe2b,
+ 0xfddc, 0xfd85, 0xfd3c, 0xfd06, 0xfcd5, 0xfcb9,
+ 0xfcca, 0xfcf8, 0xfd30, 0xfd72, 0xfdb5, 0xfde6,
+ 0xfe0e, 0xfe3f, 0xfe73, 0xfea3, 0xfed6, 0xff0f,
+ 0xff51, 0xffad, 0x000f, 0x0053, 0x0070, 0x0070,
+ 0x004a, 0x0007, 0xffce, 0xffb9, 0xffc8, 0xffef,
+ 0x001b, 0x0030, 0x0020, 0x0006, 0xffee, 0xffd2,
+ 0xffcf, 0xfff2, 0x001f, 0x0052, 0x0084, 0x0095,
+ 0x0081, 0x0048, 0xfff3, 0xff9f, 0xff5c, 0xff23,
+ 0xff02, 0xfef1, 0xfece, 0xfe8c, 0xfe3a, 0xfdea,
+ 0xfd9d, 0xfd63, 0xfd51, 0xfd64, 0xfd91, 0xfdc6,
+ 0xfde7, 0xfe00, 0xfe18, 0xfe1d, 0xfe2c, 0xfe55,
+ 0xfe82, 0xfec5, 0xff18, 0xff5d, 0xffa6, 0xfff8,
+ 0x0040, 0x008a, 0x00df, 0x014e, 0x01e5, 0x0289,
+ 0x0323, 0x03b6, 0x042e, 0x0490, 0x04e9, 0x0539,
+ 0x05a1, 0x0626, 0x06a7, 0x072a, 0x07a4, 0x07fb,
+ 0x083d, 0x0877, 0x08b6, 0x0906, 0x095b, 0x09ae,
+ 0x09fa, 0x0a2e, 0x0a4f, 0x0a67, 0x0a78, 0x0a83,
+ 0x0a84, 0x0a8d, 0x0aa1, 0x0aa6, 0x0aad, 0x0ab9,
+ 0x0aaa, 0x0a97, 0x0a83, 0x0a42, 0x09f7, 0x09b5,
+ 0x0953, 0x08e3, 0x0882, 0x0821, 0x07c4, 0x076a,
+ 0x0713, 0x06cc, 0x0685, 0x0633, 0x05e9, 0x05a8,
+ 0x056e, 0x0547, 0x052e, 0x0524, 0x0531, 0x054d,
+ 0x0562, 0x0574, 0x0594, 0x05aa, 0x0599, 0x056f,
+ 0x052f, 0x04e4, 0x04b2, 0x049c, 0x04ab, 0x04f0,
+ 0x053b, 0x0565, 0x0576, 0x0564, 0x0531, 0x0508,
+ 0x04f5, 0x04e9, 0x04e7, 0x04f1, 0x04ef, 0x04d1,
+ 0x04ae, 0x0493, 0x0467, 0x042d, 0x0402, 0x03e3,
+ 0x03cb, 0x03b9, 0x039c, 0x0369, 0x0323, 0x02c0,
+ 0x0233, 0x0191, 0x0104, 0x009a, 0x004a, 0x000b,
+ 0xffdb, 0xffab, 0xff59, 0xfecb, 0xfe27, 0xfd83,
+ 0xfcde, 0xfc5c, 0xfc1b, 0xfc06, 0xfc12, 0xfc33,
+ 0xfc46, 0xfc31, 0xfc01, 0xfbd2, 0xfbac, 0xfb96,
+ 0xfba1, 0xfbbb, 0xfbd1, 0xfbee, 0xfbfe, 0xfc0e,
+ 0xfc4f, 0xfcb7, 0xfd40, 0xfdee, 0xfe80, 0xfee2,
+ 0xff1d, 0xff16, 0xfef6, 0xfee6, 0xfecf, 0xfed4,
+ 0xff0d, 0xff41, 0xff61, 0xff70, 0xff52, 0xff0c,
+ 0xfea1, 0xfe32, 0xfdf4, 0xfdea, 0xfe17, 0xfe76,
+ 0xfed0, 0xff0e, 0xff19, 0xfede, 0xfe94, 0xfe5a,
+ 0xfe34, 0xfe5b, 0xfebc, 0xff24, 0xffa1, 0x000b,
+ 0x002f, 0x0025, 0xfff1, 0xff90, 0xff26, 0xfeb6,
+ 0xfe5c, 0xfe3c, 0xfe3b, 0xfe4c, 0xfe70, 0xfe8b,
+ 0xfe9a, 0xfe94, 0xfe5c, 0xfe0e, 0xfdb9, 0xfd59,
+ 0xfd14, 0xfcf4, 0xfce3, 0xfcf0, 0xfd17, 0xfd42,
+ 0xfd8b, 0xfde6, 0xfe2e, 0xfe66, 0xfe96, 0xfeb4,
+ 0xfeb5, 0xfea0, 0xfe8f, 0xfe9a, 0xfec4, 0xff11,
+ 0xff78, 0xffdc, 0x0026, 0x0051, 0x0063, 0x0066,
+ 0x0057, 0x003b, 0x0020, 0x0007, 0xffee, 0xffd4,
+ 0xffb4, 0xff9e, 0xffa0, 0xffc2, 0xfffd, 0x0039,
+ 0x0060, 0x0067, 0x0049, 0x001a, 0xfffa, 0xffe0,
+ 0xffcb, 0xffcb, 0xffd2, 0xffd8, 0xffeb, 0x000a,
+ 0x0033, 0x0066, 0x0098, 0x00b3, 0x00aa, 0x007f,
+ 0x0040, 0xfffb, 0xffce, 0xffd1, 0xfff0, 0x0021,
+ 0x006d, 0x00af, 0x00cc, 0x00d9, 0x00dd, 0x00d1,
+ 0x00bf, 0x00b8, 0x00c0, 0x00cd, 0x00de, 0x00fa,
+ 0x011d, 0x013c, 0x0163, 0x019a, 0x01d3, 0x020a,
+ 0x0244, 0x0281, 0x02b7, 0x02ce, 0x02c9, 0x02c0,
+ 0x02b9, 0x02c4, 0x02ee, 0x0315, 0x0326, 0x0339,
+ 0x033e, 0x0319, 0x02e1, 0x029e, 0x023a, 0x01ca,
+ 0x016f, 0x012b, 0x00f7, 0x00d0, 0x00ae, 0x0093,
+ 0x0079, 0x0054, 0x0031, 0x001f, 0x0013, 0x0008,
+ 0xfff4, 0xffc6, 0xff9a, 0xff81, 0xff58, 0xff20,
+ 0xfeed, 0xfeb6, 0xfe80, 0xfe58, 0xfe38, 0xfe26,
+ 0xfe1f, 0xfe04, 0xfdcf, 0xfd86, 0xfd31, 0xfceb,
+ 0xfcc5, 0xfcc0, 0xfcd9, 0xfcf1, 0xfce9, 0xfcc8,
+ 0xfc8f, 0xfc41, 0xfbf8, 0xfbbe, 0xfb88, 0xfb55,
+ 0xfb31, 0xfb22, 0xfb24, 0xfb2a, 0xfb37, 0xfb53,
+ 0xfb6a, 0xfb6e, 0xfb68, 0xfb4b, 0xfb0f, 0xfacf,
+ 0xfa9e, 0xfa70, 0xfa4e, 0xfa3a, 0xfa25, 0xfa0c,
+ 0xf9f3, 0xf9ce, 0xf98e, 0xf949, 0xf914, 0xf8e6,
+ 0xf8b3, 0xf883, 0xf855, 0xf81f, 0xf7db, 0xf79a,
+ 0xf76d, 0xf737, 0xf6f8, 0xf6da, 0xf6d5, 0xf6d5,
+ 0xf700, 0xf753, 0xf7ae, 0xf7fb, 0xf822, 0xf83c,
+ 0xf856, 0xf848, 0xf82c, 0xf826, 0xf817, 0xf804,
+ 0xf7f7, 0xf7cb, 0xf794, 0xf771, 0xf745, 0xf710,
+ 0xf6da, 0xf695, 0xf64c, 0xf614, 0xf5fc, 0xf607,
+ 0xf628, 0xf65c, 0xf698, 0xf6cc, 0xf701, 0xf737,
+ 0xf761, 0xf790, 0xf7ca, 0xf806, 0xf843, 0xf874,
+ 0xf895, 0xf8a6, 0xf8a8, 0xf8b3, 0xf8ce, 0xf8df,
+ 0xf8f0, 0xf918, 0xf93b, 0xf94a, 0xf962, 0xf98f,
+ 0xf9c0, 0xf9fb, 0xfa44, 0xfa80, 0xfab2, 0xfae6,
+ 0xfb0d, 0xfb3c, 0xfb8d, 0xfbe4, 0xfc39, 0xfc8f,
+ 0xfcc9, 0xfcf6, 0xfd28, 0xfd45, 0xfd5c, 0xfd7f,
+ 0xfd99, 0xfdae, 0xfdc8, 0xfde3, 0xfe12, 0xfe5d,
+ 0xfea8, 0xfef2, 0xff31, 0xff56, 0xff6a, 0xff6f,
+ 0xff65, 0xff60, 0xff6a, 0xff75, 0xff83, 0xff95,
+ 0xff97, 0xff93, 0xff9c, 0xffa9, 0xffbe, 0xffe3,
+ 0x000e, 0x0031, 0x004a, 0x0072, 0x00ae, 0x00d9,
+ 0x0107, 0x0163, 0x01c0, 0x0201, 0x0252, 0x029f,
+ 0x02cf, 0x02ff, 0x032d, 0x0346, 0x0352, 0x0348,
+ 0x0325, 0x02f3, 0x02be, 0x0292, 0x026f, 0x0256,
+ 0x0253, 0x025b, 0x025d, 0x025a, 0x0254, 0x024a,
+ 0x0230, 0x0202, 0x01d8, 0x01b1, 0x0184, 0x0157,
+ 0x0130, 0x0118, 0x0107, 0x00e2, 0x00b9, 0x0097,
+ 0x005c, 0x000e, 0xffd1, 0xff9c, 0xff58, 0xff19,
+ 0xfef4, 0xfec2, 0xfe7d, 0xfe5c, 0xfe52, 0xfe32,
+ 0xfe14, 0xfe0d, 0xfe0b, 0xfe00, 0xfde4, 0xfdcc,
+ 0xfdcd, 0xfddc, 0xfdff, 0xfe2d, 0xfe3c, 0xfe27,
+ 0xfe00, 0xfdd4, 0xfdae, 0xfd7c, 0xfd57, 0xfd65,
+ 0xfd72, 0xfd85, 0xfdce, 0xfe01, 0xfe0b, 0xfe34,
+ 0xfe68, 0xfe8b, 0xfebd, 0xfef0, 0xff04, 0xfef9,
+ 0xfefd, 0xff24, 0xff2c, 0xff2f, 0xff6c, 0xff88,
+ 0xff80, 0xff9f, 0xff95, 0xff75, 0xff9d, 0xffd0,
+ 0x0010, 0x0095, 0x0115, 0x0178, 0x01ca, 0x01fc,
+ 0x0223, 0x0223, 0x0217, 0x024d, 0x0262, 0x022e,
+ 0x023a, 0x0253, 0x0213, 0x021d, 0x02aa, 0x02e8,
+ 0x02d6, 0x031d, 0x034e, 0x02dd, 0x025f, 0x0233,
+ 0x022a, 0x0268, 0x02da, 0x0310, 0x02f2, 0x02ca,
+ 0x02f5, 0x0374, 0x03da, 0x0400, 0x0424, 0x0444,
+ 0x03c9, 0x02ba, 0x0253, 0x028c, 0x024b, 0x0237,
+ 0x02c5, 0x02f1, 0x0309, 0x03b7, 0x0473, 0x04ef,
+ 0x050a, 0x050c, 0x0568, 0x053b, 0x0481, 0x0454,
+ 0x040d, 0x03ac, 0x045b, 0x0515, 0x053b, 0x05cf,
+ 0x061e, 0x05c3, 0x060d, 0x067b, 0x0646, 0x069f,
+ 0x072c, 0x0676, 0x05b3, 0x0617, 0x065a, 0x0627,
+ 0x0665, 0x06a0, 0x0624, 0x0501, 0x03a9, 0x0310,
+ 0x0360, 0x03ef, 0x04c8, 0x0572, 0x04ef, 0x03f3,
+ 0x0339, 0x026a, 0x021b, 0x02be, 0x0352, 0x0329,
+ 0x0224, 0x0070, 0xff01, 0xfdfb, 0xfd4a, 0xfdd7,
+ 0xfe8c, 0xfe3a, 0xfee3, 0xffc6, 0xfe5a, 0xfd75,
+ 0xfe4c, 0xfe25, 0xff2b, 0x01f0, 0x01f9, 0x00cd,
+ 0x00d7, 0xff79, 0xfe5e, 0xff69, 0xffa0, 0xffe1,
+ 0x015d, 0x013e, 0x005c, 0x005c, 0xffbe, 0xfeee,
+ 0xfe5a, 0xfda4, 0xfe5c, 0xff7c, 0xffa1, 0x00fe,
+ 0x0247, 0x011f, 0x0084, 0x0094, 0xff0f, 0xfead,
+ 0xff7f, 0xff03, 0xfff8, 0x0207, 0x015e, 0x00ca,
+ 0x01b3, 0x00a0, 0xff44, 0xffb8, 0xffd0, 0xff93,
+ 0xff76, 0xfe8c, 0xfd4b, 0xfbb6, 0xfac6, 0xfc2b,
+ 0xfe20, 0xff4c, 0x00ab, 0x01f7, 0x02af, 0x024d,
+ 0x00f6, 0x008b, 0x0062, 0xff47, 0xff11, 0xffb6,
+ 0x003e, 0x0134, 0x0143, 0x005d, 0x003c, 0xfffe,
+ 0xffb4, 0x0058, 0x00ac, 0x016a, 0x0307, 0x029b,
+ 0x00b2, 0xffc9, 0xfeaf, 0xfdf4, 0x002e, 0x0353,
+ 0x0457, 0x0436, 0x03a0, 0x015f, 0xfdef, 0xfb98,
+ 0xfc0a, 0xfdd2, 0xfe8e, 0x0009, 0x02dd, 0x02dd,
+ 0x0141, 0x022d, 0x0361, 0x0487, 0x07d5, 0x099b,
+ 0x07d9, 0x0503, 0x01e8, 0x0010, 0xffe7, 0xffbb,
+ 0x0123, 0x037b, 0x0329, 0x0252, 0x02bc, 0x01c9,
+ 0x0111, 0x0324, 0x05b2, 0x07ed, 0x0ac6, 0x0b62,
+ 0x091c, 0x085e, 0x08a9, 0x06c5, 0x05bb, 0x06b5,
+ 0x0610, 0x048d, 0x03d1, 0x034d, 0x040e, 0x05b4,
+ 0x07cd, 0x0a8b, 0x0a35, 0x064c, 0x0346, 0x026d,
+ 0x03a9, 0x0513, 0x041a, 0x039a, 0x0386, 0x016f,
+ 0x017e, 0x02d9, 0x020c, 0x0483, 0x08c5, 0x0807,
+ 0x069a, 0x0658, 0x0379, 0x014c, 0x00d6, 0x0074,
+ 0x03e2, 0x0813, 0x079a, 0x088d, 0x0b89, 0x08a1,
+ 0x0501, 0x0712, 0x0778, 0x0588, 0x07d2, 0x0a2a,
+ 0x08f1, 0x0898, 0x09b7, 0x09ad, 0x0779, 0x04dd,
+ 0x053f, 0x06ab, 0x06da, 0x07cc, 0x071b, 0x03c1,
+ 0x0199, 0xffbb, 0xfeac, 0x0009, 0x0071, 0x032b,
+ 0x099b, 0x0a54, 0x068f, 0x04f3, 0x0216, 0xfe79,
+ 0xfcf7, 0xfbb8, 0xfcda, 0xffe8, 0x00b0, 0x00d8,
+ 0x0055, 0xfd88, 0xfc4a, 0xfe3e, 0x00b7, 0x014f,
+ 0x00c3, 0x0305, 0x054e, 0x02c5, 0x01a9, 0x03a4,
+ 0x00fe, 0xfe84, 0x02d0, 0x0537, 0x0399, 0x05c4,
+ 0x077a, 0x03aa, 0x0044, 0xfe16, 0xfbc3, 0xfccb,
+ 0xfdeb, 0xfe12, 0x024f, 0x046e, 0x00f2, 0x0004,
+ 0xff5c, 0xfb92, 0xfacb, 0xfaf6, 0xf9a1, 0xfb2b,
+ 0xfc60, 0xfa12, 0xf738, 0xf575, 0xf801, 0xfde5,
+ 0x0054, 0xff90, 0xfe4a, 0xfc18, 0xfa77, 0xf98b,
+ 0xf963, 0xfacc, 0xfa72, 0xf8c9, 0xf9db, 0xfac2,
+ 0xfa28, 0xfd08, 0x0266, 0x051f, 0x05e8, 0x05fe,
+ 0x0315, 0xffb8, 0xffc2, 0xff51, 0xfdf3, 0x003d,
+ 0x01ce, 0xff30, 0xfcd6, 0xfa2c, 0xf698, 0xf5e4,
+ 0xf82d, 0xfdc4, 0x044e, 0x0593, 0x04b6, 0x04ea,
+ 0x0233, 0x0111, 0x051e, 0x0667, 0x042d, 0x03e6,
+ 0x027f, 0xfd27, 0xf840, 0xf78a, 0xf9f5, 0xfc91,
+ 0xff4c, 0x0343, 0x04e8, 0x014c, 0xfd3d, 0xfc32,
+ 0xfb4a, 0xfb9e, 0xff33, 0x00cf, 0xff35, 0xfe89,
+ 0xfdd2, 0xfce0, 0xfd79, 0xfdd1, 0xfed7, 0x014b,
+ 0x01fe, 0x018f, 0x00a0, 0xfe8f, 0xfe6c, 0xff07,
+ 0xfe13, 0xff4f, 0x02ae, 0x057b, 0x07d7, 0x08d7,
+ 0x096c, 0x091b, 0x047d, 0xffba, 0xfeae, 0xfe65,
+ 0xff25, 0x008d, 0x00d8, 0x01c0, 0x00f3, 0xff59,
+ 0x028e, 0x04a6, 0x0366, 0x0724, 0x0a06, 0x064b,
+ 0x050f, 0x04b2, 0x004b, 0xff38, 0xffcb, 0xfe01,
+ 0x0107, 0x0580, 0x04bc, 0x0575, 0x069b, 0x0259,
+ 0xfed7, 0xfdaa, 0xfbfb, 0xfc68, 0xfca6, 0xfd10,
+ 0x016f, 0x02a2, 0x00ad, 0x0271, 0x0073, 0xfbbc,
+ 0xfe19, 0xffb2, 0xfff2, 0x0746, 0x0a38, 0x057c,
+ 0x04fd, 0x035e, 0xfe94, 0x0139, 0x04cf, 0x027f,
+ 0x0284, 0x03af, 0x000a, 0xfb60, 0xf7e0, 0xf57a,
+ 0xf674, 0xfa09, 0xfe89, 0x0248, 0x01ed, 0xfed9,
+ 0xfd18, 0xfc8b, 0xfd74, 0x0068, 0x0290, 0x02ee,
+ 0x0200, 0xfe53, 0xf989, 0xf719, 0xf7d1, 0xfae8,
+ 0xfc9b, 0xfb57, 0xfc16, 0xfdb4, 0xfaa3, 0xf87c,
+ 0xfb96, 0xfbe4, 0xf802, 0xf6f1, 0xf6db, 0xf553,
+ 0xf7bf, 0xfc9c, 0xfdfb, 0xfe1b, 0xfc9e, 0xf61d,
+ 0xf057, 0xee29, 0xec00, 0xed4a, 0xf207, 0xf37c,
+ 0xf476, 0xf8ff, 0xfc69, 0xfc57, 0xfa9f, 0xf8cb,
+ 0xf690, 0xf18d, 0xeb72, 0xe653, 0xde19, 0xd3f8,
+ 0xd03e, 0xd4b2, 0xdcc1, 0xe511, 0xecc3, 0xf2b9,
+ 0xf374, 0xee63, 0xe938, 0xe8b7, 0xead0, 0xea94,
+ 0xe8f5, 0xea3b, 0xec17, 0xecf2, 0xf1ee, 0xf894,
+ 0xf94d, 0xf863, 0xfb53, 0xfc29, 0xf9cf, 0xfae8,
+ 0xfbde, 0xf890, 0xf8db, 0xfc0d, 0xfa1e, 0xf90a,
+ 0xfccc, 0xfe1c, 0xfe8d, 0x02af, 0x05ed, 0x04e2,
+ 0x015e, 0xfe72, 0xfc6f, 0xfa52, 0xfc73, 0x031e,
+ 0x0760, 0x0986, 0x0bfd, 0x0d20, 0x0de2, 0x0d05,
+ 0x09c7, 0x073a, 0x0471, 0x037c, 0x06dd, 0x08c5,
+ 0x099c, 0x0b68, 0x09f6, 0x0b2c, 0x11ec, 0x1496,
+ 0x14aa, 0x1618, 0x1395, 0x0f79, 0x0dd3, 0x0bea,
+ 0x099f, 0x089d, 0x0b39, 0x11c5, 0x16bd, 0x19b8,
+ 0x1d45, 0x1c2e, 0x15b8, 0x1192, 0x1001, 0x0cf1,
+ 0x0be8, 0x0e88, 0x0ef1, 0x0d44, 0x0d92, 0x0f25,
+ 0x13b6, 0x1a4e, 0x1cfd, 0x1e54, 0x1e10, 0x1717,
+ 0x1254, 0x1304, 0x0e71, 0x092f, 0x0d79, 0x13f4,
+ 0x1062, 0x04eb, 0xff32, 0xffc6, 0xff76, 0x05d2,
+ 0x1083, 0x1495, 0x19db, 0x1a8c, 0x0c38, 0x04fb,
+ 0x0738, 0xff24, 0xfb05, 0x03db, 0x08a3, 0x0a28,
+ 0x0b8b, 0x0677, 0x01fa, 0x0278, 0x025e, 0x03cf,
+ 0x0a36, 0x1016, 0x0d52, 0x02e4, 0xfc49, 0xfe20,
+ 0x0015, 0x00a4, 0x0832, 0x0f43, 0x07c1, 0x0092,
+ 0x0730, 0x088f, 0x007c, 0xfd6a, 0xfa08, 0xf5cd,
+ 0xf9bf, 0xfeb4, 0x01d6, 0x060c, 0x04ab, 0xfe4a,
+ 0xf958, 0xf7b4, 0xf7c6, 0xf677, 0xfa2a, 0x0149,
+ 0xfcc5, 0xf8de, 0x0278, 0x02fe, 0xf8e4, 0xf9f7,
+ 0xfdcd, 0xf839, 0xf366, 0xf590, 0xfb67, 0xffeb,
+ 0xff11, 0xfbed, 0xfc82, 0xffa8, 0x0054, 0xfef9,
+ 0xfce6, 0xfa62, 0xfa7a, 0xf954, 0xf764, 0xfee7,
+ 0x0490, 0xffe5, 0x00de, 0xfe95, 0xf407, 0xfb8f,
+ 0x074c, 0x02c4, 0x0412, 0x0618, 0xfe57, 0xff1b,
+ 0xfc9a, 0xf518, 0x0015, 0x068f, 0xff6a, 0x0715,
+ 0x0a69, 0xfd07, 0xfe2c, 0x022f, 0xf6bd, 0xf62b,
+ 0xfcca, 0xf4fa, 0xf165, 0xf565, 0xef3d, 0xee98,
+ 0xf67d, 0xf263, 0xf16f, 0xf94b, 0xf46d, 0xf3cb,
+ 0xffc7, 0xfc70, 0xf3d4, 0xf5e0, 0xf27d, 0xec09,
+ 0xea2b, 0xedaf, 0xfb12, 0xfcc1, 0xee85, 0xf06b,
+ 0xf91f, 0xf6ca, 0xfcd0, 0x033f, 0xf6ed, 0xe8e5,
+ 0xe6b5, 0xedeb, 0xf740, 0xf850, 0xf856, 0xfb1b,
+ 0xf29a, 0xecb9, 0xfa69, 0xfd0d, 0xed0f, 0xf1f4,
+ 0xfe9a, 0xf105, 0xeae1, 0xf40c, 0xe0b2, 0xc438,
+ 0xbf4d, 0xc065, 0xcbf9, 0xe4a6, 0xf6eb, 0x0e97,
+ 0x1f1e, 0x0d8f, 0xffb6, 0x01e4, 0xf324, 0xeb5f,
+ 0xf91d, 0xf435, 0xe282, 0xe14b, 0xde5b, 0xd2cf,
+ 0xd70a, 0xe44e, 0xe9a2, 0xf92d, 0x1519, 0x1cb2,
+ 0x0b2c, 0xf696, 0xe797, 0xdd84, 0xd6f3, 0xd92f,
+ 0xe5f2, 0xee07, 0xf19e, 0xf927, 0xf8a4, 0xf16c,
+ 0xedb6, 0xea0c, 0xeb10, 0xeec8, 0xf110, 0xf988,
+ 0xf7c6, 0xeb8b, 0xf25b, 0xfac1, 0xf83a, 0x0424,
+ 0x0bea, 0x048a, 0x0b57, 0x1183, 0x04fb, 0xfd84,
+ 0x015a, 0x0325, 0xfbb3, 0xf3ad, 0xf8e4, 0xfb8e,
+ 0xf7dc, 0x03a1, 0x0b95, 0x02ca, 0x0684, 0x0d73,
+ 0x041d, 0x00d7, 0x03af, 0xfa34, 0xf50e, 0x0106,
+ 0x08b2, 0x03bb, 0x0553, 0x0bf0, 0x064b, 0xfe7d,
+ 0xff16, 0x02ea, 0x0e5e, 0x18f9, 0x1413, 0x0dee,
+ 0x0d06, 0x0792, 0x064a, 0x0ee5, 0x16c6, 0x1618,
+ 0x0f21, 0x0e81, 0x12db, 0x0fc0, 0x11ba, 0x1e52,
+ 0x20a8, 0x1b1e, 0x1ab9, 0x1613, 0x0b42, 0x0501,
+ 0x0565, 0x07ba, 0x071a, 0x08d3, 0x113d, 0x13f9,
+ 0x12f2, 0x1c30, 0x23c4, 0x22f7, 0x2883, 0x2e93,
+ 0x2c7d, 0x2aca, 0x26cf, 0x227b, 0x26d8, 0x2915,
+ 0x2a35, 0x3400, 0x360d, 0x300f, 0x32fd, 0x32bf,
+ 0x2820, 0x2250, 0x263f, 0x2da8, 0x2cd9, 0x26ed,
+ 0x2d40, 0x3170, 0x24a2, 0x1e67, 0x23d1, 0x21ed,
+ 0x17b9, 0x0b0c, 0xff28, 0xf2ea, 0xe7d5, 0xeeb6,
+ 0x066c, 0x17b4, 0x1974, 0x113b, 0x0f9a, 0x155c,
+ 0x0ae1, 0xfe23, 0x0432, 0x02f8, 0xf7da, 0xf6f2,
+ 0xf67f, 0xf309, 0xeddb, 0xe7c1, 0xef0a, 0xf3d7,
+ 0xec3c, 0xf41a, 0xff72, 0xfa52, 0xf79e, 0xf5d5,
+ 0xf030, 0xeb3f, 0xe1a6, 0xe866, 0xfa20, 0xf0f7,
+ 0xe909, 0xf254, 0xe781, 0xdd59, 0xe713, 0xe91e,
+ 0xecd3, 0xf30d, 0xebfb, 0xee4c, 0xf344, 0xe71f,
+ 0xe17c, 0xe1a0, 0xdc8c, 0xe038, 0xe436, 0xe51d,
+ 0xeaf0, 0xe75f, 0xe14a, 0xe3d1, 0xe01d, 0xdd03,
+ 0xdd60, 0xd60e, 0xda54, 0xe7e1, 0xe49c, 0xdbea,
+ 0xd65f, 0xd162, 0xd813, 0xddd5, 0xda13, 0xdd22,
+ 0xdd9b, 0xd5b9, 0xd54c, 0xd4f3, 0xd12a, 0xd321,
+ 0xd202, 0xd092, 0xd589, 0xd063, 0xc404, 0xc358,
+ 0xc8ae, 0xcb35, 0xcac9, 0xc4da, 0xc322, 0xce78,
+ 0xd6f1, 0xd5b9, 0xda7a, 0xde30, 0xd3e0, 0xd0ea,
+ 0xd7d5, 0xd1ea, 0xd019, 0xda88, 0xd44e, 0xcd98,
+ 0xdb8d, 0xdc3e, 0xce65, 0xd24e, 0xdc0a, 0xdb14,
+ 0xd820, 0xd7ea, 0xdfd4, 0xec74, 0xee34, 0xe82e,
+ 0xe4ef, 0xe153, 0xdbc9, 0xdb5d, 0xe104, 0xdf79,
+ 0xd706, 0xdb2a, 0xe14e, 0xda42, 0xdfec, 0xec9a,
+ 0xdf8e, 0xd639, 0xe27d, 0xdedb, 0xd863, 0xe764,
+ 0xe910, 0xde74, 0xe488, 0xe642, 0xe056, 0xe7c4,
+ 0xea73, 0xe643, 0xedc0, 0xef17, 0xe758, 0xea2b,
+ 0xeb9f, 0xe7b7, 0xebe1, 0xecf0, 0xe5f0, 0xe297,
+ 0xe306, 0xe664, 0xe9fc, 0xe8d8, 0xe754, 0xe53c,
+ 0xe44c, 0xe81e, 0xe852, 0xed17, 0xfa95, 0xf7b4,
+ 0xef1f, 0xf684, 0xf551, 0xed17, 0xf14b, 0xede6,
+ 0xe70b, 0xee4c, 0xf2c8, 0xf59d, 0xfa4e, 0xf611,
+ 0xfa7b, 0x01e3, 0xf5d4, 0xf25a, 0xfead, 0x00f1,
+ 0x01b5, 0x01d6, 0xff42, 0x0d06, 0x14fb, 0x0538,
+ 0xff32, 0x0733, 0x0bec, 0x10ed, 0x1356, 0x15a5,
+ 0x1909, 0x1173, 0x0edf, 0x1b1e, 0x1cfb, 0x15b6,
+ 0x1790, 0x1f14, 0x2613, 0x2592, 0x1dae, 0x1b3d,
+ 0x1dbc, 0x20b4, 0x25ce, 0x28b7, 0x29c0, 0x2b09,
+ 0x2b09, 0x2a10, 0x26f0, 0x2b73, 0x3540, 0x2b2c,
+ 0x22e1, 0x363f, 0x3a1c, 0x2a3b, 0x3025, 0x35fe,
+ 0x2f28, 0x3740, 0x39f5, 0x2936, 0x2391, 0x2df7,
+ 0x398f, 0x3cf2, 0x36ab, 0x364c, 0x3ab0, 0x3547,
+ 0x2ee4, 0x3133, 0x3b7b, 0x46f7, 0x4679, 0x41f4,
+ 0x40c6, 0x3665, 0x309f, 0x3c84, 0x436a, 0x421a,
+ 0x45c3, 0x4798, 0x4644, 0x4913, 0x4a7d, 0x3f82,
+ 0x32aa, 0x3c25, 0x49a0, 0x4277, 0x44d1, 0x4dee,
+ 0x3d21, 0x38f5, 0x4c16, 0x4425, 0x3a84, 0x4ba6,
+ 0x4a5d, 0x3ccd, 0x474b, 0x50ef, 0x4760, 0x3d21,
+ 0x3e97, 0x489c, 0x4a26, 0x3d8b, 0x3291, 0x33be,
+ 0x3f23, 0x44e3, 0x3c56, 0x3630, 0x3643, 0x377a,
+ 0x3e1a, 0x3d4e, 0x3925, 0x4155, 0x3a8a, 0x29bd,
+ 0x34f7, 0x3dc4, 0x32e5, 0x36b4, 0x385f, 0x2c6e,
+ 0x31fd, 0x3ace, 0x343c, 0x2fa5, 0x311f, 0x3418,
+ 0x2bb2, 0x1c3c, 0x2bd2, 0x3de7, 0x2312, 0x15fc,
+ 0x31fe, 0x37c0, 0x28a4, 0x2843, 0x2cce, 0x356c,
+ 0x3c4b, 0x3463, 0x30e6, 0x322d, 0x2c0a, 0x2e29,
+ 0x31d9, 0x2d38, 0x3278, 0x336b, 0x244c, 0x2674,
+ 0x33ea, 0x2b2d, 0x207a, 0x2a6a, 0x33b6, 0x2f4d,
+ 0x2af8, 0x2b26, 0x22fb, 0x19b1, 0x23c0, 0x2c52,
+ 0x1f7e, 0x1f4f, 0x2edb, 0x2746, 0x1ac7, 0x2479,
+ 0x27a7, 0x1d85, 0x1bef, 0x1e45, 0x1f2a, 0x1f3b,
+ 0x1934, 0x14fd, 0x1474, 0x116c, 0x1535, 0x1bb2,
+ 0x17ec, 0x12b7, 0x0f47, 0x0c4e, 0x10cb, 0x12f8,
+ 0x10c0, 0x162f, 0x165a, 0x0f4e, 0x119f, 0x0e3a,
+ 0x01b0, 0x0599, 0x1045, 0x0f5a, 0x0d4e, 0x0bb8,
+ 0x076a, 0x0709, 0x08c3, 0x0abd, 0x0cf9, 0x095f,
+ 0x0343, 0x046d, 0x0b99, 0x0c34, 0x00ab, 0xfa3c,
+ 0xffa0, 0xfcf4, 0xf66b, 0xfd85, 0x02d4, 0xfdcf,
+ 0xfd65, 0xffb4, 0xfcfa, 0xf79a, 0xf2d4, 0xf4ff,
+ 0xf8e4, 0xf144, 0xe836, 0xeba6, 0xf21d, 0xf1e7,
+ 0xf013, 0xf1bd, 0xf10b, 0xea1b, 0xe734, 0xeac5,
+ 0xec30, 0xefac, 0xf3ec, 0xec7f, 0xe483, 0xe9ea,
+ 0xef6f, 0xecf7, 0xea7d, 0xe87d, 0xe485, 0xe270,
+ 0xe2d4, 0xe0b1, 0xddc5, 0xe0a4, 0xe2b7, 0xde4b,
+ 0xe06b, 0xe93f, 0xe7ed, 0xdfb3, 0xd9de, 0xd4c8,
+ 0xd828, 0xe2b9, 0xe121, 0xd7df, 0xd8ea, 0xdcac,
+ 0xd926, 0xd6d1, 0xda7e, 0xdc87, 0xd669, 0xd109,
+ 0xda1d, 0xe4f1, 0xde4d, 0xd70e, 0xddf0, 0xddf7,
+ 0xd548, 0xd951, 0xddcd, 0xd3f3, 0xd221, 0xdefb,
+ 0xe439, 0xdf90, 0xdcbe, 0xdca2, 0xde3a, 0xdf04,
+ 0xd929, 0xcf51, 0xccc9, 0xd67b, 0xdeac, 0xd986,
+ 0xd6d7, 0xde68, 0xd99d, 0xca7f, 0xcc40, 0xd4a5,
+ 0xcfc9, 0xd100, 0xde4b, 0xda54, 0xcc6c, 0xd9de,
+ 0xef2d, 0xe270, 0xcd22, 0xd262, 0xdac4, 0xd630,
+ 0xd33f, 0xd08a, 0xce30, 0xd324, 0xd408, 0xd0a5,
+ 0xd423, 0xd812, 0xdb0c, 0xdc39, 0xcfd8, 0xc553,
+ 0xce17, 0xd51e, 0xd055, 0xce03, 0xccb5, 0xc957,
+ 0xcc03, 0xd1a8, 0xd014, 0xc9df, 0xc993, 0xcbf7,
+ 0xc8cb, 0xca60, 0xd230, 0xcf70, 0xcb3b, 0xd30d,
+ 0xd509, 0xce8d, 0xd091, 0xd33e, 0xcdec, 0xcc03,
+ 0xcef3, 0xcf39, 0xcf68, 0xd110, 0xce38, 0xca90,
+ 0xcee3, 0xd24e, 0xce74, 0xd02f, 0xd553, 0xd2ef,
+ 0xcffc, 0xcc04, 0xc69e, 0xcd3f, 0xd359, 0xca7f,
+ 0xc825, 0xd2e1, 0xd9a6, 0xd84d, 0xd15b, 0xcda9,
+ 0xd11e, 0xd11e, 0xd286, 0xd5ce, 0xcf11, 0xcf6a,
+ 0xd66f, 0xcc62, 0xca87, 0xd739, 0xce03, 0xc7fc,
+ 0xd904, 0xd58f, 0xc6e9, 0xce2e, 0xd51c, 0xd831,
+ 0xe31f, 0xe2db, 0xd9bf, 0xd80b, 0xd98a, 0xde70,
+ 0xe2b3, 0xdcdb, 0xd6ed, 0xd97f, 0xdde2, 0xdd89,
+ 0xdc17, 0xe0e5, 0xe049, 0xd725, 0xde3e, 0xea4c,
+ 0xe3f6, 0xe4f8, 0xeb8a, 0xdf70, 0xdec9, 0xe888,
+ 0xd978, 0xd45e, 0xe700, 0xe395, 0xdb53, 0xe6e0,
+ 0xe5aa, 0xdfea, 0xe9e1, 0xe933, 0xe364, 0xea25,
+ 0xe761, 0xe106, 0xe941, 0xeaf1, 0xe5f4, 0xe97d,
+ 0xe6b1, 0xe2d7, 0xecd4, 0xf00d, 0xeb95, 0xf084,
+ 0xeeb9, 0xe2f9, 0xe248, 0xea82, 0xf377, 0xf7cd,
+ 0xf220, 0xf2bf, 0xfac5, 0xf69b, 0xf342, 0xf749,
+ 0xef61, 0xe7dc, 0xeba6, 0xeb54, 0xebfa, 0xf16e,
+ 0xf32f, 0xf475, 0xedab, 0xe467, 0xee7c, 0xf499,
+ 0xe8f7, 0xe8ac, 0xe9f1, 0xe310, 0xee4b, 0xf7f4,
+ 0xeb44, 0xeb40, 0xfb50, 0xfccf, 0xf3ef, 0xf1c2,
+ 0xf39e, 0xf19f, 0xf4d5, 0xfe93, 0xf2c4, 0xde1e,
+ 0xe888, 0xf4c4, 0xefa7, 0xfa15, 0xfc8a, 0xe994,
+ 0xf0b2, 0xff59, 0xf6a2, 0xf83d, 0xfce3, 0xf159,
+ 0xf06c, 0xf2a9, 0xeb5d, 0xee28, 0xf368, 0xf42f,
+ 0xf82a, 0xf509, 0xf123, 0xf2ca, 0xf099, 0xfa48,
+ 0x0748, 0xfa95, 0xefc2, 0xf560, 0xeffe, 0xec27,
+ 0xf506, 0xf5e2, 0xf3e2, 0xf4aa, 0xef01, 0xecd4,
+ 0xf2ee, 0xf8a4, 0xfb14, 0xf84f, 0xf403, 0xefc6,
+ 0xeb0f, 0xf1bb, 0xfcfc, 0xf983, 0xf1d4, 0xf153,
+ 0xf50f, 0xfafa, 0xf915, 0xf836, 0x04cc, 0x0402,
+ 0xf749, 0xfd73, 0x033b, 0xfd64, 0xfe63, 0xf9f8,
+ 0xf703, 0x0322, 0xfd27, 0xf0c3, 0x000a, 0x0594,
+ 0xf942, 0xfd66, 0xfca8, 0xf1ce, 0xf961, 0xfe64,
+ 0xf567, 0xf4e7, 0xf62b, 0xf55e, 0xfa65, 0xfc65,
+ 0xffd6, 0x034d, 0xfae1, 0xff90, 0x1318, 0x0d6a,
+ 0xfe74, 0x0310, 0xffee, 0xf5d2, 0xffc8, 0x0713,
+ 0xfef9, 0x0335, 0x0cd0, 0x05cd, 0x02dc, 0x0e7f,
+ 0x0c4c, 0xfcf4, 0xfd5a, 0x0457, 0xffb1, 0xfe83,
+ 0x0324, 0x015c, 0x0232, 0x0678, 0x07e3, 0x0e8b,
+ 0x1117, 0x0b55, 0x10bc, 0x1398, 0x098e, 0x0e7a,
+ 0x1393, 0x037c, 0x015d, 0x0b8e, 0x03ba, 0x0057,
+ 0x0a0d, 0x0bbc, 0x0c0d, 0x0d27, 0x0c60, 0x12bb,
+ 0x13d5, 0x0f8b, 0x14ee, 0x1222, 0x06a0, 0x076b,
+ 0x08f4, 0x0bda, 0x163d, 0x10b0, 0x085d, 0x120c,
+ 0x144c, 0x12fa, 0x1c08, 0x1828, 0x128d, 0x18b2,
+ 0x0ee6, 0x064c, 0x163f, 0x1993, 0x0e73, 0x15df,
+ 0x1c0a, 0x0ef0, 0x0962, 0x1325, 0x18d6, 0x19c8,
+ 0x1e9e, 0x1b8c, 0x0db2, 0x0c42, 0x1548, 0x153d,
+ 0x16a0, 0x1b03, 0x1390, 0x0ed3, 0x1484, 0x1725,
+ 0x1b87, 0x203a, 0x197b, 0x0e49, 0x083a, 0x1264,
+ 0x25ba, 0x1ebc, 0x0e7d, 0x1a96, 0x1e75, 0x0d49,
+ 0x110c, 0x18b0, 0x102c, 0x1281, 0x1648, 0x11ff,
+ 0x17c2, 0x17c7, 0x107d, 0x179e, 0x1a0b, 0x133e,
+ 0x173e, 0x166a, 0x0f66, 0x1659, 0x1cf7, 0x18a2,
+ 0x14f3, 0x15a4, 0x1a43, 0x18c9, 0x1145, 0x16ce,
+ 0x19d7, 0x0c15, 0x0cb2, 0x16f0, 0x1008, 0x100e,
+ 0x1d40, 0x1bd1, 0x13cf, 0x12a0, 0x13e6, 0x1b8b,
+ 0x2137, 0x1bcc, 0x182b, 0x171b, 0x125f, 0x12d9,
+ 0x181a, 0x1a09, 0x19f7, 0x1956, 0x1906, 0x1992,
+ 0x1935, 0x1ad1, 0x1f9c, 0x218b, 0x1b72, 0x11c1,
+ 0x10e3, 0x15f6, 0x14f5, 0x18f0, 0x240d, 0x20ae,
+ 0x1883, 0x1d7a, 0x1fb9, 0x1cf9, 0x1e84, 0x1b96,
+ 0x1b1c, 0x20db, 0x191f, 0x1172, 0x1ff8, 0x2bd6,
+ 0x2604, 0x2243, 0x2309, 0x1d30, 0x1905, 0x21eb,
+ 0x25cd, 0x1703, 0x171e, 0x2946, 0x1bfb, 0x07bc,
+ 0x212a, 0x356a, 0x245b, 0x2390, 0x2b60, 0x18ec,
+ 0x112e, 0x1e1a, 0x1f96, 0x1f24, 0x2470, 0x2324,
+ 0x2425, 0x25d2, 0x1f57, 0x21a6, 0x2bb6, 0x2780,
+ 0x1e32, 0x207c, 0x235f, 0x1ec1, 0x1c9c, 0x209c,
+ 0x2079, 0x1705, 0x12da, 0x1ed7, 0x26d0, 0x1e6d,
+ 0x1dc8, 0x282c, 0x2404, 0x1a81, 0x1f8b, 0x223d,
+ 0x1bdf, 0x1bb2, 0x1a05, 0x13dc, 0x197c, 0x1fa9,
+ 0x1a77, 0x1c1e, 0x2323, 0x1cd0, 0x1328, 0x165d,
+ 0x1c26, 0x1aeb, 0x1d73, 0x2147, 0x157f, 0x07eb,
+ 0x0fda, 0x1c0e, 0x1889, 0x1403, 0x1725, 0x1b57,
+ 0x1e78, 0x182b, 0x108a, 0x1977, 0x1c81, 0x0f9e,
+ 0x1152, 0x174b, 0x0aad, 0x06fe, 0x166b, 0x1e3e,
+ 0x1792, 0x0cbb, 0x0b3c, 0x158f, 0x17c7, 0x12ba,
+ 0x176a, 0x19c6, 0x1486, 0x14fa, 0x155e, 0x1562,
+ 0x1886, 0x13a8, 0x11ba, 0x167f, 0x0fc2, 0x0e08,
+ 0x19ab, 0x1836, 0x0e67, 0x0f56, 0x134e, 0x13f2,
+ 0x15a0, 0x13a3, 0x10b5, 0x17b8, 0x1755, 0x0808,
+ 0x069d, 0x13ac, 0x1895, 0x1a36, 0x213c, 0x1d5e,
+ 0x0dbb, 0x0e34, 0x1774, 0x1347, 0x1206, 0x19ce,
+ 0x193a, 0x1141, 0x110b, 0x126d, 0x0bd6, 0x10d2,
+ 0x1ae3, 0x141d, 0x0abc, 0x08fb, 0x13d2, 0x1d4f,
+ 0x1067, 0x0e26, 0x1ccf, 0x18a0, 0x0edd, 0x1336,
+ 0x16d3, 0x15b0, 0x17c2, 0x1563, 0x1392, 0x1865,
+ 0x1284, 0x0f91, 0x17a4, 0x18ec, 0x18c3, 0x134d,
+ 0x1155, 0x16f3, 0x0ff7, 0x130b, 0x1cab, 0x1332,
+ 0x0d12, 0x1233, 0x169c, 0x13bd, 0x108d, 0x132d,
+ 0x119c, 0x1106, 0x116d, 0x1223, 0x128e, 0x0d20,
+ 0x0e4e, 0x0d13, 0x0e70, 0x16a2, 0x0c97, 0x095c,
+ 0x0e0b, 0x096a, 0x0e0b, 0x0cca, 0x05a5, 0x0424,
+ 0x08ce, 0x0fdb, 0x06e4, 0x0a43, 0x1272, 0x0229,
+ 0x02ca, 0x0e33, 0x06dd, 0xfe56, 0x051c, 0x0d1a,
+ 0x05dc, 0x0853, 0x077b, 0xfd85, 0x069c, 0x0319,
+ 0x00b6, 0x0910, 0xfebd, 0x0225, 0x04d5, 0xfbca,
+ 0x0119, 0x0183, 0xfe20, 0xf874, 0xf766, 0xff21,
+ 0xf8ee, 0xf2ee, 0xf4b7, 0xfde6, 0x0230, 0xf6ca,
+ 0xf9f1, 0xf836, 0xefb2, 0xf886, 0xf996, 0xfa1c,
+ 0xf976, 0xf60f, 0xf80e, 0xf1da, 0xf936, 0xfa27,
+ 0xf007, 0xfe74, 0xf9d9, 0xebd4, 0xf837, 0xf840,
+ 0xeb83, 0xebff, 0xf2e1, 0xedd4, 0xeb54, 0xf1a2,
+ 0xebb7, 0xeb71, 0xeb93, 0xe652, 0xeccd, 0xe8f2,
+ 0xe7a1, 0xeac9, 0xe39c, 0xeb58, 0xe9b6, 0xdc7e,
+ 0xe0ac, 0xe08f, 0xdf31, 0xe52b, 0xe55e, 0xe278,
+ 0xe261, 0xe5b7, 0xe6e3, 0xe32a, 0xda2a, 0xda0f,
+ 0xe40a, 0xdba5, 0xd41e, 0xdff6, 0xe48c, 0xe3a3,
+ 0xe2b6, 0xdbe8, 0xd8ac, 0xddbd, 0xe026, 0xd87a,
+ 0xd813, 0xe158, 0xe2c8, 0xe2a7, 0xe309, 0xdca9,
+ 0xd9e1, 0xdeac, 0xe136, 0xe0f8, 0xe089, 0xdd9e,
+ 0xd85c, 0xd4df, 0xde42, 0xe652, 0xdaab, 0xd980,
+ 0xe3b1, 0xde7c, 0xdae3, 0xdf5f, 0xdf86, 0xdc5a,
+ 0xde2f, 0xe23a, 0xdca5, 0xdebd, 0xea0b, 0xe552,
+ 0xda90, 0xddce, 0xe550, 0xdd11, 0xdacd, 0xe900,
+ 0xe488, 0xdb40, 0xde19, 0xdebc, 0xdc9b, 0xdc27,
+ 0xe9f9, 0xe630, 0xd042, 0xdac8, 0xde8f, 0xd59a,
+ 0xe3c5, 0xe53e, 0xd8c7, 0xd957, 0xe4e9, 0xe506,
+ 0xda87, 0xe399, 0xe93c, 0xdfb1, 0xdbee, 0xdeb5,
+ 0xe3a4, 0xddcf, 0xdf8b, 0xe1be, 0xd715, 0xe01e,
+ 0xe072, 0xdd60, 0xea48, 0xe28f, 0xe3f1, 0xe7b8,
+ 0xdab2, 0xdcd9, 0xdf8e, 0xe688, 0xe967, 0xdd2e,
+ 0xdeaa, 0xe1fb, 0xe0cb, 0xe0c5, 0xe99f, 0xeecd,
+ 0xdaf9, 0xd701, 0xdb01, 0xd9f2, 0xe497, 0xddef,
+ 0xdd6e, 0xe1d9, 0xdd1a, 0xe9dc, 0xe3e1, 0xdb49,
+ 0xe56c, 0xe1f1, 0xdfc7, 0xdf63, 0xe381, 0xe2ba,
+ 0xda33, 0xe57c, 0xe17a, 0xd8c0, 0xe2bb, 0xe14e,
+ 0xdd79, 0xd8cd, 0xde13, 0xe07d, 0xd17a, 0xdaef,
+ 0xde6c, 0xd470, 0xdcaa, 0xdcd7, 0xd8e1, 0xd6b5,
+ 0xd9ec, 0xda60, 0xd201, 0xddd4, 0xdb06, 0xd1a6,
+ 0xde6f, 0xd716, 0xd1dd, 0xd30e, 0xce41, 0xd7d1,
+ 0xd35f, 0xc9e5, 0xceb5, 0xd657, 0xd9fb, 0xd29d,
+ 0xd330, 0xd27a, 0xcf28, 0xd297, 0xccb3, 0xd660,
+ 0xd90b, 0xc84f, 0xd48a, 0xdc97, 0xd183, 0xd2b4,
+ 0xdcf7, 0xe20d, 0xd7fa, 0xd56c, 0xd561, 0xced5,
+ 0xd463, 0xd2b8, 0xd661, 0xe0c6, 0xd5cb, 0xd481,
+ 0xe0ab, 0xe1ca, 0xdb93, 0xdb6b, 0xe0f8, 0xd9db,
+ 0xd913, 0xe137, 0xdd61, 0xe0f5, 0xe612, 0xe4ad,
+ 0xe59e, 0xdfc7, 0xdee0, 0xe840, 0xead8, 0xe2cc,
+ 0xe1b1, 0xe923, 0xe1fa, 0xdf94, 0xec1d, 0xebb3,
+ 0xea15, 0xead8, 0xe1da, 0xe25a, 0xedbf, 0xed52,
+ 0xe0fa, 0xdd88, 0xe3eb, 0xe4c4, 0xe317, 0xe6a1,
+ 0xe9c0, 0xe9d2, 0xeb5f, 0xe8dc, 0xe4b3, 0xe8c1,
+ 0xea45, 0xeaed, 0xef94, 0xeadb, 0xe8ef, 0xf3b5,
+ 0xf338, 0xe6f1, 0xecfc, 0xf8be, 0xef5c, 0xe9ce,
+ 0xee6f, 0xef7a, 0xf484, 0xf48a, 0xf2bf, 0xf5b5,
+ 0xf0bc, 0xe965, 0xebdb, 0xf667, 0xf529, 0xef4d,
+ 0xf488, 0xf053, 0xee4b, 0xf17e, 0xed9b, 0xf53e,
+ 0xf6d4, 0xf04b, 0xf148, 0xed52, 0xed84, 0xf20b,
+ 0xf32d, 0xeb9d, 0xe5ef, 0xf307, 0xf06f, 0xe6d8,
+ 0xee12, 0xed09, 0xec41, 0xeaf0, 0xea23, 0xf148,
+ 0xefe3, 0xef4d, 0xef14, 0xf553, 0xf63f, 0xe6a0,
+ 0xf648, 0xffcc, 0xece5, 0xf315, 0xf610, 0xf140,
+ 0xf6b8, 0xf6f2, 0xf94a, 0xfb3e, 0xfabf, 0xf45b,
+ 0xf540, 0xfd98, 0xf537, 0xf915, 0xfdcd, 0xf8c6,
+ 0x014c, 0xf9ea, 0xf908, 0x0108, 0xf766, 0xfc71,
+ 0xfc61, 0xf5ea, 0xfd47, 0x00cf, 0x038c, 0xff7f,
+ 0x0048, 0x006f, 0xf64c, 0xfd98, 0x00c9, 0x0037,
+ 0x0296, 0xfb27, 0xfea9, 0x001b, 0x05ae, 0x07c6,
+ 0xf7a2, 0xfeca, 0xff8a, 0xf8cb, 0x047c, 0xfdad,
+ 0xfcaa, 0x022b, 0xfa0a, 0xf9c7, 0xfba1, 0x0017,
+ 0x003a, 0x0208, 0x0208, 0xf4cb, 0xfee9, 0x02fc,
+ 0xf9f7, 0x0252, 0xf884, 0xf86d, 0x06ba, 0x016d,
+ 0x033a, 0x0328, 0xffda, 0x011b, 0x0007, 0x02db,
+ 0xff37, 0x02f5, 0x075b, 0x0289, 0x07d4, 0x064e,
+ 0x0511, 0x02d5, 0xfbbd, 0x08b9, 0x0999, 0xfed5,
+ 0x01e6, 0x046b, 0x06b0, 0x015a, 0x000b, 0x06e8,
+ 0x0494, 0x06a6, 0x08dd, 0x084a, 0x05bf, 0x0389,
+ 0x0c61, 0x067d, 0x00b2, 0x0b20, 0x06a6, 0x034a,
+ 0x0891, 0x0825, 0x076e, 0x099e, 0x0e74, 0x09b3,
+ 0x0426, 0x0400, 0x0355, 0x0a00, 0x0799, 0x0887,
+ 0x1161, 0x045c, 0x02d1, 0x0cd8, 0x05a6, 0x0ac8,
+ 0x11fe, 0x08b0, 0x09d4, 0x1323, 0x0f67, 0x0b16,
+ 0x1255, 0x10c6, 0x0a46, 0x0f51, 0x1016, 0x0bf0,
+ 0x0b21, 0x07e3, 0x0609, 0x09dc, 0x0e0b, 0x0c45,
+ 0x0a8b, 0x0dfc, 0x0c00, 0x0849, 0x0f23, 0x1432,
+ 0x0f16, 0x0cd1, 0x0d3e, 0x0c25, 0x0bd7, 0x0c0e,
+ 0x12d7, 0x139a, 0x0c3a, 0x1092, 0x0fc4, 0x0b77,
+ 0x1305, 0x109e, 0x0939, 0x0ad2, 0x0e9e, 0x0ecd,
+ 0x0cb6, 0x11e3, 0x1172, 0x0ccf, 0x1238, 0x10d0,
+ 0x0d8b, 0x116f, 0x1183, 0x0e91, 0x0e69, 0x1285,
+ 0x0ef2, 0x0b57, 0x1192, 0x10d9, 0x0fe5, 0x14ce,
+ 0x1a52, 0x19a6, 0x0f24, 0x11d4, 0x15eb, 0x0c04,
+ 0x0705, 0x05be, 0x0aa4, 0x0f60, 0x102c, 0x168a,
+ 0x14e7, 0x1123, 0x0f56, 0x0df8, 0x12da, 0x0ff5,
+ 0x0d6d, 0x0ce7, 0x09c6, 0x0d32, 0x0ed2, 0x1326,
+ 0x1358, 0x1346, 0x1808, 0x0b81, 0x0f6d, 0x1c0a,
+ 0x1090, 0x0f75, 0x10a5, 0x1453, 0x1b9e, 0x1221,
+ 0x15da, 0x1994, 0x1206, 0x1202, 0x111f, 0x16fd,
+ 0x1334, 0x0b08, 0x12f4, 0x1283, 0x1341, 0x1775,
+ 0x12db, 0x0f2a, 0x1353, 0x1d27, 0x1301, 0x0d93,
+ 0x1945, 0x1088, 0x119e, 0x1a17, 0x144c, 0x1571,
+ 0x0f4a, 0x0c06, 0x0f82, 0x0d01, 0x133a, 0x1445,
+ 0x1158, 0x1225, 0x1256, 0x1622, 0x131f, 0x1152,
+ 0x1006, 0x0c1c, 0x1021, 0x1027, 0x0ef9, 0x0c6c,
+ 0x0f5e, 0x1882, 0x114c, 0x1456, 0x1a30, 0x0ff7,
+ 0x11f6, 0x125a, 0x1232, 0x1151, 0x07b7, 0x0c69,
+ 0x0c8a, 0x0ed6, 0x1765, 0x0ccc, 0x0eba, 0x169d,
+ 0x0fcc, 0x0f01, 0x1417, 0x15da, 0x0c9c, 0x0dce,
+ 0x1680, 0x0d79, 0x0f36, 0x1422, 0x0e5f, 0x0ff5,
+ 0x1056, 0x1400, 0x148d, 0x0f5e, 0x0fe8, 0x0c73,
+ 0x1131, 0x15af, 0x10bc, 0x1441, 0x1110, 0x0de0,
+ 0x1319, 0x1053, 0x10a0, 0x12e6, 0x127a, 0x159a,
+ 0x1449, 0x1015, 0x0fd4, 0x0f66, 0x0ce4, 0x0df8,
+ 0x0c72, 0x07a1, 0x0ca4, 0x0f78, 0x0cd1, 0x0f4b,
+ 0x1050, 0x10e9, 0x0f9c, 0x0d4d, 0x0cae, 0x0a2f,
+ 0x0ee6, 0x115b, 0x0c21, 0x0d8e, 0x0f9b, 0x0e75,
+ 0x0c54, 0x0dc6, 0x11c4, 0x0e6e, 0x0df8, 0x0d6b,
+ 0x08db, 0x0bb1, 0x0959, 0x05b0, 0x0c87, 0x0e98,
+ 0x0aff, 0x0c9b, 0x0e1d, 0x0798, 0x07e8, 0x11ee,
+ 0x1110, 0x0d9e, 0x0cb4, 0x07e1, 0x0aa3, 0x0cd1,
+ 0x0c77, 0x1461, 0x13c1, 0x0d00, 0x103e, 0x0eec,
+ 0x09a2, 0x0c59, 0x0aa3, 0x088c, 0x0c2b, 0x07e9,
+ 0x0333, 0x0475, 0x0833, 0x0c9f, 0x0ae4, 0x0a95,
+ 0x07d7, 0x030f, 0x098a, 0x085b, 0x050e, 0x0bc8,
+ 0x08f4, 0x05f5, 0x080c, 0x0935, 0x0d76, 0x0c66,
+ 0x0806, 0x070e, 0x0c1a, 0x0f91, 0x09b0, 0x098d,
+ 0x0b44, 0x0997, 0x090d, 0x0468, 0x06c2, 0x07ec,
+ 0x035e, 0x09f2, 0x0c95, 0x0941, 0x092a, 0x0663,
+ 0x0422, 0x03a8, 0x09a5, 0x0daf, 0x0617, 0x014a,
+ 0xffee, 0x013b, 0x06de, 0x0750, 0x0416, 0x01af,
+ 0x00dc, 0x01ed, 0x02f9, 0xfeeb, 0xfb92, 0x00c4,
+ 0x0079, 0xffaf, 0x0365, 0xfed3, 0xfe59, 0xfe89,
+ 0xfd4a, 0x02e3, 0xfee8, 0xfb8c, 0xfdab, 0xfd7b,
+ 0x022c, 0x00d8, 0xffae, 0xff08, 0xf957, 0xfe83,
+ 0xfff6, 0xfce3, 0xff1d, 0xfde1, 0xfceb, 0xf853,
+ 0xfe0a, 0x08e1, 0xfe71, 0xf99e, 0xfe1e, 0xfc86,
+ 0xfd03, 0xfbfd, 0xfce1, 0xfc85, 0xfd8c, 0x003d,
+ 0xf833, 0xfafa, 0x02ff, 0xff9c, 0x00ed, 0x005a,
+ 0xfdf5, 0xfaa3, 0xf3bc, 0xf80c, 0xfade, 0xf8e3,
+ 0xfc16, 0xf94e, 0xf74c, 0xfb95, 0xf9f7, 0xf70e,
+ 0xfb21, 0xfa65, 0xf448, 0xf548, 0xf5af, 0xf755,
+ 0xfb8d, 0xf639, 0xf408, 0xf7b8, 0xf77d, 0xf561,
+ 0xf3dd, 0xf750, 0xf68c, 0xf2f9, 0xf3b9, 0xf104,
+ 0xf1e9, 0xf28f, 0xf342, 0xf9d0, 0xf636, 0xf3c1,
+ 0xf581, 0xf193, 0xf41b, 0xf501, 0xf3a2, 0xf490,
+ 0xf19f, 0xf16e, 0xf1ce, 0xf4ee, 0xf6fc, 0xf280,
+ 0xf45b, 0xf4a6, 0xf2da, 0xf54a, 0xf529, 0xf67c,
+ 0xf554, 0xf68e, 0xf8e6, 0xf1b3, 0xf3c3, 0xf758,
+ 0xf3a6, 0xfbaa, 0xff43, 0xf8da, 0xf902, 0xf8eb,
+ 0xf86f, 0xfad5, 0xf7df, 0xf50e, 0xf659, 0xf4f8,
+ 0xf8b0, 0xfcce, 0xf8b5, 0xfa30, 0xf984, 0xf7e1,
+ 0xfe33, 0xf9c2, 0xf847, 0xfd1c, 0xf604, 0xf593,
+ 0xf958, 0xf649, 0xf486, 0xf571, 0xfbfa, 0xffbc,
+ 0xfd4e, 0xf9d2, 0xf708, 0xf71e, 0xf329, 0xf3db,
+ 0xf857, 0xf497, 0xf374, 0xf38b, 0xf69a, 0xf9e4,
+ 0xf79c, 0xfdf9, 0xfaac, 0xf24c, 0xfaac, 0xfa97,
+ 0xf807, 0xfadc, 0xf852, 0xfbc0, 0xfa25, 0xf652,
+ 0xfcd3, 0xfaa9, 0xf68d, 0xfd47, 0xfee5, 0xfb04,
+ 0xfc00, 0xfa01, 0xf56d, 0xf68d, 0xf74e, 0xf941,
+ 0xfb09, 0xf7b9, 0xf756, 0xf77c, 0xf822, 0xf9d5,
+ 0xf7ef, 0xf66e, 0xf492, 0xf7e5, 0xfac3, 0xf773,
+ 0xfcdb, 0xfcb4, 0xf557, 0xf828, 0xf801, 0xf5a3,
+ 0xf701, 0xf645, 0xf3b8, 0xf2e0, 0xf5c1, 0xf1a8,
+ 0xede0, 0xf062, 0xedcb, 0xefc3, 0xf292, 0xf398,
+ 0xf573, 0xef4f, 0xf1e4, 0xf321, 0xeb5e, 0xefdd,
+ 0xed3c, 0xe947, 0xeedd, 0xe8ec, 0xeb62, 0xf3c5,
+ 0xed56, 0xee08, 0xf2e0, 0xed8c, 0xecf0, 0xefe7,
+ 0xecb2, 0xeb75, 0xeb01, 0xeab2, 0xeecf, 0xebd0,
+ 0xeb5e, 0xf3ad, 0xf271, 0xf174, 0xf43d, 0xf22f,
+ 0xf143, 0xeeb3, 0xef57, 0xf2a7, 0xeed0, 0xed8b,
+ 0xf394, 0xf57f, 0xeff5, 0xf0b0, 0xf496, 0xf303,
+ 0xf536, 0xf205, 0xefd4, 0xf6b6, 0xf2fc, 0xf413,
+ 0xfbe2, 0xf95f, 0xf7a1, 0xf5ac, 0xf7af, 0xf993,
+ 0xf559, 0xfb2f, 0xfc2c, 0xf7cd, 0xfc3f, 0xfb49,
+ 0xfb0a, 0xfe58, 0xfc78, 0xf9ed, 0xf8d7, 0xfbb6,
+ 0xfc5e, 0xf98e, 0xf89b, 0xf6de, 0xf8cb, 0xfa3a,
+ 0xf708, 0xf800, 0xfa5d, 0xfa05, 0xfcab, 0x00bb,
+ 0xfd43, 0xf9c5, 0xfd6b, 0xfdd1, 0xfc42, 0xfc9f,
+ 0xfee0, 0x01b9, 0xff4e, 0xffe9, 0x00fa, 0xfd52,
+ 0xff97, 0x023f, 0x00b5, 0xfd52, 0xfd03, 0x01af,
+ 0xfef4, 0xfce8, 0xff91, 0xfdae, 0xfd6a, 0xfcab,
+ 0xfc7a, 0xfbf8, 0xf968, 0xfbe4, 0xfa24, 0xf90d,
+ 0xf9e0, 0xf67d, 0xfaf9, 0xf728, 0xef90, 0xf6ec,
+ 0xf6b5, 0xf46a, 0xf6ac, 0xf392, 0xf645, 0xf5c5,
+ 0xf0b1, 0xf456, 0xf3e1, 0xeecf, 0xf2f5, 0xf7ae,
+ 0xf447, 0xf2e8, 0xf3a9, 0xf241, 0xf3b1, 0xf31f,
+ 0xf0a4, 0xf0b3, 0xf234, 0xf48b, 0xf0ca, 0xeea1,
+ 0xf40b, 0xf500, 0xf395, 0xf2d4, 0xf31b, 0xf65f,
+ 0xf636, 0xf3ae, 0xf4c8, 0xf859, 0xf705, 0xf54c,
+ 0xf7e7, 0xf66a, 0xf911, 0xfc0e, 0xf788, 0xf8f5,
+ 0xf7b0, 0xf670, 0xfa22, 0xf6df, 0xfaff, 0xfcb9,
+ 0xf4ac, 0xf872, 0xfbac, 0xfab8, 0xfb8d, 0xfa21,
+ 0xfeb0, 0xff17, 0xfa05, 0xfd68, 0xfefb, 0xf90d,
+ 0xf708, 0xfbd7, 0xfc59, 0xf92c, 0xfb1a, 0xfbcc,
+ 0xf9c5, 0xf959, 0xfad5, 0xfaa2, 0xf6b2, 0xf906,
+ 0xfc0f, 0xf805, 0xf9ad, 0xfc99, 0xf809, 0xf6db,
+ 0xfab1, 0xf9c9, 0xf946, 0xfcb6, 0xf965, 0xf7d2,
+ 0xfc78, 0xfab4, 0xfa27, 0xfe22, 0xfe90, 0xfb72,
+ 0xf9f8, 0xfca0, 0xf915, 0xf60e, 0xfa69, 0xf9aa,
+ 0xf94e, 0xf8b9, 0xf7b0, 0xfc07, 0xf9ce, 0xf91c,
+ 0xfc05, 0xf9ee, 0xfcd1, 0xfc7a, 0xf93b, 0xfbb3,
+ 0xfa36, 0xf974, 0xfc0a, 0xfcf9, 0xfc86, 0xf9e8,
+ 0xf8e2, 0xf852, 0xf857, 0xf9cb, 0xf8ac, 0xf87d,
+ 0xf8c9, 0xf72a, 0xf5f9, 0xf5b3, 0xf69b, 0xf830,
+ 0xfa63, 0xf980, 0xf7cf, 0xfa3b, 0xf9af, 0xf977,
+ 0xfcb8, 0xfac0, 0xf8c1, 0xfb94, 0xfbc2, 0xf960,
+ 0xfabe, 0xfafd, 0xf7fe, 0xf871, 0xf6a2, 0xf4d0,
+ 0xf6d8, 0xf48c, 0xf61e, 0xf965, 0xf672, 0xf6cd,
+ 0xf7c9, 0xf6ab, 0xf5a3, 0xf892, 0xfe0b, 0xf80d,
+ 0xf576, 0xfc4b, 0xfaa3, 0xfc8a, 0x002c, 0xfb8b,
+ 0xfb54, 0xfb4a, 0xf93e, 0xfb71, 0xfb71, 0xf99e,
+ 0xfc4d, 0xfe89, 0xfa80, 0xf8a7, 0xfa8f, 0xf9ac,
+ 0xfa42, 0xfbd8, 0xfd24, 0xfe24, 0xfbac, 0xfbb1,
+ 0xfd1d, 0xfbec, 0xfc66, 0xfcc5, 0xfbc0, 0xfa98,
+ 0xfaab, 0xfd01, 0xfc94, 0xf9f9, 0xfb5d, 0xfc8f,
+ 0xf9c7, 0xfb0b, 0xfbd1, 0xf5e1, 0xf700, 0xfab3,
+ 0xf753, 0xf6af, 0xf84e, 0xfb2b, 0xfd2b, 0xfae5,
+ 0xfaf0, 0xf9b1, 0xfa95, 0xfe38, 0xf9f6, 0xfa88,
+ 0xff21, 0xfb7c, 0xfba9, 0xfee1, 0xfb71, 0xf898,
+ 0xfad3, 0xfabd, 0xf968, 0xfcc6, 0xfb2c, 0xf866,
+ 0xfecf, 0xffb6, 0xface, 0xfb7b, 0xfb6c, 0xf9b3,
+ 0xfb63, 0xfd41, 0xfc93, 0xfd60, 0xff4b, 0xfe45,
+ 0xfd84, 0xfe96, 0x01ac, 0x0384, 0xfea8, 0xfd30,
+ 0x008a, 0xfce8, 0xface, 0x0010, 0x00f9, 0xfff9,
+ 0x0244, 0xfffa, 0xfe6d, 0x0219, 0x0121, 0x0060,
+ 0x014a, 0xfee4, 0x00bf, 0x0147, 0xfedc, 0x024f,
+ 0x032b, 0x004d, 0x0106, 0x02ea, 0x023d, 0xfefc,
+ 0xff75, 0x0246, 0x0090, 0xfd49, 0xfc81, 0xfed1,
+ 0x0090, 0x00aa, 0x0139, 0x000a, 0xff6c, 0xff01,
+ 0xfdf9, 0x012e, 0x028a, 0x0089, 0x01d4, 0x0139,
+ 0xfdd1, 0xfdb3, 0xff51, 0x01cc, 0x0516, 0x03ef,
+ 0x00d2, 0x0164, 0x0173, 0x02f7, 0x069d, 0x0353,
+ 0x00f7, 0x0539, 0x040c, 0x00ab, 0x02ae, 0x043a,
+ 0x04da, 0x06a7, 0x0682, 0x04e0, 0x042e, 0x0653,
+ 0x093b, 0x05de, 0x0269, 0x057a, 0x04e4, 0x0399,
+ 0x075a, 0x0715, 0x05fb, 0x068d, 0x052f, 0x065d,
+ 0x063c, 0x0422, 0x05a6, 0x05f4, 0x05dd, 0x06a2,
+ 0x031c, 0x01b7, 0x05b0, 0x06c5, 0x0668, 0x0812,
+ 0x0717, 0x0509, 0x0490, 0x03be, 0x04e9, 0x06a1,
+ 0x057a, 0x03bd, 0x0228, 0x02c2, 0x057f, 0x0488,
+ 0x0205, 0x0406, 0x07a2, 0x0673, 0x01bd, 0x0115,
+ 0x0448, 0x04b1, 0x038c, 0x050a, 0x0611, 0x0425,
+ 0x03a7, 0x059b, 0x05f0, 0x0623, 0x0708, 0x0469,
+ 0x036a, 0x074b, 0x0625, 0x034e, 0x0715, 0x07e9,
+ 0x053d, 0x06d8, 0x06e3, 0x050c, 0x05a9, 0x04a9,
+ 0x0350, 0x03be, 0x02d4, 0x0224, 0x0262, 0x01d1,
+ 0x01fb, 0x026c, 0x012a, 0xfe92, 0xfcf6, 0xfe65,
+ 0x00cb, 0x0271, 0x0282, 0xff7e, 0xfe28, 0x0041,
+ 0x00f1, 0x01b1, 0x0249, 0x0155, 0x0347, 0x03ff,
+ 0x0222, 0x0541, 0x06ba, 0x0376, 0x048c, 0x0460,
+ 0x00e4, 0x0323, 0x0533, 0x0331, 0x041c, 0x06bb,
+ 0x07d3, 0x06f8, 0x05f6, 0x075c, 0x0617, 0x0390,
+ 0x063f, 0x0709, 0x04cc, 0x06ab, 0x0757, 0x0504,
+ 0x0560, 0x06d6, 0x073a, 0x057b, 0x0313, 0x04b9,
+ 0x062c, 0x040a, 0x0313, 0x0276, 0x0175, 0x0242,
+ 0x02a6, 0x0314, 0x03f8, 0x0262, 0x0060, 0x0087,
+ 0x01b0, 0x0215, 0x00c0, 0xffd5, 0xff40, 0xfdc7,
+ 0xfe67, 0xfeeb, 0xfd65, 0xfeed, 0x0071, 0xfef1,
+ 0xffb7, 0x0057, 0xfea2, 0xfea1, 0xff44, 0x00e0,
+ 0x0233, 0xfe93, 0xfd57, 0x0143, 0xfffe, 0xfd84,
+ 0x0184, 0x038e, 0x01ad, 0x02dd, 0x036b, 0x0039,
+ 0xffce, 0x01f2, 0x0157, 0x013b, 0x02e7, 0x01d5,
+ 0x0124, 0x02be, 0x01db, 0x00f0, 0x0259, 0x02b4,
+ 0x02f0, 0x02a4, 0x018b, 0x0382, 0x03f8, 0x0086,
+ 0x00c3, 0x0205, 0xff7e, 0xff01, 0x002b, 0xfee9,
+ 0xfe48, 0xff55, 0xff72, 0xfe28, 0xfe23, 0x0000,
+ 0xfe5e, 0xfa3c, 0xfa65, 0xfaff, 0xf933, 0xfa58,
+ 0xfbd6, 0xfae6, 0xfb53, 0xfb8a, 0xfb18, 0xfc7d,
+ 0xfc8f, 0xfb5a, 0xfb3c, 0xf9fb, 0xf977, 0xfb6f,
+ 0xfc5f, 0xfc17, 0xfae4, 0xfa0e, 0xfd65, 0xff3c,
+ 0xfb81, 0xfa76, 0xfbd8, 0xfa98, 0xfba7, 0xfd95,
+ 0xfb1f, 0xfa5f, 0xfdc7, 0xff87, 0xff76, 0x00c0,
+ 0x028b, 0x0220, 0x00b7, 0x0174, 0x0263, 0x0179,
+ 0xffe0, 0xfe55, 0xffcd, 0x021f, 0xff27, 0xfdb7,
+ 0x01aa, 0x0180, 0x0014, 0x032e, 0x034f, 0x01b6,
+ 0x038c, 0x02e0, 0xfff3, 0x00e4, 0x036c, 0x0381,
+ 0x02db, 0x0498, 0x0605, 0x041e, 0x037f, 0x0508,
+ 0x046f, 0x034d, 0x0313, 0x031d, 0x03b8, 0x02f5,
+ 0x0303, 0x053e, 0x0422, 0x0237, 0x03c0, 0x044c,
+ 0x0418, 0x0419, 0x029b, 0x0374, 0x056f, 0x05e6,
+ 0x08b8, 0x0a76, 0x08a9, 0x090a, 0x093a, 0x0670,
+ 0x059d, 0x078b, 0x0976, 0x08d4, 0x0699, 0x0735,
+ 0x07e5, 0x06ad, 0x07eb, 0x085d, 0x069d, 0x086b,
+ 0x09eb, 0x0736, 0x05ce, 0x072e, 0x08b5, 0x08ee,
+ 0x082a, 0x08a0, 0x0822, 0x0577, 0x05f6, 0x08b1,
+ 0x0875, 0x0727, 0x06aa, 0x05ce, 0x0586, 0x0655,
+ 0x0717, 0x0741, 0x062b, 0x0397, 0x01e9, 0x033b,
+ 0x04fe, 0x04fa, 0x04d8, 0x04aa, 0x03ea, 0x03b2,
+ 0x0378, 0x0361, 0x0345, 0x0134, 0xffd5, 0x0044,
+ 0xfe26, 0xfc6b, 0xff40, 0x008f, 0xfe1c, 0xfcdb,
+ 0xfbf5, 0xf9ab, 0xf984, 0xfb39, 0xfaae, 0xf8e6,
+ 0xf895, 0xf8dd, 0xf96c, 0xfa1b, 0xfa1c, 0xfb21,
+ 0xfbf3, 0xf9c1, 0xf8cd, 0xfa36, 0xf8cb, 0xf79b,
+ 0xfa09, 0xfa23, 0xf767, 0xf73e, 0xf880, 0xf87f,
+ 0xf861, 0xf839, 0xf794, 0xf82c, 0xf9c3, 0xf94c,
+ 0xf7ec, 0xf998, 0xfc40, 0xfc09, 0xfb66, 0xfd03,
+ 0xfebf, 0xff8b, 0x0045, 0x0010, 0x0022, 0x0222,
+ 0x021a, 0xfffd, 0x0127, 0x0299, 0x012b, 0x0102,
+ 0x00ad, 0xff2b, 0xffd3, 0xff60, 0xfea8, 0x0154,
+ 0x0103, 0xfef5, 0x010f, 0x00a1, 0xfe27, 0x004f,
+ 0x01bc, 0x006f, 0xffed, 0xff7b, 0x00c9, 0x0241,
+ 0x010c, 0x0205, 0x03be, 0x01f3, 0x0142, 0x01d7,
+ 0x0177, 0x02fa, 0x0447, 0x0385, 0x03a5, 0x0376,
+ 0x0231, 0x0234, 0x031d, 0x03eb, 0x049a, 0x04f3,
+ 0x04b5, 0x041e, 0x04d6, 0x063f, 0x0691, 0x074e,
+ 0x06ef, 0x03c8, 0x034d, 0x0556, 0x0421, 0x0291,
+ 0x0305, 0x0185, 0xffd6, 0x0172, 0x02a9, 0x010b,
+ 0x0059, 0x012a, 0xff45, 0xfc9e, 0xfe3d, 0x0082,
+ 0xffac, 0xfe96, 0xfdb4, 0xfc93, 0xfc69, 0xfbed,
+ 0xfbf5, 0xfcf2, 0xfae7, 0xf800, 0xf81f, 0xf771,
+ 0xf5d6, 0xf6aa, 0xf770, 0xf6cb, 0xf5fe, 0xf51e,
+ 0xf560, 0xf62f, 0xf686, 0xf7a2, 0xf858, 0xf832,
+ 0xf83f, 0xf74a, 0xf7a9, 0xfa4a, 0xfa02, 0xf8ad,
+ 0xfa3c, 0xfb0e, 0xfadd, 0xfbe6, 0xfcf1, 0xfd42,
+ 0xfb93, 0xfa09, 0xfbd3, 0xfc75, 0xfbb8, 0xfd20,
+ 0xfcd1, 0xfccb, 0x0026, 0x0028, 0xfe56, 0xff3a,
+ 0xfed7, 0xff60, 0x01df, 0x00bf, 0xff5a, 0x0085,
+ 0x004c, 0xff77, 0xff77, 0xffbf, 0xffdb, 0xff19,
+ 0xffcb, 0x0089, 0xfe8c, 0xfe81, 0xff0e, 0xfc0e,
+ 0xfbbb, 0xfdf8, 0xfd1b, 0xfc5b, 0xfd1e, 0xfda4,
+ 0xfe2c, 0xfd75, 0xfd4b, 0xfe32, 0xfd1e, 0xfc96,
+ 0xfd47, 0xfd59, 0xff30, 0xffe2, 0xfe07, 0xfed1,
+ 0xfec9, 0xfc45, 0xfd85, 0xfedc, 0xfd10, 0xfda2,
+ 0xfeb6, 0xfd9d, 0xfe5d, 0xff70, 0xfe04, 0xfdeb,
+ 0xff5b, 0xfe47, 0xfd1b, 0xff1f, 0x0050, 0xfefd,
+ 0xfe3b, 0xfda0, 0xfd06, 0xfd9f, 0xfd00, 0xfaf6,
+ 0xfa69, 0xfaf1, 0xfaa5, 0xf9a7, 0xf9cc, 0xfa0a,
+ 0xf817, 0xf7ed, 0xfa0e, 0xf8c8, 0xf7eb, 0xfa6d,
+ 0xf9f9, 0xf887, 0xf963, 0xf8c2, 0xf940, 0xfc47,
+ 0xfc88, 0xfadc, 0xfa99, 0xfbc6, 0xfccd, 0xfb89,
+ 0xfaa7, 0xfbc4, 0xfb36, 0xfa24, 0xfa65, 0xfa22,
+ 0xfa38, 0xfa74, 0xfa41, 0xfa90, 0xf9d3, 0xfa3a,
+ 0xfcf7, 0xfc97, 0xfbcb, 0xfe59, 0xfe4c, 0xfcc9,
+ 0xfd97, 0xfc72, 0xfb0c, 0xfcd2, 0xfd94, 0xfcc0,
+ 0xfcd4, 0xfcee, 0xfcf8, 0xfdc8, 0xfeb6, 0xfe43,
+ 0xfcf3, 0xfd89, 0xfe98, 0xfd6e, 0xfcf3, 0xfe40,
+ 0xfe50, 0xfd58, 0xfcd3, 0xfd1a, 0xfea2, 0xffec,
+ 0xffaf, 0xffb1, 0x00d1, 0x015c, 0x0083, 0xffbb,
+ 0xffa4, 0xfeab, 0xfd2c, 0xfdc1, 0xff95, 0x0057,
+ 0x00d9, 0x00ba, 0xfec1, 0xfdcb, 0xfed4, 0xff29,
+ 0xff30, 0xff3d, 0xfe9f, 0xff48, 0x0036, 0x0045,
+ 0x01cd, 0x01dc, 0xff61, 0x0002, 0x0168, 0x003a,
+ 0x0112, 0x029c, 0x0152, 0xff6a, 0xfda0, 0xfd50,
+ 0xfee2, 0xff21, 0xff65, 0x0009, 0xfedd, 0xff33,
+ 0x004c, 0xfed6, 0xfe96, 0xff2f, 0xfdff, 0xfe18,
+ 0xfebd, 0xfeae, 0xffef, 0x0074, 0x0000, 0x0093,
+ 0x00a5, 0x00e5, 0x020b, 0x01f9, 0x0182, 0x01a5,
+ 0x01f3, 0x0286, 0x022b, 0x0134, 0x00e8, 0x0119,
+ 0x0252, 0x02c2, 0x011d, 0x016f, 0x0389, 0x0367,
+ 0x027d, 0x02ea, 0x03a5, 0x0375, 0x02b4, 0x0318,
+ 0x0342, 0x0217, 0x02a1, 0x03a2, 0x02bc, 0x02cd,
+ 0x03bb, 0x03c2, 0x037e, 0x0269, 0x021c, 0x02f8,
+ 0x01a8, 0x0090, 0x01d5, 0x0190, 0x004a, 0x005f,
+ 0x00d2, 0x017d, 0x0148, 0x0022, 0x004d, 0x00bb,
+ 0x006c, 0xfffe, 0xff18, 0xff9b, 0x013d, 0x00f5,
+ 0x00c5, 0x01cb, 0x018a, 0x00c4, 0x0006, 0xffc6,
+ 0x01e9, 0x0396, 0x0360, 0x0465, 0x042b, 0x0140,
+ 0x0164, 0x0403, 0x03cc, 0x0301, 0x046c, 0x04bf,
+ 0x033d, 0x037a, 0x054a, 0x0572, 0x049d, 0x0511,
+ 0x0585, 0x0515, 0x0614, 0x0840, 0x0857, 0x0692,
+ 0x057b, 0x058d, 0x0628, 0x060b, 0x04db, 0x04a1,
+ 0x054b, 0x0568, 0x05f9, 0x05c0, 0x03ce, 0x03c6,
+ 0x0491, 0x0341, 0x037c, 0x04bf, 0x036e, 0x033b,
+ 0x041b, 0x020f, 0x014f, 0x035d, 0x0308, 0x01fa,
+ 0x033d, 0x03ed, 0x0335, 0x0270, 0x01ef, 0x029a,
+ 0x0395, 0x034d, 0x030b, 0x03cb, 0x047c, 0x045c,
+ 0x03fb, 0x046a, 0x04a7, 0x0395, 0x035b, 0x0435,
+ 0x0399, 0x0291, 0x0284, 0x026d, 0x0307, 0x03f8,
+ 0x0308, 0x01be, 0x0221, 0x02c0, 0x02a6, 0x0283,
+ 0x0261, 0x0176, 0x004c, 0x0085, 0x00f3, 0x0017,
+ 0xffb0, 0xffa9, 0xff15, 0xff78, 0xff97, 0xfe90,
+ 0xff26, 0xffcd, 0xfeab, 0xfead, 0xfee1, 0xfd77,
+ 0xfd45, 0xfddd, 0xfda6, 0xfe5a, 0xfe76, 0xfcc2,
+ 0xfce4, 0xfe42, 0xfd4e, 0xfcd9, 0xff0d, 0xffb4,
+ 0xfe28, 0xfe2b, 0xfeea, 0xfe9e, 0xfee3, 0xffb5,
+ 0x0046, 0x00d5, 0x00ae, 0x0101, 0x0277, 0x022c,
+ 0x011d, 0x01d5, 0x01cf, 0x0128, 0x0251, 0x02cb,
+ 0x01f8, 0x025d, 0x0224, 0x0060, 0x0061, 0x0143,
+ 0xffcf, 0xfed5, 0x00c3, 0x0196, 0x0071, 0x0090,
+ 0x0040, 0xfeae, 0xff31, 0x0028, 0xff7e, 0xffb3,
+ 0xffd7, 0xfeab, 0xfefb, 0xffb5, 0xfe77, 0xfd53,
+ 0xfd4b, 0xfd6a, 0xfd75, 0xfcb5, 0xfbd8, 0xfc1e,
+ 0xfc26, 0xfb93, 0xfbbf, 0xfbe1, 0xfb9a, 0xfc07,
+ 0xfc61, 0xfc76, 0xfd26, 0xfc98, 0xfb2a, 0xfc9f,
+ 0xfee2, 0xfdc5, 0xfbe8, 0xfc1c, 0xfcec, 0xfd66,
+ 0xfda3, 0xfe24, 0xfee2, 0xfe54, 0xfd24, 0xfd31,
+ 0xfdba, 0xfe39, 0xfecf, 0xfebd, 0xfeda, 0xff9f,
+ 0xff67, 0xfe8b, 0xfee3, 0xffd8, 0xffb1, 0xfef3,
+ 0xfee5, 0xfea9, 0xfe15, 0xfe66, 0xfe77, 0xfdcf,
+ 0xfdd6, 0xfd44, 0xfc08, 0xfc71, 0xfd2b, 0xfcbf,
+ 0xfc38, 0xfb9f, 0xfbb0, 0xfc6a, 0xfbfa, 0xfba9,
+ 0xfc55, 0xfc37, 0xfc44, 0xfcc6, 0xfc31, 0xfc34,
+ 0xfd5b, 0xfd6a, 0xfce5, 0xfceb, 0xfcde, 0xfca6,
+ 0xfc3a, 0xfb8f, 0xfb32, 0xfb3b, 0xfb60, 0xfb50,
+ 0xfb0f, 0xfb1a, 0xfb43, 0xfb61, 0xfbed, 0xfc2a,
+ 0xfb49, 0xfac7, 0xfb9e, 0xfc24, 0xfbbd, 0xfbf1,
+ 0xfcae, 0xfc9b, 0xfc28, 0xfc75, 0xfd1f, 0xfcd2,
+ 0xfbb6, 0xfb74, 0xfbb1, 0xfb5d, 0xfbc3, 0xfc64,
+ 0xfbc8, 0xfbc1, 0xfc3d, 0xfb61, 0xfaf1, 0xfb72,
+ 0xfb28, 0xfac6, 0xfa97, 0xfa7a, 0xfb54, 0xfbed,
+ 0xfb84, 0xfb61, 0xfbc8, 0xfc83, 0xfc74, 0xfb38,
+ 0xfb4b, 0xfc2c, 0xfb73, 0xfaaa, 0xfaa7, 0xfac3,
+ 0xfba0, 0xfc1b, 0xfc17, 0xfcd6, 0xfc79, 0xfb5e,
+ 0xfc18, 0xfcf0, 0xfd24, 0xfe69, 0xff72, 0xff2e,
+ 0xfec8, 0xfee5, 0xff95, 0x000d, 0x0023, 0x00db,
+ 0x00f5, 0xff9c, 0xff6b, 0x00b5, 0x009d, 0xff64,
+ 0xff3e, 0xff48, 0xfe57, 0xfded, 0xfe20, 0xfdc6,
+ 0xfe21, 0xff85, 0x001f, 0xffd2, 0xff73, 0xff8c,
+ 0x0003, 0x0000, 0x0047, 0x00cc, 0xffcf, 0xff9b,
+ 0x016e, 0x0191, 0x00bc, 0x0135, 0x0077, 0xff44,
+ 0x0023, 0x010c, 0x015e, 0x0220, 0x0218, 0x015f,
+ 0x0159, 0x01e9, 0x0237, 0x01f3, 0x022d, 0x02d4,
+ 0x0284, 0x0275, 0x0329, 0x027a, 0x018a, 0x024f,
+ 0x02ff, 0x02cc, 0x028d, 0x01ad, 0x00a5, 0x00f2,
+ 0x019f, 0x00d8, 0xff18, 0xfe13, 0xfe42, 0xfede,
+ 0xff09, 0xfebf, 0xfebd, 0xfee5, 0xfe8e, 0xfe0b,
+ 0xfddb, 0xfe18, 0xfe9e, 0xfea4, 0xfe08, 0xfd84,
+ 0xfd68, 0xfde8, 0xfe36, 0xfd56, 0xfca8, 0xfccf,
+ 0xfc84, 0xfc3c, 0xfc70, 0xfc4b, 0xfc33, 0xfc5f,
+ 0xfc73, 0xfcf1, 0xfd75, 0xfd61, 0xfd88, 0xfe44,
+ 0xfedf, 0xff16, 0xff59, 0xffa9, 0xffa8, 0xffc7,
+ 0xff9f, 0xfe92, 0xfeac, 0xffdf, 0xff6e, 0xff2b,
+ 0x00a4, 0x00c7, 0xffba, 0xff9d, 0xffa8, 0xffa0,
+ 0xffbc, 0xffdf, 0x0053, 0x0012, 0xffa8, 0x0081,
+ 0x0095, 0xffe9, 0x0059, 0xfff2, 0xfee7, 0xff84,
+ 0xffb8, 0xff12, 0xffd2, 0x00b7, 0x00bf, 0x0107,
+ 0x0135, 0x00f4, 0x00f2, 0x014c, 0x0171, 0x010c,
+ 0x0130, 0x0211, 0x0200, 0x01b0, 0x029b, 0x034f,
+ 0x0394, 0x045b, 0x0430, 0x0369, 0x03e8, 0x040d,
+ 0x0327, 0x0362, 0x03bd, 0x02db, 0x0294, 0x02d6,
+ 0x02af, 0x031b, 0x0360, 0x02ea, 0x0335, 0x0383,
+ 0x031c, 0x0337, 0x0350, 0x0326, 0x0321, 0x021c,
+ 0x010c, 0x0159, 0x0144, 0x009b, 0x00aa, 0x00aa,
+ 0x0009, 0xff13, 0xfe6d, 0xfe89, 0xfe21, 0xfd75,
+ 0xfde6, 0xfda9, 0xfc14, 0xfb52, 0xfb75, 0xfc17,
+ 0xfd47, 0xfd90, 0xfd1c, 0xfda0, 0xfe77, 0xfe5e,
+ 0xfe0e, 0xfe79, 0xfef1, 0xfea1, 0xfdf2, 0xfd70,
+ 0xfd8c, 0xfddf, 0xfd03, 0xfc2c, 0xfcd4, 0xfce9,
+ 0xfc1f, 0xfc18, 0xfc10, 0xfc74, 0xfdf3, 0xfe93,
+ 0xfe76, 0xfedb, 0xff13, 0xff7b, 0x0088, 0x0145,
+ 0x0120, 0x006e, 0x00a0, 0x01ba, 0x01d6, 0x018d,
+ 0x01a0, 0x012d, 0x0151, 0x01fb, 0x0168, 0x00d1,
+ 0x012d, 0x0181, 0x0177, 0x00b7, 0xfffd, 0x003b,
+ 0x007a, 0x00ea, 0x01e9, 0x01fa, 0x01cc, 0x02c3,
+ 0x0372, 0x0316, 0x02ea, 0x035b, 0x0369, 0x02b6,
+ 0x022f, 0x01c1, 0x010b, 0x00ec, 0x0100, 0x0051,
+ 0xffad, 0xffc8, 0x0034, 0xffdb, 0xfeec, 0xffa9,
+ 0x013c, 0x0118, 0x011a, 0x026e, 0x02f6, 0x0336,
+ 0x0416, 0x042a, 0x038a, 0x0340, 0x0338, 0x031d,
+ 0x02e8, 0x02d5, 0x02a0, 0x0200, 0x0178, 0x00f0,
+ 0xffdb, 0xfe84, 0xfdca, 0xfe06, 0xfe07, 0xfd27,
+ 0xfc88, 0xfc19, 0xfbbd, 0xfc53, 0xfcd9, 0xfd55,
+ 0xff03, 0xffd8, 0xff0f, 0xfee9, 0xff06, 0xfe76,
+ 0xfe38, 0xfe80, 0xfee7, 0xff02, 0xfebc, 0xfea9,
+ 0xfe5d, 0xfdaf, 0xfd5f, 0xfd2e, 0xfd2c, 0xfd80,
+ 0xfd3b, 0xfc7c, 0xfc53, 0xfd3e, 0xfe5c, 0xfdf9,
+ 0xfdad, 0xff45, 0xffb6, 0xfebd, 0xff84, 0x0001,
+ 0xfeea, 0xff23, 0xff71, 0xfe6b, 0xfee3, 0xffde,
+ 0xfeb7, 0xfdbb, 0xfe04, 0xfda1, 0xfd37, 0xfd5f,
+ 0xfcd3, 0xfc83, 0xfd4d, 0xfdae, 0xfd9c, 0xfe23,
+ 0xfefe, 0xff95, 0xffe4, 0x00ed, 0x026d, 0x0214,
+ 0x00c0, 0x00c4, 0x00be, 0x0034, 0x0060, 0x0051,
+ 0xfff9, 0x001c, 0xffea, 0xff90, 0xff5f, 0xfecb,
+ 0xfea2, 0xff32, 0xffb8, 0xfff4, 0xffb5, 0xff87,
+ 0xfff8, 0x0081, 0x0123, 0x01b8, 0x01f1, 0x0259,
+ 0x029e, 0x029e, 0x031b, 0x038c, 0x0394, 0x0348,
+ 0x025e, 0x0203, 0x0269, 0x0216, 0x01af, 0x01d6,
+ 0x01a1, 0x013e, 0x00fd, 0x00cb, 0x00de, 0x010f,
+ 0x017a, 0x0198, 0x00d9, 0x00a3, 0x0132, 0x0159,
+ 0x0175, 0x01a9, 0x01d7, 0x0253, 0x027d, 0x02bb,
+ 0x0386, 0x0371, 0x0305, 0x03aa, 0x0400, 0x036b,
+ 0x0365, 0x0451, 0x0511, 0x0507, 0x0504, 0x0545,
+ 0x0559, 0x05ee, 0x06b8, 0x06aa, 0x069a, 0x06de,
+ 0x06c9, 0x0699, 0x0673, 0x0667, 0x064c, 0x05b4,
+ 0x05a3, 0x061d, 0x05c5, 0x0576, 0x05dd, 0x05ef,
+ 0x0598, 0x04d4, 0x03f9, 0x043e, 0x0506, 0x0517,
+ 0x048f, 0x0409, 0x0436, 0x04a4, 0x0454, 0x03ed,
+ 0x041e, 0x0473, 0x0451, 0x03af, 0x03a0, 0x042c,
+ 0x0421, 0x0437, 0x04f6, 0x04f4, 0x042a, 0x03ea,
+ 0x047e, 0x04e0, 0x044a, 0x03fd, 0x0468, 0x03fb,
+ 0x0341, 0x034f, 0x0351, 0x0366, 0x03a4, 0x031c,
+ 0x027e, 0x02a9, 0x031f, 0x036a, 0x0361, 0x0353,
+ 0x038d, 0x03b1, 0x03e5, 0x047e, 0x04f0, 0x04be,
+ 0x0457, 0x045f, 0x045a, 0x03f1, 0x043d, 0x0516,
+ 0x0555, 0x0564, 0x0566, 0x04d3, 0x041e, 0x03d1,
+ 0x046f, 0x0556, 0x04ea, 0x0441, 0x04a3, 0x049d,
+ 0x0484, 0x056b, 0x05b1, 0x051c, 0x0513, 0x051c,
+ 0x050b, 0x05ba, 0x0670, 0x063f, 0x05c3, 0x0576,
+ 0x054a, 0x0589, 0x05e6, 0x05d6, 0x05d1, 0x05d0,
+ 0x0584, 0x058e, 0x05b1, 0x0592, 0x0602, 0x067b,
+ 0x0625, 0x05a3, 0x0552, 0x054e, 0x057b, 0x0590,
+ 0x0627, 0x0682, 0x05a5, 0x0554, 0x05cf, 0x05bb,
+ 0x05e4, 0x062b, 0x05c9, 0x0585, 0x04fc, 0x044a,
+ 0x047b, 0x046e, 0x041b, 0x047f, 0x0438, 0x0360,
+ 0x0383, 0x03c1, 0x037a, 0x0367, 0x036b, 0x0361,
+ 0x03b9, 0x0461, 0x046f, 0x03b4, 0x034d, 0x033d,
+ 0x02ee, 0x02e7, 0x0302, 0x02f3, 0x0333, 0x0363,
+ 0x0377, 0x0389, 0x02da, 0x0269, 0x02fb, 0x02d9,
+ 0x0231, 0x026d, 0x02b1, 0x027b, 0x027f, 0x02bb,
+ 0x0304, 0x0349, 0x0360, 0x033c, 0x02fc, 0x032b,
+ 0x03de, 0x043d, 0x03fb, 0x0397, 0x0365, 0x033b,
+ 0x02e8, 0x0291, 0x0228, 0x01ee, 0x0247, 0x0210,
+ 0x00f3, 0x00d0, 0x018b, 0x01a2, 0x01a4, 0x01dc,
+ 0x01b2, 0x01b4, 0x020e, 0x022e, 0x0220, 0x0200,
+ 0x01c8, 0x0181, 0x0147, 0x0132, 0x00e1, 0x0075,
+ 0x0095, 0x0061, 0xff37, 0xfea2, 0xff28, 0xff58,
+ 0xfef9, 0xfee0, 0xfeec, 0xfea8, 0xfe66, 0xfe8b,
+ 0xfec1, 0xfed1, 0xff2c, 0xffca, 0xfff3, 0xffa6,
+ 0xff86, 0xff98, 0xff7f, 0xff5a, 0xff1c, 0xfe89,
+ 0xfe51, 0xfed4, 0xff0a, 0xfee6, 0xff76, 0x000e,
+ 0xffd0, 0xff9b, 0xffbd, 0xffca, 0x0005, 0x001b,
+ 0xffbd, 0xffe1, 0x0086, 0x00c0, 0x00cc, 0x0125,
+ 0x0165, 0x0119, 0x00a5, 0x00b9, 0x00a2, 0xffdd,
+ 0xffcb, 0x0055, 0x0000, 0xffa5, 0xfff2, 0xffcc,
+ 0xff7c, 0xffd8, 0x0033, 0x0015, 0xfffd, 0x002a,
+ 0x0014, 0xffe7, 0x009e, 0x014c, 0x00f8, 0x0103,
+ 0x011a, 0x0026, 0xffdb, 0x0051, 0xfff9, 0xffc8,
+ 0x0028, 0x001e, 0x0035, 0x0090, 0x0079, 0x003a,
+ 0x0007, 0xffd6, 0xff9d, 0xff3c, 0xff4c, 0xffce,
+ 0xffd3, 0xff83, 0xff3e, 0xfeee, 0xff08, 0xff5c,
+ 0xff41, 0xff0b, 0xfec4, 0xfe21, 0xfdd1, 0xfe15,
+ 0xfdf3, 0xfd65, 0xfd67, 0xfd87, 0xfcf8, 0xfcc0,
+ 0xfd3c, 0xfd2e, 0xfcd0, 0xfcfa, 0xfd04, 0xfca6,
+ 0xfc42, 0xfbda, 0xfbda, 0xfc47, 0xfc23, 0xfb97,
+ 0xfb9a, 0xfbe2, 0xfbf1, 0xfc1d, 0xfc28, 0xfbbb,
+ 0xfb9d, 0xfbaf, 0xfb22, 0xfb2e, 0xfc46, 0xfc8b,
+ 0xfc3a, 0xfc82, 0xfc6a, 0xfc15, 0xfc6e, 0xfc84,
+ 0xfc36, 0xfc32, 0xfc07, 0xfbec, 0xfc2d, 0xfc3f,
+ 0xfc62, 0xfcc5, 0xfcfd, 0xfcfa, 0xfcad, 0xfc6e,
+ 0xfc96, 0xfc9c, 0xfca0, 0xfcd1, 0xfc92, 0xfc7c,
+ 0xfcee, 0xfd0d, 0xfd2d, 0xfd99, 0xfdb5, 0xfdc2,
+ 0xfddf, 0xfddf, 0xfe07, 0xfe12, 0xfe5b, 0xff39,
+ 0xff83, 0xff42, 0xff47, 0xff08, 0xfeec, 0xff78,
+ 0xff90, 0xff3a, 0xff21, 0xfef2, 0xfeeb, 0xff3e,
+ 0xffa6, 0x003e, 0x00a0, 0x007f, 0x007c, 0x00a8,
+ 0x00ca, 0x0115, 0x0130, 0x00b7, 0x006a, 0x00e6,
+ 0x0141, 0x00d5, 0x007b, 0x0065, 0x000f, 0xffd1,
+ 0xffbb, 0xffc5, 0x0047, 0x0079, 0x001c, 0x0039,
+ 0x003e, 0xff9d, 0xff60, 0xff6d, 0xff39, 0xff71,
+ 0x0005, 0x0032, 0x0019, 0x0020, 0x0041, 0x0090,
+ 0x00fe, 0x00dd, 0x0045, 0x0070, 0x0144, 0x01ba,
+ 0x01cb, 0x0199, 0x0158, 0x016e, 0x01a7, 0x01f0,
+ 0x020c, 0x01c7, 0x0221, 0x02c6, 0x02a4, 0x02f2,
+ 0x03b3, 0x0381, 0x0371, 0x03e5, 0x03a3, 0x0335,
+ 0x02f1, 0x026a, 0x0213, 0x01c4, 0x0151, 0x0136,
+ 0x013a, 0x0109, 0x00a5, 0x007c, 0x00f8, 0x0111,
+ 0x0068, 0x0026, 0x000e, 0xffdc, 0xfff4, 0xff7e,
+ 0xfedd, 0xff59, 0xffc3, 0xff78, 0xff96, 0xffd9,
+ 0xff9b, 0xff7d, 0xffd1, 0xffdb, 0xff31, 0xfe85,
+ 0xfe53, 0xfe67, 0xfeb2, 0xfea7, 0xfe20, 0xfe3a,
+ 0xfed8, 0xff19, 0xff99, 0x006f, 0x00b2, 0x0093,
+ 0x00c1, 0x011c, 0x0147, 0x0161, 0x0186, 0x017a,
+ 0x0188, 0x01ea, 0x0210, 0x0217, 0x0237, 0x01dd,
+ 0x0171, 0x01bf, 0x0243, 0x0256, 0x0234, 0x0284,
+ 0x0315, 0x0311, 0x0301, 0x036a, 0x037e, 0x036a,
+ 0x03a1, 0x03aa, 0x03c3, 0x03c8, 0x0340, 0x02fe,
+ 0x0318, 0x02f5, 0x02fb, 0x02e8, 0x0262, 0x020c,
+ 0x01d9, 0x017b, 0x0119, 0x00c3, 0x00b0, 0x00b9,
+ 0x009f, 0x00bf, 0x00ed, 0x00d8, 0x00c9, 0x00cc,
+ 0x0110, 0x01b3, 0x0224, 0x0231, 0x020a, 0x01e5,
+ 0x01f3, 0x01ba, 0x0122, 0x00b9, 0x006d, 0x003f,
+ 0x0030, 0xffe1, 0xffb7, 0xffe8, 0x001c, 0x0085,
+ 0x00a3, 0x005d, 0x00e8, 0x01b3, 0x01a7, 0x0190,
+ 0x01c4, 0x0209, 0x026a, 0x025a, 0x021f, 0x0253,
+ 0x0256, 0x022f, 0x023a, 0x0223, 0x024f, 0x02c7,
+ 0x02ae, 0x0265, 0x029d, 0x02d0, 0x029e, 0x025d,
+ 0x023e, 0x0224, 0x0209, 0x0227, 0x028f, 0x02f0,
+ 0x02f5, 0x02bb, 0x02dd, 0x0368, 0x039d, 0x036a,
+ 0x036a, 0x038e, 0x0372, 0x0329, 0x02dc, 0x0294,
+ 0x0290, 0x02d9, 0x02d4, 0x0249, 0x01df, 0x01ce,
+ 0x01d9, 0x0200, 0x01f8, 0x01aa, 0x01c5, 0x025a,
+ 0x02be, 0x02fb, 0x036e, 0x03ca, 0x03dd, 0x0411,
+ 0x0445, 0x0402, 0x03f2, 0x0487, 0x04d7, 0x04bf,
+ 0x04e8, 0x04dc, 0x046f, 0x0453, 0x044e, 0x0408,
+ 0x03dc, 0x0385, 0x02d3, 0x0251, 0x01f4, 0x0197,
+ 0x01bb, 0x0228, 0x023d, 0x0235, 0x0253, 0x0283,
+ 0x02a8, 0x0257, 0x01b2, 0x015a, 0x0109, 0x0079,
+ 0x0015, 0xffdf, 0xffd1, 0xfffd, 0xffd4, 0xff5b,
+ 0xff38, 0xff20, 0xfeb7, 0xfe7d, 0xfe9d, 0xfec7,
+ 0xfed4, 0xfebe, 0xfeb2, 0xff02, 0xff83, 0xffcb,
+ 0xffe5, 0xffd3, 0xff8e, 0xff9c, 0xffec, 0xffe2,
+ 0xffcc, 0xff9a, 0xfeba, 0xfe33, 0xfe93, 0xfe97,
+ 0xfe23, 0xfdd7, 0xfd64, 0xfd03, 0xfd10, 0xfd09,
+ 0xfcdf, 0xfcf7, 0xfd38, 0xfd6b, 0xfdae, 0xfe37,
+ 0xfeca, 0xff07, 0xff1f, 0xff39, 0xff20, 0xfee1,
+ 0xfeb5, 0xfea8, 0xfe93, 0xfea0, 0xff18, 0xff50,
+ 0xfeed, 0xfee4, 0xff1c, 0xfed6, 0xfeb6, 0xfec7,
+ 0xfe53, 0xfe0a, 0xfe6f, 0xfeb6, 0xfe95, 0xfe75,
+ 0xfe7f, 0xfe6a, 0xfe35, 0xfe50, 0xfe84, 0xfe63,
+ 0xfe5b, 0xfe76, 0xfe23, 0xfdb0, 0xfda9, 0xfdd9,
+ 0xfe00, 0xfe40, 0xfe78, 0xfe59, 0xfe3d, 0xfe71,
+ 0xfe78, 0xfe6f, 0xfebf, 0xfecf, 0xfe96, 0xfe95,
+ 0xfe78, 0xfe79, 0xfeec, 0xfef5, 0xfec2, 0xff2f,
+ 0xff50, 0xfec6, 0xfeaf, 0xfed1, 0xfe97, 0xfe94,
+ 0xfecd, 0xfecf, 0xfec1, 0xfe96, 0xfe60, 0xfe78,
+ 0xfea1, 0xfed4, 0xff33, 0xff4a, 0xff31, 0xff68,
+ 0xffc3, 0x0021, 0x004c, 0x000e, 0x0016, 0x0064,
+ 0x005b, 0x0091, 0x013e, 0x018d, 0x0167, 0x012c,
+ 0x0124, 0x0160, 0x0173, 0x0151, 0x012c, 0x0100,
+ 0x0117, 0x0133, 0x00f5, 0x00df, 0x00db, 0x00a9,
+ 0x00ae, 0x009c, 0x005e, 0x005a, 0x0004, 0xff95,
+ 0xffb5, 0xffc3, 0xffca, 0x0034, 0x0040, 0x0006,
+ 0x0049, 0x00a9, 0x00c7, 0x00d9, 0x00e7, 0x00e1,
+ 0x0105, 0x016c, 0x0174, 0x012a, 0x017e, 0x01ed,
+ 0x01c1, 0x01a8, 0x01a1, 0x0158, 0x014a, 0x0171,
+ 0x0180, 0x0153, 0x0100, 0x013c, 0x01ac, 0x017e,
+ 0x017d, 0x01db, 0x01c6, 0x018e, 0x0195, 0x01c1,
+ 0x01ff, 0x01f3, 0x01ea, 0x0261, 0x02bf, 0x02ab,
+ 0x0282, 0x029c, 0x02e6, 0x02d6, 0x029f, 0x02b5,
+ 0x0285, 0x022b, 0x0249, 0x0279, 0x0292, 0x02c8,
+ 0x02eb, 0x02f2, 0x02bd, 0x029e, 0x0314, 0x0362,
+ 0x035c, 0x03b6, 0x03cf, 0x036a, 0x035d, 0x0377,
+ 0x0374, 0x03b2, 0x03eb, 0x03d6, 0x03cf, 0x03ff,
+ 0x0402, 0x03d0, 0x03e5, 0x03fa, 0x03bd, 0x03e7,
+ 0x0454, 0x045c, 0x048c, 0x04e3, 0x04d0, 0x04ce,
+ 0x04fc, 0x04f9, 0x04ed, 0x04e5, 0x04f4, 0x0523,
+ 0x0521, 0x0514, 0x0524, 0x050c, 0x04ff, 0x050c,
+ 0x04dd, 0x04ab, 0x04a1, 0x0457, 0x03e5, 0x03ce,
+ 0x03e5, 0x03e9, 0x0426, 0x046b, 0x045c, 0x043f,
+ 0x0402, 0x03bf, 0x03fd, 0x03f7, 0x0365, 0x0373,
+ 0x03bd, 0x038d, 0x03b0, 0x03ca, 0x034c, 0x0336,
+ 0x0386, 0x0376, 0x034c, 0x035d, 0x0372, 0x0368,
+ 0x038b, 0x03fa, 0x040b, 0x03df, 0x0430, 0x046c,
+ 0x0440, 0x0443, 0x043e, 0x03fd, 0x03f3, 0x042d,
+ 0x046e, 0x047c, 0x047f, 0x04b8, 0x04b9, 0x0497,
+ 0x04f4, 0x0548, 0x0511, 0x04de, 0x04fb, 0x054e,
+ 0x059f, 0x0592, 0x055c, 0x056a, 0x0584, 0x0558,
+ 0x053c, 0x0563, 0x0535, 0x04c5, 0x04d2, 0x0505,
+ 0x04ff, 0x0520, 0x0532, 0x051c, 0x0528, 0x052f,
+ 0x0560, 0x0598, 0x054d, 0x0542, 0x05a3, 0x057d,
+ 0x0554, 0x05ac, 0x05f6, 0x0627, 0x0625, 0x05fd,
+ 0x0627, 0x0601, 0x0570, 0x056d, 0x058b, 0x051c,
+ 0x04c4, 0x04d0, 0x04dc, 0x04d1, 0x0502, 0x056c,
+ 0x0571, 0x0548, 0x0587, 0x059c, 0x0568, 0x057d,
+ 0x057f, 0x0561, 0x059f, 0x05da, 0x05c2, 0x059a,
+ 0x0591, 0x05b4, 0x05cb, 0x05bb, 0x05ac, 0x0563,
+ 0x050e, 0x051b, 0x04ed, 0x0443, 0x03e7, 0x03b2,
+ 0x0335, 0x031b, 0x0393, 0x03ee, 0x041b, 0x0463,
+ 0x0497, 0x04a3, 0x04cc, 0x04f6, 0x04c5, 0x0484,
+ 0x04b0, 0x04e0, 0x04bc, 0x04cd, 0x052c, 0x055b,
+ 0x0564, 0x057e, 0x058b, 0x0597, 0x05a7, 0x05aa,
+ 0x05aa, 0x0596, 0x0576, 0x0583, 0x05c6, 0x0613,
+ 0x0641, 0x0678, 0x06e4, 0x0709, 0x06b4, 0x06a0,
+ 0x06e5, 0x0701, 0x06ff, 0x06d5, 0x067e, 0x066e,
+ 0x0657, 0x05bd, 0x0549, 0x0538, 0x04df, 0x046f,
+ 0x0470, 0x0486, 0x0455, 0x0402, 0x03a3, 0x0364,
+ 0x036e, 0x038d, 0x0370, 0x0318, 0x02cc, 0x02b2,
+ 0x02a6, 0x02ae, 0x02d5, 0x02ad, 0x023c, 0x01d3,
+ 0x0136, 0x00a5, 0x0086, 0x002f, 0xffb8, 0xffea,
+ 0x0029, 0xffff, 0x0000, 0x0017, 0x0025, 0x0065,
+ 0x0075, 0x0021, 0xffc5, 0xffa3, 0xfff3, 0x007f,
+ 0x00c9, 0x00cc, 0x00b4, 0x00c4, 0x0102, 0x00d0,
+ 0x0037, 0xfff0, 0xffba, 0xff41, 0xfeea, 0xfeac,
+ 0xfe86, 0xfec8, 0xff01, 0xfec7, 0xfe7d, 0xfe4c,
+ 0xfe15, 0xfddb, 0xfda9, 0xfdcd, 0xfe33, 0xfe40,
+ 0xfe24, 0xfe46, 0xfe45, 0xfe1d, 0xfe07, 0xfdc7,
+ 0xfd7c, 0xfd52, 0xfd2c, 0xfd30, 0xfd39, 0xfd15,
+ 0xfd05, 0xfcf7, 0xfce9, 0xfd0b, 0xfd09, 0xfcfa,
+ 0xfd23, 0xfd25, 0xfd4b, 0xfdc9, 0xfde9, 0xfddd,
+ 0xfe37, 0xfe80, 0xfe6e, 0xfe48, 0xfe44, 0xfe43,
+ 0xfe04, 0xfe0a, 0xfeae, 0xff1e, 0xff34, 0xff67,
+ 0xff6b, 0xff2b, 0xfef6, 0xfede, 0xfee8, 0xfec5,
+ 0xfe71, 0xfe88, 0xff01, 0xff5a, 0xff74, 0xff71,
+ 0xff7e, 0xff68, 0xff14, 0xfee1, 0xfea1, 0xfe3b,
+ 0xfe3b, 0xfe6e, 0xfe4a, 0xfdfe, 0xfdcc, 0xfddc,
+ 0xfe0d, 0xfdfa, 0xfddb, 0xfe07, 0xfe49, 0xfe74,
+ 0xfe8d, 0xfeba, 0xff14, 0xff6d, 0xffb2, 0xffd7,
+ 0xffe1, 0xffff, 0xfffb, 0xffc8, 0xffc9, 0xffdd,
+ 0xffe8, 0x0010, 0x001e, 0x0028, 0x0042, 0x001b,
+ 0x0010, 0x003a, 0x0020, 0x0001, 0xfff6, 0xffd3,
+ 0xffe7, 0x0008, 0xffd2, 0xff6d, 0xff16, 0xff20,
+ 0xff67, 0xff5a, 0xff36, 0xff2b, 0xff02, 0xff08,
+ 0xff21, 0xfef6, 0xfec3, 0xfe5a, 0xfdcb, 0xfdbb,
+ 0xfdec, 0xfe2d, 0xfec0, 0xff09, 0xfefa, 0xff6f,
+ 0xfffd, 0xfff8, 0xffef, 0x001c, 0x0020, 0x0033,
+ 0x007d, 0x00a9, 0x00c8, 0x0101, 0x0126, 0x0135,
+ 0x011c, 0x00c6, 0x009d, 0x009a, 0x0058, 0x001e,
+ 0x0031, 0x005f, 0x0092, 0x00de, 0x0140, 0x0164,
+ 0x013a, 0x015d, 0x01ac, 0x01aa, 0x01ca, 0x0210,
+ 0x020a, 0x0205, 0x0210, 0x0208, 0x0212, 0x01ca,
+ 0x0148, 0x0132, 0x013f, 0x012c, 0x0121, 0x00e4,
+ 0x007f, 0x0028, 0xfffa, 0x002a, 0x005d, 0x0039,
+ 0x0031, 0x005b, 0x007f, 0x0093, 0x0086, 0x007c,
+ 0x0070, 0x0044, 0x0062, 0x00a2, 0x0075, 0x0043,
+ 0x0052, 0x002e, 0xffe8, 0xffd4, 0xffed, 0x000b,
+ 0x0017, 0x0007, 0xffec, 0xffeb, 0xffe3, 0xffa3,
+ 0xff91, 0xffd8, 0xfff3, 0xffe5, 0xfff5, 0xfff7,
+ 0xffe8, 0xffdc, 0xffe6, 0x0000, 0xffba, 0xff3e,
+ 0xff3f, 0xff65, 0xff43, 0xff21, 0xfef4, 0xfeac,
+ 0xfe78, 0xfe51, 0xfe4d, 0xfe7f, 0xfead, 0xfeb3,
+ 0xfea8, 0xfed9, 0xff4b, 0xff8a, 0xff94, 0xffbf,
+ 0x0008, 0x0069, 0x00ca, 0x0113, 0x015a, 0x017d,
+ 0x01a2, 0x020d, 0x024b, 0x0239, 0x0245, 0x024f,
+ 0x0249, 0x026e, 0x027a, 0x0275, 0x029c, 0x02af,
+ 0x02b6, 0x02dc, 0x02f8, 0x0321, 0x0365, 0x0386,
+ 0x039e, 0x03c4, 0x03c8, 0x03d3, 0x0423, 0x0478,
+ 0x0471, 0x0433, 0x0444, 0x0494, 0x0489, 0x0436,
+ 0x0416, 0x03f5, 0x03ae, 0x03af, 0x03f4, 0x041f,
+ 0x042b, 0x0427, 0x0413, 0x03e2, 0x037f, 0x0347,
+ 0x037c, 0x03a2, 0x0375, 0x034c, 0x0330, 0x030e,
+ 0x02f0, 0x02ae, 0x0253, 0x021b, 0x01ee, 0x01b2,
+ 0x019a, 0x0194, 0x0150, 0x00f3, 0x00e7, 0x00f7,
+ 0x00af, 0x005c, 0x0072, 0x00ac, 0x00c1, 0x00c9,
+ 0x00d2, 0x00c6, 0x00ac, 0x00b5, 0x00e7, 0x00fa,
+ 0x00ee, 0x0106, 0x0125, 0x0114, 0x00ea, 0x00bf,
+ 0x00b0, 0x00c4, 0x00b4, 0x0081, 0x0075, 0x0063,
+ 0x0026, 0x002c, 0x0083, 0x00b9, 0x00bd, 0x00b1,
+ 0x009b, 0x0090, 0x0072, 0x0032, 0x000c, 0xffe1,
+ 0xff89, 0xff7a, 0xffb7, 0xffa5, 0xff6a, 0xff89,
+ 0xffce, 0xffe1, 0xffc3, 0xff81, 0xff47, 0xff39,
+ 0xff3c, 0xff3a, 0xff4f, 0xff83, 0xffbc, 0xffee,
+ 0x0014, 0x000c, 0xffcf, 0xffa8, 0xffc1, 0xffd8,
+ 0xffc6, 0xffa5, 0xff99, 0xffbe, 0xfff5, 0x0006,
+ 0x0016, 0x0044, 0x003f, 0xffd3, 0xff53, 0xff19,
+ 0xff14, 0xff09, 0xfeee, 0xfeda, 0xfed9, 0xfefa,
+ 0xff3c, 0xff7a, 0xff8f, 0xff80, 0xff50, 0xff14,
+ 0xff0d, 0xff3a, 0xff28, 0xfeeb, 0xff17, 0xff75,
+ 0xff86, 0xff8d, 0xffb9, 0xffba, 0xffa0, 0xff95,
+ 0xff95, 0xffbf, 0x0000, 0x000f, 0xfff8, 0xffd7,
+ 0xffab, 0xff8e, 0xff89, 0xff78, 0xff5b, 0xff4f,
+ 0xff4e, 0xff44, 0xff30, 0xff1c, 0xff04, 0xfed2,
+ 0xfe9b, 0xfe91, 0xfe8c, 0xfe43, 0xfdfc, 0xfdfa,
+ 0xfdeb, 0xfdbc, 0xfdb6, 0xfdae, 0xfd7a, 0xfd5b,
+ 0xfd51, 0xfd2e, 0xfd18, 0xfd1a, 0xfd04, 0xfcd9,
+ 0xfcb9, 0xfcab, 0xfcc3, 0xfcf5, 0xfd07, 0xfcf6,
+ 0xfcf5, 0xfcfc, 0xfcf5, 0xfcfb, 0xfd1a, 0xfd37,
+ 0xfd4f, 0xfd6b, 0xfd73, 0xfd7a, 0xfdc4, 0xfe30,
+ 0xfe34, 0xfdd2, 0xfd95, 0xfda8, 0xfdd1, 0xfe0a,
+ 0xfe5e, 0xfea1, 0xfebd, 0xfee7, 0xff28, 0xff49,
+ 0xff5f, 0xff91, 0xff9a, 0xff80, 0xffa0, 0xffcf,
+ 0xffcc, 0xffdd, 0xfffe, 0xfffd, 0x0023, 0x006b,
+ 0x0083, 0x00a1, 0x00d9, 0x00db, 0x00f0, 0x0161,
+ 0x01a3, 0x019a, 0x01d4, 0x0233, 0x0250, 0x0255,
+ 0x025a, 0x0258, 0x0276, 0x0290, 0x0288, 0x02a3,
+ 0x02d6, 0x02f7, 0x0349, 0x03a5, 0x0394, 0x0373,
+ 0x0399, 0x03a1, 0x038a, 0x03b7, 0x03ec, 0x03f5,
+ 0x0438, 0x04bd, 0x051d, 0x0548, 0x056b, 0x0585,
+ 0x0587, 0x0573, 0x0564, 0x0585, 0x05c9, 0x05ee,
+ 0x05f5, 0x060b, 0x062b, 0x064c, 0x0677, 0x0672,
+ 0x0621, 0x05f9, 0x0625, 0x0644, 0x0657, 0x069b,
+ 0x06ed, 0x072a, 0x0752, 0x0759, 0x074e, 0x072e,
+ 0x06df, 0x0698, 0x0677, 0x0647, 0x0612, 0x05f3,
+ 0x05bd, 0x0595, 0x05ad, 0x05a2, 0x0537, 0x04db,
+ 0x04ae, 0x0483, 0x0480, 0x048b, 0x0446, 0x03f9,
+ 0x0401, 0x0412, 0x040b, 0x0416, 0x0419, 0x0411,
+ 0x042f, 0x0445, 0x0429, 0x041a, 0x0439, 0x0444,
+ 0x0424, 0x0432, 0x0480, 0x0494, 0x0454, 0x0441,
+ 0x0473, 0x0482, 0x0469, 0x0470, 0x0480, 0x0469,
+ 0x0460, 0x047d, 0x0480, 0x046f, 0x047f, 0x0493,
+ 0x047e, 0x046f, 0x0489, 0x049a, 0x0480, 0x0466,
+ 0x0462, 0x046c, 0x047d, 0x046f, 0x0438, 0x040c,
+ 0x03de, 0x03a4, 0x03b2, 0x03f3, 0x0400, 0x0402,
+ 0x0438, 0x0455, 0x0431, 0x0422, 0x045b, 0x04a0,
+ 0x04b3, 0x04b6, 0x04e9, 0x0534, 0x0555, 0x054f,
+ 0x055e, 0x057f, 0x0577, 0x0552, 0x0558, 0x0587,
+ 0x05a7, 0x05b7, 0x05cd, 0x05e4, 0x05f1, 0x05ff,
+ 0x061d, 0x0658, 0x06a8, 0x06dd, 0x06da, 0x06b7,
+ 0x0699, 0x06a3, 0x06c5, 0x06cb, 0x06d4, 0x0706,
+ 0x071e, 0x0700, 0x06eb, 0x06d5, 0x066f, 0x05f1,
+ 0x05c5, 0x05b6, 0x056d, 0x0532, 0x052b, 0x050b,
+ 0x04cf, 0x04a7, 0x0483, 0x045d, 0x0450, 0x044b,
+ 0x0435, 0x0421, 0x0416, 0x03f7, 0x03c9, 0x03bb,
+ 0x03c6, 0x03cc, 0x03c7, 0x03a7, 0x0387, 0x038d,
+ 0x038a, 0x0366, 0x036b, 0x03a5, 0x03c8, 0x03ba,
+ 0x03bf, 0x03e6, 0x03e7, 0x03ea, 0x043f, 0x0485,
+ 0x0498, 0x04d9, 0x0524, 0x0544, 0x0578, 0x05b6,
+ 0x05d3, 0x05d8, 0x05cf, 0x05d3, 0x05ca, 0x0584,
+ 0x053d, 0x051d, 0x050c, 0x0518, 0x051a, 0x04f2,
+ 0x04d2, 0x04b6, 0x0494, 0x0491, 0x0480, 0x044d,
+ 0x043f, 0x0446, 0x042b, 0x0414, 0x0422, 0x042c,
+ 0x03fd, 0x03a9, 0x0372, 0x0352, 0x0321, 0x02f0,
+ 0x02ce, 0x02a4, 0x0284, 0x0282, 0x0272, 0x024c,
+ 0x0245, 0x025d, 0x0282, 0x02ab, 0x02b7, 0x02ba,
+ 0x02d5, 0x02e9, 0x0309, 0x0358, 0x0393, 0x03ad,
+ 0x03da, 0x03fd, 0x03e6, 0x03a8, 0x0383, 0x0386,
+ 0x0365, 0x032f, 0x0338, 0x0356, 0x0349, 0x0327,
+ 0x0306, 0x02fd, 0x02fb, 0x02ea, 0x02f4, 0x02ff,
+ 0x02f4, 0x031d, 0x0354, 0x0342, 0x0310, 0x02e8,
+ 0x02e0, 0x02f1, 0x02ca, 0x0297, 0x028c, 0x0233,
+ 0x01a6, 0x0170, 0x013f, 0x00d6, 0x009b, 0x0096,
+ 0x0092, 0x00ad, 0x00e9, 0x010b, 0x0108, 0x0117,
+ 0x0142, 0x0159, 0x0163, 0x0179, 0x0175, 0x0154,
+ 0x014c, 0x0149, 0x0115, 0x00e3, 0x00e3, 0x00cf,
+ 0x00b2, 0x00dc, 0x00f0, 0x00bb, 0x00c0, 0x010d,
+ 0x013d, 0x015b, 0x016d, 0x0168, 0x0179, 0x019e,
+ 0x01b9, 0x01d2, 0x01dc, 0x01ca, 0x01b6, 0x01a3,
+ 0x0187, 0x015b, 0x0117, 0x00d7, 0x00c0, 0x00c1,
+ 0x00b7, 0x0085, 0x0037, 0x0014, 0x001f, 0x0009,
+ 0xffee, 0x0002, 0x0008, 0x0009, 0x004c, 0x0086,
+ 0x008d, 0x009e, 0x009e, 0x0095, 0x00c0, 0x00e3,
+ 0x00e7, 0x0114, 0x013f, 0x0126, 0x00f9, 0x00ea,
+ 0x00fb, 0x0108, 0x0103, 0x0120, 0x014b, 0x0135,
+ 0x010e, 0x012d, 0x0166, 0x0182, 0x01b6, 0x020f,
+ 0x023b, 0x0240, 0x0266, 0x028f, 0x0292, 0x0280,
+ 0x024a, 0x0209, 0x01f9, 0x01f5, 0x01b8, 0x0163,
+ 0x0139, 0x0136, 0x0122, 0x0106, 0x0113, 0x0125,
+ 0x0118, 0x0100, 0x00e5, 0x00d1, 0x00c1, 0x009c,
+ 0x0086, 0x00a3, 0x00c7, 0x00dc, 0x0100, 0x0120,
+ 0x010f, 0x00ec, 0x00e6, 0x00e8, 0x00da, 0x00bb,
+ 0x008e, 0x007f, 0x0098, 0x0098, 0x0096, 0x00c3,
+ 0x00fa, 0x0130, 0x0169, 0x0189, 0x01ae, 0x01da,
+ 0x01f4, 0x021b, 0x0231, 0x021a, 0x0212, 0x020b,
+ 0x01ef, 0x01fe, 0x0208, 0x01db, 0x01ae, 0x0176,
+ 0x0116, 0x00bd, 0x0084, 0x0072, 0x0074, 0x0060,
+ 0x0058, 0x0079, 0x0088, 0x0083, 0x008a, 0x009a,
+ 0x00ba, 0x00dd, 0x00e7, 0x00f2, 0x00fd, 0x00eb,
+ 0x00f0, 0x0123, 0x012f, 0x0103, 0x00fd, 0x012e,
+ 0x0149, 0x013d, 0x0139, 0x013c, 0x0125, 0x010f,
+ 0x0127, 0x015e, 0x018c, 0x01a8, 0x01cd, 0x01f6,
+ 0x01f6, 0x01f8, 0x022d, 0x0253, 0x0279, 0x02e7,
+ 0x0321, 0x02e3, 0x02bd, 0x02b3, 0x0286, 0x0279,
+ 0x0279, 0x024c, 0x0222, 0x01fb, 0x01cf, 0x01bb,
+ 0x01b1, 0x01b7, 0x01b1, 0x0175, 0x0157, 0x015b,
+ 0x012e, 0x011c, 0x0136, 0x0115, 0x0103, 0x0133,
+ 0x013c, 0x0133, 0x0153, 0x0159, 0x0132, 0x0107,
+ 0x00d3, 0x00a3, 0x008f, 0x0070, 0x003f, 0x002c,
+ 0x0025, 0x0014, 0x0030, 0x0056, 0x003b, 0x0039,
+ 0x0079, 0x008f, 0x009d, 0x00dc, 0x00dd, 0x00a8,
+ 0x00b7, 0x00eb, 0x00ff, 0x0105, 0x00f4, 0x00bb,
+ 0x007c, 0x0055, 0x0038, 0x001b, 0x0006, 0x0000,
+ 0xfffb, 0xffe9, 0xffd9, 0xffe1, 0xffed, 0xffd8,
+ 0xffd6, 0x000d, 0x003b, 0x0057, 0x0089, 0x0099,
+ 0x007d, 0x0089, 0x00b0, 0x00c2, 0x00d4, 0x00e6,
+ 0x00e5, 0x00de, 0x00ca, 0x00a8, 0x0087, 0x0072,
+ 0x0079, 0x0092, 0x0095, 0x008e, 0x009d, 0x00b2,
+ 0x00aa, 0x0096, 0x009a, 0x00a3, 0x0095, 0x0091,
+ 0x009c, 0x009a, 0x00a6, 0x00c5, 0x00c3, 0x00b6,
+ 0x00d1, 0x0105, 0x0133, 0x014a, 0x0142, 0x0134,
+ 0x0137, 0x0140, 0x0147, 0x014d, 0x0149, 0x015d,
+ 0x0199, 0x01d4, 0x0208, 0x023b, 0x024d, 0x025f,
+ 0x0286, 0x0287, 0x0279, 0x0283, 0x027a, 0x0272,
+ 0x0284, 0x0282, 0x028a, 0x029e, 0x0281, 0x0269,
+ 0x0268, 0x024b, 0x0229, 0x01ef, 0x019b, 0x0178,
+ 0x0152, 0x0117, 0x0139, 0x0170, 0x0159, 0x016c,
+ 0x01ae, 0x019a, 0x0155, 0x013f, 0x0139, 0x0106,
+ 0x00ba, 0x0089, 0x006c, 0x005d, 0x0067, 0x007b,
+ 0x0083, 0x0073, 0x0060, 0x0075, 0x008d, 0x0086,
+ 0x0090, 0x00a0, 0x0095, 0x0096, 0x00b3, 0x00d9,
+ 0x00e4, 0x00c4, 0x00c5, 0x00ef, 0x00f1, 0x00e3,
+ 0x00ed, 0x00e6, 0x00cd, 0x00c2, 0x00d8, 0x0100,
+ 0x010e, 0x011b, 0x013f, 0x0139, 0x0120, 0x012a,
+ 0x011d, 0x00e7, 0x00c1, 0x00b7, 0x00ac, 0x009b,
+ 0x00ac, 0x00ce, 0x00c0, 0x00b3, 0x00bf, 0x009f,
+ 0x0087, 0x0093, 0x007a, 0x0066, 0x0073, 0x0057,
+ 0x0036, 0x0030, 0x0022, 0x0030, 0x0055, 0x0053,
+ 0x003e, 0x0033, 0x001c, 0xfffc, 0xffeb, 0xfff4,
+ 0xffe9, 0xffaa, 0xff6c, 0xff47, 0xff21, 0xff1f,
+ 0xff4c, 0xff5d, 0xff4d, 0xff5c, 0xff82, 0xff91,
+ 0xff9a, 0xffb4, 0xffc3, 0xffc2, 0xffd2, 0xffe7,
+ 0xffd8, 0xffb3, 0xffa3, 0xffb3, 0xffc8, 0xffd3,
+ 0xffdd, 0xffe6, 0xfff2, 0x000b, 0x001a, 0x000b,
+ 0x0005, 0x0015, 0x0012, 0x000f, 0x0027, 0x003a,
+ 0x003d, 0x0038, 0x0028, 0x001e, 0x000e, 0xfff0,
+ 0xffe9, 0xffdb, 0xffac, 0xffb1, 0xffe0, 0xffdd,
+ 0xffbc, 0xff9d, 0xff84, 0xff7b, 0xff61, 0xff49,
+ 0xff59, 0xff61, 0xff53, 0xff50, 0xff3a, 0xff08,
+ 0xfee7, 0xfee9, 0xfedf, 0xfe96, 0xfe63, 0xfe79,
+ 0xfe67, 0xfe30, 0xfe27, 0xfe10, 0xfdf4, 0xfe02,
+ 0xfdf8, 0xfddb, 0xfde0, 0xfdeb, 0xfdf9, 0xfe0c,
+ 0xfe12, 0xfe28, 0xfe41, 0xfe42, 0xfe3b, 0xfe38,
+ 0xfe46, 0xfe55, 0xfe49, 0xfe35, 0xfe27, 0xfe2e,
+ 0xfe48, 0xfe48, 0xfe64, 0xfeb9, 0xfee2, 0xfefe,
+ 0xff40, 0xff57, 0xff5f, 0xff75, 0xff5f, 0xff53,
+ 0xff5e, 0xff51, 0xff62, 0xff82, 0xff89, 0xffc1,
+ 0x0004, 0x001f, 0x0053, 0x0086, 0x0081, 0x0063,
+ 0x0047, 0x004e, 0x006c, 0x005d, 0x0039, 0x0047,
+ 0x0076, 0x009a, 0x00b6, 0x00d3, 0x00e0, 0x00ee,
+ 0x0123, 0x015c, 0x0188, 0x01b3, 0x01ba, 0x01c5,
+ 0x01fb, 0x020f, 0x020f, 0x0223, 0x01fa, 0x01ce,
+ 0x0201, 0x022c, 0x0224, 0x023e, 0x0263, 0x0267,
+ 0x0275, 0x02a2, 0x02cd, 0x02d9, 0x02d8, 0x02da,
+ 0x02e9, 0x030d, 0x0331, 0x0339, 0x032c, 0x0322,
+ 0x033a, 0x0361, 0x0361, 0x0350, 0x0349, 0x032b,
+ 0x0300, 0x02d6, 0x02aa, 0x0289, 0x0262, 0x0244,
+ 0x025d, 0x026d, 0x023b, 0x021b, 0x0223, 0x0218,
+ 0x0208, 0x0213, 0x0213, 0x01f7, 0x01e5, 0x01db,
+ 0x01b3, 0x0190, 0x0182, 0x0159, 0x0133, 0x013e,
+ 0x0147, 0x013f, 0x014a, 0x015e, 0x0176, 0x0192,
+ 0x01a4, 0x01b4, 0x01c3, 0x01c6, 0x01c5, 0x01c6,
+ 0x01c4, 0x01bd, 0x01af, 0x019e, 0x0195, 0x01a2,
+ 0x01c5, 0x01d4, 0x01bb, 0x01b0, 0x01cf, 0x01ea,
+ 0x01f6, 0x0214, 0x0228, 0x0210, 0x01f9, 0x01fb,
+ 0x01f4, 0x01e0, 0x01d1, 0x01be, 0x01a6, 0x018f,
+ 0x0170, 0x0153, 0x014d, 0x0156, 0x016b, 0x01a3,
+ 0x01eb, 0x0221, 0x0248, 0x024b, 0x0233, 0x0242,
+ 0x0255, 0x0243, 0x0253, 0x0274, 0x0276, 0x0296,
+ 0x02b8, 0x02aa, 0x02a1, 0x0291, 0x0277, 0x0285,
+ 0x0285, 0x0274, 0x028a, 0x0295, 0x02a6, 0x02f1,
+ 0x0322, 0x0330, 0x035f, 0x038e, 0x03a2, 0x03ad,
+ 0x03b1, 0x03bb, 0x03b0, 0x0385, 0x0371, 0x0372,
+ 0x0366, 0x0363, 0x0364, 0x034c, 0x0335, 0x033b,
+ 0x034a, 0x035c, 0x0382, 0x0399, 0x038c, 0x0388,
+ 0x0398, 0x03a5, 0x03ab, 0x039b, 0x038c, 0x0396,
+ 0x0380, 0x034d, 0x033f, 0x032d, 0x02f8, 0x02c1,
+ 0x02a1, 0x02a5, 0x0299, 0x0269, 0x0270, 0x0291,
+ 0x0285, 0x0291, 0x02b0, 0x0295, 0x028b, 0x02ca,
+ 0x030b, 0x0336, 0x0365, 0x0386, 0x037d, 0x036d,
+ 0x037b, 0x0395, 0x03ae, 0x03c2, 0x03c8, 0x03d5,
+ 0x03d6, 0x03c2, 0x03e5, 0x040e, 0x03ed, 0x03ed,
+ 0x0438, 0x0467, 0x0484, 0x04b4, 0x04d1, 0x04d1,
+ 0x04d2, 0x04fd, 0x0534, 0x0538, 0x053c, 0x0544,
+ 0x0511, 0x04e7, 0x04e8, 0x04c1, 0x0495, 0x0496,
+ 0x0495, 0x0497, 0x04a9, 0x0498, 0x046f, 0x0467,
+ 0x0472, 0x045e, 0x0452, 0x0482, 0x04ba, 0x04e4,
+ 0x0518, 0x051d, 0x04fc, 0x0503, 0x04fd, 0x04d5,
+ 0x04d9, 0x04e8, 0x04c1, 0x0489, 0x045c, 0x0438,
+ 0x042e, 0x043e, 0x0458, 0x0474, 0x0485, 0x0493,
+ 0x04b6, 0x04dd, 0x04ec, 0x0508, 0x053e, 0x0557,
+ 0x055a, 0x0581, 0x05ab, 0x05a6, 0x059f, 0x05b4,
+ 0x05b1, 0x0587, 0x0578, 0x0584, 0x0564, 0x051d,
+ 0x04e3, 0x04c0, 0x04b0, 0x04a4, 0x049c, 0x04ac,
+ 0x04b6, 0x04c1, 0x04fd, 0x0546, 0x0576, 0x059e,
+ 0x059e, 0x0576, 0x054a, 0x0516, 0x04f1, 0x04e5,
+ 0x04c3, 0x0493, 0x0466, 0x043d, 0x042f, 0x041f,
+ 0x040a, 0x041d, 0x0431, 0x0440, 0x047b, 0x04ad,
+ 0x04b7, 0x04c4, 0x04bd, 0x049c, 0x0489, 0x048d,
+ 0x04a3, 0x04bd, 0x04c6, 0x04c2, 0x04ac, 0x0493,
+ 0x0485, 0x0470, 0x046d, 0x0489, 0x0486, 0x046d,
+ 0x0466, 0x0456, 0x043f, 0x0440, 0x043a, 0x041d,
+ 0x0408, 0x0404, 0x040a, 0x0417, 0x0419, 0x03fc,
+ 0x03e2, 0x03e9, 0x03eb, 0x03d1, 0x03c8, 0x03da,
+ 0x03dd, 0x03c9, 0x03be, 0x03c7, 0x03c4, 0x03b3,
+ 0x03a8, 0x0391, 0x037b, 0x0379, 0x0369, 0x034d,
+ 0x0349, 0x0359, 0x0373, 0x038b, 0x03a7, 0x03d7,
+ 0x03f1, 0x03f4, 0x040d, 0x03fe, 0x03c7, 0x03c6,
+ 0x03d1, 0x03bb, 0x03c2, 0x03c4, 0x039b, 0x0375,
+ 0x0350, 0x0326, 0x030a, 0x02ed, 0x02e4, 0x02f3,
+ 0x02e8, 0x02d9, 0x02ee, 0x02fc, 0x02f3, 0x02db,
+ 0x02ab, 0x027a, 0x0267, 0x0254, 0x0229, 0x020f,
+ 0x020f, 0x01fc, 0x01ee, 0x020d, 0x022b, 0x0238,
+ 0x0261, 0x0281, 0x026e, 0x0257, 0x0247, 0x022f,
+ 0x0232, 0x025c, 0x028a, 0x02c1, 0x02f1, 0x02fe,
+ 0x02f9, 0x02f9, 0x02f9, 0x0303, 0x030b, 0x02fe,
+ 0x02f5, 0x02ee, 0x02d9, 0x02d4, 0x02de, 0x02de,
+ 0x02eb, 0x0307, 0x030c, 0x02f9, 0x02d7, 0x02ad,
+ 0x0282, 0x0257, 0x023e, 0x0246, 0x0252, 0x0258,
+ 0x0276, 0x029f, 0x02a2, 0x0287, 0x0284, 0x0297,
+ 0x0290, 0x027c, 0x0276, 0x0266, 0x0247, 0x023a,
+ 0x0247, 0x0251, 0x023c, 0x022e, 0x0240, 0x0249,
+ 0x0241, 0x0246, 0x0249, 0x0253, 0x027b, 0x02a0,
+ 0x02bd, 0x02e2, 0x02f3, 0x02ed, 0x02e4, 0x02d6,
+ 0x02c6, 0x02b6, 0x02a6, 0x029d, 0x0292, 0x0290,
+ 0x02a2, 0x02a3, 0x029d, 0x02a8, 0x029f, 0x0282,
+ 0x0272, 0x025e, 0x024a, 0x0242, 0x023b, 0x0249,
+ 0x0264, 0x0262, 0x0252, 0x0235, 0x01fd, 0x01e5,
+ 0x01f1, 0x01e1, 0x01ba, 0x0192, 0x0161, 0x0135,
+ 0x0118, 0x00fe, 0x00d8, 0x0096, 0x005b, 0x003e,
+ 0x001c, 0x0000, 0xffff, 0xfff6, 0xffe7, 0xffe3,
+ 0xffdf, 0xfff2, 0x001d, 0x0039, 0x0043, 0x004c,
+ 0x0050, 0x0054, 0x0041, 0x000d, 0xffdd, 0xffbb,
+ 0xff96, 0xff86, 0xff96, 0xffab, 0xffb7, 0xffc4,
+ 0xffcb, 0xffc8, 0xffcb, 0xffc4, 0xffa9, 0xffa3,
+ 0xffb5, 0xffaf, 0xff99, 0xff8e, 0xff81, 0xff62,
+ 0xff43, 0xff44, 0xff46, 0xff2d, 0xff39, 0xff74,
+ 0xff93, 0xff9e, 0xffb6, 0xffbc, 0xffb2, 0xffae,
+ 0xffaa, 0xff9f, 0xff85, 0xff5e, 0xff2a, 0xfee4,
+ 0xfebb, 0xfebc, 0xfeb1, 0xfea4, 0xfeb0, 0xfec2,
+ 0xfedc, 0xfee0, 0xfed2, 0xfef8, 0xff1f, 0xfefb,
+ 0xfed6, 0xfecb, 0xfeb5, 0xfead, 0xfea2, 0xfe89,
+ 0xfe88, 0xfe82, 0xfe6f, 0xfe7a, 0xfe7e, 0xfe6e,
+ 0xfe79, 0xfe7f, 0xfe70, 0xfe86, 0xfeac, 0xfea9,
+ 0xfe98, 0xfea5, 0xfec6, 0xfeeb, 0xff0e, 0xff31,
+ 0xff48, 0xff4a, 0xff45, 0xff52, 0xff61, 0xff5d,
+ 0xff55, 0xff52, 0xff4f, 0xff59, 0xff68, 0xff65,
+ 0xff6a, 0xff87, 0xff9b, 0xffa0, 0xffa6, 0xffab,
+ 0xffb2, 0xffb4, 0xff96, 0xff5c, 0xff2e, 0xff20,
+ 0xff17, 0xfef2, 0xfebd, 0xfeaa, 0xfec5, 0xfef2,
+ 0xff18, 0xff37, 0xff5a, 0xff7b, 0xff88, 0xff84,
+ 0xff6a, 0xff3f, 0xff27, 0xff16, 0xfeeb, 0xfecb,
+ 0xfec4, 0xfea7, 0xfe81, 0xfe7f, 0xfe91, 0xfe97,
+ 0xfe9c, 0xfeb4, 0xfed2, 0xfedf, 0xfeed, 0xfefc,
+ 0xfefc, 0xff01, 0xff0e, 0xff0a, 0xff0f, 0xff2c,
+ 0xff39, 0xff39, 0xff4d, 0xff60, 0xff5e, 0xff62,
+ 0xff6f, 0xff64, 0xff51, 0xff55, 0xff59, 0xff4a,
+ 0xff46, 0xff49, 0xff2b, 0xfefb, 0xfeea, 0xfeee,
+ 0xfedd, 0xfecb, 0xfeda, 0xfee8, 0xfeec, 0xff00,
+ 0xff0b, 0xff10, 0xff31, 0xff4a, 0xff48, 0xff4c,
+ 0xff43, 0xff2a, 0xff20, 0xff15, 0xfefc, 0xfeed,
+ 0xfeef, 0xff03, 0xff16, 0xff12, 0xff19, 0xff2e,
+ 0xff2e, 0xff32, 0xff3c, 0xff29, 0xff0c, 0xff04,
+ 0xff08, 0xff15, 0xff30, 0xff59, 0xff7f, 0xff91,
+ 0xffb0, 0xffe8, 0x0004, 0x000c, 0x0017, 0xfffc,
+ 0xffc8, 0xffb5, 0xffaf, 0xff98, 0xff84, 0xff77,
+ 0xff74, 0xff8e, 0xffc0, 0xffec, 0xffff, 0x0007,
+ 0x000c, 0x000a, 0x000d, 0x000c, 0xffff, 0x000c,
+ 0x002c, 0x002b, 0x002a, 0x0043, 0x004f, 0x0058,
+ 0x0072, 0x008a, 0x009b, 0x0094, 0x007c, 0x0081,
+ 0x008c, 0x007d, 0x0074, 0x006b, 0x0050, 0x0037,
+ 0x0020, 0x0016, 0x002b, 0x003c, 0x0034, 0x0022,
+ 0x0019, 0x0025, 0x0039, 0x0043, 0x0048, 0x0048,
+ 0x0048, 0x004d, 0x0039, 0x000f, 0x000c, 0x001f,
+ 0x000d, 0xfff4, 0xfff6, 0xffe7, 0xffce, 0xffd8,
+ 0xffe5, 0xffd6, 0xffca, 0xffce, 0xffd3, 0xffd3,
+ 0xffd8, 0xfff4, 0x0013, 0x001c, 0x0029, 0x0045,
+ 0x0054, 0x0070, 0x009b, 0x009b, 0x0081, 0x007f,
+ 0x007a, 0x0062, 0x0058, 0x0051, 0x0041, 0x004a,
+ 0x005d, 0x0052, 0x004b, 0x0063, 0x0080, 0x009d,
+ 0x00ba, 0x00d5, 0x0100, 0x012b, 0x0149, 0x0179,
+ 0x01a4, 0x01a9, 0x01ab, 0x01c0, 0x01dd, 0x01f8,
+ 0x020d, 0x0232, 0x025e, 0x0277, 0x029b, 0x02ca,
+ 0x02de, 0x02e7, 0x02ed, 0x02eb, 0x02f0, 0x02e9,
+ 0x02e5, 0x02fa, 0x02f1, 0x02c8, 0x02ca, 0x02ec,
+ 0x0316, 0x0342, 0x0351, 0x034e, 0x034e, 0x033c,
+ 0x031d, 0x02f4, 0x02c0, 0x02a7, 0x02b2, 0x02c0,
+ 0x02bc, 0x02b2, 0x02be, 0x02dc, 0x02ec, 0x02fb,
+ 0x0317, 0x0335, 0x0355, 0x037b, 0x039a, 0x03ab,
+ 0x03bf, 0x03dc, 0x03df, 0x03d3, 0x03e6, 0x03ff,
+ 0x03ff, 0x03f2, 0x03ce, 0x03ab, 0x03aa, 0x03ae,
+ 0x03b4, 0x03c1, 0x03b8, 0x03c6, 0x03f3, 0x03e7,
+ 0x03b8, 0x03a0, 0x0377, 0x034b, 0x0334, 0x0319,
+ 0x030c, 0x0314, 0x0317, 0x0323, 0x0333, 0x033b,
+ 0x0344, 0x0338, 0x0331, 0x034a, 0x034f, 0x034a,
+ 0x035a, 0x0351, 0x0344, 0x035a, 0x0363, 0x0360,
+ 0x0360, 0x0349, 0x0334, 0x032f, 0x031d, 0x030c,
+ 0x0307, 0x0307, 0x031b, 0x0340, 0x0368, 0x0395,
+ 0x03b9, 0x03c9, 0x03c2, 0x03a7, 0x0396, 0x038c,
+ 0x0374, 0x0365, 0x0374, 0x037f, 0x0372, 0x036d,
+ 0x0383, 0x0392, 0x039a, 0x03b7, 0x03b5, 0x0383,
+ 0x0366, 0x035d, 0x034e, 0x035f, 0x0379, 0x037a,
+ 0x0382, 0x0399, 0x03af, 0x03c7, 0x03cf, 0x03c3,
+ 0x03b6, 0x03a5, 0x038a, 0x0379, 0x0383, 0x038c,
+ 0x037f, 0x0382, 0x0394, 0x03a1, 0x03ba, 0x03d0,
+ 0x03cf, 0x03d0, 0x03c6, 0x03bc, 0x03ce, 0x03d6,
+ 0x03cd, 0x03d9, 0x03ee, 0x0402, 0x040a, 0x03ff,
+ 0x0408, 0x0410, 0x0401, 0x0405, 0x03f7, 0x03cd,
+ 0x03d0, 0x03cb, 0x0398, 0x037f, 0x036a, 0x0336,
+ 0x031d, 0x031c, 0x031a, 0x032b, 0x034b, 0x0367,
+ 0x036d, 0x0365, 0x036b, 0x0371, 0x0363, 0x0350,
+ 0x032b, 0x0303, 0x02f1, 0x02d7, 0x02b6, 0x02ab,
+ 0x02a2, 0x02aa, 0x02de, 0x0317, 0x033e, 0x035f,
+ 0x036b, 0x0367, 0x0362, 0x034d, 0x0337, 0x033f,
+ 0x034b, 0x0353, 0x036b, 0x0373, 0x0363, 0x035b,
+ 0x034c, 0x033b, 0x033a, 0x0328, 0x0315, 0x0320,
+ 0x0322, 0x031d, 0x0322, 0x0320, 0x0333, 0x0355,
+ 0x0362, 0x0384, 0x03b4, 0x03bb, 0x03b5, 0x03ad,
+ 0x0394, 0x0387, 0x037b, 0x0368, 0x036e, 0x036e,
+ 0x0357, 0x0342, 0x0320, 0x02f2, 0x02c6, 0x0294,
+ 0x0272, 0x026c, 0x0265, 0x0264, 0x027b, 0x0284,
+ 0x027c, 0x027a, 0x0275, 0x0268, 0x025e, 0x0253,
+ 0x0253, 0x0266, 0x026c, 0x0263, 0x0263, 0x0261,
+ 0x0261, 0x0270, 0x0269, 0x0258, 0x025b, 0x0250,
+ 0x0235, 0x021c, 0x01fd, 0x01ea, 0x01f4, 0x0204,
+ 0x0221, 0x024c, 0x0268, 0x0277, 0x028b, 0x0299,
+ 0x028e, 0x027c, 0x0275, 0x025c, 0x0237, 0x0223,
+ 0x0211, 0x0209, 0x021a, 0x0210, 0x01e7, 0x01cc,
+ 0x01ba, 0x01ac, 0x01ae, 0x01a9, 0x019a, 0x0194,
+ 0x0193, 0x0195, 0x01a9, 0x01cd, 0x01e6, 0x01eb,
+ 0x01ed, 0x01e9, 0x01e4, 0x01d7, 0x01b5, 0x01a0,
+ 0x019f, 0x0181, 0x015d, 0x014b, 0x0138, 0x013b,
+ 0x013c, 0x012f, 0x0150, 0x016b, 0x0154, 0x0162,
+ 0x018d, 0x01a3, 0x01b9, 0x01bf, 0x01b6, 0x01b2,
+ 0x01a5, 0x01a5, 0x01aa, 0x019b, 0x0198, 0x0186,
+ 0x015c, 0x015b, 0x0166, 0x015e, 0x0173, 0x019c,
+ 0x01c9, 0x01e5, 0x01e4, 0x01f2, 0x01fd, 0x01ea,
+ 0x01f4, 0x0201, 0x01f6, 0x0209, 0x020a, 0x01f3,
+ 0x0202, 0x01ff, 0x01e0, 0x01db, 0x01d2, 0x01cb,
+ 0x01d0, 0x01bb, 0x01b2, 0x01bb, 0x01a2, 0x017b,
+ 0x0163, 0x0155, 0x0150, 0x014e, 0x015e, 0x0172,
+ 0x0169, 0x0167, 0x0172, 0x0169, 0x015b, 0x0155,
+ 0x014d, 0x013f, 0x0132, 0x0146, 0x0152, 0x0132,
+ 0x0122, 0x0122, 0x010f, 0x0115, 0x0117, 0x00f1,
+ 0x00e2, 0x00ee, 0x00ed, 0x00df, 0x00d2, 0x00ef,
+ 0x011d, 0x011d, 0x012a, 0x0169, 0x019f, 0x01c8,
+ 0x01f1, 0x020e, 0x021a, 0x0210, 0x0209, 0x0204,
+ 0x01e0, 0x01ca, 0x01d1, 0x01c3, 0x01b5, 0x01c1,
+ 0x01cb, 0x01da, 0x01f0, 0x01fe, 0x0212, 0x0229,
+ 0x0247, 0x0271, 0x028f, 0x029f, 0x02ae, 0x02b0,
+ 0x02b3, 0x02c9, 0x02d6, 0x02cd, 0x02ce, 0x02dc,
+ 0x02d7, 0x02cc, 0x02c5, 0x02a8, 0x0292, 0x0297,
+ 0x0284, 0x0264, 0x0256, 0x0245, 0x023e, 0x0243,
+ 0x0230, 0x0229, 0x0241, 0x0252, 0x0263, 0x0271,
+ 0x026e, 0x0271, 0x0271, 0x0269, 0x0278, 0x0280,
+ 0x026a, 0x025c, 0x0259, 0x024a, 0x0247, 0x0253,
+ 0x024e, 0x0245, 0x0252, 0x0258, 0x024e, 0x025d,
+ 0x0276, 0x027c, 0x0284, 0x0294, 0x02a5, 0x02bb,
+ 0x02ca, 0x02d2, 0x02d0, 0x02b9, 0x0298, 0x027c,
+ 0x026a, 0x025d, 0x024d, 0x0243, 0x0247, 0x024d,
+ 0x0257, 0x025e, 0x0263, 0x0277, 0x0283, 0x027c,
+ 0x027c, 0x0270, 0x0250, 0x0237, 0x0215, 0x01f2,
+ 0x01e7, 0x01e5, 0x01f4, 0x020a, 0x0203, 0x0201,
+ 0x0200, 0x01ee, 0x01f9, 0x0204, 0x01ec, 0x01ef,
+ 0x01fe, 0x01e5, 0x01d0, 0x01c7, 0x01a9, 0x0184,
+ 0x0177, 0x0182, 0x0186, 0x0183, 0x0191, 0x0192,
+ 0x0183, 0x018e, 0x018b, 0x0175, 0x017b, 0x0177,
+ 0x0166, 0x016a, 0x0156, 0x0130, 0x0121, 0x0106,
+ 0x00f2, 0x0104, 0x010a, 0x00ff, 0x010e, 0x0129,
+ 0x013d, 0x0141, 0x0130, 0x0128, 0x0139, 0x0145,
+ 0x0145, 0x0145, 0x013d, 0x012f, 0x011d, 0x00fd,
+ 0x00e0, 0x00ce, 0x00ae, 0x0098, 0x009a, 0x0097,
+ 0x0098, 0x00ab, 0x00be, 0x00d7, 0x00f2, 0x010b,
+ 0x012e, 0x013c, 0x012c, 0x0126, 0x011c, 0x010c,
+ 0x0110, 0x0109, 0x00f9, 0x0100, 0x0100, 0x00f6,
+ 0x00f5, 0x00ee, 0x00e2, 0x00d8, 0x00da, 0x00f5,
+ 0x0104, 0x00fc, 0x00ff, 0x0107, 0x0108, 0x010a,
+ 0x010d, 0x0114, 0x0113, 0x00fd, 0x00e9, 0x00de,
+ 0x00e1, 0x00fd, 0x0109, 0x0108, 0x0124, 0x013d,
+ 0x0158, 0x0192, 0x01ae, 0x019b, 0x0199, 0x0196,
+ 0x016b, 0x0141, 0x013c, 0x0146, 0x0158, 0x016c,
+ 0x0173, 0x017a, 0x0188, 0x017d, 0x016f, 0x0170,
+ 0x0155, 0x013a, 0x0148, 0x0145, 0x012f, 0x012d,
+ 0x012d, 0x0139, 0x014c, 0x0136, 0x011b, 0x0111,
+ 0x00f0, 0x00d2, 0x00c7, 0x00b2, 0x0092, 0x0076,
+ 0x006b, 0x0072, 0x0073, 0x0081, 0x00a1, 0x00b3,
+ 0x00bf, 0x00cc, 0x00ca, 0x00c5, 0x00bb, 0x00bf,
+ 0x00ed, 0x0116, 0x012b, 0x014b, 0x0165, 0x0176,
+ 0x018c, 0x0188, 0x017b, 0x017a, 0x0169, 0x015f,
+ 0x0168, 0x0158, 0x0151, 0x0164, 0x0168, 0x016f,
+ 0x0180, 0x0178, 0x017a, 0x0193, 0x019f, 0x01b4,
+ 0x01cf, 0x01ce, 0x01ce, 0x01da, 0x01eb, 0x0209,
+ 0x0214, 0x0206, 0x0200, 0x01e8, 0x01c0, 0x01b7,
+ 0x01ba, 0x01c1, 0x01d4, 0x01d1, 0x01ce, 0x01da,
+ 0x01ca, 0x01c3, 0x01d7, 0x01d0, 0x01c4, 0x01be,
+ 0x019c, 0x0187, 0x018f, 0x018a, 0x0192, 0x01aa,
+ 0x01af, 0x01b1, 0x01ae, 0x019a, 0x018b, 0x017e,
+ 0x016b, 0x0160, 0x0152, 0x0141, 0x0141, 0x0151,
+ 0x0162, 0x016c, 0x0164, 0x0162, 0x0176, 0x0182,
+ 0x017f, 0x0183, 0x017b, 0x0166, 0x0166, 0x016b,
+ 0x0161, 0x0159, 0x014e, 0x0135, 0x0116, 0x00ec,
+ 0x00c4, 0x00ad, 0x009a, 0x0098, 0x00a6, 0x00af,
+ 0x00bf, 0x00cd, 0x00c6, 0x00c6, 0x00c7, 0x00b4,
+ 0x00a5, 0x0091, 0x006f, 0x0058, 0x0041, 0x0029,
+ 0x0026, 0x001a, 0x0008, 0x000c, 0x000e, 0x000a,
+ 0x0007, 0xfff8, 0xffec, 0xffeb, 0xffe5, 0xffe6,
+ 0xfff3, 0xfffc, 0xfffd, 0x0000, 0x000e, 0x001f,
+ 0x001f, 0x0017, 0x000f, 0xfffc, 0xffdf, 0xffd1,
+ 0xffd0, 0xffcf, 0xffcf, 0xffcd, 0xffc9, 0xffc9,
+ 0xffc0, 0xffb2, 0xffbb, 0xffcd, 0xffcf, 0xffd9,
+ 0xffe3, 0xffdd, 0xffdf, 0xffe9, 0xfffe, 0x001b,
+ 0x0029, 0x003a, 0x0056, 0x0050, 0x0039, 0x003c,
+ 0x004e, 0x006c, 0x008c, 0x00a9, 0x00d4, 0x00ee,
+ 0x00f6, 0x0117, 0x012d, 0x0126, 0x012a, 0x0126,
+ 0x011e, 0x012d, 0x012e, 0x0122, 0x0126, 0x0126,
+ 0x011c, 0x0116, 0x0107, 0x00ef, 0x00e0, 0x00d9,
+ 0x00d8, 0x00e6, 0x00fa, 0x0100, 0x010f, 0x0130,
+ 0x013c, 0x013a, 0x0139, 0x0124, 0x0112, 0x010e,
+ 0x00f3, 0x00df, 0x00f0, 0x00fc, 0x010c, 0x0132,
+ 0x0153, 0x016b, 0x0185, 0x019c, 0x01af, 0x01c4,
+ 0x01d6, 0x01d3, 0x01c5, 0x01ca, 0x01d0, 0x01d4,
+ 0x01ec, 0x0200, 0x020f, 0x022a, 0x0236, 0x0239,
+ 0x0240, 0x0232, 0x0226, 0x0224, 0x0213, 0x020b,
+ 0x0210, 0x0208, 0x0205, 0x01f1, 0x01c1, 0x01b6,
+ 0x01c4, 0x01b4, 0x01b2, 0x01cf, 0x01cf, 0x01b7,
+ 0x01b6, 0x01bd, 0x01bf, 0x01c2, 0x01bc, 0x01b5,
+ 0x01bd, 0x01b7, 0x019e, 0x0193, 0x0189, 0x0172,
+ 0x0160, 0x0154, 0x014d, 0x0142, 0x0131, 0x012f,
+ 0x0132, 0x0129, 0x0129, 0x012a, 0x0119, 0x0110,
+ 0x011e, 0x0139, 0x0151, 0x0163, 0x0170, 0x0165,
+ 0x0148, 0x0143, 0x013f, 0x012c, 0x0133, 0x0136,
+ 0x0121, 0x0121, 0x012b, 0x0126, 0x0120, 0x0118,
+ 0x0122, 0x0136, 0x0135, 0x0135, 0x0138, 0x0125,
+ 0x0123, 0x012f, 0x0123, 0x0116, 0x0106, 0x00e0,
+ 0x00c0, 0x00b9, 0x00b6, 0x00ac, 0x00b0, 0x00c7,
+ 0x00cd, 0x00c2, 0x00c8, 0x00d0, 0x00d6, 0x00dd,
+ 0x00ce, 0x00c1, 0x00c5, 0x00b6, 0x00a5, 0x00b0,
+ 0x00c6, 0x00ea, 0x010c, 0x010d, 0x0111, 0x0126,
+ 0x012f, 0x013d, 0x0154, 0x0159, 0x0163, 0x0175,
+ 0x0176, 0x016f, 0x015c, 0x0141, 0x0140, 0x0145,
+ 0x013f, 0x0155, 0x0170, 0x0167, 0x016b, 0x0186,
+ 0x0198, 0x01ac, 0x01b7, 0x01aa, 0x019b, 0x0181,
+ 0x0166, 0x0160, 0x0161, 0x0179, 0x0195, 0x0186,
+ 0x017a, 0x0180, 0x0160, 0x0140, 0x013f, 0x013e,
+ 0x0142, 0x0142, 0x0140, 0x0160, 0x017d, 0x0180,
+ 0x0188, 0x0191, 0x01ab, 0x01cc, 0x01ca, 0x01d5,
+ 0x01f4, 0x01f2, 0x01f3, 0x01fd, 0x01fd, 0x021b,
+ 0x023f, 0x0248, 0x025c, 0x026b, 0x0272, 0x0293,
+ 0x02a5, 0x02a1, 0x02a8, 0x02a5, 0x02a0, 0x02a8,
+ 0x02ac, 0x02c7, 0x02f1, 0x02f8, 0x02ee, 0x02ef,
+ 0x02e8, 0x02d9, 0x02d3, 0x02d5, 0x02d3, 0x02c7,
+ 0x02c3, 0x02ca, 0x02ce, 0x02cb, 0x02cd, 0x02d3,
+ 0x02d6, 0x02e5, 0x02fd, 0x0301, 0x02f7, 0x02f8,
+ 0x02f2, 0x02e0, 0x02cf, 0x02c6, 0x02ca, 0x02cf,
+ 0x02cc, 0x02cf, 0x02bf, 0x029d, 0x028f, 0x0282,
+ 0x0265, 0x0252, 0x023e, 0x022c, 0x0236, 0x0238,
+ 0x0229, 0x0222, 0x021a, 0x0216, 0x021a, 0x0219,
+ 0x0229, 0x023e, 0x023a, 0x022d, 0x0223, 0x0209,
+ 0x01f5, 0x01f0, 0x01eb, 0x01ec, 0x01f3, 0x01f7,
+ 0x01fc, 0x020f, 0x0222, 0x0225, 0x0227, 0x0237,
+ 0x023e, 0x0237, 0x022d, 0x0222, 0x0220, 0x0219,
+ 0x01fa, 0x01de, 0x01c9, 0x01b0, 0x01b1, 0x01be,
+ 0x01aa, 0x018d, 0x017f, 0x016e, 0x016e, 0x0187,
+ 0x0191, 0x0194, 0x0199, 0x018f, 0x0189, 0x0188,
+ 0x0170, 0x0153, 0x0148, 0x0149, 0x0154, 0x0159,
+ 0x014e, 0x0149, 0x013f, 0x0119, 0x00f1, 0x00dd,
+ 0x00db, 0x00ec, 0x0106, 0x0124, 0x013b, 0x013a,
+ 0x0131, 0x012f, 0x011c, 0x00fa, 0x00ed, 0x00f7,
+ 0x0101, 0x010f, 0x012e, 0x0144, 0x014f, 0x016f,
+ 0x0180, 0x0175, 0x0184, 0x0190, 0x017b, 0x0184,
+ 0x0199, 0x018c, 0x0193, 0x01a7, 0x019f, 0x01a7,
+ 0x01b4, 0x01a4, 0x01a4, 0x01c1, 0x01d4, 0x01e4,
+ 0x01f4, 0x01fd, 0x0209, 0x0210, 0x0214, 0x0226,
+ 0x0235, 0x0235, 0x023b, 0x0238, 0x0216, 0x01fd,
+ 0x0201, 0x01fc, 0x01ea, 0x01ed, 0x01fc, 0x0203,
+ 0x0205, 0x0201, 0x01fc, 0x01fe, 0x020c, 0x0234,
+ 0x0261, 0x0275, 0x0289, 0x02a2, 0x02aa, 0x02bb,
+ 0x02d6, 0x02d9, 0x02d6, 0x02e3, 0x02e5, 0x02e1,
+ 0x02e2, 0x02d9, 0x02ce, 0x02cc, 0x02c3, 0x02bd,
+ 0x02c3, 0x02c0, 0x02b5, 0x02a5, 0x0284, 0x0268,
+ 0x0264, 0x0258, 0x0243, 0x0240, 0x0244, 0x023f,
+ 0x0234, 0x021f, 0x01ff, 0x01e8, 0x01e9, 0x01e8,
+ 0x01d9, 0x01d7, 0x01d7, 0x01be, 0x01a5, 0x0197,
+ 0x0183, 0x017c, 0x0183, 0x017d, 0x0177, 0x0182,
+ 0x017e, 0x015e, 0x013e, 0x0132, 0x012c, 0x0126,
+ 0x012d, 0x0137, 0x012c, 0x0120, 0x0125, 0x011a,
+ 0x00f9, 0x00e5, 0x00e8, 0x00eb, 0x00e4, 0x00db,
+ 0x00db, 0x00e0, 0x00db, 0x00c5, 0x00ab, 0x0096,
+ 0x0088, 0x008f, 0x00a8, 0x00bd, 0x00d6, 0x00fd,
+ 0x0113, 0x0118, 0x0127, 0x012f, 0x0136, 0x014f,
+ 0x015a, 0x0150, 0x015b, 0x016a, 0x0165, 0x016b,
+ 0x0180, 0x0185, 0x017e, 0x0177, 0x0179, 0x018b,
+ 0x01a2, 0x01c4, 0x01f8, 0x0218, 0x0228, 0x0240,
+ 0x0241, 0x0230, 0x0228, 0x020f, 0x01fc, 0x0210,
+ 0x021f, 0x0226, 0x023e, 0x0246, 0x0241, 0x024e,
+ 0x0261, 0x0272, 0x0276, 0x0269, 0x025f, 0x024d,
+ 0x0237, 0x023e, 0x024d, 0x025b, 0x0273, 0x0275,
+ 0x026c, 0x0269, 0x024e, 0x023a, 0x0241, 0x0236,
+ 0x022f, 0x023d, 0x023b, 0x023e, 0x0251, 0x0256,
+ 0x025f, 0x025e, 0x0249, 0x0248, 0x024c, 0x023c,
+ 0x0231, 0x0221, 0x0209, 0x020a, 0x020a, 0x01fd,
+ 0x0204, 0x020c, 0x0208, 0x0219, 0x022a, 0x0225,
+ 0x022d, 0x0245, 0x0249, 0x0246, 0x0241, 0x0229,
+ 0x0216, 0x020e, 0x01f7, 0x01e7, 0x01e9, 0x01e5,
+ 0x01e4, 0x01ea, 0x01e4, 0x01da, 0x01cc, 0x01b3,
+ 0x019a, 0x017b, 0x015e, 0x0147, 0x012b, 0x0125,
+ 0x0128, 0x0113, 0x010c, 0x0118, 0x0114, 0x011f,
+ 0x0127, 0x010d, 0x010a, 0x010c, 0x00e6, 0x00d2,
+ 0x00d2, 0x00b4, 0x00a4, 0x00b0, 0x00af, 0x00a9,
+ 0x00a9, 0x00b0, 0x00c5, 0x00d6, 0x00da, 0x00d8,
+ 0x00d2, 0x00d4, 0x00e0, 0x00dd, 0x00cf, 0x00ca,
+ 0x00c5, 0x00bb, 0x00b3, 0x00af, 0x00a9, 0x009b,
+ 0x0091, 0x00a2, 0x00be, 0x00d5, 0x00fa, 0x0123,
+ 0x0135, 0x0148, 0x0150, 0x0139, 0x0132, 0x0134,
+ 0x011b, 0x0113, 0x0110, 0x00f0, 0x00ef, 0x00fd,
+ 0x00e4, 0x00d6, 0x00e0, 0x00e7, 0x00fd, 0x0106,
+ 0x00f7, 0x00f6, 0x00e8, 0x00d1, 0x00cc, 0x00b6,
+ 0x009f, 0x0099, 0x007c, 0x006a, 0x0069, 0x0057,
+ 0x005f, 0x007b, 0x0084, 0x00a1, 0x00bb, 0x00b9,
+ 0x00cc, 0x00d8, 0x00c7, 0x00ce, 0x00d9, 0x00d8,
+ 0x00ef, 0x0101, 0x010e, 0x0135, 0x0154, 0x015e,
+ 0x016b, 0x016f, 0x016c, 0x0169, 0x0166, 0x0174,
+ 0x0189, 0x0197, 0x01af, 0x01d0, 0x01e3, 0x01f0,
+ 0x01fa, 0x01fa, 0x01f5, 0x01f4, 0x01ee, 0x01de,
+ 0x01d4, 0x01d8, 0x01e3, 0x01ef, 0x01f3, 0x01fb,
+ 0x0210, 0x021a, 0x0214, 0x020e, 0x020f, 0x0216,
+ 0x021c, 0x0218, 0x020e, 0x020c, 0x0216, 0x021c,
+ 0x0211, 0x0210, 0x0222, 0x0229, 0x023a, 0x0257,
+ 0x024f, 0x0238, 0x0242, 0x0244, 0x0233, 0x0231,
+ 0x0235, 0x023a, 0x0251, 0x0271, 0x028e, 0x02a5,
+ 0x02aa, 0x02a9, 0x02a4, 0x0292, 0x028c, 0x029a,
+ 0x0297, 0x0288, 0x0294, 0x02a9, 0x02b6, 0x02d0,
+ 0x02ef, 0x02fe, 0x0305, 0x0305, 0x02fb, 0x02ed,
+ 0x02e5, 0x02e1, 0x02d4, 0x02c8, 0x02d1, 0x02d1,
+ 0x02c6, 0x02d2, 0x02e3, 0x02e7, 0x02f0, 0x02ef,
+ 0x02dd, 0x02d0, 0x02cc, 0x02d2, 0x02d8, 0x02d5,
+ 0x02e3, 0x02f1, 0x02e7, 0x02f0, 0x0306, 0x030e,
+ 0x031a, 0x031f, 0x0320, 0x032c, 0x0318, 0x02fd,
+ 0x0307, 0x0308, 0x0303, 0x0314, 0x0307, 0x02e5,
+ 0x02d6, 0x02bd, 0x02a3, 0x0295, 0x028b, 0x0297,
+ 0x029c, 0x027f, 0x0270, 0x0273, 0x026b, 0x0271,
+ 0x0281, 0x0285, 0x0290, 0x029d, 0x02a1, 0x02ac,
+ 0x02b6, 0x02ba, 0x02be, 0x02b8, 0x02b2, 0x02b6,
+ 0x02a4, 0x0284, 0x0278, 0x0268, 0x0252, 0x0256,
+ 0x0259, 0x024f, 0x0261, 0x0272, 0x0263, 0x0266,
+ 0x026b, 0x0252, 0x023f, 0x022d, 0x020e, 0x020b,
+ 0x0215, 0x020b, 0x020a, 0x0213, 0x020e, 0x0202,
+ 0x01f2, 0x01db, 0x01c3, 0x01b3, 0x01b8, 0x01c5,
+ 0x01cd, 0x01de, 0x01f4, 0x0205, 0x0217, 0x0225,
+ 0x0229, 0x021d, 0x01fe, 0x01e1, 0x01d1, 0x01cb,
+ 0x01ce, 0x01d0, 0x01cd, 0x01d6, 0x01e9, 0x01f5,
+ 0x01f2, 0x01ef, 0x01ff, 0x020f, 0x0209, 0x0202,
+ 0x0203, 0x020a, 0x021a, 0x021e, 0x0216, 0x0219,
+ 0x021b, 0x0216, 0x0211, 0x020c, 0x0216, 0x0227,
+ 0x0222, 0x0222, 0x023b, 0x024a, 0x024b, 0x0254,
+ 0x0266, 0x0275, 0x0281, 0x029d, 0x02c2, 0x02c8,
+ 0x02bb, 0x02af, 0x0293, 0x027e, 0x027e, 0x0274,
+ 0x0265, 0x0266, 0x025e, 0x024f, 0x024e, 0x0248,
+ 0x023a, 0x0243, 0x0253, 0x0253, 0x024d, 0x024a,
+ 0x024e, 0x025e, 0x0265, 0x025f, 0x0256, 0x0246,
+ 0x023a, 0x0234, 0x0226, 0x0220, 0x022a, 0x0230,
+ 0x023b, 0x0245, 0x023e, 0x0241, 0x0248, 0x0241,
+ 0x0236, 0x021d, 0x01fc, 0x01f2, 0x01e2, 0x01cb,
+ 0x01d4, 0x01df, 0x01e4, 0x0203, 0x0218, 0x0210,
+ 0x020a, 0x020e, 0x0218, 0x021f, 0x021c, 0x021d,
+ 0x021e, 0x0215, 0x0206, 0x01e4, 0x01c1, 0x01aa,
+ 0x017e, 0x0152, 0x014a, 0x013a, 0x0111, 0x00f3,
+ 0x00de, 0x00c7, 0x00b3, 0x00a2, 0x00a2, 0x00b0,
+ 0x00b1, 0x00a5, 0x0099, 0x008c, 0x006e, 0x0054,
+ 0x005d, 0x006d, 0x0067, 0x005d, 0x0045, 0x001b,
+ 0xfffc, 0xffe1, 0xffca, 0xffd3, 0xfff2, 0x000f,
+ 0x0025, 0x0034, 0x0042, 0x004f, 0x004f, 0x0043,
+ 0x0032, 0x0032, 0x004f, 0x0065, 0x0075, 0x009c,
+ 0x00be, 0x00ca, 0x00da, 0x00ed, 0x00fa, 0x010b,
+ 0x011e, 0x0131, 0x0143, 0x0145, 0x013c, 0x013c,
+ 0x013d, 0x0137, 0x0142, 0x015a, 0x0152, 0x0139,
+ 0x0134, 0x0124, 0x00fb, 0x00d9, 0x00b6, 0x0089,
+ 0x0065, 0x0042, 0x0026, 0x0027, 0x0034, 0x0032,
+ 0x0028, 0x001e, 0x000e, 0xfffc, 0xfffc, 0x0009,
+ 0x0019, 0x003d, 0x006c, 0x0096, 0x00cb, 0x00f7,
+ 0x0104, 0x0115, 0x0124, 0x0122, 0x0128, 0x0121,
+ 0x0110, 0x0124, 0x014d, 0x0175, 0x01a6, 0x01cb,
+ 0x01eb, 0x021c, 0x0242, 0x025d, 0x0280, 0x02a1,
+ 0x02ba, 0x02c0, 0x02b6, 0x02b8, 0x02b9, 0x02a5,
+ 0x0293, 0x0286, 0x0274, 0x025b, 0x023e, 0x0228,
+ 0x0213, 0x01fb, 0x01f6, 0x0201, 0x0214, 0x0235,
+ 0x025b, 0x0280, 0x0291, 0x0282, 0x027a, 0x0282,
+ 0x0274, 0x0276, 0x029b, 0x02ad, 0x02ab, 0x02ae,
+ 0x02a6, 0x0298, 0x0289, 0x0269, 0x0246, 0x0236,
+ 0x0235, 0x023a, 0x023c, 0x0238, 0x022f, 0x0222,
+ 0x0214, 0x0205, 0x0200, 0x01f9, 0x01df, 0x01cc,
+ 0x01c4, 0x0198, 0x0163, 0x0142, 0x0113, 0x00dd,
+ 0x00ba, 0x009b, 0x0082, 0x0064, 0x0041, 0x003c,
+ 0x0041, 0x0038, 0x003f, 0x003f, 0x0022, 0x0012,
+ 0x0003, 0xffe1, 0xffd1, 0xffca, 0xffb0, 0xff9e,
+ 0xff95, 0xff82, 0xff6b, 0xff51, 0xff39, 0xff29,
+ 0xff12, 0xfef3, 0xfedf, 0xfedc, 0xfee7, 0xfef9,
+ 0xff05, 0xff07, 0xfefa, 0xfee2, 0xfec8, 0xfeb3,
+ 0xfea2, 0xfe96, 0xfe95, 0xfea4, 0xfeae, 0xfeb2,
+ 0xfeca, 0xfede, 0xfede, 0xfeed, 0xfef9, 0xfee6,
+ 0xfed5, 0xfecf, 0xfec1, 0xfeb3, 0xfea1, 0xfe96,
+ 0xfea1, 0xfea0, 0xfe93, 0xfea4, 0xfebf, 0xfecc,
+ 0xfee8, 0xff02, 0xff02, 0xff01, 0xfefe, 0xfeef,
+ 0xfef0, 0xfef8, 0xfef8, 0xff06, 0xff11, 0xff03,
+ 0xff04, 0xff15, 0xff1b, 0xff2b, 0xff43, 0xff51,
+ 0xff6f, 0xff94, 0xffa3, 0xffac, 0xffac, 0xffa6,
+ 0xffba, 0xffc9, 0xffb6, 0xffa8, 0xff9b, 0xff85,
+ 0xff83, 0xff78, 0xff63, 0xff6a, 0xff6c, 0xff56,
+ 0xff50, 0xff5b, 0xff60, 0xff65, 0xff6b, 0xff6d,
+ 0xff6b, 0xff6f, 0xff85, 0xff96, 0xff9a, 0xffac,
+ 0xffbe, 0xffc1, 0xffc1, 0xffb8, 0xffae, 0xffb1,
+ 0xffa2, 0xff8b, 0xff8b, 0xff8c, 0xff8d, 0xffa3,
+ 0xffb2, 0xffb0, 0xffb3, 0xffaf, 0xffa4, 0xffad,
+ 0xffb1, 0xffac, 0xffbf, 0xffd2, 0xffd1, 0xffd8,
+ 0xffdb, 0xffc8, 0xffbf, 0xffbb, 0xffb3, 0xffc8,
+ 0xfff0, 0x0010, 0x0039, 0x0057, 0x0052, 0x0043,
+ 0x0032, 0x001c, 0x0012, 0x0019, 0x0032, 0x0053,
+ 0x0066, 0x0076, 0x0084, 0x0087, 0x008e, 0x0091,
+ 0x007e, 0x0079, 0x0083, 0x006d, 0x004a, 0x004d,
+ 0x005f, 0x0060, 0x0061, 0x006c, 0x0069, 0x0059,
+ 0x0055, 0x0050, 0x0044, 0x0046, 0x0054, 0x0064,
+ 0x0072, 0x007b, 0x008f, 0x00b0, 0x00b5, 0x00a0,
+ 0x0088, 0x0067, 0x0049, 0x0040, 0x003d, 0x0044,
+ 0x0052, 0x0057, 0x0060, 0x0065, 0x0057, 0x0055,
+ 0x0065, 0x0067, 0x006c, 0x0077, 0x006d, 0x0058,
+ 0x0053, 0x0059, 0x0069, 0x0081, 0x0094, 0x009e,
+ 0x00a7, 0x00b3, 0x00b9, 0x00b6, 0x00bd, 0x00d4,
+ 0x00e0, 0x00dd, 0x00e8, 0x00f9, 0x00fa, 0x00fc,
+ 0x0102, 0x00f6, 0x00eb, 0x00f6, 0x0106, 0x011b,
+ 0x012c, 0x0119, 0x00f9, 0x00e9, 0x00cf, 0x00ab,
+ 0x0096, 0x008a, 0x0085, 0x008b, 0x0081, 0x0068,
+ 0x005b, 0x0060, 0x0069, 0x0072, 0x0080, 0x008d,
+ 0x0095, 0x00a7, 0x00b9, 0x00ba, 0x00bc, 0x00c3,
+ 0x00b2, 0x009d, 0x009d, 0x0097, 0x008c, 0x0092,
+ 0x009c, 0x00a1, 0x00ac, 0x00b8, 0x00c7, 0x00e1,
+ 0x0101, 0x0124, 0x0145, 0x0160, 0x017b, 0x0194,
+ 0x019e, 0x0197, 0x0187, 0x017d, 0x017a, 0x016b,
+ 0x0159, 0x015f, 0x0174, 0x0184, 0x018d, 0x018d,
+ 0x0181, 0x0173, 0x016b, 0x0164, 0x0165, 0x016a,
+ 0x015d, 0x0149, 0x013f, 0x0130, 0x011e, 0x0118,
+ 0x0116, 0x011a, 0x0123, 0x011b, 0x010c, 0x0107,
+ 0x0108, 0x0117, 0x0131, 0x0148, 0x015d, 0x0169,
+ 0x0169, 0x0167, 0x0158, 0x013f, 0x013b, 0x0147,
+ 0x0155, 0x015c, 0x0157, 0x015d, 0x0164, 0x0158,
+ 0x015d, 0x016f, 0x0171, 0x0185, 0x01af, 0x01c8,
+ 0x01e5, 0x0200, 0x0204, 0x020d, 0x020f, 0x0208,
+ 0x0214, 0x0216, 0x0204, 0x0207, 0x0210, 0x0211,
+ 0x021a, 0x021f, 0x021b, 0x0214, 0x0200, 0x01ed,
+ 0x01e4, 0x01dd, 0x01df, 0x01da, 0x01bc, 0x01a8,
+ 0x01af, 0x01b5, 0x01b7, 0x01bd, 0x01ad, 0x018e,
+ 0x017d, 0x0161, 0x0137, 0x0127, 0x0122, 0x011a,
+ 0x0130, 0x014b, 0x0150, 0x015c, 0x0158, 0x0143,
+ 0x014b, 0x0154, 0x0146, 0x0148, 0x014f, 0x0155,
+ 0x016e, 0x017a, 0x0174, 0x0172, 0x016a, 0x016e,
+ 0x0181, 0x017c, 0x0174, 0x0179, 0x0172, 0x0168,
+ 0x0160, 0x0159, 0x016c, 0x0185, 0x0195, 0x01bf,
+ 0x01f1, 0x0213, 0x0245, 0x0276, 0x028e, 0x02a8,
+ 0x02b8, 0x02b1, 0x02c0, 0x02e3, 0x02ef, 0x02ee,
+ 0x02f2, 0x02f2, 0x02ef, 0x02ef, 0x02e7, 0x02d7,
+ 0x02ca, 0x02bf, 0x02ad, 0x0291, 0x0277, 0x026a,
+ 0x025e, 0x0251, 0x0254, 0x0255, 0x024d, 0x024d,
+ 0x0248, 0x0225, 0x01ff, 0x01e1, 0x01bd, 0x019f,
+ 0x0194, 0x0189, 0x0185, 0x0192, 0x0192, 0x018e,
+ 0x01a5, 0x01bf, 0x01cd, 0x01f0, 0x0216, 0x022b,
+ 0x024c, 0x026d, 0x027c, 0x0292, 0x02af, 0x02c7,
+ 0x02f0, 0x031f, 0x0343, 0x036b, 0x0391, 0x03a3,
+ 0x03af, 0x03b6, 0x03af, 0x03b1, 0x03c0, 0x03cb,
+ 0x03d2, 0x03d1, 0x03c5, 0x03bb, 0x03ba, 0x03bc,
+ 0x03b8, 0x03b1, 0x03bb, 0x03d2, 0x03e3, 0x03fe,
+ 0x0428, 0x044d, 0x0473, 0x0498, 0x04ae, 0x04c5,
+ 0x04d6, 0x04d5, 0x04dd, 0x04ed, 0x04f9, 0x0512,
+ 0x0527, 0x0531, 0x0548, 0x0568, 0x0580, 0x0593,
+ 0x059d, 0x0598, 0x0585, 0x056e, 0x056a, 0x0567,
+ 0x0556, 0x0548, 0x053f, 0x0535, 0x0530, 0x0522,
+ 0x0513, 0x0504, 0x04dc, 0x04b0, 0x048c, 0x045a,
+ 0x042a, 0x0402, 0x03e6, 0x03e6, 0x03d8, 0x03ac,
+ 0x038a, 0x0364, 0x0332, 0x030c, 0x02dc, 0x02a6,
+ 0x0287, 0x0264, 0x0235, 0x0215, 0x01f8, 0x01d7,
+ 0x01c3, 0x01b4, 0x019f, 0x0191, 0x0197, 0x0197,
+ 0x0191, 0x01a6, 0x01b2, 0x0195, 0x0175, 0x0154,
+ 0x0129, 0x011a, 0x011e, 0x0117, 0x0103, 0x00eb,
+ 0x00e7, 0x00fa, 0x010e, 0x0126, 0x0127, 0x0108,
+ 0x00ff, 0x00f6, 0x00c7, 0x009f, 0x008a, 0x006f,
+ 0x005b, 0x0043, 0x0027, 0x002b, 0x0046, 0x0062,
+ 0x0083, 0x00a8, 0x00d9, 0x011c, 0x0150, 0x0165,
+ 0x016b, 0x016e, 0x017c, 0x01a0, 0x01bc, 0x01b1,
+ 0x01a0, 0x01a2, 0x0196, 0x0176, 0x016a, 0x0172,
+ 0x0173, 0x017e, 0x019e, 0x019f, 0x0178, 0x016f,
+ 0x018b, 0x0190, 0x0189, 0x018a, 0x017c, 0x0167,
+ 0x0145, 0x010d, 0x00ed, 0x00f0, 0x00f6, 0x00ed,
+ 0x00c3, 0x008a, 0x007b, 0x009f, 0x00f4, 0x0173,
+ 0x01d6, 0x01e1, 0x01bc, 0x01ba, 0x01d5, 0x01c0,
+ 0x018e, 0x017e, 0x0183, 0x0196, 0x01a7, 0x0180,
+ 0x014b, 0x013e, 0x0141, 0x015a, 0x0180, 0x0178,
+ 0x0146, 0x0118, 0x0104, 0x00f8, 0x00d0, 0x00a7,
+ 0x00a1, 0x00af, 0x00d5, 0x0117, 0x0139, 0x011a,
+ 0x00cf, 0x0098, 0x009a, 0x00ab, 0x00d3, 0x013e,
+ 0x0183, 0x0157, 0x012b, 0x0141, 0x0159, 0x0150,
+ 0x0122, 0x00c7, 0x008c, 0x00c0, 0x011b, 0x012c,
+ 0x010b, 0x00da, 0x0082, 0x004b, 0x0091, 0x0109,
+ 0x012d, 0x0100, 0x00d1, 0x00aa, 0x00a1, 0x00ee,
+ 0x0130, 0x00ff, 0x00bf, 0x0096, 0x0054, 0x0058,
+ 0x0095, 0x0070, 0x0029, 0x0035, 0x0044, 0x0046,
+ 0x008e, 0x00b5, 0x0024, 0xff69, 0xff5d, 0xffcb,
+ 0x005e, 0x0139, 0x01dd, 0x01f7, 0x0246, 0x02e5,
+ 0x02fe, 0x02b6, 0x02ac, 0x0293, 0x0229, 0x01e4,
+ 0x01ce, 0x0165, 0x00ef, 0x0105, 0x015c, 0x01a3,
+ 0x021c, 0x028b, 0x02a1, 0x02db, 0x034a, 0x034a,
+ 0x02fa, 0x030b, 0x0382, 0x0408, 0x049c, 0x050f,
+ 0x04d9, 0x041b, 0x0399, 0x0388, 0x039c, 0x03c2,
+ 0x03e1, 0x03bb, 0x037d, 0x037e, 0x03a9, 0x03c8,
+ 0x03c3, 0x0350, 0x0251, 0x015d, 0x011b, 0x0172,
+ 0x01e3, 0x0231, 0x0280, 0x02f3, 0x0351, 0x0358,
+ 0x032d, 0x0310, 0x0321, 0x039d, 0x0497, 0x0549,
+ 0x04fd, 0x043c, 0x03cc, 0x03c0, 0x0407, 0x0432,
+ 0x0392, 0x0293, 0x0232, 0x027d, 0x02f6, 0x0334,
+ 0x02cc, 0x01d4, 0x010d, 0x010d, 0x019e, 0x020e,
+ 0x0210, 0x01cc, 0x0189, 0x017c, 0x0168, 0x00df,
+ 0x0017, 0xff78, 0xfef4, 0xfe89, 0xfe50, 0xfe5c,
+ 0xfed4, 0xffb8, 0x00d8, 0x01dc, 0x0229, 0x01cf,
+ 0x01bb, 0x0246, 0x0329, 0x043a, 0x0502, 0x04d6,
+ 0x03c5, 0x0248, 0x00c9, 0xffc9, 0xff7a, 0xff6a,
+ 0xff48, 0xff36, 0xff10, 0xfea5, 0xfe5a, 0xfe99,
+ 0xff57, 0x003c, 0x00bc, 0x00b1, 0x00a8, 0x00cd,
+ 0x00cb, 0x00e3, 0x0150, 0x018e, 0x0183, 0x01bc,
+ 0x0238, 0x0296, 0x02da, 0x02eb, 0x0282, 0x020b,
+ 0x01f3, 0x01df, 0x01df, 0x026a, 0x0306, 0x0339,
+ 0x035f, 0x036f, 0x0340, 0x0351, 0x0392, 0x0363,
+ 0x030f, 0x0302, 0x02ec, 0x02d6, 0x0331, 0x03ba,
+ 0x03bd, 0x0313, 0x0222, 0x0174, 0x0139, 0x0111,
+ 0x00b2, 0x002f, 0xff6f, 0xfe6b, 0xfda6, 0xfd92,
+ 0xfe50, 0xffe6, 0x01ca, 0x030f, 0x0370, 0x032a,
+ 0x0273, 0x01d6, 0x0207, 0x02e1, 0x0371, 0x0334,
+ 0x026d, 0x0165, 0x003c, 0xff37, 0xfe69, 0xfdae,
+ 0xfd15, 0xfcdf, 0xfd23, 0xfd86, 0xfd9a, 0xfd9c,
+ 0xfde6, 0xfe3d, 0xfe4c, 0xfdcf, 0xfca7, 0xfbc4,
+ 0xfc12, 0xfcfc, 0xfdaf, 0xfdf5, 0xfd6c, 0xfc61,
+ 0xfc34, 0xfd19, 0xfdc3, 0xfda6, 0xfd4d, 0xfd2b,
+ 0xfdc9, 0xff75, 0x0107, 0x0137, 0x00a1, 0x0057,
+ 0x0055, 0x009d, 0x015e, 0x01ff, 0x01fc, 0x01bf,
+ 0x01a4, 0x014d, 0x0034, 0xfe92, 0xfd79, 0xfd9b,
+ 0xfe70, 0xff34, 0xffc0, 0xffdb, 0xff69, 0xff02,
+ 0xff10, 0xff29, 0xff0c, 0xfed2, 0xfe55, 0xfdea,
+ 0xfe98, 0x004d, 0x01af, 0x023b, 0x0255, 0x01d5,
+ 0x00e6, 0x00be, 0x0171, 0x019e, 0x012c, 0x012e,
+ 0x0165, 0x0111, 0x00b6, 0x0068, 0xff55, 0xfe33,
+ 0xfe39, 0xfe8b, 0xfe8f, 0xff49, 0x0052, 0x0099,
+ 0x014c, 0x02f6, 0x03b7, 0x037f, 0x041e, 0x04f1,
+ 0x0478, 0x0372, 0x024c, 0x0077, 0xff68, 0x004e,
+ 0x0135, 0x00e7, 0x00bd, 0x00d6, 0x007d, 0x00a6,
+ 0x0189, 0x01ab, 0x0103, 0x00c4, 0x00e6, 0x0137,
+ 0x0225, 0x02fd, 0x02ba, 0x0210, 0x01df, 0x01ea,
+ 0x026b, 0x0371, 0x0383, 0x0228, 0x0112, 0x0108,
+ 0x015c, 0x0214, 0x0326, 0x0361, 0x0286, 0x01ed,
+ 0x0249, 0x0327, 0x0422, 0x04bc, 0x049f, 0x0497,
+ 0x0576, 0x0669, 0x063d, 0x053f, 0x0449, 0x0356,
+ 0x0265, 0x0239, 0x02f0, 0x035c, 0x02dc, 0x0246,
+ 0x0224, 0x0205, 0x01dc, 0x01f2, 0x01d6, 0x0160,
+ 0x0175, 0x0232, 0x02af, 0x02c3, 0x028b, 0x019b,
+ 0x0076, 0x002f, 0x006d, 0x007d, 0x00b4, 0x0104,
+ 0x010e, 0x017d, 0x0296, 0x0327, 0x02fe, 0x037d,
+ 0x04dc, 0x05ea, 0x05fd, 0x052b, 0x03c7, 0x0257,
+ 0x0143, 0x00d3, 0x00fc, 0x00df, 0xffd2, 0xfe80,
+ 0xfda8, 0xfd3f, 0xfd60, 0xfe1a, 0xfef0, 0xffc0,
+ 0x0093, 0x00be, 0x0049, 0x0061, 0x0108, 0x0134,
+ 0x010a, 0x0103, 0x0091, 0xff8d, 0xfead, 0xfe2e,
+ 0xfdf8, 0xfe28, 0xfe7e, 0xfe8d, 0xfe46, 0xfdcd,
+ 0xfd9f, 0xfe52, 0xffa7, 0x0115, 0x0286, 0x0392,
+ 0x03ca, 0x03b4, 0x039e, 0x0301, 0x0203, 0x0155,
+ 0x00d9, 0x003b, 0xff87, 0xfeb3, 0xfdff, 0xfde9,
+ 0xfe3a, 0xfebf, 0xffea, 0x016a, 0x0262, 0x02eb,
+ 0x0316, 0x0261, 0x0171, 0x0136, 0x0108, 0x005a,
+ 0xffda, 0xffbe, 0xffe8, 0x00b1, 0x01a4, 0x01c5,
+ 0x0165, 0x013e, 0x014d, 0x01a7, 0x0222, 0x01ee,
+ 0x0126, 0x00b7, 0x00b1, 0x00ac, 0x008e, 0x0013,
+ 0xff82, 0xffbe, 0x0059, 0x001e, 0xff20, 0xfde1,
+ 0xfc87, 0xfbfd, 0xfce7, 0xfe26, 0xfeed, 0xffcd,
+ 0x00c7, 0x014e, 0x018c, 0x01a0, 0x0158, 0x0119,
+ 0x010c, 0x008c, 0xff82, 0xfe73, 0xfd81, 0xfce3,
+ 0xfd17, 0xfde8, 0xfeb2, 0xff5f, 0x0023, 0x00cd,
+ 0x00ed, 0x008d, 0x0049, 0x0052, 0x0023, 0xffce,
+ 0xffd4, 0xffb5, 0xfeca, 0xfdfe, 0xfe5a, 0xff68,
+ 0x0073, 0x0153, 0x01a7, 0x0142, 0x00a2, 0x0026,
+ 0xffcb, 0xff8e, 0xff60, 0xff48, 0xff90, 0x002f,
+ 0x00c8, 0x011c, 0x0110, 0x00dd, 0x011a, 0x0194,
+ 0x017e, 0x0104, 0x00bd, 0x0076, 0x0065, 0x0133,
+ 0x0210, 0x01e7, 0x01bf, 0x02bc, 0x041c, 0x050f,
+ 0x0592, 0x054a, 0x0447, 0x03bf, 0x044d, 0x0594,
+ 0x077e, 0x09d2, 0x0baa, 0x0c63, 0x0bdf, 0x0a70,
+ 0x097e, 0x0a3d, 0x0bee, 0x0da9, 0x100a, 0x12f4,
+ 0x14fc, 0x15fa, 0x16aa, 0x16b0, 0x1606, 0x15db,
+ 0x1621, 0x159c, 0x1444, 0x12a9, 0x1106, 0x101f,
+ 0x1007, 0x0f16, 0x0ced, 0x0b45, 0x0a7f, 0x09cb,
+ 0x099f, 0x0a01, 0x094c, 0x06f7, 0x042a, 0x01cc,
+ 0x004f, 0xff31, 0xfcf6, 0xfa21, 0xf8a6, 0xf7de,
+ 0xf646, 0xf4c6, 0xf39d, 0xf1b5, 0xf02c, 0xef6b,
+ 0xecc1, 0xe7f3, 0xe15a, 0xd398, 0xbe88, 0xb087,
+ 0xb33c, 0xbcba, 0xc203, 0xc52a, 0xc864, 0xc9bf,
+ 0xcee9, 0xdf4f, 0xf3c7, 0xfe43, 0xfcf1, 0xf811,
+ 0xf3e9, 0xef75, 0xea5c, 0xe3c3, 0xd926, 0xcc95,
+ 0xc5cb, 0xc7da, 0xccf6, 0xd094, 0xd521, 0xdc63,
+ 0xe36e, 0xe87e, 0xed35, 0xf241, 0xf64e, 0xf8a9,
+ 0xf993, 0xf942, 0xf831, 0xf796, 0xf89b, 0xfae8,
+ 0xfcba, 0xfd26, 0xfd39, 0xfe3b, 0x0089, 0x0436,
+ 0x08cc, 0x0d43, 0x1114, 0x13fd, 0x151a, 0x1446,
+ 0x130a, 0x1319, 0x15dd, 0x1c79, 0x2575, 0x2cca,
+ 0x3048, 0x30a0, 0x2e10, 0x28a1, 0x2288, 0x1e53,
+ 0x1c9c, 0x1cd3, 0x1d5b, 0x1b84, 0x1684, 0x10a9,
+ 0x0c4b, 0x0a2d, 0x0a95, 0x0d4a, 0x1163, 0x15f6,
+ 0x19d7, 0x1bd5, 0x1c1c, 0x1bba, 0x1b54, 0x1b9c,
+ 0x1cec, 0x1e33, 0x1eaf, 0x1f24, 0x1fae, 0x1f48,
+ 0x1da1, 0x1aaf, 0x163a, 0x118a, 0x0e76, 0x0cea,
+ 0x0c0b, 0x0bad, 0x0b23, 0x0995, 0x0792, 0x0600,
+ 0x04d5, 0x03dc, 0x031a, 0x02af, 0x02d7, 0x0332,
+ 0x02f6, 0x0252, 0x01ac, 0x007b, 0xfeb8, 0xfd57,
+ 0xfc7e, 0xfbd6, 0xfbb0, 0xfc04, 0xfc57, 0xfcfc,
+ 0xfe19, 0xfecc, 0xfecd, 0xfee6, 0xff8a, 0x00af,
+ 0x023b, 0x03fb, 0x0605, 0x0892, 0x0b46, 0x0d9f,
+ 0x0f25, 0x0f18, 0x0d9f, 0x0c2e, 0x0b80, 0x0b44,
+ 0x0ba0, 0x0c5c, 0x0c2a, 0x0a58, 0x0746, 0x0351,
+ 0xff50, 0xfc5d, 0xfa59, 0xf896, 0xf706, 0xf587,
+ 0xf400, 0xf339, 0xf3c5, 0xf551, 0xf79d, 0xfa44,
+ 0xfc59, 0xfd79, 0xfdf2, 0xfdff, 0xfe43, 0xff83,
+ 0x017c, 0x03a0, 0x05d5, 0x0792, 0x0847, 0x086a,
+ 0x086e, 0x0811, 0x0775, 0x06fd, 0x0688, 0x0612,
+ 0x05c7, 0x0561, 0x04e5, 0x0508, 0x0607, 0x079a,
+ 0x09d6, 0x0cae, 0x0f68, 0x1138, 0x118c, 0x103c,
+ 0x0ddc, 0x0b57, 0x0940, 0x07b9, 0x0671, 0x0524,
+ 0x0437, 0x0406, 0x041d, 0x0400, 0x03c2, 0x0367,
+ 0x02e5, 0x02a1, 0x02df, 0x0389, 0x04b2, 0x0637,
+ 0x0758, 0x075f, 0x062d, 0x0446, 0x029a, 0x01cf,
+ 0x0204, 0x031d, 0x048a, 0x056a, 0x056d, 0x04d7,
+ 0x03b2, 0x01dd, 0xffb5, 0xfdf6, 0xfd13, 0xfd36,
+ 0xfe71, 0x007d, 0x02b4, 0x0423, 0x03d1, 0x01a3,
+ 0xfe97, 0xfbbd, 0xf9cf, 0xf944, 0xfa08, 0xfb67,
+ 0xfcaf, 0xfd7b, 0xfd78, 0xfc7e, 0xfaf4, 0xf9bd,
+ 0xf9a4, 0xfae6, 0xfd09, 0xfeee, 0xff4d, 0xfd95,
+ 0xfa4f, 0xf65d, 0xf2c6, 0xf0e5, 0xf16f, 0xf3e5,
+ 0xf750, 0xfa5a, 0xfb9d, 0xfaf6, 0xf92b, 0xf6d3,
+ 0xf496, 0xf378, 0xf410, 0xf5e1, 0xf7e6, 0xf9a9,
+ 0xfae3, 0xfb31, 0xfad9, 0xfa6d, 0xfa04, 0xf999,
+ 0xf91e, 0xf883, 0xf810, 0xf7f8, 0xf83c, 0xf8d8,
+ 0xf972, 0xf9ba, 0xf995, 0xf8d3, 0xf79e, 0xf6a3,
+ 0xf6a8, 0xf7d5, 0xf959, 0xfae6, 0xfcce, 0xfe6e,
+ 0xff83, 0x008e, 0x00d5, 0x002c, 0xff93, 0xfe90,
+ 0xfccd, 0xfb64, 0xfa91, 0xfa2e, 0xfa35, 0xfa36,
+ 0xfa6d, 0xfada, 0xfb30, 0xfc33, 0xfd7f, 0xfe2d,
+ 0xff13, 0xffc9, 0xffcc, 0x00d9, 0x027b, 0x0334,
+ 0x0402, 0x0487, 0x03c5, 0x02be, 0x0193, 0x008f,
+ 0x0078, 0xffdb, 0xfea3, 0xfe52, 0xfde2, 0xfd2d,
+ 0xfd9b, 0xfe8f, 0xff9f, 0x00c5, 0x0101, 0x00fc,
+ 0x01a0, 0x0271, 0x0390, 0x049c, 0x04d2, 0x04ac,
+ 0x03e7, 0x0276, 0x018b, 0x00c1, 0xff82, 0xfe87,
+ 0xfd67, 0xfc18, 0xfbd9, 0xfc5f, 0xfd19, 0xfec9,
+ 0x00f8, 0x01b2, 0x00a0, 0xff2b, 0xfd55, 0xfa61,
+ 0xf775, 0xf54d, 0xf373, 0xf2db, 0xf3d6, 0xf58d,
+ 0xf85f, 0xfb80, 0xfd4f, 0xfdf8, 0xfd07, 0xfa3b,
+ 0xf709, 0xf3b2, 0xf108, 0xf09b, 0xf142, 0xf2a0,
+ 0xf56f, 0xf866, 0xfb85, 0xfe38, 0xfe2c, 0xfd0d,
+ 0xfbd1, 0xf829, 0xf436, 0xf238, 0xf0fb, 0xf1b1,
+ 0xf401, 0xf5ef, 0xf937, 0xfcb0, 0xfdc0, 0xfee9,
+ 0x0014, 0xff00, 0xfd66, 0xfb09, 0xf727, 0xf465,
+ 0xf2e7, 0xf22f, 0xf3af, 0xf64d, 0xf8e0, 0xfb6c,
+ 0xfd49, 0xff70, 0x0143, 0x00b2, 0xffef, 0xff9f,
+ 0xfdb5, 0xfcb6, 0xfd87, 0xfd6b, 0xfea6, 0x02d7,
+ 0x05d9, 0x0669, 0x06ee, 0x07b9, 0x0804, 0x07e2,
+ 0x074e, 0x05bf, 0x0395, 0x01d8, 0x0004, 0xfe5e,
+ 0xfeee, 0x011e, 0x0313, 0x04d2, 0x0640, 0x079b,
+ 0x0923, 0x090e, 0x077f, 0x0699, 0x056c, 0x026d,
+ 0xff88, 0xff63, 0x0173, 0x0357, 0x0556, 0x07ae,
+ 0x082c, 0x0807, 0x0858, 0x0610, 0x03b3, 0x04dc,
+ 0x0476, 0x0110, 0xff67, 0xff58, 0x007d, 0x033b,
+ 0x04a5, 0x0544, 0x0670, 0x05e2, 0x0479, 0x02ed,
+ 0xffbf, 0xfdbe, 0xfe2f, 0xfe95, 0xff50, 0x0059,
+ 0x0193, 0x0473, 0x061f, 0x0509, 0x03ef, 0x01ad,
+ 0xfe95, 0xfe1c, 0xfe71, 0xff41, 0x0264, 0x0371,
+ 0x0297, 0x0602, 0x09e8, 0x084e, 0x05d2, 0x05d2,
+ 0x0392, 0xfe2d, 0xfbd7, 0xfd3b, 0xfc67, 0xfb4d,
+ 0xff9a, 0x03e5, 0x030e, 0x02fa, 0x05c1, 0x067f,
+ 0x05e2, 0x0651, 0x04dc, 0x0130, 0xff87, 0xff86,
+ 0xfed6, 0x0026, 0x03b2, 0x0587, 0x072c, 0x0a23,
+ 0x0a69, 0x08e4, 0x0895, 0x067c, 0x028e, 0x003b,
+ 0xfe81, 0xfd40, 0xfed8, 0x02ce, 0x0778, 0x0aa2,
+ 0x0ace, 0x0a2f, 0x09bd, 0x081b, 0x06b7, 0x063e,
+ 0x046e, 0x01ff, 0x0201, 0x03a7, 0x0400, 0x049f,
+ 0x085e, 0x0bb6, 0x0af8, 0x0895, 0x0669, 0x04db,
+ 0x04af, 0x039b, 0x01bb, 0x020a, 0x0227, 0x0144,
+ 0x02c9, 0x0496, 0x0575, 0x07cc, 0x088c, 0x0759,
+ 0x0830, 0x07b0, 0x042d, 0x021e, 0xffc7, 0xfb51,
+ 0xf81d, 0xf54f, 0xf257, 0xf1f5, 0xf1a0, 0xefbf,
+ 0xf089, 0xf349, 0xf397, 0xf2cb, 0xf3ed, 0xf5af,
+ 0xf59b, 0xf42a, 0xf311, 0xf1d2, 0xf032, 0xf127,
+ 0xf5a3, 0xfa08, 0xfccc, 0xff6c, 0x0155, 0x026e,
+ 0x0438, 0x046b, 0x0153, 0xffab, 0x01c2, 0x0336,
+ 0x0188, 0xfeef, 0xfe85, 0x00dd, 0x029b, 0x0186,
+ 0xff60, 0xfe3a, 0xffe9, 0x031f, 0x029c, 0xff5a,
+ 0xfe10, 0xfc3d, 0xf91f, 0xf900, 0xf99f, 0xf901,
+ 0xfa59, 0xfb3d, 0xfaf9, 0xfe91, 0x0118, 0xfd33,
+ 0xfa51, 0xf9fc, 0xf6ea, 0xf576, 0xf77b, 0xf7a8,
+ 0xf83b, 0xfa50, 0xf9be, 0xfac5, 0xfed8, 0xff34,
+ 0x0064, 0x0745, 0x0a90, 0x095e, 0x0a90, 0x0a39,
+ 0x086d, 0x0aa5, 0x0b74, 0x0a41, 0x0d75, 0x0e9f,
+ 0x0b0c, 0x0b6a, 0x0c67, 0x09d0, 0x0905, 0x049b,
+ 0xfa69, 0xf72f, 0xf89f, 0xf5ef, 0xf6c9, 0xfa4f,
+ 0xf825, 0xf7b0, 0xfa75, 0xf93d, 0xfad3, 0x0027,
+ 0xff3a, 0xfd2f, 0xfed8, 0xfdf3, 0xfecb, 0x034a,
+ 0x01bd, 0xfea3, 0x01f6, 0x0412, 0x03ee, 0x0759,
+ 0x095c, 0x091b, 0x0bbe, 0x0d19, 0x0c57, 0x0e6e,
+ 0x0e56, 0x0a8d, 0x0b39, 0x0d1b, 0x0ad1, 0x0afe,
+ 0x0ce8, 0x0ad5, 0x0a5a, 0x0c60, 0x0b43, 0x0a99,
+ 0x0af6, 0x084d, 0x07d6, 0x0a63, 0x0a37, 0x0af1,
+ 0x0ddc, 0x0d68, 0x0c22, 0x0cec, 0x0cc8, 0x0c62,
+ 0x0c0a, 0x0a09, 0x0979, 0x0bc9, 0x0c98, 0x0a91,
+ 0x0a12, 0x0d58, 0x10b9, 0x10d9, 0x0e46, 0x0bb6,
+ 0x0c5b, 0x0d5c, 0x09a5, 0x06da, 0x09d4, 0x0c53,
+ 0x0c77, 0x0c8e, 0x0ad3, 0x082b, 0x0591, 0x0396,
+ 0x05c3, 0x07d3, 0x05a8, 0x065c, 0x0a31, 0x0aab,
+ 0x085f, 0x0498, 0x0213, 0x0313, 0x0220, 0x0055,
+ 0x0319, 0x053c, 0x0451, 0x0383, 0x027e, 0x0337,
+ 0x0420, 0x00cf, 0xfefa, 0x015c, 0x023f, 0x0144,
+ 0xff6f, 0xfded, 0xffe6, 0x0189, 0xff9a, 0xfdd0,
+ 0xfe53, 0x011e, 0x0219, 0xfe16, 0xfc21, 0xfdd7,
+ 0xfdc6, 0xff33, 0x016f, 0xff8c, 0xfe68, 0xfe84,
+ 0xfcb4, 0xfc9d, 0xfbb4, 0xf89a, 0xf9a5, 0xfa71,
+ 0xf73f, 0xf748, 0xf90e, 0xf8c6, 0xfa88, 0xfd3a,
+ 0xfecc, 0x01ea, 0x0499, 0x040f, 0x0210, 0xff8a,
+ 0xfbf2, 0xf8f4, 0xf965, 0xfb59, 0xfada, 0xfa72,
+ 0xfca1, 0xff66, 0x02f1, 0x05c9, 0x0513, 0x0365,
+ 0x023a, 0x00cf, 0xff53, 0xfb6f, 0xf786, 0xf8c2,
+ 0xfb01, 0xfb9f, 0xfe60, 0x01f2, 0x03db, 0x0391,
+ 0x00b4, 0xff19, 0xffdf, 0xffd2, 0xfeda, 0xfbbd,
+ 0xf83a, 0xfa77, 0xfde0, 0xfd12, 0xfe4a, 0x020c,
+ 0x0337, 0x0377, 0x0330, 0x00df, 0xff66, 0xff80,
+ 0xfeba, 0xfd41, 0xfcbc, 0xfd41, 0xfe90, 0x00a9,
+ 0x0137, 0xff14, 0xfd5a, 0xfc75, 0xfb54, 0xface,
+ 0xf807, 0xf40a, 0xf57d, 0xf9cc, 0xfcc4, 0xff5f,
+ 0xfe56, 0xfb36, 0xfb90, 0xfc2d, 0xfbb7, 0xface,
+ 0xf716, 0xf50a, 0xf536, 0xf489, 0xf853, 0xfa91,
+ 0xf562, 0xf6d8, 0xfce8, 0xfba7, 0xfbcc, 0xfd06,
+ 0xf8d7, 0xf6f1, 0xf4a8, 0xf1a4, 0xf65e, 0xf722,
+ 0xf289, 0xf6c0, 0xf948, 0xf753, 0xfd1d, 0xfe55,
+ 0xf7bf, 0xf806, 0xf95c, 0xf8bc, 0xfc64, 0xfd1e,
+ 0xfb7a, 0xfd79, 0xfe50, 0xfe4c, 0xfdea, 0xfc7f,
+ 0xffb8, 0x011c, 0xfcdd, 0xff39, 0x026e, 0xfd74,
+ 0xfce9, 0xffe7, 0xfc8c, 0xfb85, 0xff3a, 0x000e,
+ 0xff7b, 0xfddd, 0xfc01, 0xfe7c, 0xff4b, 0xfb9a,
+ 0xfdff, 0x0465, 0x03ad, 0x01cc, 0x04f7, 0x04b8,
+ 0x011f, 0x018d, 0x01c9, 0x0052, 0x024c, 0x02bc,
+ 0xfee2, 0xfd50, 0xfd5f, 0xfd60, 0x008b, 0x03e7,
+ 0x0509, 0x059e, 0x034f, 0xff0d, 0xfccb, 0xfb6d,
+ 0xfb84, 0xfd5a, 0xfc84, 0xfad5, 0xfcff, 0xff64,
+ 0xfed9, 0xfebd, 0x0025, 0xff74, 0xfbd8, 0xf9b5,
+ 0xfb2b, 0xfcc8, 0xfc4d, 0xfbfe, 0xfdff, 0x0109,
+ 0x0310, 0x03b5, 0x02a6, 0x010c, 0x011a, 0x001f,
+ 0xfcad, 0xfbbf, 0xfd6d, 0xfeb4, 0x00a3, 0x0073,
+ 0xfce5, 0xfb44, 0xfa36, 0xf7cf, 0xf8cc, 0xfaff,
+ 0xfa6e, 0xf9de, 0xf9a6, 0xf9c7, 0xfb48, 0xfc75,
+ 0xfe47, 0xff9b, 0xfe51, 0xffb3, 0x019d, 0xfefb,
+ 0x00b4, 0x056f, 0x01a9, 0xfd73, 0xff46, 0xfe77,
+ 0xfc77, 0xfdf9, 0x0005, 0x01df, 0x0135, 0xfd86,
+ 0xfb68, 0xf949, 0xf7c3, 0xfa83, 0xfbb4, 0xfb48,
+ 0xfdff, 0xfd66, 0xfb55, 0xfe7b, 0xfda6, 0xf9d1,
+ 0xfd58, 0xfe90, 0xfae4, 0xfe5e, 0x0051, 0xf9fb,
+ 0xf9c6, 0xfdd0, 0xfad4, 0xf879, 0xfaaf, 0xfae0,
+ 0xfa41, 0xfa26, 0xf955, 0xfad5, 0xfe0b, 0xffc3,
+ 0xffbf, 0xfebc, 0x0016, 0x034e, 0x02ce, 0x024f,
+ 0x064b, 0x0877, 0x0762, 0x06e4, 0x05e3, 0x04f6,
+ 0x053d, 0x0564, 0x05b7, 0x04a8, 0x033c, 0x04a9,
+ 0x0334, 0xfe68, 0xfe74, 0xfeb9, 0xfb89, 0xfc68,
+ 0xfe95, 0xfecf, 0x01eb, 0x037c, 0x027e, 0x0580,
+ 0x0680, 0x023b, 0x0097, 0x01bd, 0x03aa, 0x057a,
+ 0x03b3, 0x033c, 0x050d, 0x01b0, 0xff6b, 0x00e0,
+ 0xfb32, 0xf4ba, 0xf4dc, 0xf0a5, 0xeae7, 0xed5c,
+ 0xf028, 0xefe2, 0xf079, 0xf011, 0xf1c0, 0xf59c,
+ 0xf39f, 0xf043, 0xf2d3, 0xf57b, 0xf5e2, 0xf7c6,
+ 0xfa01, 0xfba2, 0xfde0, 0xfff9, 0x0007, 0xfdcc,
+ 0xfd54, 0x0002, 0x00af, 0x004a, 0x0352, 0x04f9,
+ 0x02b3, 0x02b1, 0x0512, 0x051c, 0x0428, 0x05c8,
+ 0x09a6, 0x0cbb, 0x0e6e, 0x10ef, 0x11d6, 0x0e30,
+ 0x0b83, 0x0cf1, 0x0c4d, 0x07b1, 0x03fd, 0x028f,
+ 0x0086, 0xfc0d, 0xf87b, 0xf95b, 0xf9bf, 0xf731,
+ 0xf848, 0xfa97, 0xf785, 0xf646, 0xf9c0, 0xfa9e,
+ 0xfcde, 0x0366, 0x04c6, 0x026c, 0x040e, 0x06bf,
+ 0x0a04, 0x0f29, 0x10ae, 0x0f61, 0x0fe3, 0x1000,
+ 0x0ed4, 0x0d47, 0x0b4c, 0x0b85, 0x0cb7, 0x0c36,
+ 0x0d0d, 0x0de8, 0x0b81, 0x0985, 0x0813, 0x04c3,
+ 0x023b, 0x004d, 0xfee4, 0x0059, 0x008a, 0xfd9b,
+ 0xfc30, 0xfbe5, 0xfbf8, 0xfd8b, 0xfd22, 0xfa6b,
+ 0xf79f, 0xf38f, 0xf14d, 0xf361, 0xf63c, 0xf975,
+ 0xfbe1, 0xfb01, 0xfc53, 0x0163, 0x03cf, 0x0465,
+ 0x06a4, 0x0913, 0x0a3d, 0x0977, 0x092e, 0x0b6a,
+ 0x0c23, 0x0c73, 0x102c, 0x1282, 0x13a9, 0x1782,
+ 0x1809, 0x1641, 0x18d5, 0x173f, 0x0e2c, 0x0adb,
+ 0x0e58, 0x0e79, 0x0ca9, 0x0deb, 0x0e96, 0x0c19,
+ 0x0b24, 0x0cda, 0x0c7e, 0x0ba4, 0x0d71, 0x0cfa,
+ 0x0a8c, 0x0c62, 0x0f0f, 0x0ec5, 0x0fed, 0x1294,
+ 0x131a, 0x1224, 0x1119, 0x1034, 0x0e82, 0x0bb6,
+ 0x0ac8, 0x0bbb, 0x0b66, 0x0b5b, 0x0d8b, 0x0f86,
+ 0x0ee4, 0x0bdb, 0x0999, 0x0997, 0x0955, 0x0a17,
+ 0x0ca8, 0x0bea, 0x09be, 0x0b86, 0x0cd1, 0x0ba6,
+ 0x0cca, 0x0ede, 0x0f2a, 0x0e54, 0x0b72, 0x0853,
+ 0x081a, 0x0876, 0x0740, 0x0604, 0x05d3, 0x0638,
+ 0x063d, 0x064a, 0x07b3, 0x0a3e, 0x0d09, 0x0ddd,
+ 0x0b60, 0x0975, 0x0991, 0x0815, 0x0660, 0x06c1,
+ 0x0695, 0x0677, 0x07da, 0x07ab, 0x0604, 0x055e,
+ 0x04a0, 0x039a, 0x0352, 0x02c7, 0x02c7, 0x0540,
+ 0x0770, 0x0621, 0x0457, 0x0485, 0x036e, 0x019e,
+ 0x0321, 0x04d4, 0x040b, 0x0497, 0x0568, 0x0406,
+ 0x0406, 0x048c, 0x02b8, 0x02e1, 0x0554, 0x0434,
+ 0x009c, 0xff9b, 0x00b4, 0x002c, 0xfdf4, 0xfdc8,
+ 0xff2b, 0xff1e, 0xffce, 0x016f, 0x012b, 0x013e,
+ 0x0141, 0xfe43, 0xfc56, 0xfc1c, 0xfa32, 0xfa7d,
+ 0xfc66, 0xfa5a, 0xf8f4, 0xfb63, 0xfcc0, 0xfda4,
+ 0x0000, 0x0162, 0x019c, 0x0092, 0xfdc4, 0xfbd1,
+ 0xfb92, 0xfc32, 0xfe16, 0xff48, 0xfe03, 0xfd16,
+ 0xfec0, 0x00dd, 0x016e, 0x0228, 0x03bc, 0x03ad,
+ 0x0345, 0x052d, 0x0591, 0x032f, 0x0412, 0x0716,
+ 0x04e5, 0x00b9, 0x0286, 0x0609, 0x03d3, 0x014b,
+ 0x0417, 0x058e, 0x02db, 0x01ea, 0x0248, 0x01d1,
+ 0x02a0, 0x0197, 0xfe4c, 0xfecc, 0x0007, 0xfe83,
+ 0xff66, 0x008b, 0xfef8, 0xff79, 0xff68, 0xfd30,
+ 0xffab, 0x028b, 0x0008, 0xfea0, 0xff0f, 0xfde4,
+ 0xfd62, 0xfc6f, 0xfabd, 0xfb26, 0xfb9a, 0xfc1a,
+ 0xfe3e, 0xff2f, 0xffda, 0x015f, 0x0114, 0x00e2,
+ 0x0113, 0xff31, 0xfefb, 0x007d, 0xff85, 0xff0d,
+ 0xffe9, 0xfed3, 0xfe91, 0xff91, 0xfe2c, 0xfd53,
+ 0xff08, 0xff58, 0xff47, 0x013d, 0x0137, 0xff21,
+ 0xfff3, 0x01a9, 0x00b0, 0xffd6, 0x0073, 0x0081,
+ 0xff46, 0xfdbb, 0xfdcd, 0xfe5b, 0xfdbc, 0xff1c,
+ 0x0103, 0xff1d, 0xfe49, 0x00b8, 0x0131, 0x0097,
+ 0x0085, 0xff52, 0xfeb6, 0xfe90, 0xfdbb, 0xfd99,
+ 0xfcfd, 0xfce9, 0xff4f, 0x00e2, 0x024a, 0x0514,
+ 0x04b8, 0x0271, 0x0249, 0x01d2, 0x007b, 0x0004,
+ 0x0067, 0x016c, 0x00d6, 0xff90, 0x01d5, 0x04c1,
+ 0x0449, 0x032c, 0x03a1, 0x042d, 0x02de, 0x007b,
+ 0xff49, 0xfe6e, 0xfe2c, 0xff85, 0xff73, 0xff4b,
+ 0x01a3, 0x0225, 0x0186, 0x02cd, 0x01ef, 0xffe4,
+ 0xfef4, 0xfbbf, 0xf949, 0xf9b7, 0xf85f, 0xf761,
+ 0xf90c, 0xfa16, 0xfb5e, 0xfcee, 0xfd3e, 0xfea7,
+ 0xffd0, 0xfec4, 0xfe1f, 0xfdbd, 0xfd65, 0xfe91,
+ 0xff97, 0x00ca, 0x02da, 0x029c, 0x0193, 0x0335,
+ 0x0460, 0x02cb, 0x014c, 0x00e5, 0xffe9, 0xff07,
+ 0xffa3, 0xff8f, 0xfed8, 0x0053, 0x00d5, 0xff28,
+ 0x000e, 0x0081, 0xfe14, 0xfee2, 0x0001, 0xfcb6,
+ 0xfb48, 0xfc1b, 0xfbb0, 0xfd39, 0xfecf, 0xfe4b,
+ 0xff8b, 0x003a, 0xfebe, 0xfe98, 0xfd09, 0xf9fe,
+ 0xf9ed, 0xf9c2, 0xf934, 0xfba0, 0xfc09, 0xfa58,
+ 0xfd21, 0x007b, 0x0034, 0x015f, 0x0418, 0x03f7,
+ 0x0261, 0x01cd, 0x01dc, 0x0229, 0x01b0, 0x0042,
+ 0x0076, 0x0230, 0x01f3, 0x009e, 0x00b6, 0x0026,
+ 0xfef9, 0xffd5, 0x0006, 0xfe4d, 0xfea4, 0xffc4,
+ 0xfe5a, 0xfd30, 0xfd50, 0xfd1b, 0xfec3, 0x01c0,
+ 0x0217, 0x01a5, 0x030b, 0x0401, 0x0455, 0x0507,
+ 0x04ee, 0x04ef, 0x0523, 0x040a, 0x038b, 0x031b,
+ 0x003f, 0xfe86, 0xfeb4, 0xfd0a, 0xfbd0, 0xfc36,
+ 0xfb38, 0xfaa9, 0xfaf0, 0xf932, 0xf740, 0xf5cc,
+ 0xf3af, 0xf331, 0xf35f, 0xf1f0, 0xf146, 0xf142,
+ 0xf062, 0xf132, 0xf378, 0xf3fb, 0xf2d8, 0xf14e,
+ 0xf045, 0xf141, 0xf345, 0xf3d9, 0xf3e4, 0xf513,
+ 0xf5c8, 0xf5dc, 0xf7fb, 0xfb2e, 0xfcd9, 0xfdcf,
+ 0xff0e, 0x008c, 0x01e5, 0x01f0, 0x0259, 0x04e9,
+ 0x072f, 0x0865, 0x0948, 0x08e8, 0x08f5, 0x0a06,
+ 0x08d8, 0x060b, 0x03e4, 0x0168, 0xfee7, 0xfdba,
+ 0xfd60, 0xfcc8, 0xfb86, 0xfaae, 0xfae3, 0xfb46,
+ 0xfc4e, 0xfd8e, 0xfcb7, 0xfabb, 0xf9fc, 0xfa58,
+ 0xfb5a, 0xfc5d, 0xfd86, 0x000e, 0x0217, 0x02f3,
+ 0x0576, 0x077d, 0x0710, 0x07d5, 0x0861, 0x06b3,
+ 0x0742, 0x08e8, 0x0831, 0x0842, 0x0951, 0x0a11,
+ 0x0bbb, 0x0ba7, 0x0a45, 0x0b3e, 0x0aeb, 0x0893,
+ 0x0897, 0x0764, 0x0321, 0x011b, 0x00bc, 0xffb7,
+ 0xff32, 0xfe44, 0xfdc0, 0xfd8b, 0xfa9d, 0xf89b,
+ 0xf901, 0xf6fc, 0xf4e1, 0xf442, 0xf26f, 0xf2e6,
+ 0xf552, 0xf534, 0xf576, 0xf7d1, 0xf99a, 0xfabf,
+ 0xfb8f, 0xfc6a, 0xfe0f, 0xffdf, 0x01f9, 0x0400,
+ 0x0536, 0x06fc, 0x0864, 0x0800, 0x0888, 0x09da,
+ 0x0986, 0x096b, 0x0a7f, 0x0a84, 0x09a3, 0x0a1a,
+ 0x0afe, 0x0a93, 0x0bc5, 0x0e4e, 0x0daa, 0x0c87,
+ 0x0cf5, 0x0b09, 0x08bf, 0x085f, 0x06ba, 0x0560,
+ 0x0631, 0x05cc, 0x0539, 0x070c, 0x086e, 0x0832,
+ 0x0777, 0x066f, 0x06aa, 0x0797, 0x06e6, 0x05a6,
+ 0x0588, 0x0566, 0x03e3, 0x03a6, 0x05e6, 0x06bb,
+ 0x0633, 0x0663, 0x0639, 0x0624, 0x061c, 0x05ca,
+ 0x0595, 0x04a9, 0x04da, 0x0619, 0x061b, 0x0727,
+ 0x0802, 0x062b, 0x0536, 0x0460, 0x027e, 0x034f,
+ 0x031c, 0x007a, 0x0280, 0x04b1, 0x0257, 0x0348,
+ 0x05a4, 0x0498, 0x04b6, 0x04ca, 0x03a1, 0x0398,
+ 0x0242, 0x00ba, 0x0090, 0xffc0, 0x0009, 0x01ee,
+ 0x037f, 0x0517, 0x06b0, 0x073b, 0x0643, 0x048d,
+ 0x0257, 0xffff, 0xffdb, 0x00e2, 0xffe2, 0xfe9c,
+ 0xff00, 0xff72, 0xffa2, 0xff54, 0xfe3e, 0xfeea,
+ 0xffd1, 0xfdc0, 0xfc64, 0xfc24, 0xfa3c, 0xf9e9,
+ 0xfb18, 0xfb3f, 0xfbe9, 0xfcd6, 0xfdc3, 0xfebd,
+ 0xfea2, 0xfedb, 0xfeab, 0xfd0b, 0xfc9c, 0xfc61,
+ 0xfb9e, 0xfc53, 0xfc38, 0xfbb9, 0xfda8, 0xfe73,
+ 0xfd43, 0xfcf0, 0xfbf8, 0xfb2f, 0xfc22, 0xfb9c,
+ 0xf9aa, 0xf97b, 0xfa97, 0xfa9b, 0xfa46, 0xfc49,
+ 0xfe3f, 0xfcff, 0xfc36, 0xfd23, 0xfc3e, 0xfb6c,
+ 0xfcc3, 0xfcef, 0xfc9a, 0xfe11, 0xfe2e, 0xfd01,
+ 0xfdc4, 0xfeda, 0xfef0, 0xff07, 0xff01, 0xfea3,
+ 0xfdb3, 0xfd6f, 0xfefa, 0xff9e, 0xfeb5, 0xff0f,
+ 0xffe5, 0xffa9, 0xff7c, 0xffb0, 0x000f, 0xffaf,
+ 0xfe0f, 0xfe19, 0xffae, 0xffd3, 0xffb2, 0xffaf,
+ 0xfed5, 0xfeed, 0xffa5, 0xfede, 0xfdbb, 0xfe36,
+ 0xfec7, 0xfd8c, 0xfc07, 0xfb8c, 0xfbe1, 0xfc5a,
+ 0xfcbf, 0xfd9b, 0xfdc0, 0xfd9c, 0xfe8b, 0xfe7f,
+ 0xfdd6, 0xfdf6, 0xfe81, 0xffc5, 0xffea, 0xff7b,
+ 0x0004, 0xff5e, 0xfecb, 0xfed2, 0xfd82, 0xfc47,
+ 0xfafa, 0xf9dc, 0xfa4b, 0xfa1c, 0xf930, 0xf926,
+ 0xf8d9, 0xf8ae, 0xfa01, 0xfa8d, 0xfa06, 0xfa27,
+ 0xf82b, 0xf5f4, 0xf6f0, 0xf64b, 0xf5b0, 0xf7e2,
+ 0xf76c, 0xf74c, 0xf9f6, 0xfa14, 0xf99c, 0xfa2a,
+ 0xf95c, 0xf92a, 0xf90c, 0xf7bc, 0xf84d, 0xf95d,
+ 0xf981, 0xfbb8, 0xfcb9, 0xfbb6, 0xfdc0, 0xff95,
+ 0x005b, 0x025e, 0x0197, 0x0053, 0x00d2, 0xfffb,
+ 0xff63, 0xff0a, 0xff28, 0x001c, 0xff34, 0xff67,
+ 0x0005, 0xfd87, 0xfccd, 0xfd50, 0xfb48, 0xfa2b,
+ 0xfa2a, 0xf9d3, 0xfb45, 0xfcb4, 0xfcba, 0xfea4,
+ 0x00b3, 0x00b2, 0x0230, 0x0380, 0x022b, 0x01bf,
+ 0x0240, 0x0193, 0xfffa, 0xff29, 0x0020, 0x000f,
+ 0xffb7, 0x0166, 0x0140, 0xff4f, 0xfeb6, 0xfe66,
+ 0xfe5a, 0xfe41, 0xfdc9, 0xfe9a, 0xfe7c, 0xfd1b,
+ 0xfe1e, 0xff5f, 0xff44, 0x0034, 0x0059, 0xff42,
+ 0xff32, 0xff58, 0xff4b, 0xfec8, 0xfe25, 0xfe97,
+ 0xfee6, 0xff60, 0x000f, 0xffa2, 0xffa3, 0xff72,
+ 0xfe72, 0xfe83, 0xfe29, 0xfd5b, 0xfdd5, 0xfe55,
+ 0xfe7a, 0xfe68, 0xfe1c, 0xfe93, 0xff9e, 0x00e6,
+ 0x018d, 0x004a, 0xff27, 0xff51, 0xfe31, 0xfc2f,
+ 0xfbbb, 0xfc01, 0xfbcb, 0xfba7, 0xfcb4, 0xfdc8,
+ 0xfd2c, 0xfd4a, 0xfe89, 0xfe35, 0xfd72, 0xfd76,
+ 0xfe14, 0xff44, 0xffb2, 0x0026, 0x01b3, 0x028a,
+ 0x0244, 0x0285, 0x031d, 0x02cd, 0x0293, 0x026d,
+ 0x0180, 0x011d, 0x009e, 0xff67, 0xfedc, 0xff07,
+ 0xff3b, 0xfe3a, 0xfdc7, 0xfecc, 0xfdec, 0xfd4e,
+ 0xfe2d, 0xfe28, 0xff2f, 0xffdb, 0xff99, 0x00c6,
+ 0x0111, 0x015d, 0x02c5, 0x02e5, 0x033a, 0x044f,
+ 0x0450, 0x03a2, 0x03eb, 0x04c7, 0x047c, 0x0431,
+ 0x0481, 0x04e9, 0x05c6, 0x05f8, 0x0598, 0x04c7,
+ 0x0386, 0x0306, 0x01f1, 0x00ba, 0x00f8, 0x015a,
+ 0x018b, 0x01b9, 0x01ec, 0x01cf, 0x0177, 0x00f2,
+ 0xfe99, 0xfc7b, 0xfa53, 0xf5f2, 0xf42b, 0xf38f,
+ 0xf170, 0xf20f, 0xf23a, 0xf0c8, 0xf1a6, 0xf296,
+ 0xf32b, 0xf3e0, 0xf418, 0xf586, 0xf6b9, 0xf6c6,
+ 0xf802, 0xfa30, 0xfbd7, 0xfd63, 0xff28, 0x0090,
+ 0x0215, 0x03f1, 0x0563, 0x05b3, 0x04df, 0x04da,
+ 0x053b, 0x0487, 0x043f, 0x037f, 0x028b, 0x037a,
+ 0x0341, 0x0155, 0x007e, 0xffd4, 0xff26, 0xfee7,
+ 0xfdce, 0xfc96, 0xfc87, 0xfcac, 0xfcf5, 0xfde4,
+ 0xfea1, 0xff90, 0x0093, 0x00f4, 0x0131, 0x0059,
+ 0xff78, 0x0013, 0x0051, 0x00b8, 0x01ea, 0x0358,
+ 0x05a8, 0x07bd, 0x09b2, 0x0b45, 0x0b24, 0x0b99,
+ 0x0ccb, 0x0cfb, 0x0c3b, 0x0b73, 0x0c84, 0x0dac,
+ 0x0ddb, 0x0ea0, 0x0e14, 0x0e16, 0x0f60, 0x0d84,
+ 0x0ba8, 0x0a9c, 0x073b, 0x05ff, 0x0524, 0x0146,
+ 0x005e, 0x00e5, 0xff05, 0xfe04, 0xfd0e, 0xfbc1,
+ 0xfc08, 0xfb95, 0xfa17, 0xf955, 0xf92a, 0xf971,
+ 0xfa2f, 0xfade, 0xfaed, 0xfb4f, 0xfc12, 0xfc62,
+ 0xfd04, 0xfd2f, 0xfd84, 0xff48, 0x0040, 0x00cb,
+ 0x01a9, 0x02b0, 0x0452, 0x04a1, 0x056b, 0x0766,
+ 0x075e, 0x0713, 0x06e6, 0x06f9, 0x0857, 0x083d,
+ 0x0845, 0x0986, 0x0ab7, 0x0ce7, 0x0deb, 0x0e91,
+ 0x0f81, 0x0dbf, 0x0c08, 0x0acd, 0x0910, 0x08c8,
+ 0x07d3, 0x06df, 0x07c8, 0x0871, 0x094a, 0x0a99,
+ 0x0b65, 0x0c78, 0x0dbd, 0x0dd4, 0x0ca2, 0x0b9d,
+ 0x0afb, 0x0a8f, 0x0a2a, 0x095c, 0x09ab, 0x0a92,
+ 0x0a3c, 0x0a44, 0x0b7a, 0x0be9, 0x0b03, 0x0b00,
+ 0x0b81, 0x0a7f, 0x0a0f, 0x0a61, 0x0a14, 0x0a06,
+ 0x097f, 0x0940, 0x097d, 0x08b2, 0x0857, 0x082e,
+ 0x07d2, 0x084d, 0x0893, 0x08be, 0x092c, 0x09f3,
+ 0x0b76, 0x0c39, 0x0b7f, 0x0a7e, 0x09d0, 0x07de,
+ 0x0520, 0x03a0, 0x01d9, 0x00e2, 0x0126, 0x004c,
+ 0x0189, 0x03e4, 0x04a8, 0x0677, 0x073f, 0x0766,
+ 0x089e, 0x06db, 0x0444, 0x03cf, 0x0340, 0x024e,
+ 0x015e, 0x0136, 0x01e9, 0x0240, 0x02a0, 0x0337,
+ 0x0310, 0x01f9, 0x0123, 0x0037, 0xfeed, 0xff24,
+ 0xff1e, 0xfdfa, 0xfe0a, 0xfdff, 0xfdcd, 0xfe32,
+ 0xfe1e, 0xfe77, 0xfeae, 0xfeaa, 0xff0c, 0xfea6,
+ 0xfe9f, 0xfe44, 0xfce2, 0xfd4b, 0xfd32, 0xfb5b,
+ 0xfb5b, 0xfbcf, 0xfb34, 0xfade, 0xfa54, 0xf9ee,
+ 0xf9b5, 0xf8e8, 0xf8a3, 0xf939, 0xf9ad, 0xf977,
+ 0xf96e, 0xfa7a, 0xfb39, 0xfb34, 0xfb3a, 0xfb22,
+ 0xfb18, 0xfac5, 0xfac4, 0xfb88, 0xfc06, 0xfd97,
+ 0xff06, 0xfe65, 0xfeb8, 0xffa7, 0xff92, 0xff2d,
+ 0xfe81, 0xfef0, 0xff4d, 0xff13, 0x0011, 0x0041,
+ 0x0066, 0x013c, 0x00eb, 0x018a, 0x0213, 0x0187,
+ 0x01e1, 0x0127, 0xffea, 0xffe3, 0xff6e, 0xfee3,
+ 0xfefd, 0xff38, 0xff0b, 0xff45, 0x009d, 0x00c8,
+ 0xffdc, 0xffe4, 0x0029, 0x000b, 0xff95, 0xff2e,
+ 0xfede, 0xfdeb, 0xfd82, 0xfe27, 0xfe86, 0xfe6f,
+ 0xfe5b, 0xfebb, 0xff27, 0xfe9b, 0xfe44, 0xfebb,
+ 0xfe04, 0xfdb4, 0xff67, 0xffeb, 0xff5b, 0xff0a,
+ 0xfe71, 0xfeff, 0xff0e, 0xfe03, 0xfdc8, 0xfcb9,
+ 0xfbff, 0xfc23, 0xfb70, 0xfbd0, 0xfc73, 0xfc45,
+ 0xfc30, 0xfc0c, 0xfc78, 0xfbbf, 0xfa50, 0xf9e0,
+ 0xf8cc, 0xf8d3, 0xf9c7, 0xf99a, 0xf9a9, 0xf9cf,
+ 0xfa90, 0xfad5, 0xfa3e, 0xfb38, 0xfb0f, 0xfaa8,
+ 0xfbb5, 0xfb2e, 0xfbad, 0xfc3f, 0xfabe, 0xfb6e,
+ 0xfc5d, 0xfbff, 0xfca5, 0xfcc5, 0xfcaf, 0xfd4e,
+ 0xfd73, 0xfd06, 0xfcc1, 0xfcc4, 0xfc82, 0xfcea,
+ 0xfd73, 0xfd28, 0xfe18, 0xff21, 0xff3d, 0x0058,
+ 0x0133, 0x017a, 0x01f9, 0x015d, 0x007b, 0x00c8,
+ 0x0169, 0x014c, 0x0116, 0x01c7, 0x025e, 0x024b,
+ 0x024e, 0x0235, 0x0218, 0x025c, 0x0283, 0x027f,
+ 0x0242, 0x01f7, 0x02c7, 0x03db, 0x03cf, 0x034f,
+ 0x024f, 0x0176, 0x0153, 0x0055, 0xff85, 0xffa9,
+ 0xff92, 0x003d, 0x00ce, 0x0074, 0x00d3, 0x00cd,
+ 0x0017, 0xffed, 0xfefe, 0xfdb6, 0xfde0, 0xfe45,
+ 0xfe1c, 0xfebe, 0xffc1, 0x004d, 0x0102, 0x0165,
+ 0x0136, 0x00d1, 0x0074, 0x00f6, 0x00dd, 0xffad,
+ 0xffd0, 0x0029, 0xffa9, 0xffb4, 0xff44, 0xfe6f,
+ 0xff0c, 0xffbf, 0xfef1, 0xfe11, 0xfd81, 0xfc0a,
+ 0xfb1c, 0xfb75, 0xfb2f, 0xfb36, 0xfca1, 0xfdbc,
+ 0xfec6, 0x000c, 0x0025, 0x0012, 0x00d2, 0x00f7,
+ 0x001d, 0xff29, 0xff1c, 0xff68, 0xfec1, 0xff0e,
+ 0x0063, 0x0061, 0x00ad, 0x015b, 0x007b, 0xffbd,
+ 0xff1d, 0xfd67, 0xfc78, 0xfccc, 0xfc69, 0xfbf3,
+ 0xfd39, 0xfe58, 0xfece, 0xffd6, 0xffdd, 0xff89,
+ 0xffbb, 0xff93, 0xffcf, 0xff68, 0xff1a, 0xffec,
+ 0xff8f, 0xffdb, 0x0126, 0x0171, 0x029c, 0x0348,
+ 0x028a, 0x02b4, 0x02cb, 0x023e, 0x0235, 0x02e2,
+ 0x0315, 0x02bd, 0x0385, 0x0409, 0x0474, 0x0617,
+ 0x0655, 0x061e, 0x068b, 0x058c, 0x045a, 0x0363,
+ 0x025c, 0x020a, 0x0173, 0x00f5, 0x00dc, 0x005b,
+ 0xffbd, 0xfedf, 0xfd89, 0xfb20, 0xf83f, 0xf6c2,
+ 0xf51a, 0xf307, 0xf2f7, 0xf34c, 0xf31a, 0xf427,
+ 0xf4f1, 0xf509, 0xf625, 0xf6bc, 0xf6dd, 0xf82d,
+ 0xf8d8, 0xf8ba, 0xf970, 0xfa2e, 0xfaea, 0xfc35,
+ 0xfd37, 0xfdb5, 0xfe2f, 0xfea8, 0xff62, 0x003e,
+ 0x004d, 0x00a2, 0x01b5, 0x01a8, 0x017a, 0x0179,
+ 0x0064, 0x0021, 0xffeb, 0xfe61, 0xfd7e, 0xfc6d,
+ 0xfb02, 0xfacf, 0xfabc, 0xfab8, 0xfb38, 0xfb78,
+ 0xfb98, 0xfbfe, 0xfc9c, 0xfd22, 0xfde6, 0xfe93,
+ 0xfe15, 0xfdc5, 0xfe5f, 0xfed4, 0xffb1, 0x00df,
+ 0x01f5, 0x03e5, 0x061f, 0x07a9, 0x08ec, 0x0a00,
+ 0x0aa3, 0x0b05, 0x0b64, 0x0bac, 0x0bdc, 0x0c4a,
+ 0x0cda, 0x0d2e, 0x0d57, 0x0d6f, 0x0d10, 0x0bb9,
+ 0x0a21, 0x091a, 0x0791, 0x058e, 0x0457, 0x033a,
+ 0x022e, 0x01f4, 0x01d0, 0x01a1, 0x015b, 0x00b4,
+ 0xfff7, 0xfe9a, 0xfcdf, 0xfb7c, 0xfa04, 0xf901,
+ 0xf91b, 0xf9ab, 0xfa02, 0xf9ea, 0xf9d0, 0xfa63,
+ 0xfb71, 0xfba8, 0xfb28, 0xfb95, 0xfc3d, 0xfc5b,
+ 0xfcc8, 0xfd34, 0xfd96, 0xfe78, 0xff88, 0x0082,
+ 0x0138, 0x01af, 0x01ec, 0x0221, 0x028b, 0x02af,
+ 0x02d9, 0x0364, 0x041a, 0x0567, 0x069e, 0x0755,
+ 0x0861, 0x0948, 0x0966, 0x08fe, 0x089a, 0x0805,
+ 0x0668, 0x04f5, 0x04c1, 0x04c7, 0x0512, 0x0608,
+ 0x0712, 0x081b, 0x096a, 0x0aae, 0x0b36, 0x0b30,
+ 0x0b47, 0x0b33, 0x0a43, 0x08f1, 0x08a4, 0x0935,
+ 0x094a, 0x093c, 0x09d0, 0x0a3f, 0x09f8, 0x09e6,
+ 0x0a42, 0x0a0e, 0x09e7, 0x0a60, 0x0a65, 0x0a69,
+ 0x0acc, 0x0a74, 0x09e7, 0x09c1, 0x092e, 0x0861,
+ 0x07fb, 0x07d2, 0x07d2, 0x0804, 0x0862, 0x08a4,
+ 0x0834, 0x07ac, 0x07e8, 0x0814, 0x07db, 0x07ba,
+ 0x0729, 0x0646, 0x05ae, 0x0516, 0x0469, 0x03d8,
+ 0x0392, 0x0362, 0x02f4, 0x031e, 0x03b6, 0x0354,
+ 0x02bd, 0x02a6, 0x0211, 0x0142, 0x00d7, 0x004e,
+ 0xffc4, 0xff8e, 0xff94, 0xffe1, 0x0045, 0x00d7,
+ 0x01d6, 0x024f, 0x01d5, 0x0183, 0x012f, 0x0013,
+ 0xff04, 0xfe68, 0xfe01, 0xfe3f, 0xfed6, 0xff16,
+ 0xff51, 0xff52, 0xfec6, 0xfe8d, 0xfe83, 0xfdee,
+ 0xfda2, 0xfda1, 0xfcfa, 0xfc65, 0xfc2f, 0xfb9d,
+ 0xfb19, 0xfac4, 0xfa13, 0xf93f, 0xf8ad, 0xf89b,
+ 0xf8ba, 0xf895, 0xf8f4, 0xf9db, 0xfa17, 0xf9fd,
+ 0xfa18, 0xfa38, 0xfaa5, 0xfac3, 0xfa1e, 0xf994,
+ 0xf900, 0xf880, 0xf8c8, 0xf8fc, 0xf931, 0xfa11,
+ 0xfac8, 0xfbd8, 0xfdab, 0xfeef, 0x0005, 0x011b,
+ 0x011c, 0x00e1, 0x0094, 0xff6f, 0xfeae, 0xfe81,
+ 0xfdf1, 0xfdc9, 0xfe5d, 0xff27, 0x0032, 0x0111,
+ 0x014c, 0x0103, 0x0088, 0x003a, 0xffaf, 0xfecb,
+ 0xfe6c, 0xfe52, 0xfe1d, 0xfe65, 0xfee8, 0xff3a,
+ 0xff91, 0xffcb, 0xfff1, 0xffee, 0xffcc, 0x0037,
+ 0x0095, 0x0020, 0xffd9, 0xffd3, 0xff6d, 0xff2f,
+ 0xff0c, 0xfeb5, 0xfeb0, 0xfef0, 0xff1d, 0xff1d,
+ 0xfeef, 0xff01, 0xfefb, 0xfe5b, 0xfdfe, 0xfdd1,
+ 0xfd26, 0xfd30, 0xfe0a, 0xfe1b, 0xfdc6, 0xfdbe,
+ 0xfd3d, 0xfca7, 0xfcaa, 0xfc78, 0xfbfd, 0xfbf9,
+ 0xfc09, 0xfba3, 0xfb16, 0xfaae, 0xfa6f, 0xfa2e,
+ 0xf9c8, 0xf963, 0xf909, 0xf8b4, 0xf8a7, 0xf8fe,
+ 0xf9aa, 0xfa96, 0xfb78, 0xfc5a, 0xfd24, 0xfd27,
+ 0xfc99, 0xfc16, 0xfb43, 0xfa61, 0xfa11, 0xf9d9,
+ 0xf9d9, 0xfa81, 0xfaf1, 0xfb06, 0xfb95, 0xfc4b,
+ 0xfce4, 0xfd9f, 0xfdf6, 0xfe03, 0xfe72, 0xfe98,
+ 0xfe16, 0xfdcb, 0xfd99, 0xfd14, 0xfcfe, 0xfd5d,
+ 0xfd61, 0xfd6e, 0xfe0b, 0xfeb9, 0xff5a, 0x0005,
+ 0xfff8, 0xff1f, 0xfed3, 0xff42, 0xff25, 0xfe95,
+ 0xfea9, 0xff07, 0xff14, 0xff25, 0xff2b, 0xff30,
+ 0xffc4, 0x00a2, 0x0177, 0x0282, 0x0371, 0x0406,
+ 0x0470, 0x0474, 0x0418, 0x0398, 0x02d6, 0x0206,
+ 0x0129, 0x0025, 0xff9a, 0xff8a, 0xff89, 0x0018,
+ 0x00f9, 0x0167, 0x01c1, 0x01ec, 0x0163, 0x00b7,
+ 0x0008, 0xff05, 0xfe3d, 0xfdf3, 0xfe06, 0xfeb0,
+ 0xff9b, 0x0053, 0x0106, 0x019f, 0x01f7, 0x0236,
+ 0x0235, 0x01c4, 0x00fc, 0x0003, 0xff0a, 0xfe27,
+ 0xfd4d, 0xfcae, 0xfc72, 0xfc78, 0xfcb7, 0xfd1d,
+ 0xfd69, 0xfda5, 0xfdfb, 0xfe30, 0xfe18, 0xfdf1,
+ 0xfdf4, 0xfe25, 0xfe43, 0xfe24, 0xfe21, 0xfe49,
+ 0xfe5e, 0xfeb3, 0xff05, 0xfeb4, 0xfe8e, 0xfef8,
+ 0xff0b, 0xff06, 0xff80, 0xfffa, 0x0042, 0x0048,
+ 0xffd5, 0xff48, 0xfeab, 0xfdcc, 0xfd0b, 0xfc7e,
+ 0xfc18, 0xfbf8, 0xfc34, 0xfd1e, 0xfe6f, 0xff5a,
+ 0xfff8, 0x0043, 0x0000, 0xffca, 0xff93, 0xfed4,
+ 0xfe29, 0xfe0e, 0xfe5f, 0xff0f, 0xfff4, 0x0103,
+ 0x0211, 0x02f9, 0x041f, 0x0505, 0x052b, 0x057f,
+ 0x05db, 0x0563, 0x04f0, 0x04f4, 0x04e8, 0x0527,
+ 0x05c8, 0x0638, 0x066b, 0x068e, 0x0676, 0x05fb,
+ 0x0560, 0x04c6, 0x03be, 0x0281, 0x01a7, 0x00d7,
+ 0xffb7, 0xfe7f, 0xfd66, 0xfc9d, 0xfbe5, 0xfb08,
+ 0xfa64, 0xf9ee, 0xf96f, 0xf8fe, 0xf895, 0xf858,
+ 0xf817, 0xf7a4, 0xf7bf, 0xf840, 0xf85b, 0xf864,
+ 0xf81a, 0xf74f, 0xf71c, 0xf744, 0xf74d, 0xf812,
+ 0xf966, 0xfade, 0xfc8d, 0xfdd5, 0xfee2, 0xfff9,
+ 0x0048, 0x002f, 0x004b, 0xffee, 0xff2d, 0xfee2,
+ 0xff31, 0xffa9, 0xfff2, 0x004a, 0x00a6, 0x008d,
+ 0x0028, 0xff72, 0xfe5c, 0xfd59, 0xfc3a, 0xfaf8,
+ 0xf9ed, 0xf8dd, 0xf843, 0xf882, 0xf8e0, 0xf98a,
+ 0xfa98, 0xfb74, 0xfca5, 0xfe0f, 0xfef2, 0xffd5,
+ 0x00d1, 0x01ba, 0x02dd, 0x03e3, 0x0502, 0x069a,
+ 0x07d7, 0x08c0, 0x09d7, 0x0ad8, 0x0be4, 0x0cf1,
+ 0x0dba, 0x0e4f, 0x0e6e, 0x0e69, 0x0e8c, 0x0e2c,
+ 0x0dba, 0x0d89, 0x0cb2, 0x0ba8, 0x0ad0, 0x0997,
+ 0x0862, 0x0731, 0x05e7, 0x0543, 0x04b2, 0x03e3,
+ 0x03db, 0x03fe, 0x0370, 0x0270, 0x0108, 0xff9e,
+ 0xfe2d, 0xfc2a, 0xfa91, 0xf9fa, 0xf9ba, 0xfa1e,
+ 0xfb17, 0xfbd4, 0xfcaa, 0xfdd6, 0xfed7, 0xff88,
+ 0xffc7, 0xffac, 0xffbf, 0xffb3, 0xff10, 0xfe76,
+ 0xfe35, 0xfdc7, 0xfd98, 0xfe17, 0xfe93, 0xff3b,
+ 0x0097, 0x01e7, 0x02e8, 0x03c0, 0x0410, 0x0466,
+ 0x0506, 0x0536, 0x0547, 0x0562, 0x0540, 0x05a8,
+ 0x064d, 0x0664, 0x06d9, 0x07c6, 0x086b, 0x0916,
+ 0x09a5, 0x09fe, 0x0ab1, 0x0b35, 0x0b0f, 0x0ac7,
+ 0x0a73, 0x09fc, 0x097d, 0x08d8, 0x083f, 0x07e8,
+ 0x07da, 0x0840, 0x08e7, 0x09a4, 0x0acd, 0x0c47,
+ 0x0d6e, 0x0e24, 0x0e97, 0x0eaa, 0x0e5f, 0x0df5,
+ 0x0d57, 0x0c87, 0x0c02, 0x0be4, 0x0bde, 0x0bca,
+ 0x0b9b, 0x0b64, 0x0b51, 0x0b57, 0x0b41, 0x0ae8,
+ 0x0aa7, 0x0ac4, 0x0ab7, 0x0a86, 0x0a9d, 0x0a69,
+ 0x0a0c, 0x0a21, 0x09d9, 0x094d, 0x0977, 0x097d,
+ 0x08dd, 0x0859, 0x07c8, 0x06f2, 0x0611, 0x051d,
+ 0x0462, 0x03f3, 0x0395, 0x03a0, 0x03e8, 0x03d9,
+ 0x03b6, 0x03c3, 0x03e7, 0x0407, 0x03f5, 0x03ee,
+ 0x0433, 0x047d, 0x04af, 0x04af, 0x0466, 0x043b,
+ 0x0423, 0x03ba, 0x0339, 0x02d3, 0x0275, 0x0261,
+ 0x02a2, 0x02eb, 0x0339, 0x0387, 0x0396, 0x0354,
+ 0x02e2, 0x0260, 0x01d3, 0x0121, 0x005f, 0xffd7,
+ 0xff8f, 0xff70, 0xff80, 0xffa7, 0xffbe, 0xffcc,
+ 0xffbc, 0xff6d, 0xfeef, 0xfe2d, 0xfd2e, 0xfc4c,
+ 0xfb8d, 0xfac9, 0xfa3f, 0xfa28, 0xfa58, 0xfaa3,
+ 0xfaf3, 0xfb28, 0xfb54, 0xfb87, 0xfb8d, 0xfb5f,
+ 0xfb11, 0xfa72, 0xf9b5, 0xf969, 0xf97c, 0xf9b7,
+ 0xfa48, 0xfb1c, 0xfc04, 0xfce1, 0xfd89, 0xfe2a,
+ 0xfebc, 0xfed6, 0xfed3, 0xff0c, 0xff2e, 0xff8a,
+ 0x0057, 0x00c1, 0x00bb, 0x00f2, 0x00fb, 0x0056,
+ 0xff77, 0xfea6, 0xfdc7, 0xfd08, 0xfc9e, 0xfc88,
+ 0xfcb2, 0xfce1, 0xfd06, 0xfd56, 0xfdbd, 0xfdec,
+ 0xfde9, 0xfdd5, 0xfda5, 0xfd70, 0xfd61, 0xfd78,
+ 0xfdb6, 0xfe22, 0xfe90, 0xfedb, 0xff36, 0xff9a,
+ 0xffa0, 0xff52, 0xff04, 0xfe95, 0xfde9, 0xfd48,
+ 0xfcd7, 0xfc7f, 0xfc4d, 0xfc70, 0xfcc9, 0xfd03,
+ 0xfd34, 0xfd6f, 0xfd70, 0xfd4d, 0xfd0f, 0xfc7b,
+ 0xfbe9, 0xfb93, 0xfb3b, 0xfb2a, 0xfb65, 0xfb8b,
+ 0xfbd4, 0xfc22, 0xfc23, 0xfc45, 0xfc56, 0xfbf4,
+ 0xfbda, 0xfc0e, 0xfc05, 0xfc4a, 0xfcec, 0xfd28,
+ 0xfd37, 0xfd74, 0xfd6c, 0xfce5, 0xfc21, 0xfb6c,
+ 0xfad8, 0xfa4f, 0xf9fa, 0xf9f3, 0xfa02, 0xfa44,
+ 0xfaea, 0xfb99, 0xfbfe, 0xfc1e, 0xfbe9, 0xfb4c,
+ 0xfa9c, 0xfa51, 0xfa49, 0xfa37, 0xfa47, 0xfa97,
+ 0xfb05, 0xfba6, 0xfc5f, 0xfcf9, 0xfd7e, 0xfdd0,
+ 0xfe07, 0xfe6f, 0xfea6, 0xfe92, 0xfecd, 0xff24,
+ 0xff26, 0xff33, 0xff66, 0xff8b, 0xffcb, 0x0022,
+ 0x005b, 0x0061, 0x003e, 0x001d, 0x0004, 0xfff5,
+ 0x002a, 0x0082, 0x00af, 0x00dd, 0x012a, 0x0166,
+ 0x0179, 0x018a, 0x01a2, 0x016a, 0x0108, 0x0124,
+ 0x0196, 0x01f8, 0x0282, 0x031a, 0x0373, 0x038f,
+ 0x0349, 0x02b8, 0x0226, 0x0170, 0x00a0, 0xfff0,
+ 0xff54, 0xfed4, 0xfe88, 0xfea5, 0xff29, 0xff6d,
+ 0xff63, 0xff86, 0xff6b, 0xfedb, 0xfe58, 0xfdda,
+ 0xfd55, 0xfd1f, 0xfd2c, 0xfd5b, 0xfd9c, 0xfde3,
+ 0xfe38, 0xfe52, 0xfe18, 0xfde4, 0xfdb6, 0xfd7e,
+ 0xfd66, 0xfd4a, 0xfd39, 0xfd5f, 0xfd64, 0xfd36,
+ 0xfd38, 0xfd7f, 0xfdf9, 0xfe88, 0xfee8, 0xff08,
+ 0xff0d, 0xfefe, 0xfec6, 0xfe74, 0xfe2d, 0xfdf6,
+ 0xfdc5, 0xfd9d, 0xfd81, 0xfd7d, 0xfd7e, 0xfd63,
+ 0xfd27, 0xfcac, 0xfc24, 0xfc07, 0xfc35, 0xfc6f,
+ 0xfcd5, 0xfd1e, 0xfd15, 0xfd20, 0xfd46, 0xfd3f,
+ 0xfcf6, 0xfc7a, 0xfc14, 0xfbea, 0xfc0c, 0xfcc3,
+ 0xfde9, 0xff21, 0x0069, 0x0187, 0x025f, 0x0342,
+ 0x03fb, 0x0460, 0x04bf, 0x04ec, 0x04d5, 0x04d1,
+ 0x04d4, 0x04dc, 0x04fc, 0x04fd, 0x04ea, 0x04c4,
+ 0x0453, 0x03cc, 0x0368, 0x0302, 0x029a, 0x021e,
+ 0x016a, 0x009c, 0xffa3, 0xfe78, 0xfd59, 0xfc41,
+ 0xfb43, 0xfa9b, 0xfa0f, 0xf982, 0xf941, 0xf928,
+ 0xf8e6, 0xf8a2, 0xf87a, 0xf845, 0xf7f9, 0xf7c6,
+ 0xf7b7, 0xf79c, 0xf771, 0xf762, 0xf773, 0xf7a6,
+ 0xf807, 0xf8a0, 0xf996, 0xfac5, 0xfbd6, 0xfce2,
+ 0xfddb, 0xfe69, 0xfeb3, 0xfec9, 0xfe57, 0xfd84,
+ 0xfcb0, 0xfc04, 0xfb98, 0xfb4e, 0xfb41, 0xfb8c,
+ 0xfbb1, 0xfb9b, 0xfba1, 0xfb45, 0xfa5b, 0xf98e,
+ 0xf8de, 0xf7ff, 0xf742, 0xf6ca, 0xf67d, 0xf66d,
+ 0xf6a9, 0xf711, 0xf785, 0xf839, 0xf94f, 0xfa60,
+ 0xfb51, 0xfc7a, 0xfda5, 0xfe96, 0xff80, 0x004f,
+ 0x0123, 0x025a, 0x039e, 0x04b0, 0x0610, 0x07b1,
+ 0x0916, 0x0a4f, 0x0b76, 0x0c51, 0x0cce, 0x0d03,
+ 0x0cf7, 0x0ca8, 0x0c28, 0x0ba1, 0x0b0e, 0x0a3b,
+ 0x092f, 0x0845, 0x078e, 0x06bb, 0x05e6, 0x0563,
+ 0x0511, 0x04d1, 0x04b1, 0x0474, 0x03f0, 0x0339,
+ 0x0233, 0x00ed, 0xff7f, 0xfdb5, 0xfbee, 0xfab7,
+ 0xf9ce, 0xf94c, 0xf9b2, 0xfa8a, 0xfb65, 0xfc92,
+ 0xfdcc, 0xfe85, 0xfecd, 0xfeaf, 0xfe19, 0xfd53,
+ 0xfc88, 0xfbb7, 0xfb0f, 0xfaab, 0xfa80, 0xfab1,
+ 0xfb3e, 0xfbfb, 0xfd02, 0xfe43, 0xff5b, 0x0047,
+ 0x010a, 0x0153, 0x0139, 0x0107, 0x00b4, 0x0050,
+ 0x0008, 0x000b, 0x007f, 0x0133, 0x021b, 0x0347,
+ 0x0454, 0x052b, 0x060a, 0x06a4, 0x06cd, 0x06bf,
+ 0x0678, 0x060e, 0x05b3, 0x056d, 0x055b, 0x056b,
+ 0x057c, 0x05bf, 0x063c, 0x06e9, 0x07db, 0x08cd,
+ 0x09aa, 0x0a9d, 0x0b42, 0x0b77, 0x0ba6, 0x0bb9,
+ 0x0b6d, 0x0ae5, 0x0a43, 0x09ab, 0x094e, 0x093e,
+ 0x0983, 0x09fd, 0x0a7f, 0x0b1f, 0x0bd7, 0x0c65,
+ 0x0cc1, 0x0ce7, 0x0cb4, 0x0c46, 0x0bd4, 0x0b4a,
+ 0x0ab3, 0x0a48, 0x09f1, 0x0999, 0x0976, 0x098f,
+ 0x09ba, 0x09f7, 0x0a35, 0x0a4d, 0x0a4c, 0x0a29,
+ 0x09a2, 0x08c4, 0x07db, 0x06e5, 0x05d7, 0x04f0,
+ 0x0454, 0x0406, 0x03f9, 0x03eb, 0x03e9, 0x0437,
+ 0x0483, 0x0495, 0x04b1, 0x04b3, 0x0487, 0x047e,
+ 0x047d, 0x046a, 0x0481, 0x049c, 0x04a3, 0x04be,
+ 0x04d9, 0x0505, 0x056e, 0x05ea, 0x066a, 0x06f4,
+ 0x0744, 0x073f, 0x0709, 0x0695, 0x05a9, 0x0459,
+ 0x02f7, 0x01b4, 0x00c1, 0x004f, 0x003c, 0x0072,
+ 0x00ea, 0x0151, 0x0188, 0x0196, 0x0141, 0x0097,
+ 0xffd5, 0xfeee, 0xfe0b, 0xfd53, 0xfcae, 0xfc3e,
+ 0xfbfb, 0xfbc4, 0xfbe6, 0xfc4f, 0xfc89, 0xfcb3,
+ 0xfce1, 0xfccb, 0xfc8b, 0xfc47, 0xfbc8, 0xfb21,
+ 0xfab6, 0xfa8a, 0xfa5c, 0xfa4f, 0xfaa5, 0xfb32,
+ 0xfbc8, 0xfc6e, 0xfd0e, 0xfda0, 0xfe2f, 0xfe82,
+ 0xfe82, 0xfe6d, 0xfe60, 0xfe57, 0xfe54, 0xfe3e,
+ 0xfe1f, 0xfe15, 0xfe05, 0xfde6, 0xfdf1, 0xfe21,
+ 0xfe5e, 0xfecd, 0xff55, 0xffbb, 0x0011, 0x005a,
+ 0x0070, 0x0050, 0xffe0, 0xff29, 0xfe84, 0xfe0c,
+ 0xfdd4, 0xfe0f, 0xfe90, 0xff34, 0x0026, 0x0124,
+ 0x01e1, 0x027b, 0x02bc, 0x0265, 0x01c4, 0x010b,
+ 0x0018, 0xfefa, 0xfdf5, 0xfd3b, 0xfcbe, 0xfc4f,
+ 0xfc1c, 0xfc61, 0xfce5, 0xfd6d, 0xfe06, 0xfe8a,
+ 0xfec4, 0xfebe, 0xfe68, 0xfdbc, 0xfceb, 0xfc20,
+ 0xfb8a, 0xfb54, 0xfb64, 0xfba6, 0xfc1d, 0xfc7e,
+ 0xfc95, 0xfc8a, 0xfc76, 0xfc4f, 0xfc06, 0xfbaa,
+ 0xfb6f, 0xfb5b, 0xfb40, 0xfb20, 0xfb12, 0xfb16,
+ 0xfb20, 0xfb32, 0xfb49, 0xfb43, 0xfb32, 0xfb6e,
+ 0xfbcb, 0xfbe1, 0xfbd7, 0xfbc2, 0xfb6f, 0xfaef,
+ 0xfa4f, 0xf989, 0xf8d4, 0xf866, 0xf862, 0xf8c9,
+ 0xf963, 0xfa28, 0xfb27, 0xfc38, 0xfd48, 0xfe36,
+ 0xfecd, 0xff1b, 0xff28, 0xfeec, 0xfe8e, 0xfe23,
+ 0xfdb8, 0xfd8b, 0xfdb2, 0xfe02, 0xfe5b, 0xfed7,
+ 0xff8d, 0x003a, 0x00a0, 0x00c7, 0x00aa, 0x004d,
+ 0xffea, 0xff82, 0xff05, 0xfe97, 0xfe6d, 0xfe9a,
+ 0xff08, 0xffaa, 0x0080, 0x015f, 0x022a, 0x02f1,
+ 0x0393, 0x03ef, 0x0419, 0x042a, 0x042e, 0x0421,
+ 0x040d, 0x0405, 0x03ea, 0x03b2, 0x037a, 0x033b,
+ 0x0300, 0x02d0, 0x029d, 0x0292, 0x02b2, 0x02a8,
+ 0x025f, 0x01d8, 0x0117, 0x0062, 0xffb7, 0xfee4,
+ 0xfe21, 0xfda8, 0xfd83, 0xfda3, 0xfdcd, 0xfe09,
+ 0xfe89, 0xff17, 0xff78, 0xffc1, 0xffd4, 0xff7e,
+ 0xfef7, 0xfe8c, 0xfe19, 0xfd86, 0xfd0e, 0xfcbb,
+ 0xfc93, 0xfcbe, 0xfd11, 0xfd7d, 0xfe36, 0xfef7,
+ 0xff84, 0xffdd, 0xffd3, 0xff91, 0xff4d, 0xfebe,
+ 0xfe13, 0xfda4, 0xfd43, 0xfd01, 0xfcff, 0xfd0b,
+ 0xfd1a, 0xfd1c, 0xfd14, 0xfd36, 0xfd3d, 0xfcf6,
+ 0xfcb0, 0xfc67, 0xfc12, 0xfbec, 0xfbd0, 0xfba7,
+ 0xfba1, 0xfbb2, 0xfbed, 0xfc6e, 0xfcfd, 0xfdaa,
+ 0xfe9a, 0xff90, 0x0089, 0x01a8, 0x02aa, 0x0368,
+ 0x0400, 0x046c, 0x048d, 0x0463, 0x0412, 0x03d9,
+ 0x03d2, 0x03f7, 0x0451, 0x04e4, 0x05ab, 0x0691,
+ 0x0751, 0x07c3, 0x07de, 0x076f, 0x068e, 0x058e,
+ 0x0467, 0x0322, 0x01e1, 0x009a, 0xff95, 0xff04,
+ 0xfe95, 0xfe49, 0xfe3d, 0xfe2a, 0xfdf3, 0xfd84,
+ 0xfce1, 0xfc63, 0xfbf1, 0xfb4b, 0xfad2, 0xfa95,
+ 0xfa55, 0xfa43, 0xfa70, 0xfabf, 0xfb27, 0xfb8d,
+ 0xfc02, 0xfc8e, 0xfcf4, 0xfd2e, 0xfd4a, 0xfd57,
+ 0xfd7c, 0xfd98, 0xfd93, 0xfd93, 0xfd93, 0xfd8f,
+ 0xfd8b, 0xfd70, 0xfd65, 0xfd60, 0xfd38, 0xfd26,
+ 0xfd15, 0xfccd, 0xfc6b, 0xfbce, 0xfb05, 0xfa61,
+ 0xf999, 0xf899, 0xf7c5, 0xf6fd, 0xf650, 0xf617,
+ 0xf625, 0xf679, 0xf742, 0xf83f, 0xf93e, 0xfa1d,
+ 0xfaa8, 0xfb0e, 0xfb6a, 0xfb7d, 0xfb67, 0xfb91,
+ 0xfc08, 0xfcb0, 0xfda3, 0xfef9, 0x0092, 0x026a,
+ 0x047e, 0x069b, 0x088f, 0x0a2a, 0x0b4a, 0x0c18,
+ 0x0c8f, 0x0c8d, 0x0c44, 0x0bbf, 0x0b02, 0x0a67,
+ 0x0a07, 0x09d8, 0x09ef, 0x0a19, 0x0a42, 0x0a73,
+ 0x0a57, 0x09d6, 0x0932, 0x085e, 0x075e, 0x065a,
+ 0x0547, 0x042c, 0x0327, 0x0231, 0x013c, 0x0047,
+ 0xff70, 0xfee8, 0xfe9b, 0xfe69, 0xfe72, 0xfeb5,
+ 0xfefd, 0xff36, 0xff54, 0xff45, 0xff06, 0xfe80,
+ 0xfdb1, 0xfce7, 0xfc49, 0xfbd4, 0xfbad, 0xfbda,
+ 0xfc42, 0xfcf2, 0xfdb2, 0xfe3f, 0xfeb7, 0xff12,
+ 0xff33, 0xff39, 0xff04, 0xfe8e, 0xfe29, 0xfdef,
+ 0xfddf, 0xfdf2, 0xfe12, 0xfe7b, 0xff3e, 0x0017,
+ 0x00f5, 0x01a0, 0x01fd, 0x0273, 0x02eb, 0x031e,
+ 0x0347, 0x0349, 0x0316, 0x0311, 0x0318, 0x0316,
+ 0x0350, 0x039c, 0x03f9, 0x0482, 0x04d7, 0x050e,
+ 0x0561, 0x0584, 0x059e, 0x05f7, 0x0654, 0x06bf,
+ 0x075e, 0x081b, 0x08fd, 0x09e0, 0x0a90, 0x0b33,
+ 0x0bbe, 0x0bfc, 0x0c13, 0x0c28, 0x0c35, 0x0c36,
+ 0x0c1c, 0x0be5, 0x0bbd, 0x0ba2, 0x0b75, 0x0b54,
+ 0x0b5a, 0x0b69, 0x0b80, 0x0bc2, 0x0c1f, 0x0c8b,
+ 0x0d07, 0x0d59, 0x0d60, 0x0d3f, 0x0cf6, 0x0c76,
+ 0x0bc5, 0x0af0, 0x0a0e, 0x092e, 0x086b, 0x07d9,
+ 0x074d, 0x06c9, 0x06a1, 0x06bb, 0x06b9, 0x069b,
+ 0x0669, 0x0618, 0x05cd, 0x0582, 0x0510, 0x0489,
+ 0x041d, 0x03e8, 0x03e8, 0x040d, 0x045b, 0x04c8,
+ 0x052f, 0x059d, 0x0609, 0x062a, 0x0612, 0x0600,
+ 0x05da, 0x0593, 0x054c, 0x04f7, 0x04b7, 0x04ad,
+ 0x0496, 0x0461, 0x043d, 0x0416, 0x03e9, 0x03ce,
+ 0x03b2, 0x039b, 0x0389, 0x0366, 0x0338, 0x0303,
+ 0x02b3, 0x0236, 0x0169, 0x0065, 0xff7a, 0xfe9d,
+ 0xfdcf, 0xfd5c, 0xfd4b, 0xfd77, 0xfdd5, 0xfe37,
+ 0xfe6c, 0xfe79, 0xfe5a, 0xfe02, 0xfdac, 0xfd74,
+ 0xfd17, 0xfca7, 0xfc83, 0xfc77, 0xfc48, 0xfc47,
+ 0xfc74, 0xfc8c, 0xfcb2, 0xfcd6, 0xfcc1, 0xfc94,
+ 0xfc5e, 0xfc15, 0xfbd4, 0xfb8b, 0xfb4e, 0xfb56,
+ 0xfb94, 0xfbe7, 0xfc4a, 0xfcbf, 0xfd51, 0xfdcb,
+ 0xfdfe, 0xfe11, 0xfdfc, 0xfdc3, 0xfdb7, 0xfdb6,
+ 0xfd8a, 0xfd81, 0xfdab, 0xfdd7, 0xfe15, 0xfe46,
+ 0xfe40, 0xfe31, 0xfe38, 0xfe51, 0xfe8d, 0xfee6,
+ 0xff3a, 0xff84, 0xffd0, 0x0009, 0x0005, 0xffca,
+ 0xff6e, 0xfeee, 0xfe69, 0xfdfb, 0xfd91, 0xfd33,
+ 0xfcf9, 0xfce6, 0xfd18, 0xfd8d, 0xfdfb, 0xfe44,
+ 0xfe5e, 0xfe28, 0xfda8, 0xfcf8, 0xfc20, 0xfb5c,
+ 0xfae1, 0xfaa2, 0xfaa7, 0xfaeb, 0xfb30, 0xfb6e,
+ 0xfbcd, 0xfc24, 0xfc56, 0xfc93, 0xfccf, 0xfcd9,
+ 0xfcbb, 0xfc54, 0xfb9b, 0xfaf9, 0xfa86, 0xf9f5,
+ 0xf974, 0xf93f, 0xf92b, 0xf92c, 0xf948, 0xf951,
+ 0xf950, 0xf96f, 0xf989, 0xf979, 0xf95f, 0xf956,
+ 0xf95e, 0xf97e, 0xf9b4, 0xf9e8, 0xfa13, 0xfa29,
+ 0xfa11, 0xf9e8, 0xf9e0, 0xf9fc, 0xfa51, 0xfb0d,
+ 0xfc09, 0xfcef, 0xfd96, 0xfde3, 0xfdcf, 0xfd84,
+ 0xfd26, 0xfcc7, 0xfc8d, 0xfc81, 0xfca1, 0xfd0b,
+ 0xfdac, 0xfe3e, 0xfea9, 0xfef6, 0xff1e, 0xff2d,
+ 0xff32, 0xff1a, 0xfee8, 0xfeba, 0xfe96, 0xfe86,
+ 0xfe9f, 0xfee7, 0xff5b, 0xffea, 0x007e, 0x0104,
+ 0x0156, 0x0175, 0x01a1, 0x01da, 0x01f6, 0x0204,
+ 0x0213, 0x0230, 0x0287, 0x02fc, 0x0359, 0x03b6,
+ 0x0417, 0x044c, 0x0448, 0x0423, 0x03e7, 0x0384,
+ 0x0300, 0x027d, 0x01e6, 0x0116, 0x0049, 0xff99,
+ 0xfed6, 0xfe15, 0xfd77, 0xfd00, 0xfcd4, 0xfcdb,
+ 0xfcde, 0xfcf8, 0xfd32, 0xfd59, 0xfd75, 0xfd8f,
+ 0xfd8e, 0xfd78, 0xfd48, 0xfce4, 0xfc57, 0xfbc0,
+ 0xfb39, 0xfada, 0xfabc, 0xfaf9, 0xfb75, 0xfbfc,
+ 0xfc7e, 0xfce5, 0xfd19, 0xfd2f, 0xfd18, 0xfca8,
+ 0xfc0d, 0xfb87, 0xfb01, 0xfa6d, 0xf9fd, 0xf9c2,
+ 0xf9a7, 0xf9c6, 0xfa23, 0xfa84, 0xfae4, 0xfb6b,
+ 0xfbff, 0xfc80, 0xfcdd, 0xfce5, 0xfc9d, 0xfc41,
+ 0xfbe5, 0xfba4, 0xfb9b, 0xfbba, 0xfc09, 0xfca1,
+ 0xfd5c, 0xfdfe, 0xfe76, 0xfed0, 0xff14, 0xff51,
+ 0xff9b, 0xffe5, 0x0023, 0x0076, 0x00ec, 0x016d,
+ 0x01ed, 0x0278, 0x031b, 0x03ba, 0x0436, 0x04a6,
+ 0x0523, 0x058f, 0x05de, 0x05f1, 0x05a8, 0x052c,
+ 0x0488, 0x038f, 0x025c, 0x0130, 0x0023, 0xff3c,
+ 0xfe84, 0xfe07, 0xfdbf, 0xfd8f, 0xfd62, 0xfd20,
+ 0xfcbe, 0xfc58, 0xfbe4, 0xfb42, 0xfa85, 0xf9cf,
+ 0xf937, 0xf8d1, 0xf896, 0xf896, 0xf8d7, 0xf92b,
+ 0xf988, 0xf9f4, 0xfa4d, 0xfa9b, 0xfaf9, 0xfb51,
+ 0xfb7e, 0xfb6d, 0xfb3c, 0xfb14, 0xfaed, 0xfad0,
+ 0xfada, 0xfb04, 0xfb70, 0xfc24, 0xfcca, 0xfd4f,
+ 0xfdc4, 0xfdec, 0xfdbb, 0xfd5f, 0xfcbf, 0xfbcf,
+ 0xfac7, 0xf9c6, 0xf8cb, 0xf7ec, 0xf735, 0xf697,
+ 0xf61d, 0xf5f2, 0xf619, 0xf685, 0xf74a, 0xf853,
+ 0xf96f, 0xfa85, 0xfb75, 0xfc18, 0xfc64, 0xfc64,
+ 0xfc3f, 0xfc1f, 0xfc0d, 0xfc31, 0xfcba, 0xfd9f,
+ 0xfed5, 0x005c, 0x020d, 0x03ad, 0x051a, 0x063e,
+ 0x0716, 0x07ab, 0x07ec, 0x07e3, 0x07bf, 0x079b,
+ 0x078e, 0x07b8, 0x0815, 0x08b2, 0x0985, 0x0a41,
+ 0x0aed, 0x0b9e, 0x0bf0, 0x0bcc, 0x0b62, 0x0a84,
+ 0x0953, 0x0839, 0x0729, 0x061f, 0x053d, 0x0471,
+ 0x03e4, 0x03af, 0x0376, 0x0327, 0x02df, 0x027e,
+ 0x020e, 0x018c, 0x00de, 0x0031, 0xffa4, 0xff26,
+ 0xfec9, 0xfe8b, 0xfe59, 0xfe3a, 0xfe26, 0xfe26,
+ 0xfe3d, 0xfe51, 0xfe78, 0xfec4, 0xff0c, 0xff47,
+ 0xff7c, 0xff85, 0xff53, 0xfeff, 0xfe90, 0xfdff,
+ 0xfd5e, 0xfce0, 0xfcb1, 0xfcd9, 0xfd5d, 0xfe28,
+ 0xfeff, 0xffb2, 0x0041, 0x00be, 0x010a, 0x010c,
+ 0x00e3, 0x009d, 0x0038, 0xffed, 0xffd1, 0xffc2,
+ 0xffde, 0x0041, 0x00b9, 0x013f, 0x01ee, 0x02a5,
+ 0x033e, 0x03b0, 0x03e1, 0x03d8, 0x03b1, 0x0373,
+ 0x0342, 0x034f, 0x0398, 0x0423, 0x0501, 0x062c,
+ 0x0785, 0x08c4, 0x09bd, 0x0a9b, 0x0b56, 0x0bc0,
+ 0x0bf8, 0x0c22, 0x0c43, 0x0c71, 0x0c9d, 0x0cad,
+ 0x0cac, 0x0ca4, 0x0cac, 0x0cc3, 0x0cc8, 0x0ce3,
+ 0x0d40, 0x0dbe, 0x0e48, 0x0ec0, 0x0ef1, 0x0ee3,
+ 0x0e96, 0x0e02, 0x0d4b, 0x0c7f, 0x0bba, 0x0b23,
+ 0x0aa4, 0x0a5a, 0x0a6d, 0x0a90, 0x0a92, 0x0a7d,
+ 0x0a34, 0x09d1, 0x0971, 0x08f3, 0x085e, 0x07c8,
+ 0x072d, 0x06a8, 0x0640, 0x05e5, 0x05b4, 0x05af,
+ 0x05b9, 0x05db, 0x0614, 0x0655, 0x0697, 0x06d5,
+ 0x06ee, 0x06b8, 0x0641, 0x05b9, 0x053c, 0x04dd,
+ 0x04aa, 0x04a4, 0x04dc, 0x0537, 0x0582, 0x05be,
+ 0x05ed, 0x0603, 0x05f4, 0x05a4, 0x0529, 0x04a9,
+ 0x040e, 0x0368, 0x02d3, 0x0239, 0x01b2, 0x015c,
+ 0x0126, 0x010b, 0x00fd, 0x0107, 0x0153, 0x01b2,
+ 0x01fb, 0x0236, 0x0231, 0x01d5, 0x0158, 0x00bf,
+ 0x000a, 0xff59, 0xfeb7, 0xfe3f, 0xfe01, 0xfe05,
+ 0xfe59, 0xfed2, 0xff45, 0xffa8, 0xffd7, 0xffcf,
+ 0xff9a, 0xff0a, 0xfe29, 0xfd2e, 0xfc34, 0xfb72,
+ 0xfaf8, 0xfaaf, 0xfaba, 0xfb1c, 0xfba5, 0xfc44,
+ 0xfcf0, 0xfd9c, 0xfe36, 0xfe95, 0xfea8, 0xfe74,
+ 0xfe00, 0xfd7c, 0xfd0f, 0xfcc2, 0xfcac, 0xfcc6,
+ 0xfd0b, 0xfd87, 0xfe1c, 0xfea4, 0xff19, 0xff6d,
+ 0xffa0, 0xffb5, 0xffa3, 0xff7f, 0xff65, 0xff5b,
+ 0xff5c, 0xff4e, 0xff2a, 0xff00, 0xfed4, 0xfeb4,
+ 0xfeab, 0xfeba, 0xff01, 0xff7b, 0xfff5, 0x0054,
+ 0x0080, 0x0050, 0xffc3, 0xfeee, 0xfdfa, 0xfd20,
+ 0xfc78, 0xfc19, 0xfc24, 0xfc87, 0xfd13, 0xfdbf,
+ 0xfe73, 0xfef1, 0xff2c, 0xff36, 0xfeff, 0xfe8c,
+ 0xfdf4, 0xfd24, 0xfc4a, 0xfba8, 0xfb1f, 0xfaaf,
+ 0xfa6f, 0xfa40, 0xfa31, 0xfa4e, 0xfa5e, 0xfa73,
+ 0xfa88, 0xfa57, 0xfa07, 0xf9bb, 0xf951, 0xf906,
+ 0xf909, 0xf93e, 0xf9ac, 0xfa43, 0xfae9, 0xfba1,
+ 0xfc46, 0xfcc9, 0xfd31, 0xfd63, 0xfd88, 0xfdbf,
+ 0xfdc9, 0xfda7, 0xfd8c, 0xfd73, 0xfd55, 0xfd31,
+ 0xfd0a, 0xfcff, 0xfd12, 0xfd30, 0xfd66, 0xfdc4,
+ 0xfe4d, 0xfeed, 0xff85, 0xfff0, 0x0007, 0xffe5,
+ 0xffad, 0xff4c, 0xfec1, 0xfe2d, 0xfda1, 0xfd53,
+ 0xfd58, 0xfd9f, 0xfe3e, 0xff0d, 0xffda, 0x00b2,
+ 0x0166, 0x01c8, 0x0226, 0x0277, 0x0281, 0x0265,
+ 0x023c, 0x021d, 0x0235, 0x0277, 0x02d4, 0x0345,
+ 0x03a4, 0x0411, 0x04af, 0x0544, 0x05a2, 0x05c7,
+ 0x0596, 0x050a, 0x0449, 0x0362, 0x0254, 0x014a,
+ 0x0073, 0xffd5, 0xff84, 0xff88, 0xffa7, 0xffc1,
+ 0xffde, 0xffe1, 0xffc6, 0xff8f, 0xff1c, 0xfe82,
+ 0xfdfb, 0xfd82, 0xfd12, 0xfcb9, 0xfc80, 0xfc7b,
+ 0xfca3, 0xfcdd, 0xfd25, 0xfd7d, 0xfdee, 0xfe6e,
+ 0xfecf, 0xfeea, 0xfeb6, 0xfe3e, 0xfda1, 0xfce9,
+ 0xfc14, 0xfb3e, 0xfa72, 0xf9c9, 0xf97b, 0xf985,
+ 0xf9bc, 0xfa1a, 0xfa9f, 0xfb2e, 0xfbb7, 0xfc41,
+ 0xfcb4, 0xfcf4, 0xfd02, 0xfcda, 0xfc80, 0xfc22,
+ 0xfbc9, 0xfb69, 0xfb32, 0xfb3f, 0xfb7a, 0xfbe6,
+ 0xfc81, 0xfd35, 0xfde7, 0xfe71, 0xfeca, 0xfeff,
+ 0xff15, 0xff19, 0xff13, 0xff04, 0xff08, 0xff48,
+ 0xffcd, 0x0079, 0x0129, 0x01d9, 0x0277, 0x02dd,
+ 0x0323, 0x035a, 0x0353, 0x0314, 0x02e0, 0x02c7,
+ 0x02a6, 0x026b, 0x0240, 0x0237, 0x0224, 0x020f,
+ 0x020d, 0x01e1, 0x01a1, 0x0194, 0x018e, 0x0160,
+ 0x0115, 0x009e, 0xfff5, 0xff1b, 0xfe14, 0xfd03,
+ 0xfbf7, 0xfaf5, 0xfa38, 0xf9d6, 0xf9c4, 0xfa02,
+ 0xfa67, 0xfac9, 0xfb2c, 0xfb84, 0xfbc4, 0xfbe6,
+ 0xfbce, 0xfb8a, 0xfb47, 0xfb12, 0xfaf9, 0xfafa,
+ 0xfb0a, 0xfb4d, 0xfbd2, 0xfc71, 0xfd24, 0xfde0,
+ 0xfe73, 0xfed2, 0xfef9, 0xfebf, 0xfe28, 0xfd5d,
+ 0xfc6f, 0xfb75, 0xfa9d, 0xfa01, 0xf9b0, 0xf9a0,
+ 0xf9b7, 0xf9e0, 0xfa10, 0xfa4d, 0xfa8d, 0xfab5,
+ 0xfac1, 0xfab4, 0xfa9d, 0xfaa7, 0xfacb, 0xfade,
+ 0xfae8, 0xfb06, 0xfb48, 0xfbbe, 0xfc6b, 0xfd50,
+ 0xfe67, 0xffa5, 0x010b, 0x026f, 0x0388, 0x0467,
+ 0x050e, 0x055d, 0x0570, 0x054a, 0x04ef, 0x04b0,
+ 0x04a6, 0x04bd, 0x0519, 0x05a8, 0x064f, 0x071e,
+ 0x07e0, 0x0870, 0x08f5, 0x0951, 0x0961, 0x093b,
+ 0x08d0, 0x082c, 0x0798, 0x072e, 0x06dd, 0x0693,
+ 0x0649, 0x0618, 0x0610, 0x0616, 0x05ff, 0x05b3,
+ 0x053d, 0x04a4, 0x03d5, 0x02d7, 0x01ce, 0x00d6,
+ 0x000e, 0xff88, 0xff35, 0xff08, 0xfef6, 0xfefd,
+ 0xff11, 0xff14, 0xfef5, 0xfec1, 0xfe7a, 0xfe25,
+ 0xfded, 0xfdec, 0xfe0c, 0xfe36, 0xfe64, 0xfe89,
+ 0xfeaa, 0xfed4, 0xfeed, 0xfedd, 0xfeba, 0xfeaa,
+ 0xfecf, 0xff08, 0xff0a, 0xfed9, 0xfea0, 0xfe52,
+ 0xfdeb, 0xfd7d, 0xfd03, 0xfc9a, 0xfc7d, 0xfca5,
+ 0xfcf0, 0xfd63, 0xfe0d, 0xfec2, 0xff50, 0xffba,
+ 0x0004, 0x003d, 0x0071, 0x0069, 0x0000, 0xff79,
+ 0xff19, 0xfef0, 0xff00, 0xff3f, 0xffaf, 0x0073,
+ 0x019a, 0x0306, 0x0477, 0x05af, 0x06a4, 0x0766,
+ 0x07ea, 0x082a, 0x0845, 0x086d, 0x08b1, 0x0915,
+ 0x09b7, 0x0a7c, 0x0b21, 0x0bb8, 0x0c42, 0x0c86,
+ 0x0c99, 0x0c96, 0x0c68, 0x0c25, 0x0be3, 0x0b8d,
+ 0x0b2e, 0x0ad3, 0x0a84, 0x0a59, 0x0a44, 0x0a3a,
+ 0x0a56, 0x0a92, 0x0ada, 0x0b37, 0x0b9b, 0x0be7,
+ 0x0c17, 0x0c1c, 0x0bda, 0x0b4c, 0x0a89, 0x09a2,
+ 0x08ad, 0x07d0, 0x0721, 0x069b, 0x0659, 0x067a,
+ 0x06f1, 0x0796, 0x0845, 0x08e1, 0x094a, 0x0954,
+ 0x08ea, 0x081a, 0x06ef, 0x05a1, 0x0494, 0x03ef,
+ 0x039c, 0x03af, 0x043b, 0x0518, 0x0619, 0x0713,
+ 0x07b5, 0x07c6, 0x0756, 0x0675, 0x051e, 0x0377,
+ 0x01dd, 0x00a9, 0x0004, 0xfff6, 0x0081, 0x0195,
+ 0x02ee, 0x0453, 0x058f, 0x064e, 0x0663, 0x05de,
+ 0x04bf, 0x0321, 0x0171, 0xfffc, 0xfed8, 0xfe3e,
+ 0xfe55, 0xfeff, 0x001b, 0x0176, 0x02b7, 0x03a9,
+ 0x0428, 0x0418, 0x0382, 0x0270, 0x00fa, 0xff71,
+ 0xfe0a, 0xfce0, 0xfc28, 0xfbf4, 0xfc42, 0xfd12,
+ 0xfe11, 0xfed8, 0xff43, 0xff41, 0xfedc, 0xfe14,
+ 0xfcc4, 0xfb39, 0xf9f2, 0xf900, 0xf86d, 0xf862,
+ 0xf8e5, 0xfa0c, 0xfbad, 0xfd41, 0xfe7e, 0xff58,
+ 0xffa8, 0xff5c, 0xfe7e, 0xfd3c, 0xfbec, 0xfac9,
+ 0xfa0b, 0xf9d7, 0xfa17, 0xfae0, 0xfc45, 0xfdef,
+ 0xff77, 0x00a0, 0x0128, 0x0102, 0x0040, 0xfeeb,
+ 0xfd4b, 0xfbce, 0xfac2, 0xfa43, 0xfa38, 0xfaa1,
+ 0xfb9d, 0xfcf6, 0xfe5f, 0xffa1, 0x006f, 0x00b4,
+ 0x007e, 0xffba, 0xfe88, 0xfd36, 0xfbed, 0xfb00,
+ 0xfaa9, 0xfad5, 0xfb79, 0xfc78, 0xfd92, 0xfea8,
+ 0xff78, 0xffb4, 0xff58, 0xfe64, 0xfcda, 0xfb07,
+ 0xf940, 0xf7ba, 0xf6a1, 0xf614, 0xf62d, 0xf6e4,
+ 0xf7f5, 0xf91a, 0xfa18, 0xfabb, 0xfafd, 0xfaec,
+ 0xfa8f, 0xf9e0, 0xf900, 0xf83e, 0xf7c1, 0xf797,
+ 0xf7fd, 0xf8f6, 0xfa58, 0xfc1a, 0xfde8, 0xff54,
+ 0x004e, 0x00c0, 0x0090, 0xffe5, 0xfebf, 0xfd4c,
+ 0xfc14, 0xfb3d, 0xfacd, 0xfb03, 0xfbc5, 0xfcce,
+ 0xfe1e, 0xff72, 0x005d, 0x00cb, 0x00c1, 0x0045,
+ 0xff74, 0xfe64, 0xfd41, 0xfc4e, 0xfba8, 0xfb63,
+ 0xfb96, 0xfc22, 0xfce8, 0xfdfe, 0xff40, 0x0056,
+ 0x0136, 0x01d7, 0x0202, 0x01d1, 0x0195, 0x0163,
+ 0x0141, 0x0133, 0x0141, 0x019b, 0x025f, 0x0357,
+ 0x042b, 0x04b5, 0x050b, 0x053d, 0x0530, 0x04e5,
+ 0x046e, 0x03c9, 0x031c, 0x0284, 0x0201, 0x01a8,
+ 0x0170, 0x0132, 0x00fe, 0x00e6, 0x00d3, 0x00be,
+ 0x00a1, 0x0070, 0x0030, 0xffe5, 0xff92, 0xff48,
+ 0xff0b, 0xfed3, 0xfe9d, 0xfe7d, 0xfe69, 0xfe36,
+ 0xfdf1, 0xfdb5, 0xfd6a, 0xfd19, 0xfcd0, 0xfc6b,
+ 0xfc00, 0xfbc0, 0xfb91, 0xfb79, 0xfb92, 0xfbaf,
+ 0xfbc6, 0xfbf1, 0xfc14, 0xfc24, 0xfc32, 0xfc2b,
+ 0xfbf1, 0xfb70, 0xfaa9, 0xf9d5, 0xf920, 0xf88e,
+ 0xf821, 0xf7de, 0xf7db, 0xf834, 0xf8ca, 0xf971,
+ 0xfa1b, 0xfaa5, 0xfaf7, 0xfb23, 0xfb2c, 0xfb04,
+ 0xfaa6, 0xfa2e, 0xf9e5, 0xfa02, 0xfa70, 0xfb11,
+ 0xfbe2, 0xfcda, 0xfde7, 0xfeea, 0xffb5, 0x0028,
+ 0x0047, 0x002b, 0xffdb, 0xff50, 0xfebc, 0xfe63,
+ 0xfe54, 0xfe8e, 0xff19, 0xffe3, 0x00d9, 0x01e7,
+ 0x02df, 0x03b0, 0x043b, 0x044e, 0x0406, 0x0399,
+ 0x0300, 0x0247, 0x018b, 0x00d0, 0x0040, 0x0013,
+ 0x003d, 0x00aa, 0x0137, 0x01a6, 0x01d9, 0x01be,
+ 0x0124, 0x000d, 0xfeaf, 0xfd31, 0xfbc4, 0xfa90,
+ 0xf984, 0xf8b0, 0xf861, 0xf8be, 0xf99f, 0xfabc,
+ 0xfbc6, 0xfc8e, 0xfcfe, 0xfd01, 0xfc8e, 0xfbba,
+ 0xfabc, 0xf9cd, 0xf90e, 0xf8a2, 0xf8b6, 0xf95a,
+ 0xfa7a, 0xfbf4, 0xfd81, 0xfed6, 0xffc3, 0x001f,
+ 0xffd9, 0xfeff, 0xfdb6, 0xfc28, 0xfa8f, 0xf924,
+ 0xf81a, 0xf799, 0xf78e, 0xf7bd, 0xf811, 0xf8a3,
+ 0xf96b, 0xfa3c, 0xfb02, 0xfbbe, 0xfc50, 0xfc7f,
+ 0xfc47, 0xfbcf, 0xfb30, 0xfa8f, 0xfa27, 0xf9f9,
+ 0xfa05, 0xfa86, 0xfb7c, 0xfcb3, 0xfe33, 0xffef,
+ 0x01b1, 0x0367, 0x04c7, 0x057f, 0x059d, 0x0540,
+ 0x0484, 0x03bc, 0x0316, 0x0294, 0x0249, 0x024f,
+ 0x02dd, 0x040d, 0x059c, 0x0739, 0x08a9, 0x0999,
+ 0x09ec, 0x09b8, 0x0904, 0x07e5, 0x0688, 0x053c,
+ 0x045d, 0x040d, 0x0451, 0x0531, 0x0653, 0x0740,
+ 0x07d9, 0x080e, 0x07d6, 0x0747, 0x0649, 0x04d2,
+ 0x0322, 0x0180, 0x001f, 0xff22, 0xfe8f, 0xfe7b,
+ 0xfedc, 0xff82, 0x0055, 0x0128, 0x019e, 0x01a2,
+ 0x0161, 0x00f1, 0x0059, 0xffa8, 0xfed9, 0xfe0c,
+ 0xfd91, 0xfd89, 0xfdce, 0xfe56, 0xff1d, 0xfff8,
+ 0x00c4, 0x016e, 0x01d9, 0x0205, 0x01f7, 0x01a4,
+ 0x0106, 0x0000, 0xfea2, 0xfd53, 0xfc56, 0xfb97,
+ 0xfb0a, 0xfab1, 0xfab7, 0xfb5b, 0xfc72, 0xfd9c,
+ 0xfea3, 0xff54, 0xff99, 0xff90, 0xff46, 0xfec5,
+ 0xfe15, 0xfd50, 0xfcb5, 0xfc6a, 0xfc74, 0xfce9,
+ 0xfdc8, 0xff0a, 0x00a5, 0x0247, 0x0394, 0x0473,
+ 0x04d7, 0x04ee, 0x04f7, 0x04d3, 0x0471, 0x0418,
+ 0x040b, 0x0467, 0x0514, 0x05e0, 0x06d0, 0x07e9,
+ 0x0919, 0x0a3f, 0x0b25, 0x0bc2, 0x0c49, 0x0cb6,
+ 0x0cf7, 0x0d11, 0x0cec, 0x0ca2, 0x0c63, 0x0c22,
+ 0x0bd8, 0x0b87, 0x0b25, 0x0aea, 0x0b06, 0x0b53,
+ 0x0bc0, 0x0c52, 0x0ce5, 0x0d53, 0x0d6c, 0x0d0e,
+ 0x0c61, 0x0ba0, 0x0ae2, 0x0a11, 0x091e, 0x0851,
+ 0x0802, 0x0848, 0x0919, 0x0a3b, 0x0b5d, 0x0c49,
+ 0x0cd5, 0x0cf8, 0x0cbd, 0x0bef, 0x0a83, 0x08e0,
+ 0x075d, 0x0635, 0x058d, 0x0543, 0x053c, 0x058a,
+ 0x061d, 0x06cd, 0x0760, 0x0792, 0x0760, 0x06ee,
+ 0x065b, 0x05a9, 0x04b7, 0x03a4, 0x02d2, 0x0269,
+ 0x026d, 0x02c8, 0x0337, 0x03d0, 0x04b7, 0x0590,
+ 0x061f, 0x0681, 0x06a6, 0x0699, 0x067c, 0x062f,
+ 0x05b4, 0x0542, 0x04d5, 0x0465, 0x0409, 0x03d2,
+ 0x03cf, 0x03fa, 0x0444, 0x04b2, 0x0542, 0x05ea,
+ 0x066f, 0x0670, 0x05d8, 0x04dd, 0x03ae, 0x0279,
+ 0x0159, 0x0036, 0xff29, 0xfe79, 0xfe4d, 0xfea9,
+ 0xff6f, 0x0065, 0x0147, 0x01df, 0x0229, 0x0220,
+ 0x01ad, 0x00d2, 0xff86, 0xfdb7, 0xfbd9, 0xfa80,
+ 0xf9ae, 0xf943, 0xf968, 0xfa36, 0xfb90, 0xfd27,
+ 0xfe8b, 0xff70, 0xffc0, 0xff92, 0xfefe, 0xfdf6,
+ 0xfc8a, 0xfb1b, 0xf9f2, 0xf92d, 0xf8db, 0xf8e3,
+ 0xf943, 0xfa1b, 0xfb45, 0xfc7c, 0xfda1, 0xfe8d,
+ 0xff29, 0xff7e, 0xff7c, 0xff3d, 0xff04, 0xfec1,
+ 0xfe62, 0xfe18, 0xfdf4, 0xfdf8, 0xfe39, 0xfe96,
+ 0xfef4, 0xff81, 0x0044, 0x0102, 0x0170, 0x0162,
+ 0x00f5, 0x0045, 0xff56, 0xfe60, 0xfd87, 0xfca2,
+ 0xfbbd, 0xfaf8, 0xfa32, 0xf996, 0xf97c, 0xf9b6,
+ 0xf9e8, 0xfa05, 0xfa10, 0xfa0b, 0xf9fd, 0xf9b4,
+ 0xf906, 0xf837, 0xf7a5, 0xf75b, 0xf747, 0xf769,
+ 0xf7cd, 0xf89c, 0xf9e0, 0xfb45, 0xfc6b, 0xfd3c,
+ 0xfdc2, 0xfdfe, 0xfde0, 0xfd62, 0xfcb7, 0xfc26,
+ 0xfbd7, 0xfbce, 0xfbf2, 0xfc34, 0xfca9, 0xfd3f,
+ 0xfdd4, 0xfe59, 0xfe9e, 0xfe81, 0xfe32, 0xfdc2,
+ 0xfd26, 0xfc8f, 0xfc10, 0xfb92, 0xfb31, 0xfb18,
+ 0xfb4d, 0xfbbb, 0xfc2a, 0xfc73, 0xfcce, 0xfd7c,
+ 0xfe6b, 0xff60, 0x0039, 0x00ea, 0x0162, 0x019b,
+ 0x0195, 0x0152, 0x010a, 0x00fd, 0x0116, 0x0125,
+ 0x0152, 0x01fe, 0x033e, 0x0490, 0x0572, 0x05de,
+ 0x05f6, 0x05d6, 0x0589, 0x04c7, 0x0376, 0x0210,
+ 0x00f2, 0x0015, 0xff7b, 0xff29, 0xff48, 0x0007,
+ 0x011b, 0x0213, 0x02d8, 0x0356, 0x037e, 0x035d,
+ 0x02ce, 0x01df, 0x00ef, 0x0011, 0xff2f, 0xfe64,
+ 0xfdbc, 0xfd3e, 0xfd07, 0xfd01, 0xfd1a, 0xfd65,
+ 0xfdd6, 0xfe53, 0xfed0, 0xff2e, 0xff6c, 0xff7b,
+ 0xff23, 0xfe82, 0xfdf3, 0xfd86, 0xfd38, 0xfcfe,
+ 0xfc96, 0xfc14, 0xfbe2, 0xfc03, 0xfc42, 0xfca2,
+ 0xfd2a, 0xfdd3, 0xfe76, 0xfeb4, 0xfe78, 0xfe04,
+ 0xfd67, 0xfc85, 0xfb51, 0xf9ec, 0xf8f4, 0xf901,
+ 0xf9e2, 0xfb16, 0xfc61, 0xfd83, 0xfe63, 0xff19,
+ 0xff50, 0xfeb2, 0xfdb4, 0xfcd3, 0xfc07, 0xfb57,
+ 0xfaf0, 0xfaeb, 0xfb76, 0xfc86, 0xfdb9, 0xfeea,
+ 0x0019, 0x0103, 0x017f, 0x0188, 0x010e, 0x0033,
+ 0xff3b, 0xfe43, 0xfd77, 0xfcfd, 0xfcdf, 0xfd37,
+ 0xfdf5, 0xfece, 0xff9e, 0x0067, 0x0107, 0x0162,
+ 0x0190, 0x019f, 0x0168, 0x00ce, 0xffed, 0xfeeb,
+ 0xfdf3, 0xfd31, 0xfc91, 0xfbe7, 0xfb4c, 0xfafc,
+ 0xfb08, 0xfb49, 0xfb8d, 0xfbdf, 0xfc59, 0xfcac,
+ 0xfc77, 0xfbb4, 0xfa98, 0xf97a, 0xf87a, 0xf756,
+ 0xf612, 0xf535, 0xf533, 0xf61b, 0xf7a3, 0xf94e,
+ 0xfada, 0xfc49, 0xfd8d, 0xfe5f, 0xfe76, 0xfdd7,
+ 0xfcd2, 0xfb9c, 0xfa4b, 0xf90c, 0xf82b, 0xf7de,
+ 0xf815, 0xf89a, 0xf95e, 0xfa5f, 0xfb6c, 0xfc42,
+ 0xfcb1, 0xfc9d, 0xfc16, 0xfb4f, 0xfa77, 0xf994,
+ 0xf8af, 0xf80e, 0xf7e0, 0xf800, 0xf85e, 0xf905,
+ 0xf9e2, 0xfae4, 0xfbf2, 0xfcdc, 0xfda5, 0xfe64,
+ 0xfeef, 0xff2d, 0xff45, 0xff65, 0xffa8, 0xffff,
+ 0x004f, 0x00a3, 0x0121, 0x01e9, 0x02f0, 0x040c,
+ 0x0548, 0x06c8, 0x084e, 0x095d, 0x09af, 0x096b,
+ 0x08ec, 0x0857, 0x0791, 0x06a0, 0x05b3, 0x0536,
+ 0x058c, 0x0682, 0x0798, 0x08ab, 0x09a9, 0x0a4d,
+ 0x0a72, 0x0a15, 0x094d, 0x0852, 0x073b, 0x0602,
+ 0x04ce, 0x03e4, 0x0381, 0x03a4, 0x03f9, 0x0454,
+ 0x04da, 0x0585, 0x060e, 0x0630, 0x05b8, 0x04bc,
+ 0x0394, 0x0257, 0x00ec, 0xff7e, 0xfe5e, 0xfda6,
+ 0xfd61, 0xfda2, 0xfe57, 0xff53, 0x006d, 0x016c,
+ 0x022a, 0x02b2, 0x02f1, 0x02c5, 0x0238, 0x0166,
+ 0x0067, 0xff6b, 0xfe90, 0xfdde, 0xfd7c, 0xfd7c,
+ 0xfdc4, 0xfe32, 0xfea5, 0xff09, 0xff7c, 0xfffe,
+ 0x0041, 0x0003, 0xff4b, 0xfe4d, 0xfd3f, 0xfc2f,
+ 0xfb14, 0xfa07, 0xf95d, 0xf95f, 0xf9f3, 0xfadd,
+ 0xfc00, 0xfd3b, 0xfe53, 0xff11, 0xff60, 0xff74,
+ 0xff8a, 0xff82, 0xff28, 0xfe89, 0xfdda, 0xfd73,
+ 0xfd9a, 0xfe2d, 0xfeff, 0x001b, 0x0191, 0x033a,
+ 0x04b3, 0x0590, 0x05d4, 0x05be, 0x056f, 0x0507,
+ 0x04aa, 0x045d, 0x0441, 0x0474, 0x04e5, 0x0589,
+ 0x0660, 0x074e, 0x0832, 0x08f6, 0x0991, 0x0a02,
+ 0x0a34, 0x09fe, 0x094d, 0x082e, 0x06d7, 0x058b,
+ 0x046f, 0x03ae, 0x037f, 0x03e5, 0x04c0, 0x05e3,
+ 0x070a, 0x0819, 0x0907, 0x0996, 0x0990, 0x090d,
+ 0x084b, 0x078f, 0x06f6, 0x0669, 0x05f6, 0x05cc,
+ 0x05ec, 0x0645, 0x06e0, 0x07cd, 0x0902, 0x0a56,
+ 0x0b75, 0x0c1f, 0x0c68, 0x0c82, 0x0c66, 0x0bdc,
+ 0x0ac7, 0x095e, 0x0811, 0x0743, 0x0704, 0x0728,
+ 0x078c, 0x0831, 0x0907, 0x09ca, 0x0a44, 0x0a76,
+ 0x0a64, 0x09f9, 0x0929, 0x07f8, 0x0684, 0x0514,
+ 0x03e5, 0x031f, 0x0301, 0x0398, 0x04b7, 0x0632,
+ 0x07b3, 0x08e3, 0x09d3, 0x0a8d, 0x0ae9, 0x0adf,
+ 0x0a6e, 0x09a8, 0x08d8, 0x081a, 0x076c, 0x06e6,
+ 0x066a, 0x05d8, 0x0551, 0x04e1, 0x049b, 0x04a6,
+ 0x04de, 0x050e, 0x0533, 0x052f, 0x04e6, 0x0455,
+ 0x035b, 0x0207, 0x00a5, 0xff64, 0xfe54, 0xfd9b,
+ 0xfd4e, 0xfd61, 0xfdb2, 0xfdfa, 0xfdf2, 0xfdad,
+ 0xfd7a, 0xfd62, 0xfd30, 0xfcb5, 0xfbda, 0xfac4,
+ 0xf9c7, 0xf90f, 0xf8b6, 0xf8dd, 0xf985, 0xfa9e,
+ 0xfbe6, 0xfd03, 0xfdd5, 0xfe4b, 0xfe2c, 0xfd7c,
+ 0xfc6d, 0xfb36, 0xfa2d, 0xf97d, 0xf90d, 0xf8df,
+ 0xf908, 0xf98e, 0xfa7b, 0xfbab, 0xfcd7, 0xfde0,
+ 0xfec0, 0xff68, 0xffb5, 0xff82, 0xfee1, 0xfe22,
+ 0xfd8e, 0xfd54, 0xfda0, 0xfe63, 0xff3f, 0x000c,
+ 0x00f5, 0x01f4, 0x02d8, 0x0384, 0x03d7, 0x03c5,
+ 0x037f, 0x0328, 0x02c0, 0x0262, 0x020c, 0x018a,
+ 0x00d2, 0x000e, 0xff65, 0xff02, 0xff0f, 0xff8c,
+ 0x0046, 0x00f0, 0x0156, 0x0189, 0x0188, 0x0126,
+ 0x006b, 0xff76, 0xfe4b, 0xfd22, 0xfc37, 0xfb88,
+ 0xfb19, 0xfaff, 0xfb19, 0xfb50, 0xfb98, 0xfbe3,
+ 0xfc4c, 0xfccd, 0xfd03, 0xfcc2, 0xfc2e, 0xfb6a,
+ 0xfa9a, 0xf9bf, 0xf8c8, 0xf7e3, 0xf74a, 0xf712,
+ 0xf758, 0xf808, 0xf8d2, 0xf98b, 0xfa3c, 0xfad5,
+ 0xfb2b, 0xfb21, 0xfac4, 0xfa43, 0xf9e1, 0xf9c9,
+ 0xf9f2, 0xfa2b, 0xfa55, 0xfa67, 0xfa61, 0xfa62,
+ 0xfa8d, 0xfada, 0xfb26, 0xfb4e, 0xfb42, 0xfb09,
+ 0xfab5, 0xfa3f, 0xf999, 0xf8de, 0xf833, 0xf7a5,
+ 0xf762, 0xf79d, 0xf82d, 0xf8ce, 0xf973, 0xfa1b,
+ 0xfaae, 0xfb27, 0xfb7f, 0xfba2, 0xfb9d, 0xfb8a,
+ 0xfb57, 0xfaec, 0xfa65, 0xfa03, 0xf9f6, 0xfa43,
+ 0xfadd, 0xfbab, 0xfc8f, 0xfd7b, 0xfe5e, 0xfef7,
+ 0xff0c, 0xfe90, 0xfda1, 0xfc9a, 0xfbca, 0xfb27,
+ 0xfaad, 0xfa85, 0xfabd, 0xfb40, 0xfbe0, 0xfc69,
+ 0xfcde, 0xfd37, 0xfd62, 0xfd85, 0xfdad, 0xfdbc,
+ 0xfdc8, 0xfde3, 0xfdfc, 0xfe20, 0xfe55, 0xfe77,
+ 0xfe78, 0xfe5c, 0xfe31, 0xfe24, 0xfe4c, 0xfea2,
+ 0xff1a, 0xff89, 0xffd3, 0x0016, 0x0055, 0x005a,
+ 0xfff5, 0xff1a, 0xfde2, 0xfca0, 0xfba6, 0xfaf2,
+ 0xfa73, 0xfa59, 0xfac5, 0xfb8f, 0xfc7f, 0xfd53,
+ 0xfdc1, 0xfdbf, 0xfd79, 0xfd04, 0xfc5b, 0xfb7f,
+ 0xfa99, 0xf9f0, 0xf9b2, 0xf9d0, 0xfa1d, 0xfa85,
+ 0xfb01, 0xfb93, 0xfc33, 0xfcc4, 0xfd26, 0xfd4f,
+ 0xfd28, 0xfcb5, 0xfc32, 0xfbc6, 0xfb79, 0xfb69,
+ 0xfb97, 0xfbdc, 0xfc36, 0xfcab, 0xfd28, 0xfdb1,
+ 0xfe45, 0xfeb1, 0xfee3, 0xfeea, 0xfec1, 0xfe76,
+ 0xfe3c, 0xfe18, 0xfe0a, 0xfe27, 0xfe55, 0xfe6b,
+ 0xfe79, 0xfeaa, 0xff22, 0xffdb, 0x0082, 0x00ec,
+ 0x014e, 0x01ce, 0x024f, 0x0294, 0x0263, 0x01d5,
+ 0x013e, 0x00cc, 0x0081, 0x005d, 0x0079, 0x00fe,
+ 0x01f2, 0x0333, 0x048c, 0x05ac, 0x065c, 0x0696,
+ 0x066e, 0x0605, 0x0558, 0x045c, 0x034d, 0x0261,
+ 0x01ba, 0x0195, 0x01eb, 0x0281, 0x0342, 0x03fe,
+ 0x0480, 0x04d2, 0x04ec, 0x04bf, 0x0453, 0x03a3,
+ 0x02c7, 0x01e8, 0x0108, 0x0027, 0xff53, 0xfe9f,
+ 0xfe30, 0xfe13, 0xfe50, 0xfede, 0xff62, 0xffb3,
+ 0x0015, 0x0087, 0x00cb, 0x00d9, 0x00b9, 0x007b,
+ 0x0020, 0xff84, 0xfead, 0xfdd3, 0xfd37, 0xfd17,
+ 0xfd7a, 0xfe2b, 0xfee2, 0xff60, 0xffc2, 0x0045,
+ 0x00be, 0x00d3, 0x0075, 0xffc9, 0xfef4, 0xfe0b,
+ 0xfd22, 0xfc66, 0xfc02, 0xfc11, 0xfca0, 0xfd88,
+ 0xfe96, 0xff8c, 0x0022, 0x004c, 0x001b, 0xff95,
+ 0xfee5, 0xfe3c, 0xfda4, 0xfd2a, 0xfcdd, 0xfcd1,
+ 0xfd1b, 0xfd9a, 0xfe21, 0xfea4, 0xff25, 0xffab,
+ 0x0022, 0x0061, 0x0065, 0x002f, 0xffca, 0xff6e,
+ 0xff27, 0xfee2, 0xfec1, 0xfef6, 0xffac, 0x00ea,
+ 0x0254, 0x0397, 0x04a1, 0x0563, 0x05dc, 0x060a,
+ 0x05d0, 0x0532, 0x0443, 0x032b, 0x0220, 0x0108,
+ 0xffbe, 0xfe7d, 0xfd89, 0xfd0f, 0xfd38, 0xfdda,
+ 0xfeb1, 0xffa5, 0x0099, 0x0179, 0x0228, 0x0271,
+ 0x025e, 0x0217, 0x01a8, 0x0138, 0x0106, 0x0139,
+ 0x01f0, 0x0324, 0x0495, 0x0611, 0x078b, 0x08ed,
+ 0x0a0d, 0x0ad2, 0x0b3f, 0x0b58, 0x0b22, 0x0aa8,
+ 0x09eb, 0x0904, 0x0846, 0x07f2, 0x081a, 0x08bd,
+ 0x09c6, 0x0b05, 0x0c4e, 0x0d82, 0x0e6a, 0x0ec9,
+ 0x0ea3, 0x0e21, 0x0d55, 0x0c53, 0x0b23, 0x09b5,
+ 0x0836, 0x071e, 0x06b7, 0x06ec, 0x0786, 0x084f,
+ 0x092c, 0x0a1f, 0x0b28, 0x0c23, 0x0cd8, 0x0d2e,
+ 0x0d48, 0x0d4c, 0x0d41, 0x0d22, 0x0ce3, 0x0c7f,
+ 0x0c1d, 0x0be5, 0x0be3, 0x0c24, 0x0cab, 0x0d4e,
+ 0x0dcb, 0x0df9, 0x0dcb, 0x0d44, 0x0c63, 0x0b21,
+ 0x0991, 0x07e7, 0x066e, 0x0565, 0x04e6, 0x04ed,
+ 0x055e, 0x0616, 0x06ea, 0x0794, 0x07df, 0x07b9,
+ 0x070d, 0x05e7, 0x0470, 0x02c0, 0x010a, 0xff8e,
+ 0xfe59, 0xfd9f, 0xfd8e, 0xfdd9, 0xfe42, 0xfed8,
+ 0xff7f, 0x0000, 0x002b, 0xffc9, 0xfef8, 0xfe12,
+ 0xfd38, 0xfc5d, 0xfb7c, 0xfa9b, 0xf9e2, 0xf97d,
+ 0xf98b, 0xfa00, 0xfa9e, 0xfb39, 0xfbc7, 0xfc41,
+ 0xfcad, 0xfcf6, 0xfcf4, 0xfca6, 0xfc13, 0xfb38,
+ 0xfa3f, 0xf954, 0xf887, 0xf800, 0xf7ef, 0xf863,
+ 0xf951, 0xfa9e, 0xfc26, 0xfda3, 0xfec3, 0xff75,
+ 0xffc8, 0xffc1, 0xff5f, 0xfe8f, 0xfd5c, 0xfc06,
+ 0xfacf, 0xf9de, 0xf949, 0xf922, 0xf980, 0xfa54,
+ 0xfb70, 0xfca9, 0xfdb3, 0xfe41, 0xfe57, 0xfe01,
+ 0xfd3b, 0xfc14, 0xfaa4, 0xf923, 0xf80a, 0xf7a3,
+ 0xf7e4, 0xf8b4, 0xf9ed, 0xfb5d, 0xfccf, 0xfe0b,
+ 0xfec8, 0xfed6, 0xfe51, 0xfd6d, 0xfc3e, 0xfae4,
+ 0xf9a3, 0xf8b4, 0xf84a, 0xf874, 0xf91f, 0xfa3d,
+ 0xfb97, 0xfcdf, 0xfe06, 0xff10, 0xffd5, 0x004c,
+ 0x007b, 0x005b, 0x0014, 0xffc0, 0xff4a, 0xfece,
+ 0xfe82, 0xfe5b, 0xfe55, 0xfe8f, 0xff0d, 0xffc3,
+ 0x0098, 0x0153, 0x01c9, 0x0214, 0x023a, 0x020e,
+ 0x0174, 0x007d, 0xff5e, 0xfe5b, 0xfda6, 0xfd48,
+ 0xfd33, 0xfd6e, 0xfe19, 0xff3c, 0x00ae, 0x021b,
+ 0x0314, 0x0365, 0x032b, 0x028e, 0x01ab, 0x008c,
+ 0xff41, 0xfe04, 0xfd1d, 0xfcb5, 0xfce1, 0xfd93,
+ 0xfe99, 0xffbe, 0x00c0, 0x016f, 0x01c9, 0x01c4,
+ 0x0156, 0x0098, 0xffa1, 0xfe75, 0xfd2e, 0xfbfa,
+ 0xfb1b, 0xfaa6, 0xfa85, 0xfabf, 0xfb6c, 0xfc76,
+ 0xfd9e, 0xfeaa, 0xff7a, 0xfffd, 0x001c, 0xffe8,
+ 0xff8a, 0xff0c, 0xfe75, 0xfdd5, 0xfd28, 0xfc7e,
+ 0xfc00, 0xfbdb, 0xfc35, 0xfcf0, 0xfdc0, 0xfe86,
+ 0xff39, 0xffc9, 0x0019, 0xfff9, 0xff3a, 0xfde5,
+ 0xfc49, 0xfad0, 0xf99e, 0xf8b4, 0xf828, 0xf7eb,
+ 0xf817, 0xf8fa, 0xfa5c, 0xfbb0, 0xfca8, 0xfd08,
+ 0xfcc3, 0xfc08, 0xfae5, 0xf983, 0xf82d, 0xf705,
+ 0xf645, 0xf633, 0xf6cd, 0xf7fc, 0xf987, 0xfb09,
+ 0xfc45, 0xfd20, 0xfd88, 0xfd8b, 0xfd31, 0xfc7d,
+ 0xfb8e, 0xfa7b, 0xf97c, 0xf8d6, 0xf893, 0xf8b3,
+ 0xf937, 0xfa0a, 0xfb19, 0xfc44, 0xfd63, 0xfe6c,
+ 0xff3c, 0xffb6, 0xffe7, 0xffbb, 0xff39, 0xfea3,
+ 0xfe00, 0xfd4e, 0xfcb3, 0xfc3f, 0xfc1e, 0xfc96,
+ 0xfd9d, 0xfeeb, 0x0033, 0x0147, 0x0235, 0x0301,
+ 0x0388, 0x03b7, 0x035e, 0x0270, 0x0153, 0x0056,
+ 0xff97, 0xff32, 0xff2b, 0xff92, 0x008c, 0x01fc,
+ 0x039e, 0x052d, 0x0649, 0x06ca, 0x06c8, 0x064e,
+ 0x0579, 0x0465, 0x031c, 0x01db, 0x00da, 0x0035,
+ 0x0029, 0x00cb, 0x01cb, 0x02db, 0x03d3, 0x048c,
+ 0x04ea, 0x04dc, 0x045b, 0x037d, 0x0262, 0x0127,
+ 0xffec, 0xfedb, 0xfe22, 0xfdb6, 0xfd91, 0xfdd5,
+ 0xfe5f, 0xfee5, 0xff63, 0xffdd, 0x003c, 0x0081,
+ 0x008e, 0x003c, 0xffac, 0xff12, 0xfe7a, 0xfdce,
+ 0xfd16, 0xfc87, 0xfc39, 0xfc38, 0xfcad, 0xfd70,
+ 0xfe25, 0xfecb, 0xff73, 0xfff2, 0x0024, 0xffd9,
+ 0xfef0, 0xfdb2, 0xfc7d, 0xfb8c, 0xfb16, 0xfb29,
+ 0xfbac, 0xfc8e, 0xfdc2, 0xff29, 0x0077, 0x016e,
+ 0x01eb, 0x01bf, 0x00fe, 0xfff4, 0xfeb6, 0xfd63,
+ 0xfc46, 0xfb84, 0xfb41, 0xfb93, 0xfc55, 0xfd70,
+ 0xfebb, 0xfff4, 0x0119, 0x022f, 0x0317, 0x03c6,
+ 0x0406, 0x03c0, 0x0342, 0x02b7, 0x021d, 0x019d,
+ 0x015c, 0x0179, 0x01fa, 0x02b5, 0x0383, 0x0433,
+ 0x04a5, 0x04f3, 0x0515, 0x04dd, 0x046a, 0x03c3,
+ 0x02ca, 0x01b0, 0x00ae, 0xffb4, 0xfeae, 0xfdc7,
+ 0xfd5b, 0xfd93, 0xfe35, 0xff0c, 0x0009, 0x010c,
+ 0x01fd, 0x02d2, 0x035d, 0x0373, 0x0312, 0x024e,
+ 0x016b, 0x00be, 0x0057, 0x0031, 0x0065, 0x00fb,
+ 0x0200, 0x037c, 0x0527, 0x06bc, 0x0827, 0x0925,
+ 0x0995, 0x09ab, 0x0969, 0x08ba, 0x07cf, 0x06e4,
+ 0x0637, 0x0604, 0x0647, 0x06df, 0x0793, 0x0839,
+ 0x08ce, 0x0937, 0x0958, 0x0937, 0x08c0, 0x080e,
+ 0x0775, 0x06ee, 0x067a, 0x064d, 0x064c, 0x067b,
+ 0x0712, 0x07e8, 0x08d2, 0x09dd, 0x0af0, 0x0bf8,
+ 0x0ce1, 0x0d6d, 0x0d82, 0x0d35, 0x0caa, 0x0c12,
+ 0x0b84, 0x0af6, 0x0a66, 0x0a00, 0x0a00, 0x0a6c,
+ 0x0b0d, 0x0bb9, 0x0c44, 0x0c95, 0x0cbe, 0x0cbd,
+ 0x0c80, 0x0be9, 0x0adb, 0x0988, 0x0847, 0x0743,
+ 0x0692, 0x0628, 0x05ec, 0x05f1, 0x063a, 0x06b9,
+ 0x0765, 0x07ec, 0x07ff, 0x07ab, 0x0702, 0x061c,
+ 0x051d, 0x0401, 0x02db, 0x01e0, 0x0138, 0x00f1,
+ 0x0100, 0x014b, 0x01b4, 0x0212, 0x026b, 0x02cb,
+ 0x02ed, 0x02a3, 0x01f9, 0x00f3, 0xffb5, 0xfe5f,
+ 0xfcfd, 0xfbcd, 0xfaf9, 0xfa88, 0xfa7d, 0xfa9f,
+ 0xfac6, 0xfb11, 0xfb5e, 0xfb96, 0xfbdd, 0xfbf6,
+ 0xfbb1, 0xfb4a, 0xfadc, 0xfa71, 0xfa14, 0xf990,
+ 0xf8ed, 0xf878, 0xf847, 0xf87b, 0xf91f, 0xf9cb,
+ 0xfa58, 0xfaed, 0xfb78, 0xfc02, 0xfc94, 0xfcc7,
+ 0xfc60, 0xfb99, 0xfaa2, 0xf9b7, 0xf910, 0xf899,
+ 0xf846, 0xf846, 0xf89d, 0xf935, 0xf9f9, 0xfaaf,
+ 0xfb01, 0xfae5, 0xfa8b, 0xfa0d, 0xf963, 0xf88f,
+ 0xf7ab, 0xf6f7, 0xf6ae, 0xf6d4, 0xf75c, 0xf835,
+ 0xf927, 0xfa18, 0xfb0a, 0xfbd9, 0xfc64, 0xfc96,
+ 0xfc58, 0xfbe0, 0xfb54, 0xfa89, 0xf9b3, 0xf91e,
+ 0xf8c0, 0xf8b5, 0xf920, 0xf9c7, 0xfa90, 0xfb7b,
+ 0xfc5e, 0xfd2e, 0xfdde, 0xfe2f, 0xfe0e, 0xfdbb,
+ 0xfd83, 0xfd75, 0xfd6b, 0xfd47, 0xfd04, 0xfcae,
+ 0xfc78, 0xfc93, 0xfcf1, 0xfd68, 0xfdd5, 0xfe41,
+ 0xfece, 0xff7b, 0x0012, 0x004d, 0x0005, 0xff58,
+ 0xfe76, 0xfd94, 0xfce1, 0xfc54, 0xfbd9, 0xfba3,
+ 0xfbf4, 0xfcc3, 0xfdca, 0xfecd, 0xffa2, 0x002a,
+ 0x005d, 0x0040, 0xffdd, 0xff2a, 0xfe35, 0xfd4a,
+ 0xfcbb, 0xfc84, 0xfc94, 0xfce4, 0xfd41, 0xfda2,
+ 0xfe27, 0xfea8, 0xfefd, 0xff20, 0xfef1, 0xfe92,
+ 0xfe3f, 0xfde2, 0xfd6b, 0xfd07, 0xfcca, 0xfcbf,
+ 0xfcdb, 0xfd03, 0xfd42, 0xfdab, 0xfe38, 0xfee2,
+ 0xff98, 0x0043, 0x00ae, 0x00b7, 0x00a6, 0x00ae,
+ 0x0087, 0x0006, 0xff5d, 0xfec4, 0xfe70, 0xfe7e,
+ 0xfed7, 0xff53, 0xffcc, 0x003c, 0x00b4, 0x0133,
+ 0x018a, 0x0169, 0x00b1, 0xff95, 0xfe46, 0xfcff,
+ 0xfbfa, 0xfb29, 0xfa91, 0xfa74, 0xfad5, 0xfb82,
+ 0xfc59, 0xfd19, 0xfd83, 0xfd96, 0xfd66, 0xfcfa,
+ 0xfc52, 0xfb6a, 0xfa5d, 0xf96c, 0xf8d9, 0xf8b7,
+ 0xf8e5, 0xf94d, 0xf9ef, 0xfac6, 0xfbb1, 0xfc85,
+ 0xfd19, 0xfd42, 0xfce8, 0xfc4b, 0xfba7, 0xfaef,
+ 0xfa2a, 0xf97a, 0xf8ef, 0xf8af, 0xf8bd, 0xf8f4,
+ 0xf950, 0xf9c8, 0xfa4a, 0xfaef, 0xfba3, 0xfc25,
+ 0xfc74, 0xfcad, 0xfcda, 0xfd0d, 0xfd1a, 0xfcb5,
+ 0xfbfe, 0xfb4c, 0xfac6, 0xfa94, 0xfad4, 0xfb51,
+ 0xfbe5, 0xfcc9, 0xfdfd, 0xff46, 0x007f, 0x015e,
+ 0x019d, 0x016c, 0x0103, 0x0070, 0xffd0, 0xff2c,
+ 0xfea1, 0xfe7d, 0xfed7, 0xff97, 0x00a2, 0x01c1,
+ 0x02cd, 0x03bd, 0x0473, 0x04d5, 0x04d2, 0x0459,
+ 0x03a3, 0x02f8, 0x0272, 0x0236, 0x0231, 0x0225,
+ 0x022e, 0x027b, 0x02f2, 0x037b, 0x03d8, 0x03d3,
+ 0x0393, 0x033c, 0x02c8, 0x024a, 0x01be, 0x011f,
+ 0x009c, 0x0053, 0x003f, 0x005c, 0x0081, 0x009a,
+ 0x00ce, 0x012a, 0x0189, 0x01b7, 0x019e, 0x0164,
+ 0x012b, 0x00e8, 0x008a, 0x0001, 0xff45, 0xfe91,
+ 0xfe32, 0xfe2c, 0xfe5c, 0xfea8, 0xff0a, 0xffa3,
+ 0x008a, 0x0191, 0x0258, 0x02a3, 0x0270, 0x01cf,
+ 0x00e2, 0xffcc, 0xfe8f, 0xfd40, 0xfc25, 0xfb87,
+ 0xfb7a, 0xfbe8, 0xfca1, 0xfd59, 0xfde3, 0xfe4c,
+ 0xfe91, 0xfe85, 0xfe0c, 0xfd3e, 0xfc67, 0xfbd6,
+ 0xfba5, 0xfbcd, 0xfc47, 0xfcf4, 0xfdbe, 0xfeb6,
+ 0xffe5, 0x0123, 0x022a, 0x02cb, 0x032b, 0x037c,
+ 0x03b2, 0x03b1, 0x0360, 0x02b5, 0x01de, 0x011a,
+ 0x0086, 0x0024, 0xffeb, 0xffe8, 0x002c, 0x009f,
+ 0x013a, 0x01db, 0x0229, 0x022d, 0x022f, 0x01f9,
+ 0x0152, 0x0051, 0xfefe, 0xfd93, 0xfc72, 0xfba5,
+ 0xfb24, 0xfaf1, 0xfb07, 0xfb96, 0xfca5, 0xfdd9,
+ 0xfefa, 0xffd5, 0x0032, 0x0049, 0x0049, 0x001e,
+ 0xffd6, 0xff8f, 0xff83, 0x0008, 0x0109, 0x023f,
+ 0x038c, 0x04c7, 0x05d5, 0x06bc, 0x076a, 0x07c1,
+ 0x07a3, 0x0702, 0x0617, 0x052d, 0x0477, 0x040d,
+ 0x03d0, 0x03bd, 0x03fa, 0x048d, 0x056e, 0x067e,
+ 0x0774, 0x0826, 0x0886, 0x089c, 0x089f, 0x0893,
+ 0x085d, 0x081c, 0x07e3, 0x07be, 0x07df, 0x0848,
+ 0x08dc, 0x099f, 0x0a93, 0x0ba4, 0x0cbe, 0x0dba,
+ 0x0e6c, 0x0ede, 0x0f29, 0x0f35, 0x0ef0, 0x0e6d,
+ 0x0dba, 0x0d16, 0x0cc9, 0x0cb4, 0x0cb5, 0x0cf7,
+ 0x0d73, 0x0e0f, 0x0ed5, 0x0f9c, 0x1017, 0x1026,
+ 0x0fd9, 0x0f4b, 0x0e7f, 0x0d61, 0x0bfd, 0x0a89,
+ 0x0955, 0x0892, 0x0843, 0x085c, 0x08b1, 0x0921,
+ 0x09b9, 0x0a57, 0x0ac1, 0x0adb, 0x0a78, 0x09aa,
+ 0x08b7, 0x07a2, 0x0681, 0x058c, 0x04ab, 0x03d3,
+ 0x032c, 0x02d2, 0x02e7, 0x035d, 0x03e1, 0x044c,
+ 0x0476, 0x0438, 0x03ac, 0x02e7, 0x01e9, 0x00c6,
+ 0xff7f, 0xfe27, 0xfd06, 0xfc4e, 0xfc08, 0xfc19,
+ 0xfc57, 0xfca4, 0xfce2, 0xfcfc, 0xfcf1, 0xfccc,
+ 0xfc97, 0xfc3a, 0xfb91, 0xfaab, 0xf9c0, 0xf908,
+ 0xf89d, 0xf86f, 0xf87d, 0xf8d7, 0xf979, 0xfa5c,
+ 0xfb5f, 0xfc49, 0xfce2, 0xfcfc, 0xfcb0, 0xfc2e,
+ 0xfb5b, 0xfa40, 0xf926, 0xf823, 0xf76e, 0xf753,
+ 0xf7a3, 0xf810, 0xf88f, 0xf92f, 0xf9f3, 0xfab5,
+ 0xfb30, 0xfb46, 0xfb00, 0xfa6b, 0xf997, 0xf8ae,
+ 0xf802, 0xf7a3, 0xf76b, 0xf770, 0xf7cf, 0xf87f,
+ 0xf974, 0xfa88, 0xfba5, 0xfcc0, 0xfd85, 0xfdc9,
+ 0xfdcf, 0xfdb7, 0xfd74, 0xfcfc, 0xfc45, 0xfb71,
+ 0xfabf, 0xfa53, 0xfa4b, 0xfaaf, 0xfb5b, 0xfc32,
+ 0xfd22, 0xfe12, 0xfeec, 0xffa7, 0x0026, 0x002f,
+ 0xffac, 0xfed6, 0xfdf2, 0xfd26, 0xfc90, 0xfc46,
+ 0xfc3e, 0xfc6a, 0xfce8, 0xfde2, 0xff34, 0x0086,
+ 0x0190, 0x0220, 0x023a, 0x01fd, 0x0175, 0x009a,
+ 0xff80, 0xfe63, 0xfd8a, 0xfd18, 0xfd24, 0xfd9d,
+ 0xfe59, 0xff51, 0x0063, 0x014b, 0x01e1, 0x01fe,
+ 0x018e, 0x00c4, 0xffcb, 0xfec0, 0xfdda, 0xfd1d,
+ 0xfc8f, 0xfc5c, 0xfc85, 0xfcf9, 0xfdaf, 0xfe79,
+ 0xff22, 0xff85, 0xff7b, 0xff19, 0xfe99, 0xfe20,
+ 0xfdae, 0xfd20, 0xfc7a, 0xfbef, 0xfba0, 0xfb9f,
+ 0xfbfa, 0xfc9c, 0xfd5a, 0xfe0d, 0xfea7, 0xff2b,
+ 0xff8d, 0xffca, 0xffdb, 0xffa2, 0xff18, 0xfe56,
+ 0xfd7c, 0xfcc4, 0xfc68, 0xfc76, 0xfccb, 0xfd34,
+ 0xfdb8, 0xfe80, 0xff75, 0x0059, 0x00e6, 0x00e5,
+ 0x0067, 0xff94, 0xfe70, 0xfd12, 0xfbad, 0xfa68,
+ 0xf95f, 0xf8d5, 0xf916, 0xf9f9, 0xfb09, 0xfc30,
+ 0xfd70, 0xfe76, 0xff0c, 0xff2c, 0xfec9, 0xfdf7,
+ 0xfcd9, 0xfba3, 0xfaa6, 0xf9fb, 0xf991, 0xf97a,
+ 0xf9b3, 0xfa2a, 0xfaf0, 0xfbec, 0xfce4, 0xfda9,
+ 0xfe11, 0xfe14, 0xfdcf, 0xfd57, 0xfca8, 0xfbc5,
+ 0xfad0, 0xf9f5, 0xf954, 0xf910, 0xf93b, 0xf9a9,
+ 0xfa45, 0xfb28, 0xfc38, 0xfd3a, 0xfe0a, 0xfe88,
+ 0xfebb, 0xfecf, 0xfeb0, 0xfe3e, 0xfda1, 0xfcfd,
+ 0xfc77, 0xfc38, 0xfc43, 0xfc96, 0xfd45, 0xfe43,
+ 0xff7a, 0x00ce, 0x01f0, 0x0292, 0x029c, 0x023d,
+ 0x01c9, 0x013e, 0x007a, 0xffba, 0xff3e, 0xff14,
+ 0xff67, 0x0048, 0x016f, 0x029a, 0x039d, 0x0451,
+ 0x04b9, 0x04cd, 0x0476, 0x03cf, 0x0303, 0x0232,
+ 0x018d, 0x0139, 0x0136, 0x018a, 0x021c, 0x02bd,
+ 0x037a, 0x045e, 0x0521, 0x057a, 0x0571, 0x051c,
+ 0x047f, 0x03b2, 0x02d1, 0x01d9, 0x00d1, 0xffe7,
+ 0xff40, 0xfeea, 0xfef2, 0xff45, 0xffb6, 0x0042,
+ 0x00f6, 0x01a3, 0x0213, 0x023e, 0x022f, 0x01fd,
+ 0x01af, 0x0121, 0x005a, 0xffa3, 0xff1d, 0xfedd,
+ 0xfef8, 0xff50, 0xffc2, 0x0058, 0x0111, 0x01c1,
+ 0x0239, 0x0245, 0x01cc, 0x00e3, 0xffa8, 0xfe43,
+ 0xfcea, 0xfbc1, 0xfae1, 0xfa73, 0xfa97, 0xfb2a,
+ 0xfbe9, 0xfcc1, 0xfdb5, 0xfe9e, 0xff49, 0xff95,
+ 0xff7d, 0xff21, 0xfe97, 0xfdf4, 0xfd6a, 0xfd18,
+ 0xfd09, 0xfd4e, 0xfdd1, 0xfe90, 0xff9e, 0x00cf,
+ 0x01ef, 0x02e7, 0x038f, 0x03cf, 0x03c0, 0x0382,
+ 0x0342, 0x030a, 0x02ad, 0x023b, 0x01dc, 0x018d,
+ 0x0160, 0x016b, 0x0194, 0x01b6, 0x01be, 0x01ad,
+ 0x0183, 0x012e, 0x00a6, 0x0000, 0xff37, 0xfe2f,
+ 0xfd06, 0xfc08, 0xfb5e, 0xfb1a, 0xfb50, 0xfbee,
+ 0xfcd5, 0xfdf9, 0xff36, 0x0055, 0x013d, 0x01c4,
+ 0x01dc, 0x01ac, 0x013c, 0x0084, 0xffbd, 0xff32,
+ 0xff0d, 0xff5a, 0x000b, 0x00ff, 0x0222, 0x035f,
+ 0x048d, 0x0581, 0x060c, 0x05f9, 0x0552, 0x046c,
+ 0x0382, 0x02b9, 0x0228, 0x01b2, 0x0168, 0x0197,
+ 0x0235, 0x02fb, 0x03df, 0x04d8, 0x05ba, 0x066f,
+ 0x06e6, 0x070d, 0x06f9, 0x06cc, 0x06a8, 0x0699,
+ 0x0685, 0x0668, 0x066c, 0x06a0, 0x070a, 0x07cf,
+ 0x08d2, 0x09c4, 0x0a9a, 0x0b63, 0x0c22, 0x0ce2,
+ 0x0d77, 0x0daa, 0x0d92, 0x0d38, 0x0c99, 0x0bf7,
+ 0x0b71, 0x0aff, 0x0ac8, 0x0ad0, 0x0b08, 0x0b88,
+ 0x0c3a, 0x0ce1, 0x0d5c, 0x0d8b, 0x0d69, 0x0d11,
+ 0x0c74, 0x0b86, 0x0a78, 0x098a, 0x08d7, 0x086b,
+ 0x084e, 0x0866, 0x08a9, 0x0938, 0x09f4, 0x0a86,
+ 0x0abf, 0x0a74, 0x099a, 0x0888, 0x0781, 0x0691,
+ 0x05ce, 0x0526, 0x049a, 0x0464, 0x047b, 0x04b5,
+ 0x0504, 0x053b, 0x0538, 0x0519, 0x04d5, 0x044e,
+ 0x03a2, 0x02f4, 0x0246, 0x0191, 0x00bc, 0xffd8,
+ 0xff1f, 0xfeb1, 0xfe86, 0xfea2, 0xfeef, 0xff2f,
+ 0xff44, 0xff42, 0xff37, 0xff07, 0xfe8c, 0xfddb,
+ 0xfd0b, 0xfc1f, 0xfb47, 0xfaa5, 0xfa2c, 0xf9ea,
+ 0xf9fa, 0xfa4f, 0xfad4, 0xfb82, 0xfc4a, 0xfd01,
+ 0xfd63, 0xfd5e, 0xfd09, 0xfc53, 0xfb45, 0xfa28,
+ 0xf921, 0xf82f, 0xf785, 0xf74d, 0xf769, 0xf7ba,
+ 0xf84c, 0xf910, 0xf9da, 0xfa8d, 0xfafd, 0xfafe,
+ 0xfaa7, 0xfa18, 0xf965, 0xf8be, 0xf83e, 0xf7df,
+ 0xf7a8, 0xf7a5, 0xf7e3, 0xf86e, 0xf92b, 0xf9fd,
+ 0xfac5, 0xfb64, 0xfbd6, 0xfc17, 0xfc21, 0xfc0e,
+ 0xfbe0, 0xfb76, 0xfac2, 0xf9e9, 0xf93c, 0xf8e0,
+ 0xf8c3, 0xf8d9, 0xf915, 0xf96f, 0xf9f7, 0xfa9b,
+ 0xfb2f, 0xfba1, 0xfbe0, 0xfbe0, 0xfbb9, 0xfb84,
+ 0xfb4a, 0xfafb, 0xfaa3, 0xfa79, 0xfa88, 0xfac2,
+ 0xfb48, 0xfc06, 0xfcc2, 0xfd81, 0xfe3e, 0xfebf,
+ 0xfed4, 0xfe93, 0xfe31, 0xfdbe, 0xfd3d, 0xfcce,
+ 0xfc93, 0xfcaa, 0xfd14, 0xfda5, 0xfe47, 0xfeea,
+ 0xff5a, 0xff87, 0xff8d, 0xff61, 0xfeef, 0xfe4e,
+ 0xfda1, 0xfcfb, 0xfc6c, 0xfc0b, 0xfbdc, 0xfbd4,
+ 0xfc00, 0xfc6d, 0xfd1a, 0xfdea, 0xfe9e, 0xff0c,
+ 0xff34, 0xff30, 0xff21, 0xfefb, 0xfea5, 0xfe37,
+ 0xfdb3, 0xfd24, 0xfccb, 0xfccf, 0xfd1b, 0xfd8c,
+ 0xfdf0, 0xfe51, 0xfed3, 0xff65, 0xffe8, 0x0034,
+ 0x003a, 0x0026, 0xfff8, 0xff97, 0xff30, 0xfec5,
+ 0xfe46, 0xfdd7, 0xfd8c, 0xfd73, 0xfda7, 0xfe0b,
+ 0xfe8d, 0xff2e, 0xffb7, 0xfffa, 0xffeb, 0xff84,
+ 0xfedb, 0xfe0a, 0xfd0f, 0xfc0d, 0xfb36, 0xfaa6,
+ 0xfa66, 0xfa8e, 0xfb12, 0xfbb6, 0xfc67, 0xfd2a,
+ 0xfdc8, 0xfe12, 0xfe07, 0xfdaa, 0xfd20, 0xfc8f,
+ 0xfbf6, 0xfb69, 0xfaf5, 0xfa9a, 0xfa80, 0xfabf,
+ 0xfb44, 0xfbe8, 0xfc77, 0xfcc4, 0xfcc9, 0xfc97,
+ 0xfc50, 0xfbf8, 0xfb80, 0xfaf5, 0xfa5b, 0xf9bd,
+ 0xf941, 0xf904, 0xf90d, 0xf93c, 0xf96e, 0xf9b2,
+ 0xfa09, 0xfa67, 0xfae1, 0xfb4e, 0xfb77, 0xfb77,
+ 0xfb4e, 0xfafe, 0xfac1, 0xfaa6, 0xfaa1, 0xfab9,
+ 0xfae5, 0xfb34, 0xfbbc, 0xfc74, 0xfd4e, 0xfe25,
+ 0xfecf, 0xff53, 0xffa7, 0xffac, 0xff71, 0xff07,
+ 0xfe78, 0xfde4, 0xfd72, 0xfd4a, 0xfd80, 0xfdff,
+ 0xfeb6, 0xff9b, 0x00a0, 0x01b3, 0x0295, 0x030b,
+ 0x0316, 0x02d9, 0x0267, 0x01ce, 0x0122, 0x007a,
+ 0xfffc, 0xffbe, 0xffc8, 0x0035, 0x00fb, 0x01bf,
+ 0x025a, 0x02d0, 0x0308, 0x030a, 0x02eb, 0x02a7,
+ 0x024a, 0x01c6, 0x0111, 0x0069, 0xffe5, 0xff74,
+ 0xff4e, 0xff7d, 0xffc1, 0x0009, 0x006e, 0x011d,
+ 0x020b, 0x02e2, 0x0386, 0x03eb, 0x03e2, 0x038e,
+ 0x031d, 0x028c, 0x01f0, 0x014c, 0x009f, 0x0023,
+ 0x0000, 0x0031, 0x00a1, 0x0114, 0x016b, 0x01a5,
+ 0x01ab, 0x016e, 0x00e4, 0x0012, 0xff1c, 0xfe19,
+ 0xfd32, 0xfc96, 0xfc4f, 0xfc60, 0xfcc3, 0xfd54,
+ 0xfe08, 0xfeb9, 0xff1a, 0xff30, 0xff1e, 0xfeeb,
+ 0xfeab, 0xfe79, 0xfe62, 0xfe60, 0xfe7a, 0xfed6,
+ 0xff74, 0x0037, 0x0124, 0x0213, 0x02ca, 0x034e,
+ 0x03a0, 0x03b8, 0x03a7, 0x036c, 0x030a, 0x0284,
+ 0x01c1, 0x00e8, 0x0043, 0xffdb, 0xff9c, 0xff7e,
+ 0xff65, 0xff3f, 0xff22, 0xff29, 0xff3c, 0xff38,
+ 0xff10, 0xfea9, 0xfe04, 0xfd59, 0xfcba, 0xfc21,
+ 0xfb8f, 0xfaf7, 0xfa82, 0xfa71, 0xfab7, 0xfb47,
+ 0xfc2c, 0xfd33, 0xfe27, 0xfef5, 0xff8f, 0xffe3,
+ 0xffd2, 0xff68, 0xfeda, 0xfe34, 0xfd94, 0xfd33,
+ 0xfd22, 0xfd80, 0xfe5a, 0xff63, 0x0067, 0x0164,
+ 0x0222, 0x0280, 0x0297, 0x0274, 0x021e, 0x01a6,
+ 0x010f, 0x007f, 0x0032, 0x0029, 0x0050, 0x00c8,
+ 0x019d, 0x028b, 0x0371, 0x0459, 0x0529, 0x05d6,
+ 0x0683, 0x072c, 0x07a1, 0x07cb, 0x07bb, 0x07aa,
+ 0x07b3, 0x07d5, 0x0828, 0x08ae, 0x0936, 0x09c5,
+ 0x0a87, 0x0b7d, 0x0c88, 0x0d72, 0x0e06, 0x0e50,
+ 0x0e6c, 0x0e52, 0x0e12, 0x0dc2, 0x0d62, 0x0d00,
+ 0x0cb7, 0x0caa, 0x0ce8, 0x0d51, 0x0ddd, 0x0e91,
+ 0x0f18, 0x0f43, 0x0f39, 0x0ef5, 0x0e79, 0x0df1,
+ 0x0d4d, 0x0c8e, 0x0bf6, 0x0b87, 0x0b3b, 0x0b3f,
+ 0x0b90, 0x0bff, 0x0c5b, 0x0c82, 0x0c7b, 0x0c4d,
+ 0x0bd8, 0x0b1e, 0x0a4e, 0x096b, 0x0865, 0x0763,
+ 0x0696, 0x05f5, 0x058b, 0x0580, 0x05b9, 0x05f8,
+ 0x0627, 0x0627, 0x05f8, 0x05c4, 0x0576, 0x04ed,
+ 0x0446, 0x0385, 0x0293, 0x0198, 0x00db, 0x0069,
+ 0x001e, 0xffe2, 0xffbf, 0xffc6, 0xfffa, 0x0054,
+ 0x00a8, 0x00c0, 0x00a6, 0x0064, 0xffdb, 0xff05,
+ 0xfe03, 0xfcf7, 0xfbfc, 0xfb1f, 0xfa5d, 0xf9da,
+ 0xf9ca, 0xfa2c, 0xfad5, 0xfb94, 0xfc3a, 0xfca9,
+ 0xfcd1, 0xfcab, 0xfc47, 0xfbb1, 0xfae0, 0xf9e2,
+ 0xf8ed, 0xf84d, 0xf832, 0xf87a, 0xf8dc, 0xf95c,
+ 0xfa06, 0xfa8d, 0xfad1, 0xfaf9, 0xfaed, 0xfaaf,
+ 0xfa8c, 0xfa68, 0xfa0c, 0xf9bf, 0xf9ac, 0xf9c0,
+ 0xfa1a, 0xfaac, 0xfb38, 0xfbcb, 0xfc61, 0xfccf,
+ 0xfd2f, 0xfd9c, 0xfdf0, 0xfe0d, 0xfdec, 0xfd93,
+ 0xfd1a, 0xfc8e, 0xfc03, 0xfb96, 0xfb39, 0xfaf8,
+ 0xfb07, 0xfb5b, 0xfbce, 0xfc68, 0xfd1e, 0xfdb2,
+ 0xfdf8, 0xfde9, 0xfdac, 0xfd5b, 0xfcde, 0xfc58,
+ 0xfc0c, 0xfbe1, 0xfbb7, 0xfbb7, 0xfc0c, 0xfcc0,
+ 0xfdb8, 0xfea5, 0xff52, 0xffca, 0x0020, 0x004b,
+ 0x0031, 0xffcb, 0xff11, 0xfe28, 0xfd6b, 0xfd04,
+ 0xfce5, 0xfd20, 0xfdbe, 0xfeaa, 0xffb4, 0x0072,
+ 0x00c9, 0x00ea, 0x00b5, 0x0031, 0xffbf, 0xff40,
+ 0xfe79, 0xfda6, 0xfd08, 0xfcc0, 0xfcd5, 0xfd17,
+ 0xfd63, 0xfdcd, 0xfe6d, 0xff25, 0xffa5, 0xffe9,
+ 0x000c, 0xfff7, 0xffb4, 0xff5b, 0xfecd, 0xfe30,
+ 0xfdba, 0xfd62, 0xfd2c, 0xfd0e, 0xfd04, 0xfd42,
+ 0xfda7, 0xfe13, 0xfeb5, 0xff48, 0xff7e, 0xff94,
+ 0xff86, 0xff14, 0xfe70, 0xfdd0, 0xfd29, 0xfc7f,
+ 0xfc08, 0xfbf4, 0xfc2b, 0xfc94, 0xfd33, 0xfdd4,
+ 0xfe4e, 0xfeb0, 0xfed8, 0xfeb3, 0xfe6b, 0xfded,
+ 0xfd28, 0xfc77, 0xfbf1, 0xfb66, 0xfb1b, 0xfb48,
+ 0xfb9b, 0xfbfe, 0xfca3, 0xfd3a, 0xfd69, 0xfd5e,
+ 0xfd58, 0xfd60, 0xfd48, 0xfcc5, 0xfc06, 0xfb8a,
+ 0xfb69, 0xfb77, 0xfb88, 0xfb96, 0xfbd7, 0xfc57,
+ 0xfcd4, 0xfd3c, 0xfd88, 0xfd93, 0xfd5e, 0xfcff,
+ 0xfc75, 0xfbb4, 0xfad9, 0xfa32, 0xf9e3, 0xf9d7,
+ 0xfa07, 0xfa4c, 0xfa82, 0xfae4, 0xfb97, 0xfc6a,
+ 0xfd2d, 0xfdaa, 0xfdb9, 0xfd9c, 0xfd95, 0xfd76,
+ 0xfcfc, 0xfc3e, 0xfb9c, 0xfb4e, 0xfb28, 0xfb2a,
+ 0xfbaa, 0xfc99, 0xfda1, 0xfec3, 0xffd8, 0x0074,
+ 0x00b0, 0x00d9, 0x00c3, 0x004d, 0xffc5, 0xff57,
+ 0xfeea, 0xfe85, 0xfe5b, 0xfe99, 0xff56, 0x0059,
+ 0x0129, 0x01ac, 0x0227, 0x028c, 0x02aa, 0x02a4,
+ 0x0288, 0x0225, 0x017d, 0x00e0, 0x0077, 0x0037,
+ 0x0029, 0x004b, 0x006e, 0x00a1, 0x00fa, 0x013b,
+ 0x014d, 0x0152, 0x0155, 0x015d, 0x013c, 0x00bb,
+ 0x0027, 0xffcc, 0xffb0, 0xffdf, 0xfffa, 0xffba,
+ 0xffa8, 0x0007, 0x0081, 0x00f5, 0x014e, 0x017c,
+ 0x01ba, 0x01f5, 0x01dc, 0x018c, 0x0128, 0x0088,
+ 0xffcf, 0xff5d, 0xff2a, 0xfef1, 0xfed4, 0xff0e,
+ 0xff91, 0x0016, 0x0056, 0x0053, 0x0038, 0xffe1,
+ 0xff52, 0xfebb, 0xfdd1, 0xfc90, 0xfb98, 0xfb1b,
+ 0xfaec, 0xfb1f, 0xfbc4, 0xfcca, 0xfdf7, 0xfef1,
+ 0xff9e, 0x0007, 0x003c, 0x0043, 0xfff4, 0xff78,
+ 0xff32, 0xfefa, 0xfee3, 0xff54, 0x0008, 0x00b9,
+ 0x0189, 0x024f, 0x02fd, 0x039c, 0x03ef, 0x0432,
+ 0x04a0, 0x04b5, 0x0436, 0x0376, 0x02a6, 0x01d3,
+ 0x0109, 0x006e, 0x0027, 0xfff7, 0xffd4, 0x0014,
+ 0x0097, 0x00f9, 0x010b, 0x00c2, 0x0079, 0x0068,
+ 0x0015, 0xff5c, 0xfeab, 0xfe25, 0xfdaa, 0xfd47,
+ 0xfcfd, 0xfcb8, 0xfcb1, 0xfd36, 0xfdf8, 0xfe7a,
+ 0xfee2, 0xff4c, 0xff79, 0xff8d, 0xff7f, 0xff12,
+ 0xfe95, 0xfe25, 0xfd82, 0xfd0b, 0xfd00, 0xfd05,
+ 0xfd32, 0xfdcc, 0xfe9e, 0xff5f, 0xffc9, 0xffc5,
+ 0xff9f, 0xff7c, 0xff4f, 0xff17, 0xfec1, 0xfe72,
+ 0xfe78, 0xfead, 0xfee1, 0xff4b, 0xfffa, 0x00b1,
+ 0x015a, 0x01f0, 0x0250, 0x0288, 0x02f0, 0x03a0,
+ 0x043e, 0x047b, 0x0473, 0x0484, 0x04c5, 0x04e7,
+ 0x04eb, 0x0549, 0x0622, 0x072c, 0x081f, 0x08da,
+ 0x0965, 0x09c6, 0x0a10, 0x0a66, 0x0aa5, 0x0ab3,
+ 0x0acf, 0x0ac4, 0x0a69, 0x0a5d, 0x0aa4, 0x0aab,
+ 0x0adc, 0x0ba3, 0x0c95, 0x0da6, 0x0eb6, 0x0f22,
+ 0x0f1f, 0x0f1e, 0x0ea7, 0x0d9c, 0x0c8e, 0x0ba6,
+ 0x0afd, 0x0ac5, 0x0a9f, 0x0a79, 0x0aef, 0x0be1,
+ 0x0c90, 0x0ce5, 0x0d12, 0x0ceb, 0x0c5c, 0x0ba5,
+ 0x0af0, 0x0a35, 0x0993, 0x0931, 0x08d1, 0x0827,
+ 0x075f, 0x06b0, 0x0643, 0x066d, 0x06eb, 0x0728,
+ 0x075a, 0x07ae, 0x0799, 0x0711, 0x0668, 0x05a4,
+ 0x04f3, 0x0475, 0x03e9, 0x035c, 0x02bf, 0x01b6,
+ 0x00cb, 0x00db, 0x0183, 0x01eb, 0x01fe, 0x01e4,
+ 0x019a, 0x0146, 0x0102, 0x00a6, 0x001a, 0xff90,
+ 0xff22, 0xfe82, 0xfd47, 0xfbb0, 0xfa9b, 0xfa7c,
+ 0xfad8, 0xfb3b, 0xfbe4, 0xfcc5, 0xfcff, 0xfc6d,
+ 0xfbf4, 0xfb9e, 0xfacc, 0xf9e9, 0xf97d, 0xf919,
+ 0xf88f, 0xf855, 0xf8b3, 0xf98d, 0xfa8d, 0xfb81,
+ 0xfc4e, 0xfc8b, 0xfc53, 0xfc3a, 0xfbf2, 0xfb35,
+ 0xfaa3, 0xfa5a, 0xfa1d, 0xfa3e, 0xfaac, 0xfaf2,
+ 0xfb21, 0xfb5e, 0xfbbd, 0xfc55, 0xfce5, 0xfd22,
+ 0xfd30, 0xfd2a, 0xfcca, 0xfc0c, 0xfb93, 0xfb94,
+ 0xfb74, 0xfb1d, 0xfad5, 0xfa89, 0xfaa2, 0xfb45,
+ 0xfb7f, 0xfb33, 0xfb2f, 0xfb77, 0xfbdc, 0xfc39,
+ 0xfbf6, 0xfb26, 0xfa7b, 0xfa17, 0xf9f8, 0xfa2b,
+ 0xfa65, 0xfa6d, 0xfa72, 0xfae0, 0xfbc1, 0xfc7d,
+ 0xfcce, 0xfd2f, 0xfdde, 0xfe8b, 0xfec8, 0xfe6d,
+ 0xfda6, 0xfcca, 0xfc64, 0xfc9a, 0xfcbd, 0xfcb2,
+ 0xfcfb, 0xfd44, 0xfd6a, 0xfe01, 0xfe9e, 0xfeb5,
+ 0xfeb8, 0xfecb, 0xfe99, 0xfe0b, 0xfd38, 0xfca2,
+ 0xfc9b, 0xfcb7, 0xfcba, 0xfcb9, 0xfcd7, 0xfd70,
+ 0xfe5f, 0xff17, 0xff8f, 0xffc2, 0xffb0, 0xffbb,
+ 0xffc3, 0xff80, 0xff70, 0xffc9, 0xffed, 0xff7d,
+ 0xfefc, 0xfeea, 0xfef6, 0xff0c, 0xffa7, 0x0023,
+ 0xffd3, 0xffa5, 0xffe6, 0xffd3, 0xffb4, 0xffae,
+ 0xff37, 0xfebe, 0xfe69, 0xfd8d, 0xfcd3, 0xfd1d,
+ 0xfdd8, 0xfe77, 0xfee5, 0xfed3, 0xfe87, 0xfeb4,
+ 0xff18, 0xff05, 0xfea3, 0xfe34, 0xfd84, 0xfcd1,
+ 0xfc82, 0xfc17, 0xfb51, 0xfae7, 0xfb09, 0xfb6b,
+ 0xfc2a, 0xfd06, 0xfd75, 0xfd9f, 0xfdc3, 0xfd9f,
+ 0xfd04, 0xfc30, 0xfbaf, 0xfbcd, 0xfc30, 0xfc81,
+ 0xfca9, 0xfc73, 0xfc01, 0xfbc4, 0xfbea, 0xfc81,
+ 0xfd33, 0xfd50, 0xfcf5, 0xfca5, 0xfc36, 0xfbaf,
+ 0xfb83, 0xfb6d, 0xfaee, 0xfa31, 0xf994, 0xf94b,
+ 0xf966, 0xf9b9, 0xfa0a, 0xfa4a, 0xfaa2, 0xfb01,
+ 0xfb04, 0xfae5, 0xfb36, 0xfbac, 0xfbb1, 0xfb48,
+ 0xfa8e, 0xf9ba, 0xf935, 0xf912, 0xf95a, 0xfa1d,
+ 0xfade, 0xfb3f, 0xfbbe, 0xfca2, 0xfd5c, 0xfda8,
+ 0xfde7, 0xfe14, 0xfe0d, 0xfe82, 0xff65, 0xff82,
+ 0xfeee, 0xfe9b, 0xfe61, 0xfe56, 0xff15, 0x0025,
+ 0x010b, 0x0202, 0x02cf, 0x02e1, 0x01f7, 0x0074,
+ 0xff83, 0xff91, 0xffe3, 0x0038, 0x0085, 0x005b,
+ 0x0031, 0x00ae, 0x014e, 0x0193, 0x01b2, 0x01a6,
+ 0x012e, 0x009e, 0x0082, 0x00ab, 0x00bb, 0x0101,
+ 0x017a, 0x0191, 0x0172, 0x01b1, 0x021c, 0x0260,
+ 0x02bc, 0x0344, 0x0345, 0x028a, 0x023e, 0x02d1,
+ 0x0352, 0x03e4, 0x04ca, 0x04a6, 0x0340, 0x01cc,
+ 0x0059, 0xff29, 0xff03, 0xfeef, 0xfe32, 0xfe03,
+ 0xfeb8, 0xff77, 0x0002, 0x000e, 0xff5a, 0xfe78,
+ 0xfdbf, 0xfd1a, 0xfcdd, 0xfd01, 0xfd23, 0xfd9f,
+ 0xfe72, 0xfe7d, 0xfdc5, 0xfd90, 0xfdf9, 0xfe94,
+ 0xffa8, 0x007a, 0x0018, 0xffa1, 0xffee, 0xffd3,
+ 0xff30, 0xff25, 0xff3e, 0xfebb, 0xfe86, 0xff33,
+ 0x0025, 0x00f7, 0x0186, 0x01d9, 0x0263, 0x02f6,
+ 0x02cb, 0x01f7, 0x013a, 0x012e, 0x01d8, 0x021e,
+ 0x012f, 0x000a, 0xffa5, 0xffbc, 0x0023, 0x0074,
+ 0xfff2, 0xff37, 0xff04, 0xfecf, 0xfeb5, 0xff3b,
+ 0xff6b, 0xfec7, 0xfe46, 0xfe04, 0xfdb7, 0xfde8,
+ 0xfe32, 0xfdcb, 0xfd7e, 0xfe07, 0xfed9, 0xff6e,
+ 0xff9e, 0xffac, 0xffea, 0xff92, 0xfe42, 0xfd2a,
+ 0xfc72, 0xfb6e, 0xfb19, 0xfbff, 0xfcaa, 0xfc87,
+ 0xfc73, 0xfcac, 0xfcf2, 0xfd45, 0xfd87, 0xfd59,
+ 0xfc82, 0xfb6c, 0xfaf5, 0xfb72, 0xfc28, 0xfc36,
+ 0xfc1f, 0xfd1b, 0xfedd, 0x0014, 0x00b0, 0x018a,
+ 0x0318, 0x04ff, 0x0606, 0x0577, 0x0454, 0x03d3,
+ 0x03f8, 0x0454, 0x04b3, 0x04df, 0x04ba, 0x049a,
+ 0x04fb, 0x05bb, 0x068a, 0x075d, 0x07dd, 0x07fa,
+ 0x0863, 0x092b, 0x09d1, 0x0a64, 0x0ac8, 0x0aba,
+ 0x0aaf, 0x0ab7, 0x0a2d, 0x095d, 0x0949, 0x0a38,
+ 0x0bab, 0x0cf9, 0x0dd1, 0x0e81, 0x0fa5, 0x111b,
+ 0x11af, 0x10c3, 0x0f66, 0x0e6f, 0x0d71, 0x0c50,
+ 0x0b71, 0x0aa9, 0x09de, 0x096a, 0x0957, 0x09b4,
+ 0x0ad6, 0x0c48, 0x0ced, 0x0ca5, 0x0c2e, 0x0bba,
+ 0x0b0b, 0x0a27, 0x096a, 0x0986, 0x0a74, 0x0ac9,
+ 0x09f0, 0x0906, 0x0872, 0x07f2, 0x080d, 0x0888,
+ 0x083e, 0x0763, 0x06c1, 0x0647, 0x0607, 0x05ee,
+ 0x0536, 0x03ec, 0x02ed, 0x0296, 0x0350, 0x04e6,
+ 0x0586, 0x0493, 0x03ea, 0x0446, 0x0462, 0x03cb,
+ 0x030a, 0x0279, 0x0254, 0x0208, 0x008b, 0xfe4e,
+ 0xfc74, 0xfb7e, 0xfc03, 0xfd87, 0xfde9, 0xfcfa,
+ 0xfca9, 0xfd0d, 0xfd31, 0xfd43, 0xfd07, 0xfc1d,
+ 0xfb0d, 0xf981, 0xf768, 0xf6b0, 0xf7a2, 0xf81b,
+ 0xf7f6, 0xf86c, 0xf8f0, 0xf90d, 0xf986, 0xfa7f,
+ 0xfbf5, 0xfe06, 0xff5e, 0xfec4, 0xfd5d, 0xfc93,
+ 0xfc53, 0xfc62, 0xfca4, 0xfc9e, 0xfc49, 0xfbe4,
+ 0xfb6c, 0xfb27, 0xfb3f, 0xfb4c, 0xfb08, 0xfa87,
+ 0xfa52, 0xfb10, 0xfbed, 0xfb81, 0xfa87, 0xfa6a,
+ 0xfac0, 0xfa8b, 0xf9a7, 0xf8f1, 0xf9e3, 0xfc2a,
+ 0xfd7d, 0xfd60, 0xfd23, 0xfce2, 0xfca6, 0xfd33,
+ 0xfdba, 0xfd2b, 0xfca9, 0xfce0, 0xfc92, 0xfb9d,
+ 0xfb29, 0xfb55, 0xfbdf, 0xfc96, 0xfc93, 0xfbfa,
+ 0xfc4e, 0xfd70, 0xfde1, 0xfd98, 0xfd5f, 0xfd4f,
+ 0xfd46, 0xfd0a, 0xfc79, 0xfc5e, 0xfd72, 0xfec4,
+ 0xfef8, 0xfe68, 0xfe7d, 0xff83, 0x009f, 0x0142,
+ 0x0144, 0x009b, 0xffa9, 0xfee6, 0xfe44, 0xfda9,
+ 0xfd34, 0xfcb4, 0xfc0b, 0xfbce, 0xfcb1, 0xfe72,
+ 0xffb8, 0xff67, 0xfe54, 0xfe24, 0xfe8c, 0xfe49,
+ 0xfde3, 0xfe5c, 0xff40, 0x0004, 0x0028, 0xfe72,
+ 0xfb96, 0xfa77, 0xfb7a, 0xfc83, 0xfd3e, 0xfe18,
+ 0xfe12, 0xfd84, 0xfe21, 0xff00, 0xfe5e, 0xfd65,
+ 0xfd40, 0xfc8c, 0xfaec, 0xfa27, 0xfa92, 0xfb02,
+ 0xfb75, 0xfc79, 0xfdad, 0xfe56, 0xfe23, 0xfda0,
+ 0xfdf2, 0xff55, 0x00b0, 0x0106, 0x0011, 0xfe69,
+ 0xfd88, 0xfdeb, 0xfe66, 0xfec6, 0xffd1, 0x00a0,
+ 0x0065, 0x0086, 0x017a, 0x018a, 0x0035, 0xfe9b,
+ 0xfd8a, 0xfd8b, 0xfe3d, 0xfe18, 0xfd1e, 0xfceb,
+ 0xfd71, 0xfd5f, 0xfcb0, 0xfc42, 0xfc9d, 0xfdac,
+ 0xfe95, 0xfec6, 0xfeab, 0xfe8a, 0xfe6b, 0xfeb8,
+ 0xff1f, 0xfec9, 0xfdda, 0xfcf2, 0xfc79, 0xfcb2,
+ 0xfcc2, 0xfbd4, 0xfb3f, 0xfbd9, 0xfbd0, 0xfa95,
+ 0xfa0f, 0xfaa5, 0xfb42, 0xfbbf, 0xfc3e, 0xfce9,
+ 0xfe1b, 0xfec8, 0xfde1, 0xfcf1, 0xfd8a, 0xfec5,
+ 0xff86, 0xffb3, 0xff68, 0xff78, 0x0093, 0x0194,
+ 0x0138, 0x001e, 0xff4d, 0xfec9, 0xfe31, 0xfd85,
+ 0xfd3c, 0xfd67, 0xfd6e, 0xfd74, 0xfe47, 0xffaa,
+ 0x007a, 0x0008, 0xfe5f, 0xfc76, 0xfb80, 0xfb39,
+ 0xfab9, 0xfa40, 0xfa52, 0xfac3, 0xfb8e, 0xfc8f,
+ 0xfd2a, 0xfd92, 0xfedc, 0x012c, 0x0310, 0x0315,
+ 0x01ca, 0x00f1, 0x00cf, 0x00a4, 0x00cf, 0x0161,
+ 0x012f, 0x008f, 0x00f1, 0x01cc, 0x022f, 0x0270,
+ 0x021a, 0x0103, 0x0157, 0x038c, 0x0459, 0x0279,
+ 0x00ca, 0x00e8, 0x0116, 0xffda, 0xfdeb, 0xfccc,
+ 0xfd18, 0xfde9, 0xfdf7, 0xfd82, 0xfe06, 0xffb8,
+ 0x00de, 0x0074, 0xff6c, 0xfe9d, 0xfdd7, 0xfd0f,
+ 0xfc56, 0xfb9f, 0xfba8, 0xfce1, 0xfde4, 0xfd87,
+ 0xfcaa, 0xfcad, 0xfe17, 0x005d, 0x01e0, 0x01e2,
+ 0x01a1, 0x0182, 0x0068, 0xff05, 0xff69, 0x0154,
+ 0x02b6, 0x0287, 0x0131, 0xffdc, 0xffb3, 0x009c,
+ 0x0165, 0x0141, 0x0040, 0xfee3, 0xfda2, 0xfc7b,
+ 0xfb96, 0xfbfa, 0xfde5, 0xff8e, 0xff8e, 0xff04,
+ 0xff9a, 0x0124, 0x023c, 0x020e, 0x015d, 0x01b7,
+ 0x02f0, 0x02f1, 0x014c, 0x0025, 0x0081, 0x0185,
+ 0x02dd, 0x03ff, 0x034d, 0x0133, 0x002c, 0x0072,
+ 0x0019, 0xfed8, 0xfe01, 0xfe55, 0xff6b, 0x0031,
+ 0x0020, 0xffb4, 0xff14, 0xfe19, 0xfd87, 0xfdcd,
+ 0xfdf9, 0xfd6d, 0xfc60, 0xfb22, 0xfa8b, 0xfb2d,
+ 0xfc0f, 0xfca2, 0xfdc9, 0xffbc, 0x01bd, 0x02ed,
+ 0x01da, 0xfe90, 0xfc41, 0xfcc3, 0xfdd7, 0xfdb0,
+ 0xfd27, 0xfc9a, 0xfba9, 0xfb41, 0xfc45, 0xfddf,
+ 0xfed0, 0xfee6, 0xfecc, 0xfefb, 0xff02, 0xfe75,
+ 0xfe32, 0xff65, 0x018e, 0x0319, 0x039c, 0x03e2,
+ 0x040e, 0x03f4, 0x0499, 0x06ad, 0x08a4, 0x08e0,
+ 0x0800, 0x0781, 0x0837, 0x0a2c, 0x0c35, 0x0cc9,
+ 0x0bd0, 0x0a6b, 0x0988, 0x096b, 0x097d, 0x0919,
+ 0x0909, 0x0a62, 0x0c48, 0x0d43, 0x0d68, 0x0d1f,
+ 0x0c08, 0x0aa7, 0x0aca, 0x0ca7, 0x0e06, 0x0d84,
+ 0x0c57, 0x0bc8, 0x0ba9, 0x0beb, 0x0ceb, 0x0e00,
+ 0x0e0c, 0x0d0d, 0x0c21, 0x0c12, 0x0bc5, 0x0988,
+ 0x06b4, 0x067a, 0x088e, 0x09f5, 0x0a18, 0x0a11,
+ 0x09e9, 0x099e, 0x094f, 0x0855, 0x0752, 0x07f5,
+ 0x0921, 0x0871, 0x070a, 0x0788, 0x095d, 0x0a66,
+ 0x0a3a, 0x0955, 0x07f5, 0x06ba, 0x05dc, 0x0489,
+ 0x0342, 0x044f, 0x0760, 0x08d2, 0x0778, 0x0619,
+ 0x063c, 0x0699, 0x0618, 0x044d, 0x012c, 0xfe20,
+ 0xfc63, 0xfb1d, 0xf9b4, 0xf952, 0xfa74, 0xfc0c,
+ 0xfd40, 0xfdea, 0xfe25, 0xfdf3, 0xfcc8, 0xfa48,
+ 0xf7ac, 0xf6ca, 0xf7b2, 0xf89f, 0xf857, 0xf7a5,
+ 0xf7e9, 0xf929, 0xfacb, 0xfca5, 0xfdf1, 0xfd62,
+ 0xfb65, 0xf9c9, 0xf8f4, 0xf7da, 0xf641, 0xf550,
+ 0xf666, 0xf9c7, 0xfdc7, 0x001a, 0x00c5, 0x01bb,
+ 0x02f7, 0x0240, 0xff68, 0xfcac, 0xfb04, 0xfa3f,
+ 0xfadc, 0xfc19, 0xfc25, 0xfbf2, 0xfd52, 0xfea2,
+ 0xfe3c, 0xfdef, 0xfe65, 0xfd7e, 0xfb64, 0xfa7f,
+ 0xfb00, 0xfbec, 0xfd6a, 0xfee8, 0xff0c, 0xfe94,
+ 0xff08, 0xff51, 0xfd7c, 0xfac9, 0xfa47, 0xfc2e,
+ 0xfd77, 0xfc26, 0xf9db, 0xf983, 0xfb6e, 0xfd2a,
+ 0xfd64, 0xfd5f, 0xfd6d, 0xfc07, 0xf9d0, 0xf959,
+ 0xfa91, 0xfb6a, 0xfb72, 0xfabb, 0xf8e1, 0xf72b,
+ 0xf718, 0xf79e, 0xf7db, 0xf904, 0xfb3b, 0xfd25,
+ 0xfee9, 0x00f5, 0x023c, 0x02c6, 0x0415, 0x05b9,
+ 0x05ef, 0x04f3, 0x03f8, 0x02ed, 0x01ab, 0x00c2,
+ 0x0067, 0x0089, 0x00f5, 0x00c4, 0xffd6, 0xffed,
+ 0x0199, 0x023d, 0xffd0, 0xfbeb, 0xf96e, 0xf945,
+ 0xfa4a, 0xfb19, 0xfb5f, 0xfb72, 0xfb46, 0xfafa,
+ 0xfb46, 0xfc2a, 0xfcce, 0xfd39, 0xfdee, 0xfe0e,
+ 0xfccd, 0xfbf7, 0xfdaa, 0x004c, 0x00b6, 0xffaa,
+ 0x006d, 0x02e4, 0x0463, 0x04a0, 0x0458, 0x028a,
+ 0xffad, 0xfe94, 0xff20, 0xfe75, 0xfd0c, 0xfd70,
+ 0xfe68, 0xfd33, 0xfabc, 0xf996, 0xfa20, 0xfb46,
+ 0xfbd4, 0xfb13, 0xfa64, 0xfbad, 0xfd55, 0xfc77,
+ 0xf9fb, 0xf88c, 0xf88c, 0xf9fb, 0xfd22, 0xffd3,
+ 0x0035, 0x0072, 0x01a6, 0x00cc, 0xfd1d, 0xfa01,
+ 0xf911, 0xf96e, 0xfb14, 0xfd5b, 0xfe62, 0xfe34,
+ 0xfdf1, 0xfd6a, 0xfccf, 0xfc71, 0xfaaf, 0xf74c,
+ 0xf544, 0xf4f4, 0xf391, 0xf26f, 0xf53d, 0xf9c1,
+ 0xfb45, 0xfabb, 0xfb33, 0xfc3a, 0xfcd8, 0xfd2b,
+ 0xfc2a, 0xfa28, 0xfa15, 0xfc16, 0xfd16, 0xfcaa,
+ 0xfcb7, 0xfdbd, 0x0058, 0x050e, 0x08e6, 0x08b9,
+ 0x062f, 0x03f2, 0x0193, 0xfef4, 0xfd56, 0xfca1,
+ 0xfcbd, 0xfe66, 0x001c, 0xffc6, 0xfe43, 0xfca4,
+ 0xfab6, 0xfa45, 0xfcf1, 0xffd0, 0xffd8, 0xfe88,
+ 0xfd3e, 0xfaec, 0xf903, 0xfa35, 0xfcc6, 0xfde3,
+ 0xfe73, 0xff1e, 0xfed9, 0xff0d, 0x00f4, 0x01cc,
+ 0x00a0, 0x00b8, 0x024d, 0x020c, 0xffdb, 0xfe12,
+ 0xfd4e, 0xfd9e, 0xff1e, 0x00a3, 0x01f8, 0x048b,
+ 0x0756, 0x0731, 0x048d, 0x0275, 0x012e, 0xffd8,
+ 0xfee6, 0xfd92, 0xfba7, 0xfc01, 0xff6b, 0x02a8,
+ 0x03e8, 0x0461, 0x0509, 0x0510, 0x03b6, 0x0186,
+ 0xff4c, 0xfe39, 0xff8e, 0x01a1, 0x01fa, 0x0173,
+ 0x011e, 0x0075, 0x003a, 0x0102, 0x0162, 0x00a4,
+ 0xff7a, 0xfe11, 0xfc2d, 0xfab8, 0xfb65, 0xfdff,
+ 0xfffc, 0xff83, 0xfd86, 0xfc6a, 0xfc60, 0xfb45,
+ 0xf937, 0xf87c, 0xf96e, 0xfb3d, 0xfd3c, 0xfdc3,
+ 0xfd04, 0xfdd8, 0x0037, 0x018d, 0x0265, 0x046f,
+ 0x05c6, 0x0436, 0x01ee, 0x021e, 0x02ef, 0x0113,
+ 0xfecf, 0xfe84, 0xfde4, 0xfd5c, 0xfeb9, 0xff6c,
+ 0xff77, 0x00c7, 0x0174, 0x0217, 0x03b1, 0x0318,
+ 0x01a5, 0x01bd, 0x0088, 0xfdfa, 0xfb84, 0xf9aa,
+ 0xfac6, 0xfd2d, 0x00b1, 0x0939, 0x0fe2, 0x0e9b,
+ 0x0c9f, 0x0b31, 0x0752, 0x03b0, 0xfe88, 0xf984,
+ 0xfa3d, 0xfa04, 0xf5cc, 0xf5b6, 0xf904, 0xfb7e,
+ 0xfdf2, 0xfee5, 0xfdd0, 0xfa8a, 0xf48e, 0xf157,
+ 0xf258, 0xf13b, 0xeda2, 0xec03, 0xee4e, 0xf39b,
+ 0xf880, 0xfc5c, 0x0073, 0x01fb, 0x00ac, 0x000e,
+ 0xfe9e, 0xfb70, 0xfcac, 0x0356, 0x06c3, 0x051b,
+ 0x0610, 0x09b8, 0x09d8, 0x06ab, 0x034a, 0x0122,
+ 0xffea, 0xfd3f, 0xfb6d, 0xfe24, 0x012d, 0x0103,
+ 0xffd1, 0xfeb8, 0xfe2d, 0xfe34, 0xfded, 0xfe77,
+ 0x00f5, 0x04d8, 0x077e, 0x0703, 0x0661, 0x06f9,
+ 0x088e, 0x0c99, 0x0cf5, 0x07e2, 0x0885, 0x0c2d,
+ 0x0a8b, 0x0b48, 0x0e31, 0x0ce4, 0x0cef, 0x0e15,
+ 0x0df4, 0x10e3, 0x1234, 0x0f34, 0x0d55, 0x0c63,
+ 0x0e06, 0x11a1, 0x11be, 0x1385, 0x1537, 0x0d32,
+ 0x052f, 0x037d, 0x0062, 0x006c, 0x03f6, 0x020b,
+ 0x0275, 0x0a6e, 0x0f80, 0x112e, 0x13d4, 0x11e2,
+ 0x0b1d, 0x072b, 0x0701, 0x084b, 0x0b45, 0x0c3a,
+ 0x09d0, 0x0a3b, 0x0d35, 0x0f56, 0x122d, 0x117a,
+ 0x0d52, 0x0eb7, 0x1239, 0x12f9, 0x1414, 0x1109,
+ 0x0b26, 0x0945, 0x05c2, 0x00ab, 0xfe05, 0xf921,
+ 0xf75c, 0xfbca, 0xfd83, 0xfe67, 0xfe08, 0xf7f5,
+ 0xf6ad, 0xfa5b, 0xf7d1, 0xf235, 0xee1b, 0xee32,
+ 0xf54b, 0xfc38, 0x0107, 0x060d, 0x05f3, 0x02e3,
+ 0x014b, 0x0087, 0x032a, 0x03f3, 0xfe73, 0xf9db,
+ 0xf68b, 0xf795, 0x0359, 0x0d39, 0x0d18, 0x09c7,
+ 0x0388, 0xfd22, 0xfbce, 0xfd59, 0xffdc, 0xfcce,
+ 0xf204, 0xecb9, 0xf060, 0xf39a, 0xf413, 0xf510,
+ 0xf7de, 0xf810, 0xf5fa, 0xf8b9, 0xfb7a, 0xfb7d,
+ 0xfe5a, 0xfcf6, 0xf886, 0xf984, 0xf7cd, 0xf6e1,
+ 0xfac8, 0xf737, 0xfa61, 0x0ddc, 0x1984, 0x1a63,
+ 0x1357, 0xfc9b, 0xe894, 0xe147, 0xe322, 0xfa27,
+ 0x15ad, 0x1cc4, 0x1be1, 0x146f, 0x017b, 0xf3af,
+ 0xebf2, 0xe6bb, 0xeb46, 0xf1c7, 0xf6fe, 0x0093,
+ 0x0410, 0xfc50, 0xf4fe, 0xf27d, 0xef76, 0xed7e,
+ 0xf00d, 0xedc3, 0xe879, 0xf0a0, 0xfd94, 0x0892,
+ 0x1caf, 0x25bf, 0x1761, 0x09a9, 0xfebf, 0xf957,
+ 0x03bd, 0x0605, 0x0117, 0x0a0c, 0x0e7f, 0x0fbc,
+ 0x189a, 0x1307, 0x0b21, 0x0bd5, 0xf978, 0xe747,
+ 0xeb4d, 0xecd9, 0xf237, 0x022a, 0x05cb, 0x05ea,
+ 0x074f, 0xfa51, 0xecec, 0xe5d9, 0xd9b9, 0xd150,
+ 0xcfff, 0xd112, 0xdc5a, 0xed57, 0xf4e0, 0xf3c3,
+ 0xf130, 0xea79, 0xe054, 0xdef7, 0xe62d, 0xeeac,
+ 0xfc95, 0x0500, 0x016c, 0x08b3, 0x139c, 0x0ec0,
+ 0x0d56, 0x0b21, 0xf631, 0xe49d, 0xde99, 0xdf37,
+ 0xecd9, 0xf479, 0xf0b6, 0xf121, 0xe703, 0xd6e7,
+ 0xd3b6, 0xca8a, 0xc20e, 0xd278, 0xea37, 0x0161,
+ 0x182a, 0x18b5, 0x08c1, 0xfc2b, 0xf2bf, 0xf35b,
+ 0x0007, 0x08b0, 0x07c2, 0x054c, 0x055c, 0x0169,
+ 0xf94f, 0xf94a, 0xff5d, 0x0427, 0x0ba8, 0x124a,
+ 0x13f9, 0x101a, 0x02e4, 0xf6a9, 0xeebc, 0xe341,
+ 0xe354, 0xefa5, 0xf35a, 0xf5e9, 0xfb04, 0xf6b2,
+ 0xf195, 0xf0d8, 0xf2ab, 0xf900, 0xf87b, 0xf2a6,
+ 0xf380, 0xf346, 0xf157, 0xf51d, 0xfffb, 0x146c,
+ 0x22f8, 0x2358, 0x2665, 0x266f, 0x1f4a, 0x2086,
+ 0x1fb6, 0x194b, 0x1b35, 0x1ba8, 0x1a3c, 0x1d33,
+ 0x1969, 0x1784, 0x1cb1, 0x1acd, 0x17c6, 0x121e,
+ 0x0332, 0xfe7d, 0x018c, 0xfc80, 0xfab6, 0xfc07,
+ 0xfa03, 0x00d2, 0x0cf5, 0x1222, 0x10f2, 0x058e,
+ 0xf3b6, 0xef05, 0xf672, 0xf7bf, 0xfaa7, 0x09b3,
+ 0x108c, 0x0f3c, 0x19ca, 0x1c68, 0x0be8, 0xff1b,
+ 0xf305, 0xea94, 0xf6e8, 0x022b, 0x0520, 0x11ac,
+ 0x1a0a, 0x19ab, 0x17fe, 0x0ac1, 0xfe1d, 0xf9cb,
+ 0xeed5, 0xea16, 0xf238, 0xfab8, 0x08e1, 0x1136,
+ 0x0a54, 0x0c13, 0x11fc, 0x0dd5, 0x1315, 0x2241,
+ 0x2b86, 0x31f8, 0x33cd, 0x2ddb, 0x2a8b, 0x2deb,
+ 0x31a0, 0x342f, 0x39aa, 0x3c5c, 0x34f0, 0x2c21,
+ 0x268b, 0x23dc, 0x2cd2, 0x37be, 0x3773, 0x3914,
+ 0x3c3b, 0x3435, 0x2b02, 0x2952, 0x2dff, 0x358f,
+ 0x32cd, 0x28c9, 0x2854, 0x286b, 0x1c2c, 0x141f,
+ 0x1dda, 0x266d, 0x1fa0, 0x1c40, 0x232f, 0x22db,
+ 0x1be2, 0x15f2, 0x0f71, 0x0bac, 0x077a, 0x02cb,
+ 0x05c2, 0x065a, 0x0139, 0x012c, 0x02bf, 0x07cc,
+ 0x0b26, 0xfe38, 0xf7ca, 0xfd2b, 0xf196, 0xeab7,
+ 0xf7d5, 0xf953, 0xf847, 0x0043, 0xfaac, 0xf2b7,
+ 0xf1d4, 0xebe3, 0xeee2, 0xf558, 0xeb99, 0xe57d,
+ 0xe898, 0xe7c5, 0xec44, 0xee0c, 0xe2e3, 0xdfb3,
+ 0xe2f5, 0xdc7f, 0xd81a, 0xdac0, 0xdc78, 0xdd9e,
+ 0xda2a, 0xd5ff, 0xd9e4, 0xdadd, 0xd8b3, 0xdb53,
+ 0xd416, 0xcadf, 0xd4ac, 0xd9c6, 0xcf6e, 0xce96,
+ 0xd0ac, 0xca46, 0xc9a0, 0xce9e, 0xd329, 0xd537,
+ 0xcf1c, 0xc909, 0xc75c, 0xc5a5, 0xc911, 0xc8f9,
+ 0xc215, 0xc676, 0xc89e, 0xb927, 0xb07c, 0xb39a,
+ 0xb26b, 0xb0ae, 0xb3ad, 0xb8f0, 0xba20, 0xb71e,
+ 0xbd8e, 0xc74e, 0xc457, 0xbef5, 0xbe08, 0xbb77,
+ 0xb9b3, 0xbc7a, 0xc511, 0xca77, 0xc654, 0xc886,
+ 0xcef1, 0xcab7, 0xc8ba, 0xcdb1, 0xd1d6, 0xd728,
+ 0xd69d, 0xd614, 0xe209, 0xed02, 0xf497, 0xf92d,
+ 0xedc9, 0xdf5c, 0xd6e7, 0xd196, 0xd95f, 0xdee2,
+ 0xdf8f, 0xefde, 0xf31d, 0xe87f, 0xf79e, 0x00f7,
+ 0xf2a4, 0xf3c2, 0xfac2, 0xf5c8, 0xf07b, 0xedd8,
+ 0xf5ad, 0xfe53, 0xfe84, 0x0635, 0x0129, 0xee86,
+ 0xf2b9, 0xf127, 0xe584, 0xfd2c, 0x1131, 0x04f2,
+ 0xfdea, 0xf5ae, 0xed18, 0xf5ea, 0xf711, 0xf636,
+ 0x01b4, 0x01ab, 0xfc9e, 0xf974, 0xefd4, 0xf4fa,
+ 0x00df, 0xfc02, 0xf855, 0xf914, 0xf7e9, 0xfe47,
+ 0x00a2, 0xfc80, 0xfd91, 0xfc20, 0xfdcf, 0x05f7,
+ 0x0173, 0xfde9, 0x0b0f, 0x09c5, 0xf4fb, 0xf168,
+ 0xfa0e, 0xf2e1, 0xed03, 0xf518, 0xf2a8, 0xeb85,
+ 0xf270, 0xf588, 0xf392, 0xfae3, 0xfc44, 0xf44c,
+ 0xf3fe, 0xfd26, 0x0880, 0x0a0e, 0x01ee, 0x00cd,
+ 0x051b, 0x09a9, 0x1013, 0x0f99, 0x12a6, 0x21b2,
+ 0x223b, 0x1471, 0x10af, 0x0ed9, 0x04b8, 0xfb70,
+ 0xfbb1, 0x0612, 0x0c8f, 0x0902, 0x072d, 0x082f,
+ 0x09ae, 0x0e59, 0x0f73, 0x0a60, 0x082c, 0x0b92,
+ 0x09d4, 0x00f0, 0x02d9, 0x0b5a, 0x07f3, 0x0a86,
+ 0x1971, 0x1e4f, 0x1f78, 0x2017, 0x1746, 0x1446,
+ 0x1375, 0x0d51, 0x1395, 0x18dd, 0x0f60, 0x0942,
+ 0x05fc, 0x0526, 0x0a60, 0x0c1a, 0x1497, 0x1d7c,
+ 0x170c, 0x1b43, 0x20f7, 0x1380, 0x1b48, 0x2e14,
+ 0x229c, 0x1ae5, 0x23fe, 0x260a, 0x2b5f, 0x3017,
+ 0x2dfe, 0x31e9, 0x2f95, 0x2a0d, 0x317d, 0x3221,
+ 0x273e, 0x21d6, 0x2192, 0x25c4, 0x2b35, 0x3018,
+ 0x39ff, 0x3c93, 0x33bc, 0x2e14, 0x2b3f, 0x2c8d,
+ 0x33af, 0x358c, 0x3706, 0x3d26, 0x3fc2, 0x437c,
+ 0x497f, 0x4867, 0x3f5c, 0x364a, 0x3a4e, 0x433d,
+ 0x3e8a, 0x3ba6, 0x3f5d, 0x38a3, 0x3787, 0x3df3,
+ 0x3698, 0x3297, 0x33c8, 0x2671, 0x240a, 0x3325,
+ 0x35a3, 0x35ba, 0x3a5e, 0x2dbc, 0x2043, 0x2899,
+ 0x3232, 0x2c61, 0x2280, 0x206a, 0x21b7, 0x1eec,
+ 0x22d3, 0x316e, 0x35c3, 0x2ec9, 0x2e5a, 0x307f,
+ 0x3285, 0x395c, 0x3a9f, 0x37d8, 0x35e3, 0x274a,
+ 0x1a43, 0x1fe1, 0x1ec2, 0x18ca, 0x2535, 0x2a4c,
+ 0x1c9c, 0x1a46, 0x20bd, 0x1d70, 0x190e, 0x1da8,
+ 0x231e, 0x1d7f, 0x1813, 0x202d, 0x23fa, 0x2519,
+ 0x348a, 0x3497, 0x20f3, 0x281f, 0x3a5a, 0x2fb8,
+ 0x272b, 0x344c, 0x3247, 0x1e72, 0x1e6e, 0x2c29,
+ 0x25c1, 0x1c47, 0x2888, 0x29cc, 0x143d, 0x116f,
+ 0x21ab, 0x2289, 0x1aa3, 0x1c25, 0x1e7d, 0x1e08,
+ 0x22db, 0x25f3, 0x222a, 0x26e8, 0x2fb2, 0x2751,
+ 0x1d05, 0x1f64, 0x1a88, 0x1144, 0x1144, 0x0d4b,
+ 0x094e, 0x0e60, 0x0b2a, 0x05ed, 0x0de0, 0x1117,
+ 0x108c, 0x18d7, 0x1152, 0xfa82, 0xf682, 0xf7b2,
+ 0xec9a, 0xefa2, 0xfb49, 0xf86a, 0xf9b1, 0x0183,
+ 0x0254, 0x0d98, 0x1a2e, 0x102b, 0x07e3, 0x0a50,
+ 0x03a0, 0xfdc3, 0xfb82, 0xf5e3, 0xfae7, 0xfda0,
+ 0xf1ca, 0xf709, 0x0737, 0x004a, 0xf741, 0xfbd3,
+ 0xf6ad, 0xef5a, 0xf4dd, 0xf516, 0xee9e, 0xf16b,
+ 0xf5bd, 0xf163, 0xea44, 0xe98d, 0xf2f1, 0xf780,
+ 0xee57, 0xec6e, 0xef6c, 0xe388, 0xdf76, 0xe6fa,
+ 0xd6d1, 0xc541, 0xd55c, 0xe8c3, 0xec52, 0xeddf,
+ 0xeb39, 0xe5f6, 0xe450, 0xe6f2, 0xf234, 0xf2cd,
+ 0xddb5, 0xd718, 0xe2b5, 0xe11a, 0xe198, 0xef9d,
+ 0xefc7, 0xe7ee, 0xe79b, 0xdc6e, 0xcb76, 0xce29,
+ 0xddf7, 0xeb36, 0xef9f, 0xe992, 0xe667, 0xe69f,
+ 0xdfdc, 0xe597, 0xf425, 0xe57e, 0xd2f7, 0xe151,
+ 0xe769, 0xd8a3, 0xdf38, 0xef1a, 0xef0e, 0xf07d,
+ 0xf401, 0xf3ef, 0xf916, 0xf645, 0xecc5, 0xf238,
+ 0xf10b, 0xde14, 0xe157, 0xf4fb, 0xf322, 0xf350,
+ 0x06d9, 0x0a53, 0x0088, 0x0445, 0x01e5, 0xf35c,
+ 0xf506, 0xfb2c, 0xee66, 0xe5fc, 0xed6e, 0xe956,
+ 0xdc66, 0xe456, 0xf4f7, 0xf00d, 0xe35a, 0xe6de,
+ 0xef55, 0xf109, 0xf536, 0xfa4d, 0xf1c3, 0xddd4,
+ 0xd282, 0xd891, 0xdf96, 0xda68, 0xd74d, 0xe0f7,
+ 0xe6c7, 0xe13a, 0xe1af, 0xea1d, 0xe825, 0xdd8d,
+ 0xdab1, 0xdb3a, 0xd606, 0xd694, 0xe0bb, 0xe12c,
+ 0xd367, 0xc8e2, 0xc663, 0xca2c, 0xdaeb, 0xeaf3,
+ 0xe39b, 0xd598, 0xd68f, 0xd332, 0xc4ab, 0xc577,
+ 0xd11c, 0xcda9, 0xc45f, 0xc49d, 0xc71d, 0xcc2b,
+ 0xd577, 0xd741, 0xd481, 0xd709, 0xd7c5, 0xd7ad,
+ 0xdb7b, 0xd2fd, 0xc1b9, 0xc432, 0xd0a3, 0xcf13,
+ 0xd002, 0xd989, 0xd593, 0xce60, 0xd3ea, 0xd1ce,
+ 0xc90d, 0xd168, 0xd99a, 0xceb6, 0xc6b8, 0xc7df,
+ 0xc61f, 0xcdc4, 0xdd8a, 0xdd94, 0xd698, 0xd9ef,
+ 0xdc61, 0xde17, 0xe860, 0xeddb, 0xea76, 0xe89c,
+ 0xe586, 0xe7e1, 0xf801, 0xfeed, 0xf370, 0xecdb,
+ 0xed85, 0xebdd, 0xf065, 0xfa4d, 0xfe9c, 0xfbf0,
+ 0xf572, 0xf552, 0xfbe3, 0xf743, 0xf066, 0xfa1f,
+ 0x01a0, 0x0240, 0x0d56, 0x0f5e, 0x0372, 0x0865,
+ 0x0e9e, 0x01f9, 0x00b3, 0x0917, 0x04c8, 0x0731,
+ 0x0bcb, 0xfeb4, 0x002a, 0x16a4, 0x1abf, 0x135f,
+ 0x123c, 0x06ff, 0xf8b8, 0xf5fb, 0xf270, 0xed27,
+ 0xeb79, 0xeb4a, 0xf61d, 0x0663, 0x085c, 0x0440,
+ 0x061b, 0x0724, 0x01a8, 0xf439, 0xefc8, 0x01b8,
+ 0x0620, 0xefe9, 0xeadd, 0xf075, 0xe282, 0xe1af,
+ 0xf2fd, 0xf11f, 0xeedd, 0xf99f, 0xf3d3, 0xec82,
+ 0xf41a, 0xee38, 0xe23c, 0xe1b3, 0xd856, 0xd22f,
+ 0xe27b, 0xe682, 0xd780, 0xdc46, 0xedcc, 0xe9ea,
+ 0xd905, 0xd71e, 0xe1b3, 0xe159, 0xdab3, 0xe26c,
+ 0xe77d, 0xdacb, 0xd71f, 0xde08, 0xda07, 0xdc87,
+ 0xe77d, 0xda1f, 0xc65f, 0xcf60, 0xdc51, 0xd871,
+ 0xd8aa, 0xdcb4, 0xd5db, 0xd424, 0xe354, 0xeec4,
+ 0xece6, 0xece1, 0xed18, 0xe2d3, 0xdd7f, 0xe462,
+ 0xe360, 0xde77, 0xe5e7, 0xea0e, 0xe6fb, 0xedab,
+ 0xf09e, 0xe8f9, 0xf08a, 0xff13, 0xfa25, 0xf169,
+ 0xf1b7, 0xebb0, 0xe250, 0xe37b, 0xe8ec, 0xe852,
+ 0xea73, 0xfe8f, 0x1004, 0xff6c, 0xef73, 0x03e7,
+ 0x0aff, 0xefde, 0xeb1e, 0xfc53, 0xf9d2, 0xf40e,
+ 0xfbac, 0x01b8, 0x03d2, 0xfdb7, 0xf263, 0xf3af,
+ 0xf872, 0xfd26, 0x0c0f, 0x0665, 0xeb02, 0xee93,
+ 0x0049, 0xf4b5, 0xebab, 0xf600, 0xf668, 0xef37,
+ 0xefbd, 0xfa2b, 0x073a, 0x03be, 0xff27, 0x0dc0,
+ 0x0b7b, 0xf823, 0xfd7b, 0x0069, 0xf0a9, 0xf823,
+ 0x0294, 0xf40f, 0xf52d, 0x036b, 0xff95, 0xfe60,
+ 0xff3c, 0xf184, 0xf19c, 0x019d, 0x00e2, 0xf762,
+ 0xfab5, 0x02cc, 0xfd91, 0xece5, 0xeb91, 0xf895,
+ 0xf471, 0xeee6, 0xff3d, 0x00c5, 0xecf4, 0xf11d,
+ 0x04eb, 0x0535, 0x0148, 0x09ee, 0x0f42, 0x0bbf,
+ 0x0a2f, 0x0998, 0x02a1, 0xfb57, 0xfbd9, 0xffce,
+ 0x0421, 0x07c6, 0x057b, 0x0347, 0x0524, 0xff69,
+ 0xf93f, 0x0404, 0x1443, 0x1c04, 0x1db9, 0x193d,
+ 0x1152, 0x0843, 0xfed9, 0x0309, 0x0e29, 0x06d4,
+ 0xff9a, 0x0f2c, 0x183d, 0x0ebf, 0x0f71, 0x1db5,
+ 0x24f5, 0x2080, 0x1f2a, 0x2b6f, 0x2e8a, 0x14f5,
+ 0xfc62, 0xfae8, 0xfe87, 0x02f0, 0x0ec1, 0x1aac,
+ 0x260f, 0x2aa3, 0x1dd5, 0x1540, 0x1d4e, 0x19b6,
+ 0x0a4c, 0x0eb5, 0x1d3a, 0x1a67, 0x14c6, 0x1c6b,
+ 0x1b51, 0x0a7d, 0x0591, 0x0fcc, 0x17e7, 0x207a,
+ 0x1fee, 0x0c2b, 0x0946, 0x1d90, 0x1ccb, 0x15c0,
+ 0x2560, 0x24a2, 0x13e8, 0x1ec0, 0x26f9, 0x127e,
+ 0x0f56, 0x23c4, 0x2956, 0x2434, 0x28ce, 0x3083,
+ 0x2ca7, 0x2141, 0x202d, 0x20e9, 0x12b1, 0x0d5d,
+ 0x1b7f, 0x2168, 0x227c, 0x28a7, 0x2069, 0x1484,
+ 0x170e, 0x1785, 0x1b24, 0x252d, 0x17c6, 0x0a1c,
+ 0x1f87, 0x2964, 0x1810, 0x211d, 0x33b3, 0x24b8,
+ 0x1ab6, 0x28a7, 0x26ee, 0x1f0f, 0x2da7, 0x3634,
+ 0x27b3, 0x1e3f, 0x1ff9, 0x1f05, 0x2013, 0x2556,
+ 0x290c, 0x2c3a, 0x2638, 0x15a8, 0x1357, 0x1d7c,
+ 0x1ae6, 0x197c, 0x24da, 0x252f, 0x218f, 0x2dbc,
+ 0x3484, 0x2c23, 0x22e0, 0x169a, 0x0d34, 0x168f,
+ 0x2aa8, 0x336b, 0x2530, 0x14b1, 0x18b5, 0x19dd,
+ 0x15f8, 0x29ee, 0x307e, 0x1653, 0x1689, 0x225c,
+ 0x0e98, 0x0c8d, 0x1f23, 0x17fc, 0x1b0b, 0x31c0,
+ 0x2d1e, 0x2261, 0x25af, 0x1ffb, 0x20d3, 0x295e,
+ 0x1e7e, 0x1572, 0x1b12, 0x1993, 0x1821, 0x185c,
+ 0x0b64, 0x0538, 0x133d, 0x217d, 0x291a, 0x2d61,
+ 0x2cd3, 0x2c16, 0x2b16, 0x2192, 0x0eaa, 0x01c0,
+ 0x0b23, 0x18ae, 0x0fdd, 0x0501, 0x0eb6, 0x1903,
+ 0x18c4, 0x1d7c, 0x2a57, 0x30dd, 0x2732, 0x1895,
+ 0x159a, 0x1ab7, 0x1d96, 0x18f3, 0x0edd, 0x0e05,
+ 0x120d, 0x0995, 0x06e1, 0x1341, 0x11de, 0x078b,
+ 0x0b93, 0x0ee5, 0x0ba6, 0x1261, 0x1c06, 0x1cf8,
+ 0x1aa2, 0x17af, 0x146a, 0x148a, 0x1809, 0x1ab7,
+ 0x18bd, 0x1539, 0x1558, 0x12c2, 0x08a0, 0x02bd,
+ 0x0787, 0x0bb3, 0x09f6, 0x0caa, 0x1800, 0x1c23,
+ 0x10ef, 0x0d77, 0x1a63, 0x1bb4, 0x0e89, 0x0793,
+ 0x0310, 0x0242, 0x0926, 0x05d1, 0x0271, 0x0cfe,
+ 0x09af, 0xfe56, 0x06c1, 0x0a87, 0x003b, 0x03e3,
+ 0x0d4a, 0x09ac, 0x056c, 0x09ff, 0x0ec3, 0x0f91,
+ 0x1270, 0x12ec, 0x0acc, 0x0595, 0x06a1, 0x0a29,
+ 0x1115, 0x115f, 0x13fe, 0x1bf2, 0x089a, 0xf8d0,
+ 0x105d, 0x1135, 0x00d1, 0x173e, 0x1c49, 0x0401,
+ 0x06fb, 0x0559, 0xfd0b, 0x0fb9, 0x0c84, 0xf8d4,
+ 0x0643, 0x0d66, 0xff4b, 0xfd69, 0xfd5c, 0xfc7d,
+ 0x07d0, 0x123d, 0x0df7, 0xfe7e, 0xfa3a, 0x0425,
+ 0x0443, 0x03ee, 0x08ec, 0x019c, 0x0400, 0x13a5,
+ 0x0e6f, 0x03a5, 0x07f4, 0x0d21, 0x104f, 0x0e9c,
+ 0x0ca4, 0x1797, 0x1c28, 0x14f2, 0x184b, 0x1bf6,
+ 0x1633, 0x133a, 0x0aca, 0xfdcb, 0x0306, 0x1041,
+ 0x0ee4, 0x0c1a, 0x11d0, 0x153f, 0x1b20, 0x1dcb,
+ 0x0e54, 0x08b2, 0x1461, 0x0e6c, 0x0812, 0x1175,
+ 0x0adf, 0x0139, 0x0279, 0xf932, 0xf8dd, 0x023a,
+ 0xfac2, 0xfd59, 0x08f8, 0x0256, 0x0806, 0x14d4,
+ 0x038b, 0xf611, 0x045c, 0x0ec6, 0x0c5c, 0x0999,
+ 0x0508, 0xfbad, 0xf8c9, 0xfbef, 0xf26c, 0xeeb8,
+ 0x0113, 0x03a4, 0xfb69, 0x0554, 0x00f5, 0xf395,
+ 0xff2f, 0x0272, 0xf80d, 0xff35, 0x0318, 0xf8ca,
+ 0xf1c2, 0xf0b1, 0xf883, 0xfb21, 0xf163, 0xf484,
+ 0xfbad, 0xfab1, 0x06fb, 0x0d17, 0xfe6e, 0xfe77,
+ 0x03b0, 0xf781, 0xf637, 0xfbe0, 0xf066, 0xed37,
+ 0xf8cf, 0xf65d, 0xed6d, 0xef8d, 0xf462, 0xf65f,
+ 0xf455, 0xf373, 0xfc2b, 0xfbe2, 0xec89, 0xeab7,
+ 0xf226, 0xf0df, 0xf3b4, 0xf6f3, 0xf317, 0xf2d6,
+ 0xedcb, 0xea82, 0xf6fd, 0xf388, 0xde99, 0xdbc5,
+ 0xdb59, 0xd1b6, 0xd62b, 0xe1a4, 0xeb59, 0xf6e9,
+ 0xf3f0, 0xe68b, 0xe463, 0xe549, 0xe15c, 0xe541,
+ 0xf1e1, 0xfa94, 0xfb27, 0xf852, 0xf5d5, 0xf6d1,
+ 0xf9bb, 0xf94f, 0xf845, 0xf51c, 0xedee, 0xf050,
+ 0xf507, 0xeb03, 0xe423, 0xe573, 0xe243, 0xe61a,
+ 0xe887, 0xdf4e, 0xe612, 0xf2ae, 0xe946, 0xe27b,
+ 0xe671, 0xdd74, 0xcff4, 0xd14f, 0xdce2, 0xe22a,
+ 0xde22, 0xd821, 0xc9ec, 0xc0e1, 0xd366, 0xe1a0,
+ 0xdddd, 0xe8ec, 0xeaf2, 0xced9, 0xc603, 0xd41c,
+ 0xce4f, 0xc033, 0xc8c4, 0xdc29, 0xde07, 0xd677,
+ 0xdf0f, 0xe868, 0xe2b1, 0xdfc8, 0xddbe, 0xd9a3,
+ 0xe0ed, 0xe1f5, 0xd6c8, 0xd92f, 0xe027, 0xdcdc,
+ 0xdeab, 0xe3ad, 0xdff7, 0xde6d, 0xe8a6, 0xef77,
+ 0xe430, 0xdce4, 0xebaf, 0xf0f5, 0xdff5, 0xd92f,
+ 0xdda6, 0xdba9, 0xe111, 0xed3a, 0xe681, 0xd92c,
+ 0xe41f, 0xf1ff, 0xe431, 0xda5c, 0xeca2, 0xf5c0,
+ 0xea31, 0xe8a8, 0xf024, 0xee45, 0xe17a, 0xd2c8,
+ 0xd64d, 0xe82f, 0xec58, 0xea81, 0xec24, 0xdef6,
+ 0xd500, 0xdef6, 0xdf25, 0xda0e, 0xdfb3, 0xd4ec,
+ 0xc50a, 0xcc47, 0xd036, 0xcf25, 0xde22, 0xe375,
+ 0xd811, 0xd676, 0xe0ef, 0xee3e, 0xeb6b, 0xd673,
+ 0xdadf, 0xf6c6, 0xf861, 0xe837, 0xe609, 0xec2f,
+ 0xed93, 0xe6da, 0xe41b, 0xe8ee, 0xe3fd, 0xe21f,
+ 0xef4c, 0xee0a, 0xe0dc, 0xe327, 0xecb2, 0xf2c3,
+ 0xf117, 0xe3a8, 0xdb50, 0xde5c, 0xe1d2, 0xe43d,
+ 0xe169, 0xda3c, 0xd553, 0xcf09, 0xcfa7, 0xd856,
+ 0xd349, 0xc925, 0xce35, 0xd4cf, 0xd88e, 0xe5a2,
+ 0xf04e, 0xeabd, 0xe229, 0xe1c4, 0xde67, 0xd42b,
+ 0xcb50, 0xc3df, 0xc6c9, 0xd403, 0xd1b2, 0xcd3b,
+ 0xdd94, 0xe063, 0xd257, 0xd768, 0xe294, 0xea71,
+ 0xf5cf, 0xec3f, 0xd8f2, 0xdc53, 0xe47b, 0xe79f,
+ 0xf00a, 0xf364, 0xef12, 0xe4d4, 0xd79a, 0xdab6,
+ 0xe8a8, 0xef31, 0xf32c, 0xedf1, 0xddc7, 0xda0f,
+ 0xe040, 0xe353, 0xeafb, 0xf33e, 0xf652, 0xf934,
+ 0xf546, 0xed23, 0xeddb, 0xf23f, 0xf6d4, 0xfb4e,
+ 0xf604, 0xf05f, 0xf356, 0xf051, 0xeb6b, 0xeb57,
+ 0xe47c, 0xe732, 0xf8f7, 0xf78a, 0xea63, 0xea6a,
+ 0xe855, 0xe60e, 0xebfc, 0xe993, 0xe4de, 0xe277,
+ 0xdae7, 0xe3b9, 0xf619, 0xeef9, 0xe1aa, 0xe8f8,
+ 0xf396, 0xf42c, 0xf281, 0xf65b, 0xf906, 0xf595,
+ 0xf79e, 0xf9d7, 0xf5b6, 0xfae9, 0xfff0, 0xfaa2,
+ 0xfa5a, 0xf594, 0xed02, 0xf3ce, 0xf751, 0xf36a,
+ 0xf5c1, 0xf195, 0xf3b0, 0x0249, 0x0102, 0xfbe3,
+ 0xf8d4, 0xe722, 0xe5f8, 0xf944, 0xfe78, 0xfda7,
+ 0xf7b6, 0xea74, 0xee1c, 0xf30f, 0xef50, 0xfabf,
+ 0x0032, 0xf25b, 0xee9e, 0xf198, 0xef89, 0xf070,
+ 0xef42, 0xec8b, 0xee79, 0xecb7, 0xea2a, 0xf388,
+ 0xfcd4, 0xf40d, 0xee24, 0xfc18, 0xfc4d, 0xeb0a,
+ 0xee67, 0xfae3, 0xfb82, 0xfbcf, 0xf6e1, 0xef0d,
+ 0xed56, 0xe7e7, 0xeaac, 0xf466, 0xf162, 0xf966,
+ 0x07c6, 0xfe0a, 0xfd98, 0x0bef, 0x0741, 0x0957,
+ 0x15be, 0x0a7b, 0xff09, 0x0440, 0x042e, 0x02bc,
+ 0x015a, 0xf493, 0xec54, 0xf2e6, 0xf71d, 0xf876,
+ 0x0506, 0x0def, 0x03c8, 0xfac6, 0xfd6a, 0x047f,
+ 0x1162, 0x17f7, 0x1446, 0x1467, 0x0c78, 0xfc77,
+ 0xf7eb, 0xf4e7, 0xf6f5, 0x031a, 0xfd9f, 0xf49f,
+ 0xfdda, 0x0168, 0x038a, 0x087f, 0xfe03, 0xfb2f,
+ 0x0345, 0xfe93, 0x0459, 0x160c, 0x15ef, 0x0d80,
+ 0x048b, 0xfac3, 0xfd42, 0x0406, 0x07ea, 0x0f53,
+ 0x1402, 0x12e1, 0x0c28, 0x03e3, 0x06b8, 0x0e14,
+ 0x133f, 0x1a97, 0x19af, 0x11ea, 0x09db, 0xfc9a,
+ 0xfc9b, 0x088d, 0x050a, 0x0598, 0x1006, 0x0573,
+ 0xfad1, 0x014c, 0x01dc, 0x07f3, 0x1433, 0x0d26,
+ 0x0a54, 0x1993, 0x1e71, 0x1e08, 0x1fee, 0x12df,
+ 0x062f, 0x07d4, 0x0633, 0x06cb, 0x10f6, 0x10e8,
+ 0x075c, 0xffe5, 0xf80b, 0xf83c, 0x008d, 0x02fd,
+ 0x0678, 0x0df6, 0x0f75, 0x11fd, 0x1522, 0x0f36,
+ 0x0ace, 0x0c75, 0x0b16, 0x0a37, 0x0d9f, 0x0e55,
+ 0x0a2a, 0x0945, 0x0f17, 0x138d, 0x1586, 0x167a,
+ 0x10af, 0x0dff, 0x160b, 0x1b2e, 0x1d97, 0x1fff,
+ 0x19dc, 0x1546, 0x1539, 0x0e20, 0x0952, 0x084b,
+ 0x00af, 0xfe1d, 0x064b, 0x0d46, 0x0fb3, 0x13a3,
+ 0x1a88, 0x195d, 0x1472, 0x1cc6, 0x1db9, 0x0afc,
+ 0x0550, 0x0c4d, 0x08a6, 0x0490, 0x062c, 0x05bf,
+ 0x012b, 0xfb2a, 0xfc5c, 0xfc86, 0xf7a2, 0x005e,
+ 0x093f, 0x05d3, 0x0bfd, 0x0fe6, 0x0b25, 0x1651,
+ 0x1b12, 0x0e44, 0x110d, 0x1510, 0x0808, 0x0569,
+ 0x0e49, 0x0f66, 0x1016, 0x1994, 0x1d16, 0x0e96,
+ 0x03ce, 0x088c, 0x08e9, 0x08a8, 0x1175, 0x1852,
+ 0x208d, 0x242d, 0x1a8d, 0x1802, 0x1581, 0x056b,
+ 0x02d8, 0x0caa, 0x0ba9, 0x0640, 0x0229, 0x0429,
+ 0x0fd4, 0x175b, 0x1706, 0x0ecb, 0x01d8, 0x03e4,
+ 0x0ee0, 0x13ab, 0x19bb, 0x178a, 0x092c, 0x0219,
+ 0xfe93, 0xf849, 0xf846, 0xfdca, 0x03f2, 0x0265,
+ 0xfc71, 0x0127, 0x0420, 0xfffa, 0x03a0, 0x0126,
+ 0xf8c8, 0x00ff, 0x0a4f, 0x0bbf, 0x1234, 0x0f1b,
+ 0xff47, 0xfac5, 0x011d, 0xff20, 0xf876, 0x00cf,
+ 0x0b34, 0x0178, 0xfdbe, 0x0897, 0x01b5, 0xf6ef,
+ 0xfd9d, 0x0495, 0x0f65, 0x1ddd, 0x1c9b, 0x1464,
+ 0x0ad3, 0x0124, 0x0821, 0x0ee5, 0x042b, 0xfee4,
+ 0xfed7, 0xf7ea, 0xfb99, 0x08d6, 0x0b1e, 0x0902,
+ 0x0fb1, 0x161f, 0x1540, 0x150a, 0x131b, 0x0925,
+ 0x020f, 0x0230, 0x0300, 0x02ab, 0xfdc3, 0xff6f,
+ 0x0cfe, 0x06ef, 0xf36f, 0xfccb, 0x0ceb, 0x0725,
+ 0x0988, 0x1726, 0x133b, 0x03c9, 0xfd53, 0x0557,
+ 0x13b8, 0x1a17, 0x1539, 0x0ae8, 0x033c, 0x06ca,
+ 0x0fa1, 0x105a, 0x0a94, 0x0a7a, 0x1088, 0x0e50,
+ 0x05ec, 0x087e, 0x0e20, 0x0ded, 0x1661, 0x2234,
+ 0x21c2, 0x1c2e, 0x1402, 0x0910, 0x06c2, 0x09c4,
+ 0x09ee, 0x0b69, 0x0a49, 0x029c, 0xfd03, 0xfb4e,
+ 0xfb22, 0x0339, 0x11d2, 0x17a5, 0x164c, 0x1b3f,
+ 0x1972, 0x072a, 0x003b, 0x085e, 0x0219, 0xf7be,
+ 0xfdf4, 0x0215, 0xff3a, 0x0487, 0x09ad, 0x07da,
+ 0x0753, 0x0753, 0x0838, 0x0d0d, 0x0df5, 0x0a26,
+ 0x0b3a, 0x0ec1, 0x0e6b, 0x10f1, 0x16fd, 0x1296,
+ 0x07e7, 0x08a0, 0x0c04, 0x07fb, 0x08cd, 0x0a33,
+ 0x0527, 0x07e5, 0x0ba4, 0x06d2, 0x0a8f, 0x1072,
+ 0x0cb5, 0x115a, 0x1724, 0x0efa, 0x0d00, 0x10f2,
+ 0x0bad, 0x0a3d, 0x0b2e, 0x00fb, 0xf920, 0xfa64,
+ 0xf9a6, 0xf972, 0x0113, 0x09dc, 0x0b0e, 0x09e7,
+ 0x0d5c, 0x0ff4, 0x1049, 0x0ea1, 0x0346, 0xf741,
+ 0xf6c0, 0xf88c, 0xfc2f, 0x03e8, 0x02be, 0xfd43,
+ 0xfbce, 0xf782, 0xfaa5, 0x0714, 0x06a7, 0x0208,
+ 0x095e, 0x0b89, 0x062b, 0x05d9, 0x035b, 0x002f,
+ 0x0377, 0x03f7, 0x0572, 0x0d0a, 0x0cde, 0x0b3c,
+ 0x119e, 0x0c72, 0xfea0, 0xfccc, 0xfbf3, 0xfa30,
+ 0x06dc, 0x11c4, 0x0f03, 0x108e, 0x144a, 0x0ba5,
+ 0x0296, 0x04f2, 0x065c, 0x030c, 0x090e, 0x1040,
+ 0x06e8, 0xfc9a, 0xff61, 0x03de, 0x083d, 0x0c03,
+ 0x092e, 0x06eb, 0x0621, 0x04fc, 0x0aca, 0x0fb2,
+ 0x0b71, 0x0011, 0xeeb5, 0xe8d7, 0xf171, 0xf35c,
+ 0xf7eb, 0x0168, 0xfc64, 0xfb9e, 0x03d9, 0x00b2,
+ 0x05c2, 0x1078, 0x0623, 0xfdeb, 0x00ce, 0xfde9,
+ 0x014a, 0x03bf, 0xf7ec, 0xf45b, 0xfb2d, 0xfe01,
+ 0x0154, 0x0475, 0x03bd, 0x0073, 0xff1e, 0x0466,
+ 0x0189, 0xf8a8, 0x04f8, 0x13de, 0x09c0, 0xff04,
+ 0x02f5, 0x09f6, 0x0fd4, 0x0dc7, 0x02a1, 0xf8f9,
+ 0xf4e1, 0xf5f0, 0xf874, 0xfa74, 0xfe72, 0xfed0,
+ 0xfb23, 0xfaa1, 0xfad2, 0xfc4b, 0xff72, 0xfda2,
+ 0xfbec, 0xfbc5, 0xf5e8, 0xf1dd, 0xf472, 0xf678,
+ 0xf5c6, 0xf3c2, 0xf4c3, 0xf773, 0xf6a3, 0xfa32,
+ 0xffb8, 0xff6d, 0x069f, 0x0ecd, 0x06cc, 0xffea,
+ 0xfe68, 0xf4eb, 0xefdc, 0xf2f3, 0xf47a, 0xf68a,
+ 0xf502, 0xf4c7, 0x0122, 0x0b4d, 0x0b51, 0x075e,
+ 0xfbd8, 0xf557, 0xff75, 0x09b2, 0x0d57, 0x0de2,
+ 0x0a6a, 0x09b0, 0x07b6, 0x00b0, 0x02a1, 0x0512,
+ 0xf990, 0xf114, 0xf0da, 0xeecc, 0xf141, 0xf5b1,
+ 0xf4d7, 0xf911, 0xffe3, 0xfb18, 0xf2ed, 0xf585,
+ 0xfb5f, 0xf9ac, 0xf99a, 0xfed3, 0xf6bf, 0xe62f,
+ 0xe639, 0xeb30, 0xe45b, 0xe0cc, 0xe151, 0xdcd2,
+ 0xe04a, 0xed7a, 0xf5d2, 0xfb06, 0x030b, 0x0322,
+ 0xf495, 0xeca8, 0xf678, 0xf658, 0xeaad, 0xefa0,
+ 0xf58c, 0xec6b, 0xe9fc, 0xeabc, 0xe803, 0xf17f,
+ 0xf9c8, 0xf7fd, 0xfd0c, 0xfe7f, 0xf55e, 0xf41e,
+ 0xf8d8, 0xfb70, 0xfdf2, 0xfc7c, 0xf70b, 0xf0bd,
+ 0xee2e, 0xf2fa, 0xf46d, 0xf325, 0xf799, 0xf3fb,
+ 0xea62, 0xeb3d, 0xed01, 0xeefb, 0xf753, 0xf7d4,
+ 0xf4e0, 0xf768, 0xf36d, 0xef6b, 0xf242, 0xeff3,
+ 0xef23, 0xf594, 0xf768, 0xf5b4, 0xf367, 0xed5d,
+ 0xeaf2, 0xf143, 0xf9fd, 0xfb47, 0xf4c3, 0xf3c6,
+ 0xf835, 0xf8fc, 0xffa4, 0x0903, 0x00dc, 0xf247,
+ 0xf032, 0xf017, 0xecdd, 0xf0d2, 0xf725, 0xf510,
+ 0xf065, 0xf2f8, 0xf92b, 0xfbd1, 0xfc80, 0xfc8f,
+ 0xfabc, 0xfb5b, 0xfd8e, 0xf981, 0xf47b, 0xf771,
+ 0xfef1, 0x0a62, 0x137b, 0x0747, 0xf192, 0xef1a,
+ 0xf3d4, 0xefcb, 0xf18b, 0xf73e, 0xf45d, 0xf122,
+ 0xefc5, 0xeb7a, 0xea76, 0xed21, 0xef24, 0xf2ba,
+ 0xf7df, 0xf9d0, 0xf4db, 0xeffa, 0xf4d1, 0xf9c6,
+ 0xf707, 0xf5f3, 0xf3dc, 0xed53, 0xef1a, 0xf54b,
+ 0xf3e7, 0xf44f, 0xfad5, 0xfb33, 0xf42f, 0xf139,
+ 0xf4f6, 0xf5e6, 0xf222, 0xf1c5, 0xf20d, 0xecf9,
+ 0xe9dc, 0xed7b, 0xf38c, 0xf966, 0xfbec, 0xf92f,
+ 0xf4dd, 0xf16f, 0xeedc, 0xedf3, 0xece6, 0xe9b3,
+ 0xeb17, 0xf63e, 0xfedb, 0xfbec, 0xf8a7, 0xf9f7,
+ 0xf98e, 0xf7fb, 0xf3ce, 0xee51, 0xf1bc, 0xf84d,
+ 0xf7c1, 0xf628, 0xf32e, 0xece3, 0xea69, 0xe5fd,
+ 0xddab, 0xdedc, 0xe71b, 0xee99, 0xf5e2, 0xf56e,
+ 0xee5d, 0xeb96, 0xeb0f, 0xed5a, 0xf327, 0xf2f7,
+ 0xf23c, 0xf676, 0xf536, 0xf2c5, 0xf33a, 0xec14,
+ 0xe631, 0xec19, 0xf1e1, 0xf2ba, 0xf287, 0xf198,
+ 0xf2e9, 0xf49e, 0xf443, 0xf5c1, 0xf8fa, 0xfc3a,
+ 0xfb48, 0xf43e, 0xf2d2, 0xf63f, 0xf4f3, 0xf926,
+ 0xfe70, 0xf6c6, 0xf449, 0xfc76, 0x00cf, 0x0a5c,
+ 0x1426, 0x0ea0, 0x09e2, 0x0602, 0xf62b, 0xef47,
+ 0xf60d, 0xf771, 0xf888, 0xfa86, 0xf429, 0xee52,
+ 0xedaa, 0xef88, 0xf47f, 0xf34d, 0xee39, 0xf35f,
+ 0xfa4f, 0xfc93, 0x016a, 0xfe80, 0xf4c0, 0xf932,
+ 0xffbb, 0xf80e, 0xf6fd, 0xfe71, 0xfa7c, 0xf656,
+ 0xfc2a, 0xfe42, 0xfd9f, 0x004b, 0x003d, 0xfe4c,
+ 0xfb87, 0xf6f9, 0xf733, 0xf934, 0xf6ad, 0xf760,
+ 0xfcac, 0xfed9, 0x0083, 0x0564, 0x0784, 0x03f5,
+ 0x032e, 0x07ef, 0x0663, 0xff9c, 0x0150, 0x0619,
+ 0x06fb, 0x0b7b, 0x0e6d, 0x08a8, 0x043d, 0x0417,
+ 0x0262, 0x014d, 0x01b3, 0x004f, 0xff92, 0x03aa,
+ 0x081a, 0x0586, 0xffdd, 0xfbc6, 0xf421, 0xebdb,
+ 0xec0e, 0xf213, 0xf83d, 0xfbdf, 0xfb54, 0xfcd8,
+ 0x03b3, 0x059c, 0xfe42, 0xf985, 0xfb9f, 0xf8e0,
+ 0xf3bb, 0xf94a, 0xffd7, 0x00b8, 0x08da, 0x0e61,
+ 0x0426, 0xfbc9, 0xfa19, 0xf47f, 0xf336, 0xfa33,
+ 0xffef, 0x00e4, 0xfda8, 0xf936, 0xf527, 0xf311,
+ 0xf841, 0xfccf, 0xfa55, 0xfd0e, 0x027d, 0x012e,
+ 0x0300, 0x0a03, 0x1033, 0x13f3, 0x0d0d, 0x02dd,
+ 0x04b7, 0x0597, 0xfcd7, 0xf81f, 0xf9a5, 0xfbf6,
+ 0xfd99, 0xfd0f, 0xfcca, 0xfa78, 0xf2af, 0xef86,
+ 0xf819, 0x0384, 0x053e, 0xfcc5, 0xf600, 0xf1f3,
+ 0xea63, 0xe987, 0xf26e, 0xf736, 0xf85a, 0xf9f7,
+ 0xf64e, 0xf27d, 0xf3eb, 0xf4b9, 0xf69b, 0xfc55,
+ 0xff26, 0xfed8, 0xff86, 0xfd2c, 0xf763, 0xf4c1,
+ 0xf4db, 0xf36a, 0xefcf, 0xeb56, 0xedd2, 0xfb40,
+ 0x0685, 0x08f0, 0x07b3, 0xfe57, 0xf264, 0xf5d2,
+ 0xff0f, 0xfea7, 0x001a, 0x04e0, 0xffea, 0xfabd,
+ 0x0182, 0x0a66, 0x0d5c, 0x0b5f, 0x04f4, 0x0173,
+ 0x0595, 0x08bc, 0x08e5, 0x09d0, 0x05c6, 0xfe6f,
+ 0xfb2c, 0xf7fa, 0xf633, 0xf96c, 0xf9ac, 0xf9af,
+ 0xfe2a, 0xfcc3, 0xf8ed, 0xfca9, 0x00b6, 0x0289,
+ 0x0516, 0x05db, 0x0639, 0x01de, 0xf7b9, 0xf72f,
+ 0xff03, 0x0186, 0x0474, 0x09ea, 0x089e, 0x02bf,
+ 0xfc24, 0xf565, 0xf482, 0xfa9b, 0x0015, 0xfec3,
+ 0xfa50, 0xfa37, 0xfa9f, 0xf7e2, 0xf906, 0xfde9,
+ 0x02bb, 0x090a, 0x0cee, 0x0d29, 0x0b35, 0x0268,
+ 0xfc15, 0x031f, 0x0a0e, 0x0ab8, 0x0c62, 0x0a14,
+ 0x06ad, 0x0b09, 0x0d57, 0x0ab3, 0x0c9c, 0x0e20,
+ 0x09fd, 0x062c, 0x0366, 0xfed6, 0xfb18, 0xfb18,
+ 0xfa70, 0xf512, 0xf367, 0xf992, 0xfcec, 0xfb59,
+ 0xfab3, 0xfa73, 0xfc4b, 0x0099, 0x02c1, 0x02c8,
+ 0x0073, 0xfe03, 0x0098, 0x01d4, 0xff1f, 0xff9a,
+ 0xfe6f, 0xf99f, 0xf9aa, 0xfa5b, 0xf5f8, 0xf1e0,
+ 0xf0ce, 0xf12f, 0xf15d, 0xf36f, 0xf7e3, 0xf7ca,
+ 0xf94f, 0x039b, 0x0539, 0xfc56, 0xfbc4, 0xfeac,
+ 0x0000, 0x071e, 0x0a22, 0x03c5, 0xfe4e, 0xfbaa,
+ 0xfc0d, 0x005b, 0x0628, 0x0d2b, 0x0ece, 0x0832,
+ 0x03ec, 0x02fc, 0xfee6, 0xfb01, 0xfaf7, 0xfc08,
+ 0xfbc6, 0xfcbb, 0xfdbe, 0xf990, 0xf99e, 0x01f9,
+ 0x013e, 0xfa25, 0xfa2b, 0xf840, 0xf549, 0xf883,
+ 0xf885, 0xf708, 0xf846, 0xf739, 0xfa27, 0xff39,
+ 0xfe65, 0xfff9, 0x031a, 0x00e0, 0xfe74, 0xfc1a,
+ 0xfa51, 0xf9b7, 0xf4d8, 0xf3d9, 0xfaa0, 0xfd9c,
+ 0xffc0, 0x04aa, 0x0560, 0x04d0, 0x0477, 0x011e,
+ 0xfd4b, 0xfb39, 0xff4c, 0x055a, 0x0201, 0xfdcb,
+ 0x0029, 0x010c, 0x0492, 0x0ca8, 0x0f78, 0x0e70,
+ 0x0cc4, 0x0b98, 0x0f83, 0x1201, 0x0c97, 0x0543,
+ 0x00d6, 0xffd2, 0xfe52, 0xfa23, 0xfa69, 0xff82,
+ 0x031a, 0x0539, 0x0463, 0x01ce, 0x034b, 0x0439,
+ 0x00ad, 0xff66, 0x02a7, 0x079a, 0x0bc9, 0x0b0f,
+ 0x06b4, 0x06c9, 0x0b6d, 0x0bf3, 0x08c7, 0x088c,
+ 0x075a, 0x00b8, 0xf9f4, 0xf7dc, 0xfb22, 0xff69,
+ 0xffaa, 0xff29, 0xfef3, 0xfe59, 0x02a3, 0x071a,
+ 0x05f2, 0x05d8, 0x056d, 0x0397, 0x070c, 0x0747,
+ 0x0085, 0x0017, 0x0556, 0x095b, 0x0b87, 0x085d,
+ 0x0570, 0x075c, 0x0508, 0x0336, 0x0bfd, 0x133e,
+ 0x0f4c, 0x087c, 0x04c0, 0x0275, 0xffc4, 0xfd68,
+ 0xfd81, 0xfc65, 0xf3e2, 0xec20, 0xf378, 0x0107,
+ 0x01a7, 0xfb48, 0xfc1d, 0xff67, 0xff9f, 0x01aa,
+ 0x05e3, 0x0712, 0x03ce, 0xff3f, 0xfd42, 0xfef8,
+ 0x0108, 0x008c, 0x00dc, 0x025f, 0xff0b, 0xf9d9,
+ 0xf902, 0xf84f, 0xf66b, 0xf747, 0xfa78, 0xfed3,
+ 0x0156, 0x01bb, 0x0440, 0x03c2, 0xfe5e, 0xfcf6,
+ 0xfd20, 0xfbc4, 0xfe78, 0x0194, 0x0362, 0x0637,
+ 0x0532, 0x064f, 0x0d22, 0x0a70, 0x014f, 0x01fd,
+ 0x056e, 0x02bf, 0x0022, 0x00d4, 0x029e, 0x0231,
+ 0xfeae, 0xfcf0, 0xfd7f, 0xfb9e, 0xf991, 0xfc66,
+ 0x0082, 0x00bc, 0x0039, 0x0004, 0xfad8, 0xf53c,
+ 0xf6ec, 0xf981, 0xf9f1, 0xff35, 0x043e, 0x02d6,
+ 0x01f2, 0x0082, 0xfc3d, 0x003f, 0x083e, 0x0724,
+ 0x0468, 0x0044, 0xf435, 0xf0e0, 0xfa53, 0x003d,
+ 0x0427, 0x0668, 0x0366, 0x0718, 0x0bff, 0x052d,
+ 0xff2b, 0xfeaa, 0xfdde, 0x000b, 0xff4a, 0xfb7e,
+ 0xffab, 0x0378, 0x01b7, 0x063c, 0x0e0e, 0x105a,
+ 0x1034, 0x0f34, 0x0b1b, 0x044f, 0xff36, 0xff51,
+ 0x00f1, 0x00f2, 0x006e, 0xff75, 0xfed5, 0xfed5,
+ 0xfdc8, 0xfb5c, 0xf9ac, 0xfce8, 0x02ff, 0x0498,
+ 0x024f, 0xff13, 0xfd0f, 0x00c7, 0x0498, 0x0398,
+ 0x049f, 0x0421, 0xfc55, 0xf6c5, 0xf90d, 0xff71,
+ 0x0559, 0x0784, 0x080c, 0x05c7, 0xff17, 0xfade,
+ 0xf95e, 0xf87c, 0xfc34, 0xffcf, 0xffdb, 0xff2e,
+ 0xfb5b, 0xfa70, 0x00e0, 0x0381, 0x0280, 0x0363,
+ 0x011b, 0x0065, 0x05ba, 0x087a, 0x0779, 0x0729,
+ 0x07f8, 0x0948, 0x0726, 0x024f, 0x0241, 0x0736,
+ 0x0b6d, 0x0c99, 0x0b34, 0x05ea, 0xfe4c, 0xfdac,
+ 0x0249, 0xff2e, 0xf9fe, 0xfc08, 0xfc47, 0xf8a7,
+ 0xf612, 0xf284, 0xf38c, 0xfb9d, 0xffee, 0xff30,
+ 0xfd40, 0xf918, 0xf9be, 0x0156, 0x03bb, 0x008f,
+ 0x0136, 0x01d0, 0xfec6, 0xfdc8, 0xfc7b, 0xf8d0,
+ 0xf9a8, 0xfadc, 0xf604, 0xf39f, 0xf67b, 0xf8fb,
+ 0xfa4c, 0xf764, 0xf486, 0xfb30, 0x00cd, 0xfe08,
+ 0xff11, 0x0121, 0xfca1, 0xfae2, 0xfb04, 0xf910,
+ 0xfec3, 0x071d, 0x076b, 0x0634, 0x02dc, 0xfabe,
+ 0xf95b, 0xfd3d, 0xfe57, 0x0138, 0x0125, 0xfa19,
+ 0xf8d0, 0xfd1d, 0xfdd9, 0xfea1, 0xffd2, 0xfe99,
+ 0xfd9f, 0xfb07, 0xf6fd, 0xf6ff, 0xf9c0, 0xfa35,
+ 0xf7a8, 0xf6af, 0xf927, 0xfa36, 0xfc6e, 0x02cb,
+ 0x03bc, 0xfefa, 0xfd1f, 0xfd5e, 0xffdb, 0x0263,
+ 0xfed6, 0xfb97, 0xfbe2, 0xfa9b, 0xfbfd, 0xff59,
+ 0xfe88, 0xfe44, 0x004a, 0x012f, 0x01fc, 0x018e,
+ 0xff9f, 0xff54, 0x0169, 0x0398, 0x0150, 0xfd74,
+ 0x0007, 0x0592, 0x0871, 0x0840, 0x0482, 0x0369,
+ 0x061a, 0x058e, 0x0773, 0x0d39, 0x0d42, 0x0bea,
+ 0x0b18, 0x0482, 0x0066, 0x02bf, 0x04b7, 0x0799,
+ 0x08f7, 0x0440, 0xfecf, 0xfa08, 0xf745, 0xfcc4,
+ 0x045c, 0x04b9, 0x01f5, 0x0170, 0x01f2, 0x028c,
+ 0x0420, 0x04e0, 0x0287, 0x01d1, 0x05f8, 0x07a0,
+ 0x0378, 0xff0d, 0xfb94, 0xf81e, 0xf655, 0xf66a,
+ 0xf90e, 0xfcdc, 0xfcb5, 0xfa27, 0xfa6d, 0xfd12,
+ 0x0053, 0x00eb, 0xfcc5, 0xfb21, 0xff63, 0x0289,
+ 0x01da, 0xfe62, 0xfa44, 0xfa2b, 0xfb8b, 0xfc43,
+ 0x011d, 0x05a6, 0x050e, 0x04a9, 0x02c1, 0xfda2,
+ 0xfdd1, 0x044a, 0x0a0c, 0x0b2a, 0x079f, 0x0324,
+ 0xfe48, 0xf8ed, 0xf862, 0xfa02, 0xf77e, 0xf53f,
+ 0xf534, 0xf479, 0xf5ba, 0xf8aa, 0xf9c3, 0xfa81,
+ 0xfb08, 0xfa80, 0xfda9, 0x0436, 0x0475, 0xff82,
+ 0x0022, 0x01b1, 0xfce8, 0xf9d5, 0xf959, 0xf75f,
+ 0xfb08, 0x003f, 0xfbf6, 0xf6ae, 0xf83d, 0xf8da,
+ 0xf66f, 0xf72f, 0xfa9f, 0xfc14, 0xfd92, 0x00c7,
+ 0x011d, 0x0081, 0x022a, 0x00ff, 0xfe42, 0xfd09,
+ 0xfaf2, 0xfcf4, 0x0388, 0x062b, 0x0588, 0x035b,
+ 0xffc6, 0xff28, 0x0036, 0x035c, 0x08e8, 0x0853,
+ 0x057c, 0x069d, 0x0336, 0xfed3, 0x0152, 0x0360,
+ 0x0307, 0x032c, 0x03b0, 0x0631, 0x05bc, 0x00b5,
+ 0xfeeb, 0xffd2, 0x0014, 0x0056, 0xfff2, 0x0214,
+ 0x07b4, 0x0b31, 0x0870, 0x00da, 0xfdd0, 0x00af,
+ 0xff77, 0xff08, 0x03e5, 0x026b, 0xfca4, 0xfbb7,
+ 0xfe16, 0x02e0, 0x041c, 0xff49, 0xffdb, 0x0495,
+ 0x0475, 0x01d4, 0xfd3c, 0xf8ea, 0xfb0b, 0xff0c,
+ 0x007f, 0x0307, 0x0640, 0x0715, 0x07e7, 0x0a93,
+ 0x0980, 0x060c, 0x09d0, 0x0ee2, 0x0d9c, 0x0c7e,
+ 0x0a00, 0x05c1, 0x07c2, 0x0939, 0x0614, 0x0573,
+ 0x0616, 0x08eb, 0x0a0a, 0x004d, 0xf9ff, 0xff57,
+ 0x01dc, 0x033a, 0x087c, 0x0acf, 0x0be6, 0x0be3,
+ 0x08ad, 0x0785, 0x0744, 0x062a, 0x05b8, 0x02c8,
+ 0xff6a, 0xfd4b, 0xf9af, 0xfa31, 0x0093, 0x04b9,
+ 0x02f5, 0xfd9d, 0xfb70, 0xfe87, 0x0032, 0x0082,
+ 0x01b5, 0x00f7, 0x00e6, 0x01cf, 0xffa7, 0xfd9f,
+ 0xfda5, 0xfdde, 0xff8d, 0x014c, 0x001a, 0xfd78,
+ 0xfd42, 0xffb5, 0xffc2, 0xfdf5, 0x0095, 0x059e,
+ 0x086b, 0x09ae, 0x0957, 0x07e3, 0x068f, 0x03fc,
+ 0x0003, 0xfcd7, 0xfd21, 0x00d8, 0x03be, 0x034b,
+ 0x007a, 0xfd6f, 0xfbf6, 0xfb8d, 0xfcf6, 0xfef7,
+ 0xfccc, 0xfba7, 0x011d, 0x0557, 0x0512, 0x0361,
+ 0x005c, 0x0064, 0x0388, 0x0475, 0x0527, 0x04f0,
+ 0x0203, 0x00b9, 0xfe81, 0xf9a9, 0xf7f3, 0xf829,
+ 0xf927, 0xfdae, 0x027c, 0x04e6, 0x04d1, 0x0285,
+ 0x000a, 0xfbf1, 0xf85e, 0xfb2f, 0xfffc, 0x02c6,
+ 0x04b4, 0x016e, 0xfb75, 0xfab8, 0xfd0e, 0x00f1,
+ 0x0720, 0x0a2c, 0x0963, 0x07c2, 0x03a5, 0xff42,
+ 0xff73, 0x025f, 0x03fe, 0x035e, 0x0266, 0x03cf,
+ 0x0432, 0xfe61, 0xf903, 0xfacd, 0xfc4d, 0xfb97,
+ 0x002d, 0x056e, 0x04e6, 0x0353, 0x01b7, 0xff19,
+ 0xffad, 0x0222, 0x0217, 0x00b3, 0xffd1, 0xff7b,
+ 0xffc8, 0xffd0, 0xfdf3, 0xfc25, 0xfe4f, 0x013a,
+ 0xffaa, 0xfbb6, 0xf809, 0xf786, 0xfc72, 0xff61,
+ 0xfd52, 0xfd4e, 0xfd8f, 0xfaec, 0xfa05, 0xfb4d,
+ 0xfe44, 0x018f, 0xffa0, 0xfcb8, 0x0004, 0x04f8,
+ 0x06ca, 0x0575, 0x0379, 0x0637, 0x0a2d, 0x071e,
+ 0x019a, 0x0067, 0xffe6, 0xfe64, 0xff25, 0x000f,
+ 0xfeee, 0xff40, 0x0097, 0xff82, 0xfd03, 0xfa33,
+ 0xf9e0, 0xff22, 0x039a, 0x02b5, 0x00d3, 0xff1f,
+ 0xfe76, 0x00cd, 0x037f, 0x05fc, 0x0614, 0x007a,
+ 0xfc75, 0xfd32, 0xfd0c, 0xfe49, 0x00bb, 0xfe56,
+ 0xfab8, 0xf9ff, 0xfa46, 0xfc78, 0x00ff, 0x05fc,
+ 0x098f, 0x095d, 0x0648, 0x02ef, 0xfff9, 0xfe28,
+ 0xfddf, 0xfe06, 0xfca6, 0xf90a, 0xf692, 0xf7d8,
+ 0xfab8, 0xfcc9, 0xfebe, 0x0281, 0x0555, 0x038f,
+ 0x01b2, 0x0290, 0x02d8, 0x03ce, 0x04d5, 0x01e1,
+ 0xfed8, 0xffae, 0x02b8, 0x04ff, 0x02bf, 0xff00,
+ 0xfdae, 0xfa23, 0xf698, 0xf801, 0xf7df, 0xf669,
+ 0xfaa5, 0xfff6, 0x0128, 0x00bf, 0xff7d, 0xfcd3,
+ 0xfa43, 0xf8e4, 0xf7aa, 0xf74a, 0xfb34, 0x00a6,
+ 0x01a2, 0xff1e, 0xfb32, 0xf6e7, 0xf4fa, 0xf49e,
+ 0xf583, 0xf9cc, 0xfdd2, 0xfdfa, 0xfcd9, 0xfc84,
+ 0xfc5a, 0xfb37, 0xf9de, 0xf9f1, 0xf95f, 0xf794,
+ 0xf83a, 0xfb95, 0xff90, 0x02d5, 0x02ea, 0x0026,
+ 0xfdf1, 0xfdd2, 0x0002, 0x02e9, 0x0285, 0xfe40,
+ 0xfa69, 0xf931, 0xf9b5, 0xfd35, 0x0236, 0x0243,
+ 0xfe57, 0xfd04, 0xfdd6, 0xfefc, 0x00c9, 0x0041,
+ 0xfd57, 0xfbda, 0xfba5, 0xfbaf, 0xfd0f, 0xff19,
+ 0xff50, 0xfc17, 0xf6dd, 0xf3a9, 0xf4ec, 0xf8be,
+ 0xfbd6, 0xfdd4, 0xfe52, 0xfba2, 0xf862, 0xf748,
+ 0xf6db, 0xf85a, 0xfc77, 0xff00, 0xfeae, 0xfcd2,
+ 0xfb46, 0xfd33, 0xff93, 0xfd89, 0xfa8b, 0xf9fc,
+ 0xf9ef, 0xf9bb, 0xfa8b, 0xfc6a, 0xfdf2, 0xff47,
+ 0x02ce, 0x076b, 0x08ce, 0x05a1, 0x00e4, 0xfea1,
+ 0xfe9c, 0xfef4, 0xfff5, 0xfe44, 0xf926, 0xf8c7,
+ 0xfd93, 0x0009, 0xfffc, 0xfe2f, 0xf9e3, 0xf7a5,
+ 0xf984, 0xfc1d, 0xfd66, 0xfe53, 0x019e, 0x05af,
+ 0x0505, 0x011a, 0xfeb4, 0xfc99, 0xf9df, 0xf856,
+ 0xf603, 0xf26b, 0xf3c5, 0xf9c9, 0xfbae, 0xfaa2,
+ 0xfd2a, 0xfe9d, 0xfb64, 0xf911, 0xf9c0, 0xfc43,
+ 0xffc5, 0x0125, 0x0037, 0xffa6, 0xfec0, 0xfd31,
+ 0xfd44, 0xfd8e, 0xfa41, 0xf6a4, 0xf7b6, 0xf901,
+ 0xf864, 0xfb76, 0xff94, 0x0047, 0x017d, 0x027b,
+ 0x010b, 0x0123, 0x01d9, 0x0081, 0xffa1, 0xff96,
+ 0xff4c, 0xff43, 0xff7a, 0xff73, 0xfd5d, 0xf9d6,
+ 0xf877, 0xf853, 0xf721, 0xf65f, 0xf7b7, 0xfb01,
+ 0xfcfd, 0xfc0f, 0xfbe7, 0xfd5a, 0xfeea, 0x003d,
+ 0xfe39, 0xfab4, 0xfb12, 0xfbea, 0xfb14, 0xfc2b,
+ 0xfcf8, 0xfa9b, 0xf6a3, 0xf325, 0xf373, 0xf6eb,
+ 0xf7f7, 0xf5b1, 0xf495, 0xf7e3, 0xfcc5, 0xfe75,
+ 0xfe8e, 0xfe9b, 0xfbb7, 0xf79e, 0xf699, 0xf858,
+ 0xf9f1, 0xfa44, 0xfc72, 0x008a, 0x01c1, 0x0296,
+ 0x0603, 0x05b0, 0x00ea, 0xfe9d, 0xff53, 0xff0b,
+ 0xfcf5, 0xfc50, 0xfe4b, 0x0018, 0x0263, 0x0544,
+ 0x051b, 0x03f4, 0x02b5, 0xfdc3, 0xf9e1, 0xfb81,
+ 0xfe5d, 0x0034, 0x00ba, 0x0120, 0x037e, 0x0306,
+ 0xff8d, 0x00ea, 0x03cc, 0x00b1, 0xfab5, 0xf6cd,
+ 0xf7b6, 0xfcf3, 0x0097, 0x008e, 0xff79, 0xfdc6,
+ 0xfd12, 0xff72, 0x023b, 0x030d, 0x03b0, 0x03bc,
+ 0x0090, 0xfdee, 0xffc6, 0x010a, 0x0010, 0x0111,
+ 0x01f8, 0x01f8, 0x0377, 0x01e8, 0xfe5a, 0x0147,
+ 0x0732, 0x07ee, 0x05ab, 0x057a, 0x06e2, 0x0562,
+ 0x0104, 0xff42, 0xffb9, 0xff87, 0x00e5, 0x0344,
+ 0x0394, 0x021c, 0xffcc, 0xfe66, 0xfe10, 0xfc47,
+ 0xfbd0, 0x003c, 0x059c, 0x071f, 0x056d, 0x0531,
+ 0x0786, 0x06df, 0x0370, 0x032d, 0x03d8, 0x01cd,
+ 0xffea, 0xfe40, 0xfb75, 0xfafe, 0xfde2, 0xff80,
+ 0xfe64, 0xff40, 0x0349, 0x05d2, 0x0617, 0x05eb,
+ 0x034d, 0xff5b, 0xfed8, 0x00a8, 0x01a0, 0x02fa,
+ 0x03a1, 0xffd4, 0xfb80, 0xfce9, 0x007a, 0x01a8,
+ 0x029f, 0x03fa, 0x0562, 0x078e, 0x0880, 0x08e8,
+ 0x09d9, 0x077f, 0x0320, 0x0072, 0xfe61, 0xfec3,
+ 0x018f, 0x025b, 0x03ae, 0x06aa, 0x064a, 0x0357,
+ 0x0020, 0xfd22, 0xfc7a, 0xfc8e, 0xfcb3, 0xff6a,
+ 0x0200, 0x02f3, 0x03e7, 0x033c, 0x01d9, 0x01bc,
+ 0x017d, 0x012f, 0xff3c, 0xfa7e, 0xf848, 0xfaa4,
+ 0xfe14, 0xffa5, 0xfd66, 0xfb3f, 0xfe2e, 0x033c,
+ 0x06c6, 0x06af, 0x02e3, 0x0207, 0x0453, 0x0270,
+ 0xff26, 0xfebc, 0xfd26, 0xfb12, 0xfc87, 0xffca,
+ 0x02c5, 0x05c0, 0x07b3, 0x06c4, 0x03ac, 0x0203,
+ 0x03c8, 0x0762, 0x0925, 0x06f7, 0x0422, 0x0356,
+ 0x01a0, 0xfe88, 0xfe1e, 0x0196, 0x054d, 0x0523,
+ 0x033d, 0x036d, 0x024b, 0xffd1, 0x0226, 0x0601,
+ 0x0466, 0x0014, 0xff1a, 0x0349, 0x070e, 0x03d0,
+ 0xff08, 0x0019, 0x0392, 0x04dc, 0x0260, 0xfd14,
+ 0xfb52, 0xfe84, 0x0079, 0x0052, 0x015d, 0x02eb,
+ 0x02c8, 0x0233, 0x03f8, 0x0660, 0x0682, 0x05da,
+ 0x040f, 0x0008, 0xfde5, 0xfe74, 0xfe37, 0xfd64,
+ 0xfc7a, 0xfc30, 0xfed2, 0x0211, 0x0378, 0x0499,
+ 0x04de, 0x047b, 0x0668, 0x0932, 0x09ea, 0x09a8,
+ 0x0995, 0x0851, 0x0442, 0xff23, 0xfcf9, 0xfdf6,
+ 0xff76, 0x01f0, 0x0684, 0x09c4, 0x073b, 0x0100,
+ 0xfe0e, 0x00c5, 0x04e0, 0x05d6, 0x0424, 0x0343,
+ 0x0229, 0xff36, 0x004d, 0x071d, 0x0b81, 0x0b27,
+ 0x08dc, 0x046f, 0x0144, 0x01ec, 0x02c9, 0x03b7,
+ 0x0497, 0x01b4, 0xff39, 0x0211, 0x04b5, 0x03cc,
+ 0x030f, 0x038c, 0x043b, 0x04d0, 0x045a, 0x03c1,
+ 0x0522, 0x06ef, 0x062b, 0x04e9, 0x06cb, 0x0967,
+ 0x0a17, 0x0b11, 0x0b03, 0x0700, 0x0368, 0x040d,
+ 0x070e, 0x0aed, 0x0c72, 0x08b1, 0x03d2, 0x00ae,
+ 0xfd9b, 0xfd1c, 0x00cf, 0x044e, 0x0614, 0x0757,
+ 0x0647, 0x02d2, 0x00c7, 0x023b, 0x0598, 0x0720,
+ 0x038d, 0xfd00, 0xfa36, 0xfd9d, 0x02fa, 0x06da,
+ 0x08f6, 0x0960, 0x07e2, 0x03d5, 0xfeb4, 0xfc82,
+ 0xfd19, 0xfd1d, 0xfc96, 0xfbb8, 0xf9bd, 0xf973,
+ 0xfdbb, 0x03c4, 0x058f, 0x026a, 0x0015, 0xff96,
+ 0xfdd7, 0xfdbd, 0x00e6, 0x0315, 0x0383, 0x03a5,
+ 0x043a, 0x0697, 0x08b9, 0x0901, 0x08be, 0x06b9,
+ 0x040d, 0x0369, 0x0258, 0x01a9, 0x03bb, 0x037a,
+ 0xff58, 0xfcd5, 0xfd85, 0xfe9c, 0xfe4a, 0xff0c,
+ 0x02ae, 0x0499, 0x03e2, 0x03d3, 0x023b, 0x0066,
+ 0x02c2, 0x048a, 0x0142, 0xfbee, 0xf887, 0xfa20,
+ 0xff10, 0x0327, 0x05bb, 0x05ee, 0x0508, 0x0544,
+ 0x02aa, 0xfec5, 0xffe9, 0x0169, 0x001f, 0x00dc,
+ 0x01a6, 0x0097, 0x018c, 0x0334, 0x033a, 0x03f0,
+ 0x05c8, 0x0683, 0x052c, 0x0370, 0x0394, 0x05b8,
+ 0x07ed, 0x0723, 0x0431, 0x043a, 0x05f1, 0x0538,
+ 0x0614, 0x0a80, 0x0ca0, 0x0a30, 0x069f, 0x058f,
+ 0x07d2, 0x0a30, 0x09d8, 0x07dd, 0x06c1, 0x06df,
+ 0x065b, 0x0647, 0x085e, 0x084a, 0x042c, 0x0183,
+ 0x0269, 0x04e5, 0x07e2, 0x089d, 0x0592, 0x018a,
+ 0xff3f, 0xffa3, 0x023d, 0x05a6, 0x08b9, 0x093f,
+ 0x05fd, 0x029b, 0x0201, 0x012b, 0xfe79, 0xfd85,
+ 0xfe86, 0xfd70, 0xfb29, 0xfbb7, 0xfed1, 0x01a7,
+ 0x0269, 0x0170, 0x0097, 0x002b, 0xffa7, 0xfee0,
+ 0xfdf3, 0xff31, 0x0224, 0x0163, 0xfd8f, 0xfc4b,
+ 0xfd12, 0xfcb1, 0xfbae, 0xfcb3, 0x002e, 0x018b,
+ 0xff84, 0xffcc, 0x0202, 0x00c1, 0xfe06, 0xfd0f,
+ 0xfbaa, 0xf999, 0xf9e7, 0xfbf5, 0xfb97, 0xf8b0,
+ 0xf7be, 0xf9d8, 0xfc2d, 0xfd9f, 0xfe44, 0xfdef,
+ 0xfd0e, 0xfb47, 0xf7ce, 0xf4ec, 0xf68e, 0xfb88,
+ 0xfef7, 0xff6f, 0xfdc5, 0xfb8a, 0xfc08, 0xfd55,
+ 0xfa36, 0xf5c7, 0xf548, 0xf619, 0xf5d1, 0xf796,
+ 0xfc42, 0xfecd, 0xfcee, 0xfb44, 0xfbc5, 0xfc18,
+ 0xfcd3, 0xfe6f, 0xffea, 0x01cd, 0x02ce, 0x024d,
+ 0x0222, 0x014e, 0xffe1, 0xff73, 0xfe30, 0xfd42,
+ 0xfedf, 0xff84, 0xff57, 0x02b7, 0x0811, 0x0ab2,
+ 0x08c1, 0x0411, 0x0045, 0xfef3, 0xffbb, 0x0065,
+ 0xfeb4, 0xfd46, 0xfda3, 0xfcf0, 0xfbe2, 0xfca2,
+ 0xfe56, 0xffc4, 0xfeca, 0xfc2b, 0xfc13, 0xfdda,
+ 0xff6b, 0x0117, 0x00f3, 0xff6c, 0xffea, 0x00ce,
+ 0xff36, 0xfc8c, 0xfb29, 0xfb00, 0xfa0c, 0xf7ba,
+ 0xf5b4, 0xf5cc, 0xf93a, 0xfd5a, 0xfdc5, 0xfbcd,
+ 0xfb12, 0xfca1, 0xffc2, 0x00e4, 0xff4a, 0xffdd,
+ 0x02c6, 0x03f6, 0x03e2, 0x0425, 0x0399, 0x00ff,
+ 0xfddc, 0xfd05, 0xfd9a, 0xfe26, 0x007a, 0x0350,
+ 0x03d5, 0x02fd, 0x00e6, 0xfdd3, 0xfc3d, 0xfb98,
+ 0xfab6, 0xf9dd, 0xf856, 0xf7e2, 0xf9b3, 0xfae9,
+ 0xfc08, 0xfe00, 0xfd54, 0xfb6a, 0xfbe6, 0xfbd2,
+ 0xf9dd, 0xf8ff, 0xf8ad, 0xf809, 0xf8ab, 0xf9ee,
+ 0xfa58, 0xfa47, 0xfa15, 0xfa6d, 0xfc7e, 0xff39,
+ 0xffa1, 0xfd28, 0xfa75, 0xf8df, 0xf790, 0xf6d7,
+ 0xf78f, 0xf971, 0xfba3, 0xfcaf, 0xfcbf, 0xfe22,
+ 0x0015, 0x00b1, 0x0205, 0x0463, 0x048a, 0x030f,
+ 0x0245, 0x00a9, 0xfd96, 0xfb74, 0xfaa7, 0xfa71,
+ 0xfcbc, 0x0195, 0x04b4, 0x0473, 0x032d, 0x0158,
+ 0xfe9a, 0xfccb, 0xfca7, 0xfbab, 0xf8cc, 0xf7b5,
+ 0xf9ea, 0xfbc1, 0xfd2e, 0xffbc, 0x0013, 0xfeb6,
+ 0xfeff, 0xfe66, 0xfd31, 0xfe6c, 0xfed7, 0xfd6f,
+ 0xfcbd, 0xfb83, 0xfb0f, 0xfd82, 0xffad, 0x00da,
+ 0x024d, 0x0208, 0x0024, 0xfe79, 0xfcc0, 0xfae9,
+ 0xfa32, 0xfb5e, 0xfc7b, 0xfc7a, 0xfe9d, 0x01cb,
+ 0x0131, 0xffc2, 0x014b, 0x02e0, 0x0351, 0x03e8,
+ 0x0440, 0x03c0, 0x01f9, 0x001f, 0xff3c, 0xfdbd,
+ 0xfc86, 0xfcd4, 0xfd0f, 0xfed5, 0x027d, 0x03c5,
+ 0x032f, 0x02a1, 0x006a, 0xfdbe, 0xfb95, 0xf975,
+ 0xfa16, 0xfbcf, 0xfacb, 0xfb86, 0x0079, 0x048b,
+ 0x0644, 0x066b, 0x03e4, 0x006d, 0xfe03, 0xfc22,
+ 0xfb96, 0xfc4f, 0xfb62, 0xf8ce, 0xf8b3, 0xfc38,
+ 0x0068, 0x048f, 0x0878, 0x087b, 0x04f0, 0x02c8,
+ 0x016d, 0xfef6, 0xfe85, 0xffc8, 0xfec2, 0xfca4,
+ 0xfcc1, 0xff59, 0x0304, 0x05b4, 0x069d, 0x0714,
+ 0x07bc, 0x08c3, 0x0a3c, 0x0a12, 0x0798, 0x05cd,
+ 0x04f3, 0x02dd, 0x01db, 0x03fe, 0x0667, 0x084b,
+ 0x0a11, 0x08b2, 0x0508, 0x03df, 0x0430, 0x019c,
+ 0xfcf2, 0xfb48, 0xfd72, 0xfdce, 0xfbdc, 0xfd2e,
+ 0x008a, 0x02cd, 0x05bb, 0x0755, 0x059e, 0x03c8,
+ 0x0205, 0x0064, 0x00c5, 0xfff4, 0xfd23, 0xfd1a,
+ 0xffde, 0x028f, 0x046d, 0x0552, 0x05b9, 0x049f,
+ 0x0166, 0xff2a, 0xfea5, 0xfdfb, 0xfdff, 0xfee3,
+ 0xffa7, 0x00f6, 0x02c3, 0x0423, 0x04d8, 0x0547,
+ 0x06c6, 0x091e, 0x0a5e, 0x0a74, 0x0a27, 0x08d0,
+ 0x060d, 0x0354, 0x027e, 0x033e, 0x0480, 0x066b,
+ 0x0834, 0x0885, 0x07f6, 0x07d6, 0x0865, 0x07db,
+ 0x040d, 0xfeb6, 0xfbfb, 0xfd30, 0xff90, 0xffcb,
+ 0xfe84, 0xfe1f, 0xff26, 0x01f0, 0x0490, 0x0434,
+ 0x037d, 0x032b, 0xff3a, 0xfa91, 0xf9ca, 0xfa18,
+ 0xfa64, 0xfc40, 0xfe3b, 0x00c2, 0x04b4, 0x0692,
+ 0x054c, 0x048c, 0x04c3, 0x0361, 0x014e, 0x0069,
+ 0xffb4, 0xfebd, 0xfdb7, 0xfc9c, 0xfd8f, 0x00c5,
+ 0x0389, 0x05ff, 0x08af, 0x0a4c, 0x0a8c, 0x0952,
+ 0x07bf, 0x06c9, 0x04e1, 0x037e, 0x03f0, 0x0391,
+ 0x03de, 0x0561, 0x0489, 0x04b1, 0x0740, 0x064b,
+ 0x0351, 0x0170, 0xfe2f, 0xfba5, 0xfc44, 0xfe49,
+ 0x0180, 0x0416, 0x035e, 0x0087, 0xfdbd, 0xfd83,
+ 0x0027, 0x0272, 0x03c4, 0x0465, 0x02d6, 0xff82,
+ 0xfbb5, 0xf9d3, 0xfbd3, 0xfee6, 0x01aa, 0x0551,
+ 0x072a, 0x0602, 0x040f, 0x025d, 0x028a, 0x03b8,
+ 0x028e, 0x009c, 0xffbf, 0xfec9, 0x0010, 0x0503,
+ 0x08a8, 0x0820, 0x0740, 0x08b0, 0x0a51, 0x0b4a,
+ 0x0c29, 0x0af3, 0x07f5, 0x05f1, 0x0498, 0x0445,
+ 0x05d4, 0x06cb, 0x075b, 0x08f0, 0x08c3, 0x06da,
+ 0x06c0, 0x07eb, 0x0730, 0x03a0, 0xffd2, 0xfe38,
+ 0xfdd8, 0xfeba, 0x00fd, 0x00f4, 0xfedc, 0xff35,
+ 0x011d, 0x019e, 0x0135, 0x00cf, 0x0094, 0xfffe,
+ 0xff25, 0xff36, 0xfec6, 0xfce3, 0xfc80, 0xfe6f,
+ 0x01a5, 0x0618, 0x087b, 0x06a9, 0x040b, 0x01d9,
+ 0xffd9, 0x0062, 0x01c2, 0x0084, 0xff03, 0xff84,
+ 0x0089, 0x00e0, 0x0052, 0x007b, 0x02b5, 0x03f6,
+ 0x02a4, 0x0288, 0x0550, 0x07ee, 0x07b1, 0x04da,
+ 0x01bb, 0xfff6, 0xff6d, 0xffa6, 0x0010, 0x0062,
+ 0x00c6, 0x0167, 0x0292, 0x02f8, 0x0083, 0xfd12,
+ 0xfbcb, 0xfbdc, 0xfbc3, 0xfc2b, 0xfd3d, 0xfe1c,
+ 0xfec6, 0xff2a, 0xfe72, 0xfe13, 0x0019, 0x01b3,
+ 0x004d, 0xfd6c, 0xf90a, 0xf4a7, 0xf3fd, 0xf539,
+ 0xf783, 0xfdb9, 0x03ea, 0x0610, 0x0668, 0x0448,
+ 0xffca, 0xfdae, 0xfdf6, 0xfd82, 0xfc1f, 0xfa86,
+ 0xf99b, 0xf981, 0xfa0d, 0xfc58, 0xff63, 0x00d5,
+ 0x00e4, 0x007b, 0xffab, 0xfe81, 0xfebd, 0x0221,
+ 0x051e, 0x04f9, 0x05bd, 0x0803, 0x08f5, 0x0a76,
+ 0x0bc2, 0x093b, 0x05ff, 0x0599, 0x053c, 0x0243,
+ 0xff21, 0xff88, 0x0162, 0x009a, 0x0037, 0x035f,
+ 0x05c5, 0x04d9, 0x03d0, 0x045c, 0x0527, 0x05e4,
+ 0x0808, 0x0b89, 0x0d4c, 0x0a66, 0x03ce, 0xfdd6,
+ 0xfb91, 0xfd4d, 0x0341, 0x0b47, 0x1003, 0x1041,
+ 0x0ebc, 0x0c5a, 0x0a1d, 0x093e, 0x08e6, 0x0868,
+ 0x0712, 0x052f, 0x0563, 0x06b8, 0x0616, 0x05dc,
+ 0x0812, 0x098f, 0x08e9, 0x0726, 0x04b7, 0x03be,
+ 0x05ac, 0x0820, 0x092c, 0x091d, 0x0881, 0x0887,
+ 0x08f9, 0x0743, 0x03dc, 0x029e, 0x0485, 0x06b9,
+ 0x05a6, 0x007f, 0xfb8d, 0xfa76, 0xfb07, 0xfad1,
+ 0xfaf3, 0xfbd3, 0xfc76, 0xfd6e, 0xff6f, 0x00cd,
+ 0xffec, 0xfe34, 0xfd94, 0xfdb8, 0xfd5f, 0xfb6b,
+ 0xf7cd, 0xf489, 0xf33d, 0xf448, 0xf84b, 0xfdc7,
+ 0x013c, 0x01f5, 0x00f5, 0xfe6c, 0xfc19, 0xfb2e,
+ 0xf9f1, 0xf8e1, 0xf9a5, 0xfa0f, 0xf966, 0xfa3e,
+ 0xfcbb, 0x0004, 0x0380, 0x05a4, 0x074c, 0x0838,
+ 0x060a, 0x04b1, 0x0713, 0x0879, 0x0979, 0x0ce5,
+ 0x0e03, 0x0c47, 0x0ba2, 0x0a42, 0x07cc, 0x0727,
+ 0x0758, 0x0658, 0x029d, 0xfc2d, 0xf73e, 0xf59d,
+ 0xf54b, 0xf63e, 0xf750, 0xf678, 0xf5ef, 0xf76f,
+ 0xf894, 0xf80a, 0xf6e9, 0xf543, 0xf293, 0xefa7,
+ 0xec86, 0xe895, 0xe5ca, 0xe549, 0xe645, 0xeb4b,
+ 0xf4f9, 0xfce3, 0xff51, 0xfec6, 0xfdd8, 0xfdd1,
+ 0xfdec, 0xfc56, 0xf9e9, 0xf7cd, 0xf5f9, 0xf5dd,
+ 0xf895, 0xfd62, 0x02e6, 0x05dd, 0x0327, 0xfd22,
+ 0xf91f, 0xf8c0, 0xfaea, 0xfefd, 0x034a, 0x06ae,
+ 0x0a16, 0x0b7a, 0x091f, 0x07bf, 0x0941, 0x08e3,
+ 0x0609, 0x04c2, 0x0633, 0x06f0, 0x0386, 0xfffe,
+ 0x014e, 0x026e, 0xffbf, 0xfde8, 0xfdd5, 0xfe45,
+ 0x00ad, 0x0303, 0x0396, 0x0456, 0x0475, 0x032c,
+ 0x01c3, 0xff38, 0xfc21, 0xfbaa, 0xfcca, 0xfca8,
+ 0xfce8, 0x002b, 0x0438, 0x0579, 0x04d3, 0x04a8,
+ 0x0531, 0x05eb, 0x05b6, 0x0489, 0x046a, 0x04e2,
+ 0x03af, 0x00b9, 0xfd19, 0xfbf3, 0xffdc, 0x04c9,
+ 0x065a, 0x065d, 0x064d, 0x04a8, 0x016c, 0xfdd7,
+ 0xfb1d, 0xfbb3, 0x00c3, 0x0667, 0x0905, 0x0b7e,
+ 0x0fd6, 0x1221, 0x107b, 0x0d0b, 0x08ba, 0x037a,
+ 0xfecd, 0xfd6f, 0xfe91, 0xfd27, 0xfa48, 0xfb44,
+ 0xfd03, 0xfc52, 0xfdc5, 0x00d3, 0x008c, 0xfed5,
+ 0xfeba, 0xff3a, 0xff17, 0xfd3a, 0xfa41, 0xf925,
+ 0xf9fa, 0xfafe, 0xfdd3, 0x0347, 0x077f, 0x0914,
+ 0x0ac9, 0x0b96, 0x0906, 0x057b, 0x02c6, 0x00ab,
+ 0x012f, 0x0431, 0x060f, 0x04ca, 0x00a9, 0xfcaf,
+ 0xfc46, 0xfdef, 0xff45, 0x005f, 0x000d, 0xfd60,
+ 0xfa00, 0xf85b, 0xfab0, 0x00c1, 0x0800, 0x0e38,
+ 0x10c3, 0x0ed4, 0x0b28, 0x0702, 0x02b3, 0x0003,
+ 0xfe5d, 0xfc43, 0xfb77, 0xfce4, 0xfd39, 0xfa70,
+ 0xf84d, 0xf981, 0xfaae, 0xfa10, 0xf98d, 0xf97b,
+ 0xfac4, 0xfe49, 0x0174, 0x0287, 0x01a2, 0xff4c,
+ 0xfdef, 0xfde9, 0xfd5e, 0xfde1, 0x0122, 0x0567,
+ 0x089d, 0x0a1e, 0x0acd, 0x0aa6, 0x08e4, 0x07aa,
+ 0x07ee, 0x07c1, 0x0822, 0x09b9, 0x09f7, 0x0899,
+ 0x0773, 0x07f2, 0x0a3d, 0x0bac, 0x0a1b, 0x0607,
+ 0x0134, 0xfe90, 0xff18, 0x01eb, 0x0709, 0x0be0,
+ 0x0dfb, 0x0f99, 0x11e6, 0x13fd, 0x1517, 0x1305,
+ 0x0ee0, 0x0bb9, 0x0877, 0x05a0, 0x0535, 0x04cc,
+ 0x03ab, 0x03e2, 0x04c3, 0x05d3, 0x0792, 0x08e4,
+ 0x0956, 0x0a81, 0x0dfe, 0x1242, 0x13f6, 0x133b,
+ 0x1206, 0x10d7, 0x1043, 0x1035, 0x0ff3, 0x0f84,
+ 0x0e66, 0x0cd1, 0x0bc3, 0x0b80, 0x0cf3, 0x0e97,
+ 0x0d20, 0x0aa7, 0x09a0, 0x084f, 0x07c5, 0x094a,
+ 0x0a08, 0x0943, 0x0892, 0x07de, 0x063e, 0x0341,
+ 0xffa8, 0xfba0, 0xf6b7, 0xf356, 0xf347, 0xf529,
+ 0xf886, 0xfc0d, 0xfd83, 0xfdb6, 0xfc77, 0xf839,
+ 0xf2ea, 0xef28, 0xedb0, 0xeca8, 0xe885, 0xe3db,
+ 0xe42b, 0xe6e2, 0xe7df, 0xe89b, 0xea03, 0xeba6,
+ 0xec90, 0xe9d1, 0xe449, 0xe0c1, 0xe054, 0xe178,
+ 0xe2aa, 0xe15b, 0xdd6d, 0xda57, 0xda63, 0xdcf3,
+ 0xdf7a, 0xdf76, 0xde00, 0xdddc, 0xde98, 0xdf17,
+ 0xe106, 0xe472, 0xe697, 0xe71a, 0xe721, 0xe67c,
+ 0xe6c8, 0xe99f, 0xec68, 0xedb1, 0xef6f, 0xf164,
+ 0xf22d, 0xf247, 0xf191, 0xefd1, 0xee79, 0xee65,
+ 0xef60, 0xf24a, 0xf846, 0xffeb, 0x06bb, 0x0c9b,
+ 0x112c, 0x11f4, 0x0f78, 0x0d34, 0x0c28, 0x0ad3,
+ 0x084f, 0x06bc, 0x093d, 0x0e90, 0x1373, 0x1617,
+ 0x137b, 0x0b4d, 0x0293, 0xfc54, 0xf8ff, 0xf9d1,
+ 0xfe0c, 0x0396, 0x087a, 0x0a72, 0x0972, 0x0721,
+ 0x05dc, 0x08ae, 0x0dd8, 0x1067, 0x103c, 0x0f5e,
+ 0x0f0e, 0x1128, 0x13f7, 0x1411, 0x12a0, 0x1203,
+ 0x1369, 0x1841, 0x1ef2, 0x2305, 0x22d6, 0x20ae,
+ 0x1ee7, 0x1d54, 0x1aee, 0x1750, 0x11e8, 0x0be5,
+ 0x08de, 0x0a96, 0x0fe3, 0x15cf, 0x1877, 0x177b,
+ 0x1724, 0x1aa3, 0x212b, 0x27ba, 0x2bea, 0x2da4,
+ 0x2ca1, 0x281f, 0x2339, 0x2265, 0x252c, 0x2837,
+ 0x296f, 0x2800, 0x2418, 0x1e4d, 0x170d, 0x0fcc,
+ 0x0b4d, 0x0c25, 0x1212, 0x1822, 0x1894, 0x12d0,
+ 0x0aea, 0x05ac, 0x0786, 0x120a, 0x1eaf, 0x2332,
+ 0x1d8d, 0x1339, 0x0836, 0x000b, 0xfe8d, 0x023d,
+ 0x0658, 0x084b, 0x07c0, 0x06bb, 0x078b, 0x084e,
+ 0x053e, 0xfe90, 0xf814, 0xf45a, 0xf3bf, 0xf635,
+ 0xf9a2, 0xfb3f, 0xfb7a, 0xfa74, 0xf77d, 0xf4d3,
+ 0xf2f4, 0xf13c, 0xf411, 0xfd5e, 0x07e2, 0x0f35,
+ 0x10e2, 0x0aa1, 0xfe60, 0xf2f3, 0xee95, 0xf0da,
+ 0xf618, 0xfd57, 0x0363, 0x039a, 0xffbb, 0xfa71,
+ 0xf3da, 0xee79, 0xec0c, 0xed40, 0xf3fd, 0xfc81,
+ 0xff04, 0xf9f3, 0xf275, 0xeedf, 0xf16a, 0xf7ca,
+ 0xff3c, 0x0436, 0x0408, 0x00fd, 0xfe3b, 0xfc89,
+ 0xfbfd, 0xfb98, 0xfb6e, 0xfd53, 0x0136, 0x06ad,
+ 0x0dcf, 0x13c9, 0x14ed, 0x1084, 0x0874, 0x0033,
+ 0xfa9b, 0xf7bd, 0xf6ba, 0xf7c2, 0xfa3f, 0xfcc6,
+ 0xffdd, 0x0345, 0x0436, 0x032f, 0x0323, 0x0422,
+ 0x05b2, 0x06f9, 0x05bf, 0x02ba, 0xfff0, 0xfe96,
+ 0x00dc, 0x04ab, 0x0414, 0xff74, 0xfbc2, 0xfa6c,
+ 0xf9f2, 0xf941, 0xf854, 0xf74c, 0xf6a8, 0xf79f,
+ 0xf993, 0xfa90, 0xf9e7, 0xf7a9, 0xf5c9, 0xf6bd,
+ 0xf904, 0xfb55, 0xff2a, 0x0254, 0x0196, 0xff07,
+ 0xfd28, 0xfb96, 0xfae7, 0xfc03, 0xfdcc, 0xff96,
+ 0x01e5, 0x043a, 0x05fc, 0x0775, 0x0878, 0x088a,
+ 0x077d, 0x05a2, 0x0357, 0xffd7, 0xfbd3, 0xf993,
+ 0xf820, 0xf77b, 0xfa67, 0xfd78, 0xfc3e, 0xfa1a,
+ 0xf97d, 0xf975, 0xfafe, 0xfc63, 0xf9ee, 0xf496,
+ 0xf010, 0xeeb5, 0xf021, 0xf1d4, 0xf195, 0xeeb0,
+ 0xeb15, 0xe8f1, 0xe78f, 0xe6b0, 0xe684, 0xe5ba,
+ 0xe48b, 0xe2b7, 0xdf7d, 0xde04, 0xdf04, 0xdfe0,
+ 0xe283, 0xe72a, 0xe995, 0xea4e, 0xebc6, 0xeca6,
+ 0xec61, 0xec07, 0xeb33, 0xe8fe, 0xe548, 0xe038,
+ 0xdb0d, 0xd8bd, 0xda65, 0xde18, 0xe244, 0xe55e,
+ 0xe68a, 0xe759, 0xe769, 0xe606, 0xe5d4, 0xe713,
+ 0xe853, 0xeac9, 0xee95, 0xf3df, 0xfb8a, 0x0319,
+ 0x0869, 0x0ba4, 0x0cce, 0x0d63, 0x0e3f, 0x0e0c,
+ 0x0c79, 0x09f2, 0x07ad, 0x06cf, 0x0658, 0x0624,
+ 0x062d, 0x058b, 0x05db, 0x072b, 0x07ec, 0x09ac,
+ 0x0b4d, 0x0adc, 0x0b35, 0x0b66, 0x0859, 0x051a,
+ 0x03bf, 0x0398, 0x05e5, 0x0a22, 0x0de0, 0x10d3,
+ 0x1482, 0x193c, 0x1bf6, 0x1a62, 0x163c, 0x11d6,
+ 0x0edd, 0x0e08, 0x0eae, 0x111f, 0x151c, 0x186e,
+ 0x18cf, 0x1493, 0x0d91, 0x0761, 0x01a3, 0xfc45,
+ 0xf940, 0xf7a5, 0xf61e, 0xf4d7, 0xf483, 0xf728,
+ 0xfbe2, 0xff19, 0x0087, 0x01b3, 0x0302, 0x03f7,
+ 0x03fb, 0x0341, 0x006d, 0xfb31, 0xf73d, 0xf520,
+ 0xf3bd, 0xf4e7, 0xf651, 0xf545, 0xf419, 0xf1b7,
+ 0xecb2, 0xe8f0, 0xe8f0, 0xed1a, 0xf370, 0xf604,
+ 0xf333, 0xee77, 0xea34, 0xe865, 0xea01, 0xee14,
+ 0xf3a7, 0xfa42, 0x01ff, 0x0938, 0x0d2d, 0x0e30,
+ 0x0ce5, 0x09f8, 0x0836, 0x073d, 0x05c4, 0x06b9,
+ 0x0acb, 0x0f66, 0x12e7, 0x135a, 0x10d5, 0x0ebe,
+ 0x0e7f, 0x0deb, 0x0be1, 0x0ae3, 0x0b4f, 0x09a8,
+ 0x0729, 0x07c6, 0x0ad2, 0x0eef, 0x131a, 0x155c,
+ 0x157d, 0x130e, 0x0f00, 0x0ca2, 0x0b12, 0x08f4,
+ 0x0842, 0x0853, 0x0808, 0x07ee, 0x07ec, 0x0996,
+ 0x0c58, 0x0cc4, 0x0bd1, 0x0ad1, 0x0993, 0x0aa9,
+ 0x0caf, 0x0a7f, 0x04f9, 0x0054, 0xfdbe, 0xfc86,
+ 0xfd61, 0x017a, 0x06c9, 0x0bb1, 0x108b, 0x11d7,
+ 0x0d5e, 0x074a, 0x0287, 0xffbf, 0xff98, 0x0099,
+ 0x01f8, 0x0365, 0x032d, 0x0266, 0x035a, 0x057b,
+ 0x07f8, 0x0a8c, 0x0bec, 0x0a67, 0x0665, 0x027c,
+ 0xff4c, 0xfcaf, 0xfcbe, 0xff54, 0x0237, 0x04ff,
+ 0x0745, 0x0834, 0x06a5, 0x0202, 0xfdcf, 0xfca2,
+ 0xfbe0, 0xf985, 0xf5b7, 0xf1d7, 0xeffb, 0xef1b,
+ 0xee1e, 0xee78, 0xefcd, 0xf17d, 0xf349, 0xf3b2,
+ 0xf3bb, 0xf460, 0xf3a9, 0xf179, 0xee41, 0xea3e,
+ 0xe8a0, 0xeaea, 0xef39, 0xf44c, 0xf9a5, 0xff30,
+ 0x0365, 0x038c, 0x00cf, 0xfdd3, 0xfae7, 0xf950,
+ 0xfa5a, 0xfd35, 0x00c6, 0x043c, 0x06f4, 0x07e6,
+ 0x0695, 0x0527, 0x0466, 0x029d, 0x001a, 0xfd41,
+ 0xf973, 0xf6b7, 0xf68d, 0xf6e9, 0xf66b, 0xf67f,
+ 0xf892, 0xfc44, 0x00fd, 0x0594, 0x0761, 0x06b9,
+ 0x06eb, 0x082a, 0x08df, 0x08bb, 0x075a, 0x04e2,
+ 0x0254, 0x0078, 0xfecf, 0xfbce, 0xf92b, 0xf9ce,
+ 0xfbdb, 0xfdce, 0x008b, 0x0254, 0x02b8, 0x0354,
+ 0x02db, 0x013e, 0x00e5, 0x01bd, 0x0265, 0x0308,
+ 0x058e, 0x0aaa, 0x0fa8, 0x1328, 0x158d, 0x151b,
+ 0x1229, 0x0f80, 0x0dae, 0x0d4d, 0x0ed1, 0x1038,
+ 0x1067, 0x0f49, 0x0ce2, 0x0b3c, 0x0b4c, 0x0aa5,
+ 0x0728, 0x0146, 0xfb3f, 0xf717, 0xf4c7, 0xf3d7,
+ 0xf4d6, 0xf71c, 0xf8bf, 0xfa2e, 0xfcb1, 0xfe79,
+ 0xfe75, 0xfecc, 0xffd0, 0xffa9, 0xfd5c, 0xf988,
+ 0xf6c4, 0xf555, 0xf2c9, 0xf0fd, 0xf203, 0xf2b4,
+ 0xf289, 0xf451, 0xf805, 0xfc6e, 0x0005, 0x0125,
+ 0xffe9, 0xfce3, 0xfa0e, 0xfa74, 0xfda5, 0x012f,
+ 0x035a, 0x036a, 0x0370, 0x0554, 0x0819, 0x0b31,
+ 0x0e5e, 0x10e4, 0x1286, 0x1193, 0x0e11, 0x0ce4,
+ 0x0fef, 0x1307, 0x13b7, 0x130f, 0x11a9, 0x1062,
+ 0x10a7, 0x1072, 0x0ce3, 0x08ef, 0x0839, 0x085a,
+ 0x06e9, 0x0517, 0x03c9, 0x0406, 0x0739, 0x0c0e,
+ 0x0f7c, 0x0fd7, 0x0d22, 0x0847, 0x02c4, 0xfd94,
+ 0xf863, 0xf439, 0xf371, 0xf4f2, 0xf5ec, 0xf60e,
+ 0xf4ec, 0xf28b, 0xf257, 0xf683, 0xfcd2, 0x028f,
+ 0x0723, 0x09de, 0x08b7, 0x045f, 0x00cc, 0xff92,
+ 0x0080, 0x03fc, 0x07cc, 0x0a29, 0x0d19, 0x107f,
+ 0x1220, 0x12c6, 0x135b, 0x12f4, 0x1229, 0x128e,
+ 0x1403, 0x1539, 0x158d, 0x14e7, 0x12fe, 0x1042,
+ 0x0e2f, 0x0dd9, 0x0e84, 0x0e6c, 0x0dc6, 0x0dc9,
+ 0x0cfc, 0x0a62, 0x0807, 0x067c, 0x0515, 0x04cf,
+ 0x05b3, 0x06d7, 0x0852, 0x09dd, 0x0b45, 0x0c8b,
+ 0x0cae, 0x0baf, 0x0a1d, 0x074e, 0x03f0, 0x0101,
+ 0xfcf2, 0xf7d6, 0xf464, 0xf2ce, 0xf1d9, 0xf232,
+ 0xf4ab, 0xf8ca, 0xfccc, 0xfe12, 0xfc09, 0xf89e,
+ 0xf54a, 0xf283, 0xf058, 0xeed1, 0xee9d, 0xefe2,
+ 0xf246, 0xf685, 0xfc02, 0x007d, 0x03d5, 0x061c,
+ 0x0614, 0x04d8, 0x0397, 0x00fe, 0xfe87, 0xffc0,
+ 0x03b4, 0x0741, 0x09cc, 0x0b55, 0x0b15, 0x095b,
+ 0x0766, 0x059c, 0x0397, 0x0186, 0xff70, 0xfceb,
+ 0xfbc8, 0xfe40, 0x0287, 0x066b, 0x0af6, 0x1002,
+ 0x1375, 0x14c9, 0x1424, 0x11ae, 0x0ebb, 0x0cfd,
+ 0x0d71, 0x0ec8, 0x0ec1, 0x0e8d, 0x0f92, 0x0fcf,
+ 0x0f30, 0x0fac, 0x10cf, 0x124e, 0x148b, 0x15ea,
+ 0x159d, 0x142d, 0x10b5, 0x0ae4, 0x04f3, 0x0146,
+ 0x0025, 0x009f, 0x0243, 0x0431, 0x04ad, 0x0386,
+ 0x019c, 0xfece, 0xfbc8, 0xfb2e, 0xfdd8, 0x00d5,
+ 0x020f, 0x0290, 0x02a8, 0x01c6, 0x00a5, 0xff74,
+ 0xfe66, 0xfdb2, 0xfa73, 0xf384, 0xed33, 0xea19,
+ 0xe9e2, 0xed61, 0xf39d, 0xf8a5, 0xf9af, 0xf709,
+ 0xf321, 0xefb1, 0xed17, 0xec56, 0xedf6, 0xf06c,
+ 0xf1c4, 0xf15b, 0xf00d, 0xeefb, 0xef01, 0xf087,
+ 0xf264, 0xf3b0, 0xf4e5, 0xf59c, 0xf64e, 0xf7f9,
+ 0xf828, 0xf621, 0xf5bf, 0xf740, 0xf799, 0xf775,
+ 0xf917, 0xfc3e, 0xff31, 0x0158, 0x0373, 0x0541,
+ 0x06e1, 0x0a27, 0x0e89, 0x1130, 0x11e1, 0x121c,
+ 0x1192, 0x0f78, 0x0c99, 0x09a8, 0x070a, 0x06df,
+ 0x0a31, 0x0f51, 0x14df, 0x183e, 0x16b1, 0x1230,
+ 0x0cf8, 0x0873, 0x0857, 0x0b7c, 0x0cf8, 0x0cc4,
+ 0x0aed, 0x0735, 0x0571, 0x05e5, 0x05d3, 0x0649,
+ 0x07c3, 0x0966, 0x0a2c, 0x06bf, 0x0022, 0xfbf2,
+ 0xfa96, 0xf9cc, 0xf9ae, 0xf9a9, 0xfa09, 0xfd33,
+ 0x029f, 0x06ba, 0x07e3, 0x06c5, 0x0347, 0xfd9a,
+ 0xf7f7, 0xf408, 0xf1df, 0xf14a, 0xf206, 0xf424,
+ 0xf6cd, 0xf85a, 0xf9b4, 0xfbcc, 0xfc88, 0xfb56,
+ 0xf9fb, 0xf907, 0xf86e, 0xf811, 0xf748, 0xf5a7,
+ 0xf3a9, 0xf318, 0xf52c, 0xf89d, 0xfb22, 0xfb50,
+ 0xf958, 0xf5a4, 0xf0e7, 0xef21, 0xf247, 0xf5ea,
+ 0xf875, 0xfbb2, 0xfd70, 0xfc59, 0xf956, 0xf43d,
+ 0xefb6, 0xee80, 0xf037, 0xf548, 0xfb93, 0xfe98,
+ 0xfe5d, 0xfc9b, 0xfaee, 0xfb76, 0xfc96, 0xfcc7,
+ 0xfe13, 0x00d5, 0x0442, 0x076e, 0x07e6, 0x0612,
+ 0x0480, 0x0373, 0x02c5, 0x0241, 0x01ac, 0x023e,
+ 0x035e, 0x0346, 0x0350, 0x04bc, 0x0624, 0x06c4,
+ 0x06f5, 0x0776, 0x0963, 0x0b88, 0x0b47, 0x094d,
+ 0x072a, 0x0449, 0x025e, 0x039a, 0x05ea, 0x084a,
+ 0x0b24, 0x0b67, 0x085e, 0x05a1, 0x04a2, 0x0536,
+ 0x06b0, 0x07d0, 0x09bb, 0x0cbe, 0x0e0a, 0x0c08,
+ 0x0719, 0x0184, 0xfe60, 0xfdee, 0xfffb, 0x0448,
+ 0x0765, 0x073d, 0x04e1, 0x0131, 0xfe15, 0xfca9,
+ 0xfbbd, 0xfba0, 0xfcc2, 0xfe93, 0x01b4, 0x051d,
+ 0x0652, 0x05a3, 0x041b, 0x014d, 0xfce0, 0xf835,
+ 0xf63e, 0xf739, 0xf829, 0xf85d, 0xf88d, 0xf778,
+ 0xf4ce, 0xf22d, 0xf12a, 0xf358, 0xf821, 0xfb96,
+ 0xfbba, 0xfa17, 0xf6b7, 0xf1dd, 0xef43, 0xf021,
+ 0xf261, 0xf639, 0xfa83, 0xfb6f, 0xf9fd, 0xf9c2,
+ 0xfa7e, 0xfb41, 0xfcac, 0xfe57, 0xff9a, 0x019c,
+ 0x0456, 0x0478, 0x0185, 0xffb5, 0x0006, 0x0100,
+ 0x03e8, 0x081d, 0x0b1d, 0x0dc7, 0x10ab, 0x125a,
+ 0x1280, 0x10c6, 0x0da8, 0x0bce, 0x0c46, 0x0dfd,
+ 0x1073, 0x1346, 0x152d, 0x1542, 0x1409, 0x11df,
+ 0x0e86, 0x0b95, 0x0b4f, 0x0d1b, 0x0e92, 0x0e24,
+ 0x0bfd, 0x0915, 0x058a, 0x019b, 0xfed1, 0xfe2a,
+ 0xfed5, 0xfeac, 0xfcf0, 0xfbb5, 0xfb90, 0xfa87,
+ 0xf8d0, 0xf854, 0xf985, 0xfb5e, 0xfb5a, 0xf7dc,
+ 0xf36a, 0xf113, 0xf082, 0xf100, 0xf2b7, 0xf3b1,
+ 0xf28e, 0xf1ad, 0xf15a, 0xef45, 0xecb2, 0xea99,
+ 0xe756, 0xe4d3, 0xe51a, 0xe655, 0xe7f9, 0xea70,
+ 0xed35, 0xf00e, 0xf108, 0xef35, 0xedc6, 0xef22,
+ 0xf36b, 0xf9c1, 0xffb3, 0x0422, 0x0751, 0x08af,
+ 0x083e, 0x0619, 0x033a, 0x0247, 0x02e6, 0x0354,
+ 0x047d, 0x064f, 0x0799, 0x0851, 0x07ca, 0x065b,
+ 0x0580, 0x0503, 0x050d, 0x06ab, 0x09a7, 0x0cfe,
+ 0x0ed5, 0x0dec, 0x0b8f, 0x0987, 0x0965, 0x0bbf,
+ 0x0e0d, 0x0e4e, 0x0e3c, 0x0f79, 0x11f4, 0x154b,
+ 0x17e7, 0x17b5, 0x14b8, 0x1060, 0x0c50, 0x0a96,
+ 0x0aea, 0x0a52, 0x089b, 0x07b9, 0x0710, 0x0627,
+ 0x05d3, 0x05dc, 0x0655, 0x0695, 0x050e, 0x02d0,
+ 0x0054, 0xfc8b, 0xfa29, 0xfb5a, 0xfd1b, 0xfd59,
+ 0xfd14, 0xfc71, 0xfa57, 0xf6dd, 0xf40d, 0xf2b1,
+ 0xf156, 0xf02a, 0xf0e9, 0xf38d, 0xf6ce, 0xfa6b,
+ 0xfe4f, 0xffec, 0xfdc5, 0xfb98, 0xfb93, 0xfbb6,
+ 0xfbf6, 0xfbcc, 0xf96f, 0xf704, 0xf5ef, 0xf585,
+ 0xf7a7, 0xfb4e, 0xfc81, 0xfb69, 0xf91f, 0xf60a,
+ 0xf473, 0xf4e3, 0xf5cf, 0xf62c, 0xf4aa, 0xf170,
+ 0xee53, 0xebe9, 0xe9f6, 0xe88e, 0xe7d0, 0xe79c,
+ 0xe7bf, 0xe91c, 0xec0a, 0xef0c, 0xf1fd, 0xf588,
+ 0xf88a, 0xf9ef, 0xf989, 0xf82a, 0xf813, 0xf9b4,
+ 0xfb72, 0xfcb5, 0xfd36, 0xfcb4, 0xfbf3, 0xfbc4,
+ 0xfd03, 0xfff1, 0x02df, 0x048d, 0x05e1, 0x07ba,
+ 0x0973, 0x0a83, 0x0b4a, 0x0b33, 0x0a20, 0x0aa2,
+ 0x0dda, 0x11ed, 0x15ef, 0x18dd, 0x18f4, 0x1707,
+ 0x14e8, 0x130d, 0x1101, 0x0db0, 0x0a63, 0x09c2,
+ 0x0a86, 0x0b2f, 0x0d65, 0x10c6, 0x132c, 0x13a5,
+ 0x1156, 0x0d5c, 0x09e8, 0x0628, 0x0203, 0xffb9,
+ 0xfeb0, 0xfd7d, 0xfd26, 0xfd9c, 0xfe2e, 0xffec,
+ 0x0292, 0x0453, 0x04a7, 0x02e8, 0xfe5a, 0xf8eb,
+ 0xf53e, 0xf3df, 0xf4b2, 0xf74b, 0xf9ec, 0xfae2,
+ 0xfa15, 0xf8a0, 0xf751, 0xf610, 0xf4dd, 0xf498,
+ 0xf64d, 0xf991, 0xfc4f, 0xfd93, 0xfde3, 0xfc98,
+ 0xf9ad, 0xf724, 0xf5bd, 0xf558, 0xf650, 0xf7b2,
+ 0xf896, 0xf8b9, 0xf78a, 0xf60b, 0xf51a, 0xf47c,
+ 0xf5ce, 0xf8ae, 0xfa35, 0xfb68, 0xfd6d, 0xfefa,
+ 0x00dc, 0x01f2, 0xff7f, 0xfbe0, 0xf8ed, 0xf5a9,
+ 0xf417, 0xf4f9, 0xf5c7, 0xf64c, 0xf714, 0xf775,
+ 0xf86c, 0xfb71, 0xff47, 0x01b3, 0x0347, 0x0465,
+ 0x01f9, 0xfc7d, 0xf92d, 0xf950, 0xfb83, 0xff72,
+ 0x031a, 0x053d, 0x0690, 0x0719, 0x07ef, 0x0988,
+ 0x0a09, 0x09b8, 0x09a6, 0x0929, 0x08d0, 0x0959,
+ 0x0a0e, 0x0a7c, 0x0a45, 0x0950, 0x07e7, 0x0677,
+ 0x06bc, 0x0947, 0x0bf9, 0x0dd2, 0x0e77, 0x0c84,
+ 0x0954, 0x0827, 0x08da, 0x097e, 0x0a1d, 0x0b55,
+ 0x0d5a, 0x10b7, 0x13de, 0x13af, 0x105b, 0x0bb6,
+ 0x0646, 0x0242, 0x014c, 0x00ea, 0xff23, 0xfc89,
+ 0xf9e9, 0xf851, 0xf83e, 0xf950, 0xfb42, 0xfd30,
+ 0xfe2c, 0xfe00, 0xfc61, 0xf96c, 0xf629, 0xf43b,
+ 0xf488, 0xf58d, 0xf615, 0xf6bd, 0xf6f9, 0xf68b,
+ 0xf733, 0xf8fd, 0xfa00, 0xf9bc, 0xf9ba, 0xfb70,
+ 0xfe2f, 0x00b7, 0x02b6, 0x038b, 0x02f3, 0x00cf,
+ 0xfcc8, 0xf934, 0xf89b, 0xfa63, 0xfe24, 0x0299,
+ 0x0454, 0x035f, 0x02b0, 0x0308, 0x03d8, 0x0521,
+ 0x0757, 0x0a88, 0x0d7d, 0x0ebc, 0x0d6f, 0x0a15,
+ 0x05cf, 0x00dd, 0xfd26, 0xfd33, 0xff28, 0x009e,
+ 0x01d4, 0x0216, 0x01c2, 0x0283, 0x03a4, 0x04cd,
+ 0x05e6, 0x0586, 0x04b3, 0x03fb, 0x00b3, 0xfb07,
+ 0xf5bd, 0xf265, 0xf1fa, 0xf39d, 0xf538, 0xf6a1,
+ 0xf7f4, 0xf8d1, 0xf97f, 0xf9b7, 0xf93c, 0xf931,
+ 0xfa5f, 0xfc2d, 0xfd7f, 0xfd9e, 0xfce1, 0xfc89,
+ 0xfd22, 0xfdc8, 0xfe82, 0x0088, 0x0358, 0x05da,
+ 0x0860, 0x0a62, 0x0aa2, 0x09a3, 0x0845, 0x06bf,
+ 0x05ce, 0x05f3, 0x06a5, 0x079c, 0x088e, 0x0872,
+ 0x080d, 0x08ef, 0x0952, 0x07f3, 0x0712, 0x06dc,
+ 0x067a, 0x072c, 0x078d, 0x05c2, 0x03a1, 0x014d,
+ 0xfdfe, 0xfc04, 0xfc18, 0xfd65, 0x0050, 0x0277,
+ 0x00ab, 0xfcd8, 0xfa3a, 0xf92b, 0xf999, 0xfbbb,
+ 0xfe1e, 0xff4c, 0xffc3, 0xffed, 0xff87, 0xff3c,
+ 0xff44, 0xff57, 0x0052, 0x0229, 0x0373, 0x0429,
+ 0x04f5, 0x05c3, 0x05e4, 0x04aa, 0x02e7, 0x020a,
+ 0x0249, 0x03a2, 0x05c4, 0x07d6, 0x09cb, 0x0b18,
+ 0x0a77, 0x0853, 0x0631, 0x0570, 0x06d5, 0x08e0,
+ 0x0938, 0x086d, 0x08a9, 0x0988, 0x08df, 0x06d2,
+ 0x0503, 0x02fa, 0x0009, 0xfd34, 0xfb07, 0xf9e3,
+ 0xfa00, 0xf961, 0xf743, 0xf69b, 0xf8e5, 0xfc38,
+ 0xfe8b, 0xfeed, 0xfe1c, 0xfdb9, 0xfdbf, 0xfdc7,
+ 0xfe9a, 0x0045, 0x0246, 0x045e, 0x054d, 0x046f,
+ 0x0369, 0x0338, 0x0309, 0x02a3, 0x0316, 0x052c,
+ 0x07bf, 0x08d3, 0x08d6, 0x093b, 0x0917, 0x0760,
+ 0x052b, 0x0367, 0x023e, 0x01c5, 0x013a, 0x005f,
+ 0x006e, 0x014d, 0x0153, 0x0055, 0xff67, 0xffac,
+ 0x01f0, 0x04ae, 0x05d3, 0x061b, 0x05b9, 0x0385,
+ 0x01b1, 0x0269, 0x0355, 0x0297, 0x00a4, 0xfd69,
+ 0xfa26, 0xf89f, 0xf772, 0xf54a, 0xf36a, 0xf2ae,
+ 0xf37a, 0xf601, 0xf8b6, 0xfaf6, 0xfdec, 0x00ae,
+ 0x01a9, 0x01b6, 0x01fb, 0x031e, 0x04f7, 0x0579,
+ 0x0427, 0x0307, 0x0296, 0x0254, 0x0279, 0x02ea,
+ 0x0433, 0x06a8, 0x08ab, 0x0950, 0x0930, 0x08d2,
+ 0x088b, 0x07d1, 0x062b, 0x050e, 0x054d, 0x05a2,
+ 0x059c, 0x06aa, 0x099e, 0x0d12, 0x0f4a, 0x0fda,
+ 0x0eea, 0x0db3, 0x0d85, 0x0d7b, 0x0d10, 0x0cf7,
+ 0x0c60, 0x0bd3, 0x0d34, 0x0e68, 0x0d15, 0x0aec,
+ 0x083d, 0x03e8, 0x004a, 0xff67, 0xff6f, 0xff0b,
+ 0xfea4, 0xfe69, 0xfee4, 0xfff8, 0x0090, 0x0162,
+ 0x02c0, 0x02cc, 0x01aa, 0x00c2, 0x0030, 0x012b,
+ 0x03a3, 0x04c1, 0x0450, 0x03c1, 0x0303, 0x02af,
+ 0x02c4, 0x021a, 0x016a, 0x01c0, 0x02f0, 0x044f,
+ 0x047e, 0x0368, 0x023f, 0x00b7, 0xfef7, 0xfec2,
+ 0x0012, 0x0123, 0x01e9, 0x03ff, 0x070e, 0x08ed,
+ 0x0924, 0x0810, 0x05ad, 0x033a, 0x0186, 0x0035,
+ 0xff70, 0xfe66, 0xfceb, 0xfd4b, 0xff45, 0xfff1,
+ 0xfebe, 0xfc47, 0xf8d8, 0xf5ce, 0xf431, 0xf36e,
+ 0xf2c0, 0xf232, 0xf1fb, 0xf227, 0xf336, 0xf4ee,
+ 0xf628, 0xf716, 0xf81f, 0xf8a9, 0xf8ee, 0xf8f0,
+ 0xf882, 0xf93f, 0xfb5a, 0xfcad, 0xfc7c, 0xfae7,
+ 0xf7fa, 0xf566, 0xf4f0, 0xf69e, 0xf9ec, 0xfe6f,
+ 0x02ff, 0x060d, 0x0728, 0x06ba, 0x0567, 0x04a9,
+ 0x0549, 0x05fa, 0x0584, 0x045b, 0x0467, 0x06ec,
+ 0x0a68, 0x0d73, 0x1057, 0x123e, 0x1221, 0x1084,
+ 0x0e73, 0x0d66, 0x0d5b, 0x0d0b, 0x0d73, 0x0f9f,
+ 0x1213, 0x1380, 0x133c, 0x1147, 0x0f1d, 0x0d92,
+ 0x0c6e, 0x0b78, 0x0a2e, 0x08b4, 0x07c4, 0x07a5,
+ 0x0843, 0x08d9, 0x08d1, 0x08a0, 0x0880, 0x08a2,
+ 0x08f4, 0x08a0, 0x0841, 0x08bb, 0x094f, 0x09e9,
+ 0x0a80, 0x09f4, 0x08ba, 0x0816, 0x0853, 0x09bc,
+ 0x0bbf, 0x0cfe, 0x0d15, 0x0bf4, 0x0957, 0x05cd,
+ 0x02f2, 0x01e0, 0x0175, 0x0030, 0xfe8f, 0xfdbc,
+ 0xfe4b, 0x0011, 0x022f, 0x0424, 0x05c8, 0x0687,
+ 0x059b, 0x02a8, 0xfeaa, 0xfaa8, 0xf659, 0xf2c5,
+ 0xf1cd, 0xf2df, 0xf4cf, 0xf683, 0xf5ee, 0xf37c,
+ 0xf162, 0xef4b, 0xec50, 0xe8fc, 0xe5ba, 0xe317,
+ 0xe1af, 0xe105, 0xe0b8, 0xe186, 0xe3a4, 0xe5ed,
+ 0xe7f5, 0xea67, 0xed12, 0xefbd, 0xf2d3, 0xf5aa,
+ 0xf7ed, 0xfa80, 0xfcde, 0xfdd1, 0xfdcd, 0xfdc1,
+ 0xfe14, 0xfed4, 0xff7b, 0xffc8, 0x007d, 0x024b,
+ 0x046d, 0x05d5, 0x06e7, 0x0842, 0x0942, 0x0977,
+ 0x09e8, 0x0bf7, 0x0f63, 0x1295, 0x1515, 0x1769,
+ 0x198d, 0x1b04, 0x1a93, 0x17ce, 0x1484, 0x11a8,
+ 0x0f2c, 0x0e53, 0x0f2a, 0x1093, 0x1245, 0x12b1,
+ 0x10fc, 0x0f2d, 0x0d76, 0x0a75, 0x0722, 0x0497,
+ 0x029f, 0x014a, 0x0080, 0xffd6, 0xff50, 0xff7a,
+ 0x008b, 0x0170, 0x0169, 0x0131, 0x0172, 0x027c,
+ 0x0425, 0x054f, 0x059f, 0x051f, 0x030f, 0xffa9,
+ 0xfc07, 0xf8e6, 0xf760, 0xf7a2, 0xf870, 0xf998,
+ 0xfb65, 0xfd34, 0xfeaf, 0x0011, 0x0141, 0x016f,
+ 0xfff2, 0xfdc8, 0xfc8a, 0xfc72, 0xfd02, 0xfd77,
+ 0xfd6a, 0xfdfc, 0xff16, 0xfdf6, 0xfa3a, 0xf688,
+ 0xf37c, 0xf0ec, 0xf0b6, 0xf368, 0xf752, 0xfb44,
+ 0xfe1d, 0xff1f, 0xff6d, 0xff8e, 0xfe4b, 0xfb3c,
+ 0xf77f, 0xf491, 0xf2f8, 0xf1d9, 0xf0dc, 0xf0b5,
+ 0xf1ba, 0xf419, 0xf782, 0xfa90, 0xfc88, 0xfde8,
+ 0xff24, 0x0045, 0x0125, 0x01d5, 0x023c, 0x019b,
+ 0xfff1, 0xfe0b, 0xfc6e, 0xfbf7, 0xfd13, 0xfec0,
+ 0x004f, 0x01c4, 0x030b, 0x0475, 0x05dd, 0x06b4,
+ 0x0719, 0x06c0, 0x055a, 0x03d3, 0x02e3, 0x0300,
+ 0x04cb, 0x076c, 0x09bd, 0x0bec, 0x0d58, 0x0cd4,
+ 0x0ae6, 0x086f, 0x0571, 0x02d6, 0x0205, 0x02c6,
+ 0x041b, 0x0592, 0x0674, 0x0642, 0x0565, 0x03d5,
+ 0x0197, 0xffba, 0xfee1, 0xfeee, 0xff47, 0xfe9b,
+ 0xfcb7, 0xfafc, 0xf9f0, 0xf97b, 0xf9da, 0xfaaa,
+ 0xfb6f, 0xfc00, 0xfbfa, 0xfbd0, 0xfc5a, 0xfce3,
+ 0xfc90, 0xfbdc, 0xfab2, 0xf85c, 0xf5e7, 0xf4f8,
+ 0xf52f, 0xf5b6, 0xf6b1, 0xf7b3, 0xf868, 0xf9df,
+ 0xfc20, 0xfdb2, 0xfe69, 0xfec8, 0xfe31, 0xfc7a,
+ 0xfacc, 0xfa2d, 0xfb2e, 0xfdcb, 0x0076, 0x0168,
+ 0x00c8, 0xff7e, 0xfd5e, 0xfa58, 0xf7a8, 0xf67e,
+ 0xf6bc, 0xf7ce, 0xf99b, 0xfbdd, 0xfe12, 0x001f,
+ 0x0155, 0x007a, 0xfe1d, 0xfc13, 0xfb3c, 0xfb89,
+ 0xfc15, 0xfbaf, 0xfa94, 0xf999, 0xf8f1, 0xf950,
+ 0xfb1d, 0xfd42, 0xff4f, 0x0180, 0x0311, 0x041e,
+ 0x0607, 0x0813, 0x0863, 0x076e, 0x064f, 0x04c4,
+ 0x0374, 0x03d8, 0x059e, 0x07d7, 0x0a6b, 0x0c83,
+ 0x0d2d, 0x0d34, 0x0d93, 0x0ded, 0x0d9c, 0x0c8d,
+ 0x0afd, 0x0916, 0x073f, 0x06b5, 0x085e, 0x0b36,
+ 0x0d51, 0x0de8, 0x0d82, 0x0c6e, 0x0a53, 0x079d,
+ 0x0568, 0x041c, 0x03b6, 0x040c, 0x0484, 0x04fc,
+ 0x05d9, 0x068d, 0x05c6, 0x0311, 0xff44, 0xfb57,
+ 0xf81e, 0xf6ab, 0xf6cb, 0xf6ea, 0xf663, 0xf510,
+ 0xf2c4, 0xf0da, 0xf025, 0xef9c, 0xef53, 0xefcf,
+ 0xf085, 0xf209, 0xf4ec, 0xf785, 0xf873, 0xf841,
+ 0xf7b2, 0xf708, 0xf6ca, 0xf7c9, 0xf9dd, 0xfbf5,
+ 0xfd97, 0xfe81, 0xfe72, 0xfe5a, 0xff2c, 0x0057,
+ 0x00f6, 0x00c7, 0x000b, 0xff4c, 0xff18, 0x003c,
+ 0x0374, 0x07f1, 0x0ba2, 0x0d87, 0x0e4c, 0x0e61,
+ 0x0d6b, 0x0bbd, 0x0a47, 0x0974, 0x0937, 0x0967,
+ 0x0985, 0x093a, 0x0908, 0x092f, 0x08a9, 0x072c,
+ 0x059d, 0x03c5, 0x01bd, 0x00ed, 0x012d, 0x01cf,
+ 0x034b, 0x0499, 0x0479, 0x03ee, 0x03c3, 0x03d6,
+ 0x0414, 0x0411, 0x040a, 0x048e, 0x053c, 0x05b8,
+ 0x057a, 0x0422, 0x02cc, 0x023e, 0x0262, 0x038c,
+ 0x052f, 0x0661, 0x075e, 0x080f, 0x0820, 0x0802,
+ 0x0814, 0x0832, 0x07b8, 0x064c, 0x04a8, 0x0356,
+ 0x027f, 0x02c1, 0x0406, 0x0585, 0x0684, 0x05d9,
+ 0x0324, 0xff7b, 0xfb92, 0xf7c0, 0xf4b5, 0xf272,
+ 0xf0ab, 0xefa0, 0xeefe, 0xee3e, 0xee31, 0xef86,
+ 0xf190, 0xf3dc, 0xf5e4, 0xf681, 0xf5ed, 0xf501,
+ 0xf38f, 0xf235, 0xf203, 0xf23f, 0xf1c0, 0xf075,
+ 0xef43, 0xef3b, 0xf05d, 0xf25e, 0xf53f, 0xf855,
+ 0xfb3e, 0xfdfb, 0xff5a, 0xfec2, 0xfd8b, 0xfd0a,
+ 0xfd68, 0xfdf9, 0xfe5e, 0xfedc, 0xff7e, 0x0063,
+ 0x019c, 0x0265, 0x02e2, 0x03e8, 0x04fc, 0x05af,
+ 0x0657, 0x071c, 0x086a, 0x0a3e, 0x0bef, 0x0d8c,
+ 0x0ee7, 0x0efa, 0x0d5e, 0x0a96, 0x07ae, 0x0593,
+ 0x046d, 0x0443, 0x0543, 0x06f5, 0x084f, 0x08dd,
+ 0x096a, 0x0a6e, 0x0b0e, 0x0abe, 0x096f, 0x070e,
+ 0x0453, 0x01db, 0xffbd, 0xfebd, 0xff10, 0xffc1,
+ 0x0046, 0x009e, 0x0125, 0x0250, 0x03d7, 0x05cd,
+ 0x088f, 0x0b8c, 0x0e1b, 0x0f82, 0x0efb, 0x0d5c,
+ 0x0bee, 0x0acf, 0x09fb, 0x096b, 0x08c5, 0x0801,
+ 0x074f, 0x06fc, 0x0705, 0x06cb, 0x0682, 0x06c1,
+ 0x06c0, 0x05d4, 0x04a3, 0x03a8, 0x030e, 0x030e,
+ 0x036a, 0x03ee, 0x049d, 0x0507, 0x04df, 0x040b,
+ 0x026d, 0x00f1, 0x00a6, 0x00f9, 0x0150, 0x01da,
+ 0x01fc, 0x0150, 0x0096, 0x002f, 0xffb2, 0xfea4,
+ 0xfd27, 0xfbf2, 0xfaed, 0xf99c, 0xf846, 0xf6ee,
+ 0xf56d, 0xf401, 0xf293, 0xf164, 0xf0d3, 0xf07b,
+ 0xf0a9, 0xf19d, 0xf297, 0xf3c9, 0xf54a, 0xf5d5,
+ 0xf55b, 0xf4ad, 0xf3ef, 0xf3a6, 0xf43e, 0xf53e,
+ 0xf627, 0xf6ea, 0xf7d9, 0xf89d, 0xf84a, 0xf74f,
+ 0xf685, 0xf5da, 0xf55a, 0xf518, 0xf56f, 0xf73c,
+ 0xfa0a, 0xfca7, 0xfea0, 0xffe2, 0x00d8, 0x017c,
+ 0x0126, 0x00a5, 0x00c3, 0x00ed, 0x0167, 0x0266,
+ 0x0357, 0x04a9, 0x062f, 0x06df, 0x073b, 0x07a8,
+ 0x07a7, 0x0796, 0x0786, 0x06f6, 0x061b, 0x050b,
+ 0x03ae, 0x0245, 0x00e2, 0xffe5, 0xffac, 0xffb6,
+ 0xfff3, 0x00e2, 0x023e, 0x03da, 0x05f7, 0x0813,
+ 0x09a0, 0x0aa6, 0x0afb, 0x0a80, 0x09ae, 0x0936,
+ 0x0942, 0x0958, 0x097d, 0x0a30, 0x0b03, 0x0b33,
+ 0x0a63, 0x0844, 0x05a4, 0x03c5, 0x0250, 0x0160,
+ 0x0249, 0x047f, 0x0650, 0x075b, 0x07cd, 0x07bc,
+ 0x0737, 0x0620, 0x04e0, 0x0416, 0x03bd, 0x033c,
+ 0x021d, 0x00d5, 0xfff7, 0xff25, 0xfe5d, 0xfdd9,
+ 0xfce8, 0xfb68, 0xfa34, 0xf9b7, 0xfa05, 0xfacf,
+ 0xfb01, 0xf9ee, 0xf872, 0xf7f7, 0xf816, 0xf776,
+ 0xf6ae, 0xf6ad, 0xf6dd, 0xf704, 0xf728, 0xf745,
+ 0xf81a, 0xf917, 0xf8e4, 0xf84c, 0xf816, 0xf7a7,
+ 0xf745, 0xf759, 0xf762, 0xf757, 0xf7df, 0xf961,
+ 0xfb71, 0xfd0b, 0xfda7, 0xfd51, 0xfc74, 0xfb80,
+ 0xfa86, 0xf9fa, 0xfa58, 0xfb09, 0xfb90, 0xfc0d,
+ 0xfc38, 0xfc14, 0xfc01, 0xfbd3, 0xfb7e, 0xfb67,
+ 0xfb85, 0xfb68, 0xfb4c, 0xfc27, 0xfda4, 0xfe1e,
+ 0xfdc2, 0xfde9, 0xfe10, 0xfd61, 0xfc9e, 0xfcae,
+ 0xfdb9, 0xff2d, 0xffeb, 0xff83, 0xfea8, 0xfe4b,
+ 0xfef2, 0x006b, 0x0229, 0x0408, 0x0623, 0x07f0,
+ 0x08da, 0x097d, 0x0a74, 0x0aff, 0x0ae3, 0x0b44,
+ 0x0c46, 0x0d11, 0x0dba, 0x0e64, 0x0ec0, 0x0f3d,
+ 0x1070, 0x121d, 0x13f9, 0x157d, 0x15d3, 0x151b,
+ 0x1410, 0x12d6, 0x116e, 0x0fdb, 0x0e11, 0x0c76,
+ 0x0b6b, 0x0acf, 0x0a88, 0x0a52, 0x09b6, 0x0896,
+ 0x070d, 0x057b, 0x0463, 0x03a3, 0x0313, 0x034a,
+ 0x0428, 0x0441, 0x031c, 0x01dd, 0x00dc, 0xff57,
+ 0xfdca, 0xfd5f, 0xfdcf, 0xfe0b, 0xfd6a, 0xfc2e,
+ 0xfb31, 0xfa2a, 0xf877, 0xf728, 0xf6b1, 0xf5f4,
+ 0xf511, 0xf4b6, 0xf484, 0xf49b, 0xf57a, 0xf6ee,
+ 0xf8bb, 0xfaa2, 0xfc19, 0xfcba, 0xfc53, 0xfb38,
+ 0xfa33, 0xf9ca, 0xf9e0, 0xf9dc, 0xf949, 0xf7f4,
+ 0xf580, 0xf25d, 0xf00f, 0xef37, 0xeefd, 0xee6e,
+ 0xed5d, 0xec9d, 0xed02, 0xee68, 0xf038, 0xf1ec,
+ 0xf318, 0xf392, 0xf33b, 0xf279, 0xf24b, 0xf2fc,
+ 0xf478, 0xf719, 0xfa74, 0xfd6a, 0xff81, 0x00ba,
+ 0x0165, 0x01f9, 0x0277, 0x02f2, 0x03dd, 0x0506,
+ 0x05f9, 0x06c9, 0x0766, 0x077b, 0x0737, 0x06ef,
+ 0x065d, 0x0581, 0x0574, 0x06c6, 0x08a3, 0x0ad1,
+ 0x0da0, 0x103b, 0x121b, 0x137a, 0x13af, 0x1294,
+ 0x111c, 0x0f7d, 0x0e38, 0x0e81, 0x0ff2, 0x1163,
+ 0x1239, 0x11a9, 0x102f, 0x0f73, 0x0fa4, 0x101b,
+ 0x1082, 0x100c, 0x0e69, 0x0c22, 0x09ce, 0x0860,
+ 0x07ec, 0x0735, 0x0611, 0x04d0, 0x02dc, 0x006b,
+ 0xfe41, 0xfc8a, 0xfc09, 0xfd25, 0xfec1, 0x0003,
+ 0x00e1, 0x0122, 0x00a0, 0xffca, 0xff83, 0xfff9,
+ 0x0054, 0x0079, 0x00a7, 0x0029, 0xff2a, 0xfe9f,
+ 0xfdf8, 0xfc71, 0xfa83, 0xf8da, 0xf81d, 0xf870,
+ 0xf900, 0xf97a, 0xf9ef, 0xf9dc, 0xf924, 0xf83c,
+ 0xf71f, 0xf5ab, 0xf485, 0xf487, 0xf579, 0xf683,
+ 0xf79c, 0xf8b5, 0xf8fd, 0xf873, 0xf7df, 0xf7d1,
+ 0xf8ed, 0xfaf5, 0xfc6f, 0xfcfa, 0xfd76, 0xfe11,
+ 0xfe7f, 0xfeda, 0xff21, 0xff12, 0xfef1, 0xff24,
+ 0xff4a, 0xff1a, 0xff16, 0xff56, 0xffeb, 0x0156,
+ 0x02f4, 0x03b9, 0x03ba, 0x02fc, 0x01b2, 0x00c5,
+ 0x006b, 0x00cc, 0x0253, 0x03dd, 0x043f, 0x03df,
+ 0x032f, 0x028f, 0x023a, 0x0190, 0x00af, 0x0071,
+ 0x00eb, 0x021a, 0x03aa, 0x04cb, 0x05ac, 0x0666,
+ 0x0634, 0x0559, 0x048f, 0x03e3, 0x03b3, 0x044d,
+ 0x057b, 0x070c, 0x0864, 0x08ff, 0x0946, 0x09a7,
+ 0x0a49, 0x0b40, 0x0c19, 0x0c77, 0x0c63, 0x0bd1,
+ 0x0b34, 0x0b45, 0x0bb8, 0x0b95, 0x0a41, 0x07c3,
+ 0x04ec, 0x033c, 0x0390, 0x04bb, 0x0512, 0x051b,
+ 0x060b, 0x074d, 0x07fa, 0x07e3, 0x06d8, 0x056f,
+ 0x04a1, 0x0434, 0x0403, 0x04bc, 0x05f7, 0x067f,
+ 0x061c, 0x0525, 0x03d6, 0x0262, 0x008f, 0xfe5d,
+ 0xfccc, 0xfc30, 0xfb86, 0xfab5, 0xfa8e, 0xfb1a,
+ 0xfc17, 0xfd1f, 0xfd3d, 0xfc4d, 0xfaf7, 0xf98f,
+ 0xf8d6, 0xf974, 0xfad1, 0xfc7c, 0xfe4b, 0xff63,
+ 0xffb8, 0x003b, 0x00da, 0x00fe, 0x0096, 0xff5a,
+ 0xfd30, 0xfb63, 0xfb32, 0xfc08, 0xfcc5, 0xfd2f,
+ 0xfcde, 0xfb2e, 0xf8c1, 0xf713, 0xf6ed, 0xf7f2,
+ 0xf955, 0xfb0a, 0xfd2e, 0xff1e, 0x0098, 0x01a7,
+ 0x01f8, 0x0219, 0x0268, 0x0201, 0x015b, 0x01c4,
+ 0x0292, 0x02ef, 0x0329, 0x0372, 0x0414, 0x04e3,
+ 0x04e7, 0x0444, 0x03aa, 0x031f, 0x0321, 0x03e3,
+ 0x048a, 0x0527, 0x0664, 0x07af, 0x07f9, 0x06f8,
+ 0x0501, 0x02c1, 0x0103, 0x0061, 0x0105, 0x02b4,
+ 0x047f, 0x0566, 0x0615, 0x0794, 0x08f3, 0x0978,
+ 0x0970, 0x0816, 0x059a, 0x03c9, 0x02a8, 0x01b1,
+ 0x0192, 0x01bc, 0x0122, 0x0013, 0xfef2, 0xfe0e,
+ 0xfdb3, 0xfdb8, 0xfe74, 0x0063, 0x0338, 0x060e,
+ 0x078d, 0x075c, 0x0699, 0x05c7, 0x04f4, 0x0461,
+ 0x03c0, 0x02fa, 0x0249, 0x01cf, 0x0253, 0x03c5,
+ 0x0500, 0x05d5, 0x060e, 0x059e, 0x05a8, 0x05e0,
+ 0x05a2, 0x0623, 0x074b, 0x0853, 0x09bf, 0x0a8e,
+ 0x097d, 0x0781, 0x055f, 0x03a3, 0x02b6, 0x015f,
+ 0xffa7, 0xff21, 0xff26, 0xfeb7, 0xfe97, 0xfec9,
+ 0xfec8, 0xfeb5, 0xfe31, 0xfd09, 0xfc55, 0xfc86,
+ 0xfc80, 0xfbe7, 0xfb97, 0xfb8d, 0xfb1c, 0xfa7a,
+ 0xf9e2, 0xf8cb, 0xf735, 0xf5f7, 0xf585, 0xf5ca,
+ 0xf70e, 0xf935, 0xfb26, 0xfc33, 0xfc71, 0xfc19,
+ 0xfc44, 0xfde4, 0x0038, 0x0239, 0x0392, 0x0472,
+ 0x0571, 0x0669, 0x06c3, 0x0684, 0x057a, 0x03b1,
+ 0x01ff, 0x0092, 0xff84, 0xff3f, 0xff62, 0xfff9,
+ 0x011f, 0x016d, 0x0011, 0xfdbb, 0xfb4c, 0xf9da,
+ 0xf960, 0xf8c4, 0xf82a, 0xf807, 0xf818, 0xf8d1,
+ 0xfa8e, 0xfcba, 0xfed4, 0x003a, 0x003e, 0xff3f,
+ 0xfe80, 0xfedb, 0xffa4, 0xffcf, 0xffa7, 0xffe2,
+ 0x0084, 0x012e, 0x0124, 0x0012, 0xfe76, 0xfcf3,
+ 0xfc9a, 0xfe29, 0x00b7, 0x0353, 0x0606, 0x0840,
+ 0x0927, 0x08f3, 0x085a, 0x07e6, 0x07dd, 0x0802,
+ 0x07f2, 0x07da, 0x0803, 0x082f, 0x0806, 0x07cf,
+ 0x080a, 0x085c, 0x0804, 0x0749, 0x0694, 0x0581,
+ 0x04cd, 0x05b7, 0x075c, 0x0862, 0x08c5, 0x087d,
+ 0x07d9, 0x078b, 0x0719, 0x05de, 0x041f, 0x024a,
+ 0x00ff, 0x009f, 0x00fc, 0x01d4, 0x0262, 0x01da,
+ 0x0063, 0xfe6e, 0xfca5, 0xfbb3, 0xfb3b, 0xfaeb,
+ 0xfb0c, 0xfb52, 0xfb42, 0xfa7f, 0xf8e2, 0xf774,
+ 0xf720, 0xf7ad, 0xf953, 0xfc49, 0xff8a, 0x01f4,
+ 0x02fc, 0x02c8, 0x01fa, 0x00f1, 0x002a, 0x001b,
+ 0x0057, 0x0069, 0x002e, 0xff77, 0xfec8, 0xfe94,
+ 0xfe52, 0xfdf9, 0xfe11, 0xfe37, 0xfde3, 0xfd64,
+ 0xfd14, 0xfcde, 0xfcf1, 0xfde1, 0xff9d, 0x0141,
+ 0x0206, 0x01a2, 0x009d, 0x002a, 0x0089, 0x00f9,
+ 0x012d, 0x0162, 0x021b, 0x03e0, 0x0647, 0x0827,
+ 0x08bf, 0x07e0, 0x0607, 0x045b, 0x0384, 0x0309,
+ 0x0255, 0x0193, 0x0119, 0x00ad, 0xffb0, 0xfde3,
+ 0xfbfb, 0xfafb, 0xfaff, 0xfb9e, 0xfcf0, 0xfef0,
+ 0x00d2, 0x01c3, 0x01a7, 0x011a, 0x00a3, 0x0036,
+ 0xffa9, 0xfee6, 0xfdf7, 0xfd2d, 0xfc8f, 0xfc01,
+ 0xfbed, 0xfc4c, 0xfcaf, 0xfd67, 0xfe6d, 0xfed3,
+ 0xfe51, 0xfd4b, 0xfc3d, 0xfbc8, 0xfbd9, 0xfc19,
+ 0xfcae, 0xfd5e, 0xfdc3, 0xfded, 0xfded, 0xfe18,
+ 0xfedd, 0xfffb, 0x00e9, 0x0128, 0x00c5, 0x00e1,
+ 0x01d7, 0x02ae, 0x02f1, 0x0278, 0x0156, 0x00b5,
+ 0x00f6, 0x00ef, 0x0035, 0xff7d, 0xff40, 0xff2a,
+ 0xfe85, 0xfd66, 0xfc79, 0xfc10, 0xfc72, 0xfd8c,
+ 0xff01, 0x011d, 0x039b, 0x0553, 0x0666, 0x0738,
+ 0x0706, 0x05e1, 0x04a6, 0x035d, 0x0232, 0x01b2,
+ 0x01a0, 0x01bd, 0x023f, 0x02f8, 0x0395, 0x0428,
+ 0x04c1, 0x0519, 0x0508, 0x04dc, 0x04c4, 0x0471,
+ 0x0416, 0x0456, 0x050b, 0x05af, 0x0607, 0x05c4,
+ 0x04ec, 0x03fe, 0x035c, 0x0364, 0x0402, 0x0486,
+ 0x0502, 0x05e8, 0x06dc, 0x0786, 0x0793, 0x0671,
+ 0x04ac, 0x036a, 0x02e0, 0x02b3, 0x0263, 0x01ad,
+ 0x0110, 0x00d1, 0x00a2, 0x0061, 0xffcc, 0xfed2,
+ 0xfe38, 0xfe80, 0xff97, 0x0179, 0x0395, 0x0534,
+ 0x0669, 0x06fa, 0x0653, 0x04de, 0x0339, 0x016b,
+ 0xffc6, 0xfe89, 0xfd68, 0xfc72, 0xfc05, 0xfc38,
+ 0xfd17, 0xfe55, 0xff52, 0xff7f, 0xfe51, 0xfbf1,
+ 0xf94b, 0xf712, 0xf60e, 0xf6a0, 0xf7c9, 0xf8e1,
+ 0xfa13, 0xfad4, 0xfac6, 0xfa5f, 0xfa08, 0xfa6e,
+ 0xfbb8, 0xfd0c, 0xfe3a, 0xff72, 0x0057, 0x00df,
+ 0x0119, 0x00d5, 0x0019, 0xff01, 0xfe08, 0xfdb0,
+ 0xfd66, 0xfcab, 0xfbe5, 0xfb45, 0xfb01, 0xfb81,
+ 0xfc84, 0xfd88, 0xfe75, 0xff6a, 0x00b0, 0x0274,
+ 0x049f, 0x06eb, 0x08e4, 0x0a4e, 0x0b5e, 0x0c65,
+ 0x0d85, 0x0e87, 0x0f1d, 0x0f6c, 0x0f80, 0x0f38,
+ 0x0f31, 0x0feb, 0x10b9, 0x1113, 0x112b, 0x10c0,
+ 0x0f69, 0x0d2c, 0x0a1b, 0x0704, 0x054d, 0x050c,
+ 0x0554, 0x05af, 0x05ec, 0x060c, 0x0653, 0x06f0,
+ 0x080a, 0x097a, 0x0aca, 0x0bd0, 0x0c4d, 0x0c0b,
+ 0x0b05, 0x08ee, 0x0636, 0x03c7, 0x0154, 0xff07,
+ 0xfdd4, 0xfd47, 0xfd16, 0xfdbc, 0xfe84, 0xff1e,
+ 0xfff7, 0x0084, 0x00c4, 0x012e, 0x0160, 0x016f,
+ 0x01c5, 0x0257, 0x034a, 0x040c, 0x03af, 0x026b,
+ 0x0093, 0xfe8c, 0xfd1d, 0xfc02, 0xfaa8, 0xf949,
+ 0xf7bf, 0xf625, 0xf557, 0xf557, 0xf55e, 0xf4fc,
+ 0xf403, 0xf284, 0xf0dc, 0xef31, 0xed8b, 0xec5e,
+ 0xec2b, 0xecde, 0xee36, 0xf00f, 0xf1fe, 0xf393,
+ 0xf4b2, 0xf54d, 0xf569, 0xf543, 0xf53d, 0xf599,
+ 0xf699, 0xf880, 0xfa68, 0xfacb, 0xf9f9, 0xf940,
+ 0xf8fa, 0xf964, 0xfa5a, 0xfaec, 0xfb4e, 0xfc2b,
+ 0xfd16, 0xfddb, 0xfee1, 0x004c, 0x01dc, 0x02a8,
+ 0x0243, 0x0192, 0x0181, 0x027c, 0x047c, 0x06a9,
+ 0x085c, 0x097b, 0x0a21, 0x0b05, 0x0cb1, 0x0ec4,
+ 0x109a, 0x116f, 0x10e2, 0x0fc0, 0x0f21, 0x0f82,
+ 0x10ab, 0x1199, 0x1188, 0x108f, 0x0ef3, 0x0cf7,
+ 0x0b03, 0x095b, 0x0832, 0x07aa, 0x0779, 0x074e,
+ 0x0760, 0x07f4, 0x08c3, 0x0947, 0x0985, 0x09e1,
+ 0x0a33, 0x0a36, 0x0aa9, 0x0c28, 0x0dba, 0x0df5,
+ 0x0c6f, 0x0a16, 0x088e, 0x0813, 0x077c, 0x0691,
+ 0x05bc, 0x04f4, 0x0434, 0x0366, 0x02df, 0x0347,
+ 0x03df, 0x0352, 0x0161, 0xfe97, 0xfc26, 0xfaee,
+ 0xfacf, 0xfbb7, 0xfcfa, 0xfd47, 0xfc9a, 0xfb99,
+ 0xfadc, 0xfb2e, 0xfc23, 0xfca9, 0xfc8f, 0xfbf5,
+ 0xfb82, 0xfbec, 0xfcd8, 0xfdaa, 0xfd9c, 0xfc43,
+ 0xfab4, 0xf951, 0xf795, 0xf651, 0xf61b, 0xf681,
+ 0xf744, 0xf7c8, 0xf7d8, 0xf804, 0xf7f8, 0xf78a,
+ 0xf76e, 0xf793, 0xf78b, 0xf752, 0xf760, 0xf86d,
+ 0xf9ef, 0xfa92, 0xfa31, 0xf977, 0xf8d8, 0xf811,
+ 0xf68c, 0xf4c7, 0xf3e3, 0xf401, 0xf468, 0xf4b2,
+ 0xf56e, 0xf6dd, 0xf7fa, 0xf817, 0xf77b, 0xf6aa,
+ 0xf672, 0xf704, 0xf7e5, 0xf928, 0xfaa9, 0xfbe1,
+ 0xfca6, 0xfcfe, 0xfdac, 0xff4a, 0x00ff, 0x023c,
+ 0x02fa, 0x0334, 0x03f2, 0x0582, 0x06f0, 0x080b,
+ 0x087b, 0x082a, 0x0854, 0x08b0, 0x083f, 0x07de,
+ 0x07e1, 0x07a7, 0x0749, 0x06d0, 0x065d, 0x0654,
+ 0x067f, 0x06ca, 0x0775, 0x088a, 0x09e9, 0x0b29,
+ 0x0c4f, 0x0dad, 0x0e79, 0x0e15, 0x0d4a, 0x0ca8,
+ 0x0be9, 0x0ad6, 0x0974, 0x080e, 0x0733, 0x0717,
+ 0x06fd, 0x0670, 0x0609, 0x05c1, 0x0505, 0x0408,
+ 0x02d8, 0x01a3, 0x0143, 0x015a, 0x0113, 0x00b9,
+ 0x0074, 0x0048, 0x005e, 0x0068, 0x007f, 0x00c8,
+ 0x00d3, 0x009a, 0x0014, 0xff7a, 0xffae, 0x0041,
+ 0x0036, 0xffa3, 0xfe58, 0xfca9, 0xfbc5, 0xfb3b,
+ 0xfa44, 0xf993, 0xf930, 0xf85e, 0xf752, 0xf6a6,
+ 0xf680, 0xf6bb, 0xf73a, 0xf79d, 0xf784, 0xf78b,
+ 0xf852, 0xf98a, 0xfafa, 0xfc48, 0xfcba, 0xfcba,
+ 0xfd10, 0xfd5b, 0xfd16, 0xfc44, 0xfafe, 0xf983,
+ 0xf886, 0xf886, 0xf912, 0xf9ba, 0xfa60, 0xfa5e,
+ 0xf9b1, 0xf928, 0xf878, 0xf775, 0xf70e, 0xf72f,
+ 0xf74b, 0xf7aa, 0xf848, 0xf8f7, 0xf9db, 0xfad7,
+ 0xfba0, 0xfbee, 0xfbac, 0xfb2b, 0xfae1, 0xfba7,
+ 0xfdc5, 0xffee, 0x012a, 0x019e, 0x0163, 0x0118,
+ 0x0154, 0x016f, 0x011d, 0x00db, 0x0077, 0xffbf,
+ 0xff65, 0x0014, 0x01af, 0x03b6, 0x05b3, 0x06f4,
+ 0x0731, 0x0742, 0x07ac, 0x0831, 0x090c, 0x0a2a,
+ 0x0ac6, 0x0b06, 0x0b59, 0x0b68, 0x0b57, 0x0b9c,
+ 0x0bb8, 0x0b55, 0x0b51, 0x0c7b, 0x0ea1, 0x1105,
+ 0x12b1, 0x1311, 0x12ba, 0x128b, 0x1259, 0x11b7,
+ 0x10dd, 0x0fbe, 0x0e22, 0x0c7f, 0x0b1f, 0x0994,
+ 0x080b, 0x0724, 0x06b7, 0x0681, 0x068b, 0x0664,
+ 0x05f0, 0x05fc, 0x0696, 0x06c4, 0x0613, 0x04b0,
+ 0x02d0, 0x00ed, 0xff9d, 0xfeb9, 0xfdb5, 0xfc80,
+ 0xfb09, 0xf90e, 0xf733, 0xf637, 0xf5bf, 0xf58f,
+ 0xf5c9, 0xf605, 0xf662, 0xf79b, 0xf96b, 0xfb13,
+ 0xfc7b, 0xfdb2, 0xfe8c, 0xfeea, 0xfee1, 0xfe95,
+ 0xfe28, 0xfdd5, 0xfd76, 0xfcc5, 0xfc58, 0xfca4,
+ 0xfcdc, 0xfc45, 0xfae4, 0xf8cb, 0xf657, 0xf409,
+ 0xf1e3, 0xf01c, 0xef3f, 0xef2d, 0xef6b, 0xeffb,
+ 0xf0c9, 0xf15b, 0xf1b8, 0xf24c, 0xf2e3, 0xf319,
+ 0xf30f, 0xf309, 0xf358, 0xf44d, 0xf58e, 0xf664,
+ 0xf6da, 0xf758, 0xf7a2, 0xf79f, 0xf7f5, 0xf8d4,
+ 0xf9d3, 0xfae6, 0xfbdb, 0xfc49, 0xfc9e, 0xfd6f,
+ 0xfec0, 0x00b8, 0x0312, 0x04be, 0x0579, 0x05dd,
+ 0x0641, 0x06c7, 0x07b1, 0x08fe, 0x0a23, 0x0ab1,
+ 0x0ade, 0x0b0a, 0x0b60, 0x0bed, 0x0c63, 0x0cc8,
+ 0x0de6, 0x0fae, 0x110a, 0x11cd, 0x126b, 0x12bc,
+ 0x1290, 0x120e, 0x116d, 0x1107, 0x10de, 0x1059,
+ 0x0f64, 0x0ed2, 0x0ed0, 0x0e76, 0x0d66, 0x0c3c,
+ 0x0b2c, 0x0a00, 0x08cf, 0x07b2, 0x06ad, 0x05de,
+ 0x0509, 0x0406, 0x0377, 0x03a6, 0x03d8, 0x03b9,
+ 0x03af, 0x03bf, 0x03b0, 0x03ab, 0x03a3, 0x033d,
+ 0x0260, 0x0137, 0x0034, 0x000f, 0x00aa, 0x00d2,
+ 0xffff, 0xfefc, 0xfe84, 0xfeaf, 0xff75, 0x0064,
+ 0x00c3, 0x0083, 0x0007, 0xff51, 0xfe5f, 0xfd53,
+ 0xfc22, 0xfb19, 0xfab9, 0xfa99, 0xfa1e, 0xf9b4,
+ 0xf9d7, 0xf9f2, 0xf95c, 0xf846, 0xf766, 0xf750,
+ 0xf7ed, 0xf89b, 0xf94b, 0xfab0, 0xfcb7, 0xfe4b,
+ 0xff08, 0xff72, 0xffad, 0xffa3, 0xff75, 0xff1b,
+ 0xfe88, 0xfdff, 0xfd95, 0xfd60, 0xfdd3, 0xfee2,
+ 0xffd3, 0x0082, 0x014b, 0x01de, 0x01c0, 0x0128,
+ 0x0079, 0xffdf, 0xff91, 0xff82, 0xff73, 0xffa2,
+ 0x0034, 0x0081, 0x003a, 0x0001, 0x0056, 0x0135,
+ 0x027c, 0x03a8, 0x042d, 0x044b, 0x047c, 0x04bb,
+ 0x0512, 0x058b, 0x05ae, 0x0540, 0x04ad, 0x042a,
+ 0x03cc, 0x03df, 0x042b, 0x03ff, 0x0360, 0x02ed,
+ 0x0305, 0x03be, 0x04e9, 0x060a, 0x06e5, 0x07a9,
+ 0x083a, 0x0851, 0x0838, 0x0851, 0x0856, 0x07ee,
+ 0x072e, 0x0629, 0x0514, 0x044a, 0x03a9, 0x02fd,
+ 0x02b3, 0x0319, 0x03ed, 0x04fc, 0x0608, 0x06a9,
+ 0x06ef, 0x072e, 0x0735, 0x06c1, 0x060d, 0x0552,
+ 0x048c, 0x03f8, 0x03b4, 0x033e, 0x0252, 0x0180,
+ 0x0152, 0x01e5, 0x02fb, 0x03d7, 0x03eb, 0x037a,
+ 0x02ec, 0x0272, 0x026b, 0x02f7, 0x0357, 0x02b3,
+ 0x0124, 0xff7b, 0xfe78, 0xfe6d, 0xfee3, 0xfeff,
+ 0xfe94, 0xfe06, 0xfd97, 0xfd9f, 0xfe60, 0xff72,
+ 0x0033, 0x0073, 0x0039, 0xffa8, 0xff0f, 0xfeac,
+ 0xfe78, 0xfe69, 0xfe75, 0xfe44, 0xfdb2, 0xfd31,
+ 0xfcff, 0xfcfb, 0xfd59, 0xfe38, 0xff47, 0x004e,
+ 0x0116, 0x016d, 0x01b7, 0x0244, 0x029d, 0x027a,
+ 0x0245, 0x0255, 0x0282, 0x0290, 0x0270, 0x01f8,
+ 0x0127, 0x0089, 0x00a8, 0x0192, 0x02eb, 0x040a,
+ 0x0480, 0x0497, 0x0498, 0x0460, 0x03f6, 0x0374,
+ 0x027b, 0x00d9, 0xff36, 0xfe36, 0xfddc, 0xfdf9,
+ 0xfe51, 0xfe98, 0xfeca, 0xfec4, 0xfe3f, 0xfdce,
+ 0xfe43, 0xff50, 0x003a, 0x00ac, 0x0076, 0xfff2,
+ 0xffda, 0x0047, 0x00d1, 0x0128, 0x00eb, 0xffea,
+ 0xfe99, 0xfd9e, 0xfd28, 0xfd2f, 0xfdc4, 0xfebd,
+ 0xff9b, 0xffe2, 0xff67, 0xfea4, 0xfe6d, 0xfeb6,
+ 0xfe98, 0xfdd7, 0xfd2b, 0xfd26, 0xfdba, 0xfe99,
+ 0xffbe, 0x0147, 0x0308, 0x04c6, 0x0688, 0x085b,
+ 0x0a24, 0x0b90, 0x0c46, 0x0c4c, 0x0bcc, 0x0ad9,
+ 0x09e3, 0x0961, 0x08ed, 0x07c6, 0x0604, 0x046d,
+ 0x039b, 0x03ab, 0x040c, 0x03fb, 0x0382, 0x0315,
+ 0x02a8, 0x025a, 0x027f, 0x02cd, 0x02f7, 0x0302,
+ 0x028b, 0x0184, 0x00b5, 0x0082, 0x0090, 0x0079,
+ 0xffe6, 0xfed3, 0xfdd0, 0xfd5e, 0xfd5a, 0xfd6e,
+ 0xfd96, 0xfdd6, 0xfe10, 0xfe78, 0xff44, 0x005d,
+ 0x01f1, 0x03fc, 0x05a0, 0x0664, 0x06bd, 0x06de,
+ 0x0674, 0x0588, 0x0499, 0x03d9, 0x0312, 0x025d,
+ 0x0217, 0x0238, 0x027a, 0x0294, 0x024b, 0x01f2,
+ 0x01cf, 0x013e, 0xffe5, 0xfe70, 0xfd41, 0xfc05,
+ 0xfab4, 0xf995, 0xf8ee, 0xf909, 0xf996, 0xf9ae,
+ 0xf915, 0xf81e, 0xf6c4, 0xf573, 0xf515, 0xf5a4,
+ 0xf67d, 0xf753, 0xf7b3, 0xf79c, 0xf80a, 0xf93c,
+ 0xfa5f, 0xfb18, 0xfb67, 0xfb25, 0xfaac, 0xfa8f,
+ 0xfad7, 0xfb77, 0xfc58, 0xfcff, 0xfd54, 0xfdc8,
+ 0xfe3b, 0xfe5d, 0xfe87, 0xfedd, 0xfeee, 0xfea4,
+ 0xfe33, 0xfdc1, 0xfd9e, 0xfde5, 0xfe59, 0xff05,
+ 0x0034, 0x01ee, 0x03f5, 0x0642, 0x08dd, 0x0b2f,
+ 0x0c86, 0x0d12, 0x0d23, 0x0c74, 0x0b33, 0x09f3,
+ 0x08d7, 0x07d9, 0x071c, 0x067f, 0x05a6, 0x046a,
+ 0x02fd, 0x019e, 0x0074, 0xff91, 0xfeaa, 0xfdc5,
+ 0xfd9a, 0xfe57, 0xff66, 0x008b, 0x0199, 0x0260,
+ 0x0366, 0x04bd, 0x0584, 0x0558, 0x0477, 0x0329,
+ 0x0200, 0x0179, 0x018c, 0x0205, 0x0272, 0x0241,
+ 0x018e, 0x0127, 0x0175, 0x0234, 0x0305, 0x03a0,
+ 0x03d3, 0x039d, 0x02f5, 0x01de, 0x00a3, 0xff73,
+ 0xfe65, 0xfdd3, 0xfdca, 0xfe05, 0xfe98, 0xff91,
+ 0x00aa, 0x01a1, 0x0234, 0x026f, 0x029b, 0x0276,
+ 0x019e, 0x0088, 0xffe7, 0xffe6, 0x0062, 0x0135,
+ 0x020c, 0x02a4, 0x030f, 0x0339, 0x02da, 0x021b,
+ 0x0144, 0x0074, 0x0021, 0x0060, 0x00ab, 0x0111,
+ 0x01a3, 0x01ce, 0x0199, 0x0168, 0x0105, 0x004d,
+ 0xff54, 0xfe09, 0xfcb6, 0xfbc6, 0xfb57, 0xfb88,
+ 0xfc1d, 0xfc3d, 0xfb9a, 0xfb09, 0xfb5f, 0xfc6e,
+ 0xfd61, 0xfd79, 0xfc90, 0xfb26, 0xf998, 0xf7e1,
+ 0xf63e, 0xf508, 0xf449, 0xf412, 0xf44f, 0xf4e2,
+ 0xf62b, 0xf857, 0xfaef, 0xfd4c, 0xfeea, 0xffeb,
+ 0x009b, 0x007d, 0xff75, 0xfe7a, 0xfe01, 0xfded,
+ 0xfe43, 0xfeba, 0xfef3, 0xfec8, 0xfe15, 0xfd1c,
+ 0xfc48, 0xfba0, 0xfb37, 0xfb3b, 0xfbb3, 0xfc98,
+ 0xfdc9, 0xff26, 0x00b3, 0x0239, 0x035b, 0x03f1,
+ 0x0410, 0x0402, 0x03ff, 0x0408, 0x042a, 0x044c,
+ 0x0443, 0x0424, 0x03f4, 0x03a3, 0x035b, 0x0364,
+ 0x0414, 0x055b, 0x067a, 0x06cc, 0x0622, 0x04c3,
+ 0x0368, 0x0269, 0x018d, 0x00c6, 0x001b, 0xffbb,
+ 0x0020, 0x014c, 0x02d9, 0x04c5, 0x06ec, 0x0881,
+ 0x08be, 0x07d4, 0x06a4, 0x0590, 0x04ad, 0x046c,
+ 0x04b5, 0x0504, 0x0563, 0x05e1, 0x064c, 0x067a,
+ 0x061c, 0x053e, 0x0460, 0x03a5, 0x0303, 0x027d,
+ 0x0217, 0x0207, 0x0236, 0x0279, 0x032d, 0x0426,
+ 0x04ab, 0x049a, 0x0401, 0x0314, 0x0298, 0x02a7,
+ 0x02d8, 0x0365, 0x043c, 0x04b9, 0x04cf, 0x0497,
+ 0x03eb, 0x032e, 0x02dc, 0x02b5, 0x024f, 0x0187,
+ 0xfff7, 0xfd8e, 0xfb26, 0xf968, 0xf869, 0xf811,
+ 0xf7ea, 0xf7cb, 0xf84e, 0xf947, 0xfa3d, 0xfbd0,
+ 0xfe15, 0xffa5, 0xffc4, 0xfefa, 0xfdcd, 0xfc6c,
+ 0xfb28, 0xfa41, 0xf9bc, 0xf9e1, 0xfab7, 0xfb54,
+ 0xfb7e, 0xfc04, 0xfcae, 0xfcde, 0xfd0f, 0xfd84,
+ 0xfdfc, 0xfe80, 0xfed2, 0xfe84, 0xfdbf, 0xfd24,
+ 0xfd2d, 0xfdab, 0xfe18, 0xfe1e, 0xfda1, 0xfd38,
+ 0xfd91, 0xfe54, 0xff61, 0x0100, 0x028d, 0x03a8,
+ 0x04c2, 0x05bd, 0x06bd, 0x0863, 0x0a69, 0x0c4a,
+ 0x0dbf, 0x0e44, 0x0dad, 0x0c27, 0x0a24, 0x089d,
+ 0x07e2, 0x075e, 0x06fc, 0x0730, 0x0868, 0x0a61,
+ 0x0c23, 0x0d83, 0x0ee4, 0x0f9c, 0x0ef8, 0x0d39,
+ 0x0b0b, 0x0981, 0x0911, 0x0905, 0x0919, 0x0988,
+ 0x0a07, 0x0a63, 0x0a76, 0x09c9, 0x0860, 0x0682,
+ 0x043e, 0x020f, 0x00b8, 0x0094, 0x0160, 0x024b,
+ 0x02d1, 0x0335, 0x03b5, 0x047c, 0x05a5, 0x06b6,
+ 0x0765, 0x0813, 0x08b3, 0x08eb, 0x08da, 0x0870,
+ 0x0782, 0x0676, 0x05a4, 0x0512, 0x04e1, 0x04f6,
+ 0x04e6, 0x046a, 0x0344, 0x017b, 0xff5c, 0xfd06,
+ 0xfacc, 0xf916, 0xf7c2, 0xf6ad, 0xf5d2, 0xf538,
+ 0xf57c, 0xf6cf, 0xf848, 0xf99b, 0xfaba, 0xfab1,
+ 0xf93c, 0xf718, 0xf4de, 0xf35f, 0xf2fa, 0xf315,
+ 0xf387, 0xf477, 0xf5ab, 0xf6e9, 0xf7b5, 0xf7ef,
+ 0xf84a, 0xf8be, 0xf8b4, 0xf85b, 0xf82e, 0xf893,
+ 0xf9ab, 0xfacf, 0xfb89, 0xfbdd, 0xfbe7, 0xfc53,
+ 0xfd2e, 0xfd7c, 0xfd48, 0xfd3f, 0xfd42, 0xfd8a,
+ 0xfe79, 0xff5e, 0xffc3, 0x0037, 0x012f, 0x0292,
+ 0x0476, 0x0716, 0x09f0, 0x0c1a, 0x0d49, 0x0d77,
+ 0x0ccc, 0x0c02, 0x0b66, 0x0a89, 0x0969, 0x0839,
+ 0x0711, 0x0663, 0x0677, 0x0705, 0x07dd, 0x08cc,
+ 0x094e, 0x08f8, 0x07b7, 0x05ec, 0x0474, 0x0405,
+ 0x049f, 0x05bc, 0x06d7, 0x07cf, 0x08e8, 0x0a49,
+ 0x0b96, 0x0c61, 0x0c95, 0x0c1e, 0x0ad7, 0x093b,
+ 0x0823, 0x07b8, 0x0796, 0x07b7, 0x080d, 0x0809,
+ 0x077c, 0x06c6, 0x060c, 0x056b, 0x051e, 0x04fb,
+ 0x0499, 0x03e4, 0x0324, 0x0284, 0x01c8, 0x00f1,
+ 0x0077, 0x0078, 0x0109, 0x024f, 0x0360, 0x0358,
+ 0x0288, 0x0118, 0xff07, 0xfd18, 0xfb95, 0xfa4b,
+ 0xf97a, 0xf903, 0xf8b7, 0xf912, 0xfa42, 0xfbf7,
+ 0xfdc9, 0xff26, 0x0006, 0x00a4, 0x00a6, 0x0005,
+ 0xff40, 0xfeab, 0xfe8e, 0xfe9b, 0xfe4a, 0xfe22,
+ 0xfe87, 0xfef4, 0xff38, 0xff45, 0xfee5, 0xfe30,
+ 0xfd07, 0xfb93, 0xfabe, 0xfaec, 0xfbb1, 0xfc5e,
+ 0xfc76, 0xfc62, 0xfc81, 0xfc6b, 0xfc32, 0xfbe4,
+ 0xfb27, 0xfa74, 0xf9e5, 0xf8ec, 0xf816, 0xf7c2,
+ 0xf768, 0xf734, 0xf783, 0xf865, 0xfa0f, 0xfbf9,
+ 0xfd6e, 0xfe7e, 0xff23, 0xff3d, 0xfed5, 0xfdf1,
+ 0xfd22, 0xfcd6, 0xfcab, 0xfc70, 0xfc39, 0xfc2a,
+ 0xfcb1, 0xfdb1, 0xfec1, 0xffbe, 0x0040, 0x0032,
+ 0xffff, 0xffa4, 0xff83, 0x0036, 0x0135, 0x020b,
+ 0x02eb, 0x038b, 0x03e8, 0x0467, 0x04dd, 0x0562,
+ 0x0626, 0x0680, 0x065c, 0x0673, 0x06c0, 0x0713,
+ 0x079d, 0x0825, 0x0877, 0x088e, 0x07ed, 0x069e,
+ 0x0554, 0x0429, 0x031a, 0x025b, 0x01ac, 0x0135,
+ 0x0158, 0x01b4, 0x01f8, 0x0219, 0x0205, 0x0244,
+ 0x02ed, 0x0356, 0x03a0, 0x03d3, 0x0363, 0x02c2,
+ 0x0245, 0x012b, 0xff61, 0xfd7a, 0xfbed, 0xfb39,
+ 0xfb46, 0xfb98, 0xfc20, 0xfcdb, 0xfdcf, 0xfef7,
+ 0xffc8, 0x0012, 0x0032, 0x0020, 0xffc2, 0xff12,
+ 0xfe06, 0xfd09, 0xfc86, 0xfc76, 0xfd00, 0xfe2e,
+ 0xff9a, 0x00f8, 0x01ca, 0x01a9, 0x015d, 0x0195,
+ 0x01d0, 0x01d4, 0x01ec, 0x01ff, 0x020d, 0x0233,
+ 0x024a, 0x0262, 0x0274, 0x0237, 0x0191, 0x0031,
+ 0xfe3f, 0xfcc2, 0xfbe0, 0xfb41, 0xfb4c, 0xfbd4,
+ 0xfc68, 0xfd3d, 0xfdb7, 0xfd57, 0xfce6, 0xfc97,
+ 0xfc26, 0xfbcd, 0xfb55, 0xfaa5, 0xfa37, 0xf9ff,
+ 0xf9e3, 0xfa0c, 0xfa68, 0xfb19, 0xfc1d, 0xfcf2,
+ 0xfd77, 0xfdf4, 0xfe80, 0xfed6, 0xfe88, 0xfdf2,
+ 0xfdb5, 0xfd7e, 0xfd26, 0xfd12, 0xfcfc, 0xfcb3,
+ 0xfcaa, 0xfd10, 0xfdf9, 0xff57, 0x0097, 0x018e,
+ 0x028d, 0x038d, 0x046a, 0x051c, 0x05cc, 0x06d7,
+ 0x07e8, 0x086f, 0x08c2, 0x0913, 0x0937, 0x0984,
+ 0x09b9, 0x0954, 0x0917, 0x0932, 0x08cf, 0x0837,
+ 0x07e9, 0x07d5, 0x0862, 0x0938, 0x097b, 0x09a9,
+ 0x09f5, 0x09c6, 0x097f, 0x096e, 0x08fd, 0x0811,
+ 0x06ca, 0x0557, 0x042a, 0x0342, 0x0288, 0x0217,
+ 0x01a0, 0x00f5, 0x0041, 0xffaa, 0xff6f, 0xff45,
+ 0xfeb0, 0xfe3e, 0xfe4d, 0xfe3f, 0xfdeb, 0xfdb8,
+ 0xfdd2, 0xfe6b, 0xff87, 0x00bf, 0x01c4, 0x02aa,
+ 0x0382, 0x041d, 0x047c, 0x04df, 0x051a, 0x04f7,
+ 0x04bc, 0x0496, 0x047b, 0x0474, 0x0451, 0x03e0,
+ 0x0362, 0x02db, 0x01d1, 0x0022, 0xfe71, 0xfd51,
+ 0xfc82, 0xfb86, 0xfa62, 0xf95e, 0xf885, 0xf7ae,
+ 0xf6e1, 0xf66a, 0xf64e, 0xf651, 0xf671, 0xf686,
+ 0xf629, 0xf54f, 0xf458, 0xf3ae, 0xf35f, 0xf33a,
+ 0xf355, 0xf39e, 0xf3b5, 0xf3dd, 0xf46f, 0xf51a,
+ 0xf5f8, 0xf733, 0xf82a, 0xf8c9, 0xf977, 0xf9df,
+ 0xf9d7, 0xf9ac, 0xf98d, 0xf9f2, 0xfb17, 0xfc8a,
+ 0xfde0, 0xfea5, 0xfec4, 0xfeec, 0xff6f, 0x0030,
+ 0x0131, 0x025c, 0x03f6, 0x061e, 0x0821, 0x09d6,
+ 0x0b79, 0x0cc5, 0x0dd6, 0x0e92, 0x0e41, 0x0d4b,
+ 0x0c8b, 0x0c17, 0x0bf8, 0x0bff, 0x0c15, 0x0c5b,
+ 0x0c1c, 0x0b10, 0x0a06, 0x091c, 0x0848, 0x07d3,
+ 0x0772, 0x0723, 0x06f3, 0x0642, 0x0544, 0x047b,
+ 0x03a9, 0x02ed, 0x0269, 0x01d0, 0x017f, 0x01d7,
+ 0x029c, 0x0391, 0x0461, 0x04d3, 0x0511, 0x0566,
+ 0x0616, 0x06bf, 0x06a4, 0x05e8, 0x0511, 0x0463,
+ 0x042c, 0x0443, 0x0433, 0x0415, 0x03e5, 0x0340,
+ 0x025c, 0x01d4, 0x01c7, 0x020d, 0x0297, 0x030f,
+ 0x0325, 0x0319, 0x02f4, 0x028b, 0x0231, 0x01e9,
+ 0x012c, 0xffe3, 0xfe4c, 0xfcfd, 0xfc76, 0xfc65,
+ 0xfc83, 0xfcbd, 0xfc95, 0xfc23, 0xfbbd, 0xfb39,
+ 0xfb29, 0xfbfb, 0xfcef, 0xfdac, 0xfe28, 0xfe23,
+ 0xfe31, 0xfed6, 0xffa0, 0x0006, 0xffb2, 0xfea3,
+ 0xfd4c, 0xfc12, 0xfb4d, 0xfb11, 0xfb21, 0xfb7b,
+ 0xfc10, 0xfcc2, 0xfd95, 0xfe12, 0xfe09, 0xfdf9,
+ 0xfdd0, 0xfd8b, 0xfdb7, 0xfe0e, 0xfe18, 0xfe33,
+ 0xfe82, 0xfed0, 0xff14, 0xff2e, 0xff2e, 0xff82,
+ 0x0044, 0x0122, 0x01cf, 0x0248, 0x02cb, 0x035c,
+ 0x0381, 0x02f9, 0x0238, 0x0191, 0x0101, 0x00d1,
+ 0x0115, 0x016b, 0x01b5, 0x01b5, 0x0147, 0x00e5,
+ 0x00a9, 0x0071, 0x00a4, 0x0140, 0x01f7, 0x02ab,
+ 0x02c1, 0x0235, 0x01f4, 0x021b, 0x023e, 0x0238,
+ 0x01d7, 0x017f, 0x01b2, 0x022f, 0x0300, 0x0436,
+ 0x0532, 0x05e3, 0x06cd, 0x07ea, 0x08e2, 0x093c,
+ 0x08c1, 0x07f6, 0x0753, 0x06e9, 0x06b4, 0x0694,
+ 0x066c, 0x0629, 0x05c0, 0x0582, 0x0572, 0x053b,
+ 0x0524, 0x056c, 0x05bc, 0x0609, 0x063b, 0x0604,
+ 0x05c5, 0x05d1, 0x05d8, 0x0598, 0x04e4, 0x03fd,
+ 0x0372, 0x0305, 0x029c, 0x02ba, 0x02e5, 0x02aa,
+ 0x027b, 0x01fa, 0x00f8, 0x0054, 0xffe9, 0xff48,
+ 0xfede, 0xfe68, 0xfda4, 0xfd32, 0xfd3a, 0xfd91,
+ 0xfdfb, 0xfdcd, 0xfd29, 0xfca5, 0xfc22, 0xfbf1,
+ 0xfc93, 0xfda1, 0xfebe, 0xfff9, 0x0151, 0x02b3,
+ 0x03a9, 0x03ed, 0x03e0, 0x03b2, 0x035a, 0x02ea,
+ 0x025b, 0x01e1, 0x018c, 0x00fd, 0x008a, 0x00e6,
+ 0x01f3, 0x0329, 0x0409, 0x046c, 0x04bc, 0x04e6,
+ 0x043a, 0x02da, 0x01b0, 0x011a, 0x00be, 0x0050,
+ 0xffc2, 0xff28, 0xfeca, 0xfe72, 0xfda3, 0xfcee,
+ 0xfd0c, 0xfdb9, 0xfeaa, 0xff85, 0xffea, 0x0067,
+ 0x0108, 0x0126, 0x0107, 0x00ca, 0x0037, 0xffe6,
+ 0xffd8, 0xff4c, 0xfe01, 0xfc08, 0xfa20, 0xf90b,
+ 0xf847, 0xf7f1, 0xf8f6, 0xfab9, 0xfc4a, 0xfdda,
+ 0xff9d, 0x0180, 0x034b, 0x0493, 0x054a, 0x05d9,
+ 0x0688, 0x0718, 0x0765, 0x07d6, 0x084f, 0x088d,
+ 0x090e, 0x09e0, 0x0ac4, 0x0bdf, 0x0c91, 0x0c69,
+ 0x0c46, 0x0c58, 0x0c21, 0x0be7, 0x0bf2, 0x0c40,
+ 0x0ccc, 0x0d18, 0x0cd9, 0x0c80, 0x0c5e, 0x0c05,
+ 0x0af5, 0x0980, 0x084c, 0x0748, 0x0626, 0x0508,
+ 0x041d, 0x0359, 0x0298, 0x019e, 0x0042, 0xfeec,
+ 0xfe1c, 0xfd7e, 0xfcd0, 0xfc70, 0xfbf8, 0xfb0c,
+ 0xfa78, 0xfa46, 0xf9ff, 0xfa42, 0xfb38, 0xfc48,
+ 0xfd8a, 0xff2b, 0x011b, 0x033a, 0x04f7, 0x0635,
+ 0x0729, 0x074f, 0x068e, 0x0592, 0x0464, 0x0302,
+ 0x01d7, 0x00c7, 0xffe6, 0xffd3, 0x0038, 0x0040,
+ 0xfffe, 0xffbd, 0xff74, 0xfeee, 0xfdf4, 0xfcda,
+ 0xfbeb, 0xfafc, 0xfa49, 0xf9c2, 0xf90a, 0xf8d5,
+ 0xf8fe, 0xf851, 0xf755, 0xf68c, 0xf56e, 0xf49f,
+ 0xf479, 0xf481, 0xf524, 0xf630, 0xf6dd, 0xf737,
+ 0xf738, 0xf747, 0xf7c6, 0xf7d7, 0xf78a, 0xf75a,
+ 0xf690, 0xf5a6, 0xf56b, 0xf511, 0xf4a3, 0xf4ff,
+ 0xf5f7, 0xf717, 0xf82d, 0xf967, 0xfb0f, 0xfcb5,
+ 0xfe3f, 0x001f, 0x022a, 0x03fb, 0x0594, 0x06f4,
+ 0x07c9, 0x081a, 0x08c8, 0x09d4, 0x0a99, 0x0bba,
+ 0x0ce8, 0x0cf0, 0x0cf2, 0x0dac, 0x0ddf, 0x0dce,
+ 0x0dfb, 0x0d6f, 0x0c39, 0x0b34, 0x0a85, 0x0a2b,
+ 0x0a0d, 0x09f4, 0x0993, 0x08b3, 0x077b, 0x060e,
+ 0x04b2, 0x03c5, 0x0309, 0x026a, 0x023f, 0x0289,
+ 0x02ff, 0x0337, 0x0362, 0x03e5, 0x0410, 0x03c1,
+ 0x0378, 0x027a, 0x011d, 0x0096, 0x0025, 0xff67,
+ 0xff06, 0xfea3, 0xfe3e, 0xfe0d, 0xfde9, 0xfeac,
+ 0x001c, 0x00b1, 0x00ba, 0x00bc, 0x0016, 0xff27,
+ 0xfe88, 0xfdcf, 0xfcdc, 0xfc44, 0xfc35, 0xfc41,
+ 0xfc87, 0xfd3a, 0xfd71, 0xfcee, 0xfcb7, 0xfcf4,
+ 0xfd45, 0xfdc9, 0xfe68, 0xfe9e, 0xfe2e, 0xfdb6,
+ 0xfdb8, 0xfdba, 0xfdc6, 0xfe30, 0xfe7a, 0xfe82,
+ 0xfe21, 0xfd27, 0xfc9f, 0xfcc6, 0xfce0, 0xfd4d,
+ 0xfdc9, 0xfd83, 0xfd2c, 0xfd31, 0xfd1d, 0xfcc3,
+ 0xfc3e, 0xfc30, 0xfc73, 0xfc04, 0xfb60, 0xfb2c,
+ 0xfaca, 0xfa87, 0xfb08, 0xfbc0, 0xfbf5, 0xfba5,
+ 0xfb8e, 0xfbfe, 0xfc68, 0xfcd6, 0xfd7f, 0xfdfd,
+ 0xfe43, 0xfe73, 0xfea6, 0xfefc, 0xff0c, 0xfebe,
+ 0xfe7e, 0xfe67, 0xfed5, 0xffd7, 0x00ad, 0x012d,
+ 0x018e, 0x01f5, 0x02b7, 0x03a5, 0x0460, 0x04d9,
+ 0x04c7, 0x044b, 0x03d3, 0x0347, 0x02c6, 0x028a,
+ 0x0265, 0x022a, 0x0174, 0x0034, 0xff35, 0xfef1,
+ 0xff6b, 0x008d, 0x01fe, 0x036a, 0x0482, 0x056b,
+ 0x0694, 0x073a, 0x06cd, 0x065c, 0x062b, 0x05b1,
+ 0x0538, 0x04ad, 0x03df, 0x0386, 0x03e3, 0x0458,
+ 0x045a, 0x040d, 0x0424, 0x0469, 0x0419, 0x03a5,
+ 0x0376, 0x030b, 0x0287, 0x020f, 0x0129, 0x0066,
+ 0x0082, 0x00d8, 0x013d, 0x0262, 0x03d2, 0x04c9,
+ 0x0562, 0x058e, 0x055a, 0x0529, 0x04c7, 0x0463,
+ 0x0476, 0x044c, 0x03a9, 0x034c, 0x02c9, 0x01bd,
+ 0x00ef, 0x005a, 0xff75, 0xfe68, 0xfd5e, 0xfc4f,
+ 0xfb79, 0xfb43, 0xfbda, 0xfca4, 0xfd06, 0xfd5a,
+ 0xfe03, 0xfee9, 0xfff0, 0x00a7, 0x007f, 0xffc2,
+ 0xff32, 0xfee7, 0xfe63, 0xfdbb, 0xfd5f, 0xfd4b,
+ 0xfd9a, 0xfe72, 0xff20, 0xff39, 0xff4a, 0xff9d,
+ 0x0024, 0x00d4, 0x0134, 0x0151, 0x019c, 0x017a,
+ 0x0092, 0xffb3, 0xfee2, 0xfdd3, 0xfd54, 0xfda0,
+ 0xfddd, 0xfdd8, 0xfdd5, 0xfde1, 0xfe45, 0xff33,
+ 0x0044, 0x0108, 0x0181, 0x01ac, 0x0174, 0x0146,
+ 0x0188, 0x01ac, 0x013d, 0x00a7, 0x0024, 0xff59,
+ 0xfe34, 0xfd25, 0xfc8b, 0xfc60, 0xfc80, 0xfce0,
+ 0xfd33, 0xfd27, 0xfd01, 0xfd6f, 0xfea3, 0xffd3,
+ 0x0058, 0x00b8, 0x013e, 0x0197, 0x0233, 0x0347,
+ 0x042d, 0x0513, 0x0648, 0x0721, 0x0755, 0x06f1,
+ 0x0643, 0x067f, 0x07f8, 0x09bc, 0x0b5f, 0x0c6a,
+ 0x0c8d, 0x0c89, 0x0c87, 0x0c4c, 0x0c81, 0x0d16,
+ 0x0d34, 0x0d29, 0x0d8c, 0x0df5, 0x0e26, 0x0e99,
+ 0x0ef1, 0x0e2c, 0x0cf5, 0x0c22, 0x0ad4, 0x093a,
+ 0x0881, 0x080a, 0x0716, 0x060c, 0x0513, 0x0413,
+ 0x02c7, 0x014b, 0x0051, 0xff64, 0xfe17, 0xfd54,
+ 0xfd45, 0xfdc5, 0xfefc, 0x002b, 0x0154, 0x02bd,
+ 0x0355, 0x0328, 0x02f2, 0x0283, 0x0272, 0x02bb,
+ 0x0285, 0x0286, 0x02cf, 0x029b, 0x02a9, 0x02d9,
+ 0x0266, 0x01d7, 0x00e3, 0xff7d, 0xfee4, 0xfe7a,
+ 0xfd72, 0xfce9, 0xfce4, 0xfc77, 0xfbb5, 0xfb21,
+ 0xfb1d, 0xfabd, 0xf901, 0xf757, 0xf6ac, 0xf60a,
+ 0xf5e1, 0xf699, 0xf718, 0xf734, 0xf721, 0xf6fc,
+ 0xf761, 0xf773, 0xf6da, 0xf757, 0xf82a, 0xf7dd,
+ 0xf82c, 0xf921, 0xf8f1, 0xf86a, 0xf822, 0xf782,
+ 0xf6b5, 0xf547, 0xf3ac, 0xf32e, 0xf2c2, 0xf23b,
+ 0xf312, 0xf487, 0xf5b5, 0xf67d, 0xf66b, 0xf6d2,
+ 0xf842, 0xf93c, 0xfa99, 0xfd58, 0x0001, 0x01fe,
+ 0x0384, 0x04f9, 0x06ca, 0x07ba, 0x07fa, 0x095a,
+ 0x0aa0, 0x0ab8, 0x0b32, 0x0c20, 0x0ca1, 0x0cd1,
+ 0x0cf3, 0x0d51, 0x0d8a, 0x0da3, 0x0e0a, 0x0d45,
+ 0x0b42, 0x0a9d, 0x0b4b, 0x0bc0, 0x0c3b, 0x0cd4,
+ 0x0cdf, 0x0bbf, 0x0a66, 0x0abb, 0x0b31, 0x0a0b,
+ 0x096f, 0x0988, 0x0918, 0x0955, 0x098e, 0x0917,
+ 0x0975, 0x0928, 0x0754, 0x0635, 0x0557, 0x0482,
+ 0x04db, 0x04ac, 0x0425, 0x048e, 0x0376, 0x0141,
+ 0x0090, 0xfffd, 0xff41, 0xff85, 0xff2d, 0xfe6a,
+ 0xfe7c, 0xfe4f, 0xfe18, 0xfe1a, 0xfd40, 0xfca7,
+ 0xfce6, 0xfcbd, 0xfc95, 0xfcd1, 0xfd0e, 0xfd7c,
+ 0xfd88, 0xfd3e, 0xfd50, 0xfd35, 0xfd39, 0xfd9a,
+ 0xfd25, 0xfc7e, 0xfc87, 0xfc8e, 0xfd1e, 0xfeac,
+ 0x0065, 0x0168, 0x00e4, 0x002c, 0x006b, 0xffdc,
+ 0xfeef, 0xff48, 0xffa4, 0xffd7, 0x000c, 0xffc7,
+ 0x007a, 0x0132, 0x005c, 0xfff4, 0xff0a, 0xfca5,
+ 0xfb8b, 0xfad5, 0xf9c9, 0xfa87, 0xfb27, 0xfb3b,
+ 0xfc7e, 0xfca7, 0xfc14, 0xfc7d, 0xfba9, 0xfa58,
+ 0xfa3e, 0xfa8d, 0xfbe9, 0xfce0, 0xfc3d, 0xfcd5,
+ 0xfdee, 0xfdd0, 0xfdf3, 0xfda9, 0xfd05, 0xfd42,
+ 0xfd19, 0xfd4e, 0xfe64, 0xfecc, 0xff95, 0x002e,
+ 0xffdb, 0x0100, 0x0196, 0x0035, 0x006e, 0x0105,
+ 0x0106, 0x02f5, 0x041f, 0x0376, 0x040a, 0x04b4,
+ 0x04aa, 0x04f9, 0x053c, 0x05ec, 0x0590, 0x038a,
+ 0x0352, 0x0456, 0x054a, 0x07a7, 0x081e, 0x061e,
+ 0x05ef, 0x0557, 0x0336, 0x030d, 0x0362, 0x035e,
+ 0x03dc, 0x02b0, 0x01cc, 0x02ae, 0x01d6, 0x011f,
+ 0x0268, 0x01d9, 0x007a, 0x00ce, 0x00d4, 0x0072,
+ 0x0030, 0xffb9, 0x002c, 0x00fe, 0x01d0, 0x0375,
+ 0x0438, 0x0401, 0x043b, 0x03cd, 0x03a4, 0x049f,
+ 0x048b, 0x0431, 0x0430, 0x0276, 0x0072, 0xff4f,
+ 0xfe11, 0xfddb, 0xfdfd, 0xfd5d, 0xfdb8, 0xfde7,
+ 0xfce1, 0xfcf5, 0xfd7a, 0xfd6b, 0xfde1, 0xfe2f,
+ 0xfe78, 0xff53, 0xfff5, 0x018a, 0x0409, 0x0574,
+ 0x0643, 0x064c, 0x0554, 0x04ac, 0x032d, 0x0163,
+ 0x0133, 0x0036, 0xff47, 0x00d8, 0x011a, 0xffc6,
+ 0xffd6, 0xff12, 0xfdc0, 0xfd9d, 0xfcd3, 0xfcdf,
+ 0xfde0, 0xfc82, 0xfb69, 0xfc28, 0xfba7, 0xfb6b,
+ 0xfc8d, 0xfcf6, 0xfdc5, 0xff3c, 0xffe4, 0x003d,
+ 0x006e, 0x00dc, 0x0146, 0x001e, 0xff4f, 0xffc5,
+ 0xff39, 0xfed4, 0xfea1, 0xfcc1, 0xfc14, 0xfcef,
+ 0xfbec, 0xfa93, 0xfb18, 0xfcbe, 0xfdde, 0xfc57,
+ 0xfa2d, 0xfa14, 0xf9d1, 0xf97f, 0xfae2, 0xfcbe,
+ 0xff14, 0x0070, 0xff3c, 0xfef4, 0xffaf, 0xff1e,
+ 0xff11, 0xfeb5, 0xfe16, 0x0045, 0x01e7, 0x0111,
+ 0x0188, 0x0271, 0x02a8, 0x036f, 0x0459, 0x0683,
+ 0x087f, 0x0831, 0x0979, 0x0b63, 0x0a8d, 0x0b43,
+ 0x0d3a, 0x0d1a, 0x0dfc, 0x0ed9, 0x0d24, 0x0bf8,
+ 0x0b94, 0x0bd6, 0x0e1b, 0x0eee, 0x0ca7, 0x09ed,
+ 0x0849, 0x086b, 0x084e, 0x065a, 0x04a7, 0x0282,
+ 0xff79, 0xfe5a, 0xfe63, 0xfeef, 0x00aa, 0x0085,
+ 0xfef7, 0xffdd, 0x0183, 0x0134, 0x00c7, 0x0295,
+ 0x0477, 0x0326, 0x023e, 0x04cc, 0x06c3, 0x07aa,
+ 0x07f7, 0x052b, 0x03b0, 0x049d, 0x0212, 0x0065,
+ 0x0221, 0x0096, 0xfeef, 0xffef, 0xfe36, 0xfd8b,
+ 0xff9f, 0xfd8d, 0xfa62, 0xfa26, 0xf9a4, 0xf9e4,
+ 0xfa1b, 0xf82a, 0xf831, 0xf902, 0xf7c7, 0xf840,
+ 0xf870, 0xf62b, 0xf61a, 0xf67a, 0xf54f, 0xf676,
+ 0xf7d7, 0xf7b1, 0xf87a, 0xf87c, 0xf81f, 0xf840,
+ 0xf5b8, 0xf447, 0xf6d6, 0xf73e, 0xf5dd, 0xf6da,
+ 0xf71d, 0xf538, 0xf3a9, 0xf355, 0xf32d, 0xf1ca,
+ 0xf15d, 0xf310, 0xf3a7, 0xf4b5, 0xf855, 0xfa7f,
+ 0xfa9f, 0xfb9c, 0xfd86, 0xfebc, 0xfe14, 0xff1f,
+ 0x02fd, 0x039c, 0x033d, 0x05cc, 0x0563, 0x04a5,
+ 0x084e, 0x09a3, 0x09a7, 0x0b03, 0x0766, 0x03be,
+ 0x068d, 0x08d5, 0x0863, 0x08ac, 0x09b1, 0x0af2,
+ 0x0a28, 0x08ef, 0x0b01, 0x0bd5, 0x0a77, 0x0b47,
+ 0x0bc4, 0x0bf6, 0x0e5b, 0x0e46, 0x0b6d, 0x0b00,
+ 0x0c20, 0x0c3a, 0x0be3, 0x0b53, 0x09a6, 0x08f8,
+ 0x0c80, 0x0f22, 0x0b59, 0x0786, 0x07c3, 0x0732,
+ 0x0527, 0x04b0, 0x064d, 0x0779, 0x05f6, 0x05a5,
+ 0x07b3, 0x073a, 0x06ee, 0x0998, 0x09e1, 0x083b,
+ 0x0793, 0x05e0, 0x0448, 0x0435, 0x0418, 0x02aa,
+ 0xfecd, 0xfca3, 0xfece, 0xfe25, 0xfaed, 0xfbee,
+ 0xfc9e, 0xfa82, 0xfb3a, 0xfcb6, 0xfcb4, 0xfe1d,
+ 0xfd4f, 0xf9e1, 0xfb13, 0xfcf8, 0xf9f0, 0xfa6a,
+ 0xfec8, 0xfddb, 0xfc65, 0xfeef, 0x0042, 0x01ed,
+ 0x02cd, 0xff51, 0xff4f, 0x0141, 0xfdc1, 0xfd7b,
+ 0x00cf, 0xff57, 0xff0e, 0x00ac, 0xfff8, 0x018e,
+ 0x00f9, 0xfc7a, 0xfd8f, 0xfecd, 0xfbb5, 0xfced,
+ 0xfea2, 0xfc6f, 0xfc4d, 0xfced, 0xfd0b, 0xfe15,
+ 0xfd91, 0xfe7e, 0x0036, 0xfd2e, 0xfb74, 0xfc79,
+ 0xf978, 0xf900, 0xfd72, 0xfc55, 0xf8d7, 0xfaee,
+ 0xfc34, 0xf97c, 0xf92e, 0xfae7, 0xf95f, 0xf730,
+ 0xf8e8, 0xfb3b, 0xfc7c, 0xffaa, 0x0012, 0xfb77,
+ 0xfbe2, 0x00c5, 0x00e6, 0x01ee, 0x05a4, 0x0289,
+ 0xff75, 0x0390, 0x04dd, 0x0444, 0x076f, 0x0766,
+ 0x06cd, 0x0a21, 0x0963, 0x07b8, 0x0a22, 0x0914,
+ 0x07a1, 0x09cd, 0x075f, 0x0339, 0x0345, 0x029d,
+ 0x030d, 0x06dd, 0x078e, 0x0509, 0x0343, 0x027d,
+ 0x0374, 0x0474, 0x0409, 0x0525, 0x05fd, 0x0312,
+ 0x01d8, 0x0572, 0x064e, 0x029d, 0x0176, 0x0226,
+ 0x0121, 0x021d, 0x055f, 0x07a4, 0x0842, 0x0567,
+ 0x02aa, 0x04cf, 0x04cd, 0x00ff, 0x0162, 0x029d,
+ 0x007e, 0x00d8, 0x0290, 0x00d0, 0xffc8, 0x0295,
+ 0x0474, 0x0368, 0x0350, 0x0381, 0x0207, 0x0384,
+ 0x06e0, 0x05e9, 0x0399, 0x0335, 0x038a, 0x051a,
+ 0x05c7, 0x0558, 0x05a8, 0x0430, 0x0332, 0x0455,
+ 0x03d5, 0x04b3, 0x046d, 0xff51, 0x00a0, 0x0470,
+ 0xffb4, 0x001c, 0x0693, 0x04b7, 0x0212, 0x0383,
+ 0x0322, 0x032a, 0x0201, 0x001c, 0x0077, 0xfd76,
+ 0xfb95, 0xfe06, 0xfbf4, 0xfc0b, 0x0129, 0xfffc,
+ 0xfe65, 0xff9e, 0xfbfa, 0xf9f6, 0xfb63, 0xfb66,
+ 0xfc16, 0xf968, 0xf6f3, 0xfbe5, 0xfc3d, 0xf80c,
+ 0xfaae, 0xfb49, 0xf804, 0xfa0d, 0xfc37, 0xfbf5,
+ 0xfcd9, 0xfd58, 0xfdd4, 0xfd65, 0xfcf0, 0xff48,
+ 0xfe11, 0xfadd, 0xfda9, 0xfea7, 0xfc8d, 0x0013,
+ 0x01ae, 0xfd36, 0xfbd9, 0xfd3f, 0xfde7, 0xfe43,
+ 0xfd40, 0xfdef, 0xffe9, 0xfe7d, 0xffd4, 0x0666,
+ 0x0814, 0x0500, 0x0453, 0x0455, 0x04ab, 0x0791,
+ 0x095f, 0x08f2, 0x09b3, 0x0ab8, 0x096b, 0x07c8,
+ 0x098d, 0x0caf, 0x0ab4, 0x058d, 0x05b9, 0x099e,
+ 0x0968, 0x060c, 0x04da, 0x0547, 0x0459, 0x02a1,
+ 0x0130, 0x0031, 0x0109, 0x0185, 0x0004, 0x0227,
+ 0x05d6, 0x03e7, 0x0234, 0x0331, 0x028d, 0x05b6,
+ 0x0996, 0x06ba, 0x06b4, 0x0991, 0x0720, 0x0745,
+ 0x0996, 0x0729, 0x06fc, 0x0855, 0x0735, 0x08b2,
+ 0x08c3, 0x04ec, 0x037d, 0x03ae, 0x04ca, 0x05ec,
+ 0x0494, 0x05c6, 0x06fe, 0x0412, 0x0448, 0x035f,
+ 0xfd74, 0xfc83, 0xfbb6, 0xf74e, 0xf8de, 0xf98e,
+ 0xf5b2, 0xf680, 0xf58d, 0xf1e6, 0xf568, 0xf838,
+ 0xf5d4, 0xf69d, 0xf7a9, 0xf515, 0xf424, 0xf6ec,
+ 0xfa2b, 0xf9a3, 0xf711, 0xf7d1, 0xf974, 0xf8ab,
+ 0xf806, 0xf884, 0xf92d, 0xf797, 0xf32d, 0xf2c1,
+ 0xf760, 0xf8a2, 0xf6e1, 0xf764, 0xf7b5, 0xf6ea,
+ 0xf7db, 0xf9cd, 0xfc60, 0xfe7e, 0xfcf1, 0xfc08,
+ 0x002c, 0x030a, 0x0245, 0x024b, 0x0188, 0xff8f,
+ 0xffd1, 0x0163, 0x03c9, 0x06dd, 0x07d6, 0x0720,
+ 0x0633, 0x062d, 0x07ee, 0x079c, 0x0563, 0x05a9,
+ 0x05b5, 0x0511, 0x05ec, 0x0475, 0x02c4, 0x0440,
+ 0x047e, 0x04f2, 0x0755, 0x0710, 0x0596, 0x04d4,
+ 0x0401, 0x0437, 0x032c, 0x0279, 0x044f, 0x0282,
+ 0x00c9, 0x0481, 0x04b1, 0x0279, 0x03cf, 0x0307,
+ 0x0313, 0x0609, 0x03b9, 0x01c0, 0x050e, 0x04d5,
+ 0x02ae, 0x03fd, 0x0565, 0x05ad, 0x047f, 0x02ad,
+ 0x02ff, 0x0279, 0x002c, 0xffca, 0xff9b, 0xfd58,
+ 0xfb77, 0xfc2d, 0xfc1e, 0xf7c5, 0xf7ec, 0xffaa,
+ 0xfef3, 0xf778, 0xfa86, 0xffca, 0xfd83, 0xfe23,
+ 0x00e7, 0xff23, 0xfd06, 0xfbe0, 0xfcef, 0x012c,
+ 0x0196, 0xfedc, 0xfe7d, 0xfe50, 0xfee6, 0x0019,
+ 0xffa2, 0x025d, 0x057f, 0x0252, 0x0063, 0x029c,
+ 0x02c2, 0x0133, 0xfeba, 0xfe0e, 0x00c8, 0xffb0,
+ 0xfe7c, 0x01a5, 0xfe93, 0xfb76, 0x00d4, 0xffbe,
+ 0xfabb, 0xfdc0, 0xfe2d, 0xfc3e, 0xfe88, 0xfc9b,
+ 0xfa12, 0xfb43, 0xfa7a, 0xfcf0, 0xfeb9, 0xfa35,
+ 0xfd19, 0x005d, 0xf7ac, 0xf4b6, 0xf840, 0xf68e,
+ 0xf907, 0xfbe0, 0xf8d6, 0xfb02, 0xfc42, 0xf9a2,
+ 0xfe88, 0x001b, 0xfb64, 0xfe64, 0xffd5, 0xfbc5,
+ 0xfdb1, 0x0069, 0x02c5, 0x06c4, 0x02e1, 0xff0f,
+ 0x0324, 0x042a, 0x0533, 0x08a2, 0x05c6, 0x04b6,
+ 0x070a, 0x036d, 0x0290, 0x05ad, 0x04a3, 0x0607,
+ 0x07d7, 0x054c, 0x066b, 0x058c, 0x0028, 0x038e,
+ 0x084f, 0x052d, 0x0588, 0x0781, 0x0410, 0x02dc,
+ 0x0423, 0x0450, 0x05b5, 0x0498, 0x0145, 0x0284,
+ 0x0575, 0x05b0, 0x04ee, 0x031d, 0x00c7, 0x0062,
+ 0x0133, 0x018d, 0x017a, 0x002e, 0xfcee, 0xfb4a,
+ 0xfd19, 0xfc64, 0xf8c8, 0xf92b, 0xfa5b, 0xf7d5,
+ 0xf705, 0xf7e9, 0xf704, 0xf788, 0xf8f9, 0xf8d4,
+ 0xf97a, 0xfa39, 0xf99b, 0xfa88, 0xfe05, 0x0119,
+ 0x0092, 0xfee7, 0x00c0, 0x023e, 0x009b, 0x00e0,
+ 0x01fe, 0x01de, 0x0358, 0x0315, 0x00f8, 0x0380,
+ 0x07a5, 0x08f6, 0x080f, 0x03f1, 0x0240, 0x0659,
+ 0x072a, 0x04ab, 0x056c, 0x05c1, 0x0443, 0x02fa,
+ 0x0161, 0x0338, 0x070f, 0x0694, 0x0502, 0x0447,
+ 0x020b, 0x01e8, 0x034a, 0x026d, 0x025c, 0x0364,
+ 0x0302, 0x02d0, 0x030e, 0x0339, 0x03ee, 0x0400,
+ 0x0233, 0xff1a, 0xfe4d, 0x0037, 0xff2e, 0xfe1c,
+ 0x0090, 0xfd5c, 0xf87e, 0xfd53, 0x008b, 0xfd11,
+ 0xfdab, 0xfdf7, 0xfbd9, 0xfdf7, 0xfcf1, 0xf8d4,
+ 0xfa23, 0xf9dc, 0xf847, 0xfc8a, 0xfda3, 0xf9e1,
+ 0xf991, 0xfa6a, 0xfbfa, 0xfe6a, 0xfd32, 0xfd2e,
+ 0x000f, 0xff7e, 0xff08, 0x00fd, 0x0175, 0x02e2,
+ 0x047e, 0x0361, 0x0470, 0x082e, 0x0a52, 0x0b24,
+ 0x0b9e, 0x0c3d, 0x0c9a, 0x0c15, 0x0bfc, 0x0ae6,
+ 0x09df, 0x0c52, 0x0ca1, 0x0a0b, 0x0b1a, 0x0a99,
+ 0x080f, 0x0a6b, 0x092f, 0x031d, 0x0388, 0x049f,
+ 0x0249, 0x0315, 0x01ba, 0xfefc, 0x027d, 0x043e,
+ 0x023d, 0x043c, 0x068e, 0x073e, 0x07d9, 0x0544,
+ 0x0394, 0x050b, 0x04fe, 0x05b7, 0x063d, 0x0358,
+ 0x0436, 0x0870, 0x092c, 0x0a53, 0x0cbb, 0x0d0c,
+ 0x0e4c, 0x0f75, 0x0efc, 0x105e, 0x10df, 0x0e76,
+ 0x0db0, 0x0e65, 0x0e11, 0x0c78, 0x0a6b, 0x0a83,
+ 0x0a43, 0x0687, 0x048d, 0x03f9, 0xffdf, 0xfdbb,
+ 0xff7d, 0xff63, 0xfeda, 0xfe76, 0xfc11, 0xfc34,
+ 0xfdc9, 0xfb1a, 0xf917, 0xfad9, 0xfa4e, 0xf7ce,
+ 0xf7b7, 0xf81e, 0xf75d, 0xf715, 0xf6c3, 0xf602,
+ 0xf66c, 0xf661, 0xf456, 0xf4a6, 0xf85f, 0xfa0c,
+ 0xf8b9, 0xf70d, 0xf689, 0xf8e8, 0xfb59, 0xfad5,
+ 0xfae7, 0xfb54, 0xfa31, 0xfba9, 0xfe52, 0xfe93,
+ 0xffb8, 0x00aa, 0x004d, 0x0255, 0x0283, 0x0040,
+ 0x034b, 0x063f, 0x0375, 0x036a, 0x06b0, 0x0799,
+ 0x08ac, 0x09ac, 0x0872, 0x080a, 0x07b7, 0x0586,
+ 0x049b, 0x0514, 0x0435, 0x0392, 0x0471, 0x03d4,
+ 0x020c, 0x0382, 0x0683, 0x0656, 0x0503, 0x0534,
+ 0x05a7, 0x05dc, 0x054c, 0x049e, 0x051b, 0x03be,
+ 0x00d0, 0x00ee, 0x0261, 0x032c, 0x050a, 0x064b,
+ 0x06d2, 0x07b2, 0x06ab, 0x064f, 0x0888, 0x0809,
+ 0x0599, 0x0567, 0x050b, 0x0408, 0x03af, 0x0220,
+ 0x0080, 0x0112, 0x0274, 0x02f9, 0x022f, 0x012e,
+ 0x0161, 0x0296, 0x048e, 0x05a0, 0x03dc, 0x010d,
+ 0xfedc, 0xfe08, 0xff83, 0xffef, 0xfda1, 0xfc79,
+ 0xfc59, 0xfb29, 0xfa6d, 0xfabe, 0xfbd9, 0xfc70,
+ 0xfafa, 0xfab3, 0xfcb6, 0xfd78, 0xfd84, 0xfe32,
+ 0xff81, 0x0280, 0x03bc, 0x012b, 0xff32, 0xfe9f,
+ 0xff08, 0x0130, 0x0156, 0xff95, 0xff91, 0xffa9,
+ 0x006d, 0x02c6, 0x026b, 0xfffb, 0xfe68, 0xfda7,
+ 0xfef7, 0xff44, 0xfbe8, 0xfae6, 0xfcc5, 0xfc61,
+ 0xfb14, 0xfa3a, 0xf98d, 0xf9a2, 0xf8e5, 0xf9f7,
+ 0xfee2, 0x00c8, 0xfe2b, 0xfcdb, 0xfd88, 0xfead,
+ 0xfed4, 0xfd71, 0xfd20, 0xfc6d, 0xfa29, 0xfad7,
+ 0xfcc0, 0xfb3d, 0xf8c6, 0xf7f2, 0xf959, 0xfba2,
+ 0xfb56, 0xfadf, 0xfcb1, 0xfd8d, 0xfe2d, 0xffad,
+ 0xffcc, 0x003e, 0x01f9, 0x03ed, 0x066e, 0x0660,
+ 0x03e8, 0x041e, 0x0548, 0x0518, 0x0584, 0x053d,
+ 0x0440, 0x0452, 0x04e1, 0x0768, 0x0ab2, 0x0a81,
+ 0x089a, 0x0749, 0x0688, 0x07a1, 0x083a, 0x0652,
+ 0x0484, 0x0311, 0x01fe, 0x0245, 0x0234, 0x0314,
+ 0x066e, 0x0891, 0x08ef, 0x0a10, 0x0a9d, 0x096e,
+ 0x088e, 0x096c, 0x09a4, 0x0655, 0x0244, 0x00b2,
+ 0xffad, 0xfd9f, 0xfae4, 0xf864, 0xf759, 0xf5bd,
+ 0xf358, 0xf487, 0xf7de, 0xf8c8, 0xf890, 0xf8ed,
+ 0xf973, 0xf9ca, 0xf962, 0xf9e2, 0xfbf9, 0xfd3f,
+ 0xfda9, 0xfd64, 0xfc05, 0xfc0b, 0xfd38, 0xfd79,
+ 0xfe4b, 0xff5f, 0xffad, 0x002f, 0xfff2, 0x0032,
+ 0x0295, 0x0321, 0x0177, 0x00f3, 0x00af, 0x00e1,
+ 0x01c7, 0x00ee, 0xffb6, 0xff05, 0xfd3b, 0xfbe9,
+ 0xfba6, 0xfc4a, 0xfeaf, 0x0003, 0x0051, 0x0257,
+ 0x0399, 0x0474, 0x066c, 0x0595, 0x03b0, 0x03b7,
+ 0x0269, 0x021a, 0x0458, 0x03b9, 0x0233, 0x0313,
+ 0x029f, 0x00fb, 0x0020, 0xff52, 0xff87, 0x0008,
+ 0xff12, 0xfd91, 0xfc22, 0xfbcf, 0xfce1, 0xfce3,
+ 0xfc3b, 0xfc91, 0xfc50, 0xfad4, 0xf965, 0xf935,
+ 0xfad6, 0xfc66, 0xfc19, 0xfb55, 0xfbb6, 0xfc8b,
+ 0xfc8f, 0xfcbd, 0xfe1d, 0xfebf, 0xfe40, 0xfe9b,
+ 0xff43, 0xff78, 0xfffa, 0x007b, 0x0107, 0x01a2,
+ 0x0194, 0x01c1, 0x033f, 0x05e2, 0x08b8, 0x0a2f,
+ 0x0a5e, 0x0a51, 0x0a4e, 0x0bc7, 0x0e69, 0x0eed,
+ 0x0d76, 0x0c99, 0x0c57, 0x0bd8, 0x0b01, 0x09af,
+ 0x07d6, 0x05f8, 0x04c4, 0x0440, 0x042e, 0x0390,
+ 0x01f8, 0x021b, 0x0395, 0x0245, 0x00b6, 0x01c1,
+ 0x0197, 0x0157, 0x0418, 0x05de, 0x0506, 0x03c2,
+ 0x02ba, 0x0311, 0x03e8, 0x03b1, 0x0381, 0x02b5,
+ 0x01d6, 0x02d3, 0x0317, 0x02c1, 0x046b, 0x04dd,
+ 0x0430, 0x06a2, 0x08ba, 0x0743, 0x066c, 0x06c8,
+ 0x04db, 0x0268, 0x0204, 0x00d9, 0xfe88, 0xfedf,
+ 0x003a, 0xff8a, 0xfeec, 0xfe6b, 0xfc4b, 0xfabf,
+ 0xfb4a, 0xfc94, 0xfcc5, 0xfb9d, 0xfb7e, 0xfc43,
+ 0xfc19, 0xfc95, 0xfceb, 0xfae4, 0xf960, 0xf9c2,
+ 0xf9a8, 0xf877, 0xf708, 0xf645, 0xf542, 0xf33e,
+ 0xf30c, 0xf3a4, 0xf1d3, 0xf102, 0xf20d, 0xf178,
+ 0xf11a, 0xf1c0, 0xf0f6, 0xf048, 0xf18c, 0xf3fb,
+ 0xf610, 0xf680, 0xf6be, 0xf82c, 0xf9dc, 0xfb69,
+ 0xfbf0, 0xfbe4, 0xfdb1, 0x0021, 0x0185, 0x029d,
+ 0x02fb, 0x02fa, 0x02cd, 0x017d, 0x010b, 0x0197,
+ 0x00fb, 0x0181, 0x0391, 0x041f, 0x0466, 0x05f7,
+ 0x077c, 0x0809, 0x07bb, 0x07fd, 0x089c, 0x081d,
+ 0x0847, 0x092f, 0x08b8, 0x08c6, 0x0991, 0x08bd,
+ 0x07e1, 0x07c4, 0x071d, 0x074a, 0x0858, 0x0863,
+ 0x07b4, 0x06fa, 0x0608, 0x059c, 0x06bf, 0x08a0,
+ 0x0975, 0x0942, 0x088c, 0x07ac, 0x0823, 0x092c,
+ 0x08ed, 0x08b9, 0x08a0, 0x077e, 0x06a5, 0x05ee,
+ 0x0549, 0x068d, 0x07fd, 0x0788, 0x063a, 0x0471,
+ 0x0370, 0x0390, 0x0280, 0x01e9, 0x0321, 0x0263,
+ 0x0045, 0xffe3, 0xff94, 0xff1e, 0xffca, 0x000b,
+ 0x002b, 0x0145, 0x019a, 0x0122, 0x0152, 0x0191,
+ 0x01cc, 0x0211, 0x0102, 0xff87, 0xff50, 0xff5f,
+ 0xff5f, 0xff93, 0xfebe, 0xfd9e, 0xfd94, 0xfdab,
+ 0xfddc, 0xfe43, 0xfe0f, 0xfe23, 0xfdf5, 0xfc43,
+ 0xfbbc, 0xfd52, 0xfe09, 0xfd82, 0xfce5, 0xfbee,
+ 0xfb74, 0xfcf7, 0xff29, 0xfee1, 0xfd34, 0xfd46,
+ 0xfcc9, 0xfaf3, 0xfbaf, 0xfd09, 0xfcad, 0xfe03,
+ 0xff99, 0xff0f, 0xff25, 0xff1c, 0xfe58, 0xff4c,
+ 0xfff4, 0xfefd, 0xfe56, 0xfddf, 0xfe33, 0xff47,
+ 0xffe0, 0x0162, 0x0238, 0x00e9, 0x0135, 0x017a,
+ 0xff5e, 0xff7c, 0x0060, 0xfed1, 0xff5a, 0x00ff,
+ 0xffaf, 0xff14, 0xffff, 0xff67, 0xff3a, 0x0081,
+ 0x014e, 0x022d, 0x03a5, 0x0432, 0x0422, 0x0531,
+ 0x05e5, 0x0445, 0x032f, 0x048e, 0x05bc, 0x05a6,
+ 0x0461, 0x023c, 0x0218, 0x0397, 0x037d, 0x02f1,
+ 0x0300, 0x026d, 0x0238, 0x02a2, 0x02e0, 0x03b3,
+ 0x044e, 0x0386, 0x02a6, 0x02f2, 0x0429, 0x04e1,
+ 0x0484, 0x03fa, 0x02f5, 0x0168, 0x005f, 0xff45,
+ 0xfe33, 0xfe43, 0xff18, 0x0061, 0x00dc, 0xffce,
+ 0xffb6, 0x001d, 0xff36, 0xff46, 0x0007, 0xffaa,
+ 0xff71, 0xfed5, 0xfe6f, 0xfff2, 0x002f, 0xff24,
+ 0xff93, 0xfeef, 0xfe07, 0x0019, 0x01a1, 0x00f5,
+ 0x010a, 0x021d, 0x02c9, 0x0213, 0x0149, 0x029d,
+ 0x0433, 0x04ed, 0x05d0, 0x0567, 0x0446, 0x0433,
+ 0x040b, 0x0411, 0x045d, 0x03d4, 0x0311, 0x0170,
+ 0xfff2, 0x00b7, 0x0058, 0xfe6d, 0xfeb1, 0xfeb0,
+ 0xfd8e, 0xfe04, 0xfde5, 0xfcd1, 0xfcc0, 0xfc5a,
+ 0xfbf7, 0xfc2e, 0xfc1e, 0xfcfe, 0xfe6a, 0xff89,
+ 0x0101, 0x00eb, 0xffa3, 0xffbc, 0xffde, 0x000a,
+ 0x0124, 0x0134, 0x00cb, 0x0084, 0xff46, 0xfeb2,
+ 0xfedc, 0xfe96, 0xfec8, 0xfe58, 0xfdb2, 0xff13,
+ 0xff94, 0xfe25, 0xfe48, 0xff17, 0xfe54, 0xfd28,
+ 0xfcaf, 0xfd0e, 0xfd60, 0xfd62, 0xfdfb, 0xfdfd,
+ 0xfd88, 0xfeb0, 0xff18, 0xfd94, 0xfe65, 0x010e,
+ 0x016f, 0x0142, 0x02a1, 0x034c, 0x03b3, 0x05e9,
+ 0x0799, 0x0753, 0x07b5, 0x08d9, 0x08e9, 0x08c3,
+ 0x090b, 0x089a, 0x0732, 0x063b, 0x06f3, 0x0816,
+ 0x0816, 0x07db, 0x077d, 0x06a7, 0x06b8, 0x06bb,
+ 0x0566, 0x04da, 0x0562, 0x0556, 0x0534, 0x04cd,
+ 0x0383, 0x02b8, 0x0297, 0x0220, 0x01d0, 0x01a7,
+ 0x00de, 0x004b, 0x00d3, 0x0186, 0x019f, 0x01bc,
+ 0x025b, 0x033e, 0x041d, 0x051d, 0x0601, 0x05ac,
+ 0x04ec, 0x05e4, 0x0794, 0x08b0, 0x09c4, 0x0942,
+ 0x0757, 0x06c0, 0x05ff, 0x03fc, 0x0290, 0x006f,
+ 0xfe18, 0xfdc9, 0xfc95, 0xfa72, 0xfab8, 0xfa77,
+ 0xf836, 0xf7a7, 0xf804, 0xf71a, 0xf649, 0xf63d,
+ 0xf6fc, 0xf8ce, 0xfa83, 0xfb2a, 0xfb30, 0xfabb,
+ 0xf9ec, 0xf9a5, 0xf9c9, 0xf90f, 0xf7e2, 0xf70a,
+ 0xf5a8, 0xf454, 0xf3e7, 0xf2bf, 0xf0b5, 0xefa3,
+ 0xef98, 0xefab, 0xefe4, 0xf0e0, 0xf1e8, 0xf1ae,
+ 0xf171, 0xf1eb, 0xf1ec, 0xf2c7, 0xf4e4, 0xf604,
+ 0xf6a2, 0xf73d, 0xf746, 0xf844, 0xf9b1, 0xfa57,
+ 0xfb9c, 0xfccb, 0xfd6b, 0xff14, 0x006b, 0x00e2,
+ 0x01fd, 0x02af, 0x02ae, 0x0320, 0x03a9, 0x048b,
+ 0x05f6, 0x06da, 0x06b2, 0x0640, 0x0705, 0x07c9,
+ 0x0685, 0x0619, 0x07a6, 0x07fa, 0x07bf, 0x082b,
+ 0x0810, 0x0873, 0x0923, 0x0906, 0x098e, 0x09ce,
+ 0x08a3, 0x0891, 0x09fe, 0x0af5, 0x0b00, 0x0ac3,
+ 0x0ae6, 0x0ab9, 0x0a24, 0x0a6b, 0x0ad3, 0x0b2e,
+ 0x0c7e, 0x0d0c, 0x0c6a, 0x0bf0, 0x0a6e, 0x082e,
+ 0x0729, 0x06c3, 0x05f4, 0x048a, 0x0347, 0x036d,
+ 0x03b6, 0x034f, 0x0362, 0x02fe, 0x020d, 0x026a,
+ 0x031b, 0x02b0, 0x01c6, 0x009e, 0xff4f, 0xfe4d,
+ 0xfe27, 0xfec9, 0xfede, 0xfe16, 0xfd08, 0xfbad,
+ 0xfadf, 0xfaef, 0xfada, 0xfada, 0xfae5, 0xfa96,
+ 0xfafb, 0xfbfd, 0xfcd7, 0xfddf, 0xfed1, 0xff88,
+ 0xfff2, 0xff42, 0xfe53, 0xfe1b, 0xfde1, 0xfdc0,
+ 0xfdd8, 0xfd9c, 0xfd21, 0xfc0c, 0xfadb, 0xfad1,
+ 0xfafa, 0xfada, 0xfb68, 0xfbb0, 0xfb15, 0xfab9,
+ 0xfaca, 0xfaf7, 0xfad8, 0xfa15, 0xf9e3, 0xfa78,
+ 0xfa40, 0xfa1a, 0xfb9e, 0xfd07, 0xfd24, 0xfdd1,
+ 0xff26, 0xff79, 0xff8f, 0xfffc, 0xff5d, 0xfe7c,
+ 0xfe9b, 0xfe1d, 0xfcb9, 0xfc25, 0xfbfb, 0xfbbc,
+ 0xfc5f, 0xfce6, 0xfbe8, 0xfb45, 0xfc69, 0xfd3b,
+ 0xfcdf, 0xfd36, 0xfe56, 0xff44, 0x00b9, 0x02be,
+ 0x0452, 0x0596, 0x0671, 0x0664, 0x068a, 0x079f,
+ 0x083d, 0x07eb, 0x07b8, 0x074a, 0x0657, 0x0622,
+ 0x063e, 0x05a4, 0x05af, 0x06c7, 0x07d1, 0x08ce,
+ 0x0956, 0x08d6, 0x07f4, 0x071f, 0x06b1, 0x0674,
+ 0x0594, 0x052f, 0x05b2, 0x058e, 0x0593, 0x0697,
+ 0x0716, 0x06ee, 0x064a, 0x0500, 0x0439, 0x0368,
+ 0x01eb, 0x0154, 0x0118, 0x0054, 0x0039, 0xffeb,
+ 0xfea1, 0xfe49, 0xff0b, 0xffbe, 0x004b, 0x0051,
+ 0xffd8, 0xff7a, 0xfeef, 0xfe56, 0xfe74, 0xff3f,
+ 0x0044, 0x0158, 0x0235, 0x025b, 0x01b4, 0x00ff,
+ 0x00b6, 0x00c6, 0x0146, 0x01de, 0x01bd, 0x0122,
+ 0x0113, 0x01a6, 0x021c, 0x0235, 0x023e, 0x0267,
+ 0x0285, 0x0263, 0x026a, 0x02a3, 0x0240, 0x01bb,
+ 0x01ba, 0x00ad, 0xfe91, 0xfdd2, 0xfe44, 0xfe8a,
+ 0xff1b, 0x0009, 0x0129, 0x02d9, 0x042b, 0x0443,
+ 0x03de, 0x038b, 0x0328, 0x02b9, 0x024c, 0x01b5,
+ 0x00ef, 0x005b, 0x0009, 0xfff7, 0x0052, 0x005b,
+ 0xffd6, 0xffab, 0xff09, 0xfd36, 0xfbc9, 0xfadc,
+ 0xf98d, 0xf919, 0xf9f7, 0xfb15, 0xfbdc, 0xfbdc,
+ 0xfb59, 0xfb06, 0xfaca, 0xfae2, 0xfb39, 0xfafa,
+ 0xfaac, 0xfa7f, 0xf995, 0xf92c, 0xfa41, 0xfb29,
+ 0xfb9f, 0xfcf0, 0xfe78, 0xff22, 0xff53, 0xff9b,
+ 0xfff2, 0x0060, 0x010e, 0x019f, 0x020c, 0x0368,
+ 0x057d, 0x06c7, 0x07c4, 0x095b, 0x0ae1, 0x0c79,
+ 0x0df1, 0x0de8, 0x0ceb, 0x0bd5, 0x0a4b, 0x0940,
+ 0x08ee, 0x082c, 0x079d, 0x0777, 0x06ae, 0x05e2,
+ 0x05b4, 0x05bd, 0x05d1, 0x0585, 0x050c, 0x04bd,
+ 0x03bd, 0x025c, 0x01de, 0x0247, 0x0314, 0x0386,
+ 0x0382, 0x03b9, 0x039f, 0x034c, 0x03d8, 0x0475,
+ 0x050c, 0x0657, 0x06d6, 0x0668, 0x068d, 0x0725,
+ 0x082a, 0x0958, 0x09d4, 0x0a3a, 0x0a6b, 0x09ec,
+ 0x09a4, 0x08fd, 0x07a2, 0x06d4, 0x0589, 0x0316,
+ 0x0164, 0x00c2, 0x006e, 0x0031, 0xff9d, 0xff56,
+ 0x0031, 0x018a, 0x029b, 0x0311, 0x02d2, 0x01cb,
+ 0x0012, 0xfe62, 0xfcd5, 0xfb81, 0xfb41, 0xfb09,
+ 0xf9dc, 0xf953, 0xf958, 0xf894, 0xf78d, 0xf65c,
+ 0xf4ca, 0xf326, 0xf117, 0xef41, 0xee73, 0xee40,
+ 0xeede, 0xefc9, 0xefe2, 0xeffd, 0xf05c, 0xf070,
+ 0xf128, 0xf28f, 0xf3ac, 0xf47f, 0xf4e4, 0xf4b5,
+ 0xf460, 0xf4cf, 0xf6e0, 0xf957, 0xfad1, 0xfc1f,
+ 0xfd19, 0xfd4c, 0xfde1, 0xfe8b, 0xfeb0, 0xff55,
+ 0x001c, 0x003a, 0x004b, 0x00a6, 0x019b, 0x0326,
+ 0x042e, 0x04fc, 0x067f, 0x07ce, 0x0873, 0x092a,
+ 0x0982, 0x08f6, 0x081c, 0x070f, 0x0626, 0x0664,
+ 0x06f1, 0x0684, 0x061e, 0x068f, 0x0734, 0x07ee,
+ 0x08cc, 0x0977, 0x0953, 0x0843, 0x07ed, 0x08c6,
+ 0x0909, 0x08f9, 0x09bd, 0x0a9d, 0x0b2c, 0x0b11,
+ 0x0a38, 0x0a04, 0x0a5d, 0x0a73, 0x0aa9, 0x0a36,
+ 0x08e7, 0x07ae, 0x05fb, 0x04c7, 0x0585, 0x062a,
+ 0x05f7, 0x0609, 0x05aa, 0x0533, 0x0594, 0x05d8,
+ 0x059e, 0x04e1, 0x039e, 0x02b5, 0x01d4, 0x00b7,
+ 0x0074, 0x0097, 0x007f, 0x0100, 0x01c9, 0x0205,
+ 0x022e, 0x02b4, 0x02e7, 0x01ce, 0xffd2, 0xfe38,
+ 0xfd50, 0xfcfc, 0xfd59, 0xfe34, 0xfefc, 0xfed8,
+ 0xfe4c, 0xfecf, 0xff93, 0xff30, 0xfe4c, 0xfd66,
+ 0xfc89, 0xfc19, 0xfb9f, 0xfac5, 0xfa38, 0xfa70,
+ 0xfb26, 0xfb8d, 0xfb83, 0xfbbc, 0xfc2f, 0xfc7f,
+ 0xfc90, 0xfbf7, 0xfad0, 0xf9c1, 0xf93d, 0xf97c,
+ 0xfa40, 0xfb78, 0xfcd3, 0xfd13, 0xfc92, 0xfc76,
+ 0xfc33, 0xfbec, 0xfbf0, 0xfb50, 0xfab4, 0xfa70,
+ 0xf98f, 0xf941, 0xf9bf, 0xf984, 0xf983, 0xfa11,
+ 0xfa11, 0xfa7b, 0xfb6e, 0xfbed, 0xfc71, 0xfc9d,
+ 0xfc02, 0xfb9a, 0xfb4a, 0xfaf7, 0xfb94, 0xfce9,
+ 0xfe1b, 0xfecb, 0xff3b, 0x0037, 0x0178, 0x01ef,
+ 0x0186, 0x00ba, 0x0044, 0x0059, 0x0042, 0x0027,
+ 0x00a1, 0x014a, 0x01db, 0x0253, 0x02c5, 0x039b,
+ 0x04ab, 0x05dd, 0x0750, 0x07fc, 0x07d6, 0x0833,
+ 0x0890, 0x0831, 0x0859, 0x0967, 0x0a3e, 0x0a93,
+ 0x0aa5, 0x0a5f, 0x0998, 0x085e, 0x0702, 0x05cb,
+ 0x048d, 0x031d, 0x01f8, 0x018e, 0x017a, 0x015e,
+ 0x012b, 0x00dc, 0x0124, 0x0251, 0x032f, 0x034f,
+ 0x0336, 0x026c, 0x00f8, 0xffdc, 0xfec5, 0xfd65,
+ 0xfd08, 0xfe22, 0xff43, 0xff58, 0xff25, 0xffc9,
+ 0x0082, 0x0022, 0xff82, 0xff49, 0xfec6, 0xfe76,
+ 0xfeca, 0xfecd, 0xff04, 0x0022, 0x00b5, 0x009a,
+ 0x0109, 0x017e, 0x01a8, 0x01da, 0x0140, 0xfffa,
+ 0xff2c, 0xfecc, 0xfe94, 0xfe89, 0xfea2, 0xff1e,
+ 0xff9e, 0xffb3, 0xffc2, 0xff96, 0xfed7, 0xfe18,
+ 0xfde8, 0xfe6e, 0xfea5, 0xfdb3, 0xfd2a, 0xfd88,
+ 0xfd5e, 0xfd56, 0xfdca, 0xfd86, 0xfd89, 0xfe49,
+ 0xfe27, 0xfd81, 0xfd2d, 0xfcda, 0xfcd1, 0xfcb7,
+ 0xfbfb, 0xfb66, 0xfb2d, 0xfb02, 0xfae8, 0xfa99,
+ 0xfaa0, 0xfb5d, 0xfbb0, 0xfb48, 0xfab6, 0xf9eb,
+ 0xf8e4, 0xf7dc, 0xf766, 0xf7da, 0xf857, 0xf8c4,
+ 0xf9d8, 0xfada, 0xfb8a, 0xfcb2, 0xfdcb, 0xfe5b,
+ 0xfee7, 0xff77, 0x0043, 0x01b1, 0x0302, 0x03a5,
+ 0x0433, 0x052b, 0x0678, 0x080e, 0x09ac, 0x0aba,
+ 0x0b37, 0x0b59, 0x0ad8, 0x09fe, 0x0991, 0x095d,
+ 0x08fa, 0x0894, 0x0844, 0x07c5, 0x06cc, 0x05e7,
+ 0x05cf, 0x05d1, 0x0561, 0x0511, 0x04c6, 0x044d,
+ 0x03e3, 0x0313, 0x0211, 0x01c2, 0x01d5, 0x0212,
+ 0x02bb, 0x035c, 0x0402, 0x050c, 0x05c2, 0x05de,
+ 0x05e0, 0x05a5, 0x0550, 0x05ba, 0x06ca, 0x07be,
+ 0x08c1, 0x09e6, 0x0a6f, 0x0a53, 0x0a00, 0x0961,
+ 0x088a, 0x076b, 0x05a9, 0x03f8, 0x034c, 0x0369,
+ 0x0363, 0x0285, 0x0174, 0x012e, 0x010e, 0x00a3,
+ 0x009e, 0x009d, 0x001f, 0xff98, 0xff0f, 0xfe9c,
+ 0xfea0, 0xfeb4, 0xfe7c, 0xfe02, 0xfd23, 0xfc15,
+ 0xfb47, 0xfa8e, 0xf98b, 0xf8a9, 0xf877, 0xf858,
+ 0xf7b8, 0xf70f, 0xf638, 0xf4e8, 0xf3cf, 0xf302,
+ 0xf24b, 0xf217, 0xf223, 0xf227, 0xf275, 0xf2c9,
+ 0xf2f9, 0xf33d, 0xf349, 0xf30a, 0xf31b, 0xf3f6,
+ 0xf532, 0xf5f6, 0xf697, 0xf7a2, 0xf886, 0xf980,
+ 0xfadc, 0xfb9f, 0xfc0b, 0xfcc3, 0xfcf2, 0xfd23,
+ 0xfe88, 0x0029, 0x0115, 0x01a7, 0x0249, 0x0339,
+ 0x044b, 0x0554, 0x0664, 0x071c, 0x076b, 0x076b,
+ 0x06b7, 0x0609, 0x0644, 0x0698, 0x067a, 0x0612,
+ 0x0551, 0x0507, 0x05a0, 0x0605, 0x061c, 0x0672,
+ 0x06b5, 0x0739, 0x0849, 0x0902, 0x0944, 0x0972,
+ 0x0944, 0x0903, 0x090a, 0x08db, 0x089a, 0x08d9,
+ 0x0936, 0x0937, 0x08d8, 0x07f8, 0x06ba, 0x05bd,
+ 0x056a, 0x05ac, 0x063c, 0x06ad, 0x069f, 0x0649,
+ 0x05c4, 0x04db, 0x044a, 0x0477, 0x041c, 0x0306,
+ 0x0253, 0x0226, 0x02ad, 0x03d4, 0x0419, 0x0378,
+ 0x0311, 0x028b, 0x022b, 0x027d, 0x0238, 0x013b,
+ 0x00da, 0x00c0, 0x006d, 0x008d, 0x0143, 0x0204,
+ 0x0232, 0x01ab, 0x0112, 0x00ab, 0x007c, 0x00b1,
+ 0x00d3, 0x00cd, 0x014c, 0x01d5, 0x01bd, 0x01a7,
+ 0x019b, 0x00e7, 0x0009, 0xffb6, 0xffa6, 0xff98,
+ 0xffa1, 0xffca, 0x0047, 0x0113, 0x0147, 0x003b,
+ 0xfef2, 0xfe99, 0xfebe, 0xfecf, 0xff2b, 0xff8c,
+ 0xff66, 0xff1a, 0xfef5, 0xfef9, 0xff7d, 0x0041,
+ 0x007f, 0x002c, 0xffbe, 0xff82, 0xff9f, 0x0000,
+ 0x0025, 0xff88, 0xfe8c, 0xfdf5, 0xfd87, 0xfd0d,
+ 0xfcf1, 0xfcca, 0xfc0b, 0xfb65, 0xfb84, 0xfc3c,
+ 0xfd03, 0xfd45, 0xfcfd, 0xfc8d, 0xfc1e, 0xfbd5,
+ 0xfc00, 0xfc99, 0xfd08, 0xfd1b, 0xfd73, 0xfe06,
+ 0xfe39, 0xfe2e, 0xfdde, 0xfd48, 0xfd5f, 0xfdfe,
+ 0xfe12, 0xfe0b, 0xfe8e, 0xff3a, 0xfffc, 0x00e6,
+ 0x019e, 0x020d, 0x029d, 0x0384, 0x045e, 0x0532,
+ 0x0683, 0x0796, 0x0750, 0x062f, 0x0541, 0x04e6,
+ 0x04d4, 0x0475, 0x03d6, 0x0361, 0x031b, 0x0320,
+ 0x0371, 0x039b, 0x0375, 0x0318, 0x0284, 0x01e3,
+ 0x0187, 0x0181, 0x0186, 0x014f, 0x00ca, 0x0050,
+ 0x00a7, 0x018b, 0x01cc, 0x01a1, 0x017c, 0x00b9,
+ 0xffd6, 0xffd8, 0x007e, 0x015f, 0x0245, 0x031f,
+ 0x0433, 0x0505, 0x0523, 0x04e2, 0x0465, 0x041d,
+ 0x043d, 0x0401, 0x03a9, 0x03d3, 0x03fd, 0x042e,
+ 0x049c, 0x04bb, 0x048c, 0x0468, 0x0452, 0x0406,
+ 0x035c, 0x032c, 0x03d0, 0x0411, 0x0388, 0x02b1,
+ 0x01d1, 0x018e, 0x01cc, 0x019f, 0x012b, 0x00da,
+ 0x00a2, 0x0075, 0x0025, 0xfff7, 0xfff9, 0xff74,
+ 0xfe89, 0xfdc4, 0xfd20, 0xfcde, 0xfcd0, 0xfc44,
+ 0xfb67, 0xfaac, 0xfa55, 0xfa7b, 0xfa87, 0xfa1a,
+ 0xf96c, 0xf879, 0xf787, 0xf706, 0xf6c1, 0xf67d,
+ 0xf66b, 0xf6ad, 0xf745, 0xf7f6, 0xf813, 0xf758,
+ 0xf6a6, 0xf67d, 0xf628, 0xf591, 0xf52a, 0xf4f7,
+ 0xf568, 0xf679, 0xf74b, 0xf82c, 0xf9a3, 0xfb2a,
+ 0xfc80, 0xfda3, 0xfed7, 0x00c6, 0x0312, 0x04e3,
+ 0x05e7, 0x05fe, 0x05d9, 0x060b, 0x062c, 0x0682,
+ 0x0767, 0x085f, 0x095c, 0x0a31, 0x0a7e, 0x0ac4,
+ 0x0b1b, 0x0adc, 0x0a00, 0x0937, 0x090d, 0x0910,
+ 0x08c7, 0x08a0, 0x086c, 0x07d2, 0x0752, 0x069e,
+ 0x0569, 0x0474, 0x03c7, 0x031f, 0x02c8, 0x02d4,
+ 0x0357, 0x0409, 0x048e, 0x056f, 0x067d, 0x0704,
+ 0x0773, 0x07d9, 0x07d6, 0x07d6, 0x07e6, 0x07e2,
+ 0x080d, 0x0846, 0x089e, 0x0907, 0x08bd, 0x07ee,
+ 0x076b, 0x0708, 0x0667, 0x059a, 0x04d4, 0x0469,
+ 0x046f, 0x046c, 0x03f6, 0x0338, 0x0281, 0x01c9,
+ 0x011c, 0x00ae, 0x007f, 0x007b, 0x005e, 0xffe7,
+ 0xff56, 0xfef7, 0xfea8, 0xfdf3, 0xfc94, 0xfb14,
+ 0xf9e5, 0xf8d5, 0xf7ee, 0xf721, 0xf661, 0xf60d,
+ 0xf591, 0xf45f, 0xf338, 0xf218, 0xf08a, 0xef3b,
+ 0xee72, 0xee0a, 0xee27, 0xee4c, 0xee62, 0xeefc,
+ 0xefee, 0xf0de, 0xf1b3, 0xf27f, 0xf380, 0xf428,
+ 0xf3f5, 0xf3ac, 0xf3ab, 0xf3ca, 0xf45d, 0xf55a,
+ 0xf66b, 0xf764, 0xf80d, 0xf8b0, 0xf9b8, 0xfb10,
+ 0xfcad, 0xfe5b, 0xffdf, 0x017a, 0x02d8, 0x036e,
+ 0x03d4, 0x0492, 0x0558, 0x0606, 0x06a2, 0x0716,
+ 0x0785, 0x07c6, 0x0773, 0x06fa, 0x0715, 0x076a,
+ 0x0734, 0x0695, 0x0636, 0x065a, 0x06c4, 0x0762,
+ 0x0856, 0x0926, 0x092b, 0x08ac, 0x085b, 0x0874,
+ 0x087c, 0x07e0, 0x0727, 0x0716, 0x075b, 0x079f,
+ 0x07ec, 0x0809, 0x0811, 0x0822, 0x07fe, 0x07e8,
+ 0x07eb, 0x0795, 0x0726, 0x06db, 0x065b, 0x05a9,
+ 0x0500, 0x04b8, 0x04ea, 0x04ad, 0x03b0, 0x02f8,
+ 0x02ba, 0x0276, 0x0251, 0x024a, 0x021e, 0x01e8,
+ 0x0170, 0x0092, 0x0005, 0xffe8, 0xff9f, 0xff7f,
+ 0x0001, 0x0098, 0x00d3, 0x00b5, 0x0040, 0x0004,
+ 0x0064, 0x0093, 0xffde, 0xfebd, 0xfddb, 0xfd63,
+ 0xfd7f, 0xfe42, 0xff35, 0xffbe, 0xff8c, 0xfe83,
+ 0xfd30, 0xfc71, 0xfc26, 0xfbc1, 0xfb4a, 0xfacb,
+ 0xfa65, 0xfa7e, 0xfb0e, 0xfbed, 0xfd12, 0xfe1f,
+ 0xfeed, 0xffa1, 0xfff1, 0xffbb, 0xff78, 0xff4d,
+ 0xfeed, 0xfe5f, 0xfdfb, 0xfdf6, 0xfe1e, 0xfdf2,
+ 0xfd74, 0xfd53, 0xfdcd, 0xfea7, 0xff94, 0xffea,
+ 0xff9c, 0xff38, 0xfe73, 0xfd58, 0xfcc7, 0xfc74,
+ 0xfbf4, 0xfbe1, 0xfc68, 0xfd7d, 0xfeba, 0xff18,
+ 0xfefe, 0xff84, 0x004f, 0x00e9, 0x011a, 0x0081,
+ 0xff8f, 0xfef2, 0xff03, 0xffb4, 0x001a, 0xffe9,
+ 0xff69, 0xfe27, 0xfcc6, 0xfc6a, 0xfc69, 0xfc75,
+ 0xfd01, 0xfd89, 0xfe0a, 0xfee4, 0xffc8, 0x00f1,
+ 0x025b, 0x0363, 0x0449, 0x0511, 0x0525, 0x04e2,
+ 0x0497, 0x0406, 0x037b, 0x0346, 0x0351, 0x0387,
+ 0x03a2, 0x034e, 0x0284, 0x01d6, 0x021d, 0x02fd,
+ 0x035e, 0x0352, 0x0328, 0x0286, 0x01c4, 0x0158,
+ 0x00d0, 0x0032, 0xffec, 0xffd6, 0xffe6, 0x0042,
+ 0x00c3, 0x0148, 0x01a1, 0x01a6, 0x0191, 0x0159,
+ 0x00c1, 0xfff9, 0xff50, 0xff33, 0xffbe, 0x008e,
+ 0x0197, 0x0278, 0x0262, 0x01cb, 0x016d, 0x013d,
+ 0x019b, 0x023a, 0x0224, 0x01d3, 0x01cd, 0x01d1,
+ 0x026d, 0x03bd, 0x04c4, 0x0556, 0x05d5, 0x062b,
+ 0x0624, 0x05b0, 0x04e9, 0x03eb, 0x030f, 0x02fa,
+ 0x0375, 0x03cf, 0x03f3, 0x03a9, 0x0309, 0x030a,
+ 0x03b2, 0x0434, 0x0480, 0x046f, 0x03a0, 0x02af,
+ 0x021a, 0x0149, 0x001f, 0xff61, 0xff16, 0xfeca,
+ 0xfe93, 0xfe8e, 0xfeab, 0xff04, 0xff4b, 0xff08,
+ 0xfe58, 0xfda6, 0xfd02, 0xfc3a, 0xfb8f, 0xfb5e,
+ 0xfb3b, 0xfaec, 0xfab4, 0xf9ef, 0xf840, 0xf693,
+ 0xf54d, 0xf44f, 0xf3fc, 0xf466, 0xf501, 0xf555,
+ 0xf55d, 0xf595, 0xf673, 0xf801, 0xf9a6, 0xfad0,
+ 0xfc09, 0xfd95, 0xfea4, 0xff25, 0xff7a, 0xffc1,
+ 0x0091, 0x01da, 0x02fb, 0x0420, 0x04d9, 0x04a7,
+ 0x04c1, 0x05c7, 0x06f4, 0x07e9, 0x0871, 0x085b,
+ 0x0807, 0x07f3, 0x0835, 0x0840, 0x07c9, 0x075d,
+ 0x0721, 0x06c3, 0x064a, 0x05ce, 0x05a6, 0x05ed,
+ 0x05e7, 0x0516, 0x03a6, 0x0233, 0x0188, 0x01af,
+ 0x0262, 0x037d, 0x0483, 0x055c, 0x061f, 0x0648,
+ 0x05d8, 0x0530, 0x0454, 0x03a2, 0x034a, 0x0351,
+ 0x0419, 0x0508, 0x0562, 0x05c7, 0x0687, 0x074f,
+ 0x0816, 0x08cc, 0x0994, 0x0a33, 0x09cf, 0x0887,
+ 0x071f, 0x0608, 0x0597, 0x0582, 0x0564, 0x0566,
+ 0x0557, 0x0526, 0x053f, 0x05a1, 0x065b, 0x0753,
+ 0x0795, 0x06cc, 0x059b, 0x047c, 0x03be, 0x0333,
+ 0x0249, 0x00f7, 0xff73, 0xfdc6, 0xfc25, 0xfaf7,
+ 0xfa6d, 0xfa36, 0xf99e, 0xf838, 0xf635, 0xf440,
+ 0xf2f7, 0xf27e, 0xf2a9, 0xf33b, 0xf3c8, 0xf3d1,
+ 0xf31c, 0xf211, 0xf13a, 0xf06f, 0xef77, 0xeea5,
+ 0xee3e, 0xee4d, 0xeee7, 0xf024, 0xf1bd, 0xf31d,
+ 0xf435, 0xf54c, 0xf668, 0xf7d0, 0xf98a, 0xfabb,
+ 0xfb1b, 0xfb19, 0xfb0b, 0xfb81, 0xfcab, 0xfde2,
+ 0xfeb9, 0xff42, 0xffd8, 0x00c5, 0x01af, 0x024e,
+ 0x02e5, 0x0372, 0x03e2, 0x042a, 0x0414, 0x03e9,
+ 0x0429, 0x04b6, 0x0542, 0x05a0, 0x05af, 0x057f,
+ 0x0555, 0x05b6, 0x06d6, 0x0817, 0x08df, 0x08f6,
+ 0x0860, 0x07b4, 0x079c, 0x080e, 0x08c7, 0x09a4,
+ 0x0a39, 0x0a1d, 0x0983, 0x08c9, 0x07dc, 0x06bd,
+ 0x05a6, 0x0480, 0x0363, 0x02d2, 0x02f7, 0x03b7,
+ 0x04c0, 0x0583, 0x0608, 0x06c0, 0x07a0, 0x0872,
+ 0x08f2, 0x089e, 0x0764, 0x05d7, 0x0474, 0x0369,
+ 0x02de, 0x02b5, 0x026f, 0x020e, 0x022a, 0x02c7,
+ 0x0368, 0x03fa, 0x048e, 0x04df, 0x04a0, 0x0419,
+ 0x03d1, 0x03a6, 0x036d, 0x0356, 0x0312, 0x028d,
+ 0x0220, 0x0183, 0x00be, 0x0079, 0x0068, 0x0022,
+ 0xfff0, 0xffa3, 0xfef8, 0xfe3d, 0xfdf0, 0xfe7a,
+ 0xff83, 0x0011, 0xffcc, 0xfef2, 0xfdef, 0xfcf2,
+ 0xfbbf, 0xfa96, 0xf9d8, 0xf8df, 0xf78e, 0xf72b,
+ 0xf832, 0xf9ac, 0xfaaa, 0xfb10, 0xfb3d, 0xfb79,
+ 0xfbee, 0xfc7f, 0xfc9c, 0xfc10, 0xfb3c, 0xfa4b,
+ 0xf95c, 0xf8d1, 0xf8af, 0xf8a0, 0xf872, 0xf83f,
+ 0xf853, 0xf8cd, 0xf969, 0xfa07, 0xfada, 0xfbe0,
+ 0xfcce, 0xfd7d, 0xfdf5, 0xfe40, 0xfe79, 0xfe9e,
+ 0xfe8f, 0xfe2d, 0xfd72, 0xfcb3, 0xfc59, 0xfc39,
+ 0xfc16, 0xfc08, 0xfc1f, 0xfc70, 0xfce1, 0xfd3e,
+ 0xfe0f, 0xffc8, 0x01c9, 0x0367, 0x0475, 0x0503,
+ 0x053e, 0x0504, 0x045b, 0x03af, 0x02d1, 0x018f,
+ 0x008d, 0x0030, 0x00a8, 0x0207, 0x036d, 0x0454,
+ 0x0541, 0x061e, 0x0689, 0x06b9, 0x06a2, 0x0622,
+ 0x05a0, 0x0523, 0x0469, 0x03bc, 0x0363, 0x0356,
+ 0x03aa, 0x0419, 0x040a, 0x03b5, 0x0396, 0x0355,
+ 0x02f2, 0x0302, 0x0336, 0x032a, 0x0340, 0x033e,
+ 0x02bf, 0x023b, 0x01b3, 0x0101, 0x00c9, 0x00d3,
+ 0x0050, 0xffbf, 0xff9a, 0xff73, 0xff58, 0xff5c,
+ 0xff1c, 0xff10, 0xfff2, 0x0143, 0x0227, 0x027a,
+ 0x028e, 0x0299, 0x026e, 0x019f, 0x0005, 0xfe38,
+ 0xfcf0, 0xfc27, 0xfba0, 0xfbb6, 0xfc81, 0xfd88,
+ 0xfe89, 0xff6d, 0x0038, 0x00fb, 0x0150, 0x00d7,
+ 0x0013, 0xffaa, 0xff8f, 0xff61, 0xff08, 0xfe99,
+ 0xfe21, 0xfdfb, 0xfe74, 0xff07, 0xff3f, 0xff2a,
+ 0xfe9a, 0xfdd7, 0xfda4, 0xfde5, 0xfe4f, 0xfefc,
+ 0xff75, 0xff4f, 0xfed2, 0xfe31, 0xfd99, 0xfd30,
+ 0xfca7, 0xfbf6, 0xfb60, 0xfad8, 0xfa44, 0xf98f,
+ 0xf8a4, 0xf7c1, 0xf71f, 0xf711, 0xf7fb, 0xf958,
+ 0xfa4b, 0xfadd, 0xfb6a, 0xfc19, 0xfcef, 0xfd5f,
+ 0xfcfe, 0xfc66, 0xfc32, 0xfc67, 0xfd2a, 0xfe91,
+ 0x004c, 0x01f3, 0x034e, 0x04a1, 0x0647, 0x07e2,
+ 0x08cb, 0x08fd, 0x08ff, 0x0950, 0x09b8, 0x09af,
+ 0x094c, 0x08c1, 0x0840, 0x084a, 0x08a0, 0x08c0,
+ 0x08fc, 0x08f6, 0x0809, 0x06f6, 0x062b, 0x0584,
+ 0x059d, 0x061b, 0x05dc, 0x0516, 0x0455, 0x03df,
+ 0x0410, 0x046c, 0x048d, 0x04b7, 0x04a7, 0x045b,
+ 0x0450, 0x0435, 0x03c7, 0x035e, 0x030b, 0x0303,
+ 0x03c5, 0x0521, 0x0634, 0x0677, 0x0643, 0x05e5,
+ 0x0527, 0x0419, 0x02bc, 0x00e2, 0xff46, 0xfe7c,
+ 0xfe44, 0xfeac, 0xff85, 0x0030, 0x00d6, 0x0196,
+ 0x0213, 0x0247, 0x023b, 0x0212, 0x0222, 0x024d,
+ 0x027c, 0x0298, 0x0210, 0x0106, 0x0042, 0xffb7,
+ 0xff24, 0xfebd, 0xfe52, 0xfd97, 0xfca6, 0xfb96,
+ 0xfa98, 0xfa1a, 0xfa13, 0xf9ee, 0xf973, 0xf8a6,
+ 0xf78a, 0xf6af, 0xf67d, 0xf66f, 0xf630, 0xf5bf,
+ 0xf4e4, 0xf3fe, 0xf388, 0xf329, 0xf2cc, 0xf2bd,
+ 0xf2d8, 0xf31b, 0xf3b8, 0xf483, 0xf561, 0xf687,
+ 0xf7ee, 0xf926, 0xf9b6, 0xf9a0, 0xf963, 0xf974,
+ 0xf9e1, 0xfa69, 0xfb02, 0xfbfd, 0xfd66, 0xfedc,
+ 0x000b, 0x00e7, 0x0196, 0x0216, 0x0253, 0x02a9,
+ 0x035d, 0x0430, 0x04fb, 0x0572, 0x052c, 0x04b7,
+ 0x04d1, 0x0532, 0x0599, 0x0617, 0x0675, 0x06ef,
+ 0x07c0, 0x0838, 0x0855, 0x08d7, 0x0975, 0x09bc,
+ 0x09cb, 0x097c, 0x0915, 0x0941, 0x09ad, 0x09c2,
+ 0x0968, 0x08c9, 0x0865, 0x0832, 0x07a2, 0x070c,
+ 0x06ef, 0x071d, 0x0792, 0x07ed, 0x078c, 0x06dc,
+ 0x0687, 0x0683, 0x06ac, 0x06b7, 0x0625, 0x04e3,
+ 0x036f, 0x0242, 0x0175, 0x011e, 0x0155, 0x01c5,
+ 0x0214, 0x022f, 0x0223, 0x023f, 0x0264, 0x0227,
+ 0x01fb, 0x0237, 0x0285, 0x0311, 0x03c0, 0x03d1,
+ 0x035d, 0x02e4, 0x0293, 0x02b9, 0x0302, 0x02b5,
+ 0x020b, 0x019b, 0x016c, 0x0159, 0x0174, 0x01c0,
+ 0x01d3, 0x0165, 0x00c9, 0x0042, 0xffec, 0x000a,
+ 0x0060, 0x005a, 0xfff0, 0xff60, 0xfed0, 0xfe5f,
+ 0xfe2b, 0xfe1f, 0xfdfb, 0xfe10, 0xfeea, 0xffe8,
+ 0x0028, 0xfff2, 0xffad, 0xff89, 0xffdc, 0x0047,
+ 0xfff4, 0xfee4, 0xfd9a, 0xfc5d, 0xfb83, 0xfb4a,
+ 0xfb6d, 0xfb8d, 0xfb8e, 0xfb61, 0xfb23, 0xfb31,
+ 0xfb9f, 0xfc3d, 0xfd16, 0xfe03, 0xfe9d, 0xff03,
+ 0xff6f, 0xff97, 0xff58, 0xff0d, 0xfed7, 0xfe89,
+ 0xfe14, 0xfd84, 0xfcf1, 0xfc86, 0xfc6e, 0xfcc9,
+ 0xfdae, 0xfee9, 0xfff8, 0x0052, 0x0009, 0xffc6,
+ 0xffdb, 0x0035, 0x00ea, 0x0198, 0x01b9, 0x01a1,
+ 0x0186, 0x014d, 0x0168, 0x01c9, 0x01e5, 0x0244,
+ 0x0330, 0x03e5, 0x042a, 0x0412, 0x0375, 0x02d2,
+ 0x02a9, 0x02b1, 0x02a5, 0x0263, 0x01cd, 0x012a,
+ 0x00d7, 0x00f7, 0x0194, 0x0245, 0x025e, 0x01e3,
+ 0x0158, 0x00ec, 0x00c8, 0x011b, 0x018f, 0x01e8,
+ 0x023b, 0x0244, 0x0229, 0x0280, 0x0300, 0x031a,
+ 0x0303, 0x02de, 0x0282, 0x01fe, 0x017b, 0x013c,
+ 0x0198, 0x0298, 0x03cd, 0x049f, 0x04db, 0x04a5,
+ 0x0434, 0x03d2, 0x038d, 0x034c, 0x0353, 0x03ae,
+ 0x03eb, 0x03ac, 0x02ca, 0x01c5, 0x0150, 0x0129,
+ 0x0113, 0x0170, 0x01f9, 0x0242, 0x0253, 0x01f3,
+ 0x0151, 0x00f5, 0x00a2, 0x0032, 0x0001, 0xffe4,
+ 0xff72, 0xfea7, 0xfdc2, 0xfd60, 0xfdbb, 0xfe12,
+ 0xfdc5, 0xfd19, 0xfc80, 0xfc10, 0xfbcb, 0xfbc4,
+ 0xfc15, 0xfcd9, 0xfdad, 0xfe0f, 0xfe69, 0xff35,
+ 0xffe3, 0x0001, 0xffb5, 0xfeda, 0xfd78, 0xfc0f,
+ 0xfb0a, 0xfa96, 0xfaa4, 0xfae2, 0xfaf6, 0xfa96,
+ 0xf9b2, 0xf897, 0xf7aa, 0xf71c, 0xf6be, 0xf66e,
+ 0xf67a, 0xf6e1, 0xf72e, 0xf73f, 0xf73b, 0xf750,
+ 0xf7b5, 0xf85f, 0xf950, 0xface, 0xfc92, 0xfdb9,
+ 0xfdf2, 0xfdde, 0xfe05, 0xfe5d, 0xfef9, 0x0021,
+ 0x019b, 0x02e4, 0x03d6, 0x0486, 0x054e, 0x0681,
+ 0x07b4, 0x081a, 0x078a, 0x069b, 0x05d3, 0x0522,
+ 0x045e, 0x03bb, 0x0387, 0x03cc, 0x0441, 0x04b3,
+ 0x0550, 0x062c, 0x06df, 0x0700, 0x068f, 0x05be,
+ 0x04bc, 0x03f8, 0x03e2, 0x0473, 0x0566, 0x0688,
+ 0x0752, 0x074e, 0x06d5, 0x068a, 0x06ad, 0x071a,
+ 0x0778, 0x07aa, 0x07c8, 0x07c4, 0x0788, 0x0718,
+ 0x066d, 0x0586, 0x048b, 0x03e7, 0x03f2, 0x0472,
+ 0x04f4, 0x0517, 0x04af, 0x0419, 0x03a4, 0x031b,
+ 0x02da, 0x0365, 0x0403, 0x03eb, 0x037a, 0x0307,
+ 0x02c1, 0x0313, 0x0381, 0x02ff, 0x01a6, 0x0035,
+ 0xfefb, 0xfe17, 0xfd55, 0xfc6e, 0xfbac, 0xfb24,
+ 0xfaa8, 0xfa7e, 0xfab6, 0xfb17, 0xfb5b, 0xfad5,
+ 0xf983, 0xf805, 0xf63e, 0xf48c, 0xf3eb, 0xf3f1,
+ 0xf407, 0xf451, 0xf434, 0xf379, 0xf2e5, 0xf290,
+ 0xf234, 0xf1dd, 0xf190, 0xf183, 0xf1c0, 0xf20c,
+ 0xf26c, 0xf2d6, 0xf35d, 0xf440, 0xf544, 0xf65d,
+ 0xf7c6, 0xf945, 0xfac8, 0xfc09, 0xfc54, 0xfbed,
+ 0xfb80, 0xfb2d, 0xfb79, 0xfc69, 0xfd2a, 0xfdbd,
+ 0xfe7c, 0xff5b, 0x009c, 0x0214, 0x0305, 0x0342,
+ 0x02d3, 0x01fa, 0x01a6, 0x022d, 0x02ed, 0x0390,
+ 0x041c, 0x048d, 0x0525, 0x062c, 0x0766, 0x0882,
+ 0x098b, 0x0a6c, 0x0ac1, 0x0a63, 0x09a8, 0x0941,
+ 0x099a, 0x0a3a, 0x0a93, 0x0ab1, 0x0a94, 0x0a42,
+ 0x0a06, 0x09cf, 0x095a, 0x08c7, 0x082a, 0x0775,
+ 0x06d3, 0x0659, 0x05e3, 0x054f, 0x0497, 0x03cd,
+ 0x0310, 0x029e, 0x02c0, 0x0340, 0x0391, 0x038b,
+ 0x0335, 0x0280, 0x01bf, 0x0148, 0x010c, 0x00ef,
+ 0x00bc, 0x0048, 0x0012, 0x0073, 0x0101, 0x0171,
+ 0x01ba, 0x0188, 0x00bc, 0xffc4, 0xff22, 0xff08,
+ 0xff40, 0xff6e, 0xff54, 0xff03, 0xfedd, 0xff04,
+ 0xff62, 0x0018, 0x00f1, 0x012c, 0x009a, 0xffc7,
+ 0xff22, 0xfebc, 0xfe62, 0xfdff, 0xfdcd, 0xfe05,
+ 0xfe86, 0xfeee, 0xff22, 0xff71, 0xffc1, 0xffae,
+ 0xff3e, 0xfea0, 0xfe12, 0xfdcf, 0xfd98, 0xfd3d,
+ 0xfced, 0xfca1, 0xfc6d, 0xfc7c, 0xfcb0, 0xfcf7,
+ 0xfd23, 0xfcdd, 0xfc30, 0xfb41, 0xfa7c, 0xfaa0,
+ 0xfb73, 0xfc1e, 0xfc8d, 0xfcf6, 0xfd95, 0xfe90,
+ 0xff5c, 0xffb8, 0xffed, 0xff9f, 0xfeaa, 0xfdbb,
+ 0xfd1c, 0xfcd3, 0xfce5, 0xfcd1, 0xfc8b, 0xfc9a,
+ 0xfcd8, 0xfd0a, 0xfd96, 0xfe8e, 0xff80, 0x0022,
+ 0x0071, 0x00b3, 0x0140, 0x01f2, 0x0274, 0x02ae,
+ 0x02c7, 0x0312, 0x03a7, 0x042a, 0x046c, 0x0482,
+ 0x0453, 0x03ee, 0x03a5, 0x038b, 0x037e, 0x0374,
+ 0x037e, 0x038d, 0x0371, 0x0332, 0x02f9, 0x02e6,
+ 0x0339, 0x03c4, 0x03cf, 0x0351, 0x02c0, 0x0243,
+ 0x021d, 0x0243, 0x022b, 0x01cd, 0x0158, 0x00eb,
+ 0x00d3, 0x00cd, 0x009a, 0x00ac, 0x00c3, 0x0050,
+ 0xffaf, 0xff20, 0xfed1, 0xff10, 0xff5d, 0xff7a,
+ 0xffdf, 0x005e, 0x00ca, 0x0154, 0x01c1, 0x021d,
+ 0x028c, 0x029b, 0x0282, 0x02ca, 0x0338, 0x03a9,
+ 0x03fe, 0x03cb, 0x0366, 0x0360, 0x03b0, 0x043a,
+ 0x04a5, 0x046b, 0x0385, 0x0255, 0x0192, 0x0186,
+ 0x0183, 0x015d, 0x018c, 0x01d8, 0x021c, 0x0274,
+ 0x0291, 0x0297, 0x02d6, 0x02b0, 0x01b9, 0x003d,
+ 0xfea5, 0xfd8d, 0xfd1e, 0xfcf2, 0xfcf3, 0xfcff,
+ 0xfd04, 0xfd8e, 0xfe89, 0xff66, 0x003d, 0x00ce,
+ 0x0097, 0xfff5, 0xff2d, 0xfe51, 0xfddf, 0xfdae,
+ 0xfd0a, 0xfc1e, 0xfb62, 0xfacc, 0xfa3f, 0xf9d7,
+ 0xf979, 0xf8d1, 0xf802, 0xf79b, 0xf79e, 0xf7be,
+ 0xf800, 0xf846, 0xf873, 0xf8bc, 0xf92d, 0xf9c3,
+ 0xfabc, 0xfc15, 0xfd51, 0xfdaf, 0xfcde, 0xfbd2,
+ 0xfba9, 0xfc49, 0xfd43, 0xfe90, 0xffec, 0x0117,
+ 0x0243, 0x037b, 0x04b3, 0x05fe, 0x0709, 0x0757,
+ 0x06f7, 0x0642, 0x05a2, 0x056d, 0x0577, 0x0574,
+ 0x054b, 0x04d1, 0x044b, 0x0452, 0x04d6, 0x0598,
+ 0x0657, 0x0654, 0x058b, 0x04b3, 0x03df, 0x0341,
+ 0x0350, 0x0393, 0x03a0, 0x03de, 0x0454, 0x04df,
+ 0x05ba, 0x06df, 0x07ce, 0x0809, 0x07cc, 0x07c4,
+ 0x07eb, 0x080a, 0x0845, 0x0858, 0x0816, 0x07db,
+ 0x079e, 0x0781, 0x082a, 0x0930, 0x096c, 0x087a,
+ 0x06d2, 0x055e, 0x04ac, 0x049a, 0x04fd, 0x0593,
+ 0x05fd, 0x0648, 0x0673, 0x067f, 0x06db, 0x0730,
+ 0x06a4, 0x055d, 0x03d3, 0x025b, 0x0189, 0x016e,
+ 0x01a4, 0x01e6, 0x0193, 0x0063, 0xfeff, 0xfde1,
+ 0xfd56, 0xfd87, 0xfda7, 0xfd16, 0xfc42, 0xfb64,
+ 0xfa90, 0xfa38, 0xfa35, 0xf9e3, 0xf909, 0xf7d7,
+ 0xf6aa, 0xf5d8, 0xf57f, 0xf563, 0xf4e5, 0xf3cc,
+ 0xf2b4, 0xf215, 0xf210, 0xf2ae, 0xf391, 0xf479,
+ 0xf564, 0xf5ee, 0xf62f, 0xf6f6, 0xf83e, 0xf95c,
+ 0xf9e8, 0xf9ad, 0xf910, 0xf8ab, 0xf889, 0xf8e6,
+ 0xf9dc, 0xfab7, 0xfb1f, 0xfb2a, 0xfae3, 0xfb26,
+ 0xfc60, 0xfd5b, 0xfd7d, 0xfd3a, 0xfcb4, 0xfc85,
+ 0xfd54, 0xfeab, 0x002e, 0x01a2, 0x0236, 0x01ef,
+ 0x019b, 0x01a0, 0x024f, 0x0381, 0x0473, 0x04fb,
+ 0x0540, 0x052e, 0x053b, 0x05d7, 0x06b5, 0x074e,
+ 0x074a, 0x06c7, 0x0646, 0x0630, 0x06cb, 0x07e5,
+ 0x089c, 0x08a8, 0x0878, 0x082d, 0x0802, 0x082c,
+ 0x0846, 0x0818, 0x07b8, 0x0730, 0x0712, 0x07c6,
+ 0x08a4, 0x08fe, 0x08ba, 0x07cc, 0x066b, 0x04f7,
+ 0x03aa, 0x0305, 0x035f, 0x0405, 0x0421, 0x03ce,
+ 0x03a1, 0x03e4, 0x0455, 0x0445, 0x035b, 0x020d,
+ 0x00f6, 0x0072, 0x00ab, 0x0169, 0x024b, 0x02e9,
+ 0x02ac, 0x01a5, 0x00c3, 0x007d, 0x00ce, 0x01a8,
+ 0x0280, 0x02c7, 0x025e, 0x015b, 0x0083, 0x0095,
+ 0x0105, 0x0116, 0x00c0, 0x0027, 0xffa3, 0xff90,
+ 0xffe6, 0x0077, 0x00ea, 0x0116, 0x0133, 0x0131,
+ 0x0130, 0x0198, 0x01eb, 0x0180, 0x009d, 0xffb4,
+ 0xff41, 0xff7f, 0xffac, 0xff4a, 0xfeb8, 0xfe0b,
+ 0xfd16, 0xfbea, 0xfae1, 0xfa8f, 0xfb06, 0xfb99,
+ 0xfbc2, 0xfb90, 0xfb8b, 0xfc02, 0xfc74, 0xfc5e,
+ 0xfbb0, 0xfa96, 0xf9b4, 0xf97a, 0xf9c5, 0xfa8f,
+ 0xfb78, 0xfbc0, 0xfb6f, 0xfac8, 0xf9e3, 0xf959,
+ 0xf989, 0xfa4d, 0xfb70, 0xfc35, 0xfc17, 0xfbcf,
+ 0xfc18, 0xfcf7, 0xfe11, 0xfee0, 0xff6b, 0xfffc,
+ 0x0054, 0x0091, 0x0126, 0x01e0, 0x0264, 0x02a3,
+ 0x028b, 0x026f, 0x02c1, 0x0367, 0x03f7, 0x0417,
+ 0x03ec, 0x040d, 0x0490, 0x050d, 0x0544, 0x050c,
+ 0x048d, 0x0418, 0x038f, 0x02fa, 0x02bc, 0x02be,
+ 0x02a7, 0x0252, 0x01c0, 0x0154, 0x015f, 0x017a,
+ 0x014c, 0x00e7, 0x0047, 0xff74, 0xfe99, 0xfdf4,
+ 0xfe0d, 0xff22, 0x007f, 0x0149, 0x014b, 0x00d8,
+ 0x0041, 0xffa5, 0xff65, 0xfffb, 0x00f5, 0x0167,
+ 0x014c, 0x0145, 0x01a6, 0x0255, 0x02e7, 0x02f9,
+ 0x02b9, 0x0279, 0x0235, 0x01ee, 0x01e1, 0x022b,
+ 0x0281, 0x0286, 0x025e, 0x0265, 0x0290, 0x02a3,
+ 0x0291, 0x0275, 0x0288, 0x02cd, 0x02f5, 0x02d9,
+ 0x0281, 0x01f1, 0x0139, 0x0051, 0xff49, 0xfe73,
+ 0xfdeb, 0xfd8f, 0xfd50, 0xfd0d, 0xfcd3, 0xfce5,
+ 0xfd3d, 0xfdc8, 0xfe6d, 0xfec9, 0xfed2, 0xfed5,
+ 0xfece, 0xfee4, 0xff6f, 0x001e, 0x0060, 0x0001,
+ 0xff0b, 0xfd8f, 0xfbb5, 0xfa02, 0xf929, 0xf907,
+ 0xf8ef, 0xf8b9, 0xf88b, 0xf86e, 0xf86e, 0xf872,
+ 0xf868, 0xf88d, 0xf8e9, 0xf908, 0xf898, 0xf809,
+ 0xf828, 0xf908, 0xf9f1, 0xfa74, 0xfaf8, 0xfbf3,
+ 0xfd37, 0xfe51, 0xff41, 0x004c, 0x0186, 0x02d8,
+ 0x0414, 0x04f5, 0x056f, 0x0592, 0x0564, 0x050a,
+ 0x04dd, 0x0503, 0x0544, 0x056e, 0x0575, 0x053d,
+ 0x04d9, 0x049f, 0x047d, 0x042d, 0x03b8, 0x0317,
+ 0x0250, 0x01d2, 0x01bf, 0x01e7, 0x0264, 0x0323,
+ 0x03c5, 0x042c, 0x0452, 0x0411, 0x0379, 0x02e2,
+ 0x02a2, 0x02d1, 0x0342, 0x03b4, 0x03df, 0x03d4,
+ 0x03e7, 0x0417, 0x0457, 0x04b1, 0x04b6, 0x041e,
+ 0x0353, 0x02b6, 0x0271, 0x028a, 0x02a7, 0x02a0,
+ 0x02c0, 0x0324, 0x039b, 0x03dd, 0x03fb, 0x0449,
+ 0x049e, 0x04e3, 0x0571, 0x05fd, 0x05ef, 0x0553,
+ 0x0454, 0x0362, 0x0311, 0x02fd, 0x0297, 0x0218,
+ 0x01bd, 0x0197, 0x0171, 0x00c1, 0xffb5, 0xfee0,
+ 0xfe22, 0xfd31, 0xfc27, 0xfb61, 0xfb52, 0xfbd0,
+ 0xfc3e, 0xfc5f, 0xfc39, 0xfbf1, 0xfb5f, 0xfa01,
+ 0xf829, 0xf6a6, 0xf5a1, 0xf52a, 0xf542, 0xf57a,
+ 0xf599, 0xf591, 0xf560, 0xf577, 0xf601, 0xf69c,
+ 0xf6de, 0xf68f, 0xf630, 0xf67f, 0xf73d, 0xf804,
+ 0xf8e5, 0xf9b5, 0xfa7b, 0xfb3e, 0xfb85, 0xfb74,
+ 0xfb9f, 0xfbf1, 0xfc65, 0xfd33, 0xfe1a, 0xfeb8,
+ 0xfed4, 0xfe6f, 0xfe07, 0xfe01, 0xfe40, 0xfea0,
+ 0xfee4, 0xfed7, 0xfecc, 0xff16, 0xff9e, 0x0031,
+ 0x0097, 0x009a, 0x0053, 0x0012, 0x0035, 0x00cb,
+ 0x0186, 0x026a, 0x0396, 0x04b3, 0x0591, 0x062e,
+ 0x063c, 0x05f0, 0x05c9, 0x058c, 0x0528, 0x0510,
+ 0x0552, 0x05da, 0x066c, 0x0684, 0x0666, 0x069f,
+ 0x06ed, 0x06f0, 0x067d, 0x05a2, 0x04f6, 0x04a7,
+ 0x0458, 0x0427, 0x045a, 0x04e7, 0x059a, 0x05f4,
+ 0x05d2, 0x05b5, 0x05c8, 0x05ce, 0x05b3, 0x05a2,
+ 0x05b6, 0x05ae, 0x0556, 0x04e5, 0x048f, 0x046d,
+ 0x0473, 0x0447, 0x03ca, 0x0329, 0x0277, 0x0203,
+ 0x0204, 0x024c, 0x02a5, 0x0298, 0x01d2, 0x00f0,
+ 0x009b, 0x00e0, 0x0187, 0x021a, 0x025d, 0x02a3,
+ 0x02fc, 0x030e, 0x02c1, 0x0256, 0x021b, 0x0205,
+ 0x01df, 0x01d4, 0x022f, 0x02e9, 0x03aa, 0x0413,
+ 0x0432, 0x0459, 0x04a8, 0x0500, 0x04f7, 0x0433,
+ 0x02ed, 0x0184, 0x0033, 0xff4c, 0xfee2, 0xfe9e,
+ 0xfe33, 0xfdcb, 0xfdc1, 0xfdea, 0xfdcf, 0xfd90,
+ 0xfdb3, 0xfe5c, 0xff10, 0xff0e, 0xfe35, 0xfd19,
+ 0xfc3f, 0xfbca, 0xfb7d, 0xfb19, 0xfaa9, 0xf9fe,
+ 0xf90e, 0xf872, 0xf878, 0xf8e7, 0xf944, 0xf8bd,
+ 0xf76f, 0xf69e, 0xf6d2, 0xf7a1, 0xf86e, 0xf8c2,
+ 0xf901, 0xf9aa, 0xfa51, 0xfac0, 0xfb3d, 0xfbb1,
+ 0xfbfe, 0xfc20, 0xfc2b, 0xfc81, 0xfd45, 0xfe4e,
+ 0xff7c, 0x008e, 0x0172, 0x0249, 0x02da, 0x0302,
+ 0x0328, 0x036c, 0x037b, 0x0347, 0x0325, 0x034d,
+ 0x03ae, 0x0433, 0x04b7, 0x0503, 0x050a, 0x04bd,
+ 0x0425, 0x03c3, 0x040e, 0x04d3, 0x0568, 0x0549,
+ 0x0467, 0x0310, 0x01f0, 0x0180, 0x0151, 0x00c0,
+ 0xffd2, 0xfecd, 0xfe18, 0xfdee, 0xfe00, 0xfe47,
+ 0xfeef, 0xff7a, 0xffa3, 0xffbc, 0x0009, 0x00b8,
+ 0x0176, 0x019e, 0x0160, 0x0141, 0x0147, 0x0161,
+ 0x017b, 0x018e, 0x019a, 0x016c, 0x010f, 0x00e2,
+ 0x0110, 0x01a7, 0x0290, 0x0388, 0x047c, 0x053b,
+ 0x0578, 0x053f, 0x04d6, 0x0480, 0x042e, 0x03a3,
+ 0x030d, 0x0272, 0x019c, 0x00de, 0x0067, 0x0009,
+ 0xffc5, 0xff55, 0xfedb, 0xff36, 0x0043, 0x012c,
+ 0x01b2, 0x01c7, 0x0192, 0x0157, 0x0107, 0x00ae,
+ 0x0032, 0xff44, 0xfe19, 0xfcf2, 0xfc06, 0xfbb4,
+ 0xfb9d, 0xfb5d, 0xfb1f, 0xfa95, 0xf98f, 0xf880,
+ 0xf7c5, 0xf7af, 0xf7f4, 0xf7d3, 0xf77d, 0xf729,
+ 0xf697, 0xf62b, 0xf5e2, 0xf566, 0xf524, 0xf4fb,
+ 0xf484, 0xf45b, 0xf4cd, 0xf5c2, 0xf77e, 0xf9a3,
+ 0xfb88, 0xfd19, 0xfe37, 0xfee5, 0xff81, 0x0016,
+ 0x007e, 0x00d7, 0x0165, 0x021d, 0x02c2, 0x0381,
+ 0x0481, 0x0545, 0x0575, 0x056d, 0x05bd, 0x0686,
+ 0x075f, 0x07e7, 0x0806, 0x07c0, 0x0737, 0x0643,
+ 0x04cb, 0x03a3, 0x0345, 0x030a, 0x02a7, 0x0259,
+ 0x0233, 0x0263, 0x02d4, 0x0340, 0x03c5, 0x043c,
+ 0x0430, 0x03ca, 0x03a8, 0x0414, 0x04a5, 0x04c5,
+ 0x048f, 0x0489, 0x04d8, 0x0527, 0x050d, 0x04a9,
+ 0x043b, 0x038f, 0x02c3, 0x023b, 0x0221, 0x02d4,
+ 0x045c, 0x05fd, 0x075b, 0x085e, 0x08be, 0x08b5,
+ 0x088a, 0x0827, 0x07b3, 0x0749, 0x06e0, 0x0685,
+ 0x0603, 0x055f, 0x0500, 0x04c8, 0x0483, 0x0470,
+ 0x048e, 0x04ce, 0x0542, 0x05a1, 0x059f, 0x0536,
+ 0x0433, 0x028c, 0x00ca, 0xff80, 0xfeb5, 0xfe20,
+ 0xfd72, 0xfc74, 0xfb56, 0xfa97, 0xfa11, 0xf925,
+ 0xf7ef, 0xf6d7, 0xf5e0, 0xf525, 0xf4a6, 0xf415,
+ 0xf386, 0xf33d, 0xf31a, 0xf2f1, 0xf298, 0xf216,
+ 0xf1e8, 0xf23c, 0xf2a4, 0xf2da, 0xf2ce, 0xf2a8,
+ 0xf2f3, 0xf3d5, 0xf503, 0xf67b, 0xf817, 0xf95a,
+ 0xfa21, 0xfa87, 0xfaa8, 0xfaab, 0xfa89, 0xfa6f,
+ 0xfab4, 0xfb26, 0xfb99, 0xfc4a, 0xfce8, 0xfd21,
+ 0xfd6e, 0xfe1d, 0xff09, 0x001a, 0x012c, 0x0236,
+ 0x0336, 0x03bc, 0x0398, 0x0320, 0x0276, 0x01b8,
+ 0x0158, 0x018e, 0x0242, 0x0332, 0x040a, 0x04d5,
+ 0x05b9, 0x0680, 0x06f6, 0x070a, 0x06c5, 0x0684,
+ 0x0673, 0x065e, 0x067e, 0x071b, 0x07c7, 0x080a,
+ 0x07c2, 0x06fc, 0x0647, 0x05f1, 0x058a, 0x04eb,
+ 0x0479, 0x046f, 0x04d5, 0x0571, 0x0610, 0x06ea,
+ 0x07e7, 0x086e, 0x0866, 0x080c, 0x075d, 0x0675,
+ 0x05a0, 0x0511, 0x04e1, 0x04ea, 0x04f5, 0x050c,
+ 0x0507, 0x04ac, 0x0450, 0x0459, 0x04b7, 0x0526,
+ 0x0567, 0x0555, 0x0524, 0x050c, 0x04d9, 0x0436,
+ 0x0300, 0x015b, 0xffcb, 0xfef5, 0xff11, 0xff93,
+ 0xffdf, 0x0011, 0x0075, 0x00d4, 0x00f1, 0x00c8,
+ 0x0051, 0xffcb, 0xffa3, 0xfff4, 0x008d, 0x0129,
+ 0x018a, 0x019e, 0x0148, 0x0086, 0xff9f, 0xfe98,
+ 0xfd6f, 0xfc67, 0xfba6, 0xfb6d, 0xfbf8, 0xfcd2,
+ 0xfd99, 0xfe63, 0xfef1, 0xff33, 0xff7a, 0xff96,
+ 0xff51, 0xfeee, 0xfe8d, 0xfe57, 0xfe88, 0xfefa,
+ 0xff6e, 0xffbc, 0xffa5, 0xff2c, 0xfecb, 0xfee8,
+ 0xff50, 0xff77, 0xff3b, 0xfee8, 0xfec0, 0xfeaa,
+ 0xfe43, 0xfd78, 0xfc87, 0xfb74, 0xfa73, 0xf9f5,
+ 0xf9ee, 0xfa28, 0xfa98, 0xfb0f, 0xfba0, 0xfc6b,
+ 0xfd25, 0xfdaa, 0xfe06, 0xfe31, 0xfe86, 0xff4a,
+ 0x0033, 0x00f8, 0x015b, 0x0155, 0x0165, 0x01a6,
+ 0x01a9, 0x0178, 0x015c, 0x0161, 0x019d, 0x0228,
+ 0x02d3, 0x0369, 0x03e4, 0x0441, 0x045c, 0x0434,
+ 0x03f9, 0x03c8, 0x03a7, 0x0359, 0x0290, 0x0198,
+ 0x00e9, 0x0069, 0x0008, 0xfff1, 0xfff6, 0xfffe,
+ 0x0036, 0x0096, 0x0101, 0x015d, 0x017a, 0x0166,
+ 0x0166, 0x0191, 0x01e5, 0x0230, 0x0212, 0x0180,
+ 0x00d6, 0x0068, 0x0057, 0x006b, 0x005a, 0x0049,
+ 0x0059, 0x0056, 0x0065, 0x00bb, 0x00ff, 0x00f0,
+ 0x00e3, 0x0140, 0x0202, 0x0299, 0x0295, 0x025a,
+ 0x0259, 0x0268, 0x0254, 0x0212, 0x01bd, 0x01b8,
+ 0x0212, 0x0279, 0x030e, 0x03f3, 0x04a9, 0x04c4,
+ 0x044f, 0x03a9, 0x0379, 0x03e4, 0x044c, 0x0467,
+ 0x046c, 0x0457, 0x0425, 0x03f5, 0x03a1, 0x032d,
+ 0x02e7, 0x02b7, 0x0275, 0x0282, 0x02f8, 0x0358,
+ 0x0348, 0x02be, 0x01fb, 0x0183, 0x013d, 0x0070,
+ 0xff05, 0xfd67, 0xfbbd, 0xfa49, 0xf933, 0xf835,
+ 0xf768, 0xf727, 0xf71b, 0xf6f5, 0xf6e8, 0xf6e5,
+ 0xf6db, 0xf6ff, 0xf726, 0xf71e, 0xf725, 0xf740,
+ 0xf736, 0xf73b, 0xf792, 0xf815, 0xf892, 0xf92e,
+ 0xfa29, 0xfb5d, 0xfc8a, 0xfde3, 0xff8c, 0x012b,
+ 0x0254, 0x02b3, 0x0269, 0x023c, 0x02a1, 0x034f,
+ 0x03fc, 0x0461, 0x0434, 0x03ae, 0x0352, 0x0356,
+ 0x0392, 0x03c7, 0x03d4, 0x03af, 0x036d, 0x0364,
+ 0x03bd, 0x0437, 0x0497, 0x04c4, 0x04fe, 0x05a1,
+ 0x065b, 0x06bb, 0x06cc, 0x066f, 0x05a3, 0x04de,
+ 0x043f, 0x03af, 0x034b, 0x031c, 0x0348, 0x03ef,
+ 0x0499, 0x04f8, 0x054a, 0x05ad, 0x0603, 0x061c,
+ 0x05d5, 0x0548, 0x04c3, 0x048e, 0x049c, 0x048a,
+ 0x0465, 0x048a, 0x04e7, 0x0559, 0x05e6, 0x068d,
+ 0x0771, 0x0847, 0x083c, 0x072e, 0x05d6, 0x04df,
+ 0x0496, 0x04eb, 0x059c, 0x0642, 0x0646, 0x05b2,
+ 0x0531, 0x04ce, 0x0426, 0x0355, 0x0273, 0x0161,
+ 0x0044, 0xff58, 0xfeba, 0xfe68, 0xfdf1, 0xfcfc,
+ 0xfbd4, 0xfac7, 0xf9ca, 0xf8b2, 0xf72f, 0xf551,
+ 0xf3b2, 0xf28a, 0xf193, 0xf0b6, 0xf017, 0xefff,
+ 0xf097, 0xf163, 0xf1dc, 0xf22c, 0xf2b7, 0xf3a2,
+ 0xf4a1, 0xf527, 0xf51a, 0xf4cb, 0xf48f, 0xf491,
+ 0xf491, 0xf446, 0xf410, 0xf476, 0xf57d, 0xf6ce,
+ 0xf816, 0xf962, 0xfadc, 0xfc3b, 0xfd00, 0xfce2,
+ 0xfc36, 0xfbbf, 0xfbd6, 0xfc6c, 0xfd68, 0xfe50,
+ 0xfed1, 0xff3e, 0xffda, 0x00ab, 0x0193, 0x0221,
+ 0x0250, 0x0281, 0x02ef, 0x03d6, 0x0522, 0x0662,
+ 0x0766, 0x0823, 0x08c9, 0x099b, 0x0a0f, 0x09ae,
+ 0x08dd, 0x07f5, 0x0732, 0x06b0, 0x061c, 0x059c,
+ 0x058a, 0x05c5, 0x064e, 0x06de, 0x06e9, 0x06ea,
+ 0x075a, 0x07c5, 0x07e1, 0x0788, 0x068e, 0x0559,
+ 0x044c, 0x0386, 0x030d, 0x02ac, 0x0265, 0x0274,
+ 0x02d8, 0x0389, 0x0450, 0x04be, 0x04d5, 0x04c5,
+ 0x0475, 0x03e9, 0x0363, 0x0321, 0x032d, 0x0375,
+ 0x03c5, 0x03b0, 0x0315, 0x0269, 0x01e6, 0x0150,
+ 0x0082, 0xff7f, 0xfe73, 0xfda0, 0xfd45, 0xfd8b,
+ 0xfe12, 0xfe7b, 0xff04, 0xffb6, 0x0064, 0x0119,
+ 0x0176, 0x012d, 0x007c, 0xff78, 0xfe54, 0xfd71,
+ 0xfce1, 0xfce9, 0xfd8a, 0xfe19, 0xfe6b, 0xfe85,
+ 0xfe2d, 0xfdc3, 0xfda5, 0xfdaf, 0xfdc9, 0xfdaa,
+ 0xfd1f, 0xfc82, 0xfbf5, 0xfb63, 0xfacf, 0xfa33,
+ 0xf9cc, 0xf9cc, 0xfa55, 0xfbc2, 0xfdba, 0xff53,
+ 0x0061, 0x00ee, 0x00d8, 0x0066, 0xffc7, 0xff0a,
+ 0xfe94, 0xfe89, 0xfea4, 0xfebc, 0xfee7, 0xff3a,
+ 0xff80, 0xff7f, 0xff1b, 0xfe1d, 0xfcad, 0xfb6f,
+ 0xfad6, 0xfb19, 0xfc25, 0xfd76, 0xfe9b, 0xff80,
+ 0x0068, 0x0155, 0x0183, 0x00aa, 0xff86, 0xfe95,
+ 0xfe01, 0xfde9, 0xfe25, 0xfec5, 0xffd7, 0x00de,
+ 0x018c, 0x01c7, 0x0183, 0x0135, 0x0131, 0x0169,
+ 0x01da, 0x0238, 0x0248, 0x0236, 0x01ff, 0x0193,
+ 0x00fb, 0x0015, 0xff13, 0xfe48, 0xfddf, 0xfe36,
+ 0xff23, 0xffdb, 0x002c, 0x0039, 0xffeb, 0xff85,
+ 0xff50, 0xff2e, 0xff29, 0xff67, 0xffaa, 0xffad,
+ 0xff98, 0xff81, 0xff6d, 0xffb7, 0x0036, 0x0048,
+ 0x0015, 0xfffb, 0xffdf, 0x000c, 0x0086, 0x00dd,
+ 0x0156, 0x0236, 0x032b, 0x03eb, 0x03fc, 0x0336,
+ 0x0250, 0x019c, 0x00fd, 0x009e, 0x0097, 0x0107,
+ 0x01fe, 0x02e2, 0x033f, 0x034a, 0x0343, 0x0327,
+ 0x02d0, 0x0263, 0x023d, 0x0242, 0x0242, 0x0247,
+ 0x0230, 0x0205, 0x01ff, 0x0209, 0x020e, 0x0225,
+ 0x025f, 0x02c4, 0x0325, 0x0377, 0x03e8, 0x0430,
+ 0x041a, 0x0401, 0x03f2, 0x03f3, 0x043e, 0x0473,
+ 0x0432, 0x03bd, 0x0320, 0x0231, 0x0128, 0x003b,
+ 0xff62, 0xfe8a, 0xfdb1, 0xfcf5, 0xfc5d, 0xfbbd,
+ 0xfb09, 0xfa6e, 0xfa08, 0xf9ec, 0xfa22, 0xfa5b,
+ 0xfa18, 0xf93c, 0xf81f, 0xf70b, 0xf630, 0xf5af,
+ 0xf560, 0xf53d, 0xf5af, 0xf6bc, 0xf7cb, 0xf896,
+ 0xf943, 0xf9c4, 0xfa14, 0xfa81, 0xfb2e, 0xfbe7,
+ 0xfc88, 0xfd0f, 0xfd65, 0xfd7b, 0xfd87, 0xfdc6,
+ 0xfe28, 0xfe6c, 0xfe7c, 0xfe7c, 0xfe9e, 0xfee9,
+ 0xff34, 0xff6f, 0xffb8, 0x0024, 0x00b7, 0x015f,
+ 0x01e5, 0x021d, 0x0236, 0x028a, 0x02fa, 0x0324,
+ 0x032b, 0x0377, 0x0403, 0x0485, 0x0509, 0x05d4,
+ 0x06ce, 0x079d, 0x0831, 0x087a, 0x0859, 0x0849,
+ 0x08ab, 0x0900, 0x08f9, 0x08bd, 0x0855, 0x0819,
+ 0x0852, 0x0899, 0x08be, 0x090a, 0x099e, 0x0a7a,
+ 0x0b3f, 0x0b5e, 0x0aff, 0x0a8a, 0x0a13, 0x09e8,
+ 0x0a23, 0x0a61, 0x0a97, 0x0ab0, 0x0a47, 0x0991,
+ 0x0901, 0x0891, 0x0844, 0x0804, 0x0779, 0x06e5,
+ 0x0697, 0x0637, 0x05b9, 0x0561, 0x0519, 0x04e7,
+ 0x04c9, 0x044d, 0x034a, 0x01f7, 0x0074, 0xfeec,
+ 0xfd7d, 0xfc1d, 0xfaa6, 0xf8ff, 0xf755, 0xf5e7,
+ 0xf4d5, 0xf45e, 0xf470, 0xf487, 0xf471, 0xf435,
+ 0xf3c8, 0xf355, 0xf306, 0xf2d8, 0xf2b9, 0xf275,
+ 0xf213, 0xf1d1, 0xf1ae, 0xf1a6, 0xf19b, 0xf17b,
+ 0xf1d1, 0xf2c6, 0xf389, 0xf3a6, 0xf332, 0xf266,
+ 0xf1fb, 0xf265, 0xf355, 0xf47b, 0xf58f, 0xf661,
+ 0xf71a, 0xf79c, 0xf7b5, 0xf7b2, 0xf7bc, 0xf7af,
+ 0xf7bf, 0xf836, 0xf8dc, 0xf972, 0xfa49, 0xfbb2,
+ 0xfd86, 0xff8d, 0x016d, 0x02ba, 0x037a, 0x03e0,
+ 0x0407, 0x0451, 0x04f6, 0x05ca, 0x06a0, 0x0737,
+ 0x0788, 0x0811, 0x08f2, 0x09f2, 0x0b08, 0x0bf7,
+ 0x0c85, 0x0cf1, 0x0d33, 0x0d02, 0x0c9e, 0x0c59,
+ 0x0c0d, 0x0bbf, 0x0ba4, 0x0b7e, 0x0b19, 0x0aac,
+ 0x0a49, 0x09f2, 0x09e9, 0x0a21, 0x0a2d, 0x09bd,
+ 0x08c2, 0x0798, 0x06bb, 0x0652, 0x066c, 0x06d7,
+ 0x0728, 0x075e, 0x078a, 0x0780, 0x0756, 0x06f9,
+ 0x0619, 0x04fb, 0x0410, 0x0347, 0x027b, 0x01b2,
+ 0x0129, 0x0119, 0x0164, 0x01d6, 0x0215, 0x01ab,
+ 0x00ca, 0xfff4, 0xff3c, 0xfeca, 0xfec5, 0xfee6,
+ 0xfeec, 0xfec6, 0xfe8f, 0xfe9e, 0xfec6, 0xfe8f,
+ 0xfe44, 0xfe3a, 0xfe1b, 0xfdc7, 0xfd76, 0xfd17,
+ 0xfc8a, 0xfbe3, 0xfb3c, 0xfade, 0xfaf2, 0xfb0f,
+ 0xfaee, 0xfab7, 0xfa82, 0xfa8b, 0xfb03, 0xfb6b,
+ 0xfb40, 0xfaa5, 0xf9d3, 0xf910, 0xf8b5, 0xf8cd,
+ 0xf950, 0xfa1c, 0xfacb, 0xfb53, 0xfbd7, 0xfc11,
+ 0xfc02, 0xfbe6, 0xfb86, 0xfade, 0xfa43, 0xf9ba,
+ 0xf954, 0xf96d, 0xfa0a, 0xfaee, 0xfc17, 0xfd5e,
+ 0xfe4f, 0xfeba, 0xfecf, 0xfed5, 0xff22, 0xffad,
+ 0x0005, 0x0026, 0x0045, 0x0053, 0x00a4, 0x0181,
+ 0x0248, 0x02b7, 0x0359, 0x0422, 0x04c7, 0x056b,
+ 0x05f2, 0x061e, 0x05fb, 0x05a2, 0x0573, 0x05de,
+ 0x06a2, 0x0721, 0x0727, 0x06ec, 0x06cc, 0x06dd,
+ 0x06cf, 0x064a, 0x055d, 0x0454, 0x0328, 0x01ce,
+ 0x00c1, 0x004f, 0x0045, 0x006c, 0x0084, 0x0061,
+ 0x0056, 0x008f, 0x00b4, 0x008a, 0x0024, 0xffa9,
+ 0xff0b, 0xfe1f, 0xfd30, 0xfcb1, 0xfc94, 0xfcb9,
+ 0xfd0c, 0xfd34, 0xfd12, 0xfcc5, 0xfc5b, 0xfc38,
+ 0xfc8c, 0xfcd4, 0xfcdf, 0xfd0a, 0xfd68, 0xfdf3,
+ 0xfebf, 0xffa4, 0x007a, 0x0149, 0x0201, 0x0287,
+ 0x02cd, 0x02d1, 0x02aa, 0x0248, 0x018f, 0x00ce,
+ 0x007d, 0x00b9, 0x0146, 0x019d, 0x0171, 0x0126,
+ 0x0127, 0x013a, 0x012a, 0x0105, 0x00a8, 0x0001,
+ 0xff69, 0xff2f, 0xff60, 0xfff6, 0x00ce, 0x01a2,
+ 0x0262, 0x0336, 0x0412, 0x04a3, 0x04b2, 0x044b,
+ 0x03be, 0x0321, 0x0227, 0x00f3, 0x0032, 0xfff9,
+ 0xfffb, 0x001e, 0x0018, 0xffcc, 0xff82, 0xff07,
+ 0xfe2f, 0xfd72, 0xfcdf, 0xfc24, 0xfb55, 0xfaa5,
+ 0xfa45, 0xfa3b, 0xfa35, 0xfa2a, 0xfa68, 0xfaef,
+ 0xfb8f, 0xfc22, 0xfc8a, 0xfcdc, 0xfd2b, 0xfd52,
+ 0xfd4e, 0xfd6c, 0xfe06, 0xff10, 0x0020, 0x00e7,
+ 0x0153, 0x01a0, 0x021b, 0x028c, 0x02b4, 0x02ae,
+ 0x024a, 0x017e, 0x00ce, 0x0063, 0x001f, 0x0019,
+ 0x001b, 0x0004, 0x002f, 0x00a8, 0x0122, 0x0177,
+ 0x019f, 0x0194, 0x013b, 0x009b, 0x0023, 0x0010,
+ 0x002f, 0x0083, 0x011e, 0x01a9, 0x01ef, 0x0211,
+ 0x0214, 0x01f4, 0x01d6, 0x01bc, 0x017e, 0x00ff,
+ 0x0067, 0x0031, 0x009a, 0x0135, 0x01c4, 0x0292,
+ 0x03bb, 0x0504, 0x060a, 0x0681, 0x06a8, 0x06d7,
+ 0x06e1, 0x0694, 0x0619, 0x05ca, 0x05ee, 0x068a,
+ 0x0756, 0x07db, 0x07d8, 0x07a3, 0x076f, 0x0702,
+ 0x066f, 0x05eb, 0x0567, 0x04f7, 0x04ce, 0x0500,
+ 0x0557, 0x055b, 0x0524, 0x0533, 0x0568, 0x0573,
+ 0x054f, 0x04ff, 0x04a7, 0x03fa, 0x0258, 0x0030,
+ 0xfe50, 0xfcac, 0xfb3f, 0xfa26, 0xf937, 0xf884,
+ 0xf82a, 0xf7e2, 0xf778, 0xf6f7, 0xf684, 0xf635,
+ 0xf5d0, 0xf516, 0xf435, 0xf37f, 0xf301, 0xf2c4,
+ 0xf2f0, 0xf36e, 0xf403, 0xf4a6, 0xf529, 0xf55c,
+ 0xf57e, 0xf5af, 0xf5b8, 0xf591, 0xf55c, 0xf537,
+ 0xf541, 0xf584, 0xf5f5, 0xf657, 0xf66a, 0xf650,
+ 0xf61c, 0xf5d5, 0xf5ad, 0xf597, 0xf590, 0xf5de,
+ 0xf66f, 0xf70c, 0xf7b4, 0xf84a, 0xf8e4, 0xf9bc,
+ 0xfa98, 0xfb43, 0xfbfe, 0xfd21, 0xfe9b, 0xffbf,
+ 0x0017, 0x000d, 0x001c, 0x0052, 0x00ad, 0x0144,
+ 0x0237, 0x036c, 0x0479, 0x050d, 0x0525, 0x0526,
+ 0x0567, 0x05a6, 0x05b3, 0x05c1, 0x05cd, 0x05b5,
+ 0x0588, 0x057b, 0x05fa, 0x0733, 0x089a, 0x097c,
+ 0x09b7, 0x09be, 0x09e9, 0x0a0c, 0x09f5, 0x09a3,
+ 0x092c, 0x08ce, 0x08a6, 0x08b7, 0x091a, 0x097d,
+ 0x098c, 0x097a, 0x0953, 0x08fb, 0x087a, 0x07b6,
+ 0x06d8, 0x062f, 0x0593, 0x04ee, 0x0454, 0x03ce,
+ 0x0394, 0x0380, 0x033e, 0x0312, 0x0329, 0x035d,
+ 0x03a8, 0x03c3, 0x0370, 0x02d9, 0x01e9, 0x00c5,
+ 0x0027, 0x003f, 0x00df, 0x01e3, 0x02ad, 0x02ad,
+ 0x0231, 0x01a9, 0x012a, 0x00b4, 0x0029, 0xff6c,
+ 0xfe9c, 0xfdca, 0xfce1, 0xfc26, 0xfc01, 0xfc6e,
+ 0xfd2d, 0xfdfe, 0xfe98, 0xfeef, 0xff2c, 0xff68,
+ 0xff97, 0xff80, 0xff04, 0xfe53, 0xfdaa, 0xfd2e,
+ 0xfcf3, 0xfcdb, 0xfcb1, 0xfc5d, 0xfbff, 0xfba7,
+ 0xfb17, 0xfa56, 0xf9d0, 0xf98c, 0xf95c, 0xf958,
+ 0xf975, 0xf9b3, 0xfa1f, 0xfa46, 0xfa05, 0xf9db,
+ 0xf9e8, 0xfa21, 0xfaaf, 0xfb3d, 0xfb66, 0xfb42,
+ 0xfade, 0xfa61, 0xfa1f, 0xfa2d, 0xfab6, 0xfbcd,
+ 0xfcd2, 0xfd40, 0xfd60, 0xfd7b, 0xfd9f, 0xfdf2,
+ 0xfe67, 0xfec6, 0xff1f, 0xff97, 0x002a, 0x00f5,
+ 0x021b, 0x0372, 0x04cd, 0x05fc, 0x06b9, 0x070f,
+ 0x0739, 0x073b, 0x071f, 0x06f1, 0x068d, 0x05fc,
+ 0x0577, 0x04fa, 0x0478, 0x040f, 0x03e9, 0x03f1,
+ 0x03d3, 0x0369, 0x02de, 0x024b, 0x01de, 0x01dc,
+ 0x0217, 0x022f, 0x0224, 0x0215, 0x01ef, 0x019f,
+ 0x0141, 0x00e7, 0x008e, 0x0062, 0x008d, 0x00b8,
+ 0x008c, 0x002b, 0xffc5, 0xff86, 0xffa4, 0x001e,
+ 0x00d5, 0x0195, 0x022b, 0x028c, 0x02b0, 0x0291,
+ 0x024f, 0x01e6, 0x0157, 0x00eb, 0x00bb, 0x0097,
+ 0x007a, 0x0069, 0x005c, 0x0071, 0x00c1, 0x011c,
+ 0x0167, 0x01b9, 0x0212, 0x027c, 0x02f9, 0x033c,
+ 0x0346, 0x0371, 0x037e, 0x032e, 0x02f8, 0x0310,
+ 0x034d, 0x039f, 0x03b5, 0x037b, 0x0350, 0x0328,
+ 0x02e4, 0x02bf, 0x02aa, 0x0281, 0x025a, 0x0200,
+ 0x015a, 0x00aa, 0xfff3, 0xff24, 0xfe7b, 0xfe06,
+ 0xfdac, 0xfd6b, 0xfcf7, 0xfbff, 0xfab4, 0xf94a,
+ 0xf7f2, 0xf72d, 0xf6fb, 0xf6ea, 0xf6ee, 0xf6f8,
+ 0xf6ed, 0xf704, 0xf715, 0xf6ef, 0xf6e7, 0xf718,
+ 0xf782, 0xf843, 0xf8f9, 0xf98c, 0xfa7d, 0xfbdc,
+ 0xfd75, 0xfefd, 0xfff7, 0x008d, 0x013b, 0x01e2,
+ 0x0264, 0x02dc, 0x0345, 0x03a3, 0x03c9, 0x0391,
+ 0x0340, 0x032b, 0x0385, 0x0419, 0x0442, 0x03e0,
+ 0x035d, 0x02d4, 0x0258, 0x022a, 0x0235, 0x0238,
+ 0x0241, 0x026e, 0x02a2, 0x02b9, 0x02c3, 0x02c8,
+ 0x02c8, 0x02db, 0x030a, 0x033c, 0x035a, 0x0364,
+ 0x0344, 0x02f1, 0x02b3, 0x02d5, 0x032c, 0x036f,
+ 0x038a, 0x0381, 0x038a, 0x03ba, 0x03d4, 0x03d4,
+ 0x03eb, 0x043f, 0x04e9, 0x058d, 0x05b4, 0x0594,
+ 0x0586, 0x05bb, 0x0648, 0x06cf, 0x0712, 0x074f,
+ 0x07a1, 0x0807, 0x0884, 0x08fe, 0x097b, 0x09d8,
+ 0x09ba, 0x090a, 0x0804, 0x0729, 0x06c7, 0x0663,
+ 0x059d, 0x049c, 0x036f, 0x0240, 0x0142, 0x0050,
+ 0xff6b, 0xfe90, 0xfd85, 0xfc60, 0xfb4d, 0xfa42,
+ 0xf961, 0xf89e, 0xf7cb, 0xf729, 0xf6cc, 0xf649,
+ 0xf58e, 0xf4f0, 0xf46e, 0xf3df, 0xf36d, 0xf333,
+ 0xf316, 0xf316, 0xf316, 0xf300, 0xf302, 0xf2f8,
+ 0xf28e, 0xf1fa, 0xf1b3, 0xf210, 0xf30e, 0xf421,
+ 0xf4e3, 0xf568, 0xf5d1, 0xf636, 0xf686, 0xf6ad,
+ 0xf6f8, 0xf781, 0xf7f9, 0xf84b, 0xf8a2, 0xf940,
+ 0xfa3e, 0xfb2f, 0xfb9c, 0xfb86, 0xfb4e, 0xfb78,
+ 0xfc27, 0xfd0c, 0xfdef, 0xfeae, 0xff3b, 0xffbe,
+ 0x0028, 0x005e, 0x0097, 0x00f2, 0x0132, 0x014b,
+ 0x0172, 0x01b3, 0x0200, 0x026e, 0x02fd, 0x0390,
+ 0x0429, 0x04b3, 0x0507, 0x053d, 0x0563, 0x05a3,
+ 0x0631, 0x06a4, 0x069f, 0x0651, 0x05e0, 0x05a6,
+ 0x05d7, 0x05cb, 0x0541, 0x04c8, 0x04a8, 0x050c,
+ 0x05f1, 0x06c5, 0x074f, 0x07c2, 0x0816, 0x081e,
+ 0x07d1, 0x077f, 0x07a0, 0x080e, 0x0856, 0x086a,
+ 0x0871, 0x08a7, 0x0916, 0x0933, 0x0885, 0x0758,
+ 0x0641, 0x057a, 0x04e6, 0x045b, 0x03c6, 0x0359,
+ 0x034d, 0x0378, 0x03a5, 0x03c9, 0x03d0, 0x03b2,
+ 0x0360, 0x02cd, 0x023a, 0x01bd, 0x0129, 0x00a4,
+ 0x0045, 0x0000, 0x0003, 0x002d, 0x0028, 0x0005,
+ 0xffd2, 0xff81, 0xff41, 0xff07, 0xfea3, 0xfe2a,
+ 0xfdc5, 0xfd7e, 0xfd2e, 0xfc9b, 0xfbe1, 0xfb6f,
+ 0xfb9b, 0xfc72, 0xfd83, 0xfe35, 0xfe76, 0xfe9d,
+ 0xfeb1, 0xfe6a, 0xfde0, 0xfd7e, 0xfd65, 0xfd6b,
+ 0xfd61, 0xfd4b, 0xfd7a, 0xfe0e, 0xfea9, 0xfedc,
+ 0xfe64, 0xfd6e, 0xfc8c, 0xfbfd, 0xfbb6, 0xfbaf,
+ 0xfba5, 0xfb74, 0xfb50, 0xfb48, 0xfb5e, 0xfba0,
+ 0xfbf3, 0xfc1f, 0xfbef, 0xfb79, 0xfb19, 0xfae9,
+ 0xfac0, 0xfa96, 0xfa7f, 0xfab5, 0xfb61, 0xfc56,
+ 0xfd59, 0xfe4f, 0xff27, 0xffd9, 0x003b, 0x004a,
+ 0x0065, 0x00a6, 0x00e8, 0x011f, 0x0120, 0x00db,
+ 0x0091, 0x0054, 0x0039, 0x0069, 0x00ae, 0x00c1,
+ 0x00c6, 0x00e5, 0x00ff, 0x0101, 0x0127, 0x0190,
+ 0x01e0, 0x01d6, 0x01bc, 0x01dc, 0x0241, 0x02d2,
+ 0x0336, 0x0301, 0x0235, 0x013c, 0x0073, 0xfff1,
+ 0xff96, 0xff49, 0xff16, 0xfefa, 0xfefe, 0xff28,
+ 0xff3f, 0xff4a, 0xffa8, 0x002f, 0x0056, 0x001a,
+ 0xffd2, 0xffc9, 0x000d, 0x0054, 0x0094, 0x0109,
+ 0x018f, 0x020d, 0x029e, 0x0313, 0x0350, 0x0344,
+ 0x029c, 0x0190, 0x00d7, 0x00b2, 0x0101, 0x017a,
+ 0x01c2, 0x01dd, 0x01fe, 0x022a, 0x0265, 0x02b3,
+ 0x0311, 0x0385, 0x0418, 0x04bb, 0x0533, 0x0562,
+ 0x0593, 0x05f2, 0x065a, 0x06b6, 0x06e8, 0x06de,
+ 0x06dc, 0x06f1, 0x06d6, 0x0674, 0x05ce, 0x0500,
+ 0x0465, 0x0404, 0x0383, 0x02da, 0x0222, 0x0145,
+ 0x0042, 0xff1d, 0xfde4, 0xfccf, 0xfbde, 0xfad9,
+ 0xf9ad, 0xf87e, 0xf784, 0xf6cf, 0xf636, 0xf5b7,
+ 0xf576, 0xf574, 0xf5b6, 0xf61f, 0xf670, 0xf6d1,
+ 0xf76d, 0xf7e3, 0xf7fe, 0xf7f0, 0xf7de, 0xf81d,
+ 0xf8e3, 0xf9d2, 0xfaa1, 0xfb56, 0xfbd5, 0xfc24,
+ 0xfc60, 0xfc7b, 0xfcae, 0xfd27, 0xfdad, 0xfe41,
+ 0xff09, 0xffc5, 0x0052, 0x00b6, 0x00d1, 0x00ea,
+ 0x0172, 0x023b, 0x02f9, 0x03a8, 0x0423, 0x0437,
+ 0x03e6, 0x0357, 0x02c6, 0x025c, 0x0240, 0x0288,
+ 0x02ed, 0x032c, 0x0361, 0x037e, 0x0370, 0x0377,
+ 0x039c, 0x0395, 0x0347, 0x02b3, 0x021c, 0x01fc,
+ 0x0263, 0x0309, 0x03b9, 0x044f, 0x04da, 0x0592,
+ 0x0667, 0x0706, 0x073e, 0x0716, 0x06b9, 0x064d,
+ 0x0605, 0x0622, 0x0670, 0x06ae, 0x0711, 0x078f,
+ 0x07de, 0x0830, 0x0893, 0x08d1, 0x0915, 0x094c,
+ 0x0948, 0x0976, 0x09f0, 0x0a4e, 0x0a7f, 0x0a5b,
+ 0x09b0, 0x08e1, 0x082b, 0x0779, 0x06e0, 0x0639,
+ 0x055e, 0x0460, 0x031d, 0x0199, 0x001c, 0xfecc,
+ 0xfdda, 0xfd37, 0xfc66, 0xfb6f, 0xfa97, 0xf9b7,
+ 0xf8cb, 0xf7d8, 0xf699, 0xf542, 0xf426, 0xf301,
+ 0xf1db, 0xf143, 0xf136, 0xf14a, 0xf160, 0xf17d,
+ 0xf1a7, 0xf205, 0xf293, 0xf306, 0xf33d, 0xf348,
+ 0xf30e, 0xf2a0, 0xf267, 0xf283, 0xf2b4, 0xf2d5,
+ 0xf2cb, 0xf2a9, 0xf2cf, 0xf352, 0xf3d8, 0xf428,
+ 0xf446, 0xf47a, 0xf536, 0xf687, 0xf82b, 0xf9f4,
+ 0xfb8b, 0xfca2, 0xfd3e, 0xfd8e, 0xfdfa, 0xfee6,
+ 0x0021, 0x0136, 0x01ca, 0x01df, 0x01f3, 0x0258,
+ 0x02e1, 0x039d, 0x0497, 0x0589, 0x0675, 0x0763,
+ 0x081f, 0x08b2, 0x091d, 0x091d, 0x08ad, 0x07f7,
+ 0x072e, 0x06af, 0x06ac, 0x070e, 0x0785, 0x07ba,
+ 0x07b3, 0x07b0, 0x07d2, 0x0830, 0x08a1, 0x08d6,
+ 0x08d7, 0x08ba, 0x087d, 0x0854, 0x0878, 0x08c1,
+ 0x08d8, 0x0893, 0x0811, 0x0784, 0x070a, 0x06ae,
+ 0x062b, 0x052d, 0x0416, 0x037a, 0x0359, 0x03a4,
+ 0x0459, 0x0510, 0x057f, 0x05b3, 0x058e, 0x0513,
+ 0x04a6, 0x047b, 0x0467, 0x0421, 0x0371, 0x027f,
+ 0x01a6, 0x0113, 0x00d1, 0x00d9, 0x00fe, 0x010e,
+ 0x00e9, 0x00a7, 0x0085, 0x0074, 0x0038, 0xff9e,
+ 0xfe5b, 0xfc9e, 0xfb39, 0xfa97, 0xfa89, 0xfae7,
+ 0xfb79, 0xfbe8, 0xfc1b, 0xfc3c, 0xfc6d, 0xfcac,
+ 0xfce9, 0xfd02, 0xfcd2, 0xfc7c, 0xfc44, 0xfc40,
+ 0xfc79, 0xfccc, 0xfce6, 0xfcd6, 0xfcd6, 0xfcc9,
+ 0xfcbe, 0xfccd, 0xfc92, 0xfbd8, 0xfb14, 0xfabc,
+ 0xfafc, 0xfbc7, 0xfcbc, 0xfd7e, 0xfe13, 0xfea0,
+ 0xff11, 0xff4f, 0xff70, 0xff86, 0xff86, 0xff5e,
+ 0xfeeb, 0xfe22, 0xfd4b, 0xfca9, 0xfc26, 0xfbbf,
+ 0xfbc2, 0xfc59, 0xfd42, 0xfe39, 0xff18, 0xffc0,
+ 0x0039, 0x008c, 0x007a, 0xffee, 0xff4b, 0xff04,
+ 0xff41, 0xffe3, 0x0086, 0x00d4, 0x00db, 0x00d2,
+ 0x00d5, 0x00f7, 0x012e, 0x0144, 0x0124, 0x00e6,
+ 0x00af, 0x0095, 0x00a5, 0x00e7, 0x013f, 0x017a,
+ 0x0181, 0x014c, 0x00d2, 0x0027, 0xff55, 0xfe5b,
+ 0xfd8c, 0xfd42, 0xfd7e, 0xfe0e, 0xfe9b, 0xfed1,
+ 0xfed9, 0xfefd, 0xff31, 0xff75, 0xffc9, 0xffe9,
+ 0xffca, 0xff87, 0xff0f, 0xfe88, 0xfe4a, 0xfe4d,
+ 0xfe55, 0xfe74, 0xfedc, 0xff86, 0x0052, 0x0125,
+ 0x01c0, 0x01f2, 0x01da, 0x0169, 0x006e, 0xff3b,
+ 0xfe47, 0xfdb7, 0xfda8, 0xfdfd, 0xfe66, 0xfeea,
+ 0xff85, 0xffe9, 0x000c, 0x001e, 0x004e, 0x00d7,
+ 0x018f, 0x021b, 0x0286, 0x02e7, 0x0349, 0x03d9,
+ 0x047e, 0x0505, 0x0570, 0x05a1, 0x0574, 0x04f9,
+ 0x044a, 0x03a8, 0x0364, 0x037c, 0x03da, 0x0484,
+ 0x0544, 0x05be, 0x05c3, 0x0570, 0x0504, 0x048c,
+ 0x0403, 0x0383, 0x02dd, 0x01cb, 0x0064, 0xfecf,
+ 0xfd24, 0xfbbb, 0xfaca, 0xfa3a, 0xf9f2, 0xf9eb,
+ 0xfa38, 0xfac6, 0xfb1e, 0xfafa, 0xfa86, 0xf9d6,
+ 0xf904, 0xf873, 0xf852, 0xf88d, 0xf915, 0xf9ad,
+ 0xfa19, 0xfa4c, 0xfa4a, 0xfa3b, 0xfa52, 0xfa82,
+ 0xfab4, 0xfafd, 0xfb68, 0xfbf7, 0xfcb7, 0xfd88,
+ 0xfe2d, 0xfe9e, 0xff06, 0xff7d, 0xffec, 0x0010,
+ 0xffa3, 0xfec5, 0xfe18, 0xfdf1, 0xfe30, 0xfec6,
+ 0xff9e, 0x0083, 0x0161, 0x020d, 0x024d, 0x0256,
+ 0x0286, 0x02cb, 0x02ed, 0x02eb, 0x02d5, 0x02b4,
+ 0x0286, 0x0234, 0x01c1, 0x0186, 0x01c2, 0x0249,
+ 0x02e9, 0x03aa, 0x0495, 0x058d, 0x065b, 0x06ac,
+ 0x0635, 0x0518, 0x03fd, 0x0373, 0x0394, 0x0437,
+ 0x04ff, 0x0594, 0x05ef, 0x0622, 0x062e, 0x0627,
+ 0x0632, 0x066c, 0x06de, 0x0764, 0x07e6, 0x0878,
+ 0x0921, 0x09d6, 0x0a70, 0x0aaa, 0x0a65, 0x09ed,
+ 0x09a8, 0x0978, 0x08cd, 0x0781, 0x05ec, 0x0467,
+ 0x0363, 0x0317, 0x0313, 0x0302, 0x02e7, 0x0298,
+ 0x020e, 0x018e, 0x011a, 0x00a5, 0x0028, 0xff58,
+ 0xfe25, 0xfccb, 0xfb4c, 0xf9c7, 0xf88b, 0xf78b,
+ 0xf6ad, 0xf616, 0xf5de, 0xf61a, 0xf6b5, 0xf757,
+ 0xf7c3, 0xf7b6, 0xf6e5, 0xf585, 0xf41a, 0xf319,
+ 0xf2d6, 0xf330, 0xf3b9, 0xf42c, 0xf42f, 0xf3ab,
+ 0xf2ff, 0xf258, 0xf1c4, 0xf180, 0xf188, 0xf1e0,
+ 0xf2ac, 0xf3b0, 0xf4b5, 0xf5b9, 0xf69f, 0xf77a,
+ 0xf851, 0xf8ec, 0xf96c, 0xf9df, 0xf9ef, 0xf9b5,
+ 0xf967, 0xf922, 0xf977, 0xfa95, 0xfc02, 0xfd88,
+ 0xfeea, 0xffd2, 0x009e, 0x01a5, 0x02a6, 0x0386,
+ 0x0428, 0x044f, 0x0429, 0x03e4, 0x036a, 0x02ef,
+ 0x02bc, 0x02c8, 0x02fd, 0x0351, 0x03be, 0x0459,
+ 0x0526, 0x05f6, 0x0680, 0x067a, 0x05d7, 0x04f4,
+ 0x045d, 0x0458, 0x04a5, 0x050c, 0x05ad, 0x0653,
+ 0x068e, 0x0676, 0x061f, 0x056f, 0x04c2, 0x044e,
+ 0x03e2, 0x03c9, 0x0445, 0x050e, 0x05d9, 0x0658,
+ 0x0662, 0x0659, 0x066c, 0x0667, 0x0664, 0x065d,
+ 0x05f0, 0x051b, 0x0444, 0x03b3, 0x0379, 0x03b2,
+ 0x0479, 0x057c, 0x0642, 0x06c0, 0x0713, 0x073c,
+ 0x074f, 0x0733, 0x06b0, 0x05c6, 0x04a5, 0x0397,
+ 0x02d1, 0x0238, 0x01af, 0x0141, 0x00ec, 0x00be,
+ 0x00c1, 0x00d5, 0x00e5, 0x00f2, 0x00d0, 0x005c,
+ 0xff8c, 0xfe78, 0xfda9, 0xfd81, 0xfdb6, 0xfdff,
+ 0xfe53, 0xfe6b, 0xfe35, 0xfdd9, 0xfd3b, 0xfc67,
+ 0xfb92, 0xfab3, 0xfa06, 0xf9e4, 0xfa35, 0xfacb,
+ 0xfb6e, 0xfbc5, 0xfbe0, 0xfbf2, 0xfbf7, 0xfc14,
+ 0xfc49, 0xfc39, 0xfbb2, 0xfac0, 0xf9b8, 0xf90a,
+ 0xf8c1, 0xf8d6, 0xf968, 0xfa3f, 0xfb05, 0xfbb8,
+ 0xfc54, 0xfcda, 0xfd70, 0xfe00, 0xfe3b, 0xfe0c,
+ 0xfdad, 0xfd64, 0xfd62, 0xfdc0, 0xfe66, 0xff11,
+ 0xff98, 0xfff7, 0x002b, 0x003b, 0x0043, 0x0062,
+ 0x007a, 0x0055, 0xffee, 0xff6a, 0xff1d, 0xff45,
+ 0xffa9, 0xfff9, 0x0038, 0x007f, 0x00d0, 0x011f,
+ 0x0147, 0x0137, 0x00e7, 0x0064, 0x0003, 0xffeb,
+ 0x0002, 0x0050, 0x00ba, 0x0107, 0x0131, 0x0129,
+ 0x0109, 0x0114, 0x013a, 0x0148, 0x010f, 0x006a,
+ 0xffb9, 0xff5f, 0xff3f, 0xff7c, 0x005b, 0x019a,
+ 0x02f4, 0x0442, 0x053e, 0x05e9, 0x0655, 0x065b,
+ 0x060a, 0x0580, 0x04b4, 0x03dc, 0x032c, 0x02b6,
+ 0x029b, 0x02b9, 0x02d5, 0x02ec, 0x02cb, 0x0248,
+ 0x01ba, 0x014f, 0x00fc, 0x00df, 0x00d0, 0x00b2,
+ 0x00f7, 0x01ae, 0x0259, 0x02b0, 0x02b0, 0x0291,
+ 0x0299, 0x02b0, 0x0298, 0x0231, 0x01a2, 0x0164,
+ 0x0195, 0x0210, 0x02df, 0x03a3, 0x0415, 0x048d,
+ 0x04d3, 0x0489, 0x0443, 0x042e, 0x03cc, 0x02ec,
+ 0x0158, 0xff30, 0xfd32, 0xfbbf, 0xfad6, 0xfa82,
+ 0xfa87, 0xfac1, 0xfb1f, 0xfb65, 0xfb7f, 0xfb52,
+ 0xfac7, 0xfa3a, 0xf9cb, 0xf93e, 0xf8ac, 0xf83a,
+ 0xf817, 0xf899, 0xf996, 0xfa77, 0xfafd, 0xfb4e,
+ 0xfb9a, 0xfbd6, 0xfbcd, 0xfba0, 0xfb97, 0xfbb3,
+ 0xfbe5, 0xfc4a, 0xfd02, 0xfdfe, 0xfee0, 0xff5c,
+ 0xff90, 0xffac, 0xffd0, 0x001f, 0x006e, 0x0081,
+ 0x008e, 0x00be, 0x0101, 0x0188, 0x025a, 0x0321,
+ 0x03c0, 0x042a, 0x0435, 0x0416, 0x0421, 0x0455,
+ 0x0483, 0x046a, 0x03e4, 0x0318, 0x0229, 0x0142,
+ 0x00d7, 0x0139, 0x023e, 0x0376, 0x048e, 0x0564,
+ 0x05ea, 0x0625, 0x0629, 0x05fa, 0x05ba, 0x056e,
+ 0x04dc, 0x041b, 0x038b, 0x035a, 0x039b, 0x040f,
+ 0x0457, 0x048f, 0x04bd, 0x047d, 0x03f4, 0x03b3,
+ 0x03ea, 0x0473, 0x0520, 0x05ef, 0x0705, 0x080f,
+ 0x0873, 0x082e, 0x07b7, 0x074c, 0x06f6, 0x0693,
+ 0x05c8, 0x049f, 0x03bb, 0x0362, 0x0351, 0x0367,
+ 0x0393, 0x03a4, 0x036e, 0x02d0, 0x01f0, 0x0119,
+ 0x0054, 0xffa0, 0xfed9, 0xfdaa, 0xfc2b, 0xfab4,
+ 0xf949, 0xf809, 0xf736, 0xf6e6, 0xf70d, 0xf767,
+ 0xf7c2, 0xf82a, 0xf858, 0xf81e, 0xf7d6, 0xf7a5,
+ 0xf77d, 0xf75d, 0xf701, 0xf674, 0xf647, 0xf685,
+ 0xf6a4, 0xf66c, 0xf618, 0xf5e7, 0xf5c4, 0xf54c,
+ 0xf455, 0xf352, 0xf2d1, 0xf2d8, 0xf33f, 0xf426,
+ 0xf56e, 0xf68e, 0xf739, 0xf783, 0xf7aa, 0xf7fc,
+ 0xf894, 0xf931, 0xf990, 0xf9c0, 0xfa14, 0xfac1,
+ 0xfbc4, 0xfd15, 0xfe8e, 0xffcb, 0x0095, 0x012a,
+ 0x01be, 0x0244, 0x02c1, 0x0337, 0x0394, 0x03f3,
+ 0x044b, 0x044b, 0x03e4, 0x0367, 0x0347, 0x03c1,
+ 0x0492, 0x0566, 0x062f, 0x06de, 0x0762, 0x0796,
+ 0x0755, 0x0709, 0x0718, 0x0738, 0x0733, 0x0731,
+ 0x074b, 0x078d, 0x07d2, 0x07e1, 0x07c4, 0x0788,
+ 0x0717, 0x0666, 0x0583, 0x04c3, 0x045b, 0x0417,
+ 0x03f7, 0x0425, 0x0456, 0x0426, 0x0389, 0x02c6,
+ 0x0242, 0x020d, 0x01da, 0x016b, 0x00c3, 0x0036,
+ 0x000a, 0x0037, 0x00c1, 0x019e, 0x027b, 0x0320,
+ 0x0390, 0x03d1, 0x03f4, 0x03f8, 0x03a0, 0x02dd,
+ 0x020c, 0x0181, 0x0126, 0x00b7, 0x0013, 0xff36,
+ 0xfe64, 0xfe0f, 0xfe30, 0xfe79, 0xfeed, 0xff91,
+ 0x0024, 0x0071, 0x006f, 0x0037, 0xffff, 0xffd6,
+ 0xff9a, 0xff61, 0xff60, 0xff86, 0xffa5, 0xffa4,
+ 0xff65, 0xfeee, 0xfe54, 0xfd90, 0xfcdb, 0xfc6f,
+ 0xfc36, 0xfc2c, 0xfc5c, 0xfc98, 0xfca5, 0xfc4f,
+ 0xfbba, 0xfb82, 0xfbb4, 0xfbd6, 0xfbcd, 0xfb89,
+ 0xfb01, 0xfa9c, 0xfa7a, 0xfa4f, 0xfa20, 0xfa28,
+ 0xfa61, 0xfa9d, 0xfacd, 0xfb20, 0xfb93, 0xfbd6,
+ 0xfbd2, 0xfb9e, 0xfb53, 0xfb3c, 0xfb9d, 0xfc5a,
+ 0xfcfe, 0xfd20, 0xfcf0, 0xfcec, 0xfd38, 0xfdc5,
+ 0xfe89, 0xff4f, 0xfff1, 0x007f, 0x00f6, 0x0144,
+ 0x015d, 0x013b, 0x0107, 0x0101, 0x013f, 0x01ab,
+ 0x020a, 0x022d, 0x022f, 0x0213, 0x01a5, 0x0108,
+ 0x00a1, 0x0084, 0x00ab, 0x00ff, 0x012b, 0x00f9,
+ 0x0075, 0xffbb, 0xff18, 0xfed0, 0xfeac, 0xfe78,
+ 0xfe43, 0xfe13, 0xfdf4, 0xfdf1, 0xfdf5, 0xfe16,
+ 0xfe83, 0xff48, 0x0031, 0x00eb, 0x0178, 0x021d,
+ 0x02af, 0x02df, 0x02c3, 0x0279, 0x020a, 0x01b9,
+ 0x01b0, 0x01c0, 0x01a9, 0x0166, 0x0134, 0x0125,
+ 0x010b, 0x00d9, 0x00bc, 0x00e5, 0x0158, 0x01de,
+ 0x022f, 0x022f, 0x01f5, 0x01a2, 0x0140, 0x00ff,
+ 0x0132, 0x01c7, 0x0273, 0x032c, 0x03c0, 0x03e1,
+ 0x03ae, 0x0364, 0x032a, 0x034b, 0x03bc, 0x0400,
+ 0x03e3, 0x0381, 0x02f9, 0x02aa, 0x02c8, 0x0302,
+ 0x032c, 0x0340, 0x030e, 0x02c6, 0x028a, 0x01e7,
+ 0x00d6, 0xffc1, 0xfeae, 0xfdd9, 0xfda5, 0xfdc0,
+ 0xfdbd, 0xfd92, 0xfd0f, 0xfc2b, 0xfb30, 0xfa35,
+ 0xf94b, 0xf89c, 0xf849, 0xf859, 0xf88d, 0xf89b,
+ 0xf88d, 0xf879, 0xf85e, 0xf859, 0xf89d, 0xf934,
+ 0xf9fa, 0xfaba, 0xfb5e, 0xfbe8, 0xfc4b, 0xfc50,
+ 0xfbe7, 0xfb7f, 0xfb87, 0xfbf6, 0xfca2, 0xfd7d,
+ 0xfe64, 0xff16, 0xff70, 0xff81, 0xff82, 0xffcf,
+ 0x0099, 0x0176, 0x01e6, 0x01d6, 0x0155, 0x00b6,
+ 0x0075, 0x006e, 0x0059, 0x0064, 0x00a7, 0x0113,
+ 0x019a, 0x01fe, 0x0233, 0x024a, 0x025b, 0x02c6,
+ 0x0384, 0x041d, 0x0495, 0x04e9, 0x04e6, 0x04d0,
+ 0x04d9, 0x04e3, 0x04e4, 0x04b6, 0x046c, 0x0457,
+ 0x0461, 0x046c, 0x0474, 0x0429, 0x0380, 0x02ec,
+ 0x02da, 0x0380, 0x048d, 0x0571, 0x0628, 0x06c8,
+ 0x0724, 0x073f, 0x0725, 0x06e1, 0x06a4, 0x067c,
+ 0x067d, 0x06e9, 0x07a2, 0x0844, 0x0874, 0x07fb,
+ 0x0743, 0x06e7, 0x06d5, 0x06b9, 0x065f, 0x058f,
+ 0x048a, 0x03bd, 0x030e, 0x025d, 0x01a5, 0x00d4,
+ 0x0037, 0xffe5, 0xff76, 0xfedf, 0xfe0c, 0xfcd5,
+ 0xfbc4, 0xfb3d, 0xfafe, 0xfaf5, 0xfafd, 0xfac9,
+ 0xfa72, 0xfa1f, 0xf9e7, 0xf9d9, 0xf997, 0xf8f2,
+ 0xf840, 0xf7a8, 0xf731, 0xf6e3, 0xf680, 0xf5c9,
+ 0xf4da, 0xf42b, 0xf424, 0xf493, 0xf51f, 0xf5a5,
+ 0xf603, 0xf651, 0xf6ac, 0xf6be, 0xf660, 0xf5e9,
+ 0xf59a, 0xf589, 0xf5d2, 0xf680, 0xf779, 0xf86e,
+ 0xf90c, 0xf931, 0xf903, 0xf901, 0xf97d, 0xfa44,
+ 0xfaf6, 0xfb55, 0xfb71, 0xfb9a, 0xfc0a, 0xfcd0,
+ 0xfdbb, 0xfe7d, 0xff21, 0xffc4, 0x0041, 0x00ae,
+ 0x012c, 0x019b, 0x01f9, 0x025a, 0x02b3, 0x0315,
+ 0x037a, 0x03aa, 0x03a3, 0x039c, 0x03d3, 0x0455,
+ 0x04d1, 0x04fa, 0x04dd, 0x04af, 0x04b3, 0x04f6,
+ 0x0521, 0x04f4, 0x0497, 0x0449, 0x0440, 0x04a2,
+ 0x0546, 0x05d6, 0x061a, 0x0626, 0x0636, 0x063b,
+ 0x05f2, 0x055b, 0x046e, 0x0343, 0x0292, 0x02c2,
+ 0x0366, 0x040d, 0x0465, 0x0459, 0x0448, 0x0467,
+ 0x04be, 0x054e, 0x05b7, 0x05bc, 0x0583, 0x0519,
+ 0x04bc, 0x04a7, 0x0494, 0x0461, 0x042f, 0x0406,
+ 0x03f2, 0x03d7, 0x03a4, 0x038d, 0x0371, 0x0321,
+ 0x02cc, 0x0288, 0x0261, 0x0252, 0x022c, 0x0223,
+ 0x026c, 0x02c9, 0x0309, 0x02fa, 0x0279, 0x01f1,
+ 0x01b0, 0x0170, 0x0100, 0x007f, 0x0014, 0xffc8,
+ 0xff95, 0xff80, 0xff72, 0xff73, 0xffa7, 0xffe2,
+ 0xffec, 0xffdc, 0xffb6, 0xff69, 0xfef7, 0xfe56,
+ 0xfd8c, 0xfcee, 0xfcd1, 0xfcf7, 0xfce7, 0xfc8a,
+ 0xfc01, 0xfb71, 0xfb23, 0xfb11, 0xfaf1, 0xfa99,
+ 0xf9e4, 0xf8f1, 0xf853, 0xf83a, 0xf862, 0xf89b,
+ 0xf8ba, 0xf8be, 0xf8e2, 0xf950, 0xfa02, 0xfab1,
+ 0xfb1b, 0xfb59, 0xfb87, 0xfbc2, 0xfc1c, 0xfc62,
+ 0xfc85, 0xfca6, 0xfcd3, 0xfd1b, 0xfd6d, 0xfd90,
+ 0xfd73, 0xfd2d, 0xfcfc, 0xfd08, 0xfd24, 0xfd46,
+ 0xfd86, 0xfdc5, 0xfe17, 0xfe98, 0xff1e, 0xffa0,
+ 0x0000, 0x000e, 0xfff4, 0xffda, 0xffbe, 0xffb9,
+ 0xffb9, 0xff89, 0xff32, 0xfeff, 0xff1f, 0xff56,
+ 0xff52, 0xff22, 0xfeeb, 0xfed6, 0xff12, 0xff9b,
+ 0x004a, 0x00e5, 0x0134, 0x0175, 0x01e6, 0x0258,
+ 0x02b2, 0x0307, 0x0356, 0x03a4, 0x0400, 0x0487,
+ 0x0537, 0x05bf, 0x05d5, 0x0571, 0x04c5, 0x042b,
+ 0x03d8, 0x03be, 0x03c0, 0x03ce, 0x03f9, 0x0432,
+ 0x044f, 0x045b, 0x045f, 0x0454, 0x0442, 0x0405,
+ 0x039a, 0x0340, 0x02e8, 0x027c, 0x0226, 0x01fa,
+ 0x0224, 0x02b2, 0x034e, 0x03d4, 0x0440, 0x0460,
+ 0x0459, 0x048b, 0x04f8, 0x054d, 0x053f, 0x04e1,
+ 0x046a, 0x03f0, 0x0396, 0x0344, 0x02b0, 0x01e5,
+ 0x0118, 0x0064, 0xffc5, 0xfef0, 0xfdce, 0xfca2,
+ 0xfbaa, 0xfb0e, 0xfab0, 0xfa25, 0xf95e, 0xf8ab,
+ 0xf854, 0xf888, 0xf904, 0xf951, 0xf946, 0xf8d9,
+ 0xf81a, 0xf755, 0xf6bb, 0xf665, 0xf65f, 0xf689,
+ 0xf6c2, 0xf701, 0xf74d, 0xf79b, 0xf7bd, 0xf7c3,
+ 0xf7dd, 0xf813, 0xf889, 0xf94f, 0xfa11, 0xfaa2,
+ 0xfb04, 0xfb43, 0xfbb9, 0xfc9c, 0xfda0, 0xfe80,
+ 0xff1e, 0xff82, 0xffee, 0x0080, 0x011a, 0x0196,
+ 0x01e1, 0x0221, 0x026f, 0x0298, 0x02b1, 0x0308,
+ 0x036d, 0x0394, 0x03a2, 0x03b0, 0x03b8, 0x03e5,
+ 0x0441, 0x04b3, 0x0547, 0x05f0, 0x066b, 0x069c,
+ 0x068d, 0x0665, 0x0678, 0x06cf, 0x0714, 0x073d,
+ 0x0762, 0x074d, 0x06fd, 0x06c5, 0x06a6, 0x0685,
+ 0x06a8, 0x071e, 0x078f, 0x07d5, 0x0801, 0x0805,
+ 0x07d7, 0x0789, 0x072f, 0x06f6, 0x0721, 0x07b1,
+ 0x0861, 0x08e1, 0x08f2, 0x0892, 0x082b, 0x0825,
+ 0x087c, 0x08df, 0x08ef, 0x0886, 0x07dd, 0x0758,
+ 0x072b, 0x0715, 0x06ac, 0x05ea, 0x04f4, 0x03d5,
+ 0x02c8, 0x01f6, 0x0122, 0x0025, 0xff16, 0xfe0b,
+ 0xfd32, 0xfc92, 0xfbf2, 0xfb2e, 0xfa58, 0xf9a6,
+ 0xf935, 0xf8d1, 0xf854, 0xf7ee, 0xf7d4, 0xf7f4,
+ 0xf80e, 0xf7ff, 0xf7c2, 0xf74f, 0xf6c9, 0xf64a,
+ 0xf5a4, 0xf4d9, 0xf429, 0xf399, 0xf32e, 0xf306,
+ 0xf30a, 0xf307, 0xf2cd, 0xf257, 0xf1f1, 0xf1f4,
+ 0xf248, 0xf2a4, 0xf30e, 0xf380, 0xf3ad, 0xf39f,
+ 0xf3b1, 0xf411, 0xf4c8, 0xf5ac, 0xf678, 0xf726,
+ 0xf7c9, 0xf888, 0xf990, 0xfaa9, 0xfbc8, 0xfd08,
+ 0xfe0d, 0xfed5, 0xffc8, 0x00b2, 0x016b, 0x01e7,
+ 0x01ce, 0x017b, 0x018f, 0x01f5, 0x0298, 0x0357,
+ 0x03d6, 0x0425, 0x045d, 0x0477, 0x04b6, 0x0521,
+ 0x0594, 0x0624, 0x06c5, 0x0758, 0x07c7, 0x0815,
+ 0x0872, 0x08b9, 0x08a6, 0x0868, 0x081e, 0x07e1,
+ 0x07d1, 0x07ab, 0x0758, 0x06fa, 0x0676, 0x05f0,
+ 0x058c, 0x0510, 0x0496, 0x043a, 0x03d8, 0x0399,
+ 0x0377, 0x031f, 0x02a6, 0x0268, 0x029a, 0x0315,
+ 0x036c, 0x0375, 0x0366, 0x0384, 0x03f3, 0x0461,
+ 0x0475, 0x044a, 0x0404, 0x03ba, 0x0375, 0x030f,
+ 0x0270, 0x0199, 0x00a0, 0xffe2, 0xff8c, 0xff80,
+ 0xffb2, 0xfffa, 0x0026, 0x004d, 0x006b, 0x0055,
+ 0x0027, 0x0019, 0x0040, 0x0081, 0x00cb, 0x0129,
+ 0x018b, 0x01d5, 0x0206, 0x0200, 0x0193, 0x00cd,
+ 0xfff2, 0xff37, 0xfea9, 0xfe44, 0xfdf0, 0xfda9,
+ 0xfda5, 0xfdf6, 0xfe5b, 0xfe9e, 0xfead, 0xfe94,
+ 0xfe6e, 0xfe30, 0xfdbe, 0xfd0e, 0xfc25, 0xfb4a,
+ 0xfabb, 0xfa5e, 0xfa36, 0xfa5f, 0xfabd, 0xfb2b,
+ 0xfb91, 0xfbe2, 0xfc13, 0xfc08, 0xfbd9, 0xfbbf,
+ 0xfbb5, 0xfbb5, 0xfbb5, 0xfba7, 0xfbab, 0xfbb3,
+ 0xfbb1, 0xfc01, 0xfcad, 0xfd5b, 0xfdff, 0xfe85
+};
+
+int left_channel_length = sizeof(left_channel)/sizeof(left_channel[0]);
diff --git a/ecos/packages/hal/arm/edb7xxx/current/misc/long_audio_right.h b/ecos/packages/hal/arm/edb7xxx/current/misc/long_audio_right.h
new file mode 100755
index 0000000..decbf3b
--- /dev/null
+++ b/ecos/packages/hal/arm/edb7xxx/current/misc/long_audio_right.h
@@ -0,0 +1,56581 @@
+unsigned short right_channel[] = {
+ 0x003b, 0x000a, 0xffc7, 0xffca, 0x000a,
+ 0x0033, 0x0019, 0xfff9, 0x000f, 0x0049, 0x0064,
+ 0x0056, 0x0046, 0x0042, 0x002f, 0x0008, 0xfffc,
+ 0x0016, 0x0028, 0x0008, 0xffe2, 0xfffb, 0x003a,
+ 0x0040, 0xfff6, 0xffbe, 0xffe4, 0x0019, 0xffe4,
+ 0xff5e, 0xff33, 0xffad, 0x0040, 0x003d, 0xffbd,
+ 0xff77, 0xffbf, 0x0017, 0xfff8, 0xff88, 0xff63,
+ 0xffb7, 0x001a, 0x0035, 0x002f, 0x0056, 0x0096,
+ 0x009b, 0x005c, 0x0027, 0x002d, 0x003f, 0x001f,
+ 0xffd7, 0xff9d, 0xff91, 0xffb2, 0x0002, 0x0078,
+ 0x00c8, 0x0096, 0xfff8, 0xff88, 0xffca, 0x0085,
+ 0x0107, 0x00e8, 0x006e, 0x0014, 0x0001, 0x000c,
+ 0x0020, 0x004b, 0x0079, 0x0069, 0x0002, 0xff95,
+ 0xff88, 0xffe3, 0x0045, 0x0051, 0x0005, 0xffb4,
+ 0xffae, 0x000c, 0x009c, 0x00fe, 0x00ef, 0x0086,
+ 0x001c, 0xfff4, 0xfffc, 0xffff, 0xfff3, 0xfff4,
+ 0xfffe, 0xffeb, 0xffb8, 0xffa8, 0xffe9, 0x003f,
+ 0x003e, 0xffd6, 0xff72, 0xff79, 0xffdf, 0x0052,
+ 0x00a9, 0x00e7, 0x0105, 0x00e9, 0x00a3, 0x006b,
+ 0x0051, 0x0021, 0xffca, 0xff9c, 0xffe0, 0x004a,
+ 0x0044, 0xffbf, 0xff68, 0xffc7, 0x006c, 0x007c,
+ 0xffd4, 0xff35, 0xff3f, 0xffa8, 0xffd4, 0xffbc,
+ 0xffdd, 0x004a, 0x0078, 0x000c, 0xff79, 0xff62,
+ 0xffbc, 0xfff0, 0xffc2, 0xff98, 0xffcd, 0x001c,
+ 0x001f, 0xfff0, 0xfff7, 0x0038, 0x004d, 0x000d,
+ 0xffdd, 0x0001, 0x0027, 0xffda, 0xff4f, 0xff32,
+ 0xffb2, 0x0039, 0x0044, 0x000e, 0x0012, 0x0033,
+ 0xffe8, 0xff37, 0xfedf, 0xff5d, 0x0020, 0x003e,
+ 0xffa8, 0xff31, 0xff6f, 0xfffc, 0x0016, 0xffa3,
+ 0xff2a, 0xff0c, 0xff22, 0xff28, 0xff32, 0xff75,
+ 0xffee, 0x0068, 0x00c5, 0x00fb, 0x00ee, 0x0081,
+ 0xffea, 0xff98, 0xffc3, 0x001e, 0x0039, 0x0003,
+ 0xffcb, 0xffc0, 0xffc6, 0xffb8, 0xffa2, 0xff9f,
+ 0xff95, 0xff5f, 0xff16, 0xff11, 0xff84, 0x003f,
+ 0x00d5, 0x00ef, 0x0087, 0xfff0, 0xff9e, 0xffd6,
+ 0x0058, 0x008f, 0x0026, 0xff77, 0xff20, 0xff57,
+ 0xffbe, 0xfff0, 0xfff2, 0xffe7, 0xffb8, 0xff51,
+ 0xff10, 0xff87, 0x009e, 0x0168, 0x0118, 0x0005,
+ 0xff50, 0xff9c, 0x0077, 0x0116, 0x0130, 0x00f8,
+ 0x0097, 0x0018, 0xffb0, 0xffaa, 0xffef, 0x0007,
+ 0xffc9, 0xff9f, 0xfff7, 0x0092, 0x00dd, 0x00d2,
+ 0x00f2, 0x015d, 0x0177, 0x00d8, 0x0016, 0x0015,
+ 0x00af, 0x00d5, 0x0018, 0xff6d, 0xffdc, 0x00f6,
+ 0x0151, 0x0066, 0xff46, 0xff20, 0xffbf, 0x000a,
+ 0xffa4, 0xff45, 0xff8b, 0x0013, 0x0029, 0xffd2,
+ 0xffa6, 0xffdb, 0x0007, 0xffde, 0xff9f, 0xffa7,
+ 0xffe0, 0x0002, 0x0017, 0x0058, 0x00a8, 0x00ab,
+ 0x0062, 0x0046, 0x0094, 0x00e1, 0x00aa, 0x0025,
+ 0xfffa, 0x004d, 0x0091, 0x0067, 0x0037, 0x0094,
+ 0x0143, 0x017a, 0x00f8, 0x006d, 0x0085, 0x00fe,
+ 0x010b, 0x0074, 0xffda, 0xffdb, 0x004e, 0x009a,
+ 0x0081, 0x005b, 0x0080, 0x00d0, 0x00e0, 0x007d,
+ 0xffee, 0xffae, 0xfffc, 0x0093, 0x00e3, 0x0097,
+ 0xfffa, 0xffad, 0xfffa, 0x0084, 0x00cb, 0x00c0,
+ 0x00c0, 0x00f9, 0x012b, 0x010b, 0x00a8, 0x0047,
+ 0x0006, 0xffe8, 0x000a, 0x0086, 0x0109, 0x010a,
+ 0x0077, 0xfffe, 0x003d, 0x00f4, 0x014c, 0x00ef,
+ 0x0065, 0x0045, 0x0068, 0x005b, 0x0031, 0x006e,
+ 0x0126, 0x01b0, 0x0174, 0x00a8, 0xfff0, 0xff94,
+ 0xff81, 0xffcb, 0x00a9, 0x01d0, 0x0264, 0x01f9,
+ 0x013e, 0x012f, 0x01cb, 0x0213, 0x0168, 0x004d,
+ 0xffa1, 0xff8f, 0xffb9, 0x000e, 0x00d0, 0x01c4,
+ 0x022b, 0x01c0, 0x0141, 0x016b, 0x01d9, 0x0193,
+ 0x0096, 0x0009, 0x009c, 0x0173, 0x014a, 0x004e,
+ 0xffef, 0x00cf, 0x01cb, 0x0177, 0x000f, 0xff22,
+ 0xff85, 0x005e, 0x0072, 0xffbb, 0xff46, 0xffca,
+ 0x00e3, 0x01b3, 0x01c7, 0x013e, 0x0078, 0xffda,
+ 0xffa7, 0xffc7, 0xffd1, 0xff88, 0xff46, 0xff90,
+ 0x0054, 0x00d4, 0x007c, 0xff90, 0xfec5, 0xfe85,
+ 0xfeb8, 0xff34, 0xffe1, 0x0068, 0x0054, 0xffba,
+ 0xff84, 0x008a, 0x025e, 0x036f, 0x02ac, 0x00b4,
+ 0xff2e, 0xff09, 0xffbf, 0x0031, 0xfffe, 0xffaa,
+ 0xffc4, 0x002f, 0x0061, 0x002c, 0x000c, 0x008c,
+ 0x0173, 0x01d3, 0x0104, 0xff93, 0xfece, 0xff4f,
+ 0x0030, 0x0016, 0xfed8, 0xfdbf, 0xfdf9, 0xff2c,
+ 0xfffe, 0xffb6, 0xfee7, 0xfe77, 0xfe8f, 0xfed4,
+ 0xff28, 0xffb4, 0x0052, 0x008e, 0x0061, 0x0066,
+ 0x00f9, 0x017c, 0x00ff, 0xff91, 0xfe5a, 0xfe56,
+ 0xff4a, 0x0046, 0x00d1, 0x0124, 0x0175, 0x0195,
+ 0x014f, 0x00bd, 0x0011, 0xff66, 0xfef6, 0xff35,
+ 0x0033, 0x0122, 0x010c, 0x001c, 0xff9c, 0x004e,
+ 0x015a, 0x0141, 0xffd3, 0xfe6a, 0xfe36, 0xfef5,
+ 0xffaa, 0x0007, 0x007d, 0x0116, 0x013c, 0x00be,
+ 0x0060, 0x00e3, 0x01d7, 0x0223, 0x0179, 0x00b6,
+ 0x0099, 0x00d1, 0x00b0, 0x004e, 0x003e, 0x0060,
+ 0xffcb, 0xfe3b, 0xfcef, 0xfd76, 0xffc3, 0x0204,
+ 0x0288, 0x0162, 0x000e, 0xffcb, 0x0097, 0x019d,
+ 0x021c, 0x01e4, 0x0142, 0x00ad, 0x0065, 0x0046,
+ 0x0001, 0xff9a, 0xff75, 0xffe5, 0x00ac, 0x0139,
+ 0x0143, 0x00fd, 0x00b2, 0x0071, 0x0036, 0x002b,
+ 0x0063, 0x008e, 0x003d, 0xff87, 0xff1e, 0xff74,
+ 0x000d, 0xfffb, 0xfef8, 0xfdd6, 0xfd97, 0xfe5c,
+ 0xff59, 0xffc3, 0xff98, 0xff6b, 0xff95, 0xffc4,
+ 0xff77, 0xfec1, 0xfe6b, 0xff20, 0x0088, 0x0187,
+ 0x0176, 0x00fb, 0x0133, 0x0223, 0x027b, 0x013a,
+ 0xff28, 0xfe12, 0xfeac, 0xffc0, 0xffcc, 0xfedd,
+ 0xfe46, 0xfebd, 0xff86, 0xffa7, 0xff32, 0xfee4,
+ 0xfed9, 0xfe7e, 0xfdb5, 0xfd5a, 0xfe30, 0xffbd,
+ 0x00c5, 0x00b3, 0x000c, 0xff85, 0xff2d, 0xfeca,
+ 0xfe8d, 0xfeff, 0x004b, 0x01f7, 0x0346, 0x03a7,
+ 0x02d0, 0x00f0, 0xfef6, 0xfe17, 0xfec9, 0x002f,
+ 0x010c, 0x0112, 0x00db, 0x00b8, 0x002a, 0xfef6,
+ 0xfe12, 0xfec5, 0x00d5, 0x026e, 0x0221, 0x0083,
+ 0xff56, 0xff74, 0x003f, 0x00e7, 0x0163, 0x01e8,
+ 0x020a, 0x0130, 0xffb8, 0xfee6, 0xff82, 0x00eb,
+ 0x01ec, 0x020c, 0x01af, 0x012d, 0x0069, 0xff6e,
+ 0xfed3, 0xff20, 0xfff9, 0x006a, 0x0001, 0xff48,
+ 0xff17, 0xff99, 0x0039, 0x0058, 0xffed, 0xff70,
+ 0xff66, 0xfff6, 0x00d8, 0x0193, 0x01d5, 0x01a9,
+ 0x014c, 0x00d6, 0x0026, 0xff2f, 0xfe28, 0xfd6f,
+ 0xfd3d, 0xfd95, 0xfe5a, 0xff37, 0xff9c, 0xff27,
+ 0xfe45, 0xfe21, 0xff87, 0x01ce, 0x0305, 0x0173,
+ 0xfcf0, 0xf6eb, 0xf14f, 0xed68, 0xeb85, 0xeb33,
+ 0xeba1, 0xec04, 0xebe0, 0xeb1d, 0xe9fb, 0xe8fc,
+ 0xe8a9, 0xe929, 0xe9f2, 0xea2f, 0xe9ae, 0xe959,
+ 0xea65, 0xecfe, 0xefe4, 0xf176, 0xf0de, 0xee4b,
+ 0xea7c, 0xe65d, 0xe289, 0xde3f, 0xd6da, 0xc9bb,
+ 0xb838, 0xa99f, 0xa7bc, 0xb7a6, 0xd50e, 0xf49b,
+ 0x0b35, 0x140e, 0x1147, 0x087c, 0xfec7, 0xf69a,
+ 0xefa9, 0xe824, 0xdec2, 0xd456, 0xcbd7, 0xc8e7,
+ 0xce34, 0xdcb1, 0xf31a, 0x0d29, 0x236b, 0x2d52,
+ 0x2587, 0x0dbd, 0xeecd, 0xd472, 0xc75e, 0xc95f,
+ 0xd5dd, 0xe5d8, 0xf41f, 0xfebe, 0x054b, 0x06ef,
+ 0x02ce, 0xfa67, 0xf251, 0xef55, 0xf256, 0xf797,
+ 0xfa97, 0xfaa2, 0xfb47, 0x006a, 0x0a26, 0x1476,
+ 0x1a88, 0x1a3f, 0x1541, 0x0f64, 0x0c24, 0x0cae,
+ 0x0f7d, 0x11cb, 0x1204, 0x1147, 0x1269, 0x170a,
+ 0x1d7f, 0x21d0, 0x2123, 0x1c4e, 0x16f5, 0x1413,
+ 0x1389, 0x1306, 0x1122, 0x0f02, 0x0ecc, 0x10fe,
+ 0x13eb, 0x1601, 0x17c7, 0x1aea, 0x1f61, 0x2257,
+ 0x20aa, 0x1a79, 0x13ac, 0x10a7, 0x128e, 0x16c8,
+ 0x19ee, 0x1ad1, 0x1ab7, 0x1b40, 0x1c94, 0x1db5,
+ 0x1e0f, 0x1e33, 0x1ef1, 0x1ff9, 0x1fbd, 0x1cc4,
+ 0x1726, 0x10f5, 0x0d47, 0x0e9f, 0x1561, 0x1f14,
+ 0x2751, 0x2aad, 0x29e8, 0x2a46, 0x3167, 0x3f8a,
+ 0x4dab, 0x525f, 0x4997, 0x3849, 0x2864, 0x2120,
+ 0x22e1, 0x29d3, 0x3333, 0x3f32, 0x4e06, 0x5c7a,
+ 0x64e3, 0x63ee, 0x5c34, 0x546b, 0x51c4, 0x53d2,
+ 0x55c9, 0x535b, 0x4c78, 0x44cf, 0x4063, 0x406f,
+ 0x42d5, 0x43a9, 0x3f84, 0x35a2, 0x28f0, 0x1f08,
+ 0x1cde, 0x2316, 0x2d10, 0x33ff, 0x33a6, 0x2cb3,
+ 0x22f1, 0x19c2, 0x1273, 0x0d2c, 0x0a39, 0x098b,
+ 0x097c, 0x075e, 0x0225, 0xfc37, 0xf984, 0xfb64,
+ 0xfeac, 0xfeab, 0xfa30, 0xf502, 0xf3cd, 0xf6d5,
+ 0xf942, 0xf61d, 0xedc0, 0xe5f0, 0xe488, 0xea4a,
+ 0xf2cf, 0xf8d5, 0xfa1e, 0xf76d, 0xf214, 0xeab8,
+ 0xe271, 0xdbe5, 0xda03, 0xdd54, 0xe302, 0xe6f8,
+ 0xe71b, 0xe447, 0xe08a, 0xdcf5, 0xd94f, 0xd554,
+ 0xd19e, 0xcf10, 0xcdea, 0xcdcf, 0xce8a, 0xd02f,
+ 0xd250, 0xd383, 0xd261, 0xcf21, 0xcbbf, 0xca32,
+ 0xca8c, 0xcb42, 0xcb3a, 0xcb05, 0xcba4, 0xcc70,
+ 0xcb26, 0xc69a, 0xc10e, 0xbee0, 0xc259, 0xc8ec,
+ 0xcd02, 0xcac1, 0xc2fe, 0xb9b2, 0xb21e, 0xace7,
+ 0xa984, 0xa870, 0xab04, 0xb16e, 0xb9bf, 0xc1be,
+ 0xc94e, 0xd21f, 0xdc88, 0xe53a, 0xe6ff, 0xdf75,
+ 0xd1f1, 0xc558, 0xbeb3, 0xbdb4, 0xbe1a, 0xbc3a,
+ 0xb842, 0xb5a1, 0xb7d4, 0xbfa4, 0xca9a, 0xd45b,
+ 0xd8d5, 0xd64c, 0xce73, 0xc5a8, 0xc039, 0xbf6f,
+ 0xc0f5, 0xc168, 0xbfc5, 0xbe1c, 0xbedc, 0xc18b,
+ 0xc2ca, 0xbff3, 0xba9e, 0xb7fb, 0xbc40, 0xc662,
+ 0xd058, 0xd3cb, 0xcf03, 0xc601, 0xbf39, 0xbf1c,
+ 0xc5b3, 0xcf78, 0xd806, 0xdc82, 0xdc96, 0xd9cd,
+ 0xd629, 0xd2f1, 0xd08c, 0xcf39, 0xcf8b, 0xd1e3,
+ 0xd54f, 0xd77f, 0xd694, 0xd34d, 0xd12c, 0xd399,
+ 0xda7a, 0xe1a1, 0xe42f, 0xe0e0, 0xdb34, 0xd840,
+ 0xda38, 0xdef2, 0xe260, 0xe256, 0xdfe7, 0xdda2,
+ 0xdd0a, 0xddd4, 0xdf2c, 0xe0fc, 0xe3c3, 0xe770,
+ 0xeaf2, 0xed26, 0xee0e, 0xeef6, 0xf151, 0xf571,
+ 0xfa4f, 0xfe58, 0x0059, 0x0002, 0xfde3, 0xfb58,
+ 0xfa3c, 0xfc03, 0x0098, 0x05f2, 0x092a, 0x08a2,
+ 0x057b, 0x02f8, 0x03ff, 0x08c4, 0x0e9b, 0x122c,
+ 0x1231, 0x1061, 0x0fdc, 0x1273, 0x173b, 0x1b7b,
+ 0x1d07, 0x1be1, 0x19e2, 0x1901, 0x19ed, 0x1c26,
+ 0x1f09, 0x226c, 0x2631, 0x296d, 0x2a80, 0x2862,
+ 0x23dd, 0x1f55, 0x1d07, 0x1d58, 0x1ede, 0x2011,
+ 0x20db, 0x224f, 0x24eb, 0x274e, 0x2737, 0x23fd,
+ 0x1ff2, 0x1ee9, 0x22db, 0x29bd, 0x2eee, 0x2f21,
+ 0x2b4c, 0x27ce, 0x2879, 0x2d1c, 0x31ad, 0x31e7,
+ 0x2d13, 0x26b3, 0x23a6, 0x2671, 0x2db9, 0x35d0,
+ 0x3b9f, 0x3e81, 0x3fe5, 0x41aa, 0x44a0, 0x4809,
+ 0x4a21, 0x491d, 0x4445, 0x3ccc, 0x35ae, 0x323d,
+ 0x3403, 0x3964, 0x3e5b, 0x3f33, 0x3b2a, 0x34f2,
+ 0x3099, 0x306c, 0x3383, 0x3708, 0x38c0, 0x3898,
+ 0x381d, 0x389f, 0x3a0b, 0x3b7f, 0x3c8b, 0x3d87,
+ 0x3eb4, 0x3f31, 0x3d51, 0x384f, 0x31a5, 0x2c83,
+ 0x2b90, 0x2ed5, 0x33d8, 0x37cf, 0x39c3, 0x3ae8,
+ 0x3ce9, 0x3fc1, 0x4187, 0x4033, 0x3b6c, 0x3500,
+ 0x2fbb, 0x2d7b, 0x2e5f, 0x3168, 0x3555, 0x3918,
+ 0x3bf4, 0x3d8a, 0x3e33, 0x3edf, 0x402e, 0x41ad,
+ 0x420e, 0x405b, 0x3d27, 0x3a87, 0x3a40, 0x3be6,
+ 0x3d0a, 0x3ba9, 0x3865, 0x366f, 0x38d9, 0x3f57,
+ 0x45db, 0x47eb, 0x4476, 0x3ebc, 0x3b7a, 0x3ca7,
+ 0x3ff0, 0x413a, 0x3e60, 0x3903, 0x3501, 0x34b0,
+ 0x36d0, 0x386d, 0x37d4, 0x35d0, 0x3496, 0x3520,
+ 0x35dd, 0x34a9, 0x3144, 0x2daf, 0x2c7a, 0x2e3a,
+ 0x30ce, 0x3181, 0x2f50, 0x2b80, 0x2820, 0x25a8,
+ 0x22f9, 0x1f34, 0x1aa0, 0x16f5, 0x1645, 0x1899,
+ 0x1c4a, 0x2032, 0x23bc, 0x26b7, 0x28f2, 0x28e5,
+ 0x24ff, 0x1e51, 0x17ba, 0x13a7, 0x1254, 0x1155,
+ 0x0eaf, 0x0b6f, 0x09b8, 0x0a99, 0x0d28, 0x0e63,
+ 0x0c5e, 0x0939, 0x08df, 0x0d06, 0x13b8, 0x1865,
+ 0x1754, 0x1137, 0x0ad2, 0x082c, 0x0913, 0x0aa3,
+ 0x0a65, 0x0817, 0x05a0, 0x044d, 0x03a1, 0x02de,
+ 0x0110, 0xfe90, 0xfea3, 0x024f, 0x0603, 0x06cd,
+ 0x038d, 0xfd30, 0xf88b, 0xf8c4, 0xfb5d, 0xfd23,
+ 0xfcbf, 0xfb25, 0xfb68, 0xfda1, 0xfd92, 0xf7b5,
+ 0xecee, 0xe3b9, 0xe335, 0xebac, 0xf73c, 0xfe16,
+ 0xfb7c, 0xf369, 0xedf4, 0xee52, 0xf2e1, 0xf766,
+ 0xf7b4, 0xf51b, 0xf3e6, 0xf3f8, 0xf1ea, 0xec8c,
+ 0xe610, 0xe207, 0xe3c4, 0xebce, 0xf531, 0xf8b2,
+ 0xf2e2, 0xe720, 0xde82, 0xde46, 0xe1ad, 0xe4b2,
+ 0xe786, 0xe6f3, 0xe3b6, 0xe557, 0xeb53, 0xef70,
+ 0xf185, 0xf259, 0xf165, 0xf086, 0xefe6, 0xeeff,
+ 0xefd0, 0xf14a, 0xf073, 0xee2c, 0xeacf, 0xe42b,
+ 0xdc36, 0xd879, 0xdafa, 0xe149, 0xe813, 0xed19,
+ 0xef85, 0xeef7, 0xeb78, 0xe7eb, 0xe871, 0xec09,
+ 0xed1b, 0xe9ca, 0xe53d, 0xe0ce, 0xdbe9, 0xd993,
+ 0xdd23, 0xe37d, 0xe6d5, 0xe5f1, 0xe342, 0xe0e3,
+ 0xdec3, 0xdb44, 0xd6d7, 0xd4b3, 0xd59e, 0xd80c,
+ 0xdd3e, 0xe531, 0xeb07, 0xed89, 0xefce, 0xf04c,
+ 0xec5c, 0xe41e, 0xd746, 0xcb2b, 0xc7ac, 0xc9d7,
+ 0xcd15, 0xd16f, 0xcf5c, 0xc395, 0xbaab, 0xbb5d,
+ 0xc100, 0xc945, 0xd0e5, 0xd38d, 0xd268, 0xd06a,
+ 0xd184, 0xd750, 0xdaf8, 0xd7de, 0xd2d6, 0xd094,
+ 0xd0f9, 0xd1d3, 0xd248, 0xd37d, 0xd54c, 0xd889,
+ 0xde98, 0xe3e6, 0xe6c0, 0xea30, 0xeccf, 0xec44,
+ 0xea17, 0xe74c, 0xe575, 0xe553, 0xe552, 0xe601,
+ 0xe6ae, 0xe5ab, 0xe529, 0xe51d, 0xe3dc, 0xe0cf,
+ 0xd8a7, 0xcf54, 0xccd7, 0xcc3b, 0xcb36, 0xd1ae,
+ 0xdc1c, 0xe29a, 0xe54a, 0xe2d3, 0xdd29, 0xdb56,
+ 0xdebd, 0xe528, 0xe8d9, 0xe53a, 0xe1e3, 0xe3fb,
+ 0xe60b, 0xe786, 0xe963, 0xe899, 0xe648, 0xe348,
+ 0xdedb, 0xdc71, 0xdd50, 0xdfaf, 0xe3e4, 0xe902,
+ 0xec01, 0xebe7, 0xebba, 0xee55, 0xf11f, 0xf1ac,
+ 0xf089, 0xee05, 0xee90, 0xf31e, 0xf298, 0xedcc,
+ 0xee23, 0xf0ca, 0xf19c, 0xf385, 0xf555, 0xf47b,
+ 0xefb8, 0xe805, 0xe470, 0xe4f4, 0xe24c, 0xe02d,
+ 0xe4a7, 0xeb80, 0xef5f, 0xef6d, 0xeedc, 0xef66,
+ 0xede9, 0xed25, 0xf22f, 0xf7b2, 0xf87a, 0xf616,
+ 0xf1ec, 0xef14, 0xefda, 0xf16d, 0xf252, 0xf43f,
+ 0xf838, 0xfc3d, 0xfd96, 0xfe24, 0xfec5, 0xfc48,
+ 0xf7f7, 0xf42c, 0xf0f5, 0xefed, 0xed1a, 0xe478,
+ 0xdcff, 0xdb4a, 0xdd9f, 0xe3a2, 0xea3f, 0xf037,
+ 0xf630, 0xf704, 0xf461, 0xf5fe, 0xf8ce, 0xf7ec,
+ 0xf3e3, 0xed4c, 0xe7d8, 0xe71f, 0xeaf2, 0xf028,
+ 0xf08b, 0xeece, 0xf1ad, 0xf449, 0xf73c, 0xfe9c,
+ 0xfe88, 0xf574, 0xf028, 0xec3b, 0xe84d, 0xeadb,
+ 0xed0b, 0xe9f5, 0xe5cf, 0xe0ba, 0xdf4d, 0xe41e,
+ 0xe720, 0xe80b, 0xea33, 0xe964, 0xe6b7, 0xe644,
+ 0xe616, 0xe4bf, 0xe296, 0xdfd4, 0xdd7f, 0xdd7b,
+ 0xe23d, 0xe8e5, 0xebb1, 0xebfd, 0xebc6, 0xe948,
+ 0xe687, 0xe6e9, 0xebd3, 0xf36a, 0xf81c, 0xfab7,
+ 0xfe57, 0xfd69, 0xf6cd, 0xf053, 0xebf6, 0xef05,
+ 0xf9fb, 0xfe3d, 0xf790, 0xf0df, 0xece1, 0xeb1c,
+ 0xef22, 0xf5cd, 0xf959, 0xf99a, 0xf905, 0xf9fd,
+ 0xfcb5, 0x0036, 0x045e, 0x069f, 0x04f3, 0x00ec,
+ 0xfa56, 0xf386, 0xf3db, 0xf959, 0xfb8b, 0xfb4e,
+ 0xf9ec, 0xf3c6, 0xecbc, 0xe964, 0xe87c, 0xec97,
+ 0xf471, 0xf8f2, 0xfbdb, 0xfe33, 0xfbf4, 0xf8e0,
+ 0xf470, 0xebd1, 0xe9a6, 0xee4d, 0xedfe, 0xec9a,
+ 0xee3d, 0xef60, 0xf3bf, 0xf792, 0xf5c4, 0xf771,
+ 0xfb09, 0xfa5b, 0xfd91, 0x022d, 0xffc9, 0xfddd,
+ 0x006a, 0x037c, 0x04d3, 0x0059, 0xfa14, 0xf8d1,
+ 0xf88e, 0xfad1, 0x02e0, 0x06c8, 0x047c, 0x04a9,
+ 0x06a4, 0x07a9, 0x09e0, 0x0d27, 0x100d, 0x1170,
+ 0x10e8, 0x10d0, 0x1377, 0x1657, 0x135a, 0x0bf0,
+ 0x083c, 0x07cf, 0x08e4, 0x0f5b, 0x1429, 0x1092,
+ 0x0e74, 0x10b1, 0x104c, 0x0f91, 0x0eeb, 0x0a29,
+ 0x0650, 0x0718, 0x0774, 0x054c, 0x0360, 0x02ec,
+ 0x02ae, 0x02d8, 0x0525, 0x07be, 0x07e0, 0x05c4,
+ 0x027c, 0x00f4, 0x01d5, 0x01ca, 0x025f, 0x0401,
+ 0x02ce, 0x03f3, 0x0a6e, 0x0e37, 0x108d, 0x1557,
+ 0x1504, 0x0f9b, 0x0e1e, 0x12f8, 0x1b78, 0x2087,
+ 0x1df1, 0x1a4d, 0x17d0, 0x12e9, 0x0f22, 0x0f41,
+ 0x115f, 0x14b3, 0x1862, 0x1cdd, 0x1fbf, 0x1cd3,
+ 0x1b82, 0x21cc, 0x26d0, 0x2738, 0x277e, 0x2667,
+ 0x23b7, 0x1fda, 0x1a0b, 0x1733, 0x1799, 0x15e1,
+ 0x1554, 0x1834, 0x1941, 0x1964, 0x1c56, 0x1f70,
+ 0x2093, 0x216e, 0x20bc, 0x1c43, 0x1a9c, 0x2188,
+ 0x27b6, 0x2814, 0x2a74, 0x2b57, 0x2518, 0x219f,
+ 0x221b, 0x1e08, 0x193d, 0x1652, 0x11b4, 0x111d,
+ 0x17d9, 0x1dca, 0x1d3c, 0x1896, 0x16d2, 0x1b13,
+ 0x2015, 0x22b1, 0x22ef, 0x1e00, 0x1730, 0x15fa,
+ 0x17d1, 0x16d0, 0x14d2, 0x1530, 0x16e7, 0x177b,
+ 0x15be, 0x126e, 0x109c, 0x1305, 0x17cf, 0x1c6a,
+ 0x21d4, 0x24d7, 0x1eb3, 0x140a, 0x112b, 0x15d1,
+ 0x16df, 0x12e0, 0x119b, 0x12a1, 0x11e9, 0x1410,
+ 0x1a99, 0x1f17, 0x2055, 0x1fb8, 0x1cf8, 0x1cd1,
+ 0x2152, 0x244b, 0x21dd, 0x1aa2, 0x1296, 0x1105,
+ 0x1549, 0x1701, 0x14fc, 0x1439, 0x1597, 0x15fc,
+ 0x1411, 0x1265, 0x12a8, 0x140f, 0x17ab, 0x1c99,
+ 0x1d39, 0x18fd, 0x1602, 0x1742, 0x1b65, 0x20e6,
+ 0x2548, 0x2606, 0x249e, 0x255f, 0x29cc, 0x2ea5,
+ 0x2efa, 0x2a22, 0x25ba, 0x257a, 0x2665, 0x2525,
+ 0x2190, 0x1e0f, 0x1d76, 0x1ebc, 0x2187, 0x2735,
+ 0x29e3, 0x26f7, 0x272c, 0x2ae7, 0x2ba1, 0x2bef,
+ 0x2c6b, 0x2a80, 0x2a54, 0x2aac, 0x2664, 0x2152,
+ 0x1e63, 0x1ca6, 0x1d8f, 0x1f0b, 0x1e42, 0x1cc4,
+ 0x1b83, 0x1b88, 0x1c9c, 0x1b72, 0x18d8, 0x1722,
+ 0x14d4, 0x120b, 0x119a, 0x16f1, 0x210e, 0x25af,
+ 0x1fec, 0x18ef, 0x1797, 0x1a24, 0x1d7c, 0x1f4d,
+ 0x1e7f, 0x1a5c, 0x14cb, 0x11d6, 0x1081, 0x1119,
+ 0x1617, 0x181a, 0x146f, 0x13f7, 0x14c8, 0x12ba,
+ 0x141a, 0x187b, 0x1ca8, 0x204a, 0x1c56, 0x1268,
+ 0x0e02, 0x0f1f, 0x126e, 0x1719, 0x177f, 0x13b3,
+ 0x1054, 0x0f53, 0x13f2, 0x19cb, 0x1990, 0x1916,
+ 0x1b81, 0x1ba2, 0x1b3f, 0x1b22, 0x19a3, 0x1bb4,
+ 0x1f1f, 0x1be2, 0x16f3, 0x173c, 0x183d, 0x1757,
+ 0x1880, 0x1aaf, 0x199d, 0x167c, 0x132c, 0x0f85,
+ 0x0e0d, 0x0eca, 0x0ed9, 0x1038, 0x12a1, 0x115a,
+ 0x0ed2, 0x0f9f, 0x119d, 0x10e0, 0x0b68, 0x0497,
+ 0x027b, 0x0372, 0x0468, 0x078d, 0x0a5a, 0x08c6,
+ 0x06db, 0x0701, 0x0587, 0x033f, 0x0417, 0x05e3,
+ 0x0609, 0x07b2, 0x0b11, 0x0c29, 0x0b06, 0x093f,
+ 0x089a, 0x0b0e, 0x0b9d, 0x0770, 0x0598, 0x0731,
+ 0x093c, 0x0f22, 0x1602, 0x181c, 0x196b, 0x1aa3,
+ 0x1714, 0x0f9c, 0x06f0, 0x020d, 0x06d7, 0x1024,
+ 0x137e, 0x101f, 0x0d2f, 0x0d67, 0x0c35, 0x0acc,
+ 0x0f82, 0x1634, 0x17fe, 0x1601, 0x11c7, 0x0e1b,
+ 0x0df4, 0x0ed2, 0x103f, 0x10bf, 0x0bd6, 0x06a0,
+ 0x05ae, 0x05de, 0x08eb, 0x0c71, 0x0b34, 0x0bf8,
+ 0x0dfa, 0x0933, 0x069b, 0x0a61, 0x08c0, 0x02db,
+ 0x00e7, 0xff85, 0xfbe1, 0xf905, 0xf7ab, 0xf656,
+ 0xf563, 0xf5ed, 0xf564, 0xf242, 0xf11a, 0xf462,
+ 0xf949, 0xfc11, 0xfafb, 0xf957, 0xf80b, 0xf421,
+ 0xf2bb, 0xf5b4, 0xf4e3, 0xf28c, 0xf37e, 0xf1ef,
+ 0xef0d, 0xee37, 0xea7e, 0xe723, 0xea06, 0xedac,
+ 0xed29, 0xe9a6, 0xe738, 0xe90c, 0xe8f8, 0xe21f,
+ 0xdc58, 0xdcd7, 0xdf75, 0xe200, 0xe5f7, 0xead1,
+ 0xed58, 0xec1d, 0xe884, 0xe456, 0xe244, 0xe089,
+ 0xda35, 0xd543, 0xd79c, 0xd8e3, 0xd75d, 0xdaa7,
+ 0xdee0, 0xdde6, 0xdac0, 0xd962, 0xdb10, 0xdb7d,
+ 0xd6ee, 0xd46e, 0xd75d, 0xd922, 0xd896, 0xd803,
+ 0xd7c5, 0xda0e, 0xdc26, 0xd8a9, 0xd31e, 0xd0eb,
+ 0xd154, 0xd45b, 0xdce4, 0xe7a5, 0xea4e, 0xe3d3,
+ 0xde9f, 0xdca2, 0xd8da, 0xd6bc, 0xd9c9, 0xdd40,
+ 0xdc53, 0xd785, 0xd418, 0xd4c1, 0xd672, 0xd94b,
+ 0xddb4, 0xdee6, 0xdde7, 0xdea5, 0xdd82, 0xd927,
+ 0xd521, 0xd196, 0xcfc1, 0xd26c, 0xd6cb, 0xd857,
+ 0xd73e, 0xd6dc, 0xd7df, 0xd7b3, 0xd7b4, 0xda7e,
+ 0xdb46, 0xd5c3, 0xcf3f, 0xcdc1, 0xcf0a, 0xcd65,
+ 0xc8fe, 0xc6f4, 0xc82f, 0xc971, 0xc99c, 0xc978,
+ 0xca51, 0xcc6d, 0xcd85, 0xcd62, 0xce95, 0xd080,
+ 0xd126, 0xd167, 0xd14b, 0xce1b, 0xc7e5, 0xc3ba,
+ 0xc491, 0xc6bd, 0xc710, 0xc786, 0xc984, 0xcb7d,
+ 0xcd6e, 0xd122, 0xd5b5, 0xd82f, 0xd8c0, 0xda32,
+ 0xdcc9, 0xdd3d, 0xd837, 0xcfa2, 0xcade, 0xcd26,
+ 0xd16a, 0xd2bf, 0xd265, 0xd42a, 0xd73b, 0xd7a8,
+ 0xd7d6, 0xdbe7, 0xdf77, 0xde43, 0xdab1, 0xd6c6,
+ 0xd414, 0xd479, 0xd6e1, 0xd9d9, 0xdba3, 0xd9cc,
+ 0xd549, 0xd0b7, 0xcf1e, 0xd354, 0xd97f, 0xdbaf,
+ 0xdab7, 0xd8bb, 0xd63a, 0xd53c, 0xd698, 0xd7b6,
+ 0xd482, 0xce47, 0xcc11, 0xcd20, 0xcb54, 0xc925,
+ 0xc89d, 0xc57d, 0xbfd9, 0xbaff, 0xba02, 0xbe02,
+ 0xc1eb, 0xc448, 0xc831, 0xc9d3, 0xc8bb, 0xcb31,
+ 0xcfba, 0xd306, 0xd578, 0xd5e9, 0xd712, 0xda94,
+ 0xdb21, 0xd8d4, 0xd809, 0xd8cf, 0xda2a, 0xda18,
+ 0xd86d, 0xd79f, 0xd61e, 0xd505, 0xd87c, 0xdd14,
+ 0xe00f, 0xe314, 0xe4b5, 0xe4e0, 0xe3a9, 0xe1d2,
+ 0xe57b, 0xebb2, 0xebc6, 0xe9f0, 0xea55, 0xeaf3,
+ 0xece9, 0xecf9, 0xeaa6, 0xed9b, 0xf302, 0xf45b,
+ 0xf30c, 0xedcb, 0xe633, 0xe289, 0xe26c, 0xe44a,
+ 0xe583, 0xe269, 0xdfce, 0xdfbd, 0xdde8, 0xdcad,
+ 0xdd0c, 0xdc99, 0xdd03, 0xdcd4, 0xdb2f, 0xdb20,
+ 0xdc8b, 0xe15d, 0xe6ef, 0xe476, 0xe138, 0xe604,
+ 0xe8d1, 0xe500, 0xe054, 0xdd1d, 0xdd70, 0xdda7,
+ 0xda3b, 0xdb18, 0xe157, 0xe627, 0xe927, 0xe82b,
+ 0xe27a, 0xdd8b, 0xdad5, 0xddb0, 0xe81b, 0xef83,
+ 0xede4, 0xe8e6, 0xe5e0, 0xe6cf, 0xe7b1, 0xe76f,
+ 0xed5c, 0xf671, 0xf96d, 0xf74d, 0xf324, 0xf156,
+ 0xf577, 0xf92a, 0xfb0f, 0xff5e, 0x0174, 0x0023,
+ 0xff53, 0xfe7d, 0xff9d, 0x009c, 0xfb56, 0xf541,
+ 0xf2f4, 0xf0f1, 0xf040, 0xefef, 0xee42, 0xf045,
+ 0xf4dd, 0xf853, 0xfdba, 0x02fd, 0x0298, 0xfd2f,
+ 0xf702, 0xf5e0, 0xf95c, 0xfb78, 0xfce6, 0xfd28,
+ 0xf8fd, 0xf796, 0xfc98, 0xff47, 0xfcc9, 0xf9b2,
+ 0xfa49, 0xffa4, 0x028f, 0x0056, 0x01ef, 0x0876,
+ 0x0c59, 0x0b15, 0x0528, 0xff17, 0xff8d, 0x04f3,
+ 0x0a4e, 0x0d80, 0x0cea, 0x09f1, 0x06f1, 0x04c2,
+ 0x0588, 0x0850, 0x0a6d, 0x0cb0, 0x0cc8, 0x087c,
+ 0x059c, 0x0771, 0x0a17, 0x0a2e, 0x06bc, 0x02bf,
+ 0x02de, 0x06fb, 0x0c59, 0x0ff4, 0x0fed, 0x0f06,
+ 0x0f37, 0x0ec0, 0x0d60, 0x0ae8, 0x073d, 0x04dc,
+ 0x03a1, 0x00b0, 0xfd2f, 0xfdd5, 0x0453, 0x0b8e,
+ 0x0f30, 0x1149, 0x1028, 0x084a, 0x013c, 0x01a1,
+ 0x045a, 0x0628, 0x0795, 0x0634, 0x03e7, 0x0532,
+ 0x07fd, 0x0931, 0x0928, 0x0828, 0x063d, 0x02ff,
+ 0x0107, 0x061d, 0x0e48, 0x10c0, 0x10ff, 0x12ca,
+ 0x1233, 0x1232, 0x14fd, 0x1305, 0x0abf, 0x0263,
+ 0xfe36, 0xfff1, 0x059b, 0x0cf2, 0x142b, 0x166b,
+ 0x14f0, 0x1539, 0x150c, 0x1297, 0x1078, 0x103a,
+ 0x13cb, 0x1798, 0x157f, 0x1104, 0x0f7a, 0x12d6,
+ 0x19dc, 0x1c0c, 0x191b, 0x18ac, 0x15e1, 0x0eac,
+ 0x0aa6, 0x0701, 0x030c, 0x05fc, 0x0c02, 0x0fed,
+ 0x1222, 0x0f84, 0x0a3b, 0x0869, 0x0898, 0x080d,
+ 0x06bc, 0x05f7, 0x07b9, 0x08b9, 0x05a0, 0x02cb,
+ 0x03fb, 0x079a, 0x0bb7, 0x0f40, 0x0f95, 0x0a2e,
+ 0x0341, 0x0148, 0x035f, 0x08e1, 0x126b, 0x17c9,
+ 0x148d, 0x1044, 0x0e89, 0x0dda, 0x0dcb, 0x0bef,
+ 0x09df, 0x0afa, 0x0a9d, 0x07d3, 0x08a5, 0x0ce7,
+ 0x1355, 0x1b04, 0x1cd3, 0x1954, 0x17f1, 0x15d4,
+ 0x1258, 0x1625, 0x1fbd, 0x24b4, 0x21b6, 0x1b82,
+ 0x17a9, 0x1722, 0x19ce, 0x1fc6, 0x2370, 0x2114,
+ 0x1c66, 0x18da, 0x1926, 0x1afe, 0x17b8, 0x12cc,
+ 0x102d, 0x0c71, 0x0ccb, 0x140a, 0x196e, 0x1b13,
+ 0x19ed, 0x16d8, 0x182e, 0x1788, 0x0d01, 0x0688,
+ 0x0aee, 0x0ed2, 0x1050, 0x141a, 0x1778, 0x169f,
+ 0x1463, 0x1623, 0x17be, 0x1352, 0x0f80, 0x1029,
+ 0x0f40, 0x0bb8, 0x0976, 0x0aec, 0x0e50, 0x1085,
+ 0x1556, 0x1a60, 0x15da, 0x0fdf, 0x114e, 0x105b,
+ 0x0e2b, 0x12a8, 0x14c9, 0x1083, 0x0bfb, 0x07cf,
+ 0x076f, 0x0c8c, 0x1116, 0x1635, 0x1d7d, 0x2096,
+ 0x1df4, 0x15e3, 0x09cd, 0x04e5, 0x0c4c, 0x16fb,
+ 0x1ec3, 0x2324, 0x233f, 0x1f60, 0x1992, 0x14ed,
+ 0x1207, 0x0f74, 0x0e9c, 0x0ed5, 0x0e02, 0x0e55,
+ 0x0f8e, 0x1042, 0x1138, 0x0f50, 0x0c84, 0x0e72,
+ 0x0fe2, 0x0f41, 0x110a, 0x1118, 0x1148, 0x16df,
+ 0x1b1c, 0x1c3d, 0x1bb7, 0x15bd, 0x1137, 0x1311,
+ 0x14f3, 0x17da, 0x1bbe, 0x1ddf, 0x23b8, 0x28b3,
+ 0x2338, 0x1a08, 0x1530, 0x1534, 0x18cf, 0x1bc2,
+ 0x1ce7, 0x1ccb, 0x1a69, 0x187a, 0x177a, 0x1747,
+ 0x1a8b, 0x1b4a, 0x16d8, 0x1773, 0x1e23, 0x2343,
+ 0x24c9, 0x21a7, 0x1c2d, 0x19e3, 0x1a6c, 0x1b94,
+ 0x1c86, 0x1bd6, 0x1b21, 0x1daa, 0x21b7, 0x211f,
+ 0x1bc0, 0x188a, 0x1802, 0x16e2, 0x16d4, 0x180b,
+ 0x1b2d, 0x2151, 0x2427, 0x2217, 0x20ac, 0x1f4f,
+ 0x1e0f, 0x1e28, 0x1bef, 0x1996, 0x1aab, 0x1c2b,
+ 0x1dba, 0x1d34, 0x16a8, 0x1197, 0x1537, 0x1b03,
+ 0x1bfd, 0x1b14, 0x1c87, 0x1c42, 0x165d, 0x10b6,
+ 0x0f7a, 0x1029, 0x12ab, 0x170a, 0x1b9d, 0x211c,
+ 0x26b5, 0x2921, 0x26be, 0x217a, 0x1eb8, 0x1f90,
+ 0x1ea7, 0x1c1d, 0x1ce8, 0x1f08, 0x1f0e, 0x20d8,
+ 0x24da, 0x2336, 0x1bd7, 0x16df, 0x13dd, 0x0fab,
+ 0x0e47, 0x107e, 0x13d6, 0x17db, 0x17be, 0x11a4,
+ 0x0e9c, 0x1367, 0x1a5f, 0x1ebd, 0x2066, 0x214e,
+ 0x204f, 0x19da, 0x12e2, 0x11f4, 0x12bd, 0x141c,
+ 0x198d, 0x1bc9, 0x1819, 0x16df, 0x159f, 0x0f6b,
+ 0x09b7, 0x0559, 0x002d, 0xfb2f, 0xf520, 0xf177,
+ 0xf360, 0xf53d, 0xf525, 0xf378, 0xf099, 0xf40e,
+ 0xfab1, 0xf982, 0xf7dc, 0xfca9, 0xfeb5, 0xfbc5,
+ 0xf84e, 0xf326, 0xee3f, 0xef0f, 0xf3ce, 0xf642,
+ 0xf5fa, 0xf3c1, 0xec9c, 0xe401, 0xde25, 0xd7f9,
+ 0xd5df, 0xdb0d, 0xde15, 0xde40, 0xdf68, 0xdd4a,
+ 0xdabb, 0xdb58, 0xdbb9, 0xdc9b, 0xdd54, 0xdd52,
+ 0xdf2b, 0xdf4d, 0xdf63, 0xe3cc, 0xe67f, 0xe81f,
+ 0xeb9e, 0xecfb, 0xf11b, 0xf62e, 0xf21f, 0xec42,
+ 0xe944, 0xe48c, 0xe28a, 0xe217, 0xe1fb, 0xe857,
+ 0xed64, 0xeb59, 0xe7b6, 0xe084, 0xd92f, 0xd6f0,
+ 0xd3d3, 0xd3b5, 0xdb50, 0xe305, 0xe9c1, 0xeeda,
+ 0xf0b0, 0xf67d, 0xfd32, 0xfe7f, 0x003e, 0xfed1,
+ 0xf4c4, 0xedfb, 0xf17b, 0xf886, 0xfe4c, 0x02bd,
+ 0x0548, 0x0415, 0x0213, 0x0300, 0x0343, 0x02ae,
+ 0x049f, 0x05c3, 0x050a, 0x02ea, 0xfecd, 0x003a,
+ 0x0763, 0x0a61, 0x0c51, 0x0fec, 0x0e50, 0x0b40,
+ 0x0ab5, 0x08eb, 0x09d3, 0x0f29, 0x13ab, 0x175f,
+ 0x18d4, 0x1627, 0x14bd, 0x15d2, 0x16df, 0x19ee,
+ 0x1da5, 0x1c3f, 0x14a2, 0x0b7c, 0x05da, 0x0458,
+ 0x04f2, 0x05a6, 0x054f, 0x0543, 0x03fc, 0xff8f,
+ 0xfd8a, 0xfd00, 0xf8cb, 0xfb3a, 0x0694, 0x0a24,
+ 0x0621, 0x07d4, 0x1031, 0x1a13, 0x1d40, 0x1723,
+ 0x1236, 0x1001, 0x0bee, 0x0a86, 0x0a4c, 0x09a3,
+ 0x0e4a, 0x1142, 0x0bd9, 0x06c6, 0x0536, 0x03c9,
+ 0x01d4, 0xff49, 0x014a, 0x088e, 0x0ace, 0x0513,
+ 0xfeb8, 0xfe8f, 0x043b, 0x069e, 0x0412, 0x05a5,
+ 0x0e04, 0x1ade, 0x25b9, 0x2575, 0x1f9f, 0x1bc3,
+ 0x1545, 0x1027, 0x12bc, 0x1618, 0x1850, 0x1ba1,
+ 0x1a4c, 0x1304, 0x0b1b, 0x0495, 0xfd78, 0xf4b7,
+ 0xf004, 0xf197, 0xf02c, 0xea5b, 0xe8e6, 0xea5e,
+ 0xe8c5, 0xe780, 0xea89, 0xecbf, 0xe953, 0xe6d5,
+ 0xeacf, 0xef87, 0xf1fa, 0xf2d5, 0xf07c, 0xf0e7,
+ 0xf78e, 0xfabb, 0xf895, 0xf79a, 0xf580, 0xef47,
+ 0xe79b, 0xe2cf, 0xe427, 0xe6ce, 0xe517, 0xe1d4,
+ 0xdfa4, 0xe0eb, 0xe617, 0xe63b, 0xe082, 0xdfed,
+ 0xe503, 0xe954, 0xe992, 0xe382, 0xdc50, 0xd995,
+ 0xd819, 0xd83f, 0xdcef, 0xe379, 0xe953, 0xe97a,
+ 0xe11d, 0xda36, 0xdb39, 0xdec5, 0xe26e, 0xe524,
+ 0xe3d7, 0xe1a5, 0xe1f2, 0xe253, 0xe1a1, 0xe0c5,
+ 0xe0c8, 0xe3c8, 0xe756, 0xe564, 0xddb3, 0xd39f,
+ 0xccaf, 0xd1bf, 0xde0a, 0xe1b7, 0xde5a, 0xdcaf,
+ 0xd967, 0xd65d, 0xd71a, 0xd590, 0xd406, 0xd615,
+ 0xd623, 0xd7fc, 0xde20, 0xdf1f, 0xdbbd, 0xd8ad,
+ 0xd578, 0xd96d, 0xe4b9, 0xec9d, 0xf231, 0xf713,
+ 0xf510, 0xf03c, 0xede0, 0xea1a, 0xe72a, 0xeaf3,
+ 0xf18e, 0xf41e, 0xf29f, 0xf0c3, 0xefac, 0xeefb,
+ 0xf00d, 0xf2b1, 0xf39a, 0xf107, 0xebf8, 0xe74a,
+ 0xe716, 0xec26, 0xf3f2, 0xfbca, 0xfdd2, 0xf77d,
+ 0xf276, 0xf4db, 0xf82e, 0xf97f, 0xf983, 0xf562,
+ 0xeef0, 0xe95b, 0xe2ba, 0xdb3e, 0xd6ed, 0xdaf4,
+ 0xe661, 0xee90, 0xf0b8, 0xf21a, 0xef28, 0xe70b,
+ 0xdfce, 0xd829, 0xd0d7, 0xd0f2, 0xd94d, 0xe46a,
+ 0xeb50, 0xec77, 0xed04, 0xee99, 0xf0de, 0xf264,
+ 0xef37, 0xeb5c, 0xeaba, 0xe9ca, 0xea16, 0xeaa2,
+ 0xe755, 0xe497, 0xe1a5, 0xdde4, 0xe124, 0xe62c,
+ 0xe78f, 0xebaf, 0xede4, 0xea21, 0xe64c, 0xe2c9,
+ 0xe3ae, 0xe9da, 0xeb4d, 0xeae4, 0xed83, 0xecb3,
+ 0xe8d2, 0xe309, 0xdb76, 0xd9c6, 0xdec9, 0xe74d,
+ 0xf139, 0xf423, 0xf022, 0xebb9, 0xe5d7, 0xe0e6,
+ 0xddb1, 0xd764, 0xd12a, 0xcf44, 0xd5ea, 0xe62a,
+ 0xee5e, 0xe5cf, 0xdc4c, 0xd81a, 0xd696, 0xd9ae,
+ 0xdc32, 0xdab3, 0xd8f1, 0xd5ff, 0xd212, 0xd01a,
+ 0xce8e, 0xcdb5, 0xd337, 0xdf96, 0xe5dc, 0xdd49,
+ 0xd2d2, 0xd177, 0xd432, 0xd9cd, 0xe1bb, 0xe536,
+ 0xe4b6, 0xe2a0, 0xde5d, 0xdced, 0xdf4b, 0xe096,
+ 0xe39a, 0xeb34, 0xf1e8, 0xf39e, 0xf1ff, 0xf1cf,
+ 0xf502, 0xf5ea, 0xf369, 0xf4b3, 0xf6f4, 0xf33f,
+ 0xefa6, 0xef2b, 0xec3d, 0xea35, 0xedc6, 0xf331,
+ 0xf683, 0xf5ac, 0xf45e, 0xf8ce, 0xfec3, 0x006f,
+ 0xfd81, 0xf665, 0xf303, 0xf81c, 0xfc16, 0xfb84,
+ 0xfc8b, 0xffcc, 0x00f6, 0xfb6a, 0xf41c, 0xf65e,
+ 0xfe9e, 0x027f, 0x0268, 0x02c6, 0x03c8, 0x0066,
+ 0xfbce, 0x0048, 0x02fe, 0xf93e, 0xf3bb, 0xf6b4,
+ 0xf774, 0xfad8, 0x002f, 0x0211, 0x071b, 0x0bcc,
+ 0x0886, 0x0167, 0xf7c6, 0xed8c, 0xe8d8, 0xec44,
+ 0xf864, 0x03c4, 0x0428, 0x002a, 0xfbb2, 0xf3c2,
+ 0xef3d, 0xf34b, 0xfc26, 0x03c5, 0x071f, 0x0ca8,
+ 0x13a2, 0x0f93, 0x061e, 0x05b8, 0x099b, 0x0982,
+ 0x06cd, 0x052e, 0x071f, 0x06ea, 0xfda6, 0xf4a1,
+ 0xf81d, 0x02c9, 0x09ad, 0x0c08, 0x0cf8, 0x0cc3,
+ 0x0b6f, 0x08bf, 0x0548, 0x0393, 0x03de, 0x0522,
+ 0x07a2, 0x0be8, 0x12d0, 0x18ce, 0x196c, 0x1816,
+ 0x145e, 0x0b28, 0x0706, 0x0c3f, 0x0e6d, 0x0bf5,
+ 0x0af1, 0x0990, 0x08b8, 0x08e3, 0x04d5, 0xff60,
+ 0xfe96, 0xfebd, 0xfbe7, 0xfa39, 0xfcac, 0x00a1,
+ 0x04cd, 0x07d9, 0x0412, 0xfa6b, 0xf627, 0xfbb4,
+ 0x02fa, 0x058e, 0x0531, 0x049a, 0x05a0, 0x0c29,
+ 0x1551, 0x156b, 0x0a19, 0xfe37, 0xf944, 0xf800,
+ 0xf371, 0xeb27, 0xe536, 0xe5e6, 0xecb7, 0xf3d4,
+ 0xf741, 0xfbe1, 0x026f, 0x06e7, 0x0c6f, 0x1095,
+ 0x0b6a, 0x007e, 0xf68c, 0xf266, 0xf706, 0xfcb1,
+ 0xff45, 0x03a3, 0x06e8, 0x0705, 0x080f, 0x08e8,
+ 0x0917, 0x0a59, 0x0c48, 0x0e34, 0x0c01, 0x066c,
+ 0x050b, 0x0619, 0x03b1, 0xfda7, 0xf711, 0xf6e2,
+ 0xfc67, 0xffb1, 0x0133, 0x01ac, 0x02b4, 0x08db,
+ 0x0a58, 0x03a4, 0x02d2, 0x0548, 0x034f, 0x0283,
+ 0xfef1, 0xf744, 0xf62d, 0xf928, 0xfbd8, 0x032f,
+ 0x09fd, 0x0828, 0x01f4, 0xfe6d, 0xfd31, 0xfa4f,
+ 0xf7c5, 0xf96a, 0xfd20, 0x009e, 0x0241, 0x0079,
+ 0xfe90, 0xfdd2, 0xfc51, 0xfc96, 0x00fb, 0x07ae,
+ 0x0d31, 0x0e8c, 0x0af6, 0x0227, 0xfa3c, 0xfd82,
+ 0x05db, 0x0507, 0xfd2a, 0xf74a, 0xf50e, 0xf47e,
+ 0xf5db, 0xfb1d, 0xff53, 0xfe4b, 0xff58, 0x03a4,
+ 0x050a, 0x0338, 0xf8fe, 0xe6d5, 0xdf03, 0xe685,
+ 0xef64, 0xf241, 0xeff6, 0xed25, 0xedd5, 0xefd5,
+ 0xf190, 0xf27b, 0xf27a, 0xf46d, 0xf618, 0xf5a0,
+ 0xf7be, 0xf9b0, 0xf596, 0xedb5, 0xe4e2, 0xdf32,
+ 0xe153, 0xe7a7, 0xec56, 0xef9c, 0xf5ec, 0xfefc,
+ 0x037c, 0x05f4, 0x0e02, 0x12ae, 0x0d6a, 0x089d,
+ 0x07b4, 0x062f, 0x04fb, 0x031d, 0xfddc, 0xf94e,
+ 0xfd12, 0x09a4, 0x15d5, 0x1c75, 0x1f5a, 0x1ce4,
+ 0x1725, 0x1497, 0x1192, 0x09a4, 0x0222, 0xffaf,
+ 0x0476, 0x0f8c, 0x1626, 0x1036, 0x0664, 0x0412,
+ 0x05dd, 0x04be, 0x0672, 0x0e62, 0x105f, 0x06af,
+ 0xfcb4, 0xfb8f, 0x0178, 0x0780, 0x0868, 0x06c7,
+ 0x064f, 0x03ce, 0xfe26, 0xfbe7, 0x00b1, 0x0693,
+ 0x07a8, 0x06d8, 0x0661, 0x016d, 0xf7f9, 0xf009,
+ 0xea80, 0xe84e, 0xee98, 0xf91e, 0xfbf3, 0xf793,
+ 0xf7bb, 0xfea7, 0x034e, 0x02d8, 0x0472, 0x0aef,
+ 0x0f03, 0x0c34, 0x0863, 0x0796, 0x058e, 0x016e,
+ 0x0050, 0x0347, 0x0635, 0x0504, 0xff5b, 0xf934,
+ 0xf633, 0xf933, 0x03db, 0x0ebf, 0x0f9c, 0x08c6,
+ 0x02d1, 0xff55, 0xfc09, 0xfb40, 0x0159, 0x0917,
+ 0x0920, 0x0620, 0x085e, 0x0bcf, 0x0c2e, 0x0990,
+ 0x0541, 0x0739, 0x0edd, 0x0d22, 0x0185, 0xf8e4,
+ 0xf636, 0xf8eb, 0xfe8d, 0x00a6, 0x0392, 0x0a7f,
+ 0x0c57, 0x0c5c, 0x119a, 0x10c4, 0x06b3, 0xfef4,
+ 0xfb57, 0xfd7e, 0x0898, 0x1143, 0x10cf, 0x0ea6,
+ 0x0b11, 0x04bd, 0x0320, 0x07d8, 0x0d4d, 0x11c1,
+ 0x156b, 0x17c0, 0x18e0, 0x1718, 0x10fa, 0x0baf,
+ 0x0bdd, 0x0cfa, 0x0bbf, 0x0ad7, 0x09c2, 0x07ad,
+ 0x054d, 0x0325, 0x083e, 0x14ff, 0x19e0, 0x1374,
+ 0x0d79, 0x0898, 0x00a8, 0xf883, 0xf255, 0xef27,
+ 0xf0a4, 0xf6db, 0xfdf9, 0x000c, 0xff03, 0xff9d,
+ 0xff72, 0xfebc, 0xfe17, 0xfab4, 0xfb5a, 0x018a,
+ 0x0135, 0xfd38, 0xfe8d, 0xfe43, 0xfa0c, 0xf84d,
+ 0xfa3e, 0x000b, 0x0491, 0x0252, 0x01de, 0x0654,
+ 0x0696, 0x045d, 0x039e, 0xffdd, 0xfc33, 0xfc0c,
+ 0xfab5, 0xfa5d, 0xfbd0, 0xf7fd, 0xf335, 0xf3f7,
+ 0xf684, 0xfe45, 0x0c7a, 0x130f, 0x0e91, 0x098b,
+ 0x0747, 0x07ae, 0x0af2, 0x0c26, 0x0779, 0xfff0,
+ 0xfcc0, 0x0078, 0x04e9, 0x04e8, 0x00fe, 0xfcf6,
+ 0xfd56, 0xff4b, 0xfc5a, 0xf598, 0xef84, 0xecb3,
+ 0xec67, 0xeb82, 0xe9a0, 0xe622, 0xe47b, 0xed9e,
+ 0xfabd, 0xfed8, 0xff62, 0x0241, 0x065b, 0x0c5f,
+ 0x0ef1, 0x0df0, 0x0dd5, 0x06a5, 0xfa68, 0xf4ea,
+ 0xf246, 0xf3ba, 0x00d6, 0x0e28, 0x0f56, 0x0552,
+ 0xf7c4, 0xf43a, 0xfd04, 0x02e2, 0xfcb4, 0xf38d,
+ 0xf3ed, 0xf9bc, 0xfc38, 0x003a, 0x0402, 0xff51,
+ 0xfa50, 0xfbd7, 0xfeb6, 0xff8b, 0xfc02, 0xf96b,
+ 0x0029, 0x081c, 0x0831, 0x0590, 0x073f, 0x0e01,
+ 0x12c6, 0x11a9, 0x0ecc, 0x0849, 0xfe14, 0xf8f6,
+ 0xfb1a, 0x01ba, 0x08d4, 0x0c39, 0x0e89, 0x0d08,
+ 0x048a, 0x0008, 0x0134, 0x00ce, 0x032f, 0x06dd,
+ 0x04df, 0x0237, 0x04d8, 0x0c4d, 0x1128, 0x0be5,
+ 0x04f5, 0x0618, 0x0b06, 0x0b68, 0x0049, 0xf12b,
+ 0xef21, 0xf576, 0xf6e0, 0xf7c9, 0xff97, 0x0baf,
+ 0x0fb1, 0x0373, 0xf4f1, 0xf175, 0xf1fd, 0xf002,
+ 0xec9b, 0xe8c1, 0xe6a1, 0xe863, 0xee73, 0xf4dd,
+ 0xf68f, 0xf59e, 0xf46b, 0xf392, 0xf5f7, 0xf7b6,
+ 0xf5a9, 0xf684, 0xf8f3, 0xf58f, 0xef81, 0xea70,
+ 0xe397, 0xdcd2, 0xde14, 0xe8e1, 0xf268, 0xf28d,
+ 0xee52, 0xece8, 0xefcb, 0xf2e2, 0xf1f8, 0xf040,
+ 0xef60, 0xecc4, 0xee2d, 0xf745, 0xffe9, 0x03c6,
+ 0x0301, 0xfc46, 0xf4e3, 0xf39d, 0xfa0c, 0x092d,
+ 0x18df, 0x1988, 0x0c88, 0x0263, 0x02b1, 0x07f9,
+ 0x08e6, 0x03a8, 0x01b2, 0x0634, 0x0938, 0x0837,
+ 0x0481, 0xfea2, 0xfcec, 0x020f, 0x07a6, 0x0a43,
+ 0x0ba0, 0x0cc6, 0x0b8f, 0x0753, 0x0444, 0xff7f,
+ 0xf4b0, 0xeea4, 0xf40b, 0xfde6, 0x0a2f, 0x1864,
+ 0x232a, 0x2453, 0x196f, 0x0f2c, 0x0e54, 0x0bd2,
+ 0x0720, 0x0619, 0x0324, 0x0483, 0x0f4e, 0x16e6,
+ 0x17a7, 0x1317, 0x0c81, 0x0fcb, 0x15c7, 0x128d,
+ 0x0f6e, 0x0b29, 0x00f3, 0xfeb4, 0x058b, 0x0a68,
+ 0x0c18, 0x0a72, 0x07e7, 0x08b6, 0x0910, 0x0595,
+ 0x001c, 0xfd6e, 0xff72, 0xff72, 0xfc22, 0xfb88,
+ 0xfeca, 0x0758, 0x1106, 0x10d9, 0x0a12, 0x02cd,
+ 0xf58e, 0xe772, 0xe751, 0xf4eb, 0x0365, 0x0b76,
+ 0x0e1d, 0x0ca8, 0x096a, 0x061d, 0xff29, 0xf940,
+ 0xfd35, 0x021c, 0xff4a, 0xfa2b, 0xf328, 0xe977,
+ 0xe21f, 0xe08f, 0xe90e, 0xf6b6, 0xfc1f, 0xfafc,
+ 0xfac1, 0xfb27, 0xfeba, 0x025b, 0xfd18, 0xf5a0,
+ 0xf9e8, 0x090c, 0x1581, 0x1736, 0x13a9, 0x0dda,
+ 0x039b, 0xfd3d, 0xfe66, 0xfc75, 0xf96f, 0xfec0,
+ 0x0494, 0x03cc, 0x02d5, 0x034d, 0x026d, 0x0230,
+ 0x01cb, 0xff38, 0xfeff, 0x04c5, 0x0bf5, 0x0cc7,
+ 0x0616, 0xfe1f, 0xf655, 0xec26, 0xe661, 0xebb7,
+ 0xf4b7, 0xf9c0, 0xfe4d, 0x04b7, 0x0828, 0x07bd,
+ 0x075d, 0x04b1, 0xfeba, 0xfe08, 0x0353, 0x0581,
+ 0x046c, 0x046e, 0x03c5, 0x0190, 0x0009, 0xfe07,
+ 0xf949, 0xf869, 0x016f, 0x0992, 0x08c1, 0x060d,
+ 0x010a, 0xf6c2, 0xee72, 0xeb16, 0xecd7, 0xf18b,
+ 0xf198, 0xf20d, 0xf805, 0xfb65, 0xffe0, 0x0802,
+ 0x07ec, 0x0414, 0x053d, 0x0363, 0xfda2, 0xfc1e,
+ 0xff88, 0xff9c, 0xf59d, 0xee32, 0xf66e, 0x022e,
+ 0x05d5, 0x04f2, 0x0452, 0x0605, 0x04b5, 0xfed8,
+ 0xfe9b, 0x034a, 0x03ff, 0xfddc, 0xf133, 0xeba3,
+ 0xf736, 0x0282, 0x02b7, 0x0210, 0x0468, 0x07e8,
+ 0x0ad2, 0x0829, 0xfe9b, 0xf28c, 0xeaad, 0xe66f,
+ 0xe119, 0xe580, 0xf893, 0x051e, 0x0445, 0x03f9,
+ 0x0318, 0xfd6b, 0xfa69, 0xfb74, 0xfeca, 0x0623,
+ 0x0c57, 0x0cd6, 0x0a53, 0xff5b, 0xe92d, 0xdda6,
+ 0xea5f, 0xfa34, 0xfc53, 0xf80c, 0xf4d5, 0xf400,
+ 0xf2d3, 0xeb6c, 0xe043, 0xdb01, 0xe08f, 0xebcd,
+ 0xf34a, 0xf6e4, 0xfa29, 0xf787, 0xed39, 0xe535,
+ 0xe5fb, 0xea37, 0xebfb, 0xef50, 0xf50d, 0xf68a,
+ 0xf8a9, 0x00c3, 0x062c, 0x05a4, 0x0303, 0x0229,
+ 0x07a5, 0x0c01, 0x08b4, 0x0546, 0x02f3, 0x025d,
+ 0x05c4, 0x0406, 0x0225, 0x09ee, 0x0c48, 0x05b3,
+ 0x0464, 0x05ca, 0x03eb, 0x00bf, 0x01f6, 0x0ba2,
+ 0x0f40, 0x0681, 0x0213, 0xfefc, 0xf65a, 0xf796,
+ 0xff13, 0xfdca, 0xfcfd, 0x02b0, 0x0478, 0x0148,
+ 0x01fb, 0x05ce, 0x0343, 0xfb56, 0xf47c, 0xec54,
+ 0xe545, 0xe6ad, 0xedeb, 0xf5f3, 0xfce8, 0x0391,
+ 0x0a41, 0x08bb, 0x0019, 0xfede, 0x0379, 0x0500,
+ 0x0480, 0xfe4c, 0xefde, 0xe2f6, 0xe154, 0xe9f6,
+ 0xf08c, 0xf228, 0xfa18, 0x0128, 0xf8ee, 0xebd5,
+ 0xe361, 0xd9d2, 0xd01a, 0xca94, 0xcb37, 0xd974,
+ 0xf73e, 0x11cc, 0x12fc, 0x0560, 0x04e9, 0x0b2a,
+ 0x0484, 0x00ac, 0x0d62, 0x1518, 0x0cd3, 0x03c0,
+ 0xff3f, 0xfc38, 0xfebf, 0x04d0, 0x0564, 0xfe22,
+ 0xf625, 0xf95e, 0x059e, 0x088d, 0x0097, 0xfb2e,
+ 0xf9aa, 0xf896, 0xf4c9, 0xec8b, 0xea46, 0xf1c6,
+ 0xf8d8, 0xfb7f, 0xf9d0, 0xfa10, 0x00d1, 0xfd06,
+ 0xf1aa, 0xfd36, 0x14b7, 0x19ad, 0x14bc, 0x13a4,
+ 0x116a, 0x0921, 0xfcd1, 0xf7aa, 0xfaf2, 0xfd1c,
+ 0x06c3, 0x18d3, 0x1b07, 0x097b, 0xf6de, 0xf068,
+ 0xfd1a, 0x13f5, 0x2385, 0x28e8, 0x2461, 0x167b,
+ 0x0ae8, 0x092d, 0x0de4, 0x134a, 0x14fc, 0x1583,
+ 0x1475, 0x0afc, 0x03d8, 0x0f10, 0x2056, 0x23dd,
+ 0x18ea, 0x06e0, 0xf8cc, 0xf9d6, 0x0671, 0x0fe8,
+ 0x0cd4, 0x03d6, 0x0322, 0x09ee, 0x10b4, 0x19c9,
+ 0x1f02, 0x169e, 0x0b94, 0x07d1, 0x0502, 0x007a,
+ 0xfdbb, 0xffad, 0x0403, 0x03f3, 0x0430, 0x0a46,
+ 0x0c48, 0x08cf, 0x08c7, 0x0a9d, 0x0c48, 0x0d3d,
+ 0x07b6, 0xfd5b, 0xf7c7, 0xfc9f, 0x0478, 0x0205,
+ 0xf9b3, 0xf4cd, 0xec9d, 0xdf6d, 0xd36b, 0xd0ef,
+ 0xe4cd, 0xfdf9, 0x0301, 0x0c81, 0x26d4, 0x2a44,
+ 0x1278, 0x011a, 0xf864, 0xf285, 0xfb89, 0x0c02,
+ 0x09b5, 0xf62c, 0xecc2, 0xf28d, 0xf9ce, 0x00c0,
+ 0x02c7, 0xfcf5, 0xfd08, 0xfef4, 0xf6d9, 0xf1d8,
+ 0xf144, 0xea8b, 0xe779, 0xe70b, 0xdf96, 0xdd93,
+ 0xe58b, 0xeeb3, 0xf84f, 0xfac9, 0xf2f3, 0xee55,
+ 0xeda9, 0xeab6, 0xed89, 0xfa14, 0x06a7, 0x0a8b,
+ 0x08e6, 0x08eb, 0x05c4, 0xfbde, 0xf484, 0xf1c1,
+ 0xf159, 0xf716, 0xfd9c, 0xfe3e, 0xfbab, 0xf63a,
+ 0xf1c0, 0xf320, 0xf3bf, 0xf423, 0xfd05, 0x089f,
+ 0x0bea, 0x0607, 0xfea9, 0xfd8c, 0xfebd, 0xfe4b,
+ 0x0229, 0x07b9, 0x0983, 0x0ca8, 0x0ff4, 0x0e39,
+ 0x0a99, 0x06ab, 0x0448, 0x05ba, 0x0452, 0xfc05,
+ 0xf1f1, 0xee39, 0xf71c, 0x0224, 0x0222, 0x0153,
+ 0x0362, 0xf97d, 0xe9a8, 0xe2bc, 0xe15a, 0xe5e2,
+ 0xf2ae, 0xfe01, 0x04f6, 0x07d8, 0x0027, 0xf5e1,
+ 0xf94e, 0x07fc, 0x1562, 0x1c3f, 0x19b2, 0x0883,
+ 0xefdd, 0xe5cd, 0xec72, 0xefe2, 0xf29e, 0x0082,
+ 0x09ac, 0x00e7, 0xefae, 0xdcb1, 0xce17, 0xd29e,
+ 0xec89, 0x0317, 0xfe90, 0xf229, 0xfb42, 0x06e2,
+ 0x02fd, 0x0a1c, 0x1fa3, 0x25cd, 0x1fa8, 0x1f65,
+ 0x1b0e, 0x0a58, 0xfd75, 0xfcc8, 0xf946, 0xef00,
+ 0xee16, 0xf52f, 0xf6e7, 0xf74f, 0xf9dc, 0xfa80,
+ 0xfe50, 0x0494, 0x0351, 0xfb68, 0xf508, 0xf421,
+ 0xf387, 0xed6b, 0xec5d, 0xf25a, 0xeb2e, 0xe02b,
+ 0xedbf, 0x02ef, 0x06ab, 0x0656, 0x07ce, 0x00a8,
+ 0xf7a7, 0xf5e0, 0xf9d1, 0xfe7f, 0xfece, 0xff85,
+ 0xffd0, 0xf2a6, 0xe2a0, 0xe1bc, 0xe679, 0xea41,
+ 0xeef0, 0xeeca, 0xf1e5, 0xfcaf, 0xfe03, 0xf80e,
+ 0xfbe7, 0x03e2, 0x0252, 0xf8ff, 0xf5ba, 0xfbec,
+ 0xfbe1, 0xf61a, 0xff8f, 0x14bd, 0x1ceb, 0x11c6,
+ 0x0340, 0xfe55, 0xffd1, 0x03a2, 0x07d9, 0x020a,
+ 0xf3c0, 0xedb4, 0xf2a7, 0xf9ad, 0xfbbd, 0xf9a1,
+ 0xff29, 0x0a8a, 0x0d16, 0x0a10, 0x073a, 0x0183,
+ 0xff22, 0x008e, 0xfda4, 0xfd34, 0x0663, 0x0eb2,
+ 0x0dae, 0x0b1e, 0x0e71, 0x10e1, 0x0cd3, 0x05d3,
+ 0xfd08, 0xf675, 0xf988, 0x01df, 0x04dc, 0xffed,
+ 0xfb31, 0xfb39, 0xf302, 0xe0b3, 0xdcea, 0xed7d,
+ 0xf995, 0xf628, 0xf72c, 0x0a50, 0x1842, 0x10b0,
+ 0x0959, 0x070a, 0xfd2d, 0xf977, 0xfe13, 0xf9cf,
+ 0xf49b, 0xf815, 0xfb2c, 0xf8a0, 0xf095, 0xe7f0,
+ 0xe6fc, 0xf265, 0x06b2, 0x0f2b, 0x02ba, 0xf70e,
+ 0xf368, 0xef27, 0xed6f, 0xe9bf, 0xe024, 0xd9d0,
+ 0xd663, 0xd5aa, 0xdcda, 0xe7f3, 0xf308, 0xf80e,
+ 0xf599, 0xf860, 0xf9da, 0xece7, 0xe545, 0xf06e,
+ 0xfc96, 0xfe53, 0xfc7e, 0xfcbe, 0xf9b2, 0xf213,
+ 0xf0cb, 0xf765, 0x008f, 0x0c40, 0x12c0, 0x0e17,
+ 0x02f2, 0xf4fe, 0xeb62, 0xe985, 0xea60, 0xeee6,
+ 0xf404, 0xf832, 0x044d, 0x0f6f, 0x1035, 0x1299,
+ 0x15dc, 0x1320, 0x0e47, 0x07ed, 0x084c, 0x0d7b,
+ 0x03f1, 0xfb15, 0x07c8, 0x1213, 0x0c67, 0x045e,
+ 0xfcd1, 0xf9b8, 0x01f3, 0x0f99, 0x1a2f, 0x1d23,
+ 0x1976, 0x12c3, 0x0a9e, 0x0694, 0x063a, 0x033b,
+ 0x0457, 0x0aeb, 0x08c9, 0xfece, 0xfbe9, 0x046a,
+ 0x0e2b, 0x0cc5, 0x054c, 0x076c, 0x12de, 0x1bd4,
+ 0x1975, 0x09d4, 0xf683, 0xe9bd, 0xe386, 0xe026,
+ 0xdbc3, 0xd5a5, 0xd0f6, 0xd1b4, 0xe16b, 0xfd7d,
+ 0x0a54, 0x03e2, 0x091b, 0x19fb, 0x1b3d, 0x1284,
+ 0x1101, 0x0edb, 0x0835, 0x0808, 0x0cfd, 0x0b24,
+ 0x0368, 0x0297, 0x08dc, 0x093e, 0x064c, 0x0bc1,
+ 0x12bd, 0x129d, 0x11b8, 0x0fc3, 0x0433, 0xf466,
+ 0xee3b, 0xf09c, 0xf009, 0xee40, 0xf1b2, 0xf49c,
+ 0xf61e, 0xfa29, 0xf965, 0xf427, 0xf4d6, 0xf887,
+ 0xf863, 0xf3a1, 0xea8e, 0xe208, 0xdbd8, 0xd90a,
+ 0xe376, 0xf4fd, 0xf737, 0xe991, 0xdd5d, 0xdc04,
+ 0xe5a5, 0xf5b2, 0x0691, 0x0f3b, 0x0780, 0xf94a,
+ 0xf22b, 0xee8e, 0xedc4, 0xf4f1, 0xf9e1, 0xf431,
+ 0xefe4, 0xf50a, 0xfa2f, 0xfb44, 0xffe1, 0x0597,
+ 0x03c0, 0xfef0, 0xfc1b, 0xf602, 0xee5d, 0xeeb8,
+ 0xf8cf, 0x0426, 0x073b, 0x037d, 0x01a6, 0x03c3,
+ 0x0977, 0x12b3, 0x174a, 0x1321, 0x0fb4, 0x0f98,
+ 0x0940, 0xfe15, 0xfb2c, 0x0131, 0x04b8, 0x0204,
+ 0xfc43, 0xf6ad, 0xf6b8, 0xfa47, 0xf68c, 0xeed7,
+ 0xf195, 0xfb33, 0xfce5, 0xfc40, 0x07b7, 0x1570,
+ 0x163c, 0x0e88, 0xfc1e, 0xdcdb, 0xcd75, 0xdb70,
+ 0xea4d, 0xead8, 0xe727, 0xebf7, 0x00cb, 0x0d0a,
+ 0xf966, 0xe9eb, 0xf9b1, 0x089f, 0x0708, 0x0632,
+ 0x0642, 0xfdf4, 0xef9d, 0xe57f, 0xe792, 0xf215,
+ 0xfbdb, 0xfafe, 0xef46, 0xed42, 0xf95a, 0xff16,
+ 0xffe4, 0x017c, 0xf6d6, 0xe9ba, 0xed3b, 0xf66b,
+ 0xf774, 0xf42f, 0xf712, 0x0213, 0x06e8, 0x025e,
+ 0x005c, 0xfb54, 0xeeb1, 0xe793, 0xe72a, 0xea49,
+ 0xf62c, 0x0059, 0xfbeb, 0xf464, 0xf5c8, 0xfa89,
+ 0xff50, 0x0750, 0x0f27, 0x122f, 0x0f9a, 0x0723,
+ 0xff3b, 0xfade, 0xf23d, 0xee34, 0xfe04, 0x12f7,
+ 0x1d31, 0x2444, 0x2937, 0x23cd, 0x1653, 0x0b63,
+ 0x09ce, 0x094d, 0x0026, 0xf81b, 0xfb79, 0x0339,
+ 0x0643, 0x0424, 0x01fd, 0x02fc, 0x057b, 0x0c1d,
+ 0x1b76, 0x2a80, 0x293b, 0x1a47, 0x103d, 0x0e42,
+ 0x0856, 0xfd90, 0xf4fd, 0xf274, 0xf726, 0xfeff,
+ 0x080a, 0x123b, 0x1769, 0x1a6d, 0x209d, 0x1cb3,
+ 0x08f8, 0xf6a7, 0xf329, 0xfc9c, 0x0625, 0x066c,
+ 0x0590, 0x0ac7, 0x0e96, 0x0ab6, 0x0492, 0x0586,
+ 0x0b27, 0x0985, 0xff0e, 0xf4e3, 0xeffd, 0xeaa1,
+ 0xe3e5, 0xecd4, 0x0246, 0x0634, 0x00cd, 0x0ff2,
+ 0x2555, 0x28dc, 0x1fc9, 0x1416, 0x09a9, 0x02a0,
+ 0x01db, 0x06a8, 0x07af, 0x0713, 0x0ec0, 0x178b,
+ 0x182a, 0x0e81, 0xfc0a, 0xee29, 0xecb2, 0xf355,
+ 0xfeff, 0x0630, 0x044b, 0xff4a, 0xf53d, 0xeaf6,
+ 0xe9e2, 0xecd3, 0xf0fe, 0xf2e2, 0xefd8, 0xf49e,
+ 0xfc0f, 0xfa6c, 0xfd71, 0x013a, 0xf97b, 0xf5d3,
+ 0xf803, 0xf6b8, 0xf89c, 0xfb7b, 0xff5d, 0x0992,
+ 0x0b4a, 0xfe29, 0xedf2, 0xe211, 0xe486, 0xf38c,
+ 0xfbf6, 0xfb5d, 0xfbb0, 0xff0a, 0x03f6, 0x05d8,
+ 0x057d, 0x0aa1, 0x0eed, 0x07e6, 0x0117, 0x0851,
+ 0x1310, 0x1430, 0x0d2c, 0xfded, 0xebba, 0xe5f0,
+ 0xeba4, 0xf590, 0x0390, 0x09d1, 0x062b, 0x093e,
+ 0x1015, 0x0fca, 0x0939, 0xfc37, 0xf59e, 0x0142,
+ 0x0df9, 0x120c, 0x1358, 0x0b4c, 0xfd5c, 0xfa7d,
+ 0x023b, 0x080b, 0x0320, 0xfaaf, 0x015d, 0x0e45,
+ 0x0941, 0xfafa, 0xf4f0, 0xf718, 0xff6e, 0x0160,
+ 0xf956, 0x0327, 0x1ac5, 0x1a3f, 0x0a95, 0x0568,
+ 0x01a9, 0xfa34, 0xed1a, 0xd4f4, 0xcc88, 0xe884,
+ 0x0aaf, 0x13c9, 0x1054, 0x1b7e, 0x2978, 0x1d52,
+ 0x0911, 0x012c, 0xf155, 0xe1c4, 0xebcf, 0xf9a4,
+ 0xf955, 0xf9ae, 0xfdde, 0xfee8, 0xfb29, 0xf8e7,
+ 0x04c7, 0x18ad, 0x2139, 0x1d78, 0x1659, 0x0d4c,
+ 0x0221, 0xf975, 0xf7aa, 0xf9d8, 0xfbba, 0xfbc2,
+ 0xf95b, 0xf877, 0xf769, 0xee5f, 0xe32b, 0xde3a,
+ 0xdbff, 0xdbaf, 0xe0f6, 0xea32, 0xf026, 0xefdb,
+ 0xf2d8, 0xfd26, 0x06a1, 0x09cf, 0x0191, 0xf49a,
+ 0xf3bc, 0xf87c, 0xfbe3, 0x0610, 0x0ab8, 0x0324,
+ 0xfcfb, 0xf3c1, 0xe756, 0xe2d1, 0xdfc2, 0xe2e6,
+ 0xf321, 0xf9e9, 0xefed, 0xe71a, 0xe47c, 0xe45a,
+ 0xe3e0, 0xe2b3, 0xe3da, 0xe788, 0xf299, 0x0353,
+ 0x05de, 0xf7f1, 0xed93, 0xecba, 0xeff8, 0xf5aa,
+ 0xfbae, 0x0006, 0x035c, 0x067b, 0x0969, 0x0c2d,
+ 0x0abe, 0x003c, 0xf6bf, 0xfbf8, 0x0a97, 0x1523,
+ 0x1057, 0xfd3f, 0xf21b, 0xf659, 0xf95a, 0xf7d5,
+ 0xf4d0, 0xefba, 0xee09, 0xed3d, 0xee59, 0xf90f,
+ 0x0037, 0xff81, 0x0656, 0x0ab6, 0x0145, 0xf97c,
+ 0xf4d5, 0xe967, 0xe5cf, 0xfa10, 0x0fcc, 0x083e,
+ 0xf8da, 0x04cb, 0x1489, 0x0c8f, 0x0587, 0x0e32,
+ 0x1515, 0x1534, 0x0f67, 0x0123, 0xf9a7, 0x02d7,
+ 0x0baf, 0x0955, 0x016c, 0xfd39, 0x0b46, 0x2193,
+ 0x2060, 0x129e, 0x119c, 0x0cb1, 0x00b7, 0x0375,
+ 0x0c9b, 0x0d16, 0x0610, 0xf87d, 0xefc8, 0xf785,
+ 0x0695, 0x0cd2, 0x0387, 0xf7f0, 0xf8a7, 0xfe07,
+ 0x0273, 0x059b, 0xffdf, 0xf9fa, 0xfd1b, 0xff0f,
+ 0x0193, 0x0752, 0x05fb, 0x0485, 0x085e, 0x0523,
+ 0x024f, 0x0dbd, 0x16dc, 0x0f98, 0x08ef, 0x0d64,
+ 0x0f16, 0x09be, 0x0466, 0xffbe, 0x0324, 0x0ebe,
+ 0x10d0, 0x0bb2, 0x0a45, 0x04b2, 0xfee6, 0xfe92,
+ 0xf6d2, 0xedb4, 0xf2f6, 0xff18, 0x093b, 0x0cfe,
+ 0x03ae, 0xf469, 0xecd8, 0xf236, 0x0132, 0x0dae,
+ 0x104d, 0x0ccb, 0x0542, 0xfd9f, 0xfd4f, 0x01b0,
+ 0x0380, 0x047e, 0x0aa2, 0x1560, 0x1d07, 0x1b11,
+ 0x107c, 0x0583, 0x0348, 0x090b, 0x0e23, 0x0fdf,
+ 0x0e5e, 0x0469, 0xf4d6, 0xedd6, 0xf138, 0xf151,
+ 0xecba, 0xf09e, 0xfb2a, 0xfd76, 0xf913, 0xf3b5,
+ 0xe889, 0xead4, 0x0ea9, 0x2bd5, 0x2257, 0x190d,
+ 0x1ea0, 0x121a, 0xfe05, 0x0035, 0x0f56, 0x1eb1,
+ 0x29d0, 0x262f, 0x17bf, 0x0c44, 0x07dc, 0x0aa5,
+ 0x1082, 0x1141, 0x0e74, 0x0f65, 0x0de5, 0x0039,
+ 0xf091, 0xeae7, 0xecb2, 0xfb5d, 0x173e, 0x24f7,
+ 0x1685, 0x005d, 0xf503, 0xf373, 0xf2f1, 0xf3be,
+ 0xfc29, 0x03ce, 0xff76, 0xf215, 0xe150, 0xd5e2,
+ 0xd71c, 0xdee5, 0xe83c, 0xeffe, 0xf0a8, 0xef8a,
+ 0xecba, 0xe218, 0xdd7c, 0xe59f, 0xea22, 0xe892,
+ 0xe96f, 0xed5e, 0xf636, 0x002d, 0x023f, 0xfecd,
+ 0xfd1d, 0x0024, 0x05be, 0x0766, 0x04ae, 0x0150,
+ 0xfc90, 0xf863, 0xf754, 0xf6bb, 0xf574, 0xf1d7,
+ 0xecd8, 0xef75, 0xf6df, 0xf737, 0xf956, 0x083f,
+ 0x1389, 0x0bd1, 0xfb79, 0xf100, 0xedec, 0xed48,
+ 0xeb6c, 0xe8e8, 0xeb92, 0xf88a, 0x07f3, 0x0c2c,
+ 0x0867, 0x0835, 0x0a06, 0x0c1b, 0x13c8, 0x199e,
+ 0x12c1, 0x078a, 0x014d, 0xfb5a, 0xf6f1, 0xfb6d,
+ 0x0389, 0x0748, 0x0875, 0x096b, 0x0b42, 0x0f7c,
+ 0x0f8a, 0xff51, 0xdf84, 0xc668, 0xc749, 0xd9a3,
+ 0xf0ce, 0x09cc, 0x1521, 0x1307, 0x23e5, 0x4012,
+ 0x3b04, 0x1e52, 0x118b, 0x12d9, 0x156e, 0x1cc4,
+ 0x23ca, 0x1fa6, 0x0d91, 0xf614, 0xee33, 0xfbaf,
+ 0x07d1, 0x0815, 0x08e1, 0x0bf9, 0x0c71, 0x0f30,
+ 0x1176, 0x07d7, 0xf52a, 0xe742, 0xe387, 0xe493,
+ 0xe381, 0xdf5f, 0xdef7, 0xe805, 0xf446, 0xfbc4,
+ 0x0159, 0x02cc, 0xf7f6, 0xec68, 0xf186, 0x00c1,
+ 0x0a4d, 0x0747, 0xf8ab, 0xeb02, 0xeb6a, 0xf21f,
+ 0xefdc, 0xebea, 0xf68e, 0x072e, 0x09f0, 0xfc9d,
+ 0xec45, 0xeb75, 0xf919, 0xfae7, 0xf33b, 0xf93b,
+ 0xfeee, 0xfba1, 0x04a9, 0x1180, 0x1322, 0x1706,
+ 0x18f3, 0x1166, 0x11d6, 0x169b, 0x0fe4, 0x0ba4,
+ 0x12f9, 0x148d, 0x093c, 0xfc6f, 0xf386, 0xee29,
+ 0xf4eb, 0x09d2, 0x197b, 0x18eb, 0x159b, 0x1444,
+ 0x0929, 0xf883, 0xf480, 0xfc99, 0x000a, 0xfa67,
+ 0xf846, 0x0309, 0x10a5, 0x107e, 0x0659, 0x01f6,
+ 0x02ff, 0xff47, 0xf827, 0xf6d7, 0xfcff, 0x0640,
+ 0x100b, 0x135a, 0x0bd8, 0x04f1, 0x03c4, 0x01ce,
+ 0x0124, 0xfc49, 0xe97f, 0xd7ab, 0xd67e, 0xe5ab,
+ 0xfdb8, 0x07ca, 0x0155, 0x0c22, 0x258a, 0x2543,
+ 0x0d7a, 0x01c0, 0x0815, 0x0e80, 0x1356, 0x1b61,
+ 0x1b8b, 0x1302, 0x10a4, 0x15b6, 0x1b2a, 0x18c6,
+ 0x0bb5, 0x04a9, 0x06c9, 0x02bc, 0xfda8, 0xfd53,
+ 0xfde5, 0x02da, 0x027e, 0xf682, 0xeba0, 0xe191,
+ 0xda37, 0xdd0f, 0xe013, 0xe48c, 0xec3f, 0xe6f3,
+ 0xde70, 0xe2fc, 0xea0e, 0xf02e, 0xf84d, 0xffc3,
+ 0x0533, 0x03b3, 0x042c, 0x10f8, 0x187b, 0x1220,
+ 0x0b04, 0x092e, 0x0b58, 0x0886, 0xff5e, 0xfa54,
+ 0xf435, 0xf1f9, 0x00a4, 0x0618, 0xf6ab, 0xf06e,
+ 0xf519, 0xf5af, 0xf94d, 0x0176, 0x0474, 0x0071,
+ 0x01f9, 0x113c, 0x1bbe, 0x1a19, 0x1f6a, 0x268d,
+ 0x1f0f, 0x149f, 0x11e8, 0x0f2c, 0x08ed, 0x067e,
+ 0x09cc, 0x08d0, 0x031c, 0x0262, 0x0403, 0x03cb,
+ 0x0098, 0xf36c, 0xe453, 0xe431, 0xee5f, 0xf67a,
+ 0xf84d, 0xf3dd, 0xf2b1, 0xfbe9, 0x03ce, 0x01eb,
+ 0x01ce, 0x0776, 0x0552, 0xfd28, 0xfe67, 0x04fc,
+ 0x0632, 0x07c8, 0x0eb1, 0x12c5, 0x0b55, 0xfd42,
+ 0xf64b, 0xf2ce, 0xe178, 0xcf00, 0xddf6, 0x04d9,
+ 0x15ee, 0x0fc1, 0x16f0, 0x2ae8, 0x2dc8, 0x1c9f,
+ 0x0ef7, 0x10f8, 0x1650, 0x17c2, 0x1950, 0x124d,
+ 0x06ef, 0x0a92, 0x13ed, 0x17c6, 0x16f1, 0x090e,
+ 0x0222, 0x0f35, 0x0a9c, 0xf945, 0xfc26, 0xfcaf,
+ 0xf5b2, 0xfc9d, 0x0167, 0xfe2e, 0xfae8, 0xf354,
+ 0xf671, 0xff5d, 0xf0b5, 0xdd56, 0xe192, 0xee39,
+ 0xf19f, 0xebef, 0xe56b, 0xe5e3, 0xeca3, 0xf770,
+ 0x0107, 0x0340, 0x0433, 0x0e61, 0x1f93, 0x22c7,
+ 0x0f83, 0x0120, 0x00a3, 0xfa8e, 0xf507, 0xf5b0,
+ 0xf18a, 0xf42e, 0x0062, 0x0131, 0xf6ce, 0xee74,
+ 0xebdd, 0xea6f, 0xe53e, 0xe893, 0xf950, 0x01e7,
+ 0xfb22, 0xf37f, 0xf826, 0x0b45, 0x1a4e, 0x1c33,
+ 0x1fbd, 0x20bd, 0x16cf, 0x1104, 0x0eff, 0x04c1,
+ 0xfdc5, 0x0552, 0x125e, 0x198b, 0x191c, 0x1567,
+ 0x0dec, 0xfd6d, 0xea26, 0xe3c5, 0xec72, 0xf76b,
+ 0xfc87, 0xfbc1, 0xf9d9, 0xfc9b, 0xfc6c, 0xf2ea,
+ 0xee16, 0xeccf, 0xdef8, 0xd766, 0xe7a1, 0xf401,
+ 0xf48b, 0x043e, 0x1944, 0x1926, 0x0ef8, 0x0236,
+ 0xea72, 0xd7b9, 0xd79f, 0xe4c9, 0x0048, 0x18a5,
+ 0x16a7, 0x0d2c, 0x0c9a, 0x0995, 0x0560, 0x0601,
+ 0x0c24, 0x1672, 0x18b4, 0x1299, 0x07f1, 0xf3b2,
+ 0xecd6, 0xfeb4, 0x0948, 0x0a00, 0x0ed7, 0x0be9,
+ 0x07d3, 0x0972, 0x0128, 0xf7de, 0xfc3a, 0x0595,
+ 0x0b5c, 0x085f, 0x019f, 0x01a8, 0x019f, 0xffe3,
+ 0x04f4, 0x05c7, 0xf8a1, 0xef12, 0xf77d, 0x00ba,
+ 0xf93e, 0xedd9, 0xe972, 0xe9e7, 0xf619, 0x04d0,
+ 0x03ae, 0xff7a, 0x03d1, 0x07c2, 0x09e8, 0x0b2b,
+ 0x0bb6, 0x0e5b, 0x0ef4, 0x0d1e, 0x0c0e, 0x094f,
+ 0x050f, 0x018c, 0x0364, 0x0a2b, 0x083b, 0xfcbf,
+ 0xf293, 0xebb0, 0xebd6, 0xef2f, 0xedd4, 0xef5f,
+ 0xf01a, 0xed25, 0xf884, 0x0a74, 0x126d, 0x1abb,
+ 0x2263, 0x2255, 0x1e08, 0x12c8, 0x0947, 0x0930,
+ 0x0a47, 0x14ef, 0x276a, 0x27f7, 0x1d6e, 0x1c5c,
+ 0x188b, 0x07d0, 0xfd05, 0x0370, 0x05df, 0xfb95,
+ 0xfe02, 0x0dee, 0x13ca, 0x1091, 0x08c5, 0xfd74,
+ 0xfe85, 0x0c23, 0x1043, 0x004a, 0xecf0, 0xee61,
+ 0xfc08, 0x025c, 0x0a0a, 0x1044, 0x0225, 0xea55,
+ 0xde5f, 0xe553, 0xf9e2, 0x0a0a, 0x0dfd, 0x0f36,
+ 0x155a, 0x1f38, 0x1fd8, 0x149d, 0x10a6, 0x1738,
+ 0x1c2e, 0x1c04, 0x11f5, 0x0000, 0xf1f0, 0xeb91,
+ 0xf175, 0x02f9, 0x0c6e, 0x0306, 0xf4cd, 0xf321,
+ 0xfe2e, 0x07c1, 0x05db, 0xf8ae, 0xec3a, 0xedbe,
+ 0xf1eb, 0xed06, 0xec5f, 0xf451, 0xfe93, 0x08d6,
+ 0x0666, 0xf91c, 0xf457, 0xf41b, 0xf311, 0xfb9e,
+ 0x05de, 0x025c, 0xf438, 0xe8de, 0xe98a, 0xef3a,
+ 0xef36, 0xf065, 0xf9a4, 0xfcbe, 0xeefd, 0xe759,
+ 0xf700, 0xfed1, 0xf0fa, 0xf0a9, 0xfd26, 0xf72f,
+ 0xedb1, 0xf939, 0x09eb, 0x081a, 0xf5e4, 0xeb45,
+ 0xf1f6, 0xf6d1, 0xf17d, 0xed87, 0xedcd, 0xf017,
+ 0xf6da, 0xfec4, 0xfdb8, 0xf0e6, 0xe3a0, 0xe2f0,
+ 0xf235, 0x08aa, 0x12c0, 0x0964, 0x0059, 0x05f4,
+ 0x0dc0, 0x095a, 0xfc96, 0xf2d0, 0xf2e2, 0xfec5,
+ 0x0c23, 0x0a6a, 0xfce9, 0xf010, 0xe679, 0xe708,
+ 0xf122, 0xf7e1, 0xff98, 0x07d8, 0x01f6, 0xfdc7,
+ 0x09b5, 0x0a4f, 0xf4b6, 0xe381, 0xe41c, 0xee78,
+ 0xfbb5, 0x0437, 0xf97d, 0xdeb8, 0xd31b, 0xe2d2,
+ 0xf86f, 0x0474, 0x0258, 0xfa63, 0x0579, 0x1cc8,
+ 0x1c55, 0x0783, 0xfd51, 0x0101, 0x03d0, 0x023e,
+ 0x009e, 0xff1f, 0x003e, 0x0a50, 0x13fe, 0x0df9,
+ 0xfe6d, 0xf1e6, 0xe9d3, 0xe541, 0xe341, 0xe732,
+ 0xf37d, 0xfb1e, 0xf930, 0xfbf6, 0xff9a, 0xf4b0,
+ 0xe599, 0xe3a8, 0xed62, 0xf816, 0xf7e5, 0xec30,
+ 0xe401, 0xe3ad, 0xe335, 0xe50c, 0xec3c, 0xf290,
+ 0xf49c, 0xf2b9, 0xf10a, 0xf318, 0xf298, 0xf08f,
+ 0xf4f7, 0xf652, 0xee51, 0xe706, 0xdf5b, 0xd7c4,
+ 0xdde6, 0xeceb, 0xf6b0, 0xfa52, 0xf389, 0xe394,
+ 0xdc4f, 0xe088, 0xe568, 0xeeae, 0xfdab, 0x0532,
+ 0x0322, 0xff67, 0xf8c3, 0xee28, 0xe4ca, 0xde75,
+ 0xdeb9, 0xeaa3, 0xf8b4, 0xf9dc, 0xf413, 0xfa8f,
+ 0x0bac, 0x1222, 0x075d, 0xf766, 0xedae, 0xef66,
+ 0xf77d, 0x0181, 0x1242, 0x1d75, 0x148b, 0x0a6d,
+ 0x0713, 0xf81c, 0xe717, 0xe6a7, 0xf048, 0xfe9c,
+ 0x0998, 0x037a, 0xf491, 0xebc5, 0xea9e, 0xed4c,
+ 0xef53, 0xf60a, 0x034c, 0x0627, 0xff1d, 0xfcc2,
+ 0xf1f8, 0xd678, 0xc584, 0xd283, 0xef59, 0x04ed,
+ 0x0f6c, 0x1910, 0x1db7, 0x14fe, 0x0b92, 0x0eb1,
+ 0x18a2, 0x1d28, 0x1872, 0x14a5, 0x1727, 0x1691,
+ 0x1611, 0x1cbe, 0x19b4, 0x08c6, 0x00d6, 0x0362,
+ 0x01d9, 0x0048, 0x06c0, 0x123d, 0x15fc, 0x08a7,
+ 0xfbd4, 0xfdfe, 0xfbff, 0xf03b, 0xf0e4, 0x0335,
+ 0x16a1, 0x187e, 0x0999, 0x004b, 0xfde3, 0xf4d6,
+ 0xefd5, 0xf714, 0x0267, 0x0b38, 0x0989, 0x0557,
+ 0x0add, 0x099f, 0xfcfa, 0xf652, 0xf55b, 0xf7ac,
+ 0xfc76, 0xfcfe, 0xfd0c, 0xf85a, 0xf235, 0x0117,
+ 0x0e10, 0xfcea, 0xef33, 0xf5ad, 0xffe6, 0x0c0a,
+ 0x0b2e, 0xfd5e, 0x0199, 0x0cdb, 0x06af, 0x00c6,
+ 0x079e, 0x0eec, 0x0b7a, 0x03a8, 0x0993, 0x1329,
+ 0x0b81, 0x0122, 0xffc5, 0xfc14, 0xf7e9, 0xfa72,
+ 0xfefb, 0x0086, 0x022a, 0x08a8, 0x0c59, 0x0814,
+ 0x0496, 0x004f, 0xfd35, 0x08f2, 0x1585, 0x1648,
+ 0x21b5, 0x3553, 0x3103, 0x1972, 0x0b50, 0x07f7,
+ 0x0108, 0xfa48, 0xfe33, 0x0716, 0x0f24, 0x1771,
+ 0x171d, 0x09dd, 0xfc65, 0xf84e, 0xfc06, 0x007f,
+ 0x00af, 0xfcbb, 0xf491, 0xf164, 0xfb14, 0xfc86,
+ 0xeefd, 0xf2ad, 0x03d2, 0xffae, 0xf971, 0x1107,
+ 0x2aed, 0x28f4, 0x1b47, 0x14e5, 0x120b, 0x0cbd,
+ 0x0759, 0x052f, 0x049a, 0x05bd, 0x0d2c, 0x15ea,
+ 0x12c4, 0x01c4, 0xee3e, 0xe5b1, 0xee15, 0x001f,
+ 0x0f2f, 0x13a6, 0x0e25, 0x0564, 0xfaff, 0xecc9,
+ 0xe151, 0xdf5c, 0xe595, 0xf172, 0xff80, 0x08a4,
+ 0x01fa, 0xed10, 0xe389, 0xec62, 0xf1a2, 0xf895,
+ 0x0d04, 0x1763, 0x11be, 0x0f04, 0x0adf, 0x00c3,
+ 0xf9d5, 0xf33a, 0xed48, 0xf43d, 0x0793, 0x1466,
+ 0x0ca4, 0xfdd6, 0xfaae, 0xfe4d, 0x030a, 0x06a9,
+ 0xfbda, 0xe975, 0xe9fa, 0xfe19, 0x112e, 0x16a8,
+ 0x1016, 0x0411, 0xf1ce, 0xde48, 0xd9c9, 0xe444,
+ 0xf596, 0x0ebb, 0x225a, 0x2176, 0x164d, 0x078f,
+ 0xf233, 0xe2b1, 0xe3a6, 0xf04e, 0x0389, 0x12e2,
+ 0x0f11, 0xfa2d, 0xe794, 0xe52f, 0xeec1, 0xfb3b,
+ 0x0c67, 0x2256, 0x3343, 0x37e6, 0x2c15, 0x146d,
+ 0x0116, 0xf564, 0xeebc, 0xf392, 0xf697, 0xec59,
+ 0xf093, 0x09b3, 0x15e8, 0x12cb, 0x137d, 0x1000,
+ 0xfef7, 0xee9e, 0xf366, 0x0838, 0x0d0b, 0x0166,
+ 0x05be, 0x1062, 0x0448, 0xf162, 0xec81, 0xf088,
+ 0xfacc, 0x0998, 0x1a8b, 0x2f89, 0x3a49, 0x29f0,
+ 0x099a, 0xef28, 0xe54c, 0xed3c, 0x00bf, 0x1105,
+ 0x0c06, 0xf707, 0xf06e, 0xfce4, 0x0241, 0xfa47,
+ 0xf40e, 0xf687, 0xfc2f, 0xfdae, 0xfdd7, 0xfef7,
+ 0xf93b, 0xeec2, 0xe98d, 0xe9f7, 0xe999, 0xe2aa,
+ 0xe232, 0xf88c, 0x0e8f, 0x0dc8, 0x0571, 0xfbcd,
+ 0xf04a, 0xf0d0, 0xfe53, 0x125e, 0x22fb, 0x1f89,
+ 0x105d, 0x0343, 0xf58c, 0xefcb, 0xf3db, 0xf876,
+ 0x009a, 0x03bb, 0x00a8, 0x0bc1, 0x16d7, 0x096a,
+ 0xf2fb, 0xec7c, 0xfe82, 0x10db, 0x07bb, 0xfde4,
+ 0x06bf, 0x06a5, 0xff73, 0x0368, 0x06cf, 0x0247,
+ 0xf879, 0xf005, 0xf610, 0x03a5, 0x0763, 0xff89,
+ 0xf72e, 0xfcba, 0x095e, 0x092d, 0xfda7, 0xf180,
+ 0xed30, 0xf646, 0x035b, 0x09e9, 0x0294, 0xf09f,
+ 0xef83, 0xff36, 0x0544, 0x0e77, 0x2331, 0x2975,
+ 0x1f7b, 0x12c6, 0x0a1e, 0x07f3, 0xfb81, 0xeb24,
+ 0xf5a3, 0x094a, 0x0992, 0x048c, 0x0287, 0xfc17,
+ 0xf5ec, 0xfb04, 0x0b55, 0x0fa6, 0x02de, 0x0884,
+ 0x1dd2, 0x1a06, 0x09da, 0x0b79, 0x0fa7, 0x0f30,
+ 0x165f, 0x1a8d, 0x1823, 0x1d85, 0x1f70, 0x112f,
+ 0x04cf, 0x042e, 0x089d, 0x10ca, 0x129f, 0x033c,
+ 0xf12a, 0xf0a2, 0xffc6, 0x0ea0, 0x131f, 0x0a78,
+ 0xf84a, 0xee14, 0xf0c1, 0xecd1, 0xe62b, 0xee33,
+ 0xf7d0, 0xfc11, 0x0402, 0x05c0, 0xffc3, 0xff49,
+ 0xfd9f, 0xf3e9, 0xed18, 0xec7d, 0xe7f9, 0xdf2c,
+ 0xe10a, 0xf03a, 0x0149, 0x101f, 0x1292, 0x04ba,
+ 0xfddd, 0x016b, 0x00d1, 0x05a2, 0x0b4a, 0xff9a,
+ 0xf4be, 0xfbb5, 0x072f, 0x0de3, 0x0d48, 0x0264,
+ 0xf326, 0xed0e, 0xf92e, 0x0a42, 0x0abe, 0xff72,
+ 0xfafc, 0x01f4, 0x0eb2, 0x17fb, 0x1339, 0x0131,
+ 0xf4c0, 0xf7c9, 0xf97b, 0xf4c7, 0xf7fc, 0xfb3b,
+ 0xf518, 0xf652, 0x0111, 0x0642, 0x0b5d, 0x1606,
+ 0x1406, 0x0099, 0xf402, 0xf52f, 0xf33f, 0xef37,
+ 0xf0cf, 0xf292, 0xf6fd, 0xff0b, 0x0122, 0x0066,
+ 0x03c2, 0x0aee, 0x1587, 0x1be9, 0x1b25, 0x1a3f,
+ 0x14fa, 0x0746, 0xf860, 0xec53, 0xe4e7, 0xe43a,
+ 0xed8f, 0xfcd9, 0xfd65, 0xf212, 0xf796, 0x02e7,
+ 0xfaa9, 0xf289, 0xfb7f, 0x024d, 0xfeb5, 0x0055,
+ 0x08d0, 0x0986, 0x0848, 0x1233, 0x1910, 0x1539,
+ 0x1619, 0x197f, 0x1714, 0x1998, 0x2246, 0x235f,
+ 0x1ea2, 0x2171, 0x2645, 0x1e47, 0x0ea1, 0xfefa,
+ 0xf3eb, 0xfcce, 0x0b67, 0x0208, 0xf20e, 0xeb1f,
+ 0xe211, 0xe65d, 0xfc54, 0x0cfb, 0x1a2c, 0x1d7f,
+ 0x097b, 0xfc6a, 0x00ff, 0xf6d6, 0xe3b9, 0xe360,
+ 0xe9fe, 0xe710, 0xeaa5, 0xfdc4, 0x07c0, 0xfce5,
+ 0xf2ec, 0xf3dc, 0xf681, 0xf65b, 0xf343, 0xf35e,
+ 0xf9db, 0xff4f, 0x0452, 0x07da, 0x0182, 0xf75a,
+ 0xec67, 0xe0d3, 0xe879, 0xfda2, 0xfe85, 0xf4a0,
+ 0xfbd7, 0x0601, 0x00b5, 0xf749, 0xf352, 0xef1c,
+ 0xeba1, 0xeff1, 0xf26f, 0xe748, 0xdc14, 0xdff9,
+ 0xeade, 0xf333, 0xfcd7, 0x0878, 0x07da, 0xf466,
+ 0xe51b, 0xec93, 0xfa8e, 0xfbc3, 0xf0a9, 0xe32c,
+ 0xdfd4, 0xe840, 0xf281, 0xfb8b, 0x04fd, 0x0be8,
+ 0x0952, 0xfbc8, 0xf338, 0xf84a, 0xfe80, 0x049a,
+ 0x0a45, 0x03ac, 0xfa9d, 0xf2be, 0xdd47, 0xd307,
+ 0xe6a6, 0xf266, 0xf062, 0x0144, 0x16fb, 0x155d,
+ 0x09cc, 0x0710, 0x099e, 0x0c04, 0x103f, 0x0fe2,
+ 0x07a3, 0x0b0b, 0x1c66, 0x204a, 0x14f1, 0x0b0e,
+ 0xffeb, 0xf431, 0xf35f, 0xfc67, 0x025a, 0x0039,
+ 0x04f2, 0x1264, 0x0f0e, 0x00c4, 0x03be, 0x08e1,
+ 0xfef6, 0xfa12, 0xfb90, 0xf19c, 0xe764, 0xec83,
+ 0xf46d, 0xf47a, 0xf4f8, 0xf3a1, 0xe849, 0xe33e,
+ 0xedcd, 0xf38a, 0xf1f5, 0xf8db, 0x0246, 0x084f,
+ 0x100a, 0x103a, 0x05b8, 0xff40, 0x005b, 0x067a,
+ 0x138d, 0x201e, 0x24bd, 0x1fe8, 0x0e6f, 0xfca5,
+ 0xfeac, 0x0d8e, 0x135e, 0x0a77, 0xfed8, 0xfb8f,
+ 0xfa7f, 0xf764, 0xfc4a, 0x0430, 0x03f6, 0x043f,
+ 0x094e, 0x0d6d, 0x0d4d, 0x051b, 0x009b, 0x09d6,
+ 0x0ea3, 0x0a02, 0x0529, 0xf6e8, 0xe85e, 0xf162,
+ 0x0802, 0x18db, 0x1e9d, 0x1757, 0x0c59, 0x0688,
+ 0x0052, 0xf803, 0xf2b0, 0xf198, 0xf57b, 0xff92,
+ 0x0a42, 0x0dfd, 0x1005, 0x14da, 0x11bb, 0x07b9,
+ 0x0510, 0x0af4, 0x1724, 0x244c, 0x2309, 0x1339,
+ 0x0514, 0x00d8, 0xfe8a, 0xf571, 0xf687, 0x0ae6,
+ 0x1569, 0x15fa, 0x2561, 0x2940, 0x10db, 0x045b,
+ 0x0cbf, 0x0f4c, 0x0eba, 0x1303, 0x133d, 0x131e,
+ 0x1931, 0x1b2d, 0x17c0, 0x1894, 0x17e1, 0x14a8,
+ 0x1900, 0x1619, 0xffd5, 0xee96, 0xf2e2, 0xffc5,
+ 0x037e, 0xfa97, 0xf62d, 0xfe26, 0x05f2, 0x0d25,
+ 0x15fe, 0x1554, 0x0875, 0xf868, 0xef95, 0xede3,
+ 0xec66, 0xf219, 0xf8fb, 0xef71, 0xeb3d, 0xfa2f,
+ 0xfe9a, 0xf5d8, 0xf14c, 0xeca3, 0xed48, 0xfd28,
+ 0x115a, 0x1857, 0x0abd, 0xfa54, 0xfa15, 0xff80,
+ 0xffd9, 0xfd1a, 0xfbac, 0x0329, 0x0a20, 0x061c,
+ 0x04ad, 0x0594, 0xfc6e, 0xf193, 0xef3a, 0xf51f,
+ 0xfa37, 0xf872, 0xff27, 0x0e0e, 0x0ffd, 0x0dd4,
+ 0x126f, 0x0d74, 0xfc10, 0xebf9, 0xe959, 0xf5da,
+ 0xff21, 0xfecb, 0x0345, 0x0975, 0x02d8, 0xf1a4,
+ 0xe9e5, 0xf481, 0xf815, 0xeebe, 0xf7bb, 0x0965,
+ 0x05c7, 0xfa7e, 0xf018, 0xe08f, 0xdd92, 0xeda1,
+ 0x0286, 0x123d, 0x121c, 0x0794, 0x02ad, 0xfe6c,
+ 0xf910, 0xfa96, 0xfcb1, 0xfed3, 0x03c6, 0x0133,
+ 0xfa48, 0xf9c9, 0xff8b, 0x0cd0, 0x157b, 0x0da0,
+ 0x0d96, 0x1c47, 0x1819, 0x030a, 0x0014, 0x12b2,
+ 0x274b, 0x2ed2, 0x201a, 0x0087, 0xe8d7, 0xed82,
+ 0x01a7, 0x0c98, 0x106b, 0x1541, 0x1627, 0x1492,
+ 0x119a, 0x0724, 0xf8fd, 0xf134, 0xf1ff, 0xf028,
+ 0xe444, 0xe0b3, 0xf054, 0xfe8a, 0xfccf, 0xeeda,
+ 0xe058, 0xdd2a, 0xddf6, 0xe0b0, 0xf14c, 0xfc94,
+ 0xf04a, 0xe04e, 0xd589, 0xceff, 0xd501, 0xdd36,
+ 0xe02a, 0xe71f, 0xee87, 0xf466, 0xfaf4, 0xf97d,
+ 0xf17a, 0xe758, 0xdb19, 0xdbe0, 0xe973, 0xed52,
+ 0xecfe, 0xf76c, 0xff19, 0xfc4e, 0xf9e2, 0xf728,
+ 0xf082, 0xed5e, 0xecf3, 0xec15, 0xf393, 0xfd22,
+ 0xf9c1, 0xf702, 0xfcb2, 0xf4b6, 0xe207, 0xe0c5,
+ 0xf056, 0xfda2, 0x007a, 0xf84b, 0xed5f, 0xeb66,
+ 0xee15, 0xeb1b, 0xe977, 0xf279, 0xfdfb, 0x04e6,
+ 0x0759, 0xff86, 0xf0fa, 0xea1d, 0xec38, 0xf10c,
+ 0xf213, 0xeacc, 0xe97f, 0xf704, 0x00af, 0x0176,
+ 0x02fb, 0xfb7a, 0xeaf7, 0xe671, 0xef9f, 0xfb74,
+ 0x0734, 0x0cfe, 0x07f7, 0xfb8d, 0xec47, 0xe16a,
+ 0xe0f2, 0xed85, 0x041f, 0x0d26, 0x00b5, 0x032d,
+ 0x141a, 0x0543, 0xe84d, 0xecda, 0xfe66, 0x01f6,
+ 0x089c, 0x144a, 0x10ea, 0x015c, 0xfd29, 0x070a,
+ 0x09be, 0x06f2, 0x0c1c, 0x0d6b, 0x0d18, 0x17a7,
+ 0x168b, 0x0354, 0xfa69, 0xfc9a, 0xf954, 0xf255,
+ 0xf3f8, 0x0638, 0x16ca, 0x10dd, 0x0375, 0xffc5,
+ 0x0754, 0x1697, 0x19cb, 0x0ede, 0x0d7b, 0x0fc0,
+ 0x09ab, 0x0a80, 0x103c, 0x0a2d, 0xfdd2, 0xf933,
+ 0xfd81, 0x0103, 0x05a6, 0x152e, 0x1cec, 0x0e4d,
+ 0x070e, 0x141e, 0x17af, 0x09d3, 0x029c, 0x083c,
+ 0x0991, 0x03d6, 0x057c, 0x0fad, 0x1b16, 0x22c3,
+ 0x1ce4, 0x10af, 0x0e94, 0x0a85, 0xfd30, 0xf5b6,
+ 0xf128, 0xedd5, 0xf8fd, 0x0776, 0x0cf0, 0x1503,
+ 0x1d34, 0x18e4, 0x0c48, 0x00ae, 0x002f, 0x0e1c,
+ 0x1850, 0x118f, 0x04c5, 0xfc29, 0xf745, 0xf507,
+ 0xf4c6, 0xf9f5, 0x0493, 0x060e, 0xfbfa, 0xf86a,
+ 0xfa5e, 0xf5a1, 0xf366, 0xfa33, 0x03da, 0x0dff,
+ 0x0ef4, 0x0530, 0x04b3, 0x0c98, 0x0970, 0xfc45,
+ 0xee1f, 0xe698, 0xecac, 0xf4b2, 0xf117, 0xea70,
+ 0xf1b2, 0x084c, 0x137a, 0x077c, 0x097e, 0x20b6,
+ 0x21f9, 0x101e, 0x0a33, 0x090f, 0x096b, 0x109e,
+ 0x0eaa, 0x0269, 0xf927, 0xf657, 0xfe42, 0x0780,
+ 0x0787, 0x0c0d, 0x1217, 0x0e37, 0x110e, 0x17fb,
+ 0x0fd4, 0x058e, 0x033a, 0xff79, 0xf9f1, 0xf4ff,
+ 0xf276, 0xf282, 0xf584, 0x0488, 0x134b, 0x0ff4,
+ 0x0c2e, 0x09c5, 0xf997, 0xedd0, 0xeab3, 0xe978,
+ 0xfafc, 0x0974, 0xfb5d, 0xf4da, 0x0183, 0x061c,
+ 0x0458, 0x0311, 0x02ac, 0x0466, 0xff7d, 0xfd2b,
+ 0x0492, 0x01e3, 0xf9b7, 0xf684, 0xe7d4, 0xdb3f,
+ 0xebae, 0x029b, 0x0158, 0xf490, 0xf8d9, 0x0abf,
+ 0x10d6, 0x0a5d, 0x04bb, 0x019a, 0x0357, 0x0620,
+ 0x035d, 0x04af, 0x0a12, 0x07a7, 0x02d0, 0x0377,
+ 0x079d, 0x0c79, 0x0f5d, 0x11be, 0x1161, 0x0932,
+ 0x0217, 0xfec9, 0xf5fa, 0xf325, 0x01ea, 0x0e9a,
+ 0x0c2a, 0x090a, 0x07e3, 0xfc68, 0xee5d, 0xe884,
+ 0xe308, 0xe241, 0xedb9, 0xf429, 0xf086, 0xf2ab,
+ 0xf9ad, 0xfa72, 0xf4fe, 0xf736, 0x061f, 0x0742,
+ 0xf2c0, 0xe8b8, 0xee20, 0xedfa, 0xe6d6, 0xe35e,
+ 0xef69, 0x045c, 0x14aa, 0x2de9, 0x42b0, 0x3270,
+ 0x1f7f, 0x2426, 0x1b9a, 0x05f6, 0xfea0, 0xffdc,
+ 0x0399, 0x05fa, 0x05c4, 0x0f5c, 0x17a0, 0x10fa,
+ 0x0d78, 0x1223, 0x124b, 0x0fbd, 0x0f9e, 0x107e,
+ 0x0f3d, 0x0aee, 0x00f2, 0xec04, 0xde09, 0xee88,
+ 0x0857, 0x0cc6, 0x0285, 0xfa8b, 0xfc70, 0x058e,
+ 0x068e, 0xfa45, 0xeffa, 0xf23f, 0xf9e1, 0xff37,
+ 0x037a, 0x0390, 0xfd53, 0xf9a5, 0xfc08, 0x0230,
+ 0x0845, 0x0491, 0xfe83, 0x0423, 0x09c5, 0x07fd,
+ 0x06b1, 0x064c, 0x0ce8, 0x1a29, 0x1c52, 0x13af,
+ 0x0c10, 0x07f2, 0x0846, 0x0889, 0x07e1, 0x08e5,
+ 0x0584, 0x0470, 0x09b6, 0x0549, 0xfbb6, 0xf6a3,
+ 0xeeff, 0xf018, 0xfee3, 0x07a5, 0x0333, 0xf4ea,
+ 0xee33, 0xfd67, 0x0583, 0xfbf5, 0xfa68, 0xf818,
+ 0xf04e, 0xf51f, 0xf959, 0xfb92, 0x09f4, 0x0eb8,
+ 0x0367, 0xf9ca, 0xefd7, 0xeb6a, 0xf1a5, 0xf54f,
+ 0xf985, 0xfd32, 0xf471, 0xeda8, 0xf2a3, 0xfab8,
+ 0x06b2, 0x0da2, 0x05c9, 0xffe8, 0x0341, 0x0131,
+ 0xf47c, 0xe45b, 0xd8d3, 0xd50d, 0xde8f, 0xfa1a,
+ 0x106b, 0x0ec2, 0x1132, 0x224d, 0x2548, 0x1f27,
+ 0x2170, 0x1c62, 0x0fca, 0x0c84, 0x0c0a, 0x061a,
+ 0xfc8d, 0xf346, 0xf460, 0xfd1f, 0x0038, 0x00a2,
+ 0x05fd, 0x0dc8, 0x0eed, 0x0455, 0xf9ab, 0xf688,
+ 0xf6db, 0xfe51, 0x0457, 0x00b5, 0x06c3, 0x0ecb,
+ 0x00bb, 0xf20f, 0xf226, 0xf774, 0x0569, 0x0c7b,
+ 0x0129, 0xfcc6, 0xfd85, 0xf468, 0xefed, 0xef2d,
+ 0xeba5, 0xefe5, 0xf74a, 0xfc6b, 0x0147, 0x004a,
+ 0xfccb, 0xf544, 0xe506, 0xdf64, 0xe9c2, 0xf338,
+ 0xfaaf, 0x01f5, 0x0989, 0x128d, 0x1128, 0x0743,
+ 0xfeda, 0xf28f, 0xed65, 0xfa45, 0x0a29, 0x174a,
+ 0x1828, 0x014e, 0xef86, 0xf279, 0xf398, 0xf41f,
+ 0xfcb1, 0x067d, 0x159d, 0x1fe2, 0x12b5, 0xfe9f,
+ 0xf6ab, 0xf825, 0xffb6, 0x0451, 0x02f3, 0x0af7,
+ 0x1b2d, 0x1e91, 0x0fbc, 0xfe3f, 0xfb03, 0x0208,
+ 0x0294, 0x0092, 0x0532, 0x039e, 0xf6d6, 0xee36,
+ 0xf058, 0xf81f, 0xfec1, 0x0022, 0x00e2, 0x0084,
+ 0xf6dc, 0xecb8, 0xf09b, 0xfa7c, 0xff03, 0x029f,
+ 0xffd8, 0xe72f, 0xcd44, 0xda77, 0x0282, 0x17c8,
+ 0x1583, 0x1596, 0x1e4e, 0x1b49, 0x0226, 0xed83,
+ 0xee4b, 0xf5bd, 0x0799, 0x1f4f, 0x1bf8, 0x0cc6,
+ 0x0c00, 0x01a7, 0xf738, 0x0adc, 0x1cc1, 0x15cb,
+ 0x0db6, 0x0ce9, 0x0d6b, 0x0c00, 0x0871, 0x0964,
+ 0x0894, 0x0184, 0x01bd, 0x063c, 0x03c7, 0xffd7,
+ 0xffc7, 0x043f, 0x06a3, 0x0218, 0x0343, 0x04dc,
+ 0xf6c3, 0xef43, 0xff7e, 0x10dc, 0x147e, 0x0d39,
+ 0xffa8, 0xf40f, 0xf012, 0xf4ab, 0xfbfc, 0xffd9,
+ 0x0416, 0x02ab, 0xf499, 0xebd5, 0xf227, 0xfb2a,
+ 0xff9b, 0xfe0b, 0xfc25, 0x01d6, 0x0c19, 0x19a6,
+ 0x2404, 0x1fb2, 0x15cd, 0x0bea, 0xff09, 0xfb88,
+ 0xfb51, 0xf5e4, 0x007a, 0x0cfa, 0x011d, 0xfc26,
+ 0x05ff, 0xfd32, 0xef13, 0xf342, 0x000f, 0x1161,
+ 0x1e13, 0x19a8, 0x12d0, 0x11b5, 0x0be7, 0x05cd,
+ 0x0a63, 0x177b, 0x1f96, 0x1846, 0x0afd, 0x02b6,
+ 0xf9cf, 0xec09, 0xdc19, 0xd226, 0xd9bf, 0xec38,
+ 0xfa9e, 0x01da, 0xfba6, 0xe998, 0xdd1a, 0xd81c,
+ 0xd925, 0xe7cb, 0xf754, 0xf9ca, 0xf566, 0xec5b,
+ 0xe16d, 0xde71, 0xea25, 0x04c6, 0x12a3, 0x001a,
+ 0xf67b, 0x0840, 0x0991, 0xf928, 0xf7fe, 0xfe84,
+ 0x0917, 0x21fc, 0x2e51, 0x1727, 0xf6d1, 0xe936,
+ 0xe80c, 0xe925, 0xefa1, 0xf744, 0xfa06, 0xfd95,
+ 0x0093, 0xff88, 0x0348, 0x0cc4, 0x1484, 0x1766,
+ 0x12ff, 0x0c76, 0x0789, 0xfdea, 0xf4a6, 0xf3da,
+ 0xf843, 0xfe53, 0xfc01, 0xf0d7, 0xf18c, 0xfac0,
+ 0xfa7e, 0xf925, 0xfa4a, 0xf5ed, 0xf174, 0xeee5,
+ 0xf0f3, 0x01eb, 0x17b8, 0x1f86, 0x19c8, 0x0f07,
+ 0x016e, 0xf1d2, 0xec28, 0xf94c, 0x0833, 0x0ab3,
+ 0x0a35, 0x0ccc, 0x0ffb, 0x0ec8, 0x03c5, 0xf9cd,
+ 0xfd12, 0x05b5, 0x09ca, 0x05b2, 0xfc53, 0xf7ea,
+ 0xf62c, 0xecb7, 0xe03d, 0xdfb1, 0xf29f, 0x09b7,
+ 0x1264, 0x14fd, 0x13fb, 0x0457, 0xf8b1, 0xfffa,
+ 0x06c6, 0x066d, 0x070b, 0x0833, 0x0b29, 0x0dd5,
+ 0x0e88, 0x0f6d, 0x07e1, 0xfb43, 0xf85f, 0xf5d8,
+ 0xec09, 0xe55a, 0xe400, 0xe95a, 0xf0db, 0xee37,
+ 0xeda1, 0xf7f1, 0xfcb2, 0xfe25, 0x04ce, 0x07db,
+ 0x0a33, 0x0e90, 0x0b5c, 0x0110, 0xee62, 0xd499,
+ 0xca8e, 0xdb9b, 0xf68f, 0x0696, 0x08fb, 0x0f4f,
+ 0x192a, 0x113a, 0x041c, 0x0850, 0x1101, 0x1a04,
+ 0x2b78, 0x3129, 0x1dc2, 0x052f, 0xf5dd, 0xed38,
+ 0xef45, 0x016a, 0x105c, 0x0857, 0xff3f, 0x0a07,
+ 0x149d, 0x1351, 0x1153, 0x1047, 0x0f39, 0x0ca2,
+ 0x06e5, 0x0844, 0x0be4, 0x0352, 0xfcec, 0x00f3,
+ 0xff3b, 0xfa0a, 0xf994, 0xf9b5, 0xffa7, 0x0760,
+ 0xff96, 0xf1d1, 0xf508, 0x0837, 0x1771, 0x1373,
+ 0x0855, 0x0c75, 0x162e, 0x12d3, 0x0bc8, 0x0919,
+ 0x0414, 0x01da, 0x093d, 0x0e5c, 0x0607, 0xfb21,
+ 0xff33, 0x0c8b, 0x0fc9, 0x0b65, 0x0ddd, 0x12a3,
+ 0x0f1d, 0x07bb, 0x0352, 0xfc92, 0xef37, 0xe8d9,
+ 0xf2b2, 0xfbab, 0xfb39, 0xfff5, 0x0654, 0x003f,
+ 0xfa5c, 0x0346, 0x106c, 0x1177, 0x037f, 0xf3ba,
+ 0xf046, 0xf762, 0x023d, 0x0d31, 0x10d3, 0x095e,
+ 0xfe60, 0xfae2, 0xff5c, 0xff5f, 0xf6d4, 0xed0a,
+ 0xe379, 0xdfd5, 0xe7f9, 0xef74, 0xf2d7, 0xfb92,
+ 0x0055, 0xfa51, 0xf6d5, 0xff02, 0x0f8b, 0x150f,
+ 0x0087, 0xe8fd, 0xe45e, 0xe672, 0xe48b, 0xe33e,
+ 0xef54, 0x0940, 0x10e1, 0x03c1, 0x0a45, 0x18ba,
+ 0x0cc0, 0xffdf, 0x0729, 0x0e6b, 0x0fb8, 0x112c,
+ 0x0e98, 0x048f, 0xf764, 0xf049, 0xef77, 0xf17a,
+ 0xfa40, 0x0013, 0xf8ae, 0xf127, 0xefb1, 0xf205,
+ 0xfc74, 0x05c6, 0x071b, 0x062d, 0xfca0, 0xee8c,
+ 0xef06, 0xfa84, 0x0491, 0x081f, 0x0116, 0xf6b8,
+ 0xedd3, 0xe2e9, 0xdfc5, 0xe86f, 0xef06, 0xecc3,
+ 0xe5cf, 0xe580, 0xf14a, 0xf9ae, 0xf841, 0xfa06,
+ 0x0179, 0x0982, 0x0c91, 0x050c, 0xfd42, 0xfc68,
+ 0xf697, 0xec37, 0xea41, 0xf03f, 0xf633, 0xf633,
+ 0xef8b, 0xe923, 0xe5e5, 0xe097, 0xdb81, 0xe2e3,
+ 0xf1c5, 0xf1ae, 0xe849, 0xea4d, 0xea07, 0xdecf,
+ 0xdca9, 0xdfee, 0xe049, 0xeaa6, 0xf3bf, 0xef91,
+ 0xf289, 0xfc6d, 0xfa91, 0xf21d, 0xed05, 0xf070,
+ 0xfdbc, 0x0687, 0x03e1, 0xfdba, 0xf3f9, 0xe7bb,
+ 0xe25f, 0xe791, 0xf3ac, 0xfeb6, 0x0177, 0xf841,
+ 0xe6ec, 0xdfb8, 0xe7be, 0xed06, 0xf055, 0xfa6e,
+ 0xfe93, 0xfb69, 0xfa9c, 0xf808, 0xf685, 0xfbf5,
+ 0x018e, 0x019b, 0xf536, 0xe11f, 0xe1ed, 0xfb79,
+ 0x0b39, 0x0385, 0x0007, 0x1368, 0x257b, 0x230c,
+ 0x1e59, 0x1c20, 0x13bc, 0x1320, 0x1791, 0x1073,
+ 0x0a82, 0x0d54, 0x0efc, 0x0c8c, 0x018d, 0xf7c5,
+ 0xfe6f, 0x06b7, 0x0925, 0x0ce8, 0x0738, 0xfef1,
+ 0x0580, 0x0a60, 0x0231, 0xfb66, 0xff26, 0x0bf6,
+ 0x1646, 0x1742, 0x1513, 0x0b7b, 0xfb8b, 0xf5c4,
+ 0xf744, 0xf569, 0xf3ea, 0xf401, 0xf49f, 0xf606,
+ 0xf928, 0x020a, 0x0a8a, 0x0e6a, 0x1683, 0x1f10,
+ 0x207d, 0x1c75, 0x11ae, 0x0caf, 0x1620, 0x19ad,
+ 0x16b4, 0x19fc, 0x154d, 0x0b92, 0x0d85, 0x0f87,
+ 0x0f4d, 0x1242, 0x08bf, 0xfa83, 0xff39, 0x0bc7,
+ 0x0f3b, 0x0ca4, 0x06c1, 0xff05, 0xfc51, 0x0425,
+ 0x0d4a, 0x0a5d, 0x08f6, 0x150d, 0x18a9, 0x111e,
+ 0x1555, 0x1c0a, 0x15c5, 0x0de2, 0x0a2e, 0x0a97,
+ 0x0fe5, 0x0fc9, 0x0ad3, 0x09d0, 0x0743, 0x0837,
+ 0x188a, 0x278d, 0x2055, 0x0a90, 0xfaf2, 0xfc10,
+ 0x0753, 0x0e67, 0x0a38, 0x0233, 0x0258, 0x05cc,
+ 0x04b6, 0x0771, 0x0a22, 0x02cd, 0xfd4b, 0xfb6b,
+ 0xf4f5, 0xee67, 0xe1cd, 0xda37, 0xf1e9, 0x04c3,
+ 0xf31d, 0xf060, 0x0fb5, 0x21ca, 0x1c2c, 0x1617,
+ 0x170f, 0x182b, 0x1000, 0x05e7, 0x03e6, 0x04cf,
+ 0x0a79, 0x10ef, 0x0820, 0xf743, 0xecea, 0xeb8e,
+ 0xf51d, 0xfc4e, 0xf736, 0xf728, 0xfed1, 0xff98,
+ 0xfc0c, 0xf89b, 0xf51f, 0xf7f3, 0x017a, 0x0a57,
+ 0x0d08, 0x0b05, 0x0a7e, 0x08bf, 0x022e, 0xfd4a,
+ 0xf9b2, 0xf60e, 0xfa99, 0x0112, 0xfe36, 0xfd75,
+ 0x058f, 0x08ab, 0x05de, 0x085b, 0x0b94, 0x07a3,
+ 0xff02, 0xf264, 0xe790, 0xec0f, 0xfd5f, 0x0c84,
+ 0x1244, 0x0fc0, 0x0d32, 0x0d0d, 0x0635, 0xfe2d,
+ 0x00f4, 0x04d4, 0x00a7, 0xfb2c, 0xfaa9, 0x00ce,
+ 0x0545, 0x003b, 0xfd51, 0x00ee, 0x005f, 0x0065,
+ 0x062c, 0x0978, 0x0a7f, 0x06df, 0xf905, 0xf1b1,
+ 0xf9ac, 0xfd9e, 0xfb5f, 0x022b, 0x0c8f, 0x1046,
+ 0x10db, 0x1008, 0x0da4, 0x0c4d, 0x0af8, 0x0897,
+ 0x063d, 0x050a, 0x0697, 0x072f, 0x01ce, 0xf85a,
+ 0xed80, 0xe81d, 0xf0e3, 0xff5d, 0x0705, 0x067e,
+ 0xfaa7, 0xeb6d, 0xec36, 0xf562, 0xf56f, 0xf302,
+ 0xed20, 0xdb79, 0xd678, 0xed0b, 0xfd0d, 0xf9dd,
+ 0x047d, 0x1b14, 0x1c5f, 0x1057, 0x0e96, 0x1050,
+ 0x0e8c, 0x101b, 0x13d7, 0x124b, 0x0a62, 0x0341,
+ 0x0066, 0xf97c, 0xeb40, 0xe344, 0xedd4, 0xfea1,
+ 0xff7a, 0xf931, 0x001f, 0x09d9, 0x0bb2, 0x081a,
+ 0xfa17, 0xf1f8, 0x0110, 0x0d2b, 0x08d7, 0x0540,
+ 0x0473, 0x08a2, 0x0ebf, 0x0617, 0xfe1b, 0x050f,
+ 0x036b, 0xf95b, 0xfb71, 0x02e8, 0x04ff, 0xfff6,
+ 0xf620, 0xf55f, 0xff18, 0x00b3, 0xf7ab, 0xf86b,
+ 0x0989, 0x1575, 0x1329, 0x14fc, 0x1c7c, 0x19d0,
+ 0x0f6d, 0x07c2, 0x03f5, 0x0190, 0x00a8, 0x042d,
+ 0x07c6, 0x0443, 0xfc36, 0xf463, 0xf3ab, 0xfc76,
+ 0x0208, 0x0369, 0x0a64, 0x0e49, 0x069e, 0xf70c,
+ 0xea00, 0xf1e9, 0x06b5, 0x0e25, 0x0db2, 0x0e37,
+ 0x0a53, 0x0a5a, 0x0d7b, 0x0aa6, 0x099f, 0x0b82,
+ 0x0ee4, 0x1707, 0x1658, 0x09f2, 0x0000, 0xf822,
+ 0xf3b0, 0xf335, 0xeb4d, 0xe530, 0xe8f6, 0xe655,
+ 0xe264, 0xeb90, 0xf608, 0xfce1, 0x045d, 0x01b8,
+ 0xf483, 0xece1, 0xef24, 0xf384, 0xf139, 0xe4d4,
+ 0xde9d, 0xf2c6, 0x0ea6, 0x0f4d, 0x02fc, 0x09b3,
+ 0x110b, 0x06f4, 0x07d7, 0x164d, 0x1334, 0x0733,
+ 0x0351, 0xf7f3, 0xeb34, 0xf193, 0x005c, 0x0d02,
+ 0x1117, 0x00e2, 0xf400, 0x0170, 0x0eb9, 0x0c63,
+ 0x0744, 0x0009, 0xfc34, 0x04bf, 0x0fe8, 0x1350,
+ 0x0a1b, 0xf8d2, 0xeec4, 0xea6a, 0xe7be, 0xf3bd,
+ 0x0a37, 0x1695, 0x0edb, 0xf6dd, 0xe553, 0xe86b,
+ 0xf0a7, 0xf8b0, 0x04e9, 0x08a7, 0x02a3, 0x003c,
+ 0x0167, 0x023c, 0x030b, 0x04ca, 0x0cd0, 0x1981,
+ 0x1da3, 0x13c6, 0x0696, 0x0081, 0xff61, 0x007f,
+ 0x028f, 0xfae1, 0xebf7, 0xeaa5, 0xf44f, 0xf7d7,
+ 0xfc74, 0x099e, 0x129f, 0x1394, 0x1536, 0x1662,
+ 0x0fbd, 0x029d, 0xf780, 0xf48e, 0xf97a, 0x0117,
+ 0x049e, 0x0101, 0xfb4a, 0xf992, 0xfa88, 0xfd2d,
+ 0x0562, 0x10aa, 0x1469, 0x0b85, 0x01b3, 0x0520,
+ 0x09b9, 0x01ca, 0x0081, 0x0ae4, 0x08ad, 0xff19,
+ 0xfd8c, 0xf892, 0xf188, 0xf175, 0xeeff, 0xed7a,
+ 0xf609, 0xfd98, 0xfb12, 0xf165, 0xe8b4, 0xeb2a,
+ 0xf607, 0xfb3e, 0xf479, 0xe8d7, 0xe349, 0xea81,
+ 0x009a, 0x1289, 0x0a05, 0x05d9, 0x1fdf, 0x2a3e,
+ 0x14b6, 0x06c4, 0xfffc, 0xfc69, 0x102e, 0x2271,
+ 0x1918, 0x0c3b, 0x0d5c, 0x15b2, 0x18ca, 0x119e,
+ 0x12f9, 0x2303, 0x29d5, 0x20ce, 0x112a, 0xfce1,
+ 0xf20f, 0xfecb, 0x0fc2, 0x0b1f, 0xf8ba, 0xecda,
+ 0xeb56, 0xf3c4, 0x00b7, 0x04af, 0x030a, 0x077c,
+ 0x0ee3, 0x0fee, 0x0287, 0xf1f2, 0xf779, 0x06d2,
+ 0x042a, 0xfb5a, 0xfef4, 0x0acb, 0x1307, 0x0e5e,
+ 0x0486, 0x005a, 0xfeb4, 0x001e, 0x0189, 0xfd1e,
+ 0xf9cc, 0xf25d, 0xe4f5, 0xe762, 0xf43a, 0xf53a,
+ 0xef6e, 0xec41, 0xf613, 0x0ee6, 0x1a81, 0x124c,
+ 0x0c6e, 0x095a, 0x08df, 0x1022, 0x1307, 0x1177,
+ 0x127f, 0x0c4f, 0xfe56, 0xf3b2, 0xf24c, 0xfb90,
+ 0x05d2, 0x0a04, 0x0dbd, 0x0aaf, 0xfc66, 0xf909,
+ 0x08eb, 0x12da, 0x0c95, 0x0579, 0x0261, 0x016e,
+ 0x051c, 0x05ff, 0x02ef, 0x066b, 0x0760, 0xfe46,
+ 0xfbac, 0xff31, 0xfa08, 0xf375, 0xf67a, 0xfefd,
+ 0x0173, 0xf642, 0xea19, 0xea88, 0xeb52, 0xe38e,
+ 0xdf07, 0xe0ce, 0xdd7c, 0xd7aa, 0xe53c, 0x04e8,
+ 0x110d, 0x021d, 0xfd70, 0x05de, 0xfc6d, 0xeb50,
+ 0xf098, 0x0293, 0x0b4d, 0x0b6d, 0x0732, 0x005c,
+ 0xfe66, 0x0189, 0x03f7, 0x0793, 0x0842, 0xfaeb,
+ 0xeb96, 0xecff, 0xef37, 0xe37b, 0xe072, 0xee96,
+ 0xfac9, 0x02cf, 0x03ff, 0xf52f, 0xeb69, 0xf4fb,
+ 0xfea0, 0x03d5, 0x0a68, 0x07e3, 0xfb45, 0xf1d3,
+ 0xf353, 0xfbf6, 0x012f, 0xff46, 0xf7a2, 0xf0b0,
+ 0xf510, 0xfae7, 0xfa51, 0x019d, 0x069e, 0x00c6,
+ 0x0979, 0x166f, 0x1008, 0x0aa5, 0x0923, 0xff8b,
+ 0xfd93, 0x0229, 0x016d, 0xfff1, 0xfa7a, 0xf1b4,
+ 0xec72, 0xec40, 0xf93a, 0x07f7, 0x0658, 0x0446,
+ 0x05a1, 0xfe98, 0xfe45, 0x07a3, 0x0be3, 0x0d36,
+ 0x0c63, 0x0970, 0x0862, 0x0416, 0x0080, 0x0245,
+ 0x03e5, 0x0b10, 0x113f, 0x05ea, 0xfad6, 0xff5e,
+ 0x0190, 0xfa29, 0xf33d, 0xf23c, 0xf8cc, 0x022b,
+ 0x060b, 0x0327, 0xfe45, 0xfaef, 0xf992, 0xfdcf,
+ 0x0898, 0x0cff, 0x00eb, 0xefed, 0xed18, 0xf659,
+ 0xf725, 0xef77, 0xf041, 0xf373, 0xeee4, 0xec0e,
+ 0xecb3, 0xeaba, 0xebff, 0xf94b, 0x0d1c, 0x1178,
+ 0x04b3, 0x03f6, 0x0d15, 0x05fa, 0xfc8a, 0x0298,
+ 0x0c46, 0x173e, 0x21b4, 0x1c24, 0x0a84, 0xfd5a,
+ 0xfa66, 0x01b2, 0x09a7, 0x053f, 0xf673, 0xe814,
+ 0xe761, 0xfb53, 0x0f46, 0x0cab, 0x02c1, 0x0338,
+ 0x019b, 0xf896, 0xf432, 0xf6d2, 0xfd30, 0x030c,
+ 0x02f7, 0x01c9, 0x026a, 0x0306, 0x0b4b, 0x15c6,
+ 0x12a6, 0x0a98, 0x06b7, 0x0144, 0xffb7, 0x00ea,
+ 0xfc21, 0xfde4, 0x0869, 0x0dde, 0x165e, 0x1f7c,
+ 0x1562, 0x08a6, 0x0c25, 0x0d45, 0x059c, 0x0100,
+ 0xffff, 0x0387, 0x08b3, 0x0821, 0x0650, 0x0238,
+ 0xfb99, 0x013d, 0x0c07, 0x0913, 0x0362, 0x077f,
+ 0x0d9e, 0x0d2e, 0x06b3, 0x05aa, 0x0bb8, 0x0b51,
+ 0x0640, 0x027c, 0x008d, 0x09f7, 0x12a1, 0x0775,
+ 0xfbc1, 0xf989, 0xf552, 0xfbbc, 0x0d43, 0x10fb,
+ 0x06ca, 0xfe5a, 0xfdd7, 0x037a, 0x0676, 0x0417,
+ 0xfe99, 0xf688, 0xf23f, 0xf231, 0xf35f, 0xf9cc,
+ 0xfea4, 0xfbf0, 0xfa28, 0xf7c4, 0xeef1, 0xe340,
+ 0xdb20, 0xe0a2, 0xeef4, 0xf38a, 0xed25, 0xdf68,
+ 0xcee6, 0xcf73, 0xe438, 0xf8c0, 0x0169, 0x0322,
+ 0x09d9, 0x0e4f, 0x0018, 0xf282, 0xf7d1, 0xff3d,
+ 0x04f8, 0x0dfe, 0x0f99, 0x0b78, 0x094e, 0x07bb,
+ 0x0708, 0x02cb, 0xfa5b, 0xf63c, 0xf58b, 0xf453,
+ 0xf295, 0xf38a, 0xfce5, 0x0158, 0xf5fa, 0xeefb,
+ 0xf0bd, 0xec76, 0xeaa1, 0xee6b, 0xeca1, 0xeb38,
+ 0xefea, 0xf855, 0x04b7, 0x0bce, 0x09f7, 0x0b8b,
+ 0x0d67, 0x01cd, 0xf376, 0xf4e6, 0xfb0e, 0xf53c,
+ 0xf0da, 0xf5a8, 0xf34b, 0xedc0, 0xf205, 0xf640,
+ 0xf8ce, 0x014f, 0x0788, 0x0589, 0xfbfe, 0xecce,
+ 0xe32d, 0xe26a, 0xe632, 0xf0eb, 0xfa02, 0xf85b,
+ 0xf3ec, 0xef3b, 0xeda5, 0xf548, 0xf721, 0xf26a,
+ 0xfb15, 0x0275, 0xf79e, 0xeea4, 0xebcf, 0xe25b,
+ 0xdd0d, 0xe829, 0xfc49, 0x0810, 0x0393, 0xfdd1,
+ 0xfc9d, 0xf360, 0xea40, 0xed25, 0xf286, 0xf5ed,
+ 0xf6f2, 0xf3f4, 0xf4d2, 0xf6ac, 0xf17c, 0xec1a,
+ 0xe96a, 0xed8c, 0xfdf5, 0x05ee, 0xfba9, 0xf657,
+ 0xf6ea, 0xee34, 0xe723, 0xeb09, 0xf028, 0xf1c0,
+ 0xf158, 0xf010, 0xef70, 0xe9b8, 0xd9b7, 0xd0cd,
+ 0xe4fb, 0x0613, 0x0fa3, 0x037e, 0x0243, 0x1013,
+ 0x1186, 0x03a7, 0x03ab, 0x14d8, 0x1c96, 0x19ef,
+ 0x1ad9, 0x1543, 0x05a9, 0x007c, 0x090a, 0x0fa3,
+ 0x1381, 0x1686, 0x0cca, 0xfbaf, 0xfa95, 0x070f,
+ 0x0dd9, 0x0dd4, 0x0d4f, 0x0dfc, 0x0d13, 0x025e,
+ 0xf44a, 0xf3a3, 0xfb92, 0xfe60, 0xfcaf, 0xfa57,
+ 0xfa51, 0x0382, 0x1696, 0x240c, 0x1cbb, 0x0a89,
+ 0x0056, 0x0067, 0x040f, 0x0386, 0x008c, 0x0763,
+ 0x10f3, 0x1207, 0x16fc, 0x1f5d, 0x1d65, 0x1559,
+ 0x09b2, 0xfcff, 0xfc66, 0x0448, 0x08c2, 0x058a,
+ 0xf921, 0xf1e9, 0xf983, 0x022f, 0x0832, 0x0be3,
+ 0x05a1, 0x02a4, 0x0dcb, 0x1512, 0x111c, 0x10a6,
+ 0x16f5, 0x1669, 0x0b6e, 0x0521, 0x0747, 0x0390,
+ 0xfba7, 0x020e, 0x17bf, 0x2460, 0x1ab2, 0x0f1b,
+ 0x0dc8, 0x084e, 0x013d, 0x04aa, 0x094a, 0x0a0c,
+ 0x0c41, 0x0dde, 0x0fa9, 0x13ad, 0x14c2, 0x1125,
+ 0x0dbb, 0x1026, 0x177d, 0x19e4, 0x0e2c, 0xf7a5,
+ 0xe919, 0xecb0, 0xf34c, 0xf608, 0xff18, 0x0c47,
+ 0x153c, 0x12d0, 0xfeeb, 0xe6f9, 0xdcbe, 0xe361,
+ 0xf38f, 0xf628, 0xed52, 0xff5d, 0x1c8a, 0x16bd,
+ 0x0863, 0x132f, 0x1dff, 0x1d35, 0x1bc3, 0x10bb,
+ 0xfc89, 0xf328, 0xfb1d, 0x0a53, 0x1228, 0x0dc5,
+ 0x0afa, 0x0fd7, 0x10c1, 0x100e, 0x1369, 0x0982,
+ 0xf215, 0xe9a7, 0xf18c, 0xf398, 0xedf5, 0xea00,
+ 0xedc5, 0xfa99, 0x034f, 0xff05, 0xfb06, 0xfe8a,
+ 0xff00, 0xfc86, 0x0143, 0x0845, 0x07e5, 0x01eb,
+ 0xf8f2, 0xf3d7, 0xfcee, 0x0a4a, 0x0c4c, 0x07c6,
+ 0x052e, 0x0503, 0x055c, 0x0470, 0x04b7, 0x0450,
+ 0x006e, 0x01b7, 0x07a5, 0x09bf, 0x0bd6, 0x0b31,
+ 0x0450, 0x01fd, 0x015d, 0xfd0a, 0xff0d, 0x028d,
+ 0x0035, 0x0203, 0x06a3, 0x0862, 0x0f7f, 0x1a60,
+ 0x1ac5, 0x10d4, 0x0d51, 0x1339, 0x11b8, 0x09b8,
+ 0x0b48, 0x10e6, 0x0d0b, 0x0289, 0xfe5d, 0x078a,
+ 0x10e6, 0x0e4a, 0x06bb, 0xfe1d, 0xf9b9, 0xff90,
+ 0xff5f, 0xf74a, 0xfa3f, 0xfe3f, 0xfad3, 0xff86,
+ 0x059b, 0x01d3, 0xfda0, 0xfa10, 0xf8be, 0x0126,
+ 0x0863, 0x05c1, 0x010b, 0xfcde, 0xfa66, 0xfe20,
+ 0x032c, 0x0058, 0xf3db, 0xe92e, 0xecd8, 0xf082,
+ 0xe621, 0xeac0, 0x09cd, 0x12d7, 0xf8c4, 0xeffb,
+ 0x070c, 0x1788, 0x147e, 0x0fde, 0x0f79, 0x0c19,
+ 0x0754, 0x0818, 0x0cb5, 0x10b6, 0x0f5f, 0x076c,
+ 0x067a, 0x10fb, 0x1a9a, 0x2373, 0x2463, 0x0eba,
+ 0xf688, 0xee2f, 0xeb83, 0xed56, 0xefff, 0xedb2,
+ 0xf25f, 0xf8e1, 0xf6ed, 0xf584, 0xf0c1, 0xede5,
+ 0xff80, 0x10e7, 0x0e51, 0x089a, 0x063c, 0x044d,
+ 0x060a, 0x0750, 0x060e, 0x0390, 0x0139, 0x0451,
+ 0x0b39, 0x120b, 0x1538, 0x0d9c, 0x0278, 0x000a,
+ 0x0490, 0x0ab7, 0x0a3e, 0x032d, 0x0357, 0x0881,
+ 0x0660, 0xfbe3, 0xf214, 0xf8c8, 0x055a, 0xff91,
+ 0xfae7, 0x07e3, 0x110f, 0x11ce, 0x0dfd, 0x0476,
+ 0x02ae, 0x06d2, 0x0764, 0x07cd, 0x03cb, 0x053e,
+ 0x139f, 0x140b, 0x0799, 0x0369, 0xff0e, 0x0036,
+ 0x0a6d, 0x0625, 0xfc21, 0xfbbd, 0xf770, 0xf2a0,
+ 0xf652, 0xfe3d, 0x0752, 0x04a9, 0xf6e4, 0xf30c,
+ 0xf8fd, 0x0176, 0x0b3a, 0x0d15, 0x0818, 0xfed7,
+ 0xf0ca, 0xf00b, 0xfce1, 0xfe17, 0xf4cf, 0xef23,
+ 0xe95f, 0xdeca, 0xd8f5, 0xe4db, 0xf0a0, 0xe55e,
+ 0xe54e, 0x0680, 0x16cc, 0x051a, 0xfa8d, 0xfcd7,
+ 0xfd1c, 0x0274, 0x0942, 0x0785, 0x0534, 0x07ee,
+ 0x0d0f, 0x14e6, 0x18a5, 0x0f44, 0x0371, 0x03b4,
+ 0x08c8, 0x0a0f, 0x0b86, 0x0854, 0xfa74, 0xee2a,
+ 0xec24, 0xedc5, 0xf0e7, 0xf5bf, 0xf442, 0xecdb,
+ 0xee52, 0xfb04, 0x035f, 0x03a8, 0x0718, 0x0d14,
+ 0x0a6c, 0xffda, 0xf97e, 0xfc7f, 0x02c1, 0x071f,
+ 0x0788, 0x02f5, 0x002a, 0x01e1, 0xfd72, 0xf3d5,
+ 0xf3b8, 0xfefb, 0x0aec, 0x0b15, 0xff9e, 0xfe2c,
+ 0x0aa4, 0x09c7, 0xf8b1, 0xf08d, 0xf3b9, 0xf5b1,
+ 0xfcc5, 0x0e15, 0x1604, 0x0b2e, 0x02b3, 0x0419,
+ 0x056f, 0x0c04, 0x126b, 0x0895, 0xfb1b, 0xf624,
+ 0xf608, 0xfc59, 0xfa2c, 0xe98b, 0xea50, 0xfbf0,
+ 0xfee8, 0xfaa5, 0xfdfd, 0x0160, 0x0062, 0xf83a,
+ 0xf167, 0xfa2e, 0x038e, 0xfdc8, 0xf5b7, 0xf80f,
+ 0x0643, 0x16b7, 0x1815, 0x0b92, 0x01d6, 0x0199,
+ 0x0496, 0x02d1, 0xfe03, 0xf86f, 0xf02e, 0xefa1,
+ 0xfb37, 0x03a7, 0x0186, 0xf347, 0xd9f8, 0xc466,
+ 0xbbd4, 0xca65, 0xf1a1, 0x06bf, 0x0065, 0x1093,
+ 0x290c, 0x20e1, 0x1b74, 0x26f0, 0x206b, 0x16ef,
+ 0x21cb, 0x28ae, 0x1d4c, 0x107b, 0x1093, 0x17a2,
+ 0x1b50, 0x1fdd, 0x248b, 0x22b6, 0x1cc4, 0x0daa,
+ 0xfad1, 0xf6ef, 0xf6ae, 0xf312, 0xfba6, 0x01d0,
+ 0xfc6b, 0xfeb3, 0x00fc, 0xf9c5, 0xf535, 0xf32c,
+ 0xf420, 0xf73a, 0xf42c, 0xf628, 0xfd4d, 0xf9a5,
+ 0xf6c9, 0xfd88, 0x0513, 0x0cd0, 0x0bbd, 0xff74,
+ 0xfa2d, 0xfca4, 0xfd60, 0xfdae, 0x0149, 0x0c0a,
+ 0x133b, 0x0c5e, 0x0654, 0x06b8, 0x03f1, 0xfe0e,
+ 0xf67a, 0xf55e, 0xfd65, 0xfebd, 0xfdb2, 0x037f,
+ 0x0325, 0xfe4b, 0xfb8b, 0xf680, 0xf50e, 0xf597,
+ 0xf67f, 0x0141, 0x07ec, 0x0160, 0xff6f, 0x059f,
+ 0x0eb7, 0x127f, 0x07e4, 0x01e8, 0x0630, 0xff08,
+ 0xf5d1, 0xf81e, 0xfb88, 0xfe3c, 0xfe0c, 0xfcd0,
+ 0x04fc, 0x098f, 0x00f8, 0xf8ba, 0xf5eb, 0xfa6e,
+ 0x0325, 0x02ed, 0xfe42, 0xffd2, 0x05db, 0x09cc,
+ 0x02e4, 0xf936, 0xfac4, 0xfd99, 0xfb88, 0xf9ab,
+ 0xf5a0, 0xf423, 0xf408, 0xe79e, 0xd4c4, 0xd00f,
+ 0xe475, 0xfc12, 0xf2ec, 0xe305, 0xf71e, 0x0a96,
+ 0xfef8, 0xfa59, 0x09ae, 0x127f, 0x1004, 0x0d69,
+ 0x0d01, 0x0bc5, 0x0c00, 0x0b3c, 0x01f3, 0x010e,
+ 0x15e6, 0x258f, 0x2088, 0x1475, 0x08e1, 0x0500,
+ 0x0729, 0x0366, 0x028c, 0x0718, 0x01ad, 0xf975,
+ 0xf6c1, 0xf145, 0xecdd, 0xec08, 0xeaf2, 0xf04c,
+ 0xf6a7, 0xf1f4, 0xe9c8, 0xe569, 0xe640, 0xef54,
+ 0xf6ce, 0xf7fc, 0xfe4c, 0x04f1, 0x0216, 0x002c,
+ 0x028b, 0x00e6, 0xff98, 0x04d6, 0x0d81, 0x13e4,
+ 0x1133, 0x0697, 0xfdab, 0xf87e, 0xf611, 0xfc43,
+ 0x0a08, 0x1053, 0x0717, 0xfbf5, 0xfc67, 0x01bc,
+ 0x02c0, 0x00cd, 0xfb85, 0xf1d5, 0xeccf, 0xf2bc,
+ 0xf919, 0xfa06, 0x014e, 0x0fb9, 0x191d, 0x1aeb,
+ 0x115a, 0x0066, 0xfd54, 0x0254, 0xfc72, 0xfaa0,
+ 0x03d4, 0x06d9, 0x0501, 0x04ed, 0x0537, 0x091c,
+ 0x0bf0, 0x08a1, 0x0556, 0x026c, 0xfb89, 0xf0c0,
+ 0xe787, 0xe880, 0xf18b, 0xfa7c, 0x0171, 0x057d,
+ 0x0794, 0x055d, 0xfb4a, 0xf4d5, 0xf676, 0xf63c,
+ 0xf769, 0xf920, 0xf0ca, 0xe853, 0xef7e, 0x02d7,
+ 0x0c26, 0xff91, 0xfc31, 0x103c, 0x15a8, 0x0d16,
+ 0x14c2, 0x16c4, 0x0774, 0x06f4, 0x139a, 0x151c,
+ 0x0fba, 0x0cc3, 0x09a7, 0x07c3, 0x0b43, 0x0ee9,
+ 0x0c8a, 0x0b07, 0x0d94, 0x0c5f, 0x0b77, 0x1218,
+ 0x1535, 0x0b0c, 0xfcf2, 0xf6d8, 0xf751, 0xf99a,
+ 0xff24, 0x0208, 0xf87d, 0xe9ff, 0xe3fc, 0xe8f6,
+ 0xf557, 0x003f, 0x0338, 0x039a, 0x05d8, 0x07d4,
+ 0x0974, 0x0b1c, 0x0ab5, 0x0806, 0x085c, 0x0efc,
+ 0x121d, 0x09b7, 0x0118, 0x0207, 0x068b, 0x0cc5,
+ 0x1405, 0x0f5c, 0xffa5, 0xf9b1, 0x0088, 0x074d,
+ 0x0ba2, 0x0b21, 0x041d, 0x047d, 0x111c, 0x1871,
+ 0x136a, 0x0ee0, 0x0db3, 0x0544, 0xfad3, 0xfe5d,
+ 0x0b10, 0x1122, 0x0e61, 0x09c7, 0x09a3, 0x0a64,
+ 0x042f, 0xfd80, 0xfbb1, 0xf863, 0xf858, 0x010d,
+ 0x07f4, 0x06fb, 0x01ed, 0xfd7c, 0xff02, 0x0723,
+ 0x113a, 0x13d0, 0x05bd, 0xf10d, 0xe978, 0xef9e,
+ 0xf73b, 0xfd51, 0x0522, 0x0993, 0x06dc, 0x0369,
+ 0xfc57, 0xef44, 0xea46, 0xeb28, 0xe6bf, 0xe66f,
+ 0xe75b, 0xdbb2, 0xd101, 0xda74, 0xf0e7, 0xfb76,
+ 0xfa9d, 0x0c11, 0x1f0e, 0x0feb, 0x015b, 0x09c6,
+ 0x045a, 0xf5f4, 0xfa72, 0x067a, 0x0f0a, 0x13df,
+ 0x144e, 0x114a, 0x0768, 0x000f, 0x017c, 0x0236,
+ 0x083e, 0x096e, 0xf35d, 0xe92a, 0xf98c, 0xfccd,
+ 0xf1a0, 0xe7f7, 0xd889, 0xd093, 0xda1f, 0xe5a3,
+ 0xecb4, 0xebbd, 0xe087, 0xda7a, 0xe325, 0xed54,
+ 0xee7b, 0xf340, 0x0113, 0x0613, 0x035e, 0x0397,
+ 0xfbf0, 0xf265, 0xf4b5, 0xf559, 0xf247, 0xf474,
+ 0xf467, 0xf3dd, 0xf64e, 0xf17e, 0xe7e2, 0xe4d6,
+ 0xe964, 0xeb97, 0xe291, 0xdb87, 0xe41b, 0xef6d,
+ 0xf417, 0xf5c9, 0xf25d, 0xed60, 0xeea1, 0xeec9,
+ 0xe74c, 0xe5d9, 0xf17c, 0xf929, 0xfa0e, 0x0102,
+ 0x018d, 0xf23a, 0xe4f5, 0xdf90, 0xe021, 0xe933,
+ 0xed17, 0xe6bb, 0xe500, 0xea25, 0xef5b, 0xf212,
+ 0xf3a7, 0xf7fd, 0xf9d9, 0xf6c9, 0xf608, 0xf25e,
+ 0xe76e, 0xdf8c, 0xe026, 0xe8aa, 0xf43b, 0xfd4f,
+ 0x06e4, 0x0947, 0xfbcf, 0xf262, 0xfba8, 0x0750,
+ 0x0357, 0xefb1, 0xddfe, 0xdde0, 0xe639, 0xe3fe,
+ 0xd917, 0xdfe1, 0xfed9, 0x0fa3, 0x03eb, 0x037c,
+ 0x17e0, 0x1b18, 0x0776, 0xfef9, 0x0ae0, 0x1510,
+ 0x171e, 0x17a7, 0x1282, 0x0e3b, 0x120f, 0x0ec2,
+ 0x05f6, 0x0660, 0x07dc, 0x0c0f, 0x19e2, 0x1a06,
+ 0x049a, 0xf44b, 0xf500, 0xfd87, 0x058d, 0x073e,
+ 0xff81, 0xf575, 0xf7ec, 0x05fc, 0x0d30, 0x06d3,
+ 0xfab9, 0xf2a8, 0xf604, 0xfe56, 0x0266, 0x08a0,
+ 0x1250, 0x1343, 0x0cfd, 0x0c55, 0x0f89, 0x10cd,
+ 0x1446, 0x14ba, 0x0d21, 0x0c70, 0x14fc, 0x1919,
+ 0x1836, 0x0f5d, 0x0129, 0x0207, 0x0d60, 0x11b9,
+ 0x13b3, 0x13dc, 0x11a2, 0x13a8, 0x127a, 0x0be2,
+ 0x0611, 0xfdc0, 0xf9b2, 0x0068, 0x04b8, 0xfd5f,
+ 0xefd2, 0xe957, 0xed41, 0xf0aa, 0xf714, 0x0393,
+ 0x09bb, 0x0ce9, 0x0d19, 0x02f7, 0x050c, 0x1884,
+ 0x1cf0, 0x1087, 0x0ccf, 0x1578, 0x1b99, 0x1979,
+ 0x16fe, 0x13bd, 0x10f7, 0x159f, 0x10a2, 0xff24,
+ 0xf91d, 0xf763, 0xf682, 0x03f8, 0x0b4c, 0x093d,
+ 0x0e01, 0x0882, 0xffc4, 0x06b6, 0x08e6, 0x03db,
+ 0xfdba, 0xf053, 0xf1a1, 0xfd0b, 0xef69, 0xdf16,
+ 0xf182, 0x15aa, 0x247e, 0x1796, 0x12fb, 0x1b6a,
+ 0x0c3d, 0xf812, 0x026c, 0x0d86, 0x03c1, 0xfc61,
+ 0xfcd6, 0xf991, 0xfad4, 0x0a7e, 0x1671, 0x1180,
+ 0x0edf, 0x1336, 0x0edf, 0x0418, 0xf650, 0xeb9a,
+ 0xf6fa, 0x0f0c, 0x197f, 0x159d, 0x0cfa, 0x0673,
+ 0x057e, 0x045f, 0x005f, 0xfd56, 0xfe18, 0xff06,
+ 0xf63a, 0xe91b, 0xe8dd, 0xf3d7, 0xfd23, 0xfe13,
+ 0xf731, 0xf492, 0xfec4, 0x0ba8, 0x0f38, 0x0754,
+ 0xf774, 0xec4f, 0xf54b, 0x0a09, 0x1465, 0x14a3,
+ 0x0f59, 0x008f, 0xf9c2, 0x0547, 0x0df0, 0x0c75,
+ 0x07b2, 0x021e, 0x0313, 0x0632, 0x06b9, 0x0b49,
+ 0x0974, 0x002e, 0x0126, 0x070d, 0x0a8e, 0x098d,
+ 0xfb08, 0xf1b5, 0xfc2f, 0x0402, 0x0286, 0x018f,
+ 0x0273, 0x04fe, 0x01ff, 0x01fe, 0x1250, 0x19ee,
+ 0x0fb5, 0x0fef, 0x170f, 0x0f92, 0x014d, 0xfe3e,
+ 0x073b, 0x0b41, 0x030f, 0xfb3d, 0xfbfa, 0x048a,
+ 0x0b8b, 0x064f, 0xfc28, 0xf5d2, 0xf3fa, 0xf645,
+ 0xf599, 0xf5dc, 0xfcbd, 0x004b, 0x0763, 0x10ad,
+ 0x05e4, 0xf951, 0xf8d9, 0xecd7, 0xe6c9, 0xfb10,
+ 0x0b2d, 0x0d03, 0x0f2a, 0x1090, 0x0e5c, 0x0882,
+ 0x0560, 0x09d1, 0x0db7, 0x1145, 0x1142, 0x03c7,
+ 0xf8f1, 0xfd1b, 0x046d, 0x0a35, 0x0b4e, 0x04df,
+ 0x001a, 0x02a6, 0x0a30, 0x0ae9, 0xfe38, 0xfb95,
+ 0x0eac, 0x19fe, 0x0bdb, 0xf85c, 0xf302, 0xf166,
+ 0xe879, 0xe81e, 0xf356, 0xfa75, 0xfde0, 0xf7c0,
+ 0xe5db, 0xe2cf, 0xefe1, 0xf80c, 0xfd9a, 0xfe27,
+ 0xfa99, 0x06e5, 0x15c1, 0x0e57, 0x03ed, 0x07bd,
+ 0x09e8, 0x0798, 0x0f4c, 0x18d9, 0x11e9, 0x006b,
+ 0xf552, 0xfa4a, 0x0bca, 0x155c, 0x1111, 0x0cec,
+ 0x0899, 0x0633, 0x0d50, 0x0e0d, 0x01f7, 0xf602,
+ 0xecf2, 0xeffa, 0x026f, 0x101f, 0x13d6, 0x109f,
+ 0x0492, 0x0120, 0x0a2c, 0x0a6b, 0x0544, 0x079a,
+ 0x0888, 0x03d8, 0x0273, 0x0645, 0x0655, 0xff81,
+ 0xfcf7, 0x027f, 0x095d, 0x11b8, 0x1362, 0x053d,
+ 0xfa8a, 0xfc9f, 0xf935, 0xf6cd, 0x0143, 0x038f,
+ 0xfccc, 0x0182, 0x0559, 0xfb35, 0xf09a, 0xf08e,
+ 0xfcd8, 0x04ee, 0xfab7, 0xf85d, 0x0810, 0x0c04,
+ 0xfe75, 0xea50, 0xdca1, 0xebcf, 0xff5a, 0xf0b1,
+ 0xe3bb, 0xfcdb, 0x1539, 0x0bd4, 0xfef1, 0x0927,
+ 0x1157, 0x0b8c, 0x0e94, 0x0ec3, 0xfd18, 0xf544,
+ 0xfa95, 0xfc95, 0x0402, 0x0c55, 0x0a6a, 0x05f9,
+ 0x0144, 0xff4f, 0x0147, 0xfd26, 0xf8b1, 0xfc95,
+ 0xffec, 0xfc15, 0xf686, 0xfd8d, 0x0c41, 0x077a,
+ 0xf611, 0xf1fb, 0xf45b, 0xef9f, 0xe4c5, 0xe025,
+ 0xeecc, 0xff82, 0x01bd, 0x0266, 0xff36, 0xf43c,
+ 0xf93d, 0x1112, 0x1fcc, 0x1873, 0x0b17, 0x0a38,
+ 0x0db8, 0x0777, 0xfeab, 0xfbce, 0xfdc7, 0x0110,
+ 0x0504, 0x0e08, 0x1238, 0x0696, 0xfd7f, 0x01f0,
+ 0x06dc, 0x0a37, 0x0aaf, 0xff46, 0xf031, 0xed6a,
+ 0xf929, 0x07a7, 0x0b72, 0x06bd, 0x0404, 0x01b3,
+ 0xfc25, 0xfc2f, 0x03a7, 0x030c, 0xf6eb, 0xed4d,
+ 0xef1d, 0xfe4d, 0x0b61, 0x0178, 0xf333, 0xf796,
+ 0xff5c, 0x0261, 0x0793, 0x0a07, 0x0612, 0xfdc6,
+ 0xfa8a, 0x0277, 0x068f, 0x00d5, 0xf84a, 0xeedd,
+ 0xee54, 0xf3ac, 0xf84a, 0x0842, 0x1185, 0x0713,
+ 0x064b, 0x074f, 0xffdc, 0x094d, 0x0e55, 0xfd40,
+ 0xf2c3, 0xf411, 0x08a0, 0x276f, 0x1e93, 0x0763,
+ 0x1513, 0x21e2, 0x1608, 0x0de7, 0x0c84, 0x08d7,
+ 0x052a, 0x08d0, 0x129b, 0x112a, 0x0572, 0xff09,
+ 0x026a, 0x0d37, 0x0cf2, 0x0181, 0x045a, 0x070a,
+ 0xff33, 0x03a5, 0x02e9, 0xf25e, 0xee41, 0xf0b8,
+ 0xf1fa, 0xfb58, 0xfc7a, 0xf5ee, 0xf9a4, 0xffc5,
+ 0xffac, 0xf59f, 0xe6e4, 0xeacc, 0xfbe3, 0xfff6,
+ 0xfc10, 0xffa5, 0x086c, 0x10ce, 0x19c4, 0x1f3b,
+ 0x1888, 0x0ef3, 0x0bec, 0x05fc, 0x0276, 0x0909,
+ 0x0a0d, 0x0267, 0xfb98, 0xf9a6, 0x016b, 0x0860,
+ 0x0720, 0x0afe, 0x0ef3, 0x0a31, 0x0882, 0x0b66,
+ 0x0ef9, 0x0f9b, 0x0377, 0xf624, 0xf58a, 0xf87e,
+ 0xfe3d, 0x065d, 0x0335, 0xf82b, 0xf40e, 0xfb43,
+ 0x0350, 0xf93a, 0xe72e, 0xeaca, 0xf7bb, 0xf6b3,
+ 0xfbc5, 0x0e5b, 0x104a, 0x04d2, 0x0800, 0x107d,
+ 0x107c, 0x0f81, 0x0799, 0xf908, 0xf56a, 0xfa0c,
+ 0x0087, 0x07a3, 0xfed2, 0xecf3, 0xee36, 0xfae7,
+ 0xffd7, 0x00f2, 0x0207, 0x00d4, 0xfb38, 0xf326,
+ 0xf3c1, 0xfe23, 0x0400, 0xfd29, 0xedaf, 0xe041,
+ 0xde8b, 0xee23, 0x07f8, 0x0e2a, 0xfbc7, 0xfa54,
+ 0x0bb5, 0x0996, 0xffbb, 0x0348, 0x0208, 0xffbd,
+ 0x095e, 0x0bd4, 0x0500, 0x045c, 0x02f8, 0xfede,
+ 0x0404, 0x0dd1, 0x0f95, 0x0c7d, 0x0fef, 0x10d4,
+ 0xfdef, 0xecc6, 0xf8c1, 0x0984, 0x06d3, 0x03e5,
+ 0x09bc, 0x0622, 0xf920, 0xf75f, 0x0015, 0xff7d,
+ 0xf92c, 0xf8d6, 0xf540, 0xefce, 0xf0a1, 0xef08,
+ 0xf273, 0x033c, 0x0d7c, 0x0e71, 0x0eb3, 0x0498,
+ 0xf8d2, 0xf9a5, 0xfc64, 0xfa5d, 0xf31d, 0xebcf,
+ 0xf198, 0xf4d1, 0xead3, 0xf33c, 0x0a4f, 0x09cf,
+ 0xfe52, 0x0086, 0x03a5, 0x0217, 0x0101, 0xfbf7,
+ 0xf803, 0xfa25, 0xfbe9, 0x0121, 0x0bb9, 0x0d99,
+ 0x0613, 0x0239, 0x0375, 0x0570, 0x059b, 0x03cd,
+ 0x058c, 0x07c3, 0x0042, 0xf588, 0xf5bd, 0xfe4e,
+ 0x0316, 0x03b6, 0x05cd, 0x0370, 0xfe6d, 0x0529,
+ 0x0b88, 0x00d0, 0xf7fa, 0xfa3b, 0xf8cd, 0xf5e9,
+ 0xf632, 0xf61f, 0xfa4c, 0xfe7d, 0xfc9d, 0xff19,
+ 0x0355, 0xfadd, 0xf00f, 0xf333, 0xf9c1, 0xf74a,
+ 0xf4d1, 0xf75d, 0xf1f0, 0xdd81, 0xcc6f, 0xdb3a,
+ 0xff34, 0x0b13, 0x017b, 0x08cf, 0x1519, 0x0e64,
+ 0x092c, 0x128f, 0x1975, 0x13ac, 0x0c74, 0x11a3,
+ 0x19e1, 0x174d, 0x10e8, 0x0cc8, 0x0ac5, 0x0a8e,
+ 0x0877, 0x0cd5, 0x159a, 0x0c27, 0xfbaf, 0xfb3f,
+ 0xfe32, 0x002d, 0x08f9, 0x0b78, 0x048c, 0x04c0,
+ 0x0dff, 0x0d1b, 0xf9b5, 0xece4, 0xf5a5, 0xfde5,
+ 0xfbba, 0xf7c8, 0xf2df, 0xf481, 0x01f2, 0x0fbb,
+ 0x1613, 0x14cb, 0x0db1, 0x0576, 0x02ee, 0x0a9c,
+ 0x0cae, 0xfb88, 0xf118, 0xfd90, 0x0786, 0x0612,
+ 0x0760, 0x0933, 0x089c, 0x0e59, 0x158c, 0x131b,
+ 0x10ba, 0x1703, 0x17b3, 0x0ca6, 0x0124, 0xfdf6,
+ 0x09a2, 0x1ae3, 0x1b05, 0x0cba, 0x0439, 0x0909,
+ 0x117e, 0x0b1d, 0xfc0b, 0xf80f, 0xf527, 0xf1d3,
+ 0xfe85, 0x06b2, 0xf8a8, 0xee21, 0xf566, 0xff3a,
+ 0xff2e, 0xfadb, 0xfbe3, 0xfa4a, 0xf58a, 0xfde8,
+ 0x0b13, 0x0b69, 0x00d5, 0xf0d9, 0xe9c4, 0xf47e,
+ 0xfe02, 0xfe4c, 0x0087, 0x04d0, 0x0790, 0x0607,
+ 0x00d3, 0xfee2, 0xf973, 0xee78, 0xeeb0, 0xf383,
+ 0xec46, 0xe343, 0xdcfb, 0xd83a, 0xe84f, 0x06c1,
+ 0x0d77, 0xffe5, 0x022d, 0x1370, 0x1aee, 0x17b7,
+ 0x12c7, 0x07ea, 0xfc37, 0x01a2, 0x0eec, 0x0b96,
+ 0xff84, 0xf9d5, 0xf69e, 0xf81a, 0xfb19, 0xf68a,
+ 0xf704, 0xfc1e, 0xf573, 0xec96, 0xe8b9, 0xea85,
+ 0xfda3, 0x09d8, 0xf477, 0xe096, 0xe957, 0xf6c7,
+ 0xf44a, 0xe557, 0xdad9, 0xe14a, 0xefc0, 0xf5c9,
+ 0xf0f3, 0xf0a9, 0xf828, 0xf4cb, 0xecd1, 0xf072,
+ 0xf469, 0xf9e3, 0x03bf, 0xfd59, 0xed9c, 0xe829,
+ 0xe8e2, 0xece6, 0xed4b, 0xeb70, 0xf725, 0xfeeb,
+ 0xf62e, 0xf2d2, 0xf07c, 0xe7d1, 0xe982, 0xf38d,
+ 0xff8a, 0x07c5, 0xfe19, 0xf05f, 0xf1b2, 0xfae1,
+ 0x02b3, 0x005b, 0xf5e5, 0xf14c, 0xf08c, 0xf10b,
+ 0xee38, 0xdd1b, 0xd1f2, 0xd9e2, 0xde7e, 0xde7d,
+ 0xde86, 0xd873, 0xdd26, 0xec5c, 0xefe9, 0xee9a,
+ 0xf02d, 0xf14f, 0xf693, 0xf6f0, 0xee4d, 0xecc4,
+ 0xf26b, 0xf68c, 0xf9ad, 0xfc4e, 0x0277, 0x0902,
+ 0x047c, 0xfc1a, 0xfd89, 0x02e0, 0x0067, 0xfaa2,
+ 0xfca7, 0xfc91, 0xefde, 0xe9d0, 0xef7e, 0xeafe,
+ 0xdf5f, 0xdafb, 0xe079, 0xf8c9, 0x156e, 0x19cb,
+ 0x1a25, 0x2c03, 0x3033, 0x1965, 0x0707, 0x07b3,
+ 0x0f76, 0x182c, 0x206e, 0x1d0a, 0x0b50, 0x01e1,
+ 0x07a3, 0x043e, 0xf7e2, 0xf824, 0xfeca, 0xff03,
+ 0xfde5, 0x0081, 0x04f6, 0x021d, 0xf8c7, 0xfb27,
+ 0x04e3, 0x0481, 0x04dd, 0x0dbd, 0x1300, 0x10ae,
+ 0x08ee, 0x0504, 0x0c3e, 0x106c, 0x118d, 0x1e71,
+ 0x259e, 0x1710, 0x079f, 0x05ec, 0x07e5, 0x0527,
+ 0x03b3, 0x0720, 0x053b, 0xffe2, 0x03a9, 0x0a30,
+ 0x0bb4, 0x0a05, 0x048a, 0x0329, 0x06a1, 0x03c0,
+ 0x0434, 0x0df4, 0x1292, 0x164e, 0x1ff0, 0x2239,
+ 0x1a95, 0x1404, 0x1676, 0x1eec, 0x1ca2, 0x0bbe,
+ 0xfdf3, 0xfb12, 0xf837, 0xecb9, 0xe284, 0xe48d,
+ 0xe862, 0xe745, 0xe872, 0xec8e, 0xf532, 0xfbc9,
+ 0xf497, 0xf72b, 0x0faa, 0x1945, 0x1068, 0x11d1,
+ 0x13d7, 0x0b6e, 0x053c, 0x0250, 0x0297, 0x088c,
+ 0x0b71, 0x0a49, 0x08dd, 0x01eb, 0xf9e5, 0xfc67,
+ 0x03a1, 0x02fb, 0xfd89, 0xf987, 0xf300, 0xecd5,
+ 0xef67, 0xf55d, 0xf943, 0xfdfa, 0xfedf, 0xf71e,
+ 0xeb7d, 0xe74e, 0xf8e7, 0x1667, 0x2156, 0x1d54,
+ 0x1fa7, 0x198c, 0x0157, 0xf5db, 0x048e, 0x133b,
+ 0x1314, 0x1000, 0x0f0b, 0x06f6, 0xf7f6, 0xee7e,
+ 0xf264, 0x0087, 0x0c4f, 0x0d7f, 0x0c05, 0x0b34,
+ 0x0343, 0xf959, 0xf8dd, 0x048e, 0x18fc, 0x2537,
+ 0x201a, 0x1bd9, 0x1b90, 0x1076, 0x03b1, 0xfe84,
+ 0xf98d, 0xfa22, 0x04dc, 0x0f13, 0x1180, 0x0964,
+ 0xfbed, 0xf4ff, 0xf2c6, 0xf146, 0xf672, 0xfd67,
+ 0xfd00, 0xfb6b, 0xffcf, 0x0606, 0x078a, 0x032c,
+ 0xfccb, 0xf826, 0xf635, 0xf8bf, 0x02d4, 0x105c,
+ 0x14ad, 0x0ce8, 0x07a4, 0x0e77, 0x1756, 0x1596,
+ 0x0ce6, 0x090f, 0x0bd3, 0x0fba, 0x1063, 0x0968,
+ 0xfceb, 0xf504, 0xf6b2, 0xfe11, 0x039e, 0x02cf,
+ 0xff8e, 0xff34, 0x00c8, 0x0067, 0xfe2a, 0xff0a,
+ 0x0314, 0x0610, 0x084b, 0x07f7, 0x04c9, 0x03df,
+ 0x006e, 0xf8e2, 0xf850, 0xfcf9, 0x005e, 0x0318,
+ 0x005e, 0xfb12, 0xf796, 0xeff2, 0xeea5, 0xfdae,
+ 0x0e6f, 0x1451, 0x07c0, 0xf28f, 0xf3a6, 0x0060,
+ 0xfa76, 0xf3f4, 0xfb96, 0xffd8, 0xf97c, 0xe9d8,
+ 0xe0ba, 0xf1f6, 0x062f, 0x07f5, 0x1055, 0x22ce,
+ 0x1fed, 0x0d76, 0x0d8c, 0x1b69, 0x1ad8, 0x10b8,
+ 0x0abc, 0xff9a, 0xf603, 0x005a, 0x1047, 0x1157,
+ 0x04c3, 0xf28f, 0xec7b, 0xfb97, 0x083c, 0x038f,
+ 0xfc89, 0xfd44, 0x0714, 0x1373, 0x10a8, 0x07b6,
+ 0x0d9d, 0x0d54, 0xf866, 0xed16, 0xf6f7, 0x0580,
+ 0x0d79, 0x03d3, 0xf081, 0xec07, 0xf455, 0xfa08,
+ 0xf9d9, 0xf667, 0xf6ce, 0xfa35, 0xf8f8, 0xf67c,
+ 0xf885, 0x0002, 0x04d0, 0xfe0d, 0xfc92, 0x0905,
+ 0x0c81, 0x0521, 0x0191, 0x02b5, 0x0a78, 0x10a7,
+ 0x0e3d, 0x0f3a, 0x1017, 0x103e, 0x1c14, 0x1e76,
+ 0x0c05, 0x0096, 0x016b, 0x0304, 0x0487, 0x0560,
+ 0x0da5, 0x195e, 0x13d2, 0x0512, 0x00ac, 0xfebf,
+ 0xf3fe, 0xeb59, 0xf206, 0xfbaa, 0xfcd0, 0x0205,
+ 0x0a81, 0x0ee7, 0x169f, 0x15fb, 0x04fe, 0xf990,
+ 0xfa54, 0x0103, 0x0919, 0x0523, 0xfb69, 0xfa5b,
+ 0xfa82, 0xfa6c, 0xfc98, 0xfe17, 0x063f, 0x0df6,
+ 0x0557, 0xf859, 0xf5fa, 0xfac4, 0xfe4b, 0xf83d,
+ 0xeb57, 0xe45d, 0xe3db, 0xe064, 0xdf6b, 0xed3a,
+ 0xfa20, 0xf5fe, 0xf9a0, 0x1034, 0x1da1, 0x1ad1,
+ 0x1542, 0x107d, 0x1133, 0x16f5, 0x17e1, 0x0fbf,
+ 0x01ff, 0xf755, 0xf467, 0xf81f, 0x017f, 0x071b,
+ 0x03df, 0x012a, 0x02b0, 0x081c, 0x0cc8, 0x072e,
+ 0x019a, 0x06e8, 0x0e89, 0x1529, 0x1527, 0x093b,
+ 0x00ca, 0x035f, 0x0c03, 0x1825, 0x1b37, 0x0f10,
+ 0xfc32, 0xec8c, 0xedfa, 0xfadf, 0xfe18, 0xf924,
+ 0xf1a0, 0xe8c0, 0xe67d, 0xe6ca, 0xeb2b, 0xf9f0,
+ 0xfe20, 0xf264, 0xef42, 0xf6db, 0xfd40, 0xff4d,
+ 0xfd8a, 0xfb72, 0xf4ce, 0xec84, 0xf27a, 0xfcd8,
+ 0xfd04, 0x00bd, 0x08cf, 0x0767, 0x02d4, 0x0104,
+ 0xff87, 0x027a, 0x03bc, 0xfce8, 0xfcd9, 0x030f,
+ 0xfe5a, 0xf9c9, 0xfd81, 0xf9e6, 0xf593, 0xf88f,
+ 0xf799, 0xf9b6, 0x01fa, 0x04db, 0x0602, 0x0474,
+ 0x053e, 0x13c5, 0x14e7, 0x0097, 0xf872, 0xf8dc,
+ 0xf4aa, 0xf329, 0xf0e6, 0xf914, 0x08a2, 0xff2a,
+ 0xee96, 0xf2f0, 0xfbbf, 0x06f9, 0x11f4, 0x0b84,
+ 0x0251, 0x01f3, 0x0244, 0x05da, 0x0647, 0xfc30,
+ 0xf35f, 0xefd1, 0xecb2, 0xf054, 0x01f6, 0x1134,
+ 0x09c0, 0x0244, 0x1148, 0x1b62, 0x13ba, 0x0f7c,
+ 0x10df, 0x122f, 0x157d, 0x1835, 0x18be, 0x1408,
+ 0x0a8e, 0x06ce, 0x07c3, 0x0191, 0xf7ce, 0xfb8d,
+ 0x0a4f, 0x0c93, 0x03e4, 0x01e6, 0xfec5, 0xf75a,
+ 0xf950, 0x02a7, 0x0b15, 0x0abe, 0xfecc, 0xf7e0,
+ 0xfb8a, 0xfe03, 0xfd31, 0xfab0, 0xfe3c, 0x0949,
+ 0x092d, 0x03b4, 0x0a25, 0x098d, 0xf887, 0xecd7,
+ 0xeeb2, 0xf5aa, 0xfc4b, 0x03a7, 0x093c, 0x06ea,
+ 0x06de, 0x1003, 0x1518, 0x13fd, 0x103d, 0x0584,
+ 0xfa12, 0xf3ba, 0xf43e, 0x0192, 0x1257, 0x16e8,
+ 0x100a, 0x0983, 0x0e40, 0x15f6, 0x1292, 0x0d56,
+ 0x0c67, 0x06b4, 0xfdb9, 0xf461, 0xea86, 0xe9ad,
+ 0xf33d, 0xf801, 0xf2f6, 0xf248, 0xfa91, 0xfe96,
+ 0xf9be, 0xf3a1, 0xf648, 0x0525, 0x1032, 0x0ecf,
+ 0x0b24, 0x0660, 0x05e7, 0x08a4, 0xfd66, 0xf952,
+ 0x06da, 0xfbee, 0xe46b, 0xe661, 0xec27, 0xef74,
+ 0xf6bb, 0xed3d, 0xe42e, 0xee1e, 0xf242, 0xeec9,
+ 0xec8f, 0xe4c6, 0xe2da, 0xeb9b, 0xedfd, 0xe8a3,
+ 0xe811, 0xee20, 0xf675, 0x00f1, 0x0674, 0x06a0,
+ 0x1340, 0x19ca, 0x02f7, 0xfee2, 0x1da4, 0x25cb,
+ 0x167d, 0x122c, 0x12a0, 0x137d, 0x1140, 0x05cf,
+ 0x0203, 0x06a1, 0x020f, 0xf828, 0xf904, 0x06e7,
+ 0x0e47, 0x0907, 0x082e, 0x066e, 0x0269, 0x0e7b,
+ 0x19c0, 0x133f, 0x0b48, 0x0541, 0x01a3, 0x04df,
+ 0x05f1, 0x0745, 0x0989, 0x0104, 0xf570, 0xf27a,
+ 0xf5a3, 0xf5fc, 0xeb05, 0xe161, 0xe537, 0xea84,
+ 0xef7e, 0xf700, 0xf792, 0xf5c2, 0xf8c7, 0xfb15,
+ 0xfd06, 0x0216, 0x07d4, 0x083e, 0x008f, 0xf8c4,
+ 0xf997, 0x00c3, 0x026c, 0xfe50, 0x0753, 0x141c,
+ 0x0a6d, 0x009f, 0x0d51, 0x1b49, 0x1e14, 0x1315,
+ 0xfe66, 0xf8d9, 0xff10, 0xfd30, 0xfa6b, 0xf651,
+ 0xefd3, 0xf49b, 0xfb52, 0xff2c, 0x0b92, 0x0a90,
+ 0xf1ba, 0xeab6, 0x00cc, 0x0e7b, 0x0c23, 0x07fd,
+ 0xfa55, 0xeb05, 0xf0ef, 0xff73, 0x05e8, 0x0a57,
+ 0x085a, 0xff5b, 0xfcf4, 0xfe4a, 0xfa79, 0xf4f0,
+ 0xf5a4, 0xfda8, 0x00df, 0xfe23, 0x0254, 0x0647,
+ 0xff6a, 0xf861, 0xf8b5, 0xf885, 0xee6d, 0xe1b2,
+ 0xe43c, 0xf3f5, 0xfeb1, 0xfdac, 0x0104, 0x15c2,
+ 0x1dda, 0x0889, 0x0298, 0x16a6, 0x1cac, 0x13fd,
+ 0x10a6, 0x125e, 0x101c, 0x06b8, 0x090a, 0x1449,
+ 0x0c11, 0x02ff, 0x0a42, 0x08cc, 0x00ac, 0xfc95,
+ 0xf81d, 0xf976, 0xfab5, 0xfe0d, 0x0ac0, 0x0672,
+ 0xf701, 0xfb6a, 0x04b9, 0x0819, 0x090f, 0x0416,
+ 0x08ba, 0x0f18, 0x0303, 0xfa61, 0xfb49, 0xf63d,
+ 0xf3bc, 0xfa86, 0x07eb, 0x10c4, 0x0e75, 0x127e,
+ 0x154b, 0x08dd, 0x065e, 0x0c59, 0x0993, 0x0c5f,
+ 0x11f4, 0x103e, 0x08be, 0xf5c0, 0xe947, 0xf253,
+ 0xff1b, 0x0923, 0x0caf, 0x0baf, 0x15be, 0x179c,
+ 0x0977, 0x0b9f, 0x14e9, 0x0d26, 0x0411, 0x06e6,
+ 0x11e9, 0x179b, 0x0e64, 0x04bf, 0x02f5, 0x04a6,
+ 0x0a04, 0x0c61, 0x0c15, 0x0c32, 0x0377, 0xfabf,
+ 0xfcf4, 0xfd81, 0xf96d, 0xf551, 0xee4c, 0xe88f,
+ 0xeaa2, 0xf6dc, 0x073c, 0x0cf2, 0x0330, 0xf17a,
+ 0xe65f, 0xed4a, 0xfb8b, 0x03df, 0x06e4, 0x059c,
+ 0x0181, 0xf8db, 0xf0a5, 0xf728, 0xfe1a, 0xf58f,
+ 0xeed0, 0xea38, 0xdca0, 0xcf5f, 0xc837, 0xd521,
+ 0xfa06, 0x0b0e, 0xf95a, 0xf03b, 0xfe8a, 0x0c27,
+ 0x0e72, 0x0e45, 0x11a9, 0x1416, 0x13c9, 0x11ba,
+ 0x0c5e, 0x06de, 0x00d8, 0xfa9c, 0xfe07, 0x05fb,
+ 0x0243, 0xf54b, 0xeecb, 0xf5f0, 0xfc4f, 0xf368,
+ 0xe841, 0xe9cc, 0xf253, 0xf458, 0xec85, 0xeb43,
+ 0xf39d, 0xf40d, 0xf3e1, 0xfab2, 0xf8ac, 0xf0fd,
+ 0xeee8, 0xf42e, 0xff6a, 0xfc35, 0xeb11, 0xe923,
+ 0xec47, 0xe313, 0xdf83, 0xe920, 0xf904, 0x0715,
+ 0x089d, 0x0175, 0xf758, 0xed89, 0xeb8c, 0xea75,
+ 0xe76f, 0xe96f, 0xe85a, 0xe528, 0xea75, 0xf5e7,
+ 0x05ba, 0x0e97, 0x0460, 0xf72a, 0xf303, 0xf290,
+ 0xf299, 0xf02c, 0xf01e, 0xf34a, 0xef1d, 0xe991,
+ 0xeaa2, 0xec1b, 0xeb77, 0xe93d, 0xee69, 0xfd62,
+ 0xfe1c, 0xebec, 0xdec2, 0xe250, 0xf13e, 0xf66e,
+ 0xe9b0, 0xe083, 0xdf7b, 0xe2ef, 0xef0f, 0xf2bd,
+ 0xec4c, 0xec96, 0xebbb, 0xec5d, 0xf5ba, 0xf9fd,
+ 0xff3c, 0x06dd, 0xfe80, 0xf180, 0xef86, 0xf808,
+ 0x0622, 0x03c0, 0xf688, 0xfd63, 0x070b, 0xfc6b,
+ 0xec74, 0xdf2c, 0xd618, 0xd686, 0xe22f, 0xf901,
+ 0x0702, 0x02fb, 0x06d6, 0x108e, 0x0e29, 0x1271,
+ 0x1e23, 0x172f, 0x0b0b, 0x141a, 0x25b2, 0x2790,
+ 0x184e, 0x074b, 0x0356, 0x0e4a, 0x161d, 0x0a76,
+ 0xfd39, 0x03c9, 0x0d35, 0x0896, 0xfd94, 0xf13f,
+ 0xef76, 0xff30, 0x02e9, 0xf2b7, 0xf04e, 0xfc00,
+ 0x0113, 0x0257, 0xff98, 0xfc93, 0x0405, 0x0a77,
+ 0x0c91, 0x147e, 0x18fa, 0x1480, 0x0b8a, 0x025f,
+ 0x04d3, 0x0adb, 0x077c, 0x09e4, 0x113e, 0x108f,
+ 0x1096, 0x0eda, 0x062b, 0x0274, 0x050a, 0x0a82,
+ 0x0d14, 0x0607, 0x042c, 0x0a3a, 0x084c, 0x070d,
+ 0x0e37, 0x14ba, 0x1bfb, 0x233f, 0x227f, 0x1900,
+ 0x0e27, 0x0ac5, 0x0c09, 0x0ebe, 0x10f6, 0x0714,
+ 0xfe70, 0x07dd, 0x08fc, 0xfb5c, 0xf97a, 0xfefc,
+ 0xfc26, 0xf190, 0xec23, 0xf81d, 0x021d, 0xfc33,
+ 0xf6ab, 0xf45e, 0xf99e, 0x07c6, 0x09c0, 0x08b9,
+ 0x0e5e, 0x0892, 0x07f0, 0x1571, 0x1818, 0x11a6,
+ 0x04ac, 0xf40e, 0xf039, 0xe9bf, 0xe605, 0x025d,
+ 0x1d26, 0x15df, 0x000e, 0xecab, 0xe869, 0xeeac,
+ 0xed4f, 0xeb00, 0xea5a, 0xecc4, 0xf8fd, 0xfb97,
+ 0xfac3, 0x0df8, 0x1bec, 0x1c90, 0x276d, 0x2e5d,
+ 0x1f19, 0x08ed, 0x051a, 0x126e, 0x1562, 0x1363,
+ 0x178d, 0x0ba0, 0x00da, 0x0b02, 0x09f3, 0x01cb,
+ 0x0486, 0x0048, 0xfc1b, 0xfcf8, 0xfb2f, 0x0a1d,
+ 0x1c98, 0x1891, 0x121b, 0x0e79, 0x065b, 0x054e,
+ 0x05c9, 0x0478, 0x07a9, 0x0895, 0x0b23, 0x1094,
+ 0x0f9e, 0x0e84, 0x0a9c, 0xfcc0, 0xf086, 0xec60,
+ 0xf783, 0x0d4b, 0x0a96, 0xf418, 0xf35b, 0x0076,
+ 0x00fc, 0xfe7b, 0x0507, 0x0d1d, 0x0aae, 0xfe9f,
+ 0xf43c, 0xee4e, 0xf023, 0xffbe, 0x10e6, 0x1787,
+ 0x160f, 0x0dc6, 0x0917, 0x11bc, 0x1792, 0x11d7,
+ 0x0abf, 0xfff3, 0xf46b, 0xf6db, 0x0159, 0x0a03,
+ 0x1278, 0x1330, 0x0823, 0xfe83, 0xff72, 0x0306,
+ 0xfe53, 0xfaae, 0x03d2, 0x0a3f, 0x042b, 0xfd56,
+ 0xfa21, 0xfdaf, 0x06ef, 0x0a85, 0x0c36, 0x0d4c,
+ 0x0638, 0x01c2, 0x023e, 0x01f1, 0x063d, 0x02e0,
+ 0xf7fd, 0xfb75, 0xfffb, 0xfc6c, 0x002e, 0x0240,
+ 0x0127, 0x0307, 0xfd3e, 0xfd6f, 0x0345, 0xf26b,
+ 0xde0a, 0xe106, 0xf2ce, 0x0600, 0x0387, 0xf9d3,
+ 0x118b, 0x246a, 0x107e, 0x0913, 0x1b51, 0x20ac,
+ 0x1826, 0x1337, 0x13d8, 0x0f15, 0x0075, 0xfa49,
+ 0x03ee, 0x0db0, 0x0d89, 0x06e5, 0x042f, 0x024e,
+ 0xf7be, 0xf07b, 0xf26d, 0xf54f, 0xf729, 0xef83,
+ 0xe74f, 0xf2ed, 0xfe7c, 0xfec6, 0x0829, 0x128f,
+ 0x0fd9, 0x070f, 0x0040, 0x0343, 0x04bc, 0xfb58,
+ 0xfb56, 0x02d2, 0x04d1, 0x0a29, 0x09b2, 0xffbb,
+ 0xfd4b, 0xfad7, 0xf7cc, 0x042e, 0x1492, 0x1943,
+ 0x12b2, 0x0b62, 0x0e07, 0x0aed, 0xf862, 0xeca5,
+ 0xf1c3, 0x01ee, 0x1281, 0x1474, 0x0fb3, 0x108c,
+ 0x10dc, 0x0c71, 0x04c6, 0x07fd, 0x17e1, 0x14a0,
+ 0x037e, 0x056e, 0x0e2e, 0x0fbd, 0x0d47, 0x05a8,
+ 0x06c4, 0x0a0b, 0xfff4, 0xfdc6, 0x0026, 0xf8b4,
+ 0xfb25, 0xfc37, 0xf145, 0xf3c6, 0xf6d4, 0xf179,
+ 0xff0e, 0x10fc, 0x10fd, 0x0db6, 0x0bdc, 0x05cc,
+ 0xfd2f, 0xf945, 0xfe92, 0xfef2, 0xf580, 0xef69,
+ 0xef00, 0xf409, 0xf569, 0xea50, 0xea8d, 0xfa42,
+ 0xfe19, 0xf877, 0xf172, 0xe5d1, 0xdd8f, 0xd76b,
+ 0xda34, 0xf2e1, 0x0462, 0xfc65, 0xfb3c, 0x0df0,
+ 0x1f09, 0x23be, 0x2036, 0x162c, 0x088e, 0x04c0,
+ 0x09d5, 0x0681, 0x0141, 0x0535, 0x0655, 0xffa1,
+ 0xf76e, 0xf647, 0x0234, 0x0c58, 0x0a42, 0x02f9,
+ 0xf535, 0xeb3a, 0xf34f, 0xfbaf, 0xf787, 0xf2c5,
+ 0xf5a7, 0xff02, 0x0256, 0xfbd8, 0xfe65, 0x09d5,
+ 0x08fe, 0xfcaa, 0xf84c, 0x0019, 0xfe76, 0xed88,
+ 0xea6f, 0xf9f8, 0x02bd, 0x01c8, 0x0024, 0x0129,
+ 0x0644, 0x070a, 0x0338, 0x05ae, 0x0a9a, 0x0899,
+ 0x0163, 0x010f, 0x0bbf, 0x0d67, 0x0218, 0x010a,
+ 0x0794, 0x09b0, 0x0f99, 0x125e, 0x090d, 0x03b4,
+ 0x0882, 0x0f35, 0x16f8, 0x18b9, 0x0b3c, 0xfc01,
+ 0xfb12, 0xfe6a, 0xfca4, 0x00d5, 0x0b59, 0x0c64,
+ 0x023d, 0xfbc5, 0xfeea, 0xfac3, 0xe893, 0xe0c1,
+ 0xe80f, 0xeb0b, 0xf05d, 0xfe6d, 0x06e8, 0x0b31,
+ 0x0eef, 0x0869, 0xf78e, 0xe6cd, 0xe48d, 0xf3b9,
+ 0x00f6, 0x01cf, 0xfcad, 0xf51b, 0xee69, 0xebc6,
+ 0xf1ae, 0x0284, 0x110d, 0x1556, 0x174a, 0x1785,
+ 0x0fbf, 0xfd4c, 0xec4a, 0xee38, 0xf676, 0xf902,
+ 0x01d3, 0x0440, 0xfd32, 0x0e47, 0x2815, 0x2376,
+ 0x15b4, 0x15dc, 0x1461, 0x0db1, 0x0e8f, 0x169a,
+ 0x1938, 0x14bc, 0x1077, 0x06d1, 0xf991, 0xf6a4,
+ 0xf6b5, 0xf532, 0xff34, 0x0ba6, 0x08a1, 0xf797,
+ 0xe2b8, 0xdab3, 0xe427, 0xed20, 0xeee7, 0xf116,
+ 0xf637, 0xfd69, 0xffbb, 0xfc56, 0x0045, 0x0909,
+ 0x088c, 0x0372, 0x0468, 0x09cd, 0x0a07, 0xffdf,
+ 0xf8ad, 0x006f, 0x09bc, 0x0acd, 0x0c42, 0x0ed7,
+ 0x0e26, 0x0c4f, 0x09e9, 0x0790, 0x0335, 0xfa94,
+ 0xf9e2, 0x058a, 0x0b7e, 0x080c, 0x0b3e, 0x16e9,
+ 0x1c87, 0x15df, 0x1026, 0x1442, 0x1566, 0x0c21,
+ 0x015d, 0xfb45, 0xf936, 0xf748, 0xf9a2, 0x067e,
+ 0x0dd8, 0x07d4, 0x05ad, 0x054f, 0xfe04, 0xf8ab,
+ 0xf593, 0xf4f9, 0xf754, 0xf22e, 0xee0b, 0xef48,
+ 0xe626, 0xe3c5, 0xf94d, 0x0aaf, 0x0834, 0xfeea,
+ 0xf924, 0xfa1f, 0xfbff, 0xfe44, 0x0360, 0xff65,
+ 0xf33d, 0xece8, 0xed00, 0xf0fb, 0xf23b, 0xf016,
+ 0xf9d7, 0x048f, 0xf90a, 0xe39d, 0xd745, 0xd7f7,
+ 0xdea1, 0xdc76, 0xdc1b, 0xedc5, 0xff0e, 0x041a,
+ 0x0723, 0x0dee, 0x1b0d, 0x224b, 0x19de, 0x15d5,
+ 0x171a, 0x0a17, 0xfdf8, 0xffc9, 0xfdb6, 0xf7a2,
+ 0xfa36, 0xff22, 0x00a6, 0x058c, 0x11a5, 0x1bfc,
+ 0x17d4, 0x0a9e, 0x03ab, 0x0064, 0xf936, 0xf56e,
+ 0xfc0b, 0x06e6, 0x093a, 0x01d5, 0x0099, 0x0891,
+ 0x0b08, 0x073d, 0x063e, 0x0af7, 0x11ef, 0x0df8,
+ 0xfe69, 0xf40c, 0xf157, 0xf47d, 0xfc6d, 0xf883,
+ 0xeb7f, 0xeb67, 0xf4fb, 0xfae5, 0xf9c5, 0xf715,
+ 0xfccd, 0xff67, 0xf5ef, 0xf4c6, 0xfe95, 0x043e,
+ 0x0438, 0xffbb, 0xffdd, 0x05ae, 0x00d0, 0xf973,
+ 0xfb31, 0xfe55, 0x0591, 0x088f, 0xfdf5, 0xf885,
+ 0xf93a, 0xf896, 0xfce5, 0xfa5a, 0xf5e6, 0x0246,
+ 0x0c6b, 0x0ca9, 0x101b, 0x0d2f, 0x03d1, 0xfcf2,
+ 0xf5a5, 0xf48a, 0xfaae, 0xfe9f, 0x002a, 0x00c7,
+ 0x02e1, 0x03b3, 0x00b0, 0x058b, 0x0bf2, 0x0600,
+ 0xfe22, 0xf4b4, 0xe7b1, 0xe3db, 0xe523, 0xe82f,
+ 0xedaf, 0xedbb, 0xf5ea, 0x0761, 0x0966, 0x00fa,
+ 0xf60c, 0xe7ad, 0xe62b, 0xe9b4, 0xe86a, 0xf311,
+ 0xf863, 0xe4c4, 0xd8ac, 0xec2b, 0x0a57, 0x14ea,
+ 0x1331, 0x21a8, 0x2cc8, 0x195b, 0x02c0, 0xfc67,
+ 0xfb58, 0xff44, 0x0819, 0x0cf2, 0x083d, 0x047b,
+ 0x114a, 0x1ee5, 0x1c0f, 0x161a, 0x10e6, 0x0a6f,
+ 0x08c6, 0x0725, 0x0732, 0x06ec, 0xfb7e, 0xf808,
+ 0x05c8, 0x0c36, 0x0824, 0x0000, 0xf680, 0xfd2e,
+ 0x0fdc, 0x183f, 0x14b1, 0x0aa8, 0x008d, 0xfab7,
+ 0xf458, 0xf2f6, 0xfd4f, 0x0a96, 0x0f9a, 0x078a,
+ 0xfe4b, 0x00ca, 0x037d, 0x01aa, 0x078a, 0x1371,
+ 0x1dd5, 0x218c, 0x1acb, 0x11c5, 0x0955, 0xfc56,
+ 0xf470, 0xfa84, 0x06f9, 0x108a, 0x13b0, 0x1249,
+ 0x1014, 0x0e61, 0x0e8f, 0x1216, 0x174e, 0x1868,
+ 0x13b2, 0x0fa7, 0x0ae3, 0x00cc, 0xfbe8, 0x0208,
+ 0x090c, 0x0a98, 0x0673, 0x03f6, 0x0eac, 0x1b03,
+ 0x14a2, 0x0687, 0x0227, 0xfea2, 0xf814, 0xface,
+ 0x043b, 0x0ba8, 0x0f79, 0x08be, 0xfd1a, 0xf988,
+ 0xf44a, 0xebba, 0xea60, 0xe79b, 0xe89e, 0xf7cb,
+ 0xff2a, 0xfd42, 0x0424, 0x02b8, 0xf1b9, 0xe910,
+ 0xed24, 0xf0c2, 0xec23, 0xe244, 0xde4b, 0xdef5,
+ 0xdbb8, 0xda6f, 0xe652, 0xfa5e, 0x0251, 0x0161,
+ 0x0f9c, 0x1d2a, 0x0e04, 0xf69e, 0xefda, 0xf584,
+ 0xfcac, 0xfce0, 0xfd30, 0x059d, 0x0a80, 0x0aaa,
+ 0x0deb, 0x0dd9, 0x05a1, 0xf54b, 0xe673, 0xe9c1,
+ 0xf1fa, 0xec09, 0xe78c, 0xee79, 0xf25d, 0xed9e,
+ 0xeb3e, 0xf406, 0xf97b, 0xee89, 0xeb6d, 0xfbd5,
+ 0xff48, 0xec5f, 0xe03f, 0xe2bd, 0xe395, 0xe3fb,
+ 0xf241, 0x0637, 0x07bb, 0xf531, 0xe26f, 0xdc12,
+ 0xdf8c, 0xe221, 0xe1d0, 0xe9f4, 0xf772, 0xfa75,
+ 0xf959, 0x0078, 0x052f, 0x0019, 0xfae9, 0xfa1e,
+ 0xf954, 0xf474, 0xefca, 0xf328, 0xf6f6, 0xf5f4,
+ 0xfb79, 0x00f1, 0xf969, 0xf3b2, 0xf8b9, 0xfc73,
+ 0xf9cf, 0xf23d, 0xe914, 0xe1e7, 0xde96, 0xe703,
+ 0xf701, 0xfe41, 0x0274, 0x0cc7, 0x0f65, 0xffb7,
+ 0xe742, 0xd81b, 0xd568, 0xd149, 0xcd86, 0xd68e,
+ 0xe793, 0xf1bd, 0xeb2c, 0xe3eb, 0xf4af, 0x0843,
+ 0x050b, 0x0213, 0x0a4b, 0x0624, 0xee0f, 0xd1ed,
+ 0xc4da, 0xc9d2, 0xd547, 0xe196, 0xe907, 0xeaa2,
+ 0xf228, 0xfcd4, 0xff67, 0xfc6b, 0xf943, 0xfa9a,
+ 0x00b4, 0x0a01, 0x1829, 0x1ba7, 0x0d5c, 0x04e5,
+ 0x0400, 0xff75, 0x023e, 0x058c, 0xfca6, 0xf80b,
+ 0xff9e, 0x089f, 0x0c72, 0x0aee, 0x0c98, 0x1632,
+ 0x1fd4, 0x200b, 0x14f8, 0x0c1c, 0x0fc4, 0x1524,
+ 0x0e9f, 0xf62a, 0xdc1f, 0xdd3f, 0xec2b, 0xf009,
+ 0xf608, 0x018d, 0x0585, 0x0223, 0xf8dd, 0xf5fe,
+ 0xff1e, 0x00b3, 0x005c, 0x0deb, 0x1a6b, 0x1d81,
+ 0x1817, 0x0993, 0x0459, 0x10e3, 0x1d4a, 0x1bb9,
+ 0x0f5a, 0x0877, 0x0aa8, 0x07d0, 0x0170, 0x00e3,
+ 0x08ff, 0x188e, 0x1c39, 0x0c2d, 0x000b, 0x02cc,
+ 0x1026, 0x22ea, 0x2d36, 0x2ced, 0x26b6, 0x17f6,
+ 0x0c1a, 0x0b6e, 0x0c1d, 0x0b2e, 0x06d2, 0xfcc2,
+ 0xf77b, 0xfb35, 0xfde5, 0xf726, 0xeebc, 0xf8c7,
+ 0x1334, 0x26fd, 0x2bdc, 0x2159, 0x09b3, 0xf47a,
+ 0xe7f2, 0xde20, 0xdbb7, 0xe5de, 0xf2a8, 0xf635,
+ 0xf598, 0xfd9d, 0x0934, 0x0e39, 0x154b, 0x2258,
+ 0x24d5, 0x16d6, 0x062a, 0xf87a, 0xec25, 0xe7a3,
+ 0xe961, 0xe978, 0xebe0, 0xed0b, 0xe67d, 0xe743,
+ 0xf27a, 0xf832, 0xfb5a, 0xff03, 0xf984, 0xf4ce,
+ 0x0046, 0x0e7a, 0x0b12, 0x045f, 0x1398, 0x2520,
+ 0x1e62, 0x12d3, 0x0db2, 0x005e, 0xf661, 0xfd22,
+ 0x05ce, 0x09b2, 0x104e, 0x1676, 0x137d, 0x0e63,
+ 0x14c7, 0x1dba, 0x1c02, 0x1891, 0x16d0, 0x0d18,
+ 0xfd73, 0xf426, 0xfa69, 0x0977, 0x13e4, 0x1ab8,
+ 0x1c8d, 0x18e4, 0x1d01, 0x1e17, 0x0ff1, 0x0cb0,
+ 0x1412, 0x095a, 0xf746, 0xed0c, 0xe480, 0xe401,
+ 0xeb18, 0xee82, 0xf295, 0xf8bb, 0xfd04, 0x03d1,
+ 0x0a41, 0x0ae9, 0x09e2, 0x0994, 0x0baa, 0x1129,
+ 0x11b3, 0x0877, 0xfd5b, 0xf5ff, 0xf13c, 0xf08d,
+ 0xf3f1, 0xf56b, 0xf629, 0xfccb, 0x0439, 0x06f9,
+ 0x0a60, 0x0df6, 0x0ec3, 0x12a9, 0x18d4, 0x1994,
+ 0x137f, 0x0639, 0xf5f2, 0xecc8, 0xeb16, 0xeef0,
+ 0xfb77, 0x0557, 0xfe53, 0xf3f6, 0xfb86, 0x0dc0,
+ 0x1626, 0x1573, 0x188d, 0x1f4d, 0x240c, 0x245b,
+ 0x1c8f, 0x100e, 0x054d, 0xfa0a, 0xef87, 0xeba1,
+ 0xed95, 0xf3a5, 0xfa39, 0xfda7, 0x012f, 0x00de,
+ 0xf989, 0xfae5, 0x062c, 0x0562, 0xfaba, 0xf97e,
+ 0xfa81, 0xeec6, 0xdcfc, 0xd03c, 0xd109, 0xe6eb,
+ 0xffa1, 0x0370, 0x04fe, 0x172d, 0x1fab, 0x0f53,
+ 0x00dd, 0x04e5, 0x0b99, 0x09e8, 0x0b28, 0x0e61,
+ 0x02f8, 0xf373, 0xf2c9, 0xfa14, 0x0315, 0x0b28,
+ 0x0b3f, 0x0aa0, 0x0e37, 0x117c, 0x1604, 0x182b,
+ 0x1a29, 0x211b, 0x1cc7, 0x0fee, 0x0e01, 0x096a,
+ 0xfdd7, 0xfc6d, 0xfaf6, 0xf1be, 0xec0b, 0xe829,
+ 0xe61e, 0xec44, 0xf623, 0xfeea, 0x0796, 0x0e9f,
+ 0x0a05, 0xfb2a, 0xf97b, 0x03c4, 0x028c, 0xfb50,
+ 0xf8f5, 0xfb59, 0x06af, 0x0e5e, 0x0b53, 0x0b39,
+ 0x07fb, 0x0162, 0x091e, 0x159a, 0x1919, 0x129c,
+ 0x01d4, 0xfa71, 0x01a4, 0x00d9, 0xfe87, 0x04a0,
+ 0x03b4, 0xfe4d, 0xfc41, 0xf90b, 0xfd51, 0x0d3c,
+ 0x173b, 0x0f96, 0x0641, 0x1049, 0x1fa4, 0x2014,
+ 0x1a63, 0x0c9b, 0xf6f1, 0xf803, 0x09f8, 0x0978,
+ 0xfe20, 0xf864, 0xf582, 0xf9f8, 0x01ca, 0x0413,
+ 0x055f, 0x0168, 0xf32e, 0xe72b, 0xe582, 0xeb3d,
+ 0xf30d, 0xf949, 0x01d1, 0x0cd7, 0x11bd, 0x0e9f,
+ 0x0b22, 0x0cd0, 0x0aab, 0xfc3b, 0xf210, 0xf3a9,
+ 0xecac, 0xdb1d, 0xcc77, 0xcb12, 0xea83, 0x1746,
+ 0x1c53, 0x0a7a, 0x1338, 0x21bb, 0x13ee, 0xfdda,
+ 0xf832, 0xfa4d, 0xf8f6, 0xfbe3, 0x017e, 0xff45,
+ 0x0217, 0x0e3b, 0x10ea, 0x1087, 0x15dc, 0x1127,
+ 0x0784, 0x07ee, 0x064e, 0xf4e8, 0xddc4, 0xdba8,
+ 0xf375, 0x0641, 0x0900, 0x0bc5, 0x0e20, 0x0c3e,
+ 0x0a35, 0x06bc, 0x0171, 0xf8b2, 0xeda3, 0xe8ce,
+ 0xea3a, 0xeec1, 0xf5d0, 0xffad, 0x1072, 0x1887,
+ 0x0a00, 0x0249, 0x1030, 0x1a6b, 0x1ab6, 0x17b2,
+ 0x10c2, 0x0c8e, 0x0c94, 0x0c52, 0x07bb, 0xfc9b,
+ 0xf8e7, 0x00b3, 0x0319, 0x020f, 0x04ce, 0x02b3,
+ 0xfcac, 0xfb48, 0x01cb, 0x0b47, 0x0c76, 0x0918,
+ 0x0b5a, 0x0ffa, 0x116c, 0x0839, 0xf5ee, 0xec84,
+ 0xee37, 0xf2d9, 0xfbae, 0x04ed, 0x0ac6, 0x080b,
+ 0xf636, 0xe591, 0xe59b, 0xf0c8, 0xfcda, 0xf798,
+ 0xe4bb, 0xe3a4, 0xf14e, 0xfadf, 0x0110, 0xfbd1,
+ 0xf206, 0xfa43, 0x07c5, 0x0b68, 0x105f, 0x18ce,
+ 0x1b82, 0x1409, 0x0bc1, 0x11ff, 0x1fec, 0x25f1,
+ 0x200b, 0x0e1c, 0xfd9b, 0xfa68, 0xf718, 0xed1a,
+ 0xe6e3, 0xe40c, 0xe249, 0xed7b, 0x080c, 0x1a4b,
+ 0x1c5d, 0x256d, 0x2d72, 0x1af5, 0x049e, 0xff2d,
+ 0xfae9, 0xf871, 0xfc27, 0xf957, 0xf37e, 0xf43c,
+ 0xf8ed, 0x004a, 0x0974, 0x1242, 0x194e, 0x1b5e,
+ 0x1821, 0x0f5f, 0xfdc1, 0xe62a, 0xd7e2, 0xdf3a,
+ 0xeb66, 0xe825, 0xe6cb, 0xf3b5, 0xfa4e, 0xf77b,
+ 0xf6f0, 0xf46a, 0xf62c, 0x06b2, 0x1509, 0x179f,
+ 0x1fd6, 0x2985, 0x1da1, 0x08fa, 0x04a0, 0x06c2,
+ 0x02fd, 0xff1c, 0xfc7c, 0xfa5f, 0xf64e, 0xf034,
+ 0xf7a2, 0x0ca8, 0x1a6e, 0x1f7a, 0x21d5, 0x20a4,
+ 0x2316, 0x24b6, 0x176e, 0x0498, 0xfb95, 0xf709,
+ 0xef14, 0xeb19, 0xf01e, 0xf56c, 0xfd5e, 0x0ede,
+ 0x18b6, 0x1296, 0x0d96, 0x0ae3, 0x02ff, 0xfce5,
+ 0xfb63, 0xfca4, 0xff16, 0xf876, 0xe607, 0xd6b7,
+ 0xd438, 0xd9fd, 0xe522, 0xf358, 0xfb2e, 0xfd22,
+ 0xffb3, 0xfd25, 0xfa96, 0x02b9, 0x0966, 0x0bd0,
+ 0x12bf, 0x1337, 0x0ae4, 0xff62, 0xeb63, 0xde1d,
+ 0xe205, 0xe32b, 0xe35a, 0xeea4, 0xf5f4, 0xf19f,
+ 0xe8ed, 0xdfca, 0xdea9, 0xe8fb, 0xf423, 0xf523,
+ 0xe9b2, 0xd9a9, 0xd41d, 0xe2f8, 0xf663, 0xf844,
+ 0xf8b1, 0x0618, 0x096b, 0x06ca, 0x13f0, 0x1bca,
+ 0x14ab, 0x1592, 0x1a51, 0x142a, 0x0a15, 0x0428,
+ 0x042c, 0x06f0, 0x0844, 0x0c80, 0x1294, 0x0c58,
+ 0xf894, 0xee92, 0xfa1b, 0x092f, 0x12bb, 0x1adb,
+ 0x1944, 0x10fc, 0x0d19, 0x062a, 0xff12, 0xff38,
+ 0xfc38, 0xfd19, 0x0881, 0x09f0, 0x029f, 0x018c,
+ 0x00fc, 0x01b9, 0x0282, 0xfa91, 0xfa38, 0x030c,
+ 0xf7c3, 0xe1a0, 0xdd9a, 0xe1c9, 0xe438, 0xec2d,
+ 0xf45e, 0xfce9, 0x07ff, 0x0571, 0xf958, 0xf7df,
+ 0xf82b, 0xf3b3, 0xf6d1, 0xfaed, 0xf6ac, 0xf1f1,
+ 0xefd7, 0xf1f2, 0xfe72, 0x0fe5, 0x164d, 0x0d75,
+ 0x06c6, 0x0aa6, 0x0bd7, 0x0a8e, 0x0b63, 0x02b8,
+ 0xf4ba, 0xecb2, 0xe541, 0xe285, 0xea19, 0xf2a3,
+ 0xfc94, 0x0901, 0x0b30, 0x03e5, 0x0367, 0x09bf,
+ 0x06d5, 0xfd12, 0xfc46, 0xfed3, 0xfbc4, 0xf6f7,
+ 0xedb5, 0xe4c8, 0xe545, 0xe8d9, 0xf1cd, 0xfde5,
+ 0xfbdb, 0xf613, 0xf817, 0xf45a, 0xed20, 0xe6da,
+ 0xdfb6, 0xe7a1, 0xfc73, 0x0635, 0xfd4d, 0xe833,
+ 0xdd02, 0xed18, 0x0698, 0x1452, 0x1241, 0x0876,
+ 0x06f6, 0x0a39, 0x0be9, 0x14f6, 0x184f, 0x0e9a,
+ 0x0fac, 0x1855, 0x14a2, 0x0bb4, 0x078b, 0x0a12,
+ 0x0efc, 0x0b42, 0x0342, 0xfe4b, 0xf5cb, 0xefd5,
+ 0xf810, 0x026e, 0x02bd, 0x0260, 0x0392, 0x00b7,
+ 0x06f3, 0x14dd, 0x1398, 0x0eb8, 0x1458, 0x1268,
+ 0x1023, 0x1796, 0x1185, 0x038d, 0x03a9, 0x0948,
+ 0x0d2c, 0x0db1, 0x08dc, 0x05a9, 0x0078, 0xfb82,
+ 0x0389, 0x0d67, 0x142e, 0x236b, 0x2bc6, 0x2029,
+ 0x13a8, 0x1199, 0x0f69, 0x094e, 0x0a01, 0x10d6,
+ 0x1355, 0x1756, 0x1e7e, 0x1f6a, 0x1ea9, 0x1a55,
+ 0x0e20, 0x0977, 0x0b5e, 0x0793, 0x044c, 0x01f9,
+ 0xfe90, 0xfe64, 0xfcd7, 0xfaa3, 0xf8e1, 0xf3c1,
+ 0xf704, 0x04b5, 0x0ad7, 0x02cc, 0xf5c6, 0xf638,
+ 0x00de, 0xfbad, 0xf59a, 0x043f, 0x0d55, 0x092a,
+ 0x0644, 0x0094, 0x01d2, 0x0ad7, 0x0494, 0xf792,
+ 0xf4dd, 0xf777, 0xfe74, 0x02cf, 0xfd7f, 0xf8cc,
+ 0xf562, 0xee3a, 0xe6b2, 0xe079, 0xe5f6, 0xfa5e,
+ 0x03cf, 0xf752, 0xeb21, 0xe881, 0xe398, 0xdcd5,
+ 0xe251, 0xf65a, 0x05df, 0xfd66, 0xed16, 0xf822,
+ 0x10c0, 0x0ec5, 0xffe4, 0x0101, 0x05d0, 0x0676,
+ 0x0ad9, 0x0a4f, 0xfe4b, 0xf1da, 0xf1a9, 0xfb39,
+ 0xfd34, 0xf613, 0xf41b, 0xf455, 0xf0d4, 0xee5d,
+ 0xea0e, 0xea42, 0xfded, 0x115f, 0x0cb6, 0x07a8,
+ 0x10cd, 0x0cba, 0xfe97, 0x0042, 0x00e7, 0xf326,
+ 0xec30, 0xeef6, 0xf077, 0xeede, 0xea2e, 0xea99,
+ 0xecbf, 0xe52f, 0xe5b8, 0xf570, 0xfddc, 0xfe80,
+ 0xff29, 0xfe85, 0x0349, 0x0414, 0xf640, 0xecd6,
+ 0xee4d, 0xebb7, 0xe58b, 0xe556, 0xebbd, 0xf006,
+ 0xeeb9, 0xf0f4, 0xf665, 0xf734, 0xf584, 0xf33c,
+ 0xf1f2, 0xf127, 0xe88b, 0xde2d, 0xdd39, 0xddbb,
+ 0xdc8f, 0xe0c0, 0xe7a4, 0xede8, 0xf3fb, 0xf84e,
+ 0xfafd, 0xfb2b, 0xf53f, 0xe9ac, 0xe444, 0xefa0,
+ 0xfbf6, 0xf691, 0xed83, 0xf127, 0xfa49, 0xffc6,
+ 0xfede, 0xfbfc, 0x010d, 0x0913, 0x074d, 0xff02,
+ 0xf599, 0xe8bc, 0xdf1b, 0xdfc2, 0xe34f, 0xe476,
+ 0xe4bc, 0xe4f5, 0xebce, 0xf8b4, 0xfe71, 0xfd90,
+ 0xfb27, 0xf36e, 0xef4b, 0xf20b, 0xe8fc, 0xd62c,
+ 0xd697, 0xf11a, 0x03a1, 0xf55c, 0xe84c, 0xfb50,
+ 0x0cc0, 0x06bd, 0x0435, 0x0bf8, 0x0d9a, 0x08f0,
+ 0x068b, 0x07f2, 0x06d8, 0x0372, 0x0507, 0x0705,
+ 0x01bd, 0xf406, 0xe21c, 0xdaaa, 0xdf92, 0xe65e,
+ 0xf69c, 0x0e62, 0x17dc, 0x134d, 0x1335, 0x200a,
+ 0x2ac7, 0x1e57, 0x0a2f, 0x034e, 0xfdd7, 0xf886,
+ 0xfa5a, 0xfa87, 0xfbb9, 0xff19, 0xfea5, 0x02a6,
+ 0x08ac, 0x0c0f, 0x13ce, 0x1385, 0x0ae5, 0x0f47,
+ 0x1601, 0x1485, 0x1953, 0x1daa, 0x176c, 0x1074,
+ 0x08a5, 0xfe1b, 0xfe3b, 0x0c77, 0x170c, 0x143f,
+ 0x0f44, 0x0d32, 0x0bb3, 0x0f54, 0x106d, 0x04dc,
+ 0xf907, 0xf933, 0x01a7, 0x05ba, 0xff94, 0xfcfb,
+ 0xfdc1, 0xf594, 0xf61e, 0x0186, 0xfb45, 0xf042,
+ 0xfa0b, 0x05e1, 0x0468, 0x0215, 0x03b2, 0xff2a,
+ 0xf678, 0xfac9, 0x060a, 0x054b, 0x0384, 0x090d,
+ 0x09f6, 0x0904, 0x0715, 0xfca4, 0xf5b5, 0xfa27,
+ 0xfca7, 0xf6fa, 0xf2c2, 0xf4a3, 0xefb8, 0xe11b,
+ 0xdbc4, 0xe055, 0xe1ce, 0xe7b0, 0xf7c5, 0x05f0,
+ 0x065c, 0xfbb5, 0xf667, 0xf707, 0xf03f, 0xed89,
+ 0xfc65, 0x0e37, 0x1479, 0x1393, 0x1a77, 0x264a,
+ 0x1e80, 0x0b67, 0x0a3b, 0x0fdb, 0x0dd5, 0x1094,
+ 0x14b2, 0x10f1, 0x0ffc, 0x17a6, 0x1f92, 0x1ee0,
+ 0x14e0, 0x0cc8, 0x1143, 0x1ac4, 0x188e, 0x109e,
+ 0x153a, 0x1970, 0x0fae, 0x0eb2, 0x1973, 0x1acc,
+ 0x1d95, 0x25ea, 0x1a9e, 0x0388, 0xf93d, 0xf7b5,
+ 0xfba5, 0x00ae, 0xf61e, 0xe95b, 0xef2e, 0xf42c,
+ 0xebb1, 0xe4fc, 0xe4fd, 0xf00c, 0x07e4, 0x17ee,
+ 0x1b6f, 0x2150, 0x2499, 0x1e04, 0x1344, 0x0799,
+ 0x01ba, 0x05b9, 0x0b55, 0x0ebd, 0x1395, 0x182c,
+ 0x13e9, 0x08d7, 0x0950, 0x154b, 0x1a63, 0x1891,
+ 0x14a4, 0x10a1, 0x13ac, 0x1091, 0x00ef, 0xfcca,
+ 0xff58, 0xf451, 0xedcf, 0xf802, 0x01c7, 0x04c7,
+ 0x0830, 0x0cdd, 0x0f33, 0x13e6, 0x1aae, 0x15ce,
+ 0x0d78, 0x0ece, 0x09f2, 0x008a, 0xfc91, 0xee91,
+ 0xe116, 0xe2c9, 0xe1b9, 0xe386, 0xee91, 0xf1dc,
+ 0xf5da, 0xf80a, 0xe87c, 0xdfc5, 0xe87c, 0xf0ef,
+ 0xfaeb, 0x0314, 0x04f6, 0x097c, 0x0caa, 0x0baa,
+ 0x0379, 0xf056, 0xe969, 0xf249, 0xef8e, 0xe774,
+ 0xf031, 0x08a5, 0x1c4d, 0x1872, 0x157f, 0x273d,
+ 0x28e3, 0x1426, 0x0a8b, 0x0547, 0xf88d, 0xf10e,
+ 0xef7c, 0xee9e, 0xee63, 0xf2d7, 0x000a, 0x0d4d,
+ 0x1464, 0x16dd, 0x1409, 0x0f55, 0x078c, 0x0023,
+ 0x06ce, 0x1089, 0x10ee, 0x113b, 0x0c8f, 0x03f8,
+ 0x010f, 0xf7b7, 0xf337, 0x03de, 0x0c54, 0x0601,
+ 0x066f, 0x046d, 0xfc65, 0xf6de, 0xed72, 0xe695,
+ 0xec5e, 0xf9ae, 0x0c13, 0x1b20, 0x1d42, 0x1d9b,
+ 0x2611, 0x2b9c, 0x22aa, 0x144a, 0x0f9c, 0x120f,
+ 0x11bb, 0x0aef, 0x015e, 0xfdb5, 0xfb62, 0xf67d,
+ 0xfd27, 0x09bf, 0x0da0, 0x131c, 0x1661, 0x0ba1,
+ 0x0291, 0x00e9, 0xfea3, 0xff07, 0xfe6e, 0xfaac,
+ 0xfd84, 0x0687, 0x0da9, 0x0eb6, 0x0a3a, 0xfffb,
+ 0xf0e1, 0xf182, 0x08b0, 0x15ca, 0x124d, 0x128e,
+ 0x0e71, 0x04d2, 0x03fe, 0x03f0, 0x0071, 0xfe71,
+ 0xf893, 0xf15b, 0xede2, 0xea2d, 0xe34c, 0xd905,
+ 0xd31d, 0xd79f, 0xe2ab, 0xf48c, 0x00f4, 0xf844,
+ 0xf01e, 0xf96d, 0x0163, 0x018c, 0x0185, 0xffae,
+ 0xfbc7, 0xf6b8, 0xf125, 0xea7a, 0xde2a, 0xd266,
+ 0xd39c, 0xe449, 0xf9a0, 0x0025, 0xfdf1, 0x0af2,
+ 0x173a, 0x10f0, 0x100b, 0x14e8, 0x0a05, 0x0089,
+ 0x07b6, 0x0ada, 0xff90, 0xf6a0, 0xfc59, 0x0645,
+ 0x0a10, 0x0ba1, 0x04fc, 0xf5f5, 0xf70d, 0x063f,
+ 0x0cd6, 0x1449, 0x1db8, 0x1492, 0x0501, 0xfc14,
+ 0xee17, 0xe77e, 0xf4d2, 0x0061, 0x00df, 0x0089,
+ 0x00d8, 0x004d, 0xfbe2, 0xf6a7, 0xfe1d, 0x0c95,
+ 0x0e8b, 0x0617, 0x04bb, 0x1096, 0x1b62, 0x1848,
+ 0x10d4, 0x0fb9, 0x1251, 0x107a, 0x0335, 0xf8c7,
+ 0xfece, 0x01f0, 0xfdd5, 0x0054, 0xfe2c, 0xfc40,
+ 0x07ea, 0x0727, 0xf73c, 0xf415, 0xf7de, 0xf947,
+ 0xfa12, 0xf2a0, 0xedf9, 0xf6ee, 0xfeab, 0xfdb0,
+ 0xf879, 0xf867, 0x00fb, 0xffa3, 0xf38e, 0xf05c,
+ 0xf025, 0xee91, 0xf498, 0xf9e5, 0xfe73, 0x0e1b,
+ 0x1f5c, 0x23de, 0x1f42, 0x1db0, 0x1dbe, 0x12d4,
+ 0x04ca, 0xff18, 0xf81c, 0xf059, 0xeeeb, 0xf06c,
+ 0xf93f, 0x04fb, 0x06fd, 0x07da, 0x0bfa, 0x0ec1,
+ 0x16a8, 0x1c73, 0x1569, 0x0cbd, 0x0800, 0x0190,
+ 0xfa08, 0xf431, 0xf03d, 0xe875, 0xdb1b, 0xd320,
+ 0xd92f, 0xed60, 0xfeb0, 0xf6c0, 0xe991, 0xf4d5,
+ 0x048d, 0x054a, 0x0253, 0xfd39, 0xf682, 0xf88b,
+ 0xff3b, 0xfef7, 0xf863, 0xf767, 0x0055, 0x05e5,
+ 0x0273, 0xfef9, 0xfd92, 0xfd43, 0xfd4f, 0xfc2e,
+ 0x023c, 0x0ecb, 0x117a, 0x0cac, 0x0bce, 0x0723,
+ 0xfc0d, 0xf6f5, 0xfa12, 0x0015, 0x0653, 0x078b,
+ 0x0581, 0x0602, 0x020e, 0xfd43, 0x08ba, 0x1692,
+ 0x1359, 0x1232, 0x1b4f, 0x1a26, 0x10cd, 0x0d93,
+ 0x0cfc, 0x0b31, 0x09a7, 0x09be, 0x0e68, 0x115b,
+ 0x0845, 0xfc54, 0xfd52, 0x0304, 0x01ce, 0x038c,
+ 0x07ee, 0x0477, 0x03ec, 0x082c, 0x0561, 0x0317,
+ 0xff7d, 0xf688, 0xfdc2, 0x099a, 0xff98, 0xfb5d,
+ 0x0aff, 0x0f95, 0x04c1, 0xfa91, 0xf57b, 0xf4ef,
+ 0xf352, 0xf252, 0xf37a, 0xeeab, 0xedbe, 0xfa04,
+ 0x05c2, 0x0c5f, 0x0cc5, 0x00f2, 0xf518, 0xf1e1,
+ 0xf0d7, 0xf1ea, 0xf065, 0xe1f7, 0xcb6b, 0xbeb0,
+ 0xc883, 0xdcae, 0xe89e, 0xf3e8, 0x069f, 0x13b7,
+ 0x1133, 0x0313, 0xf5db, 0xf03c, 0xeecc, 0xf734,
+ 0x06f7, 0x0868, 0xfed9, 0xfb8d, 0xf431, 0xe35a,
+ 0xdb20, 0xe4c2, 0xfa77, 0x0ea6, 0x1328, 0x0dd8,
+ 0x1305, 0x215c, 0x1ec6, 0x09a2, 0x0553, 0x1a58,
+ 0x26e9, 0x214c, 0x1f58, 0x22a0, 0x1e2f, 0x158d,
+ 0x0cd6, 0xfdca, 0xf05d, 0xf5d0, 0x06cf, 0x0ce8,
+ 0x069f, 0x0363, 0x04bd, 0xfdc9, 0xeee6, 0xe470,
+ 0xdebc, 0xdb1b, 0xdde2, 0xe2db, 0xe5f0, 0xed16,
+ 0xf499, 0xf3af, 0xf15d, 0xf69c, 0xfac3, 0xf71d,
+ 0xfd70, 0x14ed, 0x2110, 0x172c, 0x0c70, 0x03ab,
+ 0xf9e3, 0xfb28, 0x0348, 0x060d, 0x0640, 0x0721,
+ 0x0754, 0x0333, 0xfa35, 0xf66b, 0xfae4, 0x0148,
+ 0x081c, 0x0a17, 0x0727, 0x0c02, 0x1473, 0x1059,
+ 0x05c6, 0x041c, 0x0559, 0xfd4c, 0xf9c9, 0x063f,
+ 0x0b58, 0x01cb, 0xfc91, 0xf1ba, 0xdf0d, 0xe3a3,
+ 0xf626, 0xf60a, 0xee09, 0xecef, 0xecb8, 0xee29,
+ 0xf075, 0xf021, 0xf1d9, 0xf6c0, 0xfc94, 0xff53,
+ 0xfb3d, 0xf9b7, 0xfa97, 0xeb5f, 0xd874, 0xe04e,
+ 0xf43f, 0xf7ef, 0xf6b2, 0xff5d, 0x06ca, 0x04de,
+ 0x009c, 0xfe20, 0xf697, 0xe9c8, 0xe848, 0xf486,
+ 0xfb9f, 0xfd0a, 0x00d4, 0xfdd8, 0xf71a, 0xf403,
+ 0xe6db, 0xd96c, 0xe889, 0x030e, 0x09a9, 0x07a2,
+ 0x0e26, 0x123c, 0x0a6b, 0x0819, 0x1948, 0x2365,
+ 0x11cf, 0x05b8, 0x10e8, 0x11b7, 0x040d, 0x04d5,
+ 0x0abf, 0x03c3, 0xff63, 0x01bb, 0xfe06, 0x0014,
+ 0x1296, 0x2055, 0x1c68, 0x1641, 0x15ef, 0x127a,
+ 0x0806, 0xfb11, 0xf0b5, 0xed8a, 0xf37e, 0xfd94,
+ 0x0191, 0x0030, 0x07aa, 0x13e2, 0x11b0, 0x0a23,
+ 0x0e04, 0x0f69, 0x05cc, 0x004e, 0x03ff, 0x0a8b,
+ 0x0da3, 0x08f8, 0x0435, 0x049a, 0x0520, 0x0ac2,
+ 0x14d0, 0x12e4, 0x0920, 0x0912, 0x0d8d, 0x0a22,
+ 0x01fa, 0xfee9, 0x0538, 0x0d24, 0x09e7, 0xfee0,
+ 0xfde0, 0x07e4, 0x0af9, 0x06f0, 0x0986, 0x0ab8,
+ 0x0126, 0xfc17, 0x00e5, 0x01c3, 0x0133, 0x085a,
+ 0x0d2e, 0x085d, 0x0049, 0xf603, 0xee4a, 0xf37c,
+ 0xfac9, 0xf787, 0xf553, 0xfa95, 0x00bd, 0x023b,
+ 0xf5be, 0xe483, 0xe2ab, 0xe484, 0xe379, 0xef7c,
+ 0xf7a8, 0xeb2a, 0xe373, 0xe906, 0xeb6a, 0xeca4,
+ 0xf1de, 0xf46a, 0xf04a, 0xebab, 0xee3f, 0xee87,
+ 0xe527, 0xe478, 0xf244, 0xfb1a, 0xfaf9, 0xfb21,
+ 0xf69b, 0xe46f, 0xd358, 0xddc4, 0xf7e3, 0xfe17,
+ 0xf3f5, 0xefc1, 0xf14a, 0xf8d7, 0x0611, 0x08e2,
+ 0xffa0, 0xfc39, 0x0300, 0x0786, 0x0485, 0xff92,
+ 0xf85d, 0xefd3, 0xf1f6, 0xfacc, 0xfa2a, 0xf5c8,
+ 0xf4fd, 0xf25f, 0xf5c2, 0x039d, 0x0cc6, 0x0b42,
+ 0x03a2, 0xf780, 0xec40, 0xe75e, 0xe992, 0xecf0,
+ 0xe8df, 0xe83f, 0xf566, 0xfd0f, 0xfc54, 0x0573,
+ 0x077b, 0xf539, 0xec5e, 0xf394, 0xf279, 0xea3c,
+ 0xe95b, 0xee99, 0xf439, 0xfaae, 0x006f, 0xfa08,
+ 0xe97b, 0xe528, 0xed0d, 0xf0cd, 0xf3ef, 0xf6cb,
+ 0xf2af, 0xf0ad, 0xf279, 0xef76, 0xec7b, 0xee64,
+ 0xef36, 0xeacc, 0xe911, 0xf42f, 0xff15, 0xf8cc,
+ 0xeeab, 0xef35, 0xf396, 0xf5e8, 0xfa13, 0x04f3,
+ 0x0da1, 0x0a80, 0x089f, 0x08de, 0xfe32, 0xf71a,
+ 0xf569, 0xea11, 0xeb4c, 0xfd25, 0xfff3, 0xfdff,
+ 0x058e, 0x00c2, 0xf39a, 0xf0d9, 0xf2f0, 0xf564,
+ 0xf855, 0xfa89, 0xff80, 0x041f, 0x0445, 0x01ac,
+ 0xf96b, 0xecc0, 0xe7cd, 0xf002, 0xf8f8, 0xf768,
+ 0xf6e1, 0xff9a, 0x0327, 0xff9a, 0xfde9, 0xf886,
+ 0xf39c, 0xf7b6, 0xf4e8, 0xe6fc, 0xe74d, 0xfb1c,
+ 0x05fc, 0xf745, 0xe468, 0xe957, 0xff9b, 0x0f38,
+ 0x15d8, 0x1d5e, 0x23eb, 0x26ac, 0x2760, 0x1ee9,
+ 0x0ed8, 0x0d4e, 0x1aa2, 0x1cfa, 0x1599, 0x16ee,
+ 0x18c0, 0x1115, 0x0c9b, 0x0eda, 0x0dde, 0x0f48,
+ 0x1872, 0x1b7e, 0x17ab, 0x189a, 0x136e, 0x00c0,
+ 0xf322, 0xf471, 0xfdfc, 0x07ae, 0x0cd6, 0x1098,
+ 0x0ca7, 0xfaa6, 0xf25b, 0xfd18, 0x0298, 0x037e,
+ 0x09bf, 0x0932, 0x08d0, 0x1560, 0x1e20, 0x1a95,
+ 0x151c, 0x0e0b, 0x04ee, 0x005f, 0xffa4, 0xfe86,
+ 0xfe5e, 0xfe1d, 0xfa17, 0xf552, 0xf105, 0xeb74,
+ 0xed0c, 0xf6ed, 0xfafe, 0xf8f8, 0xf812, 0xf3b5,
+ 0xeefa, 0xf3e6, 0xfbbd, 0xfae7, 0xfa66, 0x0836,
+ 0x169b, 0x1625, 0x1583, 0x1874, 0x1223, 0x0b16,
+ 0x02b0, 0xecb8, 0xdb67, 0xdaf6, 0xe0ce, 0xed9f,
+ 0xf7f1, 0xf0d1, 0xe5d6, 0xe3a1, 0xe8d7, 0xf4ea,
+ 0xffe1, 0x04af, 0x037f, 0xfbcc, 0xfaf4, 0x01da,
+ 0xfe87, 0xfd20, 0x0a03, 0x0b1f, 0xfc54, 0xf81c,
+ 0xfd55, 0xfd5c, 0xfe90, 0x0839, 0x12d5, 0x164f,
+ 0x126d, 0x0b87, 0x0803, 0x05e1, 0xf99b, 0xebe7,
+ 0xf591, 0x0c4d, 0x0ee2, 0x01b4, 0x00e0, 0x0d1e,
+ 0x1565, 0x186f, 0x1f18, 0x269e, 0x24d1, 0x19f2,
+ 0x0e20, 0x0686, 0x077c, 0x0ef9, 0x0f0e, 0x0436,
+ 0xfbbc, 0xf9a0, 0xfa51, 0x001d, 0x0658, 0x0562,
+ 0x01e3, 0x0257, 0x04e3, 0x01af, 0xf8d9, 0xfa84,
+ 0x0807, 0x0d69, 0x0a98, 0x0d16, 0x1043, 0x0b42,
+ 0x026c, 0x00f6, 0x05b0, 0x03bf, 0x0127, 0x069f,
+ 0x0769, 0x0735, 0x10aa, 0x1367, 0x0d0c, 0x0b9b,
+ 0x0a97, 0x09f8, 0x0da9, 0x0c1f, 0x0378, 0xf7fb,
+ 0xed70, 0xea2a, 0xec72, 0xf63e, 0x06ed, 0x0b67,
+ 0x055a, 0x08ac, 0x106c, 0x1370, 0x1233, 0x0c19,
+ 0x0782, 0x025d, 0xf590, 0xed22, 0xf078, 0xf7b7,
+ 0xfc3d, 0xf9cb, 0xf850, 0xfead, 0x01c9, 0x00d0,
+ 0x02e4, 0x0212, 0xfb7d, 0xf404, 0xf2db, 0xf5ae,
+ 0xeb85, 0xe06d, 0xef32, 0x02c6, 0x03d9, 0x0281,
+ 0x0583, 0x04f2, 0xffae, 0xfa97, 0x006d, 0x0adc,
+ 0x0ab5, 0x07de, 0x0573, 0xfa69, 0xecdb, 0xe4a6,
+ 0xe7b6, 0xf6d1, 0xfeb8, 0xfa48, 0xf99e, 0xfc1a,
+ 0xfac9, 0xf7ef, 0xf7cf, 0xff5b, 0x056a, 0xfc79,
+ 0xebc7, 0xdefa, 0xdcfe, 0xe944, 0xf8ca, 0x0398,
+ 0x0cb5, 0x138e, 0x1bae, 0x2594, 0x2796, 0x22c2,
+ 0x1b04, 0x12ad, 0x1872, 0x2840, 0x273e, 0x184d,
+ 0x10e6, 0x0cb4, 0x0500, 0x05cc, 0x0bf2, 0x059f,
+ 0xfa9c, 0xfb75, 0x00ee, 0x04f9, 0x098d, 0x07a9,
+ 0x0107, 0xfbfa, 0xf5cc, 0xf883, 0x0840, 0x0e91,
+ 0x0878, 0x0a89, 0x124f, 0x0dca, 0xfdd8, 0xf6bd,
+ 0x01c7, 0x0e8a, 0x1362, 0x1836, 0x1b6d, 0x1a6d,
+ 0x1b6f, 0x1c27, 0x19aa, 0x16d6, 0x1069, 0x061b,
+ 0xfef1, 0xfc75, 0xfb15, 0xf9a6, 0xfb33, 0xfd1b,
+ 0xf65e, 0xf1d6, 0x0244, 0x1584, 0x1175, 0x0541,
+ 0x0581, 0x0783, 0xfd54, 0xec36, 0xe3b3, 0xeaaa,
+ 0xf402, 0xf4cc, 0xf711, 0x017c, 0x0936, 0x050a,
+ 0xf9f5, 0xf5fa, 0xfb1c, 0xfae7, 0xf5ad, 0xf80c,
+ 0xfd4f, 0xfe04, 0xfbe1, 0xf658, 0xefcc, 0xe8b0,
+ 0xe3a5, 0xf0cb, 0x08a4, 0x1193, 0x1429, 0x1906,
+ 0x11c6, 0x088c, 0x0a77, 0x0a0c, 0x03c6, 0xff56,
+ 0xff05, 0x030c, 0x0385, 0xfdeb, 0xf91a, 0xf387,
+ 0xf075, 0xf575, 0xfc28, 0x0484, 0x09b0, 0xfe1b,
+ 0xefce, 0xede1, 0xe7ed, 0xda36, 0xda96, 0xef8c,
+ 0x059c, 0x0ce0, 0x10ad, 0x1c55, 0x2141, 0x171c,
+ 0x0af4, 0x08f6, 0x14ab, 0x2491, 0x29e2, 0x2382,
+ 0x17fb, 0x0df1, 0x0994, 0x072b, 0x0348, 0xfa00,
+ 0xed27, 0xefef, 0xff51, 0xff54, 0xf92c, 0x0311,
+ 0x0e5a, 0x0e32, 0x0893, 0x03e8, 0x0997, 0x10a9,
+ 0x0620, 0xfb03, 0x042a, 0x1182, 0x14a9, 0x1115,
+ 0x05fe, 0xf597, 0xe9f7, 0xe8f4, 0xf0cd, 0xf825,
+ 0xf953, 0xfb01, 0xfb99, 0xf218, 0xea51, 0xf13c,
+ 0xf937, 0xf900, 0xfbd0, 0x04a1, 0x0976, 0x052d,
+ 0xfda5, 0xfed6, 0x0d10, 0x1ed1, 0x25a1, 0x1d8e,
+ 0x17ba, 0x204a, 0x2420, 0x15a6, 0x0622, 0x015d,
+ 0xffd8, 0xfac0, 0xf38a, 0xf39a, 0xfcdf, 0x0131,
+ 0xfd81, 0xfe45, 0x0120, 0xf9b9, 0xed11, 0xe98a,
+ 0xefb1, 0xf645, 0xf92c, 0xf7aa, 0xf23a, 0xedb1,
+ 0xeb44, 0xe735, 0xe446, 0xe855, 0xf0ea, 0xf694,
+ 0xf82b, 0xfab7, 0xfdde, 0xfdc8, 0xfcbb, 0xfb54,
+ 0xf7b7, 0xf71d, 0xf9a4, 0xf688, 0xf039, 0xf136,
+ 0xf7ed, 0xfa9a, 0xf96e, 0xfce0, 0x0223, 0x003d,
+ 0xfc66, 0xfd8a, 0x0088, 0x0351, 0xfea6, 0xef0b,
+ 0xecad, 0x03ec, 0x165e, 0x157e, 0x197f, 0x270f,
+ 0x28ca, 0x1f21, 0x1ad9, 0x19e6, 0x1599, 0x1942,
+ 0x2744, 0x2c04, 0x2219, 0x176a, 0x0fb7, 0x089c,
+ 0x04b6, 0x020b, 0xfba3, 0xf23c, 0xefff, 0xffd8,
+ 0x16d3, 0x20f7, 0x2010, 0x1913, 0x07ec, 0xf65a,
+ 0xf1bf, 0xf89a, 0x0122, 0x01c9, 0x0189, 0x0ac4,
+ 0x0c10, 0xfd26, 0xf612, 0xfb01, 0xfb7e, 0xf8e5,
+ 0xf83c, 0xf794, 0xf7a0, 0xf610, 0xef85, 0xe8a7,
+ 0xebb1, 0xf66a, 0xf621, 0xec93, 0xef92, 0xfa41,
+ 0xfc26, 0xf84e, 0xf266, 0xecf3, 0xefee, 0xfc04,
+ 0x09e5, 0x0da7, 0x054a, 0xfcee, 0xf46d, 0xed74,
+ 0xf568, 0xff30, 0xfcde, 0xfbba, 0xf843, 0xed32,
+ 0xecef, 0xf564, 0xf816, 0xf79f, 0xf4fa, 0xf345,
+ 0xf63a, 0xf582, 0xf4b1, 0xfbe9, 0x00b2, 0xfebd,
+ 0xfeae, 0x0259, 0x0555, 0x030e, 0xfd42, 0xf991,
+ 0xf58e, 0xee36, 0xe96f, 0xee06, 0xf8e4, 0xfea3,
+ 0xfe0e, 0xfe54, 0xfc34, 0xf663, 0xf3a2, 0xf4bf,
+ 0xfb72, 0x0439, 0x0137, 0xf7ef, 0xf7f4, 0xfc5c,
+ 0xff2b, 0x0328, 0x0523, 0x0325, 0xfe5a, 0xf5ef,
+ 0xece4, 0xe4e5, 0xde93, 0xe47d, 0xf9fe, 0x0c23,
+ 0x0eeb, 0x0ea0, 0x1377, 0x15f2, 0x12e1, 0x1024,
+ 0x1385, 0x1aa3, 0x1b27, 0x13e4, 0x0d2c, 0x0798,
+ 0x01af, 0xfe8b, 0x0146, 0x0b1b, 0x1103, 0x0873,
+ 0xfde1, 0xfb91, 0xfd89, 0x0642, 0x10e4, 0x0c9f,
+ 0xfa4d, 0xec4b, 0xeba2, 0xeca8, 0xe79e, 0xe98b,
+ 0xf34f, 0xf7d3, 0xf9ba, 0xf861, 0xef14, 0xe8ea,
+ 0xe9b0, 0xef0c, 0xf8fd, 0xfcd4, 0xfdbf, 0x03c9,
+ 0x01e5, 0xfe83, 0x048b, 0x00b5, 0xf647, 0xf572,
+ 0xf103, 0xeaad, 0xf10d, 0xf759, 0xf06c, 0xe6fa,
+ 0xece3, 0xfabf, 0xf8dd, 0xf2c9, 0xf678, 0xf243,
+ 0xf1b1, 0x033b, 0x078d, 0xfab7, 0xf677, 0xf7e2,
+ 0xfa23, 0xfc40, 0xf810, 0xf734, 0xfad5, 0xfb0f,
+ 0xfffa, 0x0566, 0x012f, 0xfd20, 0xfb38, 0xf5e4,
+ 0xf29c, 0xf2c9, 0xf2a1, 0xf1f8, 0xf2d7, 0xf636,
+ 0xf842, 0xfa4e, 0xff8d, 0x0037, 0xfb8a, 0xf65c,
+ 0xedce, 0xec62, 0xfa14, 0x03a4, 0x029a, 0x05bb,
+ 0x0d0d, 0x10a7, 0x0f6d, 0x0a0a, 0x0344, 0xfd32,
+ 0xf933, 0xfa2a, 0xffae, 0x05ed, 0x070f, 0x0263,
+ 0x0148, 0x042e, 0x01f2, 0xfd66, 0xf86b, 0xee1f,
+ 0xee29, 0x06fe, 0x1c29, 0x13ce, 0x0b5f, 0x1bd3,
+ 0x2831, 0x2133, 0x207c, 0x27d9, 0x255c, 0x20f3,
+ 0x23f1, 0x259e, 0x2147, 0x1a96, 0x17d2, 0x1beb,
+ 0x219d, 0x2509, 0x21b7, 0x111f, 0x000b, 0x02a8,
+ 0x0f60, 0x10f0, 0x0ce9, 0x11c0, 0x1911, 0x1782,
+ 0x0e10, 0x01df, 0xfa92, 0xfbbc, 0xfafc, 0xf542,
+ 0xf50b, 0xf885, 0xf951, 0xfbb6, 0x0077, 0x06e4,
+ 0x10bc, 0x16de, 0x1474, 0x0e00, 0x0461, 0xfa06,
+ 0xf513, 0xf01e, 0xe45c, 0xdf3a, 0xebd5, 0xf607,
+ 0xf1dc, 0xfa36, 0x147b, 0x1e56, 0x12bd, 0x0843,
+ 0x0152, 0xfc99, 0xff51, 0x02a5, 0xfd94, 0xf34b,
+ 0xf01d, 0xf71a, 0xf8e8, 0xf3ae, 0xf7d1, 0x0103,
+ 0x00d2, 0xfbb1, 0xf965, 0xf98f, 0xfa18, 0xf8cb,
+ 0xf3ee, 0xec4c, 0xe97e, 0xecea, 0xe8c5, 0xe038,
+ 0xe7a6, 0xf9bb, 0x0206, 0xfd10, 0xf302, 0xec3a,
+ 0xe90e, 0xe9b3, 0xf4d0, 0xffa0, 0xfb32, 0xf355,
+ 0xf190, 0xf04e, 0xf1a8, 0xf637, 0xf724, 0xefb2,
+ 0xe322, 0xe0ba, 0xea32, 0xf023, 0xf5ff, 0x00d2,
+ 0x04a0, 0x0211, 0xff3e, 0xfb0a, 0xf8b6, 0xf617,
+ 0xf20c, 0xee49, 0xe033, 0xd31c, 0xe3f6, 0x0442,
+ 0x1343, 0x119b, 0x10fc, 0x1916, 0x1ba1, 0x0fc8,
+ 0x09d9, 0x0bfc, 0x06f7, 0x088a, 0x12de, 0x0ee8,
+ 0x018b, 0xf8ac, 0xf08a, 0xe9a6, 0xe5d7, 0xe63b,
+ 0xeba4, 0xe9c6, 0xde8a, 0xdb0e, 0xe360, 0xeeec,
+ 0xf787, 0xfaa8, 0xfc28, 0xfa64, 0xf0a7, 0xe85d,
+ 0xe7cb, 0xeaf7, 0xf1d0, 0xf5ae, 0xf19d, 0xf26f,
+ 0xfaef, 0xfeb6, 0xfc2d, 0xf857, 0xf6ff, 0xf6c1,
+ 0xee6f, 0xe6c5, 0xf101, 0xfb50, 0xeee2, 0xdbdc,
+ 0xd83b, 0xe0a1, 0xe742, 0xeade, 0xf695, 0x049f,
+ 0x0548, 0xff94, 0xf999, 0xefda, 0xeecc, 0xf464,
+ 0xefd4, 0xeb5f, 0xe912, 0xdd09, 0xdd5e, 0xf28d,
+ 0xfd3a, 0xf932, 0xf61f, 0xf222, 0xf142, 0xf8bf,
+ 0xfefa, 0xff4b, 0xfc18, 0xf596, 0xed08, 0xe58b,
+ 0xe1c0, 0xe0f5, 0xe56e, 0xf42a, 0x0473, 0x0b16,
+ 0x0b0b, 0x06ad, 0xfe34, 0xf5ff, 0xf056, 0xf1b3,
+ 0xfa9b, 0x025a, 0x0480, 0xfc3e, 0xed2d, 0xede7,
+ 0xfd6f, 0x0541, 0x099d, 0x1045, 0x0fbd, 0x0f43,
+ 0x133a, 0x11c5, 0x0e95, 0x0ba5, 0x0204, 0xfb28,
+ 0x0389, 0x1442, 0x1be3, 0x12ab, 0x0480, 0xf94b,
+ 0xea25, 0xe26d, 0xf319, 0x07dc, 0x0b9f, 0x10e8,
+ 0x22af, 0x2b71, 0x2634, 0x2748, 0x3080, 0x332f,
+ 0x3021, 0x2ef1, 0x2a4e, 0x1b73, 0x090a, 0xfe93,
+ 0xfbe7, 0xf70d, 0xee1e, 0xeb2c, 0xf445, 0x0392,
+ 0x0efb, 0x1070, 0x0c8c, 0x0bda, 0x081d, 0xf9a9,
+ 0xed4d, 0xe84e, 0xdf18, 0xd8c3, 0xddfa, 0xe139,
+ 0xe120, 0xe67e, 0xed21, 0xf448, 0xf8c2, 0xf6ba,
+ 0xffe1, 0x1257, 0x0ff3, 0x00bd, 0xfffc, 0x02a0,
+ 0xf9fb, 0xf1a2, 0xf033, 0xee5b, 0xee54, 0xf860,
+ 0x02b7, 0x0224, 0xfe68, 0xf759, 0xec1e, 0xf152,
+ 0x02b4, 0x032d, 0xf904, 0xf71e, 0xf8b9, 0xf999,
+ 0xf990, 0xfad4, 0x05e1, 0x11f5, 0x118e, 0x0d47,
+ 0x0949, 0x00bd, 0xfe79, 0x06a5, 0x0949, 0x02ff,
+ 0xfedc, 0xfc86, 0xf7cd, 0xf5fe, 0xf97d, 0xfe6e,
+ 0x0337, 0x06c3, 0x09ae, 0x0e8e, 0x1055, 0x07f9,
+ 0xfc09, 0xfadc, 0x04b6, 0x0a7f, 0x0a3a, 0x0f8f,
+ 0x13bb, 0x0b3b, 0x00b3, 0xfddd, 0xff50, 0x027c,
+ 0x06b7, 0x0e83, 0x17e2, 0x19a0, 0x1744, 0x1553,
+ 0x0d83, 0x0868, 0x0e59, 0x1054, 0x08ff, 0x0589,
+ 0x07c7, 0x031c, 0xf38a, 0xe6b5, 0xe29e, 0xe504,
+ 0xfb46, 0x1cb6, 0x2775, 0x2625, 0x3017, 0x33ef,
+ 0x2b67, 0x2007, 0x0e98, 0x00bf, 0xfc32, 0xf56d,
+ 0xf0b4, 0xf0e4, 0xeff8, 0xf446, 0xf997, 0xf85a,
+ 0xfcf9, 0x096d, 0x1477, 0x1ef3, 0x25ad, 0x22a8,
+ 0x1643, 0x04a5, 0xf938, 0xf79f, 0xf673, 0xf6bc,
+ 0xfddf, 0x055e, 0x0930, 0x0da1, 0x1015, 0x07a0,
+ 0xfa0b, 0xf6d0, 0xfb29, 0xfe57, 0x0657, 0x1207,
+ 0x143f, 0x0be8, 0x030b, 0xfd94, 0xf892, 0xfb53,
+ 0x0e1d, 0x1b7b, 0x109b, 0x029f, 0xfdfa, 0xf452,
+ 0xe9dd, 0xed0f, 0xf98a, 0x0600, 0x109b, 0x17a3,
+ 0x1562, 0x0bec, 0x0570, 0xffdf, 0xf875, 0xf955,
+ 0xff77, 0xfff2, 0xff37, 0x015e, 0x040f, 0x0545,
+ 0x017a, 0xf9f1, 0xf0c8, 0xea40, 0xf2dd, 0x04d9,
+ 0x0ae5, 0x05c0, 0x0262, 0x0427, 0x0667, 0x0134,
+ 0xf810, 0xf358, 0xf24e, 0xf8ca, 0x02ab, 0xfee4,
+ 0xf580, 0xf695, 0xf8dc, 0xf947, 0x012e, 0x0a27,
+ 0x0ad8, 0x07f1, 0x0930, 0x0ed9, 0x123c, 0x0d5f,
+ 0x0420, 0x0349, 0x0c24, 0x106f, 0x0fb5, 0x1138,
+ 0x0ddb, 0x0865, 0x075c, 0xffd7, 0xfb15, 0x0796,
+ 0x0c17, 0xfe95, 0xf7cf, 0xf8e6, 0x001d, 0x1aad,
+ 0x330f, 0x2f76, 0x243c, 0x210e, 0x1816, 0x0a6a,
+ 0x0469, 0x0298, 0x0050, 0xff9d, 0xfe89, 0xfcc9,
+ 0xfd7e, 0xfe97, 0xff16, 0x01f5, 0x02d1, 0xfcd2,
+ 0xf739, 0xf53e, 0xf04f, 0xed12, 0xf116, 0xf181,
+ 0xeca7, 0xee86, 0xf7c1, 0x03d6, 0x0d9a, 0x0c58,
+ 0x0363, 0xf8b0, 0xedd8, 0xef44, 0xfbff, 0x010d,
+ 0x015e, 0x08f7, 0x1610, 0x2518, 0x292c, 0x1845,
+ 0x03b8, 0xfc94, 0x005f, 0x0671, 0x0780, 0x05d9,
+ 0x030b, 0xf73a, 0xe9bc, 0xeb51, 0xf7c1, 0x0246,
+ 0x09da, 0x115c, 0x1800, 0x1d99, 0x2170, 0x1e42,
+ 0x1587, 0x0e82, 0x06af, 0xfe93, 0xfce2, 0xff2e,
+ 0x0755, 0x1489, 0x1630, 0x0a39, 0xfa9d, 0xef76,
+ 0xf77c, 0x067a, 0x0365, 0x002f, 0x0861, 0x04c3,
+ 0xf5ac, 0xea8b, 0xe6c4, 0xeb67, 0xef74, 0xeeaa,
+ 0xf41a, 0x008a, 0x0d98, 0x1635, 0x1545, 0x0ca0,
+ 0xfd11, 0xeceb, 0xea7b, 0xf2fb, 0xfe32, 0x05d7,
+ 0xfc84, 0xebe3, 0xe733, 0xead6, 0xf661, 0x046e,
+ 0x0546, 0x02eb, 0x0616, 0x05ba, 0x0027, 0xef07,
+ 0xdca3, 0xe40f, 0xf375, 0xf4ea, 0xfa82, 0x0114,
+ 0xfb53, 0xf6fc, 0xf6b7, 0xf92b, 0x062d, 0x0cab,
+ 0x0152, 0x00fc, 0x1510, 0x19e2, 0x0641, 0xfc58,
+ 0x00c4, 0xfc61, 0xf82e, 0x0091, 0x0612, 0x054b,
+ 0x058a, 0x0146, 0xf99f, 0xf6e8, 0xf7c8, 0xf866,
+ 0xf940, 0xfd4c, 0x0474, 0x06ef, 0x0279, 0x0346,
+ 0x0cf0, 0x1005, 0x09cb, 0x0801, 0x068f, 0xfd0f,
+ 0xf5f2, 0xf480, 0xf507, 0xfbac, 0x0114, 0xfd43,
+ 0xf9f1, 0xfccd, 0x01f9, 0x02e1, 0xfaba, 0xf422,
+ 0xf6fe, 0xf92c, 0xf79e, 0xf604, 0xf23c, 0xf130,
+ 0xf9ef, 0x05c8, 0x09da, 0x0a0f, 0x1203, 0x1b4a,
+ 0x1888, 0x0f7c, 0x0c08, 0x0fb9, 0x0df6, 0xfac7,
+ 0xea50, 0xf07a, 0xf99e, 0xfa30, 0xfb66, 0xf86b,
+ 0xf363, 0xf6a0, 0xfa61, 0xf9ed, 0xfcdd, 0x056e,
+ 0x0ce0, 0x0a0b, 0x01db, 0x0064, 0x041a, 0x0856,
+ 0x097f, 0x06a9, 0x097b, 0x0ed4, 0x0d8f, 0x1166,
+ 0x1bb6, 0x1cd4, 0x1467, 0x0973, 0x020b, 0x017c,
+ 0x016f, 0x0185, 0x0295, 0x0005, 0x001f, 0x0361,
+ 0x04be, 0x0bd0, 0x1205, 0x11f0, 0x1e4a, 0x2dc6,
+ 0x297e, 0x1efa, 0x1473, 0x04c4, 0x0319, 0x0d7c,
+ 0x0a83, 0x05e3, 0x12d9, 0x1d07, 0x124f, 0xffcd,
+ 0xf179, 0xe7e6, 0xe969, 0xf853, 0x056d, 0x02ed,
+ 0xf914, 0xf5d5, 0xf194, 0xe5f9, 0xe69f, 0xf1e8,
+ 0xeaf7, 0xdfba, 0xee88, 0x01ae, 0x017b, 0xfd82,
+ 0xff6a, 0x0154, 0x02ed, 0x035f, 0xff6e, 0xf98f,
+ 0xf8c1, 0xfe57, 0x0315, 0x044a, 0x048f, 0x0215,
+ 0xfac7, 0xef94, 0xe553, 0xe2d0, 0xe472, 0xe2a3,
+ 0xddf3, 0xd789, 0xd569, 0xdf25, 0xe9d5, 0xed02,
+ 0xf542, 0x04f5, 0x0e7e, 0x0ed8, 0x0ba0, 0x05b9,
+ 0xfc49, 0xf4e8, 0xf72b, 0xfe9a, 0x02a4, 0x0435,
+ 0x02ae, 0xff01, 0x0440, 0x0e66, 0x0c0f, 0x020a,
+ 0xfcbb, 0xf64e, 0xef6e, 0xf232, 0xf41d, 0xe955,
+ 0xe297, 0xed74, 0xfc13, 0x03e6, 0x0a6b, 0x1209,
+ 0x174a, 0x164a, 0x1068, 0x0f2d, 0x118e, 0x0c86,
+ 0x06e2, 0x0c46, 0x133b, 0x0e04, 0xfe6d, 0xf513,
+ 0xfcd9, 0x06d2, 0x077e, 0x07f9, 0x04e0, 0xfb16,
+ 0xfa18, 0xfc6b, 0xf2a4, 0xe797, 0xe3d3, 0xe50c,
+ 0xec49, 0xf19c, 0xf39d, 0xfb6a, 0x0079, 0xfd51,
+ 0xfd93, 0x027a, 0x0a8d, 0x1596, 0x14ef, 0x05a1,
+ 0xf924, 0xf4c6, 0xf3b6, 0xf8a1, 0x04b0, 0x0ef1,
+ 0x0e24, 0x0519, 0xfae7, 0xf0b7, 0xeab8, 0xeaef,
+ 0xe626, 0xd630, 0xc83d, 0xcf50, 0xe863, 0xf6bd,
+ 0xf5ca, 0xffb2, 0x0f5f, 0x1105, 0x0fb3, 0x0e28,
+ 0x06dc, 0x0bd1, 0x1a49, 0x1a96, 0x10b1, 0x067e,
+ 0x009c, 0x0987, 0x1525, 0x1123, 0x05d0, 0xfc88,
+ 0xf96b, 0x00f4, 0x071e, 0x01ad, 0xf7fd, 0xef75,
+ 0xe826, 0xe2ce, 0xe358, 0xee6d, 0xfcd9, 0x0510,
+ 0x06b3, 0x02c6, 0x0064, 0x0383, 0x0358, 0x0243,
+ 0x05b1, 0x0542, 0x0053, 0xf794, 0xea19, 0xe8fb,
+ 0xf60b, 0xfa0e, 0xf3e9, 0xf008, 0xec73, 0xe993,
+ 0xef8c, 0xfc26, 0xfe8e, 0xf28c, 0xead6, 0xe86d,
+ 0xde15, 0xd991, 0xe6c2, 0xf6a3, 0xfda2, 0xfb41,
+ 0xf624, 0xf60a, 0xf6f3, 0xfa6f, 0x05ee, 0x0d72,
+ 0x0b15, 0x0862, 0x085d, 0x0a22, 0x0a7c, 0x05b9,
+ 0x01e1, 0x01e4, 0x01b9, 0x0279, 0x03cd, 0x00a9,
+ 0xf9a4, 0xf7de, 0xfd94, 0xfc4b, 0xf2e6, 0xf525,
+ 0x0250, 0x0907, 0x0513, 0xfb97, 0xf901, 0x0292,
+ 0x08fc, 0x06c2, 0x0538, 0x046a, 0x010c, 0xfbd7,
+ 0xfa0e, 0xfd15, 0xf76a, 0xea1b, 0xe692, 0xe791,
+ 0xe712, 0xed69, 0xf3ee, 0xf77f, 0xfd14, 0xfaa8,
+ 0xf3a8, 0xf373, 0xedff, 0xe47d, 0xe7e0, 0xeee5,
+ 0xecd9, 0xe7af, 0xe69f, 0xf1c5, 0x0635, 0x0f10,
+ 0x09ec, 0x08aa, 0x0da0, 0x1292, 0x183f, 0x1c14,
+ 0x1d11, 0x1f7f, 0x200b, 0x19f1, 0x10b7, 0x0a81,
+ 0x0c5c, 0x13db, 0x180f, 0x1770, 0x1563, 0x113f,
+ 0x0945, 0x025d, 0x0988, 0x1a96, 0x1c7a, 0x11c4,
+ 0x123e, 0x1a28, 0x1d92, 0x1be0, 0x1282, 0x0ade,
+ 0x0ec3, 0x1244, 0x0fa6, 0x0d55, 0x0aad, 0x0667,
+ 0xff64, 0xf578, 0xef6e, 0xf290, 0xff1a, 0x0ae6,
+ 0x0a55, 0x0870, 0x0d84, 0x0d84, 0x098e, 0x0702,
+ 0x025e, 0x049d, 0x0d45, 0x0e2a, 0x0cdd, 0x0ce0,
+ 0x0609, 0xfff2, 0xff34, 0xfcc4, 0xfb89, 0xfc7e,
+ 0xf99c, 0xf5f5, 0xf72e, 0xf9dd, 0xf75b, 0xf454,
+ 0xfc0a, 0x07ef, 0x0905, 0x029b, 0xff5a, 0x0019,
+ 0x00b5, 0xff5a, 0xfbc0, 0xf35d, 0xebf4, 0xf141,
+ 0xf906, 0xf5f3, 0xf73a, 0x025a, 0x04c4, 0xfe0d,
+ 0xfac0, 0xfb35, 0xf9df, 0xefbd, 0xe08d, 0xdd4a,
+ 0xe514, 0xe71b, 0xe22d, 0xdee8, 0xdf51, 0xe256,
+ 0xe50f, 0xe55b, 0xe846, 0xefca, 0xf0ee, 0xe766,
+ 0xdf0e, 0xdc71, 0xdff2, 0xee8e, 0xf62b, 0xe7f8,
+ 0xe34b, 0xf678, 0xfff5, 0xf765, 0xf216, 0xf41d,
+ 0xf63b, 0xef26, 0xde00, 0xd4d7, 0xdead, 0xf3ae,
+ 0x01dc, 0xfc4a, 0xf5ff, 0x003c, 0x0646, 0x0293,
+ 0x055f, 0x0760, 0x0633, 0x0c8c, 0x0e80, 0x0295,
+ 0xf88f, 0xfe83, 0x0cbb, 0x0f68, 0x0901, 0x0af9,
+ 0x0b63, 0x0035, 0xfb87, 0x020b, 0x064b, 0x04fc,
+ 0xffea, 0xfa19, 0xf43b, 0xe891, 0xdbd9, 0xd809,
+ 0xd994, 0xdc1e, 0xe095, 0xe1f9, 0xdd4d, 0xd96d,
+ 0xddd3, 0xece8, 0xfd68, 0xfd60, 0xf1cd, 0xf42c,
+ 0x01fa, 0x055d, 0x0034, 0xfdcd, 0xfc9a, 0xf705,
+ 0xf0a9, 0xf726, 0x03f4, 0x0325, 0xffd5, 0x00da,
+ 0xf639, 0xed94, 0xef3d, 0xe762, 0xe3b0, 0xf0ab,
+ 0xf9b4, 0x0174, 0x0d38, 0x1158, 0x1610, 0x1c59,
+ 0x17c6, 0x0f02, 0x09d9, 0x0ca6, 0x15eb, 0x1530,
+ 0x0e7b, 0x10c9, 0x14c2, 0x1820, 0x2175, 0x2e8e,
+ 0x371f, 0x2d48, 0x19a0, 0x1299, 0x0c6d, 0xfe44,
+ 0xf9fc, 0xfb69, 0xf54b, 0xec1f, 0xe657, 0xeaff,
+ 0xf5a0, 0xf66b, 0xef5d, 0xeadc, 0xe84e, 0xe1c3,
+ 0xda07, 0xe1e6, 0xf55f, 0xf964, 0xf1e7, 0xf4c0,
+ 0xff03, 0x03ae, 0xfe37, 0xf990, 0x00ea, 0x08fa,
+ 0x0b5e, 0x0d1f, 0x07dc, 0xfc4d, 0xf042, 0xe324,
+ 0xdd6f, 0xde6a, 0xdd8f, 0xe133, 0xe5ab, 0xe606,
+ 0xeebc, 0xfbc6, 0x014f, 0x033c, 0x06ea, 0x129e,
+ 0x20ed, 0x213a, 0x1806, 0x11ac, 0x1254, 0x1836,
+ 0x12b9, 0x04dc, 0x0801, 0x1425, 0x144d, 0x0a14,
+ 0xfd6a, 0xf8fa, 0xfab8, 0xfa36, 0x036b, 0x0f28,
+ 0x072b, 0xfa93, 0xf851, 0xf956, 0xfe5f, 0x034a,
+ 0x0508, 0x097c, 0x0b3e, 0x0d19, 0x1425, 0x11a3,
+ 0x0a04, 0x0d7c, 0x0ef9, 0x054b, 0xfce0, 0xf98c,
+ 0xf683, 0xf322, 0xf09c, 0xeeea, 0xf17f, 0xfbcd,
+ 0x03f2, 0x02e3, 0x010c, 0xfef1, 0xfb4f, 0xfcbf,
+ 0xfc80, 0xf5ce, 0xf250, 0xf318, 0xf3ec, 0xf0ad,
+ 0xeb79, 0xf68f, 0x0c5a, 0x124c, 0x11f0, 0x1663,
+ 0x0d87, 0xfdd3, 0xfa6e, 0xfca2, 0x0103, 0x096c,
+ 0x0b7d, 0x06a6, 0x05a0, 0x09d8, 0x0bf8, 0x0648,
+ 0xfcfd, 0xf687, 0xf054, 0xed0b, 0xf44a, 0xfb97,
+ 0xf724, 0xf051, 0xed9e, 0xed1b, 0xf5f0, 0x0481,
+ 0x0756, 0x01b3, 0x036a, 0x0a56, 0x091d, 0xfcce,
+ 0xf5ad, 0x00f6, 0x1149, 0x170f, 0x135a, 0x0b08,
+ 0x0684, 0x0774, 0x0436, 0x018f, 0x04f2, 0x0229,
+ 0xfafb, 0xfbbc, 0xffd1, 0x0175, 0x025f, 0x0145,
+ 0xfd2f, 0xfb1f, 0x023f, 0x0ab3, 0x04d4, 0xfa23,
+ 0xfae5, 0x01b2, 0x0ac9, 0x171b, 0x1d72, 0x1a7d,
+ 0x17e6, 0x1e50, 0x252a, 0x1db6, 0x14e6, 0x1959,
+ 0x1bfc, 0x1b15, 0x1f1f, 0x197e, 0x0d01, 0x0bcf,
+ 0x0c20, 0x0624, 0x029a, 0xff7f, 0xf854, 0xf135,
+ 0xf27d, 0xfd73, 0x04d0, 0x081e, 0x12ab, 0x19a7,
+ 0x135c, 0x0cf8, 0x0fa8, 0x165e, 0x13d5, 0x05b6,
+ 0xfe70, 0x00a9, 0x00e2, 0x0585, 0x0e4c, 0x1210,
+ 0x1788, 0x1d55, 0x1b90, 0x188e, 0x13b1, 0x0b09,
+ 0x087e, 0x0a21, 0x0a93, 0x10e1, 0x1b06, 0x1cad,
+ 0x127a, 0x056d, 0x027f, 0x0939, 0x0a2c, 0x01b6,
+ 0xff2a, 0x05a0, 0x0433, 0xfaef, 0xf957, 0xfae3,
+ 0xfb5a, 0x042b, 0x0bbc, 0x094a, 0x06ca, 0x010c,
+ 0xf95e, 0xfa65, 0xf38c, 0xe119, 0xdb1d, 0xdb3f,
+ 0xd801, 0xe225, 0xf3b5, 0xfd16, 0x01c3, 0x007a,
+ 0xfe0b, 0x02fd, 0x01be, 0xf87a, 0xf5fb, 0xf36d,
+ 0xebee, 0xebf4, 0xf3f2, 0xfd55, 0x0392, 0x00e6,
+ 0xfd33, 0x0204, 0x054d, 0x00ef, 0x0033, 0x0569,
+ 0x04af, 0xfeac, 0xfef1, 0xfeba, 0xf4da, 0xf421,
+ 0x0568, 0x0f75, 0x0b64, 0x0ddd, 0x15af, 0x1411,
+ 0x0fb9, 0x102b, 0x0a3f, 0xfbb2, 0xf1e5, 0xef34,
+ 0xef30, 0xf2fd, 0xf49b, 0xf07d, 0xf0f7, 0xf8fb,
+ 0x04b7, 0x1370, 0x1b10, 0x1643, 0x126c, 0x167c,
+ 0x1b5d, 0x1aae, 0x15a3, 0x160b, 0x1cc8, 0x1ba7,
+ 0x107b, 0x0915, 0x0c5e, 0x1304, 0x1231, 0x0bed,
+ 0x08ff, 0x0698, 0x038b, 0x084f, 0x1130, 0x1046,
+ 0x0504, 0xfd23, 0x002c, 0x0618, 0x066a, 0x0005,
+ 0xf58d, 0xf0e1, 0xf57f, 0xf9d2, 0xfd35, 0x0148,
+ 0x010e, 0x03c7, 0x0b61, 0x09b5, 0x0127, 0xfca0,
+ 0xf9fb, 0xf848, 0xf916, 0xfbc7, 0xfbbc, 0xeef5,
+ 0xdf05, 0xe0df, 0xec9f, 0xf3ba, 0xfb1c, 0x0450,
+ 0x0c79, 0x1374, 0x15d7, 0x15b0, 0x1550, 0x0ff5,
+ 0x0a22, 0x0a07, 0x0595, 0xf7a3, 0xf18c, 0xfd98,
+ 0x0882, 0x04e4, 0x0041, 0x0002, 0xfee5, 0x01f9,
+ 0x05d2, 0x0348, 0x0167, 0xfe23, 0xf5d9, 0xf477,
+ 0xf635, 0xf048, 0xee6e, 0xf487, 0xf659, 0xf5af,
+ 0xf7d0, 0xf86b, 0xf97d, 0xfdd3, 0xfb34, 0xed24,
+ 0xe262, 0xe4a5, 0xec33, 0xf174, 0xf19b, 0xeeb0,
+ 0xf19a, 0xf934, 0xfdd9, 0x0315, 0x0732, 0x02d0,
+ 0xfd29, 0xfaa8, 0xf54e, 0xef68, 0xec56, 0xeaa0,
+ 0xeaf7, 0xeafe, 0xea35, 0xed5c, 0xf290, 0xf676,
+ 0xfa65, 0xfc6a, 0xfa4e, 0xf4ad, 0xed80, 0xec80,
+ 0xf484, 0xf891, 0xf2d9, 0xf48c, 0x057f, 0x1086,
+ 0x0d49, 0x12ba, 0x23a0, 0x23ee, 0x0fd7, 0xffc1,
+ 0xfc74, 0xfe04, 0x01c7, 0x077f, 0x0a74, 0x08b5,
+ 0x0652, 0x06a1, 0x0a88, 0x105a, 0x122b, 0x0fd0,
+ 0x10b2, 0x126e, 0x0d06, 0x054f, 0x0246, 0xff25,
+ 0xf9db, 0xfca5, 0x0aef, 0x1779, 0x1b88, 0x1e86,
+ 0x1ff1, 0x1ba9, 0x17ff, 0x1532, 0x0ec4, 0x0e4b,
+ 0x18e5, 0x1f1e, 0x17a6, 0x0f06, 0x0e93, 0x0cc0,
+ 0x04c8, 0x003d, 0xff98, 0xfed7, 0x01e4, 0x010b,
+ 0xf62f, 0xf2af, 0xfa5d, 0xfd5c, 0xfe3b, 0x0023,
+ 0xf64f, 0xe4e7, 0xdcbe, 0xdf55, 0xe58b, 0xe9cc,
+ 0xead1, 0xed5a, 0xf237, 0xf4fe, 0xf5e2, 0xf85a,
+ 0xfcf6, 0x00bd, 0x016a, 0xfebe, 0xf68d, 0xeb45,
+ 0xe6d3, 0xea0e, 0xecb1, 0xee70, 0xf43d, 0xfe7c,
+ 0x066f, 0x02b9, 0xf7d0, 0xf2de, 0xf236, 0xf07d,
+ 0xf437, 0xfe8d, 0x07e6, 0x0d6b, 0x0e7b, 0x0bba,
+ 0x0acb, 0x1034, 0x19be, 0x1ed9, 0x19d7, 0x122b,
+ 0x1024, 0x0ed4, 0x0a05, 0x08fd, 0x0f70, 0x166c,
+ 0x19d0, 0x1aec, 0x1821, 0x12cd, 0x0ff4, 0x0c6a,
+ 0x077c, 0x0911, 0x0bd8, 0x05e4, 0xff9d, 0xffb0,
+ 0x002c, 0xff3d, 0xfb64, 0xf27c, 0xea5b, 0xe587,
+ 0xe25d, 0xe523, 0xeee3, 0xfb58, 0x067f, 0x0898,
+ 0x01d9, 0x01e3, 0x0cb9, 0x1194, 0x08fd, 0xff42,
+ 0xfe16, 0x0230, 0x048f, 0x0243, 0xff50, 0xfef0,
+ 0xfafc, 0xf398, 0xf4c6, 0xfb3e, 0xf973, 0xf5c1,
+ 0xf8c9, 0xf8d8, 0xf16f, 0xe884, 0xdd9c, 0xd77f,
+ 0xe952, 0x0c14, 0x1bed, 0x1153, 0x05a5, 0xfeb6,
+ 0xf667, 0xf446, 0xf1a0, 0xe280, 0xd693, 0xd689,
+ 0xd558, 0xd7d3, 0xeadc, 0x03bd, 0x0d8d, 0x01c1,
+ 0xf09c, 0xec66, 0xefc1, 0xf069, 0xf0f9, 0xf367,
+ 0xf9ca, 0x0421, 0x08d2, 0x0901, 0x0e62, 0x12fc,
+ 0x1046, 0x0ae4, 0x0556, 0x03b0, 0x07f6, 0x0761,
+ 0xfc48, 0xf250, 0xf5e3, 0xff26, 0xf9f0, 0xf103,
+ 0x0333, 0x200a, 0x2296, 0x1750, 0x1422, 0x0f67,
+ 0x070c, 0x03e7, 0x0107, 0xfc40, 0xfcec, 0x0185,
+ 0x031d, 0x048f, 0x07b9, 0x0241, 0xf863, 0xfb5a,
+ 0xfeea, 0xf63f, 0xf6bb, 0xfe86, 0xf5b3, 0xec2a,
+ 0xf486, 0x0069, 0x0796, 0x0a0e, 0x07b3, 0x080a,
+ 0x073b, 0x00a0, 0x0059, 0x070c, 0x0a71, 0x09d5,
+ 0x087b, 0x0e1e, 0x188a, 0x15bb, 0x0b4c, 0x0cf5,
+ 0x1324, 0x1255, 0x0e31, 0x0983, 0x0871, 0x0b08,
+ 0x08f1, 0x0369, 0x009d, 0x0063, 0x0163, 0xfe60,
+ 0xf5de, 0xf371, 0xfc65, 0x07bc, 0x0ee0, 0x140b,
+ 0x1a4a, 0x1c4e, 0x1546, 0x0dbb, 0x0b21, 0x086d,
+ 0x06a3, 0x04f2, 0xfd36, 0xf7b3, 0xfc07, 0xfe78,
+ 0xf8a4, 0xf322, 0xf258, 0xf3cb, 0xf492, 0xf1f1,
+ 0xebbc, 0xe7a6, 0xea1f, 0xe8c3, 0xd9a2, 0xcc3e,
+ 0xcfdf, 0xda82, 0xe34e, 0xeb05, 0xee95, 0xf0f9,
+ 0xf57d, 0xf474, 0xefe1, 0xf2f6, 0xf8ad, 0xf4c0,
+ 0xec28, 0xed57, 0xf542, 0xf4a1, 0xf027, 0xf5f5,
+ 0xfd65, 0xfa2d, 0xf27e, 0xec3d, 0xe87e, 0xec55,
+ 0xf380, 0xf386, 0xf3ad, 0xfcc5, 0x002e, 0xf7be,
+ 0xf3ca, 0xf31e, 0xecd4, 0xec79, 0xf16a, 0xf00a,
+ 0xf346, 0x00c5, 0x0950, 0x0605, 0xfce2, 0xf7d8,
+ 0xf8d6, 0xf93a, 0xfef8, 0x0a09, 0x09e4, 0x03dc,
+ 0x0117, 0xf7bc, 0xf1c8, 0xfc51, 0x08f4, 0x0d97,
+ 0x095c, 0x02d5, 0x0bf6, 0x1992, 0x13c3, 0x0a82,
+ 0x0e83, 0x10bf, 0x07c1, 0xff06, 0x044a, 0x0f59,
+ 0x0ce3, 0x066d, 0x0ad1, 0x0c38, 0x04ad, 0x003a,
+ 0x00e9, 0x04ae, 0x08c4, 0x0564, 0xfc91, 0xfa70,
+ 0x0232, 0x0576, 0xfad3, 0xf2ee, 0xf7ae, 0xf896,
+ 0xf29d, 0xf367, 0xf905, 0xfac5, 0xf7e8, 0xf3f5,
+ 0xf352, 0xf3f9, 0xf6e5, 0x059d, 0x155c, 0x1008,
+ 0x0022, 0xfa43, 0xf6c5, 0xefec, 0xf351, 0x014b,
+ 0x0abe, 0x0912, 0xff3c, 0xf4c3, 0xf11b, 0xf3d1,
+ 0xfa76, 0x0393, 0x0a20, 0x0dad, 0x1146, 0x10c6,
+ 0x0b20, 0x07c8, 0x06cf, 0x0179, 0xfa68, 0xfa07,
+ 0xff57, 0x0340, 0x0465, 0x0591, 0x080e, 0x0789,
+ 0xfd9a, 0xf1e8, 0xf11e, 0xf44c, 0xf2f2, 0xf5ed,
+ 0x0043, 0x06c4, 0x0537, 0x0581, 0x0be7, 0x0cda,
+ 0x092c, 0x0e54, 0x12e5, 0x0efa, 0x0ff5, 0x0faa,
+ 0x0653, 0x0609, 0x0d52, 0x0b94, 0x059c, 0x00c7,
+ 0xff1f, 0x0676, 0x0f31, 0x1024, 0x0a9e, 0x01e1,
+ 0xfb38, 0xf51d, 0xeacb, 0xe2be, 0xe19b, 0xe778,
+ 0xf3d4, 0xfd60, 0x0206, 0x0600, 0x02e1, 0xfe5b,
+ 0x0495, 0x0a49, 0x078b, 0x0720, 0x0b64, 0x0dda,
+ 0x0e44, 0x1159, 0x14b2, 0x0f56, 0x05b8, 0x01a0,
+ 0xff07, 0xfc65, 0xfe04, 0x005d, 0xfe05, 0xf4f9,
+ 0xedb9, 0xf245, 0xf657, 0xf1e4, 0xf0fb, 0xf022,
+ 0xec71, 0xf647, 0x07ed, 0x0e0e, 0x0a7a, 0x047d,
+ 0x023f, 0x05f9, 0x04b4, 0xfe07, 0xf977, 0xf350,
+ 0xf6b9, 0x0c9a, 0x152d, 0x0205, 0xf1b4, 0xee0d,
+ 0xef59, 0xfb4f, 0x0630, 0x035e, 0xfd25, 0xeec2,
+ 0xd965, 0xd9e1, 0xeac3, 0xf058, 0xf125, 0xf367,
+ 0xecc0, 0xe274, 0xdeae, 0xe011, 0xe125, 0xe1ae,
+ 0xe6af, 0xeb41, 0xe75b, 0xddde, 0xd384, 0xd2c1,
+ 0xde97, 0xe449, 0xe53d, 0xf07d, 0xf879, 0xf6b5,
+ 0xf5af, 0xf106, 0xe954, 0xe51b, 0xe503, 0xf06a,
+ 0xff18, 0xff80, 0xf99a, 0xf674, 0xf618, 0xfb03,
+ 0xfcf9, 0xfbc8, 0x0055, 0xfdee, 0xef23, 0xe895,
+ 0xf38b, 0x047f, 0x0ed7, 0x1262, 0x1455, 0x121b,
+ 0x0cf4, 0x08ab, 0x0270, 0xff3e, 0x0252, 0x04db,
+ 0x04a1, 0xfedf, 0xf9f6, 0x017a, 0x065f, 0x0265,
+ 0x06ff, 0x0d51, 0x0d39, 0x0e91, 0x0ac1, 0x0395,
+ 0x01b8, 0xff88, 0x0001, 0xffb9, 0xf8b6, 0xfcf7,
+ 0x068a, 0x0160, 0xfa23, 0xf42b, 0xefe6, 0xfb6a,
+ 0x01c7, 0xf7af, 0xf815, 0xfc6b, 0xf577, 0xf308,
+ 0xf84b, 0x003a, 0x0943, 0x0c9e, 0x104d, 0x11b0,
+ 0x0221, 0xf0fb, 0xf083, 0xf90d, 0x01fc, 0x0388,
+ 0xfc6f, 0xf958, 0xfc92, 0xfede, 0xfd84, 0xf8db,
+ 0xf6d2, 0xf819, 0xf63c, 0xf55a, 0xfaec, 0x0234,
+ 0x04f0, 0x0077, 0xfa77, 0xfaeb, 0x0145, 0x0819,
+ 0x0760, 0xfe91, 0xf849, 0xf420, 0xed89, 0xec94,
+ 0xf347, 0xfd28, 0x0679, 0x053c, 0xfd79, 0xfd73,
+ 0xfc1b, 0xf07e, 0xe935, 0xe9c1, 0xe40c, 0xdb42,
+ 0xdf60, 0xec88, 0xf5aa, 0xfbe1, 0xfc1a, 0xef14,
+ 0xe193, 0xe26d, 0xf17d, 0x0515, 0x0c14, 0x06df,
+ 0x0690, 0x0af2, 0x1054, 0x176b, 0x1a05, 0x1d75,
+ 0x1f3e, 0x10aa, 0x05d8, 0x0f18, 0x1436, 0x0d35,
+ 0x03c3, 0xfa05, 0xf978, 0x01f9, 0x0899, 0x0c78,
+ 0x0dce, 0x1078, 0x11b8, 0x0565, 0xfa7a, 0xfd6c,
+ 0xf995, 0xef19, 0xf388, 0x0589, 0x11be, 0x0ae4,
+ 0xff75, 0x0006, 0x00c1, 0x006b, 0x0613, 0x096b,
+ 0x1060, 0x16be, 0x0c5e, 0x0770, 0x0d77, 0x0601,
+ 0x0304, 0x10f2, 0x15f6, 0x0f4b, 0x07a2, 0x020c,
+ 0x013b, 0xff9b, 0x02c1, 0x0f06, 0x132f, 0x12c3,
+ 0x1ad3, 0x203b, 0x1d1c, 0x13ea, 0x0b69, 0x123b,
+ 0x1e06, 0x1c4e, 0x136d, 0x0a32, 0x05c5, 0x0987,
+ 0x09be, 0x0647, 0x075f, 0x0a0a, 0x11c1, 0x187a,
+ 0x0d6e, 0x00d4, 0x0643, 0x0c33, 0x0909, 0x0bba,
+ 0x12a6, 0x1071, 0x0b48, 0x0c85, 0x0bb0, 0x0421,
+ 0xfe47, 0xfc16, 0xfa04, 0xf872, 0xf645, 0xf05e,
+ 0xe98c, 0xed10, 0xff83, 0x119d, 0x1482, 0x0d49,
+ 0x05bf, 0xfe8f, 0xf8d9, 0xf9af, 0xfc1a, 0xf958,
+ 0xf9c0, 0xfb25, 0xf078, 0xe9f9, 0xf609, 0x0066,
+ 0x0398, 0x0cc6, 0x1428, 0x0e75, 0x0110, 0xf932,
+ 0xfed6, 0x0907, 0x0bb5, 0x0698, 0x00d2, 0x03da,
+ 0x0b8c, 0x0c6b, 0x0b17, 0x09b3, 0x02b5, 0xfe22,
+ 0x0101, 0x0304, 0xfec1, 0xfaa0, 0x03bb, 0x1153,
+ 0x111b, 0x118b, 0x1cb5, 0x2083, 0x1b5f, 0x1487,
+ 0x0d79, 0x0e3a, 0x0ebe, 0x05e4, 0x023b, 0x031b,
+ 0xfe46, 0x0042, 0x0cbf, 0x138b, 0x10c7, 0x0d20,
+ 0x08ae, 0xffc8, 0xfce9, 0x0513, 0x0695, 0xfebc,
+ 0x001f, 0x0a99, 0x0f00, 0x09f4, 0x065d, 0x09a1,
+ 0x05fd, 0xf95e, 0xf5ba, 0xf909, 0xf723, 0xf364,
+ 0xf106, 0xf2da, 0xfa24, 0xfe3d, 0xfc19, 0xf3f7,
+ 0xe8bd, 0xe9ba, 0xf391, 0xf201, 0xec20, 0xeef9,
+ 0xf2bd, 0xf488, 0xf4d5, 0xef2d, 0xebd9, 0xf097,
+ 0xf367, 0xf64d, 0x00cd, 0x08e9, 0x0d2a, 0x1789,
+ 0x2029, 0x2106, 0x2068, 0x1893, 0x09f6, 0x03b7,
+ 0x061e, 0x0a73, 0x0ed6, 0x0c9e, 0x0425, 0xff01,
+ 0xfeb1, 0xfb0f, 0xf0ec, 0xed67, 0xf6e9, 0x0029,
+ 0x08ef, 0x144a, 0x1136, 0x00b7, 0xf731, 0xf89c,
+ 0x0076, 0x061e, 0x01d3, 0xfca5, 0xfbb8, 0xfa63,
+ 0xf9ea, 0xf8fa, 0xfaa0, 0x080c, 0x17ed, 0x18b6,
+ 0x08c8, 0xf636, 0xeff2, 0xf217, 0xf3d3, 0xf928,
+ 0xfeb6, 0xffd2, 0x03c4, 0x057f, 0xfd69, 0xf640,
+ 0xf2ed, 0xeb9d, 0xe78c, 0xf0e4, 0xfea2, 0x0344,
+ 0x02c1, 0x05c3, 0x0646, 0xfed5, 0xf848, 0xf87e,
+ 0xf9f3, 0xfb5d, 0x0103, 0x0624, 0x070d, 0x0ac9,
+ 0x0c94, 0x03f1, 0xfdee, 0x0054, 0x0045, 0x0231,
+ 0x0b4e, 0x11cc, 0x1334, 0x1097, 0x0571, 0xf692,
+ 0xf0b1, 0xf855, 0x052c, 0x0d8b, 0x132c, 0x1ac3,
+ 0x1d3c, 0x11ec, 0x0518, 0x0722, 0x0a3b, 0x0118,
+ 0xfbe3, 0xfdae, 0xfc79, 0xff62, 0x03bf, 0x0381,
+ 0x09bf, 0x10af, 0x0cd4, 0x082d, 0x08c2, 0x0dff,
+ 0x124d, 0x0907, 0xfd39, 0xffeb, 0x077d, 0x0a9a,
+ 0x07ff, 0x01e3, 0x03c2, 0x07ac, 0xff31, 0xf5ba,
+ 0xf524, 0xf3ce, 0xef11, 0xee58, 0xf149, 0xeeec,
+ 0xeab3, 0xf103, 0xf94e, 0xf750, 0xf0da, 0xe701,
+ 0xd9f5, 0xd368, 0xd601, 0xe053, 0xe9c4, 0xe3fb,
+ 0xdae9, 0xe22f, 0xeecf, 0xf0c7, 0xeb55, 0xe988,
+ 0xf098, 0xf7c8, 0xf76a, 0xf645, 0xfa18, 0x00f7,
+ 0x0777, 0x0982, 0x057b, 0xfe27, 0xfa52, 0xfc99,
+ 0xfb6e, 0xf364, 0xef02, 0xf02c, 0xf143, 0xf458,
+ 0xfa9b, 0xff52, 0xfe34, 0xf6af, 0xf0e6, 0xf85a,
+ 0x0b5f, 0x1a19, 0x196a, 0x11dd, 0x1226, 0x15e8,
+ 0x118d, 0x0dd4, 0x14c4, 0x1a64, 0x16c0, 0x106b,
+ 0x074a, 0xfe80, 0x01c9, 0x0c4d, 0x12b3, 0x177e,
+ 0x19a3, 0x1494, 0x0fe3, 0x0fe4, 0x0f7a, 0x0ead,
+ 0x0aec, 0xfd31, 0xf15a, 0xf8f9, 0x0700, 0x0699,
+ 0x01a0, 0x0649, 0x09f3, 0x0363, 0xfd9c, 0xffd3,
+ 0x0188, 0x021b, 0x0a54, 0x11e6, 0x0e89, 0x0b97,
+ 0x0d9b, 0x09fd, 0x020b, 0xfc4d, 0xfb65, 0x046e,
+ 0x11dc, 0x15f0, 0x0f83, 0x04e9, 0xf8cb, 0xed35,
+ 0xe89e, 0xf2b9, 0x059e, 0x0ef7, 0x098a, 0x01db,
+ 0xfca1, 0xf22a, 0xe875, 0xee60, 0xfb8d, 0x0042,
+ 0x0038, 0xff9d, 0xfefd, 0x0447, 0x0a38, 0x06b0,
+ 0xfd0c, 0xf662, 0xf980, 0x0138, 0x006c, 0xfabd,
+ 0xf815, 0xf154, 0xe577, 0xdfaf, 0xe698, 0xf663,
+ 0x0448, 0x0b89, 0x0e32, 0x0a8b, 0x01b0, 0xf927,
+ 0xf4b3, 0xf6e3, 0xfabe, 0xfb03, 0xfc99, 0xffbc,
+ 0x012f, 0x03c6, 0x0528, 0x036b, 0x02c0, 0x0130,
+ 0xfe59, 0xff75, 0x0462, 0x0bdc, 0x10fa, 0x0a49,
+ 0xfed5, 0x009f, 0x1042, 0x1d69, 0x1925, 0x05ba,
+ 0xf933, 0xfdad, 0xfffa, 0xf7a8, 0xf4cf, 0xf9e0,
+ 0xfecb, 0x0427, 0x03a5, 0xfd60, 0x0117, 0x09ad,
+ 0x0724, 0xfe62, 0xf751, 0xf459, 0xf6c1, 0xfba4,
+ 0x0552, 0x0ed8, 0x0816, 0xf806, 0xf318, 0xfbd0,
+ 0x0b64, 0x1758, 0x16ff, 0x10c4, 0x0cbd, 0x087d,
+ 0x0156, 0xfd81, 0x02d3, 0x0907, 0x0a92, 0x0d42,
+ 0x0df5, 0x0a17, 0x053d, 0xfcc1, 0xf97f, 0x0228,
+ 0x06d6, 0x06d0, 0x0a88, 0x0a88, 0x0a7f, 0x0b48,
+ 0xfea2, 0xec92, 0xe641, 0xee8b, 0xff04, 0x031b,
+ 0xf4db, 0xe753, 0xdf89, 0xdce6, 0xe386, 0xe890,
+ 0xe789, 0xeb32, 0xf507, 0xfc73, 0xfa97, 0xf6fc,
+ 0xfb0f, 0xfb49, 0xf37d, 0xf088, 0xf044, 0xef65,
+ 0xf6f7, 0x042c, 0x07b9, 0xfa1b, 0xe8f5, 0xe4cb,
+ 0xe756, 0xec9e, 0xfb94, 0x0951, 0x0bb7, 0x0ac9,
+ 0x0bcd, 0x0d81, 0x0a93, 0x0291, 0xff29, 0xff91,
+ 0xff73, 0xffe8, 0xfba4, 0xfc7e, 0x0bab, 0x0f7b,
+ 0x03e4, 0x04ad, 0x0bde, 0x0d9c, 0x1799, 0x238b,
+ 0x207a, 0x15ba, 0x0cd3, 0x0523, 0x0240, 0x06aa,
+ 0x0952, 0x03be, 0xfefe, 0x00d6, 0x0086, 0xf953,
+ 0xf108, 0xee40, 0xf268, 0xf83c, 0xfa87, 0xf7e9,
+ 0xf2c9, 0xf47a, 0xfe1a, 0xffac, 0xf5b0, 0xf232,
+ 0xfa7b, 0x0254, 0x07b9, 0x0bd6, 0x036f, 0xf11e,
+ 0xea51, 0xf11a, 0xf718, 0xfb03, 0xff82, 0x003a,
+ 0xfd51, 0xfd85, 0x03b3, 0x0958, 0x07f7, 0x010a,
+ 0xf9ec, 0xf92d, 0xfe45, 0x0156, 0x0430, 0x09c4,
+ 0x0c9b, 0x0ddb, 0x0cc0, 0x0532, 0x004b, 0x0107,
+ 0x017f, 0x03bb, 0x00ce, 0xf42c, 0xee4b, 0xf56b,
+ 0x00fc, 0x09e6, 0x07c0, 0xff03, 0xfaa1, 0xf802,
+ 0xf766, 0xf87c, 0xf13f, 0xe71a, 0xe6ef, 0xeb85,
+ 0xe937, 0xdfe8, 0xdcc9, 0xe6b9, 0xf24f, 0xf87a,
+ 0xfb74, 0xfc4e, 0x013c, 0x084f, 0x02e6, 0xf237,
+ 0xe564, 0xe2af, 0xe5e5, 0xea1b, 0xf275, 0xfd52,
+ 0xfd15, 0xf3ce, 0xefa3, 0xef32, 0xf176, 0xfb17,
+ 0x0107, 0xfd53, 0xfeef, 0x06ef, 0x0747, 0x0553,
+ 0x07ed, 0x0182, 0xf3c9, 0xf1fb, 0xf91a, 0xff17,
+ 0x08b8, 0x1081, 0x0a6c, 0xffe7, 0xfdda, 0xfab2,
+ 0xefb2, 0xefa4, 0xffe2, 0x07c5, 0x023a, 0x005a,
+ 0x0355, 0x0676, 0x07a0, 0x0419, 0x04f3, 0x0c6c,
+ 0x1021, 0x139e, 0x18c8, 0x1712, 0x1150, 0x0bef,
+ 0x0824, 0x0710, 0x01d4, 0xff18, 0x0af8, 0x1282,
+ 0x06bd, 0xf91b, 0xf473, 0xf325, 0xf31c, 0xf7bd,
+ 0x0145, 0x04d7, 0xfde7, 0xfaa0, 0x006f, 0x0470,
+ 0x0127, 0xfbab, 0xfc36, 0x0190, 0x02ed, 0x03ef,
+ 0x0d28, 0x1832, 0x179f, 0x0a55, 0xffcc, 0xff25,
+ 0xfd56, 0xfc4a, 0x0312, 0x03dc, 0xfd49, 0xfefe,
+ 0x0275, 0x0016, 0x037e, 0x0bda, 0x1050, 0x147c,
+ 0x1827, 0x179f, 0x18ed, 0x1d00, 0x1b08, 0x1097,
+ 0x0326, 0xfadd, 0xfad7, 0xf9ac, 0xf55b, 0xf8f5,
+ 0xfd3b, 0xf69b, 0xf418, 0xfc90, 0x01e0, 0x039a,
+ 0x03ce, 0xfd2e, 0xf8d1, 0xfa75, 0xf435, 0xe731,
+ 0xe118, 0xe1ff, 0xe025, 0xd59e, 0xc816, 0xc365,
+ 0xc933, 0xd293, 0xdc9d, 0xe7bd, 0xf1be, 0xf755,
+ 0xf9b4, 0xfc7e, 0x013f, 0x079a, 0x0946, 0x01ce,
+ 0xfc11, 0xfd8a, 0xfa52, 0xf1a9, 0xebef, 0xe78e,
+ 0xe9f9, 0xf8c5, 0x0318, 0xffb7, 0xfbeb, 0xfabd,
+ 0xf5f7, 0xf0c9, 0xedb6, 0xee58, 0xf7bf, 0x051a,
+ 0x0d63, 0x11f2, 0x15d3, 0x17c6, 0x164c, 0x0ffe,
+ 0x07f9, 0x036c, 0x0048, 0xfd1d, 0x00a1, 0x0b5a,
+ 0x0f16, 0x031f, 0xf4ef, 0xf1e0, 0xf432, 0xf651,
+ 0xf7c5, 0xf577, 0xf769, 0x00a8, 0xfe14, 0xf169,
+ 0xf265, 0xfa35, 0xf86a, 0xf850, 0x00bc, 0x0614,
+ 0x04a4, 0xff8c, 0xf611, 0xeeb7, 0xf4ed, 0x004e,
+ 0xfd54, 0xf268, 0xf334, 0xfaf1, 0xfaca, 0xf55b,
+ 0xf4ba, 0xf83e, 0xf82f, 0xf532, 0xf40d, 0xf3bb,
+ 0xf849, 0x0370, 0x07fe, 0x035f, 0x0017, 0xfc5b,
+ 0xf566, 0xefd4, 0xed09, 0xf158, 0xfbf2, 0xff55,
+ 0xf896, 0xf047, 0xe90d, 0xe64c, 0xeceb, 0xf87f,
+ 0x00a1, 0x013b, 0xfb32, 0xf699, 0xfbf3, 0x057c,
+ 0x07fe, 0x0477, 0xfd73, 0xf39a, 0xf224, 0xfbf4,
+ 0x0243, 0xfee0, 0xf665, 0xee87, 0xecca, 0xeabd,
+ 0xe3fb, 0xe67a, 0xf22a, 0xf52c, 0xf4b5, 0x0167,
+ 0x1026, 0x0ef7, 0x09e7, 0x1274, 0x1bfa, 0x139c,
+ 0xfe67, 0xecd1, 0xe852, 0xec94, 0xee2a, 0xebdf,
+ 0xee26, 0xf886, 0x0414, 0x09ee, 0x0cdf, 0x0a51,
+ 0xfd88, 0xf459, 0xf46b, 0xf494, 0xfc9a, 0x0b12,
+ 0x0e40, 0x0bbd, 0x0ac7, 0x065b, 0x039a, 0x02fc,
+ 0x0445, 0x0ad0, 0x0a2d, 0x03bb, 0x0499, 0x012a,
+ 0xf81b, 0xf7f9, 0xf8fd, 0xf2f4, 0xef26, 0xf85e,
+ 0x0962, 0x0c3f, 0x0542, 0x08ff, 0x0a3d, 0x00c5,
+ 0xfb8b, 0xfd18, 0x071e, 0x0f8e, 0x03e3, 0xf5b4,
+ 0xf30c, 0xf2fc, 0xfe4b, 0x1191, 0x1c32, 0x1ff5,
+ 0x1715, 0x05ee, 0x02af, 0x0786, 0x0bb0, 0x116c,
+ 0x0e80, 0x0951, 0x0c57, 0x0bb9, 0x08a4, 0x094a,
+ 0x0503, 0xfb82, 0xf237, 0xedc4, 0xf1e7, 0xf952,
+ 0x0066, 0x0323, 0xfb6c, 0xf279, 0xf02f, 0xec97,
+ 0xe483, 0xe3b0, 0xf56d, 0x087c, 0x0483, 0xf7cd,
+ 0xf249, 0xec55, 0xebe9, 0xf2e1, 0xf43e, 0xf470,
+ 0xf89a, 0xfdb7, 0x0733, 0x121a, 0x1890, 0x16d3,
+ 0x0b0c, 0x030f, 0x05c7, 0x06cf, 0x032f, 0xfe8c,
+ 0xfae8, 0xfd01, 0x03b5, 0x0c0f, 0x1090, 0x0d93,
+ 0x0de2, 0x0f8a, 0x09d4, 0x0c33, 0x17af, 0x1ab9,
+ 0x1769, 0x0cff, 0xf8b7, 0xeb92, 0xee88, 0xfc6a,
+ 0x0b80, 0x1178, 0x164b, 0x2079, 0x249a, 0x2043,
+ 0x177e, 0x100b, 0x13a2, 0x16e0, 0x0df0, 0x0983,
+ 0x0e7e, 0x0d64, 0x09a8, 0x0d73, 0x0f6a, 0x0aa5,
+ 0x0adc, 0x0fd0, 0x10ca, 0x109d, 0x0cb5, 0x03b9,
+ 0x0169, 0x01e7, 0x0137, 0x0ab1, 0x12de, 0x0f69,
+ 0x0e7f, 0x08c6, 0xf682, 0xf06c, 0xfd2c, 0x0625,
+ 0x009b, 0xf6dd, 0xf5ad, 0xf82d, 0xf2ae, 0xe90a,
+ 0xe7b9, 0xf205, 0xf8d2, 0xf5c0, 0xfcab, 0x084d,
+ 0x034f, 0x01d0, 0x0ce8, 0x0a86, 0xff4b, 0xfc7f,
+ 0xff2f, 0x0644, 0x09a0, 0x05d3, 0x0c2a, 0x18da,
+ 0x183f, 0x0f41, 0x0a40, 0x06ba, 0xfb7f, 0xebfd,
+ 0xe964, 0xf129, 0xf129, 0xed4a, 0xed7c, 0xeb74,
+ 0xed30, 0xfade, 0x071b, 0x0afa, 0x1263, 0x1bfb,
+ 0x1ab3, 0x1305, 0x1284, 0x197c, 0x1e8f, 0x1c3b,
+ 0x1624, 0x12e9, 0x1598, 0x1c45, 0x1ee8, 0x1a84,
+ 0x15db, 0x104a, 0x06cc, 0x0094, 0xfe06, 0xf73b,
+ 0xf04b, 0xf716, 0x0b2f, 0x14c9, 0x0ad9, 0x04ad,
+ 0x07de, 0x04e1, 0x014d, 0x0432, 0x04e9, 0x01c5,
+ 0xfd6a, 0xf9ce, 0xf9c1, 0xf793, 0xed9c, 0xe1f8,
+ 0xdf80, 0xe730, 0xeeb4, 0xf5b8, 0x007d, 0x0344,
+ 0xf964, 0xef96, 0xef8b, 0xfc3b, 0x0d61, 0x1771,
+ 0x1953, 0x1442, 0x1321, 0x1b30, 0x17eb, 0x0cf7,
+ 0x10e4, 0x17ac, 0x189b, 0x19b0, 0x1210, 0x07a9,
+ 0x02e9, 0xfe30, 0x0776, 0x1c3e, 0x1e78, 0x1349,
+ 0x0d73, 0x074d, 0xff52, 0xfd6c, 0x02a8, 0x098e,
+ 0x1279, 0x1fee, 0x2238, 0x144d, 0x0af2, 0x0725,
+ 0x0349, 0x05e1, 0x04ff, 0x02e9, 0x0ca8, 0x0e93,
+ 0x0427, 0x0460, 0x0b0b, 0x100c, 0x1723, 0x17ad,
+ 0x12a5, 0x129e, 0x11e4, 0x0d75, 0x1125, 0x1ef4,
+ 0x26df, 0x20f1, 0x1741, 0x0f07, 0x067e, 0xff43,
+ 0xf8c2, 0xf309, 0xee70, 0xecb1, 0xf615, 0x0333,
+ 0x0417, 0xfef2, 0xfa86, 0xf554, 0xf282, 0xec92,
+ 0xe4a5, 0xe56c, 0xe8eb, 0xec66, 0xef5e, 0xe70a,
+ 0xe0a1, 0xe8b8, 0xef4e, 0xf3fe, 0xf87d, 0xef15,
+ 0xe500, 0xea4d, 0xf296, 0xf573, 0xf1a0, 0xe898,
+ 0xe720, 0xef08, 0xf4bf, 0xf6b4, 0xfb85, 0x0444,
+ 0x098a, 0x07ac, 0x04bf, 0x00f6, 0xf797, 0xefcf,
+ 0xf5c0, 0x0706, 0x11db, 0x0a60, 0xf9d7, 0xf182,
+ 0xf6cd, 0x016e, 0x0a2f, 0x10cd, 0x1154, 0x0c27,
+ 0x0e25, 0x18c6, 0x1eb9, 0x1b87, 0x15b7, 0x13fe,
+ 0x1374, 0x0c37, 0x034d, 0xffed, 0xfc09, 0xf3e2,
+ 0xef1c, 0xf432, 0xfa0d, 0xf6dc, 0xf7ad, 0xfe79,
+ 0xf7ee, 0xf230, 0xffcc, 0x076a, 0xffb2, 0xfbd9,
+ 0xf906, 0xf1fa, 0xee6c, 0xeeec, 0xf286, 0xf60d,
+ 0xf613, 0xf921, 0xfecc, 0xfef9, 0xfa08, 0xf497,
+ 0xf43b, 0xf82c, 0xf7a7, 0xf4b7, 0xf575, 0xf76b,
+ 0xfa34, 0xfd09, 0x0096, 0x088d, 0x0924, 0xfd1f,
+ 0xf9ac, 0x044b, 0x0f5a, 0x173c, 0x13fd, 0x03e7,
+ 0xfc4e, 0x012f, 0x0191, 0xfaf9, 0xf369, 0xefde,
+ 0xf1a2, 0xf05c, 0xedd8, 0xf49d, 0x0038, 0x07f9,
+ 0x07d6, 0xff4e, 0xf7a8, 0xf478, 0xf13f, 0xf13b,
+ 0xf61a, 0xfbcf, 0xfb04, 0xf0e3, 0xf022, 0xfc44,
+ 0xfcc3, 0xf8cd, 0xff4d, 0xfff0, 0xffd8, 0x0b6b,
+ 0x1154, 0x0dc0, 0x0835, 0x0139, 0x0050, 0x00ec,
+ 0xfe88, 0x0348, 0x0891, 0x0a2d, 0x0d4e, 0x07b3,
+ 0x017f, 0x0827, 0x0b2d, 0x0a10, 0x0f9e, 0x1217,
+ 0x11d1, 0x129b, 0x101a, 0x102c, 0x1211, 0x1104,
+ 0x0f19, 0x06d9, 0xfbf8, 0xf72b, 0xf2aa, 0xf225,
+ 0xfb07, 0x050f, 0x0d53, 0x0d36, 0x019c, 0xfa6e,
+ 0xfabf, 0xfb3a, 0xfd69, 0xfd21, 0xfac6, 0xfc73,
+ 0xfd09, 0xfc55, 0xfd9b, 0xfd70, 0xfe70, 0x00b9,
+ 0x007b, 0x027c, 0x07a1, 0x09b6, 0x06f7, 0x064a,
+ 0x101a, 0x1a5a, 0x1711, 0x0eb3, 0x0a9a, 0x0a23,
+ 0x0b16, 0x066e, 0x01ca, 0x07f9, 0x0d48, 0x0a9b,
+ 0x0972, 0x0ada, 0x0cd0, 0x0c49, 0x051c, 0x016b,
+ 0x0870, 0x0fa4, 0x0e4a, 0x07f6, 0x068e, 0x0b77,
+ 0x0f30, 0x109b, 0x0caa, 0x01b8, 0xfd2b, 0xff69,
+ 0xfb42, 0xf632, 0xf6d5, 0xf6a9, 0xf361, 0xec48,
+ 0xe376, 0xe1cc, 0xe6c4, 0xe8f1, 0xe659, 0xe41b,
+ 0xe3be, 0xe5e6, 0xefb2, 0xf962, 0xf5be, 0xf22a,
+ 0xf9e8, 0xfdf9, 0xfdc4, 0x03a7, 0x08b2, 0x0721,
+ 0xffc6, 0xf74d, 0xf6a6, 0xf815, 0xf7ed, 0x0175,
+ 0x0df1, 0x10d4, 0x0f55, 0x0c0f, 0x0954, 0x0b5d,
+ 0x0c53, 0x0aa3, 0x05dc, 0xfa18, 0xf0d7, 0xf055,
+ 0xf3e7, 0xfb08, 0xfc45, 0xf2e7, 0xf187, 0xfc44,
+ 0x049e, 0x0ade, 0x13e2, 0x1a55, 0x1885, 0x1132,
+ 0x0cff, 0x094c, 0xfc97, 0xf01e, 0xf3aa, 0xffb0,
+ 0x0177, 0xfc65, 0xffd6, 0x0368, 0xfb51, 0xf59c,
+ 0xf97b, 0xfe22, 0x030a, 0x0658, 0x0655, 0x0634,
+ 0x0074, 0xf98b, 0xfc66, 0xff14, 0xfeb3, 0x057f,
+ 0x0cd9, 0x0ce7, 0x0776, 0x0277, 0x0766, 0x0ba5,
+ 0x010c, 0xf813, 0xfb22, 0xfd4e, 0xf9bf, 0xf4da,
+ 0xf41e, 0xf65e, 0xf25d, 0xec05, 0xea8c, 0xea9b,
+ 0xee48, 0xf37e, 0xf2b9, 0xf0bc, 0xefb6, 0xef9a,
+ 0xf594, 0xfa67, 0xfa15, 0xfdbc, 0x01d0, 0xff46,
+ 0xfa7a, 0xf93e, 0xfdd2, 0xff2d, 0xf535, 0xebe4,
+ 0xee6f, 0xf979, 0x0350, 0x031a, 0xff79, 0xff8d,
+ 0xf98f, 0xef51, 0xed7e, 0xf325, 0xfb16, 0xfd2f,
+ 0xf4ba, 0xee93, 0xef85, 0xef2d, 0xef83, 0xf4f5,
+ 0x00c6, 0x0e8b, 0x1003, 0x06d7, 0x0090, 0xfc9f,
+ 0xfc47, 0x0117, 0x0373, 0x08cd, 0x1316, 0x132b,
+ 0x0b48, 0x06f6, 0x0575, 0x0805, 0x0c5d, 0x0d36,
+ 0x0ec9, 0x0cc2, 0xff6e, 0xf07a, 0xea07, 0xed48,
+ 0xf5be, 0xf8ed, 0xf6d2, 0xf6a5, 0xf7cf, 0xfc5d,
+ 0x02bb, 0xffd5, 0xf7a2, 0xf713, 0xfac3, 0xf881,
+ 0xf2a8, 0xf612, 0x027e, 0x076f, 0x03ac, 0x0273,
+ 0x017b, 0xfbbf, 0xf58d, 0xf7cf, 0x0568, 0x1102,
+ 0x127e, 0x0fca, 0x07fa, 0x00fd, 0x04c7, 0x07d6,
+ 0x0666, 0x08bb, 0x07ce, 0x06c6, 0x0f54, 0x173d,
+ 0x1a1c, 0x185f, 0x0c59, 0xffa1, 0xfa69, 0xf902,
+ 0xfd68, 0x01f0, 0xffab, 0xfe31, 0xff64, 0x0039,
+ 0x0138, 0x0182, 0x05c9, 0x0c3c, 0x0b1c, 0x078e,
+ 0x054d, 0xff87, 0xfbc9, 0xfaf2, 0xf9a5, 0xffee,
+ 0x0b24, 0x0dd9, 0x0a3c, 0x0834, 0x0422, 0xfc25,
+ 0xfa3a, 0xfee8, 0xfcfd, 0xf6e2, 0xf58b, 0xf453,
+ 0xf3ff, 0xf541, 0xf278, 0xf477, 0xfbd1, 0xf9eb,
+ 0xf542, 0xf62c, 0xf305, 0xec46, 0xeb7d, 0xf45b,
+ 0xffcd, 0xfba9, 0xe81d, 0xda89, 0xd7c4, 0xd89b,
+ 0xddeb, 0xe573, 0xe7ff, 0xe337, 0xd872, 0xcdfb,
+ 0xd0c2, 0xe382, 0xf58c, 0xfd8b, 0x01b1, 0x00d4,
+ 0xfc20, 0xfd90, 0x01a7, 0x0407, 0x09bb, 0x0d04,
+ 0x0868, 0x034b, 0x02d5, 0x05b8, 0x0580, 0xfe88,
+ 0xfa12, 0xff77, 0x08c9, 0x0caa, 0x0c4e, 0x118b,
+ 0x1502, 0x0a6a, 0x02a4, 0x080a, 0x09c6, 0x0807,
+ 0x0cb0, 0x113a, 0x12bd, 0x10fb, 0x093f, 0x03d2,
+ 0x02c5, 0xfc90, 0xf802, 0x01b2, 0x0f13, 0x1230,
+ 0x115c, 0x1230, 0x0fad, 0x0b84, 0x091c, 0x0813,
+ 0x0a85, 0x0bff, 0x0884, 0x052c, 0xff6c, 0xf746,
+ 0xf6b8, 0xfa07, 0xfaba, 0xfa8c, 0xf39e, 0xe702,
+ 0xe0c4, 0xe261, 0xe7dd, 0xed16, 0xeff8, 0xf63d,
+ 0xfba2, 0xf594, 0xebf9, 0xeb0b, 0xf25a, 0xfbba,
+ 0xff89, 0xfc44, 0xf85e, 0xf6ce, 0xf70b, 0xfccd,
+ 0x080b, 0x0a5c, 0xfc70, 0xefe8, 0xef0d, 0xf1a1,
+ 0xf938, 0x0575, 0x08bd, 0x0265, 0xfc5f, 0xfbd0,
+ 0x0246, 0x0916, 0x09f9, 0x09d3, 0x0b0a, 0x08ab,
+ 0x0156, 0xf97b, 0xf3e7, 0xf091, 0xf2c8, 0xf83e,
+ 0xf694, 0xefb6, 0xec99, 0xeeb5, 0xf50e, 0xf6fa,
+ 0xef8f, 0xeb7d, 0xec81, 0xea11, 0xe905, 0xe9c5,
+ 0xe96e, 0xeee8, 0xf6eb, 0xf8f0, 0xf71c, 0xf3e9,
+ 0xf121, 0xf141, 0xf5bf, 0x001d, 0x0928, 0x093e,
+ 0x04d8, 0xff63, 0xf85b, 0xf1c8, 0xee20, 0xef2d,
+ 0xef56, 0xeb9d, 0xee02, 0xf3ca, 0xf2ad, 0xf4b1,
+ 0x00af, 0x0ee6, 0x1a91, 0x1c62, 0x157a, 0x1509,
+ 0x1847, 0x145c, 0x11ba, 0x142c, 0x127c, 0x0c65,
+ 0x0510, 0xfcf4, 0xf979, 0xfca0, 0x0411, 0x10f2,
+ 0x1bde, 0x185e, 0x0944, 0xf7dc, 0xeda7, 0xf783,
+ 0x0d41, 0x162b, 0x1024, 0x0777, 0xffbb, 0xfd1f,
+ 0x035e, 0x0bd4, 0x0e20, 0x0ac1, 0x0586, 0xfdfe,
+ 0xf99f, 0x00a8, 0x08c1, 0x051b, 0xfd15, 0xfa6f,
+ 0xfce2, 0x0013, 0x0336, 0x08de, 0x0975, 0x024d,
+ 0xff99, 0xfb58, 0xf073, 0xf3a6, 0x002a, 0xfef4,
+ 0xf781, 0xf276, 0xee05, 0xf0ad, 0xf54c, 0xf29e,
+ 0xf07a, 0xf5bd, 0xfcd0, 0xfc35, 0xf3f9, 0xedd1,
+ 0xedd0, 0xf4e6, 0xffdc, 0x0494, 0x03ec, 0x00cf,
+ 0xfab9, 0xfac0, 0xfa8e, 0xf025, 0xece5, 0xf11d,
+ 0xee2b, 0xef64, 0xf315, 0xeb3b, 0xe75c, 0xf3f8,
+ 0x0404, 0x07e9, 0xffd7, 0xfc3a, 0xfceb, 0xf6d5,
+ 0xf45f, 0xf61c, 0xf2dd, 0xf70f, 0x025e, 0x066a,
+ 0x0494, 0xfeec, 0xfbea, 0x00c9, 0x03df, 0x0b8b,
+ 0x1872, 0x12c0, 0x048b, 0x0322, 0x00d2, 0xfbb3,
+ 0xfb56, 0xf5f8, 0xf26f, 0xfae8, 0x0295, 0x044f,
+ 0x06ed, 0x0bc7, 0x1057, 0x0f79, 0x0af1, 0x0aa3,
+ 0x0b50, 0x082a, 0x0688, 0x06b4, 0x02e3, 0xfdfd,
+ 0xfdf4, 0x018e, 0x0710, 0x0c06, 0x09ec, 0x02f6,
+ 0xfed5, 0xfe2e, 0x02f2, 0x09ab, 0x0673, 0xffb5,
+ 0x002a, 0xfec6, 0xfa93, 0xfca3, 0x01dc, 0x060b,
+ 0x0442, 0xf9af, 0xf488, 0xf948, 0xfa26, 0xf7c6,
+ 0xfa0d, 0xfe64, 0x0019, 0xfc69, 0xf7b9, 0xf715,
+ 0xf73b, 0xfc12, 0x0647, 0x06dd, 0xfe5e, 0xfa5c,
+ 0xfaef, 0xfb00, 0xf53b, 0xecbf, 0xed73, 0xee3c,
+ 0xe770, 0xe9b7, 0xf1fe, 0xf400, 0xf62f, 0xf362,
+ 0xedff, 0xf751, 0xfed1, 0xf836, 0xf99e, 0xffdd,
+ 0xf7c7, 0xe93f, 0xe724, 0xfd48, 0x1a75, 0x1bc3,
+ 0x06c4, 0xfa63, 0xfd3d, 0x05b9, 0x094d, 0x07b1,
+ 0x08ad, 0x070c, 0x026d, 0x05af, 0x0b0a, 0x0db7,
+ 0x1553, 0x1c6c, 0x19ab, 0x0ccf, 0xfb92, 0xf5b2,
+ 0xffca, 0x0827, 0x07cc, 0x09db, 0x1084, 0x12e0,
+ 0x113c, 0x1377, 0x17ba, 0x192a, 0x179e, 0x1000,
+ 0x0690, 0x0522, 0x06b2, 0x04ea, 0x0442, 0x0478,
+ 0xffd7, 0xf563, 0xecec, 0xede3, 0xf50d, 0x0096,
+ 0x0bc2, 0x09f6, 0x03fb, 0x0772, 0x0ae9, 0x0e81,
+ 0x1724, 0x1955, 0x1541, 0x116d, 0x0eb9, 0x107d,
+ 0x0ade, 0xfcde, 0x00c4, 0x1076, 0x1237, 0x0ae2,
+ 0x039e, 0x007c, 0x053c, 0x0902, 0x0a03, 0x0b59,
+ 0x0a20, 0x0c9c, 0x0ec7, 0x05dc, 0xfe3e, 0xff51,
+ 0x048f, 0x0f1a, 0x14ea, 0x14fa, 0x1e2b, 0x23f2,
+ 0x1638, 0x0524, 0x0100, 0x08bd, 0x117f, 0x0dc1,
+ 0xfe9e, 0xf3d5, 0xf83c, 0x021a, 0xffd3, 0xf81f,
+ 0xfbec, 0x04f4, 0x069b, 0x01e5, 0xfd4d, 0xfb8f,
+ 0xf98b, 0xf7f3, 0xfa0c, 0xfcde, 0x0113, 0x06c7,
+ 0x0767, 0x04fd, 0x02b3, 0xfe4c, 0xfb46, 0xf975,
+ 0xf809, 0xfc26, 0xffb9, 0xfe7f, 0x0163, 0x0685,
+ 0x05d4, 0x00b0, 0xfbc3, 0xf960, 0xf3c0, 0xe87f,
+ 0xe1c5, 0xe0a3, 0xe1bb, 0xea8f, 0xf557, 0xf703,
+ 0xf347, 0xf134, 0xf156, 0xf092, 0xf0a6, 0xf654,
+ 0xfb27, 0xfbf8, 0x0098, 0x04d4, 0x022a, 0xfd26,
+ 0xf9d0, 0xfe7c, 0x08d5, 0x0982, 0x0201, 0xfe59,
+ 0x00ac, 0x07de, 0x0b2e, 0x055f, 0x0270, 0x0679,
+ 0x0bdb, 0x12b2, 0x152d, 0x0d7c, 0x04ea, 0x0542,
+ 0x092a, 0x08e3, 0x0d4c, 0x1ac9, 0x21a0, 0x2202,
+ 0x2753, 0x2796, 0x1f71, 0x18f0, 0x1325, 0x1230,
+ 0x18b8, 0x19df, 0x14ee, 0x0fba, 0x05b3, 0xf978,
+ 0xf221, 0xf315, 0xfdde, 0x0803, 0x0757, 0x030b,
+ 0x02c5, 0x041e, 0x04a8, 0x04d3, 0x0218, 0xfa43,
+ 0xf467, 0xf55e, 0xf730, 0xf91a, 0xfe7f, 0x040f,
+ 0x05fd, 0x0429, 0x0463, 0x07e7, 0x032c, 0xfa46,
+ 0xfc49, 0x018c, 0x02f8, 0x05e0, 0x0508, 0x0078,
+ 0xff33, 0xff02, 0x0360, 0x0c2e, 0x0bf1, 0x0281,
+ 0xfa5e, 0xf931, 0xffda, 0x05b2, 0x06dd, 0x09ef,
+ 0x0bb6, 0x05e7, 0xfba9, 0xf5f3, 0xfd1d, 0x06b3,
+ 0x0467, 0x031f, 0x0bee, 0x0ea8, 0x050b, 0xfb6e,
+ 0xfc0e, 0x0490, 0x0a85, 0x0b4d, 0x088a, 0x0269,
+ 0x018e, 0x0650, 0x04ac, 0x0168, 0x0476, 0x0574,
+ 0x00e3, 0xf9f3, 0xf508, 0xfa58, 0x0299, 0x0017,
+ 0xf8b9, 0xf274, 0xee35, 0xf644, 0x04ce, 0x06be,
+ 0x00e0, 0xfefe, 0xfe8c, 0xfee3, 0xff9d, 0x0044,
+ 0x049a, 0x0471, 0xfd46, 0xfef0, 0x029f, 0xfc82,
+ 0x0337, 0x1776, 0x1834, 0x09cb, 0x03f3, 0x0218,
+ 0x0136, 0x07e4, 0x0f4c, 0x10ad, 0x0e30, 0x092e,
+ 0x02d4, 0xfcf8, 0xfa8e, 0xffcc, 0x097d, 0x0e9e,
+ 0x0eba, 0x0efd, 0x0b2b, 0xff75, 0xf6f8, 0xf819,
+ 0xf9e9, 0xf8ea, 0xf5b9, 0xec63, 0xe476, 0xeafc,
+ 0xfbb4, 0x0771, 0x063a, 0xfebf, 0xfa23, 0xf475,
+ 0xf0d5, 0xfe09, 0x0f7a, 0x0d83, 0x037e, 0x0199,
+ 0x011c, 0x00bc, 0x031a, 0x02f0, 0x036f, 0x0541,
+ 0xfdf5, 0xf18f, 0xebb6, 0xecd8, 0xf4c4, 0xfcb1,
+ 0xfb6c, 0xfe7e, 0x0915, 0x0139, 0xee08, 0xf09a,
+ 0xfd86, 0xfc06, 0xf759, 0xf9ef, 0xfd24, 0xfdec,
+ 0xf976, 0xf344, 0xf637, 0xfd5c, 0xffac, 0x02bf,
+ 0x061f, 0x021d, 0xfcd8, 0xfe46, 0xfef0, 0xf7d7,
+ 0xf3c0, 0xfc6a, 0x0514, 0x034f, 0x030c, 0x099d,
+ 0x0cec, 0x0c7e, 0x0d82, 0x0c8d, 0x0709, 0x0292,
+ 0x03c8, 0x0686, 0x081e, 0x0bff, 0x0cb2, 0x0529,
+ 0x00e8, 0x045f, 0x0535, 0x016c, 0xfce3, 0xf969,
+ 0xf947, 0xfa43, 0xfaeb, 0xfd9a, 0x0059, 0x016d,
+ 0x0099, 0xfebf, 0x0293, 0x0805, 0x0142, 0xf79e,
+ 0x003f, 0x157e, 0x2141, 0x1efd, 0x1a91, 0x17db,
+ 0x13ed, 0x1291, 0x1228, 0x0b26, 0x02b2, 0x012e,
+ 0x0465, 0x0527, 0xff71, 0xfb24, 0xfed6, 0xfef1,
+ 0xf425, 0xe979, 0xec1e, 0xfd5e, 0x0a9c, 0x06a1,
+ 0x0181, 0x028e, 0xfcdf, 0xf5c8, 0xf8de, 0xfe1f,
+ 0xfceb, 0xfabd, 0x011d, 0x0c15, 0x0e29, 0x07f5,
+ 0x01c5, 0xfc99, 0xf788, 0xeefb, 0xe60c, 0xe89b,
+ 0xf16b, 0xf6ce, 0xfda1, 0xfd76, 0xea89, 0xd53c,
+ 0xce5c, 0xd2d9, 0xde7a, 0xed9d, 0xf9d2, 0x01fd,
+ 0x0709, 0x06d6, 0x0559, 0x0980, 0x0ba0, 0x039b,
+ 0xfec5, 0x0749, 0x1222, 0x14b2, 0x0f93, 0x0a73,
+ 0x0966, 0x0453, 0xfa48, 0xf482, 0xf0d8, 0xee18,
+ 0xf0dc, 0xef4d, 0xe538, 0xe354, 0xed9b, 0xf342,
+ 0xee64, 0xeccd, 0xf835, 0x07bd, 0x0f99, 0x10b5,
+ 0x11d9, 0x12d6, 0x0be9, 0xfc0b, 0xed80, 0xe749,
+ 0xe957, 0xf01d, 0xf6a3, 0x0057, 0x0dd3, 0x0f8d,
+ 0x020b, 0xf623, 0xf1c3, 0xf171, 0xf6f6, 0xfbf3,
+ 0xf47b, 0xe75c, 0xe613, 0xee64, 0xf09a, 0xeb4d,
+ 0xe764, 0xe9a1, 0xf2ae, 0xfd3f, 0x0316, 0x0579,
+ 0x082c, 0x0c9e, 0x10b6, 0x14a3, 0x1eba, 0x29ab,
+ 0x29ab, 0x2487, 0x1ece, 0x13dd, 0x0b9b, 0x0932,
+ 0x036e, 0xfd62, 0xfc1a, 0xf99e, 0xf167, 0xe730,
+ 0xe894, 0xf8fb, 0x0483, 0x030e, 0x019a, 0x0434,
+ 0x06c0, 0x08d7, 0x0bf8, 0x0fa9, 0x0e66, 0x0b09,
+ 0x0de4, 0x0e91, 0x0a50, 0x1118, 0x1f97, 0x251e,
+ 0x2219, 0x1884, 0x09d6, 0x03e5, 0x0825, 0x0586,
+ 0xfbfb, 0xfc3b, 0x0427, 0x03d2, 0xfb2f, 0xf2c3,
+ 0xee6a, 0xf33a, 0xfc46, 0xfb09, 0xf3cb, 0xf311,
+ 0xf354, 0xf06c, 0xf374, 0xfde4, 0x064a, 0x054a,
+ 0xfea1, 0xff5f, 0x0969, 0x1004, 0x0fac, 0x0d17,
+ 0x0722, 0xffc2, 0xfb50, 0xf59e, 0xec0c, 0xe579,
+ 0xe73d, 0xec6e, 0xeeb6, 0xf25b, 0xf77e, 0xf214,
+ 0xe5a7, 0xdf28, 0xd9d3, 0xd65a, 0xdd72, 0xe370,
+ 0xe12a, 0xe16e, 0xe455, 0xe66c, 0xe9f7, 0xed86,
+ 0xf4ea, 0x004d, 0x04f1, 0x04a3, 0x0721, 0x09ad,
+ 0x0a6c, 0x078e, 0x0058, 0xfbf1, 0xfa79, 0xf876,
+ 0xfb96, 0x01a4, 0x003f, 0xf9e4, 0xf77b, 0xf860,
+ 0xf623, 0xf050, 0xeee2, 0xf781, 0x0475, 0x0b7a,
+ 0x0b6a, 0x0a38, 0x097a, 0x0b53, 0x11d4, 0x13de,
+ 0x0ec1, 0x0cde, 0x0ab6, 0x01bb, 0xfd90, 0x0547,
+ 0x124d, 0x1a5f, 0x12c6, 0x03c0, 0x036d, 0x10f5,
+ 0x1b96, 0x1ef2, 0x1e16, 0x18df, 0x0e14, 0x019e,
+ 0xfbbf, 0xfdd9, 0x037d, 0x08fb, 0x0925, 0x0320,
+ 0xf9f2, 0xec88, 0xe0a5, 0xe15b, 0xecf4, 0xf9ab,
+ 0xfe9f, 0xfb27, 0xfcca, 0x057f, 0x076d, 0x0640,
+ 0x0796, 0xffb2, 0xf267, 0xed8b, 0xec79, 0xec61,
+ 0xf369, 0xfc85, 0xfc0c, 0xef9f, 0xe361, 0xe39b,
+ 0xed20, 0xf923, 0x0258, 0x02da, 0xffda, 0xfd6c,
+ 0xf8e1, 0xfa74, 0x005c, 0xfd22, 0xfa7f, 0x0043,
+ 0x02fe, 0x04af, 0x06ff, 0x00a8, 0xf87a, 0xf73b,
+ 0xf9d5, 0xfeed, 0x02b8, 0x01cb, 0xff3e, 0xfe24,
+ 0x00e6, 0x015b, 0xf8ea, 0xf237, 0xf1a3, 0xef98,
+ 0xee5e, 0xee77, 0xf0f2, 0xfc64, 0x0487, 0xfea1,
+ 0xf507, 0xe9d5, 0xdc6c, 0xd6a0, 0xdcca, 0xecbf,
+ 0xf8d0, 0xf42b, 0xecb3, 0xebdc, 0xea60, 0xef06,
+ 0xfb25, 0x0253, 0x0533, 0x0586, 0x01c6, 0xfe39,
+ 0xfa19, 0xf852, 0xfd0d, 0xff19, 0xfe0a, 0x029d,
+ 0x0a02, 0x0ff7, 0x1057, 0x089a, 0x0123, 0xfb52,
+ 0xf5ae, 0xfade, 0x04bb, 0x0084, 0xf80d, 0xfd6d,
+ 0x05ef, 0x0286, 0xfa90, 0xf55c, 0xef6c, 0xeffa,
+ 0xfc07, 0x03b9, 0x01cd, 0x00ff, 0xfec1, 0xfa36,
+ 0x0071, 0x0dd6, 0x0e0e, 0x0109, 0xfb6d, 0x0281,
+ 0x0b8b, 0x1517, 0x1b71, 0x148d, 0x07e0, 0xfe81,
+ 0xf485, 0xeea8, 0xf0ce, 0xf09e, 0xe9cf, 0xe38e,
+ 0xe563, 0xece5, 0xf0a1, 0xf31c, 0xf7b6, 0xf6e5,
+ 0xf4ac, 0xf655, 0xf31d, 0xecf4, 0xebf3, 0xeed7,
+ 0xf735, 0x0262, 0x0591, 0xfecd, 0xf42d, 0xecd3,
+ 0xeb6d, 0xec86, 0xeea0, 0xedcb, 0xeac2, 0xf3df,
+ 0x030e, 0x0180, 0xf744, 0xf386, 0xed28, 0xe5d7,
+ 0xeb4b, 0xf4b2, 0xf3d3, 0xf282, 0xfdf5, 0x0be3,
+ 0x0e7f, 0x0b0d, 0x08e5, 0x0914, 0x0e54, 0x1372,
+ 0x11a9, 0x0f3f, 0x0c56, 0x0364, 0x000f, 0x0488,
+ 0xfc0b, 0xec7e, 0xf0df, 0xfef3, 0xfee6, 0xf9ce,
+ 0xfcd3, 0x022b, 0x0244, 0xfc66, 0xf803, 0xf92a,
+ 0xfce5, 0x08a7, 0x15b9, 0x10a6, 0x088b, 0x1075,
+ 0x159c, 0x1448, 0x1b48, 0x1e74, 0x1541, 0x0d2b,
+ 0x0afb, 0x0b14, 0x09a4, 0x0480, 0x0132, 0x02aa,
+ 0x04cc, 0x022a, 0xf833, 0xefef, 0xf0f2, 0xf508,
+ 0xf9a0, 0xfe87, 0xffbe, 0x02cb, 0x0aa9, 0x0e4d,
+ 0x0b64, 0x0715, 0x0505, 0x0381, 0xfb3c, 0xf242,
+ 0xf5fc, 0xfbea, 0xf4c5, 0xe860, 0xdf9e, 0xda8b,
+ 0xdd8c, 0xe795, 0xedfa, 0xeec2, 0xf004, 0xf1d6,
+ 0xf3b8, 0xf8a4, 0xfbd5, 0xf68b, 0xef38, 0xed5c,
+ 0xec76, 0xed1f, 0xf803, 0x04b8, 0x0489, 0x0028,
+ 0x01d5, 0x0286, 0x02d4, 0x0618, 0x020e, 0xf47f,
+ 0xe9c1, 0xeeae, 0x02f3, 0x0e86, 0x0549, 0xfd04,
+ 0xfe58, 0xff30, 0xff87, 0xfd60, 0xfb55, 0xffd4,
+ 0xfb43, 0xeafb, 0xe80c, 0xf49c, 0x001f, 0x0639,
+ 0x0a82, 0x1020, 0x0deb, 0xfef3, 0xf414, 0xefcc,
+ 0xe96d, 0xe8e4, 0xec8a, 0xf178, 0x00e1, 0x0e46,
+ 0x1161, 0x17c4, 0x19f1, 0x131e, 0x128b, 0x1404,
+ 0x1566, 0x2078, 0x2744, 0x1e5a, 0x1296, 0x10b6,
+ 0x1af9, 0x2095, 0x15b3, 0x10e7, 0x1aa1, 0x1dfd,
+ 0x1aaa, 0x1522, 0x04d3, 0xf5ca, 0xf711, 0x0022,
+ 0x0a95, 0x1710, 0x1f4c, 0x1e6e, 0x18d9, 0x18fb,
+ 0x20a4, 0x2267, 0x1877, 0x0a9d, 0xfc8d, 0xf3e9,
+ 0xf7ff, 0x0005, 0x022f, 0x0354, 0x0492, 0x014c,
+ 0xfd85, 0xfb98, 0xf4e6, 0xecda, 0xf2f6, 0x0631,
+ 0x1562, 0x200b, 0x2d1a, 0x3048, 0x2496, 0x1ba3,
+ 0x1b24, 0x1960, 0x13c4, 0x095c, 0xfa7b, 0xf2b1,
+ 0xf961, 0x03fe, 0x055d, 0xff09, 0xfc6a, 0x0191,
+ 0x07c5, 0x0a42, 0x0a8a, 0x08ef, 0x0534, 0x017a,
+ 0xfa4d, 0xec8e, 0xe64e, 0xf2a0, 0x0124, 0x030b,
+ 0x018e, 0x0525, 0x0b33, 0x11d8, 0x15b4, 0x10ca,
+ 0x05ab, 0x0078, 0x03de, 0x01a1, 0xf61c, 0xefad,
+ 0xeed0, 0xeaf9, 0xeb13, 0xef2a, 0xebf5, 0xe7f8,
+ 0xe6e0, 0xdcb4, 0xd5fd, 0xe2f8, 0xee56, 0xee2b,
+ 0xf39e, 0xf78e, 0xf06e, 0xec7b, 0xec09, 0xea9f,
+ 0xf1de, 0xfc83, 0xfed1, 0xfd99, 0x02a7, 0x1067,
+ 0x191f, 0x13b1, 0x0fc4, 0x10bb, 0x0c44, 0x0683,
+ 0xfb8a, 0xed0d, 0xf125, 0x0059, 0x0960, 0x1510,
+ 0x1cd8, 0x1658, 0x0eb4, 0x0b42, 0x0b21, 0x0aea,
+ 0x02dd, 0xfe63, 0xfb6f, 0xeac8, 0xeb32, 0x0b8d,
+ 0x1ef7, 0x1c99, 0x1e43, 0x1c46, 0x1310, 0x124e,
+ 0x1553, 0x1177, 0x08a7, 0xfbc2, 0xecc2, 0xe650,
+ 0xee9f, 0xfaa8, 0xfafb, 0xf0a7, 0xeb8d, 0xf2bd,
+ 0xf8d8, 0xf488, 0xeeb9, 0xef77, 0xfa4d, 0x0857,
+ 0x058d, 0xfc82, 0x08e1, 0x17e5, 0x0f10, 0xfd09,
+ 0xf6d8, 0x021b, 0x0e05, 0x058d, 0xf967, 0xf8aa,
+ 0xf5ef, 0xf6f1, 0x0020, 0x020b, 0x02a0, 0x038d,
+ 0xf594, 0xe63c, 0xe8e6, 0xf461, 0xf7be, 0xf124,
+ 0xf47b, 0x0754, 0x0e84, 0x05e3, 0x0325, 0x056b,
+ 0x04b6, 0x0397, 0x013a, 0xfca7, 0xf6f6, 0xf334,
+ 0xf3d0, 0xf1f3, 0xea87, 0xe298, 0xdbe6, 0xdb76,
+ 0xe20a, 0xe78e, 0xf041, 0xfd60, 0x00c7, 0xfe86,
+ 0x0215, 0xff5b, 0xf2ca, 0xf220, 0x04b4, 0x1656,
+ 0x1514, 0x08e1, 0x0643, 0x0c73, 0x0eb6, 0x1171,
+ 0x12d6, 0x06cc, 0xfd00, 0x027a, 0x0538, 0x03c2,
+ 0x05f5, 0x00da, 0xfad9, 0xfe82, 0x024c, 0x0a83,
+ 0x15f6, 0x13c3, 0x1081, 0x15be, 0x13d9, 0x11de,
+ 0x1709, 0x14ae, 0x0ec8, 0x107f, 0x13c7, 0x11d9,
+ 0x0acf, 0x05c3, 0x0343, 0xfb12, 0xf8e2, 0x076a,
+ 0x1396, 0x1489, 0x169e, 0x19b0, 0x16d8, 0x1061,
+ 0x0a35, 0x044d, 0x00b5, 0x0573, 0x0f19, 0x12c4,
+ 0x0fcc, 0x09b2, 0x0296, 0x00cf, 0x04e5, 0x0960,
+ 0x0c09, 0x0a1a, 0x03d7, 0xfe87, 0xfab3, 0xf786,
+ 0xf7a2, 0xf8f5, 0xf5ec, 0xf1f1, 0xf2d4, 0xf2a4,
+ 0xf09f, 0xf630, 0xfdb3, 0x0101, 0x0645, 0x0459,
+ 0xf56c, 0xec31, 0xf049, 0xf959, 0x0167, 0x04ca,
+ 0x061c, 0x0418, 0xfd04, 0xfae4, 0xfb3e, 0xf8b3,
+ 0xf938, 0xf212, 0xe7b1, 0xf3f6, 0x05b7, 0x089f,
+ 0x0d44, 0x0fa2, 0x0741, 0x0112, 0xf57f, 0xdd13,
+ 0xcb69, 0xccd7, 0xdc1d, 0xf00d, 0x0154, 0x0849,
+ 0x03b7, 0x0377, 0x077b, 0xff0c, 0xf69c, 0xf753,
+ 0xf61b, 0xfca4, 0x0764, 0x03ed, 0x0227, 0x094b,
+ 0x0937, 0x04fe, 0x0608, 0x122b, 0x209a, 0x1b7d,
+ 0x107c, 0x0e2d, 0x0338, 0xfc7f, 0x0918, 0x10ad,
+ 0x0ee7, 0x0df8, 0x0aaa, 0x0c4e, 0x124d, 0x1002,
+ 0x089b, 0x067b, 0x0e83, 0x16a0, 0x12fb, 0x0d48,
+ 0x0948, 0x04d5, 0x0a32, 0x10af, 0x0ebe, 0x0d42,
+ 0x0485, 0xfbbc, 0x0baa, 0x1c51, 0x101c, 0xfb77,
+ 0xf486, 0xfa51, 0x04ba, 0x0a7c, 0x0646, 0xfbe4,
+ 0xf7ac, 0xf69f, 0xee16, 0xf216, 0x07da, 0x0ce9,
+ 0x00e7, 0xfcc7, 0xfdb6, 0xfe29, 0xfc8d, 0xf5a8,
+ 0xf35f, 0xf7ed, 0xf9f1, 0xf987, 0xf914, 0xf717,
+ 0xf45d, 0xf8e1, 0x0473, 0x0300, 0xf695, 0xf56f,
+ 0xf7c4, 0xf7db, 0xffac, 0x0207, 0xfbcf, 0xf981,
+ 0xf4e8, 0xf3b6, 0xffff, 0x0a0f, 0x0964, 0x027d,
+ 0xf9df, 0xf60b, 0xf564, 0xfa1c, 0x0304, 0x00de,
+ 0xff88, 0x0d3d, 0x1154, 0x076b, 0x05a1, 0x07b6,
+ 0x02e9, 0xfbf4, 0xf9aa, 0xfc5d, 0xfd5d, 0xfd2f,
+ 0xfe70, 0xfe3f, 0x00ac, 0x018b, 0xfbbd, 0xfd39,
+ 0x027a, 0x0065, 0x0405, 0x08ea, 0x0222, 0xff69,
+ 0x068b, 0x0b3d, 0x09da, 0x0137, 0xf4aa, 0xed65,
+ 0xf0ba, 0xfc49, 0x0699, 0x0f18, 0x166b, 0x1153,
+ 0x05f6, 0x0207, 0xfff3, 0x0056, 0x0371, 0xfc33,
+ 0xee79, 0xe7cb, 0xe9f8, 0xee07, 0xecb6, 0xecec,
+ 0xefc1, 0xed29, 0xf428, 0x02c5, 0xfe20, 0xf4eb,
+ 0xfb3e, 0x0037, 0xfd9b, 0xfa3f, 0xf91a, 0xfa93,
+ 0xf7e3, 0xf881, 0x020f, 0x048c, 0x00da, 0xfb11,
+ 0xf229, 0xfb6c, 0x0d66, 0x0aaf, 0x074f, 0x0d5c,
+ 0x0afb, 0x0d28, 0x18dd, 0x1bfb, 0x1675, 0x0d37,
+ 0x0518, 0x04ac, 0x062d, 0x04b1, 0x006c, 0xfbef,
+ 0xfd95, 0x013f, 0x01a7, 0x03fe, 0x0ab2, 0x10f2,
+ 0x0e62, 0x0925, 0x0b8d, 0x0651, 0xfe73, 0x0abd,
+ 0x1094, 0x0346, 0x02eb, 0x087f, 0x0404, 0xff4e,
+ 0xf734, 0xf515, 0xfeb4, 0xfcee, 0xf746, 0xfbfc,
+ 0xfd2f, 0xff2b, 0x0562, 0x0611, 0x078f, 0x095d,
+ 0x0898, 0x0941, 0x0674, 0x0ada, 0x16ed, 0x0e3d,
+ 0xfa25, 0xf22b, 0xecae, 0xeb79, 0xf15b, 0xf0e6,
+ 0xf0a4, 0xf687, 0xfc2e, 0x0399, 0x05b4, 0xfc2c,
+ 0xf512, 0xf82c, 0xfc24, 0xf80f, 0xf0c9, 0xedd8,
+ 0xe872, 0xe029, 0xdbc1, 0xd54a, 0xd294, 0xdc8c,
+ 0xe416, 0xe708, 0xefc7, 0xf49d, 0xf2ef, 0xf4d5,
+ 0xf9b3, 0x00bd, 0x081d, 0x084d, 0x0487, 0x04be,
+ 0x04a1, 0xfdaa, 0xf7a7, 0xfa20, 0xfbc3, 0xf978,
+ 0xfb58, 0xfe33, 0x0029, 0x037f, 0x01d9, 0xff12,
+ 0x0080, 0xfda7, 0xf98d, 0xf989, 0xf747, 0xf696,
+ 0xfa32, 0xfd8e, 0x0380, 0x0648, 0x0030, 0xfb88,
+ 0xf994, 0xf7e7, 0xfb91, 0xff77, 0x03f6, 0x108c,
+ 0x1901, 0x1519, 0x10ce, 0x0f0b, 0x093e, 0x0103,
+ 0xfd22, 0xfe5d, 0xfc24, 0xf5c5, 0xf40b, 0xf36d,
+ 0xf1ef, 0xfa2a, 0x057f, 0x05a1, 0x01c0, 0x00c6,
+ 0xfe90, 0xfdb3, 0x008d, 0x0458, 0x0868, 0x0a42,
+ 0x0a76, 0x0d9c, 0x0ee0, 0x08b9, 0x00f1, 0xfc3c,
+ 0xf889, 0xf7e7, 0x00d3, 0x0aa2, 0x0127, 0xee01,
+ 0xed3e, 0xf7b7, 0xfad6, 0xffe6, 0x0b3e, 0x0fb0,
+ 0x0b42, 0x093d, 0x100f, 0x15f9, 0x10ec, 0x07f2,
+ 0xffc3, 0xf910, 0xfc29, 0x0305, 0x0286, 0x0287,
+ 0x0641, 0x0909, 0x0dd0, 0x129a, 0x1126, 0x067c,
+ 0xf88b, 0xfa6a, 0x089f, 0x0747, 0xf958, 0xf300,
+ 0xf1d7, 0xf284, 0xf616, 0xf602, 0xf2c4, 0xef62,
+ 0xe918, 0xe84e, 0xf73e, 0x0758, 0x06f4, 0xff61,
+ 0xfb28, 0xf6dc, 0xf781, 0xfd62, 0xfe6c, 0x0022,
+ 0x0215, 0xfa41, 0xf748, 0xfec7, 0xff43, 0xfd84,
+ 0x029c, 0x07bd, 0x0c2b, 0x0b55, 0x04ff, 0x085f,
+ 0x1173, 0x1340, 0x120a, 0x0e9f, 0x0874, 0x03ac,
+ 0xfb42, 0xf01c, 0xec64, 0xf121, 0xf9de, 0xff94,
+ 0xfe3c, 0xff30, 0x0711, 0x0beb, 0x0ad2, 0x0c29,
+ 0x0fd0, 0x0ae1, 0xfc7f, 0xf0a7, 0xee36, 0xf5cc,
+ 0x049d, 0x1105, 0x153f, 0x12d1, 0x0bb6, 0x04d5,
+ 0x0120, 0xfe5e, 0xfbfa, 0xf8cf, 0xf4f4, 0xf3fb,
+ 0xf5c8, 0xfa81, 0x0139, 0x0280, 0xfebe, 0xfa91,
+ 0xf25c, 0xed41, 0xf73d, 0x02b1, 0x002b, 0xfa54,
+ 0xf8a3, 0xf57f, 0xf578, 0xf82c, 0xf1bc, 0xeaee,
+ 0xefca, 0xf3a8, 0xf1a5, 0xf177, 0xf1b1, 0xf6a1,
+ 0x0093, 0xffe8, 0xf517, 0xebeb, 0xe4e4, 0xdf6a,
+ 0xda41, 0xda2b, 0xe8dc, 0xf7d6, 0xf84d, 0xf827,
+ 0xfc3f, 0xfbfc, 0xfbb4, 0xfd3b, 0xfc36, 0xfc3d,
+ 0x0054, 0x03f8, 0x02e6, 0x01b7, 0x0443, 0x0305,
+ 0xfe78, 0xfffa, 0x041b, 0x0668, 0x06e3, 0x011a,
+ 0xfba6, 0xffbc, 0x048d, 0x0277, 0xfeae, 0xff3d,
+ 0x031f, 0x02ed, 0x00fe, 0x05f7, 0x0ab1, 0x0969,
+ 0x0a24, 0x0a12, 0x0260, 0xfd38, 0x031f, 0x0be2,
+ 0x0f9a, 0x0eeb, 0x0864, 0xffbb, 0x026d, 0x0abe,
+ 0x05b0, 0xfad1, 0xf762, 0xf3f6, 0xf065, 0xf392,
+ 0xf862, 0xfccd, 0x0288, 0x03a3, 0xff1d, 0xfd58,
+ 0x019a, 0x057a, 0x0624, 0x09d7, 0x10d2, 0x1441,
+ 0x1222, 0x0a54, 0x025d, 0x0370, 0x067d, 0x027b,
+ 0xffba, 0x0143, 0x0108, 0x00de, 0x0215, 0x021c,
+ 0xff3f, 0xf56e, 0xeaee, 0xedab, 0xf671, 0xf7e3,
+ 0xfc8d, 0x0a4d, 0x0fbf, 0x0946, 0x0576, 0x04f1,
+ 0x017d, 0xfd7f, 0xf9a8, 0xf656, 0xf64b, 0xf697,
+ 0xf6b6, 0xfa2f, 0xfaf7, 0xf3c5, 0xed75, 0xeeda,
+ 0xf201, 0xf297, 0xf42f, 0xf813, 0xfdbd, 0x05c1,
+ 0x08fe, 0x0294, 0xfc6b, 0xf9e9, 0xf3f2, 0xee7d,
+ 0xee86, 0xf050, 0xf4ed, 0xfbc6, 0xfebc, 0xff5e,
+ 0xff85, 0xfb49, 0xf485, 0xefd7, 0xecf2, 0xec76,
+ 0xf16b, 0xf948, 0xfc47, 0xfb07, 0xfeb5, 0x0514,
+ 0x02b0, 0xfb8e, 0xfd43, 0x036c, 0x00fd, 0xfc04,
+ 0xfeab, 0x014e, 0x0099, 0x0405, 0x077b, 0x0711,
+ 0x077e, 0x04e0, 0x0061, 0x0362, 0x05f5, 0x0041,
+ 0xfa9f, 0xf6db, 0xf50b, 0xf9b0, 0xfcc2, 0xf87d,
+ 0xf2ec, 0xeb20, 0xe21c, 0xe073, 0xe4e1, 0xedc3,
+ 0xfd11, 0x05ef, 0xffdd, 0xf98a, 0xfa64, 0xfc4a,
+ 0x03e5, 0x10a2, 0x13e5, 0x10d5, 0x1391, 0x14d8,
+ 0x0f26, 0x0b8f, 0x0f46, 0x179f, 0x1c61, 0x1931,
+ 0x15b9, 0x127f, 0x09fd, 0x03a6, 0x036b, 0x026e,
+ 0xff32, 0xfd04, 0x01c8, 0x0c26, 0x0f60, 0x0e1f,
+ 0x11fa, 0x129f, 0x0f6f, 0x118b, 0x1256, 0x0bfd,
+ 0x039a, 0xfdd2, 0xfd12, 0xfcc8, 0xfb1c, 0xfe94,
+ 0x020b, 0xfe13, 0xfa21, 0xfc3d, 0x01a1, 0x03b9,
+ 0x0082, 0x00e0, 0x0432, 0x00f2, 0xfcd3, 0xfe49,
+ 0x019f, 0x03f6, 0x01af, 0xff12, 0x015b, 0xfddc,
+ 0xf7e8, 0x00a4, 0x0d2f, 0x0e51, 0x0dac, 0x0f2f,
+ 0x0917, 0xfca3, 0xf604, 0xf6a0, 0xf3fd, 0xf023,
+ 0xf275, 0xf186, 0xea15, 0xe8d0, 0xed9f, 0xee20,
+ 0xe8be, 0xe322, 0xe2f5, 0xe5ff, 0xe656, 0xe53f,
+ 0xe5c8, 0xe7b5, 0xea32, 0xed5a, 0xf345, 0xfa90,
+ 0xfde2, 0xfb5a, 0xf603, 0xf513, 0xf6c8, 0xefd9,
+ 0xec94, 0xfeff, 0x0ff2, 0x08ca, 0xfb84, 0xf5e9,
+ 0xf14f, 0xeda3, 0xee30, 0xf06b, 0xf211, 0xf438,
+ 0xf822, 0xfc61, 0x0081, 0x0421, 0x03b2, 0xff15,
+ 0xfa43, 0xf969, 0xfcf1, 0xfc5b, 0xf6cf, 0xf737,
+ 0xf9fa, 0xf8b9, 0xfb87, 0x0059, 0x0117, 0x038f,
+ 0x04af, 0xffb1, 0xfbac, 0xf733, 0xedcf, 0xe934,
+ 0xf084, 0xfa9d, 0xfcca, 0xfc7f, 0x002f, 0xfe01,
+ 0xf6c9, 0xf834, 0xfb65, 0xf8ec, 0xfa7b, 0xfda9,
+ 0xfc8f, 0xff99, 0x07b4, 0x0c7f, 0x0ab6, 0x0454,
+ 0xffac, 0xffc2, 0x022d, 0x05f2, 0x0801, 0x083a,
+ 0x0b8f, 0x0ce0, 0x0663, 0xfec2, 0xf9b9, 0xf723,
+ 0xf984, 0xfbfc, 0xf968, 0xf5da, 0xf32b, 0xf38c,
+ 0xfcf0, 0x07ba, 0x08ed, 0x09d1, 0x110a, 0x1213,
+ 0x0a20, 0x0327, 0x0167, 0x075d, 0x0e07, 0x07eb,
+ 0xfda2, 0xfb08, 0xf90b, 0xf9c8, 0x0295, 0x06ea,
+ 0x0264, 0xfe6c, 0xff1e, 0x04aa, 0x0b39, 0x0eb0,
+ 0x1015, 0x0ef9, 0x0ea8, 0x10a1, 0x0ad4, 0xfeb1,
+ 0xf85c, 0xf8a2, 0xfda2, 0x00f1, 0xfbca, 0xfc16,
+ 0x060b, 0x07f3, 0x046b, 0x062a, 0x0731, 0x0677,
+ 0x03bd, 0xfb3c, 0xf76f, 0xfdc4, 0x0212, 0xfed0,
+ 0xf913, 0xf592, 0xf66b, 0xfaee, 0x00f3, 0x048c,
+ 0x04ee, 0x06ba, 0x08e2, 0x08cf, 0x0a9d, 0x0c21,
+ 0x0540, 0xf82b, 0xf0f3, 0xf61c, 0xfd57, 0xfcc2,
+ 0xfd43, 0x0374, 0x0408, 0xfa5b, 0xed40, 0xea31,
+ 0xf8af, 0x0548, 0xff9e, 0xfa2e, 0x0148, 0x0645,
+ 0x04ba, 0x0656, 0x0ac5, 0x09e3, 0x008c, 0xf3cb,
+ 0xebaf, 0xec1c, 0xf376, 0xfc5d, 0x019f, 0x03d2,
+ 0x060e, 0x0548, 0xfced, 0xf39b, 0xf48b, 0xfda2,
+ 0x041a, 0x0394, 0xfe8f, 0xfac6, 0xfbc3, 0xfcc4,
+ 0xf9e4, 0xf7d3, 0xf834, 0xf588, 0xf1a2, 0xf5c7,
+ 0x0048, 0x0700, 0x09e0, 0x0d89, 0x0eea, 0x0aea,
+ 0x04f7, 0x0260, 0x0245, 0xfe5c, 0xf907, 0xf888,
+ 0xf86b, 0xf6f1, 0xf82a, 0xf7ae, 0xf29c, 0xec0f,
+ 0xe6b9, 0xe89b, 0xeedb, 0xf0ad, 0xf496, 0xfc18,
+ 0xfcf5, 0xfcf3, 0x016a, 0x01cb, 0xfff7, 0x0231,
+ 0x0630, 0x09cc, 0x0a2a, 0x0695, 0x045f, 0x067f,
+ 0x0a7d, 0x0a88, 0x0768, 0x0816, 0x0807, 0x05b0,
+ 0x0a7c, 0x0d41, 0x0539, 0x01fa, 0x06e1, 0x0afa,
+ 0x10fa, 0x15bb, 0x13e4, 0x1066, 0x0b56, 0x036a,
+ 0xfbe8, 0xf76f, 0xfa18, 0xff9a, 0x00b0, 0x043a,
+ 0x0b77, 0x0d77, 0x0cc1, 0x0b38, 0x037c, 0xf9b8,
+ 0xf550, 0xf637, 0xf99b, 0xfde1, 0x0170, 0x0059,
+ 0xfbec, 0xfb96, 0xfebf, 0x011f, 0x033e, 0x059e,
+ 0x0a29, 0x0d80, 0x09d3, 0x07f9, 0x0a90, 0x0702,
+ 0x039f, 0x059e, 0x02e2, 0xfddd, 0xfab3, 0xf8ab,
+ 0x009e, 0x0c23, 0x0d25, 0x0c40, 0x0d61, 0x0afd,
+ 0x0b63, 0x0d6f, 0x09eb, 0x05bc, 0x05ef, 0x09a4,
+ 0x0914, 0xfdf8, 0xf51d, 0xf81e, 0xfd7e, 0xff32,
+ 0xfcc4, 0xf9e0, 0xfd28, 0xfd4b, 0xf362, 0xedbe,
+ 0xf2f7, 0xfcee, 0x0781, 0x0e8b, 0x1443, 0x1b28,
+ 0x1c72, 0x17b1, 0x1180, 0x09d1, 0x0391, 0x01a2,
+ 0x0364, 0x07b6, 0x0a4e, 0x08d5, 0x04a2, 0x0068,
+ 0x00e2, 0x0241, 0xff58, 0x00a6, 0x0790, 0x0a5f,
+ 0x0a54, 0x0b00, 0x0a8a, 0x09ed, 0x0943, 0x0857,
+ 0x070d, 0x03f7, 0x03fe, 0x0978, 0x0c32, 0x082e,
+ 0x00df, 0xf9bd, 0xf333, 0xeb98, 0xe874, 0xee4e,
+ 0xf2d8, 0xf021, 0xef12, 0xf392, 0xf86d, 0xfbb6,
+ 0xffda, 0x039a, 0x0358, 0xff2e, 0xf655, 0xeba7,
+ 0xe96e, 0xed75, 0xee8c, 0xf211, 0xfae4, 0x0222,
+ 0x07ba, 0x0de1, 0x111b, 0x090c, 0xf6af, 0xee8a,
+ 0xf627, 0xfc70, 0x00ea, 0x060d, 0x0127, 0xf6e9,
+ 0xf0a1, 0xebe5, 0xe9cd, 0xead2, 0xed74, 0xf1c0,
+ 0xf44f, 0xfa52, 0x0732, 0x0cf0, 0x0afd, 0x0fb8,
+ 0x17cb, 0x1955, 0x15f7, 0x137d, 0x1623, 0x1cd7,
+ 0x2180, 0x1f84, 0x1a77, 0x19a9, 0x184d, 0x0f8e,
+ 0x0850, 0x0a07, 0x11ee, 0x1b8a, 0x1d94, 0x150e,
+ 0x0d19, 0x0c79, 0x1004, 0x12b0, 0x121c, 0x10ec,
+ 0x10d1, 0x10fa, 0x11c9, 0x129a, 0x1238, 0x0ec4,
+ 0x089d, 0x03ec, 0xff6e, 0xfd4a, 0x0778, 0x1778,
+ 0x1ec9, 0x1f57, 0x1fd7, 0x20e5, 0x1d4a, 0x1398,
+ 0x0ee4, 0x0e12, 0x06bf, 0x01fb, 0x0363, 0x02c5,
+ 0x0505, 0x077e, 0x028c, 0xff58, 0xfec7, 0xfa24,
+ 0xf6a3, 0xf666, 0xf638, 0xf52d, 0xf5b7, 0xfd2e,
+ 0x056c, 0x0712, 0x0a80, 0x1153, 0x1397, 0x119e,
+ 0x0d93, 0x0757, 0xfca0, 0xee2b, 0xe696, 0xe9ff,
+ 0xf48e, 0x01f5, 0x0645, 0x0214, 0x01cc, 0xff8c,
+ 0xf8f3, 0xf772, 0xf628, 0xf2d6, 0xf255, 0xf133,
+ 0xf138, 0xf474, 0xf716, 0xfb16, 0xfefe, 0xffba,
+ 0xffc7, 0xff8b, 0x0304, 0x08d8, 0x066f, 0x0269,
+ 0x064d, 0x090b, 0x05ba, 0x0121, 0x0058, 0x041f,
+ 0x039c, 0xfdfa, 0xfbe4, 0xfb3c, 0xf8c3, 0xf637,
+ 0xf2ed, 0xf147, 0xf3ca, 0xfb58, 0x0605, 0x0979,
+ 0x0421, 0xff95, 0xfb91, 0xf4af, 0xeed4, 0xefc4,
+ 0xf6c6, 0xf90f, 0xf662, 0xf857, 0xf95b, 0xf72f,
+ 0xf8e5, 0xf808, 0xf3a2, 0xf4ed, 0xf9dc, 0xffdf,
+ 0x0634, 0x0a05, 0x0e79, 0x11f4, 0x10c2, 0x0e9c,
+ 0x0c1e, 0x0b8d, 0x0d1d, 0x0709, 0xfd49, 0xfabd,
+ 0xf8cc, 0xf348, 0xf136, 0xf20f, 0xf085, 0xf190,
+ 0xfccf, 0x07b1, 0x06a3, 0x04c5, 0x0877, 0x0ab4,
+ 0x0c78, 0x0c39, 0x052e, 0xfaab, 0xf34e, 0xf8f7,
+ 0x0547, 0x04bf, 0x0047, 0x0494, 0x0757, 0x0970,
+ 0x0df4, 0x0dc2, 0x0afb, 0x0580, 0x0131, 0x0702,
+ 0x0990, 0x03ca, 0x023e, 0xfcf6, 0xf18d, 0xed75,
+ 0xedc3, 0xee12, 0xee46, 0xebe2, 0xeeae, 0xf74b,
+ 0xfbe4, 0xfc2c, 0xf97f, 0xf84d, 0xfe23, 0x0367,
+ 0x0387, 0x00f0, 0xfd36, 0xff30, 0x0314, 0xffaa,
+ 0xfe66, 0x0451, 0x0883, 0x0872, 0x04d8, 0x011c,
+ 0xfef1, 0xf893, 0xf3be, 0xf689, 0xf623, 0xf2fd,
+ 0xf707, 0xfc82, 0xfecb, 0x023c, 0x03ac, 0xff6d,
+ 0xfc10, 0xfe26, 0xffa1, 0xfc06, 0xf816, 0xf91e,
+ 0x0067, 0x0a5c, 0x0f6e, 0x0dca, 0x09fb, 0x06e9,
+ 0x045a, 0x0147, 0x01f4, 0x098f, 0x0eea, 0x0e16,
+ 0x0ee5, 0x0edf, 0x082a, 0x0102, 0xfe88, 0xff7d,
+ 0x0159, 0xff38, 0xf739, 0xedf1, 0xe871, 0xea16,
+ 0xf3f6, 0xfe59, 0xfed6, 0xfbe1, 0xfea4, 0xfd1a,
+ 0xf73e, 0xfb88, 0x00fb, 0xfc8c, 0xf92c, 0xf8c5,
+ 0xf79e, 0xfb26, 0x00c3, 0x0403, 0x0472, 0xff8d,
+ 0xfbb8, 0xfc94, 0xfb06, 0xf9a7, 0xf932, 0xf143,
+ 0xe5fb, 0xde36, 0xdaa5, 0xdef6, 0xe628, 0xe82d,
+ 0xeb0d, 0xf25a, 0xf67a, 0xf446, 0xf2a8, 0xf826,
+ 0xfc14, 0xf36f, 0xeb92, 0xf317, 0xfb59, 0xf95f,
+ 0xfc32, 0x04f6, 0x0197, 0xf7db, 0xf737, 0xf7b9,
+ 0xf7c2, 0x01a6, 0x0aeb, 0x0ab1, 0x0b42, 0x0db6,
+ 0x0f21, 0x132d, 0x161e, 0x13fc, 0x0d5c, 0x0578,
+ 0x053c, 0x0765, 0x009d, 0xfc0e, 0xff15, 0xfffa,
+ 0x01db, 0x00f7, 0xf69a, 0xf686, 0x04b5, 0x0944,
+ 0x0714, 0x0ebc, 0x162b, 0x10c3, 0x0779, 0x060b,
+ 0x0828, 0x050e, 0xfefa, 0xfab7, 0xfa9b, 0xfe4f,
+ 0xfdbf, 0xf92c, 0xfabc, 0xfdd8, 0xfca7, 0xffd6,
+ 0x07c8, 0x0a73, 0x05b6, 0x0123, 0x029a, 0x039a,
+ 0xfdaf, 0xf573, 0xf004, 0xf3a3, 0xfea9, 0x00d1,
+ 0xfb4a, 0xf9c2, 0xf7cd, 0xfa70, 0x061b, 0x090a,
+ 0x03bb, 0x02ea, 0x0013, 0xfe6f, 0x065e, 0x0acd,
+ 0x0501, 0x015a, 0x0702, 0x0da4, 0x0d44, 0x0d3e,
+ 0x0ea1, 0x0723, 0xfee8, 0xff3a, 0x0098, 0x02a7,
+ 0x05b6, 0x0723, 0x0bc9, 0x0be7, 0x01e2, 0xfd8b,
+ 0x0081, 0x00b4, 0xff17, 0xf98d, 0xf4b2, 0xfa1e,
+ 0xfd4b, 0xf49d, 0xebf3, 0xe9b1, 0xecf4, 0xf584,
+ 0xfd15, 0xfea7, 0xfd12, 0xfb6e, 0xfa09, 0xfb6f,
+ 0x0148, 0x0392, 0xfd8c, 0xfaff, 0x0411, 0x0e90,
+ 0x0d47, 0x0175, 0xf896, 0xf5ea, 0xf188, 0xef9a,
+ 0xf596, 0xfb50, 0xfdc5, 0xfe33, 0xf746, 0xeddc,
+ 0xf040, 0xfc7b, 0x0231, 0xfe80, 0xfc8f, 0xfb6f,
+ 0xf519, 0xf103, 0xf135, 0xf000, 0xf158, 0xf3a8,
+ 0xf051, 0xeffd, 0xf823, 0xfec8, 0xfffd, 0x00a6,
+ 0x0147, 0xffcd, 0x0038, 0x0700, 0x0c5d, 0x0718,
+ 0xfba2, 0xf28d, 0xf146, 0xf8cb, 0x015c, 0x0433,
+ 0x02dc, 0x029c, 0x074a, 0x08e0, 0xfede, 0xf697,
+ 0xfb58, 0x030c, 0x086a, 0x0c71, 0x07cc, 0xfa99,
+ 0xef97, 0xeb9d, 0xeb4a, 0xe897, 0xe44e, 0xe790,
+ 0xf3cf, 0xffce, 0x0475, 0x0327, 0x02da, 0x0251,
+ 0xfb9a, 0xf99e, 0x04ad, 0x0def, 0x0f75, 0x1009,
+ 0x0cd9, 0x0a47, 0x0d7e, 0x0b7d, 0x0862, 0x0fcd,
+ 0x15c2, 0x1532, 0x1619, 0x1437, 0x1229, 0x16ce,
+ 0x1837, 0x1385, 0x1163, 0x117d, 0x0f4a, 0x0766,
+ 0xff2e, 0x0276, 0x08d3, 0x059b, 0x03a6, 0x0684,
+ 0x034c, 0xffab, 0x00cf, 0xf9f8, 0xea9e, 0xe214,
+ 0xe36a, 0xe835, 0xecd8, 0xebb8, 0xe5a1, 0xe404,
+ 0xe5ad, 0xe7ed, 0xf074, 0xf776, 0xf638, 0xfa7f,
+ 0x0659, 0x0e44, 0x0f86, 0x0645, 0xf820, 0xf640,
+ 0xfb83, 0xfc8f, 0xffc4, 0x047a, 0x03f4, 0xff9d,
+ 0xf9a4, 0xf8a8, 0xfd6b, 0xfadc, 0xf467, 0xf8d0,
+ 0xffac, 0xfd51, 0xfb45, 0xfded, 0xf9d1, 0xf1c5,
+ 0xf5e9, 0xff8b, 0xfcbe, 0xf4d0, 0xf4d4, 0xf71f,
+ 0xf6aa, 0xf849, 0xfd56, 0xff66, 0xfb1f, 0xf89e,
+ 0xfb27, 0xfa4e, 0xf65b, 0xf352, 0xeda5, 0xe9f1,
+ 0xee90, 0xf49e, 0xf69b, 0xf7d7, 0xfc8d, 0x0270,
+ 0xfff2, 0xf64f, 0xf13e, 0xee1f, 0xe5fe, 0xe1a8,
+ 0xe8ce, 0xf3fc, 0xf9aa, 0xfa82, 0xfba2, 0xfcec,
+ 0xfd27, 0xfd25, 0xfb16, 0xf588, 0xef58, 0xee03,
+ 0xf325, 0xf789, 0xf6ec, 0xf45b, 0xeffd, 0xed3a,
+ 0xf177, 0xf8bd, 0xffc8, 0x037f, 0xfd22, 0xf2f9,
+ 0xf041, 0xf67d, 0x02b0, 0x0aa2, 0x0a4f, 0x0a73,
+ 0x0827, 0x0397, 0x0917, 0x0f25, 0x0c6e, 0x0ffb,
+ 0x18e1, 0x1932, 0x160c, 0x1595, 0x10eb, 0x057a,
+ 0xfdeb, 0xff9d, 0xff24, 0xfb1e, 0xfd5e, 0x0061,
+ 0x003b, 0x002f, 0xfae3, 0xf7e7, 0x0239, 0x0b35,
+ 0x08c7, 0x048d, 0x05a1, 0x0c22, 0x0f8e, 0x09c2,
+ 0x0408, 0x03f3, 0x062c, 0x0ac2, 0x108b, 0x12f8,
+ 0x0e48, 0x0656, 0x0414, 0x036a, 0xfeb0, 0xfcd6,
+ 0xfc6d, 0xf885, 0xf6ed, 0xf937, 0xfef0, 0x0792,
+ 0x0b8d, 0x0b2e, 0x0942, 0x00b2, 0xf779, 0xf66f,
+ 0xf869, 0xfa24, 0xfe2c, 0x0399, 0x099c, 0x1207,
+ 0x1a90, 0x198e, 0x0fc6, 0x0af2, 0x0904, 0x01e9,
+ 0xfe8a, 0x00e1, 0x0044, 0xfddb, 0xfbdc, 0xf94e,
+ 0xf601, 0xf072, 0xeb79, 0xe909, 0xe8f6, 0xef3e,
+ 0xf4c2, 0xf03a, 0xeca9, 0xf099, 0xf409, 0xf80a,
+ 0xfe9e, 0xff95, 0xf840, 0xf076, 0xed75, 0xebb5,
+ 0xea1e, 0xebe7, 0xecf9, 0xeaf4, 0xebf1, 0xf018,
+ 0xf339, 0xf539, 0xf60c, 0xf518, 0xf38e, 0xf675,
+ 0xfedc, 0x022e, 0xfe26, 0xfe2c, 0x04a0, 0x0d82,
+ 0x1597, 0x1471, 0x0828, 0xfa8a, 0xf504, 0xf81d,
+ 0xfba1, 0xfe70, 0x04a1, 0x060b, 0xffe7, 0xfc22,
+ 0xfc1e, 0xfdeb, 0xffa4, 0xfd6b, 0xfdff, 0x0192,
+ 0xfe25, 0xfc25, 0x01f5, 0x021b, 0xfb2a, 0xf87f,
+ 0xfd45, 0x0493, 0x06ce, 0x0426, 0x006e, 0xf885,
+ 0xefb2, 0xed57, 0xefda, 0xf567, 0xf984, 0xf65d,
+ 0xf4c0, 0xfd28, 0x08ba, 0x0fa1, 0x0fa3, 0x0b65,
+ 0x06f3, 0x01ff, 0x004b, 0x065e, 0x0c98, 0x0d65,
+ 0x0c85, 0x093e, 0x0377, 0xffd6, 0xfbd5, 0xf515,
+ 0xf1b1, 0xf1ec, 0xf101, 0xf34f, 0xfacc, 0xfea1,
+ 0xfed5, 0x042e, 0x0a93, 0x09a9, 0x0529, 0x0014,
+ 0xf977, 0xf606, 0xf3c1, 0xecc6, 0xecc2, 0xf967,
+ 0xff91, 0xfab9, 0xfae1, 0x0053, 0x030b, 0x034c,
+ 0x01aa, 0x015f, 0x048f, 0x0613, 0x05e6, 0x0748,
+ 0x089a, 0x0929, 0x0722, 0x003f, 0xf847, 0xf2fb,
+ 0xf1cd, 0xf59f, 0xfbce, 0x0103, 0x0321, 0x01b6,
+ 0xfe84, 0xf9e9, 0xf603, 0xf51b, 0xf3b6, 0xf26a,
+ 0xf3f8, 0xf46d, 0xf5d9, 0xfba8, 0xfcdc, 0xf5ec,
+ 0xf12c, 0xf59c, 0xff6e, 0x08a0, 0x106d, 0x116e,
+ 0x0664, 0xffab, 0x0903, 0x11ef, 0x1140, 0x0d5a,
+ 0x0817, 0x0604, 0x0947, 0x0b0a, 0x0973, 0x05e7,
+ 0x016f, 0xfc1f, 0xf2bc, 0xebd0, 0xeed2, 0xf3ad,
+ 0xf735, 0xfbd1, 0xfa84, 0xf521, 0xf522, 0xf8b7,
+ 0xfd9a, 0x0615, 0x0d6e, 0x0ca8, 0x06d6, 0x0406,
+ 0x028d, 0xfd75, 0xf94d, 0xfa54, 0xfd1b, 0xfb5e,
+ 0xf400, 0xf144, 0xf5b9, 0xf5cb, 0xf423, 0xf905,
+ 0xfd3b, 0xfdcf, 0xfea6, 0xfe56, 0xfbf6, 0xf636,
+ 0xf0f7, 0xf530, 0xfbcf, 0xf93b, 0xf2e4, 0xf0b1,
+ 0xf232, 0xf555, 0xfae8, 0x00e0, 0xff16, 0xfaa4,
+ 0x010e, 0x0aa3, 0x0ccd, 0x0b9b, 0x06fd, 0x023e,
+ 0x0477, 0x060b, 0x015d, 0xfc2f, 0xfa58, 0xfbfc,
+ 0xfc5d, 0xfd5d, 0x0906, 0x1658, 0x1779, 0x1398,
+ 0x0f64, 0x075e, 0x003a, 0xfda6, 0xfdc9, 0xfe34,
+ 0xfd4f, 0xfebe, 0x048d, 0x0ab8, 0x0eea, 0x107f,
+ 0x1023, 0x0e89, 0x08fe, 0x045d, 0x09fc, 0x126a,
+ 0x116f, 0x0cc2, 0x0aa7, 0x03dd, 0xf9eb, 0xf8ae,
+ 0xfe19, 0x029e, 0x07a1, 0x0b56, 0x0bd2, 0x0bed,
+ 0x0863, 0x0272, 0x0362, 0x09a4, 0x0ee3, 0x1290,
+ 0x14a9, 0x1751, 0x1ae2, 0x1c64, 0x1de3, 0x1fd5,
+ 0x1e02, 0x18d6, 0x140d, 0x11c1, 0x1004, 0x0c93,
+ 0x0a54, 0x0822, 0x01aa, 0xfa7c, 0xf53a, 0xf01c,
+ 0xeb68, 0xe8a2, 0xecf1, 0xf749, 0xfd38, 0x00a2,
+ 0x0672, 0x072b, 0x0480, 0x071e, 0x0d1c, 0x12e9,
+ 0x16c6, 0x1811, 0x1850, 0x15c2, 0x1095, 0x0baa,
+ 0x091f, 0x0ba7, 0x0b01, 0x00fe, 0xfc66, 0xffb2,
+ 0xfdba, 0xfc79, 0x0170, 0x02b9, 0xfef3, 0xfa2e,
+ 0xf4ab, 0xee86, 0xe8b3, 0xe80a, 0xec2f, 0xeff5,
+ 0xf774, 0x0198, 0x05a6, 0x0774, 0x09c1, 0x0450,
+ 0xf7fa, 0xf0fc, 0xf5d8, 0xfe11, 0x0171, 0x053c,
+ 0x0987, 0x08ba, 0x0730, 0x0484, 0xfd16, 0xf80d,
+ 0xf810, 0xfa85, 0xfe25, 0xfd77, 0xfaea, 0xfb61,
+ 0xf8f6, 0xf6c9, 0xfaf2, 0xfbc4, 0xf5d9, 0xf1cc,
+ 0xf326, 0xf829, 0xfb8b, 0xfc03, 0xfe0c, 0xfd73,
+ 0xf69e, 0xf0e6, 0xeeb9, 0xeea4, 0xf32f, 0xf8f9,
+ 0xf970, 0xf747, 0xfa3f, 0x017e, 0x03af, 0xfef2,
+ 0xfb1d, 0xfdae, 0x070c, 0x0ff9, 0x0e9c, 0x08ff,
+ 0x0b14, 0x0e6f, 0x0777, 0xfbb2, 0xf7e4, 0xfd60,
+ 0x0504, 0x0b0f, 0x0caa, 0x07ec, 0x036a, 0x0440,
+ 0x0768, 0x0c6e, 0x10fd, 0x0d6e, 0x02d7, 0xf953,
+ 0xf64f, 0xfaf6, 0x00f3, 0x030b, 0x03d5, 0x0285,
+ 0xfec2, 0xfe19, 0xfe89, 0xfc6a, 0xfd97, 0x0383,
+ 0x07c8, 0x0788, 0x04db, 0x036c, 0x0405, 0x04ca,
+ 0x05e2, 0x07cf, 0x0b73, 0x0fe2, 0x10c0, 0x115f,
+ 0x152f, 0x13f0, 0x0f70, 0x1178, 0x139e, 0x1195,
+ 0x116b, 0x10e3, 0x102c, 0x13f6, 0x15a4, 0x0fe1,
+ 0x07b2, 0x0334, 0x04f9, 0x07d0, 0x06a3, 0x0489,
+ 0x02ad, 0x0175, 0x03fc, 0x06e9, 0x06cb, 0x066f,
+ 0x070d, 0x0934, 0x0ce5, 0x0dde, 0x0acf, 0x0867,
+ 0x0842, 0x06a8, 0x058d, 0x0a4d, 0x0cd7, 0x0456,
+ 0xfa92, 0xf833, 0xf8d5, 0xf943, 0xfa38, 0xfe0e,
+ 0x037c, 0x03e3, 0x01a9, 0x0244, 0x01dc, 0xffb1,
+ 0xfc4f, 0xf5a3, 0xf1ef, 0xf3bb, 0xf43c, 0xf33f,
+ 0xf35a, 0xf4fe, 0xf961, 0xfdde, 0xfe8a, 0xf94f,
+ 0xf22c, 0xf413, 0xfcd7, 0x01fd, 0x061e, 0x0872,
+ 0x03dc, 0x0147, 0x0504, 0x0897, 0x0b40, 0x0c6f,
+ 0x0afa, 0x0979, 0x0836, 0x07bf, 0x077d, 0x03bc,
+ 0xff8b, 0x006f, 0x0447, 0x05db, 0x0480, 0x03c8,
+ 0x01d8, 0xfa9a, 0xf407, 0xf295, 0xf3cb, 0xf8b2,
+ 0xfcf8, 0xfa5c, 0xf80a, 0xfa6d, 0xfa91, 0xf651,
+ 0xf2e0, 0xf55b, 0xfba6, 0xfec5, 0x0057, 0x04a7,
+ 0x07d5, 0x0860, 0x0a64, 0x0e4e, 0x0fa0, 0x0adb,
+ 0x039e, 0xff66, 0xfd8b, 0xfd7c, 0x00a2, 0x03ab,
+ 0x0413, 0x05c4, 0x0a3f, 0x0e9e, 0x1428, 0x1a36,
+ 0x19ad, 0x148b, 0x10a6, 0x09cc, 0x0401, 0x0841,
+ 0x0d98, 0x0c63, 0x09c4, 0x0712, 0x0522, 0x03ef,
+ 0x00c0, 0x0062, 0x03b7, 0x04a5, 0x0354, 0xff4b,
+ 0xfa39, 0xf9ac, 0xf9e8, 0xfc2d, 0x04f4, 0x0887,
+ 0x03ca, 0x005d, 0xfc4c, 0xfabb, 0x0242, 0x06ad,
+ 0x00c4, 0xfab2, 0xfa55, 0xfd59, 0xffb3, 0x0168,
+ 0x0584, 0x081a, 0x0687, 0x047b, 0xfef4, 0xf622,
+ 0xf718, 0x0371, 0x0c4b, 0x0d40, 0x0d06, 0x0b31,
+ 0x0745, 0x07d7, 0x0cc5, 0x0ff4, 0x10a4, 0x0ee7,
+ 0x09fb, 0x058e, 0x0512, 0x0665, 0x0638, 0x063c,
+ 0x077e, 0x0638, 0x05ae, 0x0a73, 0x0c7d, 0x0964,
+ 0x0803, 0x0618, 0x02b3, 0x00b8, 0xfd1a, 0xfbdf,
+ 0xffc0, 0x0010, 0x0001, 0x05f1, 0x0925, 0x06ec,
+ 0x045c, 0xffe6, 0xf8ad, 0xf286, 0xf301, 0xf8ec,
+ 0xf990, 0xf580, 0xf5da, 0xf81a, 0xf99b, 0xfa3d,
+ 0xf57b, 0xefb4, 0xee38, 0xee17, 0xf1de, 0xf943,
+ 0xfdfa, 0x0173, 0x01aa, 0xfb93, 0xf83e, 0xf936,
+ 0xf84e, 0xf949, 0xfbb2, 0xf833, 0xf045, 0xe994,
+ 0xe8af, 0xee80, 0xf3b3, 0xf3c9, 0xf211, 0xf081,
+ 0xefe9, 0xf036, 0xee2c, 0xe9b5, 0xe775, 0xea9b,
+ 0xf10a, 0xf48e, 0xf23d, 0xeddb, 0xecab, 0xf0c0,
+ 0xf778, 0xfd38, 0x00e2, 0x0041, 0xfafc, 0xf6a7,
+ 0xf76c, 0xfe9e, 0x0935, 0x0b15, 0x01f7, 0xfc92,
+ 0xfe4f, 0xff53, 0xff51, 0xfbf2, 0xf3f3, 0xf045,
+ 0xf23a, 0xf64d, 0xfde0, 0x00c6, 0xfa8f, 0xf715,
+ 0xf89e, 0xfa66, 0xfde5, 0xfd2f, 0xf7dd, 0xf952,
+ 0xfd55, 0xfbd2, 0xfa76, 0xf9ee, 0xf9c2, 0xfe54,
+ 0x02dd, 0x049f, 0x06db, 0x043b, 0xfaff, 0xf2ed,
+ 0xf106, 0xf77e, 0xff7c, 0xfe7b, 0xfc8a, 0x017b,
+ 0x035c, 0x0294, 0x0692, 0x0671, 0xffaf, 0xfe51,
+ 0x0389, 0x09cb, 0x0f5b, 0x10d5, 0x0f09, 0x0d28,
+ 0x0852, 0x0100, 0xfc14, 0xfa75, 0xfae4, 0xfb14,
+ 0xfc5a, 0x0281, 0x0786, 0x0504, 0xfe89, 0xf86c,
+ 0xf742, 0xf7e0, 0xee7c, 0xe0a4, 0xdc86, 0xe2bd,
+ 0xee43, 0xf1f0, 0xe9a5, 0xea98, 0xf4dc, 0xf6af,
+ 0xfa1a, 0x0394, 0x07ff, 0x0d8a, 0x1311, 0x112a,
+ 0x11c1, 0x1332, 0x0ce1, 0x0630, 0x01e5, 0xfe65,
+ 0xfe48, 0xffb0, 0x0242, 0x0458, 0x01d4, 0xff0f,
+ 0xfdf9, 0xfb59, 0xf7f8, 0xf3d1, 0xf0bf, 0xf182,
+ 0xf3f3, 0xf64a, 0xf4af, 0xf089, 0xf42e, 0xfc2c,
+ 0xff48, 0xff5b, 0xfc47, 0xf736, 0xf1bf, 0xe96a,
+ 0xe855, 0xf180, 0xf693, 0xf97c, 0xfef5, 0xff78,
+ 0xfc57, 0xf671, 0xefbd, 0xefa6, 0xecc4, 0xe709,
+ 0xf194, 0x03e7, 0x098e, 0x0460, 0xfbf9, 0xf74d,
+ 0xf8f9, 0xfb65, 0xfdfd, 0x0158, 0x044e, 0x06fb,
+ 0x04c2, 0xfe68, 0xf89f, 0xf1e9, 0xef56, 0xf3af,
+ 0xf928, 0x02ee, 0x0c15, 0x06a3, 0xfae4, 0xf5ff,
+ 0xf67e, 0xf8d6, 0xf6f4, 0xefda, 0xed3f, 0xf21a,
+ 0xf90c, 0xfd83, 0xff1b, 0x00ad, 0x0186, 0x0368,
+ 0x0959, 0x0c66, 0x0a76, 0x0852, 0x04db, 0x049f,
+ 0x0aa3, 0x0ef8, 0x0fad, 0x0a0a, 0xfdfe, 0xfb44,
+ 0x00d6, 0x007d, 0x00fa, 0x049c, 0x0396, 0x05d3,
+ 0x0df5, 0x11ed, 0x0ef7, 0x05d0, 0xfaae, 0xf594,
+ 0xf91d, 0x02da, 0x09a7, 0x0862, 0x0779, 0x0762,
+ 0x0360, 0x011a, 0xff6d, 0xfca2, 0xffc5, 0x01da,
+ 0xfd7a, 0xfee5, 0x0434, 0x012c, 0xfa60, 0xf98c,
+ 0x0011, 0x0719, 0x0786, 0x0519, 0x03bc, 0x01e7,
+ 0x029d, 0x056a, 0x0555, 0x04d7, 0x0715, 0x0ac5,
+ 0x0ee7, 0x1223, 0x126b, 0x0cf1, 0x0389, 0xfdee,
+ 0xfe5e, 0x03c7, 0x0c32, 0x0fcb, 0x0f07, 0x0f8e,
+ 0x0c3d, 0x0462, 0xfc4a, 0xf392, 0xf113, 0xf7ba,
+ 0x0204, 0x0f31, 0x1233, 0x0107, 0xf0ee, 0xef2a,
+ 0xf381, 0xfc05, 0x05e9, 0x0e7c, 0x1619, 0x1533,
+ 0x0de5, 0x0787, 0xfc83, 0xf050, 0xed19, 0xf070,
+ 0xf559, 0xf615, 0xf1de, 0xf071, 0xf042, 0xeff7,
+ 0xf53d, 0xfb11, 0xfcaf, 0xfd5d, 0xfe64, 0xfff8,
+ 0xfd2b, 0xf5c4, 0xf3d8, 0xf4c7, 0xf345, 0xf367,
+ 0xf1db, 0xf239, 0xfbba, 0x00c3, 0xfa4e, 0xf2ea,
+ 0xf094, 0xf4a3, 0xf76b, 0xf43c, 0xf6cf, 0xfd16,
+ 0xfcae, 0xfad2, 0xf82f, 0xf4e5, 0xf754, 0xfbcc,
+ 0x0278, 0x088f, 0x009c, 0xf698, 0xf765, 0xf29d,
+ 0xeb58, 0xf143, 0xf881, 0xfa46, 0xfe74, 0x03da,
+ 0x09f6, 0x0f29, 0x0c04, 0x0299, 0xfad7, 0xfb57,
+ 0x043e, 0x0837, 0x0428, 0x04f4, 0x0870, 0x093f,
+ 0x0fda, 0x1763, 0x1500, 0x0f96, 0x0b7f, 0x07b4,
+ 0x09d3, 0x0e47, 0x0e2e, 0x0c0d, 0x0511, 0xfb92,
+ 0xfeba, 0x0b6b, 0x119d, 0x11f2, 0x0fe7, 0x06f5,
+ 0xfb38, 0xf587, 0xf454, 0xf25a, 0xef8a, 0xea87,
+ 0xe2dc, 0xe21e, 0xec03, 0xf404, 0xf57e, 0xf6e4,
+ 0xf574, 0xf00e, 0xeed1, 0xf042, 0xf01c, 0xf334,
+ 0xf86f, 0xfb1c, 0xfa49, 0xf0a0, 0xe416, 0xe297,
+ 0xe472, 0xe77e, 0xf860, 0x06a0, 0x03e2, 0x0194,
+ 0xff4b, 0xf4e3, 0xee9f, 0xeec6, 0xf4db, 0x00c2,
+ 0x01c3, 0xf970, 0xf760, 0xfb2c, 0x0653, 0x0d15,
+ 0xfc56, 0xe6b2, 0xe034, 0xe8b0, 0x03fa, 0x2020,
+ 0x2593, 0x178b, 0xf761, 0xd18b, 0xc238, 0xcd7e,
+ 0xeded, 0x1670, 0x2afb, 0x294f, 0x1b8f, 0x0158,
+ 0xe696, 0xd1fa, 0xc2fb, 0xc4c6, 0xd504, 0xe85b,
+ 0xf658, 0xefe4, 0xdb0d, 0xccfc, 0xcbe6, 0xdf3e,
+ 0x041f, 0x23c8, 0x32a2, 0x2cc5, 0x1642, 0x0078,
+ 0xef14, 0xe463, 0xedf2, 0x09df, 0x2afa, 0x3e2a,
+ 0x3520, 0x2470, 0x1e24, 0x12f1, 0x002d, 0xf09d,
+ 0xe235, 0xdb41, 0xe721, 0xfdf0, 0x11c0, 0x1c9b,
+ 0x1a6a, 0x0e52, 0x0461, 0xfc70, 0xf1ee, 0xf0c9,
+ 0xf77b, 0xf712, 0xf8a1, 0xfcd2, 0xf338, 0xe8f1,
+ 0xe99c, 0xe918, 0xe719, 0xdfc3, 0xcfa1, 0xccf6,
+ 0xd9cf, 0xdca4, 0xce7a, 0xb9cd, 0xaf7c, 0xb633,
+ 0xbe64, 0xc5bb, 0xd685, 0xe8c3, 0xf46e, 0xfb22,
+ 0xfe5c, 0x00b6, 0xff01, 0xfccc, 0x051b, 0x0b24,
+ 0x012a, 0xf2e0, 0xe940, 0xe99b, 0xf4a8, 0xf696,
+ 0xeb11, 0xe4f4, 0xe888, 0xf607, 0x0e62, 0x21dd,
+ 0x2237, 0x0a57, 0xe29c, 0xcb7a, 0xd242, 0xe164,
+ 0xf20c, 0x07ea, 0x155e, 0x137a, 0x0e40, 0x0e11,
+ 0x0947, 0xf8a1, 0xee6e, 0xf66b, 0x0401, 0x1626,
+ 0x2c57, 0x35fd, 0x3328, 0x29ac, 0x174a, 0x0b72,
+ 0x1137, 0x1f25, 0x30ec, 0x3d3d, 0x39ab, 0x3168,
+ 0x28a3, 0x177f, 0x0852, 0x063f, 0x0cd2, 0x19e1,
+ 0x2ad0, 0x339a, 0x2c94, 0x1cb9, 0x12b6, 0x15df,
+ 0x1e24, 0x22c0, 0x25d7, 0x2506, 0x1ac7, 0x0d45,
+ 0xffa0, 0xf3fd, 0xf4b4, 0xfbe5, 0x03f1, 0x136b,
+ 0x1586, 0x0029, 0xf09c, 0xea64, 0xe772, 0xf04a,
+ 0xf1d8, 0xe8b0, 0xe7bc, 0xe13c, 0xd9c6, 0xe440,
+ 0xed60, 0xf1dc, 0xf578, 0xe990, 0xdfde, 0xe08b,
+ 0xdbf1, 0xdd2d, 0xdd0b, 0xd436, 0xdabc, 0xe11b,
+ 0xe18c, 0xf744, 0x0017, 0xeb4b, 0xe21c, 0xd808,
+ 0xc141, 0xbb5e, 0xbd72, 0xc483, 0xde0e, 0xf1b4,
+ 0xfcc8, 0x09eb, 0x0498, 0x0299, 0x2436, 0x3f1a,
+ 0x376c, 0x3034, 0x31d6, 0x2a0b, 0x260b, 0x2f31,
+ 0x2cc1, 0x1920, 0x102b, 0x188d, 0x2307, 0x2ebb,
+ 0x339d, 0x2175, 0x1054, 0x19e2, 0x23dc, 0x2718,
+ 0x4158, 0x5fe4, 0x613e, 0x57cb, 0x5360, 0x4cfb,
+ 0x490e, 0x4942, 0x45b5, 0x3bcf, 0x3594, 0x401e,
+ 0x4f9f, 0x566f, 0x5abf, 0x54ba, 0x4869, 0x4ce2,
+ 0x53c6, 0x5639, 0x6450, 0x64ff, 0x5264, 0x4cc6,
+ 0x49c4, 0x4027, 0x3e43, 0x37be, 0x3077, 0x35a1,
+ 0x320f, 0x2a1f, 0x3583, 0x43fa, 0x4277, 0x35f6,
+ 0x28ac, 0x2227, 0x1e95, 0x1d15, 0x2603, 0x33a6,
+ 0x3c79, 0x41c7, 0x426a, 0x3c76, 0x3350, 0x2a63,
+ 0x231e, 0x1bed, 0x1256, 0x0945, 0x088e, 0x1094,
+ 0x1606, 0x13d4, 0x0e9e, 0x07ae, 0x02e8, 0x041c,
+ 0x0203, 0xf97d, 0xf8c9, 0x002a, 0xfcab, 0xef16,
+ 0xe5d0, 0xdc85, 0xd832, 0xe59f, 0xef4f, 0xed59,
+ 0xf35c, 0xf085, 0xdf49, 0xdc59, 0xdadc, 0xd120,
+ 0xd564, 0xd91c, 0xd4a0, 0xd916, 0xd4e0, 0xc7c0,
+ 0xca97, 0xd02c, 0xcfb7, 0xd1b9, 0xcc43, 0xc190,
+ 0xbbfc, 0xb66d, 0xae2d, 0xa1f1, 0x9819, 0x9de8,
+ 0xae1c, 0xbe53, 0xc4f1, 0xbba4, 0xb55a, 0xb218,
+ 0x9bdb, 0x8d64, 0x9973, 0x9962, 0x8c8e, 0x8f1c,
+ 0x90a0, 0x8c72, 0x941d, 0x9989, 0x988f, 0xa07b,
+ 0xa526, 0xa264, 0xa7b6, 0xac4f, 0xabc0, 0xb3ba,
+ 0xba65, 0xb67b, 0xb5af, 0xb53a, 0xaf18, 0xb80f,
+ 0xcb14, 0xc066, 0xa6e5, 0xac92, 0xb746, 0xad44,
+ 0xb5ec, 0xc84d, 0xbe90, 0xb884, 0xc3ff, 0xc2a1,
+ 0xbdf1, 0xc72e, 0xd719, 0xe088, 0xdba0, 0xdb68,
+ 0xdeb1, 0xd208, 0xd348, 0xe09e, 0xd7aa, 0xdc6a,
+ 0xf250, 0xf0c1, 0xf6b9, 0x0535, 0xf59b, 0xea3b,
+ 0xf4bb, 0xf98c, 0xfb5e, 0xfe44, 0x00f9, 0xfcd1,
+ 0xee67, 0xf5dc, 0x046e, 0xf207, 0xe9cc, 0xf966,
+ 0xf206, 0xe5a7, 0xe808, 0xdef8, 0xd1c7, 0xda37,
+ 0xf25a, 0xfab8, 0xf15b, 0xf67d, 0xf8c9, 0xe74a,
+ 0xec88, 0x01a5, 0x046c, 0x0507, 0x029a, 0xf8ac,
+ 0xf9a3, 0xfe69, 0x0313, 0x09fb, 0x0bd8, 0x0f96,
+ 0x0bfc, 0xff2f, 0x028c, 0x07c5, 0x006c, 0xf95f,
+ 0xed72, 0xeecf, 0x05b9, 0x0b08, 0x0249, 0xfdfe,
+ 0xf361, 0xeb50, 0xe819, 0xeda8, 0x0445, 0x0844,
+ 0xff0e, 0x111b, 0x1dbc, 0x1248, 0x0e5d, 0x1163,
+ 0x16ed, 0x21f5, 0x2bbc, 0x31c9, 0x2df4, 0x2b7c,
+ 0x2dec, 0x2376, 0x1feb, 0x1bda, 0x00fc, 0x0687,
+ 0x1d75, 0x07fa, 0x0572, 0x1e67, 0x0e91, 0x050c,
+ 0x16dd, 0x13e5, 0x12bc, 0x195a, 0x14f7, 0x19e0,
+ 0x1cc5, 0x18ce, 0x23f3, 0x2cdf, 0x2e94, 0x35d5,
+ 0x37e5, 0x3145, 0x2208, 0x1800, 0x1fb2, 0x19a9,
+ 0x0f75, 0x244d, 0x2b74, 0x146b, 0x0cf2, 0x0715,
+ 0xf4f7, 0xf2f5, 0xf260, 0xe84c, 0xf117, 0x0199,
+ 0x046c, 0x0d5b, 0x1646, 0x07a8, 0xff48, 0x0b53,
+ 0x0d1b, 0x10c6, 0x1c3c, 0x10f6, 0x0f6a, 0x25f1,
+ 0x1a60, 0x06a4, 0x1db7, 0x3234, 0x3813, 0x46e2,
+ 0x40e3, 0x2fcc, 0x36b9, 0x3db3, 0x41d9, 0x52cf,
+ 0x527f, 0x46bf, 0x4ef6, 0x486a, 0x2bdc, 0x2e54,
+ 0x3d59, 0x3372, 0x2eac, 0x2d5a, 0x23ce, 0x3319,
+ 0x4222, 0x362b, 0x3bcb, 0x4a65, 0x4ac4, 0x5678,
+ 0x546f, 0x4124, 0x49e3, 0x4ded, 0x3fef, 0x4133,
+ 0x2dab, 0x155f, 0x2e3d, 0x3c71, 0x3209, 0x45b3,
+ 0x4894, 0x2cb7, 0x3138, 0x39ad, 0x2a5d, 0x2c74,
+ 0x2eec, 0x1f32, 0x2881, 0x427d, 0x3ca9, 0x247a,
+ 0x24f8, 0x368b, 0x2f27, 0x1abc, 0x2328, 0x2714,
+ 0x0f6e, 0x1536, 0x27a3, 0x1710, 0x1e85, 0x3c70,
+ 0x309f, 0x31d7, 0x48b6, 0x2b02, 0x1518, 0x2e13,
+ 0x2776, 0x1c38, 0x394d, 0x4405, 0x3752, 0x306e,
+ 0x286e, 0x2c89, 0x3769, 0x351b, 0x2adb, 0x18c0,
+ 0x1815, 0x2bf7, 0x1a8a, 0xfb77, 0x07f0, 0x1a37,
+ 0x2102, 0x2a3a, 0x2109, 0x187d, 0x1c5a, 0x0d33,
+ 0x01ce, 0x114c, 0x2430, 0x301a, 0x25ad, 0x11cd,
+ 0x2255, 0x35ad, 0x2338, 0x153e, 0x1224, 0xffb4,
+ 0xfc51, 0x154d, 0x255e, 0x1faf, 0x1a24, 0x1e6b,
+ 0x19b0, 0x0949, 0x0acc, 0x1dd2, 0x2566, 0x1c91,
+ 0x08ed, 0xf7bd, 0xfb54, 0x04ac, 0x09f0, 0x182a,
+ 0x1665, 0xfc93, 0xf7fe, 0x023f, 0x00bf, 0x086b,
+ 0x0632, 0xeb2e, 0xef41, 0x05f9, 0xff6c, 0x0641,
+ 0x1baa, 0x0c1d, 0xfb7d, 0xfe52, 0xebf4, 0xdc7b,
+ 0xea68, 0xf0d2, 0xe7ec, 0xe3a5, 0xe407, 0xe7a2,
+ 0xe867, 0xdfcf, 0xdc33, 0xe7ce, 0xec6e, 0xd47d,
+ 0xbee8, 0xd4c9, 0xf9a8, 0xfba1, 0xe764, 0xe69e,
+ 0xf94c, 0xfca4, 0xef99, 0xf4ee, 0x0a10, 0x13ad,
+ 0x0f84, 0x043f, 0x0105, 0x0696, 0xf77d, 0xeac7,
+ 0x01c5, 0x0626, 0xef7e, 0xff54, 0x121e, 0xf824,
+ 0xefd3, 0xfcbf, 0xe6a6, 0xd79f, 0xe967, 0xe61b,
+ 0xdc78, 0xe4d0, 0xdb1d, 0xd788, 0xe756, 0xd41b,
+ 0xc421, 0xda60, 0xd057, 0xbec7, 0xd6df, 0xd33e,
+ 0xc047, 0xd518, 0xd124, 0xb133, 0xb532, 0xb722,
+ 0x9d53, 0x97ed, 0xaacb, 0xb613, 0xbaab, 0xc96b,
+ 0xcefc, 0xc092, 0xca0b, 0xd97c, 0xc18d, 0xc4ba,
+ 0xeb6c, 0xe062, 0xcea8, 0xe64e, 0xe816, 0xdca9,
+ 0xe7aa, 0xe409, 0xd21b, 0xd02d, 0xdc4a, 0xea2c,
+ 0xee1e, 0xf00e, 0xf100, 0xe1ce, 0xd997, 0xdfbe,
+ 0xdd2b, 0xe5d6, 0xf67d, 0xf043, 0xf44a, 0x0ac8,
+ 0x00f5, 0xebdd, 0xfe97, 0x0e3b, 0xeea0, 0xdd52,
+ 0xf702, 0xf502, 0xe198, 0xf8dd, 0x071e, 0xf0ef,
+ 0xe851, 0xdee5, 0xcb50, 0xd119, 0xe041, 0xe3cc,
+ 0xde9c, 0xd2ea, 0xd3d9, 0xd8a1, 0xd34c, 0xdf10,
+ 0xf38f, 0xf1ef, 0xde9e, 0xcd7c, 0xdb23, 0xf2b0,
+ 0xeaa5, 0xecd1, 0xffb9, 0xee27, 0xda76, 0xdf6f,
+ 0xdd18, 0xddb1, 0xd9e7, 0xc66e, 0xc7e9, 0xd094,
+ 0xc99d, 0xcc65, 0xd4d6, 0xd67a, 0xce18, 0xb858,
+ 0xb043, 0xb325, 0xaf57, 0xb867, 0xb95e, 0xa792,
+ 0xa9de, 0xab4b, 0xa2b9, 0xb181, 0xbd7c, 0xc974,
+ 0xe6ac, 0xda9a, 0xbf4d, 0xe012, 0xfb1e, 0xdaf4,
+ 0xc3cd, 0xcf83, 0xd1bb, 0xc3f1, 0xc509, 0xd0b1,
+ 0xca3a, 0xbf63, 0xc8d4, 0xd7e7, 0xd9f0, 0xd039,
+ 0xc685, 0xbf31, 0xb59d, 0xbaf3, 0xccb2, 0xceaf,
+ 0xcf97, 0xdac6, 0xdb48, 0xd8d9, 0xdcb8, 0xe352,
+ 0xe717, 0xd82e, 0xd7cc, 0xf1cb, 0xe3dd, 0xcf1a,
+ 0xecd9, 0xee7e, 0xd3a6, 0xe7bf, 0xf94e, 0xeaf9,
+ 0xe68e, 0xe4d9, 0xe890, 0xf1bc, 0xea5a, 0xf036,
+ 0x00f8, 0xf741, 0xf2d7, 0x025c, 0x05cd, 0x03f7,
+ 0x0d36, 0x1a03, 0x1787, 0x05af, 0x0711, 0x14ca,
+ 0x0f18, 0x140d, 0x2eed, 0x3407, 0x215e, 0x16bd,
+ 0x1a23, 0x19cf, 0x104d, 0x0b46, 0x0255, 0xf83e,
+ 0x0272, 0xfc6b, 0xe22d, 0xef37, 0xfe2b, 0xea2e,
+ 0xed9c, 0xf133, 0xd510, 0xdb43, 0xf0cf, 0xe6a0,
+ 0xf07b, 0xfe9f, 0xdd37, 0xc94f, 0xe3eb, 0xf3e3,
+ 0xeafa, 0xe4b5, 0xe329, 0xdee0, 0xe20f, 0xf44d,
+ 0xfed6, 0xf4ff, 0xed92, 0xe6f7, 0xd25e, 0xc9dc,
+ 0xd39e, 0xcf77, 0xcb52, 0xe1c1, 0xf418, 0xf0f4,
+ 0xee38, 0xe5ac, 0xd4d2, 0xdb5c, 0xeeb5, 0xe76b,
+ 0xd3ed, 0xcf40, 0xcf88, 0xd1a9, 0xd887, 0xd9a1,
+ 0xdefb, 0xe9f2, 0xde55, 0xd434, 0xeb24, 0xf11f,
+ 0xe110, 0xf163, 0xfa60, 0xddca, 0xd75d, 0xdd03,
+ 0xcefe, 0xd2df, 0xdfed, 0xe547, 0xfbf9, 0x04b2,
+ 0xf36b, 0xf2fb, 0xf006, 0xe23a, 0xee78, 0xf920,
+ 0xeb1d, 0xe3da, 0xe62a, 0xe98a, 0xefab, 0xf5a2,
+ 0x0818, 0x2170, 0x23e0, 0x1185, 0x073b, 0x1773,
+ 0x2ab8, 0x21eb, 0x1b3b, 0x2548, 0x1bd1, 0x1599,
+ 0x2946, 0x27ed, 0x1800, 0x2196, 0x2e73, 0x30d5,
+ 0x388e, 0x4502, 0x50d8, 0x4b6f, 0x2d42, 0x1628,
+ 0x19b0, 0x2516, 0x1f4e, 0x0cd7, 0x0ed6, 0x182c,
+ 0x055d, 0xfe2a, 0x14e8, 0x157e, 0x1248, 0x2c03,
+ 0x30fc, 0x2035, 0x226b, 0x2304, 0x1c94, 0x15dc,
+ 0xfb79, 0xf7b2, 0x1e83, 0x2232, 0x0693, 0x0ba1,
+ 0x1041, 0x015e, 0xfe96, 0xf109, 0xde0b, 0xf0e3,
+ 0x0399, 0xf00a, 0xde7e, 0xea5c, 0x0136, 0x09d8,
+ 0x0172, 0xfb85, 0xfd71, 0x0abd, 0x255d, 0x2850,
+ 0x08de, 0xecbc, 0xdcf7, 0xe215, 0x0091, 0x08a0,
+ 0xf9c4, 0xfae1, 0xf38d, 0xe9fa, 0x0413, 0x15d1,
+ 0x0881, 0x04f8, 0x06a1, 0xffee, 0xf4f7, 0xdf91,
+ 0xdc1f, 0xf721, 0x087d, 0x0bff, 0x0c4b, 0x02a2,
+ 0xff92, 0xfd2b, 0xefaa, 0xf569, 0x02ee, 0xfefa,
+ 0x094a, 0x1f2e, 0x28bb, 0x3775, 0x3e53, 0x3112,
+ 0x2bdb, 0x211c, 0x103a, 0x2567, 0x3d71, 0x25f8,
+ 0x0edd, 0x199d, 0x2a85, 0x3cb1, 0x54fa, 0x631b,
+ 0x5d6f, 0x4a69, 0x34f6, 0x1d57, 0x06cd, 0x07a7,
+ 0x19c1, 0x1e8e, 0x1e04, 0x1dbc, 0x119c, 0x18ce,
+ 0x34d6, 0x3397, 0x292c, 0x2bc3, 0x120a, 0xf9c7,
+ 0x08bf, 0x0bd0, 0x0893, 0x1fc9, 0x2723, 0x1e89,
+ 0x1fef, 0x1ae9, 0x1c30, 0x1d2c, 0x0b79, 0x0f19,
+ 0x0daa, 0xe7a3, 0xf099, 0x17af, 0x069b, 0xfe38,
+ 0x1d6d, 0x177b, 0xfbb9, 0xfb8f, 0x0b83, 0x17ed,
+ 0x0dfe, 0xfb45, 0xfe36, 0x0754, 0x0a41, 0x0c8f,
+ 0x0a1a, 0x0a79, 0x0582, 0xf15c, 0xed0e, 0xfe71,
+ 0x07ee, 0x06f6, 0x0941, 0x0e87, 0x07f0, 0x0006,
+ 0x10ac, 0x1bf9, 0x1756, 0x2743, 0x222d, 0xf937,
+ 0xfebf, 0x1f8d, 0x1c06, 0x12a3, 0x0a8d, 0x0115,
+ 0x0dbd, 0x1196, 0x0e32, 0x1eb9, 0x1497, 0xf509,
+ 0xf127, 0xef9a, 0xeeb6, 0x01c2, 0x0b42, 0x0e23,
+ 0x128a, 0x070a, 0x05e6, 0x147d, 0x0f33, 0xfe94,
+ 0xf60e, 0xf6f1, 0x0009, 0x0549, 0x0d3b, 0x17ac,
+ 0x0e22, 0x0921, 0x19f5, 0x2043, 0x2121, 0x2663,
+ 0x24d3, 0x34b2, 0x49d7, 0x37f9, 0x1548, 0xfce0,
+ 0xf5c4, 0x0fa5, 0x28a9, 0x2527, 0x1a11, 0xf96c,
+ 0xcf01, 0xd582, 0xf85f, 0x0b78, 0x1a95, 0x2586,
+ 0x2101, 0x101f, 0x0317, 0x1102, 0x1e04, 0x1445,
+ 0x1e38, 0x28aa, 0x0798, 0xee40, 0xf532, 0xfbcf,
+ 0x018e, 0xfe80, 0xfd69, 0x1e0b, 0x3a8d, 0x3ded,
+ 0x4130, 0x2a77, 0x062f, 0x0827, 0x0d18, 0x01fc,
+ 0x0ef5, 0x1efa, 0x189e, 0x101f, 0x065a, 0x04f1,
+ 0x16b5, 0x1aed, 0x107c, 0x1745, 0x1d29, 0x1033,
+ 0x089b, 0x06f2, 0xffa8, 0x0457, 0x14eb, 0x1d7d,
+ 0x21df, 0x2792, 0x29c7, 0x2669, 0x17a7, 0x0679,
+ 0x002d, 0xff02, 0x0a3a, 0x1609, 0xfbfc, 0xe1c8,
+ 0xf48f, 0x067e, 0x12d0, 0x33a0, 0x310a, 0x0b55,
+ 0x0a74, 0x15b1, 0x0b7b, 0x12af, 0x223f, 0x2089,
+ 0x2298, 0x1e77, 0x0810, 0xfed2, 0x03ea, 0x084f,
+ 0x1125, 0x0ef2, 0x03ec, 0x0a37, 0x0ec0, 0x0c18,
+ 0x1afe, 0x1f74, 0x0fd8, 0x0eac, 0x06f4, 0xecb3,
+ 0xe7dd, 0xf838, 0x069b, 0x0380, 0xee18, 0xf295,
+ 0x0ebf, 0x0f2e, 0x067d, 0x0663, 0xfade, 0xf63c,
+ 0xfab0, 0x0190, 0x1676, 0x1865, 0x100b, 0x2797,
+ 0x2bba, 0x1422, 0x1eef, 0x2bf0, 0x191a, 0x0640,
+ 0x017d, 0x13a9, 0x2156, 0x054a, 0xea16, 0xe7bf,
+ 0xeef4, 0x01cc, 0xfae4, 0xe0a4, 0xf12e, 0x0a86,
+ 0x0da1, 0x13f8, 0x09b4, 0x06dd, 0x20b4, 0x15ed,
+ 0x0978, 0x3129, 0x3ed1, 0x3273, 0x38e7, 0x2015,
+ 0x0744, 0x1a98, 0x0f3a, 0xfd4e, 0x278f, 0x3722,
+ 0x11ed, 0x1058, 0x1dc3, 0x0ad7, 0x0332, 0x1096,
+ 0x110a, 0x093f, 0x0a05, 0x12a7, 0x10f8, 0xf813,
+ 0xe333, 0xe8e4, 0xf522, 0xf673, 0xf13f, 0xeb88,
+ 0xe0eb, 0xd874, 0xec57, 0x011d, 0xee3b, 0xe9f4,
+ 0x0815, 0x0a35, 0x01be, 0x03c0, 0xec99, 0xe05e,
+ 0xec48, 0xe921, 0xfb7b, 0x1a72, 0x0f7d, 0x0432,
+ 0x006e, 0xe858, 0xe81b, 0xfc61, 0x02f4, 0x033a,
+ 0xf16d, 0xe650, 0xf6cd, 0xf167, 0xec88, 0x0576,
+ 0x079e, 0x0572, 0x11f7, 0x02c7, 0xfe8c, 0x15d8,
+ 0x154f, 0x1186, 0x08f5, 0xdb68, 0xc57a, 0xdb29,
+ 0xe1de, 0xe262, 0xedd9, 0xe4b7, 0xdad6, 0xf830,
+ 0x178a, 0x143b, 0x0d49, 0x0c4a, 0x0367, 0x03a4,
+ 0x01ff, 0xf668, 0xfc7c, 0xf29e, 0xce85, 0xd1ad,
+ 0xe255, 0xd7fb, 0xe1bf, 0xef4b, 0xdbdb, 0xcd9f,
+ 0xd2d0, 0xdde9, 0xdf23, 0xceb2, 0xd2a5, 0xe793,
+ 0xef9b, 0x024f, 0x0aa1, 0xfac2, 0x06ee, 0x11fd,
+ 0x021a, 0x03ef, 0xfa2d, 0xe0f6, 0xe7af, 0xe814,
+ 0xe443, 0xfe75, 0x02e6, 0xfb59, 0x0c2d, 0x0a7d,
+ 0x0019, 0xfe26, 0xeac3, 0xe6c3, 0xefd2, 0xe309,
+ 0xe987, 0xfc22, 0xf4bc, 0xf826, 0xffed, 0xf385,
+ 0xf361, 0xf1b3, 0xe3b8, 0xec63, 0xf1be, 0xe3d7,
+ 0xe829, 0xf28c, 0xf7cb, 0x06fc, 0x073b, 0xfaa2,
+ 0xfb1b, 0xf131, 0xdfb1, 0xe3da, 0xea69, 0xea60,
+ 0xeb51, 0xd9b2, 0xbb04, 0xa8a7, 0xaaca, 0xc094,
+ 0xcdf1, 0xcd95, 0xe07e, 0xe7b8, 0xcb93, 0xc6f6,
+ 0xd7a7, 0xd529, 0xdae7, 0xe710, 0xde0d, 0xd419,
+ 0xd270, 0xda1e, 0xeb12, 0xeaa0, 0xe105, 0xdcc9,
+ 0xd200, 0xdba6, 0xf07c, 0xddf6, 0xc96e, 0xcbe9,
+ 0xc008, 0xc195, 0xd74c, 0xcd10, 0xc075, 0xd030,
+ 0xd073, 0xc23b, 0xc026, 0xbdbc, 0xbe70, 0xce62,
+ 0xe074, 0xe635, 0xd76c, 0xc26d, 0xc972, 0xe3e8,
+ 0xeaea, 0xe145, 0xdb75, 0xdc30, 0xeb12, 0xfa4f,
+ 0xede4, 0xe1cf, 0xed04, 0xeb51, 0xe1b5, 0xeb52,
+ 0xe7d8, 0xd35a, 0xcd4c, 0xc2a0, 0xb579, 0xc86c,
+ 0xd844, 0xc448, 0xb625, 0xbbd7, 0xc3ab, 0xe060,
+ 0x06d0, 0x05cf, 0xe5e7, 0xcacf, 0xbeb6, 0xc824,
+ 0xce45, 0xbfc7, 0xcaf9, 0xe638, 0xdb12, 0xd52e,
+ 0xec32, 0xe41b, 0xd268, 0xe727, 0xf9ab, 0xefba,
+ 0xdc4e, 0xc6f1, 0xb92b, 0xbf62, 0xd436, 0xda12,
+ 0xc812, 0xc81b, 0xd817, 0xcd77, 0xbe9f, 0xbac0,
+ 0xac64, 0xad31, 0xc143, 0xcc1b, 0xdcde, 0xee3f,
+ 0xf34d, 0x0603, 0x0e41, 0xf404, 0xe672, 0xe9f9,
+ 0xe303, 0xe47b, 0xe92f, 0xd4a3, 0xb6ed, 0xaa04,
+ 0xb38f, 0xcaa3, 0xd777, 0xd495, 0xd144, 0xc9c9,
+ 0xbe59, 0xc4f4, 0xd733, 0xe12d, 0xead6, 0xeea3,
+ 0xe4b5, 0xe1fc, 0xde02, 0xcee0, 0xd08f, 0xd53f,
+ 0xcdc5, 0xdaef, 0xed01, 0xeaa9, 0xe5f8, 0xd64c,
+ 0xcaa6, 0xde6d, 0xe4a7, 0xdbb0, 0xe9ba, 0xe894,
+ 0xd502, 0xd7f8, 0xd67a, 0xc683, 0xc95c, 0xdaa4,
+ 0xe497, 0xdf0e, 0xdcda, 0xe8d7, 0xe3f6, 0xdb93,
+ 0xe90f, 0xe21e, 0xd18d, 0xe31e, 0xf3a0, 0xf887,
+ 0x0001, 0xf1b0, 0xe634, 0xf361, 0xf873, 0xffc1,
+ 0x095f, 0xf4a5, 0xdfff, 0xe226, 0xe685, 0xecf1,
+ 0xe8c2, 0xe277, 0xfe27, 0x100c, 0xfd12, 0x016a,
+ 0x0c3e, 0xf2cb, 0xeb3b, 0xfa52, 0xf167, 0xee24,
+ 0xf78b, 0xf2bb, 0x0190, 0x1808, 0x03a4, 0xf050,
+ 0xfb15, 0xf8c6, 0xf04c, 0xf8d4, 0x012f, 0xff8d,
+ 0xf410, 0xf075, 0xfee4, 0xfb6e, 0xecc4, 0xfa3b,
+ 0x0277, 0xf563, 0x0266, 0x1bd1, 0x12f8, 0xfeed,
+ 0xff76, 0xfaa4, 0xe23f, 0xd9bd, 0xe4ed, 0xebdc,
+ 0xfbb7, 0x078f, 0xf15d, 0xde54, 0xe45c, 0xef57,
+ 0x002a, 0x01e6, 0xf410, 0xfc09, 0xfa24, 0xe49f,
+ 0xea73, 0xe6bd, 0xced9, 0xe1ce, 0xfeb4, 0xfe90,
+ 0x0245, 0xfc11, 0xe90a, 0xeb1b, 0xeac8, 0xddba,
+ 0xe5a6, 0xfcd4, 0x09be, 0x081c, 0x00d4, 0xf97e,
+ 0xedea, 0xe78c, 0xeb24, 0xea51, 0xedbb, 0xfa6a,
+ 0xf6e7, 0xe1cb, 0xd78c, 0xe570, 0xf46c, 0xf470,
+ 0x043d, 0x1bcf, 0x0e16, 0xfcf0, 0x0283, 0xfb82,
+ 0xfac1, 0x0781, 0xfd74, 0xf964, 0x0066, 0xef1e,
+ 0xeb67, 0xf8ae, 0xeac4, 0xe209, 0xea9b, 0xe815,
+ 0xf461, 0x0860, 0x00f6, 0xfc38, 0x02fc, 0x0195,
+ 0x126b, 0x2bdc, 0x1ede, 0x0832, 0x145d, 0x22bf,
+ 0x1186, 0xf9c4, 0xf71d, 0x0388, 0x0d17, 0x09bf,
+ 0xfe99, 0xf978, 0x0145, 0x0ece, 0x1281, 0x0cc2,
+ 0x0e2e, 0x1033, 0x0494, 0xfc47, 0x01b6, 0x07b2,
+ 0x0f01, 0x1b95, 0x21e9, 0x1c2f, 0x136e, 0x0fdb,
+ 0x0984, 0xffe7, 0x0557, 0x0d37, 0x00d2, 0xf653,
+ 0xf756, 0xf60c, 0xff78, 0x0cbf, 0x0c0c, 0x1028,
+ 0x0f31, 0xfbfb, 0xfd96, 0x0c81, 0x07f5, 0x0b2f,
+ 0x106e, 0xfe84, 0xf918, 0xfc63, 0xf12d, 0xff0f,
+ 0x1440, 0x066b, 0x0a9b, 0x2315, 0x1561, 0x0aad,
+ 0x1da3, 0x165d, 0xfedb, 0xfa0d, 0xf957, 0x0529,
+ 0x1bb1, 0x18e9, 0x0beb, 0x161e, 0x298e, 0x2e3c,
+ 0x216f, 0x1914, 0x2698, 0x2e68, 0x184b, 0x0147,
+ 0x0505, 0x0f95, 0x0bb4, 0x0c6b, 0x1b92, 0x20b9,
+ 0x1dd7, 0x233c, 0x1f8d, 0x0de5, 0x06d5, 0x1836,
+ 0x3175, 0x29ef, 0x0d46, 0x1321, 0x2310, 0x17f7,
+ 0x1311, 0x1068, 0x044b, 0x0cff, 0x14f2, 0x0dbf,
+ 0x114a, 0x1168, 0x1bb7, 0x3527, 0x206a, 0x0022,
+ 0x0b6e, 0x0c7d, 0x0d48, 0x28ec, 0x201a, 0x0395,
+ 0x0784, 0x108e, 0x1672, 0x14f2, 0x0996, 0x1399,
+ 0x15f9, 0x056a, 0x1397, 0x1e1d, 0x0c07, 0x0c36,
+ 0x129b, 0x18ff, 0x2e23, 0x2ada, 0x15b8, 0x0cd1,
+ 0x027e, 0x059a, 0x14d5, 0x192f, 0x1e10, 0x1158,
+ 0xfd7f, 0x1081, 0x1a80, 0x08e6, 0x0e17, 0x0c71,
+ 0xff7f, 0x0c72, 0x0c68, 0x0156, 0x0760, 0xfd11,
+ 0xf333, 0xf840, 0xf186, 0x06e4, 0x2d1e, 0x23eb,
+ 0x15d8, 0x16ac, 0x03cd, 0x0366, 0x14fe, 0x0ec0,
+ 0x07c1, 0xfe7f, 0xed92, 0xf9dc, 0x0689, 0xfd66,
+ 0x0a83, 0x1817, 0x06fc, 0xfdce, 0xfc1e, 0xf63e,
+ 0x0ad9, 0x22d7, 0x1957, 0x11b5, 0x1f6a, 0x294c,
+ 0x2cb4, 0x2b08, 0x1dfa, 0x1249, 0x0ef2, 0x1219,
+ 0x203b, 0x29f1, 0x2096, 0x17e1, 0x1a85, 0x1a23,
+ 0x0fcf, 0xfe0e, 0xf5a2, 0x08e9, 0x1f94, 0x194b,
+ 0x0d8a, 0x1e48, 0x3875, 0x3b90, 0x2e49, 0x20c1,
+ 0x0fff, 0x037a, 0x0699, 0x0ac1, 0x088e, 0x09cb,
+ 0x06f2, 0xfe6b, 0xfe90, 0x015c, 0x018f, 0x0805,
+ 0x0ba2, 0x073c, 0x0439, 0xff38, 0x00d1, 0x1003,
+ 0x1011, 0x06d1, 0x133c, 0x16b6, 0x09e9, 0x1c38,
+ 0x3275, 0x2699, 0x2428, 0x2d67, 0x2021, 0x15ec,
+ 0x18fd, 0x171b, 0x1741, 0x0ff7, 0x027e, 0x0776,
+ 0x0780, 0xf984, 0xfe00, 0x02ea, 0xfae9, 0x02f1,
+ 0x0ca4, 0x0a98, 0x1300, 0x19ff, 0x17d0, 0x1e70,
+ 0x1d18, 0x09dc, 0xfd4d, 0xf910, 0xf5ea, 0xfb98,
+ 0x0360, 0x053a, 0x083e, 0x0a97, 0x0dab, 0x2140,
+ 0x3181, 0x1a43, 0xfdac, 0x069c, 0x0fa0, 0x0599,
+ 0x0ace, 0x1231, 0x07fc, 0x055a, 0x088f, 0x05a1,
+ 0x0b3f, 0x1775, 0x2460, 0x2a4f, 0x14e8, 0x0189,
+ 0x1219, 0x1eb2, 0x1617, 0x17ae, 0x1930, 0x10d6,
+ 0x1685, 0x238e, 0x25e0, 0x1f67, 0x113f, 0x0c16,
+ 0x1b47, 0x21f2, 0x1682, 0x0eee, 0x0631, 0xfa0c,
+ 0x017f, 0x14e1, 0x1dde, 0x22c9, 0x24d7, 0x1b64,
+ 0x0fe7, 0x05c6, 0xf74c, 0xf379, 0x03bc, 0x10c1,
+ 0x0a5d, 0x005b, 0xff74, 0x011e, 0x0471, 0x0a6c,
+ 0x04b6, 0xf0e0, 0xe713, 0xf2d1, 0x009b, 0xfd83,
+ 0xf092, 0xed66, 0xf8a2, 0x051b, 0x07be, 0x05b3,
+ 0x081e, 0x0863, 0x0211, 0xffb5, 0x00b0, 0x024a,
+ 0x08a5, 0x0404, 0xf5c3, 0xfcbd, 0x0dd3, 0x0fba,
+ 0x0e90, 0x0ba6, 0x0502, 0x08a2, 0x0af7, 0x026f,
+ 0xfab0, 0xf577, 0xfbbe, 0x0e38, 0x1665, 0x137a,
+ 0x0b46, 0x01e2, 0x086d, 0x0de9, 0x029d, 0x024c,
+ 0x083a, 0x02f2, 0x027d, 0x023e, 0xff1d, 0x0503,
+ 0x05b2, 0x03c6, 0x078c, 0xfddb, 0xf0a8, 0xede0,
+ 0xf028, 0x05dc, 0x1e5b, 0x1d29, 0x197b, 0x17df,
+ 0x0d37, 0x0a15, 0x08f3, 0x0786, 0x0e92, 0x094a,
+ 0xfe32, 0xfe68, 0xfc66, 0x0337, 0x0cd6, 0xff7c,
+ 0xfa12, 0x033f, 0xffe5, 0xffc7, 0xfa86, 0xed2e,
+ 0x009c, 0x1324, 0xfff7, 0xf68e, 0xfc2b, 0xfd74,
+ 0x0995, 0x10c2, 0x112a, 0x1c76, 0x161f, 0x0055,
+ 0xfbce, 0xfa51, 0xf735, 0xfe31, 0x034b, 0x0835,
+ 0x0920, 0xf5fc, 0xeba0, 0xffa5, 0x0a89, 0xfa33,
+ 0xf1ab, 0xf7b2, 0xf421, 0xf3a5, 0x00ac, 0x026b,
+ 0x042d, 0x11da, 0x0858, 0xf959, 0x08d8, 0x1112,
+ 0x0833, 0x06fa, 0xf920, 0xe4aa, 0xe0fb, 0xde1d,
+ 0xe4de, 0xf8ff, 0xf95e, 0xf1cb, 0xf679, 0xf80c,
+ 0xf9f5, 0xfe28, 0xff24, 0x0659, 0x055e, 0xf9b7,
+ 0x0015, 0x0a56, 0x0848, 0x1178, 0x1a93, 0x09f4,
+ 0xf1ba, 0xe4c5, 0xe266, 0xe937, 0xf26b, 0xf50c,
+ 0xf2d2, 0xf3b4, 0xf47e, 0xf246, 0xf92f, 0x002a,
+ 0xf502, 0xebd2, 0xed1b, 0xe4df, 0xdba5, 0xd9ab,
+ 0xd578, 0xd5fd, 0xd945, 0xddc3, 0xef3f, 0xf6d8,
+ 0xeba7, 0xf142, 0xfc15, 0xefb6, 0xe693, 0xec53,
+ 0xefcc, 0xf4d7, 0xf8fe, 0xf16d, 0xed33, 0xf991,
+ 0x0283, 0xf7fa, 0xf32d, 0x017e, 0x035d, 0xf93c,
+ 0x01b4, 0x0c21, 0x0577, 0xff6b, 0xff44, 0x01bc,
+ 0x00a7, 0xed7f, 0xdd32, 0xe89e, 0xf622, 0xf4f5,
+ 0xf9a3, 0x084a, 0x0cfd, 0x01c6, 0xfb38, 0xff5c,
+ 0xf65d, 0xe4be, 0xe2ac, 0xe584, 0xe814, 0xf5f9,
+ 0xffb9, 0x01e3, 0x0ba4, 0x0ad6, 0xfd48, 0x05e0,
+ 0x16b7, 0x0b24, 0xf941, 0xf66d, 0xf0c6, 0xece2,
+ 0xf3d3, 0xf695, 0xfd8f, 0x0a9d, 0x0213, 0xf5a5,
+ 0xfdd3, 0xfbbe, 0xed07, 0xeba9, 0xebfd, 0xefb2,
+ 0x0143, 0x0691, 0xfd8d, 0xfdfd, 0x01a6, 0xfe20,
+ 0xf4d1, 0xe86a, 0xe3ff, 0xe953, 0xee63, 0xf15b,
+ 0xf33d, 0xf37d, 0xf32f, 0xf80a, 0x041b, 0x0781,
+ 0xff09, 0xfaec, 0xf5e5, 0xef1c, 0xf393, 0xf2da,
+ 0xe7b1, 0xe606, 0xe721, 0xe928, 0xf555, 0xf99e,
+ 0xf36f, 0xf060, 0xe9b6, 0xe2cd, 0xe0d0, 0xdc8d,
+ 0xdc02, 0xda2d, 0xd1d2, 0xdb7d, 0xf4ec, 0x01df,
+ 0x01b3, 0xfa07, 0xf0e6, 0xef82, 0xeac0, 0xe60c,
+ 0xf2c0, 0xfdca, 0xf8b8, 0xf303, 0xea3d, 0xdbd1,
+ 0xd8c2, 0xdf96, 0xe6a6, 0xef8f, 0xefc0, 0xe0b1,
+ 0xd7b2, 0xe06e, 0xea95, 0xed23, 0xeeea, 0xee4c,
+ 0xe50f, 0xdc11, 0xdc33, 0xdcc2, 0xdbd0, 0xe0b5,
+ 0xdfbd, 0xd5d7, 0xd913, 0xe4cf, 0xe6e8, 0xeb2c,
+ 0xf29c, 0xefab, 0xf03b, 0xfb5f, 0xfccb, 0xf182,
+ 0xedc8, 0xf36b, 0xe906, 0xd1be, 0xd110, 0xde3e,
+ 0xe333, 0xf309, 0x0235, 0xfae9, 0xfb3c, 0x0030,
+ 0xf0b4, 0xeb63, 0xf87d, 0xfb6c, 0xf827, 0xf5cb,
+ 0xf254, 0xed23, 0xe1bb, 0xe47c, 0xf730, 0xf4c1,
+ 0xe97a, 0xef4d, 0xef36, 0xe7b9, 0xe7fc, 0xe78d,
+ 0xe8b6, 0xe979, 0xdff6, 0xd730, 0xd281, 0xd2c2,
+ 0xe14e, 0xed92, 0xec17, 0xedc1, 0xf63c, 0xffb0,
+ 0x048f, 0xfa82, 0xedcc, 0xf0f5, 0xf5cb, 0xecbf,
+ 0xe5d9, 0xee71, 0xf1ba, 0xe382, 0xddbf, 0xe3fc,
+ 0xdec7, 0xde01, 0xef05, 0xf375, 0xec47, 0xf45b,
+ 0xfdbc, 0xfaed, 0xf94b, 0xf9c8, 0xfc11, 0x0052,
+ 0xf65a, 0xe54a, 0xe58c, 0xef39, 0xf37c, 0xf162,
+ 0xea41, 0xec20, 0xf4cd, 0xefea, 0xecc0, 0xf707,
+ 0xf799, 0xf028, 0xeca1, 0xe846, 0xe908, 0xeb25,
+ 0xeb9d, 0xf7e2, 0xfbea, 0xee01, 0xf0e7, 0xfb2f,
+ 0xf224, 0xec26, 0xedcb, 0xe729, 0xe5fd, 0xebfb,
+ 0xe44e, 0xd56d, 0xda65, 0xeecf, 0xf4e0, 0xf2c4,
+ 0xfeeb, 0x08bf, 0x01cc, 0xf448, 0xe6b8, 0xe5b2,
+ 0xefb4, 0xeba2, 0xde49, 0xdc7a, 0xe09c, 0xe034,
+ 0xdcf3, 0xde68, 0xe3a5, 0xe571, 0xeb5e, 0xf56a,
+ 0xf9f2, 0x0251, 0x0872, 0xfef5, 0xf949, 0xf8f3,
+ 0xf101, 0xefc4, 0xedb7, 0xde58, 0xdd7a, 0xee44,
+ 0xf63f, 0xf9c5, 0x0240, 0x0492, 0x0034, 0xfe9b,
+ 0xf885, 0xebb9, 0xee09, 0xf977, 0xf3b7, 0xef6a,
+ 0xf843, 0xf503, 0xef4d, 0xf4e3, 0xf282, 0xebda,
+ 0xeb3c, 0xe85e, 0xe5c4, 0xe702, 0xeeff, 0xfa6f,
+ 0xf44a, 0xe81b, 0xeeaa, 0xf37c, 0xf030, 0xf94d,
+ 0x0065, 0xf7fa, 0xf289, 0xf786, 0xfc6e, 0xfc89,
+ 0xfe4b, 0x0315, 0x003d, 0xf7be, 0xf776, 0xfed7,
+ 0x02f1, 0xfdae, 0xf5b9, 0xf729, 0xfc6f, 0xf70e,
+ 0xef02, 0xf8fb, 0x0a8e, 0x0739, 0xffb1, 0x0db0,
+ 0x150a, 0x0a69, 0x0759, 0x0416, 0xfd39, 0x01a4,
+ 0x0171, 0xfdba, 0x0731, 0x0b7f, 0x06d3, 0x046e,
+ 0xfe6a, 0xfaf0, 0xf58d, 0xe91f, 0xf352, 0x0971,
+ 0x04c9, 0xf803, 0xf725, 0xf685, 0xf2b6, 0xebad,
+ 0xee2e, 0xfe27, 0x0041, 0xf91a, 0xf7e3, 0xea66,
+ 0xdfa3, 0xeb57, 0xefa1, 0xe6ad, 0xe26c, 0xdfd0,
+ 0xe470, 0xedbc, 0xebeb, 0xeaa6, 0xf300, 0xfb8a,
+ 0x005e, 0xfd3d, 0xfa63, 0xff56, 0xf87e, 0xe947,
+ 0xe74f, 0xe5dd, 0xe316, 0xf13a, 0x013d, 0x03ca,
+ 0x00e7, 0xf6c6, 0xebd5, 0xf32d, 0x001e, 0xf9ba,
+ 0xece9, 0xef4c, 0xf5d2, 0xf653, 0xfa03, 0xfe2d,
+ 0x00fb, 0x0952, 0x085d, 0xf97f, 0xf643, 0x018d,
+ 0x0b3a, 0x0f1b, 0x0ad5, 0x0460, 0x0283, 0xfeb2,
+ 0xfbc5, 0xfd9a, 0xfeeb, 0x0260, 0x0222, 0xfb05,
+ 0xfd66, 0x0068, 0xf609, 0xf245, 0xf397, 0xeafb,
+ 0xed4f, 0xfb88, 0xfa40, 0xf381, 0xf85a, 0xf9e9,
+ 0xf4a1, 0xf2a4, 0xef13, 0xee54, 0xfa09, 0x0052,
+ 0xf9d4, 0xf919, 0xf85c, 0xf014, 0xf1a9, 0xf5ed,
+ 0xefc1, 0xf103, 0xf9f2, 0xfae6, 0xfb1c, 0xfed5,
+ 0x017b, 0x05c0, 0x089d, 0x07b4, 0x0652, 0x01f6,
+ 0xfea7, 0x035a, 0x055d, 0xfd85, 0xf99c, 0xffab,
+ 0x06be, 0x0d17, 0x0f9b, 0x0866, 0x0083, 0xf99b,
+ 0xefb1, 0xf451, 0x04d0, 0x0909, 0x0876, 0x076a,
+ 0xfd34, 0xf77b, 0xf066, 0xe1b3, 0xea16, 0xfc61,
+ 0xf7c9, 0xf7e0, 0x0353, 0xfcc9, 0xf40e, 0xf943,
+ 0xf9f7, 0xf460, 0xf187, 0xefe7, 0xf221, 0xf9f3,
+ 0xfe8a, 0xfabf, 0xf35a, 0xeb0a, 0xe881, 0xf512,
+ 0x01c5, 0x02be, 0x06bd, 0x0608, 0xf68e, 0xf078,
+ 0xefbe, 0xe439, 0xe522, 0xef35, 0xeed1, 0xfd21,
+ 0x167c, 0x11f0, 0xfe65, 0xfd77, 0x0553, 0x09b6,
+ 0x0a98, 0x0883, 0x0d48, 0x12bb, 0x0896, 0x0142,
+ 0x0789, 0x011b, 0xf308, 0xf4bf, 0xf7bb, 0xf572,
+ 0xf7d5, 0xf430, 0xf006, 0xfcd5, 0x0a43, 0x08a8,
+ 0x0384, 0x04e6, 0x0868, 0x0485, 0xff04, 0x032c,
+ 0x03c5, 0xf94b, 0xf796, 0xff9b, 0x0043, 0x0116,
+ 0x0914, 0x08df, 0x0664, 0x0f73, 0x0f24, 0x050c,
+ 0x0a4b, 0x0c1d, 0x03ea, 0x0f4c, 0x193a, 0x0f15,
+ 0x0fae, 0x14eb, 0x0d6d, 0x0913, 0x0666, 0x002d,
+ 0xf9ab, 0xf2a4, 0xf9ba, 0x0633, 0x0021, 0xf710,
+ 0xf4c9, 0xf725, 0x04ee, 0x05fa, 0xf649, 0xfa22,
+ 0x085e, 0x0945, 0x0427, 0xfa02, 0xf1c7, 0xf681,
+ 0xfd3f, 0xfd25, 0xfb1b, 0xff73, 0x047b, 0xff56,
+ 0x0056, 0x0727, 0xfab7, 0xeef7, 0xf8da, 0x03b5,
+ 0x0919, 0x0c41, 0x0c19, 0x0bff, 0x0676, 0x039d,
+ 0x09af, 0x0715, 0x0308, 0x06b6, 0x0539, 0x0677,
+ 0x0938, 0x01b5, 0xfe35, 0xfeff, 0xfcd3, 0xfd9a,
+ 0xfded, 0x043d, 0x0ccf, 0x0505, 0xfe1f, 0xfee1,
+ 0xf9fb, 0xfe28, 0x052e, 0x01cc, 0x0503, 0x07f8,
+ 0x035b, 0x0428, 0x09e0, 0x1828, 0x1f40, 0x0e9a,
+ 0x08ac, 0x0dec, 0x024c, 0xfa6b, 0xfb78, 0xff59,
+ 0x0e6b, 0x1158, 0x0c89, 0x155e, 0x1212, 0x0a11,
+ 0x11bd, 0x137c, 0x17ef, 0x2585, 0x2698, 0x2456,
+ 0x20a0, 0x17f3, 0x1844, 0x1150, 0x01f4, 0x0729,
+ 0x15fc, 0x1951, 0x1348, 0x0e58, 0x11f5, 0x0df8,
+ 0x03a0, 0x0a7d, 0x144d, 0x146b, 0x1474, 0x123d,
+ 0x141c, 0x1364, 0x02f5, 0xf95c, 0xf81d, 0xf3c2,
+ 0xf8f9, 0xfb0b, 0xf8fc, 0x0323, 0x029e, 0xfe5b,
+ 0x0976, 0x04d9, 0xf8ef, 0xfd7b, 0xf8c0, 0xedda,
+ 0xef6b, 0xf46a, 0xfa05, 0xf890, 0xf0aa, 0xf0bf,
+ 0xf39f, 0xfcac, 0x0970, 0x07a0, 0x0a35, 0x13ff,
+ 0x0a6c, 0xff96, 0xfdd6, 0xf796, 0xf910, 0xfc53,
+ 0xfb02, 0x07b5, 0x1008, 0x0623, 0x02b1, 0x0148,
+ 0xf6c0, 0xf3e1, 0xfaa2, 0xfffb, 0x03c4, 0x0706,
+ 0x0822, 0x0b5e, 0x1352, 0x1386, 0x09c3, 0x03f9,
+ 0xfe23, 0xfa38, 0x0501, 0x0a84, 0x00ee, 0xfc39,
+ 0xfa11, 0xf8d1, 0x0006, 0x0314, 0x022a, 0x05b4,
+ 0x0670, 0x05f5, 0x0298, 0xf99a, 0xf9cf, 0xfe7b,
+ 0xfce9, 0x027a, 0x0a9d, 0x0811, 0x0775, 0x0e3a,
+ 0x1077, 0x098c, 0xff80, 0xfc31, 0x006e, 0x0406,
+ 0x03f0, 0x00d3, 0xfb29, 0xf5c2, 0xf343, 0xf331,
+ 0xf53b, 0xfc45, 0x057e, 0x0a15, 0x0b0d, 0x0891,
+ 0x04d0, 0x075e, 0x09a8, 0x097b, 0x0f27, 0x0fca,
+ 0x0ce0, 0x151d, 0x17c2, 0x1082, 0x0d88, 0x03b2,
+ 0xfae1, 0x03d3, 0x0d72, 0x15b1, 0x1e79, 0x1a25,
+ 0x159f, 0x1210, 0x04a4, 0x0314, 0x0959, 0x06a8,
+ 0x09f5, 0x08be, 0xff5e, 0x06e4, 0x0d58, 0x0b2a,
+ 0x1504, 0x15ce, 0x0e2b, 0x14e7, 0x1075, 0x014b,
+ 0x029c, 0x049e, 0x0350, 0x0926, 0x0845, 0x0184,
+ 0xfd13, 0xf89f, 0xf96c, 0xff10, 0x061b, 0x0862,
+ 0xfa99, 0xedec, 0xf274, 0xf84d, 0xf9d4, 0xf3db,
+ 0xe3f9, 0xe2af, 0xf14d, 0xfacd, 0x026b, 0x0310,
+ 0xf878, 0xf57b, 0xf5d4, 0xf236, 0xf7c5, 0xfdd0,
+ 0xfd17, 0x0302, 0x0a1f, 0x0a6e, 0x0a41, 0x06ca,
+ 0x010a, 0x00d3, 0xff58, 0xf9c3, 0xf90c, 0xf985,
+ 0xf9d9, 0x04ef, 0x0f11, 0x0a1f, 0x090b, 0x10e0,
+ 0x1292, 0x15c4, 0x18ed, 0x1032, 0x0c5b, 0x11b7,
+ 0x129d, 0x1541, 0x162e, 0x0f38, 0x0e40, 0x0b3b,
+ 0xfb32, 0xf4fb, 0x0135, 0x0c26, 0x0c7b, 0x0912,
+ 0x07ad, 0x0467, 0xffb6, 0x01e1, 0x06af, 0x051b,
+ 0x00f8, 0x02eb, 0x0a09, 0x0b5b, 0x097d, 0x0cec,
+ 0x08cb, 0xfe0c, 0xfcdb, 0xfa51, 0xf5c6, 0xfd20,
+ 0x01a0, 0x0034, 0x049d, 0x03c5, 0x0017, 0x040f,
+ 0x0377, 0xfd03, 0xf948, 0xf8a6, 0xfe76, 0x07d0,
+ 0x0d6d, 0x0dde, 0x0bca, 0x0edd, 0x0e48, 0xfc1a,
+ 0xebf3, 0xefe0, 0xfc0d, 0x047a, 0x062d, 0x070c,
+ 0x0810, 0xfbaa, 0xe9e3, 0xe796, 0xef4b, 0xf4f4,
+ 0xf64b, 0xf445, 0xf171, 0xef8e, 0xf5ca, 0x0041,
+ 0xfe0a, 0xf548, 0xf0bb, 0xf0d6, 0xfe44, 0x0a45,
+ 0x0127, 0xf51e, 0xee2b, 0xe527, 0xe087, 0xe1ad,
+ 0xee4c, 0x014a, 0x0606, 0x09f9, 0x0f51, 0xff5a,
+ 0xf1c2, 0xf4b5, 0xf3ca, 0xf6a6, 0xfb56, 0xfa52,
+ 0x0093, 0xfd65, 0xf189, 0xf8b2, 0xfddd, 0xf8af,
+ 0xfa7a, 0xf597, 0xf70d, 0x09a3, 0x0c3c, 0x0865,
+ 0x0b1c, 0xfd69, 0xf68b, 0x05ac, 0x0a7a, 0x0904,
+ 0x0c48, 0x08cc, 0x0736, 0x06b6, 0x0136, 0x077d,
+ 0x1274, 0x1149, 0x0fc1, 0x0df8, 0x04fc, 0x047a,
+ 0x0db6, 0x0d99, 0x0326, 0xfb37, 0xfcfa, 0x06f5,
+ 0x0e25, 0x0a35, 0x006a, 0xfa7a, 0xfca0, 0xffad,
+ 0xf8c6, 0xed61, 0xe9b3, 0xeeff, 0xfad1, 0x0686,
+ 0x09d5, 0x05ae, 0xfd9f, 0xfb59, 0x0535, 0x084f,
+ 0xfdc6, 0xf7cf, 0xf544, 0xf2d8, 0xf8ce, 0xfbae,
+ 0xf58c, 0xf11e, 0xebea, 0xe5e6, 0xe57c, 0xead3,
+ 0xf782, 0x00cc, 0xfbc0, 0xf3d3, 0xed54, 0xe754,
+ 0xeb2c, 0xf48d, 0xfd0b, 0x054c, 0x0500, 0xfff7,
+ 0x024f, 0x0688, 0x0628, 0x02b0, 0x0013, 0xffe0,
+ 0xfb05, 0xf478, 0xf19f, 0xeab7, 0xe899, 0xf07f,
+ 0xee7d, 0xe8fe, 0xeda8, 0xedf5, 0xeeae, 0xf8fc,
+ 0xfc2b, 0xf9de, 0xfadd, 0xf496, 0xe9ca, 0xe669,
+ 0xec3f, 0xf972, 0x0197, 0xfa6f, 0xf120, 0xf347,
+ 0xf8d5, 0xf760, 0xf423, 0xf0e4, 0xe810, 0xe6bc,
+ 0xf531, 0x004f, 0x02c0, 0x048a, 0x01ce, 0xfdc4,
+ 0xf818, 0xe94f, 0xdfef, 0xe374, 0xe99e, 0xf6b8,
+ 0x0412, 0x00d1, 0xf982, 0xfa28, 0xfa69, 0xf7db,
+ 0xf44d, 0xf29d, 0xf699, 0xfcaa, 0x0265, 0x068e,
+ 0x077d, 0x0804, 0x032f, 0xf874, 0xf6ce, 0xfdab,
+ 0x0357, 0x0a67, 0x0c40, 0x01d7, 0xf5ac, 0xedab,
+ 0xec01, 0xf49d, 0xfd24, 0xfe44, 0xff5f, 0xfe08,
+ 0xf7f2, 0xfa84, 0x0035, 0xf5e4, 0xed0c, 0xfa2a,
+ 0x064e, 0x06da, 0x0e5f, 0x14ae, 0x0a80, 0xfc53,
+ 0xf55a, 0xf5a7, 0xf9a0, 0xfb2f, 0xfd31, 0x01a8,
+ 0x0343, 0x0292, 0x0038, 0xfcf4, 0xfc9d, 0xfbea,
+ 0xfaec, 0xfd27, 0xfd03, 0xfb5a, 0xfddf, 0xffc0,
+ 0xfd52, 0xfab1, 0xfc0e, 0xfd88, 0xfb28, 0xfd77,
+ 0x01a1, 0xfe7b, 0x01cf, 0x0943, 0x032e, 0xfd67,
+ 0xfcfa, 0xf80f, 0xfacc, 0xffaa, 0xfa3a, 0xf848,
+ 0xf6e1, 0xf1ee, 0xf55e, 0xf707, 0xf705, 0x0173,
+ 0x0353, 0xf9f1, 0xfb3f, 0x0032, 0xfcd6, 0xfa82,
+ 0xfdb0, 0xfc60, 0xf575, 0xf9b4, 0x05fe, 0x0a3e,
+ 0x1069, 0x1267, 0x009a, 0xf83d, 0x00c7, 0xfd42,
+ 0xf9f9, 0x0315, 0x0489, 0x00e6, 0xffdf, 0xf859,
+ 0xf141, 0xf7ee, 0x019f, 0xfba7, 0xf106, 0xf50b,
+ 0xf9b9, 0xf8b7, 0x0192, 0x078a, 0x007f, 0xff99,
+ 0x03d5, 0x00cd, 0xfc36, 0xfb03, 0xfb4f, 0xfa21,
+ 0xf83f, 0xf85b, 0xf636, 0xf513, 0xfaa2, 0xfccf,
+ 0xf93e, 0xf57b, 0xed3b, 0xe630, 0xe9c4, 0xef47,
+ 0xef52, 0xf0cf, 0xf69a, 0xf6a5, 0xf0ac, 0xf1d0,
+ 0xf6a4, 0xf92c, 0xffd0, 0x01ce, 0xfbf4, 0xfcb4,
+ 0xffee, 0x00e0, 0x0448, 0x04d4, 0x0683, 0x07df,
+ 0xfcf4, 0xf69a, 0xfe7b, 0x0274, 0x0067, 0xf98d,
+ 0xeef4, 0xef74, 0xf7d0, 0xfce2, 0x0035, 0x010c,
+ 0x051a, 0x0c19, 0x06d5, 0xfab8, 0xf723, 0xfb6d,
+ 0x0141, 0x041b, 0x0739, 0x0768, 0xfc10, 0xf668,
+ 0xfe27, 0xff98, 0xfd5e, 0xfcbc, 0xf60b, 0xf449,
+ 0xf6e2, 0xf2ef, 0xf520, 0xfc48, 0xf99e, 0xf46d,
+ 0xf336, 0xf340, 0xf4dd, 0xf60c, 0xf74b, 0xf918,
+ 0xf6d1, 0xf1c9, 0xf121, 0xf641, 0xfa23, 0xfaa2,
+ 0xfdb3, 0x0243, 0x03ef, 0xfeb3, 0xf3f1, 0xf718,
+ 0x0460, 0xffeb, 0xfa9c, 0x0767, 0x0c45, 0x043e,
+ 0xf982, 0xeaf1, 0xe8d4, 0xf174, 0xf447, 0xfa77,
+ 0xfc06, 0xf118, 0xf117, 0xf2fc, 0xe835, 0xebd2,
+ 0xfc84, 0xfe3f, 0xf8c1, 0xfabf, 0xfad6, 0xf443,
+ 0xf3ba, 0xfb3c, 0xfcd5, 0xfa0b, 0xfa04, 0xf625,
+ 0xf1a2, 0xf378, 0xf6e2, 0xfa6d, 0xfad7, 0xf572,
+ 0xf0f7, 0xec8e, 0xe82c, 0xe959, 0xeb0a, 0xeded,
+ 0xf524, 0xf57b, 0xf146, 0xf6c8, 0xfff4, 0xffe6,
+ 0xfa9f, 0xf8d0, 0xf4d5, 0xec58, 0xedc8, 0xf5be,
+ 0xf498, 0xf2fb, 0xf562, 0xf2ad, 0xf025, 0xf036,
+ 0xf0a6, 0xf4df, 0xf4db, 0xf029, 0xf2c4, 0xf925,
+ 0x00cb, 0x06c0, 0xfd5c, 0xf153, 0xf108, 0xead9,
+ 0xe60e, 0xf795, 0x05d0, 0x003f, 0xfd2b, 0xfa66,
+ 0xeee5, 0xec73, 0xefe9, 0xed6d, 0xf4dc, 0x02a2,
+ 0x03ad, 0x0119, 0xff5c, 0xfa35, 0xfad1, 0xfa86,
+ 0xf2c8, 0xf0eb, 0xf1a7, 0xf191, 0xfa82, 0x01bb,
+ 0x00fc, 0x0498, 0x07f0, 0x02e6, 0xfaf7, 0xf452,
+ 0xf032, 0xef33, 0xf502, 0xfdc8, 0xfa73, 0xf432,
+ 0xfa7b, 0xfd48, 0xfa06, 0xfee1, 0xffe5, 0xf9cf,
+ 0xfb4e, 0xfebb, 0xff70, 0x03c9, 0x058e, 0x00bf,
+ 0xfc41, 0xfb01, 0xfcf0, 0x01da, 0x07e8, 0x0a4c,
+ 0x0508, 0x003b, 0x0313, 0x0347, 0xfdc6, 0xfda7,
+ 0xff7d, 0xfed0, 0x05d5, 0x0c27, 0x03f2, 0xfec5,
+ 0x031c, 0xfe82, 0xf8e3, 0xff81, 0x04b9, 0x0634,
+ 0x0c50, 0x0fe2, 0x0de0, 0x0c57, 0x0acc, 0x05ff,
+ 0xff6e, 0xfdb8, 0x0186, 0x02d7, 0x0106, 0xfebe,
+ 0xf9e4, 0xf671, 0xfa75, 0x0353, 0x0788, 0x0187,
+ 0xfa70, 0xf883, 0xf51f, 0xf2e5, 0xf6a8, 0xfc12,
+ 0x0382, 0x05bb, 0xfb4e, 0xf673, 0xfbd6, 0xf6f0,
+ 0xee49, 0xf1f8, 0xf626, 0xf528, 0xf843, 0xfbf8,
+ 0xfc6d, 0xfc9b, 0xf82f, 0xf257, 0xf6ba, 0xfff8,
+ 0x037f, 0x0205, 0xfc9c, 0xf78c, 0xf75c, 0xf8ae,
+ 0xfcc1, 0x0069, 0xfbe3, 0xfa46, 0xfd97, 0xf6ff,
+ 0xf189, 0xf81d, 0xfd07, 0xffa8, 0x0241, 0xfd19,
+ 0xf852, 0xf9ed, 0xf9f9, 0xf925, 0xf92d, 0xf7c5,
+ 0xf80b, 0xf9f2, 0xfa09, 0xf9fd, 0xfcb3, 0xff36,
+ 0xfc33, 0xf5bd, 0xefc6, 0xeb1f, 0xebf5, 0xf130,
+ 0xf641, 0xfcbe, 0xff59, 0xfc17, 0xfd04, 0xfd50,
+ 0xf5ef, 0xf14e, 0xf3f9, 0xfab1, 0xfff4, 0xfc32,
+ 0xf652, 0xf510, 0xf362, 0xf28d, 0xf230, 0xf20e,
+ 0xf697, 0xf63b, 0xf252, 0xf97f, 0xff5a, 0xfcd5,
+ 0xff98, 0x0208, 0x02ba, 0x0ae5, 0x102f, 0x104b,
+ 0x0fda, 0x05b4, 0xf987, 0xf5ed, 0xf447, 0xfa40,
+ 0x03bf, 0xfd6d, 0xf627, 0xfcf3, 0x0098, 0x01d3,
+ 0x0783, 0x0556, 0x0258, 0x04c0, 0xff1b, 0xfe53,
+ 0x0875, 0x01d0, 0xf3f0, 0xf955, 0x01f8, 0x030b,
+ 0x0428, 0x0220, 0xffd4, 0xfe77, 0xfb27, 0xfe8d,
+ 0x02fc, 0x0050, 0x005d, 0xff7b, 0xfb56, 0xfc8d,
+ 0xfa2e, 0xf726, 0xff74, 0x04ef, 0x0473, 0x06b4,
+ 0x0506, 0x02e2, 0x0277, 0xfda0, 0xfe37, 0x01d1,
+ 0xfdde, 0xfc8c, 0xfd65, 0xfa0e, 0xf985, 0xf8b5,
+ 0xf7ac, 0xfbf1, 0xfd4b, 0xfcdb, 0xfe03, 0xf983,
+ 0xf664, 0xf67c, 0xf0b1, 0xee0a, 0xf19c, 0xf53f,
+ 0xfe07, 0x0321, 0xfdb5, 0x0025, 0x0a2e, 0x0a90,
+ 0x055b, 0x0393, 0x047d, 0x0478, 0x0057, 0xfecc,
+ 0x03f7, 0x04bc, 0xffda, 0xfffd, 0x01c0, 0xfd96,
+ 0xf8b5, 0xf8d3, 0xfbfe, 0xfdbe, 0xfcf0, 0xfe51,
+ 0x021a, 0x029e, 0x0456, 0x0b3f, 0x0ca7, 0x07cf,
+ 0x072f, 0x06ec, 0x05a0, 0x0c0c, 0x10e8, 0x09a3,
+ 0x02bb, 0x01a3, 0xfd53, 0xf7dd, 0xf631, 0xf82d,
+ 0x01d3, 0x0d8e, 0x0eb9, 0x09f6, 0x0864, 0x0a09,
+ 0x0e26, 0x0c2f, 0x01f4, 0x0048, 0x0561, 0x0454,
+ 0x075c, 0x0cfe, 0x08ad, 0x074a, 0x0b02, 0x0814,
+ 0x0948, 0x0e06, 0x09fa, 0x0acf, 0x123a, 0x0cf9,
+ 0x01c6, 0x000d, 0x0387, 0x064b, 0x086f, 0x0b79,
+ 0x1093, 0x1435, 0x128a, 0x0e1c, 0x0ab5, 0x0526,
+ 0xfda6, 0xff4d, 0x0875, 0x0cb4, 0x1019, 0x1481,
+ 0x1207, 0x0fd3, 0x121c, 0x1326, 0x17e8, 0x1dbc,
+ 0x1be3, 0x18b1, 0x1506, 0x0d71, 0x08a5, 0x0597,
+ 0x0130, 0xff9e, 0x003b, 0x0346, 0x06dc, 0x05ef,
+ 0x0577, 0x03ba, 0xfd3e, 0xffab, 0x0631, 0xfed5,
+ 0xf56e, 0xf4d6, 0xf47e, 0xf645, 0xfc22, 0xff09,
+ 0xfdd0, 0xfa40, 0xf70b, 0xf60e, 0xf6c9, 0xf9cc,
+ 0xf994, 0xf6d6, 0xfc1d, 0xffe0, 0xfa79, 0xfbd6,
+ 0xffda, 0xfa82, 0xf84c, 0xf8be, 0xf365, 0xf47d,
+ 0xfc8b, 0xff28, 0xfe2c, 0xfd44, 0xfc10, 0xfb94,
+ 0xfc9e, 0x0127, 0x03f9, 0x002f, 0xfeae, 0x0017,
+ 0xfa88, 0xf238, 0xf067, 0xf497, 0xfa5c, 0xff7e,
+ 0x049b, 0x057d, 0x0100, 0x02c9, 0x08c7, 0x0505,
+ 0xff7e, 0x02bc, 0x078f, 0x0a08, 0x08de, 0x045b,
+ 0x0650, 0x0d3f, 0x0e89, 0x0d98, 0x0de2, 0x0ce6,
+ 0x0e3f, 0x1052, 0x0dd7, 0x0ace, 0x08a9, 0x0553,
+ 0x048b, 0x05e0, 0x05cf, 0x072f, 0x0ad2, 0x0db8,
+ 0x0ff5, 0x137c, 0x1941, 0x1cc8, 0x19db, 0x1646,
+ 0x145d, 0x0fe0, 0x0d48, 0x0dd4, 0x0b6d, 0x0b16,
+ 0x0f45, 0x0f5f, 0x0c38, 0x09f1, 0x0704, 0x0662,
+ 0x08e0, 0x0b5f, 0x0f43, 0x131f, 0x1373, 0x11f6,
+ 0x1007, 0x0c9d, 0x06e3, 0x0106, 0xfe7e, 0xfc0f,
+ 0xf99c, 0xfe46, 0x04aa, 0x04b6, 0x052a, 0x0814,
+ 0x0905, 0x0a4b, 0x08b1, 0xffb9, 0xf751, 0xf4e2,
+ 0xf4e3, 0xf533, 0xf4e6, 0xf40f, 0xf4e7, 0xf82a,
+ 0xfc52, 0xfdf1, 0xfc7a, 0xfd8b, 0x0094, 0xfd0e,
+ 0xf5b1, 0xf50a, 0xf99c, 0xfd11, 0xfe26, 0xfa70,
+ 0xf4c8, 0xf506, 0xf830, 0xf99b, 0xfb6e, 0xfaa8,
+ 0xf947, 0xfff1, 0x0720, 0x0692, 0x05ff, 0x05a8,
+ 0x01c9, 0x0281, 0x0966, 0x0e45, 0x0da4, 0x0814,
+ 0x039d, 0x0659, 0x0a72, 0x0946, 0x0552, 0x02c9,
+ 0x0465, 0x089b, 0x0a66, 0x0964, 0x06aa, 0x017f,
+ 0xfc6a, 0xfa5c, 0xfb5c, 0xfd39, 0xfd40, 0xfdf6,
+ 0x0133, 0x0237, 0x01e2, 0x0325, 0x01e4, 0x0094,
+ 0x014c, 0xfbef, 0xf7c8, 0x0178, 0x0aac, 0x07d0,
+ 0x04a3, 0x0405, 0x0105, 0x0153, 0x0547, 0x0602,
+ 0x055f, 0x064b, 0x0585, 0x036b, 0x0414, 0x05a1,
+ 0x0225, 0xfad8, 0xf8a8, 0xff0b, 0x05c9, 0x0536,
+ 0x02d0, 0x08ed, 0x141d, 0x1758, 0x12e6, 0x1291,
+ 0x17f4, 0x1c4f, 0x1c78, 0x1786, 0x123a, 0x12f4,
+ 0x1499, 0x142b, 0x171c, 0x17b3, 0x116c, 0x0e45,
+ 0x0f86, 0x106a, 0x130b, 0x1398, 0x1162, 0x13f0,
+ 0x1634, 0x1371, 0x12e9, 0x11f2, 0x0bd4, 0x08a6,
+ 0x09ba, 0x06e8, 0x0035, 0xfc1b, 0xfd18, 0x00fd,
+ 0x065b, 0x0cc3, 0x113b, 0x117e, 0x0ea4, 0x0c88,
+ 0x0f8a, 0x1341, 0x1004, 0x0b11, 0x0a70, 0x0972,
+ 0x084c, 0x0abd, 0x0bd4, 0x0918, 0x0739, 0x05d4,
+ 0x017f, 0xfd4d, 0xfdd0, 0x016c, 0x04b0, 0x074a,
+ 0x08de, 0x08af, 0x073f, 0x0386, 0xfdb5, 0xfa92,
+ 0xfc78, 0xff84, 0x000e, 0xff3b, 0x0027, 0x0318,
+ 0x0485, 0x0085, 0xf8e6, 0xf5e0, 0xf8b2, 0xf8fb,
+ 0xf72a, 0xf867, 0xf754, 0xf37e, 0xf424, 0xf6e2,
+ 0xf9d1, 0xfd5d, 0xfa1f, 0xf452, 0xf51a, 0xf2bb,
+ 0xed2b, 0xf16f, 0xf627, 0xf344, 0xf46f, 0xf766,
+ 0xf369, 0xefb8, 0xf1c1, 0xf4f4, 0xf32b, 0xee27,
+ 0xf236, 0xfe68, 0x0314, 0xff92, 0xfc71, 0xfb5b,
+ 0xfbc5, 0xfaac, 0xf8b2, 0xf9b1, 0xf83f, 0xf457,
+ 0xf635, 0xf93e, 0xf990, 0xfc6a, 0xfc51, 0xf42a,
+ 0xed32, 0xec8b, 0xed5f, 0xed2e, 0xedb1, 0xef2c,
+ 0xf16f, 0xf5f9, 0xf9b1, 0xfa2f, 0xfdb8, 0x035f,
+ 0x0509, 0x0826, 0x0bdb, 0x07a6, 0x024e, 0x0061,
+ 0xfb49, 0xf86a, 0xfc7c, 0xfd3f, 0xf87b, 0xf5a9,
+ 0xf426, 0xf264, 0xf4be, 0xf910, 0xf8ce, 0xf6fa,
+ 0xf920, 0xfda8, 0x009a, 0xfedd, 0xfd74, 0x040e,
+ 0x0873, 0x0254, 0xfebd, 0xffb6, 0xfb8c, 0xf810,
+ 0xf913, 0xf7d0, 0xf450, 0xf2ba, 0xf6e4, 0xffe5,
+ 0x0483, 0x0274, 0xffb0, 0xff84, 0x032f, 0x06d8,
+ 0x05f7, 0x02ff, 0x000a, 0xfe77, 0xfe04, 0xfac5,
+ 0xf807, 0xf872, 0xf71a, 0xf5eb, 0xf5d5, 0xf3d5,
+ 0xf54f, 0xf8a6, 0xf6cd, 0xf588, 0xf7ec, 0xfa82,
+ 0xfd86, 0xfe11, 0xfb48, 0xf808, 0xf3fd, 0xf292,
+ 0xf367, 0xf043, 0xece1, 0xec67, 0xec72, 0xef4f,
+ 0xf12f, 0xed81, 0xea8c, 0xe9de, 0xe9a2, 0xece0,
+ 0xf17c, 0xf2fc, 0xf0fc, 0xee73, 0xf033, 0xf387,
+ 0xf2d1, 0xf08f, 0xf001, 0xf27e, 0xf5f3, 0xf3d2,
+ 0xefde, 0xf19d, 0xf3e2, 0xf2ac, 0xf132, 0xf195,
+ 0xf552, 0xf8d6, 0xf8c1, 0xfa34, 0xfd67, 0xfd8d,
+ 0xfd27, 0xfdf7, 0xfca9, 0xfa19, 0xfb4a, 0xffb4,
+ 0x004f, 0xfd41, 0xfcd7, 0xfd67, 0xfdf6, 0x01e2,
+ 0x02f9, 0xfc8c, 0xf68b, 0xf58a, 0xf5e2, 0xf62d,
+ 0xf9ef, 0x014a, 0x039d, 0xfdde, 0xf902, 0xf8fb,
+ 0xfad4, 0xfd60, 0xfe65, 0xfcc2, 0xfaa6, 0xfa35,
+ 0xfd6e, 0x035d, 0x095a, 0x0d1f, 0x0abc, 0x0734,
+ 0x0bc3, 0x0f3e, 0x086d, 0x0235, 0x01a7, 0x018f,
+ 0x04b7, 0x0b3b, 0x0f09, 0x0f04, 0x0aa6, 0x0482,
+ 0x0392, 0x0490, 0x01d8, 0x0112, 0x0443, 0x06dc,
+ 0x09f0, 0x0c63, 0x0a09, 0x06c9, 0x0532, 0x01f0,
+ 0xff49, 0xff82, 0xff27, 0xfebd, 0x002a, 0x0166,
+ 0x02ef, 0x04f6, 0x0443, 0x0363, 0x05e0, 0x05cc,
+ 0x0043, 0xfc2a, 0xfa9c, 0xf7c0, 0xf70b, 0xfa6a,
+ 0xfc7e, 0xfc8a, 0xff37, 0x03ce, 0x0433, 0x00ec,
+ 0x01a8, 0x03da, 0xff8c, 0xfb19, 0xfbab, 0xfa50,
+ 0xf86c, 0xf98a, 0xf81b, 0xf701, 0xfb19, 0xfceb,
+ 0xfa97, 0xfaa3, 0xfbe2, 0xfb22, 0xfb6b, 0xfe68,
+ 0x0051, 0xfe76, 0xfab4, 0xf6ec, 0xf459, 0xf46b,
+ 0xf572, 0xf597, 0xf64e, 0xf96b, 0xfe6d, 0x00a5,
+ 0xfdde, 0xfadb, 0xf854, 0xf4e6, 0xf4cb, 0xf68f,
+ 0xf576, 0xf521, 0xf8f4, 0xfd46, 0xfb16, 0xf25a,
+ 0xee40, 0xf01a, 0xefcb, 0xf243, 0xf931, 0xfbb5,
+ 0xfc54, 0xfd7e, 0xfa53, 0xf671, 0xf4f7, 0xf49c,
+ 0xf691, 0xf87f, 0xfa79, 0xfe4f, 0xfdab, 0xf88f,
+ 0xf63e, 0xf55c, 0xf3a2, 0xf353, 0xf62b, 0xfce9,
+ 0x0234, 0x006b, 0xfc65, 0xfafb, 0xf957, 0xf6a5,
+ 0xf72e, 0xfb10, 0xfd1f, 0xfcca, 0xfbf7, 0xf9d7,
+ 0xf8ce, 0xf8ec, 0xf6fc, 0xf7b8, 0xfc21, 0xfddc,
+ 0xfdff, 0xfb7c, 0xf4d6, 0xf49f, 0xfaba, 0xfa89,
+ 0xf5ca, 0xf4aa, 0xf776, 0xfbfd, 0x00a5, 0x0473,
+ 0x0334, 0xfae4, 0xf515, 0xf748, 0xf96a, 0xf55c,
+ 0xeea8, 0xecde, 0xef7f, 0xef87, 0xefdc, 0xf3c3,
+ 0xf583, 0xf587, 0xf553, 0xf31a, 0xf41d, 0xf873,
+ 0xf96c, 0xf73f, 0xf31f, 0xef85, 0xeef6, 0xecf7,
+ 0xece7, 0xf38d, 0xf6ea, 0xf5c8, 0xf87c, 0xf9f4,
+ 0xf823, 0xfa49, 0xfc80, 0xf84a, 0xf310, 0xf2dc,
+ 0xf579, 0xf70d, 0xf661, 0xf361, 0xf12d, 0xf1d0,
+ 0xf052, 0xed81, 0xf1ff, 0xfa8f, 0xfc19, 0xf6ba,
+ 0xf344, 0xf587, 0xf803, 0xf7b6, 0xf958, 0xfc71,
+ 0xfd6a, 0xfe8c, 0xffe6, 0xffdb, 0x00b1, 0x0130,
+ 0xfc94, 0xf3e0, 0xefbc, 0xf3eb, 0xf761, 0xf65c,
+ 0xf76e, 0xfa1e, 0xfcaf, 0xff82, 0xfc7a, 0xf6a8,
+ 0xf79e, 0xfa84, 0xfb1d, 0xfe25, 0x0213, 0x02df,
+ 0x0104, 0xfff4, 0x022c, 0x031d, 0x00e8, 0x00e5,
+ 0x021a, 0x0213, 0x03d9, 0x0655, 0x05ef, 0x0248,
+ 0xfe02, 0xfd15, 0xfdfe, 0xfe1e, 0x003e, 0x0250,
+ 0xffed, 0xfe68, 0x0387, 0x0a88, 0x0be4, 0x08c4,
+ 0x06c8, 0x05d5, 0x05cf, 0x0888, 0x09cf, 0x07d2,
+ 0x05bb, 0x01b5, 0xfd1d, 0xfe0b, 0x028b, 0x0642,
+ 0x0805, 0x0631, 0x033d, 0x02a4, 0x006e, 0xf97a,
+ 0xf484, 0xf7c6, 0xfd7c, 0xff24, 0xff6e, 0xff5b,
+ 0xfdbf, 0xfdfc, 0xffc5, 0x0007, 0xff73, 0xfe62,
+ 0xfe71, 0x001a, 0x0014, 0x0161, 0x0637, 0x087c,
+ 0x07f0, 0x0567, 0xfd26, 0xf5bb, 0xf4d2, 0xf314,
+ 0xeff0, 0xf1b8, 0xf5bf, 0xf805, 0xf9fa, 0xfbd8,
+ 0xfc25, 0xfb63, 0xfbe2, 0xff33, 0x047d, 0x0914,
+ 0x0a59, 0x0824, 0x04a2, 0x01ff, 0x00e7, 0x008f,
+ 0x0111, 0x02ec, 0x042e, 0x038d, 0x0247, 0x01b1,
+ 0x02d7, 0x03c8, 0x018e, 0xff56, 0x002e, 0x00e0,
+ 0xfe75, 0xf8e0, 0xf42f, 0xf613, 0xfab1, 0xfa5d,
+ 0xf79b, 0xf817, 0xfb6b, 0xfdfb, 0xfdb9, 0xfd32,
+ 0xfd75, 0xf9d9, 0xf321, 0xf1cc, 0xf7c1, 0xfbfa,
+ 0xf7e7, 0xf365, 0xf8cc, 0x0102, 0xff56, 0xf7a2,
+ 0xf4e9, 0xf914, 0xff5b, 0x01d1, 0xff53, 0xfd3d,
+ 0xfcc5, 0xfa85, 0xf8ab, 0xf9a4, 0xfb69, 0xfe39,
+ 0x0140, 0x01eb, 0x027c, 0x0252, 0xfe49, 0xfb7b,
+ 0xfc56, 0xfcd8, 0xff5c, 0x0333, 0x0123, 0xfd36,
+ 0xfeaf, 0x00ec, 0x000e, 0xffff, 0x0360, 0x091e,
+ 0x0e6f, 0x0f7e, 0x09e6, 0x00f9, 0xfca8, 0xff2d,
+ 0x0269, 0x0356, 0x04f7, 0x0789, 0x0800, 0x06b3,
+ 0x0629, 0x0675, 0x06c9, 0x0626, 0x02f8, 0x0033,
+ 0x02c8, 0x0931, 0x0f4b, 0x12af, 0x1188, 0x0e45,
+ 0x0b4d, 0x05df, 0x0080, 0x0177, 0x050c, 0x058d,
+ 0x056d, 0x0600, 0x0477, 0x00f5, 0xfe4d, 0xff1e,
+ 0x0393, 0x06fb, 0x05c4, 0x02a1, 0xff54, 0xfb1f,
+ 0xf967, 0xfc64, 0x004b, 0x02f6, 0x0443, 0x0214,
+ 0xfd23, 0xf98d, 0xf954, 0xfae7, 0xfbaf, 0xfd81,
+ 0x04a3, 0x0cf5, 0x0c83, 0x0221, 0xf78a, 0xf517,
+ 0xf870, 0xfbbf, 0x000a, 0x0535, 0x0448, 0xfcb1,
+ 0xf689, 0xf518, 0xf54a, 0xf4e4, 0xf4da, 0xf81b,
+ 0xfe73, 0x0328, 0x047c, 0x0597, 0x0877, 0x0b2f,
+ 0x09e1, 0x0556, 0x04fb, 0x09e0, 0x0b90, 0x08f8,
+ 0x088f, 0x083d, 0x0192, 0xf6dd, 0xef17, 0xed94,
+ 0xf1bc, 0xf768, 0xf9ce, 0xfaf0, 0xff61, 0x0363,
+ 0x0336, 0x0331, 0x041d, 0x034b, 0x01e5, 0xfe82,
+ 0xf9ca, 0xf9c6, 0xfc40, 0xfe89, 0x05ef, 0x0e9e,
+ 0x1122, 0x1172, 0x1136, 0x0cbb, 0x0703, 0x0585,
+ 0x088a, 0x0a32, 0x05d0, 0x01b5, 0x046f, 0x08eb,
+ 0x09c6, 0x099f, 0x0c2d, 0x1017, 0x10e3, 0x0ebf,
+ 0x0f2c, 0x133b, 0x13d8, 0x0cd7, 0x0791, 0x0d6c,
+ 0x15c2, 0x14e8, 0x0f0e, 0x0cce, 0x0da4, 0x0d27,
+ 0x0d71, 0x1263, 0x1527, 0x1048, 0x0b47, 0x09bd,
+ 0x0a74, 0x1007, 0x14b5, 0x11bf, 0x0d72, 0x0c0a,
+ 0x0bf5, 0x0d7b, 0x0d8d, 0x0ab8, 0x099c, 0x0c45,
+ 0x109a, 0x1291, 0x111a, 0x10dc, 0x12a0, 0x1340,
+ 0x11ad, 0x0c55, 0x05e4, 0x042a, 0x05f2, 0x080f,
+ 0x090e, 0x080b, 0x0815, 0x083c, 0x043e, 0x0017,
+ 0xff49, 0x002b, 0x01a9, 0xffeb, 0xfc06, 0xfd01,
+ 0x0047, 0x020b, 0x04c1, 0x055b, 0x018f, 0xfeaa,
+ 0x00b5, 0x06f5, 0x0b33, 0x09f0, 0x08e1, 0x09d5,
+ 0x0b1c, 0x0ee2, 0x111a, 0x0d0b, 0x0661, 0xfed2,
+ 0xf8a0, 0xf95a, 0xfee6, 0x0393, 0x045d, 0x00e6,
+ 0xfe42, 0xfe55, 0xfd96, 0xfdbd, 0x004a, 0x025a,
+ 0x03b2, 0x033a, 0xff33, 0xfb5c, 0xfb93, 0xff58,
+ 0x035b, 0x0496, 0x0484, 0x059a, 0x0688, 0x0532,
+ 0x0283, 0x021e, 0x0385, 0x01ef, 0xff29, 0xff37,
+ 0xff91, 0xfe98, 0xfd19, 0xfc68, 0xffd3, 0x03c4,
+ 0x01d2, 0xfde6, 0xfd0c, 0xfee6, 0x0235, 0x0306,
+ 0x0077, 0xff05, 0xff53, 0xfffb, 0xffb4, 0xfe6d,
+ 0x02a2, 0x0c69, 0x0fe7, 0x09e7, 0x032e, 0x0337,
+ 0x0905, 0x0b07, 0x07a2, 0x080f, 0x0a4b, 0x06b6,
+ 0x00c0, 0xfc90, 0xfb61, 0xff78, 0x05ea, 0x0a98,
+ 0x0da7, 0x0e46, 0x0af5, 0x0585, 0x03d1, 0x090e,
+ 0x0e13, 0x0d75, 0x0d3e, 0x0f65, 0x0f41, 0x0f77,
+ 0x126c, 0x129d, 0x0fe1, 0x0f1a, 0x0cca, 0x050a,
+ 0xfeb1, 0xff34, 0x0274, 0x0424, 0x0408, 0x03b6,
+ 0x04ca, 0x048d, 0xff60, 0xf9b1, 0xfaf3, 0x01c6,
+ 0x0694, 0x063c, 0x0267, 0xfe1d, 0xfea3, 0x0413,
+ 0x0689, 0x0487, 0x021e, 0xfe03, 0xf9fc, 0xfa51,
+ 0xfb99, 0xfcb6, 0x0030, 0x0249, 0x013f, 0x0065,
+ 0x0032, 0x004f, 0x006c, 0x006e, 0x021f, 0x029a,
+ 0xfdd0, 0xf837, 0xf6e4, 0xf92f, 0xfd3d, 0xffbb,
+ 0xfe3e, 0xfb85, 0xfaa4, 0xfc2c, 0xffca, 0x027d,
+ 0x01f8, 0x0143, 0x0177, 0xffa0, 0xfd85, 0xfdf2,
+ 0xffc3, 0x03d5, 0x07a6, 0x056a, 0x0158, 0xff04,
+ 0xf994, 0xf4a9, 0xf598, 0xf820, 0xfbee, 0x012d,
+ 0x0253, 0x015a, 0x02bb, 0x036f, 0x0184, 0xfee0,
+ 0xfdcf, 0xfe43, 0xfd49, 0xfc7a, 0xffb3, 0x0546,
+ 0x0b1f, 0x0fe7, 0x116d, 0x10ca, 0x0ee6, 0x0b81,
+ 0x08c2, 0x0716, 0x06bd, 0x098b, 0x0c6e, 0x0b9d,
+ 0x0977, 0x09f2, 0x0d3f, 0x0fc6, 0x10c0, 0x1381,
+ 0x161c, 0x14ec, 0x1301, 0x1284, 0x117e, 0x0f16,
+ 0x0bdc, 0x0b2d, 0x0ffc, 0x159c, 0x166b, 0x1458,
+ 0x12f1, 0x125a, 0x1324, 0x14fd, 0x1316, 0x0c42,
+ 0x0701, 0x0665, 0x079c, 0x0931, 0x0af7, 0x0d86,
+ 0x10fd, 0x1216, 0x102e, 0x0f6e, 0x111b, 0x1241,
+ 0x1046, 0x0d5c, 0x0e7c, 0x11bc, 0x1048, 0x0aa8,
+ 0x07af, 0x08cc, 0x0783, 0x0275, 0x026d, 0x0924,
+ 0x0d38, 0x0ade, 0x067d, 0x0546, 0x07ae, 0x074b,
+ 0x02f4, 0x0223, 0x065d, 0x0b16, 0x0c2e, 0x0637,
+ 0xfc52, 0xf549, 0xf360, 0xf794, 0x0062, 0x07ad,
+ 0x0999, 0x0684, 0x024a, 0x0167, 0x02ff, 0x04cf,
+ 0x0611, 0x046f, 0x00f6, 0xffc3, 0x0069, 0x002e,
+ 0xfdd2, 0xfa3d, 0xf90d, 0xfbca, 0xffb1, 0x01d9,
+ 0x010a, 0xfe50, 0xfcc1, 0xfe0b, 0xfffd, 0xff81,
+ 0xfde9, 0xfecb, 0x0247, 0x0622, 0x0702, 0x021f,
+ 0xfb0e, 0xf7ac, 0xf713, 0xf505, 0xf24d, 0xf39b,
+ 0xf7c9, 0xf7eb, 0xf4ae, 0xf4c5, 0xf83e, 0xfbb2,
+ 0xfd9a, 0xfce7, 0xfb5a, 0xfb11, 0xfb77, 0xfcc9,
+ 0xfecf, 0xffc3, 0xff0b, 0xfd1c, 0xfc92, 0xffdf,
+ 0x0456, 0x0599, 0x0138, 0xf935, 0xf57b, 0xf8ba,
+ 0xfbfc, 0xfc46, 0xfda4, 0x02d0, 0x09c1, 0x0c13,
+ 0x0766, 0x0272, 0x0147, 0x003a, 0xfd4c, 0xf9b5,
+ 0xf740, 0xf8e9, 0xfcdf, 0xfd14, 0xfc1a, 0xff67,
+ 0x0157, 0xfe49, 0xfcd3, 0xfdc1, 0xfce9, 0xfb3c,
+ 0xf952, 0xf80f, 0xfaa6, 0xff59, 0x01fc, 0x01c3,
+ 0x00e1, 0x0223, 0x02fc, 0x004d, 0xfd7b, 0xfb29,
+ 0xf7cf, 0xf65f, 0xf5fd, 0xf46e, 0xf42e, 0xf494,
+ 0xf4b5, 0xf686, 0xf7ab, 0xf642, 0xf4a6, 0xf42d,
+ 0xf4e4, 0xf581, 0xf5d9, 0xf738, 0xf678, 0xf205,
+ 0xee90, 0xef08, 0xf286, 0xf3c6, 0xeee2, 0xeb6c,
+ 0xece5, 0xeaf0, 0xe6e7, 0xe897, 0xec9a, 0xed6a,
+ 0xec67, 0xed27, 0xf0af, 0xf516, 0xfa60, 0xff96,
+ 0xff6b, 0xf930, 0xf186, 0xec98, 0xedf7, 0xf3bd,
+ 0xf7bc, 0xf8f4, 0xf9b8, 0xf955, 0xf494, 0xed0b,
+ 0xeb83, 0xf1b0, 0xf76b, 0xfa20, 0xfb8b, 0xfb34,
+ 0xf97c, 0xf595, 0xf191, 0xf41c, 0xfaae, 0xfcd1,
+ 0xfb4a, 0xfb0e, 0xfc65, 0xfc3e, 0xf8ab, 0xf41a,
+ 0xf162, 0xf088, 0xf17e, 0xf460, 0xf94c, 0xff7b,
+ 0x031c, 0x0201, 0xfe49, 0xf9da, 0xf523, 0xf144,
+ 0xf12f, 0xf6f8, 0xfef1, 0x033a, 0x0283, 0xff22,
+ 0xfc7d, 0xfc89, 0xfd5a, 0xfd39, 0xfebb, 0x0356,
+ 0x05fc, 0x0318, 0xff37, 0xfd46, 0xfc00, 0xfd80,
+ 0x00aa, 0x0114, 0x025e, 0x05d7, 0x04cb, 0x0126,
+ 0x0117, 0x0272, 0x03a2, 0x0503, 0x038b, 0x0119,
+ 0x02e9, 0x06be, 0x0897, 0x09d2, 0x0aef, 0x0984,
+ 0x0537, 0x0006, 0xfcb9, 0xfcf0, 0xfe27, 0xfd69,
+ 0xfcb9, 0xff74, 0x04d7, 0x08ab, 0x08ed, 0x08b5,
+ 0x09c7, 0x095d, 0x05ae, 0x003e, 0xfdcc, 0x0199,
+ 0x060b, 0x05b7, 0x041f, 0x0344, 0x011b, 0xfdc9,
+ 0xfaab, 0xfb19, 0xff9a, 0x01a5, 0xff98, 0xfd6f,
+ 0xfb13, 0xf975, 0xf9d3, 0xf8a1, 0xf6a2, 0xf7f9,
+ 0xfadb, 0xfb86, 0xf8d7, 0xf489, 0xf210, 0xf200,
+ 0xf418, 0xf91b, 0xfe0b, 0xff96, 0xfe4b, 0xfaca,
+ 0xf681, 0xf430, 0xf3cd, 0xf362, 0xf2d1, 0xf4dc,
+ 0xf9da, 0xfb7b, 0xf73b, 0xf317, 0xf116, 0xf001,
+ 0xf319, 0xf975, 0xfc8f, 0xfb75, 0xfab8, 0xfcdf,
+ 0xff75, 0xff3c, 0xfd49, 0xfaee, 0xf8b5, 0xfadb,
+ 0x0233, 0x08c5, 0x09f6, 0x0458, 0xfbc2, 0xf822,
+ 0xf8d1, 0xf794, 0xf603, 0xf8f4, 0xfeee, 0x0055,
+ 0xfa2e, 0xf5c0, 0xf831, 0xfa3c, 0xf9be, 0xf9a6,
+ 0xf9ad, 0xfcc6, 0x0280, 0x0402, 0x02e3, 0x040d,
+ 0x0432, 0x0187, 0x0039, 0x01a5, 0x02be, 0x0309,
+ 0x0585, 0x097b, 0x0b9d, 0x0aba, 0x05c9, 0xffbf,
+ 0xff56, 0x03e9, 0x0715, 0x05a2, 0x0230, 0x02f4,
+ 0x0696, 0x0644, 0x04c5, 0x05e3, 0x054f, 0x02a5,
+ 0x019e, 0x033d, 0x067e, 0x0705, 0x0266, 0xfd09,
+ 0xfaa2, 0xfac8, 0xfbfb, 0xfe14, 0x01c1, 0x0465,
+ 0x030b, 0xfe38, 0xf759, 0xf2a9, 0xf367, 0xf5ee,
+ 0xf807, 0xfa4f, 0xfb58, 0xfbbf, 0xfb27, 0xf73e,
+ 0xf2b5, 0xf015, 0xef43, 0xf09c, 0xf0ae, 0xee75,
+ 0xef47, 0xf222, 0xf245, 0xf1e5, 0xf302, 0xf339,
+ 0xf307, 0xf517, 0xf7b4, 0xf7ad, 0xf5d3, 0xf3e1,
+ 0xf33e, 0xf463, 0xf2dd, 0xed3d, 0xe946, 0xe8b8,
+ 0xea77, 0xedee, 0xef48, 0xeff0, 0xf431, 0xf7c0,
+ 0xf882, 0xfa93, 0xfd24, 0xfd0b, 0xfa4c, 0xf803,
+ 0xf7f9, 0xf6a8, 0xf45d, 0xf52b, 0xf746, 0xf9b7,
+ 0xfba2, 0xf83e, 0xf32f, 0xf255, 0xf375, 0xf6d1,
+ 0xfc81, 0xff64, 0xff18, 0xfdfe, 0xfc12, 0xf9bb,
+ 0xf8a2, 0xfaf7, 0xfed0, 0x001a, 0xfffc, 0x0075,
+ 0x0256, 0x04b1, 0x020a, 0xfb7d, 0xf704, 0xf303,
+ 0xf00f, 0xf0bf, 0xf2a8, 0xf809, 0xff23, 0xff52,
+ 0xfc30, 0xfb55, 0xf9be, 0xf825, 0xf7f3, 0xf990,
+ 0xfe52, 0x01b8, 0x0275, 0x03ca, 0x02fe, 0x0033,
+ 0xfe81, 0xfcc0, 0xfbe5, 0xfb0a, 0xf86d, 0xf8d8,
+ 0xfc22, 0xfdd1, 0xfe45, 0xfc93, 0xfb00, 0xff0d,
+ 0x052c, 0x08b9, 0x09b1, 0x07c3, 0x0670, 0x0715,
+ 0x04e0, 0x0132, 0x007c, 0x0188, 0x02ff, 0x049c,
+ 0x05ff, 0x07ab, 0x0797, 0x04a0, 0x041e, 0x08a2,
+ 0x0b8d, 0x0992, 0x07cd, 0x071f, 0x050e, 0x0493,
+ 0x0590, 0x03ba, 0x01a8, 0x039d, 0x0820, 0x0b5a,
+ 0x09cf, 0x0469, 0xfeff, 0xfaa5, 0xf8ee, 0xfacf,
+ 0xfd2e, 0x0013, 0x04c9, 0x076b, 0x0732, 0x07a2,
+ 0x065c, 0x00b0, 0xfce8, 0xffa4, 0x03f9, 0x064a,
+ 0x0741, 0x0572, 0x0157, 0xfdee, 0xfb8c, 0xfadf,
+ 0xfbc8, 0xfc1f, 0xfe08, 0x0294, 0x049a, 0x024e,
+ 0xff60, 0xfe94, 0xff88, 0xfff3, 0x00b6, 0x0376,
+ 0x04cb, 0x032f, 0x0146, 0xfee7, 0xfb8e, 0xf93e,
+ 0xf933, 0xfaed, 0xfc35, 0xfbd1, 0xfc3f, 0xff4b,
+ 0x019a, 0xfe2c, 0xf6a2, 0xf35b, 0xf7bd, 0xfe7b,
+ 0x0299, 0x03cb, 0x03cc, 0x0422, 0x04c7, 0x0283,
+ 0xfaa8, 0xf2b6, 0xf17e, 0xf438, 0xf761, 0xfb14,
+ 0xfc04, 0xf9cb, 0xf8b4, 0xfa1c, 0xfe11, 0x01c9,
+ 0x0161, 0x0009, 0x002f, 0x0014, 0x014b, 0x034d,
+ 0x0409, 0x0523, 0x055f, 0x03d4, 0x02de, 0x00b8,
+ 0xfe1d, 0x00cb, 0x0778, 0x0c34, 0x0d13, 0x0b39,
+ 0x0848, 0x041f, 0xfe89, 0xfa2f, 0xf994, 0xfc0e,
+ 0xfed6, 0x006f, 0x0137, 0x00f6, 0x00a7, 0x0120,
+ 0x00a1, 0xfff3, 0xff61, 0xfca2, 0xfbad, 0xfed6,
+ 0x0038, 0xffc3, 0x00c5, 0x01e0, 0x044f, 0x0803,
+ 0x0941, 0x08ba, 0x06da, 0x03c2, 0x046e, 0x0863,
+ 0x097a, 0x0828, 0x084b, 0x0945, 0x0865, 0x05e2,
+ 0x037d, 0x008c, 0xff05, 0x03af, 0x09f8, 0x09ce,
+ 0x069c, 0x05f6, 0x06b8, 0x0828, 0x0855, 0x0465,
+ 0x013f, 0x0341, 0x062a, 0x06dc, 0x04b3, 0xff0e,
+ 0xfa0a, 0xf808, 0xf66e, 0xf5bd, 0xf714, 0xf9db,
+ 0xfcff, 0xfd37, 0xfd3e, 0x01a3, 0x034d, 0xfed2,
+ 0xfc2a, 0xfea8, 0x04ba, 0x087e, 0x0393, 0xfe33,
+ 0xff5e, 0xff4f, 0xfbd1, 0xf9a3, 0xfa4e, 0xfe2a,
+ 0x01a4, 0x02dc, 0x0410, 0x0333, 0x009f, 0xfe83,
+ 0xfb40, 0xfa65, 0xfd0c, 0xfe52, 0x0103, 0x0687,
+ 0x0a9d, 0x0ccc, 0x0b9e, 0x08f6, 0x07be, 0x0214,
+ 0xfb14, 0xfaf3, 0xfc1a, 0xfd9c, 0x01ff, 0x0099,
+ 0xfa4d, 0xf830, 0xf8df, 0xfa69, 0xfe0a, 0x0322,
+ 0x0855, 0x09ac, 0x06a4, 0x0303, 0xff34, 0xfcea,
+ 0xfdfc, 0xfefb, 0xfe8c, 0xfe36, 0xfe72, 0xfe9e,
+ 0xfcd6, 0xfabe, 0xfb7d, 0xfd82, 0xff93, 0x0175,
+ 0x0230, 0x02fa, 0x0300, 0x00f0, 0xffb2, 0x005b,
+ 0x01a6, 0x0245, 0x022b, 0x060b, 0x0cea, 0x0d47,
+ 0x073f, 0x0395, 0x0501, 0x0746, 0x058b, 0x02bd,
+ 0x0547, 0x0b0f, 0x0f2e, 0x0f09, 0x09a6, 0x053a,
+ 0x06e5, 0x09e5, 0x09f4, 0x08d8, 0x0af0, 0x1160,
+ 0x163d, 0x1679, 0x156d, 0x145d, 0x13e5, 0x1489,
+ 0x1490, 0x14ea, 0x169f, 0x169f, 0x12f5, 0x0f10,
+ 0x1092, 0x14f2, 0x1466, 0x11d8, 0x1342, 0x1542,
+ 0x154f, 0x13ff, 0x1041, 0x0c06, 0x0a7f, 0x0c09,
+ 0x0e9e, 0x0efe, 0x0e22, 0x0ecf, 0x0ef2, 0x0d0a,
+ 0x0a6f, 0x07a9, 0x05ea, 0x05c4, 0x05b8, 0x0538,
+ 0x056e, 0x0738, 0x0914, 0x0a4f, 0x0c6c, 0x0cc6,
+ 0x089f, 0x0442, 0x0379, 0x05a3, 0x083a, 0x0900,
+ 0x0a95, 0x0d5e, 0x0c60, 0x0a01, 0x08f7, 0x03cb,
+ 0xfe02, 0x00a6, 0x072e, 0x09c9, 0x0a06, 0x0aac,
+ 0x0a53, 0x06ec, 0x0148, 0xfd44, 0xfdb6, 0x0069,
+ 0x024a, 0x0543, 0x0989, 0x0a4e, 0x077e, 0x0368,
+ 0xfd38, 0xf85d, 0xf80d, 0xf8d6, 0xfa1e, 0xfcd6,
+ 0xfcf5, 0xf9a2, 0xf77f, 0xf7ad, 0xf60c, 0xf1bd,
+ 0xefad, 0xf0a6, 0xf184, 0xf398, 0xf669, 0xf636,
+ 0xf565, 0xf821, 0xfd2d, 0x0080, 0x0000, 0xfe78,
+ 0xfe6a, 0xfe7d, 0xfe25, 0xfca5, 0xfad9, 0xfcb1,
+ 0xffdf, 0x00f7, 0x02dd, 0x03bf, 0x0152, 0x015a,
+ 0x045c, 0x0596, 0x05e9, 0x05e8, 0x0492, 0x04b7,
+ 0x0762, 0x09ca, 0x0b67, 0x0cb3, 0x0c56, 0x0b85,
+ 0x0bc7, 0x095d, 0x0427, 0x024e, 0x034a, 0x02e5,
+ 0x025f, 0x0212, 0x00b9, 0x0058, 0x02a9, 0x0527,
+ 0x034d, 0xffd7, 0x02e5, 0x097b, 0x0adf, 0x0837,
+ 0x05bf, 0x04a2, 0x03e0, 0x00ab, 0xfd81, 0xfd8f,
+ 0xfdd4, 0xfee1, 0x01e4, 0x01d7, 0xfe3f, 0xfb64,
+ 0xfb33, 0xfe07, 0x016d, 0x02be, 0x01f2, 0x000d,
+ 0x0006, 0x0163, 0x0022, 0xfd92, 0xfabb, 0xf7a1,
+ 0xf967, 0xfe64, 0xff41, 0xfde1, 0xfe67, 0x007f,
+ 0x02b6, 0x020d, 0xff96, 0xffc8, 0x01ff, 0x037c,
+ 0x02ed, 0x00fc, 0x0023, 0xfe0b, 0xf7dd, 0xf311,
+ 0xf447, 0xf8f9, 0xfdc7, 0x01ac, 0x04a6, 0x04cd,
+ 0x0128, 0xfdf8, 0xfddf, 0xfe9b, 0xff49, 0x0082,
+ 0x018c, 0x012c, 0x0002, 0xffc4, 0xfdd7, 0xf892,
+ 0xf74d, 0xfd33, 0x01d5, 0x016b, 0x0013, 0xfe7b,
+ 0xfc3b, 0xfc01, 0xfced, 0xfc47, 0xfd4e, 0x01b7,
+ 0x03ab, 0x0162, 0xff2a, 0xfe60, 0xff78, 0x02f4,
+ 0x06c3, 0x0a21, 0x0d3c, 0x0ef5, 0x0e8f, 0x0bb1,
+ 0x08a9, 0x0842, 0x082a, 0x06cc, 0x0671, 0x07db,
+ 0x0a56, 0x0bd1, 0x0bc9, 0x0dfe, 0x1191, 0x11be,
+ 0x0f02, 0x0bd9, 0x0b5b, 0x0ec2, 0x0f99, 0x0be3,
+ 0x0abb, 0x0cdc, 0x0d98, 0x0c73, 0x0b69, 0x0c62,
+ 0x0e3c, 0x0e6b, 0x0eda, 0x113e, 0x130a, 0x1227,
+ 0x0f1f, 0x0cc4, 0x0c77, 0x0b95, 0x0a45, 0x0c21,
+ 0x0faa, 0x100c, 0x0d78, 0x0b0f, 0x08b7, 0x074d,
+ 0x0ab9, 0x0f80, 0x0dc6, 0x085b, 0x0654, 0x06fc,
+ 0x076b, 0x06a3, 0x04b2, 0x0421, 0x0672, 0x0980,
+ 0x0b71, 0x0c48, 0x0c0a, 0x0aa8, 0x0990, 0x0a0e,
+ 0x0b0a, 0x0c49, 0x0eb2, 0x1001, 0x0da7, 0x08c5,
+ 0x0305, 0xfd05, 0xf883, 0xf7e2, 0xfab5, 0xfda4,
+ 0xfecb, 0xfeda, 0xfe6f, 0xfd01, 0xfa61, 0xf938,
+ 0xfb65, 0xfdfa, 0xff08, 0xfe10, 0xf9be, 0xf75f,
+ 0xfb6f, 0xfe41, 0xfbd2, 0xf9ef, 0xf9fc, 0xfb4f,
+ 0xfe9b, 0x0035, 0xfdd6, 0xf9e3, 0xf6cd, 0xf767,
+ 0xfc5d, 0x01fe, 0x0557, 0x0602, 0x04d2, 0x0376,
+ 0x02fb, 0x0325, 0x0328, 0x02e9, 0x02c0, 0x01fe,
+ 0x00b8, 0x0054, 0x0095, 0x00a5, 0x01c0, 0x056b,
+ 0x09e0, 0x0b4e, 0x099f, 0x0700, 0x041e, 0x0428,
+ 0x0850, 0x09af, 0x05e8, 0x02f6, 0x01e2, 0x0073,
+ 0x00ed, 0x03e2, 0x04f5, 0x024f, 0xffe6, 0x0013,
+ 0x0067, 0x00ed, 0x035b, 0x04e3, 0x0367, 0x00c2,
+ 0xff06, 0xffba, 0x01d8, 0x0333, 0x0577, 0x0857,
+ 0x071f, 0x0228, 0xfe02, 0xfc68, 0xfd3c, 0xfe77,
+ 0xfdea, 0xfdd9, 0xfed3, 0xfd58, 0xfbbd, 0xfdac,
+ 0xfe80, 0xfbb7, 0xf9b4, 0xfa29, 0xfcee, 0x00b0,
+ 0x00b4, 0xfe16, 0xfe43, 0xff63, 0xfe3c, 0xfcc4,
+ 0xfc61, 0xfbe2, 0xf99c, 0xf768, 0xf989, 0xfd08,
+ 0xfbe4, 0xf8bd, 0xf7e6, 0xf809, 0xf844, 0xfa33,
+ 0xfe47, 0x028e, 0x0448, 0x02e6, 0x004d, 0xfe0d,
+ 0xfc17, 0xf9eb, 0xf78f, 0xf545, 0xf478, 0xf617,
+ 0xf69e, 0xf374, 0xf061, 0xeefa, 0xec06, 0xe982,
+ 0xec8d, 0xf27f, 0xf4e4, 0xf383, 0xf128, 0xef96,
+ 0xf111, 0xf2a6, 0xef1a, 0xebb1, 0xee2c, 0xf18f,
+ 0xf2e6, 0xf373, 0xf2a3, 0xf2b0, 0xf50f, 0xf805,
+ 0xfbb2, 0xfe3f, 0xfd80, 0xfb8a, 0xf9c6, 0xf9fc,
+ 0xfd28, 0xfeff, 0xfd35, 0xf963, 0xf6e9, 0xfab6,
+ 0x0172, 0x0420, 0x050f, 0x0607, 0x0512, 0x034c,
+ 0x0009, 0xfcd4, 0xfe15, 0xffd7, 0xfd7e, 0xf981,
+ 0xf6eb, 0xf89d, 0xfd61, 0xffba, 0x004d, 0x02dd,
+ 0x07c2, 0x0cd9, 0x0d32, 0x08b1, 0x05b4, 0x0438,
+ 0x0134, 0x0040, 0x02ac, 0x03fe, 0x04a2, 0x08ce,
+ 0x0e44, 0x105c, 0x0f44, 0x0b4a, 0x06d2, 0x07cb,
+ 0x0b5f, 0x0abd, 0x0798, 0x043a, 0x026e, 0x0613,
+ 0x0ade, 0x09ef, 0x04c2, 0xfffd, 0xffdc, 0x0458,
+ 0x085b, 0x0abc, 0x0c31, 0x0bf8, 0x0bb2, 0x0af9,
+ 0x094a, 0x0955, 0x08dd, 0x06e5, 0x0937, 0x0e4b,
+ 0x0ec1, 0x0a4b, 0x0541, 0x035d, 0x0508, 0x06ff,
+ 0x07ac, 0x0816, 0x08e7, 0x093b, 0x076d, 0x046e,
+ 0x0206, 0xff58, 0xfd0e, 0xfcee, 0xfd07, 0xfc23,
+ 0xfd48, 0x00fb, 0x02b6, 0x00e9, 0xff4c, 0xfef7,
+ 0xfda6, 0xfae3, 0xf89d, 0xfa5f, 0xff35, 0xff94,
+ 0xfaf0, 0xf8b2, 0xf9f3, 0xfac6, 0xf98c, 0xf81c,
+ 0xf9fc, 0xfc7b, 0xfaa1, 0xf8c6, 0xfaf5, 0xfd27,
+ 0xfd49, 0xfc77, 0xfbc2, 0xfd56, 0x005d, 0x017a,
+ 0x0002, 0xfc7e, 0xf911, 0xfa95, 0x0023, 0x0217,
+ 0xff7e, 0xfe70, 0x0010, 0x0288, 0x0505, 0x04ae,
+ 0x0220, 0x002e, 0xfcb0, 0xf930, 0xf9f7, 0xfb8a,
+ 0xfc14, 0xfda8, 0xfdd7, 0xfd8e, 0x00ae, 0x045b,
+ 0x04ba, 0x01b2, 0xfd8e, 0xfbca, 0xfc83, 0xfdde,
+ 0xfe93, 0xfcd3, 0xfa61, 0xfa70, 0xfcb5, 0x005d,
+ 0x02c6, 0x01f6, 0x0117, 0x0030, 0xfcfe, 0xf9b9,
+ 0xf6ed, 0xf483, 0xf4e9, 0xf739, 0xfa47, 0xfe65,
+ 0x010a, 0x00f1, 0xff5d, 0xfd99, 0xfc9a, 0xfa51,
+ 0xf622, 0xf3d6, 0xf422, 0xf561, 0xf681, 0xf5fa,
+ 0xf5ca, 0xf6a0, 0xf3ee, 0xef5e, 0xef7d, 0xf3d9,
+ 0xf789, 0xf7f8, 0xf6a0, 0xf5b3, 0xf459, 0xf32d,
+ 0xf40e, 0xf55c, 0xf676, 0xf807, 0xf8ff, 0xf9c4,
+ 0xf950, 0xf62d, 0xf54f, 0xf8a9, 0xfa78, 0xf9e8,
+ 0xfa3e, 0xfb4a, 0xfc60, 0xfbd0, 0xf732, 0xf0bc,
+ 0xeb86, 0xe7da, 0xe79f, 0xecf1, 0xf4d9, 0xf924,
+ 0xf793, 0xf4e6, 0xf52e, 0xf621, 0xf630, 0xf63e,
+ 0xf4b7, 0xf211, 0xf152, 0xf1bf, 0xf304, 0xf618,
+ 0xf799, 0xf666, 0xf6bd, 0xf908, 0xfa4a, 0xf9dd,
+ 0xf87d, 0xf77b, 0xf7b0, 0xf85e, 0xf905, 0xf937,
+ 0xf85e, 0xf72c, 0xf6bd, 0xf7c2, 0xfa7b, 0xfdcd,
+ 0xff56, 0xfd49, 0xf94d, 0xf7c5, 0xf9b9, 0xfb65,
+ 0xfa27, 0xf853, 0xfa39, 0xffd0, 0x0420, 0x0450,
+ 0x02da, 0x0265, 0x01c3, 0xff98, 0xfe10, 0xff0f,
+ 0x017a, 0x03ec, 0x0528, 0x04fb, 0x048f, 0x0349,
+ 0x01f2, 0x0406, 0x07b7, 0x0888, 0x0670, 0x01f7,
+ 0xfc34, 0xf8c3, 0xf877, 0xfa90, 0xff51, 0x041f,
+ 0x05c7, 0x045b, 0x0173, 0xff6b, 0xff0f, 0xfe03,
+ 0xfbe0, 0xfb7c, 0xfde6, 0x01c2, 0x0550, 0x0739,
+ 0x077d, 0x063d, 0x0306, 0xffb8, 0xfea3, 0xfdf0,
+ 0xfbdf, 0xfab4, 0xfc38, 0xff90, 0x01de, 0x003e,
+ 0xfcd2, 0xfb86, 0xfc01, 0xfd3a, 0xfe91, 0xff14,
+ 0xffec, 0xffbb, 0xfbdd, 0xf87c, 0xf8fb, 0xfaa9,
+ 0xfcd0, 0xff6f, 0x00d6, 0x0172, 0x0187, 0x0108,
+ 0x00c0, 0xffd3, 0xff47, 0x0169, 0x03e9, 0x04a1,
+ 0x04f2, 0x05b2, 0x0707, 0x07b5, 0x068a, 0x05d9,
+ 0x0637, 0x04bf, 0x0211, 0x0196, 0x035a, 0x035f,
+ 0xff9d, 0xfd3a, 0x0100, 0x06f5, 0x097d, 0x08cf,
+ 0x0847, 0x0a3c, 0x0cf4, 0x0c9a, 0x096f, 0x076f,
+ 0x08b3, 0x0b41, 0x0b7a, 0x0830, 0x046d, 0x041b,
+ 0x05ce, 0x043d, 0xffb6, 0xfd4b, 0xfe38, 0x00ce,
+ 0x0383, 0x05b9, 0x0985, 0x0dd2, 0x0dbc, 0x0ac0,
+ 0x08d8, 0x06bb, 0x041f, 0x0293, 0x024e, 0x03de,
+ 0x0589, 0x05b8, 0x0660, 0x0661, 0x049d, 0x047e,
+ 0x0530, 0x051d, 0x0778, 0x09a8, 0x06ec, 0x035c,
+ 0x0257, 0x00fb, 0xfe92, 0xfcdf, 0xfc84, 0xfda9,
+ 0xff4b, 0xfffd, 0x0093, 0x018b, 0x0051, 0xfcfc,
+ 0xfc17, 0xfe9c, 0x01b7, 0x0409, 0x038a, 0xff8e,
+ 0xfc19, 0xfb03, 0xf9f9, 0xf8c5, 0xf95d, 0xfc10,
+ 0xfe13, 0xfcb5, 0xf9af, 0xf829, 0xf89e, 0xf998,
+ 0xf95c, 0xf909, 0xfaa7, 0xfc1e, 0xfc24, 0xfc7a,
+ 0xfbf4, 0xf9e3, 0xf976, 0xfb3c, 0xfc17, 0xfa32,
+ 0xf6cf, 0xf4ec, 0xf532, 0xf53a, 0xf4b3, 0xf653,
+ 0xfa15, 0xfbf0, 0xfa85, 0xf840, 0xf5b8, 0xf2dd,
+ 0xf1dc, 0xf45f, 0xf983, 0xfd14, 0xfbe8, 0xf9af,
+ 0xf9fe, 0xfb00, 0xfaf5, 0xf98c, 0xf85e, 0xf973,
+ 0xf9d8, 0xf8dc, 0xfac5, 0xfd1d, 0xfbce, 0xf9e4,
+ 0xf966, 0xfa07, 0xfc37, 0xfe33, 0xfef0, 0xff0a,
+ 0xfd9c, 0xfb2d, 0xfa6d, 0xfbab, 0xfbb0, 0xf91b,
+ 0xf7cb, 0xf938, 0xfa4d, 0xfae2, 0xfaea, 0xf942,
+ 0xf8e6, 0xfab0, 0xfc21, 0xfdc3, 0xfe1a, 0xfafb,
+ 0xf81c, 0xf779, 0xf6ae, 0xf5cb, 0xf6d0, 0xfa54,
+ 0xfde1, 0xfe4b, 0xfcbf, 0xfba2, 0xfa20, 0xf750,
+ 0xf53f, 0xf7ed, 0xff48, 0x046f, 0x0387, 0x011e,
+ 0x01a6, 0x03a8, 0x033d, 0x001c, 0xfe33, 0xffcd,
+ 0x0343, 0x05d5, 0x061b, 0x052d, 0x045b, 0x0313,
+ 0x0170, 0x0115, 0x0290, 0x03cc, 0x0246, 0x000b,
+ 0x0202, 0x0755, 0x09e5, 0x0765, 0x02ed, 0xffb1,
+ 0xff24, 0x0134, 0x03ca, 0x0512, 0x04ca, 0x0290,
+ 0xff82, 0xfdad, 0xfc41, 0xfa6a, 0xf8f0, 0xf769,
+ 0xf6c2, 0xf848, 0xf9ce, 0xfa39, 0xfb38, 0xfd63,
+ 0xff5f, 0xfe91, 0xfb24, 0xf8d5, 0xf884, 0xf903,
+ 0xfa11, 0xfb0e, 0xfd93, 0x01a2, 0x00d9, 0xf9fc,
+ 0xf5f8, 0xfa4d, 0x0156, 0x02b9, 0xffb9, 0xffb8,
+ 0x02a7, 0x0474, 0x057a, 0x0668, 0x06bf, 0x05b3,
+ 0x0241, 0xffd0, 0x018e, 0x03e4, 0x049a, 0x0551,
+ 0x0527, 0x047e, 0x06e5, 0x0c13, 0x106e, 0x1259,
+ 0x1110, 0x0ca7, 0x08ec, 0x08bd, 0x09a3, 0x09a1,
+ 0x0a09, 0x0b8f, 0x0ddf, 0x0fc9, 0x0f9a, 0x0e59,
+ 0x0e3a, 0x0f19, 0x0f98, 0x0dfa, 0x09de, 0x06e5,
+ 0x085b, 0x0bf4, 0x0ddb, 0x0de5, 0x0d78, 0x0dda,
+ 0x1035, 0x124e, 0x10e6, 0x0d3b, 0x0994, 0x0751,
+ 0x0861, 0x0b9c, 0x0e48, 0x0f25, 0x0c67, 0x07d5,
+ 0x05fc, 0x064f, 0x0768, 0x09d8, 0x0c17, 0x0dc5,
+ 0x0f27, 0x0ece, 0x0d45, 0x0b7a, 0x0a2d, 0x0a94,
+ 0x0ada, 0x0af3, 0x0ca2, 0x0c32, 0x08ec, 0x07d5,
+ 0x0900, 0x0a9c, 0x0c40, 0x0bfe, 0x0a1d, 0x0820,
+ 0x06c4, 0x0720, 0x06c5, 0x045f, 0x03d4, 0x058d,
+ 0x07aa, 0x0a13, 0x0a41, 0x07bd, 0x0543, 0x0325,
+ 0x0346, 0x0729, 0x09fb, 0x08a9, 0x05b6, 0x03a7,
+ 0x033b, 0x0212, 0xfe53, 0xfc20, 0xfdb1, 0xfe7f,
+ 0xfd88, 0xfe87, 0x00cf, 0x011d, 0xff0c, 0xfbc2,
+ 0xf9e0, 0xfb91, 0xfe42, 0xfebc, 0xfe4d, 0xfefa,
+ 0xff5b, 0xfd2a, 0xfaa0, 0xfb94, 0xfe51, 0x0025,
+ 0x015e, 0x008f, 0xfe1f, 0xfd80, 0xfdcb, 0xfd47,
+ 0xfd23, 0xfe0e, 0x00bb, 0x02a8, 0x0094, 0xff62,
+ 0x0222, 0x03bd, 0x029f, 0x0061, 0xfe0e, 0xfee6,
+ 0x0295, 0x05cd, 0x0830, 0x0866, 0x05ad, 0x031d,
+ 0x020e, 0x01a4, 0x015d, 0x00e4, 0x00f3, 0x019e,
+ 0x0233, 0x02e8, 0x02cf, 0x0148, 0x00ab, 0x0367,
+ 0x08aa, 0x0b6e, 0x0846, 0x03ef, 0x0373, 0x0433,
+ 0x02ce, 0x00a2, 0x0045, 0x0257, 0x04a2, 0x03d0,
+ 0x00c1, 0x0065, 0x026f, 0x01e4, 0x0000, 0x0080,
+ 0x01d8, 0x0256, 0x012e, 0xfe60, 0xfe27, 0x00d3,
+ 0x0156, 0xfffc, 0xff1d, 0xfe1f, 0xfd26, 0xfbd4,
+ 0xfaa6, 0xfc1b, 0xff00, 0x0041, 0xffa0, 0xfeee,
+ 0x0099, 0x0355, 0x02ab, 0xfea3, 0xfc67, 0xfff6,
+ 0x0587, 0x0558, 0x00c7, 0xfe80, 0xfec2, 0xffca,
+ 0x0071, 0xff38, 0xfe4f, 0xff46, 0x008f, 0x01e1,
+ 0x0244, 0x022f, 0x0406, 0x05df, 0x074d, 0x0a81,
+ 0x0b79, 0x0878, 0x0603, 0x03db, 0x016d, 0x012d,
+ 0x000f, 0xfc86, 0xfc98, 0x00c9, 0x02ba, 0x022f,
+ 0x02e7, 0x035e, 0x01e1, 0x00eb, 0x0151, 0x028d,
+ 0x04f0, 0x0607, 0x0452, 0x0242, 0x007f, 0xff8d,
+ 0x013a, 0x02b0, 0x01f6, 0x03c1, 0x0985, 0x0e44,
+ 0x0e86, 0x0a1e, 0x033a, 0xfe1e, 0xfdca, 0x0297,
+ 0x0a75, 0x10a8, 0x11cb, 0x0f5a, 0x0c9c, 0x0ae3,
+ 0x096f, 0x0816, 0x08d6, 0x0b6d, 0x0bb9, 0x090e,
+ 0x0745, 0x07d0, 0x098b, 0x0bb3, 0x0dec, 0x0fe9,
+ 0x0fa5, 0x0c18, 0x0a46, 0x0db1, 0x118d, 0x1262,
+ 0x12f3, 0x1452, 0x1398, 0x0f50, 0x0ab0, 0x09c5,
+ 0x0af5, 0x0ab1, 0x0ad9, 0x0cfa, 0x0d8c, 0x0c11,
+ 0x0bcf, 0x0bf7, 0x0b08, 0x0b9b, 0x0ddd, 0x0dd9,
+ 0x0b75, 0x0ae9, 0x0d03, 0x0e65, 0x0d4d, 0x0ab6,
+ 0x087f, 0x0865, 0x095c, 0x093a, 0x0942, 0x0a15,
+ 0x093e, 0x0706, 0x0501, 0x02b5, 0x01b6, 0x03bc,
+ 0x05f8, 0x058b, 0x03bc, 0x03db, 0x0687, 0x0841,
+ 0x073c, 0x0590, 0x0479, 0x0332, 0x0078, 0xfcf9,
+ 0xfcd3, 0x0139, 0x055f, 0x05d8, 0x049c, 0x053d,
+ 0x077d, 0x085a, 0x0979, 0x0d7b, 0x0fdd, 0x0cb1,
+ 0x06ae, 0x0070, 0xfb4c, 0xf9e6, 0xfcee, 0x01b6,
+ 0x05ad, 0x0823, 0x085b, 0x05f2, 0x0316, 0x01e4,
+ 0x02de, 0x04f9, 0x03fd, 0xff69, 0xfe07, 0x0174,
+ 0x034d, 0x0044, 0xfbd5, 0xfc86, 0x0253, 0x03c7,
+ 0xfdef, 0xf8fb, 0xf95e, 0xfc71, 0xff21, 0x00d1,
+ 0x0297, 0x0309, 0x008e, 0xfe2a, 0xfe12, 0xfea8,
+ 0xfe15, 0xfbbe, 0xf8c2, 0xf5a5, 0xf2a7, 0xf34a,
+ 0xf7c1, 0xfbc8, 0xffae, 0x0374, 0x03e0, 0x02ce,
+ 0x0136, 0xfc37, 0xf7ac, 0xf828, 0xfa7f, 0xfcb0,
+ 0xffa6, 0x0187, 0x00f4, 0xffa1, 0xff89, 0x00d0,
+ 0x0236, 0x0375, 0x042d, 0x01d7, 0xfc71, 0xf851,
+ 0xf788, 0xf82e, 0xf93e, 0xfab5, 0xfbf4, 0xfdae,
+ 0x00bd, 0x035f, 0x037c, 0x00e4, 0xfd13, 0xfac3,
+ 0xfa22, 0xf7f3, 0xf4cf, 0xf562, 0xf986, 0xfc3a,
+ 0xfae8, 0xf68a, 0xf1b9, 0xef96, 0xf0bf, 0xf2d7,
+ 0xf4a3, 0xf5b5, 0xf4b5, 0xf35d, 0xf4f7, 0xf7f1,
+ 0xf8fc, 0xf7cf, 0xf647, 0xf72d, 0xf960, 0xf804,
+ 0xf38b, 0xef9d, 0xed51, 0xeed0, 0xf482, 0xfa97,
+ 0xfe9f, 0xfeaf, 0xfbd6, 0xfc1e, 0xfe59, 0xfcb0,
+ 0xfa3a, 0xfa44, 0xf979, 0xf646, 0xf275, 0xf1cf,
+ 0xf6d6, 0xfdbb, 0x0258, 0x0494, 0x055a, 0x05a7,
+ 0x03dc, 0xff23, 0xfc67, 0xfd82, 0xff1c, 0xfff0,
+ 0xff6d, 0xfef3, 0x010f, 0x030c, 0x037f, 0x04dc,
+ 0x065f, 0x077f, 0x0760, 0x0302, 0xfe96, 0x0041,
+ 0x050c, 0x0770, 0x05f0, 0x0341, 0x0298, 0x01e6,
+ 0xffda, 0xfec9, 0xfe41, 0xfea1, 0x0106, 0x01b9,
+ 0xffbc, 0xfe83, 0xfef8, 0x0083, 0x0118, 0xffba,
+ 0x001e, 0x0208, 0x00df, 0xfe11, 0xfdcf, 0x007b,
+ 0x03a3, 0x0489, 0x0466, 0x0641, 0x08a7, 0x08c2,
+ 0x0712, 0x05eb, 0x057e, 0x037c, 0x0147, 0x026b,
+ 0x03e4, 0x018f, 0xfe32, 0xfe0b, 0x02c9, 0x0b49,
+ 0x1250, 0x1365, 0x0f03, 0x089e, 0x0446, 0x033d,
+ 0x0364, 0x0489, 0x07fd, 0x0be7, 0x0dee, 0x0e03,
+ 0x0bbd, 0x078b, 0x052d, 0x06b0, 0x086c, 0x0663,
+ 0x0213, 0xff9d, 0xff7f, 0xff96, 0x0051, 0x0323,
+ 0x062d, 0x0675, 0x0483, 0x037a, 0x03e4, 0x037c,
+ 0x0221, 0x0138, 0x00be, 0x00f9, 0x01ce, 0x0214,
+ 0x0216, 0x01de, 0x00f6, 0x0095, 0x0076, 0xff84,
+ 0xff42, 0x003f, 0x014b, 0x01a4, 0x0094, 0xff90,
+ 0x004b, 0x0103, 0x015b, 0x0380, 0x06ac, 0x0793,
+ 0x0430, 0xfeaf, 0xfb50, 0xfaad, 0xfb82, 0xfda6,
+ 0x00a4, 0x0505, 0x0a19, 0x0c96, 0x0bf6, 0x090f,
+ 0x04d5, 0x0358, 0x0472, 0x0376, 0x01b5, 0x01d6,
+ 0x01c6, 0x00bb, 0xffe7, 0x0080, 0x02f7, 0x04dd,
+ 0x05ab, 0x079b, 0x08d3, 0x0723, 0x04e5, 0x0294,
+ 0xfe23, 0xf9f0, 0xfb37, 0x01b4, 0x0706, 0x0705,
+ 0x0396, 0x007e, 0xff31, 0xfda3, 0xfa82, 0xf97d,
+ 0xfd09, 0x0113, 0x030e, 0x058f, 0x0796, 0x0480,
+ 0xfe2f, 0xfab7, 0xfae8, 0xfcd3, 0xff14, 0xfdcd,
+ 0xf809, 0xf458, 0xf74c, 0xfd06, 0xff82, 0xfe9c,
+ 0xff18, 0x0126, 0xff46, 0xf88f, 0xf228, 0xef95,
+ 0xf003, 0xf09b, 0xf08f, 0xf231, 0xf6d6, 0xfbeb,
+ 0xfcb4, 0xf90d, 0xf75f, 0xf915, 0xf7ba, 0xf235,
+ 0xed71, 0xeb31, 0xeb01, 0xebf8, 0xec65, 0xed61,
+ 0xf174, 0xf73a, 0xfa77, 0xf9b4, 0xf7cb, 0xf715,
+ 0xf65c, 0xf3a1, 0xef72, 0xed78, 0xeefc, 0xeee2,
+ 0xeae1, 0xe884, 0xea70, 0xed81, 0xf045, 0xf2a1,
+ 0xf3ef, 0xf4df, 0xf574, 0xf43f, 0xf1b4, 0xef13,
+ 0xec68, 0xebd3, 0xefc3, 0xf4c4, 0xf64c, 0xf519,
+ 0xf2a6, 0xefc2, 0xeed8, 0xf088, 0xf2f1, 0xf420,
+ 0xf43f, 0xf712, 0xfc7e, 0xfea0, 0xfdd2, 0xfdfd,
+ 0xfd65, 0xfc93, 0xfeb4, 0x016e, 0x0283, 0x01e9,
+ 0xfde2, 0xf851, 0xf66a, 0xf8dd, 0xfcc7, 0x0059,
+ 0x038b, 0x05ad, 0x044c, 0x002f, 0xfd91, 0xfc35,
+ 0xfa16, 0xfaea, 0x0008, 0x02db, 0x0165, 0x0144,
+ 0x0361, 0x04a9, 0x0505, 0x0446, 0x028b, 0x00cf,
+ 0xfcbf, 0xf776, 0xf71f, 0xfa26, 0xfab9, 0xfa38,
+ 0xfb12, 0xfc40, 0xfdb3, 0xff21, 0xfe93, 0xfbb7,
+ 0xf965, 0xf9ce, 0xfb2e, 0xfc58, 0xfe2d, 0xff0e,
+ 0xfe5a, 0xfd5e, 0xfa56, 0xf67a, 0xf6fb, 0xfa9f,
+ 0xfda6, 0x0059, 0x0193, 0xffd4, 0xfd43, 0xfbf0,
+ 0xfc00, 0xfce0, 0xfe7c, 0x0156, 0x0395, 0x02d8,
+ 0x010a, 0x015f, 0x03ed, 0x0669, 0x06b9, 0x051a,
+ 0x0352, 0x02c6, 0x03c7, 0x0523, 0x05b1, 0x04e0,
+ 0x028c, 0x0120, 0x01c7, 0x00f9, 0xfe74, 0xfe18,
+ 0x002a, 0x031a, 0x0549, 0x04d7, 0x0438, 0x057f,
+ 0x0584, 0x03f0, 0x0319, 0x01ab, 0xfe68, 0xfb10,
+ 0xfaef, 0xff6e, 0x031e, 0x0156, 0xfedc, 0x0037,
+ 0x0416, 0x08e1, 0x0b56, 0x08f4, 0x061b, 0x05c6,
+ 0x055f, 0x054e, 0x067d, 0x05ea, 0x042b, 0x046b,
+ 0x057e, 0x061e, 0x06d9, 0x0770, 0x090d, 0x0af3,
+ 0x08e6, 0x0477, 0x02ff, 0x03ef, 0x04de, 0x062b,
+ 0x078d, 0x07a7, 0x0693, 0x077e, 0x0be6, 0x0ea7,
+ 0x0cac, 0x09c1, 0x076f, 0x05b1, 0x0655, 0x071a,
+ 0x05d5, 0x056b, 0x064c, 0x05f8, 0x03bc, 0x00c1,
+ 0x00fa, 0x0594, 0x0888, 0x0731, 0x0546, 0x0441,
+ 0x0525, 0x0940, 0x0c82, 0x0b2b, 0x0745, 0x030e,
+ 0xffda, 0xff38, 0xff3c, 0xfd1c, 0xfa49, 0xf91c,
+ 0xf96d, 0xfae3, 0xfe47, 0x02ad, 0x03d4, 0x0075,
+ 0xfe3f, 0xffc9, 0xff94, 0xfa57, 0xf39a, 0xf036,
+ 0xf165, 0xf2e8, 0xf18a, 0xf0e5, 0xf343, 0xf5c6,
+ 0xf7cd, 0xfa4f, 0xfbb2, 0xfa76, 0xf6b3, 0xf2a8,
+ 0xf26c, 0xf636, 0xf94f, 0xf8cc, 0xf63b, 0xf4a0,
+ 0xf52a, 0xf6e0, 0xf916, 0xfadd, 0xfa34, 0xf856,
+ 0xf7d3, 0xf639, 0xf292, 0xf1c1, 0xf374, 0xf257,
+ 0xf066, 0xf25c, 0xf5e0, 0xf737, 0xf75e, 0xf7af,
+ 0xf6d4, 0xf4c0, 0xf4a9, 0xf7f9, 0xfc56, 0xff03,
+ 0xfe76, 0xfc3c, 0xfb7e, 0xfbc2, 0xfbf4, 0xfc7e,
+ 0xfb7e, 0xf9d4, 0xfb2d, 0xfc63, 0xf983, 0xf626,
+ 0xf655, 0xf9a2, 0xfbd8, 0xf985, 0xf68d, 0xf6c5,
+ 0xf696, 0xf44d, 0xf2ff, 0xf347, 0xf385, 0xf36b,
+ 0xf503, 0xf9a9, 0xfe26, 0xff7d, 0xff6b, 0xffc3,
+ 0xfee5, 0xfa9a, 0xf567, 0xf4ed, 0xf81d, 0xf8cd,
+ 0xf706, 0xf797, 0xfbb5, 0x006b, 0x02db, 0x036d,
+ 0x035a, 0x0204, 0xffc7, 0xfdd2, 0xfbfd, 0xfa79,
+ 0xf9b8, 0xf9d2, 0xfb06, 0xfbf1, 0xfc4c, 0xff0b,
+ 0x0330, 0x03b8, 0x00de, 0xfef7, 0xff44, 0x0029,
+ 0x0035, 0xffb7, 0xffa9, 0xff46, 0xfeac, 0xffde,
+ 0x0199, 0x01ab, 0x01fd, 0x02b4, 0x0106, 0xfe7b,
+ 0xfdb9, 0xfd7a, 0xfcc6, 0xfc8a, 0xfdc3, 0x0029,
+ 0x004f, 0xfc1a, 0xf789, 0xf6c6, 0xf866, 0xf8c4,
+ 0xf7e6, 0xf9b9, 0xfed1, 0x02b8, 0x039d, 0x03b4,
+ 0x041e, 0x03ef, 0x020a, 0xff5b, 0xfdf8, 0xfdce,
+ 0xfe00, 0xfe83, 0xfe96, 0xfe06, 0xfdbb, 0xfe5e,
+ 0x00d8, 0x04ec, 0x0865, 0x0a2d, 0x0ac7, 0x0ac3,
+ 0x0a0c, 0x0795, 0x0371, 0xffc8, 0xfefc, 0x01ff,
+ 0x0669, 0x08b0, 0x090a, 0x09c5, 0x0cc4, 0x11ee,
+ 0x14a1, 0x129e, 0x106e, 0x0f33, 0x0c14, 0x08fe,
+ 0x0908, 0x0b8d, 0x0ddf, 0x0df4, 0x0d8d, 0x0e65,
+ 0x0ec5, 0x0f2b, 0x0fdc, 0x0e66, 0x0d69, 0x0f97,
+ 0x10bc, 0x0ec6, 0x0b7d, 0x08b4, 0x0966, 0x0be9,
+ 0x0af9, 0x07dc, 0x0620, 0x0526, 0x0423, 0x041d,
+ 0x074f, 0x0dfa, 0x131c, 0x1307, 0x10d6, 0x105b,
+ 0x100c, 0x0d72, 0x0bc0, 0x0d10, 0x0cc5, 0x0a07,
+ 0x08d7, 0x090a, 0x099f, 0x0a5c, 0x0a83, 0x0c59,
+ 0x0f22, 0x0ead, 0x0c9a, 0x0ab6, 0x078b, 0x04bf,
+ 0x0351, 0x0241, 0x00e1, 0xfd8f, 0xfaf5, 0xfc5a,
+ 0xfdc8, 0xfde1, 0xff76, 0x015b, 0x0290, 0x0280,
+ 0x0018, 0xfe4a, 0xfe3b, 0xfdcf, 0xfdee, 0xff06,
+ 0xffcd, 0xfff0, 0xfea8, 0xfcf5, 0xfd0d, 0xfe78,
+ 0xff4c, 0xfdda, 0xfb7a, 0xfaa0, 0xf96d, 0xf7dd,
+ 0xf8d2, 0xfa14, 0xfa11, 0xf9fb, 0xf802, 0xf5ab,
+ 0xf705, 0xf9af, 0xf97f, 0xf6e0, 0xf69f, 0xfb64,
+ 0xfeb2, 0xfc29, 0xf9bd, 0xfa8e, 0xfc13, 0xfda0,
+ 0xfe9c, 0xfe87, 0xfdff, 0xfc95, 0xfb7d, 0xfd7b,
+ 0x019f, 0x03ee, 0x02c5, 0x00e5, 0x016e, 0x047f,
+ 0x0790, 0x0733, 0x03e2, 0x0165, 0xff9a, 0xfd78,
+ 0xfe0d, 0x0246, 0x0681, 0x07ee, 0x078b, 0x0788,
+ 0x0761, 0x06b2, 0x0662, 0x0471, 0x0113, 0x0094,
+ 0x02b0, 0x04e7, 0x0723, 0x0806, 0x06a1, 0x0442,
+ 0x02b0, 0x02f8, 0x02a9, 0x004d, 0xfeca, 0xfeb8,
+ 0x000e, 0x02c1, 0x0190, 0xfc5c, 0xfac8, 0xfd6e,
+ 0x0000, 0x01a7, 0x02c1, 0x0443, 0x0513, 0x02f3,
+ 0x00c3, 0x00d3, 0x00e9, 0x0075, 0xff40, 0xfc92,
+ 0xfb35, 0xfcf7, 0xff24, 0xffea, 0x0079, 0x00ef,
+ 0x0048, 0x0057, 0x0265, 0x03f7, 0x04b8, 0x054e,
+ 0x0332, 0xff6e, 0xfdda, 0xfd83, 0xfce3, 0xfcd0,
+ 0xfcf6, 0xfd8b, 0xff75, 0x018c, 0x02cf, 0x03be,
+ 0x03ae, 0x017f, 0xff7c, 0x0072, 0x02e5, 0x053a,
+ 0x074f, 0x067f, 0x02af, 0x0070, 0x00cd, 0x021b,
+ 0x043a, 0x05cb, 0x05ae, 0x0520, 0x0417, 0x0124,
+ 0xfd19, 0xfac1, 0xfa6f, 0xf982, 0xf80f, 0xf8bf,
+ 0xfbb4, 0xff22, 0x010b, 0x0075, 0xfec8, 0xfc92,
+ 0xf9ad, 0xf8c5, 0xfb2d, 0xfe0b, 0xff22, 0xff2b,
+ 0x000c, 0x01c5, 0x01f5, 0xfff1, 0xfde9, 0xfe60,
+ 0x00f3, 0x0190, 0xffe8, 0x015f, 0x05d8, 0x07fd,
+ 0x080a, 0x08e4, 0x09a3, 0x08f1, 0x07e8, 0x080f,
+ 0x096e, 0x0b37, 0x0c1d, 0x0a0a, 0x061a, 0x0530,
+ 0x084c, 0x0b9a, 0x0d1a, 0x0e59, 0x117e, 0x150b,
+ 0x14c6, 0x115e, 0x0ffe, 0x11e6, 0x1322, 0x103f,
+ 0x0afb, 0x0805, 0x0917, 0x0d52, 0x129f, 0x1544,
+ 0x148e, 0x12f8, 0x119d, 0x11e6, 0x13d8, 0x140f,
+ 0x12a3, 0x1162, 0x0e74, 0x0b08, 0x0a01, 0x0865,
+ 0x04ec, 0x03f1, 0x05f5, 0x079f, 0x0951, 0x0c89,
+ 0x0e8d, 0x0d07, 0x0a80, 0x0978, 0x09a1, 0x0a22,
+ 0x0944, 0x0708, 0x06c5, 0x08ff, 0x0b18, 0x0c4d,
+ 0x0c88, 0x0c6b, 0x0d40, 0x0e0a, 0x0ea8, 0x102b,
+ 0x101a, 0x0c95, 0x0841, 0x058f, 0x03f7, 0x01ba,
+ 0xff65, 0xffe4, 0x034e, 0x07a2, 0x0b79, 0x0c4f,
+ 0x0a62, 0x0975, 0x08ed, 0x0670, 0x03aa, 0x0260,
+ 0x0329, 0x0495, 0x0282, 0xfef1, 0x008a, 0x057e,
+ 0x0731, 0x04f5, 0x0201, 0x01c2, 0x04c6, 0x0653,
+ 0x03c2, 0x00e9, 0x0087, 0x00b4, 0xff41, 0xfd34,
+ 0xfe25, 0x028b, 0x05f9, 0x0686, 0x0735, 0x08fb,
+ 0x0884, 0x03ef, 0xfecb, 0xfe2f, 0x0203, 0x0558,
+ 0x047c, 0x002a, 0xfbb9, 0xf9ff, 0xfc63, 0x01dd,
+ 0x0609, 0x068c, 0x0637, 0x05a1, 0x0248, 0xfdc3,
+ 0xfb1f, 0xfa11, 0xf9ea, 0xfae6, 0xfc8b, 0xfde3,
+ 0xfe88, 0xff08, 0xff15, 0xfd55, 0xfb29, 0xfb3e,
+ 0xfc62, 0xfcd7, 0xfe86, 0x011b, 0x0103, 0xffe8,
+ 0x0109, 0x00dc, 0xfd97, 0xfafc, 0xf8b1, 0xf599,
+ 0xf496, 0xf4f9, 0xf4e6, 0xf5e8, 0xf692, 0xf4b6,
+ 0xf2ca, 0xf2fa, 0xf4f5, 0xf75d, 0xf802, 0xf6d1,
+ 0xf5fb, 0xf692, 0xf7d0, 0xf804, 0xf6b7, 0xf5cd,
+ 0xf6b5, 0xf85c, 0xf962, 0xfacb, 0xfdb8, 0x0003,
+ 0xff6e, 0xfd0b, 0xfb4b, 0xfaf2, 0xf9a3, 0xf61f,
+ 0xf3e8, 0xf480, 0xf5fe, 0xf90f, 0xfd2a, 0xfeb9,
+ 0xfd96, 0xfc23, 0xfbc4, 0xfc87, 0xfcdf, 0xfc0d,
+ 0xf995, 0xf518, 0xf2d4, 0xf5ed, 0xf9db, 0xfafe,
+ 0xfb1d, 0xfbec, 0xfd64, 0xfe5a, 0xfe55, 0xff0e,
+ 0x0138, 0x0354, 0x03f0, 0x028c, 0x0074, 0xffb0,
+ 0x003f, 0x0066, 0xfebd, 0xfbc9, 0xfa65, 0xfd38,
+ 0x0283, 0x052c, 0x0450, 0x041e, 0x05ea, 0x0717,
+ 0x05d0, 0x0316, 0x0249, 0x0437, 0x05af, 0x0585,
+ 0x049e, 0x0384, 0x0354, 0x036c, 0x033c, 0x047e,
+ 0x0553, 0x0372, 0x0249, 0x0300, 0x02b4, 0x0238,
+ 0x0309, 0x02e6, 0x00e6, 0xff88, 0x0001, 0x012e,
+ 0x02bb, 0x047a, 0x0583, 0x0627, 0x0602, 0x0436,
+ 0x0287, 0x0236, 0x0348, 0x0566, 0x04b6, 0x00bd,
+ 0x0047, 0x043a, 0x0618, 0x04c7, 0x04bc, 0x0783,
+ 0x0933, 0x0715, 0x0542, 0x06da, 0x0884, 0x07a9,
+ 0x05e9, 0x058f, 0x0673, 0x05f7, 0x0350, 0x0079,
+ 0xfec4, 0xfe72, 0xff0b, 0x0001, 0x018d, 0x0364,
+ 0x047d, 0x03b3, 0x015f, 0x0040, 0x014e, 0x040d,
+ 0x08ae, 0x0afc, 0x0792, 0x0384, 0x0259, 0x0213,
+ 0x01eb, 0x0115, 0xffef, 0x00fd, 0x0323, 0x0399,
+ 0x01da, 0xff0d, 0xfe14, 0xfec6, 0xfe01, 0xfcb7,
+ 0xfcff, 0xfe72, 0x00d3, 0x0309, 0x041b, 0x0543,
+ 0x06a5, 0x0708, 0x060a, 0x03ea, 0x0162, 0xff19,
+ 0xfd3c, 0xfbd0, 0xfbe5, 0xff19, 0x0295, 0x0281,
+ 0x0287, 0x068a, 0x0b58, 0x0d70, 0x0bd8, 0x07c3,
+ 0x0485, 0x022f, 0xfeff, 0xfc8d, 0xfc84, 0xfe50,
+ 0x004b, 0x0142, 0x029a, 0x058e, 0x0897, 0x0a32,
+ 0x0a40, 0x097e, 0x07c1, 0x03b3, 0xfef5, 0xfcca,
+ 0xfd89, 0xff59, 0xff54, 0xfcf5, 0xfc01, 0xfdb1,
+ 0xff43, 0xff85, 0xff2e, 0x000e, 0x032f, 0x0624,
+ 0x067b, 0x04d3, 0x0364, 0x0388, 0x03f2, 0x0387,
+ 0x0307, 0x026f, 0x01f2, 0x0232, 0x02a3, 0x02bf,
+ 0x00ff, 0xfd0d, 0xfb6c, 0xfe51, 0x01a3, 0x0194,
+ 0xfdc0, 0xf936, 0xf755, 0xf719, 0xf677, 0xf519,
+ 0xf33f, 0xf34a, 0xf67d, 0xfa58, 0xfdcb, 0x0155,
+ 0x034e, 0x0240, 0xff73, 0xfd4a, 0xfcf1, 0xfda3,
+ 0xfd00, 0xf9c5, 0xf7bf, 0xfa0a, 0xfc3f, 0xfaca,
+ 0xf839, 0xf730, 0xf8ed, 0xfc00, 0xfcdf, 0xfcae,
+ 0xfd8f, 0xfd8b, 0xfc35, 0xfa71, 0xf82e, 0xf6c9,
+ 0xf661, 0xf583, 0xf530, 0xf6be, 0xf897, 0xf7eb,
+ 0xf53c, 0xf404, 0xf499, 0xf525, 0xf58d, 0xf634,
+ 0xf86f, 0xfbc1, 0xfc81, 0xfb67, 0xf9d7, 0xf489,
+ 0xedda, 0xebad, 0xece2, 0xefb0, 0xf470, 0xf885,
+ 0xf9f0, 0xf94d, 0xf7bd, 0xf740, 0xf8d1, 0xfa72,
+ 0xf9cf, 0xf7e7, 0xf78e, 0xf81e, 0xf744, 0xf5c8,
+ 0xf594, 0xf79e, 0xfb57, 0xff25, 0x0232, 0x0232,
+ 0xfd99, 0xf8f4, 0xf786, 0xf736, 0xf754, 0xf778,
+ 0xf723, 0xf8fd, 0xfce9, 0xff8d, 0x00a3, 0x0089,
+ 0xfeff, 0xfe0f, 0xfefc, 0xffa7, 0xfe4d, 0xfc9c,
+ 0xfcff, 0xff47, 0x01ec, 0x0361, 0x0327, 0x02da,
+ 0x02a3, 0x0160, 0x0021, 0xff46, 0xfe76, 0xfed1,
+ 0xffa1, 0xffff, 0xffed, 0xfd08, 0xf854, 0xf6fb,
+ 0xf872, 0xf975, 0xfaab, 0xfbb1, 0xfa64, 0xf78a,
+ 0xf558, 0xf4d6, 0xf6b2, 0xfa1b, 0xfbca, 0xfbb4,
+ 0xfdaf, 0x0058, 0xffe5, 0xfe99, 0xfe70, 0xfdc3,
+ 0xfd0c, 0xfcce, 0xfc48, 0xfc84, 0xfe9f, 0x0274,
+ 0x060c, 0x066f, 0x03f4, 0x007f, 0xfc6f, 0xf94e,
+ 0xf879, 0xf8aa, 0xf8ac, 0xf94b, 0xfcaa, 0x0269,
+ 0x061e, 0x0599, 0x03fc, 0x044a, 0x04e7, 0x02d3,
+ 0x0040, 0x00ad, 0x019c, 0x0098, 0xff87, 0xff62,
+ 0x001b, 0x0180, 0x02d3, 0x04e3, 0x0757, 0x0856,
+ 0x087c, 0x076e, 0x03b7, 0xffff, 0xff04, 0xff7d,
+ 0xffe4, 0x00e2, 0x0316, 0x045e, 0x028e, 0xffcb,
+ 0xffa5, 0x0271, 0x051f, 0x05b2, 0x06d7, 0x09bf,
+ 0x0b42, 0x0b54, 0x0b79, 0x0a8b, 0x0941, 0x08a3,
+ 0x079d, 0x06e8, 0x0718, 0x0736, 0x0738, 0x061f,
+ 0x039d, 0x0309, 0x0629, 0x09b6, 0x0a41, 0x0939,
+ 0x08ea, 0x06cd, 0x01b5, 0xfe24, 0xfe6d, 0x0017,
+ 0x004d, 0xfee7, 0xffd6, 0x0534, 0x0a36, 0x0a82,
+ 0x083f, 0x07c5, 0x086e, 0x050f, 0xfd90, 0xf7a0,
+ 0xf575, 0xf5b2, 0xf76a, 0xfa2a, 0xfe1c, 0x012c,
+ 0xffdb, 0xfba3, 0xf897, 0xf7b7, 0xf7ec, 0xf7ae,
+ 0xf681, 0xf5c6, 0xf717, 0xfa51, 0xfc04, 0xf9fa,
+ 0xf839, 0xf9f3, 0xfc32, 0xfc5c, 0xfbd8, 0xfc11,
+ 0xfb5b, 0xf882, 0xf6d6, 0xf8b8, 0xfb46, 0xfb31,
+ 0xf826, 0xf5a0, 0xf797, 0xfb38, 0xfb6f, 0xf94c,
+ 0xf713, 0xf442, 0xf18c, 0xf139, 0xf396, 0xf665,
+ 0xf8b9, 0xfb03, 0xfb48, 0xf938, 0xf80b, 0xf766,
+ 0xf59d, 0xf51e, 0xf688, 0xf660, 0xf390, 0xf21c,
+ 0xf5fd, 0xfced, 0x017c, 0x01bf, 0xff16, 0xfbe4,
+ 0xf927, 0xf65a, 0xf554, 0xf6b9, 0xf6f4, 0xf621,
+ 0xf73b, 0xf89f, 0xf801, 0xf67d, 0xf5cf, 0xf6ff,
+ 0xf9c9, 0xfd03, 0xff69, 0xff9d, 0xfdc2, 0xfb9e,
+ 0xfae2, 0xfc1d, 0xfd57, 0xfd09, 0xfd46, 0xfe7f,
+ 0xfd3b, 0xf925, 0xf767, 0xfa94, 0xfd37, 0xfaef,
+ 0xf885, 0xfa17, 0xfc6d, 0xfd35, 0xfdc9, 0xff53,
+ 0x0216, 0x03f8, 0x0269, 0xff81, 0xff21, 0x00d4,
+ 0x01c6, 0x01eb, 0x0309, 0x050a, 0x0670, 0x05f8,
+ 0x0367, 0x007c, 0xfec8, 0xfd50, 0xfad6, 0xf884,
+ 0xf932, 0xfce7, 0xff9a, 0x0024, 0x013c, 0x022a,
+ 0xffe6, 0xfad1, 0xf643, 0xf4dc, 0xf507, 0xf389,
+ 0xf191, 0xf209, 0xf440, 0xf641, 0xf823, 0xfa95,
+ 0xfcc9, 0xfe55, 0xffcf, 0xffda, 0xfdea, 0xfc2c,
+ 0xfa46, 0xf7c0, 0xf683, 0xf546, 0xf3b1, 0xf548,
+ 0xf85f, 0xf90a, 0xf8ed, 0xfa04, 0xfb8e, 0xfc1a,
+ 0xfaa8, 0xf8a0, 0xf77d, 0xf692, 0xf5dc, 0xf548,
+ 0xf3b3, 0xf1e5, 0xf286, 0xf690, 0xfb81, 0xfe7b,
+ 0xff1d, 0xfdff, 0xfdba, 0x012b, 0x050c, 0x04f3,
+ 0x020d, 0xfeaa, 0xfd5f, 0x003b, 0x03ab, 0x03ea,
+ 0x023b, 0x00cb, 0x015c, 0x0377, 0x03f6, 0x03a5,
+ 0x058c, 0x07a2, 0x0711, 0x05c9, 0x0655, 0x07f7,
+ 0x0941, 0x0a18, 0x09be, 0x07dc, 0x06d7, 0x07ef,
+ 0x0936, 0x0a4e, 0x0ce5, 0x1012, 0x10d2, 0x0ee4,
+ 0x0cbf, 0x0b67, 0x0aa2, 0x0a7d, 0x0997, 0x06b9,
+ 0x03d9, 0x02d7, 0x02b3, 0x02fc, 0x0507, 0x07f2,
+ 0x0966, 0x0a40, 0x0bb6, 0x0c31, 0x0bb9, 0x0b9f,
+ 0x0b84, 0x0c0f, 0x0de4, 0x0fe0, 0x116f, 0x116f,
+ 0x0f93, 0x0ec1, 0x0f53, 0x0ec2, 0x0d37, 0x0bd3,
+ 0x0b3a, 0x0ba2, 0x0b8e, 0x0b43, 0x0c89, 0x0d60,
+ 0x0b22, 0x0884, 0x09ad, 0x0cae, 0x0cb5, 0x0b35,
+ 0x0c76, 0x0fa0, 0x1120, 0x0e3f, 0x08d7, 0x070f,
+ 0x0865, 0x0850, 0x08e9, 0x0a3a, 0x086e, 0x06e3,
+ 0x08b3, 0x09bd, 0x0803, 0x0628, 0x06a6, 0x08c8,
+ 0x0984, 0x08df, 0x0844, 0x0697, 0x042b, 0x02ac,
+ 0x0290, 0x042b, 0x053f, 0x02ff, 0xffc6, 0xfe8f,
+ 0xfe6f, 0xfe50, 0xfec2, 0xff82, 0xfeb8, 0xfcb2,
+ 0xfc6a, 0xfdfb, 0xff54, 0x000b, 0xff03, 0xfb8b,
+ 0xf8ac, 0xf955, 0xfc9e, 0xfedf, 0xfdf1, 0xfc78,
+ 0xfccf, 0xfce1, 0xfb8f, 0xfaa7, 0xfa47, 0xf90e,
+ 0xf73f, 0xf630, 0xf6bf, 0xf8f3, 0xfb13, 0xfab9,
+ 0xf8c7, 0xf8bd, 0xfb77, 0xfe2e, 0xfe3f, 0xfcb3,
+ 0xfcab, 0xfe20, 0xfee7, 0xff64, 0x00ac, 0x01b9,
+ 0x015c, 0x0015, 0xff0a, 0xfe3a, 0xfda1, 0xfdde,
+ 0xfdb5, 0xfc80, 0xfc8c, 0xfe8b, 0x012a, 0x0368,
+ 0x03c8, 0x02a2, 0x020a, 0x02a2, 0x047f, 0x060e,
+ 0x04fa, 0x02fc, 0x023f, 0x021e, 0x0202, 0x011f,
+ 0x0017, 0x0096, 0x011d, 0x010e, 0x0120, 0xff15,
+ 0xfbbd, 0xfb10, 0xfcde, 0xff6a, 0x0079, 0xfde4,
+ 0xfb11, 0xfb65, 0xfc93, 0xfd5e, 0xff43, 0x01c1,
+ 0x02ae, 0x01fa, 0x01f8, 0x0211, 0x0007, 0xfdae,
+ 0xfca7, 0xfc28, 0xfc46, 0xfbf4, 0xfb6c, 0xfd3e,
+ 0xff51, 0xff1c, 0xff0e, 0xff9a, 0xff8d, 0x0039,
+ 0x01da, 0x02c6, 0x01ce, 0xffc6, 0xfed4, 0xfe38,
+ 0xfcab, 0xfc6b, 0xfdac, 0xfceb, 0xf954, 0xf6ac,
+ 0xf880, 0xfc91, 0xfe5a, 0xfe3e, 0xfd34, 0xf9ce,
+ 0xf64f, 0xf687, 0xf990, 0xfc5c, 0xfd81, 0xfd84,
+ 0xfdc3, 0xff27, 0x0159, 0x02c2, 0x02aa, 0x01b7,
+ 0x0010, 0xfefb, 0xffec, 0x00a8, 0xff48, 0xfd5b,
+ 0xfc20, 0xfc37, 0xfe1d, 0x007f, 0x024f, 0x0405,
+ 0x0571, 0x05b2, 0x04d1, 0x03d2, 0x03c1, 0x05b9,
+ 0x095c, 0x0b6e, 0x0a5e, 0x07fd, 0x048c, 0x0071,
+ 0xfe55, 0xfee8, 0x01ab, 0x056f, 0x06e9, 0x0664,
+ 0x06e0, 0x0710, 0x053e, 0x0334, 0x0306, 0x0540,
+ 0x0804, 0x09fa, 0x0cb1, 0x0f79, 0x0f40, 0x0b9a,
+ 0x0688, 0x0322, 0x02d1, 0x0388, 0x04ac, 0x070f,
+ 0x08be, 0x0888, 0x07fc, 0x0745, 0x0561, 0x03af,
+ 0x03d6, 0x03ce, 0x028e, 0x032a, 0x04fd, 0x0488,
+ 0x0389, 0x0380, 0x031f, 0x047c, 0x084d, 0x0b21,
+ 0x0c0c, 0x0bb5, 0x0a89, 0x0a5a, 0x0b0d, 0x0ab2,
+ 0x0963, 0x089a, 0x0979, 0x0ba1, 0x0d40, 0x0cd8,
+ 0x09bc, 0x05d2, 0x04fb, 0x073c, 0x09bb, 0x0bbb,
+ 0x0c51, 0x0a1e, 0x06bb, 0x040a, 0x01c2, 0x0068,
+ 0x0165, 0x0401, 0x064a, 0x0804, 0x0a2b, 0x0c46,
+ 0x0bd9, 0x0786, 0x0244, 0xffd4, 0xff6e, 0xff50,
+ 0x00ad, 0x0343, 0x042c, 0x03c4, 0x0583, 0x08db,
+ 0x0926, 0x055e, 0x00c3, 0xfdd7, 0xfe3d, 0x015d,
+ 0x0336, 0x02af, 0x0265, 0x027d, 0x01e8, 0x0120,
+ 0x007d, 0x0070, 0x0190, 0x032a, 0x039e, 0x021d,
+ 0x0016, 0xff93, 0x0124, 0x0448, 0x06e4, 0x0715,
+ 0x05dc, 0x0496, 0x0407, 0x0501, 0x05f9, 0x0552,
+ 0x0459, 0x0487, 0x05d1, 0x0683, 0x0550, 0x03a1,
+ 0x01cb, 0xff93, 0xfef3, 0xfed0, 0xfd65, 0xfdaa,
+ 0xffce, 0x00f4, 0x01f0, 0x036b, 0x0487, 0x0537,
+ 0x043d, 0x01c1, 0x008a, 0x0116, 0x0173, 0x008f,
+ 0xffc5, 0x008f, 0x0175, 0x0192, 0x029e, 0x047c,
+ 0x051f, 0x031c, 0xff89, 0xfe2d, 0xff65, 0xff8d,
+ 0xfe2a, 0xfd32, 0xfd33, 0xfdb6, 0xfe0d, 0xfeda,
+ 0x0076, 0x01b7, 0x02b6, 0x0228, 0xfe2b, 0xfa57,
+ 0xf94b, 0xf8f6, 0xfa14, 0xfce7, 0xfe35, 0xfe22,
+ 0xfe6a, 0xfe85, 0xfef7, 0x0099, 0x01c0, 0x005c,
+ 0xfdfe, 0xfdb4, 0xfe2a, 0xfd33, 0xfc69, 0xfc3d,
+ 0xfc29, 0xfd14, 0xfd50, 0xfb73, 0xf9bd, 0xf953,
+ 0xfa6f, 0xfd19, 0xfed1, 0xfecc, 0xff7d, 0x01a6,
+ 0x0418, 0x05b3, 0x0636, 0x0667, 0x0645, 0x04ec,
+ 0x0242, 0xff68, 0xfdd4, 0xfd05, 0xfbe3, 0xfc36,
+ 0xff47, 0x02eb, 0x04df, 0x0448, 0x014d, 0xfc77,
+ 0xf660, 0xf266, 0xf460, 0xfa4e, 0xffa7, 0x02b2,
+ 0x02f7, 0x017b, 0x00d7, 0x011f, 0x002c, 0xfd98,
+ 0xfb5f, 0xfbf1, 0xff4e, 0x020c, 0x0148, 0xfe2d,
+ 0xfbd9, 0xfb7d, 0xfbc7, 0xfb40, 0xfa54, 0xfab2,
+ 0xfc87, 0xfe21, 0xff42, 0x00f9, 0x018f, 0xff08,
+ 0xfc27, 0xfbdf, 0xfcc9, 0xfdac, 0xff43, 0x0169,
+ 0x033c, 0x0333, 0x00b3, 0xfec0, 0xffc8, 0x0200,
+ 0x034f, 0x030b, 0x018d, 0x00c4, 0x01f2, 0x0497,
+ 0x077f, 0x08b2, 0x07b3, 0x061e, 0x0430, 0x01eb,
+ 0x0164, 0x0335, 0x04d5, 0x04d5, 0x0507, 0x0678,
+ 0x0727, 0x0628, 0x0514, 0x04ab, 0x0412, 0x026c,
+ 0x013f, 0x036b, 0x0694, 0x05c8, 0x02f1, 0x029a,
+ 0x04b2, 0x079b, 0x0a4b, 0x0bbe, 0x0b0e, 0x0768,
+ 0x0337, 0x0291, 0x03f1, 0x03a4, 0x0354, 0x05b9,
+ 0x08b8, 0x0966, 0x0901, 0x0952, 0x08ad, 0x06a7,
+ 0x05b9, 0x0599, 0x0424, 0x01d4, 0x00b0, 0x01eb,
+ 0x044d, 0x05a3, 0x0639, 0x065b, 0x04b3, 0x02c6,
+ 0x034d, 0x0544, 0x0635, 0x05cf, 0x0569, 0x0588,
+ 0x04e2, 0x0387, 0x0380, 0x047e, 0x041c, 0x01b3,
+ 0xfe86, 0xfcc4, 0xfe1a, 0x0108, 0x0289, 0x022d,
+ 0x011b, 0x001e, 0x00cb, 0x0355, 0x048a, 0x0334,
+ 0x0204, 0x0169, 0xfee3, 0xfaa9, 0xf7e1, 0xf7d4,
+ 0xf8a1, 0xf9c6, 0xfd96, 0x0330, 0x063b, 0x0649,
+ 0x05b0, 0x038e, 0xfeb0, 0xf952, 0xf64d, 0xf674,
+ 0xf91c, 0xfd01, 0x006f, 0x01d4, 0x01d4, 0x02c4,
+ 0x045f, 0x0467, 0x03b6, 0x04af, 0x0607, 0x0528,
+ 0x0313, 0x0231, 0x02a2, 0x035a, 0x0376, 0x0205,
+ 0xff2e, 0xfca6, 0xfbcd, 0xfc12, 0xfb9e, 0xfa18,
+ 0xf946, 0xf9b3, 0xfaa5, 0xfd09, 0x00ce, 0x02d4,
+ 0x019f, 0xff24, 0xfd05, 0xfb16, 0xf975, 0xf99c,
+ 0xfb6c, 0xfc30, 0xfb54, 0xfaa0, 0xfad8, 0xfc65,
+ 0xfe07, 0xfd20, 0xfb24, 0xfac3, 0xfac9, 0xf9a2,
+ 0xf6d7, 0xf3db, 0xf4ba, 0xf841, 0xf8a1, 0xf6aa,
+ 0xf6ef, 0xf96b, 0xfc01, 0xfe02, 0xffda, 0x00ad,
+ 0xfe3e, 0xfa45, 0xf96a, 0xfb92, 0xfcce, 0xfb99,
+ 0xfa42, 0xface, 0xfbcd, 0xfcbc, 0xff15, 0x0104,
+ 0x00ae, 0x0020, 0xff85, 0xfc99, 0xf861, 0xf6bc,
+ 0xf8ef, 0xfba0, 0xfc99, 0xfdc5, 0xff18, 0xfe4f,
+ 0xfc1d, 0xfae6, 0xfc25, 0xfedd, 0x001b, 0x0025,
+ 0x0129, 0x0241, 0x025d, 0x01ef, 0x010b, 0x0079,
+ 0x00fe, 0x0217, 0x02ae, 0x0217, 0x0192, 0x017b,
+ 0xffab, 0xfd72, 0xfe19, 0xffc2, 0xffa4, 0xfed0,
+ 0xfee6, 0xff90, 0xfe6f, 0xfa77, 0xf70f, 0xf6af,
+ 0xf6c1, 0xf4dd, 0xf30b, 0xf49b, 0xf8e1, 0xfbee,
+ 0xfbe6, 0xfa1f, 0xf8c2, 0xf8ee, 0xf975, 0xf8fc,
+ 0xf8f9, 0xfb63, 0xfed0, 0xfffc, 0xfedf, 0xfe20,
+ 0xfd81, 0xfb39, 0xf861, 0xf688, 0xf665, 0xf8e1,
+ 0xfccb, 0x0063, 0x042e, 0x0765, 0x07d6, 0x058f,
+ 0x019a, 0xfd9d, 0xfc37, 0xfc7c, 0xfb79, 0xfadf,
+ 0xfc90, 0xfd58, 0xfc08, 0xfb8a, 0xfc2d, 0xfc65,
+ 0xfc14, 0xfba0, 0xfcf2, 0x010b, 0x0419, 0x0310,
+ 0xffc4, 0xfbfb, 0xf8a5, 0xf7d5, 0xf9d0, 0xfc34,
+ 0xfd89, 0xfe07, 0xfde0, 0xfd3e, 0xfcd3, 0xfd32,
+ 0xfe45, 0xff48, 0xff90, 0xffe8, 0x00bb, 0x006c,
+ 0xfea7, 0xfca7, 0xfa36, 0xf7f5, 0xf85a, 0xfbba,
+ 0xffb4, 0x01ae, 0x0157, 0x0113, 0x01d5, 0x027d,
+ 0x03aa, 0x055d, 0x0554, 0x0413, 0x040b, 0x04b2,
+ 0x04dc, 0x050b, 0x0508, 0x0433, 0x0319, 0x0328,
+ 0x05f0, 0x09d1, 0x0a69, 0x088d, 0x0904, 0x0ae8,
+ 0x0ac1, 0x0928, 0x076c, 0x05fc, 0x056c, 0x056a,
+ 0x063d, 0x081f, 0x096f, 0x0994, 0x08f9, 0x0772,
+ 0x0552, 0x0256, 0xff18, 0xfedc, 0x01a5, 0x02e9,
+ 0x00ca, 0xfe05, 0xfd9b, 0xfef0, 0xff9e, 0x0012,
+ 0x0166, 0x0289, 0x0325, 0x03e4, 0x046c, 0x02fa,
+ 0xfeac, 0xfb2b, 0xfaf9, 0xfa6d, 0xf94e, 0xfb39,
+ 0xfd94, 0xfd1c, 0xfc25, 0xfc6e, 0xfd46, 0xfe06,
+ 0xff70, 0x030d, 0x064d, 0x0532, 0x0190, 0xfea1,
+ 0xfc24, 0xfa0d, 0xfa24, 0xfd17, 0xff7c, 0xfe1b,
+ 0xfc73, 0xfde3, 0xff35, 0xfe18, 0xfbda, 0xf9d8,
+ 0xf954, 0xf91b, 0xf754, 0xf69f, 0xf891, 0xfa67,
+ 0xfb29, 0xfb32, 0xf9d9, 0xf7b4, 0xf583, 0xf458,
+ 0xf694, 0xfab8, 0xfc57, 0xfb8a, 0xfa99, 0xf968,
+ 0xf82e, 0xf7ce, 0xf7eb, 0xf86b, 0xf9e0, 0xfc33,
+ 0xfe15, 0xfd5e, 0xfa2d, 0xf7fe, 0xf88c, 0xf968,
+ 0xf876, 0xf722, 0xf7ba, 0xf991, 0xfa1f, 0xf8f9,
+ 0xf7d6, 0xf778, 0xf6e8, 0xf60f, 0xf6dc, 0xf9be,
+ 0xfbfb, 0xfb9a, 0xf9de, 0xf98a, 0xfba9, 0xfe2b,
+ 0xffa9, 0x00de, 0x00e4, 0xfed0, 0xfbdd, 0xf801,
+ 0xf3da, 0xf27a, 0xf3b5, 0xf4da, 0xf5af, 0xf700,
+ 0xf94e, 0xfbd8, 0xfc5c, 0xfb84, 0xfb54, 0xfa63,
+ 0xf8f2, 0xfa3f, 0xfcd9, 0xfc58, 0xf8d6, 0xf5d5,
+ 0xf536, 0xf564, 0xf3fc, 0xf25c, 0xf38e, 0xf6be,
+ 0xf99f, 0xfc28, 0xfd55, 0xfb86, 0xf982, 0xfae8,
+ 0xfdef, 0xfe8f, 0xfc56, 0xfa20, 0xf9ef, 0xfab1,
+ 0xfaff, 0xfb50, 0xfbf4, 0xfcb2, 0xfe28, 0x00a5,
+ 0x028f, 0x0167, 0xfda4, 0xfaf7, 0xfa8b, 0xfa94,
+ 0xfb7d, 0xfe42, 0x014e, 0x031e, 0x03ca, 0x041b,
+ 0x04a7, 0x050a, 0x0541, 0x05de, 0x0581, 0x0257,
+ 0xfe29, 0xfca6, 0xfdeb, 0xfeda, 0xfec9, 0xff6f,
+ 0x007f, 0x0083, 0xff22, 0xfccc, 0xfae2, 0xfb07,
+ 0xfdef, 0x0238, 0x0403, 0x01c2, 0xfede, 0xfe2a,
+ 0xffc2, 0x0290, 0x0497, 0x0545, 0x0442, 0xffc8,
+ 0xfa7d, 0xf926, 0xfa25, 0xfa67, 0xfaf1, 0xfd38,
+ 0x014f, 0x04c5, 0x0448, 0x0205, 0x022c, 0x0333,
+ 0x01f6, 0xff4d, 0xfd93, 0xfdc2, 0xff60, 0x0096,
+ 0xff15, 0xfaf2, 0xf7e6, 0xf96e, 0xfe43, 0x00ed,
+ 0xfe91, 0xfba6, 0xfcd8, 0xffc2, 0x00f3, 0x014a,
+ 0x024a, 0x03fe, 0x056a, 0x0551, 0x0463, 0x0402,
+ 0x0378, 0x01df, 0x00ab, 0x016c, 0x026e, 0x00e8,
+ 0xfdf8, 0xfd0c, 0xfe8c, 0x0016, 0x003b, 0xffef,
+ 0x0111, 0x03ae, 0x059e, 0x0559, 0x038b, 0x0216,
+ 0x01fa, 0x0206, 0x008c, 0xfe84, 0xfe51, 0xfffa,
+ 0x0234, 0x0464, 0x0504, 0x03bc, 0x0395, 0x05ac,
+ 0x0771, 0x07f1, 0x089b, 0x09f7, 0x0a63, 0x086d,
+ 0x0637, 0x0608, 0x0513, 0x008f, 0xfc46, 0xfd8f,
+ 0x0296, 0x0506, 0x03be, 0x01c3, 0xffd3, 0xfeb6,
+ 0x000a, 0x02ae, 0x04fe, 0x0630, 0x0587, 0x03c5,
+ 0x015a, 0xfefd, 0xffae, 0x02a0, 0x032a, 0x015b,
+ 0x00dd, 0x0317, 0x0657, 0x07bb, 0x0719, 0x0639,
+ 0x0490, 0x0166, 0xfe2b, 0xfc58, 0xfc28, 0xfc96,
+ 0xfcfc, 0xfd6a, 0xfd85, 0xfe4f, 0x00c9, 0x02b6,
+ 0x027c, 0x0113, 0xff1c, 0xfd5b, 0xfc2e, 0xfb4d,
+ 0xfc6d, 0x001e, 0x0387, 0x0523, 0x0567, 0x0477,
+ 0x02e5, 0x011f, 0xff52, 0xfe64, 0xfdfa, 0xfd9d,
+ 0xfff7, 0x057e, 0x0907, 0x082b, 0x05a1, 0x020f,
+ 0xfd31, 0xf990, 0xf8d3, 0xf9e0, 0xfa3b, 0xf8ae,
+ 0xf805, 0xfa22, 0xfc68, 0xfd02, 0xfc51, 0xfb86,
+ 0xfc2a, 0xfd17, 0xfcee, 0xfd26, 0xfdeb, 0xfee1,
+ 0x0093, 0x017f, 0x00c6, 0xff7b, 0xfe5f, 0xfe82,
+ 0xfea2, 0xfca7, 0xfaba, 0xf94a, 0xf593, 0xf13c,
+ 0xf016, 0xf300, 0xf7bf, 0xfaea, 0xfca0, 0xfe60,
+ 0xff28, 0xff81, 0x0088, 0x01a6, 0x02d0, 0x023d,
+ 0xfeff, 0xfca4, 0xfbd7, 0xfaae, 0xfa30, 0xfa6f,
+ 0xfab9, 0xfb6a, 0xfb89, 0xfbc4, 0xfd7c, 0xfe53,
+ 0xfca8, 0xfa2e, 0xf8d3, 0xfa0b, 0xfe1a, 0x0358,
+ 0x0667, 0x04cd, 0x0140, 0xffcb, 0xffdf, 0xff29,
+ 0xfd3e, 0xfc0a, 0xfca4, 0xfc6f, 0xfb6c, 0xfd6a,
+ 0x00f0, 0x0217, 0x01cf, 0x01cd, 0x01f3, 0x01cb,
+ 0x0076, 0xfe64, 0xfd41, 0xfd63, 0xfdcb, 0xfdf0,
+ 0xfeb7, 0x00d4, 0x034d, 0x04a9, 0x03b0, 0x00b9,
+ 0xfe76, 0xfe53, 0xfefc, 0xfeed, 0xfdd1, 0xfcae,
+ 0xfbd2, 0xfa0a, 0xf865, 0xf940, 0xfb77, 0xfca0,
+ 0xfd52, 0xff6c, 0x028d, 0x04fa, 0x0627, 0x066f,
+ 0x069a, 0x06b7, 0x04d4, 0x0169, 0xfffc, 0x00c5,
+ 0x021d, 0x03a3, 0x0409, 0x031f, 0x02e2, 0x049d,
+ 0x0851, 0x0b0a, 0x09ba, 0x0638, 0x02a9, 0xff88,
+ 0xfeaf, 0x003d, 0x0308, 0x070b, 0x0a3c, 0x0a27,
+ 0x0834, 0x084f, 0x0b8f, 0x0ce1, 0x093b, 0x0546,
+ 0x0439, 0x04b8, 0x0556, 0x0515, 0x0542, 0x0673,
+ 0x05a2, 0x033a, 0x01c7, 0x0130, 0x0284, 0x04af,
+ 0x0430, 0x038f, 0x06a7, 0x0baa, 0x0f13, 0x0fa7,
+ 0x0f6d, 0x0f77, 0x0e61, 0x0e4a, 0x10f4, 0x12e0,
+ 0x1221, 0x0f87, 0x0c65, 0x0a6e, 0x0868, 0x05fe,
+ 0x0604, 0x0749, 0x079a, 0x084d, 0x08e3, 0x07c7,
+ 0x05f3, 0x0572, 0x06f6, 0x084f, 0x08e0, 0x0a8d,
+ 0x0be5, 0x0c1a, 0x0cca, 0x0b98, 0x07af, 0x0471,
+ 0x0213, 0x00e6, 0x0305, 0x064a, 0x0801, 0x0878,
+ 0x0832, 0x07a7, 0x06a4, 0x0518, 0x04eb, 0x06ca,
+ 0x0987, 0x0c35, 0x0cf2, 0x0b71, 0x0ada, 0x0bc0,
+ 0x0b53, 0x09af, 0x0855, 0x061d, 0x02ba, 0xffb7,
+ 0xfd85, 0xfcd7, 0xfdfc, 0xfeb7, 0xfe0d, 0xfd8a,
+ 0xfe75, 0x0200, 0x088c, 0x1055, 0x1693, 0x188d,
+ 0x1623, 0x118d, 0x0c00, 0x0722, 0x0460, 0x0102,
+ 0xf982, 0xee9c, 0xe57d, 0xe2b5, 0xe470, 0xe85b,
+ 0xf0d5, 0xfc09, 0x038e, 0x06b9, 0x0a46, 0x1071,
+ 0x14e5, 0x12f8, 0x0d25, 0x0621, 0xfd5c, 0xf56e,
+ 0xf03e, 0xec92, 0xeadc, 0xea30, 0xe978, 0xeb41,
+ 0xf01c, 0xf743, 0x017b, 0x0cb7, 0x153e, 0x18af,
+ 0x16c7, 0x132a, 0x1117, 0x1093, 0x10ea, 0x0f8e,
+ 0x0ac5, 0x04a9, 0xfea1, 0xf9c4, 0xf84b, 0xf940,
+ 0xf9cc, 0xf8d7, 0xf708, 0xf5ea, 0xf667, 0xf967,
+ 0xfeca, 0x03fc, 0x08bc, 0x0cde, 0x0c77, 0x08f5,
+ 0x0771, 0x068d, 0x04c9, 0x0351, 0x011f, 0x0034,
+ 0x0360, 0x0633, 0x038f, 0xfbf6, 0xf3d8, 0xf13c,
+ 0xf566, 0xfb8d, 0x00a9, 0x0508, 0x0857, 0x09b0,
+ 0x0907, 0x0785, 0x0669, 0x04ef, 0x014a, 0xfc54,
+ 0xf998, 0xfa8d, 0xfcb7, 0xfe47, 0x0008, 0x0163,
+ 0x0063, 0xfdfd, 0xfcfd, 0xfe98, 0x0225, 0x0524,
+ 0x057d, 0x0571, 0x0825, 0x0c48, 0x0ead, 0x0e5b,
+ 0x0c0c, 0x079f, 0x0108, 0xfc2a, 0xfb99, 0xfa84,
+ 0xf677, 0xf432, 0xf54b, 0xf757, 0xf927, 0xfa3c,
+ 0xfc49, 0x00ff, 0x05c3, 0x0883, 0x0990, 0x08ad,
+ 0x068d, 0x0438, 0x021d, 0x0133, 0x009b, 0xfec5,
+ 0xfcb4, 0xfb50, 0xf9d1, 0xf762, 0xf4f2, 0xf54a,
+ 0xf847, 0xfaed, 0xfd04, 0xff7b, 0x0200, 0x04ef,
+ 0x0809, 0x09ce, 0x08e1, 0x04e0, 0xff9f, 0xfaf1,
+ 0xf736, 0xf52c, 0xf48d, 0xf4c9, 0xf628, 0xf71e,
+ 0xf7b0, 0xfa38, 0xfd10, 0xfed0, 0x0159, 0x0339,
+ 0x02e4, 0x02ad, 0x0375, 0x0519, 0x076b, 0x07a1,
+ 0x045e, 0x0039, 0xfd86, 0xfc53, 0xfc28, 0xfd76,
+ 0xffae, 0x0021, 0xfe6e, 0xfd2b, 0xfd81, 0xfecd,
+ 0xfffe, 0x008d, 0x018b, 0x030d, 0x03f3, 0x0572,
+ 0x08c8, 0x0c04, 0x0d54, 0x0cb1, 0x0abf, 0x0956,
+ 0x09aa, 0x0aa1, 0x0b83, 0x0bcb, 0x0986, 0x04ea,
+ 0x007a, 0xfcb8, 0xfa32, 0xfba1, 0x00a8, 0x04d4,
+ 0x063a, 0x062d, 0x04aa, 0x0302, 0x0591, 0x0b8a,
+ 0x0f0e, 0x0e70, 0x0bb7, 0x0a12, 0x0c78, 0x0f92,
+ 0x0f9d, 0x102f, 0x1190, 0x0e9f, 0x0794, 0x0081,
+ 0xfc8c, 0xfbd0, 0xfa65, 0xf80e, 0xf764, 0xf6c8,
+ 0xf739, 0xfc53, 0x046b, 0x0ca9, 0x11f2, 0x11cb,
+ 0x107a, 0x0f35, 0x09a8, 0x043c, 0x0361, 0x0127,
+ 0xfcbf, 0xfbca, 0xfcd3, 0xfb4b, 0xf7a4, 0xf643,
+ 0xfac0, 0x0199, 0x0364, 0xfffd, 0xfdef, 0xffc6,
+ 0x01dc, 0x01c1, 0x003e, 0xfd2c, 0xf8cd, 0xf5f2,
+ 0xf61f, 0xf87e, 0xfba3, 0xfdba, 0xfd7d, 0xfa69,
+ 0xf666, 0xf5d3, 0xf7f6, 0xf812, 0xf722, 0xf7f9,
+ 0xf95a, 0xf927, 0xf6fe, 0xf7c5, 0xfe98, 0x0274,
+ 0xfebd, 0xfbc8, 0xfb78, 0xfb03, 0xfc5d, 0xfc44,
+ 0xf7e1, 0xf46f, 0xf3b8, 0xf457, 0xf6a1, 0xf8e3,
+ 0xfa4f, 0xfb6a, 0xfc3f, 0xfdf2, 0xfe64, 0xfb63,
+ 0xf88d, 0xf76e, 0xf7b7, 0xfbcf, 0x0146, 0x02eb,
+ 0x00f2, 0xfe14, 0xfbf3, 0xfa5d, 0xf985, 0xfbc9,
+ 0x0031, 0x0335, 0x03e7, 0x0163, 0xfc48, 0xf912,
+ 0xf9c4, 0xfb5a, 0xfaba, 0xf97d, 0xfa87, 0xfb15,
+ 0xf96f, 0xfa96, 0x0024, 0x05cf, 0x08dd, 0x0a79,
+ 0x0d7d, 0x1078, 0x0f6b, 0x0caf, 0x0c44, 0x0d00,
+ 0x0cee, 0x0b90, 0x089f, 0x0327, 0xfbd9, 0xf680,
+ 0xf230, 0xec37, 0xea64, 0xef8e, 0xf5dd, 0xfb68,
+ 0x0029, 0x0214, 0x020b, 0x01aa, 0x0415, 0x0bdc,
+ 0x121d, 0x0f66, 0x06ee, 0xfeb9, 0xf7f3, 0xf213,
+ 0xef5d, 0xf071, 0xf096, 0xeed6, 0xee19, 0xed2e,
+ 0xed00, 0xf0a8, 0xf64e, 0xfca9, 0x0338, 0x06e2,
+ 0x07b2, 0x07a9, 0x0736, 0x062e, 0x0253, 0xfb3a,
+ 0xf3f4, 0xedf9, 0xeac4, 0xea94, 0xea02, 0xe9c2,
+ 0xed91, 0xf44b, 0xfbc8, 0x0421, 0x0c37, 0x1144,
+ 0x120d, 0x1174, 0x1245, 0x112a, 0x0a14, 0x00f7,
+ 0xfc66, 0xfba2, 0xfb3c, 0xfb5e, 0xfad9, 0xf8ec,
+ 0xf943, 0xfb71, 0xfbcb, 0xfaee, 0xf965, 0xf8f1,
+ 0xfcdb, 0x016a, 0x036c, 0x05cd, 0x0728, 0x05bb,
+ 0x0539, 0x050d, 0x0141, 0xfb2f, 0xf75d, 0xf746,
+ 0xf728, 0xf3c6, 0xf010, 0xf032, 0xf3e5, 0xf864,
+ 0xfcb8, 0x00e6, 0x0265, 0x00e7, 0x0086, 0x008e,
+ 0xfe4f, 0xfd26, 0xfd8e, 0xfbca, 0xfa36, 0xfad8,
+ 0xf91f, 0xf47b, 0xf216, 0xf3a1, 0xf6e6, 0xf9d5,
+ 0xfc6a, 0x0000, 0x0393, 0x0589, 0x0728, 0x0850,
+ 0x0816, 0x07c9, 0x0671, 0x03dd, 0x02b2, 0x00da,
+ 0xfd6e, 0xfc9b, 0xfd58, 0xfcf8, 0xfb72, 0xf7f1,
+ 0xf6b9, 0xfa30, 0xfcbb, 0x0066, 0x08a3, 0x0dca,
+ 0x0ca7, 0x0773, 0xfda5, 0xf400, 0xefdf, 0xef13,
+ 0xef0f, 0xf090, 0xf4b9, 0xf89b, 0xf864, 0xf698,
+ 0xf4c6, 0xf200, 0xf0a6, 0xef49, 0xec9a, 0xec13,
+ 0xebc0, 0xec4a, 0xf1db, 0xf54f, 0xf33c, 0xf1fe,
+ 0xf024, 0xecc6, 0xeda3, 0xf3a4, 0xfb7e, 0x00b0,
+ 0x02b1, 0x0557, 0x057f, 0x026a, 0x042f, 0x0a3c,
+ 0x0ea5, 0x0f45, 0x0952, 0x00bb, 0xfcc3, 0xfc18,
+ 0xfde3, 0x0375, 0x09a3, 0x0e58, 0x111a, 0x1190,
+ 0x117b, 0x117e, 0x11f8, 0x12cd, 0x1012, 0x0960,
+ 0x040b, 0x0167, 0xfeff, 0xfdd7, 0xff6c, 0x002d,
+ 0xfe53, 0xfdbb, 0xfec8, 0xff74, 0x0174, 0x044f,
+ 0x066a, 0x0928, 0x0bd2, 0x0d6d, 0x0eaf, 0x100e,
+ 0x131f, 0x15bd, 0x15f5, 0x17d6, 0x174b, 0x0f41,
+ 0x098c, 0x0904, 0x0717, 0x082e, 0x0d04, 0x0ef0,
+ 0x1184, 0x174b, 0x1a48, 0x180b, 0x1394, 0x134f,
+ 0x1875, 0x19ec, 0x15b2, 0x130c, 0x11f8, 0x0f97,
+ 0x0d37, 0x09c9, 0x044f, 0x00b5, 0x00f2, 0x00cb,
+ 0xfd29, 0xf8c5, 0xf73f, 0xf98b, 0xfd03, 0xfe05,
+ 0xff71, 0x04b4, 0x0960, 0x0b9b, 0x0c40, 0x0719,
+ 0xfd96, 0xf4ba, 0xec5b, 0xe7e4, 0xe59d, 0xdc3b,
+ 0xd390, 0xd553, 0xd701, 0xd532, 0xd635, 0xd56e,
+ 0xd045, 0xc744, 0xb6e2, 0xa829, 0xa872, 0xb53e,
+ 0xc579, 0xd096, 0xd0bd, 0xc766, 0xb70c, 0xa605,
+ 0x9e38, 0x9d8d, 0x9f4b, 0xa5cc, 0xaa79, 0xa894,
+ 0xabae, 0xb51b, 0xb84b, 0xb6c6, 0xb95c, 0xbf78,
+ 0xc802, 0xd285, 0xdbea, 0xe513, 0xec15, 0xeaef,
+ 0xe64a, 0xe4de, 0xe575, 0xea0f, 0xefc1, 0xec62,
+ 0xe580, 0xe5af, 0xe98a, 0xef4b, 0xf7ea, 0xfe2e,
+ 0x014c, 0x0479, 0x0915, 0x1138, 0x1b79, 0x230f,
+ 0x2438, 0x1eed, 0x1b66, 0x1dca, 0x1dc6, 0x18da,
+ 0x1499, 0x109e, 0x0ad1, 0x0510, 0x0359, 0x09ad,
+ 0x15c1, 0x1fc6, 0x23bd, 0x2552, 0x294b, 0x2d9b,
+ 0x2ec8, 0x2d3b, 0x297e, 0x27f1, 0x2c47, 0x3091,
+ 0x3274, 0x341a, 0x3024, 0x256c, 0x1a2f, 0x1252,
+ 0x12cf, 0x1af4, 0x2376, 0x2d1b, 0x383e, 0x3f4b,
+ 0x4255, 0x427c, 0x40db, 0x40c5, 0x3e8c, 0x3915,
+ 0x3700, 0x357a, 0x2fe1, 0x2aa6, 0x2619, 0x221b,
+ 0x2375, 0x260f, 0x24e8, 0x268d, 0x2c1e, 0x2ca7,
+ 0x2782, 0x2405, 0x22b7, 0x1d71, 0x1454, 0x0f4a,
+ 0x0f23, 0x0f58, 0x13b7, 0x1b8f, 0x1d0e, 0x1b1d,
+ 0x1b91, 0x1802, 0x126a, 0x10f4, 0x0d0d, 0x0776,
+ 0x0896, 0x0b02, 0x0a71, 0x0ec2, 0x17b4, 0x1b56,
+ 0x1711, 0x0f56, 0x07a5, 0x036a, 0x0297, 0x0062,
+ 0xff47, 0x03ca, 0x0745, 0x06a4, 0x06d9, 0x06a4,
+ 0x06bb, 0x0a7b, 0x0bc0, 0x0775, 0x02ff, 0xffaa,
+ 0xfc59, 0xf9fa, 0xfa26, 0xfc5f, 0xfc7f, 0xfa3c,
+ 0xf7f3, 0xf4ad, 0xf2d7, 0xf3a6, 0xf2ef, 0xf38b,
+ 0xf7c1, 0xf8db, 0xf838, 0xfcd4, 0x00c1, 0xfc2f,
+ 0xf63a, 0xf63c, 0xf77b, 0xf92f, 0xfd83, 0xfea8,
+ 0xffd6, 0x06ef, 0x09f2, 0x0805, 0x0964, 0x0747,
+ 0xffd6, 0xfa63, 0xf589, 0xf10c, 0xee33, 0xedff,
+ 0xf56e, 0xfe34, 0x0020, 0x00d0, 0x01f0, 0x019d,
+ 0x0121, 0xfdf0, 0xf9c3, 0xf7d1, 0xf78a, 0xfc0f,
+ 0x023e, 0x048b, 0x0605, 0x0531, 0x019a, 0x007a,
+ 0xff3d, 0xfbdc, 0xf5d3, 0xed1d, 0xec21, 0xf305,
+ 0xf7e7, 0xfd3e, 0x00b6, 0xfe34, 0xfc26, 0xf80a,
+ 0xf33d, 0xf638, 0xf7dd, 0xf524, 0xf724, 0xf8de,
+ 0xf72e, 0xf535, 0xf038, 0xead9, 0xe73a, 0xe35f,
+ 0xe2b2, 0xe44c, 0xe4cd, 0xe6d1, 0xeb45, 0xf09b,
+ 0xf43b, 0xf5d1, 0xf967, 0xfc7e, 0xf971, 0xf0d7,
+ 0xe746, 0xe3ad, 0xe48f, 0xe51c, 0xeba7, 0xf4a3,
+ 0xf545, 0xf3b1, 0xf232, 0xec93, 0xe8f1, 0xe7ea,
+ 0xe924, 0xf0c0, 0xf7c9, 0xfc5e, 0x0385, 0x0672,
+ 0x02ad, 0xfea5, 0xfd10, 0xff84, 0x02db, 0x030c,
+ 0x010c, 0xfb9d, 0xf5cc, 0xf54c, 0xf666, 0xf60a,
+ 0xf60c, 0xf6d0, 0xf668, 0xf264, 0xf21b, 0xfbe6,
+ 0x0525, 0x0830, 0x083f, 0x0349, 0xfd16, 0xf7ce,
+ 0xef8d, 0xec6a, 0xf1d2, 0xf610, 0xf803, 0xf9af,
+ 0xfb1f, 0xfee6, 0x01fd, 0x02b7, 0x03f4, 0x0340,
+ 0xff69, 0xf9a3, 0xf1cb, 0xec75, 0xed57, 0xf22e,
+ 0xf80d, 0xfcec, 0x0116, 0x04fe, 0x0706, 0x06ca,
+ 0x047d, 0x01fe, 0x01d6, 0x02a3, 0x0352, 0x037b,
+ 0x0356, 0x07de, 0x1105, 0x184e, 0x1a9d, 0x1714,
+ 0x1143, 0x0c22, 0x04cb, 0x0062, 0x01bd, 0x0043,
+ 0xfec1, 0x0152, 0x012f, 0x0021, 0x004d, 0x00f8,
+ 0x08a5, 0x1135, 0x0fcf, 0x0a1f, 0x03a6, 0xfbd3,
+ 0xf6c4, 0xf400, 0xf43b, 0xf90a, 0xfcb9, 0xfc90,
+ 0xfaf9, 0xfa21, 0xfb15, 0xfbc0, 0xfaa9, 0xf6dd,
+ 0xf18e, 0xf020, 0xf042, 0xf049, 0xf760, 0x000a,
+ 0x020f, 0x0286, 0x0115, 0xfdcb, 0xff11, 0x0269,
+ 0x06a9, 0x0a5d, 0x04d2, 0xfc79, 0xfb6a, 0xf9c6,
+ 0xf483, 0xf40b, 0xf9e6, 0x007d, 0x0413, 0x061f,
+ 0x082c, 0x0a61, 0x0d76, 0x0e5b, 0x0dee, 0x11f9,
+ 0x14e6, 0x1026, 0x0a2a, 0x08fc, 0x0a02, 0x074c,
+ 0x02e7, 0x02d0, 0x0035, 0xf8fe, 0xf6de, 0xf643,
+ 0xf4e6, 0xf99c, 0xfd46, 0xfd57, 0x0266, 0x08e5,
+ 0x0d40, 0x10aa, 0x0ff2, 0x0bf9, 0x0594, 0xfe7e,
+ 0xfce8, 0xfe5e, 0x0042, 0x044e, 0x058f, 0x0312,
+ 0xfe3b, 0xf6e7, 0xf5ad, 0xfb04, 0xff47, 0x04b1,
+ 0x087c, 0x080a, 0x0b30, 0x0eb0, 0x0d8d, 0x0ccf,
+ 0x0bc3, 0x09b5, 0x07d0, 0x0463, 0x03c6, 0x0602,
+ 0x04a2, 0x00ba, 0xfc53, 0xf93f, 0xfa49, 0xfd28,
+ 0x0263, 0x0913, 0x0b7d, 0x0b74, 0x0911, 0x0337,
+ 0x026b, 0x05e1, 0x05ec, 0x04b4, 0x01a8, 0xfb74,
+ 0xf751, 0xf665, 0xf731, 0xf7d9, 0xf788, 0xfa0d,
+ 0xfd11, 0xfcea, 0xfdee, 0xff2e, 0xfdf3, 0xfd1a,
+ 0xfc1a, 0xfbe2, 0xfeff, 0x02db, 0x0633, 0x074a,
+ 0x04ed, 0x034f, 0x015f, 0xfd3d, 0xfbd4, 0xfbbf,
+ 0xf89d, 0xf588, 0xf720, 0xfdef, 0x0312, 0x011f,
+ 0xfe26, 0xfd6c, 0xfbfa, 0xfbe8, 0xfe3b, 0xffde,
+ 0xff1a, 0xfba6, 0xf85d, 0xf719, 0xf651, 0xf724,
+ 0xf9a3, 0xfb1d, 0xfb00, 0xfa3d, 0xfcb1, 0x0226,
+ 0x0226, 0xfdf3, 0xfced, 0xfa81, 0xf4d9, 0xf2d5,
+ 0xf46f, 0xf823, 0xfd82, 0xfe3f, 0xfa83, 0xf910,
+ 0xf7fa, 0xf688, 0xfa88, 0xffe6, 0x00f4, 0x0272,
+ 0x02a9, 0xfd0f, 0xf9be, 0xfb9b, 0xfc64, 0xfd1d,
+ 0xfd38, 0xfa41, 0xfa41, 0xfd9a, 0xff7b, 0x0235,
+ 0x0482, 0x0399, 0x046c, 0x069e, 0x0535, 0x024a,
+ 0x0017, 0xfdde, 0xfd62, 0x000b, 0x040e, 0x06a8,
+ 0x0603, 0x02f1, 0x01e4, 0x053d, 0x083b, 0x08e1,
+ 0x0c27, 0x1141, 0x1374, 0x129b, 0x0ede, 0x0b8e,
+ 0x0c99, 0x0c02, 0x0715, 0x0468, 0x033a, 0x0011,
+ 0xfe82, 0xffaa, 0x0022, 0xfdeb, 0xfac3, 0xfb23,
+ 0xffd7, 0x066e, 0x0bdf, 0x0ad0, 0x050d, 0x0331,
+ 0x04f5, 0x07b3, 0x0d6d, 0x10b3, 0x0bc4, 0x0414,
+ 0xff39, 0xfda7, 0xfdac, 0xfb9d, 0xf819, 0xf786,
+ 0xfa20, 0xfe41, 0x03ed, 0x0ab5, 0x0fd7, 0x0fc1,
+ 0x0d08, 0x0d3b, 0x0d1c, 0x0905, 0x06e3, 0x0871,
+ 0x0744, 0x024e, 0xfe2a, 0xfd3e, 0xfe4a, 0xfe79,
+ 0xfd4d, 0xfc50, 0xfb7f, 0xfadf, 0xfb0b, 0xfb10,
+ 0xface, 0xfb24, 0xfabc, 0xf9a9, 0xfb74, 0xff7b,
+ 0x0176, 0x026a, 0x03cb, 0x020c, 0xfe0e, 0xfc04,
+ 0xfb2b, 0xfc2e, 0x003f, 0x0232, 0x017c, 0x0387,
+ 0x069e, 0x085d, 0x0b85, 0x0d3d, 0x09b0, 0x063b,
+ 0x06e8, 0x077b, 0x05e4, 0x051b, 0x03f1, 0xfe9c,
+ 0xf912, 0xf97a, 0xfc42, 0xfcf8, 0xff59, 0x035a,
+ 0x0388, 0x0221, 0x0368, 0x050b, 0x074e, 0x0bf9,
+ 0x0f29, 0x0fa9, 0x0fd2, 0x0e3e, 0x0b79, 0x0ae3,
+ 0x0ac6, 0x0870, 0x0693, 0x0855, 0x0b46, 0x0b1b,
+ 0x092a, 0x08b1, 0x0880, 0x0784, 0x06a1, 0x0635,
+ 0x06ae, 0x0626, 0x023c, 0xfd1b, 0xf985, 0xf8f0,
+ 0xfbda, 0xfe2b, 0xfc96, 0xf95e, 0xf62e, 0xf35f,
+ 0xf235, 0xf1ef, 0xf065, 0xeee1, 0xf188, 0xf798,
+ 0xfce4, 0x0211, 0x05a6, 0x0352, 0xff82, 0xfd3f,
+ 0xf8e2, 0xf4f9, 0xf29b, 0xeee4, 0xef3c, 0xf554,
+ 0xfa98, 0xfe5a, 0x015e, 0x027d, 0x02b6, 0x0166,
+ 0xff72, 0xfe94, 0xfd0f, 0xfccd, 0xfe69, 0xfc72,
+ 0xf842, 0xf650, 0xf584, 0xf68a, 0xf994, 0xfae9,
+ 0xfa24, 0xf860, 0xf424, 0xee13, 0xeadc, 0xed82,
+ 0xf3da, 0xfb2b, 0x0063, 0xffa8, 0xfd62, 0xff14,
+ 0xff04, 0xfbc0, 0xfbff, 0xfe16, 0xff1c, 0x020d,
+ 0x0541, 0x0577, 0x02b5, 0xfc81, 0xf75e, 0xfad6,
+ 0x03b0, 0x08fa, 0x0b4f, 0x0e38, 0x0d40, 0x0761,
+ 0x0398, 0x0272, 0x0176, 0x0472, 0x0a42, 0x0d28,
+ 0x0f0c, 0x1214, 0x1348, 0x131c, 0x1316, 0x10ac,
+ 0x0b87, 0x072b, 0x0574, 0x072f, 0x0d36, 0x1468,
+ 0x174f, 0x155e, 0x1414, 0x1722, 0x1971, 0x1618,
+ 0x1298, 0x12a5, 0x11a6, 0x0eaa, 0x0ac5, 0x0619,
+ 0x05b5, 0x09c5, 0x0b30, 0x0a56, 0x0b91, 0x0d2d,
+ 0x0b43, 0x062c, 0x032c, 0x02a9, 0xff7a, 0xfc49,
+ 0xfc99, 0xfc3a, 0xfb2e, 0xfb61, 0xfadd, 0xfb3f,
+ 0xfcf5, 0xfd1e, 0xfd63, 0xff47, 0x0199, 0x03d4,
+ 0x03bd, 0x00bc, 0xfe98, 0xfe91, 0xfd15, 0xf8cb,
+ 0xf5bd, 0xf4a9, 0xf2f6, 0xf4a7, 0xfa53, 0xfcec,
+ 0xfe1e, 0x00a3, 0x000f, 0xff73, 0x01e8, 0x01da,
+ 0xfe3f, 0xf9ee, 0xf6dd, 0xf61c, 0xf44e, 0xf1fc,
+ 0xf252, 0xf15c, 0xeff8, 0xf2dd, 0xf674, 0xf94b,
+ 0xfc16, 0xfab2, 0xf699, 0xf4e9, 0xf5dd, 0xf80c,
+ 0xf93b, 0xf8b6, 0xf7a3, 0xf612, 0xf688, 0xf847,
+ 0xf5fa, 0xf388, 0xf4d9, 0xf233, 0xeaa6, 0xe786,
+ 0xe9d9, 0xeb61, 0xeb81, 0xee5f, 0xf3cc, 0xf87f,
+ 0xfc7f, 0xff81, 0xff22, 0xfb56, 0xf531, 0xef81,
+ 0xee40, 0xefec, 0xf155, 0xf37b, 0xf65b, 0xf7b4,
+ 0xf7a6, 0xf84e, 0xf9e0, 0xfb4a, 0xfdea, 0x00e2,
+ 0xff79, 0xfb48, 0xf8b8, 0xf5ea, 0xf416, 0xf7a6,
+ 0xfc48, 0xfcd5, 0xfda4, 0x0294, 0x0708, 0x06a2,
+ 0x03d9, 0x007c, 0xfb4f, 0xf63c, 0xf30b, 0xf0b2,
+ 0xf0fe, 0xf613, 0xfdbd, 0x0468, 0x082b, 0x094f,
+ 0x07b4, 0x022a, 0xfac0, 0xf4f6, 0xf073, 0xea96,
+ 0xe3b2, 0xe027, 0xe0aa, 0xe10c, 0xe273, 0xe754,
+ 0xed35, 0xf562, 0xff9a, 0x03fc, 0x0213, 0xfe87,
+ 0xf71e, 0xeebf, 0xeeb9, 0xf475, 0xf696, 0xf63f,
+ 0xf8f1, 0xfd51, 0x0168, 0x05f0, 0x083c, 0x066a,
+ 0x03b1, 0x0288, 0x0313, 0x041d, 0x04a5, 0x0768,
+ 0x0d99, 0x1359, 0x155f, 0x1336, 0x110d, 0x1318,
+ 0x14c8, 0x131f, 0x120a, 0x108a, 0x0cdb, 0x08e7,
+ 0x0333, 0xfd4c, 0xfc48, 0xfe97, 0x01dd, 0x0692,
+ 0x0a3a, 0x0b6a, 0x0b5d, 0x0948, 0x0473, 0xfee7,
+ 0xfafb, 0xf95a, 0xf9ca, 0xfb1a, 0xfc14, 0xfe9b,
+ 0x0230, 0x005c, 0xf8e6, 0xf2f0, 0xf0c3, 0xf205,
+ 0xf620, 0xf905, 0xfa6a, 0xfdb9, 0x00bf, 0xffa3,
+ 0xfc03, 0xf9d4, 0xfb1c, 0x0003, 0x05d9, 0x06b6,
+ 0x0173, 0xfc44, 0xfa2e, 0xfa5f, 0xfc55, 0xfc18,
+ 0xf8d1, 0xf825, 0xf971, 0xf8bf, 0xf91f, 0xfbf4,
+ 0xfce5, 0xfb93, 0xfb1c, 0xfa8e, 0xf885, 0xf83c,
+ 0xfaab, 0xfd19, 0xff7f, 0x00c8, 0xff43, 0xfe3b,
+ 0xfee9, 0xffce, 0x01c9, 0x02c5, 0x016c, 0x001c,
+ 0xfd3f, 0xf8a3, 0xf495, 0xee1c, 0xe562, 0xdf7f,
+ 0xde1e, 0xe176, 0xe6bb, 0xe914, 0xe8c7, 0xe807,
+ 0xe945, 0xed9f, 0xf0fb, 0xf218, 0xf256, 0xf071,
+ 0xef5e, 0xf00c, 0xedbd, 0xea90, 0xe854, 0xe431,
+ 0xe216, 0xe42a, 0xe66d, 0xe91f, 0xecee, 0xf0dc,
+ 0xf492, 0xf5a0, 0xf47f, 0xf4a8, 0xf737, 0xfc09,
+ 0xfeb6, 0xfb71, 0xf70b, 0xf477, 0xf2ad, 0xf38c,
+ 0xf562, 0xf514, 0xf4b2, 0xf592, 0xf715, 0xf8b2,
+ 0xfa77, 0xfd83, 0xfe8f, 0xfa76, 0xf623, 0xf529,
+ 0xf6dd, 0xfae3, 0xfe4e, 0x009b, 0x02cf, 0x0099,
+ 0xfc47, 0xfd6c, 0x0105, 0x0334, 0x04f6, 0x02a3,
+ 0xfc03, 0xf6c0, 0xf3c5, 0xf2c8, 0xf40c, 0xf520,
+ 0xf643, 0xf8fe, 0xfc77, 0x0033, 0x01b3, 0xff82,
+ 0xfe3a, 0xfe70, 0xfc11, 0xf962, 0xf8ea, 0xf800,
+ 0xf716, 0xf8a8, 0xfbdc, 0xff29, 0x01d2, 0x03b8,
+ 0x058f, 0x0787, 0x0908, 0x092f, 0x080f, 0x06ea,
+ 0x05b6, 0x03ef, 0x01e7, 0xff93, 0xfe4f, 0xff01,
+ 0xfeb3, 0xfbee, 0xf7d7, 0xf406, 0xf54e, 0xfbe7,
+ 0x002c, 0x0157, 0x0265, 0xffa5, 0xfbd2, 0xff0e,
+ 0x04e8, 0x071b, 0x08e7, 0x089c, 0x028e, 0xfe11,
+ 0xfebf, 0xfe4e, 0xfcc7, 0xfc26, 0xf875, 0xf3a2,
+ 0xf2d8, 0xf588, 0xfb4e, 0x01b0, 0x03d3, 0x0336,
+ 0x0039, 0xf993, 0xf61f, 0xf805, 0xf88e, 0xf799,
+ 0xf736, 0xf574, 0xf3d2, 0xf52a, 0xf9b0, 0xfe8a,
+ 0xff32, 0xfdfa, 0xffb5, 0x014e, 0x00d2, 0x00fd,
+ 0x00e3, 0x005f, 0x01d5, 0x032c, 0x01e0, 0xff06,
+ 0xfa3a, 0xf369, 0xef20, 0xefa5, 0xf179, 0xf474,
+ 0xfb1b, 0x017e, 0x0321, 0x0213, 0x0168, 0x02fc,
+ 0x064f, 0x06fc, 0x040e, 0x00c4, 0xfd35, 0xf967,
+ 0xf84e, 0xfa1c, 0xfc13, 0xfd34, 0xfdef, 0xfe19,
+ 0xfe6d, 0x0031, 0x01b8, 0x0140, 0x0065, 0x004d,
+ 0x01eb, 0x0609, 0x0927, 0x09c4, 0x0b4e, 0x0da1,
+ 0x0efe, 0x0f36, 0x0ba1, 0x04cc, 0xff8c, 0xfc59,
+ 0xfa0e, 0xf96c, 0xfa3c, 0xfd2f, 0x0290, 0x0767,
+ 0x0930, 0x0829, 0x0699, 0x0622, 0x05b0, 0x05fd,
+ 0x0891, 0x0aa2, 0x0ac6, 0x0aef, 0x0aea, 0x0a7b,
+ 0x09a0, 0x06b8, 0x0318, 0x0120, 0xffb5, 0xfeb5,
+ 0xff91, 0x00b4, 0xff87, 0xfd89, 0xfe7c, 0x00dd,
+ 0x005b, 0xfedf, 0x002d, 0x02e5, 0x03b5, 0x00df,
+ 0xfd96, 0xfe67, 0x001a, 0x0036, 0x01c0, 0x0155,
+ 0xfdea, 0xffc0, 0x057a, 0x0849, 0x0a82, 0x0b98,
+ 0x0856, 0x0515, 0x034a, 0x0023, 0xfd29, 0xfb76,
+ 0xfa2e, 0xf9a7, 0xfa38, 0xfd43, 0x0234, 0x04de,
+ 0x0521, 0x05b7, 0x05c5, 0x04f9, 0x04b1, 0x03b6,
+ 0x022b, 0x0381, 0x069a, 0x0682, 0x043d, 0x036a,
+ 0x02cd, 0x0227, 0x02b5, 0x0271, 0x02a4, 0x06a7,
+ 0x0b4f, 0x0d85, 0x0e06, 0x0c4c, 0x09bf, 0x08a3,
+ 0x073c, 0x050d, 0x0373, 0x01b8, 0x000c, 0xff39,
+ 0xfeef, 0x001f, 0x02f4, 0x060e, 0x09bb, 0x0e15,
+ 0x10f8, 0x1048, 0x0b9c, 0x058e, 0x02d5, 0x051c,
+ 0x08ad, 0x094a, 0x077e, 0x05fc, 0x046f, 0x023b,
+ 0x0228, 0x05e6, 0x0ab6, 0x0ded, 0x10bc, 0x1494,
+ 0x179c, 0x1850, 0x17d8, 0x16b6, 0x1543, 0x1508,
+ 0x1517, 0x136b, 0x111e, 0x0f19, 0x0b61, 0x0435,
+ 0xfa62, 0xf193, 0xed40, 0xed09, 0xeef6, 0xf230,
+ 0xf5e9, 0xf8f2, 0xfa69, 0xfa9f, 0xfa78, 0xf9b7,
+ 0xf8e5, 0xf97b, 0xfae3, 0xfc36, 0xfcdd, 0xfb29,
+ 0xf7af, 0xf46f, 0xf176, 0xee9e, 0xeaef, 0xe694,
+ 0xe5b2, 0xe959, 0xeec8, 0xf487, 0xf7a3, 0xf74f,
+ 0xf6fa, 0xf623, 0xf4b5, 0xf617, 0xf8ab, 0xfa16,
+ 0xfa97, 0xf8dd, 0xf734, 0xf758, 0xf4e4, 0xf0f8,
+ 0xf042, 0xf0fe, 0xf133, 0xf0c6, 0xf080, 0xf39f,
+ 0xf83b, 0xf979, 0xf8b9, 0xf7b3, 0xf65b, 0xf661,
+ 0xf6c2, 0xf5ca, 0xf493, 0xf3d5, 0xf597, 0xfa72,
+ 0xfd8a, 0xfdfc, 0xfffc, 0x020b, 0x00a0, 0xfe45,
+ 0xfe29, 0xfe9d, 0xfd42, 0xfc80, 0x002d, 0x0641,
+ 0x0a98, 0x0d53, 0x0e42, 0x0c52, 0x0a9d, 0x0b02,
+ 0x0b22, 0x0ac7, 0x0abe, 0x0aa6, 0x0c67, 0x110d,
+ 0x159c, 0x1718, 0x1551, 0x1284, 0x0ffe, 0x0d74,
+ 0x0d03, 0x0f76, 0x11f6, 0x14a7, 0x1813, 0x19df,
+ 0x1a53, 0x1ae2, 0x1c44, 0x1f54, 0x2077, 0x1c71,
+ 0x17b4, 0x175c, 0x1b13, 0x1d7e, 0x1afb, 0x1926,
+ 0x1aaa, 0x18c2, 0x1420, 0x1289, 0x11df, 0x1111,
+ 0x11ac, 0x1103, 0x1041, 0x1337, 0x1640, 0x15e4,
+ 0x155c, 0x158b, 0x13ab, 0x1058, 0x0d65, 0x0b78,
+ 0x0bef, 0x0ca3, 0x09a1, 0x04fe, 0x01cc, 0x010c,
+ 0x04e5, 0x09ff, 0x0af0, 0x0af6, 0x0d77, 0x1033,
+ 0x1134, 0x0ef5, 0x0ac6, 0x082a, 0x061c, 0x03ad,
+ 0x02d5, 0x0363, 0x0496, 0x0524, 0x038d, 0x0235,
+ 0x01c3, 0xff1e, 0xfbd2, 0xfc01, 0xfeee, 0x0053,
+ 0xfdaa, 0xf94b, 0xf7e7, 0xfab2, 0xfde9, 0xfe5e,
+ 0xfde4, 0xfcf6, 0xf925, 0xf52b, 0xf3f5, 0xf2b8,
+ 0xf0b7, 0xef07, 0xedbb, 0xeed4, 0xf1cb, 0xf3fd,
+ 0xf558, 0xf55e, 0xf55a, 0xf71a, 0xf79a, 0xf6e2,
+ 0xf7bb, 0xf8c1, 0xf9fa, 0xfa42, 0xf62f, 0xf28b,
+ 0xf3bd, 0xf56d, 0xf4db, 0xf198, 0xec85, 0xea54,
+ 0xec13, 0xf04c, 0xf72a, 0xfc63, 0xfc47, 0xfa2a,
+ 0xf954, 0xfa7a, 0xfc7b, 0xfc43, 0xf9e3, 0xf85e,
+ 0xf8ed, 0xfac6, 0xfb96, 0xfa8b, 0xfa99, 0xfd99,
+ 0x01a8, 0x0402, 0x0398, 0x025e, 0x0265, 0x0314,
+ 0x036d, 0x02c3, 0x0027, 0xfc6b, 0xf9b1, 0xf90a,
+ 0xf97d, 0xf8d3, 0xf709, 0xf64c, 0xf6ff, 0xf94d,
+ 0xfd9a, 0x0051, 0xff67, 0xfe31, 0xfd5b, 0xfbec,
+ 0xfb80, 0xfa52, 0xf6db, 0xf484, 0xf331, 0xf0bd,
+ 0xee64, 0xec97, 0xecfa, 0xf138, 0xf52c, 0xf6f9,
+ 0xf8fd, 0xfa3e, 0xfac0, 0xfc1c, 0xfc7e, 0xfaef,
+ 0xf83a, 0xf4e1, 0xf283, 0xf0e6, 0xeed3, 0xee56,
+ 0xf11b, 0xf511, 0xf70e, 0xf74d, 0xf925, 0xfc91,
+ 0xff63, 0x01c4, 0x033f, 0x03bf, 0x03de, 0x01fc,
+ 0x0063, 0x024d, 0x03e3, 0x03d8, 0x041c, 0x01a5,
+ 0xfd84, 0xfc3a, 0xfaa4, 0xf615, 0xf18f, 0xef31,
+ 0xf08c, 0xf531, 0xf9b3, 0xfda7, 0x014f, 0x0230,
+ 0x0147, 0x01b6, 0x0234, 0x017f, 0x01f4, 0x0433,
+ 0x064f, 0x0658, 0x034a, 0x00f8, 0x037c, 0x065f,
+ 0x0671, 0x085c, 0x0bce, 0x0c39, 0x0b11, 0x0b65,
+ 0x0d88, 0x0fb4, 0x0f90, 0x0eeb, 0x0f27, 0x0db7,
+ 0x0c7c, 0x0e16, 0x0f0f, 0x0dec, 0x0c23, 0x0a8c,
+ 0x0bd5, 0x0f2d, 0x108f, 0x11e7, 0x1529, 0x171d,
+ 0x1760, 0x180b, 0x196a, 0x1b50, 0x1b62, 0x177b,
+ 0x12f1, 0x1148, 0x115d, 0x10f2, 0x0eea, 0x0be6,
+ 0x0963, 0x07e0, 0x08b5, 0x0bdf, 0x0d3e, 0x0c4d,
+ 0x0c4f, 0x0b05, 0x05d3, 0x002c, 0xfcd2, 0xfb51,
+ 0xfa29, 0xf7a2, 0xf44f, 0xf172, 0xefb6, 0xf065,
+ 0xf1eb, 0xf20f, 0xf20b, 0xf12e, 0xeed2, 0xeebb,
+ 0xf133, 0xf304, 0xf447, 0xf4d0, 0xf238, 0xec0e,
+ 0xe5e9, 0xe4b9, 0xe7b3, 0xe9b0, 0xe9d3, 0xea0f,
+ 0xebe4, 0xf10f, 0xf730, 0xf914, 0xf6a3, 0xf449,
+ 0xf4f4, 0xf788, 0xf984, 0xf9ed, 0xf7b1, 0xf340,
+ 0xefc4, 0xed95, 0xec6b, 0xef3f, 0xf490, 0xf6d5,
+ 0xf59c, 0xf34d, 0xf0d6, 0xeee1, 0xedd7, 0xeecc,
+ 0xf296, 0xf6a6, 0xf8d0, 0xfacf, 0xfd8c, 0xffa4,
+ 0x00c3, 0x009f, 0xfec2, 0xfd43, 0xfd3f, 0xfc52,
+ 0xfa0e, 0xf7ee, 0xf63b, 0xf5fa, 0xf62b, 0xf43c,
+ 0xf452, 0xfa0a, 0xfee2, 0xfeb3, 0xfddb, 0xfe65,
+ 0xfee6, 0xff05, 0xfecf, 0xff6c, 0x010b, 0x00ed,
+ 0xff2d, 0xfefd, 0xff84, 0xfdb0, 0xf9fb, 0xf6f4,
+ 0xf6e5, 0xfa9b, 0xff75, 0x028b, 0x0459, 0x0593,
+ 0x0578, 0x03a1, 0xffdc, 0xfb95, 0xfa3a, 0xfc08,
+ 0xfdf0, 0xfed6, 0xfeca, 0xfca3, 0xf89c, 0xf526,
+ 0xf457, 0xf756, 0xfd5d, 0x01dc, 0x0118, 0xfd78,
+ 0xfb0d, 0xfa4a, 0xf97d, 0xf6c4, 0xf271, 0xef95,
+ 0xef5f, 0xf09e, 0xf305, 0xf67e, 0xfa7a, 0xfd4c,
+ 0xfc92, 0xf954, 0xf672, 0xf4d1, 0xf59f, 0xf8fb,
+ 0xfc0e, 0xfd42, 0xfbf9, 0xf848, 0xf685, 0xf9bd,
+ 0xfe38, 0xffb9, 0xfeb2, 0xfe0b, 0xfeaa, 0xfe78,
+ 0xfc73, 0xf9c3, 0xf761, 0xf60a, 0xf587, 0xf524,
+ 0xf600, 0xf8fe, 0xfc9e, 0xfe5a, 0xfc0f, 0xf6c5,
+ 0xf34b, 0xf470, 0xf745, 0xf7a8, 0xf62c, 0xf5e9,
+ 0xf724, 0xf881, 0xf920, 0xf924, 0xfabf, 0xfcf3,
+ 0xfac7, 0xf5dd, 0xf4ab, 0xf781, 0xfadf, 0xfbfe,
+ 0xf989, 0xf66f, 0xf610, 0xf6d0, 0xf628, 0xf551,
+ 0xf6bc, 0xf858, 0xf5ca, 0xf175, 0xf1a1, 0xf6fc,
+ 0xfe1a, 0x03a7, 0x05a0, 0x0516, 0x03d3, 0x01e4,
+ 0xff93, 0xfe05, 0xfd22, 0xfae9, 0xf782, 0xf63b,
+ 0xf756, 0xf943, 0xfbaf, 0xfac4, 0xf645, 0xf708,
+ 0xfe39, 0x0341, 0x049f, 0x05a8, 0x05b0, 0x031e,
+ 0xfe9a, 0xfbb1, 0xfd10, 0x0027, 0x0171, 0xff9a,
+ 0xfbb0, 0xf937, 0xf862, 0xf6fc, 0xf70c, 0xf97e,
+ 0xfba3, 0xfda0, 0xffd4, 0x011b, 0x02fc, 0x05e9,
+ 0x07b1, 0x092f, 0x0c43, 0x0f28, 0x0fc9, 0x0eab,
+ 0x0c93, 0x09b3, 0x068f, 0x0301, 0xff54, 0xfe55,
+ 0x00ca, 0x025b, 0xfff3, 0xfbe7, 0xfa1a, 0xfc41,
+ 0x003b, 0x01c9, 0x00ed, 0x0221, 0x05db, 0x07bc,
+ 0x0641, 0x033d, 0xffd2, 0xfc8c, 0xfa43, 0xfaae,
+ 0xfed2, 0x03a7, 0x05c8, 0x052d, 0x0266, 0xffd3,
+ 0x009b, 0x02b9, 0x034a, 0x0316, 0x024c, 0x00cd,
+ 0xfed4, 0xfbce, 0xf8bd, 0xf5a2, 0xf1be, 0xf0ce,
+ 0xf48e, 0xf8f4, 0xfc13, 0xfe06, 0xff0d, 0x0063,
+ 0xffce, 0xfb7d, 0xf7a8, 0xf634, 0xf4d1, 0xf4a5,
+ 0xf7ff, 0xfcc8, 0xff12, 0xfeb0, 0xff02, 0x00b9,
+ 0x01ce, 0x0250, 0x031b, 0x045b, 0x0656, 0x0770,
+ 0x05d4, 0x0360, 0x02a6, 0x0340, 0x04a7, 0x07d1,
+ 0x0b31, 0x0b45, 0x08ab, 0x06c3, 0x060d, 0x0587,
+ 0x0502, 0x046a, 0x0303, 0xfff1, 0xfcff, 0xfd76,
+ 0x005e, 0x02c0, 0x0490, 0x05b2, 0x0459, 0x00a1,
+ 0xfd72, 0xfd13, 0xfea5, 0x000a, 0x00af, 0x01ac,
+ 0x045b, 0x0797, 0x089d, 0x06e2, 0x0317, 0xfef6,
+ 0xfd3e, 0xfce2, 0xfc30, 0xfd76, 0x003f, 0x01c5,
+ 0x026c, 0x01d5, 0xff81, 0xfcee, 0xf988, 0xf5bc,
+ 0xf44a, 0xf474, 0xf44a, 0xf434, 0xf5c5, 0xfa78,
+ 0xffe2, 0x01c7, 0x0034, 0xfcae, 0xf8bd, 0xf702,
+ 0xf6f0, 0xf6ab, 0xf68b, 0xf5e4, 0xf49b, 0xf49e,
+ 0xf4f4, 0xf359, 0xf0d3, 0xeefa, 0xed4d, 0xebe8,
+ 0xecaa, 0xef57, 0xf118, 0xf145, 0xf19f, 0xf321,
+ 0xf5ee, 0xf92c, 0xfae4, 0xf9be, 0xf6cc, 0xf453,
+ 0xf1c1, 0xee16, 0xec77, 0xedd1, 0xef33, 0xf1ad,
+ 0xf5b3, 0xf787, 0xf8bf, 0xfd63, 0x028a, 0x03d5,
+ 0x0161, 0xfdec, 0xfbfd, 0xfb68, 0xfbb0, 0xfe17,
+ 0x0102, 0x012e, 0x0011, 0x00dc, 0x0368, 0x0657,
+ 0x07dd, 0x0689, 0x0524, 0x068a, 0x0879, 0x09c3,
+ 0x0c23, 0x0f22, 0x11cd, 0x12ff, 0x116a, 0x1088,
+ 0x1265, 0x1358, 0x13cb, 0x1564, 0x14ae, 0x1231,
+ 0x110b, 0x0f3a, 0x0c03, 0x0a08, 0x0a80, 0x0d0c,
+ 0x0f83, 0x105d, 0x1104, 0x1238, 0x1386, 0x13e0,
+ 0x118b, 0x0e44, 0x0d91, 0x0f77, 0x1280, 0x1560,
+ 0x16d3, 0x1754, 0x1749, 0x15b7, 0x1233, 0x0d48,
+ 0x0877, 0x0592, 0x0542, 0x06c1, 0x07f7, 0x0764,
+ 0x05e8, 0x04ec, 0x0524, 0x05f1, 0x062d, 0x06de,
+ 0x0801, 0x065d, 0x01e2, 0xfdb6, 0xfafa, 0xfa7e,
+ 0xfcf8, 0x0045, 0x01e5, 0x00db, 0xfcad, 0xf68e,
+ 0xf1ee, 0xf0a6, 0xf0f9, 0xf175, 0xf25c, 0xf2ad,
+ 0xf19d, 0xf0a0, 0xf0e1, 0xf1a8, 0xf0eb, 0xee8d,
+ 0xedf0, 0xeff0, 0xf21c, 0xf3f7, 0xf4b8, 0xf314,
+ 0xf0b2, 0xee67, 0xecda, 0xef2e, 0xf47c, 0xf7b9,
+ 0xf758, 0xf573, 0xf478, 0xf4a6, 0xf3ef, 0xf242,
+ 0xf182, 0xf17b, 0xf100, 0xf0bd, 0xf202, 0xf40f,
+ 0xf512, 0xf49a, 0xf26c, 0xef00, 0xeca2, 0xebdb,
+ 0xebd1, 0xece1, 0xeea3, 0xf0fa, 0xf407, 0xf5c8,
+ 0xf6d5, 0xf9d8, 0xfd7b, 0x000e, 0x018c, 0x0198,
+ 0x023e, 0x048c, 0x060c, 0x076c, 0x0ad8, 0x0e33,
+ 0x0e5f, 0x0ac5, 0x05bb, 0x02aa, 0x024e, 0x034f,
+ 0x0435, 0x049e, 0x0687, 0x0a4f, 0x0cec, 0x0d38,
+ 0x0ca7, 0x0cd2, 0x0f45, 0x12fb, 0x1452, 0x11bd,
+ 0x0cf9, 0x087f, 0x05d1, 0x053e, 0x0653, 0x081d,
+ 0x0914, 0x081e, 0x0673, 0x05dd, 0x04f9, 0x01af,
+ 0xfcc8, 0xf85a, 0xf6d2, 0xf82e, 0xf84d, 0xf558,
+ 0xf05c, 0xe980, 0xe432, 0xe3e9, 0xe5b5, 0xe7b7,
+ 0xeadd, 0xecec, 0xecb1, 0xecf1, 0xf075, 0xf66f,
+ 0xf9c2, 0xf90e, 0xf8a1, 0xf83c, 0xf5fe, 0xf53a,
+ 0xf73c, 0xfa54, 0xfe4d, 0x01e4, 0x0420, 0x059f,
+ 0x059d, 0x0490, 0x0481, 0x0428, 0x00f3, 0xfc1d,
+ 0xf8ef, 0xf7c8, 0xf708, 0xf76d, 0xf974, 0xfac1,
+ 0xfb09, 0xfc72, 0xff7b, 0x02d2, 0x03b5, 0x0063,
+ 0xfb67, 0xf805, 0xf6df, 0xf7c8, 0xfa0e, 0xfc63,
+ 0xfe08, 0xfeaf, 0xfeab, 0xff7b, 0x021f, 0x0515,
+ 0x05ce, 0x04a0, 0x03e3, 0x041d, 0x0456, 0x0336,
+ 0xffb2, 0xfbcd, 0xfa59, 0xfaa0, 0xfc34, 0x0095,
+ 0x0605, 0x09ae, 0x0c63, 0x0e50, 0x0d54, 0x0a84,
+ 0x09d3, 0x0cb0, 0x10fd, 0x13be, 0x1424, 0x138a,
+ 0x131a, 0x1317, 0x12df, 0x1178, 0x0f07, 0x0c40,
+ 0x0ad1, 0x0d33, 0x1212, 0x15e7, 0x1852, 0x18e1,
+ 0x16a2, 0x13ca, 0x11bb, 0x1057, 0x1050, 0x0f1e,
+ 0x09e4, 0x03f0, 0x01c8, 0x0370, 0x0595, 0x053f,
+ 0x0317, 0x0102, 0xff8a, 0xff10, 0xfece, 0xfe1f,
+ 0xfe4f, 0xff67, 0x00c3, 0x0249, 0x01b7, 0xfdd9,
+ 0xf8f6, 0xf56b, 0xf471, 0xf48d, 0xf299, 0xef1e,
+ 0xec69, 0xeb37, 0xeb97, 0xeb98, 0xe996, 0xe85f,
+ 0xeb73, 0xf1e0, 0xf717, 0xf92f, 0xfa99, 0xfa78,
+ 0xf63b, 0xf0cf, 0xec4c, 0xe846, 0xe7a6, 0xea96,
+ 0xeced, 0xedbc, 0xedb4, 0xecde, 0xebea, 0xeafc,
+ 0xeb94, 0xef39, 0xf303, 0xf44f, 0xf4b3, 0xf5a5,
+ 0xf681, 0xf6fe, 0xf8a1, 0xfc69, 0x009d, 0x039c,
+ 0x0534, 0x056a, 0x04eb, 0x0335, 0xfec1, 0xf925,
+ 0xf594, 0xf516, 0xf74c, 0xfb92, 0x0078, 0x0300,
+ 0x01c8, 0x005a, 0x00ab, 0xffad, 0xfd5c, 0xfd23,
+ 0xff04, 0x004e, 0xff64, 0xfdcd, 0xfec6, 0x0206,
+ 0x04c2, 0x0647, 0x073a, 0x07fb, 0x085b, 0x07d7,
+ 0x0746, 0x074b, 0x06ac, 0x056f, 0x0555, 0x0664,
+ 0x0706, 0x06b5, 0x05f1, 0x04a3, 0x02eb, 0x01c4,
+ 0x01cc, 0x031a, 0x045c, 0x0377, 0x0186, 0x00dc,
+ 0x00dd, 0x013f, 0x0234, 0x01f8, 0x0008, 0xfcf4,
+ 0xf8ee, 0xf67d, 0xf75b, 0xf9b3, 0xfc24, 0xfe96,
+ 0x00ff, 0x0302, 0x031d, 0x0179, 0xffd6, 0xfdf7,
+ 0xfc12, 0xfb96, 0xfc15, 0xfc12, 0xf9bf, 0xf567,
+ 0xf2df, 0xf2c8, 0xf2d8, 0xf40f, 0xf632, 0xf71c,
+ 0xf7eb, 0xf822, 0xf612, 0xf4e5, 0xf5f7, 0xf65b,
+ 0xf6cf, 0xf9a0, 0xfd7e, 0xfff6, 0xffc4, 0xfe12,
+ 0xfd5f, 0xfd33, 0xfb76, 0xf854, 0xf52e, 0xf2e1,
+ 0xf155, 0xefc6, 0xeedf, 0xf02c, 0xf31c, 0xf5aa,
+ 0xf6f3, 0xf791, 0xf84a, 0xf8d3, 0xf876, 0xf7d4,
+ 0xf854, 0xfa29, 0xfc78, 0xfeab, 0xfff0, 0xff94,
+ 0xff5e, 0x011a, 0x02cf, 0x026b, 0x0092, 0xfde9,
+ 0xfb58, 0xf9c2, 0xf8bb, 0xf9ce, 0xfded, 0x0117,
+ 0x01a9, 0x0274, 0x0362, 0x035b, 0x031e, 0x0213,
+ 0x0054, 0xff3e, 0xfe8d, 0xfe60, 0xff0b, 0xff74,
+ 0x0032, 0x031a, 0x079d, 0x0b95, 0x0dc9, 0x0f29,
+ 0x10ab, 0x1129, 0x104c, 0x0f88, 0x0f52, 0x0f66,
+ 0x0f30, 0x0ded, 0x0c24, 0x0a21, 0x075d, 0x0562,
+ 0x0694, 0x0a5c, 0x0d4b, 0x0cf3, 0x0aed, 0x0a64,
+ 0x0bc2, 0x0d49, 0x0e74, 0x10ac, 0x138c, 0x13e9,
+ 0x11ca, 0x0fe7, 0x0d6a, 0x0963, 0x0627, 0x047c,
+ 0x0429, 0x05d7, 0x0804, 0x092b, 0x0a4a, 0x0b88,
+ 0x0c23, 0x0c5f, 0x0c0d, 0x0a59, 0x079a, 0x0551,
+ 0x046c, 0x044d, 0x0417, 0x03fb, 0x0441, 0x03f7,
+ 0x0268, 0x011a, 0x013e, 0x0123, 0xffdc, 0xff03,
+ 0xff95, 0x0100, 0x01ba, 0x0073, 0xfe44, 0xfc96,
+ 0xfad9, 0xf8e0, 0xf739, 0xf5a7, 0xf403, 0xf2bd,
+ 0xf265, 0xf32e, 0xf4da, 0xf6e4, 0xf793, 0xf5e2,
+ 0xf47d, 0xf4d7, 0xf422, 0xf1dd, 0xf08b, 0xf04e,
+ 0xf017, 0xf028, 0xf162, 0xf468, 0xf7f5, 0xfa12,
+ 0xfb5e, 0xfcc8, 0xfc66, 0xf87a, 0xf2ab, 0xee38,
+ 0xecd0, 0xee0e, 0xf09b, 0xf304, 0xf4e9, 0xf72f,
+ 0xfaaa, 0xff07, 0x0289, 0x03c9, 0x03ee, 0x0437,
+ 0x03a0, 0x01da, 0xfff9, 0xfe74, 0xfe3e, 0x0034,
+ 0x033e, 0x0671, 0x0941, 0x0a16, 0x0935, 0x089b,
+ 0x0807, 0x062f, 0x031d, 0xff8f, 0xfd02, 0xfc0d,
+ 0xfb70, 0xfb77, 0xfd35, 0xff8b, 0x01d1, 0x041a,
+ 0x04f6, 0x046a, 0x047e, 0x0600, 0x080b, 0x0833,
+ 0x0541, 0x0228, 0x007a, 0xfe2d, 0xfbbe, 0xfa9b,
+ 0xf92a, 0xf6f8, 0xf56e, 0xf4a3, 0xf415, 0xf331,
+ 0xf21c, 0xf2d0, 0xf60f, 0xf9fb, 0xfc98, 0xfcf7,
+ 0xfbb1, 0xfa25, 0xf856, 0xf620, 0xf497, 0xf489,
+ 0xf5e4, 0xf786, 0xf7f0, 0xf78b, 0xf78e, 0xf862,
+ 0xfa52, 0xfbf2, 0xfadc, 0xf83a, 0xf6d3, 0xf6be,
+ 0xf747, 0xf7d1, 0xf751, 0xf635, 0xf53c, 0xf420,
+ 0xf3df, 0xf50a, 0xf5e8, 0xf5ec, 0xf5a1, 0xf456,
+ 0xf27c, 0xf16c, 0xf108, 0xf1b7, 0xf432, 0xf714,
+ 0xf995, 0xfc19, 0xfd14, 0xfb9a, 0xf9bf, 0xf8d7,
+ 0xf90a, 0xfb2c, 0xfe46, 0xffe8, 0xffce, 0xff6a,
+ 0xfff3, 0x0195, 0x0335, 0x047c, 0x0615, 0x0775,
+ 0x07ce, 0x06a4, 0x031f, 0xff42, 0xfe8a, 0xffda,
+ 0x0098, 0x01aa, 0x03b4, 0x05bd, 0x07b1, 0x0924,
+ 0x0983, 0x09ba, 0x09f2, 0x09c4, 0x0b0c, 0x0f0d,
+ 0x1359, 0x1592, 0x1621, 0x1643, 0x1753, 0x1a1c,
+ 0x1d20, 0x1e81, 0x1e6a, 0x1da6, 0x1cb4, 0x1bc8,
+ 0x1aae, 0x1aa4, 0x1d0f, 0x1f93, 0x1f57, 0x1d88,
+ 0x1cb6, 0x1e69, 0x2216, 0x23ff, 0x226a, 0x2114,
+ 0x220d, 0x22ca, 0x21fa, 0x2077, 0x1e89, 0x1bba,
+ 0x172d, 0x11d0, 0x0e60, 0x0cbc, 0x0b5e, 0x0b58,
+ 0x0c94, 0x0d50, 0x0e0f, 0x0ebc, 0x0da0, 0x0b70,
+ 0x0969, 0x06d3, 0x03a1, 0x0107, 0x0008, 0xffed,
+ 0xfeac, 0xfca6, 0xfbbb, 0xfba5, 0xfc42, 0xfe19,
+ 0xff8b, 0xffad, 0xffc3, 0xffd1, 0xff07, 0xfdbe,
+ 0xfc35, 0xfa29, 0xf7fd, 0xf6cc, 0xf6b4, 0xf6b1,
+ 0xf6bc, 0xf6ee, 0xf588, 0xf1ad, 0xece9, 0xe8bb,
+ 0xe5c2, 0xe3af, 0xe1dd, 0xe1e7, 0xe575, 0xe988,
+ 0xea31, 0xe820, 0xe5b0, 0xe401, 0xe46d, 0xe6d0,
+ 0xe888, 0xe845, 0xe6a2, 0xe48f, 0xe415, 0xe5ec,
+ 0xe7c1, 0xe8d0, 0xeb07, 0xee8d, 0xf108, 0xf0f0,
+ 0xef87, 0xeec1, 0xee29, 0xece1, 0xec47, 0xed40,
+ 0xeedb, 0xf076, 0xf1dc, 0xf27c, 0xf284, 0xf3ba,
+ 0xf758, 0xfb82, 0xfdc5, 0xfe6c, 0xfe7b, 0xfdfc,
+ 0xfdb6, 0xfef2, 0x015c, 0x02f7, 0x0299, 0x01f0,
+ 0x0339, 0x0612, 0x0804, 0x0745, 0x05c5, 0x0781,
+ 0x0bb8, 0x0d69, 0x0b43, 0x085f, 0x0702, 0x06f8,
+ 0x0722, 0x06ef, 0x05ff, 0x0337, 0xfee6, 0xfb68,
+ 0xf9f2, 0xf9af, 0xf970, 0xf82f, 0xf649, 0xf5ab,
+ 0xf6a2, 0xf78d, 0xf858, 0xfa15, 0xfbcf, 0xfb92,
+ 0xf916, 0xf51c, 0xf0e1, 0xeeb7, 0xefc0, 0xf233,
+ 0xf446, 0xf5e9, 0xf6ee, 0xf6c8, 0xf5cf, 0xf47d,
+ 0xf311, 0xf2ca, 0xf4db, 0xf7b6, 0xf90f, 0xf9c5,
+ 0xfb0a, 0xfaf1, 0xf8bf, 0xf6e6, 0xf597, 0xf2b1,
+ 0xee7a, 0xea58, 0xe6d6, 0xe51b, 0xe587, 0xe6da,
+ 0xe93d, 0xed2d, 0xf0b5, 0xf24b, 0xf2a5, 0xf2c0,
+ 0xf41e, 0xf806, 0xfca7, 0xff36, 0xff73, 0xfe65,
+ 0xfd8a, 0xfeac, 0x00cc, 0x00be, 0xfe6a, 0xfc84,
+ 0xfbf3, 0xfbd5, 0xfc32, 0xfd7d, 0xff33, 0x0123,
+ 0x0407, 0x0755, 0x0972, 0x0a8b, 0x0c2c, 0x0f0c,
+ 0x1228, 0x12b4, 0x0fbe, 0x0d2d, 0x0ded, 0x0faa,
+ 0x1094, 0x11ef, 0x1444, 0x171d, 0x19b5, 0x1a32,
+ 0x180b, 0x152c, 0x12c6, 0x10c1, 0x103f, 0x12e6,
+ 0x1827, 0x1d9b, 0x218d, 0x23cf, 0x249a, 0x2382,
+ 0x205d, 0x1d07, 0x1b5e, 0x19c1, 0x168f, 0x1453,
+ 0x147a, 0x13b6, 0x1049, 0x0cc2, 0x0ad8, 0x099e,
+ 0x087b, 0x089f, 0x0aeb, 0x0d9d, 0x0e9f, 0x0e8b,
+ 0x0e0e, 0x0c75, 0x0ada, 0x0ab4, 0x0a16, 0x0693,
+ 0x0164, 0xfdb6, 0xfc6e, 0xfb99, 0xfa98, 0xfb3a,
+ 0xfd19, 0xfda1, 0xfc94, 0xfb26, 0xf93b, 0xf613,
+ 0xf1af, 0xee1d, 0xed9e, 0xeeee, 0xef72, 0xeec3,
+ 0xed5c, 0xebf2, 0xeadf, 0xe925, 0xe7ca, 0xe9af,
+ 0xedaf, 0xf06e, 0xf16e, 0xf06c, 0xebfb, 0xe4fd,
+ 0xdec0, 0xdbfb, 0xdc16, 0xdc1a, 0xdbc8, 0xdd6d,
+ 0xe097, 0xe31d, 0xe43e, 0xe3d4, 0xe313, 0xe41a,
+ 0xe670, 0xe87c, 0xe9f9, 0xea56, 0xe9e6, 0xeb17,
+ 0xee5b, 0xf10b, 0xf184, 0xf14f, 0xf27c, 0xf3b5,
+ 0xf245, 0xefd0, 0xf011, 0xf306, 0xf60e, 0xf73f,
+ 0xf68e, 0xf5cc, 0xf5ea, 0xf5a1, 0xf3eb, 0xf0db,
+ 0xed11, 0xe9ce, 0xe7fb, 0xe7d3, 0xe95f, 0xebff,
+ 0xeed9, 0xf1e0, 0xf59e, 0xfa3e, 0xfe8b, 0x0130,
+ 0x02ad, 0x03dd, 0x04d0, 0x055d, 0x040e, 0xffb6,
+ 0xfae8, 0xf8f0, 0xf94d, 0xf9be, 0xf952, 0xf88d,
+ 0xf851, 0xf8d3, 0xfacf, 0xff00, 0x0222, 0x009b,
+ 0xfdd6, 0xfe88, 0x00c7, 0x0127, 0xffda, 0xff16,
+ 0x0177, 0x0643, 0x0921, 0x099e, 0x0b41, 0x0dfa,
+ 0x0ef1, 0x0d4a, 0x09fe, 0x0633, 0x01dc, 0xfc8c,
+ 0xf7ab, 0xf536, 0xf613, 0xf983, 0xfc1f, 0xfb9a,
+ 0xfa3e, 0xfa0b, 0xfa94, 0xfc7d, 0xfffb, 0x038c,
+ 0x069a, 0x0878, 0x081b, 0x069f, 0x04ee, 0x0238,
+ 0xff80, 0xfea8, 0xff95, 0x01b4, 0x0371, 0x01be,
+ 0xfd21, 0xf98a, 0xf809, 0xf754, 0xf7c2, 0xf99d,
+ 0xfb0c, 0xfa03, 0xf6b9, 0xf376, 0xf2b0, 0xf4f9,
+ 0xf7c2, 0xf84c, 0xf875, 0xfb51, 0xff06, 0x00d0,
+ 0x015b, 0x0108, 0xff16, 0xfc56, 0xf9e3, 0xf7d4,
+ 0xf6b7, 0xf74d, 0xf871, 0xf817, 0xf6f8, 0xf6dd,
+ 0xf683, 0xf4ef, 0xf3f0, 0xf424, 0xf56d, 0xf8b9,
+ 0xfcc5, 0xff49, 0x004d, 0xffab, 0xfcaa, 0xf872,
+ 0xf4b6, 0xf2cb, 0xf363, 0xf42e, 0xf1f0, 0xed77,
+ 0xea3e, 0xea5a, 0xee0e, 0xf407, 0xf9bd, 0xfdd1,
+ 0x00a1, 0x0295, 0x0399, 0x035e, 0x01fa, 0x00c4,
+ 0x00f2, 0x01f5, 0x02b2, 0x031d, 0x049e, 0x0840,
+ 0x0c36, 0x0e11, 0x0e51, 0x0e67, 0x0e2a, 0x0cc0,
+ 0x09f0, 0x0749, 0x06f4, 0x087c, 0x09a5, 0x09ff,
+ 0x0b20, 0x0e50, 0x1259, 0x1407, 0x120b, 0x0e77,
+ 0x0b1b, 0x07a3, 0x041d, 0x01b4, 0x009f, 0x007f,
+ 0x018e, 0x0399, 0x05f7, 0x07fc, 0x089d, 0x081d,
+ 0x0865, 0x0966, 0x08a3, 0x0502, 0x0041, 0xfd32,
+ 0xfcfe, 0xfddb, 0xfde9, 0xfe8a, 0x0203, 0x0733,
+ 0x0ad3, 0x0b5b, 0x095d, 0x065d, 0x0363, 0xffcf,
+ 0xfbf6, 0xfa6b, 0xfae3, 0xf9ad, 0xf608, 0xf333,
+ 0xf397, 0xf63a, 0xf8c2, 0xfa67, 0xfb19, 0xfa28,
+ 0xf829, 0xf70e, 0xf826, 0xfb12, 0xfd36, 0xfc82,
+ 0xfa80, 0xf970, 0xfa0f, 0xfc8c, 0xff67, 0x0103,
+ 0x02a9, 0x04c1, 0x0480, 0x016a, 0xff48, 0x0032,
+ 0x025a, 0x045e, 0x0621, 0x064d, 0x04c5, 0x03cf,
+ 0x03c2, 0x0302, 0x0172, 0xff89, 0xfd66, 0xfbe0,
+ 0xfbc8, 0xfc8b, 0xfbfa, 0xf88c, 0xf475, 0xf356,
+ 0xf534, 0xf711, 0xf72c, 0xf6ce, 0xf831, 0xfb47,
+ 0xfdf7, 0xff6e, 0x00b4, 0x0279, 0x0492, 0x0662,
+ 0x06bf, 0x058b, 0x0458, 0x0319, 0x0059, 0xfdce,
+ 0xfe65, 0x00ce, 0x0216, 0x02a6, 0x03db, 0x04a0,
+ 0x03c3, 0x021a, 0x0112, 0x0175, 0x02ad, 0x033b,
+ 0x03c5, 0x05c8, 0x07da, 0x0940, 0x0bb1, 0x0ddc,
+ 0x0cbf, 0x0944, 0x0630, 0x04a1, 0x03d5, 0x0261,
+ 0x007e, 0xfefb, 0xfd1f, 0xfb17, 0xfa71, 0xfb4e,
+ 0xfc68, 0xfc59, 0xfb03, 0xf9f0, 0xf970, 0xf87a,
+ 0xf7a7, 0xf7d4, 0xf86f, 0xf938, 0xf9c1, 0xf8f5,
+ 0xf7e4, 0xf877, 0xf946, 0xf813, 0xf54c, 0xf1a1,
+ 0xed7e, 0xea5d, 0xe7ea, 0xe469, 0xe0a7, 0xdee1,
+ 0xe06e, 0xe490, 0xe7c6, 0xe8a5, 0xea1a, 0xedab,
+ 0xf275, 0xf798, 0xfb2e, 0xfc15, 0xfb4b, 0xf981,
+ 0xf813, 0xf88f, 0xf910, 0xf756, 0xf4f0, 0xf44a,
+ 0xf5cf, 0xf8d5, 0xfc6a, 0xff1a, 0xfffe, 0x00c9,
+ 0x03c9, 0x07f5, 0x0b14, 0x0d44, 0x0f11, 0x0ff5,
+ 0x0fac, 0x0de4, 0x0a65, 0x06a9, 0x041b, 0x01b7,
+ 0xff95, 0x00ec, 0x059a, 0x0869, 0x0800, 0x084f,
+ 0x0a1d, 0x0ad5, 0x0acf, 0x0c2b, 0x0f05, 0x1224,
+ 0x13e3, 0x13d6, 0x1446, 0x1617, 0x16d9, 0x161c,
+ 0x15e3, 0x165d, 0x16bf, 0x1647, 0x13b7, 0x0f57,
+ 0x0afe, 0x087a, 0x08f6, 0x0b71, 0x0e0c, 0x1034,
+ 0x10ec, 0x0fee, 0x0fb2, 0x11c0, 0x1532, 0x18c8,
+ 0x1af0, 0x1b1f, 0x1ade, 0x1b6d, 0x1c71, 0x1c06,
+ 0x188f, 0x13b6, 0x10ab, 0x0faf, 0x0e39, 0x0ad3,
+ 0x078b, 0x06d2, 0x07a2, 0x0884, 0x0a22, 0x0bda,
+ 0x0b68, 0x0893, 0x0586, 0x03e6, 0x033c, 0x02b6,
+ 0x031c, 0x054f, 0x0841, 0x0a10, 0x0a88, 0x0b17,
+ 0x0bc1, 0x0aa2, 0x06cb, 0x016c, 0xfce1, 0xfa36,
+ 0xf720, 0xf1b2, 0xebe6, 0xe83c, 0xe70e, 0xe7dd,
+ 0xe9e3, 0xec50, 0xee98, 0xf076, 0xf269, 0xf44b,
+ 0xf47a, 0xf29b, 0xf072, 0xef1c, 0xee6e, 0xeeb3,
+ 0xf093, 0xf335, 0xf4aa, 0xf443, 0xf2d5, 0xf170,
+ 0xf0f2, 0xf1d9, 0xf462, 0xf856, 0xfc23, 0xfdfa,
+ 0xfe22, 0xfebf, 0x0108, 0x040b, 0x071a, 0x0ac8,
+ 0x0dcf, 0x0d61, 0x09b9, 0x05a1, 0x0211, 0xfe58,
+ 0xfae8, 0xf928, 0xf9a4, 0xfba0, 0xfdbb, 0xffc6,
+ 0x0325, 0x072a, 0x091a, 0x09ba, 0x0bad, 0x0dcd,
+ 0x0e26, 0x0d9c, 0x0cf4, 0x0bbb, 0x0a02, 0x082e,
+ 0x05f7, 0x02b0, 0xfe8d, 0xfa8f, 0xf7bd, 0xf75d,
+ 0xf917, 0xfa89, 0xfb49, 0xfc78, 0xfd5e, 0xfd62,
+ 0xfd4c, 0xfd79, 0xfde5, 0xfe10, 0xfd33, 0xfbba,
+ 0xfae5, 0xfbd4, 0xfe07, 0xff23, 0xfe7a, 0xfd36,
+ 0xfb4c, 0xf920, 0xf812, 0xf7e1, 0xf789, 0xf6cd,
+ 0xf61c, 0xf605, 0xf5a9, 0xf4bd, 0xf5b0, 0xf8fd,
+ 0xfb95, 0xfbd5, 0xfa62, 0xf89e, 0xf7c0, 0xf717,
+ 0xf613, 0xf6ac, 0xf976, 0xfcb4, 0x0060, 0x0442,
+ 0x0556, 0x0265, 0xfe2b, 0xfb2b, 0xf937, 0xf661,
+ 0xf1b7, 0xed5e, 0xeb86, 0xeb74, 0xec05, 0xed2a,
+ 0xee0a, 0xed4a, 0xebb4, 0xed26, 0xf35b, 0xf925,
+ 0xf9a1, 0xf78f, 0xf6f1, 0xf748, 0xf755, 0xf795,
+ 0xf896, 0xf96b, 0xf842, 0xf5e2, 0xf57c, 0xf6ea,
+ 0xf6a1, 0xf438, 0xf300, 0xf405, 0xf539, 0xf5f0,
+ 0xf710, 0xf8db, 0xfb9e, 0xff20, 0x0165, 0x012e,
+ 0xffdc, 0xff2d, 0xff5d, 0xffc1, 0xffad, 0xff2a,
+ 0xffb7, 0x0224, 0x0461, 0x0598, 0x0843, 0x0c40,
+ 0x0e8e, 0x0f22, 0x0f84, 0x0fd1, 0x101b, 0x1053,
+ 0x100d, 0x0f72, 0x0eb2, 0x0e03, 0x0de9, 0x0e7c,
+ 0x0f8a, 0x109c, 0x1135, 0x116f, 0x1192, 0x1214,
+ 0x12b1, 0x1141, 0x0d89, 0x0b4b, 0x0cc1, 0x0f7d,
+ 0x102b, 0x0ea3, 0x0d22, 0x0bf9, 0x09e7, 0x0811,
+ 0x079f, 0x06ea, 0x04c1, 0x022d, 0x0118, 0x022b,
+ 0x02b7, 0x0085, 0xfe2b, 0xfe11, 0xfeb1, 0xfec0,
+ 0xfed4, 0xff76, 0x00ae, 0x0173, 0x0074, 0xfe29,
+ 0xfb46, 0xf7e8, 0xf5bb, 0xf5b9, 0xf5c8, 0xf550,
+ 0xf644, 0xf85e, 0xf9fd, 0xfb1d, 0xfc05, 0xfccd,
+ 0xfe26, 0x0069, 0x0283, 0x022b, 0xfe78, 0xf989,
+ 0xf5a4, 0xf36d, 0xf2f1, 0xf317, 0xf24f, 0xf0ec,
+ 0xf0aa, 0xf28c, 0xf59a, 0xf7b2, 0xf819, 0xf794,
+ 0xf6ac, 0xf5f3, 0xf60e, 0xf667, 0xf597, 0xf370,
+ 0xf170, 0xf0fc, 0xf245, 0xf417, 0xf438, 0xf274,
+ 0xf18b, 0xf296, 0xf3fc, 0xf4d2, 0xf4bd, 0xf3d1,
+ 0xf37b, 0xf49d, 0xf72d, 0xfb1a, 0xff28, 0x01b6,
+ 0x01c7, 0xfe4e, 0xf816, 0xf287, 0xefdb, 0xef52,
+ 0xeebe, 0xed14, 0xebd7, 0xec15, 0xec59, 0xec57,
+ 0xedc1, 0xf078, 0xf35a, 0xf6a4, 0xf9f0, 0xfbc0,
+ 0xfba6, 0xf9c0, 0xf6ec, 0xf5f8, 0xf78e, 0xf84a,
+ 0xf6fd, 0xf651, 0xf6aa, 0xf5c7, 0xf377, 0xf161,
+ 0xf01b, 0xef6a, 0xeff5, 0xf2cd, 0xf739, 0xfae8,
+ 0xfd5b, 0x0090, 0x04a8, 0x06a7, 0x063c, 0x0775,
+ 0x0b9a, 0x0e6c, 0x0d2a, 0x0a96, 0x09d2, 0x0a29,
+ 0x09f6, 0x098a, 0x096a, 0x088c, 0x05d4, 0x026b,
+ 0x0126, 0x028c, 0x03d0, 0x0316, 0x019b, 0x0137,
+ 0x026a, 0x0496, 0x06b6, 0x07d6, 0x079c, 0x0607,
+ 0x02a4, 0xfe64, 0xfc88, 0xfde8, 0xff9a, 0x000a,
+ 0xffdd, 0xff72, 0xfe79, 0xfbda, 0xf7c0, 0xf459,
+ 0xf245, 0xf08f, 0xeecd, 0xece4, 0xec2c, 0xedca,
+ 0xf018, 0xf27f, 0xf604, 0xf9c4, 0xfcef, 0xff0d,
+ 0xfea3, 0xfcec, 0xfc96, 0xfcd8, 0xfc06, 0xfacc,
+ 0xfad8, 0xfca0, 0xfe50, 0xfee4, 0xffe1, 0x0122,
+ 0x00ed, 0xffd0, 0xfeae, 0xfd36, 0xfbef, 0xfaa4,
+ 0xf7c6, 0xf53c, 0xf6c5, 0xfa43, 0xfa55, 0xf6cd,
+ 0xf31c, 0xf12c, 0xf12c, 0xf1e8, 0xf25e, 0xf2fb,
+ 0xf360, 0xf375, 0xf548, 0xf944, 0xfd42, 0xffdc,
+ 0x0100, 0x0185, 0x023e, 0x02d0, 0x035e, 0x046e,
+ 0x053e, 0x05c2, 0x06fd, 0x07da, 0x064b, 0x02d4,
+ 0xfff2, 0xff02, 0xff42, 0xff07, 0xfdd1, 0xfd4b,
+ 0xfea0, 0x000e, 0x009a, 0x021a, 0x0529, 0x089d,
+ 0x0baf, 0x0d2c, 0x0c6e, 0x0a75, 0x0869, 0x07b8,
+ 0x0921, 0x0b04, 0x0c2d, 0x0d19, 0x0dd6, 0x0e69,
+ 0x0f05, 0x0f2d, 0x0edc, 0x0eef, 0x0fd7, 0x112a,
+ 0x1151, 0x0ea4, 0x09d4, 0x0537, 0x01a1, 0xfe92,
+ 0xfc9b, 0xfca2, 0xfe6f, 0x00d4, 0x016b, 0xfee9,
+ 0xfbc8, 0xfa1c, 0xf8e9, 0xf7d4, 0xf6db, 0xf513,
+ 0xf315, 0xf1bd, 0xf08b, 0xef58, 0xed88, 0xea86,
+ 0xe81a, 0xe7f8, 0xe9c4, 0xec7f, 0xeee7, 0xf09e,
+ 0xf2b4, 0xf53a, 0xf722, 0xf821, 0xf88b, 0xf8a5,
+ 0xf886, 0xf875, 0xf98e, 0xfc3a, 0xfea6, 0xfeba,
+ 0xfccc, 0xfb11, 0xfb0d, 0xfcf1, 0x00b5, 0x0539,
+ 0x0764, 0x05b0, 0x02ce, 0x014a, 0x0007, 0xfde1,
+ 0xfc09, 0xfb13, 0xfabc, 0xfbb1, 0xfda2, 0xff1e,
+ 0x003a, 0x017f, 0x0211, 0x0111, 0xfe74, 0xfaf9,
+ 0xf838, 0xf727, 0xf782, 0xf923, 0xfb79, 0xfd63,
+ 0xff0a, 0x00cd, 0x01d6, 0x027b, 0x037f, 0x0325,
+ 0x00ac, 0xfe3b, 0xfcdb, 0xfc5c, 0xfcea, 0xfdb0,
+ 0xfd9a, 0xfc49, 0xf9f9, 0xf8aa, 0xf969, 0xf9fc,
+ 0xf96a, 0xf92d, 0xf981, 0xfa1d, 0xfb80, 0xfe06,
+ 0x01e4, 0x069a, 0x0b0b, 0x0ef3, 0x11d9, 0x1284,
+ 0x10f1, 0x0e37, 0x0b1a, 0x089d, 0x07ae, 0x07a4,
+ 0x078b, 0x07ca, 0x0832, 0x07f0, 0x0788, 0x0723,
+ 0x0686, 0x0765, 0x0a38, 0x0cb3, 0x0dc2, 0x0d51,
+ 0x0b03, 0x07a2, 0x0429, 0x0160, 0x0047, 0x0029,
+ 0xffb5, 0xfebf, 0xfd0e, 0xfafe, 0xf986, 0xf892,
+ 0xf851, 0xf908, 0xf939, 0xf769, 0xf405, 0xf0b5,
+ 0xeee8, 0xeeaa, 0xef71, 0xf0d3, 0xf25f, 0xf4a9,
+ 0xf849, 0xfc9e, 0x0177, 0x063d, 0x08c4, 0x083d,
+ 0x05fc, 0x0338, 0x003a, 0xfcec, 0xfa40, 0xf980,
+ 0xfa3f, 0xfbd1, 0xfe21, 0x008b, 0x02e1, 0x04ca,
+ 0x04c7, 0x0382, 0x03d4, 0x05ce, 0x06a2, 0x054c,
+ 0x0332, 0x00d1, 0xfd9c, 0xfaa8, 0xf9ef, 0xfba8,
+ 0xfdea, 0xfedb, 0xff53, 0x00be, 0x01c0, 0x015e,
+ 0x00a6, 0xff9a, 0xfe71, 0xfe41, 0xfeea, 0x00fd,
+ 0x0502, 0x093e, 0x0d09, 0x0ffa, 0x0f5c, 0x0bdc,
+ 0x0a6d, 0x0c81, 0x0edd, 0x0edc, 0x0d22, 0x0c1c,
+ 0x0cf1, 0x0e7a, 0x0e91, 0x0c65, 0x099d, 0x0780,
+ 0x05af, 0x04a7, 0x04e1, 0x0571, 0x0659, 0x0829,
+ 0x0a59, 0x0c98, 0x0ed2, 0x10bd, 0x129e, 0x143f,
+ 0x1430, 0x11c2, 0x0e2f, 0x0af5, 0x0825, 0x0590,
+ 0x0443, 0x04df, 0x062c, 0x070b, 0x0801, 0x0955,
+ 0x09e8, 0x0979, 0x08f9, 0x07a8, 0x04a0, 0x01d3,
+ 0x00d7, 0x005a, 0xff2c, 0xfe28, 0xfe65, 0xfed6,
+ 0xfdd2, 0xfca9, 0xfcfc, 0xfcbb, 0xfa4c, 0xf74f,
+ 0xf4bf, 0xf293, 0xf18a, 0xf15b, 0xf09d, 0xef43,
+ 0xee75, 0xee58, 0xedee, 0xecde, 0xebde, 0xebc5,
+ 0xed2c, 0xefef, 0xf284, 0xf34e, 0xf2b3, 0xf2a3,
+ 0xf3ea, 0xf53b, 0xf576, 0xf4e5, 0xf3fe, 0xf318,
+ 0xf2b3, 0xf2cb, 0xf392, 0xf5fc, 0xf982, 0xfbbf,
+ 0xfbfc, 0xfbc8, 0xfba0, 0xfae5, 0xfa35, 0xfa5a,
+ 0xfaf8, 0xfc07, 0xfd9f, 0xfe99, 0xfe91, 0xff03,
+ 0x0038, 0x0057, 0xfe87, 0xfba7, 0xf907, 0xf85a,
+ 0xf9e0, 0xfb27, 0xfabb, 0xf9ab, 0xf898, 0xf7ae,
+ 0xf7c0, 0xf8ce, 0xf9e7, 0xfa66, 0xf9bf, 0xf7c8,
+ 0xf617, 0xf6b6, 0xf83d, 0xf721, 0xf451, 0xf3c7,
+ 0xf515, 0xf516, 0xf365, 0xf110, 0xeed2, 0xed5f,
+ 0xec4f, 0xeac7, 0xe957, 0xe985, 0xec48, 0xf153,
+ 0xf71b, 0xfbf2, 0xff53, 0x0222, 0x052a, 0x0811,
+ 0x0a0d, 0x0a65, 0x0909, 0x072b, 0x05f1, 0x0546,
+ 0x04b3, 0x0470, 0x0551, 0x07ad, 0x0b63, 0x1055,
+ 0x1459, 0x13f9, 0x0f9e, 0x0b9e, 0x0b0d, 0x0d4a,
+ 0x0eef, 0x0ce7, 0x0785, 0x024a, 0x00e1, 0x03a3,
+ 0x0780, 0x0994, 0x08a4, 0x0547, 0x01f1, 0xff70,
+ 0xfcd3, 0xfb26, 0xfab6, 0xf8b8, 0xf450, 0xf063,
+ 0xf00f, 0xf380, 0xf7b3, 0xfa8f, 0xfcbd, 0xfecb,
+ 0x00c9, 0x02af, 0x039c, 0x0381, 0x036f, 0x03e0,
+ 0x0462, 0x0315, 0xfeb7, 0xfa07, 0xf8a5, 0xfa91,
+ 0xfdc4, 0x00e1, 0x03ce, 0x074e, 0x0ba0, 0x0f41,
+ 0x101f, 0x0e8a, 0x0cd8, 0x0b9d, 0x09bc, 0x0701,
+ 0x03c6, 0x00bb, 0xff21, 0xff1b, 0xff7e, 0xffc5,
+ 0x00cd, 0x02de, 0x0443, 0x0401, 0x0382, 0x03ce,
+ 0x04bf, 0x061d, 0x0742, 0x079f, 0x073f, 0x06eb,
+ 0x0824, 0x0a22, 0x0a61, 0x099c, 0x09e7, 0x0b1b,
+ 0x0cd9, 0x0e5e, 0x0e0d, 0x0bc8, 0x0826, 0x03e9,
+ 0x00e6, 0xffd2, 0xfff2, 0x0089, 0x0072, 0x0008,
+ 0x0132, 0x02de, 0x0289, 0x014e, 0x0189, 0x02df,
+ 0x0417, 0x04fd, 0x04fb, 0x037f, 0x01ad, 0x00f9,
+ 0x019b, 0x0346, 0x04cb, 0x0487, 0x0232, 0xfe7d,
+ 0xfac0, 0xf8e2, 0xf895, 0xf791, 0xf594, 0xf437,
+ 0xf3d2, 0xf35a, 0xf21e, 0xf0b7, 0xf050, 0xf0f5,
+ 0xf17f, 0xf1b0, 0xf2a8, 0xf452, 0xf56a, 0xf64b,
+ 0xf7b0, 0xf88f, 0xf85d, 0xf76f, 0xf54c, 0xf2a3,
+ 0xf198, 0xf24c, 0xf2b0, 0xf0fe, 0xed1e, 0xe974,
+ 0xe960, 0xed33, 0xf159, 0xf30c, 0xf319, 0xf28c,
+ 0xf110, 0xeff0, 0xf176, 0xf550, 0xf953, 0xfbdb,
+ 0xfc5f, 0xfc07, 0xfc49, 0xfc6d, 0xfaf7, 0xf8bd,
+ 0xf816, 0xfa1a, 0xfd88, 0xff9b, 0xff06, 0xfde5,
+ 0xfe8e, 0x001f, 0x0089, 0xff82, 0xfe08, 0xfd03,
+ 0xfca8, 0xfc73, 0xfc31, 0xfbed, 0xfa88, 0xf6eb,
+ 0xf2dd, 0xf1cc, 0xf50b, 0xfae4, 0xffdf, 0x0153,
+ 0x0030, 0xff54, 0xff8e, 0x004d, 0x0184, 0x026f,
+ 0x01e8, 0x0049, 0xfe97, 0xfcf7, 0xfb4c, 0xf9ea,
+ 0xf8e5, 0xf84d, 0xf915, 0xfb48, 0xfcc3, 0xfc4d,
+ 0xfaee, 0xf990, 0xf8e0, 0xf974, 0xfa35, 0xf9c6,
+ 0xf8bf, 0xf857, 0xf8e7, 0xfa27, 0xfb61, 0xfbec,
+ 0xfbfd, 0xfc26, 0xfc82, 0xfd89, 0x0087, 0x055c,
+ 0x09bb, 0x0b9b, 0x0a8e, 0x0799, 0x0473, 0x01e8,
+ 0x0049, 0x004f, 0x014d, 0x018a, 0x0188, 0x0379,
+ 0x0770, 0x0a7c, 0x09b7, 0x05b5, 0x01f4, 0x005c,
+ 0xff6b, 0xfe35, 0xfea6, 0x0131, 0x0353, 0x044c,
+ 0x05b0, 0x07ba, 0x0950, 0x0992, 0x0867, 0x06a8,
+ 0x04ac, 0x0202, 0xfee8, 0xfb8d, 0xf83d, 0xf621,
+ 0xf555, 0xf52b, 0xf631, 0xf897, 0xfb03, 0xfc27,
+ 0xfb82, 0xf9fb, 0xf998, 0xfb30, 0xfd8f, 0xfebb,
+ 0xfddf, 0xfc7d, 0xfc67, 0xfd34, 0xfd81, 0xfd37,
+ 0xfd2e, 0xfdb4, 0xfe3e, 0xfe42, 0xfd8d, 0xfc1b,
+ 0xf9ec, 0xf68d, 0xf208, 0xee88, 0xee9d, 0xf1c1,
+ 0xf4e8, 0xf63e, 0xf6a2, 0xf764, 0xf867, 0xf8d0,
+ 0xf84e, 0xf7ba, 0xf851, 0xf9e2, 0xfb2e, 0xfbc6,
+ 0xfc19, 0xfcd3, 0xfe74, 0x00c5, 0x032c, 0x04ad,
+ 0x03f5, 0x0108, 0xfdae, 0xfba0, 0xfb6e, 0xfc61,
+ 0xfdaf, 0xff87, 0x01d6, 0x03f5, 0x05d5, 0x0772,
+ 0x085a, 0x0853, 0x074d, 0x0621, 0x06a7, 0x0926,
+ 0x0b84, 0x0c01, 0x0b26, 0x0a99, 0x0ab7, 0x0a90,
+ 0x09e3, 0x0965, 0x09a1, 0x0a8e, 0x0b6b, 0x0b55,
+ 0x09f8, 0x07c7, 0x0643, 0x0709, 0x0994, 0x0b66,
+ 0x0acd, 0x088a, 0x0678, 0x0568, 0x0552, 0x064f,
+ 0x0781, 0x06ee, 0x03f9, 0x0086, 0xfe83, 0xfd93,
+ 0xfc54, 0xfaf2, 0xfad7, 0xfc5c, 0xfe30, 0xff26,
+ 0xff4b, 0xfe9f, 0xfcb4, 0xfa67, 0xf976, 0xf9e5,
+ 0xfa31, 0xf95d, 0xf780, 0xf598, 0xf509, 0xf681,
+ 0xf984, 0xfd0e, 0x0070, 0x035c, 0x0596, 0x0711,
+ 0x07ca, 0x079a, 0x068e, 0x04a6, 0x01b0, 0xfe55,
+ 0xfc1b, 0xfb9b, 0xfc11, 0xfcbb, 0xfd7f, 0xfe6b,
+ 0xff77, 0x00c2, 0x0293, 0x04f8, 0x0746, 0x0821,
+ 0x06ad, 0x038f, 0x0047, 0xfdf1, 0xfcc6, 0xfc18,
+ 0xface, 0xf86c, 0xf572, 0xf26b, 0xef92, 0xedd1,
+ 0xee92, 0xf1b3, 0xf4e5, 0xf602, 0xf531, 0xf45e,
+ 0xf4e7, 0xf65c, 0xf783, 0xf7c6, 0xf745, 0xf60e,
+ 0xf3d1, 0xf08f, 0xed4a, 0xeb8c, 0xec20, 0xee4e,
+ 0xf0b7, 0xf2eb, 0xf590, 0xf8b8, 0xfaee, 0xfaa6,
+ 0xf804, 0xf460, 0xf0c2, 0xedfe, 0xed4e, 0xef6e,
+ 0xf374, 0xf766, 0xf9d1, 0xfa82, 0xfa08, 0xf973,
+ 0xf9e7, 0xfb43, 0xfbd6, 0xfaa6, 0xf919, 0xf909,
+ 0xf9e9, 0xf9ae, 0xf834, 0xf7a9, 0xf93b, 0xfb62,
+ 0xfc58, 0xfca6, 0xfdaf, 0xff0e, 0xff67, 0xfeb5,
+ 0xfdde, 0xfcac, 0xfa10, 0xf675, 0xf434, 0xf52b,
+ 0xf8e4, 0xfd2d, 0xffad, 0xff71, 0xfda2, 0xfc68,
+ 0xfc96, 0xfcb6, 0xfb38, 0xf90e, 0xf89d, 0xfa46,
+ 0xfbd0, 0xfb7a, 0xfa2e, 0xf9bd, 0xfa49, 0xfac1,
+ 0xfae2, 0xfb6c, 0xfcd3, 0xfe8e, 0xfffa, 0x0129,
+ 0x026a, 0x03c6, 0x04ef, 0x0534, 0x0455, 0x034f,
+ 0x035c, 0x04c0, 0x06f4, 0x092b, 0x0aaf, 0x0b2d,
+ 0x0b11, 0x0b7c, 0x0cdc, 0x0dde, 0x0d04, 0x0ad1,
+ 0x095f, 0x09d1, 0x0aec, 0x0aea, 0x09df, 0x091b,
+ 0x090e, 0x08f5, 0x082b, 0x06dc, 0x0598, 0x04db,
+ 0x04ce, 0x053a, 0x05fe, 0x0761, 0x0971, 0x0bcc,
+ 0x0e38, 0x1061, 0x1157, 0x1076, 0x0e7c, 0x0ce9,
+ 0x0c86, 0x0ccf, 0x0c9c, 0x0bb2, 0x0b54, 0x0c77,
+ 0x0e56, 0x0f8a, 0x0f9f, 0x0f1f, 0x0edc, 0x0f43,
+ 0x0fff, 0x103a, 0x0fc9, 0x0fb5, 0x1080, 0x1107,
+ 0x1038, 0x0e7c, 0x0d32, 0x0d6c, 0x0ed0, 0x106b,
+ 0x127c, 0x1596, 0x18e3, 0x1af8, 0x1b58, 0x1abd,
+ 0x1a20, 0x1987, 0x1863, 0x16eb, 0x15a3, 0x13df,
+ 0x10d3, 0x0d94, 0x0b69, 0x09ae, 0x0809, 0x080c,
+ 0x0a3b, 0x0c26, 0x0b10, 0x0736, 0x038d, 0x0230,
+ 0x0239, 0x0174, 0xff07, 0xfb9b, 0xf7b1, 0xf33b,
+ 0xeee2, 0xebb5, 0xe9f1, 0xe95e, 0xe9d7, 0xeb1e,
+ 0xecee, 0xeef7, 0xf0d3, 0xf1dd, 0xf0ee, 0xedbf,
+ 0xea09, 0xe7f8, 0xe84f, 0xea99, 0xee08, 0xf19d,
+ 0xf3b4, 0xf30d, 0xf0e2, 0xf02d, 0xf24e, 0xf59e,
+ 0xf7b8, 0xf843, 0xf8ac, 0xf9fa, 0xfbc3, 0xfccf,
+ 0xfcc3, 0xfca8, 0xfd6b, 0xfeac, 0xfef3, 0xfd39,
+ 0xfa92, 0xf905, 0xf93b, 0xfa6d, 0xfb3a, 0xfac0,
+ 0xf93f, 0xf711, 0xf4e8, 0xf438, 0xf525, 0xf663,
+ 0xf715, 0xf6ff, 0xf66e, 0xf62f, 0xf6ed, 0xf8d2,
+ 0xfacb, 0xfb97, 0xfb81, 0xfacc, 0xf8f5, 0xf5f9,
+ 0xf1a3, 0xec2d, 0xe783, 0xe561, 0xe641, 0xe95e,
+ 0xec75, 0xee4a, 0xefb6, 0xf0f5, 0xf111, 0xefbd,
+ 0xee3f, 0xee58, 0xf046, 0xf30f, 0xf5b4, 0xf703,
+ 0xf66e, 0xf474, 0xf1b7, 0xef7a, 0xef6e, 0xf244,
+ 0xf744, 0xfc61, 0xffcb, 0x01ab, 0x02a8, 0x031a,
+ 0x038e, 0x03c3, 0x038a, 0x03e6, 0x04cd, 0x04e8,
+ 0x0432, 0x040a, 0x050d, 0x059c, 0x0363, 0xfee0,
+ 0xfb70, 0xfb12, 0xfc60, 0xfdf7, 0x0099, 0x03e6,
+ 0x052b, 0x0382, 0x00dd, 0xfee0, 0xfd6e, 0xfbb1,
+ 0xf9b0, 0xf819, 0xf681, 0xf454, 0xf298, 0xf257,
+ 0xf2b7, 0xf24c, 0xf16f, 0xf198, 0xf31e, 0xf56f,
+ 0xf7e5, 0xf9ba, 0xfaec, 0xfbc4, 0xfbed, 0xfc17,
+ 0xfd37, 0xfeb7, 0x0078, 0x032a, 0x062c, 0x0873,
+ 0x09ab, 0x09c5, 0x0909, 0x07c8, 0x0625, 0x0497,
+ 0x0427, 0x05a0, 0x07a7, 0x07b0, 0x0653, 0x066a,
+ 0x083e, 0x0a01, 0x0b49, 0x0d55, 0x1115, 0x157d,
+ 0x1816, 0x17a5, 0x1559, 0x12c9, 0x101a, 0x0cf7,
+ 0x0a36, 0x0981, 0x0b0d, 0x0c98, 0x0c90, 0x0c4b,
+ 0x0ca0, 0x0c5d, 0x0b7b, 0x0b06, 0x0ace, 0x0a0a,
+ 0x08ae, 0x0753, 0x0659, 0x05b4, 0x05f1, 0x0766,
+ 0x0987, 0x0c22, 0x0e80, 0x0f25, 0x0dbe, 0x0a45,
+ 0x04e3, 0xffd9, 0xfd13, 0xfbfd, 0xfb9b, 0xfb61,
+ 0xfae2, 0xfa49, 0xf9db, 0xf9c4, 0xfaa1, 0xfd6d,
+ 0x0212, 0x0652, 0x07f7, 0x0744, 0x05e9, 0x0559,
+ 0x0573, 0x04aa, 0x02ae, 0x0089, 0xfebf, 0xfddf,
+ 0xfe3e, 0xfed4, 0xfef4, 0xff22, 0xff7a, 0xff38,
+ 0xfe27, 0xfcf4, 0xfbdc, 0xfb03, 0xfb18, 0xfb99,
+ 0xfb3f, 0xfa06, 0xf846, 0xf659, 0xf45a, 0xf14e,
+ 0xedfe, 0xed16, 0xee8c, 0xf069, 0xf228, 0xf3e8,
+ 0xf52e, 0xf538, 0xf48b, 0xf4ae, 0xf4c7, 0xf2e4,
+ 0xf039, 0xef49, 0xf084, 0xf271, 0xf337, 0xf27b,
+ 0xf12c, 0xf099, 0xf1d6, 0xf3c9, 0xf4a5, 0xf496,
+ 0xf3d8, 0xf2ad, 0xf28d, 0xf405, 0xf6fc, 0xfac4,
+ 0xfc91, 0xfb85, 0xfa47, 0xfa2c, 0xfa8c, 0xfa8d,
+ 0xf94e, 0xf6d8, 0xf3cf, 0xf0e1, 0xeee6, 0xedbf,
+ 0xed42, 0xedaf, 0xeddb, 0xecfb, 0xec09, 0xeb8e,
+ 0xebf9, 0xedfc, 0xf0cf, 0xf300, 0xf3e9, 0xf3ef,
+ 0xf437, 0xf4f4, 0xf52e, 0xf49c, 0xf3b9, 0xf2e6,
+ 0xf227, 0xf14a, 0xf075, 0xefd9, 0xef5c, 0xef6e,
+ 0xf131, 0xf4f1, 0xf8d3, 0xfa51, 0xf93d, 0xf7bb,
+ 0xf7ab, 0xf908, 0xfa13, 0xf95c, 0xf720, 0xf458,
+ 0xf225, 0xf0ef, 0xeffa, 0xef6e, 0xf060, 0xf297,
+ 0xf548, 0xf847, 0xfbb5, 0xffba, 0x0370, 0x0561,
+ 0x0592, 0x050f, 0x0496, 0x04bd, 0x059a, 0x0617,
+ 0x04a8, 0x016d, 0xfe36, 0xfbf3, 0xfaf9, 0xfc0a,
+ 0xfe2f, 0xffd9, 0x01e3, 0x04db, 0x06d7, 0x06b9,
+ 0x0546, 0x02e7, 0x000f, 0xfe11, 0xfc83, 0xf978,
+ 0xf624, 0xf5a1, 0xf7a8, 0xf9cb, 0xfae5, 0xfb79,
+ 0xfd08, 0xffb0, 0x01ee, 0x036c, 0x03cf, 0x0221,
+ 0x0044, 0x00cd, 0x026a, 0x024b, 0x005d, 0xfe81,
+ 0xfd8b, 0xfd7a, 0xff7e, 0x03e7, 0x07d6, 0x0889,
+ 0x0695, 0x049a, 0x04aa, 0x065b, 0x07a0, 0x0799,
+ 0x0686, 0x0401, 0x007a, 0xfe86, 0xfeff, 0xff70,
+ 0xfee3, 0xfee2, 0xff69, 0xff6c, 0xff5e, 0xffc1,
+ 0xffc2, 0xfe81, 0xfcbd, 0xfc20, 0xfcf1, 0xfe4d,
+ 0xff48, 0xff0b, 0xfe05, 0xfd7e, 0xfde2, 0xfede,
+ 0xff28, 0xfdf5, 0xfd3d, 0xfe62, 0xffe6, 0x003b,
+ 0xff04, 0xfd19, 0xfb43, 0xf900, 0xf810, 0xfad2,
+ 0xfe62, 0xffa4, 0x002a, 0x012e, 0x0257, 0x03bc,
+ 0x04e0, 0x053c, 0x04f9, 0x0459, 0x0323, 0x0047,
+ 0xfc90, 0xfb1b, 0xfd0f, 0x00ec, 0x041f, 0x0487,
+ 0x03f8, 0x05bc, 0x0901, 0x0ae1, 0x0a1d, 0x07d7,
+ 0x067f, 0x065b, 0x063a, 0x06b9, 0x080d, 0x08db,
+ 0x0832, 0x05ef, 0x0380, 0x0270, 0x01f2, 0x01b6,
+ 0x0272, 0x02d6, 0x0183, 0xff1f, 0xfcbd, 0xfb89,
+ 0xfbe3, 0xfc98, 0xfcf8, 0xfd60, 0xfdff, 0xfeda,
+ 0xff8f, 0xffc6, 0x004f, 0x0165, 0x019d, 0x00c7,
+ 0x001c, 0xff83, 0xfec4, 0xfeb5, 0xfedb, 0xfe89,
+ 0xff00, 0x00c7, 0x02b7, 0x044b, 0x0566, 0x0567,
+ 0x042a, 0x02c8, 0x028e, 0x03a5, 0x058a, 0x07c9,
+ 0x09d2, 0x0b7a, 0x0c72, 0x0be7, 0x0a5b, 0x0837,
+ 0x0494, 0x0176, 0x01bb, 0x036f, 0x03ed, 0x0340,
+ 0x00d7, 0xfcba, 0xf98c, 0xf972, 0xfc21, 0xff7b,
+ 0x0186, 0x0270, 0x031a, 0x0382, 0x0327, 0x01a2,
+ 0xfff3, 0xffb2, 0xffff, 0xff27, 0xfddd, 0xfd07,
+ 0xfc27, 0xfb71, 0xfbb4, 0xfcc5, 0xfdf0, 0xfeb5,
+ 0xfed9, 0xfe96, 0xfe1e, 0xfd09, 0xfb34, 0xf92e,
+ 0xf775, 0xf664, 0xf646, 0xf6ea, 0xf806, 0xf989,
+ 0xfac7, 0xfa76, 0xf892, 0xf6eb, 0xf6f3, 0xf822,
+ 0xf8dd, 0xf80b, 0xf624, 0xf4d9, 0xf5bc, 0xf8ff,
+ 0xfcc9, 0xff10, 0x003c, 0x018e, 0x02d8, 0x03e2,
+ 0x048b, 0x049a, 0x051a, 0x060c, 0x0503, 0x0159,
+ 0xfd8e, 0xfbd9, 0xfbef, 0xfb9a, 0xf9dd, 0xf865,
+ 0xf8ac, 0xfa19, 0xfadd, 0xf983, 0xf640, 0xf246,
+ 0xeefd, 0xedb3, 0xee11, 0xeedc, 0xf005, 0xf1b7,
+ 0xf39a, 0xf524, 0xf5d5, 0xf600, 0xf548, 0xf2c4,
+ 0xf0b8, 0xf159, 0xf278, 0xf2fc, 0xf4fc, 0xf88b,
+ 0xfbd1, 0xfddb, 0xfe87, 0xfeb4, 0xff8c, 0x00c4,
+ 0x0155, 0x01a7, 0x0342, 0x05a4, 0x0669, 0x0598,
+ 0x05bc, 0x07c8, 0x0a0b, 0x0a7b, 0x08ec, 0x06b5,
+ 0x04d0, 0x03a2, 0x033b, 0x0394, 0x056d, 0x0887,
+ 0x0aab, 0x0b28, 0x0bbc, 0x0d63, 0x0f10, 0x0ed9,
+ 0x0cd2, 0x0b90, 0x0b8f, 0x0ab8, 0x0961, 0x09cc,
+ 0x0bca, 0x0d20, 0x0c74, 0x0aa1, 0x09c0, 0x0a71,
+ 0x0b5d, 0x0bc4, 0x0c27, 0x0caf, 0x0d5d, 0x0ea0,
+ 0x104c, 0x11b2, 0x128b, 0x1240, 0x102f, 0x0d49,
+ 0x0b2f, 0x0a75, 0x0a9a, 0x0ab3, 0x0a78, 0x0ae8,
+ 0x0c6a, 0x0d97, 0x0e06, 0x0fae, 0x1326, 0x15cb,
+ 0x1579, 0x1303, 0x10cb, 0x1063, 0x10d0, 0x10a5,
+ 0x10d9, 0x11d1, 0x11e7, 0x115a, 0x114c, 0x10ae,
+ 0x0f0a, 0x0d32, 0x0af3, 0x08cd, 0x0802, 0x07e8,
+ 0x0765, 0x06a7, 0x05b4, 0x048e, 0x03b2, 0x02f0,
+ 0x01b3, 0x004f, 0xff6e, 0xfe62, 0xfbf7, 0xf8fd,
+ 0xf760, 0xf76e, 0xf8b0, 0xfab0, 0xfbf8, 0xfbb8,
+ 0xfadb, 0xf9e2, 0xf864, 0xf61b, 0xf36f, 0xf1fd,
+ 0xf2f9, 0xf589, 0xf88b, 0xfb78, 0xfd7e, 0xfe47,
+ 0xfe6f, 0xfec9, 0xffe1, 0x0134, 0x017d, 0x0077,
+ 0xff18, 0xfe4e, 0xfe0d, 0xfdbe, 0xfdf4, 0xffd2,
+ 0x02c0, 0x04eb, 0x0514, 0x0373, 0x0167, 0xff8d,
+ 0xfd3b, 0xfab9, 0xf94b, 0xf8d8, 0xf7e3, 0xf631,
+ 0xf56d, 0xf65f, 0xf7fb, 0xf9bd, 0xfbc3, 0xfd16,
+ 0xfcb1, 0xfb0c, 0xf99f, 0xf943, 0xf919, 0xf7a8,
+ 0xf4cb, 0xf1bd, 0xefe9, 0xefa9, 0xf018, 0xf08b,
+ 0xf150, 0xf301, 0xf5c5, 0xf8c0, 0xfaa5, 0xfae5,
+ 0xf9e3, 0xf8f5, 0xf94d, 0xf9e9, 0xf8d9, 0xf691,
+ 0xf5a9, 0xf740, 0xf987, 0xfa58, 0xf9e5, 0xf9e7,
+ 0xfb4c, 0xfd1c, 0xfdb4, 0xfcfd, 0xfbd2, 0xfa3f,
+ 0xf8c3, 0xf8e9, 0xfac8, 0xfc76, 0xfcd1, 0xfd40,
+ 0xff8e, 0x02d2, 0x047d, 0x03cf, 0x0244, 0x01a3,
+ 0x0225, 0x023c, 0x00d8, 0xfea2, 0xfc37, 0xf983,
+ 0xf6bd, 0xf4d6, 0xf4d5, 0xf635, 0xf73d, 0xf7af,
+ 0xf816, 0xf7a5, 0xf649, 0xf5cd, 0xf68e, 0xf63a,
+ 0xf335, 0xef42, 0xed65, 0xee13, 0xef8a, 0xf0e5,
+ 0xf241, 0xf2f2, 0xf218, 0xf09f, 0xf074, 0xf10e,
+ 0xf02d, 0xeec6, 0xefe7, 0xf336, 0xf649, 0xf86f,
+ 0xf9c1, 0xfaed, 0xfdb5, 0x0226, 0x0604, 0x07e7,
+ 0x0886, 0x097c, 0x0b49, 0x0c9a, 0x0c94, 0x0c5c,
+ 0x0d17, 0x0eb0, 0x106e, 0x10f2, 0x0f16, 0x0c0e,
+ 0x0a90, 0x0b26, 0x0bac, 0x0ab7, 0x0914, 0x083f,
+ 0x0903, 0x0b09, 0x0d59, 0x0f63, 0x1138, 0x1303,
+ 0x1494, 0x155b, 0x155d, 0x1568, 0x1546, 0x1375,
+ 0x0ff3, 0x0cf2, 0x0bc0, 0x0b71, 0x0add, 0x09ba,
+ 0x083e, 0x06f1, 0x065a, 0x06aa, 0x079d, 0x0875,
+ 0x08f1, 0x0955, 0x0904, 0x0780, 0x05e0, 0x0506,
+ 0x045f, 0x0340, 0x01b1, 0x0005, 0xfe37, 0xfc14,
+ 0xfa4f, 0xfa10, 0xfb6f, 0xfd72, 0xff09, 0xff9f,
+ 0xff04, 0xfd7a, 0xfc45, 0xfd11, 0xffec, 0x030c,
+ 0x04fc, 0x0617, 0x0746, 0x0841, 0x087b, 0x0852,
+ 0x081b, 0x07af, 0x0689, 0x0417, 0x0163, 0x0020,
+ 0xff93, 0xfde2, 0xfb14, 0xf82d, 0xf5c1, 0xf419,
+ 0xf385, 0xf465, 0xf661, 0xf811, 0xf80f, 0xf602,
+ 0xf33e, 0xf20a, 0xf35b, 0xf5f0, 0xf7be, 0xf792,
+ 0xf5a7, 0xf315, 0xf124, 0xf0b2, 0xf158, 0xf22b,
+ 0xf315, 0xf440, 0xf586, 0xf732, 0xf9dd, 0xfd59,
+ 0x001a, 0x0057, 0xfe7c, 0xfd0a, 0xfd57, 0xfe3e,
+ 0xfe47, 0xfd9e, 0xfd5a, 0xfd92, 0xfd47, 0xfbf7,
+ 0xfa3d, 0xf8ef, 0xf826, 0xf755, 0xf67a, 0xf628,
+ 0xf62b, 0xf582, 0xf409, 0xf2e5, 0xf2db, 0xf38e,
+ 0xf4ae, 0xf680, 0xf8de, 0xfb38, 0xfd5e, 0xff22,
+ 0xffbe, 0xfeb6, 0xfccd, 0xfb4c, 0xfa5c, 0xf8d9,
+ 0xf60d, 0xf2b8, 0xefe8, 0xee31, 0xee12, 0xef87,
+ 0xf149, 0xf1d9, 0xf144, 0xf12e, 0xf2a5, 0xf469,
+ 0xf43d, 0xf192, 0xede5, 0xeaca, 0xe896, 0xe72f,
+ 0xe75a, 0xe974, 0xebee, 0xed50, 0xee3c, 0xefb3,
+ 0xf151, 0xf264, 0xf330, 0xf436, 0xf4ff, 0xf4fa,
+ 0xf4fd, 0xf63d, 0xf850, 0xf9e3, 0xfad1, 0xfc0e,
+ 0xfdae, 0xfeba, 0xff38, 0x0036, 0x017b, 0x0161,
+ 0xff52, 0xfcdd, 0xfbfb, 0xfce3, 0xfe85, 0x0062,
+ 0x025b, 0x0342, 0x01e3, 0xff10, 0xfcf1, 0xfc76,
+ 0xfc81, 0xfbc2, 0xfa1d, 0xf820, 0xf64c, 0xf501,
+ 0xf418, 0xf2f0, 0xf1b4, 0xf19e, 0xf328, 0xf4cf,
+ 0xf4aa, 0xf2ae, 0xf085, 0xefb1, 0xf07f, 0xf22e,
+ 0xf371, 0xf376, 0xf2d8, 0xf2e6, 0xf430, 0xf696,
+ 0xf9fd, 0xfdb2, 0xffe4, 0xff5d, 0xfd67, 0xfc32,
+ 0xfc15, 0xfc17, 0xfc33, 0xfd06, 0xfe13, 0xfe55,
+ 0xfdea, 0xfdcb, 0xfe70, 0xffc8, 0x01a4, 0x0324,
+ 0x02d1, 0x004f, 0xfd2c, 0xfb43, 0xfb28, 0xfc54,
+ 0xfe0c, 0xffa2, 0x00c1, 0x01c9, 0x0354, 0x0550,
+ 0x06e3, 0x0712, 0x0574, 0x02a8, 0xfffc, 0xfe1c,
+ 0xfcd8, 0xfc46, 0xfcd7, 0xfd93, 0xfc36, 0xf880,
+ 0xf567, 0xf56f, 0xf7c3, 0xfa70, 0xfd1d, 0xffae,
+ 0x00d7, 0x002f, 0xff8b, 0x0058, 0x01b7, 0x0294,
+ 0x0348, 0x03c2, 0x02c9, 0x009a, 0xffa6, 0x0141,
+ 0x03d0, 0x055c, 0x05f4, 0x0680, 0x073a, 0x081f,
+ 0x096b, 0x0b0c, 0x0ca7, 0x0df6, 0x0e82, 0x0db2,
+ 0x0c24, 0x0baa, 0x0d0e, 0x0eee, 0x0fc2, 0x0fb1,
+ 0x0f7a, 0x0ef2, 0x0d8d, 0x0b80, 0x099d, 0x08b1,
+ 0x08e4, 0x091a, 0x07ab, 0x04a7, 0x028f, 0x0364,
+ 0x060c, 0x07ea, 0x0821, 0x07a2, 0x0722, 0x06b1,
+ 0x06b4, 0x0794, 0x089a, 0x0855, 0x0628, 0x02e9,
+ 0x001b, 0xfecd, 0xff07, 0x000f, 0x0145, 0x026a,
+ 0x033b, 0x0372, 0x0385, 0x0492, 0x06dd, 0x090d,
+ 0x098a, 0x0810, 0x058c, 0x0307, 0x0121, 0x0010,
+ 0xffad, 0xffac, 0xffd5, 0xffa7, 0xfe6e, 0xfc51,
+ 0xfac2, 0xfac3, 0xfb25, 0xf9e4, 0xf707, 0xf4bd,
+ 0xf493, 0xf5d3, 0xf701, 0xf7aa, 0xf838, 0xf8f3,
+ 0xf9b5, 0xfa31, 0xfa25, 0xf9c1, 0xf9b1, 0xfa16,
+ 0xf9b7, 0xf75a, 0xf3de, 0xf1c2, 0xf254, 0xf47d,
+ 0xf6aa, 0xf87e, 0xf9fe, 0xfa62, 0xf8b7, 0xf54f,
+ 0xf1a7, 0xef3b, 0xee9e, 0xef6f, 0xf0ee, 0xf2b7,
+ 0xf4c8, 0xf6b7, 0xf79e, 0xf745, 0xf6a0, 0xf67a,
+ 0xf67b, 0xf638, 0xf63d, 0xf705, 0xf7e6, 0xf80b,
+ 0xf7c4, 0xf7de, 0xf866, 0xf90d, 0xfa02, 0xfb6d,
+ 0xfc98, 0xfc90, 0xfb56, 0xf9e2, 0xf933, 0xf9bc,
+ 0xfb52, 0xfd55, 0xfeef, 0xff6d, 0xfe95, 0xfcfc,
+ 0xfbd9, 0xfc11, 0xfd5d, 0xfed6, 0x0003, 0x00c3,
+ 0x00a6, 0xff54, 0xfd5c, 0xfb93, 0xf9fa, 0xf825,
+ 0xf656, 0xf52d, 0xf48f, 0xf3f4, 0xf371, 0xf39c,
+ 0xf48d, 0xf5a3, 0xf625, 0xf606, 0xf615, 0xf72f,
+ 0xf8e1, 0xf991, 0xf8b7, 0xf7f6, 0xf8d7, 0xfa92,
+ 0xfb7e, 0xfb9c, 0xfc05, 0xfcd5, 0xfd77, 0xfe46,
+ 0x0007, 0x0265, 0x044a, 0x053a, 0x052e, 0x0404,
+ 0x021e, 0x00b5, 0x006e, 0x0090, 0x0075, 0x00d3,
+ 0x02ab, 0x05d1, 0x0942, 0x0c52, 0x0ed1, 0x108c,
+ 0x1150, 0x1125, 0x1057, 0x0f6e, 0x0eea, 0x0ec3,
+ 0x0e75, 0x0de5, 0x0df3, 0x0fbe, 0x1361, 0x17a4,
+ 0x1ace, 0x1bc8, 0x1aaf, 0x1888, 0x1647, 0x142f,
+ 0x11ff, 0x0f71, 0x0c88, 0x09d3, 0x0855, 0x08cb,
+ 0x0ad7, 0x0d32, 0x0ee1, 0x0fff, 0x114a, 0x130e,
+ 0x14b7, 0x1570, 0x1515, 0x13f7, 0x11c8, 0x0db4,
+ 0x0838, 0x03c2, 0x0267, 0x03a4, 0x056e, 0x06b4,
+ 0x07b7, 0x08b6, 0x0990, 0x0a3f, 0x0a8b, 0x09f9,
+ 0x08b7, 0x07c0, 0x0757, 0x0694, 0x054b, 0x04db,
+ 0x0603, 0x0779, 0x07e8, 0x07f6, 0x08d9, 0x0a18,
+ 0x0a4f, 0x0952, 0x080c, 0x06c2, 0x04c0, 0x01b7,
+ 0xfe8d, 0xfca9, 0xfcd2, 0xfe9f, 0x00cd, 0x0226,
+ 0x0230, 0x013a, 0xffeb, 0xfed2, 0xfe07, 0xfd0f,
+ 0xfb7e, 0xf9bd, 0xf8a7, 0xf84f, 0xf7c4, 0xf65a,
+ 0xf4a2, 0xf389, 0xf2f6, 0xf21d, 0xf10e, 0xf0fe,
+ 0xf298, 0xf4da, 0xf659, 0xf704, 0xf7bf, 0xf8d4,
+ 0xf9ed, 0xfb23, 0xfc9f, 0xfd81, 0xfccd, 0xfb2e,
+ 0xfa16, 0xf945, 0xf744, 0xf463, 0xf2fb, 0xf460,
+ 0xf776, 0xfab6, 0xfd62, 0xfe6a, 0xfcae, 0xf927,
+ 0xf6b7, 0xf6d9, 0xf84d, 0xf98f, 0xfa8d, 0xfb44,
+ 0xfafe, 0xfa09, 0xfa29, 0xfc1c, 0xfe1c, 0xfe25,
+ 0xfc7e, 0xfae9, 0xfa55, 0xfa46, 0xf9b1, 0xf7ae,
+ 0xf41d, 0xf048, 0xee36, 0xeec8, 0xf0df, 0xf2c9,
+ 0xf3f5, 0xf4ec, 0xf634, 0xf7b8, 0xf90e, 0xf9f7,
+ 0xfa95, 0xfb11, 0xfb0e, 0xf9df, 0xf7a9, 0xf5b4,
+ 0xf4ee, 0xf4a4, 0xf3b5, 0xf2ba, 0xf3a3, 0xf708,
+ 0xfb24, 0xfdf2, 0xff2f, 0xffb5, 0xffd4, 0xff68,
+ 0xfee3, 0xff48, 0x00ff, 0x0355, 0x0517, 0x058d,
+ 0x04f1, 0x0429, 0x03cb, 0x0371, 0x0276, 0x015e,
+ 0x01ad, 0x03d8, 0x063e, 0x0706, 0x067a, 0x0648,
+ 0x06af, 0x05f4, 0x0302, 0xff2a, 0xfc58, 0xfab5,
+ 0xf949, 0xf82a, 0xf88d, 0xfadf, 0xfe14, 0x00ee,
+ 0x030d, 0x04a1, 0x05fa, 0x074a, 0x085c, 0x08a9,
+ 0x082a, 0x07b0, 0x07bd, 0x07ab, 0x06e2, 0x0646,
+ 0x075f, 0x0a59, 0x0dd1, 0x108e, 0x1259, 0x133f,
+ 0x1301, 0x11a8, 0x0ff4, 0x0ea1, 0x0da3, 0x0c79,
+ 0x0b1a, 0x0a28, 0x0a24, 0x0acd, 0x0b94, 0x0c60,
+ 0x0d6a, 0x0e7b, 0x0ee8, 0x0e6b, 0x0d93, 0x0d31,
+ 0x0d71, 0x0d97, 0x0c87, 0x09d0, 0x0678, 0x0477,
+ 0x04fc, 0x072e, 0x08e9, 0x08c5, 0x0726, 0x056f,
+ 0x045f, 0x034d, 0x0139, 0xfe63, 0xfc13, 0xfabc,
+ 0xf948, 0xf707, 0xf530, 0xf524, 0xf628, 0xf682,
+ 0xf627, 0xf677, 0xf7b9, 0xf8df, 0xf9c6, 0xfb85,
+ 0xfe21, 0xffd7, 0xff62, 0xfd66, 0xfb15, 0xf8c9,
+ 0xf6b0, 0xf55d, 0xf4f4, 0xf4e9, 0xf51f, 0xf622,
+ 0xf7bb, 0xf89f, 0xf846, 0xf7f5, 0xf8f8, 0xfab6,
+ 0xfb84, 0xfac2, 0xf938, 0xf7dd, 0xf72c, 0xf748,
+ 0xf7dd, 0xf7f4, 0xf6c2, 0xf4a4, 0xf2e5, 0xf278,
+ 0xf332, 0xf415, 0xf43f, 0xf3b3, 0xf34e, 0xf3e3,
+ 0xf588, 0xf7b5, 0xf9b1, 0xfa9c, 0xf9b1, 0xf720,
+ 0xf46e, 0xf337, 0xf386, 0xf41c, 0xf440, 0xf445,
+ 0xf471, 0xf48b, 0xf4c1, 0xf5d3, 0xf7bc, 0xf92e,
+ 0xf92e, 0xf869, 0xf84a, 0xf949, 0xfab5, 0xfbab,
+ 0xfba8, 0xfa95, 0xf8e6, 0xf776, 0xf6c4, 0xf6b9,
+ 0xf72f, 0xf820, 0xf902, 0xf8ca, 0xf742, 0xf592,
+ 0xf4e8, 0xf557, 0xf61e, 0xf65c, 0xf57c, 0xf38e,
+ 0xf16b, 0xf065, 0xf126, 0xf2eb, 0xf42e, 0xf412,
+ 0xf2fe, 0xf1f9, 0xf1b5, 0xf20c, 0xf22a, 0xf181,
+ 0xf0ab, 0xf0bd, 0xf1dc, 0xf33e, 0xf458, 0xf555,
+ 0xf6a4, 0xf875, 0xfa65, 0xfb9f, 0xfb80, 0xfa38,
+ 0xf85f, 0xf616, 0xf338, 0xf054, 0xeebb, 0xef0e,
+ 0xf01a, 0xf04c, 0xf00a, 0xf12c, 0xf431, 0xf7c5,
+ 0xfae1, 0xfd94, 0xff9f, 0x001d, 0xfeb5, 0xfbed,
+ 0xf8b7, 0xf672, 0xf679, 0xf8db, 0xfbdb, 0xfdbf,
+ 0xff49, 0x02d3, 0x08b0, 0x0e41, 0x10f5, 0x1089,
+ 0x0e80, 0x0c80, 0x0b5e, 0x0af4, 0x0a5b, 0x08ea,
+ 0x0754, 0x0712, 0x08d9, 0x0c17, 0x0f7b, 0x11d5,
+ 0x12dc, 0x12f2, 0x1253, 0x10e8, 0x0ec4, 0x0c68,
+ 0x0abb, 0x0a19, 0x0925, 0x063e, 0x02b2, 0x01b2,
+ 0x03b0, 0x05fa, 0x06f4, 0x079c, 0x08c2, 0x0956,
+ 0x080f, 0x04e4, 0x0094, 0xfc46, 0xf98d, 0xf93b,
+ 0xfa51, 0xfb0b, 0xfadc, 0xfabc, 0xfb43, 0xfb9b,
+ 0xfb31, 0xfaf0, 0xfbb1, 0xfcd9, 0xfd70, 0xfd55,
+ 0xfcb0, 0xfb74, 0xfa18, 0xf96d, 0xf964, 0xf931,
+ 0xf874, 0xf7ab, 0xf7a6, 0xf84f, 0xf89a, 0xf841,
+ 0xf830, 0xf90b, 0xfad7, 0xfd49, 0xff33, 0xfefe,
+ 0xfcb2, 0xf9f7, 0xf7de, 0xf660, 0xf5b8, 0xf645,
+ 0xf762, 0xf7f1, 0xf838, 0xf9c9, 0xfca9, 0xfe59,
+ 0xfd19, 0xfa5e, 0xf894, 0xf83d, 0xf87b, 0xf907,
+ 0xf9d8, 0xfa0b, 0xf96a, 0xf9a4, 0xfbe4, 0xfedc,
+ 0x0084, 0x0081, 0x0046, 0x0122, 0x02b8, 0x03f6,
+ 0x0463, 0x03da, 0x0257, 0x006e, 0xff1c, 0xfed8,
+ 0xfeda, 0xfdbe, 0xfb6f, 0xf96d, 0xf8a8, 0xf8cf,
+ 0xf9e4, 0xfc3e, 0xff2c, 0x01d2, 0x0457, 0x06d8,
+ 0x08ed, 0x0a8b, 0x0bc0, 0x0bff, 0x0ad1, 0x0889,
+ 0x0663, 0x05dc, 0x073c, 0x092b, 0x0a60, 0x0a7e,
+ 0x090c, 0x060c, 0x038c, 0x03c7, 0x066b, 0x0984,
+ 0x0b62, 0x0b53, 0x0a69, 0x0a49, 0x0abc, 0x0a3e,
+ 0x0865, 0x066a, 0x05d7, 0x06ce, 0x07bb, 0x0734,
+ 0x059a, 0x044d, 0x041a, 0x0506, 0x06a7, 0x0805,
+ 0x080e, 0x06a3, 0x046f, 0x01f2, 0xffa0, 0xfe0f,
+ 0xfd45, 0xfccd, 0xfccd, 0xfdc1, 0xff0d, 0xff29,
+ 0xfd6d, 0xfb0c, 0xf9d8, 0xfa03, 0xfa0a, 0xf8fc,
+ 0xf791, 0xf6ea, 0xf709, 0xf6c6, 0xf5a1, 0xf4de,
+ 0xf575, 0xf69d, 0xf770, 0xf7ff, 0xf88f, 0xf8f1,
+ 0xf88a, 0xf71f, 0xf59f, 0xf4e1, 0xf443, 0xf2f7,
+ 0xf1be, 0xf1e8, 0xf38e, 0xf59f, 0xf70f, 0xf77f,
+ 0xf725, 0xf669, 0xf5a0, 0xf50a, 0xf4bf, 0xf4a2,
+ 0xf4aa, 0xf4ec, 0xf549, 0xf590, 0xf5f7, 0xf67b,
+ 0xf691, 0xf674, 0xf727, 0xf849, 0xf890, 0xf860,
+ 0xf920, 0xfa9a, 0xfb66, 0xfb91, 0xfc99, 0xfe64,
+ 0xfec0, 0xfd29, 0xfc00, 0xfce0, 0xfeeb, 0x00d9,
+ 0x0245, 0x0326, 0x038b, 0x03d3, 0x04c7, 0x0721,
+ 0x0a8a, 0x0d82, 0x0ed0, 0x0e5e, 0x0c9c, 0x0a19,
+ 0x07ec, 0x0775, 0x093e, 0x0c6a, 0x0f20, 0x0fc7,
+ 0x0e4d, 0x0c3b, 0x0b1a, 0x0b40, 0x0c39, 0x0d61,
+ 0x0e64, 0x0f6a, 0x1018, 0x0f78, 0x0df5, 0x0d33,
+ 0x0dc7, 0x0efa, 0x0ff7, 0x105b, 0x1040, 0x0fac,
+ 0x0e74, 0x0cf9, 0x0bf0, 0x0b73, 0x0aed, 0x09ae,
+ 0x0814, 0x07d2, 0x0a12, 0x0ddb, 0x1106, 0x11f7,
+ 0x1072, 0x0dc4, 0x0bb8, 0x0ad4, 0x0a9d, 0x0b4e,
+ 0x0d30, 0x0f11, 0x0f76, 0x0eaf, 0x0e2a, 0x0e68,
+ 0x0e92, 0x0db8, 0x0bb5, 0x0941, 0x0716, 0x04f6,
+ 0x02c0, 0x017a, 0x0178, 0x01d7, 0x0242, 0x0291,
+ 0x026b, 0x02a5, 0x03ce, 0x04b4, 0x0499, 0x03ec,
+ 0x0280, 0x003f, 0xfe81, 0xfe53, 0xff1d, 0x0010,
+ 0x00ac, 0xfff0, 0xfdc1, 0xfbfc, 0xfc4d, 0xfe7c,
+ 0x00b9, 0x0136, 0x007d, 0x0069, 0x0041, 0xfdfa,
+ 0xfacc, 0xf977, 0xf996, 0xf942, 0xf8fd, 0xfa0e,
+ 0xfbb3, 0xfcb7, 0xfd34, 0xfda4, 0xfdd8, 0xfd5f,
+ 0xfcb5, 0xfccb, 0xfd44, 0xfd26, 0xfc58, 0xfb1d,
+ 0xf9fa, 0xf9ab, 0xf9fd, 0xfa90, 0xfbf3, 0xfe56,
+ 0x009e, 0x0156, 0x0019, 0xfdeb, 0xfb96, 0xf91a,
+ 0xf725, 0xf6ea, 0xf870, 0xfa64, 0xfba8, 0xfcc4,
+ 0xfe7d, 0xffa3, 0xfede, 0xfd58, 0xfd20, 0xfead,
+ 0x0128, 0x0354, 0x03ef, 0x02de, 0x0144, 0xffd2,
+ 0xff13, 0xfffe, 0x021f, 0x0440, 0x06a1, 0x08e0,
+ 0x091d, 0x077f, 0x0621, 0x058c, 0x0474, 0x0207,
+ 0xfef9, 0xfc25, 0xf985, 0xf753, 0xf670, 0xf6d8,
+ 0xf703, 0xf600, 0xf5c2, 0xf881, 0xfc84, 0xfe77,
+ 0xfe06, 0xfcef, 0xfc90, 0xfd7e, 0xff3a, 0x006d,
+ 0x0024, 0xfeb6, 0xfd41, 0xfc46, 0xfbf1, 0xfc84,
+ 0xfd6f, 0xfe3a, 0xff41, 0xffa9, 0xfe1a, 0xfbd7,
+ 0xfad6, 0xfa48, 0xf8cb, 0xf781, 0xf7a0, 0xf867,
+ 0xf99c, 0xfbed, 0xfec5, 0x0133, 0x02ef, 0x0375,
+ 0x0276, 0x00a4, 0xff6e, 0xff8d, 0xff8c, 0xfdee,
+ 0xfb9a, 0xf9ca, 0xf8ab, 0xf85b, 0xf8a3, 0xf8f2,
+ 0xf8c4, 0xf7b4, 0xf685, 0xf662, 0xf6d5, 0xf6d1,
+ 0xf5f9, 0xf42e, 0xf1f6, 0xf0b4, 0xf109, 0xf220,
+ 0xf321, 0xf424, 0xf54d, 0xf6c1, 0xf8e9, 0xfb34,
+ 0xfcc4, 0xfe1b, 0xff59, 0xff32, 0xfd7f, 0xfc0c,
+ 0xfc02, 0xfc75, 0xfc99, 0xfd77, 0xff34, 0x000e,
+ 0xffa9, 0xff96, 0x00d1, 0x02a7, 0x033f, 0x01d6,
+ 0xffef, 0xfee2, 0xfe84, 0xfe99, 0xff5b, 0x006a,
+ 0x0110, 0x01e0, 0x03b7, 0x0542, 0x0546, 0x04b6,
+ 0x0408, 0x02f4, 0x01e9, 0x009f, 0xfeaa, 0xfcb6,
+ 0xfaaf, 0xf817, 0xf5d6, 0xf47f, 0xf352, 0xf229,
+ 0xf20c, 0xf33b, 0xf48a, 0xf53d, 0xf5bc, 0xf660,
+ 0xf71b, 0xf7e4, 0xf8a8, 0xf8c9, 0xf767, 0xf52e,
+ 0xf40c, 0xf4bd, 0xf713, 0xfa6b, 0xfca5, 0xfc16,
+ 0xf975, 0xf642, 0xf367, 0xf129, 0xf014, 0xf130,
+ 0xf398, 0xf517, 0xf60a, 0xf832, 0xfb1c, 0xfc8d,
+ 0xfb2e, 0xf83c, 0xf600, 0xf52c, 0xf572, 0xf671,
+ 0xf710, 0xf67a, 0xf566, 0xf4f9, 0xf553, 0xf61b,
+ 0xf784, 0xf92f, 0xf99a, 0xf871, 0xf6b9, 0xf504,
+ 0xf3be, 0xf345, 0xf3a3, 0xf506, 0xf6dd, 0xf7cc,
+ 0xf759, 0xf5f7, 0xf495, 0xf484, 0xf609, 0xf80b,
+ 0xfa10, 0xfcde, 0xffde, 0x003b, 0xfd51, 0xfa1b,
+ 0xf87e, 0xf829, 0xf91a, 0xfb0b, 0xfcca, 0xfda1,
+ 0xfe1a, 0xff56, 0x0125, 0x02b2, 0x047f, 0x0656,
+ 0x069d, 0x054b, 0x034a, 0x0118, 0x003e, 0x01ef,
+ 0x04de, 0x0705, 0x07bc, 0x0781, 0x06fa, 0x06bd,
+ 0x0740, 0x080c, 0x081a, 0x074e, 0x0699, 0x06ae,
+ 0x06e7, 0x06af, 0x0747, 0x090d, 0x099b, 0x07ae,
+ 0x0533, 0x0445, 0x04a2, 0x0468, 0x02f2, 0x0136,
+ 0xff66, 0xfd32, 0xfad2, 0xf8a8, 0xf7bd, 0xf85d,
+ 0xf8ad, 0xf7a9, 0xf6bd, 0xf77e, 0xfa09, 0xfd0d,
+ 0xfefe, 0xff66, 0xfeb5, 0xfdce, 0xfd1c, 0xfc3c,
+ 0xfb8e, 0xfc08, 0xfd59, 0xfe5a, 0xfe5e, 0xfdbd,
+ 0xfd2d, 0xfc78, 0xfb6f, 0xfab9, 0xfa1e, 0xf8e2,
+ 0xf72d, 0xf579, 0xf454, 0xf416, 0xf429, 0xf402,
+ 0xf408, 0xf4bf, 0xf5e5, 0xf6f4, 0xf7ef, 0xf8ae,
+ 0xf890, 0xf7b6, 0xf6a8, 0xf5df, 0xf5fe, 0xf6b3,
+ 0xf74d, 0xf837, 0xf953, 0xf9ef, 0xfa33, 0xf99c,
+ 0xf768, 0xf4ae, 0xf2fd, 0xf2a4, 0xf2bc, 0xf213,
+ 0xf07e, 0xee87, 0xec9e, 0xeb85, 0xebb8, 0xecec,
+ 0xee48, 0xee9d, 0xee44, 0xefaa, 0xf3b4, 0xf817,
+ 0xfa73, 0xfae9, 0xfaaa, 0xf9bc, 0xf84d, 0xf7ac,
+ 0xf838, 0xf926, 0xfa15, 0xfb16, 0xfc8c, 0xfebc,
+ 0x0112, 0x02ca, 0x0377, 0x030c, 0x01ae, 0xff57,
+ 0xfd0d, 0xfc98, 0xfdd4, 0xff96, 0x01a3, 0x0367,
+ 0x041e, 0x0441, 0x0471, 0x04bd, 0x052a, 0x05d1,
+ 0x0635, 0x054c, 0x0335, 0x0101, 0xfeef, 0xfdcf,
+ 0xfeff, 0x013e, 0x0214, 0x0170, 0x010b, 0x021a,
+ 0x041c, 0x05e8, 0x077b, 0x08b8, 0x0843, 0x05d2,
+ 0x032f, 0x0180, 0xffc0, 0xfd41, 0xfb58, 0xfb1a,
+ 0xfc57, 0xfe99, 0x0073, 0x0089, 0xfff5, 0x005b,
+ 0x0181, 0x0294, 0x03c6, 0x057b, 0x06b9, 0x0630,
+ 0x0468, 0x02ce, 0x0281, 0x03de, 0x051e, 0x0444,
+ 0x0269, 0x0185, 0x01ca, 0x02a3, 0x039a, 0x048c,
+ 0x055a, 0x0554, 0x0408, 0x01f9, 0x005b, 0x0001,
+ 0x0027, 0xffa8, 0xfec7, 0xfe16, 0xfdea, 0xff1c,
+ 0x01e9, 0x04ff, 0x06fa, 0x07dc, 0x0802, 0x06b0,
+ 0x03be, 0x00e8, 0xff64, 0xfea4, 0xfdd5, 0xfcbb,
+ 0xfbd9, 0xfbb4, 0xfbda, 0xfbac, 0xfb2a, 0xfaa1,
+ 0xfa32, 0xf993, 0xf8f3, 0xf909, 0xf962, 0xf8e2,
+ 0xf776, 0xf60f, 0xf605, 0xf77e, 0xf8ee, 0xf9ce,
+ 0xfb04, 0xfc7a, 0xfd6a, 0xfe10, 0xffa4, 0x0298,
+ 0x0519, 0x04dd, 0x01f5, 0xfe45, 0xfb7a, 0xfa19,
+ 0xfa1a, 0xfb91, 0xfde2, 0x0000, 0x01e3, 0x039b,
+ 0x0446, 0x03c7, 0x037b, 0x0455, 0x05cf, 0x0716,
+ 0x0814, 0x0872, 0x07ec, 0x07c6, 0x0959, 0x0c0c,
+ 0x0e2e, 0x0ec3, 0x0e38, 0x0d4d, 0x0ba4, 0x08a4,
+ 0x04e0, 0x01f2, 0x0165, 0x0337, 0x0623, 0x0911,
+ 0x0acc, 0x0ac5, 0x0a65, 0x0b12, 0x0c9b, 0x0e7e,
+ 0x102e, 0x10af, 0x0f87, 0x0d6f, 0x0b6e, 0x09bd,
+ 0x08a3, 0x091e, 0x0ae0, 0x0c0a, 0x0c0d, 0x0c38,
+ 0x0dd4, 0x10cf, 0x1347, 0x12e4, 0x0f96, 0x0bcc,
+ 0x097d, 0x0875, 0x0830, 0x08d6, 0x09df, 0x0a74,
+ 0x0b03, 0x0c7c, 0x0eab, 0x0ff2, 0x0f31, 0x0d7e,
+ 0x0c23, 0x0a9e, 0x08a0, 0x0715, 0x0664, 0x0642,
+ 0x06dc, 0x0865, 0x09d8, 0x09ec, 0x0920, 0x08e3,
+ 0x0956, 0x09c5, 0x09b7, 0x08ce, 0x06c6, 0x03a5,
+ 0x006a, 0xff16, 0x0036, 0x01c4, 0x01c1, 0x00b1,
+ 0x008a, 0x01e7, 0x038c, 0x0492, 0x0503, 0x04c7,
+ 0x03bb, 0x020a, 0xffba, 0xfcee, 0xfa93, 0xf9de,
+ 0xfb1d, 0xfdaf, 0x00de, 0x03fd, 0x063a, 0x072a,
+ 0x06e5, 0x05df, 0x0497, 0x02eb, 0x00a4, 0xfe85,
+ 0xfd89, 0xfd86, 0xfd33, 0xfbd3, 0xfa46, 0xf9a1,
+ 0xf9ef, 0xfb03, 0xfca3, 0xfe63, 0xfffd, 0x00d6,
+ 0x000e, 0xfdeb, 0xfbcd, 0xfadc, 0xfb35, 0xfc08,
+ 0xfcc7, 0xfde0, 0xff68, 0x0012, 0xfea1, 0xfbb0,
+ 0xf934, 0xf855, 0xf89e, 0xf90c, 0xf949, 0xf9e0,
+ 0xfb36, 0xfcf5, 0xfeb2, 0x0012, 0x00a1, 0x005b,
+ 0x0002, 0x0068, 0x017a, 0x0234, 0x01ce, 0x00b3,
+ 0xffdc, 0xffb9, 0xffbf, 0xff0b, 0xfdda, 0xfd90,
+ 0xfed6, 0x008f, 0x0136, 0x00b1, 0xfffc, 0xff58,
+ 0xfe50, 0xfcb7, 0xfa92, 0xf80e, 0xf5ed, 0xf52c,
+ 0xf606, 0xf762, 0xf7ef, 0xf7f8, 0xf8ee, 0xfb2a,
+ 0xfd5c, 0xfe43, 0xfe4a, 0xfea7, 0xff5e, 0xff83,
+ 0xfeef, 0xfe28, 0xfd1d, 0xfb67, 0xf971, 0xf880,
+ 0xf951, 0xfb23, 0xfc7c, 0xfcaa, 0xfc31, 0xfbeb,
+ 0xfbe7, 0xfb51, 0xf99c, 0xf7e5, 0xf81b, 0xfa4c,
+ 0xfc8c, 0xfddd, 0xff1a, 0x00fa, 0x030b, 0x04d5,
+ 0x0695, 0x0815, 0x0805, 0x05ed, 0x0368, 0x022e,
+ 0x021b, 0x020f, 0x01d8, 0x0222, 0x02c5, 0x02af,
+ 0x01c5, 0x011f, 0x011f, 0x00f9, 0x0084, 0x00dc,
+ 0x0261, 0x03af, 0x038c, 0x027a, 0x0197, 0x0112,
+ 0x0087, 0x001a, 0x0049, 0x010f, 0x0227, 0x03a5,
+ 0x054a, 0x060c, 0x053d, 0x0395, 0x024f, 0x01a8,
+ 0x013b, 0x0139, 0x01ef, 0x029e, 0x0217, 0x0060,
+ 0xfeb2, 0xfdc3, 0xfd12, 0xfc32, 0xfbd9, 0xfceb,
+ 0xff2d, 0x0188, 0x0340, 0x0445, 0x04b2, 0x04b1,
+ 0x048b, 0x045b, 0x03ff, 0x038e, 0x0379, 0x03f5,
+ 0x044c, 0x036d, 0x017a, 0xfffc, 0x0014, 0x0134,
+ 0x0207, 0x022e, 0x024b, 0x0296, 0x0268, 0x0162,
+ 0x002a, 0xff7d, 0xff47, 0xff29, 0xff3a, 0xffa8,
+ 0x0025, 0x004c, 0x0028, 0xffea, 0xff51, 0xfde3,
+ 0xfba7, 0xf941, 0xf767, 0xf693, 0xf6e4, 0xf796,
+ 0xf73d, 0xf57b, 0xf412, 0xf4f8, 0xf7b6, 0xf9cd,
+ 0xf9ac, 0xf7ee, 0xf597, 0xf2c0, 0xefb5, 0xedc2,
+ 0xed6d, 0xed70, 0xecd9, 0xecd0, 0xeeb2, 0xf1b3,
+ 0xf3e5, 0xf4e1, 0xf5ae, 0xf685, 0xf650, 0xf4b2,
+ 0xf2f6, 0xf26e, 0xf333, 0xf4d1, 0xf6b9, 0xf7ce,
+ 0xf728, 0xf599, 0xf51c, 0xf672, 0xf868, 0xf9a1,
+ 0xfa30, 0xfaaf, 0xfad5, 0xfa1c, 0xf941, 0xf98b,
+ 0xfab7, 0xfb41, 0xfa92, 0xf98b, 0xf918, 0xf975,
+ 0xfa7d, 0xfbce, 0xfcad, 0xfc88, 0xfb79, 0xf9e5,
+ 0xf7dc, 0xf589, 0xf3da, 0xf3d4, 0xf54d, 0xf733,
+ 0xf8dd, 0xfa26, 0xfad1, 0xfac6, 0xfaa6, 0xfb14,
+ 0xfb91, 0xfaec, 0xf8eb, 0xf6d0, 0xf5e0, 0xf63a,
+ 0xf774, 0xf943, 0xfb11, 0xfc19, 0xfc4b, 0xfc26,
+ 0xfbb1, 0xfab7, 0xf9ca, 0xf9e5, 0xfaea, 0xfb5f,
+ 0xfa2d, 0xf82d, 0xf74b, 0xf83c, 0xf9f0, 0xfb3f,
+ 0xfc20, 0xfd18, 0xfe1b, 0xfe62, 0xfd5e, 0xfb90,
+ 0xf9e7, 0xf8a1, 0xf7a7, 0xf78b, 0xf8e1, 0xfb26,
+ 0xfd44, 0xfebf, 0xffa5, 0xffd7, 0xfefc, 0xfd44,
+ 0xfbcc, 0xfba8, 0xfc5e, 0xfc44, 0xfa9a, 0xf868,
+ 0xf719, 0xf712, 0xf7c3, 0xf881, 0xf910, 0xf989,
+ 0xf9fe, 0xfa73, 0xfb10, 0xfbd6, 0xfc3c, 0xfb7b,
+ 0xf949, 0xf62c, 0xf34e, 0xf1f5, 0xf2cb, 0xf542,
+ 0xf7d7, 0xf925, 0xf8e7, 0xf808, 0xf7bf, 0xf84c,
+ 0xf8b3, 0xf81f, 0xf749, 0xf76f, 0xf844, 0xf82b,
+ 0xf67e, 0xf453, 0xf2fc, 0xf2e2, 0xf3d0, 0xf583,
+ 0xf78e, 0xf959, 0xfaca, 0xfc72, 0xfe74, 0xffc9,
+ 0xff5f, 0xfd68, 0xfaeb, 0xf8af, 0xf735, 0xf6f6,
+ 0xf800, 0xf9ee, 0xfc70, 0xff39, 0x0154, 0x01b5,
+ 0x00e0, 0x00d2, 0x026d, 0x0422, 0x0413, 0x0288,
+ 0x0132, 0x00cb, 0x00a5, 0x0077, 0x0112, 0x02b7,
+ 0x043a, 0x04a7, 0x0467, 0x03f9, 0x0324, 0x0203,
+ 0x0138, 0x00bd, 0xffe4, 0xfeb3, 0xfe1c, 0xfe89,
+ 0xff34, 0xff69, 0xffa8, 0x008a, 0x0194, 0x0245,
+ 0x0306, 0x03cb, 0x0377, 0x0190, 0xfedb, 0xfc6b,
+ 0xfb6b, 0xfcd5, 0x0002, 0x02d5, 0x03d5, 0x033a,
+ 0x0230, 0x01f0, 0x02db, 0x0450, 0x05b9, 0x070b,
+ 0x07ec, 0x079f, 0x0633, 0x04ad, 0x03ae, 0x02a7,
+ 0x00eb, 0xff45, 0xff56, 0x0157, 0x03e1, 0x05d9,
+ 0x0736, 0x081a, 0x087f, 0x0885, 0x0875, 0x088e,
+ 0x0898, 0x07e6, 0x0647, 0x0462, 0x02a3, 0x0106,
+ 0x0008, 0x004e, 0x017d, 0x0261, 0x0210, 0x00de,
+ 0x0021, 0x007b, 0x0117, 0x0152, 0x019f, 0x0202,
+ 0x01e8, 0x01c2, 0x024c, 0x02a9, 0x0169, 0xfec3,
+ 0xfc54, 0xfb2a, 0xfa94, 0xf937, 0xf73d, 0xf62f,
+ 0xf696, 0xf79c, 0xf8c9, 0xf9ef, 0xfa53, 0xf9ba,
+ 0xf912, 0xf924, 0xf9d7, 0xfabd, 0xfb74, 0xfbc9,
+ 0xfba1, 0xfaa2, 0xf8c2, 0xf6ea, 0xf5de, 0xf54c,
+ 0xf4eb, 0xf50a, 0xf560, 0xf4da, 0xf314, 0xf119,
+ 0xf075, 0xf1a4, 0xf375, 0xf46c, 0xf46e, 0xf45f,
+ 0xf4f5, 0xf66c, 0xf860, 0xf9b6, 0xf9ac, 0xf8b0,
+ 0xf787, 0xf686, 0xf629, 0xf780, 0xfb1f, 0xffcb,
+ 0x0326, 0x040f, 0x0369, 0x0260, 0x017a, 0x0138,
+ 0x01f0, 0x034a, 0x04dd, 0x0638, 0x0661, 0x053f,
+ 0x046f, 0x04eb, 0x05bf, 0x0645, 0x070a, 0x07f0,
+ 0x081b, 0x07a2, 0x075e, 0x0789, 0x07c2, 0x0803,
+ 0x08e7, 0x0ac2, 0x0cba, 0x0d81, 0x0cfc, 0x0c4d,
+ 0x0c61, 0x0d76, 0x0f45, 0x10f7, 0x11a3, 0x114c,
+ 0x110d, 0x121c, 0x1478, 0x16a0, 0x172d, 0x1697,
+ 0x164b, 0x1685, 0x165f, 0x1569, 0x13bd, 0x113a,
+ 0x0df5, 0x0aff, 0x09be, 0x0a88, 0x0c84, 0x0eb8,
+ 0x10a4, 0x11f2, 0x126e, 0x125b, 0x1243, 0x1247,
+ 0x11cb, 0x103e, 0x0def, 0x0bc1, 0x0a0d, 0x08aa,
+ 0x07e2, 0x0849, 0x0985, 0x0a43, 0x0987, 0x07b0,
+ 0x063e, 0x065d, 0x0796, 0x0835, 0x06ea, 0x03dd,
+ 0x00aa, 0xff56, 0x0061, 0x0203, 0x0252, 0x019f,
+ 0x017b, 0x0238, 0x02b0, 0x0201, 0x0097, 0xff9d,
+ 0xffbe, 0x007d, 0x00e2, 0x00be, 0x00be, 0x00fc,
+ 0x0092, 0xff41, 0xfe35, 0xfe77, 0xffa9, 0x00d8,
+ 0x0199, 0x020c, 0x0261, 0x024f, 0x013e, 0xff3d,
+ 0xfd35, 0xfc0c, 0xfc25, 0xfd28, 0xfddb, 0xfd9b,
+ 0xfdb1, 0xff3d, 0x00fb, 0x013b, 0x0049, 0xff3d,
+ 0xfe6f, 0xfe05, 0xfe45, 0xff25, 0x0047, 0x010a,
+ 0x00d7, 0x0003, 0xff89, 0xff9b, 0xff64, 0xfe41,
+ 0xfccc, 0xfc9c, 0xfe54, 0x0048, 0x0074, 0xff0f,
+ 0xfd91, 0xfcc3, 0xfcec, 0xfe20, 0xff93, 0x0023,
+ 0xff53, 0xfd22, 0xfa23, 0xf7cb, 0xf765, 0xf8d3,
+ 0xface, 0xfbfd, 0xfc09, 0xfb87, 0xfa97, 0xf8b8,
+ 0xf6a2, 0xf649, 0xf81e, 0xfa38, 0xfaac, 0xf981,
+ 0xf812, 0xf726, 0xf64f, 0xf545, 0xf4aa, 0xf4e3,
+ 0xf593, 0xf690, 0xf7e1, 0xf927, 0xf9ec, 0xf9ac,
+ 0xf7ff, 0xf5e0, 0xf51d, 0xf5a8, 0xf634, 0xf6e4,
+ 0xf810, 0xf861, 0xf73d, 0xf676, 0xf7a0, 0xfa3b,
+ 0xfcdf, 0xfe7f, 0xfef1, 0xff0d, 0xff91, 0x005a,
+ 0x00d3, 0x0047, 0xfe9e, 0xfd45, 0xfda4, 0xfee7,
+ 0xff8f, 0xfff3, 0x010a, 0x027a, 0x033e, 0x0338,
+ 0x037f, 0x0533, 0x07b5, 0x08d8, 0x0785, 0x04bd,
+ 0x01e3, 0xffbc, 0xfec2, 0xfef3, 0xff97, 0xffd4,
+ 0xff6f, 0xff2a, 0x0028, 0x026a, 0x04b6, 0x0637,
+ 0x06d8, 0x06a2, 0x05ee, 0x0556, 0x04f4, 0x047f,
+ 0x03ee, 0x0358, 0x02fa, 0x0354, 0x046e, 0x05a2,
+ 0x06a6, 0x078f, 0x0808, 0x07a7, 0x067d, 0x050a,
+ 0x043d, 0x04ae, 0x0591, 0x05ac, 0x0515, 0x04d2,
+ 0x0589, 0x072b, 0x08f6, 0x09d8, 0x0995, 0x08d6,
+ 0x0804, 0x0741, 0x06c1, 0x064b, 0x057d, 0x0441,
+ 0x022f, 0xff33, 0xfceb, 0xfcc5, 0xfd9c, 0xfdd3,
+ 0xfe0e, 0xff65, 0x00fd, 0x0189, 0x013a, 0x00d8,
+ 0x0063, 0xff29, 0xfc98, 0xf94b, 0xf6f1, 0xf68a,
+ 0xf733, 0xf75b, 0xf6b2, 0xf61b, 0xf612, 0xf67c,
+ 0xf7c9, 0xfabc, 0xff15, 0x033c, 0x0533, 0x041c,
+ 0x0114, 0xfe41, 0xfca4, 0xfb8d, 0xfa55, 0xf960,
+ 0xf927, 0xf996, 0xfa59, 0xfafe, 0xfb49, 0xfb5b,
+ 0xfb30, 0xfa99, 0xf97c, 0xf804, 0xf6d5, 0xf686,
+ 0xf6ea, 0xf775, 0xf7e2, 0xf7f8, 0xf768, 0xf665,
+ 0xf5ec, 0xf6a8, 0xf818, 0xf95e, 0xf9fd, 0xf9af,
+ 0xf840, 0xf5d5, 0xf37b, 0xf29a, 0xf316, 0xf346,
+ 0xf234, 0xf0a9, 0xefbd, 0xef73, 0xef4f, 0xefc6,
+ 0xf143, 0xf283, 0xf224, 0xf0d4, 0xf000, 0xefdb,
+ 0xf003, 0xf074, 0xf0da, 0xf07d, 0xef6d, 0xee8d,
+ 0xee93, 0xef9a, 0xf0f2, 0xf16b, 0xf076, 0xee9f,
+ 0xed25, 0xed23, 0xee6e, 0xefde, 0xf14e, 0xf3a2,
+ 0xf642, 0xf702, 0xf58d, 0xf433, 0xf496, 0xf5e8,
+ 0xf64e, 0xf4b2, 0xf221, 0xf0d2, 0xf130, 0xf1ef,
+ 0xf2aa, 0xf3f4, 0xf5c7, 0xf7a9, 0xf96e, 0xfb10,
+ 0xfc3b, 0xfc9d, 0xfc3e, 0xfb22, 0xf958, 0xf791,
+ 0xf6af, 0xf6a6, 0xf6f5, 0xf818, 0xfad5, 0xfdf9,
+ 0xff99, 0x0061, 0x0249, 0x050e, 0x06af, 0x05ff,
+ 0x038b, 0x010b, 0xffd0, 0xff7d, 0xff1f, 0xfede,
+ 0xff82, 0x00f8, 0x025b, 0x032d, 0x03ca, 0x04cf,
+ 0x060f, 0x0662, 0x0539, 0x0358, 0x016b, 0xff91,
+ 0xfe45, 0xfe1e, 0xfeef, 0x003f, 0x0207, 0x0485,
+ 0x07bd, 0x0b03, 0x0ce2, 0x0c77, 0x0aa4, 0x087c,
+ 0x060e, 0x03b6, 0x01ff, 0x009b, 0xff81, 0xff24,
+ 0xff35, 0xff39, 0xff4e, 0xffb8, 0x00c3, 0x022e,
+ 0x0277, 0x00cf, 0xfea0, 0xfd47, 0xfc64, 0xfbc4,
+ 0xfc2e, 0xfd49, 0xfda5, 0xfd0d, 0xfc74, 0xfc4f,
+ 0xfc47, 0xfc04, 0xfbf6, 0xfcca, 0xfe00, 0xfe6b,
+ 0xfdd5, 0xfcc7, 0xfb8c, 0xfa35, 0xf8e8, 0xf812,
+ 0xf818, 0xf8c5, 0xf980, 0xf9f6, 0xf9e0, 0xf90d,
+ 0xf85c, 0xf934, 0xfb5e, 0xfcef, 0xfce6, 0xfc88,
+ 0xfd99, 0x0002, 0x0240, 0x036e, 0x0389, 0x02e3,
+ 0x024d, 0x0260, 0x02bf, 0x032b, 0x03f7, 0x0526,
+ 0x061a, 0x0622, 0x0568, 0x0507, 0x0581, 0x0662,
+ 0x075f, 0x081a, 0x07e4, 0x073b, 0x0773, 0x0844,
+ 0x0806, 0x06a0, 0x05bc, 0x05cd, 0x0582, 0x0488,
+ 0x0447, 0x0529, 0x0595, 0x04d7, 0x0486, 0x0579,
+ 0x0611, 0x0531, 0x03cf, 0x02bc, 0x01c3, 0x012d,
+ 0x0187, 0x022d, 0x01ff, 0x0108, 0x000d, 0xff0b,
+ 0xfd95, 0xfc19, 0xfb6f, 0xfbf1, 0xfd68, 0xfecb,
+ 0xfedd, 0xfe23, 0xfe1f, 0xfea3, 0xfee7, 0xff9a,
+ 0x0126, 0x0258, 0x021f, 0x00ba, 0xff32, 0xfe76,
+ 0xfea7, 0xff6c, 0x006d, 0x011b, 0x0101, 0x0036,
+ 0xfebe, 0xfc7a, 0xf9d0, 0xf762, 0xf57e, 0xf43f,
+ 0xf3a2, 0xf371, 0xf395, 0xf41a, 0xf4cc, 0xf573,
+ 0xf626, 0xf6e4, 0xf74b, 0xf71a, 0xf68a, 0xf5a9,
+ 0xf421, 0xf255, 0xf196, 0xf28c, 0xf4a7, 0xf6f6,
+ 0xf880, 0xf871, 0xf6ed, 0xf550, 0xf4e5, 0xf57a,
+ 0xf5f6, 0xf5fb, 0xf586, 0xf437, 0xf2a2, 0xf2aa,
+ 0xf492, 0xf60d, 0xf611, 0xf636, 0xf6d5, 0xf68d,
+ 0xf60c, 0xf703, 0xf8e8, 0xfa1e, 0xf9c8, 0xf808,
+ 0xf649, 0xf5c1, 0xf610, 0xf6ac, 0xf7aa, 0xf929,
+ 0xfb73, 0xfe0e, 0xff51, 0xff20, 0xff79, 0x00c5,
+ 0x0137, 0x0055, 0xff51, 0xfeb3, 0xfe74, 0xfec2,
+ 0xff8f, 0x00e0, 0x02ca, 0x049f, 0x057f, 0x05ce,
+ 0x06be, 0x0814, 0x0809, 0x0637, 0x0428, 0x02a5,
+ 0x018e, 0x0182, 0x02d8, 0x0450, 0x0487, 0x03fe,
+ 0x0449, 0x059f, 0x070a, 0x0833, 0x0970, 0x0b09,
+ 0x0cf3, 0x0e93, 0x0f17, 0x0e2e, 0x0caf, 0x0c29,
+ 0x0d2a, 0x0f1e, 0x119a, 0x1422, 0x1619, 0x171e,
+ 0x16be, 0x1586, 0x1524, 0x1580, 0x14d3, 0x128c,
+ 0x0fbd, 0x0e09, 0x0e78, 0x1032, 0x11dd, 0x139b,
+ 0x1588, 0x164d, 0x1565, 0x1456, 0x141d, 0x1429,
+ 0x144a, 0x14a5, 0x147d, 0x1312, 0x10b1, 0x0e7a,
+ 0x0db4, 0x0ef3, 0x11e3, 0x1504, 0x161c, 0x14c8,
+ 0x12fc, 0x1203, 0x1135, 0x0fcb, 0x0e53, 0x0db1,
+ 0x0d95, 0x0d75, 0x0ddc, 0x0f21, 0x1096, 0x115c,
+ 0x112e, 0x10c6, 0x10c8, 0x10d9, 0x10c1, 0x107c,
+ 0x0f95, 0x0dd8, 0x0b59, 0x086f, 0x0633, 0x055b,
+ 0x0567, 0x05a2, 0x05f6, 0x0698, 0x06f6, 0x0628,
+ 0x04ca, 0x0406, 0x03e3, 0x03ff, 0x03a8, 0x0200,
+ 0xffae, 0xfe1c, 0xfd4d, 0xfc7c, 0xfbb5, 0xfb94,
+ 0xfc3f, 0xfd62, 0xfe9a, 0xff29, 0xfe7c, 0xfcfa,
+ 0xfb51, 0xf9ed, 0xf92e, 0xf916, 0xf946, 0xf973,
+ 0xf98d, 0xf9a3, 0xf96f, 0xf8c9, 0xf842, 0xf7e8,
+ 0xf721, 0xf600, 0xf54d, 0xf612, 0xf863, 0xfa42,
+ 0xf9ea, 0xf802, 0xf651, 0xf63d, 0xf7fc, 0xfa8b,
+ 0xfcb8, 0xfd64, 0xfc0e, 0xf9bc, 0xf7ca, 0xf6e4,
+ 0xf768, 0xf8e1, 0xfa2a, 0xfa87, 0xfa1d, 0xf99f,
+ 0xf950, 0xf91a, 0xf951, 0xf9dc, 0xfa4a, 0xfa9d,
+ 0xfa93, 0xfa37, 0xfaa2, 0xfba4, 0xfb67, 0xf948,
+ 0xf6b4, 0xf57b, 0xf61d, 0xf7a5, 0xf8fa, 0xf957,
+ 0xf849, 0xf659, 0xf4d4, 0xf4b1, 0xf602, 0xf857,
+ 0xfaf0, 0xfc6c, 0xfbf6, 0xfa91, 0xf9a9, 0xfa0c,
+ 0xfc09, 0xfeb8, 0x00a1, 0x0113, 0xfff4, 0xfe3a,
+ 0xfd85, 0xfde5, 0xfe34, 0xfdc4, 0xfc94, 0xfb3a,
+ 0xfa87, 0xfb21, 0xfd1b, 0xffa5, 0x022b, 0x0456,
+ 0x0512, 0x0438, 0x0307, 0x01c5, 0x003a, 0xfeed,
+ 0xfe13, 0xfd93, 0xfd75, 0xfdba, 0xfe7a, 0xff6a,
+ 0xffc4, 0xff3d, 0xfea6, 0xff67, 0x01a6, 0x039d,
+ 0x042b, 0x03e1, 0x034f, 0x0270, 0x0133, 0xffd7,
+ 0xfebe, 0xfdc5, 0xfcda, 0xfca1, 0xfd76, 0xff1f,
+ 0x010a, 0x023d, 0x0253, 0x01f6, 0x0197, 0x0122,
+ 0x00d4, 0x0130, 0x01b5, 0x0107, 0xfef8, 0xfcb8,
+ 0xfb5e, 0xfb79, 0xfcb6, 0xfe21, 0xff5f, 0x0045,
+ 0x00b9, 0x0134, 0x0198, 0x0161, 0x00e2, 0x0053,
+ 0xffc5, 0xffc5, 0x0079, 0x0198, 0x02e1, 0x03c0,
+ 0x03da, 0x035e, 0x02f0, 0x037a, 0x0508, 0x06c1,
+ 0x0809, 0x0856, 0x0757, 0x0589, 0x0398, 0x021b,
+ 0x016a, 0x0148, 0x0154, 0x0128, 0x00a8, 0x00a6,
+ 0x01d2, 0x035d, 0x03e3, 0x02e6, 0x00cc, 0xfdcb,
+ 0xfa68, 0xf882, 0xf8ed, 0xf9ea, 0xfa29, 0xfa18,
+ 0xfa19, 0xfa35, 0xfa6a, 0xfa78, 0xfa7a, 0xfad0,
+ 0xfaf1, 0xf9de, 0xf7f6, 0xf685, 0xf5c7, 0xf55c,
+ 0xf530, 0xf52e, 0xf5d5, 0xf7ae, 0xf9a6, 0xfa95,
+ 0xfa77, 0xf968, 0xf82f, 0xf7b8, 0xf764, 0xf6b7,
+ 0xf645, 0xf618, 0xf5e8, 0xf57a, 0xf421, 0xf212,
+ 0xf0df, 0xf15b, 0xf268, 0xf2af, 0xf26b, 0xf2a0,
+ 0xf394, 0xf4ad, 0xf4e4, 0xf3ea, 0xf2af, 0xf20f,
+ 0xf292, 0xf4ee, 0xf876, 0xfadb, 0xfa83, 0xf7da,
+ 0xf4c4, 0xf303, 0xf2e5, 0xf3d7, 0xf533, 0xf5f9,
+ 0xf51b, 0xf2b6, 0xf0a5, 0xf0d8, 0xf315, 0xf56b,
+ 0xf6a0, 0xf708, 0xf740, 0xf701, 0xf5e9, 0xf4af,
+ 0xf42c, 0xf402, 0xf335, 0xf1b6, 0xf092, 0xf040,
+ 0xf05b, 0xf151, 0xf3a8, 0xf661, 0xf839, 0xf8ea,
+ 0xf8f0, 0xf8ff, 0xf915, 0xf8df, 0xf8b5, 0xf87b,
+ 0xf7a6, 0xf6e4, 0xf794, 0xfa2b, 0xfdca, 0x00b9,
+ 0x01ff, 0x024e, 0x02a8, 0x0341, 0x03df, 0x0418,
+ 0x031f, 0x0065, 0xfcda, 0xfa6a, 0xf9cd, 0xfa32,
+ 0xfae7, 0xfc0e, 0xfdd5, 0xffc1, 0x0140, 0x0250,
+ 0x02a7, 0x01b8, 0x002b, 0xff7e, 0xffff, 0x0078,
+ 0xffd4, 0xfe89, 0xfe0d, 0xfee9, 0x001a, 0x0096,
+ 0x0088, 0x00af, 0x0126, 0x0169, 0x00ec, 0xff9d,
+ 0xfe06, 0xfca9, 0xfb88, 0xfa88, 0xf9ce, 0xf9d4,
+ 0xfad4, 0xfc0c, 0xfcb7, 0xfcf0, 0xfca7, 0xfba7,
+ 0xfa9e, 0xfa6e, 0xfb41, 0xfc7e, 0xfd1a, 0xfc79,
+ 0xfa9d, 0xf7aa, 0xf49b, 0xf347, 0xf48c, 0xf788,
+ 0xfaa7, 0xfcfa, 0xfe86, 0xff32, 0xfe9d, 0xfd7d,
+ 0xfd0d, 0xfce7, 0xfbbc, 0xf9bf, 0xf839, 0xf787,
+ 0xf755, 0xf7ad, 0xf8a0, 0xf9e7, 0xfb5c, 0xfcf5,
+ 0xfe64, 0xff06, 0xfe64, 0xfd20, 0xfc79, 0xfc75,
+ 0xfbf8, 0xfad2, 0xfa18, 0xfa9e, 0xfc05, 0xfd17,
+ 0xfcfc, 0xfc27, 0xfb63, 0xfac9, 0xfa5b, 0xfa37,
+ 0xfa0c, 0xf9f0, 0xfabe, 0xfc95, 0xfe62, 0xff2e,
+ 0xff2c, 0xff50, 0xffc3, 0xffa5, 0xfeb0, 0xfd8c,
+ 0xfca6, 0xfc3a, 0xfc5f, 0xfca6, 0xfd0c, 0xfe39,
+ 0x0026, 0x020a, 0x038b, 0x04d6, 0x0603, 0x06c6,
+ 0x069b, 0x058e, 0x044e, 0x0332, 0x021d, 0x012c,
+ 0x0089, 0xffef, 0xff23, 0xfe59, 0xfdc9, 0xfd75,
+ 0xfd4d, 0xfd42, 0xfdbd, 0xff64, 0x018c, 0x02a0,
+ 0x025e, 0x01cc, 0x01a4, 0x025e, 0x03c2, 0x044a,
+ 0x02df, 0x0058, 0xfe3a, 0xfd77, 0xfe56, 0x002d,
+ 0x018d, 0x0192, 0x00f8, 0x015a, 0x0322, 0x04c5,
+ 0x04b9, 0x0382, 0x02b7, 0x028a, 0x01d8, 0x005c,
+ 0xff2a, 0xff1f, 0x0006, 0x0122, 0x01d3, 0x01dc,
+ 0x0137, 0x0026, 0xff4e, 0xfede, 0xfdf5, 0xfc0e,
+ 0xfa28, 0xf92b, 0xf8e8, 0xf93f, 0xfa31, 0xfb25,
+ 0xfbae, 0xfc14, 0xfcba, 0xfdb0, 0xfe60, 0xfe1a,
+ 0xfd1e, 0xfbde, 0xfa0c, 0xf7d1, 0xf669, 0xf638,
+ 0xf61f, 0xf57d, 0xf513, 0xf57d, 0xf65b, 0xf716,
+ 0xf78e, 0xf81e, 0xf8b5, 0xf83f, 0xf699, 0xf582,
+ 0xf5db, 0xf695, 0xf6c8, 0xf668, 0xf5b6, 0xf579,
+ 0xf661, 0xf84f, 0xfafe, 0xfe2d, 0x00d1, 0x01c9,
+ 0x017c, 0x011e, 0x00de, 0x003f, 0xff27, 0xfdd5,
+ 0xfcd2, 0xfc9b, 0xfd0a, 0xfdf5, 0xffb4, 0x021e,
+ 0x0422, 0x051b, 0x0580, 0x05f6, 0x0692, 0x06be,
+ 0x05ab, 0x0374, 0x0123, 0xff72, 0xff0a, 0x00db,
+ 0x045f, 0x07ce, 0x0a63, 0x0c22, 0x0cb8, 0x0c88,
+ 0x0cf0, 0x0e53, 0x0f54, 0x0eda, 0x0d5b, 0x0bc6,
+ 0x0ad8, 0x0b4b, 0x0d0b, 0x0f34, 0x1161, 0x1388,
+ 0x153d, 0x1618, 0x161f, 0x1590, 0x14b6, 0x13d1,
+ 0x12d7, 0x1197, 0x107d, 0x108a, 0x1204, 0x1434,
+ 0x1613, 0x16ab, 0x15d3, 0x1489, 0x13ba, 0x1347,
+ 0x1233, 0x0f9b, 0x0c36, 0x0a0e, 0x09f2, 0x0ad9,
+ 0x0be8, 0x0ce8, 0x0d4d, 0x0d0e, 0x0d22, 0x0d9a,
+ 0x0d5a, 0x0c56, 0x0ba2, 0x0b7a, 0x0b14, 0x09eb,
+ 0x0879, 0x07a6, 0x07c6, 0x08a0, 0x09ca, 0x0a9d,
+ 0x0ab1, 0x0a4c, 0x09df, 0x0951, 0x07e9, 0x052a,
+ 0x01f3, 0xffdd, 0xff53, 0xff60, 0xff4b, 0xff4b,
+ 0xff63, 0xfefb, 0xfe19, 0xfdc9, 0xfef0, 0x010a,
+ 0x0235, 0x0151, 0xff8a, 0xfe62, 0xfdb8, 0xfcd9,
+ 0xfbab, 0xfa3e, 0xf8aa, 0xf786, 0xf7ac, 0xf982,
+ 0xfc99, 0xffb7, 0x0176, 0x0144, 0xff6e, 0xfcce,
+ 0xfaee, 0xfafb, 0xfc19, 0xfc77, 0xfb73, 0xf987,
+ 0xf7b0, 0xf752, 0xf8ff, 0xfbc4, 0xfe93, 0x00e8,
+ 0x01c9, 0x0084, 0xfe26, 0xfc5b, 0xfb91, 0xfb09,
+ 0xf9f5, 0xf883, 0xf7dc, 0xf894, 0xfa1e, 0xfbc2,
+ 0xfcf8, 0xfd76, 0xfd86, 0xfd7a, 0xfd33, 0xfcb0,
+ 0xfc0e, 0xfb38, 0xfa27, 0xf8a7, 0xf68c, 0xf4dc,
+ 0xf51f, 0xf729, 0xf9b0, 0xfc34, 0xfe62, 0xff52,
+ 0xfeee, 0xfe5c, 0xfe7c, 0xfed8, 0xfe25, 0xfc15,
+ 0xfa5d, 0xfa75, 0xfb6d, 0xfbf0, 0xfc63, 0xfd4e,
+ 0xfde3, 0xfd86, 0xfcd6, 0xfcb4, 0xfd60, 0xfe53,
+ 0xfead, 0xfe47, 0xfde8, 0xfe33, 0xff27, 0x006a,
+ 0x0146, 0x0139, 0x0109, 0x01c2, 0x02dd, 0x0366,
+ 0x03a7, 0x03d0, 0x0329, 0x01c2, 0x0081, 0xff8b,
+ 0xfe95, 0xfdb0, 0xfcdb, 0xfc27, 0xfbe0, 0xfbe1,
+ 0xfc0a, 0xfcf9, 0xfeb3, 0xffe2, 0xff8d, 0xfded,
+ 0xfb93, 0xf962, 0xf86e, 0xf890, 0xf886, 0xf81d,
+ 0xf88a, 0xfa40, 0xfc14, 0xfd0d, 0xfde6, 0xffd3,
+ 0x0289, 0x0453, 0x03ed, 0x01f1, 0x002e, 0xffb9,
+ 0x0021, 0x0098, 0x013c, 0x032b, 0x06bb, 0x09fa,
+ 0x0ac5, 0x09e9, 0x098d, 0x09c7, 0x09ac, 0x095b,
+ 0x08f2, 0x080a, 0x06c2, 0x0557, 0x03b7, 0x02ae,
+ 0x03b6, 0x070c, 0x0b0f, 0x0da2, 0x0dcc, 0x0c3e,
+ 0x0a5c, 0x090b, 0x0849, 0x078c, 0x0683, 0x0590,
+ 0x054a, 0x05c0, 0x0664, 0x0683, 0x05f1, 0x0560,
+ 0x0591, 0x062f, 0x0657, 0x060e, 0x061e, 0x06de,
+ 0x07c4, 0x081d, 0x07ce, 0x072f, 0x065e, 0x055a,
+ 0x0494, 0x041b, 0x032a, 0x01c9, 0x013c, 0x01d9,
+ 0x0277, 0x0214, 0x00aa, 0xff01, 0xfde1, 0xfd00,
+ 0xfbb8, 0xfa9b, 0xfa49, 0xf9f4, 0xf8d2, 0xf778,
+ 0xf6f1, 0xf7db, 0xfa35, 0xfcda, 0xfde3, 0xfc99,
+ 0xfa4f, 0xf86f, 0xf6e3, 0xf53e, 0xf405, 0xf3b6,
+ 0xf3cc, 0xf37d, 0xf2f3, 0xf317, 0xf3fc, 0xf482,
+ 0xf40b, 0xf32b, 0xf254, 0xf17d, 0xf0d9, 0xf091,
+ 0xf043, 0xef4c, 0xed65, 0xeb15, 0xe967, 0xe90f,
+ 0xea10, 0xec03, 0xee5d, 0xf08d, 0xf202, 0xf27c,
+ 0xf268, 0xf24c, 0xf235, 0xf231, 0xf24f, 0xf1f2,
+ 0xf0b5, 0xef9f, 0xefc7, 0xf093, 0xf0c8, 0xf07e,
+ 0xf0a7, 0xf19b, 0xf305, 0xf47a, 0xf5a3, 0xf65e,
+ 0xf6b7, 0xf6dc, 0xf719, 0xf758, 0xf723, 0xf6c9,
+ 0xf738, 0xf857, 0xf8fd, 0xf884, 0xf78c, 0xf730,
+ 0xf7b7, 0xf85a, 0xf87b, 0xf851, 0xf845, 0xf840,
+ 0xf7e2, 0xf77b, 0xf830, 0xfa45, 0xfc5f, 0xfd41,
+ 0xfce8, 0xfbdb, 0xfa61, 0xf848, 0xf5a0, 0xf3b3,
+ 0xf3cf, 0xf585, 0xf7a1, 0xf991, 0xfafb, 0xfbb9,
+ 0xfc73, 0xfded, 0xfffb, 0x01cc, 0x02c0, 0x02b0,
+ 0x01cd, 0x007b, 0xff54, 0xfe8f, 0xfdb5, 0xfc96,
+ 0xfc24, 0xfd3a, 0xff08, 0xffd5, 0xff7f, 0xffbf,
+ 0x0150, 0x02a8, 0x02b3, 0x0277, 0x02be, 0x02e3,
+ 0x0286, 0x01ce, 0x00aa, 0xffd2, 0x003e, 0x0120,
+ 0x016a, 0x01e4, 0x02f4, 0x035b, 0x0267, 0x00cf,
+ 0xffa5, 0xff7b, 0xff9c, 0xfee6, 0xfd86, 0xfc2d,
+ 0xfb06, 0xfa9c, 0xfb72, 0xfce1, 0xfdeb, 0xfe0d,
+ 0xfd2c, 0xfbdb, 0xfae3, 0xfa5f, 0xf9ef, 0xf927,
+ 0xf7e3, 0xf68f, 0xf5b5, 0xf5ab, 0xf669, 0xf75b,
+ 0xf824, 0xf8e9, 0xf92c, 0xf85a, 0xf735, 0xf698,
+ 0xf64d, 0xf615, 0xf602, 0xf610, 0xf632, 0xf61e,
+ 0xf5a3, 0xf57a, 0xf695, 0xf8c0, 0xfade, 0xfc4a,
+ 0xfd7b, 0xfee7, 0xfff7, 0xffec, 0xfefc, 0xfda4,
+ 0xfbdf, 0xf9c1, 0xf826, 0xf7de, 0xf859, 0xf874,
+ 0xf843, 0xf8bc, 0xfa57, 0xfc8f, 0xfe09, 0xfe1e,
+ 0xfe0a, 0xfebe, 0xff4c, 0xff03, 0xfe5a, 0xfda0,
+ 0xfd1a, 0xfd24, 0xfd83, 0xfdf7, 0xfed3, 0x0018,
+ 0x0104, 0x00f5, 0x001d, 0xff23, 0xfe78, 0xfe69,
+ 0xff0d, 0x0037, 0x01f9, 0x0432, 0x05e1, 0x068b,
+ 0x06ff, 0x07b9, 0x0876, 0x08ea, 0x0885, 0x0724,
+ 0x05a5, 0x047a, 0x039b, 0x0389, 0x0461, 0x058a,
+ 0x06cd, 0x081b, 0x0926, 0x09a2, 0x0910, 0x0760,
+ 0x0604, 0x0656, 0x076b, 0x071a, 0x04d4, 0x022e,
+ 0x0089, 0xff98, 0xfec8, 0xfe90, 0xffb2, 0x0201,
+ 0x0428, 0x0542, 0x0615, 0x071f, 0x0744, 0x05df,
+ 0x03af, 0x01a1, 0x0087, 0x009b, 0x00f4, 0x0108,
+ 0x0150, 0x01cf, 0x01c4, 0x009e, 0xfed5, 0xfdd6,
+ 0xfe2a, 0xfe94, 0xfe57, 0xfe00, 0xfd7a, 0xfc1c,
+ 0xfa4c, 0xf942, 0xf9c8, 0xfb78, 0xfcc0, 0xfc51,
+ 0xfad8, 0xfa4a, 0xfb57, 0xfca8, 0xfd1b, 0xfd45,
+ 0xfde9, 0xfe59, 0xfda1, 0xfc23, 0xfacd, 0xf9c2,
+ 0xf915, 0xf952, 0xfa30, 0xfab4, 0xfab1, 0xfa40,
+ 0xf91f, 0xf7b5, 0xf6c5, 0xf652, 0xf651, 0xf6cf,
+ 0xf74b, 0xf792, 0xf819, 0xf8d2, 0xf953, 0xf9b2,
+ 0xf9ea, 0xf97c, 0xf868, 0xf7e8, 0xf919, 0xfb02,
+ 0xfb63, 0xf9d1, 0xf82d, 0xf7c8, 0xf7df, 0xf75d,
+ 0xf69a, 0xf671, 0xf701, 0xf7f3, 0xf8eb, 0xf9a3,
+ 0xfa5e, 0xfba1, 0xfd7d, 0xffdc, 0x0279, 0x048a,
+ 0x0577, 0x0553, 0x046b, 0x035d, 0x02de, 0x032a,
+ 0x0440, 0x05f7, 0x07e2, 0x09c1, 0x0b48, 0x0c2a,
+ 0x0ce9, 0x0ddf, 0x0e2f, 0x0d79, 0x0cb5, 0x0cf3,
+ 0x0e94, 0x1095, 0x110a, 0x0fe7, 0x0f2f, 0x0fb2,
+ 0x1071, 0x1077, 0x0fd3, 0x0f53, 0x0efa, 0x0d64,
+ 0x0a5f, 0x0823, 0x0829, 0x0992, 0x0b45, 0x0cf0,
+ 0x0e2f, 0x0e87, 0x0dda, 0x0c6c, 0x0b06, 0x0a67,
+ 0x0a1e, 0x0976, 0x08dd, 0x0897, 0x07e6, 0x06b2,
+ 0x059f, 0x052f, 0x062d, 0x0843, 0x094e, 0x08da,
+ 0x08a0, 0x08e8, 0x08ce, 0x0852, 0x075b, 0x05ac,
+ 0x03e8, 0x02b8, 0x0286, 0x03a9, 0x0582, 0x06f8,
+ 0x07a7, 0x0786, 0x0697, 0x0522, 0x039d, 0x02a7,
+ 0x028a, 0x02d6, 0x0307, 0x02ba, 0x01c1, 0x0072,
+ 0xfee2, 0xfd26, 0xfc8e, 0xfdbf, 0xff82, 0x017c,
+ 0x040f, 0x05b8, 0x0536, 0x03c9, 0x0286, 0x00f2,
+ 0xff2d, 0xfe83, 0xff8c, 0x0118, 0x01d0, 0x01cf,
+ 0x018f, 0x00cf, 0xffd1, 0xffcd, 0x015b, 0x036a,
+ 0x044b, 0x03c8, 0x0358, 0x03f9, 0x052d, 0x05ec,
+ 0x05ae, 0x0572, 0x06d3, 0x094f, 0x0acb, 0x0a8b,
+ 0x092f, 0x072e, 0x0502, 0x035e, 0x02c9, 0x0322,
+ 0x0363, 0x02f3, 0x02b8, 0x035c, 0x0422, 0x0435,
+ 0x038b, 0x0288, 0x0191, 0x0094, 0xff7d, 0xfee7,
+ 0xff3a, 0xffb1, 0xff53, 0xfe1f, 0xfce8, 0xfca1,
+ 0xfd55, 0xfdc8, 0xfce5, 0xfb48, 0xfa3a, 0xf9f1,
+ 0xf9f9, 0xfa4e, 0xfafb, 0xfbc4, 0xfc40, 0xfbeb,
+ 0xface, 0xf981, 0xf815, 0xf690, 0xf5cf, 0xf627,
+ 0xf6d8, 0xf7a3, 0xf89e, 0xf91a, 0xf89a, 0xf7cc,
+ 0xf799, 0xf83b, 0xf986, 0xfb14, 0xfc02, 0xfbbd,
+ 0xfb54, 0xfc1b, 0xfd7a, 0xfe45, 0xfec5, 0xff87,
+ 0x0014, 0xffd8, 0xfef2, 0xfe2a, 0xfe1f, 0xfe54,
+ 0xfe0f, 0xfdaa, 0xfdd7, 0xfeab, 0x0010, 0x01f2,
+ 0x03d4, 0x04eb, 0x0494, 0x0307, 0x017c, 0x00c0,
+ 0x0054, 0xffb7, 0xff23, 0xfee2, 0xff3e, 0x005e,
+ 0x019c, 0x02ac, 0x04b3, 0x07d1, 0x09d7, 0x0972,
+ 0x0798, 0x055d, 0x035a, 0x0236, 0x01ba, 0x0131,
+ 0x00f0, 0x0189, 0x0254, 0x027a, 0x029b, 0x03d1,
+ 0x058d, 0x0645, 0x05cd, 0x0523, 0x0489, 0x038f,
+ 0x021a, 0x0071, 0xff09, 0xfe1c, 0xfda4, 0xfe0b,
+ 0xffd6, 0x0245, 0x03d5, 0x043c, 0x0453, 0x0420,
+ 0x02ed, 0x0149, 0x00a9, 0x0119, 0x0193, 0x01a3,
+ 0x0141, 0x00b5, 0x006e, 0x0024, 0xffb2, 0xffdc,
+ 0x005b, 0x0016, 0xffb1, 0x0046, 0x0122, 0x014f,
+ 0x00d6, 0xffd3, 0xfe75, 0xfd4b, 0xfcaa, 0xfc7e,
+ 0xfc74, 0xfc11, 0xfb29, 0xfa4f, 0xfa5b, 0xfb12,
+ 0xfb2f, 0xfa72, 0xf9bb, 0xf91a, 0xf85c, 0xf841,
+ 0xf8db, 0xf940, 0xf95c, 0xf9bf, 0xfa84, 0xfb56,
+ 0xfb39, 0xf96c, 0xf733, 0xf64d, 0xf63d, 0xf591,
+ 0xf468, 0xf3c6, 0xf3ad, 0xf36f, 0xf2f1, 0xf297,
+ 0xf298, 0xf30d, 0xf422, 0xf5b0, 0xf6e8, 0xf6d2,
+ 0xf595, 0xf49e, 0xf4cb, 0xf578, 0xf5d9, 0xf5dc,
+ 0xf5b1, 0xf56b, 0xf4ec, 0xf449, 0xf3f4, 0xf3c8,
+ 0xf304, 0xf1bc, 0xf0c1, 0xf098, 0xf178, 0xf316,
+ 0xf46e, 0xf4e6, 0xf4e4, 0xf4e8, 0xf4e3, 0xf468,
+ 0xf352, 0xf23e, 0xf1b9, 0xf170, 0xf128, 0xf163,
+ 0xf230, 0xf2ba, 0xf2a7, 0xf2a0, 0xf33e, 0xf47d,
+ 0xf604, 0xf6cd, 0xf5bd, 0xf38d, 0xf249, 0xf28b,
+ 0xf368, 0xf44e, 0xf52c, 0xf5e1, 0xf63a, 0xf60d,
+ 0xf5b7, 0xf5e5, 0xf673, 0xf6e8, 0xf78c, 0xf87c,
+ 0xf956, 0xfa4e, 0xfb9c, 0xfcab, 0xfd34, 0xfdb2,
+ 0xfe55, 0xfe89, 0xfd92, 0xfbcf, 0xfae0, 0xfb54,
+ 0xfb73, 0xf9f9, 0xf80b, 0xf756, 0xf835, 0xfa2f,
+ 0xfcab, 0xff19, 0x0143, 0x0315, 0x03f3, 0x0379,
+ 0x02c0, 0x031d, 0x03ee, 0x03b7, 0x0295, 0x01b4,
+ 0x0188, 0x01ed, 0x02a6, 0x0397, 0x0516, 0x0740,
+ 0x0900, 0x0917, 0x07be, 0x064f, 0x05ac, 0x0572,
+ 0x04c0, 0x03af, 0x034b, 0x0418, 0x058e, 0x06fa,
+ 0x0803, 0x0897, 0x08b4, 0x0835, 0x06ee, 0x0510,
+ 0x0329, 0x01dc, 0x019c, 0x0280, 0x03cd, 0x043b,
+ 0x0352, 0x01c9, 0x0052, 0xff44, 0xff01, 0xff1b,
+ 0xfe34, 0xfbce, 0xf8e6, 0xf6c5, 0xf626, 0xf6b7,
+ 0xf785, 0xf861, 0xf96f, 0xf9cb, 0xf8cd, 0xf79b,
+ 0xf77b, 0xf819, 0xf85e, 0xf7bb, 0xf670, 0xf524,
+ 0xf430, 0xf36a, 0xf2c5, 0xf285, 0xf290, 0xf21e,
+ 0xf0ba, 0xef2b, 0xeebe, 0xf020, 0xf349, 0xf77c,
+ 0xfaf9, 0xfc67, 0xfc74, 0xfc48, 0xfb88, 0xf9d5,
+ 0xf821, 0xf6c0, 0xf4ec, 0xf301, 0xf277, 0xf3f4,
+ 0xf703, 0xfa56, 0xfc4e, 0xfcd2, 0xfd29, 0xfd83,
+ 0xfd34, 0xfcc8, 0xfd1d, 0xfdbb, 0xfe03, 0xfe3f,
+ 0xfebc, 0xff41, 0xffc7, 0x00a1, 0x01d0, 0x02ab,
+ 0x0279, 0x0155, 0x0059, 0x0069, 0x00ba, 0xffe9,
+ 0xfe5a, 0xfd95, 0xfdac, 0xfda9, 0xfdae, 0xfe99,
+ 0x007f, 0x02c6, 0x049f, 0x0526, 0x0417, 0x0255,
+ 0x00fa, 0x0079, 0x00ca, 0x0195, 0x0222, 0x021e,
+ 0x01c5, 0x00ed, 0xff64, 0xfe18, 0xfdda, 0xfe04,
+ 0xfe53, 0xffa3, 0x016e, 0x01c2, 0x006c, 0xff40,
+ 0xff59, 0x0034, 0x00cc, 0x0094, 0xffe0, 0xff7b,
+ 0xffaf, 0x004c, 0x0167, 0x02ba, 0x02fd, 0x0176,
+ 0xff50, 0xfde6, 0xfd25, 0xfc81, 0xfbeb, 0xfb87,
+ 0xfb7f, 0xfb8a, 0xfaf0, 0xfa29, 0xfab7, 0xfc58,
+ 0xfd20, 0xfc73, 0xfb20, 0xf98f, 0xf7e8, 0xf68b,
+ 0xf5b5, 0xf5bf, 0xf6ed, 0xf87d, 0xf94c, 0xf948,
+ 0xf91e, 0xf910, 0xf8e6, 0xf86b, 0xf788, 0xf63c,
+ 0xf4d4, 0xf3d2, 0xf3c6, 0xf516, 0xf747, 0xf8ec,
+ 0xf987, 0xfa46, 0xfbe8, 0xfd92, 0xfe81, 0xfef7,
+ 0xff34, 0xff03, 0xfe4d, 0xfd59, 0xfcaa, 0xfcdd,
+ 0xfe14, 0xff9c, 0x00d5, 0x01ee, 0x02cf, 0x02b8,
+ 0x01ed, 0x01ce, 0x029b, 0x0302, 0x01cd, 0xff16,
+ 0xfc5a, 0xfb37, 0xfb86, 0xfbf2, 0xfc13, 0xfc41,
+ 0xfc2e, 0xfb8a, 0xfaf0, 0xfafe, 0xfb8c, 0xfc35,
+ 0xfcae, 0xfcb6, 0xfc7c, 0xfc7f, 0xfc90, 0xfc43,
+ 0xfc17, 0xfcdd, 0xfe61, 0xffa2, 0xffd4, 0xff30,
+ 0xfed7, 0xff55, 0xfff5, 0x0078, 0x01fb, 0x04ec,
+ 0x07b9, 0x08b3, 0x080e, 0x0709, 0x0651, 0x05fc,
+ 0x061d, 0x06cb, 0x0827, 0x0a37, 0x0c82, 0x0e86,
+ 0x101f, 0x10fc, 0x10b8, 0x0fa6, 0x0e88, 0x0de6,
+ 0x0e04, 0x0e9c, 0x0ee3, 0x0ec5, 0x0f29, 0x1053,
+ 0x1145, 0x1150, 0x110f, 0x111f, 0x1106, 0x1029,
+ 0x0ee0, 0x0e0c, 0x0e2d, 0x0f02, 0x0fd3, 0x1067,
+ 0x1135, 0x1246, 0x12f2, 0x1320, 0x1346, 0x133c,
+ 0x1264, 0x10c2, 0x0edf, 0x0d50, 0x0ca1, 0x0ccc,
+ 0x0d21, 0x0d9b, 0x0eb5, 0x0f8d, 0x0ed9, 0x0d43,
+ 0x0c38, 0x0be9, 0x0bf4, 0x0bea, 0x0b26, 0x0989,
+ 0x0783, 0x05ac, 0x0509, 0x0602, 0x0747, 0x07a3,
+ 0x07c5, 0x0892, 0x093f, 0x08a2, 0x073b, 0x0663,
+ 0x0659, 0x0685, 0x06c3, 0x0745, 0x07f7, 0x088c,
+ 0x0889, 0x079d, 0x063c, 0x054d, 0x054c, 0x061a,
+ 0x072d, 0x07be, 0x0775, 0x070d, 0x076c, 0x0818,
+ 0x07f6, 0x06d5, 0x04c5, 0x020a, 0x001c, 0xffd3,
+ 0x0040, 0x00d7, 0x01e4, 0x0359, 0x04ee, 0x062b,
+ 0x067f, 0x05ed, 0x04db, 0x034d, 0x00d4, 0xfdf6,
+ 0xfc82, 0xfcd7, 0xfdcf, 0xff35, 0x0068, 0x0034,
+ 0xff6a, 0xfe72, 0xfc7c, 0xfb09, 0xfb30, 0xfb2e,
+ 0xfa7f, 0xf974, 0xf783, 0xf643, 0xf749, 0xf8d7,
+ 0xf99b, 0xfa14, 0xf9de, 0xf8c5, 0xf7fe, 0xf848,
+ 0xf910, 0xf9a2, 0xf9c6, 0xf95b, 0xf86c, 0xf741,
+ 0xf660, 0xf6f9, 0xf8b4, 0xf8c4, 0xf71f, 0xf6d7,
+ 0xf7f9, 0xf8a5, 0xf93f, 0xfa53, 0xfb92, 0xfd08,
+ 0xfe1e, 0xfe11, 0xfdbe, 0xfea3, 0x007a, 0x0170,
+ 0x0109, 0xfffc, 0xfdf4, 0xfc1c, 0xfcbd, 0xfe09,
+ 0xfdcf, 0xfd5e, 0xfbeb, 0xf95b, 0xf993, 0xfb1d,
+ 0xfadf, 0xfbc4, 0xfc04, 0xf8da, 0xf805, 0xf929,
+ 0xf7e3, 0xf8cc, 0xfb6b, 0xfb56, 0xfca9, 0xfe96,
+ 0xfd86, 0xfd10, 0xfbfd, 0xfa19, 0xfbac, 0xfbb0,
+ 0xfa1a, 0xfd51, 0xfeac, 0xfcd0, 0x0004, 0x0364,
+ 0x037b, 0x0517, 0x04f1, 0x0239, 0x0013, 0xfba2,
+ 0xf7bd, 0xf91b, 0xfc06, 0xfed7, 0x0125, 0x00d7,
+ 0x007b, 0x0085, 0xff53, 0x0016, 0x01bc, 0x003d,
+ 0xfe48, 0xfcc3, 0xfa4d, 0xfadd, 0xfd49, 0xfc9f,
+ 0xfde0, 0x025a, 0x0252, 0x00cf, 0x028f, 0x01e9,
+ 0xffab, 0xfef5, 0xfd46, 0xfe30, 0x0078, 0xfd6b,
+ 0xfb8b, 0xfd3f, 0xfbe7, 0xfc42, 0xff9d, 0xff29,
+ 0xfd94, 0xfdc2, 0xffd5, 0x04f1, 0x0791, 0x069d,
+ 0x0626, 0x036d, 0x00a5, 0x01d0, 0x01e5, 0x00b5,
+ 0x018c, 0x0251, 0x01c7, 0x004b, 0x0020, 0x01cb,
+ 0x01d0, 0x02c8, 0x04c5, 0x024c, 0x012d, 0x0390,
+ 0x0227, 0x01e1, 0x052b, 0x0407, 0x00e5, 0x0051,
+ 0x00f7, 0x02ca, 0x033a, 0x0248, 0x02b8, 0x014c,
+ 0xfdc4, 0xfc0f, 0xfae2, 0xf71e, 0xf18b, 0xf01a,
+ 0xf473, 0xf7ed, 0xfa5c, 0xfdf0, 0xfe39, 0xfcce,
+ 0xfd99, 0xfece, 0xff82, 0xff7c, 0x0083, 0x00cd,
+ 0xfaf8, 0xf805, 0xfb40, 0xf7d4, 0xf57b, 0xfbc1,
+ 0xfaee, 0xf6de, 0xfad8, 0xfaf5, 0xf4f9, 0xf2c6,
+ 0xf45c, 0xf611, 0xf434, 0xf325, 0xf9d0, 0xff3c,
+ 0xfe54, 0xfedb, 0x00de, 0x0032, 0xfb89, 0xf533,
+ 0xf3be, 0xf5c0, 0xf567, 0xf35c, 0xf216, 0xf413,
+ 0xf759, 0xf848, 0xf95b, 0xf925, 0xf73f, 0xf6d3,
+ 0xf389, 0xf306, 0xf96a, 0xf79f, 0xf387, 0xf713,
+ 0xf34e, 0xf184, 0xfae8, 0xf850, 0xf15f, 0xf515,
+ 0xf1d0, 0xef06, 0xf8b4, 0xfa77, 0xf4ab, 0xf537,
+ 0xf6f6, 0xf9ac, 0xfc93, 0xf8af, 0xf5b8, 0xf872,
+ 0xf5dd, 0xf07b, 0xf68d, 0xfe04, 0xf917, 0xfa20,
+ 0x041a, 0xfeeb, 0xf791, 0xffce, 0x002f, 0xf56a,
+ 0xf51a, 0xfa88, 0xf941, 0xf540, 0xf76a, 0xfb92,
+ 0xf6b8, 0xf500, 0xfe2f, 0xfe4e, 0xf837, 0xfb91,
+ 0xff25, 0xff4f, 0xfd50, 0xf67f, 0xf5f6, 0xfbba,
+ 0xfe4c, 0x01cc, 0x03f0, 0x033c, 0x053e, 0x043e,
+ 0x0142, 0x016c, 0x0237, 0x07dc, 0x0b35, 0x049e,
+ 0x0310, 0x0347, 0xfc3c, 0xfd58, 0x0219, 0xfe96,
+ 0xff19, 0x02d6, 0x0164, 0x000f, 0xfda6, 0xf9dc,
+ 0xfc3c, 0x0221, 0x0240, 0xfd5f, 0xfce9, 0xfebe,
+ 0xfcbd, 0xfe9a, 0x00e3, 0xfcb3, 0xfe3a, 0x000e,
+ 0xf90d, 0xf949, 0xfc78, 0xf8b5, 0xfd1c, 0x0572,
+ 0x054d, 0x023d, 0xfd13, 0xfa68, 0xfce0, 0xfb80,
+ 0xfbc9, 0x005f, 0x01a2, 0x0314, 0x006d, 0xf835,
+ 0xf75a, 0xfaa5, 0xfe29, 0x015c, 0xfa09, 0xf520,
+ 0xfbb7, 0xf7e8, 0xeee7, 0xf3ab, 0xf964, 0xf783,
+ 0xf896, 0x000b, 0x00ce, 0xf49d, 0xf367, 0x003d,
+ 0xfc20, 0xf30f, 0xfbfd, 0xfc3b, 0xf01b, 0xf5d1,
+ 0x0236, 0xfe52, 0xfa07, 0x004b, 0xffaa, 0xf999,
+ 0xfe5e, 0x0270, 0xfed9, 0xfe04, 0xfa00, 0xf9f8,
+ 0x05bf, 0x03db, 0xfd34, 0x06d3, 0x0596, 0x0129,
+ 0x0fd1, 0x0ed7, 0x0043, 0x02f3, 0x01b6, 0xfaf1,
+ 0x0244, 0x03ea, 0xfb73, 0xfae3, 0xfe9b, 0x0190,
+ 0x048f, 0x06da, 0x0979, 0x08dc, 0x05ac, 0x048a,
+ 0x0429, 0x041b, 0x0276, 0xfeb3, 0xfde6, 0x004f,
+ 0x03cc, 0x029e, 0xfadb, 0xfb48, 0x023d, 0xff59,
+ 0xfc26, 0x0145, 0x046d, 0x00b1, 0xf88f, 0xf929,
+ 0x0200, 0xfe03, 0xfb4c, 0x07f1, 0x070c, 0xfd56,
+ 0x0222, 0x01b5, 0xfa4a, 0x00b8, 0x0a3f, 0x0c11,
+ 0x0d90, 0x10a1, 0x10c6, 0x0c15, 0x0b64, 0x106c,
+ 0x0eb7, 0x0b37, 0x0e00, 0x0cdb, 0x08ad, 0x0b99,
+ 0x132b, 0x16b9, 0x124f, 0x0e65, 0x0f92, 0x0cdd,
+ 0x088f, 0x08c4, 0x0818, 0x049c, 0xffd2, 0xffa2,
+ 0x060c, 0x055c, 0x0224, 0x0880, 0x083e, 0x0235,
+ 0x0664, 0x06bb, 0x0055, 0x0235, 0x033e, 0xfc25,
+ 0xf776, 0xf8d3, 0xf99d, 0xf672, 0xf82c, 0xfcc5,
+ 0xf546, 0xed46, 0xf04a, 0xef72, 0xeccd, 0xf040,
+ 0xefd7, 0xeac9, 0xe525, 0xe44c, 0xec1c, 0xebf1,
+ 0xe401, 0xe49f, 0xe07a, 0xd7f5, 0xdc3a, 0xda79,
+ 0xcd03, 0xc880, 0xc6b1, 0xc515, 0xca9e, 0xc865,
+ 0xc330, 0xcab2, 0xcc6a, 0xc36f, 0xc36a, 0xc4eb,
+ 0xc078, 0xc451, 0xcc1d, 0xd016, 0xd8db, 0xdec4,
+ 0xdb95, 0xdd53, 0xe1e5, 0xe44b, 0xeb92, 0xefb7,
+ 0xf08b, 0xf4e5, 0xef9e, 0xea34, 0xf44e, 0xfab1,
+ 0xfe8e, 0x06e0, 0x03a8, 0x07d9, 0x1612, 0x0b31,
+ 0x02de, 0x1258, 0x103d, 0x0860, 0x1329, 0x13ce,
+ 0x0f4a, 0x142e, 0x1324, 0x1590, 0x1995, 0x1233,
+ 0x1555, 0x1a74, 0x1009, 0x15f6, 0x240a, 0x1c5d,
+ 0x1d5d, 0x2a84, 0x26d2, 0x263b, 0x2c18, 0x227b,
+ 0x1f17, 0x256b, 0x1d5d, 0x1950, 0x2148, 0x1fb2,
+ 0x1d0d, 0x1a4a, 0x0806, 0xf8f6, 0xf432, 0xe94d,
+ 0xe8bc, 0xfeb4, 0x1641, 0x290c, 0x3b40, 0x4365,
+ 0x3d74, 0x3467, 0x3043, 0x2617, 0x111f, 0x0558,
+ 0x036a, 0xfb38, 0xf7f1, 0xfd18, 0xfbf5, 0xfec2,
+ 0x0bbf, 0x18ea, 0x2ce5, 0x3de6, 0x32bc, 0x18f6,
+ 0x04c0, 0xf215, 0xe8c7, 0xefff, 0xf7b4, 0xfb96,
+ 0x087e, 0x1a19, 0x1fde, 0x1ae0, 0x14b5, 0x0881,
+ 0xf8a7, 0xf615, 0xf894, 0xf238, 0xf586, 0x031a,
+ 0x0313, 0x01f0, 0x0d39, 0x130f, 0x15d9, 0x19d0,
+ 0x0f98, 0x0809, 0x12b9, 0x149c, 0x0936, 0x05b8,
+ 0x0718, 0x078d, 0x0718, 0xffef, 0xfbb7, 0x05a5,
+ 0x0ebd, 0x09b9, 0x0507, 0x0b1f, 0x0a61, 0x0077,
+ 0x0364, 0x085a, 0x0153, 0x07d7, 0x150e, 0x0966,
+ 0xfb63, 0xfee4, 0x003c, 0x01bb, 0x07d3, 0x055a,
+ 0x076e, 0x146c, 0x14a3, 0x0c1b, 0x0968, 0xfff4,
+ 0xf926, 0x06b2, 0x0eba, 0x0b28, 0x14ca, 0x15f2,
+ 0x04a9, 0x09c9, 0x19eb, 0x1470, 0x12c4, 0x1beb,
+ 0x1cec, 0x1d0d, 0x163d, 0x08e9, 0x0d0f, 0x135b,
+ 0x0fb3, 0x1829, 0x20ea, 0x1ebc, 0x20f6, 0x1b51,
+ 0x1513, 0x2a30, 0x3992, 0x3487, 0x457c, 0x53da,
+ 0x3d15, 0x3810, 0x4c1c, 0x4576, 0x40b9, 0x514f,
+ 0x4c25, 0x45e3, 0x51d2, 0x4813, 0x3fc4, 0x4f19,
+ 0x46e0, 0x34dc, 0x3f0b, 0x4b30, 0x4d20, 0x46f1,
+ 0x3670, 0x337e, 0x3871, 0x3399, 0x3559, 0x3554,
+ 0x2d4e, 0x2a8c, 0x167f, 0xff2c, 0x0e36, 0x1e51,
+ 0x191e, 0x22d6, 0x2d7d, 0x2546, 0x2175, 0x1d7c,
+ 0x0ef7, 0x0c67, 0x15c0, 0x0fa4, 0xff72, 0x00c4,
+ 0x0831, 0xff2f, 0xf8a8, 0xfc9f, 0xf97b, 0xfb36,
+ 0x0462, 0xfc42, 0xf2cc, 0xfac0, 0xf7f3, 0xec69,
+ 0xf43d, 0xf56a, 0xe1be, 0xe264, 0xf02d, 0xeb9c,
+ 0xeecf, 0xf692, 0xe624, 0xdf94, 0xe740, 0xdaa9,
+ 0xd64b, 0xe35f, 0xe104, 0xdd39, 0xdb88, 0xcd7e,
+ 0xc91f, 0xcd0a, 0xc99c, 0xc84e, 0xc5b5, 0xc387,
+ 0xc4ff, 0xbcb0, 0xb6f2, 0xb78b, 0xb39c, 0xbec1,
+ 0xcafe, 0xc080, 0xbf36, 0xc69f, 0xc4d0, 0xcc33,
+ 0xc7eb, 0xb19e, 0xb782, 0xc534, 0xb787, 0xb189,
+ 0xbadc, 0xb43a, 0xa608, 0xaa26, 0xb8b0, 0xba02,
+ 0xb746, 0xbd95, 0xb759, 0xaa02, 0xaf32, 0xb1dc,
+ 0xa897, 0xa970, 0xaab3, 0xa9dc, 0xb687, 0xbb41,
+ 0xb79c, 0xcb18, 0xd423, 0xb8ac, 0xb2ac, 0xbd75,
+ 0xa4f4, 0x9e43, 0xbdcf, 0xbc15, 0xaebb, 0xb556,
+ 0xa5af, 0x9fe1, 0xb4c5, 0xb222, 0xbe42, 0xdb77,
+ 0xc63f, 0xb77e, 0xcf7c, 0xc725, 0xb7d0, 0xc084,
+ 0xb674, 0xae37, 0xba8b, 0xba9c, 0xb66a, 0xbb3f,
+ 0xc151, 0xc76e, 0xc4e9, 0xc10d, 0xc877, 0xcba8,
+ 0xc4f7, 0xc1c1, 0xc8e9, 0xd08e, 0xcc09, 0xcd14,
+ 0xd673, 0xcc0a, 0xc3fd, 0xd452, 0xdca3, 0xdf40,
+ 0xe549, 0xd5af, 0xc839, 0xd242, 0xd225, 0xd1a6,
+ 0xe369, 0xdf28, 0xc9c2, 0xd04b, 0xdb22, 0xd4da,
+ 0xdbd1, 0xe1f3, 0xd3c4, 0xd32d, 0xd892, 0xceab,
+ 0xd330, 0xdd00, 0xda26, 0xe2bc, 0xe3dc, 0xdbfb,
+ 0xedf2, 0xedc2, 0xd23c, 0xd8cc, 0xe0a0, 0xd0ff,
+ 0xdf80, 0xf060, 0xdac7, 0xcd8f, 0xd9f1, 0xe0ae,
+ 0xde14, 0xe438, 0xee7c, 0xe6bb, 0xe2c6, 0xf6f8,
+ 0xfc60, 0xf6c1, 0x01bb, 0xf97d, 0xe474, 0xebdb,
+ 0xf6be, 0xfb61, 0x04e7, 0xfdef, 0xf7c1, 0x0643,
+ 0x09eb, 0x04a5, 0x0c4e, 0x11c9, 0x0b6b, 0xffb3,
+ 0xfbbd, 0x0ae3, 0x14e2, 0x0a02, 0x0951, 0x17ce,
+ 0x196d, 0x148a, 0x18e3, 0x1aa5, 0x1422, 0x0f48,
+ 0x1157, 0x1208, 0x07f5, 0x0907, 0x1ed2, 0x1cfb,
+ 0x0b1a, 0x1a09, 0x2140, 0x0e85, 0x1c69, 0x2a80,
+ 0x14fe, 0x173e, 0x227b, 0x138f, 0x1d83, 0x3364,
+ 0x28fc, 0x21ba, 0x2b2a, 0x3316, 0x35a5, 0x29f6,
+ 0x2643, 0x2f55, 0x20e4, 0x1c0f, 0x3756, 0x34f4,
+ 0x2050, 0x29c3, 0x2cc9, 0x268c, 0x3928, 0x397f,
+ 0x195f, 0x1588, 0x23e9, 0x1af9, 0x25ca, 0x4cf3,
+ 0x47ed, 0x27ca, 0x2ec7, 0x3300, 0x1d8a, 0x2d1d,
+ 0x45a8, 0x2cf8, 0x1d12, 0x2981, 0x1ad9, 0x11f7,
+ 0x2cfb, 0x33ee, 0x2e6e, 0x402e, 0x429d, 0x34be,
+ 0x3842, 0x37b1, 0x3109, 0x36c4, 0x3711, 0x355a,
+ 0x3867, 0x3085, 0x32a4, 0x41ff, 0x3e41, 0x3aac,
+ 0x45b1, 0x466e, 0x4589, 0x4217, 0x2ced, 0x26ff,
+ 0x32a2, 0x2b0e, 0x2413, 0x3004, 0x327e, 0x2aba,
+ 0x2dff, 0x3cff, 0x47fc, 0x3bae, 0x23ad, 0x1e1d,
+ 0x2673, 0x2a9a, 0x263c, 0x1b75, 0x1833, 0x1908,
+ 0x106c, 0x1b16, 0x3be2, 0x3c5d, 0x25e0, 0x2a07,
+ 0x32ca, 0x29cf, 0x29e2, 0x32c8, 0x316b, 0x2a63,
+ 0x244b, 0x2010, 0x2011, 0x252d, 0x29f3, 0x25dd,
+ 0x2528, 0x3230, 0x3358, 0x26cd, 0x2b3a, 0x3210,
+ 0x26b0, 0x2346, 0x2c76, 0x2895, 0x19fe, 0x130d,
+ 0x1639, 0x19f6, 0x1d8c, 0x22ea, 0x1a3f, 0x0e44,
+ 0x1ba4, 0x1eb0, 0x05ea, 0x0a8c, 0x1af6, 0x0908,
+ 0x0b17, 0x1fed, 0x0a5d, 0x00be, 0x1e53, 0x1607,
+ 0xfeb5, 0x129a, 0x1c41, 0x088e, 0x0b3d, 0x1a6c,
+ 0x116c, 0xfc3b, 0xf5f4, 0x0103, 0x0b28, 0x1057,
+ 0x14d2, 0x0a43, 0xfc19, 0x0741, 0x1244, 0x0670,
+ 0x05bb, 0x1418, 0x10cf, 0x04ea, 0x044d, 0x036c,
+ 0x00cd, 0x05d5, 0x04d5, 0xf82b, 0xf264, 0xf0bd,
+ 0xea22, 0xefa7, 0xf66a, 0xe4ed, 0xde2a, 0xf6bf,
+ 0xfd7b, 0xeaa8, 0xe7bf, 0xf04a, 0xebaf, 0xdc1f,
+ 0xd15f, 0xd98b, 0xe4db, 0xe007, 0xe306, 0xf2b4,
+ 0xed76, 0xdb94, 0xd7c3, 0xd8b0, 0xdc17, 0xea56,
+ 0xf217, 0xe9d3, 0xe5f3, 0xe90e, 0xdd2a, 0xd162,
+ 0xe2e4, 0xee93, 0xdb64, 0xd8d8, 0xe4c1, 0xd705,
+ 0xdac6, 0x0158, 0x0aeb, 0xfa4c, 0xf261, 0xe21a,
+ 0xd78a, 0xe29b, 0xde84, 0xd2bc, 0xdc0d, 0xddb4,
+ 0xd2ac, 0xdba4, 0xeb71, 0xe87c, 0xdffe, 0xe015,
+ 0xe2e7, 0xe417, 0xe1ff, 0xd8bd, 0xd80c, 0xeeff,
+ 0xfd2c, 0xf198, 0xf518, 0x02f9, 0xf161, 0xdce3,
+ 0xe59e, 0xee0f, 0xeb21, 0xeb61, 0xe9a7, 0xe62c,
+ 0xeedd, 0xfd01, 0xf586, 0xe2f2, 0xf007, 0x03b4,
+ 0xf429, 0xee36, 0xf8ee, 0xe689, 0xe4a4, 0xfbb8,
+ 0xe0cd, 0xc900, 0xee13, 0xf644, 0xd987, 0xdb95,
+ 0xd983, 0xcb42, 0xdb91, 0xeb8c, 0xeb33, 0xf1df,
+ 0xf3e3, 0xf5f7, 0xfff7, 0xfbf1, 0xef1c, 0xde5a,
+ 0xcb8e, 0xd75c, 0xeb69, 0xdc41, 0xd037, 0xd7ff,
+ 0xd2b4, 0xd1e8, 0xe3b7, 0xf051, 0xefce, 0xdd13,
+ 0xcbd3, 0xdcde, 0xe83c, 0xced2, 0xc891, 0xe6b2,
+ 0xf69c, 0xeda3, 0xe69b, 0xe316, 0xd3f4, 0xc6be,
+ 0xd0a0, 0xdc8f, 0xdf44, 0xef0f, 0xf942, 0xe810,
+ 0xdc3f, 0xe3bb, 0xe899, 0xdee5, 0xcef1, 0xd0e7,
+ 0xd6b7, 0xc966, 0xd71c, 0xfa72, 0xf1c5, 0xe8bb,
+ 0xfde1, 0xf0c5, 0xdcbe, 0xe3b6, 0xd155, 0xc694,
+ 0xe0ce, 0xde67, 0xd2fb, 0xe231, 0xdefe, 0xd7c4,
+ 0xdcf5, 0xca77, 0xbf24, 0xcfed, 0xd38d, 0xcba3,
+ 0xc4c4, 0xc258, 0xd269, 0xd6ab, 0xc62b, 0xc919,
+ 0xcd47, 0xbec0, 0xbd2b, 0xc1da, 0xb9f4, 0xb541,
+ 0xbc70, 0xca33, 0xcbd8, 0xbf4d, 0xc278, 0xcb9d,
+ 0xc6a0, 0xce28, 0xe2f9, 0xebbe, 0xe7b1, 0xdf83,
+ 0xe1ac, 0xde18, 0xc558, 0xcb95, 0xe182, 0xc813,
+ 0xc6c1, 0xf0a5, 0xe0db, 0xc990, 0xeb1f, 0xf00f,
+ 0xde4b, 0xeb2d, 0xe865, 0xdeaf, 0xe8ff, 0xe3eb,
+ 0xe45a, 0xf4b2, 0xeded, 0xeb5b, 0xf76a, 0xeccc,
+ 0xe270, 0xe8b4, 0xe87c, 0xe508, 0xdf67, 0xdd88,
+ 0xeba4, 0xf186, 0xefb6, 0xf5b5, 0xe5c9, 0xd0c4,
+ 0xe49f, 0xfaea, 0xf61a, 0xf95d, 0x0110, 0xf83a,
+ 0xf543, 0xfec5, 0xfd84, 0xf45f, 0xf2a4, 0xf0e4,
+ 0xf07d, 0xfd4b, 0x0064, 0xebe4, 0xe287, 0xef9f,
+ 0xfcd3, 0x0147, 0xf7b7, 0xf07b, 0xfe45, 0xfbe5,
+ 0xe3ae, 0xe79a, 0xf151, 0xdcfd, 0xd4cf, 0xe2b6,
+ 0xeacf, 0xf593, 0xf896, 0xeac5, 0xee40, 0xf606,
+ 0xe664, 0xeba4, 0x0a9d, 0x0402, 0xe5e6, 0xebbe,
+ 0x031c, 0x07a9, 0x050b, 0x024b, 0xf9cd, 0xf4bd,
+ 0xf66a, 0xf95e, 0xfeb0, 0x0368, 0xff6b, 0xf3ae,
+ 0xef82, 0xfb9a, 0x017a, 0xf5e0, 0xf501, 0xfd79,
+ 0xf1dc, 0xe41b, 0xea92, 0xef56, 0xec89, 0xf66b,
+ 0x088e, 0x0b0e, 0xf9b3, 0xeb44, 0xec8e, 0xf11e,
+ 0xf317, 0xf67d, 0xfa95, 0xfb44, 0xf2ef, 0xed10,
+ 0xf2f9, 0xf25d, 0xf51d, 0x08b6, 0x0475, 0xed75,
+ 0xf097, 0xf939, 0x0131, 0x1207, 0x02f4, 0xee1d,
+ 0xfcf0, 0xfbad, 0xf5ca, 0x0dfd, 0x08ba, 0xf88c,
+ 0x0c48, 0x05dd, 0xefb7, 0x0138, 0x0bfe, 0x02ba,
+ 0x00d4, 0xfd53, 0x007c, 0xfab6, 0xe8c8, 0xfadc,
+ 0x068f, 0xef22, 0xfd40, 0x0c76, 0xf1f7, 0xf664,
+ 0xff15, 0xeb69, 0xf92a, 0xfb57, 0xdd90, 0xf1ec,
+ 0x0929, 0xfc0c, 0x0c0a, 0x15ec, 0x03e3, 0x0c79,
+ 0x0bca, 0xfbc7, 0x0bc2, 0x0c59, 0xf698, 0xfcfd,
+ 0x0082, 0xf9f5, 0x077a, 0x0e16, 0x0bc3, 0x1635,
+ 0x19ad, 0x0c60, 0xfa45, 0xf7d6, 0x0806, 0x0418,
+ 0xfa31, 0x0d56, 0x04c3, 0xe0a0, 0xf1a0, 0x0e73,
+ 0xfffa, 0xff49, 0x0b50, 0xfc00, 0xf98e, 0x0750,
+ 0xfba5, 0xf45a, 0x0638, 0x08e2, 0x012c, 0x0c48,
+ 0x0dc6, 0xfbca, 0x005d, 0x1150, 0x0a01, 0x0690,
+ 0x1254, 0x0526, 0xf055, 0xfc0f, 0x0df8, 0x0de4,
+ 0x0bd5, 0x106c, 0x1b40, 0x1c91, 0x06f6, 0xff2d,
+ 0x0fed, 0x050f, 0xf01f, 0x058d, 0x0ffa, 0xf208,
+ 0xf557, 0x12fc, 0x0ec7, 0x075e, 0x0917, 0xf978,
+ 0xfcd4, 0x0e57, 0xfed8, 0xfa6b, 0x1275, 0x09d9,
+ 0xf722, 0x0862, 0x173b, 0x0ff4, 0x091e, 0x07ff,
+ 0x0b29, 0x0c15, 0x095e, 0x09f7, 0x07d4, 0x0ae4,
+ 0x13f8, 0x08a3, 0xff60, 0x0ed5, 0x0e06, 0x0798,
+ 0x1bae, 0x1d9b, 0x0b82, 0x0c9a, 0x078f, 0x0059,
+ 0x0f2e, 0x0b9e, 0x00fb, 0x1427, 0x109e, 0xf751,
+ 0x0702, 0x1777, 0x05b8, 0x075c, 0x19e4, 0x1831,
+ 0x1567, 0x1805, 0x10ee, 0x0d54, 0x10a5, 0x09ff,
+ 0xffed, 0x05bd, 0x11bd, 0x0ef3, 0x0b6b, 0x1357,
+ 0x0dbd, 0x01e9, 0x0da0, 0x1571, 0x09a2, 0x0e9e,
+ 0x1be8, 0x1342, 0x07fe, 0x08d8, 0x0de1, 0x1486,
+ 0x12ca, 0x0b61, 0x0d36, 0x0e10, 0x09bf, 0x0d59,
+ 0x1061, 0x0cc4, 0x0f5b, 0x157c, 0x130f, 0x0ce3,
+ 0x1369, 0x22cd, 0x1cf1, 0x0828, 0x0b86, 0x164f,
+ 0x09c5, 0x020b, 0x0a54, 0x0c10, 0x10cf, 0x1ad3,
+ 0x174b, 0x127b, 0x12d0, 0x0c08, 0x0cca, 0x1511,
+ 0x0d8d, 0x08b2, 0x1765, 0x1b87, 0x0e06, 0x07f1,
+ 0x0c67, 0x118e, 0x10e3, 0x0da5, 0x1947, 0x278c,
+ 0x1696, 0xfd3c, 0x0743, 0x184a, 0x0716, 0xf9b9,
+ 0x0dd3, 0x0d5a, 0xf75f, 0x0bfc, 0x185e, 0xefef,
+ 0xf841, 0x1f21, 0xfd28, 0xf3c0, 0x244b, 0x0e33,
+ 0xf757, 0x249b, 0x12fd, 0xe86c, 0x05e1, 0x076a,
+ 0xf066, 0x0bbe, 0x1491, 0x0b2d, 0x15de, 0x00a6,
+ 0xf5e1, 0x1d13, 0x22e0, 0x0ef4, 0x1443, 0x0e86,
+ 0x0330, 0x09fa, 0x052b, 0xff2b, 0x118a, 0x1c5f,
+ 0x0dda, 0x0889, 0x0e45, 0xfe92, 0xff76, 0x26ff,
+ 0x237d, 0x036a, 0x15aa, 0x1775, 0xfa30, 0x149f,
+ 0x2dc4, 0x1bb5, 0x229a, 0x200a, 0x0090, 0x07d0,
+ 0x18fd, 0x1216, 0x12ed, 0x14a9, 0x14cd, 0x111f,
+ 0xfee8, 0x077b, 0x1b9f, 0x0d20, 0x1159, 0x25ae,
+ 0x0978, 0xf3f2, 0x0e03, 0x179a, 0x0a35, 0x1066,
+ 0x1bc8, 0x0e0b, 0xfe15, 0x0d00, 0x1dd0, 0x16cb,
+ 0x101b, 0x0713, 0xf7fb, 0xf6cf, 0xf8a7, 0x033c,
+ 0x14b7, 0x05b7, 0xff14, 0x13f0, 0xf8ca, 0xdd6e,
+ 0x029f, 0x0fef, 0xff37, 0x0bfb, 0x0853, 0xf631,
+ 0xfdab, 0xff75, 0x00cb, 0x0cf9, 0x0872, 0x051f,
+ 0x0695, 0xfcfd, 0xffed, 0x04c1, 0x03ca, 0x137a,
+ 0x0d59, 0xf376, 0x077d, 0x1fba, 0x08b6, 0xffdd,
+ 0x17da, 0x1c16, 0x0fbb, 0x137d, 0x181c, 0x095c,
+ 0x02b8, 0x0d35, 0x0507, 0xfa12, 0x0d08, 0x13d5,
+ 0xff94, 0x006d, 0x0de9, 0x06ab, 0x04dc, 0x1a2b,
+ 0x24f5, 0x17e2, 0x109b, 0x155d, 0x0fee, 0x0966,
+ 0x127b, 0x1d2a, 0x1f9e, 0x1693, 0x046e, 0x040d,
+ 0x12c7, 0x11ec, 0x126f, 0x201d, 0x1714, 0x03f2,
+ 0x0e2e, 0x150a, 0x069a, 0x141f, 0x2976, 0x0fb3,
+ 0xfe20, 0x17a9, 0x18a6, 0x081f, 0x1603, 0x1bcd,
+ 0x0edf, 0x0931, 0xfd89, 0x02c1, 0x2094, 0x2283,
+ 0x1a3d, 0x1f69, 0x08a2, 0xf2ca, 0x06c2, 0x1687,
+ 0x1102, 0x0ce2, 0x08e4, 0x03ac, 0xfc73, 0xff9a,
+ 0x144a, 0x186c, 0x0e5c, 0x0e99, 0xff0d, 0xed1d,
+ 0xffb4, 0x11be, 0x08da, 0x0065, 0xffe5, 0xfed0,
+ 0xf831, 0xf20e, 0xf71f, 0xff10, 0x07e6, 0x0760,
+ 0xec3f, 0xe0a5, 0xf4f1, 0xf6db, 0xf32a, 0xfe88,
+ 0xf77f, 0xecfa, 0xf154, 0xf82f, 0x07ab, 0x0433,
+ 0xf25d, 0x02eb, 0xfed0, 0xd761, 0xe9a8, 0x0d64,
+ 0xfe98, 0xf709, 0xfa15, 0xed96, 0xed1f, 0xe8d6,
+ 0xe1fa, 0xf546, 0xfd67, 0xeeb1, 0xe656, 0xe079,
+ 0xe357, 0xec6c, 0xeca0, 0xf757, 0xfd61, 0xe3a7,
+ 0xd414, 0xe760, 0xfc04, 0xfa5d, 0xf238, 0xfac9,
+ 0xf4ea, 0xd415, 0xda42, 0xfb4a, 0xf69d, 0xf00d,
+ 0xf67f, 0xe9fd, 0xe965, 0xf282, 0xeb4b, 0xf343,
+ 0xfff2, 0xfaa9, 0xf853, 0xeb49, 0xde80, 0xf0d2,
+ 0xf7aa, 0xecf9, 0xf3a7, 0xf2ee, 0xea6b, 0xec14,
+ 0xebc1, 0xfbd1, 0x0651, 0xe3a3, 0xd487, 0xe9a4,
+ 0xe409, 0xe528, 0x0095, 0xf960, 0xe310, 0xe474,
+ 0xdf6f, 0xdc15, 0xf553, 0x0354, 0xeb4b, 0xdd78,
+ 0xed13, 0xe4f3, 0xd017, 0xe9c4, 0xfe85, 0xe07c,
+ 0xd878, 0xefb1, 0xebdc, 0xe294, 0xeb0f, 0xed57,
+ 0xe3db, 0xd5b9, 0xd6ac, 0xe817, 0xe912, 0xe9a2,
+ 0xf67f, 0xe485, 0xcd4b, 0xdab7, 0xe1a3, 0xddd2,
+ 0xe808, 0xe12b, 0xd36d, 0xdaa2, 0xd95a, 0xd687,
+ 0xea84, 0xf2d6, 0xdfa2, 0xcdaf, 0xd12b, 0xe1b4,
+ 0xe029, 0xd2ac, 0xd940, 0xdfbb, 0xd874, 0xd9d1,
+ 0xd8de, 0xd37e, 0xdc0b, 0xe0e4, 0xdea7, 0xe01d,
+ 0xd661, 0xccc7, 0xd18f, 0xd765, 0xe1b2, 0xe5b4,
+ 0xdd43, 0xe832, 0xee90, 0xd635, 0xd690, 0xec4b,
+ 0xe381, 0xd8fa, 0xdff3, 0xdb4a, 0xd3b3, 0xd8c4,
+ 0xdbcd, 0xd4d1, 0xd78e, 0xec3c, 0xe91d, 0xcd4f,
+ 0xd338, 0xe4c0, 0xd8de, 0xd6a6, 0xdfe7, 0xdebc,
+ 0xe3a1, 0xdcaa, 0xd230, 0xe6dc, 0xe9f4, 0xd604,
+ 0xe2f3, 0xe7f1, 0xd13a, 0xd594, 0xdfe5, 0xd8ec,
+ 0xdda6, 0xe046, 0xddf1, 0xe845, 0xe3f1, 0xd4da,
+ 0xdd6e, 0xecd4, 0xeda1, 0xe6d0, 0xe033, 0xe109,
+ 0xe6c3, 0xec47, 0xefab, 0xe79e, 0xdd90, 0xdf30,
+ 0xdfe2, 0xe015, 0xe644, 0xe45c, 0xde57, 0xe066,
+ 0xe48a, 0xe5ca, 0xe00a, 0xda3c, 0xdcfc, 0xdb92,
+ 0xe085, 0xef56, 0xe191, 0xd107, 0xe3e7, 0xe6c3,
+ 0xda50, 0xe6fd, 0xe32d, 0xd60e, 0xe57e, 0xe063,
+ 0xd2aa, 0xe696, 0xe1d1, 0xcd51, 0xe02e, 0xe426,
+ 0xd25b, 0xdec7, 0xe088, 0xcc90, 0xd71a, 0xe469,
+ 0xd57f, 0xd3b5, 0xe32a, 0xdd31, 0xce73, 0xd686,
+ 0xdd7c, 0xd279, 0xd430, 0xd951, 0xcc5c, 0xcc01,
+ 0xd48a, 0xd275, 0xddb1, 0xe2bb, 0xd345, 0xd8b2,
+ 0xd9fd, 0xc414, 0xccbc, 0xdefe, 0xdc06, 0xe499,
+ 0xdc18, 0xbe08, 0xc9fe, 0xe27d, 0xe07f, 0xe1ea,
+ 0xdb1f, 0xcec0, 0xd937, 0xdb28, 0xd62b, 0xe3a1,
+ 0xdfab, 0xcfc8, 0xd684, 0xdd33, 0xe103, 0xeb28,
+ 0xe717, 0xe1e0, 0xe458, 0xd8ea, 0xd1a3, 0xdbf0,
+ 0xde75, 0xdd2c, 0xe4b0, 0xe193, 0xd410, 0xd7d9,
+ 0xe77a, 0xeae7, 0xf08e, 0xfc42, 0xec5a, 0xd658,
+ 0xe0ef, 0xe831, 0xe04c, 0xe697, 0xe534, 0xdc5e,
+ 0xe676, 0xe401, 0xdbb2, 0xf14f, 0xf470, 0xdd06,
+ 0xe557, 0xeebf, 0xdd5a, 0xe35f, 0xf45b, 0xee06,
+ 0xee8d, 0xf283, 0xe5a3, 0xe3f5, 0xec1d, 0xe9f9,
+ 0xecf6, 0xf05a, 0xe911, 0xeb2d, 0xf3d1, 0xf49f,
+ 0xf64f, 0xf752, 0xf4eb, 0xf43f, 0xec9a, 0xe4b4,
+ 0xeddd, 0xfa76, 0xfc40, 0xfb59, 0xf9ac, 0xf42a,
+ 0xf4de, 0x01ba, 0x0730, 0xfbd1, 0xf9b0, 0x03e3,
+ 0x0053, 0xf4e0, 0xf1bc, 0xf578, 0xffa0, 0x0678,
+ 0x04df, 0x01d1, 0xf7bf, 0xf206, 0xfe3c, 0x047c,
+ 0x02f9, 0x05e8, 0xfb42, 0xf1e1, 0xfd6e, 0xfe7c,
+ 0xf5fe, 0xfd01, 0x0008, 0xfa5a, 0x004a, 0x058a,
+ 0xfbcb, 0xf500, 0xff58, 0x0985, 0x027b, 0xf788,
+ 0xf701, 0xfd34, 0x00bc, 0xfaf3, 0xf70e, 0xf974,
+ 0xf210, 0xee80, 0xfb4c, 0xfee9, 0xfa55, 0xfa39,
+ 0xf787, 0xfee5, 0x08d8, 0x0108, 0x004c, 0x02a4,
+ 0xf22f, 0xf136, 0xff0e, 0xfb90, 0x00a9, 0x1200,
+ 0x0f75, 0x092b, 0x0b89, 0x06e3, 0x071a, 0x0f71,
+ 0x06d8, 0xf6b0, 0xfaba, 0x0390, 0x0027, 0x03a2,
+ 0x0bac, 0x0741, 0x053f, 0x059e, 0xfb48, 0xfb1a,
+ 0x0a95, 0x1300, 0x0e64, 0x000d, 0xf5cf, 0xfafc,
+ 0x00e8, 0x068b, 0x0e32, 0x0772, 0x0202, 0x0a44,
+ 0x05b0, 0x0143, 0x1505, 0x1dc6, 0x0d1e, 0x05c0,
+ 0x0a90, 0x0acd, 0x0f0d, 0x1586, 0x10ae, 0x0c53,
+ 0x0c1b, 0x0233, 0xfd36, 0x084a, 0x1160, 0x1377,
+ 0x0f5a, 0x06e2, 0x06ed, 0x08c7, 0x09cf, 0x12c7,
+ 0x13b8, 0x10be, 0x12d8, 0x058a, 0x040d, 0x1da8,
+ 0x1d3d, 0x1005, 0x184b, 0x116a, 0x0321, 0x0c83,
+ 0x16e6, 0x1965, 0x15da, 0x1162, 0x1b93, 0x1a70,
+ 0x0b4b, 0x12aa, 0x179b, 0x0854, 0x0725, 0x0f7a,
+ 0x0dcb, 0x09dd, 0x0e11, 0x17c4, 0x1381, 0x0bd6,
+ 0x123b, 0x0948, 0xfbcf, 0x0844, 0x0d7f, 0x08c0,
+ 0x0c2f, 0x05e7, 0x07a6, 0x1182, 0x072b, 0x05a3,
+ 0x0983, 0xfc2f, 0x03af, 0x1064, 0x03be, 0x0203,
+ 0x04b4, 0xffb2, 0x09df, 0x0da6, 0x0af3, 0x12c4,
+ 0x089a, 0xfdcf, 0x0a03, 0x0b0e, 0x074c, 0x0e18,
+ 0x0b65, 0x0b74, 0x1312, 0x0fad, 0x0dd1, 0x13b3,
+ 0x134d, 0x0ec6, 0x1210, 0x18ed, 0x0e84, 0x0404,
+ 0x167b, 0x1cc5, 0x07c2, 0x0ade, 0x1669, 0x0a6e,
+ 0x0aa2, 0x1a4d, 0x1d4d, 0x19f6, 0x17c1, 0x166f,
+ 0x15e2, 0x16ca, 0x1ee2, 0x1dc7, 0x0fb4, 0x1519,
+ 0x2305, 0x1ad5, 0x129b, 0x179e, 0x175c, 0x12c9,
+ 0x11f4, 0x1313, 0x1485, 0x15c8, 0x1752, 0x151f,
+ 0x11d3, 0x172a, 0x19b6, 0x135f, 0x16ea, 0x1bd5,
+ 0x132d, 0x15fa, 0x21ba, 0x151a, 0x09d4, 0x1cc8,
+ 0x265a, 0x1926, 0x15f6, 0x1817, 0x1486, 0x15b9,
+ 0x14a5, 0x13b4, 0x1aec, 0x18c9, 0x12e9, 0x179a,
+ 0x1515, 0x0f50, 0x1216, 0x0aae, 0x0055, 0x0828,
+ 0x12de, 0x1096, 0x076c, 0x052f, 0x0bd2, 0x0c1f,
+ 0x0988, 0x08f5, 0xfcd0, 0xfb5d, 0x1186, 0x124a,
+ 0xfd82, 0xfa40, 0xfea9, 0xff8a, 0x0360, 0x05c8,
+ 0x0b2b, 0x0a1d, 0xfc9a, 0x0078, 0x0be0, 0x0494,
+ 0x05f9, 0x0fa8, 0x0b71, 0x0e0d, 0x1116, 0x073e,
+ 0x0c2e, 0x11c8, 0x056e, 0x0686, 0x0c06, 0x027f,
+ 0x0300, 0x084e, 0x0750, 0x112a, 0x15dd, 0x0ab0,
+ 0x0977, 0x1254, 0x1779, 0x1919, 0x16eb, 0x1483,
+ 0x0f3d, 0x0456, 0x029d, 0x0c85, 0x1304, 0x0c9f,
+ 0xff54, 0x0035, 0x09fa, 0x0792, 0x083c, 0x0cbe,
+ 0x02e3, 0xfed6, 0x0220, 0xfe4b, 0x088b, 0x1421,
+ 0x0a46, 0x070e, 0x0a78, 0x0626, 0x07b2, 0x036b,
+ 0xff2f, 0x113b, 0x1589, 0x0266, 0xfdd9, 0x00fd,
+ 0x05a3, 0x164e, 0x1a76, 0x0e20, 0x09ca, 0x09eb,
+ 0x07d2, 0x0bca, 0x1589, 0x18b2, 0x0d98, 0x01b4,
+ 0x0143, 0x0770, 0x1059, 0x11f6, 0x0929, 0x08bd,
+ 0x0d60, 0x06d1, 0x0166, 0x088d, 0x13cb, 0x148a,
+ 0x08f2, 0x0652, 0x0af6, 0x02e2, 0x0008, 0x09e2,
+ 0x0b0e, 0x09d3, 0x074a, 0xfd75, 0x04b1, 0x1619,
+ 0x1584, 0x12a0, 0x14b3, 0x0dd0, 0x05bf, 0x028c,
+ 0x06d3, 0x1178, 0x0dfb, 0x0348, 0x088b, 0x0f51,
+ 0x0e98, 0x119b, 0x13ce, 0x12ce, 0x0ed0, 0x0874,
+ 0x0ebc, 0x18aa, 0x14ba, 0x131b, 0x11bf, 0x0706,
+ 0x09df, 0x0ef6, 0x0212, 0x0244, 0x0e0a, 0x0a6c,
+ 0x09db, 0x0bcb, 0x0130, 0x02e1, 0x115d, 0x154e,
+ 0x123f, 0x0a1e, 0x0430, 0x0b64, 0x0e1c, 0x0a80,
+ 0x0d49, 0x09d9, 0x03e1, 0x08e8, 0x0dc5, 0x10ae,
+ 0x1323, 0x0f12, 0x0c3c, 0x08af, 0x02f2, 0x09aa,
+ 0x0ee3, 0x0644, 0x07d9, 0x1112, 0x0c2f, 0x0514,
+ 0x0897, 0x0db3, 0x0bae, 0x0589, 0x0660, 0x0947,
+ 0xfffe, 0xf8c7, 0x03a4, 0x0d5d, 0x0768, 0x002b,
+ 0xff70, 0xff4e, 0x00ee, 0x05ff, 0x0af1, 0x0ba0,
+ 0x03c3, 0xfde3, 0x0380, 0x023f, 0xfa2b, 0xfdd6,
+ 0xfbc1, 0xf3a4, 0xfd1b, 0xfda8, 0xf09f, 0xfbde,
+ 0x06c2, 0xfb0b, 0xf908, 0xfa98, 0xf402, 0xf73d,
+ 0xf9a8, 0xf7e8, 0xfbee, 0xf941, 0xf97e, 0x01d4,
+ 0xfd84, 0xfb26, 0x0100, 0xfad7, 0xf66f, 0xf65a,
+ 0xeffb, 0xf3b5, 0xf56c, 0xecd0, 0xf3a4, 0xf72f,
+ 0xed8e, 0xf579, 0xfb76, 0xf473, 0xfa27, 0xf6e8,
+ 0xe87c, 0xeea0, 0xf52a, 0xf367, 0xf680, 0xecde,
+ 0xe735, 0xf74a, 0xfbee, 0xf737, 0xf99b, 0xf96f,
+ 0xff9e, 0xfdb6, 0xe953, 0xec19, 0xf562, 0xe5ae,
+ 0xe77e, 0xf003, 0xdf30, 0xe0b8, 0xef7a, 0xeaeb,
+ 0xf053, 0xf8dc, 0xf016, 0xeddd, 0xee32, 0xf098,
+ 0xfe6d, 0xf9fc, 0xf053, 0xfd02, 0xfc0f, 0xf01c,
+ 0xf7d6, 0xfc68, 0xfab6, 0xfcca, 0xf2b8, 0xee1a,
+ 0xf8a6, 0xf7cd, 0xf490, 0xfb16, 0xfd1f, 0xfdb1,
+ 0xfc0b, 0xf54c, 0xf845, 0xfcbd, 0xf95c, 0xfae7,
+ 0xf700, 0xecb4, 0xf40e, 0xfcb8, 0xf917, 0x006a,
+ 0x0207, 0xeea3, 0xead7, 0xf1d3, 0xea97, 0xec5b,
+ 0xf1d9, 0xea8f, 0xf231, 0xfb05, 0xedbf, 0xee4c,
+ 0xf9f9, 0xf5f7, 0xf56e, 0xf4ec, 0xee80, 0xf5f5,
+ 0xf8ac, 0xf56d, 0x023c, 0x01df, 0xf636, 0xfd30,
+ 0xfd80, 0xf974, 0x028e, 0xfdfc, 0xfae8, 0x0324,
+ 0xf5b5, 0xf435, 0x0a5e, 0x0067, 0xf1f1, 0x0169,
+ 0x027f, 0xf537, 0xf170, 0xf2b6, 0x0125, 0x076d,
+ 0xf62f, 0xf519, 0xfd6c, 0xf4ae, 0xf524, 0xfb56,
+ 0xf5f4, 0xf8a2, 0xfddd, 0xfa82, 0xf88c, 0xf28d,
+ 0xef6a, 0xf5ab, 0xf248, 0xecd5, 0xeeff, 0xeb5a,
+ 0xe965, 0xe9c4, 0xe78c, 0xeff6, 0xefd0, 0xe344,
+ 0xef56, 0xfb1d, 0xec1f, 0xebe5, 0xf8de, 0xf718,
+ 0xf6f0, 0xfaa9, 0xf9c8, 0xf631, 0xeba0, 0xe8df,
+ 0xedce, 0xe6da, 0xe848, 0xf28b, 0xeb0a, 0xe6d5,
+ 0xece9, 0xeca9, 0xf42b, 0xf6bc, 0xe92b, 0xebd4,
+ 0xf25a, 0xe784, 0xe78c, 0xeeba, 0xeaa8, 0xeba9,
+ 0xf0c7, 0xedb8, 0xe7ee, 0xe656, 0xed6e, 0xf356,
+ 0xed4b, 0xe6e6, 0xe5b9, 0xe808, 0xf02c, 0xf5b1,
+ 0xf814, 0xfc5b, 0xfabd, 0xf7e5, 0xf99d, 0xf974,
+ 0xfe60, 0x0547, 0xff3c, 0xf857, 0xf8ad, 0xf4b0,
+ 0xf30e, 0xfc04, 0x0254, 0xfde9, 0xf714, 0xf36f,
+ 0xf019, 0xefc8, 0xf4e6, 0xf7e7, 0xfa23, 0xfed0,
+ 0xfb7c, 0xf270, 0xf08e, 0xf411, 0xf67c, 0xf4b9,
+ 0xf1e9, 0xf35b, 0xf38d, 0xf2b6, 0xf3b4, 0xeeb7,
+ 0xecb0, 0xf1de, 0xeb56, 0xe47b, 0xec9b, 0xeefd,
+ 0xebab, 0xef41, 0xeef2, 0xecea, 0xef7b, 0xefa2,
+ 0xf0a5, 0xf177, 0xec65, 0xe9d5, 0xecdc, 0xf12d,
+ 0xf492, 0xf3ee, 0xf184, 0xf04b, 0xf280, 0xf5bf,
+ 0xee3c, 0xe80f, 0xf390, 0xf870, 0xefeb, 0xf1ef,
+ 0xf898, 0xfa8e, 0xfbe9, 0xf8bc, 0xf748, 0xf64e,
+ 0xee61, 0xeef1, 0xf217, 0xe981, 0xe8c0, 0xec00,
+ 0xe329, 0xe130, 0xea0d, 0xf092, 0xf34b, 0xed9d,
+ 0xe57d, 0xe2ba, 0xe05b, 0xe196, 0xe1a1, 0xdea9,
+ 0xe6b5, 0xeaff, 0xe39e, 0xe625, 0xe9e4, 0xeb18,
+ 0xf66f, 0xf7c1, 0xeff3, 0xf07b, 0xecc9, 0xef58,
+ 0xfc7f, 0xf983, 0xf6b4, 0xffad, 0xfc33, 0xf72a,
+ 0xfa2a, 0xfa31, 0xfcf5, 0xfb7a, 0xf5d2, 0xf981,
+ 0xf54b, 0xed51, 0xf70a, 0xfc74, 0xf871, 0xfbf4,
+ 0xfa8b, 0xf702, 0xfe0d, 0x0168, 0xfdf1, 0xfd24,
+ 0xfd7e, 0xfc47, 0xf9fd, 0xfa26, 0xfb03, 0xfa38,
+ 0xfc0a, 0xf70d, 0xec07, 0xefd8, 0xf833, 0xf717,
+ 0xf84b, 0xf7bb, 0xf4ea, 0xf7a2, 0xf2f6, 0xec7c,
+ 0xf0e9, 0xf421, 0xf4fd, 0xf242, 0xeb5c, 0xf202,
+ 0xf8c2, 0xf3cf, 0xfacc, 0x00a9, 0xf82a, 0xf93c,
+ 0xfae5, 0xf664, 0xfac0, 0xf83b, 0xf2b1, 0xf917,
+ 0xf590, 0xf0d1, 0xf9c2, 0xf6fb, 0xf1e7, 0xf901,
+ 0xf3f0, 0xeb91, 0xefb1, 0xeffb, 0xf0d7, 0xf58f,
+ 0xef96, 0xea52, 0xeec7, 0xf22e, 0xf55f, 0xf637,
+ 0xf058, 0xeeb3, 0xefc0, 0xea1f, 0xe60e, 0xe5f1,
+ 0xe59d, 0xeb84, 0xf00b, 0xea49, 0xebbc, 0xf44d,
+ 0xf245, 0xf250, 0xf9b9, 0xf6f6, 0xf383, 0xfa13,
+ 0xfdd3, 0xfe04, 0xfee3, 0xfe4b, 0xfc23, 0xf509,
+ 0xf11c, 0xf6a2, 0xf715, 0xf62a, 0xfb50, 0xf81c,
+ 0xf5cb, 0xfea4, 0x0018, 0xfcb3, 0xfc7e, 0xf640,
+ 0xf192, 0xf1da, 0xee57, 0xec6e, 0xedf1, 0xf0f8,
+ 0xf213, 0xea42, 0xe9bc, 0xf2f9, 0xef55, 0xef8f,
+ 0xfc07, 0xf6e1, 0xee72, 0xf5d3, 0xf6ec, 0xf6f3,
+ 0xfecf, 0xfd10, 0xf8fe, 0xf981, 0xf43b, 0xf398,
+ 0xfaad, 0xfb2b, 0xf8ec, 0xf996, 0xf6dd, 0xf1bd,
+ 0xf1e1, 0xf8af, 0xfdf7, 0xfca7, 0xf9ba, 0xf750,
+ 0xf597, 0xf878, 0xfdc8, 0x0076, 0x0220, 0x0308,
+ 0xfe61, 0xf84b, 0xf964, 0xf9fb, 0xf5f6, 0xf964,
+ 0xfbd2, 0xf17e, 0xeb54, 0xec32, 0xe9e7, 0xebba,
+ 0xecac, 0xe6b4, 0xe50c, 0xe30f, 0xdfe2, 0xe60e,
+ 0xea0e, 0xe7dd, 0xe78e, 0xe2ff, 0xdf75, 0xe2d9,
+ 0xe47e, 0xe6e2, 0xe91b, 0xe9d5, 0xeeff, 0xea66,
+ 0xe256, 0xee85, 0xf542, 0xeb8b, 0xef08, 0xf542,
+ 0xf332, 0xf85a, 0xface, 0xfbcf, 0x0537, 0x0124,
+ 0xf470, 0xf634, 0xf817, 0xf451, 0xf8ab, 0x002d,
+ 0x02e6, 0x01a9, 0x0111, 0x0442, 0x0351, 0xfe8a,
+ 0x0011, 0x0271, 0xffd2, 0xfe8f, 0xff41, 0xff1b,
+ 0xfe91, 0xfb43, 0xf44a, 0xefc4, 0xf14d, 0xf39b,
+ 0xf479, 0xf5d1, 0xf590, 0xf5dd, 0xf4c3, 0xec6c,
+ 0xec7d, 0xf88d, 0xf74b, 0xeefa, 0xf21f, 0xf3e5,
+ 0xf3f9, 0xf850, 0xf781, 0xfa1a, 0xff94, 0xf927,
+ 0xf548, 0xf555, 0xec84, 0xefc9, 0xfcb9, 0xf8d5,
+ 0xf52b, 0xfbbd, 0xf8ac, 0xf406, 0xf7d0, 0xf876,
+ 0xf72b, 0xf7be, 0xf5d0, 0xf47e, 0xf5b0, 0xf6a0,
+ 0xf75a, 0xf7f5, 0xf8a6, 0xf766, 0xf39d, 0xf4e8,
+ 0xfab8, 0xfac6, 0xf775, 0xf792, 0xf8c2, 0xfa31,
+ 0xfa78, 0xf786, 0xf83a, 0xfd1c, 0xfde5, 0xfcc8,
+ 0xfc32, 0xf9b2, 0xf941, 0xf93a, 0xf785, 0xfabb,
+ 0xfc21, 0xf614, 0xf530, 0xfa37, 0xfe07, 0xfe55,
+ 0xf625, 0xf2a4, 0xfb31, 0xf940, 0xf374, 0xfa58,
+ 0xf8c3, 0xf3d5, 0xfbc7, 0xf860, 0xefed, 0xf8d4,
+ 0xfc10, 0xf716, 0xfba1, 0xfd8f, 0xfbe5, 0xf91e,
+ 0xece2, 0xe997, 0xf00e, 0xe945, 0xe64c, 0xf010,
+ 0xecf8, 0xe325, 0xe3d1, 0xe73f, 0xe903, 0xe92b,
+ 0xea57, 0xf103, 0xf311, 0xef65, 0xf149, 0xf13d,
+ 0xec3b, 0xee88, 0xf514, 0xf95d, 0xfb24, 0xf6a8,
+ 0xf4b7, 0xfcba, 0x00a7, 0xfe6c, 0x0182, 0x0469,
+ 0x0204, 0x016b, 0x02a6, 0x0219, 0x00a6, 0xffe7,
+ 0x012b, 0x01ea, 0x0140, 0x02a7, 0x00ed, 0xf9c6,
+ 0xf86e, 0xfbe9, 0xfb71, 0xfced, 0xffec, 0xfc0c,
+ 0xf978, 0xfca6, 0xf9dc, 0xf069, 0xea63, 0xeb9b,
+ 0xf209, 0xf6c1, 0xf67a, 0xf769, 0xfaa5, 0xfa3f,
+ 0xf5ef, 0xf33f, 0xf628, 0xf967, 0xf6c6, 0xf67c,
+ 0xfd14, 0xff36, 0xfadc, 0xf855, 0xf919, 0xfb09,
+ 0xfa6f, 0xfa5a, 0x01ec, 0x0560, 0x000d, 0x0450,
+ 0x0c99, 0x0b6e, 0x0cb8, 0x0d57, 0x089e, 0x0fd8,
+ 0x16b5, 0x0de1, 0x0e28, 0x1904, 0x186a, 0x14e3,
+ 0x1832, 0x1be7, 0x1d1d, 0x1a7c, 0x1963, 0x1ccc,
+ 0x1caf, 0x1ad0, 0x19f6, 0x164f, 0x14b9, 0x143e,
+ 0x10af, 0x0efd, 0x0b14, 0x05bc, 0x0912, 0x0b26,
+ 0x05b4, 0x03d8, 0x04a6, 0x04c7, 0x0496, 0x0143,
+ 0x017a, 0x0484, 0x0115, 0xff16, 0x01c7, 0x01bf,
+ 0x021b, 0x0176, 0xfe19, 0xfe6d, 0xfd9d, 0xfaeb,
+ 0xfdc4, 0xfea1, 0xfaef, 0xfaac, 0xfad2, 0xf8e9,
+ 0xf75f, 0xf6be, 0xf9e2, 0xfdd3, 0xfe00, 0xfc7f,
+ 0xf96a, 0xf85a, 0xfbdc, 0xfd77, 0xff17, 0x01fa,
+ 0xffd3, 0xff14, 0x0075, 0xfcb0, 0xfd87, 0x01d4,
+ 0xff53, 0x01a9, 0x07ef, 0x0574, 0x03fa, 0x05ad,
+ 0x050b, 0x0910, 0x09db, 0x0410, 0x08cf, 0x1189,
+ 0x113b, 0x1001, 0x0edf, 0x0e42, 0x0f75, 0x0901,
+ 0x06c9, 0x12f7, 0x1506, 0x0c0e, 0x0ca1, 0x0c7e,
+ 0x06b7, 0x0823, 0x0c68, 0x0ef2, 0x1091, 0x0dd7,
+ 0x0c77, 0x0ca7, 0x07c8, 0x053d, 0x0761, 0x08b6,
+ 0x0aa6, 0x092c, 0x0583, 0x0826, 0x0933, 0x05ad,
+ 0x0645, 0x04a9, 0xfd7a, 0xf921, 0xf870, 0xfb10,
+ 0xfe96, 0xfe37, 0xfe4e, 0xfe86, 0xfd80, 0x0255,
+ 0x069a, 0x046d, 0x061a, 0x08d1, 0x05aa, 0x03c6,
+ 0x04cb, 0x07d2, 0x0b46, 0x0868, 0x06d7, 0x0b70,
+ 0x0873, 0x0125, 0x02c2, 0x0802, 0x0c00, 0x0e8f,
+ 0x0e1b, 0x0f91, 0x10c9, 0x0d37, 0x0def, 0x1074,
+ 0x09b6, 0x052e, 0x0a54, 0x0a4b, 0x0554, 0x087d,
+ 0x0bf6, 0x0612, 0x015e, 0x0378, 0x0511, 0x0578,
+ 0x0575, 0x021a, 0xff1c, 0xfdd9, 0xfad6, 0xfa18,
+ 0xfb23, 0xf7bb, 0xf6f7, 0xfc68, 0xfcf2, 0xf9ac,
+ 0xfa9b, 0xfad6, 0xf9a0, 0xfc06, 0xfb90, 0xf4fa,
+ 0xf265, 0xf765, 0xfc4c, 0xfd3a, 0xfd5b, 0xfde3,
+ 0xfcc8, 0xfc15, 0xfde5, 0xfec6, 0xffd2, 0x03fa,
+ 0x05cd, 0x04cb, 0x0622, 0x0670, 0x04f4, 0x0532,
+ 0x047f, 0x05e9, 0x0bd3, 0x0ef0, 0x12fa, 0x19bc,
+ 0x177e, 0x13ba, 0x17f1, 0x16eb, 0x1327, 0x1720,
+ 0x1713, 0x125b, 0x137a, 0x127a, 0x0be5, 0x08ce,
+ 0x09c5, 0x0be0, 0x0dea, 0x0d38, 0x08be, 0x03ab,
+ 0x0430, 0x06dd, 0x031d, 0x0057, 0x0400, 0x0428,
+ 0x0281, 0x06f6, 0x0aa6, 0x0854, 0x0599, 0x05b0,
+ 0x0437, 0xff0b, 0xfca4, 0xfcdd, 0xf913, 0xf6a4,
+ 0xf8ce, 0xf8bc, 0xf7c3, 0xf893, 0xf9e6, 0xfd07,
+ 0xfe34, 0xfca9, 0xfd40, 0xfc27, 0xf9db, 0xfb41,
+ 0xf989, 0xf3d1, 0xf118, 0xf024, 0xf157, 0xf510,
+ 0xf6e2, 0xf8a0, 0xfafe, 0xfa4f, 0xf851, 0xf756,
+ 0xf883, 0xfbd5, 0xfdfb, 0xfe9a, 0xfdea, 0xfcd2,
+ 0xfeae, 0xfe98, 0xfbe3, 0xff25, 0x00f7, 0xfc38,
+ 0xfdf7, 0x0212, 0xfeaf, 0xfed8, 0x02c8, 0xffec,
+ 0xfc91, 0xfc83, 0xfa0e, 0xf93c, 0xfc43, 0xfc76,
+ 0xfb4b, 0xfc4a, 0xf9ee, 0xf59a, 0xf80a, 0xfd12,
+ 0xfca4, 0xfaf2, 0xfc4c, 0xfddd, 0xfcc7, 0xf942,
+ 0xf7b3, 0xfa1f, 0xfba4, 0xfa99, 0xf9e3, 0xf911,
+ 0xf7c3, 0xf8e1, 0xfbab, 0xfb62, 0xfa1f, 0xfbec,
+ 0xfa09, 0xf3bd, 0xf40d, 0xf7f1, 0xf753, 0xf75d,
+ 0xf947, 0xfa3f, 0xfb4b, 0xfa84, 0xfa8f, 0xfcde,
+ 0xfc17, 0xfda7, 0x0271, 0xffc5, 0xfc9a, 0xffd9,
+ 0xffe5, 0xff4f, 0x03be, 0x05c5, 0x03f7, 0x0347,
+ 0x051b, 0x06a1, 0x03df, 0x0147, 0x0270, 0x024e,
+ 0x00fa, 0xffb8, 0xfe29, 0x0028, 0x01bc, 0xffad,
+ 0x00eb, 0x014e, 0xfb77, 0xf882, 0xf8e9, 0xf623,
+ 0xf3d3, 0xf412, 0xf4cf, 0xf78a, 0xfa50, 0xf8fc,
+ 0xf7ac, 0xf9b2, 0xf7c1, 0xf23b, 0xf41d, 0xf9b3,
+ 0xf982, 0xf829, 0xf95a, 0xfa4c, 0xf906, 0xf54f,
+ 0xf4cd, 0xf766, 0xf697, 0xf6dd, 0xf89d, 0xf765,
+ 0xfb3c, 0x0057, 0xfc27, 0xf978, 0xfcbf, 0xfd5b,
+ 0xfd4a, 0xfe97, 0x00bd, 0x047f, 0x0672, 0x06b8,
+ 0x04d9, 0x023c, 0x06cb, 0x0a3b, 0x0665, 0x08ca,
+ 0x0c0a, 0x07b0, 0x082d, 0x09dd, 0x0724, 0x09ff,
+ 0x0add, 0x0374, 0xff84, 0xffae, 0xfeea, 0xfcfd,
+ 0xfaf4, 0xfcbe, 0xfd6c, 0xf91b, 0xf7d1, 0xf8a9,
+ 0xf851, 0xf940, 0xf883, 0xf90c, 0xfb7e, 0xf7ae,
+ 0xf627, 0xfd3e, 0x00bb, 0xff84, 0xfd89, 0xf933,
+ 0xf74a, 0xf6d1, 0xf313, 0xf0b8, 0xf2d2, 0xf5f4,
+ 0xf32b, 0xed51, 0xf297, 0xfb69, 0xf96f, 0xf879,
+ 0xfb4b, 0xf7ab, 0xf467, 0xf3b0, 0xf18a, 0xf2de,
+ 0xf402, 0xf291, 0xf552, 0xf7cc, 0xf450, 0xef4d,
+ 0xeead, 0xf3ac, 0xf4e9, 0xf08a, 0xf2e8, 0xf7ff,
+ 0xf5af, 0xf3b3, 0xf6f1, 0xfb25, 0xfda5, 0xfd52,
+ 0xfd2e, 0xfe99, 0xff9e, 0xfe5a, 0xf725, 0xf255,
+ 0xf7d8, 0xf94c, 0xf5e8, 0xfa84, 0xfb26, 0xf475,
+ 0xf576, 0xf78d, 0xf4c5, 0xf5d4, 0xf7f0, 0xf72c,
+ 0xf5e6, 0xf56c, 0xf865, 0xfb35, 0xfc4c, 0x0046,
+ 0x00b4, 0xfcd9, 0xfd7f, 0xfcf7, 0xfa5b, 0xfce7,
+ 0xfc09, 0xf5e9, 0xf4c8, 0xf5b3, 0xf56f, 0xf80c,
+ 0xfc03, 0xff83, 0x0137, 0xfeb1, 0xfbc0, 0xfc33,
+ 0xfd30, 0xfc2f, 0xfa80, 0xf8fc, 0xf723, 0xf638,
+ 0xf5d2, 0xf491, 0xf668, 0xfa9d, 0xfa83, 0xf89e,
+ 0xf8f8, 0xfa40, 0xfd3c, 0xff3d, 0xfeff, 0x01ad,
+ 0x03e7, 0x0155, 0xff7e, 0x002c, 0x0134, 0x02b0,
+ 0x04b3, 0x0611, 0x03ec, 0x0280, 0x0654, 0x0721,
+ 0x0505, 0x0519, 0xffef, 0xfc5a, 0x0215, 0x0287,
+ 0x012f, 0x0742, 0x0648, 0x010e, 0x0273, 0x020b,
+ 0x01ad, 0x0366, 0x0000, 0xfeae, 0xffea, 0xfd29,
+ 0xff0d, 0x03a9, 0x021e, 0x0139, 0x03f3, 0x073d,
+ 0x0a30, 0x0971, 0x08d1, 0x0c40, 0x0d28, 0x093d,
+ 0x048f, 0x0310, 0x050f, 0x03ba, 0xfff6, 0x01c1,
+ 0x03b7, 0xfffd, 0xff27, 0x04a4, 0x0722, 0x0509,
+ 0x072c, 0x0a70, 0x07af, 0x07bf, 0x0ba9, 0x092a,
+ 0x06be, 0x0821, 0x04d6, 0x0217, 0x0335, 0x0284,
+ 0x0555, 0x09d7, 0x05e8, 0x00b2, 0x014f, 0x01ba,
+ 0x00f7, 0x010e, 0xfff4, 0xfe75, 0xfd1f, 0xf921,
+ 0xf5ef, 0xf8a9, 0xfafc, 0xf8d2, 0xf8ae, 0xfa4f,
+ 0xfb33, 0xfdcb, 0xfe4a, 0xfd2d, 0xff5f, 0xfee0,
+ 0xfb06, 0xf979, 0xf896, 0xfac7, 0xfd73, 0xf91e,
+ 0xf766, 0xfa2a, 0xf71c, 0xf71b, 0xfdc4, 0xfee7,
+ 0xfd18, 0xfd83, 0xfcda, 0xfbef, 0xfa19, 0xf735,
+ 0xf681, 0xf6b6, 0xf6ce, 0xf62c, 0xf422, 0xf551,
+ 0xf9d6, 0xfb1e, 0xf861, 0xf7a3, 0xfae1, 0xfa60,
+ 0xf5ca, 0xf745, 0xfa7b, 0xf832, 0xf675, 0xf58b,
+ 0xf608, 0xfa8b, 0xfa49, 0xf895, 0xfd64, 0xfdac,
+ 0xfa74, 0xfd8d, 0x0042, 0x01bf, 0x04df, 0x0478,
+ 0x01bc, 0xfcab, 0xf615, 0xf551, 0xf692, 0xf6a2,
+ 0xf980, 0xfadc, 0xfa9e, 0xfadf, 0xf89d, 0xfa6f,
+ 0x000b, 0x0031, 0x002b, 0x0204, 0x01d5, 0x048a,
+ 0x06dd, 0x052b, 0x04d5, 0x02aa, 0xff4a, 0x0063,
+ 0xff82, 0xfb9f, 0xfb0f, 0xfc0c, 0xfccc, 0xfc87,
+ 0xfb8c, 0xfca6, 0xfc07, 0xf94c, 0xf9f1, 0xfb2f,
+ 0xfb80, 0xfbfb, 0xf9b8, 0xf869, 0xf9b4, 0xf883,
+ 0xf76f, 0xf7ab, 0xf75e, 0xfa82, 0xfe38, 0xfea8,
+ 0x0085, 0x022a, 0x0186, 0x02ae, 0x0354, 0x0266,
+ 0x029a, 0x00c3, 0xfe47, 0xff2a, 0xfeac, 0xfce2,
+ 0xffef, 0x047b, 0x05d0, 0x0658, 0x0647, 0x040d,
+ 0x0103, 0xfccb, 0xf81c, 0xf722, 0xf829, 0xf78f,
+ 0xf92c, 0xfd26, 0xfc62, 0xf759, 0xf525, 0xf697,
+ 0xf740, 0xf628, 0xf4aa, 0xf1de, 0xf007, 0xf1e7,
+ 0xf297, 0xf2ce, 0xf8d7, 0xfe6c, 0xff65, 0x00b1,
+ 0xfee5, 0xfb7f, 0xfda0, 0xfda1, 0xf93a, 0xf86e,
+ 0xf848, 0xf855, 0xfb58, 0xfb91, 0xfac3, 0xfbdc,
+ 0xfab3, 0xfb47, 0xfe54, 0xfe9e, 0x0044, 0x0329,
+ 0x0461, 0x0897, 0x0c78, 0x0bcb, 0x0af8, 0x0a39,
+ 0x0ae5, 0x0db2, 0x0c9f, 0x0a83, 0x0b1a, 0x098d,
+ 0x085d, 0x0a31, 0x0a2a, 0x0875, 0x0719, 0x052a,
+ 0x017f, 0xfd8d, 0xfe74, 0x00b3, 0xfedf, 0xfeff,
+ 0xfdaa, 0xf59f, 0xf35d, 0xf64e, 0xf471, 0xf570,
+ 0xf925, 0xf73c, 0xf47f, 0xf276, 0xf053, 0xf0e4,
+ 0xef98, 0xed37, 0xee96, 0xef00, 0xee4d, 0xef75,
+ 0xefc8, 0xf130, 0xf4d6, 0xf62d, 0xf490, 0xf381,
+ 0xf4fd, 0xf4b4, 0xf1c8, 0xf39f, 0xf439, 0xecea,
+ 0xebad, 0xf0cd, 0xefa5, 0xf00c, 0xf4e5, 0xf43d,
+ 0xf27a, 0xf315, 0xf293, 0xf573, 0xfa43, 0xf9d5,
+ 0xf6f6, 0xf5bf, 0xf61e, 0xf87d, 0xfb01, 0xfabf,
+ 0xf961, 0xfad2, 0xfdc4, 0xfe71, 0xfe79, 0xffa6,
+ 0x00a8, 0x01f8, 0x0221, 0xfef5, 0xfb75, 0xfa09,
+ 0xfa11, 0xfa87, 0xf98d, 0xf7d1, 0xf750, 0xf6ef,
+ 0xf563, 0xf38a, 0xf3a8, 0xf561, 0xf574, 0xf58b,
+ 0xf6ed, 0xf56f, 0xf3c4, 0xf620, 0xf7f5, 0xf838,
+ 0xf945, 0xfa1a, 0xfbe4, 0xfd61, 0xfbca, 0xfa51,
+ 0xf947, 0xf78a, 0xf7d7, 0xf735, 0xf4d7, 0xf6ca,
+ 0xf932, 0xf6fb, 0xf653, 0xf8ba, 0xf974, 0xf914,
+ 0xf981, 0xfaa3, 0xfb19, 0xf8aa, 0xf52e, 0xf441,
+ 0xf591, 0xf71b, 0xf7b3, 0xf7d0, 0xf83f, 0xf877,
+ 0xfa20, 0xfe83, 0x0274, 0x04ec, 0x0622, 0x0404,
+ 0x00c1, 0xfee4, 0xfd6d, 0xfdeb, 0xfee4, 0xfce0,
+ 0xfbb0, 0xfcc2, 0xfdd3, 0x00b0, 0x0335, 0x02f9,
+ 0x02f7, 0x021d, 0xfff7, 0xfdda, 0xf942, 0xf593,
+ 0xf532, 0xf32a, 0xf214, 0xf2ca, 0xf0d9, 0xf1e2,
+ 0xf5e8, 0xf61c, 0xf6f2, 0xf855, 0xf612, 0xf5a2,
+ 0xf6ae, 0xf732, 0xfb09, 0xfd22, 0xfb3b, 0xfce8,
+ 0x00b4, 0x00e6, 0xfe30, 0xfb55, 0xfa1f, 0xf928,
+ 0xf851, 0xf9a0, 0xfb8b, 0xfdb5, 0xff9a, 0xff30,
+ 0x0006, 0x01d0, 0x0049, 0xff2f, 0xfffa, 0x007d,
+ 0x0172, 0x00c8, 0x00d0, 0x0438, 0x050c, 0x05d1,
+ 0x09d3, 0x098f, 0x0838, 0x094f, 0x0536, 0x00b0,
+ 0x0166, 0x0099, 0xff4c, 0x003a, 0xffd2, 0xff6a,
+ 0xff69, 0xfe0b, 0xfe0e, 0xff5f, 0xff42, 0xfdb4,
+ 0xfac7, 0xf670, 0xf1b2, 0xef29, 0xf0ad, 0xf297,
+ 0xf117, 0xeec8, 0xef25, 0xf1a3, 0xf521, 0xf8f2,
+ 0xfacc, 0xfb16, 0xfc11, 0xfb29, 0xf952, 0xfab5,
+ 0xfa3c, 0xf766, 0xf8c2, 0xfa0f, 0xfad8, 0x0043,
+ 0x0248, 0xfef1, 0xfddd, 0xfc5a, 0xfa57, 0xfade,
+ 0xf9fb, 0xf941, 0xfa56, 0xfa37, 0xfa6f, 0xfa48,
+ 0xfa3e, 0xfd66, 0xff3c, 0xffb5, 0x00a0, 0xfcd8,
+ 0xf964, 0xfaed, 0xfb4f, 0xfb5d, 0xfa81, 0xf7bc,
+ 0xfa49, 0xfbdf, 0xf852, 0xfc06, 0x01a5, 0xffec,
+ 0x002c, 0x01cd, 0xff4b, 0xfd79, 0xfcac, 0xfcd1,
+ 0xfe1b, 0xfb52, 0xf630, 0xf297, 0xefef, 0xef28,
+ 0xed4d, 0xea2d, 0xebbe, 0xedd4, 0xec7d, 0xee84,
+ 0xf37a, 0xf5a2, 0xf5a3, 0xf52d, 0xf5ae, 0xf75d,
+ 0xf84c, 0xfa24, 0xfd3a, 0xfd40, 0xfbb2, 0xfcdf,
+ 0xfe40, 0xfdb6, 0xfd32, 0xfbeb, 0xfa06, 0xf9c2,
+ 0xf86a, 0xf54c, 0xf4dd, 0xf55c, 0xf404, 0xf3f5,
+ 0xf4de, 0xf4fd, 0xf560, 0xf440, 0xf245, 0xf3e4,
+ 0xf790, 0xf8d1, 0xf7c5, 0xf7ce, 0xfa5b, 0xfc29,
+ 0xfc1c, 0xfd67, 0xfee5, 0xfe39, 0xfdf9, 0xff61,
+ 0x0029, 0x0023, 0x0229, 0x0609, 0x07bc, 0x087b,
+ 0x0b5a, 0x0cad, 0x0c45, 0x0e96, 0x10b7, 0x0f89,
+ 0x0e0c, 0x0df1, 0x0df9, 0x0afe, 0x059f, 0x03ba,
+ 0x038d, 0x011c, 0x0171, 0x03fc, 0x02cb, 0x00cf,
+ 0x0053, 0xfff8, 0x020e, 0x0550, 0x079d, 0x0bfa,
+ 0x0fc1, 0x0e0f, 0x0aea, 0x0ac7, 0x0c61, 0x0df3,
+ 0x0e64, 0x0d1c, 0x0b03, 0x0946, 0x0791, 0x0521,
+ 0x0353, 0x02cb, 0x0232, 0x023d, 0x0282, 0x0133,
+ 0x00be, 0x017d, 0x0102, 0x00de, 0xffcd, 0xfd94,
+ 0x001f, 0x02e2, 0x001a, 0x009f, 0x0449, 0x02e8,
+ 0x01ea, 0x031d, 0x01a3, 0x024b, 0x0579, 0x0556,
+ 0x0449, 0x03dc, 0x01bc, 0xff5c, 0xfe41, 0xfebb,
+ 0xffdf, 0xfff9, 0x0050, 0x018d, 0x029f, 0x01ee,
+ 0xfc6b, 0xf600, 0xf51d, 0xf4c9, 0xf1ac, 0xf18a,
+ 0xf390, 0xf308, 0xf1b8, 0xf26b, 0xf418, 0xf4e0,
+ 0xf687, 0xfa57, 0xfbd9, 0xf9e2, 0xf822, 0xf63e,
+ 0xf4ce, 0xf5d0, 0xf66b, 0xf67f, 0xf88f, 0xfa6b,
+ 0xfb97, 0xfd34, 0xfc9f, 0xfadf, 0xfb4c, 0xfa79,
+ 0xf692, 0xf45f, 0xf3c6, 0xf207, 0xf219, 0xf3ff,
+ 0xf521, 0xf895, 0xfcf2, 0xfc86, 0xfad3, 0xfb5f,
+ 0xfa91, 0xf7fa, 0xf5ca, 0xf55d, 0xf749, 0xf8fd,
+ 0xfa89, 0xfe75, 0x01f6, 0x0345, 0x0443, 0x047f,
+ 0x050d, 0x0778, 0x08a6, 0x078b, 0x0780, 0x0945,
+ 0x09be, 0x078f, 0x05ae, 0x05e8, 0x051f, 0x00d8,
+ 0xfcbb, 0xfdde, 0x00ed, 0x004e, 0x00f3, 0x05ee,
+ 0x0826, 0x07b6, 0x0a2c, 0x0d87, 0x0f8c, 0x108e,
+ 0x1127, 0x131d, 0x12e8, 0x0e79, 0x0d00, 0x0efb,
+ 0x0e2f, 0x0d20, 0x0eb4, 0x0ef4, 0x0c71, 0x0900,
+ 0x05ff, 0x04a1, 0x0455, 0x0368, 0x0189, 0xff32,
+ 0xfd7c, 0xfcf2, 0xfbc3, 0xfad0, 0xfd80, 0x0072,
+ 0x0032, 0x00f2, 0x01f2, 0x00af, 0x01bc, 0x02f9,
+ 0x01a3, 0x03a5, 0x0538, 0x029d, 0x0415, 0x0639,
+ 0x0335, 0x0312, 0x060e, 0x07e7, 0x0b1c, 0x0d01,
+ 0x0d80, 0x1077, 0x11ea, 0x11bb, 0x133e, 0x1301,
+ 0x1091, 0x0e1b, 0x0b75, 0x0927, 0x063f, 0x048d,
+ 0x0666, 0x0766, 0x0780, 0x0962, 0x0993, 0x08ec,
+ 0x095b, 0x08a7, 0x0936, 0x0b45, 0x0ca3, 0x0f9b,
+ 0x1160, 0x10bf, 0x1374, 0x1603, 0x14b7, 0x151b,
+ 0x16a7, 0x161b, 0x1478, 0x115d, 0x0e78, 0x0c87,
+ 0x095c, 0x07a0, 0x06e3, 0x0344, 0x014e, 0x036d,
+ 0x054f, 0x0793, 0x0ae6, 0x0cd0, 0x0d8a, 0x0c5c,
+ 0x093a, 0x0764, 0x0707, 0x07ab, 0x09b2, 0x09ac,
+ 0x0707, 0x05a7, 0x0618, 0x07ef, 0x0a39, 0x0a08,
+ 0x0908, 0x08c3, 0x05dc, 0x0205, 0x00f5, 0x00c0,
+ 0x011d, 0x0247, 0x00d1, 0xfcba, 0xf8c2, 0xf613,
+ 0xf4b3, 0xf262, 0xef70, 0xef13, 0xef5f, 0xeee3,
+ 0xf053, 0xf289, 0xf46f, 0xf71b, 0xf7f6, 0xf708,
+ 0xf80b, 0xf98f, 0xf91f, 0xf885, 0xf91c, 0xf9d6,
+ 0xf9d6, 0xfad8, 0xfebe, 0x037d, 0x06af, 0x089d,
+ 0x094c, 0x0831, 0x05fe, 0x03f2, 0x0147, 0xfd02,
+ 0xfaa2, 0xfb2b, 0xf937, 0xf73b, 0xfc23, 0x029b,
+ 0x052f, 0x07b2, 0x08d6, 0x0581, 0x0227, 0x0081,
+ 0xfdfc, 0xfb66, 0xfa88, 0xfb2c, 0xfb81, 0xfa6c,
+ 0xfa04, 0xface, 0xfb90, 0xfddb, 0x003a, 0xfee6,
+ 0xfce0, 0xfd23, 0xfc59, 0xfa59, 0xfb02, 0xfd2f,
+ 0xfc5f, 0xf9bc, 0xf934, 0xf721, 0xf05f, 0xec05,
+ 0xec28, 0xeacf, 0xea09, 0xeca7, 0xee8d, 0xf044,
+ 0xf3bd, 0xf630, 0xf78d, 0xf97d, 0xfbea, 0xfee2,
+ 0x01b9, 0x03f5, 0x0491, 0x02be, 0x020c, 0x031e,
+ 0x0222, 0x014b, 0x024f, 0x0139, 0xff17, 0xff12,
+ 0xffbb, 0x0002, 0xff7c, 0xfd0a, 0xf932, 0xf616,
+ 0xf5a0, 0xf679, 0xf74b, 0xf9fc, 0xfcfb, 0xfd70,
+ 0xfd68, 0xfd1c, 0xfbb9, 0xfbf4, 0xfdb3, 0xfebd,
+ 0xfee8, 0xfe5e, 0xfeae, 0xffe6, 0xfeda, 0xfbe9,
+ 0xf9ae, 0xf867, 0xf819, 0xf8ee, 0xfb2d, 0xfe15,
+ 0xff85, 0x0030, 0x0091, 0xfed5, 0xfcfb, 0xfc4d,
+ 0xfa2c, 0xf7d9, 0xf6b4, 0xf483, 0xf253, 0xf231,
+ 0xf397, 0xf5c8, 0xf62c, 0xf3b9, 0xf255, 0xf2a4,
+ 0xf1b9, 0xf21f, 0xf714, 0xfca5, 0xff67, 0x014a,
+ 0x02a9, 0x0358, 0x05eb, 0x097c, 0x0b7c, 0x0d16,
+ 0x0e31, 0x0da5, 0x0c9a, 0x0b3d, 0x09df, 0x08b8,
+ 0x05c8, 0x0288, 0x01d2, 0x0279, 0x04b8, 0x08a5,
+ 0x0b45, 0x0d50, 0x0fc8, 0x0ffd, 0x0e66, 0x0c34,
+ 0x0889, 0x05fa, 0x06cd, 0x08fc, 0x0a90, 0x0b5d,
+ 0x0ccf, 0x0e57, 0x0c80, 0x096b, 0x08cf, 0x0718,
+ 0x041e, 0x03ed, 0x0348, 0x00b2, 0xffa1, 0xfe30,
+ 0xfc39, 0xfbf6, 0xf9aa, 0xf679, 0xf6a8, 0xf565,
+ 0xf160, 0xeee4, 0xebbe, 0xe80f, 0xe7b4, 0xe841,
+ 0xe802, 0xe81d, 0xe7a0, 0xe7f6, 0xead0, 0xee69,
+ 0xf178, 0xf3a0, 0xf5a6, 0xf7a9, 0xf6fe, 0xf54a,
+ 0xf6d8, 0xf968, 0xf9f8, 0xfa27, 0xfb64, 0xfd38,
+ 0xfe0d, 0xfdb5, 0xfd7e, 0xfc11, 0xf951, 0xf856,
+ 0xf853, 0xf77d, 0xf85b, 0xfb58, 0xfd77, 0xfec0,
+ 0x00dc, 0x028b, 0x025a, 0x010e, 0xfeb0, 0xfb7a,
+ 0xf940, 0xf7bb, 0xf675, 0xf74c, 0xf997, 0xfa98,
+ 0xf9e6, 0xf902, 0xf941, 0xf974, 0xf935, 0xfb15,
+ 0xfd15, 0xfb70, 0xf82c, 0xf453, 0xefe5, 0xee3b,
+ 0xef24, 0xf01a, 0xf13e, 0xf189, 0xef99, 0xec98,
+ 0xeba7, 0xedb1, 0xedee, 0xec3f, 0xedd0, 0xeef7,
+ 0xed38, 0xee52, 0xf0f2, 0xf2a9, 0xf61c, 0xf889,
+ 0xf9ef, 0xfddd, 0xffd4, 0xfe8e, 0xfe49, 0xfd1f,
+ 0xfaeb, 0xfb2a, 0xfbf8, 0xfb76, 0xfaf0, 0xf9b0,
+ 0xf6b1, 0xf403, 0xf372, 0xf367, 0xf36a, 0xf4bd,
+ 0xf55e, 0xf525, 0xf759, 0xfaf0, 0xfe6f, 0x026d,
+ 0x04e5, 0x05a4, 0x061d, 0x05ff, 0x06ed, 0x08aa,
+ 0x0882, 0x079d, 0x0608, 0x0297, 0xfff9, 0xff11,
+ 0xfff9, 0x04ac, 0x0ac7, 0x0efa, 0x118a, 0x11e9,
+ 0x1077, 0x0fa5, 0x0f7e, 0x0e86, 0x0cfe, 0x0baa,
+ 0x097e, 0x06af, 0x06a2, 0x091f, 0x0ade, 0x0cc0,
+ 0x0ee3, 0x0e39, 0x0b5e, 0x08ba, 0x0692, 0x04ea,
+ 0x041b, 0x045e, 0x0551, 0x0779, 0x0bc4, 0x0f65,
+ 0x1090, 0x11ac, 0x1246, 0x11b1, 0x11f5, 0x1167,
+ 0x0ee4, 0x0d0c, 0x0b3a, 0x0832, 0x0639, 0x0677,
+ 0x0783, 0x07c0, 0x07c2, 0x0855, 0x0790, 0x05a2,
+ 0x0539, 0x0632, 0x0734, 0x06d6, 0x0503, 0x0468,
+ 0x046e, 0x0367, 0x0382, 0x04ab, 0x0698, 0x0a08,
+ 0x0a72, 0x07b7, 0x076d, 0x070a, 0x0450, 0x0359,
+ 0x034c, 0x026a, 0x01dd, 0x0005, 0xfd61, 0xfc70,
+ 0xfbd5, 0xfa56, 0xf896, 0xf73b, 0xf667, 0xf421,
+ 0xf03c, 0xecac, 0xe8e8, 0xe5d3, 0xe538, 0xe56c,
+ 0xe703, 0xea9d, 0xec4f, 0xec80, 0xedf1, 0xee7e,
+ 0xee94, 0xefdc, 0xef86, 0xee86, 0xef85, 0xefda,
+ 0xefe7, 0xf2aa, 0xf613, 0xf901, 0xfba9, 0xfb10,
+ 0xf84d, 0xf731, 0xf5fc, 0xf3ab, 0xf2fa, 0xf398,
+ 0xf49c, 0xf6f5, 0xf916, 0xf9b8, 0xfa95, 0xfb5a,
+ 0xfa79, 0xf9da, 0xfab6, 0xfad0, 0xfa68, 0xfbd3,
+ 0xfdf3, 0xff55, 0x000e, 0xfed7, 0xfcda, 0xfd18,
+ 0xfd85, 0xfcb4, 0xfdd7, 0x0000, 0x002e, 0x001d,
+ 0xffe7, 0xfd73, 0xfb88, 0xfc98, 0xfe2e, 0xff52,
+ 0x012c, 0x035b, 0x0548, 0x0596, 0x02cf, 0xff43,
+ 0xfc84, 0xf880, 0xf4d1, 0xf4f6, 0xf67e, 0xf67a,
+ 0xf6ec, 0xf91c, 0xfb11, 0xfbaf, 0xfccc, 0xffa3,
+ 0x0230, 0x035d, 0x0464, 0x044b, 0x01f1, 0xffad,
+ 0xff0c, 0xfe89, 0xfca8, 0xfa16, 0xf87b, 0xf79b,
+ 0xf64a, 0xf51a, 0xf471, 0xf453, 0xf5a5, 0xf721,
+ 0xf75d, 0xf8e3, 0xfc66, 0xfef7, 0x009d, 0x0284,
+ 0x03ba, 0x04ea, 0x06a1, 0x0741, 0x079c, 0x08ab,
+ 0x0843, 0x068c, 0x0575, 0x04e1, 0x05e6, 0x096b,
+ 0x0d05, 0x0f4a, 0x10eb, 0x1297, 0x144f, 0x140f,
+ 0x1142, 0x0e9e, 0x0cf5, 0x0bee, 0x0bc8, 0x0b59,
+ 0x0b8d, 0x0d8e, 0x0e46, 0x0d66, 0x0d44, 0x0c37,
+ 0x0a22, 0x0946, 0x08cb, 0x083d, 0x0815, 0x081a,
+ 0x09be, 0x0c57, 0x0d3a, 0x0d74, 0x0df0, 0x0dc9,
+ 0x0e61, 0x1048, 0x1254, 0x13fc, 0x1360, 0x0ffb,
+ 0x0c5c, 0x08ed, 0x0618, 0x06b1, 0x0a13, 0x0daf,
+ 0x112f, 0x12bf, 0x10aa, 0x0d2e, 0x0a52, 0x0856,
+ 0x0771, 0x06ee, 0x069d, 0x070b, 0x07de, 0x0947,
+ 0x0b09, 0x0c6e, 0x0ece, 0x10db, 0x0ed3, 0x0a64,
+ 0x065a, 0x0253, 0x003e, 0x0127, 0x01cd, 0x00d8,
+ 0xff7e, 0xfde9, 0xfb12, 0xf6f1, 0xf44e, 0xf429,
+ 0xf44b, 0xf4bc, 0xf4a7, 0xf1b6, 0xeec1, 0xed96,
+ 0xeb23, 0xe7f0, 0xe624, 0xe4d2, 0xe396, 0xe31b,
+ 0xe460, 0xe738, 0xe96c, 0xeb65, 0xee16, 0xef7b,
+ 0xf03b, 0xf17d, 0xf0f8, 0xef95, 0xf007, 0xf194,
+ 0xf41c, 0xf7de, 0xfb42, 0xfe34, 0x011c, 0x02c3,
+ 0x02aa, 0x0129, 0xfed4, 0xfd8a, 0xfdd2, 0xfd6f,
+ 0xfbd7, 0xfaed, 0xfb39, 0xfc86, 0xfe25, 0xfdfc,
+ 0xfcb2, 0xfcd7, 0xfd83, 0xfdae, 0xfe77, 0xffc1,
+ 0x013a, 0x02b2, 0x0351, 0x03c8, 0x04fa, 0x0634,
+ 0x0674, 0x0502, 0x02c2, 0x00d5, 0xfee4, 0xfe26,
+ 0xffc6, 0x0237, 0x043e, 0x04c7, 0x03c3, 0x0338,
+ 0x0267, 0x008c, 0xffee, 0xff5d, 0xfd23, 0xfb57,
+ 0xfa19, 0xf929, 0xfa08, 0xfb8c, 0xfc1f, 0xfbd7,
+ 0xfaf2, 0xfaf8, 0xfc51, 0xfd77, 0xfe63, 0xff13,
+ 0xfec7, 0xfdd8, 0xfcf1, 0xfd0b, 0xfe63, 0xffa5,
+ 0x0086, 0x00e7, 0xff47, 0xfbfe, 0xf966, 0xf81a,
+ 0xf670, 0xf402, 0xf2b2, 0xf2a5, 0xf216, 0xf14c,
+ 0xf1b2, 0xf32f, 0xf4a3, 0xf55f, 0xf58f, 0xf53b,
+ 0xf59c, 0xf859, 0xfafb, 0xfb80, 0xfc8b, 0xfe15,
+ 0xfdf5, 0xfcea, 0xfb2f, 0xf982, 0xf99b, 0xfa74,
+ 0xfcb5, 0x01f8, 0x06fb, 0x0998, 0x0b51, 0x0bf1,
+ 0x0abf, 0x0827, 0x0556, 0x043a, 0x04af, 0x0522,
+ 0x05bb, 0x06ec, 0x0795, 0x063d, 0x03c6, 0x01e1,
+ 0xff89, 0xfce2, 0xfc60, 0xfdd2, 0x00c2, 0x0509,
+ 0x0812, 0x09e5, 0x0c3a, 0x0df3, 0x0edf, 0x0ebb,
+ 0x0cc9, 0x0bcf, 0x0c46, 0x0c01, 0x0cc3, 0x0e5e,
+ 0x0e74, 0x0f22, 0x108b, 0x101c, 0x1036, 0x12ae,
+ 0x14f8, 0x1687, 0x1813, 0x180f, 0x15cb, 0x12fd,
+ 0x10c3, 0x0ec0, 0x0cf8, 0x0bd9, 0x0b86, 0x0c40,
+ 0x0db1, 0x0ef6, 0x104d, 0x1186, 0x1098, 0x0d2d,
+ 0x09aa, 0x077b, 0x0696, 0x06d8, 0x073a, 0x0743,
+ 0x0818, 0x0913, 0x088e, 0x07de, 0x07f0, 0x06bc,
+ 0x03fd, 0x0211, 0x0184, 0x0091, 0xff14, 0xfe97,
+ 0xfdee, 0xfb7d, 0xf956, 0xf81b, 0xf683, 0xf634,
+ 0xf7b3, 0xf940, 0xfb00, 0xfc79, 0xfdb5, 0x00ee,
+ 0x0439, 0x045b, 0x0312, 0x01f1, 0x010d, 0x01e1,
+ 0x0455, 0x06f5, 0x08ed, 0x08e6, 0x0676, 0x0302,
+ 0x002b, 0xff1f, 0xffb6, 0x00b7, 0x013b, 0x00c2,
+ 0xff55, 0xfd3b, 0xfb2a, 0xfa61, 0xfa4b, 0xf8db,
+ 0xf5b2, 0xf1a1, 0xeda1, 0xea3b, 0xe694, 0xe31a,
+ 0xe1a9, 0xe1e0, 0xe28d, 0xe2da, 0xe14f, 0xde42,
+ 0xd948, 0xce3b, 0xbd4e, 0xada8, 0xa47b, 0xa20d,
+ 0xa405, 0xa752, 0xab66, 0xb107, 0xb714, 0xbc49,
+ 0xc0e8, 0xc683, 0xce52, 0xd56e, 0xd750, 0xd383,
+ 0xccee, 0xc79d, 0xc62d, 0xc7b6, 0xcc2c, 0xd42c,
+ 0xdc6d, 0xe31d, 0xe9d5, 0xef32, 0xf1a8, 0xf285,
+ 0xf23d, 0xf1b1, 0xf1d3, 0xf19e, 0xf27a, 0xf687,
+ 0xfba6, 0xffa4, 0x024e, 0x035c, 0x037f, 0x03c0,
+ 0x04dc, 0x07fe, 0x0c95, 0x110a, 0x1531, 0x1866,
+ 0x19d0, 0x1a27, 0x1a66, 0x1c27, 0x20b6, 0x2610,
+ 0x2a4e, 0x2e66, 0x323f, 0x348e, 0x354c, 0x33fe,
+ 0x30a0, 0x2dbf, 0x2d37, 0x2e51, 0x2fd3, 0x3148,
+ 0x3358, 0x3609, 0x3705, 0x34c9, 0x3102, 0x2dd1,
+ 0x2c0f, 0x2c22, 0x2db1, 0x2eb6, 0x2dcf, 0x2c49,
+ 0x2a95, 0x2784, 0x2489, 0x23a5, 0x242e, 0x25a9,
+ 0x274b, 0x2741, 0x258e, 0x22b0, 0x1ec2, 0x1b1d,
+ 0x18e1, 0x188e, 0x1a1a, 0x1c14, 0x1df0, 0x1f96,
+ 0x1fec, 0x1ef2, 0x1d00, 0x1af0, 0x1afd, 0x1c35,
+ 0x1c8d, 0x1d94, 0x1f2d, 0x1efa, 0x1d5b, 0x1b57,
+ 0x1946, 0x178e, 0x15e0, 0x148a, 0x13dc, 0x1314,
+ 0x11c7, 0x0fdf, 0x0e5f, 0x0e0c, 0x0cfb, 0x0b5d,
+ 0x0b6e, 0x0bb9, 0x0b10, 0x0a98, 0x0950, 0x0695,
+ 0x0399, 0x00ad, 0xfdcd, 0xfa95, 0xf71d, 0xf4d6,
+ 0xf390, 0xf21a, 0xf08d, 0xef63, 0xef4b, 0xef88,
+ 0xee10, 0xeba7, 0xe9df, 0xe816, 0xe639, 0xe4c9,
+ 0xe372, 0xe244, 0xe141, 0xe027, 0xdfb4, 0xe0d0,
+ 0xe2e1, 0xe4de, 0xe6ff, 0xe8eb, 0xe98f, 0xea0d,
+ 0xeb47, 0xebe7, 0xec42, 0xed61, 0xee99, 0xefae,
+ 0xf08f, 0xf11b, 0xf18b, 0xf0fb, 0xef90, 0xee55,
+ 0xec53, 0xe99b, 0xe756, 0xe4f3, 0xe2d5, 0xe182,
+ 0xe02c, 0xdfc4, 0xe10f, 0xe333, 0xe5b5, 0xe752,
+ 0xe72b, 0xe62f, 0xe513, 0xe557, 0xe89c, 0xee2f,
+ 0xf4f6, 0xfbbf, 0x008b, 0x01fd, 0x0023, 0xfdf5,
+ 0xfda6, 0xfc79, 0xf9c3, 0xf906, 0xfa79, 0xfc39,
+ 0xfd47, 0xfcc5, 0xfbdd, 0xfb73, 0xfad5, 0xfb2d,
+ 0xfcd7, 0xfe75, 0x0059, 0x01d8, 0x016b, 0xff92,
+ 0xfcb5, 0xfa49, 0xfa8c, 0xfc66, 0xff09, 0x02f9,
+ 0x0593, 0x05f7, 0x0669, 0x05b4, 0x0371, 0x02ee,
+ 0x03be, 0x03b3, 0x03fa, 0x052b, 0x06d1, 0x0904,
+ 0x0a5e, 0x0a27, 0x0993, 0x093a, 0x09d0, 0x0b72,
+ 0x0d0d, 0x0f14, 0x115e, 0x1298, 0x13b0, 0x1506,
+ 0x15d5, 0x170b, 0x184b, 0x18d6, 0x1980, 0x191d,
+ 0x1797, 0x172f, 0x16d8, 0x1570, 0x1411, 0x1246,
+ 0x10e3, 0x1183, 0x128c, 0x1350, 0x14f6, 0x1738,
+ 0x191b, 0x1a1e, 0x1b63, 0x1d6a, 0x1dd3, 0x1ce4,
+ 0x1cce, 0x1c0f, 0x1a30, 0x18de, 0x178c, 0x15f2,
+ 0x142b, 0x113e, 0x0d5d, 0x08c7, 0x043a, 0x0138,
+ 0xff1d, 0xfe7c, 0x0096, 0x0234, 0x020c, 0x025e,
+ 0x01ca, 0xffc5, 0xff02, 0xff22, 0xfeb9, 0xfe99,
+ 0xffc4, 0x02b7, 0x05a3, 0x05f4, 0x04b4, 0x03b1,
+ 0x02d0, 0x0297, 0x0339, 0x0340, 0x0242, 0x015c,
+ 0x00e4, 0x0065, 0x0016, 0x005b, 0x00eb, 0x0170,
+ 0x01c1, 0x01f1, 0x022e, 0x01ff, 0x0136, 0x00a4,
+ 0x0085, 0x004d, 0xff6e, 0xfd91, 0xfb74, 0xf9c1,
+ 0xf790, 0xf454, 0xf0c9, 0xed5e, 0xea57, 0xe8d9,
+ 0xe97c, 0xeaab, 0xeb0d, 0xeb21, 0xea32, 0xe77d,
+ 0xe571, 0xe5a5, 0xe6b1, 0xe78d, 0xe784, 0xe63d,
+ 0xe4eb, 0xe451, 0xe431, 0xe418, 0xe399, 0xe310,
+ 0xe237, 0xe09e, 0xdfba, 0xdfca, 0xdfe9, 0xe0e8,
+ 0xe1a4, 0xe02d, 0xdec8, 0xdf63, 0xe0be, 0xe27b,
+ 0xe4d1, 0xe729, 0xe909, 0xea28, 0xeb4e, 0xed74,
+ 0xefaf, 0xf0fa, 0xf205, 0xf320, 0xf33f, 0xf282,
+ 0xf292, 0xf383, 0xf497, 0xf5f4, 0xf653, 0xf4c6,
+ 0xf359, 0xf32a, 0xf396, 0xf482, 0xf548, 0xf55c,
+ 0xf4fc, 0xf450, 0xf47d, 0xf5df, 0xf702, 0xf803,
+ 0xf934, 0xf992, 0xf9f9, 0xfbd6, 0xfe9f, 0x00a0,
+ 0x004f, 0xfed1, 0xfe1e, 0xfd22, 0xfb84, 0xfaa3,
+ 0xf9ce, 0xf8d3, 0xf8de, 0xf95e, 0xf9a1, 0xf972,
+ 0xf829, 0xf63a, 0xf446, 0xf2f9, 0xf423, 0xf768,
+ 0xfa54, 0xfc8b, 0xfe70, 0xff30, 0xfe7d, 0xfd16,
+ 0xfc6d, 0xfd81, 0xff1e, 0xff58, 0xfdff, 0xfc12,
+ 0xfa3a, 0xf847, 0xf633, 0xf54f, 0xf661, 0xf7a7,
+ 0xf76b, 0xf6b3, 0xf754, 0xf902, 0xfa3c, 0xfafe,
+ 0xfc24, 0xfd73, 0xfee5, 0x0168, 0x04ae, 0x0740,
+ 0x085e, 0x07c3, 0x05d5, 0x0431, 0x040e, 0x04c4,
+ 0x052b, 0x0566, 0x05bd, 0x05c1, 0x067b, 0x08bc,
+ 0x0a3e, 0x09ef, 0x09a0, 0x09eb, 0x0af9, 0x0d27,
+ 0x0f1f, 0x1077, 0x1196, 0x115c, 0x1045, 0x102c,
+ 0x10f8, 0x1220, 0x12d3, 0x11bd, 0x0f15, 0x0bbb,
+ 0x08bf, 0x0814, 0x0a1d, 0x0d39, 0x0fc6, 0x10b4,
+ 0x0fdd, 0x0d72, 0x0a80, 0x09e0, 0x0cda, 0x118e,
+ 0x1571, 0x168e, 0x1522, 0x137c, 0x1297, 0x1226,
+ 0x119a, 0x1032, 0x0e6c, 0x0cbd, 0x0ad4, 0x09c3,
+ 0x0a5e, 0x0ba5, 0x0c42, 0x0b17, 0x0924, 0x08ce,
+ 0x09a7, 0x0a50, 0x0afa, 0x0b2c, 0x0a64, 0x0915,
+ 0x075f, 0x056f, 0x0352, 0x0142, 0x0027, 0xff6c,
+ 0xfdc3, 0xfbe3, 0xfabf, 0xf9e0, 0xf861, 0xf616,
+ 0xf3cd, 0xf16e, 0xee06, 0xea1d, 0xe69c, 0xe3ac,
+ 0xe16f, 0xdf50, 0xdccd, 0xda68, 0xd864, 0xd774,
+ 0xd805, 0xd867, 0xd7df, 0xd818, 0xda23, 0xde16,
+ 0xe2e1, 0xe5d6, 0xe5e7, 0xe4c8, 0xe413, 0xe47f,
+ 0xe672, 0xe9b8, 0xed4f, 0xef68, 0xef78, 0xefb5,
+ 0xf156, 0xf31d, 0xf548, 0xf86c, 0xfac2, 0xfbfb,
+ 0xfd97, 0xff4e, 0x008e, 0x0161, 0x019e, 0x024a,
+ 0x037a, 0x03da, 0x0464, 0x0591, 0x057c, 0x04bd,
+ 0x0544, 0x06b6, 0x0803, 0x08a1, 0x0915, 0x0a34,
+ 0x0b72, 0x0c99, 0x0dcf, 0x0e08, 0x0d6b, 0x0cec,
+ 0x0c34, 0x0b4f, 0x0a33, 0x088b, 0x0774, 0x07a7,
+ 0x0904, 0x0b1d, 0x0b97, 0x091b, 0x053f, 0x010b,
+ 0xfd6c, 0xfbb1, 0xfb86, 0xfcd7, 0xffb6, 0x0273,
+ 0x03d6, 0x03a5, 0x024a, 0x0195, 0x0211, 0x029d,
+ 0x0343, 0x045b, 0x056d, 0x0588, 0x03ba, 0x015d,
+ 0x009b, 0x0088, 0xff84, 0xfdb4, 0xfb77, 0xf9d8,
+ 0xfa20, 0xfb58, 0xfbcc, 0xfb30, 0xf9bc, 0xf811,
+ 0xf7b9, 0xf916, 0xfa13, 0xf934, 0xf7bb, 0xf6de,
+ 0xf6bc, 0xf816, 0xfb09, 0xfe69, 0x01df, 0x0586,
+ 0x08eb, 0x0b86, 0x0c2b, 0x0ad3, 0x0a2d, 0x0b7d,
+ 0x0d64, 0x0fa9, 0x1284, 0x14ee, 0x1629, 0x15fd,
+ 0x155f, 0x163e, 0x1812, 0x1908, 0x1969, 0x194d,
+ 0x17dd, 0x15c3, 0x13f2, 0x1295, 0x11ac, 0x10b2,
+ 0x0fce, 0x0ff0, 0x1057, 0x0fab, 0x0e90, 0x0e1f,
+ 0x0df5, 0x0d3d, 0x0bf8, 0x0a9c, 0x09a4, 0x0960,
+ 0x0964, 0x08cf, 0x072b, 0x04a0, 0x0211, 0xffff,
+ 0xfd65, 0xf9db, 0xf6cc, 0xf51f, 0xf46b, 0xf447,
+ 0xf4d2, 0xf5cf, 0xf620, 0xf594, 0xf540, 0xf568,
+ 0xf620, 0xf79b, 0xf937, 0xfb25, 0xfdb3, 0xff89,
+ 0x007e, 0x0195, 0x027a, 0x0316, 0x03c0, 0x044c,
+ 0x0501, 0x05e0, 0x067a, 0x066b, 0x04dc, 0x0218,
+ 0xff22, 0xfc3a, 0xfaa5, 0xfa9e, 0xfa81, 0xfb56,
+ 0xfe24, 0x00aa, 0x0223, 0x031e, 0x02d5, 0x010b,
+ 0xfe08, 0xfaf7, 0xfa07, 0xfad4, 0xfbc8, 0xfcdb,
+ 0xfddb, 0xfec4, 0xffaa, 0xff89, 0xfeac, 0xfe57,
+ 0xfe54, 0xfe2e, 0xfde3, 0xfd8a, 0xfd29, 0xfc41,
+ 0xfb5a, 0xfbc1, 0xfd49, 0xff40, 0x00e1, 0x018d,
+ 0x026e, 0x03fa, 0x04ab, 0x049a, 0x0539, 0x06fb,
+ 0x0926, 0x0a26, 0x0a05, 0x0a68, 0x0afb, 0x0a91,
+ 0x095f, 0x07ea, 0x06b9, 0x059e, 0x040d, 0x0337,
+ 0x03e7, 0x04dd, 0x0559, 0x04e1, 0x02e7, 0x0065,
+ 0xfe9d, 0xfde6, 0xfe08, 0xfe50, 0xfe91, 0xfeb1,
+ 0xfdef, 0xfcc2, 0xfbf4, 0xfb08, 0xfa51, 0xfa93,
+ 0xfb4c, 0xfc60, 0xfd90, 0xfd70, 0xfbb6, 0xf99c,
+ 0xf818, 0xf75a, 0xf6d2, 0xf649, 0xf665, 0xf735,
+ 0xf822, 0xf8c6, 0xf93f, 0xfa5b, 0xfbef, 0xfcd6,
+ 0xfd89, 0xfed5, 0xffc0, 0xffb4, 0xfef3, 0xfd51,
+ 0xfb3a, 0xf9b3, 0xf949, 0xf9f2, 0xfb31, 0xfcd0,
+ 0xfe4b, 0xfe26, 0xfc49, 0xf9e6, 0xf760, 0xf5d9,
+ 0xf694, 0xf800, 0xf8af, 0xf979, 0xfa31, 0xfa38,
+ 0xfb22, 0xfe02, 0x012f, 0x0361, 0x0506, 0x05f7,
+ 0x05f1, 0x0608, 0x068c, 0x06a5, 0x063b, 0x055e,
+ 0x047a, 0x04fb, 0x06ab, 0x07f2, 0x08b1, 0x097c,
+ 0x0a34, 0x0a50, 0x097b, 0x0893, 0x0887, 0x08d1,
+ 0x08ce, 0x0877, 0x0842, 0x0905, 0x0a32, 0x0ac2,
+ 0x0b48, 0x0b9b, 0x0aa8, 0x0951, 0x08bb, 0x0890,
+ 0x08bf, 0x09aa, 0x0b6d, 0x0d94, 0x0f28, 0x0fca,
+ 0x0f5d, 0x0d8c, 0x0b01, 0x0872, 0x0593, 0x02ef,
+ 0x0175, 0x00df, 0x00ed, 0x01f3, 0x0403, 0x06a6,
+ 0x08c8, 0x099f, 0x094f, 0x0855, 0x0771, 0x070a,
+ 0x06ef, 0x0780, 0x08ed, 0x0a5a, 0x0ba4, 0x0d2e,
+ 0x0e83, 0x0f5f, 0x0fd8, 0x0fa2, 0x0e95, 0x0cb6,
+ 0x0a7c, 0x08d0, 0x07b5, 0x06dc, 0x068e, 0x067b,
+ 0x0645, 0x0661, 0x065e, 0x0539, 0x0368, 0x01e3,
+ 0x00b1, 0xff58, 0xfdb2, 0xfc48, 0xfbbd, 0xfbf8,
+ 0xfc96, 0xfd65, 0xfde2, 0xfd8e, 0xfcad, 0xfb97,
+ 0xfa05, 0xf82f, 0xf766, 0xf857, 0xf9d9, 0xfa2a,
+ 0xf8ee, 0xf72b, 0xf5af, 0xf4d5, 0xf51e, 0xf62e,
+ 0xf6c7, 0xf675, 0xf5e4, 0xf61f, 0xf7bb, 0xfa10,
+ 0xfbf2, 0xfce3, 0xfd5c, 0xfe4a, 0xff71, 0xffb0,
+ 0xff2e, 0xfe5c, 0xfcc2, 0xfb48, 0xfb45, 0xfbd1,
+ 0xfbc2, 0xfb3c, 0xfa8e, 0xfa24, 0xfa01, 0xf990,
+ 0xf96f, 0xfa97, 0xfc21, 0xfcbb, 0xfc86, 0xfc0d,
+ 0xfb59, 0xfaad, 0xfa85, 0xfa9c, 0xfa9c, 0xfaf8,
+ 0xfb4d, 0xfa56, 0xf82c, 0xf5c8, 0xf3dc, 0xf382,
+ 0xf510, 0xf6da, 0xf741, 0xf672, 0xf57d, 0xf4be,
+ 0xf3b8, 0xf2c7, 0xf315, 0xf45b, 0xf56b, 0xf609,
+ 0xf64a, 0xf683, 0xf773, 0xf8bf, 0xf998, 0xf9ff,
+ 0xf969, 0xf78b, 0xf5db, 0xf51e, 0xf4ad, 0xf45b,
+ 0xf3e0, 0xf2ff, 0xf296, 0xf2fc, 0xf3e5, 0xf580,
+ 0xf701, 0xf765, 0xf718, 0xf65a, 0xf56a, 0xf584,
+ 0xf686, 0xf716, 0xf72c, 0xf783, 0xf85e, 0xf96e,
+ 0xf9db, 0xf9b4, 0xfa32, 0xfbbd, 0xfdc1, 0xffcf,
+ 0x015f, 0x01b7, 0x00fd, 0x00b3, 0x01f6, 0x043c,
+ 0x06ce, 0x0964, 0x0b0e, 0x0b22, 0x0a53, 0x095f,
+ 0x0876, 0x07f3, 0x089d, 0x0b24, 0x0f42, 0x1396,
+ 0x16b4, 0x17fe, 0x1792, 0x1596, 0x1234, 0x0eb2,
+ 0x0ca1, 0x0bf2, 0x0be6, 0x0c7a, 0x0dbd, 0x0fe3,
+ 0x1303, 0x1567, 0x1550, 0x13e1, 0x1293, 0x10e7,
+ 0x0eed, 0x0dba, 0x0d1c, 0x0c45, 0x0b64, 0x0ae3,
+ 0x0a7e, 0x09a7, 0x08a6, 0x0866, 0x08a6, 0x087a,
+ 0x07e4, 0x06e3, 0x0542, 0x03a5, 0x0282, 0x01b4,
+ 0x0128, 0x0054, 0xff3e, 0xff69, 0x0108, 0x0298,
+ 0x03c7, 0x04e3, 0x0579, 0x05a6, 0x05aa, 0x049e,
+ 0x0208, 0xfedf, 0xfc1a, 0xf9e5, 0xf813, 0xf686,
+ 0xf52d, 0xf407, 0xf30e, 0xf208, 0xf0f6, 0xf06e,
+ 0xf0a3, 0xf147, 0xf22a, 0xf28f, 0xf1af, 0xf042,
+ 0xef4c, 0xeec5, 0xee94, 0xef1b, 0xf089, 0xf248,
+ 0xf392, 0xf497, 0xf572, 0xf53e, 0xf3fa, 0xf284,
+ 0xf0f9, 0xef7d, 0xee5b, 0xedb9, 0xee2d, 0xef76,
+ 0xf0ab, 0xf253, 0xf46e, 0xf571, 0xf559, 0xf565,
+ 0xf5c0, 0xf616, 0xf66a, 0xf74f, 0xf967, 0xfc2b,
+ 0xfe54, 0xff16, 0xfeb2, 0xfe2e, 0xfe00, 0xfe17,
+ 0xfebc, 0xff7c, 0xff5e, 0xfed4, 0xfed4, 0xff59,
+ 0x003d, 0x0191, 0x02aa, 0x0285, 0x0136, 0xff6d,
+ 0xfd5c, 0xfbc2, 0xfb7c, 0xfbe5, 0xfc4c, 0xfcc7,
+ 0xfd20, 0xfd64, 0xfd91, 0xfd44, 0xfd5c, 0xfe90,
+ 0xffc9, 0x0031, 0x0003, 0xff9f, 0xff37, 0xfe6f,
+ 0xfd35, 0xfbef, 0xfa92, 0xf9ae, 0xfa02, 0xfb04,
+ 0xfc25, 0xfccd, 0xfc0a, 0xfa50, 0xf8a8, 0xf790,
+ 0xf795, 0xf7f5, 0xf769, 0xf647, 0xf510, 0xf3ef,
+ 0xf346, 0xf2a3, 0xf1f6, 0xf20a, 0xf2a4, 0xf331,
+ 0xf3a4, 0xf3b7, 0xf342, 0xf262, 0xf1a2, 0xf217,
+ 0xf398, 0xf4c4, 0xf543, 0xf5ab, 0xf67f, 0xf800,
+ 0xf9b0, 0xfad8, 0xfb6c, 0xfbb0, 0xfbe8, 0xfc85,
+ 0xfddd, 0xffa2, 0x015d, 0x0343, 0x0575, 0x078e,
+ 0x0951, 0x0a92, 0x0b51, 0x0beb, 0x0c65, 0x0cb9,
+ 0x0d6b, 0x0e90, 0x0fb3, 0x1072, 0x108e, 0x0ff4,
+ 0x0ece, 0x0ddf, 0x0dd1, 0x0de8, 0x0db1, 0x0dd6,
+ 0x0dd8, 0x0d2b, 0x0c9d, 0x0bf7, 0x0ae3, 0x0abb,
+ 0x0ba9, 0x0c28, 0x0be8, 0x0b90, 0x0b15, 0x0a1d,
+ 0x0917, 0x08c5, 0x08ce, 0x0883, 0x07fd, 0x0725,
+ 0x0601, 0x0529, 0x04ae, 0x049f, 0x0560, 0x0634,
+ 0x05de, 0x044b, 0x0297, 0x01ec, 0x01eb, 0x014f,
+ 0x0080, 0x00a3, 0x01b4, 0x03b9, 0x06c3, 0x09d7,
+ 0x0c2c, 0x0d6b, 0x0d17, 0x0bbe, 0x0a43, 0x0857,
+ 0x062b, 0x048f, 0x030e, 0x016b, 0x0086, 0x0062,
+ 0x0062, 0x0034, 0xff6d, 0xfdf7, 0xfc16, 0xf9f2,
+ 0xf7e7, 0xf5e1, 0xf3c3, 0xf2ef, 0xf42c, 0xf5e5,
+ 0xf6a2, 0xf679, 0xf5ea, 0xf52d, 0xf45d, 0xf3b6,
+ 0xf317, 0xf1f4, 0xf061, 0xeef7, 0xee3f, 0xee5a,
+ 0xee7f, 0xee23, 0xedfb, 0xee5d, 0xef35, 0xf10b,
+ 0xf3a5, 0xf628, 0xf877, 0xfa2e, 0xfabf, 0xfab2,
+ 0xfa82, 0xfa39, 0xfa8e, 0xfbd4, 0xfd09, 0xfd86,
+ 0xfdc7, 0xfe45, 0xfef1, 0xff88, 0x003f, 0x01a4,
+ 0x030c, 0x0353, 0x02e9, 0x0281, 0x0244, 0x02fc,
+ 0x0484, 0x05a3, 0x06a9, 0x0800, 0x08f1, 0x099e,
+ 0x0a0e, 0x097a, 0x0861, 0x078e, 0x06c8, 0x0603,
+ 0x0542, 0x0415, 0x0279, 0x0139, 0x0116, 0x0175,
+ 0x0145, 0x00ef, 0x0120, 0x0121, 0x002b, 0xfe91,
+ 0xfd6a, 0xfd73, 0xfe54, 0xff82, 0x00e2, 0x0240,
+ 0x0303, 0x02aa, 0x017b, 0xffe9, 0xfda2, 0xfae5,
+ 0xf8c3, 0xf79c, 0xf78f, 0xf83a, 0xf80b, 0xf69f,
+ 0xf585, 0xf586, 0xf5cc, 0xf5ba, 0xf5fa, 0xf6b0,
+ 0xf6b5, 0xf65f, 0xf6f7, 0xf7a7, 0xf7a3, 0xf7d0,
+ 0xf83a, 0xf853, 0xf866, 0xf8ae, 0xf8e2, 0xf8a9,
+ 0xf874, 0xf8f9, 0xf9d9, 0xfb22, 0xfd61, 0xff57,
+ 0x0036, 0x0119, 0x0206, 0x029a, 0x036d, 0x047a,
+ 0x05cf, 0x07e5, 0x09c9, 0x0a69, 0x0a4c, 0x0a2a,
+ 0x09f9, 0x09a7, 0x09a1, 0x0a47, 0x0b1d, 0x0ba9,
+ 0x0c65, 0x0d9b, 0x0e9e, 0x0f0d, 0x0f2d, 0x0ed9,
+ 0x0df7, 0x0d49, 0x0d3f, 0x0d99, 0x0e09, 0x0e01,
+ 0x0d96, 0x0d96, 0x0d5e, 0x0c1e, 0x0b25, 0x0b7a,
+ 0x0c2a, 0x0c4c, 0x0c32, 0x0c56, 0x0c57, 0x0c03,
+ 0x0c0d, 0x0c60, 0x0c2d, 0x0b71, 0x0a3e, 0x08e7,
+ 0x0868, 0x08c5, 0x0953, 0x09f2, 0x0a71, 0x0ac5,
+ 0x0b88, 0x0d48, 0x0f98, 0x109f, 0x0f63, 0x0d72,
+ 0x0be8, 0x0a5d, 0x0909, 0x0822, 0x076e, 0x0714,
+ 0x06b9, 0x0624, 0x05e4, 0x0576, 0x0412, 0x0266,
+ 0x00f1, 0xff6a, 0xfe25, 0xfd69, 0xfcb2, 0xfbaa,
+ 0xfa9d, 0xf9e9, 0xf991, 0xf953, 0xf93a, 0xf981,
+ 0xf9c9, 0xf96f, 0xf87e, 0xf75b, 0xf65b, 0xf5f3,
+ 0xf61c, 0xf654, 0xf697, 0xf700, 0xf6f8, 0xf607,
+ 0xf4ff, 0xf508, 0xf605, 0xf787, 0xf9d5, 0xfc78,
+ 0xfea1, 0x008f, 0x01bf, 0x0113, 0xff75, 0xfe5c,
+ 0xfe14, 0xfe9c, 0xffa7, 0x00c8, 0x01c6, 0x0230,
+ 0x0239, 0x025e, 0x0228, 0x016f, 0x009f, 0xffcb,
+ 0xff46, 0xff11, 0xfede, 0xff51, 0x003f, 0x0096,
+ 0x00b5, 0x00f1, 0x00aa, 0x0021, 0xff6a, 0xfe3b,
+ 0xfdc7, 0xfec6, 0xffd4, 0xfff2, 0xffbd, 0xffa6,
+ 0xff42, 0xfea1, 0xfe59, 0xfe39, 0xfdd6, 0xfd51,
+ 0xfcb3, 0xfc4c, 0xfc7d, 0xfc7f, 0xfbce, 0xfb6f,
+ 0xfc49, 0xfe14, 0xffe5, 0x00e7, 0x010c, 0x00bd,
+ 0x0042, 0xff9e, 0xfe88, 0xfd06, 0xfbd4, 0xfb82,
+ 0xfbc7, 0xfbf0, 0xfb74, 0xfa4b, 0xf8f3, 0xf7e0,
+ 0xf6ce, 0xf546, 0xf3ab, 0xf29f, 0xf21c, 0xf246,
+ 0xf3ad, 0xf5e7, 0xf77e, 0xf7e7, 0xf80f, 0xf892,
+ 0xf939, 0xfa16, 0xfad3, 0xfa7d, 0xf952, 0xf864,
+ 0xf837, 0xf940, 0xfb5a, 0xfd37, 0xfe66, 0xffd0,
+ 0x01c3, 0x03f0, 0x0669, 0x0884, 0x08cc, 0x07a2,
+ 0x0713, 0x0794, 0x0835, 0x08b8, 0x091b, 0x09af,
+ 0x0b5b, 0x0da0, 0x0ee8, 0x0f0e, 0x0eca, 0x0e49,
+ 0x0e2e, 0x0f62, 0x1166, 0x12e9, 0x1382, 0x13cc,
+ 0x143d, 0x1460, 0x13c2, 0x12d2, 0x11d7, 0x10b6,
+ 0x0fc4, 0x0eb7, 0x0d10, 0x0bb8, 0x0b23, 0x0aa0,
+ 0x0a73, 0x0ab1, 0x0a43, 0x08df, 0x06fa, 0x051d,
+ 0x03e3, 0x032f, 0x02b8, 0x029b, 0x0286, 0x0268,
+ 0x0279, 0x025a, 0x0217, 0x021a, 0x0246, 0x02a7,
+ 0x0345, 0x03ca, 0x0430, 0x0492, 0x04c0, 0x044e,
+ 0x033f, 0x0299, 0x026e, 0x0197, 0x0071, 0xffc3,
+ 0xfec5, 0xfd03, 0xfabe, 0xf83e, 0xf6c7, 0xf724,
+ 0xf82e, 0xf8ec, 0xf957, 0xf8eb, 0xf74d, 0xf59a,
+ 0xf4e2, 0xf4aa, 0xf481, 0xf4c8, 0xf557, 0xf5aa,
+ 0xf59c, 0xf520, 0xf450, 0xf352, 0xf25d, 0xf1da,
+ 0xf1a7, 0xf143, 0xf05b, 0xee99, 0xecb9, 0xec54,
+ 0xed65, 0xeed5, 0xf05e, 0xf1fc, 0xf383, 0xf4b1,
+ 0xf53c, 0xf58c, 0xf64c, 0xf766, 0xf8be, 0xfabc,
+ 0xfd4b, 0xff62, 0x0041, 0x0027, 0xff44, 0xfdda,
+ 0xfce0, 0xfcae, 0xfd17, 0xfe8c, 0x00ad, 0x0210,
+ 0x0265, 0x0272, 0x02b5, 0x0324, 0x037a, 0x03ab,
+ 0x03e8, 0x0412, 0x03e4, 0x038f, 0x03db, 0x0543,
+ 0x073f, 0x08b5, 0x08e3, 0x0812, 0x0712, 0x05fa,
+ 0x04db, 0x0479, 0x04d1, 0x051e, 0x0510, 0x0483,
+ 0x03b7, 0x036f, 0x03b0, 0x0406, 0x0476, 0x04ef,
+ 0x0528, 0x050c, 0x0463, 0x02e1, 0x0106, 0xffe8,
+ 0xff81, 0xfebc, 0xfdb3, 0xfd2e, 0xfc5d, 0xfa4d,
+ 0xf7b9, 0xf5b3, 0xf4b4, 0xf48c, 0xf475, 0xf43c,
+ 0xf457, 0xf465, 0xf3ba, 0xf27c, 0xf14b, 0xf094,
+ 0xf00b, 0xef39, 0xeeda, 0xefab, 0xf0ef, 0xf1ea,
+ 0xf2df, 0xf3e4, 0xf490, 0xf4c0, 0xf4cb, 0xf4cc,
+ 0xf4ec, 0xf5fb, 0xf7c6, 0xf8d6, 0xf94a, 0xfa48,
+ 0xfba7, 0xfd22, 0xfea1, 0xffa6, 0x0086, 0x019c,
+ 0x02ab, 0x0448, 0x0695, 0x0849, 0x08cd, 0x08a6,
+ 0x0884, 0x089e, 0x08c1, 0x091c, 0x098c, 0x0954,
+ 0x08c6, 0x0894, 0x08dd, 0x09c5, 0x0a4b, 0x0965,
+ 0x083b, 0x0784, 0x0686, 0x05dc, 0x0696, 0x0839,
+ 0x09cb, 0x0adc, 0x0b1b, 0x09f9, 0x07f8, 0x06b0,
+ 0x061c, 0x0544, 0x04a1, 0x048a, 0x048b, 0x04a8,
+ 0x0491, 0x03b3, 0x0220, 0x004e, 0xff24, 0xff33,
+ 0x0036, 0x0200, 0x03f1, 0x053c, 0x063a, 0x0726,
+ 0x07d9, 0x08c9, 0x0975, 0x08da, 0x07a4, 0x068b,
+ 0x0515, 0x032a, 0x0153, 0x005a, 0x00d4, 0x0218,
+ 0x02e7, 0x0290, 0x00ce, 0xfe05, 0xfb7c, 0xfa61,
+ 0xfa9a, 0xfae0, 0xfa85, 0xfa63, 0xfabf, 0xfa99,
+ 0xf9ea, 0xf950, 0xf86c, 0xf752, 0xf6eb, 0xf737,
+ 0xf776, 0xf724, 0xf5f6, 0xf448, 0xf30f, 0xf2b8,
+ 0xf2e2, 0xf337, 0xf399, 0xf382, 0xf2a2, 0xf1b6,
+ 0xf161, 0xf174, 0xf217, 0xf3da, 0xf672, 0xf8c5,
+ 0xfa2e, 0xfad5, 0xfae2, 0xfaa0, 0xfad5, 0xfba1,
+ 0xfc61, 0xfcbd, 0xfcd8, 0xfd3f, 0xfe2f, 0xff54,
+ 0x00c9, 0x01f9, 0x01ae, 0x0103, 0x0171, 0x0223,
+ 0x02c5, 0x037d, 0x033f, 0x0234, 0x01be, 0x0253,
+ 0x0390, 0x0486, 0x04b9, 0x04a1, 0x0466, 0x042f,
+ 0x0412, 0x0388, 0x0309, 0x0335, 0x0352, 0x0349,
+ 0x034f, 0x02b4, 0x01db, 0x01c1, 0x0246, 0x0345,
+ 0x0458, 0x0487, 0x03f9, 0x0382, 0x0315, 0x024e,
+ 0x0140, 0x001f, 0xff1c, 0xfe99, 0xfef9, 0x0026,
+ 0x016c, 0x01a6, 0x0055, 0xfe39, 0xfc13, 0xfa45,
+ 0xf998, 0xfa47, 0xfb32, 0xfb8c, 0xfb88, 0xfb46,
+ 0xfae2, 0xfad1, 0xfb08, 0xfb0e, 0xfad4, 0xfa55,
+ 0xf977, 0xf876, 0xf79f, 0xf76e, 0xf813, 0xf8b2,
+ 0xf8f7, 0xf96c, 0xf9b8, 0xf963, 0xf8cb, 0xf859,
+ 0xf871, 0xf8d8, 0xf8fe, 0xf974, 0xfaa4, 0xfc47,
+ 0xfe42, 0xffc6, 0x005b, 0x00e8, 0x019d, 0x025f,
+ 0x0367, 0x042d, 0x049d, 0x052c, 0x05c5, 0x06b8,
+ 0x07ad, 0x07cd, 0x0799, 0x0725, 0x066e, 0x06c9,
+ 0x07aa, 0x0782, 0x06dc, 0x0626, 0x05bf, 0x06b3,
+ 0x07e7, 0x07de, 0x079b, 0x07dd, 0x0819, 0x0835,
+ 0x0827, 0x07b5, 0x0735, 0x0708, 0x06d1, 0x0667,
+ 0x066d, 0x0720, 0x0828, 0x091e, 0x0978, 0x0952,
+ 0x08f1, 0x0797, 0x0595, 0x04b6, 0x055b, 0x06bb,
+ 0x084b, 0x094d, 0x097d, 0x0971, 0x0984, 0x09c3,
+ 0x0a5b, 0x0b33, 0x0b77, 0x0a85, 0x08fd, 0x07da,
+ 0x0785, 0x0815, 0x08e7, 0x090c, 0x088a, 0x07b3,
+ 0x0678, 0x051b, 0x041c, 0x037c, 0x02d0, 0x021d,
+ 0x01ae, 0x0148, 0x00af, 0x0015, 0xff82, 0xfed9,
+ 0xfde4, 0xfc7f, 0xfb58, 0xfb14, 0xfb7d, 0xfc16,
+ 0xfc5b, 0xfc3b, 0xfbf3, 0xfb4e, 0xfa50, 0xf949,
+ 0xf839, 0xf776, 0xf733, 0xf712, 0xf6e9, 0xf6c3,
+ 0xf704, 0xf7fa, 0xf8da, 0xf964, 0xfa31, 0xfb16,
+ 0xfc08, 0xfd0e, 0xfdb4, 0xfe7f, 0xffa9, 0x0076,
+ 0x011a, 0x019c, 0x019a, 0x01b4, 0x01bc, 0x0100,
+ 0x0032, 0xffaf, 0xff03, 0xfe7a, 0xfead, 0xffac,
+ 0x00af, 0x00fc, 0x00e5, 0x00ab, 0x0042, 0xffd7,
+ 0xff37, 0xfe7b, 0xfe2c, 0xfe1a, 0xfe05, 0xfe42,
+ 0xff46, 0x0100, 0x0214, 0x0190, 0x0037, 0xfe71,
+ 0xfc76, 0xfb53, 0xfb4a, 0xfc1c, 0xfdab, 0xff43,
+ 0x0074, 0x0106, 0x00a4, 0x0003, 0xff9b, 0xfee9,
+ 0xfe33, 0xfdad, 0xfcdc, 0xfc05, 0xfb7d, 0xfb42,
+ 0xfbab, 0xfc3f, 0xfc1d, 0xfb78, 0xfa72, 0xf8f4,
+ 0xf7cc, 0xf75d, 0xf739, 0xf77d, 0xf804, 0xf815,
+ 0xf7be, 0xf777, 0xf7bf, 0xf8f6, 0xfa3e, 0xfac5,
+ 0xfae9, 0xfa60, 0xf8f7, 0xf7da, 0xf765, 0xf72f,
+ 0xf736, 0xf734, 0xf774, 0xf890, 0xf9f3, 0xfb20,
+ 0xfbff, 0xfc33, 0xfc48, 0xfce2, 0xfdc0, 0xff03,
+ 0x00cb, 0x02b7, 0x04b0, 0x0697, 0x0852, 0x0a02,
+ 0x0b87, 0x0c9e, 0x0d19, 0x0d20, 0x0d23, 0x0ccd,
+ 0x0baa, 0x09ee, 0x07fa, 0x0715, 0x080c, 0x0965,
+ 0x0a4d, 0x0b37, 0x0b64, 0x0a72, 0x092d, 0x07a4,
+ 0x05e3, 0x04b4, 0x04bf, 0x05e3, 0x0705, 0x0776,
+ 0x076c, 0x06ed, 0x0651, 0x05d4, 0x04a4, 0x02f6,
+ 0x01c2, 0x00d0, 0x004a, 0x00ca, 0x01a8, 0x0264,
+ 0x0318, 0x0335, 0x02ac, 0x027b, 0x02fb, 0x039c,
+ 0x03e2, 0x03b2, 0x0344, 0x02e2, 0x0297, 0x0241,
+ 0x0201, 0x0235, 0x02e3, 0x0395, 0x03c1, 0x0315,
+ 0x01c3, 0x00ba, 0x00e4, 0x01fd, 0x0327, 0x0421,
+ 0x04d5, 0x04d6, 0x0439, 0x03a7, 0x033f, 0x0240,
+ 0x0066, 0xfeaa, 0xfde6, 0xfe3f, 0xff72, 0x006f,
+ 0x0035, 0xff08, 0xfdb6, 0xfcd6, 0xfc4a, 0xfb6a,
+ 0xfab8, 0xfaf7, 0xfb31, 0xfab2, 0xfa0d, 0xf98e,
+ 0xf950, 0xf936, 0xf8eb, 0xf8ff, 0xf9ad, 0xfa06,
+ 0xfa02, 0xfa82, 0xfb99, 0xfcd5, 0xfe23, 0xff73,
+ 0x0051, 0x00b1, 0x0146, 0x0246, 0x0340, 0x03b2,
+ 0x0325, 0x01f4, 0x00ea, 0x0018, 0xffa8, 0xffbf,
+ 0xffdf, 0x0022, 0x00b3, 0x012e, 0x01be, 0x0208,
+ 0x015f, 0x00a7, 0x0096, 0x00e5, 0x018a, 0x01c6,
+ 0x011a, 0x0060, 0xffa6, 0xfeb2, 0xfe1f, 0xfd87,
+ 0xfc63, 0xfb7d, 0xfb2c, 0xfaf1, 0xfa9b, 0xfa64,
+ 0xfab5, 0xfb75, 0xfc1c, 0xfc87, 0xfcc1, 0xfce3,
+ 0xfd26, 0xfd96, 0xfe13, 0xfe2c, 0xfd7e, 0xfc88,
+ 0xfba7, 0xfa93, 0xf9bf, 0xf9d9, 0xfa9f, 0xfb50,
+ 0xfb2e, 0xfa3b, 0xf93d, 0xf83f, 0xf709, 0xf65c,
+ 0xf6c8, 0xf7c2, 0xf85d, 0xf850, 0xf89d, 0xfa13,
+ 0xfba6, 0xfc36, 0xfc22, 0xfbe5, 0xfb6b, 0xfabc,
+ 0xfa1f, 0xf9f7, 0xfa5e, 0xfb0e, 0xfbe1, 0xfca8,
+ 0xfcef, 0xfcc8, 0xfcbc, 0xfd18, 0xfdf9, 0xff39,
+ 0x0059, 0x0112, 0x014f, 0x0143, 0x01ca, 0x0382,
+ 0x05ca, 0x076e, 0x07d5, 0x0730, 0x0647, 0x0620,
+ 0x071f, 0x0890, 0x09c9, 0x0a8a, 0x0a55, 0x093e,
+ 0x0802, 0x06a7, 0x0583, 0x0572, 0x05cd, 0x0576,
+ 0x04b5, 0x0410, 0x03dd, 0x0433, 0x0496, 0x04dc,
+ 0x04e9, 0x044c, 0x038c, 0x033f, 0x0307, 0x0324,
+ 0x040c, 0x051e, 0x05c4, 0x05f4, 0x060c, 0x0697,
+ 0x0730, 0x0727, 0x06ab, 0x05d1, 0x0482, 0x0331,
+ 0x026e, 0x02c0, 0x0440, 0x0641, 0x081c, 0x0934,
+ 0x08c8, 0x074a, 0x05ef, 0x0505, 0x0453, 0x03bd,
+ 0x030f, 0x024d, 0x01c5, 0x01eb, 0x033b, 0x052e,
+ 0x061a, 0x0541, 0x03b3, 0x02a9, 0x0225, 0x0164,
+ 0x002f, 0xff3a, 0xff45, 0x0055, 0x01d4, 0x02fa,
+ 0x034b, 0x02c1, 0x0175, 0xff94, 0xfd8f, 0xfc06,
+ 0xfb56, 0xfb41, 0xfb44, 0xfb26, 0xfafe, 0xfaff,
+ 0xfb42, 0xfba7, 0xfbef, 0xfbd2, 0xfb5c, 0xfb02,
+ 0xfadc, 0xfac2, 0xfb11, 0xfbd7, 0xfc7b, 0xfcbc,
+ 0xfcb6, 0xfca2, 0xfceb, 0xfdc0, 0xfeea, 0xffce,
+ 0xfff3, 0x0017, 0x0106, 0x01f6, 0x023f, 0x029e,
+ 0x03b5, 0x0508, 0x059c, 0x0539, 0x0475, 0x0398,
+ 0x02bf, 0x0241, 0x0242, 0x02da, 0x03f8, 0x04fa,
+ 0x0574, 0x0597, 0x05d4, 0x0637, 0x05fc, 0x0517,
+ 0x04ba, 0x050b, 0x0529, 0x04c7, 0x03e4, 0x0307,
+ 0x02e9, 0x0310, 0x02d0, 0x028b, 0x028f, 0x0295,
+ 0x024f, 0x01f1, 0x01f8, 0x0243, 0x025d, 0x0268,
+ 0x02a4, 0x02ee, 0x0322, 0x0386, 0x048e, 0x05f4,
+ 0x06bb, 0x0646, 0x04d4, 0x0316, 0x0180, 0x001c,
+ 0xff2a, 0xfefe, 0xff54, 0xff80, 0xff2c, 0xfebc,
+ 0xfeb1, 0xfee1, 0xff2b, 0xff79, 0xff28, 0xfe6c,
+ 0xfe1d, 0xfddf, 0xfd4e, 0xfce9, 0xfcb7, 0xfc8a,
+ 0xfc80, 0xfc5d, 0xfc06, 0xfb9b, 0xfae4, 0xf9e3,
+ 0xf91a, 0xf932, 0xfa83, 0xfc52, 0xfd7d, 0xfddb,
+ 0xfdc5, 0xfd63, 0xfd0b, 0xfd2e, 0xfdf7, 0xff47,
+ 0x00a4, 0x0198, 0x0269, 0x036a, 0x041a, 0x042c,
+ 0x044c, 0x04c3, 0x0507, 0x04a9, 0x0394, 0x023e,
+ 0x0171, 0x016b, 0x01dc, 0x0251, 0x0270, 0x0276,
+ 0x028e, 0x0241, 0x0188, 0x00ee, 0x008f, 0x0029,
+ 0xffaa, 0xff73, 0x000a, 0x0125, 0x01ef, 0x0240,
+ 0x027c, 0x02aa, 0x025a, 0x015e, 0x004b, 0xff83,
+ 0xfebc, 0xfe2b, 0xfe6f, 0xff7c, 0x00a4, 0x013a,
+ 0x0125, 0x00f3, 0x011a, 0x01bc, 0x02aa, 0x0301,
+ 0x023d, 0x011f, 0x0061, 0x0001, 0x0010, 0x00d2,
+ 0x0231, 0x033b, 0x02f2, 0x01db, 0x011f, 0x009f,
+ 0xffcb, 0xff33, 0xffa9, 0x00f4, 0x0233, 0x02d2,
+ 0x02df, 0x029b, 0x01ff, 0x0103, 0x0035, 0xffe4,
+ 0xff69, 0xfe8a, 0xfe06, 0xfe2f, 0xfeb8, 0xff62,
+ 0xffd6, 0xffeb, 0xffdb, 0xffd2, 0xffd8, 0xffe1,
+ 0xffd5, 0xffb7, 0xff6c, 0xfed3, 0xfe25, 0xfdb6,
+ 0xfdaf, 0xfde0, 0xfdb4, 0xfcca, 0xfb6c, 0xfa79,
+ 0xfaab, 0xfb87, 0xfc2e, 0xfc9c, 0xfcd2, 0xfce3,
+ 0xfd77, 0xfe3e, 0xfe35, 0xfdca, 0xfddf, 0xfe12,
+ 0xfdb2, 0xfd1b, 0xfd55, 0xfe88, 0xff79, 0xff45,
+ 0xfe8b, 0xfe49, 0xfea0, 0xfee9, 0xfeb1, 0xfe42,
+ 0xfe0a, 0xfe21, 0xfe60, 0xfe9b, 0xfef4, 0xff9e,
+ 0x0081, 0x0146, 0x0198, 0x0186, 0x0162, 0x0102,
+ 0x0013, 0xfef9, 0xfe68, 0xfea7, 0xff35, 0xff8a,
+ 0x001c, 0x017a, 0x0331, 0x04b1, 0x0590, 0x054c,
+ 0x03f9, 0x0244, 0x0112, 0x011d, 0x01ce, 0x01bf,
+ 0x00e2, 0x006d, 0x00e4, 0x016c, 0x0142, 0x00e0,
+ 0x00f9, 0x0177, 0x01f7, 0x01fb, 0x0164, 0x00e1,
+ 0x00b9, 0x0074, 0xffec, 0xff64, 0xff3e, 0xff81,
+ 0xff66, 0xfef1, 0xff55, 0x00b6, 0x0200, 0x0276,
+ 0x020c, 0x0185, 0x0192, 0x015c, 0x001f, 0xff00,
+ 0xff50, 0x00cc, 0x0258, 0x0318, 0x0300, 0x02b1,
+ 0x0288, 0x0246, 0x01ff, 0x0266, 0x03ab, 0x0522,
+ 0x05fd, 0x05d7, 0x0522, 0x04d5, 0x04f8, 0x04a9,
+ 0x03d2, 0x0322, 0x02ce, 0x02c4, 0x033d, 0x045d,
+ 0x058f, 0x05b6, 0x047d, 0x02b9, 0x00ee, 0xfef6,
+ 0xfd6c, 0xfd36, 0xfde8, 0xfe3b, 0xfd98, 0xfc9c,
+ 0xfc62, 0xfd42, 0xfe9c, 0xffb4, 0x0018, 0xfff0,
+ 0xff8b, 0xfe8b, 0xfcfc, 0xfc20, 0xfc56, 0xfcbd,
+ 0xfd31, 0xfdfb, 0xfef3, 0x002d, 0x0160, 0x0157,
+ 0xffec, 0xfe9f, 0xfe63, 0xfeda, 0xff90, 0x0025,
+ 0x0050, 0x003f, 0x0001, 0xff6d, 0xfeff, 0xff0f,
+ 0xff5a, 0x0005, 0x0119, 0x01fc, 0x0284, 0x02d9,
+ 0x0324, 0x03b1, 0x040d, 0x035d, 0x01c5, 0x0004,
+ 0xfec6, 0xfe35, 0xfde8, 0xfe0d, 0xff0d, 0x0055,
+ 0x0143, 0x017d, 0x00b3, 0xff9e, 0xfee6, 0xfe00,
+ 0xfcea, 0xfc37, 0xfbe0, 0xfbe2, 0xfc5d, 0xfd70,
+ 0xff3a, 0x00c9, 0x00ee, 0xffe8, 0xfe79, 0xfd2b,
+ 0xfcad, 0xfd18, 0xfdc7, 0xfe4c, 0xfe8f, 0xfe91,
+ 0xfe57, 0xfe2d, 0xfe7c, 0xff02, 0xff61, 0xffd6,
+ 0x0071, 0x00ef, 0x0132, 0x013d, 0x015d, 0x01e9,
+ 0x02c9, 0x03b3, 0x0443, 0x041f, 0x0337, 0x0189,
+ 0xff9d, 0xfe9a, 0xfec8, 0xff7b, 0xffda, 0xff16,
+ 0xfde1, 0xfdf9, 0xff5a, 0x00c8, 0x01a1, 0x0148,
+ 0xffaa, 0xfdda, 0xfc9a, 0xfc1d, 0xfcaa, 0xfde4,
+ 0xfebb, 0xfea6, 0xfe17, 0xfdca, 0xfde9, 0xfe01,
+ 0xfdc3, 0xfd52, 0xfcae, 0xfbb6, 0xfb16, 0xfb80,
+ 0xfc57, 0xfd05, 0xfdcb, 0xfe6a, 0xfe9b, 0xfea7,
+ 0xfe53, 0xfd83, 0xfccb, 0xfc29, 0xfba9, 0xfbf9,
+ 0xfcc2, 0xfd14, 0xfcf1, 0xfc80, 0xfb95, 0xfa64,
+ 0xf935, 0xf835, 0xf7df, 0xf8a2, 0xfa2a, 0xfb83,
+ 0xfc25, 0xfc56, 0xfc96, 0xfd54, 0xfe89, 0xff64,
+ 0xff56, 0xfeae, 0xfdc9, 0xfcfd, 0xfca8, 0xfc96,
+ 0xfc92, 0xfce3, 0xfd9d, 0xfec7, 0x0088, 0x0244,
+ 0x0301, 0x02d4, 0x027f, 0x0250, 0x0229, 0x0217,
+ 0x027e, 0x03b2, 0x059c, 0x07bf, 0x0970, 0x0a7a,
+ 0x0b28, 0x0b5f, 0x0ac0, 0x09a5, 0x08a0, 0x07cd,
+ 0x0735, 0x0700, 0x0758, 0x07f5, 0x07f7, 0x0726,
+ 0x06a0, 0x073c, 0x086d, 0x0905, 0x0842, 0x0690,
+ 0x054c, 0x0540, 0x0609, 0x071a, 0x0825, 0x0892,
+ 0x0802, 0x071a, 0x068a, 0x062d, 0x05c5, 0x0557,
+ 0x0519, 0x0590, 0x06bb, 0x07ce, 0x0858, 0x083c,
+ 0x0763, 0x0635, 0x050d, 0x03a7, 0x0223, 0x0119,
+ 0x00c0, 0x00e0, 0x014b, 0x0208, 0x02f3, 0x0379,
+ 0x0341, 0x0283, 0x01b3, 0x0127, 0x0096, 0xff76,
+ 0xfe22, 0xfd96, 0xfe26, 0xff32, 0xffdb, 0x0005,
+ 0x0061, 0x0124, 0x01aa, 0x015b, 0x007e, 0xffde,
+ 0xff86, 0xfecc, 0xfddb, 0xfd71, 0xfd95, 0xfdd2,
+ 0xfdd8, 0xfd9a, 0xfd30, 0xfc76, 0xfb7d, 0xfb04,
+ 0xfb50, 0xfba7, 0xfb60, 0xfa80, 0xf9bd, 0xfa26,
+ 0xfbda, 0xfdca, 0xfeee, 0xfee1, 0xfdc0, 0xfc4d,
+ 0xfb79, 0xfbb4, 0xfd19, 0xff34, 0x00b0, 0x00d9,
+ 0x009b, 0x0107, 0x0206, 0x02db, 0x030e, 0x02d3,
+ 0x0247, 0x0136, 0x000b, 0xff66, 0xff54, 0xffee,
+ 0x0101, 0x01e6, 0x02bd, 0x03b6, 0x041e, 0x03e1,
+ 0x03b1, 0x0396, 0x034d, 0x02db, 0x026d, 0x027b,
+ 0x0322, 0x03d6, 0x0462, 0x0535, 0x063c, 0x0687,
+ 0x05b6, 0x04aa, 0x0417, 0x0405, 0x0475, 0x050e,
+ 0x053b, 0x04db, 0x03bb, 0x020f, 0x0125, 0x019a,
+ 0x0288, 0x0340, 0x03c8, 0x041c, 0x041d, 0x03c4,
+ 0x0323, 0x0256, 0x019f, 0x0154, 0x0149, 0x010e,
+ 0x0089, 0xffa7, 0xfe88, 0xfdb6, 0xfd3f, 0xfce8,
+ 0xfcc7, 0xfc97, 0xfc40, 0xfc63, 0xfce1, 0xfcdf,
+ 0xfc59, 0xfbfd, 0xfc19, 0xfc33, 0xfbab, 0xfb03,
+ 0xfb26, 0xfbc1, 0xfc48, 0xfcfe, 0xfe02, 0xff27,
+ 0x0066, 0x0171, 0x01cc, 0x0168, 0x009b, 0xffcc,
+ 0xff2b, 0xfece, 0xff0b, 0x0026, 0x019d, 0x028a,
+ 0x02e8, 0x0391, 0x04b0, 0x0570, 0x055b, 0x04d4,
+ 0x0444, 0x03dd, 0x03f6, 0x04fa, 0x06ca, 0x0872,
+ 0x08db, 0x07bb, 0x05e9, 0x048a, 0x03b8, 0x02f7,
+ 0x02c0, 0x037a, 0x0405, 0x0350, 0x01eb, 0x00e4,
+ 0x0044, 0xff6a, 0xfe6d, 0xfe11, 0xfe49, 0xfe6a,
+ 0xfe61, 0xfe8f, 0xff63, 0x00ef, 0x027f, 0x037e,
+ 0x040e, 0x044f, 0x0469, 0x044d, 0x0363, 0x0214,
+ 0x01be, 0x024f, 0x02b9, 0x02f7, 0x036c, 0x03c0,
+ 0x0364, 0x026f, 0x018c, 0x0105, 0x007b, 0xffa6,
+ 0xfea7, 0xfe12, 0xfe80, 0xff89, 0x004c, 0x00ba,
+ 0x00f0, 0x00ca, 0x00a1, 0x010c, 0x01e9, 0x0296,
+ 0x02d3, 0x02f0, 0x02ff, 0x02cb, 0x026c, 0x01ca,
+ 0x00bd, 0xffea, 0xffb6, 0xff7a, 0xfec4, 0xfdba,
+ 0xfc9b, 0xfc07, 0xfc37, 0xfc6f, 0xfc5c, 0xfc4a,
+ 0xfc37, 0xfc1d, 0xfc2a, 0xfc43, 0xfc2f, 0xfbd2,
+ 0xfb52, 0xfb55, 0xfc39, 0xfd64, 0xfe31, 0xfe9b,
+ 0xfeba, 0xfe8f, 0xfe54, 0xfe95, 0xff8f, 0x00d5,
+ 0x01f1, 0x02a9, 0x02bc, 0x0230, 0x0144, 0x0039,
+ 0xffc8, 0x0087, 0x01f8, 0x0354, 0x041b, 0x03e2,
+ 0x02ec, 0x01d6, 0x00c5, 0xffed, 0xffc0, 0x007d,
+ 0x020c, 0x03bd, 0x04cf, 0x0538, 0x0545, 0x055a,
+ 0x05c4, 0x065f, 0x0723, 0x0812, 0x0876, 0x07e4,
+ 0x06e9, 0x0615, 0x05a4, 0x0550, 0x0474, 0x0349,
+ 0x028f, 0x0235, 0x01cc, 0x013f, 0x00db, 0x00fe,
+ 0x014f, 0x0169, 0x01f8, 0x0331, 0x0404, 0x03ce,
+ 0x0308, 0x0266, 0x01e5, 0x00ed, 0xffc6, 0xff3e,
+ 0xff12, 0xfeff, 0xff73, 0x0003, 0x001a, 0x0028,
+ 0x007f, 0x00b4, 0x005b, 0xff9e, 0xff21, 0xfee3,
+ 0xfe70, 0xfe39, 0xfe90, 0xfedc, 0xff14, 0xffca,
+ 0x012a, 0x02ee, 0x0400, 0x0362, 0x01ce, 0x007e,
+ 0xffd3, 0x0034, 0x01d4, 0x03dd, 0x058e, 0x06e4,
+ 0x07cd, 0x07f4, 0x0732, 0x05e6, 0x04f9, 0x04bd,
+ 0x044c, 0x0327, 0x0210, 0x016f, 0x00c3, 0xfffe,
+ 0xff88, 0xff30, 0xfe85, 0xfdf6, 0xfe69, 0xff82,
+ 0xffc0, 0xfee3, 0xfe5e, 0xfeb2, 0xfeda, 0xfe6c,
+ 0xfde7, 0xfd4d, 0xfc5c, 0xfb7d, 0xfb4b, 0xfb89,
+ 0xfb8c, 0xfb50, 0xfb47, 0xfb92, 0xfc20, 0xfca9,
+ 0xfca9, 0xfc33, 0xfbb6, 0xfb28, 0xfac9, 0xfb53,
+ 0xfcaa, 0xfe21, 0xff4d, 0xffd3, 0xffb1, 0xff7f,
+ 0xffbf, 0x002f, 0x0026, 0xff91, 0xfef1, 0xfe62,
+ 0xfddd, 0xfd97, 0xfd8d, 0xfdd4, 0xfe5d, 0xfe91,
+ 0xfe96, 0xff44, 0x005e, 0x0134, 0x01dd, 0x028e,
+ 0x0302, 0x0303, 0x02e3, 0x030d, 0x033a, 0x02fa,
+ 0x0252, 0x017a, 0x00ff, 0x014e, 0x01d9, 0x01fe,
+ 0x01c9, 0x0189, 0x0161, 0x0107, 0x007f, 0x0045,
+ 0xffeb, 0xfedf, 0xfde9, 0xfd92, 0xfd76, 0xfd5e,
+ 0xfd02, 0xfc7a, 0xfca7, 0xfd85, 0xfe23, 0xfe42,
+ 0xfe46, 0xfe99, 0xff51, 0x0032, 0x014b, 0x0286,
+ 0x0354, 0x03aa, 0x03e2, 0x03f9, 0x040e, 0x0438,
+ 0x0439, 0x0428, 0x041d, 0x03cd, 0x0363, 0x033a,
+ 0x02f2, 0x0255, 0x01ec, 0x01d0, 0x015f, 0x0081,
+ 0xffca, 0xff92, 0xffc2, 0x001d, 0x0067, 0x005a,
+ 0xffc0, 0xfefc, 0xfef5, 0xffd1, 0x00d2, 0x0162,
+ 0x016c, 0x0178, 0x01f7, 0x0244, 0x01d1, 0x016d,
+ 0x01bf, 0x0245, 0x0267, 0x0225, 0x01de, 0x01c7,
+ 0x018c, 0x00e5, 0x0038, 0x0006, 0x0014, 0xffce,
+ 0xff4f, 0xff17, 0xff39, 0xffb1, 0x0051, 0x0081,
+ 0x0030, 0xffcc, 0xff5c, 0xfef6, 0xfef6, 0xff6f,
+ 0x0002, 0x0005, 0xff4a, 0xfe64, 0xfd64, 0xfc1c,
+ 0xfb49, 0xfb89, 0xfc96, 0xfde5, 0xfec5, 0xfeed,
+ 0xfec9, 0xfe9a, 0xfe60, 0xfe59, 0xfed0, 0xffbe,
+ 0x00b9, 0x0166, 0x0196, 0x0109, 0x001b, 0xffa4,
+ 0xffa1, 0xfffd, 0x0143, 0x0313, 0x044f, 0x04c1,
+ 0x04dc, 0x04fb, 0x04f3, 0x0445, 0x0361, 0x0316,
+ 0x02f0, 0x028c, 0x02ba, 0x039a, 0x03e1, 0x02d0,
+ 0x012d, 0x003a, 0x0082, 0x0188, 0x028f, 0x0363,
+ 0x03e8, 0x03bb, 0x02db, 0x01c3, 0x00dc, 0x0074,
+ 0x00b7, 0x0188, 0x02a0, 0x0383, 0x0385, 0x028c,
+ 0x0140, 0x0050, 0xfff4, 0x0003, 0x0039, 0x0023,
+ 0xff81, 0xfeb7, 0xfe26, 0xfdbc, 0xfd6d, 0xfd0c,
+ 0xfc94, 0xfc8e, 0xfcc7, 0xfc86, 0xfc31, 0xfc25,
+ 0xfb93, 0xfa4a, 0xf907, 0xf873, 0xf8e9, 0xf9d4,
+ 0xfa2a, 0xfa36, 0xfad1, 0xfb71, 0xfae1, 0xf984,
+ 0xf926, 0xfa0f, 0xfa7d, 0xf9e8, 0xf9ac, 0xfa2b,
+ 0xfa6b, 0xfa1d, 0xf9f4, 0xfa62, 0xfaf2, 0xfb31,
+ 0xfb56, 0xfbad, 0xfc24, 0xfc52, 0xfbde, 0xfb21,
+ 0xfaa6, 0xfa8d, 0xfb10, 0xfc0b, 0xfc5e, 0xfb7f,
+ 0xfa48, 0xf987, 0xf93c, 0xf931, 0xf992, 0xfacc,
+ 0xfcbb, 0xfe5a, 0xfee1, 0xfea8, 0xfe33, 0xfd7e,
+ 0xfcf6, 0xfd45, 0xfe3c, 0xff6a, 0x008c, 0x013c,
+ 0x01a3, 0x0248, 0x030b, 0x038e, 0x03a8, 0x0348,
+ 0x02d3, 0x02ca, 0x0375, 0x04be, 0x05db, 0x0639,
+ 0x0629, 0x05ed, 0x057f, 0x04cc, 0x03cc, 0x032d,
+ 0x0397, 0x047b, 0x051c, 0x056f, 0x0580, 0x052f,
+ 0x0499, 0x0486, 0x0583, 0x06f1, 0x081f, 0x08d9,
+ 0x08cf, 0x080f, 0x0721, 0x0656, 0x05e6, 0x05c5,
+ 0x058d, 0x052a, 0x04bf, 0x046c, 0x0446, 0x044a,
+ 0x049d, 0x053e, 0x0598, 0x0559, 0x04bd, 0x0409,
+ 0x0375, 0x0336, 0x0379, 0x03ec, 0x03b4, 0x02de,
+ 0x0240, 0x01a5, 0x007c, 0xff14, 0xfdfe, 0xfde2,
+ 0xfef9, 0x0060, 0x0131, 0x013f, 0x00a2, 0xff92,
+ 0xfe5c, 0xfd78, 0xfd57, 0xfdd5, 0xfe9a, 0xff92,
+ 0x00a2, 0x01c0, 0x02b6, 0x031f, 0x0329, 0x032c,
+ 0x02e7, 0x0252, 0x01d9, 0x019c, 0x0192, 0x01c8,
+ 0x0248, 0x0318, 0x0408, 0x04ae, 0x04ee, 0x050b,
+ 0x0536, 0x0587, 0x05e8, 0x05f0, 0x0520, 0x0382,
+ 0x01ef, 0x0157, 0x01bb, 0x025d, 0x02b3, 0x029b,
+ 0x0215, 0x015e, 0x00c5, 0x0027, 0xff48, 0xfe82,
+ 0xfe61, 0xff1d, 0x0085, 0x01ae, 0x01c5, 0x0186,
+ 0x01e2, 0x0261, 0x026a, 0x01fa, 0x0100, 0xffcd,
+ 0xfedd, 0xfe41, 0xfe30, 0xfee8, 0x0011, 0x0107,
+ 0x0153, 0x0131, 0x010c, 0x00a7, 0xfffd, 0xff93,
+ 0xff5d, 0xff16, 0xfeea, 0xff03, 0xff78, 0x0030,
+ 0x00dd, 0x0177, 0x021f, 0x02d8, 0x03aa, 0x0490,
+ 0x0577, 0x0603, 0x05ab, 0x0484, 0x031a, 0x0208,
+ 0x01e2, 0x0258, 0x0287, 0x0252, 0x021e, 0x0245,
+ 0x02e1, 0x036a, 0x036b, 0x0324, 0x0301, 0x0304,
+ 0x028e, 0x013a, 0xff8b, 0xfde9, 0xfc9b, 0xfc2d,
+ 0xfc9d, 0xfd2e, 0xfd27, 0xfc88, 0xfc52, 0xfd17,
+ 0xfe2d, 0xfee8, 0xfed8, 0xfdc3, 0xfc00, 0xfa0e,
+ 0xf8d4, 0xf919, 0xfa11, 0xfab6, 0xfb42, 0xfbdc,
+ 0xfc4c, 0xfca5, 0xfd0f, 0xfd7c, 0xfd8d, 0xfd30,
+ 0xfcd6, 0xfc84, 0xfc4e, 0xfcb5, 0xfd9c, 0xfec4,
+ 0x0032, 0x0155, 0x01bc, 0x01b4, 0x015c, 0x0098,
+ 0xffbe, 0xffa3, 0x00a2, 0x01f4, 0x02cf, 0x0317,
+ 0x02e3, 0x029e, 0x024f, 0x013c, 0xffc6, 0xff4f,
+ 0x0023, 0x0196, 0x0329, 0x049f, 0x05ad, 0x05f0,
+ 0x054c, 0x041e, 0x0339, 0x037d, 0x04d8, 0x0685,
+ 0x07f0, 0x0885, 0x07fc, 0x06eb, 0x0630, 0x066e,
+ 0x078e, 0x08ac, 0x096d, 0x0a0b, 0x0a4c, 0x0a10,
+ 0x099e, 0x0917, 0x089b, 0x082e, 0x07a5, 0x0721,
+ 0x06c5, 0x064a, 0x059a, 0x0509, 0x04d9, 0x04f0,
+ 0x050e, 0x04f3, 0x0484, 0x03f2, 0x0374, 0x0329,
+ 0x033f, 0x03b6, 0x045e, 0x0516, 0x05a8, 0x05d1,
+ 0x0562, 0x048e, 0x0424, 0x0485, 0x0511, 0x056a,
+ 0x05af, 0x05a3, 0x0523, 0x04a5, 0x04ad, 0x0543,
+ 0x05d6, 0x05cd, 0x053f, 0x0494, 0x03f1, 0x0352,
+ 0x030b, 0x0371, 0x040f, 0x0442, 0x0439, 0x046f,
+ 0x04b5, 0x045b, 0x0326, 0x01b0, 0x0092, 0xffce,
+ 0xff1a, 0xfe59, 0xfe04, 0xfe7f, 0xff6a, 0x0067,
+ 0x012b, 0x00e3, 0xff65, 0xfd80, 0xfbfb, 0xfb52,
+ 0xfb86, 0xfc4d, 0xfd8a, 0xfeaa, 0xfefb, 0xfe92,
+ 0xfdce, 0xfd20, 0xfcf4, 0xfd18, 0xfd75, 0xfe56,
+ 0xff5a, 0xff97, 0xfec4, 0xfd8d, 0xfcaf, 0xfc34,
+ 0xfbfb, 0xfc1d, 0xfc5c, 0xfc6d, 0xfc5f, 0xfc9a,
+ 0xfda5, 0xff36, 0x006d, 0x0142, 0x01e9, 0x0205,
+ 0x0192, 0x013c, 0x016e, 0x01b5, 0x016a, 0x00bc,
+ 0x0065, 0x00cb, 0x01b1, 0x027d, 0x0315, 0x038e,
+ 0x035c, 0x028a, 0x0202, 0x01e0, 0x01ac, 0x014d,
+ 0x00b9, 0x000e, 0xff7c, 0xff03, 0xfec9, 0xff11,
+ 0x000e, 0x0186, 0x02a8, 0x0330, 0x038c, 0x03aa,
+ 0x0363, 0x0306, 0x02ae, 0x023a, 0x01aa, 0x012e,
+ 0x011a, 0x0178, 0x01ef, 0x0203, 0x0176, 0x00b0,
+ 0x003b, 0x0047, 0x00c4, 0x0149, 0x017f, 0x01b2,
+ 0x01f2, 0x01f6, 0x0202, 0x024b, 0x026c, 0x0224,
+ 0x019b, 0x00fd, 0x0072, 0x002c, 0x003a, 0x0071,
+ 0x0096, 0x006a, 0xffeb, 0xff91, 0xffa3, 0xffe7,
+ 0xfffd, 0xff6b, 0xfe66, 0xfe23, 0xfeef, 0xffdb,
+ 0x0084, 0x0110, 0x015e, 0x0159, 0x011a, 0x00e6,
+ 0x010d, 0x0136, 0x0097, 0xff2e, 0xfdef, 0xfda8,
+ 0xfe54, 0xff83, 0x00fe, 0x02fa, 0x054c, 0x06fa,
+ 0x0764, 0x0715, 0x06b0, 0x0648, 0x05a2, 0x04b6,
+ 0x03f3, 0x0372, 0x02c1, 0x01e0, 0x0125, 0x00d7,
+ 0x0131, 0x01c6, 0x01dc, 0x0191, 0x016f, 0x01b7,
+ 0x020f, 0x01de, 0x018f, 0x0204, 0x02e0, 0x0368,
+ 0x03de, 0x04c6, 0x05cf, 0x0612, 0x057f, 0x0524,
+ 0x059c, 0x0658, 0x0696, 0x063e, 0x05cf, 0x0598,
+ 0x05a3, 0x0643, 0x078c, 0x089e, 0x0867, 0x06ec,
+ 0x0577, 0x0515, 0x0592, 0x0651, 0x0708, 0x07ad,
+ 0x080c, 0x07bc, 0x06eb, 0x063e, 0x05a0, 0x04d5,
+ 0x040b, 0x0320, 0x0229, 0x01bd, 0x01ee, 0x0223,
+ 0x01e1, 0x0144, 0x00c4, 0x0066, 0xffc6, 0xfef3,
+ 0xfe53, 0xfdf4, 0xfd8b, 0xfd0f, 0xfccc, 0xfcc1,
+ 0xfcd6, 0xfd11, 0xfcfa, 0xfc6a, 0xfc07, 0xfbe9,
+ 0xfbbd, 0xfb8e, 0xfb34, 0xfa8d, 0xf9fe, 0xf9d6,
+ 0xf9d6, 0xf9a7, 0xf97f, 0xf9be, 0xfa52, 0xfafa,
+ 0xfb5d, 0xfb38, 0xfb2b, 0xfbbe, 0xfc79, 0xfcf3,
+ 0xfcf1, 0xfc4c, 0xfb95, 0xfb42, 0xfb34, 0xfb9a,
+ 0xfc7f, 0xfd50, 0xfda6, 0xfdac, 0xfdc7, 0xfe0f,
+ 0xfe5c, 0xfea3, 0xfebc, 0xfe7c, 0xfe2f, 0xfe35,
+ 0xfe64, 0xfe3c, 0xfdc0, 0xfdc6, 0xfe7d, 0xfee1,
+ 0xfe7e, 0xfde7, 0xfd97, 0xfd74, 0xfd1d, 0xfcc1,
+ 0xfcd6, 0xfce2, 0xfc49, 0xfb9d, 0xfbac, 0xfc5a,
+ 0xfd23, 0xfe24, 0xffa3, 0x00d7, 0x00e0, 0x0073,
+ 0x0084, 0x00a7, 0x0049, 0xffda, 0xffdb, 0x001c,
+ 0x006c, 0x00aa, 0x007a, 0xfff5, 0xff78, 0xff21,
+ 0xff74, 0x007d, 0x00fc, 0x009b, 0x006e, 0x00d3,
+ 0x0166, 0x01e8, 0x0227, 0x0247, 0x028b, 0x02f8,
+ 0x039a, 0x0454, 0x04ae, 0x0473, 0x0455, 0x0522,
+ 0x0633, 0x0669, 0x0610, 0x05b4, 0x0506, 0x0426,
+ 0x03cd, 0x0440, 0x0527, 0x05f8, 0x0665, 0x0657,
+ 0x05da, 0x055b, 0x054d, 0x05b6, 0x066b, 0x072f,
+ 0x07f3, 0x08b1, 0x08fc, 0x089a, 0x07d9, 0x0715,
+ 0x06a0, 0x0668, 0x05f0, 0x055f, 0x0530, 0x0518,
+ 0x04cf, 0x04a7, 0x04c6, 0x04df, 0x04e3, 0x0522,
+ 0x0593, 0x05a0, 0x04e4, 0x0391, 0x023b, 0x0141,
+ 0x009d, 0x006c, 0x00d5, 0x0159, 0x0153, 0x00be,
+ 0x0008, 0xffc2, 0x0043, 0x0132, 0x01b4, 0x0166,
+ 0x00c8, 0x0057, 0x0030, 0x007d, 0x0112, 0x0173,
+ 0x0184, 0x0147, 0x00fd, 0x015f, 0x0244, 0x02c8,
+ 0x02b7, 0x0229, 0x0112, 0xffab, 0xfe63, 0xfe09,
+ 0xfee9, 0xffe1, 0x0012, 0x0011, 0x006f, 0x0126,
+ 0x0205, 0x029e, 0x0287, 0x01c2, 0x00be, 0x0029,
+ 0x004f, 0x0099, 0x0058, 0xffda, 0xffcf, 0x0012,
+ 0xfffe, 0xff79, 0xff1a, 0xff57, 0xffc0, 0xffa7,
+ 0xff54, 0xff28, 0xfeac, 0xfdb3, 0xfcc8, 0xfc3d,
+ 0xfbf0, 0xfbaa, 0xfb9e, 0xfc1f, 0xfce5, 0xfd99,
+ 0xfe95, 0x0028, 0x01c3, 0x025e, 0x01ba, 0x00ad,
+ 0xffcc, 0xff0b, 0xfe9d, 0xfec1, 0xff5e, 0xffe5,
+ 0xffac, 0xff37, 0xff9c, 0x0090, 0x010c, 0x00e8,
+ 0x0088, 0x0015, 0xff3e, 0xfe02, 0xfd3b, 0xfd42,
+ 0xfd6f, 0xfd66, 0xfd5b, 0xfd81, 0xfddc, 0xfe21,
+ 0xfe13, 0xfdde, 0xfdd8, 0xfe27, 0xfe7f, 0xfe95,
+ 0xfea4, 0xfec7, 0xfecd, 0xfef4, 0xff7d, 0x0035,
+ 0x00ab, 0x0047, 0xff04, 0xfda1, 0xfcae, 0xfc65,
+ 0xfd03, 0xfe32, 0xff07, 0xfefd, 0xfe62, 0xfdda,
+ 0xfdd2, 0xfe3c, 0xfea9, 0xfedf, 0xff06, 0xff07,
+ 0xfeb2, 0xfe48, 0xfe41, 0xfedc, 0xffbe, 0x0051,
+ 0x00b7, 0x0110, 0x00f0, 0x0079, 0x001a, 0xffc2,
+ 0xff87, 0xff9b, 0x0013, 0x0124, 0x0275, 0x0370,
+ 0x03f6, 0x03cd, 0x031d, 0x029e, 0x029b, 0x0330,
+ 0x041e, 0x0478, 0x0463, 0x04b6, 0x0546, 0x05a4,
+ 0x05a0, 0x0538, 0x050c, 0x056f, 0x0626, 0x073e,
+ 0x086f, 0x0915, 0x092a, 0x091c, 0x0950, 0x0996,
+ 0x0955, 0x08c2, 0x0847, 0x07b6, 0x074d, 0x077f,
+ 0x0808, 0x0875, 0x087c, 0x0824, 0x07e1, 0x07f5,
+ 0x084b, 0x08a2, 0x0882, 0x07de, 0x0723, 0x068e,
+ 0x0655, 0x0677, 0x066e, 0x0608, 0x05a0, 0x0568,
+ 0x0546, 0x0536, 0x054a, 0x0580, 0x05ba, 0x05d8,
+ 0x05bf, 0x0574, 0x0524, 0x04fe, 0x0510, 0x052e,
+ 0x051f, 0x04bd, 0x03fc, 0x0312, 0x025e, 0x0239,
+ 0x02d0, 0x0373, 0x030d, 0x01d1, 0x0095, 0xff71,
+ 0xfe83, 0xfe37, 0xfeaf, 0xffd4, 0x00e7, 0x0115,
+ 0x00c3, 0x0076, 0xffdb, 0xfeb7, 0xfd6e, 0xfca8,
+ 0xfc57, 0xfbb3, 0xfafc, 0xfafb, 0xfb38, 0xfb2a,
+ 0xfb28, 0xfb7f, 0xfc2e, 0xfce4, 0xfd59, 0xfdbc,
+ 0xfdd6, 0xfd29, 0xfbf1, 0xfa9c, 0xf95b, 0xf860,
+ 0xf7d3, 0xf7df, 0xf83a, 0xf830, 0xf7b3, 0xf736,
+ 0xf70a, 0xf73b, 0xf794, 0xf83b, 0xf960, 0xfa50,
+ 0xfa97, 0xfa94, 0xfa3b, 0xf992, 0xf952, 0xf9e7,
+ 0xfb0b, 0xfc13, 0xfcdf, 0xfe33, 0x0001, 0x0113,
+ 0x00fb, 0x0072, 0x002f, 0x002e, 0xfff7, 0xff8a,
+ 0xff35, 0xff03, 0xff13, 0xff45, 0xff5d, 0xffc5,
+ 0x008c, 0x00fc, 0x00fd, 0x00e2, 0x00bc, 0x00af,
+ 0x00d4, 0x012d, 0x0195, 0x01ae, 0x019f, 0x01d4,
+ 0x01f4, 0x0191, 0x00e5, 0x0062, 0x0053, 0x0086,
+ 0x0099, 0x008e, 0x0071, 0x0045, 0x0024, 0xffcc,
+ 0xff15, 0xfe7d, 0xfe49, 0xfe40, 0xfe36, 0xfe03,
+ 0xfdb1, 0xfda1, 0xfdfa, 0xfe66, 0xfe8b, 0xfe70,
+ 0xfe4d, 0xfe26, 0xfdf2, 0xfdc2, 0xfdbb, 0xfe0c,
+ 0xfea5, 0xff5d, 0x0049, 0x012d, 0x018d, 0x01bd,
+ 0x0263, 0x034f, 0x040f, 0x0499, 0x04fd, 0x052c,
+ 0x04ec, 0x0403, 0x02d7, 0x023b, 0x026b, 0x02fb,
+ 0x0390, 0x0429, 0x04e0, 0x058b, 0x05d9, 0x05ed,
+ 0x05ff, 0x05d4, 0x0589, 0x05d5, 0x06cf, 0x07bc,
+ 0x080a, 0x07b8, 0x0738, 0x06ca, 0x062b, 0x0566,
+ 0x04cb, 0x0461, 0x047a, 0x0580, 0x0705, 0x0873,
+ 0x0975, 0x097e, 0x089b, 0x0792, 0x06a1, 0x05db,
+ 0x0582, 0x051f, 0x044c, 0x03c7, 0x040b, 0x0493,
+ 0x04cf, 0x047a, 0x03da, 0x03a6, 0x03e6, 0x03ff,
+ 0x03d0, 0x03a4, 0x03b3, 0x03f6, 0x0422, 0x041d,
+ 0x0400, 0x03c4, 0x037f, 0x0368, 0x0370, 0x0347,
+ 0x02b5, 0x0221, 0x0236, 0x02d9, 0x0385, 0x03f1,
+ 0x03cd, 0x0344, 0x0329, 0x03a3, 0x042a, 0x047e,
+ 0x04b6, 0x04e3, 0x04e1, 0x04af, 0x0475, 0x03d9,
+ 0x02e8, 0x0292, 0x02c4, 0x02d7, 0x0318, 0x0365,
+ 0x0315, 0x0255, 0x0189, 0x0126, 0x0195, 0x0239,
+ 0x02ae, 0x0344, 0x0395, 0x0349, 0x029b, 0x017b,
+ 0x001b, 0xfebf, 0xfd47, 0xfc55, 0xfc44, 0xfc3c,
+ 0xfbec, 0xfbba, 0xfbe8, 0xfca7, 0xfda0, 0xfe68,
+ 0xff0c, 0xff47, 0xfecd, 0xfdab, 0xfc25, 0xfb52,
+ 0xfbaa, 0xfbfe, 0xfbe2, 0xfbce, 0xfb96, 0xfb7d,
+ 0xfc06, 0xfce1, 0xfdc4, 0xfe74, 0xfe9c, 0xfe55,
+ 0xfdac, 0xfcec, 0xfc91, 0xfc2d, 0xfb94, 0xfb7c,
+ 0xfbdb, 0xfc63, 0xfd06, 0xfd5f, 0xfd82, 0xfd7e,
+ 0xfcaa, 0xfb7e, 0xfb36, 0xfbdf, 0xfce1, 0xfdb7,
+ 0xfe3d, 0xfecb, 0xff2c, 0xfef0, 0xfe49, 0xfd6d,
+ 0xfce1, 0xfd6b, 0xfed9, 0x0076, 0x01bb, 0x020c,
+ 0x0163, 0x000c, 0xfe20, 0xfc6b, 0xfbaa, 0xfb60,
+ 0xfb22, 0xfb5a, 0xfc31, 0xfd32, 0xfe03, 0xfeeb,
+ 0x0008, 0x00cb, 0x00f0, 0x00d4, 0x00e5, 0x0132,
+ 0x010e, 0x0034, 0xffa2, 0xff9c, 0xff6e, 0xff5d,
+ 0xffe4, 0x00a6, 0x015c, 0x01d9, 0x0234, 0x02d2,
+ 0x032a, 0x02ba, 0x027a, 0x02e5, 0x034e, 0x038c,
+ 0x0398, 0x0326, 0x02ad, 0x02cf, 0x0370, 0x0441,
+ 0x0514, 0x05c9, 0x063a, 0x0634, 0x05d1, 0x057a,
+ 0x0568, 0x05a1, 0x0622, 0x06af, 0x06ba, 0x060f,
+ 0x0562, 0x0540, 0x055a, 0x0577, 0x05a0, 0x05e4,
+ 0x0696, 0x076c, 0x077e, 0x0710, 0x06d2, 0x0673,
+ 0x05b7, 0x04ce, 0x03fa, 0x0389, 0x0303, 0x01c8,
+ 0x007a, 0xffd9, 0xffe8, 0x00a4, 0x01cc, 0x02e9,
+ 0x03b5, 0x040d, 0x0464, 0x051c, 0x059a, 0x054f,
+ 0x0432, 0x029c, 0x0194, 0x0199, 0x0215, 0x02a3,
+ 0x0314, 0x034d, 0x03ae, 0x0437, 0x045f, 0x0413,
+ 0x03a6, 0x036a, 0x0370, 0x036c, 0x0343, 0x0325,
+ 0x0314, 0x02e3, 0x0252, 0x0171, 0x00a2, 0xffef,
+ 0xff7e, 0xffc2, 0x0093, 0x019d, 0x02bd, 0x0376,
+ 0x0396, 0x036c, 0x0304, 0x027f, 0x0223, 0x01f3,
+ 0x01f1, 0x01f6, 0x01d8, 0x01e3, 0x0202, 0x01b3,
+ 0x00f6, 0xffcd, 0xfe38, 0xfceb, 0xfc4a, 0xfc27,
+ 0xfcac, 0xfdb6, 0xfe83, 0xfede, 0xfee5, 0xfe26,
+ 0xfc90, 0xfb3f, 0xfb2c, 0xfc15, 0xfd1c, 0xfd88,
+ 0xfd5d, 0xfd81, 0xfe13, 0xfe06, 0xfd89, 0xfdb4,
+ 0xfe5e, 0xff23, 0x002c, 0x010a, 0x0149, 0x014e,
+ 0x015f, 0x0158, 0x0125, 0x00f9, 0x0110, 0x00fe,
+ 0x004c, 0xff70, 0xfed7, 0xfe4d, 0xfda6, 0xfc95,
+ 0xfb0f, 0xf9ff, 0xfa37, 0xfb88, 0xfd1f, 0xfe07,
+ 0xfe06, 0xfdad, 0xfd62, 0xfd67, 0xfdca, 0xfdf4,
+ 0xfd97, 0xfd5b, 0xfd85, 0xfd67, 0xfcca, 0xfc71,
+ 0xfc9f, 0xfc74, 0xfb72, 0xfa1d, 0xf90f, 0xf8b0,
+ 0xf922, 0xfa21, 0xfb74, 0xfcd0, 0xfdcd, 0xfe7d,
+ 0xfefc, 0xff2f, 0xff58, 0xff6a, 0xfed8, 0xfdc2,
+ 0xfcb7, 0xfc1d, 0xfc6a, 0xfd76, 0xfe8e, 0xffa9,
+ 0x00e3, 0x01a1, 0x0168, 0x00a5, 0x0054, 0x0104,
+ 0x0211, 0x02e3, 0x03c0, 0x0466, 0x0412, 0x030d,
+ 0x0217, 0x01a9, 0x022d, 0x035b, 0x0474, 0x0586,
+ 0x06c2, 0x07b7, 0x081a, 0x07ee, 0x076c, 0x070e,
+ 0x06e4, 0x06de, 0x075f, 0x0823, 0x088b, 0x0900,
+ 0x09b9, 0x0a62, 0x0b85, 0x0d19, 0x0dcd, 0x0d81,
+ 0x0d60, 0x0e04, 0x0f1c, 0x0ffc, 0x10a4, 0x1119,
+ 0x104b, 0x0e4d, 0x0cbe, 0x0bf9, 0x0bc2, 0x0c25,
+ 0x0c6a, 0x0c6d, 0x0c64, 0x0bba, 0x0af5, 0x0a81,
+ 0x08f4, 0x069b, 0x0559, 0x0535, 0x05a3, 0x0636,
+ 0x05e5, 0x052d, 0x0570, 0x063b, 0x06d4, 0x076e,
+ 0x07b6, 0x0783, 0x0780, 0x07b4, 0x07c6, 0x0815,
+ 0x0891, 0x0879, 0x07a7, 0x062a, 0x0416, 0x023d,
+ 0x011b, 0x0069, 0x003d, 0x0044, 0xff99, 0xfe9a,
+ 0xfe1c, 0xfdd4, 0xfe02, 0xff75, 0x0123, 0x0155,
+ 0x009f, 0x00b1, 0x015a, 0x015b, 0x00ce, 0x006a,
+ 0x0010, 0xffa1, 0xff4b, 0xff3f, 0xffdb, 0x0096,
+ 0x008b, 0x000a, 0xfeb8, 0xfbb1, 0xf88f, 0xf6ec,
+ 0xf697, 0xf830, 0xfbc5, 0xff72, 0x01f3, 0x02af,
+ 0x01a2, 0xffc9, 0xfd46, 0xfab9, 0xf9c4, 0xf9b9,
+ 0xf95e, 0xf953, 0xf8f7, 0xf6e5, 0xf417, 0xf24d,
+ 0xf1e2, 0xf27b, 0xf441, 0xf733, 0xf9c4, 0xfab1,
+ 0xfaf0, 0xfb4f, 0xfacd, 0xf998, 0xfa05, 0xfc2f,
+ 0xfd38, 0xfca5, 0xfbe2, 0xfa79, 0xf8b3, 0xf80a,
+ 0xf7d9, 0xf756, 0xf6f7, 0xf74c, 0xf926, 0xfb60,
+ 0xfbd3, 0xfb47, 0xfa76, 0xf8d8, 0xf83b, 0xf9b1,
+ 0xfb2b, 0xfbe3, 0xfcec, 0xfe64, 0xff54, 0xff60,
+ 0xffbc, 0x00d7, 0x00e4, 0xff1f, 0xfcfd, 0xfbcb,
+ 0xfbf4, 0xfcd0, 0xfd56, 0xfdf4, 0xfef8, 0xff08,
+ 0xfe40, 0xfe6b, 0xff4f, 0xff6f, 0xfe71, 0xfca5,
+ 0xfaf9, 0xfa8c, 0xfbcc, 0xfe87, 0x00ec, 0x01bd,
+ 0x0324, 0x0584, 0x05c2, 0x0409, 0x02eb, 0x026a,
+ 0x01a4, 0x0098, 0x0002, 0x004a, 0x0019, 0xff0f,
+ 0xfee3, 0x0013, 0x0195, 0x0292, 0x02db, 0x02d1,
+ 0x02cc, 0x0289, 0x009b, 0xfd44, 0xfc22, 0xfd1b,
+ 0xfd0e, 0xfdd2, 0xffc4, 0xfff8, 0x00c7, 0x030e,
+ 0x0350, 0x02dd, 0x0326, 0x02e2, 0x030c, 0x031b,
+ 0x02b3, 0x0378, 0x0315, 0x012e, 0x0149, 0x0199,
+ 0x009a, 0x014d, 0x0395, 0x061d, 0x08e8, 0x0b7a,
+ 0x0e99, 0x1177, 0x1236, 0x135a, 0x1553, 0x1474,
+ 0x12d6, 0x13f9, 0x1417, 0x10cf, 0x0dfe, 0x0cdc,
+ 0x0ac8, 0x0798, 0x056a, 0x0525, 0x04cb, 0x0290,
+ 0x014f, 0x02dd, 0x03d3, 0x0386, 0x03a5, 0x0288,
+ 0x0094, 0x002e, 0xfff1, 0xfeb1, 0xfdd0, 0xfe35,
+ 0xff25, 0xfec6, 0xfe6c, 0x0083, 0x01ba, 0x0026,
+ 0xffed, 0x0183, 0x01b6, 0x012a, 0x0254, 0x0496,
+ 0x0534, 0x0450, 0x04d5, 0x0696, 0x06ea, 0x0588,
+ 0x04d3, 0x060f, 0x066a, 0x04f6, 0x0540, 0x05d1,
+ 0x033b, 0x0102, 0x012e, 0x00a0, 0xfe95, 0xfcc2,
+ 0xfce4, 0xfe60, 0xfed1, 0xff3b, 0xffbc, 0xfdc6,
+ 0xfbda, 0xfb8b, 0xf8eb, 0xf56c, 0xf53d, 0xf5de,
+ 0xf42f, 0xf1c7, 0xf15c, 0xf2e6, 0xf373, 0xf309,
+ 0xf560, 0xf91b, 0xfa35, 0xfb86, 0xff33, 0x00a8,
+ 0x0091, 0x0389, 0x065d, 0x0617, 0x05ea, 0x06d3,
+ 0x078e, 0x0681, 0x032b, 0x0154, 0x00d7, 0xfe7f,
+ 0xfe38, 0x006e, 0xffa8, 0xfdc0, 0xfd50, 0xfd95,
+ 0xfff1, 0x0291, 0x046e, 0x0756, 0x072a, 0x03d7,
+ 0x033f, 0x02b9, 0x001f, 0xff20, 0xfda2, 0xfabb,
+ 0xfb45, 0xff48, 0x0341, 0x056d, 0x05b3, 0x05c6,
+ 0x0617, 0x054c, 0x036b, 0x01a6, 0x011e, 0x0192,
+ 0x01bf, 0x0133, 0x0015, 0xff7e, 0x0002, 0x00c1,
+ 0x0341, 0x0784, 0x089b, 0x06e9, 0x0754, 0x082c,
+ 0x0629, 0x02c8, 0x0017, 0xff2d, 0x0022, 0x01fa,
+ 0x0436, 0x05cc, 0x0623, 0x0753, 0x0a42, 0x0d27,
+ 0x0fa3, 0x119e, 0x1130, 0x0ea5, 0x0cb7, 0x0c35,
+ 0x0d03, 0x0f41, 0x11c3, 0x1409, 0x1681, 0x180d,
+ 0x17b9, 0x16a0, 0x1640, 0x15cf, 0x12c1, 0x0e48,
+ 0x0b9f, 0x09ce, 0x08eb, 0x0b32, 0x0d23, 0x0b60,
+ 0x0930, 0x0976, 0x0b09, 0x0a49, 0x05e7, 0x0298,
+ 0x01f4, 0x006d, 0xffda, 0x0190, 0x003a, 0xfc55,
+ 0xfc5f, 0xffa8, 0x0172, 0x028c, 0x04ea, 0x0514,
+ 0xff79, 0xf5f3, 0xeaeb, 0xdcfc, 0xcad8, 0xb814,
+ 0xa9f4, 0xa106, 0x9c9f, 0x9ec5, 0xa66c, 0xb210,
+ 0xc436, 0xda5e, 0xedf7, 0xfd59, 0x070d, 0x0999,
+ 0x07e5, 0x0305, 0xfa60, 0xf019, 0xe58a, 0xdbeb,
+ 0xd4b5, 0xcea7, 0xca8f, 0xcacf, 0xcd5a, 0xd05a,
+ 0xd4bb, 0xd9c4, 0xdea9, 0xe3b8, 0xe870, 0xecaa,
+ 0xefec, 0xf079, 0xee97, 0xed2e, 0xee0f, 0xef80,
+ 0xeffc, 0xf252, 0xf72f, 0xf9d4, 0xfa98, 0xfddc,
+ 0x00fa, 0x014c, 0x02cc, 0x05e0, 0x074f, 0x087b,
+ 0x0b76, 0x1003, 0x163d, 0x1d0a, 0x2367, 0x29d5,
+ 0x2e68, 0x3046, 0x32a4, 0x33e5, 0x304c, 0x2b88,
+ 0x2720, 0x2056, 0x1bcc, 0x1b1d, 0x1811, 0x1542,
+ 0x1586, 0x1397, 0x130b, 0x1681, 0x1556, 0x1190,
+ 0x1229, 0x12f2, 0x12f8, 0x13c7, 0x12f1, 0x13c1,
+ 0x169f, 0x17c1, 0x1c01, 0x2306, 0x2543, 0x2601,
+ 0x2839, 0x26ab, 0x2237, 0x1fe4, 0x20f9, 0x2386,
+ 0x244b, 0x24f6, 0x2800, 0x2923, 0x2774, 0x2653,
+ 0x22fd, 0x1c99, 0x18d9, 0x187a, 0x182c, 0x1843,
+ 0x19ea, 0x1bd2, 0x1abb, 0x1603, 0x130c, 0x135e,
+ 0x114f, 0x0e2c, 0x0f71, 0x11ef, 0x12d7, 0x1482,
+ 0x149e, 0x1073, 0x0b5d, 0x085b, 0x06c8, 0x060e,
+ 0x07fe, 0x0bec, 0x0c85, 0x0a11, 0x08de, 0x0631,
+ 0x00bd, 0xfdb2, 0xfdb8, 0xfd47, 0xfb34, 0xf98f,
+ 0xfa24, 0xfa1c, 0xf8d3, 0xf903, 0xf759, 0xf3da,
+ 0xf4c6, 0xf79e, 0xf946, 0xfcaf, 0xfe82, 0xfb97,
+ 0xf766, 0xf3e0, 0xf29c, 0xf330, 0xf225, 0xf16e,
+ 0xf1fd, 0xef81, 0xec15, 0xeb78, 0xe9e3, 0xe5a4,
+ 0xe196, 0xddc1, 0xdaef, 0xdb8d, 0xdcb5, 0xdca0,
+ 0xdff0, 0xe60c, 0xe9f2, 0xec6e, 0xeea3, 0xf066,
+ 0xf343, 0xf5c3, 0xf709, 0xf7eb, 0xf753, 0xf8e3,
+ 0xfe1a, 0x0023, 0xffe2, 0x0210, 0x0306, 0x0203,
+ 0x02ca, 0x0519, 0x05b7, 0x02a3, 0x00a4, 0x027c,
+ 0x020c, 0x005a, 0x0194, 0x01c4, 0x023d, 0x05c2,
+ 0x088b, 0x0a89, 0x0aeb, 0x09c6, 0x0cf3, 0x0fb6,
+ 0x0cb7, 0x0c26, 0x0d4f, 0x094d, 0x067b, 0x08f9,
+ 0x0a66, 0x0905, 0x0979, 0x0c34, 0x0d95, 0x0e67,
+ 0x0f7f, 0x0ec7, 0x1076, 0x15cb, 0x16f1, 0x13c4,
+ 0x0fdc, 0x0ac9, 0x099a, 0x0d5d, 0x0ed9, 0x0da6,
+ 0x0c0b, 0x09da, 0x0997, 0x0aaa, 0x0967, 0x06aa,
+ 0x0583, 0x0662, 0x07ae, 0x09bf, 0x0be7, 0x09eb,
+ 0x064c, 0x0661, 0x061c, 0x03dd, 0x03fd, 0x0453,
+ 0x0353, 0x03cb, 0x0332, 0x0032, 0xfe8c, 0xfc41,
+ 0xf76f, 0xf68b, 0xf9b1, 0xfa53, 0xfc1a, 0x01db,
+ 0x048d, 0x03ac, 0x020b, 0xff43, 0xfe26, 0xfc6d,
+ 0xf977, 0xfc2f, 0xfd10, 0xf6d1, 0xf5ed, 0xf784,
+ 0xf433, 0xf375, 0xf20c, 0xedbe, 0xee70, 0xede7,
+ 0xea41, 0xeb9a, 0xecec, 0xecc8, 0xf00e, 0xf22e,
+ 0xf26f, 0xf413, 0xf6a9, 0xfa56, 0xfc84, 0xfcb9,
+ 0xfd74, 0xfd37, 0xfd2c, 0xfd44, 0xfb74, 0xfbe6,
+ 0xfbeb, 0xf7c5, 0xf5cf, 0xf376, 0xef08, 0xf077,
+ 0xf1fe, 0xf01d, 0xf3dd, 0xf93e, 0xfbde, 0x0126,
+ 0x061e, 0x0756, 0x06ce, 0x0530, 0x0587, 0x06d1,
+ 0x0352, 0xfc94, 0xf6d2, 0xf251, 0xeea6, 0xec1b,
+ 0xea5b, 0xe84c, 0xe7ec, 0xeb01, 0xef2e, 0xf4be,
+ 0xf96b, 0xf85b, 0xf8de, 0xfe71, 0xff8a, 0xfede,
+ 0x01dd, 0x006a, 0xfb9f, 0xfb22, 0xf913, 0xf207,
+ 0xee8f, 0xf058, 0xf08c, 0xf0da, 0xf6be, 0xfca8,
+ 0xfd73, 0xfef0, 0x03b9, 0x0668, 0x0471, 0x0150,
+ 0x001c, 0xff00, 0xfd37, 0xfd57, 0xfdcc, 0xfbf1,
+ 0xfaa7, 0xfd29, 0xff8b, 0xfc7e, 0xfb67, 0x01b7,
+ 0x03ee, 0x025d, 0x05b3, 0x03ec, 0xff02, 0x0417,
+ 0x07e8, 0x05e5, 0x0816, 0x0793, 0x0240, 0x00c3,
+ 0x01fc, 0x03e9, 0x02ca, 0xfefe, 0x0152, 0x02ce,
+ 0xfeb7, 0x0077, 0x0368, 0x01bb, 0x028e, 0x01cf,
+ 0xfe6c, 0xfe09, 0xfd48, 0xfe6d, 0x02a0, 0x0332,
+ 0x02cd, 0x02b2, 0x0179, 0x043c, 0x0794, 0x07b2,
+ 0x06fe, 0x0235, 0xfd8a, 0xfea7, 0xfe4f, 0xfddc,
+ 0x025b, 0x0560, 0x05f0, 0x0674, 0x06af, 0x0a26,
+ 0x0d31, 0x0b72, 0x0aab, 0x075d, 0xfc51, 0xf67e,
+ 0xfbbd, 0xff7d, 0xfe79, 0xfefc, 0xffbd, 0xff90,
+ 0x00fe, 0x026f, 0x03cd, 0x0778, 0x0aeb, 0x0b33,
+ 0x081d, 0x03cd, 0x0255, 0x0226, 0x00eb, 0x0169,
+ 0x008b, 0xfc4e, 0xfc69, 0x0102, 0x0322, 0x0346,
+ 0x041a, 0x04b4, 0x0408, 0x03fc, 0x0506, 0x02a4,
+ 0xff65, 0x00fc, 0x01a2, 0xffd3, 0x00c3, 0x00a2,
+ 0xff33, 0xff44, 0xfc2e, 0xf893, 0xf83e, 0xf736,
+ 0xf768, 0xf870, 0xf644, 0xf5fd, 0xf748, 0xf500,
+ 0xf33f, 0xf393, 0xf414, 0xf567, 0xf50d, 0xf3e1,
+ 0xf542, 0xf6dd, 0xf88b, 0xfb5d, 0xfc4a, 0xfb55,
+ 0xfb3a, 0xfd99, 0x01d1, 0x02fc, 0x0031, 0x0062,
+ 0x0503, 0x06fa, 0x04e3, 0x04a3, 0x05ad, 0x043e,
+ 0x03b9, 0x04a0, 0x0278, 0xfeb5, 0xfbcf, 0xf9f7,
+ 0xf8c8, 0xf43a, 0xee35, 0xee33, 0xf1d8, 0xf3cd,
+ 0xf40c, 0xf390, 0xf41c, 0xf35d, 0xf03a, 0xf14b,
+ 0xf40c, 0xf29b, 0xf317, 0xf519, 0xf304, 0xf1b4,
+ 0xf302, 0xf4cd, 0xf696, 0xf3ae, 0xeed5, 0xee2c,
+ 0xed10, 0xed01, 0xf27b, 0xf5f8, 0xf6fa, 0xfa4a,
+ 0xfa8b, 0xf72a, 0xf53b, 0xf5ee, 0xfa5b, 0xfd91,
+ 0xfb90, 0xfb2b, 0xfbd4, 0xf9ea, 0xfca8, 0x01f1,
+ 0x0043, 0xfa4b, 0xf4f3, 0xf229, 0xf1e7, 0xeffc,
+ 0xf0fa, 0xf8ad, 0xfad8, 0xf534, 0xf2ca, 0xf2bf,
+ 0xf1e7, 0xf399, 0xf8b5, 0xffde, 0x02a8, 0xff93,
+ 0x01eb, 0x0844, 0x08f8, 0x0b0a, 0x1111, 0x1292,
+ 0x1107, 0x0fe9, 0x10b1, 0x151c, 0x16cd, 0x15e3,
+ 0x1916, 0x1a23, 0x1787, 0x1982, 0x1bf8, 0x1a19,
+ 0x173e, 0x14ca, 0x1596, 0x184f, 0x17a4, 0x17c2,
+ 0x1a2f, 0x1a62, 0x1b31, 0x1c7a, 0x1b0b, 0x1b06,
+ 0x1cb7, 0x1d21, 0x1cef, 0x1b34, 0x1a44, 0x1c5d,
+ 0x1d6d, 0x1f96, 0x2496, 0x2490, 0x206c, 0x1fb4,
+ 0x21ff, 0x25aa, 0x27d3, 0x253e, 0x22b5, 0x21bc,
+ 0x1ec7, 0x1ec3, 0x23ee, 0x26cd, 0x25cd, 0x23d9,
+ 0x2104, 0x200b, 0x20a8, 0x1df4, 0x1b37, 0x1bc3,
+ 0x1a21, 0x17c6, 0x1969, 0x19d0, 0x17d0, 0x172c,
+ 0x148d, 0x0f90, 0x0b9f, 0x091e, 0x0b1a, 0x0f59,
+ 0x0e6d, 0x0b56, 0x08f9, 0x045f, 0x0132, 0x02e1,
+ 0x07c0, 0x0ace, 0x052b, 0xfe3c, 0x0003, 0x0267,
+ 0x02d1, 0x05d7, 0x05d3, 0x0427, 0x034f, 0xfef4,
+ 0xfec7, 0x01ed, 0xfdc0, 0xfbdb, 0xfe13, 0xfad9,
+ 0xfab1, 0xfb3d, 0xf4bd, 0xf559, 0xfb31, 0xfa3f,
+ 0xf83f, 0xf23f, 0xe91c, 0xe870, 0xe6fe, 0xe2b2,
+ 0xe605, 0xe69f, 0xe34b, 0xe64b, 0xe927, 0xebd9,
+ 0xee84, 0xe913, 0xe619, 0xe99a, 0xe9b1, 0xeca9,
+ 0xf080, 0xec46, 0xe9cf, 0xeb39, 0xecf4, 0xf1e6,
+ 0xf400, 0xf639, 0xfbb4, 0xf74f, 0xf1cd, 0xf415,
+ 0xed60, 0xe6f5, 0xee88, 0xf313, 0xf5bc, 0xfd2b,
+ 0xfb05, 0xf43d, 0xf45d, 0xf616, 0xf92e, 0xfb56,
+ 0xf9bb, 0xfb5b, 0xfc44, 0xf8e3, 0xf93c, 0xfabf,
+ 0xf9fb, 0xfa54, 0xfaaa, 0xfd78, 0x016e, 0xff5e,
+ 0xfde5, 0x0183, 0x0252, 0x00a8, 0x00d3, 0x02cc,
+ 0x04f5, 0x0442, 0x057d, 0x0b16, 0x0ac4, 0x0682,
+ 0x08d8, 0x0cd1, 0x0c7c, 0x0a7c, 0x0994, 0x0b31,
+ 0x0c19, 0x0c5a, 0x116d, 0x15c4, 0x132d, 0x10f6,
+ 0x1279, 0x11ae, 0x0e2f, 0x0ea3, 0x1123, 0x0d1b,
+ 0x0b9e, 0x14a5, 0x15c2, 0x0d67, 0x0daf, 0x0e47,
+ 0x0a57, 0x0df9, 0x1041, 0x0e1e, 0x11cd, 0x1183,
+ 0x0d97, 0x1188, 0x12d9, 0x0f37, 0x0f4e, 0x0f2b,
+ 0x1077, 0x12c1, 0x1091, 0x1183, 0x10c0, 0x0820,
+ 0x0902, 0x0e6a, 0x07b9, 0x03cf, 0x075e, 0x0609,
+ 0x0438, 0x0381, 0x01e5, 0x036d, 0x0255, 0xfef3,
+ 0x005c, 0x005f, 0xfe5d, 0xff3f, 0xffea, 0x019f,
+ 0x01eb, 0xfd8b, 0xfd4c, 0xfd39, 0xf7a5, 0xf8ee,
+ 0xfbe7, 0xf731, 0xf882, 0xfcdb, 0xf96f, 0xfa76,
+ 0xff66, 0xfd8e, 0xfc51, 0xfcda, 0xf9b1, 0xf7dd,
+ 0xf839, 0xf820, 0xf744, 0xf41f, 0xf269, 0xf2bf,
+ 0xf1c4, 0xf424, 0xf661, 0xf2ef, 0xf4cc, 0xf9a3,
+ 0xf611, 0xf5b5, 0xfbe0, 0xfb73, 0xf8cf, 0xf7f3,
+ 0xf272, 0xee55, 0xf1f4, 0xf89f, 0xfaf3, 0xf5ea,
+ 0xf4af, 0xfa45, 0xf779, 0xf2f0, 0xf803, 0xf7d0,
+ 0xf4d7, 0xfa34, 0xf81e, 0xf25a, 0xf9f1, 0xfe17,
+ 0xf84f, 0xf962, 0xfd30, 0xfd06, 0xfc4f, 0xf8fb,
+ 0xf890, 0xfbc8, 0xf75f, 0xf258, 0xf432, 0xf31d,
+ 0xf116, 0xf1ad, 0xee28, 0xed9b, 0xf3e7, 0xf411,
+ 0xef7f, 0xf17c, 0xf758, 0xfa3a, 0xf88d, 0xf5d8,
+ 0xf719, 0xf8a2, 0xf6bd, 0xf7c4, 0xfc06, 0xfcf8,
+ 0xfe60, 0x0326, 0x02d3, 0xfe67, 0xff5d, 0x0181,
+ 0x0042, 0x024a, 0x05eb, 0x0602, 0x058b, 0x0277,
+ 0xfdaa, 0xff31, 0x0132, 0xfe8c, 0xff9d, 0x01ac,
+ 0xff60, 0xff1b, 0xff9f, 0xfd50, 0xfc79, 0xfd83,
+ 0xffed, 0x00d3, 0xfc17, 0xfafe, 0xfe13, 0xf8ab,
+ 0xf53f, 0xfc0c, 0xfc88, 0xfa7a, 0x00f6, 0x0148,
+ 0xfab5, 0xfa94, 0xfaae, 0xf8fd, 0xfbf2, 0xfe4f,
+ 0xfee2, 0xfeff, 0xfa8a, 0xf72f, 0xf78d, 0xf580,
+ 0xf641, 0xfab7, 0xf95b, 0xf5e2, 0xf4e1, 0xf2b1,
+ 0xf2b2, 0xf4ac, 0xf48e, 0xf642, 0xf66a, 0xf2ce,
+ 0xf607, 0xf990, 0xf1fd, 0xee98, 0xf4f4, 0xf5a0,
+ 0xf356, 0xf591, 0xf62a, 0xf75b, 0xfcbb, 0xff40,
+ 0xfe0d, 0xfe60, 0x01f3, 0x0623, 0x05ba, 0x0347,
+ 0x033c, 0x0109, 0xfdee, 0xfee0, 0x0026, 0x01b2,
+ 0x03b4, 0x0259, 0x035f, 0x0700, 0x04bd, 0x03a4,
+ 0x0912, 0x09d7, 0x045c, 0x01df, 0x0376, 0x032e,
+ 0xffeb, 0xff6e, 0xffbf, 0xfc7f, 0xfdce, 0x01af,
+ 0xfd9b, 0xfc0f, 0x01e4, 0x0076, 0xfbaf, 0xff91,
+ 0x04d9, 0x05ce, 0x07d2, 0x0c15, 0x0cd8, 0x07e2,
+ 0x048c, 0x064f, 0x07c1, 0x08ff, 0x0a0d, 0x06bf,
+ 0x03fb, 0x04c7, 0x0336, 0x01b1, 0x03f6, 0x0429,
+ 0x0137, 0xff4c, 0xfdef, 0xfd75, 0xff86, 0x0146,
+ 0x00f6, 0x01d3, 0x0397, 0x0194, 0xfd98, 0xfd6b,
+ 0xff0c, 0xfdbf, 0xfb99, 0xfc67, 0xfdc0, 0xfaaf,
+ 0xf70b, 0xf998, 0xfb7f, 0xf723, 0xf5f3, 0xf83f,
+ 0xf676, 0xf641, 0xf808, 0xf4f1, 0xf3cd, 0xf6bb,
+ 0xf656, 0xf67a, 0xf9e5, 0xfcb4, 0xfdf8, 0xfa4a,
+ 0xf614, 0xf989, 0xfbde, 0xf8d8, 0xf7db, 0xf660,
+ 0xf44c, 0xf42a, 0xf114, 0xeebf, 0xef7a, 0xedd2,
+ 0xee17, 0xefe0, 0xed03, 0xe9c9, 0xe798, 0xe7e7,
+ 0xed0c, 0xee92, 0xee54, 0xf0d2, 0xed9b, 0xec1f,
+ 0xf1e3, 0xf166, 0xf004, 0xf443, 0xf445, 0xf521,
+ 0xf8ce, 0xf6e5, 0xf6d8, 0xfaba, 0xfb0a, 0xfaa4,
+ 0xfb27, 0xfce2, 0xffba, 0xfe2b, 0xfb9f, 0xfc1d,
+ 0xfbe1, 0xfcf1, 0xfeec, 0xfe6a, 0xfde9, 0xfd77,
+ 0xfe4b, 0xffb7, 0xfd52, 0xff09, 0x05f7, 0x0730,
+ 0x0880, 0x0bda, 0x08e5, 0x0830, 0x0b7e, 0x0a81,
+ 0x0bc1, 0x0e14, 0x0ac6, 0x0b22, 0x0f6f, 0x0d90,
+ 0x0a25, 0x0d4e, 0x1212, 0x0ff9, 0x0b6e, 0x0d1d,
+ 0x0f73, 0x0d0d, 0x0b66, 0x0c39, 0x0e57, 0x0fad,
+ 0x0d2a, 0x0c32, 0x0eb6, 0x0e92, 0x0e54, 0x0fee,
+ 0x0f7a, 0x10a7, 0x13e0, 0x13bb, 0x1413, 0x175c,
+ 0x17bc, 0x16ac, 0x190a, 0x1aeb, 0x1a35, 0x1986,
+ 0x15f8, 0x1134, 0x11ff, 0x1202, 0x0d8c, 0x0de0,
+ 0x1034, 0x0e02, 0x0c0a, 0x0ad9, 0x0b2c, 0x0e2b,
+ 0x0d64, 0x0c7a, 0x0e94, 0x0bd7, 0x0b0c, 0x0ffa,
+ 0x0ee9, 0x0d36, 0x0fcd, 0x0d82, 0x0bb0, 0x0d0b,
+ 0x09c1, 0x0772, 0x084b, 0x07cd, 0x08ce, 0x0699,
+ 0x0065, 0x0065, 0x00f3, 0xfc03, 0xfa40, 0xfac3,
+ 0xf9d1, 0xfad1, 0xfa45, 0xf755, 0xf7ba, 0xf9f2,
+ 0xfb47, 0xfb56, 0xf997, 0xf8bf, 0xf728, 0xf3cd,
+ 0xf5ce, 0xf814, 0xf1ec, 0xee49, 0xf0a9, 0xef11,
+ 0xee51, 0xf1bd, 0xf277, 0xf437, 0xf7f9, 0xf75c,
+ 0xf637, 0xf7fd, 0xf9a5, 0xf9a3, 0xf849, 0xf9c1,
+ 0xfbaf, 0xf7e1, 0xf6b9, 0xf9b8, 0xf754, 0xf6aa,
+ 0xf9e8, 0xf7f8, 0xf766, 0xf98b, 0xf773, 0xf795,
+ 0xf987, 0xf79d, 0xf68f, 0xf5e7, 0xf645, 0xfabf,
+ 0xfb68, 0xf86c, 0xf908, 0xfa48, 0xfb73, 0xfd8d,
+ 0xfeb3, 0x002e, 0x005e, 0xffac, 0x004d, 0xff02,
+ 0x003f, 0x04c3, 0x0350, 0x039c, 0x0905, 0x060e,
+ 0x01e8, 0x052c, 0x051f, 0x0456, 0x07f5, 0x0838,
+ 0x0757, 0x0856, 0x0631, 0x050a, 0x0879, 0x099d,
+ 0x070e, 0x067b, 0x06e3, 0x04d0, 0x03e5, 0x0510,
+ 0x05a7, 0x0846, 0x0a5b, 0x08fe, 0x0b29, 0x0de2,
+ 0x0c3b, 0x0eb8, 0x118c, 0x0d43, 0x0b6a, 0x0cf9,
+ 0x0c4e, 0x0d12, 0x0d8e, 0x0c28, 0x0c54, 0x0b88,
+ 0x0a4c, 0x0ad5, 0x0a03, 0x0961, 0x0a34, 0x0993,
+ 0x07e3, 0x0626, 0x0629, 0x07c7, 0x07a8, 0x094c,
+ 0x0d30, 0x0d28, 0x0d50, 0x0ff4, 0x0e56, 0x0bb8,
+ 0x0d26, 0x0db1, 0x0a81, 0x06c2, 0x067b, 0x0886,
+ 0x07f9, 0x0633, 0x0578, 0x03f5, 0x02d9, 0x0200,
+ 0xff9e, 0xfe47, 0xfeda, 0xffab, 0xffcf, 0xfdde,
+ 0xfc47, 0xfec3, 0x01a0, 0xff30, 0xfb6a, 0xfd91,
+ 0x0020, 0xfd1a, 0xfc3c, 0xfe48, 0xfd62, 0xfd57,
+ 0xfcdd, 0xfae8, 0xfe40, 0xffab, 0xfc01, 0xfe57,
+ 0x003e, 0xfcc6, 0xfe01, 0xff78, 0xfe01, 0x004c,
+ 0x018b, 0x00bd, 0x01ea, 0x0205, 0x02da, 0x0342,
+ 0xffe2, 0xfedd, 0xfec8, 0xfc2a, 0xfbdc, 0xfb43,
+ 0xf9f3, 0xfc15, 0xfdfd, 0x00b1, 0x03e1, 0x0249,
+ 0x018b, 0x0151, 0xfd3e, 0xfd57, 0xff00, 0xfd63,
+ 0xffba, 0xffde, 0xfab4, 0xfbc3, 0xfe58, 0xfc7d,
+ 0xfbb7, 0xf9dc, 0xf8c5, 0xfabf, 0xf865, 0xf72a,
+ 0xfaf1, 0xf92c, 0xf6b9, 0xfa65, 0xfb5a, 0xf9b0,
+ 0xfa88, 0xfb9b, 0xfb31, 0xf99a, 0xfa12, 0xfaf2,
+ 0xf83b, 0xf92d, 0xfd31, 0xfc7a, 0xfd78, 0x0071,
+ 0xff61, 0x0000, 0x00b0, 0xfd87, 0xfe3c, 0x0084,
+ 0xfd92, 0xfb79, 0xfd25, 0xfe62, 0xfe3c, 0xfd14,
+ 0xfd94, 0x008a, 0x0098, 0xfefb, 0xfef4, 0xfc19,
+ 0xf93c, 0xf9a7, 0xf79a, 0xf7cf, 0xfd20, 0xfc91,
+ 0xf9a2, 0xfc6d, 0xfcbb, 0xf9f8, 0xfb44, 0xfd4b,
+ 0xfdc6, 0xfe7b, 0xfe06, 0xfd23, 0xfd7b, 0xfe8d,
+ 0xffe1, 0xfee8, 0xfc40, 0xfdd8, 0x0090, 0xfee0,
+ 0xfef8, 0xffc7, 0xfbb9, 0xfbf1, 0xffab, 0xfd0c,
+ 0xfadb, 0xfb87, 0xfb08, 0xfcd0, 0xfcd6, 0xfa1c,
+ 0xfb22, 0xfcd3, 0xfd18, 0xfc05, 0xf987, 0xfa8f,
+ 0xfbc0, 0xfa65, 0xfc1f, 0xfe22, 0xff12, 0x01ef,
+ 0x02bc, 0x02a8, 0x0406, 0x01b4, 0xffd0, 0x039c,
+ 0x03ba, 0xff73, 0x00e7, 0x031e, 0x0246, 0x052b,
+ 0x061c, 0x0253, 0x0345, 0x05ee, 0x0403, 0x0233,
+ 0x037f, 0x04de, 0x03c6, 0x0236, 0x019f, 0x0188,
+ 0x02f6, 0x02c7, 0x0122, 0x03a8, 0x04b2, 0x01da,
+ 0x049c, 0x082d, 0x05e0, 0x06fb, 0x0b18, 0x0b34,
+ 0x0c10, 0x0deb, 0x0d93, 0x0dfa, 0x0ceb, 0x0ac2,
+ 0x0b20, 0x0885, 0x0524, 0x07e8, 0x094e, 0x070e,
+ 0x07d8, 0x08f7, 0x086f, 0x08b6, 0x07a8, 0x059c,
+ 0x0482, 0x0201, 0xff94, 0x0069, 0x017a, 0x01e6,
+ 0x0438, 0x057f, 0x0548, 0x075b, 0x07d2, 0x05bb,
+ 0x0657, 0x05ef, 0x03f6, 0x04f9, 0x0454, 0x036c,
+ 0x0610, 0x05e0, 0x046a, 0x0543, 0x042c, 0x01a8,
+ 0x0071, 0x0288, 0x05ea, 0x054f, 0x03d7, 0x032d,
+ 0x021b, 0x0420, 0x0608, 0x054f, 0x05ac, 0x0548,
+ 0x030f, 0x0261, 0x0332, 0x01f9, 0xff78, 0xff9d,
+ 0xffed, 0xff02, 0xfec4, 0xfe34, 0xfe85, 0xfd07,
+ 0xf952, 0xf945, 0xf7e9, 0xf521, 0xf64f, 0xf556,
+ 0xf487, 0xf69a, 0xf5f2, 0xf61d, 0xf5cf, 0xf401,
+ 0xf72b, 0xf889, 0xf5b1, 0xf5f2, 0xf583, 0xf408,
+ 0xf631, 0xf77a, 0xf69a, 0xf866, 0xfa8d, 0xf9a7,
+ 0xfa1d, 0xfc15, 0xfb1e, 0xfac1, 0xfcc6, 0xfd89,
+ 0xfdd1, 0xfdf0, 0xfe73, 0x00d0, 0x0043, 0xfd0c,
+ 0xfdb8, 0xffc3, 0xff81, 0x0090, 0x02db, 0x0266,
+ 0x00ef, 0x0174, 0x00d8, 0xfecc, 0xffbb, 0x0174,
+ 0x0098, 0xffa6, 0x00c4, 0x036d, 0x04f9, 0x05f5,
+ 0x0886, 0x08b4, 0x0700, 0x0811, 0x096d, 0x0955,
+ 0x0925, 0x097a, 0x0a51, 0x0ba1, 0x0e27, 0x0e51,
+ 0x0d4d, 0x10c5, 0x12e6, 0x119a, 0x10bb, 0x0f6e,
+ 0x10b7, 0x1181, 0x0fb0, 0x0fd7, 0x0cfe, 0x0ad9,
+ 0x0c61, 0x0954, 0x093a, 0x0b16, 0x0789, 0x08d6,
+ 0x098f, 0x0527, 0x0729, 0x0935, 0x06ec, 0x075d,
+ 0x0825, 0x0836, 0x0961, 0x0ab4, 0x0b3f, 0x098c,
+ 0x06f3, 0x061c, 0x06da, 0x0698, 0x04fb, 0x04cc,
+ 0x061a, 0x07c0, 0x072b, 0x03b4, 0x02c8, 0x022a,
+ 0xff3d, 0xfff3, 0x012c, 0x003e, 0x0109, 0xfff0,
+ 0xfde2, 0xfe2f, 0xfcfb, 0xfc5e, 0xfc66, 0xf8fe,
+ 0xf6ec, 0xf6da, 0xf5b4, 0xf61c, 0xf58b, 0xf2ec,
+ 0xf2ee, 0xf39b, 0xf2ea, 0xf1db, 0xef8f, 0xeeff,
+ 0xf182, 0xf16c, 0xee39, 0xee98, 0xf1ec, 0xf2bf,
+ 0xf36b, 0xf44c, 0xf2ad, 0xf2ce, 0xf47c, 0xf63a,
+ 0xf9fc, 0xf989, 0xf516, 0xf3ea, 0xf385, 0xf421,
+ 0xf681, 0xf570, 0xf519, 0xf854, 0xf7a3, 0xf4c6,
+ 0xf5fe, 0xf715, 0xf59d, 0xf3bf, 0xf1c7, 0xf2c9,
+ 0xf56a, 0xf5de, 0xf675, 0xf627, 0xf661, 0xf855,
+ 0xf7d4, 0xfaef, 0xff7c, 0xfe77, 0x0105, 0x0288,
+ 0xff15, 0x0232, 0x0474, 0x02c9, 0x060f, 0x08e6,
+ 0x0969, 0x0994, 0x0a14, 0x0ddd, 0x0fa4, 0x0e59,
+ 0x0ead, 0x0f4f, 0x1000, 0x10d4, 0x11d5, 0x12ef,
+ 0x12c5, 0x1301, 0x1351, 0x1397, 0x1458, 0x13a5,
+ 0x13ea, 0x14af, 0x13cb, 0x13e7, 0x12c5, 0x107e,
+ 0x0fa5, 0x0efa, 0x11b7, 0x1470, 0x1239, 0x11bf,
+ 0x10a1, 0x0c95, 0x0d90, 0x0e91, 0x0bfb, 0x0be8,
+ 0x0b18, 0x09f3, 0x0c47, 0x0d17, 0x0d6b, 0x0f60,
+ 0x0df7, 0x0a7b, 0x0963, 0x090a, 0x06a8, 0x0506,
+ 0x0666, 0x0703, 0x06c9, 0x0677, 0x03e1, 0x0242,
+ 0x022e, 0x013d, 0x008c, 0xff7b, 0xfe6a, 0xfce0,
+ 0xfae9, 0xfb47, 0xfac4, 0xf9c7, 0xf9c6, 0xf6a8,
+ 0xf59c, 0xf7c4, 0xf615, 0xf384, 0xf33a, 0xf3ce,
+ 0xf303, 0xf05e, 0xefc1, 0xeffd, 0xf00f, 0xf0c6,
+ 0xefd1, 0xf05b, 0xf16c, 0xef07, 0xed35, 0xec79,
+ 0xec44, 0xecbd, 0xebb3, 0xeb68, 0xec3b, 0xed94,
+ 0xee9b, 0xec0a, 0xeaf6, 0xecf1, 0xec04, 0xeb3d,
+ 0xecc0, 0xed85, 0xee91, 0xf07f, 0xf28e, 0xf4aa,
+ 0xf5ad, 0xf4c6, 0xf416, 0xf508, 0xf5aa, 0xf62a,
+ 0xf619, 0xf457, 0xf4e7, 0xf69b, 0xf527, 0xf4c9,
+ 0xf6ef, 0xf809, 0xf914, 0xf9e9, 0xf971, 0xf984,
+ 0xf848, 0xf622, 0xf817, 0xf9dc, 0xf82b, 0xf93e,
+ 0xfb30, 0xfa80, 0xfb34, 0xfc43, 0xfbb2, 0xfbf8,
+ 0xfd19, 0xfd2b, 0xfc08, 0xfb26, 0xfa3a, 0xf894,
+ 0xf7b2, 0xf82e, 0xf962, 0xfa7f, 0xfbe9, 0xfda5,
+ 0xfe08, 0xfdd6, 0xfcf2, 0xfbf7, 0xfd40, 0xfd26,
+ 0xfc74, 0xfe90, 0xfed3, 0xfe20, 0xfe1e, 0xfc63,
+ 0xfce3, 0xfe77, 0xfda9, 0xfe05, 0xfe4b, 0xfd30,
+ 0xfdfd, 0xff0a, 0xff8d, 0x025f, 0x0476, 0x041b,
+ 0x05df, 0x074f, 0x060c, 0x0630, 0x050a, 0x0281,
+ 0x02d4, 0x02e7, 0x0314, 0x04ea, 0x057a, 0x050a,
+ 0x04b5, 0x05bc, 0x06c7, 0x0618, 0x0707, 0x081c,
+ 0x07c9, 0x0864, 0x081f, 0x078e, 0x0784, 0x0778,
+ 0x08e4, 0x08c4, 0x0779, 0x0827, 0x07a7, 0x065d,
+ 0x05e8, 0x03ff, 0x0205, 0x01ec, 0x0230, 0x01ef,
+ 0x021b, 0x02bd, 0x0334, 0x03a1, 0x036f, 0x028b,
+ 0x0230, 0x036c, 0x0500, 0x04c4, 0x04cb, 0x04ab,
+ 0x0299, 0x02c0, 0x0302, 0x013d, 0x02df, 0x043f,
+ 0x02fc, 0x03be, 0x0334, 0x0115, 0x0159, 0x0102,
+ 0xff38, 0xfe98, 0xfede, 0xff5c, 0x0001, 0x010c,
+ 0x024c, 0x0252, 0x0162, 0x0078, 0xff44, 0xfee0,
+ 0xfded, 0xfb5b, 0xfbed, 0xfce2, 0xfa7a, 0xfadd,
+ 0xfc6d, 0xfc54, 0xfd80, 0xfcd2, 0xfbe1, 0xfcef,
+ 0xfcbd, 0xfd88, 0xfe0f, 0xfd7a, 0xff69, 0xff7c,
+ 0xfcf9, 0xfc35, 0xfc1e, 0xfc1b, 0xfc0b, 0xfc92,
+ 0xfe3c, 0xff1f, 0x000e, 0x00e3, 0x002b, 0x003c,
+ 0x011e, 0xff90, 0xfd71, 0xfec6, 0xff1d, 0xfbda,
+ 0xfb51, 0xfb86, 0xf856, 0xf765, 0xf8cb, 0xf8db,
+ 0xf9ce, 0xfbb8, 0xfc3e, 0xfc0e, 0xfc41, 0xfc5b,
+ 0xfc31, 0xfc59, 0xfd64, 0xfee2, 0xffc1, 0x007f,
+ 0x0074, 0x005e, 0x02ea, 0x0395, 0x01cd, 0x0358,
+ 0x03d4, 0x00fe, 0xffad, 0xffc7, 0x0086, 0x00d1,
+ 0x00cd, 0x0156, 0x0060, 0x004c, 0x015f, 0x00d0,
+ 0x003b, 0xfec9, 0xfd43, 0xfd14, 0xfc16, 0xfc66,
+ 0xfd82, 0xfca8, 0xfab9, 0xf8b9, 0xf92b, 0xf9a5,
+ 0xf853, 0xf939, 0xf8b2, 0xf695, 0xf771, 0xf6c9,
+ 0xf4c0, 0xf380, 0xf19b, 0xf2d9, 0xf4aa, 0xf287,
+ 0xf0ea, 0xf082, 0xf097, 0xf255, 0xf31b, 0xf3f7,
+ 0xf574, 0xf51c, 0xf6b6, 0xf998, 0xf9ac, 0xfa78,
+ 0xfb46, 0xfa67, 0xfb6a, 0xfd05, 0xfe7e, 0x006b,
+ 0x01db, 0x03a6, 0x02f0, 0x00d9, 0x01dd, 0x02d7,
+ 0x03b5, 0x04ec, 0x0429, 0x045e, 0x0468, 0x0276,
+ 0x01f8, 0x02b0, 0x03cb, 0x0569, 0x06e7, 0x082b,
+ 0x092c, 0x0a1c, 0x08de, 0x0794, 0x0a26, 0x0bc5,
+ 0x0cc3, 0x107d, 0x116b, 0x1034, 0x1158, 0x1221,
+ 0x12aa, 0x14f5, 0x15b2, 0x1485, 0x15b3, 0x1719,
+ 0x15c8, 0x1591, 0x16d5, 0x1770, 0x172c, 0x15ed,
+ 0x1605, 0x16e6, 0x16e1, 0x171f, 0x15b3, 0x137b,
+ 0x12b6, 0x112b, 0x1014, 0x1095, 0x1048, 0x0f24,
+ 0x0e95, 0x0e49, 0x0c78, 0x0ac6, 0x0adf, 0x0a38,
+ 0x098a, 0x0957, 0x07a7, 0x0675, 0x06bd, 0x06a8,
+ 0x0574, 0x0540, 0x0784, 0x080f, 0x06f1, 0x0755,
+ 0x0618, 0x04dc, 0x05c3, 0x03cf, 0x01cb, 0x0299,
+ 0x0087, 0xfdf7, 0xfe04, 0xfb85, 0xf8af, 0xf82f,
+ 0xf66c, 0xf64e, 0xf800, 0xf71a, 0xf696, 0xf665,
+ 0xf490, 0xf3bd, 0xf241, 0xefaa, 0xef7c, 0xf0d8,
+ 0xf11c, 0xf078, 0xf0e0, 0xf193, 0xf12c, 0xf163,
+ 0xf1e1, 0xf245, 0xf3b9, 0xf4d9, 0xf511, 0xf537,
+ 0xf580, 0xf517, 0xf397, 0xf2b6, 0xf20f, 0xf1b9,
+ 0xf329, 0xf433, 0xf4e8, 0xf5fa, 0xf556, 0xf442,
+ 0xf3b7, 0xf2e8, 0xf216, 0xf185, 0xf210, 0xf267,
+ 0xf1aa, 0xf207, 0xf2d5, 0xf2b5, 0xf336, 0xf509,
+ 0xf5b8, 0xf4c6, 0xf5bb, 0xf738, 0xf67e, 0xf6cf,
+ 0xf809, 0xf74e, 0xf6cf, 0xf882, 0xfa56, 0xfb7f,
+ 0xfd4d, 0xfe08, 0xfde1, 0xff43, 0xffc9, 0x00c9,
+ 0x0410, 0x0598, 0x0781, 0x0a38, 0x0a5b, 0x0b91,
+ 0x0d4c, 0x0d01, 0x0d1b, 0x0ce8, 0x0cbb, 0x0cf6,
+ 0x0ca8, 0x0e1b, 0x0fa6, 0x1011, 0x1185, 0x10ef,
+ 0x0edd, 0x0eee, 0x0e4d, 0x0d70, 0x0e65, 0x0e76,
+ 0x0ee7, 0x10c7, 0x1189, 0x127f, 0x1367, 0x1264,
+ 0x1185, 0x10fd, 0x0ff1, 0x0f25, 0x0f0e, 0x0fcc,
+ 0x0fe0, 0x1025, 0x11c6, 0x11f5, 0x11b4, 0x129d,
+ 0x12c9, 0x1289, 0x11ad, 0x104d, 0x0f7a, 0x0ec5,
+ 0x0f1c, 0x0f4b, 0x0e38, 0x0dd8, 0x0d2a, 0x0c7a,
+ 0x0ca1, 0x0b68, 0x0a51, 0x0ad0, 0x0ab6, 0x0978,
+ 0x088c, 0x08e1, 0x0892, 0x0698, 0x0511, 0x0475,
+ 0x047e, 0x0510, 0x0544, 0x0563, 0x059d, 0x0504,
+ 0x0377, 0x0209, 0x00e1, 0xff9f, 0xff4c, 0xff16,
+ 0xfdf0, 0xfd69, 0xfc99, 0xfab9, 0xf9ef, 0xfa24,
+ 0xfa1e, 0xf9dd, 0xfa24, 0xfb29, 0xfb11, 0xf9bf,
+ 0xf937, 0xf8ba, 0xf6e8, 0xf561, 0xf595, 0xf6b1,
+ 0xf779, 0xf6af, 0xf504, 0xf46c, 0xf401, 0xf395,
+ 0xf3e3, 0xf405, 0xf552, 0xf6e8, 0xf66b, 0xf685,
+ 0xf741, 0xf6ae, 0xf662, 0xf66e, 0xf6db, 0xf806,
+ 0xf892, 0xf88e, 0xf7df, 0xf6bb, 0xf688, 0xf6d4,
+ 0xf714, 0xf718, 0xf684, 0xf680, 0xf774, 0xf8b6,
+ 0xfa0d, 0xfab7, 0xfaf0, 0xfbba, 0xfbd4, 0xfae1,
+ 0xfad2, 0xfb72, 0xfbd7, 0xfb7f, 0xfa0a, 0xf9fc,
+ 0xfb60, 0xfbb9, 0xfcdc, 0xfe69, 0xfdd4, 0xfd01,
+ 0xfc33, 0xfabf, 0xfa7c, 0xfb05, 0xfb7f, 0xfca2,
+ 0xfe67, 0x0060, 0x01fe, 0x02cc, 0x028f, 0x0186,
+ 0x00dc, 0x0094, 0xffff, 0x0010, 0x007e, 0xff2e,
+ 0xfdbd, 0xfe36, 0xfe09, 0xfce4, 0xfcd2, 0xfcb9,
+ 0xfc76, 0xfd08, 0xfde7, 0xff43, 0x00ad, 0x0164,
+ 0x0239, 0x0345, 0x03ee, 0x0445, 0x0453, 0x0410,
+ 0x0478, 0x05c1, 0x05ca, 0x04e0, 0x0547, 0x0584,
+ 0x041b, 0x02d1, 0x0273, 0x0207, 0x0127, 0x0080,
+ 0x0079, 0x0044, 0xff63, 0xfe9b, 0xfe8d, 0xfe9a,
+ 0xfe78, 0xfedd, 0xff71, 0xff43, 0xfe57, 0xfd45,
+ 0xfc9b, 0xfc4e, 0xfbaf, 0xfa6c, 0xf9ac, 0xfa30,
+ 0xfa97, 0xfaf3, 0xfc69, 0xfdd2, 0xfeb3, 0xfed1,
+ 0xfcf1, 0xfb59, 0xfc02, 0xfc7e, 0xfc48, 0xfcaa,
+ 0xfc97, 0xfb9b, 0xfaaa, 0xfa49, 0xfafe, 0xfc5a,
+ 0xfdbb, 0xff70, 0x0070, 0x0012, 0xffcf, 0x0000,
+ 0x0024, 0x0015, 0xff9a, 0xfff5, 0x0136, 0x0178,
+ 0x018b, 0x023e, 0x0269, 0x02c8, 0x0352, 0x02cc,
+ 0x02f5, 0x0460, 0x055e, 0x06da, 0x094a, 0x0aeb,
+ 0x0b66, 0x0abc, 0x096e, 0x090e, 0x08f3, 0x0886,
+ 0x0912, 0x09d7, 0x0a0c, 0x0aa1, 0x0b1c, 0x0b4a,
+ 0x0bef, 0x0c56, 0x0c52, 0x0c6f, 0x0c41, 0x0beb,
+ 0x0b6f, 0x0a25, 0x08cb, 0x07dc, 0x06bb, 0x0611,
+ 0x0649, 0x0682, 0x0694, 0x063b, 0x04bf, 0x02ea,
+ 0x0216, 0x021c, 0x01f4, 0x01c8, 0x02df, 0x0529,
+ 0x073a, 0x0885, 0x08d8, 0x07c0, 0x061d, 0x0542,
+ 0x0473, 0x02f1, 0x0222, 0x027a, 0x028f, 0x01d2,
+ 0x002f, 0xfde0, 0xfc41, 0xfb7e, 0xfaa2, 0xfa2c,
+ 0xfa64, 0xfa89, 0xfa85, 0xfa41, 0xf9b7, 0xf955,
+ 0xf886, 0xf740, 0xf6e8, 0xf72d, 0xf6cd, 0xf658,
+ 0xf608, 0xf507, 0xf3bf, 0xf28c, 0xf0af, 0xeedd,
+ 0xee13, 0xed4c, 0xec65, 0xec25, 0xeb45, 0xe96a,
+ 0xe82c, 0xe732, 0xe5c3, 0xe4d4, 0xe4c9, 0xe5ae,
+ 0xe790, 0xe9bc, 0xec16, 0xeeaf, 0xf0dc, 0xf266,
+ 0xf32f, 0xf320, 0xf305, 0xf36c, 0xf437, 0xf511,
+ 0xf5ad, 0xf66f, 0xf76a, 0xf83a, 0xf923, 0xf9c1,
+ 0xf9c1, 0xf9e1, 0xf991, 0xf8e4, 0xf9c6, 0xfb47,
+ 0xfc03, 0xfd86, 0xff35, 0xff8a, 0x0033, 0x01d3,
+ 0x0343, 0x0487, 0x0535, 0x052f, 0x0594, 0x0642,
+ 0x0712, 0x08b1, 0x0a63, 0x0b8d, 0x0ccb, 0x0e49,
+ 0x1018, 0x11b8, 0x1249, 0x12bd, 0x135a, 0x12b5,
+ 0x1192, 0x1130, 0x1128, 0x11f8, 0x1337, 0x13a6,
+ 0x14b9, 0x165d, 0x160c, 0x14b3, 0x13f3, 0x1331,
+ 0x131b, 0x13ea, 0x1442, 0x1450, 0x1453, 0x1405,
+ 0x13fe, 0x141a, 0x1452, 0x151d, 0x152e, 0x1410,
+ 0x1345, 0x12e7, 0x128b, 0x121f, 0x10ea, 0x0f72,
+ 0x0ed5, 0x0ea7, 0x0e90, 0x0e8d, 0x0e6d, 0x0e93,
+ 0x0e75, 0x0d53, 0x0c1c, 0x0af3, 0x0959, 0x086c,
+ 0x0827, 0x0781, 0x0735, 0x073c, 0x0666, 0x04da,
+ 0x02f8, 0x0182, 0x012d, 0x005f, 0xfeb3, 0xfdf1,
+ 0xfd76, 0xfc80, 0xfbff, 0xfb36, 0xfa31, 0xfa54,
+ 0xfa69, 0xf9af, 0xf96b, 0xf976, 0xf997, 0xfa36,
+ 0xfa9f, 0xfab4, 0xfb0a, 0xfb59, 0xfb63, 0xfb4a,
+ 0xfb3c, 0xfaf8, 0xf9f2, 0xf8d1, 0xf819, 0xf74d,
+ 0xf722, 0xf7ed, 0xf86a, 0xf862, 0xf7c9, 0xf5ee,
+ 0xf392, 0xf1a8, 0xf037, 0xef69, 0xeef9, 0xeeba,
+ 0xeef6, 0xef16, 0xeed9, 0xef09, 0xef8a, 0xefbc,
+ 0xefde, 0xf033, 0xf03d, 0xef95, 0xeed7, 0xeeb3,
+ 0xeee2, 0xef20, 0xefb6, 0xf096, 0xf14d, 0xf1ea,
+ 0xf2cd, 0xf39e, 0xf406, 0xf48d, 0xf533, 0xf594,
+ 0xf638, 0xf701, 0xf740, 0xf779, 0xf81c, 0xf92a,
+ 0xfae1, 0xfc9e, 0xfdd8, 0xfef9, 0xfff1, 0x0104,
+ 0x02b1, 0x03e5, 0x03e6, 0x03a1, 0x03e9, 0x0511,
+ 0x06c3, 0x07e9, 0x084c, 0x0853, 0x080a, 0x0838,
+ 0x09b7, 0x0b6e, 0x0c24, 0x0c94, 0x0d58, 0x0e14,
+ 0x0f3c, 0x10d5, 0x11a6, 0x1190, 0x1155, 0x10f4,
+ 0x10a7, 0x10a1, 0x104c, 0x0fa4, 0x0f66, 0x0fbf,
+ 0x103c, 0x1090, 0x1105, 0x119f, 0x11a3, 0x10e6,
+ 0x1007, 0x0f35, 0x0e00, 0x0c31, 0x0a9a, 0x09f6,
+ 0x09ce, 0x09d6, 0x0a10, 0x0a45, 0x0b00, 0x0c26,
+ 0x0c4d, 0x0bcc, 0x0bf2, 0x0c11, 0x0b78, 0x0ad5,
+ 0x0aa2, 0x0abd, 0x0a8e, 0x0973, 0x07cb, 0x0670,
+ 0x0573, 0x0473, 0x03be, 0x039d, 0x035a, 0x02d0,
+ 0x02a6, 0x0275, 0x01e8, 0x014e, 0x004d, 0xff1d,
+ 0xfe2e, 0xfcb1, 0xfb08, 0xfa8b, 0xfa8e, 0xfa07,
+ 0xf90c, 0xf7db, 0xf6f9, 0xf6a1, 0xf68b, 0xf6d8,
+ 0xf76f, 0xf7f4, 0xf7e9, 0xf6d6, 0xf5f3, 0xf696,
+ 0xf7da, 0xf8ff, 0xfa1f, 0xfad8, 0xfb3d, 0xfb88,
+ 0xfbef, 0xfcbd, 0xfcb0, 0xfb65, 0xfaae, 0xfa5b,
+ 0xf975, 0xf917, 0xf93a, 0xf91d, 0xf93c, 0xf959,
+ 0xf968, 0xfa5f, 0xfc0f, 0xfd9b, 0xfea5, 0xff35,
+ 0xff8d, 0xff9e, 0xffbc, 0x0027, 0x000e, 0xffd0,
+ 0x0052, 0x009f, 0x0057, 0x0009, 0xffb2, 0xfff8,
+ 0x0074, 0xffd6, 0xff4f, 0xff7c, 0xfecf, 0xfe34,
+ 0xff47, 0x0098, 0x00dc, 0x00d9, 0x00f4, 0x0055,
+ 0xff26, 0xfecf, 0xff15, 0xfede, 0xfea4, 0xfe82,
+ 0xfdf7, 0xfdb8, 0xfdfa, 0xfe25, 0xfe4b, 0xfe4e,
+ 0xfe21, 0xfe4f, 0xfea2, 0xfe7a, 0xfdbf, 0xfcd1,
+ 0xfc46, 0xfc3d, 0xfca6, 0xfdb0, 0xfe86, 0xfdf8,
+ 0xfc9b, 0xfbb1, 0xfba0, 0xfc57, 0xfd41, 0xfdb7,
+ 0xfe2a, 0xfef6, 0xff4f, 0xfefe, 0xfea1, 0xfe5c,
+ 0xfe5c, 0xfe94, 0xfe30, 0xfd32, 0xfc6d, 0xfc12,
+ 0xfc03, 0xfbf6, 0xfb8b, 0xfae4, 0xfa35, 0xf9cf,
+ 0xfa0f, 0xfa6c, 0xfa65, 0xfa11, 0xf969, 0xf8e6,
+ 0xf8ff, 0xf94b, 0xf960, 0xf901, 0xf89e, 0xf8ef,
+ 0xf904, 0xf85b, 0xf85a, 0xf8f2, 0xf954, 0xfa20,
+ 0xfb10, 0xfb28, 0xfab6, 0xfa25, 0xf9dc, 0xfa94,
+ 0xfbd0, 0xfcb2, 0xfd75, 0xfdc6, 0xfcb1, 0xfb31,
+ 0xfab7, 0xfa8c, 0xfa0e, 0xf9d8, 0xf9f1, 0xfa60,
+ 0xfaf2, 0xfac1, 0xfa56, 0xfa49, 0xf9a6, 0xf8cc,
+ 0xf8ad, 0xf8cd, 0xf922, 0xf9c5, 0xfa3c, 0xfa71,
+ 0xfa36, 0xf9e1, 0xfa61, 0xfba3, 0xfd49, 0xfeec,
+ 0xffcd, 0x0065, 0x0118, 0x0135, 0x0123, 0x0197,
+ 0x0224, 0x0288, 0x0313, 0x03d0, 0x0400, 0x035f,
+ 0x0304, 0x0313, 0x02bc, 0x0236, 0x01ba, 0x01a0,
+ 0x0259, 0x02e7, 0x02f9, 0x0323, 0x02c6, 0x020d,
+ 0x0170, 0x002b, 0xfee6, 0xfe53, 0xfd7a, 0xfc9b,
+ 0xfc57, 0xfc30, 0xfc96, 0xfdbe, 0xfe9b, 0xff0c,
+ 0xffd5, 0x00f5, 0x01ea, 0x02c5, 0x03ce, 0x04c4,
+ 0x05a1, 0x0665, 0x068a, 0x061f, 0x0539, 0x03a1,
+ 0x022e, 0x0194, 0x0198, 0x01eb, 0x0219, 0x0252,
+ 0x0292, 0x01ec, 0x0161, 0x0220, 0x02ec, 0x03ba,
+ 0x0535, 0x0646, 0x06b9, 0x06d1, 0x0627, 0x0538,
+ 0x03fc, 0x0238, 0x010e, 0x00d6, 0x011a, 0x018b,
+ 0x0118, 0xff8e, 0xfe44, 0xfe33, 0xff0f, 0xff83,
+ 0xff00, 0xfe54, 0xfde4, 0xfdb9, 0xfd72, 0xfc5e,
+ 0xfb61, 0xfb4e, 0xfb31, 0xfa84, 0xf98a, 0xf8dd,
+ 0xf902, 0xf92e, 0xf921, 0xf961, 0xf940, 0xf8f6,
+ 0xf955, 0xf9c0, 0xfa47, 0xfb08, 0xfb02, 0xfa80,
+ 0xfa21, 0xf998, 0xf8f3, 0xf812, 0xf71f, 0xf6ad,
+ 0xf64c, 0xf5e3, 0xf5b8, 0xf554, 0xf528, 0xf5a5,
+ 0xf637, 0xf723, 0xf85e, 0xf903, 0xf98c, 0xfa99,
+ 0xfb92, 0xfc62, 0xfd8b, 0xfeac, 0xfede, 0xfe4a,
+ 0xfdcf, 0xfd7c, 0xfd5e, 0xfe15, 0xff4a, 0xffcd,
+ 0xff7a, 0xff7f, 0x0085, 0x01ba, 0x02d1, 0x0438,
+ 0x050f, 0x04ed, 0x04fe, 0x059a, 0x067c, 0x0794,
+ 0x084e, 0x0875, 0x085e, 0x07f2, 0x0767, 0x0735,
+ 0x0753, 0x07e8, 0x0957, 0x0b01, 0x0bb0, 0x0b96,
+ 0x0b86, 0x0b3d, 0x0b17, 0x0bee, 0x0cfe, 0x0da9,
+ 0x0e64, 0x0efa, 0x0f71, 0x1005, 0x1034, 0x1000,
+ 0x0fde, 0x100e, 0x10be, 0x1153, 0x1132, 0x104d,
+ 0x0eca, 0x0dba, 0x0d77, 0x0d30, 0x0d66, 0x0e09,
+ 0x0dbd, 0x0cea, 0x0beb, 0x0a62, 0x0973, 0x094c,
+ 0x08ce, 0x07fd, 0x06de, 0x059a, 0x04d9, 0x0415,
+ 0x02b3, 0x0138, 0x006a, 0x007b, 0x0083, 0x0033,
+ 0x0060, 0x00ad, 0x009e, 0x0088, 0xfffe, 0xff20,
+ 0xfe9d, 0xfe0b, 0xfd7e, 0xfd7a, 0xfd98, 0xfd73,
+ 0xfced, 0xfc55, 0xfc64, 0xfd0d, 0xfdd0, 0xfe28,
+ 0xfdf1, 0xfe05, 0xfdfa, 0xfc8f, 0xfaea, 0xfa0d,
+ 0xf8c7, 0xf717, 0xf62c, 0xf60e, 0xf61a, 0xf617,
+ 0xf637, 0xf686, 0xf709, 0xf7c7, 0xf7f3, 0xf751,
+ 0xf6e1, 0xf6be, 0xf6c5, 0xf759, 0xf7c0, 0xf7a1,
+ 0xf7f9, 0xf8e1, 0xf9cf, 0xfa9e, 0xfb16, 0xfb26,
+ 0xfaee, 0xfa92, 0xfa47, 0xfa27, 0xfa50, 0xfa92,
+ 0xfabe, 0xfb4a, 0xfc4b, 0xfdc7, 0x0000, 0x01c6,
+ 0x0255, 0x02b8, 0x02fd, 0x02ea, 0x033b, 0x038c,
+ 0x0384, 0x03ef, 0x04be, 0x0578, 0x0603, 0x066f,
+ 0x0721, 0x07d3, 0x080f, 0x085c, 0x08e5, 0x0974,
+ 0x0a4a, 0x0b59, 0x0c28, 0x0c11, 0x0b4c, 0x0b1b,
+ 0x0ae7, 0x097d, 0x0861, 0x0897, 0x08da, 0x08dd,
+ 0x090c, 0x0958, 0x09c5, 0x0a32, 0x0abc, 0x0b94,
+ 0x0c32, 0x0c5e, 0x0c5d, 0x0c4c, 0x0c53, 0x0c10,
+ 0x0b3a, 0x0abd, 0x0b36, 0x0c26, 0x0cd7, 0x0cef,
+ 0x0ccd, 0x0cb4, 0x0c59, 0x0bf2, 0x0b96, 0x0ad4,
+ 0x0a02, 0x0982, 0x0918, 0x093f, 0x0a63, 0x0b6d,
+ 0x0b6b, 0x0b22, 0x0b87, 0x0c27, 0x0c08, 0x0ad0,
+ 0x08f4, 0x0777, 0x06b3, 0x0620, 0x05b3, 0x0583,
+ 0x051c, 0x0466, 0x0353, 0x01f0, 0x00f3, 0x0063,
+ 0xffaa, 0xfece, 0xfddf, 0xfd42, 0xfdc2, 0xfeab,
+ 0xfee4, 0xfeff, 0xff72, 0xff93, 0xff3d, 0xfeab,
+ 0xfd80, 0xfbe6, 0xfacd, 0xfa10, 0xf91a, 0xf8b6,
+ 0xf95a, 0xfa52, 0xfb83, 0xfc8b, 0xfc27, 0xfa6b,
+ 0xf868, 0xf687, 0xf52a, 0xf47b, 0xf410, 0xf3d5,
+ 0xf407, 0xf48e, 0xf531, 0xf5c0, 0xf613, 0xf618,
+ 0xf5df, 0xf595, 0xf57f, 0xf5bb, 0xf5ea, 0xf585,
+ 0xf497, 0xf3d8, 0xf41e, 0xf585, 0xf756, 0xf907,
+ 0xfa31, 0xfa7b, 0xfa63, 0xfa4b, 0xfa07, 0xfa26,
+ 0xfaeb, 0xfbc5, 0xfcbd, 0xfd9b, 0xfdce, 0xfde2,
+ 0xfe30, 0xfe48, 0xfe4b, 0xfe39, 0xfdbf, 0xfd1a,
+ 0xfca8, 0xfcc4, 0xfda3, 0xfea1, 0xff11, 0xff00,
+ 0xfe74, 0xfd74, 0xfcb5, 0xfce8, 0xfd85, 0xfda3,
+ 0xfd3b, 0xfca0, 0xfc15, 0xfbc7, 0xfb80, 0xfb8c,
+ 0xfc61, 0xfd75, 0xfe75, 0xff49, 0xff31, 0xfe86,
+ 0xfe41, 0xfe37, 0xfe60, 0xff06, 0xfffa, 0x0158,
+ 0x02dd, 0x03cd, 0x042b, 0x0403, 0x0326, 0x01ec,
+ 0x00a4, 0xff9d, 0xff48, 0xff7a, 0xffa4, 0xffbe,
+ 0x0035, 0x00ee, 0x016b, 0x01c8, 0x01cf, 0x00fd,
+ 0x0009, 0xff7e, 0xff39, 0xffb5, 0x004b, 0xffe4,
+ 0xff64, 0xff48, 0xfedb, 0xfe93, 0xfecb, 0xfeda,
+ 0xfe65, 0xfd88, 0xfcd2, 0xfcab, 0xfcd6, 0xfd30,
+ 0xfd9a, 0xfe0c, 0xfe9c, 0xfed1, 0xfec0, 0xfead,
+ 0xfddc, 0xfcaf, 0xfc09, 0xfb17, 0xf9d2, 0xf9af,
+ 0xfae9, 0xfc8f, 0xfdbd, 0xfe4c, 0xfea6, 0xfeaf,
+ 0xfe77, 0xfe4d, 0xfe07, 0xfe16, 0xfe7c, 0xfe47,
+ 0xfdef, 0xfe21, 0xfe84, 0xff55, 0x003f, 0x0054,
+ 0x0004, 0xffba, 0xff66, 0xff5c, 0xff7d, 0xffc4,
+ 0x001f, 0xffff, 0xffea, 0x0070, 0x00f1, 0x0178,
+ 0x01fc, 0x01e9, 0x01cf, 0x01e2, 0x0173, 0x00db,
+ 0x0066, 0xffd3, 0xff94, 0xffd4, 0xfff8, 0x000e,
+ 0x00aa, 0x01a3, 0x0247, 0x0247, 0x01c5, 0x012a,
+ 0x00d8, 0x007f, 0xfffa, 0xffd4, 0xffbb, 0xff34,
+ 0xfebc, 0xfe4d, 0xfde2, 0xfde0, 0xfd73, 0xfc17,
+ 0xfad1, 0xfa1d, 0xf9d6, 0xf9e0, 0xf9e3, 0xf9f3,
+ 0xfa22, 0xfa16, 0xfa09, 0xfa36, 0xfa80, 0xfae3,
+ 0xfae8, 0xfa6d, 0xfa37, 0xfa60, 0xfa66, 0xfa42,
+ 0xfa30, 0xfa63, 0xfaa1, 0xfa8e, 0xfa52, 0xf9fb,
+ 0xf994, 0xf98f, 0xf9d9, 0xfa21, 0xfa8e, 0xfb57,
+ 0xfc97, 0xfe08, 0xfee2, 0xfee3, 0xfe66, 0xfdd3,
+ 0xfd40, 0xfc68, 0xfb7b, 0xfaf0, 0xfaa8, 0xfa97,
+ 0xfa96, 0xfa17, 0xf98b, 0xf984, 0xf96b, 0xf908,
+ 0xf8a3, 0xf849, 0xf855, 0xf8c0, 0xf913, 0xf973,
+ 0xf9d7, 0xfa0e, 0xfa96, 0xfb92, 0xfc8c, 0xfd48,
+ 0xfd8c, 0xfd3f, 0xfc9a, 0xfbe1, 0xfb80, 0xfbb3,
+ 0xfc23, 0xfc64, 0xfc65, 0xfc6b, 0xfc8e, 0xfc6f,
+ 0xfc0b, 0xfbc5, 0xfb97, 0xfb66, 0xfb81, 0xfc45,
+ 0xfd94, 0xfeeb, 0x004f, 0x0200, 0x0326, 0x02f9,
+ 0x023a, 0x0205, 0x027f, 0x0309, 0x02fa, 0x029b,
+ 0x02ba, 0x0331, 0x0363, 0x03bd, 0x04c2, 0x05e0,
+ 0x06c9, 0x07d1, 0x0899, 0x08f0, 0x0942, 0x0916,
+ 0x080a, 0x0711, 0x06c2, 0x071b, 0x0846, 0x09c2,
+ 0x0aec, 0x0c04, 0x0d09, 0x0d44, 0x0c94, 0x0bef,
+ 0x0c2c, 0x0cbd, 0x0cac, 0x0c0a, 0x0b44, 0x0ab4,
+ 0x0aa8, 0x0aa0, 0x0a08, 0x0984, 0x09ae, 0x0a08,
+ 0x0a2d, 0x0a32, 0x0a1c, 0x0a1f, 0x0a7c, 0x0ace,
+ 0x0a9e, 0x0a56, 0x0a7c, 0x0aa8, 0x0a31, 0x094a,
+ 0x0879, 0x07dc, 0x0793, 0x07a2, 0x0790, 0x0752,
+ 0x074d, 0x074e, 0x070d, 0x0676, 0x053e, 0x03c0,
+ 0x029b, 0x015d, 0xffa3, 0xfe18, 0xfd59, 0xfd60,
+ 0xfd9e, 0xfd73, 0xfcf4, 0xfc80, 0xfc0c, 0xfb90,
+ 0xfb3a, 0xfae4, 0xfa21, 0xf917, 0xf857, 0xf7ff,
+ 0xf819, 0xf8ec, 0xfa20, 0xfb33, 0xfbe8, 0xfbb3,
+ 0xfac6, 0xfa32, 0xf9df, 0xf92a, 0xf87b, 0xf84d,
+ 0xf867, 0xf884, 0xf899, 0xf8af, 0xf8c1, 0xf8c6,
+ 0xf8b3, 0xf879, 0xf862, 0xf89f, 0xf8ec, 0xf95e,
+ 0xfa07, 0xfa4f, 0xf9f8, 0xf975, 0xf935, 0xf95b,
+ 0xf9a5, 0xf9ba, 0xf972, 0xf8bc, 0xf820, 0xf85f,
+ 0xf95e, 0xfa8e, 0xfb77, 0xfc01, 0xfcb9, 0xfdc5,
+ 0xfe6d, 0xfe8d, 0xfe8a, 0xfe42, 0xfda1, 0xfd30,
+ 0xfd47, 0xfdaa, 0xfe58, 0xff7d, 0x00be, 0x01e9,
+ 0x030f, 0x03da, 0x0437, 0x04a8, 0x0574, 0x0672,
+ 0x06d0, 0x05fb, 0x04fc, 0x04e4, 0x056b, 0x0626,
+ 0x06b9, 0x06f5, 0x0732, 0x0742, 0x0703, 0x072d,
+ 0x07c1, 0x082a, 0x089a, 0x090a, 0x0917, 0x0935,
+ 0x09e2, 0x0a79, 0x0a42, 0x09c2, 0x099a, 0x0950,
+ 0x0887, 0x07c8, 0x07bd, 0x08a2, 0x09e6, 0x0aae,
+ 0x0aba, 0x0a18, 0x0932, 0x08a6, 0x0822, 0x075c,
+ 0x070e, 0x0753, 0x0760, 0x0704, 0x06e8, 0x0795,
+ 0x088e, 0x0936, 0x09e5, 0x0a89, 0x0aaa, 0x0abd,
+ 0x0abd, 0x09ed, 0x08bf, 0x07f4, 0x0784, 0x079c,
+ 0x0862, 0x0933, 0x099c, 0x09ce, 0x09bc, 0x08f8,
+ 0x079f, 0x0643, 0x055d, 0x0543, 0x059b, 0x0593,
+ 0x054d, 0x0552, 0x057c, 0x057a, 0x0524, 0x0492,
+ 0x042d, 0x0410, 0x041b, 0x044b, 0x04a8, 0x0554,
+ 0x05c0, 0x0511, 0x03cc, 0x02ce, 0x0243, 0x0278,
+ 0x02e7, 0x0278, 0x017d, 0x009b, 0xfff1, 0xffdf,
+ 0x003d, 0x0090, 0x00f2, 0x0122, 0x00c5, 0x0032,
+ 0xff9d, 0xff02, 0xfe6e, 0xfdf8, 0xfe12, 0xfe9c,
+ 0xfead, 0xfe46, 0xfdf8, 0xfdcf, 0xfe1c, 0xfef5,
+ 0xff5a, 0xfee6, 0xfe65, 0xfe02, 0xfd40, 0xfc6e,
+ 0xfc3b, 0xfcc3, 0xfdad, 0xfe5f, 0xfe88, 0xfe60,
+ 0xfdd4, 0xfcc2, 0xfbd1, 0xfbb2, 0xfc78, 0xfdc2,
+ 0xfef8, 0xffcd, 0x0015, 0xffad, 0xff39, 0xff76,
+ 0x0033, 0x011d, 0x019d, 0x0114, 0x003d, 0x002a,
+ 0x00ab, 0x0108, 0x00de, 0x0079, 0x0074, 0x0095,
+ 0x0022, 0xff21, 0xfe3e, 0xfdcf, 0xfd44, 0xfc33,
+ 0xfb24, 0xfa72, 0xf9f9, 0xf9ef, 0xfa86, 0xfb79,
+ 0xfc31, 0xfc0f, 0xfb38, 0xfa61, 0xf9d2, 0xf95f,
+ 0xf90c, 0xf92e, 0xf997, 0xf9ab, 0xf9b1, 0xfa1e,
+ 0xfa80, 0xfaf3, 0xfbca, 0xfc7f, 0xfd23, 0xfdf0,
+ 0xfe3e, 0xfe0f, 0xfdc6, 0xfd4d, 0xfd2a, 0xfddf,
+ 0xfed9, 0xff5f, 0xff33, 0xfebc, 0xfe7c, 0xfe29,
+ 0xfdc1, 0xfdec, 0xfe94, 0xff22, 0xff67, 0xff68,
+ 0xff67, 0xff9e, 0xffbb, 0xff70, 0xfedd, 0xfdec,
+ 0xfc6c, 0xfaef, 0xfa31, 0xfa33, 0xfab4, 0xfb50,
+ 0xfb83, 0xfb5c, 0xfb34, 0xfb56, 0xfc10, 0xfcd8,
+ 0xfd06, 0xfd20, 0xfd4c, 0xfd23, 0xfd24, 0xfda5,
+ 0xfe2d, 0xfe5e, 0xfe42, 0xfe38, 0xfe5f, 0xfe90,
+ 0xff09, 0xff62, 0xff03, 0xfeb0, 0xfeeb, 0xff6c,
+ 0x0021, 0x0071, 0x004b, 0x00e1, 0x022d, 0x0326,
+ 0x03a3, 0x03f2, 0x0472, 0x0520, 0x0587, 0x05b7,
+ 0x05f1, 0x0653, 0x06ea, 0x0733, 0x0720, 0x0749,
+ 0x074e, 0x06b2, 0x05d6, 0x052d, 0x0531, 0x05c5,
+ 0x061a, 0x0619, 0x05f8, 0x05b6, 0x0589, 0x055a,
+ 0x04de, 0x0427, 0x036f, 0x030b, 0x02ca, 0x0239,
+ 0x019a, 0x00d3, 0xffb3, 0xff1a, 0xff2b, 0xff44,
+ 0xffb9, 0x0077, 0x00ed, 0x0141, 0x014d, 0x0087,
+ 0xff2f, 0xfdd3, 0xfcac, 0xfbd8, 0xfba6, 0xfc2a,
+ 0xfcc4, 0xfcdf, 0xfc62, 0xfb57, 0xfa0c, 0xf8de,
+ 0xf7eb, 0xf759, 0xf72c, 0xf78c, 0xf897, 0xf995,
+ 0xf9e6, 0xf9b4, 0xf948, 0xf94b, 0xfa08, 0xfabc,
+ 0xfb20, 0xfb74, 0xfb83, 0xfb5e, 0xfb59, 0xfb74,
+ 0xfb66, 0xfadd, 0xfa27, 0xf9d4, 0xf9df, 0xfa49,
+ 0xfaf8, 0xfb65, 0xfb5c, 0xfaf6, 0xfa5a, 0xf9e7,
+ 0xf9de, 0xfa6c, 0xfb56, 0xfbf1, 0xfc4d, 0xfc89,
+ 0xfc19, 0xfb39, 0xfa90, 0xfa56, 0xfac8, 0xfb68,
+ 0xfb71, 0xfb4a, 0xfb99, 0xfc53, 0xfd0d, 0xfd3c,
+ 0xfce4, 0xfc6c, 0xfc07, 0xfbf2, 0xfc3b, 0xfcbf,
+ 0xfd68, 0xfdca, 0xfdaa, 0xfd71, 0xfd41, 0xfcff,
+ 0xfc95, 0xfbeb, 0xfb42, 0xfad9, 0xfae5, 0xfb98,
+ 0xfc84, 0xfd11, 0xfd2f, 0xfd2a, 0xfd56, 0xfd69,
+ 0xfd28, 0xfd1f, 0xfcfa, 0xfc14, 0xfb59, 0xfb6c,
+ 0xfbb9, 0xfbd4, 0xfb94, 0xfb65, 0xfba0, 0xfba7,
+ 0xfb76, 0xfb75, 0xfb5a, 0xfb59, 0xfbb2, 0xfc38,
+ 0xfd14, 0xfdf3, 0xfe6b, 0xfee2, 0xff46, 0xff78,
+ 0xffc2, 0xffc9, 0xff8a, 0xff82, 0xff75, 0xff00,
+ 0xfe1c, 0xfd4a, 0xfd55, 0xfde0, 0xfe42, 0xfeb0,
+ 0xff37, 0x0009, 0x014f, 0x025d, 0x0310, 0x03a4,
+ 0x03d1, 0x03ec, 0x044c, 0x04b6, 0x0573, 0x0678,
+ 0x0740, 0x07da, 0x083f, 0x0866, 0x08aa, 0x08d0,
+ 0x088d, 0x0854, 0x0889, 0x0919, 0x09c3, 0x0a64,
+ 0x0ad6, 0x0acd, 0x0a65, 0x09f1, 0x097a, 0x0916,
+ 0x08c7, 0x08a3, 0x0911, 0x09dc, 0x0a91, 0x0b31,
+ 0x0b80, 0x0b98, 0x0bc5, 0x0b84, 0x0add, 0x0a74,
+ 0x0a0d, 0x0996, 0x094f, 0x08c9, 0x07e2, 0x06fb,
+ 0x0624, 0x0579, 0x052a, 0x0522, 0x0518, 0x0494,
+ 0x036c, 0x01ee, 0x0083, 0xffa8, 0xff87, 0xffde,
+ 0x0038, 0x001b, 0xffb5, 0xff8c, 0xff6a, 0xff1d,
+ 0xfee6, 0xfeb0, 0xfe7a, 0xfe90, 0xfee6, 0xff39,
+ 0xff11, 0xfe1e, 0xfd27, 0xfd1d, 0xfdbb, 0xfe25,
+ 0xfdfe, 0xfd61, 0xfc7d, 0xfb9f, 0xfb3e, 0xfb36,
+ 0xfade, 0xfa55, 0xfa6f, 0xfb34, 0xfbd6, 0xfbfc,
+ 0xfbb2, 0xfad8, 0xf9a0, 0xf8bb, 0xf88a, 0xf8eb,
+ 0xf984, 0xfa3a, 0xfb33, 0xfc30, 0xfcfa, 0xfe02,
+ 0xff43, 0x0030, 0x00d4, 0x0149, 0x0185, 0x01bc,
+ 0x01da, 0x01ce, 0x01b8, 0x016f, 0x0138, 0x0182,
+ 0x01d1, 0x01da, 0x01f4, 0x021c, 0x026b, 0x030c,
+ 0x039c, 0x03ed, 0x0453, 0x04e8, 0x0579, 0x05aa,
+ 0x055d, 0x0508, 0x051e, 0x059b, 0x065f, 0x073c,
+ 0x07b2, 0x0734, 0x0618, 0x0570, 0x05a7, 0x0625,
+ 0x0640, 0x05d9, 0x0561, 0x0545, 0x0533, 0x04a9,
+ 0x03dc, 0x033e, 0x02e7, 0x02db, 0x0305, 0x0330,
+ 0x038c, 0x044c, 0x04e6, 0x04cb, 0x0446, 0x03f0,
+ 0x03b2, 0x030c, 0x026a, 0x0295, 0x032f, 0x0399,
+ 0x03e7, 0x03fe, 0x03c9, 0x0382, 0x0325, 0x02be,
+ 0x0249, 0x0181, 0x00ea, 0x00f1, 0x00ff, 0x00f5,
+ 0x0134, 0x017f, 0x018f, 0x014a, 0x00c6, 0x005d,
+ 0x0021, 0x003f, 0x00e4, 0x017b, 0x01cc, 0x0211,
+ 0x01e3, 0x0152, 0x0105, 0x0101, 0x011d, 0x0142,
+ 0x012f, 0x00f9, 0x00ac, 0x003b, 0x0000, 0x0026,
+ 0x0082, 0x00c3, 0x00b5, 0x00b3, 0x00d0, 0x009d,
+ 0x0059, 0x0038, 0xffde, 0xff71, 0xff20, 0xfed5,
+ 0xfef1, 0xff70, 0xfff4, 0x0094, 0x0126, 0x014c,
+ 0x0132, 0x0124, 0x011d, 0x00d2, 0x0053, 0x0031,
+ 0x0081, 0x00da, 0x0112, 0x0132, 0x019a, 0x0260,
+ 0x02c5, 0x029d, 0x0239, 0x0165, 0x0080, 0x004e,
+ 0x00da, 0x0214, 0x03cf, 0x0574, 0x0687, 0x06b5,
+ 0x0648, 0x0608, 0x060d, 0x0650, 0x06fd, 0x077f,
+ 0x077c, 0x076d, 0x0773, 0x0777, 0x076e, 0x075a,
+ 0x079e, 0x0804, 0x07af, 0x06cb, 0x05fb, 0x0521,
+ 0x042a, 0x0366, 0x0307, 0x034c, 0x043a, 0x0524,
+ 0x0565, 0x0521, 0x04e0, 0x04e1, 0x04df, 0x045c,
+ 0x035b, 0x026e, 0x01df, 0x018b, 0x014f, 0x011b,
+ 0x00f8, 0x00fc, 0x0117, 0x0140, 0x0156, 0x010c,
+ 0x005b, 0xff93, 0xff1a, 0xff2d, 0xff9a, 0x0024,
+ 0x00c9, 0x0174, 0x01ff, 0x0227, 0x01b2, 0x00e5,
+ 0x000e, 0xff67, 0xff58, 0xffe1, 0x0092, 0x0134,
+ 0x0191, 0x019c, 0x014f, 0x0084, 0xffc5, 0xffbf,
+ 0xfffe, 0xffb2, 0xfeaa, 0xfd4e, 0xfc4b, 0xfbc1,
+ 0xfb48, 0xfa9a, 0xf9df, 0xf9c7, 0xfa85, 0xfb55,
+ 0xfbd8, 0xfbd4, 0xface, 0xf950, 0xf801, 0xf6f1,
+ 0xf6b7, 0xf765, 0xf82e, 0xf8d9, 0xf924, 0xf8f2,
+ 0xf926, 0xf9d1, 0xfa1a, 0xfa0b, 0xfa18, 0xfa7c,
+ 0xfb34, 0xfbb0, 0xfb80, 0xfae4, 0xfa36, 0xf986,
+ 0xf8e4, 0xf8a3, 0xf8e2, 0xf944, 0xf9ac, 0xfa2f,
+ 0xfaa9, 0xfb48, 0xfc35, 0xfd31, 0xfe1c, 0xfebb,
+ 0xfec0, 0xfe73, 0xfe41, 0xfe30, 0xfdf7, 0xfd7b,
+ 0xfd4f, 0xfdbf, 0xfe2f, 0xfe5f, 0xfeaf, 0xff2d,
+ 0xff81, 0xff54, 0xfec6, 0xfe1c, 0xfd15, 0xfbe9,
+ 0xfb9f, 0xfc7b, 0xfdd5, 0xff34, 0x008a, 0x01b8,
+ 0x025d, 0x026f, 0x023c, 0x01d3, 0x0172, 0x0179,
+ 0x0186, 0x0128, 0x00a4, 0x0045, 0x0027, 0x0054,
+ 0x00be, 0x016b, 0x0235, 0x02ca, 0x032f, 0x0374,
+ 0x0363, 0x030c, 0x02cf, 0x02c5, 0x02bf, 0x02c8,
+ 0x0317, 0x0382, 0x0399, 0x036b, 0x036d, 0x03cb,
+ 0x045a, 0x04fe, 0x05ae, 0x0666, 0x0710, 0x0760,
+ 0x073c, 0x0717, 0x0741, 0x07b1, 0x0815, 0x07be,
+ 0x06bf, 0x05cc, 0x0497, 0x02e9, 0x01af, 0x0130,
+ 0x0120, 0x017a, 0x01da, 0x0228, 0x02b9, 0x031d,
+ 0x0307, 0x02e2, 0x02b2, 0x0247, 0x01a7, 0x00f8,
+ 0x009a, 0x0077, 0x004d, 0x008b, 0x0119, 0x0119,
+ 0x00b8, 0x00bb, 0x00be, 0x0009, 0xfef7, 0xfe3f,
+ 0xfe02, 0xfe10, 0xfe16, 0xfdce, 0xfd4c, 0xfcc7,
+ 0xfc9a, 0xfd0f, 0xfd9b, 0xfdcd, 0xfdff, 0xfe2d,
+ 0xfe48, 0xfe93, 0xfe83, 0xfdc3, 0xfd0e, 0xfca6,
+ 0xfc63, 0xfc66, 0xfc8a, 0xfc99, 0xfc6c, 0xfbf6,
+ 0xfbd0, 0xfc6d, 0xfd5b, 0xfdf4, 0xfe01, 0xfdda,
+ 0xfdc2, 0xfd9f, 0xfd9f, 0xfd9c, 0xfce7, 0xfbc9,
+ 0xfb58, 0xfbee, 0xfcf0, 0xfd9a, 0xfe13, 0xfedf,
+ 0xff88, 0xffb7, 0xffcd, 0xffc2, 0xff97, 0xff8e,
+ 0xff93, 0xffc4, 0x002f, 0x008a, 0x00d6, 0x010a,
+ 0x00d5, 0x003a, 0xffb5, 0xffc6, 0x0018, 0x000f,
+ 0x0044, 0x013c, 0x023c, 0x02a9, 0x0268, 0x01b4,
+ 0x0117, 0x00a1, 0x006e, 0x00c3, 0x0107, 0x0100,
+ 0x016d, 0x024c, 0x0322, 0x03a6, 0x037c, 0x02b0,
+ 0x01af, 0x00de, 0x008f, 0x007d, 0x0048, 0x0003,
+ 0xffc8, 0xffa6, 0xff94, 0xff7d, 0xff82, 0xff3f,
+ 0xfe71, 0xfe00, 0xfe63, 0xff02, 0xff72, 0xff61,
+ 0xfeba, 0xfdb1, 0xfc72, 0xfbad, 0xfbd1, 0xfc36,
+ 0xfc60, 0xfc37, 0xfbdc, 0xfbbc, 0xfb77, 0xfac6,
+ 0xfa64, 0xfa29, 0xf9b0, 0xf9d5, 0xfab6, 0xfb51,
+ 0xfb3a, 0xfac2, 0xfa77, 0xfa5e, 0xf9f9, 0xf9ac,
+ 0xfa20, 0xfafe, 0xfba7, 0xfbf4, 0xfc1f, 0xfc64,
+ 0xfcaa, 0xfccc, 0xfcc1, 0xfca9, 0xfcbf, 0xfce2,
+ 0xfd16, 0xfd9a, 0xfe29, 0xfebd, 0xffa5, 0x0029,
+ 0xffc2, 0xff45, 0xff80, 0x004b, 0x00fa, 0x012c,
+ 0x0140, 0x01ae, 0x028c, 0x0394, 0x044c, 0x04c3,
+ 0x052d, 0x0558, 0x0580, 0x05d9, 0x0609, 0x062e,
+ 0x0693, 0x0706, 0x076d, 0x07aa, 0x07c8, 0x0826,
+ 0x0899, 0x0918, 0x0a17, 0x0b11, 0x0b19, 0x0a74,
+ 0x09da, 0x097c, 0x0966, 0x09e0, 0x0aeb, 0x0bc6,
+ 0x0bcf, 0x0b2f, 0x0a66, 0x09e6, 0x098f, 0x08fb,
+ 0x0869, 0x080e, 0x078b, 0x0709, 0x0727, 0x07b2,
+ 0x07d1, 0x0748, 0x0690, 0x05b1, 0x0478, 0x0369,
+ 0x02ca, 0x0219, 0x012f, 0x005a, 0xffe0, 0xffad,
+ 0xff69, 0xff18, 0xfebe, 0xfe01, 0xfd11, 0xfc48,
+ 0xfb86, 0xfacc, 0xf9fd, 0xf907, 0xf870, 0xf83a,
+ 0xf7fd, 0xf7f8, 0xf822, 0xf7fc, 0xf791, 0xf73d,
+ 0xf739, 0xf777, 0xf7ca, 0xf830, 0xf861, 0xf828,
+ 0xf824, 0xf8ae, 0xf92b, 0xf91b, 0xf8c3, 0xf8c2,
+ 0xf928, 0xf963, 0xf950, 0xf936, 0xf914, 0xf8ef,
+ 0xf928, 0xf9fc, 0xfb08, 0xfbf0, 0xfce5, 0xfdd2,
+ 0xfe82, 0xff3f, 0xffc9, 0xffbb, 0xff64, 0xfeed,
+ 0xfeab, 0xff1f, 0xffce, 0x008d, 0x01a2, 0x0246,
+ 0x0242, 0x0247, 0x0214, 0x0180, 0x011f, 0x0144,
+ 0x01cb, 0x021f, 0x0222, 0x026c, 0x02da, 0x032d,
+ 0x03a5, 0x03ea, 0x03e4, 0x03c4, 0x0309, 0x01ee,
+ 0x0142, 0x00e6, 0x00b5, 0x009d, 0x0055, 0x0038,
+ 0x00a7, 0x015d, 0x01fb, 0x0224, 0x01e6, 0x0193,
+ 0x0129, 0x00b0, 0x004a, 0x001c, 0x0061, 0x00ec,
+ 0x017a, 0x0227, 0x02f3, 0x03c4, 0x042e, 0x03aa,
+ 0x02d5, 0x0256, 0x01e6, 0x01af, 0x01d5, 0x020a,
+ 0x0283, 0x033a, 0x03a9, 0x03b3, 0x0343, 0x029f,
+ 0x0286, 0x02e3, 0x02fd, 0x025e, 0x0114, 0xffd7,
+ 0xff3b, 0xff3d, 0xffca, 0x0096, 0x013a, 0x01ac,
+ 0x01fd, 0x0216, 0x01c2, 0x011e, 0x00b2, 0x0090,
+ 0x008c, 0x00c5, 0x00e3, 0x0079, 0xffd9, 0xff98,
+ 0x003a, 0x019f, 0x0305, 0x0414, 0x047b, 0x0434,
+ 0x0426, 0x0487, 0x04da, 0x0561, 0x0620, 0x069c,
+ 0x06ca, 0x06b6, 0x068f, 0x067a, 0x0640, 0x0638,
+ 0x06cc, 0x07bd, 0x08bd, 0x094a, 0x0906, 0x0875,
+ 0x07fe, 0x07a5, 0x0754, 0x06ba, 0x060d, 0x05be,
+ 0x05c9, 0x065e, 0x0748, 0x079e, 0x0745, 0x06cf,
+ 0x069d, 0x06bc, 0x06a6, 0x0603, 0x04e2, 0x0326,
+ 0x0160, 0x0077, 0x0059, 0x0092, 0x00f2, 0x0183,
+ 0x0288, 0x03c7, 0x04c7, 0x0551, 0x04e2, 0x034f,
+ 0x016d, 0x0018, 0xff7e, 0xff25, 0xfee4, 0xff4f,
+ 0x0026, 0x0095, 0x00d5, 0x0141, 0x016d, 0x0123,
+ 0x0089, 0xfffa, 0xffa4, 0xff2e, 0xfe85, 0xfe42,
+ 0xfee2, 0x003f, 0x01b7, 0x02d0, 0x0371, 0x0384,
+ 0x0327, 0x02b4, 0x022a, 0x0159, 0x0049, 0xff49,
+ 0xfed1, 0xff17, 0xffe8, 0x00db, 0x0170, 0x0143,
+ 0x0035, 0xfec5, 0xfdf9, 0xfe0e, 0xfe85, 0xff2c,
+ 0xffc2, 0x0017, 0x0099, 0x0179, 0x026b, 0x0312,
+ 0x031b, 0x027f, 0x015c, 0x000a, 0xff2a, 0xfeaa,
+ 0xfe47, 0xfe5d, 0xfed3, 0xff41, 0xffa8, 0xffa3,
+ 0xff02, 0xfe4b, 0xfdb8, 0xfd56, 0xfd2f, 0xfcf5,
+ 0xfc93, 0xfc3e, 0xfc29, 0xfc58, 0xfc80, 0xfcbc,
+ 0xfd67, 0xfdf3, 0xfdc3, 0xfd22, 0xfc86, 0xfc14,
+ 0xfbcd, 0xfbfc, 0xfcce, 0xfd9e, 0xfe14, 0xfe8d,
+ 0xfee8, 0xfee4, 0xfe75, 0xfd8c, 0xfcb0, 0xfc44,
+ 0xfc2b, 0xfc8a, 0xfd11, 0xfd4d, 0xfd93, 0xfdca,
+ 0xfdf2, 0xfeb1, 0xff97, 0x000f, 0x005d, 0x0044,
+ 0xffe0, 0xffd9, 0x0003, 0x0031, 0x006d, 0x008c,
+ 0x00f2, 0x01c9, 0x0281, 0x02f6, 0x031e, 0x02e3,
+ 0x0293, 0x024a, 0x021a, 0x0222, 0x020e, 0x01e7,
+ 0x0242, 0x034a, 0x04bc, 0x0609, 0x0697, 0x0664,
+ 0x05b0, 0x04a7, 0x039a, 0x0304, 0x0325, 0x03be,
+ 0x04b4, 0x062f, 0x07b8, 0x08b5, 0x0959, 0x09e0,
+ 0x0a29, 0x0a3e, 0x0a35, 0x0a01, 0x09c8, 0x09d7,
+ 0x0a28, 0x0a81, 0x0aff, 0x0b96, 0x0bae, 0x0b2f,
+ 0x0a7f, 0x09dc, 0x095d, 0x08a0, 0x0771, 0x0698,
+ 0x0683, 0x06b0, 0x06b9, 0x066e, 0x060f, 0x05ed,
+ 0x05ac, 0x0553, 0x0541, 0x0503, 0x046f, 0x03ec,
+ 0x0377, 0x0309, 0x0289, 0x0192, 0x0051, 0xff5a,
+ 0xff05, 0xff44, 0xff80, 0xff39, 0xfe59, 0xfd22,
+ 0xfc43, 0xfc02, 0xfbfa, 0xfc3b, 0xfd33, 0xfe9b,
+ 0xff80, 0xff40, 0xfe47, 0xfd36, 0xfc4b, 0xfbcf,
+ 0xfbb1, 0xfba7, 0xfbf8, 0xfc80, 0xfca9, 0xfcb5,
+ 0xfd0f, 0xfd8d, 0xfde5, 0xfdcd, 0xfd87, 0xfd8c,
+ 0xfd72, 0xfcd4, 0xfc1f, 0xfbdd, 0xfc32, 0xfcd2,
+ 0xfd48, 0xfd80, 0xfd85, 0xfd47, 0xfcd1, 0xfc6c,
+ 0xfc6b, 0xfc99, 0xfc74, 0xfc0a, 0xfbd3, 0xfc4d,
+ 0xfd8a, 0xfeca, 0xff6e, 0xff7a, 0xff14, 0xfea8,
+ 0xfe7d, 0xfe3a, 0xfdb5, 0xfd26, 0xfccd, 0xfcd1,
+ 0xfcda, 0xfcd7, 0xfd5b, 0xfe33, 0xfec2, 0xff1e,
+ 0xff59, 0xff7a, 0xffbb, 0xfffa, 0xffec, 0xff9c,
+ 0xff65, 0xff8d, 0xffcb, 0xffda, 0xfff7, 0xfff2,
+ 0xff3d, 0xfdd2, 0xfc33, 0xfb0e, 0xfa9d, 0xfaa0,
+ 0xfb22, 0xfbe0, 0xfbfa, 0xfb75, 0xfb07, 0xfabf,
+ 0xfa7d, 0xfa60, 0xfa2a, 0xf985, 0xf8be, 0xf888,
+ 0xf905, 0xf994, 0xf9bd, 0xf9a7, 0xf978, 0xf91e,
+ 0xf8b5, 0xf872, 0xf87e, 0xf8dd, 0xf931, 0xf932,
+ 0xf913, 0xf8cc, 0xf85d, 0xf86b, 0xf919, 0xf9cd,
+ 0xfa41, 0xfa6f, 0xfaac, 0xfb44, 0xfb73, 0xfaf3,
+ 0xfae3, 0xfb82, 0xfc17, 0xfc70, 0xfcbe, 0xfd59,
+ 0xfe11, 0xfe3d, 0xfe25, 0xfe3b, 0xfe20, 0xfdee,
+ 0xfe22, 0xfed4, 0xffd7, 0x009f, 0x0111, 0x019e,
+ 0x020c, 0x0235, 0x026a, 0x0265, 0x01fe, 0x016f,
+ 0x0098, 0xffcc, 0xff98, 0xffda, 0x0067, 0x012d,
+ 0x01f9, 0x02cf, 0x0391, 0x03e4, 0x03a9, 0x0304,
+ 0x0264, 0x0222, 0x0237, 0x02a1, 0x0328, 0x0375,
+ 0x03bd, 0x040c, 0x03f0, 0x0372, 0x030c, 0x02c1,
+ 0x0257, 0x01fe, 0x0207, 0x0230, 0x021e, 0x01ff,
+ 0x0204, 0x023b, 0x02b7, 0x0351, 0x0401, 0x0502,
+ 0x061a, 0x069c, 0x0639, 0x0571, 0x04f7, 0x04c8,
+ 0x048c, 0x0459, 0x043a, 0x0401, 0x03a7, 0x0345,
+ 0x030a, 0x0339, 0x03cb, 0x0457, 0x0466, 0x03e5,
+ 0x0327, 0x026c, 0x01ce, 0x0179, 0x019f, 0x0234,
+ 0x02bc, 0x02cc, 0x029a, 0x0275, 0x0252, 0x0225,
+ 0x0206, 0x021d, 0x0252, 0x0254, 0x0234, 0x021a,
+ 0x01b1, 0x00a5, 0xff37, 0xfe27, 0xfde6, 0xfdee,
+ 0xfde0, 0xfe09, 0xfe37, 0xfdef, 0xfd71, 0xfd31,
+ 0xfd64, 0xfdf2, 0xfe64, 0xfe4d, 0xfdbd, 0xfd3c,
+ 0xfd37, 0xfd6b, 0xfd83, 0xfdb1, 0xfdfa, 0xfe2d,
+ 0xfe57, 0xfe7c, 0xfe85, 0xfe6a, 0xfdf0, 0xfcf3,
+ 0xfbe4, 0xfb5c, 0xfb41, 0xfb34, 0xfb4c, 0xfba6,
+ 0xfc0d, 0xfc5f, 0xfcb5, 0xfd61, 0xfe6d, 0xff36,
+ 0xff30, 0xfe5a, 0xfd4e, 0xfcfe, 0xfd67, 0xfdaa,
+ 0xfdaa, 0xfd9d, 0xfd8b, 0xfdcd, 0xfe4a, 0xfea0,
+ 0xfef0, 0xff1f, 0xfef8, 0xfeb3, 0xfe83, 0xfebd,
+ 0xff57, 0xff8c, 0xff52, 0xff3d, 0xff64, 0xffb5,
+ 0xffcc, 0xff29, 0xfe34, 0xfda7, 0xfdf1, 0xff14,
+ 0x0062, 0x016e, 0x0248, 0x02d9, 0x034c, 0x03db,
+ 0x044f, 0x047e, 0x0454, 0x0412, 0x045c, 0x04ec,
+ 0x0524, 0x0530, 0x0535, 0x04fc, 0x045f, 0x035e,
+ 0x0281, 0x0238, 0x0229, 0x0207, 0x01e3, 0x01b4,
+ 0x016a, 0x0109, 0x00cc, 0x00f0, 0x016a, 0x0235,
+ 0x032b, 0x03b1, 0x0347, 0x01e8, 0x0024, 0xfeee,
+ 0xfead, 0xff10, 0xff81, 0xffac, 0xffd2, 0xffea,
+ 0xff73, 0xfe96, 0xfdd7, 0xfd7b, 0xfdd6, 0xfec6,
+ 0xffc6, 0x00ba, 0x019b, 0x0239, 0x028e, 0x027e,
+ 0x020a, 0x01aa, 0x01dc, 0x027a, 0x02e1, 0x02e1,
+ 0x02cf, 0x02b5, 0x02a6, 0x0303, 0x03ee, 0x0518,
+ 0x05e7, 0x05f8, 0x056f, 0x04a2, 0x042e, 0x0467,
+ 0x049d, 0x0478, 0x046e, 0x0497, 0x04f6, 0x0583,
+ 0x05d6, 0x05fd, 0x0627, 0x0631, 0x0639, 0x0634,
+ 0x0611, 0x0616, 0x060c, 0x05d2, 0x0600, 0x06a9,
+ 0x074e, 0x0792, 0x0782, 0x0792, 0x07bb, 0x07a1,
+ 0x078d, 0x079d, 0x07b8, 0x081a, 0x0859, 0x07ff,
+ 0x077b, 0x0716, 0x06de, 0x06dd, 0x06c5, 0x06b1,
+ 0x06d6, 0x06cd, 0x064d, 0x0569, 0x0471, 0x03e8,
+ 0x03ba, 0x0392, 0x037d, 0x0370, 0x0398, 0x0436,
+ 0x04de, 0x0533, 0x051d, 0x043d, 0x02ba, 0x0173,
+ 0x010b, 0x017b, 0x0222, 0x025e, 0x0215, 0x0145,
+ 0xfffa, 0xfebb, 0xfe19, 0xfdff, 0xfe05, 0xfe2e,
+ 0xfea3, 0xff2e, 0xffba, 0x007f, 0x013e, 0x0165,
+ 0x00de, 0x001b, 0xff9d, 0xff87, 0xffab, 0xffc6,
+ 0xffc3, 0xffc4, 0xffbe, 0xff73, 0xfefc, 0xfeaf,
+ 0xfeae, 0xfee1, 0xff1c, 0xff46, 0xff54, 0xff39,
+ 0xff29, 0xff61, 0xffcf, 0x005e, 0x00ff, 0x016c,
+ 0x014d, 0x008b, 0xffa0, 0xff06, 0xfea9, 0xfe6c,
+ 0xfe27, 0xfd9c, 0xfd3b, 0xfd64, 0xfdc8, 0xfe7a,
+ 0xff78, 0x0025, 0x0064, 0x005e, 0x0010, 0xffcb,
+ 0xffd3, 0x0018, 0x006f, 0x00ad, 0x010a, 0x01ed,
+ 0x0325, 0x03ec, 0x0398, 0x0270, 0x0174, 0x00f1,
+ 0x00a4, 0x0088, 0x00c3, 0x0179, 0x023d, 0x0265,
+ 0x023f, 0x0233, 0x01f6, 0x01a9, 0x0191, 0x018f,
+ 0x0189, 0x014b, 0x00e9, 0x0093, 0xffcf, 0xfeb7,
+ 0xfe47, 0xfe9a, 0xff0d, 0xff0e, 0xfe74, 0xfdd6,
+ 0xfd71, 0xfd00, 0xfd03, 0xfdd6, 0xfed0, 0xff63,
+ 0xff87, 0xff97, 0x0004, 0x00dc, 0x01fe, 0x02de,
+ 0x02bc, 0x01b1, 0x006e, 0xffaa, 0xffde, 0x0080,
+ 0x00f0, 0x0152, 0x018d, 0x01b5, 0x0237, 0x027f,
+ 0x0224, 0x01e0, 0x01ff, 0x022f, 0x023e, 0x021e,
+ 0x0221, 0x028c, 0x035e, 0x049d, 0x05dc, 0x0663,
+ 0x060e, 0x051d, 0x0405, 0x032f, 0x0287, 0x021d,
+ 0x023c, 0x02cf, 0x0384, 0x0428, 0x04aa, 0x04f8,
+ 0x04c0, 0x03e7, 0x02e5, 0x025c, 0x02b6, 0x037a,
+ 0x039b, 0x0319, 0x02bd, 0x02d6, 0x035b, 0x03e5,
+ 0x03ff, 0x03fb, 0x041e, 0x03f3, 0x034e, 0x027b,
+ 0x01bd, 0x0149, 0x00ee, 0x005b, 0xffe9, 0x0011,
+ 0x0098, 0x00e2, 0x009f, 0xffd7, 0xfeae, 0xfd7a,
+ 0xfc9f, 0xfc1a, 0xfbb3, 0xfb62, 0xfb10, 0xfa9a,
+ 0xfa07, 0xf95f, 0xf8c9, 0xf897, 0xf8cb, 0xf902,
+ 0xf93c, 0xf9e1, 0xfacd, 0xfb5b, 0xfb69, 0xfb46,
+ 0xfaf6, 0xfa4f, 0xf963, 0xf8a7, 0xf89d, 0xf917,
+ 0xf97c, 0xf9a4, 0xf9c7, 0xfa12, 0xfa7c, 0xfad7,
+ 0xfb1c, 0xfb46, 0xfb40, 0xfb4d, 0xfb95, 0xfbce,
+ 0xfbda, 0xfbd5, 0xfbfd, 0xfc9e, 0xfd37, 0xfd36,
+ 0xfd49, 0xfe14, 0xff42, 0x0075, 0x0162, 0x01c4,
+ 0x0199, 0x00e0, 0xfffc, 0xff8f, 0xff87, 0xff9a,
+ 0xffc1, 0xffca, 0xffcc, 0x0014, 0x0084, 0x00f3,
+ 0x016e, 0x01ef, 0x0263, 0x0299, 0x0292, 0x029c,
+ 0x02a3, 0x0257, 0x01c3, 0x013a, 0x010d, 0x0105,
+ 0x007e, 0xff92, 0xfedf, 0xfe93, 0xfe8c, 0xfe83,
+ 0xfe12, 0xfd43, 0xfc82, 0xfc30, 0xfc6f, 0xfd04,
+ 0xfd8d, 0xfddf, 0xfdf7, 0xfdc5, 0xfd37, 0xfc92,
+ 0xfc25, 0xfbf5, 0xfc1f, 0xfcc0, 0xfda0, 0xfea1,
+ 0xff98, 0xfffa, 0xff75, 0xfe23, 0xfc7f, 0xfb51,
+ 0xfac0, 0xfa8e, 0xfb0c, 0xfc42, 0xfd73, 0xfded,
+ 0xfd6d, 0xfc7b, 0xfc01, 0xfc36, 0xfcf6, 0xfe0b,
+ 0xfefe, 0xffd3, 0x00b2, 0x013f, 0x017a, 0x01ac,
+ 0x01a9, 0x017d, 0x0176, 0x017b, 0x015e, 0x0144,
+ 0x0192, 0x025b, 0x02fe, 0x0326, 0x034d, 0x03ca,
+ 0x0468, 0x04e2, 0x054a, 0x05e0, 0x0666, 0x0682,
+ 0x06a7, 0x073e, 0x07cf, 0x07d7, 0x0761, 0x06ed,
+ 0x06e4, 0x072e, 0x0782, 0x07be, 0x07db, 0x0801,
+ 0x081b, 0x07ec, 0x07d0, 0x0832, 0x08bc, 0x0917,
+ 0x0952, 0x0962, 0x0926, 0x08c7, 0x0881, 0x083c,
+ 0x07b1, 0x06df, 0x05c3, 0x0488, 0x03bf, 0x037e,
+ 0x0360, 0x037a, 0x03a8, 0x036f, 0x02f2, 0x0274,
+ 0x01ef, 0x0183, 0x013b, 0x012d, 0x0181, 0x01ab,
+ 0x012e, 0x007a, 0x0000, 0xffcc, 0xffd2, 0xffe1,
+ 0xffd0, 0xff70, 0xfe99, 0xfdaa, 0xfcda, 0xfbde,
+ 0xfabd, 0xf9a3, 0xf893, 0xf7ea, 0xf7e8, 0xf84f,
+ 0xf8cd, 0xf8fb, 0xf8bb, 0xf890, 0xf89e, 0xf85d,
+ 0xf7c6, 0xf777, 0xf7ab, 0xf806, 0xf853, 0xf8cf,
+ 0xf981, 0xf9ea, 0xf9da, 0xf9c7, 0xfa1a, 0xfab5,
+ 0xfb33, 0xfb87, 0xfc1d, 0xfd1c, 0xfe1b, 0xfeda,
+ 0xff38, 0xfee9, 0xfe1b, 0xfd7e, 0xfd79, 0xfe06,
+ 0xfedd, 0xffc0, 0x00a5, 0x0149, 0x015b, 0x0138,
+ 0x0136, 0x00f8, 0x005d, 0xfff6, 0x0039, 0x00d6,
+ 0x0136, 0x0177, 0x01f6, 0x025a, 0x0234, 0x0193,
+ 0x009a, 0xffa1, 0xff4a, 0xffce, 0x00a9, 0x015a,
+ 0x01d5, 0x021f, 0x0200, 0x015b, 0x006c, 0xffd6,
+ 0xfff8, 0x003f, 0x0033, 0x004d, 0x00ae, 0x00bf,
+ 0x0055, 0xffdd, 0xffb5, 0xffd2, 0xffdb, 0xffd3,
+ 0xffdc, 0xffdc, 0xffd1, 0xffa4, 0xff38, 0xfeeb,
+ 0xfef7, 0xff3c, 0xffca, 0x0094, 0x0144, 0x0176,
+ 0x00e2, 0xffe9, 0xff52, 0xff77, 0x0040, 0x012b,
+ 0x019c, 0x01b3, 0x01bb, 0x017e, 0x0107, 0x00b7,
+ 0x00cc, 0x012f, 0x017f, 0x017e, 0x014f, 0x0136,
+ 0x0164, 0x01be, 0x01fe, 0x0228, 0x023b, 0x0219,
+ 0x01fc, 0x0214, 0x0244, 0x026e, 0x028d, 0x02bc,
+ 0x02f7, 0x0310, 0x0321, 0x0369, 0x03d4, 0x042d,
+ 0x0455, 0x045d, 0x0471, 0x04c6, 0x05af, 0x06e1,
+ 0x077b, 0x0765, 0x0705, 0x065e, 0x059d, 0x04fe,
+ 0x047d, 0x0457, 0x0492, 0x04c2, 0x04e5, 0x0535,
+ 0x05ae, 0x063a, 0x069e, 0x06ad, 0x0696, 0x06a9,
+ 0x0712, 0x0795, 0x07c9, 0x0790, 0x06fa, 0x064e,
+ 0x05e6, 0x05ad, 0x05a2, 0x061a, 0x06de, 0x0757,
+ 0x0742, 0x06a8, 0x05f8, 0x05a9, 0x05ac, 0x05da,
+ 0x0616, 0x0620, 0x05ff, 0x0605, 0x064d, 0x0682,
+ 0x064e, 0x05e2, 0x058c, 0x052c, 0x04bd, 0x0483,
+ 0x0480, 0x0474, 0x0449, 0x0418, 0x03e4, 0x038d,
+ 0x032d, 0x030c, 0x031a, 0x02fa, 0x0262, 0x01b6,
+ 0x01b9, 0x0262, 0x02f8, 0x0325, 0x02eb, 0x0275,
+ 0x021f, 0x01fd, 0x01ca, 0x0139, 0x004e, 0xff83,
+ 0xff0d, 0xfec3, 0xfecb, 0xff37, 0xffad, 0x0010,
+ 0x005f, 0x0084, 0x00bb, 0x0106, 0x0101, 0x0085,
+ 0xffb5, 0xfec4, 0xfdf4, 0xfd74, 0xfd6d, 0xfdc1,
+ 0xfddf, 0xfd9d, 0xfd90, 0xfe02, 0xfea2, 0xff25,
+ 0xff64, 0xff21, 0xfe4a, 0xfd41, 0xfc8e, 0xfc5f,
+ 0xfc71, 0xfc60, 0xfc1f, 0xfbe1, 0xfba3, 0xfb46,
+ 0xfaf9, 0xfafc, 0xfb55, 0xfbfa, 0xfcac, 0xfcf9,
+ 0xfce7, 0xfce6, 0xfcf2, 0xfce7, 0xfd25, 0xfdee,
+ 0xfef2, 0xffb0, 0xfff6, 0x0035, 0x00d7, 0x0184,
+ 0x01d5, 0x01cc, 0x0196, 0x0192, 0x01d6, 0x020f,
+ 0x023a, 0x025d, 0x023c, 0x01f0, 0x01c4, 0x01ea,
+ 0x0285, 0x034a, 0x03de, 0x043a, 0x043b, 0x0403,
+ 0x0400, 0x03f3, 0x036f, 0x02b0, 0x0213, 0x01c2,
+ 0x01d8, 0x0253, 0x0302, 0x0396, 0x03f6, 0x043c,
+ 0x0476, 0x04e0, 0x058f, 0x0614, 0x0657, 0x068c,
+ 0x0681, 0x0647, 0x064e, 0x0698, 0x06f6, 0x0713,
+ 0x0688, 0x0599, 0x04bb, 0x03ee, 0x034a, 0x02ce,
+ 0x01f4, 0x0091, 0xff3d, 0xfe9a, 0xfed8, 0xff8e,
+ 0x0014, 0x002f, 0x0017, 0xfff7, 0xffc4, 0xff97,
+ 0xff9a, 0xff97, 0xff2f, 0xfe7f, 0xfe0c, 0xfe2e,
+ 0xfeb7, 0xff24, 0xff23, 0xfeb7, 0xfe13, 0xfd84,
+ 0xfd57, 0xfda0, 0xfe2d, 0xfec7, 0xff5d, 0xffc2,
+ 0xff95, 0xfee2, 0xfe5c, 0xfe5f, 0xfe50, 0xfda4,
+ 0xfcc8, 0xfc6a, 0xfc7f, 0xfca5, 0xfd16, 0xfe14,
+ 0xff0b, 0xff7a, 0xffb5, 0x0013, 0x00a3, 0x014b,
+ 0x019e, 0x018b, 0x017f, 0x0172, 0x0159, 0x01a4,
+ 0x023a, 0x0290, 0x0294, 0x0261, 0x0201, 0x015f,
+ 0x007b, 0xffe1, 0xfffa, 0x0090, 0x0187, 0x02cb,
+ 0x03eb, 0x04a0, 0x04ef, 0x04fb, 0x0508, 0x0505,
+ 0x04c3, 0x0468, 0x0422, 0x041b, 0x0494, 0x057b,
+ 0x066f, 0x070b, 0x0724, 0x0701, 0x06f2, 0x06d9,
+ 0x069d, 0x0662, 0x0637, 0x061c, 0x0607, 0x05ea,
+ 0x05c1, 0x0579, 0x050e, 0x04ac, 0x046b, 0x0455,
+ 0x046c, 0x0442, 0x0338, 0x018d, 0x002f, 0xff99,
+ 0xffc0, 0x006e, 0x0129, 0x019f, 0x01e6, 0x01fc,
+ 0x0202, 0x024c, 0x02b2, 0x02cc, 0x0281, 0x01dd,
+ 0x00f5, 0xfffb, 0xff0e, 0xfe42, 0xfdb2, 0xfd87,
+ 0xfdb8, 0xfdee, 0xfdfe, 0xfdd9, 0xfd4b, 0xfc66,
+ 0xfb7f, 0xfac6, 0xfa46, 0xf9cb, 0xf938, 0xf8d7,
+ 0xf88b, 0xf807, 0xf796, 0xf758, 0xf708, 0xf6b2,
+ 0xf68d, 0xf6bc, 0xf70c, 0xf708, 0xf6ed, 0xf706,
+ 0xf6c6, 0xf625, 0xf5e1, 0xf61f, 0xf688, 0xf6b3,
+ 0xf66b, 0xf619, 0xf60b, 0xf62c, 0xf692, 0xf725,
+ 0xf795, 0xf7e9, 0xf829, 0xf81f, 0xf79f, 0xf6dc,
+ 0xf675, 0xf6b3, 0xf73b, 0xf7c7, 0xf854, 0xf901,
+ 0xf9f5, 0xfae6, 0xfb6d, 0xfbac, 0xfbda, 0xfc08,
+ 0xfc3e, 0xfc5c, 0xfc6b, 0xfcb2, 0xfd4f, 0xfe2b,
+ 0xfef4, 0xff3c, 0xff30, 0xff4f, 0xff7d, 0xff62,
+ 0xff22, 0xff0b, 0xff3a, 0xff9b, 0xffd1, 0xffad,
+ 0xff7b, 0xff7c, 0xffc8, 0x0053, 0x00cb, 0x0142,
+ 0x0232, 0x0349, 0x03f4, 0x045c, 0x04b5, 0x0513,
+ 0x0595, 0x05f1, 0x0615, 0x066b, 0x06e8, 0x0767,
+ 0x07da, 0x07f1, 0x07ad, 0x073c, 0x0684, 0x05df,
+ 0x05bf, 0x0615, 0x06ee, 0x0819, 0x08f3, 0x0944,
+ 0x092d, 0x08f4, 0x091b, 0x0985, 0x09a0, 0x0957,
+ 0x08e7, 0x089e, 0x08cb, 0x0958, 0x09fc, 0x0aae,
+ 0x0b86, 0x0c64, 0x0ce4, 0x0cef, 0x0cbc, 0x0c3e,
+ 0x0b86, 0x0afb, 0x0aac, 0x0a7e, 0x0a83, 0x0ab2,
+ 0x0aea, 0x0ae7, 0x0a60, 0x09ae, 0x093e, 0x08e4,
+ 0x089a, 0x0895, 0x0899, 0x084a, 0x07a0, 0x06d5,
+ 0x063b, 0x05da, 0x058a, 0x0517, 0x0402, 0x021c,
+ 0x0039, 0xff37, 0xff04, 0xfefe, 0xfeac, 0xfe31,
+ 0xfe06, 0xfe12, 0xfdd1, 0xfd38, 0xfc78, 0xfb93,
+ 0xfac3, 0xfa51, 0xfa2d, 0xfa23, 0xfa00, 0xf9b4,
+ 0xf97b, 0xf959, 0xf905, 0xf8b9, 0xf8ee, 0xf962,
+ 0xf99e, 0xf9a6, 0xf9b1, 0xf9e3, 0xfa57, 0xfb08,
+ 0xfbcb, 0xfc58, 0xfc7a, 0xfc5c, 0xfc2c, 0xfbe5,
+ 0xfbbf, 0xfbe7, 0xfc2a, 0xfc67, 0xfc7e, 0xfc38,
+ 0xfbbf, 0xfb74, 0xfb8d, 0xfc14, 0xfcbc, 0xfd57,
+ 0xfe1f, 0xfec2, 0xfebf, 0xfe65, 0xfe0d, 0xfdaf,
+ 0xfd62, 0xfd3f, 0xfd7e, 0xfe4d, 0xff40, 0x0007,
+ 0x00a5, 0x00ae, 0x0017, 0xff98, 0xffbb, 0x00a5,
+ 0x01e4, 0x029c, 0x029f, 0x024c, 0x0212, 0x0271,
+ 0x0322, 0x0362, 0x032d, 0x02c8, 0x0221, 0x0156,
+ 0x00ae, 0x0068, 0x007e, 0x0086, 0x0069, 0x0076,
+ 0x00b1, 0x00ed, 0x0107, 0x00ea, 0x00c2, 0x00a6,
+ 0x0063, 0x0001, 0xffba, 0xffb5, 0xfff9, 0x004a,
+ 0x005b, 0x000d, 0xff7f, 0xff02, 0xfec2, 0xfeac,
+ 0xfeb9, 0xfed0, 0xfecc, 0xfeef, 0xff69, 0xffdc,
+ 0xffe9, 0xff86, 0xfeaa, 0xfd5b, 0xfc0c, 0xfb54,
+ 0xfb53, 0xfb82, 0xfb55, 0xfaf2, 0xfae4, 0xfb31,
+ 0xfb80, 0xfbc1, 0xfbe6, 0xfbd5, 0xfbbb, 0xfbb2,
+ 0xfbaa, 0xfbd4, 0xfc61, 0xfd5a, 0xfea0, 0xffa2,
+ 0x0001, 0x0038, 0x00b1, 0x0131, 0x01a8, 0x025a,
+ 0x0345, 0x03ff, 0x043b, 0x0432, 0x0453, 0x04b8,
+ 0x0538, 0x05d1, 0x069e, 0x079a, 0x089a, 0x094f,
+ 0x0958, 0x08b1, 0x07cb, 0x0712, 0x06a1, 0x0654,
+ 0x05fc, 0x0595, 0x0532, 0x0500, 0x0539, 0x05c9,
+ 0x0673, 0x0716, 0x076f, 0x0762, 0x0729, 0x06b2,
+ 0x0600, 0x05a1, 0x05bc, 0x05dc, 0x05bc, 0x0546,
+ 0x0498, 0x0410, 0x03ca, 0x03c2, 0x040b, 0x047e,
+ 0x04c2, 0x04ac, 0x045a, 0x0405, 0x03b9, 0x0380,
+ 0x0363, 0x0323, 0x029f, 0x022f, 0x0212, 0x0220,
+ 0x0212, 0x01da, 0x019b, 0x0154, 0x0117, 0x0124,
+ 0x012a, 0x00a4, 0xffdb, 0xff3b, 0xfe8f, 0xfd97,
+ 0xfca2, 0xfc31, 0xfc4e, 0xfc9b, 0xfcf2, 0xfd60,
+ 0xfdd0, 0xfe18, 0xfe24, 0xfe05, 0xfde5, 0xfdab,
+ 0xfd1e, 0xfc81, 0xfc61, 0xfcc8, 0xfd65, 0xfe1a,
+ 0xfeba, 0xfee0, 0xfe9a, 0xfe4c, 0xfe27, 0xfe39,
+ 0xfe4e, 0xfe5a, 0xfed1, 0xffb1, 0x004f, 0x0096,
+ 0x00ce, 0x00f7, 0x00f3, 0x00b9, 0x00a0, 0x00f2,
+ 0x0161, 0x01a9, 0x01a6, 0x010a, 0x0017, 0xff5c,
+ 0xff09, 0xff5c, 0x0030, 0x00dc, 0x012b, 0x0105,
+ 0x0037, 0xff47, 0xfea1, 0xfe33, 0xfe48, 0xff05,
+ 0xffe7, 0x00a7, 0x0147, 0x0185, 0x0113, 0xffef,
+ 0xfe8a, 0xfd90, 0xfd68, 0xfdca, 0xfdf5, 0xfda0,
+ 0xfd78, 0xfdf6, 0xfeb5, 0xff40, 0xff9c, 0xffd2,
+ 0xffc2, 0xff8a, 0xff5d, 0xff27, 0xfed1, 0xfe7b,
+ 0xfe49, 0xfe5f, 0xfeae, 0xff0e, 0xff98, 0x0031,
+ 0x007c, 0x008a, 0x0098, 0x00c2, 0x0142, 0x0207,
+ 0x02b9, 0x0349, 0x03c8, 0x0422, 0x0453, 0x0453,
+ 0x0413, 0x03b7, 0x038a, 0x038f, 0x0366, 0x0312,
+ 0x02fe, 0x031e, 0x034c, 0x038b, 0x036a, 0x02c3,
+ 0x021a, 0x0197, 0x014f, 0x017c, 0x01c2, 0x01de,
+ 0x0242, 0x02f9, 0x037f, 0x03b0, 0x03d3, 0x03e8,
+ 0x039e, 0x032a, 0x032a, 0x0391, 0x03d3, 0x03a4,
+ 0x0344, 0x035e, 0x0401, 0x0495, 0x0500, 0x0555,
+ 0x0569, 0x0565, 0x054e, 0x04d3, 0x0416, 0x033a,
+ 0x023b, 0x015b, 0x00b0, 0x001d, 0xffa9, 0xff48,
+ 0xff01, 0xfefb, 0xff31, 0xff97, 0x001e, 0x00a4,
+ 0x0111, 0x0145, 0x0129, 0x00b3, 0xffe2, 0xff2d,
+ 0xff14, 0xff6e, 0x0026, 0x0120, 0x01c6, 0x0201,
+ 0x0207, 0x01c3, 0x0192, 0x01c3, 0x01f0, 0x01e1,
+ 0x0190, 0x00f8, 0x006d, 0x0011, 0xffb0, 0xff59,
+ 0xff35, 0xff42, 0xff4a, 0xff1a, 0xff06, 0xff7d,
+ 0x0065, 0x0162, 0x01ed, 0x019f, 0x00d4, 0x0046,
+ 0x0056, 0x00cf, 0x0115, 0x00f4, 0x00d4, 0x010f,
+ 0x01b3, 0x0278, 0x031c, 0x03af, 0x03fb, 0x0390,
+ 0x02ab, 0x0205, 0x01f0, 0x021e, 0x0227, 0x021c,
+ 0x021c, 0x01fe, 0x01eb, 0x0231, 0x02bd, 0x036f,
+ 0x042a, 0x04c8, 0x053a, 0x0553, 0x0518, 0x04d6,
+ 0x048a, 0x0435, 0x041b, 0x0446, 0x04a4, 0x04fd,
+ 0x04d9, 0x0410, 0x02b6, 0x0115, 0x0006, 0x0003,
+ 0x0090, 0x011d, 0x0168, 0x0161, 0x0114, 0x007b,
+ 0xffc6, 0xff50, 0xff27, 0xff1d, 0xfef2, 0xfe9a,
+ 0xfe64, 0xfe4b, 0xfe15, 0xfe04, 0xfe34, 0xfe6e,
+ 0xfeb5, 0xfeee, 0xfede, 0xfe73, 0xfd94, 0xfc92,
+ 0xfc07, 0xfbf0, 0xfc02, 0xfc1a, 0xfc0c, 0xfbf3,
+ 0xfbe4, 0xfb96, 0xfb1a, 0xfab9, 0xfa70, 0xfa37,
+ 0xf9f2, 0xf987, 0xf95a, 0xf9b2, 0xfa5e, 0xfb66,
+ 0xfccf, 0xfe0d, 0xfeaa, 0xfec7, 0xfed1, 0xff19,
+ 0xffa3, 0x002f, 0x0073, 0x005d, 0x002d, 0x0037,
+ 0x0094, 0x0111, 0x016f, 0x01b0, 0x01f6, 0x0225,
+ 0x020c, 0x01b2, 0x016a, 0x017c, 0x01db, 0x0254,
+ 0x02d5, 0x033a, 0x034f, 0x030c, 0x0296, 0x021f,
+ 0x01a5, 0x00e4, 0xfffd, 0xff8c, 0xffd5, 0x0091,
+ 0x0192, 0x02b1, 0x0398, 0x0417, 0x042f, 0x03eb,
+ 0x036b, 0x02e1, 0x0279, 0x0264, 0x02b0, 0x0331,
+ 0x03be, 0x0420, 0x03f7, 0x032f, 0x0260, 0x0233,
+ 0x02b3, 0x034b, 0x0325, 0x01e9, 0x0025, 0xfebd,
+ 0xfe1b, 0xfe41, 0xff0b, 0x0015, 0x00ac, 0x004f,
+ 0xff33, 0xfdf4, 0xfd25, 0xfcf3, 0xfd0a, 0xfd0b,
+ 0xfcea, 0xfcb1, 0xfc77, 0xfc65, 0xfc7b, 0xfcbc,
+ 0xfd42, 0xfdd6, 0xfe50, 0xfec9, 0xff23, 0xff22,
+ 0xfece, 0xfe57, 0xfe0c, 0xfdfb, 0xfdc9, 0xfd5a,
+ 0xfcc3, 0xfc12, 0xfbb9, 0xfc0c, 0xfca1, 0xfcef,
+ 0xfcc5, 0xfc65, 0xfc77, 0xfd3c, 0xfe39, 0xfee1,
+ 0xfef7, 0xfe94, 0xfe24, 0xfdeb, 0xfdc7, 0xfd94,
+ 0xfd98, 0xfe00, 0xfe64, 0xfe97, 0xff04, 0xffb6,
+ 0x0035, 0x001f, 0xff54, 0xfe62, 0xfdeb, 0xfdaf,
+ 0xfd72, 0xfd5e, 0xfd47, 0xfd46, 0xfdca, 0xfe8c,
+ 0xfef0, 0xfed1, 0xfe43, 0xfd93, 0xfd2d, 0xfd3b,
+ 0xfd91, 0xfdb3, 0xfd3c, 0xfc7c, 0xfc50, 0xfd16,
+ 0xfe2c, 0xfedf, 0xff54, 0xffcc, 0x000e, 0xfff0,
+ 0xff8f, 0xff18, 0xfeb2, 0xfe6b, 0xfe3e, 0xfe3e,
+ 0xfe77, 0xfed8, 0xff4a, 0xff9f, 0xff76, 0xfeba,
+ 0xfdf5, 0xfd95, 0xfd5f, 0xfd1e, 0xfd12, 0xfd8f,
+ 0xfe99, 0xffab, 0x001d, 0xffee, 0xff7a, 0xff05,
+ 0xfee9, 0xff59, 0x0016, 0x00d2, 0x013d, 0x0136,
+ 0x011c, 0x015d, 0x01e2, 0x0254, 0x0291, 0x0298,
+ 0x025d, 0x020e, 0x0211, 0x026b, 0x02d2, 0x032b,
+ 0x0354, 0x034f, 0x0376, 0x03e4, 0x0459, 0x049e,
+ 0x048c, 0x0451, 0x0457, 0x048e, 0x049b, 0x0487,
+ 0x049d, 0x04e1, 0x052f, 0x05a4, 0x064a, 0x06c7,
+ 0x0705, 0x0756, 0x079b, 0x0775, 0x06ea, 0x0642,
+ 0x05d3, 0x05af, 0x057f, 0x054d, 0x054b, 0x050d,
+ 0x043e, 0x035d, 0x0310, 0x038b, 0x0455, 0x04b5,
+ 0x049f, 0x0486, 0x0473, 0x044a, 0x042b, 0x042a,
+ 0x042f, 0x0417, 0x03d1, 0x0392, 0x036d, 0x0319,
+ 0x02aa, 0x02a8, 0x032e, 0x03d0, 0x0419, 0x03e9,
+ 0x039d, 0x039f, 0x03e9, 0x042a, 0x042c, 0x03f5,
+ 0x0391, 0x0302, 0x0293, 0x0299, 0x02ed, 0x0321,
+ 0x0309, 0x02e1, 0x02ea, 0x02e0, 0x026d, 0x01e6,
+ 0x0177, 0x00e0, 0x0052, 0x0054, 0x013b, 0x02ce,
+ 0x0420, 0x04b5, 0x0501, 0x0523, 0x04da, 0x0466,
+ 0x0409, 0x03b6, 0x0373, 0x0346, 0x0311, 0x02c2,
+ 0x0269, 0x0216, 0x01d1, 0x01c9, 0x01eb, 0x01d3,
+ 0x01af, 0x01dc, 0x01f9, 0x01d0, 0x0186, 0x00d5,
+ 0xffb3, 0xfea2, 0xfdcb, 0xfd27, 0xfcc4, 0xfc87,
+ 0xfc58, 0xfc34, 0xfbf7, 0xfbb5, 0xfbac, 0xfbda,
+ 0xfc29, 0xfcab, 0xfd41, 0xfd72, 0xfce6, 0xfc08,
+ 0xfb99, 0xfbbc, 0xfbef, 0xfbf2, 0xfc0b, 0xfc56,
+ 0xfc82, 0xfc7a, 0xfc80, 0xfcb4, 0xfcff, 0xfd13,
+ 0xfcb1, 0xfc28, 0xfbea, 0xfbd6, 0xfbb1, 0xfb8a,
+ 0xfb73, 0xfb70, 0xfb7b, 0xfb7a, 0xfb87, 0xfbde,
+ 0xfc8c, 0xfd55, 0xfddd, 0xfdec, 0xfd94, 0xfd34,
+ 0xfd38, 0xfd9d, 0xfe0c, 0xfe5a, 0xfe79, 0xfe78,
+ 0xfea0, 0xfee3, 0xff18, 0xff85, 0x003e, 0x00c9,
+ 0x00c0, 0x0043, 0xffcf, 0xff9c, 0xff64, 0xff0e,
+ 0xfec5, 0xfec4, 0xff5c, 0x006b, 0x0166, 0x01ff,
+ 0x0220, 0x0204, 0x01f7, 0x01c1, 0x0180, 0x01cf,
+ 0x028c, 0x0321, 0x0333, 0x02bc, 0x0230, 0x01bf,
+ 0x0127, 0x00b6, 0x00ea, 0x01b4, 0x02cf, 0x03d8,
+ 0x04b0, 0x0563, 0x0598, 0x0535, 0x046f, 0x0351,
+ 0x025d, 0x022d, 0x02b5, 0x03d6, 0x051b, 0x05c2,
+ 0x05db, 0x05d4, 0x05c6, 0x05ee, 0x066a, 0x06cb,
+ 0x06a3, 0x0630, 0x0621, 0x068d, 0x06f4, 0x0727,
+ 0x072c, 0x071e, 0x0711, 0x06bc, 0x0653, 0x0684,
+ 0x071a, 0x0767, 0x0742, 0x06cc, 0x0646, 0x05bc,
+ 0x052e, 0x051a, 0x05a3, 0x0636, 0x0679, 0x0670,
+ 0x062e, 0x05d8, 0x0596, 0x05bd, 0x0676, 0x074d,
+ 0x07bb, 0x07bb, 0x07b0, 0x07db, 0x07e9, 0x079f,
+ 0x0735, 0x06b2, 0x061b, 0x05af, 0x058b, 0x058c,
+ 0x0557, 0x04db, 0x04b5, 0x0528, 0x05b1, 0x05ee,
+ 0x05d4, 0x0574, 0x04f9, 0x04a2, 0x04e0, 0x05a4,
+ 0x062b, 0x0625, 0x05d0, 0x0569, 0x0546, 0x056e,
+ 0x0598, 0x05b6, 0x0593, 0x04e5, 0x03f1, 0x0321,
+ 0x028e, 0x0236, 0x01e7, 0x016d, 0x00ec, 0x00b6,
+ 0x00d0, 0x00dd, 0x0091, 0xfff1, 0xff2f, 0xfe8d,
+ 0xfe13, 0xfd7c, 0xfcdc, 0xfc91, 0xfc95, 0xfc65,
+ 0xfbc3, 0xfb29, 0xfb15, 0xfb51, 0xfb82, 0xfb87,
+ 0xfb38, 0xfabf, 0xfa77, 0xfa6b, 0xfaa4, 0xfb14,
+ 0xfb55, 0xfb31, 0xfad6, 0xfa82, 0xfa54, 0xfa2b,
+ 0xf9e7, 0xf9d2, 0xfa44, 0xfb26, 0xfc22, 0xfceb,
+ 0xfd63, 0xfda2, 0xfde8, 0xfe52, 0xfe85, 0xfe35,
+ 0xfdb5, 0xfd50, 0xfcef, 0xfca2, 0xfc94, 0xfcbf,
+ 0xfd0f, 0xfd7e, 0xfe23, 0xff01, 0xffca, 0x0030,
+ 0x0021, 0xffba, 0xff61, 0xff41, 0xff0e, 0xfeb4,
+ 0xfe60, 0xfe5a, 0xff01, 0x0004, 0x0097, 0x00a6,
+ 0x007d, 0x002a, 0xffde, 0xffbf, 0xffa4, 0xff81,
+ 0xff5d, 0xff33, 0xff25, 0xff58, 0xffb7, 0xffcd,
+ 0xff36, 0xfe40, 0xfd76, 0xfd11, 0xfd4d, 0xfe12,
+ 0xfead, 0xfead, 0xfe35, 0xfd61, 0xfc63, 0xfbc7,
+ 0xfbf6, 0xfcc3, 0xfd73, 0xfd76, 0xfd26, 0xfd37,
+ 0xfda3, 0xfdf0, 0xfe04, 0xfdfa, 0xfdd0, 0xfd97,
+ 0xfd73, 0xfd62, 0xfd3d, 0xfcee, 0xfc91, 0xfc5a,
+ 0xfc4d, 0xfc27, 0xfbe6, 0xfc0e, 0xfcde, 0xfdf2,
+ 0xfedf, 0xff3f, 0xfee2, 0xfe4b, 0xfde0, 0xfd75,
+ 0xfd18, 0xfcff, 0xfd45, 0xfdd2, 0xfe31, 0xfe5a,
+ 0xfee3, 0xffb0, 0x0031, 0x0047, 0x0013, 0xffeb,
+ 0xffe4, 0xffba, 0xffac, 0xfff6, 0x0029, 0x001b,
+ 0x000f, 0x0032, 0x00a7, 0x0137, 0x01a5, 0x0236,
+ 0x02ea, 0x0362, 0x039c, 0x03c2, 0x03f0, 0x0437,
+ 0x0456, 0x0408, 0x0395, 0x038e, 0x0411, 0x04a2,
+ 0x04cd, 0x049f, 0x046f, 0x0477, 0x049e, 0x04a9,
+ 0x0490, 0x043f, 0x03a4, 0x031e, 0x0329, 0x03bb,
+ 0x0442, 0x043d, 0x03c0, 0x0342, 0x031b, 0x0381,
+ 0x0441, 0x04b1, 0x049e, 0x0467, 0x040e, 0x0343,
+ 0x0236, 0x0152, 0x0092, 0xffc2, 0xfef8, 0xfe96,
+ 0xfec2, 0xff0c, 0xff0a, 0xfedc, 0xfeb1, 0xfe6f,
+ 0xfde0, 0xfcd5, 0xfb93, 0xfab7, 0xfa6c, 0xfa70,
+ 0xfa75, 0xfa43, 0xf9fe, 0xf9f7, 0xfa2a, 0xfa86,
+ 0xfaf9, 0xfb6b, 0xfc00, 0xfc99, 0xfcac, 0xfc1f,
+ 0xfb64, 0xfadf, 0xfac6, 0xfb06, 0xfb49, 0xfb5e,
+ 0xfb4f, 0xfb4b, 0xfba5, 0xfc7d, 0xfd6c, 0xfe1c,
+ 0xfeb5, 0xff53, 0xffe0, 0x005e, 0x00b1, 0x00d9,
+ 0x0120, 0x018b, 0x01e3, 0x022a, 0x0275, 0x02bf,
+ 0x02db, 0x02b0, 0x029c, 0x02d7, 0x0302, 0x0309,
+ 0x0319, 0x02fd, 0x0294, 0x0224, 0x01f5, 0x0213,
+ 0x0242, 0x0255, 0x025b, 0x0270, 0x02bb, 0x0345,
+ 0x03b0, 0x03a7, 0x034a, 0x02fa, 0x02f8, 0x0347,
+ 0x03a4, 0x038a, 0x029e, 0x0127, 0xffce, 0xfef8,
+ 0xfe88, 0xfe38, 0xfe11, 0xfe31, 0xfe52, 0xfe37,
+ 0xfdee, 0xfd7b, 0xfce2, 0xfc29, 0xfb62, 0xfac0,
+ 0xfa5f, 0xfa2f, 0xfa25, 0xfa37, 0xfa6a, 0xfadb,
+ 0xfb78, 0xfbe3, 0xfbbb, 0xfb34, 0xfaf8, 0xfb2a,
+ 0xfb60, 0xfb6c, 0xfb69, 0xfb60, 0xfb37, 0xfaea,
+ 0xfad8, 0xfb52, 0xfc0f, 0xfc8d, 0xfcb7, 0xfcf4,
+ 0xfd68, 0xfdc5, 0xfe13, 0xfe55, 0xfe28, 0xfdbd,
+ 0xfd8f, 0xfd8c, 0xfdae, 0xfdfa, 0xfe38, 0xfe71,
+ 0xfeb4, 0xff15, 0xffd5, 0x00b5, 0x015c, 0x020b,
+ 0x02df, 0x0397, 0x0400, 0x03f5, 0x03c8, 0x03d9,
+ 0x03d1, 0x036c, 0x0328, 0x0359, 0x03a1, 0x03a2,
+ 0x0399, 0x03d8, 0x0449, 0x04b3, 0x04dd, 0x04c2,
+ 0x04a4, 0x0488, 0x0448, 0x03f2, 0x03a7, 0x03a2,
+ 0x0403, 0x0472, 0x049a, 0x0496, 0x04a0, 0x04c8,
+ 0x04e4, 0x04dd, 0x04a9, 0x0435, 0x03b6, 0x0327,
+ 0x023d, 0x0193, 0x01e7, 0x02b2, 0x0357, 0x03c7,
+ 0x03ce, 0x0363, 0x02bd, 0x0215, 0x01d0, 0x01eb,
+ 0x01cb, 0x0147, 0x00e3, 0x00cd, 0x00b2, 0x0077,
+ 0x0033, 0xffa7, 0xfebc, 0xfde5, 0xfd7d, 0xfdae,
+ 0xfe53, 0xfed5, 0xfee3, 0xfe96, 0xfe0a, 0xfd8d,
+ 0xfd4d, 0xfd1d, 0xfcea, 0xfc78, 0xfba6, 0xfb0f,
+ 0xfb2a, 0xfb8c, 0xfbc8, 0xfc04, 0xfc94, 0xfd84,
+ 0xfe74, 0xfef8, 0xff01, 0xfee4, 0xfeeb, 0xfee8,
+ 0xfeaa, 0xfe80, 0xfebf, 0xff30, 0xff6a, 0xff70,
+ 0xff85, 0xffa8, 0xffc2, 0xffe3, 0x0014, 0x0062,
+ 0x00c5, 0x010f, 0x0126, 0x0117, 0x012c, 0x018d,
+ 0x01c6, 0x01a6, 0x01bc, 0x022f, 0x029e, 0x02d8,
+ 0x02e2, 0x02eb, 0x02f8, 0x02e2, 0x030c, 0x03cd,
+ 0x0493, 0x04c6, 0x047a, 0x0430, 0x0459, 0x04bc,
+ 0x04f4, 0x0530, 0x05bd, 0x067b, 0x0712, 0x072e,
+ 0x06cf, 0x0654, 0x05fa, 0x0592, 0x04eb, 0x046e,
+ 0x04a0, 0x0538, 0x0599, 0x05a1, 0x0596, 0x05c3,
+ 0x05fc, 0x05d0, 0x0566, 0x054c, 0x057f, 0x058b,
+ 0x053d, 0x04b9, 0x0423, 0x036b, 0x02a2, 0x023a,
+ 0x0277, 0x0313, 0x03b6, 0x0442, 0x0484, 0x0466,
+ 0x0439, 0x0456, 0x04bc, 0x050c, 0x04bc, 0x03c1,
+ 0x02c8, 0x0261, 0x02b8, 0x03ca, 0x0519, 0x05de,
+ 0x05b6, 0x04da, 0x03d1, 0x02ec, 0x022f, 0x0199,
+ 0x0132, 0x0118, 0x0173, 0x0223, 0x02eb, 0x039a,
+ 0x03f2, 0x03ee, 0x039e, 0x031a, 0x02c6, 0x02df,
+ 0x032e, 0x03a3, 0x040f, 0x0415, 0x03ea, 0x03c2,
+ 0x036d, 0x0309, 0x02cc, 0x02be, 0x0301, 0x0372,
+ 0x03d3, 0x042b, 0x046c, 0x04a9, 0x0518, 0x057e,
+ 0x058c, 0x0543, 0x04ad, 0x03ed, 0x0328, 0x0277,
+ 0x0209, 0x01ca, 0x01a9, 0x01f0, 0x025f, 0x027f,
+ 0x0291, 0x02d1, 0x032b, 0x0398, 0x03b2, 0x0335,
+ 0x028f, 0x022b, 0x0232, 0x028f, 0x02de, 0x0310,
+ 0x0360, 0x03ba, 0x03f0, 0x03d5, 0x0373, 0x0327,
+ 0x0323, 0x037a, 0x041c, 0x0478, 0x0431, 0x0390,
+ 0x02e9, 0x0271, 0x0240, 0x025b, 0x02c4, 0x0329,
+ 0x0329, 0x02ca, 0x0211, 0x012e, 0x0095, 0x0053,
+ 0x003d, 0x0050, 0x007a, 0x00d8, 0x0154, 0x015c,
+ 0x00eb, 0x0093, 0x0052, 0xffcd, 0xff25, 0xfee7,
+ 0xff53, 0xfff0, 0x0001, 0xff69, 0xfeb3, 0xfe65,
+ 0xfe80, 0xfeda, 0xff58, 0xffb7, 0xffaf, 0xff4b,
+ 0xfef4, 0xff10, 0xff95, 0x0036, 0x00b7, 0x00be,
+ 0x0033, 0xff85, 0xfeea, 0xfe55, 0xfddc, 0xfdc8,
+ 0xfe45, 0xfee0, 0xfefc, 0xfeef, 0xff5a, 0x001d,
+ 0x00bd, 0x00ed, 0x00db, 0x00d1, 0x0094, 0x0012,
+ 0xffaf, 0xff7c, 0xff71, 0xffc5, 0x006c, 0x010d,
+ 0x015f, 0x018a, 0x01f7, 0x029e, 0x031e, 0x032c,
+ 0x02c9, 0x027a, 0x0273, 0x0244, 0x01e2, 0x018b,
+ 0x012f, 0x00df, 0x00a9, 0x0072, 0x0064, 0x008b,
+ 0x00bc, 0x00e1, 0x00b1, 0x000a, 0xff5d, 0xff16,
+ 0xff48, 0xffd3, 0x00ab, 0x01b8, 0x0296, 0x0308,
+ 0x030c, 0x0260, 0x0120, 0x0036, 0x0048, 0x0113,
+ 0x01f5, 0x0289, 0x02a8, 0x022d, 0x0158, 0x00a7,
+ 0x001a, 0xff85, 0xff0f, 0xfeda, 0xfee6, 0xff29,
+ 0xff9c, 0x0043, 0x00f3, 0x018f, 0x0224, 0x0291,
+ 0x02b9, 0x028b, 0x01e0, 0x010c, 0x0083, 0x004c,
+ 0x0072, 0x00c8, 0x00f5, 0x0127, 0x0183, 0x01e5,
+ 0x025e, 0x02b3, 0x0258, 0x013d, 0xffde, 0xfef3,
+ 0xfed0, 0xff05, 0xff0e, 0xfec5, 0xfe78, 0xfe99,
+ 0xff1c, 0xffb0, 0x0030, 0x006d, 0x0054, 0x0000,
+ 0xff70, 0xff01, 0xff1b, 0xff76, 0xffb3, 0xffb7,
+ 0xff80, 0xff58, 0xff52, 0xff38, 0xff2e, 0xff42,
+ 0xff29, 0xfed1, 0xfe5a, 0xfe0d, 0xfe2a, 0xfe56,
+ 0xfe47, 0xfe6f, 0xfef2, 0xff3f, 0xff28, 0xfee9,
+ 0xfe7f, 0xfdfe, 0xfddb, 0xfe6b, 0xff73, 0x004c,
+ 0x0092, 0x007d, 0x0072, 0x0081, 0x0095, 0x0095,
+ 0x006e, 0x0049, 0x007e, 0x0113, 0x019a, 0x01c2,
+ 0x01a2, 0x0164, 0x012f, 0x0106, 0x009f, 0xfff2,
+ 0xff34, 0xfe41, 0xfd34, 0xfc9a, 0xfc82, 0xfc8b,
+ 0xfc95, 0xfcaf, 0xfd10, 0xfdcb, 0xfe75, 0xfea7,
+ 0xfe63, 0xfdb3, 0xfc8a, 0xfb4e, 0xfac1, 0xfaf4,
+ 0xfb35, 0xfb32, 0xfb2d, 0xfb7c, 0xfc29, 0xfcae,
+ 0xfcb5, 0xfc7f, 0xfc0a, 0xfb2b, 0xfa2e, 0xf95e,
+ 0xf908, 0xf989, 0xfa81, 0xfb29, 0xfb5a, 0xfb5f,
+ 0xfb4b, 0xfb02, 0xfaa9, 0xfa9b, 0xfb0b, 0xfbc4,
+ 0xfc6b, 0xfcf7, 0xfd90, 0xfdf2, 0xfdd2, 0xfd6b,
+ 0xfd0c, 0xfcdf, 0xfcea, 0xfcf0, 0xfce9, 0xfce4,
+ 0xfcaa, 0xfc80, 0xfce6, 0xfdae, 0xfe72, 0xff1c,
+ 0xffb6, 0x0031, 0x005e, 0x006b, 0x00b9, 0x00df,
+ 0x005f, 0xffa7, 0xff36, 0xff27, 0xff85, 0x0041,
+ 0x012c, 0x01da, 0x01d6, 0x013b, 0x006e, 0xffc6,
+ 0xff95, 0xffed, 0x008f, 0x011b, 0x0151, 0x0180,
+ 0x01ff, 0x028a, 0x02e1, 0x0303, 0x02b4, 0x01e4,
+ 0x00da, 0xffe5, 0xff55, 0xff52, 0xffc1, 0x0088,
+ 0x016e, 0x01fa, 0x01d4, 0x010b, 0x0037, 0xffda,
+ 0xffb7, 0xff83, 0xff59, 0xff1f, 0xfe83, 0xfdae,
+ 0xfd43, 0xfd8d, 0xfe1b, 0xfe55, 0xfe09, 0xfd40,
+ 0xfc36, 0xfb67, 0xfb1b, 0xfb55, 0xfc0d, 0xfd0c,
+ 0xfe0b, 0xfedb, 0xff44, 0xff46, 0xff00, 0xfe4c,
+ 0xfd47, 0xfc92, 0xfc4c, 0xfc31, 0xfc49, 0xfc7e,
+ 0xfca2, 0xfcf0, 0xfd7a, 0xfde2, 0xfe2a, 0xfe8c,
+ 0xfee3, 0xff17, 0xff63, 0xffe7, 0x0081, 0x00f3,
+ 0x011d, 0x012d, 0x014b, 0x0171, 0x0197, 0x01b6,
+ 0x01d3, 0x0206, 0x0210, 0x018c, 0x00bc, 0x0042,
+ 0x0056, 0x00d8, 0x01ae, 0x02a8, 0x0372, 0x03cb,
+ 0x03b6, 0x037b, 0x035c, 0x0339, 0x02d3, 0x0235,
+ 0x01a8, 0x0170, 0x01b3, 0x0257, 0x0318, 0x03bc,
+ 0x0424, 0x046f, 0x04e9, 0x05a4, 0x065b, 0x0679,
+ 0x05a3, 0x045f, 0x036e, 0x0303, 0x0313, 0x036e,
+ 0x03a8, 0x0386, 0x0314, 0x025c, 0x017a, 0x00b1,
+ 0x0049, 0x0048, 0x0059, 0x0039, 0x000a, 0x0039,
+ 0x00d5, 0x0131, 0x00d2, 0x0016, 0xff73, 0xff09,
+ 0xfeeb, 0xfefd, 0xff13, 0xff1e, 0xff05, 0xfebc,
+ 0xfe6c, 0xfe23, 0xfda5, 0xfcd6, 0xfc1d, 0xfbf7,
+ 0xfc76, 0xfd57, 0xfe0e, 0xfe3b, 0xfe29, 0xfe21,
+ 0xfdfe, 0xfdb4, 0xfd5e, 0xfd54, 0xfdeb, 0xfebb,
+ 0xff24, 0xff02, 0xfe73, 0xfdf5, 0xfe0f, 0xfeb0,
+ 0xff94, 0x0084, 0x0138, 0x0193, 0x01a1, 0x0159,
+ 0x00ac, 0xffd4, 0xff7e, 0x001a, 0x017a, 0x0355,
+ 0x0521, 0x05e5, 0x0551, 0x040c, 0x02f8, 0x029b,
+ 0x02d3, 0x0354, 0x03f7, 0x0461, 0x044b, 0x03c5,
+ 0x0323, 0x0310, 0x03ce, 0x04c8, 0x0574, 0x05a1,
+ 0x0559, 0x04f8, 0x049b, 0x0415, 0x0396, 0x0358,
+ 0x033f, 0x0324, 0x0301, 0x0304, 0x0347, 0x0376,
+ 0x0346, 0x02f0, 0x02b3, 0x0287, 0x0266, 0x025c,
+ 0x0249, 0x0218, 0x01eb, 0x0202, 0x0271, 0x02ea,
+ 0x0318, 0x0311, 0x02ab, 0x0179, 0xffed, 0xfef2,
+ 0xfeae, 0xfef6, 0xffb2, 0x0055, 0x0068, 0x0041,
+ 0x006c, 0x00ea, 0x0154, 0x0158, 0x0129, 0x014e,
+ 0x01b8, 0x01f0, 0x021c, 0x02a0, 0x034e, 0x03ba,
+ 0x03bc, 0x0367, 0x02dc, 0x020a, 0x00ef, 0xffd9,
+ 0xff19, 0xfefe, 0xff9e, 0x007d, 0x012d, 0x01bb,
+ 0x0224, 0x0249, 0x0245, 0x024e, 0x0270, 0x0267,
+ 0x01fc, 0x0147, 0x008c, 0x0008, 0xffc7, 0xffb0,
+ 0xffdd, 0x002f, 0x0051, 0x0069, 0x00d5, 0x0174,
+ 0x020a, 0x0286, 0x02bd, 0x0285, 0x021b, 0x0204,
+ 0x0253, 0x02c0, 0x0314, 0x02f2, 0x0215, 0x00cc,
+ 0xff9a, 0xfeeb, 0xfef0, 0xff77, 0x0059, 0x0156,
+ 0x0200, 0x026d, 0x02e2, 0x0357, 0x03ac, 0x03b4,
+ 0x0388, 0x037e, 0x0369, 0x0330, 0x0330, 0x0338,
+ 0x031d, 0x0356, 0x03d6, 0x040f, 0x03c5, 0x02f1,
+ 0x01d3, 0x00e3, 0x0048, 0xfff0, 0xfff1, 0x006a,
+ 0x013a, 0x0219, 0x02d6, 0x0327, 0x02e7, 0x026b,
+ 0x01e8, 0x012d, 0x003c, 0xff96, 0xffb4, 0x0034,
+ 0x0041, 0xfff2, 0xffc3, 0xff95, 0xff6d, 0xff91,
+ 0xffd0, 0xfff0, 0xfffc, 0x0017, 0x005b, 0x0061,
+ 0xffc6, 0xfeef, 0xfe88, 0xfeb9, 0xff34, 0xff91,
+ 0xffa2, 0xff82, 0xff7d, 0xffd0, 0x003c, 0x007d,
+ 0x00bb, 0x011b, 0x0186, 0x01e2, 0x0238, 0x02e0,
+ 0x03f0, 0x04c4, 0x04b6, 0x03de, 0x02f9, 0x02ba,
+ 0x02fe, 0x033d, 0x035f, 0x0371, 0x0369, 0x0369,
+ 0x038d, 0x03b9, 0x03db, 0x040a, 0x0442, 0x043e,
+ 0x03e2, 0x036a, 0x0309, 0x02c9, 0x028a, 0x022a,
+ 0x01e2, 0x01fc, 0x0243, 0x023b, 0x01a7, 0x00b2,
+ 0xffc7, 0xff49, 0xff6b, 0x000c, 0x00bf, 0x0133,
+ 0x0159, 0x0145, 0x0119, 0x00b8, 0x000e, 0xff6c,
+ 0xff05, 0xfed1, 0xfed9, 0xfeec, 0xfec9, 0xfebc,
+ 0xff37, 0x0004, 0x0070, 0x0026, 0xffa0, 0xff35,
+ 0xfeab, 0xfe2e, 0xfe47, 0xfecf, 0xff30, 0xff14,
+ 0xfe93, 0xfe2f, 0xfe3e, 0xfe93, 0xff0c, 0xff8b,
+ 0xffa3, 0xff4c, 0xff0c, 0xff52, 0x0005, 0x0091,
+ 0x0089, 0x004a, 0x0046, 0x0087, 0x00f3, 0x0117,
+ 0x0094, 0xffec, 0xffb5, 0xffd9, 0x0017, 0x005e,
+ 0x00cc, 0x0164, 0x0194, 0x0122, 0x009f, 0x0038,
+ 0xffa7, 0xff19, 0xfef4, 0xff56, 0xfff1, 0x003c,
+ 0x0032, 0x001a, 0xffda, 0xff83, 0xff87, 0xfff8,
+ 0x0085, 0x00d9, 0x00c6, 0x00a6, 0x0104, 0x01c8,
+ 0x025e, 0x0288, 0x026f, 0x0245, 0x0230, 0x024a,
+ 0x028c, 0x02e8, 0x032b, 0x02ec, 0x01fb, 0x00e0,
+ 0x005e, 0x0071, 0x0084, 0x007f, 0x00bd, 0x014e,
+ 0x01f5, 0x0261, 0x026d, 0x0251, 0x0227, 0x01ba,
+ 0x0127, 0x00c3, 0x0092, 0x0060, 0x0027, 0x0044,
+ 0x00e5, 0x018c, 0x01bd, 0x0198, 0x0198, 0x0203,
+ 0x0260, 0x0222, 0x01a3, 0x0144, 0x00c2, 0x0009,
+ 0xff44, 0xfea9, 0xfe7f, 0xfea2, 0xfe9d, 0xfe4e,
+ 0xfe25, 0xfead, 0xff82, 0xffb5, 0xff57, 0xff00,
+ 0xfeb6, 0xfe54, 0xfdd1, 0xfd5e, 0xfd7d, 0xfe01,
+ 0xfe2b, 0xfdee, 0xfdba, 0xfdbc, 0xfde8, 0xfe1a,
+ 0xfe2d, 0xfdfa, 0xfd80, 0xfd21, 0xfd1d, 0xfd53,
+ 0xfdc0, 0xfe3d, 0xfe7a, 0xfe97, 0xfed6, 0xff4d,
+ 0x0007, 0x0098, 0x0093, 0x0051, 0x000f, 0xff81,
+ 0xfed5, 0xfe88, 0xfe7f, 0xfe60, 0xfe1c, 0xfdd4,
+ 0xfdac, 0xfda2, 0xfdcb, 0xfe70, 0xff6f, 0x002b,
+ 0x006b, 0x0050, 0x000f, 0xfff5, 0xffed, 0xff8f,
+ 0xfee0, 0xfe38, 0xfdc9, 0xfdb5, 0xfdfc, 0xfe7b,
+ 0xff14, 0xff76, 0xff42, 0xfe94, 0xfe0d, 0xfe3e,
+ 0xfef5, 0xff85, 0xffaa, 0xff70, 0xfee2, 0xfe38,
+ 0xfdbe, 0xfd9c, 0xfdbe, 0xfdb2, 0xfd3c, 0xfcca,
+ 0xfcbf, 0xfd0b, 0xfd6d, 0xfd8c, 0xfd5b, 0xfd31,
+ 0xfd35, 0xfd5f, 0xfd9c, 0xfdcf, 0xfdf9, 0xfdee,
+ 0xfd6f, 0xfd12, 0xfd95, 0xfea5, 0xff90, 0x000c,
+ 0x000a, 0xffdb, 0xffde, 0xfffd, 0x0015, 0x000e,
+ 0xffbd, 0xff3c, 0xfea1, 0xfdf8, 0xfdac, 0xfde6,
+ 0xfe57, 0xfee3, 0xff67, 0xffbf, 0x0030, 0x00d1,
+ 0x0144, 0x0159, 0x00f9, 0x0037, 0xffa0, 0xffa0,
+ 0xfffa, 0x0028, 0xffe8, 0xff5b, 0xfed2, 0xfe86,
+ 0xfe8b, 0xfed2, 0xff37, 0xff72, 0xff44, 0xfefb,
+ 0xfef8, 0xfef7, 0xfed0, 0xfecf, 0xfee4, 0xfec7,
+ 0xfe89, 0xfe54, 0xfe71, 0xff21, 0x0007, 0x0086,
+ 0x0088, 0x0052, 0x0028, 0x0054, 0x00d9, 0x017c,
+ 0x0232, 0x02cc, 0x02f0, 0x02ae, 0x0241, 0x01c7,
+ 0x0197, 0x01c1, 0x01d1, 0x0193, 0x0111, 0x0075,
+ 0x0033, 0x007b, 0x00f6, 0x0142, 0x0126, 0x00fd,
+ 0x0163, 0x021f, 0x0295, 0x02d3, 0x031f, 0x0374,
+ 0x03bc, 0x03f0, 0x0436, 0x04bd, 0x0533, 0x04d4,
+ 0x0379, 0x0217, 0x01b0, 0x0253, 0x0355, 0x0400,
+ 0x0410, 0x03aa, 0x02f1, 0x0235, 0x01fd, 0x0260,
+ 0x02e3, 0x02ff, 0x028f, 0x020c, 0x0202, 0x027f,
+ 0x0325, 0x0362, 0x030d, 0x028f, 0x01eb, 0x00f9,
+ 0x001c, 0xffa3, 0xff98, 0x000e, 0x00d2, 0x01ad,
+ 0x0287, 0x02fb, 0x02ea, 0x02b6, 0x0291, 0x029a,
+ 0x02d6, 0x030f, 0x034e, 0x039f, 0x0395, 0x02ee,
+ 0x01ff, 0x0147, 0x0125, 0x019e, 0x0250, 0x02b6,
+ 0x02a0, 0x0255, 0x0222, 0x0202, 0x01fc, 0x024b,
+ 0x02d7, 0x0334, 0x034e, 0x0352, 0x0337, 0x02f5,
+ 0x029e, 0x0237, 0x0204, 0x023e, 0x02b8, 0x0361,
+ 0x0412, 0x043e, 0x03ca, 0x0315, 0x0258, 0x01c8,
+ 0x0198, 0x01cd, 0x023d, 0x026b, 0x0222, 0x01d2,
+ 0x01a8, 0x0168, 0x0131, 0x0119, 0x00e5, 0x0085,
+ 0x0011, 0xff8b, 0xfef7, 0xfe71, 0xfe24, 0xfe49,
+ 0xfed1, 0xff45, 0xff67, 0xff71, 0xff83, 0xff96,
+ 0xffc8, 0xffdf, 0xff71, 0xfea2, 0xfdfe, 0xfde2,
+ 0xfe41, 0xfeaf, 0xfef1, 0xff1d, 0xff36, 0xff24,
+ 0xfeed, 0xfeb2, 0xfe99, 0xfea8, 0xfee2, 0xff50,
+ 0xffdd, 0x0060, 0x00aa, 0x0096, 0x003e, 0xffc7,
+ 0xff67, 0xff76, 0xffd7, 0x0014, 0x001d, 0x000a,
+ 0xffc1, 0xff60, 0xff42, 0xff7e, 0xffc9, 0xffdb,
+ 0xffce, 0x0004, 0x0093, 0x0123, 0x016a, 0x0172,
+ 0x012e, 0x00a2, 0x002a, 0xffe3, 0xffcf, 0x0056,
+ 0x0161, 0x023b, 0x0281, 0x021d, 0x0160, 0x00e4,
+ 0x00c4, 0x00d7, 0x00e5, 0x009b, 0x006c, 0x00f4,
+ 0x01c9, 0x0286, 0x0346, 0x03d0, 0x03f7, 0x03f8,
+ 0x03fb, 0x03f7, 0x03cd, 0x0384, 0x0328, 0x02b2,
+ 0x0273, 0x02a2, 0x02cf, 0x02b2, 0x0244, 0x0196,
+ 0x013b, 0x0171, 0x01b6, 0x020d, 0x02c8, 0x0385,
+ 0x03b6, 0x036e, 0x0319, 0x0305, 0x0357, 0x03d6,
+ 0x03d5, 0x031a, 0x022d, 0x0175, 0x0139, 0x01a2,
+ 0x0242, 0x02ba, 0x0309, 0x0316, 0x02dd, 0x0289,
+ 0x0253, 0x025e, 0x0243, 0x01c9, 0x0170, 0x0144,
+ 0x00f9, 0x00c8, 0x00d4, 0x00f2, 0x00f0, 0x00b3,
+ 0x0089, 0x00a2, 0x00be, 0x00e2, 0x0115, 0x0124,
+ 0x0128, 0x0119, 0x00f0, 0x0102, 0x0146, 0x0188,
+ 0x01e9, 0x024b, 0x0268, 0x0255, 0x025d, 0x02c1,
+ 0x0386, 0x0493, 0x05af, 0x0634, 0x05c7, 0x04c1,
+ 0x03a1, 0x030f, 0x034f, 0x03ae, 0x03ac, 0x038b,
+ 0x03a0, 0x0423, 0x04c9, 0x04eb, 0x0457, 0x034f,
+ 0x0279, 0x029c, 0x0394, 0x048f, 0x0503, 0x04bc,
+ 0x040c, 0x03a6, 0x03ca, 0x0450, 0x0500, 0x0576,
+ 0x055d, 0x04e4, 0x048c, 0x0463, 0x03fa, 0x0340,
+ 0x0262, 0x01a4, 0x0188, 0x0209, 0x0294, 0x0306,
+ 0x034f, 0x0313, 0x0244, 0x0138, 0x0074, 0x0057,
+ 0x00ae, 0x011a, 0x0156, 0x011d, 0x00ae, 0x007c,
+ 0x0081, 0x0094, 0x008d, 0x0025, 0xff68, 0xfec5,
+ 0xfe81, 0xfeba, 0xff6b, 0x0008, 0xffdd, 0xff23,
+ 0xfe9d, 0xfe6c, 0xfe64, 0xfe72, 0xfe43, 0xfdc1,
+ 0xfd34, 0xfcbe, 0xfc9d, 0xfcda, 0xfce7, 0xfca1,
+ 0xfc73, 0xfc72, 0xfc83, 0xfc7e, 0xfc30, 0xfbc8,
+ 0xfb97, 0xfba0, 0xfbcf, 0xfbe3, 0xfb84, 0xfae7,
+ 0xfa97, 0xfa9d, 0xfaa4, 0xfa91, 0xfa7c, 0xfa75,
+ 0xfaa1, 0xfb16, 0xfba9, 0xfc15, 0xfc31, 0xfc14,
+ 0xfbea, 0xfba8, 0xfb50, 0xfb3b, 0xfba5, 0xfc6f,
+ 0xfd56, 0xfe3a, 0xff15, 0xffb5, 0xfff4, 0xfffe,
+ 0xfff7, 0xffe7, 0xffc0, 0xff5f, 0xfee8, 0xfe7a,
+ 0xfe0e, 0xfe10, 0xfebb, 0xff67, 0xffb2, 0xfff6,
+ 0x0060, 0x00c1, 0x00c6, 0x0073, 0x0022, 0xffe3,
+ 0xffad, 0xffc8, 0x0031, 0x0094, 0x00b2, 0x0082,
+ 0x006a, 0x00b3, 0x00fa, 0x00f3, 0x00c0, 0x0080,
+ 0x0049, 0x0048, 0x0091, 0x00f2, 0x010e, 0x00dc,
+ 0x00aa, 0x00a4, 0x00bb, 0x00de, 0x0129, 0x018d,
+ 0x0195, 0x010b, 0x0040, 0xff84, 0xff1b, 0xff12,
+ 0xff06, 0xfed2, 0xfe7a, 0xfdfa, 0xfdc0, 0xfdf6,
+ 0xfe17, 0xfde0, 0xfd60, 0xfcaa, 0xfc1a, 0xfbf8,
+ 0xfc4f, 0xfcfe, 0xfd82, 0xfd7b, 0xfd0f, 0xfc84,
+ 0xfc32, 0xfc4c, 0xfc88, 0xfcb0, 0xfcf9, 0xfd73,
+ 0xfdd6, 0xfdef, 0xfdea, 0xfdfd, 0xfe2e, 0xfe81,
+ 0xfee2, 0xff27, 0xff4d, 0xff42, 0xff20, 0xff4d,
+ 0xffc8, 0x003c, 0x009d, 0x00db, 0x00db, 0x00aa,
+ 0x004d, 0xffd7, 0xff7c, 0xff56, 0xff50, 0xff75,
+ 0x0000, 0x00db, 0x0188, 0x0200, 0x025b, 0x0254,
+ 0x0235, 0x025a, 0x0252, 0x0221, 0x0211, 0x01b9,
+ 0x0146, 0x0152, 0x018b, 0x01b3, 0x01eb, 0x01e4,
+ 0x01a4, 0x01a6, 0x01fe, 0x0262, 0x026d, 0x0202,
+ 0x0180, 0x011c, 0x00c0, 0x0071, 0x0030, 0x0006,
+ 0xfff2, 0xff86, 0xfe9c, 0xfdce, 0xfd90, 0xfda4,
+ 0xfdd3, 0xfe33, 0xfebf, 0xff66, 0x0038, 0x012c,
+ 0x01d2, 0x01a9, 0x00a5, 0xff64, 0xfea5, 0xfec0,
+ 0xff9a, 0x00c2, 0x0193, 0x01a8, 0x011f, 0x0068,
+ 0x0006, 0x000f, 0x0033, 0x0069, 0x00c5, 0x0118,
+ 0x0181, 0x0234, 0x02bb, 0x02a4, 0x024a, 0x0231,
+ 0x025d, 0x0275, 0x023f, 0x01fd, 0x020a, 0x0258,
+ 0x02bb, 0x031d, 0x0347, 0x0311, 0x029e, 0x023c,
+ 0x0247, 0x02d7, 0x0389, 0x03e4, 0x03ba, 0x0325,
+ 0x0293, 0x0261, 0x026b, 0x0272, 0x0295, 0x02df,
+ 0x02ea, 0x024e, 0x0135, 0x001f, 0xff67, 0xff3e,
+ 0xffa7, 0x006e, 0x013d, 0x01ac, 0x01ac, 0x01a3,
+ 0x01c9, 0x01e2, 0x01d4, 0x01da, 0x021b, 0x0269,
+ 0x0292, 0x029a, 0x0276, 0x01fd, 0x0152, 0x00e2,
+ 0x0108, 0x01d0, 0x02d1, 0x0368, 0x0332, 0x024e,
+ 0x013b, 0x0077, 0x0003, 0xff94, 0xff22, 0xff0b,
+ 0xff85, 0x0027, 0x0074, 0x0079, 0x0079, 0x0080,
+ 0x007c, 0x006d, 0x0071, 0x008a, 0x0082, 0x0045,
+ 0x0010, 0x0033, 0x008a, 0x007d, 0xfff1, 0xff6f,
+ 0xff20, 0xfef2, 0xff21, 0xff7e, 0xff8d, 0xff5f,
+ 0xff0b, 0xfe60, 0xfd91, 0xfd31, 0xfd99, 0xfe8a,
+ 0xff52, 0xff98, 0xffa1, 0xffaf, 0xffb5, 0xffcd,
+ 0x0033, 0x00c5, 0x0117, 0x0115, 0x0104, 0x0119,
+ 0x0153, 0x017e, 0x015c, 0x00e2, 0x004a, 0x0011,
+ 0x008c, 0x0182, 0x0275, 0x02ef, 0x029b, 0x01a2,
+ 0x009f, 0xfff2, 0xff88, 0xff28, 0xfed6, 0xff09,
+ 0xffef, 0x00fb, 0x0183, 0x0141, 0x0084, 0x000a,
+ 0x003a, 0x00da, 0x01a1, 0x024c, 0x025b, 0x0195,
+ 0x008b, 0xffe7, 0xffae, 0xffc2, 0x002f, 0x00ad,
+ 0x00da, 0x00cb, 0x00a3, 0x004b, 0xffcc, 0xff55,
+ 0xff1e, 0xff31, 0xff79, 0xffef, 0x006a, 0x00a0,
+ 0x0073, 0xffe4, 0xff01, 0xfdf7, 0xfcfa, 0xfc8f,
+ 0xfd22, 0xfe27, 0xfee6, 0xff58, 0xff7c, 0xff58,
+ 0xff36, 0xff21, 0xff1c, 0xff55, 0xff9a, 0xffa8,
+ 0xff7f, 0xff36, 0xff41, 0xfffe, 0x00ee, 0x0171,
+ 0x0190, 0x0185, 0x0181, 0x01d8, 0x0284, 0x02e4,
+ 0x02aa, 0x024e, 0x0212, 0x01cf, 0x019a, 0x0178,
+ 0x014b, 0x0152, 0x01b4, 0x022a, 0x028c, 0x02b9,
+ 0x0288, 0x0216, 0x01a2, 0x016c, 0x0194, 0x01d1,
+ 0x01c4, 0x016b, 0x010b, 0x00f2, 0x0110, 0x0121,
+ 0x0154, 0x01ce, 0x0242, 0x028a, 0x02bf, 0x02dd,
+ 0x02f2, 0x0310, 0x034c, 0x03cd, 0x0454, 0x0465,
+ 0x03db, 0x02e8, 0x0212, 0x01df, 0x0216, 0x0228,
+ 0x01ec, 0x01a0, 0x01b0, 0x0241, 0x02ff, 0x03bf,
+ 0x04a5, 0x0572, 0x059f, 0x04fd, 0x03f5, 0x033b,
+ 0x032b, 0x03a8, 0x047f, 0x0562, 0x05f2, 0x062c,
+ 0x0636, 0x05f8, 0x057a, 0x050d, 0x04c0, 0x0463,
+ 0x03e3, 0x0359, 0x02ed, 0x02c1, 0x02d3, 0x0308,
+ 0x0341, 0x0371, 0x03ae, 0x03e8, 0x03ce, 0x0339,
+ 0x026e, 0x01e8, 0x01d0, 0x01df, 0x01e0, 0x01dc,
+ 0x01d5, 0x01d3, 0x01dd, 0x01c6, 0x0188, 0x014b,
+ 0x0112, 0x00f6, 0x011c, 0x0171, 0x01df, 0x021b,
+ 0x01d5, 0x0166, 0x0133, 0x011a, 0x010a, 0x010a,
+ 0x00f2, 0x00cc, 0x00a1, 0x0060, 0x0049, 0x0098,
+ 0x00ef, 0x00c8, 0x0031, 0xffb9, 0xffa0, 0xffba,
+ 0xffe6, 0xfffc, 0xffea, 0x0005, 0x006d, 0x00d1,
+ 0x010c, 0x0114, 0x00fa, 0x00fd, 0x00de, 0x005b,
+ 0xfffe, 0x0017, 0x0036, 0x000d, 0xffbe, 0xff74,
+ 0xff08, 0xfe61, 0xfe17, 0xfe9e, 0xff7c, 0x0043,
+ 0x00d0, 0x00d5, 0x005d, 0xffd2, 0xff7e, 0xff97,
+ 0xfff5, 0x001a, 0xfffa, 0xffdf, 0xffe4, 0xffd8,
+ 0xff8d, 0xff1a, 0xfe84, 0xfdba, 0xfd3a, 0xfd5e,
+ 0xfdbd, 0xfe20, 0xfe7f, 0xfea3, 0xfecb, 0xff24,
+ 0xff45, 0xff3e, 0xff6c, 0xff8c, 0xff6c, 0xff39,
+ 0xfee6, 0xfe41, 0xfd83, 0xfd39, 0xfd66, 0xfd7d,
+ 0xfd6b, 0xfd78, 0xfd97, 0xfdab, 0xfd89, 0xfd20,
+ 0xfcef, 0xfd31, 0xfd5c, 0xfd3d, 0xfd3e, 0xfdbc,
+ 0xfe99, 0xff2c, 0xfef9, 0xfe3d, 0xfd69, 0xfcd2,
+ 0xfcaf, 0xfcfe, 0xfd98, 0xfe26, 0xfe52, 0xfe57,
+ 0xfe89, 0xfec0, 0xfeca, 0xfeb8, 0xfea1, 0xfe94,
+ 0xfe97, 0xfeb0, 0xfed5, 0xfec8, 0xfe4f, 0xfd6f,
+ 0xfc88, 0xfc1f, 0xfc49, 0xfcb9, 0xfd51, 0xfe07,
+ 0xfe9a, 0xfec3, 0xfe83, 0xfe41, 0xfe3c, 0xfe4a,
+ 0xfe6e, 0xfedc, 0xff62, 0xffa8, 0xff9b, 0xff3a,
+ 0xfe8e, 0xfdf3, 0xfdd7, 0xfe36, 0xfec2, 0xff64,
+ 0xfff4, 0x001f, 0xfffa, 0xffc1, 0xff82, 0xff6a,
+ 0xff87, 0xffa5, 0xffcc, 0x000c, 0x0060, 0x00f7,
+ 0x01c5, 0x0269, 0x02d2, 0x02ff, 0x02bb, 0x0240,
+ 0x0220, 0x0287, 0x0324, 0x038f, 0x03a7, 0x0391,
+ 0x035e, 0x031c, 0x0310, 0x0382, 0x044d, 0x04ff,
+ 0x054d, 0x0544, 0x0508, 0x049f, 0x03fa, 0x0350,
+ 0x0311, 0x0376, 0x0463, 0x057a, 0x0637, 0x0666,
+ 0x062c, 0x05ae, 0x0522, 0x04a3, 0x0435, 0x041a,
+ 0x0449, 0x0446, 0x0418, 0x03fc, 0x03df, 0x03fb,
+ 0x047b, 0x04fa, 0x0517, 0x04a0, 0x03d4, 0x037b,
+ 0x03a3, 0x03a7, 0x0357, 0x02ac, 0x01c6, 0x0133,
+ 0x00fa, 0x00d5, 0x00f4, 0x0133, 0x010d, 0x005e,
+ 0xff62, 0xfec7, 0xff0b, 0xffa2, 0xfff1, 0x000b,
+ 0x0030, 0x008e, 0x00dd, 0x0079, 0xff93, 0xfeee,
+ 0xfeaa, 0xfe7d, 0xfe76, 0xfeab, 0xfedf, 0xfed1,
+ 0xfea6, 0xfe87, 0xfe55, 0xfdec, 0xfd69, 0xfd47,
+ 0xfdd9, 0xfeb7, 0xff75, 0xffe2, 0xff97, 0xfebc,
+ 0xfe12, 0xfdcc, 0xfe03, 0xfed6, 0xff8f, 0xff93,
+ 0xff18, 0xfe69, 0xfe1b, 0xfe6f, 0xfe93, 0xfe5a,
+ 0xfe8a, 0xff13, 0xff9e, 0x004d, 0x00cc, 0x00a1,
+ 0xffea, 0xfec4, 0xfd88, 0xfd06, 0xfd5e, 0xfde6,
+ 0xfe54, 0xfeb2, 0xfee8, 0xff02, 0xff13, 0xff07,
+ 0xfeef, 0xfed5, 0xfeac, 0xfed2, 0xff6b, 0xffe2,
+ 0x0004, 0x0023, 0x002f, 0x0015, 0x000a, 0x0028,
+ 0x0067, 0x0087, 0x0034, 0xff95, 0xfee5, 0xfe20,
+ 0xfd72, 0xfd40, 0xfdd6, 0xff04, 0x003e, 0x0163,
+ 0x025f, 0x0287, 0x01d2, 0x00fb, 0x0010, 0xff00,
+ 0xfe53, 0xfe3c, 0xfe85, 0xff08, 0xff69, 0xff80,
+ 0xff70, 0xff19, 0xfe71, 0xfdac, 0xfce1, 0xfc55,
+ 0xfc57, 0xfcb0, 0xfd1a, 0xfd67, 0xfd32, 0xfc94,
+ 0xfc39, 0xfc4d, 0xfc7d, 0xfc81, 0xfc45, 0xfc2d,
+ 0xfc62, 0xfc3f, 0xfbf7, 0xfcb5, 0xfdf7, 0xfe45,
+ 0xfde8, 0xfde4, 0xfe2d, 0xfe5e, 0xfe55, 0xfe23,
+ 0xfded, 0xfdb6, 0xfdf9, 0xff44, 0x00d5, 0x0170,
+ 0x0111, 0x008a, 0x0080, 0x00d4, 0x00c8, 0x001f,
+ 0xff2c, 0xfe41, 0xfe34, 0xff99, 0x017c, 0x029c,
+ 0x02cd, 0x0264, 0x01c8, 0x0181, 0x01e8, 0x02eb,
+ 0x03f5, 0x0440, 0x0398, 0x02bc, 0x026a, 0x0229,
+ 0x016a, 0x0126, 0x021e, 0x0318, 0x02fd, 0x0268,
+ 0x020f, 0x01c2, 0x0145, 0x010d, 0x01b6, 0x02d5,
+ 0x0333, 0x029b, 0x021c, 0x024b, 0x0299, 0x02be,
+ 0x0340, 0x03bf, 0x031b, 0x01e2, 0x0197, 0x0238,
+ 0x030b, 0x03d4, 0x042d, 0x03e4, 0x0356, 0x02ae,
+ 0x0254, 0x02ba, 0x0315, 0x029f, 0x0228, 0x0270,
+ 0x02ea, 0x030c, 0x02e9, 0x02cc, 0x0327, 0x0425,
+ 0x056e, 0x0642, 0x05bd, 0x03e4, 0x0240, 0x0203,
+ 0x026e, 0x027e, 0x02ab, 0x0377, 0x03e7, 0x033a,
+ 0x0256, 0x021a, 0x0207, 0x0174, 0x00be, 0x0080,
+ 0x003e, 0xff3c, 0xfe9a, 0xffd9, 0x01c2, 0x027b,
+ 0x0245, 0x01c0, 0x012b, 0x012c, 0x019e, 0x01ea,
+ 0x0212, 0x0194, 0x0070, 0x0040, 0x012a, 0x0183,
+ 0x0111, 0x0098, 0x002b, 0xffb7, 0xff0b, 0xfe1e,
+ 0xfda3, 0xfdba, 0xfdc9, 0xfe12, 0xff48, 0x00ff,
+ 0x022d, 0x02a1, 0x02b7, 0x0222, 0x00fe, 0x0092,
+ 0x00e1, 0x0079, 0xff9b, 0xff91, 0x0024, 0x00b1,
+ 0x0142, 0x01d8, 0x0234, 0x01b1, 0x001c, 0xff28,
+ 0x005b, 0x025b, 0x031b, 0x02d9, 0x02cb, 0x0339,
+ 0x03fd, 0x04f9, 0x05bb, 0x05e8, 0x05a1, 0x055a,
+ 0x05be, 0x06a1, 0x064e, 0x0420, 0x022f, 0x0223,
+ 0x0317, 0x0393, 0x0310, 0x01ea, 0x00dd, 0x001a,
+ 0xffbe, 0x005c, 0x0161, 0x013f, 0x000d, 0xff21,
+ 0xfef9, 0xff84, 0x00ad, 0x01e8, 0x025f, 0x01d0,
+ 0x00c2, 0xffbc, 0xfee7, 0xfea6, 0xff49, 0x0050,
+ 0x00f5, 0x00d4, 0x0055, 0x009a, 0x0181, 0x016e,
+ 0x00ce, 0x01a5, 0x0358, 0x03f3, 0x0381, 0x02d3,
+ 0x0258, 0x0283, 0x0330, 0x0451, 0x061a, 0x070d,
+ 0x05a4, 0x037f, 0x02b6, 0x027a, 0x0186, 0x0089,
+ 0x0051, 0x0042, 0xffcf, 0xffa2, 0x0027, 0x006d,
+ 0xffa9, 0xfed3, 0xff5b, 0x0089, 0x0070, 0xff90,
+ 0x0004, 0x0191, 0x028c, 0x02c6, 0x029f, 0x020d,
+ 0x013e, 0x00b6, 0x00f7, 0x0180, 0x0109, 0x0046,
+ 0x00dc, 0x01a3, 0x00e3, 0xff9f, 0xff65, 0x0091,
+ 0x02a9, 0x045c, 0x04c9, 0x0438, 0x02dc, 0x015c,
+ 0x013f, 0x0298, 0x038f, 0x035c, 0x0342, 0x03d7,
+ 0x03c7, 0x02cf, 0x0299, 0x0315, 0x0260, 0x008f,
+ 0xff85, 0x0002, 0x010d, 0x0153, 0x012c, 0x01e4,
+ 0x027d, 0x0153, 0x004b, 0x018c, 0x0302, 0x0298,
+ 0x0213, 0x02f3, 0x03de, 0x03c5, 0x02ed, 0x0163,
+ 0xffb8, 0xff1b, 0xffc5, 0x016f, 0x036d, 0x03cf,
+ 0x01ef, 0xffde, 0xfefd, 0xff3a, 0x00ab, 0x022e,
+ 0x01f8, 0x009f, 0xffe8, 0x0047, 0x0129, 0x0185,
+ 0x0113, 0x00e2, 0x0156, 0x01d9, 0x020c, 0x019a,
+ 0x0095, 0xff8c, 0xfee8, 0xffd9, 0x0280, 0x0387,
+ 0x017f, 0xffde, 0xfffb, 0xff6c, 0xfd8d, 0xfb93,
+ 0xfa1f, 0xf945, 0xf85c, 0xf786, 0xf868, 0xfabd,
+ 0xfc26, 0xfbe0, 0xfa98, 0xf890, 0xf65a, 0xf55d,
+ 0xf677, 0xf8b4, 0xfa67, 0xfb54, 0xfc27, 0xfd19,
+ 0xfe1c, 0xfe79, 0xfd73, 0xfc40, 0xfc57, 0xfcd6,
+ 0xfc9c, 0xfc0c, 0xfb6f, 0xfab1, 0xfac5, 0xfc61,
+ 0xfe18, 0xfe68, 0xfe15, 0xfe03, 0xfda0, 0xfd2e,
+ 0xfdba, 0xfee7, 0xfff2, 0x00b8, 0x015c, 0x029a,
+ 0x0435, 0x0476, 0x0423, 0x056e, 0x0689, 0x04ec,
+ 0x02a9, 0x0222, 0x0280, 0x0350, 0x0556, 0x0807,
+ 0x0a1d, 0x0adb, 0x0a38, 0x09ac, 0x0a99, 0x0bc8,
+ 0x0bf8, 0x0c55, 0x0d82, 0x0e8e, 0x0f7d, 0x1099,
+ 0x1164, 0x1198, 0x10f9, 0x105f, 0x11ad, 0x1331,
+ 0x1190, 0x0eae, 0x0dea, 0x0e6b, 0x0ef6, 0x0f6a,
+ 0x0f49, 0x0f2e, 0x0eec, 0x0d5e, 0x0c74, 0x0cee,
+ 0x0bad, 0x0974, 0x08dc, 0x075b, 0x0456, 0x03aa,
+ 0x0503, 0x0504, 0x0318, 0x0029, 0xfdd4, 0xfcfd,
+ 0xfc1f, 0xfb27, 0xfb76, 0xfba1, 0xfaa6, 0xfacc,
+ 0xfcd4, 0xfe49, 0xfd2f, 0xfa84, 0xf958, 0xfa8d,
+ 0xfbe0, 0xfc3b, 0xfc0f, 0xfab6, 0xf7fe, 0xf51b,
+ 0xf319, 0xf234, 0xf0dd, 0xed53, 0xe9d8, 0xe9c1,
+ 0xeb65, 0xeb74, 0xea71, 0xe9d6, 0xe8ce, 0xe6a9,
+ 0xe4e8, 0xe55e, 0xe7bc, 0xea23, 0xec0d, 0xee78,
+ 0xf11d, 0xf2ff, 0xf49f, 0xf5f5, 0xf588, 0xf447,
+ 0xf525, 0xf7f5, 0xf9ab, 0xf958, 0xf92b, 0xfa6f,
+ 0xfb70, 0xfb37, 0xfbb0, 0xfd58, 0xfdf6, 0xfced,
+ 0xfba2, 0xfb05, 0xfb1e, 0xfb45, 0xfbc4, 0xfd9f,
+ 0xff70, 0x0004, 0x0137, 0x02f3, 0x0363, 0x0347,
+ 0x02a7, 0x01a1, 0x0368, 0x06e6, 0x07e8, 0x090e,
+ 0x0cdc, 0x0f82, 0x1028, 0x10a1, 0x1034, 0x103a,
+ 0x11b9, 0x11fc, 0x11db, 0x1322, 0x12b5, 0x10a8,
+ 0x1088, 0x10ca, 0x0fc4, 0x0f7e, 0x0f6d, 0x0e32,
+ 0x0d90, 0x0ddb, 0x0cff, 0x0a3f, 0x06e7, 0x053f,
+ 0x061f, 0x07bd, 0x0900, 0x0a4e, 0x0ae4, 0x0a32,
+ 0x096b, 0x08d6, 0x0777, 0x0577, 0x0388, 0x01db,
+ 0x0156, 0x02ca, 0x0500, 0x061a, 0x0554, 0x02bc,
+ 0xff92, 0xfd77, 0xfcb0, 0xfcf8, 0xfd6d, 0xfc00,
+ 0xf9c0, 0xfad0, 0xfe28, 0xfe49, 0xfb08, 0xf8d3,
+ 0xf898, 0xf827, 0xf778, 0xf812, 0xf8d6, 0xf744,
+ 0xf413, 0xf1fc, 0xf1d3, 0xf2dd, 0xf3d2, 0xf386,
+ 0xf2a8, 0xf23c, 0xf1e1, 0xf1ca, 0xf213, 0xf121,
+ 0xeea1, 0xecce, 0xed5e, 0xefdd, 0xf260, 0xf302,
+ 0xf16d, 0xef36, 0xeeb8, 0xeff4, 0xf0bf, 0xf118,
+ 0xf140, 0xef8c, 0xee1d, 0xefb8, 0xf094, 0xefcc,
+ 0xf20c, 0xf4c7, 0xf400, 0xf4d2, 0xf8f2, 0xfa66,
+ 0xf818, 0xf57d, 0xf4a4, 0xf652, 0xf853, 0xf951,
+ 0xfc84, 0x00e0, 0x00d8, 0xfe1d, 0xfe39, 0xff8d,
+ 0xfd59, 0xf8fb, 0xf7ad, 0xfa2c, 0xfd38, 0x0090,
+ 0x04b3, 0x0678, 0x0532, 0x03fa, 0x02d7, 0x00f0,
+ 0x002c, 0x0105, 0x0312, 0x077a, 0x0c77, 0x0e00,
+ 0x0c85, 0x0b65, 0x0b27, 0x0aeb, 0x0ad3, 0x0a36,
+ 0x08ce, 0x0924, 0x0c5e, 0x0f58, 0x0f7e, 0x0d3a,
+ 0x0a7e, 0x09ae, 0x09ff, 0x08a8, 0x0827, 0x0bc0,
+ 0x0e99, 0x0c0a, 0x08e6, 0x0a96, 0x0dbb, 0x0ccb,
+ 0x09c6, 0x0902, 0x0844, 0x0638, 0x07cb, 0x0bd1,
+ 0x0acf, 0x0558, 0x0178, 0x019d, 0x05c1, 0x0a6f,
+ 0x0ad3, 0x0784, 0x02aa, 0xfd5d, 0xfb83, 0xfe30,
+ 0x0162, 0x044f, 0x06f7, 0x05d7, 0x0190, 0xff2d,
+ 0xfe6d, 0xfa9c, 0xf4e1, 0xf50d, 0xfc09, 0x0014,
+ 0xfd4e, 0xfa38, 0xf95b, 0xf8b1, 0xfa38, 0xff2e,
+ 0x03bf, 0x043b, 0xff7f, 0xf6e3, 0xf0ee, 0xf52a,
+ 0xfee0, 0x0026, 0xf921, 0xf645, 0xf810, 0xf9e1,
+ 0x0137, 0x0daa, 0x1496, 0x1197, 0x061c, 0xf71d,
+ 0xebfa, 0xe38b, 0xddb1, 0xe3cb, 0xf28b, 0xfc83,
+ 0x0186, 0x038f, 0xfee3, 0xf83f, 0xf701, 0xfbf3,
+ 0x0471, 0x0b12, 0x0e45, 0x0ce0, 0xff05, 0xef11,
+ 0xf4d3, 0x025a, 0xf676, 0xdba7, 0xd5ca, 0xed76,
+ 0x1088, 0x2be6, 0x3746, 0x2e00, 0x0dba, 0xe695,
+ 0xcf16, 0xcace, 0xd795, 0xf016, 0xfddf, 0xfaee,
+ 0x0118, 0x17ed, 0x27ef, 0x2244, 0x0cff, 0xf5ef,
+ 0xe33d, 0xd047, 0xc6dc, 0xde05, 0x0847, 0x130a,
+ 0xede6, 0xc2ff, 0xb7e0, 0xc7d1, 0xe9ad, 0x1b06,
+ 0x40bd, 0x4488, 0x397c, 0x2a5d, 0x0991, 0xea72,
+ 0xedfd, 0x06b5, 0x16a6, 0x191f, 0x1334, 0x0bde,
+ 0x0add, 0x0b62, 0x067a, 0xfe40, 0xef01, 0xd3bc,
+ 0xbe75, 0xca1c, 0xf04b, 0x0d8d, 0x13bc, 0x1225,
+ 0x1057, 0x0e53, 0x1416, 0x1bbd, 0x13ab, 0xff96,
+ 0xeb09, 0xd48b, 0xc3e2, 0xc78f, 0xd986, 0xed7b,
+ 0x00ba, 0x0a41, 0x02af, 0xf9cb, 0x0122, 0x0f07,
+ 0x0e2e, 0xfacd, 0xe1b6, 0xcee6, 0xc6f0, 0xc923,
+ 0xd246, 0xe08b, 0xf22a, 0x01e6, 0x0e66, 0x1b82,
+ 0x22f5, 0x17fa, 0x00d8, 0xf3ba, 0xf904, 0x0699,
+ 0x11c6, 0x15d9, 0x13ab, 0x119c, 0x1357, 0x169f,
+ 0x1c92, 0x2697, 0x2bec, 0x2479, 0x146c, 0x021e,
+ 0xf326, 0xf32a, 0x05a9, 0x1978, 0x1f1e, 0x1b9d,
+ 0x16f2, 0x0fe7, 0x0af4, 0x1086, 0x1944, 0x18cb,
+ 0x134f, 0x1221, 0x16b5, 0x2005, 0x26e5, 0x23c2,
+ 0x22a6, 0x31fe, 0x46a1, 0x52f7, 0x5e0c, 0x6b78,
+ 0x6ed6, 0x6323, 0x537f, 0x4a41, 0x49b5, 0x51fc,
+ 0x5d3d, 0x5d7f, 0x4f9d, 0x3fb1, 0x3243, 0x28cc,
+ 0x32b3, 0x509e, 0x6605, 0x671f, 0x651b, 0x64b0,
+ 0x5e71, 0x594b, 0x5883, 0x4f0e, 0x3e0b, 0x3620,
+ 0x332d, 0x248a, 0x12a6, 0x1021, 0x180d, 0x1d5e,
+ 0x209c, 0x2639, 0x2fac, 0x38b1, 0x362c, 0x2acd,
+ 0x266c, 0x2556, 0x1c63, 0x167f, 0x18c2, 0x14ec,
+ 0x0c66, 0x0a0f, 0x095c, 0x0b36, 0x17d5, 0x23b4,
+ 0x20c7, 0x1621, 0x0d2a, 0x05cd, 0xfe68, 0xf5d5,
+ 0xef7d, 0xef40, 0xedd8, 0xe69c, 0xe3ed, 0xe9cd,
+ 0xef4e, 0xf3e1, 0xfb97, 0xfeed, 0xf95c, 0xf343,
+ 0xec3f, 0xda80, 0xc4bb, 0xb765, 0xac37, 0x9fd9,
+ 0x9eb5, 0xa756, 0xabbe, 0xaa73, 0xa4ba, 0x9a8d,
+ 0x9622, 0x9b47, 0xa2a1, 0xacd7, 0xb98f, 0xc0b3,
+ 0xc0be, 0xb7f2, 0xa705, 0x9e49, 0xa0dc, 0x9f7c,
+ 0xa138, 0xb15f, 0xbf05, 0xc219, 0xc62b, 0xc8c9,
+ 0xc73f, 0xcb78, 0xd1c3, 0xd07f, 0xcd46, 0xcd4f,
+ 0xcd8b, 0xccb9, 0xca8c, 0xc7eb, 0xc7ce, 0xc838,
+ 0xc57e, 0xc3f4, 0xcb92, 0xdb5c, 0xe8ac, 0xedcc,
+ 0xef17, 0xedd7, 0xe676, 0xdb00, 0xd1e8, 0xd072,
+ 0xd547, 0xd775, 0xd8cc, 0xe2e9, 0xea03, 0xe663,
+ 0xee16, 0xf899, 0xe240, 0xc7a5, 0xd395, 0xe25b,
+ 0xdecb, 0xf2b2, 0x1265, 0x0e5f, 0xfd64, 0xfd7d,
+ 0xf84c, 0xe9c8, 0xe7f6, 0xf0c7, 0xf641, 0xf48b,
+ 0xf4ec, 0x01c4, 0x0ab2, 0xff8b, 0xf470, 0xf3ce,
+ 0xebe4, 0xe01b, 0xe085, 0xe2f0, 0xd7cd, 0xcaa1,
+ 0xd0eb, 0xdf2f, 0xda8c, 0xd3f6, 0xe0b3, 0xe4ac,
+ 0xd982, 0xdb1e, 0xdad8, 0xcd45, 0xcf1b, 0xd5e2,
+ 0xcb79, 0xca4f, 0xd673, 0xd933, 0xddbd, 0xe46e,
+ 0xd9dc, 0xd045, 0xd82a, 0xdac9, 0xcf82, 0xc904,
+ 0xcff9, 0xdd34, 0xe769, 0xeb21, 0xe833, 0xdd25,
+ 0xcfd6, 0xcc8a, 0xd1f4, 0xd3e2, 0xd42a, 0xd9fb,
+ 0xdaa8, 0xd42e, 0xd872, 0xe016, 0xdac0, 0xd857,
+ 0xdb73, 0xd768, 0xdeb6, 0xefb5, 0xedaa, 0xe7c4,
+ 0xe9e4, 0xdc2c, 0xcdb0, 0xd76a, 0xe405, 0xe67b,
+ 0xe93e, 0xee19, 0xf1f5, 0xf22a, 0xf624, 0xfd3a,
+ 0xf15c, 0xe251, 0xe89d, 0xe4a1, 0xdc1b, 0xf390,
+ 0xfeea, 0xf01c, 0xfda6, 0x0a21, 0xf86e, 0x0041,
+ 0x1237, 0x0487, 0x0662, 0x1a0c, 0x120d, 0x091c,
+ 0x0fab, 0x0daa, 0x125b, 0x1f93, 0x1bc5, 0x18d1,
+ 0x2570, 0x2a7b, 0x2919, 0x3465, 0x4230, 0x4217,
+ 0x4119, 0x4cb4, 0x4ec8, 0x422d, 0x512c, 0x756b,
+ 0x764e, 0x6728, 0x758a, 0x7a30, 0x6126, 0x5f72,
+ 0x6e1d, 0x5d46, 0x4a3c, 0x519e, 0x4e43, 0x3e4b,
+ 0x414f, 0x4833, 0x48ec, 0x58ca, 0x69d1, 0x645c,
+ 0x574f, 0x4fc5, 0x4904, 0x4148, 0x3bbf, 0x3e82,
+ 0x3f7c, 0x33e9, 0x3787, 0x4ea6, 0x4ca1, 0x3b49,
+ 0x3fcd, 0x39c8, 0x191c, 0x0a99, 0x1078, 0x0c5f,
+ 0x01ef, 0xfb68, 0xfac7, 0x0187, 0x0f09, 0x28fa,
+ 0x3e5e, 0x32e5, 0x2099, 0x227a, 0x1f32, 0x1927,
+ 0x24ec, 0x2749, 0x15d3, 0x0b3f, 0x0907, 0x0881,
+ 0x0b19, 0x0ceb, 0x134f, 0x166d, 0x0901, 0x0733,
+ 0x1b51, 0x2203, 0x1cda, 0x1d3d, 0x11d0, 0xfff5,
+ 0x025d, 0x128e, 0x1e19, 0x2220, 0x26d2, 0x2e72,
+ 0x2d25, 0x28fa, 0x29bb, 0x1a92, 0x0c57, 0x2147,
+ 0x34e6, 0x34c7, 0x464f, 0x54ed, 0x4919, 0x4ae0,
+ 0x561f, 0x4b9c, 0x4181, 0x423b, 0x3b1b, 0x2b69,
+ 0x1d39, 0x18f8, 0x0f00, 0xf54e, 0xf250, 0x00d0,
+ 0xfc70, 0x10f0, 0x3e2c, 0x3a88, 0x2705, 0x2b75,
+ 0x1990, 0x0ef3, 0x2c50, 0x375a, 0x360d, 0x412c,
+ 0x33cf, 0x2353, 0x2873, 0x260a, 0x2cd9, 0x3db9,
+ 0x38f6, 0x3a72, 0x4470, 0x3e9b, 0x43d5, 0x4529,
+ 0x2ce3, 0x207c, 0x11ca, 0x0088, 0x1de9, 0x3137,
+ 0x19f1, 0x2551, 0x36fd, 0x24a5, 0x3376, 0x5022,
+ 0x45a0, 0x4346, 0x4794, 0x3b3e, 0x3fe1, 0x424b,
+ 0x379c, 0x4516, 0x4e12, 0x4149, 0x3cfd, 0x3532,
+ 0x3197, 0x3cd0, 0x33e3, 0x2d9d, 0x3782, 0x24d9,
+ 0x1a9a, 0x2d60, 0x2171, 0x12a0, 0x191d, 0x05d4,
+ 0xfc6a, 0x0ede, 0x0857, 0x04ba, 0x126d, 0x09a6,
+ 0x018c, 0xfa5e, 0xe630, 0xf0ef, 0x00d7, 0xf390,
+ 0xfe07, 0x148b, 0x0b0f, 0xf7ba, 0xe383, 0xdc39,
+ 0xe652, 0xdd39, 0xe30f, 0x0269, 0xef9f, 0xd43d,
+ 0xe8de, 0xe80d, 0xd7a6, 0xe026, 0xd8b5, 0xd681,
+ 0xebe4, 0xe84d, 0xea6d, 0x015a, 0xf26c, 0xde8a,
+ 0xf5a1, 0x0b13, 0x090a, 0x07f0, 0x0eb3, 0x1177,
+ 0x0af4, 0x056f, 0xfab0, 0xede2, 0xf8c4, 0xfc7d,
+ 0xe86c, 0xef03, 0xfc26, 0xf2be, 0xff41, 0x0faa,
+ 0x090c, 0x0700, 0xf4f7, 0xe08d, 0xedf8, 0xe8ae,
+ 0xdb9a, 0xed9d, 0xe3de, 0xd4de, 0xe52c, 0xd724,
+ 0xd5f9, 0xf4a5, 0xcf48, 0xaa34, 0xcbee, 0xca08,
+ 0xb8ae, 0xd85a, 0xe044, 0xd68f, 0xdfbf, 0xd7ba,
+ 0xd910, 0xe097, 0xc33e, 0xbfb1, 0xdfa7, 0xd8b9,
+ 0xcb7c, 0xe434, 0xf5e9, 0xebcd, 0xe66c, 0xf55a,
+ 0xf2e7, 0xd140, 0xcb1e, 0xe13f, 0xe4d0, 0xf0c4,
+ 0x0021, 0xe43b, 0xcc6d, 0xdda4, 0xea24, 0xe46c,
+ 0xe1d6, 0xeea5, 0xff05, 0xef19, 0xd4a4, 0xdd27,
+ 0xe456, 0xcff5, 0xc9e6, 0xd7de, 0xd69e, 0xc741,
+ 0xcae4, 0xdf2d, 0xe319, 0xe9f8, 0x0601, 0x0240,
+ 0xe165, 0xddfd, 0xe21d, 0xd72d, 0xdb10, 0xdace,
+ 0xbf84, 0xac22, 0xb291, 0xba99, 0xb764, 0xc456,
+ 0xe5d8, 0xe437, 0xc474, 0xc61b, 0xcf34, 0xb92b,
+ 0xafd1, 0xc369, 0xd34f, 0xcbad, 0xb5db, 0xb63d,
+ 0xbf99, 0xae6e, 0xb101, 0xcc4c, 0xbe20, 0xa676,
+ 0xaf36, 0xb264, 0xb8a1, 0xccf8, 0xcd8a, 0xc809,
+ 0xc7a3, 0xc5c0, 0xd4d0, 0xd42e, 0xb7f5, 0xbb5d,
+ 0xbafc, 0x9109, 0x8e25, 0xa559, 0x99a7, 0xa9b7,
+ 0xc8a1, 0xae7e, 0xa5e0, 0xbfe1, 0xa766, 0x95a5,
+ 0xb53c, 0xb4de, 0xad6e, 0xc285, 0xb2f4, 0xa5c1,
+ 0xc83b, 0xca55, 0xb662, 0xbfa6, 0xb697, 0xacd4,
+ 0xc29a, 0xbcc0, 0xafb7, 0xcaf2, 0xdca2, 0xda92,
+ 0xde50, 0xe034, 0xe9e0, 0xea75, 0xd732, 0xdd04,
+ 0xe686, 0xd2a6, 0xc6ca, 0xbad1, 0xb022, 0xc9cb,
+ 0xd331, 0xc4bb, 0xd46d, 0xcca1, 0xa7a8, 0xb30d,
+ 0xc51f, 0xb711, 0xb6ec, 0xc264, 0xd227, 0xe00b,
+ 0xd46c, 0xd859, 0xe8de, 0xce12, 0xb86b, 0xbf3c,
+ 0xb785, 0xc072, 0xd110, 0xc2e0, 0xc595, 0xca7a,
+ 0xb4d2, 0xbde9, 0xc69d, 0xb533, 0xce94, 0xde55,
+ 0xb72e, 0xb01c, 0xb996, 0xaa7f, 0xb48d, 0xc0dd,
+ 0xbd51, 0xd0b8, 0xdb3a, 0xd6f8, 0xdf43, 0xd662,
+ 0xcc7a, 0xd2a0, 0xc8e6, 0xcb7b, 0xd6ad, 0xca58,
+ 0xdd53, 0xf715, 0xda14, 0xd6df, 0xf740, 0xe9b5,
+ 0xd40b, 0xdb22, 0xe636, 0xf251, 0xe43c, 0xcac2,
+ 0xdc43, 0xed2b, 0xe156, 0xe502, 0xe79d, 0xd721,
+ 0xd1fa, 0xd805, 0xdc74, 0xdcf1, 0xde22, 0xe2e2,
+ 0xd3ab, 0xbe00, 0xc605, 0xd14a, 0xd5d0, 0xe100,
+ 0xdca9, 0xdfe3, 0xf1a3, 0xd9e3, 0xbf64, 0xd26b,
+ 0xdcc3, 0xdaf3, 0xe024, 0xd40d, 0xd43a, 0xe789,
+ 0xe952, 0xf673, 0x0bd6, 0x0117, 0xfaef, 0x05b3,
+ 0x02c1, 0x0c57, 0x230b, 0x1539, 0xf1a9, 0xef6c,
+ 0x050d, 0x0815, 0x0954, 0x14df, 0xffc1, 0xe5cd,
+ 0xf50d, 0xfb9f, 0xfca5, 0x1085, 0xf625, 0xd548,
+ 0xeb87, 0xda98, 0xbe09, 0xf7a6, 0x1051, 0xdf36,
+ 0xe9b1, 0x0ff6, 0x04b1, 0x04c0, 0x1b82, 0x192d,
+ 0x081f, 0x03c2, 0x0cad, 0x0c65, 0x0844, 0x216b,
+ 0x2ff4, 0x0899, 0xf1b0, 0x0fff, 0x1ab2, 0x09fc,
+ 0x1b29, 0x316d, 0x1ed6, 0x154e, 0x1f77, 0x0e76,
+ 0x0935, 0x20d3, 0x173e, 0x0b0a, 0x1eb9, 0x12f2,
+ 0xf511, 0xf590, 0xf862, 0xfea9, 0x0806, 0xfdee,
+ 0x0354, 0x065d, 0xe71e, 0xf6e1, 0x2c60, 0x2309,
+ 0x074b, 0x0b7c, 0xfe38, 0xec4f, 0xf0ee, 0xef86,
+ 0xf151, 0x01e2, 0xfdaf, 0xe515, 0xe27a, 0xee38,
+ 0xdcad, 0xc7d1, 0xdcb2, 0xf42e, 0xfa1d, 0x0d32,
+ 0x114c, 0x0248, 0x0f0f, 0x12f6, 0xf66b, 0xf3bb,
+ 0xf9b2, 0xdd72, 0xcb8b, 0xd61e, 0xdaf1, 0xdd54,
+ 0xea7f, 0xf1df, 0xe95b, 0xe49b, 0xf0a8, 0xf626,
+ 0xe99b, 0xe1ae, 0xe049, 0xd401, 0xc588, 0xc797,
+ 0xd31e, 0xd837, 0xdece, 0xead5, 0xe879, 0xdc1f,
+ 0xdaf0, 0xe18b, 0xe8f4, 0xe947, 0xe36c, 0xf139,
+ 0x05a3, 0x0406, 0x0d72, 0x2c98, 0x37e4, 0x3072,
+ 0x2ec5, 0x2f6f, 0x228c, 0x0cd0, 0x1294, 0x25fc,
+ 0x19a8, 0x17d4, 0x30a7, 0x2a81, 0x2828, 0x4491,
+ 0x445a, 0x4340, 0x5933, 0x4bbc, 0x3dd6, 0x5867,
+ 0x6b2c, 0x77cb, 0x7f12, 0x6b01, 0x6c8e, 0x7fd1,
+ 0x7563, 0x7a7a, 0x7fff, 0x72bf, 0x5d2c, 0x7440,
+ 0x7d3a, 0x6c7e, 0x666f, 0x6a82, 0x6e07, 0x7030,
+ 0x6f16, 0x6cf6, 0x6920, 0x5e8a, 0x5707, 0x5db2,
+ 0x631b, 0x5dbb, 0x5753, 0x4ad2, 0x4462, 0x5459,
+ 0x51a1, 0x3845, 0x372c, 0x2cdf, 0x082e, 0x0abd,
+ 0x267d, 0x2f34, 0x4133, 0x555f, 0x5271, 0x489e,
+ 0x3804, 0x2a6a, 0x2a22, 0x1f60, 0x166e, 0x15d4,
+ 0x0084, 0xf1a8, 0xffe6, 0x144c, 0x2810, 0x1b56,
+ 0xf395, 0xfa81, 0x0eb3, 0xfabb, 0x0020, 0x1e6f,
+ 0x19e7, 0x0e6a, 0x0f22, 0x0eb4, 0x0d56, 0x0033,
+ 0x0236, 0x18f3, 0x0d9b, 0x029a, 0x18d6, 0x0bcf,
+ 0xf7e2, 0x15a7, 0x1e05, 0x04b8, 0xff9a, 0xfe92,
+ 0x0263, 0x0ebd, 0x07b9, 0x0f89, 0x2842, 0x1325,
+ 0xf1bc, 0xfd65, 0x1510, 0x1a06, 0x0f6c, 0x068e,
+ 0x10bb, 0x11d5, 0x01f0, 0x06b5, 0x0db7, 0xfd94,
+ 0xf9fd, 0x0b02, 0x1633, 0x17e4, 0x1852, 0x1b68,
+ 0x09c4, 0xdbfe, 0xd13e, 0xf64d, 0x0583, 0x0367,
+ 0x1a92, 0x2d10, 0x237f, 0x144f, 0x1193, 0x17ca,
+ 0x0cc6, 0xfc97, 0x1444, 0x31b9, 0x2901, 0x1f7d,
+ 0x19dd, 0x05b2, 0x0995, 0x1c14, 0x11a3, 0x0bcd,
+ 0x1d4d, 0x22d9, 0x1b81, 0x0ec9, 0x0344, 0x13e7,
+ 0x26bc, 0x1969, 0x19e4, 0x2fb6, 0x20a7, 0x0776,
+ 0x148d, 0x1a15, 0x0b20, 0x182a, 0x2c2e, 0x27ec,
+ 0x2a80, 0x343d, 0x2cc7, 0x1fd0, 0x16e9, 0x145b,
+ 0x15a6, 0x0de2, 0x11c0, 0x24ea, 0x1ec4, 0x15cc,
+ 0x21eb, 0x0aca, 0xdf43, 0xe676, 0x04a6, 0x15aa,
+ 0x2ad6, 0x2deb, 0x0ef8, 0xfd6c, 0x0bdb, 0x0e3e,
+ 0xf659, 0xed26, 0xf705, 0xf8cb, 0x02a5, 0x0e60,
+ 0xfbdf, 0xefc4, 0xf94e, 0xf5c5, 0x0252, 0x211c,
+ 0x1cbc, 0x0f32, 0x0e49, 0x027a, 0x08da, 0x1783,
+ 0x08a2, 0x0814, 0x0ff4, 0xf08f, 0xd552, 0xce6d,
+ 0xc627, 0xda30, 0xf0f8, 0xe657, 0xecda, 0x041f,
+ 0x04c2, 0x08f5, 0x1559, 0x13a4, 0x0ad6, 0xf89e,
+ 0xe793, 0xea30, 0xebcc, 0xeaeb, 0xf6cb, 0xf756,
+ 0xe3c5, 0xdd40, 0xf637, 0x0f19, 0x02e3, 0xf7b3,
+ 0x10af, 0x1110, 0xeb16, 0xe470, 0xf549, 0xee5c,
+ 0xdf12, 0xe070, 0xf400, 0x043f, 0xfe08, 0xfcd7,
+ 0x0739, 0xfc4c, 0xeeac, 0xf384, 0xec1d, 0xdee2,
+ 0xeeb9, 0x0a4a, 0x0dc7, 0xf7a2, 0xe1f1, 0xdfa7,
+ 0xe527, 0xec29, 0xfddf, 0x053d, 0xf8ff, 0xfeea,
+ 0x0e90, 0x0602, 0x0b89, 0x223c, 0x0c3d, 0xec0d,
+ 0xf5db, 0xfa31, 0xf678, 0x0afd, 0x10a4, 0x0ab7,
+ 0x1acd, 0x143e, 0xf123, 0xebee, 0xf96c, 0xf878,
+ 0x021a, 0x1677, 0x088e, 0xed7a, 0xff95, 0x1a09,
+ 0x10cc, 0x0d55, 0x0f15, 0x0027, 0x0323, 0x08f7,
+ 0x0205, 0x11ad, 0x14f3, 0x0240, 0x0bad, 0x063c,
+ 0xebb7, 0xf7b9, 0xfc1a, 0xefcb, 0x0787, 0x11c5,
+ 0x04cc, 0x0d13, 0x073d, 0x00a6, 0x1c88, 0x216d,
+ 0x0c51, 0x0a33, 0x07af, 0x0474, 0x15c1, 0x2288,
+ 0x17ea, 0x0a1e, 0x0846, 0x0135, 0xf392, 0xfb75,
+ 0x0b32, 0x0c6b, 0x0904, 0xf680, 0xe866, 0xffdd,
+ 0x063e, 0xe6c9, 0xdfa4, 0xf4bb, 0x0785, 0x09de,
+ 0xf98a, 0xf88c, 0xff1c, 0xf1f0, 0xf8fc, 0x080f,
+ 0xf753, 0xf024, 0xeff7, 0xe456, 0xf4a1, 0x0234,
+ 0xf87e, 0x0221, 0xf866, 0xdad8, 0xeb75, 0xf557,
+ 0xdbf7, 0xdeb0, 0xe9f1, 0xefdc, 0x062c, 0xfc39,
+ 0xdeb0, 0xe9d9, 0xf81c, 0xf3fb, 0xf4ff, 0xee74,
+ 0xe77c, 0xde9f, 0xc49b, 0xc6e8, 0xe287, 0xdfe5,
+ 0xd818, 0xd5b7, 0xc1af, 0xccbe, 0xf421, 0xf34c,
+ 0xe458, 0xed53, 0xead9, 0xd729, 0xd075, 0xd683,
+ 0xd42c, 0xcee4, 0xd75b, 0xcbe7, 0xaba4, 0xbb13,
+ 0xdb36, 0xd186, 0xd926, 0xeb96, 0xd4d9, 0xd7fc,
+ 0xf855, 0xf3a6, 0xee65, 0xeec1, 0xdafe, 0xde87,
+ 0xe310, 0xc9ae, 0xc34d, 0xbd85, 0xa91e, 0xb780,
+ 0xc8cb, 0xc91d, 0xe3c8, 0xf4bf, 0xe247, 0xd5bf,
+ 0xd4e8, 0xe3ab, 0xf1ba, 0xd48e, 0xbee3, 0xd2e1,
+ 0xd32c, 0xd0a2, 0xed6f, 0xf1aa, 0xe093, 0xdc5d,
+ 0xcac5, 0xc5dd, 0xe4d6, 0xea10, 0xdaa9, 0xe265,
+ 0xdbd1, 0xc8fb, 0xd5a9, 0xdb4a, 0xc392, 0xbdd9,
+ 0xcd58, 0xd6ba, 0xd733, 0xce88, 0xca8b, 0xd9bf,
+ 0xe3d3, 0xd4ec, 0xc37e, 0xc541, 0xcfd8, 0xd734,
+ 0xe0fa, 0xeac5, 0xec90, 0xe812, 0xdc8f, 0xd5d2,
+ 0xdf31, 0xe513, 0xea24, 0xf8e6, 0xed7d, 0xd43d,
+ 0xe4c6, 0x0302, 0xffcc, 0xe6bf, 0xd001, 0xd052,
+ 0xd225, 0xb6af, 0xb222, 0xd52a, 0xe07f, 0xe2d6,
+ 0xf305, 0xdd34, 0xb8a7, 0xbd68, 0xc55b, 0xbfae,
+ 0xcd4b, 0xd370, 0xbcaf, 0xb68f, 0xc7ed, 0xc542,
+ 0xaf5e, 0xa2fa, 0xaacc, 0xc3cc, 0xce0d, 0xbc7e,
+ 0xb882, 0xbfc8, 0xb39e, 0xb283, 0xc2ed, 0xc474,
+ 0xc38a, 0xc541, 0xc9b1, 0xe7ab, 0xf549, 0xd16d,
+ 0xbd4b, 0xcd91, 0xd28c, 0xca8b, 0xca86, 0xd571,
+ 0xdf99, 0xd729, 0xcbb0, 0xd0d4, 0xd72c, 0xdcc4,
+ 0xeb8b, 0xf592, 0xeef3, 0xe0fa, 0xe03f, 0xf2c1,
+ 0x0670, 0x0ed5, 0x0105, 0xdfc7, 0xd8b7, 0xef20,
+ 0xeca1, 0xda76, 0xd89c, 0xd4e7, 0xd6ac, 0xe2d1,
+ 0xddf7, 0xe470, 0xfdff, 0xf71d, 0xf2a4, 0x10bc,
+ 0x0f72, 0xfdf8, 0x0956, 0xf6b2, 0xd0f1, 0xd8a1,
+ 0xe322, 0xdb57, 0xdd83, 0xd48f, 0xd25a, 0xef30,
+ 0xf9e9, 0xf27f, 0xfb02, 0xfd89, 0xf459, 0xeab0,
+ 0xdadc, 0xd0b1, 0xce7f, 0xce55, 0xd701, 0xde5c,
+ 0xe820, 0xfd47, 0xfbef, 0xdd68, 0xc59e, 0xbdf0,
+ 0xc2a8, 0xcd79, 0xd3d7, 0xddbe, 0xea7e, 0xebe0,
+ 0xe3cb, 0xdfec, 0xed43, 0xf96d, 0xeb7a, 0xe1fc,
+ 0xeaef, 0xe13c, 0xcb2c, 0xc383, 0xc65c, 0xd1f7,
+ 0xd671, 0xcb94, 0xd442, 0xed0d, 0xe97a, 0xd4b9,
+ 0xd8e1, 0xebfe, 0xe849, 0xd7de, 0xdb5a, 0xe949,
+ 0xeeff, 0xe226, 0xc45b, 0xca26, 0xf01f, 0xdd7d,
+ 0xaf08, 0xbb18, 0xd5ba, 0xd99a, 0xe695, 0xefc3,
+ 0xeb42, 0xe76d, 0xde61, 0xd8da, 0xd8ca, 0xd225,
+ 0xcf80, 0xd13e, 0xdac2, 0xf068, 0xeee5, 0xdffa,
+ 0xf2f6, 0x0ba4, 0x0658, 0xf26e, 0xdf8e, 0xda76,
+ 0xd840, 0xd189, 0xe4a7, 0xf56c, 0xdf49, 0xd8e9,
+ 0xe6dd, 0xdaf1, 0xd748, 0xe5b1, 0xe109, 0xe1f3,
+ 0xf26c, 0xf6f7, 0xf766, 0xeec7, 0xdef0, 0xf118,
+ 0x0978, 0xf5de, 0xe4eb, 0xf0af, 0xec8c, 0xe630,
+ 0xf636, 0xf649, 0xf05c, 0x091e, 0x15c2, 0x037f,
+ 0x0169, 0x0a39, 0x0574, 0x04c8, 0x066c, 0x0131,
+ 0x0341, 0x083d, 0x06b9, 0x033b, 0xfab4, 0xf5db,
+ 0x05f2, 0x1d86, 0x2614, 0x2283, 0x181c, 0x0288,
+ 0xf4e3, 0x0580, 0x1b2e, 0x1ebd, 0x1f08, 0x1cbd,
+ 0x1aa7, 0x23fd, 0x2290, 0x1f94, 0x31a3, 0x2444,
+ 0xf3ea, 0xe4f4, 0xe782, 0xe7e2, 0x02ca, 0x1167,
+ 0x0801, 0x10ec, 0x085c, 0xf090, 0x05ac, 0x1532,
+ 0x0216, 0x0c6a, 0x1eec, 0x1707, 0x16a1, 0x1448,
+ 0x0b10, 0x0d62, 0x0434, 0x03f4, 0x1901, 0x0be7,
+ 0x06f5, 0x33de, 0x3216, 0x088c, 0x1170, 0x1989,
+ 0x0438, 0x0ef9, 0x1f75, 0x0c82, 0xf854, 0xf8ea,
+ 0x0a16, 0x211a, 0x29cb, 0x1e59, 0x0fd7, 0x10c7,
+ 0x1272, 0x0b81, 0x1717, 0x203c, 0x0edd, 0x0ad5,
+ 0x0188, 0xe375, 0xf313, 0x1069, 0x0b3c, 0x1d09,
+ 0x26af, 0x091c, 0x13e5, 0x21c2, 0x01cf, 0x067b,
+ 0x1c46, 0x04f6, 0xf395, 0xf34e, 0xf299, 0x03b6,
+ 0x0c48, 0x09b3, 0x1a7f, 0x1c42, 0x04fe, 0x0122,
+ 0x0390, 0xf442, 0xf1d7, 0xf983, 0xea13, 0xe7fd,
+ 0x0b71, 0x1902, 0x123d, 0x214d, 0x1f3a, 0x0f41,
+ 0x18ed, 0x1156, 0x033b, 0x196c, 0x1939, 0x0202,
+ 0x0729, 0x0124, 0xf63c, 0x12d7, 0x2252, 0x11bf,
+ 0x10e3, 0x114d, 0xfe33, 0xf7fb, 0x03a6, 0x04eb,
+ 0x0921, 0x1f60, 0x1c53, 0x055b, 0x1423, 0x2355,
+ 0x0b7f, 0xfdde, 0xf88a, 0xe4e6, 0xe2d7, 0xef43,
+ 0xfb15, 0x033d, 0xf6b7, 0xf73c, 0x0d72, 0x0492,
+ 0x01e6, 0x1fd5, 0x1628, 0x00df, 0x15e1, 0x1173,
+ 0xf63c, 0x050b, 0x0e81, 0xfde3, 0x0c85, 0x1e40,
+ 0x0e97, 0x1143, 0x30ac, 0x4175, 0x38c2, 0x1e8b,
+ 0x1077, 0x1ee8, 0x20f0, 0x17e0, 0x24af, 0x271c,
+ 0x1c0c, 0x29e0, 0x3b94, 0x406f, 0x422c, 0x3b72,
+ 0x3aa1, 0x3917, 0x21ee, 0x138e, 0x1556, 0x18b7,
+ 0x255f, 0x1c67, 0xfe67, 0x00ad, 0x0cc4, 0x0667,
+ 0x0cbc, 0x1b59, 0x1fdc, 0x220d, 0x2999, 0x337d,
+ 0x288e, 0x1620, 0x1c79, 0x1d72, 0x17ae, 0x2284,
+ 0x1855, 0x0c00, 0x2367, 0x2b94, 0x24e6, 0x2e74,
+ 0x2a59, 0x22bf, 0x2588, 0x21cb, 0x28e4, 0x2943,
+ 0x1479, 0x16a2, 0x2277, 0x20ef, 0x2441, 0x19e8,
+ 0x0b2c, 0x0ea0, 0x0698, 0xff91, 0x0614, 0xfe67,
+ 0xff66, 0x0746, 0xfd84, 0x069c, 0x0f55, 0xf636,
+ 0xf199, 0xff6e, 0xf7e5, 0xed28, 0xd83b, 0xc5a2,
+ 0xe052, 0xfd1b, 0xff09, 0x0e26, 0x1c44, 0x1357,
+ 0x0c2d, 0x0b77, 0x0daf, 0x0ef7, 0x0124, 0xf788,
+ 0x0483, 0x107f, 0x0c90, 0xfea3, 0xf26c, 0xf7ac,
+ 0x02e9, 0xff10, 0xfcd0, 0x1046, 0x27b2, 0x280d,
+ 0x15f3, 0x0c30, 0x0ada, 0x0161, 0x0049, 0x1161,
+ 0x159a, 0x0a4e, 0x1060, 0x2306, 0x290a, 0x288e,
+ 0x26ef, 0x1b40, 0x14d6, 0x16d1, 0x04f7, 0xf7ff,
+ 0x0fe4, 0x1964, 0x0a87, 0x17fd, 0x29f3, 0x2c38,
+ 0x3c51, 0x3b3f, 0x2389, 0x2584, 0x29bd, 0x1de0,
+ 0x1c18, 0x16c2, 0x0e0f, 0x0f62, 0x1461, 0x2ce7,
+ 0x3edc, 0x2cc5, 0x2da9, 0x3a50, 0x1fcc, 0x0de9,
+ 0x1338, 0x0475, 0xf885, 0xffe7, 0x0411, 0x06fd,
+ 0x10ed, 0x1ca8, 0x1a33, 0x0f6e, 0x0fb3, 0x015a,
+ 0xe9a1, 0xf23d, 0xf808, 0xe819, 0xe653, 0xe4c8,
+ 0xe520, 0xf625, 0xfd21, 0x097d, 0x1993, 0x0aa6,
+ 0x055a, 0x0bd1, 0xf39f, 0xe51b, 0xe8b1, 0xdfa7,
+ 0xdca7, 0xdb53, 0xe7c7, 0x1471, 0x2313, 0x0f64,
+ 0x07e8, 0xf6ed, 0xef58, 0x0987, 0x147e, 0x13b5,
+ 0x183a, 0x0885, 0xfac5, 0x03b3, 0x15b1, 0x2744,
+ 0x200c, 0x0fd2, 0x161c, 0x0f74, 0xfb82, 0x0417,
+ 0x17e3, 0x2330, 0x29b2, 0x2b97, 0x2f26, 0x21f8,
+ 0x0bd2, 0x1b0e, 0x2cbc, 0x19ac, 0x1676, 0x2acd,
+ 0x2ddc, 0x2ccb, 0x30b0, 0x2842, 0x190d, 0x0df4,
+ 0x0e82, 0x21c2, 0x3883, 0x3bcb, 0x30b7, 0x2dfd,
+ 0x352d, 0x3ab3, 0x3d74, 0x35fd, 0x211b, 0x119b,
+ 0x0d5c, 0x0a38, 0x0884, 0x0ca9, 0x130b, 0x0f16,
+ 0x08fc, 0x1829, 0x24ae, 0x1aae, 0x1c4c, 0x2099,
+ 0x0eb0, 0x0ab0, 0x1373, 0x094a, 0x027c, 0x065e,
+ 0x076b, 0x0adb, 0x03a9, 0xfc54, 0x0f3e, 0x1f90,
+ 0x222c, 0x2745, 0x1e11, 0x15a7, 0x1ee2, 0x1766,
+ 0x0d6d, 0x177d, 0x08a4, 0xe3a8, 0xde34, 0xfd6a,
+ 0x23ba, 0x294d, 0x0af5, 0xfdf9, 0x09b7, 0x0cc2,
+ 0x0de5, 0x1163, 0x0dc3, 0x053f, 0xf00c, 0xdfbd,
+ 0xec88, 0xefe9, 0xdb45, 0xe04d, 0xfbca, 0x02d0,
+ 0xfbb2, 0xf899, 0xfa1f, 0x02ce, 0x037a, 0xf01f,
+ 0xe379, 0xe96a, 0xef58, 0xfb4e, 0x15dd, 0x2788,
+ 0x1d3d, 0x040a, 0xfe68, 0x10b4, 0x1659, 0x0aeb,
+ 0xfef9, 0xeeae, 0xe765, 0xeafd, 0xec78, 0xfcb0,
+ 0x0945, 0xff1c, 0x05d6, 0x0dae, 0xfd58, 0xfb98,
+ 0xf4f0, 0xdbf9, 0xe60a, 0xf881, 0xea71, 0xe4ef,
+ 0xf61b, 0x05af, 0x0c79, 0x111a, 0x136a, 0x0492,
+ 0xf530, 0xf485, 0xef29, 0xf6d4, 0x066c, 0xfb15,
+ 0xfa6f, 0x0390, 0xf728, 0x0351, 0x1267, 0xfb5f,
+ 0xf76f, 0x00eb, 0xfa0b, 0xfbdf, 0xf228, 0xe7af,
+ 0xf8e1, 0xfb07, 0xf709, 0x04a1, 0x03d0, 0x01bd,
+ 0x0887, 0x091e, 0x1049, 0x0c86, 0xf950, 0xf645,
+ 0xfa40, 0xff09, 0x047a, 0xf92f, 0xea94, 0xe1ab,
+ 0xe53c, 0x019d, 0x0d58, 0xfe10, 0xfc5d, 0xf8f0,
+ 0xeac7, 0xe89f, 0xe600, 0xe565, 0xf6cb, 0x05f8,
+ 0x02ab, 0xfb54, 0x0316, 0x0a28, 0xfcfd, 0xf6c9,
+ 0xfc79, 0xfac1, 0x046e, 0x1022, 0x05b0, 0xfd5c,
+ 0xf71a, 0xe774, 0xe822, 0xf5fb, 0xfc81, 0xfec6,
+ 0xfbd8, 0xf3fe, 0xe524, 0xccc0, 0xc6d0, 0xde3d,
+ 0xf1f6, 0xf64b, 0xf536, 0xe9c3, 0xddf5, 0xe79c,
+ 0xfc07, 0x049a, 0xfb63, 0xe882, 0xe927, 0x01c1,
+ 0x051a, 0xefad, 0xe80b, 0xe2e7, 0xd22e, 0xd58f,
+ 0xeb54, 0xee01, 0xe6f1, 0xf139, 0xfa86, 0xfb5d,
+ 0x0136, 0xf61e, 0xece4, 0x0f3f, 0x1d66, 0xf952,
+ 0xebc3, 0xecf3, 0xe286, 0xec37, 0xed9a, 0xdbd7,
+ 0xdf66, 0xe116, 0xda24, 0xe96f, 0xf9b2, 0xfca3,
+ 0xfece, 0x0179, 0x03a7, 0xf99c, 0xeb32, 0xeb41,
+ 0xe5de, 0xd49f, 0xcb69, 0xce91, 0xdb31, 0xe30c,
+ 0xe271, 0xe5e3, 0xe8d2, 0xf15e, 0xfc7d, 0xf666,
+ 0xf793, 0xfef8, 0xed3c, 0xe5c5, 0xf327, 0xeefa,
+ 0xe666, 0xe1ce, 0xd650, 0xd502, 0xd870, 0xd50b,
+ 0xdbb7, 0xedf0, 0xf9e5, 0xf4f4, 0xe841, 0xde9b,
+ 0xd816, 0xe123, 0xf16e, 0xf12b, 0xf4cd, 0xfeda,
+ 0xf45a, 0xe89d, 0xeaeb, 0xec49, 0xe99b, 0xe2e1,
+ 0xe29e, 0xec64, 0xf1eb, 0xf64e, 0xf0b8, 0xe07d,
+ 0xe839, 0xf5c0, 0xe6c4, 0xd657, 0xd5c3, 0xdc50,
+ 0xe275, 0xe158, 0xe2b8, 0xe28f, 0xdbbe, 0xdefa,
+ 0xe4c6, 0xedb3, 0xfc4d, 0xf474, 0xedaa, 0xf67d,
+ 0xea27, 0xec04, 0x0496, 0xfd72, 0x0038, 0x1a3f,
+ 0x0d94, 0xf81d, 0xf15d, 0xdda0, 0xdb85, 0xf231,
+ 0xfe37, 0xf996, 0xe7be, 0xe3a5, 0xfb81, 0x0b1b,
+ 0x0e8e, 0x16bb, 0x1718, 0x08ce, 0xf270, 0xe947,
+ 0xf4e5, 0xf973, 0xfa85, 0x0536, 0x03a0, 0xf9a7,
+ 0xf2fc, 0xead9, 0xf032, 0xfe05, 0xfec1, 0xf5e8,
+ 0xe69e, 0xdde1, 0xe695, 0xea5b, 0xe74c, 0xeb3e,
+ 0xe7f6, 0xd960, 0xd3e3, 0xe0c3, 0xe982, 0xdebb,
+ 0xdf2b, 0xed1f, 0xe5a6, 0xd7f7, 0xd3e2, 0xcf22,
+ 0xd917, 0xe897, 0xe81b, 0xe50e, 0xe09f, 0xe29e,
+ 0xf2de, 0xf0f0, 0xe0ef, 0xdeaf, 0xdd7c, 0xd93e,
+ 0xd55c, 0xd4ee, 0xe3c9, 0xec24, 0xe722, 0xeb7b,
+ 0xeb7f, 0xe79a, 0xf0ce, 0xf70b, 0xf8ac, 0xf671,
+ 0xeb64, 0xebc3, 0xf300, 0xf690, 0xfe81, 0xfa0c,
+ 0xee4c, 0xef1d, 0xef8a, 0xf190, 0xef68, 0xde14,
+ 0xde1a, 0xec2a, 0xeb97, 0xeedc, 0xf85b, 0xf5ee,
+ 0xee44, 0xedf4, 0xf4d0, 0xf07d, 0xe9e4, 0xf7fe,
+ 0xfd14, 0xf147, 0xed7a, 0xe634, 0xe2be, 0xe71c,
+ 0xe372, 0xf428, 0x0b15, 0x01c4, 0xfdc5, 0x078e,
+ 0x09b9, 0x1050, 0x0e12, 0x05f0, 0x09bf, 0x05f7,
+ 0x00c4, 0x022c, 0x0267, 0x0d99, 0x0b59, 0xf1f3,
+ 0xedfc, 0xfcd1, 0x04a1, 0x0629, 0x0972, 0x16c7,
+ 0x194d, 0x0e39, 0x0c52, 0x00c5, 0xf10d, 0xf14a,
+ 0xef5a, 0xf4ac, 0xf790, 0xe7fa, 0xecc9, 0xf454,
+ 0xeb45, 0xf2e7, 0xf2c7, 0xec1d, 0xf33a, 0xe929,
+ 0xe90f, 0xf058, 0xdc1a, 0xe52a, 0xf4d7, 0xdde8,
+ 0xdf54, 0xe247, 0xd10e, 0xde9c, 0xdefe, 0xcb2e,
+ 0xd0ec, 0xd349, 0xd29d, 0xd370, 0xd17e, 0xe88a,
+ 0xf172, 0xe829, 0xf992, 0xfa17, 0xecf2, 0xf0de,
+ 0xe48c, 0xdec3, 0xe030, 0xd1d7, 0xe2d7, 0xfa7e,
+ 0xf493, 0xf70d, 0xfb63, 0x031d, 0x11d6, 0x0b04,
+ 0x06bf, 0x0365, 0xf807, 0x020b, 0xfcc7, 0xed76,
+ 0xfbea, 0xf98e, 0xf342, 0x0180, 0xfd81, 0xfff5,
+ 0x045b, 0xf788, 0x056c, 0x0f35, 0x0584, 0x1132,
+ 0x14c7, 0x1155, 0x145b, 0x0e9d, 0x1e2e, 0x2231,
+ 0x0393, 0x01cd, 0x0755, 0x047f, 0x1449, 0x0fcb,
+ 0x0861, 0x1105, 0x073b, 0x081c, 0x0dbf, 0x0a5f,
+ 0x1e7c, 0x221c, 0x1b39, 0x2a03, 0x19ee, 0x0782,
+ 0x0c70, 0xfbb7, 0xf546, 0xf33c, 0xe51c, 0xf797,
+ 0xff46, 0xf987, 0x15fb, 0x1b10, 0x0edb, 0x177f,
+ 0x11d5, 0x0ec3, 0x0ab5, 0xf7ef, 0xff2c, 0x03c4,
+ 0xfefb, 0x0cb1, 0x00ef, 0xf16a, 0xfc22, 0xf74d,
+ 0xf9ec, 0x0918, 0x00ad, 0xf559, 0xeec6, 0xedbf,
+ 0xede2, 0xdfcd, 0xe79d, 0xf755, 0xea92, 0xeab3,
+ 0xf19c, 0xee56, 0xf44b, 0xea4f, 0xe21d, 0xec5b,
+ 0xe423, 0xe74e, 0xfc74, 0x0181, 0x071e, 0x0192,
+ 0xf600, 0xf94d, 0xed7a, 0xeb90, 0xf954, 0xf018,
+ 0xf39d, 0xf63b, 0xe316, 0xe9ad, 0xe6b8, 0xdb74,
+ 0xf2c9, 0xed7d, 0xdd95, 0xf05a, 0xeae4, 0xe39b,
+ 0xf3c9, 0xf8ad, 0x093f, 0x0fc3, 0xf8c0, 0xf710,
+ 0xfad7, 0xf48c, 0xf9e1, 0xfa73, 0xf4bc, 0xeaa0,
+ 0xe1b8, 0xe706, 0xe128, 0xdfc8, 0xeff7, 0xeb62,
+ 0xee69, 0xfb7d, 0xeacb, 0xe9f7, 0xf9d3, 0xf290,
+ 0xed0d, 0xe720, 0xe37d, 0xf172, 0xf433, 0xf20a,
+ 0xeea9, 0xe230, 0xe912, 0xeec0, 0xf003, 0x0701,
+ 0x03ea, 0xf3c8, 0x0448, 0x09ef, 0x0a91, 0x17b3,
+ 0x0a47, 0xf41b, 0xec1f, 0xed4e, 0xf7e8, 0xf1e8,
+ 0xe6ca, 0xf27f, 0xfeb9, 0x083e, 0x147f, 0x1c5b,
+ 0x22de, 0x1f6d, 0x1775, 0x0b4b, 0xf929, 0x02fe,
+ 0x1011, 0x00ea, 0xfe93, 0x02bc, 0x0676, 0x17bb,
+ 0x0f2e, 0x02f3, 0x070f, 0xf36e, 0xf39a, 0x03e3,
+ 0xf09d, 0xf43e, 0x03b2, 0xf1f5, 0xf1ee, 0xefa4,
+ 0xe0a1, 0xf56f, 0x0137, 0xf81c, 0x0383, 0x0c3d,
+ 0x06c8, 0xf76f, 0xeeb5, 0xfd9a, 0xf521, 0xe55f,
+ 0xfe2a, 0x076a, 0xfea5, 0x0d24, 0x0e6d, 0x01a5,
+ 0xfda6, 0xf7e1, 0xf5f7, 0xf485, 0xf887, 0x09fe,
+ 0x0c8b, 0x0416, 0x0050, 0xf5f3, 0xf065, 0xf763,
+ 0x0769, 0x1700, 0x1193, 0x0cfd, 0x12d5, 0x0d2e,
+ 0x12fd, 0x1c61, 0x0d6e, 0x0258, 0xf852, 0xf0f7,
+ 0x0926, 0x146f, 0x025a, 0xfd95, 0xfbc3, 0xfa99,
+ 0x063c, 0x0558, 0xf92d, 0xf195, 0xeb77, 0xe59f,
+ 0xde5d, 0xe345, 0xf4b5, 0xf848, 0xf4f4, 0xf2a9,
+ 0xe5de, 0xe149, 0xeb0f, 0xed53, 0xec63, 0xf6b3,
+ 0x04f6, 0x07e4, 0x0579, 0x0b25, 0x0b24, 0x0046,
+ 0xf80c, 0xee9e, 0xe967, 0xf11f, 0xf697, 0xf6ed,
+ 0xf5b1, 0xedf1, 0xe993, 0xee5a, 0xf4f8, 0xfc2a,
+ 0x04dd, 0x0c1c, 0x08d9, 0xfca9, 0xf64b, 0xf271,
+ 0xf024, 0xfda1, 0x0bf2, 0x062d, 0xfe13, 0x038a,
+ 0x07ab, 0x0370, 0x0233, 0x01f9, 0x011c, 0x0555,
+ 0xfff1, 0xf673, 0xfe6c, 0xfcd6, 0xec0e, 0xeec8,
+ 0xf429, 0xeee4, 0xf46a, 0xfab3, 0xfee7, 0x05d1,
+ 0xfe69, 0xf5ef, 0xf736, 0xf3a6, 0xf5d2, 0xfb08,
+ 0xf72f, 0xff96, 0x0eb9, 0x0de7, 0x0941, 0x01d0,
+ 0xf5c3, 0xfa5e, 0x00e8, 0xf5e3, 0xf9f0, 0x0a64,
+ 0x0321, 0x0248, 0x13ea, 0x0c02, 0xffb1, 0x06ab,
+ 0xffec, 0xfc17, 0x0bb3, 0x11c3, 0x1523, 0x156e,
+ 0x08c9, 0x09da, 0x0e27, 0x0357, 0x0241, 0x0d40,
+ 0x193b, 0x1e4b, 0x170d, 0x16b7, 0x16c5, 0x1004,
+ 0x1a78, 0x1cc9, 0x0a28, 0x0815, 0x03d3, 0xf1b6,
+ 0xf56d, 0x0428, 0x0ba0, 0x109d, 0x0cfb, 0x04fc,
+ 0xfe53, 0xfe33, 0x0818, 0x0a35, 0x0afd, 0x150e,
+ 0x1008, 0x03d9, 0x0593, 0x08f3, 0x1070, 0x1c87,
+ 0x183f, 0x0798, 0xfeac, 0xfe5b, 0xfb14, 0xfa50,
+ 0x04ce, 0x0749, 0xffbf, 0x029f, 0x0697, 0x0726,
+ 0x0dd2, 0x0e75, 0x04b3, 0xfa15, 0xf7a7, 0x00e2,
+ 0x05e4, 0x064e, 0x0c96, 0x09d1, 0xfc96, 0xf0bf,
+ 0xeca1, 0xfaa0, 0x08bc, 0x06db, 0x02b3, 0xf864,
+ 0xeefd, 0xf2a1, 0xf178, 0xf622, 0x019c, 0xf692,
+ 0xedc6, 0xf266, 0xeae4, 0xf033, 0x0437, 0x031d,
+ 0xfa15, 0xf42e, 0xe7fa, 0xe59a, 0xf3e3, 0xffae,
+ 0xfd5b, 0xf950, 0xffc3, 0x04fd, 0x02c9, 0xfe38,
+ 0xfaa0, 0x00f7, 0x040d, 0xf76e, 0xf442, 0xfc9d,
+ 0x011e, 0x0b4f, 0x1296, 0x0d4e, 0x0b50, 0x0ba2,
+ 0x0ba9, 0x12e2, 0x152f, 0x0bbc, 0x05df, 0x0881,
+ 0x0b31, 0x1090, 0x16b5, 0x0d18, 0xfe6d, 0xfc58,
+ 0xfbde, 0x02a5, 0x1006, 0x0e2e, 0x121e, 0x1caf,
+ 0x0cc4, 0x000f, 0x058c, 0x0140, 0x0447, 0x09f5,
+ 0xf973, 0xf104, 0xf704, 0xf43a, 0xf16a, 0xf3a5,
+ 0xf86a, 0xfbe4, 0xf371, 0xeb4a, 0xee4d, 0xefc2,
+ 0xea1d, 0xe6c8, 0xedc9, 0xf245, 0xef48, 0xf76a,
+ 0xfb07, 0xed71, 0xebf2, 0xedc6, 0xe554, 0xeb9e,
+ 0xf42f, 0xf0d3, 0xf534, 0xf908, 0xf667, 0xf9a8,
+ 0xfc1b, 0x0072, 0x09cf, 0x08b4, 0x0208, 0xfe6f,
+ 0xf45b, 0xeebe, 0xff47, 0x1065, 0x0d13, 0x07dd,
+ 0x0692, 0x01b7, 0x0cd6, 0x1fdd, 0x1f78, 0x1e0a,
+ 0x1d13, 0x0994, 0xfe39, 0x038a, 0x0472, 0x0b37,
+ 0x171c, 0x1507, 0x0d0b, 0x0c0e, 0x0f87, 0x0f97,
+ 0x0c9f, 0x0ee8, 0x1238, 0x137a, 0x16d0, 0x17a9,
+ 0x1bad, 0x2349, 0x1ddd, 0x16d8, 0x1aaf, 0x1a2a,
+ 0x1b01, 0x22f3, 0x1dd1, 0x103b, 0x0b8a, 0x0ad0,
+ 0x0e37, 0x16a1, 0x18cf, 0x1b33, 0x23c2, 0x225c,
+ 0x1f4d, 0x29b2, 0x2a23, 0x1ed5, 0x1e74, 0x1adf,
+ 0x11bd, 0x148a, 0x1438, 0x1166, 0x195d, 0x1757,
+ 0x0d80, 0x0f34, 0x0ea5, 0x098c, 0x0bc7, 0x0d9d,
+ 0x0a3f, 0x03b8, 0xfcea, 0xfb93, 0xfbd7, 0xfad6,
+ 0xfac0, 0xf697, 0xefe1, 0xef76, 0xf440, 0xf7aa,
+ 0xfacf, 0x020f, 0x0482, 0xfb61, 0xf5a4, 0xf7e2,
+ 0xf577, 0xf0ea, 0xf147, 0xf56c, 0xfbcc, 0xfca0,
+ 0xf6cf, 0xf54e, 0xf5cb, 0xef3e, 0xe4f9, 0xde10,
+ 0xe0fc, 0xec7b, 0xf16a, 0xef47, 0xf67e, 0x000a,
+ 0xff0d, 0x00b0, 0x0659, 0x0497, 0x05b0, 0x0923,
+ 0x004d, 0xf63c, 0xf570, 0xf680, 0xf86d, 0xf92e,
+ 0xf4e2, 0xf1a6, 0xf4be, 0xfd94, 0x0554, 0x02ba,
+ 0xf8b2, 0xf291, 0xf272, 0xf028, 0xebad, 0xed45,
+ 0xf024, 0xeed5, 0xee25, 0xec82, 0xede4, 0xf5b9,
+ 0xf4d0, 0xecd4, 0xee3c, 0xf463, 0xf5b6, 0xf254,
+ 0xf3a2, 0x008f, 0x0be3, 0x0f06, 0x0cf7, 0x0435,
+ 0x02ed, 0x0623, 0xfa4c, 0xf053, 0xed15, 0xe298,
+ 0xe29b, 0xee3e, 0xf94e, 0x05a6, 0x01a4, 0xf607,
+ 0xfb82, 0xfdb4, 0xfeb4, 0x0b03, 0x0bab, 0x0d0f,
+ 0x176a, 0x0e5d, 0xffcd, 0xf8b5, 0xf277, 0xff8e,
+ 0x0d7d, 0x03c4, 0x01ea, 0x095f, 0x0459, 0x0246,
+ 0x03a9, 0xfc4d, 0xf671, 0xf523, 0xf3fd, 0xf511,
+ 0xf68a, 0xf4c0, 0xf122, 0xf27f, 0xf992, 0xffee,
+ 0x0469, 0x00b8, 0xf2d0, 0xedfa, 0xf727, 0x00d0,
+ 0x08c5, 0x08f7, 0xffad, 0xfe5b, 0x03df, 0x0314,
+ 0x0068, 0xfda8, 0xfaf0, 0xfb8a, 0xf763, 0xf1fb,
+ 0xf450, 0xf26f, 0xefce, 0xf9b9, 0xfff7, 0xfcc5,
+ 0xfe92, 0x03f8, 0x0c9d, 0x134f, 0x08bf, 0xfdee,
+ 0x0232, 0xffbb, 0xf652, 0xf745, 0xf7a6, 0xf1c9,
+ 0xf1a9, 0xf69c, 0xfc2e, 0x032d, 0x0876, 0x0941,
+ 0x04f9, 0xfcba, 0xf740, 0xf7df, 0xf7e4, 0xf424,
+ 0xf1be, 0xf211, 0xf319, 0xf53b, 0xf70b, 0xf87b,
+ 0xfe5d, 0x0651, 0x045e, 0xf632, 0xead3, 0xec4c,
+ 0xf37a, 0xfc19, 0x0801, 0x1047, 0x108c, 0x0cfa,
+ 0x05a3, 0xfcc2, 0xf7d4, 0xf549, 0xf3e1, 0xf366,
+ 0xf0b4, 0xef3b, 0xf424, 0xfcbe, 0x01e1, 0xfed9,
+ 0xfdb7, 0x0797, 0x0cf2, 0x088e, 0x094a, 0x06ff,
+ 0xfba0, 0xfbef, 0x04b6, 0x01c2, 0xfa63, 0xf8ba,
+ 0xf75c, 0xf426, 0xf355, 0xf7da, 0xfd5b, 0x013d,
+ 0x076b, 0x090d, 0x0099, 0xf774, 0xf0d1, 0xef26,
+ 0xf6a0, 0xfac4, 0xf6f1, 0xf470, 0xf050, 0xebc9,
+ 0xef6d, 0xf869, 0x009e, 0xfe5d, 0xf0c8, 0xea9e,
+ 0xedd1, 0xf111, 0xf999, 0x0246, 0x0776, 0x125f,
+ 0x1628, 0x0ace, 0x01ac, 0xfb4b, 0xf41a, 0xf5b8,
+ 0xfa00, 0xf7c2, 0xf583, 0xfae3, 0x072e, 0x0e37,
+ 0x0a44, 0x05c8, 0x0475, 0x07a2, 0x1212, 0x1732,
+ 0x10c0, 0x0938, 0x05e9, 0x0657, 0x0467, 0xfd17,
+ 0xf9ad, 0xf7ca, 0xf428, 0xfcc8, 0x0dba, 0x16f5,
+ 0x1826, 0x0f94, 0x0207, 0xff76, 0x041e, 0x0376,
+ 0xff1f, 0xfe27, 0x01d3, 0x021c, 0xff90, 0x0373,
+ 0x0600, 0x02dd, 0x0342, 0x0146, 0xf908, 0xf16e,
+ 0xeabc, 0xed29, 0xf8d2, 0xfe48, 0x04a6, 0x0eaa,
+ 0x0db8, 0x0eb9, 0x1582, 0x0bef, 0xfcb2, 0xf851,
+ 0xf5b8, 0xf80b, 0x00b0, 0x059b, 0x0cab, 0x1488,
+ 0x133e, 0x1259, 0x126c, 0x0924, 0x03df, 0x0988,
+ 0x0959, 0x0512, 0x06c1, 0x03f6, 0xfc2b, 0xf900,
+ 0xf41f, 0xf124, 0xf796, 0xf5b0, 0xec5d, 0xf13c,
+ 0xf832, 0xf565, 0xf6bd, 0xf7ac, 0xf1da, 0xf20c,
+ 0xf5ff, 0xf3ab, 0xed7a, 0xe804, 0xe812, 0xec7f,
+ 0xf083, 0xf64c, 0xf875, 0xf04a, 0xe6ea, 0xe122,
+ 0xdbd2, 0xd9df, 0xddad, 0xe719, 0xeefa, 0xec5d,
+ 0xebb3, 0xf802, 0x00b0, 0xfbda, 0xf374, 0xedd3,
+ 0xecd3, 0xedf8, 0xea69, 0xe754, 0xf00f, 0xff10,
+ 0x0468, 0x00a6, 0x0306, 0x0bb4, 0x0d71, 0x0944,
+ 0x081f, 0x0949, 0x0886, 0x021e, 0xf9c6, 0xfd27,
+ 0x070b, 0x03a8, 0xfc2c, 0xff7d, 0xff49, 0xfa52,
+ 0xffbd, 0x047d, 0x00f4, 0x00cd, 0xfedd, 0xf7dd,
+ 0xf582, 0xf2cd, 0xf044, 0xf6c1, 0xfdd4, 0x02ec,
+ 0x0991, 0x082f, 0x0193, 0xffc4, 0xfe0c, 0xf902,
+ 0xf2c6, 0xf25c, 0xfbbb, 0xff88, 0xfbb5, 0xff17,
+ 0x0071, 0xfc1b, 0x0069, 0x039b, 0xfc85, 0xf3a0,
+ 0xe8ff, 0xe437, 0xeb72, 0xf05b, 0xf2d4, 0xf841,
+ 0xf55d, 0xef5b, 0xf476, 0xfe74, 0x03c2, 0x0064,
+ 0xf42d, 0xe7f8, 0xe1e2, 0xe0a7, 0xe373, 0xe83e,
+ 0xeb63, 0xe9d4, 0xe33d, 0xddc7, 0xe06b, 0xe86c,
+ 0xece6, 0xed78, 0xef0b, 0xee90, 0xec74, 0xefcd,
+ 0xf3c6, 0xf219, 0xeecd, 0xeaa7, 0xe6fa, 0xe7f4,
+ 0xec78, 0xf5dd, 0x0248, 0x0672, 0xff39, 0xf503,
+ 0xf18b, 0xf57f, 0xf7e1, 0xfa7a, 0x0250, 0x07cd,
+ 0x0b60, 0x0f51, 0x0f36, 0x1337, 0x1727, 0x0c28,
+ 0x00e1, 0xfd94, 0xf7bf, 0xf9ac, 0x0474, 0x0a2a,
+ 0x0f3e, 0x1157, 0x0d2f, 0x1031, 0x1736, 0x1db7,
+ 0x27ae, 0x253e, 0x15d9, 0x0d0c, 0x074b, 0x0520,
+ 0x0fca, 0x17d4, 0x13f4, 0x0d42, 0x06fa, 0x0643,
+ 0x0aba, 0x098f, 0x06d0, 0x08c8, 0x0541, 0xfaf6,
+ 0xf834, 0xff66, 0x0466, 0x03d9, 0x0356, 0x01e0,
+ 0xff5c, 0x0078, 0x0306, 0x0460, 0x057e, 0x0326,
+ 0xfced, 0xf765, 0xf62f, 0xfbfb, 0x0338, 0x03a1,
+ 0x02da, 0x062f, 0x057e, 0x00cc, 0x031d, 0x078c,
+ 0x019c, 0xf96e, 0xf63f, 0xee34, 0xe858, 0xf11b,
+ 0xf98b, 0xfa8e, 0xfd41, 0xfce4, 0xfc73, 0x03f3,
+ 0x0757, 0x06e0, 0x0abb, 0x0536, 0xf735, 0xf150,
+ 0xf04f, 0xf227, 0xf8b9, 0xf976, 0xf635, 0xf671,
+ 0xf37a, 0xf082, 0xf317, 0xefc2, 0xe76c, 0xe6ae,
+ 0xe7fe, 0xe5e9, 0xe82c, 0xecd1, 0xec5c, 0xea3b,
+ 0xeb64, 0xeede, 0xf08a, 0xee66, 0xed39, 0xed29,
+ 0xe892, 0xe5fc, 0xeb83, 0xf0b2, 0xf40d, 0xf8e0,
+ 0xf8b9, 0xf5d4, 0xf877, 0xfb3a, 0xfada, 0xfbef,
+ 0xf94e, 0xef70, 0xe94b, 0xeb11, 0xebfa, 0xedc3,
+ 0xf745, 0xfe6d, 0xfc2a, 0xfa73, 0xfaad, 0xf937,
+ 0xfcfe, 0x040d, 0x06a5, 0x0931, 0x0a72, 0x017b,
+ 0xf47b, 0xef6a, 0xf182, 0xf72e, 0x0199, 0x09f1,
+ 0x0761, 0x0323, 0x045b, 0xffe8, 0xf6eb, 0xf3fd,
+ 0xf256, 0xf09b, 0xf19d, 0xeed6, 0xec80, 0xf0a3,
+ 0xf2c9, 0xf3ed, 0xf8dd, 0xfb50, 0xfd77, 0x0291,
+ 0x0160, 0xf896, 0xf236, 0xf3fe, 0xfa42, 0xfd9b,
+ 0xff05, 0x0283, 0x042c, 0x021c, 0xfea3, 0xf97e,
+ 0xf2e1, 0xebb0, 0xe8c9, 0xef8c, 0xf6fb, 0xf615,
+ 0xf5ba, 0xfbed, 0x0156, 0x026e, 0x02dc, 0x0492,
+ 0x06d5, 0x09ef, 0x0ceb, 0x0c6c, 0x0ab9, 0x0b2d,
+ 0x078d, 0xfd97, 0xf7b7, 0xfb90, 0x023f, 0x03b4,
+ 0x0116, 0x0125, 0x0193, 0xfb30, 0xf2e9, 0xf043,
+ 0xf064, 0xf2b7, 0xf8d4, 0xfa37, 0xf575, 0xf758,
+ 0xfef4, 0x0173, 0x0053, 0xfd23, 0xfa47, 0x0023,
+ 0x0571, 0xff9d, 0xfa76, 0xf99d, 0xf7f9, 0xfa8e,
+ 0xff13, 0x030f, 0x09e5, 0x0b54, 0x05d6, 0x003a,
+ 0xf703, 0xeebe, 0xedc4, 0xeec9, 0xf38b, 0xf9da,
+ 0xfb25, 0xfcb6, 0xfadf, 0xf4ad, 0xf7dd, 0x0011,
+ 0x085a, 0x13cb, 0x151a, 0x117e, 0x1581, 0x0eef,
+ 0x01cd, 0x00b1, 0xfd06, 0xf721, 0xfcaf, 0x0276,
+ 0x0664, 0x0a48, 0x0512, 0xfdc2, 0xf868, 0xf37a,
+ 0xf80c, 0xfbbf, 0xf3f2, 0xedf8, 0xe835, 0xe120,
+ 0xe832, 0xf46e, 0xf7a5, 0xfa5d, 0xfbe2, 0xf516,
+ 0xebcf, 0xe7dd, 0xedfb, 0xf860, 0xfb52, 0xfc2c,
+ 0x01d4, 0x0372, 0x0195, 0x048f, 0x04c3, 0xfd1a,
+ 0xf60a, 0xf03c, 0xeb64, 0xee45, 0xf4be, 0xfbbe,
+ 0x075c, 0x0b75, 0x03c1, 0x0284, 0x0643, 0x046c,
+ 0x0558, 0x083c, 0x07f6, 0x0bc5, 0x0e72, 0x0911,
+ 0x0502, 0x0435, 0x0201, 0x00cc, 0x0065, 0xfee4,
+ 0xff19, 0x03a0, 0x0915, 0x090b, 0x03d9, 0xfc69,
+ 0xf4f2, 0xf46c, 0xf87a, 0xf7df, 0xf567, 0xf1b6,
+ 0xed53, 0xf368, 0xfeb0, 0x0520, 0x0d8a, 0x10e0,
+ 0x063f, 0xfcb7, 0xfbfd, 0x007a, 0x0665, 0x04e3,
+ 0x035d, 0x0bf5, 0x1215, 0x1375, 0x14d7, 0x0d43,
+ 0x045b, 0x0309, 0xfbb0, 0xf140, 0xf18b, 0xf713,
+ 0xfdaf, 0x034b, 0xffeb, 0xfa8c, 0xfde3, 0x035c,
+ 0x0570, 0x0990, 0x1074, 0x13e4, 0x1473, 0x1719,
+ 0x18c7, 0x168b, 0x13de, 0x119e, 0x11e1, 0x1512,
+ 0x11bd, 0x0868, 0x0442, 0x02ff, 0xffc6, 0xfd5f,
+ 0xfa4a, 0xf7f3, 0xf94f, 0xf847, 0xf4f3, 0xf4dd,
+ 0xf45c, 0xf239, 0xf182, 0xf0a1, 0xf1cb, 0xf600,
+ 0xf544, 0xee8e, 0xeab2, 0xec9d, 0xef55, 0xf160,
+ 0xf7da, 0x0130, 0x05d5, 0x0788, 0x06fe, 0xff19,
+ 0xf553, 0xeca0, 0xe163, 0xdd5f, 0xe201, 0xe308,
+ 0xe76b, 0xf24e, 0xf246, 0xeabd, 0xecad, 0xf584,
+ 0xfd14, 0x00b2, 0x01d9, 0x0410, 0x02ad, 0xfd05,
+ 0xfce3, 0x0031, 0xfe9b, 0xfb08, 0xfabe, 0xfef0,
+ 0x0355, 0x01f6, 0xff07, 0x0048, 0x013f, 0xfce9,
+ 0xf6cd, 0xf6de, 0xf9fc, 0xf454, 0xebb3, 0xeceb,
+ 0xf1b4, 0xf367, 0xf6b2, 0xfce9, 0x03bc, 0x064b,
+ 0x0267, 0xffac, 0x0019, 0xfe8e, 0xfb9f, 0xf85d,
+ 0xf923, 0x02ca, 0x0ae7, 0x0b3f, 0x0cad, 0x0c49,
+ 0x01b5, 0xf45e, 0xed94, 0xed9f, 0xf0ed, 0xf4e0,
+ 0xfa0a, 0xfe93, 0x00a6, 0x04f7, 0x0b72, 0x0e35,
+ 0x0e03, 0x0cde, 0x09cc, 0x0621, 0x01ed, 0xfe88,
+ 0x0202, 0x0abe, 0x0f25, 0x0bed, 0x0379, 0xfa6f,
+ 0xf884, 0xfcbe, 0xfdb6, 0xfc99, 0xfcf6, 0xf6b5,
+ 0xec02, 0xea20, 0xeca2, 0xeafd, 0xea82, 0xe90e,
+ 0xe1a0, 0xdd21, 0xde99, 0xe126, 0xe6cf, 0xec5e,
+ 0xebca, 0xe9b3, 0xe84e, 0xe66f, 0xe805, 0xea8e,
+ 0xeae3, 0xf094, 0xfc1a, 0x04e8, 0x0b49, 0x11b6,
+ 0x1387, 0x0dfc, 0x0330, 0xf670, 0xed4e, 0xec95,
+ 0xf133, 0xf500, 0xf98d, 0x01e7, 0x08c0, 0x0a6a,
+ 0x0c33, 0x1263, 0x1a69, 0x1edf, 0x1df2, 0x1c36,
+ 0x1d16, 0x1dba, 0x1d4a, 0x2041, 0x2558, 0x23ba,
+ 0x1c21, 0x1a69, 0x2062, 0x252b, 0x2539, 0x22d4,
+ 0x2217, 0x2317, 0x1edc, 0x1714, 0x1501, 0x15ed,
+ 0x12f7, 0x0c64, 0x05d3, 0x04d5, 0x0797, 0x081e,
+ 0x09bc, 0x0b33, 0x0916, 0x0bfa, 0x1107, 0x0f60,
+ 0x1149, 0x1956, 0x1e3d, 0x22d2, 0x250d, 0x1f43,
+ 0x17b8, 0x0de4, 0x01b6, 0xfeb8, 0x01d8, 0x0034,
+ 0xfd60, 0xfd9d, 0xfec2, 0xff78, 0x01d9, 0x0a5c,
+ 0x1485, 0x169b, 0x1307, 0x10cb, 0x10d7, 0x1234,
+ 0x118c, 0x0d5f, 0x0bf5, 0x1095, 0x1331, 0x0e36,
+ 0x0a5d, 0x0d8a, 0x0f67, 0x0db0, 0x0df5, 0x0dac,
+ 0x0b63, 0x088d, 0x0192, 0xf9a1, 0xf714, 0xf6bc,
+ 0xf474, 0xefca, 0xece0, 0xf115, 0xf6da, 0xf9d2,
+ 0xfcbc, 0xf8b4, 0xedff, 0xeadf, 0xed40, 0xee1d,
+ 0xf361, 0xf9b0, 0xfa93, 0xfc29, 0xff14, 0xfe41,
+ 0xfb19, 0xf673, 0xf16b, 0xef1e, 0xec61, 0xe861,
+ 0xea7d, 0xf110, 0xf38a, 0xf4db, 0xf85d, 0xf968,
+ 0xfc8c, 0x0615, 0x0c03, 0x0c59, 0x0d4b, 0x0b89,
+ 0x0937, 0x0c82, 0x0dbe, 0x09f4, 0x093a, 0x09c5,
+ 0x086d, 0x0bae, 0x1255, 0x12b6, 0x0eaf, 0x0f2c,
+ 0x1169, 0x0f08, 0x0b02, 0x0758, 0x022a, 0xfbff,
+ 0xf4e1, 0xefb3, 0xefe9, 0xf1ca, 0xf42d, 0xf64b,
+ 0xf29a, 0xef48, 0xf1e8, 0xf0a2, 0xedd9, 0xf43c,
+ 0xfd9e, 0x0502, 0x0c4c, 0x0e88, 0x0b3f, 0x06ed,
+ 0x0135, 0xfcd6, 0xfcdb, 0xfc16, 0xf759, 0xf308,
+ 0xeff9, 0xeadf, 0xe855, 0xecac, 0xf13a, 0xf4ca,
+ 0xfb0b, 0xfefb, 0x02b2, 0x0bcd, 0x1169, 0x100d,
+ 0x0c82, 0x0476, 0xfcdb, 0xfc98, 0xfda0, 0xfe57,
+ 0x0161, 0x036f, 0x049d, 0x0657, 0x0948, 0x0f4d,
+ 0x1318, 0x1031, 0x0a9e, 0x05f4, 0x0380, 0xfeed,
+ 0xf4e7, 0xeea9, 0xedfe, 0xec08, 0xede7, 0xf280,
+ 0xf10c, 0xef63, 0xf083, 0xf168, 0xf692, 0xfaea,
+ 0xf98c, 0xfc9a, 0x0214, 0x0140, 0xffb1, 0xfefb,
+ 0xfbc2, 0xf852, 0xf2fb, 0xedb6, 0xf0c2, 0xf869,
+ 0xfc4c, 0xfbd5, 0xf6cd, 0xf037, 0xf047, 0xf6d9,
+ 0xfc81, 0xff95, 0x01c2, 0x0206, 0x0259, 0x060d,
+ 0x097b, 0x0967, 0x08dc, 0x0801, 0x04d1, 0x00d8,
+ 0xfda7, 0xfd09, 0xfff8, 0x0349, 0x051f, 0x0547,
+ 0x0430, 0x0688, 0x0abe, 0x0881, 0x03cd, 0x03a5,
+ 0x00a0, 0xf5d7, 0xead7, 0xe551, 0xe57f, 0xea6c,
+ 0xf0c0, 0xf474, 0xf588, 0xf61c, 0xf47b, 0xf09d,
+ 0xf1ad, 0xf9a5, 0x0277, 0x09aa, 0x0ca5, 0x0862,
+ 0x0254, 0xfdba, 0xf65c, 0xeef3, 0xee28, 0xf19c,
+ 0xf30e, 0xf25f, 0xf2cc, 0xf34c, 0xf2ab, 0xf3a2,
+ 0xf4c9, 0xf424, 0xf5d5, 0xf8b2, 0xf7c6, 0xf642,
+ 0xf894, 0xfe5f, 0x035e, 0x02bb, 0x0196, 0x04a0,
+ 0x034b, 0xfd03, 0xfc0b, 0xfee1, 0x00ba, 0x0401,
+ 0x0614, 0x040d, 0x0436, 0x08c5, 0x0a0f, 0x0648,
+ 0x0350, 0xff0d, 0xf5dc, 0xedfe, 0xe985, 0xe644,
+ 0xe7eb, 0xebd3, 0xed40, 0xeff2, 0xf11c, 0xee8c,
+ 0xf1db, 0xf9b3, 0xfd01, 0xffcb, 0x06e2, 0x0f48,
+ 0x1420, 0x100b, 0x04f1, 0xfc08, 0xf9ef, 0xfb3b,
+ 0xf975, 0xf581, 0xf640, 0xfa2a, 0xfd0c, 0x014b,
+ 0x072f, 0x0aeb, 0x081a, 0xfea2, 0xf87f, 0xfb03,
+ 0x0012, 0x065f, 0x0d37, 0x0f4c, 0x0f42, 0x0ec8,
+ 0x08ee, 0x02dd, 0x02a7, 0x021e, 0x00a9, 0x03a7,
+ 0x0623, 0x04ee, 0x0626, 0x0908, 0x0956, 0x098c,
+ 0x09a1, 0x083c, 0x0843, 0x0861, 0x066e, 0x04e5,
+ 0x04cc, 0x0772, 0x0b07, 0x08a5, 0x0358, 0x016c,
+ 0xfe8f, 0xfa2b, 0xf906, 0xfac2, 0xffa6, 0x0745,
+ 0x0e0a, 0x111c, 0x0b8f, 0xff02, 0xf605, 0xf2bf,
+ 0xf2f4, 0xf836, 0xfe31, 0x0111, 0x03da, 0x058b,
+ 0x03a3, 0x016d, 0x022b, 0x041f, 0x03b9, 0x00b4,
+ 0xfd61, 0xfd18, 0x0275, 0x0821, 0x0800, 0x05f4,
+ 0x0418, 0x0067, 0xfdb8, 0xfce7, 0xfca2, 0xfd54,
+ 0xfe1b, 0x0123, 0x04fe, 0x024b, 0xfdec, 0xfeac,
+ 0xfedd, 0xfd04, 0xfaed, 0xf7d0, 0xf765, 0xf7c7,
+ 0xf4b2, 0xf275, 0xf19e, 0xf255, 0xf742, 0xf91c,
+ 0xf5cb, 0xf4ab, 0xf55d, 0xf871, 0xff69, 0x05ed,
+ 0x0d93, 0x12d1, 0x0b73, 0xff60, 0xf94f, 0xf610,
+ 0xf5f9, 0xf8e9, 0xf8ae, 0xf641, 0xf4a1, 0xf2cc,
+ 0xf1e8, 0xf3fd, 0xf8d4, 0xfc64, 0xfb0f, 0xf861,
+ 0xf8a5, 0xfd40, 0x0638, 0x0d19, 0x0d8b, 0x0d2b,
+ 0x0e2a, 0x0d97, 0x0b7f, 0x07e7, 0x03d2, 0x01c2,
+ 0x0129, 0x007e, 0xfd44, 0xf830, 0xf99a, 0x00bd,
+ 0x0301, 0x0277, 0x035e, 0xff20, 0xf900, 0xf917,
+ 0xf8ff, 0xf538, 0xf2e2, 0xef9c, 0xe9db, 0xe613,
+ 0xe44c, 0xe3fe, 0xe574, 0xe6b2, 0xe8d5, 0xec8d,
+ 0xf04e, 0xf3d1, 0xf25c, 0xeb56, 0xe7d4, 0xe7e2,
+ 0xe777, 0xea20, 0xed02, 0xeda0, 0xf035, 0xef6e,
+ 0xeb6d, 0xf041, 0xf921, 0xfb09, 0xf9c6, 0xf81c,
+ 0xf63b, 0xf80f, 0xfcc0, 0x01e2, 0x05d1, 0x0684,
+ 0x0792, 0x0ab9, 0x0c88, 0x0dd9, 0x0e5e, 0x0b93,
+ 0x0814, 0x0540, 0x03be, 0x0630, 0x09bf, 0x0ce5,
+ 0x115b, 0x12bf, 0x11dd, 0x1539, 0x18f1, 0x1a3b,
+ 0x1ccc, 0x1c14, 0x15a7, 0x0f7e, 0x09ae, 0x04e2,
+ 0x0660, 0x0c4c, 0x128c, 0x1650, 0x1476, 0x112c,
+ 0x0f03, 0x0a52, 0x080f, 0x0aaf, 0x09c1, 0x0696,
+ 0x05fd, 0x03f3, 0x01a6, 0x0140, 0x0083, 0x02f8,
+ 0x082f, 0x0b35, 0x0f7b, 0x1496, 0x14f3, 0x127d,
+ 0x0e4d, 0x0910, 0x0707, 0x064c, 0x071d, 0x0da4,
+ 0x12f6, 0x12bb, 0x1483, 0x18c7, 0x1909, 0x13bf,
+ 0x0ced, 0x0aae, 0x0a95, 0x0581, 0xffd3, 0xff1e,
+ 0xfffb, 0x00e7, 0x0181, 0x01cb, 0x064f, 0x0c28,
+ 0x0bbd, 0x0826, 0x0590, 0x02ba, 0x009b, 0xfe65,
+ 0xfb15, 0xfac4, 0xfd3d, 0xfee9, 0x0073, 0x0245,
+ 0x051a, 0x09ff, 0x0d36, 0x0c38, 0x06a1, 0xfc78,
+ 0xf62a, 0xf898, 0xf8e8, 0xf1ad, 0xeaa0, 0xe7fe,
+ 0xe91f, 0xed3b, 0xf351, 0xfa2e, 0xff22, 0x025d,
+ 0x057f, 0x0561, 0x03d4, 0x0645, 0x0891, 0x0770,
+ 0x05df, 0x03d8, 0x034d, 0x062e, 0x0866, 0x08e5,
+ 0x07ab, 0x02f5, 0xfe7e, 0xfbff, 0xf91e, 0xf82e,
+ 0xf9ba, 0xfb1c, 0xfc88, 0xfc83, 0xfa3d, 0xf9a0,
+ 0xfca9, 0x01bc, 0x05d8, 0x06d0, 0x05ef, 0x042c,
+ 0x00fc, 0xfd88, 0xfc6a, 0xff57, 0x0251, 0x00be,
+ 0xfed2, 0xfeef, 0xfd39, 0xfb1e, 0xfa17, 0xf863,
+ 0xf7a2, 0xf6fd, 0xf68e, 0xfa4a, 0xfd1b, 0xfad7,
+ 0xf9da, 0xf9dc, 0xf82a, 0xf9b0, 0xfd11, 0xfd54,
+ 0xfc56, 0xfa3d, 0xf57b, 0xf245, 0xf501, 0xfb5f,
+ 0xff22, 0xfe74, 0xfdb4, 0x0094, 0x063d, 0x09cc,
+ 0x0860, 0x074e, 0x0993, 0x0867, 0x017b, 0xfb78,
+ 0xf92f, 0xf875, 0xf83c, 0xf6a7, 0xf269, 0xef76,
+ 0xf0a2, 0xf32f, 0xf66f, 0xfa19, 0xf946, 0xf434,
+ 0xf136, 0xf1f1, 0xf486, 0xf721, 0xf9b0, 0xff4e,
+ 0x0634, 0x093f, 0x0977, 0x07e7, 0x04a4, 0x02e5,
+ 0xffae, 0xf7b5, 0xf25e, 0xf30e, 0xf489, 0xf4e5,
+ 0xf3df, 0xf1a1, 0xf210, 0xf6c6, 0xfcc9, 0x00d8,
+ 0x0211, 0x02ef, 0x05bf, 0x093b, 0x0ae7, 0x09cd,
+ 0x074e, 0x045e, 0x0009, 0xfc74, 0xfcc8, 0xfe40,
+ 0xfe92, 0x0102, 0x057a, 0x07cb, 0x072d, 0x041d,
+ 0xffa7, 0xfdac, 0xfdc4, 0xfbf5, 0xf9ec, 0xf9a7,
+ 0xf9ea, 0xfc18, 0xffac, 0x0267, 0x0517, 0x041b,
+ 0xfd24, 0xf8ce, 0xfbe8, 0x01fc, 0x071b, 0x092e,
+ 0x0aa7, 0x0d04, 0x0a11, 0x02e6, 0xff00, 0xfd08,
+ 0xfc21, 0xfdce, 0xfde5, 0xfcc0, 0xfe48, 0x013c,
+ 0x0459, 0x04f6, 0x00b8, 0xfce0, 0xfd00, 0xfe84,
+ 0xff74, 0xfec2, 0xfd96, 0xfde8, 0xff0a, 0x00c4,
+ 0x01d9, 0x0162, 0x0249, 0x03bd, 0x04cb, 0x0920,
+ 0x0da3, 0x0ef7, 0x1119, 0x110c, 0x0aeb, 0x04e7,
+ 0x0165, 0xfd37, 0xf733, 0xefc2, 0xed10, 0xf260,
+ 0xf650, 0xf4c4, 0xf52c, 0xf98d, 0xfd49, 0xfd91,
+ 0xfb37, 0xf926, 0xf814, 0xf89b, 0xfcc3, 0x00f1,
+ 0x0194, 0x02cf, 0x0503, 0x040a, 0x01f7, 0x001b,
+ 0xfc98, 0xfaba, 0xfb15, 0xf96c, 0xf809, 0xf901,
+ 0xf8d9, 0xf832, 0xf89c, 0xf8dd, 0xfacd, 0xfea3,
+ 0x0148, 0x02bd, 0x0435, 0x076d, 0x0cd7, 0x0f51,
+ 0x0d8f, 0x0b4e, 0x0698, 0xffe9, 0xfe61, 0x01c1,
+ 0x0532, 0x0947, 0x0e69, 0x11d9, 0x11d8, 0x0e92,
+ 0x0a4c, 0x0885, 0x08d8, 0x0607, 0xffca, 0xfc83,
+ 0xfc25, 0xfa48, 0xf8c0, 0xf776, 0xf3f7, 0xf323,
+ 0xf6b5, 0xf96f, 0xfb7b, 0xfd7a, 0xfd13, 0xfe6e,
+ 0x0419, 0x0850, 0x0a8b, 0x0fa1, 0x1515, 0x155b,
+ 0x117c, 0x0ea4, 0x0ef5, 0x0e51, 0x0967, 0x0568,
+ 0x05fd, 0x05bd, 0x01e9, 0xfd3a, 0xf8eb, 0xf73e,
+ 0xf815, 0xf6cb, 0xf5af, 0xf9d7, 0xffa1, 0x031b,
+ 0x050b, 0x059a, 0x0482, 0x0197, 0xfde5, 0xfb22,
+ 0xf87c, 0xf7d2, 0xfce9, 0x0400, 0x07d2, 0x0893,
+ 0x06f8, 0x0418, 0x0190, 0xff0f, 0xfc87, 0xfa96,
+ 0xf9f8, 0xfa9d, 0xfa80, 0xfa21, 0xfad0, 0xfa02,
+ 0xf7e5, 0xf6eb, 0xf5f5, 0xf610, 0xf96f, 0xfd32,
+ 0xfea8, 0xfe91, 0xfe88, 0xfe45, 0xfb17, 0xf6fc,
+ 0xf6df, 0xf7fd, 0xf690, 0xf597, 0xf69d, 0xf845,
+ 0xfa9d, 0xfc47, 0xfbcb, 0xfc04, 0xfedf, 0x0063,
+ 0xfef4, 0xfed9, 0x0028, 0x001e, 0x0083, 0x00da,
+ 0xff25, 0xfe27, 0xfdaa, 0xfbce, 0xfb06, 0xfaaa,
+ 0xf968, 0xf9a5, 0xfacd, 0xfd7b, 0x03d6, 0x08ea,
+ 0x0951, 0x07be, 0x04b3, 0x01dc, 0x00e3, 0xfe3c,
+ 0xfa91, 0xf964, 0xf732, 0xf2e2, 0xf28c, 0xf663,
+ 0xf84e, 0xf7b1, 0xf835, 0xfa02, 0xfbfb, 0xfed1,
+ 0x0131, 0x00e8, 0xffe6, 0x00e0, 0x021b, 0x01c8,
+ 0x02a3, 0x04db, 0x0370, 0xff0b, 0xfc1e, 0xf8ff,
+ 0xf502, 0xf2dd, 0xf1fe, 0xf389, 0xf668, 0xf2bf,
+ 0xeb13, 0xe8e2, 0xe9a3, 0xea3c, 0xeefd, 0xf6e0,
+ 0xfd85, 0x0159, 0x01c7, 0x0081, 0xff67, 0xfe7b,
+ 0xfe14, 0xfd41, 0xfafb, 0xf7e1, 0xf51d, 0xf6e1,
+ 0xff15, 0x062d, 0x0648, 0x0407, 0x0538, 0x091b,
+ 0x0c24, 0x0d23, 0x0b6e, 0x0661, 0x026f, 0x03ab,
+ 0x06d4, 0x088e, 0x0828, 0x0562, 0x035a, 0x044d,
+ 0x074b, 0x0c82, 0x1068, 0x0ec3, 0x0d17, 0x101f,
+ 0x1413, 0x1802, 0x1cae, 0x1cf5, 0x1736, 0x123b,
+ 0x119f, 0x1243, 0x12ec, 0x1476, 0x1546, 0x14dc,
+ 0x147e, 0x13d4, 0x12fd, 0x1254, 0x1128, 0x1074,
+ 0x1105, 0x12e9, 0x1758, 0x1b89, 0x1a69, 0x1583,
+ 0x10e9, 0x0d8e, 0x0c5c, 0x0d35, 0x0daf, 0x0dea,
+ 0x10b5, 0x156d, 0x17f2, 0x174e, 0x154b, 0x120d,
+ 0x0e57, 0x0b2d, 0x0773, 0x0406, 0x0259, 0x0162,
+ 0x01e0, 0x03dc, 0x044a, 0x0389, 0x033f, 0x028d,
+ 0x0292, 0x04ec, 0x08ff, 0x0de9, 0x1114, 0x0f8b,
+ 0x0b05, 0x0862, 0x08f6, 0x0839, 0x03ba, 0xffa8,
+ 0xfea7, 0xff89, 0x01a2, 0x0325, 0x02f4, 0x028a,
+ 0x01c7, 0x0105, 0x01e0, 0x0283, 0x01fe, 0x0387,
+ 0x073e, 0x08e3, 0x0778, 0x06e1, 0x0758, 0x0425,
+ 0xfe08, 0xfa30, 0xf9d7, 0xfba3, 0xfc8e, 0xfa89,
+ 0xf90c, 0xf91d, 0xf93b, 0xfcdd, 0x0264, 0x040d,
+ 0x0597, 0x099f, 0x0ab1, 0x0810, 0x0483, 0x0113,
+ 0xff48, 0xfe41, 0xfc8b, 0xfb16, 0xf967, 0xf7e3,
+ 0xf852, 0xf9bc, 0xfbe2, 0xffc4, 0x0426, 0x07e6,
+ 0x09e5, 0x08ef, 0x0667, 0x0453, 0x0436, 0x05b6,
+ 0x052b, 0x0301, 0x0345, 0x03b2, 0x00c3, 0xfb80,
+ 0xf4c7, 0xeff0, 0xf041, 0xf175, 0xf1d3, 0xf593,
+ 0xfabf, 0xfdfb, 0x01c4, 0x05f9, 0x0847, 0x0a36,
+ 0x0c3f, 0x0be4, 0x08de, 0x05be, 0x0379, 0x002d,
+ 0xfc8e, 0xfb9e, 0xfb7a, 0xf953, 0xf722, 0xf660,
+ 0xf716, 0xf901, 0xf95c, 0xf7e5, 0xf781, 0xf76d,
+ 0xf63d, 0xf516, 0xf4c8, 0xf697, 0xfa16, 0xfc5a,
+ 0xfd95, 0xff2a, 0x002d, 0x0033, 0xff53, 0xfe88,
+ 0xff36, 0xffa0, 0xfe67, 0xfd40, 0xfdcb, 0x0110,
+ 0x0475, 0x0416, 0x0396, 0x0593, 0x04a1, 0xffc1,
+ 0xfa15, 0xf3cf, 0xf0fc, 0xf580, 0xfc08, 0xff03,
+ 0xff96, 0x00cc, 0x0318, 0x03b9, 0x01cf, 0xffce,
+ 0xfe2c, 0xfd26, 0xfdb0, 0xfcfc, 0xfa3a, 0xf9a5,
+ 0xfb19, 0xfb8c, 0xfcae, 0xff13, 0xff33, 0xfd03,
+ 0xfba1, 0xfb82, 0xfc43, 0xfe44, 0xffbb, 0xfeb9,
+ 0xfca0, 0xfae0, 0xf951, 0xf892, 0xf8e9, 0xf956,
+ 0xf93f, 0xf80f, 0xf645, 0xf5eb, 0xf6bf, 0xf76d,
+ 0xf8f8, 0xfb6f, 0xfdc4, 0x0103, 0x05ae, 0x0a20,
+ 0x0c87, 0x0c16, 0x0a58, 0x0854, 0x0434, 0xfe60,
+ 0xf968, 0xf606, 0xf4f4, 0xf5a2, 0xf630, 0xf811,
+ 0xfb26, 0xfbf5, 0xfb8d, 0xfc35, 0xfd0c, 0xff54,
+ 0x0410, 0x08da, 0x0ba0, 0x0ac7, 0x0668, 0x01a6,
+ 0xfe41, 0xfc16, 0xfa92, 0xf896, 0xf7c5, 0xfa50,
+ 0xfdd9, 0xff5b, 0xff5b, 0xffe4, 0x0095, 0xfe69,
+ 0xfa3a, 0xf803, 0xf6cc, 0xf491, 0xf304, 0xf2b5,
+ 0xf37a, 0xf5f5, 0xf988, 0xfd7d, 0x004f, 0x002d,
+ 0xfe92, 0xfd45, 0xfce3, 0xfe73, 0x003a, 0x0064,
+ 0x007b, 0xffaa, 0xfc28, 0xf969, 0xfad7, 0xfdd7,
+ 0xfd9a, 0xfa8a, 0xf999, 0xfbae, 0xfd55, 0xfc52,
+ 0xf7df, 0xf28f, 0xf0cb, 0xf287, 0xf70b, 0xfef3,
+ 0x074f, 0x0d60, 0x108b, 0x1020, 0x0df9, 0x0a5c,
+ 0x039a, 0xfedc, 0xffdd, 0x016d, 0x01f7, 0x03f5,
+ 0x0580, 0x0523, 0x036e, 0x0034, 0xfcb6, 0xf9bc,
+ 0xf6b4, 0xf48f, 0xf3e1, 0xf418, 0xf5a7, 0xf8b8,
+ 0xfbf2, 0xfdb5, 0xfd5a, 0xfb2d, 0xf7f5, 0xf5c7,
+ 0xf671, 0xf89f, 0xfa66, 0xfbbd, 0xfd10, 0xff05,
+ 0x0224, 0x05ff, 0x08e3, 0x0830, 0x049a, 0x02be,
+ 0x0408, 0x059f, 0x059a, 0x047d, 0x03bd, 0x02f5,
+ 0x0150, 0x0180, 0x0531, 0x09f4, 0x0ec9, 0x13cd,
+ 0x1747, 0x17d7, 0x1593, 0x11b4, 0x0ca9, 0x05d4,
+ 0xff6d, 0xfb72, 0xf949, 0xfb83, 0x026a, 0x079e,
+ 0x0a1c, 0x0d9a, 0x0fde, 0x0df2, 0x0a13, 0x07f8,
+ 0x07fc, 0x0650, 0x033c, 0x03ba, 0x05ae, 0x0408,
+ 0x00d6, 0xfe86, 0xfc2b, 0xf9dd, 0xf836, 0xf840,
+ 0xfa61, 0xfc65, 0xfd6c, 0xfee8, 0x0151, 0x044c,
+ 0x0696, 0x0704, 0x06db, 0x06ed, 0x05d6, 0x0392,
+ 0x01c0, 0x008c, 0xfef8, 0xfcbf, 0xf981, 0xf508,
+ 0xf0df, 0xed87, 0xeab9, 0xebb1, 0xf19e, 0xf7af,
+ 0xfba8, 0xfe8c, 0xff46, 0xfe2c, 0xfd77, 0xff22,
+ 0x045c, 0x08e2, 0x08a2, 0x07bc, 0x0729, 0x020c,
+ 0xfa41, 0xf45b, 0xf154, 0xf23c, 0xf4e9, 0xf5a3,
+ 0xf568, 0xf450, 0xf1d4, 0xf1fd, 0xf5e5, 0xf987,
+ 0xfaea, 0xfa6b, 0xf916, 0xf8b5, 0xfa97, 0xfe35,
+ 0xffeb, 0xfdc0, 0xfad9, 0xf8c4, 0xf70a, 0xf7d5,
+ 0xfb6a, 0xfedd, 0x0048, 0x0077, 0x032f, 0x07e8,
+ 0x0844, 0x04ba, 0x01e0, 0xfe70, 0xfa57, 0xf7bd,
+ 0xf580, 0xf3cf, 0xf330, 0xf216, 0xf153, 0xf24a,
+ 0xf586, 0xfa47, 0xfba8, 0xf962, 0xf9f5, 0xfd0c,
+ 0xfdf4, 0xfd6a, 0xfcb9, 0xfb2b, 0xf892, 0xf501,
+ 0xf295, 0xf3d2, 0xf7c5, 0xfbe0, 0xfeff, 0x01c3,
+ 0x03f3, 0x0310, 0xfec2, 0xf981, 0xf478, 0xf13b,
+ 0xf33b, 0xfb07, 0x0426, 0x0912, 0x0897, 0x06b2,
+ 0x072d, 0x08ec, 0x08c5, 0x0690, 0x03a4, 0x008e,
+ 0xff83, 0x02b9, 0x0949, 0x1094, 0x1546, 0x16c4,
+ 0x1863, 0x19a5, 0x1804, 0x1580, 0x12d1, 0x0f34,
+ 0x0bba, 0x0767, 0x0429, 0x0631, 0x092d, 0x08f9,
+ 0x09ea, 0x0dff, 0x12c4, 0x15c5, 0x15a8, 0x152e,
+ 0x165e, 0x16f2, 0x16f9, 0x17df, 0x17ea, 0x15bb,
+ 0x12ed, 0x11fc, 0x1291, 0x12ac, 0x1228, 0x0fc1,
+ 0x0afc, 0x0813, 0x0821, 0x07a6, 0x05e8, 0x040c,
+ 0x0462, 0x0973, 0x10aa, 0x15c6, 0x179e, 0x15de,
+ 0x10b3, 0x0943, 0x01bd, 0xfcd0, 0xfad2, 0xfaee,
+ 0xfc47, 0xfd1e, 0xfe3e, 0x0203, 0x0772, 0x0b3c,
+ 0x0ac5, 0x07b0, 0x067e, 0x070b, 0x0700, 0x0727,
+ 0x077b, 0x062a, 0x022b, 0xfd22, 0xfadd, 0xfa5c,
+ 0xf7c3, 0xf53f, 0xf62b, 0xfa1e, 0xff7c, 0x044c,
+ 0x0894, 0x0b67, 0x09ac, 0x0756, 0x099f, 0x0cd0,
+ 0x0da9, 0x0d10, 0x0b4f, 0x095a, 0x06d2, 0x0394,
+ 0x0139, 0xfd9a, 0xf836, 0xf4f6, 0xf410, 0xf603,
+ 0xfc04, 0x007b, 0xff70, 0xfba2, 0xf780, 0xf56c,
+ 0xf72e, 0xface, 0xfec7, 0x03aa, 0x08a7, 0x0bc6,
+ 0x0c98, 0x0b0c, 0x0644, 0x009a, 0xfd86, 0xfc31,
+ 0xfc8c, 0xfed2, 0xff53, 0xfe81, 0xff78, 0x0076,
+ 0x00e2, 0x0050, 0xfc8d, 0xf922, 0xf8c7, 0xf83d,
+ 0xf76a, 0xf7f9, 0xf9f8, 0xfdd1, 0x0185, 0x0352,
+ 0x03d4, 0x026c, 0xffdb, 0xfdab, 0xfbd3, 0xfbe1,
+ 0xfdc5, 0xff4b, 0x010b, 0x0253, 0x0116, 0xff11,
+ 0xfdfb, 0xfd4d, 0xfbf7, 0xf984, 0xf7d0, 0xf6e2,
+ 0xf49f, 0xf314, 0xf4a9, 0xf819, 0xfbd7, 0xfdfe,
+ 0xfe14, 0xfe1f, 0xfe46, 0xfe3f, 0xff12, 0x008a,
+ 0x01e6, 0x017d, 0xfe20, 0xfaf9, 0xfafc, 0xfdb0,
+ 0x02e3, 0x0966, 0x0e56, 0x1060, 0x0f41, 0x0bc0,
+ 0x0841, 0x05c5, 0x02c9, 0xfd96, 0xf679, 0xf073,
+ 0xeea0, 0xf117, 0xf519, 0xf779, 0xf778, 0xf7d8,
+ 0xfaac, 0xfd1c, 0xfcf7, 0xfd1e, 0xfe80, 0xfee6,
+ 0xff1e, 0x0052, 0x023a, 0x051b, 0x06a0, 0x04a5,
+ 0x018f, 0xfe89, 0xfae9, 0xf7b0, 0xf534, 0xf415,
+ 0xf5b2, 0xf921, 0xfcf5, 0x0041, 0x0278, 0x04f2,
+ 0x081c, 0x0ab3, 0x0c44, 0x0c92, 0x0cbb, 0x0db5,
+ 0x0d1d, 0x0a41, 0x076b, 0x05b3, 0x066d, 0x08e0,
+ 0x094f, 0x08a6, 0x0975, 0x0958, 0x07cb, 0x07ed,
+ 0x094f, 0x09c7, 0x0a47, 0x0bf6, 0x0ca0, 0x09fd,
+ 0x05f4, 0x0325, 0x00b4, 0xfddf, 0xfc08, 0xfaf8,
+ 0xf999, 0xf94a, 0xfacc, 0xfc36, 0xfcd1, 0xfd0d,
+ 0xfce3, 0xfd7b, 0xfef5, 0xff9b, 0x0062, 0x0320,
+ 0x0759, 0x0c26, 0x0f26, 0x0dd5, 0x091c, 0x0219,
+ 0xf9f3, 0xf3d9, 0xf098, 0xef11, 0xef5e, 0xf0a3,
+ 0xf2b8, 0xf6c1, 0xfb49, 0xfe88, 0x00b3, 0x0281,
+ 0x0548, 0x0887, 0x09e2, 0x09b6, 0x08c8, 0x06e9,
+ 0x0645, 0x06d6, 0x055c, 0x0340, 0x032b, 0x0309,
+ 0x029d, 0x044a, 0x06a0, 0x0777, 0x0656, 0x01f5,
+ 0xfc3d, 0xf99b, 0xf9e3, 0xfb60, 0xfe37, 0x007f,
+ 0x0069, 0xff36, 0xfec0, 0xfffe, 0x0110, 0xffd1,
+ 0xfef1, 0x003c, 0x01a0, 0x02d7, 0x0344, 0x01d8,
+ 0x0183, 0x02da, 0x0315, 0x02bd, 0x01ae, 0xfeff,
+ 0xfd4e, 0xfc48, 0xf99d, 0xf7d5, 0xf7c2, 0xf746,
+ 0xf77a, 0xf816, 0xf702, 0xf641, 0xf718, 0xf7cb,
+ 0xf867, 0xf825, 0xf5ac, 0xf49c, 0xf7f4, 0xfc97,
+ 0x0052, 0x0526, 0x0ba5, 0x109b, 0x10c4, 0x0d7e,
+ 0x0b7a, 0x0ba4, 0x0aaa, 0x077a, 0x035a, 0xfe87,
+ 0xfa09, 0xf87b, 0xfa75, 0xfdba, 0x0007, 0x012a,
+ 0x0224, 0x0300, 0x0403, 0x0719, 0x0b51, 0x0c87,
+ 0x0b59, 0x0c7e, 0x1061, 0x1426, 0x174d, 0x1a6f,
+ 0x1bc0, 0x1902, 0x1411, 0x103b, 0x0ccb, 0x08c3,
+ 0x05b8, 0x0338, 0x006f, 0xff4f, 0x007e, 0x0294,
+ 0x0479, 0x0556, 0x058b, 0x0648, 0x07a1, 0x08b2,
+ 0x08aa, 0x08a2, 0x0a53, 0x0c31, 0x0bdc, 0x08e7,
+ 0x03fd, 0x0061, 0x00d1, 0x0340, 0x0592, 0x0722,
+ 0x06ce, 0x06b7, 0x093b, 0x0b67, 0x0b40, 0x0aca,
+ 0x0a0a, 0x07aa, 0x05a7, 0x0719, 0x0b56, 0x0eaa,
+ 0x0e83, 0x0b16, 0x0601, 0x007f, 0xfbd9, 0xf9e5,
+ 0xf944, 0xf6ce, 0xf4f4, 0xf6b0, 0xf8ba, 0xf9e3,
+ 0xfd28, 0x00a9, 0x0070, 0xfd99, 0xfb37, 0xfa18,
+ 0xfa35, 0xfc64, 0xffe9, 0x01a9, 0x00fb, 0xffcf,
+ 0xfe3b, 0xfbc2, 0xf932, 0xf68c, 0xf33b, 0xef81,
+ 0xec36, 0xea71, 0xeab4, 0xec3d, 0xee94, 0xf2cd,
+ 0xf88d, 0xfcb5, 0xfeac, 0x0100, 0x03d3, 0x0573,
+ 0x04ca, 0x01fb, 0xfff2, 0xff85, 0xfd51, 0xf9fb,
+ 0xf8ed, 0xf95b, 0xfa4d, 0xfc85, 0xff6f, 0x0211,
+ 0x0324, 0x023d, 0x00d7, 0xfedc, 0xfc60, 0xfb69,
+ 0xfaf4, 0xf915, 0xf7a2, 0xf878, 0xfb25, 0xfe1d,
+ 0xfffb, 0x0133, 0x01c4, 0xff79, 0xfac8, 0xf725,
+ 0xf51b, 0xf3e4, 0xf58f, 0xfa12, 0xfd5d, 0xff0c,
+ 0x0153, 0x02da, 0x03e2, 0x06dc, 0x0973, 0x0931,
+ 0x076b, 0x0409, 0xff06, 0xfb00, 0xf9c4, 0xfa90,
+ 0xfa97, 0xf8d7, 0xf7ee, 0xf89d, 0xfa02, 0xfc60,
+ 0xfd67, 0xfbf1, 0xfbdf, 0xfe95, 0x0231, 0x05d6,
+ 0x07b2, 0x0733, 0x06b9, 0x070c, 0x07b4, 0x0801,
+ 0x0661, 0x03d0, 0x0289, 0x01e1, 0x01a2, 0x0375,
+ 0x06a9, 0x0882, 0x07ed, 0x06eb, 0x07ce, 0x09d5,
+ 0x0bb9, 0x0e3d, 0x1054, 0x0fb7, 0x0dd6, 0x0cbd,
+ 0x0b36, 0x08f0, 0x080e, 0x09a4, 0x0c9e, 0x0ed8,
+ 0x1009, 0x125d, 0x14e2, 0x1419, 0x112b, 0x0f1b,
+ 0x0d13, 0x0a3f, 0x07b9, 0x057a, 0x03bd, 0x04dc,
+ 0x0a0b, 0x106a, 0x13fd, 0x149b, 0x1441, 0x12e7,
+ 0x1062, 0x0ec4, 0x0f7a, 0x109e, 0x0f6b, 0x0c6f,
+ 0x0a6b, 0x0a46, 0x0b17, 0x0bfc, 0x0d52, 0x101e,
+ 0x12ca, 0x1355, 0x12f1, 0x111c, 0x0c3f, 0x07d9,
+ 0x0653, 0x0527, 0x03d9, 0x02a6, 0xffe5, 0xfd69,
+ 0xfedd, 0x03d9, 0x09cb, 0x0f3b, 0x1276, 0x1091,
+ 0x09c8, 0x0352, 0xffc9, 0xfcc7, 0xf9f4, 0xf8f8,
+ 0xf97a, 0xfb0c, 0xfeb5, 0x0517, 0x0be2, 0x0f0d,
+ 0x0e4a, 0x0c02, 0x07fa, 0x01db, 0xfc50, 0xf9b4,
+ 0xf9a6, 0xfa75, 0xfc03, 0xff69, 0x03da, 0x07eb,
+ 0x0b0a, 0x0bf1, 0x0ada, 0x0a4b, 0x0a8d, 0x098a,
+ 0x06a8, 0x0303, 0x0005, 0xff20, 0x009d, 0x0271,
+ 0x0370, 0x0572, 0x0819, 0x08a1, 0x080e, 0x0855,
+ 0x0887, 0x07dd, 0x057f, 0x01ca, 0xffab, 0xfddc,
+ 0xf90b, 0xf480, 0xf3a5, 0xf4cb, 0xf7d1, 0xfc8e,
+ 0xfe89, 0xfba8, 0xf772, 0xf48d, 0xf210, 0xf060,
+ 0xf23c, 0xf76b, 0xfd09, 0x02ad, 0x082d, 0x0aa6,
+ 0x095e, 0x074e, 0x052a, 0x0081, 0xf9cc, 0xf549,
+ 0xf52d, 0xf7ad, 0xfadb, 0xfeb4, 0x0284, 0x036c,
+ 0x010c, 0xffb4, 0x0108, 0x0172, 0xff8f, 0xfdd4,
+ 0xfdb2, 0xff0a, 0x01a0, 0x050d, 0x08fc, 0x0ca3,
+ 0x0e4c, 0x0d70, 0x0b34, 0x079d, 0x02cd, 0xff86,
+ 0xfeae, 0xfe21, 0xfea3, 0x0170, 0x03f7, 0x04fd,
+ 0x057d, 0x055e, 0x0545, 0x058a, 0x04f9, 0x037f,
+ 0x00de, 0xfcda, 0xf96d, 0xf74b, 0xf53e, 0xf335,
+ 0xf161, 0xf073, 0xf18c, 0xf47c, 0xf948, 0xfec7,
+ 0x0158, 0x00e0, 0x00d2, 0x0103, 0xfe8c, 0xf94c,
+ 0xf3ef, 0xf0bd, 0xf095, 0xf371, 0xf7e8, 0xfbe7,
+ 0xfe6c, 0xff4f, 0xff8a, 0xffe4, 0xfee1, 0xfca6,
+ 0xfb8c, 0xfae5, 0xf9bd, 0xf9ba, 0xfae9, 0xfbf8,
+ 0xfbf7, 0xfa2e, 0xf882, 0xf911, 0xfaa1, 0xfc10,
+ 0xfda6, 0xffd2, 0x0337, 0x0651, 0x068d, 0x0472,
+ 0x0257, 0x01d6, 0x0285, 0x024b, 0x01a2, 0x02b3,
+ 0x03de, 0x02b8, 0x00a2, 0xff08, 0xfce5, 0xfa00,
+ 0xf7c8, 0xf67e, 0xf530, 0xf4ba, 0xf758, 0xfcb4,
+ 0x01c6, 0x053e, 0x083c, 0x0a8a, 0x0a59, 0x0689,
+ 0xff2e, 0xf6c9, 0xf0c4, 0xed78, 0xecd3, 0xefd6,
+ 0xf464, 0xf7eb, 0xfae8, 0xfe15, 0x0192, 0x03d2,
+ 0x028e, 0x004c, 0x0097, 0x02dc, 0x06e4, 0x0be6,
+ 0x0e94, 0x0e03, 0x0ab7, 0x05ab, 0x0279, 0x01b9,
+ 0x00a0, 0x004b, 0x0286, 0x0516, 0x066c, 0x074d,
+ 0x06da, 0x0388, 0xfff3, 0xffed, 0x026a, 0x052c,
+ 0x0785, 0x0776, 0x0573, 0x0513, 0x0667, 0x07ad,
+ 0x07c0, 0x0422, 0xfdc1, 0xf9b9, 0xf9f7, 0xfd00,
+ 0x011b, 0x03f1, 0x04a2, 0x0575, 0x0791, 0x0805,
+ 0x048e, 0xff42, 0xfab3, 0xf7e5, 0xf76e, 0xf88e,
+ 0xfa70, 0xfcca, 0xfe39, 0xfedf, 0xfff0, 0x0045,
+ 0xff15, 0xfc77, 0xf897, 0xf67b, 0xf79d, 0xf961,
+ 0xfb9e, 0xff4c, 0x02dd, 0x04e1, 0x03fa, 0x00e3,
+ 0xff83, 0x0053, 0x0146, 0x026d, 0x030c, 0x0274,
+ 0x018e, 0xff9f, 0xfc8f, 0xfa89, 0xfa3c, 0xfaf8,
+ 0xfbb4, 0xfbed, 0xfda8, 0x01b1, 0x0594, 0x08a0,
+ 0x0ae3, 0x095f, 0x0300, 0xfbc2, 0xf6d9, 0xf465,
+ 0xf53f, 0xfac4, 0x03c7, 0x0d1c, 0x1405, 0x17f8,
+ 0x19bc, 0x1871, 0x1327, 0x0c40, 0x06e5, 0x040c,
+ 0x03a9, 0x052b, 0x0726, 0x08cc, 0x0b34, 0x0f35,
+ 0x12b3, 0x1352, 0x11be, 0x0fc8, 0x0e68, 0x0d48,
+ 0x0b5d, 0x0904, 0x0717, 0x05d0, 0x05d5, 0x066b,
+ 0x063c, 0x0655, 0x0726, 0x084a, 0x0af7, 0x0ea1,
+ 0x11b7, 0x144c, 0x1521, 0x133e, 0x0ffc, 0x0c46,
+ 0x08fe, 0x0618, 0x0263, 0xfff2, 0x00ef, 0x03ca,
+ 0x0686, 0x0674, 0x0219, 0xfc55, 0xf6ab, 0xf188,
+ 0xf031, 0xf258, 0xf48a, 0xf75b, 0xfb89, 0xfe9d,
+ 0xff6b, 0xfec7, 0xfcb9, 0xf944, 0xf6f1, 0xf7c0,
+ 0xf926, 0xf8ad, 0xf795, 0xf7ca, 0xfae7, 0x00b1,
+ 0x05d2, 0x07bf, 0x059c, 0x0008, 0xfa61, 0xf5fa,
+ 0xf13d, 0xed0e, 0xeb1d, 0xeb8c, 0xee58, 0xf237,
+ 0xf5d7, 0xf94c, 0xfc09, 0xfd06, 0xfb6e, 0xf81f,
+ 0xf741, 0xfa7d, 0xfe69, 0x0116, 0x02c5, 0x02df,
+ 0x0142, 0xfe8d, 0xfbfc, 0xfa6e, 0xf810, 0xf42c,
+ 0xf199, 0xf097, 0xee52, 0xec03, 0xed5a, 0xf10c,
+ 0xf3a8, 0xf5e0, 0xf87e, 0xf9ac, 0xf9e2, 0xfac6,
+ 0xfbac, 0xfc4a, 0xfcc8, 0xfc4f, 0xfae5, 0xf944,
+ 0xf849, 0xf84b, 0xf781, 0xf548, 0xf401, 0xf55d,
+ 0xf987, 0xfede, 0x01c8, 0x00f8, 0xfe0d, 0xfb27,
+ 0xfb1d, 0xfddc, 0xff62, 0xfe83, 0xfdc0, 0xfeb3,
+ 0x013a, 0x0364, 0x033e, 0x01ae, 0x0019, 0xfed6,
+ 0xff32, 0x01f0, 0x05a6, 0x096b, 0x0db3, 0x11ed,
+ 0x1415, 0x12c3, 0x0ecf, 0x0ab0, 0x0808, 0x06af,
+ 0x0603, 0x05a7, 0x0594, 0x0689, 0x0932, 0x0ca6,
+ 0x0fac, 0x1289, 0x14cb, 0x13f1, 0x100d, 0x0d16,
+ 0x0ca4, 0x0cf8, 0x0d3d, 0x0cfa, 0x0c1b, 0x0b80,
+ 0x09ea, 0x0744, 0x0714, 0x08c7, 0x0927, 0x09bf,
+ 0x0be7, 0x0f28, 0x14ba, 0x1aa2, 0x1ced, 0x1bb7,
+ 0x17ff, 0x1366, 0x1083, 0x0d78, 0x08fe, 0x06f8,
+ 0x07a0, 0x07e4, 0x0849, 0x090c, 0x0951, 0x0a59,
+ 0x0bc0, 0x0bba, 0x0b2d, 0x0b5a, 0x0cba, 0x100e,
+ 0x13d2, 0x15ab, 0x1610, 0x15b4, 0x13ad, 0x0fee,
+ 0x0b76, 0x0715, 0x0305, 0xff62, 0xfd69, 0xfdc1,
+ 0xff0c, 0x00ca, 0x02cf, 0x0388, 0x0371, 0x03ea,
+ 0x03d5, 0x032d, 0x03a6, 0x053f, 0x06ce, 0x06e7,
+ 0x05c4, 0x05eb, 0x06b3, 0x05b1, 0x0434, 0x02aa,
+ 0xffed, 0xfe35, 0xfeea, 0x00b4, 0x0309, 0x044c,
+ 0x02fa, 0x00b4, 0xff57, 0x0011, 0x0349, 0x0702,
+ 0x099b, 0x0a56, 0x08d1, 0x0766, 0x0738, 0x0659,
+ 0x05fe, 0x0780, 0x078b, 0x054c, 0x041f, 0x04e7,
+ 0x064e, 0x080e, 0x0a0b, 0x0a82, 0x0782, 0x02a1,
+ 0xff55, 0xfe4d, 0xfe3a, 0xfdf8, 0xfd86, 0xfe80,
+ 0x01ce, 0x06b9, 0x0bc4, 0x0d85, 0x09eb, 0x03cd,
+ 0xfe34, 0xf95c, 0xf548, 0xf261, 0xf0b3, 0xef3a,
+ 0xede7, 0xefe3, 0xf57b, 0xf9c6, 0xfaf5, 0xfb03,
+ 0xfb2e, 0xfc6d, 0xfde5, 0xfe2d, 0xfe4c, 0xfdf3,
+ 0xfce9, 0xfda0, 0xff3f, 0xff9f, 0xff44, 0xfd0d,
+ 0xf99b, 0xf834, 0xf6f0, 0xf3fc, 0xf231, 0xf1b2,
+ 0xf1b4, 0xf3d2, 0xf853, 0xfe6b, 0x034a, 0x0444,
+ 0x04d1, 0x0746, 0x088b, 0x0873, 0x07a8, 0x04a2,
+ 0x00c6, 0xfd07, 0xf888, 0xf531, 0xf354, 0xf10d,
+ 0xefad, 0xf072, 0xf24e, 0xf4c5, 0xf7c1, 0xfbd0,
+ 0x00dc, 0x044f, 0x052f, 0x04fc, 0x03a1, 0x00c9,
+ 0xfdf5, 0xfc86, 0xfce5, 0xfe78, 0xff99, 0xfeb9,
+ 0xfba0, 0xf7f6, 0xf5d4, 0xf5e1, 0xf7be, 0xfa50,
+ 0xfcb5, 0x0080, 0x0673, 0x0ae8, 0x0bc6, 0x0bd4,
+ 0x0bc5, 0x0952, 0x054c, 0x0267, 0x0201, 0x0468,
+ 0x0740, 0x0796, 0x06eb, 0x07d6, 0x09f5, 0x0c7f,
+ 0x0e7c, 0x0e74, 0x0ce0, 0x0b26, 0x0a04, 0x09f5,
+ 0x0a36, 0x09f0, 0x0978, 0x0867, 0x06a2, 0x05d9,
+ 0x06b8, 0x0875, 0x0aa3, 0x0ca6, 0x0e14, 0x0f07,
+ 0x0e82, 0x0c23, 0x09da, 0x07f2, 0x0424, 0xfed2,
+ 0xfac4, 0xf935, 0xfb31, 0x0110, 0x076f, 0x0afb,
+ 0x0b70, 0x0994, 0x07db, 0x0871, 0x0990, 0x09c5,
+ 0x0a61, 0x0bad, 0x0d07, 0x0dfb, 0x0dec, 0x0d76,
+ 0x0d66, 0x0d6d, 0x0d09, 0x0ace, 0x05a9, 0xff47,
+ 0xfa40, 0xf8dd, 0xfc5b, 0x028a, 0x0837, 0x0c5e,
+ 0x0ebe, 0x0f9d, 0x1073, 0x1215, 0x1348, 0x11d4,
+ 0x0d79, 0x0855, 0x03b3, 0xffc4, 0xfcdf, 0xfa50,
+ 0xf788, 0xf645, 0xf7fb, 0xfb42, 0xfd9c, 0xfe50,
+ 0xfe2b, 0xfd8b, 0xfcae, 0xfc80, 0xfd0d, 0xfcfb,
+ 0xfbfa, 0xfbc1, 0xfd2e, 0xfe99, 0xfea0, 0xfd33,
+ 0xf9bb, 0xf4b0, 0xf075, 0xee66, 0xee83, 0xf076,
+ 0xf2d3, 0xf420, 0xf453, 0xf449, 0xf4a8, 0xf559,
+ 0xf5b5, 0xf4b4, 0xf248, 0xefb4, 0xecca, 0xe9ab,
+ 0xe8fa, 0xea4f, 0xec00, 0xf13a, 0xfa6c, 0x0293,
+ 0x07e0, 0x0a74, 0x09dd, 0x07eb, 0x05c8, 0x0362,
+ 0x014c, 0xff2a, 0xfdcb, 0xfeb5, 0x00fa, 0x03b0,
+ 0x0525, 0x034e, 0x00ed, 0x0015, 0xfe78, 0xfc0a,
+ 0xfa22, 0xf945, 0xfad3, 0xfe1d, 0x01dc, 0x05f2,
+ 0x084f, 0x087e, 0x07dc, 0x0603, 0x052d, 0x06cc,
+ 0x06f9, 0x0608, 0x0791, 0x09fa, 0x0bc3, 0x0d7c,
+ 0x0e79, 0x0fa9, 0x11b4, 0x12fa, 0x143b, 0x1726,
+ 0x1a46, 0x1bbf, 0x1c2c, 0x1cdb, 0x1cf2, 0x1af4,
+ 0x1814, 0x1613, 0x1486, 0x12e5, 0x1266, 0x1423,
+ 0x1659, 0x16fd, 0x1771, 0x186b, 0x17f8, 0x1680,
+ 0x1577, 0x142a, 0x1296, 0x11be, 0x122d, 0x13b4,
+ 0x13c9, 0x1058, 0x0bcc, 0x089d, 0x0613, 0x0452,
+ 0x046c, 0x0521, 0x0568, 0x0649, 0x0762, 0x0744,
+ 0x05da, 0x02c2, 0xfe2c, 0xf9d2, 0xf5ad, 0xf1ce,
+ 0xf017, 0xf01b, 0xf145, 0xf4d7, 0xf91d, 0xfba7,
+ 0xfc69, 0xfac7, 0xf7a4, 0xf5ee, 0xf635, 0xf76f,
+ 0xf7bc, 0xf4ee, 0xf116, 0xefd9, 0xf0d2, 0xf310,
+ 0xf6b4, 0xf930, 0xf7ef, 0xf4d2, 0xf21c, 0xef3b,
+ 0xedb6, 0xefe2, 0xf247, 0xf182, 0xf037, 0xf084,
+ 0xf231, 0xf56a, 0xf8c3, 0xfa8a, 0xfa3d, 0xf715,
+ 0xf239, 0xee57, 0xebec, 0xea24, 0xe8c7, 0xe901,
+ 0xebc3, 0xef6e, 0xf357, 0xf86c, 0xfc99, 0xfe15,
+ 0xfe79, 0xfe6c, 0xfdc3, 0xfccc, 0xfaa6, 0xf715,
+ 0xf3a6, 0xf113, 0xeee4, 0xedd3, 0xef98, 0xf338,
+ 0xf635, 0xf86f, 0xf997, 0xf9eb, 0xfc60, 0xffaa,
+ 0x004b, 0x00f5, 0x0376, 0x04d6, 0x04c0, 0x0468,
+ 0x0396, 0x01f7, 0xff0d, 0xfc14, 0xfaa3, 0xf9df,
+ 0xfa05, 0xfba3, 0xfdc8, 0x0154, 0x061c, 0x09ce,
+ 0x0c79, 0x0da6, 0x0bba, 0x08d0, 0x07a3, 0x0795,
+ 0x06ba, 0x04fd, 0x049a, 0x0569, 0x04fc, 0x0428,
+ 0x0412, 0x0389, 0x02b8, 0x0215, 0x01da, 0x0304,
+ 0x0447, 0x0465, 0x056d, 0x08a6, 0x0d0b, 0x1119,
+ 0x13cf, 0x15a5, 0x1731, 0x18f1, 0x1b31, 0x1c35,
+ 0x1bef, 0x1c70, 0x1be0, 0x18a2, 0x1594, 0x13f4,
+ 0x133f, 0x1365, 0x12d3, 0x11eb, 0x131e, 0x15b5,
+ 0x187b, 0x1ae1, 0x1a2b, 0x16c1, 0x15c0, 0x1829,
+ 0x1a6a, 0x1b41, 0x1b2e, 0x1a36, 0x194a, 0x1916,
+ 0x1965, 0x1aad, 0x1bfe, 0x1b6c, 0x1988, 0x16e7,
+ 0x1371, 0x1131, 0x1092, 0x0ec4, 0x0acd, 0x0639,
+ 0x0365, 0x03f3, 0x0694, 0x097d, 0x0c41, 0x0dfe,
+ 0x0e11, 0x0c83, 0x0a33, 0x0952, 0x0928, 0x06b3,
+ 0x0250, 0xfd13, 0xf73c, 0xf402, 0xf579, 0xf93a,
+ 0xfd20, 0x00d8, 0x043f, 0x070b, 0x0877, 0x07fa,
+ 0x05f7, 0x0372, 0x01d3, 0x01ef, 0x0380, 0x0570,
+ 0x06aa, 0x070c, 0x069b, 0x05a6, 0x04cc, 0x0267,
+ 0xfd96, 0xfa01, 0xf9f4, 0xfc3b, 0x003b, 0x0476,
+ 0x07a4, 0x0b30, 0x0e27, 0x0de7, 0x0b86, 0x092f,
+ 0x076f, 0x0552, 0x014d, 0xfd63, 0xfcfb, 0xfed7,
+ 0x00ba, 0x028a, 0x0379, 0x03c6, 0x04ff, 0x05d7,
+ 0x03f5, 0xffa3, 0xfacb, 0xf7a2, 0xf79c, 0xf9ea,
+ 0xfc45, 0xfd57, 0xfd75, 0xfcf8, 0xfbcb, 0xfb6b,
+ 0xfda2, 0x00fc, 0x0233, 0x000b, 0xfc93, 0xfbee,
+ 0xff63, 0x02d3, 0x034b, 0x02b1, 0x02e1, 0x03e1,
+ 0x052a, 0x054f, 0x03ed, 0x0243, 0x0044, 0xfd6d,
+ 0xfadf, 0xfa18, 0xfbb9, 0xff0b, 0x025c, 0x050f,
+ 0x079a, 0x09a8, 0x0a50, 0x09da, 0x0994, 0x09f6,
+ 0x0a64, 0x09f0, 0x07da, 0x04d3, 0x0295, 0x01c0,
+ 0x023d, 0x034d, 0x0356, 0x0268, 0x019a, 0x010c,
+ 0x0138, 0x0201, 0x0295, 0x03c9, 0x056a, 0x05d6,
+ 0x05b2, 0x05aa, 0x050e, 0x03e6, 0x01d2, 0xff25,
+ 0xfda6, 0xfd1e, 0xfc83, 0xfc25, 0xfc00, 0xfc47,
+ 0xfd62, 0xfef0, 0x00b3, 0x01fc, 0x026f, 0x02a4,
+ 0x0148, 0xfdaa, 0xfa85, 0xf93d, 0xf92e, 0xf9ca,
+ 0xf9c3, 0xf97a, 0xfae2, 0xfdef, 0x0225, 0x069a,
+ 0x08cf, 0x0883, 0x0712, 0x040d, 0xffaa, 0xfbb5,
+ 0xf95d, 0xf8d9, 0xf914, 0xf851, 0xf6cf, 0xf6a1,
+ 0xf871, 0xfb3f, 0xfe73, 0x00aa, 0x0076, 0x002f,
+ 0x0196, 0x020e, 0x0197, 0x022d, 0x01b7, 0xffdf,
+ 0xfffe, 0x0159, 0x00cb, 0xfeb3, 0xfd76, 0xfdf4,
+ 0xfe76, 0xfdc1, 0xfd52, 0xfde3, 0xfea8, 0xffe2,
+ 0x01a3, 0x0339, 0x04b4, 0x0625, 0x06a0, 0x0564,
+ 0x03b1, 0x037a, 0x040c, 0x03a0, 0x0241, 0x0043,
+ 0xfe19, 0xfcdd, 0xfce4, 0xfe71, 0x0151, 0x03b8,
+ 0x059a, 0x07f6, 0x08cb, 0x06c0, 0x03a3, 0x00a0,
+ 0xfe74, 0xfdfc, 0xfde6, 0xfd85, 0xfe96, 0x009a,
+ 0x0152, 0x00f3, 0x0008, 0xfe2c, 0xfce1, 0xfd6a,
+ 0xfdeb, 0xfd05, 0xfc07, 0xfbe7, 0xfc2c, 0xfcf1,
+ 0xff1b, 0x0254, 0x053e, 0x07b0, 0x09ad, 0x0a04,
+ 0x08b4, 0x06b2, 0x03af, 0x004e, 0xfe73, 0xfe1a,
+ 0xff02, 0x0238, 0x06dc, 0x0a52, 0x0ba3, 0x0ae4,
+ 0x0819, 0x0483, 0x019f, 0xff05, 0xfc01, 0xf916,
+ 0xf667, 0xf3a5, 0xf128, 0xef9b, 0xf012, 0xf374,
+ 0xf8dd, 0xfe60, 0x021c, 0x02ed, 0x024a, 0x01ef,
+ 0x00bd, 0xfe9a, 0xfd8e, 0xfd3b, 0xfc36, 0xfb1f,
+ 0xfaf2, 0xfc40, 0xfe7c, 0xff67, 0xfe33, 0xfc18,
+ 0xf983, 0xf660, 0xf30d, 0xf049, 0xef27, 0xefba,
+ 0xf1ec, 0xf634, 0xfa6f, 0xfc12, 0xfcea, 0xfece,
+ 0x000a, 0xffe7, 0xff58, 0xfde3, 0xfb28, 0xf910,
+ 0xf961, 0xfb30, 0xfd62, 0x0147, 0x0713, 0x0b5e,
+ 0x0bd6, 0x0a46, 0x094c, 0x0971, 0x0a15, 0x0a28,
+ 0x0827, 0x04a1, 0x02df, 0x0453, 0x076d, 0x0ac5,
+ 0x0d29, 0x0df5, 0x0e43, 0x0e6d, 0x0dc9, 0x0d4a,
+ 0x0e1f, 0x0f87, 0x1021, 0x1034, 0x113b, 0x12c7,
+ 0x1332, 0x12d0, 0x1214, 0x1044, 0x0df8, 0x0c54,
+ 0x0b64, 0x0a9b, 0x091c, 0x073b, 0x0662, 0x06cb,
+ 0x0824, 0x09b1, 0x0901, 0x04c0, 0xff20, 0xfb5b,
+ 0xfa0e, 0xf930, 0xf861, 0xf966, 0xfb9e, 0xfd10,
+ 0xfe3b, 0x00af, 0x045b, 0x0736, 0x07dc, 0x075b,
+ 0x0637, 0x0432, 0x02b0, 0x0188, 0xff08, 0xfc60,
+ 0xfb05, 0xf9e9, 0xf86e, 0xf6cc, 0xf59e, 0xf635,
+ 0xf89c, 0xfafa, 0xfb96, 0xf9fa, 0xf72e, 0xf4d2,
+ 0xf43a, 0xf606, 0xf8e9, 0xfa4a, 0xf919, 0xf657,
+ 0xf394, 0xf2f0, 0xf5b7, 0xf8f5, 0xf86e, 0xf580,
+ 0xf3ae, 0xf275, 0xf162, 0xf19b, 0xf19f, 0xf045,
+ 0xefc8, 0xf143, 0xf29f, 0xf1cf, 0xefa9, 0xee4e,
+ 0xedcb, 0xedb9, 0xeed9, 0xf0ed, 0xf356, 0xf519,
+ 0xf46f, 0xf2e2, 0xf3ad, 0xf5e8, 0xf75d, 0xf7a1,
+ 0xf6b9, 0xf5eb, 0xf66b, 0xf797, 0xf8f3, 0xfa39,
+ 0xfaf6, 0xfb72, 0xfb7c, 0xfb07, 0xfa9d, 0xf943,
+ 0xf661, 0xf431, 0xf534, 0xf9cb, 0xffc8, 0x046a,
+ 0x0751, 0x08cf, 0x087d, 0x072b, 0x059c, 0x030c,
+ 0xff45, 0xfb89, 0xf9f6, 0xfb80, 0xfdb7, 0xfdfb,
+ 0xfce0, 0xfbda, 0xfbe2, 0xfde7, 0x0141, 0x0475,
+ 0x0738, 0x0923, 0x08ca, 0x0596, 0x0136, 0xfed5,
+ 0xff99, 0x015f, 0x02cf, 0x047f, 0x05c7, 0x05dc,
+ 0x05ab, 0x0547, 0x0418, 0x033a, 0x03c7, 0x0528,
+ 0x065b, 0x06f9, 0x07a0, 0x0965, 0x0c81, 0x101b,
+ 0x12ea, 0x1414, 0x1477, 0x15dc, 0x1831, 0x195c,
+ 0x18b0, 0x17ef, 0x184b, 0x1948, 0x198c, 0x173a,
+ 0x1267, 0x0e24, 0x0cbd, 0x0e14, 0x1126, 0x14a1,
+ 0x17d1, 0x1a91, 0x1c4d, 0x1cde, 0x1c50, 0x1a8d,
+ 0x18af, 0x176d, 0x160b, 0x14b8, 0x13d4, 0x12cd,
+ 0x11e7, 0x116e, 0x10d8, 0x104b, 0x0fbf, 0x0ebb,
+ 0x0e50, 0x0fbd, 0x1207, 0x135b, 0x131e, 0x1188,
+ 0x0ef4, 0x0c4d, 0x0aba, 0x0aa2, 0x0b1e, 0x0a37,
+ 0x0792, 0x05bc, 0x0623, 0x07ed, 0x0a9f, 0x0d13,
+ 0x0e04, 0x0df6, 0x0c01, 0x071c, 0x029e, 0x00fa,
+ 0x003d, 0xffc5, 0x008a, 0x01d2, 0x02e4, 0x03fd,
+ 0x0521, 0x0683, 0x0898, 0x0b8e, 0x0f3a, 0x12ab,
+ 0x140a, 0x11b9, 0x0bfe, 0x051a, 0xff8b, 0xfc9e,
+ 0xfc2b, 0xfd69, 0xffdc, 0x02d6, 0x0589, 0x079b,
+ 0x08ad, 0x08f4, 0x0978, 0x0a0c, 0x09f3, 0x0989,
+ 0x0896, 0x067a, 0x0460, 0x039b, 0x0389, 0x030e,
+ 0x028d, 0x02ff, 0x03c2, 0x03d5, 0x03e1, 0x03d8,
+ 0x01bb, 0xfd98, 0xfa95, 0xfa71, 0xfbd0, 0xfd8f,
+ 0xffa8, 0x00f5, 0x00d7, 0x00da, 0x0132, 0x0073,
+ 0xfee9, 0xfd33, 0xfb05, 0xf8c2, 0xf6e0, 0xf5e8,
+ 0xf768, 0xfc08, 0x0222, 0x06de, 0x0894, 0x0837,
+ 0x06aa, 0x03b5, 0x00a9, 0xff0e, 0xfede, 0xfff6,
+ 0x0175, 0x0242, 0x0272, 0x01a9, 0x00ae, 0x020c,
+ 0x04ee, 0x068e, 0x0722, 0x0714, 0x05c0, 0x03f2,
+ 0x0305, 0x0388, 0x047c, 0x041d, 0x0336, 0x035c,
+ 0x0354, 0x01e0, 0x0015, 0xff9a, 0x0149, 0x0466,
+ 0x0708, 0x0754, 0x04c2, 0x0183, 0xff7d, 0xfd9e,
+ 0xfbf1, 0xfbfb, 0xfd38, 0xfecb, 0x0069, 0x01b3,
+ 0x0368, 0x0500, 0x04b2, 0x0399, 0x02d4, 0x01dd,
+ 0x028b, 0x052c, 0x05f0, 0x040a, 0x01d2, 0xff63,
+ 0xfc5d, 0xfa13, 0xf99d, 0xfacc, 0xfc78, 0xfd9d,
+ 0xfe62, 0xffa1, 0x0181, 0x02a9, 0x025c, 0x0264,
+ 0x03c2, 0x04e8, 0x054d, 0x05fa, 0x06b0, 0x0658,
+ 0x04c9, 0x02a3, 0x00c6, 0x000e, 0x0068, 0x00a5,
+ 0x0048, 0xffd6, 0xfeff, 0xfd9a, 0xfcf4, 0xfdaf,
+ 0xff41, 0x0145, 0x02c8, 0x0317, 0x0396, 0x059e,
+ 0x0887, 0x0b08, 0x0c14, 0x0ab9, 0x0706, 0x026c,
+ 0xfe83, 0xfc2b, 0xfbc7, 0xfd1d, 0xff58, 0x01b0,
+ 0x0379, 0x0486, 0x0599, 0x06e1, 0x07a9, 0x07b1,
+ 0x0670, 0x0388, 0x0107, 0x010f, 0x0259, 0x0280,
+ 0x0124, 0xfeec, 0xfbb4, 0xf7e6, 0xf595, 0xf601,
+ 0xf84e, 0xfb97, 0xfede, 0x00b7, 0x0164, 0x01c8,
+ 0x0182, 0x00dd, 0x00ed, 0x013c, 0x0108, 0x00f4,
+ 0x0140, 0x012a, 0x0102, 0x01e4, 0x0315, 0x02dc,
+ 0x0131, 0xfedf, 0xfc79, 0xfb51, 0xfc3a, 0xfe9e,
+ 0x01df, 0x04ac, 0x04d3, 0x01e6, 0xfd60, 0xf937,
+ 0xf7cb, 0xfa11, 0xfe44, 0x023c, 0x04c1, 0x04d8,
+ 0x029f, 0xff95, 0xfd23, 0xfca1, 0xfe8a, 0x004e,
+ 0xfef9, 0xfb4c, 0xf794, 0xf525, 0xf516, 0xf663,
+ 0xf63b, 0xf452, 0xf221, 0xf031, 0xeee8, 0xee2a,
+ 0xedcb, 0xef0f, 0xf1fc, 0xf4d0, 0xf6f0, 0xf824,
+ 0xf8a3, 0xfabe, 0xff80, 0x0436, 0x056a, 0x022c,
+ 0xfce8, 0xf896, 0xf5fb, 0xf501, 0xf52d, 0xf529,
+ 0xf491, 0xf434, 0xf4da, 0xf697, 0xf8d0, 0xfbfc,
+ 0x002a, 0x0297, 0x024d, 0x01bb, 0x01d9, 0x0291,
+ 0x03df, 0x048f, 0x04d1, 0x057e, 0x059a, 0x055a,
+ 0x05c3, 0x067d, 0x0820, 0x0ade, 0x0cff, 0x0db9,
+ 0x0d2a, 0x0bc8, 0x0ad1, 0x0ad2, 0x0c0d, 0x0e09,
+ 0x0e80, 0x0d2b, 0x0c2e, 0x0c8a, 0x0e64, 0x108f,
+ 0x1127, 0x1122, 0x11d1, 0x12a5, 0x1413, 0x1602,
+ 0x1692, 0x1564, 0x1351, 0x1166, 0x1050, 0x0e67,
+ 0x0aaf, 0x07a3, 0x06e1, 0x07ab, 0x098a, 0x0bf5,
+ 0x0dad, 0x0de5, 0x0cd6, 0x0b7f, 0x0a99, 0x0a7d,
+ 0x0b6b, 0x0c4d, 0x0b6a, 0x08e6, 0x05d2, 0x0247,
+ 0xfe8a, 0xfbfb, 0xfb84, 0xfc5b, 0xfde9, 0x00e3,
+ 0x0483, 0x0703, 0x0975, 0x0c91, 0x0ddb, 0x0ce0,
+ 0x0adf, 0x06d4, 0x0200, 0xffb0, 0xfeea, 0xfe42,
+ 0xfed0, 0xff3d, 0xfde4, 0xfc45, 0xfb3a, 0xfa94,
+ 0xfb00, 0xfbd5, 0xfb5d, 0xf998, 0xf7a3, 0xf5d4,
+ 0xf3bc, 0xf168, 0xef83, 0xeea3, 0xef41, 0xf18f,
+ 0xf4f5, 0xf805, 0xf91d, 0xf808, 0xf69e, 0xf6a3,
+ 0xf765, 0xf6e0, 0xf551, 0xf441, 0xf2c0, 0xf062,
+ 0xef73, 0xf015, 0xf0cf, 0xf1c9, 0xf271, 0xf306,
+ 0xf59f, 0xf8fe, 0xfab6, 0xfbf0, 0xfd98, 0xfebd,
+ 0xff31, 0xfecc, 0xfd4c, 0xfbed, 0xfc25, 0xfd52,
+ 0xfe1d, 0xfec8, 0xfeaa, 0xfc47, 0xfa22, 0xfb15,
+ 0xfcf0, 0xfda0, 0xfe33, 0xffaa, 0x0212, 0x041e,
+ 0x0470, 0x0398, 0x01e9, 0xff9a, 0xfe42, 0xfe15,
+ 0xfe73, 0x0075, 0x045d, 0x07e8, 0x0878, 0x056f,
+ 0x0108, 0xfd73, 0xfa4f, 0xf727, 0xf56a, 0xf697,
+ 0xfa3b, 0xfe51, 0x012e, 0x02cd, 0x043b, 0x055e,
+ 0x045b, 0x011f, 0xfe1b, 0xfc83, 0xfc2a, 0xfce1,
+ 0xfe21, 0x0034, 0x0350, 0x05eb, 0x07c4, 0x0a34,
+ 0x0c83, 0x0d08, 0x0c07, 0x0b10, 0x0b39, 0x0bf3,
+ 0x0c48, 0x0c5b, 0x0be3, 0x0a88, 0x09a9, 0x09a7,
+ 0x0913, 0x08c9, 0x0b61, 0x1079, 0x153b, 0x1856,
+ 0x1a7a, 0x1b91, 0x1ae5, 0x19a2, 0x18d9, 0x176c,
+ 0x1546, 0x12f9, 0x0fa9, 0x0cf7, 0x0d72, 0x0f06,
+ 0x0f93, 0x0ff7, 0x0fe2, 0x0f8d, 0x111e, 0x142e,
+ 0x15f7, 0x1518, 0x12b5, 0x10b5, 0x0f22, 0x0d52,
+ 0x0b78, 0x0980, 0x07d4, 0x06bb, 0x04ba, 0x01f6,
+ 0x002d, 0xffb0, 0x00fc, 0x0444, 0x07c5, 0x0a24,
+ 0x0a96, 0x092f, 0x07be, 0x06b6, 0x055f, 0x03f4,
+ 0x0215, 0x003d, 0x0039, 0x01c9, 0x045f, 0x07da,
+ 0x09d7, 0x092c, 0x0795, 0x0588, 0x034c, 0x0292,
+ 0x0300, 0x02f1, 0x02e9, 0x0342, 0x02b3, 0x01fa,
+ 0x0311, 0x04dd, 0x05f0, 0x080b, 0x0c27, 0x0fef,
+ 0x112d, 0x0fe6, 0x0db0, 0x0c21, 0x0b03, 0x091a,
+ 0x06dd, 0x05da, 0x05dd, 0x05eb, 0x0653, 0x073d,
+ 0x0800, 0x087b, 0x08df, 0x08e3, 0x07d8, 0x05f1,
+ 0x04eb, 0x0512, 0x044b, 0x01f1, 0xff70, 0xfdf9,
+ 0xfdee, 0xfec5, 0x0002, 0x0197, 0x02c9, 0x031b,
+ 0x01dd, 0xfe4f, 0xfafd, 0xfadc, 0xfc3b, 0xfc9c,
+ 0xfc5f, 0xfcad, 0xfd44, 0xfc97, 0xfade, 0xfa5d,
+ 0xfba4, 0xfdc5, 0xff1c, 0xfda2, 0xfa93, 0xf8d4,
+ 0xf8c6, 0xfa0e, 0xfc18, 0xfdb5, 0xff13, 0x003e,
+ 0x00ee, 0x0238, 0x03e5, 0x0453, 0x0397, 0x0223,
+ 0xffb8, 0xfda5, 0xfdfe, 0xffc3, 0xffe7, 0xff15,
+ 0x0028, 0x026f, 0x03fc, 0x049a, 0x0449, 0x03f4,
+ 0x047f, 0x0520, 0x0593, 0x05ca, 0x04ae, 0x0217,
+ 0xff73, 0xfeab, 0xffe2, 0x00ab, 0xfff4, 0xfe75,
+ 0xfc8d, 0xfc25, 0xfed8, 0x024e, 0x040a, 0x04d4,
+ 0x0652, 0x07e7, 0x0769, 0x053b, 0x0339, 0x00d3,
+ 0xfdfa, 0xfca1, 0xfd3a, 0xff2f, 0x01bb, 0x0322,
+ 0x02cf, 0x018a, 0xff95, 0xfd6f, 0xfbf5, 0xfb38,
+ 0xfb3a, 0xfca1, 0xff65, 0x01af, 0x01ca, 0x00c5,
+ 0x00ed, 0x026c, 0x037f, 0x0360, 0x0251, 0x0040,
+ 0xfe48, 0xfe0e, 0xfed3, 0xff76, 0x0006, 0x0023,
+ 0x0077, 0x01f2, 0x0374, 0x0521, 0x07d3, 0x0977,
+ 0x08f0, 0x07c6, 0x06b1, 0x05ea, 0x05af, 0x05e2,
+ 0x06ef, 0x08a3, 0x09ea, 0x09eb, 0x0802, 0x057f,
+ 0x052a, 0x0653, 0x0543, 0x012f, 0xfd19, 0xfb19,
+ 0xfac2, 0xfb96, 0xfd27, 0xfe81, 0xffa8, 0x00a3,
+ 0x00bd, 0x006e, 0x003d, 0xff65, 0xfd9e, 0xfbe1,
+ 0xfbb8, 0xfcc8, 0xfc2c, 0xf996, 0xf733, 0xf50d,
+ 0xf3c2, 0xf4d2, 0xf645, 0xf610, 0xf560, 0xf58a,
+ 0xf684, 0xf799, 0xf946, 0xfcf3, 0x0100, 0x0309,
+ 0x040a, 0x04da, 0x0507, 0x04fd, 0x0430, 0x01eb,
+ 0xff77, 0xfe4d, 0xff1f, 0x00cf, 0x010e, 0x0049,
+ 0x0058, 0x012b, 0x0288, 0x03ec, 0x0414, 0x03ae,
+ 0x03da, 0x0415, 0x03fd, 0x0354, 0x0214, 0x0119,
+ 0x0041, 0xff3e, 0xfee9, 0xfec2, 0xfdfb, 0xfdd2,
+ 0xfe9f, 0xff0e, 0xfeb4, 0xfd83, 0xfb6c, 0xf96f,
+ 0xf803, 0xf662, 0xf4f5, 0xf543, 0xf721, 0xf8e8,
+ 0xf9e7, 0xfa17, 0xf90f, 0xf799, 0xf7c3, 0xf974,
+ 0xfa27, 0xf95c, 0xf8e6, 0xf8d7, 0xf811, 0xf6f6,
+ 0xf5cd, 0xf49a, 0xf4ce, 0xf736, 0xfb3d, 0xfff6,
+ 0x02ff, 0x02b7, 0x00e0, 0xff17, 0xfd81, 0xfcca,
+ 0xfcb6, 0xfc9f, 0xfd94, 0x003e, 0x03e2, 0x07a7,
+ 0x0a0c, 0x0a85, 0x0b07, 0x0c0e, 0x0bb6, 0x0a63,
+ 0x0a2c, 0x0ab5, 0x0aa1, 0x0a31, 0x0a0a, 0x0a19,
+ 0x0a48, 0x0b9d, 0x0ede, 0x1193, 0x1106, 0x0f37,
+ 0x0e9f, 0x0dab, 0x0aea, 0x079d, 0x059c, 0x05e4,
+ 0x07a4, 0x08ff, 0x0999, 0x0a2a, 0x0acb, 0x0bad,
+ 0x0dd4, 0x1167, 0x14e7, 0x177f, 0x195b, 0x196a,
+ 0x16ec, 0x1393, 0x1107, 0x0f05, 0x0c77, 0x08e2,
+ 0x0529, 0x02bb, 0x023c, 0x035d, 0x056c, 0x07ee,
+ 0x0a22, 0x0b4b, 0x0c85, 0x0ebf, 0x0fde, 0x0e36,
+ 0x0bd5, 0x0b08, 0x0aca, 0x0938, 0x072f, 0x0603,
+ 0x0503, 0x043b, 0x044e, 0x0433, 0x0302, 0x00ba,
+ 0xfe7b, 0xfede, 0x01fa, 0x0522, 0x0724, 0x079f,
+ 0x06c1, 0x05f8, 0x04bf, 0x0202, 0xfefc, 0xfc72,
+ 0xfa53, 0xf8f1, 0xf7ba, 0xf5c0, 0xf275, 0xee2e,
+ 0xead2, 0xe967, 0xe99e, 0xeb88, 0xee00, 0xef61,
+ 0xeff2, 0xf010, 0xefd1, 0xefd8, 0xefb3, 0xeebc,
+ 0xedd4, 0xee09, 0xef86, 0xf1af, 0xf3d3, 0xf5b3,
+ 0xf6d7, 0xf69e, 0xf556, 0xf3ea, 0xf2be, 0xf1a1,
+ 0xf120, 0xf279, 0xf54b, 0xf7ee, 0xf9bc, 0xfaaf,
+ 0xfaf8, 0xfb1b, 0xfaa8, 0xf957, 0xf853, 0xf7e9,
+ 0xf7c5, 0xf931, 0xfc60, 0xfea7, 0xfe71, 0xfcdf,
+ 0xfb65, 0xfa99, 0xfa72, 0xfaf0, 0xfc4d, 0xfe38,
+ 0x0003, 0x0110, 0x00e2, 0x0061, 0x00aa, 0x0126,
+ 0x01f5, 0x03e2, 0x057d, 0x05d4, 0x0625, 0x065f,
+ 0x0529, 0x022b, 0xfe58, 0xfbcd, 0xfc2a, 0xfedf,
+ 0x01de, 0x033b, 0x032f, 0x0356, 0x03a3, 0x036f,
+ 0x033a, 0x0308, 0x02c4, 0x0392, 0x0624, 0x0986,
+ 0x0c47, 0x0de5, 0x0ec4, 0x0f55, 0x0fef, 0x10af,
+ 0x117b, 0x1223, 0x11c9, 0x0ffc, 0x0e90, 0x0f21,
+ 0x1066, 0x105b, 0x0f1d, 0x0e54, 0x0e7e, 0x0ea6,
+ 0x0f0d, 0x1080, 0x11b4, 0x11a7, 0x1228, 0x1478,
+ 0x168f, 0x163e, 0x1406, 0x11b6, 0x10a8, 0x1122,
+ 0x1212, 0x128b, 0x12ee, 0x13b5, 0x14a0, 0x151d,
+ 0x151f, 0x1519, 0x1490, 0x12e3, 0x10d9, 0x0eea,
+ 0x0cad, 0x0a18, 0x073b, 0x04d7, 0x0417, 0x04f9,
+ 0x070e, 0x0959, 0x0ab3, 0x0c56, 0x0f5a, 0x11d2,
+ 0x121e, 0x1071, 0x0d85, 0x0a92, 0x0850, 0x067e,
+ 0x04ab, 0x0359, 0x0420, 0x067c, 0x081a, 0x0944,
+ 0x0acc, 0x0b69, 0x0b18, 0x0b13, 0x0b3e, 0x0ac7,
+ 0x0990, 0x08cd, 0x093e, 0x09e9, 0x0a6e, 0x0aa2,
+ 0x0983, 0x07ae, 0x0668, 0x05b6, 0x05e2, 0x06b1,
+ 0x06ae, 0x05db, 0x05f9, 0x076f, 0x0862, 0x0797,
+ 0x05f8, 0x045c, 0x0313, 0x02c2, 0x03a6, 0x0582,
+ 0x0734, 0x074e, 0x06fa, 0x0842, 0x0b28, 0x0ea3,
+ 0x1085, 0x0f3d, 0x0c28, 0x083a, 0x03a2, 0x0006,
+ 0xfdad, 0xfba1, 0xfa83, 0xfae3, 0xfcad, 0xff86,
+ 0x01e4, 0x02c0, 0x0284, 0x019a, 0x0060, 0xffd9,
+ 0x00e1, 0x0267, 0x02bc, 0x0273, 0x0228, 0x00f6,
+ 0xff22, 0xfd76, 0xfc48, 0xfc3c, 0xfcdd, 0xfd6f,
+ 0xfe06, 0xfe0a, 0xfe06, 0xff9c, 0x01de, 0x0317,
+ 0x02f2, 0x0175, 0xff9c, 0xfe3e, 0xfd26, 0xfccb,
+ 0xfd55, 0xfdcf, 0xfe23, 0xff15, 0x0150, 0x047c,
+ 0x06b6, 0x0719, 0x06b9, 0x0617, 0x049f, 0x023c,
+ 0x000b, 0xff7c, 0x00c1, 0x02b2, 0x03c2, 0x034c,
+ 0x028e, 0x0340, 0x050f, 0x062f, 0x0616, 0x058a,
+ 0x0432, 0x017e, 0xfe9f, 0xfc77, 0xfb24, 0xfb23,
+ 0xfb5d, 0xfa83, 0xfa11, 0xfb6e, 0xfdb7, 0xff45,
+ 0xfecb, 0xfced, 0xfbd1, 0xfc78, 0xfe49, 0xfff1,
+ 0x0113, 0x028d, 0x0409, 0x050e, 0x063b, 0x0692,
+ 0x0487, 0x006d, 0xfb9d, 0xf8c4, 0xf95e, 0xfabe,
+ 0xfae6, 0xfb79, 0xfde8, 0x01f3, 0x065f, 0x0976,
+ 0x0a36, 0x08ae, 0x0695, 0x0618, 0x06d5, 0x0708,
+ 0x05e5, 0x034f, 0x0097, 0xff95, 0x0015, 0x0166,
+ 0x03f0, 0x0751, 0x0a63, 0x0ccf, 0x0e14, 0x0d32,
+ 0x0afb, 0x095f, 0x0823, 0x064e, 0x04a6, 0x03b6,
+ 0x033b, 0x039a, 0x0414, 0x02b3, 0xffdc, 0xfd8b,
+ 0xfbb6, 0xf97a, 0xf7c9, 0xf72a, 0xf679, 0xf5fd,
+ 0xf6ca, 0xf78d, 0xf72e, 0xf760, 0xf90c, 0xfac0,
+ 0xfbb1, 0xfc3f, 0xfc19, 0xfb22, 0xfa43, 0xf918,
+ 0xf667, 0xf3a3, 0xf2e2, 0xf397, 0xf54e, 0xf896,
+ 0xfc16, 0xfe19, 0xff41, 0x0004, 0xff24, 0xfd00,
+ 0xfc41, 0xfd21, 0xfd69, 0xfd0b, 0xfd20, 0xfd8f,
+ 0xfedf, 0x0184, 0x046f, 0x06bb, 0x0798, 0x0674,
+ 0x049d, 0x0353, 0x02d2, 0x03a3, 0x04de, 0x04a4,
+ 0x0365, 0x0274, 0x01ec, 0x0185, 0x00d6, 0x002e,
+ 0x00c7, 0x0242, 0x030e, 0x0300, 0x0278, 0x0123,
+ 0xff0e, 0xfca3, 0xf9ca, 0xf6ba, 0xf480, 0xf35c,
+ 0xf292, 0xf213, 0xf1ea, 0xf151, 0xf037, 0xef79,
+ 0xef72, 0xf027, 0xf1d0, 0xf42f, 0xf664, 0xf80e,
+ 0xf9c2, 0xfae2, 0xf9df, 0xf7af, 0xf637, 0xf556,
+ 0xf55e, 0xf728, 0xf942, 0xfa0c, 0xf9c6, 0xf968,
+ 0xfa32, 0xfc5e, 0xfe4c, 0xfecc, 0xfe53, 0xfdd8,
+ 0xfe02, 0xff43, 0x01ca, 0x0462, 0x055b, 0x0514,
+ 0x04c8, 0x04d4, 0x054a, 0x05b1, 0x05c8, 0x05cb,
+ 0x0547, 0x050a, 0x0666, 0x07e4, 0x0902, 0x0b37,
+ 0x0cf3, 0x0cbf, 0x0c64, 0x0c0a, 0x0a80, 0x08b3,
+ 0x07be, 0x0788, 0x07c5, 0x0862, 0x0903, 0x089e,
+ 0x07c3, 0x0819, 0x0869, 0x075d, 0x0686, 0x0616,
+ 0x0517, 0x04e3, 0x0630, 0x07d6, 0x095b, 0x0a3d,
+ 0x09fc, 0x09ed, 0x0b1d, 0x0c9f, 0x0e30, 0x108e,
+ 0x12a8, 0x1338, 0x13db, 0x1600, 0x182b, 0x18da,
+ 0x17e7, 0x15b4, 0x137a, 0x1215, 0x1136, 0x10fe,
+ 0x114a, 0x10c8, 0x0f5f, 0x0e94, 0x0edb, 0x0edd,
+ 0x0ce8, 0x0917, 0x0633, 0x0656, 0x0848, 0x0a11,
+ 0x0aea, 0x0acb, 0x0a8f, 0x0aed, 0x0b46, 0x0ae0,
+ 0x0974, 0x0763, 0x05d2, 0x04a9, 0x0313, 0x014b,
+ 0xff0a, 0xfc63, 0xfb08, 0xfaa2, 0xf9d2, 0xf9d0,
+ 0xfafb, 0xfb61, 0xf9f3, 0xf6bd, 0xf2fc, 0xf088,
+ 0xef4b, 0xee3c, 0xed06, 0xebea, 0xec0d, 0xedd3,
+ 0xf057, 0xf2d6, 0xf3bf, 0xf297, 0xf1c8, 0xf1fe,
+ 0xf1a8, 0xf0eb, 0xf07c, 0xf07b, 0xf0b0, 0xf02f,
+ 0xef42, 0xee6e, 0xecdf, 0xebb2, 0xecdc, 0xefd0,
+ 0xf37e, 0xf699, 0xf7f9, 0xf924, 0xfb1d, 0xfc64,
+ 0xfc74, 0xfba0, 0xf9d1, 0xf76b, 0xf4d4, 0xf2c2,
+ 0xf1de, 0xf183, 0xf183, 0xf288, 0xf465, 0xf6fd,
+ 0xfa39, 0xfceb, 0xfe34, 0xfecc, 0xffd9, 0x00f7,
+ 0x00a8, 0xfeec, 0xfd13, 0xfba9, 0xfa1f, 0xf78a,
+ 0xf4b7, 0xf43a, 0xf65f, 0xf972, 0xfd10, 0x00cc,
+ 0x03b3, 0x05a7, 0x0638, 0x0551, 0x03ff, 0x024e,
+ 0x0009, 0xfe62, 0xfe51, 0xffcb, 0x01e5, 0x0354,
+ 0x0432, 0x053d, 0x059c, 0x04a4, 0x03ce, 0x045f,
+ 0x0558, 0x0562, 0x04be, 0x0440, 0x0425, 0x0454,
+ 0x04da, 0x05f4, 0x0757, 0x0825, 0x0853, 0x0867,
+ 0x08f5, 0x0b30, 0x0ed7, 0x11a7, 0x134f, 0x14c1,
+ 0x14ce, 0x130c, 0x1159, 0x100d, 0x0e31, 0x0c5e,
+ 0x0b41, 0x0aae, 0x0b49, 0x0d67, 0x0fb0, 0x1180,
+ 0x137f, 0x1562, 0x163c, 0x1550, 0x121b, 0x0e55,
+ 0x0c8b, 0x0c22, 0x0b7d, 0x0ac9, 0x0a03, 0x0951,
+ 0x09c5, 0x0b27, 0x0d1e, 0x103b, 0x1340, 0x1448,
+ 0x1399, 0x11b6, 0x0e27, 0x0961, 0x0582, 0x0514,
+ 0x085a, 0x0c67, 0x0ebe, 0x0fc6, 0x1070, 0x1095,
+ 0x0feb, 0x0eb4, 0x0def, 0x0e4e, 0x0e5c, 0x0ca4,
+ 0x0ace, 0x0a63, 0x09f7, 0x08e1, 0x0841, 0x07f5,
+ 0x07ba, 0x0854, 0x0953, 0x0983, 0x0958, 0x0a1a,
+ 0x0b70, 0x0bfd, 0x0c13, 0x0ca5, 0x0ced, 0x0c50,
+ 0x0b1c, 0x094b, 0x07c2, 0x0743, 0x071a, 0x07fa,
+ 0x0a4c, 0x0b8c, 0x0aef, 0x09ec, 0x0865, 0x0634,
+ 0x03c4, 0x008c, 0xfd18, 0xfb24, 0xfba9, 0xfe7a,
+ 0x01dd, 0x0440, 0x05e5, 0x06d0, 0x06f2, 0x078e,
+ 0x089d, 0x08be, 0x0819, 0x0722, 0x053e, 0x0319,
+ 0x01e5, 0x0052, 0xfd34, 0xfaa5, 0xfa87, 0xfc42,
+ 0xfee2, 0x00df, 0x0117, 0x0109, 0x01bc, 0x0226,
+ 0x022f, 0x0239, 0x0236, 0x02e0, 0x03fc, 0x040f,
+ 0x033f, 0x02a5, 0x0242, 0x01c4, 0x0151, 0x010f,
+ 0x00a7, 0xff83, 0xfde9, 0xfd0b, 0xfd6f, 0xfe7a,
+ 0xffb2, 0x00e7, 0x0173, 0x0172, 0x020c, 0x0314,
+ 0x0348, 0x0269, 0x00ad, 0xfe86, 0xfd41, 0xfdae,
+ 0xfed6, 0xfef4, 0xfd2e, 0xfa13, 0xf6da, 0xf52e,
+ 0xf615, 0xf822, 0xf96a, 0xfa3d, 0xfbd9, 0xfe38,
+ 0xffb4, 0xff48, 0xfe85, 0xff1f, 0x00f8, 0x02ec,
+ 0x031b, 0x0177, 0x0006, 0xfe6d, 0xfbf5, 0xfab9,
+ 0xfb22, 0xfbb3, 0xfc72, 0xfd24, 0xfd82, 0xfe3d,
+ 0xfeec, 0xff43, 0xffd6, 0x00a0, 0x0222, 0x048b,
+ 0x06cd, 0x08c8, 0x09e0, 0x0884, 0x0601, 0x049f,
+ 0x03c9, 0x0269, 0x010a, 0x00a9, 0x018c, 0x036c,
+ 0x0620, 0x08d5, 0x0a6b, 0x0b62, 0x0c1b, 0x0bb6,
+ 0x0aa8, 0x0953, 0x0621, 0x0192, 0xfe7b, 0xfd65,
+ 0xfd93, 0xfef4, 0x0017, 0x000c, 0x00b0, 0x0218,
+ 0x01f8, 0x00a0, 0xff54, 0xfe36, 0xfe65, 0xff6e,
+ 0xfefa, 0xfe0c, 0xfeb3, 0xfff6, 0x00aa, 0x009c,
+ 0x0014, 0x004e, 0x0145, 0x01f4, 0x0299, 0x0340,
+ 0x035b, 0x02e9, 0x01b4, 0x0028, 0xffe8, 0x00ab,
+ 0xffee, 0xfd6f, 0xfc07, 0xfc85, 0xfd35, 0xfdd8,
+ 0xfe29, 0xfd58, 0xfd53, 0xff43, 0x0123, 0x0256,
+ 0x0348, 0x0405, 0x0578, 0x06f1, 0x0752, 0x07d9,
+ 0x0874, 0x07ee, 0x06bb, 0x050c, 0x0324, 0x01b9,
+ 0x010c, 0x0235, 0x045a, 0x04d9, 0x04cf, 0x056e,
+ 0x0532, 0x049e, 0x03d1, 0x0170, 0xff07, 0xfdc8,
+ 0xfcfe, 0xfd11, 0xfd87, 0xfd63, 0xfd39, 0xfd9f,
+ 0xff27, 0x01af, 0x03e7, 0x057b, 0x05da, 0x045d,
+ 0x023b, 0xff98, 0xfcad, 0xfbf5, 0xfd5e, 0xfedc,
+ 0xffae, 0xfe85, 0xfba4, 0xf969, 0xf82b, 0xf7c9,
+ 0xf8ba, 0xfa33, 0xfbed, 0xfda5, 0xfe35, 0xfe2e,
+ 0xfe5b, 0xfde1, 0xfc96, 0xfb42, 0xfa0c, 0xf8a6,
+ 0xf7c6, 0xf8bb, 0xfa5e, 0xfab6, 0xfa45, 0xf951,
+ 0xf7aa, 0xf6f9, 0xf784, 0xf76b, 0xf623, 0xf4d1,
+ 0xf4e7, 0xf661, 0xf7fe, 0xf998, 0xfa8e, 0xf9dd,
+ 0xf963, 0xfa95, 0xfbe9, 0xfc4c, 0xfb7c, 0xf9ab,
+ 0xf8a3, 0xf998, 0xfc10, 0xff2c, 0x01fa, 0x0414,
+ 0x057e, 0x0660, 0x073c, 0x07f7, 0x0883, 0x099e,
+ 0x0a29, 0x085e, 0x055a, 0x02f5, 0x016a, 0x0112,
+ 0x02ae, 0x05d2, 0x0916, 0x0bf1, 0x0e68, 0x0f86,
+ 0x0ea7, 0x0caa, 0x0ae5, 0x0a61, 0x0aa8, 0x0a35,
+ 0x0958, 0x0954, 0x0a29, 0x0bc1, 0x0e50, 0x1174,
+ 0x1465, 0x1637, 0x1706, 0x17ab, 0x17cb, 0x16e8,
+ 0x159f, 0x1410, 0x1164, 0x0d62, 0x0959, 0x0694,
+ 0x0549, 0x0613, 0x08ce, 0x0b3a, 0x0c50, 0x0c83,
+ 0x0bd2, 0x0b34, 0x0aec, 0x0960, 0x0720, 0x05e1,
+ 0x0518, 0x0451, 0x0410, 0x0438, 0x0430, 0x0376,
+ 0x026c, 0x0189, 0x0054, 0xff56, 0xff79, 0x004d,
+ 0x0132, 0x0143, 0x0041, 0xffef, 0x009c, 0x00a8,
+ 0xff74, 0xfcda, 0xf971, 0xf67e, 0xf42e, 0xf368,
+ 0xf4d4, 0xf5f4, 0xf525, 0xf35e, 0xf19a, 0xf186,
+ 0xf3f6, 0xf74f, 0xfa94, 0xfcce, 0xfbfb, 0xf880,
+ 0xf501, 0xf349, 0xf36f, 0xf458, 0xf529, 0xf585,
+ 0xf52b, 0xf493, 0xf412, 0xf3f3, 0xf505, 0xf68b,
+ 0xf756, 0xf7bf, 0xf766, 0xf5f9, 0xf4c5, 0xf3e4,
+ 0xf2ee, 0xf287, 0xf23c, 0xf1c9, 0xf26f, 0xf484,
+ 0xf759, 0xfa2a, 0xfbd9, 0xfba3, 0xf9a3, 0xf740,
+ 0xf671, 0xf73a, 0xf893, 0xfa97, 0xfd2e, 0xff8e,
+ 0x00fe, 0x0101, 0x0064, 0x002c, 0xff88, 0xfe47,
+ 0xfdf4, 0xfe65, 0xfe22, 0xfda4, 0xfdbd, 0xfdb4,
+ 0xfdb6, 0xfee7, 0x00bf, 0x0265, 0x03cf, 0x0428,
+ 0x0355, 0x0294, 0x01cc, 0x00f5, 0x01a5, 0x0446,
+ 0x0793, 0x0a25, 0x0b66, 0x0c5a, 0x0d3a, 0x0cd5,
+ 0x0bca, 0x0b00, 0x09d7, 0x08f3, 0x0906, 0x0956,
+ 0x0a41, 0x0ba5, 0x0c27, 0x0c56, 0x0cb0, 0x0bf1,
+ 0x0a0c, 0x07ab, 0x0597, 0x05e9, 0x08ef, 0x0c1b,
+ 0x0e35, 0x0f9a, 0x1062, 0x111d, 0x126e, 0x13fe,
+ 0x1535, 0x157b, 0x1490, 0x1361, 0x127c, 0x1102,
+ 0x0f4e, 0x0eee, 0x0f64, 0x0fb2, 0x1078, 0x10c3,
+ 0x0f19, 0x0db4, 0x0e98, 0x102e, 0x114f, 0x1185,
+ 0x0fad, 0x0d28, 0x0bf4, 0x0aeb, 0x098e, 0x0945,
+ 0x09b6, 0x0a47, 0x0bea, 0x0e9c, 0x10af, 0x1069,
+ 0x0da0, 0x0a1c, 0x075e, 0x05ae, 0x0531, 0x0593,
+ 0x0633, 0x0686, 0x0632, 0x0644, 0x078d, 0x08bb,
+ 0x0963, 0x0a21, 0x0a34, 0x0a14, 0x0b25, 0x0cbc,
+ 0x0e51, 0x0fb2, 0x0f29, 0x0c76, 0x0921, 0x05c9,
+ 0x036e, 0x035b, 0x04f4, 0x06b7, 0x0813, 0x094a,
+ 0x0a24, 0x0a0e, 0x09e9, 0x0ab7, 0x0b7b, 0x0b76,
+ 0x0b8b, 0x0c30, 0x0cc8, 0x0c4d, 0x0a4f, 0x07d4,
+ 0x061f, 0x04de, 0x0302, 0x00f7, 0x0020, 0x00ad,
+ 0x0260, 0x049f, 0x052a, 0x039a, 0x0256, 0x0161,
+ 0xffdc, 0xff91, 0x007f, 0x0079, 0xffe8, 0x006c,
+ 0x0213, 0x03f1, 0x04d7, 0x04a1, 0x049a, 0x056f,
+ 0x065d, 0x0675, 0x0598, 0x043b, 0x02b5, 0x0196,
+ 0x01d0, 0x0369, 0x04bc, 0x0460, 0x031c, 0x0232,
+ 0x0204, 0x02e7, 0x0397, 0x0217, 0xffb5, 0xfe3d,
+ 0xfd01, 0xfccb, 0xfedc, 0x013c, 0x01af, 0x00a0,
+ 0x002d, 0x0126, 0x01b5, 0x0150, 0x00f4, 0xff98,
+ 0xfd27, 0xfb45, 0xf9be, 0xf87b, 0xf7a5, 0xf6c6,
+ 0xf7d0, 0xfb69, 0xfe70, 0x0041, 0x01ab, 0x01a7,
+ 0x00ee, 0x0088, 0xff7a, 0xfde6, 0xfccc, 0xfcac,
+ 0xfe24, 0x0052, 0x0160, 0x011d, 0x009e, 0x006f,
+ 0x002f, 0x0035, 0x01b4, 0x03f9, 0x04b6, 0x032a,
+ 0x0140, 0x0193, 0x0378, 0x0456, 0x04be, 0x05e2,
+ 0x066a, 0x05d8, 0x0529, 0x0551, 0x06b0, 0x0798,
+ 0x0726, 0x0710, 0x079a, 0x0826, 0x08e8, 0x085b,
+ 0x0596, 0x01f2, 0xfe06, 0xfb08, 0xfa6b, 0xfa7f,
+ 0xfa2e, 0xfac7, 0xfc02, 0xfcb0, 0xfcc8, 0xfcc6,
+ 0xfdb2, 0xff66, 0x0024, 0xffe7, 0x001e, 0x0117,
+ 0x022d, 0x024a, 0x0105, 0xff98, 0xfea0, 0xfdde,
+ 0xfe39, 0xffa9, 0x004d, 0x0008, 0x002a, 0x00ca,
+ 0x018c, 0x0207, 0x01dd, 0x019f, 0x0158, 0x005d,
+ 0xff5d, 0xff5e, 0x0051, 0x019d, 0x029a, 0x0387,
+ 0x047c, 0x0417, 0x0294, 0x01f4, 0x023a, 0x0294,
+ 0x02ba, 0x01e7, 0x00d7, 0x0145, 0x02c6, 0x0416,
+ 0x0477, 0x0386, 0x01bc, 0xff11, 0xfb7c, 0xf8e1,
+ 0xf87d, 0xf9b3, 0xfc13, 0xfeae, 0x009b, 0x02b8,
+ 0x0550, 0x0701, 0x0714, 0x060b, 0x047f, 0x02b3,
+ 0x00c2, 0xfe95, 0xfc0c, 0xf9da, 0xf890, 0xf79d,
+ 0xf780, 0xf967, 0xfc41, 0xfe32, 0xfe62, 0xfcd1,
+ 0xfb40, 0xfb15, 0xfb30, 0xfae1, 0xfaaa, 0xfa4f,
+ 0xf9e6, 0xfa40, 0xfbec, 0xfeb2, 0x0108, 0x01ff,
+ 0x0299, 0x035e, 0x03ae, 0x02f7, 0x0126, 0xff6e,
+ 0xfedc, 0xfe92, 0xfe11, 0xfdff, 0xfe33, 0xfe02,
+ 0xfd2d, 0xfba4, 0xf9b8, 0xf820, 0xf75f, 0xf75c,
+ 0xf809, 0xf9ba, 0xfbca, 0xfd28, 0xfdb6, 0xfd1b,
+ 0xfb67, 0xfa34, 0xf9e3, 0xf977, 0xf949, 0xfa3c,
+ 0xfbbe, 0xfbfa, 0xfa98, 0xfa29, 0xfb66, 0xfbab,
+ 0xfac1, 0xfa8d, 0xfad2, 0xfab9, 0xfa17, 0xf8c6,
+ 0xf6fe, 0xf4cb, 0xf2df, 0xf2ea, 0xf4ad, 0xf67d,
+ 0xf7e4, 0xf904, 0xfa00, 0xfb23, 0xfced, 0x0013,
+ 0x03e4, 0x06c5, 0x093c, 0x0c61, 0x0ea6, 0x0e1a,
+ 0x0bd3, 0x0a3c, 0x09a8, 0x0984, 0x0a51, 0x0b3c,
+ 0x0ace, 0x0a60, 0x0af9, 0x0adf, 0x099b, 0x0878,
+ 0x0807, 0x0867, 0x092a, 0x098a, 0x09ac, 0x09b6,
+ 0x09ab, 0x0a3f, 0x0b5f, 0x0c47, 0x0d71, 0x0f2c,
+ 0x1084, 0x1138, 0x1170, 0x10ac, 0x0f51, 0x0e4e,
+ 0x0db0, 0x0dc6, 0x0eff, 0x109f, 0x11ea, 0x126c,
+ 0x11df, 0x10fd, 0x1014, 0x0e60, 0x0c73, 0x0be1,
+ 0x0cd2, 0x0db6, 0x0d30, 0x0c1d, 0x0bfb, 0x0c37,
+ 0x0c02, 0x0b99, 0x0b11, 0x0af2, 0x0b12, 0x09a9,
+ 0x0766, 0x071a, 0x0840, 0x0855, 0x073b, 0x05aa,
+ 0x038e, 0x0189, 0x005d, 0xff9e, 0xfeee, 0xfe82,
+ 0xfe5e, 0xfe83, 0xfe8b, 0xfda4, 0xfc39, 0xfb41,
+ 0xfa06, 0xf772, 0xf4a3, 0xf3b6, 0xf437, 0xf3cc,
+ 0xf258, 0xf123, 0xefd0, 0xee15, 0xec9d, 0xebc6,
+ 0xec1b, 0xed9d, 0xef42, 0xf03b, 0xefc2, 0xedff,
+ 0xec28, 0xea34, 0xe892, 0xe8fe, 0xea93, 0xeb6a,
+ 0xec8d, 0xef5c, 0xf319, 0xf615, 0xf76a, 0xf75a,
+ 0xf60e, 0xf444, 0xf380, 0xf33c, 0xf293, 0xf2c9,
+ 0xf432, 0xf5eb, 0xf813, 0xfa3a, 0xfb8f, 0xfc19,
+ 0xfb66, 0xf947, 0xf720, 0xf645, 0xf6d8, 0xf859,
+ 0xfa13, 0xfb4f, 0xfbfa, 0xfca4, 0xfd3a, 0xfd42,
+ 0xfd7d, 0xfec4, 0x0005, 0xffb6, 0xfe9d, 0xfe80,
+ 0xfeb5, 0xfe20, 0xfd87, 0xfc6e, 0xfab4, 0xfb5f,
+ 0xfebe, 0x01a1, 0x02fb, 0x02a9, 0x0147, 0x012a,
+ 0x018f, 0x0072, 0xff82, 0xffbe, 0xffcd, 0xff58,
+ 0xfe85, 0xfe30, 0xffff, 0x0386, 0x0732, 0x0a41,
+ 0x0bfd, 0x0c55, 0x0caa, 0x0da9, 0x0e44, 0x0e17,
+ 0x0dd3, 0x0cec, 0x0b5d, 0x0b55, 0x0d54, 0x0f98,
+ 0x110a, 0x10bb, 0x0e77, 0x0ba1, 0x0960, 0x08d5,
+ 0x0a8d, 0x0cfb, 0x0f1c, 0x111d, 0x1281, 0x1359,
+ 0x13e9, 0x13bc, 0x1322, 0x1204, 0x0f76, 0x0c77,
+ 0x0ae3, 0x0b56, 0x0dca, 0x113c, 0x140d, 0x15c5,
+ 0x16cc, 0x1791, 0x1874, 0x18fb, 0x183c, 0x168d,
+ 0x1490, 0x118b, 0x0d7b, 0x0a44, 0x08b5, 0x07f1,
+ 0x07ca, 0x089a, 0x0a57, 0x0c62, 0x0d59, 0x0ce3,
+ 0x0c55, 0x0bd6, 0x0a96, 0x0986, 0x09c9, 0x0a6a,
+ 0x0a92, 0x0b27, 0x0c8f, 0x0e0b, 0x0f7d, 0x1150,
+ 0x1324, 0x1389, 0x1118, 0x0c90, 0x087d, 0x0659,
+ 0x05ed, 0x0666, 0x06fe, 0x0753, 0x06e1, 0x05d5,
+ 0x056d, 0x057b, 0x0559, 0x063c, 0x0807, 0x08e4,
+ 0x08db, 0x0895, 0x0820, 0x0800, 0x07f7, 0x07ad,
+ 0x07a2, 0x073d, 0x0656, 0x06ad, 0x080e, 0x08a8,
+ 0x08fb, 0x09d6, 0x0a23, 0x097b, 0x0870, 0x071d,
+ 0x061d, 0x060d, 0x06ab, 0x080a, 0x09ed, 0x0b26,
+ 0x0ba4, 0x0bc6, 0x0ad0, 0x0841, 0x049e, 0x0152,
+ 0xff73, 0xfea5, 0xffcd, 0x0422, 0x0928, 0x0c83,
+ 0x0e89, 0x0e70, 0x0bfe, 0x08f9, 0x0597, 0x0223,
+ 0x005a, 0x0042, 0x00b2, 0x00bc, 0xffaa, 0xfdf4,
+ 0xfccd, 0xfcd6, 0xfd69, 0xfd06, 0xfbf6, 0xfba6,
+ 0xfc51, 0xfe28, 0x0076, 0x0153, 0x012a, 0x0132,
+ 0x0070, 0xfe24, 0xfb2e, 0xf95f, 0xf9d3, 0xfae3,
+ 0xfafe, 0xfb62, 0xfd26, 0xff62, 0x0063, 0xff7e,
+ 0xfda2, 0xfba1, 0xfa2d, 0xfad8, 0xfdce, 0x012a,
+ 0x0368, 0x048d, 0x0578, 0x05b1, 0x0472, 0x037e,
+ 0x03e3, 0x0422, 0x042a, 0x04ca, 0x0579, 0x05ec,
+ 0x061d, 0x05cf, 0x04dc, 0x02c3, 0xffa9, 0xfca2,
+ 0xfa8c, 0xfa3d, 0xfbb7, 0xfdc5, 0xffc3, 0x01b1,
+ 0x032c, 0x0384, 0x02b2, 0x01da, 0x014c, 0x008d,
+ 0x00b9, 0x01f1, 0x01ef, 0x0033, 0xfdd0, 0xfb36,
+ 0xf9af, 0xfa5b, 0xfc23, 0xfdb5, 0xff9c, 0x0271,
+ 0x0492, 0x04ed, 0x0535, 0x05e3, 0x05bf, 0x04b3,
+ 0x020d, 0xfddc, 0xfae4, 0xfa4d, 0xfb89, 0xfef5,
+ 0x0383, 0x073a, 0x0922, 0x08d2, 0x07af, 0x071a,
+ 0x0635, 0x0545, 0x0558, 0x058c, 0x059d, 0x05fb,
+ 0x0607, 0x05f3, 0x05f8, 0x0493, 0x011b, 0xfd5a,
+ 0xfb6c, 0xfba9, 0xfcf7, 0xfe57, 0xfef9, 0xfec2,
+ 0xff1e, 0x0054, 0x005e, 0xfeb6, 0xfd5d, 0xfd13,
+ 0xfcff, 0xfd89, 0xff43, 0x00ad, 0x0059, 0xfea8,
+ 0xfc91, 0xfb3c, 0xfaef, 0xfa54, 0xf959, 0xf993,
+ 0xfb09, 0xfcb6, 0xfe4c, 0xffc9, 0x01c7, 0x047e,
+ 0x0613, 0x04f9, 0x0276, 0x0076, 0xff3a, 0xfe7c,
+ 0xfe6c, 0xfe9b, 0xfe6a, 0xfe99, 0xffcc, 0x0121,
+ 0x01f2, 0x0250, 0x01c3, 0x005b, 0xff75, 0xffaf,
+ 0x004f, 0x0100, 0x0202, 0x032b, 0x03ba, 0x02a8,
+ 0xfff6, 0xfd6a, 0xfc0b, 0xfaec, 0xf9ba, 0xf904,
+ 0xf859, 0xf755, 0xf6eb, 0xf7c7, 0xf8de, 0xf8ea,
+ 0xf86c, 0xf87b, 0xf8d4, 0xf8e3, 0xf84d, 0xf688,
+ 0xf447, 0xf2fc, 0xf27f, 0xf1ef, 0xf134, 0xf0d6,
+ 0xf1aa, 0xf327, 0xf34a, 0xf235, 0xf252, 0xf424,
+ 0xf56c, 0xf471, 0xf23f, 0xf0e3, 0xf086, 0xf0a2,
+ 0xf1e5, 0xf466, 0xf70a, 0xf947, 0xfb2a, 0xfc82,
+ 0xfcd4, 0xfc33, 0xfba2, 0xfb81, 0xfbab, 0xfcf1,
+ 0xfee7, 0xffc7, 0x0011, 0x00c7, 0x0192, 0x032c,
+ 0x0538, 0x055f, 0x0431, 0x03c0, 0x03df, 0x0431,
+ 0x0470, 0x0413, 0x03ed, 0x0414, 0x03cd, 0x0412,
+ 0x04e3, 0x04f6, 0x04e6, 0x04c5, 0x032f, 0x0092,
+ 0xfe72, 0xfe23, 0xffe4, 0x00fb, 0xffb0, 0xfe50,
+ 0xfeb3, 0x00f3, 0x04aa, 0x0768, 0x080e, 0x091d,
+ 0x0b3f, 0x0c77, 0x0c66, 0x0ba8, 0x0a94, 0x0a20,
+ 0x0afb, 0x0cad, 0x0e17, 0x0e97, 0x0f0d, 0x10a6,
+ 0x1330, 0x1525, 0x1531, 0x148d, 0x1558, 0x16b2,
+ 0x1750, 0x1868, 0x19a0, 0x18ba, 0x161a, 0x13de,
+ 0x1297, 0x1201, 0x1261, 0x131d, 0x121f, 0x0f1f,
+ 0x0c57, 0x0a92, 0x09bb, 0x0ada, 0x0cfd, 0x0dd6,
+ 0x0d7e, 0x0c82, 0x0a41, 0x0705, 0x03d4, 0x0164,
+ 0xffe9, 0xff14, 0xff4f, 0x00fd, 0x0261, 0x017d,
+ 0xff14, 0xfd4a, 0xfc40, 0xfac8, 0xfa1b, 0xfb78,
+ 0xfbc8, 0xf888, 0xf43c, 0xf12f, 0xef02, 0xee34,
+ 0xef86, 0xf1ab, 0xf31b, 0xf3dc, 0xf441, 0xf419,
+ 0xf3d5, 0xf466, 0xf54d, 0xf5a0, 0xf624, 0xf759,
+ 0xf834, 0xf8e4, 0xfa79, 0xfbb2, 0xfb2f, 0xfa78,
+ 0xfa79, 0xf91f, 0xf5b7, 0xf30c, 0xf34c, 0xf50c,
+ 0xf5c9, 0xf501, 0xf39e, 0xf2d0, 0xf38e, 0xf4e9,
+ 0xf523, 0xf482, 0xf3b1, 0xf2ae, 0xf2c0, 0xf47d,
+ 0xf5a2, 0xf47b, 0xf25f, 0xf123, 0xf06c, 0xef4a,
+ 0xee9c, 0xeea2, 0xedeb, 0xed14, 0xeddf, 0xf01d,
+ 0xf2fe, 0xf4fe, 0xf46b, 0xf309, 0xf384, 0xf4ff,
+ 0xf608, 0xf6fd, 0xf7f0, 0xf86a, 0xf8bf, 0xf976,
+ 0xfa94, 0xfc90, 0xff6c, 0x00fc, 0x004e, 0xffb1,
+ 0x0028, 0x0109, 0x026d, 0x0300, 0x0187, 0x0049,
+ 0x008b, 0x00af, 0x00fa, 0x02ed, 0x05e0, 0x0842,
+ 0x093a, 0x08f0, 0x08a4, 0x0910, 0x0956, 0x08e3,
+ 0x088a, 0x08e3, 0x09dc, 0x0b8e, 0x0d85, 0x0f1d,
+ 0x10b0, 0x120d, 0x12b1, 0x13e9, 0x16b8, 0x1a53,
+ 0x1e31, 0x2162, 0x2261, 0x21af, 0x204e, 0x1dd5,
+ 0x1acd, 0x182a, 0x154b, 0x1274, 0x1135, 0x115b,
+ 0x11c1, 0x1259, 0x1376, 0x1507, 0x15e2, 0x147d,
+ 0x11b2, 0x0f75, 0x0da6, 0x0be9, 0x0adf, 0x0a81,
+ 0x0ac3, 0x0bc4, 0x0cbe, 0x0ce9, 0x0b8e, 0x0842,
+ 0x04a8, 0x027f, 0x00e8, 0xfef9, 0xfdef, 0xfede,
+ 0x0069, 0x0030, 0xfe2c, 0xfca6, 0xfc5e, 0xfbae,
+ 0xfa2f, 0xf9f6, 0xfc56, 0x0049, 0x0485, 0x081b,
+ 0x0a1d, 0x0ac4, 0x0aa0, 0x0987, 0x0844, 0x07be,
+ 0x074e, 0x0734, 0x086b, 0x0a06, 0x0b86, 0x0dee,
+ 0x1035, 0x1066, 0x0f43, 0x0dfa, 0x0c3b, 0x0a9e,
+ 0x0a26, 0x0a7f, 0x0b9b, 0x0d2d, 0x0dcb, 0x0dba,
+ 0x0df6, 0x0d4e, 0x0b73, 0x0a58, 0x0ac6, 0x0bb5,
+ 0x0c09, 0x0bfe, 0x0ca5, 0x0d8f, 0x0dd4, 0x0d68,
+ 0x0bb6, 0x092a, 0x075f, 0x05ea, 0x04a3, 0x04d1,
+ 0x0554, 0x04f7, 0x052b, 0x0635, 0x06ca, 0x06cd,
+ 0x0677, 0x0603, 0x0625, 0x065a, 0x0566, 0x03f0,
+ 0x0284, 0xffe0, 0xfd1a, 0xfcd4, 0xfda1, 0xfcc6,
+ 0xfa15, 0xf6a6, 0xf4ef, 0xf5ca, 0xf713, 0xf992,
+ 0xfe82, 0x0250, 0x0331, 0x0330, 0x02d5, 0x01eb,
+ 0x00cd, 0xffc0, 0xffac, 0x00dd, 0x02ae, 0x0488,
+ 0x058a, 0x0576, 0x04ce, 0x03e1, 0x0368, 0x0426,
+ 0x0612, 0x0846, 0x0960, 0x0932, 0x0859, 0x074a,
+ 0x0707, 0x0751, 0x0728, 0x070a, 0x06f4, 0x06f4,
+ 0x0787, 0x06e6, 0x052c, 0x04c7, 0x04a5, 0x0399,
+ 0x01fc, 0xff78, 0xfe4c, 0xff22, 0xfeb4, 0xfdef,
+ 0xfe69, 0xfdf3, 0xfd29, 0xfd33, 0xfd87, 0xff47,
+ 0x0136, 0x0129, 0x0109, 0x0174, 0x010b, 0x0051,
+ 0xfff9, 0x00ad, 0x021e, 0x0255, 0x020b, 0x0310,
+ 0x049e, 0x0674, 0x08c7, 0x0a16, 0x0965, 0x07d2,
+ 0x0784, 0x0911, 0x0ab6, 0x0b3f, 0x0ad2, 0x09d1,
+ 0x0941, 0x09ae, 0x0aa4, 0x0c46, 0x0e69, 0x0f0e,
+ 0x0cf9, 0x0a27, 0x08c9, 0x085c, 0x083b, 0x0890,
+ 0x0834, 0x0679, 0x0531, 0x0616, 0x086f, 0x0a51,
+ 0x0ac6, 0x0947, 0x0630, 0x0428, 0x03d4, 0x029c,
+ 0x00d7, 0x003d, 0xffc0, 0xfe94, 0xfcbb, 0xfab5,
+ 0xf9a0, 0xf87c, 0xf74c, 0xf768, 0xf607, 0xf298,
+ 0xf165, 0xf29b, 0xf468, 0xf5e3, 0xf457, 0xf00e,
+ 0xea3b, 0xe0d3, 0xd5cc, 0xcd8a, 0xc9d6, 0xcc4b,
+ 0xd2c2, 0xda24, 0xe590, 0xf454, 0xfe32, 0xff74,
+ 0xfb8c, 0xf7ef, 0xf65a, 0xf410, 0xf1a2, 0xefef,
+ 0xeb5a, 0xe573, 0xe282, 0xe0be, 0xe028, 0xe2db,
+ 0xe631, 0xe869, 0xea85, 0xedac, 0xf349, 0xf8c8,
+ 0xfb2e, 0xfc93, 0xfc94, 0xf9cd, 0xf80c, 0xf90c,
+ 0xfbfa, 0x002d, 0x0131, 0xfe3a, 0xfc84, 0xfcb9,
+ 0xfe85, 0x037e, 0x08bd, 0x0cc8, 0x104d, 0x0fdc,
+ 0x0b6a, 0x0792, 0x06ae, 0x0a28, 0x1055, 0x15c3,
+ 0x1bc3, 0x2232, 0x2662, 0x291b, 0x2868, 0x21de,
+ 0x1a71, 0x1526, 0x10bd, 0x0f0e, 0x0fc7, 0x0f17,
+ 0x0d48, 0x0c52, 0x0b27, 0x08d1, 0x061e, 0x039b,
+ 0x022c, 0x02f6, 0x043e, 0x04e3, 0x07b1, 0x0bc6,
+ 0x0d45, 0x0e1b, 0x1019, 0x10ef, 0x1193, 0x13cc,
+ 0x15ff, 0x175d, 0x17ae, 0x1620, 0x13d9, 0x127b,
+ 0x118b, 0x1010, 0x0e44, 0x0c12, 0x08f8, 0x0660,
+ 0x0503, 0x0350, 0x0116, 0xfe97, 0xfc56, 0xfcbb,
+ 0xfeb0, 0xff86, 0x0146, 0x038e, 0x0251, 0xfeb2,
+ 0xfc30, 0xfb2b, 0xfb3d, 0xfd03, 0x0031, 0x01e8,
+ 0x0169, 0x00f9, 0xffb1, 0xfdd0, 0xfe30, 0xfeae,
+ 0xfee4, 0x01ce, 0x04b5, 0x0721, 0x0bc8, 0x0f3b,
+ 0x1087, 0x1173, 0x1000, 0x0ed5, 0x1070, 0x10f2,
+ 0x1121, 0x125b, 0x1150, 0x0efe, 0x0cbc, 0x08ee,
+ 0x057e, 0x034c, 0x0000, 0xfbb2, 0xf7bf, 0xf59d,
+ 0xf671, 0xf855, 0xf911, 0xf8fe, 0xf8ba, 0xf863,
+ 0xf8fc, 0xfa88, 0xfad8, 0xf9f9, 0xf9fe, 0xfa8e,
+ 0xfc32, 0xfffe, 0x039a, 0x068b, 0x0915, 0x0862,
+ 0x05e8, 0x0544, 0x066b, 0x095e, 0x0b3c, 0x098f,
+ 0x08e8, 0x0963, 0x07dc, 0x086f, 0x0b03, 0x0a66,
+ 0x089c, 0x0864, 0x08dc, 0x09d1, 0x097f, 0x063c,
+ 0x0152, 0xfcbd, 0xfa22, 0xfa1f, 0xfcdf, 0x00a0,
+ 0x00f3, 0xfe82, 0xfcd4, 0xf9ba, 0xf4e1, 0xf296,
+ 0xf396, 0xf63a, 0xf7de, 0xf695, 0xf612, 0xf850,
+ 0xf9bd, 0xfad8, 0xfe52, 0x00f6, 0xff30, 0xfb85,
+ 0xf8b6, 0xf5f1, 0xf528, 0xf884, 0xfca1, 0x0115,
+ 0x06d2, 0x07d8, 0x041e, 0x025c, 0x0070, 0xfc84,
+ 0xfc0f, 0xfe81, 0x0022, 0x021a, 0x0434, 0x043b,
+ 0x0267, 0x0029, 0xff0e, 0x00b0, 0x0450, 0x063c,
+ 0x060c, 0x06e5, 0x06cb, 0x03c7, 0x02c9, 0x052d,
+ 0x07b6, 0x0a2c, 0x0bca, 0x0c1e, 0x0c77, 0x0bb6,
+ 0x0ab0, 0x0ab4, 0x08f8, 0x062d, 0x039f, 0xff44,
+ 0xfc38, 0xfc53, 0xfc03, 0xfc2b, 0xfc4b, 0xfa84,
+ 0xfbe6, 0xff7b, 0xff32, 0xfe22, 0xfd90, 0xfac6,
+ 0xf8d2, 0xf81a, 0xf7b3, 0xf9e7, 0xfab0, 0xf7ac,
+ 0xf5c6, 0xf527, 0xf570, 0xf7f1, 0xf947, 0xf9d6,
+ 0xfb02, 0xf9e1, 0xf9c1, 0xfba4, 0xfabe, 0xfc32,
+ 0x0242, 0x04d3, 0x0490, 0x057a, 0x06b6, 0x08bd,
+ 0x0895, 0x05f4, 0x065b, 0x0708, 0x05e8, 0x063b,
+ 0x0473, 0x012c, 0x0070, 0xfde8, 0xfb4e, 0xfc45,
+ 0xfb1c, 0xf991, 0xfb43, 0xfbac, 0xfc89, 0xfe2f,
+ 0xfa91, 0xf582, 0xf376, 0xf15a, 0xf019, 0xf13e,
+ 0xf3a5, 0xf712, 0xf965, 0xfa68, 0xfb92, 0xfade,
+ 0xf9e6, 0xfbef, 0xfd30, 0xfb2f, 0xf906, 0xf890,
+ 0xf9de, 0xfb35, 0xfb1c, 0xfcbc, 0x00b6, 0x0297,
+ 0x01f7, 0x0000, 0xfcf1, 0xfe3a, 0x0380, 0x041c,
+ 0x032d, 0x069f, 0x07bd, 0x05fc, 0x06e4, 0x079d,
+ 0x0874, 0x0b24, 0x0b6c, 0x0add, 0x0af5, 0x089b,
+ 0x066a, 0x04b2, 0x01c0, 0x011e, 0x006e, 0xfd25,
+ 0xfb3a, 0xf916, 0xf5d6, 0xf461, 0xf2c5, 0xf13b,
+ 0xf02a, 0xedee, 0xee43, 0xf00f, 0xef99, 0xf0d1,
+ 0xf31b, 0xf460, 0xf5c6, 0xf2ce, 0xedca, 0xeca0,
+ 0xeaed, 0xea70, 0xed97, 0xed8d, 0xee01, 0xf206,
+ 0xf248, 0xf230, 0xf58b, 0xf85a, 0xfcb9, 0x005e,
+ 0xfebf, 0xfde1, 0xfe24, 0xfacd, 0xf8a3, 0xf919,
+ 0xf696, 0xf3e4, 0xf6d4, 0xfaea, 0xfc8e, 0x0114,
+ 0x06b9, 0x06e7, 0x05be, 0x06c9, 0x0811, 0x09f0,
+ 0x093a, 0x0481, 0x0087, 0xfe6f, 0xff42, 0x0174,
+ 0xffd3, 0xfea5, 0xfec0, 0xfb93, 0xfc5d, 0x005b,
+ 0xffa3, 0x014d, 0x0528, 0x03e9, 0x03f8, 0x076e,
+ 0x0ad8, 0x0d7d, 0x0adf, 0x077c, 0x094b, 0x0a6b,
+ 0x0bfa, 0x0f5c, 0x0f6d, 0x0fb2, 0x0f1f, 0x0adf,
+ 0x0ae8, 0x0d36, 0x0dff, 0x11f2, 0x12e9, 0x101d,
+ 0x127a, 0x146d, 0x123a, 0x10a1, 0x0e95, 0x0ec8,
+ 0x1139, 0x0ec3, 0x0b12, 0x0a51, 0x0904, 0x0928,
+ 0x0b4d, 0x0b76, 0x0c05, 0x104a, 0x1417, 0x1245,
+ 0x0d09, 0x0896, 0x04f0, 0x0377, 0x042a, 0x0420,
+ 0x0466, 0x02b1, 0xfd32, 0xfbf1, 0xff7c, 0x0162,
+ 0x0184, 0xfeca, 0xfd47, 0x01d0, 0x02a7, 0xff29,
+ 0x0172, 0x0574, 0x073b, 0x06c2, 0x012b, 0xfed0,
+ 0x02b5, 0x022d, 0xff0a, 0xfee4, 0xff68, 0x0189,
+ 0x0354, 0x02d1, 0x038b, 0x0266, 0xfee1, 0xff9f,
+ 0x0130, 0xff9f, 0x00a9, 0x0320, 0x01d7, 0x0243,
+ 0x0614, 0x0574, 0x050f, 0x0b15, 0x0b50, 0x05d8,
+ 0x087a, 0x0a8a, 0x04ec, 0x036f, 0x04bf, 0x03e3,
+ 0x0638, 0x09df, 0x0c3f, 0x0d40, 0x0b92, 0x0d41,
+ 0x1055, 0x0c32, 0x0801, 0x076e, 0x040d, 0x024d,
+ 0x0521, 0x067e, 0x0557, 0x0408, 0x03aa, 0x03bb,
+ 0x03e1, 0x053d, 0x058c, 0x04b5, 0x0689, 0x0922,
+ 0x0a94, 0x0acd, 0x08dd, 0x09e1, 0x0e07, 0x0ec5,
+ 0x0fdb, 0x14cc, 0x186b, 0x1647, 0x0d10, 0x05e0,
+ 0x079a, 0x081a, 0x066a, 0x0995, 0x0ba0, 0x0ca2,
+ 0x1002, 0x0f86, 0x0e0e, 0x0e9e, 0x0c5c, 0x0c1b,
+ 0x0e47, 0x0b54, 0x0778, 0x063e, 0x04f0, 0x0530,
+ 0x05b2, 0x04a9, 0x0423, 0x02c5, 0x00bb, 0xfeeb,
+ 0xfa45, 0xf5a3, 0xf54c, 0xf6f0, 0xf9b3, 0xfb1e,
+ 0xf872, 0xf95b, 0xff94, 0x01e8, 0x0265, 0x0468,
+ 0x0329, 0x0339, 0x05a0, 0x03de, 0x0498, 0x0611,
+ 0xff63, 0xfe4c, 0x03a3, 0xff06, 0xfbbb, 0x00a7,
+ 0x003b, 0xff6f, 0x0224, 0x019a, 0x02cd, 0x03f5,
+ 0x00ef, 0x0093, 0x0097, 0xffa8, 0x02e1, 0x0703,
+ 0x0bcd, 0x1084, 0x11e7, 0x13bf, 0x0fba, 0x04c0,
+ 0x02e0, 0x0504, 0x017e, 0x00d7, 0x0044, 0x009f,
+ 0x0aed, 0x1192, 0x0cc8, 0x0888, 0x073e, 0x0613,
+ 0x03b9, 0x0252, 0x0783, 0x0b22, 0x07ae, 0x0783,
+ 0x0a8a, 0x0ce1, 0x10ac, 0x0fd9, 0x0ba3, 0x0e62,
+ 0x1358, 0x11be, 0x0ebc, 0x1067, 0x110b, 0x0c83,
+ 0x0884, 0x04bf, 0x00d3, 0x03d1, 0x06f7, 0x0389,
+ 0x01a4, 0x0032, 0xfe24, 0x0020, 0x00bc, 0x01f4,
+ 0x041b, 0xff61, 0x0150, 0x0a94, 0x0796, 0x06bf,
+ 0x1183, 0x12df, 0x0cda, 0x09e4, 0x0946, 0x0d7a,
+ 0x0d5f, 0x09cb, 0x107f, 0x1433, 0x0edb, 0x0e9e,
+ 0x0d63, 0x09e8, 0x0c41, 0x0b92, 0x0935, 0x0bc3,
+ 0x0c96, 0x0d34, 0x0e25, 0x0d60, 0x10dc, 0x10e4,
+ 0x0c1d, 0x10de, 0x12b0, 0x0818, 0x054a, 0x0882,
+ 0x03b3, 0x0006, 0x0302, 0x068b, 0x05dd, 0x0019,
+ 0xfcdb, 0xfcf7, 0xfb37, 0xfb5b, 0xf9a0, 0xf526,
+ 0xf967, 0xfc4d, 0xf68d, 0xfa06, 0x018d, 0x00b8,
+ 0x0238, 0x03c5, 0x015a, 0x036e, 0x03cb, 0x01ec,
+ 0x0419, 0x01d8, 0xff1a, 0x016f, 0xff7d, 0xfe15,
+ 0xfe1b, 0xf94b, 0xfb38, 0xfcdf, 0xf1c6, 0xefe4,
+ 0xf9ba, 0xfa0a, 0xf82a, 0xfc17, 0xfbb8, 0xf805,
+ 0xf881, 0xfb6b, 0xfbe4, 0xfdaf, 0x0311, 0x0195,
+ 0xfa9c, 0xfa04, 0xfc89, 0xfe3e, 0xfe93, 0xfc6c,
+ 0xffe3, 0x04ba, 0x02c5, 0x04b8, 0x0885, 0x0786,
+ 0x096c, 0x0986, 0x090a, 0x0ddc, 0x0978, 0x0321,
+ 0x0831, 0x06e5, 0x0302, 0x09a6, 0x0bb4, 0x0932,
+ 0x0a03, 0x07bb, 0x058a, 0x0512, 0x03db, 0x0429,
+ 0x0174, 0xfeb6, 0x0052, 0xff42, 0xff34, 0x0175,
+ 0xffbb, 0x0048, 0x027c, 0x0344, 0x0612, 0x01fb,
+ 0xfc03, 0x0185, 0x0597, 0x04cf, 0x07d4, 0x085c,
+ 0x08b9, 0x0b28, 0x0953, 0x09dd, 0x0c8c, 0x0b0b,
+ 0x09cd, 0x0696, 0x0358, 0x0692, 0x0617, 0x007a,
+ 0x0054, 0x028f, 0x0258, 0x0155, 0x01e8, 0x043b,
+ 0x03ba, 0x0158, 0xff48, 0xfad4, 0xf7dd, 0xf7d3,
+ 0xf765, 0xf77a, 0xf5d8, 0xf5dd, 0xfad2, 0xfa5d,
+ 0xf626, 0xf56a, 0xf3c8, 0xf471, 0xf59f, 0xf2d1,
+ 0xf598, 0xf851, 0xf6cb, 0xfce8, 0xfff1, 0xfd22,
+ 0x0336, 0x0723, 0x0776, 0x0ca5, 0x0a4e, 0x0893,
+ 0x0c90, 0x0330, 0xfca4, 0x0667, 0x08d6, 0x0441,
+ 0x02f0, 0x00fc, 0x04f5, 0x0ab8, 0x085b, 0x061f,
+ 0x03f8, 0xfeec, 0xff2b, 0x012c, 0x004f, 0x02bb,
+ 0x043e, 0xff97, 0xfdd2, 0xffd3, 0xfdcc, 0xfdb6,
+ 0xff7a, 0xf947, 0xf7bf, 0xfe76, 0xfa2f, 0xf5e2,
+ 0xfb7f, 0xf7dc, 0xf439, 0xfbb0, 0xfd41, 0xfd3e,
+ 0xffe2, 0xfbcd, 0xfaa2, 0xf96f, 0xf0bd, 0xef71,
+ 0xf30f, 0xf461, 0xf738, 0xf4ed, 0xf4cc, 0xf9af,
+ 0xf4a9, 0xf35c, 0xf81c, 0xf220, 0xf5db, 0xffde,
+ 0xf571, 0xf01d, 0xf784, 0xf222, 0xefa0, 0xf7ed,
+ 0xf7f3, 0xf3cc, 0xf1a3, 0xf19e, 0xf55d, 0xf4dd,
+ 0xf3eb, 0xf76d, 0xf72b, 0xf8ac, 0xfb77, 0xf7f1,
+ 0xfa9a, 0xfdb4, 0xf565, 0xf67f, 0xfdd9, 0xf834,
+ 0xf874, 0x0052, 0xfb29, 0xf700, 0xfb85, 0xfb19,
+ 0xfdbb, 0x0499, 0x02ce, 0x0026, 0x01a5, 0x02e3,
+ 0x080e, 0x09cb, 0x0381, 0x02c3, 0x0484, 0x0248,
+ 0x03df, 0x0201, 0xfae9, 0xfcbe, 0xfffa, 0xfff8,
+ 0x06f0, 0x09c1, 0x0510, 0x0761, 0x0877, 0x03b4,
+ 0x051e, 0x0633, 0x026c, 0x0272, 0x02ab, 0x01d6,
+ 0x04b1, 0x05a8, 0x0494, 0x06e3, 0x0955, 0x09d2,
+ 0x0908, 0x06fb, 0x07ba, 0x0b6b, 0x0bbe, 0x0714,
+ 0x017e, 0xfe13, 0xfc5f, 0xfc07, 0xfe43, 0x00e2,
+ 0x010d, 0x00a3, 0x00e6, 0x0021, 0xfe76, 0xfeba,
+ 0x0120, 0x0146, 0xfefd, 0xfe91, 0xff76, 0xffe4,
+ 0xfe77, 0xfa3f, 0xf950, 0xfa28, 0xf3d7, 0xeed0,
+ 0xefe4, 0xebea, 0xe8db, 0xed0d, 0xed24, 0xeb8e,
+ 0xedc8, 0xeebb, 0xf3c4, 0xfc76, 0xff83, 0x0133,
+ 0x0280, 0x001f, 0x006e, 0x0386, 0x055b, 0x047c,
+ 0xffeb, 0xff81, 0x043d, 0x05a7, 0x06e7, 0x090e,
+ 0x0b6f, 0x10f8, 0x0dfe, 0x058c, 0x07af, 0x0649,
+ 0xffda, 0x0485, 0x0379, 0xfba1, 0x0135, 0x05a3,
+ 0x02c0, 0x0572, 0x05e3, 0x0504, 0x0700, 0x01ab,
+ 0xfe21, 0x026d, 0x02a5, 0x0325, 0x06a7, 0x0546,
+ 0x021e, 0xff06, 0xfcde, 0xfd78, 0xfa4e, 0xf8af,
+ 0xff65, 0x0090, 0xfb18, 0xfcca, 0xff73, 0xfbe3,
+ 0xfda3, 0x0532, 0x0567, 0x036a, 0x088c, 0x0a29,
+ 0x07be, 0x0bc9, 0x0d01, 0x08f1, 0x0a76, 0x0984,
+ 0x03f8, 0x05d5, 0x081a, 0x040a, 0x0268, 0x0340,
+ 0xfffe, 0xf8e2, 0xf404, 0xf3ca, 0xf47b, 0xf7df,
+ 0xfb54, 0xf84b, 0xf94d, 0xfe39, 0xfa75, 0xfb83,
+ 0x0338, 0xff0d, 0xfc10, 0x01cc, 0x0045, 0x0122,
+ 0x0949, 0x08cc, 0x0554, 0x04b9, 0x014e, 0x014c,
+ 0x024c, 0xfd95, 0xfd0d, 0x0126, 0x0077, 0xfe4b,
+ 0xfe6f, 0xfe5e, 0xfe4a, 0xff10, 0xff69, 0xfe54,
+ 0xfd04, 0xfc7a, 0xfb95, 0xfb38, 0xfd80, 0x0020,
+ 0xfe07, 0xf835, 0xf664, 0xf913, 0xfaa2, 0xfc8f,
+ 0xff25, 0xff91, 0xffc7, 0xfd3c, 0xf8f7, 0xfb95,
+ 0xfdde, 0xf9cf, 0xfb71, 0x00d6, 0xfffe, 0xfe5c,
+ 0x006d, 0x0530, 0x09d4, 0x0a63, 0x0ae8, 0x0a5b,
+ 0x052f, 0x0585, 0x09d1, 0x084f, 0x07d4, 0x08a8,
+ 0x076c, 0x09fa, 0x088a, 0x0079, 0xfe41, 0xfe32,
+ 0xfbd7, 0xfbf0, 0xfc24, 0xfd3e, 0xfc1e, 0xf554,
+ 0xf5a2, 0xfa10, 0xf7f8, 0xf9b5, 0xfc0e, 0xf86e,
+ 0xfb11, 0xfd41, 0xf7fd, 0xf88d, 0xfc58, 0xfea2,
+ 0x021f, 0x014c, 0x033c, 0x0a50, 0x094c, 0x0953,
+ 0x0fe9, 0x0e27, 0x0970, 0x09a0, 0x08f6, 0x0a46,
+ 0x0bb8, 0x096b, 0x0a36, 0x0c6b, 0x0d50, 0x1171,
+ 0x1398, 0x0fe3, 0x0d59, 0x0e14, 0x0e21, 0x0dac,
+ 0x0ee3, 0x0e5c, 0x0b06, 0x09d8, 0x0786, 0x0231,
+ 0x005c, 0xfe3f, 0xfac7, 0xfc3d, 0xfcf4, 0xfe37,
+ 0x03e6, 0x0201, 0xfce5, 0xffb8, 0x0256, 0x047b,
+ 0x0648, 0x01b1, 0x007f, 0x0256, 0xffc5, 0x0316,
+ 0x07d1, 0x03cb, 0x0094, 0xfe5a, 0xfb6b, 0xfeb0,
+ 0x018e, 0xff6d, 0xfc37, 0xf8cd, 0xf964, 0xfb0a,
+ 0xf9d4, 0xfc4b, 0xfe14, 0xfb97, 0xfb04, 0xf790,
+ 0xf3fa, 0xf7c9, 0xf8d1, 0xf737, 0xfa10, 0xfb1f,
+ 0xfc09, 0xfda2, 0xfa8c, 0xfb4d, 0x01c0, 0x0583,
+ 0x086f, 0x09bb, 0x0691, 0x0360, 0x02e3, 0x05ac,
+ 0x06c6, 0x03db, 0x0592, 0x0898, 0x0759, 0x0b55,
+ 0x1163, 0x12f5, 0x1657, 0x15cf, 0x0ead, 0x0c85,
+ 0x0d33, 0x0d85, 0x11e6, 0x13fb, 0x0fef, 0x0b14,
+ 0x09a3, 0x0cbd, 0x0d2b, 0x09ed, 0x0aef, 0x09aa,
+ 0x053b, 0x09bf, 0x0e03, 0x08ec, 0x0591, 0x03b7,
+ 0xff00, 0xfe1a, 0x00f0, 0x0466, 0x0837, 0x0a31,
+ 0x0c32, 0x0e43, 0x0c7d, 0x0934, 0x083e, 0x0abc,
+ 0x0e2a, 0x0dbe, 0x0cac, 0x0cc5, 0x0949, 0x06d0,
+ 0x096e, 0x0cd2, 0x0f25, 0x0cf9, 0x0909, 0x0aad,
+ 0x0a6d, 0x07bd, 0x0a3c, 0x07cd, 0x0265, 0x07a7,
+ 0x0d19, 0x0bb4, 0x08d7, 0x0332, 0x0078, 0xffc2,
+ 0xfa7c, 0xfca0, 0x0383, 0x0243, 0x0322, 0x0449,
+ 0xfdcc, 0xfc4c, 0xfd63, 0xfb34, 0xfedf, 0x020d,
+ 0x0108, 0x0248, 0x012a, 0x0384, 0x0b51, 0x0856,
+ 0x0275, 0x04e7, 0x040e, 0x0363, 0x0670, 0x0209,
+ 0x0071, 0x080b, 0x068d, 0xff66, 0x01ea, 0x03e1,
+ 0x0079, 0x03d6, 0x0839, 0x04bc, 0x03b4, 0x05f7,
+ 0x03da, 0x0389, 0x0581, 0x03ec, 0x035e, 0x03f3,
+ 0x0369, 0x0573, 0x073a, 0x067a, 0x04d8, 0x02e8,
+ 0x051b, 0x0602, 0x0006, 0x0056, 0x055c, 0x028e,
+ 0x0072, 0x0030, 0xfb67, 0xfb1b, 0xfd97, 0xfb4f,
+ 0xfa74, 0xfb86, 0xfbd0, 0xfc74, 0xfb84, 0xfb8b,
+ 0xfd3a, 0xfd5c, 0xfee3, 0xff87, 0xfd15, 0xfe55,
+ 0x0077, 0xfe63, 0xfd10, 0xfce2, 0xfb3e, 0xf96c,
+ 0xf821, 0xf858, 0xf9d5, 0xfa77, 0xf896, 0xf5c3,
+ 0xf658, 0xf6ac, 0xf419, 0xf6c5, 0xfa73, 0xf8df,
+ 0xfd1c, 0x02a9, 0xfd98, 0xfb1b, 0x00a2, 0x0237,
+ 0x01d0, 0x03aa, 0x025a, 0xfeba, 0xfe90, 0x021f,
+ 0x0768, 0x0d36, 0x0d1e, 0x0548, 0x01d8, 0x0352,
+ 0x00d2, 0x0376, 0x0b1e, 0x08b8, 0x0411, 0x069f,
+ 0x07fe, 0x0758, 0x075a, 0x07e0, 0x0a49, 0x0a9f,
+ 0x0a8c, 0x0cef, 0x0a09, 0x0649, 0x0af4, 0x0f3e,
+ 0x0daa, 0x0b7d, 0x0ab7, 0x0a6e, 0x0795, 0x03ec,
+ 0x04e9, 0x06bc, 0x0575, 0x0471, 0x05a3, 0x07fa,
+ 0x07ed, 0x0553, 0x055c, 0x086d, 0x0b93, 0x0c3c,
+ 0x0b08, 0x0df5, 0x110a, 0x0e5e, 0x0e05, 0x0d67,
+ 0x069f, 0x065d, 0x0abb, 0x0777, 0x05c5, 0x092e,
+ 0x09f9, 0x0cc9, 0x11c5, 0x1076, 0x0b42, 0x09a3,
+ 0x0b4b, 0x0a90, 0x0849, 0x092e, 0x08a6, 0x03f7,
+ 0x0080, 0xfdd9, 0xfb5d, 0xfb13, 0xf893, 0xf27d,
+ 0xee75, 0xef4d, 0xf2c4, 0xf4e3, 0xf6d8, 0xfab1,
+ 0xfc08, 0xfb0a, 0xfa91, 0xf7d6, 0xf671, 0xfa4d,
+ 0xfca3, 0xfb7a, 0xf9e3, 0xf6fe, 0xf5eb, 0xf8c7,
+ 0xfa39, 0xfadc, 0x003d, 0x055e, 0x03a5, 0x02bb,
+ 0x07db, 0x0a85, 0x0abf, 0x0dc7, 0x0c26, 0x06df,
+ 0x0832, 0x093d, 0x0586, 0x06be, 0x08bf, 0x0495,
+ 0x0429, 0x08e6, 0x096e, 0x0932, 0x0b59, 0x0946,
+ 0x054d, 0x036e, 0x007e, 0x012c, 0x04c8, 0x0123,
+ 0xff78, 0x0514, 0x0125, 0xfabd, 0x0099, 0x0269,
+ 0xfeb8, 0x047e, 0x0798, 0x02a4, 0x0384, 0x0663,
+ 0x06b7, 0x0a2a, 0x0ba4, 0x092e, 0x09af, 0x0c5e,
+ 0x0e1d, 0x0e97, 0x0dd1, 0x0b71, 0x04eb, 0xfea8,
+ 0xffa3, 0x0150, 0xfefb, 0xfeeb, 0x0124, 0x01d8,
+ 0x00e8, 0xff93, 0x01c7, 0x05f4, 0x06c6, 0x0669,
+ 0x0561, 0x03e8, 0x0594, 0x03ea, 0xfe79, 0xff8b,
+ 0xff5f, 0xf7ea, 0xf633, 0xf9ce, 0xfa42, 0xf943,
+ 0xf741, 0xf707, 0xf925, 0xf8ae, 0xfc17, 0x0358,
+ 0x0473, 0x056d, 0x06cc, 0x00ee, 0xfde1, 0xff81,
+ 0xfd92, 0xfde1, 0xff2d, 0xfc54, 0xfbb9, 0xfc3c,
+ 0xfba2, 0xfd1c, 0xfd6c, 0xfc05, 0xf8fa, 0xf513,
+ 0xf6fc, 0xf70e, 0xf13c, 0xf32d, 0xf52e, 0xef5c,
+ 0xf0ed, 0xf494, 0xf331, 0xf8af, 0xfce5, 0xfb19,
+ 0xff61, 0x0055, 0xfbe1, 0x00fc, 0x069d, 0x0592,
+ 0x08cd, 0x0c6d, 0x09ec, 0x0847, 0x09de, 0x0a2c,
+ 0x0859, 0x0873, 0x0ad8, 0x0bb7, 0x0cb8, 0x0d84,
+ 0x0ae4, 0x09e4, 0x09f7, 0x064e, 0x0575, 0x0668,
+ 0x0298, 0x01ac, 0x03e7, 0x017d, 0x00ba, 0x0378,
+ 0x0195, 0xfd6b, 0xfc36, 0xfd0a, 0xfd4f, 0xfad8,
+ 0xf9e0, 0xfd71, 0xfead, 0xfc8d, 0xfcce, 0xfed2,
+ 0x0230, 0x0619, 0x0579, 0x03ec, 0x06d0, 0x07e8,
+ 0x0579, 0x06a1, 0x09e2, 0x095b, 0x0838, 0x0af6,
+ 0x0e3e, 0x0f52, 0x10c6, 0x1252, 0x138c, 0x1718,
+ 0x18a2, 0x1627, 0x17e3, 0x1aa0, 0x169b, 0x14ac,
+ 0x1770, 0x153e, 0x101a, 0x0cf9, 0x0a17, 0x070d,
+ 0x0296, 0xff09, 0xffec, 0xffe9, 0x0000, 0x04a4,
+ 0x048c, 0xff15, 0xff64, 0x01ee, 0x0192, 0x0205,
+ 0x00bd, 0xfcee, 0xfa8a, 0xf82c, 0xf7c5, 0xfbae,
+ 0xfda5, 0xfcd3, 0xfce0, 0xfb88, 0xfabd, 0xfd5a,
+ 0xfde7, 0xfc16, 0xfbc7, 0xfa08, 0xf762, 0xf62f,
+ 0xf2ca, 0xf0f2, 0xf571, 0xf764, 0xf400, 0xf421,
+ 0xf753, 0xf7c9, 0xf6c9, 0xf781, 0xf932, 0xf8ba,
+ 0xf72d, 0xf7a3, 0xf88c, 0xfab5, 0xfe79, 0xfe0f,
+ 0xfcda, 0xffea, 0xffa3, 0xfd63, 0x0086, 0x02c3,
+ 0x02c4, 0x0432, 0x0245, 0x012d, 0x05a6, 0x0658,
+ 0x0366, 0x03ea, 0x0569, 0x06bf, 0x06a4, 0x03dd,
+ 0x048b, 0x059b, 0x013e, 0xfff5, 0x0282, 0x01c0,
+ 0x0110, 0x007a, 0xfde3, 0xfd1b, 0xfafa, 0xf864,
+ 0xfc96, 0x00b9, 0x00cc, 0x0406, 0x074b, 0x0706,
+ 0x0789, 0x08da, 0x0a31, 0x0946, 0x04b5, 0x03aa,
+ 0x057f, 0x03ca, 0x023d, 0x0188, 0x0091, 0x029a,
+ 0x0338, 0x0288, 0x05da, 0x078d, 0x0863, 0x0c85,
+ 0x0cba, 0x0b3d, 0x0c14, 0x096d, 0x08d8, 0x0c93,
+ 0x0c8c, 0x0d24, 0x0e23, 0x0a47, 0x0abd, 0x0e07,
+ 0x0b6e, 0x09fa, 0x093d, 0x03ac, 0x007a, 0x004a,
+ 0xfe83, 0xfd21, 0xfaf2, 0xf7e4, 0xf76b, 0xf845,
+ 0xf935, 0xfa3f, 0xfb7a, 0xfdd8, 0xff07, 0xfef8,
+ 0xffa4, 0xfd9b, 0xfb46, 0xfe1a, 0xffd9, 0xfde6,
+ 0xfdc3, 0xfcc2, 0xf9a1, 0xf9f8, 0xfc72, 0xfeb4,
+ 0x0297, 0x0547, 0x0490, 0x033f, 0x02c8, 0x047a,
+ 0x0700, 0x05c8, 0x0400, 0x05fc, 0x07a2, 0x07ec,
+ 0x0817, 0x0641, 0x0601, 0x07ee, 0x065e, 0x0507,
+ 0x0681, 0x049c, 0x012f, 0xffdd, 0xfe15, 0xfd9a,
+ 0xff2a, 0xff44, 0xfe29, 0xfc4c, 0xfa1f, 0xf9d9,
+ 0xfaaf, 0xfb7a, 0xfc72, 0xfd23, 0xfd54, 0xfc41,
+ 0xfa77, 0xf8a8, 0xf64e, 0xf6b4, 0xf906, 0xf76a,
+ 0xf5e9, 0xf750, 0xf6f5, 0xf7e4, 0xfa58, 0xf9a7,
+ 0xfa6d, 0xfc1a, 0xf970, 0xf816, 0xfb6b, 0x001f,
+ 0x0273, 0xff32, 0xfcc9, 0xff00, 0xfe6d, 0xfde8,
+ 0x01d6, 0x02f1, 0x00e7, 0xffa5, 0xfe99, 0xfe82,
+ 0xfe10, 0xfe8e, 0x012a, 0xfef9, 0xfb34, 0xfd03,
+ 0xfc84, 0xf85b, 0xf752, 0xf6fe, 0xf6c5, 0xf7a6,
+ 0xf827, 0xfaa5, 0xfc37, 0xfa8f, 0xfaf1, 0xfaa7,
+ 0xf80c, 0xf8b4, 0xf925, 0xf7c7, 0xf95e, 0xfae2,
+ 0xfb06, 0xfb9e, 0xfb41, 0xfd0b, 0x009a, 0x0134,
+ 0x015f, 0x0105, 0x0032, 0x04b3, 0x087e, 0x069b,
+ 0x08a9, 0x0c79, 0x0a15, 0x089a, 0x0a45, 0x09f9,
+ 0x0a62, 0x0b16, 0x0864, 0x049d, 0x013b, 0x0081,
+ 0x04b3, 0x06e4, 0x04ce, 0x0648, 0x09bb, 0x096c,
+ 0x0943, 0x0a74, 0x0969, 0x0878, 0x09dd, 0x0b81,
+ 0x0ca5, 0x0d58, 0x0de8, 0x0f33, 0x0fde, 0x0f42,
+ 0x0f08, 0x0de3, 0x0a90, 0x085d, 0x0738, 0x0371,
+ 0xffa2, 0xfeaa, 0xfd6c, 0xfc38, 0xfcb4, 0xfc5a,
+ 0xfc36, 0xfd28, 0xfc9e, 0xfd81, 0x003e, 0x001a,
+ 0xff95, 0xff55, 0xfb3f, 0xf729, 0xf4fa, 0xf23e,
+ 0xf2b3, 0xf5a4, 0xf603, 0xf609, 0xf701, 0xf6d1,
+ 0xf5d0, 0xf5b1, 0xf838, 0xfa34, 0xf96d, 0xfb71,
+ 0xfe8e, 0xfe05, 0xfeee, 0x007a, 0xff71, 0x00db,
+ 0x0275, 0x01a1, 0x0342, 0x04fb, 0x0655, 0x0a22,
+ 0x0a77, 0x08a1, 0x0988, 0x071a, 0x029c, 0x024d,
+ 0x02c5, 0x0262, 0x00f4, 0xfd80, 0xfc7d, 0xfd3d,
+ 0xfc7e, 0xfe79, 0x01de, 0x009c, 0xfe38, 0x00e4,
+ 0x062d, 0x0804, 0x07b4, 0x0902, 0x08fb, 0x080a,
+ 0x0901, 0x071b, 0x0483, 0x07c3, 0x0a66, 0x093f,
+ 0x099c, 0x0944, 0x0702, 0x062a, 0x0570, 0x047c,
+ 0x0453, 0x03e4, 0x037e, 0x031b, 0x03b2, 0x0666,
+ 0x0811, 0x093c, 0x0c83, 0x0dbf, 0x0c38, 0x0c1e,
+ 0x0bdb, 0x0970, 0x06df, 0x0554, 0x0469, 0x0382,
+ 0x03e4, 0x0534, 0x0382, 0x0065, 0xfefb, 0xfc68,
+ 0xfa3f, 0xfab2, 0xf8d1, 0xf695, 0xf88e, 0xf93e,
+ 0xf74d, 0xf72a, 0xf73a, 0xf69d, 0xf6c6, 0xf770,
+ 0xfa1b, 0xfd75, 0xfea0, 0xffcd, 0x0158, 0x02ee,
+ 0x064b, 0x076e, 0x04f4, 0x033f, 0x00ec, 0xfe5a,
+ 0xfdd5, 0xfb0d, 0xf823, 0xf88b, 0xf675, 0xf46d,
+ 0xf5f0, 0xf4a0, 0xf449, 0xf890, 0xf97f, 0xf95b,
+ 0xfbfd, 0xfc39, 0xfc94, 0xfec8, 0xfeca, 0xff9c,
+ 0x01da, 0x0295, 0x03b9, 0x0431, 0x03bc, 0x05c2,
+ 0x07f6, 0x08d7, 0x09d1, 0x09d5, 0x0ad6, 0x0d51,
+ 0x0d40, 0x0c27, 0x0cd1, 0x0d53, 0x0d35, 0x0d02,
+ 0x0b94, 0x085a, 0x04af, 0x01e5, 0xfeea, 0xfc2c,
+ 0xfbdb, 0xfc0e, 0xfb54, 0xfb2b, 0xfa7d, 0xf92b,
+ 0xf93b, 0xf9d2, 0xf937, 0xf7b6, 0xf779, 0xf87e,
+ 0xf75b, 0xf593, 0xf63c, 0xf65e, 0xf5a3, 0xf627,
+ 0xf706, 0xf969, 0xfc96, 0xfe26, 0x0039, 0x0158,
+ 0xffca, 0x0084, 0x030c, 0x03c8, 0x04af, 0x0648,
+ 0x07dc, 0x0930, 0x0915, 0x0920, 0x09c3, 0x0ab5,
+ 0x0e1e, 0x1130, 0x123a, 0x1484, 0x14fa, 0x12ce,
+ 0x1370, 0x14e4, 0x1543, 0x16a3, 0x1624, 0x1408,
+ 0x1351, 0x11b6, 0x0f26, 0x0d67, 0x0bd6, 0x0b0f,
+ 0x0a19, 0x0760, 0x0488, 0x0261, 0x0120, 0x010a,
+ 0x0180, 0x0379, 0x0591, 0x0496, 0x0300, 0x02b6,
+ 0x00cc, 0xfdcd, 0xfcbf, 0xfd1e, 0xfd94, 0xfeee,
+ 0x0175, 0x0397, 0x049d, 0x0461, 0x0247, 0xfff4,
+ 0xfea2, 0xfd56, 0xfd02, 0xfd42, 0xfc24, 0xfbc4,
+ 0xfc69, 0xfc3d, 0xfd82, 0xff09, 0xfd4e, 0xfb91,
+ 0xfb92, 0xfabf, 0xfa30, 0xfaa2, 0xfaa3, 0xfb70,
+ 0xfd9c, 0xffad, 0x01c9, 0x037e, 0x02ff, 0x01a1,
+ 0x0135, 0xffc2, 0xfdc2, 0xfe1b, 0xfd9a, 0xfa65,
+ 0xfa2e, 0xfd60, 0xff0c, 0x000b, 0x020c, 0x0329,
+ 0x035f, 0x047f, 0x0610, 0x0564, 0x02f1, 0x02a9,
+ 0x03df, 0x0349, 0x01c4, 0x0046, 0xff4f, 0x0072,
+ 0x01b1, 0x00d2, 0xff81, 0xfe63, 0xfce1, 0xfbdc,
+ 0xfc81, 0xff01, 0x01eb, 0x0448, 0x0626, 0x0712,
+ 0x08cf, 0x0c6a, 0x0e5c, 0x0d8e, 0x0b54, 0x074a,
+ 0x048d, 0x053e, 0x055f, 0x04db, 0x06a2, 0x08b6,
+ 0x09dd, 0x0ade, 0x0a91, 0x09ee, 0x0a8d, 0x0a45,
+ 0x085a, 0x06d5, 0x05ce, 0x0534, 0x05b5, 0x051d,
+ 0x027c, 0x0108, 0x009b, 0xfe82, 0xfc9e, 0xfd0d,
+ 0xff15, 0x01fe, 0x03da, 0x049a, 0x0670, 0x0729,
+ 0x05c6, 0x05a4, 0x054d, 0x0309, 0x01e5, 0x01ed,
+ 0x025e, 0x0341, 0x0232, 0x014e, 0x02d3, 0x02c1,
+ 0x0365, 0x086c, 0x0b6f, 0x0b14, 0x0ba1, 0x0ae7,
+ 0x09f3, 0x0c10, 0x0d63, 0x0d7a, 0x0ee4, 0x0f02,
+ 0x0de4, 0x0dd1, 0x0d5b, 0x0c36, 0x0b41, 0x0ab0,
+ 0x0ab4, 0x0a02, 0x08e5, 0x083e, 0x062e, 0x03ba,
+ 0x0292, 0x00bc, 0xff01, 0xfeba, 0xfef9, 0xffc2,
+ 0xfe64, 0xfb27, 0xfb9f, 0xfc58, 0xf960, 0xf909,
+ 0xfb19, 0xfb5a, 0xfc38, 0xfc43, 0xfa60, 0xfa1f,
+ 0xf939, 0xf784, 0xf8bd, 0xf959, 0xf89f, 0xfa36,
+ 0xfb73, 0xfc32, 0xfe9b, 0xfea6, 0xfc73, 0xfbfb,
+ 0xfb00, 0xf8d2, 0xf92a, 0xfaf6, 0xfa9f, 0xf987,
+ 0xfb05, 0xfdb1, 0xff1b, 0x014b, 0x03bf, 0x0267,
+ 0xff88, 0xfe6f, 0xfc42, 0xf97b, 0xf9b2, 0xfa58,
+ 0xf8f7, 0xf874, 0xf96f, 0xf9ea, 0xfa86, 0xfbca,
+ 0xfc4b, 0xfbf9, 0xfbee, 0xfc2d, 0xfc3d, 0xfbe8,
+ 0xfb13, 0xfa62, 0xfb18, 0xfcb9, 0xfd20, 0xfc74,
+ 0xfcda, 0xfe42, 0xff9b, 0x015d, 0x02ea, 0x02a9,
+ 0x021e, 0x03d2, 0x0643, 0x06f7, 0x074f, 0x0865,
+ 0x0869, 0x0779, 0x0724, 0x0701, 0x0707, 0x0798,
+ 0x07a5, 0x069f, 0x0577, 0x05eb, 0x07eb, 0x08d9,
+ 0x093e, 0x0adf, 0x0b6c, 0x0b61, 0x0cd4, 0x0c40,
+ 0x096b, 0x0867, 0x078a, 0x04fa, 0x02cf, 0x01ed,
+ 0x0330, 0x063e, 0x08cd, 0x0af5, 0x0c35, 0x0b05,
+ 0x0959, 0x08e6, 0x0883, 0x06e1, 0x044a, 0x02c7,
+ 0x0230, 0x0135, 0x0194, 0x02cc, 0x0282, 0x01c5,
+ 0x0046, 0xfe10, 0xfe5e, 0xff9d, 0xfef9, 0xfe4b,
+ 0xfe65, 0xff93, 0x01ad, 0x0205, 0x012d, 0x00c0,
+ 0x000d, 0x00c9, 0x0232, 0x0108, 0xffa5, 0xff55,
+ 0xfe2a, 0xfe33, 0xffb2, 0xff2c, 0xfd03, 0xfb24,
+ 0xf9a7, 0xf8ee, 0xf935, 0xfa04, 0xfb7e, 0xfdee,
+ 0xff92, 0xff38, 0xffa1, 0x0139, 0x017b, 0x0200,
+ 0x032e, 0x0371, 0x05cc, 0x097b, 0x0a73, 0x0a4a,
+ 0x0889, 0x04a0, 0x02b5, 0x0037, 0xfb39, 0xf983,
+ 0xf9a7, 0xf8a1, 0xf977, 0xfa97, 0xfb85, 0xfe13,
+ 0xfdee, 0xfb9c, 0xfae2, 0xf94f, 0xf89c, 0xfa72,
+ 0xfa62, 0xfb3d, 0x0030, 0x03fc, 0x05ba, 0x073a,
+ 0x0723, 0x06e9, 0x07ba, 0x085e, 0x08ce, 0x0825,
+ 0x0607, 0x03fa, 0x026c, 0x019d, 0x01b2, 0x0263,
+ 0x03b3, 0x04ab, 0x05e1, 0x08c5, 0x0b89, 0x0d5d,
+ 0x0e33, 0x0c1d, 0x092b, 0x079c, 0x0553, 0x03c5,
+ 0x04c5, 0x05b2, 0x0680, 0x079f, 0x07a3, 0x085a,
+ 0x0a2f, 0x0a46, 0x0877, 0x05b5, 0x0251, 0xff5d,
+ 0xfdd2, 0xfeb5, 0x0141, 0x02d4, 0x032a, 0x02af,
+ 0x0110, 0x0037, 0x0084, 0xff68, 0xfdf2, 0xfedc,
+ 0x0039, 0x0019, 0x00aa, 0x02cc, 0x045e, 0x0483,
+ 0x0365, 0x019c, 0x009a, 0xff85, 0xfd54, 0xfbc5,
+ 0xfa65, 0xf868, 0xf878, 0xfa2e, 0xfb2d, 0xfcb0,
+ 0xfe8d, 0xfecd, 0xfdfa, 0xfcc1, 0xfb47, 0xf9b3,
+ 0xf7d5, 0xf76a, 0xf970, 0xfb84, 0xfcc8, 0xfe4c,
+ 0xff64, 0xff54, 0xfeff, 0xfee2, 0xfe38, 0xfd3c,
+ 0xfd29, 0xfd88, 0xfdc0, 0xfe3d, 0xfe8e, 0xff5f,
+ 0x018b, 0x0374, 0x0539, 0x0813, 0x0a42, 0x0b03,
+ 0x0b78, 0x0b84, 0x0ac2, 0x091e, 0x077c, 0x0662,
+ 0x0429, 0x016c, 0x001f, 0xffa8, 0x00cf, 0x0386,
+ 0x0446, 0x02c5, 0x0043, 0xfd5a, 0xfcf0, 0xfe47,
+ 0xfdd3, 0xfccb, 0xfcf5, 0xfe55, 0x00bf, 0x0290,
+ 0x03f6, 0x057c, 0x062b, 0x07c3, 0x0942, 0x0713,
+ 0x048b, 0x046b, 0x0433, 0x0492, 0x0696, 0x08d2,
+ 0x09ef, 0x0887, 0x070e, 0x07d2, 0x07db, 0x07db,
+ 0x09cd, 0x0b12, 0x0cb2, 0x0f8d, 0x0fe4, 0x0e79,
+ 0x0d15, 0x0add, 0x097d, 0x08d9, 0x07f7, 0x092f,
+ 0x0b94, 0x0cf4, 0x0e86, 0x1068, 0x125f, 0x139c,
+ 0x124b, 0x10e9, 0x10b7, 0x0e9a, 0x0c17, 0x0add,
+ 0x0862, 0x0653, 0x067c, 0x05e4, 0x048f, 0x03c1,
+ 0x0231, 0x017f, 0x0386, 0x05ec, 0x076c, 0x08a4,
+ 0x08d0, 0x0819, 0x07d6, 0x076d, 0x05da, 0x03d4,
+ 0x0275, 0x021b, 0x0221, 0x01eb, 0x0281, 0x0442,
+ 0x04eb, 0x0361, 0x016c, 0xfff9, 0xfe40, 0xfccc,
+ 0xfc7b, 0xfba7, 0xf9ad, 0xf909, 0xf929, 0xf747,
+ 0xf55e, 0xf54e, 0xf4b2, 0xf32b, 0xf23f, 0xf1eb,
+ 0xf244, 0xf2ab, 0xf2ce, 0xf3cd, 0xf4a9, 0xf51c,
+ 0xf708, 0xf89c, 0xf888, 0xf917, 0xf96e, 0xf8d8,
+ 0xf945, 0xf990, 0xf978, 0xfab3, 0xfb20, 0xfa31,
+ 0xfaa8, 0xfc3e, 0xfdf4, 0xff80, 0x0064, 0x01ef,
+ 0x036c, 0x0301, 0x031e, 0x04cc, 0x066e, 0x08ee,
+ 0x0b32, 0x0a9a, 0x085b, 0x0579, 0x02df, 0x02ef,
+ 0x045d, 0x0532, 0x0618, 0x061d, 0x04fc, 0x049f,
+ 0x0508, 0x05f2, 0x0784, 0x0904, 0x0ad1, 0x0c7a,
+ 0x0c6f, 0x0b6d, 0x09dc, 0x07d3, 0x0779, 0x07f4,
+ 0x0698, 0x0530, 0x05b8, 0x070f, 0x0857, 0x08d5,
+ 0x07f1, 0x06b2, 0x05e6, 0x04e7, 0x02ac, 0xff8c,
+ 0xfd88, 0xfd71, 0xfe85, 0x007c, 0x0293, 0x042e,
+ 0x05f0, 0x06ab, 0x050f, 0x03aa, 0x03d1, 0x0288,
+ 0xff17, 0xfc43, 0xfaf9, 0xfb29, 0xfd87, 0x00f9,
+ 0x0402, 0x06b3, 0x086f, 0x0905, 0x097f, 0x0965,
+ 0x08fa, 0x0911, 0x0790, 0x0512, 0x0524, 0x0589,
+ 0x03d4, 0x0343, 0x0421, 0x03f3, 0x0346, 0x02ae,
+ 0x0244, 0x024b, 0x01cf, 0x01a1, 0x0288, 0x0265,
+ 0x016c, 0x00d4, 0xff0a, 0xfd0c, 0xfd73, 0xfee7,
+ 0xffab, 0xffa1, 0xfe95, 0xfdcd, 0xfe4e, 0xfea9,
+ 0xfea0, 0xffce, 0x01ed, 0x0365, 0x041e, 0x04c3,
+ 0x0517, 0x044f, 0x0218, 0xffdf, 0xff4c, 0xff06,
+ 0xfdd3, 0xfd5f, 0xfd73, 0xfd01, 0xfe03, 0x0046,
+ 0x0173, 0x0227, 0x0228, 0x0036, 0xfe3f, 0xfcfb,
+ 0xfb74, 0xfb47, 0xfcb2, 0xfd3f, 0xfcd1, 0xfce2,
+ 0xfd4d, 0xfcf9, 0xfba0, 0xf97c, 0xf692, 0xf410,
+ 0xf2dc, 0xf17e, 0xf02c, 0xf019, 0xef46, 0xedd7,
+ 0xee20, 0xee3a, 0xedb9, 0xef17, 0xf05a, 0xf037,
+ 0xf122, 0xf243, 0xf2b5, 0xf485, 0xf70c, 0xf8a5,
+ 0xf9b8, 0xfa53, 0xfb03, 0xfc74, 0xfdea, 0xff87,
+ 0x017a, 0x02cd, 0x0416, 0x05de, 0x06fd, 0x0799,
+ 0x07cd, 0x069f, 0x05b9, 0x06b0, 0x0798, 0x081a,
+ 0x099f, 0x0ad3, 0x0b4b, 0x0cd5, 0x0e84, 0x0eee,
+ 0x0ee4, 0x0e23, 0x0caf, 0x0bec, 0x0af9, 0x0907,
+ 0x081f, 0x087f, 0x0853, 0x0811, 0x08bb, 0x0916,
+ 0x087b, 0x0851, 0x08e5, 0x092a, 0x09a5, 0x0ae9,
+ 0x0b90, 0x0b07, 0x0a5d, 0x0a2e, 0x0ab3, 0x0bac,
+ 0x0c63, 0x0c7a, 0x0baa, 0x0a19, 0x080b, 0x0525,
+ 0x0268, 0x00e1, 0xfee3, 0xfc6f, 0xfc5d, 0xfe70,
+ 0x0024, 0x00bb, 0x0053, 0xff83, 0xff2e, 0xff35,
+ 0xfef5, 0xfe2a, 0xfd10, 0xfc0e, 0xfb03, 0xf9f6,
+ 0xf971, 0xf95a, 0xf8f6, 0xf7fe, 0xf788, 0xf927,
+ 0xfc48, 0xfedd, 0x0009, 0x0036, 0x0085, 0x0160,
+ 0x018a, 0x00ea, 0x00a7, 0x0047, 0xff35, 0xfe07,
+ 0xfcc0, 0xfb4c, 0xfa0a, 0xf91a, 0xf8e4, 0xfa15,
+ 0xfc57, 0xfe28, 0xfef8, 0x0030, 0x023d, 0x03a3,
+ 0x03d3, 0x0300, 0x0164, 0x0029, 0xffb4, 0xff50,
+ 0xff64, 0x003f, 0x011e, 0x01e9, 0x02e5, 0x039a,
+ 0x03e3, 0x0479, 0x05c7, 0x0732, 0x082a, 0x08a7,
+ 0x08a5, 0x083e, 0x07d0, 0x084b, 0x0a52, 0x0c4e,
+ 0x0cc3, 0x0c9c, 0x0c5e, 0x0c4f, 0x0d48, 0x0e14,
+ 0x0e00, 0x0e91, 0x0f7b, 0x0fd7, 0x0f6c, 0x0d11,
+ 0x0a60, 0x0a03, 0x0a05, 0x08d4, 0x0782, 0x0547,
+ 0x0230, 0x0005, 0xfe69, 0xfcf7, 0xfc3c, 0xfbc3,
+ 0xfbae, 0xfc29, 0xfbf9, 0xfb00, 0xfa3d, 0xf9ca,
+ 0xf9b9, 0xfa23, 0xfa73, 0xfab6, 0xfb8a, 0xfcc5,
+ 0xfe38, 0xffdd, 0x00c5, 0x00b9, 0x00af, 0x005c,
+ 0xff91, 0xffe7, 0x0159, 0x0248, 0x0299, 0x0254,
+ 0x0138, 0x003d, 0xff77, 0xfdef, 0xfccd, 0xfddb,
+ 0x002f, 0x01eb, 0x0306, 0x0447, 0x05c0, 0x0761,
+ 0x08d4, 0x096f, 0x097d, 0x0958, 0x085a, 0x06ab,
+ 0x055e, 0x0473, 0x031b, 0x0126, 0xff14, 0xfd17,
+ 0xfb35, 0xfa1a, 0xf9e9, 0xf9b2, 0xf995, 0xfa33,
+ 0xfac9, 0xfb03, 0xfbe5, 0xfd51, 0xfde2, 0xfd90,
+ 0xfd77, 0xfd5c, 0xfcaf, 0xfcdb, 0xff18, 0x026b,
+ 0x0563, 0x070f, 0x072a, 0x0669, 0x0570, 0x0450,
+ 0x030b, 0x0205, 0x0224, 0x0312, 0x030e, 0x01dc,
+ 0x0096, 0xfff8, 0x00e4, 0x0329, 0x052a, 0x06b3,
+ 0x083d, 0x08b0, 0x0753, 0x0511, 0x02d7, 0x00da,
+ 0xff35, 0xfe1f, 0xfdf2, 0xfeef, 0x0086, 0x01f6,
+ 0x0347, 0x0477, 0x0521, 0x04c3, 0x0250, 0xfe6b,
+ 0xfbfe, 0xfba0, 0xfc06, 0xfd82, 0xff63, 0x0044,
+ 0x0130, 0x0243, 0x0203, 0x00de, 0xffb1, 0xfefe,
+ 0xffc8, 0x010c, 0x00ff, 0x0074, 0x00bd, 0x019b,
+ 0x02b9, 0x0403, 0x04d5, 0x0491, 0x03ef, 0x0408,
+ 0x04c9, 0x0645, 0x08cd, 0x0b31, 0x0c88, 0x0dc4,
+ 0x0f77, 0x110b, 0x121b, 0x12c5, 0x132a, 0x12e2,
+ 0x11a6, 0x1011, 0x0e95, 0x0d70, 0x0d1e, 0x0d41,
+ 0x0d47, 0x0d8c, 0x0dec, 0x0db9, 0x0d73, 0x0d6c,
+ 0x0c8a, 0x0a8a, 0x087c, 0x067c, 0x0421, 0x020c,
+ 0x00eb, 0x013d, 0x0369, 0x05b3, 0x05ea, 0x04ee,
+ 0x03ac, 0x0122, 0xfe4d, 0xfce0, 0xfbe1, 0xfb02,
+ 0xfb84, 0xfc97, 0xfce3, 0xfcb7, 0xfcb2, 0xfd5d,
+ 0xfe41, 0xfde8, 0xfcbc, 0xfb8d, 0xf915, 0xf579,
+ 0xf2fe, 0xf238, 0xf283, 0xf3cd, 0xf610, 0xf8ed,
+ 0xfb2f, 0xfbde, 0xfbe8, 0xfc81, 0xfddc, 0xff73,
+ 0xffc4, 0xfe6f, 0xfce7, 0xfb62, 0xf9fa, 0xfa79,
+ 0xfcd4, 0xff30, 0x0108, 0x0217, 0x01d6, 0x00cf,
+ 0xffff, 0x002f, 0x018c, 0x0355, 0x0506, 0x060b,
+ 0x05d4, 0x0520, 0x045c, 0x02cb, 0x005a, 0xfd52,
+ 0xfa82, 0xf969, 0xf98c, 0xf9f0, 0xfb3f, 0xfccf,
+ 0xfdfb, 0x0093, 0x049d, 0x07c3, 0x0908, 0x0887,
+ 0x071b, 0x05dd, 0x04d7, 0x0445, 0x044d, 0x0474,
+ 0x04e0, 0x04c3, 0x038f, 0x0374, 0x04d3, 0x0562,
+ 0x0506, 0x04cc, 0x0505, 0x056c, 0x051d, 0x04d8,
+ 0x055c, 0x0526, 0x047a, 0x045e, 0x042b, 0x04c7,
+ 0x0642, 0x06a2, 0x067f, 0x0645, 0x0550, 0x057a,
+ 0x06a3, 0x0688, 0x062c, 0x06ac, 0x0781, 0x08cb,
+ 0x09cd, 0x09e8, 0x09a6, 0x08a9, 0x06db, 0x0546,
+ 0x048b, 0x044d, 0x039f, 0x02e8, 0x0320, 0x03af,
+ 0x047e, 0x05b4, 0x0628, 0x05e1, 0x056b, 0x04ea,
+ 0x0533, 0x054d, 0x03ee, 0x0226, 0x0025, 0xfe87,
+ 0xfecc, 0xff27, 0xfeac, 0xfee0, 0xfed6, 0xfec8,
+ 0x006c, 0x020e, 0x02b8, 0x038a, 0x0409, 0x044a,
+ 0x054c, 0x06b3, 0x075e, 0x0624, 0x037d, 0x011d,
+ 0xff7b, 0xfe94, 0xfe0b, 0xfd37, 0xfcb8, 0xfcd1,
+ 0xfd6e, 0xfeda, 0xff8f, 0xff36, 0xff7a, 0xffbe,
+ 0x0011, 0x013a, 0x00c4, 0xfe46, 0xfb95, 0xf810,
+ 0xf4c0, 0xf3d1, 0xf413, 0xf44e, 0xf415, 0xf324,
+ 0xf2e4, 0xf369, 0xf3c6, 0xf493, 0xf55b, 0xf5a0,
+ 0xf64a, 0xf6b7, 0xf638, 0xf559, 0xf404, 0xf2eb,
+ 0xf2da, 0xf2f5, 0xf2e2, 0xf2ca, 0xf25b, 0xf19f,
+ 0xf0a2, 0xf00e, 0xf12f, 0xf362, 0xf556, 0xf78b,
+ 0xfa41, 0xfc58, 0xfd17, 0xfd00, 0xfd06, 0xfd43,
+ 0xfd4d, 0xfde7, 0xffee, 0x023e, 0x0397, 0x0490,
+ 0x05b4, 0x06bf, 0x079f, 0x07e5, 0x0782, 0x076d,
+ 0x0792, 0x07c0, 0x08e9, 0x0a40, 0x0a10, 0x08bf,
+ 0x072d, 0x060a, 0x05cc, 0x0526, 0x0356, 0x01bb,
+ 0x00f9, 0x00df, 0x01ad, 0x02fe, 0x043c, 0x05d9,
+ 0x0855, 0x0b22, 0x0d6f, 0x0eff, 0x0f26, 0x0db6,
+ 0x0cb2, 0x0cc2, 0x0bf6, 0x0a6d, 0x0934, 0x0746,
+ 0x04ec, 0x03c5, 0x0386, 0x03e8, 0x058a, 0x07d9,
+ 0x0a2d, 0x0c38, 0x0d33, 0x0d50, 0x0d1a, 0x0bee,
+ 0x0a01, 0x089f, 0x0822, 0x08a2, 0x09de, 0x0ab9,
+ 0x0b08, 0x0afe, 0x09f5, 0x0847, 0x0725, 0x06f7,
+ 0x074e, 0x06b8, 0x04e7, 0x03fe, 0x0489, 0x04e8,
+ 0x049f, 0x0383, 0x00d1, 0xfcef, 0xf941, 0xf68e,
+ 0xf49c, 0xf3c0, 0xf4b5, 0xf610, 0xf69a, 0xf7f5,
+ 0xfa91, 0xfce5, 0xfe8c, 0xff51, 0xfef1, 0xfdc3,
+ 0xfbec, 0xfae9, 0xfc13, 0xfd96, 0xfe81, 0x0041,
+ 0x0205, 0x0209, 0x00cf, 0xff89, 0xff3a, 0x002a,
+ 0x012e, 0x023f, 0x049d, 0x0780, 0x0969, 0x0ac0,
+ 0x0b99, 0x0b2b, 0x0a21, 0x0973, 0x0931, 0x098f,
+ 0x09cc, 0x088c, 0x06b0, 0x05d0, 0x0584, 0x0546,
+ 0x05a0, 0x0679, 0x06cc, 0x0670, 0x0672, 0x0715,
+ 0x0799, 0x07fd, 0x0887, 0x0898, 0x0799, 0x05f3,
+ 0x0442, 0x027b, 0x00ed, 0x006f, 0x007b, 0x0025,
+ 0xffd0, 0xff55, 0xfe5c, 0xfde2, 0xfdf3, 0xfd7c,
+ 0xfcc4, 0xfcc3, 0xfd6e, 0xfe17, 0xfeae, 0xff65,
+ 0xff76, 0xfe76, 0xfced, 0xfb11, 0xf9f3, 0xfac8,
+ 0xfcbe, 0xff35, 0x0244, 0x0522, 0x0773, 0x08c5,
+ 0x08c4, 0x08b6, 0x0867, 0x06d2, 0x0585, 0x0504,
+ 0x0485, 0x0503, 0x060b, 0x0637, 0x0642, 0x060c,
+ 0x04a4, 0x02cf, 0x00ed, 0xfeb2, 0xfc43, 0xf99f,
+ 0xf775, 0xf6bf, 0xf733, 0xf876, 0xfa6c, 0xfbc8,
+ 0xfb66, 0xfab0, 0xfba3, 0xfd9c, 0xfee5, 0xff1b,
+ 0xfe5a, 0xfcf9, 0xfbd7, 0xfb68, 0xfbd4, 0xfd44,
+ 0xff51, 0x014a, 0x0275, 0x0282, 0x0212, 0x01ad,
+ 0x015c, 0x0159, 0x01ae, 0x018a, 0x006a, 0xffeb,
+ 0x01c4, 0x04bf, 0x0746, 0x094d, 0x0a09, 0x0980,
+ 0x0925, 0x087a, 0x0702, 0x05ec, 0x04fa, 0x03fe,
+ 0x045e, 0x05f9, 0x07a2, 0x0909, 0x09ea, 0x0a4b,
+ 0x0a53, 0x0982, 0x07ae, 0x0571, 0x03d2, 0x03bf,
+ 0x04b3, 0x057b, 0x0632, 0x06f6, 0x06f3, 0x0640,
+ 0x056e, 0x03f1, 0x019a, 0xff29, 0xfd14, 0xfc02,
+ 0xfc19, 0xfc1a, 0xfbcb, 0xfbf2, 0xfc6f, 0xfd70,
+ 0xfef9, 0xffb9, 0xff30, 0xfdac, 0xfb39, 0xf8aa,
+ 0xf69a, 0xf4f2, 0xf42d, 0xf445, 0xf4c1, 0xf5b2,
+ 0xf6ab, 0xf7c6, 0xfa35, 0xfd1c, 0xfe42, 0xfdd4,
+ 0xfd74, 0xfd63, 0xfd26, 0xfcda, 0xfc56, 0xfb34,
+ 0xfa33, 0xfa33, 0xfb1a, 0xfcc9, 0xfed6, 0x0010,
+ 0xfff1, 0xff37, 0xfee3, 0xff00, 0xfef8, 0xff01,
+ 0xff69, 0xffcc, 0x0050, 0x01a4, 0x03b2, 0x054f,
+ 0x04fb, 0x02b0, 0x0009, 0xfe75, 0xfe8b, 0xffaf,
+ 0x00b6, 0x01a2, 0x028e, 0x0335, 0x0426, 0x0528,
+ 0x0540, 0x04b8, 0x03b6, 0x023f, 0x0183, 0x01ac,
+ 0x01c1, 0x01ec, 0x0275, 0x031a, 0x0444, 0x0623,
+ 0x07a7, 0x07a6, 0x05fa, 0x0390, 0x0210, 0x026a,
+ 0x038d, 0x04b4, 0x06e1, 0x09f3, 0x0c45, 0x0d2e,
+ 0x0cd8, 0x0bf9, 0x0b80, 0x0acd, 0x08e1, 0x0663,
+ 0x0432, 0x0267, 0x00f9, 0xffeb, 0xff2e, 0xfe99,
+ 0xfe74, 0xff68, 0x0179, 0x0442, 0x06cc, 0x07aa,
+ 0x0728, 0x0655, 0x04d4, 0x0340, 0x031c, 0x03a0,
+ 0x03ad, 0x039b, 0x02ff, 0x0180, 0x00a7, 0x0169,
+ 0x030f, 0x0536, 0x078e, 0x0914, 0x0981, 0x0968,
+ 0x08f9, 0x0813, 0x06bc, 0x0583, 0x04fc, 0x04d5,
+ 0x04ef, 0x05b7, 0x068d, 0x06b9, 0x0697, 0x06ce,
+ 0x0864, 0x0b34, 0x0d1a, 0x0d58, 0x0ca3, 0x0b15,
+ 0x09b4, 0x093b, 0x0876, 0x0747, 0x0668, 0x0560,
+ 0x048b, 0x04e0, 0x05e0, 0x06b1, 0x06d5, 0x0613,
+ 0x04e6, 0x0385, 0x01e7, 0x00ec, 0x00f0, 0x0126,
+ 0x019b, 0x02a6, 0x0349, 0x032f, 0x03a9, 0x0521,
+ 0x06a0, 0x07c1, 0x08ce, 0x098f, 0x08e1, 0x0668,
+ 0x03de, 0x02c7, 0x0310, 0x0478, 0x061d, 0x06af,
+ 0x06a4, 0x06ee, 0x0749, 0x077c, 0x074f, 0x06bb,
+ 0x06a0, 0x070a, 0x075a, 0x07dd, 0x0825, 0x0708,
+ 0x0553, 0x04d1, 0x059d, 0x06c7, 0x07d0, 0x0859,
+ 0x080f, 0x0785, 0x076a, 0x072a, 0x05f2, 0x0397,
+ 0x0049, 0xfd41, 0xfbbd, 0xfb0b, 0xfa90, 0xfaa4,
+ 0xfa45, 0xf8ab, 0xf6f2, 0xf5c8, 0xf583, 0xf6ad,
+ 0xf803, 0xf85f, 0xf8e1, 0xf9bf, 0xf984, 0xf833,
+ 0xf6f2, 0xf5fe, 0xf511, 0xf43d, 0xf3b5, 0xf378,
+ 0xf377, 0xf37b, 0xf307, 0xf1f3, 0xf0ba, 0xefea,
+ 0xef57, 0xee08, 0xebee, 0xea7a, 0xea70, 0xebda,
+ 0xeee0, 0xf247, 0xf4a4, 0xf67a, 0xf80c, 0xf8a8,
+ 0xf816, 0xf642, 0xf3cf, 0xf242, 0xf1f1, 0xf27f,
+ 0xf413, 0xf65a, 0xf8a7, 0xfab1, 0xfc7b, 0xfe4f,
+ 0xffee, 0x005c, 0xff7f, 0xfe69, 0xfde1, 0xfdda,
+ 0xfe5d, 0xff99, 0x00b4, 0x0080, 0xff74, 0xff05,
+ 0xffde, 0x0183, 0x0340, 0x0518, 0x0706, 0x084a,
+ 0x0911, 0x0a3b, 0x0b5c, 0x0bef, 0x0c8e, 0x0d8c,
+ 0x0ebe, 0x0fe4, 0x1065, 0x1048, 0x102f, 0x0ff2,
+ 0x0f3b, 0x0ea0, 0x0ef6, 0x1042, 0x11c8, 0x132f,
+ 0x14a0, 0x1588, 0x1577, 0x151e, 0x1456, 0x123d,
+ 0x0f51, 0x0cb6, 0x0b72, 0x0c4f, 0x0eba, 0x11a4,
+ 0x13fb, 0x1454, 0x135e, 0x12e8, 0x121f, 0x0fdc,
+ 0x0cc4, 0x092b, 0x0537, 0x01a0, 0xff76, 0xffa7,
+ 0x0108, 0x01ce, 0x01ff, 0x0105, 0xfe9a, 0xfcff,
+ 0xfcf5, 0xfd0a, 0xfd07, 0xfd21, 0xfd50, 0xfdcd,
+ 0xfe59, 0xfeb1, 0xfe85, 0xfdeb, 0xfdfe, 0xfe05,
+ 0xfc3f, 0xf9e8, 0xf891, 0xf7ac, 0xf710, 0xf6de,
+ 0xf6e9, 0xf7e1, 0xf9eb, 0xfbea, 0xfd0b, 0xfd3d,
+ 0xfd08, 0xfd18, 0xfd58, 0xfd30, 0xfc84, 0xfb80,
+ 0xfa1a, 0xf8a8, 0xf7eb, 0xf7e0, 0xf84a, 0xf980,
+ 0xfb75, 0xfde7, 0x00c7, 0x03a0, 0x0615, 0x07d7,
+ 0x08ab, 0x099a, 0x0b33, 0x0c3f, 0x0c94, 0x0d1f,
+ 0x0d8f, 0x0d5f, 0x0cae, 0x0b6c, 0x09b0, 0x07ce,
+ 0x063e, 0x05c9, 0x0671, 0x0751, 0x086b, 0x0a19,
+ 0x0b2b, 0x0a99, 0x0995, 0x0957, 0x0922, 0x0801,
+ 0x0647, 0x049f, 0x02fe, 0x0164, 0x007c, 0x0029,
+ 0xffa0, 0xff20, 0xff30, 0xffb8, 0x0098, 0x0112,
+ 0x0056, 0xff07, 0xfddd, 0xfc9e, 0xfb30, 0xfa12,
+ 0xf9b8, 0xf9e6, 0xfa81, 0xfbc9, 0xfccd, 0xfcdb,
+ 0xfd1b, 0xfe1a, 0xff54, 0x00b1, 0x01f5, 0x0314,
+ 0x043a, 0x04c2, 0x0484, 0x0436, 0x03c7, 0x02b9,
+ 0x0135, 0x0074, 0x0158, 0x02af, 0x0350, 0x035a,
+ 0x0259, 0x0057, 0xfe7c, 0xfd44, 0xfcd0, 0xfd20,
+ 0xfdca, 0xfed6, 0x0046, 0x01e8, 0x03e0, 0x05cf,
+ 0x0725, 0x07a3, 0x070f, 0x05ed, 0x04cc, 0x03c8,
+ 0x03bc, 0x04bf, 0x055e, 0x055e, 0x058a, 0x05f1,
+ 0x065c, 0x06ef, 0x07ed, 0x08fe, 0x09bf, 0x0a96,
+ 0x0ae9, 0x09c9, 0x0852, 0x0783, 0x072e, 0x0756,
+ 0x0709, 0x0563, 0x0390, 0x029c, 0x0255, 0x0238,
+ 0x016e, 0x002b, 0xffb5, 0x002f, 0x00cf, 0x00f0,
+ 0x0050, 0xff23, 0xfd31, 0xf9f6, 0xf65d, 0xf40f,
+ 0xf2e7, 0xf163, 0xef71, 0xee54, 0xee45, 0xeee5,
+ 0xf07b, 0xf279, 0xf382, 0xf390, 0xf3a1, 0xf3f3,
+ 0xf40c, 0xf3c5, 0xf361, 0xf2dd, 0xf236, 0xf225,
+ 0xf320, 0xf48b, 0xf5d4, 0xf6a2, 0xf679, 0xf5ee,
+ 0xf5fa, 0xf639, 0xf6d1, 0xf8c7, 0xfb66, 0xfdf1,
+ 0x00bc, 0x02cd, 0x03a2, 0x0449, 0x047f, 0x041c,
+ 0x043e, 0x0503, 0x063d, 0x07ac, 0x0849, 0x07ef,
+ 0x06ef, 0x05d0, 0x05f5, 0x0701, 0x07b6, 0x0880,
+ 0x0927, 0x0921, 0x091a, 0x08cf, 0x07fa, 0x073b,
+ 0x066c, 0x05af, 0x052a, 0x046a, 0x03c1, 0x028e,
+ 0x0006, 0xfe16, 0xfe22, 0xff8b, 0x01e7, 0x03f3,
+ 0x049a, 0x04df, 0x05be, 0x075c, 0x0888, 0x0727,
+ 0x03e5, 0x00fb, 0xfeb2, 0xfd26, 0xfcbc, 0xfd12,
+ 0xfe24, 0xffd0, 0x0166, 0x02c5, 0x03e6, 0x04c4,
+ 0x05c5, 0x06e6, 0x07b2, 0x0805, 0x07f1, 0x0768,
+ 0x0658, 0x0524, 0x0447, 0x03e0, 0x03ed, 0x0409,
+ 0x03a7, 0x032d, 0x0363, 0x046e, 0x05b7, 0x0664,
+ 0x063e, 0x056a, 0x0419, 0x0313, 0x0277, 0x0170,
+ 0x0081, 0x00c0, 0x01bd, 0x02cc, 0x03ce, 0x0438,
+ 0x03c8, 0x037b, 0x045d, 0x062e, 0x0804, 0x0966,
+ 0x0a4c, 0x0ae4, 0x0b3c, 0x0b44, 0x0b25, 0x0ac6,
+ 0x0a14, 0x099a, 0x094a, 0x08bb, 0x087f, 0x0914,
+ 0x0a53, 0x0bc7, 0x0ca2, 0x0d08, 0x0d74, 0x0d38,
+ 0x0c62, 0x0b9d, 0x0a7d, 0x093b, 0x086d, 0x0775,
+ 0x0657, 0x05d7, 0x05ee, 0x0623, 0x05bf, 0x048b,
+ 0x031d, 0x011c, 0xfe24, 0xfba9, 0xfb3c, 0xfcbe,
+ 0xfeec, 0x003c, 0xffde, 0xfe64, 0xfd06, 0xfc06,
+ 0xfb35, 0xfb50, 0xfc7e, 0xfd8f, 0xfe09, 0xfdef,
+ 0xfcfc, 0xfc31, 0xfd20, 0xff7a, 0x0169, 0x01e4,
+ 0x01e8, 0x0320, 0x059e, 0x07ba, 0x07f3, 0x0695,
+ 0x04d8, 0x033b, 0x0228, 0x01e2, 0x01d9, 0x026c,
+ 0x043d, 0x0636, 0x07f1, 0x0a65, 0x0d26, 0x0ed4,
+ 0x0ef8, 0x0e46, 0x0dc2, 0x0d39, 0x0be7, 0x09ef,
+ 0x0796, 0x04ef, 0x0280, 0x0123, 0x016a, 0x02ca,
+ 0x043f, 0x0548, 0x058e, 0x0563, 0x057d, 0x05ac,
+ 0x05d9, 0x0605, 0x055f, 0x03f0, 0x0252, 0x008a,
+ 0xff44, 0xff0e, 0xff62, 0xff72, 0xfe46, 0xfc40,
+ 0xfb36, 0xfb3c, 0xfb58, 0xfb60, 0xfb06, 0xfabb,
+ 0xfb96, 0xfd79, 0xfff4, 0x020c, 0x0220, 0x008c,
+ 0xfec1, 0xfd50, 0xfcfa, 0xfdc3, 0xfe4f, 0xfe2e,
+ 0xfdd5, 0xfd3d, 0xfc72, 0xfbaf, 0xfb01, 0xfac4,
+ 0xfb4c, 0xfc1f, 0xfc98, 0xfc99, 0xfc40, 0xfbce,
+ 0xfb64, 0xfb07, 0xfadd, 0xfa92, 0xf9ff, 0xf9b2,
+ 0xf8df, 0xf70b, 0xf644, 0xf6a6, 0xf621, 0xf546,
+ 0xf518, 0xf5a9, 0xf7ea, 0xfac1, 0xfc25, 0xfcb4,
+ 0xfc85, 0xfb0e, 0xf96d, 0xf7eb, 0xf64b, 0xf518,
+ 0xf420, 0xf3a3, 0xf463, 0xf5e4, 0xf808, 0xfad0,
+ 0xfd0f, 0xfe9c, 0x0017, 0x00ce, 0x0011, 0xfee0,
+ 0xfe67, 0xfe41, 0xfe2d, 0xff1e, 0x0071, 0x00ce,
+ 0x0137, 0x02c6, 0x0507, 0x079a, 0x09d1, 0x0aff,
+ 0x0b77, 0x0b77, 0x0afd, 0x0a53, 0x09e8, 0x0a13,
+ 0x0a33, 0x0978, 0x0889, 0x083c, 0x0896, 0x097c,
+ 0x0a6b, 0x0ae6, 0x0b0e, 0x0ab9, 0x09a7, 0x082b,
+ 0x06bb, 0x05ff, 0x067b, 0x077b, 0x07e2, 0x07f5,
+ 0x0891, 0x099c, 0x0a76, 0x0a8d, 0x09a1, 0x084a,
+ 0x071e, 0x0622, 0x054b, 0x03e8, 0x01c1, 0x0070,
+ 0x00bf, 0x0192, 0x01de, 0x015c, 0x00f2, 0x0148,
+ 0x015d, 0x014a, 0x0265, 0x03fc, 0x04d4, 0x04fa,
+ 0x0475, 0x0340, 0x0192, 0x0013, 0xffa0, 0xffe1,
+ 0x000e, 0x0001, 0xff57, 0xfddb, 0xfc2f, 0xfb5c,
+ 0xfbea, 0xfca9, 0xfca1, 0xfcb8, 0xfd43, 0xfde6,
+ 0xfe2c, 0xfcd5, 0xfa8e, 0xf926, 0xf7ea, 0xf684,
+ 0xf64a, 0xf771, 0xf9b4, 0xfc2c, 0xfdbc, 0xff80,
+ 0x01ee, 0x0361, 0x036b, 0x025f, 0x0060, 0xfe98,
+ 0xfe23, 0xff65, 0x020d, 0x04af, 0x064f, 0x06f2,
+ 0x067f, 0x0522, 0x03d6, 0x03af, 0x045d, 0x0495,
+ 0x04a2, 0x057b, 0x06c4, 0x082d, 0x08d7, 0x0776,
+ 0x05b7, 0x063f, 0x0889, 0x0abd, 0x0bdc, 0x0b8e,
+ 0x0a34, 0x08c4, 0x0839, 0x0845, 0x076e, 0x0587,
+ 0x03de, 0x0375, 0x045f, 0x05a9, 0x06b9, 0x0822,
+ 0x0991, 0x0a1a, 0x0a20, 0x0a24, 0x09fc, 0x0980,
+ 0x081c, 0x05bc, 0x03d6, 0x0345, 0x0323, 0x030c,
+ 0x0364, 0x038e, 0x02f8, 0x0223, 0x0126, 0x000b,
+ 0xff7d, 0xff00, 0xfdd8, 0xfcd5, 0xfc98, 0xfcc7,
+ 0xfd0a, 0xfcec, 0xfc3b, 0xfb88, 0xfb61, 0xfbaf,
+ 0xfbda, 0xfba2, 0xfb55, 0xfaef, 0xfa37, 0xf919,
+ 0xf70c, 0xf427, 0xf1e3, 0xf10a, 0xf157, 0xf2fe,
+ 0xf579, 0xf6b4, 0xf60f, 0xf561, 0xf5df, 0xf71b,
+ 0xf88c, 0xf9d9, 0xfad0, 0xfb48, 0xfb15, 0xfb47,
+ 0xfd55, 0x00a6, 0x034a, 0x03e9, 0x02d0, 0x01ff,
+ 0x029a, 0x03c8, 0x0487, 0x041b, 0x0280, 0x0110,
+ 0x00d0, 0x01b3, 0x02ec, 0x0341, 0x02ae, 0x01b7,
+ 0x001d, 0xfeb1, 0xfe82, 0xff33, 0x00a5, 0x0283,
+ 0x0381, 0x035e, 0x0299, 0x01be, 0x01af, 0x0231,
+ 0x0253, 0x01d9, 0x00b8, 0xff56, 0xfe44, 0xfd79,
+ 0xfd3e, 0xfda3, 0xfe1a, 0xff24, 0x0136, 0x0349,
+ 0x0472, 0x0470, 0x033a, 0x0133, 0xfeda, 0xfca4,
+ 0xfab8, 0xf8f7, 0xf794, 0xf637, 0xf461, 0xf346,
+ 0xf40d, 0xf62f, 0xf8e3, 0xfb44, 0xfc16, 0xfb4e,
+ 0xfa2a, 0xf9b9, 0xfa1c, 0xfb11, 0xfc69, 0xfd85,
+ 0xfe03, 0xfe61, 0xfe7b, 0xfd70, 0xfb9b, 0xfa63,
+ 0xfa88, 0xfb78, 0xfc82, 0xfdec, 0xff94, 0x0088,
+ 0x0103, 0x018f, 0x01e4, 0x027a, 0x03d8, 0x055c,
+ 0x06cd, 0x084f, 0x091c, 0x08e5, 0x08ba, 0x093f,
+ 0x09d4, 0x0a12, 0x0a1f, 0x0985, 0x0822, 0x073b,
+ 0x0770, 0x07fe, 0x0879, 0x08d7, 0x08f7, 0x091f,
+ 0x097f, 0x09fa, 0x0ac9, 0x0bda, 0x0c85, 0x0cc3,
+ 0x0d6a, 0x0ecb, 0x0fd6, 0x0f57, 0x0d95, 0x0b71,
+ 0x0940, 0x07fc, 0x08da, 0x0a87, 0x0a54, 0x0803,
+ 0x0560, 0x0407, 0x0465, 0x050b, 0x04a4, 0x03f3,
+ 0x0387, 0x02ef, 0x02ae, 0x0348, 0x0493, 0x0663,
+ 0x07c4, 0x07f4, 0x078d, 0x06d1, 0x05cc, 0x0507,
+ 0x0435, 0x02ed, 0x0175, 0x0002, 0xff11, 0xfec3,
+ 0xfe61, 0xfe39, 0xfed9, 0xff98, 0x0088, 0x0238,
+ 0x03f0, 0x052a, 0x05fa, 0x0629, 0x0629, 0x06ed,
+ 0x082b, 0x08f6, 0x0928, 0x08ed, 0x0842, 0x077a,
+ 0x071d, 0x071f, 0x070f, 0x06e8, 0x0713, 0x075a,
+ 0x06da, 0x057a, 0x03d2, 0x0252, 0x01ad, 0x01dd,
+ 0x015d, 0xffa8, 0xfdc8, 0xfc8f, 0xfc87, 0xfd92,
+ 0xfe9c, 0xff69, 0x007f, 0x01ce, 0x0332, 0x0476,
+ 0x04de, 0x0428, 0x0312, 0x02ad, 0x034b, 0x0449,
+ 0x04ed, 0x04b0, 0x0374, 0x0229, 0x0215, 0x0381,
+ 0x0585, 0x06e8, 0x0747, 0x06ea, 0x0627, 0x05c6,
+ 0x0634, 0x06af, 0x067b, 0x05bc, 0x04ff, 0x04d4,
+ 0x056b, 0x064f, 0x0691, 0x05b9, 0x0490, 0x03d0,
+ 0x0349, 0x02e1, 0x027c, 0x01cd, 0x00e0, 0x0000,
+ 0xffb9, 0x0061, 0x0165, 0x0248, 0x0323, 0x03d2,
+ 0x041f, 0x03f4, 0x0385, 0x0330, 0x0291, 0x018a,
+ 0x00d8, 0xfff3, 0xfe07, 0xfc25, 0xfb53, 0xfb46,
+ 0xfbcd, 0xfce8, 0xfe1d, 0xfefd, 0xffe7, 0x014d,
+ 0x0300, 0x04d0, 0x0615, 0x05b6, 0x0420, 0x0272,
+ 0x0112, 0x00ae, 0x0138, 0x018e, 0x019c, 0x01a4,
+ 0x01a8, 0x021c, 0x026b, 0x018e, 0x0027, 0xff79,
+ 0x0034, 0x01f2, 0x034c, 0x03a1, 0x02ed, 0x0143,
+ 0xffb2, 0xfede, 0xfe50, 0xfde5, 0xfd69, 0xfc82,
+ 0xfb12, 0xf91c, 0xf81f, 0xf97c, 0xfb8b, 0xfc82,
+ 0xfc5d, 0xfb1a, 0xf986, 0xf895, 0xf757, 0xf574,
+ 0xf413, 0xf35f, 0xf35d, 0xf45c, 0xf521, 0xf48a,
+ 0xf387, 0xf322, 0xf374, 0xf474, 0xf590, 0xf647,
+ 0xf70c, 0xf832, 0xf992, 0xfa74, 0xf9a7, 0xf7e7,
+ 0xf70d, 0xf6a5, 0xf60f, 0xf621, 0xf692, 0xf6fa,
+ 0xf807, 0xf9ae, 0xfbc3, 0xfdfe, 0xfefc, 0xfeb6,
+ 0xfed4, 0xffbb, 0x008b, 0x010c, 0x0200, 0x03c2,
+ 0x0554, 0x060d, 0x064f, 0x067b, 0x0706, 0x07f9,
+ 0x08c2, 0x099c, 0x0add, 0x0c1f, 0x0d87, 0x0ef0,
+ 0x0f75, 0x0f71, 0x0feb, 0x10bb, 0x113c, 0x110b,
+ 0x0fcf, 0x0dc4, 0x0bd8, 0x0ae0, 0x0b2c, 0x0c41,
+ 0x0ce3, 0x0cb3, 0x0c7a, 0x0c37, 0x0b80, 0x0b00,
+ 0x0b17, 0x0b54, 0x0b8a, 0x0b7a, 0x0ae4, 0x09e9,
+ 0x08b6, 0x07d9, 0x07dc, 0x0860, 0x089d, 0x0820,
+ 0x074f, 0x06f8, 0x0706, 0x0710, 0x06b8, 0x054f,
+ 0x0368, 0x0272, 0x0255, 0x0234, 0x01a5, 0x00a0,
+ 0xffa2, 0xfeea, 0xfea8, 0xff38, 0xffab, 0xff2d,
+ 0xfe98, 0xfdf8, 0xfcb4, 0xfbd4, 0xfc78, 0xfe17,
+ 0xff4e, 0xff87, 0xffab, 0x003f, 0x0099, 0x0062,
+ 0xff92, 0xfe29, 0xfc9b, 0xfae2, 0xf8e1, 0xf72f,
+ 0xf606, 0xf55a, 0xf57e, 0xf661, 0xf7b1, 0xf948,
+ 0xfadd, 0xfc79, 0xfe5b, 0x002a, 0x017d, 0x0241,
+ 0x0240, 0x01a6, 0x012c, 0x00d7, 0x0096, 0x0148,
+ 0x02bd, 0x0364, 0x02e4, 0x01de, 0x0094, 0xff22,
+ 0xfda6, 0xfce5, 0xfdbe, 0xff80, 0x0158, 0x032e,
+ 0x03fd, 0x0362, 0x023b, 0x009f, 0xff0e, 0xfe7f,
+ 0xfe2c, 0xfd2b, 0xfbd7, 0xfadc, 0xfb4c, 0xfd44,
+ 0xff17, 0xffbd, 0xff4f, 0xfe55, 0xfdf7, 0xfe5c,
+ 0xfe69, 0xfe0d, 0xfdfb, 0xfe41, 0xfec5, 0xff9a,
+ 0x00b9, 0x022a, 0x03d2, 0x0539, 0x061a, 0x06d1,
+ 0x07be, 0x08eb, 0x0a24, 0x0a7e, 0x08fb, 0x0638,
+ 0x03e6, 0x02fb, 0x035c, 0x0426, 0x0406, 0x0280,
+ 0x00df, 0x00c5, 0x022e, 0x03c2, 0x0461, 0x0414,
+ 0x03e7, 0x0450, 0x049b, 0x043c, 0x0311, 0x0191,
+ 0x00ee, 0x010c, 0x00c7, 0x0026, 0xff45, 0xfe18,
+ 0xfdc9, 0xfecf, 0x0053, 0x01c9, 0x0271, 0x01fc,
+ 0x017f, 0x0131, 0x0074, 0xffbe, 0xff59, 0xfe8e,
+ 0xfd63, 0xfd0e, 0xfe3b, 0x0000, 0x012f, 0x019c,
+ 0x01b3, 0x021e, 0x0374, 0x0541, 0x060d, 0x04c4,
+ 0x0244, 0x00c1, 0x00af, 0x00a2, 0x0063, 0x00b3,
+ 0x0112, 0x00f2, 0x00ce, 0x00a0, 0xffee, 0xff10,
+ 0xfe79, 0xfe33, 0xfe8b, 0xffa5, 0x0118, 0x024d,
+ 0x0226, 0x0040, 0xfe3c, 0xfd50, 0xfd15, 0xfd63,
+ 0xfe15, 0xfea8, 0xff6e, 0x00d2, 0x0265, 0x036b,
+ 0x0324, 0x019c, 0x0045, 0x0006, 0x002d, 0x001f,
+ 0x0016, 0x0015, 0xffee, 0xffe9, 0x0053, 0x013c,
+ 0x02b3, 0x0454, 0x0581, 0x0608, 0x05f2, 0x0589,
+ 0x04f2, 0x03d8, 0x028b, 0x016a, 0x0009, 0xff2e,
+ 0xffde, 0x00e8, 0x01a2, 0x0315, 0x050b, 0x06c1,
+ 0x084d, 0x0913, 0x083f, 0x0640, 0x042f, 0x031b,
+ 0x034a, 0x03d1, 0x03f6, 0x03ee, 0x03e1, 0x03b6,
+ 0x032f, 0x01aa, 0xff29, 0xfd1e, 0xfc83, 0xfca7,
+ 0xfcbd, 0xfcae, 0xfcb9, 0xfd31, 0xfe65, 0x0061,
+ 0x0244, 0x02c4, 0x0237, 0x01bf, 0x0192, 0x01fb,
+ 0x02e7, 0x0328, 0x02b8, 0x0265, 0x020e, 0x01ff,
+ 0x02a2, 0x02f4, 0x0259, 0x018b, 0x00e6, 0x0000,
+ 0xfebb, 0xfdb2, 0xfd22, 0xfca1, 0xfc73, 0xfcf5,
+ 0xfdac, 0xfe5b, 0xff07, 0xffa3, 0x0082, 0x0184,
+ 0x0222, 0x0295, 0x02cf, 0x028f, 0x0279, 0x02b3,
+ 0x02c9, 0x0330, 0x0424, 0x04d6, 0x0512, 0x0578,
+ 0x0638, 0x06db, 0x0704, 0x074c, 0x08c0, 0x0b24,
+ 0x0d56, 0x0f1a, 0x107a, 0x10ff, 0x10f7, 0x110b,
+ 0x10f3, 0x1045, 0x0efc, 0x0d29, 0x0b7f, 0x0af0,
+ 0x0b98, 0x0c91, 0x0c70, 0x0af1, 0x095a, 0x0868,
+ 0x0818, 0x0890, 0x0953, 0x099d, 0x09c3, 0x0a49,
+ 0x0ad6, 0x0aa5, 0x0994, 0x0864, 0x0756, 0x060a,
+ 0x0540, 0x05df, 0x072a, 0x0877, 0x09fc, 0x0ae6,
+ 0x09f5, 0x07bc, 0x05e5, 0x0505, 0x0487, 0x040a,
+ 0x03e5, 0x0433, 0x0481, 0x04d2, 0x0561, 0x05c3,
+ 0x05b4, 0x057b, 0x0533, 0x04ce, 0x0461, 0x0448,
+ 0x04d2, 0x0539, 0x0462, 0x029a, 0x00ca, 0xff68,
+ 0xfeb1, 0xfe70, 0xfe53, 0xfe82, 0xfee1, 0xfefe,
+ 0xfea5, 0xfe24, 0xfe51, 0xff68, 0x0085, 0x011a,
+ 0x014f, 0x013c, 0x00ba, 0xff6e, 0xfd6a, 0xfb2a,
+ 0xf8a4, 0xf642, 0xf58c, 0xf70c, 0xf99c, 0xfc08,
+ 0xfdb2, 0xfe77, 0xfebd, 0xfefc, 0xff29, 0xff16,
+ 0xfee3, 0xfe90, 0xfde0, 0xfcdf, 0xfbab, 0xfa63,
+ 0xf970, 0xf91b, 0xf94d, 0xf969, 0xf8ab, 0xf78d,
+ 0xf6f0, 0xf691, 0xf659, 0xf6d5, 0xf809, 0xf9dd,
+ 0xfbb1, 0xfc69, 0xfc6f, 0xfcf2, 0xfdb8, 0xfdff,
+ 0xfd99, 0xfcdb, 0xfc30, 0xfb9c, 0xfb53, 0xfba8,
+ 0xfbf9, 0xfbaa, 0xfb1c, 0xfab6, 0xface, 0xfbb2,
+ 0xfd14, 0xfea5, 0x003c, 0x010d, 0x0098, 0x0007,
+ 0x0090, 0x01b0, 0x02cf, 0x0462, 0x0624, 0x072d,
+ 0x0798, 0x0793, 0x06ed, 0x0633, 0x061e, 0x06ee,
+ 0x0883, 0x09d0, 0x09ee, 0x0980, 0x0961, 0x098e,
+ 0x09e3, 0x0a43, 0x0a4f, 0x0993, 0x07d9, 0x0582,
+ 0x0370, 0x0224, 0x015b, 0x00f5, 0x0192, 0x03a6,
+ 0x0689, 0x0911, 0x0a7c, 0x0aac, 0x09e3, 0x0884,
+ 0x06dc, 0x04fc, 0x02c4, 0x0047, 0xfe26, 0xfd39,
+ 0xfd9c, 0xfe6f, 0xfeec, 0xfefa, 0xfec9, 0xfe92,
+ 0xfe65, 0xfdfd, 0xfd47, 0xfc6e, 0xfb7b, 0xfad9,
+ 0xfb79, 0xfd72, 0xff87, 0x00ab, 0x0119, 0x017b,
+ 0x021e, 0x030e, 0x041d, 0x04c7, 0x050c, 0x05cc,
+ 0x0718, 0x07c5, 0x078b, 0x0715, 0x0660, 0x052e,
+ 0x03af, 0x0235, 0x0177, 0x01a3, 0x01ab, 0x0136,
+ 0x0115, 0x0190, 0x0226, 0x0237, 0x01bd, 0x0161,
+ 0x0141, 0x0129, 0x0199, 0x02bc, 0x040b, 0x0516,
+ 0x0563, 0x04fb, 0x0483, 0x03d3, 0x02bd, 0x0216,
+ 0x0236, 0x0285, 0x02b1, 0x02c5, 0x02a6, 0x0239,
+ 0x01d1, 0x0210, 0x02f5, 0x0343, 0x01c7, 0xff21,
+ 0xfce8, 0xfb74, 0xfa90, 0xfa88, 0xfaba, 0xfa47,
+ 0xf9af, 0xf956, 0xf914, 0xf943, 0xf9a1, 0xf982,
+ 0xf983, 0xfa78, 0xfc0e, 0xfd61, 0xfda7, 0xfcc5,
+ 0xfb4d, 0xf9c4, 0xf867, 0xf731, 0xf61c, 0xf565,
+ 0xf52b, 0xf559, 0xf5ea, 0xf688, 0xf681, 0xf5b1,
+ 0xf4d5, 0xf4bb, 0xf571, 0xf6a4, 0xf835, 0xfa23,
+ 0xfc1f, 0xfd5e, 0xfd54, 0xfc9a, 0xfbd9, 0xfb15,
+ 0xfafa, 0xfc60, 0xfea6, 0x00b7, 0x023b, 0x02e7,
+ 0x0281, 0x0192, 0x00fc, 0x00e8, 0x00c3, 0x004c,
+ 0xffb2, 0xff1d, 0xff19, 0x0008, 0x019c, 0x0375,
+ 0x04bd, 0x04cc, 0x04e8, 0x062f, 0x079a, 0x086a,
+ 0x08de, 0x08df, 0x08ae, 0x08a9, 0x0882, 0x082a,
+ 0x07ab, 0x06ea, 0x0657, 0x0603, 0x0548, 0x0430,
+ 0x032c, 0x0268, 0x0234, 0x024b, 0x01d6, 0x00c1,
+ 0xff83, 0xfe62, 0xfda2, 0xfd5b, 0xfd8e, 0xfe2f,
+ 0xfe90, 0xfe1e, 0xfdc2, 0xfe73, 0xff9b, 0x0067,
+ 0x00d8, 0x0120, 0x0178, 0x019f, 0x00d8, 0xff74,
+ 0xfe53, 0xfd60, 0xfc8a, 0xfc20, 0xfbe8, 0xfbd6,
+ 0xfbf6, 0xfbc7, 0xfb3f, 0xfa89, 0xf9ae, 0xf991,
+ 0xfa36, 0xfa3d, 0xfa1e, 0xfb50, 0xfd47, 0xfeed,
+ 0xffec, 0x0013, 0xffcc, 0xffae, 0xffd5, 0x006d,
+ 0x014c, 0x01f5, 0x02b7, 0x03aa, 0x03db, 0x0304,
+ 0x020f, 0x01ad, 0x0203, 0x0306, 0x042e, 0x04cd,
+ 0x04cd, 0x0461, 0x039c, 0x0308, 0x0346, 0x041d,
+ 0x050e, 0x0623, 0x0775, 0x08cd, 0x09aa, 0x0988,
+ 0x0874, 0x074b, 0x0717, 0x07e0, 0x08b1, 0x090e,
+ 0x0923, 0x08fb, 0x08a7, 0x0839, 0x0794, 0x06c8,
+ 0x05fc, 0x056d, 0x0530, 0x0460, 0x027e, 0x010b,
+ 0x0142, 0x0264, 0x037c, 0x047e, 0x0597, 0x063e,
+ 0x05b2, 0x047a, 0x0379, 0x0247, 0x00ce, 0x001f,
+ 0x0088, 0x013a, 0x018b, 0x018d, 0x018b, 0x012f,
+ 0x003b, 0xff87, 0xffb0, 0x0059, 0x010b, 0x0159,
+ 0x0146, 0x0160, 0x013f, 0x0015, 0xfee4, 0xff3f,
+ 0x00bf, 0x0214, 0x02eb, 0x0372, 0x03a4, 0x03a9,
+ 0x0382, 0x02ec, 0x025d, 0x02b4, 0x03ec, 0x0555,
+ 0x0685, 0x077d, 0x0831, 0x088d, 0x08f8, 0x0973,
+ 0x095c, 0x0937, 0x09fc, 0x0ae8, 0x0b6b, 0x0c69,
+ 0x0e11, 0x0fd1, 0x116b, 0x127d, 0x1304, 0x1388,
+ 0x13da, 0x131f, 0x110e, 0x0ece, 0x0df9, 0x0e7e,
+ 0x0f7f, 0x1147, 0x1385, 0x148c, 0x13d6, 0x1240,
+ 0x1059, 0x0e63, 0x0cf4, 0x0ca7, 0x0d79, 0x0ee2,
+ 0x1068, 0x115f, 0x10cc, 0x0e3e, 0x0a28, 0x05a0,
+ 0x01ed, 0xffb1, 0xfee5, 0xff8d, 0x01b4, 0x04a2,
+ 0x066b, 0x056a, 0x0235, 0xfec9, 0xfc9d, 0xfc37,
+ 0xfd7d, 0x0000, 0x02cc, 0x044b, 0x03dc, 0x022e,
+ 0xff6d, 0xfba2, 0xf822, 0xf653, 0xf6a6, 0xf8d6,
+ 0xfbc5, 0xfe25, 0xff56, 0xff03, 0xfd56, 0xfb52,
+ 0xf9ec, 0xf9c5, 0xfb67, 0xfe37, 0x0086, 0x0165,
+ 0x006e, 0xfd14, 0xf82f, 0xf3c6, 0xf0e5, 0xf013,
+ 0xf1d7, 0xf583, 0xf9b7, 0xfd5f, 0xff7d, 0xffb8,
+ 0xfe63, 0xfbe8, 0xf95b, 0xf808, 0xf80b, 0xf8cb,
+ 0xf9b3, 0xfa27, 0xf9c3, 0xf8a5, 0xf791, 0xf744,
+ 0xf786, 0xf845, 0xfa17, 0xfc96, 0xfe8b, 0xffa1,
+ 0x0022, 0x0002, 0xfee9, 0xfcd1, 0xfa7a, 0xf8d3,
+ 0xf84e, 0xf8b8, 0xf96e, 0xfa14, 0xfa9a, 0xfaac,
+ 0xfa4a, 0xfa0e, 0xfa6e, 0xfbed, 0xfedf, 0x0283,
+ 0x0584, 0x0706, 0x071d, 0x0680, 0x057d, 0x0434,
+ 0x0364, 0x039e, 0x04bd, 0x063f, 0x0740, 0x076c,
+ 0x07c8, 0x0924, 0x0acc, 0x0baf, 0x0ba0, 0x0b1d,
+ 0x0aba, 0x0afb, 0x0c18, 0x0dc7, 0x0f5d, 0x0fbd,
+ 0x0e49, 0x0be4, 0x098b, 0x0799, 0x06e7, 0x07c7,
+ 0x092b, 0x0a23, 0x0a36, 0x0984, 0x0912, 0x08ef,
+ 0x0865, 0x081b, 0x08b1, 0x0977, 0x0a22, 0x0af4,
+ 0x0b6b, 0x0a92, 0x083d, 0x0541, 0x0275, 0x007f,
+ 0x000e, 0x00cd, 0x01aa, 0x0284, 0x03a0, 0x04aa,
+ 0x0529, 0x04d8, 0x0409, 0x0361, 0x0305, 0x02f7,
+ 0x034c, 0x03ee, 0x04a9, 0x04ef, 0x0469, 0x039c,
+ 0x02c7, 0x01f8, 0x01b2, 0x0199, 0x00e2, 0xffe1,
+ 0xff2a, 0xff15, 0xffdd, 0x0141, 0x032d, 0x0576,
+ 0x070c, 0x0710, 0x05a9, 0x03b2, 0x0241, 0x0180,
+ 0x00f4, 0x0094, 0x003e, 0x0000, 0x0020, 0x003a,
+ 0x0071, 0x015f, 0x0255, 0x02e0, 0x0374, 0x03d7,
+ 0x0415, 0x0490, 0x04ac, 0x0401, 0x02b7, 0x011e,
+ 0x007d, 0x017e, 0x02c5, 0x030b, 0x025d, 0x019a,
+ 0x0161, 0x00d9, 0xff5f, 0xfdfc, 0xfd92, 0xfe1c,
+ 0xff55, 0x0059, 0x00a6, 0x00cc, 0x00e2, 0x0023,
+ 0xfe4b, 0xfc0f, 0xfa69, 0xf98e, 0xf8e2, 0xf7f8,
+ 0xf6fc, 0xf62d, 0xf5aa, 0xf5c3, 0xf665, 0xf6a9,
+ 0xf654, 0xf62e, 0xf63c, 0xf60e, 0xf5c8, 0xf59b,
+ 0xf5d0, 0xf66d, 0xf6aa, 0xf6ae, 0xf775, 0xf870,
+ 0xf877, 0xf7d7, 0xf769, 0xf765, 0xf7b3, 0xf8ab,
+ 0xfa89, 0xfc85, 0xfde3, 0xfe84, 0xfe26, 0xfd50,
+ 0xfd20, 0xfd41, 0xfcd5, 0xfba7, 0xf9f9, 0xf91a,
+ 0xfa3f, 0xfcb5, 0xff44, 0x00ee, 0x00e7, 0xffb3,
+ 0xfe88, 0xfe3d, 0xff36, 0x008b, 0x013d, 0x01db,
+ 0x0266, 0x01ec, 0x00f2, 0x0057, 0xffbd, 0xff1d,
+ 0xfef6, 0xff0d, 0xff10, 0xff66, 0x0048, 0x0121,
+ 0x0168, 0x0143, 0x00f6, 0x0094, 0x0074, 0x0141,
+ 0x0303, 0x047a, 0x0486, 0x03a8, 0x031e, 0x0380,
+ 0x047a, 0x052e, 0x0560, 0x0576, 0x0505, 0x03c4,
+ 0x02a4, 0x0265, 0x031c, 0x04aa, 0x0653, 0x0799,
+ 0x088c, 0x08d8, 0x085c, 0x0782, 0x0651, 0x0518,
+ 0x0440, 0x0337, 0x01d9, 0x00e1, 0x0043, 0xfff2,
+ 0x0079, 0x013f, 0x010d, 0xffba, 0xfd93, 0xfb70,
+ 0xfa9c, 0xfafc, 0xfb9f, 0xfc78, 0xfd73, 0xfe1f,
+ 0xfe6a, 0xfde8, 0xfc72, 0xfb2b, 0xfac6, 0xfae1,
+ 0xfb3a, 0xfbaf, 0xfc51, 0xfd45, 0xfe03, 0xfe92,
+ 0xffbc, 0x0116, 0x0182, 0x00d8, 0xffcd, 0xff5f,
+ 0xffc1, 0xfff2, 0xff9f, 0xff66, 0xff83, 0xfff9,
+ 0x0081, 0x007f, 0x0019, 0xffc8, 0xff5a, 0xfec5,
+ 0xfe4d, 0xfde9, 0xfda3, 0xfde1, 0xfee0, 0x007c,
+ 0x0232, 0x0304, 0x0250, 0x00d8, 0xfff2, 0xffd9,
+ 0xfff7, 0xfff3, 0xffb4, 0xff43, 0xfec2, 0xfe72,
+ 0xfee2, 0x0045, 0x01da, 0x02ae, 0x0256, 0x0125,
+ 0xffc0, 0xfe57, 0xfd5a, 0xfdbc, 0xff3b, 0x008f,
+ 0x0140, 0x014b, 0x00c6, 0x0032, 0xffaa, 0xfee7,
+ 0xfe7e, 0xff14, 0x002c, 0x00d6, 0x00c4, 0x0080,
+ 0x00ee, 0x0246, 0x03ed, 0x0564, 0x0698, 0x0752,
+ 0x078f, 0x0792, 0x0735, 0x0684, 0x0653, 0x06e6,
+ 0x07b9, 0x089e, 0x0979, 0x0a26, 0x0ac8, 0x0b4e,
+ 0x0bab, 0x0c23, 0x0c71, 0x0c36, 0x0c00, 0x0c6c,
+ 0x0d10, 0x0cf9, 0x0c10, 0x0b3a, 0x0b03, 0x0b48,
+ 0x0bcc, 0x0c2d, 0x0caa, 0x0dff, 0x0fa2, 0x108d,
+ 0x10d9, 0x10b0, 0x101e, 0x0fe8, 0x1076, 0x1136,
+ 0x1188, 0x1142, 0x1095, 0x0f7f, 0x0db2, 0x0b64,
+ 0x0973, 0x08b2, 0x0902, 0x090a, 0x081a, 0x06f9,
+ 0x05ef, 0x04cd, 0x043c, 0x0493, 0x0571, 0x0699,
+ 0x076f, 0x077f, 0x0720, 0x0639, 0x047f, 0x02b1,
+ 0x0199, 0x0106, 0x0063, 0xff86, 0xff35, 0x0036,
+ 0x020f, 0x03ee, 0x05c1, 0x078a, 0x0907, 0x0a0d,
+ 0x0a6d, 0x0a0e, 0x0927, 0x081c, 0x0732, 0x069a,
+ 0x0654, 0x05c6, 0x0464, 0x02d7, 0x0220, 0x0239,
+ 0x0291, 0x027b, 0x019e, 0x00b2, 0x00ab, 0x01c1,
+ 0x03b7, 0x0572, 0x05a5, 0x047e, 0x0274, 0xff59,
+ 0xfc05, 0xf987, 0xf7a1, 0xf621, 0xf507, 0xf3be,
+ 0xf24a, 0xf143, 0xf0ba, 0xf072, 0xf01e, 0xefd2,
+ 0xf070, 0xf24c, 0xf487, 0xf628, 0xf6a5, 0xf5e9,
+ 0xf449, 0xf1fa, 0xef55, 0xed3c, 0xec34, 0xec1f,
+ 0xed10, 0xef02, 0xf132, 0xf2ad, 0xf301, 0xf24e,
+ 0xf1ad, 0xf29d, 0xf514, 0xf797, 0xf964, 0xfab9,
+ 0xfb9b, 0xfb93, 0xfa6f, 0xf8d9, 0xf755, 0xf588,
+ 0xf39f, 0xf27a, 0xf249, 0xf2ff, 0xf4a8, 0xf6c8,
+ 0xf8e1, 0xfac5, 0xfc92, 0xfed6, 0x0169, 0x033e,
+ 0x0425, 0x04c9, 0x0587, 0x063d, 0x0677, 0x0639,
+ 0x05e2, 0x052c, 0x042a, 0x03cd, 0x0481, 0x0617,
+ 0x0833, 0x0a42, 0x0c2a, 0x0dfc, 0x0f6e, 0x104c,
+ 0x1060, 0x0fc0, 0x0f24, 0x0ec3, 0x0e79, 0x0eac,
+ 0x0f49, 0x0fbd, 0x0fdc, 0x0fa7, 0x0f35, 0x0ea5,
+ 0x0df3, 0x0d43, 0x0c97, 0x0be0, 0x0b80, 0x0b9f,
+ 0x0c23, 0x0cd0, 0x0cef, 0x0c6b, 0x0b92, 0x09e2,
+ 0x07b7, 0x0621, 0x04a9, 0x02e2, 0x014e, 0x003c,
+ 0x005b, 0x01bc, 0x0309, 0x03b6, 0x03cf, 0x0342,
+ 0x02e8, 0x02e5, 0x02ab, 0x02f2, 0x039d, 0x03a8,
+ 0x03f6, 0x0514, 0x05d3, 0x05bf, 0x04dc, 0x0350,
+ 0x0274, 0x02b4, 0x02ac, 0x01d5, 0x00e0, 0x0019,
+ 0xff86, 0xff30, 0xfe98, 0xfd8d, 0xfd5f, 0xff21,
+ 0x01df, 0x0443, 0x05c6, 0x0630, 0x05d7, 0x0559,
+ 0x04dd, 0x048d, 0x04a7, 0x0524, 0x05b9, 0x05da,
+ 0x055c, 0x0479, 0x0351, 0x0272, 0x0223, 0x018c,
+ 0x0076, 0xff6e, 0xfe7e, 0xfdc2, 0xfd2b, 0xfc5a,
+ 0xfc27, 0xfd30, 0xfe2e, 0xfe30, 0xfdc2, 0xfd89,
+ 0xfdbf, 0xfe3c, 0xfecc, 0xff4a, 0xff5e, 0xfefd,
+ 0xfe3c, 0xfca6, 0xf9fa, 0xf6bc, 0xf3d1, 0xf242,
+ 0xf29b, 0xf49b, 0xf780, 0xfa43, 0xfc56, 0xfd7d,
+ 0xfd15, 0xfb0f, 0xf837, 0xf545, 0xf2fe, 0xf1ac,
+ 0xf121, 0xf20c, 0xf47d, 0xf6c3, 0xf7c0, 0xf778,
+ 0xf639, 0xf4eb, 0xf3f7, 0xf32e, 0xf34d, 0xf4d9,
+ 0xf71a, 0xf93d, 0xfa93, 0xfac4, 0xfa4c, 0xf998,
+ 0xf8bd, 0xf7cf, 0xf6cb, 0xf61d, 0xf697, 0xf869,
+ 0xfaef, 0xfd39, 0xfe59, 0xfdef, 0xfcae, 0xfbf2,
+ 0xfc76, 0xfe0c, 0x0062, 0x02d5, 0x049b, 0x05a5,
+ 0x0629, 0x068a, 0x0796, 0x08f7, 0x096b, 0x0928,
+ 0x0931, 0x09d7, 0x0b17, 0x0c5f, 0x0cd5, 0x0ca7,
+ 0x0c5c, 0x0bcd, 0x0ad5, 0x09ad, 0x08c3, 0x084f,
+ 0x07d6, 0x06ef, 0x05ec, 0x052a, 0x0511, 0x062d,
+ 0x07fc, 0x0912, 0x08f5, 0x0831, 0x0786, 0x07a8,
+ 0x0837, 0x07cf, 0x05fa, 0x0350, 0x00c9, 0xff8d,
+ 0xff48, 0xfe92, 0xfda9, 0xfd34, 0xfcc4, 0xfcbf,
+ 0xfd66, 0xfd82, 0xfced, 0xfc26, 0xfaa6, 0xf8f1,
+ 0xf81f, 0xf790, 0xf6e3, 0xf6d0, 0xf785, 0xf908,
+ 0xfb54, 0xfd65, 0xfe67, 0xfebd, 0xff54, 0x009f,
+ 0x01c6, 0x019e, 0x0095, 0xffd0, 0xff56, 0xfec4,
+ 0xfe3d, 0xfdee, 0xfdfe, 0xfe8b, 0xff17, 0xff3f,
+ 0xff7c, 0x0031, 0x015b, 0x0301, 0x04a6, 0x05cc,
+ 0x071f, 0x08ec, 0x0a6c, 0x0b99, 0x0cdc, 0x0dac,
+ 0x0d89, 0x0cbd, 0x0b77, 0x098b, 0x0721, 0x0502,
+ 0x03e3, 0x0377, 0x02b6, 0x0145, 0x0012, 0x0025,
+ 0x012c, 0x0233, 0x0323, 0x043d, 0x0517, 0x0524,
+ 0x0475, 0x039e, 0x02e3, 0x01c2, 0xffdd, 0xfdd1,
+ 0xfc68, 0xfb8e, 0xfae3, 0xfad1, 0xfba0, 0xfc4b,
+ 0xfc10, 0xfb90, 0xfb2b, 0xfa88, 0xf9bb, 0xf8f3,
+ 0xf7eb, 0xf690, 0xf53c, 0xf474, 0xf495, 0xf588,
+ 0xf6df, 0xf7f7, 0xf83c, 0xf7d4, 0xf79a, 0xf816,
+ 0xf8d7, 0xf955, 0xfa28, 0xfc2f, 0xfefd, 0x018b,
+ 0x0373, 0x04d9, 0x0633, 0x07e3, 0x09ab, 0x0afe,
+ 0x0b54, 0x0a50, 0x085f, 0x065f, 0x04fe, 0x04df,
+ 0x062c, 0x0836, 0x0a32, 0x0be8, 0x0d96, 0x0f0d,
+ 0x0f5c, 0x0e76, 0x0db3, 0x0dcd, 0x0e50, 0x0eef,
+ 0x0fe7, 0x1185, 0x134a, 0x141a, 0x13f4, 0x13ae,
+ 0x1354, 0x12ec, 0x1319, 0x13a8, 0x13b6, 0x1317,
+ 0x1240, 0x1177, 0x1074, 0x0f02, 0x0dd1, 0x0d7b,
+ 0x0d64, 0x0d00, 0x0c92, 0x0c1d, 0x0b63, 0x0aae,
+ 0x0a64, 0x0a7a, 0x0aa5, 0x0aa1, 0x0a63, 0x09d3,
+ 0x0896, 0x06f0, 0x0605, 0x060c, 0x05d1, 0x04ba,
+ 0x0372, 0x0265, 0x011f, 0xff5c, 0xfdb0, 0xfcc2,
+ 0xfc6a, 0xfc3f, 0xfc15, 0xfb9f, 0xfac6, 0xf9db,
+ 0xf8ea, 0xf7d6, 0xf6b5, 0xf570, 0xf444, 0xf3e6,
+ 0xf48c, 0xf606, 0xf7e7, 0xf918, 0xf90b, 0xf87d,
+ 0xf7e8, 0xf736, 0xf6f2, 0xf794, 0xf8a0, 0xf96d,
+ 0xf99a, 0xf8cb, 0xf74e, 0xf657, 0xf669, 0xf6d5,
+ 0xf71f, 0xf71c, 0xf6a3, 0xf63f, 0xf680, 0xf703,
+ 0xf797, 0xf85c, 0xf8b4, 0xf821, 0xf74f, 0xf739,
+ 0xf80f, 0xf93f, 0xfa3b, 0xfab6, 0xfabf, 0xfaff,
+ 0xfbb1, 0xfc23, 0xfc68, 0xfd2c, 0xfe13, 0xfeba,
+ 0xff53, 0xff97, 0xff59, 0xfedb, 0xfe04, 0xfcea,
+ 0xfbf1, 0xfb2b, 0xfadf, 0xfb56, 0xfc6e, 0xfe31,
+ 0x0074, 0x028c, 0x042a, 0x0559, 0x060f, 0x063e,
+ 0x0588, 0x03df, 0x0289, 0x02e6, 0x04d7, 0x0732,
+ 0x08f0, 0x09c3, 0x09e4, 0x095f, 0x0803, 0x062e,
+ 0x04c3, 0x0446, 0x04a8, 0x0589, 0x0618, 0x05c8,
+ 0x0536, 0x0532, 0x05cc, 0x06fd, 0x089f, 0x0a12,
+ 0x0af3, 0x0b64, 0x0b60, 0x0abd, 0x0989, 0x07fb,
+ 0x0646, 0x04ee, 0x04ca, 0x05bd, 0x069e, 0x0711,
+ 0x07a3, 0x085c, 0x08fe, 0x0974, 0x096a, 0x089c,
+ 0x076f, 0x0664, 0x057c, 0x0468, 0x033c, 0x027e,
+ 0x027c, 0x0319, 0x045f, 0x0628, 0x0768, 0x0730,
+ 0x0639, 0x05be, 0x05dc, 0x0664, 0x0759, 0x0857,
+ 0x0907, 0x0915, 0x07fe, 0x065e, 0x0578, 0x0595,
+ 0x0690, 0x0802, 0x08bd, 0x0827, 0x06b9, 0x0542,
+ 0x04aa, 0x04db, 0x04c2, 0x0439, 0x03be, 0x0356,
+ 0x033f, 0x03a1, 0x0410, 0x048d, 0x0546, 0x05c3,
+ 0x0592, 0x04cf, 0x03c3, 0x02df, 0x02d6, 0x041e,
+ 0x062f, 0x0805, 0x0917, 0x0918, 0x07d8, 0x05a4,
+ 0x02e5, 0x0022, 0xfe52, 0xfdb6, 0xfd72, 0xfced,
+ 0xfc6c, 0xfc74, 0xfd0c, 0xfd84, 0xfd45, 0xfc6d,
+ 0xfb57, 0xfa5c, 0xf9c6, 0xf990, 0xf99d, 0xf9fd,
+ 0xfa7c, 0xfaaf, 0xfa99, 0xfa95, 0xfa8b, 0xfa09,
+ 0xf932, 0xf8cc, 0xf919, 0xf984, 0xf9b5, 0xf9f9,
+ 0xfa55, 0xfa67, 0xfa6f, 0xfaca, 0xfae7, 0xfa87,
+ 0xfa72, 0xfac5, 0xfb0f, 0xfb90, 0xfc03, 0xfb91,
+ 0xfacb, 0xfa7f, 0xf9d9, 0xf86d, 0xf75d, 0xf73e,
+ 0xf7ae, 0xf899, 0xf9f2, 0xfb60, 0xfcbf, 0xfdd0,
+ 0xfe66, 0xfed5, 0xff10, 0xfeb6, 0xfe28, 0xfdbd,
+ 0xfd65, 0xfd76, 0xfe0f, 0xfec6, 0xff64, 0xff7a,
+ 0xfedf, 0xfe9f, 0xff7c, 0x0125, 0x031b, 0x04c0,
+ 0x05df, 0x0695, 0x064f, 0x04de, 0x0354, 0x0250,
+ 0x01a1, 0x0113, 0x0094, 0x0071, 0x00db, 0x017c,
+ 0x0255, 0x03a2, 0x052a, 0x067e, 0x0713, 0x068e,
+ 0x056c, 0x04a5, 0x04c7, 0x055f, 0x0557, 0x0459,
+ 0x0340, 0x02af, 0x0227, 0x00c7, 0xfe7f, 0xfbe1,
+ 0xf9ae, 0xf8ec, 0xf9bf, 0xfac1, 0xfb26, 0xfb52,
+ 0xfb5c, 0xfb4d, 0xfb5b, 0xfb1d, 0xfa62, 0xf9d5,
+ 0xf9dd, 0xfa14, 0xfa30, 0xfa94, 0xfb8d, 0xfcb3,
+ 0xfda8, 0xfe5c, 0xfea7, 0xfe7c, 0xfe2c, 0xfe31,
+ 0xfecf, 0xffeb, 0x010e, 0x014b, 0x0040, 0xff3c,
+ 0xff67, 0x0027, 0x00d0, 0x014a, 0x0175, 0x01f9,
+ 0x037d, 0x053b, 0x065c, 0x06e8, 0x06e8, 0x0651,
+ 0x051a, 0x034e, 0x0182, 0x008a, 0x00a0, 0x016e,
+ 0x02be, 0x0473, 0x0607, 0x0711, 0x0774, 0x06b2,
+ 0x04c7, 0x02b0, 0x0102, 0x001a, 0x0076, 0x014f,
+ 0x015c, 0x0094, 0xff21, 0xfcf3, 0xfab4, 0xf96e,
+ 0xf9b6, 0xfb08, 0xfbff, 0xfc3a, 0xfc7f, 0xfcc7,
+ 0xfc71, 0xfb67, 0xf9c3, 0xf80f, 0xf78d, 0xf8bd,
+ 0xfada, 0xfd01, 0xfeb6, 0xffc6, 0x000a, 0xff62,
+ 0xfe40, 0xfd71, 0xfd28, 0xfd25, 0xfd39, 0xfd5f,
+ 0xfdb8, 0xfe23, 0xfe51, 0xfe36, 0xfdcd, 0xfd4b,
+ 0xfd71, 0xfea0, 0x0074, 0x0245, 0x0392, 0x0466,
+ 0x04e8, 0x0517, 0x0521, 0x04ae, 0x037e, 0x0291,
+ 0x0265, 0x0270, 0x0315, 0x04ea, 0x07ac, 0x0ac0,
+ 0x0d20, 0x0e22, 0x0df8, 0x0cc4, 0x0b44, 0x0a95,
+ 0x0a43, 0x0980, 0x089d, 0x081e, 0x0868, 0x0947,
+ 0x09b6, 0x096c, 0x08f9, 0x08cf, 0x094b, 0x0a65,
+ 0x0bd6, 0x0dce, 0x0fe0, 0x108c, 0x0f0d, 0x0c79,
+ 0x0acc, 0x0aeb, 0x0bca, 0x0c0c, 0x0b98, 0x0ad6,
+ 0x09c2, 0x08b3, 0x084d, 0x085e, 0x0867, 0x0887,
+ 0x08b0, 0x08da, 0x0966, 0x09fc, 0x0a09, 0x09c6,
+ 0x0927, 0x07e9, 0x068f, 0x059d, 0x050b, 0x04bb,
+ 0x049d, 0x04ad, 0x050d, 0x05c5, 0x0662, 0x0661,
+ 0x0626, 0x060f, 0x055e, 0x03c1, 0x01f2, 0x0073,
+ 0xff75, 0xff0f, 0xff30, 0xffc8, 0x0063, 0x00a6,
+ 0x00f9, 0x0181, 0x01c8, 0x01a1, 0x014c, 0x017a,
+ 0x02ac, 0x041b, 0x04c3, 0x04a1, 0x0422, 0x0384,
+ 0x02ba, 0x01a7, 0x0074, 0xff65, 0xfeb1, 0xfe61,
+ 0xfe67, 0xff0a, 0x003e, 0x0160, 0x021b, 0x0245,
+ 0x01d9, 0x0196, 0x021c, 0x032e, 0x0425, 0x043c,
+ 0x033a, 0x01e0, 0x00ef, 0x0083, 0xfff9, 0xfea5,
+ 0xfd17, 0xfbf0, 0xfaaf, 0xf943, 0xf850, 0xf7dc,
+ 0xf7b6, 0xf807, 0xf8a9, 0xf926, 0xf948, 0xf91c,
+ 0xf890, 0xf790, 0xf648, 0xf4fa, 0xf40c, 0xf3d3,
+ 0xf40f, 0xf46c, 0xf4ce, 0xf4d2, 0xf47e, 0xf499,
+ 0xf57c, 0xf711, 0xf974, 0xfc2f, 0xfe09, 0xfe45,
+ 0xfd5f, 0xfc89, 0xfc50, 0xfc13, 0xfb69, 0xfb1c,
+ 0xfbbf, 0xfcd3, 0xfde2, 0xfee2, 0xffca, 0x00b3,
+ 0x01b0, 0x02ac, 0x03f4, 0x05ba, 0x077c, 0x08c4,
+ 0x096b, 0x0977, 0x0924, 0x089e, 0x0822, 0x0809,
+ 0x07ec, 0x0716, 0x05af, 0x043e, 0x02fb, 0x0231,
+ 0x026c, 0x03e6, 0x05d0, 0x0726, 0x082a, 0x09c6,
+ 0x0bb8, 0x0cb3, 0x0c23, 0x0afe, 0x0a41, 0x09d3,
+ 0x0969, 0x0902, 0x088b, 0x07e7, 0x0730, 0x06d0,
+ 0x06f3, 0x072a, 0x0754, 0x078a, 0x0761, 0x06ee,
+ 0x06bc, 0x06a1, 0x069f, 0x070a, 0x0779, 0x0761,
+ 0x0666, 0x044f, 0x01ec, 0x0031, 0xff00, 0xfe53,
+ 0xfe73, 0xff10, 0xffb6, 0x0035, 0x0091, 0x00e0,
+ 0x00d7, 0x0015, 0xfede, 0xfda8, 0xfcac, 0xfc32,
+ 0xfc65, 0xfce9, 0xfd5c, 0xfdcc, 0xfe5a, 0xfefb,
+ 0xff60, 0xff36, 0xfeeb, 0xff2c, 0xff98, 0xffb2,
+ 0xffef, 0x0096, 0x014d, 0x01d6, 0x0218, 0x0245,
+ 0x0317, 0x04f5, 0x0741, 0x08ee, 0x0992, 0x096c,
+ 0x08ba, 0x07c2, 0x06e9, 0x0627, 0x0540, 0x044c,
+ 0x0376, 0x02ee, 0x02d7, 0x02e4, 0x0298, 0x01c7,
+ 0x00a7, 0xff9e, 0xfeb1, 0xfdba, 0xfd36, 0xfdb1,
+ 0xfebb, 0xff4f, 0xfef0, 0xfe3f, 0xfe28, 0xfe5a,
+ 0xfe1c, 0xfdc0, 0xfd77, 0xfc9f, 0xfb6b, 0xfab9,
+ 0xfa8c, 0xfa5e, 0xfa25, 0xfa5e, 0xfb22, 0xfb95,
+ 0xfb45, 0xfae5, 0xface, 0xfab6, 0xfaa2, 0xfa63,
+ 0xf9ab, 0xf8e6, 0xf8cd, 0xf996, 0xfa8d, 0xfab1,
+ 0xfa4c, 0xfa45, 0xfa80, 0xfaeb, 0xfc0c, 0xfdaa,
+ 0xff25, 0x0058, 0x0147, 0x0206, 0x0282, 0x024a,
+ 0x0160, 0x006d, 0xffe8, 0xffbd, 0xff6a, 0xfe6e,
+ 0xfd05, 0xfc18, 0xfc3c, 0xfcdf, 0xfd18, 0xfd0f,
+ 0xfd83, 0xfea3, 0x0026, 0x0148, 0x0152, 0x00d8,
+ 0x006f, 0xff82, 0xfe30, 0xfd61, 0xfd25, 0xfd6a,
+ 0xfe21, 0xfea1, 0xfefa, 0xffb9, 0x007f, 0x00f4,
+ 0x00f8, 0x0015, 0xfec0, 0xfdf8, 0xfdd8, 0xfe54,
+ 0xff69, 0x0049, 0x0080, 0x0072, 0x0041, 0xffb4,
+ 0xfecf, 0xfdae, 0xfc3a, 0xfa95, 0xf95d, 0xf91d,
+ 0xfa0b, 0xfbf0, 0xfe2d, 0x006b, 0x024c, 0x02c4,
+ 0x017e, 0xff64, 0xfd66, 0xfca6, 0xfda7, 0xfeeb,
+ 0xfee8, 0xfd8b, 0xfb5a, 0xf96e, 0xf8ac, 0xf8c3,
+ 0xf93c, 0xf9ee, 0xfab1, 0xfbdc, 0xfd79, 0xfed3,
+ 0xffb8, 0x004e, 0x009b, 0x00f5, 0x018e, 0x0214,
+ 0x023e, 0x01c0, 0x00ae, 0x0006, 0x0079, 0x0160,
+ 0x01da, 0x01f7, 0x0218, 0x023b, 0x025d, 0x02b8,
+ 0x0377, 0x04b0, 0x067c, 0x088e, 0x0a34, 0x0b0c,
+ 0x0afb, 0x09af, 0x0742, 0x04a3, 0x02e1, 0x02a2,
+ 0x03ad, 0x04f3, 0x05df, 0x0687, 0x06d8, 0x06b7,
+ 0x05e2, 0x0431, 0x028e, 0x01e8, 0x01da, 0x01cd,
+ 0x01bf, 0x0181, 0x0074, 0xfe25, 0xfb34, 0xf8ea,
+ 0xf7e4, 0xf80f, 0xf8fb, 0xfa52, 0xfc3f, 0xfe49,
+ 0xff3d, 0xff08, 0xfe60, 0xfd89, 0xfcc7, 0xfc73,
+ 0xfc6c, 0xfc28, 0xfb54, 0xfaa6, 0xfb1f, 0xfcbd,
+ 0xfeaa, 0xffb5, 0xff13, 0xfd53, 0xfb86, 0xfa38,
+ 0xf984, 0xf8f7, 0xf857, 0xf83d, 0xf918, 0xfaaf,
+ 0xfc41, 0xfd00, 0xfd43, 0xfdc8, 0xfe47, 0xfe5f,
+ 0xfe7f, 0xff38, 0x009a, 0x0265, 0x046a, 0x0605,
+ 0x05f5, 0x040f, 0x01b5, 0x0041, 0x0021, 0x00e0,
+ 0x01ec, 0x0318, 0x0405, 0x04a3, 0x05a0, 0x06f8,
+ 0x081b, 0x0928, 0x0a33, 0x0b3f, 0x0cb2, 0x0e32,
+ 0x0ec6, 0x0e87, 0x0e70, 0x0ef7, 0x0ff4, 0x112a,
+ 0x1263, 0x1361, 0x13f2, 0x1419, 0x1431, 0x14a9,
+ 0x155f, 0x15c8, 0x157a, 0x1465, 0x12ad, 0x106a,
+ 0x0dd9, 0x0b96, 0x0a02, 0x0934, 0x093b, 0x09e8,
+ 0x0b36, 0x0d01, 0x0e55, 0x0ecf, 0x0eba, 0x0dbf,
+ 0x0c25, 0x0adf, 0x09db, 0x08f2, 0x084d, 0x07aa,
+ 0x0746, 0x0707, 0x05e5, 0x0448, 0x0373, 0x02fc,
+ 0x01f5, 0x0081, 0xff52, 0xfec6, 0xfe87, 0xfe0e,
+ 0xfd30, 0xfbc9, 0xf9fa, 0xf882, 0xf840, 0xf910,
+ 0xf9a5, 0xf962, 0xf94f, 0xfa5e, 0xfc57, 0xfe1b,
+ 0xfea5, 0xfe2d, 0xfd40, 0xfbc6, 0xfa30, 0xf955,
+ 0xf916, 0xf8ef, 0xf8d6, 0xf92e, 0xfa25, 0xfb1e,
+ 0xfb78, 0xfb4c, 0xfafd, 0xfad2, 0xfae5, 0xfb26,
+ 0xfb98, 0xfbf3, 0xfba0, 0xfa89, 0xf90a, 0xf757,
+ 0xf5bd, 0xf4ed, 0xf541, 0xf642, 0xf7bf, 0xf9ee,
+ 0xfc0a, 0xfd36, 0xfdf4, 0xfecb, 0xff5e, 0xff03,
+ 0xfd4a, 0xfabf, 0xf8b5, 0xf7f9, 0xf89e, 0xfa05,
+ 0xfb30, 0xfbb1, 0xfb8b, 0xfb06, 0xfae7, 0xfb95,
+ 0xfcec, 0xfeab, 0x002f, 0x014c, 0x02e4, 0x053b,
+ 0x075a, 0x089e, 0x090f, 0x0898, 0x0771, 0x069c,
+ 0x06b3, 0x0757, 0x081c, 0x0885, 0x0831, 0x07a3,
+ 0x06fd, 0x0592, 0x03e2, 0x0308, 0x02cb, 0x02ac,
+ 0x02db, 0x0368, 0x03c4, 0x0388, 0x035b, 0x0407,
+ 0x04fb, 0x0553, 0x0557, 0x05a8, 0x0647, 0x06fb,
+ 0x07a3, 0x07e9, 0x077d, 0x06ce, 0x06aa, 0x06f5,
+ 0x067b, 0x0473, 0x01d1, 0x0003, 0xff33, 0xff2e,
+ 0x0021, 0x0195, 0x02ff, 0x042b, 0x046e, 0x0387,
+ 0x0206, 0x004b, 0xfef6, 0xfea9, 0xfef2, 0xff44,
+ 0xffb5, 0x003b, 0x00a7, 0x00cd, 0x009b, 0x0067,
+ 0x0096, 0x0120, 0x0199, 0x01fd, 0x02f3, 0x049c,
+ 0x0623, 0x06fa, 0x06eb, 0x05f2, 0x04c4, 0x0402,
+ 0x0387, 0x035c, 0x03c9, 0x04bf, 0x0600, 0x075c,
+ 0x08e7, 0x0ab5, 0x0c31, 0x0ca7, 0x0c82, 0x0cdc,
+ 0x0dd8, 0x0e89, 0x0e84, 0x0e36, 0x0de4, 0x0db8,
+ 0x0de6, 0x0de9, 0x0cc0, 0x0a72, 0x0815, 0x0683,
+ 0x05df, 0x05de, 0x0604, 0x0602, 0x05d3, 0x0587,
+ 0x0554, 0x051e, 0x0461, 0x034a, 0x0258, 0x0120,
+ 0xff7f, 0xfe48, 0xfda4, 0xfcec, 0xfbb7, 0xfa0b,
+ 0xf87d, 0xf77b, 0xf67f, 0xf52e, 0xf433, 0xf430,
+ 0xf4f5, 0xf5df, 0xf68c, 0xf71a, 0xf773, 0xf726,
+ 0xf624, 0xf4f2, 0xf3ee, 0xf30a, 0xf229, 0xf143,
+ 0xf08b, 0xf07f, 0xf139, 0xf230, 0xf308, 0xf392,
+ 0xf3ae, 0xf3d4, 0xf45c, 0xf4ed, 0xf5c8, 0xf782,
+ 0xf95a, 0xfa37, 0xfa55, 0xfa52, 0xfa05, 0xf955,
+ 0xf8df, 0xf8f0, 0xf8d5, 0xf7ff, 0xf6d5, 0xf63c,
+ 0xf6be, 0xf825, 0xf9f2, 0xfc02, 0xfe33, 0x003a,
+ 0x0204, 0x0377, 0x046e, 0x04f3, 0x04c9, 0x03c6,
+ 0x0286, 0x017d, 0x0064, 0xff37, 0xfe41, 0xfd98,
+ 0xfdc7, 0xff3e, 0x0106, 0x0221, 0x0306, 0x03ff,
+ 0x0485, 0x04e3, 0x05bf, 0x068a, 0x066c, 0x05b6,
+ 0x056d, 0x05fe, 0x0687, 0x05c8, 0x03cf, 0x01c3,
+ 0x0067, 0xffe3, 0x0002, 0x0054, 0x00f7, 0x0271,
+ 0x0433, 0x0522, 0x0516, 0x045e, 0x02fa, 0x0120,
+ 0xff42, 0xfdd0, 0xfd31, 0xfd5a, 0xfd9d, 0xfd7a,
+ 0xfd4f, 0xfd9b, 0xfdec, 0xfd9e, 0xfcff, 0xfc7d,
+ 0xfc0c, 0xfc1e, 0xfd54, 0xff63, 0x0165, 0x029a,
+ 0x02cb, 0x02a1, 0x029e, 0x025f, 0x01be, 0x0135,
+ 0x011f, 0x0193, 0x024e, 0x02be, 0x02f1, 0x0360,
+ 0x03c1, 0x03aa, 0x037c, 0x0375, 0x0352, 0x031e,
+ 0x030f, 0x035a, 0x046a, 0x060a, 0x070b, 0x06d2,
+ 0x0601, 0x0535, 0x0449, 0x02ec, 0x0177, 0x00b4,
+ 0x00a6, 0x0072, 0xffb0, 0xfec8, 0xfe23, 0xfdc5,
+ 0xfd92, 0xfdad, 0xfe2f, 0xfea0, 0xfea1, 0xfeb4,
+ 0xff57, 0x005c, 0x016c, 0x01fd, 0x0189, 0x005a,
+ 0xff20, 0xfe2c, 0xfda7, 0xfd6b, 0xfd21, 0xfd1a,
+ 0xfdc6, 0xfed6, 0xffe3, 0x00ab, 0x00ba, 0x001f,
+ 0xff9a, 0xff89, 0xff94, 0xff3b, 0xfe6d, 0xfdbd,
+ 0xfd82, 0xfd28, 0xfc4a, 0xfb57, 0xfab5, 0xfa78,
+ 0xfa84, 0xfa86, 0xfa82, 0xfaff, 0xfbff, 0xfcf4,
+ 0xfda6, 0xfe57, 0xff4a, 0x003e, 0x0097, 0x0073,
+ 0x0066, 0x006d, 0x00a4, 0x01b0, 0x0343, 0x045f,
+ 0x04e4, 0x0511, 0x04eb, 0x04e9, 0x0545, 0x056a,
+ 0x057b, 0x0655, 0x07cf, 0x0915, 0x0a07, 0x0ac6,
+ 0x0b38, 0x0b83, 0x0bfe, 0x0ca3, 0x0d2c, 0x0d9d,
+ 0x0e38, 0x0ef3, 0x0f8b, 0x0fcc, 0x0f7d, 0x0ed3,
+ 0x0e73, 0x0e4b, 0x0def, 0x0de8, 0x0ebf, 0x1005,
+ 0x1176, 0x12eb, 0x1383, 0x12c8, 0x1143, 0x0f5f,
+ 0x0d6a, 0x0bc4, 0x0a27, 0x0880, 0x07c1, 0x084e,
+ 0x0969, 0x0a9d, 0x0b8e, 0x0b66, 0x0a4e, 0x09b5,
+ 0x0a44, 0x0b0f, 0x0ae9, 0x099a, 0x07d5, 0x0677,
+ 0x05ee, 0x0601, 0x0619, 0x05d2, 0x052d, 0x0450,
+ 0x03a1, 0x03bc, 0x04a3, 0x05ba, 0x0691, 0x06d4,
+ 0x0637, 0x0522, 0x047d, 0x04aa, 0x0550, 0x05cd,
+ 0x05b3, 0x0517, 0x041b, 0x02b4, 0x00de, 0xfe7d,
+ 0xfbf5, 0xfa5c, 0xf9c9, 0xf984, 0xf9c6, 0xfa9f,
+ 0xfb23, 0xfb2f, 0xfb38, 0xfaf8, 0xfa43, 0xf946,
+ 0xf7dc, 0xf668, 0xf5d2, 0xf625, 0xf6ea, 0xf836,
+ 0xfa06, 0xfbb3, 0xfc83, 0xfbef, 0xf9fd, 0xf79b,
+ 0xf5e0, 0xf51d, 0xf4d1, 0xf428, 0xf326, 0xf2f4,
+ 0xf3f9, 0xf52f, 0xf5df, 0xf616, 0xf5ff, 0xf5f9,
+ 0xf682, 0xf78a, 0xf87f, 0xf90f, 0xf944, 0xf901,
+ 0xf877, 0xf845, 0xf873, 0xf8ef, 0xfa21, 0xfb79,
+ 0xfc0b, 0xfc79, 0xfd76, 0xfe8d, 0xff4a, 0xff6c,
+ 0xff08, 0xfee2, 0xff31, 0xff43, 0xfee1, 0xfe72,
+ 0xfe4c, 0xfea1, 0xff5d, 0x0015, 0x0077, 0x0094,
+ 0x00af, 0x00dd, 0x0121, 0x01a1, 0x0283, 0x03d1,
+ 0x0597, 0x07c3, 0x09db, 0x0b2e, 0x0b74, 0x0b13,
+ 0x0a9c, 0x0a3c, 0x09bd, 0x092f, 0x0907, 0x094a,
+ 0x0973, 0x0941, 0x08d2, 0x087e, 0x089b, 0x08f4,
+ 0x0922, 0x0948, 0x09d0, 0x0b01, 0x0c8d, 0x0d6b,
+ 0x0d0e, 0x0be9, 0x0a53, 0x087d, 0x0707, 0x064b,
+ 0x0603, 0x05d5, 0x0583, 0x04e8, 0x03f3, 0x027e,
+ 0x00a3, 0xff23, 0xfeb8, 0xff44, 0x0016, 0x0092,
+ 0x008b, 0x0064, 0x0087, 0x0101, 0x0198, 0x01c4,
+ 0x00fc, 0xff48, 0xfd48, 0xfbf1, 0xfbd3, 0xfc6e,
+ 0xfd02, 0xfdba, 0xff26, 0x0142, 0x0362, 0x04ed,
+ 0x05fc, 0x06e4, 0x077b, 0x0755, 0x068e, 0x05f4,
+ 0x05f5, 0x05f5, 0x0575, 0x04b0, 0x0403, 0x03e1,
+ 0x0474, 0x056d, 0x06e8, 0x08f7, 0x0ab7, 0x0b8c,
+ 0x0c05, 0x0ce2, 0x0e13, 0x0ee8, 0x0f07, 0x0e6e,
+ 0x0cb4, 0x09eb, 0x075f, 0x060a, 0x0591, 0x0530,
+ 0x0461, 0x02d3, 0x00a4, 0xfec3, 0xfe1b, 0xfe91,
+ 0xff77, 0x0012, 0xffb9, 0xfe98, 0xfd89, 0xfd03,
+ 0xfd1c, 0xfd47, 0xfc8e, 0xfb43, 0xfaa4, 0xfaec,
+ 0xfb62, 0xfb67, 0xfafd, 0xfaab, 0xfaa0, 0xfa8a,
+ 0xfa2d, 0xf987, 0xf8da, 0xf829, 0xf6e6, 0xf519,
+ 0xf3af, 0xf33c, 0xf36b, 0xf389, 0xf359, 0xf2f6,
+ 0xf249, 0xf180, 0xf12c, 0xf148, 0xf180, 0xf1cf,
+ 0xf231, 0xf2d9, 0xf43f, 0xf63a, 0xf7f4, 0xf8ea,
+ 0xf943, 0xf922, 0xf884, 0xf81c, 0xf8b5, 0xf9df,
+ 0xfac4, 0xfb24, 0xfb08, 0xfad2, 0xfad6, 0xfaca,
+ 0xfab4, 0xfaf7, 0xfb66, 0xfbd9, 0xfc8d, 0xfd7f,
+ 0xfe95, 0x0018, 0x0212, 0x03cd, 0x04a2, 0x04e2,
+ 0x0524, 0x0556, 0x0576, 0x05eb, 0x0690, 0x06e6,
+ 0x06e9, 0x06a1, 0x05f3, 0x051f, 0x044b, 0x033d,
+ 0x0241, 0x01e5, 0x0202, 0x0249, 0x02e3, 0x039c,
+ 0x03bb, 0x0310, 0x0262, 0x024e, 0x0268, 0x01cd,
+ 0x002b, 0xfe3a, 0xfd3f, 0xfd84, 0xfe33, 0xfef6,
+ 0xff8b, 0xfefb, 0xfd49, 0xfb77, 0xf9d2, 0xf893,
+ 0xf825, 0xf837, 0xf8a8, 0xf9c5, 0xfb18, 0xfc47,
+ 0xfdaa, 0xfef8, 0xff8d, 0xff78, 0xfee4, 0xfe00,
+ 0xfd6c, 0xfd3b, 0xfcf3, 0xfce8, 0xfd77, 0xfe13,
+ 0xfe70, 0xfecc, 0xff1d, 0xff4b, 0xff5c, 0xffa2,
+ 0x00a8, 0x022d, 0x037d, 0x043f, 0x03ed, 0x02aa,
+ 0x0172, 0x004b, 0xff15, 0xfea8, 0xff08, 0xff8f,
+ 0x0023, 0x0090, 0x00dd, 0x0192, 0x02c0, 0x0422,
+ 0x051b, 0x051c, 0x04e0, 0x0513, 0x053c, 0x0549,
+ 0x053b, 0x0449, 0x0256, 0x0026, 0xfe86, 0xfe00,
+ 0xfe2f, 0xfe3d, 0xfe52, 0xfee8, 0xff98, 0xffbb,
+ 0xff1a, 0xfde9, 0xfced, 0xfd06, 0xfde7, 0xfeae,
+ 0xff49, 0xffc8, 0x0000, 0x0049, 0x009f, 0x005e,
+ 0xff78, 0xfe02, 0xfc12, 0xfaa0, 0xfa52, 0xfa78,
+ 0xfa6c, 0xfa7b, 0xfb0a, 0xfbcf, 0xfc80, 0xfd3a,
+ 0xfd7b, 0xfcba, 0xfb89, 0xfa29, 0xf8a8, 0xf84e,
+ 0xf9b7, 0xfbe7, 0xfe4b, 0x006d, 0x018c, 0x01e6,
+ 0x020a, 0x01de, 0x0154, 0x00bd, 0x00b9, 0x01d9,
+ 0x03e3, 0x062e, 0x0815, 0x08b8, 0x07eb, 0x06c8,
+ 0x0629, 0x0604, 0x067e, 0x07df, 0x09cc, 0x0b91,
+ 0x0cb6, 0x0d34, 0x0d74, 0x0dc0, 0x0e15, 0x0e5f,
+ 0x0e59, 0x0df6, 0x0dce, 0x0e2f, 0x0ec5, 0x0f9f,
+ 0x1101, 0x1296, 0x13a5, 0x13ac, 0x12eb, 0x122c,
+ 0x119f, 0x10e3, 0x1021, 0x0fe4, 0x1024, 0x1061,
+ 0x1072, 0x105c, 0x0fcd, 0x0e88, 0x0cfd, 0x0bba,
+ 0x0ae2, 0x0aa5, 0x0b76, 0x0cf1, 0x0dbc, 0x0d3a,
+ 0x0bdc, 0x0a0f, 0x0860, 0x0706, 0x0556, 0x035f,
+ 0x01f9, 0x0116, 0x0096, 0x00e3, 0x01ae, 0x0238,
+ 0x0242, 0x01d9, 0x0144, 0x00eb, 0x011c, 0x01d7,
+ 0x0278, 0x027a, 0x0239, 0x023c, 0x0261, 0x020e,
+ 0x00fa, 0xff86, 0xfe1c, 0xfd0f, 0xfcd9, 0xfd90,
+ 0xfec4, 0xffbc, 0xffd4, 0xff3a, 0xfe80, 0xfdbb,
+ 0xfd02, 0xfc47, 0xfb40, 0xfa70, 0xfa6b, 0xfb05,
+ 0xfc15, 0xfd41, 0xfdf6, 0xfe15, 0xfd65, 0xfbcf,
+ 0xfa00, 0xf89e, 0xf7f5, 0xf845, 0xf973, 0xfaf8,
+ 0xfbd8, 0xfb87, 0xfac2, 0xfa10, 0xf94b, 0xf8fc,
+ 0xf987, 0xfa69, 0xfb66, 0xfc61, 0xfd28, 0xfdf6,
+ 0xfe9c, 0xfe50, 0xfcfb, 0xfb62, 0xfa3d, 0xf9d2,
+ 0xfa58, 0xfbaf, 0xfcc1, 0xfce1, 0xfcea, 0xfd78,
+ 0xfdf8, 0xfdf6, 0xfd91, 0xfd1e, 0xfd03, 0xfd5f,
+ 0xfe1f, 0xff4c, 0x00b3, 0x01c9, 0x026b, 0x0310,
+ 0x03cd, 0x044d, 0x04c2, 0x055e, 0x059e, 0x0522,
+ 0x0415, 0x02d1, 0x01be, 0x00f0, 0x0031, 0xffa5,
+ 0xff8c, 0xffdc, 0x0037, 0x0040, 0x0049, 0x00dc,
+ 0x019b, 0x01ec, 0x01c9, 0x015e, 0x0131, 0x01d0,
+ 0x031c, 0x04d6, 0x06df, 0x088d, 0x0963, 0x09c2,
+ 0x09e4, 0x0961, 0x07e6, 0x0590, 0x02f2, 0x0111,
+ 0x0078, 0x0080, 0x0064, 0x0078, 0x014d, 0x0266,
+ 0x02ff, 0x032a, 0x032b, 0x02f0, 0x026b, 0x01a4,
+ 0x00e5, 0x00a2, 0x00c5, 0x0124, 0x0216, 0x0354,
+ 0x0419, 0x0455, 0x03fc, 0x02d1, 0x0157, 0x002c,
+ 0xff6d, 0xff06, 0xfec2, 0xfe9b, 0xfee2, 0xffbf,
+ 0x0161, 0x0394, 0x0533, 0x0595, 0x053f, 0x0506,
+ 0x058f, 0x06ba, 0x07c0, 0x0864, 0x08e0, 0x0947,
+ 0x09eb, 0x0b04, 0x0c04, 0x0c46, 0x0be5, 0x0b65,
+ 0x0ae9, 0x0a4a, 0x09be, 0x09ba, 0x0a42, 0x0abc,
+ 0x0ad5, 0x0b14, 0x0b9b, 0x0bbb, 0x0b41, 0x0a65,
+ 0x097a, 0x0933, 0x0976, 0x097c, 0x0918, 0x07ff,
+ 0x0631, 0x04e3, 0x047e, 0x045a, 0x044e, 0x03f2,
+ 0x02ac, 0x0091, 0xfdd7, 0xfb33, 0xf974, 0xf85d,
+ 0xf7f6, 0xf85e, 0xf877, 0xf7dc, 0xf778, 0xf7a2,
+ 0xf84a, 0xf93d, 0xf9aa, 0xf91e, 0xf7e0, 0xf662,
+ 0xf4d8, 0xf31e, 0xf1af, 0xf15a, 0xf1a4, 0xf187,
+ 0xf110, 0xf0f9, 0xf1ac, 0xf2c7, 0xf3af, 0xf47a,
+ 0xf56c, 0xf67f, 0xf7dc, 0xf950, 0xfa0f, 0xf9d1,
+ 0xf918, 0xf84c, 0xf74a, 0xf625, 0xf583, 0xf5a3,
+ 0xf617, 0xf6e8, 0xf854, 0xfa00, 0xfb4b, 0xfc02,
+ 0xfc76, 0xfce5, 0xfcf2, 0xfc92, 0xfc92, 0xfd6e,
+ 0xfead, 0xffdb, 0x00cf, 0x0145, 0x017d, 0x027f,
+ 0x0469, 0x0607, 0x06ac, 0x0652, 0x04d0, 0x029f,
+ 0x00f5, 0x0061, 0x0056, 0xfff9, 0xff10, 0xfe58,
+ 0xfe76, 0xff23, 0xffa3, 0xffa4, 0xffb0, 0x007f,
+ 0x01db, 0x02e8, 0x0322, 0x0255, 0x009f, 0xfee7,
+ 0xfe2a, 0xfe57, 0xfeb7, 0xff0a, 0xff82, 0x0014,
+ 0x0078, 0x00b1, 0x00f9, 0x00f6, 0xfffd, 0xfe4a,
+ 0xfcea, 0xfc7c, 0xfcdc, 0xfd94, 0xfe2c, 0xfe56,
+ 0xfe4f, 0xfea4, 0xff3e, 0xffb7, 0x0061, 0x0150,
+ 0x01b1, 0x010d, 0xff87, 0xfdc3, 0xfcff, 0xfd85,
+ 0xfe73, 0xff6d, 0x0038, 0x0070, 0x0041, 0xffdb,
+ 0xff63, 0xff80, 0x003e, 0x00e8, 0x0105, 0x00b1,
+ 0x007a, 0x005a, 0xff80, 0xfe08, 0xfce2, 0xfc72,
+ 0xfd0d, 0xfed6, 0x00e9, 0x024b, 0x02b9, 0x0238,
+ 0x00e1, 0xff45, 0xfe4e, 0xfe30, 0xfe46, 0xfe5e,
+ 0xfec7, 0xff57, 0xff91, 0xff5c, 0xfef4, 0xfe58,
+ 0xfd55, 0xfc4a, 0xfbd1, 0xfc2e, 0xfd6d, 0xff23,
+ 0x0076, 0x00ef, 0x0051, 0xfee6, 0xfdc7, 0xfd75,
+ 0xfd92, 0xfdfc, 0xfe89, 0xfee5, 0xff17, 0xff0f,
+ 0xfec0, 0xfe60, 0xfdf9, 0xfd59, 0xfc62, 0xfb2b,
+ 0xfa2f, 0xf9fe, 0xfad6, 0xfc48, 0xfd4b, 0xfd6b,
+ 0xfd20, 0xfcd9, 0xfcb4, 0xfc84, 0xfbe7, 0xfafb,
+ 0xfa4c, 0xfa23, 0xfa65, 0xfaf4, 0xfc25, 0xfe25,
+ 0x0023, 0x018a, 0x02ab, 0x03c1, 0x04dd, 0x0608,
+ 0x06e9, 0x077f, 0x081f, 0x0856, 0x079a, 0x066b,
+ 0x0588, 0x0516, 0x0508, 0x0569, 0x0632, 0x0772,
+ 0x092b, 0x0abf, 0x0b84, 0x0b96, 0x0b6f, 0x0b56,
+ 0x0b81, 0x0c19, 0x0cf1, 0x0d98, 0x0e27, 0x0efb,
+ 0x0f6a, 0x0ecf, 0x0def, 0x0d70, 0x0d4c, 0x0d85,
+ 0x0d90, 0x0d0a, 0x0ca2, 0x0cc3, 0x0d39, 0x0dd0,
+ 0x0dea, 0x0ce7, 0x0b13, 0x0955, 0x0858, 0x0807,
+ 0x0834, 0x08fa, 0x09f6, 0x0adb, 0x0bce, 0x0c30,
+ 0x0b60, 0x09da, 0x0817, 0x0654, 0x04ed, 0x03f5,
+ 0x03c4, 0x04aa, 0x05be, 0x05be, 0x047f, 0x0304,
+ 0x0275, 0x02a9, 0x02ca, 0x02ea, 0x036f, 0x0447,
+ 0x0541, 0x0606, 0x0640, 0x05e5, 0x0527, 0x048d,
+ 0x046a, 0x0478, 0x0471, 0x044f, 0x041e, 0x040a,
+ 0x0422, 0x03ff, 0x0306, 0x013b, 0xff9f, 0xff06,
+ 0xff14, 0xff32, 0xff6a, 0xfffd, 0x011f, 0x02d7,
+ 0x04a8, 0x05e8, 0x0645, 0x05a5, 0x0425, 0x024c,
+ 0x008b, 0xff2c, 0xfec8, 0xff7e, 0x0053, 0x00ab,
+ 0x00b7, 0x004e, 0xff2e, 0xfde2, 0xfd24, 0xfcf1,
+ 0xfcdb, 0xfcce, 0xfceb, 0xfd02, 0xfd0a, 0xfd36,
+ 0xfd65, 0xfd49, 0xfcb7, 0xfbd5, 0xfb4d, 0xfb92,
+ 0xfc63, 0xfd47, 0xfdf0, 0xfe57, 0xfe5c, 0xfd5c,
+ 0xfb36, 0xf8bf, 0xf6bf, 0xf5b0, 0xf59f, 0xf604,
+ 0xf678, 0xf6d8, 0xf724, 0xf79e, 0xf817, 0xf832,
+ 0xf84b, 0xf870, 0xf810, 0xf752, 0xf6c0, 0xf698,
+ 0xf703, 0xf7da, 0xf8eb, 0xfa2c, 0xfb05, 0xfaf3,
+ 0xfa6d, 0xfa3d, 0xfaab, 0xfb63, 0xfbe5, 0xfc3b,
+ 0xfc96, 0xfcf5, 0xfdbe, 0xff17, 0x0040, 0x010f,
+ 0x0224, 0x0375, 0x04a4, 0x05d6, 0x0702, 0x0815,
+ 0x0936, 0x09b3, 0x0897, 0x0676, 0x04d0, 0x0467,
+ 0x04fd, 0x05d7, 0x069c, 0x079b, 0x08eb, 0x0a11,
+ 0x0a6e, 0x09d8, 0x08f7, 0x0873, 0x0803, 0x0736,
+ 0x062a, 0x052f, 0x0498, 0x0491, 0x04a6, 0x0445,
+ 0x0396, 0x031f, 0x0322, 0x03bf, 0x04af, 0x0547,
+ 0x0579, 0x05b9, 0x05f6, 0x0604, 0x05e2, 0x055e,
+ 0x04c8, 0x04c7, 0x0524, 0x055d, 0x0570, 0x0564,
+ 0x0541, 0x0528, 0x051a, 0x0544, 0x05ca, 0x0656,
+ 0x06a3, 0x06aa, 0x064b, 0x05ad, 0x0539, 0x0500,
+ 0x050d, 0x058f, 0x063b, 0x06b4, 0x0727, 0x07af,
+ 0x07ea, 0x0789, 0x06df, 0x06a9, 0x06f0, 0x06a5,
+ 0x0521, 0x0309, 0x0166, 0x00e6, 0x0196, 0x02b9,
+ 0x0370, 0x0379, 0x032c, 0x02ec, 0x0291, 0x01a8,
+ 0x0035, 0xfe96, 0xfcec, 0xfb1e, 0xf981, 0xf895,
+ 0xf822, 0xf7ab, 0xf772, 0xf7d4, 0xf877, 0xf8af,
+ 0xf84c, 0xf7f6, 0xf855, 0xf922, 0xf9bb, 0xf9a1,
+ 0xf8aa, 0xf76d, 0xf687, 0xf5fd, 0xf5ac, 0xf558,
+ 0xf501, 0xf50c, 0xf563, 0xf5b3, 0xf5dc, 0xf57d,
+ 0xf4b7, 0xf458, 0xf4a4, 0xf574, 0xf68b, 0xf773,
+ 0xf7f5, 0xf80d, 0xf7f0, 0xf82c, 0xf8da, 0xf9d6,
+ 0xfae7, 0xfb25, 0xfa4d, 0xf94d, 0xf8cc, 0xf927,
+ 0xfa22, 0xfaf0, 0xfc03, 0xfdeb, 0xffab, 0x0097,
+ 0x00c2, 0x0035, 0xffb2, 0xfff3, 0x010c, 0x02a5,
+ 0x0377, 0x02e4, 0x01e4, 0x00e8, 0xfff5, 0xff7f,
+ 0xff59, 0xff85, 0x008d, 0x01e1, 0x0299, 0x02aa,
+ 0x023c, 0x0199, 0x012c, 0x013b, 0x0205, 0x0344,
+ 0x0420, 0x0438, 0x0405, 0x03fb, 0x03e1, 0x0354,
+ 0x0253, 0x0132, 0x00b5, 0x0173, 0x02e2, 0x040a,
+ 0x0451, 0x0384, 0x0215, 0x009f, 0xff72, 0xfed8,
+ 0xfeaa, 0xfe99, 0xfed9, 0xff35, 0xff48, 0xff40,
+ 0xfec5, 0xfd79, 0xfbfa, 0xfafc, 0xfac7, 0xfaeb,
+ 0xfa5e, 0xf95b, 0xf91d, 0xfa00, 0xfc02, 0xfeaa,
+ 0x00b0, 0x019c, 0x01ae, 0x00fc, 0xffed, 0xfe9a,
+ 0xfcf7, 0xfbf6, 0xfc04, 0xfc3e, 0xfc42, 0xfc65,
+ 0xfcd6, 0xfd98, 0xfe4e, 0xfebf, 0xff4c, 0xfffd,
+ 0x004b, 0x001c, 0xffb8, 0xff71, 0xff8c, 0xfffd,
+ 0x0065, 0x0073, 0x000f, 0xff79, 0xff26, 0xff49,
+ 0xff9e, 0xffc9, 0xffbb, 0xff96, 0xff61, 0xff2e,
+ 0xff28, 0xff3f, 0xff5d, 0xffb1, 0x0074, 0x0183,
+ 0x0249, 0x0252, 0x0202, 0x0216, 0x02a8, 0x032c,
+ 0x02d3, 0x0175, 0x002f, 0xfff5, 0x00c7, 0x0266,
+ 0x03da, 0x03cd, 0x0247, 0x003e, 0xfe67, 0xfd1e,
+ 0xfc4d, 0xfc25, 0xfd25, 0xfe90, 0xff5b, 0xffb9,
+ 0x000e, 0x0075, 0x00da, 0x009d, 0xffbc, 0xff0a,
+ 0xfea0, 0xfe29, 0xfdc2, 0xfdae, 0xfe65, 0xffce,
+ 0x00c3, 0x0097, 0xffc4, 0xff2a, 0xff53, 0xffcb,
+ 0xffe0, 0xff94, 0xff1c, 0xfeb9, 0xfe88, 0xfe2d,
+ 0xfdad, 0xfd8e, 0xfdd2, 0xfe5b, 0xff62, 0x0106,
+ 0x0301, 0x048c, 0x0515, 0x04cf, 0x0424, 0x03a6,
+ 0x03ee, 0x04e3, 0x062f, 0x075d, 0x0797, 0x06fe,
+ 0x0687, 0x067d, 0x06ff, 0x07f1, 0x085c, 0x07ce,
+ 0x06ca, 0x05bf, 0x0534, 0x05b8, 0x0744, 0x0973,
+ 0x0bcc, 0x0de9, 0x0f72, 0x1026, 0x1054, 0x104d,
+ 0x0f9b, 0x0e2a, 0x0ca4, 0x0b9e, 0x0bbc, 0x0d23,
+ 0x0ec8, 0x0fb0, 0x0fb4, 0x0f0b, 0x0e0e, 0x0d0e,
+ 0x0c64, 0x0c67, 0x0cce, 0x0d0a, 0x0d0c, 0x0ce2,
+ 0x0c93, 0x0c3e, 0x0bcd, 0x0b46, 0x0b2c, 0x0bbd,
+ 0x0cb7, 0x0dbe, 0x0e77, 0x0ec1, 0x0efa, 0x0f32,
+ 0x0ebc, 0x0d84, 0x0c4e, 0x0b43, 0x0a3f, 0x09ad,
+ 0x09a7, 0x09ca, 0x09f8, 0x0a02, 0x098d, 0x0866,
+ 0x06ae, 0x0547, 0x04e5, 0x0501, 0x04f1, 0x0474,
+ 0x0333, 0x0141, 0xff24, 0xfd66, 0xfcb8, 0xfcf2,
+ 0xfd11, 0xfcde, 0xfcaf, 0xfc66, 0xfbda, 0xfb05,
+ 0xfa13, 0xf922, 0xf7b5, 0xf5ba, 0xf3ff, 0xf2dd,
+ 0xf244, 0xf210, 0xf1bd, 0xf152, 0xf17b, 0xf227,
+ 0xf2d8, 0xf37f, 0xf40d, 0xf444, 0xf434, 0xf439,
+ 0xf453, 0xf451, 0xf4ac, 0xf5fd, 0xf7e0, 0xf991,
+ 0xfaa8, 0xfaf1, 0xfa5b, 0xf923, 0xf7ef, 0xf77c,
+ 0xf810, 0xf956, 0xfa91, 0xfb46, 0xfbc5, 0xfc37,
+ 0xfc63, 0xfca0, 0xfd71, 0xfef6, 0x010f, 0x0304,
+ 0x042c, 0x04a9, 0x048f, 0x03e7, 0x0303, 0x021b,
+ 0x018a, 0x018e, 0x01d3, 0x023e, 0x02f8, 0x03f3,
+ 0x053d, 0x06d0, 0x0872, 0x099e, 0x096a, 0x07f8,
+ 0x069a, 0x05e3, 0x05c8, 0x061f, 0x065b, 0x06b3,
+ 0x0789, 0x07f3, 0x075e, 0x065b, 0x057e, 0x0550,
+ 0x05f2, 0x06bd, 0x0726, 0x0724, 0x071b, 0x075a,
+ 0x0759, 0x06a5, 0x05f0, 0x05d4, 0x05e1, 0x05bc,
+ 0x059a, 0x0541, 0x044d, 0x0352, 0x02f0, 0x02d0,
+ 0x02aa, 0x0266, 0x01cb, 0x0132, 0x00c5, 0x000e,
+ 0xff56, 0xff50, 0x0018, 0x0142, 0x021e, 0x0288,
+ 0x02cc, 0x02ae, 0x0229, 0x01c2, 0x0190, 0x01c1,
+ 0x0284, 0x034b, 0x03d1, 0x0470, 0x054b, 0x0633,
+ 0x069a, 0x0644, 0x05e2, 0x05cd, 0x0599, 0x0553,
+ 0x0557, 0x0576, 0x0550, 0x04cf, 0x040b, 0x0338,
+ 0x02e8, 0x03ad, 0x054d, 0x06d4, 0x07b6, 0x0866,
+ 0x0945, 0x098b, 0x089a, 0x0714, 0x0579, 0x03d0,
+ 0x029a, 0x023c, 0x025d, 0x027a, 0x0292, 0x02f4,
+ 0x0342, 0x02e3, 0x0244, 0x01df, 0x0177, 0x0101,
+ 0x0071, 0xffb2, 0xff29, 0xff0e, 0xff47, 0xffab,
+ 0xffc0, 0xff8f, 0xffad, 0x000c, 0x0051, 0x0086,
+ 0x00e0, 0x0151, 0x0181, 0x01a4, 0x0207, 0x01da,
+ 0x009a, 0xfefa, 0xfd6f, 0xfc47, 0xfbb3, 0xfb53,
+ 0xfb41, 0xfb9f, 0xfbb9, 0xfb8a, 0xfb9c, 0xfbc6,
+ 0xfb8f, 0xfaa0, 0xf95a, 0xf8c2, 0xf8c7, 0xf8da,
+ 0xf942, 0xf9bb, 0xf96e, 0xf892, 0xf7e5, 0xf77b,
+ 0xf71f, 0xf707, 0xf761, 0xf7c2, 0xf820, 0xf8d6,
+ 0xf951, 0xf8e6, 0xf7ee, 0xf6f8, 0xf65a, 0xf62a,
+ 0xf608, 0xf5d5, 0xf605, 0xf6f8, 0xf86f, 0xf9c3,
+ 0xfad0, 0xfbf1, 0xfd36, 0xfe90, 0xffc5, 0x005b,
+ 0x0080, 0x007b, 0x000e, 0xff37, 0xfe09, 0xfc8c,
+ 0xfb0c, 0xf992, 0xf84f, 0xf7ee, 0xf870, 0xf980,
+ 0xfafe, 0xfc85, 0xfdfe, 0xff4c, 0xffa8, 0xff54,
+ 0xff80, 0x0014, 0x006c, 0x0080, 0x006d, 0x0042,
+ 0xfff2, 0xff42, 0xfe35, 0xfce1, 0xfb57, 0xf9e5,
+ 0xf8cd, 0xf845, 0xf88c, 0xf976, 0xfa79, 0xfb55,
+ 0xfc16, 0xfcbd, 0xfd7d, 0xfe90, 0xff88, 0xffe9,
+ 0xffd9, 0xffa0, 0xffa2, 0xfffe, 0xffdf, 0xff23,
+ 0xfead, 0xfe61, 0xfe18, 0xfe8d, 0xff5c, 0x000d,
+ 0x016e, 0x0323, 0x0418, 0x04a2, 0x04f8, 0x049b,
+ 0x03ea, 0x039c, 0x0381, 0x0303, 0x023f, 0x01d5,
+ 0x01c6, 0x01bf, 0x019e, 0x010f, 0x0029, 0xffa6,
+ 0xffda, 0x00c6, 0x022c, 0x039e, 0x0550, 0x072a,
+ 0x0837, 0x07e7, 0x0650, 0x0424, 0x0239, 0x0044,
+ 0xfe1a, 0xfc57, 0xfb0f, 0xfad4, 0xfca1, 0xff5b,
+ 0x0138, 0x020b, 0x020a, 0x0105, 0xff61, 0xfe74,
+ 0xfeb4, 0xfee9, 0xfea0, 0xfe54, 0xfdb3, 0xfcf1,
+ 0xfc78, 0xfbbe, 0xfb4a, 0xfb77, 0xfaa2, 0xf923,
+ 0xf934, 0xfa3c, 0xfa9b, 0xfaeb, 0xfba2, 0xfc1a,
+ 0xfc91, 0xfd67, 0xfdfb, 0xfe28, 0xfe58, 0xfe34,
+ 0xfd4c, 0xfbd2, 0xfa78, 0xfa34, 0xfac1, 0xfaeb,
+ 0xfaf3, 0xfbc7, 0xfd05, 0xfe06, 0xff0c, 0x002e,
+ 0x0099, 0x0008, 0xff9d, 0xffd6, 0x0014, 0x007e,
+ 0x0166, 0x0253, 0x0315, 0x0423, 0x05bc, 0x075a,
+ 0x0848, 0x089a, 0x089b, 0x0849, 0x07a9, 0x06da,
+ 0x0648, 0x05fc, 0x05b3, 0x062f, 0x0732, 0x0784,
+ 0x0846, 0x09f3, 0x0af5, 0x0c70, 0x0f2a, 0x1020,
+ 0x0ec2, 0x0d7e, 0x0c68, 0x0aea, 0x0a6e, 0x0bd6,
+ 0x0d82, 0x0da2, 0x0cb2, 0x0ba6, 0x0a6e, 0x0986,
+ 0x09a1, 0x0ab0, 0x0c25, 0x0d50, 0x0e45, 0x0edf,
+ 0x0e6d, 0x0e3d, 0x0f6b, 0x1009, 0x0f1f, 0x0dd7,
+ 0x0c7e, 0x0b34, 0x0a99, 0x0ab2, 0x0aa9, 0x094d,
+ 0x070c, 0x054a, 0x03de, 0x02f6, 0x0389, 0x04a4,
+ 0x0530, 0x05ab, 0x06a3, 0x083f, 0x0973, 0x0915,
+ 0x0877, 0x081c, 0x064f, 0x041a, 0x0383, 0x0374,
+ 0x0359, 0x03a4, 0x0391, 0x03c7, 0x04cb, 0x04f8,
+ 0x054c, 0x0767, 0x089a, 0x0745, 0x04f3, 0x01d8,
+ 0xfe5c, 0xfc5b, 0xfc2d, 0xfc91, 0xfc61, 0xfb50,
+ 0xf98e, 0xf7cd, 0xf7c0, 0xf91b, 0xf97c, 0xf957,
+ 0xf961, 0xf851, 0xf7c1, 0xf8a2, 0xf859, 0xf7ab,
+ 0xf81e, 0xf771, 0xf614, 0xf5ef, 0xf577, 0xf508,
+ 0xf6c2, 0xf907, 0xf9b4, 0xf8ce, 0xf66f, 0xf42c,
+ 0xf455, 0xf5c7, 0xf67f, 0xf765, 0xf8b6, 0xf91c,
+ 0xf995, 0xfab9, 0xf9f5, 0xf74e, 0xf5bc, 0xf4cc,
+ 0xf3c2, 0xf4db, 0xf6e6, 0xf789, 0xf95c, 0xfbf6,
+ 0xfc69, 0xfe28, 0x0167, 0x00fc, 0x0031, 0x01f4,
+ 0x011f, 0xfef5, 0xff70, 0xffba, 0xffeb, 0x021b,
+ 0x045c, 0x062c, 0x06de, 0x04f0, 0x02c9, 0x019f,
+ 0xfffc, 0xfed0, 0xffc9, 0x02dc, 0x0602, 0x081f,
+ 0x0b35, 0x0dd5, 0x0cdf, 0x0b76, 0x0afa, 0x0827,
+ 0x047e, 0x0256, 0x0055, 0xfeea, 0xfef7, 0xff97,
+ 0x0053, 0x00a4, 0x00f0, 0x02bf, 0x0543, 0x06e1,
+ 0x0802, 0x0848, 0x0610, 0x02ba, 0x01bf, 0x034e,
+ 0x05a0, 0x0816, 0x08ac, 0x05eb, 0x0354, 0x03c6,
+ 0x051c, 0x05bc, 0x062a, 0x0524, 0x0211, 0x0048,
+ 0x01e8, 0x047a, 0x05bb, 0x054f, 0x02c8, 0xff2d,
+ 0xfd33, 0xfe1e, 0x00d5, 0x03cf, 0x0632, 0x06fc,
+ 0x05fe, 0x04fc, 0x048d, 0x03fa, 0x036c, 0x023f,
+ 0x00ca, 0x008a, 0x0069, 0x011c, 0x03f4, 0x052c,
+ 0x04e4, 0x06ed, 0x085b, 0x07ef, 0x0936, 0x0a8c,
+ 0x0955, 0x06c8, 0x048b, 0x0394, 0x0286, 0x018f,
+ 0x035d, 0x05ad, 0x0666, 0x06e6, 0x05d8, 0x04a2,
+ 0x053f, 0x0447, 0x0417, 0x06c9, 0x0572, 0x02b5,
+ 0x057f, 0x073b, 0x057b, 0x0601, 0x059d, 0x026a,
+ 0x01c8, 0x01f4, 0xff0e, 0xfbb4, 0xf8ae, 0xf586,
+ 0xf54f, 0xf73a, 0xf741, 0xf70f, 0xf92e, 0xfb5e,
+ 0xfccc, 0xfe96, 0xfefa, 0xfd15, 0xfbca, 0xfcab,
+ 0xfe64, 0x002a, 0x00fd, 0xff83, 0xfdb8, 0xfd24,
+ 0xfbb1, 0xfa92, 0xfb68, 0xfac2, 0xf990, 0xfb25,
+ 0xfc19, 0xfc31, 0xfefb, 0x01a4, 0x026d, 0x02e0,
+ 0x00f2, 0xfd3a, 0xfbb4, 0xfc8a, 0xfe69, 0x000b,
+ 0xff73, 0xfcbb, 0xfa58, 0xfae9, 0xfe03, 0x0151,
+ 0x0528, 0x07f0, 0x05f7, 0x0244, 0x0025, 0xfcd9,
+ 0xf94a, 0xf8d1, 0xfa66, 0xfd29, 0xffa6, 0xff48,
+ 0xfe9a, 0xffed, 0x00b2, 0x0161, 0x0403, 0x0637,
+ 0x0616, 0x03fc, 0x00bc, 0xfea0, 0xfd87, 0xfb5e,
+ 0xfa09, 0xfa44, 0xf9b6, 0xfa39, 0xfced, 0xfde3,
+ 0xfca5, 0xfc3e, 0xfd17, 0xfe05, 0xfe9f, 0xffbe,
+ 0x005a, 0xfd6c, 0xf98c, 0xf9e7, 0xfcd5, 0xfef5,
+ 0x0000, 0xffb4, 0xfeb8, 0xfe4e, 0xfee0, 0x00b3,
+ 0x0225, 0x01ec, 0x01eb, 0x0174, 0xfdd8, 0xfa5f,
+ 0xfb58, 0xfd67, 0xfd4f, 0xfe88, 0x0079, 0xfdc2,
+ 0xf9f8, 0xfb85, 0xff88, 0x0339, 0x077b, 0x09ab,
+ 0x0889, 0x06a0, 0x0472, 0x0207, 0x00a7, 0x00b0,
+ 0x0266, 0x05dd, 0x097b, 0x0b6b, 0x0c13, 0x0c75,
+ 0x0b9c, 0x0964, 0x06f8, 0x03df, 0x0194, 0x0230,
+ 0x0242, 0x0070, 0x011b, 0x03c9, 0x050b, 0x06a6,
+ 0x09f1, 0x0bae, 0x09c2, 0x06a8, 0x056d, 0x04ff,
+ 0x02fd, 0xffc1, 0xfcb6, 0xfbdc, 0xfe98, 0x0268,
+ 0x04fc, 0x06cd, 0x0675, 0x03d4, 0x026b, 0x0144,
+ 0xfe6e, 0xfd18, 0xfc61, 0xfa94, 0xfd5e, 0x03af,
+ 0x05ef, 0x0644, 0x0781, 0x05d3, 0x021c, 0xff2c,
+ 0xfc83, 0xfa7d, 0xf888, 0xf5a5, 0xf37a, 0xf3ba,
+ 0xf59d, 0xf687, 0xf859, 0xfdff, 0x0027, 0xfbfd,
+ 0xfab2, 0xfb07, 0xf791, 0xf603, 0xf6c0, 0xf584,
+ 0xf40d, 0xf281, 0xf22c, 0xf49e, 0xf577, 0xf5c6,
+ 0xf85b, 0xf934, 0xf99e, 0xfc51, 0xfd79, 0xfcb5,
+ 0xfc00, 0xfba1, 0xfc67, 0xfcb6, 0xfc29, 0xfccc,
+ 0xfd92, 0xfe40, 0xffa9, 0x00e6, 0x0190, 0xffa2,
+ 0xfca9, 0xfe2b, 0xffdd, 0xfdb1, 0xfe73, 0x0128,
+ 0x001e, 0x001a, 0x0290, 0x0221, 0xffc1, 0xfe91,
+ 0xfe7a, 0xff18, 0xff79, 0xffc0, 0x00de, 0x0159,
+ 0x0048, 0xff60, 0xff4b, 0xff94, 0x01a1, 0x06ef,
+ 0x0c53, 0x0d34, 0x0aef, 0x08b3, 0x067a, 0x068d,
+ 0x0a0f, 0x0b76, 0x09cc, 0x097e, 0x09b7, 0x0a5b,
+ 0x0d8a, 0x106a, 0x119b, 0x121e, 0x1134, 0x0fe3,
+ 0x0ccb, 0x07c2, 0x06ce, 0x07c2, 0x0727, 0x0a79,
+ 0x0cc6, 0x0829, 0x0506, 0x04c1, 0x055c, 0x0a5b,
+ 0x0ee5, 0x11e0, 0x1667, 0x159e, 0x11dc, 0x10ef,
+ 0x0bc7, 0x0480, 0x00ee, 0xfdad, 0xfcb1, 0xfc3b,
+ 0xfa36, 0xfe43, 0xfff1, 0xf8ed, 0xfa67, 0x0035,
+ 0xfa83, 0xf621, 0xf94e, 0xf97b, 0xf9f4, 0xfcbb,
+ 0xfc61, 0xfc50, 0xfc6d, 0xf859, 0xf62e, 0xf999,
+ 0xfa9e, 0xf6be, 0xf529, 0xf645, 0xf469, 0xf1b8,
+ 0xf156, 0xf03a, 0xefab, 0xf212, 0xf31d, 0xf1e0,
+ 0xf1b6, 0xf209, 0xf2cd, 0xf431, 0xf334, 0xf0c4,
+ 0xef61, 0xedbb, 0xedac, 0xf084, 0xf132, 0xef21,
+ 0xee3b, 0xedb9, 0xea71, 0xdf5d, 0xcb60, 0xba60,
+ 0xb904, 0xc9e1, 0xe828, 0x06d7, 0x196a, 0x1b94,
+ 0x0e70, 0xfe9d, 0xf969, 0xf9b9, 0xf8ee, 0xf923,
+ 0xf7ab, 0xf241, 0xeae6, 0xe22d, 0xdb29, 0xda04,
+ 0xe247, 0xf528, 0x0a1e, 0x1905, 0x1fe0, 0x1861,
+ 0x0360, 0xef5b, 0xe588, 0xe63c, 0xef38, 0xfb94,
+ 0x0666, 0x0bd9, 0x0be1, 0x0a15, 0x067e, 0x00a2,
+ 0xfaa4, 0xf5e2, 0xf47e, 0xf68c, 0xf9e0, 0xfe1a,
+ 0xffcc, 0xff22, 0x048e, 0x0e9a, 0x14c6, 0x17da,
+ 0x1862, 0x143f, 0x102a, 0x0f39, 0x0cde, 0x0632,
+ 0xff34, 0xfc6e, 0xfc62, 0xfd85, 0x031a, 0x0b61,
+ 0x0e0e, 0x0a7d, 0x07f4, 0x0690, 0x0251, 0xffc0,
+ 0x0233, 0x050e, 0x067a, 0x06d4, 0x07c4, 0x0d8b,
+ 0x1423, 0x173b, 0x1b01, 0x1b2e, 0x13c4, 0x0ee1,
+ 0x0f28, 0x0ec3, 0x0e65, 0x0e96, 0x1007, 0x141c,
+ 0x164e, 0x1511, 0x135c, 0x11ef, 0x134e, 0x17de,
+ 0x1b57, 0x1d20, 0x1cf1, 0x1858, 0x148f, 0x1a3c,
+ 0x2605, 0x2d52, 0x2d18, 0x269f, 0x1c3c, 0x1594,
+ 0x1632, 0x1aa7, 0x2055, 0x2201, 0x1ec1, 0x1f1f,
+ 0x24c8, 0x2c34, 0x34f5, 0x3b8e, 0x3f71, 0x4438,
+ 0x4b17, 0x54cf, 0x5b16, 0x5742, 0x4fcf, 0x4b30,
+ 0x4cd4, 0x558f, 0x5a28, 0x56e2, 0x52f3, 0x4ce6,
+ 0x47c5, 0x4942, 0x4bb5, 0x4fc7, 0x56f4, 0x584f,
+ 0x5437, 0x4fb0, 0x489c, 0x4273, 0x42b8, 0x43b0,
+ 0x3eca, 0x3875, 0x2eb5, 0x1a49, 0x0fdf, 0x1ea9,
+ 0x29cf, 0x278b, 0x2c1c, 0x2f2c, 0x28b3, 0x2765,
+ 0x29ff, 0x2533, 0x1764, 0x0a19, 0x05b0, 0x000b,
+ 0xfb52, 0x0387, 0x061a, 0xfdea, 0xfd29, 0xfb6d,
+ 0xf78f, 0xfbbf, 0xf847, 0xed78, 0xeaaa, 0xe8ac,
+ 0xe605, 0xe70f, 0xe689, 0xe55d, 0xe341, 0xe0eb,
+ 0xe402, 0xe5ed, 0xe280, 0xdef9, 0xda00, 0xd353,
+ 0xd069, 0xd6ca, 0xe19c, 0xe115, 0xd85d, 0xd60e,
+ 0xd695, 0xd563, 0xd27e, 0xcde0, 0xcd72, 0xcc99,
+ 0xc775, 0xc62d, 0xc732, 0xcd4c, 0xd74f, 0xd1a7,
+ 0xc74f, 0xcbff, 0xd023, 0xcecf, 0xceea, 0xd049,
+ 0xd6fd, 0xd379, 0xc392, 0xc37a, 0xc70f, 0xbf83,
+ 0xc0e3, 0xbfef, 0xb621, 0xbac1, 0xc1cc, 0xbe58,
+ 0xbb37, 0xb48b, 0xaed1, 0xb215, 0xb52a, 0xb7b2,
+ 0xb78e, 0xaef4, 0xa396, 0x98ac, 0x9b99, 0xb2a5,
+ 0xc634, 0xd2a6, 0xd9f0, 0xcc4f, 0xbf5b, 0xc214,
+ 0xb9f0, 0xb1e0, 0xbae2, 0xbe41, 0xb9a5, 0xb1be,
+ 0xa68a, 0xab9d, 0xb194, 0xa78e, 0xb19a, 0xc512,
+ 0xbf28, 0xc57a, 0xdcd0, 0xd7a3, 0xca25, 0xc99e,
+ 0xbdc8, 0xb223, 0xb63b, 0xbb6a, 0xc2e8, 0xcba1,
+ 0xccdc, 0xcd32, 0xcd07, 0xd0ad, 0xda91, 0xd329,
+ 0xc390, 0xcd45, 0xd9b9, 0xcd8f, 0xc1d0, 0xca38,
+ 0xda03, 0xe0fa, 0xdf8c, 0xdff2, 0xe013, 0xdcf2,
+ 0xdc62, 0xde9d, 0xe6e2, 0xf165, 0xeb41, 0xd817,
+ 0xcc38, 0xd102, 0xe281, 0xe759, 0xdd89, 0xe377,
+ 0xe9ac, 0xe031, 0xe58e, 0xebd6, 0xe3bf, 0xf132,
+ 0xfc2c, 0xe7e5, 0xe610, 0xf45c, 0xefb4, 0xf44b,
+ 0xfebe, 0xf9d3, 0x032c, 0x0e05, 0xfcea, 0xf357,
+ 0xfd9a, 0x0166, 0xffcd, 0xfcc5, 0xfc94, 0x06b3,
+ 0x0641, 0xf43b, 0xed72, 0xf98a, 0x0680, 0x0c71,
+ 0x0e8f, 0x0df3, 0x0cd2, 0x1187, 0x12bd, 0x0ad6,
+ 0x0fcc, 0x1459, 0xfc4f, 0xf236, 0x072d, 0x0937,
+ 0x04b2, 0x12e6, 0x11d9, 0x0c88, 0x1b12, 0x1ea5,
+ 0x16e2, 0x15b5, 0x128a, 0x14ee, 0x1a8d, 0x1956,
+ 0x1dfa, 0x1b1d, 0x115f, 0x207b, 0x290e, 0x1681,
+ 0x15d9, 0x1c61, 0x13e9, 0x1c01, 0x2a9f, 0x2a81,
+ 0x2705, 0x17fc, 0x0edd, 0x1ef6, 0x2158, 0x1bc5,
+ 0x2734, 0x1c49, 0x0ba0, 0x2147, 0x29f4, 0x155b,
+ 0x17d5, 0x20ef, 0x16f4, 0x1960, 0x27c2, 0x23e1,
+ 0x1775, 0x1c19, 0x2845, 0x2aa7, 0x3474, 0x4521,
+ 0x3c26, 0x2afd, 0x2f68, 0x3410, 0x3616, 0x3dd5,
+ 0x3a0a, 0x3b0d, 0x4838, 0x40f4, 0x3813, 0x430d,
+ 0x42d9, 0x3cd3, 0x3ec5, 0x3741, 0x36be, 0x412c,
+ 0x403e, 0x4a03, 0x59b5, 0x4c04, 0x3d7c, 0x3c14,
+ 0x3270, 0x3cfb, 0x55c5, 0x4c52, 0x3eb7, 0x49e5,
+ 0x488b, 0x3d34, 0x42ed, 0x4b3a, 0x4824, 0x3d9f,
+ 0x39eb, 0x47d1, 0x4ddc, 0x4009, 0x3e03, 0x46bf,
+ 0x4352, 0x43e9, 0x4cfe, 0x4622, 0x3be0, 0x4bea,
+ 0x60ea, 0x5793, 0x4867, 0x511c, 0x4e16, 0x37df,
+ 0x45eb, 0x66ad, 0x5e48, 0x4bfc, 0x5010, 0x49d5,
+ 0x417c, 0x5109, 0x59ef, 0x4ace, 0x3fc7, 0x4673,
+ 0x4841, 0x34ab, 0x2bf1, 0x3fd5, 0x42a1, 0x334d,
+ 0x3c44, 0x3fc8, 0x2c43, 0x2f1f, 0x3b27, 0x3812,
+ 0x42f5, 0x4a0f, 0x36f4, 0x2faf, 0x357d, 0x367f,
+ 0x3f9a, 0x3cae, 0x28b1, 0x2ae6, 0x32d8, 0x2767,
+ 0x2697, 0x2c4b, 0x20ca, 0x19c1, 0x1d5a, 0x19dc,
+ 0x1865, 0x1ece, 0x1e51, 0x1928, 0x1d59, 0x1fb4,
+ 0x118d, 0x093c, 0x114e, 0x0f24, 0x0ca1, 0x1b38,
+ 0x1791, 0x064d, 0x112d, 0x1c00, 0x0f51, 0x0bf7,
+ 0x0d2f, 0x0212, 0xff33, 0x06f1, 0x0be6, 0x0a01,
+ 0x03d8, 0x0bbc, 0x1755, 0x0bc3, 0x072f, 0x12b6,
+ 0x0392, 0xf47f, 0x09c9, 0x159e, 0x0cfd, 0x1013,
+ 0x0ff1, 0x0831, 0x09c3, 0x03f8, 0xf666, 0xf541,
+ 0xf920, 0xfed3, 0x0780, 0x0190, 0xf2ba, 0xee49,
+ 0xeb11, 0xe666, 0xef08, 0xf892, 0xee34, 0xe257,
+ 0xeb83, 0xf5e6, 0xf214, 0xf05c, 0xeb59, 0xdbb4,
+ 0xdf43, 0xefba, 0xe7c5, 0xdd42, 0xe692, 0xe757,
+ 0xe246, 0xebd3, 0xf1d8, 0xebed, 0xe3c2, 0xda35,
+ 0xda76, 0xe407, 0xe232, 0xdacd, 0xddeb, 0xe6ff,
+ 0xec7c, 0xe38e, 0xd46a, 0xd8be, 0xe497, 0xe519,
+ 0xeeb2, 0xfa5d, 0xea60, 0xd8b3, 0xe1c8, 0xede7,
+ 0xed90, 0xe6de, 0xd780, 0xc488, 0xb975, 0xb9e1,
+ 0xc53c, 0xc99c, 0xb5c8, 0xa3f2, 0xacf9, 0xb40e,
+ 0xa6ed, 0xa3f6, 0xafb9, 0xac49, 0xa251, 0xa8f3,
+ 0xaead, 0xa994, 0xaba9, 0xafd8, 0xacb2, 0xae5e,
+ 0xac86, 0x9b71, 0x956c, 0xa8b6, 0xbbe8, 0xbbf2,
+ 0xad67, 0xa34c, 0xaa3b, 0xb042, 0xab94, 0xb162,
+ 0xba76, 0xac4b, 0x9ce5, 0xa938, 0xb9b9, 0xb36e,
+ 0xa426, 0xa2a7, 0xac0d, 0xb017, 0xb279, 0xbce9,
+ 0xbeb8, 0xb30b, 0xb745, 0xcb25, 0xd012, 0xcd05,
+ 0xd73c, 0xe321, 0xe59a, 0xe5fc, 0xe7d3, 0xe907,
+ 0xe516, 0xdf45, 0xe672, 0xf143, 0xe63a, 0xd730,
+ 0xe48d, 0xfa69, 0xfb23, 0xf67c, 0xfb0d, 0xf66c,
+ 0xe7d4, 0xeb8c, 0x0066, 0x0428, 0xf11f, 0xe6a5,
+ 0xf2f1, 0xff0c, 0xf982, 0xf241, 0xf479, 0xf093,
+ 0xe94d, 0xf67f, 0x0c65, 0x0adf, 0xf930, 0xf46e,
+ 0x0014, 0x0c28, 0x0ef8, 0x09a1, 0x0164, 0xfc2d,
+ 0xffae, 0x0af6, 0x128b, 0x0c47, 0xfcbb, 0xf218,
+ 0xf477, 0x0019, 0x0c59, 0x1016, 0x069c, 0xfd24,
+ 0x055a, 0x1183, 0x0bbe, 0x03b9, 0x0898, 0x0820,
+ 0x00cc, 0x0680, 0x1275, 0x10ec, 0x02cb, 0xfb8b,
+ 0x072b, 0x0d04, 0xfa06, 0xeeeb, 0xf7e4, 0xf235,
+ 0xe218, 0xe5bf, 0xf0c9, 0xec5e, 0xdf5c, 0xde03,
+ 0xe9bf, 0xea20, 0xdea3, 0xe326, 0xedbb, 0xe4c1,
+ 0xd8c2, 0xdaeb, 0xddab, 0xd9c7, 0xda5b, 0xe517,
+ 0xeee3, 0xed99, 0xe7d9, 0xe5ca, 0xe2e8, 0xd7b5,
+ 0xcd24, 0xd366, 0xdb7c, 0xd2bb, 0xcfd9, 0xd985,
+ 0xd7bd, 0xd233, 0xd4b0, 0xdb16, 0xe8f3, 0xe856,
+ 0xd523, 0xda38, 0xe4ed, 0xd64a, 0xdc8f, 0xed34,
+ 0xd369, 0xbbff, 0xc7ab, 0xcdc3, 0xca1d, 0xc884,
+ 0xc642, 0xcdf5, 0xd0bf, 0xc3c7, 0xc55e, 0xcdad,
+ 0xbeef, 0xb6a4, 0xcc95, 0xdadd, 0xd163, 0xd0d5,
+ 0xd52b, 0xc612, 0xc3a0, 0xd95c, 0xdb83, 0xd4f3,
+ 0xdcbd, 0xd573, 0xd04c, 0xe826, 0xf5c5, 0xf4e8,
+ 0xfac6, 0xf52d, 0xeed1, 0xf92e, 0x010d, 0x0838,
+ 0x1097, 0x0b9a, 0xffb8, 0xf0f5, 0xe890, 0xf1be,
+ 0xf65a, 0xf715, 0xfef2, 0xf581, 0xeaa8, 0xf1a5,
+ 0xf20c, 0x055d, 0x2891, 0x180e, 0xfcdf, 0x0922,
+ 0xfd97, 0xe9e1, 0x0bda, 0x26de, 0x1579, 0x0cd7,
+ 0x1193, 0x0b6f, 0x0867, 0x0c6b, 0x08a1, 0x0539,
+ 0x0872, 0xfe8a, 0xf160, 0xf707, 0xf727, 0xf731,
+ 0x0d3d, 0x0a87, 0xf889, 0x0bf0, 0x0bac, 0xf23a,
+ 0x04cf, 0x06b3, 0xe4dc, 0xf868, 0x0f16, 0xf327,
+ 0xed46, 0xf8c7, 0xfa59, 0x0d65, 0x0b7c, 0xf044,
+ 0xf3f9, 0xf3de, 0xd913, 0xd80a, 0xe8d3, 0xecec,
+ 0xf618, 0x02e9, 0xfbd5, 0xee90, 0xf7ec, 0xff2a,
+ 0xe9f5, 0xe6c0, 0xf8e6, 0xe97f, 0xe08a, 0x020b,
+ 0x0c04, 0xfd01, 0x0707, 0x1421, 0x0e2c, 0x02f2,
+ 0x00ae, 0x08d0, 0x0324, 0xfb49, 0x0c58, 0x0eaf,
+ 0xfb51, 0xfb2e, 0xfffa, 0x05df, 0x12c0, 0x07ef,
+ 0xfedc, 0x07d8, 0xfc01, 0xffab, 0x1d39, 0x111e,
+ 0x0029, 0x14d4, 0x1487, 0x0293, 0x0202, 0x013d,
+ 0x06c8, 0x1349, 0x13c0, 0x13c7, 0x13a0, 0x15f4,
+ 0x212c, 0x140f, 0xfedd, 0x0fb3, 0x192e, 0xfaa0,
+ 0xe901, 0xf878, 0x06e9, 0x02ca, 0xfd5b, 0xff53,
+ 0xf62f, 0xf196, 0x005b, 0xfa59, 0xec0a, 0xfa0f,
+ 0xfb04, 0xee37, 0xf916, 0xfb99, 0xf39a, 0xfa75,
+ 0xf790, 0xf28c, 0xf544, 0xe97e, 0xec0b, 0xfe9c,
+ 0xf85b, 0xf0a2, 0xf157, 0xed5c, 0xfac4, 0xf5ea,
+ 0xcec5, 0xd451, 0xf837, 0xf46c, 0xeca5, 0xfa25,
+ 0xfdb0, 0xf8e1, 0xf3fc, 0xefc6, 0xf359, 0xf7e6,
+ 0xf597, 0xf4c7, 0x072b, 0x19fa, 0x09bc, 0x08b4,
+ 0x2b6e, 0x15e7, 0xe9a0, 0x01b0, 0x0741, 0xe845,
+ 0x0810, 0x2575, 0x0bde, 0x0fcf, 0x210f, 0x18b0,
+ 0x1ae1, 0x0e79, 0xf1e4, 0xfc5a, 0x0f10, 0x06fa,
+ 0x0746, 0x1d17, 0x322d, 0x30a0, 0x24af, 0x27db,
+ 0x2003, 0x0898, 0x0819, 0x0d7b, 0x0e8f, 0x1f40,
+ 0x212b, 0x1a48, 0x3083, 0x3ba5, 0x286a, 0x1a3d,
+ 0x0edc, 0x0530, 0x03ed, 0x0353, 0x0f70, 0x1df9,
+ 0x21c3, 0x2f30, 0x2bdc, 0x1243, 0x1bd0, 0x266d,
+ 0x082d, 0x027e, 0x18c0, 0x19ec, 0x1b08, 0x227b,
+ 0x22d9, 0x247a, 0x1cac, 0x1dd5, 0x37ec, 0x32fa,
+ 0x0d74, 0x0295, 0x0a78, 0x100c, 0x198d, 0x2100,
+ 0x2d90, 0x3839, 0x2a58, 0x1e25, 0x209c, 0x145b,
+ 0x043c, 0x051f, 0x09f0, 0x0ea5, 0x1509, 0x1b44,
+ 0x2491, 0x289e, 0x276c, 0x2d39, 0x2a65, 0x121f,
+ 0x0124, 0x0935, 0x14c0, 0x1d1b, 0x2dd3, 0x2eaa,
+ 0x172f, 0x19dd, 0x2d30, 0x199e, 0x0842, 0x187d,
+ 0x136f, 0x0679, 0x1512, 0x1c31, 0x2377, 0x3051,
+ 0x16ee, 0x0398, 0x1acf, 0x183e, 0x0036, 0x0453,
+ 0x0a3c, 0x0f25, 0x1dcb, 0x1aac, 0x17d0, 0x241c,
+ 0x1e8c, 0x12ca, 0x16f0, 0x155b, 0x0861, 0x01ae,
+ 0x0cd8, 0x1daa, 0x1d1a, 0x1e40, 0x2cd6, 0x233a,
+ 0x092a, 0x0530, 0x0a71, 0x06fa, 0xfc6f, 0xf501,
+ 0x0236, 0x0fd0, 0x0d93, 0x1956, 0x282c, 0x1de2,
+ 0x134a, 0x1519, 0x1862, 0x13f3, 0xffe2, 0x024e,
+ 0x257e, 0x2562, 0x0b90, 0x12cd, 0x18b5, 0x0a42,
+ 0x096d, 0x0b58, 0x0bc5, 0x1601, 0x15ce, 0x0f99,
+ 0x12b6, 0x1674, 0x1cb6, 0x1c70, 0x156e, 0x23a0,
+ 0x2af7, 0x116d, 0x0cbb, 0x1fc0, 0x1aea, 0x1550,
+ 0x221d, 0x251a, 0x22fe, 0x27d2, 0x2843, 0x2677,
+ 0x2670, 0x2658, 0x2b47, 0x310e, 0x2e22, 0x2375,
+ 0x1a76, 0x1d58, 0x2315, 0x1c9d, 0x1a24, 0x2b9f,
+ 0x3b1c, 0x370d, 0x30b6, 0x39cd, 0x4719, 0x425b,
+ 0x3291, 0x34fb, 0x459b, 0x469a, 0x3cdc, 0x3cc0,
+ 0x3a96, 0x2d24, 0x2437, 0x2534, 0x280f, 0x22bf,
+ 0x124c, 0x113c, 0x2833, 0x2ad3, 0x1603, 0x1865,
+ 0x25f7, 0x21f6, 0x2530, 0x3067, 0x274e, 0x1a50,
+ 0x1bb6, 0x1a21, 0x183d, 0x28d6, 0x374e, 0x2601,
+ 0x0f53, 0x1740, 0x1faa, 0x0d44, 0x0728, 0x161f,
+ 0x1099, 0x051e, 0x12b1, 0x1916, 0x10ad, 0x1dc8,
+ 0x280d, 0x1013, 0x0388, 0x1043, 0x0764, 0xf74c,
+ 0x01e1, 0x0952, 0x05a6, 0x09b3, 0x015d, 0xf7f1,
+ 0x0a84, 0x0ff1, 0xfdcf, 0x0463, 0x0bee, 0xfc76,
+ 0x0913, 0x22fb, 0x1509, 0x055b, 0x0cd5, 0x0ac7,
+ 0x0e26, 0x1ed3, 0x1a35, 0x12aa, 0x18e5, 0x0cf7,
+ 0x0605, 0x1c67, 0x1fc3, 0x15ba, 0x24a3, 0x25e3,
+ 0x1645, 0x1ce0, 0x12dc, 0xf49e, 0x0263, 0x1b79,
+ 0x0e46, 0x0acd, 0x1d92, 0x1d00, 0x1041, 0x0eea,
+ 0x18cf, 0x1c2a, 0x0740, 0xf9b9, 0x1076, 0x232b,
+ 0x1fdd, 0x239d, 0x271f, 0x1dd9, 0x1542, 0x0c97,
+ 0x0ac5, 0x15f1, 0x0d05, 0xf124, 0xf401, 0x0bbb,
+ 0x0b58, 0x0228, 0x0a60, 0x1600, 0x1a32, 0x137f,
+ 0xfffc, 0xf6eb, 0xffee, 0xffb1, 0xfa70, 0x0883,
+ 0x1acd, 0x1cc3, 0x118e, 0x0379, 0x035f, 0x092c,
+ 0xf824, 0xe65b, 0xf344, 0x011d, 0xfd48, 0xfbf4,
+ 0xfd3c, 0xfeda, 0x0304, 0xfef7, 0xffcc, 0x093c,
+ 0xfd23, 0xeffb, 0xff30, 0x03aa, 0xf8dc, 0x00f4,
+ 0x01ec, 0xf1aa, 0xf370, 0xf9bb, 0xf281, 0xf131,
+ 0xf4ca, 0xfc97, 0x0eed, 0x145f, 0x09a5, 0x037c,
+ 0xf9d1, 0xeed5, 0xf689, 0x029a, 0x0369, 0x0060,
+ 0xf873, 0xf616, 0x05dd, 0x0bd4, 0x00c6, 0x0267,
+ 0xfd93, 0xe6bb, 0xec28, 0xf89a, 0xe229, 0xe1f8,
+ 0xfc30, 0xef63, 0xe4a1, 0xf970, 0xf095, 0xe003,
+ 0xeae5, 0xe176, 0xd679, 0xeaa1, 0xe917, 0xdb92,
+ 0xf05c, 0xfcc0, 0xf18d, 0xf6c6, 0xfe0e, 0xf9f6,
+ 0xff0a, 0xfee0, 0xf2a0, 0xf23a, 0xf3c7, 0xf1a0,
+ 0x00e1, 0x0665, 0xef17, 0xee95, 0x042d, 0xfa02,
+ 0xebe3, 0xfc86, 0x015a, 0xf203, 0xf14e, 0xf711,
+ 0xf618, 0xf907, 0xfd44, 0xfc51, 0xfce4, 0x07af,
+ 0x1257, 0x01bb, 0xe39f, 0xe317, 0xf07a, 0xec99,
+ 0xf007, 0x0068, 0x0357, 0x049b, 0x083e, 0xfb01,
+ 0xf590, 0x01f8, 0xf9cc, 0xeb32, 0xf6cb, 0xfcb0,
+ 0xf2a1, 0xf561, 0xf624, 0xed06, 0xf778, 0x041c,
+ 0xed4e, 0xd085, 0xda11, 0xef29, 0xe5c7, 0xda39,
+ 0xea0a, 0xf0f1, 0xe4d0, 0xe92c, 0xf700, 0xf9c3,
+ 0xf5af, 0xe78e, 0xdc6c, 0xe3d1, 0xe4f9, 0xd93c,
+ 0xd84d, 0xe05b, 0xe52d, 0xe141, 0xd75d, 0xd8fa,
+ 0xdf94, 0xd783, 0xd021, 0xd5f1, 0xd6d2, 0xc804,
+ 0xbc35, 0xcaaf, 0xdd34, 0xd2d6, 0xc413, 0xc503,
+ 0xc71b, 0xd150, 0xde66, 0xdc54, 0xd972, 0xd323,
+ 0xc390, 0xc295, 0xc712, 0xc5ca, 0xcfc9, 0xd52c,
+ 0xcc16, 0xc53a, 0xbe63, 0xbd0c, 0xba54, 0xa7cf,
+ 0xab5f, 0xc328, 0xc1c4, 0xc345, 0xd16f, 0xc7f7,
+ 0xc48f, 0xd29d, 0xca55, 0xba4c, 0xbbcd, 0xc6ef,
+ 0xd15a, 0xcf27, 0xcb3a, 0xce83, 0xcb1a, 0xcc67,
+ 0xd042, 0xc82e, 0xcdf7, 0xd543, 0xc485, 0xc06b,
+ 0xc8ef, 0xcbbc, 0xdcc3, 0xe066, 0xd136, 0xe083,
+ 0xed95, 0xd829, 0xce6d, 0xd319, 0xcf32, 0xcb2b,
+ 0xcc01, 0xd30c, 0xd0c9, 0xc7bd, 0xd905, 0xe19b,
+ 0xc729, 0xc4bf, 0xd353, 0xc9d2, 0xc9d9, 0xd8ae,
+ 0xe2b5, 0xebf8, 0xe0fd, 0xd3ca, 0xe2f4, 0xe16a,
+ 0xca29, 0xca5e, 0xcf77, 0xc768, 0xc3bf, 0xc835,
+ 0xd3d5, 0xd578, 0xccb7, 0xda25, 0xe3ef, 0xcf9d,
+ 0xcfe8, 0xe3c9, 0xd89c, 0xc6cd, 0xcf8a, 0xda9e,
+ 0xd853, 0xd791, 0xe1b6, 0xe8b7, 0xe39e, 0xde7d,
+ 0xd4e1, 0xc549, 0xc9ac, 0xd86f, 0xd646, 0xd4cf,
+ 0xdecc, 0xe448, 0xe04d, 0xd44a, 0xd4e5, 0xe7be,
+ 0xddde, 0xc206, 0xd095, 0xe524, 0xd80b, 0xda16,
+ 0xea3f, 0xe549, 0xe1bc, 0xe26a, 0xddf4, 0xe504,
+ 0xe2a2, 0xd329, 0xdba1, 0xe56b, 0xd98f, 0xd66c,
+ 0xdba1, 0xe06b, 0xe950, 0xe27c, 0xd3eb, 0xd48e,
+ 0xd48a, 0xd17d, 0xd62c, 0xde90, 0xeac1, 0xe9a6,
+ 0xda01, 0xe122, 0xf158, 0xe588, 0xd4a8, 0xd684,
+ 0xdd48, 0xd994, 0xd296, 0xdb34, 0xe4cc, 0xe3e3,
+ 0xf030, 0xf828, 0xe97c, 0xe6e9, 0xed55, 0xe8fb,
+ 0xe2d2, 0xd669, 0xd6a4, 0xe6ab, 0xe0fc, 0xe5b4,
+ 0xf957, 0xe2af, 0xd989, 0xf15a, 0xd593, 0xbd91,
+ 0xdcc9, 0xdfdd, 0xd86c, 0xf065, 0xf1e8, 0xea19,
+ 0xf47d, 0xf543, 0xf759, 0xf964, 0xe949, 0xe073,
+ 0xe6bf, 0xefe4, 0xf2cb, 0xeb66, 0xf0dc, 0xf866,
+ 0xedc8, 0xf000, 0xefdc, 0xdddc, 0xe481, 0xe79b,
+ 0xd82d, 0xe5ed, 0xe763, 0xd883, 0xf5ea, 0x00b7,
+ 0xe961, 0xfad1, 0x01b6, 0xe90e, 0xf52b, 0x0200,
+ 0xfafd, 0x0781, 0x04f2, 0xf3fa, 0xfded, 0x0399,
+ 0xf9ea, 0xf4b2, 0xec98, 0xee43, 0xf42c, 0xe9b3,
+ 0xf1b1, 0x0adc, 0x0358, 0xf594, 0x044c, 0x037f,
+ 0xeb38, 0xedd0, 0xfeaa, 0xf853, 0xf48a, 0xf969,
+ 0xf039, 0xf5e4, 0x0550, 0xf841, 0xfd17, 0x19b5,
+ 0x064a, 0xe74e, 0xeeac, 0xece9, 0xe8a0, 0xf6f8,
+ 0xf1ec, 0xf1bf, 0x0ba7, 0x0c3e, 0xfe09, 0x039c,
+ 0x0436, 0xfcab, 0xf45b, 0xe395, 0xe300, 0xf2f7,
+ 0xf0cd, 0xe9b6, 0xf3cf, 0xfd17, 0xfaee, 0xf589,
+ 0xf61d, 0x0001, 0x065a, 0x022f, 0xff2d, 0xffd6,
+ 0xfde8, 0xfb3b, 0xfba5, 0x0037, 0x02f3, 0xfd35,
+ 0xfa0e, 0xff5e, 0xfdb5, 0xfab7, 0x06f1, 0x0d16,
+ 0x00ab, 0xfeff, 0x09a2, 0x07d2, 0x05ae, 0x0d02,
+ 0x0818, 0xfff1, 0x0751, 0x054b, 0xf7ec, 0xfcf7,
+ 0x0505, 0x0416, 0x0e81, 0x143c, 0x0f09, 0x14f8,
+ 0x1254, 0x09e7, 0x15a7, 0x10f3, 0xfcb4, 0x04b4,
+ 0x0b1a, 0x053b, 0x0ef1, 0x101e, 0x0b4e, 0x126f,
+ 0x0fac, 0x122a, 0x1652, 0x0089, 0xffd1, 0x137b,
+ 0x0b22, 0x0f18, 0x20cd, 0x15fd, 0x155b, 0x2012,
+ 0x173d, 0x15c5, 0x0fc2, 0xff31, 0x0aca, 0x1330,
+ 0x07d4, 0x1260, 0x1c1c, 0x1432, 0x1bdf, 0x2438,
+ 0x19db, 0x1097, 0x1064, 0x15fe, 0x18fa, 0x12ee,
+ 0x0f85, 0x1384, 0x1685, 0x14e1, 0x16d4, 0x21b2,
+ 0x21bc, 0x16a0, 0x1a80, 0x1bf3, 0x0e3d, 0x0e7a,
+ 0x143a, 0x12e2, 0x19b4, 0x18a1, 0x10f0, 0x1a8d,
+ 0x21c1, 0x1f81, 0x1bd9, 0x0c90, 0x0911, 0x0fd1,
+ 0xfee5, 0xfc00, 0x115e, 0x10b5, 0x177f, 0x287e,
+ 0x1316, 0x087a, 0x1b24, 0x1050, 0x0933, 0x1680,
+ 0x06d2, 0x03e1, 0x1e0a, 0x16d5, 0x0d73, 0x21af,
+ 0x2122, 0x16f6, 0x1fff, 0x1f6a, 0x16c9, 0x1661,
+ 0x1340, 0x0ef6, 0x0d4b, 0x0d5f, 0x11c9, 0x1226,
+ 0x12a5, 0x1c90, 0x1e7b, 0x146c, 0x1260, 0x1795,
+ 0x17aa, 0x16e0, 0x1cd0, 0x218b, 0x1e53, 0x1d95,
+ 0x1f91, 0x1b58, 0x1cbe, 0x2770, 0x28b4, 0x1e7d,
+ 0x169b, 0x1832, 0x1de6, 0x1d1d, 0x1a79, 0x1ba8,
+ 0x1c8d, 0x2314, 0x257f, 0x14c8, 0x0cab, 0x152d,
+ 0x0f58, 0x0992, 0x1717, 0x1be9, 0x160e, 0x1cc9,
+ 0x26e1, 0x22cd, 0x178d, 0x174c, 0x1bd9, 0x142b,
+ 0x1408, 0x2130, 0x1d06, 0x1803, 0x24d9, 0x245f,
+ 0x1f47, 0x24c5, 0x1862, 0x0ace, 0x118b, 0x14fb,
+ 0x1a55, 0x1e2e, 0x14b8, 0x200f, 0x2b5f, 0x15cd,
+ 0x155c, 0x23f2, 0x17af, 0x1d12, 0x2d26, 0x2102,
+ 0x20c7, 0x280e, 0x1b38, 0x1ad8, 0x215c, 0x1fb7,
+ 0x25aa, 0x2263, 0x1a00, 0x1e87, 0x1e01, 0x209a,
+ 0x2727, 0x1efa, 0x21c9, 0x2c01, 0x23f6, 0x2040,
+ 0x2030, 0x1ddd, 0x2880, 0x2546, 0x174e, 0x1faa,
+ 0x23a4, 0x1915, 0x131c, 0x10a9, 0x1e1a, 0x290b,
+ 0x1d69, 0x2408, 0x30c7, 0x24e9, 0x27d6, 0x2e35,
+ 0x1e6b, 0x2075, 0x286e, 0x1d2f, 0x1cab, 0x20c4,
+ 0x1c59, 0x1b8a, 0x15ea, 0x1596, 0x1e8f, 0x1769,
+ 0x14f7, 0x237b, 0x1eeb, 0x1366, 0x19a2, 0x1a6c,
+ 0x158b, 0x1e9b, 0x2559, 0x1bb9, 0x168a, 0x1eab,
+ 0x1da3, 0x1563, 0x1b5e, 0x2006, 0x19c3, 0x1992,
+ 0x1450, 0x0980, 0x0f5c, 0x15c8, 0x1512, 0x18fd,
+ 0x0f5a, 0x0515, 0x0fa5, 0x0b63, 0xffbc, 0x0d86,
+ 0x1065, 0x06b7, 0x107f, 0x0ff5, 0x0583, 0x0cdc,
+ 0x0c1e, 0x07cd, 0x10f2, 0x086b, 0xf8f7, 0xfa23,
+ 0xfaeb, 0x03c5, 0x0b19, 0xf92d, 0xf51b, 0xff25,
+ 0xf238, 0xf15b, 0x00ce, 0xfba2, 0xff83, 0x0df9,
+ 0x01df, 0xf9ca, 0x0655, 0x080d, 0x01e6, 0xfe76,
+ 0xfd83, 0x0338, 0x0422, 0x0489, 0x0f62, 0x10d5,
+ 0x0ce0, 0x10fe, 0x095f, 0x04c9, 0x14fd, 0x13ec,
+ 0x072b, 0x12a0, 0x1831, 0x0b0b, 0x0b6f, 0x0f93,
+ 0x0ea1, 0x1bcd, 0x25ac, 0x1ae9, 0x1390, 0x191e,
+ 0x1b40, 0x1817, 0x1967, 0x1bcb, 0x1934, 0x19ab,
+ 0x1c71, 0x17e4, 0x138a, 0x15d8, 0x1e01, 0x29e6,
+ 0x2838, 0x1ef0, 0x271d, 0x2e42, 0x299a, 0x2d4a,
+ 0x2b35, 0x211d, 0x2640, 0x29a6, 0x2445, 0x2548,
+ 0x1f0a, 0x171f, 0x1e84, 0x218f, 0x18c8, 0x10bc,
+ 0x1054, 0x1a29, 0x1951, 0x097d, 0x0b54, 0x175f,
+ 0x14fe, 0x16b2, 0x1f34, 0x1bec, 0x1cc0, 0x292e,
+ 0x2563, 0x15af, 0x15d2, 0x154c, 0x086f, 0x0d63,
+ 0x1b51, 0x12e3, 0x06ef, 0x096f, 0x0f68, 0x118f,
+ 0x0ca2, 0x0987, 0x0966, 0xfffc, 0xfd47, 0x02c2,
+ 0xfb0a, 0xf85a, 0x006d, 0x01a8, 0x07a3, 0x0992,
+ 0xfefc, 0x0251, 0x0946, 0x05e1, 0x0448, 0xfc92,
+ 0xfaf1, 0x02bf, 0xf784, 0xf6d3, 0x08b2, 0xfb7a,
+ 0xeeae, 0xfbfc, 0xf30d, 0xe8f0, 0xf9de, 0xfb67,
+ 0xf348, 0xfa15, 0xf6cf, 0xeb19, 0xec95, 0xf169,
+ 0xf103, 0xf228, 0xf64e, 0xf57e, 0xee19, 0xf053,
+ 0xfeb8, 0x019b, 0xf8d6, 0xf8c6, 0xf631, 0xeab5,
+ 0xf08a, 0xfa3a, 0xed8e, 0xec3d, 0xfa55, 0xef40,
+ 0xe471, 0xf495, 0xfc36, 0xfa4f, 0x0145, 0xfd97,
+ 0xf096, 0xee4e, 0xf03c, 0xf19c, 0xf8cd, 0xff1f,
+ 0xfd90, 0xfcb5, 0xfd4b, 0xf581, 0xf189, 0xfb1b,
+ 0xffc8, 0xfcd1, 0xfc98, 0xfc7a, 0xfe4a, 0xfd1b,
+ 0xf68d, 0xfb39, 0x0277, 0xfe9b, 0xfddf, 0xfdde,
+ 0xfa38, 0xfdaa, 0xff75, 0xfae4, 0xf458, 0xe9ca,
+ 0xe958, 0xf2b1, 0xf15b, 0xecbe, 0xed5d, 0xeaf8,
+ 0xe949, 0xedd7, 0xf453, 0xf56e, 0xf637, 0xfefb,
+ 0xff01, 0xf60f, 0xf7be, 0xf673, 0xf291, 0xf6d2,
+ 0xecee, 0xe724, 0xf692, 0xf260, 0xe908, 0xf3e6,
+ 0xedd4, 0xe20f, 0xe7af, 0xe3b5, 0xde6b, 0xe22e,
+ 0xdfe7, 0xe3a5, 0xe6cd, 0xdffb, 0xe95d, 0xf38f,
+ 0xe59d, 0xdeaa, 0xe560, 0xdf41, 0xd922, 0xe000,
+ 0xdf68, 0xdbde, 0xe42c, 0xe132, 0xd393, 0xd8c6,
+ 0xe1ba, 0xe221, 0xe97b, 0xec68, 0xe67e, 0xe1bd,
+ 0xddcb, 0xe38e, 0xe2b9, 0xd66f, 0xe592, 0xf069,
+ 0xd742, 0xd467, 0xe067, 0xd910, 0xe588, 0xf704,
+ 0xefb3, 0xeed2, 0xf085, 0xe94d, 0xe771, 0xe981,
+ 0xf040, 0xeb7e, 0xdac2, 0xe2f4, 0xeea3, 0xe7ca,
+ 0xe921, 0xe7ba, 0xe881, 0xf70b, 0xeeb0, 0xe4f5,
+ 0xf0fa, 0xef58, 0xef8c, 0xf152, 0xe2df, 0xefd9,
+ 0xfc2e, 0xe4ec, 0xec3a, 0x0240, 0xf772, 0xf665,
+ 0xf954, 0xef24, 0xf7e0, 0xfd0c, 0xef11, 0xed58,
+ 0xf4a4, 0xf671, 0xf1ce, 0xeee5, 0xf6c5, 0xf6c8,
+ 0xf021, 0xf37d, 0xed04, 0xe11c, 0xe351, 0xe3d8,
+ 0xe47e, 0xe8c9, 0xe3b8, 0xe26c, 0xe5cc, 0xe418,
+ 0xe8d8, 0xeac5, 0xe4d0, 0xe8fe, 0xec9c, 0xe585,
+ 0xe2bd, 0xe687, 0xe7e5, 0xe2de, 0xe0e9, 0xe7c4,
+ 0xe5ea, 0xdd5f, 0xe109, 0xe64b, 0xe297, 0xdd0d,
+ 0xdc2b, 0xe305, 0xe4c0, 0xdee1, 0xe211, 0xe361,
+ 0xdcb7, 0xe157, 0xe853, 0xe6f7, 0xe55c, 0xdde0,
+ 0xd97a, 0xe41f, 0xe55f, 0xd734, 0xd440, 0xddfc,
+ 0xe2ed, 0xe27b, 0xe505, 0xe635, 0xe140, 0xe256,
+ 0xeb56, 0xef83, 0xf169, 0xf26c, 0xed3c, 0xeb85,
+ 0xee55, 0xeb84, 0xe93a, 0xeb0b, 0xeb11, 0xec07,
+ 0xed03, 0xea80, 0xe8d8, 0xe645, 0xe4df, 0xef14,
+ 0xf742, 0xee40, 0xea54, 0xf663, 0xfc63, 0xfa76,
+ 0xf90d, 0xf223, 0xefe6, 0xf6ac, 0xf05c, 0xe41f,
+ 0xe946, 0xf023, 0xeb17, 0xe9ec, 0xed40, 0xe9df,
+ 0xe7f6, 0xeda0, 0xef71, 0xed40, 0xf1a9, 0xf46b,
+ 0xecd1, 0xe7cb, 0xec17, 0xf424, 0xfc6a, 0xfccd,
+ 0xf6d0, 0xf828, 0xfc68, 0xfb31, 0xf990, 0xf674,
+ 0xf5e9, 0xfcc0, 0xf937, 0xef13, 0xf695, 0xfc02,
+ 0xef2b, 0xed2e, 0xf583, 0xf2b8, 0xf093, 0xf388,
+ 0xf613, 0xfab2, 0xf331, 0xe9c8, 0xf8d3, 0x00a2,
+ 0xf228, 0xf667, 0x02ef, 0xfbe5, 0xfb95, 0x0554,
+ 0x0374, 0x0140, 0x03ac, 0xfefb, 0xf87d, 0xf609,
+ 0xf21e, 0xed27, 0xefe5, 0xf970, 0xfc84, 0xf77e,
+ 0xf379, 0xf3f0, 0xf958, 0xfc9a, 0xf98f, 0xfa92,
+ 0xfc17, 0xf3d8, 0xedee, 0xf2a1, 0xf672, 0xf07e,
+ 0xea04, 0xf125, 0xf8d1, 0xf386, 0xf2c0, 0xf6fb,
+ 0xf528, 0xf765, 0xf4f6, 0xe936, 0xeaa0, 0xf03b,
+ 0xf07c, 0xf8e7, 0xf7a0, 0xea8e, 0xed7c, 0xf24e,
+ 0xedf7, 0xf42a, 0xfb9b, 0xf642, 0xefd6, 0xf163,
+ 0xf622, 0xf243, 0xeee6, 0xfa16, 0xfbd8, 0xf0e3,
+ 0xf616, 0xf9f4, 0xedd3, 0xef26, 0xf921, 0xf62f,
+ 0xf19e, 0xf16f, 0xf357, 0xf74d, 0xf68e, 0xf828,
+ 0x0019, 0xffb6, 0xfa0a, 0xf601, 0xef45, 0xf109,
+ 0xf923, 0xf524, 0xf118, 0xf494, 0xf1dd, 0xf275,
+ 0xfa32, 0xfb38, 0xfd1e, 0x008d, 0xfdbb, 0x0140,
+ 0x053a, 0x00ce, 0x054d, 0x08b5, 0x00c1, 0x04f4,
+ 0x0b8c, 0x05bc, 0x0854, 0x0b89, 0x046f, 0x0448,
+ 0x0091, 0xf720, 0xfeea, 0x0642, 0x006a, 0x045f,
+ 0x0a2a, 0x02a9, 0xfdde, 0x00af, 0x0313, 0x076f,
+ 0x0e9a, 0x110c, 0x0c73, 0x0cc6, 0x1401, 0x12f6,
+ 0x0e93, 0x10bc, 0x0de2, 0x0922, 0x0934, 0x0155,
+ 0xfa82, 0xff8a, 0xfdbf, 0xf818, 0xfc1e, 0xfaf0,
+ 0xf53d, 0xf898, 0xfb47, 0xfb1c, 0xfca6, 0xf8fb,
+ 0xf8b4, 0xffdf, 0xfe38, 0xfb76, 0x02f4, 0x02b7,
+ 0xf840, 0xf663, 0x0092, 0x0bc4, 0x0b69, 0x0531,
+ 0x0827, 0x09c9, 0x059e, 0x09a3, 0x08ba, 0xfec3,
+ 0x0366, 0x0b09, 0x05bb, 0x06b0, 0x0d1f, 0x0ae3,
+ 0x0711, 0x05dc, 0x0736, 0x0a4f, 0x0900, 0x0820,
+ 0x0a23, 0x08a6, 0x0794, 0x05b6, 0xfed2, 0xfd48,
+ 0x0230, 0x0404, 0x0479, 0x0768, 0x079a, 0x0010,
+ 0xfc3e, 0x0487, 0x06fa, 0x01c8, 0x0479, 0x0359,
+ 0xfd1f, 0xfe16, 0xfa15, 0xf863, 0x022e, 0x00b3,
+ 0xfeae, 0x0616, 0xfc72, 0xf46a, 0xfd70, 0xf991,
+ 0xf792, 0x0458, 0x011d, 0xf94d, 0x000c, 0x0611,
+ 0x0a0b, 0x0924, 0x014a, 0x00e4, 0x011b, 0xfe82,
+ 0x0416, 0x05b6, 0x0131, 0x040d, 0x07cf, 0x057a,
+ 0xffbb, 0xfdf2, 0x010a, 0xf915, 0xf061, 0xf8ce,
+ 0xfa4e, 0xf244, 0xf5be, 0xf8b6, 0xfa9f, 0x021d,
+ 0x00e6, 0xfff4, 0x03f6, 0x01fd, 0x07b1, 0x0cab,
+ 0x006e, 0xf9b7, 0xf856, 0xf091, 0xefcf, 0xed58,
+ 0xe819, 0xedd0, 0xe9fb, 0xe001, 0xe785, 0xebbc,
+ 0xe715, 0xe9c7, 0xe734, 0xe124, 0xe1d6, 0xdc05,
+ 0xd54e, 0xd95c, 0xdb3a, 0xd826, 0xd9bf, 0xdd96,
+ 0xde4a, 0xdfbd, 0xe5d9, 0xe934, 0xe6e3, 0xe6b0,
+ 0xe92b, 0xeefd, 0xf516, 0xf069, 0xedc4, 0xf549,
+ 0xf3b9, 0xf2cc, 0xfbfe, 0xf81a, 0xf476, 0xfe7d,
+ 0xf7f7, 0xecfb, 0xf776, 0xfd82, 0xfa5b, 0xfe15,
+ 0xfdfe, 0xfd3c, 0x01ea, 0x0117, 0x02bc, 0x0a15,
+ 0x0c71, 0x10e8, 0x158f, 0x1208, 0x1043, 0x0d55,
+ 0x0682, 0x0aad, 0x107e, 0x0b64, 0x09bd, 0x0b0c,
+ 0x04dc, 0x00b3, 0x040d, 0x06d6, 0x037c, 0xfeec,
+ 0x030f, 0x083a, 0x039c, 0x03aa, 0x0d58, 0x0eda,
+ 0x09f4, 0x0b6a, 0x0d57, 0x0ab4, 0x0bf7, 0x12be,
+ 0x1494, 0x1115, 0x12b3, 0x1515, 0x11de, 0x1389,
+ 0x186c, 0x1562, 0x1247, 0x125b, 0x0e1e, 0x0bcf,
+ 0x0d41, 0x0ae5, 0x0910, 0x0986, 0x080d, 0x090d,
+ 0x0bc2, 0x0c34, 0x0f3e, 0x1198, 0x0e24, 0x0da9,
+ 0x1072, 0x0fc8, 0x129f, 0x1734, 0x12a1, 0x0faf,
+ 0x1406, 0x0db6, 0x00d9, 0x00cc, 0x04af, 0x02b9,
+ 0x0321, 0x0245, 0xfe72, 0x04b0, 0x0dce, 0x0ad0,
+ 0x05ac, 0x04a2, 0x009e, 0xfdc7, 0xfbd5, 0xf4d3,
+ 0xf1de, 0xf336, 0xf08a, 0xf275, 0xf681, 0xf39f,
+ 0xf7ca, 0xff6e, 0xfa3f, 0xf789, 0xfb1e, 0xf7e8,
+ 0xfac9, 0x02c9, 0xfedd, 0xfa4e, 0xfa5c, 0xf6f5,
+ 0xf687, 0xf65a, 0xf4a8, 0xfb1d, 0xfe4e, 0xf8fa,
+ 0xfa92, 0xfd6d, 0xf9c9, 0xf904, 0xf879, 0xf369,
+ 0xf05b, 0xf168, 0xf45f, 0xf716, 0xf87b, 0xf822,
+ 0xf5e4, 0xf79c, 0xfc14, 0xfb39, 0xfaee, 0xfbba,
+ 0xf706, 0xf729, 0xf938, 0xf114, 0xeef0, 0xf69a,
+ 0xf5e0, 0xf218, 0xf248, 0xeee6, 0xeab1, 0xeaac,
+ 0xef2a, 0xf439, 0xf1a7, 0xedae, 0xef3c, 0xeece,
+ 0xef10, 0xf3cf, 0xf606, 0xf98c, 0x006e, 0x02a9,
+ 0x02db, 0x0412, 0x046d, 0x0798, 0x0a6f, 0x072b,
+ 0x03a0, 0x031d, 0x0287, 0x0357, 0x0656, 0x072a,
+ 0x02f1, 0xfbc8, 0xf6e3, 0xf7b5, 0xfc0d, 0xfea6,
+ 0xfce0, 0xfa26, 0xfcdc, 0x0345, 0x0501, 0x053d,
+ 0x0b98, 0x0fee, 0x0ae4, 0x053c, 0x0578, 0x0726,
+ 0x067c, 0x0654, 0x0735, 0x0529, 0x04ae, 0x0667,
+ 0x01d5, 0x007f, 0x054e, 0xfd48, 0xf387, 0xf6ff,
+ 0xf4a7, 0xf0ec, 0xf8eb, 0xf8d2, 0xf032, 0xef6c,
+ 0xf1ff, 0xf48c, 0xf5e1, 0xf677, 0xfaff, 0xf95f,
+ 0xf398, 0xf686, 0xf6a2, 0xf614, 0x00c4, 0x0315,
+ 0xfac1, 0xfc53, 0x00be, 0xfea5, 0xfe50, 0x031b,
+ 0x06a0, 0x0224, 0xfe50, 0x03f9, 0x0761, 0x05c5,
+ 0x089b, 0x0b7b, 0x086d, 0x01bb, 0xfcbc, 0xfc2f,
+ 0xfc65, 0x0005, 0x05e3, 0x0373, 0x00fd, 0x0575,
+ 0x065a, 0x07ad, 0x0c32, 0x0ac9, 0x0612, 0x003a,
+ 0xfd63, 0x01dc, 0xfef4, 0xf7cd, 0xfcac, 0xff4d,
+ 0xfaed, 0xfd5f, 0xfea1, 0xfabc, 0xfc02, 0xff0a,
+ 0xfc7b, 0xf88c, 0xfbd0, 0x01e3, 0x01e9, 0x038f,
+ 0x061b, 0x01a9, 0x02ef, 0x08e8, 0x088d, 0x0c83,
+ 0x0f84, 0x0978, 0x0c17, 0x123d, 0x0dbd, 0x0a08,
+ 0x08d9, 0x0673, 0x05d5, 0x00c6, 0xfb28, 0xfbc8,
+ 0xf983, 0xf673, 0xf965, 0xf95e, 0xf5d5, 0xf883,
+ 0xfc4a, 0xf97a, 0xfb87, 0x0571, 0x0502, 0x013c,
+ 0x0acb, 0x0dc5, 0x0513, 0x0682, 0x098f, 0x044b,
+ 0x0192, 0xff22, 0xfc16, 0xfcc7, 0xfc79, 0xfcfa,
+ 0xfe56, 0xfe71, 0x004a, 0xfa1e, 0xf0a3, 0xf798,
+ 0xfde5, 0xf651, 0xf64e, 0xfb08, 0xf7ae, 0xf72d,
+ 0xf85d, 0xf44d, 0xf389, 0xf653, 0xf681, 0xf77c,
+ 0xfc4b, 0x0141, 0x02b9, 0x02b8, 0x041c, 0x054e,
+ 0x05a2, 0x05ba, 0x072a, 0x0cb1, 0x10fc, 0x0fe5,
+ 0x1108, 0x1239, 0x0aa6, 0x03a9, 0x04f6, 0x065d,
+ 0x05d6, 0x04ff, 0x0222, 0x01d5, 0x0374, 0x0184,
+ 0x0193, 0x0446, 0x0400, 0x053d, 0x066a, 0x0204,
+ 0xfeb4, 0xfe42, 0xff8e, 0x048e, 0x03a2, 0xfc6e,
+ 0xfb7b, 0xfc50, 0xfb3f, 0xfcc2, 0xfabc, 0xf88b,
+ 0xfc30, 0xfb18, 0xf92d, 0x002a, 0x026b, 0xfbf7,
+ 0xfbe4, 0x007a, 0xfd78, 0xf86d, 0xfc7d, 0x0318,
+ 0x04d3, 0x06d6, 0x0930, 0x0bf2, 0x11ef, 0x137b,
+ 0x12a1, 0x15a0, 0x1274, 0x0d5a, 0x0d5f, 0x0807,
+ 0x0832, 0x119f, 0x0c8d, 0x05c6, 0x0c58, 0x07d2,
+ 0xfdc5, 0x0179, 0x02a5, 0xfeaa, 0x006c, 0x003b,
+ 0xfeb8, 0x02d0, 0x088a, 0x0cf0, 0x0dd6, 0x0ae9,
+ 0x0780, 0x0489, 0x05e6, 0x0ad1, 0x0ae4, 0x08d2,
+ 0x08e2, 0x06ac, 0x0442, 0x0410, 0x03f9, 0x0683,
+ 0x08a4, 0x0542, 0x0162, 0xfd44, 0xf7a4, 0xf948,
+ 0xffd1, 0xfff6, 0xfc65, 0xfa65, 0xf9f6, 0xfafe,
+ 0xf900, 0xf66f, 0xf9f7, 0xfb69, 0xf95b, 0xfeb6,
+ 0x060e, 0x08b7, 0x0a47, 0x0871, 0x07c7, 0x0cd1,
+ 0x0bfb, 0x073c, 0x0a42, 0x0d72, 0x0a0a, 0x05a1,
+ 0x0392, 0x0393, 0x029d, 0x0124, 0x02e9, 0x04e0,
+ 0x0407, 0x0050, 0xfc68, 0xfe68, 0xfef3, 0xf8b4,
+ 0xfa17, 0xfea6, 0xf87d, 0xf6a3, 0xfd6a, 0xfcd4,
+ 0xfac2, 0xff32, 0xffdc, 0xfa66, 0xf725, 0xf7e0,
+ 0xf7ce, 0xf8b1, 0xfdfa, 0xff07, 0xfc71, 0x0218,
+ 0x071c, 0x0437, 0x0549, 0x06fa, 0x031b, 0x0263,
+ 0x0184, 0xfcdb, 0xfe68, 0x048c, 0x086f, 0x0c37,
+ 0x0e27, 0x0c11, 0x0aa8, 0x0bc2, 0x0c2d, 0x0ac5,
+ 0x09a8, 0x08c5, 0x0749, 0x089f, 0x0c1a, 0x0bc3,
+ 0x08b2, 0x07df, 0x09d0, 0x0b60, 0x0892, 0x04c9,
+ 0x05a3, 0x05e3, 0x0395, 0x056b, 0x086d, 0x08db,
+ 0x0aaf, 0x0b0d, 0x09a0, 0x0c82, 0x0d33, 0x0800,
+ 0x0812, 0x0d27, 0x0da9, 0x0a71, 0x07df, 0x0749,
+ 0x0657, 0x031b, 0x028f, 0x0343, 0xfef5, 0xfa64,
+ 0xf774, 0xf580, 0xfa54, 0xfe98, 0xfc14, 0xfc38,
+ 0xfbd0, 0xf964, 0xfed8, 0x0184, 0xfe38, 0x0437,
+ 0x08eb, 0x03c4, 0x01fb, 0xffcc, 0xfce8, 0x03a7,
+ 0x07e3, 0x05d4, 0x0923, 0x0a79, 0x083f, 0x0b09,
+ 0x0c3b, 0x0b96, 0x0b86, 0x038f, 0xfcb2, 0xff3d,
+ 0xfd73, 0xfa29, 0xfebc, 0xff89, 0xfc05, 0xfc95,
+ 0xfc21, 0xfbb8, 0xfcfa, 0xfa29, 0xf962, 0xfbcd,
+ 0xf9de, 0xfab3, 0xff87, 0x0014, 0x0198, 0x0556,
+ 0x05da, 0x04c2, 0x01a3, 0x001c, 0x0249, 0xff0d,
+ 0xfadb, 0xfc37, 0xfb10, 0xfaeb, 0xff47, 0x02a7,
+ 0x0853, 0x0972, 0x0348, 0x0566, 0x06c0, 0x0022,
+ 0x0441, 0x0902, 0x0264, 0x02fe, 0x074e, 0x04b4,
+ 0x0581, 0x0884, 0x09a9, 0x0a6b, 0x06d4, 0x0582,
+ 0x0835, 0x043d, 0x00b3, 0x04ce, 0x058f, 0xff9c,
+ 0xfa64, 0xf8fe, 0xf7d5, 0xf6da, 0xfaee, 0xfda1,
+ 0xfaf5, 0xfc66, 0xfdaf, 0xfa64, 0xfc60, 0xfd64,
+ 0xf88b, 0xfa41, 0xffd4, 0x0258, 0x042b, 0x021d,
+ 0x0035, 0x0208, 0xfe58, 0xf8f0, 0xf97c, 0xf990,
+ 0xf790, 0xf4ff, 0xf197, 0xf144, 0xf094, 0xecac,
+ 0xecfa, 0xefac, 0xed62, 0xe986, 0xe7e0, 0xe601,
+ 0xe34e, 0xe354, 0xe57a, 0xe3c0, 0xe16c, 0xe558,
+ 0xe8b0, 0xe7c8, 0xea03, 0xed09, 0xec02, 0xec3e,
+ 0xeef1, 0xf1ca, 0xf6ee, 0xfc8f, 0x0028, 0x0321,
+ 0x02b4, 0xff14, 0xfe5d, 0xfe55, 0xfbc8, 0xfa73,
+ 0xf887, 0xf555, 0xf5e9, 0xf6e1, 0xf58e, 0xf674,
+ 0xf867, 0xf9a6, 0xfa29, 0xf8eb, 0xfadd, 0xfeef,
+ 0xffcd, 0x0398, 0x0808, 0x064c, 0x079a, 0x0ae9,
+ 0x097d, 0x0b31, 0x0b04, 0x049e, 0x05a5, 0x089f,
+ 0x066c, 0x0acf, 0x0f0d, 0x0c11, 0x0dca, 0x0fc8,
+ 0x0bfa, 0x0b78, 0x0be1, 0x0987, 0x09c4, 0x0ab6,
+ 0x098d, 0x086e, 0x0931, 0x0b3c, 0x0ae3, 0x0a41,
+ 0x0b1b, 0x08af, 0x0831, 0x0bc7, 0x09ec, 0x07ca,
+ 0x09b7, 0x071e, 0x053d, 0x0721, 0x056d, 0x05d5,
+ 0x0899, 0x05d0, 0x025b, 0x0076, 0x0030, 0x03d7,
+ 0x0359, 0x0134, 0x0633, 0x072c, 0x0214, 0x021a,
+ 0x02a2, 0x00ef, 0x014f, 0x0094, 0xff59, 0xfe4d,
+ 0xfb0e, 0xfa74, 0xfc07, 0xfa66, 0xf8c0, 0xf936,
+ 0xf9c8, 0xf92d, 0xf7d3, 0xfa87, 0xff80, 0xffa2,
+ 0xfe45, 0xfefa, 0xffe7, 0x00c1, 0xfe52, 0xfb1a,
+ 0xfc8d, 0xfabf, 0xf5e3, 0xf810, 0xf957, 0xf5bb,
+ 0xf74b, 0xf7bc, 0xf23f, 0xf2ae, 0xf4c7, 0xef70,
+ 0xeee8, 0xf584, 0xf509, 0xf219, 0xf60a, 0xf72c,
+ 0xf3d8, 0xf566, 0xf705, 0xf43d, 0xf25e, 0xeff3,
+ 0xec48, 0xebc2, 0xec92, 0xebeb, 0xe8f5, 0xe5f7,
+ 0xe99c, 0xee68, 0xec17, 0xec88, 0xf33c, 0xf5c1,
+ 0xf54b, 0xf602, 0xf595, 0xf5b3, 0xf4f2, 0xf1ac,
+ 0xf251, 0xf436, 0xf03f, 0xeea8, 0xf2e8, 0xf304,
+ 0xf2ce, 0xf86e, 0xf7f5, 0xf1fd, 0xf357, 0xf36f,
+ 0xed53, 0xecc3, 0xed0b, 0xea70, 0xeeb1, 0xf2fa,
+ 0xf30d, 0xf77e, 0xf8e2, 0xf6e2, 0xfca7, 0xfe8d,
+ 0xf91b, 0xfcbe, 0x00f3, 0xfa25, 0xf716, 0xfa12,
+ 0xf5de, 0xf10b, 0xf625, 0xfb64, 0xfa8d, 0xfc39,
+ 0xfedd, 0xfb61, 0xf7b2, 0xf685, 0xf463, 0xf4b9,
+ 0xf6eb, 0xf7b0, 0xfa46, 0xfd4c, 0xfdd6, 0xfe32,
+ 0xfe93, 0xfeb7, 0xfda8, 0xfb10, 0xfb64, 0xfc8a,
+ 0xfb5e, 0xfc8c, 0xfce5, 0xfadf, 0xfd41, 0xfcd8,
+ 0xf6e0, 0xf86e, 0xfc99, 0xf9e1, 0xf9fd, 0xfe92,
+ 0xff84, 0xff8a, 0x0181, 0x01f5, 0x00c0, 0xffdc,
+ 0xfd8f, 0xf977, 0xf879, 0xf974, 0xf6f5, 0xf586,
+ 0xf6c1, 0xf3e5, 0xf0ab, 0xf1a7, 0xf241, 0xf388,
+ 0xf6ae, 0xf7f5, 0xf9d2, 0xfd46, 0xfe1e, 0xfd3d,
+ 0xfdb0, 0x0017, 0x01f1, 0xfffa, 0xfe3d, 0xff4a,
+ 0xfdb3, 0xfbcc, 0xfdcd, 0xfc5b, 0xf70e, 0xf6e0,
+ 0xf8f4, 0xf7fa, 0xf915, 0xfcc3, 0xfdcd, 0xfdff,
+ 0xfed0, 0xfd2a, 0xfaec, 0xfaef, 0xfb22, 0xfaa1,
+ 0xf9bf, 0xf81f, 0xf7ed, 0xf9f9, 0xfbbc, 0xfd03,
+ 0xfe97, 0xfe96, 0xfbeb, 0xf882, 0xf6e4, 0xf73c,
+ 0xf724, 0xf64a, 0xf6f3, 0xf745, 0xf468, 0xf3a2,
+ 0xf832, 0xfabc, 0xfa86, 0xfed6, 0x02b4, 0xff26,
+ 0xfba3, 0xfcb5, 0xfc23, 0xf88b, 0xf6a5, 0xf766,
+ 0xf68d, 0xf337, 0xf40c, 0xf8bf, 0xf7e3, 0xf3a7,
+ 0xf39e, 0xf2c1, 0xef01, 0xef81, 0xf314, 0xf5cf,
+ 0xf930, 0xfaaf, 0xf9c2, 0xfb81, 0xfd74, 0xfcbd,
+ 0xfe79, 0x015c, 0x0102, 0x0185, 0x0319, 0x00fe,
+ 0xff4e, 0x0220, 0x03fa, 0x01a5, 0xff0c, 0xfe11,
+ 0xfc93, 0xfa8e, 0xfa5c, 0xfb37, 0xfab7, 0xfb24,
+ 0xfeb0, 0x0148, 0x01c0, 0x03ae, 0x0429, 0x0142,
+ 0x0050, 0xff9d, 0xfd13, 0xfdfc, 0xfd70, 0xf8bd,
+ 0xf9f9, 0xfbfb, 0xf7bd, 0xf8b2, 0xfde6, 0xff1c,
+ 0x0114, 0x01cd, 0x0040, 0x0306, 0x03ec, 0x00ff,
+ 0x01f0, 0x0362, 0x032f, 0x0260, 0xff68, 0xffc5,
+ 0x01b5, 0x002f, 0x0179, 0x0148, 0xfbd4, 0xfc37,
+ 0xfe3f, 0xfb50, 0xfb3b, 0xfb97, 0xfa45, 0xfbde,
+ 0xfbf7, 0xfba4, 0xfd88, 0xfc66, 0xfb92, 0xfc51,
+ 0xfb18, 0xfd06, 0xff6b, 0xfdc0, 0xff21, 0x01a2,
+ 0x00ad, 0x010e, 0x0169, 0x0016, 0x0142, 0x0378,
+ 0x030d, 0x008d, 0xff4f, 0xffce, 0xff0c, 0xff8c,
+ 0x0175, 0xfef0, 0xfbf3, 0xfc80, 0xfc85, 0xfd54,
+ 0xfe62, 0xfd0e, 0xfde9, 0xff83, 0xfe5d, 0xfe66,
+ 0xfe85, 0xfd0d, 0xfd12, 0xfc5a, 0xf8b2, 0xf5b5,
+ 0xf6af, 0xf998, 0xfa2e, 0xfba9, 0x002b, 0x00d2,
+ 0xfeb5, 0xff5b, 0xffaa, 0xff6d, 0x00dc, 0x01b9,
+ 0x01b8, 0x0273, 0x057d, 0x08d4, 0x08d4, 0x097d,
+ 0x0aa6, 0x0720, 0x03a4, 0x0114, 0xfda4, 0xfefb,
+ 0x004b, 0xfeaf, 0x016d, 0x01bd, 0xfe68, 0x019d,
+ 0x0368, 0x0021, 0x00ef, 0x0179, 0xfecf, 0xfdb0,
+ 0xfd07, 0xfc43, 0xfb34, 0xfb17, 0xfd10, 0xfc32,
+ 0xfb6c, 0xfd0e, 0xfbb5, 0xff1a, 0x058d, 0x01b6,
+ 0x0099, 0x06c0, 0x0321, 0xfec1, 0x01e5, 0x004f,
+ 0xfe09, 0x0055, 0x00b7, 0x0036, 0xff37, 0xfdfb,
+ 0xff3f, 0xfe4d, 0xfc08, 0xfcd5, 0xfc17, 0xfa72,
+ 0xfc2d, 0xfe0f, 0xfdbc, 0xfd4b, 0xff78, 0x0176,
+ 0xfe28, 0xfae1, 0xfb94, 0xfabe, 0xf990, 0xfb42,
+ 0xfca5, 0xfcb0, 0xfcc2, 0xff29, 0x02d6, 0x030a,
+ 0x032b, 0x0544, 0x044f, 0x034a, 0x0270, 0xfe3a,
+ 0xfe08, 0x0070, 0xfef1, 0x00e7, 0x02fc, 0xfec7,
+ 0xffd5, 0x02fc, 0xfd95, 0xfb51, 0xfecf, 0xfddd,
+ 0xfddc, 0x0140, 0x01c5, 0x028d, 0x04c4, 0x045c,
+ 0x027f, 0x007c, 0xff7c, 0x0048, 0x004d, 0x00bf,
+ 0x02d9, 0x036d, 0x03d3, 0x0535, 0x0544, 0x059c,
+ 0x05a5, 0x03dd, 0x03eb, 0x04b5, 0x0489, 0x0668,
+ 0x06b7, 0x03ee, 0x03f8, 0x04b7, 0x02a0, 0x014f,
+ 0x0116, 0x002d, 0xffa2, 0x009e, 0x021c, 0x00ee,
+ 0xff77, 0x01db, 0x03ca, 0x0358, 0x02e4, 0x00cd,
+ 0xfed9, 0xfea0, 0xfe8a, 0x007c, 0x0080, 0xfc6a,
+ 0xfd1b, 0x0027, 0xff2a, 0xffd5, 0x0195, 0x021f,
+ 0x04de, 0x068a, 0x0788, 0x09fd, 0x08c5, 0x0794,
+ 0x0949, 0x07d0, 0x0696, 0x06ff, 0x03dd, 0x0204,
+ 0x0357, 0x031a, 0x0204, 0x0168, 0x029f, 0x04b3,
+ 0x04c6, 0x06e1, 0x09a6, 0x0721, 0x052a, 0x06a5,
+ 0x079a, 0x090d, 0x0984, 0x091a, 0x0a53, 0x08ff,
+ 0x076a, 0x093d, 0x07a8, 0x04cd, 0x064e, 0x0638,
+ 0x04ac, 0x0655, 0x0736, 0x05cf, 0x0593, 0x06b9,
+ 0x070f, 0x062a, 0x0630, 0x060f, 0x03c1, 0x02ad,
+ 0x0319, 0x0140, 0xfed3, 0xfe8f, 0xff7f, 0x00cb,
+ 0x027e, 0x0298, 0xff10, 0xfc92, 0xfe88, 0xff02,
+ 0xfe09, 0xfffa, 0xff93, 0xfc8d, 0xfcfa, 0xfddc,
+ 0xfce5, 0xfc5c, 0xfbd1, 0xfc3e, 0xfd39, 0xfcc5,
+ 0xfcbd, 0xfcc3, 0xfc17, 0xfd77, 0xff5b, 0xfda6,
+ 0xf93b, 0xf6fe, 0xf6f0, 0xf3a2, 0xf010, 0xf0a0,
+ 0xef1a, 0xec55, 0xeda8, 0xed59, 0xebc9, 0xedc0,
+ 0xed55, 0xe974, 0xe795, 0xe87e, 0xeabe, 0xeb77,
+ 0xebb0, 0xedb2, 0xedfa, 0xede0, 0xef44, 0xeddd,
+ 0xed40, 0xef7e, 0xee08, 0xed11, 0xf02f, 0xf00f,
+ 0xef29, 0xf282, 0xf60c, 0xf7e3, 0xf8ce, 0xf9d6,
+ 0xfaec, 0xfb2d, 0xfd91, 0x0042, 0xff58, 0x0012,
+ 0x01fe, 0x00c9, 0x027a, 0x0628, 0x05e1, 0x0645,
+ 0x0849, 0x07cf, 0x069c, 0x0713, 0x0864, 0x08a0,
+ 0x0844, 0x0945, 0x0a69, 0x0a99, 0x0b19, 0x0c31,
+ 0x0d91, 0x0ef1, 0x101f, 0x116d, 0x1162, 0x114a,
+ 0x13b9, 0x143a, 0x12e4, 0x13e1, 0x13d6, 0x13c4,
+ 0x160e, 0x16b1, 0x16c0, 0x179b, 0x16b7, 0x1633,
+ 0x1763, 0x1845, 0x19db, 0x1bb6, 0x1ba1, 0x1b46,
+ 0x1b86, 0x1a9c, 0x1874, 0x1719, 0x16dc, 0x14d9,
+ 0x11e2, 0x124e, 0x14b1, 0x14ff, 0x1522, 0x178b,
+ 0x1929, 0x17d8, 0x156c, 0x13c1, 0x11d4, 0x0f16,
+ 0x0e31, 0x0e73, 0x0e04, 0x0d0f, 0x0b10, 0x0ac5,
+ 0x0c4f, 0x0b34, 0x0896, 0x06ea, 0x04c9, 0x0302,
+ 0x0327, 0x02b0, 0x01d4, 0x02be, 0x02ea, 0x020f,
+ 0x0276, 0x028a, 0x001a, 0xfe8a, 0x0107, 0x01d7,
+ 0xff6e, 0xff7c, 0x002b, 0xffe8, 0x01bd, 0x02a4,
+ 0x0074, 0xff89, 0xffc0, 0xfe27, 0xfcd0, 0xfc9e,
+ 0xfb33, 0xf8fb, 0xf8ae, 0xfa09, 0xfb1f, 0xfbba,
+ 0xfb57, 0xfaae, 0xface, 0xfb7e, 0xfc7d, 0xfc0e,
+ 0xfbba, 0xfdff, 0xffd5, 0xffc6, 0x0025, 0x0041,
+ 0xfe22, 0xfcf6, 0xfd4d, 0xfbfb, 0xfaa6, 0xf96a,
+ 0xf892, 0xf9b3, 0xf9e2, 0xf8fe, 0xf7e3, 0xf670,
+ 0xf70f, 0xf925, 0xfb49, 0xfe84, 0x00fa, 0x00fd,
+ 0x01d7, 0x037f, 0x02f8, 0x01e7, 0x0188, 0x016b,
+ 0x00b7, 0xff1f, 0xfe8f, 0xfdee, 0xfc06, 0xfb54,
+ 0xfc24, 0xfc91, 0xfcc6, 0xfdef, 0xffb0, 0x01a1,
+ 0x0431, 0x05c8, 0x049a, 0x048a, 0x05a5, 0x032d,
+ 0x0336, 0x05e5, 0x038d, 0x01eb, 0x031c, 0x032a,
+ 0x03de, 0x0457, 0x0424, 0x0473, 0x045a, 0x042e,
+ 0x050e, 0x05f2, 0x05aa, 0x0515, 0x040a, 0x023d,
+ 0xff74, 0xfc85, 0xfb69, 0xfab9, 0xfaba, 0xfbae,
+ 0xfbfc, 0xfdcd, 0x0041, 0x00eb, 0x01b7, 0x02ba,
+ 0x0214, 0x0087, 0xfe74, 0xfbd5, 0xfabd, 0xfa2e,
+ 0xf8b3, 0xf80b, 0xf82c, 0xf888, 0xf954, 0xfa9d,
+ 0xfc97, 0xfece, 0xffb6, 0xff7b, 0x005f, 0x00a1,
+ 0xff07, 0xfdd6, 0xfda7, 0xfd3b, 0xfb13, 0xfa3b,
+ 0xfa6a, 0xf896, 0xf829, 0xf754, 0xf4cd, 0xf45c,
+ 0xf437, 0xf3b3, 0xf402, 0xf4e7, 0xf5c1, 0xf5b0,
+ 0xf604, 0xf7a7, 0xf981, 0xfb76, 0xfe3e, 0xff58,
+ 0xfe2c, 0xfd93, 0xfc47, 0xfaf2, 0xfba8, 0xfc7c,
+ 0xfc8d, 0xfc06, 0xfc3e, 0xfd8d, 0xfd91, 0xfd37,
+ 0xfe81, 0xffbe, 0x00e0, 0x0188, 0xff5d, 0xfe94,
+ 0xffa1, 0xfe82, 0xfef1, 0xff8e, 0xfdf4, 0xff23,
+ 0x019b, 0x0199, 0x0171, 0x01a7, 0x00d0, 0x014b,
+ 0x0132, 0xff43, 0x0076, 0x015a, 0x008c, 0x0132,
+ 0xffa0, 0xfd45, 0xfcc6, 0xfcb0, 0xfc03, 0xfa31,
+ 0xf94d, 0xf90d, 0xf880, 0xf7fb, 0xf737, 0xf868,
+ 0xfbe5, 0xfeb3, 0xff08, 0xfe98, 0xffd0, 0x00e1,
+ 0xff67, 0xfd5a, 0xfc1e, 0xf9c0, 0xf6b0, 0xf3f8,
+ 0xf2e9, 0xf330, 0xf15e, 0xf22e, 0xf6a5, 0xf774,
+ 0xf805, 0xfae8, 0xfb2c, 0xfa71, 0xfa74, 0xf8ac,
+ 0xf859, 0xfa21, 0xf9ca, 0xfb48, 0xfe11, 0xfe4b,
+ 0xff41, 0xffbd, 0xff2a, 0xfeef, 0xfeda, 0xffd9,
+ 0x004d, 0x0007, 0xff37, 0xfe89, 0xfe02, 0xfb8e,
+ 0xfa08, 0xf9ce, 0xf993, 0xf9e4, 0xf8db, 0xf84b,
+ 0xf87c, 0xf6d3, 0xf641, 0xf7b0, 0xf83e, 0xf9a5,
+ 0xfc6a, 0xfe05, 0xfff8, 0x0155, 0x00c2, 0x009b,
+ 0xffa6, 0xfd7b, 0xfcd2, 0xfe12, 0xfecd, 0xfee0,
+ 0xffb5, 0xffe6, 0x007b, 0x0107, 0x001f, 0x0076,
+ 0x00ac, 0xffc0, 0x00bd, 0x01b0, 0xff2c, 0xff6d,
+ 0x0387, 0x0203, 0x002f, 0x02bd, 0x0295, 0x01c1,
+ 0x0193, 0x00b2, 0x0111, 0x01d0, 0x01e6, 0x024d,
+ 0x0433, 0x0488, 0x0310, 0x0308, 0x0284, 0x017b,
+ 0x0132, 0x01a4, 0x0342, 0x046f, 0x04d8, 0x0551,
+ 0x049b, 0x026f, 0x0187, 0x0213, 0x019f, 0xffd3,
+ 0xfe9a, 0x001b, 0x019e, 0x0047, 0xfe63, 0xfe87,
+ 0xff59, 0xfdab, 0xfc12, 0xfc0b, 0xfbb3, 0xfb60,
+ 0xfa61, 0xfa46, 0xf9d5, 0xf817, 0xf977, 0xfc16,
+ 0xfd51, 0xfde4, 0xfe1e, 0xfe45, 0xfe63, 0xfe7b,
+ 0xfd70, 0xfd86, 0xfe2c, 0xfc52, 0xfafd, 0xfa8a,
+ 0xfa99, 0xfb63, 0xfb27, 0xfa4a, 0xfa46, 0xfc98,
+ 0xfec2, 0xffed, 0x01ce, 0x020c, 0x022d, 0x03d1,
+ 0x046d, 0x047d, 0x03f2, 0x012a, 0xfe9d, 0xfe46,
+ 0xfd94, 0xfbf9, 0xfbc3, 0xfd91, 0xfe9e, 0xfe5d,
+ 0xfe75, 0xfd28, 0xfd05, 0xfd6a, 0xfb31, 0xfb88,
+ 0xfcc9, 0xfe0c, 0x0115, 0x00fa, 0x016f, 0x03a6,
+ 0x01f3, 0x00cb, 0x0308, 0x02cb, 0x00cd, 0x006b,
+ 0xfe17, 0xfcd3, 0xfeea, 0xff76, 0xffe3, 0x001d,
+ 0xffc0, 0x00b5, 0x01f6, 0x02b7, 0x00db, 0xff43,
+ 0x0011, 0xffa2, 0x0064, 0x02ff, 0x03ca, 0x0462,
+ 0x05df, 0x05e1, 0x0528, 0x04e3, 0x0436, 0x0449,
+ 0x04cf, 0x04ea, 0x05b1, 0x071d, 0x07eb, 0x0756,
+ 0x0628, 0x054d, 0x06f0, 0x07e3, 0x04f8, 0x050a,
+ 0x0614, 0x0311, 0x006d, 0x0018, 0x019b, 0x01d0,
+ 0x01c6, 0x03f4, 0x03a8, 0x022b, 0x0298, 0x022d,
+ 0x006e, 0xff64, 0xfda0, 0xfc2a, 0xfebf, 0xff82,
+ 0xfddd, 0xff93, 0x007b, 0x0009, 0x00ec, 0x01da,
+ 0x029e, 0x03d5, 0x05e4, 0x066d, 0x04bf, 0x0341,
+ 0x0212, 0x00a2, 0xff83, 0xfebd, 0xfe9f, 0xfffe,
+ 0x007c, 0x0069, 0x02c5, 0x04e3, 0x050b, 0x054f,
+ 0x0629, 0x062f, 0x0661, 0x072b, 0x0753, 0x0957,
+ 0x0ac9, 0x0a5a, 0x0bea, 0x0ca9, 0x0bb5, 0x0b31,
+ 0x0b25, 0x09f0, 0x0773, 0x06ba, 0x0545, 0x04f8,
+ 0x0815, 0x08a1, 0x08cb, 0x0a56, 0x0a0b, 0x0937,
+ 0x08e7, 0x08c8, 0x0883, 0x089e, 0x0916, 0x091a,
+ 0x08d0, 0x0941, 0x0a35, 0x0a53, 0x0afb, 0x0ad2,
+ 0x0935, 0x0989, 0x0a26, 0x09e6, 0x098c, 0x0851,
+ 0x0786, 0x077c, 0x06f8, 0x06e9, 0x07e0, 0x07a0,
+ 0x0702, 0x07bf, 0x07da, 0x0695, 0x0610, 0x07a9,
+ 0x07b1, 0x074b, 0x0926, 0x088c, 0x0804, 0x083b,
+ 0x072a, 0x0923, 0x0a6d, 0x0915, 0x08a1, 0x08ce,
+ 0x07ff, 0x0552, 0x04ec, 0x0690, 0x05c1, 0x03d8,
+ 0x02ab, 0x01b2, 0x001d, 0xffcc, 0x00fe, 0x0127,
+ 0x014e, 0x0255, 0x01f5, 0xfff4, 0xfedc, 0xfcf8,
+ 0xf9cf, 0xf8c4, 0xf785, 0xf639, 0xf746, 0xf7f6,
+ 0xf7ba, 0xf775, 0xf753, 0xf8ab, 0xfa3b, 0xf948,
+ 0xf87f, 0xf8b0, 0xf6d0, 0xf4f7, 0xf31a, 0xf019,
+ 0xedb6, 0xec3c, 0xebb8, 0xeb53, 0xec1c, 0xecad,
+ 0xec47, 0xedbe, 0xee35, 0xeeb9, 0xef48, 0xed28,
+ 0xedb7, 0xeffc, 0xf0f8, 0xf2aa, 0xf3b3, 0xf34a,
+ 0xf272, 0xf272, 0xf424, 0xf68e, 0xf7ee, 0xfa34,
+ 0xfd91, 0xfcf9, 0xfb7a, 0xfc1e, 0xfb4c, 0xfb39,
+ 0xfcbc, 0xfc72, 0xfc02, 0xfd0f, 0xfd82, 0xfde5,
+ 0xff1b, 0x0082, 0x01f5, 0x023b, 0x0396, 0x0593,
+ 0x0507, 0x05d4, 0x0830, 0x098c, 0x0b2e, 0x0cb2,
+ 0x0d27, 0x0dc2, 0x0fe2, 0x1176, 0x1236, 0x1317,
+ 0x1397, 0x146f, 0x13f8, 0x1366, 0x13f6, 0x1406,
+ 0x1435, 0x1372, 0x13a1, 0x1491, 0x1508, 0x185e,
+ 0x19de, 0x18c4, 0x1ab5, 0x1c10, 0x1ac7, 0x1a38,
+ 0x19f8, 0x1986, 0x1b23, 0x1cad, 0x1c62, 0x1cd7,
+ 0x1bec, 0x18d8, 0x1755, 0x160b, 0x1353, 0x11f6,
+ 0x10c6, 0x0e63, 0x0da3, 0x0d24, 0x0da3, 0x1045,
+ 0x10e8, 0x10da, 0x107b, 0x0ea3, 0x0d38, 0x0aff,
+ 0x08e7, 0x08a6, 0x080a, 0x0615, 0x055b, 0x0677,
+ 0x06cf, 0x0660, 0x063c, 0x07bd, 0x0865, 0x0684,
+ 0x0691, 0x063c, 0x040a, 0x0292, 0x007e, 0xfe75,
+ 0xfbe3, 0xfa5b, 0xfaca, 0xf980, 0xf9e2, 0xfcb1,
+ 0xfd1d, 0xfd55, 0xfef2, 0xfe62, 0xfc73, 0xfc5b,
+ 0xfc9f, 0xfbda, 0xfbbf, 0xfd4c, 0xfea6, 0xff28,
+ 0xfff7, 0xffcf, 0xff11, 0xfe1b, 0xfcbe, 0xfc9a,
+ 0xfc58, 0xfb97, 0xfb29, 0xfaef, 0xfb76, 0xfc23,
+ 0xfc59, 0xfc1e, 0xfd20, 0xfe96, 0xfe78, 0xfe48,
+ 0xfde2, 0xfd7b, 0xfce5, 0xfc52, 0xfdad, 0xfe4e,
+ 0xfdaf, 0xfe12, 0xff80, 0x007a, 0x004b, 0x012e,
+ 0x01a5, 0x00bf, 0x00e5, 0x0190, 0x0267, 0x028e,
+ 0x01f9, 0x0202, 0x022a, 0x026d, 0x028f, 0x027d,
+ 0x02bd, 0x0288, 0x00e9, 0xff2a, 0xfefe, 0xff49,
+ 0xff1f, 0xffcb, 0x0163, 0x0160, 0x013e, 0x03c6,
+ 0x05af, 0x06a2, 0x07ea, 0x07b2, 0x06a9, 0x0605,
+ 0x0513, 0x0224, 0xff33, 0xfdbe, 0xfb7f, 0xfa33,
+ 0xfa9c, 0xfb8d, 0xfc7a, 0xfc58, 0xfc94, 0xfcbb,
+ 0xfc83, 0xfcfd, 0xfdb2, 0xff67, 0x0141, 0x01f2,
+ 0x0245, 0x0299, 0x01ce, 0x007c, 0x0062, 0xff7e,
+ 0xfe2d, 0xfdc4, 0xfc9e, 0xfc48, 0xfd0b, 0xfd19,
+ 0xfc83, 0xfb38, 0xf9c1, 0xf8b0, 0xf7c3, 0xf689,
+ 0xf4eb, 0xf3ff, 0xf44f, 0xf496, 0xf5e1, 0xf8b4,
+ 0xf9c6, 0xf9ce, 0xfa09, 0xf98d, 0xf8ff, 0xf81f,
+ 0xf88d, 0xf97d, 0xf963, 0xfa6d, 0xfa85, 0xf9b4,
+ 0xfa43, 0xfa03, 0xf88d, 0xf75c, 0xf76e, 0xf7e1,
+ 0xf79c, 0xf819, 0xf9c1, 0xfaa6, 0xfa8b, 0xfb68,
+ 0xfc29, 0xfc47, 0xfcd1, 0xfc7f, 0xfcba, 0xfd90,
+ 0xfd09, 0xfc5b, 0xfb83, 0xfae2, 0xfb5c, 0xfbc7,
+ 0xfcba, 0xfeca, 0xffa8, 0xff90, 0x0124, 0x029c,
+ 0x02ab, 0x0339, 0x0379, 0x02e2, 0x02f0, 0x02c8,
+ 0x0219, 0x02c8, 0x025e, 0xfff3, 0xff8c, 0xffc7,
+ 0xff74, 0xffbd, 0xff36, 0xfea1, 0xfe9b, 0xff25,
+ 0x0030, 0x012b, 0x0283, 0x0330, 0x03e7, 0x0542,
+ 0x054a, 0x04dc, 0x04d2, 0x03fd, 0x02fc, 0x0298,
+ 0x00e9, 0xfe4d, 0xfca0, 0xfa9d, 0xf940, 0xf8c8,
+ 0xf77c, 0xf754, 0xf7f5, 0xf7c5, 0xf7a3, 0xf6bc,
+ 0xf564, 0xf599, 0xf5bc, 0xf4bd, 0xf515, 0xf6bb,
+ 0xf859, 0xf9ec, 0xfac4, 0xfae7, 0xfb03, 0xfb66,
+ 0xfb75, 0xfafa, 0xfabf, 0xfa87, 0xfa8e, 0xfb36,
+ 0xfba2, 0xfb25, 0xfa66, 0xf948, 0xf66d, 0xf414,
+ 0xf3c1, 0xf3b9, 0xf404, 0xf4d4, 0xf721, 0xfa38,
+ 0xfbe3, 0xfd37, 0xfdab, 0xfca3, 0xfc10, 0xfc46,
+ 0xfcdc, 0xfd36, 0xfd56, 0xfe24, 0xfe6b, 0xfcee,
+ 0xfb4c, 0xf985, 0xf652, 0xf437, 0xf498, 0xf5ce,
+ 0xf761, 0xf8ff, 0xfa7d, 0xfc2e, 0xfdf4, 0xff75,
+ 0x0051, 0x005d, 0xffbe, 0xfed4, 0xfdb6, 0xfca1,
+ 0xfbdf, 0xfb81, 0xfbcb, 0xfd1b, 0xff47, 0x0079,
+ 0x00e8, 0x01e8, 0x0134, 0xff0d, 0xfe7a, 0xfedf,
+ 0xff72, 0x0187, 0x0420, 0x0520, 0x05df, 0x06ca,
+ 0x06bf, 0x072a, 0x07e7, 0x078e, 0x06a6, 0x05b8,
+ 0x0464, 0x025f, 0x0108, 0x00a1, 0xffca, 0xfffd,
+ 0x0209, 0x0395, 0x04bd, 0x06d9, 0x088d, 0x093f,
+ 0x096a, 0x08e2, 0x083b, 0x07d6, 0x079d, 0x0713,
+ 0x0606, 0x0608, 0x0684, 0x05e0, 0x05ed, 0x069d,
+ 0x059c, 0x03ce, 0x0215, 0x0025, 0xff27, 0xff02,
+ 0xff5b, 0x00bb, 0x0261, 0x0453, 0x06aa, 0x085c,
+ 0x09a1, 0x0aa8, 0x0b15, 0x0ad1, 0x092f, 0x06c4,
+ 0x0551, 0x0486, 0x03c1, 0x03fb, 0x04b5, 0x04f1,
+ 0x054e, 0x0518, 0x033f, 0x010c, 0xff64, 0xfdb5,
+ 0xfc60, 0xfbd8, 0xfb6c, 0xfb7d, 0xfcd5, 0xfe81,
+ 0x003f, 0x0279, 0x03bc, 0x038b, 0x0394, 0x03bf,
+ 0x02fa, 0x0262, 0x0275, 0x01a3, 0x004a, 0xff7b,
+ 0xfe06, 0xfc58, 0xfc1f, 0xfc16, 0xfb7c, 0xfbb1,
+ 0xfcd8, 0xfec7, 0x00bb, 0x0134, 0x0160, 0x025c,
+ 0x02b8, 0x0245, 0x01b0, 0x0151, 0x01fe, 0x028d,
+ 0x0214, 0x026f, 0x03b1, 0x04d2, 0x0618, 0x06e7,
+ 0x0765, 0x0835, 0x083d, 0x07bb, 0x07d9, 0x085d,
+ 0x0920, 0x09bd, 0x0a18, 0x0a5f, 0x097d, 0x085b,
+ 0x08e2, 0x098a, 0x093b, 0x08e0, 0x087f, 0x088a,
+ 0x090f, 0x0949, 0x09b8, 0x0a4e, 0x0acb, 0x0bcf,
+ 0x0c53, 0x0bf9, 0x0c46, 0x0cf1, 0x0d58, 0x0dcb,
+ 0x0dbe, 0x0ccb, 0x0b2b, 0x09b4, 0x0924, 0x0841,
+ 0x06b3, 0x0626, 0x0661, 0x063e, 0x0586, 0x046c,
+ 0x03df, 0x038a, 0x0287, 0x020f, 0x0256, 0x024f,
+ 0x0286, 0x02d4, 0x0313, 0x04c8, 0x07a4, 0x0a12,
+ 0x0bc8, 0x0c8f, 0x0c73, 0x0bc6, 0x0a19, 0x07b1,
+ 0x0594, 0x041c, 0x0364, 0x039c, 0x045f, 0x04c6,
+ 0x053e, 0x06e1, 0x0848, 0x081e, 0x07ee, 0x07a1,
+ 0x05b0, 0x037f, 0x0220, 0x009a, 0xffa6, 0x0053,
+ 0x019d, 0x029f, 0x03d9, 0x059d, 0x0701, 0x071b,
+ 0x06cd, 0x0725, 0x078a, 0x07ca, 0x086b, 0x08af,
+ 0x082e, 0x07d1, 0x0799, 0x0711, 0x0686, 0x0637,
+ 0x067d, 0x0764, 0x0828, 0x08ac, 0x089f, 0x070d,
+ 0x04e4, 0x0371, 0x026b, 0x01eb, 0x0277, 0x040e,
+ 0x0632, 0x07e1, 0x0946, 0x0a85, 0x0a3a, 0x0934,
+ 0x08da, 0x07f2, 0x0728, 0x07d8, 0x0861, 0x08c1,
+ 0x09df, 0x0a71, 0x0ac2, 0x0b31, 0x09e6, 0x074f,
+ 0x0543, 0x0395, 0x022e, 0x01d2, 0x024d, 0x02b0,
+ 0x0341, 0x0501, 0x070d, 0x0834, 0x0914, 0x098c,
+ 0x090d, 0x0857, 0x07b9, 0x0797, 0x0890, 0x0979,
+ 0x0922, 0x07a2, 0x0581, 0x03ef, 0x0316, 0x0220,
+ 0x01b5, 0x0238, 0x0299, 0x02ae, 0x025e, 0x00ee,
+ 0xff13, 0xfe10, 0xfd8a, 0xfcd6, 0xfc94, 0xfd12,
+ 0xfda5, 0xfe6e, 0xff48, 0xfef4, 0xfda8, 0xfca1,
+ 0xfbda, 0xfb0e, 0xfa33, 0xf90d, 0xf7ba, 0xf64b,
+ 0xf4c5, 0xf367, 0xf249, 0xf1da, 0xf1e2, 0xf0ea,
+ 0xef43, 0xeeb5, 0xeecc, 0xee6f, 0xee71, 0xef0f,
+ 0xef85, 0xf065, 0xf1bf, 0xf20e, 0xf175, 0xf0e8,
+ 0xeff8, 0xef72, 0xf06c, 0xf1b3, 0xf29d, 0xf370,
+ 0xf3b9, 0xf3b5, 0xf338, 0xf1ff, 0xf1d3, 0xf2ee,
+ 0xf3b9, 0xf4d5, 0xf660, 0xf71c, 0xf7b4, 0xf8a9,
+ 0xf98d, 0xfadd, 0xfc75, 0xfda3, 0xfe97, 0xff98,
+ 0x00da, 0x0256, 0x0399, 0x04b4, 0x05c9, 0x06da,
+ 0x07f1, 0x08b0, 0x0921, 0x097f, 0x0996, 0x0a00,
+ 0x0b16, 0x0c11, 0x0d5a, 0x0f6f, 0x113d, 0x1285,
+ 0x13b6, 0x147e, 0x1513, 0x15b5, 0x15bf, 0x1570,
+ 0x15c9, 0x16b3, 0x17b5, 0x18d8, 0x19ca, 0x19fb,
+ 0x198c, 0x1905, 0x18ae, 0x186b, 0x17fe, 0x17de,
+ 0x18c1, 0x1a1b, 0x1ae2, 0x1ae7, 0x1a6d, 0x19b4,
+ 0x18bc, 0x1743, 0x15a3, 0x14b6, 0x14a2, 0x14e9,
+ 0x1502, 0x145e, 0x12bf, 0x1086, 0x0de6, 0x0ae0,
+ 0x0862, 0x0748, 0x06df, 0x0681, 0x0673, 0x069d,
+ 0x0702, 0x07a0, 0x074f, 0x05c6, 0x0495, 0x042d,
+ 0x0394, 0x02a9, 0x01cb, 0x00e1, 0xffe6, 0xfeb1,
+ 0xfd21, 0xfbd3, 0xfaf4, 0xf9d7, 0xf8cb, 0xf872,
+ 0xf89c, 0xf91d, 0xf93c, 0xf86a, 0xf7d8, 0xf7d9,
+ 0xf77e, 0xf76f, 0xf813, 0xf8ad, 0xf97d, 0xfa61,
+ 0xfaf6, 0xfbcf, 0xfc5c, 0xfc00, 0xfbcc, 0xfbf3,
+ 0xfbda, 0xfba2, 0xfb70, 0xfb93, 0xfbf9, 0xfc2d,
+ 0xfcb6, 0xfd90, 0xfdb8, 0xfd7a, 0xfd2e, 0xfc20,
+ 0xfa41, 0xf85a, 0xf75c, 0xf79e, 0xf85f, 0xf95c,
+ 0xfad1, 0xfc11, 0xfc57, 0xfb86, 0xfa34, 0xf95c,
+ 0xf8bd, 0xf7c0, 0xf764, 0xf814, 0xf8d0, 0xf98c,
+ 0xfa8c, 0xfb40, 0xfbc7, 0xfcf5, 0xfeba, 0x0031,
+ 0x00eb, 0x0139, 0x012d, 0x008a, 0xffef, 0xffe6,
+ 0xffb0, 0xff0b, 0xfeb9, 0xfe8e, 0xfe46, 0xfe85,
+ 0xfefa, 0xfeb8, 0xfe31, 0xfe29, 0xfe89, 0xff26,
+ 0xffec, 0x00b1, 0x018e, 0x026d, 0x02b3, 0x0253,
+ 0x01d5, 0x0131, 0x006b, 0xfff1, 0xff61, 0xfe74,
+ 0xfdca, 0xfda8, 0xfe1e, 0xfe96, 0xfd98, 0xfbd8,
+ 0xfad8, 0xf9ac, 0xf86e, 0xf86c, 0xf8a3, 0xf8da,
+ 0xfa35, 0xfbad, 0xfc8a, 0xfd57, 0xfd49, 0xfc55,
+ 0xfb93, 0xfaba, 0xf972, 0xf861, 0xf7ca, 0xf786,
+ 0xf779, 0xf78c, 0xf7a5, 0xf7bc, 0xf7ce, 0xf784,
+ 0xf6e5, 0xf68d, 0xf64c, 0xf5f3, 0xf647, 0xf705,
+ 0xf731, 0xf74d, 0xf838, 0xf97e, 0xfa8d, 0xfbc3,
+ 0xfcf9, 0xfd04, 0xfc1f, 0xfbac, 0xfb7f, 0xfb02,
+ 0xfac7, 0xfad2, 0xfa8c, 0xfa0b, 0xf984, 0xf8e2,
+ 0xf847, 0xf806, 0xf840, 0xf8ba, 0xf90b, 0xf907,
+ 0xf8fc, 0xf8d2, 0xf7ef, 0xf741, 0xf823, 0xf99c,
+ 0xfaa9, 0xfbcc, 0xfcbe, 0xfd41, 0xfde4, 0xfe2d,
+ 0xfdd4, 0xfdab, 0xfe02, 0xfed9, 0x000f, 0x0100,
+ 0x0175, 0x01e0, 0x02b4, 0x03b7, 0x0423, 0x040d,
+ 0x03f7, 0x03ac, 0x0354, 0x0391, 0x046c, 0x0549,
+ 0x057f, 0x05a1, 0x0669, 0x06a5, 0x05d0, 0x0526,
+ 0x0496, 0x0389, 0x029d, 0x023a, 0x0227, 0x01df,
+ 0x0143, 0x00f3, 0x005e, 0xfe68, 0xfbd7, 0xfa15,
+ 0xf9b3, 0xfa66, 0xfb74, 0xfcca, 0xfdf1, 0xfdeb,
+ 0xfd81, 0xfd33, 0xfbe9, 0xfa48, 0xf968, 0xf8c7,
+ 0xf893, 0xf8f7, 0xf943, 0xf978, 0xf975, 0xf8f5,
+ 0xf878, 0xf7f3, 0xf784, 0xf7fb, 0xf8e6, 0xf996,
+ 0xfa37, 0xfa9a, 0xfb03, 0xfc0f, 0xfcf4, 0xfcf0,
+ 0xfc71, 0xfb90, 0xfa13, 0xf87b, 0xf797, 0xf7b1,
+ 0xf895, 0xf9fd, 0xfb67, 0xfc47, 0xfcda, 0xfd5d,
+ 0xfd42, 0xfc84, 0xfbed, 0xfbcc, 0xfc46, 0xfd74,
+ 0xfeb1, 0xff6d, 0xffab, 0xff3d, 0xfe22, 0xfcce,
+ 0xfb44, 0xf990, 0xf849, 0xf7c0, 0xf81a, 0xf95a,
+ 0xfaee, 0xfc38, 0xfc9d, 0xfbf2, 0xfb7f, 0xfbdd,
+ 0xfc57, 0xfd6a, 0xff37, 0x0082, 0x01a0, 0x02ee,
+ 0x037e, 0x039f, 0x03c4, 0x03fd, 0x0554, 0x072b,
+ 0x0826, 0x091f, 0x0a1e, 0x0a58, 0x0aa2, 0x0b2e,
+ 0x0ba0, 0x0c14, 0x0bae, 0x0a94, 0x09ef, 0x0999,
+ 0x09e5, 0x0b0c, 0x0bc9, 0x0bfd, 0x0bd7, 0x0b06,
+ 0x0a8d, 0x0a67, 0x09fd, 0x0ab9, 0x0c3b, 0x0ca6,
+ 0x0ca2, 0x0c87, 0x0ba0, 0x0a97, 0x09ac, 0x089c,
+ 0x07c2, 0x06ca, 0x05bc, 0x055e, 0x0554, 0x050c,
+ 0x046e, 0x034b, 0x0223, 0x01c6, 0x0230, 0x02af,
+ 0x0291, 0x0233, 0x0287, 0x034e, 0x040c, 0x04f5,
+ 0x0591, 0x0551, 0x04bf, 0x046c, 0x0448, 0x045c,
+ 0x0494, 0x047e, 0x0424, 0x041a, 0x0468, 0x04b1,
+ 0x04eb, 0x0515, 0x051e, 0x04d9, 0x0433, 0x03c5,
+ 0x03f5, 0x0474, 0x0549, 0x0626, 0x0629, 0x0588,
+ 0x04d2, 0x03c1, 0x0273, 0x014a, 0x003a, 0xffa5,
+ 0xffe4, 0x0078, 0x00d4, 0x00d1, 0x0071, 0xfff6,
+ 0xffc1, 0xffe4, 0xfff7, 0xffcc, 0xffcb, 0x0051,
+ 0x0139, 0x01da, 0x01bf, 0x0177, 0x01a0, 0x01d4,
+ 0x01a8, 0x013b, 0x00c8, 0x00b6, 0x0145, 0x022e,
+ 0x0301, 0x0387, 0x03dc, 0x03fc, 0x03b1, 0x0390,
+ 0x0453, 0x0562, 0x061d, 0x06f3, 0x080d, 0x0921,
+ 0x0a28, 0x0b09, 0x0ba8, 0x0c52, 0x0d37, 0x0dd7,
+ 0x0da2, 0x0cff, 0x0cea, 0x0d7a, 0x0dd0, 0x0d75,
+ 0x0c9b, 0x0b64, 0x0a06, 0x090d, 0x08cf, 0x0966,
+ 0x0ae7, 0x0cca, 0x0e4a, 0x0f5e, 0x0fe0, 0x0f46,
+ 0x0de5, 0x0c99, 0x0bba, 0x0b4d, 0x0b1f, 0x0b1f,
+ 0x0b72, 0x0b87, 0x0ad8, 0x0a2d, 0x09e9, 0x0950,
+ 0x0837, 0x0725, 0x066d, 0x0657, 0x06e0, 0x0785,
+ 0x082d, 0x0954, 0x0aef, 0x0c5a, 0x0d5c, 0x0dfe,
+ 0x0e25, 0x0e57, 0x0f0f, 0x0f53, 0x0e5a, 0x0ce8,
+ 0x0ba1, 0x0a86, 0x09c8, 0x0932, 0x0868, 0x07ec,
+ 0x081e, 0x0881, 0x08e9, 0x0978, 0x09b3, 0x0989,
+ 0x09bb, 0x0a3c, 0x0a6e, 0x0a70, 0x0a68, 0x0a30,
+ 0x0a02, 0x0a07, 0x0a12, 0x0a00, 0x09d7, 0x09de,
+ 0x09eb, 0x0937, 0x07c6, 0x062b, 0x04e8, 0x04c1,
+ 0x058b, 0x0657, 0x0709, 0x073c, 0x067b, 0x05b8,
+ 0x0570, 0x054f, 0x0590, 0x05d7, 0x05c7, 0x05ef,
+ 0x0620, 0x063d, 0x0709, 0x0821, 0x08c5, 0x0939,
+ 0x09a0, 0x0a10, 0x0aa1, 0x0ac2, 0x0a18, 0x0919,
+ 0x0890, 0x08dd, 0x0961, 0x099e, 0x0a06, 0x0ae8,
+ 0x0c1f, 0x0d6a, 0x0e90, 0x0f61, 0x0f6c, 0x0f08,
+ 0x0f58, 0x0ff1, 0x0fbd, 0x0f39, 0x0ed8, 0x0e5c,
+ 0x0ded, 0x0d68, 0x0cb9, 0x0c8c, 0x0ce0, 0x0d23,
+ 0x0d50, 0x0d4b, 0x0cb6, 0x0b9a, 0x0a55, 0x0947,
+ 0x0868, 0x0779, 0x06c9, 0x06b2, 0x06c0, 0x0693,
+ 0x064c, 0x05b7, 0x04a5, 0x034c, 0x0180, 0xff6f,
+ 0xfe02, 0xfd57, 0xfd0c, 0xfd21, 0xfd01, 0xfc66,
+ 0xfc33, 0xfc6d, 0xfc51, 0xfbd0, 0xfae9, 0xf9db,
+ 0xf939, 0xf8c9, 0xf856, 0xf835, 0xf813, 0xf7b1,
+ 0xf79c, 0xf7d0, 0xf7a2, 0xf6f8, 0xf60d, 0xf4db,
+ 0xf3cf, 0xf377, 0xf33a, 0xf275, 0xf1b6, 0xf151,
+ 0xf130, 0xf17c, 0xf1e3, 0xf237, 0xf2db, 0xf389,
+ 0xf3d4, 0xf3c1, 0xf327, 0xf25f, 0xf20f, 0xf1cf,
+ 0xf152, 0xf116, 0xf135, 0xf160, 0xf16f, 0xf164,
+ 0xf18d, 0xf223, 0xf29e, 0xf274, 0xf204, 0xf1d2,
+ 0xf1b3, 0xf17c, 0xf15e, 0xf16b, 0xf19e, 0xf22c,
+ 0xf3b5, 0xf670, 0xf936, 0xfb22, 0xfcc1, 0xfe7a,
+ 0x0012, 0x0137, 0x017e, 0x016e, 0x01e1, 0x02b0,
+ 0x0431, 0x06fd, 0x0a39, 0x0ced, 0x0ed2, 0x0fbf,
+ 0x1039, 0x10a6, 0x1105, 0x11f5, 0x1383, 0x14b5,
+ 0x1564, 0x1627, 0x170b, 0x1783, 0x1720, 0x1649,
+ 0x1593, 0x1500, 0x14a1, 0x14e3, 0x15e7, 0x173a,
+ 0x1845, 0x18b1, 0x1843, 0x175b, 0x168b, 0x154b,
+ 0x13c0, 0x1386, 0x1461, 0x14c9, 0x14c5, 0x145d,
+ 0x131a, 0x11a4, 0x1098, 0x0f8f, 0x0e34, 0x0d02,
+ 0x0ca6, 0x0cb1, 0x0c66, 0x0c1b, 0x0bef, 0x0b8a,
+ 0x0b05, 0x0a4b, 0x097d, 0x0903, 0x0892, 0x0816,
+ 0x079a, 0x068d, 0x0546, 0x0445, 0x031c, 0x0216,
+ 0x017b, 0x00a7, 0xfff1, 0xffe8, 0x000f, 0x005b,
+ 0x00c7, 0x00a2, 0x0005, 0xff79, 0xfec2, 0xfdbc,
+ 0xfcd3, 0xfc28, 0xfb5c, 0xfa4a, 0xf945, 0xf87c,
+ 0xf7e0, 0xf7e9, 0xf8e6, 0xf9fd, 0xfa60, 0xfa40,
+ 0xf9cf, 0xf93d, 0xf900, 0xf8d8, 0xf835, 0xf73a,
+ 0xf608, 0xf495, 0xf335, 0xf258, 0xf1f6, 0xf157,
+ 0xf04e, 0xefa7, 0xef4d, 0xeefb, 0xef87, 0xf0b9,
+ 0xf1d4, 0xf333, 0xf46e, 0xf520, 0xf61e, 0xf71d,
+ 0xf7c4, 0xf91b, 0xfb02, 0xfc62, 0xfcfb, 0xfd47,
+ 0xfe15, 0xff1a, 0xffaf, 0x00b6, 0x022a, 0x02c1,
+ 0x02e6, 0x031d, 0x02ad, 0x01bd, 0x0107, 0x00ab,
+ 0x0081, 0x009b, 0x0135, 0x020b, 0x02f3, 0x042c,
+ 0x04fe, 0x04ea, 0x04ab, 0x0429, 0x0315, 0x01fa,
+ 0x012a, 0x010e, 0x0199, 0x0214, 0x02ec, 0x0411,
+ 0x046e, 0x04a7, 0x0538, 0x0551, 0x057d, 0x0603,
+ 0x05a2, 0x0471, 0x0396, 0x031c, 0x025e, 0x0177,
+ 0x0121, 0x0109, 0x00c1, 0x00fe, 0x0141, 0x0091,
+ 0xffa6, 0xfea4, 0xfd58, 0xfce3, 0xfd44, 0xfd7c,
+ 0xfd7f, 0xfcfc, 0xfbcc, 0xfa8a, 0xf958, 0xf882,
+ 0xf87d, 0xf8f3, 0xf9b6, 0xfaaa, 0xfb97, 0xfce7,
+ 0xfe0a, 0xfd7a, 0xfbb0, 0xfa5c, 0xf99d, 0xf8c6,
+ 0xf827, 0xf88d, 0xf9c7, 0xfb01, 0xfc1a, 0xfd1b,
+ 0xfd79, 0xfd2b, 0xfcbb, 0xfc52, 0xfbfe, 0xfbef,
+ 0xfc23, 0xfc9d, 0xfd2b, 0xfd25, 0xfc75, 0xfbb4,
+ 0xfaed, 0xfa0f, 0xf9a6, 0xf9c0, 0xf9c2, 0xf957,
+ 0xf873, 0xf768, 0xf6cb, 0xf6b1, 0xf6b3, 0xf68d,
+ 0xf632, 0xf5e4, 0xf5ed, 0xf633, 0xf6a2, 0xf743,
+ 0xf7fe, 0xf8f9, 0xfa64, 0xfbf1, 0xfd46, 0xfe3d,
+ 0xfed2, 0xff75, 0x0051, 0x00c2, 0x00a2, 0x0099,
+ 0x00d3, 0x010d, 0x00e5, 0x0048, 0x002b, 0x00e3,
+ 0x0168, 0x0197, 0x01e2, 0x0212, 0x0228, 0x021a,
+ 0x01d8, 0x01ef, 0x025a, 0x02e0, 0x0396, 0x03a3,
+ 0x0310, 0x0324, 0x0391, 0x03d0, 0x0427, 0x03e5,
+ 0x0333, 0x0312, 0x033e, 0x03b5, 0x0475, 0x048e,
+ 0x0435, 0x03bf, 0x02a9, 0x0161, 0x0030, 0xfef3,
+ 0xfe50, 0xfe33, 0xfe3b, 0xfea3, 0xfee6, 0xfedd,
+ 0xff41, 0x001e, 0x014b, 0x0231, 0x0210, 0x016c,
+ 0x007d, 0xff29, 0xfe7e, 0xfe68, 0xfdea, 0xfdab,
+ 0xfe0e, 0xfe7f, 0xfef5, 0xff3c, 0xff21, 0xfef0,
+ 0xfe90, 0xfe22, 0xfdf5, 0xfdac, 0xfd5d, 0xfd99,
+ 0xfe38, 0xfed5, 0xff24, 0xfedf, 0xfe5c, 0xfe42,
+ 0xfea0, 0xff20, 0xffb6, 0x0033, 0x000a, 0xff74,
+ 0xff50, 0xff89, 0xff75, 0xff1f, 0xfeef, 0xff14,
+ 0xff66, 0xff97, 0xff88, 0xfee5, 0xfdb2, 0xfcdb,
+ 0xfc88, 0xfbdb, 0xfb24, 0xfb4c, 0xfbe0, 0xfc50,
+ 0xfcdd, 0xfd56, 0xfd9a, 0xfe47, 0xfec1, 0xfdfd,
+ 0xfd2f, 0xfd78, 0xfdf0, 0xfe81, 0xffcb, 0x0155,
+ 0x0312, 0x0518, 0x0666, 0x06ea, 0x076a, 0x076e,
+ 0x06ab, 0x05cf, 0x04d4, 0x0382, 0x0272, 0x0204,
+ 0x0215, 0x02db, 0x0490, 0x06c3, 0x0895, 0x095d,
+ 0x0911, 0x0830, 0x0729, 0x0672, 0x0661, 0x064c,
+ 0x0568, 0x043a, 0x03be, 0x0438, 0x0544, 0x0622,
+ 0x069c, 0x06f4, 0x06bb, 0x05b2, 0x0488, 0x0370,
+ 0x0270, 0x021b, 0x0247, 0x0273, 0x029b, 0x0267,
+ 0x0201, 0x0268, 0x033b, 0x0379, 0x0378, 0x0385,
+ 0x0371, 0x0385, 0x03b7, 0x03cc, 0x0401, 0x0431,
+ 0x0416, 0x03c2, 0x0317, 0x0254, 0x01d3, 0x012b,
+ 0x006d, 0x0024, 0xffe7, 0xff45, 0xfe73, 0xfda1,
+ 0xfd13, 0xfcde, 0xfce4, 0xfd6f, 0xfe71, 0xff5b,
+ 0x001c, 0x0095, 0x006d, 0xfff1, 0xff9e, 0xff8a,
+ 0xff6c, 0xff1e, 0xff06, 0xff50, 0xffb2, 0x0058,
+ 0x011f, 0x0153, 0x00f1, 0x002c, 0xfefb, 0xfde1,
+ 0xfd0d, 0xfc2f, 0xfbc3, 0xfc39, 0xfd22, 0xfe26,
+ 0xff06, 0xff5f, 0xff5e, 0xff66, 0xff72, 0xff98,
+ 0x0007, 0x00a6, 0x0121, 0x00fe, 0x001a, 0xff28,
+ 0xfeb4, 0xfe99, 0xfeaf, 0xfebd, 0xfe8b, 0xfe8a,
+ 0xfee7, 0xff19, 0xff0b, 0xff1e, 0xff71, 0xffdf,
+ 0x0006, 0xffee, 0x002e, 0x00ee, 0x0203, 0x034f,
+ 0x044e, 0x04c3, 0x0505, 0x0550, 0x05dc, 0x0678,
+ 0x06b4, 0x06ee, 0x0755, 0x0776, 0x0776, 0x0784,
+ 0x077e, 0x07b5, 0x082b, 0x08cd, 0x09fb, 0x0b3a,
+ 0x0bda, 0x0c09, 0x0bb3, 0x0ae7, 0x0a19, 0x0926,
+ 0x0862, 0x0877, 0x08ac, 0x0885, 0x08cc, 0x096b,
+ 0x0966, 0x08a4, 0x07fa, 0x0804, 0x088f, 0x0970,
+ 0x0ad7, 0x0c52, 0x0d61, 0x0e50, 0x0f30, 0x0f9f,
+ 0x0f76, 0x0eb4, 0x0d7d, 0x0c18, 0x0ad3, 0x09f5,
+ 0x0948, 0x0891, 0x0840, 0x0888, 0x0914, 0x09bb,
+ 0x0a18, 0x09bf, 0x08ed, 0x07d8, 0x068f, 0x057c,
+ 0x04cb, 0x0462, 0x045e, 0x04c1, 0x0549, 0x05d4,
+ 0x0644, 0x0674, 0x0668, 0x0667, 0x06c4, 0x078d,
+ 0x086a, 0x08a6, 0x07c2, 0x0645, 0x051c, 0x045f,
+ 0x03b6, 0x033c, 0x0327, 0x033d, 0x0341, 0x0330,
+ 0x031a, 0x0332, 0x03af, 0x0495, 0x05d1, 0x0722,
+ 0x0835, 0x0923, 0x09ec, 0x0a09, 0x097e, 0x08c4,
+ 0x080e, 0x0791, 0x0720, 0x0682, 0x0682, 0x074c,
+ 0x07f7, 0x087a, 0x08e1, 0x08a9, 0x0848, 0x0824,
+ 0x07ed, 0x07ea, 0x07eb, 0x0745, 0x0679, 0x05d8,
+ 0x0518, 0x04c7, 0x0516, 0x0580, 0x062a, 0x06fc,
+ 0x0775, 0x07ad, 0x075d, 0x0614, 0x04b1, 0x0410,
+ 0x03d2, 0x03a7, 0x03b5, 0x03c1, 0x03a6, 0x03a8,
+ 0x039f, 0x02dc, 0x0139, 0xff4b, 0xfd85, 0xfc0f,
+ 0xfaeb, 0xfa1f, 0xf9f4, 0xfaad, 0xfbf1, 0xfd19,
+ 0xfdab, 0xfd65, 0xfcb6, 0xfc8d, 0xfcf5, 0xfd1a,
+ 0xfcd7, 0xfcb0, 0xfc83, 0xfbd8, 0xfb04, 0xfa9a,
+ 0xfa61, 0xf9fe, 0xf9a8, 0xf975, 0xf916, 0xf896,
+ 0xf848, 0xf80b, 0xf775, 0xf67e, 0xf570, 0xf42a,
+ 0xf276, 0xf0f1, 0xf042, 0xf033, 0xf091, 0xf168,
+ 0xf242, 0xf2ab, 0xf2b0, 0xf243, 0xf145, 0xf02d,
+ 0xefe9, 0xf0d8, 0xf271, 0xf44f, 0xf666, 0xf840,
+ 0xf99a, 0xfab7, 0xfb6e, 0xfb8b, 0xfb70, 0xfb29,
+ 0xfa98, 0xfa5c, 0xfafa, 0xfc1e, 0xfd67, 0xfedf,
+ 0x007d, 0x01ef, 0x0325, 0x0496, 0x066c, 0x084b,
+ 0x09fb, 0x0b76, 0x0cc5, 0x0df7, 0x0ed2, 0x0f47,
+ 0x0fac, 0x0fd6, 0x0fa1, 0x0f9b, 0x0fdd, 0x1012,
+ 0x105a, 0x10cd, 0x116e, 0x1222, 0x1253, 0x123d,
+ 0x12b1, 0x1330, 0x133e, 0x139e, 0x14a7, 0x15ef,
+ 0x1707, 0x1787, 0x1780, 0x1713, 0x1622, 0x151b,
+ 0x1455, 0x13ba, 0x138a, 0x137f, 0x1319, 0x12de,
+ 0x12f7, 0x12d7, 0x12bc, 0x12e4, 0x12d5, 0x123d,
+ 0x10f9, 0x0f3f, 0x0dab, 0x0c85, 0x0c22, 0x0cb9,
+ 0x0d74, 0x0dab, 0x0db9, 0x0dbb, 0x0d86, 0x0d26,
+ 0x0c5e, 0x0b0d, 0x09b1, 0x0889, 0x0745, 0x05d0,
+ 0x04a7, 0x0451, 0x04a7, 0x04fb, 0x0513, 0x0556,
+ 0x0621, 0x072e, 0x07f7, 0x089a, 0x0934, 0x091b,
+ 0x082a, 0x06f9, 0x0572, 0x0389, 0x0215, 0x0172,
+ 0x0146, 0x015a, 0x0152, 0x00c7, 0xff9f, 0xfe07,
+ 0xfca1, 0xfbbf, 0xfae6, 0xfa0e, 0xf994, 0xf92c,
+ 0xf8d8, 0xf937, 0xfa42, 0xfb39, 0xfb9b, 0xfb69,
+ 0xfaa0, 0xf936, 0xf7d0, 0xf71e, 0xf6bd, 0xf65d,
+ 0xf648, 0xf635, 0xf5eb, 0xf5f9, 0xf675, 0xf6fb,
+ 0xf770, 0xf7b4, 0xf7f2, 0xf895, 0xf952, 0xf9a9,
+ 0xf9b1, 0xf9a8, 0xf9f2, 0xfad1, 0xfbcc, 0xfc68,
+ 0xfca0, 0xfc7c, 0xfc46, 0xfc5d, 0xfc8a, 0xfcb0,
+ 0xfd47, 0xfe76, 0xffc9, 0x00d8, 0x016c, 0x0172,
+ 0x0137, 0x0116, 0x00ec, 0x0071, 0xfffb, 0x0027,
+ 0x00f8, 0x01c3, 0x0227, 0x0288, 0x0319, 0x035f,
+ 0x036e, 0x03ff, 0x0511, 0x0641, 0x0791, 0x0894,
+ 0x089f, 0x07e7, 0x0700, 0x061d, 0x0558, 0x04d7,
+ 0x04c4, 0x052b, 0x0590, 0x0569, 0x04d3, 0x0432,
+ 0x03d9, 0x041a, 0x04b8, 0x04eb, 0x0478, 0x039e,
+ 0x0264, 0x0121, 0x0058, 0xffd3, 0xff69, 0xff6e,
+ 0xffba, 0xffea, 0xffc9, 0xff24, 0xfe66, 0xfe29,
+ 0xfe36, 0xfe7f, 0xff41, 0x0000, 0x0064, 0x00b6,
+ 0x00f1, 0x00e8, 0x0071, 0xff59, 0xfe08, 0xfd09,
+ 0xfc51, 0xfbfc, 0xfc57, 0xfd20, 0xfe03, 0xfee2,
+ 0xff6e, 0xff4d, 0xfe8c, 0xfdb3, 0xfd53, 0xfd8f,
+ 0xfe1b, 0xfe91, 0xfebf, 0xfec5, 0xfe90, 0xfdc3,
+ 0xfc91, 0xfba6, 0xfb33, 0xfb1f, 0xfb8b, 0xfc4c,
+ 0xfcc6, 0xfcd0, 0xfcfc, 0xfd84, 0xfdec, 0xfe0b,
+ 0xfe28, 0xfe39, 0xfe1d, 0xfe01, 0xfdeb, 0xfdaf,
+ 0xfd4c, 0xfcfb, 0xfd1a, 0xfdb6, 0xfe6c, 0xff24,
+ 0xfffd, 0x00c1, 0x014f, 0x01b1, 0x01fe, 0x028a,
+ 0x0348, 0x0387, 0x032a, 0x02ad, 0x0217, 0x0155,
+ 0x00ec, 0x0132, 0x018c, 0x014b, 0x00e5, 0x00ec,
+ 0x00d8, 0x0064, 0x001d, 0x0013, 0x000a, 0x0030,
+ 0x007d, 0x00bc, 0x00dc, 0x00ec, 0x0168, 0x026b,
+ 0x0315, 0x0355, 0x03f2, 0x0476, 0x040d, 0x0301,
+ 0x01c3, 0x009f, 0x0005, 0xffd6, 0xffbf, 0x0000,
+ 0x00d0, 0x01fe, 0x02f1, 0x02f7, 0x021e, 0x0127,
+ 0x0092, 0x0047, 0x0003, 0xffd2, 0xffd8, 0xffef,
+ 0xfff5, 0xfff2, 0xffcf, 0xff91, 0xff35, 0xfe8e,
+ 0xfde3, 0xfd85, 0xfd54, 0xfd7b, 0xfe04, 0xfe44,
+ 0xfe34, 0xfe63, 0xfe8a, 0xfe32, 0xfdbc, 0xfd8f,
+ 0xfd7c, 0xfd45, 0xfd17, 0xfd4c, 0xfdb5, 0xfdc5,
+ 0xfd8b, 0xfd79, 0xfd8d, 0xfdce, 0xfe7b, 0xff47,
+ 0xffbf, 0xffd6, 0xff4c, 0xfe12, 0xfced, 0xfc49,
+ 0xfbc1, 0xfb41, 0xfb3a, 0xfbc3, 0xfc3d, 0xfc20,
+ 0xfbd4, 0xfbc8, 0xfba6, 0xfb61, 0xfb78, 0xfc11,
+ 0xfd1d, 0xfea2, 0x0061, 0x01e6, 0x02a7, 0x025d,
+ 0x0162, 0x0023, 0xfea8, 0xfd36, 0xfc8c, 0xfcff,
+ 0xfe31, 0xff67, 0xffe3, 0xffbb, 0xffb8, 0xffed,
+ 0xfff6, 0x0003, 0x0055, 0x010a, 0x0228, 0x032c,
+ 0x03c8, 0x0428, 0x0445, 0x0462, 0x04c6, 0x04f4,
+ 0x04d6, 0x04a7, 0x0400, 0x030a, 0x0260, 0x0206,
+ 0x020d, 0x027e, 0x031e, 0x03e4, 0x0480, 0x04c6,
+ 0x051d, 0x055b, 0x0538, 0x0504, 0x04c4, 0x046f,
+ 0x0459, 0x048a, 0x04e3, 0x0532, 0x053f, 0x0544,
+ 0x0552, 0x0524, 0x04d1, 0x048f, 0x04bb, 0x059b,
+ 0x0683, 0x06ed, 0x0733, 0x072e, 0x0678, 0x0586,
+ 0x04a4, 0x03a2, 0x02e4, 0x02da, 0x030d, 0x0315,
+ 0x0342, 0x0382, 0x0362, 0x02ef, 0x0240, 0x012b,
+ 0xffb9, 0xfe40, 0xfd83, 0xfda1, 0xfd9f, 0xfd47,
+ 0xfd4c, 0xfdc6, 0xfebc, 0x003e, 0x01af, 0x02b4,
+ 0x038c, 0x0431, 0x0469, 0x042c, 0x03da, 0x03e3,
+ 0x043d, 0x04c0, 0x0510, 0x0485, 0x0333, 0x019f,
+ 0xfffd, 0xfea5, 0xfddc, 0xfd8d, 0xfdcc, 0xfe9d,
+ 0xffce, 0x011b, 0x01fd, 0x0246, 0x023a, 0x01bf,
+ 0x00df, 0xffe4, 0xfeba, 0xfd8f, 0xfcf2, 0xfd18,
+ 0xfdb2, 0xfe3a, 0xfe8f, 0xff01, 0xff8f, 0xffe7,
+ 0xffea, 0xffa4, 0xff5e, 0xff6e, 0x0019, 0x0162,
+ 0x02ae, 0x0396, 0x047e, 0x0596, 0x06a5, 0x0761,
+ 0x0757, 0x0696, 0x05e5, 0x05cd, 0x0651, 0x0704,
+ 0x077c, 0x07f4, 0x087f, 0x08b0, 0x0867, 0x07b7,
+ 0x06c0, 0x0607, 0x05d6, 0x05e3, 0x0606, 0x0668,
+ 0x06f9, 0x0744, 0x0703, 0x067a, 0x062a, 0x065c,
+ 0x0705, 0x0816, 0x098e, 0x0aef, 0x0ba1, 0x0bbd,
+ 0x0b3f, 0x09ec, 0x084a, 0x06e4, 0x05ba, 0x0526,
+ 0x0576, 0x0643, 0x0736, 0x0823, 0x08c8, 0x0917,
+ 0x08fd, 0x0863, 0x07bd, 0x0775, 0x0774, 0x07b2,
+ 0x0842, 0x08e0, 0x095f, 0x09d0, 0x0a14, 0x09f1,
+ 0x095c, 0x0864, 0x0733, 0x05ef, 0x04ca, 0x0440,
+ 0x04a5, 0x05dd, 0x07b1, 0x09be, 0x0b7a, 0x0cb0,
+ 0x0d5b, 0x0d8e, 0x0db6, 0x0e01, 0x0e0f, 0x0d9c,
+ 0x0cc4, 0x0bb4, 0x0a8f, 0x0960, 0x0846, 0x0781,
+ 0x0718, 0x06ef, 0x0723, 0x07b8, 0x083f, 0x0885,
+ 0x08dd, 0x0939, 0x094d, 0x095a, 0x097b, 0x0964,
+ 0x0933, 0x08ff, 0x0871, 0x075c, 0x05bb, 0x03bf,
+ 0x020f, 0x012b, 0x0131, 0x020f, 0x0343, 0x0464,
+ 0x056d, 0x0610, 0x0648, 0x06b2, 0x0735, 0x072b,
+ 0x06c5, 0x067c, 0x061c, 0x0553, 0x0440, 0x033e,
+ 0x0284, 0x0238, 0x0289, 0x032f, 0x037f, 0x0351,
+ 0x031d, 0x034b, 0x0390, 0x0338, 0x0237, 0x0128,
+ 0x0032, 0xff39, 0xfe4f, 0xfd82, 0xfd14, 0xfd58,
+ 0xfe00, 0xfe9f, 0xff1d, 0xff5f, 0xff30, 0xfe85,
+ 0xfdac, 0xfce2, 0xfc16, 0xfb9a, 0xfbdb, 0xfc91,
+ 0xfd70, 0xfe35, 0xfe64, 0xfe2d, 0xfdf3, 0xfda6,
+ 0xfd60, 0xfcce, 0xfb83, 0xfa30, 0xf947, 0xf892,
+ 0xf853, 0xf885, 0xf902, 0xf9e6, 0xfa3f, 0xf960,
+ 0xf82c, 0xf725, 0xf62d, 0xf560, 0xf49d, 0xf3f9,
+ 0xf38c, 0xf2fe, 0xf2b7, 0xf32b, 0xf3d0, 0xf47d,
+ 0xf542, 0xf598, 0xf580, 0xf5a1, 0xf645, 0xf76a,
+ 0xf8e5, 0xfa6d, 0xfbc8, 0xfcec, 0xfde3, 0xfe82,
+ 0xfebe, 0xfefb, 0xff5f, 0xffcc, 0x007b, 0x016c,
+ 0x0250, 0x0342, 0x0474, 0x05aa, 0x06b3, 0x07b0,
+ 0x08b4, 0x0996, 0x0a42, 0x0acd, 0x0b5d, 0x0c03,
+ 0x0c88, 0x0cba, 0x0ca6, 0x0c62, 0x0c3e, 0x0cb9,
+ 0x0dcc, 0x0f4a, 0x1129, 0x12c7, 0x1379, 0x135c,
+ 0x12e5, 0x128b, 0x127c, 0x127e, 0x12ab, 0x1326,
+ 0x13a0, 0x1423, 0x14b8, 0x14ca, 0x1443, 0x13a3,
+ 0x130e, 0x12a2, 0x126a, 0x1220, 0x1213, 0x12a7,
+ 0x1356, 0x13a1, 0x1375, 0x12c4, 0x1229, 0x1232,
+ 0x1262, 0x1266, 0x1246, 0x11c3, 0x10ef, 0x0fbd,
+ 0x0df7, 0x0c53, 0x0b3c, 0x0a20, 0x0914, 0x088c,
+ 0x08ac, 0x0986, 0x0a82, 0x0afb, 0x0b17, 0x0ad0,
+ 0x0a45, 0x09e1, 0x0933, 0x07f0, 0x06bb, 0x05cc,
+ 0x051c, 0x04fb, 0x054b, 0x05a9, 0x05d3, 0x0587,
+ 0x04c9, 0x03bc, 0x0276, 0x014b, 0x00c3, 0x011a,
+ 0x01d2, 0x0218, 0x0184, 0x0035, 0xfea1, 0xfd3e,
+ 0xfc62, 0xfc71, 0xfd2f, 0xfddd, 0xfe70, 0xfed5,
+ 0xfe89, 0xfdf5, 0xfd90, 0xfd12, 0xfcb3, 0xfc6c,
+ 0xfb7e, 0xf9ee, 0xf845, 0xf6f2, 0xf68b, 0xf70d,
+ 0xf7ed, 0xf8be, 0xf94b, 0xf9eb, 0xfac4, 0xfb2f,
+ 0xfb24, 0xfb32, 0xfb5e, 0xfbc0, 0xfc65, 0xfc9a,
+ 0xfc1c, 0xfb65, 0xfaa1, 0xf9c3, 0xf8de, 0xf826,
+ 0xf803, 0xf862, 0xf8ba, 0xf90e, 0xf9b6, 0xfa7a,
+ 0xfae4, 0xfaaa, 0xf9da, 0xf90b, 0xf8d1, 0xf937,
+ 0xf9f8, 0xfaa8, 0xfaf5, 0xfaec, 0xfaca, 0xfae3,
+ 0xfb3c, 0xfb7a, 0xfbe5, 0xfce5, 0xfddd, 0xfe53,
+ 0xfe7f, 0xfe7a, 0xfe99, 0xff34, 0x001d, 0x0136,
+ 0x0235, 0x02c0, 0x0336, 0x03aa, 0x0395, 0x02f7,
+ 0x01fe, 0x00fc, 0x0079, 0x0061, 0x00a0, 0x015f,
+ 0x0225, 0x0298, 0x02dd, 0x02d5, 0x0292, 0x0249,
+ 0x01d0, 0x012b, 0x00a0, 0x0034, 0xffdd, 0xffa9,
+ 0xff73, 0xfeac, 0xfd59, 0xfc23, 0xfb06, 0xfa05,
+ 0xf9f5, 0xfab9, 0xfb8b, 0xfc65, 0xfd03, 0xfd25,
+ 0xfd46, 0xfd3b, 0xfca2, 0xfbec, 0xfb52, 0xfac8,
+ 0xfa66, 0xfa2a, 0xfa40, 0xfac0, 0xfb7b, 0xfc46,
+ 0xfcd0, 0xfce6, 0xfcae, 0xfc46, 0xfbf7, 0xfbc9,
+ 0xfb86, 0xfbd1, 0xfcf4, 0xfdfa, 0xfeb1, 0xff73,
+ 0xffc8, 0xff7d, 0xfed4, 0xfdea, 0xfce8, 0xfbbb,
+ 0xfa64, 0xf982, 0xf98e, 0xfa83, 0xfbdf, 0xfce9,
+ 0xfda7, 0xfe76, 0xff42, 0x001c, 0x0134, 0x0270,
+ 0x03a9, 0x047b, 0x04c8, 0x04d0, 0x0432, 0x02cb,
+ 0x016c, 0x005e, 0xff79, 0xff0b, 0xff07, 0xfeef,
+ 0xfeb5, 0xfe9a, 0xfebe, 0xfed7, 0xfe7d, 0xfdbf,
+ 0xfcec, 0xfc56, 0xfc49, 0xfcb7, 0xfd80, 0xfe8b,
+ 0xff4a, 0xff69, 0xff43, 0xfefe, 0xfe7e, 0xfdee,
+ 0xfdb8, 0xfe56, 0xffa8, 0x00d2, 0x015b, 0x0145,
+ 0x00b3, 0x0028, 0x0001, 0x001e, 0x008f, 0x0149,
+ 0x01d6, 0x01f9, 0x01b0, 0x0108, 0x0055, 0xffd5,
+ 0xff9b, 0xffae, 0xffd9, 0xffec, 0xffc3, 0xff18,
+ 0xfe11, 0xfd3c, 0xfcdf, 0xfd14, 0xfd98, 0xfdcb,
+ 0xfdaf, 0xfd96, 0xfd46, 0xfcac, 0xfc30, 0xfbf3,
+ 0xfbc6, 0xfb6a, 0xfab6, 0xf9e0, 0xf921, 0xf86c,
+ 0xf7b8, 0xf70e, 0xf6a1, 0xf6c9, 0xf7a4, 0xf910,
+ 0xfaa8, 0xfbaa, 0xfbc9, 0xfb6b, 0xfae7, 0xfa9c,
+ 0xfaf1, 0xfbb0, 0xfc80, 0xfd66, 0xfe4e, 0xff1f,
+ 0xffda, 0x006e, 0x00e1, 0x011c, 0x00e4, 0x0085,
+ 0x0088, 0x00e3, 0x0134, 0x0136, 0x00e0, 0x0038,
+ 0xff5f, 0xfec8, 0xfe94, 0xfe5d, 0xfe31, 0xfe60,
+ 0xfee5, 0xffe5, 0x0153, 0x029f, 0x03af, 0x0496,
+ 0x04cb, 0x0407, 0x02ba, 0x0159, 0x0020, 0xff77,
+ 0xff92, 0xffef, 0x0030, 0x0069, 0x001e, 0xff1c,
+ 0xfe0e, 0xfd11, 0xfc24, 0xfbdc, 0xfc40, 0xfd27,
+ 0xfe8c, 0xffdb, 0x00c2, 0x0128, 0x0082, 0xff1c,
+ 0xfdbf, 0xfca4, 0xfc07, 0xfbc7, 0xfb96, 0xfc00,
+ 0xfd36, 0xfe9a, 0xffe0, 0x00dd, 0x019d, 0x0277,
+ 0x0331, 0x03a6, 0x0434, 0x04c1, 0x04ff, 0x051d,
+ 0x0590, 0x067b, 0x076c, 0x0809, 0x082b, 0x0799,
+ 0x06b5, 0x05fe, 0x0567, 0x0545, 0x05b5, 0x0615,
+ 0x0662, 0x06c6, 0x06c3, 0x0630, 0x0522, 0x03d1,
+ 0x02c6, 0x01eb, 0x010f, 0x008f, 0x004b, 0xffb9,
+ 0xfeaf, 0xfd50, 0xfc23, 0xfb79, 0xfb00, 0xfab9,
+ 0xfad9, 0xfb3c, 0xfbd7, 0xfca3, 0xfd79, 0xfe48,
+ 0xfefa, 0xff9d, 0x0068, 0x015e, 0x025c, 0x0321,
+ 0x0386, 0x03c3, 0x03e5, 0x03bd, 0x0380, 0x0378,
+ 0x038d, 0x0395, 0x0396, 0x03ee, 0x04bf, 0x056e,
+ 0x058d, 0x0563, 0x04f7, 0x03f1, 0x026f, 0x010e,
+ 0x0050, 0x0056, 0x00d8, 0x0180, 0x022e, 0x02a3,
+ 0x02a3, 0x025f, 0x0226, 0x0224, 0x0274, 0x02e9,
+ 0x033a, 0x033d, 0x02c2, 0x0211, 0x01d2, 0x0231,
+ 0x0301, 0x03e3, 0x0467, 0x04c0, 0x0546, 0x05cd,
+ 0x062a, 0x062d, 0x05e1, 0x05e8, 0x0660, 0x06c3,
+ 0x06ee, 0x06fc, 0x071e, 0x0782, 0x07fa, 0x0881,
+ 0x0930, 0x09d2, 0x0a5f, 0x0ad8, 0x0b2b, 0x0b95,
+ 0x0bde, 0x0b82, 0x0ad1, 0x0a53, 0x0a4c, 0x0ae3,
+ 0x0bc3, 0x0c88, 0x0d1d, 0x0d5f, 0x0d80, 0x0da7,
+ 0x0d7c, 0x0d1d, 0x0cd8, 0x0c8c, 0x0c72, 0x0cdf,
+ 0x0d9f, 0x0e8d, 0x0f6b, 0x0f9e, 0x0f0b, 0x0e35,
+ 0x0d86, 0x0cf2, 0x0c36, 0x0b5d, 0x0a64, 0x091b,
+ 0x0807, 0x07e5, 0x084b, 0x0874, 0x0857, 0x081f,
+ 0x07f9, 0x081a, 0x083a, 0x0808, 0x07e5, 0x07fc,
+ 0x07e3, 0x07be, 0x07dd, 0x07d5, 0x077b, 0x0737,
+ 0x0712, 0x0708, 0x074a, 0x0796, 0x07b5, 0x07df,
+ 0x0826, 0x088c, 0x0921, 0x09b8, 0x0a3b, 0x0ac0,
+ 0x0b4c, 0x0c1f, 0x0d46, 0x0e66, 0x0f63, 0x0ff7,
+ 0x0f86, 0x0e3e, 0x0cc2, 0x0b66, 0x0a7f, 0x0a0e,
+ 0x09b4, 0x0978, 0x097c, 0x09aa, 0x09e6, 0x0a05,
+ 0x0a21, 0x0a52, 0x0a62, 0x0a72, 0x0a82, 0x0a2c,
+ 0x09be, 0x0994, 0x096b, 0x0943, 0x08ea, 0x07fd,
+ 0x06d6, 0x0583, 0x03c5, 0x0226, 0x012b, 0x010e,
+ 0x01e1, 0x02e3, 0x03ae, 0x0489, 0x0513, 0x0516,
+ 0x0503, 0x04ce, 0x0446, 0x036d, 0x0233, 0x00b7,
+ 0xff36, 0xfe03, 0xfd73, 0xfd40, 0xfd62, 0xfe29,
+ 0xff00, 0xff7b, 0xfffc, 0x0070, 0x00df, 0x0199,
+ 0x022e, 0x0256, 0x0287, 0x02cb, 0x02f8, 0x033e,
+ 0x038a, 0x0383, 0x0312, 0x0260, 0x019c, 0x010e,
+ 0x00d8, 0x00c0, 0x00cf, 0x014b, 0x01d1, 0x01e3,
+ 0x018e, 0x00b0, 0xff5c, 0xfe2c, 0xfd18, 0xfbc5,
+ 0xfaa2, 0xf9fc, 0xf96a, 0xf8a0, 0xf787, 0xf613,
+ 0xf496, 0xf367, 0xf286, 0xf201, 0xf1ec, 0xf20d,
+ 0xf21c, 0xf1fd, 0xf1cd, 0xf1c7, 0xf1d9, 0xf1bc,
+ 0xf19e, 0xf1b0, 0xf1d9, 0xf23d, 0xf31a, 0xf46e,
+ 0xf61d, 0xf7d8, 0xf936, 0xfa02, 0xfa3a, 0xfa3a,
+ 0xfa85, 0xfb29, 0xfc0e, 0xfd33, 0xfe7c, 0xffd6,
+ 0x013b, 0x028c, 0x03c5, 0x04f7, 0x05fc, 0x06b3,
+ 0x0751, 0x0835, 0x095b, 0x0a89, 0x0bb9, 0x0cd7,
+ 0x0db3, 0x0e23, 0x0e1f, 0x0e08, 0x0e1a, 0x0e06,
+ 0x0df6, 0x0e45, 0x0e94, 0x0ec5, 0x0f1c, 0x0f86,
+ 0x100f, 0x10ba, 0x1145, 0x11bc, 0x1211, 0x11f0,
+ 0x1189, 0x111e, 0x10a5, 0x1054, 0x107c, 0x10e7,
+ 0x10f2, 0x108e, 0x1036, 0x0fea, 0x0f9e, 0x0f7a,
+ 0x0f22, 0x0eb0, 0x0e87, 0x0e23, 0x0d9c, 0x0d9e,
+ 0x0daa, 0x0d7d, 0x0d8a, 0x0da7, 0x0dca, 0x0de8,
+ 0x0d8a, 0x0d0b, 0x0cb9, 0x0c2b, 0x0b9e, 0x0b47,
+ 0x0abf, 0x0a0f, 0x0969, 0x08dd, 0x089a, 0x088c,
+ 0x0895, 0x08b0, 0x08ca, 0x08f1, 0x08f3, 0x089d,
+ 0x0835, 0x07ce, 0x076c, 0x0714, 0x0650, 0x0531,
+ 0x0459, 0x03bb, 0x0360, 0x0374, 0x0386, 0x0395,
+ 0x03f5, 0x0455, 0x046f, 0x0423, 0x0354, 0x025c,
+ 0x0171, 0x0070, 0xff95, 0xff18, 0xfedf, 0xfedb,
+ 0xfee1, 0xfebb, 0xfe7c, 0xfe57, 0xfe38, 0xfdbf,
+ 0xfcea, 0xfc4f, 0xfc2e, 0xfc48, 0xfcb5, 0xfda1,
+ 0xfeab, 0xff5f, 0xffb1, 0xff96, 0xfeee, 0xfded,
+ 0xfd05, 0xfc84, 0xfc59, 0xfc4b, 0xfc7a, 0xfd1b,
+ 0xfe15, 0xff43, 0x004d, 0x00d1, 0x00df, 0x0069,
+ 0xff66, 0xfe6a, 0xfdc0, 0xfd47, 0xfd43, 0xfdb1,
+ 0xfe44, 0xfef4, 0xff75, 0xffa6, 0xffd3, 0xffe0,
+ 0xffb7, 0xff83, 0xff24, 0xfe8f, 0xfdc1, 0xfcae,
+ 0xfbcf, 0xfb58, 0xfb09, 0xfb14, 0xfb63, 0xfb91,
+ 0xfc06, 0xfd0c, 0xfdfb, 0xfe49, 0xfe0a, 0xfd78,
+ 0xfcb9, 0xfbf7, 0xfba1, 0xfc0e, 0xfd25, 0xfe90,
+ 0xffee, 0x00f1, 0x018e, 0x01d6, 0x01c5, 0x012f,
+ 0x0004, 0xfe87, 0xfd19, 0xfbeb, 0xfb0a, 0xfa8f,
+ 0xfa9d, 0xfb10, 0xfba5, 0xfc5c, 0xfd09, 0xfd49,
+ 0xfd0e, 0xfc9c, 0xfc29, 0xfbdc, 0xfbc5, 0xfbd2,
+ 0xfbe5, 0xfbf9, 0xfc0a, 0xfbef, 0xfbb6, 0xfbc7,
+ 0xfc16, 0xfc3d, 0xfc53, 0xfc84, 0xfcb7, 0xfcfd,
+ 0xfd38, 0xfd12, 0xfcaa, 0xfc41, 0xfbfd, 0xfc2f,
+ 0xfcbb, 0xfd01, 0xfcd7, 0xfc4b, 0xfb47, 0xfa2c,
+ 0xf976, 0xf926, 0xf939, 0xf9a2, 0xfa38, 0xfaf9,
+ 0xfbc4, 0xfc7b, 0xfd26, 0xfd6e, 0xfd1b, 0xfc54,
+ 0xfb13, 0xf9db, 0xf977, 0xf98f, 0xf987, 0xf94c,
+ 0xf8c8, 0xf857, 0xf884, 0xf932, 0xfa3c, 0xfb77,
+ 0xfc61, 0xfcca, 0xfccd, 0xfc90, 0xfc71, 0xfcac,
+ 0xfd2c, 0xfd97, 0xfd8c, 0xfd45, 0xfcf2, 0xfc3f,
+ 0xfb4e, 0xfa7b, 0xf9df, 0xf9b0, 0xf9f5, 0xfa7e,
+ 0xfb22, 0xfb76, 0xfb7d, 0xfb99, 0xfb84, 0xfb36,
+ 0xfb40, 0xfbaa, 0xfc45, 0xfcf8, 0xfd6b, 0xfda2,
+ 0xfdc0, 0xfd7d, 0xfcd3, 0xfc06, 0xfb3f, 0xfae1,
+ 0xfb4c, 0xfc62, 0xfdd5, 0xff51, 0x007b, 0x010d,
+ 0x00fc, 0x0092, 0x0029, 0xfff8, 0x000f, 0x003b,
+ 0x001b, 0xffb4, 0xff4d, 0xfeff, 0xfed5, 0xfeec,
+ 0xff17, 0xfedd, 0xfe1f, 0xfd48, 0xfcc9, 0xfc83,
+ 0xfc13, 0xfb85, 0xfb09, 0xfa77, 0xf9c6, 0xf93f,
+ 0xf91d, 0xf95f, 0xf9b8, 0xf9ee, 0xfa30, 0xfa8c,
+ 0xfacc, 0xfb02, 0xfb28, 0xfae3, 0xfa30, 0xf97f,
+ 0xf939, 0xf95e, 0xf9a1, 0xf9ee, 0xfa81, 0xfb42,
+ 0xfbce, 0xfc11, 0xfc4d, 0xfca3, 0xfcf2, 0xfd2d,
+ 0xfd59, 0xfd90, 0xfdfb, 0xfe80, 0xfeeb, 0xff33,
+ 0xff29, 0xfebf, 0xfe6b, 0xfe55, 0xfe28, 0xfdfa,
+ 0xfe1b, 0xfe5e, 0xfe7d, 0xfe9b, 0xfeeb, 0xff71,
+ 0x0035, 0x013c, 0x0273, 0x03dc, 0x0543, 0x0635,
+ 0x067d, 0x060d, 0x0501, 0x03db, 0x0301, 0x0261,
+ 0x01e8, 0x01b2, 0x01f3, 0x02c8, 0x03e8, 0x04d1,
+ 0x0547, 0x0564, 0x0523, 0x0463, 0x0355, 0x0233,
+ 0x0114, 0x007b, 0x00b1, 0x0117, 0x0145, 0x0153,
+ 0x0146, 0x0163, 0x01dc, 0x0250, 0x026b, 0x0230,
+ 0x01e8, 0x0205, 0x026a, 0x02cd, 0x0363, 0x0416,
+ 0x047b, 0x049e, 0x04de, 0x0574, 0x061e, 0x066d,
+ 0x0687, 0x0683, 0x060e, 0x0544, 0x0457, 0x0355,
+ 0x02a1, 0x0236, 0x01a2, 0x0129, 0x0122, 0x0162,
+ 0x01bc, 0x01e9, 0x01c7, 0x0183, 0x011a, 0x00a4,
+ 0x005d, 0x000b, 0xffc5, 0xffe5, 0x0018, 0x001d,
+ 0x001f, 0xfffa, 0xffb5, 0xffd5, 0x0066, 0x0111,
+ 0x0192, 0x01d5, 0x020e, 0x0286, 0x0327, 0x039f,
+ 0x03f4, 0x047e, 0x053d, 0x05d6, 0x05ff, 0x0580,
+ 0x047a, 0x038e, 0x0343, 0x03c9, 0x04eb, 0x061f,
+ 0x071f, 0x07cf, 0x07d9, 0x073e, 0x062d, 0x04a4,
+ 0x02eb, 0x014c, 0xfff1, 0xff55, 0xff9f, 0x0086,
+ 0x01f4, 0x034b, 0x03b5, 0x035e, 0x02aa, 0x01b1,
+ 0x00f4, 0x00c4, 0x00e1, 0x015e, 0x025e, 0x037b,
+ 0x045e, 0x0506, 0x0553, 0x0548, 0x0543, 0x0574,
+ 0x05a5, 0x05a0, 0x054c, 0x04b8, 0x043f, 0x0410,
+ 0x03fb, 0x03f6, 0x0424, 0x0487, 0x0525, 0x05e5,
+ 0x067a, 0x06f6, 0x07a4, 0x0842, 0x0898, 0x08cf,
+ 0x0896, 0x07a4, 0x0683, 0x05ba, 0x0579, 0x05d9,
+ 0x0684, 0x0720, 0x079d, 0x07c9, 0x07b8, 0x07c3,
+ 0x07c7, 0x079a, 0x0779, 0x0779, 0x0786, 0x07a8,
+ 0x07ff, 0x0889, 0x08f2, 0x0918, 0x093c, 0x098e,
+ 0x0a04, 0x0a63, 0x0a66, 0x0a46, 0x0a6a, 0x0ad5,
+ 0x0b53, 0x0b93, 0x0b53, 0x0ab5, 0x0a21, 0x09d1,
+ 0x098c, 0x090c, 0x0881, 0x080b, 0x0795, 0x0758,
+ 0x076f, 0x0798, 0x07b6, 0x07bf, 0x07ac, 0x07b8,
+ 0x0816, 0x0884, 0x08ac, 0x08b8, 0x08ea, 0x0937,
+ 0x099c, 0x09f4, 0x09ba, 0x08f3, 0x0837, 0x07cb,
+ 0x07b7, 0x07e5, 0x0845, 0x08f6, 0x09ce, 0x0a7f,
+ 0x0b00, 0x0b2c, 0x0af3, 0x0a9b, 0x0a3b, 0x09e3,
+ 0x09a8, 0x0971, 0x0945, 0x092d, 0x091b, 0x093e,
+ 0x098a, 0x09af, 0x0994, 0x093c, 0x08e4, 0x08bc,
+ 0x087a, 0x0807, 0x079e, 0x0767, 0x0786, 0x07c6,
+ 0x07c6, 0x07a8, 0x0786, 0x0735, 0x06dc, 0x06c8,
+ 0x0713, 0x0795, 0x080d, 0x085f, 0x085e, 0x07e3,
+ 0x072d, 0x0681, 0x0606, 0x05c6, 0x0598, 0x0585,
+ 0x059e, 0x05cf, 0x0608, 0x05d8, 0x04e2, 0x0398,
+ 0x0258, 0x014e, 0x00d5, 0x00c8, 0x00d8, 0x00fd,
+ 0x0116, 0x0147, 0x019d, 0x018f, 0x010c, 0x0063,
+ 0xffc4, 0xff8f, 0xffa8, 0xff97, 0xff72, 0xff45,
+ 0xfef4, 0xfe9f, 0xfe42, 0xfe08, 0xfe37, 0xfeab,
+ 0xff55, 0x001d, 0x00bf, 0x0139, 0x0182, 0x015e,
+ 0x00d6, 0x0015, 0xff37, 0xfe24, 0xfcc7, 0xfb78,
+ 0xfaa4, 0xfa5e, 0xfa7f, 0xfa9a, 0xfa7a, 0xfa2a,
+ 0xf984, 0xf89e, 0xf7bf, 0xf700, 0xf69f, 0xf69f,
+ 0xf6a4, 0xf6d5, 0xf73e, 0xf75d, 0xf71a, 0xf6a9,
+ 0xf602, 0xf547, 0xf4d5, 0xf4f2, 0xf57f, 0xf653,
+ 0xf787, 0xf8e8, 0xfa19, 0xfafc, 0xfb61, 0xfb60,
+ 0xfb6c, 0xfbb0, 0xfc35, 0xfccd, 0xfd2f, 0xfda7,
+ 0xfe52, 0xfee7, 0xffac, 0x00b2, 0x0193, 0x026e,
+ 0x0359, 0x0400, 0x0473, 0x0502, 0x05c5, 0x067a,
+ 0x06e1, 0x0762, 0x0851, 0x0967, 0x0a46, 0x0aa8,
+ 0x0a9d, 0x0a87, 0x0a67, 0x0a4b, 0x0a93, 0x0b2d,
+ 0x0be8, 0x0cae, 0x0d40, 0x0dac, 0x0e14, 0x0e54,
+ 0x0e82, 0x0ec8, 0x0f2e, 0x0fa6, 0x0ffb, 0x1015,
+ 0x1000, 0x0fab, 0x0f20, 0x0e5e, 0x0d72, 0x0cb3,
+ 0x0c28, 0x0baf, 0x0b8b, 0x0b9f, 0x0b95, 0x0ba2,
+ 0x0bfc, 0x0c83, 0x0cef, 0x0cdc, 0x0c6a, 0x0bf3,
+ 0x0b4c, 0x0a86, 0x0a0a, 0x09c9, 0x09a3, 0x09c4,
+ 0x0a1b, 0x0a7c, 0x0aff, 0x0ba9, 0x0c35, 0x0c72,
+ 0x0c7d, 0x0c75, 0x0c63, 0x0c58, 0x0c32, 0x0bb2,
+ 0x0af2, 0x0a1f, 0x0937, 0x0854, 0x0783, 0x06c7,
+ 0x0659, 0x0632, 0x05fc, 0x05c8, 0x05b9, 0x0576,
+ 0x04be, 0x03cb, 0x02ea, 0x0229, 0x017c, 0x00e5,
+ 0x0064, 0x000e, 0xffef, 0xffb0, 0xff41, 0xff11,
+ 0xff28, 0xff53, 0xff9c, 0xff9c, 0xfef3, 0xfe00,
+ 0xfd18, 0xfc56, 0xfbe5, 0xfbb6, 0xfbbb, 0xfc23,
+ 0xfd0a, 0xfe40, 0xff57, 0x0013, 0x0091, 0x00da,
+ 0x00fa, 0x00e8, 0x0083, 0x0016, 0xffcd, 0xff55,
+ 0xfeed, 0xfefb, 0xff37, 0xff69, 0xff84, 0xff9a,
+ 0xffe0, 0xfffa, 0xff9c, 0xff16, 0xfe76, 0xfdd7,
+ 0xfda2, 0xfdca, 0xfe37, 0xfecf, 0xff32, 0xff57,
+ 0xff1e, 0xfe4f, 0xfd5e, 0xfc9c, 0xfc1d, 0xfc33,
+ 0xfc83, 0xfca6, 0xfcf5, 0xfd4e, 0xfd42, 0xfce9,
+ 0xfc51, 0xfb85, 0xfacc, 0xfa67, 0xfab1, 0xfbb3,
+ 0xfcdc, 0xfdab, 0xfe02, 0xfe09, 0xfde2, 0xfd71,
+ 0xfcae, 0xfbca, 0xfb20, 0xfaee, 0xfaeb, 0xfb0f,
+ 0xfbca, 0xfcfa, 0xfe11, 0xfea9, 0xfe8e, 0xfdf3,
+ 0xfd0b, 0xfbfe, 0xfb6d, 0xfb94, 0xfc00, 0xfc93,
+ 0xfd29, 0xfd78, 0xfd99, 0xfd90, 0xfd4f, 0xfced,
+ 0xfc5b, 0xfbd4, 0xfbbc, 0xfc00, 0xfc94, 0xfd58,
+ 0xfdf3, 0xfe77, 0xff06, 0xff5e, 0xff42, 0xfeb9,
+ 0xfdeb, 0xfcd1, 0xfb6b, 0xfa29, 0xf954, 0xf8fc,
+ 0xf931, 0xf969, 0xf956, 0xf995, 0xfa3b, 0xfaef,
+ 0xfbda, 0xfce4, 0xfdce, 0xfe95, 0xfeff, 0xfefe,
+ 0xfea8, 0xfdeb, 0xfd2a, 0xfcc8, 0xfca0, 0xfca7,
+ 0xfcdc, 0xfd30, 0xfdad, 0xfe13, 0xfe4d, 0xfe8b,
+ 0xfe81, 0xfe1a, 0xfdd8, 0xfde3, 0xfe1a, 0xfe63,
+ 0xfea2, 0xfeff, 0xff84, 0xffe4, 0x001c, 0x0032,
+ 0x0001, 0xffb2, 0xff68, 0xff38, 0xff5b, 0xff9b,
+ 0xff66, 0xfea3, 0xfda3, 0xfcd5, 0xfc83, 0xfc7b,
+ 0xfc5b, 0xfc2b, 0xfc1d, 0xfc0a, 0xfba1, 0xfaff,
+ 0xfa81, 0xfa40, 0xfa36, 0xfa70, 0xfade, 0xfb5b,
+ 0xfbd2, 0xfc2f, 0xfc79, 0xfcb7, 0xfcb9, 0xfc46,
+ 0xfb8c, 0xfb24, 0xfb5c, 0xfbda, 0xfc5e, 0xfcdf,
+ 0xfd2f, 0xfd85, 0xfe39, 0xfee7, 0xff2d, 0xff21,
+ 0xfea6, 0xfdd9, 0xfd2e, 0xfca5, 0xfc28, 0xfbd2,
+ 0xfb7f, 0xfb3a, 0xfb4b, 0xfb78, 0xfb8f, 0xfbd6,
+ 0xfc48, 0xfc92, 0xfcb2, 0xfcb6, 0xfca1, 0xfcb0,
+ 0xfd03, 0xfd5c, 0xfd7c, 0xfd70, 0xfd5c, 0xfd3f,
+ 0xfd04, 0xfc92, 0xfbd0, 0xfae9, 0xfa3f, 0xf9df,
+ 0xf9b7, 0xf9e1, 0xfa40, 0xfa9b, 0xfae6, 0xfacb,
+ 0xfa19, 0xf952, 0xf8df, 0xf8ba, 0xf8cc, 0xf8e0,
+ 0xf911, 0xf9b2, 0xfa78, 0xfb09, 0xfb61, 0xfb3e,
+ 0xfabb, 0xfa7a, 0xfaab, 0xfb42, 0xfc3f, 0xfd20,
+ 0xfd6d, 0xfd62, 0xfd69, 0xfdbb, 0xfe5a, 0xff19,
+ 0xfff0, 0x00f5, 0x0201, 0x02c4, 0x0325, 0x031b,
+ 0x02b4, 0x0255, 0x022e, 0x022c, 0x02b1, 0x03ef,
+ 0x0560, 0x06c3, 0x07f2, 0x0875, 0x084f, 0x07c7,
+ 0x06e0, 0x05c8, 0x04a9, 0x03a9, 0x0315, 0x02cf,
+ 0x02a1, 0x02af, 0x02a3, 0x021f, 0x017f, 0x0103,
+ 0x00aa, 0x00c3, 0x014f, 0x01e0, 0x0237, 0x0247,
+ 0x0213, 0x01d7, 0x01d7, 0x01e5, 0x01c0, 0x0191,
+ 0x0186, 0x01ad, 0x023a, 0x0304, 0x0376, 0x0353,
+ 0x02b0, 0x01ab, 0x008b, 0xffba, 0xff8c, 0xffe8,
+ 0x004b, 0x005d, 0x0009, 0xff97, 0xffa6, 0x0048,
+ 0x00fc, 0x019b, 0x0210, 0x0223, 0x01f9, 0x01d7,
+ 0x01dd, 0x0201, 0x01fb, 0x01d1, 0x01cf, 0x01da,
+ 0x01cd, 0x01c5, 0x01a3, 0x0149, 0x00d1, 0x0037,
+ 0xff7b, 0xfecc, 0xfe63, 0xfe3d, 0xfe2f, 0xfe3b,
+ 0xfe40, 0xfe07, 0xfdee, 0xfe66, 0xff3a, 0x0000,
+ 0x0068, 0x0064, 0x0041, 0xffff, 0xff6c, 0xfee8,
+ 0xfebb, 0xfed8, 0xff63, 0x0048, 0x0130, 0x0204,
+ 0x02d7, 0x03a7, 0x043a, 0x046a, 0x0482, 0x048e,
+ 0x0446, 0x03f7, 0x0407, 0x0460, 0x04e0, 0x0567,
+ 0x05df, 0x0644, 0x068f, 0x0706, 0x07d1, 0x08a7,
+ 0x0999, 0x0aa2, 0x0b39, 0x0b72, 0x0bc1, 0x0c37,
+ 0x0ce4, 0x0db6, 0x0e6e, 0x0f00, 0x0f48, 0x0f25,
+ 0x0ec3, 0x0e37, 0x0da9, 0x0d44, 0x0ce0, 0x0c74,
+ 0x0bfb, 0x0b53, 0x0a9a, 0x09c7, 0x08c0, 0x07db,
+ 0x074f, 0x0712, 0x0728, 0x073e, 0x0719, 0x06fc,
+ 0x06e4, 0x069e, 0x0664, 0x0699, 0x075c, 0x0846,
+ 0x08e7, 0x0948, 0x0979, 0x0972, 0x0963, 0x0952,
+ 0x092d, 0x0934, 0x0947, 0x0903, 0x08b4, 0x08cc,
+ 0x08fa, 0x08e9, 0x089e, 0x0831, 0x0801, 0x0862,
+ 0x0922, 0x09fb, 0x0aa5, 0x0ac6, 0x0a7f, 0x0a0f,
+ 0x0977, 0x08e6, 0x0881, 0x0835, 0x07fd, 0x07b7,
+ 0x0765, 0x0755, 0x0769, 0x0748, 0x06e9, 0x0629,
+ 0x04df, 0x0358, 0x0238, 0x01ea, 0x0255, 0x0327,
+ 0x03f0, 0x042e, 0x040e, 0x0405, 0x03e2, 0x03a2,
+ 0x0371, 0x02fa, 0x0270, 0x0288, 0x0344, 0x044c,
+ 0x0540, 0x0599, 0x0554, 0x04ce, 0x0443, 0x03ed,
+ 0x03ef, 0x0434, 0x047b, 0x0487, 0x0452, 0x03d8,
+ 0x032f, 0x02ba, 0x02b0, 0x031d, 0x03da, 0x047b,
+ 0x051d, 0x0613, 0x06f4, 0x0795, 0x0838, 0x088c,
+ 0x087e, 0x085a, 0x0806, 0x07bc, 0x07de, 0x0819,
+ 0x084a, 0x08c8, 0x097f, 0x0a46, 0x0af8, 0x0b2c,
+ 0x0ae8, 0x0a93, 0x0a30, 0x09d1, 0x09c7, 0x09f9,
+ 0x0a15, 0x09fc, 0x099b, 0x08fd, 0x0846, 0x0761,
+ 0x0629, 0x04ac, 0x031e, 0x01e1, 0x0152, 0x016c,
+ 0x01d0, 0x022a, 0x0270, 0x028f, 0x0264, 0x0212,
+ 0x01be, 0x0166, 0x0126, 0x00fb, 0x00c3, 0x007e,
+ 0x0020, 0xff9c, 0xfefc, 0xfe3f, 0xfd88, 0xfcfa,
+ 0xfc90, 0xfc79, 0xfcb0, 0xfcd7, 0xfcc3, 0xfc69,
+ 0xfbf4, 0xfbb3, 0xfb91, 0xfb98, 0xfbff, 0xfc52,
+ 0xfc37, 0xfbdd, 0xfb52, 0xfac2, 0xfa4d, 0xf9c9,
+ 0xf94d, 0xf8ea, 0xf880, 0xf834, 0xf812, 0xf804,
+ 0xf812, 0xf823, 0xf825, 0xf828, 0xf831, 0xf858,
+ 0xf857, 0xf802, 0xf7f2, 0xf86f, 0xf931, 0xfa22,
+ 0xfaff, 0xfb91, 0xfc29, 0xfcdb, 0xfd63, 0xfd8b,
+ 0xfd54, 0xfd14, 0xfd08, 0xfd45, 0xfdf5, 0xfeea,
+ 0xffe2, 0x00f9, 0x0238, 0x036b, 0x0440, 0x0489,
+ 0x0491, 0x0475, 0x043e, 0x0451, 0x048c, 0x0497,
+ 0x04d3, 0x0579, 0x0667, 0x077d, 0x0875, 0x0947,
+ 0x0a1e, 0x0ae5, 0x0b9c, 0x0c26, 0x0c4e, 0x0c44,
+ 0x0c33, 0x0c32, 0x0c74, 0x0cce, 0x0d4c, 0x0e45,
+ 0x0f58, 0x1009, 0x1040, 0x0fca, 0x0ee5, 0x0e1d,
+ 0x0d71, 0x0ced, 0x0cdb, 0x0d28, 0x0d9f, 0x0e0b,
+ 0x0e1b, 0x0dbc, 0x0d11, 0x0c18, 0x0adb, 0x0995,
+ 0x0871, 0x0794, 0x073d, 0x0749, 0x0759, 0x0771,
+ 0x0785, 0x0751, 0x06eb, 0x068c, 0x0644, 0x062f,
+ 0x0634, 0x0637, 0x064a, 0x0656, 0x0650, 0x0649,
+ 0x0621, 0x05dd, 0x05c0, 0x05b8, 0x0580, 0x050b,
+ 0x04a0, 0x049b, 0x0508, 0x059b, 0x0611, 0x066a,
+ 0x06c1, 0x06f3, 0x06d0, 0x0679, 0x062f, 0x060e,
+ 0x05fd, 0x05be, 0x053b, 0x049e, 0x0427, 0x03fb,
+ 0x03cf, 0x0363, 0x02f3, 0x0289, 0x0210, 0x01d6,
+ 0x01e6, 0x0204, 0x023d, 0x0288, 0x02d2, 0x0333,
+ 0x0371, 0x0353, 0x02ec, 0x0231, 0x013f, 0x005b,
+ 0xff79, 0xfec4, 0xfe99, 0xfed4, 0xff54, 0x001a,
+ 0x00cf, 0x0137, 0x018d, 0x01ee, 0x024e, 0x02ba,
+ 0x0329, 0x0358, 0x0327, 0x02f3, 0x0311, 0x034a,
+ 0x0364, 0x0363, 0x0336, 0x02fb, 0x02e0, 0x02d0,
+ 0x02cc, 0x02f3, 0x0358, 0x0405, 0x04c2, 0x055e,
+ 0x05f7, 0x0662, 0x065a, 0x0617, 0x05ce, 0x0582,
+ 0x0531, 0x04c3, 0x0448, 0x03e3, 0x039d, 0x038b,
+ 0x03a4, 0x03b3, 0x0393, 0x031b, 0x0272, 0x0206,
+ 0x01c6, 0x0186, 0x0162, 0x0145, 0x0102, 0x007d,
+ 0xffc4, 0xff17, 0xfe5f, 0xfd70, 0xfc75, 0xfb65,
+ 0xfa58, 0xf9c4, 0xf9bf, 0xfa45, 0xfb3e, 0xfc22,
+ 0xfcd5, 0xfd4c, 0xfd15, 0xfc7f, 0xfc19, 0xfbd5,
+ 0xfbe1, 0xfc5d, 0xfd11, 0xfe1c, 0xff5d, 0x004d,
+ 0x00cb, 0x00cf, 0x006b, 0x0011, 0xffed, 0xffc6,
+ 0xff75, 0xff1c, 0xff25, 0xffc8, 0x00b8, 0x017c,
+ 0x01ce, 0x01b0, 0x013a, 0x009c, 0x000f, 0xff84,
+ 0xfee8, 0xfe5a, 0xfdca, 0xfd51, 0xfd27, 0xfd29,
+ 0xfd57, 0xfdab, 0xfdc1, 0xfdc4, 0xfe0b, 0xfe5b,
+ 0xfe79, 0xfe31, 0xfd8f, 0xfd28, 0xfd01, 0xfcd0,
+ 0xfce5, 0xfd2f, 0xfd61, 0xfd9c, 0xfdd1, 0xfdf5,
+ 0xfe26, 0xfe32, 0xfe24, 0xfe2c, 0xfe17, 0xfdf1,
+ 0xfdd8, 0xfda3, 0xfd60, 0xfd32, 0xfd2d, 0xfd67,
+ 0xfd98, 0xfd95, 0xfdc5, 0xfe52, 0xff08, 0xffd4,
+ 0x0089, 0x0111, 0x0187, 0x01e0, 0x01f4, 0x01c0,
+ 0x0151, 0x00a8, 0xffd9, 0xff13, 0xfe52, 0xfd7c,
+ 0xfced, 0xfcf8, 0xfd42, 0xfd73, 0xfd94, 0xfd8c,
+ 0xfd57, 0xfd2d, 0xfcfd, 0xfcbb, 0xfc9d, 0xfc9a,
+ 0xfca1, 0xfcac, 0xfc52, 0xfb67, 0xfa58, 0xf977,
+ 0xf915, 0xf97f, 0xfa3e, 0xfaaf, 0xface, 0xfabf,
+ 0xfaae, 0xfabf, 0xfac5, 0xfa99, 0xfa50, 0xfa13,
+ 0xfa26, 0xfa93, 0xfb10, 0xfb89, 0xfc03, 0xfc54,
+ 0xfc49, 0xfbd6, 0xfb24, 0xfa90, 0xfa75, 0xfaf8,
+ 0xfbfd, 0xfd3f, 0xfe4d, 0xfea8, 0xfe4e, 0xfdc8,
+ 0xfd5c, 0xfcf2, 0xfc6c, 0xfba3, 0xfa98, 0xf9cc,
+ 0xf9b6, 0xfa23, 0xfa9d, 0xfafb, 0xfb4f, 0xfb96,
+ 0xfba9, 0xfb4d, 0xfa73, 0xf962, 0xf896, 0xf858,
+ 0xf870, 0xf882, 0xf876, 0xf82d, 0xf7a4, 0xf743,
+ 0xf734, 0xf75f, 0xf7e8, 0xf8aa, 0xf974, 0xfa92,
+ 0xfbe2, 0xfcd3, 0xfd59, 0xfd9c, 0xfdc3, 0xfe05,
+ 0xfe1c, 0xfdc0, 0xfd30, 0xfcb4, 0xfc98, 0xfcff,
+ 0xfd91, 0xfe2d, 0xfefc, 0xffca, 0x0058, 0x00a3,
+ 0x00b0, 0x00b8, 0x00fb, 0x016a, 0x01f1, 0x0264,
+ 0x0278, 0x0252, 0x0266, 0x02bf, 0x0337, 0x03c3,
+ 0x0435, 0x045b, 0x042e, 0x03bb, 0x033e, 0x02e3,
+ 0x0286, 0x024b, 0x0255, 0x0242, 0x01f3, 0x01a5,
+ 0x0154, 0x00ee, 0x004b, 0xff6b, 0xfec8, 0xfe6d,
+ 0xfdf6, 0xfd88, 0xfd2a, 0xfca8, 0xfc46, 0xfbff,
+ 0xfba0, 0xfb70, 0xfb68, 0xfb2b, 0xfadf, 0xfad2,
+ 0xfb17, 0xfb85, 0xfbd4, 0xfbe6, 0xfb90, 0xfacd,
+ 0xfa25, 0xf9ea, 0xf9ef, 0xfa41, 0xfae3, 0xfb77,
+ 0xfbe0, 0xfc5d, 0xfd26, 0xfe2f, 0xff36, 0x000f,
+ 0x0095, 0x009e, 0x006f, 0x0078, 0x00b3, 0x00ed,
+ 0x011f, 0x0133, 0x012e, 0x015a, 0x01a9, 0x01ca,
+ 0x01d8, 0x020f, 0x023c, 0x023b, 0x021f, 0x01fc,
+ 0x01e5, 0x01d1, 0x01a6, 0x016a, 0x00fc, 0x004c,
+ 0xff97, 0xff05, 0xfea0, 0xfe8d, 0xfeda, 0xff59,
+ 0xff9d, 0xff80, 0xff79, 0xffc9, 0x0030, 0x0096,
+ 0x00db, 0x00f3, 0x012d, 0x017c, 0x01ba, 0x0240,
+ 0x0301, 0x0396, 0x0411, 0x0490, 0x04ee, 0x051f,
+ 0x052b, 0x0528, 0x053e, 0x058a, 0x0622, 0x06dd,
+ 0x077b, 0x0806, 0x0875, 0x08d7, 0x099e, 0x0ab4,
+ 0x0b79, 0x0bbe, 0x0b93, 0x0b24, 0x0ade, 0x0ac1,
+ 0x0ab2, 0x0aff, 0x0b8c, 0x0bf6, 0x0c32, 0x0c08,
+ 0x0b65, 0x0aad, 0x09f7, 0x093b, 0x0892, 0x07f1,
+ 0x0777, 0x0733, 0x06f8, 0x06db, 0x06c4, 0x0672,
+ 0x0624, 0x05fa, 0x05ea, 0x061c, 0x0642, 0x0638,
+ 0x0657, 0x066a, 0x064b, 0x0636, 0x05d6, 0x0522,
+ 0x04ac, 0x046c, 0x0430, 0x0403, 0x03d4, 0x03de,
+ 0x045a, 0x0517, 0x05d2, 0x064e, 0x0679, 0x066d,
+ 0x062c, 0x05c2, 0x0531, 0x0478, 0x03cf, 0x032b,
+ 0x0287, 0x022b, 0x01e2, 0x0187, 0x0168, 0x0161,
+ 0x0174, 0x01f0, 0x0285, 0x0308, 0x03a5, 0x041e,
+ 0x044e, 0x0415, 0x034d, 0x0251, 0x015e, 0x0099,
+ 0x003f, 0x0000, 0xffd4, 0x0028, 0x009a, 0x00b4,
+ 0x009a, 0x0057, 0x0027, 0x0026, 0xfff7, 0xff9f,
+ 0xff61, 0xff78, 0x001a, 0x00ee, 0x0199, 0x022c,
+ 0x02a5, 0x0338, 0x03ea, 0x0435, 0x0417, 0x03e4,
+ 0x03b6, 0x03c0, 0x03e5, 0x03f0, 0x041c, 0x047c,
+ 0x0506, 0x05b9, 0x0645, 0x0699, 0x06cb, 0x06c2,
+ 0x06d0, 0x0734, 0x07b4, 0x0836, 0x0889, 0x087f,
+ 0x0864, 0x086c, 0x088a, 0x0890, 0x0859, 0x081c,
+ 0x07d4, 0x074b, 0x06e5, 0x06ce, 0x06bc, 0x06bc,
+ 0x06b1, 0x0668, 0x0605, 0x0573, 0x049f, 0x03cc,
+ 0x0317, 0x029c, 0x027e, 0x02aa, 0x030b, 0x0367,
+ 0x0382, 0x0375, 0x0363, 0x0378, 0x03ae, 0x03b1,
+ 0x038c, 0x0358, 0x02e9, 0x0286, 0x0275, 0x0273,
+ 0x0267, 0x0255, 0x0219, 0x01c7, 0x017c, 0x015f,
+ 0x019a, 0x01ef, 0x023b, 0x02a9, 0x0307, 0x02f7,
+ 0x027a, 0x018f, 0x002e, 0xfec0, 0xfde0, 0xfda1,
+ 0xfdbd, 0xfe26, 0xfeb6, 0xff22, 0xff69, 0xff9c,
+ 0xffa8, 0xff8d, 0xff4e, 0xff1a, 0xff4f, 0xffda,
+ 0x0054, 0x00c2, 0x0150, 0x01d0, 0x01d4, 0x0141,
+ 0x0079, 0xffd7, 0xff67, 0xff48, 0xffaa, 0x0085,
+ 0x01a3, 0x02c5, 0x03a8, 0x0438, 0x0494, 0x04d4,
+ 0x0513, 0x056c, 0x05a8, 0x0598, 0x056e, 0x055e,
+ 0x059b, 0x0641, 0x06ef, 0x076b, 0x07e3, 0x084e,
+ 0x089c, 0x08e3, 0x090f, 0x0922, 0x0948, 0x09a3,
+ 0x0a67, 0x0b8b, 0x0cc6, 0x0de2, 0x0ea3, 0x0ef8,
+ 0x0ef9, 0x0e83, 0x0dbc, 0x0d28, 0x0cf4, 0x0d16,
+ 0x0d87, 0x0e12, 0x0e9b, 0x0f07, 0x0f1e, 0x0ed8,
+ 0x0e42, 0x0d71, 0x0c97, 0x0bc0, 0x0b0a, 0x0aa0,
+ 0x0a76, 0x0a8c, 0x0ae5, 0x0b36, 0x0b34, 0x0ad3,
+ 0x0a38, 0x099c, 0x092d, 0x0924, 0x0990, 0x0a1c,
+ 0x0a68, 0x0a2c, 0x095b, 0x0881, 0x07f5, 0x077b,
+ 0x0733, 0x0771, 0x0802, 0x0894, 0x090a, 0x0941,
+ 0x0932, 0x08fb, 0x08a7, 0x0816, 0x0735, 0x0637,
+ 0x0593, 0x0587, 0x05ea, 0x069d, 0x077a, 0x07ef,
+ 0x07aa, 0x06fd, 0x0621, 0x054b, 0x04e3, 0x04f4,
+ 0x0552, 0x05c1, 0x05c2, 0x052f, 0x0437, 0x02f1,
+ 0x01bc, 0x00ee, 0x0067, 0x002d, 0x0035, 0x0048,
+ 0x008e, 0x00f7, 0x011a, 0x00ed, 0x008c, 0x002e,
+ 0x0038, 0x008c, 0x00ed, 0x016a, 0x01ca, 0x01bd,
+ 0x0160, 0x00da, 0x0042, 0xffe6, 0x000d, 0x00a2,
+ 0x016d, 0x0263, 0x032b, 0x035b, 0x0325, 0x02b0,
+ 0x01df, 0x0111, 0x00a2, 0x0082, 0x00c1, 0x015e,
+ 0x021f, 0x02d9, 0x035b, 0x0393, 0x0371, 0x02cf,
+ 0x01eb, 0x0133, 0x00ed, 0x0148, 0x0208, 0x02c8,
+ 0x0397, 0x0485, 0x057c, 0x0673, 0x0738, 0x079f,
+ 0x07b0, 0x077c, 0x0729, 0x06b8, 0x0609, 0x054c,
+ 0x049f, 0x03ed, 0x033c, 0x0282, 0x01d6, 0x016e,
+ 0x0126, 0x0107, 0x0146, 0x01aa, 0x021d, 0x02af,
+ 0x030a, 0x0327, 0x0354, 0x038d, 0x03d1, 0x0425,
+ 0x0447, 0x0433, 0x0415, 0x03d6, 0x035b, 0x02f4,
+ 0x02f5, 0x032e, 0x034f, 0x0351, 0x0323, 0x02df,
+ 0x02bf, 0x0284, 0x01f7, 0x017a, 0x013e, 0x013b,
+ 0x018d, 0x01fe, 0x0228, 0x020f, 0x01e7, 0x01ba,
+ 0x017b, 0x0136, 0x00f4, 0x0090, 0x0004, 0xff82,
+ 0xfef2, 0xfe1a, 0xfd2b, 0xfc7b, 0xfc0f, 0xfbbe,
+ 0xfb75, 0xfb43, 0xfb2d, 0xfb2b, 0xfb33, 0xfb32,
+ 0xfb04, 0xfa6c, 0xf969, 0xf870, 0xf7cb, 0xf769,
+ 0xf754, 0xf786, 0xf7cd, 0xf825, 0xf870, 0xf889,
+ 0xf8b2, 0xf91c, 0xf97d, 0xf992, 0xf985, 0xf9b4,
+ 0xfa0e, 0xfa31, 0xfa39, 0xfa89, 0xfb10, 0xfb8e,
+ 0xfbe2, 0xfbf5, 0xfbcf, 0xfb82, 0xfb16, 0xfaa5,
+ 0xfa4b, 0xfa14, 0xf9f1, 0xf9cd, 0xf9cd, 0xfa0d,
+ 0xfa6e, 0xfb01, 0xfbd8, 0xfca4, 0xfd10, 0xfd2e,
+ 0xfd2b, 0xfcd8, 0xfc12, 0xfb5c, 0xfb11, 0xfaea,
+ 0xfad9, 0xfad6, 0xfa85, 0xfa05, 0xf989, 0xf8e7,
+ 0xf877, 0xf894, 0xf8f4, 0xf983, 0xfa47, 0xfaf9,
+ 0xfb9e, 0xfc46, 0xfc7e, 0xfbff, 0xfaef, 0xf97a,
+ 0xf800, 0xf6f7, 0xf675, 0xf673, 0xf70d, 0xf814,
+ 0xf933, 0xfa3a, 0xfae2, 0xfb05, 0xfada, 0xfaaa,
+ 0xfaa9, 0xfad0, 0xfafa, 0xfb51, 0xfbdc, 0xfc2b,
+ 0xfc2e, 0xfc1f, 0xfc03, 0xfbef, 0xfbe5, 0xfbb8,
+ 0xfb6f, 0xfb15, 0xfad5, 0xfb21, 0xfbe6, 0xfc8b,
+ 0xfca6, 0xfc1f, 0xfb2c, 0xfa32, 0xf969, 0xf8e8,
+ 0xf8ce, 0xf918, 0xf9a6, 0xfa4a, 0xfab1, 0xfa7e,
+ 0xf9e6, 0xf98b, 0xf97a, 0xf961, 0xf92c, 0xf8ce,
+ 0xf88b, 0xf8d5, 0xf960, 0xf9c6, 0xfa15, 0xfa12,
+ 0xf99e, 0xf907, 0xf852, 0xf79e, 0xf753, 0xf786,
+ 0xf820, 0xf8dd, 0xf962, 0xf9d2, 0xfa50, 0xfa9b,
+ 0xfaca, 0xfb35, 0xfbc9, 0xfc4a, 0xfcd4, 0xfd85,
+ 0xfe23, 0xfe7b, 0xfe9a, 0xfe87, 0xfe5c, 0xfe3c,
+ 0xfe11, 0xfdf4, 0xfe28, 0xfe96, 0xff11, 0xffae,
+ 0x005b, 0x00a7, 0x0049, 0xff93, 0xff03, 0xfeb5,
+ 0xfe89, 0xfe68, 0xfe6b, 0xfeb1, 0xff16, 0xff79,
+ 0xffd1, 0x0005, 0x003a, 0x0057, 0xffed, 0xff43,
+ 0xfed0, 0xfe61, 0xfdf7, 0xfda4, 0xfd50, 0xfd2e,
+ 0xfd3e, 0xfd71, 0xfdfb, 0xfe94, 0xfef0, 0xff20,
+ 0xff01, 0xfed6, 0xfeed, 0xfecc, 0xfe66, 0xfe15,
+ 0xfde7, 0xfe1f, 0xfea3, 0xfeff, 0xff5f, 0xffd3,
+ 0x0022, 0x006f, 0x00bf, 0x00f9, 0x010c, 0x00d0,
+ 0x0077, 0x004b, 0x006b, 0x00f3, 0x0179, 0x018f,
+ 0x0142, 0x0088, 0xffbc, 0xff6d, 0xff69, 0xff86,
+ 0xffe5, 0x005f, 0x00f2, 0x0170, 0x0187, 0x013f,
+ 0x006b, 0xff36, 0xfe4a, 0xfd96, 0xfd05, 0xfcf0,
+ 0xfd20, 0xfd71, 0xfdf0, 0xfe5a, 0xfeaa, 0xfeb4,
+ 0xfe4e, 0xfde2, 0xfd47, 0xfc6b, 0xfc30, 0xfc6e,
+ 0xfc7c, 0xfcbc, 0xfd53, 0xfe01, 0xfeab, 0xff05,
+ 0xff4d, 0xfff5, 0x00b9, 0x0194, 0x02a4, 0x0394,
+ 0x044e, 0x04fa, 0x0596, 0x0653, 0x074f, 0x083a,
+ 0x08cc, 0x0928, 0x0973, 0x0973, 0x0918, 0x088b,
+ 0x07c7, 0x0721, 0x070f, 0x077d, 0x081d, 0x087c,
+ 0x086a, 0x0846, 0x0808, 0x07db, 0x087a, 0x097d,
+ 0x0a24, 0x0ab2, 0x0b01, 0x0af0, 0x0b00, 0x0b0b,
+ 0x0aab, 0x0a08, 0x096d, 0x0933, 0x0936, 0x0923,
+ 0x0942, 0x0955, 0x08df, 0x0838, 0x077d, 0x06cc,
+ 0x06bb, 0x0716, 0x077d, 0x07f5, 0x0814, 0x07e1,
+ 0x07dd, 0x07e2, 0x07d3, 0x07a7, 0x070b, 0x0630,
+ 0x0575, 0x04fe, 0x04f2, 0x0523, 0x056c, 0x05da,
+ 0x0627, 0x0647, 0x066c, 0x0686, 0x06ac, 0x068d,
+ 0x05b6, 0x04b2, 0x03de, 0x0325, 0x02e6, 0x02f2,
+ 0x02f5, 0x032b, 0x0307, 0x0238, 0x018d, 0x00f5,
+ 0x0005, 0xff3f, 0xff02, 0xff6f, 0x0045, 0x00d1,
+ 0x0123, 0x014c, 0x00f1, 0x0097, 0x0079, 0x0021,
+ 0xfff7, 0x002a, 0x003e, 0x006e, 0x00de, 0x011b,
+ 0x010f, 0x00e8, 0x0107, 0x0191, 0x01dd, 0x01c0,
+ 0x01b4, 0x018f, 0x015c, 0x01a3, 0x020b, 0x020e,
+ 0x0208, 0x0259, 0x0306, 0x0408, 0x04f3, 0x056a,
+ 0x05ba, 0x05fa, 0x0604, 0x0639, 0x068a, 0x065b,
+ 0x05b7, 0x04f0, 0x0478, 0x04c1, 0x0529, 0x0534,
+ 0x0591, 0x0619, 0x0643, 0x0690, 0x0703, 0x071b,
+ 0x06da, 0x063e, 0x05b5, 0x05eb, 0x069c, 0x0747,
+ 0x079d, 0x076c, 0x073f, 0x0751, 0x0708, 0x066a,
+ 0x060f, 0x060c, 0x0638, 0x068b, 0x06d8, 0x06c8,
+ 0x0696, 0x06bd, 0x0704, 0x0743, 0x07a6, 0x07b9,
+ 0x0741, 0x06af, 0x0645, 0x062b, 0x064a, 0x0653,
+ 0x0633, 0x05c5, 0x055c, 0x0589, 0x05ad, 0x0592,
+ 0x05e4, 0x062e, 0x0637, 0x069d, 0x0704, 0x0713,
+ 0x06c2, 0x05b3, 0x045a, 0x0329, 0x0208, 0x0161,
+ 0x00f9, 0x0064, 0x004a, 0x0085, 0x0055, 0xfffa,
+ 0xffb3, 0xffa4, 0xffe4, 0x0029, 0x00a4, 0x013a,
+ 0x0156, 0x0171, 0x01e9, 0x0222, 0x01fd, 0x01b4,
+ 0x0172, 0x014e, 0x00f7, 0x0092, 0x008c, 0x00b8,
+ 0x0148, 0x027d, 0x039d, 0x03fe, 0x03f1, 0x0401,
+ 0x040f, 0x03ae, 0x033d, 0x0344, 0x03ac, 0x0465,
+ 0x0538, 0x05b2, 0x05be, 0x0562, 0x04ea, 0x04e9,
+ 0x0561, 0x05e1, 0x0616, 0x063b, 0x06cf, 0x0752,
+ 0x0743, 0x0743, 0x0720, 0x064f, 0x0597, 0x0548,
+ 0x0517, 0x056b, 0x061d, 0x0689, 0x06e4, 0x0755,
+ 0x0773, 0x0732, 0x06fa, 0x06f1, 0x0720, 0x07dc,
+ 0x08e6, 0x09a6, 0x0a5d, 0x0afd, 0x0aff, 0x0adb,
+ 0x0ace, 0x0a76, 0x0a04, 0x096c, 0x08a0, 0x083c,
+ 0x0865, 0x08ff, 0x09b0, 0x09b1, 0x0962, 0x0963,
+ 0x0925, 0x08b0, 0x0894, 0x08b7, 0x08e8, 0x08ec,
+ 0x08d2, 0x08c1, 0x0837, 0x0758, 0x06d3, 0x065d,
+ 0x05e7, 0x05be, 0x05a5, 0x05e1, 0x068b, 0x06f0,
+ 0x0711, 0x070e, 0x069a, 0x05fc, 0x0555, 0x045d,
+ 0x0359, 0x0294, 0x01fa, 0x0190, 0x0170, 0x0187,
+ 0x01cb, 0x022f, 0x0238, 0x01a8, 0x011c, 0x00bd,
+ 0x0031, 0xffd2, 0xff9d, 0xff24, 0xfed5, 0xff0d,
+ 0xff7d, 0xfff9, 0x0053, 0x005a, 0x0013, 0xff9c,
+ 0xff46, 0xff34, 0xff5d, 0xffb8, 0xffe0, 0xffd7,
+ 0xfffc, 0x0002, 0xffe7, 0x0008, 0x003b, 0x0097,
+ 0x010d, 0x0103, 0x00cd, 0x00ae, 0x0028, 0xffa3,
+ 0xff61, 0xfedf, 0xfe62, 0xfe68, 0xfeec, 0xffbe,
+ 0x0084, 0x015c, 0x024e, 0x02a5, 0x0241, 0x0183,
+ 0x00b4, 0x005f, 0x0047, 0xffee, 0xffcb, 0xffe3,
+ 0xfff7, 0x0038, 0x0036, 0xffd9, 0xffb1, 0xffa5,
+ 0x0004, 0x011d, 0x021b, 0x02c2, 0x033d, 0x0352,
+ 0x0375, 0x03f5, 0x045c, 0x0455, 0x03dd, 0x0379,
+ 0x035e, 0x031b, 0x030c, 0x0332, 0x02d5, 0x0281,
+ 0x0290, 0x029f, 0x02da, 0x02ac, 0x01df, 0x0181,
+ 0x0162, 0x0149, 0x01b7, 0x0204, 0x022e, 0x02c6,
+ 0x030a, 0x02fc, 0x0322, 0x031d, 0x0312, 0x0334,
+ 0x0349, 0x0341, 0x02e4, 0x02ae, 0x02d9, 0x0254,
+ 0x018b, 0x0198, 0x01a0, 0x012d, 0x00f2, 0x00cf,
+ 0x0073, 0x003e, 0x0095, 0x0125, 0x0154, 0x0135,
+ 0x00d9, 0x005d, 0x0022, 0xff7f, 0xfe5a, 0xfde0,
+ 0xfda1, 0xfd13, 0xfd10, 0xfd59, 0xfd79, 0xfdae,
+ 0xfd8b, 0xfd10, 0xfcc9, 0xfcb7, 0xfcaa, 0xfc2f,
+ 0xfb7d, 0xfb84, 0xfc18, 0xfcbe, 0xfd59, 0xfd7a,
+ 0xfd29, 0xfca9, 0xfc55, 0xfcb1, 0xfd0c, 0xfd0d,
+ 0xfd66, 0xfd8a, 0xfd66, 0xfdaf, 0xfd8e, 0xfcfd,
+ 0xfcd9, 0xfcce, 0xfd08, 0xfd7f, 0xfdb5, 0xfe8e,
+ 0xffa1, 0xff89, 0xff25, 0xff16, 0xfecc, 0xfe63,
+ 0xfdaf, 0xfca8, 0xfbdd, 0xfb4a, 0xfaf1, 0xfb1a,
+ 0xfbdd, 0xfcf6, 0xfdb7, 0xfe25, 0xfe9f, 0xfef9,
+ 0xff6c, 0xffb9, 0xff70, 0xff88, 0x001a, 0x006e,
+ 0x00b1, 0x00a2, 0x002f, 0xffb2, 0xfee5, 0xfe7e,
+ 0xfe8d, 0xfe07, 0xfe12, 0xfefb, 0xff63, 0x0027,
+ 0x0144, 0x013b, 0x00c3, 0x009d, 0x0101, 0x01cb,
+ 0x0162, 0x0045, 0xffb1, 0xfe90, 0xfdaa, 0xfe27,
+ 0xfea0, 0xff01, 0xff75, 0xff59, 0xff7b, 0xffbe,
+ 0xffc0, 0x001a, 0xffad, 0xfea8, 0xff06, 0xff90,
+ 0xff24, 0xfed6, 0xfe78, 0xfe24, 0xfec5, 0xffc8,
+ 0x003a, 0x0026, 0x0040, 0x0066, 0xff68, 0xfdd7,
+ 0xfd18, 0xfcf8, 0xfd57, 0xfe10, 0xfea5, 0xff46,
+ 0xff7b, 0xff10, 0xfeb5, 0xfdd3, 0xfcaf, 0xfc75,
+ 0xfbf2, 0xfade, 0xfaa2, 0xfab0, 0xfad8, 0xfbe6,
+ 0xfcf1, 0xfd4b, 0xfd48, 0xfd17, 0xfd0c, 0xfcd8,
+ 0xfc6d, 0xfc94, 0xfcaa, 0xfc70, 0xfcd9, 0xfce8,
+ 0xfc04, 0xfbe9, 0xfc96, 0xfd03, 0xfda0, 0xfe23,
+ 0xfe14, 0xfe35, 0xfe70, 0xfe4d, 0xfe31, 0xfde6,
+ 0xfd0d, 0xfc2c, 0xfbb6, 0xfbf5, 0xfcb0, 0xfd0b,
+ 0xfd4c, 0xfdf0, 0xfe5a, 0xfea8, 0xfef1, 0xfe7d,
+ 0xfe21, 0xfeb2, 0xff1d, 0xfeea, 0xfe63, 0xfdbe,
+ 0xfda9, 0xfde7, 0xfdf4, 0xfe84, 0xffb4, 0x0104,
+ 0x0212, 0x0267, 0x02ff, 0x0486, 0x05a1, 0x060e,
+ 0x05fd, 0x04ec, 0x0419, 0x03e0, 0x031f, 0x02b1,
+ 0x027d, 0x015b, 0x00e6, 0x01ca, 0x027e, 0x0284,
+ 0x01be, 0x0110, 0x0157, 0x0114, 0x0016, 0xff35,
+ 0xfda3, 0xfc75, 0xfccb, 0xfd9c, 0xff4a, 0x00d0,
+ 0x0069, 0x0092, 0x014b, 0xffc7, 0xfea0, 0xff6d,
+ 0xff30, 0xfe29, 0xfe19, 0xfecf, 0x006c, 0x026e,
+ 0x03fb, 0x0528, 0x0632, 0x0774, 0x078c, 0x0515,
+ 0x022c, 0x004e, 0xff8c, 0x0033, 0x0005, 0xfefd,
+ 0x0059, 0x01f4, 0x01ea, 0x036f, 0x050a, 0x03b0,
+ 0x013a, 0xfe64, 0xfb86, 0xfa88, 0xfb0f, 0xfc11,
+ 0xfc46, 0xfb29, 0xfb80, 0xfd3c, 0xfdba, 0xfe0b,
+ 0xfe3c, 0xfdcb, 0xfeea, 0xffc2, 0xfe5f, 0xfde3,
+ 0xfe4f, 0xfe61, 0xff8d, 0x007a, 0x00dc, 0x0266,
+ 0x02e9, 0x02a0, 0x045a, 0x057c, 0x0426, 0x0285,
+ 0x0114, 0x000f, 0xffcc, 0xff11, 0xfe31, 0xfe69,
+ 0xff7e, 0x0030, 0xffea, 0x00ee, 0x03d4, 0x04d3,
+ 0x03c5, 0x034a, 0x02f8, 0x0350, 0x0486, 0x0437,
+ 0x0317, 0x027a, 0x01c7, 0x0244, 0x03ae, 0x04d3,
+ 0x06a4, 0x072b, 0x062d, 0x07aa, 0x0967, 0x08c5,
+ 0x095a, 0x0a0c, 0x0882, 0x07eb, 0x0809, 0x06e4,
+ 0x0685, 0x0787, 0x0896, 0x0901, 0x0931, 0x09e3,
+ 0x08ee, 0x06a4, 0x06f1, 0x0726, 0x0556, 0x05da,
+ 0x05a0, 0x0195, 0x00a9, 0x02ea, 0x0268, 0x0229,
+ 0x04ae, 0x0535, 0x03b9, 0x0624, 0x0afe, 0x0a88,
+ 0x0670, 0x0466, 0x0210, 0x0009, 0x0143, 0x0216,
+ 0x02f9, 0x049f, 0x036b, 0x0493, 0x0887, 0x0739,
+ 0x0605, 0x0775, 0x04a0, 0x02ed, 0x0360, 0xffcc,
+ 0xff6e, 0x033c, 0x03fd, 0x04ad, 0x047e, 0x0231,
+ 0x02ac, 0x01b2, 0xff2b, 0x012d, 0x027e, 0x019b,
+ 0x00b7, 0xfcb7, 0xfc1b, 0x00af, 0x01b4, 0x02ec,
+ 0x04b6, 0x013f, 0x0162, 0x059a, 0x04cf, 0x051b,
+ 0x0739, 0x039e, 0x001b, 0xffcd, 0xfd9e, 0xfc62,
+ 0xff2c, 0x01dd, 0x019c, 0x00eb, 0x0192, 0x005e,
+ 0xfea7, 0x01ac, 0x04f2, 0x0370, 0x01e3, 0x029a,
+ 0x0253, 0xffe6, 0xfe3b, 0x00e1, 0x0459, 0x0336,
+ 0x015e, 0x022e, 0x0116, 0xfe32, 0xff4d, 0x02f7,
+ 0x0378, 0x028e, 0x045d, 0x073d, 0x0917, 0x0931,
+ 0x0794, 0x0753, 0x07bb, 0x0629, 0x06a1, 0x08be,
+ 0x0757, 0x0622, 0x0763, 0x068d, 0x0555, 0x06ad,
+ 0x070c, 0x051b, 0x04b2, 0x0688, 0x063a, 0x045f,
+ 0x052d, 0x0532, 0x022f, 0x00b9, 0x00d1, 0x0108,
+ 0x01aa, 0x0169, 0x02c4, 0x053d, 0x0457, 0x0447,
+ 0x0617, 0x048b, 0x03f0, 0x05ea, 0x04df, 0x035d,
+ 0x03dc, 0x0304, 0x01ed, 0x0495, 0x09f5, 0x0b64,
+ 0x0860, 0x075f, 0x05fd, 0x027a, 0x0253, 0x013a,
+ 0xfccd, 0xfb1e, 0xf9f4, 0xfa08, 0xfd40, 0xfbda,
+ 0xfae2, 0x000a, 0xff7d, 0xfae4, 0xfafe, 0xf8d6,
+ 0xf439, 0xf31f, 0xf373, 0xf4b6, 0xf6c6, 0xf9f9,
+ 0xfeef, 0x0050, 0x00dd, 0x0501, 0x0383, 0xfdf3,
+ 0xfce6, 0xf999, 0xf520, 0xf664, 0xf5c3, 0xf567,
+ 0xfd57, 0x0379, 0x0533, 0x0aea, 0x0e9b, 0x0c54,
+ 0x095a, 0x03c7, 0xfdd5, 0xfc77, 0xfa3a, 0xf820,
+ 0xfad9, 0xfc74, 0xfde8, 0x0386, 0x0743, 0x08ac,
+ 0x0989, 0x0645, 0x02a5, 0x00a8, 0xfdeb, 0xfdff,
+ 0xfe74, 0xfd27, 0x00ac, 0x0566, 0x060a, 0x0750,
+ 0x0a15, 0x0d09, 0x0d9f, 0x09dc, 0x0827, 0x072c,
+ 0x0288, 0x01b3, 0x030a, 0x0166, 0x01f5, 0x0396,
+ 0x0640, 0x0a8e, 0x09bb, 0x0aac, 0x1056, 0x0f27,
+ 0x0c3e, 0x0a41, 0x040e, 0x03e1, 0x05b0, 0x01a9,
+ 0x0392, 0x057f, 0x025e, 0x06b7, 0x09e2, 0x0828,
+ 0x0a9b, 0x06db, 0x0126, 0x04a7, 0x02ea, 0xfd65,
+ 0xff6e, 0x0044, 0xffc5, 0x0319, 0x05ef, 0x0739,
+ 0x074f, 0x0931, 0x0b4a, 0x065f, 0x037c, 0x05eb,
+ 0x0280, 0x0086, 0x0391, 0x0201, 0x01e8, 0x0410,
+ 0x01b8, 0x01c9, 0x0468, 0x0521, 0x064b, 0x0513,
+ 0x026b, 0x0103, 0xfdc1, 0xfc16, 0xfba3, 0xf8fb,
+ 0xfa31, 0xfc05, 0xf9bd, 0xfc3b, 0x01bb, 0x02a5,
+ 0x029d, 0x0201, 0xff38, 0xfe0f, 0xfdcf, 0xfaf8,
+ 0xf877, 0xfadf, 0xfe05, 0xfddc, 0xffb9, 0x02a4,
+ 0x0213, 0x02d2, 0x035a, 0xffe1, 0xfe4d, 0xfe63,
+ 0xfdc1, 0xfea1, 0xff61, 0x017b, 0x03d1, 0x01ad,
+ 0x0154, 0x02c7, 0x0044, 0xfffa, 0x00b5, 0xff67,
+ 0x01e7, 0x0260, 0x0082, 0x04c4, 0x0611, 0x02f6,
+ 0x04dc, 0x059e, 0x0403, 0x04a0, 0x03ed, 0x047f,
+ 0x0505, 0x0041, 0xfe2d, 0x0014, 0xff5a, 0xffc6,
+ 0x0314, 0x0553, 0x0559, 0x03ef, 0x03b6, 0x0394,
+ 0x0153, 0xff88, 0xfe24, 0xfcf1, 0xfdcb, 0xff8d,
+ 0x018f, 0x01e9, 0x01be, 0x05de, 0x0766, 0x036e,
+ 0x030a, 0x02b7, 0x0063, 0x023f, 0x01fe, 0xff6c,
+ 0x0071, 0xff60, 0xfebe, 0x01af, 0x0204, 0x0397,
+ 0x0558, 0x02d6, 0x0458, 0x0588, 0x01a9, 0x0396,
+ 0x061e, 0x03b2, 0x0458, 0x02a4, 0xfef8, 0x01be,
+ 0x00e6, 0xfc06, 0xfe86, 0x00f8, 0xfe98, 0xfe3e,
+ 0xfdac, 0xfad4, 0xf9b0, 0xf984, 0xf87b, 0xf833,
+ 0xf8d0, 0xf8ee, 0xfade, 0xff26, 0x005c, 0xffc9,
+ 0x013a, 0xff4f, 0xfaed, 0xfab1, 0xfa24, 0xf798,
+ 0xf90e, 0xfbdf, 0xfc2e, 0xfd91, 0x0060, 0x00bb,
+ 0xff33, 0xff16, 0xff97, 0xfe7b, 0xfce0, 0xfc46,
+ 0xfd88, 0x000f, 0x0154, 0x01d6, 0x01e8, 0x0001,
+ 0xfe80, 0xfd6c, 0xfbe5, 0xfdda, 0xff86, 0xfd4d,
+ 0xfe91, 0x007c, 0xfc68, 0xfa54, 0xfc7e, 0xfce1,
+ 0xfd16, 0xfdd8, 0xfe0a, 0xff1a, 0xffb2, 0x0049,
+ 0x01fa, 0x0211, 0x01b8, 0x0212, 0xffc2, 0xfcc8,
+ 0xfd37, 0xfdf0, 0xfc35, 0xfb5d, 0xfc98, 0xfc98,
+ 0xfbdc, 0xfd24, 0xff2a, 0x0089, 0x007c, 0xfefb,
+ 0xff37, 0xffbc, 0xfd6e, 0xfc67, 0xfcac, 0xfb7d,
+ 0xfc65, 0xfd48, 0xfba0, 0xfd33, 0xffd2, 0x0024,
+ 0x034c, 0x0562, 0x0241, 0x0126, 0x012e, 0xfe11,
+ 0xfcd0, 0xfd54, 0xfcbf, 0xfe36, 0x0088, 0x0203,
+ 0x04fe, 0x068b, 0x05c8, 0x0682, 0x060d, 0x0413,
+ 0x03da, 0x01c8, 0xffd5, 0x0245, 0x0237, 0x0197,
+ 0x0661, 0x06ca, 0x0413, 0x0890, 0x0a0d, 0x043e,
+ 0x02a2, 0x0364, 0x0246, 0x0177, 0xfe32, 0xfb8f,
+ 0xfd99, 0xfea7, 0xfe6f, 0xff3b, 0xfed5, 0xff72,
+ 0x00b1, 0xff37, 0xfe5b, 0xfe01, 0xfae5, 0xf936,
+ 0xfa8b, 0xfabc, 0xfa61, 0xfbc2, 0xfd3b, 0xfdd7,
+ 0xfeec, 0xffad, 0xfebd, 0xfeac, 0x00ae, 0x0132,
+ 0xff97, 0xffa1, 0x01cb, 0x0259, 0x011c, 0x01c2,
+ 0x0254, 0x0094, 0x01c0, 0x039d, 0xff36, 0xfbd2,
+ 0xfe94, 0x0080, 0x01fb, 0x0480, 0x036d, 0x026f,
+ 0x04e1, 0x060e, 0x0632, 0x0640, 0x04a4, 0x04d6,
+ 0x06f4, 0x0759, 0x07a1, 0x06cf, 0x031f, 0x0249,
+ 0x047f, 0x0354, 0x006c, 0xfee8, 0xfd20, 0xfcf5,
+ 0xff4e, 0xffc8, 0xfe65, 0xfe60, 0xfee3, 0xff2b,
+ 0x0009, 0xfffd, 0xfe8f, 0xfe47, 0xfe78, 0xfd2a,
+ 0xfdf3, 0x014e, 0x0100, 0xff0e, 0x0096, 0x008a,
+ 0xfe5d, 0xff38, 0xff0d, 0xfd93, 0x0022, 0x019e,
+ 0xffa6, 0xff7a, 0xff67, 0xff78, 0x01aa, 0x00cb,
+ 0xff2d, 0x01b8, 0x0177, 0xfe77, 0x002e, 0x02c5,
+ 0x02dc, 0x039d, 0x03fe, 0x03a0, 0x034e, 0x014c,
+ 0x0090, 0x02b8, 0x01d6, 0xfdc0, 0xfc80, 0xfda2,
+ 0xfe0d, 0xfeea, 0x00b8, 0x0189, 0x009c, 0xfe49,
+ 0xfc2e, 0xfc7c, 0xfd39, 0xfc3a, 0xfc92, 0xfdf5,
+ 0xfcee, 0xfc36, 0xfced, 0xfcd1, 0xfe80, 0x004d,
+ 0xfe0f, 0xfd37, 0xfef3, 0xfdfa, 0xfdb6, 0xff88,
+ 0xffd5, 0x0163, 0x028a, 0xff89, 0xfe77, 0x003b,
+ 0x006e, 0x0145, 0x019b, 0x0075, 0x0261, 0x0378,
+ 0x00bc, 0x00f6, 0x02b1, 0x0098, 0xfe54, 0xfe78,
+ 0xff76, 0x0011, 0x0079, 0x026f, 0x0312, 0x00cd,
+ 0x01cf, 0x0454, 0x033e, 0x03d0, 0x053d, 0x0350,
+ 0x03f5, 0x05ea, 0x0484, 0x0588, 0x073f, 0x04a5,
+ 0x037f, 0x0393, 0x00eb, 0xff5e, 0xfedf, 0xfe90,
+ 0x00e5, 0x0240, 0x022f, 0x047a, 0x04e8, 0x02a9,
+ 0x02e7, 0x02f1, 0x00b9, 0x00f2, 0x02ab, 0x019b,
+ 0x00ce, 0x03f4, 0x05f6, 0x039e, 0x0360, 0x05d3,
+ 0x0553, 0x04ee, 0x05db, 0x0350, 0x00f8, 0x01e7,
+ 0x0295, 0x03d2, 0x0593, 0x065a, 0x078d, 0x0636,
+ 0x0376, 0x0477, 0x036e, 0xffc3, 0x010a, 0x021f,
+ 0x00df, 0x036a, 0x0535, 0x0548, 0x0799, 0x06c2,
+ 0x04c8, 0x061d, 0x0426, 0x00ea, 0x0069, 0xfe65,
+ 0xff56, 0x02d5, 0x0094, 0xff7d, 0x0228, 0x007f,
+ 0xffc2, 0x020a, 0x0124, 0x00a6, 0x004f, 0xfe31,
+ 0xffe6, 0xfff3, 0xfaf9, 0xfac7, 0xfc52, 0xfa9a,
+ 0xfc67, 0xff1a, 0xff0b, 0x0062, 0x008c, 0xffa3,
+ 0x0118, 0x0112, 0x0157, 0x03ad, 0x020c, 0x00c2,
+ 0x0362, 0x01c9, 0xfe98, 0xffa6, 0xff5a, 0xfe09,
+ 0xffd5, 0x011d, 0x00ba, 0x00a0, 0x009e, 0x0117,
+ 0x017e, 0x0188, 0x01e9, 0x014e, 0x00cf, 0x022e,
+ 0x0279, 0x01a9, 0x032c, 0x05dc, 0x0762, 0x07ba,
+ 0x073f, 0x069f, 0x05fd, 0x0552, 0x0477, 0x0279,
+ 0x0184, 0x03b8, 0x0493, 0x0268, 0x027e, 0x0364,
+ 0x0035, 0xfe6f, 0x0244, 0x049e, 0x03a2, 0x04b4,
+ 0x057b, 0x039f, 0x0351, 0x03b1, 0x0302, 0x0364,
+ 0x02d5, 0x0221, 0x042d, 0x0431, 0x0373, 0x0618,
+ 0x0483, 0x009f, 0x03c0, 0x059a, 0x0249, 0x022b,
+ 0x01da, 0xffe2, 0x01ed, 0x031c, 0x01fa, 0x0288,
+ 0x0199, 0x0198, 0x0452, 0x02e1, 0x012e, 0x035e,
+ 0x0235, 0x0074, 0x02e5, 0x0377, 0x0252, 0x02ba,
+ 0x024f, 0x01c8, 0x023e, 0x0312, 0x03f5, 0x026a,
+ 0x00e1, 0x0232, 0x018c, 0x00e7, 0x03c3, 0x02ba,
+ 0xff45, 0x00ec, 0x01f2, 0xffe6, 0x0060, 0x00e8,
+ 0xff61, 0xfee6, 0xff17, 0xff28, 0xfeb4, 0xfe0f,
+ 0x003b, 0x023c, 0x003f, 0xfffc, 0x020e, 0x0117,
+ 0x01ba, 0x0563, 0x03e3, 0x00f4, 0x03af, 0x0487,
+ 0x0122, 0x0138, 0x01ab, 0xfe89, 0xfe95, 0x0192,
+ 0x01d2, 0x0208, 0x03c8, 0x0426, 0x0434, 0x0526,
+ 0x05e2, 0x05f2, 0x04fa, 0x0471, 0x0535, 0x04dc,
+ 0x0410, 0x04e0, 0x0562, 0x05a4, 0x0742, 0x0852,
+ 0x0859, 0x08d4, 0x0884, 0x0696, 0x04dc, 0x045e,
+ 0x0419, 0x02cb, 0x009a, 0xff41, 0x000c, 0x015c,
+ 0x0135, 0x0191, 0x032e, 0x02fe, 0x022c, 0x02f8,
+ 0x02fa, 0x030a, 0x046b, 0x03ae, 0x02da, 0x04d1,
+ 0x04f3, 0x035b, 0x0412, 0x0521, 0x055e, 0x052c,
+ 0x039d, 0x02b7, 0x028a, 0x01e6, 0x03df, 0x0658,
+ 0x051a, 0x045f, 0x0574, 0x04fc, 0x0525, 0x058b,
+ 0x02da, 0x0122, 0x02a1, 0x02cc, 0x0204, 0x033e,
+ 0x03ab, 0x025b, 0x031b, 0x0413, 0x0158, 0xff72,
+ 0x0138, 0x0190, 0x004f, 0x00af, 0x0078, 0xff7d,
+ 0xffd0, 0xffcd, 0xff67, 0xffab, 0xff45, 0xfe88,
+ 0xfe10, 0xfde8, 0xff7d, 0x012a, 0x008c, 0xff7d,
+ 0xff13, 0xfedd, 0xff6a, 0x0075, 0x0180, 0x017b,
+ 0x002b, 0x005f, 0x017e, 0x00ef, 0x00e4, 0x0133,
+ 0x0005, 0x0058, 0x0170, 0x00a1, 0x013a, 0x0322,
+ 0x02e0, 0x023d, 0x0297, 0x0259, 0x0109, 0xffa5,
+ 0xfff2, 0x00b1, 0x0084, 0x022d, 0x03c4, 0x029f,
+ 0x03e3, 0x06ed, 0x0648, 0x0541, 0x05b5, 0x04ab,
+ 0x038d, 0x03a4, 0x049c, 0x05a7, 0x0467, 0x03a1,
+ 0x050c, 0x0374, 0x00fb, 0x01fc, 0x01b0, 0x0068,
+ 0x029d, 0x048e, 0x041e, 0x041c, 0x0436, 0x03ca,
+ 0x0363, 0x02ca, 0x0202, 0x00bc, 0xffc9, 0x00af,
+ 0x021e, 0x02df, 0x03e0, 0x0454, 0x0337, 0x0273,
+ 0x02b3, 0x0244, 0x0218, 0x032a, 0x0348, 0x0373,
+ 0x0594, 0x0708, 0x07ac, 0x0862, 0x076e, 0x0737,
+ 0x0784, 0x04a2, 0x035a, 0x0515, 0x045a, 0x03b2,
+ 0x03c8, 0x0276, 0x047b, 0x0675, 0x03d3, 0x0402,
+ 0x0561, 0x0253, 0x00df, 0x01b1, 0x0199, 0x0207,
+ 0x0109, 0x0032, 0x017b, 0xffd4, 0xfdf5, 0xff9f,
+ 0xff9e, 0xff12, 0x001f, 0xff47, 0xfebf, 0xff8c,
+ 0xff1c, 0xff6c, 0xff9a, 0xfe6e, 0xffa3, 0x01c4,
+ 0x01ee, 0x0209, 0x0206, 0x01e7, 0x02fb, 0x0328,
+ 0x01ca, 0x0184, 0x026c, 0x02c7, 0x0284, 0x0222,
+ 0x01c2, 0x0200, 0x0258, 0x0176, 0x00d2, 0x014c,
+ 0x011a, 0x00b5, 0x007f, 0xffd1, 0x0071, 0x0138,
+ 0x0050, 0x00a0, 0x016e, 0x011a, 0x0271, 0x037b,
+ 0x0291, 0x0356, 0x03e2, 0x0270, 0x02ab, 0x0331,
+ 0x0208, 0x01fc, 0x027f, 0x01ac, 0x0146, 0x0273,
+ 0x03a4, 0x037c, 0x02d1, 0x025b, 0x01c6, 0x01a0,
+ 0x015d, 0x005e, 0x0061, 0x00af, 0xffe4, 0x000e,
+ 0x00f7, 0x0088, 0xffb2, 0xffc5, 0x0048, 0xffe2,
+ 0xfef5, 0xff56, 0xff9b, 0xfede, 0xff66, 0x009a,
+ 0x014f, 0x01cb, 0x013b, 0x00f5, 0x0165, 0x0117,
+ 0x01c2, 0x0222, 0x00ae, 0x011b, 0x0119, 0xfefd,
+ 0x005f, 0x0202, 0x00e7, 0x0277, 0x0314, 0x00b8,
+ 0x01bb, 0x0232, 0xffbd, 0x005c, 0x010c, 0xfee2,
+ 0xfd9a, 0xfcfe, 0xfd08, 0xfd69, 0xfc86, 0xfdae,
+ 0xff81, 0xfe2a, 0xfe6c, 0xfff9, 0xfe16, 0xfccd,
+ 0xfd62, 0xfcbf, 0xfcf4, 0xfdcf, 0xfd79, 0xfd5b,
+ 0xfcd7, 0xfc47, 0xfd01, 0xfce2, 0xfd17, 0xff4d,
+ 0xff90, 0xfe1b, 0xfe73, 0xfecb, 0xfe4c, 0xfede,
+ 0xffbf, 0x002e, 0x0089, 0x00b1, 0x00e2, 0x00a0,
+ 0xffb9, 0xff47, 0xff31, 0xff59, 0xfff6, 0xff50,
+ 0xfd67, 0xfce0, 0xfdb0, 0xfe28, 0xfea5, 0xff71,
+ 0xffc8, 0x0034, 0x0145, 0x01a5, 0x01a9, 0x02ee,
+ 0x0379, 0x0254, 0x0206, 0x01ad, 0x0062, 0x008c,
+ 0x00ae, 0xff7a, 0xff8c, 0x0026, 0x009b, 0x0202,
+ 0x01dd, 0x00b3, 0x0124, 0x00d0, 0x0066, 0x021d,
+ 0x029f, 0x01f7, 0x0250, 0x0142, 0xff5a, 0xff21,
+ 0xff43, 0xfea3, 0xfd6b, 0xfcbb, 0xfe1d, 0xfffe,
+ 0x00fd, 0x01c9, 0x01bf, 0x0142, 0x012e, 0x008f,
+ 0xffe9, 0xffcc, 0xff4a, 0xfee2, 0xff27, 0xffc6,
+ 0x0042, 0x0009, 0x0069, 0x018d, 0x0136, 0x0088,
+ 0x008e, 0xff59, 0xfe9b, 0xffab, 0xffa7, 0xfed6,
+ 0xfedc, 0xfeda, 0xff5f, 0x0003, 0xff2e, 0xfe6f,
+ 0xfe2f, 0xfd70, 0xfe5a, 0x005b, 0x0050, 0x0040,
+ 0x0165, 0x0092, 0xfe7d, 0xfd72, 0xfcb4, 0xfccd,
+ 0xfd97, 0xfd93, 0xfe66, 0xffcd, 0xff85, 0xffac,
+ 0x00a5, 0x0029, 0xffee, 0x001a, 0xfeb7, 0xfdcc,
+ 0xfe1f, 0xfe16, 0xfe55, 0xfec2, 0xfeb9, 0xfed9,
+ 0xfef2, 0xff17, 0xff4e, 0xff39, 0xffe3, 0x006e,
+ 0xff96, 0xff54, 0xff74, 0xfebf, 0xfedd, 0xfeac,
+ 0xfd37, 0xfd8d, 0xfea9, 0xfe5b, 0xff21, 0x0096,
+ 0x008e, 0x00a2, 0x00ba, 0x000e, 0x0076, 0x009f,
+ 0xff33, 0xff2c, 0xffec, 0xff69, 0x0042, 0x0186,
+ 0x009d, 0x00cd, 0x01fb, 0x012f, 0x0133, 0x0219,
+ 0x0111, 0x008c, 0x005f, 0xfe2b, 0xfcf4, 0xfd62,
+ 0xfd50, 0xfdc3, 0xfddb, 0xfcd5, 0xfd7b, 0xff19,
+ 0xff30, 0xfee2, 0xff48, 0xff9c, 0xff70, 0xff95,
+ 0x000f, 0xff55, 0xfe64, 0xfee0, 0xfee1, 0xfe74,
+ 0xff4f, 0xffbb, 0xffb2, 0x00c0, 0x0164, 0x015d,
+ 0x018e, 0x00da, 0xffee, 0x001b, 0x0089, 0x00b3,
+ 0x0021, 0xfecf, 0xfea9, 0xff65, 0xfeba, 0xfd93,
+ 0xfd2b, 0xfc4c, 0xfbd9, 0xfd11, 0xfdf5, 0xfe61,
+ 0xff63, 0xfee8, 0xfdc5, 0xfedf, 0xff81, 0xfe0c,
+ 0xfd94, 0xfe03, 0xfe02, 0xfe4d, 0xfecb, 0xff46,
+ 0xff39, 0xfeaa, 0xff56, 0xffb9, 0xfe68, 0xfe8f,
+ 0xff64, 0xfe60, 0xfe3a, 0xfee4, 0xfe6f, 0xff3e,
+ 0x00d1, 0x00ce, 0x013f, 0x0234, 0x0153, 0xffe8,
+ 0xff62, 0xff1e, 0xff6b, 0xffef, 0xff47, 0xfe80,
+ 0xff0f, 0xff8d, 0xff38, 0xff07, 0xfe9e, 0xfe24,
+ 0xfea7, 0xfef7, 0xfe9a, 0xff4c, 0x0075, 0x001d,
+ 0xff25, 0xff69, 0x0017, 0xffe2, 0x000a, 0x00c7,
+ 0x00c4, 0x0147, 0x024f, 0x023a, 0x02f3, 0x0442,
+ 0x03f1, 0x0488, 0x059a, 0x044b, 0x03fe, 0x0561,
+ 0x0517, 0x04c0, 0x04db, 0x03ec, 0x03bc, 0x0394,
+ 0x0259, 0x0271, 0x0302, 0x0234, 0x0174, 0x014f,
+ 0x01e1, 0x0348, 0x040b, 0x0407, 0x0416, 0x043c,
+ 0x048b, 0x0478, 0x03f2, 0x0414, 0x043d, 0x032d,
+ 0x019b, 0x00c7, 0x009b, 0x0032, 0xfff8, 0x00aa,
+ 0x0127, 0x010b, 0x0120, 0x00b5, 0xffb1, 0xff17,
+ 0xfef1, 0xfefe, 0xfea9, 0xfe11, 0xfe93, 0xff49,
+ 0xfec1, 0xfe27, 0xfda1, 0xfcb2, 0xfca4, 0xfd4b,
+ 0xfde0, 0xff20, 0x000d, 0xff71, 0xfef7, 0xff85,
+ 0xffce, 0xffc8, 0x0050, 0x00d4, 0x00e6, 0x0132,
+ 0x0178, 0x013d, 0x0159, 0x01f3, 0x023c, 0x0250,
+ 0x024a, 0x01c3, 0x00f7, 0x0071, 0x006d, 0x009b,
+ 0x00d2, 0x01c5, 0x0348, 0x040d, 0x0431, 0x0482,
+ 0x049d, 0x0430, 0x039b, 0x02f2, 0x023f, 0x01da,
+ 0x01a1, 0x0101, 0x003d, 0x001a, 0x0047, 0x003d,
+ 0x0055, 0x00a4, 0x0113, 0x01ca, 0x021c, 0x01b3,
+ 0x0197, 0x01d3, 0x01ad, 0x01bb, 0x021c, 0x023e,
+ 0x02e4, 0x03ee, 0x03cd, 0x034c, 0x03db, 0x0497,
+ 0x04c3, 0x047f, 0x03ff, 0x03e4, 0x038a, 0x0283,
+ 0x0276, 0x02eb, 0x02ad, 0x0386, 0x04d6, 0x0475,
+ 0x0467, 0x0508, 0x0403, 0x0308, 0x03aa, 0x0412,
+ 0x03f7, 0x03f9, 0x03f1, 0x044f, 0x04a8, 0x0465,
+ 0x044b, 0x045b, 0x0416, 0x03d0, 0x0388, 0x033a,
+ 0x034d, 0x03b5, 0x0408, 0x041e, 0x0452, 0x04b2,
+ 0x0499, 0x0416, 0x039d, 0x0306, 0x02a4, 0x0296,
+ 0x0261, 0x026b, 0x0284, 0x0199, 0x0092, 0x0052,
+ 0xffa7, 0xfee1, 0xff7b, 0xfffb, 0xfeeb, 0xfeae,
+ 0x0036, 0x009e, 0xffda, 0x0036, 0x0065, 0xff98,
+ 0xffb2, 0x0037, 0x008d, 0x01a7, 0x0245, 0x0226,
+ 0x02da, 0x032a, 0x0260, 0x01e4, 0x015e, 0x00de,
+ 0x014a, 0x01c2, 0x0221, 0x02e4, 0x035d, 0x03f2,
+ 0x04ef, 0x04f3, 0x03cc, 0x0286, 0x01bb, 0x0153,
+ 0x00b7, 0x0058, 0x0116, 0x0200, 0x0257, 0x02dc,
+ 0x0382, 0x03ac, 0x0394, 0x0355, 0x02d6, 0x0280,
+ 0x025b, 0x01ff, 0x01e5, 0x0240, 0x024a, 0x0291,
+ 0x0395, 0x03b4, 0x02f4, 0x030d, 0x035e, 0x0311,
+ 0x02da, 0x029a, 0x022a, 0x020a, 0x0249, 0x02c0,
+ 0x0303, 0x02e8, 0x02dc, 0x029a, 0x0224, 0x020d,
+ 0x01cd, 0x0112, 0x008e, 0x0094, 0x013c, 0x021d,
+ 0x02a8, 0x0316, 0x0352, 0x0356, 0x03e7, 0x04c6,
+ 0x0529, 0x051d, 0x04d7, 0x0434, 0x02ec, 0x0190,
+ 0x00f8, 0x0062, 0xff68, 0xfef5, 0xff56, 0x00cb,
+ 0x0298, 0x0348, 0x0431, 0x05b9, 0x05d0, 0x059b,
+ 0x0606, 0x0548, 0x0486, 0x04b2, 0x0443, 0x03df,
+ 0x03c6, 0x02f8, 0x025e, 0x020c, 0x01bc, 0x021c,
+ 0x01d0, 0x00b1, 0x00cf, 0x0135, 0x00ad, 0x0097,
+ 0x00fa, 0x00d3, 0x0084, 0x00b3, 0x0126, 0x012a,
+ 0x0101, 0x014a, 0x0158, 0x00c0, 0x0018, 0xff98,
+ 0xff78, 0xffb5, 0xfff0, 0x005b, 0x00e5, 0x0143,
+ 0x01b1, 0x01d6, 0x01a1, 0x01ab, 0x015f, 0x0083,
+ 0x0010, 0xffe1, 0xffda, 0x007f, 0x00ec, 0x00d3,
+ 0x00fd, 0x0095, 0xffcb, 0x002f, 0x0085, 0x0000,
+ 0x0099, 0x01b3, 0x01b1, 0x0183, 0x0171, 0x01ba,
+ 0x02ea, 0x0342, 0x02cb, 0x033c, 0x033a, 0x02e5,
+ 0x03fc, 0x04da, 0x0512, 0x05e1, 0x0657, 0x06ef,
+ 0x0807, 0x07e8, 0x078b, 0x076d, 0x05f3, 0x04e1,
+ 0x0501, 0x0409, 0x02e7, 0x02f5, 0x02f2, 0x0311,
+ 0x040f, 0x0539, 0x05bd, 0x0565, 0x0516, 0x0535,
+ 0x04da, 0x0460, 0x0428, 0x0325, 0x0185, 0x0036,
+ 0xff46, 0xfee1, 0xfedf, 0xfeb5, 0xfec6, 0xff5a,
+ 0xfff9, 0x0068, 0x007b, 0x001f, 0x0002, 0x0019,
+ 0xff99, 0xff5c, 0xfffa, 0x0007, 0x0008, 0x0139,
+ 0x01d5, 0x0186, 0x01e9, 0x021b, 0x01cf, 0x01e1,
+ 0x017b, 0x00fb, 0x010d, 0x00d3, 0x012b, 0x0208,
+ 0x01c8, 0x01e1, 0x02a2, 0x0235, 0x025b, 0x03b7,
+ 0x03d7, 0x0368, 0x0378, 0x02e6, 0x022c, 0x01e8,
+ 0x018a, 0x0143, 0x0147, 0x0166, 0x016b, 0x0148,
+ 0x017d, 0x01aa, 0x011e, 0x00d9, 0x0131, 0x0127,
+ 0x00cf, 0x004b, 0xff8c, 0xff5b, 0xff8d, 0xff42,
+ 0xfefb, 0xff64, 0x000b, 0x0074, 0x00cc, 0x0118,
+ 0x00eb, 0x007c, 0x004a, 0x0033, 0x007c, 0x0149,
+ 0x01b6, 0x01db, 0x0252, 0x026b, 0x0212, 0x01fa,
+ 0x01cf, 0x0192, 0x01c9, 0x01e6, 0x01bb, 0x023c,
+ 0x035c, 0x0413, 0x043b, 0x041e, 0x034b, 0x01b6,
+ 0x006d, 0xffee, 0xffd8, 0x004d, 0x012e, 0x017d,
+ 0x0119, 0x00d4, 0x00e3, 0x00f1, 0x00df, 0x00aa,
+ 0x0048, 0xffc1, 0xff44, 0xff04, 0xff1c, 0xff9e,
+ 0x001a, 0x001d, 0x002f, 0x008a, 0x006d, 0x000b,
+ 0x000d, 0x0021, 0x0011, 0xffca, 0xff6a, 0xffc8,
+ 0x003b, 0xffae, 0xff61, 0xff5b, 0xfe5e, 0xfdea,
+ 0xfe82, 0xfea7, 0xff36, 0x0073, 0x0103, 0x015b,
+ 0x0185, 0x011c, 0x0100, 0x00ae, 0x0023, 0x008b,
+ 0x00a2, 0x003e, 0x00e2, 0x0166, 0x0195, 0x0248,
+ 0x01c6, 0x0080, 0x000e, 0xfed4, 0xfd48, 0xfd5a,
+ 0xfd80, 0xfd41, 0xfdfa, 0xfeb8, 0xfef2, 0xffcf,
+ 0x00f7, 0x0146, 0x00d8, 0x005b, 0xfffd, 0xffcb,
+ 0xffd3, 0xffb1, 0xff87, 0xffb2, 0xff97, 0xff27,
+ 0xff08, 0xfef9, 0xff09, 0xff68, 0xff9c, 0x0031,
+ 0x015c, 0x01cc, 0x01b8, 0x022a, 0x0297, 0x0287,
+ 0x0242, 0x01db, 0x0170, 0x0115, 0x00bf, 0x0089,
+ 0x009a, 0x00c0, 0x006c, 0xffa4, 0xfed0, 0xfe0a,
+ 0xfdf1, 0xfebd, 0xff88, 0x009d, 0x025d, 0x0395,
+ 0x0437, 0x04b6, 0x046b, 0x03bc, 0x0330, 0x0237,
+ 0x010f, 0x0009, 0xff32, 0xfefa, 0xfee9, 0xfebd,
+ 0xff22, 0xff78, 0xff4e, 0xff81, 0xffdd, 0xffcc,
+ 0xffaf, 0xffc5, 0x000f, 0x0061, 0x0070, 0x006b,
+ 0x0081, 0x00d5, 0x017b, 0x021e, 0x02c0, 0x031f,
+ 0x0289, 0x01e0, 0x01c3, 0x010e, 0x0039, 0x006c,
+ 0x007d, 0xffc3, 0xff42, 0xff4b, 0xffb5, 0x0049,
+ 0x00b0, 0x013a, 0x01d2, 0x01c5, 0x0154, 0x00b9,
+ 0xffba, 0xfeec, 0xfe6f, 0xfdcd, 0xfdb6, 0xfe51,
+ 0xfe76, 0xfe3c, 0xfe67, 0xfe98, 0xfe68, 0xfdfd,
+ 0xfd8e, 0xfd65, 0xfd6f, 0xfd6b, 0xfdae, 0xfe96,
+ 0xffe3, 0x00e8, 0x0149, 0x015f, 0x0131, 0x004c,
+ 0xff1a, 0xfe58, 0xfddc, 0xfd67, 0xfd50, 0xfdd0,
+ 0xfe7b, 0xfebf, 0xfeea, 0xffac, 0x008f, 0x00be,
+ 0x00ac, 0x0102, 0x016c, 0x01db, 0x029a, 0x0311,
+ 0x02e9, 0x02b1, 0x0248, 0x01ad, 0x01b8, 0x0206,
+ 0x01ef, 0x01ee, 0x01c9, 0x015f, 0x015f, 0x0134,
+ 0x0053, 0xff94, 0xff3c, 0xff37, 0xff75, 0xff9d,
+ 0x0035, 0x014f, 0x01b7, 0x019e, 0x01cc, 0x01ee,
+ 0x01f3, 0x01ca, 0x0133, 0x00c1, 0x00d2, 0x0122,
+ 0x0165, 0x019b, 0x025f, 0x0346, 0x030e, 0x0267,
+ 0x0215, 0x0121, 0xffdf, 0xff5f, 0xff4b, 0xff98,
+ 0x0065, 0x00ff, 0x0164, 0x0212, 0x02b7, 0x02ff,
+ 0x0330, 0x034c, 0x02d4, 0x01c5, 0x0099, 0xff66,
+ 0xfe69, 0xfe52, 0xfee5, 0xff44, 0xff72, 0x0001,
+ 0x00ce, 0x0126, 0x0135, 0x0186, 0x0185, 0x0100,
+ 0x00cb, 0x0099, 0xffce, 0xff29, 0xfef4, 0xfe8a,
+ 0xfe03, 0xfde0, 0xfdf4, 0xfdd1, 0xfdba, 0xfe05,
+ 0xfe36, 0xfe65, 0xff1c, 0xff96, 0xff88, 0xfff7,
+ 0x006d, 0xfffe, 0xff65, 0xfeef, 0xfe22, 0xfd86,
+ 0xfdaa, 0xfe3a, 0xfec9, 0xfef1, 0xfebc, 0xfedc,
+ 0xff8b, 0x003f, 0x00e6, 0x01af, 0x021c, 0x0200,
+ 0x01fa, 0x01fe, 0x018b, 0x011b, 0x0125, 0x0121,
+ 0x00ed, 0x010c, 0x0150, 0x0137, 0x0109, 0x011d,
+ 0x011b, 0x010f, 0x0161, 0x01b7, 0x01c7, 0x01e4,
+ 0x0227, 0x027d, 0x02cf, 0x02af, 0x0226, 0x01ab,
+ 0x0125, 0x0099, 0x008f, 0x0105, 0x016b, 0x018e,
+ 0x0194, 0x018a, 0x0163, 0x014e, 0x0189, 0x01df,
+ 0x0214, 0x0259, 0x02b4, 0x02c2, 0x029b, 0x02bd,
+ 0x02d8, 0x0261, 0x01fc, 0x0222, 0x020a, 0x0172,
+ 0x00e3, 0x0036, 0xff81, 0xff5d, 0xff67, 0xff51,
+ 0xffac, 0x001a, 0x001b, 0x008a, 0x0180, 0x0208,
+ 0x0259, 0x02ee, 0x032b, 0x02f4, 0x02f7, 0x0316,
+ 0x02c5, 0x0242, 0x0206, 0x01f3, 0x01e6, 0x0211,
+ 0x0253, 0x0255, 0x0220, 0x01c6, 0x0155, 0x0138,
+ 0x0177, 0x0182, 0x0179, 0x01c9, 0x01e0, 0x0184,
+ 0x0190, 0x01ee, 0x01e8, 0x01db, 0x01ea, 0x018f,
+ 0x0117, 0x00ca, 0x0079, 0x0054, 0x0026, 0xff83,
+ 0xfef2, 0xfed2, 0xfee9, 0xff67, 0x002f, 0x0080,
+ 0x0031, 0xfff0, 0xffef, 0xffa0, 0xff1f, 0xfef7,
+ 0xfecb, 0xfe85, 0xfe72, 0xfdfb, 0xfd58, 0xfd58,
+ 0xfd56, 0xfd2b, 0xfd73, 0xfdc1, 0xfe45, 0xff66,
+ 0x0020, 0x0059, 0x00b5, 0x00ee, 0x0101, 0x00ec,
+ 0x00b4, 0x0116, 0x01ba, 0x01f8, 0x0251, 0x026d,
+ 0x01ed, 0x01b9, 0x0186, 0x00cc, 0x006e, 0x0062,
+ 0xfffd, 0xffc5, 0x0048, 0x012c, 0x0202, 0x02cb,
+ 0x0364, 0x0382, 0x039d, 0x03d8, 0x03a8, 0x03be,
+ 0x044c, 0x03eb, 0x030f, 0x02a1, 0x01a9, 0x00aa,
+ 0x00cc, 0x00ee, 0x00d1, 0x0147, 0x01a8, 0x01d0,
+ 0x0246, 0x0296, 0x02f5, 0x03c8, 0x0412, 0x039d,
+ 0x035e, 0x033d, 0x0288, 0x016a, 0x009a, 0x0055,
+ 0x0031, 0x0005, 0xfff1, 0xffb2, 0xff7e, 0xfff7,
+ 0x009c, 0x00b4, 0x009f, 0x00cc, 0x0128, 0x0175,
+ 0x015a, 0x0100, 0x00c3, 0x004f, 0xff91, 0xff15,
+ 0xfede, 0xfea4, 0xfe88, 0xfeaa, 0xfece, 0xfeb1,
+ 0xfe7b, 0xfe5b, 0xfe09, 0xfdb4, 0xfde7, 0xfe3f,
+ 0xfe31, 0xfe0e, 0xfe0d, 0xfde7, 0xfd99, 0xfd70,
+ 0xfd6f, 0xfd57, 0xfd74, 0xfe04, 0xfea9, 0xff6d,
+ 0x002e, 0x0030, 0xffed, 0x002a, 0x0051, 0x005b,
+ 0x00bf, 0x00e1, 0x009e, 0x0065, 0xfffd, 0xff92,
+ 0xffac, 0x002e, 0x00d8, 0x0176, 0x01e1, 0x020a,
+ 0x01ca, 0x0185, 0x01ac, 0x01b1, 0x0135, 0x00dd,
+ 0x0112, 0x015f, 0x0153, 0x0122, 0x00e2, 0x0066,
+ 0x0040, 0x00ac, 0x00db, 0x00e0, 0x0131, 0x018a,
+ 0x0231, 0x0329, 0x03a3, 0x03cc, 0x03da, 0x034f,
+ 0x029d, 0x022b, 0x019e, 0x0122, 0x00c2, 0x0031,
+ 0xffc9, 0xff93, 0xff4d, 0xff52, 0xffb0, 0x000e,
+ 0x008e, 0x0159, 0x021c, 0x0288, 0x02c8, 0x030a,
+ 0x02f7, 0x0284, 0x0249, 0x026a, 0x0269, 0x024a,
+ 0x0293, 0x0334, 0x0385, 0x036f, 0x032b, 0x025a,
+ 0x0103, 0x000a, 0xffb8, 0xffcd, 0x003e, 0x00e5,
+ 0x0176, 0x01b2, 0x0192, 0x0179, 0x0153, 0x00a7,
+ 0xffd5, 0xff3f, 0xfeac, 0xfe74, 0xfee3, 0xff69,
+ 0xffec, 0x00a4, 0x0116, 0x010f, 0x0121, 0x0154,
+ 0x0121, 0x00a7, 0x004f, 0x0002, 0xffb5, 0xff8a,
+ 0xff5e, 0xff43, 0xff4f, 0xff41, 0xff4d, 0xffa5,
+ 0xffd9, 0xfff4, 0x0038, 0x0081, 0x0110, 0x01dd,
+ 0x027a, 0x0315, 0x0393, 0x03c1, 0x040f, 0x0400,
+ 0x031f, 0x027e, 0x0226, 0x0147, 0x00a6, 0x00b3,
+ 0x00b6, 0x0096, 0x0091, 0x00b9, 0x0124, 0x019b,
+ 0x0203, 0x0261, 0x029d, 0x02cb, 0x02e1, 0x02ef,
+ 0x0315, 0x02b8, 0x01d2, 0x013d, 0x00d5, 0x008c,
+ 0x010c, 0x01c6, 0x01f2, 0x01fc, 0x022b, 0x0259,
+ 0x0263, 0x022e, 0x01f9, 0x01d1, 0x0185, 0x014b,
+ 0x0120, 0x0107, 0x015a, 0x01d5, 0x0214, 0x0258,
+ 0x0299, 0x02a0, 0x0288, 0x0240, 0x01a9, 0x010b,
+ 0x00b1, 0x008a, 0x0069, 0x005c, 0x008f, 0x012a,
+ 0x0209, 0x029b, 0x02c8, 0x02da, 0x0274, 0x01bb,
+ 0x0185, 0x019a, 0x018f, 0x01a6, 0x0191, 0x010f,
+ 0x007f, 0xfff8, 0xffc6, 0x001f, 0x0051, 0x001e,
+ 0xffec, 0xff7b, 0xfec3, 0xfe55, 0xfe28, 0xfdde,
+ 0xfdd3, 0xfe54, 0xfeef, 0xff8a, 0x0033, 0x0059,
+ 0x0007, 0xffbc, 0xff2d, 0xfea3, 0xfeb3, 0xfec7,
+ 0xfe9d, 0xfe83, 0xfe1c, 0xfd82, 0xfd16, 0xfcc7,
+ 0xfced, 0xfdad, 0xfe81, 0xff56, 0x003f, 0x011d,
+ 0x01d5, 0x0246, 0x0295, 0x0289, 0x01f5, 0x01af,
+ 0x01ca, 0x01ae, 0x01e4, 0x0234, 0x01c6, 0x0148,
+ 0x00fc, 0x0070, 0x0020, 0x0010, 0xffd1, 0xff95,
+ 0xff7a, 0xffbb, 0x006b, 0x012a, 0x0208, 0x02b9,
+ 0x02ab, 0x026a, 0x023c, 0x01e5, 0x01d0, 0x01ec,
+ 0x0206, 0x0259, 0x0270, 0x024f, 0x0284, 0x0287,
+ 0x0250, 0x028c, 0x02c1, 0x0299, 0x0289, 0x0276,
+ 0x0244, 0x0221, 0x0200, 0x0200, 0x023e, 0x027e,
+ 0x02a8, 0x02c8, 0x02b1, 0x0248, 0x01e0, 0x01bb,
+ 0x01a7, 0x0193, 0x018f, 0x0187, 0x018a, 0x018f,
+ 0x015d, 0x0120, 0x00df, 0x0060, 0x0005, 0x0031,
+ 0x0091, 0x00c0, 0x00d7, 0x0115, 0x013f, 0x0110,
+ 0x00d8, 0x00b1, 0x0067, 0x0030, 0x0024, 0x0030,
+ 0x0056, 0x0048, 0xffdc, 0xff42, 0xfe75, 0xfdae,
+ 0xfd49, 0xfd24, 0xfd28, 0xfd6b, 0xfdea, 0xfe90,
+ 0xff29, 0xffc7, 0x006f, 0x00ad, 0x009b, 0x008c,
+ 0x002c, 0xff81, 0xfec9, 0xfe01, 0xfd8d, 0xfd69,
+ 0xfd3b, 0xfd6a, 0xfdd7, 0xfdda, 0xfdd3, 0xfe26,
+ 0xfe77, 0xfe98, 0xfebd, 0xff27, 0xffa9, 0xffd4,
+ 0xffd0, 0xffdf, 0x0007, 0x005b, 0x007f, 0x004f,
+ 0x003b, 0x002f, 0xfff7, 0xffed, 0x0040, 0x00ce,
+ 0x0175, 0x01fb, 0x020d, 0x01a7, 0x018b, 0x021b,
+ 0x0290, 0x02c2, 0x031e, 0x0336, 0x02d8, 0x0274,
+ 0x0228, 0x01f0, 0x01a0, 0x0153, 0x01a0, 0x0263,
+ 0x0341, 0x045c, 0x054c, 0x05e2, 0x064a, 0x05fc,
+ 0x0529, 0x04b9, 0x0499, 0x047f, 0x0472, 0x047b,
+ 0x04c9, 0x04f5, 0x0496, 0x0412, 0x0367, 0x0289,
+ 0x01fb, 0x01a0, 0x013e, 0x0115, 0x0112, 0x0133,
+ 0x0190, 0x01e4, 0x021b, 0x0241, 0x023c, 0x0213,
+ 0x01b7, 0x013c, 0x00f1, 0x00cf, 0x00b0, 0x00a7,
+ 0x00f6, 0x01c7, 0x0286, 0x029d, 0x0271, 0x0244,
+ 0x01cd, 0x0136, 0x00f8, 0x0117, 0x0122, 0x0107,
+ 0x011b, 0x0128, 0x00d9, 0x006c, 0xffff, 0xff7f,
+ 0xff06, 0xfe9b, 0xfe71, 0xfe72, 0xfe41, 0xfe1c,
+ 0xfe00, 0xfd9f, 0xfd73, 0xfd8c, 0xfd91, 0xfde8,
+ 0xfe98, 0xff50, 0x0015, 0x006b, 0x002b, 0xffec,
+ 0xff9e, 0xff33, 0xfef4, 0xfeb1, 0xfe69, 0xfe57,
+ 0xfe7f, 0xfefc, 0xffb3, 0x0094, 0x01ae, 0x0252,
+ 0x0238, 0x0208, 0x01fa, 0x0219, 0x0275, 0x0280,
+ 0x0239, 0x024f, 0x02c0, 0x0339, 0x03b4, 0x0426,
+ 0x0441, 0x03cd, 0x0330, 0x02bd, 0x022e, 0x01bb,
+ 0x01bf, 0x019a, 0x00f9, 0x0073, 0x0076, 0x00fc,
+ 0x019d, 0x0204, 0x0245, 0x024e, 0x0214, 0x0201,
+ 0x0216, 0x01e4, 0x0178, 0x011b, 0x00e4, 0x00d5,
+ 0x00f2, 0x0138, 0x016e, 0x0139, 0x00bc, 0x0098,
+ 0x00dd, 0x0128, 0x017a, 0x01db, 0x01f8, 0x01c9,
+ 0x0197, 0x018e, 0x0186, 0x0125, 0x0092, 0x0031,
+ 0xffcf, 0xff4d, 0xfee7, 0xfe93, 0xfe90, 0xff2f,
+ 0x000a, 0x00e9, 0x01c1, 0x0226, 0x021b, 0x01f8,
+ 0x01da, 0x01e2, 0x01ec, 0x01cf, 0x01c1, 0x01b6,
+ 0x01b1, 0x01f4, 0x0223, 0x01e1, 0x0153, 0x0094,
+ 0xfff4, 0xff9a, 0xff31, 0xfec3, 0xfea7, 0xfecb,
+ 0xfee4, 0xfeb6, 0xfe7e, 0xfe78, 0xfe5d, 0xfe52,
+ 0xfeb1, 0xff1d, 0xff76, 0xffe0, 0x0003, 0xffc7,
+ 0xff60, 0xfecd, 0xfe36, 0xfdbb, 0xfd42, 0xfcd0,
+ 0xfc8a, 0xfcb7, 0xfd4b, 0xfdcf, 0xfe38, 0xfeb5,
+ 0xff22, 0xff7e, 0xffc8, 0x0003, 0x0063, 0x00de,
+ 0x0163, 0x01dd, 0x01ec, 0x01c7, 0x01cc, 0x0183,
+ 0x00e6, 0x0076, 0xfff5, 0xff3f, 0xfec1, 0xfeac,
+ 0xff01, 0xff9b, 0x0058, 0x0132, 0x01a8, 0x017e,
+ 0x014b, 0x0139, 0x0116, 0x0129, 0x0191, 0x0209,
+ 0x025b, 0x026c, 0x0239, 0x01d5, 0x0165, 0x00eb,
+ 0x0032, 0xff94, 0xffaf, 0x0069, 0x0172, 0x0295,
+ 0x0382, 0x044e, 0x04ef, 0x04ed, 0x04a1, 0x048f,
+ 0x047a, 0x0471, 0x04a9, 0x04c5, 0x048d, 0x041e,
+ 0x03a7, 0x0345, 0x02b7, 0x01ef, 0x013c, 0x00a9,
+ 0x003f, 0x0014, 0x0014, 0x0070, 0x00ff, 0x014a,
+ 0x01bb, 0x025a, 0x025c, 0x01fd, 0x01ce, 0x01a8,
+ 0x01a7, 0x01cb, 0x01ac, 0x0150, 0x00c0, 0x0033,
+ 0x0027, 0x003e, 0x0010, 0x0010, 0x001e, 0xffe7,
+ 0xffc5, 0xffaf, 0xff7a, 0xff67, 0xff58, 0xff32,
+ 0xff46, 0xff88, 0xffc2, 0xfff8, 0x0002, 0xffeb,
+ 0xffed, 0xffeb, 0xffd5, 0xffe7, 0x0005, 0x0005,
+ 0x0010, 0x0025, 0x0015, 0xffdd, 0xff63, 0xfead,
+ 0xfe06, 0xfd7a, 0xfd1d, 0xfd49, 0xfdd5, 0xfe69,
+ 0xff20, 0xffdc, 0x0084, 0x0156, 0x021b, 0x029b,
+ 0x0312, 0x032f, 0x0299, 0x01c1, 0x0105, 0x0081,
+ 0x0049, 0x0046, 0x0095, 0x0115, 0x0146, 0x018b,
+ 0x0243, 0x02b7, 0x02d8, 0x0338, 0x036c, 0x034b,
+ 0x0374, 0x03cc, 0x03f7, 0x0422, 0x0439, 0x0407,
+ 0x03ca, 0x03c5, 0x03f4, 0x040b, 0x03b9, 0x033a,
+ 0x0305, 0x031e, 0x0348, 0x037f, 0x03cc, 0x040c,
+ 0x0428, 0x0453, 0x0490, 0x049b, 0x047c, 0x0453,
+ 0x041b, 0x03e9, 0x03b7, 0x0372, 0x0340, 0x0301,
+ 0x0293, 0x0254, 0x023e, 0x01f5, 0x01a8, 0x018e,
+ 0x017c, 0x012c, 0x0076, 0xffb4, 0xff3b, 0xfed3,
+ 0xfeaa, 0xff3a, 0x004b, 0x01a2, 0x0312, 0x03fe,
+ 0x0426, 0x03c5, 0x02eb, 0x01dd, 0x00f6, 0x0048,
+ 0xffe0, 0xffd1, 0x0009, 0x004a, 0x003f, 0xfff7,
+ 0xffae, 0xff55, 0xfee5, 0xfe9d, 0xfe82, 0xfe65,
+ 0xfe5a, 0xfea2, 0xff22, 0xff95, 0xffdf, 0xffd3,
+ 0xff98, 0xffaf, 0xfffe, 0x001f, 0x0033, 0x0044,
+ 0x004b, 0x0058, 0x0028, 0xff94, 0xfeed, 0xfe7a,
+ 0xfe59, 0xfe73, 0xfe9e, 0xfedb, 0xff16, 0xff52,
+ 0xffbc, 0x000a, 0xfffe, 0xffba, 0xff5a, 0xff35,
+ 0xff7f, 0xffd3, 0x001c, 0x0066, 0x006b, 0x005a,
+ 0x0062, 0x0055, 0x0068, 0x009b, 0x0099, 0x009e,
+ 0x00d5, 0x010e, 0x0155, 0x01a6, 0x01db, 0x0204,
+ 0x0232, 0x0252, 0x0245, 0x020d, 0x01ef, 0x0206,
+ 0x021d, 0x0211, 0x01f1, 0x01f0, 0x020f, 0x0222,
+ 0x0254, 0x02ce, 0x0341, 0x037b, 0x039d, 0x03d3,
+ 0x042d, 0x0488, 0x04b8, 0x04b2, 0x0465, 0x03e8,
+ 0x0384, 0x0353, 0x0347, 0x0352, 0x0349, 0x0324,
+ 0x030e, 0x02db, 0x0253, 0x01dc, 0x01b9, 0x0188,
+ 0x014b, 0x014e, 0x0175, 0x01ac, 0x01db, 0x01b9,
+ 0x0195, 0x01e0, 0x028a, 0x0375, 0x0424, 0x040c,
+ 0x0381, 0x02d7, 0x01e5, 0x00e1, 0x0016, 0xff8b,
+ 0xff47, 0xff44, 0xff7e, 0xffd1, 0xffd6, 0xff5c,
+ 0xfe91, 0xfdec, 0xfdc5, 0xfdd6, 0xfe10, 0xfea5,
+ 0xff27, 0xff65, 0xffa5, 0xffb6, 0xffa4, 0xffb3,
+ 0xff9a, 0xff5f, 0xff4f, 0xff51, 0xff6c, 0xff93,
+ 0xffa3, 0xffb9, 0xffa3, 0xff52, 0xff34, 0xff46,
+ 0xff7d, 0xffe3, 0x0000, 0xffdb, 0xffdd, 0xffa5,
+ 0xff1e, 0xfebc, 0xfe6d, 0xfe16, 0xfdf6, 0xfe16,
+ 0xfe6b, 0xfef6, 0xffa3, 0x0044, 0x00b8, 0x0131,
+ 0x01d0, 0x0251, 0x02b5, 0x0320, 0x0341, 0x0304,
+ 0x02c2, 0x029e, 0x0286, 0x0272, 0x023f, 0x01e9,
+ 0x018e, 0x013f, 0x011a, 0x0138, 0x015b, 0x014e,
+ 0x0144, 0x0150, 0x015c, 0x019f, 0x0220, 0x0284,
+ 0x02d2, 0x0336, 0x0377, 0x0381, 0x039a, 0x03b6,
+ 0x03ac, 0x03c6, 0x043b, 0x04af, 0x04f3, 0x051e,
+ 0x051c, 0x04ed, 0x0492, 0x03e7, 0x0304, 0x0216,
+ 0x0146, 0x00dd, 0x00cc, 0x00d9, 0x010c, 0x0128,
+ 0x0129, 0x017b, 0x01e4, 0x0219, 0x0231, 0x01f6,
+ 0x018a, 0x0166, 0x0157, 0x0139, 0x0112, 0x008c,
+ 0xffb9, 0xfee7, 0xfe3d, 0xfe00, 0xfdf7, 0xfdb6,
+ 0xfd73, 0xfd33, 0xfce3, 0xfcc8, 0xfcb5, 0xfc82,
+ 0xfc80, 0xfcb2, 0xfd0c, 0xfd98, 0xfe14, 0xfe8c,
+ 0xff06, 0xff47, 0xff59, 0xff25, 0xfe92, 0xfdfe,
+ 0xfd80, 0xfd19, 0xfd32, 0xfdb9, 0xfe52, 0xfecc,
+ 0xfede, 0xfe9c, 0xfe5b, 0xfe01, 0xfd8f, 0xfd30,
+ 0xfce3, 0xfcc6, 0xfcdd, 0xfd0c, 0xfd95, 0xfe69,
+ 0xfefe, 0xff2c, 0xff29, 0xff2a, 0xff4a, 0xff84,
+ 0xffd7, 0x0025, 0x0039, 0x003c, 0x006b, 0x00ad,
+ 0x010e, 0x01a1, 0x0209, 0x020c, 0x01ee, 0x01e5,
+ 0x01d7, 0x0198, 0x0133, 0x00d2, 0x007d, 0x0031,
+ 0x0013, 0x003a, 0x0087, 0x00d2, 0x0108, 0x0112,
+ 0x00e4, 0x007e, 0x000b, 0xffd8, 0xfffb, 0x0046,
+ 0x00c8, 0x0180, 0x0210, 0x0256, 0x0279, 0x0292,
+ 0x02b4, 0x02c2, 0x029e, 0x0293, 0x028e, 0x021b,
+ 0x0160, 0x008f, 0xff7f, 0xfe64, 0xfd6f, 0xfc8c,
+ 0xfc10, 0xfc41, 0xfce8, 0xfdb9, 0xfe6a, 0xfeff,
+ 0xffb5, 0x0053, 0x00aa, 0x00f7, 0x0111, 0x00c7,
+ 0x0059, 0xffba, 0xfeec, 0xfe78, 0xfe6f, 0xfe7a,
+ 0xfe93, 0xfea7, 0xfe8e, 0xfe78, 0xfe83, 0xfe8b,
+ 0xfe9e, 0xfed2, 0xff02, 0xff31, 0xff8f, 0xffd3,
+ 0xff96, 0xff15, 0xfead, 0xfe54, 0xfe0b, 0xfde2,
+ 0xfda9, 0xfd43, 0xfcd6, 0xfc89, 0xfc5e, 0xfc61,
+ 0xfcc7, 0xfd85, 0xfe31, 0xfea4, 0xfec6, 0xfe4a,
+ 0xfd69, 0xfcb3, 0xfc2d, 0xfbdb, 0xfbe8, 0xfbfd,
+ 0xfbdf, 0xfbec, 0xfc58, 0xfcfb, 0xfda6, 0xfe36,
+ 0xfebb, 0xff38, 0xff78, 0xff7f, 0xff7c, 0xff7f,
+ 0xff91, 0xff94, 0xff60, 0xff44, 0xff94, 0x0019,
+ 0x0098, 0x00fd, 0x0124, 0x010a, 0x00d6, 0x008f,
+ 0x003e, 0x0009, 0x0009, 0x0044, 0x00aa, 0x0124,
+ 0x0192, 0x01c2, 0x01ae, 0x018c, 0x0166, 0x0126,
+ 0x00fb, 0x010d, 0x0136, 0x015c, 0x0199, 0x01f7,
+ 0x0254, 0x028f, 0x0290, 0x026e, 0x0262, 0x0250,
+ 0x01f4, 0x0177, 0x0123, 0x00ec, 0x00bf, 0x00aa,
+ 0x00cd, 0x0128, 0x0173, 0x0181, 0x016d, 0x013a,
+ 0x0106, 0x0101, 0x00f6, 0x00e9, 0x011d, 0x0154,
+ 0x0169, 0x0197, 0x01cd, 0x0209, 0x027c, 0x02d3,
+ 0x02ce, 0x02b4, 0x0275, 0x01dd, 0x0129, 0x0088,
+ 0xffd8, 0xff28, 0xfec5, 0xfeca, 0xff1c, 0xff82,
+ 0xff9e, 0xff5f, 0xfefb, 0xfe70, 0xfdf9, 0xfddb,
+ 0xfd8e, 0xfcef, 0xfcd1, 0xfd53, 0xfe03, 0xfec6,
+ 0xff5e, 0xffbd, 0x000d, 0xfffa, 0xff8a, 0xff1a,
+ 0xfe52, 0xfd40, 0xfc87, 0xfc17, 0xfbc4, 0xfbb6,
+ 0xfbc2, 0xfbdc, 0xfc2e, 0xfc92, 0xfce2, 0xfd2b,
+ 0xfd71, 0xfdb9, 0xfe14, 0xfe84, 0xfecf, 0xfece,
+ 0xfeca, 0xfedc, 0xfedb, 0xfeff, 0xff47, 0xff50,
+ 0xff46, 0xff6d, 0xff7e, 0xff8d, 0xfff5, 0x007f,
+ 0x00cf, 0x00e7, 0x00e3, 0x00d4, 0x00da, 0x00f7,
+ 0x00fe, 0x0108, 0x0149, 0x01a8, 0x020b, 0x026e,
+ 0x027b, 0x0222, 0x01db, 0x01d9, 0x0218, 0x02b0,
+ 0x0375, 0x042d, 0x04ec, 0x0589, 0x05c0, 0x05be,
+ 0x0599, 0x053e, 0x04cf, 0x0444, 0x038a, 0x02f5,
+ 0x02a0, 0x0263, 0x0263, 0x0273, 0x0223, 0x01a6,
+ 0x013f, 0x00ca, 0x0055, 0x0007, 0x0005, 0x0081,
+ 0x0129, 0x0180, 0x019a, 0x017c, 0x0120, 0x00fa,
+ 0x0121, 0x0130, 0x0123, 0x00fc, 0x009b, 0x0033,
+ 0xffd0, 0xff48, 0xfeeb, 0xfef2, 0xff16, 0xff5a,
+ 0xffe5, 0x0064, 0x00b3, 0x00fb, 0x0113, 0x00c9,
+ 0x005c, 0x000a, 0xffc5, 0xffa5, 0xffdd, 0x0048,
+ 0x00a5, 0x00f6, 0x0129, 0x0122, 0x0121, 0x0140,
+ 0x0144, 0x0134, 0x012a, 0x0106, 0x00b7, 0x0030,
+ 0xff7b, 0xfeed, 0xfea4, 0xfe60, 0xfe06, 0xfdb7,
+ 0xfd8e, 0xfd77, 0xfd5f, 0xfd80, 0xfdf0, 0xfe74,
+ 0xfefb, 0xff68, 0xff97, 0xffa6, 0xff79, 0xfee1,
+ 0xfe3b, 0xfdc2, 0xfd4b, 0xfd03, 0xfd36, 0xfdc3,
+ 0xfe79, 0xff57, 0x0059, 0x0158, 0x0210, 0x0274,
+ 0x02b3, 0x02e2, 0x02e8, 0x02a4, 0x021c, 0x018c,
+ 0x012e, 0x011e, 0x0157, 0x01a4, 0x01fa, 0x028a,
+ 0x0348, 0x03ea, 0x0463, 0x04cb, 0x053d, 0x05d5,
+ 0x0654, 0x067f, 0x06a0, 0x06aa, 0x0637, 0x0591,
+ 0x0533, 0x0527, 0x0559, 0x0578, 0x0558, 0x0533,
+ 0x0500, 0x04a6, 0x0456, 0x03ea, 0x035f, 0x031b,
+ 0x0328, 0x0365, 0x03b0, 0x03c6, 0x03d7, 0x03f3,
+ 0x03b8, 0x0348, 0x02d6, 0x0235, 0x019b, 0x0143,
+ 0x011a, 0x0129, 0x0152, 0x0177, 0x01b0, 0x01d6,
+ 0x01c4, 0x0178, 0x00d4, 0x0016, 0xff9b, 0xff61,
+ 0xff84, 0xffe9, 0x000a, 0xffeb, 0xffeb, 0x0002,
+ 0xfff7, 0xffc7, 0xff9e, 0xff85, 0xff73, 0xff9d,
+ 0x001e, 0x00c3, 0x0162, 0x01d8, 0x01f6, 0x01b2,
+ 0x0128, 0x008c, 0x000a, 0xffab, 0xff77, 0xff68,
+ 0xff5f, 0xff56, 0xff35, 0xfef3, 0xfec2, 0xfec7,
+ 0xfef1, 0xff30, 0xff77, 0xff9d, 0xff84, 0xff58,
+ 0xff50, 0xff58, 0xff62, 0xff84, 0xffc4, 0x0018,
+ 0x004b, 0x0062, 0x00c2, 0x014c, 0x01b1, 0x022d,
+ 0x02c3, 0x0358, 0x03ff, 0x045d, 0x0467, 0x045e,
+ 0x03f1, 0x034e, 0x030e, 0x02dd, 0x02ae, 0x02e9,
+ 0x0335, 0x0369, 0x03b4, 0x03bd, 0x0380, 0x0364,
+ 0x0358, 0x0326, 0x02e2, 0x02bd, 0x02ad, 0x0293,
+ 0x02a1, 0x02e7, 0x0314, 0x0330, 0x0363, 0x039d,
+ 0x03d7, 0x03f5, 0x03f8, 0x0402, 0x03fe, 0x0402,
+ 0x0407, 0x03a9, 0x032b, 0x02de, 0x0286, 0x025a,
+ 0x0282, 0x02a1, 0x02e0, 0x0354, 0x037b, 0x034a,
+ 0x02e3, 0x0247, 0x01d6, 0x01c0, 0x01f7, 0x028a,
+ 0x0317, 0x0333, 0x030d, 0x02c9, 0x0257, 0x01d6,
+ 0x0158, 0x00cc, 0x004c, 0x0008, 0x0015, 0x0049,
+ 0x0055, 0x002a, 0xffe9, 0xff96, 0xff4f, 0xff49,
+ 0xff65, 0xff98, 0x000f, 0x009c, 0x010c, 0x0173,
+ 0x01a0, 0x017d, 0x014d, 0x0103, 0x00a7, 0x0060,
+ 0xfff3, 0xff71, 0xff30, 0xff10, 0xff07, 0xff26,
+ 0xff38, 0xff43, 0xff54, 0xff52, 0xff79, 0xffd4,
+ 0x000f, 0x0031, 0x0053, 0x0060, 0x0052, 0x0027,
+ 0xfff6, 0xffd0, 0xff93, 0xff4a, 0xff2c, 0xff40,
+ 0xff76, 0xffc3, 0x0019, 0x0073, 0x00d2, 0x0148,
+ 0x01c6, 0x0227, 0x027b, 0x02cc, 0x02ff, 0x030e,
+ 0x02f7, 0x02cb, 0x02b7, 0x02ae, 0x02a5, 0x0298,
+ 0x025a, 0x01f8, 0x01ac, 0x0180, 0x0181, 0x01b0,
+ 0x01e8, 0x020d, 0x01e8, 0x015f, 0x00d5, 0x00b4,
+ 0x0111, 0x01cb, 0x0298, 0x0352, 0x03d6, 0x03ec,
+ 0x03d1, 0x03ef, 0x0423, 0x0432, 0x0430, 0x0427,
+ 0x0406, 0x03c6, 0x0389, 0x0374, 0x037d, 0x0390,
+ 0x0398, 0x037e, 0x0357, 0x0334, 0x02f6, 0x02a7,
+ 0x025b, 0x0209, 0x01da, 0x01e5, 0x0202, 0x0232,
+ 0x0275, 0x02a4, 0x02a9, 0x0280, 0x0252, 0x024b,
+ 0x0231, 0x01e8, 0x01b7, 0x0195, 0x0142, 0x00b3,
+ 0xffd8, 0xfee1, 0xfe24, 0xfd98, 0xfd46, 0xfd4f,
+ 0xfd6a, 0xfd93, 0xfe0e, 0xfea0, 0xff09, 0xff50,
+ 0xff6b, 0xff5e, 0xff2d, 0xfec9, 0xfe56, 0xfde1,
+ 0xfd64, 0xfd15, 0xfcfc, 0xfd19, 0xfd8e, 0xfe0a,
+ 0xfe35, 0xfe23, 0xfdda, 0xfd64, 0xfd06, 0xfce1,
+ 0xfd13, 0xfd9d, 0xfe47, 0xff01, 0xffbf, 0x004b,
+ 0x00bb, 0x0139, 0x019f, 0x01ad, 0x0174, 0x0149,
+ 0x014b, 0x0153, 0x0179, 0x01e0, 0x0250, 0x02ac,
+ 0x0320, 0x03b1, 0x0438, 0x0481, 0x046c, 0x040b,
+ 0x0396, 0x0344, 0x0323, 0x031b, 0x02fe, 0x028c,
+ 0x01c2, 0x0111, 0x00ca, 0x00bc, 0x00b1, 0x00c8,
+ 0x0125, 0x0195, 0x01c7, 0x01bc, 0x019c, 0x0164,
+ 0x010e, 0x00d0, 0x00d4, 0x00e2, 0x00ca, 0x00b4,
+ 0x00c0, 0x00f7, 0x0161, 0x01c1, 0x01ed, 0x020f,
+ 0x020b, 0x018f, 0x00ae, 0xffc8, 0xff49, 0xff69,
+ 0xffe6, 0x0088, 0x0147, 0x01dd, 0x022a, 0x0249,
+ 0x022d, 0x01ed, 0x01e9, 0x0249, 0x02d3, 0x0339,
+ 0x0358, 0x033b, 0x02ec, 0x0287, 0x0221, 0x01a4,
+ 0x0117, 0x008e, 0xfffb, 0xff8d, 0xff77, 0xff61,
+ 0xff13, 0xfed0, 0xfe85, 0xfe01, 0xfd8c, 0xfd5e,
+ 0xfd5c, 0xfd73, 0xfd8d, 0xfda9, 0xfdf1, 0xfe43,
+ 0xfe59, 0xfe4d, 0xfe5a, 0xfe86, 0xfebc, 0xfef1,
+ 0xff30, 0xff71, 0xff8a, 0xff67, 0xff04, 0xfe6b,
+ 0xfdc9, 0xfd3b, 0xfcd1, 0xfcbd, 0xfd11, 0xfd95,
+ 0xfdf3, 0xfe0e, 0xfe19, 0xfe11, 0xfded, 0xfe0e,
+ 0xfe84, 0xfef7, 0xff74, 0x0000, 0x0067, 0x00b5,
+ 0x00dd, 0x00e5, 0x0107, 0x0121, 0x0129, 0x0174,
+ 0x01cd, 0x01e4, 0x01e3, 0x01d8, 0x01b8, 0x0196,
+ 0x0168, 0x0130, 0x00f2, 0x009a, 0x0033, 0xffe1,
+ 0xffd5, 0x001d, 0x0089, 0x00ec, 0x0119, 0x00ea,
+ 0x00a2, 0x005e, 0xfff7, 0xffca, 0x0020, 0x0090,
+ 0x00fa, 0x017f, 0x01d6, 0x01d7, 0x01b2, 0x0176,
+ 0x0128, 0x00ee, 0x00d0, 0x00a0, 0x005b, 0x0035,
+ 0x0030, 0x004a, 0x00a7, 0x0120, 0x0169, 0x0181,
+ 0x016a, 0x0118, 0x009f, 0x0007, 0xff6c, 0xff0c,
+ 0xfeec, 0xfee8, 0xfefe, 0xff35, 0xff90, 0x0010,
+ 0x0083, 0x00bd, 0x00c2, 0x005d, 0xff85, 0xfed0,
+ 0xfe84, 0xfe59, 0xfe45, 0xfe3f, 0xfe0a, 0xfdc0,
+ 0xfd5e, 0xfcc2, 0xfc43, 0xfbfd, 0xfbaf, 0xfb83,
+ 0xfb8d, 0xfbaa, 0xfc15, 0xfcd1, 0xfd80, 0xfe13,
+ 0xfe77, 0xfe80, 0xfe5c, 0xfe37, 0xfe27, 0xfe53,
+ 0xfe9a, 0xfec3, 0xfeda, 0xfedc, 0xfec8, 0xfed2,
+ 0xff05, 0xff2c, 0xff3e, 0xff53, 0xff5f, 0xff49,
+ 0xff02, 0xfe8e, 0xfe14, 0xfdc1, 0xfd9c, 0xfd84,
+ 0xfd83, 0xfddd, 0xfe90, 0xff5b, 0x0031, 0x0102,
+ 0x01a0, 0x0226, 0x0278, 0x0243, 0x01ca, 0x016e,
+ 0x012e, 0x0121, 0x0141, 0x016b, 0x01c0, 0x0210,
+ 0x0206, 0x01cc, 0x0175, 0x00da, 0x0024, 0xff7d,
+ 0xfef4, 0xfea8, 0xfea2, 0xfefe, 0xffa8, 0x0039,
+ 0x009c, 0x0102, 0x0172, 0x01d7, 0x01e8, 0x0186,
+ 0x0125, 0x00ff, 0x00e7, 0x00eb, 0x010b, 0x0110,
+ 0x00fe, 0x00e3, 0x00ad, 0x0077, 0x003b, 0xffd9,
+ 0xff96, 0xffac, 0xffdb, 0x0007, 0x0043, 0x006d,
+ 0x0097, 0x00ea, 0x012e, 0x0147, 0x0156, 0x0156,
+ 0x0141, 0x010a, 0x00a7, 0x005c, 0x003f, 0x0018,
+ 0xffc9, 0xff2b, 0xfe68, 0xfdfa, 0xfddb, 0xfde5,
+ 0xfe2b, 0xfe57, 0xfe4a, 0xfe58, 0xfe60, 0xfe44,
+ 0xfe41, 0xfe3b, 0xfe15, 0xfe04, 0xfe26, 0xfe97,
+ 0xff34, 0xff94, 0xff84, 0xff03, 0xfe46, 0xfda8,
+ 0xfd2f, 0xfce9, 0xfd1d, 0xfdac, 0xfe3b, 0xfead,
+ 0xfefe, 0xff2d, 0xff41, 0xff67, 0xffbe, 0xfffc,
+ 0x000a, 0x0031, 0x0053, 0x0041, 0x0034, 0x0038,
+ 0x0039, 0x0022, 0xffd2, 0xff78, 0xff4a, 0xff31,
+ 0xff4b, 0xff8f, 0xff8f, 0xff64, 0xff55, 0xff3f,
+ 0xff38, 0xff71, 0xffc1, 0x0022, 0x009f, 0x00e6,
+ 0x00b4, 0x0015, 0xff51, 0xfeac, 0xfe3a, 0xfe05,
+ 0xfe02, 0xfe0a, 0xfe26, 0xfe58, 0xfe87, 0xfed0,
+ 0xff3e, 0xffa6, 0x0015, 0x007d, 0x0091, 0x007a,
+ 0x0095, 0x00d6, 0x00fe, 0x0107, 0x012b, 0x0177,
+ 0x01b7, 0x01f0, 0x0229, 0x023c, 0x0242, 0x023e,
+ 0x0205, 0x01ca, 0x01a8, 0x016b, 0x0145, 0x015c,
+ 0x018c, 0x01f6, 0x027b, 0x02a7, 0x0270, 0x0201,
+ 0x0182, 0x0125, 0x00fc, 0x00ff, 0x0115, 0x0117,
+ 0x00f4, 0x0097, 0x000e, 0xff99, 0xff17, 0xfe79,
+ 0xfe14, 0xfdca, 0xfd58, 0xfd0f, 0xfd18, 0xfd51,
+ 0xfdb3, 0xfe0c, 0xfe23, 0xfe05, 0xfdcf, 0xfd9c,
+ 0xfd86, 0xfda1, 0xfde8, 0xfe0e, 0xfddc, 0xfd60,
+ 0xfcb1, 0xfc11, 0xfbb7, 0xfb94, 0xfbbd, 0xfc52,
+ 0xfd2a, 0xfe10, 0xfec2, 0xff0e, 0xff0e, 0xfed2,
+ 0xfe65, 0xfde6, 0xfd68, 0xfd2f, 0xfd66, 0xfdcf,
+ 0xfe5f, 0xff02, 0xff6f, 0xffbd, 0xfff6, 0xfff4,
+ 0xffd8, 0xffa6, 0xff64, 0xff5b, 0xff7d, 0xffc4,
+ 0x0046, 0x008a, 0x0067, 0x004c, 0x0034, 0x0006,
+ 0xfff3, 0xffee, 0x0009, 0x003f, 0x0038, 0x000b,
+ 0xfffa, 0xffff, 0x002e, 0x005f, 0x005f, 0x006f,
+ 0x009d, 0x00c9, 0x0108, 0x0127, 0x0107, 0x00e4,
+ 0x00aa, 0x005a, 0x0052, 0x006e, 0x006c, 0x0089,
+ 0x00c0, 0x00d7, 0x00fd, 0x0154, 0x01ac, 0x01f3,
+ 0x0233, 0x0253, 0x023b, 0x01fd, 0x01ad, 0x013a,
+ 0x00c3, 0x0089, 0x008a, 0x00b0, 0x00e4, 0x00f4,
+ 0x00f2, 0x0105, 0x010e, 0x011d, 0x0141, 0x0120,
+ 0x00c6, 0x00a2, 0x009b, 0x0073, 0x0038, 0xfff8,
+ 0xffb5, 0xff75, 0xff20, 0xfe98, 0xfdd6, 0xfd0f,
+ 0xfca0, 0xfc98, 0xfcdd, 0xfd78, 0xfe4a, 0xff22,
+ 0xffd7, 0x0033, 0x002c, 0xffdc, 0xff72, 0xff2c,
+ 0xfef2, 0xfe84, 0xfe02, 0xfda4, 0xfd8f, 0xfdde,
+ 0xfe48, 0xfe8f, 0xfee9, 0xff56, 0xff8d, 0xff8c,
+ 0xff72, 0xff2c, 0xfeb2, 0xfe4f, 0xfe4b, 0xfe80,
+ 0xfec5, 0xff20, 0xff5d, 0xff62, 0xff77, 0xffa4,
+ 0xffdf, 0x004c, 0x00d9, 0x015d, 0x01bc, 0x01b5,
+ 0x016f, 0x0160, 0x0183, 0x0197, 0x0190, 0x0168,
+ 0x0123, 0x00c1, 0x0036, 0xffb5, 0xff80, 0xff9c,
+ 0x000b, 0x00c4, 0x0170, 0x01d5, 0x0209, 0x020d,
+ 0x01d5, 0x018b, 0x0151, 0x0115, 0x00e2, 0x00d1,
+ 0x00de, 0x0107, 0x0135, 0x0131, 0x00f6, 0x0097,
+ 0x002a, 0xffe5, 0xffe2, 0x001b, 0x0097, 0x0136,
+ 0x01cc, 0x0258, 0x02ce, 0x033b, 0x03bb, 0x0412,
+ 0x0400, 0x03ab, 0x0325, 0x0269, 0x01ba, 0x0146,
+ 0x0116, 0x0139, 0x0180, 0x0199, 0x0187, 0x017d,
+ 0x0180, 0x0180, 0x0196, 0x01d5, 0x0224, 0x0272,
+ 0x02ab, 0x029f, 0x025d, 0x01fb, 0x0155, 0x008f,
+ 0xfff5, 0xff6d, 0xff01, 0xfee9, 0xff06, 0xff3d,
+ 0xffbe, 0x0085, 0x013c, 0x01a5, 0x01d6, 0x01df,
+ 0x01b0, 0x0172, 0x0137, 0x00d1, 0x0076, 0x005d,
+ 0x003e, 0x0017, 0x0016, 0x0009, 0xffd3, 0xff8e,
+ 0xff35, 0xfeda, 0xfe8e, 0xfe5e, 0xfe75, 0xfed0,
+ 0xff4a, 0xffd6, 0x0045, 0x0070, 0x007b, 0x008b,
+ 0x00b6, 0x00ff, 0x0139, 0x013e, 0x010c, 0x00af,
+ 0x0039, 0xffaa, 0xff2a, 0xff04, 0xff2e, 0xff6b,
+ 0xffba, 0x0030, 0x00bb, 0x012a, 0x0176, 0x01bb,
+ 0x01e1, 0x01cc, 0x01a3, 0x0174, 0x0137, 0x0108,
+ 0x0106, 0x014d, 0x01c7, 0x0214, 0x022d, 0x0264,
+ 0x02c9, 0x0331, 0x0362, 0x0334, 0x02e1, 0x02a5,
+ 0x027e, 0x0284, 0x02b0, 0x02be, 0x02a4, 0x0295,
+ 0x028f, 0x0273, 0x0258, 0x025c, 0x0264, 0x0273,
+ 0x02bb, 0x0319, 0x034c, 0x0366, 0x038c, 0x03c4,
+ 0x0405, 0x0423, 0x0415, 0x03f5, 0x03cb, 0x03ab,
+ 0x0398, 0x037e, 0x036d, 0x034c, 0x02ec, 0x0280,
+ 0x0241, 0x0232, 0x0243, 0x0248, 0x0235, 0x021e,
+ 0x01fb, 0x01e4, 0x01e8, 0x01d3, 0x01a6, 0x016c,
+ 0x00ff, 0x008f, 0x004f, 0x0025, 0x0014, 0x001a,
+ 0x0021, 0x003a, 0x0034, 0xffe2, 0xff76, 0xfeff,
+ 0xfe89, 0xfe5d, 0xfe6f, 0xfea5, 0xff27, 0xffc5,
+ 0x002d, 0x0064, 0x007e, 0x0070, 0x004b, 0x0035,
+ 0x0029, 0x0005, 0xffd5, 0xff9f, 0xff50, 0xff14,
+ 0xff21, 0xff5c, 0xffbc, 0x003a, 0x00a8, 0x0104,
+ 0x0149, 0x013d, 0x0101, 0x00eb, 0x0102, 0x011a,
+ 0x0122, 0x012a, 0x0143, 0x0157, 0x0168, 0x017d,
+ 0x0165, 0x010f, 0x00a3, 0x001c, 0xff7b, 0xfeff,
+ 0xfee5, 0xff3d, 0xffde, 0x007a, 0x00fe, 0x0180,
+ 0x01f9, 0x0259, 0x028c, 0x0288, 0x0276, 0x027a,
+ 0x0274, 0x0248, 0x0210, 0x01ec, 0x01d9, 0x01be,
+ 0x0197, 0x017e, 0x017f, 0x0192, 0x01b0, 0x01e9,
+ 0x024b, 0x02c0, 0x030d, 0x0325, 0x0332, 0x0341,
+ 0x034a, 0x036b, 0x03b6, 0x03ed, 0x03cd, 0x0388,
+ 0x035e, 0x032b, 0x02e7, 0x02c4, 0x02b0, 0x028d,
+ 0x026a, 0x0250, 0x0262, 0x02ad, 0x02fc, 0x0344,
+ 0x036a, 0x031b, 0x02a4, 0x0262, 0x020b, 0x01a8,
+ 0x017f, 0x013e, 0x00cb, 0x0079, 0x0052, 0x003d,
+ 0x001f, 0xffdc, 0xffa5, 0xff8f, 0xff71, 0xff5d,
+ 0xff38, 0xfebf, 0xfe2c, 0xfdbc, 0xfd67, 0xfd45,
+ 0xfd4d, 0xfd4f, 0xfd6d, 0xfdcd, 0xfe4a, 0xfec2,
+ 0xff0f, 0xff10, 0xfef2, 0xff02, 0xff45, 0xff82,
+ 0xff9f, 0xffb9, 0xffe7, 0x001e, 0x0045, 0x004c,
+ 0x002f, 0xfff9, 0xffd3, 0xffce, 0xffc6, 0xffb4,
+ 0xffbf, 0x0000, 0x0085, 0x0122, 0x016b, 0x014f,
+ 0x011d, 0x00fd, 0x00d9, 0x008d, 0x0021, 0xffd3,
+ 0xffce, 0x0009, 0x0060, 0x0088, 0x0065, 0x0019,
+ 0xffbd, 0xff70, 0xff46, 0xff21, 0xff10, 0xff25,
+ 0xff3a, 0xff59, 0xff9d, 0x0002, 0x008e, 0x0125,
+ 0x019c, 0x01ea, 0x01e6, 0x019a, 0x0152, 0x0109,
+ 0x00ba, 0x0082, 0x004f, 0x003b, 0x0061, 0x0084,
+ 0x00af, 0x00f5, 0x0129, 0x0180, 0x020f, 0x0278,
+ 0x02d6, 0x0361, 0x03b7, 0x03b5, 0x038d, 0x0348,
+ 0x02f1, 0x02ab, 0x02a3, 0x02d3, 0x02dc, 0x02b5,
+ 0x02ab, 0x02a4, 0x0288, 0x027d, 0x0272, 0x025c,
+ 0x025b, 0x0254, 0x022e, 0x01fe, 0x01c0, 0x0158,
+ 0x00c6, 0x001c, 0xff63, 0xfe8e, 0xfdb0, 0xfcea,
+ 0xfc61, 0xfc3b, 0xfc80, 0xfd1a, 0xfddf, 0xfe81,
+ 0xfed8, 0xff01, 0xfef0, 0xfe8e, 0xfe0f, 0xfda1,
+ 0xfd49, 0xfd33, 0xfd86, 0xfe31, 0xfefa, 0xffa7,
+ 0x0030, 0x00a4, 0x00ea, 0x00e9, 0x00ad, 0x003c,
+ 0xffa7, 0xff27, 0xfeed, 0xfecc, 0xfe7f, 0xfe17,
+ 0xfde7, 0xfe35, 0xfef3, 0xffba, 0x0038, 0x00a0,
+ 0x0123, 0x0199, 0x01de, 0x01e0, 0x0185, 0x00ec,
+ 0x0042, 0xff9d, 0xff1c, 0xfed2, 0xfecd, 0xff35,
+ 0xffe7, 0x006e, 0x00b7, 0x00f5, 0x0139, 0x018d,
+ 0x01d2, 0x01ca, 0x0179, 0x010a, 0x007d, 0xfff7,
+ 0xffbe, 0xffd5, 0xffed, 0xffd3, 0xffb1, 0xffa9,
+ 0xffb1, 0xfff9, 0x00af, 0x0188, 0x023d, 0x02d6,
+ 0x0342, 0x0360, 0x0337, 0x02d4, 0x0255, 0x01ec,
+ 0x01b9, 0x01cc, 0x0217, 0x0283, 0x02f5, 0x032c,
+ 0x0318, 0x0315, 0x0345, 0x0370, 0x037d, 0x034f,
+ 0x02d5, 0x0253, 0x01ec, 0x0183, 0x013c, 0x014c,
+ 0x0192, 0x01d3, 0x01f4, 0x01ee, 0x01c4, 0x0170,
+ 0x00ef, 0x004e, 0xffa7, 0xfef6, 0xfe39, 0xfda1,
+ 0xfd4c, 0xfd14, 0xfcf8, 0xfd21, 0xfd7b, 0xfdd9,
+ 0xfe21, 0xfe27, 0xfddf, 0xfd79, 0xfd17, 0xfcba,
+ 0xfc58, 0xfc06, 0xfc0e, 0xfc7d, 0xfd03, 0xfd6f,
+ 0xfdc7, 0xfe07, 0xfe34, 0xfe73, 0xfeda, 0xff59,
+ 0xffdf, 0x0082, 0x0142, 0x01d8, 0x01fb, 0x01be,
+ 0x0162, 0x00f9, 0x0071, 0xffdc, 0xff5d, 0xff0d,
+ 0xff05, 0xff35, 0xff64, 0xff91, 0xffe9, 0x0076,
+ 0x0125, 0x01ce, 0x022c, 0x020c, 0x018f, 0x00fc,
+ 0x0087, 0x005b, 0x007d, 0x00a7, 0x00af, 0x00ad,
+ 0x0089, 0x0032, 0xfff3, 0xfff4, 0x0017, 0x0047,
+ 0x005f, 0x0051, 0x0049, 0x0067, 0x00c3, 0x0161,
+ 0x01f0, 0x0223, 0x020d, 0x01eb, 0x01e9, 0x020b,
+ 0x0223, 0x0219, 0x0202, 0x01ec, 0x01de, 0x01d4,
+ 0x01c5, 0x01c5, 0x01e9, 0x023a, 0x02bb, 0x0354,
+ 0x03db, 0x0437, 0x0456, 0x0432, 0x03dd, 0x035f,
+ 0x02cf, 0x0250, 0x01da, 0x0161, 0x00f3, 0x0099,
+ 0x005b, 0x0036, 0x0017, 0x0008, 0x0005, 0xfffc,
+ 0xfff6, 0xffd6, 0xff7e, 0xff1e, 0xfecb, 0xfe8b,
+ 0xfe7d, 0xfe75, 0xfe52, 0xfe53, 0xfe5c, 0xfe2c,
+ 0xfdf0, 0xfda8, 0xfd52, 0xfd47, 0xfd7c, 0xfd9c,
+ 0xfdc3, 0xfe19, 0xfe8f, 0xff15, 0xff79, 0xff8d,
+ 0xff73, 0xff63, 0xff7c, 0xffc7, 0x0032, 0x0096,
+ 0x00d4, 0x00e0, 0x00b3, 0x0062, 0x0020, 0xfff3,
+ 0xffc8, 0xffa7, 0xff69, 0xfeee, 0xfe7d, 0xfe4d,
+ 0xfe50, 0xfe78, 0xfeb6, 0xff00, 0xff49, 0xff76,
+ 0xff90, 0xff86, 0xff2b, 0xfeb6, 0xfe7c, 0xfe7b,
+ 0xfea0, 0xfee0, 0xff1b, 0xff3f, 0xff50, 0xff67,
+ 0xffa9, 0x000d, 0x0068, 0x00a4, 0x00cf, 0x00df,
+ 0x00b3, 0x0059, 0x0005, 0xffb4, 0xff84, 0xffc1,
+ 0x005a, 0x010c, 0x01b2, 0x0224, 0x0256, 0x0256,
+ 0x021f, 0x01cd, 0x0193, 0x0180, 0x0190, 0x01ae,
+ 0x01d9, 0x021c, 0x025a, 0x027e, 0x0298, 0x02a2,
+ 0x02b0, 0x02e0, 0x0310, 0x0336, 0x0369, 0x0390,
+ 0x0396, 0x0389, 0x0362, 0x0319, 0x02d3, 0x02c5,
+ 0x02eb, 0x02ff, 0x02da, 0x02a8, 0x0289, 0x025f,
+ 0x0226, 0x01fa, 0x01d2, 0x01a3, 0x0191, 0x01a8,
+ 0x01b5, 0x019b, 0x017b, 0x0173, 0x017f, 0x0176,
+ 0x0137, 0x00db, 0x008f, 0x0038, 0xffb2, 0xff29,
+ 0xfecb, 0xfe8f, 0xfe86, 0xfea8, 0xfeb7, 0xfeac,
+ 0xfe92, 0xfe5a, 0xfe21, 0xfde1, 0xfd8f, 0xfd7f,
+ 0xfdd4, 0xfe51, 0xfedd, 0xff50, 0xff7a, 0xff7c,
+ 0xff80, 0xff85, 0xff65, 0xfefe, 0xfe77, 0xfdff,
+ 0xfda0, 0xfd79, 0xfd6f, 0xfd61, 0xfd7d, 0xfda1,
+ 0xfdb1, 0xfdfc, 0xfe58, 0xfe6e, 0xfe6d, 0xfe6d,
+ 0xfe6f, 0xfe8f, 0xfebb, 0xfefb, 0xff53, 0xff90,
+ 0xffb9, 0xffd6, 0xffb6, 0xff7d, 0xff76, 0xffc0,
+ 0x0053, 0x00d6, 0x010c, 0x0123, 0x0119, 0x00dc,
+ 0x00ba, 0x00e6, 0x013e, 0x01ab, 0x021f, 0x026a,
+ 0x0272, 0x023c, 0x01d1, 0x013c, 0x0097, 0xfff4,
+ 0xff72, 0xff3c, 0xff67, 0x0000, 0x00d1, 0x0153,
+ 0x0170, 0x0169, 0x0152, 0x0142, 0x015f, 0x0191,
+ 0x01af, 0x01bf, 0x01dd, 0x01fd, 0x0204, 0x0227,
+ 0x0268, 0x0270, 0x025a, 0x0256, 0x0216, 0x0181,
+ 0x00e0, 0x0078, 0x0074, 0x009d, 0x00bc, 0x00d7,
+ 0x00e1, 0x00fd, 0x0157, 0x0181, 0x012d, 0x00a1,
+ 0x001b, 0xffbf, 0xff74, 0xff05, 0xfe81, 0xfe0c,
+ 0xfdc9, 0xfde6, 0xfe3e, 0xfe84, 0xfe93, 0xfe6e,
+ 0xfe4f, 0xfe41, 0xfe1e, 0xfded, 0xfd9e, 0xfd2c,
+ 0xfcce, 0xfc81, 0xfc48, 0xfc5e, 0xfcab, 0xfd20,
+ 0xfdb4, 0xfe08, 0xfe37, 0xfe83, 0xfeb1, 0xfed4,
+ 0xff03, 0xfeef, 0xfebe, 0xfeb8, 0xfec9, 0xfef8,
+ 0xff3a, 0xff69, 0xff7d, 0xff58, 0xfefa, 0xfe8d,
+ 0xfe2a, 0xfdff, 0xfe1f, 0xfe7f, 0xff27, 0xffc6,
+ 0xfffc, 0xfff6, 0xffdf, 0xffbe, 0xffb3, 0xff9e,
+ 0xff62, 0xff3b, 0xff73, 0x0016, 0x00d7, 0x0162,
+ 0x01c5, 0x0211, 0x0260, 0x02d8, 0x031e, 0x02d4,
+ 0x024e, 0x01f1, 0x01d8, 0x01fc, 0x0221, 0x022b,
+ 0x023e, 0x0273, 0x02c1, 0x02f8, 0x02ef, 0x02cb,
+ 0x029b, 0x023d, 0x01b9, 0x0124, 0x0092, 0x002e,
+ 0xfff0, 0xffad, 0xff7e, 0xff9a, 0x0006, 0x00a4,
+ 0x013f, 0x01a0, 0x01b6, 0x01a2, 0x0176, 0x0125,
+ 0x00a4, 0x000d, 0xffa1, 0xff7d, 0xff7e, 0xff74,
+ 0xff4a, 0xff0f, 0xfeff, 0xff2d, 0xff69, 0xff73,
+ 0xff38, 0xff10, 0xff4f, 0xffb3, 0x0001, 0x004a,
+ 0x005d, 0x0020, 0xffc2, 0xff38, 0xfea0, 0xfe56,
+ 0xfe61, 0xfea9, 0xff19, 0xff59, 0xff55, 0xff3c,
+ 0xfef8, 0xfe71, 0xfdb8, 0xfce4, 0xfc65, 0xfc8f,
+ 0xfd36, 0xfe3c, 0xff8c, 0x00c9, 0x01a1, 0x01d2,
+ 0x013a, 0x0001, 0xfe57, 0xfc6e, 0xfad3, 0xf9f7,
+ 0xf9d5, 0xfa3a, 0xfaf8, 0xfbf5, 0xfcfe, 0xfda2,
+ 0xfdb3, 0xfd63, 0xfce3, 0xfc82, 0xfc88, 0xfcb7,
+ 0xfcad, 0xfc77, 0xfc65, 0xfcb1, 0xfd3b, 0xfdad,
+ 0xfdcf, 0xfdb4, 0xfdb8, 0xfe30, 0xfefc, 0xff98,
+ 0xffbc, 0xffad, 0xffb7, 0xffd3, 0x0022, 0x00d2,
+ 0x019d, 0x0257, 0x031a, 0x03af, 0x03ca, 0x0352,
+ 0x0252, 0x014c, 0x00b5, 0x0056, 0xffe4, 0xff6e,
+ 0xff42, 0xff80, 0xffa1, 0xff42, 0xfeb7, 0xfe3b,
+ 0xfde1, 0xfdd9, 0xfdf5, 0xfe12, 0xfe5b, 0xfeb7,
+ 0xff16, 0xff87, 0xffe6, 0x0022, 0x004e, 0x0075,
+ 0x00ad, 0x00c2, 0x007a, 0x000b, 0xff99, 0xff14,
+ 0xfea6, 0xfe72, 0xfe61, 0xfe74, 0xfed6, 0xff8e,
+ 0x0035, 0x005d, 0x0015, 0xffb8, 0xff7d, 0xff6b,
+ 0xff83, 0xffb8, 0xffcd, 0xffb3, 0xffad, 0xffb5,
+ 0xff99, 0xff60, 0xff0d, 0xfea3, 0xfe54, 0xfe28,
+ 0xfe0c, 0xfdfe, 0xfe08, 0xfe32, 0xfe58, 0xfe67,
+ 0xfe6b, 0xfe3a, 0xfdf2, 0xfde9, 0xfdd1, 0xfd51,
+ 0xfc9e, 0xfbea, 0xfb75, 0xfb8a, 0xfbf9, 0xfc78,
+ 0xfcf3, 0xfd85, 0xfe64, 0xff51, 0xffc9, 0xffaa,
+ 0xfefc, 0xfdfe, 0xfd3c, 0xfcd8, 0xfca5, 0xfcaf,
+ 0xfd08, 0xfd8e, 0xfe10, 0xfe83, 0xfee8, 0xff19,
+ 0xff2a, 0xff46, 0xff38, 0xfef1, 0xfeba, 0xfec4,
+ 0xff30, 0xffdf, 0x007a, 0x0110, 0x01c5, 0x0262,
+ 0x02a4, 0x0270, 0x01ef, 0x016e, 0x0104, 0x00da,
+ 0x010a, 0x0151, 0x01a7, 0x0239, 0x02dc, 0x0361,
+ 0x03b4, 0x03bc, 0x0397, 0x0367, 0x030b, 0x0269,
+ 0x0192, 0x00bc, 0x002c, 0xffe8, 0xffaa, 0xff68,
+ 0xff78, 0xfff6, 0x007a, 0x00c3, 0x00fa, 0x0144,
+ 0x019d, 0x01e7, 0x01fc, 0x01c9, 0x015c, 0x0106,
+ 0x00f5, 0x00c9, 0x004a, 0xffce, 0xff7d, 0xff5e,
+ 0xff8c, 0xffc7, 0xffc6, 0xffd5, 0x002a, 0x007d,
+ 0x008e, 0x006d, 0x0036, 0x0006, 0x0019, 0x0071,
+ 0x00b6, 0x00d3, 0x011c, 0x01bc, 0x026c, 0x02c4,
+ 0x02a8, 0x0243, 0x01d4, 0x0179, 0x010b, 0x0055,
+ 0xff72, 0xfe9a, 0xfdf8, 0xfda0, 0xfd63, 0xfd12,
+ 0xfcc5, 0xfca0, 0xfcc4, 0xfd26, 0xfd8f, 0xfdf0,
+ 0xfe49, 0xfe8f, 0xfee1, 0xff24, 0xff08, 0xfeb2,
+ 0xfe4d, 0xfdc7, 0xfd6b, 0xfd76, 0xfd9a, 0xfdc3,
+ 0xfe68, 0xffc6, 0x0181, 0x0338, 0x04d5, 0x0647,
+ 0x0773, 0x0853, 0x08b3, 0x0845, 0x06fe, 0x0528,
+ 0x033e, 0x018e, 0x0020, 0xfefd, 0xfe38, 0xfdef,
+ 0xfe40, 0xfefb, 0xffc2, 0x0058, 0x00c1, 0x013a,
+ 0x01d0, 0x021d, 0x01ef, 0x0183, 0x00ff, 0x006c,
+ 0xffbf, 0xfed8, 0xfdc7, 0xfcd8, 0xfc5d, 0xfc76,
+ 0xfd0c, 0xfe08, 0xff42, 0x0066, 0x013f, 0x0197,
+ 0x0119, 0xffd7, 0xfe78, 0xfd8a, 0xfd09, 0xfcd7,
+ 0xfcf7, 0xfd3f, 0xfdb1, 0xfe91, 0xff91, 0x0016,
+ 0x002e, 0x0012, 0xffed, 0x0014, 0x0083, 0x00d4,
+ 0x00d9, 0x00bd, 0x00cd, 0x010b, 0x010a, 0x00a1,
+ 0x000f, 0xffaf, 0xffe3, 0x00a2, 0x014b, 0x015a,
+ 0x00eb, 0x0092, 0x00b6, 0x010b, 0x010f, 0x00dc,
+ 0x00ed, 0x0161, 0x01dd, 0x0206, 0x01b8, 0x010e,
+ 0x00a3, 0x00fe, 0x01be, 0x0215, 0x01e0, 0x01c4,
+ 0x0257, 0x034f, 0x03d5, 0x034c, 0x01c1, 0x0011,
+ 0xff0b, 0xfe65, 0xfd7f, 0xfc4a, 0xfb3f, 0xfb26,
+ 0xfc56, 0xfe28, 0xffc9, 0x0100, 0x022b, 0x03b9,
+ 0x053d, 0x05ad, 0x04a8, 0x02a1, 0x002d, 0xfde1,
+ 0xfc25, 0xfad7, 0xf9ae, 0xf906, 0xf9a0, 0xfbbd,
+ 0xfee2, 0x0226, 0x04b3, 0x0648, 0x0700, 0x06ec,
+ 0x0615, 0x044e, 0x018d, 0xfe71, 0xfbc3, 0xfa0b,
+ 0xf990, 0xfa2d, 0xfb8c, 0xfd8a, 0x0013, 0x02f5,
+ 0x058f, 0x071c, 0x0792, 0x0752, 0x066d, 0x04f2,
+ 0x02f8, 0x008d, 0xfe30, 0xfca3, 0xfc38, 0xfcac,
+ 0xfd93, 0xfed0, 0x0081, 0x0284, 0x0454, 0x055d,
+ 0x0550, 0x0466, 0x0332, 0x0209, 0x00b4, 0xff1a,
+ 0xfda7, 0xfce7, 0xfd30, 0xfe60, 0xffd6, 0x014d,
+ 0x02f7, 0x048d, 0x05a5, 0x061f, 0x05bc, 0x0480,
+ 0x02f7, 0x0168, 0xffe3, 0xfea1, 0xfde0, 0xfde2,
+ 0xfed2, 0x0073, 0x0236, 0x0396, 0x047c, 0x0511,
+ 0x0576, 0x05c7, 0x0615, 0x0674, 0x06fe, 0x0798,
+ 0x07ce, 0x0739, 0x05db, 0x0413, 0x022d, 0x0082,
+ 0xff9a, 0xff8d, 0x0025, 0x017b, 0x0378, 0x0582,
+ 0x06e4, 0x0719, 0x0631, 0x049a, 0x0292, 0x0082,
+ 0xfef0, 0xfe02, 0xfdce, 0xfe53, 0xff6b, 0x00ee,
+ 0x023e, 0x0290, 0x01fb, 0x00ef, 0xffa1, 0xfe82,
+ 0xfdde, 0xfd80, 0xfd4e, 0xfd74, 0xfe06, 0xfee0,
+ 0xffcc, 0x0080, 0x00b0, 0x0056, 0xff98, 0xfe89,
+ 0xfd4f, 0xfc18, 0xfb19, 0xfab1, 0xfada, 0xfb2c,
+ 0xfb91, 0xfc0c, 0xfc7c, 0xfcdd, 0xfd14, 0xfd14,
+ 0xfd11, 0xfd26, 0xfd5a, 0xfda3, 0xfdc6, 0xfdc9,
+ 0xfdbd, 0xfd75, 0xfcfc, 0xfc95, 0xfc57, 0xfc46,
+ 0xfc53, 0xfc63, 0xfc7a, 0xfc82, 0xfc50, 0xfbf1,
+ 0xfb9e, 0xfb84, 0xfba0, 0xfbd0, 0xfbe7, 0xfbbe,
+ 0xfb66, 0xfb1d, 0xfaf9, 0xfae0, 0xfac2, 0xfacb,
+ 0xfb23, 0xfba9, 0xfc4c, 0xfd06, 0xfd64, 0xfd41,
+ 0xfd14, 0xfd2c, 0xfd7e, 0xfdc7, 0xfdb1, 0xfd91,
+ 0xfe0d, 0xff0d, 0x000d, 0x00b3, 0x00cb, 0x006b,
+ 0xffee, 0xffa8, 0xffa7, 0xffad, 0xff88, 0xff61,
+ 0xff88, 0x0024, 0x0115, 0x0202, 0x02b7, 0x0354,
+ 0x0406, 0x04c0, 0x0549, 0x055c, 0x04cd, 0x03e6,
+ 0x0335, 0x02d2, 0x0294, 0x026f, 0x0246, 0x022e,
+ 0x0276, 0x0300, 0x035b, 0x035b, 0x0333, 0x0340,
+ 0x0389, 0x03c6, 0x03c3, 0x0374, 0x02fd, 0x02b4,
+ 0x02b8, 0x02df, 0x02fd, 0x0312, 0x0335, 0x0359,
+ 0x0351, 0x030e, 0x02c2, 0x02d1, 0x0349, 0x03d0,
+ 0x042e, 0x0433, 0x03e3, 0x03c2, 0x03f7, 0x041b,
+ 0x0418, 0x03f2, 0x03af, 0x038a, 0x0387, 0x0378,
+ 0x0354, 0x032a, 0x033b, 0x0389, 0x03ba, 0x03eb,
+ 0x0456, 0x04cc, 0x054f, 0x05d4, 0x062f, 0x0670,
+ 0x066e, 0x05df, 0x04d7, 0x0384, 0x023b, 0x0159,
+ 0x00d4, 0x0096, 0x00ab, 0x011a, 0x0206, 0x0356,
+ 0x0488, 0x0515, 0x04b7, 0x03ae, 0x0273, 0x012a,
+ 0x0008, 0xff56, 0xff37, 0xffda, 0x010c, 0x0260,
+ 0x03a8, 0x048e, 0x04d0, 0x04a8, 0x041a, 0x0318,
+ 0x01f5, 0x00d6, 0xfffc, 0xffb5, 0xffce, 0x000b,
+ 0x0071, 0x00d9, 0x0127, 0x0146, 0x011c, 0x00cb,
+ 0x006d, 0xffdb, 0xff13, 0xfe6a, 0xfe4a, 0xfeaf,
+ 0xff40, 0xffe6, 0x0098, 0x011b, 0x0147, 0x0113,
+ 0x0067, 0xff40, 0xfde0, 0xfcd1, 0xfc5a, 0xfc48,
+ 0xfc56, 0xfc77, 0xfcd9, 0xfd9b, 0xfe67, 0xfed9,
+ 0xfee1, 0xfeb4, 0xfea8, 0xfec9, 0xfec6, 0xfe90,
+ 0xfe3a, 0xfdd1, 0xfda7, 0xfdd4, 0xfdf7, 0xfdf3,
+ 0xfe03, 0xfe5c, 0xff0d, 0xffdb, 0x006c, 0x00b5,
+ 0x00dd, 0x0103, 0x0113, 0x00cc, 0xfffa, 0xfeb9,
+ 0xfd7d, 0xfc9d, 0xfc34, 0xfc41, 0xfca4, 0xfd64,
+ 0xfeb0, 0x0047, 0x019b, 0x027d, 0x0307, 0x034f,
+ 0x0343, 0x02a6, 0x0176, 0x0009, 0xfed2, 0xfe3f,
+ 0xfe78, 0xff30, 0x0004, 0x00e7, 0x01f0, 0x0310,
+ 0x03f9, 0x0451, 0x03e8, 0x02f1, 0x01df, 0x00cc,
+ 0xff90, 0xfe42, 0xfd21, 0xfc4c, 0xfbe8, 0xfc0c,
+ 0xfc94, 0xfd2a, 0xfda7, 0xfe1d, 0xfe82, 0xfec9,
+ 0xfee8, 0xfeab, 0xfe24, 0xfdb3, 0xfd60, 0xfd15,
+ 0xfce1, 0xfce1, 0xfd41, 0xfdea, 0xfe94, 0xff2f,
+ 0xff7e, 0xff4d, 0xfee7, 0xfe74, 0xfde6, 0xfd5f,
+ 0xfcdb, 0xfc68, 0xfc34, 0xfc24, 0xfc26, 0xfc54,
+ 0xfca2, 0xfd0b, 0xfd86, 0xfe00, 0xfe80, 0xfedb,
+ 0xfedc, 0xfe91, 0xfe12, 0xfda3, 0xfd71, 0xfd35,
+ 0xfcd0, 0xfc5a, 0xfbeb, 0xfbf3, 0xfc98, 0xfd5b,
+ 0xfdfb, 0xfe9a, 0xff50, 0x0003, 0x004b, 0xffe9,
+ 0xff0e, 0xfe07, 0xfd2d, 0xfcb1, 0xfc80, 0xfcad,
+ 0xfd4f, 0xfe3f, 0xff56, 0x0066, 0x0134, 0x019a,
+ 0x0186, 0x011c, 0x0088, 0xffdb, 0xff66, 0xff7b,
+ 0xffe9, 0x007d, 0x0128, 0x01bf, 0x0230, 0x027b,
+ 0x02a5, 0x02d2, 0x031f, 0x0383, 0x03df, 0x0404,
+ 0x03fb, 0x040e, 0x044d, 0x0484, 0x04a2, 0x04b4,
+ 0x04ba, 0x04c6, 0x04f2, 0x0510, 0x04e4, 0x04a2,
+ 0x04a9, 0x04f7, 0x0563, 0x05d3, 0x0636, 0x0677,
+ 0x0695, 0x0679, 0x05f4, 0x0504, 0x03ea, 0x02ce,
+ 0x01c8, 0x00f8, 0x0077, 0x007c, 0x012e, 0x0242,
+ 0x0358, 0x0453, 0x0509, 0x0558, 0x0544, 0x04d2,
+ 0x0421, 0x0355, 0x0273, 0x0191, 0x00ca, 0x0044,
+ 0x0040, 0x00b1, 0x0148, 0x01fa, 0x02c7, 0x0371,
+ 0x03dd, 0x0422, 0x043d, 0x0414, 0x038e, 0x02a6,
+ 0x0184, 0x0060, 0xff41, 0xfe27, 0xfd51, 0xfcf7,
+ 0xfd0b, 0xfd82, 0xfe5b, 0xff5e, 0x004f, 0x011a,
+ 0x0192, 0x0189, 0x0113, 0x0059, 0xff68, 0xfe5b,
+ 0xfd7b, 0xfcf7, 0xfcd0, 0xfd03, 0xfd65, 0xfdb5,
+ 0xfdf0, 0xfe26, 0xfe25, 0xfdde, 0xfd87, 0xfd15,
+ 0xfc56, 0xfb5a, 0xfa60, 0xf9a0, 0xf946, 0xf965,
+ 0xf9f8, 0xfac7, 0xfb8d, 0xfc3e, 0xfccf, 0xfd17,
+ 0xfd21, 0xfcec, 0xfc55, 0xfb94, 0xfb06, 0xfac2,
+ 0xfac2, 0xfaeb, 0xfb1b, 0xfb6d, 0xfbee, 0xfc89,
+ 0xfd41, 0xfe05, 0xfea1, 0xff1c, 0xff8c, 0xffd7,
+ 0xfff3, 0xffe5, 0xffa3, 0xff40, 0xff04, 0xff23,
+ 0xff8c, 0x0000, 0x007c, 0x012c, 0x0203, 0x02cc,
+ 0x035f, 0x0399, 0x038a, 0x0375, 0x0355, 0x0322,
+ 0x030d, 0x0317, 0x0329, 0x035c, 0x03a0, 0x03ce,
+ 0x03ed, 0x0412, 0x0452, 0x049e, 0x04b6, 0x0489,
+ 0x041b, 0x035d, 0x0289, 0x01f8, 0x01ae, 0x0182,
+ 0x0174, 0x01a2, 0x021b, 0x02c2, 0x0379, 0x042a,
+ 0x04a2, 0x04a1, 0x040d, 0x02fb, 0x01a1, 0x0045,
+ 0xff38, 0xfe9d, 0xfe5d, 0xfe6e, 0xfec6, 0xff31,
+ 0xff8e, 0xffd4, 0xfffc, 0x0005, 0xffd5, 0xff5a,
+ 0xfec1, 0xfe3d, 0xfdea, 0xfdca, 0xfdae, 0xfd91,
+ 0xfd92, 0xfda6, 0xfdd5, 0xfe36, 0xfe8e, 0xfec1,
+ 0xfedb, 0xfece, 0xfec4, 0xfee6, 0xfee6, 0xfea7,
+ 0xfe5f, 0xfe0a, 0xfd95, 0xfd11, 0xfc75, 0xfbde,
+ 0xfb80, 0xfb4c, 0xfb32, 0xfb3a, 0xfb4c, 0xfb60,
+ 0xfb74, 0xfb62, 0xfb19, 0xfab9, 0xfa5d, 0xfa1a,
+ 0xf9e6, 0xf9b4, 0xf98a, 0xf982, 0xf9bc, 0xfa35,
+ 0xfac0, 0xfb4c, 0xfbbe, 0xfbd9, 0xfbb2, 0xfb83,
+ 0xfb37, 0xfabc, 0xfa43, 0xf9fe, 0xf9ff, 0xfa30,
+ 0xfa78, 0xfad3, 0xfb46, 0xfbd4, 0xfc70, 0xfcfe,
+ 0xfd6e, 0xfdba, 0xfdf4, 0xfe32, 0xfe66, 0xfe6f,
+ 0xfe2c, 0xfda3, 0xfd13, 0xfc98, 0xfc30, 0xfc0e,
+ 0xfc22, 0xfc2c, 0xfc46, 0xfc60, 0xfc4d, 0xfc55,
+ 0xfc82, 0xfc8c, 0xfc84, 0xfc73, 0xfc4d, 0xfc2f,
+ 0xfc17, 0xfc01, 0xfc09, 0xfc1a, 0xfc30, 0xfc6c,
+ 0xfcd0, 0xfd66, 0xfe26, 0xfedc, 0xff60, 0xff97,
+ 0xff88, 0xff64, 0xff33, 0xfeea, 0xfe91, 0xfe22,
+ 0xfd9d, 0xfd08, 0xfc5a, 0xfbb2, 0xfb4c, 0xfb3d,
+ 0xfb8e, 0xfc37, 0xfd0a, 0xfdc9, 0xfe60, 0xfecb,
+ 0xfed8, 0xfe7c, 0xfdf1, 0xfd49, 0xfcb1, 0xfc6a,
+ 0xfc52, 0xfc76, 0xfd17, 0xfdf4, 0xfed5, 0xffae,
+ 0x0035, 0x004c, 0xfffb, 0xff4f, 0xfeac, 0xfe31,
+ 0xfd97, 0xfd01, 0xfc97, 0xfc4c, 0xfc56, 0xfcc3,
+ 0xfd59, 0xfe12, 0xfed6, 0xff66, 0xffb5, 0xffe2,
+ 0xffe5, 0xffa2, 0xff25, 0xfe9f, 0xfe2c, 0xfdf7,
+ 0xfe17, 0xfe57, 0xfe93, 0xfed4, 0xff1b, 0xff7b,
+ 0x0001, 0x0097, 0x0119, 0x0166, 0x0187, 0x0196,
+ 0x017d, 0x012e, 0x00b3, 0xfffb, 0xff2c, 0xfe9b,
+ 0xfe57, 0xfe5a, 0xfe9f, 0xff1b, 0xffbe, 0x0057,
+ 0x00ce, 0x013e, 0x019e, 0x01df, 0x020e, 0x0204,
+ 0x01b5, 0x0161, 0x010f, 0x00bb, 0x0090, 0x007c,
+ 0x0072, 0x009b, 0x00c6, 0x00b5, 0x00a4, 0x00ae,
+ 0x00bd, 0x0103, 0x0181, 0x01e5, 0x021e, 0x0246,
+ 0x027a, 0x02ce, 0x0321, 0x035f, 0x0394, 0x03ab,
+ 0x03a7, 0x03ab, 0x03be, 0x03f9, 0x0461, 0x04cc,
+ 0x053f, 0x05c5, 0x0641, 0x0688, 0x066c, 0x0610,
+ 0x05cf, 0x05aa, 0x059d, 0x05c0, 0x05ed, 0x0607,
+ 0x060a, 0x05e3, 0x05bd, 0x0593, 0x0519, 0x0479,
+ 0x03ee, 0x0368, 0x0301, 0x02da, 0x02cf, 0x02b7,
+ 0x0294, 0x0284, 0x0271, 0x0233, 0x01dd, 0x0179,
+ 0x0108, 0x00ab, 0x0050, 0xffee, 0xff97, 0xff29,
+ 0xfec2, 0xfe99, 0xfe78, 0xfe52, 0xfe3b, 0xfdf7,
+ 0xfd91, 0xfd45, 0xfd09, 0xfcd7, 0xfcb1, 0xfc8a,
+ 0xfc46, 0xfbb6, 0xfb17, 0xfabf, 0xfa88, 0xfa69,
+ 0xfa7a, 0xfa7a, 0xfa56, 0xfa30, 0xf9ed, 0xf97e,
+ 0xf8f8, 0xf878, 0xf81b, 0xf7dd, 0xf7c4, 0xf7ed,
+ 0xf83e, 0xf88f, 0xf8d5, 0xf91e, 0xf984, 0xfa09,
+ 0xfab2, 0xfb65, 0xfbe6, 0xfc3b, 0xfc5e, 0xfc15,
+ 0xfb93, 0xfb35, 0xfb1f, 0xfb7b, 0xfc17, 0xfca8,
+ 0xfd47, 0xfddc, 0xfe40, 0xfe9a, 0xfed7, 0xfef7,
+ 0xff24, 0xff31, 0xff21, 0xff25, 0xff22, 0xff21,
+ 0xff1d, 0xfecb, 0xfe64, 0xfe4d, 0xfe82, 0xfefd,
+ 0xffa3, 0x0039, 0x00a4, 0x00df, 0x0118, 0x0158,
+ 0x0161, 0x0149, 0x014d, 0x0151, 0x0155, 0x0169,
+ 0x016d, 0x0177, 0x01a6, 0x01d9, 0x01f9, 0x0207,
+ 0x01ed, 0x0197, 0x0114, 0x009a, 0x0047, 0x003c,
+ 0x00a2, 0x0149, 0x01e2, 0x0278, 0x0304, 0x034f,
+ 0x034f, 0x0301, 0x0280, 0x0221, 0x0202, 0x01f0,
+ 0x01d1, 0x01a1, 0x0165, 0x0132, 0x010b, 0x00d7,
+ 0x00a5, 0x0090, 0x0085, 0x0092, 0x00e8, 0x016c,
+ 0x01dd, 0x023e, 0x0292, 0x02b1, 0x02a2, 0x0293,
+ 0x0274, 0x0216, 0x0191, 0x0126, 0x00ee, 0x00dd,
+ 0x00e0, 0x00e9, 0x00e9, 0x00df, 0x00ff, 0x0171,
+ 0x0202, 0x028c, 0x02ff, 0x031b, 0x02d3, 0x026a,
+ 0x01e8, 0x014b, 0x00c4, 0x006a, 0x005a, 0x00a1,
+ 0x0114, 0x01ab, 0x0269, 0x031d, 0x03a6, 0x03ef,
+ 0x03dd, 0x038b, 0x0324, 0x02c3, 0x029d, 0x02af,
+ 0x02cf, 0x02f9, 0x0325, 0x033b, 0x0353, 0x037f,
+ 0x03a8, 0x03c9, 0x03e2, 0x03d4, 0x038f, 0x0316,
+ 0x0269, 0x0197, 0x00c8, 0x002f, 0xfff8, 0x002b,
+ 0x00ae, 0x0150, 0x01ce, 0x01fd, 0x01f0, 0x01bc,
+ 0x016a, 0x011c, 0x00d3, 0x0079, 0x001b, 0xffcf,
+ 0xff98, 0xff66, 0xff25, 0xff04, 0xff19, 0xff2f,
+ 0xff51, 0xff8e, 0xffa3, 0xffa3, 0xffd5, 0x0009,
+ 0x0014, 0x0013, 0x0016, 0x0034, 0x007d, 0x00cd,
+ 0x0116, 0x014d, 0x012b, 0x0086, 0xffa2, 0xfece,
+ 0xfe24, 0xfdbe, 0xfdc1, 0xfe24, 0xfeb2, 0xff40,
+ 0xffbc, 0x002a, 0x008a, 0x00e7, 0x0142, 0x016d,
+ 0x0159, 0x0146, 0x013a, 0x011c, 0x011d, 0x0138,
+ 0x012c, 0x0117, 0x0126, 0x013e, 0x014b, 0x0140,
+ 0x010e, 0x00e7, 0x00e8, 0x00ee, 0x00fa, 0x011b,
+ 0x0124, 0x010d, 0x00eb, 0x0095, 0x0010, 0xffa7,
+ 0xff68, 0xff55, 0xff79, 0xffa5, 0xffb6, 0xffd1,
+ 0xfffe, 0x001b, 0x0039, 0x0075, 0x00a5, 0x0099,
+ 0x006b, 0x0018, 0xff7f, 0xfede, 0xfe79, 0xfe34,
+ 0xfe15, 0xfe26, 0xfe4b, 0xfe93, 0xfef3, 0xff4b,
+ 0xffa0, 0xffc4, 0xff9f, 0xff6d, 0xff40, 0xff0b,
+ 0xfec2, 0xfe33, 0xfd85, 0xfd17, 0xfcf9, 0xfd47,
+ 0xfdfa, 0xfeaf, 0xff48, 0xffaf, 0xffa4, 0xff4f,
+ 0xfee3, 0xfe62, 0xfe0e, 0xfe15, 0xfe59, 0xfebf,
+ 0xff1e, 0xff53, 0xff6b, 0xff6f, 0xff52, 0xff10,
+ 0xfec5, 0xfe9c, 0xfea6, 0xfeec, 0xff38, 0xff43,
+ 0xff38, 0xff49, 0xff5d, 0xff8a, 0xffd8, 0x0013,
+ 0x0043, 0x0067, 0x0055, 0x0019, 0xffe3, 0xffe5,
+ 0x002c, 0x008a, 0x00fa, 0x016a, 0x0197, 0x01a5,
+ 0x01a9, 0x016a, 0x010c, 0x00af, 0x0039, 0xffe2,
+ 0xffcd, 0xffe1, 0x0000, 0xffee, 0xffa7, 0xff4d,
+ 0xfeec, 0xfece, 0xff29, 0xffb8, 0x0057, 0x00fc,
+ 0x0179, 0x01d3, 0x020a, 0x0213, 0x01fe, 0x01d6,
+ 0x01b8, 0x019c, 0x014e, 0x0115, 0x012d, 0x0164,
+ 0x01c2, 0x024a, 0x02b2, 0x02e1, 0x02d3, 0x02a9,
+ 0x02bc, 0x030e, 0x0389, 0x0428, 0x04b1, 0x051b,
+ 0x0568, 0x0560, 0x0531, 0x051c, 0x04fd, 0x04dd,
+ 0x04c9, 0x04a7, 0x0490, 0x047a, 0x044b, 0x042a,
+ 0x0428, 0x044f, 0x04b2, 0x052c, 0x05a3, 0x05eb,
+ 0x05d5, 0x058f, 0x0523, 0x0462, 0x0396, 0x02f5,
+ 0x0268, 0x021e, 0x0232, 0x0276, 0x02e8, 0x0384,
+ 0x0410, 0x0460, 0x047d, 0x0489, 0x0482, 0x0450,
+ 0x03f0, 0x0354, 0x0289, 0x01ce, 0x012f, 0x00a4,
+ 0x003c, 0xffec, 0xffc8, 0xfffb, 0x0059, 0x00ae,
+ 0x00f4, 0x011e, 0x012c, 0x0133, 0x011f, 0x00d0,
+ 0x0060, 0xfffb, 0xff93, 0xff1c, 0xfecc, 0xfec5,
+ 0xfee0, 0xff00, 0xff1e, 0xff2b, 0xff19, 0xfee5,
+ 0xfeb3, 0xfe99, 0xfe79, 0xfe53, 0xfe24, 0xfdc4,
+ 0xfd63, 0xfd37, 0xfcfa, 0xfc8c, 0xfc22, 0xfbc5,
+ 0xfb73, 0xfb4d, 0xfb5a, 0xfb76, 0xfb98, 0xfbd7,
+ 0xfc2a, 0xfc61, 0xfc79, 0xfc8c, 0xfc9b, 0xfca1,
+ 0xfca8, 0xfccd, 0xfd1c, 0xfd77, 0xfdd7, 0xfe2a,
+ 0xfe47, 0xfe66, 0xfea8, 0xfec2, 0xfebf, 0xfeeb,
+ 0xff41, 0xffc6, 0x007a, 0x0123, 0x01b7, 0x0220,
+ 0x0247, 0x0279, 0x02c7, 0x0300, 0x0341, 0x0387,
+ 0x03ab, 0x03b9, 0x039f, 0x0347, 0x02f0, 0x02c9,
+ 0x02e1, 0x0340, 0x03ad, 0x0400, 0x0445, 0x0458,
+ 0x041f, 0x03ce, 0x0381, 0x030b, 0x0243, 0x0158,
+ 0x0095, 0x0003, 0xff88, 0xff36, 0xff1d, 0xff21,
+ 0xff39, 0xff63, 0xff93, 0xffbe, 0xffc7, 0xffa9,
+ 0xff88, 0xff62, 0xff0e, 0xfe9e, 0xfe22, 0xfd97,
+ 0xfd1f, 0xfcc7, 0xfc88, 0xfc94, 0xfced, 0xfd4b,
+ 0xfd9b, 0xfde0, 0xfe00, 0xfdf0, 0xfdab, 0xfd33,
+ 0xfcb8, 0xfc59, 0xfc08, 0xfbc9, 0xfb9a, 0xfb73,
+ 0xfb69, 0xfb7d, 0xfb8d, 0xfb8f, 0xfb78, 0xfb39,
+ 0xfb04, 0xfafa, 0xfae7, 0xfad6, 0xfafb, 0xfb38,
+ 0xfb74, 0xfbb9, 0xfbd6, 0xfbb2, 0xfb7b, 0xfb25,
+ 0xfaae, 0xfa4c, 0xf9f9, 0xf99c, 0xf95b, 0xf954,
+ 0xf970, 0xf9ab, 0xfa1f, 0xfac4, 0xfb5e, 0xfbe5,
+ 0xfc82, 0xfd11, 0xfd5d, 0xfd79, 0xfd7f, 0xfd6d,
+ 0xfd56, 0xfd4d, 0xfd4c, 0xfd4d, 0xfd61, 0xfda6,
+ 0xfe00, 0xfe23, 0xfe14, 0xfe0e, 0xfe1f, 0xfe46,
+ 0xfe82, 0xfecd, 0xff31, 0xffa1, 0x0009, 0x0078,
+ 0x00d5, 0x00f1, 0x00e6, 0x00b7, 0x0049, 0xffda,
+ 0xffaa, 0xffc0, 0x0016, 0x0083, 0x00d8, 0x0119,
+ 0x0131, 0x0109, 0x00c0, 0x006a, 0x002c, 0x0033,
+ 0x006e, 0x00c9, 0x014a, 0x01ce, 0x022d, 0x025d,
+ 0x0254, 0x0222, 0x01f0, 0x01cc, 0x01a1, 0x0173,
+ 0x0159, 0x0145, 0x0129, 0x012a, 0x0145, 0x0161,
+ 0x0195, 0x01e8, 0x025d, 0x0303, 0x03b2, 0x0444,
+ 0x0497, 0x047d, 0x041e, 0x03c5, 0x035f, 0x02e9,
+ 0x0281, 0x0212, 0x01ab, 0x016d, 0x014d, 0x0140,
+ 0x013d, 0x011b, 0x00d7, 0x0086, 0x0022, 0xffa3,
+ 0xff48, 0xff57, 0xffb0, 0x0021, 0x00ae, 0x0133,
+ 0x0180, 0x0189, 0x0147, 0x00e0, 0x0070, 0xffcd,
+ 0xfef2, 0xfe23, 0xfd98, 0xfd6f, 0xfd6b, 0xfd43,
+ 0xfd1f, 0xfd01, 0xfcc8, 0xfcc5, 0xfd1e, 0xfd97,
+ 0xfe17, 0xfe6c, 0xfe6a, 0xfe4b, 0xfe25, 0xfdeb,
+ 0xfddb, 0xfe09, 0xfe2b, 0xfe22, 0xfe0f, 0xfe08,
+ 0xfe13, 0xfe2b, 0xfe3b, 0xfe45, 0xfe71, 0xfebf,
+ 0xfefa, 0xff07, 0xfef1, 0xfec6, 0xfe94, 0xfe5c,
+ 0xfe12, 0xfdb9, 0xfd6c, 0xfd3c, 0xfd41, 0xfd85,
+ 0xfdec, 0xfe59, 0xfede, 0xff6a, 0xffe6, 0x0078,
+ 0x0103, 0x0129, 0x00fa, 0x00b7, 0x0072, 0x0053,
+ 0x0076, 0x00d9, 0x0179, 0x0229, 0x02be, 0x031e,
+ 0x032a, 0x0306, 0x02e4, 0x02a4, 0x0249, 0x020a,
+ 0x01ef, 0x01f3, 0x0215, 0x0250, 0x02b9, 0x0345,
+ 0x03d2, 0x0471, 0x0520, 0x05a5, 0x05e2, 0x05f0,
+ 0x05f9, 0x0611, 0x0619, 0x05fa, 0x05d8, 0x05dc,
+ 0x05fe, 0x0611, 0x05fe, 0x05d8, 0x05ab, 0x0563,
+ 0x04fd, 0x048a, 0x0400, 0x035e, 0x02c1, 0x022a,
+ 0x01a9, 0x0161, 0x012c, 0x00e1, 0x0096, 0x002b,
+ 0xff87, 0xfef1, 0xfe7a, 0xfe00, 0xfdaa, 0xfd70,
+ 0xfd1f, 0xfcd1, 0xfc96, 0xfc41, 0xfbce, 0xfb58,
+ 0xfae1, 0xfa7f, 0xfa41, 0xfa0a, 0xf9c7, 0xf986,
+ 0xf940, 0xf8ef, 0xf894, 0xf81d, 0xf7b4, 0xf788,
+ 0xf777, 0xf787, 0xf7d9, 0xf83c, 0xf89d, 0xf90a,
+ 0xf96e, 0xf9ec, 0xfa7e, 0xfad1, 0xfb07, 0xfb30,
+ 0xfb02, 0xfaad, 0xfa83, 0xfa7d, 0xfa85, 0xfa5e,
+ 0xf9f9, 0xf9b4, 0xf992, 0xf95f, 0xf940, 0xf94e,
+ 0xf999, 0xfa37, 0xfaed, 0xfb93, 0xfc32, 0xfc9a,
+ 0xfca7, 0xfc91, 0xfc8d, 0xfca2, 0xfcb8, 0xfcb2,
+ 0xfc9a, 0xfca6, 0xfcec, 0xfd47, 0xfda0, 0xfde2,
+ 0xfdf3, 0xfde2, 0xfdca, 0xfdac, 0xfd95, 0xfd89,
+ 0xfd7a, 0xfd67, 0xfd43, 0xfd27, 0xfd40, 0xfd67,
+ 0xfd80, 0xfda4, 0xfdc4, 0xfdf2, 0xfe3a, 0xfe6a,
+ 0xfe92, 0xfed8, 0xff2b, 0xffa6, 0x001a, 0x0044,
+ 0x0079, 0x00e6, 0x0154, 0x01de, 0x027c, 0x02f5,
+ 0x034c, 0x0361, 0x030c, 0x0285, 0x01f2, 0x015d,
+ 0x00ed, 0x00ad, 0x0089, 0x006f, 0x0052, 0x002b,
+ 0xfff4, 0xffa1, 0xff3f, 0xfeeb, 0xfea4, 0xfe65,
+ 0xfe48, 0xfe52, 0xfe51, 0xfe53, 0xfe7b, 0xfea2,
+ 0xfec9, 0xff05, 0xff28, 0xff18, 0xfed5, 0xfe65,
+ 0xfe0b, 0xfdd5, 0xfd8f, 0xfd50, 0xfd2c, 0xfd23,
+ 0xfd55, 0xfda4, 0xfdc7, 0xfdc9, 0xfdca, 0xfdd0,
+ 0xfde1, 0xfe24, 0xfebd, 0xff7e, 0x000d, 0x005b,
+ 0x0084, 0x00a8, 0x00df, 0x010e, 0x011d, 0x011f,
+ 0x012a, 0x013c, 0x014f, 0x0166, 0x0171, 0x014b,
+ 0x0103, 0x00c3, 0x00ac, 0x00d5, 0x0120, 0x0177,
+ 0x01e2, 0x0212, 0x01e7, 0x01b8, 0x0174, 0x0117,
+ 0x0104, 0x0129, 0x015b, 0x01a9, 0x01cd, 0x01b4,
+ 0x017e, 0x00fb, 0x0046, 0xffa9, 0xff2a, 0xfefb,
+ 0xff1d, 0xff48, 0xff9b, 0x0009, 0x003c, 0x0040,
+ 0x002a, 0xfff1, 0xffa8, 0xff52, 0xff1a, 0xff2c,
+ 0xff46, 0xff5a, 0xffa2, 0x000b, 0x00a1, 0x0177,
+ 0x023e, 0x02be, 0x0304, 0x0316, 0x0319, 0x0331,
+ 0x0342, 0x0331, 0x031d, 0x0322, 0x0335, 0x0351,
+ 0x0374, 0x0394, 0x03af, 0x03cd, 0x03f7, 0x042e,
+ 0x044f, 0x0442, 0x041d, 0x03e5, 0x03a2, 0x0385,
+ 0x038f, 0x0391, 0x036c, 0x032b, 0x02ee, 0x02af,
+ 0x0267, 0x0236, 0x021d, 0x01f9, 0x01cc, 0x01a8,
+ 0x019a, 0x019f, 0x0190, 0x0158, 0x00f5, 0x006c,
+ 0xffdc, 0xff3d, 0xfe8a, 0xfe08, 0xfdce, 0xfdbf,
+ 0xfdd8, 0xfde8, 0xfdca, 0xfdae, 0xfd99, 0xfd70,
+ 0xfd4e, 0xfd55, 0xfd6a, 0xfd4f, 0xfcfc, 0xfca1,
+ 0xfc43, 0xfbe8, 0xfbac, 0xfb77, 0xfb69, 0xfba8,
+ 0xfbcf, 0xfbad, 0xfb70, 0xfb10, 0xfab3, 0xfaa8,
+ 0xfad0, 0xfb1c, 0xfb7a, 0xfb8c, 0xfb67, 0xfb53,
+ 0xfb1d, 0xfac2, 0xfa92, 0xfa72, 0xfa33, 0xf9ed,
+ 0xf9af, 0xf973, 0xf94c, 0xf953, 0xf994, 0xfa10,
+ 0xfaa4, 0xfb17, 0xfb53, 0xfb6a, 0xfb71, 0xfb78,
+ 0xfb7d, 0xfb78, 0xfb80, 0xfbad, 0xfbfc, 0xfc5f,
+ 0xfcd7, 0xfd4d, 0xfd90, 0xfda0, 0xfdb7, 0xfdf1,
+ 0xfe75, 0xff4a, 0x000d, 0x008a, 0x00dd, 0x00da,
+ 0x007b, 0x0027, 0xffeb, 0xffc1, 0xffea, 0x004a,
+ 0x00af, 0x0115, 0x0143, 0x012a, 0x0111, 0x00fb,
+ 0x00f1, 0x0130, 0x0196, 0x01e1, 0x0213, 0x0207,
+ 0x01ac, 0x014d, 0x010b, 0x00c4, 0x0074, 0x0018,
+ 0xffb6, 0xff73, 0xff4e, 0xff29, 0xff14, 0xff2c,
+ 0xff75, 0xffc8, 0xfff0, 0xfff7, 0xffea, 0xffa8,
+ 0xff56, 0xff39, 0xff43, 0xff5b, 0xff5d, 0xff14,
+ 0xfec5, 0xfecf, 0xff14, 0xff68, 0xffd2, 0x003a,
+ 0x009a, 0x010f, 0x018d, 0x01e8, 0x0222, 0x0258,
+ 0x0288, 0x0298, 0x0281, 0x025d, 0x0248, 0x023d,
+ 0x021a, 0x01e3, 0x01cb, 0x01ea, 0x0235, 0x02b3,
+ 0x0351, 0x03d2, 0x040c, 0x03fc, 0x03d1, 0x03b8,
+ 0x038e, 0x0344, 0x0320, 0x0338, 0x034e, 0x033b,
+ 0x02ea, 0x0269, 0x01f8, 0x01b7, 0x0198, 0x0194,
+ 0x01a9, 0x01f0, 0x0273, 0x02f9, 0x0364, 0x03be,
+ 0x03de, 0x03b1, 0x036b, 0x033f, 0x0342, 0x0361,
+ 0x0361, 0x032d, 0x02e8, 0x02a5, 0x0254, 0x01eb,
+ 0x018c, 0x014b, 0x010f, 0x00d2, 0x00ab, 0x00a8,
+ 0x00c0, 0x00d7, 0x00e5, 0x00eb, 0x00c3, 0x0054,
+ 0xffb4, 0xff11, 0xfeb4, 0xfeb4, 0xfee8, 0xff48,
+ 0xffc7, 0x0030, 0x0066, 0x004d, 0xfff3, 0xff93,
+ 0xff32, 0xfed7, 0xfeb4, 0xfea6, 0xfe7f, 0xfe4f,
+ 0xfdfd, 0xfd8d, 0xfd3c, 0xfcfc, 0xfcb5, 0xfc87,
+ 0xfc77, 0xfc8a, 0xfcd5, 0xfd41, 0xfdc2, 0xfe63,
+ 0xfef0, 0xff1c, 0xfeef, 0xfeb3, 0xfe8d, 0xfe81,
+ 0xfe97, 0xfebd, 0xfed8, 0xfeea, 0xfefa, 0xff01,
+ 0xff09, 0xff09, 0xfee8, 0xfebe, 0xfebe, 0xfedd,
+ 0xff08, 0xff61, 0xffdc, 0x0042, 0x0092, 0x00cd,
+ 0x00f3, 0x0121, 0x013e, 0x015a, 0x01c9, 0x0252,
+ 0x0299, 0x02bd, 0x02ac, 0x023a, 0x01a0, 0x0101,
+ 0x0071, 0x001d, 0xffe9, 0xffc1, 0xffca, 0xffe0,
+ 0xffe7, 0x000c, 0x004e, 0x0075, 0x005c, 0x0015,
+ 0xffcd, 0xff84, 0xff45, 0xff33, 0xff37, 0xff3f,
+ 0xff59, 0xff72, 0xff70, 0xff37, 0xfec6, 0xfe4e,
+ 0xfdf0, 0xfdc6, 0xfe05, 0xfe88, 0xfefc, 0xff5c,
+ 0xff9f, 0xffa9, 0xff7c, 0xff12, 0xfe91, 0xfe39,
+ 0xfdfb, 0xfddb, 0xfe05, 0xfe56, 0xfe9e, 0xfece,
+ 0xfec0, 0xfe7c, 0xfe2d, 0xfddb, 0xfdb2, 0xfde4,
+ 0xfe4b, 0xfed3, 0xff77, 0xfffa, 0x004c, 0x007f,
+ 0x006b, 0x002a, 0xffef, 0xff8c, 0xff17, 0xfee1,
+ 0xfece, 0xfeca, 0xfef5, 0xff29, 0xff2c, 0xff0e,
+ 0xfef8, 0xfefe, 0xff10, 0xff25, 0xff44, 0xff55,
+ 0xff51, 0xff4a, 0xff3b, 0xff33, 0xff3f, 0xff40,
+ 0xff2a, 0xfef6, 0xfeb0, 0xfe90, 0xfe93, 0xfe9d,
+ 0xfeb5, 0xfeb3, 0xfe93, 0xfea0, 0xfecb, 0xfef8,
+ 0xff4c, 0xffbb, 0x0035, 0x00c7, 0x0144, 0x018d,
+ 0x019b, 0x016a, 0x011d, 0x00ba, 0x0051, 0x002f,
+ 0x003f, 0x0041, 0x0063, 0x0097, 0x0096, 0x007f,
+ 0x0076, 0x0075, 0x0090, 0x00d0, 0x011e, 0x0156,
+ 0x0170, 0x0195, 0x01bf, 0x01c7, 0x01b5, 0x0178,
+ 0x010b, 0x00c2, 0x00b5, 0x00c0, 0x00f7, 0x0138,
+ 0x0166, 0x01b2, 0x0204, 0x0236, 0x028a, 0x02fc,
+ 0x035b, 0x03b5, 0x03e0, 0x03bc, 0x038d, 0x0360,
+ 0x033b, 0x035a, 0x03af, 0x0412, 0x047f, 0x04c6,
+ 0x04df, 0x04df, 0x0498, 0x040c, 0x0373, 0x02cf,
+ 0x0233, 0x01d2, 0x01b5, 0x01d7, 0x0231, 0x02a1,
+ 0x0305, 0x0340, 0x033c, 0x0303, 0x02b3, 0x025e,
+ 0x020c, 0x01cd, 0x01b1, 0x019b, 0x0171, 0x0137,
+ 0x00ec, 0x00a5, 0x00a4, 0x00ec, 0x0122, 0x010c,
+ 0x00c4, 0x0053, 0xffb2, 0xff09, 0xfe73, 0xfdfa,
+ 0xfdd2, 0xfddb, 0xfdd2, 0xfddf, 0xfe0d, 0xfe41,
+ 0xfe9d, 0xfef3, 0xfeee, 0xfebf, 0xfe8b, 0xfe4f,
+ 0xfe36, 0xfe2e, 0xfe10, 0xfe07, 0xfe28, 0xfe4d,
+ 0xfe52, 0xfe3e, 0xfe4d, 0xfe8d, 0xfed7, 0xff1d,
+ 0xff42, 0xff23, 0xfeda, 0xfe78, 0xfe0d, 0xfde0,
+ 0xfe0e, 0xfe49, 0xfe5d, 0xfe7c, 0xfec1, 0xfefc,
+ 0xff27, 0xff3f, 0xff21, 0xfeff, 0xfeff, 0xfef9,
+ 0xfefa, 0xff0d, 0xfef8, 0xfee1, 0xfef3, 0xfee4,
+ 0xfe92, 0xfe2d, 0xfdef, 0xfe13, 0xfe98, 0xff46,
+ 0xfff0, 0x0089, 0x012d, 0x01d8, 0x0267, 0x02de,
+ 0x034c, 0x03b0, 0x0404, 0x0409, 0x03a0, 0x030e,
+ 0x0280, 0x0203, 0x01c6, 0x01e3, 0x024a, 0x02d8,
+ 0x0354, 0x0397, 0x039e, 0x0380, 0x0352, 0x0317,
+ 0x02bd, 0x023b, 0x01a6, 0x010e, 0x0071, 0xffdc,
+ 0xff62, 0xff24, 0xff57, 0xffdc, 0x005a, 0x00d9,
+ 0x014f, 0x0161, 0x0108, 0x006e, 0xff99, 0xfec6,
+ 0xfe47, 0xfe0d, 0xfdd5, 0xfd8e, 0xfd52, 0xfd33,
+ 0xfd3b, 0xfd65, 0xfd79, 0xfd7b, 0xfd92, 0xfd85,
+ 0xfd40, 0xfcfb, 0xfc9e, 0xfc27, 0xfbc6, 0xfb71,
+ 0xfb45, 0xfb5a, 0xfb5d, 0xfb3c, 0xfb27, 0xfb1d,
+ 0xfb32, 0xfb56, 0xfb66, 0xfb76, 0xfb66, 0xfb36,
+ 0xfb46, 0xfb76, 0xfb67, 0xfb21, 0xfaa1, 0xf9f2,
+ 0xf947, 0xf89d, 0xf815, 0xf807, 0xf861, 0xf8c8,
+ 0xf926, 0xf99f, 0xfa36, 0xfac0, 0xfb30, 0xfb81,
+ 0xfb8c, 0xfb5c, 0xfb21, 0xfadd, 0xfaae, 0xfabf,
+ 0xfb03, 0xfb56, 0xfb9c, 0xfbc2, 0xfbcf, 0xfbcf,
+ 0xfbdd, 0xfc0d, 0xfc4a, 0xfc8f, 0xfcec, 0xfd44,
+ 0xfd80, 0xfdcc, 0xfe46, 0xfecc, 0xff2c, 0xff67,
+ 0xff98, 0xffb6, 0xffa4, 0xff74, 0xff50, 0xff44,
+ 0xff54, 0xff9a, 0x000f, 0x0084, 0x00d2, 0x00f6,
+ 0x0113, 0x0144, 0x017f, 0x01c3, 0x0203, 0x021b,
+ 0x0219, 0x0217, 0x020f, 0x0210, 0x0218, 0x0204,
+ 0x01e1, 0x01ca, 0x01a6, 0x0163, 0x0132, 0x0142,
+ 0x0176, 0x01a1, 0x01cd, 0x01f2, 0x01fa, 0x01f4,
+ 0x01ed, 0x01f9, 0x023b, 0x0294, 0x02d0, 0x02e4,
+ 0x02bf, 0x0281, 0x025b, 0x021d, 0x01b0, 0x015c,
+ 0x0147, 0x015f, 0x018b, 0x01af, 0x01b5, 0x0191,
+ 0x0154, 0x0125, 0x0107, 0x0103, 0x0117, 0x0121,
+ 0x011d, 0x0105, 0x00c0, 0x0078, 0x0067, 0x0083,
+ 0x00c0, 0x0103, 0x0129, 0x0135, 0x010f, 0x00aa,
+ 0x0032, 0xffbb, 0xff51, 0xff06, 0xfeb5, 0xfe56,
+ 0xfe16, 0xfdf2, 0xfdf5, 0xfe31, 0xfe5a, 0xfe34,
+ 0xfdda, 0xfd6e, 0xfd16, 0xfcee, 0xfcf6, 0xfd39,
+ 0xfd9d, 0xfe04, 0xfe74, 0xfecf, 0xfefa, 0xff0c,
+ 0xfef8, 0xfebc, 0xfe92, 0xfe90, 0xfeb4, 0xfef2,
+ 0xff1d, 0xff41, 0xff6f, 0xff64, 0xff21, 0xfefc,
+ 0xff1a, 0xff71, 0xffe8, 0x0072, 0x0105, 0x015a,
+ 0x0148, 0x0113, 0x00ea, 0x00c6, 0x00ab, 0x009b,
+ 0x00ad, 0x00ed, 0x014a, 0x01c7, 0x0247, 0x02a6,
+ 0x02fc, 0x0339, 0x0336, 0x031c, 0x031f, 0x033d,
+ 0x0344, 0x030d, 0x02d6, 0x02e0, 0x0319, 0x035e,
+ 0x036b, 0x031d, 0x02c6, 0x02a6, 0x02bd, 0x0313,
+ 0x0389, 0x03fa, 0x0454, 0x0479, 0x0486, 0x0487,
+ 0x044d, 0x040f, 0x040f, 0x0429, 0x045e, 0x04a5,
+ 0x04bf, 0x04ab, 0x046b, 0x03df, 0x0332, 0x02a5,
+ 0x023c, 0x01e2, 0x01a7, 0x01b2, 0x01f4, 0x0234,
+ 0x0251, 0x0236, 0x01e3, 0x018a, 0x0129, 0x00aa,
+ 0x0033, 0xffcf, 0xff67, 0xff26, 0xff38, 0xff6d,
+ 0xff7b, 0xff4c, 0xfee8, 0xfe56, 0xfdb0, 0xfd14,
+ 0xfc96, 0xfc49, 0xfc1a, 0xfbe6, 0xfbb9, 0xfb96,
+ 0xfb53, 0xfaed, 0xfa92, 0xfa60, 0xfa4e, 0xfa54,
+ 0xfa87, 0xfad2, 0xfaf8, 0xfb0b, 0xfb3d, 0xfb5d,
+ 0xfb34, 0xfafd, 0xfaf0, 0xfaef, 0xfaf6, 0xfb1b,
+ 0xfb41, 0xfb53, 0xfb4f, 0xfb20, 0xfae7, 0xfadc,
+ 0xfaf1, 0xfb19, 0xfb75, 0xfbf5, 0xfc5e, 0xfc9d,
+ 0xfce1, 0xfd50, 0xfdc0, 0xfe0f, 0xfe49, 0xfe55,
+ 0xfe3f, 0xfe50, 0xfe72, 0xfe78, 0xfe82, 0xfea3,
+ 0xfeca, 0xff03, 0xff5d, 0xffd2, 0x0048, 0x00a2,
+ 0x00be, 0x0093, 0x0061, 0x0060, 0x0071, 0x006c,
+ 0x004b, 0x0013, 0xffe7, 0xffcb, 0xff99, 0xff4d,
+ 0xff0b, 0xfefa, 0xff1b, 0xff38, 0xff2f, 0xff0f,
+ 0xfeef, 0xfee3, 0xfef3, 0xff2a, 0xff95, 0x0016,
+ 0x0087, 0x00d7, 0x00fe, 0x010e, 0x00fb, 0x00b8,
+ 0x008a, 0x009a, 0x00cf, 0x0127, 0x0171, 0x0196,
+ 0x01d4, 0x020f, 0x01f3, 0x0199, 0x011f, 0x0082,
+ 0xfff2, 0xff78, 0xfeff, 0xfea1, 0xfe8d, 0xfee5,
+ 0xffa3, 0x007f, 0x0105, 0x00fe, 0x009b, 0x000c,
+ 0xff6a, 0xfef3, 0xfec0, 0xfebc, 0xfef5, 0xff50,
+ 0xffa9, 0x0003, 0x0013, 0xffac, 0xff08, 0xfe62,
+ 0xfe07, 0xfe11, 0xfe28, 0xfe38, 0xfe5c, 0xfe83,
+ 0xfec8, 0xff03, 0xfee9, 0xfebc, 0xfeb1, 0xfeb1,
+ 0xfec7, 0xfed4, 0xfec2, 0xfebb, 0xfeaa, 0xfe8b,
+ 0xfe8a, 0xfe8d, 0xfe87, 0xfe88, 0xfe7a, 0xfe78,
+ 0xfeb2, 0xff13, 0xff86, 0xffe9, 0x001d, 0x0045,
+ 0x0071, 0x0089, 0x007d, 0x005e, 0x0066, 0x00a1,
+ 0x00cf, 0x00cd, 0x00ac, 0x0092, 0x0090, 0x006c,
+ 0x0020, 0xffea, 0xffd2, 0xffdf, 0x003b, 0x00b7,
+ 0x0111, 0x014b, 0x015f, 0x0148, 0x0125, 0x00f8,
+ 0x00b5, 0x0064, 0xfffa, 0xff7b, 0xff1c, 0xfef6,
+ 0xfefe, 0xff33, 0xffa0, 0x0024, 0x0082, 0x00a8,
+ 0x00a6, 0x008e, 0x008c, 0x00a4, 0x0092, 0x0055,
+ 0x0034, 0x004a, 0x0094, 0x00ee, 0x012e, 0x016a,
+ 0x0196, 0x018a, 0x016b, 0x0145, 0x00ed, 0x0081,
+ 0xffff, 0xff44, 0xfea1, 0xfe4a, 0xfe21, 0xfe3b,
+ 0xfe83, 0xfea7, 0xfeb5, 0xfedd, 0xff15, 0xff47,
+ 0xff78, 0xffb2, 0xffcc, 0xff9d, 0xff40, 0xfed5,
+ 0xfe8a, 0xfe88, 0xfe8c, 0xfe5d, 0xfe14, 0xfdc5,
+ 0xfda1, 0xfdc0, 0xfde6, 0xfe0f, 0xfe30, 0xfe0a,
+ 0xfdc2, 0xfd8b, 0xfd46, 0xfcfd, 0xfca4, 0xfc27,
+ 0xfbd7, 0xfbd9, 0xfc14, 0xfc89, 0xfcf3, 0xfd09,
+ 0xfd03, 0xfd22, 0xfd5d, 0xfd81, 0xfd5a, 0xfd01,
+ 0xfc9c, 0xfc33, 0xfbe4, 0xfbc3, 0xfbc5, 0xfbf9,
+ 0xfc6a, 0xfd06, 0xfdac, 0xfe27, 0xfe60, 0xfe5b,
+ 0xfe14, 0xfdab, 0xfd49, 0xfcf3, 0xfcb1, 0xfc84,
+ 0xfc75, 0xfc95, 0xfcce, 0xfd09, 0xfd60, 0xfdb8,
+ 0xfe01, 0xfe67, 0xfeba, 0xfebd, 0xfe9c, 0xfe58,
+ 0xfdd9, 0xfd6c, 0xfd27, 0xfcd0, 0xfc79, 0xfc4c,
+ 0xfc3a, 0xfc2f, 0xfc3a, 0xfc70, 0xfca3, 0xfc9c,
+ 0xfc80, 0xfc75, 0xfc67, 0xfc6a, 0xfc8d, 0xfcb1,
+ 0xfced, 0xfd5f, 0xfdd7, 0xfe1e, 0xfe54, 0xfea0,
+ 0xfede, 0xfeec, 0xfee7, 0xfed7, 0xfeb7, 0xfea8,
+ 0xfeb9, 0xfecd, 0xfecc, 0xfec4, 0xfec9, 0xfeb4,
+ 0xfe62, 0xfe02, 0xfda6, 0xfd4b, 0xfd05, 0xfcad,
+ 0xfc4c, 0xfc3c, 0xfc53, 0xfc6c, 0xfcc7, 0xfd43,
+ 0xfdb7, 0xfe37, 0xfe82, 0xfe86, 0xfe80, 0xfe67,
+ 0xfe50, 0xfe65, 0xfe8a, 0xfec4, 0xff07, 0xff1a,
+ 0xff10, 0xfefc, 0xfed8, 0xfec8, 0xfebb, 0xfe95,
+ 0xfe7f, 0xfe84, 0xfe9a, 0xfecf, 0xff0d, 0xff46,
+ 0xff89, 0xffcb, 0x0002, 0x0037, 0x0063, 0x00a1,
+ 0x010e, 0x017b, 0x01a7, 0x0196, 0x0164, 0x0128,
+ 0x0108, 0x0109, 0x0120, 0x0161, 0x01b0, 0x01ea,
+ 0x0239, 0x0285, 0x028e, 0x026b, 0x020a, 0x016b,
+ 0x0106, 0x00e9, 0x00d5, 0x00ed, 0x0120, 0x0145,
+ 0x016a, 0x015c, 0x00fe, 0x0091, 0x0018, 0xffa3,
+ 0xff7e, 0xff9d, 0xffc8, 0x000e, 0x0073, 0x00db,
+ 0x0135, 0x0177, 0x0196, 0x0176, 0x00f4, 0x0044,
+ 0xffbf, 0xff76, 0xff66, 0xff8a, 0xff97, 0xff71,
+ 0xff66, 0xff6d, 0xff4a, 0xff3f, 0xff82, 0xfff2,
+ 0x0070, 0x00e7, 0x0137, 0x0141, 0x00fd, 0x00ad,
+ 0x0074, 0x002e, 0xfff6, 0xffd3, 0xff9c, 0xff65,
+ 0xff27, 0xfed1, 0xfea8, 0xfea6, 0xfe79, 0xfe30,
+ 0xfde6, 0xfda3, 0xfd8c, 0xfda2, 0xfdcd, 0xfdf7,
+ 0xfdec, 0xfdad, 0xfd72, 0xfd42, 0xfcfc, 0xfc92,
+ 0xfc28, 0xfc0c, 0xfc45, 0xfc8f, 0xfcce, 0xfd0a,
+ 0xfd21, 0xfcfe, 0xfccb, 0xfc87, 0xfc03, 0xfb71,
+ 0xfb45, 0xfb95, 0xfc36, 0xfcf6, 0xfdaa, 0xfe2e,
+ 0xfe49, 0xfe0b, 0xfdc9, 0xfd97, 0xfd71, 0xfd7d,
+ 0xfdb2, 0xfdfd, 0xfe5f, 0xfead, 0xfee5, 0xff19,
+ 0xff49, 0xffa9, 0x0048, 0x00e5, 0x0170, 0x01f3,
+ 0x024d, 0x028f, 0x02d6, 0x0322, 0x0357, 0x0347,
+ 0x030b, 0x02df, 0x02b5, 0x0270, 0x0211, 0x01ac,
+ 0x017b, 0x0163, 0x0120, 0x00ec, 0x00e5, 0x00c5,
+ 0x00a4, 0x00a4, 0x009e, 0x00b5, 0x00ff, 0x012e,
+ 0x0133, 0x0120, 0x00d2, 0x0045, 0xff94, 0xfee4,
+ 0xfe6e, 0xfe31, 0xfe1e, 0xfe4e, 0xfe97, 0xfeac,
+ 0xfea5, 0xfe99, 0xfe69, 0xfe22, 0xfdf0, 0xfdec,
+ 0xfdf9, 0xfde4, 0xfdb2, 0xfd81, 0xfd54, 0xfd47,
+ 0xfd6e, 0xfd9d, 0xfdc0, 0xfddb, 0xfde7, 0xfdec,
+ 0xfdde, 0xfdb2, 0xfd9d, 0xfdc8, 0xfe1d, 0xfe7f,
+ 0xfecc, 0xfefd, 0xff28, 0xff39, 0xff14, 0xfeed,
+ 0xfef0, 0xfefd, 0xff0a, 0xff11, 0xfee0, 0xfe7b,
+ 0xfe02, 0xfd6c, 0xfce8, 0xfcc3, 0xfcd8, 0xfd02,
+ 0xfd4a, 0xfd88, 0xfda6, 0xfdaa, 0xfd7e, 0xfd47,
+ 0xfd33, 0xfd37, 0xfd57, 0xfd7e, 0xfd7a, 0xfd6c,
+ 0xfd57, 0xfd09, 0xfcb1, 0xfc84, 0xfc83, 0xfcc4,
+ 0xfd2d, 0xfd7e, 0xfdaf, 0xfdc0, 0xfda4, 0xfd7a,
+ 0xfd75, 0xfdb7, 0xfe31, 0xfec5, 0xff6b, 0x0002,
+ 0x007f, 0x00fd, 0x0158, 0x0170, 0x0171, 0x0170,
+ 0x016a, 0x016b, 0x015a, 0x0148, 0x0163, 0x0188,
+ 0x01a2, 0x01d6, 0x020c, 0x021e, 0x0216, 0x01e4,
+ 0x0191, 0x014d, 0x0124, 0x0126, 0x014c, 0x015d,
+ 0x0158, 0x016b, 0x0197, 0x01d5, 0x020e, 0x0221,
+ 0x0234, 0x027b, 0x02de, 0x031e, 0x0313, 0x02cc,
+ 0x0269, 0x01f1, 0x017f, 0x012b, 0x00fd, 0x011b,
+ 0x0176, 0x01c3, 0x020a, 0x0257, 0x026d, 0x025b,
+ 0x0253, 0x0235, 0x0208, 0x0212, 0x0255, 0x02a6,
+ 0x0306, 0x037d, 0x03d7, 0x040a, 0x0439, 0x0445,
+ 0x041c, 0x03ee, 0x03a4, 0x032e, 0x02d0, 0x028d,
+ 0x0253, 0x0240, 0x0235, 0x0219, 0x0210, 0x01f2,
+ 0x01b3, 0x0193, 0x0181, 0x0147, 0x0108, 0x00de,
+ 0x00aa, 0x005c, 0x0000, 0xffab, 0xff62, 0xff14,
+ 0xfec4, 0xfe78, 0xfe46, 0xfe4d, 0xfe85, 0xfec5,
+ 0xfeee, 0xfeea, 0xfec1, 0xfe9f, 0xfea5, 0xfebe,
+ 0xfec9, 0xfecc, 0xfedc, 0xfef1, 0xfef4, 0xff03,
+ 0xff23, 0xff20, 0xff15, 0xff50, 0xffc1, 0x003a,
+ 0x00b3, 0x0107, 0x0124, 0x012a, 0x013d, 0x017f,
+ 0x01de, 0x020d, 0x0217, 0x022f, 0x0249, 0x0258,
+ 0x0269, 0x026d, 0x025f, 0x0265, 0x02a3, 0x02e2,
+ 0x02ea, 0x02e1, 0x02e3, 0x02e3, 0x0303, 0x0337,
+ 0x034c, 0x035b, 0x0369, 0x037f, 0x03c9, 0x0429,
+ 0x0480, 0x04dc, 0x050e, 0x0512, 0x0514, 0x0514,
+ 0x052c, 0x0553, 0x0556, 0x0561, 0x057e, 0x057b,
+ 0x056e, 0x053e, 0x04dc, 0x04a8, 0x04b0, 0x04a5,
+ 0x0486, 0x044a, 0x03f2, 0x03ad, 0x036e, 0x032b,
+ 0x030b, 0x02f3, 0x02ad, 0x0263, 0x025b, 0x0279,
+ 0x026f, 0x0229, 0x01b7, 0x012b, 0x00d3, 0x00e5,
+ 0x0112, 0x0118, 0x011a, 0x011c, 0x00f8, 0x00a8,
+ 0x0022, 0xff66, 0xfeb6, 0xfe4b, 0xfe1f, 0xfe0d,
+ 0xfdde, 0xfdb7, 0xfddf, 0xfe01, 0xfdcd, 0xfd96,
+ 0xfda3, 0xfe11, 0xfeb4, 0xff01, 0xfed0, 0xfe3b,
+ 0xfd3a, 0xfc62, 0xfc31, 0xfc3f, 0xfc5c, 0xfc7e,
+ 0xfc2c, 0xfb83, 0xfb35, 0xfb5c, 0xfbce, 0xfc7f,
+ 0xfd01, 0xfcd3, 0xfc54, 0xfc61, 0xfd02, 0xfd7f,
+ 0xfda5, 0xfdec, 0xfe60, 0xfe52, 0xfda1, 0xfd2f,
+ 0xfd52, 0xfd93, 0xfde0, 0xfe47, 0xfea1, 0xff04,
+ 0xff48, 0xff22, 0xfeed, 0xfed6, 0xfe6e, 0xfdac,
+ 0xfd00, 0xfce5, 0xfdb9, 0xff00, 0xff70, 0xfe7d,
+ 0xfd0e, 0xfc3b, 0xfc7a, 0xfdbb, 0xff6e, 0x00d3,
+ 0x0193, 0x0198, 0x0101, 0x0054, 0x000d, 0x0025,
+ 0x0063, 0x00c5, 0x0138, 0x018e, 0x023f, 0x0397,
+ 0x0445, 0x0360, 0x0210, 0x0154, 0x00ec, 0x008b,
+ 0x0035, 0x005a, 0x0149, 0x0238, 0x0259, 0x01d2,
+ 0x0111, 0x00a9, 0x00d9, 0x00e3, 0x0057, 0x0029,
+ 0x00d5, 0x0164, 0x01c6, 0x02e5, 0x03e1, 0x036f,
+ 0x026c, 0x01c6, 0x0146, 0x00d5, 0x0037, 0xff8f,
+ 0xffdd, 0x011c, 0x0250, 0x02f4, 0x0293, 0x00f9,
+ 0xfee0, 0xfd1c, 0xfc09, 0xfb96, 0xfb98, 0xfc2a,
+ 0xfd06, 0xfcfd, 0xfb6a, 0xf9a7, 0xf978, 0xfab0,
+ 0xfc30, 0xfdb3, 0xff3d, 0x00d2, 0x0283, 0x0362,
+ 0x0269, 0x003f, 0xfe98, 0xfe6f, 0xff5f, 0x004f,
+ 0x0053, 0xff34, 0xfe82, 0x0025, 0x034f, 0x05c9,
+ 0x06a5, 0x05b5, 0x0392, 0x0189, 0xffe9, 0xfe57,
+ 0xfd36, 0xfd00, 0xfdbc, 0xff4c, 0x00ca, 0x0063,
+ 0xfdb7, 0xfb47, 0xfaea, 0xfba4, 0xfc84, 0xfdbf,
+ 0xff51, 0x00ef, 0x01cf, 0x017b, 0x0109, 0x00dc,
+ 0x0028, 0x0001, 0x0171, 0x0224, 0x00f1, 0x00c7,
+ 0x0236, 0x0248, 0x010c, 0x003b, 0xffa1, 0x005f,
+ 0x0336, 0x052d, 0x04ff, 0x042a, 0x0275, 0x004b,
+ 0xffe0, 0x00ef, 0x01ad, 0x01c9, 0x0164, 0x0051,
+ 0xff13, 0xfe7b, 0xfe24, 0xfd18, 0xfb9c, 0xfaac,
+ 0xfad6, 0xfbf7, 0xfd8f, 0xffe8, 0x02b7, 0x03fb,
+ 0x033b, 0x026f, 0x02e2, 0x041f, 0x0473, 0x0339,
+ 0x01c2, 0x0042, 0xff04, 0xfff1, 0x020c, 0x0312,
+ 0x03b1, 0x03bf, 0x020c, 0xffc8, 0xfddf, 0xfc29,
+ 0xfb1f, 0xfb06, 0xfc5f, 0xffcc, 0x03fc, 0x06be,
+ 0x072d, 0x0523, 0x0095, 0xfad3, 0xf666, 0xf4a1,
+ 0xf57f, 0xf87b, 0xfbf2, 0xfed9, 0x0109, 0x0146,
+ 0xffca, 0xfe52, 0xfcd8, 0xfc19, 0xfcf0, 0xfd72,
+ 0xfe05, 0x00db, 0x041b, 0x05d1, 0x062e, 0x03fd,
+ 0xff89, 0xfc43, 0xfb97, 0xfbf6, 0xfd25, 0x0009,
+ 0x0250, 0x0179, 0x005f, 0x00f3, 0xffc2, 0xfbce,
+ 0xf874, 0xf69d, 0xf49e, 0xf30b, 0xf455, 0xf76c,
+ 0xf8b8, 0xf962, 0xfc53, 0xfed6, 0xfdfc, 0xfbe8,
+ 0xfa24, 0xf7a0, 0xf5af, 0xf74c, 0xfba8, 0xfff6,
+ 0x03b2, 0x05be, 0x04e8, 0x03cc, 0x0399, 0x024e,
+ 0x00c0, 0x004b, 0x006c, 0x0215, 0x0531, 0x0773,
+ 0x0829, 0x0718, 0x0386, 0xfe3e, 0xf8c3, 0xf4e2,
+ 0xf4be, 0xf86f, 0xfdb9, 0x02e9, 0x072e, 0x08cb,
+ 0x073c, 0x04c3, 0x027e, 0x0036, 0xfec5, 0xfddc,
+ 0xfd5c, 0xfeac, 0x007a, 0x0178, 0x02ed, 0x0351,
+ 0x013e, 0xffab, 0xffbd, 0x004a, 0x0197, 0x0312,
+ 0x0344, 0x024a, 0x01fa, 0x0436, 0x07a3, 0x08de,
+ 0x0765, 0x050a, 0x0288, 0xff78, 0xfc61, 0xfacc,
+ 0xfa66, 0xf96f, 0xf7ed, 0xf72c, 0xf7c2, 0xf8e4,
+ 0xf9a3, 0xfa14, 0xf915, 0xf659, 0xf56e, 0xf716,
+ 0xf92c, 0xfcf0, 0x00c1, 0x003a, 0xfdc5, 0xfca4,
+ 0xfbb3, 0xfbd7, 0xfce3, 0xfb2a, 0xf7ec, 0xf7ce,
+ 0xf9b0, 0xf97f, 0xf83d, 0xf8eb, 0xfa70, 0xfba9,
+ 0xfdac, 0xff47, 0xfee6, 0xfd40, 0xfafc, 0xf8d9,
+ 0xf655, 0xf229, 0xefaf, 0xf27d, 0xf75b, 0xf9ae,
+ 0xf8d1, 0xf63b, 0xf348, 0xf0ae, 0xef10, 0xee71,
+ 0xeef9, 0xf253, 0xf81b, 0xfdab, 0x01a8, 0x0213,
+ 0xfea1, 0xfc7b, 0xfe86, 0x019c, 0x02a3, 0x00c8,
+ 0xfd45, 0xfac5, 0xfb63, 0xff7c, 0x0442, 0x0698,
+ 0x072a, 0x0709, 0x05ee, 0x03f9, 0x0034, 0xfb24,
+ 0xf8ee, 0xfb1d, 0xfe41, 0xff08, 0xfd6a, 0xfb32,
+ 0xf8d9, 0xf63e, 0xf48e, 0xf538, 0xf8d2, 0xfdca,
+ 0x0172, 0x031b, 0x0213, 0xfe76, 0xfc0e, 0xfbd4,
+ 0xfb47, 0xfb14, 0xfbd9, 0xfd6b, 0x0131, 0x043c,
+ 0x0342, 0x01f2, 0x01b8, 0xff2e, 0xfb97, 0xfa4f,
+ 0xfa02, 0xf87f, 0xf69a, 0xf5b7, 0xf6a0, 0xf9b4,
+ 0xfcc9, 0xfd58, 0xfcdb, 0xfcd7, 0xfc71, 0xfb5d,
+ 0xf945, 0xf813, 0xfb9e, 0x00f9, 0x02ec, 0x039f,
+ 0x0583, 0x0637, 0x047b, 0x01a6, 0xfefa, 0xfc0b,
+ 0xf920, 0xf93f, 0xfce4, 0x00f9, 0x03da, 0x03eb,
+ 0x0004, 0xfa5d, 0xf591, 0xf43b, 0xf841, 0xfdc4,
+ 0xfefe, 0xfbd3, 0xf7b3, 0xf4ec, 0xf433, 0xf51c,
+ 0xf65c, 0xf7d3, 0xfaa4, 0xfd4f, 0xfe07, 0xfea8,
+ 0xff5c, 0xfe9b, 0xfdb9, 0xfc6c, 0xfad5, 0xfd45,
+ 0x02a3, 0x0546, 0x0555, 0x04f9, 0x0376, 0xffea,
+ 0xfb38, 0xf964, 0xfc5c, 0xffac, 0x004a, 0xff90,
+ 0xfd7e, 0xf9ec, 0xf748, 0xf73e, 0xf8b7, 0xfa47,
+ 0xfad0, 0xf8d7, 0xf604, 0xf5ca, 0xf6c2, 0xf722,
+ 0xf8fe, 0xfaa2, 0xf886, 0xf546, 0xf528, 0xf85f,
+ 0xfc2b, 0xfed3, 0x016d, 0x0322, 0x017f, 0xfe01,
+ 0xfb16, 0xfa73, 0xfe1c, 0x03d4, 0x07d1, 0x09f3,
+ 0x0a23, 0x08ac, 0x078d, 0x05ba, 0x01b4, 0xfe69,
+ 0xfee0, 0x0247, 0x0620, 0x0890, 0x0842, 0x05de,
+ 0x0401, 0x0269, 0xff81, 0xfcf6, 0xfb58, 0xfa1e,
+ 0xfb14, 0xfd10, 0xfe08, 0xffc5, 0x007c, 0xfcc1,
+ 0xf839, 0xf717, 0xf832, 0xf9bf, 0xfb67, 0xfcf5,
+ 0xfe53, 0xfffc, 0x0177, 0x018c, 0x020b, 0x03d1,
+ 0x0279, 0xfd4d, 0xf90a, 0xf783, 0xf8ea, 0xfcb0,
+ 0xff39, 0xfff1, 0x01e0, 0x04a5, 0x0537, 0x0296,
+ 0xfea1, 0xfc66, 0xfdf1, 0x0211, 0x0424, 0x0239,
+ 0xffc3, 0xfde2, 0xfba5, 0xfbab, 0xfe8f, 0x0043,
+ 0xfe6a, 0xfab6, 0xf907, 0xfaa7, 0xfddb, 0x02d0,
+ 0x07fc, 0x091e, 0x07a6, 0x0688, 0x03d2, 0xff8a,
+ 0xfbcc, 0xf7c8, 0xf4ec, 0xf834, 0x0022, 0x0469,
+ 0x0432, 0x0537, 0x0479, 0xfe1a, 0xf9bc, 0xfafc,
+ 0xfbd5, 0xfbe3, 0xfde0, 0xff5b, 0xff09, 0xfe3c,
+ 0xfc48, 0xf9a8, 0xf9ef, 0xfdb7, 0x0181, 0x03ae,
+ 0x03b8, 0x0135, 0xfff1, 0x01a8, 0x02d8, 0x0438,
+ 0x0690, 0x0634, 0x0591, 0x0750, 0x061a, 0x028b,
+ 0x032a, 0x0552, 0x0363, 0x00a6, 0x01fb, 0x03bd,
+ 0x019f, 0x00ba, 0x042f, 0x05a0, 0x0460, 0x05e5,
+ 0x060f, 0xffc6, 0xfa62, 0xfaca, 0xfaff, 0xfb1a,
+ 0x0064, 0x05b7, 0x07c4, 0x0d0e, 0x1267, 0x0fc1,
+ 0x0942, 0x03f2, 0x009b, 0x0077, 0xff35, 0xfc77,
+ 0x0056, 0x0786, 0x0977, 0x096c, 0x08c0, 0x0457,
+ 0x01d8, 0x0415, 0x0442, 0x0210, 0x0102, 0xfd02,
+ 0xf68a, 0xf5db, 0xfa4d, 0xfe81, 0x02d1, 0x0518,
+ 0x0300, 0xffd9, 0xfb5d, 0xf57b, 0xf358, 0xf51c,
+ 0xfa89, 0x056b, 0x0cff, 0x0af9, 0x09e1, 0x0e40,
+ 0x0b6e, 0xfaab, 0xe83f, 0xe5d6, 0xf8b6, 0x16e6,
+ 0x305d, 0x377f, 0x2759, 0x08ca, 0xed5b, 0xde8a,
+ 0xdbb6, 0xeb3f, 0x10b4, 0x341c, 0x3c78, 0x3238,
+ 0x24f4, 0x128f, 0xfc57, 0xef15, 0xed7f, 0xec5e,
+ 0xe7f4, 0xeadb, 0xfb5e, 0x1158, 0x1de5, 0x14b6,
+ 0xf89e, 0xdf24, 0xdab9, 0xe656, 0xf08d, 0xf5d8,
+ 0x013d, 0x1461, 0x26a2, 0x35e5, 0x4095, 0x4058,
+ 0x3730, 0x2dbd, 0x2690, 0x1f08, 0x15b8, 0x0d2c,
+ 0x0a1e, 0x0d8a, 0x118c, 0x0ff9, 0x0ba1, 0x0902,
+ 0x02e5, 0xf7b2, 0xf2de, 0xfa44, 0x0716, 0x13ad,
+ 0x1d58, 0x1eb5, 0x1564, 0x0811, 0xfd92, 0xf375,
+ 0xe536, 0xd26a, 0xbd98, 0xb018, 0xb2b8, 0xc0c2,
+ 0xd250, 0xe3f0, 0xec9b, 0xe727, 0xe16b, 0xe745,
+ 0xed32, 0xea0d, 0xec91, 0xf962, 0xfb62, 0xeecc,
+ 0xe8f3, 0xf0cd, 0xfff8, 0x151d, 0x263a, 0x218c,
+ 0x0748, 0xea33, 0xd9fb, 0xd93b, 0xe161, 0xea67,
+ 0xf0da, 0xf302, 0xeeb4, 0xe9e4, 0xedae, 0xf503,
+ 0xf626, 0xf339, 0xf0dc, 0xf085, 0xf44b, 0xf89b,
+ 0xf6e4, 0xf155, 0xeff8, 0xf62b, 0xffc3, 0x079d,
+ 0x0c90, 0x0e85, 0x11db, 0x2004, 0x369a, 0x4530,
+ 0x42c4, 0x3444, 0x22ff, 0x196a, 0x1e1d, 0x299f,
+ 0x2c3b, 0x2255, 0x17e1, 0x1630, 0x17b8, 0x0fe1,
+ 0xfd65, 0xed4c, 0xe7e8, 0xec3c, 0xfb25, 0x1071,
+ 0x20b8, 0x2930, 0x2b01, 0x21cd, 0x1229, 0x09ba,
+ 0x08cf, 0x050c, 0x00a1, 0x061e, 0x135e, 0x20c9,
+ 0x2edf, 0x399d, 0x3929, 0x33ee, 0x317f, 0x2b2e,
+ 0x207b, 0x1cab, 0x1efa, 0x1d6a, 0x1a55, 0x1bb7,
+ 0x1c34, 0x17e0, 0x12b0, 0x0d9d, 0x0968, 0x09c4,
+ 0x0cab, 0x0e2d, 0x0ec2, 0x0e3a, 0x0c09, 0x0805,
+ 0xffd4, 0xf3cd, 0xe726, 0xdbf5, 0xd78a, 0xde30,
+ 0xe76c, 0xe6c7, 0xde06, 0xd76e, 0xd41c, 0xcf14,
+ 0xc824, 0xc13e, 0xc009, 0xcec1, 0xe948, 0xfb37,
+ 0xfb27, 0xf058, 0xe240, 0xd676, 0xd209, 0xd2dd,
+ 0xd376, 0xd345, 0xd15d, 0xca0e, 0xc248, 0xc277,
+ 0xc481, 0xbf92, 0xbab8, 0xbd50, 0xc30c, 0xc941,
+ 0xcf2d, 0xcf4f, 0xcb65, 0xcd39, 0xd388, 0xd554,
+ 0xd3e4, 0xd318, 0xd005, 0xcd48, 0xd160, 0xd939,
+ 0xe0ce, 0xea57, 0xf386, 0xf79f, 0xfb24, 0x04f7,
+ 0x10a3, 0x15c4, 0x1731, 0x1984, 0x17b9, 0x12e2,
+ 0x1582, 0x216c, 0x32d9, 0x4713, 0x5633, 0x5c8f,
+ 0x5ea7, 0x5a49, 0x4c08, 0x3b3c, 0x308b, 0x2ef5,
+ 0x3447, 0x387d, 0x37d4, 0x3752, 0x3472, 0x245b,
+ 0x0b95, 0xfaae, 0xf6e8, 0x0283, 0x1eb0, 0x3523,
+ 0x339c, 0x2e99, 0x388f, 0x46a9, 0x4f7a, 0x5035,
+ 0x4483, 0x33cf, 0x2a86, 0x27d0, 0x25fc, 0x2925,
+ 0x3282, 0x3545, 0x30e5, 0x308d, 0x2ae2, 0x206f,
+ 0x25a8, 0x29b3, 0x1b5e, 0x1616, 0x1552, 0xfa58,
+ 0xd52f, 0xb5f0, 0x97fc, 0x8f72, 0xa94a, 0xd618,
+ 0x0392, 0x1c14, 0x19ad, 0x0b37, 0xf689, 0xe325,
+ 0xd98f, 0xd157, 0xc899, 0xc57a, 0xc96a, 0xd463,
+ 0xd969, 0xd89c, 0xe3ee, 0xe7f3, 0xdcf3, 0xee01,
+ 0x0e24, 0x086f, 0xeeab, 0xe09e, 0xd6ee, 0xd6b3,
+ 0xe69e, 0xf6db, 0xfe1d, 0x0386, 0x0b8a, 0x044c,
+ 0xe26d, 0xc41b, 0xbad8, 0xb408, 0xb4c0, 0xc6a5,
+ 0xcf87, 0xc863, 0xcdd6, 0xdfc7, 0xe139, 0xdd13,
+ 0xf5de, 0x1284, 0x0a7c, 0xf8f5, 0xf547, 0xea63,
+ 0xe05b, 0xe868, 0xf45c, 0x00bb, 0x0c3f, 0x07a2,
+ 0xfb4b, 0xfaaa, 0x03d2, 0x0c6a, 0x122c, 0x15f0,
+ 0x1099, 0x05c9, 0x06fe, 0x0b9d, 0x086c, 0x06c9,
+ 0xfc20, 0xf1e7, 0x084b, 0x1c11, 0x16b7, 0x2857,
+ 0x3fa5, 0x3187, 0x2464, 0x27c2, 0x21f9, 0x1de3,
+ 0x1f6e, 0x1c02, 0x1864, 0x13f6, 0x1369, 0x1c32,
+ 0x2c09, 0x4305, 0x45c6, 0x2f98, 0x2e00, 0x2f31,
+ 0x19a2, 0x2055, 0x3102, 0x1b04, 0x10b1, 0x133a,
+ 0xf631, 0xf0ad, 0x188e, 0x3038, 0x3785, 0x4c3a,
+ 0x645d, 0x665a, 0x4396, 0x24ef, 0x2bd7, 0x2b46,
+ 0x1e7b, 0x2ce5, 0x31d2, 0x1b29, 0x2203, 0x3f3a,
+ 0x40a8, 0x3a79, 0x46fa, 0x4c85, 0x4410, 0x4531,
+ 0x4b43, 0x4526, 0x3745, 0x24c3, 0x14e4, 0x18ca,
+ 0x25d5, 0x295a, 0x2817, 0x24e3, 0x1f6f, 0x17f2,
+ 0x104b, 0x19c2, 0x28a1, 0x20e4, 0x1aa1, 0x1aa0,
+ 0x022f, 0xec38, 0xea0d, 0xeaae, 0x050a, 0x228e,
+ 0x1924, 0x1b40, 0x29c3, 0x1115, 0x0589, 0x1b62,
+ 0x1524, 0x04f9, 0x0496, 0xf9c8, 0xf2ff, 0xf4ae,
+ 0xe9fc, 0xe4f7, 0xe9f7, 0xea21, 0xe7f3, 0xddb0,
+ 0xd612, 0xdf58, 0xdd68, 0xcbf4, 0xcb13, 0xd944,
+ 0xe060, 0xda5f, 0xd6b9, 0xddf3, 0xd748, 0xc52a,
+ 0xc4ff, 0xc818, 0xca81, 0xdd92, 0xe173, 0xce72,
+ 0xc8cb, 0xc673, 0xbc23, 0xb9e4, 0xb9cd, 0xbbc4,
+ 0xba55, 0xa205, 0x8f83, 0x9739, 0x9a98, 0x9abd,
+ 0xa341, 0xa517, 0xa9e8, 0xb63a, 0xb859, 0xbc75,
+ 0xc9ab, 0xcea2, 0xd14e, 0xd7fa, 0xd94b, 0xdde3,
+ 0xe6cf, 0xe110, 0xd5d2, 0xd779, 0xd7b1, 0xd567,
+ 0xe14f, 0xe638, 0xdcd9, 0xe103, 0xd8f8, 0xb50c,
+ 0xaed6, 0xbe26, 0xb3ac, 0xb312, 0xbf75, 0xb187,
+ 0xad7b, 0xc2a5, 0xcfc1, 0xdde8, 0xe783, 0xe550,
+ 0xf197, 0xef56, 0xd8fd, 0xe7dc, 0xf5ca, 0xd92e,
+ 0xceea, 0xd170, 0xbd2e, 0xc0d1, 0xd673, 0xd403,
+ 0xd657, 0xe134, 0xdbaf, 0xdb70, 0xe51a, 0xe721,
+ 0xea93, 0xef4c, 0xe96b, 0xdaa2, 0xcaf7, 0xcba8,
+ 0xdad1, 0xd89c, 0xca86, 0xceb3, 0xcddb, 0xb63a,
+ 0xb943, 0xdba0, 0xdb6b, 0xc125, 0xc25d, 0xc44e,
+ 0xb5bd, 0xbf2f, 0xd1ba, 0xd282, 0xdc86, 0xe71f,
+ 0xd9bf, 0xcdfe, 0xcedb, 0xd077, 0xd121, 0xc77a,
+ 0xbe90, 0xc322, 0xb8f8, 0xab19, 0xc077, 0xd527,
+ 0xcabb, 0xc66d, 0xcf5e, 0xd3f7, 0xdd06, 0xe39e,
+ 0xe0d4, 0xe499, 0xe349, 0xd46d, 0xd6a4, 0xe6b4,
+ 0xe958, 0xef43, 0xfba0, 0xf35f, 0xeaa6, 0xf6e1,
+ 0xfa93, 0xf2cc, 0xf563, 0xf994, 0xfcfe, 0x00e2,
+ 0xf724, 0xf12b, 0xfec5, 0x07d0, 0x081b, 0x06b4,
+ 0xfe69, 0x01f1, 0x0e69, 0x09ee, 0x0e85, 0x1f99,
+ 0x1204, 0x05e0, 0x1b42, 0x17d5, 0xfbea, 0x01a3,
+ 0x0c5c, 0xff94, 0x0505, 0x15c8, 0x0b3c, 0xfd7a,
+ 0x052f, 0x0ac1, 0x00fa, 0xfebb, 0x1399, 0x1f2a,
+ 0x0b2e, 0x0bf2, 0x2daa, 0x2609, 0x0528, 0x177b,
+ 0x2c7d, 0x126b, 0x0852, 0x198c, 0x1786, 0x1131,
+ 0x1402, 0x0e0c, 0x07d7, 0x0888, 0x0ad4, 0x1209,
+ 0x1893, 0x1daf, 0x2796, 0x293b, 0x2051, 0x1ef2,
+ 0x2341, 0x2253, 0x215b, 0x22fe, 0x20b1, 0x1c35,
+ 0x1bdf, 0x1d33, 0x1c19, 0x1695, 0x0ebe, 0x105b,
+ 0x143d, 0x0d77, 0x18ba, 0x3417, 0x2e74, 0x1fed,
+ 0x27f4, 0x1d54, 0x13dd, 0x2e72, 0x34b1, 0x2558,
+ 0x29e5, 0x20c6, 0x0f2c, 0x180c, 0x1914, 0x0f4a,
+ 0x1aad, 0x3012, 0x3e04, 0x3291, 0x1ef9, 0x31de,
+ 0x3f0e, 0x24ac, 0x2477, 0x30d9, 0x178d, 0x0974,
+ 0x157d, 0x17f4, 0x166a, 0x146c, 0x1a1b, 0x2ce0,
+ 0x326f, 0x34ee, 0x3810, 0x1ffb, 0x175a, 0x346f,
+ 0x393a, 0x2b5d, 0x3a00, 0x4cdf, 0x451c, 0x39c8,
+ 0x48fa, 0x4f0c, 0x2ba4, 0x25f1, 0x4a0a, 0x448e,
+ 0x3685, 0x45fe, 0x375f, 0x2e4e, 0x4b74, 0x4865,
+ 0x3c03, 0x507c, 0x569c, 0x4d11, 0x46f7, 0x4544,
+ 0x4f3b, 0x421c, 0x2fe1, 0x4607, 0x45b2, 0x2f55,
+ 0x3b00, 0x2fe0, 0x1f81, 0x4073, 0x40cc, 0x2998,
+ 0x35d9, 0x272c, 0x1a26, 0x3ab6, 0x3537, 0x1dd8,
+ 0x2905, 0x24d2, 0x2069, 0x2b64, 0x2231, 0x1f5b,
+ 0x20b0, 0x1823, 0x23ba, 0x1e49, 0x061e, 0x0f38,
+ 0x0dc3, 0x0301, 0x171f, 0x0f47, 0xfc4d, 0x0b3f,
+ 0x01d1, 0xfa89, 0x134c, 0x0776, 0xfcc2, 0x1508,
+ 0x0c46, 0xf969, 0xfaba, 0xf67f, 0xffe6, 0x01ee,
+ 0xf45b, 0x0592, 0x0146, 0xdde2, 0xea7f, 0xf3f7,
+ 0xd902, 0xd66f, 0xd074, 0xca33, 0xe616, 0xe152,
+ 0xd146, 0xee8d, 0xed42, 0xd94a, 0xf543, 0x00c8,
+ 0xf3d1, 0x003f, 0xfadf, 0xde66, 0xd613, 0xd4f3,
+ 0xd091, 0xc762, 0xbca3, 0xc9ed, 0xd4c0, 0xc7e5,
+ 0xd5e2, 0xf117, 0xe18f, 0xcc22, 0xd2cb, 0xd53b,
+ 0xcdba, 0xc5b6, 0xb495, 0xab88, 0xba80, 0xc9d0,
+ 0xcbdb, 0xcfe8, 0xdd09, 0xe76e, 0xe0b3, 0xd4d7,
+ 0xdaec, 0xdf51, 0xd59f, 0xdfec, 0xedc3, 0xdc40,
+ 0xd5ef, 0xe225, 0xd660, 0xd3f2, 0xefc1, 0xfaa1,
+ 0xf38b, 0xf140, 0xf25c, 0xf69e, 0xf4a0, 0xf7b3,
+ 0x069b, 0xfdf0, 0xf1c4, 0xf988, 0xed96, 0xf326,
+ 0x1bf4, 0x140e, 0x0313, 0x1978, 0x04a0, 0xf42e,
+ 0x26d8, 0x30d5, 0x18a2, 0x1f5b, 0x0751, 0xf0d0,
+ 0x0de7, 0x0edf, 0x03f0, 0x1aaa, 0x1102, 0xef05,
+ 0xed28, 0x0395, 0x22db, 0x2402, 0x05ba, 0x0577,
+ 0x10f3, 0x0df8, 0x12ee, 0x00df, 0xed72, 0x0a86,
+ 0x0ea3, 0xee92, 0xf928, 0x0bb1, 0x00a7, 0xf304,
+ 0xe0c3, 0xe4f1, 0xfe2d, 0xec10, 0xd392, 0xe19d,
+ 0xd887, 0xbd89, 0xc7e9, 0xd885, 0xccfe, 0xc056,
+ 0xd3bf, 0xeb7b, 0xd134, 0xb5c6, 0xcd93, 0xcba6,
+ 0xa7ce, 0xb02b, 0xbe78, 0xb5c9, 0xc454, 0xc429,
+ 0xaae0, 0xbca3, 0xd355, 0xbb51, 0xa840, 0xa79b,
+ 0x9fc4, 0x9bb7, 0x9aa9, 0x98cf, 0x996f, 0x956b,
+ 0xa0ea, 0xbe6f, 0xc9f1, 0xcdbe, 0xd472, 0xcb3f,
+ 0xd127, 0xe316, 0xcd41, 0xbd7c, 0xd49e, 0xce45,
+ 0xb631, 0xb968, 0xae49, 0xa05b, 0xb6ee, 0xc708,
+ 0xcbd7, 0xde3b, 0xddc5, 0xd340, 0xdcbc, 0xdf77,
+ 0xdac9, 0xdec4, 0xdf08, 0xe4d2, 0xe7ec, 0xd613,
+ 0xd8b4, 0xeef6, 0xe3dd, 0xdac5, 0xf7c8, 0xff81,
+ 0xeafc, 0xf45b, 0x02cf, 0xef6c, 0xf0cb, 0x0e2f,
+ 0xfdef, 0xe45b, 0x02b2, 0x0c95, 0xee2e, 0xf5a9,
+ 0xf245, 0xc333, 0xc57a, 0xe232, 0xd80b, 0xdb02,
+ 0xe451, 0xcc98, 0xc03a, 0xc063, 0xc216, 0xdd86,
+ 0xe6a8, 0xd9f3, 0xecc8, 0xe9e3, 0xc03d, 0xc599,
+ 0xe6bb, 0xeb0e, 0xec40, 0xef25, 0xed08, 0xed4d,
+ 0xdfdb, 0xd953, 0xec5c, 0xf241, 0xef15, 0xf7fe,
+ 0xf718, 0xfc3f, 0x129e, 0x11c4, 0x02c3, 0xff79,
+ 0xefd7, 0xd829, 0xd31c, 0xcf63, 0xbde2, 0xbd9c,
+ 0xe11f, 0xf693, 0xe026, 0xd7e4, 0xe59d, 0xd7a6,
+ 0xd69f, 0xf0b3, 0xdde9, 0xc3b7, 0xd405, 0xc3a6,
+ 0x9ddc, 0xb519, 0xdbfd, 0xdc9c, 0xd37e, 0xd5e7,
+ 0xe3c4, 0xddf6, 0xbc51, 0xc04b, 0xdc39, 0xc712,
+ 0xb0cb, 0xc359, 0xc32d, 0xab0d, 0xa41a, 0xb01e,
+ 0xbcf4, 0xaeb3, 0x94c4, 0x96cc, 0x98cc, 0x9397,
+ 0xa7eb, 0xad91, 0x93d2, 0x8909, 0x86f8, 0x8d1e,
+ 0xa687, 0xac9f, 0xaf0b, 0xbe76, 0xa609, 0x8fe9,
+ 0xab55, 0xa7a3, 0x9023, 0xad47, 0xc207, 0xb229,
+ 0xb4ad, 0xbb22, 0xb09c, 0xa821, 0xab8e, 0xc12c,
+ 0xcd8d, 0xc208, 0xc8a2, 0xd87e, 0xd68d, 0xdae2,
+ 0xd78f, 0xc5cf, 0xcb8f, 0xd57b, 0xd79e, 0xe8f4,
+ 0xed96, 0xe8e6, 0xf2f3, 0xec1a, 0xea78, 0x0269,
+ 0xfaa8, 0xef2b, 0x07e2, 0x0670, 0xf7a9, 0x06c6,
+ 0x0513, 0xfb66, 0x09b5, 0x09b5, 0x0105, 0x03f9,
+ 0xfd9e, 0xf901, 0xf8bb, 0xf710, 0x0c3d, 0x1a3d,
+ 0x0cc9, 0x14c5, 0x1b55, 0x021e, 0x043b, 0x1a75,
+ 0x1afe, 0x2a93, 0x3977, 0x200a, 0x1b8a, 0x373a,
+ 0x2ffc, 0x2899, 0x4e19, 0x51d5, 0x1bfb, 0x0595,
+ 0x0f44, 0x038a, 0x0e76, 0x39bb, 0x3f6f, 0x3785,
+ 0x4650, 0x3722, 0x2128, 0x37a1, 0x418c, 0x37c1,
+ 0x417a, 0x2d17, 0x09a3, 0x1b1a, 0x1c0a, 0xef9e,
+ 0xf3ce, 0x0d6b, 0xf9c6, 0xf656, 0x123a, 0x19a2,
+ 0x1c49, 0x2041, 0x13a5, 0x0bbb, 0x0746, 0x0821,
+ 0x28e3, 0x433e, 0x3b90, 0x3700, 0x2b16, 0x0e44,
+ 0x079d, 0x0cd3, 0x0f5e, 0x1802, 0x0a59, 0xfa3a,
+ 0x0f2c, 0x145c, 0xf9d5, 0xf294, 0xf7fb, 0x03cc,
+ 0x1e36, 0x26a1, 0x1e0e, 0x1258, 0xf630, 0xe80c,
+ 0xf32f, 0xedcb, 0xe60d, 0xf722, 0x0785, 0x09e7,
+ 0x019e, 0xf08d, 0xe72b, 0xef6c, 0xfbd3, 0xf449,
+ 0xe0f7, 0xe396, 0xee82, 0xf4b0, 0x0ffb, 0x22dc,
+ 0x14c6, 0x0fda, 0x05b8, 0xe82b, 0xf60f, 0x1e44,
+ 0x1c37, 0x090b, 0x06ff, 0x0849, 0x0286, 0xf61d,
+ 0xf55b, 0x02e9, 0x0803, 0x0ae5, 0x05dd, 0xf260,
+ 0x0350, 0x25b6, 0x1603, 0x0835, 0x14fa, 0xffa3,
+ 0xf606, 0x14f0, 0x0f25, 0xfbe3, 0x06d6, 0x0243,
+ 0xfea9, 0x0c59, 0x029a, 0x05b3, 0x2708, 0x2922,
+ 0x0ff3, 0x00fe, 0x0300, 0x1515, 0x2284, 0x29f7,
+ 0x3130, 0x23af, 0x1471, 0x1148, 0x042c, 0xfdd4,
+ 0x0396, 0x0df3, 0x22cc, 0x1847, 0xfe91, 0x0d8e,
+ 0x08ff, 0xf1c9, 0x0f6c, 0x1f7c, 0x0aa0, 0x0d84,
+ 0x01d4, 0xe95e, 0xef82, 0xedf5, 0xee6c, 0x020f,
+ 0xfc31, 0xef3a, 0xf515, 0xfc2d, 0xfdad, 0xf16b,
+ 0xfc4f, 0x1c65, 0xfad8, 0xd3d1, 0xfc00, 0x0e0c,
+ 0xfa5b, 0x0732, 0x0784, 0x0496, 0x1e18, 0x1aec,
+ 0x1890, 0x2ea5, 0x13e2, 0xefd5, 0xfdf7, 0x02d3,
+ 0xf58f, 0xfd43, 0x0b19, 0x1051, 0x0cb8, 0x0978,
+ 0x143f, 0x1c40, 0x1a2b, 0x187a, 0x0b7c, 0xf757,
+ 0xf4da, 0x065f, 0x1c41, 0x28e8, 0x3417, 0x3d85,
+ 0x28e7, 0x09c8, 0x0b17, 0x1b3e, 0x2c30, 0x3ddf,
+ 0x32ad, 0x1c59, 0x204a, 0x2224, 0x18bd, 0x1fef,
+ 0x2544, 0x15b3, 0x0e36, 0x216e, 0x359a, 0x2f8e,
+ 0x1d02, 0x12c4, 0x0d8c, 0x0e9c, 0x1294, 0x0abe,
+ 0x0807, 0x1ecd, 0x32f0, 0x295e, 0x1c39, 0x25ae,
+ 0x312d, 0x3440, 0x3c5d, 0x3901, 0x225f, 0x0d11,
+ 0xfba8, 0xfe48, 0x19ce, 0x218a, 0x1ba0, 0x253d,
+ 0x22ce, 0x1d44, 0x2a23, 0x28e7, 0x2039, 0x25c3,
+ 0x2744, 0x28bf, 0x2948, 0x1d5b, 0x1e3b, 0x2a9f,
+ 0x270b, 0x22dd, 0x3123, 0x3e20, 0x36f9, 0x3174,
+ 0x3a55, 0x3332, 0x2831, 0x346a, 0x3067, 0x1cef,
+ 0x23da, 0x2ee9, 0x2d0f, 0x21b9, 0x074a, 0x0296,
+ 0x1865, 0x1bfe, 0x1b9b, 0x27ec, 0x2410, 0x0f33,
+ 0x095f, 0x2186, 0x2ee7, 0x1819, 0x139a, 0x277a,
+ 0x27de, 0x287d, 0x2967, 0x19f2, 0x1fa4, 0x2e51,
+ 0x1d14, 0x0590, 0x04aa, 0x12cf, 0x185b, 0x14f2,
+ 0x1c1a, 0x15d8, 0x03f3, 0x0b3d, 0x0f87, 0x14ee,
+ 0x2ffa, 0x1ec7, 0xf608, 0xf966, 0xf806, 0xf343,
+ 0x0e6f, 0x19a7, 0x1aa3, 0x2194, 0x0fbc, 0x042c,
+ 0x0a7e, 0x0815, 0x0cf6, 0x0d77, 0x02a0, 0x081b,
+ 0x10b5, 0x1a4e, 0x2666, 0x1c0c, 0x1278, 0x1300,
+ 0x08ed, 0x0b97, 0x13bd, 0x0fd2, 0x1984, 0x1f5e,
+ 0x119e, 0x08f3, 0x07fa, 0x1ae2, 0x338d, 0x2575,
+ 0x1290, 0x139e, 0x052f, 0xfc88, 0x105f, 0x2257,
+ 0x24d3, 0x183e, 0x0c51, 0x1288, 0x1625, 0x12ce,
+ 0x18ab, 0x1b14, 0x1039, 0x03cb, 0x0467, 0x0886,
+ 0xfae3, 0xfb82, 0x1b6a, 0x1ede, 0x02f3, 0xfd47,
+ 0x04e9, 0x0684, 0x0922, 0x06c8, 0x006f, 0x0006,
+ 0x09df, 0x1552, 0x11d0, 0x0d49, 0x0fa2, 0x04b7,
+ 0xfc09, 0xff1c, 0xfd5f, 0x078e, 0x0f88, 0xfa9a,
+ 0xf251, 0xf5ff, 0xe5aa, 0xe7d8, 0xfe5f, 0x0956,
+ 0x15c7, 0x0f91, 0xf70c, 0xfc4c, 0xfd5d, 0xeba7,
+ 0xff3c, 0x145b, 0x0aa9, 0x1126, 0x131b, 0x0453,
+ 0x144d, 0x1edd, 0x0629, 0x0070, 0x0894, 0xfcc5,
+ 0xf57f, 0xfa5e, 0xfbe4, 0xff5e, 0x04aa, 0x041b,
+ 0x00f3, 0x0264, 0x08a7, 0x0e2f, 0x0dac, 0xff21,
+ 0xebc4, 0xea3f, 0xe966, 0xdaef, 0xe321, 0xfb67,
+ 0xf7dd, 0xedaf, 0xfa76, 0x0afe, 0x12f9, 0x13b5,
+ 0x0e55, 0x0795, 0xf9a8, 0xe89c, 0xe867, 0xf27f,
+ 0xf0b0, 0xea1c, 0xf47f, 0x05ad, 0x048d, 0x0171,
+ 0x1429, 0x240a, 0x1cac, 0x0c04, 0xfa0e, 0xf437,
+ 0x0423, 0x093a, 0xfa3c, 0xfe42, 0x0aa2, 0xfbe9,
+ 0xf2bb, 0x04c3, 0x0925, 0xfb9a, 0xf62b, 0xeddc,
+ 0xe50e, 0xf61e, 0x1350, 0x1943, 0x0887, 0xfd4e,
+ 0xf6a8, 0xdc03, 0xc43f, 0xd0b3, 0xe8ec, 0xf907,
+ 0x0060, 0xefcf, 0xe23a, 0xf86b, 0x0d23, 0x09a1,
+ 0x014e, 0xf054, 0xdefd, 0xe3b1, 0xeb4f, 0xecd2,
+ 0xfed8, 0x0e11, 0xff59, 0xf132, 0xf275, 0xee06,
+ 0xf528, 0x0914, 0xfd41, 0xe361, 0xe246, 0xdd20,
+ 0xcfd4, 0xde12, 0xf876, 0xfed2, 0xf268, 0xdde3,
+ 0xcbd5, 0xcbdd, 0xe6ed, 0x05df, 0x08a4, 0xf8eb,
+ 0xeaa6, 0xdc3a, 0xcf7b, 0xc826, 0xcca4, 0xdd88,
+ 0xe519, 0xe070, 0xdc81, 0xda61, 0xe55f, 0xf575,
+ 0xf73c, 0xfaa3, 0xfa1c, 0xe94f, 0xe3e4, 0xe6d6,
+ 0xe8c3, 0xf6b9, 0xf4a7, 0xde78, 0xd679, 0xd304,
+ 0xd406, 0xe453, 0xf01b, 0xfb9c, 0xfede, 0xe60b,
+ 0xdb92, 0xec20, 0xeede, 0xee6c, 0xf948, 0xf5a6,
+ 0xe27c, 0xd52b, 0xd18c, 0xd36b, 0xe00a, 0xeea8,
+ 0xed25, 0xe9e3, 0xe60f, 0xd117, 0xcc84, 0xe010,
+ 0xe739, 0xed30, 0xef07, 0xdab0, 0xd449, 0xe17e,
+ 0xea9e, 0xec24, 0xdc36, 0xd638, 0xe321, 0xd5a5,
+ 0xcfc0, 0xef05, 0xf9c5, 0xf264, 0xf381, 0xeea6,
+ 0xe72a, 0xdb07, 0xdd94, 0xf202, 0xdc62, 0xc629,
+ 0xe0cd, 0xd707, 0xbc08, 0xd72d, 0xe6ff, 0xe501,
+ 0xf668, 0xf233, 0xead4, 0xf79e, 0xf107, 0xe541,
+ 0xe52a, 0xdfbe, 0xdad1, 0xd455, 0xcecf, 0xd359,
+ 0xd91d, 0xe36a, 0xe5e8, 0xd860, 0xdaf4, 0xe122,
+ 0xcfd7, 0xc018, 0xb8de, 0xb405, 0xb8ba, 0xc470,
+ 0xd795, 0xdabc, 0xc3c7, 0xbfcc, 0xc3f2, 0xb32f,
+ 0xbc47, 0xd846, 0xd260, 0xc878, 0xd4ac, 0xd36d,
+ 0xbb47, 0xaed4, 0xbe21, 0xcb0a, 0xc741, 0xc8a8,
+ 0xcc86, 0xcd3f, 0xd35b, 0xd0ad, 0xc7d2, 0xc8fa,
+ 0xcae8, 0xd195, 0xdb83, 0xd47d, 0xcce7, 0xd03a,
+ 0xcc13, 0xc850, 0xcd2e, 0xccb7, 0xc74f, 0xc99a,
+ 0xda1b, 0xe6a0, 0xda5f, 0xd0ee, 0xdb77, 0xd6ab,
+ 0xc4a8, 0xc50c, 0xc897, 0xc566, 0xc890, 0xc151,
+ 0xb0bb, 0xb51e, 0xc4c3, 0xd085, 0xdd42, 0xdb63,
+ 0xd064, 0xd0d9, 0xcc4b, 0xca2d, 0xda1a, 0xda77,
+ 0xcda7, 0xcf6b, 0xd0cd, 0xd577, 0xe20d, 0xe291,
+ 0xe895, 0xf3c8, 0xe81d, 0xdc18, 0xd89d, 0xce69,
+ 0xd6e3, 0xf0db, 0xf87b, 0xee03, 0xdd94, 0xccdb,
+ 0xc8db, 0xd67a, 0xe6eb, 0xe940, 0xe992, 0xf0df,
+ 0xf085, 0xf73e, 0x0612, 0xfb22, 0xec97, 0xefd2,
+ 0xe8f1, 0xe4ca, 0xee0d, 0xedbd, 0xee8e, 0xf417,
+ 0xf5ec, 0xfb0d, 0xf3f3, 0xea53, 0xf824, 0x0094,
+ 0xf7ee, 0xf02f, 0xeb2e, 0xf73b, 0x02d2, 0xf167,
+ 0xe92b, 0xf430, 0xf094, 0xeb3c, 0xf121, 0xf89b,
+ 0xfe53, 0xfa4b, 0xf396, 0xf250, 0xef49, 0xe70f,
+ 0xd0f1, 0xc65c, 0xe2cd, 0xf48c, 0xf393, 0x07b0,
+ 0x07e0, 0xeecd, 0xead8, 0xe503, 0xe7c1, 0x0220,
+ 0xf2f9, 0xd3fc, 0xe220, 0xe554, 0xd28b, 0xdd67,
+ 0xef28, 0xeaef, 0xe1de, 0xe4cc, 0xe860, 0xd62a,
+ 0xce99, 0xe545, 0xe628, 0xddfd, 0xeda2, 0xe13b,
+ 0xc669, 0xd47b, 0xe647, 0xec85, 0xf6a3, 0xed09,
+ 0xdf2c, 0xd540, 0xbd31, 0xc4b8, 0xe7fc, 0xea43,
+ 0xea7f, 0xf428, 0xded0, 0xd113, 0xd9da, 0xd91b,
+ 0xe7ea, 0xfbf8, 0xfa62, 0x0341, 0xfdf1, 0xd9a1,
+ 0xd6e4, 0xe357, 0xda02, 0xea14, 0xff50, 0xf389,
+ 0xf109, 0xf7f4, 0xf8af, 0x06e2, 0x09f1, 0xfd3b,
+ 0xfdab, 0xf137, 0xda78, 0xe7aa, 0x0421, 0x07cc,
+ 0xfcab, 0xfab4, 0xfe8c, 0xf3ff, 0xf0c5, 0x036d,
+ 0xfd6e, 0xef3b, 0x03a1, 0xff86, 0xdf3c, 0xe9b5,
+ 0xfa6b, 0xedf3, 0xea5b, 0xe057, 0xcba5, 0xd128,
+ 0xdcc7, 0xde0a, 0xe2d2, 0xe38c, 0xe414, 0xe6d9,
+ 0xe997, 0xf9d0, 0xfa8c, 0xe046, 0xe370, 0xf8a2,
+ 0xf064, 0xe6c2, 0xe664, 0xdf14, 0xe425, 0xee7a,
+ 0xf0da, 0xfd26, 0xfed5, 0xe57d, 0xdcac, 0xec86,
+ 0xedfe, 0xe918, 0xf73e, 0x0545, 0x0ee0, 0x2505,
+ 0x2395, 0xfcd0, 0xf0d1, 0xfdcb, 0xee95, 0xeadb,
+ 0x0e93, 0x1ba0, 0x08bc, 0x0286, 0x04dd, 0x0373,
+ 0x08d9, 0x0ca2, 0x073e, 0x09b7, 0x12e8, 0x1290,
+ 0x145b, 0x19ba, 0x0e76, 0x0341, 0x02e1, 0xf760,
+ 0xf27b, 0x0285, 0x08d6, 0x0467, 0x02cf, 0x05c8,
+ 0x1181, 0x08db, 0xeea2, 0xf56a, 0x002d, 0xf4d5,
+ 0xfea8, 0x00dd, 0xebb2, 0xfd39, 0x12a3, 0x04d8,
+ 0x0e8d, 0x1bfe, 0x0908, 0x0a73, 0x1459, 0x0385,
+ 0xff5c, 0x0757, 0x094b, 0x1668, 0x1867, 0x0f2f,
+ 0x1eb7, 0x22c3, 0x0a27, 0x08f0, 0x10b3, 0x04a5,
+ 0x0ea7, 0x2bc5, 0x2d45, 0x1e77, 0x1818, 0x18e5,
+ 0x1fc7, 0x2402, 0x2332, 0x222a, 0x12f5, 0x007a,
+ 0x0909, 0x12ac, 0x05db, 0x09b2, 0x1ca9, 0x0fad,
+ 0xfe07, 0x159e, 0x2f4f, 0x286a, 0x1d1e, 0x1741,
+ 0x1122, 0x179a, 0x197f, 0x0ad6, 0x102e, 0x1eeb,
+ 0x0f33, 0x062a, 0x16e0, 0x1423, 0x0cd2, 0x18bd,
+ 0x1360, 0x0a72, 0x181b, 0x14a0, 0x05dc, 0x0d20,
+ 0x0ea8, 0x09fa, 0x150c, 0x1590, 0x0968, 0x04d0,
+ 0x01d2, 0x09d6, 0x18b7, 0x1459, 0x0d79, 0x0f93,
+ 0x0a57, 0x0a4f, 0x10c8, 0x0753, 0xf828, 0xf479,
+ 0xf735, 0xfa9c, 0xfd4b, 0xfdf1, 0xfdee, 0x06b1,
+ 0x1129, 0x0442, 0xf852, 0x0bb2, 0x1342, 0x02c9,
+ 0x02b6, 0x043d, 0xff09, 0x0e62, 0x1adf, 0x14a4,
+ 0x1120, 0x07aa, 0xfb45, 0xfef3, 0x003f, 0xf8d6,
+ 0xf87b, 0xfbb0, 0x0191, 0x0604, 0xfc31, 0xf372,
+ 0xfb78, 0x08df, 0x14c1, 0x1920, 0x0fab, 0x06ea,
+ 0x069b, 0x0ad4, 0x1afd, 0x2841, 0x1c42, 0x0ef3,
+ 0x1152, 0x1226, 0x14e8, 0x1d0a, 0x1e2a, 0x18b1,
+ 0x085b, 0xfa68, 0x08a0, 0x15f6, 0x10d5, 0x16ac,
+ 0x186f, 0x0a68, 0x0ac6, 0x0daa, 0x0364, 0xfd9f,
+ 0xfc57, 0xfe63, 0x00b6, 0xfdf4, 0x0b8c, 0x2234,
+ 0x22db, 0x1370, 0xfece, 0xf42c, 0xff2c, 0x0646,
+ 0x09ef, 0x171d, 0x1aa3, 0x1d07, 0x1ff0, 0x13a2,
+ 0x151e, 0x1b39, 0x0926, 0x06ae, 0x13bb, 0x12f1,
+ 0x18c8, 0x1aaa, 0x13cd, 0x1cbe, 0x1a81, 0x0e72,
+ 0x0e03, 0xfd3e, 0xf7b2, 0x0d27, 0x0342, 0xfb63,
+ 0x1634, 0x104a, 0xfe7c, 0x10ba, 0x17b5, 0x12d3,
+ 0x1658, 0x02b5, 0xf1de, 0x012c, 0x03db, 0xf9af,
+ 0x0a66, 0x1d81, 0x11d1, 0x031d, 0x0e75, 0x1b3f,
+ 0x0c20, 0xf7ae, 0xfd5f, 0x0efd, 0x1647, 0x17e3,
+ 0x15a3, 0x0be0, 0x03d2, 0xff45, 0xfa60, 0xfa99,
+ 0xfab8, 0xf870, 0x014d, 0x0ff2, 0x18aa, 0x1ed8,
+ 0x21c0, 0x2265, 0x1e07, 0x12df, 0x14f7, 0x1acd,
+ 0x0f81, 0x100f, 0x197b, 0x10f3, 0x1155, 0x123b,
+ 0x0097, 0x0603, 0x0eb9, 0xfe33, 0x0c90, 0x27e3,
+ 0x1a35, 0x0c32, 0x0c00, 0x099c, 0x17a7, 0x1fde,
+ 0x1758, 0x1c51, 0x1c01, 0x0eea, 0x0ea3, 0x0f6e,
+ 0x1372, 0x21e3, 0x1c98, 0x0c03, 0x0d1d, 0x1543,
+ 0x1bfe, 0x1d0f, 0x1668, 0x19e4, 0x1fd7, 0x174c,
+ 0x1501, 0x1ec6, 0x1d53, 0x10e4, 0x0978, 0x099d,
+ 0x0b86, 0x0fbb, 0x1bbf, 0x2551, 0x1aa7, 0x050f,
+ 0xfda6, 0x04ef, 0x0a88, 0x10dd, 0x1bcc, 0x17bc,
+ 0x06e1, 0x06d0, 0x102c, 0x0eb6, 0x123d, 0x1c03,
+ 0x15cc, 0x08f7, 0x04c2, 0xfce4, 0xf40a, 0xfb22,
+ 0x015c, 0xf772, 0xf791, 0x032e, 0xfdd5, 0xfac4,
+ 0x0a83, 0x0fc6, 0x1242, 0x1ce8, 0x102c, 0x02f4,
+ 0x1506, 0x1b42, 0x0dd4, 0x0aad, 0x03de, 0xfe34,
+ 0x068e, 0x065c, 0x03bb, 0x05d8, 0xfff3, 0x07d7,
+ 0x188c, 0x15fd, 0x1988, 0x22cd, 0x1712, 0x1230,
+ 0x19d9, 0x16f3, 0x1752, 0x14ef, 0x04f1, 0x033b,
+ 0x0caf, 0x0df7, 0x129f, 0x18ea, 0x1712, 0x12c1,
+ 0x0e5f, 0x0ba7, 0x068a, 0xfbb1, 0xf8fb, 0x01e4,
+ 0x0fdc, 0x1a7c, 0x0c0a, 0xf389, 0xf519, 0xf8cb,
+ 0xf034, 0xfd5c, 0x0e07, 0x0827, 0x0a3e, 0x0beb,
+ 0xf865, 0xf4c9, 0xfe6f, 0xfb7f, 0x0a38, 0x1b23,
+ 0x0491, 0xf4b8, 0x0111, 0xfd32, 0xf18a, 0xf202,
+ 0xf3fc, 0xff6d, 0x0eb7, 0x1448, 0x16c0, 0x1200,
+ 0x1077, 0x194a, 0x1250, 0x0baf, 0x180a, 0x16ac,
+ 0x0d98, 0x0794, 0xf0ac, 0xe796, 0xf87d, 0xfba6,
+ 0xf34e, 0xe970, 0xe1da, 0xec23, 0xeffa, 0xe969,
+ 0xeed6, 0xe6df, 0xe1ea, 0xfda0, 0x02f6, 0xf1b4,
+ 0xf9bd, 0xfc52, 0xf4b0, 0xfe93, 0xfd17, 0xf053,
+ 0xf4d8, 0xfbcd, 0xf8ad, 0xee11, 0xe60a, 0xf088,
+ 0xfab0, 0xf648, 0xf6db, 0xf762, 0xede4, 0xe86a,
+ 0xe919, 0xf138, 0x02ef, 0x09be, 0xfe8a, 0xf5f5,
+ 0xf83d, 0xf96f, 0xf3ba, 0xf2b6, 0xfa3b, 0xf8b7,
+ 0xef75, 0xf654, 0x02dd, 0xfb8d, 0xf3b9, 0xfbef,
+ 0xfb32, 0xf143, 0xf331, 0xf391, 0xeb64, 0xebb7,
+ 0xf1b9, 0xf3fb, 0xf23e, 0xef1f, 0xf255, 0xf341,
+ 0xe94d, 0xe646, 0xecf8, 0xf1a4, 0xf594, 0xf494,
+ 0xf040, 0xec33, 0xde01, 0xd6b8, 0xe7be, 0xf609,
+ 0xf581, 0xf488, 0xf693, 0xf9fc, 0xf69f, 0xf26f,
+ 0xfd3d, 0x043d, 0x0113, 0x038e, 0xf7bb, 0xe444,
+ 0xefec, 0x0346, 0x0422, 0x09b5, 0x11dc, 0x0d70,
+ 0x0c74, 0x1899, 0x23c6, 0x1fa9, 0x1107, 0x09d5,
+ 0x0d94, 0x0e55, 0x0684, 0x04ac, 0x0da8, 0x0db4,
+ 0x0680, 0x098b, 0x0a2c, 0x0363, 0x03b1, 0x066f,
+ 0x09c3, 0x0c01, 0x015e, 0xf915, 0xfe0e, 0x01d0,
+ 0x0468, 0x035c, 0xfcee, 0xfd8b, 0xfa5b, 0xf3e3,
+ 0xfdba, 0x050c, 0x03ed, 0x0a85, 0x0442, 0xf4cb,
+ 0xf9bd, 0x032f, 0x04ba, 0x07a4, 0x04d9, 0xfdf4,
+ 0xf9bb, 0xf635, 0xf6f2, 0xfa14, 0xfe9b, 0x0333,
+ 0xffcd, 0x0021, 0x0525, 0xfe36, 0xfda2, 0x061f,
+ 0xfece, 0xfa1d, 0xfe3a, 0xf49f, 0xf038, 0xf4b9,
+ 0xeadc, 0xe64f, 0xf29f, 0xfc44, 0x00da, 0xfd7a,
+ 0xf2c4, 0xed21, 0xe4fa, 0xdbbd, 0xe303, 0xefa6,
+ 0xf4b6, 0xf89f, 0xf644, 0xeb18, 0xe589, 0xe78e,
+ 0xe4b3, 0xdd04, 0xd9eb, 0xd94f, 0xd8e9, 0xdf23,
+ 0xe57f, 0xe40b, 0xe227, 0xdffb, 0xe00e, 0xea94,
+ 0xecc2, 0xe21e, 0xe862, 0xf26e, 0xe4a7, 0xd9cb,
+ 0xdb1b, 0xd3ef, 0xd5f3, 0xe23b, 0xdcee, 0xdb05,
+ 0xe715, 0xe10f, 0xde7d, 0xfa73, 0x08de, 0xf94a,
+ 0xef33, 0xebcd, 0xe0cb, 0xdb0c, 0xe324, 0xea37,
+ 0xe65c, 0xe7a7, 0xf416, 0xf449, 0xe59b, 0xddfb,
+ 0xe304, 0xecd4, 0xee02, 0xe40c, 0xe3d8, 0xef2e,
+ 0xf2d8, 0xf0b6, 0xf050, 0xedcd, 0xe947, 0xea17,
+ 0xf20c, 0xf17d, 0xe617, 0xe26b, 0xde18, 0xd592,
+ 0xdc69, 0xdd92, 0xce46, 0xce08, 0xd079, 0xc811,
+ 0xcda5, 0xd63b, 0xd65d, 0xd8f7, 0xd503, 0xd6db,
+ 0xe1b7, 0xd664, 0xd0a5, 0xe9a9, 0xf2da, 0xe8c6,
+ 0xe4c3, 0xd66f, 0xca09, 0xd776, 0xe8f8, 0xf263,
+ 0xf9d5, 0xf65c, 0xe6a8, 0xda18, 0xd9f2, 0xe154,
+ 0xea15, 0xf04e, 0xed49, 0xea95, 0xf466, 0xf869,
+ 0xf288, 0xf8bf, 0xfcf9, 0xefe1, 0xef3c, 0xff83,
+ 0x0061, 0xf3b9, 0xee88, 0xee72, 0xed56, 0xead8,
+ 0xe84e, 0xee18, 0xf824, 0xf970, 0xf83d, 0xf89b,
+ 0xf4b1, 0xf37b, 0xf486, 0xf486, 0xfe1e, 0x064d,
+ 0x0167, 0xffd9, 0xfcdb, 0xef33, 0xeb3b, 0xf228,
+ 0xf5b0, 0xf54f, 0xefd3, 0xee8f, 0xf72b, 0xf98f,
+ 0xf8f0, 0xfedb, 0xfe42, 0xf9f5, 0xfd53, 0xfb67,
+ 0xee35, 0xe971, 0xf732, 0x0477, 0x0489, 0x03ef,
+ 0x05cd, 0x0632, 0x0b2e, 0x0ad9, 0xfd9c, 0xf709,
+ 0xfba9, 0xfc8b, 0xfb2e, 0xfe2b, 0xfe31, 0xf906,
+ 0xfb35, 0xffb1, 0xf920, 0xf940, 0xfe1d, 0xee9f,
+ 0xe81f, 0xf90a, 0xf89c, 0xf18a, 0xf82f, 0xf1f3,
+ 0xe926, 0xed34, 0xec66, 0xf223, 0xfdc9, 0xf451,
+ 0xe64b, 0xe943, 0xeef2, 0xeb7f, 0xe3fa, 0xe2f3,
+ 0xe53d, 0xe2db, 0xe231, 0xe1ee, 0xe189, 0xe896,
+ 0xec9f, 0xeb73, 0xeade, 0xe4a7, 0xe8fc, 0xf75a,
+ 0xeeb5, 0xe2b8, 0xedbd, 0xf2a4, 0xea2e, 0xe429,
+ 0xdd62, 0xdc79, 0xe538, 0xea2e, 0xebcf, 0xf362,
+ 0xf933, 0xeeac, 0xe2f3, 0xec64, 0xf2bf, 0xe30a,
+ 0xd6e4, 0xd565, 0xd4a6, 0xd9cd, 0xe302, 0xea4c,
+ 0xe9b9, 0xe173, 0xe416, 0xedd3, 0xecde, 0xed73,
+ 0xf18f, 0xedb4, 0xed17, 0xefb2, 0xeae9, 0xea0f,
+ 0xf344, 0xf945, 0xf381, 0xe7e1, 0xe11a, 0xe6a6,
+ 0xf8df, 0x0547, 0x004a, 0xfecc, 0x0098, 0xf11c,
+ 0xe301, 0xe6c6, 0xed8f, 0xf07d, 0xef70, 0xf41e,
+ 0xffe0, 0xf697, 0xe54a, 0xee11, 0xf643, 0xefb9,
+ 0xf0dc, 0xefd0, 0xebed, 0xf2e2, 0xf27c, 0xebde,
+ 0xf15a, 0xf428, 0xeecf, 0xee70, 0xeb13, 0xe28c,
+ 0xe5ab, 0xf188, 0xf56d, 0xf29c, 0xf210, 0xf2e9,
+ 0xf06a, 0xec25, 0xefdf, 0xf8e8, 0xf755, 0xf300,
+ 0xf532, 0xef79, 0xed66, 0xf8ac, 0xf330, 0xe6e8,
+ 0xee93, 0xee46, 0xe500, 0xf062, 0xfd08, 0xfa36,
+ 0xf405, 0xecc2, 0xedba, 0xf98f, 0xfecf, 0xfce9,
+ 0xfb18, 0xf7ac, 0xf31d, 0xefd9, 0xf508, 0xfd3d,
+ 0xf76c, 0xef52, 0xf274, 0xf2dd, 0xf155, 0xf5ff,
+ 0xf985, 0xfcff, 0xfcf2, 0xf0c4, 0xe8e9, 0xed90,
+ 0xefad, 0xf094, 0xf414, 0xf219, 0xf079, 0xf381,
+ 0xf604, 0xfd76, 0x0212, 0xf713, 0xeffa, 0xf2bb,
+ 0xec47, 0xea4b, 0xf719, 0xf8ba, 0xec85, 0xe5a3,
+ 0xe72c, 0xec3c, 0xeb6f, 0xe7c0, 0xefaa, 0xf885,
+ 0xfaa7, 0x02be, 0x052f, 0xf807, 0xef6b, 0xef7a,
+ 0xef5d, 0xf3be, 0xfaa6, 0xfc36, 0xf8e3, 0xf435,
+ 0xf31e, 0xf450, 0xf09a, 0xecc2, 0xef41, 0xf180,
+ 0xf45a, 0xff5d, 0x092c, 0x0868, 0x0222, 0xfa2f,
+ 0xf700, 0xfb61, 0xfde3, 0x00f5, 0x0243, 0xf5c4,
+ 0xf1c3, 0xff86, 0xfffe, 0xfa0c, 0xfd7e, 0xf90e,
+ 0xf5ab, 0xf905, 0xf1a0, 0xef1e, 0xf752, 0xf856,
+ 0xf912, 0xfa20, 0xfb4a, 0x0828, 0x10dd, 0x119a,
+ 0x15ec, 0x0d9c, 0xff5e, 0xfd65, 0xfa59, 0xf982,
+ 0xffc5, 0x0031, 0xfefe, 0xf782, 0xebfe, 0xf48b,
+ 0xff78, 0xfcda, 0x014f, 0xff7f, 0xf03b, 0xeeed,
+ 0xf428, 0xf598, 0xff3e, 0x05c8, 0x033a, 0x0203,
+ 0xfb9a, 0xf315, 0xf96e, 0x050c, 0x024c, 0xfb76,
+ 0xfeb0, 0xfd04, 0xf673, 0x00ed, 0x0a51, 0xff36,
+ 0xf97c, 0xfa22, 0xf02b, 0xef70, 0xf91e, 0xf891,
+ 0xfa12, 0xff73, 0xf70d, 0xf1c3, 0xfc2b, 0x01b7,
+ 0x027e, 0x08ba, 0x0892, 0x03b9, 0x03e8, 0xff8e,
+ 0xfb44, 0x0369, 0x0b63, 0x0b7f, 0x08e3, 0x03cc,
+ 0x00a2, 0xfcec, 0xf663, 0xfb0d, 0x04e4, 0x07d3,
+ 0x115f, 0x19e7, 0x1093, 0x06d1, 0x047e, 0x035a,
+ 0x07a7, 0x055d, 0xf950, 0xfaeb, 0x0524, 0x0450,
+ 0x0037, 0xfe64, 0xfa4b, 0xf9a2, 0xfeb2, 0x03b2,
+ 0x077f, 0x093e, 0x03e0, 0xfa8d, 0xfb14, 0x03fa,
+ 0x02cd, 0xfae3, 0xfc37, 0xfd85, 0xfab2, 0x057e,
+ 0x14ca, 0x1564, 0x15d1, 0x1921, 0x0d30, 0x000b,
+ 0x01ec, 0x02dd, 0x003b, 0x0472, 0x05de, 0xff5c,
+ 0xfd5a, 0x0384, 0x0874, 0x0670, 0x01af, 0xff3b,
+ 0xfe32, 0xfd3f, 0xffa5, 0x0745, 0x0a38, 0x027f,
+ 0xff53, 0x0275, 0xfb62, 0xf645, 0xff81, 0x01f5,
+ 0xfb62, 0xfb0f, 0xf867, 0xf0e2, 0xf154, 0xf65e,
+ 0xf710, 0xf4f7, 0xf3f8, 0xf573, 0xf979, 0xff59,
+ 0x0111, 0xf949, 0xeeb4, 0xeb46, 0xf1b1, 0xf9fa,
+ 0xf935, 0xf6f8, 0xfc23, 0xfaec, 0xf042, 0xecdd,
+ 0xf2b6, 0xf91a, 0xfdc6, 0x0027, 0xfe5d, 0xf80e,
+ 0xf31e, 0xf403, 0xf6c8, 0xf9db, 0xfc30, 0xfc63,
+ 0x00d4, 0x07a5, 0x07c0, 0x04f6, 0x0328, 0xfeee,
+ 0xf83e, 0xf119, 0xee1c, 0xf145, 0xf614, 0xf9d7,
+ 0xf82a, 0xf165, 0xef68, 0xf1d2, 0xf54e, 0xfc5c,
+ 0x001a, 0x000e, 0x03b0, 0x031f, 0xfdac, 0x01df,
+ 0x0ca3, 0x1080, 0x0e6c, 0x0c99, 0x09b4, 0x05c7,
+ 0x065b, 0x09ed, 0x0c0a, 0x0c18, 0x0849, 0x0a04,
+ 0x1607, 0x1897, 0x152a, 0x1fd3, 0x271d, 0x211c,
+ 0x214e, 0x2587, 0x25ca, 0x27a5, 0x2796, 0x222e,
+ 0x1c8d, 0x1c5d, 0x1ff9, 0x1f74, 0x21ba, 0x29c2,
+ 0x2475, 0x15e5, 0x123b, 0x128d, 0x0db4, 0x0b55,
+ 0x1049, 0x1408, 0x1127, 0x148a, 0x1a27, 0x155b,
+ 0x1a27, 0x2188, 0x1233, 0x0ae9, 0x1287, 0x0cdf,
+ 0x0e84, 0x18ce, 0x174d, 0x1d64, 0x1f2a, 0x10fa,
+ 0x1716, 0x220b, 0x189f, 0x17db, 0x1b98, 0x1365,
+ 0x1054, 0x1232, 0x1531, 0x1a3a, 0x15e4, 0x1054,
+ 0x1198, 0x0e88, 0x0c6f, 0x1354, 0x19ff, 0x178f,
+ 0x0d94, 0x095d, 0x1077, 0x17bf, 0x181e, 0x12ae,
+ 0x0cef, 0x08f6, 0x0496, 0x07d9, 0x0ff2, 0x0dce,
+ 0x05d1, 0xfb97, 0xf1e7, 0xf59d, 0xfa78, 0xfb54,
+ 0x0634, 0x05a1, 0xf795, 0xfc79, 0x038e, 0xfc99,
+ 0xfcd8, 0xfd66, 0xf602, 0xf24f, 0xee4b, 0xeca3,
+ 0xf277, 0xf20c, 0xea81, 0xe7e2, 0xe9a0, 0xe686,
+ 0xe29d, 0xed81, 0xf8b9, 0xef2a, 0xe8b6, 0xf377,
+ 0xfc1d, 0xfed1, 0xfc04, 0xf6b6, 0xfa54, 0xfd2a,
+ 0xfd2f, 0x04f8, 0x0742, 0x04c7, 0x08bd, 0x03d3,
+ 0xf9d0, 0xfc9a, 0x0285, 0x0421, 0x0391, 0x01fb,
+ 0x0479, 0x04d4, 0x0185, 0x03dc, 0x041c, 0x0266,
+ 0x099c, 0x0c6f, 0x058e, 0x050a, 0x09af, 0x09b5,
+ 0x0793, 0x0867, 0x09e9, 0x088c, 0x0acf, 0x0cb2,
+ 0x0071, 0xf639, 0xfb61, 0xfce2, 0xfc43, 0x0257,
+ 0xfe9b, 0xf65a, 0xf802, 0xf6d9, 0xf362, 0xf723,
+ 0xf861, 0xf80a, 0xfc00, 0xf890, 0xee6b, 0xec37,
+ 0xedf1, 0xeaba, 0xebe5, 0xf26c, 0xeef1, 0xe9e0,
+ 0xf1cb, 0xf3ce, 0xed24, 0xf37f, 0xf772, 0xed9d,
+ 0xf00d, 0xf8c9, 0xf3b0, 0xf22a, 0xf943, 0xf931,
+ 0xf780, 0xfc77, 0x02b7, 0x04e4, 0x0063, 0xf7c4,
+ 0xf1d5, 0xf39d, 0xf9ec, 0xfd98, 0x02e6, 0x0821,
+ 0x0057, 0xf67c, 0xf5a4, 0xf38a, 0xf830, 0x056c,
+ 0x05e7, 0x00af, 0x00d7, 0xfce1, 0xfab8, 0xfb63,
+ 0xf83c, 0xf930, 0xf8dd, 0xf6e6, 0xfd92, 0xfc8b,
+ 0xf74a, 0x0019, 0x0061, 0xf61c, 0xf54c, 0xf1c5,
+ 0xf1fc, 0xfe26, 0xfe5a, 0xfc4f, 0x0283, 0xfb69,
+ 0xf47f, 0xfa65, 0xfb27, 0xfd38, 0x0505, 0x08c1,
+ 0x0cf2, 0x08c6, 0xf9a6, 0xf5e5, 0xfb51, 0xfd7a,
+ 0x01cd, 0x08bc, 0x10d8, 0x14e7, 0x0b1b, 0x00f9,
+ 0x0670, 0x0eb8, 0x0be3, 0x0548, 0x03ff, 0x024c,
+ 0xff86, 0x04f0, 0x0841, 0x0126, 0x013f, 0x078a,
+ 0x0485, 0x02b5, 0x06fc, 0x0150, 0xf58b, 0xf672,
+ 0xff63, 0x020b, 0x0466, 0x06e8, 0xfff3, 0xfd65,
+ 0xfea1, 0xf104, 0xef0e, 0x02cd, 0x05cb, 0x0279,
+ 0x0bce, 0x054a, 0xf731, 0xf87f, 0xf8bb, 0xf638,
+ 0xf6f9, 0xf5c4, 0xf97e, 0xfd60, 0xfc50, 0x009c,
+ 0x0102, 0xf888, 0xf4e1, 0xf4f0, 0xf632, 0xf823,
+ 0xf6e6, 0xf90b, 0xf950, 0xf19d, 0xf044, 0xf28d,
+ 0xf198, 0xf677, 0xf8be, 0xf580, 0xf992, 0xf956,
+ 0xed57, 0xe86b, 0xeeb9, 0xf21c, 0xef6b, 0xf0c2,
+ 0xf441, 0xedfa, 0xe748, 0xeae3, 0xf080, 0xf619,
+ 0xf80a, 0xf487, 0xf806, 0xf8b0, 0xeffc, 0xf3b0,
+ 0xf7b3, 0xed05, 0xee76, 0xf77f, 0xf28a, 0xf234,
+ 0xfb3a, 0xfbe0, 0xf82f, 0xf731, 0xf520, 0xf125,
+ 0xef43, 0xf23e, 0xf68e, 0xfa43, 0xfb18, 0xf6df,
+ 0xf945, 0xffe3, 0xf979, 0xf422, 0xf964, 0xf6e0,
+ 0xf587, 0xfe2e, 0xfcb6, 0xf96d, 0x030b, 0x03fb,
+ 0xf7cd, 0xf3e9, 0xf929, 0xfe72, 0x028b, 0x0170,
+ 0xfbec, 0xfc4e, 0x0128, 0xff4b, 0xfa9e, 0xfbcd,
+ 0xfd8d, 0xfb71, 0xf917, 0xf954, 0xfbaa, 0xfbe7,
+ 0xfc1e, 0x02a0, 0x082e, 0x0587, 0xff39, 0xf894,
+ 0xf8a6, 0x0117, 0x019c, 0xfa00, 0xf949, 0xf8ce,
+ 0xf338, 0xf41c, 0xf94f, 0xfd95, 0x05cf, 0x087e,
+ 0xff88, 0xfc2c, 0xfed8, 0xf6c3, 0xeaad, 0xe80e,
+ 0xee2e, 0xf90b, 0xfe53, 0xfc92, 0x0018, 0x01d1,
+ 0xfaff, 0xf8e7, 0xf81b, 0xf456, 0xf791, 0xf79b,
+ 0xf184, 0xf4ee, 0xf839, 0xf396, 0xf2f2, 0xf3ca,
+ 0xf34d, 0xf405, 0xf2a5, 0xf50f, 0xf8a2, 0xf39f,
+ 0xf071, 0xf038, 0xec0f, 0xf096, 0xfb4a, 0xfdaf,
+ 0xfd49, 0xfaf5, 0xf3c8, 0xf263, 0xf75d, 0xf98b,
+ 0xf901, 0xf963, 0xf93c, 0xf5da, 0xf619, 0xfcdc,
+ 0xfcb8, 0xf762, 0xf8ce, 0xf6c8, 0xf06a, 0xf457,
+ 0xf907, 0xf529, 0xf490, 0xf7e1, 0xf876, 0xf953,
+ 0xfb92, 0xfe56, 0x0117, 0x00f8, 0xffec, 0xff34,
+ 0xfbe8, 0xfba7, 0x01a4, 0x0368, 0xfea8, 0xfa4e,
+ 0xf6c7, 0xf768, 0xfd21, 0xffdf, 0x0333, 0x09b7,
+ 0x09ed, 0x08f4, 0x0a31, 0x059e, 0x0633, 0x0d3f,
+ 0x09d0, 0x0631, 0x0a6b, 0x0b78, 0x0fb9, 0x1242,
+ 0x062c, 0xff00, 0xffb9, 0xf7db, 0xf789, 0x02a8,
+ 0x0228, 0xfc7a, 0x002a, 0x0440, 0x029b, 0xfec8,
+ 0xfe08, 0x0493, 0x0cc1, 0x0f3d, 0x0ecb, 0x0f37,
+ 0x0f67, 0x0ec5, 0x0c67, 0x08bd, 0x09d7, 0x0cba,
+ 0x08c2, 0x0749, 0x0993, 0x006c, 0xf97c, 0xfe86,
+ 0xf7ed, 0xeef4, 0xf735, 0xf960, 0xf4e9, 0xfd0c,
+ 0xffe0, 0xfabe, 0x0067, 0x04d0, 0x0149, 0x01e6,
+ 0x00c7, 0xfaa1, 0xfa4c, 0xfe9d, 0xfe68, 0xf845,
+ 0xf32c, 0xf596, 0xfb94, 0xff01, 0x0162, 0x02e0,
+ 0xff96, 0xfae1, 0xfa81, 0xfb66, 0xfe3c, 0x0709,
+ 0x0b3d, 0x04f5, 0xfef2, 0xfcbc, 0xff16, 0x046d,
+ 0xfed9, 0xf425, 0xf45f, 0xf431, 0xf0e5, 0xf85a,
+ 0x020e, 0x040e, 0x002a, 0xf6a7, 0xf364, 0xfabd,
+ 0xfce3, 0xfa66, 0xfd33, 0x00d7, 0x01ff, 0x0000,
+ 0xfa57, 0xf724, 0xf80f, 0xf9bf, 0xfc9e, 0xff0a,
+ 0xfe58, 0xfe0d, 0x01e2, 0x040c, 0xff85, 0xfdaa,
+ 0x02db, 0x059d, 0x0665, 0x07fd, 0x0508, 0x0404,
+ 0x0862, 0x05ca, 0xfeb9, 0xfd1e, 0xfb5e, 0xf897,
+ 0xfa20, 0xf9e9, 0xf60b, 0xf6d1, 0xfa00, 0xf911,
+ 0xf9f9, 0xfd8e, 0xfa93, 0xf6ae, 0xf9ce, 0xfa46,
+ 0xf760, 0xfa8f, 0xfd18, 0xf8d4, 0xf63c, 0xf7ab,
+ 0xf636, 0xf17e, 0xf17f, 0xf6f3, 0xf885, 0xf6cc,
+ 0xf86b, 0xf91d, 0xf6c5, 0xf503, 0xf120, 0xeae4,
+ 0xe74a, 0xe745, 0xe9fa, 0xef0b, 0xf45b, 0xf5c0,
+ 0xf36d, 0xf250, 0xeeaf, 0xe941, 0xf073, 0xfc1b,
+ 0xf9dd, 0xf62d, 0xf8f8, 0xf7d5, 0xf89e, 0xfd20,
+ 0xfba6, 0xf983, 0xf881, 0xf3e6, 0xf232, 0xf284,
+ 0xf15a, 0xf530, 0xf7a4, 0xf136, 0xedb1, 0xf05b,
+ 0xf058, 0xf01a, 0xf146, 0xedfd, 0xeaaf, 0xed53,
+ 0xef89, 0xed6e, 0xead0, 0xe9b1, 0xea54, 0xeb1c,
+ 0xec04, 0xef76, 0xf105, 0xf040, 0xf2c0, 0xf2a7,
+ 0xf1b1, 0xf7da, 0xf612, 0xed1d, 0xf440, 0xfebe,
+ 0xfd4c, 0x0094, 0x0690, 0x050b, 0x04ea, 0x048b,
+ 0x022c, 0x056e, 0x0824, 0x07e3, 0x0b60, 0x0dbb,
+ 0x0c7d, 0x0d5f, 0x0f6d, 0x0e81, 0x0bb6, 0x0b0c,
+ 0x0add, 0x0975, 0x0c60, 0x1090, 0x0fa2, 0x0eff,
+ 0x0ede, 0x0df7, 0x116a, 0x12c5, 0x0f2b, 0x0d99,
+ 0x0a0a, 0x065d, 0x086a, 0x08c3, 0x0a43, 0x0f4a,
+ 0x0d5f, 0x0c8f, 0x117e, 0x0d97, 0x08ad, 0x0f1a,
+ 0x1520, 0x15a8, 0x154c, 0x135a, 0x1197, 0x1154,
+ 0x0fdc, 0x0bfc, 0x0861, 0x0887, 0x08e6, 0x082f,
+ 0x0c26, 0x1021, 0x0ede, 0x0e86, 0x0dcb, 0x099e,
+ 0x086d, 0x0a2a, 0x0af1, 0x0c85, 0x0e40, 0x0d2e,
+ 0x0a68, 0x0a0d, 0x0a7b, 0x0667, 0x05a0, 0x0dda,
+ 0x110a, 0x0c06, 0x0a40, 0x08e5, 0x055a, 0x05ae,
+ 0x053f, 0x0176, 0x024c, 0x0542, 0x0263, 0xfe72,
+ 0xff41, 0x010b, 0x02a2, 0x042e, 0xff76, 0xf7df,
+ 0xf6c8, 0xf696, 0xf338, 0xf10b, 0xed2c, 0xea8c,
+ 0xed0d, 0xeba6, 0xea01, 0xeddf, 0xeb5d, 0xe7ba,
+ 0xed4a, 0xee23, 0xeafd, 0xf157, 0xf7ee, 0xf776,
+ 0xf3ec, 0xec47, 0xe6f4, 0xe9cc, 0xec27, 0xea76,
+ 0xe9a3, 0xea67, 0xeb1f, 0xebca, 0xee59, 0xf136,
+ 0xefc2, 0xeddb, 0xf06d, 0xf300, 0xf43f, 0xf7f0,
+ 0xfba6, 0xfb0c, 0xf8f0, 0xfa49, 0xfc28, 0xfaf7,
+ 0xfb4b, 0xfc94, 0xfb7f, 0xfe95, 0x02cc, 0xfe50,
+ 0xf958, 0xf90e, 0xf7f2, 0xfb3c, 0x0000, 0xfcd5,
+ 0xfc45, 0xffaf, 0xfa95, 0xf696, 0xfa36, 0xf8da,
+ 0xf5a9, 0xf815, 0xf7ed, 0xf439, 0xf264, 0xf04e,
+ 0xee6c, 0xef8a, 0xf026, 0xed6e, 0xeb38, 0xec28,
+ 0xec87, 0xeb13, 0xeb5f, 0xec0a, 0xe925, 0xe4c0,
+ 0xe401, 0xe73a, 0xe9e4, 0xed61, 0xf362, 0xf1dd,
+ 0xeb05, 0xeeed, 0xf5cc, 0xf49a, 0xf6c1, 0xfa07,
+ 0xf668, 0xf739, 0xfa89, 0xf7ef, 0xf9d2, 0xfed3,
+ 0xfd65, 0xfd6e, 0x00fa, 0x01db, 0x0309, 0x04c0,
+ 0x044a, 0x016b, 0xfa3c, 0xf403, 0xf3a9, 0xf333,
+ 0xf3e6, 0xf975, 0xfbba, 0xfae8, 0xfec1, 0x0231,
+ 0xff3d, 0xf89a, 0xf393, 0xf564, 0xf8bf, 0xf63e,
+ 0xf600, 0xf903, 0xf50a, 0xf148, 0xf3e7, 0xf394,
+ 0xf2d3, 0xf4d9, 0xf0a0, 0xeb08, 0xedd9, 0xf3a1,
+ 0xf6a2, 0xf694, 0xf63a, 0xf95b, 0xfc49, 0xfcc6,
+ 0xfd30, 0xfbab, 0xfa6d, 0xfb4b, 0xf965, 0xf8a3,
+ 0xfcfc, 0x003d, 0x0149, 0x0198, 0x0126, 0x012b,
+ 0xfee5, 0xfe82, 0x04b3, 0x0685, 0x043f, 0x07a8,
+ 0x0817, 0x03c8, 0x047d, 0x0550, 0x03ae, 0x0454,
+ 0x04af, 0x04f3, 0x065c, 0x0720, 0x0966, 0x0bc2,
+ 0x0b3e, 0x08c5, 0x050b, 0x0475, 0x04eb, 0xfe69,
+ 0xf9dc, 0xfe0c, 0x0014, 0xff4a, 0x01dd, 0x049a,
+ 0x03e2, 0xfe2b, 0xf77e, 0xf53f, 0xf457, 0xf68f,
+ 0xfcc6, 0xfe1d, 0xfd65, 0xfd38, 0xf77a, 0xf70d,
+ 0xfe95, 0xfc21, 0xf4dd, 0xf579, 0xf5c9, 0xf37f,
+ 0xf20f, 0xf053, 0xf289, 0xf647, 0xf551, 0xf489,
+ 0xf428, 0xf124, 0xf047, 0xef8a, 0xec71, 0xee40,
+ 0xf22a, 0xef9f, 0xec75, 0xef03, 0xf318, 0xf654,
+ 0xf8e1, 0xf8ed, 0xf810, 0xf881, 0xf8af, 0xf9fd,
+ 0xfdbd, 0xfe83, 0xfb7f, 0xfabf, 0xfb78, 0xfa89,
+ 0xfa9e, 0xfac0, 0xf702, 0xf273, 0xf143, 0xf1a6,
+ 0xf168, 0xf203, 0xf4d5, 0xf809, 0xf978, 0xf97b,
+ 0xf906, 0xf85f, 0xf742, 0xf540, 0xf39b, 0xf378,
+ 0xf428, 0xf5dc, 0xf6a1, 0xf388, 0xf1b3, 0xf493,
+ 0xf502, 0xf1fc, 0xf1ac, 0xf387, 0xf611, 0xf771,
+ 0xf355, 0xef70, 0xf2ca, 0xf82b, 0xfa9e, 0xf997,
+ 0xf704, 0xf850, 0xfa1c, 0xf7e0, 0xf93c, 0xfdcd,
+ 0xfecd, 0x020a, 0x0717, 0x0469, 0xff0e, 0xffe4,
+ 0x02d7, 0x0168, 0xfc79, 0xf8e4, 0xf812, 0xf994,
+ 0xfcda, 0xfd15, 0xfb96, 0xfee3, 0x00b1, 0xfda9,
+ 0xff42, 0x02bb, 0x012e, 0xffd6, 0xff94, 0xfeec,
+ 0x0065, 0x004d, 0xfe05, 0xfe72, 0xfecc, 0xfca6,
+ 0xfb0d, 0xfaa9, 0xfa24, 0xf76f, 0xf3f5, 0xf3e3,
+ 0xf479, 0xf3cb, 0xf59d, 0xf873, 0xfb12, 0xfeaa,
+ 0xfedc, 0xfc32, 0xfbc5, 0xfb91, 0xfb4b, 0xfc70,
+ 0xfbd2, 0xfbca, 0xfe77, 0xfd1e, 0xf8a6, 0xf906,
+ 0xfb98, 0xfa81, 0xf90c, 0xfaf1, 0xfc95, 0xfb35,
+ 0xf8c1, 0xf4cd, 0xf131, 0xf46f, 0xf9e0, 0xf9b9,
+ 0xfabb, 0xfdc6, 0xf9d7, 0xf591, 0xf868, 0xf9ee,
+ 0xf8d4, 0xfa2e, 0xfa37, 0xf882, 0xf8aa, 0xf82a,
+ 0xf634, 0xf52c, 0xf499, 0xf3a7, 0xf1f4, 0xf118,
+ 0xf4a4, 0xfa64, 0xfcdb, 0xfc2c, 0xfb6d, 0xfbcc,
+ 0xfcbe, 0xfe0a, 0x00dc, 0x03e9, 0x03f1, 0x0275,
+ 0x0336, 0x0585, 0x065c, 0x0610, 0x0751, 0x0867,
+ 0x0684, 0x0594, 0x0662, 0x034a, 0xff26, 0xfec3,
+ 0xfe15, 0xfe40, 0x026b, 0x0425, 0x035d, 0x05a3,
+ 0x0635, 0x0475, 0x064e, 0x06f2, 0x04f4, 0x08ff,
+ 0x0f62, 0x0f72, 0x0e13, 0x0f82, 0x0f76, 0x0d50,
+ 0x0be9, 0x0b0a, 0x095e, 0x0739, 0x0673, 0x084f,
+ 0x0a88, 0x0a7d, 0x0b22, 0x0e45, 0x0e4e, 0x0bb0,
+ 0x0d27, 0x0df6, 0x09b2, 0x082c, 0x08d2, 0x0656,
+ 0x066d, 0x08b3, 0x078d, 0x0743, 0x0815, 0x06e4,
+ 0x0893, 0x0c01, 0x0c39, 0x0c47, 0x0bed, 0x092c,
+ 0x07f1, 0x07b5, 0x0615, 0x070b, 0x0bb5, 0x0f97,
+ 0x108c, 0x1002, 0x0ec6, 0x0c29, 0x09d7, 0x0a82,
+ 0x0cd5, 0x0e1e, 0x0d43, 0x0ac8, 0x096c, 0x0a0a,
+ 0x0a57, 0x0903, 0x062e, 0x03b7, 0x0261, 0x0022,
+ 0xff98, 0x0299, 0x0262, 0xfec7, 0xfeab, 0xffc2,
+ 0xffd8, 0x0275, 0x04ce, 0x049a, 0x049e, 0x039e,
+ 0x032d, 0x06b5, 0x0797, 0x0380, 0x028d, 0x03de,
+ 0x0291, 0x0152, 0x0055, 0x0099, 0x058f, 0x07ef,
+ 0x0483, 0x0540, 0x0873, 0x06ef, 0x0785, 0x0be1,
+ 0x0bef, 0x08ed, 0x0714, 0x048b, 0x0145, 0x0028,
+ 0x019b, 0x0349, 0x040e, 0x0403, 0x0318, 0x03c8,
+ 0x0624, 0x0630, 0x05ca, 0x0620, 0x032b, 0x0046,
+ 0x0053, 0x0032, 0x01cc, 0x0306, 0x00c3, 0x024e,
+ 0x0491, 0xffa8, 0xfce3, 0xff91, 0x0000, 0xffdb,
+ 0xff6f, 0xfc97, 0xfb57, 0xfa46, 0xf720, 0xf58b,
+ 0xf4c5, 0xf35e, 0xf371, 0xf4e5, 0xf6d1, 0xf84e,
+ 0xf89c, 0xf83d, 0xf839, 0xfa57, 0xfbfa, 0xfa4b,
+ 0xfb2e, 0xff81, 0x0139, 0x0150, 0xff98, 0xfc29,
+ 0xfd26, 0xff77, 0x0005, 0x03b6, 0x0592, 0x0367,
+ 0x03de, 0x02dd, 0xffe8, 0x01c7, 0x03ed, 0x0534,
+ 0x0885, 0x0731, 0x0287, 0x0137, 0xfff9, 0xfd8c,
+ 0xfb12, 0xf835, 0xf802, 0xf7c1, 0xf427, 0xf212,
+ 0xf056, 0xecba, 0xec94, 0xeddb, 0xebe3, 0xea11,
+ 0xe9cb, 0xea41, 0xeb7e, 0xeb8b, 0xebb1, 0xedfe,
+ 0xf085, 0xf3c1, 0xf849, 0xfb3c, 0xfbf1, 0xfb8c,
+ 0xfc36, 0xffce, 0x0278, 0x01ad, 0x00ba, 0x000b,
+ 0xffda, 0x02c6, 0x05f7, 0x06ac, 0x07d5, 0x09e5,
+ 0x0ac3, 0x0a57, 0x092f, 0x0852, 0x0817, 0x07f7,
+ 0x0904, 0x0be1, 0x0ef0, 0x0f98, 0x0d88, 0x0c9c,
+ 0x0dfb, 0x0f1b, 0x1068, 0x104c, 0x0d6e, 0x0e2e,
+ 0x1239, 0x1269, 0x1238, 0x1492, 0x14ab, 0x13d3,
+ 0x1420, 0x13c8, 0x142d, 0x1412, 0x1113, 0x0ee2,
+ 0x0efd, 0x0f3a, 0x0fe4, 0x10c7, 0x1119, 0x11b5,
+ 0x1272, 0x11fe, 0x109d, 0x1012, 0x1002, 0x0ef7,
+ 0x0dce, 0x0bf2, 0x08fe, 0x08e9, 0x0b60, 0x0c98,
+ 0x0dcc, 0x0ea5, 0x0dc6, 0x0ea0, 0x10b5, 0x10d6,
+ 0x110c, 0x1271, 0x136c, 0x1350, 0x1150, 0x0e8f,
+ 0x0dd0, 0x0ea8, 0x0e50, 0x0c7d, 0x0be9, 0x0c70,
+ 0x0c44, 0x0cf4, 0x0c9b, 0x084b, 0x04fc, 0x03e9,
+ 0x00fe, 0xfef4, 0xff52, 0xffd9, 0x012d, 0x0094,
+ 0xfcab, 0xf99b, 0xf6b4, 0xf45d, 0xf6ac, 0xf9ff,
+ 0xfa96, 0xf9cc, 0xf741, 0xf4a5, 0xf330, 0xf080,
+ 0xef16, 0xf11a, 0xf301, 0xf406, 0xf403, 0xf25d,
+ 0xf3a1, 0xf7a6, 0xf795, 0xf583, 0xf720, 0xf865,
+ 0xf772, 0xf94c, 0xfb33, 0xf8e1, 0xf802, 0xfa88,
+ 0xfb59, 0xfac8, 0xfad2, 0xfaa3, 0xface, 0xfb1d,
+ 0xfa99, 0xfa18, 0xfaa2, 0xfc57, 0xfc93, 0xf9c4,
+ 0xf7e8, 0xf852, 0xf943, 0xfbe3, 0xfdc4, 0xfc33,
+ 0xfb59, 0xfbeb, 0xfb9b, 0xfd11, 0xffc3, 0xffdf,
+ 0xfea8, 0xfdea, 0xfd80, 0xfe3d, 0xff2a, 0xfe67,
+ 0xfd72, 0xfe1b, 0xff3d, 0xfed9, 0xfba6, 0xf740,
+ 0xf5e1, 0xf69f, 0xf56c, 0xf4b2, 0xf60a, 0xf57f,
+ 0xf383, 0xf1fb, 0xf01b, 0xef1d, 0xeded, 0xec1d,
+ 0xee9b, 0xf3ce, 0xf627, 0xf5dd, 0xf360, 0xf194,
+ 0xf40e, 0xf684, 0xf85e, 0xfd7b, 0x00d2, 0xfe3b,
+ 0xfa2b, 0xf874, 0xf88e, 0xf7e5, 0xf78c, 0xf964,
+ 0xf906, 0xf65c, 0xf5e3, 0xf48d, 0xf23f, 0xf3fb,
+ 0xf6a2, 0xf67d, 0xf521, 0xf3c3, 0xf419, 0xf561,
+ 0xf541, 0xf580, 0xf5d9, 0xf457, 0xf33b, 0xf28f,
+ 0xf0a3, 0xf021, 0xf1d3, 0xf1ce, 0xefb5, 0xefa4,
+ 0xf1b0, 0xf2ca, 0xf34a, 0xf353, 0xf282, 0xf33c,
+ 0xf416, 0xf2cc, 0xf345, 0xf66d, 0xf855, 0xf75e,
+ 0xf4f2, 0xf5c7, 0xfa53, 0xfc7e, 0xfcb2, 0xfe1d,
+ 0xfee1, 0xfef0, 0xfe19, 0xfc69, 0xfd1b, 0xfe09,
+ 0xfd3c, 0xfdbc, 0xfd83, 0xfbd1, 0xfbe7, 0xfc52,
+ 0xfd34, 0xff40, 0xff23, 0xfdb9, 0xfca4, 0xfbd4,
+ 0xfd46, 0xfef8, 0xff36, 0xffd3, 0xff50, 0xfeb0,
+ 0xff2e, 0xfe6e, 0x0068, 0x0460, 0x02f3, 0x0167,
+ 0x0310, 0x0158, 0x0013, 0x031a, 0x04d1, 0x04e4,
+ 0x04d4, 0x0402, 0x048d, 0x05b1, 0x0552, 0x048e,
+ 0x03e3, 0x0319, 0x01ee, 0x007a, 0xffe8, 0x004b,
+ 0x01c4, 0x034d, 0x024f, 0x00c8, 0x0174, 0x020e,
+ 0x0055, 0xfc85, 0xfa5f, 0xfcf5, 0xff38, 0xfda0,
+ 0xfc6e, 0xfd25, 0xfdc6, 0xfdb5, 0xfd08, 0xfbdf,
+ 0xf9af, 0xf83e, 0xf97c, 0xfa73, 0xfaaf, 0xfb7d,
+ 0xfae3, 0xfb22, 0xfcca, 0xfbb7, 0xfa83, 0xf998,
+ 0xf6da, 0xf86c, 0xfc25, 0xfad1, 0xf98e, 0xf963,
+ 0xf803, 0xfa42, 0xfbdc, 0xf915, 0xfa24, 0xfd92,
+ 0xfd2e, 0xfc3d, 0xfc4e, 0xfd68, 0xff64, 0xfe45,
+ 0xfcc1, 0xfedf, 0xfe81, 0xfa8d, 0xfa5f, 0xfd0c,
+ 0xfdd1, 0xfee5, 0x008c, 0xff27, 0xfd70, 0xfdee,
+ 0xfcc6, 0xfb4c, 0xfc26, 0xfb49, 0xfa24, 0xfcac,
+ 0xfe57, 0xfd8a, 0xfd9e, 0xfdad, 0xfcf0, 0xfb5d,
+ 0xf8e1, 0xf936, 0xfc32, 0xfcb9, 0xfb5f, 0xfab3,
+ 0xf97c, 0xf869, 0xf912, 0xf90e, 0xf7d7, 0xf8b9,
+ 0xf989, 0xf6cd, 0xf546, 0xf6ba, 0xf715, 0xf82b,
+ 0xf9e5, 0xf90a, 0xfa79, 0xfdbf, 0xfbd2, 0xf9d6,
+ 0xfc59, 0xfdae, 0xfded, 0xff3b, 0xffbe, 0x00a1,
+ 0x00fc, 0xfedf, 0xfdbe, 0xfe65, 0xfea8, 0xfe27,
+ 0xfbaa, 0xf97c, 0xfa5e, 0xf9b7, 0xf71f, 0xf80a,
+ 0xfa36, 0xfa31, 0xf9d3, 0xf8f9, 0xf87f, 0xfa27,
+ 0xfaa8, 0xfa00, 0xfba3, 0xfcce, 0xfbb8, 0xfb07,
+ 0xfa23, 0xf95f, 0xfade, 0xfbfd, 0xfac2, 0xf96a,
+ 0xf89a, 0xf706, 0xf4bc, 0xf46a, 0xf7a0, 0xfad1,
+ 0xfb4a, 0xfa6a, 0xf974, 0xfa36, 0xfcba, 0xfd44,
+ 0xfbd2, 0xfb14, 0xfa41, 0xf830, 0xf5f2, 0xf610,
+ 0xf84f, 0xf826, 0xf68d, 0xf747, 0xf6ed, 0xf582,
+ 0xf6d1, 0xf740, 0xf5fe, 0xf65c, 0xf5c0, 0xf483,
+ 0xf547, 0xf530, 0xf54c, 0xf7b0, 0xf8f0, 0xfa60,
+ 0xfd67, 0xfd1e, 0xfb43, 0xfc86, 0xfd0c, 0xfb55,
+ 0xfbc2, 0xfd30, 0xfce4, 0xfd37, 0xfdf4, 0xfc01,
+ 0xf93b, 0xf8b7, 0xf9e4, 0xfbd9, 0xfd5b, 0xfcf6,
+ 0xfbef, 0xfc0a, 0xfcda, 0xfcb9, 0xfb54, 0xfade,
+ 0xfb77, 0xfbad, 0xfe1a, 0x021c, 0x01d3, 0xff1a,
+ 0xff69, 0x009f, 0x0034, 0xffe0, 0x00d2, 0x02c8,
+ 0x0477, 0x0537, 0x052c, 0x03b9, 0x02fc, 0x0552,
+ 0x0741, 0x0684, 0x060a, 0x06f8, 0x0870, 0x093b,
+ 0x077d, 0x0537, 0x059c, 0x0665, 0x0554, 0x04bd,
+ 0x05c8, 0x068c, 0x0546, 0x024d, 0xffe4, 0xfeee,
+ 0xfe9b, 0xff77, 0x00f1, 0x0119, 0x0113, 0x018c,
+ 0x016b, 0x02c6, 0x054b, 0x04f3, 0x03df, 0x0549,
+ 0x0654, 0x063a, 0x072d, 0x084d, 0x0834, 0x0793,
+ 0x081c, 0x0a03, 0x0aec, 0x0a16, 0x08d3, 0x0785,
+ 0x0682, 0x053a, 0x0309, 0x01fc, 0x02fb, 0x0439,
+ 0x0414, 0x0258, 0x01d1, 0x031f, 0x0261, 0x010a,
+ 0x0273, 0x038f, 0x037c, 0x0392, 0x01b6, 0xff3f,
+ 0xfea1, 0xfda3, 0xfbdc, 0xfadb, 0xfa8a, 0xfb1f,
+ 0xfc2a, 0xfd21, 0xfe7f, 0xff85, 0xffbc, 0xff6a,
+ 0xfe92, 0xfee2, 0x0093, 0x011d, 0x007e, 0x0053,
+ 0x00bb, 0x0191, 0x0299, 0x036f, 0x03c6, 0x03ec,
+ 0x0512, 0x05e7, 0x03ed, 0x015c, 0x011c, 0x01ac,
+ 0x01ae, 0x01ae, 0x016e, 0x0154, 0x0245, 0x0283,
+ 0x00e7, 0x00af, 0x032f, 0x0548, 0x0635, 0x0673,
+ 0x053c, 0x0421, 0x0393, 0x021f, 0x0218, 0x039a,
+ 0x02fe, 0x021c, 0x033b, 0x0308, 0x00cf, 0xff7c,
+ 0xff50, 0xfe97, 0xfc8b, 0xfa05, 0xf8b6, 0xf949,
+ 0xf9e7, 0xf871, 0xf705, 0xf843, 0xfa0d, 0xfae2,
+ 0xfba8, 0xfc36, 0xfd64, 0xfe9b, 0xfdc0, 0xfde6,
+ 0x0094, 0x011e, 0xff73, 0xff25, 0xffc8, 0x0047,
+ 0x0076, 0x0004, 0xffbd, 0x0066, 0x01c2, 0x0235,
+ 0x0165, 0x0207, 0x0379, 0x02ea, 0x0280, 0x0304,
+ 0x0230, 0x015c, 0x008c, 0xfe6c, 0xfda2, 0xfdf4,
+ 0xfcb9, 0xfb9b, 0xfad9, 0xf8e5, 0xf751, 0xf625,
+ 0xf41c, 0xf32b, 0xf40a, 0xf4be, 0xf4ed, 0xf506,
+ 0xf47c, 0xf3c0, 0xf445, 0xf5eb, 0xf6de, 0xf696,
+ 0xf6ae, 0xf805, 0xf94d, 0xf9bb, 0xfa40, 0xfabf,
+ 0xfa2a, 0xf97c, 0xf9da, 0xfa56, 0xfa69, 0xfa43,
+ 0xf9a5, 0xf994, 0xfadf, 0xfba5, 0xfb1d, 0xfb8d,
+ 0xfdc8, 0x0068, 0x0298, 0x0342, 0x01fa, 0x0143,
+ 0x0295, 0x044f, 0x0560, 0x058b, 0x05a2, 0x072c,
+ 0x0834, 0x079b, 0x08bc, 0x0a6d, 0x0985, 0x0948,
+ 0x0aec, 0x0c25, 0x0df1, 0x0f00, 0x0e48, 0x0fc7,
+ 0x11b6, 0x10ed, 0x121a, 0x14e2, 0x14b8, 0x1439,
+ 0x144a, 0x133c, 0x13d6, 0x154f, 0x14df, 0x1475,
+ 0x13a6, 0x116b, 0x10fc, 0x1289, 0x133e, 0x127b,
+ 0x113b, 0x1142, 0x121c, 0x1204, 0x123c, 0x12b3,
+ 0x1180, 0x0fff, 0x0fc8, 0x110a, 0x12ed, 0x12ea,
+ 0x122a, 0x1306, 0x131d, 0x1219, 0x1192, 0x10cc,
+ 0x1165, 0x1370, 0x13b6, 0x1324, 0x1239, 0x104e,
+ 0x1048, 0x10c4, 0x0f35, 0x0ef2, 0x0f9e, 0x0ed7,
+ 0x0e70, 0x0d57, 0x0ae4, 0x0a5c, 0x0b32, 0x0b71,
+ 0x0b1b, 0x097d, 0x0746, 0x055b, 0x03d8, 0x03d5,
+ 0x03dd, 0x023b, 0x00ae, 0xffdf, 0xff91, 0xff61,
+ 0xfe0d, 0xfd71, 0xfde2, 0xfbc6, 0xf920, 0xf9af,
+ 0xfb38, 0xfbec, 0xfb93, 0xf9c1, 0xf8dd, 0xf9c8,
+ 0xf9e1, 0xf8bb, 0xf802, 0xf837, 0xf876, 0xf801,
+ 0xf7a2, 0xf807, 0xf8cb, 0xf955, 0xf925, 0xf947,
+ 0xfa54, 0xfab1, 0xfb48, 0xfdd5, 0x002b, 0x0181,
+ 0x0353, 0x0428, 0x0306, 0x0234, 0x02fe, 0x0457,
+ 0x04f3, 0x0524, 0x05d3, 0x0611, 0x058f, 0x0617,
+ 0x0709, 0x0604, 0x043b, 0x03ce, 0x039e, 0x02ff,
+ 0x02d7, 0x0213, 0x00a8, 0x00dc, 0x0196, 0x005f,
+ 0xfe42, 0xfc87, 0xfba4, 0xfbe1, 0xfb57, 0xf8fc,
+ 0xf71a, 0xf6f3, 0xf725, 0xf6e7, 0xf74c, 0xf85b,
+ 0xf898, 0xf8af, 0xf950, 0xf928, 0xf97a, 0xfaae,
+ 0xf9f9, 0xf900, 0xf9f7, 0xfa85, 0xfb67, 0xfd4a,
+ 0xfcc6, 0xfb66, 0xfc8a, 0xfe3c, 0xff70, 0x0090,
+ 0x0042, 0xff83, 0x0034, 0x00b3, 0xff90, 0xfee6,
+ 0xffb4, 0xff3e, 0xfd99, 0xfe2c, 0xff95, 0xff13,
+ 0xfeb9, 0xff2c, 0xfe2e, 0xfbde, 0xf993, 0xf84c,
+ 0xf856, 0xf88f, 0xf8d0, 0xf95b, 0xf908, 0xf80b,
+ 0xf734, 0xf5ed, 0xf526, 0xf5ff, 0xf69b, 0xf603,
+ 0xf593, 0xf4fb, 0xf3f4, 0xf44d, 0xf59b, 0xf645,
+ 0xf76c, 0xf91e, 0xf9fe, 0xfaf2, 0xfbbc, 0xfb45,
+ 0xfb1c, 0xfb3d, 0xfadb, 0xfba0, 0xfcf5, 0xfdcb,
+ 0xffc5, 0x0181, 0x0150, 0x0195, 0x0259, 0x01e2,
+ 0x01f3, 0x0344, 0x03f3, 0x0423, 0x048f, 0x03f5,
+ 0x0281, 0x0282, 0x039e, 0x03d3, 0x0458, 0x0639,
+ 0x0786, 0x07a1, 0x0776, 0x0750, 0x076b, 0x0749,
+ 0x06ac, 0x064b, 0x0566, 0x03ca, 0x0371, 0x046c,
+ 0x04cd, 0x044f, 0x03f0, 0x03fa, 0x040c, 0x0430,
+ 0x047e, 0x04c0, 0x057f, 0x06b0, 0x06ee, 0x0603,
+ 0x04d0, 0x040d, 0x045b, 0x04e9, 0x04a1, 0x041a,
+ 0x03a4, 0x02d1, 0x01bd, 0x0113, 0x015a, 0x0122,
+ 0xffbe, 0xffae, 0x00ab, 0x0022, 0xff4d, 0xff04,
+ 0xfe49, 0xfe5e, 0xff0e, 0xfea3, 0xfe68, 0xff50,
+ 0x002d, 0x000c, 0xfe8f, 0xfcce, 0xfbcc, 0xfaff,
+ 0xfad6, 0xfb15, 0xfa8d, 0xfb11, 0xfd4a, 0xfdee,
+ 0xfce1, 0xfcc7, 0xfce1, 0xfc04, 0xfb8c, 0xfbd5,
+ 0xfc35, 0xfd33, 0xfeba, 0xffa6, 0xffce, 0xffef,
+ 0x0081, 0x00e8, 0x001d, 0xff34, 0xff2d, 0xfe58,
+ 0xfcf2, 0xfd27, 0xfdbc, 0xfd31, 0xfcc3, 0xfcc1,
+ 0xfc8e, 0xfc01, 0xfafa, 0xfa0f, 0xf9ce, 0xf9f6,
+ 0xf9d6, 0xf8e4, 0xf8ad, 0xfa19, 0xfa93, 0xf9e6,
+ 0xfa94, 0xfb72, 0xfa7c, 0xf889, 0xf6df, 0xf632,
+ 0xf5c1, 0xf4bd, 0xf489, 0xf55d, 0xf603, 0xf635,
+ 0xf557, 0xf476, 0xf5b4, 0xf715, 0xf6bb, 0xf685,
+ 0xf71c, 0xf7f9, 0xf912, 0xf9d7, 0xfa8b, 0xfb25,
+ 0xfb28, 0xfc29, 0xfdfb, 0xfe3b, 0xfdb5, 0xfd92,
+ 0xfcc6, 0xfbe1, 0xfbbf, 0xfb9a, 0xfb5e, 0xfb76,
+ 0xfbc6, 0xfc06, 0xfbee, 0xfbce, 0xfbf3, 0xfc58,
+ 0xfd1b, 0xfd92, 0xfd73, 0xfd4a, 0xfc15, 0xf9ff,
+ 0xf980, 0xf9a2, 0xf84a, 0xf79d, 0xf89c, 0xf8d9,
+ 0xf806, 0xf7c7, 0xf7f2, 0xf745, 0xf5f3, 0xf59f,
+ 0xf668, 0xf6ba, 0xf660, 0xf662, 0xf726, 0xf822,
+ 0xf8a2, 0xf91f, 0xf9d6, 0xf9e8, 0xf9db, 0xf9e2,
+ 0xf8b9, 0xf78d, 0xf765, 0xf6bf, 0xf645, 0xf679,
+ 0xf572, 0xf465, 0xf4bd, 0xf464, 0xf395, 0xf418,
+ 0xf525, 0xf5df, 0xf5d0, 0xf54c, 0xf61d, 0xf79d,
+ 0xf7e5, 0xf7c9, 0xf80e, 0xf87f, 0xf929, 0xf8f3,
+ 0xf789, 0xf63e, 0xf561, 0xf50b, 0xf56f, 0xf5c0,
+ 0xf61b, 0xf729, 0xf83c, 0xf8b3, 0xf895, 0xf862,
+ 0xf8e1, 0xf96b, 0xf95c, 0xf95e, 0xf94a, 0xf937,
+ 0xf9c4, 0xf99d, 0xf884, 0xf852, 0xf8c4, 0xf92c,
+ 0xf9e9, 0xfa48, 0xfaaf, 0xfbe1, 0xfc4e, 0xfc18,
+ 0xfcbe, 0xfda3, 0xfee4, 0x0075, 0x00ee, 0x0185,
+ 0x02e9, 0x033f, 0x0355, 0x03c7, 0x02eb, 0x024d,
+ 0x03a8, 0x0517, 0x055f, 0x04ae, 0x03bb, 0x03b1,
+ 0x03dc, 0x03d5, 0x0461, 0x044b, 0x03a0, 0x0442,
+ 0x04e3, 0x0442, 0x03e5, 0x0429, 0x04cc, 0x05c3,
+ 0x05ec, 0x0541, 0x0481, 0x0417, 0x056a, 0x07ee,
+ 0x0912, 0x092d, 0x0943, 0x087b, 0x07b2, 0x07fa,
+ 0x07dc, 0x06f7, 0x06c3, 0x075c, 0x07b0, 0x07a1,
+ 0x07e1, 0x085e, 0x0880, 0x0857, 0x080a, 0x07cb,
+ 0x07e2, 0x0765, 0x0652, 0x069f, 0x07b0, 0x0772,
+ 0x06c9, 0x064a, 0x0539, 0x04c4, 0x04c3, 0x0310,
+ 0x0090, 0xff43, 0xff02, 0xff57, 0xffc1, 0x0008,
+ 0x00e1, 0x016c, 0x0079, 0xffb3, 0x005e, 0x011b,
+ 0x00f7, 0x007e, 0x001a, 0xff91, 0xff04, 0xff2d,
+ 0xff93, 0xff18, 0xfe75, 0xfe76, 0xfe58, 0xfe56,
+ 0xfef3, 0xff26, 0xff15, 0xffc2, 0x0014, 0xff80,
+ 0xff72, 0xffe7, 0x000d, 0x0087, 0x0166, 0x01f5,
+ 0x0275, 0x035a, 0x0486, 0x0574, 0x05a1, 0x05ab,
+ 0x0637, 0x0693, 0x0698, 0x06b9, 0x0668, 0x0560,
+ 0x0437, 0x037b, 0x036a, 0x035a, 0x0309, 0x0331,
+ 0x02be, 0x00fa, 0x0031, 0x0077, 0xffab, 0xff14,
+ 0xffa9, 0xff2a, 0xfddc, 0xfdde, 0xfe2b, 0xfd6d,
+ 0xfcbf, 0xfc92, 0xfbf9, 0xfb2a, 0xfb0c, 0xfb6e,
+ 0xfbb0, 0xfb84, 0xfb06, 0xfb73, 0xfd56, 0xfed7,
+ 0xff1f, 0xff76, 0x0014, 0x00f2, 0x0272, 0x0335,
+ 0x02de, 0x0380, 0x049c, 0x0443, 0x03de, 0x0486,
+ 0x046f, 0x035f, 0x02ea, 0x02ff, 0x02ef, 0x031c,
+ 0x039e, 0x03bf, 0x0328, 0x0201, 0x0078, 0xff39,
+ 0xff1f, 0xffad, 0xfff5, 0x0010, 0xffa5, 0xfe4f,
+ 0xfd86, 0xfdbf, 0xfd3c, 0xfbcb, 0xfaaa, 0xfa1c,
+ 0xf9d0, 0xf8d0, 0xf6ba, 0xf560, 0xf567, 0xf528,
+ 0xf494, 0xf490, 0xf44f, 0xf32c, 0xf1c8, 0xf0db,
+ 0xf0a2, 0xf0cc, 0xf156, 0xf2a7, 0xf462, 0xf60f,
+ 0xf796, 0xf846, 0xf882, 0xf9b4, 0xfad0, 0xfa73,
+ 0xfa5e, 0xfb59, 0xfba1, 0xfb62, 0xfba7, 0xfbb1,
+ 0xfbb8, 0xfcbe, 0xfe03, 0xfee9, 0xffc8, 0x00a0,
+ 0x01c2, 0x0311, 0x03a6, 0x0415, 0x0589, 0x0764,
+ 0x0890, 0x08c9, 0x08a8, 0x0969, 0x0b02, 0x0bdd,
+ 0x0b82, 0x0b53, 0x0c31, 0x0d08, 0x0cf4, 0x0cd2,
+ 0x0ce1, 0x0c5d, 0x0bbb, 0x0b60, 0x0ab7, 0x0a0c,
+ 0x09cc, 0x0a1c, 0x0ba6, 0x0d56, 0x0d3a, 0x0c78,
+ 0x0cf2, 0x0df9, 0x0ebc, 0x0f73, 0x1014, 0x1086,
+ 0x10ce, 0x1124, 0x11d0, 0x1271, 0x12f3, 0x13e7,
+ 0x149f, 0x1435, 0x13aa, 0x13e5, 0x1489, 0x158e,
+ 0x16f7, 0x17c1, 0x16ed, 0x1541, 0x149d, 0x1516,
+ 0x15a9, 0x1695, 0x173b, 0x166b, 0x1582, 0x153b,
+ 0x1439, 0x1318, 0x12a0, 0x11e1, 0x1111, 0x1058,
+ 0x0f31, 0x0e21, 0x0d10, 0x0c2b, 0x0c67, 0x0c18,
+ 0x0a39, 0x08bb, 0x07b8, 0x06ad, 0x0606, 0x0494,
+ 0x02e0, 0x02b3, 0x024f, 0x00a5, 0xff03, 0xfd2f,
+ 0xfb54, 0xf9f5, 0xf87d, 0xf7ac, 0xf7ad, 0xf763,
+ 0xf791, 0xf834, 0xf840, 0xf8af, 0xf974, 0xf981,
+ 0xf9b7, 0xfa1c, 0xfa1a, 0xfa9d, 0xfba6, 0xfc60,
+ 0xfc9e, 0xfc71, 0xfccf, 0xfe07, 0xff0f, 0x0069,
+ 0x028f, 0x03ff, 0x0446, 0x044e, 0x04d1, 0x0650,
+ 0x07ca, 0x07c5, 0x06d7, 0x0645, 0x066c, 0x06d8,
+ 0x06a9, 0x0602, 0x05ba, 0x05f0, 0x0660, 0x066d,
+ 0x05b0, 0x051c, 0x050a, 0x046a, 0x02dc, 0x00cc,
+ 0xff71, 0xfff7, 0x008a, 0xff6b, 0xfe76, 0xfe0a,
+ 0xfc8b, 0xfb4b, 0xfb15, 0xfa62, 0xf9f8, 0xfa69,
+ 0xf9e1, 0xf88c, 0xf7ad, 0xf712, 0xf6e4, 0xf6fa,
+ 0xf6ba, 0xf6c9, 0xf70a, 0xf6bf, 0xf6bd, 0xf763,
+ 0xf825, 0xf921, 0xfa52, 0xfbb1, 0xfd36, 0xfe07,
+ 0xfe0e, 0xfe18, 0xfe4d, 0xfea8, 0xfef8, 0xff06,
+ 0xff4a, 0xffcb, 0x0010, 0xfff3, 0xff3a, 0xfe6f,
+ 0xfe40, 0xfe27, 0xfe08, 0xfe1e, 0xfe03, 0xfdf8,
+ 0xfdc1, 0xfce3, 0xfc70, 0xfc2e, 0xfb13, 0xfa86,
+ 0xfae1, 0xfaad, 0xfa14, 0xf92e, 0xf7eb, 0xf758,
+ 0xf783, 0xf826, 0xf888, 0xf6c1, 0xf3f0, 0xf26f,
+ 0xf115, 0xefd2, 0xf060, 0xf1db, 0xf38b, 0xf532,
+ 0xf4e7, 0xf318, 0xf233, 0xf296, 0xf42e, 0xf736,
+ 0xfae2, 0xfdc7, 0xfe2b, 0xfc3d, 0xfa98, 0xfa6e,
+ 0xfb83, 0xfdb4, 0xff6c, 0xff48, 0xfda3, 0xfb16,
+ 0xf96d, 0xfa9e, 0xfd9e, 0x007f, 0x024c, 0x0201,
+ 0xfff4, 0xfde2, 0xfd1b, 0xfe8c, 0x01d7, 0x04df,
+ 0x05f1, 0x04d6, 0x029e, 0x00cd, 0x0048, 0x01f1,
+ 0x056e, 0x0803, 0x0862, 0x078c, 0x05d9, 0x041b,
+ 0x03a5, 0x042f, 0x0540, 0x061e, 0x0563, 0x0397,
+ 0x01ef, 0x00cc, 0x017d, 0x0426, 0x06b3, 0x07e9,
+ 0x0723, 0x04a7, 0x02d5, 0x02bf, 0x0384, 0x04bf,
+ 0x05ad, 0x0557, 0x03ae, 0x0129, 0xff7b, 0x001c,
+ 0x021e, 0x040e, 0x04d7, 0x0374, 0x00cc, 0xfedf,
+ 0xfe5e, 0xff0a, 0x0020, 0x00c3, 0x00b3, 0x002e,
+ 0xff87, 0xfec9, 0xfe4d, 0xff0f, 0x00dd, 0x022e,
+ 0x020f, 0x009f, 0xfed5, 0xfd7a, 0xfce8, 0xfe2b,
+ 0x0069, 0x0089, 0xfea8, 0xfcc0, 0xfad0, 0xf9ff,
+ 0xfb96, 0xfda9, 0xfebe, 0xff1a, 0xfeb5, 0xfe02,
+ 0xfdb1, 0xfe55, 0x004c, 0x022d, 0x02a2, 0x0225,
+ 0x00fa, 0xffcd, 0xffd1, 0x0082, 0x0141, 0x0266,
+ 0x033a, 0x02c0, 0x0101, 0xfe9c, 0xfcb2, 0xfbe5,
+ 0xfb8c, 0xfb04, 0xfa63, 0xf9a3, 0xf89e, 0xf815,
+ 0xf8e3, 0xfa42, 0xfb54, 0xfc7b, 0xfd49, 0xfcf5,
+ 0xfc54, 0xfc5b, 0xfcfe, 0xfd9f, 0xfd52, 0xfc18,
+ 0xfae9, 0xfa0d, 0xf960, 0xf91a, 0xf970, 0xfa5f,
+ 0xfb95, 0xfc7e, 0xfcbb, 0xfc5f, 0xfbb9, 0xfb44,
+ 0xfbdb, 0xfd75, 0xfe74, 0xfe29, 0xfd6b, 0xfc8e,
+ 0xfc08, 0xfc7a, 0xfd8f, 0xfef9, 0xffe4, 0xff3f,
+ 0xfe0f, 0xfccd, 0xfaf2, 0xfa70, 0xfb9a, 0xfbc1,
+ 0xfb77, 0xfc41, 0xfcb3, 0xfcd2, 0xfd92, 0xfe09,
+ 0xfe0d, 0xfe48, 0xfe98, 0xfee4, 0xfedc, 0xfe7b,
+ 0xfe95, 0xff3f, 0xfffe, 0x007f, 0x005b, 0xfff5,
+ 0xffea, 0xffc6, 0xff4b, 0xfed7, 0xfe6d, 0xfdd3,
+ 0xfc9d, 0xfac5, 0xf964, 0xf8f8, 0xf8ac, 0xf86a,
+ 0xf8f3, 0xf9fa, 0xfa6f, 0xfa14, 0xf9aa, 0xf9c8,
+ 0xfa1b, 0xfa4d, 0xfacc, 0xfbb2, 0xfc3a, 0xfc18,
+ 0xfbca, 0xfbb9, 0xfbe3, 0xfbfd, 0xfc15, 0xfc5a,
+ 0xfc6c, 0xfc78, 0xfd36, 0xfe52, 0xffa1, 0x016f,
+ 0x02bd, 0x02ce, 0x01ef, 0x0011, 0xfde6, 0xfc60,
+ 0xfb09, 0xf9a3, 0xf81b, 0xf5d5, 0xf37f, 0xf21d,
+ 0xf20d, 0xf3da, 0xf657, 0xf7f4, 0xf9e3, 0xfca2,
+ 0xfee9, 0x0142, 0x0426, 0x0648, 0x075a, 0x0804,
+ 0x083c, 0x0756, 0x0511, 0x02a7, 0x00bf, 0xfe60,
+ 0xfbfd, 0xfabf, 0xf9f7, 0xf960, 0xf98f, 0xfa14,
+ 0xfabf, 0xfbdc, 0xfd1e, 0xfe8a, 0x006a, 0x02b1,
+ 0x058d, 0x08ca, 0x0b4f, 0x0c3a, 0x0b88, 0x09c7,
+ 0x075d, 0x048c, 0x0232, 0x00e5, 0x0043, 0x0039,
+ 0x00bd, 0x016e, 0x02b8, 0x047c, 0x058f, 0x065d,
+ 0x07aa, 0x08a0, 0x0950, 0x0a66, 0x0b12, 0x0b0b,
+ 0x0b0f, 0x0b53, 0x0c07, 0x0cbb, 0x0c0f, 0x0a1a,
+ 0x0846, 0x0722, 0x063a, 0x0517, 0x0409, 0x0393,
+ 0x03a9, 0x0445, 0x0530, 0x061c, 0x0760, 0x0892,
+ 0x08d6, 0x08e2, 0x093d, 0x094f, 0x0900, 0x084f,
+ 0x0776, 0x06c9, 0x0540, 0x02c8, 0x0115, 0x004d,
+ 0xffe9, 0x0017, 0x0067, 0x00bd, 0x014b, 0x0172,
+ 0x013e, 0x013a, 0x012d, 0x00d2, 0xfff0, 0xfea4,
+ 0xfd8b, 0xfcdb, 0xfcf9, 0xfde8, 0xfea5, 0xfee4,
+ 0xfe94, 0xfd74, 0xfc86, 0xfc15, 0xfb64, 0xfb0b,
+ 0xfb4e, 0xfbe1, 0xfd49, 0xff00, 0x0065, 0x020c,
+ 0x03c8, 0x058c, 0x077b, 0x0898, 0x0921, 0x09c0,
+ 0x09a1, 0x0945, 0x097a, 0x0931, 0x0855, 0x079a,
+ 0x065e, 0x043b, 0x0212, 0x00f9, 0x0122, 0x01e4,
+ 0x02ed, 0x03ec, 0x0444, 0x0405, 0x03aa, 0x0407,
+ 0x05cc, 0x080d, 0x09f2, 0x0b89, 0x0bb9, 0x09b0,
+ 0x062b, 0x0200, 0xfe8b, 0xfd16, 0xfd43, 0xfe2a,
+ 0xfec8, 0xfe45, 0xfd0b, 0xfbbf, 0xfaac, 0xfa71,
+ 0xfb6c, 0xfd98, 0x004a, 0x0232, 0x031f, 0x03bf,
+ 0x044e, 0x051e, 0x062e, 0x0716, 0x07c6, 0x078f,
+ 0x05cf, 0x0386, 0x01b3, 0x006b, 0xffe0, 0xffd8,
+ 0xff86, 0xfece, 0xfe72, 0xfea5, 0xfecc, 0xff2c,
+ 0x004b, 0x0180, 0x0274, 0x0359, 0x0384, 0x02d6,
+ 0x0238, 0x01a4, 0x0078, 0xfed0, 0xfd3b, 0xfbea,
+ 0xfa83, 0xf8d1, 0xf712, 0xf593, 0xf4b6, 0xf490,
+ 0xf4c4, 0xf532, 0xf5ea, 0xf6cd, 0xf799, 0xf81b,
+ 0xf89b, 0xf94e, 0xfa21, 0xfb5e, 0xfc7b, 0xfc4a,
+ 0xfb36, 0xfa02, 0xf858, 0xf654, 0xf454, 0xf2e0,
+ 0xf2c3, 0xf32e, 0xf313, 0xf33d, 0xf3fc, 0xf507,
+ 0xf713, 0xf9cb, 0xfbca, 0xfcf2, 0xfdb0, 0xfe2c,
+ 0xfed1, 0xfff0, 0x0189, 0x0368, 0x04f8, 0x05b0,
+ 0x05bc, 0x05ad, 0x05a1, 0x0538, 0x0477, 0x03fd,
+ 0x0445, 0x04f4, 0x0552, 0x0575, 0x05e5, 0x068a,
+ 0x0758, 0x088a, 0x09d8, 0x0b1b, 0x0c75, 0x0d36,
+ 0x0d0e, 0x0d09, 0x0d7e, 0x0dc7, 0x0e15, 0x0ea1,
+ 0x0ec1, 0x0e60, 0x0e02, 0x0db8, 0x0da0, 0x0dc2,
+ 0x0dd8, 0x0e31, 0x0f09, 0x0fe5, 0x10b6, 0x11d5,
+ 0x1313, 0x1403, 0x148b, 0x1548, 0x16c1, 0x1852,
+ 0x194f, 0x19ef, 0x1a26, 0x19ae, 0x18d7, 0x17fa,
+ 0x16db, 0x1561, 0x140e, 0x12f0, 0x1194, 0x10a7,
+ 0x10ef, 0x11b6, 0x128a, 0x13d9, 0x1573, 0x16ad,
+ 0x16f7, 0x1668, 0x15d7, 0x1573, 0x14d1, 0x1407,
+ 0x1320, 0x120c, 0x10db, 0x0f57, 0x0d73, 0x0b4d,
+ 0x08f9, 0x06ed, 0x0555, 0x03fe, 0x02fd, 0x01f9,
+ 0x00b4, 0xffee, 0xffec, 0x004b, 0x00e8, 0x0195,
+ 0x0243, 0x02d1, 0x02ef, 0x02ba, 0x0211, 0x00d4,
+ 0xffc4, 0xfefc, 0xfe0e, 0xfd8a, 0xfd8b, 0xfd65,
+ 0xfd1f, 0xfd08, 0xfd6c, 0xfe59, 0xff4e, 0x0089,
+ 0x027d, 0x0437, 0x0536, 0x0613, 0x06ad, 0x06cf,
+ 0x072c, 0x07f7, 0x0877, 0x0869, 0x085a, 0x0867,
+ 0x07f4, 0x0719, 0x0675, 0x05d7, 0x04f7, 0x0455,
+ 0x0417, 0x03c0, 0x0323, 0x026d, 0x01c0, 0x0153,
+ 0x014e, 0x017f, 0x0185, 0x0136, 0x00f3, 0x0121,
+ 0x0186, 0x0202, 0x02a8, 0x029d, 0x0131, 0xff35,
+ 0xfd71, 0xfbcc, 0xfa33, 0xf8ad, 0xf778, 0xf6f6,
+ 0xf6b7, 0xf647, 0xf636, 0xf6ba, 0xf74d, 0xf7f0,
+ 0xf8b9, 0xf955, 0xfa05, 0xfaee, 0xfb39, 0xfaf6,
+ 0xfb65, 0xfc86, 0xfd2b, 0xfd0c, 0xfcc6, 0xfcba,
+ 0xfca0, 0xfbef, 0xfada, 0xfa37, 0xfa71, 0xfaf7,
+ 0xfb0d, 0xfac6, 0xfa93, 0xfaa9, 0xfb41, 0xfc1a,
+ 0xfc76, 0xfc78, 0xfcb1, 0xfd0d, 0xfd3c, 0xfcd3,
+ 0xfbd3, 0xfaf5, 0xfa0e, 0xf879, 0xf6dd, 0xf5ec,
+ 0xf569, 0xf50c, 0xf4a4, 0xf43d, 0xf3fe, 0xf38f,
+ 0xf2e7, 0xf294, 0xf280, 0xf250, 0xf26c, 0xf333,
+ 0xf42d, 0xf4e1, 0xf590, 0xf656, 0xf6d5, 0xf6f7,
+ 0xf700, 0xf735, 0xf7da, 0xf8c2, 0xf934, 0xf8c5,
+ 0xf833, 0xf878, 0xf90a, 0xf925, 0xf992, 0xfa92,
+ 0xfb7b, 0xfc9e, 0xfe07, 0xff03, 0xffdd, 0x00a4,
+ 0x00e3, 0x0154, 0x026f, 0x0393, 0x048d, 0x0534,
+ 0x0533, 0x0502, 0x0515, 0x0517, 0x04eb, 0x050c,
+ 0x058b, 0x05c7, 0x05d1, 0x0670, 0x0759, 0x07af,
+ 0x07ae, 0x0808, 0x08aa, 0x08ee, 0x08c2, 0x08ca,
+ 0x091a, 0x0930, 0x0918, 0x08e4, 0x0859, 0x079c,
+ 0x06d7, 0x060d, 0x0563, 0x04dc, 0x047e, 0x044a,
+ 0x03ed, 0x0359, 0x02c2, 0x020f, 0x015a, 0x00fe,
+ 0x0120, 0x0188, 0x0182, 0x0108, 0x014a, 0x0259,
+ 0x02f4, 0x0305, 0x030c, 0x02c2, 0x01fb, 0x00e4,
+ 0xffef, 0xff9a, 0xff4f, 0xfe4a, 0xfce2, 0xfb3b,
+ 0xf97b, 0xf886, 0xf848, 0xf810, 0xf84d, 0xf950,
+ 0xfa90, 0xfbae, 0xfc7f, 0xfd24, 0xfe1b, 0xff56,
+ 0x0031, 0x0061, 0x002c, 0xffdc, 0xff78, 0xfef7,
+ 0xfe25, 0xfd22, 0xfcb2, 0xfcc9, 0xfc59, 0xfb35,
+ 0xf9ef, 0xf8e2, 0xf84e, 0xf84d, 0xf8e9, 0xfa20,
+ 0xfba8, 0xfd62, 0xfed4, 0xff7f, 0x0010, 0x009e,
+ 0x0034, 0xff02, 0xfd5f, 0xfb33, 0xf927, 0xf73b,
+ 0xf530, 0xf3e7, 0xf36b, 0xf389, 0xf4df, 0xf691,
+ 0xf757, 0xf7b4, 0xf820, 0xf888, 0xf900, 0xf973,
+ 0xfa35, 0xfb8e, 0xfcd0, 0xfd66, 0xfd64, 0xfd01,
+ 0xfc4e, 0xfb49, 0xfa2b, 0xf90c, 0xf7e9, 0xf73a,
+ 0xf71a, 0xf720, 0xf73c, 0xf730, 0xf6d7, 0xf6be,
+ 0xf70e, 0xf79e, 0xf89d, 0xfa11, 0xfb95, 0xfc88,
+ 0xfcdb, 0xfd22, 0xfd3f, 0xfce8, 0xfc66, 0xfbba,
+ 0xfb1e, 0xfad2, 0xfa84, 0xfa97, 0xfb21, 0xfb44,
+ 0xfb7e, 0xfc74, 0xfd5c, 0xfdd9, 0xfde8, 0xfdac,
+ 0xfdd9, 0xfe1f, 0xfdf4, 0xfde2, 0xfdff, 0xfe16,
+ 0xfe3e, 0xfe3d, 0xfe19, 0xfddf, 0xfd68, 0xfcde,
+ 0xfc07, 0xfaf1, 0xfa6d, 0xfa7a, 0xfaf1, 0xfbf5,
+ 0xfcec, 0xfdc1, 0xfeb7, 0xff4d, 0xffb4, 0x0041,
+ 0x0083, 0x0084, 0x0037, 0xff6d, 0xfeee, 0xfefd,
+ 0xfef2, 0xfeb2, 0xfe83, 0xfe3d, 0xfd7a, 0xfca1,
+ 0xfc7e, 0xfc9e, 0xfca4, 0xfd07, 0xfd4e, 0xfd61,
+ 0xfdf6, 0xfe4a, 0xfdbf, 0xfd44, 0xfd38, 0xfd3f,
+ 0xfcff, 0xfc68, 0xfbf7, 0xfbb5, 0xfb4c, 0xfae6,
+ 0xfa9f, 0xfaa0, 0xfb0a, 0xfb73, 0xfbc6, 0xfc3e,
+ 0xfcd7, 0xfde2, 0xff59, 0x00b1, 0x01d7, 0x02d6,
+ 0x039d, 0x0413, 0x040a, 0x03c8, 0x0373, 0x02c1,
+ 0x0206, 0x0179, 0x00df, 0x00b9, 0x0122, 0x0123,
+ 0x0072, 0xffba, 0xff79, 0xff93, 0xffcb, 0x002e,
+ 0x00c5, 0x015f, 0x01de, 0x0276, 0x0376, 0x0462,
+ 0x04e9, 0x05de, 0x06e5, 0x06e8, 0x068e, 0x062f,
+ 0x0556, 0x0497, 0x03eb, 0x030d, 0x02dd, 0x0346,
+ 0x03c0, 0x0463, 0x0493, 0x044d, 0x0446, 0x0405,
+ 0x039e, 0x040b, 0x0525, 0x0653, 0x0751, 0x07f0,
+ 0x083a, 0x0808, 0x0751, 0x067f, 0x05be, 0x0519,
+ 0x048e, 0x0414, 0x03ad, 0x02f2, 0x0227, 0x0243,
+ 0x02ed, 0x03b6, 0x0519, 0x0675, 0x070d, 0x0767,
+ 0x079c, 0x079d, 0x07c0, 0x07e2, 0x07e7, 0x07d7,
+ 0x0792, 0x0736, 0x069e, 0x0588, 0x0454, 0x0319,
+ 0x0196, 0xffee, 0xfe35, 0xfc9e, 0xfb80, 0xfaa4,
+ 0xf9d9, 0xf97b, 0xf9a0, 0xf9f3, 0xfa37, 0xfa79,
+ 0xfafa, 0xfbd1, 0xfcb3, 0xfd3d, 0xfd51, 0xfcf4,
+ 0xfc41, 0xfba2, 0xfb43, 0xfaf8, 0xfb0b, 0xfb7f,
+ 0xfb8c, 0xfb4b, 0xfb70, 0xfbdb, 0xfcb4, 0xfe4a,
+ 0xffb5, 0x009d, 0x018f, 0x0224, 0x0261, 0x0305,
+ 0x03b3, 0x0445, 0x0506, 0x0547, 0x0501, 0x04b8,
+ 0x03d2, 0x0286, 0x0186, 0x003a, 0xfed2, 0xfe28,
+ 0xfdd6, 0xfd86, 0xfd55, 0xfd45, 0xfdc7, 0xfec3,
+ 0xffa5, 0x0084, 0x0131, 0x015f, 0x0171, 0x0186,
+ 0x0189, 0x017d, 0x013f, 0x00e9, 0x006f, 0xffbb,
+ 0xff49, 0xff36, 0xff23, 0xfeeb, 0xfe52, 0xfdc3,
+ 0xfdf3, 0xfe74, 0xfefc, 0xffe3, 0x00bd, 0x010d,
+ 0x0111, 0x010f, 0x0115, 0x0116, 0x0111, 0x0113,
+ 0x012b, 0x015a, 0x0158, 0x012a, 0x0130, 0x00ff,
+ 0x0060, 0x0001, 0xffca, 0xff55, 0xfefc, 0xfec8,
+ 0xfeb0, 0xfede, 0xff38, 0xfff9, 0x0129, 0x022f,
+ 0x02d9, 0x0321, 0x0307, 0x02db, 0x0294, 0x0231,
+ 0x01cb, 0x010b, 0xfffb, 0xfedf, 0xfdc9, 0xfd0a,
+ 0xfc6f, 0xfb73, 0xfa7a, 0xf9c9, 0xf91b, 0xf87e,
+ 0xf825, 0xf81a, 0xf7fa, 0xf7ae, 0xf7cb, 0xf80d,
+ 0xf81b, 0xf8bb, 0xf9a3, 0xf9f4, 0xfa34, 0xfa9e,
+ 0xfaf2, 0xfb60, 0xfbb6, 0xfbed, 0xfc3c, 0xfc6c,
+ 0xfcce, 0xfd77, 0xfdc5, 0xfe0f, 0xfea5, 0xfed8,
+ 0xfecb, 0xff17, 0xff9c, 0x001f, 0x008a, 0x00d3,
+ 0x012e, 0x01a6, 0x0222, 0x02b9, 0x0370, 0x03e8,
+ 0x03f9, 0x040a, 0x043a, 0x046c, 0x04bc, 0x051d,
+ 0x0599, 0x063f, 0x06a0, 0x06f3, 0x07d3, 0x08de,
+ 0x09e1, 0x0aec, 0x0b5c, 0x0b5c, 0x0be7, 0x0cd1,
+ 0x0d62, 0x0db1, 0x0e2d, 0x0ea9, 0x0ead, 0x0e99,
+ 0x0ee1, 0x0f2f, 0x0f70, 0x0fea, 0x107a, 0x10f7,
+ 0x1189, 0x1265, 0x1344, 0x13d9, 0x14bb, 0x160e,
+ 0x172a, 0x1854, 0x19a3, 0x1a91, 0x1b9e, 0x1cb8,
+ 0x1d02, 0x1d00, 0x1d1f, 0x1cfc, 0x1cdc, 0x1cea,
+ 0x1ce8, 0x1cf1, 0x1cfb, 0x1d0d, 0x1d32, 0x1d0d,
+ 0x1c80, 0x1ba0, 0x1a9f, 0x19aa, 0x1859, 0x16bd,
+ 0x15aa, 0x14ef, 0x13ec, 0x12c6, 0x118e, 0x1031,
+ 0x0ec5, 0x0d46, 0x0bd7, 0x0a93, 0x096c, 0x0877,
+ 0x07ba, 0x071b, 0x0640, 0x04ee, 0x03b4, 0x02d7,
+ 0x01d6, 0x00d0, 0x004b, 0x0052, 0x00cb, 0x0147,
+ 0x015a, 0x0168, 0x01ba, 0x021d, 0x0284, 0x02cf,
+ 0x0312, 0x03be, 0x0491, 0x04fe, 0x057e, 0x0688,
+ 0x0792, 0x0848, 0x08f2, 0x0970, 0x0965, 0x08e8,
+ 0x0840, 0x0794, 0x071b, 0x0737, 0x07dc, 0x086e,
+ 0x08d1, 0x0935, 0x0916, 0x085b, 0x07e2, 0x07ee,
+ 0x0819, 0x082d, 0x07ea, 0x0723, 0x0620, 0x055a,
+ 0x04d0, 0x0421, 0x0374, 0x02f5, 0x0208, 0x0093,
+ 0xff2b, 0xfdd4, 0xfc82, 0xfb73, 0xfa98, 0xf9ec,
+ 0xf98c, 0xf95c, 0xf94a, 0xf945, 0xf928, 0xf8f8,
+ 0xf8ff, 0xf964, 0xf9bf, 0xf9fa, 0xfa92, 0xfb0f,
+ 0xfad3, 0xfa69, 0xfa1b, 0xf9d9, 0xfa07, 0xfa79,
+ 0xfae9, 0xfb9b, 0xfc4b, 0xfc99, 0xfce3, 0xfd52,
+ 0xfd8c, 0xfd7d, 0xfd99, 0xfe01, 0xfe34, 0xfe2c,
+ 0xfe41, 0xfe57, 0xfe60, 0xfe32, 0xfd9e, 0xfd2c,
+ 0xfccb, 0xfbe9, 0xfb19, 0xfaca, 0xfa94, 0xfa63,
+ 0xf9e2, 0xf8f9, 0xf861, 0xf802, 0xf758, 0xf6a2,
+ 0xf601, 0xf58a, 0xf571, 0xf584, 0xf579, 0xf51a,
+ 0xf470, 0xf3bc, 0xf2d7, 0xf1e6, 0xf16c, 0xf13d,
+ 0xf153, 0xf1c2, 0xf1d7, 0xf1b1, 0xf202, 0xf24a,
+ 0xf247, 0xf268, 0xf291, 0xf2c3, 0xf325, 0xf38a,
+ 0xf402, 0xf486, 0xf514, 0xf605, 0xf734, 0xf829,
+ 0xf8da, 0xf950, 0xf9ac, 0xf9fe, 0xfa38, 0xface,
+ 0xfbe0, 0xfcd3, 0xfd8b, 0xfe12, 0xfe4e, 0xfebc,
+ 0xff82, 0xfffd, 0x000b, 0x0026, 0x00ad, 0x01a6,
+ 0x02b9, 0x03ae, 0x0462, 0x04da, 0x0572, 0x05ea,
+ 0x05d5, 0x05c9, 0x060c, 0x0636, 0x0651, 0x0659,
+ 0x0636, 0x0629, 0x0613, 0x05d9, 0x05d4, 0x05dd,
+ 0x05b1, 0x0589, 0x0597, 0x05c6, 0x05cd, 0x05d8,
+ 0x066a, 0x072d, 0x07a7, 0x07f6, 0x07d7, 0x0726,
+ 0x0665, 0x05a6, 0x04d0, 0x0417, 0x0359, 0x027b,
+ 0x01b2, 0x011d, 0x00bf, 0x0073, 0xffd1, 0xfeb8,
+ 0xfdb9, 0xfd68, 0xfd78, 0xfd98, 0xfe07, 0xfe72,
+ 0xfea1, 0xff11, 0xff83, 0xffbd, 0x002e, 0x005d,
+ 0x000b, 0xffef, 0xffdc, 0xffb8, 0x000a, 0x0085,
+ 0x00ad, 0x0073, 0xffcb, 0xff3e, 0xff2c, 0xff4a,
+ 0xff87, 0xffb5, 0xffd4, 0x0058, 0x00e3, 0x00f5,
+ 0x00df, 0x00ab, 0x0055, 0x0011, 0xffd3, 0xff8c,
+ 0xff18, 0xfe81, 0xfe31, 0xfde6, 0xfd5c, 0xfcfb,
+ 0xfc82, 0xfbcf, 0xfb76, 0xfb64, 0xfb96, 0xfc39,
+ 0xfcb6, 0xfcf8, 0xfd4d, 0xfd78, 0xfdb9, 0xfe33,
+ 0xfe50, 0xfe18, 0xfdac, 0xfcf9, 0xfc65, 0xfbe0,
+ 0xfb48, 0xfb27, 0xfb44, 0xfb15, 0xfad1, 0xfa78,
+ 0xfa14, 0xfa10, 0xfa47, 0xfa7c, 0xfad9, 0xfb2a,
+ 0xfb6b, 0xfc0b, 0xfce4, 0xfd7e, 0xfde7, 0xfe30,
+ 0xfe1a, 0xfddc, 0xfdf4, 0xfe36, 0xfe63, 0xfeba,
+ 0xff1a, 0xff46, 0xff66, 0xff65, 0xff2f, 0xff15,
+ 0xff17, 0xff07, 0xff01, 0xff0f, 0xff16, 0xff0b,
+ 0xff0e, 0xff30, 0xff35, 0xff16, 0xfef3, 0xfe85,
+ 0xfdcf, 0xfd4e, 0xfd10, 0xfce6, 0xfccc, 0xfcb6,
+ 0xfc7c, 0xfbf2, 0xfb34, 0xfa76, 0xf9a9, 0xf923,
+ 0xf946, 0xf9a6, 0xfa1d, 0xfaf3, 0xfbf1, 0xfce9,
+ 0xfdc1, 0xfe47, 0xfeb0, 0xfeec, 0xfecd, 0xfec0,
+ 0xfee0, 0xfef8, 0xff09, 0xfec4, 0xfe26, 0xfd98,
+ 0xfcf4, 0xfc35, 0xfb82, 0xfab1, 0xfa02, 0xf997,
+ 0xf90b, 0xf8a6, 0xf8b0, 0xf8ca, 0xf8dc, 0xf8ed,
+ 0xf8da, 0xf8ca, 0xf8dd, 0xf913, 0xf979, 0xfa25,
+ 0xfb23, 0xfc3b, 0xfd2e, 0xfdce, 0xfdb0, 0xfce5,
+ 0xfc07, 0xfb73, 0xfb6f, 0xfbea, 0xfc67, 0xfcf4,
+ 0xfdb9, 0xfe5f, 0xfec7, 0xfef2, 0xfee0, 0xfee1,
+ 0xff19, 0xff63, 0xffaa, 0x0000, 0x007e, 0x00e8,
+ 0x0126, 0x015b, 0x0129, 0x009e, 0x0058, 0xffed,
+ 0xff0e, 0xfe95, 0xfecf, 0xff81, 0x0089, 0x015c,
+ 0x01e3, 0x026d, 0x02b5, 0x02b4, 0x02cf, 0x030d,
+ 0x0342, 0x0355, 0x037c, 0x03fb, 0x0480, 0x04e2,
+ 0x0552, 0x0570, 0x04ff, 0x0476, 0x03f9, 0x0353,
+ 0x02c1, 0x029b, 0x02b6, 0x02d9, 0x0314, 0x0349,
+ 0x034b, 0x0345, 0x0347, 0x035a, 0x039f, 0x03e2,
+ 0x043e, 0x0514, 0x05ed, 0x0667, 0x06ef, 0x0789,
+ 0x07dd, 0x07ef, 0x07df, 0x07db, 0x07fa, 0x0831,
+ 0x0893, 0x08d5, 0x0870, 0x0786, 0x069c, 0x05d5,
+ 0x050f, 0x047a, 0x045e, 0x045f, 0x0422, 0x03eb,
+ 0x03c4, 0x0385, 0x0352, 0x0301, 0x0251, 0x0162,
+ 0x0033, 0xfee8, 0xfde2, 0xfd0e, 0xfc73, 0xfc63,
+ 0xfc8e, 0xfca7, 0xfcf7, 0xfd66, 0xfd9f, 0xfdbd,
+ 0xfde7, 0xfe27, 0xfe78, 0xfe83, 0xfe40, 0xfe36,
+ 0xfe91, 0xff1e, 0xffd6, 0x00b0, 0x0194, 0x0270,
+ 0x032d, 0x03bc, 0x0405, 0x041a, 0x0454, 0x04a1,
+ 0x04c0, 0x04cd, 0x04be, 0x04a7, 0x04eb, 0x0545,
+ 0x056f, 0x05bf, 0x05fb, 0x05cb, 0x057d, 0x0509,
+ 0x0469, 0x0403, 0x03af, 0x033d, 0x0310, 0x0331,
+ 0x0339, 0x0328, 0x032f, 0x0313, 0x027c, 0x01c0,
+ 0x0145, 0x00cb, 0x006d, 0x0095, 0x00ef, 0x0128,
+ 0x015f, 0x0196, 0x01ff, 0x028f, 0x02a3, 0x0255,
+ 0x023a, 0x021a, 0x01e6, 0x01e5, 0x01dd, 0x01c7,
+ 0x01d8, 0x01c6, 0x018a, 0x0169, 0x012e, 0x00dc,
+ 0x00a9, 0x006a, 0x0037, 0x0055, 0x0086, 0x00ac,
+ 0x00e9, 0x0127, 0x0151, 0x017a, 0x01ba, 0x01fb,
+ 0x01e0, 0x0185, 0x0170, 0x018b, 0x018c, 0x018f,
+ 0x0196, 0x0186, 0x0137, 0x0094, 0xfffc, 0xff9d,
+ 0xff04, 0xfe19, 0xfd45, 0xfc8b, 0xfbb0, 0xfacb,
+ 0xfa27, 0xf9af, 0xf8fc, 0xf7fb, 0xf722, 0xf6cc,
+ 0xf6bd, 0xf6a9, 0xf6b3, 0xf6ee, 0xf71d, 0xf725,
+ 0xf72d, 0xf77a, 0xf804, 0xf84a, 0xf82d, 0xf80a,
+ 0xf7f3, 0xf7f9, 0xf817, 0xf7e8, 0xf777, 0xf70f,
+ 0xf696, 0xf629, 0xf615, 0xf67c, 0xf742, 0xf7c3,
+ 0xf7e2, 0xf84e, 0xf8d1, 0xf901, 0xf95d, 0xf9e6,
+ 0xfa31, 0xfa6b, 0xfab0, 0xfaef, 0xfb4b, 0xfbba,
+ 0xfc23, 0xfc6b, 0xfc76, 0xfc75, 0xfc87, 0xfc93,
+ 0xfc95, 0xfc98, 0xfcc4, 0xfd2d, 0xfd9e, 0xfe16,
+ 0xfec4, 0xff74, 0xffee, 0x0049, 0x0092, 0x00bd,
+ 0x00ea, 0x013a, 0x0190, 0x01d2, 0x0211, 0x0273,
+ 0x0347, 0x047a, 0x0572, 0x061a, 0x06fd, 0x0835,
+ 0x0987, 0x0aef, 0x0c70, 0x0ddc, 0x0f01, 0x0fff,
+ 0x10da, 0x1149, 0x1190, 0x121e, 0x12b3, 0x135a,
+ 0x1463, 0x156d, 0x1642, 0x1713, 0x17d2, 0x188a,
+ 0x1953, 0x1a0d, 0x1ac2, 0x1b57, 0x1ba1, 0x1bbc,
+ 0x1bcd, 0x1bf0, 0x1c21, 0x1c2d, 0x1c08, 0x1ba2,
+ 0x1ad4, 0x19ed, 0x191b, 0x1819, 0x16db, 0x158c,
+ 0x142c, 0x12b5, 0x1126, 0x0fb1, 0x0e87, 0x0d6c,
+ 0x0c1e, 0x0abb, 0x098b, 0x0892, 0x07b5, 0x071b,
+ 0x06be, 0x062d, 0x0577, 0x0527, 0x0533, 0x0535,
+ 0x0523, 0x0508, 0x049f, 0x03de, 0x0343, 0x02f8,
+ 0x02e6, 0x033f, 0x03d0, 0x0436, 0x04ad, 0x0537,
+ 0x05ac, 0x0628, 0x0675, 0x06ba, 0x0760, 0x07e2,
+ 0x0833, 0x08f0, 0x09bf, 0x0a59, 0x0aec, 0x0b34,
+ 0x0b58, 0x0b92, 0x0b86, 0x0b4d, 0x0b0d, 0x0a91,
+ 0x09fd, 0x097f, 0x092d, 0x090e, 0x08d9, 0x089f,
+ 0x0864, 0x07a6, 0x06bf, 0x064f, 0x05f2, 0x0578,
+ 0x0504, 0x0457, 0x037b, 0x029a, 0x01a0, 0x00c6,
+ 0x0035, 0xffb8, 0xff3c, 0xfed0, 0xfe5d, 0xfdda,
+ 0xfd6c, 0xfd04, 0xfc7f, 0xfc33, 0xfc38, 0xfbf8,
+ 0xfb91, 0xfba6, 0xfc16, 0xfc94, 0xfd26, 0xfdb1,
+ 0xfe33, 0xfec5, 0xff5d, 0xffd9, 0x0003, 0xffda,
+ 0xff8d, 0xff4c, 0xff3e, 0xff3c, 0xff19, 0xff0b,
+ 0xff00, 0xfea4, 0xfe0e, 0xfd87, 0xfd52, 0xfd7e,
+ 0xfdbe, 0xfdf7, 0xfe26, 0xfe0e, 0xfdd6, 0xfdba,
+ 0xfd91, 0xfd51, 0xfd0e, 0xfcc3, 0xfc7e, 0xfc3d,
+ 0xfbf0, 0xfb8a, 0xfaf8, 0xfa23, 0xf8d3, 0xf73e,
+ 0xf603, 0xf508, 0xf41c, 0xf3a9, 0xf398, 0xf372,
+ 0xf339, 0xf306, 0xf305, 0xf34e, 0xf39a, 0xf3bd,
+ 0xf3d1, 0xf3f4, 0xf40c, 0xf3d1, 0xf377, 0xf32a,
+ 0xf2b0, 0xf26e, 0xf28b, 0xf269, 0xf24a, 0xf287,
+ 0xf2bc, 0xf32f, 0xf403, 0xf4af, 0xf562, 0xf658,
+ 0xf74f, 0xf84d, 0xf924, 0xf9b6, 0xfa55, 0xfb05,
+ 0xfbcb, 0xfcad, 0xfd5c, 0xfdf3, 0xfe9e, 0xff01,
+ 0xff0d, 0xfef1, 0xfec8, 0xfee8, 0xff5c, 0xfff3,
+ 0x00a5, 0x013f, 0x01a6, 0x0216, 0x0285, 0x02c1,
+ 0x02ef, 0x0360, 0x0410, 0x04be, 0x0589, 0x0678,
+ 0x0714, 0x0756, 0x0774, 0x073b, 0x06d9, 0x06a4,
+ 0x0678, 0x0653, 0x0635, 0x05da, 0x0579, 0x056e,
+ 0x0570, 0x052e, 0x04bf, 0x043d, 0x03a0, 0x02de,
+ 0x01f5, 0x010b, 0x005c, 0xffe1, 0xff6f, 0xff26,
+ 0xff0d, 0xfee8, 0xfe9f, 0xfe4d, 0xfe03, 0xfdc5,
+ 0xfd9e, 0xfdb7, 0xfe19, 0xfe98, 0xff11, 0xff57,
+ 0xff68, 0xff97, 0xfffe, 0x0063, 0x00ac, 0x00c4,
+ 0x009f, 0x0053, 0xfff9, 0xffb3, 0xffa3, 0xffb9,
+ 0xffd8, 0xfff7, 0x000a, 0xfffa, 0xffc1, 0xff89,
+ 0xff49, 0xfed3, 0xfe41, 0xfdbe, 0xfd77, 0xfd98,
+ 0xfdf1, 0xfe59, 0xfeec, 0xff66, 0xffa3, 0xffed,
+ 0x0025, 0xffff, 0xff8b, 0xfef0, 0xfe39, 0xfd98,
+ 0xfd46, 0xfd17, 0xfcb9, 0xfc6d, 0xfc5c, 0xfc1a,
+ 0xfbb9, 0xfb86, 0xfb5c, 0xfb4c, 0xfb53, 0xfb1e,
+ 0xfad6, 0xfa9a, 0xfa44, 0xf9f9, 0xf9b6, 0xf95a,
+ 0xf90a, 0xf8d1, 0xf8b3, 0xf8c0, 0xf8e1, 0xf925,
+ 0xf976, 0xf99a, 0xf9e2, 0xfa69, 0xfad7, 0xfb2b,
+ 0xfb69, 0xfb83, 0xfba5, 0xfbcf, 0xfbef, 0xfc0e,
+ 0xfc33, 0xfc89, 0xfcff, 0xfd54, 0xfd9b, 0xfdd4,
+ 0xfdf3, 0xfe37, 0xfe85, 0xfeb5, 0xff06, 0xff59,
+ 0xff61, 0xff39, 0xfee3, 0xfe57, 0xfdc0, 0xfd4b,
+ 0xfd22, 0xfd14, 0xfcad, 0xfc19, 0xfbb1, 0xfb84,
+ 0xfbcd, 0xfc76, 0xfcfe, 0xfd6e, 0xfdd0, 0xfdb8,
+ 0xfd55, 0xfd0d, 0xfcea, 0xfd52, 0xfe7a, 0xffca,
+ 0x00de, 0x019e, 0x01cf, 0x018e, 0x00fe, 0x0030,
+ 0xff99, 0xff5e, 0xff47, 0xff53, 0xff45, 0xfee7,
+ 0xfe66, 0xfd94, 0xfc5d, 0xfb59, 0xfabd, 0xfa6b,
+ 0xfa8e, 0xfb03, 0xfb76, 0xfbcd, 0xfbeb, 0xfbcf,
+ 0xfb99, 0xfb77, 0xfbb3, 0xfc09, 0xfc00, 0xfbdf,
+ 0xfbd8, 0xfb99, 0xfb58, 0xfb64, 0xfb7d, 0xfb8b,
+ 0xfb96, 0xfb8e, 0xfba0, 0xfbcb, 0xfbe0, 0xfc0c,
+ 0xfc54, 0xfc6e, 0xfc4a, 0xfbef, 0xfb77, 0xfb1f,
+ 0xfae7, 0xfac0, 0xfab9, 0xfabd, 0xfab2, 0xfa8b,
+ 0xfa55, 0xfa54, 0xfa7c, 0xfa78, 0xfa50, 0xfa3c,
+ 0xfa5b, 0xfab9, 0xfb44, 0xfc0e, 0xfd23, 0xfe50,
+ 0xff7b, 0x006a, 0x00d1, 0x00df, 0x0094, 0xffd3,
+ 0xff13, 0xfe9a, 0xfe81, 0xff28, 0x0031, 0x00ff,
+ 0x01ac, 0x0213, 0x01e9, 0x016a, 0x00c7, 0x0038,
+ 0x0016, 0x005d, 0x00ff, 0x020f, 0x0356, 0x049c,
+ 0x05d0, 0x06b1, 0x06de, 0x067f, 0x0611, 0x05b0,
+ 0x057c, 0x05b7, 0x060c, 0x0655, 0x06c5, 0x06fe,
+ 0x0703, 0x0748, 0x0764, 0x072c, 0x072c, 0x075c,
+ 0x077e, 0x079a, 0x07ab, 0x07db, 0x0814, 0x0817,
+ 0x0819, 0x0828, 0x082e, 0x0855, 0x0863, 0x081f,
+ 0x07c2, 0x0750, 0x06c0, 0x0631, 0x0571, 0x0460,
+ 0x0346, 0x0251, 0x0165, 0x0095, 0x0020, 0xffe8,
+ 0xffc6, 0xffef, 0x000f, 0xffbf, 0xff5f, 0xff31,
+ 0xff0e, 0xff2d, 0xff9f, 0x0039, 0x00fd, 0x01c2,
+ 0x0279, 0x0328, 0x038c, 0x03b6, 0x03d3, 0x039b,
+ 0x034d, 0x0352, 0x0348, 0x0322, 0x035f, 0x03b4,
+ 0x03ba, 0x03d0, 0x03f8, 0x03e5, 0x03d9, 0x03ea,
+ 0x03de, 0x03dc, 0x03f1, 0x0406, 0x0446, 0x04a0,
+ 0x04f5, 0x0557, 0x058c, 0x058d, 0x058b, 0x054f,
+ 0x04f9, 0x04cc, 0x0472, 0x0410, 0x0404, 0x03ed,
+ 0x0395, 0x0328, 0x02c6, 0x02c7, 0x0315, 0x0333,
+ 0x0331, 0x033c, 0x033a, 0x0329, 0x02fc, 0x02c5,
+ 0x029c, 0x0273, 0x0279, 0x02ab, 0x02a4, 0x0288,
+ 0x02a9, 0x02d8, 0x02f7, 0x0316, 0x0330, 0x033e,
+ 0x0338, 0x0319, 0x02fd, 0x0323, 0x0387, 0x03cc,
+ 0x03f0, 0x043b, 0x0463, 0x0440, 0x0422, 0x03d4,
+ 0x0335, 0x02b6, 0x026b, 0x0226, 0x01ee, 0x01b6,
+ 0x0185, 0x0161, 0x0124, 0x00df, 0x00b9, 0x00a2,
+ 0x0091, 0x0073, 0x0024, 0xffb0, 0xff36, 0xfebd,
+ 0xfe45, 0xfdd8, 0xfd6d, 0xfce4, 0xfc5c, 0xfc10,
+ 0xfbd6, 0xfb98, 0xfb82, 0xfb81, 0xfb62, 0xfb00,
+ 0xfa6d, 0xfa1f, 0xfa0b, 0xf9c0, 0xf97e, 0xf971,
+ 0xf949, 0xf934, 0xf94b, 0xf934, 0xf8f2, 0xf886,
+ 0xf7f5, 0xf7b3, 0xf7c6, 0xf7f8, 0xf878, 0xf90c,
+ 0xf93a, 0xf918, 0xf8e4, 0xf8be, 0xf8b8, 0xf8ca,
+ 0xf90b, 0xf974, 0xf9cb, 0xfa00, 0xfa27, 0xfa4d,
+ 0xfa78, 0xfa98, 0xfabd, 0xfaf6, 0xfb3c, 0xfba3,
+ 0xfc0f, 0xfc53, 0xfc9e, 0xfd02, 0xfd51, 0xfd8d,
+ 0xfdac, 0xfdae, 0xfdc3, 0xfdf7, 0xfe27, 0xfe45,
+ 0xfe7f, 0xfeed, 0xff41, 0xff75, 0xffcd, 0x001b,
+ 0x005a, 0x00b3, 0x00f0, 0x0155, 0x0236, 0x031b,
+ 0x03fa, 0x050f, 0x05eb, 0x0685, 0x075d, 0x0881,
+ 0x09af, 0x0ac4, 0x0bf8, 0x0d6c, 0x0ec2, 0x0ff8,
+ 0x113b, 0x124a, 0x1333, 0x1428, 0x14fc, 0x15c2,
+ 0x16a0, 0x1782, 0x186d, 0x1943, 0x19f9, 0x1a99,
+ 0x1ae4, 0x1aff, 0x1b51, 0x1ba8, 0x1bd7, 0x1bff,
+ 0x1c1c, 0x1c07, 0x1b99, 0x1aed, 0x1a38, 0x1947,
+ 0x1849, 0x17b8, 0x173a, 0x1651, 0x1523, 0x13f5,
+ 0x12eb, 0x11d2, 0x1086, 0x0f88, 0x0f15, 0x0ea4,
+ 0x0df0, 0x0d28, 0x0c3f, 0x0b23, 0x0a16, 0x092d,
+ 0x081f, 0x06f9, 0x0618, 0x057d, 0x04fe, 0x048f,
+ 0x043f, 0x0437, 0x0455, 0x0474, 0x04be, 0x052d,
+ 0x059d, 0x05fd, 0x061f, 0x0625, 0x065c, 0x06c0,
+ 0x074c, 0x07c3, 0x07ed, 0x0814, 0x082e, 0x080f,
+ 0x081c, 0x0864, 0x08b2, 0x090d, 0x0940, 0x0956,
+ 0x0986, 0x09a5, 0x09d6, 0x0a41, 0x0a9b, 0x0ad8,
+ 0x0afa, 0x0b09, 0x0b2e, 0x0b20, 0x0add, 0x0ab4,
+ 0x0a3c, 0x0978, 0x08d7, 0x07ff, 0x0709, 0x0679,
+ 0x05e4, 0x04fc, 0x03fc, 0x02f6, 0x0205, 0x011c,
+ 0x0021, 0xff5f, 0xfee7, 0xfe97, 0xfe83, 0xfe90,
+ 0xfe91, 0xfe8c, 0xfe76, 0xfe56, 0xfe55, 0xfe68,
+ 0xfe5e, 0xfe23, 0xfdc5, 0xfd4e, 0xfcc6, 0xfc44,
+ 0xfbd6, 0xfb62, 0xfad5, 0xfa6c, 0xfa6f, 0xfabf,
+ 0xfb4b, 0xfc3b, 0xfd2f, 0xfdd4, 0xfe73, 0xfef5,
+ 0xff28, 0xff4f, 0xff5c, 0xff3c, 0xff29, 0xff0d,
+ 0xfefc, 0xff34, 0xff84, 0xffcf, 0x0004, 0xffe7,
+ 0xff91, 0xff37, 0xfee0, 0xfe91, 0xfe29, 0xfdb7,
+ 0xfd69, 0xfd0f, 0xfc93, 0xfc05, 0xfb3a, 0xfa4a,
+ 0xf96f, 0xf89a, 0xf7dd, 0xf736, 0xf66d, 0xf57e,
+ 0xf48d, 0xf3c5, 0xf33a, 0xf2c1, 0xf261, 0xf23f,
+ 0xf228, 0xf1f1, 0xf1b4, 0xf17d, 0xf150, 0xf14e,
+ 0xf199, 0xf234, 0xf311, 0xf40d, 0xf4e4, 0xf585,
+ 0xf618, 0xf68a, 0xf6c3, 0xf6d5, 0xf6db, 0xf713,
+ 0xf77d, 0xf7cb, 0xf81d, 0xf89c, 0xf91c, 0xf9c4,
+ 0xfa9e, 0xfb52, 0xfbd3, 0xfc1f, 0xfc35, 0xfc6d,
+ 0xfcf9, 0xfdc9, 0xfed0, 0xffe2, 0x00eb, 0x01d9,
+ 0x027c, 0x02fa, 0x037e, 0x03f7, 0x0475, 0x04e9,
+ 0x0516, 0x0510, 0x050f, 0x0535, 0x058c, 0x05e4,
+ 0x0620, 0x063b, 0x062f, 0x0631, 0x063b, 0x0622,
+ 0x061c, 0x061a, 0x05d0, 0x0562, 0x04e1, 0x043d,
+ 0x03a3, 0x02f7, 0x0232, 0x01a6, 0x0147, 0x0113,
+ 0x012d, 0x0150, 0x0175, 0x01b1, 0x01be, 0x01cb,
+ 0x01f9, 0x01f4, 0x01dd, 0x01bc, 0x015a, 0x0126,
+ 0x0158, 0x01b2, 0x023f, 0x02b6, 0x02d6, 0x0308,
+ 0x0345, 0x033c, 0x0331, 0x033c, 0x0324, 0x02cb,
+ 0x0233, 0x0194, 0x00fc, 0x004d, 0xffb1, 0xff2f,
+ 0xfec7, 0xfeb1, 0xfeca, 0xfeee, 0xff4e, 0xffc5,
+ 0x0013, 0x0054, 0x0098, 0x00e2, 0x0110, 0x00f1,
+ 0x00a6, 0x0035, 0xff9f, 0xff32, 0xfee8, 0xfe8a,
+ 0xfe36, 0xfdf9, 0xfdd5, 0xfdd7, 0xfdb5, 0xfd54,
+ 0xfcdf, 0xfc45, 0xfb8e, 0xfacf, 0xfa03, 0xf96e,
+ 0xf946, 0xf94e, 0xf957, 0xf95c, 0xf952, 0xf949,
+ 0xf93f, 0xf915, 0xf8c8, 0xf87b, 0xf844, 0xf82d,
+ 0xf856, 0xf8e1, 0xf990, 0xfa0a, 0xfa5f, 0xfaca,
+ 0xfb55, 0xfbff, 0xfcda, 0xfdd1, 0xfe9a, 0xff01,
+ 0xff0e, 0xfee0, 0xfeac, 0xfe9d, 0xfe90, 0xfe6b,
+ 0xfe58, 0xfe39, 0xfdea, 0xfda6, 0xfd5b, 0xfcdf,
+ 0xfc77, 0xfc05, 0xfb5c, 0xfaf9, 0xfacf, 0xfa78,
+ 0xfa6c, 0xfacd, 0xfb1b, 0xfb74, 0xfbe7, 0xfc24,
+ 0xfc4a, 0xfc69, 0xfc5d, 0xfc6c, 0xfcaf, 0xfcff,
+ 0xfd5c, 0xfda1, 0xfdb5, 0xfdc9, 0xfdf2, 0xfe04,
+ 0xfde4, 0xfdc0, 0xfdcb, 0xfde5, 0xfdff, 0xfe26,
+ 0xfe35, 0xfe0d, 0xfdbb, 0xfd60, 0xfd2e, 0xfd29,
+ 0xfd4c, 0xfdb2, 0xfe31, 0xfe78, 0xfe7f, 0xfe45,
+ 0xfdcd, 0xfd0c, 0xfbf6, 0xfaea, 0xfa40, 0xf9cd,
+ 0xf9a1, 0xfa07, 0xfabc, 0xfb5d, 0xfbe6, 0xfc22,
+ 0xfbd5, 0xfb3c, 0xfa90, 0xf9c3, 0xf903, 0xf88c,
+ 0xf85c, 0xf891, 0xf927, 0xf9d3, 0xfa7c, 0xfaed,
+ 0xfae8, 0xfabc, 0xfa9a, 0xfa52, 0xf9f7, 0xf9a3,
+ 0xf951, 0xf925, 0xf92a, 0xf95a, 0xf9b1, 0xfa21,
+ 0xfab9, 0xfb4a, 0xfb8e, 0xfbcc, 0xfc1f, 0xfc4c,
+ 0xfc9a, 0xfd1f, 0xfd87, 0xfdcb, 0xfdde, 0xfdb7,
+ 0xfd7c, 0xfd0d, 0xfc9b, 0xfcae, 0xfd28, 0xfdd7,
+ 0xfeb4, 0xff3c, 0xff1e, 0xfe94, 0xfda6, 0xfc74,
+ 0xfb7d, 0xfb0c, 0xfb30, 0xfbec, 0xfd23, 0xfe91,
+ 0xffde, 0x00c5, 0x011b, 0x00d6, 0x0048, 0xffcf,
+ 0xff7a, 0xff60, 0xff8e, 0xffe4, 0x0078, 0x0141,
+ 0x01cb, 0x0200, 0x0228, 0x0235, 0x0219, 0x0231,
+ 0x02ca, 0x03d4, 0x050f, 0x0647, 0x074b, 0x07c3,
+ 0x07c5, 0x07cf, 0x07f7, 0x0847, 0x08df, 0x0968,
+ 0x09bf, 0x0a0a, 0x09fe, 0x0999, 0x0934, 0x08b9,
+ 0x081e, 0x0773, 0x06af, 0x061f, 0x05c6, 0x054f,
+ 0x050c, 0x0537, 0x0574, 0x058b, 0x054a, 0x049e,
+ 0x03a1, 0x0262, 0x014b, 0x00c2, 0x0090, 0x00a4,
+ 0x010d, 0x0183, 0x01e0, 0x0209, 0x01f1, 0x01dd,
+ 0x01d0, 0x01a8, 0x0187, 0x0175, 0x0175, 0x019b,
+ 0x01d2, 0x0217, 0x0250, 0x0257, 0x026e, 0x02ac,
+ 0x02d0, 0x02f1, 0x0341, 0x03a8, 0x0404, 0x0450,
+ 0x0490, 0x04ac, 0x04a9, 0x049b, 0x046a, 0x043d,
+ 0x0448, 0x0449, 0x043d, 0x0446, 0x0422, 0x03e7,
+ 0x03c2, 0x036f, 0x031d, 0x02fd, 0x02bb, 0x025d,
+ 0x0205, 0x01a3, 0x0161, 0x0142, 0x0134, 0x014b,
+ 0x0152, 0x013e, 0x012d, 0x00e4, 0x007f, 0x0066,
+ 0x0063, 0x003e, 0x0038, 0x0063, 0x009a, 0x00de,
+ 0x011d, 0x012b, 0x011b, 0x0115, 0x0113, 0x0146,
+ 0x01bf, 0x0205, 0x021b, 0x0266, 0x0297, 0x028e,
+ 0x02b4, 0x02eb, 0x0318, 0x037d, 0x03d8, 0x03e0,
+ 0x03d1, 0x03c9, 0x03a5, 0x0355, 0x02fe, 0x02c2,
+ 0x0285, 0x023a, 0x01f7, 0x01b2, 0x0163, 0x010a,
+ 0x00ac, 0x0063, 0x002d, 0x0001, 0xffe7, 0xffc4,
+ 0xff9b, 0xff7d, 0xff4b, 0xff01, 0xfeaf, 0xfe4a,
+ 0xfdd7, 0xfd52, 0xfcc7, 0xfc4f, 0xfbd3, 0xfb65,
+ 0xfb24, 0xfad6, 0xfa81, 0xfa5b, 0xfa2c, 0xf9d5,
+ 0xf985, 0xf94b, 0xf91a, 0xf8cd, 0xf857, 0xf7f3,
+ 0xf7b5, 0xf79f, 0xf7c5, 0xf7ee, 0xf7e7, 0xf7de,
+ 0xf7f2, 0xf81f, 0xf868, 0xf8dd, 0xf98f, 0xfa66,
+ 0xfb39, 0xfc02, 0xfcbf, 0xfd40, 0xfd6a, 0xfd7a,
+ 0xfd8b, 0xfd6b, 0xfd44, 0xfd5f, 0xfd86, 0xfd91,
+ 0xfd88, 0xfd5f, 0xfd2e, 0xfcf8, 0xfcb5, 0xfc9f,
+ 0xfcad, 0xfcb9, 0xfcd9, 0xfcdb, 0xfca8, 0xfc7d,
+ 0xfc43, 0xfc02, 0xfbd7, 0xfb8a, 0xfb49, 0xfb4d,
+ 0xfb52, 0xfb53, 0xfb58, 0xfb56, 0xfb86, 0xfbcc,
+ 0xfbf4, 0xfc2f, 0xfc70, 0xfcc5, 0xfd79, 0xfe3c,
+ 0xfed9, 0xff9c, 0x007d, 0x0172, 0x0297, 0x03e1,
+ 0x055e, 0x06ff, 0x088c, 0x0a17, 0x0ba8, 0x0d23,
+ 0x0e97, 0x1020, 0x11b9, 0x133d, 0x149b, 0x15e0,
+ 0x16ed, 0x17c2, 0x1898, 0x1951, 0x19be, 0x1a03,
+ 0x1a2b, 0x1a4c, 0x1a87, 0x1ab9, 0x1aea, 0x1b25,
+ 0x1b36, 0x1b28, 0x1b0a, 0x1aa4, 0x1a09, 0x1974,
+ 0x18e5, 0x1861, 0x17da, 0x1716, 0x1601, 0x14bc,
+ 0x135d, 0x11d7, 0x1044, 0x0ef0, 0x0df8, 0x0d43,
+ 0x0cb4, 0x0c26, 0x0b9d, 0x0b24, 0x0a95, 0x09e1,
+ 0x091d, 0x0854, 0x0799, 0x06f0, 0x0673, 0x0641,
+ 0x061f, 0x05e3, 0x05c4, 0x05c4, 0x05d0, 0x05f9,
+ 0x063c, 0x0699, 0x0703, 0x0756, 0x07c0, 0x0856,
+ 0x08c5, 0x08ff, 0x092a, 0x0951, 0x09aa, 0x0a45,
+ 0x0af5, 0x0bb7, 0x0c6a, 0x0cc7, 0x0cc4, 0x0c85,
+ 0x0c50, 0x0c42, 0x0c2d, 0x0c19, 0x0c11, 0x0bc6,
+ 0x0b4f, 0x0afe, 0x0a88, 0x09bd, 0x08f7, 0x0853,
+ 0x07b7, 0x073b, 0x06df, 0x06a0, 0x0675, 0x0610,
+ 0x055c, 0x04a7, 0x0408, 0x036d, 0x02eb, 0x027e,
+ 0x01fa, 0x014f, 0x0082, 0xff9c, 0xfeb6, 0xfde5,
+ 0xfd35, 0xfcb0, 0xfc59, 0xfc1c, 0xfbee, 0xfbee,
+ 0xfc18, 0xfc4b, 0xfc97, 0xfcef, 0xfd21, 0xfd40,
+ 0xfd64, 0xfd77, 0xfd8e, 0xfdaf, 0xfdc5, 0xfdc9,
+ 0xfdb4, 0xfda6, 0xfdcd, 0xfe01, 0xfe2e, 0xfe7f,
+ 0xfee2, 0xff37, 0xff89, 0xffdf, 0x002e, 0x0068,
+ 0x00a3, 0x00f6, 0x012a, 0x012c, 0x0110, 0x00b9,
+ 0x0031, 0xffa9, 0xff21, 0xfe99, 0xfdfc, 0xfd2b,
+ 0xfc45, 0xfb4e, 0xfa43, 0xf963, 0xf8b0, 0xf80d,
+ 0xf7a0, 0xf75c, 0xf706, 0xf684, 0xf5d7, 0xf51a,
+ 0xf447, 0xf35e, 0xf2b5, 0xf25f, 0xf21d, 0xf20e,
+ 0xf23c, 0xf24b, 0xf218, 0xf1c2, 0xf165, 0xf118,
+ 0xf0ee, 0xf0df, 0xf0d3, 0xf0e0, 0xf121, 0xf172,
+ 0xf1ca, 0xf245, 0xf2c6, 0xf342, 0xf3de, 0xf493,
+ 0xf564, 0xf645, 0xf708, 0xf7af, 0xf835, 0xf888,
+ 0xf8d2, 0xf919, 0xf953, 0xf9cd, 0xfa9c, 0xfb63,
+ 0xfc12, 0xfcd7, 0xfdad, 0xfe85, 0xff6e, 0x0065,
+ 0x0148, 0x01e7, 0x023b, 0x0277, 0x02ca, 0x0329,
+ 0x0396, 0x0415, 0x0483, 0x04dc, 0x0526, 0x052e,
+ 0x04de, 0x0453, 0x0398, 0x02c7, 0x020f, 0x018e,
+ 0x014b, 0x012d, 0x011f, 0x011b, 0x011a, 0x0123,
+ 0x0137, 0x0156, 0x018e, 0x01e8, 0x025f, 0x02c5,
+ 0x02ea, 0x0307, 0x033d, 0x034d, 0x034b, 0x0350,
+ 0x0335, 0x0313, 0x02fe, 0x02dc, 0x02b0, 0x0255,
+ 0x01c3, 0x0130, 0x0092, 0x0004, 0xffb4, 0xff87,
+ 0xffb7, 0x0058, 0x00f5, 0x0180, 0x020e, 0x025e,
+ 0x028f, 0x02cd, 0x0304, 0x032b, 0x0326, 0x0306,
+ 0x02e5, 0x02a9, 0x0285, 0x0295, 0x02a4, 0x02e1,
+ 0x033a, 0x0347, 0x0337, 0x02fe, 0x024a, 0x016c,
+ 0x00b5, 0x0037, 0xfffb, 0xffac, 0xff41, 0xff01,
+ 0xfed2, 0xfe8c, 0xfe28, 0xfda3, 0xfd36, 0xfce9,
+ 0xfca5, 0xfc93, 0xfc8b, 0xfc39, 0xfbc5, 0xfb54,
+ 0xface, 0xfa43, 0xf9f3, 0xf9fc, 0xfa28, 0xfa52,
+ 0xfaab, 0xfb21, 0xfb6a, 0xfbab, 0xfc2a, 0xfca5,
+ 0xfce4, 0xfd24, 0xfd79, 0xfdbd, 0xfe0b, 0xfe60,
+ 0xfe73, 0xfe4f, 0xfe24, 0xfdf5, 0xfdd2, 0xfdb3,
+ 0xfd7b, 0xfd25, 0xfcc8, 0xfc95, 0xfc75, 0xfc32,
+ 0xfc05, 0xfbf5, 0xfbb4, 0xfb83, 0xfba6, 0xfbf3,
+ 0xfc51, 0xfc9a, 0xfcbb, 0xfcce, 0xfccf, 0xfcd4,
+ 0xfce3, 0xfcd8, 0xfcee, 0xfd3f, 0xfd7d, 0xfdaa,
+ 0xfdd9, 0xfe11, 0xfe76, 0xfed1, 0xff08, 0xff58,
+ 0xff91, 0xff78, 0xff29, 0xfeba, 0xfe71, 0xfe80,
+ 0xfebd, 0xff14, 0xff71, 0xffb5, 0xffc7, 0xff95,
+ 0xff56, 0xff2a, 0xfef9, 0xfef1, 0xfeff, 0xfee4,
+ 0xfee5, 0xfefa, 0xfec2, 0xfe5a, 0xfdd5, 0xfd3d,
+ 0xfce9, 0xfcd0, 0xfcc7, 0xfcde, 0xfd0f, 0xfd61,
+ 0xfdc6, 0xfe07, 0xfe1a, 0xfdea, 0xfd6e, 0xfccc,
+ 0xfc13, 0xfb78, 0xfb1c, 0xfab1, 0xfa40, 0xf9f4,
+ 0xf98f, 0xf917, 0xf8ca, 0xf8ba, 0xf8f5, 0xf93e,
+ 0xf95b, 0xf97b, 0xf99e, 0xf99f, 0xf9ac, 0xf9d2,
+ 0xf9f4, 0xfa28, 0xfa6f, 0xfaa5, 0xfac7, 0xfadb,
+ 0xfaef, 0xfb18, 0xfb4f, 0xfb87, 0xfbd2, 0xfc1f,
+ 0xfc2f, 0xfbe7, 0xfb4c, 0xfa88, 0xf9f5, 0xf9be,
+ 0xf9d7, 0xfa39, 0xfaa8, 0xfaf4, 0xfb18, 0xfaed,
+ 0xfa88, 0xfa16, 0xf97e, 0xf908, 0xf8f7, 0xf907,
+ 0xf964, 0xfa13, 0xfa76, 0xfaa3, 0xfacb, 0xfa8b,
+ 0xfa1c, 0xf9fb, 0xfa10, 0xfa65, 0xfb11, 0xfbf2,
+ 0xfcee, 0xfdba, 0xfe2c, 0xfe8f, 0xfefe, 0xff78,
+ 0x001c, 0x00ec, 0x01d9, 0x02cd, 0x037d, 0x03ce,
+ 0x03e6, 0x03df, 0x03df, 0x0425, 0x04ab, 0x054f,
+ 0x060e, 0x06a9, 0x06cd, 0x06a2, 0x064f, 0x05bc,
+ 0x052a, 0x04e3, 0x04d0, 0x04db, 0x04fb, 0x051c,
+ 0x053a, 0x0541, 0x0533, 0x0511, 0x04b6, 0x0446,
+ 0x03f5, 0x03a0, 0x0349, 0x0315, 0x02ed, 0x02c1,
+ 0x02af, 0x02d8, 0x0319, 0x0314, 0x02d5, 0x02a5,
+ 0x026e, 0x022c, 0x0215, 0x0226, 0x0259, 0x02c5,
+ 0x034f, 0x03c5, 0x042e, 0x049a, 0x04d8, 0x04b5,
+ 0x045b, 0x03f8, 0x0396, 0x0343, 0x0303, 0x02e9,
+ 0x0303, 0x031b, 0x0324, 0x033b, 0x0349, 0x0359,
+ 0x0385, 0x03c6, 0x0433, 0x04b1, 0x050f, 0x0566,
+ 0x059b, 0x057c, 0x0529, 0x04b1, 0x0424, 0x03c7,
+ 0x03ac, 0x03c9, 0x03fe, 0x03fd, 0x03c4, 0x0389,
+ 0x034e, 0x0315, 0x02e5, 0x02b0, 0x0285, 0x0271,
+ 0x025d, 0x0234, 0x0205, 0x01f4, 0x01fa, 0x0210,
+ 0x0257, 0x02b3, 0x02d2, 0x02c1, 0x02bc, 0x02bd,
+ 0x02ba, 0x02b5, 0x029e, 0x027c, 0x0269, 0x0256,
+ 0x0236, 0x0222, 0x022d, 0x025e, 0x02c2, 0x0338,
+ 0x0386, 0x0389, 0x0345, 0x02f4, 0x02b3, 0x0263,
+ 0x0210, 0x01d3, 0x0198, 0x013d, 0x00bc, 0x0056,
+ 0x004c, 0x0056, 0x003b, 0x0013, 0xffba, 0xff28,
+ 0xfeb0, 0xfe64, 0xfe4c, 0xfe9e, 0xff55, 0x0033,
+ 0x00ea, 0x014c, 0x014f, 0x00af, 0xff80, 0xfe57,
+ 0xfd5b, 0xfca7, 0xfca6, 0xfd05, 0xfd24, 0xfd10,
+ 0xfccf, 0xfc43, 0xfba8, 0xfb21, 0xfabc, 0xfac0,
+ 0xfb4f, 0xfc40, 0xfd5e, 0xfe82, 0xff7d, 0x000d,
+ 0x000c, 0xff91, 0xfed7, 0xfe18, 0xfd73, 0xfd07,
+ 0xfd02, 0xfd5e, 0xfdd8, 0xfe49, 0xfe9f, 0xfeb0,
+ 0xfe80, 0xfe4f, 0xfe32, 0xfe30, 0xfe4a, 0xfe54,
+ 0xfe41, 0xfe41, 0xfe60, 0xfea6, 0xff17, 0xff81,
+ 0xffd7, 0x0029, 0x0048, 0x0042, 0x0067, 0x00af,
+ 0x011f, 0x01e6, 0x02c7, 0x034d, 0x0346, 0x02c5,
+ 0x0220, 0x01a0, 0x015b, 0x0175, 0x01f6, 0x02bf,
+ 0x03b1, 0x0483, 0x04e1, 0x04a9, 0x03c0, 0x024e,
+ 0x00c7, 0xff7e, 0xfe8f, 0xfe0f, 0xfe0a, 0xfe7c,
+ 0xff1f, 0xff78, 0xff3a, 0xfe6c, 0xfd50, 0xfc35,
+ 0xfb5a, 0xfb04, 0xfb68, 0xfc66, 0xfdac, 0xff1c,
+ 0x00a2, 0x01fc, 0x0306, 0x03ce, 0x045b, 0x04d0,
+ 0x0558, 0x05d0, 0x063b, 0x06e0, 0x07bc, 0x08b3,
+ 0x09c0, 0x0aa5, 0x0b4b, 0x0bd3, 0x0c33, 0x0c90,
+ 0x0d24, 0x0db4, 0x0e1f, 0x0e8c, 0x0eda, 0x0efc,
+ 0x0f21, 0x0f40, 0x0f46, 0x0f46, 0x0f42, 0x0f51,
+ 0x0f93, 0x0ff5, 0x1047, 0x106a, 0x104d, 0x0fdb,
+ 0x0f1b, 0x0e45, 0x0d88, 0x0cf5, 0x0c90, 0x0c45,
+ 0x0c09, 0x0bf6, 0x0c02, 0x0c07, 0x0bfc, 0x0bd7,
+ 0x0b81, 0x0afd, 0x0a7e, 0x0a2b, 0x09ef, 0x09cb,
+ 0x09eb, 0x0a3d, 0x0a96, 0x0aed, 0x0b29, 0x0b5a,
+ 0x0ba2, 0x0bec, 0x0c2d, 0x0c6c, 0x0ca4, 0x0cf5,
+ 0x0d69, 0x0df5, 0x0ead, 0x0f58, 0x0fb4, 0x100d,
+ 0x107b, 0x10b6, 0x10d6, 0x1105, 0x1127, 0x1134,
+ 0x1129, 0x10ed, 0x1071, 0x0fb2, 0x0ed0, 0x0deb,
+ 0x0d0b, 0x0c50, 0x0bb9, 0x0b17, 0x0a69, 0x09d6,
+ 0x0960, 0x090f, 0x08f6, 0x08ff, 0x08ff, 0x08ed,
+ 0x08b0, 0x083e, 0x07c4, 0x0742, 0x06ae, 0x0631,
+ 0x05a1, 0x04d6, 0x041a, 0x036a, 0x02b9, 0x0257,
+ 0x0219, 0x01ac, 0x0135, 0x00ab, 0x0013, 0xffa3,
+ 0xff33, 0xfef6, 0xff27, 0xff47, 0xff38, 0xff4d,
+ 0xff76, 0xffb2, 0x0002, 0x003e, 0x0078, 0x009e,
+ 0x00a5, 0x00eb, 0x0171, 0x01f3, 0x026b, 0x02be,
+ 0x02f1, 0x0310, 0x02d5, 0x025a, 0x01ee, 0x0174,
+ 0x00ea, 0x006d, 0xfff0, 0xff92, 0xff53, 0xfefd,
+ 0xfe9c, 0xfe36, 0xfda3, 0xfcf6, 0xfc6b, 0xfc1e,
+ 0xfbf5, 0xfbb8, 0xfb4b, 0xfaa3, 0xf9d2, 0xf901,
+ 0xf84a, 0xf7d1, 0xf7b3, 0xf7d6, 0xf811, 0xf83d,
+ 0xf825, 0xf7ad, 0xf6f2, 0xf64b, 0xf611, 0xf65d,
+ 0xf6fd, 0xf792, 0xf7f1, 0xf823, 0xf7f4, 0xf762,
+ 0xf6c0, 0xf61a, 0xf57d, 0xf531, 0xf525, 0xf54c,
+ 0xf5be, 0xf657, 0xf711, 0xf7b4, 0xf7b9, 0xf75d,
+ 0xf6ef, 0xf62e, 0xf58c, 0xf593, 0xf5e3, 0xf65b,
+ 0xf732, 0xf81a, 0xf8e2, 0xf9ab, 0xfa65, 0xfb04,
+ 0xfb8d, 0xfbe3, 0xfbf5, 0xfbde, 0xfbc9, 0xfbc7,
+ 0xfbc0, 0xfbad, 0xfb9f, 0xfb87, 0xfb60, 0xfb3e,
+ 0xfaf9, 0xfa97, 0xfa6a, 0xfa70, 0xfa7c, 0xfaa8,
+ 0xfaed, 0xfb40, 0xfbb3, 0xfc11, 0xfc2b, 0xfc21,
+ 0xfc02, 0xfbea, 0xfbdf, 0xfbbb, 0xfbcc, 0xfc38,
+ 0xfc80, 0xfc92, 0xfc97, 0xfc59, 0xfbed, 0xfb83,
+ 0xfb1c, 0xfae9, 0xfb02, 0xfb36, 0xfb57, 0xfb49,
+ 0xfb35, 0xfb37, 0xfb2f, 0xfb54, 0xfbc1, 0xfc26,
+ 0xfc97, 0xfd29, 0xfd8e, 0xfdd9, 0xfe36, 0xfe7a,
+ 0xfeae, 0xff06, 0xff73, 0xffd2, 0x0032, 0x00a6,
+ 0x00f4, 0x010f, 0x0144, 0x019b, 0x0211, 0x02cb,
+ 0x039c, 0x043c, 0x049b, 0x04b9, 0x04bc, 0x04a3,
+ 0x0454, 0x0416, 0x0400, 0x03d8, 0x03a0, 0x0340,
+ 0x02a8, 0x021c, 0x01a7, 0x0147, 0x012a, 0x0137,
+ 0x0148, 0x015d, 0x0165, 0x0162, 0x0153, 0x0134,
+ 0x012b, 0x0133, 0x0135, 0x0157, 0x01b6, 0x0240,
+ 0x02c3, 0x0318, 0x0343, 0x0330, 0x02d2, 0x0267,
+ 0x020f, 0x01bd, 0x0187, 0x0147, 0x00d4, 0x0071,
+ 0x003c, 0xfff9, 0xffaa, 0xff8b, 0xff92, 0xff8a,
+ 0xff6a, 0xff35, 0xff00, 0xfef1, 0xfed6, 0xfe8e,
+ 0xfe65, 0xfe6c, 0xfe90, 0xfeeb, 0xff42, 0xff69,
+ 0xff8b, 0xff71, 0xfef7, 0xfe8e, 0xfe6b, 0xfe69,
+ 0xfe64, 0xfe35, 0xfdde, 0xfd87, 0xfd2d, 0xfcc0,
+ 0xfc69, 0xfc5c, 0xfc7e, 0xfc96, 0xfca9, 0xfcbc,
+ 0xfcc8, 0xfcde, 0xfcfa, 0xfd25, 0xfd6b, 0xfda3,
+ 0xfdc5, 0xfdd2, 0xfdac, 0xfd7a, 0xfd76, 0xfd9d,
+ 0xfde8, 0xfe1d, 0xfdff, 0xfdaa, 0xfd34, 0xfccd,
+ 0xfcb9, 0xfce6, 0xfd66, 0xfe41, 0xfeef, 0xff2d,
+ 0xff30, 0xff09, 0xfed0, 0xfeb5, 0xfec7, 0xfeef,
+ 0xfed8, 0xfe6c, 0xfded, 0xfd4b, 0xfc76, 0xfbad,
+ 0xfb11, 0xfabb, 0xfac8, 0xfb13, 0xfb6f, 0xfbb3,
+ 0xfbd7, 0xfbd5, 0xfb7f, 0xfafa, 0xfab2, 0xfaa4,
+ 0xfaae, 0xfad2, 0xfb08, 0xfb3a, 0xfb24, 0xfabf,
+ 0xfa66, 0xfa23, 0xf9df, 0xf9c4, 0xf9b6, 0xf9ac,
+ 0xf9de, 0xfa14, 0xfa24, 0xfa3f, 0xfa3f, 0xfa11,
+ 0xf9e9, 0xf9c8, 0xf9a8, 0xf9b5, 0xf9f1, 0xfa0f,
+ 0xf9fb, 0xf9ff, 0xfa01, 0xf9ab, 0xf941, 0xf927,
+ 0xf95a, 0xf9c7, 0xfa36, 0xfaa5, 0xfb20, 0xfb48,
+ 0xfb21, 0xfaf6, 0xfabc, 0xfab1, 0xfae9, 0xfb0b,
+ 0xfb45, 0xfba6, 0xfbdf, 0xfc21, 0xfc5d, 0xfc4e,
+ 0xfc10, 0xfb6d, 0xfa82, 0xf9ee, 0xf9bc, 0xfa05,
+ 0xfab4, 0xfaef, 0xfac0, 0xfaa2, 0xfa50, 0xf9f6,
+ 0xf9f0, 0xfa22, 0xfaac, 0xfb5f, 0xfbce, 0xfc0c,
+ 0xfbef, 0xfb49, 0xfa8c, 0xfa4b, 0xfae8, 0xfc23,
+ 0xfd40, 0xfe06, 0xfe6b, 0xfe41, 0xfdc7, 0xfd52,
+ 0xfcfd, 0xfcf9, 0xfd62, 0xfe00, 0xfe71, 0xfead,
+ 0xfee2, 0xff06, 0xff47, 0xffa8, 0xffe1, 0x0073,
+ 0x0170, 0x0206, 0x0265, 0x0273, 0x0173, 0x0040,
+ 0xff9a, 0xff61, 0x004c, 0x01f9, 0x02fb, 0x035a,
+ 0x033a, 0x0289, 0x0207, 0x01f2, 0x022d, 0x02ed,
+ 0x03ca, 0x0443, 0x0464, 0x0431, 0x03ba, 0x0351,
+ 0x0337, 0x0329, 0x0308, 0x0371, 0x044a, 0x04f5,
+ 0x0582, 0x0589, 0x04e4, 0x0451, 0x0387, 0x0287,
+ 0x0242, 0x023f, 0x0233, 0x028c, 0x02ac, 0x029f,
+ 0x02e4, 0x032c, 0x03e0, 0x04e2, 0x0510, 0x0470,
+ 0x0366, 0x0267, 0x022b, 0x0283, 0x0359, 0x048f,
+ 0x055f, 0x0610, 0x069d, 0x0670, 0x068f, 0x06e6,
+ 0x0642, 0x0580, 0x053a, 0x0537, 0x05d2, 0x066d,
+ 0x0684, 0x066a, 0x05cf, 0x0504, 0x04c1, 0x0524,
+ 0x064a, 0x0736, 0x06f5, 0x0623, 0x04e7, 0x03b8,
+ 0x0371, 0x0365, 0x0349, 0x0359, 0x0325, 0x032a,
+ 0x0378, 0x0375, 0x0385, 0x0357, 0x02a4, 0x020b,
+ 0x0123, 0x0084, 0x0122, 0x01a7, 0x01d4, 0x0239,
+ 0x021e, 0x0209, 0x0239, 0x01d7, 0x0164, 0x00c0,
+ 0xffea, 0x0029, 0x00c3, 0x00ec, 0x0191, 0x0208,
+ 0x0190, 0x00ed, 0x00ab, 0x0120, 0x01ff, 0x02be,
+ 0x0382, 0x0437, 0x0515, 0x05af, 0x0491, 0x0295,
+ 0x0116, 0xffb8, 0xff24, 0xffcf, 0x0112, 0x0299,
+ 0x02eb, 0x01c4, 0x00fe, 0x005d, 0xff79, 0xff47,
+ 0xff61, 0xffc0, 0x0088, 0x00ba, 0x00a6, 0x00f2,
+ 0x0168, 0x01e8, 0x019f, 0x00d7, 0x00a5, 0x0063,
+ 0x002c, 0x007b, 0x0060, 0x0010, 0xffb4, 0xff16,
+ 0xff78, 0x0071, 0x00e8, 0x0170, 0x012b, 0xffbd,
+ 0xfef5, 0xff10, 0xff8a, 0x0029, 0x00a8, 0x01bd,
+ 0x02fd, 0x037f, 0x041d, 0x047c, 0x03e4, 0x0356,
+ 0x02f1, 0x0253, 0x0160, 0x004b, 0x0095, 0x01e0,
+ 0x0270, 0x02ae, 0x025b, 0x0122, 0x0082, 0x0053,
+ 0x0003, 0xfff5, 0xff74, 0xfef9, 0xff23, 0xfefb,
+ 0xff2f, 0x003f, 0x00b9, 0x0035, 0xff5c, 0xff32,
+ 0xffd3, 0xffd7, 0xff85, 0xff45, 0xfe60, 0xfdfe,
+ 0xfe2a, 0xfe0b, 0xff9a, 0x026f, 0x03be, 0x039a,
+ 0x0297, 0x014e, 0x00c2, 0x0075, 0x0114, 0x0345,
+ 0x050a, 0x05bd, 0x061d, 0x0666, 0x06eb, 0x06eb,
+ 0x0631, 0x05ca, 0x05df, 0x06b0, 0x0761, 0x06aa,
+ 0x062e, 0x0622, 0x053e, 0x0533, 0x0616, 0x068d,
+ 0x0749, 0x07ab, 0x07a2, 0x084f, 0x0895, 0x08af,
+ 0x0903, 0x07c7, 0x0642, 0x0627, 0x0678, 0x077a,
+ 0x08d9, 0x0979, 0x09d2, 0x097e, 0x0893, 0x0821,
+ 0x07e1, 0x0829, 0x0894, 0x07f2, 0x07a9, 0x0846,
+ 0x0956, 0x0b89, 0x0d1a, 0x0cab, 0x0b9c, 0x0a54,
+ 0x09d1, 0x0a65, 0x0a2f, 0x09d9, 0x09ab, 0x0869,
+ 0x0796, 0x0743, 0x06ca, 0x07d1, 0x08e0, 0x088a,
+ 0x0898, 0x0893, 0x086c, 0x090f, 0x08ca, 0x076d,
+ 0x059e, 0x02e8, 0x011f, 0x0117, 0x01ca, 0x030f,
+ 0x0348, 0x024a, 0x0221, 0x01ea, 0x012c, 0x00b0,
+ 0xff2d, 0xfd20, 0xfbda, 0xfabe, 0xfad4, 0xfcb4,
+ 0xfec8, 0x0086, 0x011c, 0xff92, 0xfcdc, 0xfa3c,
+ 0xf915, 0xfa72, 0xfd8c, 0x013c, 0x04cf, 0x0799,
+ 0x08b4, 0x075e, 0x044f, 0x0042, 0xfb83, 0xf7d0,
+ 0xf619, 0xf668, 0xf992, 0xfdf0, 0x0110, 0x01d5,
+ 0xfd5e, 0xf3a0, 0xe921, 0xdff7, 0xd9b4, 0xd8d2,
+ 0xdc51, 0xe2ca, 0xeadd, 0xf08f, 0xf255, 0xf1b2,
+ 0xef73, 0xed0a, 0xebdf, 0xec10, 0xedf1, 0xf130,
+ 0xf464, 0xf67c, 0xf7a0, 0xf8eb, 0xfa9c, 0xfc8f,
+ 0xff1e, 0x0137, 0x01b8, 0x0129, 0xffb4, 0xfdf3,
+ 0xfde5, 0x003b, 0x03a9, 0x0673, 0x07c9, 0x07d3,
+ 0x06e0, 0x0605, 0x0614, 0x067f, 0x0797, 0x0959,
+ 0x0a54, 0x0aef, 0x0b8e, 0x0b15, 0x0a37, 0x09c4,
+ 0x09cb, 0x0b62, 0x0da6, 0x0f53, 0x1187, 0x13c7,
+ 0x1542, 0x16fe, 0x17f5, 0x1725, 0x15b9, 0x13e9,
+ 0x127b, 0x12b8, 0x13e8, 0x15f1, 0x18b1, 0x19a4,
+ 0x17b5, 0x1461, 0x113b, 0x0f6a, 0x0f09, 0x1038,
+ 0x133d, 0x15eb, 0x1679, 0x1689, 0x16eb, 0x16bf,
+ 0x165e, 0x1606, 0x154b, 0x1474, 0x13d6, 0x13bf,
+ 0x14a8, 0x1632, 0x1782, 0x183f, 0x189c, 0x1879,
+ 0x1713, 0x1450, 0x10f0, 0x0dbf, 0x0bae, 0x0acb,
+ 0x0a9b, 0x0b85, 0x0ca6, 0x0c96, 0x0c22, 0x0b8f,
+ 0x0b08, 0x0bed, 0x0c58, 0x0ac9, 0x0a8f, 0x0c03,
+ 0x0ca8, 0x0d2d, 0x0d90, 0x0d38, 0x0db5, 0x0e94,
+ 0x0e79, 0x0db4, 0x0c7b, 0x0c01, 0x0cd8, 0x0d31,
+ 0x0ceb, 0x0ce2, 0x0c8e, 0x0bb9, 0x0a4d, 0x0853,
+ 0x060f, 0x0400, 0x043a, 0x062a, 0x0609, 0x048b,
+ 0x045c, 0x04f6, 0x05f5, 0x066e, 0x0567, 0x043d,
+ 0x0295, 0x0014, 0xfecc, 0xfe66, 0xfe58, 0xff8e,
+ 0x00d7, 0x01eb, 0x0304, 0x02ae, 0x01f1, 0x01b7,
+ 0x0056, 0xfdf8, 0xfb57, 0xf93a, 0xf986, 0xfb62,
+ 0xfd03, 0xfe3d, 0xfe2c, 0xfd02, 0xfc03, 0xfb2f,
+ 0xfaab, 0xfa3c, 0xf9df, 0xfa85, 0xfb1e, 0xfacb,
+ 0xfa26, 0xf8b8, 0xf7c9, 0xf8a2, 0xf963, 0xfa17,
+ 0xfb58, 0xfb94, 0xfb6e, 0xfbd2, 0xfbb3, 0xfa83,
+ 0xf814, 0xf5dc, 0xf4db, 0xf2f9, 0xf0ee, 0xf0e0,
+ 0xf16d, 0xf2d1, 0xf53f, 0xf5e7, 0xf555, 0xf53a,
+ 0xf402, 0xf127, 0xee49, 0xed00, 0xed11, 0xed0c,
+ 0xedc1, 0xef61, 0xf00b, 0xefd1, 0xeeb7, 0xece7,
+ 0xec9d, 0xed49, 0xedaa, 0xeeb5, 0xeefc, 0xedea,
+ 0xed1c, 0xebc2, 0xeab6, 0xeb86, 0xebec, 0xebd0,
+ 0xed0a, 0xeea3, 0xef9e, 0xefc7, 0xef78, 0xef10,
+ 0xed99, 0xec2f, 0xec41, 0xec1e, 0xebdd, 0xec57,
+ 0xec36, 0xec3c, 0xed0b, 0xed97, 0xeeae, 0xefaf,
+ 0xef55, 0xef00, 0xee9e, 0xed26, 0xeb63, 0xeab2,
+ 0xec17, 0xee7b, 0xf0f0, 0xf4bf, 0xf8b5, 0xfb01,
+ 0xfc28, 0xfad0, 0xf7ac, 0xf647, 0xf530, 0xf2ea,
+ 0xf149, 0xf034, 0xf020, 0xf061, 0xef0d, 0xefaa,
+ 0xf2d5, 0xf2bd, 0xf047, 0xf00b, 0xeff9, 0xed84,
+ 0xea7b, 0xe85f, 0xe723, 0xe717, 0xe87a, 0xeaeb,
+ 0xeef2, 0xf3eb, 0xf650, 0xf6c4, 0xf784, 0xf4ea,
+ 0xef81, 0xec3e, 0xe957, 0xe6d1, 0xe87f, 0xeb5c,
+ 0xee1f, 0xf4d1, 0xfbb3, 0xfd60, 0xfd0a, 0xfcc9,
+ 0xfa6c, 0xf713, 0xf5c7, 0xf5ee, 0xf5ea, 0xf6de,
+ 0xf878, 0xfa01, 0xfda2, 0x0159, 0xff9d, 0xf8e3,
+ 0xf3a9, 0xf435, 0xf710, 0xf706, 0xf55f, 0xf621,
+ 0xf97e, 0xfc65, 0xfc0d, 0xfa9b, 0xfce8, 0x00f2,
+ 0x0393, 0x05d4, 0x0438, 0x0063, 0x011f, 0x008b,
+ 0xfb66, 0xf8fd, 0xf800, 0xf5f0, 0xf7f1, 0xfc4b,
+ 0xfde9, 0xff1c, 0xff06, 0xfafa, 0xf893, 0xf9ee,
+ 0xfb9f, 0xfd85, 0xfe6e, 0xfcf2, 0xfc83, 0xff22,
+ 0xffa7, 0xfe7f, 0x0329, 0x07ac, 0x062a, 0x078a,
+ 0x0cb1, 0x0f16, 0x0e55, 0x0c81, 0x0b3d, 0x0a5c,
+ 0x0996, 0x07a4, 0x04af, 0x0643, 0x0ba5, 0x0bf3,
+ 0x08e1, 0x0b6f, 0x0c30, 0x0771, 0x0abf, 0x0ee3,
+ 0x0a75, 0x07b5, 0x04e3, 0x031b, 0x07c3, 0x0aa8,
+ 0x0cde, 0x10a1, 0x0f9e, 0x0cc4, 0x0c61, 0x09a5,
+ 0x0559, 0x06ca, 0x09f9, 0x0bce, 0x0cf7, 0x0a3b,
+ 0x08c4, 0x06b3, 0x0353, 0x0678, 0x0820, 0x0699,
+ 0x04a1, 0x00fa, 0x0377, 0x060f, 0x02f2, 0x0017,
+ 0xfe50, 0x004b, 0x048a, 0x04e9, 0x01ac, 0x0135,
+ 0x01b4, 0xfe8f, 0xff49, 0xfe4b, 0xfc42, 0x03bb,
+ 0x0568, 0x01fe, 0x045b, 0x05ab, 0x04f8, 0x028e,
+ 0x04e2, 0x0775, 0xff57, 0xfd02, 0x0549, 0x095f,
+ 0x0883, 0x0a78, 0x09e4, 0x0339, 0x03b3, 0x022f,
+ 0xfb4b, 0xffcf, 0x0399, 0x02c4, 0x00e3, 0xf948,
+ 0xf849, 0xfaac, 0xf7b0, 0xf67b, 0xfa3e, 0xfbfe,
+ 0xf6d2, 0xf63d, 0xf6a3, 0xf258, 0xf3f2, 0xf3b2,
+ 0xf072, 0xf030, 0xf277, 0xf61a, 0xf107, 0xef4f,
+ 0xf865, 0xfcb0, 0xfc85, 0xfb7f, 0xfd14, 0xfdae,
+ 0xf9d2, 0xfa1a, 0xfb06, 0xfb76, 0xf8b2, 0xf4f1,
+ 0xfb77, 0xffcc, 0x0024, 0x0310, 0x047d, 0x0543,
+ 0x016d, 0x0086, 0x00ce, 0xfa29, 0xfa40, 0xfcb1,
+ 0xf90f, 0xf231, 0xed49, 0xefa3, 0xf0e7, 0xf5ef,
+ 0xfcee, 0xfaf5, 0xfa1b, 0xfa92, 0xfabc, 0xf87a,
+ 0xf2b7, 0xf06f, 0xeba5, 0xed22, 0xf3b1, 0xf28e,
+ 0xf8fc, 0x01f4, 0x0084, 0xfd78, 0xff75, 0xff83,
+ 0xf84a, 0xfb82, 0x004b, 0xfa8e, 0xfe0f, 0xffc5,
+ 0xfc65, 0x0088, 0x03a3, 0x0656, 0x05ac, 0x028a,
+ 0x0404, 0x05f2, 0x0657, 0x06f8, 0x0a94, 0x0558,
+ 0xffa3, 0x09c5, 0x0bf1, 0x0a5f, 0x0f9c, 0x0eff,
+ 0x114a, 0x1006, 0x0bd5, 0x105c, 0x0fbe, 0x0b36,
+ 0x0b34, 0x0a28, 0x04e3, 0x05c0, 0x0c67, 0x0bb8,
+ 0x0efc, 0x118c, 0x0e02, 0x118e, 0x0ca7, 0x0a58,
+ 0x1350, 0x0ce2, 0x06e2, 0x0c9f, 0x0ddd, 0x0c05,
+ 0x0d7d, 0x114e, 0x111a, 0x0ffd, 0x0fdf, 0x123d,
+ 0x1822, 0x18e8, 0x1bcf, 0x1b16, 0x13e6, 0x15e7,
+ 0x12cd, 0x0ff9, 0x15e3, 0x141a, 0x1529, 0x1887,
+ 0x1970, 0x1c19, 0x1744, 0x16ae, 0x1f45, 0x2022,
+ 0x1b27, 0x1ae8, 0x187e, 0x14e9, 0x1d04, 0x1b1e,
+ 0x124a, 0x1b04, 0x1851, 0x118c, 0x1b94, 0x1b79,
+ 0x1988, 0x20a8, 0x2103, 0x1957, 0x1238, 0x120e,
+ 0x1227, 0x1419, 0x1aec, 0x1c00, 0x1660, 0x1093,
+ 0x1027, 0x0f42, 0x111c, 0x17fc, 0x12c9, 0x1240,
+ 0x17fa, 0x0c8d, 0x0796, 0x0ea5, 0x0eab, 0x0d40,
+ 0x0dfb, 0x0eb8, 0x0ebf, 0x10f9, 0x1344, 0x1341,
+ 0x1237, 0x0b18, 0x0808, 0x0bd9, 0x0d3f, 0x0ea9,
+ 0x0cd7, 0x0dda, 0x1128, 0x0e41, 0x0fe7, 0x1099,
+ 0x0d93, 0x0fcb, 0x0fa6, 0x0be8, 0x07a0, 0x07bb,
+ 0x0d96, 0x0d35, 0x0727, 0x054b, 0x06e6, 0x04bb,
+ 0x03ba, 0x0710, 0x06bd, 0x072d, 0x031e, 0xfccd,
+ 0x02a5, 0x00bd, 0xfa8c, 0x025e, 0x048c, 0x02b6,
+ 0x05e1, 0x0554, 0x070f, 0x0962, 0x03f6, 0x0260,
+ 0x09b4, 0x0b0f, 0x0833, 0x0b41, 0x0c3f, 0x08f4,
+ 0x04fd, 0x0504, 0x085b, 0x0424, 0x0253, 0x054a,
+ 0x036e, 0x05c2, 0x04e0, 0xffff, 0x0416, 0x0451,
+ 0xff94, 0xfe51, 0xfc63, 0xff60, 0x04df, 0x0375,
+ 0x03f5, 0x063c, 0x0144, 0x0209, 0x083f, 0x0601,
+ 0x0610, 0x076f, 0x052e, 0x09a1, 0x0a7b, 0x0718,
+ 0x097c, 0x07a7, 0x0442, 0x05f9, 0x06d3, 0x0784,
+ 0x0932, 0x08e3, 0x0576, 0x0242, 0x039a, 0x05b6,
+ 0x062a, 0x0a89, 0x0dff, 0x0892, 0x0466, 0x04f1,
+ 0x0312, 0x047b, 0x073b, 0x0523, 0x05bd, 0x071d,
+ 0x032a, 0x0157, 0x0621, 0x0a25, 0x0754, 0x02d3,
+ 0x03a5, 0x0701, 0x05f8, 0x0220, 0x0198, 0x0066,
+ 0xfb9a, 0xfbd8, 0x00a1, 0x02e9, 0x068c, 0x087c,
+ 0x02a4, 0xff07, 0xff07, 0xfd61, 0xffd5, 0x0243,
+ 0x015a, 0x01ef, 0xfe2f, 0xfa1c, 0xfce5, 0xfd8b,
+ 0xfe86, 0x0171, 0xfc80, 0xfa26, 0xfe20, 0xfba2,
+ 0xfb95, 0x001c, 0xfde3, 0xfc59, 0xfae7, 0xf549,
+ 0xf626, 0xfaec, 0xfeb8, 0x0193, 0xfde6, 0xfb7f,
+ 0xfe45, 0xfe2a, 0xfeee, 0xfedd, 0xfb50, 0xfb00,
+ 0xf7d8, 0xf39b, 0xf573, 0xf1fe, 0xed29, 0xee99,
+ 0xec0e, 0xe84a, 0xe58e, 0xe368, 0xe765, 0xe7b0,
+ 0xe94e, 0xf35a, 0xf166, 0xed9c, 0xf59d, 0xf5ec,
+ 0xf6cf, 0xfde4, 0xfbb1, 0xfd3f, 0x0443, 0x0542,
+ 0x07f9, 0x07f8, 0x0462, 0x0323, 0xfc3d, 0xf6ac,
+ 0xf6c3, 0xf569, 0xf6aa, 0xf42f, 0xefc6, 0xf3af,
+ 0xf2d9, 0xefbb, 0xf271, 0xf1d4, 0xf700, 0xfd4e,
+ 0xf7ce, 0xfb98, 0x0479, 0xffc2, 0x00c9, 0x0944,
+ 0x08cf, 0x0808, 0x0b5f, 0x0b93, 0x087c, 0x053f,
+ 0x035f, 0x0035, 0xfb89, 0xf9df, 0xfb80, 0xfbcd,
+ 0xf9f2, 0xfb7f, 0xfcc0, 0xf8ec, 0xfa16, 0xfbd7,
+ 0xf85d, 0xff37, 0x054c, 0xfd99, 0x000f, 0x095a,
+ 0x082e, 0x0b96, 0x1120, 0x0bd9, 0x0850, 0x0976,
+ 0x060b, 0x01b7, 0x01da, 0x025f, 0xff48, 0xfd86,
+ 0xfde4, 0xfb7a, 0xfbf6, 0x0118, 0x0213, 0xff44,
+ 0xfd71, 0xfd40, 0xff7d, 0x02ff, 0x051d, 0x05f8,
+ 0x0776, 0x0741, 0x0514, 0x071e, 0x097e, 0x0739,
+ 0x0628, 0x04e9, 0x03a7, 0x0500, 0x01d3, 0xffc2,
+ 0x03ab, 0x0473, 0x0454, 0x009c, 0xf83c, 0xf81e,
+ 0xf873, 0xf81a, 0x0138, 0x023c, 0xfd12, 0x0263,
+ 0x0616, 0x06c1, 0x0760, 0x03eb, 0x056f, 0x03f8,
+ 0xfd2d, 0x01eb, 0x06a8, 0x053f, 0x0892, 0x0913,
+ 0x0762, 0x05b5, 0xffd7, 0xfeb7, 0xfc08, 0xf3b4,
+ 0xf585, 0xf893, 0xf417, 0xf745, 0xff50, 0xff81,
+ 0xfda2, 0x008c, 0xfee9, 0xf616, 0xf3df, 0xf32c,
+ 0xec4e, 0xedb7, 0xf461, 0xf87f, 0xfece, 0xfed2,
+ 0xfe10, 0x037d, 0xfedb, 0xf9f2, 0xfdc3, 0xf939,
+ 0xf555, 0xf722, 0xf0f0, 0xee95, 0xf411, 0xf1bf,
+ 0xebb4, 0xeb60, 0xeb70, 0xe823, 0xe9b0, 0xef2c,
+ 0xecd2, 0xe9d4, 0xec84, 0xece1, 0xef4c, 0xf323,
+ 0xf354, 0xf64d, 0xf6e7, 0xf3f4, 0xf3be, 0xf117,
+ 0xf100, 0xf1b5, 0xecf7, 0xf1bb, 0xf496, 0xe9dd,
+ 0xeb5e, 0xefd7, 0xe6b3, 0xe5f9, 0xea86, 0xe8fa,
+ 0xebbf, 0xf0ad, 0xf67e, 0xfc55, 0xf9a0, 0xf69a,
+ 0xf72f, 0xf367, 0xf17f, 0xf581, 0xf79e, 0xf798,
+ 0xfb03, 0xfde0, 0xf98d, 0xf4bc, 0xf4e0, 0xf2f4,
+ 0xec9d, 0xe969, 0xee0c, 0xefdf, 0xeb2b, 0xf1ef,
+ 0xfac9, 0xf333, 0xf287, 0xfa46, 0xf589, 0xf60d,
+ 0xfd77, 0xf97f, 0xf657, 0xf63a, 0xf1a2, 0xf27d,
+ 0xf77f, 0xfa3f, 0xfceb, 0xffb6, 0x0144, 0xfe51,
+ 0xfae2, 0xfaca, 0xf81c, 0xf7b2, 0xfa0d, 0xf86a,
+ 0xfd9e, 0x0608, 0x05c3, 0x092f, 0x0ca8, 0x04ce,
+ 0xfeed, 0xfc0f, 0xf5c3, 0xf3f2, 0xf57a, 0xf60e,
+ 0xf6e1, 0xf528, 0xf3f6, 0xf6ee, 0xf8d2, 0xf9f6,
+ 0xfdb2, 0xff6a, 0xfed0, 0x00b8, 0x0165, 0x0005,
+ 0x00bd, 0xfe19, 0xfc69, 0x045e, 0x075b, 0x0283,
+ 0x03d1, 0x045f, 0x017a, 0x0136, 0xfc33, 0xf63d,
+ 0xf56f, 0xf446, 0xf688, 0xf93e, 0xf70d, 0xf947,
+ 0xfa35, 0xf3ba, 0xf428, 0xfa3f, 0xfb80, 0xfb6f,
+ 0xfbc7, 0xfbfe, 0xfc34, 0xf98a, 0xf7d5, 0xfa34,
+ 0xfa08, 0xf732, 0xf851, 0xfab7, 0xfc10, 0x00b4,
+ 0x033c, 0xfff6, 0x0047, 0x00f2, 0xfafd, 0xf859,
+ 0xf9bc, 0xf842, 0xf93c, 0xfafc, 0xf799, 0xf511,
+ 0xf630, 0xf8d1, 0xfc3e, 0xfbb8, 0xf894, 0xfaaf,
+ 0xfd78, 0xfa2a, 0xf8df, 0xfc86, 0xfbe1, 0xf925,
+ 0xfb26, 0xfd89, 0xfea4, 0xfe55, 0xf968, 0xf724,
+ 0xfa74, 0xf94d, 0xf6ca, 0xf92e, 0xf75e, 0xf197,
+ 0xf0b9, 0xf07f, 0xefe7, 0xf491, 0xf874, 0xf91a,
+ 0xfd4c, 0x013a, 0x00ce, 0x0158, 0x02f9, 0x046e,
+ 0x0756, 0x08d8, 0x08bb, 0x07a0, 0x018d, 0xfb0e,
+ 0xf9dd, 0xf677, 0xefc8, 0xef78, 0xf238, 0xf040,
+ 0xef46, 0xf18c, 0xefa8, 0xebf8, 0xedea, 0xf17c,
+ 0xf1cf, 0xf414, 0xfa02, 0xfbbd, 0xf9f6, 0xfecb,
+ 0x0671, 0x0719, 0x0727, 0x0bf4, 0x0e75, 0x0d9e,
+ 0x0bde, 0x0798, 0x0337, 0x001e, 0xfce3, 0xfb63,
+ 0xf920, 0xf3e1, 0xf117, 0xef42, 0xebc2, 0xee30,
+ 0xf32f, 0xf0bf, 0xef2c, 0xf4bd, 0xf7c3, 0xf725,
+ 0xf8d5, 0xfa30, 0xfab6, 0xfea6, 0x02ff, 0x02e4,
+ 0x0173, 0x026e, 0x02f7, 0x0082, 0xfd0a, 0xfa4a,
+ 0xf795, 0xf3de, 0xf2ce, 0xf77f, 0xf86d, 0xf1de,
+ 0xf192, 0xf599, 0xf119, 0xed0d, 0xed3a, 0xe819,
+ 0xe70a, 0xecfb, 0xebe0, 0xeb16, 0xf1d6, 0xf3c9,
+ 0xf31e, 0xf5b1, 0xf546, 0xf4c2, 0xf543, 0xf384,
+ 0xf676, 0xf88b, 0xf16d, 0xefb9, 0xf538, 0xf2ef,
+ 0xee89, 0xf005, 0xf18d, 0xf2de, 0xf554, 0xf749,
+ 0xf9a7, 0xfa8d, 0xfa49, 0xfc81, 0xfe0b, 0xfcf1,
+ 0xfd36, 0xfe6e, 0xfdc4, 0xfdb6, 0x01fa, 0x05f3,
+ 0x0354, 0x0138, 0x03c2, 0x007d, 0xfaa0, 0xfcf5,
+ 0xfe6f, 0xfbe6, 0x0021, 0x057a, 0x0508, 0x0607,
+ 0x06d3, 0x03c1, 0x0487, 0x0891, 0x0763, 0x0459,
+ 0x0717, 0x0b5f, 0x0a32, 0x0841, 0x09d7, 0x0909,
+ 0x0717, 0x0ada, 0x0e7e, 0x0cab, 0x0b02, 0x0ae3,
+ 0x0a0c, 0x095b, 0x07c5, 0x059d, 0x05da, 0x073c,
+ 0x071f, 0x057b, 0x03eb, 0x0552, 0x0901, 0x0a3b,
+ 0x08c3, 0x083f, 0x0902, 0x0a81, 0x0e01, 0x10e5,
+ 0x0f4a, 0x0cf8, 0x0df6, 0x0e55, 0x0cac, 0x0cc2,
+ 0x0e1f, 0x0e24, 0x0ddb, 0x103d, 0x1419, 0x13bc,
+ 0x1271, 0x1727, 0x1824, 0x1053, 0x0e9d, 0x1318,
+ 0x1150, 0x0ee1, 0x0ff4, 0x0d90, 0x0aee, 0x0b6a,
+ 0x0a66, 0x0921, 0x0a29, 0x0b74, 0x0b7f, 0x0a35,
+ 0x09d9, 0x0b36, 0x0cf4, 0x107b, 0x123b, 0x0df1,
+ 0x0a69, 0x0a69, 0x0a15, 0x0ba9, 0x0cb8, 0x0920,
+ 0x06c6, 0x06c6, 0x05db, 0x0562, 0x03a9, 0x02c4,
+ 0x05b3, 0x04eb, 0x027d, 0x05bd, 0x063d, 0x0404,
+ 0x074b, 0x077c, 0x0365, 0x0552, 0x0766, 0x057c,
+ 0x06b5, 0x07e1, 0x05e3, 0x0693, 0x090f, 0x0976,
+ 0x09ac, 0x0af9, 0x0b79, 0x0a04, 0x079c, 0x0428,
+ 0xfff7, 0xfff7, 0x0440, 0x0621, 0x0665, 0x08cd,
+ 0x0a37, 0x096a, 0x0935, 0x0a00, 0x09d6, 0x085f,
+ 0x09a0, 0x0d74, 0x0e0e, 0x0e00, 0x0fb8, 0x0e0a,
+ 0x0d41, 0x100a, 0x0e70, 0x0dae, 0x11d9, 0x0fe7,
+ 0x0cd9, 0x0ff9, 0x0d2c, 0x077e, 0x097b, 0x0921,
+ 0x0604, 0x093f, 0x0afd, 0x0958, 0x0ad4, 0x0a1c,
+ 0x08c2, 0x0d0a, 0x0df4, 0x09ec, 0x0a42, 0x0af8,
+ 0x0982, 0x0d0a, 0x11a4, 0x1198, 0x1079, 0x0dce,
+ 0x0bb4, 0x0f30, 0x0f46, 0x0a2d, 0x0cde, 0x0fba,
+ 0x08aa, 0x06e9, 0x0a2e, 0x03f6, 0x0068, 0x068a,
+ 0x080a, 0x06ee, 0x083f, 0x0608, 0x05a4, 0x07c4,
+ 0x04f6, 0x051b, 0x0855, 0x04e8, 0x049f, 0x0a59,
+ 0x08e2, 0x0594, 0x06d4, 0x04be, 0x036f, 0x0663,
+ 0x0501, 0x0324, 0x04b9, 0x0126, 0xfd22, 0x003d,
+ 0x00d4, 0xfe52, 0x0223, 0x05b9, 0x0420, 0x060d,
+ 0x09cf, 0x095f, 0x0a0f, 0x0bd0, 0x097f, 0x070b,
+ 0x0684, 0x0646, 0x08e9, 0x0bc5, 0x0b3e, 0x0b46,
+ 0x09b8, 0x036a, 0x0047, 0x0113, 0xfec9, 0xfd8f,
+ 0x0065, 0x0049, 0xfd5f, 0xfcc8, 0xfcf5, 0xfcb5,
+ 0xfdd8, 0xff59, 0x0001, 0xfffc, 0xfedb, 0xfd99,
+ 0xfd78, 0xfd54, 0xfc9c, 0xfc53, 0xfcc8, 0xfd73,
+ 0xfd52, 0xfd41, 0xff43, 0xfff4, 0xfbfa, 0xf94d,
+ 0xfb80, 0xfc81, 0xfbbe, 0xfe82, 0x00f1, 0xfe29,
+ 0xfd6c, 0x029e, 0x04e6, 0x028b, 0x02ee, 0x03eb,
+ 0x01ad, 0x0133, 0x0200, 0xff63, 0xfddc, 0x0081,
+ 0x022e, 0x025d, 0x034c, 0x0159, 0xfdf7, 0x00b4,
+ 0x0537, 0x0318, 0x0026, 0x0113, 0x0081, 0xffbd,
+ 0x02ba, 0x0444, 0x00a2, 0xfcc6, 0xfd81, 0xffd8,
+ 0xff6c, 0xff66, 0x0077, 0xfdd7, 0xfb59, 0xfcca,
+ 0xfc3f, 0xfa4a, 0xfc2d, 0xfe3f, 0xfe50, 0x00cd,
+ 0x03ff, 0x02d1, 0x0210, 0x05b5, 0x056a, 0x0150,
+ 0x02c9, 0x02f7, 0xfceb, 0xfc92, 0x009d, 0x0095,
+ 0x0229, 0x059c, 0x0556, 0x04d3, 0x05cd, 0x06af,
+ 0x07aa, 0x0751, 0x0664, 0x05e2, 0x0531, 0x0770,
+ 0x0bc7, 0x0d40, 0x0dd0, 0x0f69, 0x0f2c, 0x0d9a,
+ 0x0c2c, 0x08d2, 0x0435, 0x03b1, 0x06a5, 0x0618,
+ 0x03ab, 0x03bb, 0x01ec, 0xffdf, 0x026f, 0x02e2,
+ 0x00a5, 0x0300, 0x05b9, 0x05e5, 0x06d9, 0x051e,
+ 0x0226, 0x0399, 0x04cc, 0x03d2, 0x0476, 0x04f0,
+ 0x0579, 0x0717, 0x06d2, 0x0708, 0x08ae, 0x0784,
+ 0x0679, 0x07bf, 0x0769, 0x06b2, 0x071a, 0x07a4,
+ 0x0a76, 0x0e2f, 0x1020, 0x120c, 0x1331, 0x1211,
+ 0x107e, 0x0f48, 0x0d4f, 0x0904, 0x057c, 0x06cd,
+ 0x0834, 0x0710, 0x06c4, 0x05c2, 0x0563, 0x072a,
+ 0x058c, 0x0324, 0x0339, 0x0188, 0x0148, 0x01f4,
+ 0xfed9, 0xfebe, 0x0093, 0xfe8b, 0xfec8, 0xff5f,
+ 0xfd29, 0xfedd, 0x0028, 0xfd0a, 0xfb36, 0xf9ac,
+ 0xf882, 0xf917, 0xf830, 0xf7f7, 0xf7ee, 0xf5dc,
+ 0xf688, 0xf792, 0xf5b7, 0xf4ae, 0xf313, 0xf20d,
+ 0xf389, 0xf31e, 0xf34a, 0xf4ae, 0xf321, 0xf3b4,
+ 0xf61e, 0xf5c0, 0xf6af, 0xf7a2, 0xf653, 0xf5e5,
+ 0xf4d1, 0xf491, 0xf634, 0xf599, 0xf59a, 0xf690,
+ 0xf5c8, 0xf62d, 0xf45c, 0xf13a, 0xf392, 0xf39b,
+ 0xef40, 0xef74, 0xf0e8, 0xf121, 0xf219, 0xf1b0,
+ 0xf2d0, 0xf445, 0xf2bc, 0xf2e2, 0xf243, 0xf029,
+ 0xf1e6, 0xf194, 0xf113, 0xf6c4, 0xf7d2, 0xf5b0,
+ 0xfa55, 0xfb6c, 0xf6de, 0xf6e9, 0xf7e4, 0xf6cb,
+ 0xf6d1, 0xf64a, 0xf55f, 0xf4fe, 0xf47f, 0xf5fc,
+ 0xf875, 0xf855, 0xf794, 0xf988, 0xfb47, 0xf9ce,
+ 0xf96e, 0xfb5d, 0xfb30, 0xfb7d, 0xfde9, 0xfe04,
+ 0xfeca, 0x0254, 0x0383, 0x0386, 0x0415, 0x02b2,
+ 0x0218, 0x0321, 0x01b7, 0xfea7, 0xfd24, 0xfd91,
+ 0xfe2f, 0xfd85, 0xfd3d, 0xfe1a, 0xfe3b, 0xfeaa,
+ 0x0136, 0x031f, 0x01d4, 0x010f, 0x03d0, 0x0515,
+ 0x0336, 0x03d2, 0x0529, 0x031a, 0x0262, 0x045b,
+ 0x042d, 0x02bb, 0x02f5, 0x0334, 0x0242, 0x0194,
+ 0x00ea, 0xff6d, 0xff74, 0x0105, 0x0100, 0x00f7,
+ 0x021f, 0x0219, 0x027b, 0x0394, 0x02bb, 0x0236,
+ 0x0305, 0x02ce, 0x0193, 0xff4d, 0xfe4b, 0xffee,
+ 0xff13, 0xfd1e, 0xfedc, 0xff8a, 0xfe86, 0xffd2,
+ 0xff88, 0xfcbf, 0xfaf6, 0xf93d, 0xf805, 0xf832,
+ 0xf8da, 0xfadf, 0xfc97, 0xfcc5, 0xfce2, 0xfb83,
+ 0xfaba, 0xfced, 0xfd0e, 0xfc3b, 0xfe07, 0xfd9b,
+ 0xfcd2, 0xff09, 0xfe46, 0xfc80, 0xfde0, 0xfd24,
+ 0xfb33, 0xfaec, 0xf9b9, 0xf9b3, 0xf98b, 0xf5c4,
+ 0xf456, 0xf5b1, 0xf49b, 0xf433, 0xf57d, 0xf65a,
+ 0xf790, 0xf6ab, 0xf4c8, 0xf602, 0xf700, 0xf677,
+ 0xf62e, 0xf4f4, 0xf5ae, 0xf83e, 0xf77b, 0xf687,
+ 0xf7e8, 0xf83d, 0xf8fd, 0xfad0, 0xfb9e, 0xfbfa,
+ 0xfb04, 0xfa8a, 0xfda7, 0xff09, 0xfc80, 0xfbbe,
+ 0xfc4e, 0xfba8, 0xfc3c, 0xfd45, 0xfb56, 0xf7fb,
+ 0xf7c4, 0xface, 0xfbd8, 0xf980, 0xf8a0, 0xfa08,
+ 0xf9ff, 0xf8a9, 0xf79e, 0xf6b3, 0xf755, 0xf8f6,
+ 0xf8dc, 0xf956, 0xfafb, 0xf9c2, 0xf8b2, 0xfaa6,
+ 0xfb0c, 0xfaf7, 0xfd13, 0xfe25, 0xfe22, 0xfd71,
+ 0xfc41, 0xfe38, 0xffb7, 0xfd2b, 0xfc11, 0xfb8d,
+ 0xf980, 0xfa16, 0xf9e4, 0xf6f5, 0xf733, 0xf85a,
+ 0xf6cb, 0xf666, 0xf824, 0xf98a, 0xf8f0, 0xf767,
+ 0xf7b6, 0xf836, 0xf782, 0xf7a2, 0xf790, 0xf6ed,
+ 0xf73e, 0xf7ba, 0xf7f6, 0xf705, 0xf556, 0xf5c0,
+ 0xf669, 0xf667, 0xf762, 0xf663, 0xf52e, 0xf68c,
+ 0xf47c, 0xf031, 0xef0c, 0xece9, 0xea01, 0xea0c,
+ 0xe9bb, 0xe8af, 0xe8e2, 0xe8b8, 0xe856, 0xe8e7,
+ 0xea50, 0xeb31, 0xea66, 0xeade, 0xed15, 0xed7b,
+ 0xed5e, 0xee5d, 0xeec1, 0xef47, 0xf07d, 0xf182,
+ 0xf265, 0xf303, 0xf485, 0xf711, 0xf7f5, 0xf756,
+ 0xf727, 0xf69b, 0xf518, 0xf51a, 0xf801, 0xfa10,
+ 0xf9e7, 0xfaa1, 0xfa5f, 0xf8dc, 0xfa91, 0xfbf5,
+ 0xfaaa, 0xfb93, 0xfc7f, 0xfb6b, 0xfc09, 0xfd1f,
+ 0xfdb3, 0xfdc0, 0xfb4c, 0xf9f4, 0xfaf2, 0xfa60,
+ 0xf94c, 0xf89e, 0xf93e, 0xfbc0, 0xfa8d, 0xf8b1,
+ 0xfc31, 0xfcf7, 0xfb53, 0xff65, 0x01d7, 0x0016,
+ 0x01bc, 0x03ee, 0x049b, 0x0634, 0x0513, 0x030a,
+ 0x04e9, 0x0566, 0x025d, 0x01f1, 0x0311, 0x016a,
+ 0x00e2, 0x02d0, 0x0265, 0x0261, 0x0573, 0x057f,
+ 0x0424, 0x0767, 0x09e0, 0x07d1, 0x05f1, 0x05b3,
+ 0x063d, 0x07b2, 0x0984, 0x0b1d, 0x0afb, 0x0930,
+ 0x089f, 0x0970, 0x0935, 0x07a0, 0x0726, 0x0845,
+ 0x07e2, 0x074d, 0x0971, 0x09f8, 0x07e1, 0x07c8,
+ 0x07d7, 0x0651, 0x060b, 0x069d, 0x068a, 0x04c7,
+ 0x0210, 0x027e, 0x0336, 0xffe7, 0xff1f, 0x0265,
+ 0x02b0, 0x0230, 0x0414, 0x0358, 0x0119, 0x0219,
+ 0x0270, 0x0089, 0x01ca, 0x03f1, 0x02c3, 0x032a,
+ 0x04ce, 0x02ac, 0x0197, 0x0321, 0x01f2, 0x0113,
+ 0x02b2, 0x02e8, 0x02d0, 0x02e3, 0x01c6, 0x01c3,
+ 0x0222, 0x01db, 0x0205, 0x0055, 0xfe4b, 0xfeca,
+ 0xfe7c, 0xfeb7, 0x0177, 0x015c, 0x0081, 0x0367,
+ 0x041b, 0x023a, 0x03bd, 0x0559, 0x044f, 0x0488,
+ 0x04f2, 0x031b, 0x01fb, 0x0253, 0x01d9, 0x00d1,
+ 0x000f, 0x003a, 0x01f1, 0x0336, 0x0331, 0x034c,
+ 0x02b2, 0x0248, 0x03d3, 0x0406, 0x0268, 0x027f,
+ 0x02fb, 0x02e6, 0x03bd, 0x046c, 0x04ac, 0x042a,
+ 0x02d3, 0x0389, 0x0447, 0x036d, 0x05cc, 0x0802,
+ 0x05cb, 0x05c9, 0x0724, 0x058e, 0x0663, 0x07e9,
+ 0x0554, 0x044c, 0x0607, 0x068d, 0x05ad, 0x02b4,
+ 0x00bc, 0x025e, 0x01fa, 0x001c, 0x014d, 0x0192,
+ 0x008a, 0x01e8, 0x02ca, 0x01ea, 0x015d, 0x0116,
+ 0x0219, 0x03fe, 0x047d, 0x04b4, 0x058c, 0x05ca,
+ 0x0556, 0x04b3, 0x04a9, 0x04f6, 0x048d, 0x04bc,
+ 0x05ad, 0x0549, 0x03f8, 0x0281, 0x011f, 0x00f6,
+ 0x00e4, 0x0057, 0x00e9, 0x013d, 0x014e, 0x033a,
+ 0x03fa, 0x02c9, 0x03a5, 0x049a, 0x0465, 0x06ab,
+ 0x0804, 0x0579, 0x04c8, 0x0640, 0x05af, 0x04d6,
+ 0x04d9, 0x0517, 0x0690, 0x07aa, 0x078f, 0x0795,
+ 0x068f, 0x0522, 0x04ac, 0x035e, 0x0297, 0x0361,
+ 0x02a5, 0x0218, 0x0381, 0x0343, 0x0253, 0x035a,
+ 0x03ed, 0x034e, 0x0277, 0x0166, 0x0176, 0x022a,
+ 0x0189, 0x00a2, 0x0070, 0xffb6, 0xfe0d, 0xfcce,
+ 0xfcc0, 0xfcbe, 0xfca4, 0xfd95, 0xfe70, 0xfe5a,
+ 0xfea5, 0xff24, 0xff34, 0xff8b, 0x0001, 0xffb9,
+ 0xff35, 0x001b, 0x01ab, 0x0150, 0x00b8, 0x0207,
+ 0x0238, 0x00c3, 0x0089, 0x011b, 0x01a5, 0x01f7,
+ 0x00e7, 0x0008, 0x00af, 0x00af, 0xffd8, 0xffd6,
+ 0xffca, 0xfee4, 0xff14, 0x0091, 0x0020, 0xfe45,
+ 0xfe63, 0xfecc, 0xfe3b, 0xfe85, 0xfd9a, 0xfbe4,
+ 0xfd9d, 0xfff4, 0x000c, 0x00ca, 0x01b7, 0x01da,
+ 0x02eb, 0x03c9, 0x03ce, 0x03f1, 0x039f, 0x038a,
+ 0x03b5, 0x02a6, 0x0209, 0x0317, 0x040e, 0x0441,
+ 0x03dd, 0x0372, 0x0351, 0x0252, 0x0182, 0x0215,
+ 0x01be, 0x013a, 0x02e5, 0x03bb, 0x02f4, 0x0467,
+ 0x06d6, 0x073c, 0x0763, 0x0877, 0x0903, 0x08c6,
+ 0x0911, 0x0a35, 0x09ea, 0x0829, 0x088f, 0x09ad,
+ 0x089b, 0x08f7, 0x0acd, 0x0a54, 0x0a21, 0x0a9e,
+ 0x08c6, 0x0790, 0x07ae, 0x069b, 0x06a5, 0x078c,
+ 0x0781, 0x0883, 0x0944, 0x095f, 0x0b52, 0x0c01,
+ 0x0b4d, 0x0cce, 0x0cc2, 0x0aca, 0x0b8a, 0x0bf0,
+ 0x0ab8, 0x0b5a, 0x0b6b, 0x0a2e, 0x0a7f, 0x0a97,
+ 0x0a18, 0x0ab7, 0x0aa2, 0x0a01, 0x0a9e, 0x0b8a,
+ 0x0c9d, 0x0dcc, 0x0e09, 0x0de9, 0x0d2d, 0x0baa,
+ 0x0ba5, 0x0c8a, 0x0c19, 0x0ba1, 0x0c16, 0x0cbd,
+ 0x0dc6, 0x0e65, 0x0de1, 0x0d29, 0x0c89, 0x0c1a,
+ 0x0c2b, 0x0ca6, 0x0d57, 0x0c9b, 0x0a9e, 0x0a53,
+ 0x0a1c, 0x07d9, 0x06dc, 0x0755, 0x06d4, 0x061a,
+ 0x0467, 0x026b, 0x031b, 0x036d, 0x01a4, 0x0155,
+ 0x016d, 0x0059, 0x0018, 0xff93, 0xfe5a, 0xfe7c,
+ 0xfe86, 0xfd4f, 0xfd12, 0xfdf4, 0xfd52, 0xfbb1,
+ 0xfc16, 0xfc8b, 0xfa7c, 0xf9d7, 0xfb41, 0xfae6,
+ 0xfa4b, 0xfa0b, 0xf87a, 0xf82a, 0xf865, 0xf6bf,
+ 0xf5cf, 0xf584, 0xf513, 0xf64b, 0xf680, 0xf528,
+ 0xf5e0, 0xf6c8, 0xf68f, 0xf6cb, 0xf5a2, 0xf3fc,
+ 0xf413, 0xf3c4, 0xf3df, 0xf542, 0xf42d, 0xf22d,
+ 0xf353, 0xf47b, 0xf31a, 0xf298, 0xf41c, 0xf4d4,
+ 0xf46c, 0xf4fb, 0xf668, 0xf77d, 0xf7bd, 0xf6e4,
+ 0xf6ab, 0xf83d, 0xf8ee, 0xf83a, 0xf853, 0xf7d3,
+ 0xf622, 0xf60c, 0xf704, 0xf6c4, 0xf5fc, 0xf598,
+ 0xf60a, 0xf783, 0xf843, 0xf7b4, 0xf7a8, 0xf845,
+ 0xf8bf, 0xf93e, 0xf951, 0xf8ec, 0xf8b3, 0xf874,
+ 0xf8e4, 0xfa3f, 0xfab1, 0xfab6, 0xfb84, 0xfbdb,
+ 0xfc86, 0xfe58, 0xfefe, 0xfea9, 0xfecc, 0xfeb8,
+ 0xfeda, 0xff11, 0xfe8d, 0xfe8b, 0xfea2, 0xfea8,
+ 0x003c, 0x00d7, 0xff8d, 0xfff4, 0x0063, 0xff4e,
+ 0x0013, 0x0118, 0x0033, 0x0094, 0x0194, 0x00f6,
+ 0x0100, 0x01dc, 0x0183, 0x0119, 0x01e0, 0x0308,
+ 0x040e, 0x0512, 0x05bf, 0x05f0, 0x0624, 0x0641,
+ 0x05eb, 0x0582, 0x04f9, 0x044a, 0x042f, 0x047b,
+ 0x0462, 0x03ec, 0x03b2, 0x039b, 0x02cc, 0x01e4,
+ 0x0195, 0x004f, 0xff11, 0x0039, 0x0124, 0x001d,
+ 0xfff5, 0x0101, 0x01ec, 0x02c4, 0x032f, 0x031c,
+ 0x02a8, 0x01cf, 0x015e, 0x0179, 0x01cd, 0x01ff,
+ 0x01a7, 0x0223, 0x0375, 0x03ac, 0x03b4, 0x03f6,
+ 0x032e, 0x02a6, 0x02a6, 0x0230, 0x01e1, 0x0136,
+ 0x0095, 0x0111, 0x00e3, 0x004e, 0x0071, 0xff93,
+ 0xfed8, 0xff8e, 0xffa3, 0xffa6, 0xfff3, 0xfee2,
+ 0xfe3d, 0xfeb4, 0xfe15, 0xfd5c, 0xfdc2, 0xfd7f,
+ 0xfc49, 0xfcbf, 0xff17, 0xffae, 0xfeba, 0xff11,
+ 0xfe47, 0xfc4f, 0xfcd2, 0xfd08, 0xfb7c, 0xfb88,
+ 0xfba9, 0xfb27, 0xfbc0, 0xfb63, 0xfacc, 0xfbb3,
+ 0xfb9e, 0xfb05, 0xfacc, 0xf98c, 0xf917, 0xf9cb,
+ 0xf972, 0xf8dd, 0xf8bf, 0xf8f1, 0xfa26, 0xfb14,
+ 0xfa96, 0xfa78, 0xfbad, 0xfc5c, 0xfba8, 0xfb2c,
+ 0xfb05, 0xfa7b, 0xfa85, 0xfa53, 0xf95e, 0xf9c4,
+ 0xfa6e, 0xf9fb, 0xfa67, 0xfaa1, 0xf9b7, 0xfa1b,
+ 0xfa8a, 0xf963, 0xf8d3, 0xf8e8, 0xf90f, 0xfa1c,
+ 0xfaca, 0xfa95, 0xfab1, 0xfb11, 0xfbad, 0xfbab,
+ 0xfa17, 0xf90d, 0xf9a6, 0xf9fc, 0xf994, 0xf9af,
+ 0xfa92, 0xfb12, 0xfb28, 0xfbc8, 0xfb73, 0xfa10,
+ 0xfa54, 0xfb17, 0xfad2, 0xfb6a, 0xfc3a, 0xfc0e,
+ 0xfc45, 0xfcce, 0xfcea, 0xfce1, 0xfcd8, 0xfc52,
+ 0xfa8f, 0xf89d, 0xf7a6, 0xf65b, 0xf47e, 0xf31f,
+ 0xf268, 0xf275, 0xf223, 0xf0d7, 0xf04f, 0xf029,
+ 0xef25, 0xee8f, 0xeea6, 0xee83, 0xee8b, 0xeeef,
+ 0xefa6, 0xf07e, 0xf058, 0xef9b, 0xefbd, 0xf00f,
+ 0xf02f, 0xf143, 0xf26c, 0xf2b4, 0xf30c, 0xf302,
+ 0xf2ba, 0xf3f9, 0xf518, 0xf463, 0xf42a, 0xf4c0,
+ 0xf522, 0xf65e, 0xf703, 0xf66a, 0xf788, 0xf892,
+ 0xf774, 0xf7e5, 0xf8e4, 0xf7b3, 0xf7e5, 0xf907,
+ 0xf820, 0xf7d0, 0xf86d, 0xf87f, 0xf954, 0xfa19,
+ 0xfa13, 0xfa7c, 0xfb4c, 0xfc53, 0xfc86, 0xfbdc,
+ 0xfc90, 0xfd0e, 0xfbb2, 0xfb13, 0xfb63, 0xfbbf,
+ 0xfc89, 0xfc38, 0xfb6c, 0xfc35, 0xfcc0, 0xfc5a,
+ 0xfcbf, 0xfd2e, 0xfd3d, 0xfe42, 0xff80, 0x0001,
+ 0x00b5, 0x0186, 0x0211, 0x0322, 0x0414, 0x03e8,
+ 0x0409, 0x04e0, 0x04bf, 0x045d, 0x0523, 0x0550,
+ 0x048e, 0x04ec, 0x0596, 0x05ce, 0x0712, 0x0832,
+ 0x07e4, 0x07ad, 0x07dc, 0x0805, 0x087c, 0x08a9,
+ 0x0833, 0x0812, 0x095b, 0x0b35, 0x0b7b, 0x0aae,
+ 0x0a78, 0x0a5f, 0x09f3, 0x0965, 0x08cd, 0x08b9,
+ 0x08f4, 0x08d4, 0x088d, 0x0888, 0x08bb, 0x08af,
+ 0x0896, 0x08de, 0x08c3, 0x081c, 0x07c9, 0x0796,
+ 0x06b1, 0x056f, 0x0545, 0x062c, 0x064f, 0x05ca,
+ 0x05d6, 0x05ed, 0x05b1, 0x0546, 0x0434, 0x02fa,
+ 0x02c4, 0x037d, 0x043d, 0x046c, 0x03dc, 0x0385,
+ 0x0449, 0x049e, 0x041b, 0x0485, 0x04cc, 0x0405,
+ 0x0430, 0x04bd, 0x0418, 0x0321, 0x0282, 0x0252,
+ 0x01f3, 0x00ab, 0xffd3, 0xfff8, 0xffd9, 0xff71,
+ 0xff79, 0x003f, 0x013e, 0x0152, 0x00de, 0x00d5,
+ 0x00c0, 0x008b, 0x0080, 0xfffc, 0xff71, 0xffd6,
+ 0x0000, 0xffb4, 0x0020, 0xfffe, 0xfee1, 0xfee1,
+ 0xff5a, 0xfef8, 0xfed0, 0xff1a, 0xff09, 0xff02,
+ 0xffb6, 0x003e, 0xfff5, 0x008d, 0x01d6, 0x0227,
+ 0x02df, 0x03d8, 0x03c0, 0x0476, 0x0562, 0x04a0,
+ 0x03ea, 0x03ab, 0x02f3, 0x0252, 0x01da, 0x01ca,
+ 0x01ef, 0x012d, 0x0083, 0x010d, 0x019c, 0x0192,
+ 0x01d4, 0x026e, 0x0262, 0x01f2, 0x021f, 0x0274,
+ 0x0263, 0x0264, 0x0278, 0x0286, 0x032f, 0x041f,
+ 0x042b, 0x03fd, 0x044d, 0x0419, 0x03d2, 0x042e,
+ 0x0405, 0x038c, 0x0388, 0x039e, 0x03f0, 0x03dd,
+ 0x0307, 0x02eb, 0x03c7, 0x0497, 0x04d3, 0x046b,
+ 0x03fd, 0x03ca, 0x03a3, 0x03c9, 0x043a, 0x04a3,
+ 0x049d, 0x0446, 0x0434, 0x042e, 0x041c, 0x0431,
+ 0x03fd, 0x03d6, 0x0400, 0x0427, 0x04d1, 0x05aa,
+ 0x059b, 0x0509, 0x04ef, 0x0568, 0x05cd, 0x05ee,
+ 0x0635, 0x06a3, 0x06e1, 0x0630, 0x04e5, 0x0499,
+ 0x049f, 0x0425, 0x041d, 0x03a2, 0x02b5, 0x0318,
+ 0x03ba, 0x0386, 0x0362, 0x035d, 0x0359, 0x033f,
+ 0x028f, 0x0170, 0x009d, 0x008f, 0x007d, 0xffb6,
+ 0xff2e, 0xff38, 0xff28, 0xff09, 0xfebd, 0xfe0f,
+ 0xfdab, 0xfdee, 0xfe2e, 0xfdfa, 0xfdd0, 0xfe67,
+ 0xff86, 0xffb6, 0xfee1, 0xfee9, 0xff5a, 0xfeda,
+ 0xfec0, 0xff43, 0xff34, 0xff0d, 0xff1e, 0xff1c,
+ 0xfea5, 0xfdbc, 0xfd95, 0xfdd8, 0xfd8a, 0xfd82,
+ 0xfdad, 0xfda8, 0xfdd0, 0xfd92, 0xfcd5, 0xfc31,
+ 0xfc2a, 0xfcd1, 0xfd11, 0xfd5b, 0xfe77, 0xfee8,
+ 0xff15, 0x000d, 0x0046, 0xffd8, 0x0009, 0x0019,
+ 0xff95, 0xff19, 0xfed0, 0xfecb, 0xff03, 0xfebd,
+ 0xfe16, 0xfe41, 0xfeb2, 0xfebb, 0xff89, 0x006b,
+ 0x004d, 0x00cd, 0x0244, 0x036d, 0x0443, 0x04b1,
+ 0x0498, 0x04cb, 0x058a, 0x05bf, 0x052b, 0x04f1,
+ 0x052c, 0x0563, 0x05b4, 0x059f, 0x052e, 0x0553,
+ 0x05f4, 0x0685, 0x06e4, 0x0757, 0x07d0, 0x07bf,
+ 0x07b4, 0x07f9, 0x07d7, 0x07ed, 0x0861, 0x0865,
+ 0x0878, 0x090b, 0x09b5, 0x09b8, 0x08e3, 0x086b,
+ 0x0876, 0x086d, 0x08bf, 0x08f9, 0x08b9, 0x089d,
+ 0x0850, 0x0793, 0x0707, 0x06f4, 0x06ff, 0x072f,
+ 0x0816, 0x0891, 0x07fc, 0x0815, 0x087b, 0x0856,
+ 0x08b7, 0x08ba, 0x084d, 0x08ea, 0x0943, 0x08d5,
+ 0x08e2, 0x0927, 0x09a1, 0x0a2c, 0x0a1d, 0x0a71,
+ 0x0b5c, 0x0b8b, 0x0b5f, 0x0bd3, 0x0c4c, 0x0c46,
+ 0x0c5b, 0x0cea, 0x0d68, 0x0cf0, 0x0bfb, 0x0be1,
+ 0x0bf0, 0x0b35, 0x0a87, 0x0a19, 0x09f0, 0x09ef,
+ 0x0912, 0x083e, 0x080f, 0x0721, 0x061f, 0x0611,
+ 0x0611, 0x0596, 0x04fe, 0x052a, 0x05a0, 0x051d,
+ 0x04ac, 0x04b4, 0x0435, 0x03c3, 0x038a, 0x033c,
+ 0x0305, 0x0268, 0x0178, 0x0089, 0xffcb, 0xffd1,
+ 0xffe9, 0xffa4, 0xffd4, 0x0000, 0xffa4, 0xff21,
+ 0xfe69, 0xfd91, 0xfccf, 0xfc1b, 0xfb7c, 0xfad5,
+ 0xf9f8, 0xf954, 0xf9a9, 0xfa30, 0xf9b0, 0xf8ff,
+ 0xf8b9, 0xf876, 0xf857, 0xf7f3, 0xf735, 0xf6b4,
+ 0xf610, 0xf583, 0xf5a0, 0xf5ba, 0xf583, 0xf54f,
+ 0xf55d, 0xf56c, 0xf4f8, 0xf495, 0xf4d2, 0xf533,
+ 0xf548, 0xf509, 0xf4f7, 0xf50b, 0xf4cc, 0xf4aa,
+ 0xf494, 0xf43e, 0xf43f, 0xf46b, 0xf46c, 0xf44c,
+ 0xf41c, 0xf497, 0xf55a, 0xf57b, 0xf5d6, 0xf6b5,
+ 0xf749, 0xf7ad, 0xf83e, 0xf8b1, 0xf8aa, 0xf892,
+ 0xf897, 0xf867, 0xf89b, 0xf932, 0xf96b, 0xf996,
+ 0xf9b3, 0xf999, 0xf9ab, 0xf9da, 0xfa5f, 0xfacd,
+ 0xfa6b, 0xfa33, 0xfa6d, 0xfa61, 0xfa42, 0xfa43,
+ 0xfa85, 0xfae0, 0xfb21, 0xfb9f, 0xfbaf, 0xfb68,
+ 0xfc21, 0xfd03, 0xfd3d, 0xfdc5, 0xfe9d, 0xff5f,
+ 0xfffc, 0x005e, 0x00f1, 0x01ad, 0x01f8, 0x0216,
+ 0x02b4, 0x035c, 0x037b, 0x03c4, 0x045e, 0x048b,
+ 0x044c, 0x03cb, 0x037b, 0x03a0, 0x0374, 0x0309,
+ 0x029e, 0x01d8, 0x0186, 0x01c0, 0x01ae, 0x01a1,
+ 0x01a9, 0x019b, 0x019a, 0x015d, 0x011b, 0x0117,
+ 0x00eb, 0x00a7, 0x00ac, 0x0117, 0x0193, 0x01e6,
+ 0x021f, 0x0237, 0x029e, 0x0333, 0x0334, 0x0321,
+ 0x0328, 0x02e9, 0x02e3, 0x02f8, 0x0300, 0x0305,
+ 0x02b7, 0x02f8, 0x038d, 0x0327, 0x02d4, 0x02f9,
+ 0x029a, 0x0238, 0x0205, 0x01cf, 0x01c7, 0x019c,
+ 0x016f, 0x016b, 0x011a, 0x008a, 0x0015, 0xffbc,
+ 0xff18, 0xfe55, 0xfe37, 0xfe4f, 0xfe00, 0xfdd7,
+ 0xfdfc, 0xfe1a, 0xfe27, 0xfe32, 0xfe48, 0xfe26,
+ 0xfdcb, 0xfdac, 0xfdb3, 0xfd76, 0xfcef, 0xfc78,
+ 0xfc3c, 0xfc36, 0xfc5e, 0xfc41, 0xfbc0, 0xfb30,
+ 0xfa9c, 0xfa33, 0xf99a, 0xf8a9, 0xf87b, 0xf89e,
+ 0xf836, 0xf845, 0xf89a, 0xf880, 0xf879, 0xf856,
+ 0xf809, 0xf7f2, 0xf7d0, 0xf795, 0xf75d, 0xf762,
+ 0xf7a5, 0xf7e2, 0xf86d, 0xf8cf, 0xf8bb, 0xf913,
+ 0xf963, 0xf989, 0xf9f5, 0xf967, 0xf89c, 0xf921,
+ 0xf983, 0xf94f, 0xf96f, 0xf96d, 0xf96d, 0xf9b6,
+ 0xf9ad, 0xf980, 0xf980, 0xf982, 0xf99f, 0xf9b4,
+ 0xf999, 0xf9cb, 0xfa20, 0xf9e1, 0xf9a4, 0xfa0f,
+ 0xfa79, 0xfaa6, 0xfb0b, 0xfbe1, 0xfce8, 0xfdad,
+ 0xfe62, 0xff21, 0xff86, 0xffc2, 0xfff4, 0x0043,
+ 0x00bf, 0x008f, 0xfffa, 0xffa9, 0xfef8, 0xfe66,
+ 0xfe64, 0xfdd8, 0xfd10, 0xfccf, 0xfc67, 0xfb81,
+ 0xfab7, 0xfa62, 0xfa18, 0xf9ae, 0xf953, 0xf8d5,
+ 0xf84b, 0xf7b7, 0xf722, 0xf707, 0xf68a, 0xf56d,
+ 0xf4f3, 0xf460, 0xf342, 0xf2de, 0xf2a7, 0xf213,
+ 0xf1e8, 0xf1ef, 0xf1d0, 0xf1e1, 0xf271, 0xf320,
+ 0xf34a, 0xf38b, 0xf412, 0xf40a, 0xf409, 0xf484,
+ 0xf49a, 0xf477, 0xf4af, 0xf4db, 0xf49f, 0xf44e,
+ 0xf47b, 0xf532, 0xf5c1, 0xf5f1, 0xf669, 0xf727,
+ 0xf7a9, 0xf822, 0xf871, 0xf840, 0xf804, 0xf7c8,
+ 0xf795, 0xf7df, 0xf827, 0xf813, 0xf80a, 0xf819,
+ 0xf828, 0xf817, 0xf824, 0xf87c, 0xf889, 0xf886,
+ 0xf8cc, 0xf8c1, 0xf880, 0xf873, 0xf8db, 0xf98f,
+ 0xf9d0, 0xfa66, 0xfb88, 0xfb9a, 0xfb7a, 0xfc28,
+ 0xfc5e, 0xfc87, 0xfd24, 0xfd5b, 0xfd9e, 0xfe3c,
+ 0xfef9, 0xfff0, 0x007f, 0x006b, 0x005f, 0x0077,
+ 0x0090, 0x00b8, 0x010e, 0x01bc, 0x0286, 0x032a,
+ 0x03c2, 0x0419, 0x041a, 0x0462, 0x04ba, 0x046e,
+ 0x0463, 0x0526, 0x059f, 0x05b2, 0x061a, 0x06b1,
+ 0x06f4, 0x06bd, 0x06c0, 0x0736, 0x0739, 0x0717,
+ 0x076f, 0x0796, 0x0781, 0x07de, 0x08b3, 0x0954,
+ 0x0937, 0x08f5, 0x0912, 0x08f3, 0x0893, 0x0870,
+ 0x0870, 0x0854, 0x0808, 0x07ae, 0x0740, 0x0684,
+ 0x05cb, 0x0584, 0x0561, 0x04e8, 0x0469, 0x0485,
+ 0x0507, 0x0578, 0x05de, 0x0661, 0x06ec, 0x06fc,
+ 0x068b, 0x060a, 0x0532, 0x0431, 0x0385, 0x02ba,
+ 0x0204, 0x01cd, 0x019a, 0x01a0, 0x01bd, 0x015f,
+ 0x0133, 0x016d, 0x01b9, 0x0242, 0x0296, 0x02c5,
+ 0x035c, 0x0399, 0x035d, 0x035b, 0x0329, 0x02c1,
+ 0x02aa, 0x026a, 0x01c6, 0x0127, 0x007d, 0xffea,
+ 0xffb2, 0xff70, 0xfefa, 0xfe99, 0xfe5e, 0xfe4c,
+ 0xfe42, 0xfe2d, 0xfe3e, 0xfe4c, 0xfe1e, 0xfdd8,
+ 0xfd91, 0xfd91, 0xfe27, 0xff2f, 0x002e, 0x00b0,
+ 0x0109, 0x01bc, 0x0258, 0x0278, 0x024a, 0x020e,
+ 0x01ea, 0x01c9, 0x01b8, 0x01a5, 0x0115, 0x00a0,
+ 0x00ee, 0x0122, 0x00e3, 0x00df, 0x0131, 0x01a9,
+ 0x0218, 0x023c, 0x0252, 0x02cd, 0x036f, 0x03a3,
+ 0x039d, 0x03c7, 0x03c4, 0x0357, 0x02e7, 0x0292,
+ 0x0231, 0x01e3, 0x01d8, 0x01fc, 0x0217, 0x0233,
+ 0x0282, 0x0306, 0x0371, 0x0387, 0x038e, 0x03a5,
+ 0x03a6, 0x03ca, 0x040b, 0x0405, 0x03ec, 0x03f4,
+ 0x03c2, 0x0350, 0x02e8, 0x02b0, 0x02cd, 0x0307,
+ 0x02ec, 0x02da, 0x031b, 0x0337, 0x036f, 0x0411,
+ 0x0447, 0x03f0, 0x03be, 0x0389, 0x033a, 0x0345,
+ 0x039c, 0x03ea, 0x0442, 0x04a0, 0x0494, 0x0454,
+ 0x046c, 0x044f, 0x03c7, 0x03a7, 0x03e0, 0x0406,
+ 0x042a, 0x0419, 0x0425, 0x04a2, 0x04d9, 0x04aa,
+ 0x04a1, 0x04b0, 0x04da, 0x0537, 0x0591, 0x05e2,
+ 0x060a, 0x05e4, 0x05a5, 0x0536, 0x0466, 0x0393,
+ 0x030b, 0x02bd, 0x026e, 0x020f, 0x01ec, 0x0200,
+ 0x01da, 0x0195, 0x0172, 0x0151, 0x0147, 0x0137,
+ 0x00dc, 0x00ad, 0x00f6, 0x012e, 0x0133, 0x0156,
+ 0x0193, 0x01aa, 0x0199, 0x0178, 0x010a, 0x0049,
+ 0xffd9, 0xfff4, 0x0010, 0xfff8, 0xffda, 0xffd3,
+ 0xfff4, 0x001d, 0x001e, 0x0000, 0xffdb, 0xffc3,
+ 0xffe9, 0x002b, 0x001e, 0xffdb, 0xffb6, 0xff7e,
+ 0xff28, 0xfeef, 0xfeba, 0xfeaf, 0xff2a, 0xffc2,
+ 0xffe9, 0xffae, 0xff2b, 0xfe6b, 0xfda2, 0xfcfd,
+ 0xfc9f, 0xfc85, 0xfca5, 0xfd02, 0xfd5b, 0xfdbe,
+ 0xfea3, 0xffbc, 0x0070, 0x00e7, 0x016c, 0x022b,
+ 0x0319, 0x039e, 0x039b, 0x0371, 0x0331, 0x030d,
+ 0x02e8, 0x023a, 0x019f, 0x01c7, 0x021e, 0x025a,
+ 0x028e, 0x026b, 0x025f, 0x02dc, 0x034c, 0x0395,
+ 0x0418, 0x046e, 0x045f, 0x0490, 0x0518, 0x057b,
+ 0x05f8, 0x06cd, 0x0758, 0x0763, 0x0771, 0x07ad,
+ 0x080f, 0x0842, 0x07e6, 0x07a5, 0x07e5, 0x080c,
+ 0x0819, 0x0827, 0x07f6, 0x07fa, 0x0814, 0x0797,
+ 0x0721, 0x0722, 0x071c, 0x0739, 0x0775, 0x075b,
+ 0x074d, 0x0779, 0x0779, 0x076c, 0x077c, 0x0796,
+ 0x07df, 0x082a, 0x084f, 0x08a2, 0x08ff, 0x0929,
+ 0x09b0, 0x0a8d, 0x0af0, 0x0b15, 0x0b7d, 0x0bbb,
+ 0x0bc9, 0x0bbe, 0x0b3c, 0x0adf, 0x0b12, 0x0af0,
+ 0x0a7b, 0x0a35, 0x09c3, 0x0942, 0x08fa, 0x08af,
+ 0x0899, 0x08c3, 0x08f0, 0x091e, 0x08e3, 0x0877,
+ 0x089a, 0x08cc, 0x08c8, 0x08ea, 0x08dc, 0x08e4,
+ 0x0952, 0x0949, 0x08da, 0x0886, 0x07fc, 0x0787,
+ 0x0720, 0x0638, 0x058c, 0x0580, 0x0583, 0x05c3,
+ 0x0601, 0x05a1, 0x0545, 0x0532, 0x04d0, 0x043a,
+ 0x03b3, 0x0313, 0x026d, 0x01e3, 0x016a, 0x0117,
+ 0x00f2, 0x00be, 0x0062, 0xfffe, 0xff7c, 0xfedc,
+ 0xfe5c, 0xfdf1, 0xfd6c, 0xfcf2, 0xfcb8, 0xfcb8,
+ 0xfc9f, 0xfc44, 0xfbdc, 0xfb53, 0xfab7, 0xfa58,
+ 0xf9d5, 0xf925, 0xf8d2, 0xf861, 0xf7be, 0xf781,
+ 0xf702, 0xf617, 0xf5a3, 0xf54c, 0xf4b4, 0xf453,
+ 0xf40e, 0xf3de, 0xf3e8, 0xf3c7, 0xf397, 0xf3b6,
+ 0xf406, 0xf461, 0xf48c, 0xf485, 0xf4a5, 0xf4db,
+ 0xf508, 0xf517, 0xf4fc, 0xf549, 0xf5f6, 0xf63f,
+ 0xf672, 0xf6ec, 0xf732, 0xf744, 0xf72e, 0xf6d2,
+ 0xf6c0, 0xf6fd, 0xf6eb, 0xf6c8, 0xf6df, 0xf6e5,
+ 0xf6f7, 0xf74f, 0xf7a0, 0xf7b5, 0xf7ad, 0xf799,
+ 0xf792, 0xf793, 0xf768, 0xf752, 0xf7ab, 0xf804,
+ 0xf81c, 0xf853, 0xf8b4, 0xf947, 0xfa27, 0xfad1,
+ 0xfb2b, 0xfbad, 0xfc31, 0xfcae, 0xfd53, 0xfdbd,
+ 0xfe04, 0xfea1, 0xff3e, 0xffa5, 0x0011, 0x0068,
+ 0x00be, 0x0145, 0x01a3, 0x01af, 0x01ab, 0x01a5,
+ 0x01a5, 0x019a, 0x0142, 0x00cb, 0x00ac, 0x00d3,
+ 0x00da, 0x00c8, 0x00e7, 0x013d, 0x018b, 0x01a0,
+ 0x0173, 0x013c, 0x0150, 0x016b, 0x012f, 0x0102,
+ 0x0119, 0x0126, 0x0140, 0x0174, 0x016c, 0x0135,
+ 0x011d, 0x013e, 0x0176, 0x0182, 0x019f, 0x0209,
+ 0x026f, 0x02e5, 0x035c, 0x0324, 0x02b7, 0x02dd,
+ 0x02f7, 0x02af, 0x0266, 0x0216, 0x01e8, 0x01e0,
+ 0x0193, 0x012f, 0x0101, 0x00e2, 0x00a9, 0x0045,
+ 0xffdb, 0xff8a, 0xff41, 0xff2f, 0xff3d, 0xff23,
+ 0xff3c, 0xffaa, 0x0009, 0x0048, 0x0050, 0x0044,
+ 0x0094, 0x00e3, 0x00c9, 0x009b, 0x007b, 0x0051,
+ 0x001a, 0xffbb, 0xff2b, 0xfe73, 0xfdd2, 0xfd86,
+ 0xfd2c, 0xfcce, 0xfcfc, 0xfd4d, 0xfd58, 0xfd7a,
+ 0xfd5d, 0xfcbf, 0xfc5a, 0xfc4c, 0xfc01, 0xfba5,
+ 0xfb7d, 0xfb4e, 0xfb11, 0xfac6, 0xfa47, 0xf9e3,
+ 0xf9ba, 0xf95a, 0xf8f3, 0xf8e8, 0xf8f1, 0xf915,
+ 0xf96c, 0xf98a, 0xf998, 0xf9c7, 0xf9ad, 0xf977,
+ 0xf979, 0xf979, 0xf991, 0xf9e7, 0xfa2a, 0xfa30,
+ 0xfa1f, 0xfa28, 0xfa1e, 0xf9b4, 0xf946, 0xf915,
+ 0xf8ee, 0xf91a, 0xf9af, 0xfa1b, 0xfa58, 0xfabb,
+ 0xfb2a, 0xfb66, 0xfb81, 0xfbc3, 0xfc29, 0xfc78,
+ 0xfcc6, 0xfd0e, 0xfd37, 0xfd8b, 0xfe0e, 0xfe60,
+ 0xfe77, 0xfe8d, 0xfeb4, 0xfed8, 0xfee6, 0xfee8,
+ 0xfecd, 0xfec3, 0xff1b, 0xff78, 0xff99, 0xffe5,
+ 0x0047, 0x0044, 0xffd0, 0xff30, 0xfea4, 0xfe1c,
+ 0xfd7b, 0xfce8, 0xfc68, 0xfbdd, 0xfb53, 0xfacc,
+ 0xfa57, 0xf9d3, 0xf8f4, 0xf7f3, 0xf71d, 0xf656,
+ 0xf594, 0xf4cc, 0xf424, 0xf3e8, 0xf3c1, 0xf371,
+ 0xf348, 0xf33d, 0xf340, 0xf375, 0xf398, 0xf375,
+ 0xf332, 0xf304, 0xf30b, 0xf313, 0xf31a, 0xf362,
+ 0xf3a9, 0xf3c6, 0xf3f5, 0xf410, 0xf40c, 0xf432,
+ 0xf472, 0xf499, 0xf4c2, 0xf523, 0xf5a6, 0xf604,
+ 0xf63f, 0xf662, 0xf672, 0xf6b3, 0xf6f0, 0xf6d1,
+ 0xf6ae, 0xf677, 0xf5fe, 0xf5bb, 0xf578, 0xf4e1,
+ 0xf49b, 0xf4c5, 0xf4fe, 0xf54d, 0xf5a5, 0xf601,
+ 0xf662, 0xf6ac, 0xf70f, 0xf785, 0xf7ce, 0xf835,
+ 0xf8cb, 0xf940, 0xf988, 0xf9ac, 0xf9eb, 0xfa5c,
+ 0xfaa5, 0xfaef, 0xfb96, 0xfc4b, 0xfcec, 0xfd80,
+ 0xfdd2, 0xfdf0, 0xfe08, 0xfe1a, 0xfe07, 0xfdbf,
+ 0xfd88, 0xfd7e, 0xfd7f, 0xfdb3, 0xfdfb, 0xfe29,
+ 0xfea0, 0xff42, 0xffab, 0x0014, 0x007c, 0x00dd,
+ 0x0186, 0x0234, 0x02d3, 0x03cf, 0x04e8, 0x05d5,
+ 0x0693, 0x06f6, 0x073e, 0x07af, 0x07f9, 0x0822,
+ 0x085a, 0x086e, 0x0866, 0x0856, 0x0832, 0x0836,
+ 0x086e, 0x0895, 0x0893, 0x087b, 0x0866, 0x0867,
+ 0x0871, 0x0876, 0x0885, 0x08b7, 0x08f0, 0x0910,
+ 0x092c, 0x091e, 0x08c3, 0x0873, 0x0843, 0x07fe,
+ 0x07d5, 0x07a3, 0x071e, 0x06b0, 0x0662, 0x05cb,
+ 0x051a, 0x0484, 0x0402, 0x03a8, 0x0355, 0x031e,
+ 0x0336, 0x0369, 0x03ae, 0x0412, 0x046b, 0x04e8,
+ 0x0588, 0x05df, 0x0604, 0x061d, 0x060e, 0x05f5,
+ 0x05ae, 0x04fc, 0x040b, 0x030f, 0x024f, 0x01de,
+ 0x0159, 0x00e3, 0x00ad, 0x005b, 0x0015, 0x0017,
+ 0x0001, 0xffe6, 0xfff1, 0xffdc, 0xffaa, 0xff72,
+ 0xff31, 0xff0a, 0xff04, 0xff29, 0xff6f, 0xff85,
+ 0xff9d, 0x0004, 0x0050, 0x0071, 0x00c7, 0x0125,
+ 0x0173, 0x01dc, 0x0238, 0x0285, 0x02ff, 0x0375,
+ 0x03a2, 0x03a0, 0x038a, 0x034b, 0x02ea, 0x028c,
+ 0x023d, 0x0200, 0x01fc, 0x023d, 0x0285, 0x02a6,
+ 0x02cb, 0x0300, 0x030e, 0x02f0, 0x02bf, 0x0285,
+ 0x025d, 0x025a, 0x027a, 0x0299, 0x028c, 0x028a,
+ 0x02b6, 0x02b4, 0x028f, 0x02a5, 0x02c7, 0x02c2,
+ 0x02a9, 0x028e, 0x029a, 0x02a0, 0x025f, 0x023b,
+ 0x024a, 0x0223, 0x0212, 0x0284, 0x0311, 0x0355,
+ 0x038c, 0x03ea, 0x0434, 0x044e, 0x0472, 0x04a1,
+ 0x04c1, 0x04eb, 0x0516, 0x051e, 0x0500, 0x04d6,
+ 0x04e8, 0x0507, 0x04a5, 0x040b, 0x03be, 0x0370,
+ 0x0309, 0x02d8, 0x02c9, 0x02e0, 0x034f, 0x03de,
+ 0x0467, 0x04fb, 0x0570, 0x05b2, 0x05dd, 0x05e1,
+ 0x05cd, 0x05fa, 0x0673, 0x06f3, 0x0762, 0x07bb,
+ 0x07f7, 0x0812, 0x07dc, 0x0752, 0x06bd, 0x063a,
+ 0x05d3, 0x0576, 0x04f7, 0x04a4, 0x04ae, 0x047f,
+ 0x03f8, 0x03ab, 0x038f, 0x033e, 0x02e4, 0x02ce,
+ 0x02d4, 0x02d5, 0x02ef, 0x0313, 0x0320, 0x032c,
+ 0x0323, 0x02e7, 0x028d, 0x020b, 0x017c, 0x0144,
+ 0x0161, 0x018f, 0x01ca, 0x01ff, 0x0218, 0x0228,
+ 0x023b, 0x0237, 0x020b, 0x01c9, 0x018b, 0x0142,
+ 0x00e8, 0x008e, 0x004a, 0x002f, 0x001e, 0xfffc,
+ 0xffd5, 0xff8b, 0xff25, 0xfece, 0xfe34, 0xfd4c,
+ 0xfcb0, 0xfc76, 0xfc55, 0xfc50, 0xfc5d, 0xfc95,
+ 0xfd21, 0xfd9b, 0xfdda, 0xfe43, 0xfecb, 0xff3f,
+ 0xffcc, 0x003c, 0x004b, 0x005f, 0x008e, 0x0054,
+ 0xffe2, 0xffab, 0xff6c, 0xff0c, 0xfee7, 0xfee8,
+ 0xfeca, 0xfeab, 0xfeaa, 0xfebc, 0xfef3, 0xff3a,
+ 0xff69, 0xffaf, 0x0016, 0x0057, 0x0094, 0x00fd,
+ 0x0153, 0x01c3, 0x0264, 0x029b, 0x028c, 0x02d3,
+ 0x0324, 0x0347, 0x038e, 0x040c, 0x0498, 0x04e0,
+ 0x04ec, 0x0529, 0x055d, 0x0563, 0x05a4, 0x05d0,
+ 0x05ae, 0x05af, 0x05b0, 0x05a6, 0x05d1, 0x05c4,
+ 0x057a, 0x056a, 0x0563, 0x0556, 0x0562, 0x0557,
+ 0x055b, 0x0591, 0x05a3, 0x058d, 0x05ab, 0x05fa,
+ 0x063e, 0x0671, 0x06a3, 0x06bf, 0x06de, 0x072a,
+ 0x0764, 0x075f, 0x0744, 0x0744, 0x0790, 0x07fe,
+ 0x083c, 0x086f, 0x089b, 0x08a3, 0x08ca, 0x090b,
+ 0x092e, 0x0950, 0x097b, 0x09a1, 0x09a3, 0x0973,
+ 0x0977, 0x09b8, 0x09cc, 0x09dd, 0x0a21, 0x0a82,
+ 0x0aee, 0x0b21, 0x0b2e, 0x0b61, 0x0b58, 0x0b0d,
+ 0x0afa, 0x0ac4, 0x0a37, 0x09d9, 0x09a3, 0x0940,
+ 0x08d6, 0x0891, 0x084d, 0x07fd, 0x07c7, 0x0785,
+ 0x0718, 0x06e6, 0x06ef, 0x06c2, 0x0693, 0x0686,
+ 0x0676, 0x0696, 0x06c4, 0x06ad, 0x0699, 0x068e,
+ 0x0643, 0x05e9, 0x05b8, 0x0598, 0x0571, 0x052e,
+ 0x04d9, 0x049e, 0x0474, 0x042b, 0x03c1, 0x0359,
+ 0x02f7, 0x029f, 0x0257, 0x01ec, 0x0145, 0x009d,
+ 0x0003, 0xff71, 0xfef8, 0xfe79, 0xfde5, 0xfd70,
+ 0xfd2f, 0xfd09, 0xfcc8, 0xfc46, 0xfb9d, 0xfb01,
+ 0xfa8c, 0xfa20, 0xf98a, 0xf8f2, 0xf86c, 0xf7f3,
+ 0xf7e5, 0xf825, 0xf80d, 0xf7ca, 0xf7b0, 0xf767,
+ 0xf6f8, 0xf6bb, 0xf6aa, 0xf6b6, 0xf6c0, 0xf6cb,
+ 0xf722, 0xf78f, 0xf7a5, 0xf798, 0xf798, 0xf778,
+ 0xf75d, 0xf773, 0xf769, 0xf724, 0xf6f2, 0xf6c6,
+ 0xf661, 0xf5e7, 0xf587, 0xf53e, 0xf517, 0xf512,
+ 0xf517, 0xf4f6, 0xf4ae, 0xf496, 0xf4a3, 0xf479,
+ 0xf466, 0xf4ad, 0xf4f6, 0xf550, 0xf5ea, 0xf679,
+ 0xf709, 0xf7b2, 0xf82c, 0xf893, 0xf912, 0xf966,
+ 0xf9ab, 0xfa07, 0xfa42, 0xfa93, 0xfb2f, 0xfba9,
+ 0xfbec, 0xfc47, 0xfc9c, 0xfcda, 0xfd28, 0xfd65,
+ 0xfd81, 0xfdb0, 0xfe02, 0xfe64, 0xfeaf, 0xfece,
+ 0xfed1, 0xfeb2, 0xfe87, 0xfe7d, 0xfe65, 0xfe32,
+ 0xfe33, 0xfe60, 0xfea4, 0xff07, 0xff4b, 0xff5b,
+ 0xff6b, 0xff72, 0xff7d, 0xff9d, 0xffcc, 0x0035,
+ 0x00aa, 0x00ce, 0x00f3, 0x0152, 0x019c, 0x01c9,
+ 0x01e7, 0x01d9, 0x01aa, 0x0160, 0x0123, 0x0130,
+ 0x015c, 0x0183, 0x01d7, 0x024c, 0x02ad, 0x02d6,
+ 0x02be, 0x02ae, 0x02bf, 0x029f, 0x026c, 0x0278,
+ 0x029e, 0x02bd, 0x02dd, 0x02e4, 0x02ef, 0x0313,
+ 0x0304, 0x02bf, 0x029c, 0x0281, 0x022e, 0x01e8,
+ 0x01ee, 0x01fb, 0x01f0, 0x0218, 0x0260, 0x0260,
+ 0x022b, 0x01f9, 0x019f, 0x011e, 0x00ba, 0x005b,
+ 0xfff5, 0xffb3, 0xff88, 0xff73, 0xff9c, 0xffc7,
+ 0xffba, 0xff93, 0xff39, 0xfe9c, 0xfe08, 0xfd9d,
+ 0xfd45, 0xfcfc, 0xfc9b, 0xfc0d, 0xfb98, 0xfb64,
+ 0xfb52, 0xfb56, 0xfb75, 0xfb8d, 0xfb6e, 0xfb0f,
+ 0xfa9a, 0xfa43, 0xfa0b, 0xf9b4, 0xf933, 0xf8d0,
+ 0xf89a, 0xf87c, 0xf868, 0xf810, 0xf780, 0xf731,
+ 0xf6fd, 0xf6b3, 0xf6a2, 0xf6a8, 0xf69b, 0xf6ba,
+ 0xf6c9, 0xf6a1, 0xf6a7, 0xf6c5, 0xf6da, 0xf71f,
+ 0xf779, 0xf7e2, 0xf871, 0xf8e4, 0xf937, 0xf99f,
+ 0xf9f0, 0xfa0e, 0xfa07, 0xf9f4, 0xf9f2, 0xf9eb,
+ 0xf9ec, 0xfa2c, 0xfa8a, 0xfae5, 0xfb5f, 0xfc02,
+ 0xfcbc, 0xfd6d, 0xfdfe, 0xfe65, 0xfe8d, 0xfea9,
+ 0xfefd, 0xff3e, 0xff4b, 0xff64, 0xff62, 0xff21,
+ 0xfeee, 0xfed7, 0xfeb5, 0xfe98, 0xfe9c, 0xfe93,
+ 0xfe5f, 0xfe31, 0xfe04, 0xfda4, 0xfd43, 0xfcea,
+ 0xfc7d, 0xfc36, 0xfbef, 0xfb4c, 0xfa89, 0xf9b7,
+ 0xf8c5, 0xf7e6, 0xf702, 0xf623, 0xf58f, 0xf519,
+ 0xf4cd, 0xf4c7, 0xf4ae, 0xf4a5, 0xf4de, 0xf4e1,
+ 0xf4ba, 0xf4c1, 0xf4d2, 0xf4e4, 0xf4ee, 0xf4d7,
+ 0xf4da, 0xf4e0, 0xf4a4, 0xf46b, 0xf454, 0xf410,
+ 0xf3b1, 0xf385, 0xf37c, 0xf368, 0xf385, 0xf3ec,
+ 0xf431, 0xf44a, 0xf479, 0xf496, 0xf498, 0xf4b1,
+ 0xf4be, 0xf4a3, 0xf464, 0xf405, 0xf3b1, 0xf35a,
+ 0xf2cb, 0xf23e, 0xf1ec, 0xf1c4, 0xf1c9, 0xf203,
+ 0xf25d, 0xf2d9, 0xf38a, 0xf45c, 0xf507, 0xf572,
+ 0xf5c7, 0xf609, 0xf63b, 0xf677, 0xf6b0, 0xf6ee,
+ 0xf75b, 0xf7e5, 0xf864, 0xf8c5, 0xf8fe, 0xf91f,
+ 0xf931, 0xf91b, 0xf8e1, 0xf8b5, 0xf8b8, 0xf8ca,
+ 0xf8e6, 0xf943, 0xf9e0, 0xfaa6, 0xfbac, 0xfccb,
+ 0xfdd7, 0xfeeb, 0xffec, 0x00b1, 0x014b, 0x01a2,
+ 0x01b5, 0x01ca, 0x01df, 0x01d9, 0x01cf, 0x01d1,
+ 0x01ed, 0x0237, 0x02a7, 0x0326, 0x03a2, 0x041c,
+ 0x04a8, 0x0556, 0x062e, 0x06f7, 0x0776, 0x07d2,
+ 0x0827, 0x085c, 0x0885, 0x08b2, 0x08d0, 0x08f6,
+ 0x0915, 0x08fc, 0x08c6, 0x08ae, 0x089a, 0x0850,
+ 0x07f2, 0x07b3, 0x0759, 0x06be, 0x063b, 0x05ec,
+ 0x05ab, 0x0592, 0x05ab, 0x05c7, 0x05cb, 0x05d6,
+ 0x05f3, 0x05ef, 0x05b4, 0x056b, 0x050e, 0x04b4,
+ 0x04a4, 0x04b3, 0x04ad, 0x04dc, 0x0537, 0x0570,
+ 0x0584, 0x058a, 0x058e, 0x0570, 0x0506, 0x048e,
+ 0x043a, 0x03e3, 0x038f, 0x0354, 0x0321, 0x0304,
+ 0x02ef, 0x02dd, 0x02ee, 0x02fa, 0x02dd, 0x02b0,
+ 0x0255, 0x01cd, 0x0144, 0x00ba, 0x0045, 0xfff0,
+ 0xff99, 0xff58, 0xff1b, 0xfea6, 0xfe31, 0xfdfb,
+ 0xfe07, 0xfe56, 0xfeb8, 0xff22, 0xffb0, 0x002f,
+ 0x008f, 0x00f3, 0x0140, 0x0178, 0x01b7, 0x01da,
+ 0x01e0, 0x01c8, 0x0187, 0x015e, 0x016e, 0x0191,
+ 0x01ad, 0x01c0, 0x01f3, 0x023d, 0x0252, 0x0259,
+ 0x0277, 0x0262, 0x0249, 0x0263, 0x0272, 0x028a,
+ 0x02c2, 0x02cd, 0x02c8, 0x02d8, 0x02c2, 0x027a,
+ 0x0220, 0x01de, 0x01b5, 0x016e, 0x013e, 0x015d,
+ 0x0186, 0x01c6, 0x0244, 0x02b5, 0x032b, 0x03c5,
+ 0x0437, 0x0484, 0x04c8, 0x04f9, 0x053c, 0x0580,
+ 0x0596, 0x05a1, 0x058e, 0x0532, 0x04a6, 0x03fc,
+ 0x035c, 0x02f2, 0x029e, 0x027b, 0x02a3, 0x02c3,
+ 0x02b7, 0x029d, 0x0277, 0x0265, 0x0264, 0x0263,
+ 0x0292, 0x02db, 0x030f, 0x034a, 0x037a, 0x0395,
+ 0x03d7, 0x042c, 0x0484, 0x051a, 0x05af, 0x05ec,
+ 0x0624, 0x068d, 0x06eb, 0x0732, 0x076c, 0x0780,
+ 0x0766, 0x073f, 0x0727, 0x0706, 0x06af, 0x065c,
+ 0x0662, 0x067f, 0x0675, 0x067f, 0x069f, 0x06a0,
+ 0x0693, 0x0666, 0x0607, 0x05bf, 0x0591, 0x0551,
+ 0x0525, 0x0500, 0x04c5, 0x049f, 0x047b, 0x0437,
+ 0x0418, 0x0418, 0x0404, 0x0404, 0x041c, 0x042c,
+ 0x043d, 0x0435, 0x0403, 0x03d4, 0x03a2, 0x034a,
+ 0x02ed, 0x02ae, 0x0288, 0x0268, 0x022d, 0x01cf,
+ 0x0172, 0x013b, 0x010c, 0x00a6, 0x0021, 0xffbd,
+ 0xff68, 0xff2a, 0xff2d, 0xff43, 0xff4e, 0xff68,
+ 0xff86, 0xffad, 0xffe0, 0xffdf, 0xffb5, 0xff9f,
+ 0xff76, 0xff32, 0xff03, 0xfee5, 0xfed7, 0xfedc,
+ 0xfedb, 0xfedc, 0xfee4, 0xfee3, 0xfef5, 0xff20,
+ 0xff31, 0xff10, 0xfefe, 0xff21, 0xff3c, 0xff47,
+ 0xff82, 0xffb3, 0xffba, 0xfff5, 0x0036, 0x003a,
+ 0x0063, 0x00ac, 0x00d5, 0x0102, 0x0114, 0x00e4,
+ 0x00a7, 0x0068, 0x003a, 0x0034, 0x0037, 0x005f,
+ 0x00ad, 0x00ef, 0x0151, 0x01d1, 0x0237, 0x0299,
+ 0x02ec, 0x0319, 0x033d, 0x0335, 0x0318, 0x031e,
+ 0x031c, 0x032a, 0x0361, 0x037b, 0x03a3, 0x03f3,
+ 0x041d, 0x0451, 0x04ae, 0x04fa, 0x055c, 0x05cd,
+ 0x0606, 0x0642, 0x06a3, 0x06fb, 0x0741, 0x077d,
+ 0x07a9, 0x07ad, 0x0779, 0x0750, 0x073b, 0x06fa,
+ 0x06bb, 0x06c3, 0x06e3, 0x06de, 0x06d3, 0x06dd,
+ 0x06e3, 0x06f6, 0x073c, 0x0778, 0x079d, 0x07e1,
+ 0x0810, 0x0819, 0x0859, 0x08c1, 0x091a, 0x0969,
+ 0x09aa, 0x09db, 0x09f1, 0x09f7, 0x0a2e, 0x0a6f,
+ 0x0a85, 0x0aa4, 0x0ab8, 0x0a8c, 0x0a47, 0x0a06,
+ 0x09da, 0x09cf, 0x09cc, 0x09d5, 0x09d7, 0x09b9,
+ 0x098a, 0x0923, 0x0896, 0x0830, 0x07c5, 0x0766,
+ 0x075a, 0x073e, 0x070e, 0x0744, 0x0797, 0x07ca,
+ 0x0803, 0x0814, 0x07f1, 0x07c9, 0x079e, 0x0786,
+ 0x0785, 0x0786, 0x07ab, 0x07d8, 0x07cf, 0x07a0,
+ 0x0768, 0x0737, 0x0729, 0x0730, 0x071c, 0x06ef,
+ 0x06be, 0x0677, 0x0623, 0x05e9, 0x0598, 0x04fb,
+ 0x0447, 0x037d, 0x0292, 0x01c9, 0x011c, 0x0079,
+ 0xfffd, 0xff73, 0xfede, 0xfe5f, 0xfda2, 0xfcc0,
+ 0xfc42, 0xfc04, 0xfbab, 0xfb58, 0xfb2b, 0xfb0b,
+ 0xfafe, 0xfb16, 0xfb1d, 0xfaee, 0xface, 0xfa97,
+ 0xfa04, 0xf984, 0xf93b, 0xf8e7, 0xf8bd, 0xf8aa,
+ 0xf875, 0xf85d, 0xf852, 0xf837, 0xf830, 0xf7f5,
+ 0xf775, 0xf703, 0xf68a, 0xf611, 0xf5bb, 0xf559,
+ 0xf4f4, 0xf49e, 0xf44c, 0xf431, 0xf435, 0xf40d,
+ 0xf3e4, 0xf3d8, 0xf3c7, 0xf39c, 0xf366, 0xf35f,
+ 0xf381, 0xf395, 0xf3ce, 0xf44a, 0xf4de, 0xf585,
+ 0xf631, 0xf6d4, 0xf777, 0xf7f5, 0xf856, 0xf8b1,
+ 0xf8cf, 0xf8c6, 0xf8d6, 0xf8d7, 0xf8c6, 0xf8e2,
+ 0xf920, 0xf96b, 0xf9dd, 0xfa6e, 0xfb02, 0xfb9e,
+ 0xfc37, 0xfc9d, 0xfcd5, 0xfcf5, 0xfce8, 0xfcc9,
+ 0xfcca, 0xfcea, 0xfd19, 0xfd3d, 0xfd54, 0xfd7f,
+ 0xfd97, 0xfd99, 0xfdd3, 0xfe24, 0xfe58, 0xfe93,
+ 0xfec8, 0xff03, 0xff69, 0xffaf, 0xffc0, 0xffd6,
+ 0xffe5, 0xffdd, 0xffcd, 0xffcb, 0xffef, 0x0001,
+ 0x0007, 0x0064, 0x00e8, 0x0145, 0x019b, 0x01d8,
+ 0x01ed, 0x0205, 0x0227, 0x025b, 0x029f, 0x02e1,
+ 0x0333, 0x0395, 0x03f3, 0x0450, 0x0485, 0x046a,
+ 0x0427, 0x03de, 0x039a, 0x0366, 0x0342, 0x0334,
+ 0x0325, 0x0304, 0x02e0, 0x02b4, 0x027e, 0x0250,
+ 0x0223, 0x020a, 0x021a, 0x0237, 0x024e, 0x025f,
+ 0x0275, 0x0299, 0x0297, 0x0259, 0x021d, 0x01e8,
+ 0x01b8, 0x01bc, 0x01cf, 0x01c1, 0x01bf, 0x01c7,
+ 0x01a8, 0x016f, 0x0138, 0x00fb, 0x00cc, 0x00ac,
+ 0x006f, 0x0011, 0xffb6, 0xff4b, 0xfecd, 0xfe67,
+ 0xfe09, 0xfd90, 0xfd31, 0xfcfe, 0xfcbc, 0xfc77,
+ 0xfc63, 0xfc4c, 0xfbf0, 0xfb6f, 0xfae0, 0xfa4e,
+ 0xf9e8, 0xf99e, 0xf959, 0xf948, 0xf941, 0xf91c,
+ 0xf937, 0xf978, 0xf981, 0xf98d, 0xf99f, 0xf962,
+ 0xf906, 0xf8ce, 0xf8b3, 0xf8a9, 0xf88d, 0xf864,
+ 0xf84b, 0xf826, 0xf806, 0xf7fb, 0xf7d6, 0xf7b7,
+ 0xf7d1, 0xf7f7, 0xf819, 0xf850, 0xf87e, 0xf897,
+ 0xf8b6, 0xf8f0, 0xf953, 0xf9c9, 0xfa3d, 0xfacc,
+ 0xfb6f, 0xfbe8, 0xfc54, 0xfcf1, 0xfd8b, 0xfe0d,
+ 0xfeb1, 0xff56, 0xffda, 0x005a, 0x00b2, 0x00c0,
+ 0x00ad, 0x0091, 0x0077, 0x0060, 0x003b, 0x001e,
+ 0x0015, 0x0011, 0x000b, 0xffd5, 0xff6c, 0xff01,
+ 0xfe83, 0xfdff, 0xfd91, 0xfd04, 0xfc7e, 0xfc34,
+ 0xfbd1, 0xfb53, 0xfae1, 0xfa63, 0xf9f5, 0xf975,
+ 0xf8b0, 0xf805, 0xf780, 0xf6ea, 0xf686, 0xf656,
+ 0xf634, 0xf63b, 0xf63b, 0xf617, 0xf5f7, 0xf5d5,
+ 0xf5d4, 0xf603, 0xf619, 0xf625, 0xf62a, 0xf5f5,
+ 0xf5bf, 0xf5a0, 0xf54a, 0xf4d1, 0xf468, 0xf409,
+ 0xf3b1, 0xf358, 0xf313, 0xf2f8, 0xf2d0, 0xf298,
+ 0xf278, 0xf266, 0xf276, 0xf29f, 0xf2af, 0xf2d9,
+ 0xf337, 0xf375, 0xf38b, 0xf3a1, 0xf3a8, 0xf3a5,
+ 0xf39e, 0xf391, 0xf39a, 0xf3a1, 0xf386, 0xf375,
+ 0xf388, 0xf3bc, 0xf3fb, 0xf405, 0xf3e8, 0xf3e1,
+ 0xf3da, 0xf3d3, 0xf3f7, 0xf446, 0xf4d2, 0xf586,
+ 0xf613, 0xf689, 0xf6ef, 0xf70d, 0xf70a, 0xf71d,
+ 0xf73c, 0xf778, 0xf7ca, 0xf823, 0xf8a4, 0xf934,
+ 0xf99e, 0xf9ee, 0xfa39, 0xfa80, 0xfaa9, 0xfabd,
+ 0xfb01, 0xfb6f, 0xfbe2, 0xfc90, 0xfd6a, 0xfe28,
+ 0xfede, 0xff9a, 0x003a, 0x00b9, 0x0115, 0x0162,
+ 0x0197, 0x01b0, 0x01ea, 0x024f, 0x02b0, 0x031b,
+ 0x0391, 0x03fe, 0x045f, 0x0497, 0x04da, 0x056b,
+ 0x060b, 0x068b, 0x06f5, 0x0724, 0x0738, 0x0765,
+ 0x0784, 0x0780, 0x0786, 0x07bc, 0x0809, 0x0826,
+ 0x0816, 0x07f1, 0x0791, 0x070f, 0x0699, 0x061a,
+ 0x05b1, 0x0577, 0x054a, 0x053b, 0x0549, 0x0548,
+ 0x0548, 0x0547, 0x052f, 0x0542, 0x0597, 0x05f2,
+ 0x064c, 0x06b0, 0x06eb, 0x06e8, 0x06cd, 0x069e,
+ 0x065a, 0x0624, 0x05ff, 0x05d1, 0x059c, 0x056e,
+ 0x0545, 0x0506, 0x04a2, 0x0441, 0x03e9, 0x0376,
+ 0x0300, 0x02a3, 0x026f, 0x0275, 0x0271, 0x0247,
+ 0x023f, 0x022c, 0x01d9, 0x0191, 0x0163, 0x0128,
+ 0x00e2, 0x0091, 0x0061, 0x0051, 0x0023, 0x0004,
+ 0x0016, 0x0021, 0x0039, 0x0066, 0x008c, 0x00cc,
+ 0x0109, 0x012c, 0x0164, 0x0193, 0x018c, 0x0176,
+ 0x016e, 0x018a, 0x01c2, 0x01f7, 0x0244, 0x029e,
+ 0x02c8, 0x02b8, 0x026f, 0x01ec, 0x0151, 0x00af,
+ 0x0028, 0xffea, 0xffd7, 0xffd6, 0xfff2, 0x002a,
+ 0x0079, 0x00cd, 0x0120, 0x0181, 0x01f9, 0x0281,
+ 0x02ef, 0x032b, 0x0375, 0x03d7, 0x041a, 0x044a,
+ 0x045d, 0x043a, 0x041e, 0x0422, 0x0420, 0x0411,
+ 0x03ed, 0x03bd, 0x03ab, 0x03a2, 0x037f, 0x034f,
+ 0x032f, 0x0327, 0x030a, 0x02bf, 0x0272, 0x023a,
+ 0x0224, 0x023c, 0x024b, 0x023b, 0x0243, 0x0250,
+ 0x0248, 0x0253, 0x026f, 0x029f, 0x0301, 0x0361,
+ 0x03a5, 0x03fe, 0x045b, 0x0496, 0x04d6, 0x052c,
+ 0x0581, 0x05d7, 0x061b, 0x063e, 0x065d, 0x0670,
+ 0x065c, 0x0634, 0x0626, 0x0646, 0x0665, 0x0660,
+ 0x066a, 0x0699, 0x06b8, 0x06d1, 0x0706, 0x073d,
+ 0x0740, 0x06f3, 0x067c, 0x060f, 0x0595, 0x04fe,
+ 0x0469, 0x03e5, 0x03a0, 0x039c, 0x0391, 0x038a,
+ 0x03ad, 0x03db, 0x03fc, 0x0403, 0x03da, 0x03a8,
+ 0x038e, 0x037d, 0x0360, 0x032d, 0x0304, 0x02f9,
+ 0x02f6, 0x030a, 0x0328, 0x031d, 0x030d, 0x031a,
+ 0x0310, 0x02e2, 0x02b7, 0x02a9, 0x02bf, 0x02d7,
+ 0x02cc, 0x02a8, 0x0284, 0x026c, 0x024b, 0x0211,
+ 0x01da, 0x01a7, 0x0150, 0x00de, 0x006a, 0xffe7,
+ 0xff5d, 0xfef3, 0xfea7, 0xfe4a, 0xfde4, 0xfdaf,
+ 0xfd9e, 0xfd90, 0xfdaa, 0xfdf6, 0xfe5b, 0xfecd,
+ 0xff27, 0xff55, 0xff84, 0xffc4, 0x0003, 0x0046,
+ 0x007c, 0x0077, 0x003f, 0x000f, 0xffe8, 0xff8f,
+ 0xff10, 0xfe9d, 0xfe1e, 0xfd8d, 0xfd28, 0xfcfd,
+ 0xfcfa, 0xfd30, 0xfd9f, 0xfe21, 0xfea4, 0xff1d,
+ 0xff80, 0xffcb, 0xfff3, 0xffe4, 0xffc3, 0xffc2,
+ 0xffdb, 0xfff9, 0x0013, 0x0038, 0x0087, 0x00e8,
+ 0x012c, 0x0172, 0x01c3, 0x01fc, 0x0234, 0x0284,
+ 0x02cf, 0x031a, 0x036c, 0x03a4, 0x03bc, 0x03cb,
+ 0x03e2, 0x03ff, 0x0419, 0x042e, 0x0430, 0x040d,
+ 0x03e8, 0x03cd, 0x03a9, 0x0394, 0x03b8, 0x0404,
+ 0x044e, 0x0491, 0x04d7, 0x050a, 0x051f, 0x0532,
+ 0x0542, 0x054a, 0x056b, 0x05bc, 0x063a, 0x06c5,
+ 0x0741, 0x07cc, 0x086c, 0x08dc, 0x090e, 0x092b,
+ 0x0951, 0x098c, 0x09af, 0x09a4, 0x09b6, 0x09f8,
+ 0x0a32, 0x0a4c, 0x0a41, 0x0a24, 0x0a1c, 0x0a19,
+ 0x09fe, 0x09d4, 0x09b4, 0x09a9, 0x0993, 0x0953,
+ 0x0905, 0x08bb, 0x0860, 0x0803, 0x07bf, 0x0792,
+ 0x077e, 0x077f, 0x0781, 0x077b, 0x077a, 0x077d,
+ 0x0778, 0x0771, 0x076b, 0x0755, 0x0730, 0x071c,
+ 0x0725, 0x0743, 0x0782, 0x07e0, 0x082d, 0x085d,
+ 0x0880, 0x086e, 0x081d, 0x07cc, 0x078a, 0x0748,
+ 0x0705, 0x069b, 0x0624, 0x05d6, 0x0589, 0x0534,
+ 0x04f9, 0x04cb, 0x04a8, 0x0484, 0x0433, 0x03dc,
+ 0x0397, 0x0338, 0x02cf, 0x026d, 0x0209, 0x01b1,
+ 0x0168, 0x0138, 0x0120, 0x00f7, 0x00df, 0x00f0,
+ 0x00d7, 0x008c, 0x0018, 0xff61, 0xfeab, 0xfe05,
+ 0xfd35, 0xfc8e, 0xfc39, 0xfbe4, 0xfb91, 0xfb41,
+ 0xfad0, 0xfa51, 0xf9c2, 0xf922, 0xf89a, 0xf818,
+ 0xf788, 0xf70f, 0xf6b5, 0xf66d, 0xf62b, 0xf5e6,
+ 0xf59d, 0xf537, 0xf4c1, 0xf472, 0xf448, 0xf42e,
+ 0xf426, 0xf419, 0xf40d, 0xf422, 0xf44e, 0xf46a,
+ 0xf475, 0xf49a, 0xf4d9, 0xf501, 0xf51c, 0xf541,
+ 0xf571, 0xf5b7, 0xf5e5, 0xf5f7, 0xf645, 0xf69d,
+ 0xf6be, 0xf6fe, 0xf755, 0xf782, 0xf7c2, 0xf826,
+ 0xf886, 0xf8f3, 0xf95c, 0xf9b0, 0xfa0c, 0xfa6b,
+ 0xfac7, 0xfb23, 0xfb84, 0xfbe8, 0xfc32, 0xfc70,
+ 0xfcb4, 0xfcc6, 0xfcb3, 0xfcb3, 0xfca5, 0xfc8e,
+ 0xfc86, 0xfc7d, 0xfc94, 0xfcb9, 0xfcbe, 0xfcce,
+ 0xfcd4, 0xfca3, 0xfc70, 0xfc36, 0xfbe5, 0xfba5,
+ 0xfb7f, 0xfbaf, 0xfc3f, 0xfcc6, 0xfd54, 0xfe1e,
+ 0xfeca, 0xff33, 0xff76, 0xffa8, 0xfff0, 0x0039,
+ 0x0079, 0x00e2, 0x015b, 0x01c5, 0x022a, 0x0268,
+ 0x0282, 0x02a0, 0x02a0, 0x0274, 0x0252, 0x025a,
+ 0x027e, 0x029b, 0x02b6, 0x02cf, 0x02c2, 0x02a0,
+ 0x0285, 0x025d, 0x0231, 0x01fb, 0x01b6, 0x01bd,
+ 0x021e, 0x0279, 0x02c6, 0x0328, 0x0378, 0x039f,
+ 0x03b0, 0x03b9, 0x03ad, 0x039f, 0x03af, 0x03bd,
+ 0x03ac, 0x03a1, 0x03af, 0x03cb, 0x03da, 0x03c0,
+ 0x038e, 0x0356, 0x0313, 0x02e3, 0x02c3, 0x0295,
+ 0x026a, 0x0241, 0x0222, 0x022b, 0x0232, 0x0211,
+ 0x01d3, 0x016e, 0x00f6, 0x0086, 0x0005, 0xff70,
+ 0xfee8, 0xfe87, 0xfe46, 0xfe08, 0xfdc8, 0xfd8f,
+ 0xfd4b, 0xfd0f, 0xfcd6, 0xfc7a, 0xfc23, 0xfbeb,
+ 0xfba4, 0xfb5c, 0xfb2e, 0xfb00, 0xfabe, 0xfa67,
+ 0xfa19, 0xf9ef, 0xf9ac, 0xf928, 0xf8a2, 0xf82a,
+ 0xf79e, 0xf716, 0xf6a9, 0xf64c, 0xf616, 0xf61c,
+ 0xf631, 0xf648, 0xf689, 0xf6e5, 0xf742, 0xf7a1,
+ 0xf7f3, 0xf858, 0xf8df, 0xf93a, 0xf97c, 0xf9ec,
+ 0xfa59, 0xfab2, 0xfb1e, 0xfb7d, 0xfbda, 0xfc47,
+ 0xfc8f, 0xfcc4, 0xfd0a, 0xfd3c, 0xfd5e, 0xfd8b,
+ 0xfdc1, 0xfe0e, 0xfe73, 0xfed8, 0xff38, 0xff85,
+ 0xffba, 0xffe1, 0xfff8, 0x000d, 0x0036, 0x0058,
+ 0x0059, 0x003c, 0xffec, 0xff51, 0xfe89, 0xfdb2,
+ 0xfce5, 0xfc46, 0xfbd6, 0xfb6d, 0xfb0d, 0xfac5,
+ 0xfa79, 0xfa25, 0xf9e5, 0xf9c4, 0xf9c1, 0xf9bf,
+ 0xf99c, 0xf968, 0xf947, 0xf929, 0xf8e3, 0xf88e,
+ 0xf860, 0xf849, 0xf832, 0xf829, 0xf809, 0xf7bb,
+ 0xf759, 0xf6d4, 0xf639, 0xf5b0, 0xf52f, 0xf4ca,
+ 0xf48f, 0xf460, 0xf449, 0xf43f, 0xf419, 0xf3f3,
+ 0xf3d3, 0xf3bd, 0xf3cf, 0xf3d1, 0xf3ac, 0xf3a4,
+ 0xf3b1, 0xf3c4, 0xf3e0, 0xf3cf, 0xf39d, 0xf37f,
+ 0xf35d, 0xf32f, 0xf2fb, 0xf2b5, 0xf27b, 0xf255,
+ 0xf234, 0xf222, 0xf211, 0xf1fa, 0xf1e2, 0xf1be,
+ 0xf1b7, 0xf1db, 0xf1fb, 0xf223, 0xf24e, 0xf25e,
+ 0xf275, 0xf296, 0xf2a5, 0xf2b2, 0xf2c2, 0xf2e7,
+ 0xf340, 0xf3b5, 0xf430, 0xf4ac, 0xf527, 0xf5aa,
+ 0xf62d, 0xf6b7, 0xf73f, 0xf78f, 0xf7d2, 0xf845,
+ 0xf8b0, 0xf91f, 0xf9ae, 0xfa18, 0xfa62, 0xfac0,
+ 0xfb13, 0xfb61, 0xfbbe, 0xfc08, 0xfc42, 0xfc90,
+ 0xfcf4, 0xfd63, 0xfddd, 0xfe76, 0xff34, 0x0016,
+ 0x010d, 0x01e6, 0x0297, 0x034b, 0x03f9, 0x048a,
+ 0x050e, 0x0591, 0x060b, 0x065a, 0x0679, 0x0696,
+ 0x069f, 0x0681, 0x065e, 0x061d, 0x05dc, 0x05e2,
+ 0x05ef, 0x05e3, 0x0602, 0x0629, 0x0634, 0x0644,
+ 0x065d, 0x068c, 0x06cd, 0x06f4, 0x0706, 0x0705,
+ 0x06ed, 0x06e0, 0x06e0, 0x06e6, 0x06ef, 0x06df,
+ 0x06ce, 0x06db, 0x06d9, 0x06d3, 0x06f2, 0x0720,
+ 0x074f, 0x0779, 0x0788, 0x077f, 0x0764, 0x072f,
+ 0x06ed, 0x06c8, 0x06d1, 0x06d8, 0x06c6, 0x06b2,
+ 0x067d, 0x061f, 0x05c9, 0x0561, 0x04c5, 0x041e,
+ 0x036c, 0x02ad, 0x0205, 0x0171, 0x00fa, 0x00a2,
+ 0x004c, 0x0011, 0x0008, 0x0014, 0x0024, 0x0022,
+ 0x0002, 0xfffb, 0x0009, 0x000e, 0x0037, 0x0082,
+ 0x00b0, 0x00c9, 0x00d7, 0x00ba, 0x008d, 0x0068,
+ 0x0030, 0xffe4, 0xff9a, 0xff5a, 0xff3f, 0xff66,
+ 0xffc0, 0x0017, 0x0053, 0x007c, 0x0090, 0x0097,
+ 0x00ae, 0x00bd, 0x00a6, 0x008f, 0x008b, 0x008e,
+ 0x00a3, 0x00bd, 0x00d4, 0x00fd, 0x013a, 0x019c,
+ 0x0218, 0x026f, 0x02a7, 0x02be, 0x0296, 0x0274,
+ 0x0263, 0x0224, 0x01f3, 0x01f7, 0x01ec, 0x01e6,
+ 0x0204, 0x0221, 0x023c, 0x025e, 0x0293, 0x02d1,
+ 0x02d5, 0x02a6, 0x027a, 0x0239, 0x01e6, 0x019b,
+ 0x014e, 0x0114, 0x00f1, 0x00db, 0x00f1, 0x0115,
+ 0x0129, 0x0157, 0x017e, 0x0183, 0x01b0, 0x0200,
+ 0x024f, 0x02c7, 0x035e, 0x03e3, 0x0457, 0x04a8,
+ 0x04c7, 0x04e2, 0x0503, 0x0513, 0x0538, 0x059e,
+ 0x060d, 0x0666, 0x06d9, 0x0762, 0x07cd, 0x0813,
+ 0x082c, 0x0814, 0x07e5, 0x07a1, 0x074a, 0x0713,
+ 0x0704, 0x06fe, 0x06e6, 0x06b2, 0x0675, 0x0635,
+ 0x05d6, 0x0567, 0x0511, 0x04c7, 0x047c, 0x043b,
+ 0x0404, 0x03ea, 0x0402, 0x0425, 0x044a, 0x0492,
+ 0x04c6, 0x04ad, 0x048d, 0x0499, 0x04bb, 0x04f9,
+ 0x0553, 0x05a3, 0x05d7, 0x05e6, 0x05d5, 0x05c5,
+ 0x05bd, 0x05a0, 0x0567, 0x051d, 0x04bf, 0x0452,
+ 0x03e6, 0x0360, 0x02be, 0x0245, 0x01e1, 0x0166,
+ 0x0109, 0x00c2, 0x006a, 0x0056, 0x0098, 0x00d9,
+ 0x0129, 0x018b, 0x01c9, 0x01e4, 0x01e8, 0x01cf,
+ 0x01ab, 0x017d, 0x013e, 0x00f2, 0x00af, 0x00aa,
+ 0x00ce, 0x00e5, 0x010f, 0x014e, 0x0160, 0x0150,
+ 0x013a, 0x010b, 0x00db, 0x00cd, 0x00c6, 0x00b0,
+ 0x0091, 0x0063, 0x0014, 0xffb5, 0xff54, 0xfed9,
+ 0xfe5c, 0xfe1f, 0xfe12, 0xfe11, 0xfe2c, 0xfe52,
+ 0xfe7a, 0xfec8, 0xff28, 0xff63, 0xff8b, 0xffbc,
+ 0xffef, 0x002b, 0x0077, 0x00c5, 0x011c, 0x0189,
+ 0x01ed, 0x0232, 0x026a, 0x02a0, 0x02d6, 0x02f7,
+ 0x02ea, 0x02b8, 0x0281, 0x0250, 0x022d, 0x0229,
+ 0x0248, 0x0268, 0x027b, 0x0290, 0x029c, 0x0294,
+ 0x0299, 0x02a3, 0x02ad, 0x02e2, 0x0329, 0x0367,
+ 0x03bd, 0x040d, 0x0433, 0x044f, 0x045d, 0x045a,
+ 0x046a, 0x047f, 0x048d, 0x04ae, 0x04e9, 0x0544,
+ 0x05b5, 0x0615, 0x066c, 0x06d8, 0x0756, 0x07bd,
+ 0x080d, 0x0862, 0x089b, 0x08a2, 0x08a8, 0x0894,
+ 0x085a, 0x0841, 0x0827, 0x07f9, 0x07f9, 0x07fa,
+ 0x07ef, 0x081e, 0x084e, 0x086c, 0x08bb, 0x090a,
+ 0x0951, 0x09af, 0x09e9, 0x0a03, 0x0a1c, 0x0a0c,
+ 0x09e4, 0x09b0, 0x0965, 0x0939, 0x0929, 0x0911,
+ 0x0919, 0x093b, 0x0957, 0x0977, 0x0997, 0x09a6,
+ 0x0990, 0x095a, 0x0939, 0x0912, 0x08bd, 0x086a,
+ 0x081c, 0x07bc, 0x0767, 0x0718, 0x06c6, 0x0692,
+ 0x068b, 0x06a2, 0x06b1, 0x06b1, 0x06cd, 0x06fe,
+ 0x072a, 0x0754, 0x0762, 0x075b, 0x075d, 0x0759,
+ 0x074f, 0x0741, 0x071b, 0x0703, 0x070c, 0x0703,
+ 0x06dd, 0x069f, 0x064f, 0x05fc, 0x0598, 0x0523,
+ 0x04a4, 0x0419, 0x03a1, 0x033f, 0x02d2, 0x025f,
+ 0x01f8, 0x019a, 0x0137, 0x00b2, 0x001c, 0xff7e,
+ 0xfead, 0xfdda, 0xfd30, 0xfc66, 0xfb8d, 0xfae7,
+ 0xfa5b, 0xf9fe, 0xf9dd, 0xf9a9, 0xf95c, 0xf904,
+ 0xf877, 0xf7d6, 0xf75e, 0xf70c, 0xf6d1, 0xf69c,
+ 0xf65c, 0xf619, 0xf5e1, 0xf5a7, 0xf554, 0xf4f3,
+ 0xf4a0, 0xf448, 0xf3dc, 0xf37f, 0xf346, 0xf343,
+ 0xf38b, 0xf3e7, 0xf431, 0xf48a, 0xf4ec, 0xf546,
+ 0xf5ae, 0xf605, 0xf645, 0xf6a6, 0xf6ff, 0xf724,
+ 0xf763, 0xf7ca, 0xf813, 0xf856, 0xf8bd, 0xf920,
+ 0xf965, 0xf997, 0xf9ca, 0xf9f6, 0xfa00, 0xf9f7,
+ 0xf9f7, 0xf9f3, 0xf9db, 0xf9b7, 0xf98f, 0xf960,
+ 0xf919, 0xf8c3, 0xf88a, 0xf867, 0xf83f, 0xf823,
+ 0xf807, 0xf7de, 0xf7e5, 0xf826, 0xf85e, 0xf8a1,
+ 0xf906, 0xf95e, 0xf9c1, 0xfa5a, 0xfb07, 0xfbd5,
+ 0xfcc7, 0xfd9a, 0xfe5a, 0xff1e, 0xffac, 0x0024,
+ 0x00ac, 0x010b, 0x016c, 0x01f7, 0x024b, 0x027a,
+ 0x02d0, 0x0310, 0x032e, 0x034e, 0x035a, 0x036d,
+ 0x0388, 0x036d, 0x0342, 0x0336, 0x0327, 0x0317,
+ 0x030c, 0x02ff, 0x0313, 0x0327, 0x030b, 0x02f0,
+ 0x02de, 0x02ac, 0x0270, 0x0243, 0x0230, 0x0243,
+ 0x0257, 0x0259, 0x0264, 0x0285, 0x02c0, 0x0306,
+ 0x032b, 0x0346, 0x0387, 0x03c3, 0x03d6, 0x03dc,
+ 0x03d2, 0x03a5, 0x0370, 0x0353, 0x0338, 0x0303,
+ 0x02c3, 0x0290, 0x026c, 0x0250, 0x023f, 0x0249,
+ 0x0266, 0x0272, 0x0265, 0x0243, 0x0208, 0x01df,
+ 0x01e8, 0x01f5, 0x01e6, 0x01c1, 0x018c, 0x015e,
+ 0x0133, 0x00f6, 0x00af, 0x0056, 0xffd6, 0xff39,
+ 0xfe87, 0xfdc2, 0xfd09, 0xfc54, 0xfb8e, 0xfac9,
+ 0xfa0a, 0xf938, 0xf869, 0xf7c5, 0xf748, 0xf6f6,
+ 0xf6e1, 0xf6dc, 0xf6d6, 0xf70e, 0xf75e, 0xf776,
+ 0xf772, 0xf765, 0xf74b, 0xf74c, 0xf757, 0xf751,
+ 0xf73d, 0xf70d, 0xf6d6, 0xf6bb, 0xf6b2, 0xf6c5,
+ 0xf6fe, 0xf752, 0xf7da, 0xf885, 0xf927, 0xf9d1,
+ 0xfa80, 0xfb33, 0xfbf8, 0xfca0, 0xfd37, 0xfde4,
+ 0xfe72, 0xfed4, 0xff23, 0xff2a, 0xfeed, 0xfeb3,
+ 0xfe94, 0xfe9c, 0xfeb5, 0xfebf, 0xfecf, 0xfedc,
+ 0xfed2, 0xfec0, 0xfe94, 0xfe4b, 0xfdf8, 0xfda5,
+ 0xfd73, 0xfd5b, 0xfd2a, 0xfcf4, 0xfcd3, 0xfca1,
+ 0xfc62, 0xfc3c, 0xfc21, 0xfbe8, 0xfb93, 0xfb3a,
+ 0xface, 0xfa4e, 0xf9db, 0xf964, 0xf8ec, 0xf898,
+ 0xf83b, 0xf7b2, 0xf73a, 0xf6d1, 0xf65a, 0xf610,
+ 0xf600, 0xf5fc, 0xf604, 0xf626, 0xf63a, 0xf62e,
+ 0xf623, 0xf60e, 0xf5be, 0xf55d, 0xf505, 0xf480,
+ 0xf3fd, 0xf3c2, 0xf39e, 0xf387, 0xf391, 0xf394,
+ 0xf393, 0xf395, 0xf386, 0xf384, 0xf387, 0xf368,
+ 0xf35a, 0xf363, 0xf35a, 0xf343, 0xf319, 0xf2ea,
+ 0xf2d0, 0xf29d, 0xf243, 0xf1e0, 0xf160, 0xf0dc,
+ 0xf081, 0xf031, 0xefe4, 0xefb5, 0xefa6, 0xefc1,
+ 0xf00c, 0xf07e, 0xf10c, 0xf190, 0xf1f9, 0xf244,
+ 0xf25c, 0xf24a, 0xf23b, 0xf24a, 0xf26f, 0xf286,
+ 0xf29e, 0xf2c3, 0xf2bc, 0xf29d, 0xf2b0, 0xf2cb,
+ 0xf2e5, 0xf334, 0xf397, 0xf3fa, 0xf476, 0xf4e7,
+ 0xf553, 0xf5d1, 0xf651, 0xf6ee, 0xf7b2, 0xf877,
+ 0xf949, 0xfa2f, 0xfb11, 0xfc00, 0xfcf6, 0xfdd3,
+ 0xfe91, 0xff21, 0xff91, 0xfffe, 0x004e, 0x008f,
+ 0x00ed, 0x015d, 0x01c1, 0x021c, 0x0270, 0x02bb,
+ 0x02fb, 0x032f, 0x0351, 0x036c, 0x0399, 0x03e1,
+ 0x0424, 0x045c, 0x049f, 0x04dd, 0x0505, 0x0530,
+ 0x0549, 0x0523, 0x04ec, 0x04e0, 0x04d9, 0x04d1,
+ 0x04e6, 0x04f7, 0x04fa, 0x0519, 0x0546, 0x0562,
+ 0x0582, 0x05ae, 0x05d8, 0x0610, 0x064b, 0x0669,
+ 0x0676, 0x068a, 0x068a, 0x066d, 0x065a, 0x0654,
+ 0x0640, 0x0613, 0x05cb, 0x057a, 0x0532, 0x04e7,
+ 0x0497, 0x0466, 0x045e, 0x044d, 0x0416, 0x03f1,
+ 0x03e7, 0x03af, 0x034c, 0x02e9, 0x026a, 0x01cc,
+ 0x0153, 0x0110, 0x00d4, 0x0093, 0x0086, 0x00a5,
+ 0x00a0, 0x007d, 0x006a, 0x004e, 0x0014, 0xffc9,
+ 0xff91, 0xff87, 0xff81, 0xff79, 0xff8a, 0xff8e,
+ 0xff98, 0xffc0, 0xffcd, 0xffda, 0xfffe, 0x0005,
+ 0x0027, 0x0064, 0x0065, 0x0060, 0x006a, 0x0052,
+ 0x003d, 0x000e, 0xffae, 0xff78, 0xff5d, 0xff49,
+ 0xff87, 0xfff0, 0x0050, 0x00c0, 0x0115, 0x0141,
+ 0x0175, 0x01b4, 0x01f3, 0x023d, 0x029c, 0x02f0,
+ 0x02ff, 0x02ec, 0x02ea, 0x02eb, 0x0300, 0x0331,
+ 0x0363, 0x039f, 0x03cc, 0x03d0, 0x03c4, 0x0388,
+ 0x0313, 0x02a3, 0x023c, 0x01d4, 0x0197, 0x017d,
+ 0x0155, 0x010a, 0x00bd, 0x008c, 0x0062, 0x0037,
+ 0x0019, 0x0008, 0x0014, 0x0032, 0x0040, 0x0057,
+ 0x0087, 0x00ce, 0x0141, 0x01d3, 0x0266, 0x02f4,
+ 0x036b, 0x03c3, 0x0401, 0x0443, 0x049d, 0x04de,
+ 0x04f9, 0x0516, 0x050f, 0x04e6, 0x04e7, 0x04ff,
+ 0x0512, 0x0545, 0x0578, 0x0591, 0x05ab, 0x05bd,
+ 0x05ab, 0x057a, 0x0554, 0x0548, 0x0528, 0x04f7,
+ 0x04de, 0x04de, 0x04ed, 0x04ef, 0x04d8, 0x04d5,
+ 0x04e1, 0x04da, 0x04ee, 0x0526, 0x055c, 0x0598,
+ 0x05e4, 0x0629, 0x0658, 0x0673, 0x067a, 0x066e,
+ 0x065d, 0x0650, 0x0651, 0x0669, 0x066a, 0x0646,
+ 0x062b, 0x05f8, 0x0598, 0x0540, 0x04da, 0x0457,
+ 0x03f0, 0x038e, 0x0334, 0x0312, 0x02f2, 0x02ac,
+ 0x0260, 0x021e, 0x01f4, 0x01e1, 0x01e8, 0x0217,
+ 0x0239, 0x024a, 0x027b, 0x0291, 0x026f, 0x023a,
+ 0x01f3, 0x01c6, 0x01ba, 0x019b, 0x018f, 0x0196,
+ 0x017a, 0x016c, 0x0178, 0x0182, 0x01a4, 0x01cc,
+ 0x01f3, 0x022b, 0x0233, 0x020e, 0x01fd, 0x01dd,
+ 0x01a7, 0x0187, 0x0151, 0x00f0, 0x00aa, 0x0086,
+ 0x004c, 0x0014, 0x0016, 0x0028, 0x0016, 0xfffa,
+ 0xffef, 0xfffb, 0x000e, 0x0012, 0x0035, 0x00a2,
+ 0x011f, 0x017c, 0x01c2, 0x01e1, 0x01bf, 0x017a,
+ 0x0150, 0x013d, 0x011d, 0x0119, 0x0137, 0x0143,
+ 0x0166, 0x01b6, 0x01eb, 0x0210, 0x0236, 0x0224,
+ 0x01e8, 0x01c1, 0x01a0, 0x016a, 0x0148, 0x0161,
+ 0x0198, 0x01d4, 0x0213, 0x0243, 0x0278, 0x02d5,
+ 0x0342, 0x03af, 0x0423, 0x048a, 0x04eb, 0x0543,
+ 0x057e, 0x05ab, 0x05c7, 0x05d7, 0x060a, 0x0645,
+ 0x0653, 0x0657, 0x0668, 0x066a, 0x065d, 0x0657,
+ 0x065b, 0x065f, 0x067a, 0x06bd, 0x06fd, 0x0728,
+ 0x075e, 0x0794, 0x07cc, 0x0812, 0x0859, 0x089e,
+ 0x08d5, 0x0906, 0x0955, 0x09a8, 0x09e1, 0x0a1c,
+ 0x0a46, 0x0a53, 0x0a6f, 0x0a99, 0x0ac1, 0x0ae3,
+ 0x0afb, 0x0b0d, 0x0b12, 0x0b13, 0x0b22, 0x0b11,
+ 0x0ad3, 0x0a75, 0x09f0, 0x096c, 0x08ff, 0x0889,
+ 0x0835, 0x0810, 0x07e2, 0x07b1, 0x0776, 0x071b,
+ 0x06db, 0x06be, 0x06c1, 0x070d, 0x075f, 0x078a,
+ 0x07cd, 0x0804, 0x0801, 0x07f9, 0x07ef, 0x07d1,
+ 0x07cd, 0x07ea, 0x080c, 0x0822, 0x0823, 0x0819,
+ 0x0810, 0x0804, 0x0804, 0x081c, 0x083d, 0x0868,
+ 0x08a5, 0x08d5, 0x08d6, 0x08b9, 0x088c, 0x083e,
+ 0x07e5, 0x0797, 0x072d, 0x06a8, 0x0644, 0x05ec,
+ 0x0560, 0x04c6, 0x0446, 0x03b9, 0x030f, 0x026e,
+ 0x01de, 0x0152, 0x00ca, 0x0047, 0xffcf, 0xff68,
+ 0xff0b, 0xfe9e, 0xfe07, 0xfd58, 0xfcba, 0xfc2c,
+ 0xfb9c, 0xfb05, 0xfa58, 0xf9a0, 0xf8ee, 0xf839,
+ 0xf784, 0xf6df, 0xf64f, 0xf5e9, 0xf5ad, 0xf56e,
+ 0xf527, 0xf506, 0xf4fa, 0xf4dc, 0xf4c3, 0xf4b8,
+ 0xf49d, 0xf48a, 0xf494, 0xf4a7, 0xf4e8, 0xf573,
+ 0xf600, 0xf665, 0xf6bc, 0xf6ff, 0xf731, 0xf765,
+ 0xf793, 0xf7c3, 0xf801, 0xf845, 0xf884, 0xf8b7,
+ 0xf8ef, 0xf933, 0xf962, 0xf979, 0xf983, 0xf963,
+ 0xf917, 0xf8ba, 0xf850, 0xf7e5, 0xf787, 0xf729,
+ 0xf6ce, 0xf68d, 0xf664, 0xf652, 0xf667, 0xf698,
+ 0xf6cb, 0xf70c, 0xf757, 0xf794, 0xf7e0, 0xf840,
+ 0xf88c, 0xf8e6, 0xf972, 0xf9fc, 0xfa8a, 0xfb38,
+ 0xfbc5, 0xfc1c, 0xfc67, 0xfcb0, 0xfcf9, 0xfd41,
+ 0xfd91, 0xfe08, 0xfe9b, 0xff20, 0xff9b, 0x0015,
+ 0x008b, 0x00f1, 0x012d, 0x0148, 0x0168, 0x017d,
+ 0x0175, 0x0176, 0x0188, 0x01a6, 0x01d1, 0x01db,
+ 0x01c4, 0x01cd, 0x01f0, 0x020e, 0x022d, 0x0236,
+ 0x021d, 0x01fe, 0x01d0, 0x019f, 0x019a, 0x01b8,
+ 0x01d7, 0x01f3, 0x0219, 0x025f, 0x02ae, 0x02e0,
+ 0x0300, 0x030f, 0x02ff, 0x02ed, 0x02e9, 0x02e6,
+ 0x02ed, 0x02fa, 0x0302, 0x0321, 0x0352, 0x0378,
+ 0x03ac, 0x040a, 0x0475, 0x04e6, 0x0561, 0x05c1,
+ 0x05fb, 0x0613, 0x05fe, 0x05df, 0x05cc, 0x0595,
+ 0x0532, 0x04ab, 0x03f7, 0x0352, 0x02dc, 0x025b,
+ 0x01ea, 0x01b3, 0x0175, 0x0114, 0x00a4, 0x0012,
+ 0xff6f, 0xfee6, 0xfe8b, 0xfe56, 0xfe21, 0xfdd0,
+ 0xfd7e, 0xfd28, 0xfcac, 0xfc0e, 0xfb5f, 0xfaa2,
+ 0xfa01, 0xf99b, 0xf944, 0xf8e1, 0xf894, 0xf863,
+ 0xf83d, 0xf81b, 0xf7eb, 0xf7b4, 0xf783, 0xf756,
+ 0xf749, 0xf764, 0xf77f, 0xf7bc, 0xf82e, 0xf894,
+ 0xf8f2, 0xf959, 0xf9a2, 0xf9fc, 0xfa7f, 0xfad3,
+ 0xfaf1, 0xfb10, 0xfb24, 0xfb40, 0xfb78, 0xfba1,
+ 0xfbc4, 0xfc06, 0xfc39, 0xfc4f, 0xfc86, 0xfcd6,
+ 0xfd0d, 0xfd55, 0xfdcc, 0xfe36, 0xfe73, 0xfe96,
+ 0xfe9f, 0xfe9e, 0xfebc, 0xfef4, 0xff23, 0xff37,
+ 0xff31, 0xff0d, 0xfed0, 0xfe7d, 0xfe10, 0xfdac,
+ 0xfd6f, 0xfd3e, 0xfd0a, 0xfcdb, 0xfca8, 0xfc6f,
+ 0xfc38, 0xfbfa, 0xfbb2, 0xfb65, 0xfb24, 0xfaf4,
+ 0xfaa7, 0xfa3e, 0xf9f9, 0xf9ba, 0xf95f, 0xf91d,
+ 0xf8ec, 0xf8b0, 0xf890, 0xf88d, 0xf88c, 0xf892,
+ 0xf893, 0xf87a, 0xf85a, 0xf84c, 0xf845, 0xf825,
+ 0xf7fc, 0xf7dc, 0xf7a1, 0xf753, 0xf718, 0xf6d2,
+ 0xf66a, 0xf5f6, 0xf585, 0xf525, 0xf4da, 0xf49a,
+ 0xf465, 0xf43a, 0xf409, 0xf3b5, 0xf334, 0xf2bd,
+ 0xf272, 0xf240, 0xf22b, 0xf22c, 0xf220, 0xf216,
+ 0xf226, 0xf23b, 0xf248, 0xf250, 0xf261, 0xf286,
+ 0xf2a0, 0xf29a, 0xf287, 0xf24f, 0xf1ef, 0xf197,
+ 0xf147, 0xf0e7, 0xf08f, 0xf041, 0xefe1, 0xef92,
+ 0xef6f, 0xef67, 0xef90, 0xf000, 0xf08b, 0xf113,
+ 0xf1a0, 0xf21b, 0xf270, 0xf2ba, 0xf31a, 0xf395,
+ 0xf41b, 0xf49e, 0xf511, 0xf56a, 0xf5c5, 0xf62c,
+ 0xf68c, 0xf6fb, 0xf77a, 0xf7e9, 0xf85e, 0xf8d7,
+ 0xf921, 0xf95d, 0xf9c1, 0xfa3a, 0xfabf, 0xfb63,
+ 0xfc15, 0xfcc3, 0xfd7d, 0xfe42, 0xfed9, 0xff30,
+ 0xff7d, 0xffcb, 0x0009, 0x005f, 0x00d0, 0x0144,
+ 0x01bb, 0x0218, 0x0244, 0x025a, 0x025a, 0x0248,
+ 0x023f, 0x0241, 0x024e, 0x0267, 0x0279, 0x0288,
+ 0x029b, 0x02a9, 0x02b4, 0x02c6, 0x02e5, 0x0322,
+ 0x037f, 0x03f6, 0x0473, 0x04e2, 0x054d, 0x05b5,
+ 0x0605, 0x0640, 0x066d, 0x0689, 0x06b2, 0x06e6,
+ 0x06f5, 0x06e5, 0x06db, 0x06d4, 0x06ca, 0x06b8,
+ 0x068e, 0x0639, 0x05b1, 0x0518, 0x04a6, 0x044a,
+ 0x03d6, 0x0351, 0x02c4, 0x0238, 0x01be, 0x0151,
+ 0x00f6, 0x00b6, 0x007b, 0x004f, 0x0048, 0x0045,
+ 0x003f, 0x0041, 0x002f, 0x0014, 0x0000, 0xffde,
+ 0xffb7, 0xff9e, 0xff89, 0xff86, 0xff94, 0xffa8,
+ 0xffd6, 0x000c, 0x002b, 0x0031, 0x001c, 0xfff3,
+ 0xffcf, 0xffaa, 0xff95, 0xffa6, 0xffc1, 0xffe7,
+ 0x002a, 0x0063, 0x0074, 0x0077, 0x007b, 0x0086,
+ 0x008e, 0x007c, 0x0062, 0x006a, 0x0090, 0x00bd,
+ 0x00e6, 0x0105, 0x011d, 0x0136, 0x013c, 0x0130,
+ 0x013e, 0x0166, 0x018e, 0x01b5, 0x01cc, 0x01a8,
+ 0x0159, 0x010a, 0x00a5, 0x0024, 0xffbc, 0xff79,
+ 0xff5b, 0xff71, 0xff9e, 0xffd0, 0x000f, 0x002f,
+ 0x0017, 0xfff9, 0xffce, 0xff8e, 0xff5d, 0xff33,
+ 0xff16, 0xff1d, 0xff1c, 0xff1b, 0xff49, 0xff72,
+ 0xff86, 0xffba, 0xfff9, 0x002d, 0x0068, 0x00a0,
+ 0x00e4, 0x0151, 0x01da, 0x0269, 0x02e4, 0x033f,
+ 0x0392, 0x03d2, 0x0402, 0x0456, 0x04c2, 0x050a,
+ 0x0518, 0x04f2, 0x04aa, 0x0455, 0x03f4, 0x0396,
+ 0x034f, 0x0324, 0x0319, 0x0330, 0x0363, 0x03aa,
+ 0x03f6, 0x0441, 0x0492, 0x04e8, 0x054a, 0x05c4,
+ 0x0638, 0x068d, 0x06bf, 0x06d1, 0x06dc, 0x06f7,
+ 0x0713, 0x0726, 0x072b, 0x0711, 0x06ed, 0x06c9,
+ 0x068a, 0x0643, 0x060c, 0x05e7, 0x05ee, 0x0607,
+ 0x05fc, 0x05d9, 0x05a0, 0x054f, 0x0512, 0x04df,
+ 0x04aa, 0x0491, 0x048a, 0x0498, 0x04ab, 0x0481,
+ 0x043f, 0x0416, 0x03dc, 0x03a8, 0x038f, 0x035c,
+ 0x0327, 0x0310, 0x02fb, 0x02eb, 0x02d7, 0x02a6,
+ 0x0282, 0x0275, 0x0261, 0x0243, 0x0213, 0x01dc,
+ 0x01b1, 0x0178, 0x0135, 0x0107, 0x00e7, 0x00cf,
+ 0x00d2, 0x00ee, 0x010c, 0x0124, 0x0137, 0x0138,
+ 0x012f, 0x0134, 0x0147, 0x0169, 0x019b, 0x01be,
+ 0x01c0, 0x01be, 0x01bf, 0x01ae, 0x0195, 0x018e,
+ 0x0191, 0x0182, 0x0168, 0x014d, 0x012a, 0x0106,
+ 0x00f0, 0x00e9, 0x00de, 0x00a8, 0x0060, 0x002e,
+ 0x0000, 0xffe3, 0xffed, 0xffec, 0xffd6, 0xffb4,
+ 0xff7c, 0xff48, 0xff15, 0xfeeb, 0xfef7, 0xff09,
+ 0xff03, 0xff1c, 0xff4a, 0xff91, 0x0010, 0x007b,
+ 0x00b1, 0x00e6, 0x011a, 0x0142, 0x015f, 0x0176,
+ 0x01b6, 0x01fe, 0x022b, 0x0284, 0x02fa, 0x034a,
+ 0x0396, 0x03eb, 0x0419, 0x042b, 0x0442, 0x044b,
+ 0x043e, 0x0434, 0x0430, 0x041d, 0x041f, 0x0453,
+ 0x049f, 0x04f2, 0x052d, 0x0532, 0x0536, 0x055c,
+ 0x058e, 0x05c6, 0x0601, 0x064b, 0x06c1, 0x0746,
+ 0x07bb, 0x0834, 0x08b4, 0x092b, 0x0996, 0x0a06,
+ 0x0a7a, 0x0ac0, 0x0ae2, 0x0b0d, 0x0b25, 0x0b17,
+ 0x0ae8, 0x0a97, 0x0a4d, 0x0a18, 0x09d8, 0x099b,
+ 0x0969, 0x0932, 0x08fa, 0x08b0, 0x084f, 0x07fd,
+ 0x07c0, 0x0790, 0x0773, 0x077c, 0x07b1, 0x07ec,
+ 0x0810, 0x081f, 0x0811, 0x07f2, 0x07d3, 0x07ac,
+ 0x077e, 0x074f, 0x072d, 0x0729, 0x073a, 0x0767,
+ 0x07ad, 0x07d4, 0x07f3, 0x082b, 0x084d, 0x086a,
+ 0x089e, 0x08c5, 0x08ea, 0x090c, 0x0919, 0x0930,
+ 0x0934, 0x0919, 0x090b, 0x08f2, 0x08d6, 0x08dd,
+ 0x08e5, 0x08f5, 0x0913, 0x090c, 0x08e8, 0x08c3,
+ 0x088d, 0x0841, 0x07c6, 0x0726, 0x068a, 0x05ea,
+ 0x055e, 0x04f8, 0x0487, 0x0400, 0x0354, 0x0276,
+ 0x01a0, 0x00dc, 0x001d, 0xff83, 0xfef9, 0xfe8b,
+ 0xfe4b, 0xfde1, 0xfd49, 0xfccc, 0xfc51, 0xfbbe,
+ 0xfb25, 0xfa94, 0xfa17, 0xf98d, 0xf8f5, 0xf882,
+ 0xf811, 0xf789, 0xf728, 0xf6e6, 0xf6a8, 0xf696,
+ 0xf6ab, 0xf6c5, 0xf6ef, 0xf72e, 0xf775, 0xf7b9,
+ 0xf801, 0xf84f, 0xf89a, 0xf8cd, 0xf8eb, 0xf916,
+ 0xf944, 0xf935, 0xf8fe, 0xf8d8, 0xf8ae, 0xf889,
+ 0xf87b, 0xf851, 0xf7ff, 0xf792, 0xf700, 0xf670,
+ 0xf604, 0xf5b9, 0xf5a4, 0xf5a9, 0xf588, 0xf54a,
+ 0xf500, 0xf4b0, 0xf479, 0xf469, 0xf480, 0xf4ba,
+ 0xf50c, 0xf55b, 0xf58c, 0xf597, 0xf584, 0xf575,
+ 0xf58a, 0xf5be, 0xf60f, 0xf68e, 0xf711, 0xf777,
+ 0xf7ce, 0xf811, 0xf864, 0xf901, 0xf9d9, 0xfaed,
+ 0xfc3a, 0xfd74, 0xfe67, 0xfef4, 0xff0d, 0xff0b,
+ 0xff18, 0xff06, 0xff19, 0xff84, 0xfff9, 0x006f,
+ 0x00ea, 0x0118, 0x0107, 0x00f2, 0x00b8, 0x006a,
+ 0x0060, 0x0091, 0x00b6, 0x00cd, 0x00e5, 0x00d0,
+ 0x0078, 0x0024, 0x000b, 0x0010, 0x001c, 0x002c,
+ 0x0018, 0xffd9, 0xff88, 0xff1f, 0xfe94, 0xfe19,
+ 0xfdf8, 0xfe4d, 0xfef7, 0xffd5, 0x00c2, 0x017c,
+ 0x01ef, 0x023a, 0x0262, 0x0294, 0x02f1, 0x0356,
+ 0x03d6, 0x047f, 0x0511, 0x059a, 0x0618, 0x064e,
+ 0x0678, 0x06cd, 0x070e, 0x073f, 0x0786, 0x07a7,
+ 0x077f, 0x072b, 0x06c1, 0x0635, 0x058c, 0x0504,
+ 0x04ad, 0x0464, 0x043d, 0x0423, 0x03da, 0x036f,
+ 0x02ec, 0x0244, 0x0195, 0x00e1, 0x0033, 0xffa6,
+ 0xff1f, 0xfe92, 0xfe0c, 0xfd9e, 0xfd65, 0xfd35,
+ 0xfcca, 0xfc4f, 0xfbd8, 0xfb48, 0xfab9, 0xfa2d,
+ 0xf99f, 0xf93c, 0xf8f7, 0xf8ab, 0xf86f, 0xf84d,
+ 0xf82e, 0xf80f, 0xf800, 0xf7f8, 0xf7db, 0xf7a8,
+ 0xf775, 0xf74c, 0xf744, 0xf75f, 0xf79b, 0xf811,
+ 0xf8a0, 0xf919, 0xf98e, 0xf9f4, 0xfa3e, 0xfaa4,
+ 0xfb1c, 0xfb6c, 0xfbb0, 0xfbfd, 0xfc3d, 0xfc83,
+ 0xfcd5, 0xfd1e, 0xfd67, 0xfdb8, 0xfdfa, 0xfe12,
+ 0xfe03, 0xfde1, 0xfd9f, 0xfd42, 0xfd00, 0xfce3,
+ 0xfcc7, 0xfca8, 0xfc9c, 0xfcad, 0xfcd6, 0xfcf2,
+ 0xfcf6, 0xfd15, 0xfd4c, 0xfd5a, 0xfd4b, 0xfd45,
+ 0xfd0e, 0xfca4, 0xfc49, 0xfbe8, 0xfb6e, 0xfb1c,
+ 0xfaf3, 0xfac3, 0xfa84, 0xfa50, 0xfa4f, 0xfa68,
+ 0xfa53, 0xfa2a, 0xfa13, 0xf9f3, 0xf9ef, 0xfa14,
+ 0xfa1e, 0xfa21, 0xfa3b, 0xfa39, 0xfa21, 0xfa05,
+ 0xf9ce, 0xf984, 0xf92d, 0xf8cb, 0xf87c, 0xf83b,
+ 0xf7f2, 0xf7ad, 0xf76b, 0xf725, 0xf6db, 0xf68e,
+ 0xf644, 0xf5f6, 0xf5a9, 0xf565, 0xf513, 0xf4bf,
+ 0xf48d, 0xf469, 0xf453, 0xf440, 0xf3f2, 0xf389,
+ 0xf334, 0xf2c5, 0xf246, 0xf1f5, 0xf1c3, 0xf1a1,
+ 0xf194, 0xf18a, 0xf17b, 0xf156, 0xf118, 0xf0e3,
+ 0xf0bd, 0xf099, 0xf079, 0xf05a, 0xf046, 0xf03b,
+ 0xf025, 0xf01a, 0xf036, 0xf05f, 0xf07d, 0xf09e,
+ 0xf0dd, 0xf132, 0xf189, 0xf1d1, 0xf1fa, 0xf219,
+ 0xf253, 0xf292, 0xf2b4, 0xf2c6, 0xf2e1, 0xf310,
+ 0xf343, 0xf36b, 0xf3af, 0xf41b, 0xf48b, 0xf4fe,
+ 0xf58a, 0xf624, 0xf6aa, 0xf714, 0xf79b, 0xf84e,
+ 0xf90b, 0xf9eb, 0xfade, 0xfb9c, 0xfc39, 0xfcc3,
+ 0xfd11, 0xfd54, 0xfdb4, 0xfe10, 0xfe62, 0xfea8,
+ 0xfedd, 0xff0e, 0xff30, 0xff48, 0xff67, 0xff7f,
+ 0xff99, 0xffbc, 0xffe3, 0x0021, 0x0071, 0x00b2,
+ 0x00f1, 0x012d, 0x0163, 0x01b1, 0x0216, 0x0279,
+ 0x02d3, 0x0327, 0x0375, 0x03bc, 0x0406, 0x046b,
+ 0x04ed, 0x057b, 0x0606, 0x0679, 0x06d0, 0x070e,
+ 0x073a, 0x0768, 0x078a, 0x0794, 0x07ac, 0x07d2,
+ 0x07ec, 0x07f7, 0x07d4, 0x076b, 0x06df, 0x064a,
+ 0x05a4, 0x050b, 0x04a8, 0x0472, 0x043f, 0x040e,
+ 0x03e4, 0x03af, 0x037f, 0x035c, 0x0331, 0x0307,
+ 0x02de, 0x02aa, 0x028a, 0x027b, 0x025e, 0x023a,
+ 0x020d, 0x01d0, 0x01a4, 0x0193, 0x0181, 0x0165,
+ 0x0146, 0x011d, 0x00dd, 0x0093, 0x005c, 0x003a,
+ 0x001a, 0xfff4, 0xffd3, 0xffdb, 0x000d, 0x0059,
+ 0x00b1, 0x0101, 0x0144, 0x0173, 0x015e, 0x011a,
+ 0x00da, 0x009b, 0x0074, 0x007a, 0x007e, 0x007f,
+ 0x0088, 0x0067, 0x002b, 0xfff3, 0xffad, 0xff7e,
+ 0xff7c, 0xff96, 0xffda, 0x0032, 0x007b, 0x00c1,
+ 0x00f4, 0x00fe, 0x010b, 0x0133, 0x0159, 0x0175,
+ 0x018f, 0x01a0, 0x0193, 0x0166, 0x0129, 0x00e6,
+ 0x00a5, 0x006d, 0x003d, 0x001c, 0x000e, 0x0003,
+ 0xfff8, 0xffe7, 0xffc5, 0xffa9, 0xffa8, 0xffbc,
+ 0xfff3, 0x004e, 0x009e, 0x00d3, 0x0109, 0x0128,
+ 0x0133, 0x0169, 0x01b3, 0x01cf, 0x01dd, 0x01ee,
+ 0x01ed, 0x01fa, 0x020f, 0x020f, 0x021c, 0x023b,
+ 0x025d, 0x02a3, 0x02ec, 0x0308, 0x031a, 0x031f,
+ 0x0304, 0x02ee, 0x02e6, 0x02f4, 0x033e, 0x03b4,
+ 0x0422, 0x0478, 0x04b2, 0x04ce, 0x04d1, 0x04db,
+ 0x04ee, 0x04e0, 0x04c9, 0x04dc, 0x050b, 0x0554,
+ 0x05ba, 0x0606, 0x0629, 0x0641, 0x0640, 0x0628,
+ 0x0623, 0x063c, 0x0658, 0x065c, 0x065c, 0x0662,
+ 0x0640, 0x060a, 0x05fd, 0x05f8, 0x05d5, 0x05ba,
+ 0x05ac, 0x059f, 0x05ab, 0x05ce, 0x05f8, 0x0618,
+ 0x060d, 0x05dc, 0x05ad, 0x0578, 0x051a, 0x04aa,
+ 0x0459, 0x041b, 0x03d9, 0x0393, 0x034b, 0x0307,
+ 0x02af, 0x0229, 0x01a9, 0x0148, 0x00ec, 0x00b4,
+ 0x00a5, 0x0092, 0x008f, 0x0096, 0x007f, 0x0076,
+ 0x008d, 0x00ab, 0x00f1, 0x0168, 0x01ee, 0x027c,
+ 0x02fa, 0x0355, 0x0391, 0x039f, 0x0381, 0x0351,
+ 0x0324, 0x0318, 0x031e, 0x0330, 0x0360, 0x037b,
+ 0x035b, 0x0331, 0x02fa, 0x02b5, 0x0289, 0x025c,
+ 0x0227, 0x0211, 0x01f2, 0x01a2, 0x013a, 0x00c6,
+ 0x005f, 0x0019, 0xffd5, 0xff94, 0xff7d, 0xff7f,
+ 0xff77, 0xff5d, 0xff43, 0xff34, 0xff15, 0xfee6,
+ 0xfeda, 0xfeef, 0xff02, 0xff27, 0xff6c, 0xffb3,
+ 0xffe4, 0x0010, 0x005a, 0x00b6, 0x011e, 0x019f,
+ 0x0210, 0x0246, 0x0270, 0x028f, 0x026a, 0x0220,
+ 0x01cf, 0x015c, 0x00fc, 0x00d1, 0x00a7, 0x0093,
+ 0x00b1, 0x00d8, 0x0114, 0x016b, 0x01b4, 0x020d,
+ 0x0287, 0x02e7, 0x0340, 0x03b3, 0x040c, 0x0448,
+ 0x049a, 0x04f9, 0x055d, 0x05cf, 0x0639, 0x06a6,
+ 0x0727, 0x0787, 0x07bd, 0x07fc, 0x0835, 0x084d,
+ 0x085e, 0x0870, 0x0874, 0x0880, 0x08c5, 0x0937,
+ 0x0984, 0x09a7, 0x09e7, 0x0a17, 0x0a00, 0x09eb,
+ 0x09df, 0x09b7, 0x099a, 0x096a, 0x0902, 0x08a9,
+ 0x085e, 0x0807, 0x07de, 0x07da, 0x07d7, 0x07ec,
+ 0x0811, 0x084b, 0x0896, 0x08ac, 0x0899, 0x0885,
+ 0x083e, 0x07e2, 0x07b5, 0x078c, 0x0762, 0x0765,
+ 0x077a, 0x0792, 0x07c0, 0x07f1, 0x0816, 0x0838,
+ 0x0857, 0x086c, 0x0886, 0x08ae, 0x08c3, 0x08c9,
+ 0x08f6, 0x0936, 0x096c, 0x09c2, 0x0a34, 0x0aa9,
+ 0x0b27, 0x0b70, 0x0b5d, 0x0b22, 0x0ac5, 0x0a5b,
+ 0x0a25, 0x0a06, 0x09db, 0x09ca, 0x09cd, 0x09c1,
+ 0x098b, 0x091a, 0x08a6, 0x0841, 0x07bd, 0x073c,
+ 0x06ce, 0x0644, 0x05b3, 0x0524, 0x0477, 0x03d7,
+ 0x0350, 0x02af, 0x020d, 0x0169, 0x0096, 0xffae,
+ 0xfed8, 0xfe14, 0xfd70, 0xfcfd, 0xfcb1, 0xfc6b,
+ 0xfc2e, 0xfc1e, 0xfc16, 0xfbe6, 0xfbb9, 0xfb8f,
+ 0xfb3d, 0xfad7, 0xfa6d, 0xf9fb, 0xf990, 0xf921,
+ 0xf8ba, 0xf873, 0xf82a, 0xf7ec, 0xf7e6, 0xf7ee,
+ 0xf7eb, 0xf7fc, 0xf802, 0xf7f2, 0xf7ed, 0xf7d8,
+ 0xf7a4, 0xf77a, 0xf75d, 0xf73d, 0xf736, 0xf73b,
+ 0xf72b, 0xf72e, 0xf73d, 0xf6fe, 0xf67f, 0xf60a,
+ 0xf57f, 0xf4d7, 0xf43b, 0xf39d, 0xf31c, 0xf2ec,
+ 0xf2ea, 0xf302, 0xf32b, 0xf33e, 0xf342, 0xf33f,
+ 0xf325, 0xf31f, 0xf347, 0xf3a8, 0xf46a, 0xf559,
+ 0xf612, 0xf68d, 0xf6cf, 0xf6e3, 0xf700, 0xf741,
+ 0xf7ad, 0xf85b, 0xf931, 0xf9f9, 0xfa8d, 0xfae3,
+ 0xfb07, 0xfb10, 0xfb24, 0xfb63, 0xfbe2, 0xfca7,
+ 0xfd82, 0xfe40, 0xfee7, 0xff67, 0xffa9, 0xffc1,
+ 0xffb5, 0xff8f, 0xff7c, 0xff68, 0xff29, 0xfecb,
+ 0xfe64, 0xfdfe, 0xfdae, 0xfd8b, 0xfd9e, 0xfdc5,
+ 0xfded, 0xfe1a, 0xfe2a, 0xfe11, 0xfdf8, 0xfdd9,
+ 0xfdb1, 0xfdb3, 0xfdf6, 0xfe72, 0xff29, 0x0006,
+ 0x00e4, 0x019d, 0x0223, 0x0289, 0x02d0, 0x02fa,
+ 0x0332, 0x0386, 0x03cf, 0x0404, 0x0433, 0x0451,
+ 0x0470, 0x04ae, 0x050b, 0x0585, 0x060f, 0x066e,
+ 0x0684, 0x0664, 0x0605, 0x0572, 0x04dd, 0x0464,
+ 0x040d, 0x03d2, 0x03b0, 0x03a8, 0x039b, 0x0372,
+ 0x033f, 0x02f0, 0x027a, 0x01ff, 0x0181, 0x00fe,
+ 0x008e, 0x003d, 0x001c, 0x001a, 0x0016, 0x0027,
+ 0x0032, 0x0014, 0xfff1, 0xffa8, 0xff1a, 0xfe86,
+ 0xfde0, 0xfd0c, 0xfc3a, 0xfb66, 0xfa92, 0xf9e1,
+ 0xf943, 0xf8db, 0xf8c4, 0xf8cb, 0xf8e7, 0xf911,
+ 0xf92f, 0xf961, 0xf99f, 0xf9db, 0xfa2d, 0xfa79,
+ 0xfac1, 0xfb0b, 0xfb27, 0xfb3c, 0xfb61, 0xfb58,
+ 0xfb56, 0xfb84, 0xfb8c, 0xfb6e, 0xfb47, 0xfb02,
+ 0xfabe, 0xfa7b, 0xfa2f, 0xfa18, 0xfa2b, 0xfa39,
+ 0xfa6d, 0xfacd, 0xfb20, 0xfb59, 0xfb83, 0xfba5,
+ 0xfbc2, 0xfbd6, 0xfbdb, 0xfbde, 0xfbe5, 0xfbeb,
+ 0xfbfe, 0xfc26, 0xfc39, 0xfc2f, 0xfc2a, 0xfc11,
+ 0xfbdb, 0xfbad, 0xfb7b, 0xfb45, 0xfb29, 0xfb14,
+ 0xfaf9, 0xfb03, 0xfb2c, 0xfb4c, 0xfb5a, 0xfb55,
+ 0xfb38, 0xfb23, 0xfb29, 0xfb32, 0xfb3c, 0xfb5e,
+ 0xfb88, 0xfbaf, 0xfbd1, 0xfbc8, 0xfb92, 0xfb4e,
+ 0xfb06, 0xfae8, 0xfafe, 0xfb15, 0xfb3c, 0xfb67,
+ 0xfb48, 0xfad2, 0xfa22, 0xf94b, 0xf87c, 0xf7c6,
+ 0xf722, 0xf6a1, 0xf640, 0xf5e6, 0xf587, 0xf51e,
+ 0xf4b1, 0xf43b, 0xf3be, 0xf354, 0xf307, 0xf2d0,
+ 0xf2a3, 0xf284, 0xf276, 0xf258, 0xf218, 0xf1c8,
+ 0xf15e, 0xf0e8, 0xf092, 0xf048, 0xf006, 0xefec,
+ 0xefe4, 0xeff9, 0xf038, 0xf074, 0xf0ba, 0xf103,
+ 0xf115, 0xf103, 0xf0cf, 0xf073, 0xf037, 0xf018,
+ 0xefe0, 0xefb5, 0xefaf, 0xefb3, 0xefb5, 0xefbc,
+ 0xefdb, 0xeff1, 0xefe7, 0xeff9, 0xf020, 0xf029,
+ 0xf03f, 0xf07c, 0xf0c7, 0xf111, 0xf14b, 0xf186,
+ 0xf1be, 0xf1f0, 0xf256, 0xf2de, 0xf367, 0xf41f,
+ 0xf4c8, 0xf532, 0xf5b5, 0xf648, 0xf6d2, 0xf778,
+ 0xf81a, 0xf8ca, 0xf9ab, 0xfa72, 0xfb18, 0xfba7,
+ 0xfbdd, 0xfbe5, 0xfbe7, 0xfbc5, 0xfbc5, 0xfc0d,
+ 0xfc5d, 0xfcbf, 0xfd3e, 0xfdb0, 0xfe04, 0xfe2a,
+ 0xfe2b, 0xfe28, 0xfe20, 0xfe3a, 0xfe98, 0xff28,
+ 0xffd6, 0x0079, 0x00f6, 0x0164, 0x01c0, 0x01f7,
+ 0x0238, 0x029d, 0x030e, 0x038d, 0x0432, 0x04d0,
+ 0x051b, 0x052a, 0x0530, 0x051d, 0x04fb, 0x04eb,
+ 0x04c8, 0x049d, 0x049d, 0x04a0, 0x048a, 0x048e,
+ 0x04a3, 0x04a4, 0x04ad, 0x04b6, 0x0496, 0x0470,
+ 0x045d, 0x0434, 0x0407, 0x03eb, 0x03ac, 0x0350,
+ 0x030b, 0x02ba, 0x023d, 0x01bb, 0x0151, 0x0108,
+ 0x00cc, 0x008f, 0x005e, 0x0036, 0x001c, 0x001f,
+ 0x000a, 0xffd7, 0xffd8, 0x000b, 0x003b, 0x0078,
+ 0x00ce, 0x0105, 0x010f, 0x0107, 0x00f9, 0x00e7,
+ 0x00d6, 0x00ba, 0x0097, 0x0082, 0x006b, 0x0047,
+ 0x002f, 0x0019, 0xfff0, 0xffb8, 0xff7c, 0xff4c,
+ 0xff2b, 0xff13, 0xff0c, 0xfefc, 0xfece, 0xfead,
+ 0xfe9d, 0xfe97, 0xfecd, 0xff30, 0xff81, 0xffd7,
+ 0x002a, 0x0055, 0x0079, 0x00ac, 0x00d5, 0x00f8,
+ 0x0117, 0x0120, 0x011c, 0x0107, 0x00cd, 0x00a8,
+ 0x00b9, 0x00c1, 0x00b5, 0x00b7, 0x0093, 0x0046,
+ 0x0014, 0xfff0, 0xffc5, 0xffbc, 0xffcb, 0xffcd,
+ 0xffb8, 0xff8a, 0xff5c, 0xff32, 0xff0e, 0xff15,
+ 0xff38, 0xff5c, 0xffb0, 0x0027, 0x0083, 0x00b7,
+ 0x00b5, 0x0083, 0x005d, 0x0049, 0x003f, 0x0067,
+ 0x00c3, 0x012a, 0x0191, 0x01f6, 0x023f, 0x0263,
+ 0x028b, 0x02cd, 0x030d, 0x034c, 0x039b, 0x03ee,
+ 0x0425, 0x0438, 0x0435, 0x0418, 0x03eb, 0x03d9,
+ 0x03ef, 0x0425, 0x0483, 0x04d4, 0x04fa, 0x051c,
+ 0x0520, 0x0507, 0x050f, 0x0516, 0x0505, 0x0511,
+ 0x0521, 0x0537, 0x057f, 0x05c4, 0x05ec, 0x060b,
+ 0x05ff, 0x05dc, 0x05d1, 0x05c2, 0x05c5, 0x05fc,
+ 0x0645, 0x068c, 0x06c7, 0x06e1, 0x06e3, 0x06cc,
+ 0x068e, 0x0638, 0x05ea, 0x05a9, 0x056d, 0x0538,
+ 0x04f4, 0x0483, 0x03fc, 0x0369, 0x02ba, 0x021d,
+ 0x01ad, 0x015b, 0x0148, 0x016b, 0x017c, 0x017a,
+ 0x016a, 0x0150, 0x0163, 0x0193, 0x01b8, 0x01fd,
+ 0x025f, 0x02ac, 0x02f5, 0x0334, 0x0345, 0x0348,
+ 0x035e, 0x0378, 0x0392, 0x03bc, 0x03fe, 0x0449,
+ 0x048b, 0x04a6, 0x048a, 0x0465, 0x0451, 0x0423,
+ 0x03e4, 0x03cd, 0x03bd, 0x038d, 0x0357, 0x0312,
+ 0x02a3, 0x0234, 0x01d6, 0x0177, 0x0121, 0x00d7,
+ 0x0091, 0x0056, 0x0025, 0x000b, 0x0015, 0x0024,
+ 0x0026, 0x0027, 0x001f, 0x0008, 0xfff1, 0xffdc,
+ 0xffc8, 0xffba, 0xffb0, 0xff9d, 0xff88, 0xff96,
+ 0xffb4, 0xffb6, 0xffbc, 0xffc3, 0xffa2, 0xff7e,
+ 0xff61, 0xff3e, 0xff3f, 0xff4b, 0xff48, 0xff72,
+ 0xffaa, 0xffc1, 0xffee, 0x0021, 0x0039, 0x0049,
+ 0x004b, 0x0061, 0x00a3, 0x00d9, 0x010c, 0x0164,
+ 0x01b9, 0x0201, 0x024d, 0x028d, 0x02c0, 0x02f2,
+ 0x032c, 0x0369, 0x03a0, 0x03f3, 0x0458, 0x04b3,
+ 0x0539, 0x05f0, 0x069c, 0x072d, 0x0791, 0x07c0,
+ 0x07bf, 0x0778, 0x0730, 0x0728, 0x072c, 0x0763,
+ 0x07fd, 0x08ad, 0x0954, 0x09db, 0x0a03, 0x0a06,
+ 0x0a18, 0x0a2d, 0x0a55, 0x0a85, 0x0ab4, 0x0ad7,
+ 0x0ab4, 0x0a64, 0x0a24, 0x09cf, 0x0973, 0x0935,
+ 0x08fa, 0x08cc, 0x08b3, 0x089b, 0x0884, 0x084d,
+ 0x07fb, 0x07cf, 0x07ba, 0x07b1, 0x07e4, 0x0847,
+ 0x08aa, 0x08ff, 0x0938, 0x0938, 0x08ff, 0x08ca,
+ 0x08cd, 0x08f5, 0x0932, 0x0967, 0x096b, 0x094a,
+ 0x0920, 0x08f4, 0x08d9, 0x08cd, 0x08d9, 0x0905,
+ 0x0932, 0x0966, 0x0993, 0x0973, 0x093a, 0x093f,
+ 0x0951, 0x0959, 0x0976, 0x09a3, 0x09cc, 0x09bd,
+ 0x096a, 0x091b, 0x08e3, 0x08b3, 0x089a, 0x0880,
+ 0x0862, 0x0847, 0x080b, 0x07a8, 0x0731, 0x06a7,
+ 0x0629, 0x05c3, 0x056d, 0x0531, 0x04ea, 0x0483,
+ 0x041c, 0x03af, 0x0334, 0x02c2, 0x025b, 0x0204,
+ 0x01c3, 0x0180, 0x012d, 0x00bf, 0x0028, 0xff73,
+ 0xfeb7, 0xfe04, 0xfd5d, 0xfcda, 0xfc96, 0xfc71,
+ 0xfc55, 0xfc5a, 0xfc5c, 0xfc41, 0xfc41, 0xfc68,
+ 0xfc9b, 0xfcde, 0xfd21, 0xfd57, 0xfd85, 0xfd8e,
+ 0xfd5e, 0xfd11, 0xfcce, 0xfca1, 0xfc72, 0xfc41,
+ 0xfc04, 0xfb87, 0xfaf5, 0xfa89, 0xfa11, 0xf98f,
+ 0xf935, 0xf8db, 0xf883, 0xf84f, 0xf816, 0xf7d4,
+ 0xf7a4, 0xf76a, 0xf749, 0xf774, 0xf7c5, 0xf811,
+ 0xf849, 0xf857, 0xf83b, 0xf7ef, 0xf77b, 0xf703,
+ 0xf696, 0xf642, 0xf630, 0xf677, 0xf71a, 0xf7f9,
+ 0xf8c5, 0xf950, 0xf98d, 0xf971, 0xf925, 0xf8e7,
+ 0xf8cb, 0xf8e4, 0xf940, 0xf9c9, 0xfa61, 0xfaf0,
+ 0xfb6d, 0xfbd5, 0xfc20, 0xfc54, 0xfc74, 0xfc68,
+ 0xfc33, 0xfbfb, 0xfbd2, 0xfbc0, 0xfbc9, 0xfbf3,
+ 0xfc4c, 0xfcc8, 0xfd59, 0xfdff, 0xfe88, 0xfebb,
+ 0xfeae, 0xfe84, 0xfe3c, 0xfdc5, 0xfd37, 0xfcd4,
+ 0xfcb6, 0xfcaa, 0xfcae, 0xfceb, 0xfd4e, 0xfd92,
+ 0xfda2, 0xfda2, 0xfd99, 0xfd6c, 0xfd2d, 0xfcf9,
+ 0xfccd, 0xfcc7, 0xfcfe, 0xfd6b, 0xfe0a, 0xfeb5,
+ 0xff40, 0xffbc, 0x001a, 0x002e, 0x0001, 0xffa2,
+ 0xff0f, 0xfe73, 0xfe02, 0xfda9, 0xfd4c, 0xfd07,
+ 0xfced, 0xfcef, 0xfd1e, 0xfd6d, 0xfda0, 0xfdc5,
+ 0xfdee, 0xfdf3, 0xfdde, 0xfdc5, 0xfd8a, 0xfd49,
+ 0xfd38, 0xfd4f, 0xfd86, 0xfdd7, 0xfe23, 0xfe52,
+ 0xfe4f, 0xfe24, 0xfdf0, 0xfdba, 0xfd76, 0xfd1b,
+ 0xfcb9, 0xfc7a, 0xfc4d, 0xfc1e, 0xfc27, 0xfc7d,
+ 0xfcef, 0xfd5c, 0xfdbf, 0xfe17, 0xfe45, 0xfe2c,
+ 0xfdec, 0xfda4, 0xfd63, 0xfd56, 0xfd76, 0xfda2,
+ 0xfdea, 0xfe2f, 0xfe32, 0xfdf6, 0xfd90, 0xfd21,
+ 0xfcce, 0xfc93, 0xfc77, 0xfc83, 0xfc9d, 0xfcb1,
+ 0xfcb9, 0xfcb9, 0xfcb6, 0xfcb0, 0xfcbe, 0xfced,
+ 0xfd28, 0xfd76, 0xfdcb, 0xfde7, 0xfdc1, 0xfd7d,
+ 0xfd47, 0xfd40, 0xfd5a, 0xfd93, 0xfe02, 0xfe83,
+ 0xfef5, 0xff48, 0xff50, 0xff2c, 0xff15, 0xff09,
+ 0xff14, 0xff23, 0xff06, 0xfed9, 0xfeb7, 0xfe9f,
+ 0xfea0, 0xfe9f, 0xfead, 0xfeee, 0xff30, 0xff69,
+ 0xffb1, 0xffd6, 0xffce, 0xffa8, 0xff44, 0xfee7,
+ 0xfed3, 0xfecb, 0xfebb, 0xfeb7, 0xfeb3, 0xfeaa,
+ 0xfe78, 0xfe1a, 0xfdd9, 0xfdb6, 0xfd81, 0xfd56,
+ 0xfd3e, 0xfd11, 0xfcc2, 0xfc4e, 0xfbc4, 0xfb39,
+ 0xfaab, 0xfa2d, 0xf9d2, 0xf96f, 0xf8e2, 0xf844,
+ 0xf78e, 0xf6a2, 0xf59d, 0xf4a3, 0xf3d2, 0xf355,
+ 0xf325, 0xf332, 0xf379, 0xf3c1, 0xf3ec, 0xf406,
+ 0xf3df, 0xf380, 0xf334, 0xf2e5, 0xf298, 0xf291,
+ 0xf2b0, 0xf2cd, 0xf2f8, 0xf30d, 0xf2fa, 0xf2d5,
+ 0xf2a4, 0xf28f, 0xf2a3, 0xf2bf, 0xf2e5, 0xf304,
+ 0xf2ed, 0xf2ad, 0xf24d, 0xf1d0, 0xf159, 0xf0f9,
+ 0xf0b1, 0xf098, 0xf0b2, 0xf0db, 0xf0eb, 0xf0eb,
+ 0xf0e7, 0xf0cd, 0xf0ab, 0xf0af, 0xf0da, 0xf122,
+ 0xf18e, 0xf219, 0xf2be, 0xf36a, 0xf40d, 0xf4ad,
+ 0xf549, 0xf5eb, 0xf692, 0xf722, 0xf7a0, 0xf80c,
+ 0xf85c, 0xf8bf, 0xf932, 0xf99d, 0xfa2b, 0xfad1,
+ 0xfb45, 0xfb7c, 0xfb75, 0xfb4c, 0xfb35, 0xfb1d,
+ 0xfb0f, 0xfb3b, 0xfb89, 0xfc02, 0xfc9c, 0xfced,
+ 0xfcfc, 0xfcfa, 0xfcb9, 0xfc5b, 0xfc34, 0xfc31,
+ 0xfc48, 0xfc85, 0xfcc2, 0xfcd7, 0xfcb6, 0xfc73,
+ 0xfc29, 0xfbe0, 0xfbc1, 0xfbf1, 0xfc66, 0xfd21,
+ 0xfdf8, 0xfeb9, 0xff64, 0xffc4, 0xffce, 0xffdc,
+ 0xffe8, 0xffe9, 0x002c, 0x007e, 0x00a8, 0x00f1,
+ 0x0145, 0x017a, 0x01c0, 0x01f2, 0x01fa, 0x0216,
+ 0x022e, 0x021d, 0x020d, 0x01fe, 0x01f4, 0x020a,
+ 0x0235, 0x0256, 0x0260, 0x025e, 0x0253, 0x021b,
+ 0x01bd, 0x015b, 0x00e9, 0x007c, 0x003d, 0x0021,
+ 0x0037, 0x0079, 0x00a7, 0x00af, 0x009e, 0x0077,
+ 0x0052, 0x0038, 0x002e, 0x0040, 0x006c, 0x009f,
+ 0x00b1, 0x0094, 0x006e, 0x003d, 0xfff2, 0xffbe,
+ 0xffbc, 0xffe5, 0x003a, 0x0093, 0x00d4, 0x00f6,
+ 0x00d6, 0x008f, 0x005b, 0x0031, 0xffff, 0xffd2,
+ 0xffb2, 0xffaa, 0xffd5, 0x003c, 0x00ba, 0x0118,
+ 0x014f, 0x0168, 0x017e, 0x01b3, 0x01dc, 0x01e0,
+ 0x01ec, 0x01f1, 0x01ee, 0x020a, 0x0230, 0x0269,
+ 0x02c2, 0x030f, 0x0348, 0x0366, 0x0365, 0x0379,
+ 0x0391, 0x0375, 0x0332, 0x02d4, 0x028b, 0x026b,
+ 0x022c, 0x01e4, 0x01cc, 0x01a4, 0x0155, 0x00ee,
+ 0x007a, 0x0041, 0x005c, 0x0093, 0x00c5, 0x00fa,
+ 0x0169, 0x01e7, 0x0225, 0x0251, 0x024d, 0x01cf,
+ 0x0151, 0x0126, 0x0141, 0x0180, 0x016d, 0x011a,
+ 0x010b, 0x012e, 0x0171, 0x01af, 0x018b, 0x0151,
+ 0x0126, 0x00dc, 0x00bf, 0x00b7, 0x0077, 0x0048,
+ 0x005b, 0x00bd, 0x0131, 0x0130, 0x00dc, 0x006c,
+ 0xffd6, 0xff63, 0xff1e, 0xfee9, 0xfed2, 0xfeb9,
+ 0xfec3, 0xfee5, 0xfef4, 0xff7e, 0x0053, 0x0101,
+ 0x0206, 0x02dc, 0x030b, 0x0374, 0x03c3, 0x038c,
+ 0x036b, 0x0342, 0x0353, 0x03b0, 0x0349, 0x0294,
+ 0x024a, 0x020f, 0x0273, 0x0353, 0x03b7, 0x03b1,
+ 0x0302, 0x01fa, 0x0184, 0x00d9, 0x000f, 0x0050,
+ 0x0105, 0x01ff, 0x0358, 0x03f8, 0x03de, 0x0374,
+ 0x02a8, 0x023d, 0x0257, 0x025e, 0x0258, 0x0204,
+ 0x0162, 0x0107, 0x00f9, 0x0112, 0x01a3, 0x032c,
+ 0x04fb, 0x05ca, 0x0643, 0x06e8, 0x06bd, 0x065a,
+ 0x0626, 0x0584, 0x0562, 0x0586, 0x04f2, 0x0482,
+ 0x03cf, 0x0285, 0x0215, 0x01f6, 0x01c1, 0x0236,
+ 0x0287, 0x02f1, 0x03dd, 0x0467, 0x0546, 0x0602,
+ 0x0554, 0x0517, 0x0581, 0x053d, 0x0557, 0x056a,
+ 0x04e1, 0x053d, 0x05d0, 0x0592, 0x04f8, 0x038e,
+ 0x01fd, 0x0158, 0x00f6, 0x00ff, 0x01cf, 0x0292,
+ 0x02d9, 0x02c5, 0x0315, 0x040a, 0x04cf, 0x052b,
+ 0x0484, 0x0286, 0x010a, 0x00d6, 0x015c, 0x02ae,
+ 0x035e, 0x0248, 0x00ca, 0xffdc, 0xff62, 0xff3b,
+ 0xff64, 0xffee, 0x006e, 0x0160, 0x0327, 0x0406,
+ 0x03ca, 0x03af, 0x035a, 0x03a6, 0x0549, 0x0630,
+ 0x0520, 0x021a, 0xfe52, 0xfc95, 0xfd28, 0xfe7a,
+ 0x0005, 0x00ef, 0x00ff, 0x009a, 0xfffa, 0x0022,
+ 0x00af, 0x0131, 0x02ce, 0x0417, 0x0456, 0x056a,
+ 0x0629, 0x05d5, 0x05ee, 0x062c, 0x06ff, 0x081d,
+ 0x07ad, 0x0693, 0x04ba, 0x0207, 0x018f, 0x02e8,
+ 0x04c6, 0x07c7, 0x08ec, 0x07b1, 0x0690, 0x0491,
+ 0x0372, 0x04cb, 0x056d, 0x05ad, 0x05d4, 0x0422,
+ 0x0371, 0x0416, 0x03f6, 0x0529, 0x070a, 0x07ba,
+ 0x0855, 0x07e3, 0x06c5, 0x06e7, 0x06fa, 0x06df,
+ 0x06f6, 0x05e3, 0x0419, 0x0263, 0x01de, 0x035b,
+ 0x047a, 0x04f0, 0x0625, 0x0705, 0x0851, 0x0aa8,
+ 0x0c4d, 0x0cdf, 0x0bab, 0x0998, 0x0918, 0x088d,
+ 0x074b, 0x0654, 0x0475, 0x038b, 0x0495, 0x0544,
+ 0x06de, 0x0824, 0x061f, 0x03fb, 0x0318, 0x02ef,
+ 0x046c, 0x051b, 0x053a, 0x062e, 0x0539, 0x04bc,
+ 0x060a, 0x0533, 0x0566, 0x07dc, 0x07d2, 0x073c,
+ 0x0751, 0x0613, 0x050b, 0x0354, 0x01ec, 0x03dd,
+ 0x0504, 0x045a, 0x04fd, 0x045f, 0x02ac, 0x02cd,
+ 0x037b, 0x0405, 0x0389, 0x0177, 0x0064, 0x00a3,
+ 0x0186, 0x02f7, 0x0327, 0x0240, 0x00fb, 0xff77,
+ 0xffbd, 0x010b, 0x0167, 0x00fe, 0xff62, 0xfedf,
+ 0x0052, 0x0033, 0x0067, 0x017d, 0xfef9, 0xfc01,
+ 0xfb9a, 0xfb5c, 0xfc12, 0xfcab, 0xfcb6, 0xfea9,
+ 0xfe94, 0xfc46, 0xfc96, 0xfc00, 0xf9ea, 0xfa28,
+ 0xf9ef, 0xf935, 0xf982, 0xf80f, 0xf5d7, 0xf42b,
+ 0xf374, 0xf5fd, 0xf866, 0xf808, 0xf78c, 0xf5ef,
+ 0xf3d7, 0xf403, 0xf445, 0xf488, 0xf54e, 0xf474,
+ 0xf49a, 0xf7d5, 0xfb97, 0xfe54, 0xfef1, 0xfe2f,
+ 0xfdcd, 0xfcec, 0xfc4f, 0xfc2d, 0xfa1d, 0xf73c,
+ 0xf58a, 0xf57e, 0xf73a, 0xf871, 0xf8ba, 0xf8fa,
+ 0xf7ca, 0xf742, 0xf8dd, 0xfa20, 0xfb96, 0xfc31,
+ 0xfa70, 0xf9a4, 0xf8b6, 0xf6bb, 0xf7ad, 0xf936,
+ 0xf96d, 0xfa3f, 0xf88d, 0xf5b3, 0xf639, 0xf7e8,
+ 0xfb09, 0xff78, 0x0048, 0xfe9b, 0xfc22, 0xf83b,
+ 0xf72b, 0xf984, 0xfbdf, 0xfe8d, 0x005f, 0x0041,
+ 0xfffc, 0x0035, 0x021a, 0x04cf, 0x05b1, 0x06b5,
+ 0x080f, 0x06e7, 0x04fe, 0x03db, 0x0283, 0x01f5,
+ 0x02bd, 0x0423, 0x053c, 0x04ae, 0x0211, 0xfd49,
+ 0xf82e, 0xf6c8, 0xf9cc, 0xfee1, 0x02e6, 0x0339,
+ 0x0228, 0x02c9, 0x040c, 0x05df, 0x0824, 0x0859,
+ 0x06db, 0x05d9, 0x052d, 0x03cc, 0x01bc, 0xffc8,
+ 0xfe03, 0xfda3, 0x0045, 0x02c2, 0x0204, 0xffd2,
+ 0xfcfa, 0xfaaf, 0xfbd5, 0xfefb, 0x015e, 0x02a6,
+ 0x02a3, 0x023b, 0x0293, 0x03ab, 0x045c, 0x029d,
+ 0xffcd, 0xfde8, 0xfb93, 0xfa72, 0xfc39, 0xfe6b,
+ 0x0061, 0x0097, 0xfe45, 0xfde2, 0xfe99, 0xfde1,
+ 0xfee5, 0xffad, 0xff15, 0x01ce, 0x04d6, 0x04f9,
+ 0x0539, 0x04a7, 0x036f, 0x02df, 0x0070, 0xfdac,
+ 0xfb9a, 0xf87c, 0xf78b, 0xf8b3, 0xf92c, 0xfb0a,
+ 0xfc59, 0xface, 0xf9e4, 0xf9b7, 0xfa53, 0xfd63,
+ 0xfff5, 0x020c, 0x05b6, 0x076e, 0x05c9, 0x036f,
+ 0x016b, 0xff8e, 0xfd7f, 0xfc85, 0xfdd0, 0xff52,
+ 0xff69, 0xfe52, 0xfd5d, 0xfe7f, 0x016a, 0x05c3,
+ 0x0a8f, 0x0bd9, 0x09ab, 0x060c, 0x008a, 0xfcd7,
+ 0xfc3a, 0xfa6a, 0xf999, 0xfc36, 0xff40, 0x0237,
+ 0x0340, 0x011c, 0xffe3, 0xffce, 0x0064, 0x0331,
+ 0x0409, 0x0194, 0xff62, 0xfd86, 0xfda0, 0xffc8,
+ 0x0095, 0x02aa, 0x05d3, 0x0462, 0x00f6, 0xfe4b,
+ 0xf9c6, 0xf623, 0xf59e, 0xf555, 0xf4ff, 0xf4bf,
+ 0xf2e6, 0xf083, 0xf035, 0xf256, 0xf5ad, 0xf9f1,
+ 0xfdf5, 0xff18, 0xfe01, 0xfca1, 0xfaaa, 0xf8d4,
+ 0xf6e3, 0xf3a0, 0xf1a8, 0xf272, 0xf46d, 0xf783,
+ 0xfa24, 0xfa20, 0xf885, 0xf724, 0xf814, 0xfb26,
+ 0xfbd9, 0xf855, 0xf2fa, 0xefac, 0xf27b, 0xf928,
+ 0xfdf0, 0x0033, 0x00a5, 0xffa5, 0xff56, 0xff62,
+ 0xfe0b, 0xfa89, 0xf456, 0xeed1, 0xed8b, 0xee95,
+ 0xf02e, 0xf27f, 0xf440, 0xf3d5, 0xf0de, 0xee6c,
+ 0xeff9, 0xf349, 0xf5c3, 0xf813, 0xf955, 0xf8b8,
+ 0xf6c0, 0xf3af, 0xf14e, 0xf004, 0xeee0, 0xf017,
+ 0xf3c7, 0xf635, 0xf648, 0xf4d7, 0xf2d1, 0xf137,
+ 0xf075, 0xf1ae, 0xf21a, 0xed10, 0xe7de, 0xe87a,
+ 0xeab0, 0xed40, 0xf1ce, 0xf3e2, 0xf285, 0xf15c,
+ 0xf099, 0xf022, 0xf0a2, 0xf2d0, 0xf626, 0xf5c5,
+ 0xf1fd, 0xf0d2, 0xf054, 0xef4e, 0xf2f1, 0xf7f4,
+ 0xf9aa, 0xfacd, 0xf9b9, 0xf53c, 0xf180, 0xecb4,
+ 0xe5de, 0xe32d, 0xe5cf, 0xeb0e, 0xf197, 0xf53c,
+ 0xf4cb, 0xf4db, 0xf541, 0xf2f3, 0xf004, 0xedf4,
+ 0xeb78, 0xea9a, 0xecd0, 0xefee, 0xf40f, 0xf7cb,
+ 0xf497, 0xe885, 0xd771, 0xc5b6, 0xba65, 0xbd0d,
+ 0xd07e, 0xeff9, 0x0ed6, 0x2283, 0x2750, 0x1d6e,
+ 0x0e88, 0x058a, 0x00c1, 0xfd6f, 0xfacd, 0xf2d3,
+ 0xe5dd, 0xd9df, 0xd0c4, 0xce7d, 0xd666, 0xe80e,
+ 0x01c0, 0x19a0, 0x25b0, 0x248d, 0x14ba, 0xfc23,
+ 0xe7ea, 0xdbb3, 0xd937, 0xe1a1, 0xed6c, 0xf8c7,
+ 0x01a5, 0x048d, 0x04f7, 0xff62, 0xf1e2, 0xecdf,
+ 0xf136, 0xf10a, 0xf1cf, 0xf4de, 0xf09b, 0xedf0,
+ 0xf63e, 0x0118, 0x05e1, 0x04b0, 0x04cc, 0x0866,
+ 0x0915, 0x0a0e, 0x0eae, 0x0de0, 0x07ed, 0x0490,
+ 0x030d, 0x048d, 0x0a15, 0x0e6c, 0x113e, 0x138d,
+ 0x1304, 0x121d, 0x1368, 0x1552, 0x1798, 0x18f0,
+ 0x17d6, 0x16d1, 0x16a7, 0x15ca, 0x1605, 0x17b4,
+ 0x1752, 0x14f8, 0x144b, 0x1666, 0x192b, 0x1a02,
+ 0x1957, 0x1932, 0x19e5, 0x1c84, 0x1fdf, 0x1f9c,
+ 0x1fa1, 0x2446, 0x25af, 0x21b9, 0x1f19, 0x1c4d,
+ 0x19c2, 0x1d75, 0x244b, 0x2a96, 0x309a, 0x30a2,
+ 0x2822, 0x1d9c, 0x16db, 0x16d7, 0x1db1, 0x27aa,
+ 0x2fe9, 0x306e, 0x26c6, 0x1d98, 0x22c3, 0x3060,
+ 0x37b6, 0x3d5b, 0x4625, 0x4668, 0x42ea, 0x498c,
+ 0x4ec1, 0x497c, 0x45da, 0x4a83, 0x536d, 0x570f,
+ 0x52dd, 0x53d3, 0x5640, 0x4c88, 0x457a, 0x4a53,
+ 0x4c91, 0x4bdc, 0x4c13, 0x48bc, 0x45bc, 0x4339,
+ 0x3ef7, 0x3f82, 0x4274, 0x4047, 0x34ea, 0x1bbc,
+ 0x0379, 0x01e1, 0x0f8a, 0x1dcc, 0x29ce, 0x2bb6,
+ 0x227e, 0x1b75, 0x1b0b, 0x1bff, 0x1af5, 0x146a,
+ 0x09f7, 0x0272, 0xfc8a, 0xf68d, 0xf730, 0xf9f7,
+ 0xf51b, 0xf027, 0xeef8, 0xeae2, 0xe8d7, 0xe83c,
+ 0xe021, 0xd7a5, 0xd1ca, 0xc932, 0xc4b9, 0xc1aa,
+ 0xb7a8, 0xb021, 0xad1d, 0xa8ee, 0xa892, 0xaaaa,
+ 0xaaef, 0xa900, 0xa25f, 0xa232, 0xaff6, 0xbdb4,
+ 0xc7f1, 0xcdd9, 0xc694, 0xbf91, 0xc131, 0xbd6a,
+ 0xb997, 0xbcdc, 0xbd99, 0xc0b3, 0xc761, 0xc715,
+ 0xc8d2, 0xce88, 0xc912, 0xc270, 0xc7f1, 0xcbfd,
+ 0xcd3e, 0xd6b0, 0xd8ea, 0xcc6c, 0xcb64, 0xd5ab,
+ 0xd168, 0xcb0a, 0xd0ec, 0xccb7, 0xc0ff, 0xc620,
+ 0xd0c5, 0xd0ad, 0xccad, 0xc787, 0xbfeb, 0xb986,
+ 0xb8a3, 0xbf19, 0xc636, 0xc96d, 0xc87d, 0xbc09,
+ 0xb082, 0xc0d2, 0xdded, 0xea51, 0xf1e0, 0xfe27,
+ 0xf907, 0xe2e1, 0xd83b, 0xd7dd, 0xce4e, 0xc9cd,
+ 0xd4cc, 0xd53b, 0xce1b, 0xdba1, 0xeca0, 0xebf0,
+ 0xe98c, 0xebb5, 0xf14a, 0xfc93, 0xfd42, 0xf322,
+ 0xf070, 0xea33, 0xd735, 0xc862, 0xc54c, 0xcdeb,
+ 0xdab4, 0xd8cb, 0xce16, 0xcbfa, 0xce19, 0xcf89,
+ 0xcc4e, 0xc3f2, 0xc988, 0xd4fa, 0xca64, 0xc208,
+ 0xd113, 0xd621, 0xd04e, 0xda79, 0xddac, 0xccbb,
+ 0xca6b, 0xdaba, 0xe363, 0xe329, 0xe043, 0xd9f9,
+ 0xd5f0, 0xd553, 0xd4b9, 0xd7d9, 0xe01b, 0xe485,
+ 0xdd98, 0xd7af, 0xe019, 0xe2ee, 0xd6ce, 0xdb78,
+ 0xee0f, 0xea82, 0xdd4a, 0xdc67, 0xdc7e, 0xe0a6,
+ 0xedcf, 0xf65b, 0xf977, 0xf59f, 0xec05, 0xee95,
+ 0xf303, 0xee56, 0xf805, 0x0226, 0xf6e8, 0xf8eb,
+ 0x06fe, 0xfed3, 0xf898, 0xfda9, 0xf6cb, 0xfdc6,
+ 0x12cb, 0x09e4, 0xfa9a, 0x0458, 0x0acf, 0x0a14,
+ 0x0d7e, 0x0ce2, 0x1516, 0x1e46, 0x11ad, 0x0fe4,
+ 0x1a9c, 0x0662, 0xf876, 0x119f, 0x18d6, 0x0cd5,
+ 0x1e18, 0x32f4, 0x3304, 0x3787, 0x3e2f, 0x38a9,
+ 0x3006, 0x2bc9, 0x2c64, 0x2b18, 0x2a3a, 0x3aa0,
+ 0x4a6b, 0x4024, 0x3543, 0x36f8, 0x311c, 0x2dd0,
+ 0x35b6, 0x3816, 0x39e5, 0x3dba, 0x38ba, 0x396e,
+ 0x3fd2, 0x3580, 0x2b7d, 0x33f0, 0x34d1, 0x2270,
+ 0x1418, 0x19bc, 0x2998, 0x31f6, 0x3721, 0x3bf5,
+ 0x29df, 0x0f0f, 0x11da, 0x1954, 0x0e60, 0x14a6,
+ 0x2657, 0x211f, 0x1b95, 0x231b, 0x246f, 0x28c2,
+ 0x305a, 0x2db6, 0x328d, 0x3a34, 0x30be, 0x3370,
+ 0x45f1, 0x412d, 0x371b, 0x3d29, 0x3375, 0x2553,
+ 0x30c7, 0x3926, 0x3b57, 0x4bb5, 0x4409, 0x26ec,
+ 0x3205, 0x4526, 0x2f66, 0x2b3c, 0x41f3, 0x326a,
+ 0x1e8c, 0x336f, 0x388d, 0x2838, 0x388a, 0x4c9b,
+ 0x40b4, 0x387a, 0x3bcb, 0x344e, 0x2edc, 0x32ea,
+ 0x328a, 0x2c78, 0x2481, 0x2227, 0x2d7d, 0x3a84,
+ 0x3bad, 0x3522, 0x2fda, 0x2cb9, 0x2376, 0x19de,
+ 0x2257, 0x2f7a, 0x2db3, 0x308b, 0x384f, 0x2bc6,
+ 0x23a9, 0x31a1, 0x2fa6, 0x2498, 0x2da6, 0x2a3e,
+ 0x188c, 0x2055, 0x2a86, 0x2301, 0x2784, 0x2fb3,
+ 0x2bac, 0x2ea1, 0x318b, 0x2d3f, 0x320c, 0x30ee,
+ 0x24e4, 0x286b, 0x2ebb, 0x28d5, 0x2d4a, 0x31e2,
+ 0x24b4, 0x24ee, 0x332e, 0x2d43, 0x25e4, 0x2ce1,
+ 0x2946, 0x2551, 0x2c79, 0x28f2, 0x241c, 0x2915,
+ 0x2237, 0x1270, 0x0ca4, 0x0f6f, 0x17e8, 0x1ee4,
+ 0x1d9b, 0x22f4, 0x2737, 0x1182, 0x054c, 0x1c80,
+ 0x22ec, 0x0e86, 0x0aa9, 0x0c15, 0xff79, 0xfc72,
+ 0x097a, 0x1522, 0x1979, 0x15cd, 0x0c47, 0x0589,
+ 0xff9e, 0xfbcc, 0x0611, 0x0c57, 0xff91, 0xfecf,
+ 0x0c12, 0x0a7f, 0x0b06, 0x185d, 0x1848, 0x0daa,
+ 0x01ec, 0xf229, 0xf26b, 0x0008, 0xffee, 0xf757,
+ 0xf295, 0xf46f, 0xf898, 0xf558, 0xf8ec, 0x0858,
+ 0x0c7d, 0xfe7e, 0xef32, 0xefdf, 0xf041, 0xe7f9,
+ 0xf0e7, 0xf6d7, 0xee73, 0xf3ff, 0xf3ea, 0xf243,
+ 0xff5f, 0xf8ad, 0xede6, 0xf007, 0xe50c, 0xe1e8,
+ 0xec22, 0xe5b5, 0xde1b, 0xe923, 0xef93, 0xe90c,
+ 0xee9d, 0xf343, 0xe869, 0xec5a, 0xf731, 0xf686,
+ 0xf759, 0xfbbb, 0x00f0, 0xf22f, 0xddfc, 0xea35,
+ 0xe9fb, 0xd24f, 0xd00a, 0xdd78, 0xf0f7, 0xf14f,
+ 0xe108, 0xe8db, 0xe9ba, 0xdfd8, 0xe10f, 0xd25a,
+ 0xcbf0, 0xd8f0, 0xd87c, 0xcf32, 0xc6db, 0xca37,
+ 0xd1ca, 0xd719, 0xe4f4, 0xe0f2, 0xd099, 0xcaa4,
+ 0xcde8, 0xdc1b, 0xd0d6, 0xc978, 0xe231, 0xd3ea,
+ 0xce79, 0xea04, 0xda96, 0xd8ba, 0xe814, 0xd836,
+ 0xd7f5, 0xd808, 0xd277, 0xdafa, 0xdc50, 0xe2af,
+ 0xd3c1, 0xba93, 0xccc8, 0xd1b7, 0xc5e8, 0xd9fb,
+ 0xe14c, 0xd0c7, 0xd247, 0xd83b, 0xc88d, 0xcf40,
+ 0xe918, 0xd2ad, 0xc383, 0xd763, 0xcf49, 0xcbb9,
+ 0xd6fa, 0xe2bb, 0xeba5, 0xd582, 0xe1c7, 0xf464,
+ 0xd034, 0xdf4b, 0xf0b1, 0xcb2b, 0xcdde, 0xcb4e,
+ 0xc25c, 0xe186, 0xe84c, 0xdcb2, 0xc924, 0xbc3c,
+ 0xd01e, 0xceda, 0xcf5a, 0xdd6d, 0xd027, 0xcda7,
+ 0xd2a8, 0xd789, 0xe073, 0xd961, 0xe571, 0xf1f9,
+ 0xea03, 0xe02d, 0xc7c4, 0xd382, 0xea01, 0xd774,
+ 0xdcd7, 0xd4eb, 0xc277, 0xe81b, 0xf240, 0xe09d,
+ 0xe372, 0xd670, 0xcfcd, 0xd8b8, 0xde4f, 0xdaf2,
+ 0xd3a1, 0xe2c8, 0xe75d, 0xddbd, 0xe7d8, 0xea63,
+ 0xdd1b, 0xca37, 0xce15, 0xd8d4, 0xc7c0, 0xe164,
+ 0xe8e3, 0xba72, 0xdd0d, 0xea57, 0xbf52, 0xdeae,
+ 0xe486, 0xd234, 0xe155, 0xd8a9, 0xe625, 0xd9ff,
+ 0xc2f7, 0xf2d0, 0xdf26, 0xc12e, 0xed3e, 0xcf50,
+ 0xbacb, 0xea0b, 0xddd7, 0xc920, 0xd4dc, 0xd1fd,
+ 0xd16c, 0xd72d, 0xd7fa, 0xdb95, 0xe01e, 0xe0ea,
+ 0xecf8, 0xebe2, 0xd1e1, 0xdee2, 0xe871, 0xd236,
+ 0xddce, 0xce4f, 0xc122, 0xeb27, 0xe1dc, 0xdc69,
+ 0xec76, 0xced7, 0xdcec, 0xe24c, 0xc5be, 0xe225,
+ 0xea3d, 0xec27, 0xf6ae, 0xc71c, 0xbe7d, 0xde7a,
+ 0xe8df, 0xee1b, 0xdd83, 0xea63, 0xf899, 0xd524,
+ 0xdd20, 0xed30, 0xdbd4, 0xe36a, 0xec05, 0xe8d8,
+ 0xdb28, 0xe169, 0x0213, 0xe7e5, 0xd725, 0x0028,
+ 0xf862, 0xe783, 0xf9ae, 0xf94a, 0xf3c7, 0xfab6,
+ 0x0273, 0xfa3a, 0xef1c, 0xf8d1, 0xf98d, 0xee92,
+ 0xf000, 0xf8e1, 0xec53, 0xd4b5, 0xec66, 0xf797,
+ 0xe4bf, 0x0021, 0xeb6b, 0xc708, 0xfcca, 0xfc5f,
+ 0xd5ea, 0xe5ba, 0xe9f4, 0xf661, 0xf236, 0xe5b4,
+ 0x054a, 0xf040, 0xe559, 0x0a8f, 0xe86c, 0xe3b7,
+ 0x09fc, 0xf1e5, 0xe87b, 0xf3a9, 0xf9d9, 0x08f2,
+ 0xf332, 0xe38b, 0xf3a4, 0xf6ff, 0xfa34, 0xf254,
+ 0xe812, 0xfef1, 0x092f, 0xf838, 0xfa2f, 0xf95a,
+ 0xe858, 0xf636, 0xf9be, 0xe866, 0x0a76, 0x0871,
+ 0xd849, 0xf2ab, 0xf744, 0xd797, 0xf402, 0xf402,
+ 0xe84f, 0x0300, 0xffef, 0xff36, 0x03bf, 0xfdf5,
+ 0x0507, 0xf0e0, 0xf507, 0x17f7, 0xf5de, 0xd506,
+ 0xf1b7, 0x028a, 0xf9fb, 0xfa44, 0x0405, 0xf9eb,
+ 0xf168, 0x0070, 0xfee3, 0x05db, 0x1243, 0xf273,
+ 0xe9a8, 0x0539, 0x0876, 0x09e5, 0x0afa, 0xfae7,
+ 0xf21d, 0xf839, 0x052d, 0x0de5, 0x162c, 0x1e55,
+ 0x142c, 0x0984, 0x0bb9, 0x09bc, 0x0c2a, 0x0d7b,
+ 0xf891, 0xf2f1, 0x05d8, 0xf7a6, 0xeffc, 0x130a,
+ 0x04e0, 0xea94, 0x101c, 0x1075, 0xf0fb, 0xfffa,
+ 0x06d4, 0x0112, 0x04d6, 0x05b1, 0x140f, 0x0c7f,
+ 0xfd52, 0x1723, 0x1185, 0xf38a, 0x02a1, 0x0641,
+ 0xf9ef, 0x0995, 0x05f8, 0xf378, 0x03e5, 0x1299,
+ 0x06ca, 0x0609, 0x088c, 0xf861, 0xfed6, 0x1d69,
+ 0x17ac, 0x0137, 0x0942, 0x0da9, 0x0242, 0x00b5,
+ 0xfe37, 0x03d3, 0x113d, 0x021c, 0xf78d, 0x064c,
+ 0x0179, 0xff49, 0x0749, 0xf3a6, 0xf38b, 0x0c86,
+ 0x07fd, 0x0710, 0x0b43, 0xf31a, 0xf022, 0x07db,
+ 0x0cae, 0x050b, 0xfd54, 0x034e, 0x1132, 0x0695,
+ 0x043f, 0x1c26, 0x1a46, 0x0759, 0x0240, 0xfe51,
+ 0x0237, 0x0836, 0x0372, 0x06af, 0x0643, 0xfafa,
+ 0xfe64, 0x0a12, 0x166d, 0x17a1, 0x0236, 0x067f,
+ 0x1708, 0xfe85, 0xffd4, 0x207a, 0x0ffc, 0x013c,
+ 0x0e43, 0x0532, 0x0c05, 0x13c8, 0xf907, 0x076b,
+ 0x228d, 0x0951, 0x05d5, 0x173d, 0x0e20, 0x15bc,
+ 0x1e39, 0x1037, 0x0cd1, 0x03fb, 0x03f8, 0x181d,
+ 0x0798, 0xf9d4, 0x101e, 0x02ed, 0xf141, 0x02d4,
+ 0xff16, 0x0112, 0x17e3, 0x091b, 0xfd21, 0x0f88,
+ 0x0f38, 0x0a31, 0x0853, 0x0050, 0x131e, 0x226b,
+ 0x0e17, 0x063c, 0x0fef, 0x182f, 0x2224, 0x175d,
+ 0x08f3, 0x10da, 0x0a1d, 0xfa6e, 0x01fb, 0x0c47,
+ 0x114c, 0x0e45, 0x00e4, 0x094c, 0x172b, 0x0c5d,
+ 0x097d, 0x0aa8, 0x01d6, 0x0ce6, 0x1198, 0x0527,
+ 0x1414, 0x14ea, 0xf64c, 0x068d, 0x27e4, 0x147e,
+ 0xfd37, 0x02db, 0x0def, 0x1745, 0x130d, 0x0e5c,
+ 0x1aa8, 0x1e11, 0x20e9, 0x2ab9, 0x1762, 0x08c5,
+ 0x1fce, 0x253c, 0x17e5, 0x1bf5, 0x1f35, 0x1f5d,
+ 0x1c41, 0x1428, 0x282c, 0x3829, 0x209c, 0x1d20,
+ 0x26c4, 0x148c, 0x17e1, 0x23ed, 0x136c, 0x1c74,
+ 0x2b6a, 0x1753, 0x2203, 0x4200, 0x35f7, 0x2104,
+ 0x1e5f, 0x1dc9, 0x2018, 0x1d0c, 0x2159, 0x346a,
+ 0x34c4, 0x2fcd, 0x338a, 0x24c2, 0x21e3, 0x3160,
+ 0x1ebd, 0x0f5c, 0x23b6, 0x1f9b, 0x0f01, 0x220e,
+ 0x32be, 0x3036, 0x39cf, 0x41b9, 0x2ff8, 0x1856,
+ 0x1535, 0x1f3e, 0x202a, 0x1d76, 0x224b, 0x1fa4,
+ 0x18dc, 0x241d, 0x2e9f, 0x22a2, 0x18d8, 0x1655,
+ 0x074d, 0x052e, 0x19ca, 0x1b21, 0x1321, 0x1e18,
+ 0x1f2d, 0x19fc, 0x1eed, 0x0beb, 0xfa00, 0x10d8,
+ 0x18ba, 0x0585, 0x06e4, 0x09c2, 0x0655, 0x14bb,
+ 0x1cb6, 0x1797, 0x1350, 0x03c8, 0xfd8a, 0x0f1e,
+ 0x168e, 0x1063, 0x0b2f, 0x0753, 0x0e04, 0x1177,
+ 0x09ad, 0x10c1, 0x17b0, 0x06f0, 0xf683, 0xf05f,
+ 0xf32a, 0xfc99, 0xf6b6, 0xf78d, 0x1362, 0x1481,
+ 0xfb86, 0xff4d, 0x08db, 0x0521, 0x0bd5, 0x0576,
+ 0xf50c, 0x050d, 0x14ac, 0x0be8, 0x170f, 0x26ed,
+ 0x17f8, 0x1280, 0x1e12, 0x0f01, 0xfd7a, 0x0d6b,
+ 0x1599, 0xfeea, 0xf5ea, 0x078c, 0x11b2, 0x1507,
+ 0x2180, 0x213e, 0x1014, 0x0ac5, 0x0b8b, 0x062f,
+ 0x0b6c, 0x1284, 0x0dfe, 0x0e62, 0x0dae, 0x03c6,
+ 0x0614, 0x108b, 0x16d1, 0x1cac, 0x10d4, 0xfed2,
+ 0x0e18, 0x1efe, 0x1109, 0x11df, 0x2343, 0x1331,
+ 0xfdbd, 0x0aa3, 0x0fe8, 0x04bb, 0x12d6, 0x1aef,
+ 0x054e, 0x06e5, 0x0d9c, 0xf6c1, 0x0631, 0x2e5c,
+ 0x18bb, 0xfc48, 0x0e70, 0x1148, 0x0251, 0x088f,
+ 0x13df, 0x12be, 0x0582, 0x022a, 0x0d5b, 0xffdb,
+ 0xf741, 0x148c, 0x1239, 0xf949, 0x02a5, 0xf5d1,
+ 0xdca2, 0xf8a5, 0x0892, 0xf429, 0xf92d, 0x0204,
+ 0xfe47, 0x065a, 0x06bf, 0x00f5, 0x00c0, 0xf77d,
+ 0xf588, 0xfc32, 0xf8dd, 0xfd33, 0x030b, 0xff14,
+ 0x0a36, 0x0f5b, 0xf7dc, 0xf179, 0x04c8, 0x0576,
+ 0xf6d5, 0xf5e4, 0xf66a, 0xeda8, 0xf5e4, 0x06dc,
+ 0x0094, 0xfb61, 0xfe5f, 0xf0de, 0xf442, 0x064d,
+ 0xfa34, 0xf442, 0xfd10, 0xf1a4, 0xf4b6, 0xf9d7,
+ 0xe5e0, 0xf239, 0xfd4a, 0xdf5c, 0xeda5, 0x03d2,
+ 0xddaa, 0xe1f8, 0x1097, 0x054f, 0xeddf, 0xf00d,
+ 0xee80, 0xfaa5, 0x00da, 0xec54, 0xecc3, 0xfa61,
+ 0xf0c2, 0xe853, 0xed13, 0xf3c6, 0xfccd, 0xfad4,
+ 0xef61, 0xf436, 0xfad5, 0xede8, 0xf15a, 0x052a,
+ 0xf1e2, 0xd973, 0xe9ef, 0xe623, 0xd875, 0xfc5c,
+ 0x062c, 0xe3af, 0xe98d, 0xed73, 0xd46c, 0xe5f1,
+ 0xf98f, 0xe90a, 0xf16c, 0xfd0f, 0xec17, 0xe8c9,
+ 0xeafc, 0xeb05, 0xfe87, 0xff0e, 0xe377, 0xdc2a,
+ 0xe281, 0xdedb, 0xe002, 0xe926, 0xeb46, 0xe696,
+ 0xe605, 0xe45c, 0xe14b, 0xee1f, 0xf47b, 0xe0e3,
+ 0xddeb, 0xeb4a, 0xe693, 0xea07, 0xf5de, 0xedc0,
+ 0xeb3f, 0xf17e, 0xedb5, 0xefc4, 0xf1d6, 0xf1c5,
+ 0xfe52, 0xfb10, 0xe6f5, 0xe412, 0xe2d3, 0xdd64,
+ 0xe44f, 0xe4c4, 0xdfb5, 0xe42a, 0xe209, 0xdf90,
+ 0xea4b, 0xed8c, 0xe545, 0xe259, 0xe4e7, 0xe2ad,
+ 0xdc67, 0xe468, 0xf423, 0xeeba, 0xe63a, 0xe8ca,
+ 0xdf7a, 0xe20a, 0xf2bc, 0xe1bd, 0xd918, 0xf73b,
+ 0xf40d, 0xd99c, 0xdb33, 0xdaf0, 0xd9c4, 0xe09c,
+ 0xd521, 0xd073, 0xd9c7, 0xd8db, 0xdf8d, 0xe4c7,
+ 0xdfeb, 0xe6a7, 0xdedd, 0xcba8, 0xd038, 0xd5e4,
+ 0xd7e8, 0xd9a0, 0xcfa8, 0xd888, 0xdf6a, 0xcafb,
+ 0xd6c0, 0xeb75, 0xd691, 0xcd33, 0xd389, 0xcdc4,
+ 0xcf35, 0xd145, 0xd9ab, 0xe3a8, 0xce84, 0xc496,
+ 0xd4ca, 0xd1a8, 0xd043, 0xd39c, 0xcb0a, 0xd74e,
+ 0xddef, 0xc9f4, 0xcfb6, 0xe240, 0xdea2, 0xd62f,
+ 0xcc8f, 0xc8ed, 0xd1ed, 0xd741, 0xdae5, 0xdb06,
+ 0xd235, 0xcc96, 0xc656, 0xc6ec, 0xdbf9, 0xe5eb,
+ 0xd776, 0xcf7d, 0xd213, 0xcfec, 0xce54, 0xd5a5,
+ 0xe0c6, 0xe6fe, 0xdf1c, 0xce66, 0xd138, 0xdf04,
+ 0xd7d7, 0xdc64, 0xf65e, 0xeaac, 0xcd32, 0xd14f,
+ 0xd616, 0xcb2e, 0xcca8, 0xdb98, 0xe1e3, 0xcee6,
+ 0xc16e, 0xd26c, 0xd62f, 0xcadc, 0xd52c, 0xdda3,
+ 0xda39, 0xd787, 0xccfc, 0xd01b, 0xe154, 0xdfc0,
+ 0xdc35, 0xdf0d, 0xd7bf, 0xd495, 0xd1d1, 0xc8d9,
+ 0xcf6d, 0xdbe4, 0xdc00, 0xd8f7, 0xdb20, 0xe314,
+ 0xe158, 0xd450, 0xd661, 0xdc44, 0xd38f, 0xd32d,
+ 0xddb9, 0xe4c8, 0xeaa3, 0xed67, 0xea77, 0xe176,
+ 0xe195, 0xf026, 0xe087, 0xc62c, 0xdcbf, 0xe4f7,
+ 0xcb12, 0xdf46, 0xef71, 0xd4dc, 0xda6b, 0xe147,
+ 0xcd94, 0xd80b, 0xe1fb, 0xdd67, 0xeace, 0xe83e,
+ 0xe166, 0xe80b, 0xda25, 0xda5f, 0xe93f, 0xdddb,
+ 0xe2a8, 0xec71, 0xd9f3, 0xda54, 0xe159, 0xdcb8,
+ 0xe352, 0xdcc5, 0xdc72, 0xec29, 0xde67, 0xe229,
+ 0xfdd4, 0xeed6, 0xe29c, 0xee91, 0xedb5, 0xf1db,
+ 0xeac6, 0xe07d, 0xf4aa, 0xf2ae, 0xe3f1, 0xeecd,
+ 0xea52, 0xeb1e, 0xf1cf, 0xda64, 0xe46f, 0xf7f9,
+ 0xd940, 0xdf59, 0xff0e, 0xf0f5, 0xf172, 0xfbbb,
+ 0xea33, 0xeb18, 0xeedc, 0xeb19, 0xffc4, 0xff0c,
+ 0xeb88, 0xfa9e, 0xfe1a, 0xead0, 0xf844, 0x0358,
+ 0xef8b, 0xeb8c, 0xf15f, 0xedfd, 0xf515, 0xf6ce,
+ 0xf369, 0x0000, 0xfe8a, 0xf9c1, 0x0a7e, 0x0396,
+ 0xf846, 0x08e1, 0xfe10, 0xee44, 0x0476, 0x0c04,
+ 0x03d6, 0x03f2, 0xff9a, 0x05eb, 0x065c, 0xf632,
+ 0xf961, 0x0055, 0x0321, 0x06fe, 0xf461, 0xf571,
+ 0x0eb7, 0x0681, 0x034b, 0x0bee, 0xfb35, 0x007f,
+ 0x0f7c, 0x08e7, 0x1770, 0x1de4, 0x0933, 0x03ec,
+ 0xfda5, 0xfd5b, 0x0e70, 0x0a84, 0x0944, 0x111c,
+ 0x0153, 0x0042, 0x11c5, 0x1097, 0x086b, 0xfd22,
+ 0xf993, 0x0309, 0xf839, 0xeec0, 0xff4f, 0x0794,
+ 0x059a, 0x0396, 0xffda, 0x02f6, 0xfbe7, 0xf219,
+ 0xfeea, 0x0358, 0xfcc4, 0x074d, 0x0a55, 0x05c8,
+ 0x11a6, 0x13d7, 0x0a01, 0x0cbc, 0x0b0c, 0x05e5,
+ 0x0f02, 0x0bdd, 0xfedf, 0x09a3, 0x1414, 0x0e0f,
+ 0x135b, 0x1c4e, 0x1a2c, 0x16ca, 0x14eb, 0x1794,
+ 0x15da, 0x0cbf, 0x0f54, 0x0fd7, 0x0915, 0x1086,
+ 0x12b1, 0x0c54, 0x0d68, 0x0708, 0x080b, 0x118f,
+ 0x09cd, 0x0809, 0x057a, 0xf4f0, 0xfdb9, 0x0acb,
+ 0x061b, 0x0750, 0xfee8, 0x0117, 0x15b7, 0x0949,
+ 0x016a, 0x135c, 0x0ee7, 0x0ce4, 0x0c27, 0x0068,
+ 0x14e4, 0x1ee1, 0x0aab, 0x0cb4, 0x095e, 0x0439,
+ 0x0f93, 0xff14, 0xfd6f, 0x1b4f, 0x1576, 0x09c9,
+ 0x0e1d, 0x066b, 0x0869, 0x0b90, 0x062c, 0x07f2,
+ 0x02de, 0x06a8, 0x12d2, 0x0d72, 0x0f53, 0x10d2,
+ 0x05ca, 0x0796, 0x0202, 0xfadf, 0x043c, 0xfef3,
+ 0xfbe5, 0x0531, 0x06f6, 0x1076, 0x0ea2, 0x0724,
+ 0x1445, 0x0a9f, 0x0102, 0x1566, 0x11bd, 0x0861,
+ 0x08d3, 0xfd7e, 0x0760, 0x1040, 0x072f, 0x0cb2,
+ 0x0b0e, 0x0e1c, 0x1556, 0x0091, 0x01d2, 0x0af3,
+ 0xff6e, 0x11ed, 0x1523, 0x037c, 0x11ab, 0x06ab,
+ 0xff28, 0x1c0a, 0x0c1c, 0xfbf1, 0x066e, 0xf498,
+ 0xfa97, 0x0b2f, 0xfef8, 0x08fe, 0x0937, 0xff63,
+ 0x0dfe, 0xf5a4, 0xe397, 0x02e8, 0xffe2, 0xfe16,
+ 0x0d9d, 0xf90b, 0x021b, 0x0fd0, 0xf0b6, 0xfdc2,
+ 0x0f94, 0xf747, 0x01a9, 0x0b3e, 0xff08, 0x0723,
+ 0x02e3, 0x006c, 0x034d, 0xefbc, 0xf99b, 0x0bb3,
+ 0x0077, 0x08dd, 0x0a78, 0xf6c5, 0x0013, 0x0d6b,
+ 0x079e, 0x0790, 0x1119, 0x121e, 0x068c, 0x0dd6,
+ 0x1d45, 0x160c, 0x1582, 0x197d, 0x14b0, 0x1902,
+ 0x14e4, 0x1291, 0x1a89, 0x11f5, 0x1603, 0x20b3,
+ 0x17a5, 0x1ca7, 0x1a61, 0x120d, 0x2997, 0x29ae,
+ 0x17c9, 0x206f, 0x1af7, 0x191e, 0x23fe, 0x117d,
+ 0x0cff, 0x1ba5, 0x187f, 0x199f, 0x13d3, 0x0d30,
+ 0x1039, 0xf8b6, 0xfb85, 0x1be6, 0x0a7d, 0x06ec,
+ 0x1df1, 0x0769, 0x066b, 0x1c78, 0x05f3, 0xfaec,
+ 0x03c8, 0xfdf4, 0x0790, 0x16e2, 0x178b, 0x15d0,
+ 0x178f, 0x1f63, 0x1ea7, 0x1828, 0x1db6, 0x23e8,
+ 0x2543, 0x1c7d, 0x0fd6, 0x178b, 0x1da5, 0x1920,
+ 0x1f73, 0x1e6d, 0x1bbb, 0x283c, 0x2767, 0x1dd0,
+ 0x21ec, 0x25ba, 0x2236, 0x1951, 0x1019, 0x1387,
+ 0x1a73, 0x1b63, 0x1e58, 0x1d0e, 0x1841, 0x19e7,
+ 0x132f, 0x0506, 0x03e8, 0x0966, 0x0975, 0x044c,
+ 0x052e, 0x0ff9, 0x0db0, 0xfdee, 0xf0cc, 0xed27,
+ 0xfc0e, 0xff99, 0xf330, 0xfbdb, 0xfcf2, 0xf447,
+ 0xfdc0, 0xfcb0, 0xfbf3, 0xf9fd, 0xea20, 0xf7d8,
+ 0xfeb4, 0xf606, 0x0ba5, 0x03f4, 0xf64b, 0x0e00,
+ 0x01d9, 0xf56c, 0x02db, 0xfbe8, 0x015d, 0xff08,
+ 0xf965, 0x1964, 0x1342, 0xfcc6, 0x0ced, 0x03eb,
+ 0xfe2b, 0x0fcc, 0x0706, 0x0b7c, 0x1c50, 0x103c,
+ 0x037c, 0x03f9, 0x0f6e, 0x1842, 0x0e8c, 0x11f0,
+ 0x1baa, 0x0b04, 0xffc1, 0x07b9, 0x0b67, 0x12b5,
+ 0x1b67, 0x13fb, 0x0bee, 0x0b4c, 0x08e1, 0x0d08,
+ 0x0f75, 0x01be, 0xfc6e, 0x0a60, 0x0bad, 0xfe62,
+ 0x06a6, 0x1559, 0x0b3a, 0x0aa5, 0x180f, 0x1319,
+ 0x0d8a, 0x0a1a, 0x09ea, 0x198c, 0x14ca, 0x0969,
+ 0x10b0, 0x0826, 0x070e, 0x0fcd, 0x057c, 0x114b,
+ 0x1afe, 0x095b, 0x1313, 0x18ba, 0x0879, 0x11e3,
+ 0x1681, 0x073c, 0x0540, 0x0fbf, 0x168f, 0x0af1,
+ 0x0a40, 0x1f56, 0x135b, 0x02d4, 0x1489, 0x11ae,
+ 0x0556, 0x0e59, 0x0d51, 0x1090, 0x1954, 0x0d9e,
+ 0x0976, 0x0c7a, 0x08a6, 0x0c29, 0x07b0, 0x030b,
+ 0x09c6, 0x06d4, 0x0854, 0x08ed, 0x0009, 0x09d6,
+ 0x0e0a, 0x0582, 0x073b, 0x02a1, 0x0478, 0x05d7,
+ 0xfa7f, 0x01b9, 0xfcba, 0xf393, 0x0753, 0xff78,
+ 0xf919, 0x0e48, 0x039e, 0xff4f, 0x05d8, 0xf739,
+ 0xfe1c, 0x013a, 0xfa52, 0x068f, 0xfd5c, 0xf71c,
+ 0x0564, 0xfe2c, 0xf833, 0xf67d, 0xf134, 0xfa7c,
+ 0xf9a0, 0xf462, 0xf8fd, 0xf482, 0xf695, 0xfc77,
+ 0xf6b3, 0xfbba, 0x0593, 0xfbf3, 0xed51, 0xf17a,
+ 0xfe9f, 0xfdcd, 0xf594, 0xfa30, 0x04df, 0xfdc5,
+ 0xefd8, 0xf016, 0xf16e, 0xf954, 0x0365, 0xf9dd,
+ 0xfa3d, 0xfd1d, 0xf01e, 0xf616, 0xf868, 0xf2e3,
+ 0xfc14, 0xf21f, 0xee56, 0xf5bf, 0xecc7, 0xfce2,
+ 0xfdaf, 0xe575, 0xf8be, 0xf906, 0xe470, 0xf69e,
+ 0xf71f, 0xefb1, 0xfa75, 0xf7ad, 0xfd0a, 0x01a8,
+ 0xfcaf, 0x041a, 0x0379, 0xff1a, 0xf99c, 0xf119,
+ 0xf936, 0xf7a4, 0xfa0c, 0x0e6d, 0xfb34, 0xe484,
+ 0xf44b, 0xf3d4, 0xebaf, 0xf627, 0xfaa2, 0xf869,
+ 0xf47a, 0xf25e, 0xf52b, 0xf0a8, 0xeefc, 0xf52c,
+ 0xf06e, 0xeccb, 0xf6d6, 0xfb92, 0xfa19, 0xfc51,
+ 0xfd86, 0xfe7b, 0xff84, 0xfd28, 0xf6d6, 0xf3be,
+ 0xfe62, 0x0078, 0xf611, 0xffdd, 0xffd4, 0xea4a,
+ 0xf10b, 0xf9f5, 0xf141, 0xfb28, 0x01e4, 0xf8b6,
+ 0xf651, 0xf813, 0xfaa6, 0xf4e5, 0xef8c, 0xfa3f,
+ 0xf995, 0xf056, 0xf3d5, 0xf1d1, 0xefc9, 0xf630,
+ 0xf224, 0xf099, 0xf93b, 0xf416, 0xf1f0, 0x0293,
+ 0xfee9, 0xec06, 0xef06, 0xf543, 0xf518, 0xf79f,
+ 0xf70a, 0xf6e1, 0xeead, 0xea6b, 0xf862, 0xf6df,
+ 0xf173, 0xf979, 0xf4bc, 0xf077, 0xee13, 0xeba7,
+ 0xf820, 0xf626, 0xf0ba, 0xfa18, 0xf62e, 0xf2ae,
+ 0xee89, 0xe816, 0xf5cf, 0xf672, 0xebf9, 0xeef9,
+ 0xebd7, 0xeb08, 0xecc1, 0xeeef, 0xf4c4, 0xeb87,
+ 0xeea9, 0xf735, 0xec94, 0xf8c8, 0xfd2a, 0xea4b,
+ 0xf940, 0x0011, 0xeade, 0xef9e, 0x0078, 0xfe61,
+ 0xf11e, 0xef0d, 0xf124, 0xe76e, 0xe8e9, 0xedd8,
+ 0xed5a, 0xf7e2, 0xf8cb, 0xf553, 0xf4ba, 0xec51,
+ 0xf25c, 0xf523, 0xef4d, 0xf4de, 0xebf9, 0xe98c,
+ 0xf37d, 0xeedf, 0xfb65, 0xfd3d, 0xe70e, 0xf054,
+ 0xf5cc, 0xecbc, 0xf929, 0xf7ec, 0xeac4, 0xece7,
+ 0xf01e, 0xeeb0, 0xea1b, 0xea08, 0xec84, 0xecea,
+ 0xf6a0, 0xfb2b, 0xf434, 0xf14d, 0xeefd, 0xee25,
+ 0xed93, 0xeaf3, 0xee57, 0xeff1, 0xeb34, 0xe9b1,
+ 0xf110, 0xf2c9, 0xe2da, 0xe0a2, 0xed39, 0xea1d,
+ 0xeae3, 0xf127, 0xef5d, 0xf485, 0xf227, 0xeb22,
+ 0xf236, 0xf10a, 0xeee1, 0xf8d8, 0xf4a2, 0xe8a6,
+ 0xeb07, 0xf110, 0xefe4, 0xefe3, 0xf5f2, 0xf506,
+ 0xe9f1, 0xe6c1, 0xecf1, 0xedbb, 0xedd1, 0xf199,
+ 0xefdb, 0xf386, 0xfba3, 0xf5de, 0xf4e7, 0xfb83,
+ 0xf7a5, 0xf790, 0xf589, 0xeeb7, 0xf358, 0xef64,
+ 0xe87b, 0xee1e, 0xe6e1, 0xdde5, 0xe472, 0xe6b3,
+ 0xe4b8, 0xe3c6, 0xdd7c, 0xddaa, 0xec29, 0xeec2,
+ 0xe49b, 0xecc1, 0xf0a0, 0xe8e2, 0xf2c6, 0xf17f,
+ 0xea7a, 0xf564, 0xf19b, 0xefb3, 0xf2f2, 0xecaf,
+ 0xfe3b, 0xfebe, 0xe889, 0xf822, 0xfa4d, 0xe59d,
+ 0xefa5, 0xf6c6, 0xef48, 0xebc4, 0xea01, 0xf253,
+ 0xf8fd, 0xf6ef, 0xf6c9, 0xf984, 0xfb9b, 0xfb0a,
+ 0xfd2f, 0xf52e, 0xedc6, 0xfaf7, 0xf36e, 0xed3d,
+ 0x02b3, 0xf39e, 0xe7f2, 0x00a0, 0xf880, 0xec59,
+ 0xf1e3, 0xeb95, 0xf0c2, 0xf601, 0xf2ab, 0xf55b,
+ 0xf03a, 0xf0b5, 0xfa33, 0xfe14, 0xfd06, 0xf659,
+ 0xf824, 0xf762, 0xef26, 0xf663, 0xf738, 0xf883,
+ 0x066a, 0xfc32, 0xf392, 0xfc63, 0xf768, 0xf635,
+ 0xfe7c, 0x0181, 0xfb99, 0xf06e, 0xf6e4, 0xfd3f,
+ 0xf402, 0xf8e2, 0x01b0, 0xfe1e, 0xfbdf, 0xffd3,
+ 0x00e3, 0xf3b5, 0xeed8, 0xf8eb, 0xf66d, 0xf548,
+ 0xfa42, 0xfb1a, 0x0084, 0xfb9c, 0xf634, 0xfb15,
+ 0xf64d, 0xfc5e, 0x0409, 0xf635, 0xf861, 0xff34,
+ 0xf562, 0xfa65, 0xff4c, 0xf6b2, 0xfa50, 0xff37,
+ 0xfc8b, 0xff2a, 0xfdb5, 0xf810, 0xf92e, 0xf910,
+ 0xfc1d, 0x04ae, 0x03f2, 0x0728, 0x0a83, 0xf8d6,
+ 0xf548, 0x04e1, 0x01c8, 0x00e8, 0x0b74, 0x06a5,
+ 0xff2c, 0x0054, 0xfef1, 0xfe32, 0x0330, 0x06b9,
+ 0x04de, 0x01ad, 0xffbe, 0x0304, 0x0308, 0xfa55,
+ 0xfed0, 0x02be, 0xf5e0, 0xfbac, 0x0417, 0xf66f,
+ 0xf90b, 0x0370, 0xf91a, 0xf089, 0xf8aa, 0x01c5,
+ 0xfa7f, 0xf269, 0xf463, 0xef05, 0xeef0, 0xf6d0,
+ 0xf605, 0xf8e3, 0xfb03, 0xf6c4, 0xf70a, 0xf7f0,
+ 0xf8d3, 0xf6be, 0xfb15, 0x0626, 0xfcce, 0xf84b,
+ 0x051c, 0x006a, 0xf9c4, 0xfbb0, 0xfc7f, 0xfdfa,
+ 0xf758, 0xfb15, 0x0202, 0xf71f, 0xfa85, 0x013a,
+ 0xfb33, 0xfb7d, 0xf3ef, 0xf2ba, 0xfd38, 0xf85f,
+ 0xf56e, 0xf430, 0xf354, 0xfe05, 0xfa22, 0xf47b,
+ 0xf9ca, 0xf275, 0xecde, 0xef89, 0xf46a, 0xfbd3,
+ 0xf90a, 0xf5cb, 0xf666, 0xf640, 0xfa12, 0xf60d,
+ 0xf171, 0xf1c0, 0xefd5, 0xf683, 0xf559, 0xec56,
+ 0xf398, 0xf944, 0xf7dd, 0xf713, 0xf721, 0xf7df,
+ 0xeb06, 0xecbe, 0xff59, 0xf3ed, 0xeff6, 0xfd4c,
+ 0xed3e, 0xe769, 0xf462, 0xeeb7, 0xee46, 0xf42d,
+ 0xee9a, 0xec11, 0xec37, 0xebb8, 0xefbe, 0xef27,
+ 0xe872, 0xe91e, 0xeb92, 0xe7a0, 0xe93c, 0xe93d,
+ 0xe8e1, 0xf4db, 0xeeec, 0xe20a, 0xedc5, 0xea5a,
+ 0xe222, 0xf6dd, 0xfd97, 0xf598, 0xf579, 0xee2c,
+ 0xf12f, 0xfceb, 0xf858, 0xf8db, 0xfe23, 0xf452,
+ 0xf340, 0xfcd3, 0xf79f, 0xf54b, 0x0257, 0x06e7,
+ 0x0298, 0x01e3, 0x0163, 0x0007, 0x008e, 0x0525,
+ 0x0592, 0x009c, 0x0543, 0x0512, 0xfbc5, 0x05da,
+ 0x1019, 0x04b3, 0xff2c, 0x02a1, 0xfe5f, 0xfa98,
+ 0xfd7a, 0xfc01, 0xf764, 0xf93d, 0xf806, 0xf6a3,
+ 0xfa93, 0xf301, 0xf090, 0xfa70, 0xf396, 0xed0f,
+ 0xf2aa, 0xf30d, 0xf71f, 0xf931, 0xf6b1, 0xfd6b,
+ 0xfe0b, 0xf76d, 0xfa7a, 0x024f, 0x04f4, 0x03bb,
+ 0x0650, 0x054f, 0xfff2, 0x03a3, 0x068c, 0x0744,
+ 0x08e1, 0x0518, 0x0bd5, 0x1013, 0x04c2, 0x0837,
+ 0x0f74, 0x0b87, 0x0d7b, 0x0ed9, 0x0f03, 0x0db6,
+ 0x07aa, 0x0af3, 0x0cb8, 0x06bb, 0x06c5, 0x0811,
+ 0x07fe, 0x0618, 0x0326, 0x031e, 0x02f1, 0x03fb,
+ 0xfc68, 0xf496, 0x005d, 0x029b, 0xf928, 0xfa7e,
+ 0xf551, 0xf2b4, 0xf694, 0xef95, 0xee71, 0xecc0,
+ 0xe651, 0xec45, 0xeab3, 0xe570, 0xeb5f, 0xe89e,
+ 0xe3c7, 0xe5ec, 0xe4d2, 0xe49b, 0xe4d4, 0xe352,
+ 0xe536, 0xe9da, 0xeb93, 0xe730, 0xe578, 0xe9a5,
+ 0xeba3, 0xec18, 0xf032, 0xf5c5, 0xf259, 0xed7f,
+ 0xf3de, 0xf34f, 0xf10c, 0xf9ab, 0xf3d2, 0xef68,
+ 0xfd24, 0xfb5f, 0xf5b0, 0xfb9f, 0xf6f9, 0xf621,
+ 0xffe6, 0xfdaf, 0xf7fd, 0xf908, 0xf6f8, 0xf6a9,
+ 0xfe93, 0xfefc, 0xf69e, 0xfa69, 0xffa4, 0xf67c,
+ 0xf4b1, 0xfca7, 0xfa55, 0xf6e2, 0xfc02, 0xfeb3,
+ 0xfea7, 0x00d9, 0x000b, 0xfeb6, 0x0088, 0xfec3,
+ 0xfd6e, 0x02aa, 0x06d2, 0x0639, 0x04c6, 0x05f0,
+ 0x04cd, 0xffaf, 0x037c, 0x094c, 0x0677, 0x0823,
+ 0x0776, 0xffeb, 0x0351, 0x0880, 0x0943, 0x108e,
+ 0x146e, 0x1021, 0x0a26, 0x05e7, 0x0b4d, 0x12c3,
+ 0x117c, 0x1188, 0x13ae, 0x0ff7, 0x0fa3, 0x13e6,
+ 0x109a, 0x0c9f, 0x0d2f, 0x0aaf, 0x0b97, 0x0cf6,
+ 0x08b0, 0x0def, 0x1480, 0x0ea5, 0x0a5e, 0x0762,
+ 0x03c2, 0x08ab, 0x0d57, 0x0c9a, 0x0d4e, 0x0df5,
+ 0x09da, 0x0724, 0x0c75, 0x0d9d, 0x0bd2, 0x129c,
+ 0x0ff9, 0x066e, 0x0927, 0x0b13, 0x0b50, 0x0b0b,
+ 0x038c, 0x0662, 0x08d7, 0xfe72, 0x012c, 0x05e9,
+ 0xffea, 0x0365, 0x0458, 0xfe99, 0xff3b, 0xf8c8,
+ 0xf7ad, 0x04be, 0xfda2, 0xf1b7, 0xfd43, 0xfdf2,
+ 0xf46a, 0xfc93, 0xfe66, 0xf86f, 0xff73, 0x0070,
+ 0xf9bd, 0xfc14, 0xffa2, 0xfdac, 0xf80a, 0xf779,
+ 0xfe8d, 0xff9b, 0xfee3, 0x0130, 0xfe0a, 0xfd8a,
+ 0xfe0d, 0xf9bf, 0xfc7f, 0xfead, 0xf9e3, 0xfa8f,
+ 0xfaba, 0xf581, 0xf3a5, 0xf486, 0xf6d1, 0xfac6,
+ 0xfb3e, 0xf545, 0xf045, 0xf4f3, 0xf853, 0xf388,
+ 0xf66d, 0xfd0b, 0xf9aa, 0xf860, 0xfc8b, 0xfe31,
+ 0x010b, 0x0088, 0xfc1c, 0xfd77, 0xfd6c, 0xfaa8,
+ 0xfd46, 0xff59, 0x0234, 0x040c, 0xfa75, 0xf606,
+ 0xfee9, 0x0075, 0xfc44, 0xfdec, 0xfc1a, 0xf38b,
+ 0xf2d8, 0xfbd3, 0xfb50, 0xf658, 0x00a3, 0x059f,
+ 0xfa1f, 0xf8d9, 0xfddb, 0xfb11, 0xfd51, 0x02cc,
+ 0x012b, 0xfb48, 0xf849, 0xfe3c, 0x02b1, 0x00cf,
+ 0x0438, 0x03b6, 0xfed7, 0x0528, 0x064c, 0xff42,
+ 0x02e6, 0x0432, 0x0057, 0x02ee, 0x00ba, 0xffb8,
+ 0x07cf, 0x0822, 0x0377, 0x01f1, 0xfef1, 0xfef2,
+ 0x0057, 0x028a, 0x0948, 0x069d, 0xfd2b, 0xff28,
+ 0x0456, 0x041d, 0x02a7, 0x01f7, 0x05b3, 0x03ad,
+ 0xf8a7, 0xf94b, 0xfe37, 0xf9fa, 0xfed9, 0x0357,
+ 0xf77c, 0xf71f, 0x018a, 0xfc53, 0xfa96, 0x04f0,
+ 0x019f, 0xf9f5, 0xfe36, 0xff28, 0xfdcb, 0x0408,
+ 0x0689, 0x0206, 0xfd6b, 0xfbae, 0xff2a, 0xff8c,
+ 0xfbe1, 0xfebf, 0xfd54, 0xf5f9, 0xfa06, 0xfc82,
+ 0xf59f, 0xf85b, 0xfdc5, 0xfc2f, 0xfc15, 0xfa26,
+ 0xfbe0, 0x0610, 0x0795, 0x042b, 0x0437, 0xfc94,
+ 0xf91e, 0x0240, 0x031d, 0xfe21, 0xff2e, 0xfb70,
+ 0xf58d, 0xf860, 0xfac6, 0xf967, 0xfc55, 0xfe54,
+ 0xfacb, 0xfa28, 0xfb10, 0xf91a, 0xfde6, 0x0747,
+ 0x0849, 0x04d7, 0x0273, 0x0257, 0x095b, 0x0dec,
+ 0x085f, 0x04af, 0x03d6, 0xffe0, 0xff67, 0x0124,
+ 0xff48, 0xff6c, 0x0134, 0xfc9e, 0xf630, 0xf668,
+ 0xf91f, 0xfd11, 0x0583, 0x0696, 0xfe21, 0xfdd3,
+ 0x02fa, 0x0487, 0x0801, 0x083a, 0x04b0, 0x042c,
+ 0xff3b, 0xfca6, 0x01ab, 0xfd51, 0xf925, 0xff09,
+ 0xfb1f, 0xf317, 0xf389, 0xf3d4, 0xf7fa, 0xfdf3,
+ 0xfd96, 0xfe74, 0xfb19, 0xf4d8, 0xfbce, 0x017f,
+ 0xfc38, 0xfbeb, 0xfe09, 0xfd21, 0xfdd2, 0xfd22,
+ 0xfb50, 0xf8e9, 0xf635, 0xf640, 0xf2c1, 0xf01f,
+ 0xf64b, 0xf668, 0xf198, 0xf653, 0xf8aa, 0xf4b0,
+ 0xf753, 0xfce7, 0xff27, 0xffc0, 0xffbc, 0x0062,
+ 0x0034, 0x0022, 0x030a, 0x063f, 0x0785, 0x0497,
+ 0x0016, 0x012d, 0x0089, 0xfa95, 0xfac1, 0xfc2d,
+ 0xf710, 0xf449, 0xf4c7, 0xf53b, 0xf809, 0xf94d,
+ 0xf899, 0xf9fd, 0xf94c, 0xf716, 0xfad8, 0xfea9,
+ 0xfa8b, 0xfa47, 0x0174, 0xff8f, 0xfa99, 0xff80,
+ 0x0007, 0xfcfc, 0x016e, 0x00d3, 0xfd8a, 0xffc4,
+ 0xfcea, 0xfdc5, 0x05a5, 0x02d0, 0xff0e, 0x029e,
+ 0x02ef, 0x0558, 0x06f2, 0x0318, 0x06db, 0x0b15,
+ 0x0839, 0x0911, 0x08e2, 0x06c1, 0x0966, 0x090b,
+ 0x0706, 0x068c, 0x0336, 0x0398, 0x04ed, 0x0145,
+ 0x026d, 0x04fd, 0x02c3, 0x03e2, 0x0596, 0x026e,
+ 0xffba, 0x01ce, 0x05ed, 0x03f5, 0x01a4, 0x06a9,
+ 0x063d, 0x040a, 0x0a9a, 0x095d, 0x037a, 0x072a,
+ 0x0617, 0x0205, 0x05fb, 0x0638, 0x04b8, 0x08fd,
+ 0x0aa3, 0x086c, 0x0489, 0x0218, 0x04c6, 0x048b,
+ 0x02c1, 0x0698, 0x072e, 0x0342, 0x0354, 0x06e1,
+ 0x0987, 0x0691, 0x0375, 0x077c, 0x0864, 0x0427,
+ 0x03f9, 0x04f8, 0x0543, 0x047a, 0x02b5, 0x05c9,
+ 0x05cf, 0x01f2, 0x0756, 0x097c, 0x03b8, 0x057f,
+ 0x038a, 0xfda1, 0x03e7, 0x050a, 0xfdbc, 0x0072,
+ 0x018d, 0xfca1, 0xfea8, 0x018a, 0x015f, 0x01f1,
+ 0x0299, 0x0418, 0x0281, 0x01d0, 0x07e2, 0x07bf,
+ 0x0541, 0x0c61, 0x0bf3, 0x0566, 0x0b59, 0x0fa7,
+ 0x0c33, 0x0e3f, 0x0d9c, 0x0759, 0x075a, 0x09e0,
+ 0x08e4, 0x0742, 0x07ac, 0x0a0d, 0x0682, 0xfe88,
+ 0x0164, 0x08bd, 0x0588, 0x02f4, 0x07c5, 0x05ff,
+ 0xff0b, 0x0045, 0x04d7, 0x0380, 0x02d9, 0x0726,
+ 0x0705, 0x00eb, 0xff59, 0x0350, 0x04d3, 0x0205,
+ 0xff1e, 0xff74, 0xffb7, 0xfc34, 0xfb36, 0xfe23,
+ 0xfd84, 0xfdf6, 0x01b5, 0xff3d, 0xfe48, 0x0526,
+ 0x0504, 0x01e2, 0x052a, 0x018a, 0xfda2, 0x050d,
+ 0x0537, 0x015a, 0x08a9, 0x08c7, 0x01be, 0x045d,
+ 0x0337, 0xff33, 0x0531, 0x0505, 0xfe92, 0xffca,
+ 0xff1b, 0xfda6, 0x006d, 0xfda4, 0xfd85, 0x01b2,
+ 0xfc5a, 0xfa38, 0xff3f, 0xfc0c, 0xfb3b, 0xff5a,
+ 0xfafe, 0xf912, 0xfae5, 0xf681, 0xf969, 0x0180,
+ 0xfe40, 0xfa26, 0xfb49, 0xf859, 0xf649, 0xf860,
+ 0xf86a, 0xf891, 0xf9f0, 0xf761, 0xf3c4, 0xf537,
+ 0xf85e, 0xf9d3, 0xfc5c, 0xfd6b, 0xfbdb, 0xfcb6,
+ 0xfa73, 0xf476, 0xf840, 0xff2d, 0xfc36, 0xf952,
+ 0xfa6e, 0xf99c, 0xf9fc, 0xfa71, 0xf9d7, 0xfa99,
+ 0xf82e, 0xf6c9, 0xf9b6, 0xf5c3, 0xf183, 0xf7c8,
+ 0xf97e, 0xf2e8, 0xf121, 0xf186, 0xf102, 0xf315,
+ 0xf35d, 0xf11f, 0xf060, 0xf057, 0xefc5, 0xed78,
+ 0xec9b, 0xf107, 0xf2b3, 0xefdf, 0xf12f, 0xf1cf,
+ 0xeffa, 0xf3af, 0xf502, 0xf190, 0xf49f, 0xf67c,
+ 0xf1ea, 0xf2e6, 0xf734, 0xf9e7, 0xfe12, 0xff0d,
+ 0xff7c, 0x042e, 0x056a, 0x0540, 0x0841, 0x07b1,
+ 0x057a, 0x0606, 0x068c, 0x069d, 0x065d, 0x07e8,
+ 0x0916, 0x0501, 0x0526, 0x08c8, 0x045b, 0x03ef,
+ 0x0926, 0x0525, 0x024e, 0x0420, 0x0119, 0x0116,
+ 0x00df, 0xfd78, 0x01c4, 0x0185, 0xfa4b, 0xfd35,
+ 0xfeba, 0xfb32, 0xffbd, 0xff1c, 0xf77f, 0xf913,
+ 0xfd77, 0xfdfc, 0xfe3c, 0xfef5, 0x0175, 0x00ea,
+ 0xfe63, 0x0268, 0x063e, 0x06a2, 0x094a, 0x094f,
+ 0x080d, 0x0a17, 0x09c8, 0x0947, 0x0bda, 0x0e2b,
+ 0x109b, 0x0e82, 0x084e, 0x0a8f, 0x10ea, 0x0fb9,
+ 0x0e60, 0x11ac, 0x118c, 0x0e5b, 0x0e9a, 0x1080,
+ 0x1129, 0x11ff, 0x11d6, 0x104f, 0x0f04, 0x0d9d,
+ 0x0e96, 0x105a, 0x0dae, 0x0b32, 0x0931, 0x04ae,
+ 0x04aa, 0x03fe, 0xfeb6, 0x011e, 0x01fd, 0xf913,
+ 0xf765, 0xf904, 0xf59f, 0xf740, 0xf801, 0xf510,
+ 0xf64e, 0xf4e5, 0xf290, 0xf3fc, 0xf22e, 0xf1de,
+ 0xf34c, 0xf0dd, 0xf195, 0xf1e3, 0xf026, 0xf444,
+ 0xf39c, 0xee15, 0xefb3, 0xeffe, 0xef1a, 0xf251,
+ 0xf188, 0xf249, 0xf502, 0xf076, 0xf014, 0xf4e6,
+ 0xf395, 0xf3fe, 0xf664, 0xf2cd, 0xf08e, 0xf32c,
+ 0xf53b, 0xf449, 0xf272, 0xf3b4, 0xf487, 0xf2e5,
+ 0xf34b, 0xf283, 0xf128, 0xf5c4, 0xf9f7, 0xf6cb,
+ 0xf169, 0xf1f9, 0xf6bd, 0xf3a7, 0xedaf, 0xf1ca,
+ 0xf3d1, 0xef57, 0xf2a8, 0xf6a2, 0xf361, 0xf33e,
+ 0xf4fa, 0xf2da, 0xf1c9, 0xf3ee, 0xf645, 0xf663,
+ 0xf5dc, 0xf721, 0xf802, 0xf7d1, 0xf89c, 0xfb95,
+ 0xfec0, 0xfc98, 0xfa46, 0xfe43, 0xfe71, 0xfc27,
+ 0x0169, 0x02f6, 0xfeb2, 0x00a5, 0x01be, 0xfeb6,
+ 0x0092, 0x02df, 0x0228, 0x0379, 0x03d8, 0x0055,
+ 0xfec0, 0x0266, 0x04cc, 0x017a, 0xfe4e, 0xfe84,
+ 0xffd8, 0x008b, 0xfec2, 0xffc4, 0x0524, 0x0363,
+ 0xfd3d, 0xfd5c, 0xfe95, 0x001b, 0x04b1, 0x057d,
+ 0x03f4, 0x0417, 0x02fd, 0x0304, 0x04cc, 0x04e6,
+ 0x03fc, 0x024f, 0x0082, 0xfe64, 0xfbdc, 0xfe3b,
+ 0x02a5, 0x015e, 0xfe5e, 0xfcb2, 0xfa48, 0xf834,
+ 0xf721, 0xf9b1, 0xfdf1, 0xfc34, 0xf8c6, 0xf889,
+ 0xf6c5, 0xf609, 0xf8f3, 0xfa62, 0xf8c9, 0xf530,
+ 0xf2e2, 0xf48e, 0xf584, 0xf4b1, 0xf5d0, 0xf6b3,
+ 0xf491, 0xf23d, 0xf3c1, 0xf687, 0xf623, 0xf693,
+ 0xf876, 0xf766, 0xf68d, 0xf61e, 0xf5e6, 0xf9a9,
+ 0xf98a, 0xf5b6, 0xf7c3, 0xf532, 0xef2d, 0xf574,
+ 0xf958, 0xf21b, 0xf0f7, 0xf2e2, 0xefaf, 0xeee2,
+ 0xf10b, 0xf3af, 0xf4f2, 0xf249, 0xf167, 0xf29b,
+ 0xf1f3, 0xf3f5, 0xf73c, 0xf745, 0xf60d, 0xf39a,
+ 0xf2d7, 0xf5bd, 0xf691, 0xf67e, 0xf6f7, 0xf2ce,
+ 0xee62, 0xeee2, 0xeff4, 0xf02c, 0xf127, 0xf343,
+ 0xf44c, 0xf081, 0xed9d, 0xf187, 0xf5cb, 0xf7b7,
+ 0xf8f8, 0xf755, 0xf691, 0xf772, 0xf4f5, 0xf63c,
+ 0xfd80, 0xfe21, 0xf942, 0xf876, 0xf990, 0xfa89,
+ 0xfc78, 0xfdab, 0xfdf1, 0xfcae, 0xf9d7, 0xf76f,
+ 0xf633, 0xf848, 0xfb27, 0xf928, 0xf790, 0xf7f6,
+ 0xf45c, 0xf36c, 0xf71c, 0xf634, 0xf4e1, 0xf655,
+ 0xf4e3, 0xf48b, 0xf6e6, 0xf7e0, 0xf969, 0xfab3,
+ 0xfa9c, 0xf91c, 0xf42e, 0xf3eb, 0xfa0b, 0xf986,
+ 0xf5f8, 0xf780, 0xf659, 0xf400, 0xf67d, 0xf7d0,
+ 0xf65c, 0xf532, 0xf40a, 0xf41d, 0xf4f4, 0xf576,
+ 0xf7fc, 0xfb4c, 0xfb09, 0xf980, 0xfac7, 0xf9c6,
+ 0xf65a, 0xfa53, 0xff37, 0xfbc7, 0xfa26, 0xf8d0,
+ 0xf2f5, 0xf633, 0xfa94, 0xf37b, 0xf345, 0xf8cf,
+ 0xf3e8, 0xf13f, 0xf44d, 0xf2b4, 0xf42c, 0xf81b,
+ 0xf668, 0xf6ee, 0xfa1a, 0xf88e, 0xf827, 0xfbb1,
+ 0xfb9a, 0xf89d, 0xf819, 0xf66d, 0xf324, 0xf4de,
+ 0xf709, 0xf3f5, 0xf2f4, 0xf482, 0xf2f3, 0xf1d2,
+ 0xf306, 0xf459, 0xf5a5, 0xf663, 0xf7b9, 0xf8ce,
+ 0xf81d, 0xf994, 0xfc0b, 0xfcb7, 0xff65, 0x01e9,
+ 0x00c6, 0xff42, 0xfe8c, 0xfee5, 0xfed9, 0xfd13,
+ 0xfda7, 0xfda1, 0xfa3c, 0xfa6a, 0xfba7, 0xfaaa,
+ 0xfc45, 0xfcea, 0xfcf1, 0xffa1, 0xfeb0, 0xff6d,
+ 0x055e, 0x043c, 0x0112, 0x03ff, 0x0347, 0xfff4,
+ 0x002a, 0x0070, 0x0066, 0xff89, 0xfe8c, 0xff21,
+ 0xfbcb, 0xf83a, 0xfb85, 0xfdaa, 0xfba1, 0xfa89,
+ 0xf9c6, 0xfa8b, 0xfc6c, 0xfca1, 0xfdf6, 0xff1e,
+ 0xfdd5, 0xfd90, 0xfd36, 0xfc81, 0xfef3, 0x012b,
+ 0x0012, 0xfe6b, 0xfd80, 0xfcf9, 0xfcc0, 0xfd93,
+ 0xfef4, 0xfe15, 0xfc7f, 0xfcc9, 0xfbf3, 0xfa20,
+ 0xfb83, 0xfe7b, 0xfebd, 0xfd44, 0xfcef, 0xfcd1,
+ 0xfc5b, 0xfd48, 0xfe10, 0xfe39, 0xff63, 0xfdc8,
+ 0xfa08, 0xfb5d, 0xff91, 0x00f7, 0x002c, 0xfe14,
+ 0xfcd4, 0xfcf8, 0xfb87, 0xfabf, 0xfbbc, 0xfaec,
+ 0xf9a9, 0xf93c, 0xf8bd, 0xf933, 0xf8c5, 0xf7d1,
+ 0xf901, 0xf8d5, 0xf782, 0xf84d, 0xf7c8, 0xf74a,
+ 0xfa06, 0xfa6e, 0xf8d1, 0xfa4f, 0xfb3b, 0xfa2d,
+ 0xfc07, 0xff1d, 0xfde2, 0xfa79, 0xfb1d, 0xfd9c,
+ 0xfc6f, 0xfb5c, 0xfd59, 0xfd43, 0xfaf5, 0xfb02,
+ 0xfd67, 0xff87, 0x0016, 0x00f7, 0x0254, 0x00c5,
+ 0xff9b, 0x025d, 0x038e, 0x039f, 0x0643, 0x0619,
+ 0x0357, 0x03c7, 0x050a, 0x04e8, 0x0406, 0x027e,
+ 0x02fb, 0x038b, 0x00bc, 0xfefe, 0xff65, 0xfee7,
+ 0xff04, 0xff52, 0xff20, 0xffca, 0xff4c, 0xffca,
+ 0x042e, 0x0572, 0x0164, 0xfff6, 0x02c5, 0x0502,
+ 0x0497, 0x037f, 0x0426, 0x04a9, 0x0300, 0x0163,
+ 0x0124, 0x0168, 0x018a, 0x017f, 0x01e9, 0x0285,
+ 0x0356, 0x04b3, 0x049b, 0x038d, 0x0403, 0x0442,
+ 0x0495, 0x06b3, 0x06bb, 0x0527, 0x06f1, 0x08af,
+ 0x06ab, 0x04cd, 0x0475, 0x0423, 0x050b, 0x0622,
+ 0x04b9, 0x0311, 0x034b, 0x02bc, 0x0122, 0x00d5,
+ 0x008f, 0xffe0, 0x00a4, 0x016e, 0x013b, 0x0133,
+ 0x0014, 0xfe58, 0xfede, 0x0011, 0x003d, 0x01dd,
+ 0x044b, 0x0423, 0x02d5, 0x036e, 0x04fe, 0x055c,
+ 0x04b3, 0x04f5, 0x0607, 0x060b, 0x077c, 0x0b6f,
+ 0x0bc0, 0x0974, 0x0b26, 0x0c74, 0x0a84, 0x0b00,
+ 0x0c61, 0x0c55, 0x0dff, 0x0faf, 0x0fc8, 0x0e9c,
+ 0x0b5e, 0x0b12, 0x0e9b, 0x0e2c, 0x0b5f, 0x0b2b,
+ 0x09a8, 0x078d, 0x0a4b, 0x0ddc, 0x0b89, 0x07f5,
+ 0x0a5c, 0x0d1c, 0x09ff, 0x0743, 0x0801, 0x0842,
+ 0x080d, 0x07a0, 0x06ba, 0x068b, 0x05f6, 0x0608,
+ 0x0792, 0x0728, 0x05f0, 0x0663, 0x0659, 0x0565,
+ 0x04af, 0x0567, 0x06d4, 0x0586, 0x04bc, 0x07b6,
+ 0x0884, 0x076a, 0x0895, 0x07d9, 0x060e, 0x086d,
+ 0x0ae9, 0x0a0f, 0x09c2, 0x0b42, 0x0b3d, 0x09b1,
+ 0x0971, 0x0955, 0x096d, 0x0b54, 0x0a27, 0x0736,
+ 0x0955, 0x0a14, 0x068d, 0x0626, 0x05a2, 0x042e,
+ 0x0709, 0x0758, 0x0485, 0x06bd, 0x0860, 0x05e7,
+ 0x05d2, 0x062b, 0x03c6, 0x0255, 0x02db, 0x03af,
+ 0x0381, 0x026e, 0x02a8, 0x036d, 0x031c, 0x03cc,
+ 0x052a, 0x03e8, 0x01d6, 0x037a, 0x06dd, 0x0703,
+ 0x0539, 0x04b3, 0x0454, 0x0364, 0x02d9, 0x02c9,
+ 0x0318, 0x02e0, 0x0169, 0x0069, 0x00f6, 0x0102,
+ 0xffc5, 0xffa2, 0xffec, 0xfe9e, 0xfe1f, 0xfe88,
+ 0xfd9f, 0xfd90, 0xfeb7, 0xff38, 0xff43, 0xfd66,
+ 0xfae5, 0xfaf5, 0xfb41, 0xfb85, 0xfc9b, 0xfa11,
+ 0xf59c, 0xf4d6, 0xf628, 0xf717, 0xf5d9, 0xf38b,
+ 0xf5ac, 0xf76f, 0xf3f1, 0xf4ca, 0xfa4f, 0xfb18,
+ 0xfa5b, 0xfd1c, 0x0053, 0x0121, 0x005c, 0x01c7,
+ 0x049f, 0x04a9, 0x0418, 0x05bd, 0x078d, 0x082f,
+ 0x080d, 0x086c, 0x096e, 0x0854, 0x0548, 0x0440,
+ 0x04ee, 0x0484, 0x044b, 0x0514, 0x04d7, 0x038a,
+ 0x02b2, 0x033e, 0x04a9, 0x0493, 0x0250, 0x0051,
+ 0x0065, 0x01c6, 0x0291, 0x0127, 0xff00, 0xfeee,
+ 0xfe4d, 0xfcde, 0xfee1, 0xff4e, 0xfd7f, 0x00b2,
+ 0x017d, 0xfda0, 0xfef3, 0xff8a, 0xfd43, 0x0069,
+ 0x023d, 0x0050, 0x020d, 0x03d7, 0x045c, 0x0646,
+ 0x063d, 0x06ae, 0x08de, 0x07b7, 0x0741, 0x0ac7,
+ 0x0d48, 0x0ea7, 0x0f89, 0x0f47, 0x1083, 0x1274,
+ 0x13de, 0x1605, 0x1737, 0x168b, 0x1586, 0x1486,
+ 0x12ff, 0x1231, 0x139b, 0x13ab, 0x1183, 0x1196,
+ 0x1149, 0x0e27, 0x0c52, 0x0ac4, 0x0823, 0x07b1,
+ 0x07d2, 0x0626, 0x04c0, 0x03da, 0x03e1, 0x0537,
+ 0x0352, 0xff7b, 0xff4e, 0xff2e, 0xfd71, 0xfdfa,
+ 0xfe55, 0xfc8a, 0xfafc, 0xfac6, 0xfb03, 0xf9da,
+ 0xf8ac, 0xf8a3, 0xf762, 0xf615, 0xf6f6, 0xf738,
+ 0xf51f, 0xf478, 0xf5b5, 0xf4ad, 0xf320, 0xf23a,
+ 0xf090, 0xf1e4, 0xf443, 0xf42c, 0xf50c, 0xf5ed,
+ 0xf67d, 0xf80d, 0xf83c, 0xf895, 0xf86c, 0xf715,
+ 0xf8bc, 0xf9a8, 0xf887, 0xfa8d, 0xfb56, 0xf90a,
+ 0xf954, 0xf908, 0xf654, 0xf702, 0xf7dc, 0xf574,
+ 0xf4d6, 0xf3d3, 0xf132, 0xf1b7, 0xf16a, 0xefdb,
+ 0xf0c0, 0xefa4, 0xee70, 0xf038, 0xefcb, 0xee96,
+ 0xeea2, 0xedd8, 0xef33, 0xf171, 0xf06d, 0xefd1,
+ 0xf198, 0xf3ed, 0xf5f5, 0xf511, 0xf401, 0xf6b3,
+ 0xf808, 0xf7e2, 0xf979, 0xf987, 0xf98a, 0xfac1,
+ 0xfa2c, 0xfa3c, 0xfb65, 0xfb76, 0xfbc4, 0xfd14,
+ 0xfefb, 0xffeb, 0xfef6, 0xfd9c, 0xfdb0, 0xff96,
+ 0x0085, 0xff71, 0xfee0, 0x006c, 0x0276, 0x0136,
+ 0x0075, 0x0386, 0x0373, 0x01f5, 0x03ae, 0x0429,
+ 0x047e, 0x05a5, 0x0527, 0x04db, 0x04d0, 0x04b7,
+ 0x041f, 0x0307, 0x045a, 0x055e, 0x03d4, 0x0396,
+ 0x038a, 0x00dd, 0xfeea, 0xff99, 0x0007, 0x009d,
+ 0x0079, 0xfd03, 0xfc55, 0xfe1f, 0xfc8f, 0xfc9e,
+ 0xfcbb, 0xfa17, 0xfa77, 0xfabb, 0xfa4a, 0xfbef,
+ 0xfb26, 0xfa84, 0xfc29, 0xfcd1, 0xfd32, 0xfc2d,
+ 0xfb9a, 0xfdba, 0xfe10, 0xfd7e, 0xfd93, 0xfb91,
+ 0xfa97, 0xfb97, 0xfadb, 0xfa4f, 0xfa1b, 0xf7c2,
+ 0xf6c0, 0xf803, 0xf890, 0xf83f, 0xf71f, 0xf6ed,
+ 0xf750, 0xf5d1, 0xf5ba, 0xf669, 0xf548, 0xf5d1,
+ 0xf5b4, 0xf393, 0xf4fb, 0xf67c, 0xf357, 0xf1f8,
+ 0xf3f2, 0xf30b, 0xf2bb, 0xf57e, 0xf4b1, 0xf35c,
+ 0xf496, 0xf49d, 0xf5ca, 0xf60e, 0xf42d, 0xf4b8,
+ 0xf4ce, 0xf57c, 0xf76c, 0xf505, 0xf31c, 0xf501,
+ 0xf62c, 0xf67f, 0xf709, 0xf706, 0xf550, 0xf3f5,
+ 0xf442, 0xf417, 0xf504, 0xf528, 0xf338, 0xf490,
+ 0xf670, 0xf52e, 0xf440, 0xf48b, 0xf581, 0xf784,
+ 0xfa52, 0xfa93, 0xf897, 0xf938, 0xf914, 0xf7df,
+ 0xf9b3, 0xf9f2, 0xf8b2, 0xf80a, 0xf709, 0xf8bb,
+ 0xf957, 0xf746, 0xf7db, 0xf792, 0xf5d9, 0xf715,
+ 0xf848, 0xf8fa, 0xfb7b, 0xfccc, 0xfd0a, 0xff19,
+ 0xff80, 0xfd9c, 0xfd3a, 0xfc7b, 0xfc13, 0xfd51,
+ 0xfc07, 0xfa6b, 0xfa95, 0xfa14, 0xfa53, 0xfa22,
+ 0xf8ed, 0xf94c, 0xf94f, 0xf982, 0xfb9e, 0xfbfe,
+ 0xfb30, 0xfbbd, 0xfac5, 0xfa60, 0xfe3b, 0x003c,
+ 0xff06, 0xfff2, 0x0142, 0x00a0, 0xff21, 0xfea1,
+ 0xfe9b, 0xfc67, 0xfb9f, 0xfb4f, 0xf8b0, 0xfa12,
+ 0xfaf7, 0xf85a, 0xf9d8, 0xfa7b, 0xf975, 0xfba4,
+ 0xfc1c, 0xfbdf, 0xfcf2, 0xfd5e, 0xfdaa, 0xfcc8,
+ 0xfbde, 0xfb38, 0xfac1, 0xfb70, 0xf9dc, 0xf8c2,
+ 0xf9e2, 0xf816, 0xf6a2, 0xf73b, 0xf658, 0xf5a6,
+ 0xf5e1, 0xf676, 0xf771, 0xf730, 0xf646, 0xf7ef,
+ 0xfa6e, 0xf9d9, 0xfa12, 0xfb64, 0xfa18, 0xfac6,
+ 0xfc20, 0xfb35, 0xfc41, 0xfbec, 0xfa08, 0xfac4,
+ 0xfa7c, 0xf9d1, 0xfa8f, 0xfa49, 0xf9de, 0xfa47,
+ 0xfb3b, 0xfbc8, 0xfc06, 0xfd27, 0xfd4b, 0xfd69,
+ 0xffbb, 0x0126, 0x0115, 0x0213, 0x02c7, 0x02a8,
+ 0x034b, 0x024f, 0x00eb, 0x0317, 0x03a6, 0x01e8,
+ 0x024f, 0x00cf, 0xff0b, 0x0062, 0x001c, 0xff5e,
+ 0xff90, 0xfe87, 0xfe0e, 0xfe8f, 0xff93, 0x008e,
+ 0xfff6, 0xff91, 0x007a, 0x0088, 0x00aa, 0x02b2,
+ 0x033a, 0x02c7, 0x0416, 0x0279, 0x00e7, 0x036b,
+ 0x02b5, 0x0109, 0x025f, 0x027f, 0x020e, 0x00bc,
+ 0x007a, 0x0262, 0x0135, 0x0112, 0x02bd, 0x0111,
+ 0x00ee, 0x022f, 0x017c, 0x0199, 0x01c5, 0x0127,
+ 0x01a2, 0x0307, 0x02fa, 0x025e, 0x03fa, 0x0471,
+ 0x0354, 0x03e0, 0x042c, 0x045b, 0x04a1, 0x0476,
+ 0x0580, 0x0497, 0x018f, 0x00ea, 0x01cb, 0x022c,
+ 0x0173, 0x0000, 0xffb6, 0xfffb, 0xff35, 0xff2e,
+ 0x00b9, 0x0085, 0xff73, 0xff6e, 0xfe33, 0xfe8c,
+ 0x008e, 0x004f, 0x0077, 0xff88, 0xfd80, 0xffee,
+ 0x01b6, 0xffd1, 0xff7d, 0x0049, 0x003f, 0x002b,
+ 0x0085, 0x0053, 0xffcb, 0x00d9, 0x0262, 0x032e,
+ 0x02b2, 0x0171, 0x02aa, 0x03dc, 0x0323, 0x0487,
+ 0x062c, 0x05f9, 0x06a0, 0x0786, 0x07be, 0x08d6,
+ 0x09a2, 0x0895, 0x08ce, 0x0a52, 0x0994, 0x08e3,
+ 0x092b, 0x08ea, 0x09b0, 0x09e7, 0x089f, 0x073f,
+ 0x05fe, 0x0627, 0x067b, 0x06c2, 0x0869, 0x08b5,
+ 0x07c7, 0x080f, 0x090c, 0x0a11, 0x0aee, 0x0bb5,
+ 0x0b1b, 0x097d, 0x090c, 0x08f6, 0x08f7, 0x089e,
+ 0x083e, 0x095a, 0x08e2, 0x0828, 0x0a30, 0x0ade,
+ 0x0aaa, 0x0b62, 0x0b16, 0x0b42, 0x0bc6, 0x0af1,
+ 0x0a87, 0x0b50, 0x0b73, 0x0b0c, 0x0be4, 0x0c58,
+ 0x0c88, 0x0e44, 0x0e50, 0x0cd9, 0x0c0f, 0x09ed,
+ 0x080e, 0x0819, 0x077a, 0x0606, 0x0607, 0x070e,
+ 0x06ce, 0x062e, 0x0560, 0x043d, 0x051c, 0x053b,
+ 0x0384, 0x0309, 0x02d1, 0x040e, 0x05a4, 0x04fc,
+ 0x0598, 0x05ed, 0x0538, 0x05ed, 0x0557, 0x05ef,
+ 0x0860, 0x0858, 0x08d5, 0x09d3, 0x08b5, 0x07b0,
+ 0x071e, 0x07ef, 0x0982, 0x08ff, 0x08ab, 0x091f,
+ 0x092a, 0x0abc, 0x0b9d, 0x0a55, 0x0add, 0x0b7b,
+ 0x09f2, 0x098e, 0x090f, 0x0856, 0x09ce, 0x0994,
+ 0x0851, 0x096c, 0x096a, 0x089a, 0x0888, 0x06ee,
+ 0x062a, 0x0767, 0x06a8, 0x04e5, 0x056d, 0x05cd,
+ 0x0548, 0x05f7, 0x0550, 0x03ca, 0x0428, 0x047f,
+ 0x055c, 0x0648, 0x0555, 0x054c, 0x0592, 0x04d0,
+ 0x0523, 0x062a, 0x06a0, 0x05c9, 0x0555, 0x05fb,
+ 0x05a7, 0x067a, 0x06f7, 0x0474, 0x044e, 0x060e,
+ 0x05cf, 0x0510, 0x040b, 0x0409, 0x05a4, 0x0622,
+ 0x05df, 0x0657, 0x066b, 0x0537, 0x04ec, 0x05fb,
+ 0x05dc, 0x05de, 0x0654, 0x0528, 0x046d, 0x04fa,
+ 0x048f, 0x02d1, 0x0262, 0x03fd, 0x0405, 0x038f,
+ 0x0441, 0x0331, 0x0287, 0x02ac, 0x017a, 0x01a5,
+ 0x01d5, 0x0148, 0x0248, 0x0288, 0x0231, 0x023f,
+ 0x0222, 0x0270, 0x00c4, 0xff84, 0x0167, 0x0108,
+ 0x000b, 0x0192, 0x0160, 0x00b6, 0x0106, 0x0049,
+ 0xffdf, 0xffef, 0x0099, 0x01ce, 0x01c0, 0x01e6,
+ 0x018d, 0xff80, 0xff02, 0xff39, 0xfe02, 0xfcf2,
+ 0xfcf6, 0xfd26, 0xfb56, 0xf913, 0xf841, 0xf6e0,
+ 0xf6ab, 0xf6be, 0xf407, 0xf2bc, 0xf30f, 0xf230,
+ 0xf128, 0xefc0, 0xefea, 0xf0e4, 0xef9e, 0xefab,
+ 0xf11c, 0xf136, 0xf190, 0xf1d1, 0xf207, 0xf32b,
+ 0xf413, 0xf4a9, 0xf5bf, 0xf721, 0xf739, 0xf70f,
+ 0xf856, 0xf8a2, 0xf866, 0xf8b8, 0xf874, 0xf9c3,
+ 0xfa9b, 0xf8f1, 0xf92f, 0xfa4b, 0xfa7d, 0xfbe8,
+ 0xfcbc, 0xfd19, 0xfe1f, 0xfd2b, 0xfc02, 0xfd46,
+ 0xfe16, 0xfd89, 0xfd25, 0xfc47, 0xfbcb, 0xfc6e,
+ 0xfc2c, 0xfb9f, 0xfb6b, 0xf9b4, 0xf823, 0xf83a,
+ 0xf836, 0xf819, 0xf815, 0xf750, 0xf637, 0xf5b7,
+ 0xf61e, 0xf669, 0xf66f, 0xf777, 0xf86b, 0xf896,
+ 0xf9b4, 0xfb0e, 0xfb97, 0xfc9d, 0xfe0d, 0xff21,
+ 0x0056, 0x01a5, 0x01b3, 0x00e5, 0x024e, 0x04e7,
+ 0x058f, 0x0666, 0x0848, 0x097e, 0x09ee, 0x099c,
+ 0x0abf, 0x0bf8, 0x0a6b, 0x0b29, 0x0d3c, 0x0c3a,
+ 0x0c76, 0x0ce3, 0x0b9d, 0x0c51, 0x0cd9, 0x0c7f,
+ 0x0c8e, 0x0b44, 0x0a2e, 0x09e4, 0x09d9, 0x0a44,
+ 0x099d, 0x094d, 0x09b8, 0x0921, 0x0951, 0x0a59,
+ 0x0a5c, 0x093c, 0x0846, 0x0871, 0x07ab, 0x066e,
+ 0x0644, 0x0518, 0x03df, 0x0304, 0x015e, 0x0082,
+ 0xfe6a, 0xfb43, 0xfa9c, 0xf9c4, 0xf846, 0xf7e9,
+ 0xf681, 0xf4db, 0xf444, 0xf486, 0xf5cc, 0xf602,
+ 0xf5cc, 0xf6ee, 0xf7b2, 0xf81c, 0xf8d0, 0xf975,
+ 0xfa95, 0xfbd2, 0xfc40, 0xfb6c, 0xfaef, 0xfb92,
+ 0xfaba, 0xf92a, 0xf881, 0xf775, 0xf6f3, 0xf6c5,
+ 0xf66b, 0xf6e9, 0xf5ff, 0xf3fc, 0xf354, 0xf2e4,
+ 0xf2f8, 0xf3a7, 0xf326, 0xf241, 0xf1fc, 0xf19e,
+ 0xf0fc, 0xf10d, 0xf180, 0xf111, 0xf090, 0xf0df,
+ 0xf1a5, 0xf209, 0xf202, 0xf2e7, 0xf381, 0xf3a2,
+ 0xf4df, 0xf51a, 0xf558, 0xf6c2, 0xf652, 0xf630,
+ 0xf70a, 0xf653, 0xf631, 0xf66c, 0xf5a5, 0xf549,
+ 0xf548, 0xf512, 0xf47d, 0xf4f3, 0xf66e, 0xf6f3,
+ 0xf834, 0xf964, 0xf8e6, 0xf978, 0xf9b3, 0xf919,
+ 0xfa9e, 0xfbfd, 0xfc4f, 0xfe00, 0x0015, 0x00c9,
+ 0x00ba, 0x0189, 0x02f6, 0x03be, 0x03a8, 0x03a1,
+ 0x0520, 0x0646, 0x0572, 0x059f, 0x069a, 0x0657,
+ 0x0661, 0x069d, 0x05fd, 0x05cd, 0x066e, 0x070f,
+ 0x0760, 0x0731, 0x06de, 0x073c, 0x07c2, 0x0776,
+ 0x072d, 0x074b, 0x0687, 0x0530, 0x0532, 0x05d3,
+ 0x0545, 0x04ee, 0x052e, 0x04e5, 0x055d, 0x05d4,
+ 0x052d, 0x0540, 0x0517, 0x038f, 0x027c, 0x0244,
+ 0x0255, 0x01d5, 0x00ca, 0x00c4, 0x00f9, 0x001e,
+ 0xff63, 0xff38, 0xfec2, 0xfe77, 0xff03, 0xff11,
+ 0xfe5c, 0xfe6f, 0xfe8a, 0xfe12, 0xfe36, 0xfe56,
+ 0xfdb9, 0xfcf3, 0xfc47, 0xfc0c, 0xfc2b, 0xfc39,
+ 0xfc38, 0xfbe3, 0xfb97, 0xfc19, 0xfcf4, 0xfd80,
+ 0xfd46, 0xfcc9, 0xfdc9, 0xff08, 0xfea6, 0xfead,
+ 0xff11, 0xfe72, 0xfe70, 0xfe42, 0xfdbb, 0xfeb9,
+ 0xfe7b, 0xfcf9, 0xfd1b, 0xfbff, 0xfa0f, 0xfa72,
+ 0xf9d5, 0xf833, 0xf8b7, 0xf896, 0xf74a, 0xf749,
+ 0xf736, 0xf743, 0xf8ae, 0xf9b8, 0xfa1a, 0xfa7b,
+ 0xfaf8, 0xfbf6, 0xfbe7, 0xfaf3, 0xfb2d, 0xfab1,
+ 0xf967, 0xfa43, 0xfac8, 0xf955, 0xf92f, 0xf9a7,
+ 0xf95b, 0xf9bd, 0xfa4b, 0xfb07, 0xfb9d, 0xfb0e,
+ 0xfc24, 0xfe46, 0xfe6f, 0xfee1, 0xffc4, 0x0005,
+ 0x014f, 0x021f, 0x01d3, 0x0230, 0x027e, 0x027b,
+ 0x028d, 0x0241, 0x01bd, 0x0164, 0x018a, 0x019f,
+ 0x00d0, 0xffa8, 0xff79, 0x0002, 0xffa1, 0xffa2,
+ 0x006a, 0xffd3, 0x003d, 0x0208, 0x01f6, 0x0296,
+ 0x04d9, 0x05a6, 0x055d, 0x04fa, 0x0498, 0x0436,
+ 0x0390, 0x02e4, 0x0228, 0x01c1, 0x0190, 0x012e,
+ 0x00e7, 0x006c, 0x00a2, 0x012a, 0x00e1, 0x01c8,
+ 0x02bf, 0x0271, 0x032f, 0x03ef, 0x042f, 0x047e,
+ 0x0409, 0x0468, 0x045c, 0x02b5, 0x0283, 0x0261,
+ 0x00fe, 0x0101, 0x018e, 0x011c, 0x00f1, 0x017a,
+ 0x013c, 0x004a, 0x003d, 0x0084, 0x006d, 0xffd2,
+ 0xfe97, 0xfe50, 0xfe0e, 0xfd03, 0xfd8c, 0xfe61,
+ 0xfe35, 0xfeb4, 0xff27, 0xfedc, 0xfea7, 0xfeb4,
+ 0xfe41, 0xfd19, 0xfc78, 0xfb66, 0xf95a, 0xf859,
+ 0xf75b, 0xf61b, 0xf691, 0xf7b0, 0xf86b, 0xf90a,
+ 0xfa4c, 0xfc0f, 0xfc81, 0xfce7, 0xfe0f, 0xfddf,
+ 0xfdc8, 0xfe7d, 0xfe12, 0xfd4b, 0xfd2a, 0xfd96,
+ 0xfe00, 0xfdf9, 0xfe93, 0xff78, 0xff8e, 0xffc3,
+ 0x0074, 0x00d1, 0x00e9, 0x00f0, 0x003e, 0xffa4,
+ 0xffd7, 0xfe8c, 0xfcd8, 0xfd9e, 0xfe5a, 0xfe64,
+ 0xff6d, 0xfff8, 0x003a, 0x0070, 0xffd8, 0xfffb,
+ 0xffb9, 0xfe75, 0xfedb, 0xff50, 0xfe57, 0xfe11,
+ 0xfdad, 0xfc86, 0xfc29, 0xfba8, 0xfa97, 0xfa7d,
+ 0xfad1, 0xfaf5, 0xfbfe, 0xfd7c, 0xfe29, 0xfed4,
+ 0xffeb, 0xfff2, 0xff99, 0x007b, 0x00fd, 0x0063,
+ 0x000c, 0xff82, 0xfebb, 0xfeb0, 0xff10, 0xff78,
+ 0xffa0, 0xffe8, 0x006c, 0x002a, 0xfff7, 0x002b,
+ 0xffe1, 0xffce, 0xff53, 0xfdec, 0xfd11, 0xfcbc,
+ 0xfce5, 0xfd1e, 0xfc7e, 0xfc75, 0xfcc0, 0xfc90,
+ 0xfd90, 0xfeb0, 0xfe65, 0xfe74, 0xfecc, 0xfdb9,
+ 0xfc9a, 0xfcdd, 0xfc72, 0xfaad, 0xf9c0, 0xf98b,
+ 0xf904, 0xf8c6, 0xf906, 0xf95d, 0xf924, 0xf855,
+ 0xf7dd, 0xf809, 0xf8c2, 0xf994, 0xf9dd, 0xf9fc,
+ 0xfa65, 0xfaa8, 0xfa9a, 0xfb4a, 0xfc1c, 0xfb7a,
+ 0xfb73, 0xfcad, 0xfce5, 0xfd3f, 0xfe4d, 0xff07,
+ 0x002a, 0x00f7, 0x0127, 0x01ed, 0x0285, 0x0263,
+ 0x0209, 0x01cc, 0x0170, 0x0103, 0x0177, 0x01fb,
+ 0x01e7, 0x020e, 0x0240, 0x02bf, 0x02ec, 0x027e,
+ 0x02d2, 0x0289, 0x01ed, 0x024b, 0x01a0, 0x014d,
+ 0x0204, 0x01ee, 0x024b, 0x024d, 0x0206, 0x02a9,
+ 0x01f8, 0x01e7, 0x036d, 0x0395, 0x043f, 0x0515,
+ 0x0455, 0x0462, 0x04cf, 0x0511, 0x05f7, 0x0697,
+ 0x073b, 0x076f, 0x06da, 0x06f5, 0x0761, 0x07d4,
+ 0x087e, 0x086b, 0x07ff, 0x081d, 0x0846, 0x07bd,
+ 0x06f2, 0x0670, 0x05c8, 0x051e, 0x047c, 0x03ea,
+ 0x0437, 0x046b, 0x03ad, 0x0307, 0x028b, 0x021b,
+ 0x0216, 0x0246, 0x0263, 0x024c, 0x0267, 0x0308,
+ 0x0399, 0x036b, 0x02f8, 0x036b, 0x0402, 0x03dd,
+ 0x03ea, 0x040a, 0x0414, 0x044b, 0x043f, 0x04aa,
+ 0x056b, 0x05c8, 0x0680, 0x0718, 0x073a, 0x0769,
+ 0x0779, 0x07c8, 0x07d0, 0x07a6, 0x085d, 0x0888,
+ 0x0806, 0x085e, 0x08c5, 0x08b1, 0x0892, 0x0876,
+ 0x07fd, 0x0757, 0x07ef, 0x08cd, 0x0828, 0x0748,
+ 0x0718, 0x0735, 0x06e9, 0x060b, 0x060a, 0x065f,
+ 0x0689, 0x07ba, 0x085b, 0x0822, 0x0887, 0x0851,
+ 0x081b, 0x08b6, 0x089d, 0x089c, 0x08c8, 0x084c,
+ 0x0869, 0x0895, 0x089c, 0x0937, 0x08ab, 0x07ab,
+ 0x07c4, 0x0791, 0x0767, 0x0743, 0x0682, 0x06dd,
+ 0x0750, 0x06cc, 0x074e, 0x07eb, 0x07d7, 0x0849,
+ 0x08b6, 0x0913, 0x092e, 0x0853, 0x07da, 0x07fc,
+ 0x07cc, 0x07b5, 0x07bb, 0x078d, 0x07a4, 0x080b,
+ 0x07b4, 0x06c3, 0x0667, 0x05c7, 0x04e6, 0x04d8,
+ 0x045c, 0x03bf, 0x03f1, 0x03dc, 0x0416, 0x0481,
+ 0x043f, 0x047d, 0x0465, 0x0326, 0x0276, 0x0265,
+ 0x0254, 0x0262, 0x024d, 0x026c, 0x030b, 0x03c1,
+ 0x045d, 0x0515, 0x05b0, 0x05b4, 0x05e5, 0x0695,
+ 0x06c5, 0x0681, 0x0669, 0x0685, 0x06ba, 0x06a0,
+ 0x05c4, 0x048c, 0x03c8, 0x0310, 0x01f2, 0x012b,
+ 0x005d, 0xff43, 0xfee0, 0xfeb0, 0xfded, 0xfcf9,
+ 0xfc0e, 0xfb4b, 0xfa50, 0xf92c, 0xf8a8, 0xf885,
+ 0xf7ea, 0xf6de, 0xf694, 0xf6d6, 0xf637, 0xf598,
+ 0xf531, 0xf42d, 0xf376, 0xf2d7, 0xf244, 0xf23c,
+ 0xf1b9, 0xf1aa, 0xf27d, 0xf2c1, 0xf353, 0xf43e,
+ 0xf4d5, 0xf5be, 0xf69c, 0xf71c, 0xf72d, 0xf7a0,
+ 0xf985, 0xfade, 0xfb63, 0xfcb9, 0xfdeb, 0xfed8,
+ 0xffb2, 0xffea, 0x0028, 0x0009, 0xffb6, 0xffd4,
+ 0xff0f, 0xfdf0, 0xfd98, 0xfd4f, 0xfd1f, 0xfca8,
+ 0xfba0, 0xfb13, 0xfaa4, 0xf991, 0xf874, 0xf7ad,
+ 0xf70c, 0xf64f, 0xf55d, 0xf4c8, 0xf4f4, 0xf551,
+ 0xf5c0, 0xf64a, 0xf668, 0xf6c4, 0xf7ae, 0xf83c,
+ 0xf8dd, 0xf98c, 0xf993, 0xf9b9, 0xf9dc, 0xf9e0,
+ 0xfabf, 0xfbb3, 0xfc6a, 0xfdb3, 0xff1c, 0x009d,
+ 0x024d, 0x039d, 0x04ff, 0x0635, 0x0616, 0x053a,
+ 0x04bf, 0x0489, 0x0493, 0x0532, 0x0669, 0x07d6,
+ 0x08cb, 0x095f, 0x0a09, 0x0a85, 0x0b06, 0x0b9d,
+ 0x0be5, 0x0c66, 0x0cd5, 0x0ce5, 0x0da7, 0x0e3f,
+ 0x0dc0, 0x0d79, 0x0d7f, 0x0d30, 0x0c88, 0x0b90,
+ 0x0afb, 0x0a89, 0x09c9, 0x0999, 0x0978, 0x08d8,
+ 0x0859, 0x076b, 0x0649, 0x05e2, 0x0533, 0x03f9,
+ 0x0309, 0x01fe, 0x0091, 0xff1c, 0xfdfd, 0xfd35,
+ 0xfc41, 0xfbd4, 0xfc60, 0xfc7d, 0xfc64, 0xfd1c,
+ 0xfdd7, 0xfe6e, 0xff12, 0xff0e, 0xfe9a, 0xfdfa,
+ 0xfd1a, 0xfccc, 0xfd1b, 0xfd0a, 0xfc90, 0xfc1c,
+ 0xfb69, 0xfa79, 0xfa22, 0xfa2a, 0xf995, 0xf8e2,
+ 0xf89d, 0xf83b, 0xf7e1, 0xf7b3, 0xf72c, 0xf6ca,
+ 0xf713, 0xf76c, 0xf78f, 0xf781, 0xf79d, 0xf8a2,
+ 0xf96b, 0xf931, 0xf9cc, 0xfab2, 0xf9fd, 0xf928,
+ 0xf8e8, 0xf84a, 0xf80a, 0xf841, 0xf85a, 0xf8bc,
+ 0xf90a, 0xf8f3, 0xf8f1, 0xf89d, 0xf794, 0xf6a9,
+ 0xf63d, 0xf5a4, 0xf4e9, 0xf4ac, 0xf4c1, 0xf4d7,
+ 0xf4bf, 0xf43c, 0xf3b6, 0xf353, 0xf313, 0xf379,
+ 0xf3d7, 0xf399, 0xf419, 0xf599, 0xf6f9, 0xf849,
+ 0xf98c, 0xfa8d, 0xfbd8, 0xfd06, 0xfdd1, 0xff4f,
+ 0x0139, 0x02b8, 0x043b, 0x0564, 0x05ad, 0x05de,
+ 0x0649, 0x0693, 0x06ad, 0x06ce, 0x0708, 0x06f8,
+ 0x06c8, 0x0721, 0x0792, 0x0791, 0x0786, 0x07b2,
+ 0x081a, 0x0875, 0x0870, 0x08b6, 0x0987, 0x0a1a,
+ 0x0a87, 0x0b27, 0x0b82, 0x0b81, 0x0b5c, 0x0ae2,
+ 0x0a1c, 0x0997, 0x097e, 0x094e, 0x08c8, 0x083c,
+ 0x07e3, 0x07c9, 0x0789, 0x06f2, 0x06c9, 0x0720,
+ 0x075e, 0x07e4, 0x0889, 0x08ba, 0x091a, 0x09b3,
+ 0x09d4, 0x0999, 0x090b, 0x0874, 0x084a, 0x07de,
+ 0x06c7, 0x0592, 0x049d, 0x03ed, 0x02fb, 0x01cf,
+ 0x016f, 0x017a, 0x0140, 0x016d, 0x01e1, 0x0243,
+ 0x02cc, 0x030a, 0x035c, 0x0424, 0x0460, 0x047c,
+ 0x051c, 0x0522, 0x04c3, 0x04af, 0x044d, 0x03fa,
+ 0x03f1, 0x036e, 0x02a0, 0x01d3, 0x0113, 0x00ab,
+ 0x0043, 0xfffd, 0x0023, 0xfff1, 0xffbb, 0x0041,
+ 0x0093, 0x00ae, 0x011a, 0x00cf, 0xffe4, 0xff83,
+ 0xff49, 0xfed0, 0xfe6f, 0xfdcf, 0xfcfa, 0xfc7f,
+ 0xfc1d, 0xfbbf, 0xfbaa, 0xfb48, 0xfa8a, 0xfa5a,
+ 0xfa55, 0xf9c4, 0xf96b, 0xf99d, 0xf9c6, 0xf9b0,
+ 0xf933, 0xf8b6, 0xf902, 0xf988, 0xf9c6, 0xfa55,
+ 0xfaf8, 0xfb2a, 0xfb56, 0xfb75, 0xfb25, 0xface,
+ 0xfaba, 0xfa9e, 0xfa92, 0xfb02, 0xfbaf, 0xfc39,
+ 0xfce0, 0xfd7a, 0xfd95, 0xfda4, 0xfdf4, 0xfe3d,
+ 0xfe9b, 0xfefa, 0xff18, 0xff4a, 0xffc3, 0x0053,
+ 0x00af, 0x0084, 0x0036, 0x0027, 0xffe4, 0xff47,
+ 0xfe76, 0xfd98, 0xfd82, 0xfe2b, 0xfe3e, 0xfdc5,
+ 0xfdcb, 0xfe12, 0xfe15, 0xfe42, 0xfebc, 0xfefa,
+ 0xfef2, 0xfedb, 0xfea5, 0xfecb, 0xff7d, 0xffdd,
+ 0xffe6, 0x001f, 0x0022, 0x0031, 0x00f0, 0x0174,
+ 0x0133, 0x012f, 0x01b0, 0x01fe, 0x0200, 0x021a,
+ 0x0221, 0x01cf, 0x01a6, 0x01be, 0x015a, 0x00d3,
+ 0x00dc, 0x00c7, 0x0032, 0xffc0, 0xffa4, 0xffb4,
+ 0xffed, 0x003f, 0x008a, 0x00b4, 0x00dd, 0x010a,
+ 0x00e7, 0x0077, 0xffea, 0xff3e, 0xfebd, 0xfea4,
+ 0xfeba, 0xfec8, 0xfed5, 0xff0f, 0xff90, 0x0017,
+ 0x005e, 0x0035, 0xffbc, 0xff4d, 0xfe87, 0xfd0a,
+ 0xfb99, 0xfab5, 0xfa0f, 0xf994, 0xf94c, 0xf932,
+ 0xf984, 0xfa4f, 0xfb41, 0xfbef, 0xfc49, 0xfcac,
+ 0xfd13, 0xfd19, 0xfccd, 0xfc64, 0xfbd8, 0xfb4d,
+ 0xfafb, 0xfb05, 0xfb55, 0xfbad, 0xfbe0, 0xfbdc,
+ 0xfbed, 0xfc83, 0xfd3f, 0xfd9c, 0xfdd2, 0xfe16,
+ 0xfe68, 0xfed3, 0xff1e, 0xff26, 0xff34, 0xff7f,
+ 0xffc0, 0xff91, 0xff3e, 0xff3b, 0xff55, 0xff7d,
+ 0xffbc, 0xffbc, 0xffa3, 0xff9b, 0xff5b, 0xff3b,
+ 0xff5b, 0xff0a, 0xfe8a, 0xfe7f, 0xfe7b, 0xfe4a,
+ 0xfe39, 0xfe28, 0xfe0a, 0xfe1f, 0xfe2e, 0xfdfc,
+ 0xfe06, 0xfe6e, 0xfe72, 0xfe16, 0xfdf3, 0xfdb7,
+ 0xfd49, 0xfd36, 0xfd1f, 0xfca8, 0xfc41, 0xfbf4,
+ 0xfbcd, 0xfc04, 0xfc39, 0xfc48, 0xfc93, 0xfd36,
+ 0xfe26, 0xff12, 0xffe2, 0x010a, 0x0218, 0x023a,
+ 0x01f8, 0x01ef, 0x01e3, 0x01b6, 0x0151, 0x00dd,
+ 0x00cb, 0x00cf, 0x009b, 0x00a7, 0x00aa, 0xfffe,
+ 0xff2e, 0xfebf, 0xfe31, 0xfd39, 0xfc58, 0xfbf7,
+ 0xfbbe, 0xfb29, 0xfa81, 0xfa3b, 0xfa33, 0xfa46,
+ 0xfa65, 0xfa5e, 0xfa5c, 0xfa9c, 0xfae0, 0xfada,
+ 0xfa9b, 0xfa97, 0xfaf1, 0xfb0d, 0xfacb, 0xfb01,
+ 0xfc0f, 0xfd5e, 0xfe2d, 0xfe7b, 0xfefe, 0xffa2,
+ 0xffa8, 0xff53, 0xff20, 0xfefb, 0xfef6, 0xff10,
+ 0xff2d, 0xff82, 0xfff6, 0x007c, 0x0178, 0x02ae,
+ 0x03c0, 0x04d9, 0x05a2, 0x05c7, 0x05e0, 0x061f,
+ 0x0619, 0x05e8, 0x05b8, 0x0562, 0x050a, 0x04ca,
+ 0x0479, 0x0457, 0x0496, 0x0502, 0x05aa, 0x0692,
+ 0x0773, 0x0864, 0x094f, 0x09c5, 0x09f6, 0x0a2f,
+ 0x0a56, 0x0a70, 0x0a87, 0x0aa5, 0x0ac8, 0x0a95,
+ 0x09fd, 0x0956, 0x08ca, 0x085f, 0x07ae, 0x0699,
+ 0x05c6, 0x04fc, 0x03de, 0x0326, 0x0288, 0x0176,
+ 0x0107, 0x0182, 0x01ed, 0x0244, 0x0307, 0x0426,
+ 0x04c8, 0x0480, 0x0457, 0x049f, 0x047f, 0x0433,
+ 0x03f3, 0x0355, 0x0296, 0x01ed, 0x019a, 0x01ea,
+ 0x026c, 0x0337, 0x046c, 0x0534, 0x05e6, 0x06ff,
+ 0x079a, 0x07f3, 0x0887, 0x087c, 0x07df, 0x0749,
+ 0x06b9, 0x0662, 0x0605, 0x056c, 0x0541, 0x056f,
+ 0x059a, 0x0629, 0x06fe, 0x0788, 0x07b6, 0x079f,
+ 0x0734, 0x0699, 0x064b, 0x0628, 0x0588, 0x04d9,
+ 0x04a3, 0x0453, 0x0417, 0x0485, 0x050b, 0x0546,
+ 0x058a, 0x05f4, 0x0663, 0x0694, 0x069e, 0x06b0,
+ 0x0677, 0x060b, 0x05cc, 0x0569, 0x04f3, 0x04f0,
+ 0x052b, 0x0522, 0x04eb, 0x04f5, 0x052f, 0x0534,
+ 0x0542, 0x0567, 0x055e, 0x05ba, 0x06a6, 0x074e,
+ 0x0779, 0x0770, 0x0791, 0x0816, 0x0879, 0x08aa,
+ 0x091f, 0x0968, 0x0964, 0x097a, 0x098b, 0x0996,
+ 0x095d, 0x08ad, 0x0857, 0x0855, 0x07c7, 0x070e,
+ 0x0691, 0x0601, 0x0570, 0x0527, 0x0539, 0x0520,
+ 0x0474, 0x03ec, 0x0397, 0x02ef, 0x0290, 0x0283,
+ 0x022d, 0x0200, 0x0227, 0x027c, 0x032c, 0x03a9,
+ 0x03fa, 0x04d3, 0x05a3, 0x05df, 0x05fc, 0x0623,
+ 0x063b, 0x060c, 0x05a5, 0x0595, 0x05cd, 0x0614,
+ 0x068d, 0x06d1, 0x06f9, 0x0790, 0x07fd, 0x07e0,
+ 0x07a9, 0x0725, 0x0661, 0x0613, 0x061e, 0x05d7,
+ 0x053b, 0x04ba, 0x0437, 0x0341, 0x0228, 0x015e,
+ 0x0099, 0xffc5, 0xff27, 0xfeac, 0xfe25, 0xfdb3,
+ 0xfd68, 0xfd0d, 0xfc7e, 0xfba8, 0xfa4e, 0xf8c5,
+ 0xf7a1, 0xf663, 0xf4d0, 0xf3c9, 0xf336, 0xf267,
+ 0xf1d8, 0xf203, 0xf270, 0xf2a7, 0xf2e5, 0xf392,
+ 0xf47c, 0xf586, 0xf6e2, 0xf846, 0xf9a6, 0xfb1b,
+ 0xfc2c, 0xfd16, 0xfe1e, 0xfe4b, 0xfddc, 0xfdf8,
+ 0xfe38, 0xfe36, 0xfe28, 0xfdb5, 0xfd4c, 0xfdbd,
+ 0xfe4e, 0xfe67, 0xfeb2, 0xff33, 0xff0e, 0xfe71,
+ 0xfe35, 0xfe06, 0xfd5d, 0xfccc, 0xfc81, 0xfc36,
+ 0xfc36, 0xfc47, 0xfc0d, 0xfc28, 0xfc7b, 0xfc4a,
+ 0xfc0e, 0xfc32, 0xfc23, 0xfbc0, 0xfb5a, 0xfad7,
+ 0xfa2b, 0xf9a0, 0xf940, 0xf8e5, 0xf8a6, 0xf88e,
+ 0xf88b, 0xf8a6, 0xf8f6, 0xf986, 0xfa53, 0xfb46,
+ 0xfc7d, 0xfdd5, 0xfebd, 0xff5a, 0x0026, 0x00fc,
+ 0x01b0, 0x0261, 0x031f, 0x03f5, 0x04ba, 0x057c,
+ 0x069b, 0x07dd, 0x0902, 0x0a39, 0x0b73, 0x0cbd,
+ 0x0e46, 0x0fe0, 0x114f, 0x122d, 0x124f, 0x1254,
+ 0x1246, 0x11bd, 0x1114, 0x1066, 0x0f72, 0x0e61,
+ 0x0d58, 0x0cbe, 0x0cad, 0x0c8c, 0x0c8b, 0x0cdf,
+ 0x0cc5, 0x0c60, 0x0c19, 0x0b78, 0x0aaf, 0x0a15,
+ 0x0928, 0x07e9, 0x06f3, 0x0671, 0x061d, 0x05c9,
+ 0x05b9, 0x05ca, 0x057c, 0x0526, 0x0517, 0x050b,
+ 0x0511, 0x050b, 0x04b7, 0x0463, 0x042a, 0x0411,
+ 0x0422, 0x03e2, 0x035e, 0x0302, 0x0274, 0x0197,
+ 0x00bd, 0xffd5, 0xff04, 0xfe4d, 0xfd4a, 0xfc44,
+ 0xfb94, 0xfaf1, 0xfa5c, 0xf9f7, 0xf98e, 0xf93a,
+ 0xf959, 0xf9c0, 0xf9fe, 0xfa49, 0xfae6, 0xfb58,
+ 0xfb70, 0xfba7, 0xfbfa, 0xfc17, 0xfc19, 0xfc3d,
+ 0xfc64, 0xfc39, 0xfbe1, 0xfbb1, 0xfb5a, 0xfad2,
+ 0xfa70, 0xf9e7, 0xf943, 0xf8fa, 0xf8c8, 0xf87b,
+ 0xf846, 0xf7fa, 0xf77d, 0xf6b9, 0xf5a0, 0xf4a9,
+ 0xf3ff, 0xf366, 0xf2e6, 0xf265, 0xf20c, 0xf241,
+ 0xf295, 0xf2bd, 0xf339, 0xf401, 0xf498, 0xf50f,
+ 0xf5d2, 0xf6b0, 0xf725, 0xf797, 0xf86e, 0xf8ec,
+ 0xf8f8, 0xf933, 0xf94e, 0xf939, 0xf958, 0xf974,
+ 0xf998, 0xf9e1, 0xf9f2, 0xfa2d, 0xfade, 0xfb71,
+ 0xfbfa, 0xfcc6, 0xfd7d, 0xfe1a, 0xfee0, 0xffc5,
+ 0x00c6, 0x01e1, 0x0300, 0x040e, 0x0501, 0x05d5,
+ 0x0656, 0x066e, 0x0636, 0x05bb, 0x0544, 0x04e5,
+ 0x0434, 0x0379, 0x0340, 0x0333, 0x031e, 0x034b,
+ 0x03b1, 0x044e, 0x0530, 0x0638, 0x0740, 0x07e8,
+ 0x07fa, 0x07dd, 0x07e7, 0x07fa, 0x07c8, 0x0741,
+ 0x06a8, 0x05e0, 0x04e5, 0x043f, 0x03a2, 0x028f,
+ 0x01a1, 0x00f6, 0x0029, 0xffaa, 0xff79, 0xff1a,
+ 0xfebf, 0xfe9c, 0xfec4, 0xff3d, 0xff95, 0xffbc,
+ 0x001d, 0x0080, 0x00a9, 0x00cb, 0x00ca, 0x0075,
+ 0x000d, 0xffda, 0xffa8, 0xff46, 0xff05, 0xfefe,
+ 0xfed5, 0xfe98, 0xfe6d, 0xfe50, 0xfe5e, 0xfe6f,
+ 0xfe7f, 0xfecf, 0xff06, 0xff10, 0xff78, 0xffd8,
+ 0xffc4, 0xffc8, 0xfffb, 0xfff8, 0xffa8, 0xff03,
+ 0xfe51, 0xfdb9, 0xfcef, 0xfc35, 0xfbe4, 0xfb8a,
+ 0xfaf9, 0xfa73, 0xf9fa, 0xf987, 0xf90c, 0xf87f,
+ 0xf825, 0xf802, 0xf7c7, 0xf793, 0xf7ba, 0xf7fe,
+ 0xf808, 0xf80a, 0xf83f, 0xf89f, 0xf92b, 0xf9a4,
+ 0xf9b0, 0xf98d, 0xf953, 0xf8b6, 0xf80d, 0xf7d5,
+ 0xf7cc, 0xf7b8, 0xf7ba, 0xf7d1, 0xf7dc, 0xf7e3,
+ 0xf822, 0xf888, 0xf89b, 0xf881, 0xf8b9, 0xf920,
+ 0xf9ac, 0xfa62, 0xfabb, 0xfad0, 0xfb43, 0xfbc1,
+ 0xfbe8, 0xfc05, 0xfc19, 0xfc0d, 0xfc10, 0xfbf0,
+ 0xfb8d, 0xfb4a, 0xfb40, 0xfb2e, 0xfb1a, 0xfb1a,
+ 0xfb0b, 0xfaff, 0xfb21, 0xfb52, 0xfb78, 0xfbc5,
+ 0xfc53, 0xfd10, 0xfdc5, 0xfe2d, 0xfe74, 0xfed1,
+ 0xfee6, 0xfeb4, 0xfec8, 0xfeec, 0xfecf, 0xfebc,
+ 0xfeaa, 0xfe64, 0xfe23, 0xfdf9, 0xfddf, 0xfde6,
+ 0xfdfa, 0xfe22, 0xfe68, 0xfe90, 0xfe98, 0xfea6,
+ 0xfec6, 0xff0a, 0xff47, 0xff53, 0xff7a, 0xffe5,
+ 0x0074, 0x0121, 0x01b5, 0x020f, 0x025c, 0x0294,
+ 0x029c, 0x02af, 0x02c9, 0x02a8, 0x0242, 0x01a4,
+ 0x00e0, 0x002d, 0xff87, 0xfeb8, 0xfddf, 0xfd3e,
+ 0xfcd2, 0xfc89, 0xfc54, 0xfbfe, 0xfb72, 0xfafa,
+ 0xfadb, 0xfae8, 0xfaca, 0xfaab, 0xfac1, 0xfad3,
+ 0xfaf0, 0xfb4d, 0xfb92, 0xfb8f, 0xfb8e, 0xfbaa,
+ 0xfbe3, 0xfc2c, 0xfc3c, 0xfc13, 0xfc06, 0xfc1c,
+ 0xfc15, 0xfc16, 0xfc71, 0xfccb, 0xfcf9, 0xfd93,
+ 0xfe5b, 0xfec5, 0xff70, 0x0043, 0x0075, 0x0096,
+ 0x00e0, 0x00a3, 0x0059, 0x0076, 0x0067, 0x0038,
+ 0x0039, 0x0043, 0x0047, 0x001f, 0xffb6, 0xff6d,
+ 0xff62, 0xff32, 0xfec6, 0xfe84, 0xfe99, 0xfea7,
+ 0xfe9c, 0xfec1, 0xff08, 0xff5b, 0xffbc, 0xffff,
+ 0x0019, 0x0014, 0x0009, 0x001b, 0x000c, 0xffe0,
+ 0xfff7, 0x0009, 0xffeb, 0xfff7, 0xfff1, 0xffc8,
+ 0xffef, 0x0022, 0x0023, 0x0039, 0x003a, 0x0004,
+ 0xffeb, 0xfff9, 0xfffa, 0xfff1, 0x003a, 0x00e4,
+ 0x0156, 0x018c, 0x0212, 0x02b1, 0x0327, 0x0392,
+ 0x03a5, 0x0365, 0x033f, 0x0306, 0x029a, 0x023f,
+ 0x01e8, 0x0190, 0x014c, 0x00eb, 0x0069, 0xffdc,
+ 0xff3f, 0xfeb3, 0xfe28, 0xfd6c, 0xfca7, 0xfbde,
+ 0xfb11, 0xfaa8, 0xfa99, 0xfaa7, 0xfb01, 0xfb79,
+ 0xfbc6, 0xfc36, 0xfcb6, 0xfd03, 0xfd4e, 0xfd87,
+ 0xfd7d, 0xfd59, 0xfd10, 0xfcad, 0xfc71, 0xfc55,
+ 0xfc4e, 0xfc5e, 0xfc75, 0xfcb4, 0xfd13, 0xfd63,
+ 0xfdc9, 0xfe41, 0xfea5, 0xfee9, 0xff04, 0xff3b,
+ 0xff99, 0xff95, 0xff60, 0xff7a, 0xff94, 0xff88,
+ 0xff91, 0xffbe, 0x0006, 0x0010, 0xffae, 0xff3c,
+ 0xfecd, 0xfe71, 0xfe5d, 0xfe54, 0xfe55, 0xfea0,
+ 0xff0e, 0xffb4, 0x009c, 0x0166, 0x0218, 0x02d9,
+ 0x0385, 0x0443, 0x053f, 0x065b, 0x0750, 0x07fc,
+ 0x08a4, 0x0931, 0x095f, 0x09b9, 0x0a40, 0x0a51,
+ 0x0a49, 0x0a79, 0x0a77, 0x0a85, 0x0adb, 0x0b19,
+ 0x0b4b, 0x0b6e, 0x0b4d, 0x0b2e, 0x0b22, 0x0af0,
+ 0x0ac4, 0x0aab, 0x0a6f, 0x0a1d, 0x09c5, 0x0959,
+ 0x0910, 0x08e9, 0x0887, 0x081b, 0x0800, 0x07e8,
+ 0x07ba, 0x07ab, 0x0786, 0x075f, 0x0752, 0x0709,
+ 0x06d5, 0x0712, 0x0731, 0x0735, 0x078d, 0x07dd,
+ 0x07e3, 0x07e4, 0x07fb, 0x0830, 0x0887, 0x08ea,
+ 0x0938, 0x0960, 0x0996, 0x09d3, 0x09c0, 0x0997,
+ 0x09c7, 0x0a16, 0x0a27, 0x0a0c, 0x0a10, 0x0a2b,
+ 0x0a22, 0x0a1e, 0x0a53, 0x0aac, 0x0b25, 0x0ba5,
+ 0x0c20, 0x0cc6, 0x0d6b, 0x0dd7, 0x0e25, 0x0e37,
+ 0x0e00, 0x0dae, 0x0d55, 0x0d16, 0x0cdb, 0x0c89,
+ 0x0c5c, 0x0c28, 0x0bd5, 0x0bba, 0x0b78, 0x0af5,
+ 0x0ae2, 0x0aed, 0x0ab4, 0x0ab6, 0x0adb, 0x0afd,
+ 0x0b42, 0x0b5b, 0x0b71, 0x0bd4, 0x0c26, 0x0c70,
+ 0x0cbb, 0x0cbf, 0x0cd6, 0x0d0f, 0x0cf9, 0x0cc9,
+ 0x0cb7, 0x0caf, 0x0cc3, 0x0cd8, 0x0cec, 0x0cfe,
+ 0x0cc7, 0x0c80, 0x0c83, 0x0c8d, 0x0c81, 0x0c6c,
+ 0x0c40, 0x0c32, 0x0c30, 0x0c0d, 0x0c0d, 0x0c2c,
+ 0x0c25, 0x0c07, 0x0bc7, 0x0b60, 0x0b05, 0x0aa7,
+ 0x0a3d, 0x09e5, 0x0965, 0x08c9, 0x0886, 0x0884,
+ 0x086f, 0x088f, 0x08fe, 0x0948, 0x096e, 0x09d2,
+ 0x0a34, 0x0a38, 0x0a2f, 0x0a4c, 0x0a43, 0x09fd,
+ 0x09c0, 0x09ae, 0x0997, 0x0952, 0x090e, 0x08fe,
+ 0x092a, 0x098d, 0x09fd, 0x0a66, 0x0aec, 0x0b74,
+ 0x0bb4, 0x0bb6, 0x0b9e, 0x0b77, 0x0b41, 0x0ae8,
+ 0x0a7c, 0x09fd, 0x0934, 0x0851, 0x0796, 0x06a6,
+ 0x0545, 0x03db, 0x02a4, 0x0187, 0x0070, 0xff55,
+ 0xfe39, 0xfd26, 0xfc17, 0xfb17, 0xfa44, 0xf9ba,
+ 0xf97c, 0xf968, 0xf966, 0xf975, 0xf98c, 0xf9bb,
+ 0xfa02, 0xfa37, 0xfa64, 0xfabf, 0xfb23, 0xfb44,
+ 0xfb40, 0xfb58, 0xfb56, 0xfb22, 0xfaf9, 0xface,
+ 0xfaac, 0xfada, 0xfb14, 0xfb26, 0xfb5f, 0xfb9a,
+ 0xfbc8, 0xfc3a, 0xfc9f, 0xfcc3, 0xfcf9, 0xfcff,
+ 0xfcb4, 0xfc73, 0xfc1f, 0xfbc8, 0xfbb3, 0xfb98,
+ 0xfb89, 0xfbe0, 0xfc5c, 0xfcdd, 0xfd78, 0xfde0,
+ 0xfdfa, 0xfdc3, 0xfd2c, 0xfc7e, 0xfbd1, 0xfafa,
+ 0xfa23, 0xf951, 0xf84f, 0xf759, 0xf690, 0xf5ac,
+ 0xf4c3, 0xf404, 0xf317, 0xf1fd, 0xf151, 0xf10c,
+ 0xf0e9, 0xf12a, 0xf1c7, 0xf286, 0xf39e, 0xf4ea,
+ 0xf613, 0xf74c, 0xf8a0, 0xf9eb, 0xfb43, 0xfc78,
+ 0xfd7e, 0xfea2, 0xffd5, 0x00f8, 0x0226, 0x034c,
+ 0x0453, 0x0529, 0x05da, 0x06a7, 0x0775, 0x0801,
+ 0x0884, 0x0919, 0x0995, 0x0a00, 0x0a71, 0x0acb,
+ 0x0af8, 0x0b1c, 0x0b45, 0x0b46, 0x0b52, 0x0b9c,
+ 0x0bba, 0x0ba3, 0x0ba8, 0x0b96, 0x0b6a, 0x0b55,
+ 0x0b37, 0x0b26, 0x0b18, 0x0ae1, 0x0ada, 0x0aec,
+ 0x0ab2, 0x0a82, 0x0a61, 0x09fe, 0x0995, 0x091d,
+ 0x0861, 0x07b5, 0x072b, 0x0683, 0x05c5, 0x050a,
+ 0x0451, 0x0390, 0x02e2, 0x025c, 0x01ca, 0x0132,
+ 0x00bd, 0x004e, 0xfff4, 0xffb7, 0xff7c, 0xff74,
+ 0xff6b, 0xfef0, 0xfe56, 0xfdf7, 0xfdb5, 0xfd68,
+ 0xfcf4, 0xfc85, 0xfc34, 0xfbdb, 0xfbba, 0xfbb9,
+ 0xfb85, 0xfb97, 0xfbd3, 0xfbc5, 0xfc13, 0xfcc7,
+ 0xfd3b, 0xfdc4, 0xfe67, 0xfeb7, 0xfeeb, 0xfeea,
+ 0xfe80, 0xfe05, 0xfd63, 0xfc5c, 0xfb38, 0xfa24,
+ 0xf914, 0xf807, 0xf71c, 0xf65a, 0xf592, 0xf4e0,
+ 0xf46c, 0xf415, 0xf3fd, 0xf40c, 0xf3e6, 0xf3c2,
+ 0xf3b6, 0xf37f, 0xf35a, 0xf34f, 0xf30c, 0xf2bd,
+ 0xf277, 0xf203, 0xf178, 0xf0fc, 0xf093, 0xf03a,
+ 0xeffb, 0xefe5, 0xefdf, 0xefd9, 0xefdc, 0xefef,
+ 0xf03a, 0xf0bf, 0xf155, 0xf22b, 0xf34d, 0xf475,
+ 0xf59e, 0xf6d7, 0xf82b, 0xf97f, 0xfa69, 0xfb0a,
+ 0xfbb7, 0xfc24, 0xfc49, 0xfc6c, 0xfc6d, 0xfc5d,
+ 0xfc87, 0xfcef, 0xfd62, 0xfdaf, 0xfe28, 0xfee9,
+ 0xff56, 0xffa2, 0x005b, 0x0127, 0x0204, 0x0320,
+ 0x040c, 0x04da, 0x05aa, 0x0635, 0x06c8, 0x0766,
+ 0x0794, 0x0792, 0x079a, 0x075d, 0x06f6, 0x06a3,
+ 0x0645, 0x05d6, 0x0571, 0x0524, 0x0506, 0x0526,
+ 0x0536, 0x0506, 0x04e7, 0x04ee, 0x04e0, 0x04e1,
+ 0x04ed, 0x04d8, 0x04cd, 0x04bf, 0x049e, 0x049a,
+ 0x046c, 0x03ed, 0x0385, 0x033a, 0x02d6, 0x0270,
+ 0x022a, 0x0200, 0x01df, 0x01c7, 0x01a8, 0x0148,
+ 0x00e4, 0x00cf, 0x00d0, 0x00ca, 0x00e4, 0x0119,
+ 0x016a, 0x01b7, 0x01f1, 0x022e, 0x023a, 0x0222,
+ 0x0223, 0x01f6, 0x0197, 0x0152, 0x0108, 0x00ce,
+ 0x00c5, 0x00a2, 0x006d, 0x004f, 0x0024, 0xfff4,
+ 0xffd5, 0xffc8, 0xffa1, 0xff27, 0xfe95, 0xfe2f,
+ 0xfdcb, 0xfd68, 0xfd3b, 0xfd30, 0xfd06, 0xfcc4,
+ 0xfcab, 0xfc94, 0xfc44, 0xfbfd, 0xfbac, 0xfb28,
+ 0xfadb, 0xfa8f, 0xf9f1, 0xf977, 0xf8ff, 0xf83d,
+ 0xf7c1, 0xf79a, 0xf762, 0xf73f, 0xf751, 0xf76d,
+ 0xf779, 0xf795, 0xf7e3, 0xf82e, 0xf870, 0xf8d4,
+ 0xf934, 0xf99c, 0xfa1c, 0xfa5e, 0xfa70, 0xfa85,
+ 0xfa8f, 0xfab0, 0xfac3, 0xfaa8, 0xfaa6, 0xfaa3,
+ 0xfa92, 0xfaab, 0xfaa7, 0xfa75, 0xfa48, 0xfa04,
+ 0xf9cc, 0xf9b7, 0xf9a5, 0xf9d8, 0xfa38, 0xfa76,
+ 0xfabc, 0xfb0e, 0xfb6a, 0xfbd4, 0xfbf4, 0xfbf1,
+ 0xfc14, 0xfc1a, 0xfc0f, 0xfc13, 0xfbea, 0xfba5,
+ 0xfb72, 0xfb72, 0xfb80, 0xfb4c, 0xfb2d, 0xfb3a,
+ 0xfad6, 0xfa62, 0xfa5e, 0xfa3f, 0xfa12, 0xfa49,
+ 0xfac1, 0xfb69, 0xfc28, 0xfcbc, 0xfd48, 0xfdfa,
+ 0xfec6, 0xff92, 0x0036, 0x00c5, 0x014a, 0x01ae,
+ 0x01f8, 0x022d, 0x023c, 0x020a, 0x0189, 0x00ea,
+ 0x0052, 0xffd3, 0xff70, 0xfee5, 0xfe49, 0xfdf5,
+ 0xfdb2, 0xfd68, 0xfd33, 0xfcd9, 0xfc7c, 0xfc45,
+ 0xfbeb, 0xfb80, 0xfb05, 0xfa64, 0xf9fc, 0xf9ad,
+ 0xf937, 0xf8e9, 0xf8a7, 0xf844, 0xf7fd, 0xf7c4,
+ 0xf7ab, 0xf7bf, 0xf7ad, 0xf78a, 0xf776, 0xf767,
+ 0xf7ae, 0xf842, 0xf8c9, 0xf94b, 0xf9d5, 0xfa69,
+ 0xfafb, 0xfb50, 0xfb83, 0xfbac, 0xfbae, 0xfbc2,
+ 0xfbe3, 0xfbfd, 0xfc59, 0xfcaf, 0xfcc8, 0xfd17,
+ 0xfd84, 0xfdc8, 0xfe08, 0xfe1e, 0xfe07, 0xfe04,
+ 0xfdfa, 0xfded, 0xfdef, 0xfdc5, 0xfd7c, 0xfd4b,
+ 0xfd36, 0xfd2b, 0xfcf9, 0xfc99, 0xfc5d, 0xfc4c,
+ 0xfc33, 0xfc27, 0xfc31, 0xfc43, 0xfc73, 0xfcb0,
+ 0xfcc0, 0xfcc9, 0xfcdb, 0xfcb4, 0xfc86, 0xfc90,
+ 0xfc8b, 0xfca9, 0xfd29, 0xfd88, 0xfdbd, 0xfe25,
+ 0xfe87, 0xfedd, 0xff56, 0xffcc, 0x0035, 0x00a4,
+ 0x011e, 0x01bb, 0x0256, 0x02d7, 0x0358, 0x03cd,
+ 0x0422, 0x0453, 0x045d, 0x0454, 0x0459, 0x0469,
+ 0x0449, 0x03e7, 0x0385, 0x0329, 0x02a2, 0x0204,
+ 0x0168, 0x00de, 0x0083, 0x0036, 0xffd9, 0xff8f,
+ 0xff61, 0xff48, 0xff47, 0xff41, 0xff2c, 0xfef1,
+ 0xfe94, 0xfe6b, 0xfe56, 0xfdff, 0xfdbf, 0xfdac,
+ 0xfd86, 0xfd77, 0xfd60, 0xfd28, 0xfd1b, 0xfcfc,
+ 0xfc8f, 0xfc3f, 0xfc55, 0xfcc8, 0xfd61, 0xfe00,
+ 0xfec1, 0xff79, 0xffd8, 0x0000, 0x001e, 0x0019,
+ 0xfff7, 0xfff1, 0xffeb, 0xffc7, 0xffb4, 0xff94,
+ 0xff4b, 0xff19, 0xfed5, 0xfe4d, 0xfdc3, 0xfd3e,
+ 0xfcc8, 0xfca1, 0xfcc0, 0xfcf8, 0xfd27, 0xfd3a,
+ 0xfd52, 0xfd71, 0xfd7f, 0xfdb6, 0xfe2b, 0xfe99,
+ 0xff12, 0xffb8, 0x003d, 0x0076, 0x009a, 0x00da,
+ 0x0128, 0x0163, 0x01ae, 0x0211, 0x0264, 0x02d8,
+ 0x036d, 0x03fc, 0x04c7, 0x05a0, 0x064c, 0x071d,
+ 0x07f1, 0x088f, 0x0911, 0x0960, 0x09b7, 0x0a33,
+ 0x0a88, 0x0acc, 0x0b09, 0x0b14, 0x0b09, 0x0ade,
+ 0x0a87, 0x0a2f, 0x09df, 0x098c, 0x093c, 0x0903,
+ 0x0907, 0x0949, 0x098d, 0x099e, 0x097d, 0x092d,
+ 0x08aa, 0x0820, 0x07a1, 0x0731, 0x06e9, 0x06c6,
+ 0x06b8, 0x06b2, 0x069d, 0x068d, 0x0682, 0x0650,
+ 0x0607, 0x05f7, 0x0629, 0x064b, 0x065b, 0x0695,
+ 0x06d6, 0x0705, 0x0726, 0x0722, 0x06f5, 0x06d2,
+ 0x06fb, 0x0756, 0x07ad, 0x0822, 0x088e, 0x08d2,
+ 0x092e, 0x096c, 0x0975, 0x096c, 0x0918, 0x08d5,
+ 0x08e8, 0x08cc, 0x088f, 0x086f, 0x0846, 0x0819,
+ 0x07dd, 0x07a3, 0x0790, 0x0782, 0x07a2, 0x0801,
+ 0x0848, 0x0884, 0x08d8, 0x0922, 0x095a, 0x0974,
+ 0x096c, 0x096d, 0x095f, 0x091f, 0x08ee, 0x08e6,
+ 0x08d4, 0x08b4, 0x088e, 0x0882, 0x088b, 0x0861,
+ 0x0850, 0x087b, 0x0871, 0x0876, 0x08c0, 0x08e1,
+ 0x08fc, 0x093f, 0x098f, 0x09ea, 0x0a3d, 0x0aa8,
+ 0x0b1c, 0x0b3c, 0x0b37, 0x0b39, 0x0b37, 0x0b3a,
+ 0x0b2c, 0x0b29, 0x0b32, 0x0b03, 0x0acd, 0x0a9e,
+ 0x0a40, 0x09e0, 0x0991, 0x0957, 0x095b, 0x0972,
+ 0x095d, 0x0939, 0x0929, 0x090c, 0x08da, 0x08a4,
+ 0x085e, 0x0822, 0x0804, 0x07ef, 0x07e8, 0x07d2,
+ 0x07a5, 0x0790, 0x076c, 0x0739, 0x072b, 0x073d,
+ 0x0773, 0x07c7, 0x082e, 0x08b1, 0x0926, 0x0980,
+ 0x09c8, 0x09fd, 0x0a30, 0x0a44, 0x0a34, 0x0a0f,
+ 0x09bd, 0x096e, 0x0924, 0x08a3, 0x080b, 0x076e,
+ 0x06ce, 0x0642, 0x05b7, 0x0534, 0x04aa, 0x041a,
+ 0x03b9, 0x0356, 0x02c3, 0x021f, 0x0189, 0x0114,
+ 0x00a3, 0x0034, 0xffd8, 0xff5f, 0xfef3, 0xfebf,
+ 0xfe7e, 0xfe26, 0xfddc, 0xfda2, 0xfd69, 0xfd13,
+ 0xfcb0, 0xfc68, 0xfc51, 0xfc46, 0xfc25, 0xfc13,
+ 0xfbfc, 0xfbc4, 0xfb97, 0xfb58, 0xfb18, 0xfb04,
+ 0xfad6, 0xfaa7, 0xfaa2, 0xfa80, 0xfa64, 0xfa73,
+ 0xfa8b, 0xfab2, 0xfae3, 0xfb2c, 0xfb83, 0xfbc8,
+ 0xfc23, 0xfc98, 0xfcff, 0xfd56, 0xfd9e, 0xfdcf,
+ 0xfdde, 0xfdde, 0xfddf, 0xfdcf, 0xfd9f, 0xfd3c,
+ 0xfcd9, 0xfc8e, 0xfc02, 0xfb5d, 0xfae9, 0xfa87,
+ 0xfa46, 0xf9ff, 0xf99c, 0xf93a, 0xf8a4, 0xf82c,
+ 0xf806, 0xf7aa, 0xf746, 0xf71d, 0xf6e9, 0xf6d0,
+ 0xf6e3, 0xf715, 0xf774, 0xf7d2, 0xf84d, 0xf903,
+ 0xf9bc, 0xfa7d, 0xfb3c, 0xfbdc, 0xfc86, 0xfd4f,
+ 0xfe27, 0xff0c, 0xffeb, 0x00bb, 0x019c, 0x0270,
+ 0x030f, 0x03b0, 0x0434, 0x0469, 0x04aa, 0x04f2,
+ 0x0534, 0x059a, 0x05d3, 0x05f7, 0x0644, 0x06a1,
+ 0x074b, 0x080c, 0x0890, 0x091f, 0x098d, 0x09e9,
+ 0x0a87, 0x0b04, 0x0b62, 0x0bbf, 0x0be6, 0x0c04,
+ 0x0bfc, 0x0baf, 0x0b5a, 0x0ad4, 0x0a2f, 0x09b5,
+ 0x0938, 0x08b2, 0x0847, 0x07e3, 0x0784, 0x073f,
+ 0x0716, 0x0707, 0x070b, 0x0701, 0x06fc, 0x0708,
+ 0x06fe, 0x0707, 0x0708, 0x06a6, 0x063b, 0x05e9,
+ 0x0585, 0x052f, 0x04ab, 0x03ff, 0x0370, 0x02bf,
+ 0x0207, 0x0163, 0x00ae, 0x0038, 0x000b, 0x0019,
+ 0x007e, 0x00ff, 0x0195, 0x0229, 0x0271, 0x028b,
+ 0x028b, 0x0276, 0x0274, 0x0278, 0x0286, 0x0297,
+ 0x0294, 0x025c, 0x01af, 0x009b, 0xff5f, 0xfe22,
+ 0xfd14, 0xfc3f, 0xfbc3, 0xfbae, 0xfbe7, 0xfc88,
+ 0xfd39, 0xfd97, 0xfdd7, 0xfdfc, 0xfdf1, 0xfdbf,
+ 0xfd64, 0xfcfd, 0xfc7c, 0xfbe3, 0xfb57, 0xfab6,
+ 0xf9f7, 0xf939, 0xf88a, 0xf7ff, 0xf785, 0xf724,
+ 0xf6c3, 0xf62f, 0xf5b4, 0xf55a, 0xf515, 0xf533,
+ 0xf590, 0xf60b, 0xf69e, 0xf715, 0xf79b, 0xf820,
+ 0xf87a, 0xf8f3, 0xf973, 0xf9da, 0xfa3a, 0xfa64,
+ 0xfa55, 0xfa23, 0xf9dd, 0xf9ba, 0xf9c2, 0xf9ee,
+ 0xfa46, 0xfab9, 0xfb25, 0xfb80, 0xfbe3, 0xfc29,
+ 0xfc48, 0xfc76, 0xfc9a, 0xfcc2, 0xfd15, 0xfd78,
+ 0xfe0a, 0xfe9d, 0xfefc, 0xff59, 0xff69, 0xff2e,
+ 0xfefb, 0xfe9b, 0xfe3e, 0xfe19, 0xfe0d, 0xfe56,
+ 0xfece, 0xff4a, 0xffe7, 0x0051, 0x0090, 0x00e2,
+ 0x0112, 0x0138, 0x0180, 0x01e2, 0x0271, 0x0322,
+ 0x03cd, 0x0466, 0x04e7, 0x054d, 0x05a9, 0x05e5,
+ 0x05cd, 0x0591, 0x054d, 0x04da, 0x0485, 0x044a,
+ 0x03fb, 0x03d2, 0x03a0, 0x0364, 0x034c, 0x030b,
+ 0x02e8, 0x02f8, 0x02dc, 0x02f5, 0x0334, 0x0342,
+ 0x0353, 0x0337, 0x0300, 0x02fd, 0x0305, 0x0329,
+ 0x034c, 0x0323, 0x02fa, 0x02e1, 0x02ad, 0x026f,
+ 0x0221, 0x01b9, 0x0156, 0x0105, 0x00ae, 0x0050,
+ 0xfff7, 0xffb1, 0xffa7, 0xffb2, 0xffb7, 0xffe9,
+ 0x0008, 0x000b, 0x0030, 0x004b, 0x008c, 0x0107,
+ 0x0166, 0x01bc, 0x01d6, 0x01a5, 0x0199, 0x016d,
+ 0x0114, 0x00d5, 0x0080, 0x0039, 0x0010, 0xffc5,
+ 0xff66, 0xfeda, 0xfe28, 0xfd8c, 0xfcec, 0xfc59,
+ 0xfc02, 0xfbcf, 0xfbb1, 0xfbb0, 0xfbd6, 0xfc07,
+ 0xfc35, 0xfc5e, 0xfc5b, 0xfc3b, 0xfc28, 0xfc2b,
+ 0xfc33, 0xfbfd, 0xfbad, 0xfb78, 0xfb46, 0xfb4d,
+ 0xfb77, 0xfb77, 0xfb7e, 0xfb7a, 0xfb5d, 0xfb40,
+ 0xfb02, 0xfae0, 0xfaf5, 0xfb20, 0xfb85, 0xfc05,
+ 0xfc7d, 0xfcea, 0xfd3a, 0xfd8f, 0xfddf, 0xfe19,
+ 0xfe6c, 0xfeb3, 0xfee6, 0xff1f, 0xff4e, 0xff7b,
+ 0xff89, 0xff74, 0xff4f, 0xfefe, 0xfea9, 0xfe63,
+ 0xfe08, 0xfdc5, 0xfdab, 0xfdac, 0xfdbd, 0xfdc3,
+ 0xfdcb, 0xfdc0, 0xfd9a, 0xfd7b, 0xfd44, 0xfcf0,
+ 0xfc99, 0xfc4c, 0xfc1b, 0xfbe9, 0xfbaf, 0xfb7a,
+ 0xfb39, 0xfb19, 0xfb1c, 0xfb2d, 0xfb4e, 0xfb67,
+ 0xfba6, 0xfc0c, 0xfc6c, 0xfcf7, 0xfd85, 0xfdf1,
+ 0xfe69, 0xfecb, 0xff30, 0xff97, 0xffc1, 0xfff9,
+ 0x003a, 0x0055, 0x007d, 0x0080, 0x004b, 0x0024,
+ 0xfff5, 0xffc5, 0xffb0, 0xff94, 0xff6b, 0xff1b,
+ 0xfe97, 0xfe18, 0xfdb9, 0xfd65, 0xfd33, 0xfd2a,
+ 0xfd00, 0xfccd, 0xfcb5, 0xfc7c, 0xfc4e, 0xfc43,
+ 0xfc3b, 0xfc77, 0xfcaa, 0xfc96, 0xfc9e, 0xfc93,
+ 0xfc7e, 0xfcae, 0xfcc4, 0xfccd, 0xfcf2, 0xfcf7,
+ 0xfce7, 0xfcb5, 0xfc80, 0xfc7e, 0xfc68, 0xfc4f,
+ 0xfc51, 0xfc37, 0xfc27, 0xfc3a, 0xfc49, 0xfc66,
+ 0xfc9e, 0xfce1, 0xfd32, 0xfd89, 0xfdc9, 0xfe09,
+ 0xfe61, 0xfec3, 0xff46, 0xffc9, 0x0019, 0x007b,
+ 0x00e1, 0x011e, 0x0152, 0x0153, 0x013c, 0x0135,
+ 0x0108, 0x00e2, 0x00ba, 0x006e, 0x0055, 0x0044,
+ 0x0023, 0x0036, 0x003c, 0x003c, 0x0031, 0xffd1,
+ 0xff84, 0xff6f, 0xff4a, 0xff4a, 0xff62, 0xff50,
+ 0xff40, 0xff3a, 0xff0d, 0xfebb, 0xfe71, 0xfe51,
+ 0xfe60, 0xfe7b, 0xfe8d, 0xfea2, 0xfe94, 0xfe73,
+ 0xfe86, 0xfe88, 0xfe69, 0xfe71, 0xfe97, 0xfed7,
+ 0xff00, 0xfeff, 0xff1d, 0xff1e, 0xfef3, 0xfed0,
+ 0xfe53, 0xfda0, 0xfd26, 0xfcc2, 0xfc81, 0xfc51,
+ 0xfc10, 0xfbf9, 0xfbf1, 0xfbe6, 0xfbed, 0xfbe5,
+ 0xfbf0, 0xfc2d, 0xfc69, 0xfc95, 0xfcc2, 0xfd02,
+ 0xfd4c, 0xfd89, 0xfdbe, 0xfdf5, 0xfe24, 0xfe34,
+ 0xfe24, 0xfddd, 0xfd66, 0xfd18, 0xfce7, 0xfcb5,
+ 0xfcca, 0xfcea, 0xfcfb, 0xfd56, 0xfdba, 0xfe09,
+ 0xfe63, 0xfe98, 0xfecd, 0xff16, 0xff4a, 0xff94,
+ 0xfff4, 0x0047, 0x0085, 0x00a4, 0x00d3, 0x0114,
+ 0x014c, 0x0195, 0x01dc, 0x0211, 0x0258, 0x0296,
+ 0x02a0, 0x0299, 0x02a5, 0x0295, 0x027b, 0x02a3,
+ 0x02ce, 0x02e6, 0x031b, 0x0340, 0x0368, 0x03ad,
+ 0x03dc, 0x0400, 0x03ff, 0x03bd, 0x0380, 0x035e,
+ 0x0342, 0x0321, 0x02f4, 0x02de, 0x02e7, 0x02fe,
+ 0x0307, 0x02dc, 0x02a2, 0x028d, 0x02a2, 0x02c1,
+ 0x02c9, 0x02e8, 0x0335, 0x039a, 0x0412, 0x047a,
+ 0x04ca, 0x04f5, 0x04f1, 0x0503, 0x0513, 0x04f3,
+ 0x04ff, 0x0533, 0x054d, 0x0563, 0x0573, 0x0579,
+ 0x057b, 0x0575, 0x0591, 0x05c5, 0x05e1, 0x05e9,
+ 0x05ef, 0x05f8, 0x0604, 0x0628, 0x0666, 0x069a,
+ 0x06cb, 0x06fd, 0x0701, 0x06e0, 0x06c5, 0x06ac,
+ 0x0672, 0x062b, 0x05f5, 0x05af, 0x057e, 0x0574,
+ 0x0551, 0x0551, 0x0585, 0x0598, 0x05a8, 0x05b3,
+ 0x05a2, 0x05b7, 0x05ec, 0x0631, 0x0688, 0x06ba,
+ 0x06e2, 0x071a, 0x072f, 0x0728, 0x0716, 0x06dd,
+ 0x0683, 0x0623, 0x05bb, 0x0536, 0x04a5, 0x0440,
+ 0x0420, 0x0423, 0x0430, 0x045f, 0x049c, 0x04e4,
+ 0x0550, 0x05a8, 0x05f5, 0x0674, 0x06cd, 0x06f8,
+ 0x073e, 0x0774, 0x07a1, 0x07e6, 0x080a, 0x0828,
+ 0x0864, 0x087c, 0x0848, 0x07fb, 0x07bb, 0x0779,
+ 0x074a, 0x073b, 0x0725, 0x071c, 0x0729, 0x072a,
+ 0x0743, 0x0768, 0x0777, 0x0790, 0x07b0, 0x07c5,
+ 0x07cb, 0x07a9, 0x0778, 0x0756, 0x0727, 0x06e9,
+ 0x06c0, 0x06a4, 0x0682, 0x065d, 0x063d, 0x062c,
+ 0x061b, 0x05e5, 0x05b4, 0x05a7, 0x0576, 0x052a,
+ 0x04de, 0x046d, 0x03ee, 0x036a, 0x02ce, 0x024e,
+ 0x01ee, 0x01a0, 0x016c, 0x0143, 0x013c, 0x015b,
+ 0x015f, 0x0151, 0x0148, 0x0124, 0x00e6, 0x00bb,
+ 0x00a1, 0x0090, 0x00b8, 0x00f7, 0x0106, 0x0116,
+ 0x014b, 0x016d, 0x017a, 0x0182, 0x0174, 0x014a,
+ 0x010c, 0x00d4, 0x00b0, 0x0087, 0x004d, 0x001c,
+ 0x0003, 0xffef, 0xffcd, 0xffa3, 0xff78, 0xff3b,
+ 0xfee1, 0xfe9b, 0xfe88, 0xfe67, 0xfe3b, 0xfe32,
+ 0xfe13, 0xfdd0, 0xfd7c, 0xfce7, 0xfc4c, 0xfbf4,
+ 0xfb99, 0xfb23, 0xfae0, 0xfad1, 0xfac1, 0xfaba,
+ 0xfaca, 0xfad0, 0xfade, 0xfb0c, 0xfb1d, 0xfb0a,
+ 0xfb08, 0xfaf7, 0xfac0, 0xfa88, 0xfa53, 0xfa1e,
+ 0xfa07, 0xfa05, 0xfa09, 0xfa2b, 0xfa66, 0xfaa5,
+ 0xfaf8, 0xfb58, 0xfba6, 0xfbe0, 0xfc0d, 0xfc42,
+ 0xfc7e, 0xfcaf, 0xfcf1, 0xfd46, 0xfd85, 0xfda8,
+ 0xfdbd, 0xfdc7, 0xfdc5, 0xfdc9, 0xfde5, 0xfe10,
+ 0xfe5e, 0xfede, 0xff51, 0xffaa, 0x002f, 0x00bb,
+ 0x011f, 0x018f, 0x020c, 0x0280, 0x0304, 0x037b,
+ 0x03c2, 0x03ed, 0x040a, 0x0422, 0x0427, 0x0411,
+ 0x0422, 0x0443, 0x041e, 0x03ee, 0x03db, 0x03a6,
+ 0x0377, 0x0378, 0x0388, 0x03c2, 0x0404, 0x0404,
+ 0x03ff, 0x0424, 0x043e, 0x0447, 0x0463, 0x049e,
+ 0x04e7, 0x0515, 0x0510, 0x04d6, 0x0456, 0x0398,
+ 0x02d0, 0x0216, 0x0169, 0x00db, 0x008e, 0x0082,
+ 0x0083, 0x006f, 0x0069, 0x0086, 0x0095, 0x0076,
+ 0x004f, 0x0045, 0x005b, 0x00a1, 0x0111, 0x0173,
+ 0x01a6, 0x01ac, 0x0180, 0x0138, 0x00e9, 0x0088,
+ 0x001b, 0xffaa, 0xff14, 0xfe65, 0xfdc5, 0xfd42,
+ 0xfd09, 0xfd3f, 0xfdb4, 0xfe30, 0xfea0, 0xfeea,
+ 0xfef0, 0xfeca, 0xfeb4, 0xfec3, 0xfef3, 0xff5d,
+ 0xffdf, 0x000e, 0xffe6, 0xff8e, 0xfef4, 0xfe39,
+ 0xfda2, 0xfd36, 0xfcee, 0xfcc3, 0xfc9d, 0xfc78,
+ 0xfc3f, 0xfc09, 0xfc1f, 0xfc73, 0xfcd4, 0xfd4e,
+ 0xfdd7, 0xfe68, 0xfeed, 0xff51, 0xffd8, 0x0084,
+ 0x010d, 0x01a1, 0x0251, 0x02d7, 0x034f, 0x03a7,
+ 0x0384, 0x0311, 0x0289, 0x01d8, 0x0109, 0x0043,
+ 0xffdb, 0xfff0, 0x0022, 0x005c, 0x00b5, 0x00f9,
+ 0x012b, 0x0166, 0x019f, 0x0208, 0x02a1, 0x0327,
+ 0x038b, 0x03b0, 0x039f, 0x039a, 0x03a3, 0x03cf,
+ 0x042e, 0x0469, 0x0489, 0x04a8, 0x045e, 0x03ce,
+ 0x0362, 0x02e1, 0x0267, 0x0252, 0x0259, 0x025a,
+ 0x0283, 0x0294, 0x0275, 0x0274, 0x0282, 0x0284,
+ 0x029e, 0x02c5, 0x02e3, 0x02eb, 0x02bb, 0x0281,
+ 0x0269, 0x0239, 0x0205, 0x021d, 0x0235, 0x0222,
+ 0x0214, 0x01d6, 0x0155, 0x00d9, 0x0057, 0xffe3,
+ 0xffc6, 0xffeb, 0x003b, 0x00c6, 0x0157, 0x01cc,
+ 0x022a, 0x0253, 0x0241, 0x0214, 0x01fa, 0x0208,
+ 0x0216, 0x020e, 0x01f3, 0x01be, 0x01a1, 0x01b7,
+ 0x01c7, 0x01da, 0x0206, 0x0205, 0x01c9, 0x017f,
+ 0x0118, 0x00a7, 0x007b, 0x0084, 0x008b, 0x00b8,
+ 0x0122, 0x018c, 0x01ea, 0x023d, 0x0261, 0x0264,
+ 0x0261, 0x024c, 0x0231, 0x0206, 0x01bf, 0x0180,
+ 0x0128, 0x009c, 0x0027, 0xffc7, 0xff5d, 0xff1c,
+ 0xfef6, 0xfecf, 0xfeab, 0xfe6f, 0xfe42, 0xfe4a,
+ 0xfe58, 0xfe86, 0xfee3, 0xff2f, 0xff74, 0xffc1,
+ 0xfff5, 0x0009, 0xfff3, 0xffd1, 0xffc9, 0xffbb,
+ 0xffb9, 0xffc2, 0xffa0, 0xff88, 0xff7a, 0xff2d,
+ 0xfee6, 0xfeb2, 0xfe5e, 0xfe20, 0xfdca, 0xfd42,
+ 0xfcf8, 0xfcbf, 0xfc65, 0xfc47, 0xfc39, 0xfc24,
+ 0xfc4c, 0xfc54, 0xfc29, 0xfc2f, 0xfc3c, 0xfc37,
+ 0xfc3d, 0xfc22, 0xfc02, 0xfbfa, 0xfbc0, 0xfb54,
+ 0xfae3, 0xfa60, 0xf9dc, 0xf968, 0xf902, 0xf8c8,
+ 0xf8b6, 0xf8ad, 0xf8b5, 0xf8bf, 0xf8a4, 0xf869,
+ 0xf82d, 0xf7fa, 0xf7d0, 0xf7c8, 0xf7e8, 0xf80f,
+ 0xf834, 0xf863, 0xf885, 0xf897, 0xf8c7, 0xf90b,
+ 0xf933, 0xf951, 0xf978, 0xf989, 0xf993, 0xf9a3,
+ 0xf9ab, 0xf9bb, 0xf9ca, 0xf9c3, 0xf9c6, 0xf9cc,
+ 0xf9c1, 0xf9c6, 0xf9da, 0xf9eb, 0xfa06, 0xfa18,
+ 0xfa24, 0xfa33, 0xfa2b, 0xfa30, 0xfa4b, 0xfa49,
+ 0xfa50, 0xfa73, 0xfa8b, 0xfab7, 0xfaf3, 0xfb1a,
+ 0xfb36, 0xfb46, 0xfb65, 0xfba4, 0xfbd6, 0xfc20,
+ 0xfc8d, 0xfcd5, 0xfd21, 0xfd84, 0xfdc9, 0xfe15,
+ 0xfe5e, 0xfe97, 0xfef9, 0xff50, 0xff80, 0xffc7,
+ 0xffeb, 0xffee, 0x000a, 0xfffd, 0xffdc, 0xffd8,
+ 0xffb1, 0xff94, 0xff8e, 0xff4a, 0xfef2, 0xfe8c,
+ 0xfe0d, 0xfdda, 0xfddf, 0xfdde, 0xfe08, 0xfe36,
+ 0xfe3f, 0xfe55, 0xfe6c, 0xfe72, 0xfe79, 0xfe84,
+ 0xfea4, 0xfec2, 0xfed3, 0xfef9, 0xff12, 0xff0d,
+ 0xff00, 0xfecb, 0xfe87, 0xfe5a, 0xfe0c, 0xfdad,
+ 0xfd5a, 0xfcf3, 0xfcad, 0xfc9f, 0xfc8d, 0xfc99,
+ 0xfcda, 0xfd1c, 0xfd58, 0xfd98, 0xfdd3, 0xfe09,
+ 0xfe28, 0xfe2e, 0xfe39, 0xfe47, 0xfe30, 0xfde8,
+ 0xfd8e, 0xfd3d, 0xfcf6, 0xfcbb, 0xfc89, 0xfc5d,
+ 0xfc32, 0xfbf7, 0xfbbe, 0xfba7, 0xfb99, 0xfba1,
+ 0xfbe5, 0xfc3c, 0xfc7b, 0xfcb5, 0xfcfa, 0xfd34,
+ 0xfd3b, 0xfd33, 0xfd56, 0xfd65, 0xfd3d, 0xfd24,
+ 0xfd1f, 0xfd0f, 0xfcfe, 0xfce6, 0xfcd5, 0xfcf5,
+ 0xfd3a, 0xfd89, 0xfddd, 0xfe33, 0xfe88, 0xfee0,
+ 0xff47, 0xffa6, 0xfff5, 0x0045, 0x0061, 0x005b,
+ 0x0095, 0x00c3, 0x009e, 0x0083, 0x0068, 0x003e,
+ 0x004d, 0x0053, 0x0022, 0x0015, 0x0019, 0x000d,
+ 0x000b, 0x0001, 0xfff8, 0xfffe, 0x0008, 0x0028,
+ 0x0051, 0x0087, 0x00e0, 0x0122, 0x0155, 0x019f,
+ 0x01c7, 0x01f5, 0x0250, 0x028a, 0x02d5, 0x0341,
+ 0x036c, 0x0387, 0x03b6, 0x03c8, 0x03e7, 0x03f6,
+ 0x03d0, 0x03bb, 0x0392, 0x033f, 0x0301, 0x02af,
+ 0x025c, 0x0250, 0x0252, 0x0259, 0x0275, 0x0272,
+ 0x0260, 0x0242, 0x01fc, 0x01cf, 0x01d4, 0x01e6,
+ 0x0210, 0x0262, 0x02d5, 0x032a, 0x033e, 0x0364,
+ 0x0396, 0x03a0, 0x03cf, 0x041e, 0x0442, 0x0452,
+ 0x0453, 0x044e, 0x0462, 0x0466, 0x0479, 0x04c0,
+ 0x04e6, 0x04f2, 0x050c, 0x0510, 0x050e, 0x0500,
+ 0x04c6, 0x0497, 0x047d, 0x0472, 0x048c, 0x04a6,
+ 0x04c1, 0x0502, 0x054d, 0x05a0, 0x05eb, 0x060c,
+ 0x061c, 0x0634, 0x0669, 0x06c4, 0x0704, 0x0741,
+ 0x07a1, 0x07cd, 0x07d3, 0x07e1, 0x07b0, 0x0779,
+ 0x0782, 0x076c, 0x074d, 0x0765, 0x076e, 0x076c,
+ 0x077b, 0x076f, 0x074e, 0x0731, 0x0713, 0x0714,
+ 0x071e, 0x06f3, 0x06cf, 0x06f9, 0x0728, 0x0735,
+ 0x0761, 0x0794, 0x07ab, 0x07ca, 0x07d7, 0x07b7,
+ 0x079c, 0x077a, 0x0754, 0x075f, 0x076b, 0x075b,
+ 0x0751, 0x0738, 0x071a, 0x0711, 0x06f5, 0x06d6,
+ 0x06cf, 0x06cc, 0x06dc, 0x06f3, 0x06da, 0x0697,
+ 0x0658, 0x062a, 0x0600, 0x05ea, 0x05fd, 0x0627,
+ 0x0658, 0x066d, 0x0648, 0x0638, 0x0650, 0x0639,
+ 0x061f, 0x0613, 0x05d6, 0x05c5, 0x05e2, 0x05c1,
+ 0x05ae, 0x05c6, 0x05c1, 0x05c5, 0x05c6, 0x059d,
+ 0x0563, 0x04fd, 0x0491, 0x0453, 0x0414, 0x03ea,
+ 0x03d3, 0x0392, 0x0366, 0x0349, 0x02fe, 0x02d4,
+ 0x02bc, 0x0281, 0x0260, 0x023d, 0x0204, 0x01ed,
+ 0x01cf, 0x01a7, 0x01a1, 0x0195, 0x0179, 0x0158,
+ 0x012d, 0x0123, 0x0130, 0x013b, 0x015c, 0x0180,
+ 0x01a9, 0x01e6, 0x0218, 0x0245, 0x0270, 0x0292,
+ 0x02ba, 0x02c2, 0x02b2, 0x02bb, 0x02a1, 0x026a,
+ 0x024f, 0x0216, 0x01cf, 0x01b3, 0x018e, 0x016a,
+ 0x015b, 0x0147, 0x0157, 0x0179, 0x018b, 0x01c8,
+ 0x020d, 0x0213, 0x01fe, 0x01de, 0x01bf, 0x01ab,
+ 0x0184, 0x0170, 0x0172, 0x013c, 0x00ef, 0x00c5,
+ 0x00a5, 0x009c, 0x00be, 0x00ea, 0x010c, 0x0110,
+ 0x00fe, 0x0104, 0x011a, 0x0126, 0x0145, 0x0175,
+ 0x019a, 0x01ca, 0x01fe, 0x021d, 0x0234, 0x0233,
+ 0x0216, 0x021a, 0x0224, 0x0208, 0x01fb, 0x01ec,
+ 0x01c7, 0x01d8, 0x01f9, 0x01f6, 0x0210, 0x023e,
+ 0x0272, 0x02e0, 0x0353, 0x03a2, 0x03eb, 0x0420,
+ 0x0447, 0x0474, 0x0494, 0x04aa, 0x04bf, 0x04d1,
+ 0x04d7, 0x04be, 0x04a2, 0x047f, 0x0433, 0x040a,
+ 0x041a, 0x0419, 0x0433, 0x0477, 0x04b1, 0x04fa,
+ 0x053d, 0x056d, 0x05cc, 0x0643, 0x06b0, 0x071a,
+ 0x074d, 0x0739, 0x06e4, 0x0653, 0x05d1, 0x0564,
+ 0x04f4, 0x04b1, 0x046e, 0x040b, 0x03d3, 0x03b7,
+ 0x03aa, 0x03d6, 0x0403, 0x041b, 0x043b, 0x044c,
+ 0x0457, 0x046c, 0x0488, 0x04b9, 0x04d6, 0x04c1,
+ 0x048f, 0x0431, 0x03ae, 0x031d, 0x0282, 0x020c,
+ 0x01b8, 0x0151, 0x0101, 0x00d0, 0x0087, 0x0042,
+ 0x0025, 0x0023, 0x0042, 0x008e, 0x00f0, 0x0144,
+ 0x0174, 0x017e, 0x0156, 0x0107, 0x00bc, 0x008d,
+ 0x0075, 0x005f, 0x003b, 0x0017, 0xfff0, 0xffbc,
+ 0xff87, 0xff47, 0xff0b, 0xfee5, 0xfeca, 0xfec2,
+ 0xfea6, 0xfe5d, 0xfe41, 0xfe3b, 0xfde5, 0xfd8d,
+ 0xfd73, 0xfd65, 0xfd7d, 0xfdb5, 0xfde0, 0xfe0f,
+ 0xfe1f, 0xfde7, 0xfd9e, 0xfd5f, 0xfd21, 0xfcfa,
+ 0xfcf3, 0xfcfd, 0xfcfc, 0xfcea, 0xfcdc, 0xfcd4,
+ 0xfcdd, 0xfd04, 0xfd3b, 0xfd9b, 0xfe18, 0xfe68,
+ 0xfe88, 0xfeaf, 0xfed8, 0xfedf, 0xfed3, 0xfeed,
+ 0xff22, 0xff42, 0xff6f, 0xff9f, 0xff91, 0xff66,
+ 0xff3b, 0xfefe, 0xfeec, 0xff17, 0xff40, 0xff82,
+ 0xffe5, 0x002a, 0x006d, 0x00c3, 0x0100, 0x012f,
+ 0x016c, 0x01b3, 0x01ff, 0x023e, 0x026f, 0x029f,
+ 0x02be, 0x02c4, 0x02ca, 0x02e1, 0x0303, 0x0309,
+ 0x02ef, 0x02e6, 0x02f5, 0x02ff, 0x030e, 0x031a,
+ 0x0318, 0x0330, 0x0365, 0x0392, 0x03ad, 0x03b2,
+ 0x03b0, 0x03ba, 0x03c1, 0x03c4, 0x03c9, 0x03bc,
+ 0x03b1, 0x03b8, 0x03c1, 0x03d6, 0x03f0, 0x03f5,
+ 0x03ec, 0x03c9, 0x039f, 0x037a, 0x032c, 0x02d7,
+ 0x02ae, 0x0287, 0x0285, 0x02b5, 0x02b3, 0x02ad,
+ 0x02e6, 0x0301, 0x02fa, 0x02fa, 0x02d7, 0x02b9,
+ 0x02d1, 0x02e0, 0x02e6, 0x030c, 0x032f, 0x0322,
+ 0x02f0, 0x02b8, 0x0286, 0x0256, 0x0242, 0x0245,
+ 0x023b, 0x0226, 0x020e, 0x01dc, 0x0193, 0x0146,
+ 0x00cf, 0x0026, 0xff9a, 0xff2f, 0xfead, 0xfe4d,
+ 0xfe1e, 0xfdd5, 0xfdab, 0xfdc0, 0xfdba, 0xfdb7,
+ 0xfde9, 0xfe15, 0xfe33, 0xfe44, 0xfe31, 0xfe26,
+ 0xfe2f, 0xfe20, 0xfdfe, 0xfde4, 0xfdce, 0xfd94,
+ 0xfd33, 0xfceb, 0xfcbc, 0xfc72, 0xfc35, 0xfc29,
+ 0xfc29, 0xfc18, 0xfbf1, 0xfbc0, 0xfb8d, 0xfb5b,
+ 0xfb34, 0xfb18, 0xfb0b, 0xfb1c, 0xfb3d, 0xfb61,
+ 0xfb73, 0xfb63, 0xfb48, 0xfb28, 0xfafc, 0xfacb,
+ 0xfa80, 0xfa37, 0xfa11, 0xf9d2, 0xf993, 0xf974,
+ 0xf92c, 0xf8e3, 0xf8be, 0xf864, 0xf809, 0xf7ec,
+ 0xf7c7, 0xf7bb, 0xf7de, 0xf7e9, 0xf7f0, 0xf80e,
+ 0xf820, 0xf823, 0xf833, 0xf86b, 0xf89c, 0xf8a6,
+ 0xf8b9, 0xf8ad, 0xf87b, 0xf86c, 0xf83b, 0xf7e6,
+ 0xf7d0, 0xf79f, 0xf758, 0xf76a, 0xf769, 0xf746,
+ 0xf74c, 0xf738, 0xf746, 0xf791, 0xf79d, 0xf7ac,
+ 0xf7e9, 0xf7ff, 0xf84d, 0xf8d8, 0xf91c, 0xf943,
+ 0xf961, 0xf94f, 0xf932, 0xf8fd, 0xf8b3, 0xf87e,
+ 0xf846, 0xf81f, 0xf80f, 0xf7e8, 0xf7db, 0xf7f4,
+ 0xf7f5, 0xf7e1, 0xf7c5, 0xf7ba, 0xf7c3, 0xf7a4,
+ 0xf79d, 0xf7db, 0xf7f3, 0xf800, 0xf83f, 0xf864,
+ 0xf878, 0xf896, 0xf87d, 0xf849, 0xf81e, 0xf7fd,
+ 0xf811, 0xf832, 0xf832, 0xf83d, 0xf84c, 0xf861,
+ 0xf888, 0xf891, 0xf8a8, 0xf8eb, 0xf908, 0xf916,
+ 0xf947, 0xf969, 0xf990, 0xf9cb, 0xf9fb, 0xfa38,
+ 0xfa66, 0xfa7b, 0xfaab, 0xfac7, 0xfabb, 0xfacf,
+ 0xfad0, 0xfa99, 0xfa61, 0xfa2a, 0xfa0d, 0xfa15,
+ 0xfa21, 0xfa41, 0xfa67, 0xfa79, 0xfab7, 0xfb0a,
+ 0xfb45, 0xfb8b, 0xfbb2, 0xfbbe, 0xfbfd, 0xfc34,
+ 0xfc51, 0xfc8c, 0xfcc0, 0xfd09, 0xfd75, 0xfda3,
+ 0xfdb2, 0xfdd2, 0xfdc3, 0xfdad, 0xfdaa, 0xfd7f,
+ 0xfd54, 0xfd44, 0xfd34, 0xfd3b, 0xfd47, 0xfd39,
+ 0xfd2b, 0xfd17, 0xfd01, 0xfcf3, 0xfcd0, 0xfcb1,
+ 0xfca6, 0xfc83, 0xfc6b, 0xfc89, 0xfc9e, 0xfc94,
+ 0xfc87, 0xfc6a, 0xfc2a, 0xfbd8, 0xfba1, 0xfb95,
+ 0xfb86, 0xfb6e, 0xfb6b, 0xfb6a, 0xfb5d, 0xfb53,
+ 0xfb4b, 0xfb57, 0xfb8e, 0xfbc3, 0xfbe0, 0xfc04,
+ 0xfc2e, 0xfc4f, 0xfc69, 0xfc69, 0xfc58, 0xfc36,
+ 0xfbf3, 0xfbc6, 0xfbd2, 0xfbeb, 0xfc1b, 0xfc61,
+ 0xfc84, 0xfca7, 0xfce4, 0xfd06, 0xfd18, 0xfd3a,
+ 0xfd59, 0xfd73, 0xfd83, 0xfd85, 0xfd92, 0xfda4,
+ 0xfda5, 0xfd89, 0xfd56, 0xfd24, 0xfcea, 0xfcb2,
+ 0xfcb4, 0xfccd, 0xfce6, 0xfd30, 0xfd8b, 0xfddd,
+ 0xfe3c, 0xfe74, 0xfe87, 0xfeaf, 0xfec8, 0xfed5,
+ 0xff03, 0xff22, 0xff3b, 0xff86, 0xffd0, 0xfff0,
+ 0xfff5, 0xfff4, 0xfffc, 0x0006, 0x002a, 0x007f,
+ 0x00c3, 0x00ef, 0x0143, 0x0192, 0x01ba, 0x01e3,
+ 0x01f4, 0x01e6, 0x01eb, 0x01fa, 0x0211, 0x0249,
+ 0x0274, 0x0277, 0x028d, 0x02bb, 0x02c3, 0x02b9,
+ 0x02c3, 0x02be, 0x02a0, 0x02a6, 0x02cc, 0x02ea,
+ 0x030c, 0x034c, 0x039d, 0x03e2, 0x0419, 0x044c,
+ 0x0476, 0x049b, 0x04bc, 0x04b6, 0x04a8, 0x04d0,
+ 0x04ec, 0x04d1, 0x04e0, 0x051d, 0x0543, 0x056a,
+ 0x059c, 0x05b3, 0x05cb, 0x05fa, 0x0634, 0x0686,
+ 0x06e6, 0x0728, 0x0750, 0x077f, 0x07a5, 0x07bc,
+ 0x07e4, 0x0816, 0x083c, 0x0855, 0x084d, 0x0843,
+ 0x085e, 0x086f, 0x087f, 0x08b8, 0x08e8, 0x0909,
+ 0x0942, 0x0964, 0x0978, 0x09b6, 0x09f1, 0x0a04,
+ 0x0a06, 0x0a06, 0x0a04, 0x09ed, 0x09d8, 0x09ea,
+ 0x09f2, 0x09f7, 0x0a23, 0x0a30, 0x0a15, 0x0a24,
+ 0x0a4a, 0x0a6a, 0x0a85, 0x0a8b, 0x0a83, 0x0a73,
+ 0x0a6a, 0x0a7a, 0x0a7f, 0x0a7d, 0x0a87, 0x0a71,
+ 0x0a61, 0x0a72, 0x0a55, 0x0a1f, 0x0a1b, 0x0a3a,
+ 0x0a68, 0x0a93, 0x0ab0, 0x0ae1, 0x0b1a, 0x0b4a,
+ 0x0b7b, 0x0ba4, 0x0bc5, 0x0bd4, 0x0bc2, 0x0bc1,
+ 0x0bc8, 0x0ba9, 0x0b94, 0x0b9e, 0x0b9b, 0x0b78,
+ 0x0b2e, 0x0ae1, 0x0aa5, 0x0a5e, 0x0a49, 0x0a78,
+ 0x0a94, 0x0aa8, 0x0ab9, 0x0aa3, 0x0aa4, 0x0aba,
+ 0x0a91, 0x0a45, 0x0a02, 0x09c1, 0x098a, 0x0951,
+ 0x090e, 0x08d7, 0x088e, 0x0827, 0x07c8, 0x077c,
+ 0x0739, 0x0703, 0x06e4, 0x06d1, 0x06bc, 0x06ae,
+ 0x069d, 0x066f, 0x062f, 0x05e8, 0x0592, 0x053a,
+ 0x04f4, 0x04b2, 0x044a, 0x03d3, 0x038d, 0x035d,
+ 0x032b, 0x032a, 0x032c, 0x0308, 0x02fe, 0x02fa,
+ 0x02d8, 0x02d2, 0x02d4, 0x02b7, 0x0295, 0x0265,
+ 0x023d, 0x0222, 0x01dc, 0x019a, 0x017f, 0x0137,
+ 0x00d0, 0x0089, 0x003d, 0xffed, 0xffb9, 0xff91,
+ 0xff6d, 0xff48, 0xff1e, 0xfefc, 0xfecb, 0xfe9a,
+ 0xfea1, 0xfead, 0xfe99, 0xfe9c, 0xfe9e, 0xfe75,
+ 0xfe5b, 0xfe64, 0xfe70, 0xfe7d, 0xfe7b, 0xfe84,
+ 0xfeb0, 0xfecb, 0xfed8, 0xff06, 0xff29, 0xff33,
+ 0xff46, 0xff5e, 0xff7b, 0xff96, 0xffa1, 0xffc3,
+ 0xfff8, 0x0021, 0x0053, 0x0071, 0x0076, 0x0098,
+ 0x00bd, 0x00bd, 0x00c3, 0x00dd, 0x00fd, 0x011e,
+ 0x0133, 0x0158, 0x018d, 0x01b3, 0x01e3, 0x0211,
+ 0x0226, 0x0251, 0x028c, 0x02a9, 0x02d0, 0x0315,
+ 0x033b, 0x0335, 0x0338, 0x0353, 0x0359, 0x0343,
+ 0x0343, 0x0354, 0x034e, 0x0339, 0x0334, 0x0337,
+ 0x032d, 0x032f, 0x0358, 0x037f, 0x0393, 0x03b8,
+ 0x03dc, 0x03eb, 0x040c, 0x042e, 0x0426, 0x040b,
+ 0x040c, 0x0428, 0x0432, 0x040f, 0x03e7, 0x03c6,
+ 0x0384, 0x0335, 0x0306, 0x02db, 0x02a2, 0x028d,
+ 0x029a, 0x02a3, 0x02bd, 0x02e6, 0x02f3, 0x02fb,
+ 0x0317, 0x033d, 0x0370, 0x0398, 0x03ab, 0x03c2,
+ 0x03be, 0x0389, 0x0340, 0x02f0, 0x02a4, 0x025c,
+ 0x0215, 0x01e7, 0x01a3, 0x0133, 0x00da, 0x007e,
+ 0x0022, 0x001b, 0x0020, 0x0012, 0x0048, 0x0071,
+ 0x0066, 0x006e, 0x004c, 0x000e, 0x000f, 0x000e,
+ 0x0006, 0x0039, 0x0072, 0x007e, 0x0058, 0xfffd,
+ 0xffa5, 0xff71, 0xff5f, 0xff6d, 0xff73, 0xff77,
+ 0xff78, 0xff4d, 0xff21, 0xfefd, 0xfeab, 0xfe69,
+ 0xfe58, 0xfe48, 0xfe55, 0xfe78, 0xfea2, 0xff03,
+ 0xff5e, 0xff7c, 0xff9d, 0xffae, 0xff88, 0xff5d,
+ 0xff3f, 0xff2f, 0xff1b, 0xfedd, 0xfea5, 0xfe93,
+ 0xfe7d, 0xfe6f, 0xfe77, 0xfe73, 0xfe70, 0xfe6c,
+ 0xfe44, 0xfe1c, 0xfe1e, 0xfe4a, 0xfe80, 0xfebc,
+ 0xff1e, 0xff79, 0xff7d, 0xff69, 0xff77, 0xff6b,
+ 0xff4f, 0xff42, 0xff33, 0xff43, 0xff65, 0xff5d,
+ 0xff47, 0xff27, 0xfef4, 0xfee4, 0xfeef, 0xff0e,
+ 0xff61, 0xffa2, 0xffbc, 0xffeb, 0xffff, 0xfff4,
+ 0xfffb, 0xffdb, 0xffa6, 0xff9b, 0xff99, 0xffb6,
+ 0xfffc, 0x0028, 0x005a, 0x00a1, 0x00be, 0x00d1,
+ 0x00df, 0x00c9, 0x00c5, 0x00c5, 0x00b1, 0x00bd,
+ 0x00cb, 0x00c4, 0x00ec, 0x012c, 0x0168, 0x01ac,
+ 0x01b9, 0x0199, 0x019d, 0x01ad, 0x01b1, 0x01c3,
+ 0x01ca, 0x01d6, 0x020e, 0x0259, 0x02a7, 0x02f5,
+ 0x032f, 0x0366, 0x0396, 0x03ac, 0x03c0, 0x03d2,
+ 0x03c9, 0x03b8, 0x03b0, 0x03bc, 0x03e8, 0x0410,
+ 0x041b, 0x0422, 0x0432, 0x0445, 0x0447, 0x043d,
+ 0x044f, 0x0466, 0x0448, 0x041a, 0x040d, 0x0402,
+ 0x03e0, 0x03bd, 0x03b3, 0x03ac, 0x0393, 0x0396,
+ 0x03a9, 0x039e, 0x03a1, 0x03a3, 0x036a, 0x0329,
+ 0x02f5, 0x02a4, 0x0248, 0x01e2, 0x0189, 0x0163,
+ 0x0139, 0x0106, 0x00e7, 0x00a9, 0x0052, 0xfffe,
+ 0xff99, 0xff50, 0xff24, 0xfef4, 0xfeed, 0xfed4,
+ 0xfe7c, 0xfe45, 0xfe13, 0xfdb3, 0xfd7f, 0xfd6e,
+ 0xfd5e, 0xfd65, 0xfd4e, 0xfd1a, 0xfd00, 0xfcf1,
+ 0xfcf6, 0xfcf7, 0xfcc3, 0xfc9b, 0xfc82, 0xfc4d,
+ 0xfc2a, 0xfbf9, 0xfba3, 0xfb6a, 0xfb2e, 0xfad9,
+ 0xfaa0, 0xfa66, 0xfa20, 0xf9e2, 0xf98a, 0xf942,
+ 0xf923, 0xf8e7, 0xf8a2, 0xf87e, 0xf860, 0xf859,
+ 0xf858, 0xf827, 0xf7e8, 0xf7c2, 0xf7a8, 0xf79c,
+ 0xf7a2, 0xf7ba, 0xf7c5, 0xf7ae, 0xf79d, 0xf78a,
+ 0xf743, 0xf6ee, 0xf6b9, 0xf696, 0xf688, 0xf678,
+ 0xf65f, 0xf660, 0xf65f, 0xf645, 0xf641, 0xf650,
+ 0xf668, 0xf6a2, 0xf6db, 0xf704, 0xf734, 0xf73d,
+ 0xf720, 0xf708, 0xf6e7, 0xf6d0, 0xf6dd, 0xf6df,
+ 0xf6cc, 0xf6b4, 0xf6a2, 0xf6c6, 0xf6f4, 0xf707,
+ 0xf752, 0xf7b5, 0xf7eb, 0xf834, 0xf87a, 0xf894,
+ 0xf8c3, 0xf8d8, 0xf8b5, 0xf8c4, 0xf8ec, 0xf8fe,
+ 0xf944, 0xf98e, 0xf992, 0xf992, 0xf993, 0xf975,
+ 0xf970, 0xf982, 0xf975, 0xf96d, 0xf97d, 0xf976,
+ 0xf972, 0xf991, 0xf9a0, 0xf998, 0xf99a, 0xf99c,
+ 0xf9bb, 0xf9ed, 0xf9e9, 0xf9e3, 0xfa04, 0xf9f5,
+ 0xf9e2, 0xf9fa, 0xf9ea, 0xf9de, 0xfa0e, 0xfa24,
+ 0xfa21, 0xfa28, 0xfa20, 0xfa23, 0xfa27, 0xfa16,
+ 0xfa15, 0xf9fe, 0xf9c3, 0xf99b, 0xf973, 0xf947,
+ 0xf93e, 0xf944, 0xf953, 0xf967, 0xf978, 0xf98c,
+ 0xf97d, 0xf971, 0xf99a, 0xf9b0, 0xf9d3, 0xfa09,
+ 0xf9de, 0xf9cf, 0xfa25, 0xfa2c, 0xfa35, 0xfa71,
+ 0xfa41, 0xfa50, 0xfad9, 0xfacc, 0xfaa9, 0xfaf7,
+ 0xfad6, 0xfaa3, 0xfae0, 0xfab8, 0xfa64, 0xfa9c,
+ 0xfaf2, 0xfb1b, 0xfb29, 0xfb1e, 0xfb44, 0xfb6b,
+ 0xfb55, 0xfb82, 0xfbda, 0xfbe9, 0xfc0c, 0xfc48,
+ 0xfc55, 0xfc76, 0xfc71, 0xfc2c, 0xfc35, 0xfc48,
+ 0xfc20, 0xfc46, 0xfc75, 0xfc5b, 0xfc93, 0xfcf7,
+ 0xfd13, 0xfd32, 0xfd6f, 0xfdc3, 0xfe5b, 0xfee8,
+ 0xff00, 0xfee1, 0xff15, 0xff78, 0xff66, 0xff27,
+ 0xff3a, 0xff4e, 0xff62, 0xff85, 0xff69, 0xff9d,
+ 0x004f, 0x008b, 0x0056, 0x0048, 0x003f, 0x0018,
+ 0xffe8, 0xffe5, 0x002e, 0x0053, 0x0029, 0x002b,
+ 0x009f, 0x00f9, 0x009b, 0x0052, 0x00cb, 0x00d2,
+ 0x005f, 0x00a7, 0x00ce, 0x005d, 0x00a0, 0x012d,
+ 0x00fe, 0x00c2, 0x00e7, 0x0103, 0x014e, 0x01f6,
+ 0x021c, 0x01d4, 0x026a, 0x030b, 0x029e, 0x02a7,
+ 0x0307, 0x0293, 0x02ac, 0x0302, 0x02a2, 0x0365,
+ 0x0468, 0x03d9, 0x03d1, 0x048c, 0x0493, 0x04e2,
+ 0x0526, 0x0498, 0x0480, 0x04bc, 0x046d, 0x0411,
+ 0x040e, 0x0441, 0x041b, 0x03eb, 0x044b, 0x0411,
+ 0x037f, 0x03fd, 0x041a, 0x03c3, 0x049f, 0x052d,
+ 0x04d6, 0x051e, 0x054f, 0x0518, 0x0524, 0x04df,
+ 0x04b9, 0x0530, 0x0557, 0x0564, 0x05de, 0x064f,
+ 0x06a0, 0x06be, 0x06be, 0x0745, 0x081b, 0x088e,
+ 0x08c2, 0x08e9, 0x08a0, 0x0818, 0x0822, 0x084f,
+ 0x07df, 0x07a2, 0x07f6, 0x0827, 0x0825, 0x082c,
+ 0x0880, 0x091a, 0x0970, 0x09d2, 0x0a42, 0x0a15,
+ 0x0a15, 0x0a55, 0x09fd, 0x0a09, 0x0a76, 0x0a22,
+ 0x09f0, 0x0a07, 0x09c5, 0x09d3, 0x09de, 0x0983,
+ 0x095f, 0x0915, 0x08c4, 0x091a, 0x098f, 0x09bb,
+ 0x09ad, 0x09ea, 0x0ad4, 0x0b22, 0x0abe, 0x0acf,
+ 0x0acf, 0x0b0c, 0x0bbe, 0x0b79, 0x0b2e, 0x0b51,
+ 0x0a4e, 0x09ce, 0x0a92, 0x0a5d, 0x0a0a, 0x0a7a,
+ 0x0a68, 0x0a86, 0x0ae4, 0x0a68, 0x0a13, 0x0a8d,
+ 0x0af1, 0x0a91, 0x09d8, 0x09d0, 0x09d9, 0x097b,
+ 0x09c5, 0x09d1, 0x0941, 0x0987, 0x097a, 0x08d7,
+ 0x093b, 0x0928, 0x0876, 0x08cb, 0x08b5, 0x0803,
+ 0x07e8, 0x0763, 0x06df, 0x06e4, 0x06cb, 0x0794,
+ 0x0827, 0x0729, 0x071c, 0x077e, 0x06af, 0x0731,
+ 0x07fc, 0x06f7, 0x06fc, 0x0771, 0x066a, 0x0678,
+ 0x0670, 0x0493, 0x0454, 0x04dd, 0x03e8, 0x042f,
+ 0x04a7, 0x0386, 0x03e3, 0x0493, 0x037d, 0x03a2,
+ 0x044b, 0x03b1, 0x046d, 0x05c5, 0x05b8, 0x0593,
+ 0x0543, 0x04e6, 0x0530, 0x04e9, 0x04b9, 0x04eb,
+ 0x03be, 0x02d5, 0x02f5, 0x0218, 0x0170, 0x0182,
+ 0x00d0, 0x00ac, 0x0128, 0x00c9, 0x008d, 0x00b0,
+ 0x0076, 0x009a, 0x016a, 0x0224, 0x01d3, 0x0121,
+ 0x017d, 0x01be, 0x015a, 0x0137, 0x0025, 0xff1b,
+ 0xffa1, 0xfeea, 0xfd5b, 0xfdbf, 0xfe2f, 0xfe2f,
+ 0xff0f, 0xff47, 0xff09, 0xff21, 0xfec4, 0xff51,
+ 0x00ca, 0x00f3, 0x0071, 0x0060, 0x002c, 0xff7a,
+ 0xfe23, 0xfccd, 0xfc1a, 0xfbd5, 0xfc08, 0xfc1d,
+ 0xfbeb, 0xfc5d, 0xfcbe, 0xfcfc, 0xfe2e, 0xff01,
+ 0xfede, 0xff12, 0xff45, 0xff35, 0xff4c, 0xff36,
+ 0xff2d, 0xff20, 0xfec4, 0xfe9b, 0xfe94, 0xfee0,
+ 0xffa9, 0xffb7, 0xff86, 0x004e, 0x00dc, 0x00b9,
+ 0x00f7, 0x019b, 0x0238, 0x02ba, 0x0331, 0x0332,
+ 0x024d, 0x0192, 0x019d, 0x01a4, 0x0188, 0x0120,
+ 0x009f, 0x00a3, 0x0038, 0xff8d, 0xffdd, 0x0036,
+ 0x0086, 0x00e8, 0x006b, 0x00f7, 0x025f, 0x01b6,
+ 0x0134, 0x01ec, 0x00e4, 0xffeb, 0x0098, 0x001d,
+ 0xfedc, 0xfe9a, 0xfe6e, 0xfde3, 0xfdfc, 0xff60,
+ 0x0082, 0x00b0, 0x0221, 0x03db, 0x0415, 0x04cb,
+ 0x04cb, 0x036d, 0x048c, 0x05ce, 0x03f9, 0x0326,
+ 0x033c, 0x01b9, 0x0168, 0x01bd, 0x00e4, 0x01a7,
+ 0x032a, 0x02b9, 0x02e2, 0x0496, 0x050e, 0x049d,
+ 0x04ea, 0x04b7, 0x040a, 0x04eb, 0x057d, 0x03cd,
+ 0x02eb, 0x02fe, 0x012f, 0xffe0, 0x002a, 0xfebb,
+ 0xfce8, 0xfd61, 0xfe08, 0xfdd3, 0xfdfb, 0xfe8a,
+ 0xff54, 0xffbd, 0xff27, 0xfecf, 0xff3d, 0xfef5,
+ 0xfdfa, 0xfe07, 0xfea2, 0xfd92, 0xfb73, 0xfac9,
+ 0xfb3a, 0xfb39, 0xfb4d, 0xfbbc, 0xfc2e, 0xfd4b,
+ 0xfe74, 0xfeb1, 0xffa1, 0x019d, 0x0276, 0x021c,
+ 0x0142, 0xff83, 0xfe1f, 0xfd70, 0xfbe4, 0xfa8b,
+ 0xfa53, 0xf97e, 0xf885, 0xf8e2, 0xf97e, 0xf9c6,
+ 0xfa9e, 0xfc5c, 0xfea1, 0x0068, 0x0176, 0x02f0,
+ 0x04d2, 0x05cc, 0x05d3, 0x05c7, 0x0563, 0x042d,
+ 0x02a0, 0x010f, 0xffec, 0xff1f, 0xfd45, 0xfc0e,
+ 0xfd9d, 0xfe8d, 0xfe72, 0x009b, 0x01ee, 0x018a,
+ 0x0337, 0x0399, 0x01ea, 0x02ef, 0x032f, 0x0109,
+ 0x00f3, 0x0009, 0xfd55, 0xfd2c, 0xfcfb, 0xfb81,
+ 0xfb70, 0xfab6, 0xf9b5, 0xfa9c, 0xfb20, 0xfb63,
+ 0xfbec, 0xfb48, 0xfbd5, 0xfd79, 0xfd59, 0xfddd,
+ 0xff64, 0xfef3, 0xfe64, 0xfeec, 0xfedb, 0xff16,
+ 0xffae, 0xff83, 0x0058, 0x025d, 0x029a, 0x0156,
+ 0x0186, 0x0252, 0x0172, 0x00ce, 0x01a2, 0x019a,
+ 0x0150, 0x021b, 0x01d2, 0x00eb, 0x00d1, 0xffc7,
+ 0xff59, 0x0110, 0x0158, 0x00e9, 0x0244, 0x027f,
+ 0x021f, 0x02fb, 0x026b, 0x01d6, 0x01ea, 0xff84,
+ 0xfef4, 0x0152, 0x0027, 0xff11, 0x00a5, 0xfef8,
+ 0xfdd3, 0xffca, 0xfe7c, 0xfd80, 0x0027, 0x0089,
+ 0xffb2, 0xffbc, 0xfea9, 0xfee7, 0xff86, 0xfdd3,
+ 0xfd0e, 0xfd8e, 0xfe2a, 0xff67, 0xff12, 0xfe89,
+ 0xff49, 0xfe09, 0xfd68, 0xff73, 0xffa7, 0xffb5,
+ 0x015d, 0x009b, 0xff9d, 0x0142, 0x0238, 0x01c4,
+ 0x01aa, 0x01a9, 0x008e, 0xfeae, 0xff0b, 0x014e,
+ 0x027d, 0x0427, 0x05b2, 0x0417, 0x039f, 0x0624,
+ 0x0659, 0x0575, 0x066a, 0x056c, 0x0349, 0x03b5,
+ 0x02d0, 0xffaa, 0xfeee, 0xfe9e, 0xfcdc, 0xfd04,
+ 0xfd54, 0xfca6, 0xfdb6, 0xfdfd, 0xfd4c, 0xfe09,
+ 0xfd48, 0xfcfb, 0xfe98, 0xfd0e, 0xfca3, 0xfee4,
+ 0xfb99, 0xf7ef, 0xf8c6, 0xf78b, 0xf718, 0xf850,
+ 0xf5a7, 0xf44e, 0xf58b, 0xf5e8, 0xf857, 0xf87a,
+ 0xf453, 0xf375, 0xf4b8, 0xf591, 0xf556, 0xf1ab,
+ 0xf1eb, 0xf522, 0xf23c, 0xf362, 0xf9a4, 0xf6e2,
+ 0xf40d, 0xf7f3, 0xf7eb, 0xf86c, 0xfc39, 0xfa44,
+ 0xf98b, 0xffae, 0x016e, 0xfe3e, 0xfe87, 0xfec2,
+ 0xfc5d, 0xfe02, 0xfff0, 0xfc57, 0xfd78, 0x0277,
+ 0xff85, 0xfe7a, 0x02c4, 0xff0e, 0xfc98, 0x01fe,
+ 0x01a9, 0x0188, 0x086d, 0x09fa, 0x07d2, 0x08ef,
+ 0x08d0, 0x081d, 0x08af, 0x084c, 0x0700, 0x0592,
+ 0x05d0, 0x0570, 0x013c, 0xfe6a, 0xfe3e, 0xfd9e,
+ 0xfddb, 0xfdca, 0xfec7, 0x00db, 0xfd2d, 0xfa61,
+ 0xfe7b, 0xff68, 0xfed6, 0x00b0, 0xff4b, 0xfff7,
+ 0x017e, 0xfd7b, 0xfe05, 0x0073, 0xfc9c, 0xfd5f,
+ 0xff28, 0xf9d1, 0xf853, 0xf87b, 0xf4ef, 0xf6dc,
+ 0xf928, 0xf60d, 0xf778, 0xfa9c, 0xf77f, 0xf684,
+ 0xfb8b, 0xfc87, 0xf996, 0xfbcb, 0xfd44, 0xf9b6,
+ 0xfbc2, 0xfdf5, 0xf8d8, 0xfa9f, 0x002c, 0xfd93,
+ 0xfcc4, 0xfc08, 0xf76d, 0xfb97, 0xfe79, 0xf86d,
+ 0xfb71, 0xff81, 0xf915, 0xf978, 0xfe0b, 0xfb9c,
+ 0xfce8, 0xff49, 0xfba7, 0xfc82, 0xfe8c, 0xf9d8,
+ 0xf90c, 0xfc0c, 0xf981, 0xf8e1, 0xfb70, 0xf7f5,
+ 0xf6f1, 0xfc1d, 0xf9e3, 0xf640, 0xfb18, 0xfc24,
+ 0xf933, 0xfb10, 0xfabc, 0xf987, 0xfcbc, 0xfbc0,
+ 0xf842, 0xf99d, 0xfabb, 0xfa42, 0xfad1, 0xfb10,
+ 0xfb86, 0xfbf9, 0xfce8, 0xffc1, 0x00e3, 0xff95,
+ 0xffb7, 0x0142, 0x0159, 0x0061, 0x032d, 0x0639,
+ 0x02d1, 0x02be, 0x06d6, 0x0375, 0x03f3, 0x0955,
+ 0x0352, 0x0298, 0x0b6b, 0x0645, 0x02d8, 0x0b14,
+ 0x084a, 0x061a, 0x0bd1, 0x054a, 0x0107, 0x0767,
+ 0x043d, 0x0174, 0x05f3, 0x021d, 0xfddf, 0xfefd,
+ 0xfd32, 0xfeea, 0x0197, 0xfe28, 0xff45, 0x01a4,
+ 0xfc52, 0xfc20, 0x038d, 0x07d4, 0x0bf9, 0x0f44,
+ 0x0b89, 0x0a33, 0x0d87, 0x08fb, 0x0221, 0x02a8,
+ 0xfff8, 0xf9f9, 0xfaa9, 0xf899, 0xf1be, 0xf1e8,
+ 0xf0ff, 0xeb08, 0xed34, 0xf123, 0xef48, 0xf2c4,
+ 0xf81c, 0xf772, 0xf888, 0xfa10, 0xf8de, 0xfd57,
+ 0x037a, 0x020a, 0xff21, 0xffcd, 0x0054, 0xff9f,
+ 0xff55, 0xfe7f, 0xf9ee, 0xf3b8, 0xf27b, 0xf559,
+ 0xf65d, 0xf5d2, 0xf99b, 0x01cf, 0x04bc, 0x0342,
+ 0x08f0, 0x0efb, 0x0f36, 0x144a, 0x1634, 0x0ef5,
+ 0x105c, 0x137d, 0x0d91, 0x0e88, 0x0e5a, 0x04b9,
+ 0x04ff, 0x042c, 0xf8b2, 0xfa32, 0xff51, 0xf9d1,
+ 0xfafd, 0xfd55, 0xfb90, 0x03b8, 0x09bd, 0x07a5,
+ 0x0a58, 0x0b5b, 0x0b16, 0x0f28, 0x0d3e, 0x0ad2,
+ 0x0cb4, 0x084d, 0x0479, 0x0265, 0xf833, 0xf273,
+ 0xf529, 0xf2e2, 0xef92, 0xf23b, 0xf77f, 0xfbf1,
+ 0xfe7c, 0x0366, 0x07e5, 0x06d8, 0x0ad1, 0x1284,
+ 0x11c3, 0x117e, 0x1550, 0x1505, 0x1503, 0x11c2,
+ 0x07f8, 0x0643, 0x0749, 0xfd4d, 0xf618, 0xf71a,
+ 0xf493, 0xf434, 0xfbaf, 0xffd1, 0xfff1, 0x0683,
+ 0x0f9a, 0x123f, 0x1373, 0x16e6, 0x1767, 0x1626,
+ 0x15d8, 0x1497, 0x1219, 0x0c3d, 0x0609, 0x0577,
+ 0x01f2, 0xfa44, 0xf93a, 0xf784, 0xf34f, 0xf719,
+ 0xf89f, 0xf694, 0xfd00, 0xffc5, 0xfe3f, 0x04d7,
+ 0x059b, 0x01ad, 0x07b9, 0x0934, 0x0537, 0x085c,
+ 0x05b3, 0xfd42, 0xfb9c, 0xf9b8, 0xf65d, 0xf423,
+ 0xef7f, 0xee0f, 0xede2, 0xec7e, 0xf326, 0xfab8,
+ 0xfddc, 0x0537, 0x0968, 0x0a34, 0x102c, 0x0fe5,
+ 0x0bcc, 0x0def, 0x0af0, 0x0616, 0x04fe, 0xfd2b,
+ 0xf927, 0xfcae, 0xf809, 0xf458, 0xf5da, 0xf36b,
+ 0xf7ef, 0xffd8, 0x0147, 0x0933, 0x112b, 0x116e,
+ 0x1837, 0x1ba9, 0x16d3, 0x1b49, 0x1be9, 0x1150,
+ 0x1013, 0x1055, 0x07de, 0x0476, 0x03e5, 0xffbf,
+ 0xfbda, 0xf787, 0xf792, 0xfb20, 0xf8a4, 0xf862,
+ 0xfe1b, 0xfd5e, 0xfb32, 0x00d3, 0x06e2, 0x0a1e,
+ 0x0c68, 0x0b6f, 0x09fa, 0x0c65, 0x0de6, 0x0a67,
+ 0x084f, 0x07f3, 0x013c, 0xfc2e, 0xffc1, 0xfd40,
+ 0xf66d, 0xf9b6, 0xfaa8, 0xf3f7, 0xf70b, 0xff6c,
+ 0x014e, 0x0618, 0x0fda, 0x1455, 0x14d2, 0x1728,
+ 0x1818, 0x1550, 0x13cf, 0x12a2, 0x0da3, 0x0956,
+ 0x03a1, 0xf8f1, 0xf5b2, 0xf839, 0xf312, 0xf012,
+ 0xf283, 0xf032, 0xf332, 0xfcaa, 0xff3d, 0x019b,
+ 0x065f, 0x07c4, 0x0c54, 0x0f8c, 0x0c68, 0x0c97,
+ 0x0c5b, 0x0844, 0x0516, 0xfcd1, 0xf709, 0xfaff,
+ 0xf6de, 0xeee8, 0xf145, 0xef91, 0xea88, 0xedb1,
+ 0xef5b, 0xf09a, 0xf61d, 0xf835, 0xfc16, 0x01d9,
+ 0x01e8, 0x0577, 0x0b40, 0x0adc, 0x0ba5, 0x0a72,
+ 0x0543, 0x0660, 0x03cf, 0xfa9b, 0xfb03, 0xfbaa,
+ 0xf45c, 0xf47c, 0xf7c1, 0xf3cd, 0xf322, 0xf9b7,
+ 0xff76, 0x00b2, 0x0234, 0x0988, 0x0f18, 0x0f5b,
+ 0x142f, 0x17ff, 0x13d3, 0x12a9, 0x1289, 0x0c87,
+ 0x08ea, 0x0702, 0x0306, 0x00ed, 0xfd64, 0xfb48,
+ 0xff11, 0xfea5, 0xfdfe, 0x045e, 0x0492, 0x02d4,
+ 0x0996, 0x0ab2, 0x0990, 0x1164, 0x121a, 0x0e57,
+ 0x1402, 0x12e4, 0x0c4d, 0x10b9, 0x0e73, 0x0259,
+ 0x0415, 0x0930, 0x02fa, 0x0024, 0x019e, 0x00b8,
+ 0x04e8, 0x08dc, 0x059f, 0x05aa, 0x07f5, 0x03e0,
+ 0x0192, 0x0554, 0x072f, 0x07f4, 0x0ae1, 0x0a6b,
+ 0x0739, 0x08b1, 0x0a0d, 0x0323, 0xfc78, 0xfdf4,
+ 0xfed1, 0xfc62, 0xfdc4, 0xfe6f, 0xfafd, 0xfc5b,
+ 0x0029, 0xfd4e, 0xfaf5, 0xfe38, 0xfe6a, 0xfd63,
+ 0x02f4, 0x07dd, 0x0759, 0x08a9, 0x0983, 0x0559,
+ 0x046c, 0x06ea, 0x0392, 0xfe0b, 0xfc11, 0xfa69,
+ 0xf88e, 0xf5d7, 0xf19d, 0xf289, 0xf76d, 0xf6d0,
+ 0xf359, 0xf37c, 0xf533, 0xf772, 0xf9e3, 0xfab1,
+ 0xfc4c, 0xfef6, 0xff98, 0x020c, 0x0796, 0x06f3,
+ 0x012f, 0x01bc, 0x039d, 0xfe04, 0xfa6a, 0xfc60,
+ 0xfbcf, 0xfadd, 0xf9ec, 0xf6a3, 0xf85b, 0xf9c8,
+ 0xf520, 0xf94c, 0x013a, 0xffb1, 0x056f, 0x107d,
+ 0x0f71, 0x11e3, 0x18a9, 0x12f6, 0x0fc5, 0x112f,
+ 0x09dd, 0x0913, 0x0c4a, 0x03d3, 0x005f, 0x0104,
+ 0xf5d9, 0xee77, 0xeffb, 0xf0b6, 0xf4ea, 0xf61a,
+ 0xf528, 0x00c3, 0x0a5b, 0x09ad, 0x114c, 0x1af9,
+ 0x1a86, 0x1979, 0x195f, 0x17ec, 0x16d6, 0x11f5,
+ 0x09c0, 0x0049, 0xf7bc, 0xf523, 0xf178, 0xebcd,
+ 0xee46, 0xee9b, 0xe8f4, 0xeb54, 0xee83, 0xefe9,
+ 0xfb0b, 0x03a6, 0x051f, 0x0b85, 0x0f1d, 0x0f09,
+ 0x140a, 0x169c, 0x16e4, 0x14bb, 0x0951, 0x0350,
+ 0x0398, 0xf959, 0xf22a, 0xf306, 0xec0d, 0xe8d8,
+ 0xee0a, 0xee14, 0xf0dd, 0xf58b, 0xf32f, 0xf7bb,
+ 0x0131, 0x02c4, 0x0666, 0x0b92, 0x0aaf, 0x0bdc,
+ 0x0c4c, 0x07fc, 0x0704, 0x04d6, 0xff8c, 0xff86,
+ 0xfd5a, 0xf3f3, 0xee81, 0xef92, 0xf0ff, 0xf112,
+ 0xf2cc, 0xf7c3, 0xf9a4, 0xf862, 0xfcfc, 0x0330,
+ 0x04d4, 0x072b, 0x0856, 0x06bb, 0x077b, 0x052e,
+ 0xffc0, 0x00f7, 0x0226, 0xfdae, 0xfcf4, 0xfdbf,
+ 0xfb3a, 0xfcd6, 0x013f, 0x0388, 0x0694, 0x06d4,
+ 0x0434, 0x0765, 0x0a7e, 0x06b2, 0x059b, 0x06ab,
+ 0x02a3, 0x018c, 0x0473, 0x02fb, 0x02b6, 0x0515,
+ 0x01a0, 0xfe8c, 0x0178, 0x01f3, 0x004d, 0x021f,
+ 0x047f, 0x064d, 0x0815, 0x0852, 0x092c, 0x0b0e,
+ 0x0ab8, 0x083e, 0x0639, 0x06a8, 0x06ff, 0x0336,
+ 0xff81, 0x0002, 0x0137, 0x01c2, 0x0206, 0x0207,
+ 0x0342, 0x0252, 0xff5a, 0x00ee, 0x0220, 0xfe3e,
+ 0xfd72, 0x0005, 0x02b2, 0x0826, 0x0a39, 0x0675,
+ 0x051e, 0x03fd, 0x0050, 0xff9d, 0xffbb, 0xfe6b,
+ 0xfdef, 0xfc5a, 0xfac7, 0xf9e3, 0xf76f, 0xf77e,
+ 0xf82d, 0xf4ae, 0xf4a0, 0xf7a6, 0xf731, 0xfa95,
+ 0x0098, 0xffab, 0xfd65, 0xfbce, 0xf7a8, 0xf8e4,
+ 0xfddc, 0xfd1b, 0xfb9c, 0xfd17, 0xfd90, 0xfda5,
+ 0xfcfe, 0xfbbf, 0xfc8e, 0xfbcd, 0xf87a, 0xf7b9,
+ 0xf823, 0xf6f8, 0xf64b, 0xf6df, 0xf944, 0xfc53,
+ 0xfbad, 0xf937, 0xfab3, 0xfed1, 0x00f6, 0x00a2,
+ 0x00a4, 0x0216, 0x0188, 0xfe98, 0xff2c, 0x0280,
+ 0x0112, 0xfca6, 0xfb22, 0xfa15, 0xf89d, 0xf96d,
+ 0xf858, 0xf4bd, 0xf503, 0xf64c, 0xf578, 0xf8ac,
+ 0xfd4e, 0xfdae, 0xff3f, 0x01bc, 0x00d2, 0x0212,
+ 0x04bd, 0x02c5, 0x016e, 0x0292, 0x0187, 0x0141,
+ 0x013e, 0xfe60, 0xff7b, 0x0364, 0x00aa, 0xfd5f,
+ 0x0018, 0x0134, 0x0028, 0x0271, 0x03fb, 0x037b,
+ 0x05ec, 0x08c1, 0x07b8, 0x05bb, 0x05a0, 0x062d,
+ 0x05db, 0x05c7, 0x0739, 0x0774, 0x0566, 0x048f,
+ 0x04b9, 0x0498, 0x0550, 0x0327, 0xfe68, 0xff54,
+ 0x0231, 0xfe8d, 0xfb64, 0xfdcf, 0xff8c, 0xffaf,
+ 0x0020, 0xfef8, 0xfcaf, 0xfad6, 0xfa92, 0xfbae,
+ 0xfab8, 0xf9aa, 0xfbda, 0xfbfc, 0xfabd, 0xfd4a,
+ 0xfc6b, 0xf6b8, 0xf5a0, 0xf4a1, 0xef2e, 0xee7a,
+ 0xf137, 0xf109, 0xf28e, 0xf418, 0xf1bb, 0xf1ff,
+ 0xf3b7, 0xf1cb, 0xf2f2, 0xf72f, 0xf688, 0xf5c3,
+ 0xfb05, 0x0116, 0x03c1, 0x0355, 0x00fc, 0x0004,
+ 0x01b0, 0x0241, 0xfea6, 0xfa4a, 0xfa12, 0xfa7e,
+ 0xf82b, 0xf94a, 0xfd90, 0xfcab, 0xfa27, 0xfbb5,
+ 0xfb96, 0xf92e, 0xfa31, 0xfc48, 0xfc58, 0xfcf0,
+ 0xff1e, 0x01a0, 0x038f, 0x0551, 0x0792, 0x07ff,
+ 0x0567, 0x02bc, 0x01c7, 0x0332, 0x05d7, 0x04eb,
+ 0x01ef, 0x02ba, 0x03a4, 0x00eb, 0xfed2, 0xfca4,
+ 0xf84e, 0xf707, 0xf8e5, 0xf914, 0xfa3b, 0xfe63,
+ 0x00ea, 0x0166, 0x02de, 0x0368, 0x01c9, 0x0201,
+ 0x04c5, 0x0644, 0x06d0, 0x08a6, 0x0a0b, 0x0966,
+ 0x0691, 0x029b, 0x01b4, 0x0200, 0xfcbb, 0xf841,
+ 0xfc47, 0xfea9, 0xfb13, 0xfcc2, 0x0369, 0x070d,
+ 0x09ac, 0x0b4d, 0x0a23, 0x0c5a, 0x1123, 0x1111,
+ 0x0ff9, 0x1179, 0x0ff5, 0x0d11, 0x0d3e, 0x0b45,
+ 0x0659, 0x0419, 0x01c7, 0xfc3a, 0xf787, 0xf4ff,
+ 0xf502, 0xf8ab, 0xfaf6, 0xfb23, 0xff5f, 0x040c,
+ 0x0457, 0x06fc, 0x0c75, 0x0cba, 0x09ac, 0x0932,
+ 0x0964, 0x06a0, 0x01db, 0xff67, 0xff60, 0xfc24,
+ 0xf6cb, 0xf56c, 0xf5a0, 0xf3b7, 0xf27a, 0xf327,
+ 0xf4f8, 0xf7ca, 0xf9ed, 0xfaf5, 0xfbf5, 0xfd0c,
+ 0xfebd, 0x003b, 0x00a3, 0x01c9, 0x0365, 0x039e,
+ 0x02c1, 0x00fa, 0x00ba, 0x02aa, 0x005d, 0xfbda,
+ 0xfd5f, 0xfeec, 0xfc3b, 0xfdb6, 0x00e6, 0xff51,
+ 0xfef7, 0x00c3, 0x00ab, 0x0207, 0x0432, 0x04be,
+ 0x06d2, 0x0799, 0x04f8, 0x0578, 0x07e4, 0x06d4,
+ 0x0629, 0x07a1, 0x07ee, 0x07c1, 0x06d6, 0x0446,
+ 0x0383, 0x03aa, 0x0026, 0xfca4, 0xfe10, 0xffb5,
+ 0xfe74, 0xffe8, 0x04c7, 0x068d, 0x04dd, 0x044c,
+ 0x0533, 0x05d1, 0x05e5, 0x062e, 0x068f, 0x0597,
+ 0x0515, 0x0768, 0x08a6, 0x0700, 0x05c0, 0x03b2,
+ 0x0111, 0x01b8, 0x01d3, 0xfeb8, 0xfd7e, 0xfdd3,
+ 0xfdd7, 0x0050, 0x032c, 0x04a7, 0x0799, 0x0973,
+ 0x0811, 0x0705, 0x0626, 0x0421, 0x0397, 0x05ee,
+ 0x08d0, 0x0770, 0x02c8, 0x028e, 0x03c5, 0xfed5,
+ 0xfb2f, 0xfd7f, 0xfc7d, 0xf7c0, 0xf6cb, 0xf980,
+ 0xfdc9, 0x01c6, 0x026c, 0x015d, 0x0191, 0x02d5,
+ 0x036a, 0x018e, 0x0057, 0x022a, 0x01bf, 0x0002,
+ 0x022e, 0x0148, 0xfb66, 0xfab9, 0xfba1, 0xf679,
+ 0xf38d, 0xf5b7, 0xf60a, 0xf676, 0xf900, 0xfa21,
+ 0xfac0, 0xfaa2, 0xf80d, 0xf797, 0xfa60, 0xfb9f,
+ 0xfbfb, 0xfd81, 0xfe4a, 0xfecf, 0x0012, 0x0000,
+ 0xff35, 0xffbc, 0xfebe, 0xfabf, 0xf8a9, 0xf90e,
+ 0xf70d, 0xf4f5, 0xf65c, 0xf757, 0xf83b, 0xfbbb,
+ 0xfd5b, 0xfefb, 0x058c, 0x08d3, 0x06db, 0x0a1c,
+ 0x0ec3, 0x0d0b, 0x0c91, 0x0f5a, 0x0e74, 0x0cd5,
+ 0x0d77, 0x0a50, 0x0319, 0xfef9, 0xfea8, 0xfc7b,
+ 0xf857, 0xf6af, 0xf705, 0xf8db, 0xfe46, 0x0305,
+ 0x03eb, 0x05fe, 0x09b7, 0x0b29, 0x0b21, 0x0af2,
+ 0x0b75, 0x0ca8, 0x0ba5, 0x09c1, 0x08bf, 0x0550,
+ 0x017f, 0x002d, 0xfdea, 0xfb87, 0xf9be, 0xf602,
+ 0xf4fc, 0xf796, 0xf86f, 0xfa3a, 0xfcf1, 0xfced,
+ 0xff3a, 0x0325, 0x04bb, 0x0871, 0x0a5c, 0x07a2,
+ 0x09aa, 0x0bad, 0x06d3, 0x05ba, 0x07b3, 0x0535,
+ 0x036a, 0x012d, 0xfc8b, 0xfb32, 0xf96a, 0xf79e,
+ 0xfae9, 0xfa6f, 0xf806, 0xfd53, 0xffed, 0xfe6f,
+ 0x02d8, 0x04d6, 0x0384, 0x0768, 0x07d7, 0x057c,
+ 0x09b5, 0x0af2, 0x07d1, 0x0969, 0x0876, 0x0314,
+ 0x0093, 0xfc71, 0xf742, 0xf76a, 0xf7a1, 0xf623,
+ 0xf7b1, 0xf9bd, 0xf9b8, 0xf906, 0xf8d3, 0xfa23,
+ 0xfaf9, 0xfa7f, 0xfaf8, 0xfb71, 0xfcbf, 0x0054,
+ 0x00f6, 0xfe7e, 0xfe90, 0xff2f, 0xfe4d, 0xfdf2,
+ 0xfc1b, 0xf915, 0xf804, 0xf6f5, 0xf5b1, 0xf690,
+ 0xf72d, 0xf70c, 0xf8d8, 0xfaca, 0xfb94, 0xfccb,
+ 0xfd29, 0xfc7a, 0xfd1d, 0xfe06, 0xfe47, 0xffb7,
+ 0x01ea, 0x03b3, 0x0514, 0x0560, 0x046d, 0x01a0,
+ 0xfd64, 0xfc61, 0xfebc, 0xfec1, 0xfdb8, 0xff41,
+ 0x0048, 0x0000, 0x0093, 0x00fa, 0x0167, 0x01d6,
+ 0x00d6, 0x01cf, 0x0542, 0x05ca, 0x0555, 0x072c,
+ 0x0780, 0x06cf, 0x06e5, 0x057e, 0x0559, 0x0697,
+ 0x0531, 0x058a, 0x0745, 0x049c, 0x035f, 0x0379,
+ 0xfedb, 0xfe98, 0x029b, 0xfec0, 0xfb40, 0xff3c,
+ 0xff82, 0xfc5e, 0xfdcd, 0x0173, 0x043b, 0x04f1,
+ 0x0416, 0x04ca, 0x0581, 0x04ed, 0x04e3, 0x0373,
+ 0x00dd, 0xffcb, 0xfea0, 0xfdaa, 0xfdb5, 0xfbd0,
+ 0xf98f, 0xfa19, 0xfb51, 0xfc13, 0xfd23, 0xfea0,
+ 0x01b7, 0x0551, 0x0711, 0x08ba, 0x0b5c, 0x0c7f,
+ 0x0bfb, 0x0bb0, 0x0aea, 0x07b4, 0x036e, 0x010b,
+ 0xfee5, 0xfb31, 0xf8c5, 0xf713, 0xf55a, 0xf7a8,
+ 0xfa15, 0xf8c1, 0xfba1, 0xfffe, 0xfde5, 0xfeee,
+ 0x040b, 0x0263, 0x017e, 0x05c6, 0x049a, 0x01d2,
+ 0x03ac, 0x024a, 0xfd38, 0xfa9e, 0xf950, 0xf6fd,
+ 0xf427, 0xf294, 0xf2ee, 0xf337, 0xf37b, 0xf4fe,
+ 0xf6ba, 0xf868, 0xfa83, 0xfc61, 0xfd03, 0xfd5d,
+ 0xff89, 0x00fe, 0x0014, 0x0168, 0x0355, 0x0130,
+ 0xffe5, 0x00f1, 0xff0f, 0xfbf0, 0xfb26, 0xfb5e,
+ 0xfaf4, 0xfa31, 0xfb08, 0xfc4d, 0xfb83, 0xfb99,
+ 0xfd17, 0xfd35, 0xfeab, 0x01fe, 0x036e, 0x0456,
+ 0x068d, 0x082a, 0x089e, 0x0887, 0x07e8, 0x0685,
+ 0x043e, 0x01a8, 0x0024, 0x008e, 0x008b, 0xfe7c,
+ 0xfe02, 0xff15, 0xfd7e, 0xfc09, 0xfdaf, 0xfe9b,
+ 0xfe5f, 0xffa7, 0x00cd, 0x0077, 0x0131, 0x0385,
+ 0x0430, 0x0304, 0x02ba, 0x027a, 0x012a, 0xffd0,
+ 0xfe08, 0xfc5d, 0xfbe4, 0xfbd0, 0xfb23, 0xf919,
+ 0xf815, 0xf9ad, 0xf945, 0xf81c, 0xfa4f, 0xfa81,
+ 0xf8e2, 0xfabe, 0xfcc3, 0xfed6, 0x01d4, 0x01b2,
+ 0x0253, 0x04dc, 0x0416, 0x0369, 0x031c, 0x0089,
+ 0x0090, 0x00a9, 0xfdde, 0xfd8f, 0xfcd1, 0xf9bc,
+ 0xf911, 0xf7b2, 0xf5ba, 0xf764, 0xf862, 0xf829,
+ 0xfaaa, 0xfdb4, 0xff58, 0x0008, 0x00f8, 0x039b,
+ 0x05ee, 0x0694, 0x0627, 0x0508, 0x0514, 0x04cb,
+ 0x01e9, 0xffe0, 0xff3c, 0xfd38, 0xfacd, 0xf956,
+ 0xf8ce, 0xf79a, 0xf54d, 0xf587, 0xf6f4, 0xf64e,
+ 0xf701, 0xf91e, 0xfa02, 0xfbf0, 0xfefb, 0x017c,
+ 0x0386, 0x0515, 0x071d, 0x0737, 0x0402, 0x0267,
+ 0x0129, 0xfd4a, 0xfabf, 0xf856, 0xf416, 0xf19a,
+ 0xf051, 0xefae, 0xf033, 0xefd6, 0xf136, 0xf44e,
+ 0xf550, 0xf859, 0xfe69, 0x0319, 0x0829, 0x0ce7,
+ 0x0e80, 0x0fd3, 0x114b, 0x1097, 0x0d65, 0x08ce,
+ 0x051e, 0x00ce, 0xfaac, 0xf6d8, 0xf4d6, 0xf2ce,
+ 0xf2d5, 0xf29f, 0xf1d6, 0xf42b, 0xf723, 0xf972,
+ 0xfd63, 0x00ea, 0x032d, 0x057c, 0x0789, 0x09b7,
+ 0x0af8, 0x0a56, 0x091f, 0x068f, 0x032e, 0x0158,
+ 0xfef9, 0xfac7, 0xf7d8, 0xf6f4, 0xf5d0, 0xf3fa,
+ 0xf3d4, 0xf5a6, 0xf651, 0xf5cf, 0xf64b, 0xf78f,
+ 0xf9d3, 0xfd14, 0xffb4, 0x01f5, 0x0410, 0x0498,
+ 0x0414, 0x03eb, 0x0411, 0x046a, 0x046d, 0x02c8,
+ 0x006a, 0xffa0, 0xfee8, 0xfc8a, 0xfaa0, 0xf89f,
+ 0xf546, 0xf41c, 0xf518, 0xf56d, 0xf734, 0xfab1,
+ 0xfd92, 0x0039, 0x0213, 0x0350, 0x05ec, 0x084d,
+ 0x08bc, 0x082e, 0x07a5, 0x0792, 0x0673, 0x0476,
+ 0x03fa, 0x028e, 0xfec7, 0xfc32, 0xfa81, 0xf88f,
+ 0xf7be, 0xf6a8, 0xf568, 0xf5c5, 0xf61c, 0xf715,
+ 0xfa77, 0xfd37, 0xfe12, 0xff57, 0x004f, 0xffc9,
+ 0xffec, 0x0106, 0x009f, 0xffeb, 0x009d, 0x0022,
+ 0xfe6e, 0xfd95, 0xfc20, 0xfa6a, 0xf97c, 0xf716,
+ 0xf4ea, 0xf57f, 0xf5e5, 0xf63f, 0xf92d, 0xfbd4,
+ 0xfbf2, 0xfc72, 0xff26, 0x0200, 0x0358, 0x0454,
+ 0x05ad, 0x061b, 0x058f, 0x05bf, 0x0655, 0x047b,
+ 0x0119, 0x0026, 0xffa4, 0xfc67, 0xf99c, 0xf8a3,
+ 0xf80c, 0xf84b, 0xf807, 0xf7a5, 0xf9bb, 0xfbed,
+ 0xfd38, 0xff86, 0x0175, 0x036d, 0x05b7, 0x059a,
+ 0x0588, 0x0796, 0x0818, 0x06c9, 0x05ed, 0x05d9,
+ 0x05bf, 0x03ae, 0x00fe, 0xffc7, 0xfd76, 0xfa89,
+ 0xf99d, 0xf8b4, 0xf7d7, 0xf8f6, 0xfa78, 0xfbc4,
+ 0xfe1e, 0x015a, 0x044f, 0x060c, 0x0740, 0x086b,
+ 0x0882, 0x075f, 0x05bc, 0x04cd, 0x0461, 0x01d4,
+ 0xfe60, 0xfcf4, 0xfb0d, 0xf7b8, 0xf5ab, 0xf485,
+ 0xf432, 0xf5eb, 0xf87b, 0xfb38, 0xfec1, 0x0304,
+ 0x0795, 0x0b99, 0x0e5a, 0x0f42, 0x0eef, 0x0f24,
+ 0x0e22, 0x0ab1, 0x083a, 0x0649, 0x0255, 0xfeb4,
+ 0xfc33, 0xf9f7, 0xf968, 0xf93a, 0xf7d1, 0xf77f,
+ 0xf90a, 0xfae6, 0xfcdd, 0xff48, 0x0223, 0x0570,
+ 0x084c, 0x0900, 0x0843, 0x0826, 0x0786, 0x0605,
+ 0x0573, 0x0419, 0x0173, 0x0059, 0xff90, 0xfdcb,
+ 0xfcc5, 0xfb9b, 0xf9bb, 0xf891, 0xf84d, 0xf943,
+ 0xfad3, 0xfbe5, 0xfd75, 0xff53, 0x009a, 0x01f8,
+ 0x0328, 0x03af, 0x03dc, 0x046b, 0x05ed, 0x06b0,
+ 0x064a, 0x0639, 0x0553, 0x039a, 0x019b, 0xfdd2,
+ 0xfb0d, 0xfaae, 0xf912, 0xf82a, 0xf933, 0xf94b,
+ 0xfaf5, 0xfe16, 0xffb4, 0x02cf, 0x063d, 0x06cf,
+ 0x07c2, 0x08bf, 0x08bf, 0x0a72, 0x0b55, 0x0a45,
+ 0x0a79, 0x0a2b, 0x0800, 0x065e, 0x053c, 0x033b,
+ 0x0006, 0xfd25, 0xfbfc, 0xfb13, 0xfaee, 0xfcd0,
+ 0xfe67, 0xffef, 0x02a8, 0x03d0, 0x035f, 0x0454,
+ 0x063c, 0x074a, 0x07e8, 0x0941, 0x0a50, 0x0997,
+ 0x0866, 0x07a6, 0x0694, 0x04ab, 0x015e, 0xfec0,
+ 0xfe64, 0xfcce, 0xfaa3, 0xfbef, 0xfd71, 0xfca8,
+ 0xfd5d, 0x0011, 0x01f7, 0x02ac, 0x040c, 0x06dc,
+ 0x08c3, 0x0903, 0x09cc, 0x0af4, 0x0b8f, 0x0b9a,
+ 0x0a60, 0x08be, 0x0729, 0x042f, 0x00f6, 0xfefe,
+ 0xfcfe, 0xfad7, 0xf9f6, 0xfa48, 0xfa6e, 0xfa56,
+ 0xfb9a, 0xfe12, 0xffed, 0x0109, 0x025d, 0x0442,
+ 0x0608, 0x0757, 0x0931, 0x0abe, 0x0af9, 0x0bae,
+ 0x0bf2, 0x09f9, 0x084a, 0x070b, 0x0415, 0x00b7,
+ 0xfdb3, 0xfac9, 0xf8c5, 0xf722, 0xf604, 0xf613,
+ 0xf6ae, 0xf862, 0xfacc, 0xfcb5, 0xffc0, 0x0399,
+ 0x05a7, 0x0723, 0x0944, 0x0a20, 0x0999, 0x094d,
+ 0x087d, 0x0597, 0x01c5, 0xfe7c, 0xfb29, 0xf827,
+ 0xf5d8, 0xf3ac, 0xf2e9, 0xf38b, 0xf45b, 0xf732,
+ 0xfb6f, 0xfe30, 0x0134, 0x055d, 0x086f, 0x0aaf,
+ 0x0c4e, 0x0c90, 0x0c84, 0x0c84, 0x0bb8, 0x09d0,
+ 0x0776, 0x0593, 0x032e, 0xfff9, 0xfd97, 0xfb2f,
+ 0xf82d, 0xf6f9, 0xf7d6, 0xf980, 0xfbb7, 0xfd92,
+ 0xff2f, 0x01ac, 0x042b, 0x0556, 0x05fe, 0x0799,
+ 0x095f, 0x0a08, 0x0a6d, 0x0a94, 0x09f3, 0x0948,
+ 0x0785, 0x04b4, 0x032d, 0x0148, 0xfdfd, 0xfc8e,
+ 0xfc5c, 0xfb0f, 0xfa1a, 0xfa08, 0xf9dc, 0xf9d9,
+ 0xfa9b, 0xfbc2, 0xfc5d, 0xfddd, 0x015f, 0x0431,
+ 0x05da, 0x077e, 0x07e9, 0x086e, 0x092d, 0x06dc,
+ 0x03ed, 0x02ba, 0xfffb, 0xfcac, 0xfbb3, 0xfb80,
+ 0xfb17, 0xfae9, 0xfb70, 0xfcb5, 0xfd18, 0xfcef,
+ 0xfd5c, 0xfd53, 0xfd98, 0xfefd, 0x008e, 0x0320,
+ 0x05bd, 0x067c, 0x07b7, 0x0971, 0x084e, 0x059f,
+ 0x040d, 0x0272, 0x001d, 0xfec6, 0xfe69, 0xfd12,
+ 0xfba3, 0xfb80, 0xfa98, 0xf916, 0xf93f, 0xf971,
+ 0xf924, 0xfa7f, 0xfca0, 0xfe74, 0x007b, 0x01f0,
+ 0x02f1, 0x041f, 0x0465, 0x0389, 0x0296, 0x01c8,
+ 0x008a, 0xfeca, 0xfd68, 0xfc94, 0xfbc3, 0xfad1,
+ 0xf986, 0xf8c9, 0xf916, 0xf869, 0xf7db, 0xf9ee,
+ 0xfba8, 0xfbf6, 0xfe00, 0x0059, 0x017c, 0x0370,
+ 0x051a, 0x054e, 0x054a, 0x0475, 0x031a, 0x01e1,
+ 0xff40, 0xfd0d, 0xfd69, 0xfd2e, 0xfba0, 0xfb33,
+ 0xfaee, 0xfa48, 0xfa92, 0xfad7, 0xfad5, 0xfbf3,
+ 0xfd92, 0xfee1, 0x007e, 0x023f, 0x03e4, 0x0604,
+ 0x0819, 0x0922, 0x09a6, 0x09e7, 0x0907, 0x0790,
+ 0x061e, 0x03ec, 0x0179, 0xff0e, 0xfbed, 0xf9c8,
+ 0xf934, 0xf829, 0xf79d, 0xf863, 0xf911, 0xfaf8,
+ 0xfe40, 0x00db, 0x03b7, 0x064f, 0x0707, 0x0818,
+ 0x095f, 0x08e0, 0x0838, 0x075b, 0x051f, 0x02a4,
+ 0xff7a, 0xfbe8, 0xf9bc, 0xf7c8, 0xf63b, 0xf6ca,
+ 0xf7a3, 0xf853, 0xfa92, 0xfd2b, 0xff3c, 0x01aa,
+ 0x0433, 0x0670, 0x0829, 0x0928, 0x0a34, 0x0b3b,
+ 0x0b42, 0x0a62, 0x08b2, 0x060f, 0x02fc, 0xffda,
+ 0xfd49, 0xfbbd, 0xf9ed, 0xf7bb, 0xf72f, 0xf81b,
+ 0xf91b, 0xfa6b, 0xfb61, 0xfbfb, 0xfe32, 0x0119,
+ 0x0316, 0x054f, 0x0789, 0x091a, 0x09fb, 0x089d,
+ 0x06ab, 0x0688, 0x0520, 0x024b, 0x0113, 0xff60,
+ 0xfccd, 0xfbce, 0xfa41, 0xf7bd, 0xf711, 0xf6d0,
+ 0xf576, 0xf4de, 0xf572, 0xf67a, 0xf8ac, 0xfc46,
+ 0xff69, 0x015f, 0x03ed, 0x063c, 0x063c, 0x05d3,
+ 0x05b6, 0x03dd, 0x014b, 0xff17, 0xfc88, 0xfb27,
+ 0xfba5, 0xfc18, 0xfc1f, 0xfbde, 0xfa86, 0xf8ed,
+ 0xf85a, 0xf82a, 0xf816, 0xf93a, 0xfb55, 0xfd56,
+ 0xff8d, 0x01d9, 0x0394, 0x052a, 0x066b, 0x06b7,
+ 0x069b, 0x0681, 0x063c, 0x059d, 0x0506, 0x0501,
+ 0x041e, 0x01b7, 0xffeb, 0xfe6f, 0xfc3c, 0xfb11,
+ 0xfa91, 0xf9e0, 0xfa96, 0xfbc2, 0xfc65, 0xfe36,
+ 0x0041, 0x010f, 0x01ac, 0x023b, 0x02a3, 0x031c,
+ 0x0351, 0x03da, 0x043c, 0x0331, 0x0225, 0x01d9,
+ 0x00c8, 0xff13, 0xfd9f, 0xfc41, 0xfaa8, 0xf8be,
+ 0xf774, 0xf7ec, 0xf955, 0xfa82, 0xfbd8, 0xfdbb,
+ 0xff81, 0x00ee, 0x0267, 0x0362, 0x039b, 0x03fb,
+ 0x0441, 0x03aa, 0x0312, 0x02e5, 0x02a1, 0x0256,
+ 0x0180, 0xff6f, 0xfd58, 0xfc3f, 0xfaf0, 0xf93e,
+ 0xf87a, 0xf7d7, 0xf702, 0xf800, 0xf9fe, 0xfb6e,
+ 0xfe04, 0x011f, 0x02f7, 0x04f5, 0x06a6, 0x06f5,
+ 0x07af, 0x0869, 0x0801, 0x0760, 0x05ba, 0x02f0,
+ 0x0082, 0xfe0d, 0xfbe4, 0xfa81, 0xf8b6, 0xf747,
+ 0xf6fe, 0xf711, 0xf82e, 0xfa19, 0xfb7e, 0xfd02,
+ 0xfedd, 0x00a4, 0x029d, 0x042f, 0x04f4, 0x0513,
+ 0x0429, 0x027f, 0x0078, 0xfe4a, 0xfca8, 0xfb4c,
+ 0xf9fe, 0xf93a, 0xf859, 0xf75e, 0xf773, 0xf86b,
+ 0xf9ac, 0xfb34, 0xfd06, 0xff29, 0x0150, 0x0358,
+ 0x0505, 0x05db, 0x06a4, 0x074c, 0x0656, 0x04f8,
+ 0x046c, 0x032c, 0x01b8, 0x014e, 0x005e, 0xfe55,
+ 0xfc7d, 0xfb15, 0xfa29, 0xfa27, 0xfab9, 0xfb6f,
+ 0xfcb0, 0xfea1, 0x0079, 0x022d, 0x03df, 0x0461,
+ 0x0400, 0x0459, 0x048b, 0x03f1, 0x040e, 0x0472,
+ 0x03d7, 0x0328, 0x02bd, 0x01d7, 0x00ae, 0xff5b,
+ 0xfd7c, 0xfb7a, 0xf9e8, 0xf8dd, 0xf83c, 0xf823,
+ 0xf918, 0xfb22, 0xfd8f, 0xffeb, 0x01a0, 0x021c,
+ 0x020a, 0x01f8, 0x01ac, 0x0195, 0x01b7, 0x018b,
+ 0x01b6, 0x0248, 0x0250, 0x01f3, 0x013a, 0xffa3,
+ 0xfda8, 0xfc07, 0xfafc, 0xfa16, 0xf927, 0xf973,
+ 0xfadb, 0xfb91, 0xfc2b, 0xfdaa, 0xfef1, 0xffbe,
+ 0x00bd, 0x021d, 0x03c8, 0x04fa, 0x05b9, 0x069d,
+ 0x06cc, 0x0638, 0x05d0, 0x04ed, 0x033b, 0x017b,
+ 0xffe6, 0xfe9c, 0xfd8c, 0xfcd3, 0xfcf0, 0xfd2a,
+ 0xfcd5, 0xfca1, 0xfd00, 0xfde4, 0xfec1, 0xff03,
+ 0xff77, 0x008f, 0x018e, 0x021e, 0x024c, 0x02b0,
+ 0x036e, 0x032c, 0x01e3, 0x0096, 0xfefa, 0xfd69,
+ 0xfc6a, 0xfb6a, 0xfac7, 0xfab2, 0xfa8c, 0xfad7,
+ 0xfbab, 0xfc98, 0xfdfc, 0xff5d, 0x0013, 0x006c,
+ 0x0071, 0x005c, 0x009a, 0x0128, 0x0229, 0x0311,
+ 0x0346, 0x0352, 0x02e9, 0x0179, 0xffe0, 0xfe64,
+ 0xfc81, 0xfa90, 0xf91b, 0xf86d, 0xf882, 0xf91b,
+ 0xfa61, 0xfc29, 0xfdb8, 0xfef5, 0x003c, 0x01c9,
+ 0x0388, 0x0514, 0x066f, 0x07d6, 0x08b8, 0x0892,
+ 0x07e3, 0x06f9, 0x054d, 0x0312, 0x0120, 0xff29,
+ 0xfcd5, 0xfaf5, 0xf98e, 0xf85c, 0xf829, 0xf8eb,
+ 0xf9f5, 0xfb8e, 0xfdab, 0xffc1, 0x01a4, 0x0325,
+ 0x0449, 0x0521, 0x0551, 0x04f1, 0x047c, 0x03f0,
+ 0x02d6, 0x00f5, 0xfecf, 0xfc99, 0xfa12, 0xf828,
+ 0xf7a0, 0xf789, 0xf786, 0xf859, 0xfa14, 0xfc0a,
+ 0xfd99, 0xfefd, 0x00b5, 0x0232, 0x036c, 0x053d,
+ 0x072d, 0x085d, 0x0903, 0x096c, 0x0968, 0x085a,
+ 0x063a, 0x03f9, 0x0192, 0xfeb6, 0xfc8d, 0xfb71,
+ 0xfa61, 0xf97c, 0xf965, 0xf9e7, 0xfaba, 0xfbf1,
+ 0xfd62, 0xfe6d, 0xff13, 0x002d, 0x019e, 0x02d2,
+ 0x0457, 0x0627, 0x0746, 0x07b6, 0x07f4, 0x07b2,
+ 0x0644, 0x03ac, 0x00d3, 0xfe42, 0xfbb9, 0xf971,
+ 0xf7ee, 0xf75e, 0xf79f, 0xf825, 0xf8cb, 0xf9c1,
+ 0xfa61, 0xfab4, 0xfbcc, 0xfd53, 0xfeb3, 0x008f,
+ 0x02b9, 0x0476, 0x05d0, 0x0667, 0x061e, 0x05c8,
+ 0x0509, 0x034d, 0x017e, 0x000a, 0xfebf, 0xfdd8,
+ 0xfccd, 0xfb75, 0xfae6, 0xfab8, 0xfa41, 0xfaa0,
+ 0xfbad, 0xfc64, 0xfd61, 0xfecb, 0x003e, 0x023f,
+ 0x044d, 0x05b5, 0x06f7, 0x07b8, 0x0777, 0x06da,
+ 0x0617, 0x0533, 0x046e, 0x0382, 0x027d, 0x018a,
+ 0x005a, 0xff3d, 0xfe7e, 0xfdc5, 0xfd4e, 0xfd3d,
+ 0xfd19, 0xfd36, 0xfe06, 0xfee8, 0xffcc, 0x0145,
+ 0x028a, 0x02e6, 0x0347, 0x03b1, 0x0352, 0x02e3,
+ 0x028c, 0x0178, 0x008e, 0x002c, 0xff39, 0xfe6c,
+ 0xfea5, 0xfec6, 0xfe71, 0xfe4b, 0xfe33, 0xfe0e,
+ 0xfe0f, 0xfdfd, 0xfddf, 0xfe4a, 0xff26, 0xffe6,
+ 0x0115, 0x02d1, 0x03b5, 0x03b7, 0x038b, 0x02a7,
+ 0x0162, 0x0064, 0xff47, 0xfe7f, 0xfdfd, 0xfce7,
+ 0xfc48, 0xfc72, 0xfc47, 0xfc6f, 0xfd29, 0xfdb3,
+ 0xfe8f, 0xff83, 0x000d, 0x012f, 0x02dc, 0x0462,
+ 0x05df, 0x06cf, 0x071f, 0x074b, 0x06b0, 0x0554,
+ 0x0411, 0x027d, 0x003e, 0xfe2e, 0xfce8, 0xfc29,
+ 0xfba4, 0xfbb1, 0xfc49, 0xfcb5, 0xfd06, 0xfdb1,
+ 0xfe85, 0xff90, 0x00e7, 0x0242, 0x0377, 0x0426,
+ 0x0425, 0x03d1, 0x0306, 0x0199, 0xffee, 0xfe09,
+ 0xfc25, 0xfae3, 0xfa14, 0xf98f, 0xf9b9, 0xfa14,
+ 0xfa13, 0xfa53, 0xfb0d, 0xfbe5, 0xfd1f, 0xfed0,
+ 0x005c, 0x01b7, 0x034f, 0x0505, 0x0646, 0x06d9,
+ 0x0743, 0x07c9, 0x079f, 0x0638, 0x043e, 0x0267,
+ 0x00bc, 0xff36, 0xfe14, 0xfd59, 0xfccb, 0xfc97,
+ 0xfcce, 0xfce7, 0xfcd4, 0xfce5, 0xfcf0, 0xfd30,
+ 0xfe24, 0xff95, 0x0173, 0x03bf, 0x05bd, 0x06eb,
+ 0x073f, 0x06a7, 0x057d, 0x041e, 0x0274, 0x00b6,
+ 0xff4d, 0xfe30, 0xfd34, 0xfc26, 0xfaff, 0xfa25,
+ 0xf987, 0xf8a8, 0xf81c, 0xf88b, 0xf91a, 0xf9a8,
+ 0xfb7b, 0xfdde, 0xff31, 0x0048, 0x01ca, 0x029b,
+ 0x02d7, 0x0321, 0x02fa, 0x0279, 0x020c, 0x0135,
+ 0x0005, 0xff2b, 0xfe6d, 0xfd66, 0xfc5b, 0xfb7f,
+ 0xfabd, 0xfa44, 0xfa4e, 0xfa9e, 0xfb19, 0xfc39,
+ 0xfdcb, 0xfefa, 0x001e, 0x01e0, 0x034c, 0x03bc,
+ 0x0416, 0x0468, 0x03f1, 0x0343, 0x0308, 0x02a6,
+ 0x01db, 0x010e, 0x003d, 0xff4c, 0xfe57, 0xfd6e,
+ 0xfcc9, 0xfc97, 0xfc89, 0xfc98, 0xfd30, 0xfdfe,
+ 0xfeac, 0xffe0, 0x0150, 0x01d9, 0x0209, 0x028f,
+ 0x026d, 0x01a0, 0x0135, 0x00c7, 0xffdc, 0xff0c,
+ 0xfe84, 0xfe0c, 0xfdba, 0xfd79, 0xfd27, 0xfcc3,
+ 0xfc4a, 0xfbe9, 0xfbca, 0xfbdb, 0xfc34, 0xfcf4,
+ 0xfdba, 0xfe41, 0xfeef, 0xfff0, 0x00ce, 0x016a,
+ 0x01f0, 0x021a, 0x01c5, 0x013c, 0x006f, 0xff5e,
+ 0xfe63, 0xfd98, 0xfcfb, 0xfc81, 0xfbd5, 0xfb27,
+ 0xfae6, 0xfada, 0xfaf0, 0xfb4c, 0xfbcf, 0xfcee,
+ 0xfedf, 0x00bf, 0x0260, 0x0426, 0x058e, 0x062e,
+ 0x0626, 0x058d, 0x04dc, 0x042a, 0x0305, 0x01d0,
+ 0x00da, 0xffa7, 0xfe52, 0xfd23, 0xfbfb, 0xfb32,
+ 0xfb03, 0xfb59, 0xfc4a, 0xfd76, 0xfea4, 0x0027,
+ 0x016d, 0x0205, 0x02ae, 0x0344, 0x0342, 0x0329,
+ 0x02e6, 0x0220, 0x0137, 0xfff3, 0xfe57, 0xfd53,
+ 0xfc8d, 0xfb6f, 0xfacd, 0xfabe, 0xfa87, 0xfa95,
+ 0xfb45, 0xfc03, 0xfca8, 0xfd79, 0xfe6c, 0xff86,
+ 0x00f3, 0x0281, 0x03cb, 0x04c5, 0x056a, 0x055a,
+ 0x04b6, 0x043c, 0x03f1, 0x0358, 0x02df, 0x0306,
+ 0x0303, 0x021c, 0x00e5, 0xffdf, 0xfeda, 0xfdef,
+ 0xfd42, 0xfcde, 0xfd23, 0xfe15, 0xff2f, 0x005c,
+ 0x01a2, 0x0296, 0x0310, 0x033b, 0x0357, 0x0398,
+ 0x03c4, 0x03ad, 0x03a5, 0x03a5, 0x035f, 0x02c8,
+ 0x01e1, 0x00db, 0xffe5, 0xfeac, 0xfd4f, 0xfc49,
+ 0xfb76, 0xfad5, 0xfabb, 0xfafa, 0xfb5e, 0xfbf2,
+ 0xfcac, 0xfd81, 0xfe26, 0xfec2, 0xffdd, 0x00cc,
+ 0x010b, 0x016f, 0x01df, 0x01c1, 0x0187, 0x0133,
+ 0x008e, 0xffd6, 0xfed2, 0xfddd, 0xfd5b, 0xfc91,
+ 0xfbd8, 0xfbf1, 0xfc11, 0xfc63, 0xfd7b, 0xfe4a,
+ 0xfecf, 0xffdf, 0x00c4, 0x011e, 0x016c, 0x01c7,
+ 0x024d, 0x02cf, 0x02f9, 0x0312, 0x0323, 0x02f9,
+ 0x028f, 0x01d1, 0x012d, 0x00bc, 0x0020, 0xfff7,
+ 0x0038, 0x0018, 0x0085, 0x01b3, 0x0211, 0x01fa,
+ 0x0236, 0x021f, 0x01e3, 0x019e, 0x00e7, 0x0081,
+ 0x0074, 0x0007, 0xffcb, 0xffd8, 0xffe3, 0x004d,
+ 0x006d, 0xfff5, 0xfffc, 0x002c, 0xffe2, 0xffd3,
+ 0xffc9, 0xff5b, 0xff5b, 0xffce, 0x001e, 0x0078,
+ 0x00e7, 0x013c, 0x0174, 0x0168, 0x010d, 0x00a5,
+ 0x0065, 0x0050, 0x0050, 0x0048, 0xfffe, 0xff83,
+ 0xff4b, 0xff21, 0xfe94, 0xfe15, 0xfe0b, 0xfe47,
+ 0xfeb1, 0xff37, 0xfffb, 0x0123, 0x0243, 0x0313,
+ 0x03c3, 0x0459, 0x04ca, 0x0511, 0x0541, 0x0563,
+ 0x051c, 0x045f, 0x038f, 0x0284, 0x014c, 0x0082,
+ 0x0001, 0xff70, 0xff10, 0xff14, 0xff56, 0xffb9,
+ 0x0046, 0x00ce, 0x0115, 0x019b, 0x0291, 0x033a,
+ 0x0392, 0x03e9, 0x03de, 0x03a6, 0x0365, 0x028a,
+ 0x016a, 0x0094, 0xffc5, 0xfef4, 0xfe23, 0xfd36,
+ 0xfc82, 0xfc0d, 0xfbbd, 0xfbdf, 0xfc38, 0xfc74,
+ 0xfd05, 0xfe26, 0xff66, 0x0082, 0x0191, 0x0273,
+ 0x02f4, 0x0359, 0x03d7, 0x041e, 0x043c, 0x0493,
+ 0x04ea, 0x04d8, 0x046b, 0x03b2, 0x028d, 0x0145,
+ 0x0052, 0xff6e, 0xfe69, 0xfe02, 0xfe52, 0xfea2,
+ 0xfef3, 0xff8d, 0x005a, 0x0128, 0x01b2, 0x023a,
+ 0x030e, 0x03a8, 0x03e4, 0x043f, 0x0494, 0x04b8,
+ 0x04c2, 0x0469, 0x03bf, 0x030c, 0x0216, 0x010c,
+ 0x0066, 0xffba, 0xfeb6, 0xfdec, 0xfd52, 0xfc93,
+ 0xfc36, 0xfc4f, 0xfc69, 0xfce2, 0xfda6, 0xfe1b,
+ 0xfeb2, 0xffa5, 0x007d, 0x0151, 0x020e, 0x028e,
+ 0x02fd, 0x0314, 0x02ed, 0x02d0, 0x023e, 0x0150,
+ 0x0067, 0xff4e, 0xfe4a, 0xfd6f, 0xfcab, 0xfcb0,
+ 0xfd05, 0xfcd7, 0xfce1, 0xfd4a, 0xfdcc, 0xfec2,
+ 0xff8a, 0xfff8, 0x00f7, 0x0219, 0x02c4, 0x037a,
+ 0x0427, 0x046d, 0x0453, 0x03d8, 0x031f, 0x0243,
+ 0x0150, 0x0077, 0xffc7, 0xff57, 0xff1e, 0xfeed,
+ 0xfef6, 0xff2b, 0xff56, 0xffb2, 0x0003, 0x0018,
+ 0x0042, 0x0052, 0x003a, 0x0053, 0x0066, 0x006e,
+ 0x0078, 0x0033, 0x000a, 0x003f, 0x0036, 0xffd0,
+ 0xff46, 0xfec4, 0xfe75, 0xfe19, 0xfdcb, 0xfddb,
+ 0xfdcb, 0xfda0, 0xfdd1, 0xfe0f, 0xfe56, 0xfebb,
+ 0xfeca, 0xfede, 0xff57, 0xffa8, 0xffcd, 0x0000,
+ 0xfff5, 0xffc0, 0xff98, 0xff61, 0xff1a, 0xfea3,
+ 0xfe04, 0xfda0, 0xfd75, 0xfd5d, 0xfd55, 0xfd2a,
+ 0xfd0d, 0xfd5d, 0xfdcb, 0xfe45, 0xff19, 0xffd8,
+ 0x0054, 0x0104, 0x01c3, 0x0232, 0x025e, 0x0245,
+ 0x01ea, 0x016b, 0x00f1, 0x00ba, 0x0099, 0x0039,
+ 0xffdd, 0xff9f, 0xff51, 0xff21, 0xff2e, 0xff49,
+ 0xff58, 0xff87, 0x000f, 0x0094, 0x00ae, 0x00d7,
+ 0x0128, 0x0127, 0x0117, 0x0121, 0x00de, 0x0082,
+ 0x004a, 0xfffb, 0xff86, 0xfed8, 0xfe20, 0xfdee,
+ 0xfe0e, 0xfe0b, 0xfe1c, 0xfe37, 0xfe3b, 0xfe71,
+ 0xfe97, 0xfe75, 0xfea9, 0xff23, 0xff63, 0xffdc,
+ 0x008f, 0x00e3, 0x013f, 0x01e6, 0x0230, 0x0202,
+ 0x019e, 0x0120, 0x00c7, 0x006c, 0xffe7, 0xff90,
+ 0xff54, 0xff11, 0xfef1, 0xfeba, 0xfe6f, 0xfe6a,
+ 0xfe94, 0xfee5, 0xff5d, 0xffb6, 0x0005, 0x0069,
+ 0x00b1, 0x00e2, 0x0106, 0x0121, 0x0136, 0x011b,
+ 0x00f1, 0x00ed, 0x00f8, 0x00de, 0x0064, 0xffca,
+ 0xff7b, 0xff13, 0xfe7a, 0xfe32, 0xfdf9, 0xfd94,
+ 0xfd5a, 0xfd2e, 0xfd00, 0xfd01, 0xfd24, 0xfd75,
+ 0xfdd2, 0xfe22, 0xfe9f, 0xff17, 0xff6b, 0xffde,
+ 0x0013, 0xfff0, 0xfff3, 0xfff2, 0xffd2, 0xffe3,
+ 0xffce, 0xff60, 0xff15, 0xfef1, 0xfea3, 0xfe42,
+ 0xfdf3, 0xfdaf, 0xfd9d, 0xfdd8, 0xfe21, 0xfe72,
+ 0xff12, 0xffed, 0x00ae, 0x012b, 0x013f, 0x011e,
+ 0x0132, 0x0176, 0x017b, 0x0115, 0x00b7, 0x00a3,
+ 0x007a, 0x0044, 0x003d, 0x003b, 0x0078, 0x00fd,
+ 0x0132, 0x0133, 0x0164, 0x0171, 0x012f, 0x00d8,
+ 0x009c, 0x008d, 0x008a, 0x008d, 0x0082, 0x0045,
+ 0x0026, 0x002e, 0x0015, 0x001c, 0x0024, 0xffe1,
+ 0xffc6, 0xffdc, 0xffe0, 0xffe0, 0xffa9, 0xff7c,
+ 0xffad, 0xff98, 0xff62, 0xffb8, 0x0023, 0x004b,
+ 0x0065, 0x005a, 0x004a, 0x0064, 0x0075, 0x0048,
+ 0xffe3, 0xffa8, 0xffad, 0xff7e, 0xff2e, 0xfee6,
+ 0xfe71, 0xfe14, 0xfdea, 0xfdaa, 0xfd99, 0xfdcb,
+ 0xfe14, 0xfea0, 0xff3e, 0xffc1, 0x005b, 0x00d4,
+ 0x0114, 0x0167, 0x0196, 0x0184, 0x017a, 0x0153,
+ 0x00de, 0x0065, 0xfffa, 0xff6a, 0xfed2, 0xfe68,
+ 0xfe23, 0xfe0c, 0xfe2a, 0xfe59, 0xfeaa, 0xff0f,
+ 0xff40, 0xff71, 0xffde, 0x004e, 0x00ab, 0x00d4,
+ 0x00b9, 0x00a4, 0x006f, 0xffff, 0xffbc, 0xff84,
+ 0xff1f, 0xfedc, 0xfe99, 0xfe4e, 0xfe5b, 0xfe5e,
+ 0xfe07, 0xfddc, 0xfdfa, 0xfdfa, 0xfdda, 0xfded,
+ 0xfe50, 0xfec5, 0xff4e, 0x0003, 0x0085, 0x00c8,
+ 0x0141, 0x01d2, 0x0218, 0x0230, 0x0240, 0x0239,
+ 0x021f, 0x020a, 0x01dc, 0x0156, 0x00b8, 0x005c,
+ 0xfffd, 0xff83, 0xff48, 0xff35, 0xff32, 0xff5b,
+ 0xff7a, 0xff8d, 0xffc9, 0x0008, 0x0055, 0x00c8,
+ 0x0105, 0x0119, 0x0176, 0x01d0, 0x01d9, 0x01db,
+ 0x01e0, 0x01dd, 0x0204, 0x01fb, 0x018a, 0x013c,
+ 0x010b, 0x0086, 0xffed, 0xff61, 0xfecc, 0xfe77,
+ 0xfe4d, 0xfdfc, 0xfddb, 0xfe1d, 0xfe66, 0xfea0,
+ 0xfef0, 0xff40, 0xff74, 0xffa9, 0xffef, 0x002f,
+ 0x0072, 0x00c5, 0x010e, 0x0131, 0x0115, 0x00bb,
+ 0x0077, 0x0050, 0xfff3, 0xff66, 0xfed2, 0xfe4f,
+ 0xfe10, 0xfdf4, 0xfdbf, 0xfd9f, 0xfdc6, 0xfe1d,
+ 0xfe87, 0xfef4, 0xff60, 0xffc5, 0x0019, 0x004d,
+ 0x003c, 0x0012, 0x0015, 0x0015, 0xfff9, 0xffee,
+ 0xffed, 0xfff9, 0x000f, 0x0014, 0x0015, 0xffee,
+ 0xffa3, 0xffa2, 0xffa3, 0xff50, 0xff46, 0xff88,
+ 0xff94, 0xffa7, 0xffdc, 0xffe7, 0xffde, 0xfff4,
+ 0x0037, 0x0077, 0x0062, 0x0041, 0x0064, 0x0085,
+ 0x0082, 0x007a, 0x0085, 0x0099, 0x006a, 0x000c,
+ 0xfff4, 0xfff0, 0xffcb, 0xffdd, 0xfffc, 0xffda,
+ 0xffec, 0x0054, 0x00b0, 0x00f2, 0x0104, 0x00c7,
+ 0x00b9, 0x00d5, 0x007f, 0x000a, 0xffe7, 0xffbc,
+ 0xff90, 0xff88, 0xff6a, 0xff6f, 0xffab, 0xffcd,
+ 0xfff0, 0x000a, 0x0015, 0x007b, 0x0105, 0x0153,
+ 0x0193, 0x01ad, 0x01b3, 0x01f9, 0x020b, 0x01ab,
+ 0x0158, 0x0137, 0x0123, 0x00fa, 0x00c1, 0x00b3,
+ 0x00a8, 0x007d, 0x006e, 0x0064, 0x0061, 0x00a1,
+ 0x00c8, 0x00ba, 0x00e5, 0x0138, 0x016d, 0x0180,
+ 0x017d, 0x0170, 0x013f, 0x00ea, 0x00ad, 0x007c,
+ 0x0022, 0xffb8, 0xff6d, 0xff5f, 0xff65, 0xff42,
+ 0xff19, 0xff09, 0xfefa, 0xfee7, 0xfede, 0xfef1,
+ 0xff2c, 0xff70, 0xffa4, 0xffdf, 0x004a, 0x00cf,
+ 0x012a, 0x0169, 0x019e, 0x01aa, 0x01ad, 0x01bb,
+ 0x019b, 0x0168, 0x0159, 0x015d, 0x013f, 0x00ea,
+ 0x00a0, 0x008c, 0x0083, 0x0084, 0x0087, 0x0079,
+ 0x0093, 0x00c1, 0x00f6, 0x0161, 0x0192, 0x017b,
+ 0x01a9, 0x01d8, 0x01d9, 0x01fc, 0x01f7, 0x01d3,
+ 0x01fd, 0x021a, 0x020b, 0x020a, 0x01ef, 0x01d2,
+ 0x01c8, 0x0189, 0x0124, 0x00df, 0x00c4, 0x009b,
+ 0x0039, 0xffef, 0xffed, 0xffe1, 0xffb6, 0xff92,
+ 0xff91, 0xffc8, 0x000d, 0x003c, 0x0050, 0x0075,
+ 0x00d8, 0x0118, 0x0108, 0x0124, 0x0142, 0x011b,
+ 0x0112, 0x00f8, 0x00a4, 0x007a, 0x0056, 0x0021,
+ 0x0016, 0x0007, 0xfff5, 0xffe8, 0xffc9, 0xffda,
+ 0x000a, 0x001f, 0x0056, 0x008b, 0x0093, 0x00ab,
+ 0x00d0, 0x00ef, 0x00e1, 0x00a5, 0x00d4, 0x0137,
+ 0x0136, 0x014a, 0x015f, 0x0112, 0x0103, 0x0118,
+ 0x00e7, 0x00e5, 0x00cd, 0x0054, 0x002d, 0x0049,
+ 0x0039, 0x0032, 0x002e, 0x002c, 0x0040, 0x002f,
+ 0x0010, 0x0008, 0xfff9, 0x0006, 0x0017, 0xffeb,
+ 0xffde, 0x0000, 0xfff0, 0xffd9, 0xffe1, 0xffd1,
+ 0xffce, 0xffea, 0xffe8, 0xfff5, 0x0045, 0x0097,
+ 0x00ba, 0x00b7, 0x00a9, 0x00ae, 0x00b1, 0x0092,
+ 0x004f, 0xffdd, 0xff77, 0xff61, 0xff48, 0xfeff,
+ 0xfebc, 0xfe92, 0xfea6, 0xfef9, 0xff2b, 0xff3e,
+ 0xff64, 0xff9a, 0xfff1, 0x0057, 0x00b3, 0x010c,
+ 0x012e, 0x0132, 0x014c, 0x0126, 0x00e0, 0x00e7,
+ 0x00cc, 0x0054, 0xfffa, 0xffcc, 0xff9c, 0xff67,
+ 0xff20, 0xfed7, 0xfeb1, 0xfeaf, 0xfec2, 0xfee5,
+ 0xff15, 0xff44, 0xff87, 0xffec, 0x0028, 0x001f,
+ 0x000d, 0x000e, 0x002b, 0x003f, 0xfffe, 0xffa7,
+ 0xff8d, 0xff7f, 0xff6b, 0xff3a, 0xfecd, 0xfe6c,
+ 0xfe20, 0xfdc0, 0xfd71, 0xfd33, 0xfd06, 0xfd1d,
+ 0xfd4d, 0xfd8f, 0xfe0a, 0xfe70, 0xfeb7, 0xff34,
+ 0xffac, 0xffdb, 0x0004, 0x0040, 0x0054, 0x0034,
+ 0x000e, 0xfff9, 0xffd2, 0xff8b, 0xff39, 0xfef0,
+ 0xfeb2, 0xfe7d, 0xfe50, 0xfe1d, 0xfde7, 0xfddc,
+ 0xfdf8, 0xfe04, 0xfe0b, 0xfe3d, 0xfe82, 0xfeab,
+ 0xfed2, 0xff1e, 0xff70, 0xffab, 0xffde, 0xfffb,
+ 0x0004, 0x001d, 0x0023, 0xfffe, 0xffe0, 0xffb7,
+ 0xff6f, 0xff32, 0xfefd, 0xfed2, 0xfec1, 0xfe9d,
+ 0xfe58, 0xfe20, 0xfdf6, 0xfdd7, 0xfddd, 0xfe0b,
+ 0xfe40, 0xfe5c, 0xfe73, 0xfe99, 0xfec4, 0xff0f,
+ 0xff56, 0xff3f, 0xff10, 0xff2b, 0xff62, 0xff82,
+ 0xff88, 0xff85, 0xff87, 0xff66, 0xff20, 0xfedf,
+ 0xfe86, 0xfe2a, 0xfe05, 0xfde4, 0xfdc7, 0xfde5,
+ 0xfe03, 0xfe1f, 0xfe74, 0xfebd, 0xfef3, 0xff54,
+ 0xff94, 0xffaa, 0xffdd, 0xfff2, 0xffee, 0x000b,
+ 0xfff6, 0xffaa, 0xff9a, 0xff8e, 0xff53, 0xff24,
+ 0xfef2, 0xfeba, 0xfebb, 0xfec7, 0xfeb3, 0xfeb2,
+ 0xfec1, 0xfeb5, 0xfe9a, 0xfe83, 0xfe7c, 0xfe82,
+ 0xfe91, 0xfeb9, 0xfee1, 0xfed7, 0xfec8, 0xfeed,
+ 0xff18, 0xff22, 0xff1a, 0xfefc, 0xfee2, 0xfee5,
+ 0xfed1, 0xfeac, 0xfeb1, 0xfeca, 0xfee6, 0xff14,
+ 0xff2d, 0xff30, 0xff3a, 0xff26, 0xff01, 0xfef5,
+ 0xfeea, 0xfee7, 0xff07, 0xff2b, 0xff3e, 0xff2c,
+ 0xff03, 0xfefc, 0xfefd, 0xfedf, 0xfed2, 0xfed0,
+ 0xfecd, 0xfefd, 0xff36, 0xff3c, 0xff52, 0xff93,
+ 0xffcb, 0xffe0, 0xffd5, 0xffd2, 0xffef, 0xfff7,
+ 0xffda, 0xffcc, 0xffc3, 0xffb1, 0xffc2, 0xffd3,
+ 0xffa9, 0xff81, 0xff80, 0xff74, 0xff76, 0xff9a,
+ 0xffc2, 0xffef, 0x000d, 0x0028, 0x0067, 0x0084,
+ 0x006e, 0x0077, 0x006b, 0x0040, 0x004c, 0x0044,
+ 0x0004, 0xffe9, 0xffcd, 0xff98, 0xff80, 0xff60,
+ 0xff35, 0xff1b, 0xfefa, 0xfef7, 0xff0e, 0xfef3,
+ 0xfed6, 0xfeea, 0xff0f, 0xff44, 0xff73, 0xff80,
+ 0xffa5, 0xffec, 0x0015, 0x002c, 0x0063, 0x009c,
+ 0x00a3, 0x009b, 0x0099, 0x008f, 0x0090, 0x0094,
+ 0x0078, 0x0068, 0x0075, 0x0075, 0x007b, 0x008c,
+ 0x008a, 0x0084, 0x0080, 0x007f, 0x0095, 0x00b0,
+ 0x00bb, 0x00c2, 0x00d0, 0x00d4, 0x00b6, 0x009e,
+ 0x00b5, 0x00c5, 0x00af, 0x00b0, 0x00cc, 0x00dc,
+ 0x00df, 0x00d2, 0x00a9, 0x0074, 0x0043, 0x0019,
+ 0xffff, 0xffed, 0xffc4, 0xff9b, 0xff98, 0xff8c,
+ 0xff63, 0xff6c, 0xffa1, 0xffbf, 0xffc9, 0xffe2,
+ 0x000f, 0x002d, 0x002d, 0x0050, 0x0082, 0x0080,
+ 0x0081, 0x0096, 0x007f, 0x0050, 0x0026, 0x0000,
+ 0xfffc, 0x000e, 0x0011, 0x000c, 0x0011, 0x003f,
+ 0x0088, 0x00a8, 0x00a4, 0x00a3, 0x00af, 0x00cd,
+ 0x00d0, 0x00b3, 0x00c4, 0x00f7, 0x0109, 0x0103,
+ 0x00f4, 0x00ec, 0x0103, 0x0117, 0x00ff, 0x00d3,
+ 0x00bb, 0x00c3, 0x00df, 0x00fc, 0x010f, 0x0121,
+ 0x0138, 0x013e, 0x0141, 0x014e, 0x013d, 0x0132,
+ 0x0162, 0x017f, 0x0164, 0x0158, 0x015c, 0x0151,
+ 0x0135, 0x00f8, 0x00b7, 0x009e, 0x0095, 0x0082,
+ 0x007d, 0x009d, 0x00cc, 0x00ef, 0x010d, 0x0126,
+ 0x013f, 0x0164, 0x0172, 0x016a, 0x0184, 0x01a0,
+ 0x019c, 0x0199, 0x018e, 0x0170, 0x016b, 0x016d,
+ 0x0139, 0x00df, 0x009f, 0x007c, 0x004e, 0x0045,
+ 0x007e, 0x00ad, 0x00c8, 0x0104, 0x014a, 0x017a,
+ 0x0193, 0x01a8, 0x01c7, 0x01de, 0x01f2, 0x0209,
+ 0x01fb, 0x01e3, 0x01da, 0x01a3, 0x015c, 0x0150,
+ 0x0153, 0x0148, 0x013e, 0x013b, 0x0141, 0x014a,
+ 0x015e, 0x0176, 0x017d, 0x0195, 0x01b0, 0x01b2,
+ 0x01d8, 0x01f2, 0x01c1, 0x01a3, 0x018a, 0x014e,
+ 0x0142, 0x0134, 0x0108, 0x011c, 0x0124, 0x00fb,
+ 0x00ec, 0x00c0, 0x0086, 0x0082, 0x0075, 0x0068,
+ 0x0073, 0x0054, 0x0043, 0x005c, 0x005c, 0x0074,
+ 0x00ad, 0x00bb, 0x00c3, 0x00f7, 0x013d, 0x0177,
+ 0x0190, 0x018b, 0x019b, 0x01ca, 0x01dd, 0x01ba,
+ 0x01a5, 0x01b1, 0x01b3, 0x01a6, 0x0166, 0x0102,
+ 0x00ef, 0x010a, 0x00ee, 0x00d7, 0x00de, 0x00d4,
+ 0x00d2, 0x00db, 0x00e5, 0x0107, 0x0133, 0x0160,
+ 0x017a, 0x017a, 0x018a, 0x0187, 0x016a, 0x017e,
+ 0x017e, 0x013c, 0x0122, 0x012a, 0x010d, 0x00e7,
+ 0x00c8, 0x00b6, 0x00ae, 0x0097, 0x007b, 0x0053,
+ 0x0040, 0x0073, 0x008d, 0x0071, 0x007d, 0x009d,
+ 0x00c8, 0x0119, 0x013d, 0x014a, 0x017a, 0x0174,
+ 0x015e, 0x0183, 0x017b, 0x014a, 0x0144, 0x0131,
+ 0x0110, 0x0119, 0x011b, 0x0104, 0x0100, 0x010a,
+ 0x0109, 0x00ff, 0x0107, 0x010c, 0x00f3, 0x00f0,
+ 0x011d, 0x0144, 0x0150, 0x0144, 0x011a, 0x00fc,
+ 0x00fe, 0x00f0, 0x00d8, 0x00d5, 0x00d0, 0x00d4,
+ 0x00f8, 0x0114, 0x011d, 0x0133, 0x014f, 0x016c,
+ 0x017d, 0x0166, 0x0131, 0x00f4, 0x00bb, 0x00b2,
+ 0x00c3, 0x00a8, 0x008c, 0x009d, 0x00a9, 0x009c,
+ 0x0089, 0x0070, 0x005e, 0x006e, 0x0089, 0x0090,
+ 0x008b, 0x0075, 0x003d, 0x001a, 0x0025, 0x0025,
+ 0x0031, 0x0051, 0x0042, 0x0039, 0x0066, 0x0078,
+ 0x0080, 0x0095, 0x0080, 0x007d, 0x00aa, 0x00b0,
+ 0x00aa, 0x00b2, 0x00a2, 0x009e, 0x00b3, 0x00bf,
+ 0x00d1, 0x00f2, 0x0114, 0x0119, 0x0108, 0x0115,
+ 0x0119, 0x00f2, 0x00eb, 0x00f2, 0x00e5, 0x00ec,
+ 0x00e1, 0x00be, 0x00b7, 0x00a5, 0x0090, 0x009f,
+ 0x00a3, 0x00b1, 0x00da, 0x00e2, 0x00ed, 0x010d,
+ 0x010c, 0x00f9, 0x00e4, 0x00cf, 0x00d8, 0x00e4,
+ 0x00ee, 0x0105, 0x0106, 0x00fb, 0x00ef, 0x00d7,
+ 0x00e1, 0x00f6, 0x00d8, 0x00ab, 0x0078, 0x0047,
+ 0x0044, 0x0046, 0x002b, 0x0019, 0x0012, 0x0014,
+ 0x0008, 0xffdf, 0xffd0, 0xffd8, 0xffc6, 0xffc1,
+ 0xffc8, 0xffc3, 0xffda, 0x000c, 0x0037, 0x0050,
+ 0x0060, 0x0078, 0x0080, 0x0063, 0x004a, 0x002a,
+ 0xfffc, 0xfff1, 0x0007, 0x001d, 0x001b, 0x0005,
+ 0x0007, 0x0010, 0xfff6, 0xfffb, 0x0011, 0xffef,
+ 0xffd9, 0xfff6, 0x0000, 0x000e, 0x002f, 0x0024,
+ 0x0004, 0xfffd, 0xfff9, 0xfff1, 0xffec, 0xffdb,
+ 0xffc0, 0xffb0, 0xff9b, 0xff7f, 0xff88, 0xffad,
+ 0xffba, 0xffba, 0xffc5, 0xffcb, 0xffd5, 0xffe9,
+ 0xfff5, 0xffec, 0xffe1, 0xffee, 0xfffc, 0x0001,
+ 0x001c, 0x0012, 0xffc5, 0xff8d, 0xff78, 0xff5b,
+ 0xff4b, 0xff38, 0xff1c, 0xff1f, 0xff30, 0xff47,
+ 0xff64, 0xff6e, 0xff81, 0xff9a, 0xff9f, 0xffc3,
+ 0xfff2, 0xfff6, 0x0004, 0x000e, 0xffeb, 0xffcf,
+ 0xffc1, 0xffb0, 0xff9f, 0xff6a, 0xff41, 0xff42,
+ 0xff15, 0xfed9, 0xfed1, 0xfeb0, 0xfe92, 0xfec0,
+ 0xfee9, 0xfef5, 0xff24, 0xff4f, 0xff49, 0xff3d,
+ 0xff49, 0xff6d, 0xff99, 0xffa1, 0xff86, 0xff6c,
+ 0xff41, 0xff05, 0xfee9, 0xfecd, 0xfe9b, 0xfea0,
+ 0xfec5, 0xfead, 0xfe7e, 0xfe61, 0xfe3f, 0xfe37,
+ 0xfe4a, 0xfe48, 0xfe4c, 0xfe82, 0xfed3, 0xff00,
+ 0xfeef, 0xfedc, 0xfee7, 0xfed6, 0xfea4, 0xfe82,
+ 0xfe7e, 0xfe88, 0xfe84, 0xfe76, 0xfe6c, 0xfe4b,
+ 0xfe17, 0xfdfc, 0xfdfe, 0xfe0e, 0xfe29, 0xfe4b,
+ 0xfe7c, 0xfe9f, 0xfe8d, 0xfe72, 0xfe71, 0xfe6f,
+ 0xfe69, 0xfe66, 0xfe5b, 0xfe57, 0xfe63, 0xfe68,
+ 0xfe66, 0xfe91, 0xfee2, 0xfeff, 0xfeec, 0xfee4,
+ 0xfecb, 0xfe92, 0xfe63, 0xfe40, 0xfe35, 0xfe48,
+ 0xfe4f, 0xfe4c, 0xfe48, 0xfe3a, 0xfe4e, 0xfe6c,
+ 0xfe66, 0xfe74, 0xfe8c, 0xfe86, 0xfead, 0xfef6,
+ 0xfefa, 0xfed6, 0xfece, 0xfec9, 0xfea9, 0xfe88,
+ 0xfe76, 0xfe69, 0xfe65, 0xfe67, 0xfe53, 0xfe39,
+ 0xfe32, 0xfe2d, 0xfe38, 0xfe53, 0xfe69, 0xfe97,
+ 0xfeba, 0xfe96, 0xfe7c, 0xfe96, 0xfe9e, 0xfea1,
+ 0xfea9, 0xfe8e, 0xfe6c, 0xfe59, 0xfe51, 0xfe64,
+ 0xfe7e, 0xfe87, 0xfe8e, 0xfe9d, 0xfeaf, 0xfeb0,
+ 0xfea8, 0xfeb9, 0xfecb, 0xfed5, 0xfeec, 0xfef1,
+ 0xfee5, 0xfede, 0xfec7, 0xfeb3, 0xfeab, 0xfe8d,
+ 0xfe85, 0xfea1, 0xfeac, 0xfead, 0xfea8, 0xfe9f,
+ 0xfebb, 0xfed7, 0xfedc, 0xfef3, 0xff11, 0xff25,
+ 0xff23, 0xfef3, 0xfeda, 0xfefb, 0xff13, 0xff1c,
+ 0xff1e, 0xff1a, 0xff31, 0xff2d, 0xfef4, 0xfedf,
+ 0xfee3, 0xfed3, 0xfedd, 0xfef3, 0xfef7, 0xff04,
+ 0xff0e, 0xff18, 0xff36, 0xff43, 0xff42, 0xff54,
+ 0xff69, 0xff80, 0xffa2, 0xffb7, 0xffbb, 0xffc1,
+ 0xffcf, 0xffd1, 0xffc7, 0xffd3, 0xffe7, 0xffdd,
+ 0xffd4, 0xffe4, 0xfffa, 0x000d, 0x000c, 0xfffa,
+ 0xfff8, 0xffff, 0xfffc, 0x0001, 0x000e, 0x0010,
+ 0x0010, 0x000f, 0x000a, 0x0003, 0xfff3, 0xffda,
+ 0xffb7, 0xff8f, 0xff84, 0xff93, 0xff99, 0xffa2,
+ 0xffab, 0xff93, 0xff7c, 0xff84, 0xff7d, 0xff63,
+ 0xff65, 0xff76, 0xff70, 0xff5b, 0xff50, 0xff3d,
+ 0xff1c, 0xff12, 0xff14, 0xff01, 0xff05, 0xff2c,
+ 0xff34, 0xff39, 0xff6b, 0xff9f, 0xffb8, 0xffcc,
+ 0xffdc, 0xffd7, 0xffae, 0xff93, 0xffb2, 0xffc6,
+ 0xffb2, 0xffc0, 0xffef, 0x000c, 0x0017, 0x0012,
+ 0x0001, 0xffef, 0xffe7, 0xfff3, 0xffe6, 0xffbc,
+ 0xffce, 0x0010, 0x0026, 0x0015, 0x000b, 0x0011,
+ 0x0024, 0x0036, 0x003f, 0x0047, 0x004c, 0x0044,
+ 0x002c, 0x0011, 0x0000, 0xfff7, 0xffee, 0xffde,
+ 0xffda, 0xfff7, 0x0010, 0x0013, 0x000d, 0xfff3,
+ 0xffdc, 0xffe0, 0xffdd, 0xffea, 0x0015, 0x001c,
+ 0x0018, 0x003e, 0x0055, 0x004d, 0x004c, 0x004c,
+ 0x0056, 0x005f, 0x0057, 0x004c, 0x0053, 0x0085,
+ 0x00bf, 0x00c0, 0x00b8, 0x00d0, 0x00da, 0x00e1,
+ 0x00e2, 0x00b5, 0x00a0, 0x00c4, 0x00ec, 0x0113,
+ 0x0129, 0x0128, 0x012d, 0x0119, 0x00ee, 0x00e7,
+ 0x00f1, 0x00f4, 0x00f8, 0x00e5, 0x00c6, 0x00cc,
+ 0x00e2, 0x00e0, 0x00d1, 0x00d3, 0x00dc, 0x00d7,
+ 0x00c3, 0x0091, 0x006a, 0x0081, 0x00a4, 0x00b4,
+ 0x00ca, 0x00b9, 0x008d, 0x0093, 0x009b, 0x008b,
+ 0x0090, 0x0093, 0x00a2, 0x00d6, 0x00da, 0x00ad,
+ 0x00a8, 0x00c2, 0x00dd, 0x00fc, 0x0102, 0x00f5,
+ 0x00fe, 0x011b, 0x012f, 0x0137, 0x0137, 0x0124,
+ 0x0100, 0x00e1, 0x00c3, 0x0097, 0x0072, 0x006e,
+ 0x0089, 0x00a4, 0x00c6, 0x0104, 0x0130, 0x012f,
+ 0x0126, 0x0124, 0x0127, 0x0127, 0x0101, 0x00ca,
+ 0x00ad, 0x00a1, 0x00ad, 0x00ba, 0x009b, 0x0086,
+ 0x0086, 0x0062, 0x0045, 0x0047, 0x003c, 0x004b,
+ 0x007d, 0x0091, 0x0091, 0x0090, 0x0080, 0x0076,
+ 0x0076, 0x005d, 0x0036, 0x0034, 0x0055, 0x0059,
+ 0x0044, 0x005a, 0x0087, 0x0099, 0x009f, 0x00a3,
+ 0x00a1, 0x00ac, 0x00c4, 0x00d8, 0x00dd, 0x00c7,
+ 0x00b1, 0x00bb, 0x00ca, 0x00d2, 0x00e6, 0x00f5,
+ 0x00f3, 0x00ef, 0x00f1, 0x00f1, 0x00fb, 0x010a,
+ 0x00fb, 0x00ce, 0x00a7, 0x008f, 0x0084, 0x0081,
+ 0x0079, 0x007a, 0x0084, 0x006e, 0x0048, 0x0035,
+ 0x0038, 0x0050, 0x0051, 0x001b, 0x0011, 0x0054,
+ 0x006b, 0x004f, 0x0052, 0x0066, 0x007b, 0x00a1,
+ 0x00b7, 0x00c1, 0x00d8, 0x00dc, 0x00c8, 0x00bb,
+ 0x00b1, 0x009c, 0x007d, 0x005e, 0x0065, 0x0088,
+ 0x0097, 0x00a1, 0x00ba, 0x00bd, 0x00ab, 0x00a5,
+ 0x00ad, 0x00b9, 0x00ad, 0x0079, 0x005d, 0x006f,
+ 0x0070, 0x0063, 0x006e, 0x0071, 0x0062, 0x0061,
+ 0x0064, 0x006a, 0x0078, 0x0074, 0x006b, 0x006f,
+ 0x0060, 0x0046, 0x0041, 0x0031, 0x001c, 0x0027,
+ 0x0021, 0x0005, 0x0015, 0x0033, 0x0023, 0x0008,
+ 0x0009, 0x0027, 0x0057, 0x0074, 0x0076, 0x0074,
+ 0x0067, 0x004f, 0x003e, 0x0033, 0x0028, 0x0022,
+ 0x0019, 0x0016, 0x0019, 0x001a, 0x002f, 0x0057,
+ 0x0062, 0x0047, 0x003f, 0x0057, 0x005a, 0x0037,
+ 0x0013, 0x0002, 0xfff6, 0xffe1, 0xffd3, 0xffdc,
+ 0xfff4, 0x000c, 0x0020, 0x0021, 0x0012, 0x0015,
+ 0x0031, 0x004d, 0x0052, 0x0037, 0x0014, 0x0000,
+ 0xfffe, 0x0000, 0xffec, 0xffc2, 0xffb5, 0xffbb,
+ 0xffb4, 0xffb7, 0xffbb, 0xffb1, 0xffbd, 0xffd6,
+ 0xffe9, 0x0004, 0x0014, 0x001f, 0x004a, 0x0068,
+ 0x005b, 0x0056, 0x0057, 0x0038, 0x000d, 0xfffc,
+ 0x0009, 0x001a, 0x0012, 0x0003, 0x000b, 0x001b,
+ 0x0021, 0x002b, 0x0045, 0x0055, 0x003f, 0x0020,
+ 0x0017, 0x000f, 0x0002, 0x0018, 0x004d, 0x006c,
+ 0x006a, 0x006b, 0x007b, 0x0090, 0x008e, 0x0061,
+ 0x002b, 0x001b, 0x0018, 0x0008, 0x0000, 0xffee,
+ 0xffc2, 0xffaa, 0xffab, 0xff9e, 0xffa1, 0xffbd,
+ 0xffbc, 0xffaf, 0xffca, 0xffdb, 0xffbe, 0xffbf,
+ 0xfff3, 0x000f, 0x0008, 0x000f, 0x0021, 0x0021,
+ 0x0013, 0x000b, 0x0013, 0x0023, 0x0023, 0x0019,
+ 0x000f, 0x0009, 0x000f, 0x0016, 0x0007, 0xfff8,
+ 0x0000, 0x001a, 0x0040, 0x005c, 0x0059, 0x004b,
+ 0x003d, 0x0023, 0x0015, 0x0010, 0xfffa, 0xffed,
+ 0x0000, 0x0019, 0x0032, 0x0043, 0x0042, 0x0038,
+ 0x0019, 0xffee, 0xffe3, 0xffed, 0xfff3, 0x0000,
+ 0xfffa, 0xffe4, 0xfffa, 0x0004, 0xffcd, 0xff9d,
+ 0xff8e, 0xff8b, 0xff9e, 0xffa7, 0xff98, 0xff9f,
+ 0xffad, 0xffa9, 0xffa2, 0xff89, 0xff76, 0xff91,
+ 0xffa8, 0xff9c, 0xff8d, 0xff85, 0xff8e, 0xffaa,
+ 0xffa5, 0xff7b, 0xff6d, 0xff88, 0xff92, 0xff95,
+ 0xffbf, 0xffe4, 0xffe6, 0xfffd, 0x0018, 0x0018,
+ 0x0022, 0x0023, 0x0000, 0xffed, 0xffe9, 0xffed,
+ 0x0007, 0x0007, 0xfff1, 0x0006, 0x0022, 0x0025,
+ 0x0040, 0x0055, 0x0035, 0x0015, 0x001d, 0x0021,
+ 0x0002, 0xffe5, 0xffd9, 0xffd0, 0xffd4, 0xffd9,
+ 0xffbf, 0xffac, 0xffb4, 0xffb6, 0xffb2, 0xffa1,
+ 0xff77, 0xff5c, 0xff4e, 0xff36, 0xff1e, 0xff03,
+ 0xff04, 0xff33, 0xff55, 0xff65, 0xff8a, 0xffaf,
+ 0xffc4, 0xffc5, 0xffab, 0xffa0, 0xffa6, 0xffa1,
+ 0xff93, 0xff69, 0xff36, 0xff3c, 0xff5f, 0xff7a,
+ 0xff90, 0xff8c, 0xff7a, 0xff6e, 0xff4d, 0xff2a,
+ 0xff20, 0xff1e, 0xff20, 0xff19, 0xff0d, 0xff25,
+ 0xff42, 0xff3c, 0xff36, 0xff39, 0xff3b, 0xff4b,
+ 0xff5a, 0xff4a, 0xff1f, 0xfeef, 0xfed2, 0xfec1,
+ 0xfeb5, 0xfec1, 0xfecd, 0xfed9, 0xff0c, 0xff35,
+ 0xff32, 0xff44, 0xff6d, 0xff76, 0xff70, 0xff6c,
+ 0xff60, 0xff5e, 0xff59, 0xff45, 0xff3b, 0xff47,
+ 0xff63, 0xff8c, 0xffad, 0xffbd, 0xffb7, 0xffad,
+ 0xffcf, 0x0001, 0x0005, 0x0003, 0x001d, 0x001a,
+ 0xfffa, 0xffe7, 0xffdb, 0xffd7, 0xffd4, 0xffb7,
+ 0xff9d, 0xffad, 0xffd2, 0xfff5, 0x0004, 0x0000,
+ 0xfffe, 0xffff, 0xfff7, 0xffe8, 0xffcd, 0xffb8,
+ 0xffb9, 0xffb8, 0xffba, 0xffc6, 0xffbf, 0xffb0,
+ 0xffa9, 0xff8a, 0xff59, 0xff44, 0xff50, 0xff62,
+ 0xff5c, 0xff4d, 0xff5b, 0xff61, 0xff39, 0xff17,
+ 0xff12, 0xff12, 0xff2b, 0xff55, 0xff67, 0xff70,
+ 0xff86, 0xff97, 0xffa8, 0xffb5, 0xffb1, 0xffb3,
+ 0xffcd, 0xffe2, 0xffd9, 0xffc6, 0xffce, 0xffec,
+ 0xfff6, 0xffda, 0xffaf, 0xff97, 0xffa3, 0xffb4,
+ 0xffae, 0xffaf, 0xffcd, 0xffe7, 0xfff9, 0x0010,
+ 0x0012, 0x0004, 0x000b, 0x0014, 0x0004, 0xffee,
+ 0xffdf, 0xffef, 0x0010, 0x001c, 0x001e, 0x0028,
+ 0x0024, 0x0031, 0x0051, 0x004c, 0x003c, 0x004c,
+ 0x005d, 0x005f, 0x0063, 0x006f, 0x0079, 0x006c,
+ 0x0064, 0x0070, 0x0069, 0x0071, 0x0098, 0x0086,
+ 0x0062, 0x0093, 0x00c3, 0x00ac, 0x009c, 0x00a9,
+ 0x00b5, 0x00c6, 0x00e1, 0x00fc, 0x010f, 0x0111,
+ 0x010e, 0x0115, 0x0121, 0x0115, 0x00f5, 0x00e9,
+ 0x00e5, 0x00c6, 0x00a6, 0x009c, 0x009f, 0x00c3,
+ 0x00fc, 0x0116, 0x0115, 0x012d, 0x0158, 0x015c,
+ 0x0148, 0x0146, 0x013b, 0x0128, 0x012b, 0x012e,
+ 0x0120, 0x010b, 0x00f8, 0x0105, 0x0115, 0x00fc,
+ 0x00f7, 0x0111, 0x0115, 0x011b, 0x012a, 0x0124,
+ 0x0117, 0x00ff, 0x00e7, 0x00ed, 0x00eb, 0x00dd,
+ 0x00e0, 0x00d0, 0x00b7, 0x00ce, 0x00fc, 0x0126,
+ 0x014a, 0x0157, 0x0152, 0x0149, 0x013e, 0x0138,
+ 0x012b, 0x0119, 0x0110, 0x0108, 0x00f8, 0x00e3,
+ 0x00d7, 0x00d8, 0x00de, 0x00f1, 0x0110, 0x0122,
+ 0x013b, 0x0156, 0x0149, 0x0139, 0x013f, 0x012c,
+ 0x0110, 0x010a, 0x010b, 0x0114, 0x011f, 0x0119,
+ 0x010e, 0x0102, 0x00fa, 0x00f9, 0x00ff, 0x0119,
+ 0x0133, 0x0129, 0x0110, 0x0100, 0x00f1, 0x00dd,
+ 0x00c8, 0x00c1, 0x00bb, 0x00a4, 0x00ab, 0x00d7,
+ 0x00f4, 0x0107, 0x0115, 0x0112, 0x0116, 0x0119,
+ 0x0118, 0x011f, 0x0117, 0x012a, 0x015f, 0x015d,
+ 0x013d, 0x014a, 0x014d, 0x013e, 0x013e, 0x0130,
+ 0x012d, 0x0146, 0x0148, 0x0134, 0x012a, 0x012b,
+ 0x0136, 0x0138, 0x0124, 0x0117, 0x011a, 0x0118,
+ 0x010b, 0x00f8, 0x00f5, 0x00fb, 0x00f0, 0x00d8,
+ 0x00bc, 0x00a2, 0x00a8, 0x00cd, 0x00d8, 0x00b9,
+ 0x00b4, 0x00dd, 0x00f7, 0x00f3, 0x00ef, 0x00e0,
+ 0x00c3, 0x00a9, 0x0094, 0x0089, 0x0077, 0x004a,
+ 0x0023, 0x0012, 0xfff9, 0xffdd, 0xffd9, 0xffe7,
+ 0xfff8, 0x000a, 0x0025, 0x0041, 0x005b, 0x007d,
+ 0x009f, 0x00af, 0x00ba, 0x00c8, 0x00c5, 0x009d,
+ 0x0060, 0x003a, 0x0038, 0x0048, 0x0054, 0x0057,
+ 0x0057, 0x0061, 0x0073, 0x0077, 0x005a, 0x0044,
+ 0x0065, 0x008a, 0x0080, 0x0073, 0x007e, 0x0085,
+ 0x008e, 0x0098, 0x009a, 0x009f, 0x00a6, 0x00ad,
+ 0x00aa, 0x008d, 0x0072, 0x0063, 0x0041, 0x0025,
+ 0x0023, 0x001c, 0x0024, 0x0050, 0x006f, 0x0072,
+ 0x0067, 0x0045, 0x0013, 0xffec, 0xffc5, 0xffa2,
+ 0xff9f, 0xffb2, 0xffb5, 0xffbc, 0xffdc, 0xfff1,
+ 0x0004, 0x0024, 0x0022, 0x0008, 0x001b, 0x0031,
+ 0x0015, 0x0007, 0x0025, 0x0034, 0x0032, 0x0049,
+ 0x005c, 0x0044, 0x002c, 0x0039, 0x003e, 0x001e,
+ 0xfffb, 0xffe7, 0xffda, 0xffcb, 0xffc0, 0xffbe,
+ 0xffbe, 0xffc1, 0xffc9, 0xffb8, 0xff8f, 0xff84,
+ 0xffa2, 0xffb8, 0xffb5, 0xffa6, 0xff91, 0xff94,
+ 0xffab, 0xffaa, 0xff94, 0xff92, 0xff9d, 0xff9c,
+ 0xff8f, 0xff81, 0xff70, 0xff53, 0xff2e, 0xff17,
+ 0xff12, 0xff1f, 0xff45, 0xff73, 0xff92, 0xffad,
+ 0xffda, 0x0002, 0x0000, 0xffe4, 0xffd1, 0xffc7,
+ 0xffcb, 0xffde, 0xffdb, 0xffc7, 0xffc4, 0xffb3,
+ 0xff8b, 0xff8a, 0xff9a, 0xff85, 0xff74, 0xff86,
+ 0xff96, 0xff97, 0xff95, 0xff8d, 0xff82, 0xff7c,
+ 0xff75, 0xff6b, 0xff60, 0xff60, 0xff61, 0xff53,
+ 0xff4e, 0xff57, 0xff54, 0xff57, 0xff69, 0xff77,
+ 0xff8c, 0xff97, 0xff7e, 0xff64, 0xff59, 0xff4c,
+ 0xff3d, 0xff0f, 0xfee2, 0xfef1, 0xfef7, 0xfed3,
+ 0xfec3, 0xfec2, 0xfecb, 0xfee0, 0xfee6, 0xfefe,
+ 0xff33, 0xff50, 0xff65, 0xff82, 0xff7d, 0xff66,
+ 0xff4b, 0xff2f, 0xff35, 0xff2e, 0xff13, 0xff2b,
+ 0xff46, 0xff38, 0xff42, 0xff61, 0xff61, 0xff32,
+ 0xfef5, 0xfeee, 0xff02, 0xff04, 0xff13, 0xff19,
+ 0xfefe, 0xff01, 0xff0f, 0xfef0, 0xfedb, 0xfedb,
+ 0xfeda, 0xfee7, 0xfefc, 0xff0d, 0xff17, 0xff24,
+ 0xff45, 0xff59, 0xff53, 0xff5d, 0xff64, 0xff4f,
+ 0xff30, 0xff0d, 0xfef7, 0xfee7, 0xfed0, 0xfeb7,
+ 0xfe9b, 0xfe89, 0xfe8b, 0xfe8b, 0xfe8a, 0xfea6,
+ 0xfea5, 0xfe96, 0xfeb5, 0xfecf, 0xfed1, 0xfed5,
+ 0xfedf, 0xfeec, 0xfee2, 0xfebd, 0xfeaa, 0xfea3,
+ 0xfeab, 0xfeca, 0xfecc, 0xfeca, 0xfed0, 0xfec3,
+ 0xfecf, 0xfef0, 0xfede, 0xfece, 0xfef5, 0xff01,
+ 0xff0f, 0xff2a, 0xff17, 0xff0d, 0xff20, 0xff26,
+ 0xff15, 0xff13, 0xff29, 0xff35, 0xff2b, 0xff2d,
+ 0xff47, 0xff64, 0xff6e, 0xff5c, 0xff62, 0xff80,
+ 0xff96, 0xffb3, 0xffc5, 0xffae, 0xff8c, 0xff79,
+ 0xff57, 0xff49, 0xff44, 0xff22, 0xff1d, 0xff20,
+ 0xff1e, 0xff30, 0xff43, 0xff50, 0xff4f, 0xff31,
+ 0xff14, 0xff0d, 0xff02, 0xff12, 0xff2c, 0xff24,
+ 0xff27, 0xff51, 0xff77, 0xff91, 0xffae, 0xffb4,
+ 0xffcb, 0xffe7, 0xffd9, 0xffbe, 0xffa8, 0xff9e,
+ 0xff94, 0xff99, 0xff92, 0xff80, 0xff99, 0xffba,
+ 0xffba, 0xff96, 0xff82, 0xff95, 0xffac, 0xff9d,
+ 0xff83, 0xff81, 0xff8e, 0xffb4, 0xffdb, 0xffe8,
+ 0xffd7, 0xffcb, 0xffc0, 0xffae, 0xffa0, 0xff82,
+ 0xff86, 0xff9e, 0xffa3, 0xffa2, 0xffb6, 0xffd1,
+ 0xffbc, 0xffc3, 0xfff3, 0x0012, 0x001e, 0x0026,
+ 0x0036, 0x003b, 0x0034, 0x003d, 0x005d, 0x0065,
+ 0x006f, 0x007d, 0x0065, 0x004f, 0x0044, 0x002c,
+ 0x001a, 0x002c, 0x001d, 0x0006, 0x000f, 0xfffc,
+ 0x0001, 0x0019, 0x001e, 0x002a, 0x0052, 0x0081,
+ 0x009a, 0x00ac, 0x00b2, 0x00b3, 0x00a9, 0x0095,
+ 0x0084, 0x006b, 0x0044, 0x0032, 0x0043, 0x004f,
+ 0x0076, 0x00a4, 0x00b4, 0x00ae, 0x0095, 0x0065,
+ 0x002a, 0x000b, 0xffdc, 0xffc5, 0xffcf, 0xffc0,
+ 0xffe7, 0x0027, 0x0032, 0x0031, 0x0055, 0x0075,
+ 0x0080, 0x0080, 0x006c, 0x0074, 0x008d, 0x0083,
+ 0x0060, 0x0049, 0x002c, 0x0016, 0x000c, 0xfffa,
+ 0x000f, 0x002c, 0x003a, 0x0038, 0x0034, 0x0044,
+ 0x005d, 0x0069, 0x0037, 0x0026, 0x003c, 0x002f,
+ 0x002f, 0x002a, 0x0018, 0x002b, 0x0042, 0x0032,
+ 0x0046, 0x0065, 0x0064, 0x006a, 0x0065, 0x0051,
+ 0x004d, 0x0052, 0x004a, 0x005a, 0x0060, 0x004c,
+ 0x0043, 0x002d, 0x0044, 0x0054, 0x0043, 0x005e,
+ 0x0087, 0x00ad, 0x00b8, 0x00a4, 0x008d, 0x008d,
+ 0x008c, 0x0093, 0x00ae, 0x00a7, 0x009d, 0x00a9,
+ 0x00b2, 0x00d0, 0x00fa, 0x00de, 0x00b6, 0x00b5,
+ 0x0094, 0x0083, 0x008f, 0x0095, 0x0081, 0x0075,
+ 0x0087, 0x0096, 0x00c5, 0x00e6, 0x00f8, 0x010c,
+ 0x0110, 0x0118, 0x0108, 0x00e7, 0x00d4, 0x00cc,
+ 0x00c8, 0x00d7, 0x00cd, 0x00b6, 0x00cc, 0x00d8,
+ 0x00cd, 0x00e3, 0x00fe, 0x00e9, 0x00e1, 0x00ce,
+ 0x00aa, 0x00b1, 0x007a, 0x0047, 0x0060, 0x0071,
+ 0x0077, 0x008f, 0x00a6, 0x009e, 0x00b8, 0x00d7,
+ 0x00cd, 0x00c6, 0x00c5, 0x00bd, 0x00bb, 0x00bb,
+ 0x0097, 0x007d, 0x007a, 0x0063, 0x0053, 0x0071,
+ 0x0077, 0x0052, 0x0050, 0x0042, 0x004b, 0x005e,
+ 0x0061, 0x008b, 0x0087, 0x0072, 0x0098, 0x00bf,
+ 0x00be, 0x00ca, 0x00c9, 0x00a5, 0x00c1, 0x00ce,
+ 0x00c1, 0x00fb, 0x011e, 0x00fc, 0x00f0, 0x00c9,
+ 0x0084, 0x0086, 0x0089, 0x007d, 0x008b, 0x009e,
+ 0x00a7, 0x009d, 0x0083, 0x0076, 0x00bc, 0x00dc,
+ 0x00d3, 0x00fc, 0x0100, 0x0107, 0x0126, 0x0118,
+ 0x00fb, 0x0104, 0x00f1, 0x00ce, 0x00ee, 0x00f9,
+ 0x00e3, 0x00e3, 0x00d9, 0x00c6, 0x00dd, 0x00da,
+ 0x00c1, 0x00d1, 0x00de, 0x0106, 0x0128, 0x0127,
+ 0x010c, 0x00e7, 0x00c7, 0x008f, 0x0082, 0x0080,
+ 0x0084, 0x00a4, 0x00a8, 0x00ac, 0x00c3, 0x00e0,
+ 0x00f8, 0x0115, 0x00ff, 0x00c3, 0x00a0, 0x008d,
+ 0x00a6, 0x00d4, 0x00cb, 0x00bd, 0x00f5, 0x0101,
+ 0x00fe, 0x0101, 0x00b9, 0x0097, 0x007f, 0x0047,
+ 0x002a, 0x0031, 0x0044, 0x005d, 0x0086, 0x0099,
+ 0x00ce, 0x00fa, 0x00f3, 0x00e5, 0x00c2, 0x00ad,
+ 0x00bc, 0x00c5, 0x00ba, 0x00a8, 0x007b, 0x0051,
+ 0x0034, 0x0032, 0x0055, 0x005a, 0x0068, 0x0068,
+ 0x0069, 0x0085, 0x0097, 0x0099, 0x0084, 0x0090,
+ 0x0094, 0x0091, 0x00a3, 0x00a1, 0x0097, 0x008c,
+ 0x0084, 0x0065, 0x0064, 0x0089, 0x0082, 0x005f,
+ 0x004c, 0x0037, 0x0039, 0x0068, 0x006b, 0x005d,
+ 0x0056, 0x0061, 0x0073, 0x005e, 0x0065, 0x005e,
+ 0x005b, 0x0075, 0x007d, 0x007f, 0x00a1, 0x00ce,
+ 0x00bb, 0x00b5, 0x00aa, 0x0095, 0x00cb, 0x00e7,
+ 0x00c5, 0x00b2, 0x00a3, 0x0091, 0x009c, 0x0085,
+ 0x0071, 0x0084, 0x008e, 0x0092, 0x006b, 0x003f,
+ 0x0014, 0xfffc, 0x0006, 0x0014, 0xffff, 0xffc8,
+ 0xffd4, 0xffd2, 0xffc8, 0xffe3, 0xffd1, 0xffc9,
+ 0xffd3, 0xffb8, 0xff9a, 0xffa9, 0xffb2, 0xffc2,
+ 0xffe9, 0xffe8, 0xffce, 0xffc0, 0xffc9, 0xffca,
+ 0xffc4, 0xffa4, 0xff97, 0xff90, 0xff5b, 0xff50,
+ 0xff3e, 0xff32, 0xff49, 0xff53, 0xff59, 0xff49,
+ 0xff24, 0xfefb, 0xff05, 0xff15, 0xff1b, 0xff41,
+ 0xff5d, 0xff73, 0xff77, 0xff69, 0xff79, 0xff95,
+ 0xff78, 0xff5e, 0xff4a, 0xff1d, 0xff0f, 0xff08,
+ 0xff08, 0xfee3, 0xfebf, 0xfec2, 0xfec9, 0xfefd,
+ 0xff2c, 0xff3b, 0xff42, 0xff5b, 0xff60, 0xff5d,
+ 0xff6d, 0xff27, 0xfef5, 0xff25, 0xff57, 0xff7f,
+ 0xff9b, 0xff9b, 0xffb9, 0xffcc, 0xffb0, 0xffcf,
+ 0xfff7, 0x001e, 0x004b, 0x004d, 0x004a, 0x0048,
+ 0x0039, 0x0018, 0x0015, 0xfffe, 0xffed, 0x0010,
+ 0xfffc, 0xffd2, 0xffa9, 0xff89, 0xff7f, 0xff70,
+ 0xff56, 0xff2e, 0xff0b, 0xfee4, 0xfec4, 0xfecc,
+ 0xfecc, 0xfe85, 0xfe6c, 0xfe7b, 0xfe59, 0xfe4e,
+ 0xfe37, 0xfe22, 0xfe2f, 0xfe30, 0xfe1b, 0xfe23,
+ 0xfe2b, 0xfe00, 0xfe00, 0xfde4, 0xfdbf, 0xfdd0,
+ 0xfdaa, 0xfd8d, 0xfd83, 0xfd4d, 0xfd43, 0xfd6f,
+ 0xfd70, 0xfd87, 0xfdc6, 0xfddd, 0xfe01, 0xfe3e,
+ 0xfe7c, 0xfeb2, 0xfef8, 0xff1a, 0xff21, 0xff3d,
+ 0xff40, 0xff3c, 0xff37, 0xff4f, 0xff4f, 0xff3a,
+ 0xff5a, 0xff72, 0xff91, 0xff9b, 0xff96, 0xffb1,
+ 0xffcb, 0xfff6, 0x0035, 0x0051, 0x0058, 0x0073,
+ 0x0068, 0x0061, 0x006a, 0x0054, 0x005e, 0x0080,
+ 0x006e, 0x004f, 0x006a, 0x0054, 0x003b, 0x003c,
+ 0x0010, 0x0016, 0x002a, 0x0038, 0x0051, 0x004b,
+ 0x002c, 0x0029, 0x0046, 0x0046, 0x004c, 0x0047,
+ 0x0026, 0x0002, 0xffd7, 0xffab, 0xff88, 0xff55,
+ 0xff08, 0xfece, 0xfead, 0xfed1, 0xfef6, 0xfeef,
+ 0xfeeb, 0xfeba, 0xfe8d, 0xfe75, 0xfe58, 0xfe39,
+ 0xfe42, 0xfe69, 0xfe6f, 0xfe88, 0xfe8f, 0xfe90,
+ 0xfea7, 0xfe9e, 0xfe91, 0xfe89, 0xfe7d, 0xfe84,
+ 0xfe83, 0xfe62, 0xfe6d, 0xfe89, 0xfe98, 0xfeaa,
+ 0xfe9d, 0xfe98, 0xfe96, 0xfe9a, 0xfeac, 0xfeda,
+ 0xff06, 0xff33, 0xff78, 0xff76, 0xff76, 0xff7c,
+ 0xff5c, 0xff55, 0xff4e, 0xff3e, 0xff40, 0xff51,
+ 0xff42, 0xff1f, 0xff1e, 0xff45, 0xff4e, 0xff4a,
+ 0xff85, 0xffbf, 0xffeb, 0x0010, 0x0023, 0x0030,
+ 0x0068, 0x00b1, 0x00d7, 0x0105, 0x0100, 0x00f7,
+ 0x011a, 0x012e, 0x0128, 0x00f3, 0x00de, 0x00e5,
+ 0x00de, 0x00f6, 0x0120, 0x011d, 0x0108, 0x010b,
+ 0x010d, 0x0130, 0x015e, 0x0174, 0x0184, 0x019c,
+ 0x019e, 0x018e, 0x0193, 0x0186, 0x0178, 0x0162,
+ 0x015d, 0x0165, 0x014f, 0x013a, 0x00f3, 0x00b5,
+ 0x00a1, 0x0092, 0x00a9, 0x00b8, 0x0087, 0x0054,
+ 0x0061, 0x0067, 0x0065, 0x007a, 0x008c, 0x008e,
+ 0x0078, 0x0052, 0x0029, 0x0000, 0xffca, 0xffb8,
+ 0xffb9, 0xffd4, 0x0005, 0xfff2, 0xffe4, 0xffdf,
+ 0xffb8, 0xff92, 0xff9c, 0xffd3, 0xffeb, 0xffe7,
+ 0xffdd, 0xffe8, 0xfff6, 0xfff5, 0xfff0, 0xffd6,
+ 0xffc3, 0xffca, 0xffcd, 0xffba, 0xffa4, 0xff80,
+ 0xff7b, 0xff9a, 0xff98, 0xff8b, 0xff7d, 0xff72,
+ 0xff64, 0xff7c, 0xffa2, 0xff87, 0xff77, 0xff84,
+ 0xff9b, 0xffa4, 0xff92, 0xff72, 0xff5d, 0xff69,
+ 0xff66, 0xff79, 0xffb5, 0xffe0, 0x0000, 0x002f,
+ 0x004c, 0x006e, 0x0094, 0x0098, 0x00c7, 0x00e4,
+ 0x00b8, 0x00b3, 0x00e2, 0x00f1, 0x00f9, 0x0120,
+ 0x0128, 0x013e, 0x0146, 0x012a, 0x013b, 0x0114,
+ 0x00d6, 0x00ef, 0x0104, 0x0108, 0x0137, 0x0140,
+ 0x0129, 0x0127, 0x00f6, 0x00e1, 0x0119, 0x0142,
+ 0x015c, 0x016f, 0x014b, 0x0132, 0x013b, 0x0128,
+ 0x0138, 0x013e, 0x012f, 0x0144, 0x013e, 0x013c,
+ 0x0158, 0x016f, 0x0179, 0x0180, 0x018f, 0x01af,
+ 0x01c4, 0x01ad, 0x019f, 0x01a0, 0x019e, 0x01a1,
+ 0x019a, 0x0187, 0x016c, 0x014d, 0x0149, 0x0162,
+ 0x0158, 0x0149, 0x0143, 0x013c, 0x014d, 0x015e,
+ 0x016e, 0x0151, 0x011d, 0x0112, 0x0104, 0x00e9,
+ 0x00e8, 0x00fa, 0x00f5, 0x00e6, 0x00cf, 0x00b1,
+ 0x00a9, 0x00a0, 0x008f, 0x008e, 0x00a3, 0x00ab,
+ 0x0099, 0x0084, 0x0069, 0x003e, 0x0037, 0x0058,
+ 0x0065, 0x00a3, 0x00ed, 0x00f6, 0x00fb, 0x00d3,
+ 0x0071, 0x0031, 0x0020, 0x0014, 0x0027, 0x0059,
+ 0x0095, 0x00d9, 0x00ef, 0x00f1, 0x0105, 0x0114,
+ 0x012e, 0x0137, 0x0124, 0x0134, 0x0150, 0x0158,
+ 0x0176, 0x0181, 0x018a, 0x01a6, 0x01a8, 0x01ca,
+ 0x01f5, 0x01eb, 0x01f5, 0x0221, 0x021d, 0x0216,
+ 0x022b, 0x020b, 0x01ea, 0x01d8, 0x01b4, 0x0198,
+ 0x016d, 0x0152, 0x0172, 0x0183, 0x015d, 0x0127,
+ 0x00f0, 0x00e1, 0x00c5, 0x006a, 0x0044, 0x0053,
+ 0x003b, 0x0027, 0x002e, 0x0005, 0xffd8, 0xffcb,
+ 0xffb1, 0xffa0, 0xff6d, 0xff25, 0xff24, 0xff27,
+ 0xfef4, 0xfec5, 0xfeac, 0xfe9f, 0xfed9, 0xff3e,
+ 0xff7b, 0xff81, 0xff55, 0xff21, 0xff08, 0xfef9,
+ 0xfef9, 0xff1e, 0xff36, 0xff35, 0xff21, 0xfef2,
+ 0xfeef, 0xff10, 0xff07, 0xfef6, 0xff1b, 0xff3a,
+ 0xff48, 0xff75, 0xff96, 0xffce, 0x0011, 0xfffe,
+ 0xfff2, 0x0034, 0x0041, 0x0030, 0x006b, 0x0099,
+ 0x009c, 0x00a3, 0x0089, 0x0069, 0x0055, 0x0032,
+ 0x003e, 0x0063, 0x0047, 0x0051, 0x0083, 0x0074,
+ 0x007f, 0x00b0, 0x00ba, 0x00b6, 0x00b2, 0x00b9,
+ 0x00f4, 0x010e, 0x00fc, 0x0133, 0x016d, 0x0177,
+ 0x019d, 0x0194, 0x0157, 0x0156, 0x0148, 0x0104,
+ 0x00f9, 0x00f3, 0x00c3, 0x00c8, 0x00ee, 0x00ff,
+ 0x0118, 0x012f, 0x0136, 0x014e, 0x0167, 0x0187,
+ 0x01a7, 0x0195, 0x0177, 0x0166, 0x0157, 0x0150,
+ 0x0125, 0x00dd, 0x00cb, 0x00c5, 0x009a, 0x008c,
+ 0x007f, 0x0054, 0x0032, 0x0005, 0xfff2, 0xfffa,
+ 0xffc2, 0xff89, 0xff8a, 0xff66, 0xff53, 0xff5f,
+ 0xff13, 0xfec7, 0xfeb4, 0xfe67, 0xfe10, 0xfdf9,
+ 0xfdf5, 0xfe02, 0xfdf1, 0xfdaf, 0xfd99, 0xfda8,
+ 0xfdb3, 0xfdce, 0xfdee, 0xfe21, 0xfe52, 0xfe5c,
+ 0xfe8c, 0xfec9, 0xfea8, 0xfe91, 0xfea4, 0xfe86,
+ 0xfe74, 0xfe7d, 0xfe7e, 0xfeb6, 0xfecf, 0xfe83,
+ 0xfe79, 0xfea2, 0xfe7e, 0xfe74, 0xfe87, 0xfe3f,
+ 0xfdf2, 0xfde3, 0xfdc9, 0xfdaa, 0xfd91, 0xfd62,
+ 0xfd61, 0xfd8e, 0xfda5, 0xfdbf, 0xfde8, 0xfdec,
+ 0xfdda, 0xfddc, 0xfe02, 0xfe4d, 0xfe8a, 0xfe9d,
+ 0xfea5, 0xfea2, 0xfea5, 0xfeb4, 0xfe9f, 0xfe8a,
+ 0xfea7, 0xfec0, 0xfed8, 0xff1b, 0xff5f, 0xff99,
+ 0xffbc, 0xffb4, 0xffc3, 0xffe0, 0xffc4, 0xffbd,
+ 0xffe3, 0xffdb, 0xffd3, 0xffdd, 0xffbf, 0xffaf,
+ 0xffb5, 0xffac, 0xffd2, 0x000c, 0x0017, 0x002c,
+ 0x004a, 0x0063, 0x00b1, 0x00f2, 0x0102, 0x012d,
+ 0x0130, 0x0109, 0x013a, 0x0171, 0x015e, 0x0154,
+ 0x0138, 0x00fe, 0x00fb, 0x00f8, 0x00d5, 0x00d4,
+ 0x00e1, 0x00e0, 0x00c6, 0x008e, 0x007d, 0x0077,
+ 0x003c, 0x0014, 0xfff5, 0xffad, 0xff86, 0xff5a,
+ 0xff08, 0xfedc, 0xfead, 0xfe7d, 0xfe8a, 0xfe82,
+ 0xfe5e, 0xfe4f, 0xfe19, 0xfdf2, 0xfdfe, 0xfde0,
+ 0xfdd2, 0xfde4, 0xfdb7, 0xfd91, 0xfd86, 0xfd61,
+ 0xfd5d, 0xfd55, 0xfd30, 0xfd36, 0xfd2d, 0xfd0f,
+ 0xfd27, 0xfd2f, 0xfd2a, 0xfd37, 0xfd09, 0xfce9,
+ 0xfcf5, 0xfcce, 0xfcd9, 0xfd26, 0xfd1d, 0xfcf8,
+ 0xfcef, 0xfccc, 0xfcd4, 0xfcfb, 0xfcfb, 0xfd1c,
+ 0xfd5e, 0xfd90, 0xfdc7, 0xfdfe, 0xfe2d, 0xfe5f,
+ 0xfe7e, 0xfe8e, 0xfe9a, 0xfea3, 0xfeb5, 0xfec0,
+ 0xfed5, 0xff04, 0xff12, 0xff06, 0xff16, 0xff27,
+ 0xff33, 0xff49, 0xff5a, 0xff87, 0xffd6, 0x000c,
+ 0x001c, 0x0037, 0x0074, 0x0091, 0x0074, 0x0076,
+ 0x00a1, 0x00ba, 0x00e6, 0x011c, 0x0138, 0x0163,
+ 0x018a, 0x0185, 0x0180, 0x0189, 0x019c, 0x019d,
+ 0x015d, 0x0118, 0x00f7, 0x00cb, 0x00b0, 0x00a9,
+ 0x008c, 0x007e, 0x0076, 0x0063, 0x0071, 0x0083,
+ 0x0088, 0x00a6, 0x00c3, 0x00df, 0x00e8, 0x00b2,
+ 0x0082, 0x0065, 0x0020, 0xffe2, 0xff97, 0xff19,
+ 0xfeb5, 0xfe54, 0xfde2, 0xfdbf, 0xfdad, 0xfd72,
+ 0xfd66, 0xfd7a, 0xfd85, 0xfd9e, 0xfdaf, 0xfdc0,
+ 0xfde5, 0xfdf6, 0xfe01, 0xfe14, 0xfe1d, 0xfe1f,
+ 0xfdfc, 0xfdcb, 0xfdd5, 0xfde7, 0xfde8, 0xfe04,
+ 0xfe04, 0xfdec, 0xfe09, 0xfe24, 0xfe21, 0xfe37,
+ 0xfe4d, 0xfe56, 0xfe5d, 0xfe3c, 0xfe12, 0xfe0b,
+ 0xfdfa, 0xfdd5, 0xfdc5, 0xfdbd, 0xfdbb, 0xfdd4,
+ 0xfdec, 0xfdef, 0xfe00, 0xfe1e, 0xfe26, 0xfe24,
+ 0xfe41, 0xfe7a, 0xfe95, 0xfe7f, 0xfe76, 0xfe8c,
+ 0xfe9a, 0xfeb9, 0xfee8, 0xfef5, 0xff0e, 0xff54,
+ 0xff8a, 0xffc4, 0x000b, 0x002e, 0x0060, 0x00a7,
+ 0x00c1, 0x00f5, 0x0146, 0x0156, 0x0172, 0x01b7,
+ 0x01b2, 0x019e, 0x01bd, 0x01bf, 0x01bb, 0x01d6,
+ 0x01d5, 0x01c6, 0x01c2, 0x01b7, 0x01bf, 0x01c8,
+ 0x01ce, 0x01f7, 0x0204, 0x01dc, 0x01c8, 0x01bc,
+ 0x01a6, 0x01b3, 0x01c6, 0x01cc, 0x01e9, 0x020f,
+ 0x0232, 0x024f, 0x0249, 0x0240, 0x0240, 0x022f,
+ 0x022f, 0x0239, 0x021b, 0x01e0, 0x0199, 0x0157,
+ 0x0136, 0x010a, 0x00d6, 0x00cc, 0x00ca, 0x00c1,
+ 0x00c6, 0x00a6, 0x006b, 0x0049, 0x0021, 0x0000,
+ 0x000f, 0x001c, 0x0015, 0x0017, 0x0014, 0x0014,
+ 0x0024, 0x001e, 0xfffd, 0xfff4, 0x000b, 0x0020,
+ 0x002c, 0x0038, 0x003c, 0x0032, 0x001c, 0x0005,
+ 0x0008, 0x000d, 0xfff2, 0xffd5, 0xffc2, 0xff9b,
+ 0xff75, 0xff5c, 0xff4a, 0xff65, 0xff8d, 0xff68,
+ 0xff2a, 0xff21, 0xff1e, 0xff13, 0xff33, 0xff63,
+ 0xff7a, 0xff74, 0xff52, 0xff2d, 0xff1e, 0xff10,
+ 0xff00, 0xfefc, 0xff07, 0xff20, 0xff2c, 0xff41,
+ 0xff8e, 0xffd4, 0xfff7, 0x0045, 0x0089, 0x0084,
+ 0x009e, 0x00d8, 0x00ef, 0x0123, 0x0176, 0x01ab,
+ 0x01d9, 0x01fe, 0x021c, 0x025a, 0x0291, 0x02b8,
+ 0x02ea, 0x0315, 0x0342, 0x035d, 0x0348, 0x0356,
+ 0x0387, 0x03a3, 0x03e8, 0x0443, 0x0469, 0x0487,
+ 0x0485, 0x0449, 0x043b, 0x044d, 0x0441, 0x044e,
+ 0x0464, 0x0457, 0x0441, 0x0405, 0x03b3, 0x0398,
+ 0x038d, 0x0377, 0x037d, 0x0381, 0x0358, 0x031b,
+ 0x02e9, 0x02ba, 0x0275, 0x022c, 0x01f1, 0x019e,
+ 0x013d, 0x0109, 0x00ed, 0x00c9, 0x009a, 0x004e,
+ 0x0003, 0xffe0, 0xffba, 0xff98, 0xffa9, 0xffc5,
+ 0xffc7, 0xffc2, 0xffad, 0xff9a, 0xffa0, 0xff99,
+ 0xff81, 0xff70, 0xff4b, 0xff30, 0xff3d, 0xff42,
+ 0xff55, 0xff7d, 0xff71, 0xff60, 0xff79, 0xff69,
+ 0xff47, 0xff4a, 0xff36, 0xff22, 0xff30, 0xff1d,
+ 0xff05, 0xff0d, 0xff0a, 0xff1e, 0xff4e, 0xff6a,
+ 0xff93, 0xffbe, 0xffcd, 0xfff0, 0x0000, 0xffdd,
+ 0xffd5, 0xffe5, 0xfff9, 0x0037, 0x006c, 0x0081,
+ 0x00bc, 0x00fa, 0x011f, 0x015e, 0x019c, 0x01cf,
+ 0x01f3, 0x01c7, 0x0183, 0x0185, 0x0194, 0x018f,
+ 0x01a4, 0x01c1, 0x01d7, 0x01e6, 0x01e0, 0x01eb,
+ 0x0202, 0x020a, 0x0231, 0x0260, 0x026c, 0x0286,
+ 0x029a, 0x0289, 0x02a2, 0x02cd, 0x02d1, 0x02e9,
+ 0x0300, 0x02ed, 0x02ec, 0x02f1, 0x02d8, 0x02d7,
+ 0x02e5, 0x02d5, 0x02aa, 0x0279, 0x0262, 0x026c,
+ 0x027f, 0x0299, 0x029d, 0x0273, 0x0247, 0x023b,
+ 0x0259, 0x0291, 0x02a2, 0x028e, 0x027c, 0x0254,
+ 0x0228, 0x0208, 0x01b4, 0x013b, 0x00e1, 0x0096,
+ 0x005f, 0x004a, 0x0026, 0xfff5, 0xffd8, 0xffc5,
+ 0xffad, 0xffa8, 0xffbe, 0xffdc, 0xfff6, 0xfff6,
+ 0xffce, 0xffa4, 0xff92, 0xff83, 0xff6e, 0xff32,
+ 0xfec9, 0xfe8e, 0xfe83, 0xfe56, 0xfe28, 0xfe22,
+ 0xfe13, 0xfdf8, 0xfddb, 0xfdb8, 0xfd93, 0xfd5d,
+ 0xfd38, 0xfd35, 0xfd25, 0xfd21, 0xfd2f, 0xfd10,
+ 0xfd12, 0xfd58, 0xfd77, 0xfd82, 0xfda2, 0xfd9c,
+ 0xfd8c, 0xfd88, 0xfd77, 0xfd7f, 0xfd8f, 0xfd82,
+ 0xfd81, 0xfd93, 0xfdb8, 0xfde6, 0xfdf2, 0xfe02,
+ 0xfe3a, 0xfe87, 0xfef5, 0xff4b, 0xff56, 0xff58,
+ 0xff58, 0xff4e, 0xff68, 0xff7e, 0xff9a, 0xffe7,
+ 0x0017, 0x0048, 0x00af, 0x00f3, 0x0134, 0x0196,
+ 0x01c5, 0x01fc, 0x0247, 0x0247, 0x0258, 0x0294,
+ 0x0292, 0x02ae, 0x0300, 0x031c, 0x0354, 0x03a5,
+ 0x03a4, 0x039c, 0x03ad, 0x03a5, 0x03aa, 0x03ad,
+ 0x0392, 0x0381, 0x0355, 0x0309, 0x02f9, 0x02fe,
+ 0x02da, 0x02aa, 0x025d, 0x020d, 0x01ee, 0x01cb,
+ 0x019b, 0x0183, 0x0168, 0x0131, 0x00ea, 0x009b,
+ 0x0064, 0x0038, 0xffdd, 0xff79, 0xff2e, 0xfede,
+ 0xfea3, 0xfe6d, 0xfe23, 0xfdf8, 0xfdd7, 0xfd97,
+ 0xfd6d, 0xfd5c, 0xfd2c, 0xfcf7, 0xfce4, 0xfcde,
+ 0xfce1, 0xfccd, 0xfc83, 0xfc27, 0xfbce, 0xfb8f,
+ 0xfb7b, 0xfb74, 0xfb6c, 0xfb6a, 0xfb5b, 0xfb1e,
+ 0xfad8, 0xfabe, 0xfabf, 0xfad2, 0xfafb, 0xfb21,
+ 0xfb4a, 0xfb6c, 0xfb6e, 0xfb77, 0xfbab, 0xfbd4,
+ 0xfbfb, 0xfc55, 0xfc99, 0xfcaf, 0xfccd, 0xfcea,
+ 0xfd09, 0xfd41, 0xfd89, 0xfdca, 0xfdf3, 0xfe0f,
+ 0xfe24, 0xfe40, 0xfe92, 0xff22, 0xffcd, 0x006d,
+ 0x00e1, 0x0111, 0x0136, 0x0168, 0x018c, 0x01d5,
+ 0x0232, 0x0272, 0x02ac, 0x02c8, 0x02c9, 0x02d6,
+ 0x02e0, 0x02ec, 0x0304, 0x0325, 0x0352, 0x0371,
+ 0x0371, 0x038d, 0x03db, 0x0423, 0x0466, 0x048b,
+ 0x0481, 0x0492, 0x0492, 0x0464, 0x0447, 0x0423,
+ 0x03ed, 0x03b1, 0x0350, 0x02e2, 0x0286, 0x0221,
+ 0x01bf, 0x0180, 0x013d, 0x0114, 0x011b, 0x010a,
+ 0x00f6, 0x00f7, 0x00fe, 0x0114, 0x0106, 0x00cf,
+ 0x0095, 0x003d, 0xffc3, 0xff59, 0xff1b, 0xfee1,
+ 0xfe99, 0xfe3a, 0xfdcc, 0xfd70, 0xfd14, 0xfcc2,
+ 0xfc82, 0xfc47, 0xfc24, 0xfbf5, 0xfbbc, 0xfba6,
+ 0xfb9e, 0xfb94, 0xfb96, 0xfb9d, 0xfb9e, 0xfba5,
+ 0xfba5, 0xfb74, 0xfb4c, 0xfb4c, 0xfb47, 0xfb2d,
+ 0xfaf5, 0xfabe, 0xfa9c, 0xfa7c, 0xfa68, 0xfa75,
+ 0xfaa6, 0xfad6, 0xfafa, 0xfb14, 0xfb29, 0xfb56,
+ 0xfb6f, 0xfb8c, 0xfbf4, 0xfc53, 0xfc6a, 0xfc7d,
+ 0xfcb3, 0xfcf9, 0xfd4a, 0xfd9e, 0xfde0, 0xfe2d,
+ 0xfe77, 0xfea7, 0xfee4, 0xff31, 0xffb5, 0x005f,
+ 0x00d1, 0x011a, 0x0158, 0x018a, 0x01ae, 0x01b0,
+ 0x01b1, 0x01db, 0x0212, 0x023e, 0x0284, 0x02c4,
+ 0x02dc, 0x0315, 0x0351, 0x037d, 0x03d6, 0x0426,
+ 0x0459, 0x0484, 0x049c, 0x04ab, 0x04a5, 0x0484,
+ 0x0469, 0x047c, 0x04aa, 0x04ba, 0x049f, 0x0484,
+ 0x0480, 0x0460, 0x043d, 0x044c, 0x043f, 0x0422,
+ 0x041a, 0x03fb, 0x03f7, 0x0408, 0x03f0, 0x03d8,
+ 0x03cc, 0x039b, 0x034e, 0x0306, 0x02a8, 0x0247,
+ 0x01f7, 0x0199, 0x0142, 0x00e6, 0x0082, 0x002f,
+ 0xffca, 0xff76, 0xff4a, 0xff2d, 0xff11, 0xfecb,
+ 0xfe6f, 0xfe3b, 0xfe10, 0xfdcc, 0xfdad, 0xfdbc,
+ 0xfd95, 0xfd52, 0xfd25, 0xfcf1, 0xfcd1, 0xfcb8,
+ 0xfc88, 0xfc5d, 0xfc41, 0xfc2b, 0xfc0d, 0xfbed,
+ 0xfbc9, 0xfbb1, 0xfbb4, 0xfb8b, 0xfb3b, 0xfafa,
+ 0xfacb, 0xfacd, 0xfb04, 0xfb4d, 0xfb86, 0xfb9c,
+ 0xfb98, 0xfb85, 0xfb70, 0xfb5d, 0xfb77, 0xfbb6,
+ 0xfbe8, 0xfc41, 0xfca0, 0xfcd5, 0xfd09, 0xfd2b,
+ 0xfd5d, 0xfdc4, 0xfe2c, 0xfe9c, 0xff22, 0xff7a,
+ 0xff9f, 0xffe8, 0x003e, 0x0091, 0x0109, 0x015c,
+ 0x017d, 0x018c, 0x018a, 0x01b9, 0x0200, 0x0235,
+ 0x0282, 0x02c1, 0x02c5, 0x02c5, 0x02ef, 0x0323,
+ 0x0360, 0x03aa, 0x03d1, 0x03f9, 0x042a, 0x044a,
+ 0x046b, 0x046c, 0x045d, 0x0463, 0x0479, 0x04ab,
+ 0x04ea, 0x0516, 0x0522, 0x0533, 0x054e, 0x054e,
+ 0x0539, 0x04ee, 0x048f, 0x045b, 0x041b, 0x03dc,
+ 0x03aa, 0x0357, 0x0306, 0x02d2, 0x029b, 0x0264,
+ 0x023b, 0x0204, 0x01d7, 0x01c4, 0x018a, 0x0163,
+ 0x0142, 0x00dd, 0x0091, 0x005b, 0x0021, 0x0008,
+ 0xffcc, 0xff65, 0xff08, 0xfe8d, 0xfe02, 0xfdb7,
+ 0xfd87, 0xfd5b, 0xfd57, 0xfd28, 0xfcf3, 0xfcfd,
+ 0xfcf3, 0xfcf4, 0xfcfc, 0xfcd5, 0xfcc6, 0xfca5,
+ 0xfc57, 0xfc28, 0xfc09, 0xfbe4, 0xfbd7, 0xfbbf,
+ 0xfb88, 0xfb6d, 0xfb59, 0xfb54, 0xfb93, 0xfbbe,
+ 0xfbe9, 0xfc2f, 0xfc3a, 0xfc41, 0xfc61, 0xfc80,
+ 0xfcb6, 0xfcec, 0xfd29, 0xfd67, 0xfd7c, 0xfd7c,
+ 0xfda2, 0xfdd2, 0xfde3, 0xfe09, 0xfe3d, 0xfe7b,
+ 0xfeb1, 0xfeb7, 0xfee6, 0xff36, 0xff70, 0xffd8,
+ 0x0052, 0x00b1, 0x0107, 0x0156, 0x01a0, 0x01db,
+ 0x0219, 0x026d, 0x02cb, 0x0302, 0x0321, 0x035b,
+ 0x037a, 0x038b, 0x03be, 0x03fb, 0x0444, 0x046d,
+ 0x047c, 0x0482, 0x0458, 0x042c, 0x0421, 0x0429,
+ 0x043d, 0x0453, 0x0467, 0x0467, 0x0465, 0x0468,
+ 0x046d, 0x045d, 0x042d, 0x041a, 0x03fa, 0x03a1,
+ 0x035e, 0x0336, 0x031b, 0x02f4, 0x02b9, 0x028e,
+ 0x0258, 0x021a, 0x01ed, 0x01d0, 0x01b7, 0x01a1,
+ 0x01a8, 0x01a5, 0x018b, 0x0171, 0x0157, 0x014b,
+ 0x0126, 0x00ed, 0x00b8, 0x006e, 0x0026, 0xffd6,
+ 0xff81, 0xff28, 0xfec0, 0xfe65, 0xfe10, 0xfddd,
+ 0xfdca, 0xfdac, 0xfd98, 0xfd90, 0xfd98, 0xfda5,
+ 0xfda7, 0xfd9f, 0xfd87, 0xfd73, 0xfd67, 0xfd77,
+ 0xfd92, 0xfd7b, 0xfd6b, 0xfd64, 0xfd40, 0xfd22,
+ 0xfcfb, 0xfce3, 0xfce7, 0xfcf8, 0xfd17, 0xfd1c,
+ 0xfceb, 0xfcad, 0xfca9, 0xfcbf, 0xfcb7, 0xfcac,
+ 0xfc9a, 0xfc9f, 0xfcbb, 0xfcb5, 0xfcb4, 0xfcbc,
+ 0xfce0, 0xfd39, 0xfd9a, 0xfdf9, 0xfe56, 0xfeb2,
+ 0xfef8, 0xff34, 0xff8b, 0xffe3, 0x0043, 0x009f,
+ 0x00e5, 0x0118, 0x011b, 0x0117, 0x012d, 0x014f,
+ 0x0173, 0x0191, 0x01b9, 0x01d2, 0x01eb, 0x0208,
+ 0x01f5, 0x01e2, 0x01e0, 0x01df, 0x01e8, 0x01cd,
+ 0x01b0, 0x01bc, 0x01d0, 0x01dd, 0x01fc, 0x021b,
+ 0x021d, 0x0216, 0x01e6, 0x01b6, 0x01d0, 0x01d6,
+ 0x01cc, 0x01ce, 0x01a6, 0x018c, 0x016f, 0x013e,
+ 0x0148, 0x015a, 0x0132, 0x0106, 0x00e5, 0x00b0,
+ 0x0093, 0x0071, 0x0031, 0x0026, 0x0008, 0xffcb,
+ 0xffb0, 0xff62, 0xff1a, 0xff1d, 0xff1b, 0xff28,
+ 0xff44, 0xff42, 0xff2c, 0xfefc, 0xfea9, 0xfe84,
+ 0xfe91, 0xfe81, 0xfe97, 0xfebb, 0xfe9a, 0xfe75,
+ 0xfe3f, 0xfe15, 0xfe21, 0xfe02, 0xfdd6, 0xfdd4,
+ 0xfdd3, 0xfdca, 0xfdb7, 0xfd90, 0xfd80, 0xfdab,
+ 0xfdbb, 0xfda2, 0xfd8a, 0xfd63, 0xfd6b, 0xfd8c,
+ 0xfd8d, 0xfda1, 0xfdb6, 0xfdbd, 0xfdd0, 0xfde3,
+ 0xfde8, 0xfde3, 0xfde0, 0xfdc9, 0xfdb3, 0xfd9f,
+ 0xfd78, 0xfd76, 0xfd86, 0xfd93, 0xfdb7, 0xfdd2,
+ 0xfddf, 0xfde3, 0xfde7, 0xfdeb, 0xfdef, 0xfe17,
+ 0xfe6d, 0xfede, 0xff1d, 0xff21, 0xff3a, 0xff4a,
+ 0xff3e, 0xff3d, 0xff6a, 0xffcb, 0x0007, 0x0018,
+ 0x002c, 0x0032, 0x002e, 0x0032, 0x0045, 0x0044,
+ 0x003d, 0x004a, 0x005e, 0x0080, 0x008b, 0x0095,
+ 0x00b3, 0x00a8, 0x009b, 0x009e, 0x008f, 0x0083,
+ 0x0080, 0x007f, 0x0067, 0x003e, 0x0027, 0x001d,
+ 0x0008, 0xffdf, 0xffce, 0xffd0, 0xffc3, 0xffc2,
+ 0xffc3, 0xffd9, 0x0003, 0x0021, 0x0035, 0x0016,
+ 0xffe7, 0xffd4, 0xffa7, 0xff5b, 0xff22, 0xff22,
+ 0xff2c, 0xff18, 0xfeff, 0xfeec, 0xfed0, 0xfe9b,
+ 0xfe81, 0xfe7a, 0xfe32, 0xfddd, 0xfda2, 0xfd7e,
+ 0xfd76, 0xfd5a, 0xfd2e, 0xfd02, 0xfcdb, 0xfcc4,
+ 0xfcb7, 0xfcc1, 0xfce1, 0xfd13, 0xfd3e, 0xfd55,
+ 0xfd8f, 0xfdce, 0xfdd8, 0xfdb1, 0xfd95, 0xfda9,
+ 0xfdaa, 0xfd96, 0xfd81, 0xfd6f, 0xfd84, 0xfda6,
+ 0xfdbc, 0xfdc5, 0xfdd1, 0xfe00, 0xfe1e, 0xfe26,
+ 0xfe3b, 0xfe48, 0xfe3b, 0xfe26, 0xfe17, 0xfe07,
+ 0xfe12, 0xfe09, 0xfdd0, 0xfdc7, 0xfdc7, 0xfdbb,
+ 0xfdf7, 0xfe59, 0xfec2, 0xff21, 0xff51, 0xff6c,
+ 0xff90, 0xffc6, 0x000c, 0x004e, 0x006f, 0x0086,
+ 0x0099, 0x008a, 0x0092, 0x00a7, 0x00b6, 0x00df,
+ 0x00d1, 0x00a8, 0x009e, 0x0073, 0x0045, 0x0030,
+ 0x0014, 0x0003, 0xfff7, 0xffc5, 0xffaa, 0xffd8,
+ 0x0003, 0x0037, 0x0080, 0x00ae, 0x00f2, 0x0136,
+ 0x0162, 0x01a4, 0x01af, 0x0187, 0x017f, 0x017f,
+ 0x0166, 0x0149, 0x0132, 0x011f, 0x0127, 0x011e,
+ 0x00f7, 0x00e1, 0x00c3, 0x00bb, 0x00cf, 0x00bb,
+ 0x00a2, 0x008b, 0x0063, 0x0051, 0x0050, 0x003c,
+ 0x0028, 0x001f, 0xfff8, 0xffca, 0xff9e, 0xff49,
+ 0xff12, 0xfef3, 0xfebe, 0xfec0, 0xfee3, 0xfedc,
+ 0xfec3, 0xfeba, 0xfec9, 0xfedf, 0xfedb, 0xfeac,
+ 0xfe7c, 0xfe50, 0xfe3c, 0xfe5f, 0xfe58, 0xfe23,
+ 0xfe06, 0xfde7, 0xfdde, 0xfddb, 0xfdb6, 0xfda2,
+ 0xfd94, 0xfd6e, 0xfd66, 0xfd79, 0xfd60, 0xfd53,
+ 0xfd8a, 0xfdd1, 0xfe1b, 0xfe45, 0xfe69, 0xfecf,
+ 0xff25, 0xff56, 0xff8f, 0xffad, 0xffb5, 0xffc8,
+ 0xffdc, 0xfff3, 0x000b, 0x0016, 0x001d, 0x0034,
+ 0x0045, 0x0068, 0x0098, 0x00b2, 0x00d5, 0x00fd,
+ 0x0131, 0x018c, 0x01e7, 0x0252, 0x02d1, 0x0322,
+ 0x0343, 0x0356, 0x035b, 0x0365, 0x039f, 0x03d3,
+ 0x03d0, 0x03c4, 0x03b0, 0x039b, 0x0392, 0x036c,
+ 0x0339, 0x0330, 0x0333, 0x030c, 0x02f0, 0x02f2,
+ 0x02cd, 0x02ba, 0x02db, 0x02db, 0x02c8, 0x02d5,
+ 0x02e8, 0x02dc, 0x02ba, 0x02a9, 0x02a0, 0x0280,
+ 0x024a, 0x021c, 0x01f2, 0x01cf, 0x01b4, 0x0184,
+ 0x016d, 0x0177, 0x0153, 0x012d, 0x0134, 0x0145,
+ 0x015c, 0x015b, 0x0139, 0x0121, 0x010e, 0x00d1,
+ 0x008e, 0x0072, 0x006c, 0x006e, 0x0065, 0x0055,
+ 0x004c, 0x0026, 0xffea, 0xff97, 0xff3a, 0xff0b,
+ 0xfef7, 0xfefa, 0xff25, 0xff36, 0xff19, 0xff1b,
+ 0xff51, 0xff88, 0xffa3, 0xffa1, 0xffab, 0xffdf,
+ 0x000a, 0x0022, 0x0036, 0x003e, 0x005a, 0x0075,
+ 0x006e, 0x0064, 0x0056, 0x004c, 0x0066, 0x0086,
+ 0x0090, 0x0098, 0x00a4, 0x00a7, 0x00b1, 0x00cc,
+ 0x00f5, 0x012c, 0x0156, 0x0180, 0x01a8, 0x01b0,
+ 0x01b8, 0x01e0, 0x021a, 0x0237, 0x022d, 0x022e,
+ 0x0245, 0x025c, 0x028a, 0x02e5, 0x0358, 0x03c2,
+ 0x0406, 0x0403, 0x03df, 0x03d3, 0x03d1, 0x03f8,
+ 0x045e, 0x04b5, 0x04da, 0x04dd, 0x04c5, 0x04b2,
+ 0x04b4, 0x0495, 0x0457, 0x0430, 0x03f4, 0x039d,
+ 0x0363, 0x0333, 0x0315, 0x0309, 0x02e3, 0x02cc,
+ 0x02db, 0x02c7, 0x0293, 0x026f, 0x024c, 0x0246,
+ 0x0276, 0x0291, 0x028a, 0x0284, 0x0282, 0x0288,
+ 0x0268, 0x0219, 0x01da, 0x01b7, 0x0193, 0x0166,
+ 0x0134, 0x010c, 0x00e9, 0x00ba, 0x0087, 0x0053,
+ 0x0015, 0xffea, 0xffcc, 0xffa2, 0xff92, 0xff83,
+ 0xff58, 0xff42, 0xff36, 0xff15, 0xfef9, 0xfee5,
+ 0xfed9, 0xfee5, 0xfef0, 0xfeed, 0xfee5, 0xfec6,
+ 0xfeb5, 0xfed3, 0xfec7, 0xfe95, 0xfea4, 0xfec0,
+ 0xfe98, 0xfe68, 0xfe58, 0xfe34, 0xfe11, 0xfe16,
+ 0xfe0b, 0xfdde, 0xfdaf, 0xfd8b, 0xfd97, 0xfdc7,
+ 0xfddf, 0xfdf1, 0xfe29, 0xfe63, 0xfe83, 0xfe98,
+ 0xfeb1, 0xfed7, 0xfedd, 0xfeb3, 0xfead, 0xfec7,
+ 0xfece, 0xfee8, 0xff15, 0xff3c, 0xff74, 0xff9a,
+ 0xff98, 0xffaf, 0xffdf, 0xfffb, 0x001e, 0x0059,
+ 0x008d, 0x00a6, 0x00a0, 0x00b0, 0x00de, 0x00f3,
+ 0x0106, 0x013e, 0x015f, 0x0148, 0x0148, 0x017f,
+ 0x01a7, 0x01a3, 0x01a1, 0x01b9, 0x01dc, 0x0202,
+ 0x022f, 0x0267, 0x02a2, 0x02d6, 0x0314, 0x034e,
+ 0x0359, 0x034c, 0x0347, 0x0336, 0x0322, 0x0319,
+ 0x030a, 0x02f5, 0x02dd, 0x02cc, 0x02d7, 0x02e0,
+ 0x02c1, 0x0292, 0x025c, 0x0229, 0x0215, 0x01fc,
+ 0x01d4, 0x01c5, 0x01b1, 0x016e, 0x0123, 0x00ee,
+ 0x00bf, 0x0092, 0x0070, 0x004a, 0x0007, 0xffa5,
+ 0xff39, 0xfece, 0xfe5d, 0xfdeb, 0xfd9d, 0xfd8b,
+ 0xfd7a, 0xfd2d, 0xfcf2, 0xfcff, 0xfcf2, 0xfc9d,
+ 0xfc52, 0xfc2c, 0xfbf6, 0xfbc2, 0xfbc8, 0xfbe8,
+ 0xfbfb, 0xfc0d, 0xfc08, 0xfbd7, 0xfba6, 0xfb7f,
+ 0xfb47, 0xfb1d, 0xfb18, 0xfb25, 0xfb3f, 0xfb47,
+ 0xfb33, 0xfb32, 0xfb3e, 0xfb34, 0xfb2b, 0xfb26,
+ 0xfb2d, 0xfb6a, 0xfbbb, 0xfbf0, 0xfc2a, 0xfc6b,
+ 0xfca7, 0xfce9, 0xfcfe, 0xfce4, 0xfcf8, 0xfd2b,
+ 0xfd3f, 0xfd57, 0xfd7c, 0xfd98, 0xfdbc, 0xfdc5,
+ 0xfda8, 0xfdac, 0xfdcb, 0xfdef, 0xfe4a, 0xfec1,
+ 0xff09, 0xff1f, 0xff1c, 0xff37, 0xff8d, 0xfff6,
+ 0x007d, 0x010e, 0x0144, 0x0137, 0x0147, 0x0162,
+ 0x0184, 0x01bf, 0x01f8, 0x0229, 0x0245, 0x0247,
+ 0x025b, 0x026c, 0x0271, 0x02a5, 0x02dc, 0x02ea,
+ 0x030e, 0x0345, 0x0374, 0x03b2, 0x03c9, 0x03a1,
+ 0x0385, 0x0381, 0x036a, 0x0331, 0x02e0, 0x02a7,
+ 0x027d, 0x0238, 0x01f1, 0x01b5, 0x0177, 0x014f,
+ 0x0134, 0x0119, 0x011d, 0x0119, 0x00f6, 0x00dc,
+ 0x00a7, 0x003f, 0xffe2, 0xffa9, 0xff87, 0xff6c,
+ 0xff41, 0xff1e, 0xff05, 0xfec6, 0xfe75, 0xfe43,
+ 0xfe15, 0xfdca, 0xfd5c, 0xfce0, 0xfc88, 0xfc64,
+ 0xfc54, 0xfc3c, 0xfc15, 0xfbf1, 0xfbdf, 0xfbcd,
+ 0xfbb1, 0xfb9b, 0xfb8d, 0xfb72, 0xfb4a, 0xfb3d,
+ 0xfb4e, 0xfb41, 0xfb05, 0xfac4, 0xfaa5, 0xfaae,
+ 0xfab0, 0xfa62, 0xf9dc, 0xf97d, 0xf97b, 0xf9b2,
+ 0xf9f8, 0xfa4e, 0xfaa7, 0xfadc, 0xfb0c, 0xfb65,
+ 0xfbd5, 0xfc49, 0xfca7, 0xfcd4, 0xfcf8, 0xfd21,
+ 0xfd39, 0xfd57, 0xfd6d, 0xfd76, 0xfdb6, 0xfe10,
+ 0xfe43, 0xfe81, 0xfec7, 0xfeef, 0xff2f, 0xff8c,
+ 0xffda, 0x0017, 0x0026, 0x0024, 0x005c, 0x008e,
+ 0x00aa, 0x011a, 0x01ac, 0x0205, 0x0242, 0x0271,
+ 0x0297, 0x02c3, 0x02d1, 0x02d9, 0x02fc, 0x030d,
+ 0x031f, 0x034f, 0x036d, 0x0382, 0x038a, 0x036c,
+ 0x037d, 0x03bb, 0x03c1, 0x03bd, 0x03db, 0x03e1,
+ 0x03d1, 0x03af, 0x036d, 0x0344, 0x0331, 0x0314,
+ 0x0314, 0x031c, 0x0314, 0x030a, 0x02d1, 0x0275,
+ 0x0247, 0x021a, 0x01c2, 0x0182, 0x016d, 0x015a,
+ 0x0132, 0x010a, 0x00fe, 0x00da, 0x0090, 0x007f,
+ 0x0097, 0x008e, 0x0079, 0x0053, 0x0012, 0xffd3,
+ 0xff71, 0xfee9, 0xfe6c, 0xfdeb, 0xfd6f, 0xfd0d,
+ 0xfca0, 0xfc50, 0xfc34, 0xfbf5, 0xfbac, 0xfb98,
+ 0xfb7b, 0xfb40, 0xfb1d, 0xfb17, 0xfb19, 0xfb0f,
+ 0xfaf5, 0xfad4, 0xfa9e, 0xfa66, 0xfa3a, 0xfa05,
+ 0xf9e7, 0xf9fd, 0xfa22, 0xfa5f, 0xfabe, 0xfb10,
+ 0xfb41, 0xfb5d, 0xfb7d, 0xfba5, 0xfb8b, 0xfb37,
+ 0xfb2a, 0xfb6c, 0xfbb7, 0xfc09, 0xfc48, 0xfc5e,
+ 0xfc89, 0xfcdf, 0xfd2b, 0xfd5b, 0xfd94, 0xfdef,
+ 0xfe42, 0xfe7f, 0xfeca, 0xff00, 0xff03, 0xff29,
+ 0xff79, 0xffa3, 0xffcc, 0x0030, 0x00a3, 0x0105,
+ 0x016a, 0x01be, 0x01f6, 0x023c, 0x0294, 0x02d3,
+ 0x0315, 0x0386, 0x03fb, 0x0439, 0x0446, 0x0435,
+ 0x0431, 0x044e, 0x0460, 0x0446, 0x0423, 0x041d,
+ 0x0431, 0x043e, 0x0447, 0x0464, 0x046d, 0x0449,
+ 0x0437, 0x044b, 0x045e, 0x0472, 0x0493, 0x04a2,
+ 0x047b, 0x0420, 0x03cb, 0x03a4, 0x0388, 0x035a,
+ 0x031f, 0x02e5, 0x02be, 0x0298, 0x0269, 0x0252,
+ 0x023a, 0x020a, 0x01eb, 0x01b7, 0x014d, 0x00fd,
+ 0x00b1, 0x002e, 0xffd4, 0xffa6, 0xff33, 0xfeaa,
+ 0xfe58, 0xfe3f, 0xfe6d, 0xfe72, 0xfde9, 0xfd71,
+ 0xfd53, 0xfd17, 0xfce6, 0xfcff, 0xfcfc, 0xfcd0,
+ 0xfca8, 0xfc72, 0xfc4c, 0xfc3f, 0xfbfe, 0xfb98,
+ 0xfb54, 0xfb39, 0xfb41, 0xfb64, 0xfb88, 0xfb94,
+ 0xfb7e, 0xfb66, 0xfb68, 0xfb76, 0xfb8e, 0xfbbe,
+ 0xfbfa, 0xfc47, 0xfca4, 0xfced, 0xfcf9, 0xfccb,
+ 0xfca2, 0xfcbd, 0xfd0b, 0xfd79, 0xfe07, 0xfe80,
+ 0xfebe, 0xfef0, 0xff3e, 0xff95, 0xffe2, 0x0038,
+ 0x008e, 0x00b1, 0x00ce, 0x0152, 0x0200, 0x0259,
+ 0x0278, 0x0283, 0x026b, 0x027c, 0x02d9, 0x0302,
+ 0x02ee, 0x030c, 0x032e, 0x030d, 0x02fe, 0x030b,
+ 0x02fb, 0x0325, 0x0394, 0x03ca, 0x03e2, 0x0407,
+ 0x03df, 0x037c, 0x0336, 0x030a, 0x030e, 0x033e,
+ 0x034f, 0x0346, 0x0349, 0x0341, 0x0319, 0x02b9,
+ 0x0233, 0x01df, 0x01c4, 0x01b6, 0x01c8, 0x01ef,
+ 0x0201, 0x0200, 0x01e4, 0x01a8, 0x0177, 0x014d,
+ 0x0109, 0x00bb, 0x0070, 0x003c, 0x002e, 0x0026,
+ 0x0008, 0xffe2, 0xffbe, 0xff95, 0xff5d, 0xff31,
+ 0xff27, 0xff0f, 0xfec8, 0xfe77, 0xfe2a, 0xfde5,
+ 0xfdde, 0xfdfc, 0xfdf6, 0xfe03, 0xfe4a, 0xfe66,
+ 0xfe43, 0xfe2d, 0xfe1d, 0xfe1c, 0xfe5b, 0xfea2,
+ 0xfeb3, 0xfea3, 0xfe6d, 0xfe1e, 0xfdf8, 0xfe0d,
+ 0xfe2d, 0xfe36, 0xfe49, 0xfe80, 0xfeba, 0xff07,
+ 0xff7f, 0xffbd, 0xffb3, 0xffc9, 0xffb6, 0xff44,
+ 0xff10, 0xff41, 0xff85, 0xffe9, 0x0050, 0x0077,
+ 0x0085, 0x007b, 0x0024, 0xffcf, 0xffe3, 0x0029,
+ 0x0055, 0x0081, 0x00c6, 0x00fa, 0x010c, 0x00ec,
+ 0x0091, 0x0066, 0x00af, 0x0109, 0x0143, 0x019c,
+ 0x020a, 0x0259, 0x028b, 0x0295, 0x0282, 0x0294,
+ 0x02d5, 0x0309, 0x031d, 0x0337, 0x035a, 0x0368,
+ 0x0360, 0x034d, 0x0335, 0x0306, 0x02a9, 0x024c,
+ 0x0223, 0x0215, 0x0235, 0x028d, 0x02c1, 0x02ba,
+ 0x02a5, 0x0279, 0x0274, 0x02b1, 0x02d6, 0x02ea,
+ 0x030a, 0x0307, 0x0304, 0x0305, 0x02cc, 0x02a6,
+ 0x02b2, 0x0298, 0x025b, 0x0211, 0x01de, 0x01ef,
+ 0x01f6, 0x01e3, 0x01e6, 0x01a9, 0x0138, 0x00de,
+ 0x004e, 0xffc5, 0xff96, 0xff53, 0xff2e, 0xff2a,
+ 0xfe98, 0xfe0a, 0xfe16, 0xfe1e, 0xfe31, 0xfe43,
+ 0xfdbc, 0xfd66, 0xfd93, 0xfd4e, 0xfd12, 0xfd72,
+ 0xfd8d, 0xfd77, 0xfdd2, 0xfe52, 0xfedf, 0xff6e,
+ 0xff8c, 0xff65, 0xff4d, 0xff22, 0xfef1, 0xfee2,
+ 0xfef2, 0xfef3, 0xfea6, 0xfe4b, 0xfe20, 0xfde2,
+ 0xfdcc, 0xfe26, 0xfe49, 0xfe1d, 0xfe4a, 0xfe85,
+ 0xfe76, 0xfeaa, 0xff26, 0xff78, 0xffab, 0xffca,
+ 0xffe8, 0x000d, 0xffe3, 0xffa3, 0xffe4, 0x0021,
+ 0x0023, 0x0093, 0x012c, 0x015a, 0x0179, 0x019d,
+ 0x01a8, 0x01cb, 0x01ac, 0x0108, 0x006e, 0x0022,
+ 0x0002, 0x0012, 0x0060, 0x00cd, 0x00e8, 0x00af,
+ 0x00be, 0x00f2, 0x00fb, 0x0169, 0x0219, 0x0257,
+ 0x0257, 0x022e, 0x01b8, 0x0159, 0x010a, 0x00c3,
+ 0x00ed, 0x013d, 0x014d, 0x014d, 0x012b, 0x00e9,
+ 0x00b9, 0x0063, 0x0013, 0x0021, 0x0053, 0x007e,
+ 0x0070, 0xfffa, 0xff8f, 0xff4d, 0xfec3, 0xfe2c,
+ 0xfdf4, 0xfdff, 0xfe1d, 0xfe22, 0xfe2c, 0xfe6b,
+ 0xfe76, 0xfe17, 0xfd97, 0xfce7, 0xfc1f, 0xfbc1,
+ 0xfbc0, 0xfbb5, 0xfb6c, 0xfae3, 0xfa4d, 0xf9ed,
+ 0xf9e6, 0xfa34, 0xfa87, 0xfaaa, 0xfabd, 0xfab4,
+ 0xfa92, 0xfa8c, 0xfa7f, 0xfa3b, 0xf9f8, 0xf9e7,
+ 0xf9fe, 0xfa1e, 0xfa1e, 0xfa10, 0xfa35, 0xfa63,
+ 0xfa5b, 0xfa8c, 0xfb12, 0xfb38, 0xfb28, 0xfbb0,
+ 0xfc51, 0xfc7e, 0xfcd6, 0xfd61, 0xfdb3, 0xfe0e,
+ 0xfe35, 0xfdc2, 0xfd59, 0xfd47, 0xfd34, 0xfd43,
+ 0xfda3, 0xfe49, 0xff01, 0xff4c, 0xff45, 0xff79,
+ 0xffed, 0x0099, 0x014e, 0x0174, 0x017a, 0x01f2,
+ 0x0231, 0x022c, 0x027b, 0x0270, 0x01c1, 0x017e,
+ 0x01a4, 0x0153, 0x00f0, 0x0165, 0x026b, 0x0300,
+ 0x02d8, 0x0262, 0x01c7, 0x012f, 0x00f1, 0x00ca,
+ 0x00ae, 0x014d, 0x0231, 0x0242, 0x01f6, 0x01ee,
+ 0x01b8, 0x0143, 0x00c2, 0x001e, 0xffc4, 0xffe1,
+ 0x0007, 0x0035, 0x006a, 0x0086, 0x010f, 0x0214,
+ 0x02c0, 0x02e4, 0x02c0, 0x026c, 0x0217, 0x0198,
+ 0x0096, 0xff58, 0xfe60, 0xfde7, 0xfdd0, 0xfdf7,
+ 0xfea5, 0xff93, 0xffdf, 0xffa7, 0xff3b, 0xfe64,
+ 0xfe06, 0xfe88, 0xfe72, 0xfdcf, 0xfdf0, 0xfe03,
+ 0xfd37, 0xfca6, 0xfc93, 0xfc3e, 0xfbd2, 0xfba2,
+ 0xfb93, 0xfbad, 0xfbef, 0xfc27, 0xfc29, 0xfc03,
+ 0xfc0f, 0xfc5c, 0xfc8c, 0xfc89, 0xfc7b, 0xfc87,
+ 0xfccc, 0xfcf8, 0xfcbe, 0xfc96, 0xfc89, 0xfc10,
+ 0xfbba, 0xfc31, 0xfccc, 0xfd23, 0xfd74, 0xfda5,
+ 0xfde8, 0xfe76, 0xfeb2, 0xfe71, 0xfe4d, 0xfe7b,
+ 0xfecb, 0xfeae, 0xfde0, 0xfd6c, 0xfdf5, 0xfe94,
+ 0xfed1, 0xfefd, 0xff41, 0xffc1, 0x004f, 0x00b7,
+ 0x0141, 0x0192, 0x0142, 0x0106, 0x0130, 0x017c,
+ 0x0222, 0x02ce, 0x02da, 0x028b, 0x0232, 0x01d7,
+ 0x0185, 0x0104, 0x009c, 0x00b9, 0x00ff, 0x0181,
+ 0x0281, 0x032a, 0x0348, 0x038e, 0x03ea, 0x0445,
+ 0x04a2, 0x045f, 0x03ab, 0x0332, 0x02a5, 0x022d,
+ 0x024d, 0x026f, 0x0270, 0x0300, 0x03da, 0x0472,
+ 0x04d0, 0x0504, 0x053c, 0x058c, 0x0594, 0x0550,
+ 0x04ff, 0x04cb, 0x04df, 0x04c8, 0x042b, 0x03c7,
+ 0x03db, 0x03d1, 0x03cf, 0x03bf, 0x032b, 0x02b9,
+ 0x02d3, 0x02de, 0x02eb, 0x030e, 0x02bf, 0x0245,
+ 0x0205, 0x01ba, 0x0170, 0x012f, 0x00bd, 0x003e,
+ 0xffc3, 0xff65, 0xff6d, 0xff50, 0xfecc, 0xfe92,
+ 0xfe5c, 0xfdb4, 0xfd89, 0xfe22, 0xfe89, 0xfea8,
+ 0xff0a, 0xff9c, 0xffe3, 0xffa7, 0xff48, 0xff09,
+ 0xfea0, 0xfe1e, 0xfdd5, 0xfdd1, 0xfe25, 0xfe54,
+ 0xfdd4, 0xfdad, 0xfe74, 0xfedf, 0xfece, 0xff16,
+ 0xff29, 0xfefc, 0xff5a, 0xff8a, 0xff31, 0xff60,
+ 0xffb8, 0xff23, 0xfe34, 0xfdc1, 0xfd89, 0xfd43,
+ 0xfd55, 0xfe3b, 0xff5a, 0xffcd, 0xffee, 0x0002,
+ 0xffc9, 0xffd6, 0x0071, 0x00dd, 0x0108, 0x011a,
+ 0x011f, 0x01b7, 0x027d, 0x0288, 0x0284, 0x0294,
+ 0x01fe, 0x01aa, 0x01fb, 0x01e6, 0x01d4, 0x0241,
+ 0x022c, 0x01b3, 0x01f7, 0x02df, 0x037d, 0x0359,
+ 0x0349, 0x0427, 0x04da, 0x047b, 0x0412, 0x041d,
+ 0x0400, 0x03d1, 0x03f8, 0x044e, 0x0460, 0x0428,
+ 0x044c, 0x04bc, 0x04ec, 0x05a2, 0x06e5, 0x06e0,
+ 0x0595, 0x04bd, 0x0456, 0x03cd, 0x0373, 0x032e,
+ 0x02e7, 0x02ed, 0x031e, 0x0396, 0x047e, 0x0522,
+ 0x0501, 0x0438, 0x02d2, 0x017e, 0x0111, 0x00fb,
+ 0x0098, 0x00a4, 0x01bd, 0x031f, 0x03b2, 0x039f,
+ 0x03b1, 0x036f, 0x0214, 0x0088, 0xffcf, 0xff9b,
+ 0xffb5, 0x0036, 0x00c2, 0x00d2, 0x000f, 0xfefe,
+ 0xfeb5, 0xff28, 0xffce, 0x00f4, 0x022a, 0x026d,
+ 0x021b, 0x018d, 0x006b, 0xffab, 0x003b, 0x00eb,
+ 0x005e, 0xff10, 0xfe40, 0xfe29, 0xfe30, 0xfe8d,
+ 0xff86, 0xffdd, 0xff07, 0xfe4c, 0xfde6, 0xfd10,
+ 0xfc85, 0xfd1c, 0xfdf2, 0xfe06, 0xfdc9, 0xfe27,
+ 0xfed1, 0xfed4, 0xfe6d, 0xfe3f, 0xfdeb, 0xfd1d,
+ 0xfc47, 0xfc29, 0xfd2e, 0xfe39, 0xfdfd, 0xfd92,
+ 0xfde4, 0xfda5, 0xfd0b, 0xfd96, 0xfe1c, 0xfd5a,
+ 0xfcbe, 0xfcee, 0xfcfe, 0xfd60, 0xfee2, 0x005d,
+ 0x007b, 0xffeb, 0xfff8, 0x0044, 0xffda, 0xfeff,
+ 0xfe83, 0xfe97, 0xfea4, 0xfdee, 0xfd68, 0xfea1,
+ 0x0097, 0x01a4, 0x023d, 0x02c5, 0x031b, 0x03ec,
+ 0x04a4, 0x0423, 0x039f, 0x03cd, 0x030b, 0x014d,
+ 0x007a, 0x00d3, 0x014d, 0x01e7, 0x0304, 0x03d7,
+ 0x0394, 0x0311, 0x02f5, 0x0279, 0x01cc, 0x01cd,
+ 0x0199, 0x0087, 0xffe0, 0x0050, 0x0146, 0x024a,
+ 0x02e9, 0x02f9, 0x0290, 0x0162, 0xffcc, 0xfefa,
+ 0xff17, 0xff71, 0xff99, 0xff63, 0xff07, 0xfece,
+ 0xfe6f, 0xfe0a, 0xfe8e, 0xfff9, 0x00c5, 0x000e,
+ 0xff14, 0xff15, 0xff3a, 0xfef2, 0xff1b, 0xff4e,
+ 0xfe98, 0xfdd5, 0xfd84, 0xfd38, 0xfdb7, 0xff09,
+ 0xff66, 0xfe84, 0xfd7f, 0xfc91, 0xfbe3, 0xfbcd,
+ 0xfc09, 0xfc73, 0xfce7, 0xfcc4, 0xfc15, 0xfb81,
+ 0xfb38, 0xfb3a, 0xfb73, 0xfb49, 0xfa68, 0xf974,
+ 0xf91d, 0xf8f7, 0xf890, 0xf8bd, 0xf9d3, 0xfac6,
+ 0xfba3, 0xfd1d, 0xfe3f, 0xfe6f, 0xfeb5, 0xfed1,
+ 0xfd9b, 0xfbd8, 0xfaed, 0xfae0, 0xfb68, 0xfc45,
+ 0xfc79, 0xfb97, 0xfb21, 0xfc0b, 0xfc9f, 0xfc47,
+ 0xfd91, 0x0096, 0x01cd, 0x00cf, 0x00ae, 0x019c,
+ 0x0142, 0xff9c, 0xfea0, 0xfea3, 0xfe3d, 0xfda6,
+ 0xfebc, 0x00f8, 0x020d, 0x021b, 0x0225, 0x0182,
+ 0x00bb, 0x01a7, 0x0396, 0x047e, 0x0464, 0x041f,
+ 0x037e, 0x0239, 0x00b7, 0xff9c, 0xff20, 0xff17,
+ 0xff94, 0x00a2, 0x0128, 0x0017, 0xfee8, 0xff4a,
+ 0xff63, 0xfd96, 0xfceb, 0xff7a, 0x0218, 0x026f,
+ 0x01f3, 0x0171, 0x0084, 0xffa2, 0xff10, 0xfeee,
+ 0xff86, 0xffe7, 0xfef1, 0xfd17, 0xfb59, 0xfaac,
+ 0xfb4a, 0xfbbd, 0xfb95, 0xfcbd, 0xff5c, 0x0167,
+ 0x02a4, 0x0361, 0x021f, 0xfed7, 0xfc2f, 0xfb64,
+ 0xfb4f, 0xfb4a, 0xfbb5, 0xfca8, 0xfdb9, 0xfe7d,
+ 0xff17, 0xffa6, 0xff34, 0xfdc7, 0xfdcc, 0xff66,
+ 0xff40, 0xfda5, 0xfe35, 0xffaf, 0xfe73, 0xfbe8,
+ 0xfa9d, 0xf9f3, 0xfa0b, 0xfc0d, 0xfe8d, 0xff54,
+ 0xfe78, 0xfd45, 0xfc2f, 0xfa9e, 0xf8aa, 0xf7a6,
+ 0xf777, 0xf71c, 0xf82b, 0xfbb5, 0xfe18, 0xfd0c,
+ 0xfc49, 0xfe42, 0x0007, 0xffab, 0xfec6, 0xfe63,
+ 0xfe98, 0xff94, 0xfff7, 0xfe8c, 0xfd35, 0xfd58,
+ 0xfcfb, 0xfb22, 0xfa17, 0xfb28, 0xfcd6, 0xfdfd,
+ 0xff2a, 0x0089, 0x01a5, 0x037c, 0x06e8, 0x092f,
+ 0x07bb, 0x0548, 0x04da, 0x0460, 0x0222, 0x004b,
+ 0xfffc, 0x0028, 0x008c, 0x0075, 0xfeed, 0xfde4,
+ 0xff7a, 0x01e4, 0x0347, 0x04af, 0x05ed, 0x056f,
+ 0x046d, 0x03d8, 0x0156, 0xfdc8, 0xfe27, 0x012d,
+ 0x0077, 0xfd36, 0xfdc8, 0x0116, 0x01c9, 0x001a,
+ 0xfe61, 0xfc5d, 0xfb26, 0xfc0a, 0xfc68, 0xfbae,
+ 0xfe25, 0x02cf, 0x02eb, 0xfef3, 0xfd9d, 0xfef2,
+ 0xfe50, 0xfc64, 0xfc01, 0xfc1a, 0xfbb1, 0xfcb1,
+ 0xffdd, 0x030f, 0x03ca, 0x0111, 0xfc8b, 0xfa15,
+ 0xfba4, 0xfe69, 0xfe8e, 0xfc34, 0xfa72, 0xfb0a,
+ 0xfd08, 0xfec7, 0x0003, 0x014e, 0x0190, 0xfe9e,
+ 0xf971, 0xf633, 0xf6b8, 0xf8e8, 0xfae0, 0xfbfb,
+ 0xfb6a, 0xfa2e, 0xfb1a, 0xfdcd, 0xfef3, 0xfe1e,
+ 0xfd0f, 0xfaf6, 0xf732, 0xf554, 0xf824, 0xfcda,
+ 0xffdf, 0x0197, 0x030b, 0x0273, 0xfe6f, 0xf998,
+ 0xf81e, 0xfa94, 0xfcec, 0xfb78, 0xf7b6, 0xf63b,
+ 0xf912, 0xfe63, 0x0319, 0x0515, 0x0429, 0x017a,
+ 0xfdcd, 0xfaa5, 0xfb14, 0xfee5, 0x0143, 0x00f3,
+ 0x026f, 0x05be, 0x053b, 0x0147, 0x0060, 0x028d,
+ 0x014d, 0xfb1f, 0xf520, 0xf39c, 0xf6f1, 0xfc71,
+ 0x000b, 0x00a3, 0x0176, 0x03bd, 0x034d, 0xfe81,
+ 0xfaf2, 0xfc30, 0xfe01, 0xfdbe, 0xfe63, 0xffd6,
+ 0xfef6, 0xfde6, 0xff90, 0x007d, 0xfe63, 0xfd0e,
+ 0xfe03, 0xfde2, 0xfba5, 0xfa0e, 0xfb6d, 0xff69,
+ 0x026f, 0x016b, 0xff28, 0x0019, 0x02db, 0x03ef,
+ 0x0419, 0x04d5, 0x0508, 0x0441, 0x0335, 0x0165,
+ 0xfead, 0xfcf5, 0xfd94, 0xff1a, 0xffa5, 0x002c,
+ 0x02ae, 0x05a5, 0x05b0, 0x02c2, 0xffaf, 0xff26,
+ 0x0237, 0x05cd, 0x054c, 0x02dd, 0x041d, 0x0687,
+ 0x03df, 0xfec4, 0xfda7, 0xff66, 0xffb6, 0xff84,
+ 0x00ef, 0x01fd, 0x0165, 0x020a, 0x047b, 0x03ec,
+ 0xfed8, 0xfa4c, 0xf8d4, 0xf860, 0xf9ec, 0xfeb2,
+ 0x01f1, 0x0188, 0x02d2, 0x066a, 0x067d, 0x046f,
+ 0x066d, 0x0a52, 0x0adb, 0x0a00, 0x0ac1, 0x0a8d,
+ 0x0791, 0x050d, 0x051c, 0x041c, 0xfef7, 0xf9d4,
+ 0xfa0a, 0xfe25, 0x02b1, 0x0779, 0x0af8, 0x0a3d,
+ 0x06c6, 0x046e, 0x0407, 0x044f, 0x03c9, 0x01e0,
+ 0x009c, 0x01ca, 0x03a7, 0x0472, 0x04cb, 0x04e3,
+ 0x040c, 0x01a9, 0xfddb, 0xfc44, 0x0066, 0x051f,
+ 0x0370, 0xff81, 0x0057, 0x02f8, 0x02b2, 0x01ef,
+ 0x0311, 0x047a, 0x04af, 0x0306, 0xffd7, 0xfce4,
+ 0xfab0, 0xf958, 0xfac4, 0xfea1, 0x01d1, 0x0395,
+ 0x0455, 0x0322, 0x00e4, 0xff95, 0xff36, 0x00b2,
+ 0x0514, 0x090b, 0x0969, 0x0890, 0x096d, 0x0a61,
+ 0x0833, 0x0348, 0x0057, 0x0159, 0x01c3, 0x003a,
+ 0x01d6, 0x0542, 0x0335, 0xfdd2, 0xfc69, 0xfe2c,
+ 0x0099, 0x04f0, 0x0860, 0x07cd, 0x06f8, 0x0723,
+ 0x047f, 0x0105, 0x010f, 0x0261, 0x02a3, 0x039b,
+ 0x04f6, 0x04cd, 0x03b4, 0x02b2, 0x0245, 0x02e2,
+ 0x03b4, 0x03ff, 0x0413, 0x038f, 0x02ac, 0x02c0,
+ 0x0383, 0x0457, 0x0507, 0x036d, 0x0037, 0x00dc,
+ 0x048c, 0x042b, 0x00d5, 0x0115, 0x03cd, 0x04c0,
+ 0x03be, 0x0160, 0xffc1, 0x00ee, 0x0001, 0xf9ac,
+ 0xf59d, 0xf7d0, 0xf948, 0xf849, 0xf9b1, 0xfb8b,
+ 0xfa19, 0xf838, 0xf7b0, 0xf6b2, 0xf68e, 0xf9d1,
+ 0xfeba, 0x00fe, 0xfed5, 0xfb76, 0xfae6, 0xfc34,
+ 0xfccb, 0xfc53, 0xf9cf, 0xf63b, 0xf6f7, 0xfbd9,
+ 0xfdf9, 0xfd06, 0xfda4, 0xfeae, 0xfec6, 0x0128,
+ 0x05e7, 0x0a2e, 0x0d27, 0x0d3e, 0x0a4a, 0x0816,
+ 0x0673, 0x02a0, 0x0086, 0x0314, 0x0568, 0x05d0,
+ 0x070b, 0x06ad, 0x032f, 0x0180, 0x032d, 0x050d,
+ 0x06e2, 0x090a, 0x0a88, 0x0cd1, 0x110b, 0x1500,
+ 0x1680, 0x1489, 0x0ffc, 0x0c71, 0x0acf, 0x0968,
+ 0x0ae3, 0x1106, 0x16bc, 0x1a0a, 0x1e21, 0x210f,
+ 0x1fef, 0x1ddd, 0x1b75, 0x1602, 0x107d, 0x0ee5,
+ 0x0f8f, 0x1032, 0x0fdf, 0x0e32, 0x0d11, 0x0c3e,
+ 0x08f0, 0x0671, 0x0875, 0x09de, 0x091d, 0x0cb0,
+ 0x1134, 0x0c3c, 0x0188, 0xfd52, 0x00de, 0x0417,
+ 0x00fb, 0xf96e, 0xf518, 0xf69e, 0xf8d4, 0xfa0c,
+ 0xfcf3, 0x0020, 0x0168, 0x0116, 0xfddc, 0xf8e0,
+ 0xf720, 0xf837, 0xf95b, 0xfcfb, 0x01b8, 0x0139,
+ 0xfe76, 0x014a, 0x06ea, 0x06f3, 0xffd6, 0xf70b,
+ 0xf322, 0xf3ea, 0xf301, 0xf046, 0xf162, 0xf503,
+ 0xf72e, 0xf943, 0xf9a3, 0xf491, 0xeede, 0xee27,
+ 0xf068, 0xf388, 0xf530, 0xf0be, 0xe9f7, 0xe8fc,
+ 0xeaa6, 0xe89b, 0xe5a4, 0xe4cc, 0xe56b, 0xe82d,
+ 0xe98f, 0xe2a7, 0xd705, 0xd3bd, 0xdf7b, 0xf27d,
+ 0xfcf3, 0xf7e1, 0xecfc, 0xe6b4, 0xe54c, 0xe81a,
+ 0xecd5, 0xea8d, 0xe259, 0xe457, 0xf58a, 0x0831,
+ 0x115b, 0x0eee, 0xff6b, 0xe620, 0xd011, 0xcc6d,
+ 0xe144, 0x04c4, 0x24e8, 0x3703, 0x3917, 0x2dda,
+ 0x1f24, 0x140b, 0x0869, 0xfdf9, 0xff2e, 0x0798,
+ 0x0a51, 0x0a67, 0x0d7c, 0x0b57, 0xff63, 0xf024,
+ 0xe36f, 0xe229, 0xf6b9, 0x173c, 0x2a37, 0x27db,
+ 0x1e35, 0x15bf, 0x088d, 0xf543, 0xe798, 0xe6be,
+ 0xebb8, 0xf0fa, 0xf565, 0xedb6, 0xd378, 0xbc10,
+ 0xbe3f, 0xd1e4, 0xe31f, 0xeab3, 0xe9dc, 0xe844,
+ 0xf020, 0xfd7a, 0x00bd, 0xf3a9, 0xe062, 0xda54,
+ 0xec13, 0x04a5, 0x0789, 0xefb8, 0xcfa2, 0xb85d,
+ 0xb0a3, 0xb9ba, 0xd234, 0xf43c, 0x1528, 0x2bfe,
+ 0x351a, 0x2c1b, 0x0d59, 0xe3ec, 0xc8af, 0xc7f9,
+ 0xd4d4, 0xe057, 0xec00, 0xfc7b, 0x0ca9, 0x12c3,
+ 0x0aa3, 0xfa97, 0xebcf, 0xe31b, 0xe381, 0xe92e,
+ 0xe88c, 0xe1ff, 0xe2b9, 0xeca5, 0xf5d7, 0xfa24,
+ 0xfc36, 0xfd75, 0xfd42, 0xfc8b, 0xfbb0, 0xf889,
+ 0xf549, 0xf5e4, 0xf6bc, 0xf621, 0xf85e, 0xfb1e,
+ 0xfbaf, 0xfe8b, 0x0309, 0x0500, 0x0535, 0x03a9,
+ 0x0199, 0x0397, 0x0854, 0x0c5f, 0x119c, 0x1821,
+ 0x1c6d, 0x1e97, 0x20b3, 0x1fce, 0x18aa, 0x12f5,
+ 0x191a, 0x2755, 0x3231, 0x34d8, 0x30bd, 0x28ed,
+ 0x20bf, 0x1ed7, 0x282e, 0x32c0, 0x3343, 0x2f5d,
+ 0x2b09, 0x2591, 0x2982, 0x36b2, 0x3c7a, 0x3a20,
+ 0x38b5, 0x37bf, 0x3741, 0x3668, 0x32a7, 0x3149,
+ 0x336a, 0x34a9, 0x37c3, 0x3804, 0x2ba1, 0x1ed6,
+ 0x212e, 0x2909, 0x2c50, 0x3161, 0x3748, 0x372e,
+ 0x399d, 0x445c, 0x4bce, 0x4c08, 0x489d, 0x3d21,
+ 0x3079, 0x2fa7, 0x3311, 0x344d, 0x3900, 0x3ade,
+ 0x3514, 0x3000, 0x2c52, 0x28be, 0x2959, 0x2b1d,
+ 0x2bab, 0x2cf8, 0x2f17, 0x3768, 0x445b, 0x4577,
+ 0x373d, 0x24db, 0x1193, 0xfbad, 0xe4ca, 0xd618,
+ 0xdc3c, 0xf38d, 0x0be5, 0x19d4, 0x17d4, 0x1070,
+ 0x13cb, 0x18b4, 0x14c6, 0x13f9, 0x155c, 0x0a91,
+ 0xfab9, 0xf312, 0xec7e, 0xdf59, 0xd978, 0xe493,
+ 0xef21, 0xefd3, 0xf351, 0xf603, 0xf092, 0xef60,
+ 0xf0cc, 0xe892, 0xdf49, 0xe186, 0xf02f, 0x0042,
+ 0x0612, 0x0d19, 0x1896, 0x1348, 0x0738, 0x03de,
+ 0xf170, 0xd844, 0xdd4b, 0xf03e, 0xf7ae, 0xfd90,
+ 0x0311, 0x0396, 0x0016, 0xf0ae, 0xdb14, 0xc978,
+ 0xb211, 0x9c79, 0x9d0d, 0xa588, 0xa637, 0xae36,
+ 0xbd46, 0xbf4f, 0xbdf0, 0xc9c9, 0xcdcc, 0xc126,
+ 0xc27b, 0xd37e, 0xddfd, 0xe8aa, 0xef8a, 0xe74e,
+ 0xe8ce, 0xf00a, 0xe06f, 0xd440, 0xd48c, 0xc289,
+ 0xb78b, 0xc351, 0xbf0c, 0xb833, 0xc553, 0xc721,
+ 0xc47a, 0xd1a7, 0xd071, 0xbfa4, 0xbb8e, 0xbd62,
+ 0xbc91, 0xbf3b, 0xc45b, 0xc9c1, 0xcb74, 0xca0d,
+ 0xcb99, 0xca8c, 0xc230, 0xb88b, 0xb6d4, 0xc1c7,
+ 0xca4b, 0xc6e0, 0xc540, 0xc432, 0xc178, 0xc481,
+ 0xbce2, 0xb19b, 0xbd99, 0xc620, 0xc149, 0xcf22,
+ 0xdbca, 0xd5e6, 0xd596, 0xd014, 0xc376, 0xc506,
+ 0xbd33, 0xab7d, 0xb202, 0xb9ac, 0xb0be, 0xb6a6,
+ 0xc266, 0xb916, 0xb154, 0xb934, 0xb6ec, 0xabe4,
+ 0xb444, 0xbe3f, 0xafea, 0xac63, 0xc2ba, 0xc86d,
+ 0xbdc3, 0xc2a6, 0xcd91, 0xd142, 0xd451, 0xd85e,
+ 0xd9f1, 0xd31b, 0xcbcc, 0xd2e6, 0xda78, 0xd7ac,
+ 0xda08, 0xe0f9, 0xe411, 0xe851, 0xe7fd, 0xdc35,
+ 0xd1b8, 0xd398, 0xd86a, 0xd568, 0xd584, 0xdf12,
+ 0xe400, 0xe5bb, 0xeb17, 0xeb8c, 0xeb1f, 0xed9f,
+ 0xebdf, 0xe979, 0xe4bf, 0xe472, 0xf42f, 0xf4de,
+ 0xe589, 0xf444, 0x0624, 0xfa88, 0xfbf9, 0x08e8,
+ 0x014d, 0xfb6a, 0xff91, 0xfc83, 0xf62f, 0xf79b,
+ 0x0281, 0x03a1, 0x0104, 0x1be8, 0x2a17, 0x0dcf,
+ 0x0c05, 0x1e29, 0x0dda, 0x0720, 0x14cc, 0x104c,
+ 0x13e8, 0x25e0, 0x2cb6, 0x3069, 0x30b7, 0x30b9,
+ 0x33b9, 0x2b7b, 0x2832, 0x2236, 0x05fe, 0x0354,
+ 0x1036, 0xfddf, 0x0203, 0x1dd2, 0x17ac, 0x17be,
+ 0x27e2, 0x2047, 0x1da2, 0x239f, 0x20d6, 0x27b2,
+ 0x297c, 0x2791, 0x2fce, 0x25d3, 0x2340, 0x3956,
+ 0x3904, 0x3f68, 0x59dd, 0x4dcb, 0x3f7f, 0x4af0,
+ 0x3c2f, 0x2b4d, 0x351d, 0x3d41, 0x42e0, 0x3f30,
+ 0x383f, 0x41f4, 0x3d57, 0x3728, 0x4960, 0x46c2,
+ 0x44e6, 0x5d20, 0x4d9a, 0x2f5f, 0x34de, 0x2f83,
+ 0x28fd, 0x37f2, 0x378e, 0x3750, 0x406c, 0x3e2a,
+ 0x404e, 0x398c, 0x2fb5, 0x4612, 0x4a3c, 0x314f,
+ 0x3908, 0x45f4, 0x3ed4, 0x4009, 0x3cee, 0x3d04,
+ 0x4b0b, 0x48d8, 0x4012, 0x399c, 0x3386, 0x4457,
+ 0x4a0c, 0x3947, 0x426a, 0x3e91, 0x221d, 0x306d,
+ 0x3e10, 0x23b0, 0x1ec1, 0x2e42, 0x3984, 0x42c0,
+ 0x375b, 0x3156, 0x4107, 0x44ed, 0x4b6d, 0x4f8a,
+ 0x3b75, 0x3fa9, 0x52d4, 0x4959, 0x4a9d, 0x534e,
+ 0x455b, 0x468b, 0x5567, 0x5640, 0x55b3, 0x577b,
+ 0x5e07, 0x5d22, 0x4a60, 0x4dde, 0x55a2, 0x395f,
+ 0x3483, 0x4b2e, 0x41c0, 0x3642, 0x35ac, 0x25b0,
+ 0x2238, 0x2c0c, 0x2f29, 0x30fb, 0x2791, 0x22d2,
+ 0x2637, 0x11dd, 0x0d0d, 0x2060, 0x1050, 0x05c2,
+ 0x1a86, 0x10df, 0x0385, 0x0ec5, 0x05a6, 0xf8cf,
+ 0xfc2e, 0xf917, 0xf132, 0xda89, 0xc067, 0xc364,
+ 0xc406, 0xbc16, 0xc90d, 0xcb4b, 0xc0ce, 0xc53a,
+ 0xbd4f, 0xb197, 0xc160, 0xcd5c, 0xc52e, 0xc1ff,
+ 0xc9cd, 0xc57b, 0xaeb1, 0xb31b, 0xcebd, 0xc0d5,
+ 0xaf5c, 0xcb18, 0xd747, 0xceff, 0xd540, 0xd15b,
+ 0xd22e, 0xdb74, 0xc863, 0xc22a, 0xd7c5, 0xdd93,
+ 0xe7ce, 0xef89, 0xde86, 0xe79d, 0xf755, 0xe53a,
+ 0xea44, 0xfb51, 0xec05, 0xf38b, 0x1180, 0x0e2b,
+ 0x06b3, 0x10ee, 0x1064, 0x0d39, 0x18cd, 0x1cb1,
+ 0x05fb, 0xf0b4, 0xf49c, 0xf77e, 0xf2b8, 0xfa67,
+ 0x0268, 0x08d6, 0x14ca, 0x1963, 0x26a5, 0x373b,
+ 0x24dd, 0x0dc4, 0x0a24, 0x0114, 0x0974, 0x1eae,
+ 0x1635, 0x12a9, 0x1d2a, 0x0bb8, 0xfef4, 0x0872,
+ 0x0248, 0xfb3c, 0x024b, 0x05b7, 0x0e45, 0x1ee7,
+ 0x2f4c, 0x3d36, 0x3a57, 0x3131, 0x34e7, 0x37d3,
+ 0x3dd4, 0x4719, 0x34af, 0x1c56, 0x23e9, 0x2a3b,
+ 0x1937, 0x1328, 0x2229, 0x2b5d, 0x221b, 0x1466,
+ 0x13bb, 0x19ea, 0x107c, 0xfbe3, 0xf6a2, 0xf7eb,
+ 0xedf7, 0xf508, 0x0d09, 0x0a52, 0x009a, 0x0a97,
+ 0x05a1, 0xfe4c, 0x0c43, 0x0010, 0xe1dd, 0xe344,
+ 0xe9c6, 0xf057, 0x0b41, 0x0a0c, 0xedfb, 0xf12d,
+ 0xf5ee, 0xe264, 0xe062, 0xdfb9, 0xc58f, 0xbd78,
+ 0xd1cc, 0xdf69, 0xdff2, 0xd527, 0xcba5, 0xd616,
+ 0xd29a, 0xb1cf, 0xaad7, 0xb884, 0xa9a1, 0xa985,
+ 0xd209, 0xdcb0, 0xc881, 0xcd20, 0xd410, 0xd117,
+ 0xe11f, 0xe24c, 0xc0a8, 0xb26f, 0xc515, 0xd64f,
+ 0xd6f2, 0xc4da, 0xb867, 0xc942, 0xd924, 0xd54b,
+ 0xd41a, 0xd416, 0xcbb6, 0xc2d0, 0xb7c6, 0xaf50,
+ 0xb012, 0xac0d, 0xa780, 0xb183, 0xb707, 0xaca6,
+ 0xa853, 0xaab4, 0xa02c, 0x977e, 0xa981, 0xbd21,
+ 0xb569, 0xb0b0, 0xc2a5, 0xc904, 0xc161, 0xc748,
+ 0xc7df, 0xb5dc, 0xb667, 0xd084, 0xe163, 0xe82f,
+ 0xf5a4, 0xf7d7, 0xe4bf, 0xd69a, 0xd40c, 0xce53,
+ 0xcc80, 0xd1c6, 0xd655, 0xe365, 0xf151, 0xeaba,
+ 0xdd45, 0xd709, 0xd356, 0xd697, 0xd764, 0xd117,
+ 0xda7f, 0xe740, 0xe460, 0xebc0, 0xf22f, 0xdbeb,
+ 0xd22b, 0xe4b2, 0xe79d, 0xdf02, 0xdfc3, 0xd4f2,
+ 0xc20d, 0xc3fd, 0xd33e, 0xd8f7, 0xd4f3, 0xd0aa,
+ 0xd119, 0xdaaf, 0xea1e, 0xee24, 0xe01e, 0xd148,
+ 0xd3db, 0xe538, 0xeb24, 0xdc99, 0xd7d8, 0xdd85,
+ 0xd484, 0xd382, 0xdcaa, 0xcc78, 0xc8b3, 0xe910,
+ 0xe972, 0xd084, 0xdbdd, 0xe30e, 0xc49f, 0xb33d,
+ 0xbb5c, 0xc1ed, 0xc711, 0xceaf, 0xd4f8, 0xd898,
+ 0xdb2b, 0xe07d, 0xe2b5, 0xdb27, 0xcd8a, 0xc2ed,
+ 0xc7f3, 0xd2d9, 0xd0ab, 0xd42a, 0xe14e, 0xdcfa,
+ 0xda7f, 0xe98e, 0xe67c, 0xd473, 0xd1c0, 0xd7ab,
+ 0xde86, 0xe38f, 0xe50d, 0xed7d, 0xec0b, 0xd3ae,
+ 0xc34c, 0xc34d, 0xc748, 0xd0d6, 0xd169, 0xcd21,
+ 0xdb34, 0xe4f1, 0xdf8b, 0xe5d7, 0xf059, 0xf6bf,
+ 0x043b, 0x071b, 0xf989, 0xf3ce, 0xf974, 0xfbda,
+ 0xf274, 0xef05, 0x04d3, 0x102c, 0xfbb2, 0xef4f,
+ 0xec6c, 0xe268, 0xef28, 0x0aaa, 0x11c5, 0x13cc,
+ 0x1804, 0x0eda, 0x03b5, 0x04a0, 0x10fb, 0x1acb,
+ 0x111f, 0x0527, 0x0686, 0x0359, 0xfc19, 0xfd60,
+ 0x041a, 0x0df9, 0x0b22, 0xf5f2, 0xee92, 0xfc66,
+ 0x0ade, 0x154e, 0x1569, 0x0ea3, 0x08ac, 0xf426,
+ 0xe2b1, 0xf0c2, 0x00a7, 0x08bc, 0x18b0, 0x0c41,
+ 0xe3fc, 0xe102, 0x03e3, 0x187d, 0x15de, 0x129b,
+ 0x0f3b, 0xf7ec, 0xe053, 0xeaf3, 0xf5af, 0xe961,
+ 0xed1e, 0xf13b, 0xdbc9, 0xe0c3, 0xffc8, 0x016b,
+ 0xfe51, 0x0cfc, 0xfeaf, 0xdac0, 0xdadc, 0xf00c,
+ 0xe8ee, 0xdbca, 0xea05, 0xec31, 0xd309, 0xd205,
+ 0xe121, 0xd2bf, 0xc1af, 0xc887, 0xd157, 0xda18,
+ 0xe551, 0xe230, 0xd193, 0xc203, 0xbfd8, 0xcea9,
+ 0xdfb4, 0xe4df, 0xe043, 0xe436, 0xf4e7, 0xe8cc,
+ 0xbc44, 0xaec8, 0xbe46, 0xc2c1, 0xd3e3, 0xe610,
+ 0xd437, 0xcad6, 0xd8de, 0xd6f0, 0xda9f, 0xe93c,
+ 0xdfee, 0xdb68, 0xea4e, 0xe5d9, 0xdc32, 0xe2a4,
+ 0xd9a8, 0xc04a, 0xba57, 0xcd0d, 0xe181, 0xe8b6,
+ 0xecb3, 0xf98b, 0x03fe, 0x0155, 0xfb88, 0x0113,
+ 0x0f6c, 0x1539, 0x1088, 0x0ba4, 0x083a, 0x10f0,
+ 0x2522, 0x261e, 0x1625, 0x10f6, 0x0b47, 0xf9cb,
+ 0xf07e, 0xfaa2, 0x0c09, 0x0fce, 0x11d1, 0x2a8b,
+ 0x3151, 0x156a, 0x1b81, 0x3a14, 0x36ab, 0x3b04,
+ 0x4d74, 0x3611, 0x20b1, 0x2c93, 0x248e, 0x1a29,
+ 0x2787, 0x2586, 0x26aa, 0x3ffc, 0x4227, 0x3758,
+ 0x44b3, 0x4894, 0x38b2, 0x3957, 0x4263, 0x39c1,
+ 0x2de6, 0x30fe, 0x2cde, 0x0d90, 0xf65e, 0x0327,
+ 0x1530, 0x1d74, 0x2c13, 0x3760, 0x3332, 0x2520,
+ 0x130b, 0x0e26, 0x189f, 0x181b, 0x1045, 0x1515,
+ 0x14b1, 0x03ac, 0xfaa6, 0xffd0, 0xfe44, 0xf5f1,
+ 0xf23c, 0xe632, 0xd660, 0xe639, 0x0272, 0xfbe7,
+ 0xebbb, 0xebe2, 0xe4e4, 0xe1ed, 0xecb2, 0xe938,
+ 0xe6fd, 0xf0bc, 0xe8de, 0xe87f, 0xfe7f, 0xfcc3,
+ 0xf480, 0x0071, 0xf4dd, 0xdf5a, 0xecdd, 0xfc29,
+ 0xf57d, 0xeb69, 0xe841, 0xf601, 0xff55, 0xf14e,
+ 0xf31e, 0x0563, 0x0aad, 0x19c1, 0x2259, 0x01d3,
+ 0xe59b, 0xdf68, 0xdb1c, 0xf33a, 0x1281, 0x09ce,
+ 0x02d7, 0x13bb, 0x13fa, 0x0b32, 0x0b88, 0x03ae,
+ 0x032d, 0x1f30, 0x30ab, 0x216d, 0x214a, 0x2fd2,
+ 0x138d, 0xf4d9, 0x0a42, 0x11a4, 0x0078, 0x1586,
+ 0x2091, 0x032a, 0xfb6f, 0xfc8c, 0xfbc7, 0x1dee,
+ 0x29a5, 0x0c5d, 0x1af0, 0x3cf7, 0x32b3, 0x2388,
+ 0x1fff, 0x182b, 0x1b90, 0x1c2f, 0x1329, 0x1d92,
+ 0x27ce, 0x184e, 0x11c4, 0x237e, 0x2e0a, 0x2ceb,
+ 0x36fb, 0x4107, 0x36b0, 0x3131, 0x3979, 0x2cef,
+ 0x197a, 0x1e88, 0x1f46, 0x1360, 0x142f, 0x1399,
+ 0x1232, 0x2340, 0x26a8, 0x117c, 0x0cd3, 0x1a1f,
+ 0x2500, 0x2b96, 0x22cf, 0x157b, 0x1b53, 0x1e62,
+ 0x12bf, 0x0fa9, 0x1032, 0x12fb, 0x28d4, 0x344d,
+ 0x1e33, 0x0abb, 0x0869, 0x0355, 0xfffc, 0x0433,
+ 0x022c, 0xfe3a, 0x0acf, 0x16f5, 0x09a3, 0x079e,
+ 0x253a, 0x2346, 0x02fd, 0x070c, 0x0b24, 0xf310,
+ 0xfef6, 0x1693, 0x03e1, 0xf424, 0xf242, 0xf2cd,
+ 0x1308, 0x2ad2, 0x2003, 0x291f, 0x331f, 0x24de,
+ 0x2d6a, 0x36bd, 0x242f, 0x20d9, 0x2328, 0x193b,
+ 0x2281, 0x2a92, 0x1d99, 0x230e, 0x3648, 0x3132,
+ 0x258c, 0x2ecc, 0x2e33, 0x12cd, 0x1242, 0x2bf8,
+ 0x2202, 0x18c2, 0x32d3, 0x3012, 0x1f8f, 0x2d35,
+ 0x263c, 0x1372, 0x2028, 0x2d01, 0x353f, 0x33ab,
+ 0x1744, 0x10ee, 0x109e, 0xf411, 0x08a6, 0x2c28,
+ 0x02d2, 0xf15b, 0x20a9, 0x21b3, 0x029f, 0xff3d,
+ 0xfe7c, 0xf91f, 0xee13, 0xdde0, 0xdf7b, 0xe44a,
+ 0xe491, 0xeb40, 0xe5be, 0xe521, 0xf795, 0xefa2,
+ 0xdce5, 0xf3b5, 0x1461, 0x12a3, 0xfec9, 0xf675,
+ 0xf0e4, 0xdfe0, 0xe6e6, 0x034f, 0xfd2a, 0xf245,
+ 0x02c1, 0xffa0, 0xfa65, 0x080a, 0xf84e, 0xe4b7,
+ 0xebd1, 0xe81b, 0xe7dd, 0xf206, 0xf37a, 0x0fb3,
+ 0x2ac7, 0x14bc, 0x0b2d, 0x1641, 0x08e6, 0x0a0a,
+ 0x1624, 0x007a, 0xf051, 0xfb3d, 0x0318, 0x07ff,
+ 0x0e22, 0x10a6, 0x0d83, 0x05dc, 0x0ad1, 0x17d3,
+ 0x1a80, 0x1729, 0x0759, 0xf7f0, 0x03a3, 0x04d3,
+ 0xf1a8, 0xfb8c, 0x0e1a, 0x0aa8, 0x0883, 0x0729,
+ 0x0c1d, 0x1e79, 0x1d62, 0x162f, 0x2194, 0x1fbe,
+ 0x14b0, 0x130b, 0x084d, 0x0376, 0x10f4, 0x16e4,
+ 0x157e, 0x18d8, 0x241e, 0x2f13, 0x1f22, 0x088a,
+ 0x0c47, 0x0cfc, 0x06d3, 0x0fae, 0x1256, 0x1493,
+ 0x215f, 0x1c75, 0x1902, 0x2742, 0x21c1, 0x1745,
+ 0x2111, 0x2365, 0x2127, 0x22e4, 0x1416, 0x05f9,
+ 0x06ea, 0x00f0, 0xf858, 0xf7b8, 0xf90a, 0x0369,
+ 0x120c, 0x1706, 0x1b88, 0x1cf0, 0x0c50, 0xfe40,
+ 0x0c33, 0x1d87, 0x0e27, 0xf0c8, 0xebdd, 0xf8d4,
+ 0x03fd, 0x0cca, 0x13ff, 0x21ec, 0x2ce3, 0x17d9,
+ 0x002c, 0x0894, 0x07ed, 0xeee5, 0xdf72, 0xdd58,
+ 0xeac8, 0xfee4, 0xfb53, 0xf631, 0xff0a, 0xf426,
+ 0xe296, 0xe035, 0xdbdb, 0xdf8f, 0xe7da, 0xd6b9,
+ 0xcba4, 0xe802, 0xfb89, 0xe37e, 0xd563, 0xecc5,
+ 0xebcc, 0xd4c3, 0xe6a2, 0xefea, 0xcefc, 0xd2b1,
+ 0xec91, 0xe53f, 0xe55c, 0xef94, 0xf371, 0x03d0,
+ 0xfd73, 0xe4de, 0xe7c2, 0xe1a4, 0xda9d, 0xf6e3,
+ 0xf75c, 0xe463, 0xf9ad, 0xf64d, 0xccec, 0xd413,
+ 0xf4de, 0xf288, 0xecae, 0xf831, 0xf388, 0xdb3a,
+ 0xd3f0, 0xe0f6, 0xe1b8, 0xd796, 0xd70f, 0xd64c,
+ 0xcb2b, 0xc020, 0xc290, 0xd5bf, 0xe8e0, 0xefb2,
+ 0xed2f, 0xda4e, 0xc6b1, 0xd633, 0xee19, 0xe7f1,
+ 0xe228, 0xde5c, 0xbc45, 0xa7b1, 0xbdbe, 0xd253,
+ 0xe27e, 0xf075, 0xe762, 0xeb49, 0xf9c0, 0xe68e,
+ 0xdc5c, 0xe2ba, 0xcacd, 0xc1fe, 0xd240, 0xc73a,
+ 0xc603, 0xdd46, 0xe12d, 0xe312, 0xe777, 0xdb75,
+ 0xd368, 0xcfef, 0xd2ce, 0xe4d4, 0xe536, 0xd7fb,
+ 0xdae9, 0xd84f, 0xcfa9, 0xdf68, 0xfa48, 0x0077,
+ 0xf622, 0xf5ae, 0xf832, 0xf391, 0x01c1, 0x0c67,
+ 0xf716, 0xf06e, 0xf1ca, 0xdb64, 0xddc1, 0xf28a,
+ 0xf112, 0xf32b, 0xea8c, 0xcb71, 0xc53f, 0xcbc5,
+ 0xcbda, 0xd6f5, 0xd31b, 0xc029, 0xbf94, 0xc3ba,
+ 0xc773, 0xd4b4, 0xd8fd, 0xced0, 0xca14, 0xd6b3,
+ 0xde17, 0xce12, 0xcaa0, 0xda46, 0xd55a, 0xc711,
+ 0xc442, 0xc7fc, 0xd52f, 0xdb5c, 0xdbcc, 0xe60a,
+ 0xd78d, 0xbc3e, 0xc9fc, 0xe166, 0xdf54, 0xd261,
+ 0xbfcf, 0xbe28, 0xcef9, 0xcd3a, 0xc987, 0xdb19,
+ 0xe8d6, 0xea12, 0xe061, 0xcf28, 0xd12f, 0xe3b5,
+ 0xe584, 0xd800, 0xcfe8, 0xc7e2, 0xb729, 0xaae9,
+ 0xaa25, 0xb5c5, 0xcfb0, 0xd9f4, 0xc832, 0xbd09,
+ 0xb21b, 0xa0cc, 0xb3ed, 0xd3b7, 0xcf5f, 0xc86a,
+ 0xd2fa, 0xdaab, 0xdfbd, 0xd9e2, 0xc8f6, 0xc87a,
+ 0xd31a, 0xcdb7, 0xc5fd, 0xd613, 0xe09e, 0xc8c9,
+ 0xb967, 0xc011, 0xbd4a, 0xcb85, 0xe7b6, 0xdc9f,
+ 0xc43f, 0xbc26, 0xb3ee, 0xb626, 0xb71d, 0xb386,
+ 0xcbad, 0xdc76, 0xd4c9, 0xddb9, 0xdad7, 0xc524,
+ 0xcfee, 0xe3ef, 0xe503, 0xe4ad, 0xdff4, 0xde53,
+ 0xe350, 0xe093, 0xe242, 0xe5cd, 0xe35e, 0xe5f8,
+ 0xdb08, 0xcb9f, 0xd95c, 0xdf3f, 0xcbec, 0xce61,
+ 0xe3ea, 0xea1f, 0xe037, 0xd538, 0xd4c9, 0xd76a,
+ 0xd771, 0xdbec, 0xd688, 0xc864, 0xcdb8, 0xdaa7,
+ 0xdba1, 0xdf2c, 0xdf19, 0xce6a, 0xc5a8, 0xcfe7,
+ 0xd766, 0xd567, 0xd053, 0xcf1d, 0xdad5, 0xddc6,
+ 0xc7e4, 0xc307, 0xd3bf, 0xccc9, 0xc548, 0xd838,
+ 0xdf84, 0xd9e2, 0xda30, 0xcefa, 0xc539, 0xd6f7,
+ 0xecb5, 0xe8be, 0xdb14, 0xe13f, 0xe781, 0xde4a,
+ 0xebd8, 0xfed3, 0xe9cc, 0xd67f, 0xda4d, 0xd842,
+ 0xdab4, 0xdbe6, 0xd680, 0xe0e9, 0xde53, 0xd18c,
+ 0xe678, 0xf07f, 0xdb8d, 0xdc46, 0xe30a, 0xd9ce,
+ 0xd587, 0xcb33, 0xc18c, 0xd258, 0xe4d6, 0xdf8a,
+ 0xd3f1, 0xda20, 0xe7cd, 0xe9cd, 0xf678, 0x0a64,
+ 0xfd86, 0xef23, 0xfbd1, 0xf8d0, 0xeefc, 0xfaa0,
+ 0xfbf4, 0xf871, 0x09e3, 0x11b4, 0x070f, 0x03f6,
+ 0x01b3, 0xf69d, 0xf3b1, 0x0129, 0x07d2, 0xf06a,
+ 0xda2f, 0xea62, 0xfa72, 0xf1ef, 0xfc2a, 0x0d37,
+ 0x05d3, 0x10c1, 0x23c5, 0x0e3c, 0xfd1c, 0xfbfc,
+ 0xe2b2, 0xe24a, 0x06b4, 0x0b35, 0x0082, 0x0c90,
+ 0x166c, 0x108e, 0x0186, 0xffee, 0x0abe, 0xf7bd,
+ 0xe80c, 0xfde8, 0xf6ab, 0xde6f, 0xf3ab, 0x040e,
+ 0xfb3c, 0x04e4, 0x0de5, 0x0882, 0x0a85, 0x0ff9,
+ 0x0cc6, 0xfbf5, 0xef9a, 0xf687, 0xf800, 0xf91e,
+ 0x0417, 0xf7e0, 0xea6c, 0xf845, 0xf7c9, 0xef77,
+ 0xf7e0, 0xee85, 0xe214, 0xf3f6, 0x0055, 0xfac8,
+ 0xff52, 0x0f2f, 0x1edc, 0x19eb, 0xfc98, 0xf9c4,
+ 0x1cbb, 0x2458, 0x0b38, 0x0636, 0x0fce, 0x180b,
+ 0x23ea, 0x1db9, 0x16b4, 0x2679, 0x1db9, 0x0a8f,
+ 0x18fd, 0x12fd, 0xfe77, 0x1091, 0x13ca, 0xfdee,
+ 0xfbe7, 0xf449, 0xf017, 0xff92, 0xfd6c, 0x00f8,
+ 0x148a, 0x0d20, 0xfdcf, 0xf4f4, 0xed09, 0xffd4,
+ 0x1635, 0x17f8, 0x165f, 0x0a2b, 0x0724, 0x1701,
+ 0x0d94, 0x0144, 0x0f57, 0x19fd, 0x28f3, 0x31bf,
+ 0x1b50, 0x14e5, 0x2157, 0x1735, 0x0f60, 0x1601,
+ 0x166c, 0x18c6, 0x2216, 0x2c20, 0x2f5d, 0x242a,
+ 0x1574, 0x12ac, 0x2188, 0x2e25, 0x1ccc, 0x0882,
+ 0x0db0, 0x14fc, 0x1784, 0x1c40, 0x1e99, 0x216e,
+ 0x1932, 0x0563, 0xffdb, 0x098a, 0x1151, 0x085c,
+ 0xfdf2, 0x144a, 0x28f3, 0x2313, 0x2ec3, 0x36fd,
+ 0x26fc, 0x2c75, 0x2ee3, 0x1861, 0x0f8f, 0x0c63,
+ 0x11b9, 0x213b, 0x12d5, 0x0728, 0x1078, 0x02f5,
+ 0xffe6, 0x1414, 0x1658, 0x1f52, 0x2c3b, 0x1f80,
+ 0x18d8, 0x1dc5, 0x1ca3, 0x17d7, 0x0e52, 0x0f78,
+ 0x0ca0, 0xf450, 0xf863, 0x11cf, 0x139f, 0x1b2a,
+ 0x20a8, 0x0bce, 0x0acd, 0x19ae, 0x1372, 0x1203,
+ 0x2218, 0x277a, 0x1799, 0x0c90, 0x1d0e, 0x2d15,
+ 0x2728, 0x1f54, 0x18b3, 0x10b1, 0x112f, 0x1631,
+ 0x188d, 0x1857, 0x1ea7, 0x2430, 0x1441, 0x0f49,
+ 0x27bf, 0x2ead, 0x26a8, 0x253f, 0x1a67, 0x12a8,
+ 0x0abe, 0x0011, 0x0fea, 0x0f0b, 0xf5d4, 0x0667,
+ 0x102d, 0xfac1, 0x0de0, 0x224b, 0x1bc3, 0x2964,
+ 0x2477, 0x0d03, 0x16eb, 0x1c47, 0x1807, 0x26b5,
+ 0x28e8, 0x1f3c, 0x1703, 0x0a71, 0x0f0c, 0x186a,
+ 0x171e, 0x2265, 0x24ea, 0x13ad, 0x0ea5, 0x0cc8,
+ 0x0e63, 0x20ac, 0x1c84, 0xfef1, 0xf85c, 0x040b,
+ 0x0408, 0x03c1, 0x1198, 0x1843, 0x0de4, 0x0cb2,
+ 0x1090, 0x02ab, 0xfafe, 0xfdb0, 0xea7d, 0xdd11,
+ 0xf10a, 0xf756, 0xeabc, 0xfb29, 0x104a, 0x07f3,
+ 0x0912, 0x165a, 0x0ba5, 0x01b4, 0x088b, 0x04df,
+ 0xfe09, 0xfe61, 0x001f, 0x0d00, 0x15fe, 0x0f5b,
+ 0x1248, 0x1a35, 0x190d, 0x197a, 0x175e, 0x14f0,
+ 0x14d5, 0x08e7, 0x0482, 0x0da6, 0x04e3, 0xfe5b,
+ 0x10fd, 0x1df6, 0x1f75, 0x1c7d, 0x0b5d, 0x022c,
+ 0x0dca, 0x128b, 0x0f80, 0x1657, 0x1940, 0x101b,
+ 0x0d5a, 0x0e6f, 0x0a0f, 0x1579, 0x29d6, 0x2101,
+ 0x0bd4, 0x0da0, 0x18a5, 0x1cdf, 0x1e35, 0x1e1a,
+ 0x1b43, 0x17dc, 0x1e93, 0x2389, 0x13de, 0x136e,
+ 0x2cd5, 0x2cc0, 0x1b73, 0x1a22, 0x1aef, 0x230d,
+ 0x2df6, 0x20fe, 0x110c, 0x0b34, 0x0589, 0x08c1,
+ 0x089d, 0x07e7, 0x1a23, 0x22c0, 0x21c5, 0x2a87,
+ 0x1ed0, 0x1156, 0x20aa, 0x254d, 0x22a5, 0x2d16,
+ 0x2753, 0x1aee, 0x1795, 0x119c, 0x19dc, 0x28e1,
+ 0x292b, 0x2a2f, 0x258d, 0x18a2, 0x19a0, 0x16b1,
+ 0x0861, 0x0b54, 0x1693, 0x13a1, 0x1170, 0x1ed0,
+ 0x21cd, 0x0ad8, 0xfd71, 0xfa7e, 0xeb74, 0xf278,
+ 0x0516, 0xfb45, 0xfd58, 0x05c9, 0xf069, 0xf1c6,
+ 0x07af, 0x0805, 0x13ab, 0x1f34, 0x13c2, 0x0f1e,
+ 0xfb5d, 0xe191, 0xf948, 0x18cf, 0x1412, 0x00a0,
+ 0xeeb7, 0xf628, 0x07ce, 0xfecc, 0x0195, 0x1a22,
+ 0x16bc, 0x056a, 0x083b, 0x121e, 0x10b8, 0x0ba1,
+ 0x192a, 0x288a, 0x1cd5, 0x0f44, 0x1118, 0x1551,
+ 0x1b03, 0x18a2, 0x1072, 0x1044, 0x0913, 0xfd46,
+ 0xfb61, 0xf92e, 0xfb0a, 0xfe38, 0xf5a1, 0xfa7b,
+ 0x11f2, 0x1c43, 0x1b1f, 0x1d65, 0x18c0, 0x02cb,
+ 0xeaee, 0xe6a4, 0xeb7d, 0xeccd, 0xf363, 0xf6a2,
+ 0xf09e, 0xf446, 0x026c, 0x0aa7, 0x0b0e, 0x0c72,
+ 0x0735, 0xf392, 0xf0b3, 0xff8a, 0xf883, 0xf7f0,
+ 0x0c02, 0x0084, 0xf1e4, 0x0496, 0x09cb, 0x06ce,
+ 0x1401, 0x12c4, 0x04ff, 0x00cb, 0x073e, 0x1049,
+ 0x0d3b, 0x0c71, 0x11e1, 0x06b7, 0xffe3, 0x02f7,
+ 0xfe76, 0x08ca, 0x0f55, 0xff53, 0x06a4, 0x1979,
+ 0x1793, 0x122d, 0x014c, 0xef97, 0xf801, 0xfee0,
+ 0xfc4a, 0x0275, 0x0b01, 0x1100, 0x1174, 0x13b6,
+ 0x170d, 0x0884, 0xfcf5, 0xfcdd, 0xf647, 0xfa42,
+ 0xf5fe, 0xe1e7, 0xee3c, 0xf92a, 0xedf4, 0xfe10,
+ 0x0a78, 0x0cac, 0x217b, 0x15f7, 0xff69, 0x0609,
+ 0xf8c8, 0xee9e, 0xf7bb, 0xedc5, 0xf6c8, 0x0514,
+ 0xf7e0, 0x0757, 0x1509, 0xff56, 0xffb4, 0xfcf9,
+ 0xea21, 0xf527, 0xfe34, 0xfb06, 0x004c, 0xfec3,
+ 0x0626, 0x0814, 0xf171, 0xf567, 0x054a, 0xfa5b,
+ 0xf896, 0x0161, 0x05d9, 0x0b4a, 0x00a5, 0xf46b,
+ 0xf3ad, 0xeaac, 0xe51d, 0xe2f2, 0xde81, 0xeb21,
+ 0xec8a, 0xd6db, 0xd5e3, 0xded2, 0xdcce, 0xe680,
+ 0xf1a3, 0xee89, 0xf128, 0xf438, 0xe29a, 0xd6aa,
+ 0xe811, 0xf426, 0xf1ba, 0xf812, 0xefc8, 0xdd80,
+ 0xe310, 0xdf6a, 0xcfbd, 0xd58c, 0xd29a, 0xcd40,
+ 0xe302, 0xe7ec, 0xda43, 0xe024, 0xe6b2, 0xe3a6,
+ 0xe399, 0xe796, 0xefc8, 0xf468, 0xfac8, 0xfed6,
+ 0xeb33, 0xe3fc, 0xfee1, 0x081f, 0xfbc5, 0xfd9b,
+ 0x06bd, 0x07aa, 0x0055, 0xfbd4, 0xfa2b, 0xef6a,
+ 0xed4c, 0xf5e5, 0xeffe, 0xe8dc, 0xebd8, 0xf1f7,
+ 0xfdd1, 0xffd5, 0xf98e, 0xf579, 0xe44b, 0xdf0f,
+ 0xede8, 0xe56f, 0xdbec, 0xe8c6, 0xef12, 0xf323,
+ 0xee81, 0xe2b2, 0xf3a2, 0xfd56, 0xed8f, 0xf213,
+ 0xf208, 0xe375, 0xe9c3, 0xe4a4, 0xd0f6, 0xd63c,
+ 0xe4d3, 0xf1bf, 0xf949, 0xf287, 0xf2c5, 0xee90,
+ 0xdcf2, 0xe037, 0xe6b6, 0xe3b7, 0xf410, 0xf6a3,
+ 0xdf94, 0xe1d5, 0xef33, 0xef7e, 0xfaa7, 0x0013,
+ 0xf145, 0xeca3, 0xec46, 0xe424, 0xeb2c, 0xf1bc,
+ 0xe308, 0xdf92, 0xe924, 0xe4a5, 0xdeff, 0xdb5a,
+ 0xd577, 0xde0e, 0xe41b, 0xe239, 0xf214, 0xf898,
+ 0xe9e7, 0xe9db, 0xe9cc, 0xdba5, 0xd72b, 0xd878,
+ 0xd99d, 0xdadb, 0xd943, 0xe141, 0xe7bf, 0xe876,
+ 0xf44d, 0xf104, 0xe41f, 0xed5d, 0xe55c, 0xd30a,
+ 0xdfc2, 0xdbdf, 0xca31, 0xdc2a, 0xeb9f, 0xefb6,
+ 0x0072, 0xfe64, 0xf3da, 0xfa45, 0xf81a, 0xf22e,
+ 0xf251, 0xe9ea, 0xe721, 0xee95, 0xf288, 0xf501,
+ 0xf25e, 0xeffc, 0xf73f, 0xf7ec, 0xf0ec, 0xf1aa,
+ 0xf8a0, 0x0125, 0x0408, 0xffd5, 0xfdef, 0xf753,
+ 0xee81, 0xf6ac, 0x002b, 0xf851, 0xef60, 0xe94e,
+ 0xdf74, 0xdf88, 0xec5b, 0xf563, 0xf4fc, 0xef57,
+ 0xeb15, 0xee64, 0xf0e9, 0xec7f, 0xee3a, 0xf5da,
+ 0xf537, 0xef15, 0xe4a3, 0xd844, 0xdfda, 0xf1fa,
+ 0xeb8e, 0xd890, 0xd314, 0xd215, 0xd253, 0xdd02,
+ 0xe944, 0xe998, 0xe001, 0xd788, 0xd243, 0xcf74,
+ 0xda5d, 0xebfd, 0xec5f, 0xe4d0, 0xe316, 0xdb8a,
+ 0xd8a0, 0xe3cd, 0xe31c, 0xda67, 0xe4d5, 0xf203,
+ 0xec3b, 0xe039, 0xde67, 0xe81e, 0xefa7, 0xef3f,
+ 0xf2c9, 0xf3c3, 0xea49, 0xe711, 0xe818, 0xe51e,
+ 0xe8dd, 0xe659, 0xd926, 0xe000, 0xefc4, 0xea66,
+ 0xe0d0, 0xdfe2, 0xe34c, 0xee65, 0xf463, 0xf3e8,
+ 0xfe28, 0x02ef, 0xf6df, 0xee33, 0xe75d, 0xe234,
+ 0xee8b, 0xf887, 0xf3ee, 0xf91f, 0xfbdc, 0xe74b,
+ 0xda25, 0xe30a, 0xea85, 0xec52, 0xee8e, 0xf107,
+ 0xf543, 0xf401, 0xec66, 0xe8ef, 0xe759, 0xe8c0,
+ 0xf464, 0x006e, 0x0302, 0xfb18, 0xf0f1, 0xf68b,
+ 0xff64, 0xf977, 0xfe0e, 0x0932, 0xfaab, 0xf1c4,
+ 0x0406, 0x0915, 0x0185, 0x0482, 0xffdf, 0xf531,
+ 0xf61d, 0xf76c, 0xf956, 0x0164, 0xfec5, 0xf0bc,
+ 0xe5c8, 0xe2ea, 0xe8b8, 0xed04, 0xed82, 0xf2bc,
+ 0xed70, 0xe129, 0xead7, 0xf55a, 0xef9a, 0xf67d,
+ 0xfe11, 0xf438, 0xef91, 0xeb87, 0xe56f, 0xeb84,
+ 0xe9f4, 0xe5dd, 0xefc8, 0xec9f, 0xe69f, 0xee7b,
+ 0xe864, 0xe72c, 0xf4e7, 0xeb9a, 0xe37f, 0xec73,
+ 0xe5df, 0xe79b, 0xf6a5, 0xf131, 0xf28e, 0xfeaa,
+ 0xf440, 0xebcb, 0xf0f2, 0xf0ef, 0xf8c3, 0x0464,
+ 0x0165, 0xfcc3, 0xfdb5, 0xf84b, 0xe942, 0xe03f,
+ 0xe736, 0xeaba, 0xe7f3, 0xefb3, 0xf2ee, 0xedcb,
+ 0xf196, 0xf0b4, 0xeb3e, 0xf190, 0xf2e9, 0xef78,
+ 0xf4a0, 0xf038, 0xe862, 0xf2d1, 0xfea4, 0x009b,
+ 0xfb95, 0xef50, 0xf248, 0x00cb, 0xf7e3, 0xf024,
+ 0x000a, 0xfbe4, 0xe90d, 0xeaf7, 0xe61e, 0xde64,
+ 0xf1f8, 0xfac1, 0xef3c, 0xf093, 0xec51, 0xe3a1,
+ 0xf07b, 0xfc0c, 0x0350, 0x10d3, 0x0b9c, 0xffce,
+ 0x0303, 0x0035, 0xf934, 0xf91e, 0xf6de, 0xf56d,
+ 0xf1c6, 0xec89, 0xf4cd, 0x009b, 0x08f7, 0x11cf,
+ 0x0d0f, 0x026e, 0xfee1, 0xf7b4, 0xfa23, 0x091b,
+ 0x05b2, 0xf5b7, 0xee94, 0xede3, 0xf54d, 0xfe1d,
+ 0xfe80, 0xfe82, 0xfb2c, 0xf1f0, 0xed84, 0xe77f,
+ 0xe05d, 0xea2f, 0xfc38, 0x03c3, 0x0314, 0xfe3c,
+ 0xfa29, 0xfa9d, 0xf4d4, 0xec49, 0xf0b1, 0xf3ac,
+ 0xe913, 0xe3cd, 0xe5b0, 0xe4b1, 0xe705, 0xe623,
+ 0xde4f, 0xe0e0, 0xebff, 0xf445, 0xfa0e, 0xfd2f,
+ 0x061c, 0x10d8, 0x09d6, 0xfd8c, 0xfa56, 0xf91a,
+ 0xfeaa, 0x0169, 0xf892, 0xfb06, 0xfe05, 0xef95,
+ 0xefd0, 0x031e, 0x0ce7, 0x0bb0, 0x02ef, 0xfa36,
+ 0xfa3e, 0xf700, 0xf2ff, 0xf79c, 0xfc2b, 0x00a9,
+ 0x0165, 0xfba7, 0xfce5, 0xf6fd, 0xe38c, 0xe3f5,
+ 0xef6b, 0xea28, 0xe8ba, 0xf336, 0xfb27, 0x05b6,
+ 0x0e19, 0x08be, 0xfef3, 0xf858, 0xf325, 0xeec2,
+ 0xed81, 0xf311, 0xf880, 0xf70d, 0xf74d, 0xfa1b,
+ 0xf8ed, 0xf92f, 0xf942, 0xf38f, 0xf477, 0xfc61,
+ 0xf9ba, 0xf457, 0xfd6f, 0x0b60, 0x11e4, 0x121d,
+ 0x0f7a, 0x0e2c, 0x0c43, 0x081f, 0x08a0, 0x0ab1,
+ 0x0948, 0x0a89, 0x0d32, 0x0f0f, 0x106f, 0x0a86,
+ 0x0630, 0x0b5f, 0x0a0a, 0x04f4, 0x0699, 0x026d,
+ 0xfe4f, 0x0544, 0x092c, 0x0b1a, 0x0efd, 0x063a,
+ 0xf78a, 0xeeac, 0xe6c6, 0xe91f, 0xf87c, 0x0315,
+ 0x0b9e, 0x15b7, 0x0af7, 0xf35f, 0xf5c3, 0x0532,
+ 0xfc4e, 0xee55, 0xef68, 0xeb2f, 0xe941, 0xf57f,
+ 0xf3fa, 0xe902, 0xf0ea, 0xf9d2, 0xf281, 0xea03,
+ 0xe7f0, 0xeba9, 0xf14a, 0xf4c8, 0xfc7d, 0x00d4,
+ 0xf6e7, 0xf2fb, 0x0030, 0x08b2, 0x039e, 0xfc0c,
+ 0xf8bd, 0xfde9, 0x0869, 0x09ff, 0x0376, 0x083d,
+ 0x17da, 0x1ba7, 0x104e, 0x0532, 0xfe09, 0xf81e,
+ 0xf7c3, 0xfe99, 0x0489, 0x0328, 0x00e7, 0x0534,
+ 0x0c7c, 0x0feb, 0x08b3, 0xf959, 0xf4aa, 0xfdde,
+ 0x0223, 0x0003, 0x0302, 0x0875, 0x084d, 0x0268,
+ 0xfd7e, 0xf8e9, 0xed3e, 0xe4a5, 0xe7c0, 0xea72,
+ 0xedec, 0xf446, 0xf0e1, 0xf073, 0xf934, 0xf31f,
+ 0xea21, 0xf227, 0xf5c5, 0xf21b, 0xf494, 0xf76c,
+ 0xff34, 0x08a3, 0x05e0, 0x0655, 0x0e4d, 0x0bb5,
+ 0x03d1, 0x0083, 0x0404, 0x0c93, 0x0cf0, 0x0de0,
+ 0x1a76, 0x1c13, 0x1385, 0x14dc, 0x1623, 0x1129,
+ 0x0a31, 0x0471, 0x0a0b, 0x0e4f, 0x07ef, 0x0ab5,
+ 0x108b, 0x0f03, 0x0f77, 0x05f0, 0xf88d, 0xfa8f,
+ 0xf7dd, 0xf52c, 0x05de, 0x0ee7, 0x0eb4, 0x16c0,
+ 0x1518, 0x101a, 0x10f2, 0x02f0, 0xf73a, 0xf958,
+ 0xef34, 0xeaba, 0xfb51, 0x00e1, 0xffd6, 0x0863,
+ 0x0574, 0xf8ef, 0xf3b9, 0xf19d, 0xf321, 0xf64d,
+ 0xf816, 0x0065, 0x05bd, 0x04c3, 0x0ac3, 0x08b5,
+ 0xfc18, 0xfde6, 0x0401, 0x058c, 0x0caa, 0x0959,
+ 0x0081, 0x05ec, 0x04f8, 0xfd94, 0x04cc, 0x0b08,
+ 0x08ac, 0x0886, 0x08f9, 0x0809, 0x006f, 0xf9fe,
+ 0x03a2, 0x0b51, 0x0aa5, 0x0dcd, 0x07c3, 0xfed8,
+ 0xfd18, 0xef13, 0xe7b2, 0xf8d6, 0x0293, 0x0452,
+ 0x0b7b, 0x0c00, 0x0e15, 0x1024, 0x02f9, 0xfa58,
+ 0xfcaa, 0xf6fc, 0xefd1, 0xf204, 0xf75f, 0xf9a2,
+ 0xf906, 0xf7fc, 0xf230, 0xe8cc, 0xe538, 0xe6ae,
+ 0xedc5, 0xf6ac, 0xf40a, 0xf3af, 0x025d, 0x0bf6,
+ 0x0c99, 0x0ce7, 0x08ed, 0x095d, 0x0f19, 0x0aa2,
+ 0x0512, 0x0978, 0x09db, 0x0603, 0x0deb, 0x18b3,
+ 0x15b7, 0x130e, 0x1a8c, 0x1a96, 0x1349, 0x1055,
+ 0x0d62, 0x0e8e, 0x1617, 0x19be, 0x1af0, 0x17cc,
+ 0x1116, 0x1152, 0x0904, 0xf7f0, 0xfb53, 0x0315,
+ 0xfef8, 0x0921, 0x1572, 0x0f4a, 0x0f4b, 0x13c5,
+ 0x0a47, 0x0466, 0x03e9, 0xf8a7, 0xf2d6, 0xfd71,
+ 0x03dd, 0xfe58, 0xf72a, 0xf318, 0xf35d, 0xf1ef,
+ 0xea1e, 0xe73b, 0xea63, 0xea7a, 0xebc0, 0xed1d,
+ 0xf28b, 0x0856, 0x14ea, 0x0815, 0x023d, 0x0531,
+ 0xffc9, 0x00f6, 0x06b2, 0x071a, 0x0c8f, 0x0f89,
+ 0x0929, 0x026a, 0xfacb, 0xf921, 0xfe3b, 0xf906,
+ 0xf05e, 0xf044, 0xf179, 0xf70b, 0x0233, 0x06c8,
+ 0x03c6, 0x0085, 0xff66, 0xf920, 0xe9c4, 0xe2ea,
+ 0xed32, 0xf65a, 0xf764, 0xfa7d, 0x003b, 0x0222,
+ 0x0218, 0x03fc, 0x01da, 0xfd1c, 0xfdbb, 0xf874,
+ 0xed97, 0xf418, 0x015f, 0xfdec, 0xf4d8, 0xf006,
+ 0xed65, 0xf27d, 0xfa4f, 0xfaad, 0xf735, 0xf511,
+ 0xf481, 0xf5d4, 0xfaf7, 0x0483, 0x0ca0, 0x0dbd,
+ 0x0a03, 0x0720, 0x06d5, 0x06d2, 0x0a28, 0x1205,
+ 0x169e, 0x185c, 0x1747, 0x0cd7, 0x0539, 0x0943,
+ 0x0c5d, 0x0c6f, 0x0906, 0x01a7, 0x07af, 0x139f,
+ 0x0e28, 0x0593, 0x05f9, 0x067a, 0x0afd, 0x0e65,
+ 0x0752, 0x0489, 0x0a0e, 0x0ae2, 0x0779, 0x036f,
+ 0x0138, 0x084f, 0x1404, 0x163b, 0x0d38, 0x01d7,
+ 0xfa5d, 0xf6be, 0xf283, 0xed20, 0xee87, 0xf6c0,
+ 0xf8cd, 0xf1c8, 0xeae5, 0xead4, 0xf46b, 0xff7f,
+ 0x00a2, 0xfbc9, 0xf53d, 0xef0c, 0xf476, 0x00f5,
+ 0x028e, 0xfb1a, 0xf490, 0xf192, 0xf486, 0xf99b,
+ 0xfa72, 0xfb25, 0x024e, 0x0a50, 0x06e9, 0xfcc2,
+ 0xfaa1, 0xfc0b, 0xfa19, 0xfb1e, 0xfad2, 0xf60c,
+ 0xf755, 0xf98e, 0xf56a, 0xf702, 0xfbd5, 0xf766,
+ 0xf621, 0xfe68, 0xfda0, 0xf3fa, 0xf26f, 0xf406,
+ 0xf0eb, 0xf2bf, 0xfa87, 0x0013, 0x0391, 0x0395,
+ 0xfcf6, 0xf339, 0xe971, 0xe45c, 0xe70c, 0xe7d3,
+ 0xe43f, 0xe808, 0xef05, 0xebc6, 0xe567, 0xe83a,
+ 0xf027, 0xf5c4, 0xf79e, 0xf47b, 0xeebc, 0xeedd,
+ 0xf7db, 0x02a5, 0x096c, 0x0c4e, 0x0b6f, 0x07b5,
+ 0x0551, 0x061b, 0x08af, 0x0d4f, 0x1284, 0x1289,
+ 0x0c4e, 0x066e, 0x03ce, 0x015a, 0x004b, 0x0070,
+ 0xfb3d, 0xf815, 0x024c, 0x09d7, 0x0419, 0x031b,
+ 0x062b, 0x01d5, 0x0357, 0x07da, 0xff93, 0xfbe8,
+ 0x035d, 0xfe88, 0xf12c, 0xed5b, 0xf1ac, 0xfcd3,
+ 0x0ab8, 0x1091, 0x0e5f, 0x059d, 0xf92d, 0xf34d,
+ 0xf240, 0xf152, 0xf502, 0xf8cb, 0xf8f0, 0xf7d1,
+ 0xef70, 0xe87f, 0xf237, 0xfe3a, 0x01e4, 0x02da,
+ 0xf97d, 0xec9f, 0xece0, 0xee09, 0xed91, 0xf685,
+ 0xf969, 0xf327, 0xf5bb, 0xfa6c, 0xf95e, 0xfc5a,
+ 0x0382, 0x085f, 0x07d8, 0x03a4, 0x0182, 0xffbe,
+ 0xfd9d, 0xfe27, 0xfc13, 0xf7aa, 0xf681, 0xf848,
+ 0xff16, 0x0530, 0x0462, 0x05d8, 0x0571, 0xfc5c,
+ 0xf87e, 0xf9d4, 0xfa22, 0xfec6, 0xfe85, 0xf8c2,
+ 0xfc43, 0x014d, 0x0152, 0x017e, 0xfb77, 0xf10f,
+ 0xe9fe, 0xe643, 0xe953, 0xed22, 0xecb4, 0xf237,
+ 0xf796, 0xf3da, 0xef8b, 0xed21, 0xf1c0, 0xff3a,
+ 0x0407, 0x008a, 0xfe28, 0xf730, 0xf5c2, 0xfcf5,
+ 0xf9f2, 0xf6df, 0xffab, 0x01ad, 0xfed8, 0x0468,
+ 0x07c1, 0x0712, 0x0957, 0x07ce, 0x045a, 0x04d6,
+ 0xff78, 0xf5ea, 0xf675, 0xf8c6, 0xf02f, 0xea61,
+ 0xf290, 0xfd6b, 0x030a, 0x0610, 0x0569, 0x01c9,
+ 0x0130, 0x00fe, 0xfa72, 0xf4ee, 0xf986, 0xff59,
+ 0xfcab, 0xf7d7, 0xf8ee, 0xfe08, 0x0323, 0x07d1,
+ 0x091e, 0x04c8, 0x01f1, 0x01d2, 0xfc9d, 0xf84e,
+ 0xfa8b, 0xf9e8, 0xf711, 0xf764, 0xf834, 0xfd78,
+ 0x044c, 0x0309, 0x0098, 0xfea9, 0xf6e8, 0xf45c,
+ 0xfa88, 0xfd1a, 0xfdf9, 0x02aa, 0x0389, 0xfd44,
+ 0xfa7a, 0x02e5, 0x0d2d, 0x0f69, 0x0d73, 0x0b7c,
+ 0x08dc, 0x0296, 0xf799, 0xf1b3, 0xf490, 0xf5ad,
+ 0xf444, 0xf5fe, 0xf978, 0xfc09, 0xfb0d, 0xf958,
+ 0xf9d3, 0xf7f8, 0xf840, 0xfc82, 0xfa84, 0xf7aa,
+ 0xf858, 0xf1fe, 0xebd9, 0xef66, 0xf477, 0xf9b7,
+ 0x0139, 0x06d0, 0x065e, 0xfe05, 0xf66f, 0xf3aa,
+ 0xed1a, 0xe824, 0xec8d, 0xf4bf, 0xfd9a, 0x016e,
+ 0x012b, 0x0711, 0x09d1, 0x0685, 0x0bbe, 0x0dd4,
+ 0x0253, 0xfa11, 0xf7ea, 0xf78e, 0xfefd, 0x085e,
+ 0x0a7b, 0x07d1, 0x0626, 0x0940, 0x0e75, 0x1117,
+ 0x11b3, 0x1222, 0x1396, 0x13e7, 0x0f37, 0x06c8,
+ 0xff32, 0xfdaf, 0xfff9, 0xfe00, 0xfc1b, 0xfeff,
+ 0x0247, 0x088c, 0x0d91, 0x09ea, 0x092a, 0x0b8f,
+ 0x06cb, 0x04f5, 0x06a1, 0x01b6, 0x0042, 0x04c8,
+ 0x03eb, 0x00eb, 0x00d5, 0x0093, 0x0007, 0xff2b,
+ 0xfcb2, 0xfa24, 0xf7fc, 0xf2b5, 0xecfc, 0xf0e3,
+ 0xfa82, 0xfdc4, 0xfd36, 0xfe09, 0x007f, 0x03e6,
+ 0x039b, 0x0450, 0x083a, 0x022b, 0xf84c, 0xf6c3,
+ 0xf4d0, 0xf749, 0x0155, 0x0153, 0xfecf, 0x0609,
+ 0x09a3, 0x09e6, 0x0d52, 0x0d24, 0x096c, 0x02cc,
+ 0xfb20, 0xf819, 0xf295, 0xebe0, 0xef04, 0xf293,
+ 0xf211, 0xf8f2, 0x029d, 0x0775, 0x0b94, 0x0ae0,
+ 0xfffe, 0xf50a, 0xf343, 0xf464, 0xf2ac, 0xf35f,
+ 0xf8db, 0x0066, 0x0861, 0x0af3, 0x05fe, 0x015c,
+ 0xfde4, 0xf5c8, 0xed99, 0xeca2, 0xeecd, 0xee17,
+ 0xece2, 0xef28, 0xf5ea, 0xfd6c, 0xfe4c, 0xfc5e,
+ 0xff86, 0x01d8, 0x0259, 0x056e, 0x0348, 0xfe31,
+ 0xff67, 0x001f, 0xfe83, 0xfe29, 0xfc50, 0xfd25,
+ 0x006b, 0x03bb, 0x0d71, 0x13db, 0x0fcf, 0x0eb1,
+ 0x0d0c, 0x0568, 0x01a4, 0xfdd2, 0xfaec, 0x01b7,
+ 0x0571, 0x0158, 0x00e0, 0x02c3, 0x056e, 0x0b04,
+ 0x0e83, 0x0d7c, 0x0980, 0x04c3, 0x0153, 0x0057,
+ 0x02df, 0x041e, 0x02c4, 0x0481, 0x05d0, 0x0738,
+ 0x0cd6, 0x0a3e, 0xff0d, 0xf921, 0xf565, 0xf17e,
+ 0xf0a7, 0xf0a9, 0xf476, 0xf764, 0xf4f7, 0xf791,
+ 0xfa4f, 0xf717, 0xfa25, 0xffa5, 0x0196, 0x06fb,
+ 0x06eb, 0xfd94, 0xf89f, 0xf74f, 0xf321, 0xf05f,
+ 0xf2a3, 0xf70a, 0xfa47, 0xfff0, 0x0769, 0x0a23,
+ 0x0b86, 0x0952, 0xfd58, 0xf596, 0xf664, 0xf185,
+ 0xeac5, 0xecad, 0xf3f1, 0xf8e0, 0xf8a2, 0xfad2,
+ 0x0197, 0x042e, 0x03de, 0x038a, 0x0142, 0xff5e,
+ 0xfb0a, 0xf513, 0xf329, 0xf078, 0xf105, 0xfaa3,
+ 0x00a9, 0x0073, 0x0030, 0xff94, 0x024d, 0x0214,
+ 0xfb16, 0xf983, 0xf6cd, 0xefb4, 0xf404, 0xf8e8,
+ 0xf70e, 0xfeea, 0x0725, 0x06ae, 0x0747, 0x01c3,
+ 0xfa78, 0xff19, 0xfe4a, 0xf521, 0xf8e9, 0xffba,
+ 0xfac0, 0xf7c2, 0xfd0e, 0x0166, 0x0207, 0x01a6,
+ 0x0475, 0x0a1a, 0x09d2, 0x037c, 0xff0c, 0xfa02,
+ 0xf417, 0xf486, 0xf62c, 0xf543, 0xf8d4, 0xfbca,
+ 0xf9e8, 0xfd82, 0x044f, 0x03c3, 0x0053, 0x00ff,
+ 0x03e1, 0x048d, 0x01bf, 0xfdb5, 0xf861, 0xf3a5,
+ 0xf74c, 0x01ce, 0x07b6, 0x06b3, 0x0508, 0x03dd,
+ 0x009c, 0xfc97, 0xf98c, 0xf72e, 0xf70d, 0xf809,
+ 0xf6e5, 0xf6a9, 0xf9d9, 0xfe5f, 0x019e, 0xff64,
+ 0xfb82, 0xfe7a, 0x0201, 0xff3d, 0xfbf8, 0xf9f1,
+ 0xf672, 0xf300, 0xf44a, 0xfbc7, 0x0046, 0xff0f,
+ 0x0089, 0x012c, 0x00fb, 0x0855, 0x0ab3, 0x01e4,
+ 0xfd11, 0xf9c6, 0xf147, 0xeb31, 0xe826, 0xe942,
+ 0xefc6, 0xf1a2, 0xefb4, 0xf34b, 0xfa7e, 0xfff2,
+ 0xfefc, 0xf9b4, 0xf89b, 0xf87c, 0xf65d, 0xf7b9,
+ 0xf795, 0xf4c4, 0xf8b5, 0xfe33, 0xfe4f, 0xff91,
+ 0x0200, 0x02d9, 0x064c, 0x0808, 0x0145, 0xf8ea,
+ 0xf4e0, 0xf141, 0xeeb0, 0xf13b, 0xf5ee, 0xf98a,
+ 0xfcd1, 0xfddc, 0xfb4c, 0xfa57, 0xfedb, 0x0335,
+ 0x006f, 0xf8b0, 0xf251, 0xf01d, 0xf219, 0xf73a,
+ 0xfe02, 0x03cd, 0x0571, 0x0440, 0x03b6, 0x03e4,
+ 0x0354, 0xffa2, 0xf8e4, 0xf33d, 0xeece, 0xecac,
+ 0xf098, 0xf3d4, 0xf159, 0xf00b, 0xf1c6, 0xf589,
+ 0xfb01, 0xfc2a, 0xfc0e, 0x0021, 0xff0f, 0xf7d4,
+ 0xf5aa, 0xf851, 0xfa14, 0xfa24, 0xfa3f, 0xfb68,
+ 0xf9f8, 0xf7dd, 0xfab9, 0xfcab, 0xfc69, 0x00c4,
+ 0x0277, 0xfb0e, 0xf384, 0xf102, 0xf123, 0xf194,
+ 0xf128, 0xf2a5, 0xf6c9, 0xf914, 0xf7f0, 0xf615,
+ 0xf6bc, 0xf949, 0xf9b2, 0xf898, 0xf98b, 0xfbf1,
+ 0xfce9, 0xfa9c, 0xf852, 0xfb51, 0xffe0, 0x0063,
+ 0x006f, 0x01ec, 0xffcd, 0xf97a, 0xf351, 0xee27,
+ 0xeae9, 0xed35, 0xf18a, 0xf12c, 0xeeab, 0xee0d,
+ 0xeff6, 0xf6a1, 0xfdf1, 0xff9c, 0xfeaf, 0xfc7d,
+ 0xf7b9, 0xf4a0, 0xf363, 0xf28d, 0xf506, 0xf7b8,
+ 0xf742, 0xf74f, 0xf894, 0xfa7a, 0xfd8c, 0xfee3,
+ 0xfee9, 0x00e1, 0x024c, 0xffed, 0xfc13, 0xfacb,
+ 0xfab3, 0xf7e7, 0xf667, 0xf8e7, 0xf984, 0xfa7b,
+ 0x0077, 0x0392, 0x013f, 0xfee4, 0xfb08, 0xf84d,
+ 0xfc49, 0x01a7, 0x0444, 0x04dd, 0x0115, 0xfcba,
+ 0xfef2, 0x0532, 0x09f7, 0x0b7e, 0x0832, 0xff6c,
+ 0xf4e5, 0xedd5, 0xe99b, 0xe77e, 0xec4c, 0xf373,
+ 0xf4de, 0xf742, 0xfb76, 0xf951, 0xf9b1, 0x0124,
+ 0x0207, 0xfdb1, 0xfe1f, 0xfeb6, 0xfbf7, 0xf93c,
+ 0xf850, 0xf8dd, 0xf759, 0xf6f8, 0xfe23, 0x044e,
+ 0x033b, 0x02fa, 0x04dd, 0x056f, 0x04cc, 0x00b6,
+ 0xfb8e, 0xf876, 0xf4dc, 0xf387, 0xf438, 0xf260,
+ 0xf4db, 0xf9f4, 0xf6a9, 0xf585, 0xfc42, 0xfa46,
+ 0xf291, 0xf3de, 0xf84a, 0xfb22, 0xffc2, 0x0123,
+ 0xfe72, 0xfe1c, 0xffde, 0x0129, 0x023f, 0x02d7,
+ 0x02fe, 0x0247, 0xfdbb, 0xf4c3, 0xee2c, 0xee62,
+ 0xef75, 0xef46, 0xf0d2, 0xef65, 0xedc7, 0xf587,
+ 0xfc43, 0xf979, 0xfb2f, 0x030f, 0x03de, 0xfe74,
+ 0xf936, 0xf556, 0xf39f, 0xf330, 0xf491, 0xf734,
+ 0xf769, 0xf864, 0xfbaa, 0xfbd4, 0xfdd9, 0x058b,
+ 0x075d, 0x01d7, 0xff23, 0xfc73, 0xf5ad, 0xf250,
+ 0xf558, 0xf9aa, 0xfa9e, 0xf7bb, 0xf825, 0xfe2f,
+ 0xff82, 0xfc5e, 0xfebc, 0x0153, 0xff05, 0xff4d,
+ 0x01df, 0x0473, 0x096f, 0x0a66, 0x06c7, 0x0732,
+ 0x06df, 0x018e, 0xfe39, 0xfc40, 0xf981, 0xf89c,
+ 0xf6c8, 0xf38a, 0xf245, 0xf2d0, 0xf599, 0xf74f,
+ 0xf3d2, 0xf301, 0xf98c, 0xfe9b, 0xfeff, 0xff82,
+ 0xff9d, 0xfd0f, 0xfa72, 0xf99e, 0xf8a7, 0xf7a0,
+ 0xf71f, 0xf489, 0xf1fd, 0xf428, 0xf7f5, 0xfaeb,
+ 0xffb7, 0x0498, 0x052d, 0x0048, 0xf914, 0xf501,
+ 0xf3fb, 0xf3b9, 0xf5c9, 0xf7cb, 0xf772, 0xf8c1,
+ 0xfb39, 0xfc55, 0xfe1a, 0xfe5b, 0xfa94, 0xf69f,
+ 0xf542, 0xf724, 0xfbb2, 0x0031, 0x04b5, 0x088e,
+ 0x078f, 0x03b7, 0x02cf, 0x0340, 0x0047, 0xfbc3,
+ 0xf9fe, 0xf80f, 0xf2df, 0xf014, 0xf2e5, 0xf77d,
+ 0xfadc, 0xfa77, 0xf81c, 0xf97c, 0xfc42, 0xfe3c,
+ 0x02d5, 0x05dc, 0x0471, 0x0309, 0xffb0, 0xfbb2,
+ 0xfd3f, 0xfd56, 0xf799, 0xf593, 0xf932, 0xfd2a,
+ 0x007c, 0x03e1, 0x09d7, 0x0e6e, 0x0891, 0xffcd,
+ 0xff4d, 0xff1d, 0xfb46, 0xfc03, 0xfe58, 0xfc81,
+ 0xfaf3, 0xfaad, 0xfa2e, 0xfc21, 0xff3a, 0x00b1,
+ 0x0091, 0xfe3d, 0xfc51, 0xfd68, 0xfe9f, 0xffc5,
+ 0x021c, 0x049a, 0x097f, 0x0f38, 0x0fae, 0x0d1c,
+ 0x0b7f, 0x08c8, 0x02f4, 0xfb63, 0xf8fc, 0xfe09,
+ 0x014e, 0x0128, 0x01f8, 0xff24, 0xf9c7, 0xf8c6,
+ 0xfb2d, 0x00b4, 0x073a, 0x093e, 0x096b, 0x0822,
+ 0x042a, 0x04fd, 0x07b0, 0x03e1, 0x0078, 0x0064,
+ 0xfdf2, 0xfce6, 0x0005, 0x0305, 0x06aa, 0x0c88,
+ 0x0f9a, 0x0c8a, 0x0919, 0x09e5, 0x08cb, 0x0277,
+ 0xfe79, 0x009a, 0x0376, 0x035f, 0x03ae, 0x058b,
+ 0x03de, 0x0050, 0x0095, 0x01d7, 0x037f, 0x077e,
+ 0x08dd, 0x0952, 0x0d5e, 0x0ee1, 0x0c6f, 0x0b3a,
+ 0x0b5a, 0x0b44, 0x08e7, 0x05e5, 0x0602, 0x0357,
+ 0xfcb7, 0xfb0c, 0xfc29, 0xfaf8, 0xfa11, 0xf82a,
+ 0xf595, 0xf65b, 0xf8e9, 0xfb5b, 0xfddc, 0x0085,
+ 0x036a, 0x046a, 0x0518, 0x0742, 0x0540, 0xff36,
+ 0xfb5b, 0xfa29, 0xfc28, 0x0049, 0x021a, 0x02b9,
+ 0x035f, 0x030a, 0x01e7, 0xfedd, 0xff30, 0x05b4,
+ 0x0720, 0x0364, 0x0478, 0x057d, 0x04e7, 0x07d1,
+ 0x0790, 0x047e, 0x058c, 0x0365, 0xfced, 0xfc81,
+ 0x0021, 0x02ff, 0x0791, 0x0c94, 0x11a7, 0x1711,
+ 0x1651, 0x109e, 0x0e65, 0x0d45, 0x0a98, 0x0a18,
+ 0x08a4, 0x04df, 0x02ec, 0xffc7, 0xfc48, 0xfea4,
+ 0x012b, 0xfef0, 0xfd68, 0xfe0a, 0xff8d, 0x0202,
+ 0x0482, 0x0822, 0x0a97, 0x08d9, 0x08c9, 0x0c69,
+ 0x0cea, 0x0933, 0x0547, 0x02e8, 0x0200, 0x02c1,
+ 0x0537, 0x0566, 0x032b, 0x054a, 0x0834, 0x064e,
+ 0x076c, 0x0b51, 0x0981, 0x0723, 0x083d, 0x0718,
+ 0x0487, 0x044d, 0x05c7, 0x0756, 0x06cf, 0x04a1,
+ 0x0235, 0xfe0b, 0xfa7e, 0xfbf7, 0x00c3, 0x06c0,
+ 0x0de0, 0x124e, 0x1080, 0x0b2e, 0x06ef, 0x054d,
+ 0x055e, 0x0556, 0x0448, 0x02b8, 0x0093, 0xfde8,
+ 0xfc70, 0xfcc3, 0xfcf8, 0xfa86, 0xf539, 0xf10d,
+ 0xf1da, 0xf7da, 0x0048, 0x05cd, 0x07d1, 0x0a0c,
+ 0x0869, 0x01db, 0x006c, 0x0201, 0xfccd, 0xf78e,
+ 0xf9ac, 0xfd9a, 0xff98, 0xffab, 0xfed5, 0x00e1,
+ 0x04fe, 0x0672, 0x055a, 0x04f7, 0x067b, 0x07de,
+ 0x077f, 0x072f, 0x06af, 0x03ec, 0x025b, 0x043c,
+ 0x03ae, 0xfee3, 0xfc77, 0xfd58, 0xfd2b, 0xfdd7,
+ 0x01ba, 0x0670, 0x0bf0, 0x10b4, 0x0f23, 0x0942,
+ 0x063b, 0x0596, 0x0386, 0x019c, 0x01a2, 0xffbf,
+ 0xfac4, 0xf98b, 0xfdc6, 0x0029, 0xfe4b, 0xfb1e,
+ 0xf7db, 0xf5da, 0xf59c, 0xf62a, 0xf80c, 0xfb5f,
+ 0xff22, 0x0226, 0x02eb, 0x0298, 0x0380, 0x03dc,
+ 0x012b, 0xfdba, 0xfce9, 0xfd83, 0xfdd7, 0xff0e,
+ 0xff79, 0xfe3f, 0x0057, 0x0515, 0x0698, 0x0636,
+ 0x06e3, 0x0718, 0x05da, 0x04bc, 0x05de, 0x0688,
+ 0x039d, 0x0167, 0xffbc, 0xfad1, 0xf8c8, 0xfbdc,
+ 0xff20, 0x03da, 0x0836, 0x09d7, 0x0dfd, 0x1124,
+ 0x0d9a, 0x0933, 0x0688, 0x0458, 0x02cf, 0xff25,
+ 0xfbde, 0xfbb8, 0xfa0d, 0xf940, 0xfce1, 0xfe99,
+ 0xfbbb, 0xf6e0, 0xf319, 0xf4b0, 0xf836, 0xf812,
+ 0xf7c4, 0xfa25, 0xfda7, 0x00f5, 0x0222, 0x02b3,
+ 0x049b, 0x03c2, 0xff2e, 0xfbe3, 0xfa2b, 0xf729,
+ 0xf641, 0xfb7b, 0x0165, 0x02ab, 0x0348, 0x0430,
+ 0x0122, 0xfc29, 0xf8a5, 0xf66f, 0xf723, 0xfb16,
+ 0xffcd, 0x031c, 0x025b, 0xfe1d, 0xfae8, 0xf925,
+ 0xf6ad, 0xf648, 0xfb2f, 0x015f, 0x03b3, 0x04f0,
+ 0x08db, 0x0c47, 0x0b6d, 0x0664, 0x0000, 0xfc33,
+ 0xfae4, 0xf9a9, 0xf989, 0xfae7, 0xfb79, 0xfab3,
+ 0xf97c, 0xf807, 0xf602, 0xf481, 0xf4f4, 0xf621,
+ 0xf87b, 0xfcb6, 0xfc9c, 0xf74f, 0xf681, 0xfb6a,
+ 0xff44, 0x0144, 0x02ab, 0x034f, 0x024e, 0xfe0b,
+ 0xf948, 0xf6bd, 0xf545, 0xf753, 0xfd4e, 0x01e2,
+ 0x0517, 0x07e5, 0x06b0, 0x0304, 0x004d, 0xfd54,
+ 0xfb13, 0xfc14, 0xfee9, 0x0125, 0x0224, 0x02ac,
+ 0x0342, 0x01e5, 0xfcf2, 0xf7f3, 0xf811, 0xfc0f,
+ 0xffbe, 0x0496, 0x0bc8, 0x1002, 0x0d95, 0x066f,
+ 0xfee9, 0xfac5, 0xf8b1, 0xf725, 0xf917, 0xfc64,
+ 0xfc55, 0xfbe0, 0xfc97, 0xfb1a, 0xf892, 0xf780,
+ 0xf781, 0xf84a, 0xf8dc, 0xf8c6, 0xf91b, 0xf9dd,
+ 0xfab9, 0xfac0, 0xfa27, 0xfcc0, 0x01c6, 0x041a,
+ 0x042d, 0x01cb, 0xfa56, 0xf3fe, 0xf45e, 0xf62f,
+ 0xf769, 0xfc3a, 0x0291, 0x0584, 0x05b1, 0x0536,
+ 0x0338, 0xfecf, 0xfa94, 0xfa13, 0xfc48, 0xfdcd,
+ 0xfeb9, 0x00cf, 0x03a8, 0x0520, 0x0235, 0xfb4f,
+ 0xf74f, 0xfa13, 0xff73, 0x056c, 0x0c65, 0x0f89,
+ 0x0cc9, 0x0994, 0x0764, 0x02c1, 0xfd87, 0xfbc3,
+ 0xfbcb, 0xfb43, 0xfb91, 0xfc65, 0xfc38, 0xfc6d,
+ 0xfc99, 0xfa9f, 0xf94a, 0xfba3, 0xff12, 0x00df,
+ 0x0259, 0x04a6, 0x053f, 0x026d, 0xff89, 0xff9a,
+ 0x02bf, 0x07b6, 0x096f, 0x0581, 0x012f, 0xfe19,
+ 0xfa0e, 0xf784, 0xf723, 0xf7e2, 0xfc96, 0x03d5,
+ 0x080f, 0x08c9, 0x07fb, 0x0549, 0x0065, 0xfc9e,
+ 0xfd85, 0xffd4, 0x005d, 0x0283, 0x0578, 0x0469,
+ 0x00a5, 0xfce1, 0xfa7b, 0xfd02, 0x0409, 0x08d8,
+ 0x07cd, 0x0562, 0x05d6, 0x0611, 0x03ad, 0x00e6,
+ 0xfdaa, 0xfa25, 0xf854, 0xf6ec, 0xf544, 0xf456,
+ 0xf3d5, 0xf45f, 0xf47d, 0xf34b, 0xf4df, 0xf836,
+ 0xf9f8, 0xfca6, 0xfead, 0xfd66, 0xfbb2, 0xf955,
+ 0xf7fb, 0xfb35, 0xfdc8, 0xfdfd, 0xff50, 0xfd8e,
+ 0xf850, 0xf567, 0xf4af, 0xf564, 0xf6a4, 0xf66b,
+ 0xf887, 0xfcfd, 0xff4e, 0x0301, 0x0846, 0x0779,
+ 0x030e, 0x0328, 0x0588, 0x037a, 0xfdad, 0xfa03,
+ 0xfacc, 0xfd1a, 0xfd07, 0xfa79, 0xfa46, 0xfd74,
+ 0xffa0, 0x01e7, 0x061d, 0x07f8, 0x07ab, 0x07d1,
+ 0x05fc, 0x02f8, 0x0110, 0xfddf, 0xfa40, 0xfa7b,
+ 0xfd90, 0xfe04, 0xf9ae, 0xf5cb, 0xf69b, 0xf890,
+ 0xf9b9, 0xfcf7, 0x00c1, 0x0130, 0xffff, 0xfff5,
+ 0xfec6, 0xfbc2, 0xfb83, 0xfe72, 0x008b, 0x021c,
+ 0x042e, 0x0444, 0x008c, 0xfab1, 0xf754, 0xf7e3,
+ 0xf9d1, 0xfdaf, 0x01db, 0x027e, 0x03dc, 0x07c0,
+ 0x0900, 0x08a4, 0x0875, 0x087d, 0x0b4f, 0x0b63,
+ 0x04c5, 0xff8f, 0xfc83, 0xf8da, 0xf97a, 0xfbe3,
+ 0xfc3c, 0xff3a, 0x03a7, 0x05d7, 0x07f8, 0x0a12,
+ 0x0a62, 0x07ad, 0x02a7, 0x002d, 0x0046, 0xfeab,
+ 0xfc3d, 0xfad2, 0xfa4d, 0xf94e, 0xf62d, 0xf547,
+ 0xf8ab, 0xfa07, 0xf977, 0xfb1b, 0xfc7a, 0xfc6c,
+ 0xfbba, 0xf9d5, 0xf886, 0xf890, 0xfa21, 0xfdc5,
+ 0xffe9, 0xffde, 0x0012, 0xfdc6, 0xf933, 0xf627,
+ 0xf354, 0xf171, 0xf37c, 0xf772, 0xfb5b, 0xfe9e,
+ 0x00d3, 0x03d1, 0x06e4, 0x0876, 0x09de, 0x091d,
+ 0x04e0, 0x023a, 0x0300, 0x03d1, 0x02f4, 0x0034,
+ 0xfc9e, 0xfa4b, 0xfa5b, 0xfd57, 0x025a, 0x07d3,
+ 0x0ce5, 0x0eee, 0x0ca3, 0x085b, 0x02d4, 0xfde2,
+ 0xfd4b, 0xfe55, 0xfdb4, 0xfe31, 0xfe8e, 0xfbcc,
+ 0xf9fb, 0xfb4c, 0xfcc6, 0xfd8b, 0xfda2, 0xfd5d,
+ 0xfde1, 0xfd4d, 0xfa0a, 0xf60a, 0xf321, 0xf2ff,
+ 0xf6a1, 0xfc2c, 0x0209, 0x0737, 0x0901, 0x0551,
+ 0xfda8, 0xf774, 0xf67a, 0xf7a3, 0xf83f, 0xfaa4,
+ 0xfed8, 0x01fc, 0x038c, 0x0417, 0x0436, 0x0516,
+ 0x05f4, 0x04be, 0x0308, 0x03e4, 0x04e2, 0x031b,
+ 0x0154, 0xffe9, 0xfca8, 0xfa47, 0xfa21, 0xfb05,
+ 0xfeea, 0x04aa, 0x089f, 0x0a72, 0x0904, 0x052a,
+ 0x0283, 0x0023, 0xfd7b, 0xfbfb, 0xfad3, 0xfbd2,
+ 0xfdde, 0xfb7d, 0xf8bd, 0xf9cb, 0xf913, 0xf709,
+ 0xf887, 0xfc03, 0xfe86, 0xfcad, 0xf6ce, 0xf36b,
+ 0xf225, 0xefbe, 0xf15d, 0xf8ba, 0x0044, 0x0584,
+ 0x0835, 0x077b, 0x03a7, 0xfe8f, 0xfaee, 0xf995,
+ 0xf9ef, 0xfc33, 0xff5b, 0x02a3, 0x0694, 0x097d,
+ 0x09a6, 0x083b, 0x0773, 0x07e1, 0x0722, 0x050c,
+ 0x0518, 0x05fc, 0x048e, 0x027b, 0xfff8, 0xfd4d,
+ 0xff47, 0x049b, 0x06cd, 0x07d5, 0x0be0, 0x0ea2,
+ 0x0d15, 0x0a59, 0x0666, 0x0149, 0xffc4, 0x00ba,
+ 0x00ac, 0x02ea, 0x0540, 0x0217, 0xffb1, 0x01b0,
+ 0x01b3, 0x006e, 0x0181, 0x02c6, 0x03d4, 0x033f,
+ 0xfe55, 0xf895, 0xf4d5, 0xf2c8, 0xf51f, 0xfb91,
+ 0x019a, 0x065a, 0x09e7, 0x0a2c, 0x0700, 0x0203,
+ 0xfc7f, 0xf852, 0xf786, 0xf9f0, 0xfd2a, 0xffbe,
+ 0x0288, 0x0622, 0x08fa, 0x0a19, 0x0b51, 0x0c9b,
+ 0x0a40, 0x04a0, 0x009d, 0xff3b, 0xff14, 0x0067,
+ 0x0199, 0x0115, 0x012d, 0x032d, 0x056e, 0x0746,
+ 0x0858, 0x078e, 0x05a6, 0x03b6, 0x00d1, 0xfd1e,
+ 0xfb32, 0xfc79, 0xff83, 0x01c3, 0x0195, 0xff19,
+ 0xfc07, 0xfab3, 0xfb50, 0xfbed, 0xfc3d, 0xfc1d,
+ 0xf990, 0xf5b6, 0xf2ee, 0xefb4, 0xec8d, 0xec3b,
+ 0xedc2, 0xf1b3, 0xf995, 0x002f, 0x01cd, 0x0198,
+ 0xffb2, 0xfac0, 0xf6a7, 0xf539, 0xf40e, 0xf47c,
+ 0xf887, 0xfd0a, 0x0067, 0x04a1, 0x0885, 0x0aba,
+ 0x0cb2, 0x0c4e, 0x07ab, 0x031a, 0x00b9, 0xfe7f,
+ 0xfd59, 0xfe34, 0xfef5, 0xff04, 0xff98, 0x0160,
+ 0x045a, 0x070e, 0x072c, 0x0498, 0x020c, 0x011e,
+ 0x00b4, 0x00d1, 0x0263, 0x03fd, 0x0472, 0x047b,
+ 0x0394, 0x00ba, 0xfd58, 0xfb57, 0xfa51, 0xf99d,
+ 0xfa38, 0xfbbc, 0xfcac, 0xfd29, 0xfbd3, 0xf71f,
+ 0xf248, 0xf03b, 0xf0ff, 0xf5ca, 0xfe0c, 0x05e0,
+ 0x09b6, 0x07a1, 0x01eb, 0xfd13, 0xfa6d, 0xfa88,
+ 0xfd2a, 0xff9f, 0x01ad, 0x03bd, 0x0438, 0x0436,
+ 0x04b6, 0x052b, 0x06c6, 0x077d, 0x046e, 0x0114,
+ 0x002e, 0x013e, 0x042b, 0x0530, 0x01bd, 0xfefa,
+ 0x0069, 0x0352, 0x04eb, 0x0451, 0x01cd, 0xfe93,
+ 0xfc60, 0xfc58, 0xfd34, 0xfe04, 0x0015, 0x036a,
+ 0x0695, 0x07df, 0x05e4, 0x030c, 0x020b, 0x0112,
+ 0xff64, 0xfe3c, 0xfcd3, 0xfb9c, 0xfbca, 0xfbcc,
+ 0xfa3f, 0xf693, 0xf103, 0xecef, 0xed1c, 0xf0fc,
+ 0xf7ba, 0xff07, 0x02d8, 0x022c, 0xff26, 0xfbb7,
+ 0xf8fb, 0xf804, 0xf9e6, 0xfe06, 0x01d3, 0x038c,
+ 0x0384, 0x035e, 0x04a2, 0x06a1, 0x0780, 0x0702,
+ 0x0694, 0x07a2, 0x090b, 0x085e, 0x06b8, 0x05ef,
+ 0x0465, 0x0237, 0x023c, 0x04c6, 0x0854, 0x0afb,
+ 0x0ae1, 0x0932, 0x07cf, 0x069c, 0x0659, 0x07d8,
+ 0x09cb, 0x0af5, 0x0b62, 0x0be0, 0x0ccb, 0x0cba,
+ 0x0afb, 0x0958, 0x0922, 0x094e, 0x085d, 0x05fa,
+ 0x021c, 0xfd94, 0xfab2, 0xf8fe, 0xf5d2, 0xf320,
+ 0xf41a, 0xf7eb, 0xfd35, 0x0249, 0x0512, 0x05a7,
+ 0x038f, 0xffe9, 0xffa0, 0x0273, 0x042a, 0x053e,
+ 0x064d, 0x064e, 0x0664, 0x06a9, 0x06c8, 0x0809,
+ 0x094b, 0x0978, 0x0a48, 0x0b20, 0x0a3d, 0x091a,
+ 0x0843, 0x056f, 0x0197, 0x00d6, 0x03b2, 0x077b,
+ 0x0ab7, 0x0cd6, 0x0cf2, 0x09c6, 0x0451, 0x0156,
+ 0x01d6, 0x01b0, 0x018c, 0x03e5, 0x066a, 0x07e2,
+ 0x0873, 0x078a, 0x0753, 0x08a4, 0x09b3, 0x0a01,
+ 0x07cf, 0x0355, 0x0034, 0xfd42, 0xf90e, 0xf6b1,
+ 0xf57e, 0xf3e1, 0xf461, 0xf745, 0xfb12, 0xfeec,
+ 0x00ad, 0xffe3, 0xfe00, 0xfc20, 0xfc14, 0xfe2f,
+ 0x009e, 0x030c, 0x05d2, 0x07e1, 0x083c, 0x085c,
+ 0x0a3f, 0x0bc3, 0x0aaf, 0x09f7, 0x0b8f, 0x0d6e,
+ 0x0e47, 0x0de5, 0x0c17, 0x08a4, 0x0493, 0x03b3,
+ 0x0707, 0x0b60, 0x0fac, 0x120a, 0x0f5e, 0x0acf,
+ 0x0836, 0x064c, 0x04ec, 0x05fa, 0x0a78, 0x10ed,
+ 0x14b5, 0x149f, 0x13ee, 0x12f8, 0x10f7, 0x0e48,
+ 0x0acf, 0x0851, 0x0699, 0x02b2, 0xff30, 0xff07,
+ 0xff59, 0xfeb4, 0xfd3e, 0xfae6, 0xfa98, 0xfd33,
+ 0x009e, 0x0483, 0x06f1, 0x05e2, 0x02ba, 0xfec1,
+ 0xfd3f, 0x00ec, 0x04c1, 0x0624, 0x08f2, 0x0bf9,
+ 0x0d44, 0x0f74, 0x11d3, 0x12d6, 0x12ee, 0x100b,
+ 0x0bb7, 0x0ae6, 0x0bc6, 0x0b0f, 0x0a0a, 0x0855,
+ 0x0557, 0x03cf, 0x04ed, 0x0725, 0x0927, 0x0a53,
+ 0x0a62, 0x08c3, 0x0584, 0x01da, 0xfe70, 0xfd3e,
+ 0x015a, 0x088f, 0x0d94, 0x0f82, 0x0ee6, 0x0b71,
+ 0x07cc, 0x065e, 0x058f, 0x0400, 0x01b1, 0xfe09,
+ 0xf9f2, 0xf7d4, 0xf80c, 0xf8ce, 0xf86e, 0xf6de,
+ 0xf5aa, 0xf626, 0xf839, 0xfac5, 0xfce3, 0xfed6,
+ 0x001c, 0xff27, 0xfd39, 0xfcea, 0xfd76, 0xfda1,
+ 0xfe1e, 0xfea4, 0xff08, 0x00cf, 0x0414, 0x06d3,
+ 0x078c, 0x0681, 0x0527, 0x0400, 0x0240, 0x0054,
+ 0xffa2, 0xfffd, 0x0041, 0x0068, 0x00c5, 0x0098,
+ 0xff37, 0xfd18, 0xfb70, 0xfb9f, 0xfcee, 0xfce7,
+ 0xfc8b, 0xfed1, 0x0328, 0x0886, 0x0e9a, 0x11ba,
+ 0x0f70, 0x0afb, 0x07a5, 0x063a, 0x06d4, 0x0771,
+ 0x0520, 0x0039, 0xfbc2, 0xf950, 0xf84f, 0xf890,
+ 0xfa18, 0xfb1b, 0xfa84, 0xfa31, 0xfb33, 0xfc7a,
+ 0xfe45, 0x00f6, 0x0227, 0x00e1, 0xffd5, 0xffaf,
+ 0xfe90, 0xfce3, 0xfbff, 0xfc4a, 0xfe40, 0x013f,
+ 0x04c6, 0x0902, 0x0b80, 0x0b2d, 0x0ab0, 0x08fd,
+ 0x0462, 0x012f, 0x0141, 0x01ce, 0x034b, 0x05cd,
+ 0x060d, 0x043c, 0x02d4, 0x0149, 0xfec1, 0xfcc1,
+ 0xfcaa, 0xfd72, 0xfdcf, 0xff53, 0x03b2, 0x0960,
+ 0x0dd1, 0x0f24, 0x0cdc, 0x0999, 0x080d, 0x0835,
+ 0x0962, 0x0904, 0x03ce, 0xfbbe, 0xf512, 0xf0fa,
+ 0xefe2, 0xf102, 0xf244, 0xf3a8, 0xf455, 0xf316,
+ 0xf2d4, 0xf441, 0xf4d7, 0xf683, 0xfa01, 0xfb89,
+ 0xfb8e, 0xfc33, 0xfc2a, 0xfbe1, 0xfcc1, 0xfd99,
+ 0xfe42, 0x005a, 0x03bf, 0x06da, 0x0905, 0x09a8,
+ 0x0742, 0x02e3, 0xff16, 0xfb91, 0xf9dd, 0xfd1e,
+ 0x0240, 0x052a, 0x0621, 0x04ef, 0x026e, 0x0087,
+ 0xfe1d, 0xfbf0, 0xfbf5, 0xfbe9, 0xfac3, 0xfaba,
+ 0xfd42, 0x0286, 0x07c4, 0x09e6, 0x096c, 0x071c,
+ 0x04d3, 0x054b, 0x0648, 0x04bb, 0x00d3, 0xfac0,
+ 0xf475, 0xf020, 0xecde, 0xeb42, 0xec29, 0xede9,
+ 0xefbe, 0xf064, 0xef67, 0xf078, 0xf473, 0xf81b,
+ 0xfa98, 0xfbe4, 0xfb79, 0xf9d3, 0xf749, 0xf502,
+ 0xf464, 0xf599, 0xf8b7, 0xfc37, 0xfdeb, 0xfe8e,
+ 0xff0c, 0xff60, 0xffdf, 0xfebc, 0xfae0, 0xf7a5,
+ 0xf840, 0xfc5a, 0x00da, 0x0219, 0xffd4, 0xfc0c,
+ 0xf7f1, 0xf551, 0xf555, 0xf693, 0xf7c5, 0xf809,
+ 0xf672, 0xf54a, 0xf811, 0xfda4, 0x01e0, 0x0313,
+ 0x027c, 0x01f1, 0x0180, 0x0027, 0xff51, 0xffaf,
+ 0xfd80, 0xf82c, 0xf422, 0xf208, 0xf0e3, 0xf23d,
+ 0xf464, 0xf47b, 0xf3a9, 0xf29d, 0xf10f, 0xf106,
+ 0xf42e, 0xf97d, 0xfe3a, 0x0033, 0xff24, 0xfbde,
+ 0xf896, 0xf751, 0xf725, 0xf813, 0xfc18, 0x0192,
+ 0x0536, 0x06e2, 0x070b, 0x0510, 0x019c, 0xfe73,
+ 0xfb8d, 0xf8bf, 0xf979, 0xff20, 0x048e, 0x0689,
+ 0x064f, 0x036f, 0xfe80, 0xfb68, 0xfb7c, 0xfc82,
+ 0xfda4, 0xffcb, 0x01a0, 0x01d0, 0x03af, 0x0866,
+ 0x0b9a, 0x0c44, 0x0b9c, 0x08f5, 0x06cd, 0x0747,
+ 0x07c2, 0x06be, 0x03f9, 0xffd4, 0xfd28, 0xfbfb,
+ 0xfada, 0xfb62, 0xfc57, 0xfb3b, 0xfa9f, 0xfc06,
+ 0xfd8b, 0xff5b, 0x021e, 0x04a4, 0x06be, 0x089f,
+ 0x082c, 0x049e, 0x014f, 0xffa9, 0xfdf8, 0xfd83,
+ 0xff84, 0x01c7, 0x0401, 0x06fa, 0x089e, 0x0756,
+ 0x0448, 0x0116, 0xfdc0, 0xfa87, 0xfa8d, 0xfe51,
+ 0x010d, 0x0135, 0x00f7, 0xff8f, 0xfbeb, 0xf869,
+ 0xf797, 0xf929, 0xfb74, 0xfe14, 0x009d, 0x0205,
+ 0x032d, 0x04d6, 0x06a8, 0x0979, 0x0c05, 0x0b6c,
+ 0x091e, 0x084f, 0x0952, 0x0a03, 0x0831, 0x04f3,
+ 0x01ac, 0xfcea, 0xf81b, 0xf5e1, 0xf415, 0xf173,
+ 0xef9e, 0xee54, 0xee14, 0xf11a, 0xf6f2, 0xfce8,
+ 0x0069, 0xffac, 0xfb1c, 0xf5ac, 0xf1eb, 0xef71,
+ 0xed75, 0xede3, 0xf1d7, 0xf6b2, 0xf9b1, 0xfaf0,
+ 0xfba2, 0xfbb9, 0xfadc, 0xf940, 0xf674, 0xf3af,
+ 0xf4b8, 0xf9a1, 0xfdd8, 0xff79, 0xffbf, 0xfdc1,
+ 0xf902, 0xf562, 0xf503, 0xf596, 0xf7b7, 0xfc92,
+ 0xfffc, 0x00c1, 0x02b6, 0x05f3, 0x08a1, 0x0a4b,
+ 0x0a54, 0x0986, 0x0817, 0x0542, 0x0349, 0x0315,
+ 0x0273, 0x00a8, 0xfccd, 0xf718, 0xf30a, 0xf126,
+ 0xef66, 0xedd1, 0xebd2, 0xe895, 0xe621, 0xe779,
+ 0xed66, 0xf5b0, 0xfd0d, 0xffcb, 0xfc57, 0xf7c3,
+ 0xf5fe, 0xf3a4, 0xf0bd, 0xf178, 0xf4c7, 0xf8e7,
+ 0xfe51, 0x0313, 0x04d5, 0x038d, 0x0130, 0xff8d,
+ 0xfe24, 0xfe04, 0x012d, 0x0568, 0x0858, 0x09f3,
+ 0x0909, 0x053f, 0x00a8, 0xfe03, 0xfe52, 0xff6d,
+ 0x0033, 0x011f, 0x00f0, 0x002e, 0xffe9, 0xfef1,
+ 0xff31, 0x0230, 0x04f4, 0x0686, 0x063b, 0x02ca,
+ 0x001b, 0x00a4, 0x015a, 0x009e, 0xfe6b, 0xfb74,
+ 0xf964, 0xf774, 0xf4dc, 0xf317, 0xf2ab, 0xf352,
+ 0xf5d8, 0xfb8d, 0x02de, 0x07bb, 0x0b16, 0x0ead,
+ 0x0d58, 0x06ea, 0x02d0, 0x0188, 0x003d, 0x0168,
+ 0x0678, 0x0d1e, 0x1261, 0x145a, 0x13f3, 0x1252,
+ 0x0f0d, 0x0a8e, 0x06d8, 0x069e, 0x0999, 0x0c32,
+ 0x0da1, 0x0e11, 0x0a7d, 0x02f0, 0xfbdf, 0xf74d,
+ 0xf491, 0xf410, 0xf707, 0xfc22, 0xffca, 0x00f8,
+ 0x006c, 0xfe8e, 0xfea5, 0x028a, 0x0593, 0x04f2,
+ 0x0347, 0x0154, 0xfe82, 0xfccf, 0xfd4a, 0xfe26,
+ 0xfe1c, 0xfd77, 0xfc27, 0xf93a, 0xf459, 0xef2f,
+ 0xec34, 0xebdf, 0xed83, 0xf190, 0xf7f0, 0xfec8,
+ 0x0386, 0x0366, 0xfe7e, 0xf8ae, 0xf3bb, 0xee74,
+ 0xea1e, 0xe995, 0xece7, 0xf12b, 0xf328, 0xf290,
+ 0xf1cb, 0xf18c, 0xefbc, 0xeb65, 0xe674, 0xe2c3,
+ 0xe028, 0xde62, 0xdd86, 0xdc8f, 0xda61, 0xd70e,
+ 0xd396, 0xd1fc, 0xd37f, 0xd6b3, 0xda71, 0xdfcb,
+ 0xe675, 0xec30, 0xf0c1, 0xf5a9, 0xfb82, 0x01e6,
+ 0x06ca, 0x07ee, 0x06f2, 0x0750, 0x0a3f, 0x0ec6,
+ 0x122e, 0x1301, 0x1383, 0x150a, 0x15c7, 0x1445,
+ 0x1090, 0x0c73, 0x0a3d, 0x0ab6, 0x0eb9, 0x1605,
+ 0x1d66, 0x22f7, 0x25d5, 0x23d3, 0x1ec4, 0x1b1f,
+ 0x18bb, 0x1614, 0x14e0, 0x167e, 0x1a34, 0x1e80,
+ 0x2139, 0x218c, 0x215d, 0x216c, 0x2017, 0x1e52,
+ 0x1efd, 0x21e7, 0x256f, 0x2898, 0x2a29, 0x2a22,
+ 0x294c, 0x27f2, 0x2762, 0x2853, 0x29ef, 0x2bff,
+ 0x2d9a, 0x2d6c, 0x2c27, 0x2ac2, 0x29eb, 0x2ae2,
+ 0x2dcf, 0x3138, 0x325a, 0x3006, 0x2d3a, 0x2bfa,
+ 0x2ba2, 0x2ce7, 0x2ea3, 0x2e45, 0x2d79, 0x2cc8,
+ 0x28e0, 0x21d4, 0x1a6d, 0x13cc, 0x0ece, 0x0cd2,
+ 0x0f88, 0x1705, 0x1fa9, 0x25e2, 0x27e8, 0x2479,
+ 0x1e2a, 0x1929, 0x14ac, 0x0f67, 0x0bf0, 0x0bce,
+ 0x0e8e, 0x1335, 0x1720, 0x19db, 0x1c9d, 0x1bc2,
+ 0x15d3, 0x1283, 0x1510, 0x1688, 0x147b, 0x1428,
+ 0x16ee, 0x18a0, 0x170a, 0x1465, 0x1322, 0x12a7,
+ 0x11cb, 0x11a3, 0x1322, 0x1462, 0x1366, 0x10ed,
+ 0x0e19, 0x0c07, 0x0d8b, 0x1239, 0x14b8, 0x134a,
+ 0x1165, 0x10ab, 0x104a, 0x0fe0, 0x0f3b, 0x0d8d,
+ 0x09df, 0x0467, 0xfe0f, 0xf716, 0xf027, 0xea4c,
+ 0xe627, 0xe4ff, 0xe7d3, 0xee28, 0xf62c, 0xfc55,
+ 0xfde7, 0xfba7, 0xf7f1, 0xf4dd, 0xf31d, 0xf23c,
+ 0xf309, 0xf5c7, 0xf90e, 0xfc85, 0xff30, 0xffd6,
+ 0x0052, 0x0105, 0xffc3, 0xfdde, 0xfd67, 0xfdac,
+ 0xfef0, 0x013c, 0x0214, 0x00f6, 0x00c7, 0x02d4,
+ 0x052f, 0x0623, 0x0639, 0x0751, 0x0a3a, 0x0ca2,
+ 0x0bee, 0x08b6, 0x04fd, 0x0346, 0x057f, 0x08ba,
+ 0x088e, 0x0552, 0x01df, 0x00b7, 0x025b, 0x041d,
+ 0x0478, 0x03fd, 0x026d, 0xffec, 0xfc0c, 0xf5e5,
+ 0xefc9, 0xec0e, 0xea81, 0xeba3, 0xf004, 0xf797,
+ 0x0121, 0x083b, 0x09f3, 0x0742, 0x021a, 0xfe50,
+ 0xfe0a, 0xfec2, 0xfff3, 0x026c, 0x0436, 0x054e,
+ 0x06c8, 0x074d, 0x0669, 0x0420, 0x00b7, 0xfee9,
+ 0xffd7, 0x01ad, 0x0366, 0x0454, 0x042b, 0x03e2,
+ 0x03e7, 0x03ce, 0x02f0, 0x0189, 0x0166, 0x0274,
+ 0x023c, 0x0006, 0xfc62, 0xf786, 0xf32a, 0xf1df,
+ 0xf41b, 0xf73c, 0xf7a8, 0xf4e1, 0xf21b, 0xf1f1,
+ 0xf30e, 0xf2df, 0xf269, 0xf387, 0xf41d, 0xf1f2,
+ 0xed83, 0xe761, 0xe1b0, 0xdf94, 0xe08a, 0xe33c,
+ 0xe87d, 0xeff5, 0xf776, 0xfbf0, 0xfb89, 0xf8c5,
+ 0xf661, 0xf433, 0xf31a, 0xf3b7, 0xf4ff, 0xf79c,
+ 0xfb04, 0xfceb, 0xfe38, 0xff39, 0xfd99, 0xfa0e,
+ 0xf736, 0xf665, 0xf7b6, 0xf8f6, 0xf8df, 0xf8c6,
+ 0xf857, 0xf7ce, 0xf96d, 0xfc06, 0xfd2e, 0xfdc3,
+ 0xfed1, 0x000f, 0x0088, 0xfeb3, 0xfa95, 0xf5ec,
+ 0xf33d, 0xf513, 0xfa2a, 0xfdf5, 0xfe23, 0xfbcf,
+ 0xfa18, 0xfb47, 0xfd65, 0xfe57, 0xff8e, 0x0100,
+ 0x003b, 0xfc8c, 0xf675, 0xeef6, 0xe888, 0xe531,
+ 0xe52b, 0xe7dd, 0xecf8, 0xf467, 0xfbf6, 0x001d,
+ 0x005c, 0xfe0b, 0xf9f2, 0xf627, 0xf3fd, 0xf226,
+ 0xf0e8, 0xf1b0, 0xf396, 0xf554, 0xf67c, 0xf615,
+ 0xf30f, 0xee21, 0xead8, 0xeae4, 0xea9d, 0xe859,
+ 0xe749, 0xe86c, 0xe9ff, 0xeb5c, 0xed04, 0xef06,
+ 0xef86, 0xeeaa, 0xeffc, 0xf20c, 0xf04f, 0xebd9,
+ 0xe656, 0xdfbf, 0xdbf9, 0xde66, 0xe46a, 0xe86c,
+ 0xe774, 0xe4b2, 0xe432, 0xe62a, 0xea94, 0xefc2,
+ 0xf234, 0xf2d5, 0xf2ea, 0xefc3, 0xe942, 0xe29a,
+ 0xde31, 0xdd1d, 0xde67, 0xe0d5, 0xe527, 0xeb91,
+ 0xf1c5, 0xf4eb, 0xf4e5, 0xf332, 0xefc3, 0xebe8,
+ 0xeab2, 0xebcc, 0xed81, 0xf007, 0xf3de, 0xf92d,
+ 0xfe14, 0x002c, 0x0092, 0x0058, 0xff92, 0xff96,
+ 0xfedd, 0xfbb3, 0xf98e, 0xfab8, 0xfe3b, 0x0439,
+ 0x0c00, 0x1270, 0x1508, 0x155a, 0x1754, 0x1a91,
+ 0x1bae, 0x19ed, 0x1621, 0x12ec, 0x13d3, 0x18aa,
+ 0x1f0c, 0x2392, 0x2360, 0x2148, 0x2090, 0x205a,
+ 0x212f, 0x2338, 0x24c5, 0x2630, 0x259e, 0x1ff6,
+ 0x1707, 0x0dbc, 0x06ca, 0x051d, 0x06c0, 0x08d7,
+ 0x0c73, 0x116b, 0x15b4, 0x185d, 0x1831, 0x143f,
+ 0x0e7f, 0x0a36, 0x072e, 0x035a, 0x0056, 0x0031,
+ 0x0267, 0x06f3, 0x0bd4, 0x0dac, 0x0e00, 0x0f4c,
+ 0x10f0, 0x11d2, 0x0ff5, 0x0b4a, 0x078d, 0x062f,
+ 0x06ea, 0x0b31, 0x1166, 0x14d9, 0x1519, 0x1687,
+ 0x1a48, 0x1b5f, 0x17b3, 0x12ee, 0x0e17, 0x08d7,
+ 0x0697, 0x08cc, 0x0c6f, 0x0eb8, 0x0efc, 0x0e3b,
+ 0x0d44, 0x0c53, 0x0ca4, 0x0e17, 0x0f18, 0x0fc2,
+ 0x0e8b, 0x07e9, 0xfe07, 0xf759, 0xf5f7, 0xf779,
+ 0xf90d, 0xf99e, 0xfb17, 0xfe37, 0xffba, 0xff31,
+ 0xffa9, 0x0043, 0xff8c, 0xff89, 0x000a, 0xff85,
+ 0xff2b, 0x0051, 0x0393, 0x07fa, 0x0a8c, 0x0b3d,
+ 0x0c4b, 0x0e7d, 0x120c, 0x1484, 0x1252, 0x0d93,
+ 0x0a90, 0x0a08, 0x0b11, 0x0d05, 0x0ff0, 0x12d7,
+ 0x1430, 0x1610, 0x196c, 0x1aa0, 0x192c, 0x16af,
+ 0x1264, 0x0ddc, 0x0b81, 0x0af5, 0x0bb0, 0x0c40,
+ 0x0b6a, 0x0a4d, 0x0905, 0x07d6, 0x0878, 0x0a4b,
+ 0x0bf8, 0x0c12, 0x07c4, 0xff8b, 0xf6f5, 0xf0d4,
+ 0xefaf, 0xf2d4, 0xf671, 0xf970, 0xfbf0, 0xfd0b,
+ 0xfda2, 0xfeaa, 0xff25, 0xfe95, 0xfde8, 0xfd88,
+ 0xfc1f, 0xf97d, 0xf885, 0xfaed, 0xff47, 0x03be,
+ 0x06cb, 0x07b9, 0x0812, 0x09f5, 0x0cd2, 0x0d92,
+ 0x0b53, 0x085d, 0x05a9, 0x0378, 0x038e, 0x063a,
+ 0x0943, 0x0a64, 0x0a06, 0x0a9c, 0x0b06, 0x0886,
+ 0x0585, 0x040b, 0x020b, 0xfff0, 0xff08, 0xfe4d,
+ 0xfdf8, 0xfe1f, 0xfda1, 0xfd44, 0xfda4, 0xfe06,
+ 0xfeb1, 0x0027, 0x025f, 0x0408, 0x0253, 0xfcd9,
+ 0xf6da, 0xf3b6, 0xf495, 0xf78f, 0xf9e1, 0xfb62,
+ 0xfcd4, 0xfe02, 0xff11, 0xffe8, 0x0054, 0x0153,
+ 0x0302, 0x03c5, 0x0302, 0x018b, 0x005c, 0x00af,
+ 0x0342, 0x0749, 0x0aa9, 0x0b78, 0x0afa, 0x0c7d,
+ 0x0ef3, 0x0e01, 0x09a3, 0x051b, 0x01f1, 0x0118,
+ 0x0360, 0x0741, 0x0a38, 0x0bf3, 0x0e1a, 0x1035,
+ 0x0f66, 0x0c11, 0x0954, 0x0756, 0x04f2, 0x0318,
+ 0x02ac, 0x0301, 0x035a, 0x04ae, 0x079f, 0x0970,
+ 0x089a, 0x0802, 0x0909, 0x0aaf, 0x0ccc, 0x0d4c,
+ 0x0997, 0x038b, 0xfeda, 0xfd5c, 0xfeb1, 0x004a,
+ 0x008a, 0x006a, 0x0036, 0xfeec, 0xfcfc, 0xfbf1,
+ 0xfc05, 0xfcd8, 0xfe8b, 0xff75, 0xfd1f, 0xf907,
+ 0xf691, 0xf6a6, 0xf91f, 0xfd3a, 0x0097, 0x01e3,
+ 0x02df, 0x05a0, 0x082a, 0x0663, 0x00ce, 0xfb57,
+ 0xf802, 0xf75a, 0xf859, 0xf96c, 0xfbb6, 0xffa6,
+ 0x030d, 0x0497, 0x0335, 0xffb8, 0xfdb3, 0xfcbe,
+ 0xfa8f, 0xf919, 0xf935, 0xf98e, 0xfb15, 0xfdc5,
+ 0xffba, 0x0007, 0xfec2, 0xfdfd, 0xffbc, 0x0296,
+ 0x043b, 0x0295, 0xfcfe, 0xf6dc, 0xf317, 0xf14c,
+ 0xf168, 0xf2d5, 0xf48a, 0xf6b6, 0xf788, 0xf5b9,
+ 0xf457, 0xf479, 0xf508, 0xf78f, 0xfacc, 0xfa7c,
+ 0xf76f, 0xf478, 0xf20d, 0xf217, 0xf5db, 0xfa49,
+ 0xfc82, 0xfd04, 0xfde0, 0xffce, 0x00a5, 0xfee9,
+ 0xfc58, 0xfab7, 0xfa7d, 0xfb69, 0xfc9b, 0xfe99,
+ 0x02ad, 0x0803, 0x0c11, 0x0c6e, 0x0988, 0x0664,
+ 0x0353, 0xff62, 0xfc7d, 0xfb8d, 0xfbc1, 0xfd51,
+ 0xff74, 0x0102, 0x0195, 0x0087, 0xff98, 0x0105,
+ 0x0380, 0x05a8, 0x0624, 0x0284, 0xfc8d, 0xf80a,
+ 0xf554, 0xf402, 0xf3dc, 0xf415, 0xf492, 0xf454,
+ 0xf30b, 0xf312, 0xf49e, 0xf65d, 0xf9c4, 0xfe45,
+ 0x0022, 0xfeef, 0xfc35, 0xf87a, 0xf634, 0xf781,
+ 0xfaca, 0xfe57, 0x011e, 0x0280, 0x04b9, 0x08aa,
+ 0x0ad9, 0x09b4, 0x06e4, 0x0415, 0x029b, 0x022b,
+ 0x0271, 0x04ec, 0x0940, 0x0d66, 0x0fec, 0x0fa2,
+ 0x0de5, 0x0c86, 0x0a43, 0x071b, 0x0475, 0x02a1,
+ 0x0297, 0x03bc, 0x04bd, 0x06a2, 0x0803, 0x0730,
+ 0x0691, 0x06f3, 0x0810, 0x0a1e, 0x0963, 0x047b,
+ 0xff95, 0xfc6c, 0xfafe, 0xfb7c, 0xfc50, 0xfd4d,
+ 0xfe6b, 0xfd9f, 0xfbba, 0xfaeb, 0xfa99, 0xfade,
+ 0xfddf, 0x0301, 0x057a, 0x0301, 0xff23, 0xfc40,
+ 0xfa69, 0xfbce, 0x0000, 0x027b, 0x025b, 0x0294,
+ 0x047a, 0x0697, 0x0718, 0x05ff, 0x042f, 0x0259,
+ 0x014e, 0x0126, 0x0258, 0x0620, 0x0b73, 0x0f8f,
+ 0x10d9, 0x0f2e, 0x0be0, 0x0886, 0x057d, 0x027b,
+ 0xffde, 0xff05, 0xffe5, 0x00c3, 0x01e9, 0x036f,
+ 0x0323, 0x0125, 0xff79, 0xff3d, 0x0158, 0x03e6,
+ 0x0399, 0x0130, 0xfedb, 0xfd38, 0xfc61, 0xfb93,
+ 0xfa9b, 0xfa48, 0xfa3e, 0xf9f3, 0xf959, 0xf840,
+ 0xf7a7, 0xf9cd, 0xff73, 0x0507, 0x05b5, 0x01d7,
+ 0xfcb8, 0xf826, 0xf626, 0xf7b3, 0xfb09, 0xfe18,
+ 0x0000, 0x0231, 0x05df, 0x0892, 0x0914, 0x0900,
+ 0x0835, 0x062d, 0x0361, 0x00d0, 0x012f, 0x05ce,
+ 0x0c8d, 0x1206, 0x1390, 0x120b, 0x0f35, 0x0a3c,
+ 0x0437, 0xff63, 0xfc28, 0xfbfb, 0xfe4b, 0x0064,
+ 0x0306, 0x05a8, 0x056b, 0x0329, 0x00bc, 0xff84,
+ 0x0073, 0x00c0, 0xff15, 0xfe00, 0xfdbb, 0xfd65,
+ 0xfcd5, 0xfb31, 0xf93e, 0xf791, 0xf54e, 0xf334,
+ 0xf135, 0xee83, 0xedec, 0xf204, 0xf881, 0xfd27,
+ 0xfda8, 0xfab9, 0xf6d6, 0xf435, 0xf3a4, 0xf4fe,
+ 0xf78c, 0xf90a, 0xf8d0, 0xf9c7, 0xfbaf, 0xfc13,
+ 0xfd35, 0xfff3, 0x00ca, 0xff1d, 0xfc7f, 0xfaa2,
+ 0xfc54, 0x01bf, 0x07f3, 0x0bec, 0x0c75, 0x0b5c,
+ 0x091e, 0x0465, 0xff8e, 0xfd0c, 0xfc3a, 0xfcce,
+ 0xfdc0, 0xfee9, 0x0207, 0x0535, 0x0649, 0x0648,
+ 0x04ef, 0x033f, 0x02c4, 0x0136, 0xff50, 0x001a,
+ 0x0158, 0x01a3, 0x023a, 0x0168, 0xfec8, 0xfc8f,
+ 0xfb13, 0xf9f0, 0xf886, 0xf6c1, 0xf796, 0xfc68,
+ 0x0219, 0x05d5, 0x0689, 0x042b, 0x00fc, 0xff66,
+ 0xff80, 0x00f9, 0x039c, 0x05ff, 0x0766, 0x08ae,
+ 0x09b3, 0x09d0, 0x0a03, 0x0af5, 0x0b15, 0x08b3,
+ 0x04f6, 0x0396, 0x064e, 0x0b11, 0x0fb0, 0x12f5,
+ 0x13b1, 0x1223, 0x0ec7, 0x0982, 0x0496, 0x0269,
+ 0x0147, 0xff62, 0xfe33, 0xfe95, 0xffb9, 0x017b,
+ 0x02df, 0x0250, 0x012c, 0x00d7, 0xffa3, 0xfdb1,
+ 0xfd8e, 0xfecf, 0xffd7, 0x00e3, 0x0168, 0x000d,
+ 0xfcf5, 0xf967, 0xf69a, 0xf3d7, 0xefc5, 0xecbb,
+ 0xee17, 0xf2be, 0xf7bf, 0xfbba, 0xfd15, 0xfb19,
+ 0xf82a, 0xf67f, 0xf5da, 0xf5fa, 0xf708, 0xf847,
+ 0xf91b, 0xf985, 0xf9b2, 0xfa1d, 0xfb2b, 0xfca8,
+ 0xfd0e, 0xfa68, 0xf64c, 0xf4e5, 0xf731, 0xfbc7,
+ 0x0186, 0x0634, 0x07ed, 0x06c7, 0x02c3, 0xfce2,
+ 0xf898, 0xf7b4, 0xf818, 0xf86e, 0xfa4c, 0xfd2a,
+ 0xfe9c, 0xff5c, 0xffa9, 0xfdba, 0xfb54, 0xfa21,
+ 0xf88a, 0xf7ac, 0xf901, 0xfb24, 0xfdeb, 0x009f,
+ 0x0171, 0x010e, 0xff85, 0xfc59, 0xf90b, 0xf594,
+ 0xf210, 0xf124, 0xf386, 0xf810, 0xfd66, 0x010f,
+ 0x0211, 0x0141, 0xffaf, 0xff36, 0x0074, 0x023f,
+ 0x044b, 0x068b, 0x088d, 0x0a0d, 0x0ae3, 0x0bc5,
+ 0x0d41, 0x0e09, 0x0c10, 0x072a, 0x027a, 0x00e1,
+ 0x0265, 0x076a, 0x0eff, 0x150d, 0x1814, 0x1819,
+ 0x13a2, 0x0cff, 0x080f, 0x0491, 0x023c, 0x023f,
+ 0x0421, 0x069d, 0x08c9, 0x09e8, 0x0961, 0x070f,
+ 0x03e7, 0x00d8, 0xfe90, 0xfe38, 0xffed, 0x0295,
+ 0x04df, 0x05c7, 0x05f1, 0x0575, 0x02c7, 0xfe6c,
+ 0xf9b6, 0xf4ec, 0xf1bb, 0xf164, 0xf35c, 0xf768,
+ 0xfc81, 0x00a6, 0x026a, 0x0173, 0xff99, 0xfe8d,
+ 0xfde2, 0xfd74, 0xfd68, 0xfdf5, 0xff95, 0x00fa,
+ 0x01e0, 0x0418, 0x0690, 0x070d, 0x05c5, 0x0380,
+ 0x0147, 0x0071, 0x0234, 0x0701, 0x0c4e, 0x0ff4,
+ 0x126d, 0x1234, 0x0e9f, 0x0acf, 0x073e, 0x0301,
+ 0x0058, 0x0079, 0x0249, 0x053b, 0x08ab, 0x0b1e,
+ 0x0b2c, 0x08c0, 0x0549, 0x027b, 0x01cd, 0x0402,
+ 0x082a, 0x0b7f, 0x0bc2, 0x0ab1, 0x0a69, 0x08e4,
+ 0x0553, 0x016c, 0xfd06, 0xf8f2, 0xf6f5, 0xf668,
+ 0xf792, 0xfba6, 0x0197, 0x0700, 0x090a, 0x07f5,
+ 0x0730, 0x071a, 0x06cf, 0x071c, 0x07a4, 0x089e,
+ 0x0a7c, 0x0bb1, 0x0cb0, 0x0e7d, 0x0f6c, 0x0ee6,
+ 0x0d99, 0x0baf, 0x09ba, 0x08d5, 0x0aea, 0x0f93,
+ 0x1356, 0x156c, 0x15fa, 0x134c, 0x0ec7, 0x0a7a,
+ 0x05df, 0x0211, 0x0072, 0x00b6, 0x02bd, 0x05b6,
+ 0x08de, 0x0b13, 0x09cf, 0x05b8, 0x0187, 0xfe09,
+ 0xfd63, 0x012e, 0x05d0, 0x0764, 0x065a, 0x051f,
+ 0x0436, 0x01c7, 0xfd75, 0xf8d8, 0xf4d1, 0xf20b,
+ 0xf08f, 0xefb8, 0xf0b9, 0xf500, 0xfb29, 0xffaf,
+ 0x000e, 0xfe18, 0xfd25, 0xfcfc, 0xfc39, 0xfb4c,
+ 0xfab6, 0xfa7f, 0xfae9, 0xfc54, 0xfed6, 0x01d0,
+ 0x0457, 0x0590, 0x04c8, 0x01d6, 0xfdc2, 0xfba9,
+ 0xfe00, 0x0307, 0x0841, 0x0ca5, 0x0e6e, 0x0d11,
+ 0x09d1, 0x058e, 0x021e, 0x00aa, 0x0012, 0x0085,
+ 0x0282, 0x0511, 0x07e9, 0x09ce, 0x08da, 0x05e4,
+ 0x022d, 0xff14, 0xffaf, 0x03f4, 0x07af, 0x089f,
+ 0x0858, 0x08b7, 0x08ba, 0x05fd, 0x00ab, 0xfb07,
+ 0xf6d4, 0xf48b, 0xf2fc, 0xf1d4, 0xf36b, 0xf874,
+ 0xfe13, 0x01a3, 0x028c, 0x0268, 0x0383, 0x0513,
+ 0x04f3, 0x03e3, 0x02ff, 0x0215, 0x020a, 0x03a5,
+ 0x062d, 0x08f3, 0x0b47, 0x0c8e, 0x0be5, 0x0847,
+ 0x0435, 0x0371, 0x0575, 0x08eb, 0x0d36, 0x0fd8,
+ 0x1027, 0x0eab, 0x0a38, 0x04d0, 0x0187, 0xff58,
+ 0xfe0d, 0xfed5, 0x0132, 0x0506, 0x08e6, 0x0a61,
+ 0x09c2, 0x06dc, 0x01be, 0xfed6, 0x00d3, 0x04bb,
+ 0x06c2, 0x05b5, 0x03c2, 0x030d, 0x01da, 0xfe81,
+ 0xfa2b, 0xf630, 0xf31c, 0xf073, 0xed9f, 0xec23,
+ 0xedea, 0xf2d2, 0xf8a0, 0xfc1a, 0xfcab, 0xfcc0,
+ 0xfcff, 0xfc5e, 0xfb6e, 0xfb03, 0xfad7, 0xfadd,
+ 0xfb63, 0xfca3, 0xfeba, 0x0135, 0x03fc, 0x06fa,
+ 0x07c3, 0x04a1, 0x0133, 0x0103, 0x0283, 0x047a,
+ 0x07cf, 0x0b35, 0x0c4c, 0x0a31, 0x058f, 0x007b,
+ 0xfc6e, 0xf9ac, 0xf8f9, 0xfa78, 0xfd60, 0x0109,
+ 0x03fc, 0x0520, 0x0476, 0x014d, 0xfcfb, 0xfbd6,
+ 0xff30, 0x03ba, 0x0600, 0x0574, 0x0467, 0x0429,
+ 0x02e9, 0xff8f, 0xfb57, 0xf77e, 0xf461, 0xf1a6,
+ 0xef7e, 0xefa6, 0xf2de, 0xf7c2, 0xfcad, 0x002f,
+ 0x01ac, 0x0203, 0x01d1, 0x00df, 0xff6f, 0xfe33,
+ 0xfdc8, 0xfe5a, 0xff68, 0x008e, 0x01f0, 0x03b9,
+ 0x062c, 0x08a7, 0x08ff, 0x06db, 0x0546, 0x05ea,
+ 0x0710, 0x07ca, 0x091a, 0x0b13, 0x0bf6, 0x0a03,
+ 0x05ec, 0x01cd, 0xfde2, 0xfa34, 0xf8d3, 0xfa74,
+ 0xfd79, 0x009a, 0x0355, 0x053a, 0x04e8, 0x0124,
+ 0xfd27, 0xfdb1, 0x01d7, 0x05a2, 0x073e, 0x0680,
+ 0x047b, 0x0267, 0xffab, 0xfba8, 0xf723, 0xf304,
+ 0xefb4, 0xed04, 0xeb27, 0xeb96, 0xeed0, 0xf305,
+ 0xf6b2, 0xf9d5, 0xfc02, 0xfc59, 0xfb9e, 0xfb07,
+ 0xfa26, 0xf8fd, 0xf8e2, 0xfa5a, 0xfcb7, 0xfeb8,
+ 0x0008, 0x0263, 0x0612, 0x087b, 0x088e, 0x07ef,
+ 0x0820, 0x0980, 0x0b7a, 0x0d6a, 0x0f55, 0x110e,
+ 0x11ca, 0x10a4, 0x0daf, 0x0a4b, 0x0742, 0x04d0,
+ 0x0438, 0x05ca, 0x07f3, 0x0a30, 0x0d1e, 0x0fa1,
+ 0x0f38, 0x0c07, 0x0a1a, 0x0c2a, 0x1058, 0x13c4,
+ 0x1538, 0x149d, 0x12f6, 0x1114, 0x0e35, 0x09ea,
+ 0x05ac, 0x0296, 0xffcf, 0xfd1e, 0xfbd9, 0xfc50,
+ 0xfdf1, 0x00c6, 0x04aa, 0x08b4, 0x0ba5, 0x0d49,
+ 0x0ecf, 0x0f9b, 0x0e06, 0x0bc3, 0x0b29, 0x0bf8,
+ 0x0d79, 0x0e79, 0x0e70, 0x0f55, 0x1149, 0x11e2,
+ 0x10ec, 0x0fc1, 0x0f69, 0x105c, 0x114b, 0x1194,
+ 0x125b, 0x12e1, 0x11ed, 0x0fdd, 0x0c57, 0x07d3,
+ 0x0448, 0x0199, 0xff5d, 0xfea4, 0xff06, 0x002d,
+ 0x02b3, 0x0446, 0x02b4, 0x0067, 0x005e, 0x02f5,
+ 0x0698, 0x0877, 0x07d6, 0x0692, 0x04de, 0x01ed,
+ 0xfe6f, 0xfac2, 0xf70a, 0xf434, 0xf225, 0xefff,
+ 0xee24, 0xed77, 0xee54, 0xf0ef, 0xf4e6, 0xf8b7,
+ 0xfb78, 0xfe13, 0x00cc, 0x01b4, 0x0017, 0xfe38,
+ 0xfe09, 0xff6b, 0x0138, 0x0200, 0x01d0, 0x0295,
+ 0x044a, 0x04e1, 0x0490, 0x04da, 0x05f6, 0x07ab,
+ 0x0944, 0x0a6f, 0x0c0a, 0x0d13, 0x0bf6, 0x0993,
+ 0x067b, 0x0337, 0x013c, 0xffaa, 0xfd99, 0xfc40,
+ 0xfc22, 0xfe2a, 0x01dd, 0x036a, 0x0300, 0x049b,
+ 0x08a2, 0x0d82, 0x1170, 0x1284, 0x1169, 0x0f35,
+ 0x0c21, 0x08d7, 0x04cb, 0x00a6, 0xfeb0, 0xfe0e,
+ 0xfd31, 0xfc58, 0xfb26, 0xfa19, 0xfa6d, 0xfc26,
+ 0xfea0, 0x0060, 0x01b3, 0x04a7, 0x0762, 0x0764,
+ 0x061c, 0x04c6, 0x0449, 0x0579, 0x0670, 0x0659,
+ 0x06ec, 0x0887, 0x0a36, 0x0b05, 0x0b16, 0x0b84,
+ 0x0bf2, 0x0c09, 0x0c93, 0x0d67, 0x0e33, 0x0e48,
+ 0x0c30, 0x085c, 0x048d, 0x0258, 0x0207, 0x010b,
+ 0xfe38, 0xfbc7, 0xfb0e, 0xfc54, 0xfe50, 0xfe74,
+ 0xfe82, 0x0177, 0x05f4, 0x09fd, 0x0c2d, 0x0b9c,
+ 0x09f5, 0x082d, 0x056d, 0x01a2, 0xfcf9, 0xf8b7,
+ 0xf66e, 0xf5a8, 0xf5f6, 0xf67e, 0xf5b6, 0xf4bd,
+ 0xf4fa, 0xf5cd, 0xf6d3, 0xf7f5, 0xf9f6, 0xfd45,
+ 0xff2d, 0xfe76, 0xfd93, 0xfd9b, 0xfe94, 0x00c1,
+ 0x02af, 0x0366, 0x03e7, 0x0463, 0x0435, 0x0418,
+ 0x0531, 0x06c0, 0x07af, 0x086e, 0x095a, 0x0aa7,
+ 0x0c7e, 0x0d04, 0x0a91, 0x0682, 0x0324, 0x0185,
+ 0x00b4, 0xfed8, 0xfc0a, 0xfa1c, 0xfa75, 0xfc3d,
+ 0xfc9f, 0xfbb3, 0xfcdf, 0x0138, 0x0708, 0x0bbf,
+ 0x0d67, 0x0cbf, 0x0abd, 0x0725, 0x02fd, 0xfeac,
+ 0xfa27, 0xf779, 0xf728, 0xf7a5, 0xf838, 0xf7f2,
+ 0xf6c1, 0xf626, 0xf648, 0xf683, 0xf6bf, 0xf779,
+ 0xf9e0, 0xfcd7, 0xfda7, 0xfd16, 0xfd4c, 0xfe26,
+ 0xff27, 0xfff6, 0x001f, 0x004e, 0x00f5, 0x016f,
+ 0x01a9, 0x0250, 0x03aa, 0x0519, 0x0597, 0x056f,
+ 0x0630, 0x07a1, 0x07fe, 0x0697, 0x031c, 0xfe5b,
+ 0xfb52, 0xfad5, 0xfa88, 0xf93c, 0xf739, 0xf5d1,
+ 0xf64f, 0xf6ca, 0xf605, 0xf658, 0xf893, 0xfc00,
+ 0x0041, 0x0367, 0x04a4, 0x0503, 0x03da, 0x00a2,
+ 0xfc3e, 0xf76d, 0xf365, 0xf105, 0xf05a, 0xf147,
+ 0xf256, 0xf256, 0xf179, 0xefd1, 0xee54, 0xee1c,
+ 0xeefa, 0xf188, 0xf527, 0xf6d6, 0xf626, 0xf53b,
+ 0xf560, 0xf70c, 0xf9b8, 0xfc55, 0xfe5b, 0xff5c,
+ 0xff7d, 0xff46, 0xff54, 0x00d3, 0x034c, 0x0492,
+ 0x0490, 0x04b3, 0x0549, 0x0639, 0x072f, 0x06e7,
+ 0x04ee, 0x02f9, 0x0244, 0x0199, 0x0032, 0xfebd,
+ 0xfd77, 0xfce6, 0xfd37, 0xfd15, 0xfcd4, 0xfe71,
+ 0x0225, 0x0708, 0x0c02, 0x0fd8, 0x1222, 0x1260,
+ 0x0fb9, 0x0ac9, 0x051d, 0x0019, 0xfd14, 0xfc8a,
+ 0xfd7b, 0xfe73, 0xfed7, 0xfe91, 0xfda1, 0xfcaf,
+ 0xfc2a, 0xfbe9, 0xfce4, 0xffb6, 0x0243, 0x028e,
+ 0x0168, 0x00b7, 0x0138, 0x02d4, 0x0569, 0x0805,
+ 0x0973, 0x09c1, 0x093b, 0x08a4, 0x099e, 0x0b92,
+ 0x0c57, 0x0bdf, 0x0b4a, 0x0b48, 0x0c16, 0x0cde,
+ 0x0c7f, 0x0aa2, 0x0843, 0x06a9, 0x0503, 0x0291,
+ 0x0073, 0xfeb8, 0xfd3a, 0xfc9c, 0xfba7, 0xfa55,
+ 0xfb1a, 0xfe03, 0x01ac, 0x058e, 0x0884, 0x0a5d,
+ 0x0ba9, 0x0b24, 0x079f, 0x01f4, 0xfc3a, 0xf82e,
+ 0xf5ce, 0xf4af, 0xf51d, 0xf679, 0xf789, 0xf7fe,
+ 0xf806, 0xf791, 0xf68b, 0xf5cd, 0xf6a1, 0xf88b,
+ 0xf9aa, 0xf96b, 0xf8e7, 0xf8bd, 0xf8d7, 0xfa12,
+ 0xfcba, 0xff2d, 0x00c1, 0x0194, 0x0136, 0x016c,
+ 0x03cc, 0x05fa, 0x062b, 0x057d, 0x0524, 0x05b0,
+ 0x06a7, 0x06c0, 0x0583, 0x03b8, 0x02c9, 0x0271,
+ 0x0133, 0xfff6, 0xff81, 0xfe84, 0xfd38, 0xfc08,
+ 0xfa4d, 0xf989, 0xfb5f, 0xff31, 0x03e6, 0x0833,
+ 0x0ba6, 0x0ebb, 0x1060, 0x0f53, 0x0b84, 0x05b5,
+ 0x0001, 0xfbbf, 0xf8c6, 0xf7db, 0xf936, 0xfb7f,
+ 0xfd7a, 0xfe53, 0xfe51, 0xfdf3, 0xfcd9, 0xfbf9,
+ 0xfc6c, 0xfd12, 0xfd59, 0xfd7c, 0xfd09, 0xfca9,
+ 0xfd74, 0xff92, 0x030b, 0x06e9, 0x090e, 0x0885,
+ 0x068e, 0x0588, 0x065b, 0x0786, 0x0782, 0x06df,
+ 0x0736, 0x0858, 0x0865, 0x06e1, 0x04d5, 0x032c,
+ 0x024f, 0x018e, 0x0048, 0xfed5, 0xfd14, 0xfb95,
+ 0xfb57, 0xfaf9, 0xf9d1, 0xf9e3, 0xfbc7, 0xfeb4,
+ 0x0225, 0x052f, 0x07dc, 0x0ac0, 0x0c82, 0x0b3c,
+ 0x06c3, 0x00b3, 0xfafc, 0xf654, 0xf31f, 0xf1d7,
+ 0xf254, 0xf402, 0xf547, 0xf4fd, 0xf4c3, 0xf560,
+ 0xf561, 0xf517, 0xf564, 0xf561, 0xf4a6, 0xf389,
+ 0xf28a, 0xf2df, 0xf4b4, 0xf70a, 0xf9f2, 0xfd64,
+ 0xff53, 0xfe85, 0xfd71, 0xfe8f, 0x00a8, 0x01fe,
+ 0x0298, 0x02be, 0x02ff, 0x0361, 0x0290, 0x00dc,
+ 0x0065, 0x0192, 0x02e8, 0x0317, 0x01f5, 0x0056,
+ 0xfed7, 0xfd8c, 0xfc64, 0xfb5a, 0xfb11, 0xfc0e,
+ 0xfdd9, 0x006b, 0x040c, 0x07e6, 0x0b76, 0x0ef9,
+ 0x10f0, 0x0efc, 0x098d, 0x0350, 0xfdcd, 0xf961,
+ 0xf6d7, 0xf6e7, 0xf911, 0xfb50, 0xfbfd, 0xfc14,
+ 0xfce1, 0xfda4, 0xfdff, 0xfe60, 0xfdfe, 0xfc3a,
+ 0xf9be, 0xf74b, 0xf5e9, 0xf6d4, 0xf9bf, 0xfd05,
+ 0x0016, 0x0357, 0x05ca, 0x063b, 0x05c7, 0x064c,
+ 0x07d9, 0x08ef, 0x0867, 0x06fb, 0x060c, 0x059b,
+ 0x04ea, 0x03cc, 0x0313, 0x0386, 0x0430, 0x03da,
+ 0x026a, 0xffcd, 0xfcfb, 0xfb8b, 0xfad9, 0xf9bf,
+ 0xf880, 0xf7b5, 0xf86d, 0xfb24, 0xfeef, 0x02e4,
+ 0x05fc, 0x07b5, 0x0832, 0x05f8, 0x00a0, 0xfabc,
+ 0xf5b8, 0xf1dd, 0xf00d, 0xf053, 0xf1fa, 0xf34d,
+ 0xf2f2, 0xf2df, 0xf447, 0xf564, 0xf5f1, 0xf62c,
+ 0xf53c, 0xf3af, 0xf276, 0xf1f6, 0xf2da, 0xf50a,
+ 0xf802, 0xfae5, 0xfc8c, 0xfd65, 0xfe09, 0xfe82,
+ 0x0007, 0x029c, 0x048d, 0x0596, 0x05f9, 0x05f2,
+ 0x0615, 0x0595, 0x03cb, 0x0217, 0x01cd, 0x02e0,
+ 0x03d6, 0x0363, 0x0255, 0x01b5, 0x016c, 0x0141,
+ 0x00cb, 0x0028, 0x0020, 0x00b9, 0x0214, 0x0489,
+ 0x0768, 0x0a21, 0x0d02, 0x0ffa, 0x1182, 0x0fd5,
+ 0x0bad, 0x070c, 0x026f, 0xfe62, 0xfc0e, 0xfbd3,
+ 0xfd76, 0xff96, 0x0106, 0x0298, 0x0467, 0x05c6,
+ 0x073a, 0x081e, 0x071f, 0x04cc, 0x0234, 0x00ae,
+ 0x0197, 0x043e, 0x0734, 0x09b8, 0x0b39, 0x0c17,
+ 0x0d1d, 0x0e65, 0x0fc9, 0x1100, 0x11fb, 0x12a8,
+ 0x1236, 0x10e2, 0x0fdf, 0x0eb1, 0x0ca1, 0x0af6,
+ 0x0ae0, 0x0b99, 0x0bad, 0x0abf, 0x0942, 0x078f,
+ 0x0600, 0x04a2, 0x030b, 0x01b0, 0x0126, 0x0108,
+ 0x01f3, 0x04fc, 0x08d1, 0x0ba5, 0x0ddb, 0x0fb9,
+ 0x0fd9, 0x0d3c, 0x0879, 0x02db, 0xfdad, 0xfa2d,
+ 0xf8fe, 0xf928, 0xf957, 0xf9a9, 0xfa35, 0xfa3c,
+ 0xfa3c, 0xfb2d, 0xfc76, 0xfcd9, 0xfb3a, 0xf77a,
+ 0xf3bf, 0xf26c, 0xf3d3, 0xf704, 0xfaaa, 0xfd89,
+ 0xff1d, 0xff83, 0xff82, 0xffef, 0x011c, 0x02ff,
+ 0x0516, 0x06fc, 0x0867, 0x088e, 0x07e3, 0x0756,
+ 0x060f, 0x0449, 0x03bc, 0x03db, 0x0392, 0x031a,
+ 0x0266, 0x01f3, 0x0231, 0x020d, 0x0161, 0x0111,
+ 0x013d, 0x01ef, 0x038d, 0x066d, 0x0a18, 0x0d53,
+ 0x0fc1, 0x110c, 0x103a, 0x0dc7, 0x0a59, 0x05da,
+ 0x01cc, 0xff9d, 0xff11, 0xffc4, 0x0098, 0x00dd,
+ 0x017a, 0x025e, 0x0362, 0x0552, 0x0729, 0x0751,
+ 0x057a, 0x01c2, 0xfe29, 0xfd77, 0xff80, 0x027a,
+ 0x058e, 0x0832, 0x09a0, 0x09a3, 0x096b, 0x0a42,
+ 0x0bba, 0x0d05, 0x0e23, 0x0ee8, 0x0ec7, 0x0dab,
+ 0x0c73, 0x0be6, 0x0b82, 0x0afe, 0x0ae7, 0x0acd,
+ 0x09e7, 0x088a, 0x0764, 0x068f, 0x0594, 0x045e,
+ 0x0336, 0x01d3, 0x0061, 0xffd4, 0x007e, 0x02a4,
+ 0x05fa, 0x08fc, 0x0b0e, 0x0c35, 0x0bb5, 0x095e,
+ 0x0546, 0xffe4, 0xfb3f, 0xf8a2, 0xf78c, 0xf791,
+ 0xf81a, 0xf8b1, 0xf965, 0xf9ec, 0xfabb, 0xfc69,
+ 0xfdbc, 0xfd62, 0xfb07, 0xf739, 0xf438, 0xf39b,
+ 0xf4aa, 0xf675, 0xf881, 0xfab5, 0xfcde, 0xfde1,
+ 0xfe3c, 0xffc3, 0x01d4, 0x0381, 0x0581, 0x06e1,
+ 0x0618, 0x042d, 0x0298, 0x0188, 0x0102, 0x00f4,
+ 0x00fe, 0x0101, 0x00f3, 0x0085, 0xfff9, 0xffc6,
+ 0xff4d, 0xfe64, 0xfdf5, 0xfdc2, 0xfd71, 0xfdfa,
+ 0xffb9, 0x02ad, 0x06cb, 0x0a82, 0x0c8e, 0x0d27,
+ 0x0c4e, 0x0a0c, 0x068d, 0x0245, 0xff35, 0xfe7b,
+ 0xfea2, 0xfec8, 0xff58, 0x0035, 0x00f3, 0x01b2,
+ 0x0331, 0x0569, 0x06a7, 0x05b4, 0x0316, 0x0037,
+ 0xfebc, 0xff24, 0x009f, 0x02d1, 0x058e, 0x0810,
+ 0x0992, 0x09db, 0x09cf, 0x0a92, 0x0bd8, 0x0cfb,
+ 0x0e0b, 0x0e91, 0x0dc7, 0x0bf0, 0x09c8, 0x07e7,
+ 0x0708, 0x0713, 0x06e6, 0x06be, 0x076c, 0x0795,
+ 0x0691, 0x0618, 0x060d, 0x04dc, 0x02c0, 0x00a8,
+ 0xff70, 0xffb3, 0x012a, 0x0416, 0x082e, 0x0b8a,
+ 0x0d6c, 0x0db2, 0x0b59, 0x0715, 0x026b, 0xfdd2,
+ 0xfaa3, 0xf9b0, 0xf95f, 0xf8c8, 0xf888, 0xf883,
+ 0xf895, 0xf993, 0xfb75, 0xfcb1, 0xfc3f, 0xfa3a,
+ 0xf740, 0xf4c3, 0xf3ca, 0xf3c4, 0xf460, 0xf5e1,
+ 0xf7d9, 0xf9a5, 0xfade, 0xfbfb, 0xfdf9, 0x003a,
+ 0x01c1, 0x02e4, 0x03dd, 0x04c5, 0x0584, 0x051e,
+ 0x03db, 0x02e6, 0x022e, 0x0182, 0x009e, 0xffc5,
+ 0x00cd, 0x036e, 0x0533, 0x0608, 0x0635, 0x04c3,
+ 0x027c, 0x00a0, 0xff50, 0xff0f, 0x0016, 0x024a,
+ 0x05e3, 0x09ae, 0x0bcb, 0x0c28, 0x0b35, 0x08bc,
+ 0x055b, 0x024a, 0x0023, 0xff08, 0xfec7, 0xff1d,
+ 0xffcd, 0xffe5, 0xff3c, 0xffa4, 0x01bb, 0x03af,
+ 0x03e5, 0x01ed, 0xfefc, 0xfd3a, 0xfcf3, 0xfd51,
+ 0xfe4c, 0xffb6, 0x0178, 0x036e, 0x04ce, 0x05ff,
+ 0x07b6, 0x0950, 0x0aa8, 0x0bfa, 0x0d01, 0x0db1,
+ 0x0d7f, 0x0c4b, 0x0b4c, 0x0ad3, 0x0a66, 0x09c5,
+ 0x088d, 0x07b3, 0x0860, 0x0990, 0x0a40, 0x0a51,
+ 0x0969, 0x07bd, 0x05c9, 0x03cd, 0x0297, 0x02d6,
+ 0x044d, 0x0641, 0x0849, 0x0a16, 0x0ac0, 0x0a34,
+ 0x0939, 0x072c, 0x03d0, 0x00b3, 0xfe9d, 0xfd59,
+ 0xfca1, 0xfc68, 0xfd5c, 0xfee0, 0xffb5, 0x00b2,
+ 0x0233, 0x02ef, 0x022d, 0xffdb, 0xfd99, 0xfd26,
+ 0xfd3b, 0xfd30, 0xfdfa, 0xfefb, 0x0000, 0x0113,
+ 0x017d, 0x0293, 0x04f2, 0x06e4, 0x085f, 0x09c1,
+ 0x0a7b, 0x0ade, 0x0a96, 0x0950, 0x0817, 0x0730,
+ 0x0699, 0x0676, 0x063d, 0x0687, 0x07c5, 0x08b7,
+ 0x0950, 0x09ef, 0x098d, 0x07d3, 0x0563, 0x031a,
+ 0x025c, 0x0352, 0x04da, 0x06ef, 0x09fc, 0x0cd2,
+ 0x0dfb, 0x0da5, 0x0c6b, 0x0a56, 0x07be, 0x0556,
+ 0x0379, 0x0245, 0x01b2, 0x01e5, 0x02e5, 0x0417,
+ 0x0502, 0x058f, 0x05e8, 0x0629, 0x056c, 0x0375,
+ 0x01cd, 0x011e, 0x0102, 0x0171, 0x0224, 0x02ec,
+ 0x0399, 0x0417, 0x0588, 0x07bb, 0x08ca, 0x08ca,
+ 0x08d7, 0x0982, 0x0afe, 0x0bdf, 0x0b71, 0x0aca,
+ 0x09a9, 0x0818, 0x070c, 0x05db, 0x04f1, 0x05a2,
+ 0x06fa, 0x081d, 0x091a, 0x096f, 0x08e1, 0x0726,
+ 0x0499, 0x02c5, 0x0207, 0x01f7, 0x02dc, 0x04d2,
+ 0x0786, 0x0988, 0x09a3, 0x0889, 0x0671, 0x0372,
+ 0x00c6, 0xfe6a, 0xfc76, 0xfbc9, 0xfb4d, 0xfa84,
+ 0xfa89, 0xfb23, 0xfc1d, 0xfd82, 0xfe66, 0xfe6e,
+ 0xfd58, 0xfb18, 0xf903, 0xf7a7, 0xf6d7, 0xf708,
+ 0xf7de, 0xf885, 0xf8e4, 0xf947, 0xfa41, 0xfbb7,
+ 0xfcdb, 0xfd98, 0xfe90, 0x0026, 0x017f, 0x01dc,
+ 0x0228, 0x0245, 0x014a, 0x0016, 0xff1b, 0xfea6,
+ 0xffcf, 0x016a, 0x0269, 0x03bc, 0x04c9, 0x04c7,
+ 0x03ed, 0x01e7, 0xffcd, 0xfeb9, 0xfe5a, 0xff6e,
+ 0x01b4, 0x03db, 0x061d, 0x07a1, 0x07e0, 0x0829,
+ 0x0749, 0x046c, 0x0201, 0x00a1, 0xff9b, 0xff29,
+ 0xfebc, 0xfe80, 0xff44, 0x0044, 0x00ea, 0x0166,
+ 0x01a0, 0x0181, 0x00ee, 0xffdb, 0xfea2, 0xfe2e,
+ 0xfeea, 0xff84, 0xff91, 0x0024, 0x0093, 0x009e,
+ 0x01a5, 0x02f1, 0x0373, 0x040b, 0x0570, 0x07a1,
+ 0x0977, 0x09d8, 0x097c, 0x0856, 0x0645, 0x04bb,
+ 0x03d7, 0x03ce, 0x0580, 0x0712, 0x07e2, 0x0974,
+ 0x0a74, 0x09cb, 0x088e, 0x0698, 0x0442, 0x029b,
+ 0x0152, 0x00ac, 0x0165, 0x0339, 0x056a, 0x06eb,
+ 0x077b, 0x0715, 0x04e3, 0x01c1, 0xff71, 0xfddd,
+ 0xfcd3, 0xfc17, 0xfada, 0xf9d4, 0xf9cc, 0xf9fe,
+ 0xfa22, 0xfa5d, 0xfa65, 0xfa2e, 0xf982, 0xf7ff,
+ 0xf646, 0xf5ac, 0xf667, 0xf731, 0xf796, 0xf834,
+ 0xf8ac, 0xf8e2, 0xf9cc, 0xfac5, 0xfab1, 0xfae2,
+ 0xfc68, 0xfdf2, 0xfeab, 0xff02, 0xfebb, 0xfd9c,
+ 0xfc42, 0xfafa, 0xfa12, 0xfa7d, 0xfc32, 0xfdee,
+ 0xff3d, 0x00a9, 0x0202, 0x0262, 0x01b0, 0x004f,
+ 0xfe67, 0xfca6, 0xfbaf, 0xfb3c, 0xfb88, 0xfcd8,
+ 0xfe6b, 0x0013, 0x01c0, 0x0240, 0x016c, 0x0072,
+ 0xffb4, 0xff13, 0xfe99, 0xfe18, 0xfd6f, 0xfcdf,
+ 0xfcc3, 0xfcfc, 0xfd44, 0xfd88, 0xfd50, 0xfca1,
+ 0xfc24, 0xfb77, 0xfa86, 0xfa74, 0xfb00, 0xfb47,
+ 0xfb9f, 0xfc18, 0xfcbc, 0xfe07, 0xff73, 0x002e,
+ 0x006b, 0x0101, 0x0261, 0x0379, 0x0378, 0x0324,
+ 0x028e, 0x014f, 0xfff4, 0xfe85, 0xfd82, 0xfe4b,
+ 0x0001, 0x010e, 0x0237, 0x03d0, 0x04a4, 0x049d,
+ 0x042b, 0x0301, 0x010b, 0xfed5, 0xfd20, 0xfc2b,
+ 0xfbca, 0xfc60, 0xfdef, 0xff92, 0x011b, 0x01d8,
+ 0x0078, 0xfe94, 0xfe32, 0xfe1a, 0xfd76, 0xfce6,
+ 0xfc4d, 0xfc2f, 0xfc8f, 0xfc02, 0xfada, 0xf9ff,
+ 0xf920, 0xf8ba, 0xf8d9, 0xf87c, 0xf7ea, 0xf7aa,
+ 0xf7b2, 0xf827, 0xf8d8, 0xf9b8, 0xfacd, 0xfbaa,
+ 0xfc86, 0xfd68, 0xfddf, 0xfe5d, 0xfeee, 0xff7b,
+ 0x00c1, 0x01f3, 0x01ce, 0x00f4, 0x000d, 0xff9b,
+ 0x004c, 0x018d, 0x02bb, 0x03f4, 0x0579, 0x0791,
+ 0x094d, 0x0986, 0x08c9, 0x0783, 0x05bb, 0x0430,
+ 0x0327, 0x02a6, 0x02bc, 0x031f, 0x044c, 0x0644,
+ 0x077c, 0x0756, 0x0680, 0x05f6, 0x0651, 0x0673,
+ 0x056e, 0x0440, 0x03da, 0x046e, 0x0579, 0x05d5,
+ 0x057e, 0x04e5, 0x044d, 0x0466, 0x0474, 0x0371,
+ 0x0293, 0x024b, 0x01e4, 0x01e3, 0x026e, 0x0356,
+ 0x04f1, 0x0698, 0x07cc, 0x08b1, 0x090d, 0x0930,
+ 0x0933, 0x08ee, 0x0943, 0x09a6, 0x08cf, 0x07cd,
+ 0x0757, 0x071e, 0x07a3, 0x0860, 0x08dc, 0x0a0f,
+ 0x0b7f, 0x0c15, 0x0be8, 0x0ab7, 0x08ac, 0x069d,
+ 0x0496, 0x02c5, 0x01b3, 0x013e, 0x00db, 0x0074,
+ 0x00d6, 0x0215, 0x02c7, 0x02af, 0x02a1, 0x0260,
+ 0x0180, 0xffe4, 0xfe0e, 0xfd71, 0xfe07, 0xfea2,
+ 0xfef4, 0xfe3d, 0xfc06, 0xf986, 0xf7dd, 0xf7b9,
+ 0xf8be, 0xf943, 0xf8f0, 0xf870, 0xf7e0, 0xf7d1,
+ 0xf865, 0xf939, 0xfa9f, 0xfbfb, 0xfc87, 0xfd10,
+ 0xfdbd, 0xfe12, 0xfe7b, 0xff2d, 0xfff4, 0x0064,
+ 0xfff7, 0xfefd, 0xfe24, 0xfdff, 0xfec6, 0xff62,
+ 0xff58, 0xffdd, 0x014f, 0x0340, 0x0526, 0x05ea,
+ 0x0546, 0x03b9, 0x01b9, 0x0057, 0xffdf, 0xff6b,
+ 0xfede, 0xfea1, 0xff26, 0x0083, 0x0161, 0x0137,
+ 0x0149, 0x0183, 0x0112, 0x0073, 0x0010, 0x0021,
+ 0x0166, 0x034c, 0x040f, 0x02f2, 0x006d, 0xfdcf,
+ 0xfd03, 0xfe5d, 0xfff9, 0x0093, 0x0051, 0xff86,
+ 0xfee0, 0xff0d, 0xffea, 0x010b, 0x01f5, 0x0260,
+ 0x028e, 0x02d2, 0x0390, 0x04bc, 0x05b5, 0x06ab,
+ 0x0781, 0x06d3, 0x0517, 0x045b, 0x04dd, 0x05c7,
+ 0x066c, 0x0626, 0x05ac, 0x0647, 0x07a9, 0x091b,
+ 0x0ab9, 0x0bd8, 0x0b24, 0x08ba, 0x05d0, 0x0398,
+ 0x0332, 0x0448, 0x051f, 0x0530, 0x04cc, 0x03f4,
+ 0x0337, 0x0309, 0x033f, 0x034a, 0x0206, 0xffe6,
+ 0xfee9, 0xff8c, 0x019c, 0x046c, 0x05bf, 0x04c0,
+ 0x022c, 0xfecc, 0xfc9d, 0xfc36, 0xfc36, 0xfcf5,
+ 0xfe46, 0xfe5d, 0xfd5b, 0xfc70, 0xfc7c, 0xfdbd,
+ 0xfe9f, 0xfe48, 0xfd83, 0xfcd7, 0xfd04, 0xfdc6,
+ 0xfe47, 0xff9d, 0x0147, 0x0167, 0x00f3, 0x00b9,
+ 0x0099, 0x0178, 0x024a, 0x0234, 0x02cc, 0x038e,
+ 0x0382, 0x0427, 0x05ec, 0x07d8, 0x08a3, 0x06ff,
+ 0x0425, 0x0269, 0x022c, 0x02b0, 0x02de, 0x0282,
+ 0x0287, 0x029d, 0x0254, 0x0208, 0x0130, 0x0008,
+ 0xffbe, 0xffed, 0x0020, 0x00dd, 0x01fc, 0x02ef,
+ 0x0321, 0x01d3, 0xff1f, 0xfca3, 0xfc09, 0xfcd4,
+ 0xfdbf, 0xfec1, 0xff70, 0xff4e, 0xff2b, 0xff30,
+ 0xff56, 0x0014, 0x006c, 0x0025, 0x00a4, 0x01ad,
+ 0x02a1, 0x0368, 0x0362, 0x0362, 0x040a, 0x042e,
+ 0x0411, 0x0417, 0x03a7, 0x03b0, 0x043c, 0x0465,
+ 0x052b, 0x064a, 0x06bb, 0x07d3, 0x0983, 0x0a01,
+ 0x0922, 0x0727, 0x04cf, 0x03b5, 0x03f8, 0x0498,
+ 0x04c3, 0x041b, 0x0357, 0x0330, 0x038b, 0x03bd,
+ 0x0299, 0x006a, 0xff1b, 0xff32, 0xffda, 0x00b3,
+ 0x0192, 0x0203, 0x015a, 0xff32, 0xfc73, 0xfb10,
+ 0xfbcc, 0xfd44, 0xfe46, 0xfeb0, 0xfe08, 0xfccc,
+ 0xfc6a, 0xfc9d, 0xfce7, 0xfd69, 0xfd69, 0xfd38,
+ 0xfdc5, 0xfe8d, 0xff4b, 0xffe6, 0x001f, 0x0082,
+ 0x0065, 0xff7a, 0xff9e, 0x00d8, 0x020a, 0x037b,
+ 0x04a2, 0x051c, 0x0544, 0x04d9, 0x04c7, 0x05cf,
+ 0x06eb, 0x0795, 0x0709, 0x0520, 0x03ea, 0x03e8,
+ 0x0460, 0x0558, 0x05ea, 0x0604, 0x0639, 0x05ee,
+ 0x0611, 0x06e3, 0x064e, 0x04dc, 0x0422, 0x03e9,
+ 0x048f, 0x05f9, 0x0760, 0x0878, 0x07d4, 0x0529,
+ 0x028a, 0x0131, 0x0188, 0x0325, 0x04a5, 0x0585,
+ 0x0549, 0x03e3, 0x02e6, 0x02a2, 0x025d, 0x0247,
+ 0x0287, 0x0377, 0x04ce, 0x053e, 0x050f, 0x0514,
+ 0x0524, 0x0555, 0x054a, 0x04fa, 0x057d, 0x06b4,
+ 0x07e9, 0x090c, 0x09bc, 0x09ea, 0x0997, 0x087a,
+ 0x0764, 0x075f, 0x0872, 0x09a9, 0x0960, 0x0778,
+ 0x058c, 0x0484, 0x046a, 0x04a1, 0x045b, 0x03c9,
+ 0x0354, 0x034f, 0x03d7, 0x03ec, 0x0300, 0x01e0,
+ 0x0169, 0x01cb, 0x021a, 0x020c, 0x0283, 0x026e,
+ 0x00a1, 0xfe7a, 0xfc94, 0xfb09, 0xfaf8, 0xfc16,
+ 0xfd30, 0xfdac, 0xfd22, 0xfc18, 0xfb47, 0xfac1,
+ 0xfa6a, 0xf9dc, 0xf9d7, 0xfb4a, 0xfc97, 0xfc95,
+ 0xfc24, 0xfb9c, 0xfb74, 0xfc01, 0xfc70, 0xfce0,
+ 0xfdc9, 0xfec3, 0xffb2, 0x008a, 0x0111, 0x013b,
+ 0x0117, 0x010f, 0x0126, 0x0120, 0x0160, 0x01c0,
+ 0x020f, 0x0259, 0x01e6, 0x015d, 0x01ee, 0x024b,
+ 0x0198, 0x0085, 0xff50, 0xfed7, 0xff4f, 0xff93,
+ 0xff86, 0xff33, 0xfee4, 0xffb0, 0x0119, 0x02ac,
+ 0x04d2, 0x05c4, 0x0440, 0x01d3, 0xffb2, 0xfe62,
+ 0xfe58, 0xff0b, 0xffe2, 0x0082, 0x0083, 0xfff9,
+ 0xff6c, 0xff6f, 0xffd9, 0x0047, 0x0147, 0x02d1,
+ 0x03c7, 0x0395, 0x02ba, 0x0282, 0x0303, 0x02ec,
+ 0x02b4, 0x031e, 0x0335, 0x0337, 0x03f5, 0x04f6,
+ 0x0612, 0x070e, 0x077f, 0x079f, 0x077e, 0x07d6,
+ 0x0917, 0x09e8, 0x09bb, 0x0898, 0x0679, 0x0531,
+ 0x0524, 0x04bb, 0x0480, 0x0495, 0x0410, 0x03e0,
+ 0x03b5, 0x0287, 0x018d, 0x0115, 0x00e3, 0x01f0,
+ 0x0372, 0x0437, 0x048d, 0x042d, 0x02ce, 0x00e6,
+ 0xfefe, 0xfdf3, 0xfddf, 0xfe3a, 0xfeea, 0xff17,
+ 0xfe65, 0xfdf0, 0xfde7, 0xfdcb, 0xfda9, 0xfd77,
+ 0xfdec, 0xff7c, 0x00c0, 0x00ec, 0x0089, 0xffd4,
+ 0xff29, 0xfef8, 0xff4d, 0x0032, 0x0141, 0x0221,
+ 0x02e4, 0x0313, 0x02e8, 0x0334, 0x0392, 0x0409,
+ 0x052b, 0x0616, 0x069e, 0x078f, 0x07b3, 0x0632,
+ 0x04a5, 0x040d, 0x03cd, 0x0324, 0x01ef, 0x00d0,
+ 0x0056, 0x0071, 0x00bd, 0x00d0, 0x00ea, 0x013b,
+ 0x014f, 0x018f, 0x027c, 0x0329, 0x02ef, 0x01c7,
+ 0xffa1, 0xfd67, 0xfc23, 0xfbf8, 0xfceb, 0xfe34,
+ 0xfe97, 0xfe50, 0xfe1c, 0xfdef, 0xfdb2, 0xfd69,
+ 0xfcf6, 0xfc8b, 0xfcba, 0xfda5, 0xfe74, 0xfea2,
+ 0xfec3, 0xfee3, 0xfe4a, 0xfd71, 0xfd6a, 0xfde9,
+ 0xfe96, 0x001f, 0x021d, 0x0343, 0x03be, 0x0405,
+ 0x040a, 0x0475, 0x052b, 0x0526, 0x04e1, 0x04ff,
+ 0x04a1, 0x035c, 0x0206, 0x0171, 0x0148, 0x00c0,
+ 0x0016, 0xffab, 0xff7d, 0xffd5, 0x0016, 0xffb4,
+ 0xff68, 0xff1a, 0xfe89, 0xfeb4, 0xff5b, 0xffaa,
+ 0xffa0, 0xfe73, 0xfbf6, 0xf9c5, 0xf91b, 0xfa3d,
+ 0xfc2a, 0xfd2d, 0xfd3e, 0xfd31, 0xfd0e, 0xfcb0,
+ 0xfc03, 0xfb77, 0xfbae, 0xfbea, 0xfb88, 0xfb68,
+ 0xfc08, 0xfced, 0xfdd4, 0xfe85, 0xfe2a, 0xfcdf,
+ 0xfc76, 0xfd83, 0xfec9, 0xfff2, 0x00f4, 0x016c,
+ 0x01ab, 0x017f, 0x00e3, 0x0110, 0x01d0, 0x0265,
+ 0x0368, 0x043b, 0x03ad, 0x0285, 0x01de, 0x01c5,
+ 0x01ad, 0x012e, 0x0068, 0xff95, 0xff6c, 0x008e,
+ 0x01ef, 0x02bb, 0x034e, 0x0397, 0x03e6, 0x04aa,
+ 0x051c, 0x04f1, 0x0460, 0x0311, 0x0153, 0xffff,
+ 0xffb0, 0x00c5, 0x02a8, 0x0445, 0x04e8, 0x0495,
+ 0x044b, 0x0463, 0x0441, 0x0420, 0x0466, 0x04ba,
+ 0x04a8, 0x0433, 0x046d, 0x05b6, 0x06ab, 0x06e2,
+ 0x06d8, 0x066e, 0x0648, 0x06f2, 0x080a, 0x095f,
+ 0x0a3c, 0x0a71, 0x0ac9, 0x0aa2, 0x09d7, 0x09f5,
+ 0x0ace, 0x0b8a, 0x0c7a, 0x0d01, 0x0cbd, 0x0cac,
+ 0x0cec, 0x0cba, 0x0bcd, 0x0a58, 0x0895, 0x06e1,
+ 0x0600, 0x0617, 0x0683, 0x0734, 0x07e9, 0x07f7,
+ 0x07c5, 0x079d, 0x071a, 0x0669, 0x0580, 0x0400,
+ 0x021c, 0x006c, 0x0014, 0x017f, 0x034c, 0x0459,
+ 0x0498, 0x040d, 0x02f1, 0x0186, 0x002d, 0xff5a,
+ 0xff09, 0xff58, 0x0030, 0x00eb, 0x01ba, 0x02ce,
+ 0x034d, 0x02d8, 0x0194, 0x000c, 0xff87, 0x0015,
+ 0x00df, 0x01b9, 0x025b, 0x0297, 0x02ba, 0x029d,
+ 0x0297, 0x0375, 0x04f3, 0x0663, 0x0740, 0x0730,
+ 0x068a, 0x05d8, 0x057c, 0x0552, 0x046f, 0x029f,
+ 0x00c9, 0xffa3, 0xff99, 0x006e, 0x0152, 0x0249,
+ 0x0392, 0x04b1, 0x052f, 0x04fb, 0x0498, 0x0493,
+ 0x0454, 0x02fc, 0x00db, 0xff39, 0xff43, 0x00f5,
+ 0x0340, 0x0500, 0x05b5, 0x05d1, 0x057d, 0x0417,
+ 0x021f, 0x00f7, 0x010a, 0x01db, 0x0285, 0x02bb,
+ 0x033b, 0x03f2, 0x0435, 0x040f, 0x0388, 0x02de,
+ 0x02c0, 0x0335, 0x0423, 0x0544, 0x05e2, 0x0637,
+ 0x06ab, 0x06d6, 0x06c3, 0x06b2, 0x06c8, 0x0752,
+ 0x0788, 0x06cc, 0x0649, 0x067e, 0x0665, 0x0588,
+ 0x0411, 0x024d, 0x00d3, 0x000a, 0x0005, 0x00ad,
+ 0x01c7, 0x0316, 0x0438, 0x04b6, 0x048d, 0x043d,
+ 0x03f5, 0x034d, 0x0201, 0xfff8, 0xfda5, 0xfc94,
+ 0xfd56, 0xfeca, 0x006b, 0x01db, 0x020c, 0x014c,
+ 0x008d, 0xffaa, 0xfede, 0xfecc, 0xff71, 0x005f,
+ 0x00b8, 0x002c, 0xffd1, 0x0060, 0x0168, 0x01ef,
+ 0x014b, 0x0038, 0xffcc, 0xfff4, 0x0084, 0x01a3,
+ 0x0322, 0x04b6, 0x0599, 0x0549, 0x04ad, 0x0496,
+ 0x04d5, 0x053b, 0x057e, 0x055a, 0x0556, 0x05a9,
+ 0x05aa, 0x051c, 0x045b, 0x0396, 0x02f1, 0x02a0,
+ 0x02c6, 0x0376, 0x0481, 0x05ae, 0x06d2, 0x073b,
+ 0x06a1, 0x05fa, 0x0567, 0x03f0, 0x01f8, 0x005e,
+ 0xff27, 0xfede, 0xffec, 0x018a, 0x0339, 0x048f,
+ 0x04d0, 0x042a, 0x032a, 0x01e0, 0x00af, 0x0035,
+ 0x0097, 0x0143, 0x015b, 0x00fc, 0x00f5, 0x015f,
+ 0x01db, 0x01f7, 0x0164, 0x0092, 0x0002, 0xffc9,
+ 0x000e, 0x00bc, 0x016d, 0x01ef, 0x01ec, 0x018e,
+ 0x01a2, 0x0229, 0x02db, 0x03b4, 0x0410, 0x03b7,
+ 0x0357, 0x02e7, 0x0229, 0x015a, 0x0051, 0xff11,
+ 0xfdf4, 0xfd01, 0xfcaf, 0xfd86, 0xfeed, 0x004a,
+ 0x018c, 0x023f, 0x0214, 0x018a, 0x00e5, 0xffbc,
+ 0xfe0c, 0xfc60, 0xfae6, 0xf9e5, 0xfa2f, 0xfbc2,
+ 0xfda8, 0xff2a, 0xffd5, 0xff46, 0xfda7, 0xfb9e,
+ 0xfa11, 0xf9bc, 0xfad4, 0xfcd4, 0xfe64, 0xfea0,
+ 0xfe37, 0xfe19, 0xfe3c, 0xfe35, 0xfdd1, 0xfd39,
+ 0xfcd6, 0xfcb8, 0xfcb5, 0xfd0b, 0xfde8, 0xfebf,
+ 0xff2a, 0xff8b, 0xfffe, 0x005e, 0x00de, 0x013f,
+ 0x0159, 0x01b2, 0x01e6, 0x014c, 0x008e, 0x0021,
+ 0xffb5, 0xff42, 0xfec5, 0xfe61, 0xfe8c, 0xff37,
+ 0xfff7, 0x00c0, 0x01b5, 0x0250, 0x01c9, 0x00e3,
+ 0x007c, 0xff78, 0xfdc1, 0xfcf1, 0xfd04, 0xfd7c,
+ 0xfeb0, 0x0025, 0x0192, 0x0306, 0x0378, 0x0295,
+ 0x012f, 0xff7b, 0xfe09, 0xfe0b, 0xff64, 0x00f0,
+ 0x01e5, 0x021e, 0x0205, 0x0222, 0x0272, 0x026a,
+ 0x01ee, 0x016b, 0x00e8, 0x0040, 0xffee, 0x0074,
+ 0x016e, 0x01e1, 0x01d7, 0x022e, 0x02b6, 0x02f7,
+ 0x0374, 0x0471, 0x05d9, 0x074c, 0x0788, 0x0651,
+ 0x04d8, 0x037b, 0x0256, 0x01da, 0x01b0, 0x01bd,
+ 0x0257, 0x031d, 0x03e9, 0x051b, 0x0689, 0x0799,
+ 0x07bc, 0x06dd, 0x0571, 0x03bd, 0x0219, 0x0142,
+ 0x0180, 0x027e, 0x03bc, 0x04d0, 0x05df, 0x0710,
+ 0x07b0, 0x072f, 0x05f0, 0x0460, 0x02d7, 0x01fe,
+ 0x01db, 0x01fe, 0x02af, 0x03fa, 0x051e, 0x05d6,
+ 0x0629, 0x0614, 0x05d7, 0x053f, 0x0457, 0x0412,
+ 0x0485, 0x0516, 0x05af, 0x0608, 0x060f, 0x062c,
+ 0x065a, 0x067c, 0x065b, 0x05fb, 0x064d, 0x074e,
+ 0x07b0, 0x0736, 0x0646, 0x053f, 0x04c5, 0x0480,
+ 0x03e5, 0x03aa, 0x041f, 0x04b8, 0x0568, 0x0679,
+ 0x0776, 0x0769, 0x0690, 0x0588, 0x03d0, 0x01f3,
+ 0x011e, 0x00ac, 0x00c6, 0x022c, 0x0359, 0x03f8,
+ 0x0546, 0x0627, 0x05bc, 0x04c2, 0x0330, 0x01a3,
+ 0x011b, 0x011f, 0x01b4, 0x0304, 0x03cc, 0x03a0,
+ 0x0370, 0x036e, 0x0342, 0x033f, 0x03a4, 0x0392,
+ 0x0282, 0x019f, 0x01b2, 0x01fd, 0x01df, 0x01b0,
+ 0x025f, 0x03fd, 0x04f9, 0x0456, 0x0313, 0x02c1,
+ 0x03c8, 0x04e7, 0x0520, 0x04da, 0x042d, 0x032e,
+ 0x0275, 0x01b7, 0x0109, 0x0167, 0x026c, 0x034a,
+ 0x0402, 0x0475, 0x04ba, 0x04ca, 0x0440, 0x0363,
+ 0x0242, 0x00cc, 0xffb4, 0xff11, 0xfefc, 0x0004,
+ 0x0180, 0x030d, 0x0516, 0x0688, 0x0672, 0x052c,
+ 0x02f9, 0x00ed, 0x0017, 0x0002, 0x008b, 0x0194,
+ 0x0225, 0x024e, 0x02ce, 0x03a0, 0x0478, 0x0518,
+ 0x0551, 0x04fa, 0x0425, 0x0369, 0x02e6, 0x0277,
+ 0x02a1, 0x036d, 0x0473, 0x0554, 0x053c, 0x0478,
+ 0x042d, 0x0450, 0x04e7, 0x05e9, 0x0634, 0x05c6,
+ 0x0538, 0x047b, 0x03fd, 0x037d, 0x02ba, 0x02f3,
+ 0x039f, 0x034e, 0x0310, 0x0352, 0x0367, 0x03db,
+ 0x0451, 0x0407, 0x038f, 0x02eb, 0x01fd, 0x0151,
+ 0x00bc, 0x0053, 0x00b1, 0x01b7, 0x031f, 0x0469,
+ 0x04ca, 0x0442, 0x031e, 0x01ce, 0x012f, 0x0150,
+ 0x0196, 0x01d6, 0x01e5, 0x01c2, 0x01d2, 0x021a,
+ 0x0247, 0x0259, 0x026e, 0x0256, 0x01b5, 0x008f,
+ 0xff7d, 0xff2b, 0xff88, 0x0012, 0x00d1, 0x0173,
+ 0x013a, 0x00c5, 0x00d8, 0x00c7, 0x00ad, 0x013b,
+ 0x018d, 0x00f9, 0x0027, 0xff74, 0xff1a, 0xff3f,
+ 0xff73, 0xffc8, 0x0093, 0x0146, 0x0167, 0x013a,
+ 0x010e, 0x00f6, 0x00b5, 0xfff4, 0xff06, 0xfe9f,
+ 0xfed3, 0xff23, 0xff44, 0xff8d, 0x006b, 0x0180,
+ 0x0208, 0x01eb, 0x0185, 0x010f, 0x007c, 0xffab,
+ 0xfeed, 0xfecc, 0xff1b, 0xff80, 0xffe0, 0x0026,
+ 0x009c, 0x0183, 0x0264, 0x02db, 0x02dc, 0x0240,
+ 0x0114, 0xffb1, 0xfeae, 0xfe59, 0xfe6b, 0xff25,
+ 0x0095, 0x0168, 0x0138, 0x0114, 0x012e, 0x012c,
+ 0x00ea, 0x0081, 0x0072, 0x006c, 0xffcb, 0xff50,
+ 0xff86, 0xfff8, 0x0080, 0x00de, 0x00ff, 0x0174,
+ 0x020e, 0x0250, 0x026b, 0x025a, 0x01ed, 0x0163,
+ 0x00f6, 0x007d, 0xffcb, 0xff5e, 0xffb0, 0x007c,
+ 0x0198, 0x0293, 0x02a5, 0x0239, 0x01f0, 0x017f,
+ 0x00e2, 0x0042, 0xffdc, 0x002b, 0x00be, 0x011a,
+ 0x01af, 0x021b, 0x01ed, 0x01cd, 0x01cc, 0x0186,
+ 0x013d, 0x00f1, 0x0033, 0xff2e, 0xfeb0, 0xff00,
+ 0xff92, 0x002e, 0x00c7, 0x00f1, 0x00d1, 0x0084,
+ 0xffb9, 0xff16, 0xff23, 0xff22, 0xff0d, 0xff7b,
+ 0x0001, 0x0056, 0x00ac, 0x00b1, 0x006d, 0x0071,
+ 0x006f, 0x0005, 0xffd3, 0xfffe, 0x000e, 0xfff6,
+ 0xff87, 0xff1e, 0xff8d, 0xfff0, 0xff69, 0xff31,
+ 0xffe3, 0x0130, 0x02e6, 0x03c7, 0x0367, 0x02cb,
+ 0x0203, 0x0167, 0x0177, 0x0144, 0x0127, 0x01f3,
+ 0x0283, 0x02b3, 0x0319, 0x02e4, 0x0297, 0x0351,
+ 0x040f, 0x03ee, 0x0343, 0x0243, 0x013c, 0x0087,
+ 0x0059, 0x00e5, 0x020e, 0x038c, 0x04c9, 0x04e6,
+ 0x0406, 0x032d, 0x02bb, 0x026a, 0x01d4, 0x00a7,
+ 0xff5f, 0xfef6, 0xff51, 0xffb6, 0x0087, 0x01f9,
+ 0x02f8, 0x0301, 0x0296, 0x0261, 0x02a0, 0x026e,
+ 0x0163, 0x00a9, 0x008b, 0x0098, 0x00e4, 0x00d7,
+ 0x0052, 0x004f, 0x00d7, 0x0196, 0x0244, 0x022d,
+ 0x01f5, 0x028f, 0x0351, 0x039e, 0x0365, 0x02e2,
+ 0x029c, 0x021f, 0x0172, 0x01da, 0x0314, 0x0418,
+ 0x04f3, 0x0558, 0x04cf, 0x03b7, 0x02b3, 0x0201,
+ 0x0117, 0x0005, 0xfff2, 0x00e6, 0x0230, 0x0340,
+ 0x031a, 0x0210, 0x0172, 0x0123, 0x00bd, 0x006c,
+ 0x002e, 0x0028, 0x0039, 0x0051, 0x00b9, 0x00d4,
+ 0x008d, 0x00c3, 0x0146, 0x01dd, 0x025e, 0x01da,
+ 0x00df, 0x006a, 0xffe9, 0xff58, 0xfee0, 0xfe49,
+ 0xfeb2, 0x0018, 0x008d, 0xffde, 0xff49, 0xff78,
+ 0x0070, 0x013a, 0x010e, 0x0091, 0x005f, 0x0073,
+ 0x00d9, 0x0187, 0x01e6, 0x017b, 0x0106, 0x017e,
+ 0x0258, 0x02bd, 0x02cd, 0x02d7, 0x0312, 0x0360,
+ 0x0316, 0x01e0, 0x006b, 0xffcb, 0x0028, 0x00d8,
+ 0x01dd, 0x0310, 0x034d, 0x029f, 0x0207, 0x0164,
+ 0x00a9, 0x0049, 0xffe7, 0xff6c, 0xffa6, 0x00ac,
+ 0x01c5, 0x0282, 0x02f2, 0x035e, 0x03dc, 0x03f7,
+ 0x033b, 0x0255, 0x023b, 0x023b, 0x0127, 0xffa0,
+ 0xfeca, 0xfebb, 0xff24, 0xff89, 0xff76, 0xff60,
+ 0xffdc, 0x00aa, 0x016a, 0x01d0, 0x0194, 0x011d,
+ 0x00f8, 0x00dc, 0x0082, 0x002b, 0x0000, 0x0021,
+ 0x0092, 0x00f6, 0x0131, 0x017a, 0x01c7, 0x021b,
+ 0x026a, 0x0210, 0x00c7, 0xff2a, 0xfdfd, 0xfdb7,
+ 0xfe05, 0xfe7f, 0xff8e, 0x00be, 0x00a5, 0xff9a,
+ 0xfec9, 0xfe11, 0xfd61, 0xfd04, 0xfcb1, 0xfc9f,
+ 0xfd37, 0xfe09, 0xfeb6, 0xff13, 0xfef8, 0xfeb1,
+ 0xfe51, 0xfdb6, 0xfd6a, 0xfde6, 0xff08, 0x0039,
+ 0x0074, 0xff96, 0xfe88, 0xfd7b, 0xfc9d, 0xfcc7,
+ 0xfd83, 0xfdaf, 0xfdaf, 0xfe09, 0xfe6f, 0xfefe,
+ 0xffa4, 0xffcf, 0xffe0, 0x003c, 0x002b, 0xff76,
+ 0xfe92, 0xfdaf, 0xfd70, 0xfe9b, 0x0076, 0x0199,
+ 0x01c3, 0x01a6, 0x018b, 0x0139, 0x0090, 0xff93,
+ 0xfef3, 0xffae, 0x011a, 0x0223, 0x0344, 0x043a,
+ 0x03c5, 0x0283, 0x0175, 0x005e, 0xff75, 0xfedf,
+ 0xfe3e, 0xfe20, 0xff07, 0x0068, 0x01bc, 0x0260,
+ 0x01e4, 0x0128, 0x00d6, 0x004f, 0xff94, 0xff28,
+ 0xfe90, 0xfd98, 0xfd0d, 0xfcef, 0xfc8e, 0xfc49,
+ 0xfd19, 0xfeb0, 0xff9b, 0xff9f, 0xfff1, 0x00a6,
+ 0x0141, 0x021f, 0x02e2, 0x02dd, 0x02d1, 0x0324,
+ 0x0323, 0x02ac, 0x0254, 0x02a5, 0x034a, 0x0381,
+ 0x03c3, 0x04ab, 0x0595, 0x063e, 0x0694, 0x05de,
+ 0x0452, 0x02f2, 0x020b, 0x01ce, 0x027f, 0x039a,
+ 0x0462, 0x048d, 0x03e4, 0x027a, 0x012f, 0x0095,
+ 0x003d, 0xffe3, 0xffe9, 0x00ba, 0x0219, 0x0319,
+ 0x0378, 0x0390, 0x0339, 0x02ea, 0x0325, 0x02da,
+ 0x0238, 0x0307, 0x04c6, 0x059b, 0x0526, 0x041c,
+ 0x034a, 0x02cb, 0x02a1, 0x033d, 0x03f9, 0x046e,
+ 0x05ab, 0x0726, 0x0776, 0x078a, 0x0854, 0x08f9,
+ 0x0908, 0x08e2, 0x0860, 0x0722, 0x05ce, 0x05a4,
+ 0x06a2, 0x0781, 0x077a, 0x06fa, 0x06a2, 0x0684,
+ 0x06c8, 0x06fb, 0x05a6, 0x035a, 0x0234, 0x023d,
+ 0x0330, 0x0526, 0x0697, 0x0732, 0x07c3, 0x076e,
+ 0x06f4, 0x077a, 0x0713, 0x05e4, 0x05e2, 0x0592,
+ 0x0479, 0x03ff, 0x0349, 0x02e8, 0x0434, 0x054f,
+ 0x0637, 0x07d2, 0x073b, 0x0412, 0x00c2, 0xfd31,
+ 0xfa7e, 0xfa00, 0xfa5e, 0xfc93, 0x0096, 0x02ce,
+ 0x03f8, 0x05a3, 0x0560, 0x03d3, 0x02f5, 0x0250,
+ 0x02c8, 0x0432, 0x0540, 0x06fd, 0x08ea, 0x0a1b,
+ 0x0bd0, 0x0d6a, 0x0e49, 0x0f11, 0x0e98, 0x0d1b,
+ 0x0c31, 0x0c01, 0x0d12, 0x0de9, 0x0c1a, 0x09a7,
+ 0x082c, 0x06bd, 0x065b, 0x076a, 0x0880, 0x08b7,
+ 0x0782, 0x060d, 0x058d, 0x04b4, 0x0359, 0x026c,
+ 0x01ba, 0x01c7, 0x02e4, 0x0419, 0x04fb, 0x0574,
+ 0x0560, 0x04d0, 0x0432, 0x0420, 0x040a, 0x039b,
+ 0x035e, 0x02a7, 0x01d5, 0x0228, 0x0294, 0x02fe,
+ 0x041c, 0x048a, 0x049b, 0x05bb, 0x075a, 0x08f1,
+ 0x0975, 0x08b1, 0x08b1, 0x0942, 0x09ba, 0x0ac0,
+ 0x0a7a, 0x08aa, 0x07c2, 0x078b, 0x0843, 0x0a71,
+ 0x0b6d, 0x0a93, 0x09cc, 0x09a2, 0x09d9, 0x0927,
+ 0x0789, 0x06e0, 0x069c, 0x0681, 0x0747, 0x0725,
+ 0x06eb, 0x07cc, 0x066b, 0x0430, 0x04eb, 0x04cb,
+ 0x01f8, 0x0026, 0xff6c, 0xff52, 0x00c7, 0x0254,
+ 0x03db, 0x05a1, 0x05b2, 0x0503, 0x0505, 0x048a,
+ 0x04de, 0x067a, 0x06bd, 0x0680, 0x0672, 0x04e0,
+ 0x0484, 0x06cb, 0x07df, 0x07df, 0x08b1, 0x08bc,
+ 0x07ef, 0x06e5, 0x0533, 0x0442, 0x0418, 0x03c0,
+ 0x049a, 0x0618, 0x0680, 0x0716, 0x0825, 0x082f,
+ 0x07b9, 0x0787, 0x067e, 0x0405, 0x01cc, 0x0192,
+ 0x02f8, 0x04bb, 0x059b, 0x0511, 0x0431, 0x0425,
+ 0x05c1, 0x08f4, 0x0b26, 0x0b18, 0x0a0e, 0x07dc,
+ 0x0544, 0x03fd, 0x0325, 0x0306, 0x04c7, 0x0703,
+ 0x08ee, 0x099a, 0x085e, 0x07e0, 0x0813, 0x0661,
+ 0x044a, 0x02dd, 0x017c, 0x0149, 0x01c2, 0x01e0,
+ 0x01f7, 0x0113, 0xffac, 0xfedc, 0xfd72, 0xfc58,
+ 0xfd0f, 0xfdde, 0xfe28, 0xfe78, 0xfe0d, 0xfd1f,
+ 0xfc7f, 0xfc81, 0xfd9c, 0xff3c, 0x0013, 0x002c,
+ 0x00e4, 0x0295, 0x03de, 0x046c, 0x04a6, 0x03bf,
+ 0x022a, 0x0140, 0x00ba, 0x0046, 0xfff9, 0x003b,
+ 0x01b6, 0x02c9, 0x029c, 0x033e, 0x041c, 0x03ba,
+ 0x03ab, 0x043e, 0x0410, 0x0255, 0xff08, 0xfc93,
+ 0xfc37, 0xfc15, 0xfcf9, 0xff2c, 0xff22, 0xfd69,
+ 0xfcb9, 0xfb7f, 0xf9ea, 0xfa0a, 0xfa04, 0xf8b5,
+ 0xf779, 0xf612, 0xf4af, 0xf433, 0xf40c, 0xf4e8,
+ 0xf712, 0xf7ff, 0xf7f1, 0xf940, 0xfaa9, 0xfb28,
+ 0xfbbe, 0xfbd4, 0xfba3, 0xfc50, 0xfcd1, 0xfcfe,
+ 0xfdc2, 0xfe3a, 0xfe19, 0xfe12, 0xfe10, 0xfdb6,
+ 0xfbb2, 0xf85f, 0xf719, 0xf848, 0xfa28, 0xfcbf,
+ 0xfe28, 0xfce9, 0xfbc7, 0xfb94, 0xfb67, 0xfc29,
+ 0xfc7d, 0xfbdb, 0xfc60, 0xfc0f, 0xf9e1, 0xf8e1,
+ 0xf826, 0xf7d6, 0xfba7, 0x00f3, 0x03fc, 0x05a8,
+ 0x0522, 0x02fd, 0x01c1, 0x005f, 0xffd1, 0x01c2,
+ 0x032b, 0x03e9, 0x0531, 0x0446, 0x0204, 0x015e,
+ 0x01d4, 0x0327, 0x044e, 0x03f4, 0x0452, 0x0589,
+ 0x04dc, 0x03b1, 0x0470, 0x0543, 0x04c2, 0x056e,
+ 0x0794, 0x07da, 0x0761, 0x08f0, 0x0b38, 0x0fcc,
+ 0x17a8, 0x1d93, 0x210e, 0x2414, 0x23d3, 0x2274,
+ 0x2346, 0x224f, 0x1f5e, 0x1db0, 0x1bce, 0x1919,
+ 0x1625, 0x129c, 0x1002, 0x0e8b, 0x0d43, 0x0c17,
+ 0x0a28, 0x0888, 0x0897, 0x08a3, 0x083c, 0x07fb,
+ 0x07ed, 0x0956, 0x0b08, 0x0a8d, 0x0954, 0x07e7,
+ 0x059c, 0x0508, 0x061c, 0x0652, 0x0670, 0x0617,
+ 0x046d, 0x0370, 0x02b4, 0x008c, 0xfe74, 0xfdc6,
+ 0xfdb0, 0xfd09, 0xfbdd, 0xfc42, 0xfebc, 0x0029,
+ 0xffe6, 0xff64, 0xfdc1, 0xfc2c, 0xfb2f, 0xf8c3,
+ 0xf788, 0xf89b, 0xf8cd, 0xf8be, 0xf880, 0xf65f,
+ 0xf44f, 0xf2f2, 0xf103, 0xf007, 0xf003, 0xef58,
+ 0xef4f, 0xef0c, 0xed0b, 0xeb50, 0xe9ee, 0xe8d0,
+ 0xe782, 0xe447, 0xe212, 0xe1c4, 0xe19f, 0xe32b,
+ 0xe643, 0xead9, 0xef83, 0xeffb, 0xee7a, 0xef8f,
+ 0xf0be, 0xefee, 0xf139, 0xf4a2, 0xf632, 0xf7ab,
+ 0xfa74, 0xfc44, 0xfb70, 0xf97f, 0xf903, 0xf72e,
+ 0xf4bf, 0xf522, 0xf4d2, 0xf4a4, 0xf75b, 0xfa81,
+ 0xfc3b, 0xfbd4, 0xfac0, 0xf903, 0xf749, 0xf8c6,
+ 0xfa03, 0xf93b, 0xfaf9, 0xfde6, 0xfe13, 0xfec7,
+ 0x0045, 0xfcc1, 0xf9c2, 0xf9e5, 0xf610, 0xf547,
+ 0xf9ec, 0xfc63, 0xffae, 0x0292, 0x01e9, 0x01da,
+ 0x0195, 0xff33, 0xfe89, 0x009e, 0x0119, 0x01b8,
+ 0x0402, 0x04ea, 0x08b0, 0x0c91, 0x0a7c, 0x0953,
+ 0x0a83, 0x0984, 0x07b8, 0x08e7, 0x0b37, 0x08f7,
+ 0x06e9, 0x09b5, 0x0ca9, 0x0c81, 0x0a83, 0x0c0d,
+ 0x0fa7, 0x1127, 0x12e0, 0x1442, 0x15c9, 0x16c4,
+ 0x160a, 0x16ea, 0x171f, 0x1627, 0x14c9, 0x11ec,
+ 0x1100, 0x1080, 0x0f01, 0x0f83, 0x1156, 0x113a,
+ 0x0e96, 0x0d2b, 0x0a8b, 0x0762, 0x0941, 0x0936,
+ 0x06ae, 0x06a0, 0x065a, 0x0710, 0x0888, 0x0a73,
+ 0x0c3f, 0x0b42, 0x0b13, 0x0d12, 0x0fdb, 0x1124,
+ 0x1150, 0x131b, 0x1160, 0x0f05, 0x10e9, 0x1064,
+ 0x0e21, 0x0ee7, 0x1118, 0x0fd4, 0x0d51, 0x0d61,
+ 0x0a2b, 0x0779, 0x07d2, 0x0557, 0x056b, 0x0635,
+ 0x03a0, 0x029b, 0x0233, 0x0173, 0x00d0, 0x00ba,
+ 0xffe0, 0xfe41, 0xff90, 0xff1c, 0xfc74, 0xfb5e,
+ 0xfa12, 0xf920, 0xf73f, 0xf7de, 0xfa6b, 0xf842,
+ 0xf6b7, 0xf4ba, 0xf02f, 0xee79, 0xed90, 0xed13,
+ 0xed31, 0xee1c, 0xef79, 0xeecb, 0xee6a, 0xec72,
+ 0xea22, 0xea2f, 0xe9d0, 0xeade, 0xea72, 0xe966,
+ 0xea9b, 0xea1e, 0xeb27, 0xeab7, 0xe867, 0xeaf8,
+ 0xecc8, 0xec99, 0xec6c, 0xeada, 0xe8c2, 0xe72a,
+ 0xe860, 0xe804, 0xe5ae, 0xe569, 0xe5cd, 0xe646,
+ 0xe2cd, 0xe0e6, 0xe29d, 0xdea3, 0xdeb3, 0xe2c3,
+ 0xe0be, 0xe095, 0xe336, 0xe3ad, 0xe172, 0xe009,
+ 0xe1c5, 0xe181, 0xe0dc, 0xe2b9, 0xe7cd, 0xed93,
+ 0xed06, 0xe528, 0xd4cd, 0xc86d, 0xcb4b, 0xd2d0,
+ 0xe052, 0xf235, 0xfcdb, 0xff2b, 0xf70a, 0xe9a2,
+ 0xde68, 0xdb05, 0xe1bf, 0xe6ad, 0xe972, 0xeff9,
+ 0xf6ec, 0xfc3e, 0xffdf, 0x03cb, 0x03d0, 0x0264,
+ 0x04e5, 0x05d4, 0x09d1, 0x0e31, 0x0e1b, 0x1118,
+ 0x10bc, 0x0d0e, 0x0ec7, 0x13f9, 0x17ca, 0x1773,
+ 0x17ec, 0x1781, 0x16b5, 0x1a12, 0x18bf, 0x1813,
+ 0x1c8e, 0x1d96, 0x1d59, 0x1d7a, 0x2153, 0x24db,
+ 0x21a9, 0x233d, 0x288f, 0x254e, 0x1de9, 0x1f46,
+ 0x2336, 0x2150, 0x26c3, 0x2b01, 0x26a6, 0x2941,
+ 0x29c7, 0x2950, 0x2d76, 0x2798, 0x24a3, 0x2d1d,
+ 0x2cfe, 0x240d, 0x24a0, 0x2a84, 0x287a, 0x290d,
+ 0x2b54, 0x288d, 0x2a87, 0x2d34, 0x2f13, 0x2ea2,
+ 0x2869, 0x295b, 0x2bbc, 0x282c, 0x290a, 0x2d21,
+ 0x2c84, 0x282e, 0x28ea, 0x2a38, 0x2b29, 0x3206,
+ 0x2fd6, 0x2812, 0x25a7, 0x21e7, 0x22c1, 0x2525,
+ 0x25f4, 0x2a0c, 0x2936, 0x259c, 0x23c0, 0x208a,
+ 0x1db8, 0x1e5c, 0x208a, 0x1fd4, 0x1ef9, 0x1b28,
+ 0x19dd, 0x2004, 0x1c3d, 0x1a3b, 0x1e7c, 0x1605,
+ 0x1468, 0x1a15, 0x1717, 0x16df, 0x153c, 0x0ead,
+ 0x0a5c, 0x0771, 0x0862, 0x0be5, 0x0a50, 0x06d1,
+ 0x0868, 0x04a5, 0x005f, 0x0457, 0xfd83, 0xfae1,
+ 0x061f, 0x0388, 0xfd8f, 0xfc42, 0xfa43, 0xff9b,
+ 0x007c, 0xfbe5, 0xfb55, 0xfa42, 0xf987, 0xfba7,
+ 0xfcf6, 0xf9e4, 0xf968, 0xfb11, 0xf9b5, 0xfb6f,
+ 0xfa35, 0xf7b4, 0xf8c2, 0xf6d0, 0xf8fd, 0xf8ab,
+ 0xf294, 0xf372, 0xf5d4, 0xf7c4, 0xf7e1, 0xf73e,
+ 0xfb01, 0xf9d2, 0xf70d, 0xf7ce, 0xf760, 0xf6c8,
+ 0xf91f, 0xfdea, 0xfa9a, 0xf785, 0xfaf1, 0xf5c3,
+ 0xf4fa, 0xfa97, 0xf80d, 0xf862, 0xf903, 0xf2f8,
+ 0xf1fb, 0xf6df, 0xf407, 0xf055, 0xf7ca, 0xf688,
+ 0xf149, 0xf611, 0xf39f, 0xf3f8, 0xf7eb, 0xf1e7,
+ 0xf0aa, 0xef9a, 0xec66, 0xf231, 0xf65b, 0xf4b8,
+ 0xf658, 0xf932, 0xf575, 0xf4f8, 0xf8f5, 0xf6a8,
+ 0xf805, 0xf75e, 0xf317, 0xf830, 0xf6a1, 0xf15c,
+ 0xf4a5, 0xf5b9, 0xf4b6, 0xf4ad, 0xf638, 0xf5f8,
+ 0xf41b, 0xf4ce, 0xf31d, 0xf4c6, 0xf822, 0xf9fc,
+ 0xff69, 0xfdc9, 0xfb2e, 0xfa4b, 0xf1a6, 0xf0d6,
+ 0xf8ed, 0xfcc0, 0xfae4, 0xf64b, 0xf368, 0xf252,
+ 0xf2ce, 0xf123, 0xf296, 0xf687, 0xf1a3, 0xf3aa,
+ 0xf68b, 0xeec1, 0xf255, 0xf607, 0xf275, 0xf399,
+ 0xf0bf, 0xf0e9, 0xf50a, 0xf058, 0xecb0, 0xf199,
+ 0xf269, 0xf05f, 0xf8df, 0xfab3, 0xf639, 0xfd94,
+ 0xf9cf, 0xf0d6, 0xf811, 0xfc58, 0xf91a, 0xf69f,
+ 0xf784, 0xf72d, 0xf184, 0xefef, 0xf01f, 0xf078,
+ 0xf081, 0xefaf, 0xf5b9, 0xf717, 0xf4dd, 0xf7fc,
+ 0xf5fc, 0xf40d, 0xf5b1, 0xf3d8, 0xeef3, 0xee18,
+ 0xf232, 0xef0d, 0xed0d, 0xf178, 0xf321, 0xf72d,
+ 0xf61e, 0xf0c5, 0xf064, 0xef2e, 0xeea0, 0xe9e8,
+ 0xe536, 0xe698, 0xe3e3, 0xe63b, 0xefb6, 0xf601,
+ 0xf90c, 0xf89f, 0xf7ad, 0xf617, 0xf56a, 0xf436,
+ 0xf40e, 0xf9f7, 0xf822, 0xf6cc, 0xfab1, 0xf371,
+ 0xf4a7, 0xfd24, 0xfa50, 0xfbb8, 0x0041, 0xfd7a,
+ 0xfb7d, 0xfe42, 0xfd3d, 0xfb26, 0xfe7e, 0xfc99,
+ 0xfeaa, 0x053b, 0xff35, 0xfc4f, 0xfda4, 0xfc52,
+ 0xfc99, 0xf6a3, 0xf72f, 0xfd2f, 0xfb7f, 0xff3a,
+ 0x0391, 0x026c, 0x0733, 0x0b7d, 0x03b1, 0xfebc,
+ 0x0565, 0x0486, 0x019a, 0x01e5, 0xff39, 0x0839,
+ 0x0996, 0xfdea, 0x00c5, 0x0090, 0xfb21, 0xff1c,
+ 0xfe73, 0xfc76, 0x0376, 0x0ad6, 0x0ace, 0x0b23,
+ 0x0ac9, 0x0619, 0x0ab5, 0x0bd9, 0x03a7, 0x069a,
+ 0x0b1d, 0x09e2, 0x09dc, 0x0af6, 0x0c00, 0x0a0f,
+ 0x07df, 0x05d4, 0x0a18, 0x0e90, 0x07ab, 0x0b9f,
+ 0x10ae, 0x087a, 0x0d41, 0x1186, 0x0a92, 0x0b48,
+ 0x0d29, 0x0ca6, 0x0df4, 0x0bbf, 0x0841, 0x0b3c,
+ 0x0c24, 0x09ee, 0x0fe9, 0x0ccf, 0x0735, 0x1224,
+ 0x1588, 0x13de, 0x1529, 0x0fe1, 0x0e53, 0x0a45,
+ 0x059a, 0x0a3b, 0x0af2, 0x0a11, 0x0d09, 0x0d04,
+ 0x0871, 0x0552, 0x0608, 0x07d1, 0x0bdd, 0x08c3,
+ 0x0460, 0x07c1, 0x0269, 0x027b, 0x0ba5, 0x0769,
+ 0x0623, 0x0b96, 0x099d, 0x090c, 0x0e10, 0x0e02,
+ 0x06af, 0x05cf, 0x0702, 0x030c, 0x0100, 0x01be,
+ 0x0ce9, 0x11a3, 0x065c, 0x096a, 0x0d97, 0x0735,
+ 0x0a89, 0x0a76, 0x0453, 0x0722, 0x09db, 0x0645,
+ 0x065a, 0x0768, 0x059a, 0x0b55, 0x0bb2, 0x05e7,
+ 0x0a49, 0x07ac, 0x04ce, 0x0ba7, 0x0ab3, 0x0974,
+ 0x06dc, 0x0291, 0x03e8, 0xfe75, 0xfd84, 0x061b,
+ 0x02df, 0xf917, 0xfc22, 0x05be, 0x0475, 0x015d,
+ 0x05d5, 0x0a15, 0x0a54, 0x04f5, 0x03ba, 0x069d,
+ 0x07f8, 0x0c7a, 0x093b, 0x06c7, 0x0be7, 0x07f8,
+ 0x07a6, 0x0d85, 0x0ff2, 0x1322, 0x1111, 0x0d65,
+ 0x0c7c, 0x0d21, 0x1005, 0x0e11, 0x0af8, 0x0b82,
+ 0x0c26, 0x095a, 0x0694, 0x0ad2, 0x0b08, 0x05f5,
+ 0x0751, 0x0ced, 0x0f0a, 0x09a6, 0x08fe, 0x099d,
+ 0x0692, 0x1101, 0x116d, 0x0477, 0x0a54, 0x0db7,
+ 0x06f2, 0x0956, 0x0bdb, 0x0aca, 0x0902, 0x05bb,
+ 0x0661, 0x0a8c, 0x0731, 0x0265, 0x0835, 0x0a07,
+ 0x0796, 0x07a1, 0x03de, 0x064b, 0x0aa6, 0x0b73,
+ 0x0daa, 0x0905, 0x056b, 0x061a, 0x07b8, 0x0d06,
+ 0x09b1, 0x03d9, 0x04b0, 0x05ab, 0x0906, 0x0af1,
+ 0x0910, 0x06ef, 0x05e2, 0x05f3, 0x0515, 0x06b7,
+ 0x07b8, 0x0696, 0x0536, 0x01e8, 0x03e5, 0x05e4,
+ 0x03c9, 0x03cd, 0x038e, 0x0547, 0x0264, 0xff39,
+ 0x0527, 0x047e, 0x056a, 0x0a8e, 0x04cf, 0x0384,
+ 0x05d1, 0x0272, 0x05b4, 0x0b3b, 0x07e8, 0x0250,
+ 0x007c, 0xff87, 0x03b7, 0x070b, 0x0296, 0x04a5,
+ 0x0384, 0xfb2e, 0xff37, 0x03bd, 0x019d, 0x008a,
+ 0x0133, 0x03d0, 0x00fe, 0x0050, 0x03bd, 0x025e,
+ 0x0600, 0x08e9, 0x047c, 0x03bb, 0x0575, 0x0504,
+ 0x044f, 0x059f, 0x0483, 0x01bf, 0x030e, 0x0407,
+ 0x04a7, 0x04e5, 0x06e9, 0x093e, 0x0144, 0xfd2f,
+ 0x015f, 0x0202, 0x05b8, 0x076d, 0x0586, 0x05e2,
+ 0x0403, 0x036a, 0x03ae, 0x05d9, 0x07f1, 0x031d,
+ 0x029c, 0x053d, 0x0284, 0x0320, 0x0724, 0x0620,
+ 0x038d, 0x05ea, 0x0526, 0x01a2, 0x018a, 0xfed6,
+ 0x011b, 0x04ec, 0xffc5, 0xfd7d, 0xfd6d, 0x00cc,
+ 0x07a9, 0x0561, 0x0334, 0x045f, 0x03c7, 0x0331,
+ 0xff1f, 0xff37, 0x03f4, 0x045c, 0x04b7, 0x067a,
+ 0x0692, 0x042f, 0xfef9, 0xfb53, 0x000e, 0x02ab,
+ 0xfb86, 0xfe01, 0x0313, 0xff30, 0x034b, 0x051c,
+ 0x023a, 0x0366, 0xfbac, 0xf95a, 0x009a, 0xffc3,
+ 0xffd7, 0x0031, 0xfc66, 0x002c, 0x045a, 0x002d,
+ 0x014e, 0x0570, 0xff27, 0xfbaa, 0xfea0, 0x0080,
+ 0x04d6, 0x0232, 0xfe74, 0x01fc, 0xfe5b, 0xfb8d,
+ 0xfec1, 0xfdce, 0xfc7c, 0xfb95, 0xfabd, 0xfb05,
+ 0xfb94, 0xfb41, 0xfa8d, 0xff58, 0x00e3, 0xfaf1,
+ 0xfaca, 0xfdb9, 0xfd12, 0xfcec, 0xfdb2, 0xfad1,
+ 0xf874, 0xfca0, 0xfde0, 0xfcf2, 0xff97, 0xfe63,
+ 0xfbd9, 0xfb2e, 0xfcc8, 0xfec2, 0xfc77, 0xfe83,
+ 0xfefb, 0xf768, 0xf7d0, 0xfd9f, 0xfde5, 0xfb42,
+ 0xfa4c, 0xfb9c, 0xfa5b, 0xf8cb, 0xfa33, 0xfb3d,
+ 0xfb31, 0xfc5e, 0xfe0e, 0xfabc, 0xf82e, 0xfb09,
+ 0xfc5c, 0xff50, 0x00eb, 0xfbf5, 0xf855, 0xf7cc,
+ 0xf947, 0xfabb, 0xfbfd, 0xfc52, 0xf7ce, 0xf8fc,
+ 0xfd5d, 0xf9ef, 0xfb30, 0x00af, 0xff24, 0xfcdd,
+ 0xfe56, 0xff40, 0xffbc, 0x0231, 0x029c, 0x01a8,
+ 0x026f, 0x00f3, 0xfe78, 0xfde1, 0x0081, 0x0281,
+ 0xfeb6, 0xfdba, 0xfe96, 0xfcd4, 0xfea5, 0xff9c,
+ 0x000a, 0x01b8, 0x00c1, 0x0199, 0xffcc, 0xfc41,
+ 0xff8f, 0x0029, 0xfdd3, 0x027d, 0x0653, 0x058a,
+ 0x0730, 0x0640, 0x0486, 0x0a66, 0x0aea, 0x05a8,
+ 0x05b7, 0x0443, 0x0511, 0x0726, 0x0371, 0x0561,
+ 0x0569, 0xfce9, 0xfbaa, 0xfc7c, 0xf8af, 0xfab4,
+ 0xfe09, 0xfa8c, 0xfa8c, 0x0012, 0x00e3, 0x0112,
+ 0x0143, 0xfc64, 0xfb9d, 0xfef6, 0xfdb8, 0xfbbe,
+ 0xfc65, 0xfca6, 0xff57, 0x042d, 0x023f, 0x0176,
+ 0x0715, 0x03fb, 0xfff6, 0x028d, 0xff7f, 0xff88,
+ 0x0480, 0x029d, 0x00ba, 0x000c, 0xfd38, 0xfe5d,
+ 0xff26, 0xf9f0, 0xf5ce, 0xf6dd, 0xfa3d, 0xfaef,
+ 0xf732, 0xf764, 0xf9bf, 0xf6fe, 0xf90a, 0xfc1d,
+ 0xf75e, 0xf693, 0xf893, 0xf930, 0xfb6f, 0xf933,
+ 0xf925, 0xfd59, 0xf943, 0xf4ff, 0xf75a, 0xf764,
+ 0xf761, 0xf922, 0xf7ef, 0xf7ac, 0xf832, 0xf6c1,
+ 0xf8c3, 0xfb0e, 0xf945, 0xf8ea, 0xfb3b, 0xfe56,
+ 0xfe9a, 0xfe3a, 0x0382, 0x03dc, 0xfded, 0xffc2,
+ 0x0469, 0x0673, 0x07f4, 0x0424, 0x010b, 0x054b,
+ 0x0794, 0x0567, 0x051d, 0x0545, 0x0366, 0x01cc,
+ 0x01fe, 0x022a, 0xffe5, 0xff1e, 0x018b, 0x01bd,
+ 0x0116, 0x002b, 0xfc0e, 0xf9e7, 0xf9da, 0xf8f8,
+ 0xfb80, 0xffe6, 0x008c, 0xfe0d, 0xfec2, 0x0563,
+ 0x0909, 0x06c2, 0x0621, 0x054e, 0x0245, 0x027e,
+ 0x0352, 0x022f, 0x0250, 0x026b, 0x04d8, 0x0a60,
+ 0x0b64, 0x0ac3, 0x0c49, 0x092d, 0x0660, 0x0b6f,
+ 0x0e27, 0x08f1, 0x05c9, 0x06d8, 0x045c, 0xff84,
+ 0xfd1c, 0xfba5, 0xfc49, 0xfee6, 0xfdc4, 0xfb35,
+ 0xfb41, 0xfa9a, 0xfa4f, 0xfaf3, 0xf901, 0xf7d8,
+ 0xf825, 0xf593, 0xf2dc, 0xf1fe, 0xf0ff, 0xf0ac,
+ 0xf183, 0xf2ed, 0xf405, 0xf39e, 0xf2a8, 0xf291,
+ 0xf3d1, 0xf488, 0xf32d, 0xf376, 0xf36d, 0xee17,
+ 0xeca9, 0xf1e9, 0xf1c5, 0xef3d, 0xf094, 0xeef4,
+ 0xecc9, 0xeeaa, 0xef36, 0xeea9, 0xeea8, 0xee0b,
+ 0xef83, 0xf0b0, 0xef81, 0xf15d, 0xf217, 0xec79,
+ 0xeb05, 0xef5c, 0xedda, 0xea86, 0xedad, 0xefc9,
+ 0xed55, 0xec7c, 0xee7e, 0xf124, 0xf080, 0xed84,
+ 0xf07a, 0xf346, 0xed8a, 0xebb9, 0xef5c, 0xed11,
+ 0xebbd, 0xedb6, 0xeb0b, 0xeaa7, 0xed3e, 0xea86,
+ 0xeaa3, 0xf19f, 0xf4d6, 0xf398, 0xf39c, 0xf323,
+ 0xf20a, 0xf4df, 0xf8eb, 0xf8f5, 0xf8fa, 0xf85b,
+ 0xf37c, 0xf4b7, 0xfc50, 0xfce2, 0xfc1f, 0xfff5,
+ 0xfeb0, 0xfa62, 0xf9d7, 0xfa7d, 0xfb51, 0xfc01,
+ 0xfcae, 0xfc87, 0xf8b2, 0xf5fe, 0xf5aa, 0xf439,
+ 0xf762, 0xfad5, 0xf665, 0xf465, 0xf712, 0xf884,
+ 0xfd88, 0x0115, 0xfe90, 0xffc3, 0x01c2, 0xfee9,
+ 0x0086, 0x05fb, 0x04b6, 0x00be, 0x0377, 0x05fb,
+ 0x014d, 0x00ee, 0x068d, 0x0644, 0x0526, 0x06a3,
+ 0x0461, 0x05c8, 0x0acf, 0x0b0d, 0x0c2a, 0x0c04,
+ 0x0757, 0x082f, 0x0a0f, 0x07e0, 0x0a4d, 0x0c90,
+ 0x09f6, 0x0ac7, 0x0e7d, 0x0f30, 0x0c65, 0x0b51,
+ 0x0f7d, 0x1159, 0x1002, 0x1232, 0x127a, 0x1074,
+ 0x126a, 0x13ee, 0x1540, 0x17ee, 0x15dd, 0x1392,
+ 0x1586, 0x14f6, 0x1236, 0x1287, 0x14fe, 0x157d,
+ 0x13dc, 0x14a3, 0x153d, 0x132a, 0x154b, 0x1843,
+ 0x1606, 0x162f, 0x1981, 0x1a43, 0x19b2, 0x18f1,
+ 0x190f, 0x179c, 0x126c, 0x1207, 0x1544, 0x137b,
+ 0x12ad, 0x1462, 0x137b, 0x141f, 0x14ee, 0x12ec,
+ 0x1323, 0x1442, 0x12cb, 0x0fe4, 0x0cff, 0x0c53,
+ 0x0be3, 0x0a79, 0x0ac7, 0x09c4, 0x08a7, 0x0ad6,
+ 0x09df, 0x084a, 0x0bf2, 0x0c6f, 0x0963, 0x0a08,
+ 0x0b12, 0x0a15, 0x0912, 0x0a1a, 0x0d20, 0x0c8f,
+ 0x0a81, 0x0c0b, 0x0b60, 0x0a3b, 0x0cb1, 0x0a36,
+ 0x05ed, 0x0869, 0x0906, 0x04e6, 0x04b5, 0x0801,
+ 0x0937, 0x06b8, 0x0487, 0x06b3, 0x07b3, 0x0514,
+ 0x0561, 0x067b, 0x04a6, 0x051f, 0x05d0, 0x02eb,
+ 0x0311, 0x04ab, 0x0121, 0xffbb, 0x0327, 0x02b6,
+ 0x0054, 0x01db, 0x0388, 0x02a1, 0x0215, 0x03e3,
+ 0x04a6, 0x0205, 0x01d2, 0x0420, 0x022b, 0xffba,
+ 0x0055, 0x0030, 0xffe2, 0xff24, 0xfec5, 0x0161,
+ 0x00aa, 0xfd31, 0xfd0d, 0xfb3d, 0xfb0f, 0xff76,
+ 0xfd08, 0xfa15, 0xfee7, 0xfe78, 0xfa38, 0xfb67,
+ 0xfc7c, 0xfc68, 0xfb66, 0xf8c3, 0xf998, 0xf9a2,
+ 0xf783, 0xfaf5, 0xfe50, 0xfcce, 0xfc26, 0xfce6,
+ 0xff18, 0x0075, 0xfe15, 0xfec8, 0x01dd, 0xffce,
+ 0xfc36, 0xfb38, 0xfc7b, 0xfedf, 0xff5a, 0xfe86,
+ 0xfd57, 0xfd98, 0x0146, 0x00a7, 0xfcfe, 0xffab,
+ 0xff59, 0xfa29, 0xfc3b, 0xfe75, 0xfc8d, 0xfe3e,
+ 0xff70, 0x0000, 0x015c, 0xfd08, 0xfa8d, 0xfdc2,
+ 0xfce2, 0xfdb4, 0x0352, 0x01c2, 0xfcda, 0xfe3f,
+ 0x005b, 0xffad, 0x015f, 0x0521, 0x0500, 0x02d6,
+ 0x03c6, 0x034a, 0x0049, 0x012c, 0x0288, 0x00aa,
+ 0x0068, 0x00a1, 0xff35, 0xff87, 0xffa7, 0xfd7a,
+ 0xfddf, 0x0187, 0x03a1, 0x04ab, 0x06b1, 0x0526,
+ 0x0073, 0x0140, 0x04b3, 0x017e, 0xfda0, 0x0013,
+ 0x00c5, 0xfbd7, 0xf96b, 0xfacf, 0xfab2, 0xfa83,
+ 0xfaaf, 0xf7f0, 0xf669, 0xf7a8, 0xf63b, 0xf542,
+ 0xf745, 0xf66f, 0xf45d, 0xf539, 0xf6ef, 0xf840,
+ 0xf7f3, 0xf7c1, 0xfad7, 0xfb88, 0xf818, 0xf7bf,
+ 0xf946, 0xf7d0, 0xf623, 0xf7f8, 0xfb45, 0xfaa8,
+ 0xf7f9, 0xf8e4, 0xf9fa, 0xf91d, 0xf9ad, 0xf90f,
+ 0xf6b4, 0xf6ca, 0xf7f2, 0xf824, 0xf8f6, 0xfbd3,
+ 0xfdfa, 0xfb49, 0xf929, 0xfc0e, 0xfd7a, 0xfe54,
+ 0x01da, 0x01c6, 0x005f, 0x023f, 0x01a8, 0xffb4,
+ 0x01c5, 0x0514, 0x05e0, 0x03cd, 0x026f, 0x0375,
+ 0x030f, 0x02e1, 0x0521, 0x0561, 0x0464, 0x052c,
+ 0x0613, 0x05f3, 0x04a6, 0x0500, 0x073f, 0x059a,
+ 0x03b5, 0x06dd, 0x087b, 0x07a9, 0x08a6, 0x0924,
+ 0x093b, 0x0962, 0x088e, 0x096d, 0x0a1e, 0x0925,
+ 0x0b01, 0x0cb4, 0x0a86, 0x09d0, 0x0b88, 0x0c1a,
+ 0x0c22, 0x0b44, 0x0848, 0x069f, 0x0878, 0x09d3,
+ 0x08fb, 0x09a9, 0x0bc3, 0x0b13, 0x07b8, 0x0767,
+ 0x0c7a, 0x0f67, 0x0d8f, 0x0f44, 0x1267, 0x10cd,
+ 0x107b, 0x1127, 0x0e96, 0x0ea5, 0x1058, 0x0eff,
+ 0x0e18, 0x0e06, 0x0e53, 0x0ecd, 0x0c42, 0x0a5a,
+ 0x0aac, 0x0993, 0x0a74, 0x0bf6, 0x09f5, 0x08dd,
+ 0x0808, 0x067f, 0x0718, 0x0585, 0x03fd, 0x0689,
+ 0x0679, 0x0623, 0x0880, 0x06f1, 0x05c6, 0x07a4,
+ 0x06e9, 0x07b0, 0x09eb, 0x0925, 0x09ea, 0x0a75,
+ 0x07f6, 0x0810, 0x08c5, 0x069e, 0x0577, 0x05f7,
+ 0x05fe, 0x04e5, 0x04e5, 0x078d, 0x076d, 0x03c2,
+ 0x0280, 0x027e, 0x01fc, 0x02ce, 0x03be, 0x04d6,
+ 0x0673, 0x0782, 0x07c6, 0x0602, 0x0553, 0x0754,
+ 0x0516, 0x01c3, 0x046c, 0x05cf, 0x04be, 0x06a9,
+ 0x060f, 0x0359, 0x057b, 0x08a6, 0x097c, 0x0a34,
+ 0x09ec, 0x0853, 0x071e, 0x070d, 0x0720, 0x05ae,
+ 0x0542, 0x0736, 0x0732, 0x05b1, 0x05ba, 0x0549,
+ 0x05bb, 0x0875, 0x087b, 0x0760, 0x0a08, 0x0ba4,
+ 0x0a0e, 0x09e4, 0x0a2b, 0x09d6, 0x0a4e, 0x086a,
+ 0x04ac, 0x03a0, 0x0421, 0x051d, 0x0717, 0x0769,
+ 0x0607, 0x04b9, 0x0280, 0x0012, 0x0039, 0x0278,
+ 0x02c0, 0x00b0, 0x00f8, 0x031b, 0x0410, 0x0579,
+ 0x05e8, 0x04ab, 0x0544, 0x045c, 0x018c, 0x0268,
+ 0x0318, 0x0206, 0x030d, 0x028d, 0x01be, 0x02dc,
+ 0x00ca, 0x004d, 0x0383, 0x01ec, 0xfff5, 0x0184,
+ 0x0015, 0xfef3, 0x00a9, 0x0119, 0x0218, 0x02e6,
+ 0x01d8, 0x0217, 0x0248, 0x017c, 0x017c, 0x0232,
+ 0x04ca, 0x0625, 0x03fb, 0x0425, 0x0526, 0x0301,
+ 0x0295, 0x031b, 0x0150, 0x0089, 0x0078, 0x0030,
+ 0x01dc, 0x0370, 0x02d2, 0x00e1, 0xff39, 0xffc2,
+ 0x0051, 0xff2e, 0xff5c, 0xffd6, 0xfeb7, 0xfebb,
+ 0xffb6, 0x0080, 0x0171, 0x0046, 0xfe59, 0xff9b,
+ 0x00d2, 0xff5f, 0xffeb, 0x0226, 0x0138, 0x0043,
+ 0x01a7, 0x0179, 0x0116, 0x01c2, 0x0067, 0xfe77,
+ 0xfda9, 0xfdcd, 0xfe1d, 0xfc6b, 0xfc84, 0xff5a,
+ 0xfe35, 0xfce1, 0xff4f, 0xfe7d, 0xfc2d, 0xfd41,
+ 0xfe85, 0x0034, 0x0121, 0xff03, 0xffcc, 0x0256,
+ 0x00e6, 0xfff9, 0xffd2, 0xfdfb, 0xfe89, 0xfeb4,
+ 0xfce3, 0xff0f, 0x0201, 0x011d, 0xffa5, 0xfe75,
+ 0xfca9, 0xfb7d, 0xfc57, 0xfe96, 0xff0b, 0xfd26,
+ 0xfc2a, 0xfda1, 0xfed6, 0xfe93, 0xff84, 0xff50,
+ 0xfbe0, 0xfb64, 0xfd22, 0xfb3a, 0xfa0e, 0xfc18,
+ 0xfd2b, 0xfdfc, 0xfe30, 0xfc47, 0xfc61, 0xfcec,
+ 0xfa83, 0xfb16, 0xfdff, 0xfd50, 0xfcfa, 0xfec5,
+ 0xff6c, 0xff5b, 0xff71, 0x0097, 0x00ae, 0xfdc0,
+ 0xfc76, 0xfceb, 0xfc71, 0xfc9a, 0xfc9a, 0xfdb3,
+ 0x0020, 0xff7a, 0xff5c, 0x0153, 0xff19, 0xfca8,
+ 0xfe79, 0xfecd, 0xfdec, 0x001b, 0x02f0, 0x042f,
+ 0x0423, 0x0337, 0x02c1, 0x0283, 0x0240, 0x033f,
+ 0x04e2, 0x05b9, 0x051a, 0x04a8, 0x063e, 0x06ca,
+ 0x0553, 0x0448, 0x02ec, 0x01f6, 0x0194, 0x0131,
+ 0x033b, 0x0400, 0x022b, 0x0454, 0x0720, 0x056f,
+ 0x03ae, 0x03df, 0x03c0, 0x022b, 0x0213, 0x04f3,
+ 0x053c, 0x0349, 0x03bd, 0x03f3, 0x0430, 0x071e,
+ 0x07fe, 0x0496, 0x01ff, 0x014c, 0xffca, 0xff8b,
+ 0x00c9, 0x0038, 0x008f, 0x0246, 0x0111, 0xffba,
+ 0xffbd, 0xfd46, 0xfaff, 0xfbcf, 0xfc64, 0xfbe7,
+ 0xfb5a, 0xfa91, 0xfab7, 0xfa84, 0xf92e, 0xf991,
+ 0xfa8c, 0xfb5d, 0xfd2c, 0xfda1, 0xfe5d, 0xff2f,
+ 0xfd4b, 0xfdc9, 0xfe80, 0xfad2, 0xf9e6, 0xfaf2,
+ 0xf98b, 0xf955, 0xf916, 0xf7cc, 0xf86b, 0xfa03,
+ 0xfb2d, 0xfc06, 0xfc39, 0xfa92, 0xf863, 0xf87e,
+ 0xf906, 0xf9a8, 0xfbe8, 0xfd1c, 0xfc79, 0xfb97,
+ 0xfc69, 0xfebc, 0xfdf4, 0xfbdc, 0xfccc, 0xfd15,
+ 0xfc90, 0xff09, 0x01ab, 0x027b, 0x03e5, 0x0545,
+ 0x0552, 0x04a2, 0x02b1, 0x01c4, 0x0359, 0x0360,
+ 0x026f, 0x03cb, 0x0499, 0x02bf, 0x0179, 0x02f3,
+ 0x0317, 0x015a, 0x0326, 0x04ae, 0x039e, 0x0553,
+ 0x057b, 0x02fc, 0x04a5, 0x06a4, 0x04e7, 0x02fc,
+ 0x0218, 0x00db, 0xffec, 0x00b5, 0x0054, 0xfeaf,
+ 0x0096, 0x0354, 0x02df, 0x0176, 0x0148, 0x018c,
+ 0xff77, 0xfe39, 0x010a, 0x0252, 0x02dd, 0x0585,
+ 0x053b, 0x033b, 0x0323, 0x0378, 0x0389, 0x01ad,
+ 0xff42, 0x003f, 0x01c2, 0x01aa, 0x03dd, 0x0750,
+ 0x07c8, 0x0737, 0x07d3, 0x079e, 0x05bd, 0x0376,
+ 0x0293, 0x02b2, 0x021b, 0x0180, 0x00a7, 0xff2d,
+ 0xfe78, 0xfe3e, 0xfd9d, 0xfbef, 0xfb5b, 0xfd16,
+ 0xfca6, 0xfc14, 0xfdf8, 0xfdae, 0xfd4d, 0xfd4b,
+ 0xfb1d, 0xfab3, 0xfa48, 0xf8f7, 0xf94f, 0xf7bf,
+ 0xf667, 0xf739, 0xf749, 0xf88e, 0xf8b9, 0xf69f,
+ 0xf689, 0xf660, 0xf56a, 0xf5eb, 0xf741, 0xf8e8,
+ 0xf906, 0xf8a6, 0xfa76, 0xfc2c, 0xfd0f, 0xfde4,
+ 0xfdfe, 0xfe79, 0xfe30, 0xfbe8, 0xfb84, 0xfd25,
+ 0xfdfb, 0x00a0, 0x03e3, 0x036f, 0x01da, 0x00d2,
+ 0x002e, 0x001c, 0xfe93, 0xfe56, 0xffb5, 0xfecb,
+ 0xfe48, 0xfd93, 0xfb78, 0xfb60, 0xfba0, 0xfc57,
+ 0xfcb9, 0xfac2, 0xfc1e, 0xfea0, 0xfda2, 0xfd65,
+ 0xfd11, 0xfbc6, 0xfb41, 0xfa51, 0xfa40, 0xfa33,
+ 0xf997, 0xfa75, 0xfa73, 0xf9c0, 0xfabc, 0xfc25,
+ 0xfce6, 0xfc53, 0xfb95, 0xfc27, 0xfc7f, 0xfd2e,
+ 0xffd6, 0x01c7, 0x018a, 0x028b, 0x0467, 0x048d,
+ 0x05f6, 0x0808, 0x076b, 0x06a4, 0x06aa, 0x069c,
+ 0x0717, 0x089d, 0x0bb1, 0x0d42, 0x0ce8, 0x0e0e,
+ 0x0de5, 0x0b09, 0x0906, 0x0826, 0x06e6, 0x0531,
+ 0x0486, 0x0411, 0x0236, 0x00bf, 0xff59, 0xfe26,
+ 0xfecb, 0xff34, 0xfefc, 0xff2d, 0xffad, 0x0016,
+ 0xff8b, 0xfffe, 0x0089, 0xfefa, 0xfe5a, 0xfd45,
+ 0xfb26, 0xfc17, 0xfcd4, 0xfb2b, 0xfaa9, 0xfb4f,
+ 0xfb35, 0xfab1, 0xfac3, 0xf8a1, 0xf48d, 0xf42a,
+ 0xf4fe, 0xf3d1, 0xf41c, 0xf4a0, 0xf3ba, 0xf37f,
+ 0xf3a6, 0xf2d2, 0xf132, 0xf083, 0xefb1, 0xeccc,
+ 0xeaf9, 0xeb79, 0xebbb, 0xebac, 0xec57, 0xed8c,
+ 0xef24, 0xf0c7, 0xf0ca, 0xefb1, 0xef55, 0xee69,
+ 0xee28, 0xefac, 0xef68, 0xeddc, 0xed1f, 0xecc8,
+ 0xed01, 0xed68, 0xee4d, 0xeeb1, 0xeeae, 0xf085,
+ 0xf142, 0xf12d, 0xf2a1, 0xf237, 0xf1b1, 0xf1d6,
+ 0xefc0, 0xeecc, 0xeec3, 0xedd9, 0xee4a, 0xef4f,
+ 0xf0d2, 0xf25e, 0xf2cf, 0xf3b1, 0xf3a8, 0xf234,
+ 0xf139, 0xf05c, 0xf01a, 0xf074, 0xf10f, 0xf2ff,
+ 0xf4ee, 0xf58e, 0xf687, 0xf844, 0xf881, 0xf75c,
+ 0xf747, 0xf7f0, 0xf802, 0xf722, 0xf679, 0xf790,
+ 0xf85f, 0xf8fa, 0xfab9, 0xfab9, 0xf9d4, 0xf9f6,
+ 0xf9b3, 0xf9f9, 0xfaee, 0xfbbf, 0xfc08, 0xfb13,
+ 0xfa17, 0xf907, 0xf8c1, 0xfa77, 0xfb2b, 0xfb2e,
+ 0xfb85, 0xfae5, 0xfb37, 0xfc2b, 0xfcc1, 0xfe6f,
+ 0xffea, 0x0000, 0xff30, 0xfef7, 0xffff, 0x0075,
+ 0x015b, 0x0348, 0x04b3, 0x067a, 0x0795, 0x071e,
+ 0x0723, 0x075e, 0x068d, 0x058a, 0x0625, 0x07b6,
+ 0x08f4, 0x0ac7, 0x0ba1, 0x0bd3, 0x0e0f, 0x0f98,
+ 0x1014, 0x1159, 0x10de, 0x1002, 0x113c, 0x1207,
+ 0x11bb, 0x125f, 0x13ff, 0x1521, 0x15ca, 0x169b,
+ 0x16c7, 0x15e2, 0x1576, 0x170a, 0x17f8, 0x1676,
+ 0x15d5, 0x14f0, 0x1213, 0x1179, 0x12f4, 0x13aa,
+ 0x138d, 0x130f, 0x130d, 0x1258, 0x11f7, 0x1463,
+ 0x1683, 0x1714, 0x16d7, 0x150c, 0x13c2, 0x135a,
+ 0x12db, 0x12ed, 0x1300, 0x12d2, 0x12af, 0x132c,
+ 0x1314, 0x10df, 0x102e, 0x100a, 0x0cba, 0x0b28,
+ 0x0c1c, 0x0bca, 0x0c52, 0x0d31, 0x0ce4, 0x0dd1,
+ 0x0eb0, 0x0dbf, 0x0d00, 0x0cd7, 0x0ca0, 0x0c31,
+ 0x0ad8, 0x0a2b, 0x0a83, 0x09f0, 0x0b1f, 0x0dfb,
+ 0x0e0f, 0x0d82, 0x0d7d, 0x0c4a, 0x0bef, 0x0bec,
+ 0x0c67, 0x0e00, 0x0cae, 0x0968, 0x079e, 0x06e7,
+ 0x070c, 0x0666, 0x04bd, 0x0431, 0x0433, 0x0427,
+ 0x0444, 0x04e9, 0x0622, 0x0686, 0x05fb, 0x04b0,
+ 0x02d8, 0x0145, 0xffb9, 0xff73, 0xfffd, 0xfef1,
+ 0xfe93, 0xff44, 0xfe6c, 0xfdbd, 0xfd43, 0xfb77,
+ 0xfadd, 0xfb6c, 0xfadd, 0xfb5e, 0xfd45, 0xfdc5,
+ 0xfe1e, 0xfed1, 0xfe5a, 0xfe15, 0xfddc, 0xfd4a,
+ 0xfd54, 0xfd16, 0xfd6e, 0xfdcc, 0xfc9f, 0xfd46,
+ 0xfef8, 0xff02, 0x0013, 0x00eb, 0xff74, 0xfe86,
+ 0xff0e, 0x0031, 0x0142, 0x0170, 0x00d5, 0xff71,
+ 0xfd9d, 0xfc3b, 0xfbd2, 0xfbf5, 0xfb60, 0xfa7b,
+ 0xfa3f, 0xfa49, 0xfa8e, 0xfbab, 0xfdfb, 0x000e,
+ 0x0073, 0x00a9, 0x00f7, 0xffeb, 0xff43, 0x0032,
+ 0x001e, 0xff3a, 0x002d, 0x010d, 0x0001, 0xfef4,
+ 0xfe18, 0xfd53, 0xfcff, 0xfcc2, 0xfd9f, 0xfe89,
+ 0xff3c, 0x01c2, 0x032f, 0x02e4, 0x0427, 0x04d6,
+ 0x0450, 0x042e, 0x032f, 0x02b7, 0x03d7, 0x04ae,
+ 0x04da, 0x04fc, 0x062f, 0x07aa, 0x0772, 0x071f,
+ 0x0710, 0x0542, 0x0386, 0x0362, 0x02b2, 0x00ff,
+ 0xffbf, 0xff24, 0xfe9e, 0xfe17, 0xfe1e, 0xfe51,
+ 0xfd69, 0xfbd9, 0xfac0, 0xfa7a, 0xfae7, 0xfadd,
+ 0xfada, 0xfbf4, 0xfc69, 0xfbb9, 0xfb06, 0xfa4b,
+ 0xf964, 0xf7de, 0xf71f, 0xf807, 0xf7ef, 0xf78d,
+ 0xf811, 0xf6f9, 0xf551, 0xf488, 0xf3cd, 0xf46f,
+ 0xf598, 0xf5b4, 0xf667, 0xf790, 0xf7c3, 0xf76c,
+ 0xf6f2, 0xf67f, 0xf656, 0xf63d, 0xf5c6, 0xf545,
+ 0xf57b, 0xf61e, 0xf6e8, 0xf82b, 0xf956, 0xfa08,
+ 0xfa8c, 0xfb05, 0xfbcc, 0xfc64, 0xfc60, 0xfd05,
+ 0xfdcc, 0xfd02, 0xfbf4, 0xfbae, 0xfba2, 0xfc55,
+ 0xfd57, 0xfd4e, 0xfc77, 0xfbcf, 0xfbe9, 0xfc22,
+ 0xfc25, 0xfcda, 0xfdbc, 0xfe67, 0x0004, 0x019d,
+ 0x01bc, 0x01b0, 0x01f8, 0x0160, 0x00ef, 0x0207,
+ 0x02fd, 0x02fa, 0x0279, 0x00d7, 0xff91, 0xffd9,
+ 0xffed, 0x0014, 0x0088, 0x007b, 0x0176, 0x0293,
+ 0x02c7, 0x0406, 0x047b, 0x0376, 0x03aa, 0x039f,
+ 0x033e, 0x03e1, 0x02f6, 0x01c0, 0x02db, 0x046d,
+ 0x05d6, 0x06c9, 0x070d, 0x078a, 0x06e1, 0x05f0,
+ 0x0695, 0x06c0, 0x0650, 0x05c7, 0x048d, 0x043e,
+ 0x03bb, 0x0248, 0x02c8, 0x035b, 0x0227, 0x024a,
+ 0x0396, 0x040a, 0x0441, 0x0479, 0x0471, 0x04d3,
+ 0x060b, 0x06d4, 0x0686, 0x06bf, 0x078b, 0x0866,
+ 0x0a13, 0x0b40, 0x0ba3, 0x0c34, 0x0b2d, 0x09c3,
+ 0x0a1d, 0x0a18, 0x0a86, 0x0c06, 0x0bb7, 0x0b57,
+ 0x0bdd, 0x0b65, 0x0c0c, 0x0d69, 0x0ce4, 0x0c02,
+ 0x0bb4, 0x0c42, 0x0d80, 0x0d31, 0x0bb4, 0x0a69,
+ 0x09a8, 0x0a64, 0x0b89, 0x0c93, 0x0e75, 0x0f1f,
+ 0x0dd3, 0x0ccb, 0x0c43, 0x0bf1, 0x0be2, 0x0b07,
+ 0x098e, 0x0857, 0x0742, 0x069e, 0x068b, 0x0681,
+ 0x06d2, 0x0772, 0x0768, 0x06aa, 0x05d1, 0x0598,
+ 0x0650, 0x0768, 0x085c, 0x08aa, 0x081a, 0x0727,
+ 0x0662, 0x06de, 0x0829, 0x0855, 0x082f, 0x0834,
+ 0x0689, 0x04b2, 0x0533, 0x064f, 0x06ab, 0x07bf,
+ 0x093f, 0x0967, 0x08ba, 0x08b7, 0x0957, 0x0945,
+ 0x07cd, 0x0614, 0x04ed, 0x0428, 0x0424, 0x046e,
+ 0x040c, 0x033e, 0x02a4, 0x02d8, 0x03cb, 0x04e3,
+ 0x05cd, 0x060a, 0x05dd, 0x05c8, 0x05be, 0x05d6,
+ 0x04e9, 0x02f3, 0x0208, 0x0185, 0x00c1, 0x00ff,
+ 0x0153, 0x0100, 0x00ee, 0x0177, 0x0264, 0x023d,
+ 0x00d4, 0x00b9, 0x0229, 0x0375, 0x0466, 0x0472,
+ 0x03aa, 0x036b, 0x038b, 0x041b, 0x050c, 0x049b,
+ 0x03f5, 0x03f0, 0x0237, 0x00d2, 0x01b3, 0x022c,
+ 0x0268, 0x0359, 0x0430, 0x0563, 0x0653, 0x06cb,
+ 0x075a, 0x06fa, 0x0648, 0x0627, 0x061e, 0x072f,
+ 0x08f8, 0x097b, 0x0910, 0x08a3, 0x0880, 0x091f,
+ 0x09f7, 0x0a8b, 0x0b29, 0x0b20, 0x0a7b, 0x0a86,
+ 0x0a6b, 0x0959, 0x0893, 0x0813, 0x06e9, 0x0545,
+ 0x03d9, 0x030d, 0x02d0, 0x02fe, 0x0331, 0x0363,
+ 0x03aa, 0x030c, 0x026c, 0x032b, 0x03fe, 0x04e3,
+ 0x063a, 0x0666, 0x05c7, 0x0588, 0x0555, 0x053d,
+ 0x059b, 0x060a, 0x04d5, 0x01e9, 0x0032, 0x002d,
+ 0x0073, 0x018f, 0x0306, 0x0369, 0x031a, 0x02b7,
+ 0x0290, 0x028f, 0x01cb, 0x00af, 0x001b, 0xffc1,
+ 0xfff7, 0x008c, 0x006d, 0x003c, 0x0016, 0xff56,
+ 0xff46, 0x006d, 0x0192, 0x0219, 0x0274, 0x0378,
+ 0x045d, 0x0436, 0x03f4, 0x035e, 0x025d, 0x023a,
+ 0x01dc, 0x0082, 0xffb2, 0xff02, 0xfe33, 0xfe87,
+ 0xff35, 0xff45, 0xff4d, 0xff05, 0xfe7c, 0xfeda,
+ 0xffb9, 0x0010, 0x0087, 0x0175, 0x01eb, 0x021b,
+ 0x02f5, 0x0404, 0x0487, 0x0458, 0x0349, 0x01d5,
+ 0x00d6, 0x0084, 0x0153, 0x02f1, 0x03af, 0x03de,
+ 0x04c4, 0x054d, 0x0542, 0x05c1, 0x0583, 0x03d7,
+ 0x02ce, 0x0309, 0x0384, 0x03cf, 0x039f, 0x0343,
+ 0x0336, 0x02f9, 0x02c3, 0x0339, 0x03a6, 0x0432,
+ 0x05b4, 0x06ee, 0x071b, 0x0741, 0x073a, 0x06c2,
+ 0x065b, 0x055a, 0x03e1, 0x0331, 0x02a2, 0x0194,
+ 0x0161, 0x0232, 0x02c7, 0x02c2, 0x0213, 0x00b9,
+ 0xff9d, 0xff6a, 0xffbf, 0x004b, 0x0113, 0x01ab,
+ 0x01e6, 0x0254, 0x02e0, 0x0328, 0x034d, 0x0271,
+ 0x002a, 0xfe64, 0xfde1, 0xfdc1, 0xfe67, 0xffc9,
+ 0x00da, 0x01c5, 0x0287, 0x02ae, 0x02da, 0x02c9,
+ 0x019e, 0x0068, 0xffde, 0xff59, 0xff92, 0x010a,
+ 0x0234, 0x0260, 0x0258, 0x024e, 0x0230, 0x0211,
+ 0x021d, 0x02d8, 0x03ed, 0x0480, 0x04a4, 0x0441,
+ 0x0314, 0x01d9, 0x00a3, 0xff2b, 0xfe18, 0xfd2d,
+ 0xfc0b, 0xfbb5, 0xfc29, 0xfca5, 0xfcfa, 0xfc4f,
+ 0xfabe, 0xf979, 0xf863, 0xf836, 0xfa29, 0xfc2c,
+ 0xfc66, 0xfc48, 0xfcc8, 0xfda5, 0xfed8, 0xffb0,
+ 0xff90, 0xfeca, 0xfdaa, 0xfc6b, 0xfb9b, 0xfbdd,
+ 0xfd44, 0xff24, 0x00ab, 0x014d, 0x0180, 0x0246,
+ 0x0308, 0x0320, 0x033f, 0x02b7, 0x0113, 0x002f,
+ 0x0032, 0x0019, 0x00d8, 0x0247, 0x0311, 0x0354,
+ 0x02dc, 0x01af, 0x0163, 0x02a0, 0x04fd, 0x0777,
+ 0x085b, 0x07c9, 0x070b, 0x0612, 0x0510, 0x0432,
+ 0x0287, 0x007f, 0xff08, 0xfd91, 0xfc98, 0xfd6d,
+ 0xfeea, 0xff1b, 0xfe14, 0xfc9c, 0xfadf, 0xf991,
+ 0xf977, 0xf9de, 0xfa29, 0xfb18, 0xfc89, 0xfd66,
+ 0xfdcb, 0xfe31, 0xfe81, 0xfeb2, 0xfe73, 0xfdc5,
+ 0xfdb8, 0xfe8d, 0xffcf, 0x01d5, 0x03e2, 0x0485,
+ 0x049b, 0x04fc, 0x04a9, 0x0420, 0x0473, 0x04a8,
+ 0x04a9, 0x058b, 0x0678, 0x066c, 0x0618, 0x05f6,
+ 0x060c, 0x0652, 0x05d1, 0x0441, 0x036f, 0x0443,
+ 0x0584, 0x06b2, 0x07d6, 0x081f, 0x07cc, 0x077c,
+ 0x0649, 0x0464, 0x02d0, 0x012a, 0xffae, 0xfeed,
+ 0xfe8d, 0xff1d, 0x003c, 0xfff5, 0xfea3, 0xfd6a,
+ 0xfc76, 0xfca6, 0xfd59, 0xfd2a, 0xfd51, 0xfe7f,
+ 0xff87, 0x001f, 0x0040, 0x0000, 0xffb4, 0xfece,
+ 0xfd85, 0xfcee, 0xfd33, 0xfe29, 0xff71, 0x00bf,
+ 0x0233, 0x02ee, 0x0279, 0x0201, 0x01d2, 0x0153,
+ 0x005c, 0xfeee, 0xfdcc, 0xfd8c, 0xfd84, 0xfda5,
+ 0xfe4a, 0xff2a, 0xfff5, 0x0010, 0xfef9, 0xfd66,
+ 0xfc7d, 0xfc92, 0xfd0c, 0xfd66, 0xfd95, 0xfd4f,
+ 0xfcec, 0xfd0e, 0xfcd5, 0xfbb0, 0xfa36, 0xf883,
+ 0xf73f, 0xf71a, 0xf756, 0xf7c4, 0xf86f, 0xf885,
+ 0xf7f9, 0xf6b5, 0xf4b9, 0xf3e1, 0xf4ee, 0xf639,
+ 0xf73a, 0xf889, 0xf9b5, 0xfa1f, 0xfa1a, 0xf9ed,
+ 0xf958, 0xf8a2, 0xf83c, 0xf7fe, 0xf837, 0xf902,
+ 0xf9d6, 0xfb1f, 0xfcc4, 0xfd7f, 0xfd99, 0xfdf6,
+ 0xfe50, 0xfe54, 0xfd93, 0xfc54, 0xfbf3, 0xfcae,
+ 0xfe12, 0xffdc, 0x0179, 0x0330, 0x0523, 0x064b,
+ 0x06c0, 0x076b, 0x08af, 0x0af4, 0x0dab, 0x0fe0,
+ 0x117b, 0x1240, 0x127e, 0x1309, 0x132e, 0x1214,
+ 0x1027, 0x0e03, 0x0c74, 0x0bd6, 0x0b73, 0x0afb,
+ 0x0aa1, 0x09f5, 0x0875, 0x0699, 0x04dc, 0x031a,
+ 0x020c, 0x0265, 0x02e4, 0x02d8, 0x02d2, 0x026c,
+ 0x01b4, 0x0166, 0x00e9, 0xfff5, 0xff16, 0xfe60,
+ 0xfe1c, 0xfe71, 0xfefa, 0xff5f, 0xff20, 0xfe3b,
+ 0xfd16, 0xfbfc, 0xfb69, 0xfa89, 0xf88f, 0xf709,
+ 0xf64e, 0xf598, 0xf5c1, 0xf628, 0xf5f1, 0xf65d,
+ 0xf66e, 0xf4db, 0xf353, 0xf254, 0xf1cb, 0xf286,
+ 0xf396, 0xf41d, 0xf3dd, 0xf28f, 0xf1bb, 0xf1ab,
+ 0xf098, 0xeeea, 0xed0a, 0xea7e, 0xe8ec, 0xe8a1,
+ 0xe7c4, 0xe685, 0xe5ce, 0xe59b, 0xe5a2, 0xe4ca,
+ 0xe33d, 0xe2e1, 0xe37e, 0xe3bb, 0xe480, 0xe643,
+ 0xe748, 0xe785, 0xe896, 0xe9f0, 0xea59, 0xea35,
+ 0xe9fb, 0xea17, 0xeae8, 0xec1a, 0xedf4, 0xf04c,
+ 0xf1aa, 0xf212, 0xf240, 0xf1fc, 0xf1c7, 0xf1d1,
+ 0xf12c, 0xefe2, 0xeec6, 0xeeab, 0xef87, 0xf037,
+ 0xf0fe, 0xf2b3, 0xf434, 0xf4a2, 0xf423, 0xf306,
+ 0xf2b1, 0xf3da, 0xf56c, 0xf6a7, 0xf755, 0xf7c6,
+ 0xf89f, 0xf95c, 0xf948, 0xf858, 0xf6cc, 0xf5a2,
+ 0xf57a, 0xf606, 0xf701, 0xf778, 0xf72d, 0xf765,
+ 0xf7be, 0xf710, 0xf625, 0xf5d6, 0xf63f, 0xf78e,
+ 0xf94f, 0xfad7, 0xfbdf, 0xfc85, 0xfd3f, 0xfde8,
+ 0xfdfd, 0xfdca, 0xfe1a, 0xff22, 0x002d, 0x010c,
+ 0x02a3, 0x0490, 0x0595, 0x05ed, 0x0622, 0x0636,
+ 0x0622, 0x05b3, 0x0568, 0x0576, 0x0533, 0x0560,
+ 0x0660, 0x06ea, 0x0783, 0x0905, 0x0a42, 0x0af0,
+ 0x0b7d, 0x0ba3, 0x0bf2, 0x0cde, 0x0dce, 0x0e41,
+ 0x0e2f, 0x0e92, 0x1043, 0x11f9, 0x1244, 0x1179,
+ 0x103c, 0x0ee2, 0x0e22, 0x0e8c, 0x0f3e, 0x0efa,
+ 0x0e3d, 0x0dd0, 0x0d60, 0x0d17, 0x0d2a, 0x0d06,
+ 0x0d0d, 0x0df5, 0x0ecd, 0x0e69, 0x0d84, 0x0db4,
+ 0x0eec, 0x0fdf, 0x1037, 0x104b, 0x1036, 0x1036,
+ 0x108b, 0x1173, 0x12dc, 0x1435, 0x155e, 0x162e,
+ 0x15f7, 0x14ff, 0x13e5, 0x12ba, 0x11d6, 0x113c,
+ 0x10b9, 0x109a, 0x108b, 0x105f, 0x10c1, 0x1184,
+ 0x121f, 0x125a, 0x11e3, 0x115a, 0x1177, 0x11d3,
+ 0x123f, 0x125d, 0x11ca, 0x117d, 0x11e2, 0x1215,
+ 0x11dd, 0x1109, 0x0f24, 0x0cfb, 0x0bd2, 0x0b55,
+ 0x0a38, 0x088e, 0x074b, 0x0670, 0x05d9, 0x0541,
+ 0x03db, 0x0256, 0x01c6, 0x0189, 0x015a, 0x0149,
+ 0x00ee, 0x0110, 0x01ee, 0x0238, 0x01b3, 0x00b7,
+ 0xffa6, 0xff5c, 0xff79, 0xff73, 0x0001, 0x00d7,
+ 0x013f, 0x019d, 0x01ad, 0x00bc, 0xfeea, 0xfcde,
+ 0xfb77, 0xfab3, 0xfa1a, 0xfa1d, 0xfa94, 0xfa92,
+ 0xfa53, 0xfa47, 0xfa28, 0xf9fd, 0xf9cd, 0xf99a,
+ 0xf9a6, 0xf9c5, 0xf9ab, 0xf96e, 0xf947, 0xf9e0,
+ 0xfb51, 0xfc2d, 0xfbbc, 0xfaa5, 0xf8e6, 0xf71f,
+ 0xf6f5, 0xf7e9, 0xf881, 0xf900, 0xf95b, 0xf919,
+ 0xf904, 0xf902, 0xf827, 0xf753, 0xf79d, 0xf87c,
+ 0xf8ff, 0xf8e8, 0xf90b, 0xfa7e, 0xfce2, 0xfead,
+ 0xff2b, 0xff1c, 0xff1d, 0xff2a, 0xffea, 0x018d,
+ 0x02fc, 0x042e, 0x057c, 0x061d, 0x0621, 0x05c8,
+ 0x0451, 0x0274, 0x015c, 0x007e, 0xffad, 0xff6b,
+ 0xffbf, 0x00b1, 0x01ba, 0x023c, 0x02e9, 0x03dc,
+ 0x0421, 0x040d, 0x0470, 0x04f1, 0x050f, 0x04e3,
+ 0x04d1, 0x0559, 0x0626, 0x061b, 0x0532, 0x0425,
+ 0x02b0, 0x010b, 0x0068, 0x004d, 0xffa2, 0xfeef,
+ 0xfe7f, 0xfdda, 0xfd15, 0xfbf5, 0xfa7d, 0xf9c5,
+ 0xfa07, 0xfa86, 0xfad9, 0xfa5d, 0xf911, 0xf865,
+ 0xf8ab, 0xf8ac, 0xf839, 0xf7bf, 0xf706, 0xf69a,
+ 0xf741, 0xf846, 0xf8e7, 0xf948, 0xf99e, 0xfa11,
+ 0xf9df, 0xf808, 0xf5c3, 0xf451, 0xf2ef, 0xf19e,
+ 0xf11d, 0xf108, 0xf114, 0xf12a, 0xf120, 0xf185,
+ 0xf241, 0xf280, 0xf2af, 0xf355, 0xf3ca, 0xf3e7,
+ 0xf464, 0xf559, 0xf668, 0xf7bb, 0xf935, 0xf9fc,
+ 0xf9ee, 0xf988, 0xf901, 0xf8e4, 0xf93c, 0xf927,
+ 0xf8bd, 0xf8c5, 0xf971, 0xfac4, 0xfc0b, 0xfc43,
+ 0xfba6, 0xfae7, 0xfa8e, 0xfaf1, 0xfb60, 0xfb51,
+ 0xfb99, 0xfca4, 0xfdb1, 0xfe63, 0xfed3, 0xfed7,
+ 0xfed0, 0xff88, 0x0095, 0x0150, 0x0202, 0x028c,
+ 0x0300, 0x03f1, 0x044f, 0x0352, 0x0243, 0x0165,
+ 0x0040, 0xff7b, 0xff1a, 0xfed3, 0xff04, 0xff69,
+ 0xffab, 0xfffd, 0x007e, 0x0169, 0x02a4, 0x03b5,
+ 0x0442, 0x040a, 0x0393, 0x03bd, 0x0484, 0x05cd,
+ 0x0743, 0x07ff, 0x07e8, 0x0776, 0x070b, 0x0719,
+ 0x073e, 0x06ea, 0x0646, 0x058a, 0x053d, 0x059b,
+ 0x05f1, 0x05fe, 0x05de, 0x05b4, 0x05ed, 0x0614,
+ 0x05ae, 0x055f, 0x0547, 0x0590, 0x06be, 0x07be,
+ 0x07ac, 0x0784, 0x07fc, 0x08c2, 0x097a, 0x0a33,
+ 0x0af7, 0x0b4b, 0x0b51, 0x0b73, 0x0ae9, 0x098a,
+ 0x088b, 0x0820, 0x078b, 0x06aa, 0x05cf, 0x050c,
+ 0x0477, 0x04a6, 0x058c, 0x065f, 0x0744, 0x084e,
+ 0x08ca, 0x08d1, 0x08b0, 0x0855, 0x0824, 0x0867,
+ 0x0934, 0x0a3d, 0x0ac0, 0x0a9d, 0x09a6, 0x0817,
+ 0x0790, 0x07b3, 0x0713, 0x069b, 0x066a, 0x05c9,
+ 0x05c6, 0x0679, 0x06ec, 0x06da, 0x05f9, 0x0539,
+ 0x0531, 0x04b3, 0x0447, 0x049b, 0x04c8, 0x0571,
+ 0x06ad, 0x072e, 0x0787, 0x0836, 0x08c9, 0x0980,
+ 0x09e2, 0x09de, 0x0a40, 0x0abb, 0x0b74, 0x0c8a,
+ 0x0c77, 0x0b3a, 0x0a21, 0x08ea, 0x075d, 0x0620,
+ 0x0558, 0x04d1, 0x0491, 0x04d8, 0x055d, 0x05a0,
+ 0x0615, 0x06e5, 0x0742, 0x0711, 0x06cc, 0x066d,
+ 0x060e, 0x0694, 0x0852, 0x0a06, 0x0acd, 0x0add,
+ 0x0a12, 0x08e3, 0x083f, 0x07b2, 0x070c, 0x06c0,
+ 0x0654, 0x05be, 0x0574, 0x0548, 0x0539, 0x0522,
+ 0x04fb, 0x052a, 0x0510, 0x045f, 0x03b5, 0x02b7,
+ 0x01cf, 0x0218, 0x0286, 0x0259, 0x028b, 0x035e,
+ 0x047a, 0x0588, 0x0630, 0x0693, 0x0696, 0x066e,
+ 0x06ef, 0x0776, 0x06c6, 0x055f, 0x045d, 0x03b8,
+ 0x02ff, 0x029a, 0x02a4, 0x0222, 0x0140, 0x0134,
+ 0x01d5, 0x028d, 0x0339, 0x03b4, 0x046e, 0x0554,
+ 0x0564, 0x04a0, 0x03f9, 0x045f, 0x0613, 0x07da,
+ 0x08c5, 0x093d, 0x0975, 0x0953, 0x08df, 0x0817,
+ 0x0711, 0x05d4, 0x04cf, 0x0497, 0x04ae, 0x04c3,
+ 0x04ec, 0x04b1, 0x0494, 0x04ea, 0x0482, 0x03bc,
+ 0x039d, 0x034b, 0x02e8, 0x034d, 0x03aa, 0x03b0,
+ 0x040a, 0x04c8, 0x05f4, 0x0747, 0x081e, 0x0860,
+ 0x081a, 0x07a9, 0x07aa, 0x07af, 0x074e, 0x06f4,
+ 0x067f, 0x05ca, 0x0580, 0x059b, 0x0544, 0x044f,
+ 0x036d, 0x034a, 0x03bd, 0x0424, 0x0488, 0x053a,
+ 0x05d8, 0x05f7, 0x05d3, 0x05b8, 0x05fa, 0x06f8,
+ 0x085d, 0x093b, 0x0922, 0x086d, 0x07bc, 0x076e,
+ 0x0765, 0x0718, 0x0637, 0x056d, 0x0540, 0x0511,
+ 0x04a0, 0x042a, 0x034d, 0x0256, 0x020d, 0x01e9,
+ 0x0184, 0x0130, 0x00a0, 0x0016, 0x0013, 0xffe5,
+ 0xffa0, 0xfff4, 0x0065, 0x00e9, 0x01c3, 0x024e,
+ 0x026e, 0x0240, 0x01c0, 0x01de, 0x028a, 0x02a2,
+ 0x0251, 0x01a1, 0x0067, 0xffed, 0x0087, 0x00ed,
+ 0x00c0, 0x004e, 0xffb7, 0xff26, 0xfedd, 0xff37,
+ 0xfffd, 0x00cf, 0x01c3, 0x021a, 0x0145, 0x0079,
+ 0x00c4, 0x0231, 0x041d, 0x052e, 0x0537, 0x0502,
+ 0x0496, 0x0470, 0x0504, 0x0576, 0x056d, 0x0514,
+ 0x0448, 0x038a, 0x031a, 0x0265, 0x01ad, 0x01ca,
+ 0x0284, 0x02b4, 0x0235, 0x01f6, 0x01d6, 0x0173,
+ 0x0177, 0x01de, 0x0256, 0x0329, 0x041c, 0x0529,
+ 0x0676, 0x0763, 0x0804, 0x0884, 0x0883, 0x08a0,
+ 0x090e, 0x0929, 0x093f, 0x092a, 0x0886, 0x082a,
+ 0x0866, 0x08da, 0x094e, 0x0944, 0x08d2, 0x0833,
+ 0x0767, 0x0744, 0x07e3, 0x0871, 0x08c7, 0x0866,
+ 0x0752, 0x06b6, 0x0666, 0x0617, 0x0665, 0x06a9,
+ 0x0650, 0x05d4, 0x052f, 0x0491, 0x042b, 0x0368,
+ 0x0296, 0x022a, 0x018f, 0x00c7, 0x003a, 0xff57,
+ 0xfdec, 0xfcf0, 0xfc96, 0xfc17, 0xfba6, 0xfba7,
+ 0xfb3b, 0xfa3a, 0xf98d, 0xf937, 0xf8f7, 0xf90f,
+ 0xf9bd, 0xfb5a, 0xfd8e, 0xff25, 0xffac, 0xff8e,
+ 0xff49, 0xff39, 0xff4b, 0xff42, 0xff07, 0xfea7,
+ 0xfe59, 0xfe3b, 0xfe3d, 0xfe40, 0xfe15, 0xfdf3,
+ 0xfde9, 0xfd82, 0xfd09, 0xfcea, 0xfcc4, 0xfcd6,
+ 0xfd51, 0xfd2f, 0xfc7e, 0xfc73, 0xfd0f, 0xfdfc,
+ 0xff64, 0x008b, 0x008d, 0xfff8, 0xffad, 0xffaa,
+ 0xff97, 0xff43, 0xfed3, 0xfeb4, 0xfec2, 0xfe97,
+ 0xfe32, 0xfd81, 0xfcd3, 0xfce2, 0xfd89, 0xfe4d,
+ 0xfef2, 0xfef5, 0xfe92, 0xfe52, 0xfe08, 0xfe2c,
+ 0xff3e, 0x0094, 0x0220, 0x0441, 0x0666, 0x0809,
+ 0x0924, 0x09c7, 0x0a11, 0x0a1a, 0x0a46, 0x0aa5,
+ 0x0a65, 0x0960, 0x085f, 0x07df, 0x07cd, 0x07bb,
+ 0x07ab, 0x07e6, 0x07c4, 0x071c, 0x06fe, 0x073e,
+ 0x06d8, 0x0647, 0x0632, 0x0623, 0x061b, 0x0690,
+ 0x06ef, 0x06eb, 0x0750, 0x07e7, 0x07e4, 0x07c1,
+ 0x07c8, 0x079d, 0x075a, 0x06d4, 0x05f5, 0x0555,
+ 0x0505, 0x04c9, 0x045c, 0x0342, 0x01f0, 0x010f,
+ 0x006c, 0x001a, 0x0001, 0xff95, 0xfefd, 0xfe33,
+ 0xfcea, 0xfbce, 0xfb63, 0xfb8c, 0xfc59, 0xfd8c,
+ 0xfe87, 0xfeff, 0xff08, 0xfed8, 0xfe86, 0xfe46,
+ 0xfe75, 0xfec7, 0xfe76, 0xfd6b, 0xfc4e, 0xfb94,
+ 0xfb12, 0xfabc, 0xfacb, 0xfafc, 0xfaf8, 0xfae1,
+ 0xfac1, 0xfa6d, 0xfa1b, 0xfa36, 0xfa99, 0xfaf4,
+ 0xfb95, 0xfc8a, 0xfd5e, 0xfe3b, 0xff1f, 0xff82,
+ 0xffab, 0xffe7, 0x0005, 0x0021, 0xffea, 0xff1b,
+ 0xfe7d, 0xfe88, 0xfef2, 0xfefa, 0xfddb, 0xfc32,
+ 0xfafd, 0xfa1a, 0xf9a8, 0xf9d7, 0xfa13, 0xfa2a,
+ 0xfa36, 0xf9e6, 0xf90b, 0xf836, 0xf863, 0xf9a9,
+ 0xfb70, 0xfd7b, 0xff16, 0xffc4, 0x003a, 0x0073,
+ 0x0018, 0xfffc, 0x0074, 0x00e2, 0x00aa, 0xffed,
+ 0xffa5, 0xffe9, 0x002f, 0x00f3, 0x0200, 0x028c,
+ 0x0317, 0x03e8, 0x04b0, 0x0566, 0x05a9, 0x0578,
+ 0x056d, 0x05ce, 0x06bb, 0x07ce, 0x0893, 0x095c,
+ 0x09e6, 0x09b3, 0x08ec, 0x07c6, 0x06e6, 0x068a,
+ 0x05ed, 0x053f, 0x04e4, 0x0475, 0x0407, 0x0356,
+ 0x0215, 0x0113, 0x0056, 0xff7e, 0xff08, 0xfef2,
+ 0xff02, 0xfee3, 0xfe0a, 0xfd28, 0xfcbf, 0xfc50,
+ 0xfc45, 0xfcde, 0xfd87, 0xfe5e, 0xff59, 0x001e,
+ 0x0073, 0xffd2, 0xfec7, 0xfe5f, 0xfe07, 0xfd09,
+ 0xfbae, 0xfa5a, 0xf985, 0xf940, 0xf943, 0xf97c,
+ 0xf98a, 0xf935, 0xf8d4, 0xf86b, 0xf7db, 0xf73b,
+ 0xf6a0, 0xf643, 0xf658, 0xf6e9, 0xf7d2, 0xf8b9,
+ 0xf979, 0xfa10, 0xfa52, 0xfa3b, 0xf9fe, 0xf9c8,
+ 0xf96e, 0xf89d, 0xf7cf, 0xf780, 0xf743, 0xf71b,
+ 0xf706, 0xf61b, 0xf44d, 0xf261, 0xf078, 0xeece,
+ 0xede8, 0xedb4, 0xed85, 0xece2, 0xec2e, 0xeba6,
+ 0xeaf8, 0xeac2, 0xebc7, 0xed6f, 0xef10, 0xf099,
+ 0xf1e8, 0xf2fc, 0xf3dc, 0xf42e, 0xf3bc, 0xf305,
+ 0xf288, 0xf1e0, 0xf0e4, 0xf060, 0xf0b3, 0xf174,
+ 0xf23e, 0xf2d1, 0xf32a, 0xf30d, 0xf264, 0xf1fa,
+ 0xf1eb, 0xf194, 0xf119, 0xf091, 0xf02f, 0xf0bd,
+ 0xf1f0, 0xf336, 0xf48c, 0xf50d, 0xf46a, 0xf38f,
+ 0xf2b8, 0xf227, 0xf22a, 0xf221, 0xf21e, 0xf271,
+ 0xf2a2, 0xf2cf, 0xf2e1, 0xf223, 0xf116, 0xf069,
+ 0xf015, 0xf054, 0xf0ec, 0xf139, 0xf13e, 0xf102,
+ 0xf092, 0xf03b, 0xeffd, 0xf03f, 0xf1a2, 0xf39e,
+ 0xf55e, 0xf6b2, 0xf7c7, 0xf918, 0xfa9a, 0xfb8f,
+ 0xfc0e, 0xfc96, 0xfcc4, 0xfc7b, 0xfc5a, 0xfcac,
+ 0xfd8e, 0xfefb, 0x0070, 0x018a, 0x0219, 0x0212,
+ 0x0219, 0x029f, 0x0322, 0x0339, 0x030b, 0x02f8,
+ 0x0380, 0x04ab, 0x0614, 0x07ab, 0x0933, 0x09fb,
+ 0x09cf, 0x0923, 0x08ba, 0x0955, 0x0ac3, 0x0c00,
+ 0x0c95, 0x0cbc, 0x0cc7, 0x0ce0, 0x0cbe, 0x0c27,
+ 0x0b76, 0x0ae6, 0x0a6a, 0x0a60, 0x0ae8, 0x0b59,
+ 0x0b6d, 0x0b7d, 0x0b8e, 0x0b67, 0x0b30, 0x0b5d,
+ 0x0c49, 0x0dd7, 0x0f76, 0x10bc, 0x11aa, 0x125f,
+ 0x12cb, 0x12e5, 0x1318, 0x13a2, 0x13df, 0x1370,
+ 0x12db, 0x126a, 0x1267, 0x134e, 0x1479, 0x14d4,
+ 0x1480, 0x13d6, 0x12f3, 0x125d, 0x1228, 0x11b4,
+ 0x10dd, 0x103d, 0x104f, 0x10b5, 0x10f4, 0x116d,
+ 0x1242, 0x12c6, 0x12cb, 0x1272, 0x11dc, 0x1178,
+ 0x114e, 0x1124, 0x1117, 0x10f8, 0x10b4, 0x106a,
+ 0x0f8f, 0x0e21, 0x0cdc, 0x0b87, 0x0a0e, 0x096c,
+ 0x0995, 0x0986, 0x0920, 0x08b4, 0x0801, 0x0706,
+ 0x062f, 0x0589, 0x0518, 0x0559, 0x064c, 0x075e,
+ 0x081f, 0x083a, 0x07b1, 0x06f4, 0x0654, 0x05e5,
+ 0x0567, 0x0499, 0x03bd, 0x0313, 0x02ce, 0x0315,
+ 0x033c, 0x02e6, 0x0282, 0x01f0, 0x0144, 0x0101,
+ 0x0088, 0xff27, 0xfd5b, 0xfc03, 0xfbbf, 0xfc64,
+ 0xfd34, 0xfdc4, 0xfe03, 0xfe2b, 0xfe21, 0xfd54,
+ 0xfc5e, 0xfbf9, 0xfbb8, 0xfbce, 0xfc34, 0xfbeb,
+ 0xfb64, 0xfb59, 0xfb10, 0xfa65, 0xf9c4, 0xf93d,
+ 0xf906, 0xf93a, 0xf9c8, 0xfa5b, 0xfa61, 0xfa4d,
+ 0xfaaf, 0xfb02, 0xfaf5, 0xfaa6, 0xfa67, 0xfae9,
+ 0xfc4e, 0xfe2f, 0xffc2, 0x0006, 0xff8f, 0xff99,
+ 0xffc6, 0xff96, 0xff21, 0xfe51, 0xfda4, 0xfda4,
+ 0xfe3f, 0xff79, 0x00e2, 0x019b, 0x0193, 0x0152,
+ 0x010c, 0x00ad, 0x004e, 0xfff5, 0xff75, 0xff8b,
+ 0x00e2, 0x0265, 0x02fb, 0x02e5, 0x02d7, 0x037f,
+ 0x0491, 0x052c, 0x0559, 0x0548, 0x052c, 0x0555,
+ 0x0527, 0x04a8, 0x04c6, 0x0504, 0x04d4, 0x0466,
+ 0x0375, 0x027a, 0x01ff, 0x014d, 0x004b, 0xff59,
+ 0xfe75, 0xfde2, 0xfd99, 0xfda3, 0xfdd8, 0xfd17,
+ 0xfbc0, 0xfb55, 0xfb9b, 0xfc28, 0xfcb8, 0xfc5e,
+ 0xfba5, 0xfb70, 0xfb34, 0xfab9, 0xf9e0, 0xf87a,
+ 0xf704, 0xf5ba, 0xf559, 0xf67d, 0xf787, 0xf7a4,
+ 0xf7ce, 0xf7b9, 0xf712, 0xf631, 0xf498, 0xf2b9,
+ 0xf1e3, 0xf24c, 0xf3e8, 0xf607, 0xf713, 0xf6d8,
+ 0xf642, 0xf5f4, 0xf648, 0xf6d9, 0xf715, 0xf738,
+ 0xf795, 0xf82b, 0xf8ea, 0xf9b0, 0xfa6a, 0xfad8,
+ 0xfa79, 0xf94a, 0xf7fd, 0xf748, 0xf72e, 0xf73b,
+ 0xf742, 0xf73e, 0xf6f5, 0xf655, 0xf5c7, 0xf5c7,
+ 0xf608, 0xf601, 0xf622, 0xf6fc, 0xf848, 0xf991,
+ 0xfa3a, 0xf9fd, 0xf9c8, 0xfa1a, 0xfa7a, 0xfaef,
+ 0xfb7b, 0xfb99, 0xfb71, 0xfbca, 0xfcf6, 0xfe6d,
+ 0xff70, 0x000f, 0x0092, 0x00d7, 0x00e6, 0x0085,
+ 0xff9c, 0xff01, 0xfefe, 0xff51, 0x00a2, 0x02ec,
+ 0x04bb, 0x057d, 0x05b4, 0x05cd, 0x0618, 0x0676,
+ 0x064a, 0x05b5, 0x0593, 0x05f4, 0x0654, 0x06c4,
+ 0x0729, 0x06fd, 0x066c, 0x05cf, 0x057b, 0x0626,
+ 0x0754, 0x07c7, 0x07a5, 0x0722, 0x060b, 0x054b,
+ 0x056a, 0x05a8, 0x058a, 0x04f8, 0x0436, 0x0418,
+ 0x04f2, 0x062b, 0x06e6, 0x0702, 0x0750, 0x078b,
+ 0x06cb, 0x05de, 0x0574, 0x04ec, 0x049f, 0x052d,
+ 0x05fa, 0x0698, 0x0712, 0x0745, 0x0745, 0x0716,
+ 0x067f, 0x0593, 0x04a0, 0x03e1, 0x035f, 0x032c,
+ 0x0399, 0x0486, 0x0554, 0x05c8, 0x0614, 0x067e,
+ 0x071a, 0x076c, 0x0709, 0x0651, 0x05d5, 0x05c3,
+ 0x0624, 0x06d7, 0x076e, 0x077d, 0x0705, 0x0660,
+ 0x062b, 0x06db, 0x07ec, 0x0858, 0x07d5, 0x0688,
+ 0x04e1, 0x03ec, 0x041c, 0x048f, 0x0486, 0x0422,
+ 0x03d1, 0x041e, 0x0551, 0x06df, 0x0823, 0x0925,
+ 0x09d4, 0x0982, 0x0851, 0x077f, 0x0790, 0x07fb,
+ 0x0884, 0x093f, 0x09d4, 0x0a16, 0x0a62, 0x0afb,
+ 0x0bad, 0x0c41, 0x0c73, 0x0be8, 0x0aeb, 0x0a45,
+ 0x0a2e, 0x0a8d, 0x0b78, 0x0c92, 0x0d48, 0x0dbb,
+ 0x0e34, 0x0eae, 0x0f38, 0x0f92, 0x0f2c, 0x0e19,
+ 0x0cf9, 0x0c51, 0x0c5d, 0x0cec, 0x0d8e, 0x0ddf,
+ 0x0d64, 0x0c34, 0x0b19, 0x0a89, 0x0a68, 0x0a3a,
+ 0x0955, 0x07b3, 0x05ee, 0x0499, 0x0412, 0x040e,
+ 0x041b, 0x0451, 0x045a, 0x03c8, 0x0373, 0x03e1,
+ 0x0488, 0x050f, 0x04f1, 0x03ae, 0x020e, 0x010b,
+ 0x00bb, 0x00e8, 0x0171, 0x022f, 0x02c4, 0x02e4,
+ 0x02ec, 0x0328, 0x0337, 0x02b4, 0x019b, 0x004d,
+ 0xff2e, 0xfe6e, 0xfe65, 0xfefd, 0xffad, 0x0065,
+ 0x00e9, 0x00dd, 0x00d0, 0x0111, 0x016a, 0x01ec,
+ 0x0212, 0x015c, 0x0079, 0xfffa, 0x0023, 0x0127,
+ 0x024e, 0x02fd, 0x0305, 0x0231, 0x016c, 0x0188,
+ 0x01eb, 0x024d, 0x0294, 0x0221, 0x015a, 0x00be,
+ 0xfffd, 0xff8a, 0xfffe, 0x00c7, 0x0159, 0x01af,
+ 0x01f1, 0x028c, 0x03af, 0x04ee, 0x05c6, 0x0608,
+ 0x05c2, 0x0526, 0x04d1, 0x0556, 0x067d, 0x079a,
+ 0x083f, 0x089b, 0x0961, 0x0a95, 0x0b79, 0x0bad,
+ 0x0b36, 0x0a42, 0x093d, 0x085e, 0x07cb, 0x07ba,
+ 0x07ed, 0x081a, 0x0849, 0x0899, 0x0944, 0x09e5,
+ 0x09e6, 0x09c2, 0x09ca, 0x0990, 0x0961, 0x0984,
+ 0x098e, 0x09c0, 0x0a63, 0x0ac7, 0x0a68, 0x097d,
+ 0x0882, 0x07cc, 0x0728, 0x0673, 0x05e2, 0x0553,
+ 0x0498, 0x03ab, 0x026d, 0x0147, 0x00de, 0x00e8,
+ 0x00e6, 0x00df, 0x00bd, 0x009f, 0x00e1, 0x011e,
+ 0x00d9, 0x004c, 0xffa9, 0xff3b, 0xffa1, 0x0072,
+ 0x00b9, 0x0070, 0x0007, 0xffef, 0x007d, 0x013b,
+ 0x0171, 0x0105, 0x0006, 0xfedb, 0xfe47, 0xfe71,
+ 0xff0b, 0xffb6, 0xffdb, 0xff6e, 0xff15, 0xff28,
+ 0xff89, 0xffed, 0x000d, 0x000e, 0x001f, 0x0035,
+ 0x006b, 0x00e9, 0x0187, 0x0232, 0x02f0, 0x0332,
+ 0x0257, 0x0122, 0x010c, 0x021d, 0x032b, 0x0390,
+ 0x035a, 0x02f2, 0x02ac, 0x0264, 0x021c, 0x0228,
+ 0x025b, 0x0281, 0x02db, 0x0367, 0x041b, 0x0557,
+ 0x06ef, 0x0802, 0x0828, 0x079c, 0x0699, 0x05be,
+ 0x05f8, 0x0734, 0x0887, 0x0999, 0x0a5e, 0x0a9b,
+ 0x0aba, 0x0b71, 0x0ccd, 0x0e2c, 0x0e61, 0x0cc0,
+ 0x0a63, 0x08ca, 0x0804, 0x0779, 0x06d0, 0x05f0,
+ 0x0568, 0x05ef, 0x0744, 0x088a, 0x094c, 0x096a,
+ 0x08c0, 0x078f, 0x066c, 0x0558, 0x040f, 0x0339,
+ 0x0379, 0x03ee, 0x03d6, 0x03d7, 0x046b, 0x0553,
+ 0x0667, 0x0747, 0x076f, 0x0687, 0x0432, 0x00d0,
+ 0xfddd, 0xfc79, 0xfc94, 0xfd46, 0xfdcb, 0xfe4e,
+ 0xff13, 0xffd6, 0x0084, 0x00e9, 0x00a5, 0x0006,
+ 0xff43, 0xfe38, 0xfd58, 0xfcd6, 0xfc6a, 0xfc42,
+ 0xfc6f, 0xfc94, 0xfc6b, 0xfbf7, 0xfbc6, 0xfc39,
+ 0xfc99, 0xfc8c, 0xfc90, 0xfc81, 0xfc19, 0xfbac,
+ 0xfb27, 0xfa56, 0xf9c6, 0xf9e0, 0xfa4f, 0xfadd,
+ 0xfb9c, 0xfc3b, 0xfc6b, 0xfc82, 0xfcca, 0xfd0c,
+ 0xfd2d, 0xfd58, 0xfd74, 0xfd32, 0xfcbf, 0xfcac,
+ 0xfd1a, 0xfda0, 0xfddf, 0xfdfb, 0xfe5b, 0xfecb,
+ 0xfed3, 0xfec0, 0xfecd, 0xfeb6, 0xfe91, 0xfe50,
+ 0xfdd3, 0xfdb9, 0xfe26, 0xfea2, 0xff68, 0x0056,
+ 0x00bd, 0x00c2, 0x00e0, 0x0148, 0x0207, 0x02c8,
+ 0x0319, 0x02ef, 0x02a4, 0x027f, 0x0221, 0x0182,
+ 0x014a, 0x0140, 0x0119, 0x0148, 0x0171, 0x0142,
+ 0x0174, 0x0201, 0x0271, 0x02ca, 0x02d7, 0x02ba,
+ 0x02f2, 0x036d, 0x0419, 0x04bd, 0x04c4, 0x044d,
+ 0x03e3, 0x03b2, 0x03d9, 0x043f, 0x046b, 0x042a,
+ 0x03de, 0x03f8, 0x042d, 0x03ef, 0x033f, 0x0262,
+ 0x01a0, 0x00f1, 0x0004, 0xff52, 0xff40, 0xff1e,
+ 0xfec9, 0xfeb3, 0xfe98, 0xfe2e, 0xfd70, 0xfca1,
+ 0xfc61, 0xfc65, 0xfbf6, 0xfb6b, 0xfb2f, 0xfb73,
+ 0xfc42, 0xfcc2, 0xfc5f, 0xfbab, 0xfb3d, 0xfb5a,
+ 0xfbd6, 0xfc2c, 0xfc5d, 0xfc8b, 0xfc8f, 0xfc52,
+ 0xfb95, 0xfa8a, 0xfa11, 0xfa51, 0xfae4, 0xfb8f,
+ 0xfbe7, 0xfc03, 0xfc81, 0xfd55, 0xfe1c, 0xfecf,
+ 0xff54, 0xff73, 0xff13, 0xfe97, 0xfebb, 0xff88,
+ 0x0047, 0x00c8, 0x0136, 0x0158, 0x0130, 0x0144,
+ 0x0191, 0x0192, 0x0117, 0x0018, 0xfea8, 0xfd72,
+ 0xfd1c, 0xfd71, 0xfde9, 0xfe58, 0xfeb4, 0xfeb2,
+ 0xfe54, 0xfe34, 0xfe5c, 0xfe4d, 0xfe63, 0xff45,
+ 0x00b1, 0x01e9, 0x0264, 0x023f, 0x01ea, 0x01b6,
+ 0x01f0, 0x0261, 0x024b, 0x01c2, 0x015a, 0x0141,
+ 0x01bf, 0x0268, 0x0221, 0x013d, 0x00d5, 0x00d1,
+ 0x00c4, 0x00b1, 0x007d, 0x0059, 0x00d2, 0x01bf,
+ 0x0241, 0x0215, 0x01a2, 0x00de, 0xffc4, 0xff16,
+ 0xff41, 0xffce, 0x0069, 0x0137, 0x01f1, 0x01e5,
+ 0x0129, 0x00af, 0x00c1, 0x00cd, 0x006f, 0xffbe,
+ 0xff0e, 0xfe81, 0xfdef, 0xfd9e, 0xfdb5, 0xfda5,
+ 0xfd58, 0xfd32, 0xfcfb, 0xfca0, 0xfc65, 0xfbef,
+ 0xfb1e, 0xfacb, 0xfb35, 0xfb8e, 0xfbb7, 0xfc2d,
+ 0xfcb1, 0xfce3, 0xfcd5, 0xfc74, 0xfbc8, 0xfb27,
+ 0xface, 0xfafc, 0xfba8, 0xfc09, 0xfb95, 0xfac9,
+ 0xfa66, 0xfa78, 0xfa94, 0xfac4, 0xfb66, 0xfc25,
+ 0xfc52, 0xfbf1, 0xfb9d, 0xfb8b, 0xfb3f, 0xfa64,
+ 0xf937, 0xf82e, 0xf7c2, 0xf804, 0xf8c0, 0xfa10,
+ 0xfb91, 0xfc4f, 0xfc44, 0xfc18, 0xfc0c, 0xfbea,
+ 0xfb25, 0xf9c8, 0xf8af, 0xf836, 0xf831, 0xf865,
+ 0xf874, 0xf879, 0xf8ba, 0xf8e0, 0xf8d1, 0xf8f0,
+ 0xf97b, 0xfa88, 0xfbe4, 0xfd20, 0xfdc1, 0xfd9a,
+ 0xfd65, 0xfdb6, 0xfe49, 0xff0c, 0xffc6, 0xfff2,
+ 0xffac, 0xfef2, 0xfdf1, 0xfdc0, 0xfe6a, 0xfed0,
+ 0xfea4, 0xfe1e, 0xfd7b, 0xfce1, 0xfc35, 0xfbca,
+ 0xfbd1, 0xfbd1, 0xfba8, 0xfb5c, 0xfb14, 0xfb4c,
+ 0xfb82, 0xfadd, 0xf9ad, 0xf872, 0xf769, 0xf6f3,
+ 0xf73b, 0xf816, 0xf8cb, 0xf8c4, 0xf874, 0xf7fd,
+ 0xf728, 0xf67a, 0xf5ec, 0xf4fd, 0xf41b, 0xf3af,
+ 0xf39b, 0xf3ae, 0xf3b2, 0xf3ca, 0xf3e6, 0xf36a,
+ 0xf252, 0xf119, 0xf022, 0xf00e, 0xf12b, 0xf2c6,
+ 0xf3c9, 0xf3d5, 0xf387, 0xf36a, 0xf38b, 0xf3fa,
+ 0xf45e, 0xf45a, 0xf41e, 0xf3a7, 0xf33d, 0xf3b6,
+ 0xf4c6, 0xf55f, 0xf571, 0xf560, 0xf52e, 0xf4d7,
+ 0xf497, 0xf46b, 0xf415, 0xf410, 0xf4e0, 0xf5cd,
+ 0xf62f, 0xf669, 0xf721, 0xf8ba, 0xfac6, 0xfc34,
+ 0xfc84, 0xfc2c, 0xfc41, 0xfd4f, 0xfe84, 0xff47,
+ 0xffdd, 0x0016, 0x0007, 0x005e, 0x0118, 0x01c4,
+ 0x0236, 0x0256, 0x0249, 0x024d, 0x024c, 0x0210,
+ 0x01b5, 0x0188, 0x0166, 0x0129, 0x00f9, 0x00d7,
+ 0x012c, 0x0272, 0x03de, 0x04d1, 0x0571, 0x0548,
+ 0x0495, 0x043b, 0x0402, 0x03f5, 0x0464, 0x04d0,
+ 0x05b8, 0x0758, 0x0814, 0x07af, 0x075c, 0x0729,
+ 0x0717, 0x0764, 0x079a, 0x0791, 0x0799, 0x07c1,
+ 0x0811, 0x086d, 0x088e, 0x0862, 0x0828, 0x0834,
+ 0x0863, 0x0849, 0x081b, 0x087f, 0x09c8, 0x0b9b,
+ 0x0d2c, 0x0e12, 0x0e83, 0x0eb1, 0x0e87, 0x0dfc,
+ 0x0d65, 0x0d38, 0x0d75, 0x0dd1, 0x0e0e, 0x0df3,
+ 0x0d84, 0x0cf4, 0x0c4c, 0x0b93, 0x0ac8, 0x09fd,
+ 0x09ad, 0x0a4b, 0x0b8b, 0x0ccd, 0x0db4, 0x0e1d,
+ 0x0e0a, 0x0dd7, 0x0dce, 0x0da9, 0x0d13, 0x0c2e,
+ 0x0b4e, 0x0af0, 0x0b95, 0x0cb6, 0x0d0d, 0x0c7e,
+ 0x0c25, 0x0c49, 0x0c28, 0x0b7b, 0x0a64, 0x090b,
+ 0x0829, 0x0846, 0x08e1, 0x095c, 0x093b, 0x080d,
+ 0x0654, 0x04ec, 0x03e4, 0x0327, 0x02df, 0x0308,
+ 0x03a0, 0x0491, 0x055e, 0x05b4, 0x05aa, 0x0519,
+ 0x03d6, 0x026d, 0x0160, 0x005c, 0xff1c, 0xfdf9,
+ 0xfd5b, 0xfd82, 0xfe38, 0xfe7a, 0xfdca, 0xfccd,
+ 0xfbe1, 0xfaee, 0xfa5c, 0xfa8a, 0xfb5b, 0xfcb0,
+ 0xfe10, 0xfec0, 0xfed1, 0xfeec, 0xff66, 0x0013,
+ 0x0090, 0x00b2, 0x009d, 0x00b1, 0x0162, 0x0262,
+ 0x0300, 0x038e, 0x047a, 0x055c, 0x0630, 0x0723,
+ 0x07c8, 0x0802, 0x0813, 0x084b, 0x08eb, 0x097d,
+ 0x095f, 0x08d3, 0x0861, 0x0823, 0x07b1, 0x06fa,
+ 0x06d0, 0x077e, 0x0885, 0x09cc, 0x0ad6, 0x0b24,
+ 0x0b2e, 0x0ad0, 0x0992, 0x0832, 0x0756, 0x06bf,
+ 0x0611, 0x0541, 0x04e3, 0x04dc, 0x0426, 0x02ba,
+ 0x0124, 0xff80, 0xfdea, 0xfc18, 0xfa5b, 0xf9fd,
+ 0xfadc, 0xfc0e, 0xfd19, 0xfcf5, 0xfbe2, 0xfb83,
+ 0xfba9, 0xfb6f, 0xfae7, 0xf9fb, 0xf91f, 0xf939,
+ 0xf9cb, 0xf9ea, 0xf9a0, 0xf962, 0xf992, 0xfa2e,
+ 0xfae9, 0xfb6e, 0xfb6f, 0xfb23, 0xfb0c, 0xfb40,
+ 0xfb9b, 0xfbbd, 0xfb40, 0xfa7d, 0xfa0e, 0xf9d4,
+ 0xf961, 0xf8de, 0xf8d9, 0xf96d, 0xfa4b, 0xfb40,
+ 0xfc3b, 0xfd67, 0xfeb0, 0xff60, 0xff37, 0xfea2,
+ 0xfde3, 0xfd70, 0xfd94, 0xfde4, 0xfe34, 0xfe62,
+ 0xfdd5, 0xfcb2, 0xfbc6, 0xfb48, 0xfaf8, 0xfabb,
+ 0xfb0c, 0xfc56, 0xfe15, 0xff9c, 0x00a5, 0x00fe,
+ 0x0113, 0x0185, 0x0202, 0x0209, 0x019e, 0x00dd,
+ 0x003b, 0x0046, 0x00bf, 0x0126, 0x01a6, 0x0252,
+ 0x028e, 0x0244, 0x0235, 0x0279, 0x0299, 0x02e8,
+ 0x03bb, 0x0483, 0x04ca, 0x049d, 0x0410, 0x0345,
+ 0x0283, 0x01e2, 0x0145, 0x00ac, 0x004a, 0x0056,
+ 0x00bd, 0x0112, 0x0142, 0x0197, 0x01c2, 0x014c,
+ 0x0087, 0xffcb, 0xff13, 0xfe78, 0xfdfd, 0xfd9a,
+ 0xfd4d, 0xfcaf, 0xfb7b, 0xf9ee, 0xf847, 0xf6d0,
+ 0xf5ec, 0xf5a5, 0xf5d0, 0xf662, 0xf75a, 0xf85f,
+ 0xf8db, 0xf8e7, 0xf92a, 0xf9bb, 0xfa42, 0xfa98,
+ 0xfaa6, 0xfa70, 0xfa25, 0xfa0e, 0xfa5d, 0xfb02,
+ 0xfbd3, 0xfc95, 0xfd0f, 0xfd97, 0xfe89, 0xff68,
+ 0xffc4, 0xffed, 0x0059, 0x011d, 0x01dd, 0x0248,
+ 0x0261, 0x0242, 0x020a, 0x01b7, 0x0163, 0x018e,
+ 0x0269, 0x03aa, 0x0533, 0x06a1, 0x0795, 0x0872,
+ 0x0943, 0x0995, 0x096d, 0x08e9, 0x0840, 0x0814,
+ 0x088a, 0x090e, 0x0928, 0x08c9, 0x0805, 0x06ea,
+ 0x05b7, 0x04b5, 0x03ff, 0x0409, 0x0503, 0x0648,
+ 0x0776, 0x084c, 0x086f, 0x0869, 0x08a8, 0x08bd,
+ 0x08d9, 0x0930, 0x0936, 0x08f5, 0x08ce, 0x08bc,
+ 0x08d0, 0x08f5, 0x08f4, 0x0907, 0x096b, 0x09d5,
+ 0x09e0, 0x098e, 0x092e, 0x092c, 0x09a3, 0x09c6,
+ 0x090c, 0x084a, 0x07e7, 0x0736, 0x063c, 0x0564,
+ 0x04b7, 0x0458, 0x045d, 0x0512, 0x06a4, 0x0852,
+ 0x099d, 0x0a7c, 0x0a97, 0x0a3b, 0x09af, 0x0887,
+ 0x076e, 0x0751, 0x07a5, 0x07db, 0x07c7, 0x0732,
+ 0x067c, 0x05e6, 0x0514, 0x040d, 0x037a, 0x03ff,
+ 0x0541, 0x061d, 0x061f, 0x05b4, 0x058a, 0x05ff,
+ 0x0696, 0x06da, 0x0705, 0x0722, 0x06f9, 0x0672,
+ 0x05d8, 0x05d0, 0x0652, 0x0690, 0x063b, 0x05d4,
+ 0x0603, 0x069f, 0x06ce, 0x06a2, 0x06ab, 0x06dc,
+ 0x0702, 0x06c3, 0x0618, 0x05b9, 0x0588, 0x04ba,
+ 0x036e, 0x0217, 0x011a, 0x00ba, 0x00c6, 0x014a,
+ 0x0250, 0x0376, 0x0480, 0x050e, 0x0504, 0x04cd,
+ 0x0420, 0x02fb, 0x0247, 0x01f8, 0x01b3, 0x01bb,
+ 0x01ae, 0x0112, 0x0016, 0xfefc, 0xfdea, 0xfcd7,
+ 0xfc1f, 0xfc86, 0xfd9b, 0xfe65, 0xfed8, 0xff21,
+ 0xffa8, 0x00c6, 0x01ce, 0x0232, 0x0248, 0x0264,
+ 0x02aa, 0x031a, 0x03aa, 0x047d, 0x054e, 0x058f,
+ 0x0559, 0x0578, 0x0673, 0x07bd, 0x0899, 0x090e,
+ 0x095a, 0x09bc, 0x0a4f, 0x0aa6, 0x0a9a, 0x0a83,
+ 0x0a4e, 0x09c8, 0x090a, 0x0843, 0x0794, 0x0729,
+ 0x075a, 0x0843, 0x0987, 0x0afa, 0x0c5c, 0x0d2a,
+ 0x0d5e, 0x0d0a, 0x0c37, 0x0b7a, 0x0aea, 0x0a13,
+ 0x092c, 0x087f, 0x07dd, 0x0718, 0x061a, 0x0515,
+ 0x0425, 0x032c, 0x0295, 0x02ba, 0x0323, 0x034a,
+ 0x02ef, 0x024d, 0x0224, 0x029b, 0x0322, 0x039a,
+ 0x0403, 0x03f4, 0x0376, 0x0324, 0x0326, 0x036e,
+ 0x03e3, 0x03b9, 0x02b1, 0x01e6, 0x01c9, 0x01d8,
+ 0x0210, 0x0260, 0x0272, 0x022b, 0x017b, 0x00c3,
+ 0x0080, 0x004e, 0xffc5, 0xfee5, 0xfdb8, 0xfc9d,
+ 0xfbe6, 0xfb8f, 0xfbd8, 0xfce9, 0xfe83, 0x001b,
+ 0x010d, 0x0138, 0x00d4, 0x0020, 0xffab, 0xff98,
+ 0xff74, 0xff2e, 0xfeed, 0xfec1, 0xfeb2, 0xfea7,
+ 0xfe9f, 0xfe7d, 0xfe1d, 0xfde2, 0xfe04, 0xfe63,
+ 0xfef4, 0xff2f, 0xfef5, 0xff2f, 0xffe4, 0x0055,
+ 0x009e, 0x00f6, 0x0144, 0x018b, 0x01d7, 0x023e,
+ 0x02d3, 0x0375, 0x03d8, 0x03c5, 0x03ba, 0x0447,
+ 0x0510, 0x05a6, 0x060c, 0x0643, 0x0655, 0x0639,
+ 0x05f7, 0x05de, 0x05d9, 0x0588, 0x04d9, 0x03fc,
+ 0x0355, 0x030b, 0x02d6, 0x02c0, 0x030b, 0x03ca,
+ 0x051b, 0x06a8, 0x07c4, 0x0854, 0x0860, 0x07e4,
+ 0x074c, 0x06e4, 0x0664, 0x0599, 0x04a2, 0x037e,
+ 0x0229, 0x0107, 0x005c, 0xffec, 0xff56, 0xfe79,
+ 0xfda9, 0xfd4f, 0xfd3c, 0xfd32, 0xfd1e, 0xfcd2,
+ 0xfc91, 0xfcae, 0xfcec, 0xfd24, 0xfd19, 0xfc9d,
+ 0xfc47, 0xfc57, 0xfc92, 0xfcea, 0xfce2, 0xfc6c,
+ 0xfc47, 0xfc52, 0xfc60, 0xfce3, 0xfd8b, 0xfdf2,
+ 0xfe41, 0xfe43, 0xfdff, 0xfde7, 0xfdf4, 0xfdec,
+ 0xfdba, 0xfd62, 0xfce9, 0xfc3e, 0xfbb1, 0xfba2,
+ 0xfc17, 0xfd28, 0xfebe, 0x007b, 0x0212, 0x0309,
+ 0x0340, 0x0336, 0x031c, 0x0303, 0x031a, 0x031e,
+ 0x02cf, 0x022e, 0x0142, 0x003e, 0xff59, 0xfed1,
+ 0xfebb, 0xfea0, 0xfe8d, 0xfed2, 0xfef7, 0xfee9,
+ 0xff00, 0xff05, 0xff1c, 0xff86, 0xffe6, 0x0027,
+ 0x005c, 0x0072, 0x00b4, 0x0117, 0x0146, 0x0154,
+ 0x014e, 0x0142, 0x0147, 0x0136, 0x0141, 0x01bd,
+ 0x0275, 0x0332, 0x03bc, 0x03e7, 0x03f3, 0x03e9,
+ 0x036e, 0x0297, 0x01aa, 0x00d8, 0x0042, 0xffc0,
+ 0xff25, 0xfe9a, 0xfe7f, 0xff63, 0x013d, 0x032d,
+ 0x0495, 0x0558, 0x0562, 0x0515, 0x04e4, 0x04be,
+ 0x0489, 0x041f, 0x0334, 0x020b, 0x0114, 0x005c,
+ 0x0014, 0x004b, 0x006f, 0x0025, 0xff80, 0xfeae,
+ 0xfe3d, 0xfe7c, 0xff01, 0xff58, 0xff5c, 0xff27,
+ 0xff35, 0xffb4, 0x0028, 0x0053, 0x0086, 0x00db,
+ 0x00fc, 0x00d3, 0x00b0, 0x00c4, 0x00f7, 0x0138,
+ 0x0193, 0x0205, 0x0262, 0x027d, 0x0289, 0x02e5,
+ 0x0360, 0x0348, 0x0260, 0x00e6, 0xff2f, 0xfe09,
+ 0xfdf0, 0xfe07, 0xfd9c, 0xfd32, 0xfd46, 0xfdf0,
+ 0xfef3, 0xffb7, 0x0040, 0x00be, 0x00c0, 0x0057,
+ 0x0004, 0xffba, 0xff74, 0xff4c, 0xfeee, 0xfe0c,
+ 0xfcc6, 0xfbb2, 0xfb49, 0xfb5c, 0xfbab, 0xfbe1,
+ 0xfb5c, 0xfa57, 0xf9da, 0xfa55, 0xfb58, 0xfc0e,
+ 0xfc22, 0xfc29, 0xfc7b, 0xfce9, 0xfd66, 0xfdff,
+ 0xfec0, 0xff88, 0xfff0, 0x0006, 0x003d, 0x00af,
+ 0x0155, 0x0228, 0x02f4, 0x037b, 0x03ad, 0x03bd,
+ 0x03e1, 0x042e, 0x04c7, 0x0555, 0x050b, 0x03d6,
+ 0x025a, 0x011c, 0x0062, 0x0013, 0x0006, 0x0072,
+ 0x0169, 0x02d9, 0x04bc, 0x0667, 0x0720, 0x071d,
+ 0x06a8, 0x05bb, 0x04d7, 0x047f, 0x0452, 0x03de,
+ 0x032f, 0x0265, 0x0190, 0x00e2, 0x0094, 0x00a5,
+ 0x00b2, 0x0067, 0xffd8, 0xff26, 0xfeb8, 0xfefd,
+ 0xff72, 0xff81, 0xff75, 0xff6e, 0xff4c, 0xff53,
+ 0xff6d, 0xff62, 0xff84, 0xff9f, 0xff3f, 0xfef1,
+ 0xff3e, 0xffce, 0x005c, 0x00b5, 0x0076, 0xffa2,
+ 0xfe9b, 0xfddc, 0xfde0, 0xfe98, 0xff5e, 0xff83,
+ 0xfe91, 0xfcaf, 0xfaa8, 0xf923, 0xf84e, 0xf7ee,
+ 0xf788, 0xf719, 0xf721, 0xf801, 0xf9ce, 0xfbf8,
+ 0xfd9c, 0xfe71, 0xfe78, 0xfdb6, 0xfcc5, 0xfc35,
+ 0xfc0b, 0xfc1b, 0xfc0d, 0xfb9a, 0xfaef, 0xfa6b,
+ 0xfa7e, 0xfb41, 0xfbf7, 0xfbe2, 0xfb40, 0xface,
+ 0xfb0b, 0xfbf7, 0xfd09, 0xfd88, 0xfd56, 0xfd16,
+ 0xfd2a, 0xfd6c, 0xfdd6, 0xfe8c, 0xff7f, 0x0043,
+ 0x0087, 0x008c, 0x009d, 0x00d7, 0x018a, 0x029a,
+ 0x038a, 0x0422, 0x0422, 0x03d0, 0x03e0, 0x0407,
+ 0x03d6, 0x0352, 0x01fd, 0xfffe, 0xfe4f, 0xfd25,
+ 0xfc7d, 0xfc69, 0xfc7b, 0xfc93, 0xfd09, 0xfe15,
+ 0xff9c, 0x0106, 0x020d, 0x02a2, 0x025d, 0x018f,
+ 0x00c3, 0xfff3, 0xff9d, 0xffbd, 0xff60, 0xfe8c,
+ 0xfd8d, 0xfc78, 0xfc26, 0xfc98, 0xfcb9, 0xfc39,
+ 0xfb43, 0xfa2f, 0xf977, 0xf909, 0xf8a9, 0xf83b,
+ 0xf7cf, 0xf7ca, 0xf7f0, 0xf7c3, 0xf7a3, 0xf7cf,
+ 0xf812, 0xf868, 0xf884, 0xf847, 0xf824, 0xf848,
+ 0xf8ac, 0xf909, 0xf8dc, 0xf832, 0xf76e, 0xf703,
+ 0xf77f, 0xf898, 0xf933, 0xf8c2, 0xf783, 0xf5eb,
+ 0xf479, 0xf39a, 0xf37a, 0xf3d5, 0xf465, 0xf533,
+ 0xf665, 0xf814, 0xfa02, 0xfbb0, 0xfccf, 0xfd28,
+ 0xfcb9, 0xfbee, 0xfb25, 0xfaa8, 0xfadb, 0xfb83,
+ 0xfbe6, 0xfbb6, 0xfb41, 0xfb43, 0xfc34, 0xfd81,
+ 0xfe0f, 0xfd74, 0xfc5c, 0xfbc2, 0xfbfa, 0xfcb3,
+ 0xfd4e, 0xfd47, 0xfcbd, 0xfc32, 0xfbdb, 0xfbaa,
+ 0xfbb7, 0xfc58, 0xfdab, 0xff40, 0x009f, 0x01ab,
+ 0x024a, 0x029c, 0x0307, 0x0382, 0x039d, 0x0355,
+ 0x02fe, 0x02e1, 0x036a, 0x0461, 0x0492, 0x0388,
+ 0x01dd, 0xffe9, 0xfe20, 0xfd2f, 0xfd0b, 0xfd7a,
+ 0xfe3c, 0xfed0, 0xff5b, 0x0055, 0x01a2, 0x0313,
+ 0x0457, 0x04bb, 0x0428, 0x0318, 0x01d7, 0x00d9,
+ 0x00ba, 0x0162, 0x01e1, 0x018c, 0x00b4, 0x0019,
+ 0x0028, 0x0093, 0x00a9, 0x0018, 0xfeff, 0xfdc3,
+ 0xfd06, 0xfcde, 0xfce5, 0xfcff, 0xfce7, 0xfc60,
+ 0xfbde, 0xfbbe, 0xfc0b, 0xfcf0, 0xfe42, 0xff6c,
+ 0x000b, 0x0036, 0x0088, 0x015a, 0x025f, 0x033a,
+ 0x03b8, 0x03a9, 0x033d, 0x0329, 0x03f5, 0x0517,
+ 0x05b7, 0x05b5, 0x04ff, 0x0384, 0x01c1, 0x0048,
+ 0xffab, 0x0043, 0x0174, 0x0291, 0x0391, 0x0471,
+ 0x0589, 0x06ff, 0x081c, 0x0886, 0x0867, 0x07c2,
+ 0x06ef, 0x065e, 0x063c, 0x06a7, 0x070e, 0x06b9,
+ 0x0620, 0x05fe, 0x063c, 0x0675, 0x065d, 0x05e1,
+ 0x0534, 0x0489, 0x041a, 0x041c, 0x044c, 0x0436,
+ 0x03dc, 0x038a, 0x034d, 0x0322, 0x034f, 0x040f,
+ 0x0546, 0x069f, 0x07b7, 0x0855, 0x0899, 0x08e1,
+ 0x0962, 0x0a0e, 0x0aa6, 0x0abb, 0x0a38, 0x09d5,
+ 0x0a28, 0x0ae8, 0x0b69, 0x0b2e, 0x0a1d, 0x086a,
+ 0x065b, 0x0477, 0x037a, 0x03a8, 0x04a0, 0x05a5,
+ 0x0640, 0x06ad, 0x0757, 0x0864, 0x099c, 0x0a5f,
+ 0x0a66, 0x09c7, 0x0871, 0x0709, 0x0688, 0x0697,
+ 0x064e, 0x057a, 0x0482, 0x0405, 0x040f, 0x0409,
+ 0x03aa, 0x02f1, 0x01e4, 0x00d0, 0x0015, 0xffed,
+ 0x001e, 0x0031, 0x001f, 0xffe3, 0xff2c, 0xfe4c,
+ 0xfddb, 0xfe28, 0xff4d, 0x00b6, 0x01b0, 0x0243,
+ 0x0275, 0x0233, 0x01d6, 0x019a, 0x019a, 0x01e3,
+ 0x0239, 0x029a, 0x0322, 0x039d, 0x03ec, 0x03e5,
+ 0x0336, 0x01df, 0xffea, 0xfd9e, 0xfc13, 0xfbe9,
+ 0xfc8b, 0xfd57, 0xfe05, 0xfe8d, 0xff4b, 0x0053,
+ 0x013f, 0x01ee, 0x0255, 0x021e, 0x0161, 0x00aa,
+ 0x0031, 0xffe3, 0xffa7, 0xff63, 0xff44, 0xff5a,
+ 0xff11, 0xfe2f, 0xfd4a, 0xfc92, 0xfbd0, 0xfb3f,
+ 0xfb07, 0xfadf, 0xfa8c, 0xfa11, 0xf9a2, 0xf991,
+ 0xf9e2, 0xfa5a, 0xfaef, 0xfbdf, 0xfd43, 0xfeb6,
+ 0xffcb, 0x007e, 0x00c9, 0x00a2, 0x0061, 0x0052,
+ 0x0085, 0x00fc, 0x016f, 0x01c5, 0x025c, 0x0331,
+ 0x03c2, 0x03ac, 0x02c8, 0x0154, 0xffc6, 0xfe92,
+ 0xfe44, 0xfec7, 0xff73, 0x003b, 0x014f, 0x0268,
+ 0x0368, 0x043a, 0x04bd, 0x051a, 0x0538, 0x04c6,
+ 0x0412, 0x03a8, 0x0393, 0x0395, 0x0368, 0x02e8,
+ 0x0261, 0x021c, 0x01cb, 0x0121, 0x0041, 0xff1e,
+ 0xfdaf, 0xfc78, 0xfbe5, 0xfbb9, 0xfb5e, 0xfa7c,
+ 0xf97a, 0xf8f5, 0xf8ef, 0xf920, 0xf95d, 0xf9be,
+ 0xfaa7, 0xfbe8, 0xfcc4, 0xfd0a, 0xfcc2, 0xfbf1,
+ 0xfb42, 0xfb45, 0xfbae, 0xfc0c, 0xfc3e, 0xfc55,
+ 0xfc7a, 0xfca4, 0xfc85, 0xfbdc, 0xfab0, 0xf92d,
+ 0xf79a, 0xf676, 0xf611, 0xf637, 0xf6b7, 0xf788,
+ 0xf876, 0xf951, 0xfa18, 0xfad9, 0xfb90, 0xfc1f,
+ 0xfc65, 0xfc52, 0xfc13, 0xfc13, 0xfc58, 0xfc73,
+ 0xfc50, 0xfc4c, 0xfc98, 0xfcea, 0xfcc2, 0xfc1c,
+ 0xfb72, 0xfb09, 0xfac2, 0xfa6e, 0xfa18, 0xf9d6,
+ 0xf997, 0xf972, 0xf98c, 0xf9ca, 0xfa25, 0xfaad,
+ 0xfb6d, 0xfca6, 0xfe42, 0xffc3, 0x00fc, 0x01e9,
+ 0x0249, 0x0231, 0x021f, 0x0260, 0x02e2, 0x0386,
+ 0x041b, 0x0455, 0x047f, 0x04f0, 0x0518, 0x04aa,
+ 0x03e8, 0x02c2, 0x01b2, 0x016c, 0x01a9, 0x022b,
+ 0x02f3, 0x03ab, 0x044b, 0x04d2, 0x0530, 0x05bb,
+ 0x066b, 0x06ef, 0x0732, 0x0723, 0x0711, 0x0720,
+ 0x06e7, 0x068c, 0x065e, 0x0663, 0x06cf, 0x0707,
+ 0x0640, 0x04ed, 0x03a4, 0x02ca, 0x02a3, 0x029c,
+ 0x0278, 0x0250, 0x01a2, 0x009f, 0xfff0, 0xff68,
+ 0xff08, 0xff13, 0xff8a, 0x008a, 0x01c7, 0x02b7,
+ 0x0352, 0x0383, 0x0333, 0x02aa, 0x0240, 0x025f,
+ 0x031b, 0x03f5, 0x046c, 0x0454, 0x0402, 0x03e0,
+ 0x03b0, 0x030c, 0x01c8, 0x0023, 0xff09, 0xfec8,
+ 0xfebf, 0xfeeb, 0xffc8, 0x0117, 0x0231, 0x02d7,
+ 0x031d, 0x031e, 0x035a, 0x043f, 0x0536, 0x05c5,
+ 0x064e, 0x0696, 0x0652, 0x0619, 0x0631, 0x06bb,
+ 0x07c9, 0x0868, 0x07fc, 0x0706, 0x05c5, 0x049a,
+ 0x0424, 0x041d, 0x041c, 0x042c, 0x040c, 0x03af,
+ 0x03a2, 0x03eb, 0x043e, 0x04db, 0x05d0, 0x06e3,
+ 0x0827, 0x0963, 0x0a32, 0x0abb, 0x0b16, 0x0b47,
+ 0x0b6d, 0x0b78, 0x0bc1, 0x0c85, 0x0d1d, 0x0d6b,
+ 0x0dbe, 0x0dcf, 0x0db1, 0x0d4f, 0x0c2b, 0x0ade,
+ 0x0a1a, 0x09c0, 0x09c0, 0x09d0, 0x09e0, 0x0a56,
+ 0x0ae1, 0x0b3e, 0x0bb3, 0x0c1c, 0x0c84, 0x0ce4,
+ 0x0cdb, 0x0cb1, 0x0c5d, 0x0b80, 0x0aad, 0x0a4b,
+ 0x0a4e, 0x0afd, 0x0bc0, 0x0b8d, 0x0a4e, 0x0860,
+ 0x0647, 0x0490, 0x036d, 0x02b4, 0x01f0, 0x0113,
+ 0x004e, 0xff57, 0xfe6b, 0xfe24, 0xfe3d, 0xfea1,
+ 0xff65, 0x000a, 0x009e, 0x0159, 0x01e2, 0x0237,
+ 0x0276, 0x02a0, 0x02d6, 0x0302, 0x0338, 0x03a1,
+ 0x03e1, 0x03f4, 0x040a, 0x03e2, 0x036c, 0x02b8,
+ 0x01e2, 0x0165, 0x0164, 0x017c, 0x0162, 0x0125,
+ 0x0151, 0x0206, 0x02a9, 0x0330, 0x03d5, 0x0464,
+ 0x04db, 0x0550, 0x05af, 0x0606, 0x0648, 0x066a,
+ 0x0682, 0x06b4, 0x072e, 0x07b9, 0x0803, 0x083d,
+ 0x0842, 0x07a6, 0x06aa, 0x05b9, 0x04ee, 0x0455,
+ 0x03c2, 0x0312, 0x025d, 0x01ba, 0x017b, 0x01ee,
+ 0x02d1, 0x03c0, 0x04a7, 0x0586, 0x0646, 0x06ea,
+ 0x0785, 0x080a, 0x0888, 0x0913, 0x098a, 0x09ed,
+ 0x0a56, 0x0a94, 0x0aa3, 0x0ab7, 0x0ada, 0x0ae0,
+ 0x0a65, 0x0968, 0x088a, 0x0831, 0x0846, 0x0864,
+ 0x0812, 0x07c5, 0x083a, 0x08f8, 0x0945, 0x0953,
+ 0x0996, 0x0a1a, 0x0a6f, 0x0a65, 0x0a52, 0x0a3f,
+ 0x0a08, 0x09dc, 0x09c9, 0x09b5, 0x098d, 0x094c,
+ 0x090c, 0x08b5, 0x07f2, 0x06bc, 0x0567, 0x045b,
+ 0x03b0, 0x0312, 0x024c, 0x013d, 0xffd7, 0xfe9a,
+ 0xfdfb, 0xfdcd, 0xfde8, 0xfe64, 0xff5b, 0x008e,
+ 0x0153, 0x0167, 0x012a, 0x0106, 0x014b, 0x01c6,
+ 0x0208, 0x0223, 0x0242, 0x0266, 0x0283, 0x022d,
+ 0x0155, 0x0078, 0xff93, 0xfea6, 0xfe43, 0xfe8d,
+ 0xff24, 0xff85, 0xff55, 0xfede, 0xfe91, 0xfe5f,
+ 0xfe45, 0xfeba, 0xfffd, 0x014e, 0x01e3, 0x01ea,
+ 0x01a6, 0x0134, 0x0131, 0x01d4, 0x02c3, 0x03c1,
+ 0x044a, 0x0422, 0x03d0, 0x0382, 0x031f, 0x02be,
+ 0x0235, 0x016f, 0x00a4, 0xffdc, 0xff0d, 0xfe43,
+ 0xfda4, 0xfd7b, 0xfdc0, 0xfe4e, 0xff0d, 0xffc2,
+ 0x00a1, 0x01d9, 0x02e3, 0x0374, 0x03ac, 0x03a5,
+ 0x03e2, 0x049b, 0x0568, 0x0631, 0x06d6, 0x06f5,
+ 0x069d, 0x05e3, 0x04e9, 0x0420, 0x0376, 0x02b4,
+ 0x023b, 0x0235, 0x0255, 0x0274, 0x0288, 0x029a,
+ 0x029f, 0x0264, 0x0230, 0x025c, 0x02b2, 0x031b,
+ 0x03be, 0x046b, 0x04df, 0x04f7, 0x0497, 0x0413,
+ 0x03f8, 0x0434, 0x043d, 0x03f1, 0x03b3, 0x03c5,
+ 0x03e7, 0x03ac, 0x02cb, 0x015d, 0xffe0, 0xfea0,
+ 0xfd70, 0xfc5b, 0xfba4, 0xfb39, 0xfb1d, 0xfb78,
+ 0xfbe2, 0xfc17, 0xfc8a, 0xfd60, 0xfe1e, 0xfe62,
+ 0xfdfd, 0xfd42, 0xfd0a, 0xfdad, 0xfee1, 0x003f,
+ 0x0106, 0x00ba, 0xfff0, 0xff27, 0xfe39, 0xfd57,
+ 0xfcc9, 0xfc6d, 0xfc4d, 0xfc70, 0xfc88, 0xfc99,
+ 0xfcc9, 0xfce3, 0xfcc8, 0xfc77, 0xfc0b, 0xfbf7,
+ 0xfc8f, 0xfda9, 0xfeea, 0xffe1, 0x004a, 0x0046,
+ 0x003e, 0x00b2, 0x0181, 0x01f7, 0x01f7, 0x01d5,
+ 0x0195, 0x016a, 0x0163, 0x010c, 0x0057, 0xff87,
+ 0xfeaa, 0xfdd8, 0xfcf4, 0xfbf4, 0xfb73, 0xfbc3,
+ 0xfc96, 0xfd89, 0xfe2e, 0xfe8e, 0xff34, 0x001e,
+ 0x00f5, 0x017d, 0x017e, 0x016a, 0x0214, 0x0376,
+ 0x04e6, 0x05d8, 0x05ff, 0x0594, 0x0502, 0x045b,
+ 0x03a4, 0x030f, 0x02c7, 0x02b3, 0x0294, 0x027b,
+ 0x02a1, 0x02ca, 0x0293, 0x022d, 0x01fc, 0x01db,
+ 0x0183, 0x012c, 0x0119, 0x0148, 0x01a6, 0x01eb,
+ 0x01fa, 0x0238, 0x02bf, 0x032c, 0x034c, 0x02fd,
+ 0x0259, 0x0208, 0x023e, 0x0266, 0x022f, 0x019e,
+ 0x0088, 0xfefd, 0xfd7e, 0xfc41, 0xfaf5, 0xf990,
+ 0xf8b0, 0xf8c1, 0xf963, 0xf9ff, 0xfa6d, 0xfaba,
+ 0xfaf1, 0xfb39, 0xfb7f, 0xfb8a, 0xfb88, 0xfbe5,
+ 0xfcd7, 0xfe41, 0xff85, 0x0012, 0x000d, 0xffb2,
+ 0xfeed, 0xfdc7, 0xfc98, 0xfbfb, 0xfc14, 0xfc3d,
+ 0xfc41, 0xfc7f, 0xfcc9, 0xfcc2, 0xfc7d, 0xfc29,
+ 0xfbf7, 0xfbf8, 0xfc1c, 0xfc7f, 0xfd07, 0xfd64,
+ 0xfdb1, 0xfe0f, 0xfe58, 0xfeb7, 0xff57, 0xfff3,
+ 0x0064, 0x00a9, 0x00b6, 0x00dd, 0x0161, 0x01d2,
+ 0x01d9, 0x019c, 0x010d, 0x0031, 0xff64, 0xfe87,
+ 0xfd65, 0xfc6b, 0xfc1d, 0xfc8b, 0xfd48, 0xfda9,
+ 0xfdba, 0xfe03, 0xfe93, 0xff36, 0xffb5, 0xffd1,
+ 0xffab, 0xffa3, 0x0012, 0x013b, 0x02b8, 0x03c1,
+ 0x040a, 0x0399, 0x0288, 0x0137, 0x001d, 0xffab,
+ 0xfff2, 0x0067, 0x0095, 0x006a, 0xfff2, 0xff80,
+ 0xff60, 0xff53, 0xff2c, 0xff1a, 0xff2a, 0xff4f,
+ 0xff92, 0xffe0, 0x000d, 0x000b, 0xffe4, 0xffa5,
+ 0xff61, 0xff57, 0xffa6, 0xffe4, 0xffd0, 0xffcf,
+ 0xfff9, 0xffe4, 0xff6e, 0xfe8e, 0xfd48, 0xfc0f,
+ 0xfafe, 0xf9b5, 0xf869, 0xf79e, 0xf774, 0xf7df,
+ 0xf870, 0xf89a, 0xf887, 0xf89e, 0xf8db, 0xf917,
+ 0xf93a, 0xf948, 0xf953, 0xf97b, 0xfa15, 0xfb35,
+ 0xfc50, 0xfcd7, 0xfcb6, 0xfc1a, 0xfb3e, 0xfa68,
+ 0xf9ef, 0xfa09, 0xfa81, 0xfb02, 0xfb5d, 0xfb76,
+ 0xfb58, 0xfb52, 0xfb8f, 0xfbe2, 0xfbfe, 0xfbe2,
+ 0xfbd4, 0xfc0c, 0xfc8b, 0xfd36, 0xfdf1, 0xfea3,
+ 0xff2e, 0xff88, 0xffbd, 0xffd3, 0xffbd, 0xff79,
+ 0xff23, 0xff07, 0xff4c, 0xffa8, 0xff98, 0xfee1,
+ 0xfdc8, 0xfc9c, 0xfb36, 0xf977, 0xf7ef, 0xf769,
+ 0xf81a, 0xf97a, 0xfad2, 0xfbc9, 0xfc3e, 0xfc3a,
+ 0xfc25, 0xfc42, 0xfc54, 0xfc58, 0xfcbd, 0xfdb1,
+ 0xfed5, 0xffc1, 0x0050, 0x0072, 0x0012, 0xff45,
+ 0xfe41, 0xfd59, 0xfcf6, 0xfd2d, 0xfdc1, 0xfe92,
+ 0xff44, 0xff3b, 0xfe9b, 0xfe2d, 0xfe2b, 0xfe27,
+ 0xfdbe, 0xfcfe, 0xfc5b, 0xfc2a, 0xfc5b, 0xfcd5,
+ 0xfd9d, 0xfe93, 0xff6b, 0xfff3, 0x0051, 0x00a5,
+ 0x00b8, 0x008e, 0x0090, 0x00da, 0x011f, 0x0116,
+ 0x0079, 0xff69, 0xfe71, 0xfda2, 0xfc94, 0xfb59,
+ 0xfa68, 0xfa26, 0xfa9f, 0xfb4c, 0xfbaf, 0xfbd8,
+ 0xfbf9, 0xfc48, 0xfce2, 0xfd72, 0xfdbb, 0xfe21,
+ 0xfef7, 0x0037, 0x01aa, 0x02cf, 0x035b, 0x036d,
+ 0x0307, 0x0229, 0x0124, 0x0052, 0xfff9, 0x003a,
+ 0x00d4, 0x0148, 0x0137, 0x00a8, 0x0032, 0x005f,
+ 0x00f0, 0x0158, 0x0148, 0x00d4, 0x0060, 0x000a,
+ 0xffb9, 0xffc9, 0x0074, 0x0142, 0x01e6, 0x026f,
+ 0x02b3, 0x02b2, 0x02aa, 0x02b9, 0x030f, 0x03be,
+ 0x043c, 0x041b, 0x0384, 0x02a5, 0x018f, 0x006a,
+ 0xff58, 0xfe6b, 0xfdca, 0xfd89, 0xfda4, 0xfdee,
+ 0xfe1c, 0xfe40, 0xfeb2, 0xff4f, 0xffb2, 0xffd4,
+ 0xffbf, 0xff94, 0xffe2, 0x00fc, 0x0273, 0x0397,
+ 0x0413, 0x03ff, 0x0393, 0x02ed, 0x0231, 0x01a7,
+ 0x01bd, 0x027b, 0x0336, 0x0363, 0x031d, 0x029f,
+ 0x0238, 0x0223, 0x0240, 0x027d, 0x02be, 0x02af,
+ 0x026b, 0x0246, 0x024e, 0x029b, 0x030d, 0x0364,
+ 0x03b9, 0x03f3, 0x03ed, 0x0404, 0x043a, 0x0449,
+ 0x0471, 0x04b4, 0x04ae, 0x0450, 0x03c1, 0x0307,
+ 0x0219, 0x00e7, 0xff85, 0xfe32, 0xfd2e, 0xfcc5,
+ 0xfd1e, 0xfddb, 0xfe42, 0xfe1e, 0xfde9, 0xfe0f,
+ 0xfe9c, 0xff47, 0xffa0, 0xffb7, 0xffeb, 0x0050,
+ 0x00d9, 0x0135, 0x011f, 0x0106, 0x0104, 0x00b0,
+ 0x002f, 0xffae, 0xff48, 0xff86, 0x0016, 0x001c,
+ 0xff8d, 0xfea6, 0xfdb2, 0xfd25, 0xfd29, 0xfdc7,
+ 0xfe88, 0xfeac, 0xfe6b, 0xfe25, 0xfdcf, 0xfde3,
+ 0xfe82, 0xff32, 0xffe7, 0x0077, 0x0097, 0x0068,
+ 0x0006, 0xffcc, 0x0015, 0x0089, 0x00d7, 0x00c7,
+ 0x0006, 0xfede, 0xfdb0, 0xfc6f, 0xfb3f, 0xfa41,
+ 0xf998, 0xf9b5, 0xfa8b, 0xfb5c, 0xfb86, 0xfb1f,
+ 0xfae6, 0xfb2c, 0xfbb9, 0xfc83, 0xfd5b, 0xfe1c,
+ 0xff02, 0xffe7, 0x005b, 0x004a, 0xffe9, 0xff9f,
+ 0xffc1, 0x0047, 0x00e7, 0x012f, 0x015d, 0x0206,
+ 0x02b2, 0x02c6, 0x0267, 0x01d9, 0x018f, 0x01c0,
+ 0x01e9, 0x0209, 0x024e, 0x025a, 0x023e, 0x0244,
+ 0x0278, 0x0302, 0x03be, 0x048c, 0x057d, 0x0605,
+ 0x05d3, 0x0565, 0x052c, 0x057d, 0x0627, 0x0660,
+ 0x060d, 0x0565, 0x046b, 0x0394, 0x0311, 0x0271,
+ 0x0182, 0x0033, 0xfee4, 0xfe49, 0xfe46, 0xfe49,
+ 0xfe14, 0xfd94, 0xfd07, 0xfca8, 0xfc76, 0xfcaf,
+ 0xfd52, 0xfe06, 0xfecf, 0xff75, 0xff6b, 0xfeb8,
+ 0xfdd7, 0xfd4e, 0xfd74, 0xfdde, 0xfdd8, 0xfd52,
+ 0xfce8, 0xfd14, 0xfd88, 0xfdbd, 0xfd94, 0xfd38,
+ 0xfd0a, 0xfd2a, 0xfd3c, 0xfd39, 0xfd3b, 0xfcdc,
+ 0xfc3b, 0xfbdc, 0xfb94, 0xfb68, 0xfbe6, 0xfcf7,
+ 0xfe16, 0xfed9, 0xfef3, 0xfea0, 0xfe8d, 0xff03,
+ 0xffb7, 0x001b, 0xfffc, 0xffad, 0xff68, 0xff07,
+ 0xfeac, 0xfe8c, 0xfe48, 0xfd82, 0xfcaa, 0xfc41,
+ 0xfc27, 0xfc2d, 0xfc2c, 0xfbf6, 0xfbe0, 0xfc46,
+ 0xfcfa, 0xfddb, 0xfee0, 0xffd1, 0x00af, 0x0179,
+ 0x01f2, 0x021a, 0x021f, 0x0240, 0x02b1, 0x0316,
+ 0x0327, 0x0330, 0x0359, 0x0391, 0x03de, 0x040e,
+ 0x0413, 0x0433, 0x0497, 0x0507, 0x0516, 0x04d5,
+ 0x04c2, 0x04ca, 0x04b8, 0x04c7, 0x04d3, 0x04c6,
+ 0x0528, 0x05f5, 0x0695, 0x06d4, 0x06af, 0x0631,
+ 0x05a1, 0x0559, 0x057c, 0x05ae, 0x0597, 0x055c,
+ 0x04d4, 0x03a6, 0x023f, 0x0132, 0x008b, 0x0030,
+ 0x0014, 0x001e, 0xfffe, 0xff64, 0xfe9d, 0xfe12,
+ 0xfdcf, 0xfdfc, 0xfea5, 0xff66, 0x000d, 0x009c,
+ 0x00db, 0x00e2, 0x0107, 0x00fd, 0x006a, 0xffd7,
+ 0xffc7, 0xfff3, 0x0013, 0x0027, 0x0011, 0xffe4,
+ 0xffcb, 0xffc1, 0xfff0, 0x005e, 0x00ad, 0x00c6,
+ 0x00ba, 0x005f, 0xffda, 0xff81, 0xff8a, 0xfffc,
+ 0x0077, 0x00bb, 0x011e, 0x01c0, 0x026f, 0x030b,
+ 0x0335, 0x02ce, 0x0286, 0x02bc, 0x033a, 0x03ef,
+ 0x04be, 0x054d, 0x056d, 0x051d, 0x0488, 0x0408,
+ 0x03b7, 0x0365, 0x0317, 0x02fd, 0x031b, 0x035f,
+ 0x039c, 0x037c, 0x032a, 0x0350, 0x040f, 0x0516,
+ 0x063e, 0x0750, 0x0822, 0x08d3, 0x093a, 0x0911,
+ 0x089e, 0x0876, 0x08ed, 0x09c2, 0x0a74, 0x0ae9,
+ 0x0b20, 0x0afa, 0x0ab9, 0x0abc, 0x0af5, 0x0b57,
+ 0x0bdc, 0x0c38, 0x0c3d, 0x0bf7, 0x0b7a, 0x0af0,
+ 0x0a99, 0x0a8b, 0x0a99, 0x0aca, 0x0b65, 0x0c2e,
+ 0x0caf, 0x0cc0, 0x0c2d, 0x0b11, 0x0a30, 0x09dc,
+ 0x09cc, 0x09ec, 0x0a19, 0x0a1b, 0x09e4, 0x0953,
+ 0x086f, 0x0784, 0x06b5, 0x0603, 0x0574, 0x04e6,
+ 0x044e, 0x03d3, 0x037a, 0x0326, 0x02e6, 0x02f2,
+ 0x0330, 0x0359, 0x03a5, 0x0446, 0x04dc, 0x0514,
+ 0x04fb, 0x04b3, 0x044b, 0x03c2, 0x0374, 0x03cf,
+ 0x048c, 0x0536, 0x05b1, 0x05c5, 0x0564, 0x04f6,
+ 0x04d1, 0x050f, 0x057c, 0x05aa, 0x0596, 0x056c,
+ 0x0520, 0x04e3, 0x04fe, 0x0550, 0x05c7, 0x066a,
+ 0x06fe, 0x0779, 0x0809, 0x088c, 0x08be, 0x0892,
+ 0x0824, 0x07c9, 0x07d3, 0x0824, 0x0871, 0x08a1,
+ 0x08ad, 0x089d, 0x086c, 0x0801, 0x0783, 0x0728,
+ 0x06e5, 0x06a8, 0x0665, 0x0602, 0x0587, 0x0529,
+ 0x051a, 0x0566, 0x05e3, 0x0679, 0x071c, 0x0770,
+ 0x074a, 0x0742, 0x07ae, 0x07fb, 0x07c2, 0x0751,
+ 0x0730, 0x07aa, 0x0869, 0x08cc, 0x08be, 0x0883,
+ 0x0844, 0x0844, 0x0882, 0x0891, 0x0853, 0x07f2,
+ 0x07a0, 0x0791, 0x0787, 0x074f, 0x0744, 0x0775,
+ 0x07b0, 0x0821, 0x088f, 0x08a8, 0x08df, 0x096d,
+ 0x09c6, 0x0991, 0x08fc, 0x0856, 0x07e6, 0x07b8,
+ 0x0789, 0x0718, 0x0692, 0x0627, 0x05b2, 0x0544,
+ 0x04f0, 0x0481, 0x040b, 0x0385, 0x02a2, 0x01a9,
+ 0x00d5, 0x002b, 0x002d, 0x00d6, 0x0172, 0x01ec,
+ 0x0227, 0x01bc, 0x00fa, 0x0054, 0xffe2, 0xffb1,
+ 0xffab, 0xffc3, 0x0034, 0x0117, 0x0225, 0x02d3,
+ 0x02c2, 0x0241, 0x01e1, 0x01fa, 0x027c, 0x02cb,
+ 0x02b2, 0x02a9, 0x02af, 0x0265, 0x01ec, 0x01a0,
+ 0x01af, 0x01fc, 0x0226, 0x022d, 0x0276, 0x02f7,
+ 0x0377, 0x03fa, 0x0463, 0x0493, 0x04b4, 0x04ca,
+ 0x04d7, 0x0505, 0x0518, 0x04d0, 0x0473, 0x0421,
+ 0x03db, 0x03cf, 0x03dd, 0x03e8, 0x03eb, 0x0377,
+ 0x0268, 0x010f, 0xffa6, 0xfede, 0xff6f, 0x00d2,
+ 0x0245, 0x0374, 0x03e6, 0x0386, 0x02f1, 0x0291,
+ 0x0264, 0x0253, 0x024e, 0x0271, 0x02ec, 0x03c8,
+ 0x04d5, 0x05a8, 0x05dd, 0x057a, 0x04f7, 0x0499,
+ 0x0459, 0x043e, 0x0448, 0x045c, 0x0455, 0x0409,
+ 0x039f, 0x0359, 0x0329, 0x0331, 0x03a4, 0x0420,
+ 0x045b, 0x045c, 0x0409, 0x038f, 0x034c, 0x033f,
+ 0x032a, 0x02d8, 0x0278, 0x022f, 0x01b0, 0x0123,
+ 0x00f3, 0x00ed, 0x00f0, 0x00f0, 0x00a9, 0x0063,
+ 0x002b, 0xff6e, 0xfe39, 0xfce3, 0xfb82, 0xfa8a,
+ 0xfa54, 0xfac5, 0xfb8d, 0xfc23, 0xfc3d, 0xfbd6,
+ 0xfb02, 0xfa33, 0xf9b4, 0xf970, 0xf976, 0xf9c3,
+ 0xfa66, 0xfb64, 0xfc35, 0xfc9f, 0xfcd2, 0xfca5,
+ 0xfc41, 0xfc0b, 0xfbe3, 0xfbc8, 0xfbd1, 0xfbd6,
+ 0xfbe5, 0xfbd4, 0xfb81, 0xfb4a, 0xfb4d, 0xfb9b,
+ 0xfc8a, 0xfdb5, 0xfe89, 0xff22, 0xff6c, 0xff3a,
+ 0xff06, 0xff2f, 0xff6c, 0xff94, 0xffb5, 0xff88,
+ 0xfee2, 0xfe3a, 0xfe2f, 0xfef2, 0x0005, 0x0094,
+ 0x0086, 0x0042, 0xffcb, 0xff38, 0xfe9b, 0xfdc3,
+ 0xfd10, 0xfcf7, 0xfd47, 0xfdde, 0xfe91, 0xff06,
+ 0xff49, 0xff7b, 0xff88, 0xff72, 0xff3f, 0xff0e,
+ 0xff2a, 0xffda, 0x0139, 0x02c3, 0x03ba, 0x0404,
+ 0x03d2, 0x0366, 0x0311, 0x02bf, 0x0247, 0x01d0,
+ 0x0175, 0x0145, 0x0133, 0x00ea, 0x005b, 0xffdf,
+ 0xffcd, 0x0043, 0x00fb, 0x0190, 0x01ce, 0x01af,
+ 0x015f, 0x010b, 0x00d2, 0x00d4, 0x00f0, 0x0104,
+ 0x00fd, 0x0065, 0xff1a, 0xfddb, 0xfd59, 0xfdb7,
+ 0xfe81, 0xff05, 0xff18, 0xfee9, 0xfe73, 0xfdb1,
+ 0xfcbf, 0xfbd0, 0xfb20, 0xfab4, 0xfa8b, 0xfaa5,
+ 0xfae1, 0xfb0e, 0xfaea, 0xfa7e, 0xfa0c, 0xf965,
+ 0xf898, 0xf855, 0xf8ce, 0xf9d9, 0xfb52, 0xfc8f,
+ 0xfd18, 0xfd2d, 0xfd26, 0xfd40, 0xfd7f, 0xfd9a,
+ 0xfd75, 0xfd13, 0xfc80, 0xfbdf, 0xfb37, 0xfac6,
+ 0xfabc, 0xfab5, 0xfaa4, 0xfb0d, 0xfbf9, 0xfcfd,
+ 0xfdb1, 0xfdcc, 0xfd90, 0xfd6f, 0xfd7f, 0xfdab,
+ 0xfdeb, 0xfe5e, 0xff03, 0xff2d, 0xfe66, 0xfd8c,
+ 0xfda1, 0xfe7a, 0xff57, 0xffb1, 0xff82, 0xff0e,
+ 0xfe69, 0xfdad, 0xfd15, 0xfc88, 0xfbfc, 0xfbcb,
+ 0xfc00, 0xfc6e, 0xfcff, 0xfd63, 0xfd90, 0xfdd3,
+ 0xfdd4, 0xfd21, 0xfc19, 0xfb98, 0xfc5a, 0xfe2f,
+ 0x0007, 0x013e, 0x01b4, 0x0180, 0x0142, 0x0154,
+ 0x0175, 0x0190, 0x0193, 0x013c, 0x0094, 0xffdc,
+ 0xff3c, 0xfec6, 0xfe89, 0xfe89, 0xfeab, 0xff1d,
+ 0xfffb, 0x0099, 0x0090, 0x0042, 0xfff9, 0xffda,
+ 0xffe9, 0xffed, 0x0010, 0x0051, 0x0016, 0xff25,
+ 0xfdcc, 0xfccb, 0xfce5, 0xfdc3, 0xfe9d, 0xff3c,
+ 0xff75, 0xff34, 0xfead, 0xfdf4, 0xfd28, 0xfc42,
+ 0xfb44, 0xfa9d, 0xfa74, 0xfa9f, 0xfb09, 0xfb51,
+ 0xfb64, 0xfb66, 0xfafe, 0xfa28, 0xf94d, 0xf8cb,
+ 0xf92c, 0xfa4e, 0xfb93, 0xfce5, 0xfdbe, 0xfdb2,
+ 0xfd9e, 0xfdee, 0xfe35, 0xfe46, 0xfdd2, 0xfcf2,
+ 0xfc4b, 0xfbe0, 0xfb7e, 0xfb1e, 0xfa9f, 0xfa4a,
+ 0xfa70, 0xfaf9, 0xfbd3, 0xfc93, 0xfcbc, 0xfc88,
+ 0xfc5c, 0xfc6f, 0xfcf3, 0xfde8, 0xff34, 0x006a,
+ 0x00d1, 0x0028, 0xfeda, 0xfdc9, 0xfdc8, 0xfead,
+ 0xffcf, 0x00c9, 0x013d, 0x0130, 0x0106, 0x00ad,
+ 0xffee, 0xfef7, 0xfe38, 0xfe26, 0xfe8e, 0xfea9,
+ 0xfe56, 0xfe28, 0xfe95, 0xff6b, 0xffd7, 0xff61,
+ 0xfea5, 0xfe95, 0xff91, 0x012f, 0x02a6, 0x038c,
+ 0x03dd, 0x03c5, 0x03c1, 0x0415, 0x046e, 0x048d,
+ 0x045b, 0x03cb, 0x0326, 0x02b7, 0x0276, 0x0263,
+ 0x0279, 0x0285, 0x026a, 0x024a, 0x0262, 0x0292,
+ 0x0276, 0x0222, 0x01cc, 0x015e, 0x012f, 0x01ba,
+ 0x02bd, 0x03ae, 0x03f7, 0x0329, 0x01cd, 0x00ba,
+ 0x0041, 0x008d, 0x0168, 0x0234, 0x029a, 0x027e,
+ 0x0202, 0x0161, 0x0074, 0xff5d, 0xfeac, 0xfe6f,
+ 0xfe48, 0xfde4, 0xfd3b, 0xfd02, 0xfdaa, 0xfe8a,
+ 0xfeba, 0xfdde, 0xfc8c, 0xfbfb, 0xfca6, 0xfe33,
+ 0x0014, 0x0175, 0x01dc, 0x01c3, 0x01c0, 0x01fd,
+ 0x023b, 0x0222, 0x01c5, 0x013f, 0x0081, 0xffdc,
+ 0xffa6, 0xffdf, 0x006c, 0x00f8, 0x0123, 0x010f,
+ 0x0116, 0x0111, 0x009d, 0xffea, 0xff78, 0xff54,
+ 0xff7e, 0x0043, 0x0180, 0x02ac, 0x0353, 0x0318,
+ 0x022b, 0x0142, 0x00e8, 0x013a, 0x01f4, 0x02b1,
+ 0x0338, 0x036b, 0x0356, 0x0307, 0x0254, 0x0183,
+ 0x0119, 0x00e6, 0x007d, 0xffe7, 0xff81, 0xfff0,
+ 0x012d, 0x0230, 0x0241, 0x017f, 0x0073, 0xfff9,
+ 0x007e, 0x01be, 0x0350, 0x0482, 0x04cd, 0x0490,
+ 0x0448, 0x0424, 0x044e, 0x048f, 0x048e, 0x043b,
+ 0x037a, 0x0291, 0x0228, 0x0250, 0x02c1, 0x035a,
+ 0x03b9, 0x03b1, 0x036e, 0x02cc, 0x01e5, 0x0132,
+ 0x00b9, 0x0045, 0x0005, 0x0062, 0x0173, 0x028b,
+ 0x02da, 0x024e, 0x0144, 0x004a, 0xffef, 0x000c,
+ 0x003e, 0x0080, 0x00b5, 0x00af, 0x007c, 0x001a,
+ 0xff92, 0xff0c, 0xfe87, 0xfdcf, 0xfcaf, 0xfb59,
+ 0xfa8a, 0xfabe, 0xfbb5, 0xfccf, 0xfd53, 0xfd00,
+ 0xfc54, 0xfbfc, 0xfc6b, 0xfda2, 0xff08, 0xfff6,
+ 0x004a, 0x0043, 0x0027, 0x002e, 0x007d, 0x00fd,
+ 0x0141, 0x00d9, 0xffcd, 0xfeaf, 0xfe2a, 0xfe67,
+ 0xff2c, 0x002e, 0x00f3, 0x010a, 0x0078, 0xff8c,
+ 0xfecf, 0xfeb2, 0xfedc, 0xfeb6, 0xfe75, 0xfec0,
+ 0xffaf, 0x0089, 0x00a6, 0x002c, 0xff92, 0xff3a,
+ 0xff6b, 0xffd3, 0x000c, 0x0069, 0x0108, 0x0187,
+ 0x01c0, 0x019a, 0x0103, 0x0031, 0xff4b, 0xfe5f,
+ 0xfd8c, 0xfce9, 0xfcbb, 0xfd29, 0xfdd7, 0xfe77,
+ 0xfecb, 0xfe92, 0xfe27, 0xfe12, 0xfe7c, 0xff70,
+ 0x009a, 0x0186, 0x022d, 0x0273, 0x0227, 0x01b5,
+ 0x0195, 0x01d6, 0x0232, 0x01fc, 0x0100, 0xfff2,
+ 0xff7a, 0xffcf, 0x00af, 0x0175, 0x01c2, 0x0193,
+ 0x00fa, 0x004f, 0xffd6, 0xff90, 0xff7c, 0xff66,
+ 0xff46, 0xff8a, 0x001e, 0x0071, 0x0051, 0xffd3,
+ 0xff2c, 0xfec8, 0xfec3, 0xfed4, 0xfed0, 0xfeef,
+ 0xff7c, 0x0032, 0x007b, 0x001e, 0xff43, 0xfe50,
+ 0xfdb8, 0xfd52, 0xfca9, 0xfbd6, 0xfb67, 0xfba5,
+ 0xfc4b, 0xfcd8, 0xfd07, 0xfcd8, 0xfc8c, 0xfc73,
+ 0xfca3, 0xfd3d, 0xfe64, 0xffce, 0x00fd, 0x0186,
+ 0x015c, 0x011d, 0x0155, 0x01bc, 0x01bf, 0x0104,
+ 0xffac, 0xfe85, 0xfe53, 0xff23, 0x0071, 0x0178,
+ 0x01b4, 0x0132, 0x0045, 0xff72, 0xff1f, 0xff44,
+ 0xffb7, 0x0035, 0x0077, 0x00ae, 0x011d, 0x0198,
+ 0x01f1, 0x0205, 0x01af, 0x013d, 0x00f4, 0x00be,
+ 0x00b1, 0x0110, 0x01e7, 0x02fb, 0x03bc, 0x03b4,
+ 0x02fc, 0x0208, 0x0155, 0x00e8, 0x0034, 0xff38,
+ 0xfe96, 0xfe75, 0xfe9f, 0xff06, 0xff78, 0xffe2,
+ 0x005e, 0x00c2, 0x0101, 0x016b, 0x0223, 0x02e5,
+ 0x033b, 0x02f3, 0x027a, 0x0261, 0x02c8, 0x0342,
+ 0x0334, 0x027b, 0x0172, 0x0086, 0x0020, 0x005d,
+ 0x00d9, 0x0137, 0x0150, 0x010f, 0x008c, 0xffee,
+ 0xff4d, 0xfee0, 0xfee0, 0xff49, 0xffd8, 0x0046,
+ 0x0086, 0x0098, 0x006e, 0x0020, 0xffbb, 0xff2d,
+ 0xfe8b, 0xfe0f, 0xfdf5, 0xfe5a, 0xff1b, 0xfff5,
+ 0x009a, 0x00cc, 0x008e, 0xfff9, 0xff40, 0xfe8b,
+ 0xfdaf, 0xfccd, 0xfc6d, 0xfc88, 0xfcde, 0xfd82,
+ 0xfe42, 0xfec0, 0xfef1, 0xfee6, 0xfefc, 0xff97,
+ 0x0090, 0x0183, 0x0216, 0x0231, 0x0222, 0x020a,
+ 0x01df, 0x01d4, 0x01de, 0x01af, 0x0145, 0x00d1,
+ 0x00ba, 0x0148, 0x0209, 0x0269, 0x0241, 0x01be,
+ 0x015a, 0x0133, 0x00d7, 0x0057, 0x0033, 0x007e,
+ 0x010b, 0x018f, 0x01c6, 0x01d8, 0x01f6, 0x021e,
+ 0x0228, 0x019d, 0x0088, 0xffbc, 0xff94, 0xfffa,
+ 0x00fe, 0x024b, 0x035c, 0x03f5, 0x03c2, 0x02ce,
+ 0x0197, 0x0044, 0xfee8, 0xfdcf, 0xfd28, 0xfd19,
+ 0xfda3, 0xfe97, 0xffd4, 0x00ee, 0x017a, 0x01aa,
+ 0x01d5, 0x023f, 0x0315, 0x03e2, 0x044e, 0x049d,
+ 0x04c2, 0x049c, 0x0470, 0x046e, 0x049e, 0x04dc,
+ 0x04e4, 0x04d0, 0x04dc, 0x0505, 0x053b, 0x052a,
+ 0x048b, 0x03c3, 0x0343, 0x0312, 0x0306, 0x02f7,
+ 0x0310, 0x0395, 0x0441, 0x04a8, 0x04bd, 0x04ba,
+ 0x04de, 0x052e, 0x0550, 0x04c8, 0x03be, 0x030b,
+ 0x030c, 0x036d, 0x03fb, 0x0493, 0x04fa, 0x0512,
+ 0x04c8, 0x043d, 0x03aa, 0x02ee, 0x020b, 0x0135,
+ 0x008d, 0x0059, 0x00a4, 0x0130, 0x0203, 0x02da,
+ 0x0345, 0x037d, 0x03d0, 0x0462, 0x0541, 0x05f1,
+ 0x0630, 0x065d, 0x0681, 0x0698, 0x06c2, 0x06a4,
+ 0x061a, 0x058a, 0x054b, 0x0595, 0x0629, 0x0689,
+ 0x06a8, 0x066d, 0x05b6, 0x04e9, 0x0465, 0x0437,
+ 0x0460, 0x0481, 0x0453, 0x0438, 0x046b, 0x04b7,
+ 0x04eb, 0x04eb, 0x04c5, 0x04b6, 0x04c5, 0x04c6,
+ 0x04a3, 0x045e, 0x041e, 0x0424, 0x0482, 0x0532,
+ 0x0609, 0x0685, 0x0655, 0x05a2, 0x0492, 0x035f,
+ 0x0263, 0x01b7, 0x0185, 0x01f5, 0x02b1, 0x0380,
+ 0x0463, 0x04ef, 0x04f6, 0x04e4, 0x050b, 0x058b,
+ 0x062d, 0x0689, 0x06b2, 0x06dd, 0x070a, 0x0759,
+ 0x07bc, 0x07e3, 0x07d1, 0x07c5, 0x07e7, 0x0820,
+ 0x0824, 0x07fd, 0x0806, 0x0825, 0x07ec, 0x0735,
+ 0x0642, 0x0588, 0x054f, 0x056e, 0x0591, 0x0595,
+ 0x0596, 0x05b8, 0x05f9, 0x0652, 0x06b4, 0x06f3,
+ 0x06f5, 0x06d9, 0x06ac, 0x063b, 0x05a9, 0x057f,
+ 0x05f7, 0x06cf, 0x0783, 0x078d, 0x06d6, 0x05b6,
+ 0x0486, 0x038a, 0x02ac, 0x01be, 0x012e, 0x0155,
+ 0x01e2, 0x029e, 0x0358, 0x03a2, 0x0387, 0x0379,
+ 0x03b9, 0x043b, 0x04ad, 0x04c0, 0x0484, 0x043a,
+ 0x041b, 0x0441, 0x047f, 0x048b, 0x045d, 0x0447,
+ 0x0485, 0x04dd, 0x04ec, 0x04a5, 0x0445, 0x03e7,
+ 0x034b, 0x0272, 0x01e5, 0x01d6, 0x01ff, 0x022b,
+ 0x0224, 0x01e9, 0x01cf, 0x01eb, 0x022a, 0x029c,
+ 0x030c, 0x0338, 0x0342, 0x0357, 0x0352, 0x030c,
+ 0x02c1, 0x02d4, 0x035c, 0x0438, 0x0513, 0x055a,
+ 0x04c5, 0x03ab, 0x0288, 0x01ac, 0x012c, 0x00e4,
+ 0x00db, 0x013a, 0x01e6, 0x0299, 0x0331, 0x0392,
+ 0x03c0, 0x03f6, 0x045a, 0x04e8, 0x0564, 0x0563,
+ 0x04e6, 0x0456, 0x03f1, 0x041a, 0x04f9, 0x05d3,
+ 0x0660, 0x0709, 0x078a, 0x079c, 0x0772, 0x06fd,
+ 0x065e, 0x05b7, 0x04a8, 0x0372, 0x02c5, 0x02bf,
+ 0x033f, 0x03c9, 0x03e2, 0x03c4, 0x0386, 0x0312,
+ 0x02db, 0x0300, 0x033b, 0x0373, 0x0368, 0x02f7,
+ 0x024a, 0x018e, 0x013b, 0x0183, 0x01f4, 0x026b,
+ 0x02e5, 0x0303, 0x029a, 0x018e, 0xfff4, 0xfe67,
+ 0xfd34, 0xfc57, 0xfc14, 0xfc65, 0xfd03, 0xfde7,
+ 0xfebc, 0xff0d, 0xfef5, 0xfea9, 0xfe68, 0xfe9e,
+ 0xff05, 0xfef6, 0xfe88, 0xfe12, 0xfdc1, 0xfdd9,
+ 0xfe19, 0xfe15, 0xfe18, 0xfe69, 0xfee5, 0xff69,
+ 0xffb2, 0xffb5, 0xff9d, 0xff19, 0xfe1e, 0xfd48,
+ 0xfce0, 0xfcda, 0xfd15, 0xfd36, 0xfd32, 0xfd3d,
+ 0xfd5c, 0xfd86, 0xfd96, 0xfdb3, 0xfe46, 0xfef0,
+ 0xff30, 0xff12, 0xfe85, 0xfddc, 0xfdd7, 0xfe6e,
+ 0xff37, 0xffeb, 0x0055, 0x009b, 0x0094, 0xffc9,
+ 0xfe8f, 0xfd82, 0xfcc7, 0xfc7a, 0xfc86, 0xfcd5,
+ 0xfd99, 0xfea2, 0xff8c, 0x004c, 0x00b4, 0x00af,
+ 0x00c7, 0x0158, 0x01eb, 0x0203, 0x01dd, 0x01e2,
+ 0x021e, 0x027d, 0x02dc, 0x031b, 0x0359, 0x03b3,
+ 0x0401, 0x041b, 0x0403, 0x03c3, 0x0348, 0x02a8,
+ 0x0232, 0x01ff, 0x0214, 0x027b, 0x02bc, 0x0276,
+ 0x01f5, 0x0179, 0x011c, 0x0100, 0x0123, 0x0171,
+ 0x01ae, 0x01a6, 0x016b, 0x00dd, 0x001e, 0xffd2,
+ 0xffec, 0x002e, 0x00b4, 0x00f9, 0x00e9, 0x012e,
+ 0x0153, 0x0097, 0xff51, 0xfdde, 0xfc86, 0xfba1,
+ 0xfb42, 0xfb86, 0xfc23, 0xfc72, 0xfc70, 0xfc54,
+ 0xfc41, 0xfc94, 0xfd44, 0xfde1, 0xfe1d, 0xfdbc,
+ 0xfd14, 0xfca6, 0xfc5e, 0xfc53, 0xfcb4, 0xfd40,
+ 0xfde3, 0xfe7c, 0xfebc, 0xfee9, 0xff1c, 0xfed6,
+ 0xfde6, 0xfc98, 0xfb84, 0xfb25, 0xfb5d, 0xfbe0,
+ 0xfc82, 0xfcf2, 0xfd1e, 0xfd1e, 0xfcf3, 0xfcc0,
+ 0xfca2, 0xfc96, 0xfca6, 0xfcb5, 0xfc8e, 0xfc41,
+ 0xfc1e, 0xfc8b, 0xfda6, 0xff2f, 0x00c5, 0x01dc,
+ 0x0200, 0x0157, 0x003a, 0xff1b, 0xfe60, 0xfdf4,
+ 0xfdb0, 0xfda3, 0xfdc7, 0xfe25, 0xfea3, 0xfed0,
+ 0xfeba, 0xfed1, 0xff45, 0x0032, 0x0151, 0x01e3,
+ 0x01a7, 0x0102, 0x0076, 0x0045, 0x004c, 0x006d,
+ 0x00dd, 0x01da, 0x035f, 0x04c0, 0x0524, 0x04a1,
+ 0x03c7, 0x02b1, 0x016d, 0x0047, 0xffb0, 0xffd1,
+ 0x0026, 0x0067, 0x00f3, 0x01be, 0x0235, 0x0211,
+ 0x0180, 0x010e, 0x00f8, 0x00de, 0x00a8, 0x0085,
+ 0x0072, 0x006f, 0x007a, 0x00b0, 0x0131, 0x01c6,
+ 0x0242, 0x0293, 0x028b, 0x0241, 0x017e, 0x000b,
+ 0xfea4, 0xfd98, 0xfc8d, 0xfc07, 0xfc66, 0xfd50,
+ 0xfe92, 0xff5b, 0xff1c, 0xfed1, 0xff04, 0xff1a,
+ 0xfecc, 0xfe4e, 0xfdf1, 0xfdce, 0xfe09, 0xfecd,
+ 0xff21, 0xfe77, 0xfe49, 0xff4f, 0x008d, 0x0159,
+ 0x0163, 0x0116, 0x014a, 0x0159, 0x0090, 0xff58,
+ 0xfde5, 0xfcb5, 0xfc6f, 0xfcf3, 0xfe30, 0xff8e,
+ 0xffd9, 0xff6b, 0xff5b, 0xff8f, 0xffaf, 0xffbf,
+ 0xffdf, 0x002d, 0x008b, 0x00bc, 0x0089, 0x0021,
+ 0x003d, 0x00f7, 0x01d8, 0x0277, 0x0203, 0x0093,
+ 0xffaa, 0xffa8, 0xffdc, 0x001f, 0x001e, 0xff5c,
+ 0xfe46, 0xfdd1, 0xfe6e, 0xffbe, 0x0128, 0x026a,
+ 0x0376, 0x0473, 0x0504, 0x0454, 0x02c1, 0x016e,
+ 0x00cd, 0x0109, 0x01dd, 0x029c, 0x036f, 0x04bb,
+ 0x05fa, 0x0646, 0x054d, 0x03e1, 0x02ad, 0x017a,
+ 0x00c5, 0x00fc, 0x0116, 0x008d, 0xfffd, 0xffc5,
+ 0x0012, 0x0093, 0x00a0, 0x0055, 0xffff, 0xffae,
+ 0xff9b, 0xff9a, 0xff56, 0xff0a, 0xff04, 0xff2c,
+ 0xff59, 0xffb9, 0x003c, 0x001b, 0xff53, 0xfeb6,
+ 0xfe37, 0xfdd4, 0xfdfd, 0xfe44, 0xfe96, 0xff4d,
+ 0xffba, 0xffe4, 0x0091, 0x00eb, 0x0018, 0xff08,
+ 0xfe7c, 0xfe16, 0xfd42, 0xfbfc, 0xfacb, 0xfa42,
+ 0xfaed, 0xfcdc, 0xff30, 0x010b, 0x0206, 0x0226,
+ 0x022c, 0x0247, 0x01bc, 0x00b3, 0xff9a, 0xfe71,
+ 0xfe03, 0xfebe, 0xffb9, 0x0042, 0x0009, 0xfefc,
+ 0xfdd6, 0xfcfa, 0xfc4d, 0xfc47, 0xfd32, 0xfee1,
+ 0x00c9, 0x016d, 0x0041, 0xfec1, 0xfdd4, 0xfd4b,
+ 0xfd3f, 0xfd79, 0xfdc4, 0xfeed, 0x0173, 0x047d,
+ 0x06a6, 0x06ef, 0x0547, 0x0283, 0xffdd, 0xfe1f,
+ 0xfd37, 0xfce9, 0xfd06, 0xfd2d, 0xfe01, 0x0041,
+ 0x027e, 0x0370, 0x042b, 0x0519, 0x0566, 0x0553,
+ 0x0512, 0x040c, 0x0282, 0x00eb, 0xff80, 0xff3a,
+ 0x00bf, 0x0325, 0x052c, 0x063e, 0x065c, 0x05fb,
+ 0x0593, 0x0551, 0x04e5, 0x03cc, 0x0272, 0x01dd,
+ 0x023a, 0x02e9, 0x0336, 0x02be, 0x01ec, 0x0164,
+ 0x0141, 0x0126, 0x004f, 0xfeda, 0xfe1b, 0xfe7e,
+ 0xff95, 0x014b, 0x0278, 0x01c0, 0x0044, 0xffa7,
+ 0xffe2, 0x0064, 0x0073, 0xff57, 0xfda2, 0xfcc2,
+ 0xfd41, 0xfe6a, 0xffb2, 0x014a, 0x0282, 0x0229,
+ 0x0085, 0xfe80, 0xfcdf, 0xfcbe, 0xfde8, 0xfef4,
+ 0xffa3, 0xffda, 0xfe99, 0xfc75, 0xfb5e, 0xfb60,
+ 0xfb17, 0xfa92, 0xfafa, 0xfc80, 0xfe92, 0x009e,
+ 0x01b0, 0x012f, 0xfff0, 0xff10, 0xfedc, 0xff17,
+ 0xff50, 0xff81, 0x0062, 0x01c5, 0x020b, 0x0083,
+ 0xfe4a, 0xfc84, 0xfbbe, 0xfc1f, 0xfd3f, 0xfe69,
+ 0xff18, 0xff85, 0x0076, 0x01bd, 0x0247, 0x01a2,
+ 0x0008, 0xfeca, 0xffdf, 0x0273, 0x03b3, 0x0373,
+ 0x02e1, 0x0185, 0xffad, 0xff4f, 0x0062, 0x00c9,
+ 0x004d, 0x0075, 0x0146, 0x0223, 0x030f, 0x032e,
+ 0x0212, 0x00d3, 0xffad, 0xfe9e, 0xfe99, 0xff1f,
+ 0xff0d, 0xfee8, 0xff5c, 0x009e, 0x02de, 0x0529,
+ 0x0641, 0x0621, 0x055c, 0x043a, 0x0313, 0x02c0,
+ 0x0355, 0x036b, 0x02dd, 0x0334, 0x0476, 0x0521,
+ 0x0499, 0x039d, 0x030a, 0x026b, 0x00dd, 0xfebf,
+ 0xfcba, 0xfb6d, 0xfbb7, 0xfda7, 0x00b5, 0x03a6,
+ 0x043b, 0x029a, 0x0191, 0x01e5, 0x0244, 0x0207,
+ 0x00f1, 0xff3b, 0xfe12, 0xfe14, 0xfe75, 0xfeae,
+ 0xff39, 0xffa9, 0xff2f, 0xff0a, 0x002c, 0x016f,
+ 0x0290, 0x03bc, 0x03ee, 0x037d, 0x0357, 0x0277,
+ 0x0061, 0xfe9d, 0xfe95, 0x0050, 0x0301, 0x065a,
+ 0x0a02, 0x0c36, 0x0b83, 0x088c, 0x0516, 0x0270,
+ 0x009e, 0xffa3, 0x0035, 0x01bc, 0x02e1, 0x03f7,
+ 0x05a4, 0x073c, 0x0753, 0x0525, 0x01d2, 0xfeb3,
+ 0xfbef, 0xfaa5, 0xfc30, 0xff1c, 0x012d, 0x0278,
+ 0x03e3, 0x0501, 0x0509, 0x045c, 0x0344, 0x0164,
+ 0xffb9, 0xff92, 0x0095, 0x022f, 0x03ad, 0x03b9,
+ 0x0291, 0x0164, 0x0000, 0xfeb4, 0xfed0, 0xffb0,
+ 0xff49, 0xfdcd, 0xfd38, 0xfde5, 0xff17, 0x00cf,
+ 0x0240, 0x024d, 0x01a7, 0x00e3, 0x0043, 0x012e,
+ 0x034b, 0x0464, 0x03fc, 0x0245, 0xff5b, 0xfd12,
+ 0xfcef, 0xfe88, 0x014d, 0x0455, 0x05d9, 0x0511,
+ 0x02f2, 0x00c4, 0xff15, 0xfdb2, 0xfc0e, 0xfa3e,
+ 0xf9f1, 0xfc2c, 0xfeb2, 0xff20, 0xfe46, 0xfdb9,
+ 0xfdd3, 0xfe71, 0xff36, 0xff8e, 0xfe5e, 0xfbd6,
+ 0xfb51, 0xfd99, 0xfea2, 0xfda2, 0xfce5, 0xfbcf,
+ 0xfacb, 0xfc4d, 0xff37, 0x010d, 0x0181, 0x0031,
+ 0xfd30, 0xfab5, 0xf98c, 0xf888, 0xf942, 0xfd07,
+ 0x0041, 0x019a, 0x02ec, 0x022a, 0xff5d, 0xfea0,
+ 0xfea6, 0xfd96, 0xfe24, 0xff84, 0xff9d, 0xff8c,
+ 0xfec6, 0xfd73, 0xfe7c, 0x00ff, 0x020b, 0x02b4,
+ 0x0445, 0x0457, 0x02d4, 0x0366, 0x043a, 0x0177,
+ 0xff4a, 0xff8a, 0xfd37, 0xfa30, 0xfa1a, 0xf9c7,
+ 0xfa01, 0xfc8d, 0xfcc8, 0xfb15, 0xfbdc, 0xfdc2,
+ 0xffbb, 0x0289, 0x047f, 0x0499, 0x02bd, 0x007f,
+ 0x0155, 0x03b2, 0x0331, 0x001b, 0xfd88, 0xfde0,
+ 0x008e, 0x0374, 0x05e6, 0x051d, 0x0110, 0x005d,
+ 0x02ab, 0x02a6, 0x0250, 0x02f9, 0x0391, 0x052f,
+ 0x048a, 0x0034, 0xfd60, 0xfd90, 0x0045, 0x05db,
+ 0x0bbc, 0x0f84, 0x0f34, 0x0b48, 0x0869, 0x05f7,
+ 0x025a, 0x01f9, 0x032e, 0x00c3, 0xfd7d, 0xfd2b,
+ 0x0040, 0x05b9, 0x09c4, 0x0957, 0x05aa, 0x0221,
+ 0x0075, 0x00b7, 0x0461, 0x096f, 0x09c8, 0x064f,
+ 0x0484, 0x03f2, 0x0112, 0xfd52, 0xfd2c, 0xfd69,
+ 0xf81c, 0xf27c, 0xf209, 0xf4fa, 0xfa5a, 0xfd21,
+ 0xfa89, 0xfa2c, 0xfd7b, 0x0131, 0x04ac, 0x0308,
+ 0xfd74, 0xf87a, 0xf2ce, 0xf336, 0xfb59, 0xffd1,
+ 0x0118, 0x007b, 0xfada, 0xfa99, 0x00bd, 0x038f,
+ 0x05ee, 0x0509, 0xfc80, 0xf80d, 0xfb1d, 0xfedf,
+ 0x02d5, 0x053b, 0x041e, 0x017b, 0xffb6, 0x01b9,
+ 0x0534, 0x0702, 0x0960, 0x08fb, 0x030e, 0xff9d,
+ 0x0185, 0x035a, 0x0563, 0x0853, 0x078c, 0x0537,
+ 0x0677, 0x067e, 0x040b, 0x0492, 0x05cc, 0x0834,
+ 0x0cbb, 0x0b43, 0x087c, 0x0939, 0x03a2, 0xffbe,
+ 0x04f9, 0x0616, 0x063f, 0x0945, 0x061b, 0x0498,
+ 0x055f, 0x0036, 0xffd5, 0x03d6, 0x0416, 0x0628,
+ 0x0699, 0x041c, 0x0362, 0x005a, 0x0282, 0x09e5,
+ 0x07a7, 0x04af, 0x0574, 0x00aa, 0x021f, 0x08af,
+ 0x06ea, 0x069a, 0x07bf, 0x0401, 0x050e, 0x063e,
+ 0x0109, 0xff19, 0xffde, 0xfeb5, 0xfeb4, 0x00fa,
+ 0x049b, 0x054b, 0x0321, 0x0434, 0x04e0, 0x02ae,
+ 0x0363, 0x038c, 0xfeba, 0xfbb3, 0xfe77, 0x0159,
+ 0x025d, 0x06de, 0x0ae0, 0x078e, 0x0480, 0x02c2,
+ 0xfb70, 0xf705, 0xf934, 0xf944, 0xf8f2, 0xfac1,
+ 0xfa67, 0xf8c9, 0xf9af, 0xfc0f, 0xfac9, 0xfa1d,
+ 0x0038, 0x00af, 0xfa49, 0xfbcb, 0xfc14, 0xf7a3,
+ 0xfd11, 0x004d, 0xf954, 0xf7c6, 0xf855, 0xf75d,
+ 0xfe6f, 0x05c4, 0x04a3, 0x00e0, 0xff28, 0xff4c,
+ 0xfee7, 0xffd7, 0x009e, 0xfb15, 0xfa0b, 0x009a,
+ 0xfed2, 0xfbe5, 0xfe23, 0xf89b, 0xf6c6, 0xff24,
+ 0x0012, 0xff78, 0x035e, 0x005f, 0xfcc5, 0xfc13,
+ 0xf743, 0xf278, 0xea4e, 0xda31, 0xca59, 0xbe33,
+ 0xbd10, 0xce26, 0xe7c7, 0x0376, 0x1ad2, 0x214b,
+ 0x1bdc, 0x1585, 0x1162, 0x0fa2, 0x066e, 0xf581,
+ 0xe7c3, 0xd90a, 0xcf4a, 0xd56d, 0xdb64, 0xe2db,
+ 0xfbee, 0x14a3, 0x242b, 0x31a4, 0x2927, 0x07de,
+ 0xea5b, 0xd85b, 0xce1d, 0xd15f, 0xe050, 0xf0a0,
+ 0xfe13, 0x0c7f, 0x172f, 0x1400, 0x08cd, 0xfc1e,
+ 0xf0a8, 0xf17d, 0xf629, 0xf206, 0xf510, 0xfe37,
+ 0xfe2e, 0x0449, 0x1368, 0x1654, 0x12ee, 0x1685,
+ 0x16db, 0x0eb3, 0x0a21, 0x0b92, 0x0796, 0x016c,
+ 0x0277, 0x01c5, 0xfecf, 0x040e, 0x09c7, 0x0b26,
+ 0x0e58, 0x0e2b, 0x08e5, 0x066f, 0x0707, 0x06d7,
+ 0x07a6, 0x0d68, 0x116c, 0x0d60, 0x0d5c, 0x1371,
+ 0x13c6, 0x13ae, 0x15b1, 0x11eb, 0x0d7f, 0x0e47,
+ 0x1409, 0x18dc, 0x14ff, 0x11d8, 0x11a6, 0x0db3,
+ 0x130c, 0x1b6c, 0x179d, 0x18ee, 0x1d36, 0x1a30,
+ 0x2073, 0x2670, 0x2464, 0x2b53, 0x2c1b, 0x20e8,
+ 0x1d2d, 0x17b2, 0x0fb6, 0x1252, 0x19c4, 0x25bf,
+ 0x2d88, 0x27e9, 0x2713, 0x2b98, 0x3052, 0x3f6b,
+ 0x48fc, 0x46da, 0x4651, 0x3cbd, 0x3472, 0x3ed6,
+ 0x4247, 0x3cb9, 0x4502, 0x4f86, 0x5306, 0x5664,
+ 0x5694, 0x54f1, 0x52f7, 0x4c62, 0x4826, 0x4ba1,
+ 0x4eb8, 0x4e86, 0x4eac, 0x4a8f, 0x4278, 0x4133,
+ 0x4180, 0x3a26, 0x3324, 0x295d, 0x15b8, 0x0779,
+ 0x085e, 0x1212, 0x1d2f, 0x24e9, 0x2af6, 0x2a52,
+ 0x21d5, 0x2166, 0x226c, 0x19b2, 0x16ad, 0x1404,
+ 0x0b71, 0x0fc3, 0x1322, 0x06b1, 0xffcd, 0xfe1d,
+ 0xf8c3, 0xf85b, 0xf90e, 0xfa35, 0xff67, 0xff28,
+ 0xf9e8, 0xf37c, 0xec75, 0xee19, 0xf3c0, 0xf2d6,
+ 0xf228, 0xf234, 0xee91, 0xef37, 0xf324, 0xed6d,
+ 0xe19a, 0xdf2e, 0xe317, 0xe2ed, 0xe4e6, 0xe886,
+ 0xe45c, 0xdf7a, 0xddc0, 0xd5b3, 0xc722, 0xbc42,
+ 0xbe01, 0xc522, 0xc4f1, 0xc257, 0xbd9c, 0xb506,
+ 0xb56c, 0xb6df, 0xb22b, 0xbada, 0xc853, 0xc8f1,
+ 0xc917, 0xc955, 0xc599, 0xc3f0, 0xbe96, 0xb869,
+ 0xb637, 0xb242, 0xb626, 0xc1dd, 0xc635, 0xc51f,
+ 0xc021, 0xbc05, 0xbffe, 0xb869, 0xa306, 0x9a2a,
+ 0x9dc5, 0xa416, 0xab8a, 0xad75, 0xaeba, 0xb5a0,
+ 0xbf40, 0xccdd, 0xd7f7, 0xd8fc, 0xd28d, 0xc567,
+ 0xb774, 0xac80, 0xa336, 0xa780, 0xb482, 0xb626,
+ 0xb728, 0xbe8f, 0xbe38, 0xbf1d, 0xc665, 0xc33d,
+ 0xbdc5, 0xc3fc, 0xc6b3, 0xc212, 0xc5d9, 0xca33,
+ 0xc165, 0xb945, 0xb8b6, 0xb435, 0xb2f6, 0xbcf1,
+ 0xc169, 0xbb70, 0xb9c8, 0xbeb1, 0xc524, 0xccbb,
+ 0xcda3, 0xc49e, 0xc14b, 0xc512, 0xc07a, 0xbfc2,
+ 0xcc50, 0xcd81, 0xc96f, 0xd536, 0xd78d, 0xcd67,
+ 0xd304, 0xd609, 0xcb73, 0xce15, 0xd720, 0xd9fd,
+ 0xe116, 0xe3ec, 0xe086, 0xe1bc, 0xdd52, 0xd628,
+ 0xd9bc, 0xdd0d, 0xde13, 0xe5be, 0xebd3, 0xe991,
+ 0xe14d, 0xdb8f, 0xde9f, 0xe01b, 0xe18f, 0xe81d,
+ 0xe2d9, 0xdbb6, 0xe0e7, 0xdd5b, 0xdee0, 0xf1b4,
+ 0xf0b1, 0xe8ff, 0xf113, 0xe8b2, 0xe05a, 0xee40,
+ 0xef3c, 0xed9f, 0xfba7, 0xfcfc, 0xf985, 0xfe53,
+ 0xfb48, 0xf6b6, 0xf61f, 0xf832, 0x02a9, 0x0cda,
+ 0x13b7, 0x12f9, 0x063d, 0x02ea, 0x024b, 0xf9de,
+ 0x0694, 0x15c2, 0x1172, 0x1b1c, 0x21e3, 0x13fb,
+ 0x1829, 0x1f23, 0x157f, 0x1c4b, 0x243b, 0x1642,
+ 0x16d3, 0x303b, 0x39b1, 0x2964, 0x2684, 0x308e,
+ 0x2141, 0x16da, 0x2cf9, 0x2e77, 0x179e, 0x1552,
+ 0x1c15, 0x21f8, 0x30a8, 0x36d9, 0x3010, 0x2c34,
+ 0x2cfe, 0x2ca7, 0x2f2a, 0x3a5e, 0x3e8c, 0x329b,
+ 0x2c1b, 0x3052, 0x353f, 0x3ad7, 0x3df6, 0x43a3,
+ 0x477a, 0x39a6, 0x2df9, 0x33d7, 0x3e5a, 0x472c,
+ 0x40a6, 0x3602, 0x3f83, 0x3fbf, 0x3522, 0x3f1a,
+ 0x45c1, 0x4252, 0x44af, 0x4197, 0x483c, 0x53cb,
+ 0x498a, 0x444b, 0x4573, 0x3bfc, 0x3c46, 0x3830,
+ 0x2ffe, 0x3ba1, 0x3899, 0x2c4f, 0x36c5, 0x35d7,
+ 0x2feb, 0x3b9d, 0x3cda, 0x41da, 0x4f90, 0x473d,
+ 0x4372, 0x4d18, 0x459e, 0x39e8, 0x360c, 0x36d7,
+ 0x3d7f, 0x39fa, 0x3019, 0x2ebd, 0x2cf9, 0x2fa2,
+ 0x38cd, 0x36eb, 0x30c4, 0x33d3, 0x37c4, 0x34cb,
+ 0x2e9a, 0x2b9e, 0x2db8, 0x3667, 0x3f43, 0x3a1d,
+ 0x30e8, 0x3207, 0x34c1, 0x395a, 0x403c, 0x3edd,
+ 0x385e, 0x2e21, 0x28ca, 0x3473, 0x3615, 0x28d3,
+ 0x2dd2, 0x3231, 0x22c3, 0x2192, 0x2f65, 0x32a5,
+ 0x31f9, 0x343a, 0x3471, 0x3116, 0x2979, 0x26fb,
+ 0x2d30, 0x2d50, 0x2aa8, 0x3182, 0x3404, 0x308c,
+ 0x3774, 0x3f6c, 0x41d9, 0x40c6, 0x34c0, 0x317e,
+ 0x3290, 0x17cf, 0x10db, 0x2cea, 0x2718, 0x2005,
+ 0x3913, 0x30bc, 0x2272, 0x3501, 0x2e6f, 0x1ce3,
+ 0x2495, 0x26ff, 0x1e4d, 0x0eed, 0x08e7, 0x190a,
+ 0x146c, 0x0bac, 0x1e5c, 0x14da, 0x0281, 0x15a4,
+ 0x1c59, 0x18e9, 0x1cb8, 0x0a9b, 0x0d16, 0x274c,
+ 0x168b, 0x0180, 0x1123, 0x1545, 0x0cce, 0x131e,
+ 0x14f9, 0x0a62, 0x0441, 0x04e4, 0x06e8, 0x0633,
+ 0x017b, 0x0691, 0x0da7, 0xfcfa, 0xf558, 0x0582,
+ 0xf9fe, 0xee54, 0x08ab, 0x1023, 0x0747, 0x12ee,
+ 0x1918, 0x12e9, 0xfe80, 0xec48, 0xf666, 0xeb99,
+ 0xe582, 0x0e05, 0x00ec, 0xe7c0, 0x16c9, 0x08c4,
+ 0xd55a, 0xf604, 0xff88, 0xe1ff, 0xef04, 0xf412,
+ 0xf3c1, 0xfc2b, 0xf4ca, 0x06ef, 0x0a53, 0xe55d,
+ 0xe96b, 0xf242, 0xe591, 0xf727, 0xf641, 0xe8c6,
+ 0xfc47, 0xf7ca, 0xe9d8, 0xf277, 0xec88, 0xf3a9,
+ 0x00d3, 0xecc8, 0xe987, 0xefe9, 0xdc7c, 0xde90,
+ 0xe8c0, 0xd5d8, 0xd57b, 0xeac2, 0xe61c, 0xdb3f,
+ 0xe1ea, 0xe09b, 0xded4, 0xe584, 0xd516, 0xcd19,
+ 0xe92a, 0xec00, 0xda65, 0xd76b, 0xcde1, 0xd948,
+ 0xe8a8, 0xcfec, 0xd3b5, 0xe05e, 0xc384, 0xcdb2,
+ 0xd569, 0xb444, 0xd2b6, 0xe87b, 0xc061, 0xd26c,
+ 0xe800, 0xcd26, 0xd827, 0xdfc7, 0xd0ca, 0xd79f,
+ 0xc702, 0xba14, 0xd4cb, 0xdec5, 0xe1dd, 0xe68a,
+ 0xdc2f, 0xddd3, 0xd35c, 0xc2a2, 0xd737, 0xde2e,
+ 0xd2ec, 0xdc67, 0xcfce, 0xb6d0, 0xbc38, 0xc8a7,
+ 0xd5e6, 0xe27e, 0xe29a, 0xde7a, 0xd431, 0xd604,
+ 0xe45d, 0xd82b, 0xd3cd, 0xf0d2, 0xf4cd, 0xe2a1,
+ 0xe2d7, 0xe7a7, 0xe0a4, 0xcbf1, 0xbd58, 0xc48b,
+ 0xbe72, 0xa812, 0xaa9d, 0xbf88, 0xcd5b, 0xd05d,
+ 0xcfee, 0xd901, 0xdf14, 0xd857, 0xd655, 0xcc2f,
+ 0xb4e2, 0xb5dd, 0xc19d, 0xbd9b, 0xcdd4, 0xe5ec,
+ 0xd674, 0xcb02, 0xdd24, 0xdc4e, 0xd4d6, 0xdc09,
+ 0xd955, 0xe61e, 0xfda1, 0xe5ef, 0xcc0a, 0xe032,
+ 0xe47c, 0xc7c9, 0xbacd, 0xc3bc, 0xccdb, 0xcbec,
+ 0xcd7a, 0xd9fe, 0xe1a7, 0xe5b1, 0xe401, 0xce90,
+ 0xc265, 0xcd39, 0xcdcb, 0xc4a8, 0xc7d3, 0xd3a5,
+ 0xd6a4, 0xd1a7, 0xdf86, 0xebdf, 0xd734, 0xd606,
+ 0xed35, 0xe44b, 0xdcad, 0xe382, 0xdaf8, 0xeb5e,
+ 0xf9dd, 0xe01f, 0xf243, 0x1498, 0xf9b9, 0xfedd,
+ 0x2a55, 0x1b8f, 0x0682, 0x0e8a, 0x08ca, 0x11fc,
+ 0x2478, 0x1b58, 0x17bd, 0x1b62, 0x1173, 0x0661,
+ 0xf60d, 0xf53c, 0x1161, 0x1771, 0x0b65, 0x110f,
+ 0x0c0f, 0xfda3, 0xfd97, 0xf6e6, 0xef62, 0xf376,
+ 0xec3d, 0xe49c, 0xee70, 0xf814, 0xfddb, 0xffa1,
+ 0xf604, 0xefe4, 0xecd9, 0xd948, 0xca0b, 0xdbaf,
+ 0xf3f2, 0xf176, 0xe26f, 0xde0a, 0xe5b4, 0xf3c0,
+ 0xf946, 0xf12c, 0xf04a, 0xf439, 0xe807, 0xdda7,
+ 0xea0f, 0xf654, 0xeaa3, 0xdb38, 0xdfc9, 0xd507,
+ 0xaec6, 0xb7bc, 0xe709, 0xe1b4, 0xd0e8, 0xe31b,
+ 0xcc9a, 0xa636, 0xbd5f, 0xd2c3, 0xc374, 0xc167,
+ 0xc0f6, 0xb33d, 0xac9c, 0xab83, 0xaf58, 0xb481,
+ 0xbfff, 0xdb07, 0xd761, 0xb8d0, 0xc4b9, 0xd21a,
+ 0xb920, 0xbe44, 0xd0a7, 0xc003, 0xc0f6, 0xd432,
+ 0xd82c, 0xebe1, 0xfc84, 0xec75, 0xe830, 0xf08c,
+ 0xeba0, 0xf5ae, 0x043a, 0xf0c7, 0xe091, 0xf605,
+ 0x045e, 0xf898, 0xf9e4, 0xfdb7, 0xe9c9, 0xe5a4,
+ 0xf178, 0xe4fc, 0xe7df, 0x04cc, 0xfe10, 0xebe1,
+ 0xf0b3, 0xe5b6, 0xe22d, 0x0152, 0x0e61, 0x0a21,
+ 0x113e, 0x0bcb, 0x053d, 0x0dfe, 0x0a24, 0x0a94,
+ 0x2361, 0x2c02, 0x1c01, 0x123d, 0x0f0e, 0x0c40,
+ 0x1013, 0x1524, 0x1165, 0x0cae, 0x1614, 0x2016,
+ 0x1b62, 0x1f96, 0x298d, 0x1a29, 0x1663, 0x338f,
+ 0x2f79, 0x1917, 0x3928, 0x4c2c, 0x1895, 0x02eb,
+ 0x25c0, 0x27f0, 0x196e, 0x348c, 0x4e56, 0x3fbd,
+ 0x2bea, 0x3000, 0x38de, 0x342a, 0x36b8, 0x3c2a,
+ 0x2386, 0x12ec, 0x25ed, 0x20d7, 0x0d07, 0x18ff,
+ 0x1625, 0x09eb, 0x206a, 0x1b30, 0xfdb9, 0x1463,
+ 0x2355, 0x07e8, 0x128a, 0x2cd8, 0x209a, 0x15af,
+ 0x14c7, 0x14b7, 0x2202, 0x1a2e, 0x00a7, 0x0d0b,
+ 0x28ee, 0x2a4e, 0x2415, 0x2213, 0x1468, 0xf93b,
+ 0xf617, 0x1909, 0x1d1d, 0xfe5c, 0x0dca, 0x1e46,
+ 0xf737, 0xeed9, 0x06fb, 0xfb91, 0xfcd3, 0x0cb9,
+ 0xf6eb, 0xeb7b, 0xf20a, 0xea82, 0x0119, 0x1a35,
+ 0x02e6, 0xfbfb, 0x0771, 0xf23d, 0xe772, 0xed85,
+ 0xe640, 0xecbf, 0xee81, 0xddd1, 0xecf2, 0x021b,
+ 0xfb7e, 0x01f0, 0x055f, 0xedac, 0xe33b, 0xe4bb,
+ 0xe3f2, 0xf0bd, 0xff6a, 0x0a36, 0x089f, 0xea26,
+ 0xe5cf, 0x0a88, 0x076e, 0xef72, 0x057e, 0x1714,
+ 0x0699, 0x08ce, 0x1dea, 0x1e63, 0x0bfc, 0x0562,
+ 0x0f25, 0x0d6a, 0x0a98, 0x1a8a, 0x149f, 0xfce9,
+ 0x0cc4, 0x2356, 0x1370, 0x0a38, 0x1c75, 0x25c7,
+ 0x1772, 0x0490, 0x0a50, 0x1e6d, 0x1965, 0x0718,
+ 0x03f8, 0x0547, 0x09d5, 0x1b6b, 0x2bcd, 0x275b,
+ 0x10c2, 0x078a, 0x155d, 0x1e27, 0x27a5, 0x365c,
+ 0x275e, 0x1268, 0x1cce, 0x22b5, 0x1d6f, 0x211a,
+ 0x1c78, 0x1e22, 0x2af3, 0x2286, 0x2539, 0x3e5f,
+ 0x3629, 0x2251, 0x26b2, 0x2744, 0x2960, 0x2cd0,
+ 0x22d4, 0x31d8, 0x4385, 0x1fea, 0x03fa, 0x1a55,
+ 0x2b88, 0x29be, 0x29ce, 0x25fc, 0x181b, 0x0e5a,
+ 0x2564, 0x4038, 0x2d36, 0x1e4d, 0x2496, 0x0986,
+ 0x06f8, 0x3491, 0x32ca, 0x276e, 0x42b5, 0x31f3,
+ 0x1b1f, 0x32c1, 0x22d0, 0x0fb1, 0x32df, 0x2b4e,
+ 0x108f, 0x2b32, 0x25da, 0x0c6b, 0x2d0f, 0x36d9,
+ 0x13c5, 0x0fd8, 0x0f1d, 0x0c28, 0x312d, 0x3d90,
+ 0x1b04, 0x1d71, 0x358a, 0x24a3, 0x168e, 0x26a2,
+ 0x2081, 0x0bf3, 0x19ed, 0x2be9, 0x1d12, 0x0f31,
+ 0x16d7, 0x2062, 0x1e96, 0x1164, 0x0b36, 0x13e0,
+ 0x1a14, 0x2256, 0x2409, 0x0c2c, 0x09ba, 0x1ee6,
+ 0x0a02, 0xf9de, 0x1e2f, 0x2b5f, 0x1db6, 0x1f0d,
+ 0x115d, 0x0e76, 0x220e, 0x07fe, 0xf094, 0x13b7,
+ 0x1b16, 0x010d, 0x09e7, 0x195e, 0x1e9d, 0x2888,
+ 0x20ed, 0x14db, 0x15b9, 0x156f, 0x1fdd, 0x25cc,
+ 0x114e, 0x0f28, 0x1f78, 0x147e, 0x0a91, 0x190f,
+ 0x2194, 0x22be, 0x20cc, 0x1419, 0x0fec, 0x193a,
+ 0x1dae, 0x1fe9, 0x2641, 0x2c63, 0x29de, 0x154d,
+ 0x06fc, 0x1aac, 0x28ff, 0x16a3, 0x17ac, 0x3372,
+ 0x304d, 0x2099, 0x3215, 0x3b9b, 0x28f6, 0x2d7d,
+ 0x3f0d, 0x2dce, 0x1c96, 0x2f92, 0x38b1, 0x24c0,
+ 0x1fb1, 0x2a28, 0x2551, 0x1d20, 0x1d39, 0x1d37,
+ 0x2452, 0x2c16, 0x2766, 0x25be, 0x299f, 0x2ae7,
+ 0x2fd1, 0x306c, 0x2fd6, 0x33df, 0x2688, 0x24fe,
+ 0x438b, 0x37d9, 0x12d0, 0x27df, 0x344e, 0x11fb,
+ 0x1a79, 0x3a29, 0x34a2, 0x33ce, 0x3b6e, 0x2f41,
+ 0x25bd, 0x2108, 0x1aef, 0x24b9, 0x3525, 0x32e7,
+ 0x1fac, 0x1e3e, 0x3270, 0x2dba, 0x24be, 0x3d6a,
+ 0x3cf7, 0x215d, 0x24bd, 0x23ed, 0x164c, 0x1df1,
+ 0x1d47, 0x243d, 0x3c7c, 0x2af2, 0x1dbe, 0x36e8,
+ 0x2961, 0x1517, 0x2222, 0x1366, 0x0eba, 0x33b9,
+ 0x3555, 0x1b34, 0x14be, 0x1ebe, 0x3170, 0x2295,
+ 0x0074, 0x0e30, 0x1ed2, 0x1514, 0x1686, 0x04fb,
+ 0xf87b, 0x1730, 0x12d5, 0xfd81, 0x14c1, 0x0fa4,
+ 0xf814, 0x0ce7, 0x126a, 0x0550, 0x1127, 0x0dcf,
+ 0xfad4, 0xfd58, 0x0ea1, 0x173a, 0xfe73, 0xead2,
+ 0x02ad, 0x068a, 0xf6c5, 0x0570, 0x0056, 0xee99,
+ 0x02fa, 0x0d53, 0x0c89, 0x1408, 0xf7ea, 0xe4ef,
+ 0xfd60, 0xfc5e, 0xee63, 0xf5ec, 0xf58b, 0xfd5b,
+ 0x0fad, 0x0a80, 0xfcc2, 0xf47e, 0xf474, 0xf9bb,
+ 0xf1f5, 0xf6e4, 0x028c, 0xeddc, 0xee20, 0x0707,
+ 0xfd7b, 0xfd64, 0xfee2, 0xe29b, 0xff1a, 0x1f06,
+ 0xef5c, 0xf306, 0x1b0d, 0xf0ee, 0xdeaf, 0xf80d,
+ 0xe1d1, 0xe8e6, 0x0a97, 0xf63a, 0xf35a, 0x0a6b,
+ 0x076c, 0x0e30, 0x04ed, 0xe8c9, 0xfe7f, 0x0f44,
+ 0xff8c, 0x0cda, 0x0a2a, 0xef11, 0xf736, 0xf619,
+ 0xee14, 0x0590, 0xf6a2, 0xdf56, 0x0cf8, 0x1a16,
+ 0xe872, 0xe580, 0xf921, 0xeaae, 0xe53c, 0xe9f1,
+ 0xe658, 0xe924, 0xe0d1, 0xd46e, 0xe25e, 0xea19,
+ 0xdef5, 0xdfe1, 0xdb1b, 0xceb2, 0xdf2a, 0xeff5,
+ 0xe0a2, 0xd666, 0xe297, 0xec35, 0xe39f, 0xcf89,
+ 0xcb87, 0xd7ae, 0xd9b9, 0xe191, 0xf579, 0xf535,
+ 0xea37, 0xe1c0, 0xd5a2, 0xe10f, 0xf110, 0xd865,
+ 0xc7ea, 0xd9af, 0xdf31, 0xe283, 0xe770, 0xd2ef,
+ 0xd12e, 0xe9c2, 0xdfc0, 0xca95, 0xd354, 0xdb41,
+ 0xd877, 0xd4f3, 0xcb29, 0xc957, 0xd79e, 0xe9d8,
+ 0xf318, 0xe321, 0xd111, 0xe06f, 0xe63b, 0xc836,
+ 0xcd57, 0xf7c7, 0xf100, 0xd2fc, 0xe657, 0xf302,
+ 0xd947, 0xe4f5, 0x0306, 0xee26, 0xd8fa, 0xe414,
+ 0xdf9b, 0xd63b, 0xe5f4, 0xffd2, 0x10bd, 0x02cd,
+ 0xedd3, 0xfd8a, 0x0081, 0xe1a6, 0xe8db, 0x0258,
+ 0xf5a9, 0xee0e, 0xf971, 0xf2d4, 0xe757, 0xea8a,
+ 0xf54c, 0xf514, 0xe65e, 0xf203, 0x0b95, 0xf42f,
+ 0xd910, 0xee95, 0xf41d, 0xdca8, 0xdf78, 0xeb08,
+ 0xe51d, 0xe443, 0xeeec, 0xf1f3, 0xe049, 0xd442,
+ 0xeb78, 0xfbb0, 0xe8b8, 0xe6d3, 0xfa37, 0xee73,
+ 0xd316, 0xd675, 0xebd6, 0xee3e, 0xe2f9, 0xe998,
+ 0xf287, 0xdc1d, 0xca13, 0xdb31, 0xe321, 0xdb95,
+ 0xedf3, 0xfc32, 0xe038, 0xca06, 0xd658, 0xdcd1,
+ 0xd304, 0xcffb, 0xd41f, 0xda01, 0xd6a6, 0xc42b,
+ 0xc667, 0xe06c, 0xdce5, 0xcc35, 0xd85f, 0xd2f9,
+ 0xb5c4, 0xc316, 0xdd16, 0xcb71, 0xbf71, 0xd13c,
+ 0xcf9f, 0xbe24, 0xc210, 0xcf94, 0xcb66, 0xbe5d,
+ 0xc6c7, 0xdd0f, 0xd9ea, 0xc940, 0xcc35, 0xcc5d,
+ 0xc053, 0xc63f, 0xcf82, 0xc438, 0xc0fe, 0xd574,
+ 0xe79d, 0xe6f4, 0xe047, 0xe4f7, 0xe934, 0xe027,
+ 0xdded, 0xdf28, 0xd20e, 0xd30a, 0xe18c, 0xd907,
+ 0xd4a5, 0xe191, 0xd63b, 0xcdec, 0xe61c, 0xec68,
+ 0xe406, 0xed8d, 0xe310, 0xce83, 0xe3ba, 0xfa08,
+ 0xed9e, 0xe4da, 0xe17d, 0xd402, 0xd51f, 0xe3aa,
+ 0xe7af, 0xe569, 0xe25d, 0xdd4f, 0xdd75, 0xe19d,
+ 0xe446, 0xe910, 0xf225, 0xf807, 0xef64, 0xdea0,
+ 0xd8cd, 0xdb27, 0xe2d1, 0xf9d6, 0x0491, 0xeb2b,
+ 0xd7f5, 0xe0f6, 0xe8af, 0xf076, 0xfbbb, 0xf26f,
+ 0xe595, 0xed88, 0xf309, 0xebc3, 0xe030, 0xd05a,
+ 0xd2b0, 0xe7b8, 0xe4e4, 0xd979, 0xed70, 0xf721,
+ 0xda4a, 0xcc2b, 0xd988, 0xd698, 0xca0c, 0xd44e,
+ 0xe014, 0xd06f, 0xc116, 0xcce2, 0xd69d, 0xd085,
+ 0xd773, 0xddf0, 0xc91d, 0xc058, 0xd66c, 0xe019,
+ 0xdc96, 0xe23e, 0xdc66, 0xce83, 0xd33f, 0xda65,
+ 0xdc5c, 0xea25, 0xefe6, 0xdd2a, 0xcda8, 0xd167,
+ 0xde20, 0xeb89, 0xeff2, 0xe316, 0xce54, 0xc834,
+ 0xd57a, 0xdd73, 0xd96a, 0xdd8e, 0xe0e8, 0xd7ce,
+ 0xdafc, 0xe509, 0xde78, 0xe0da, 0xecc4, 0xe0b7,
+ 0xdbfa, 0xf158, 0xeeba, 0xe17b, 0xf50c, 0xfbfc,
+ 0xe1f7, 0xdf40, 0xf09e, 0xf1c7, 0xf90a, 0x07cd,
+ 0xf995, 0xe25c, 0xe887, 0xf9ae, 0xfdf8, 0xff68,
+ 0x022b, 0xfc83, 0xf513, 0xf9ec, 0x020b, 0x002c,
+ 0xfe3b, 0x0072, 0xfab5, 0xf688, 0x051d, 0x141c,
+ 0x0d4f, 0x05f2, 0x128a, 0x1374, 0xfb75, 0xfcb6,
+ 0x17c0, 0x0f2b, 0xf531, 0x0148, 0x1263, 0x0917,
+ 0x0a21, 0x18eb, 0x1c28, 0x1c2b, 0x14dd, 0x07a6,
+ 0x1651, 0x2498, 0x09c9, 0xfd09, 0x1140, 0x097b,
+ 0xf834, 0x0ed8, 0x25c4, 0x2154, 0x21d5, 0x22a1,
+ 0x0e04, 0x008a, 0x0f6e, 0x1ae8, 0x0b78, 0x0110,
+ 0x1699, 0x1fdb, 0x01a5, 0xf7b1, 0x0e39, 0x0681,
+ 0xf128, 0x052c, 0x21d5, 0x1c30, 0x097e, 0x03d9,
+ 0x06ea, 0x093a, 0x0f60, 0x1c06, 0x2160, 0x1804,
+ 0x0a30, 0x0188, 0xfecf, 0x01c9, 0x0db9, 0x1aeb,
+ 0x18f4, 0x0a56, 0xff24, 0xfe44, 0x023f, 0x0653,
+ 0x0d0a, 0x0b3e, 0xfc97, 0xf696, 0xf7d6, 0xfbd6,
+ 0x08bd, 0x0525, 0xf974, 0x026c, 0x02d1, 0xfe5c,
+ 0x1098, 0x1670, 0x0580, 0xf959, 0xf1b0, 0xf636,
+ 0x0dcd, 0x16aa, 0x055f, 0x01c6, 0x09b0, 0xfe6a,
+ 0xfe39, 0x11a0, 0x15c8, 0x14f2, 0x1115, 0x01f6,
+ 0xfda5, 0x01de, 0x095c, 0x148a, 0x156c, 0x0f8f,
+ 0x01d8, 0xf063, 0xf102, 0xffd7, 0x0c9b, 0x0b3a,
+ 0x031a, 0xfdcd, 0xf0b5, 0xf0c3, 0xfb04, 0xf6a8,
+ 0x07a3, 0x19bb, 0x07f3, 0x06de, 0x0feb, 0x0253,
+ 0xff16, 0x08b7, 0x0c22, 0x0693, 0x0342, 0x0d3e,
+ 0x0b56, 0xfcb8, 0xffdf, 0x0d05, 0x1059, 0x1073,
+ 0x18c6, 0x17f9, 0x0c69, 0x0f7f, 0x0dad, 0x0321,
+ 0x0855, 0x086a, 0x0404, 0x0b3d, 0x133f, 0x163e,
+ 0x0690, 0xf825, 0x07a0, 0x11df, 0x05ea, 0x01ff,
+ 0x1165, 0x1497, 0x03ea, 0x0bc1, 0x135c, 0x0220,
+ 0x1053, 0x242f, 0x1a28, 0x17ff, 0x105c, 0xffd2,
+ 0x01d3, 0x0c44, 0x1434, 0x118f, 0x0baa, 0x09dc,
+ 0x0357, 0x063e, 0x0e16, 0x0e58, 0x0e33, 0x04f6,
+ 0xfb01, 0xfcb3, 0x0130, 0x00e9, 0xf5d9, 0xf026,
+ 0xf632, 0xfc31, 0x014b, 0xfd08, 0xff2a, 0x04af,
+ 0xf638, 0xf69a, 0xfb58, 0xeefd, 0xf403, 0xf141,
+ 0xe828, 0xf5c5, 0xf807, 0xf7c8, 0xfdca, 0xfbc9,
+ 0x00ad, 0x00be, 0xfc10, 0xee5c, 0xe138, 0x03a9,
+ 0x16dc, 0xfa44, 0xf836, 0xf5ae, 0xe104, 0xe86e,
+ 0xf53b, 0xf5ac, 0xfc7d, 0x08a0, 0x00be, 0xf0c3,
+ 0xfca0, 0xfec5, 0xfa81, 0x13a7, 0x1429, 0x0685,
+ 0x0d62, 0x0c99, 0x189b, 0x20ee, 0x0e7c, 0x0ef6,
+ 0x1a3f, 0x1acb, 0x13cd, 0x12bb, 0x27e0, 0x264f,
+ 0x12ea, 0x1b83, 0x228e, 0x277e, 0x2cc0, 0x1f18,
+ 0x1eb5, 0x24fe, 0x1e9b, 0x1bd6, 0x1b1f, 0x271a,
+ 0x36b6, 0x3421, 0x2dab, 0x26bf, 0x2846, 0x3218,
+ 0x319f, 0x3757, 0x41b9, 0x478f, 0x4de2, 0x3fc9,
+ 0x33c2, 0x3d6d, 0x34b6, 0x2df9, 0x3f3a, 0x3a2f,
+ 0x2d29, 0x3c0b, 0x41e4, 0x3660, 0x3b6f, 0x3d76,
+ 0x2d72, 0x2aec, 0x2f3d, 0x2f07, 0x3c5c, 0x3d97,
+ 0x29de, 0x27c2, 0x2b54, 0x27d8, 0x2f45, 0x3054,
+ 0x29c6, 0x254a, 0x13d9, 0x0d84, 0x1cb3, 0x22ff,
+ 0x2727, 0x2cc7, 0x27ae, 0x1bc4, 0x0e02, 0x0ed0,
+ 0x15a6, 0x149a, 0x1b81, 0x1be7, 0x18fd, 0x1b0d,
+ 0x08ab, 0x06b8, 0x1803, 0x0c45, 0xffcd, 0xfb43,
+ 0xfd62, 0x0e0c, 0x08bd, 0x046f, 0x046d, 0xf49b,
+ 0x063e, 0x1063, 0xfafa, 0x02b1, 0x04fb, 0xfe2d,
+ 0x068d, 0x0558, 0x0d6b, 0x082a, 0xf19c, 0xf6a0,
+ 0xf7b2, 0xf9ba, 0x073e, 0x03de, 0x0895, 0x09e7,
+ 0x00bf, 0xfee4, 0xed74, 0xeb05, 0xffd1, 0x02c0,
+ 0xfb83, 0xf645, 0x0617, 0x1438, 0x0491, 0x099e,
+ 0x0e77, 0xf74a, 0xf2ce, 0xfa3d, 0x070b, 0x12be,
+ 0x0dde, 0x0e24, 0x06d2, 0x033a, 0x13fb, 0x15e4,
+ 0x1491, 0x197b, 0x1b23, 0x13f8, 0x0354, 0x1042,
+ 0x12ec, 0x0099, 0x1d22, 0x20f2, 0x05b1, 0x09df,
+ 0xfcbe, 0x07f8, 0x20c6, 0x0aeb, 0x1845, 0x1d61,
+ 0x014e, 0x1727, 0x0fe8, 0xf6a0, 0x1640, 0x1cdb,
+ 0x08f5, 0x0696, 0x09b6, 0x1069, 0x08f7, 0x0887,
+ 0x15a9, 0x0ef1, 0x0b44, 0x1235, 0x125f, 0x0e29,
+ 0x0bba, 0x13ad, 0x1649, 0x1619, 0x156f, 0xfc7f,
+ 0xf3b7, 0x0bfc, 0x1202, 0x07b8, 0x0611, 0x0ac8,
+ 0x0abd, 0x099f, 0x0f00, 0x05ba, 0xf649, 0xf2f5,
+ 0xef74, 0xf88c, 0x0b3f, 0x127f, 0x0dcf, 0x04d0,
+ 0x0b04, 0x0686, 0xf44d, 0x0a3c, 0x1d07, 0x0d08,
+ 0x0a29, 0x07ef, 0x01f1, 0x07fe, 0x0c3e, 0x0deb,
+ 0x0683, 0x0663, 0x122b, 0x06ed, 0xfc98, 0x04ef,
+ 0x06c9, 0x04bc, 0x025f, 0x02ea, 0xfde5, 0xf161,
+ 0xf819, 0xfb63, 0xf108, 0xfa39, 0x031c, 0x0134,
+ 0x0676, 0x05d2, 0xfdff, 0xfa97, 0xfc8b, 0x0511,
+ 0x09f5, 0xfefc, 0xf354, 0xf21d, 0xedac, 0xf498,
+ 0x032a, 0xf51b, 0xed05, 0xf981, 0xf604, 0xf5ed,
+ 0xf673, 0xefcd, 0xf682, 0xf4d0, 0xf2a2, 0xf2ea,
+ 0xea03, 0xf75f, 0xfa6b, 0xf100, 0x0128, 0xf9d7,
+ 0xf247, 0xfa49, 0xe2dd, 0xf3c0, 0x1b18, 0x0332,
+ 0xf20d, 0xf9e6, 0xf893, 0x040e, 0x0a3a, 0x051d,
+ 0x0162, 0xfe06, 0xfe64, 0xf2fc, 0xf38b, 0x0948,
+ 0x04b6, 0xfaf2, 0x0363, 0x0519, 0x066e, 0xfdb7,
+ 0xeb90, 0xf658, 0x0905, 0x003a, 0xee6e, 0xe930,
+ 0xf6ca, 0x0418, 0xf8e4, 0xf537, 0x09ce, 0x075d,
+ 0xf31b, 0xf65c, 0xfdcc, 0xf706, 0xf027, 0xf0b3,
+ 0xf6b0, 0xf6f1, 0xf1d6, 0xef32, 0xf338, 0x031b,
+ 0x0533, 0xf3c2, 0xf4d2, 0xf7a8, 0xe58e, 0xdf10,
+ 0xe63f, 0xee24, 0xf6ab, 0xebe3, 0xe207, 0xf5ee,
+ 0xfbfc, 0xef06, 0xf8d2, 0xfc70, 0xef4b, 0xf721,
+ 0xfb85, 0xe85e, 0xe32a, 0xf50b, 0xfc7b, 0xf483,
+ 0xfcbd, 0x008c, 0xe86e, 0xe0d5, 0xe941, 0xeebe,
+ 0xf64a, 0xeafb, 0xea6b, 0xf7aa, 0xef16, 0xfdac,
+ 0x095c, 0xedf8, 0xec0b, 0xf821, 0xfeb1, 0x00b4,
+ 0xf300, 0x0897, 0x1821, 0x005a, 0x06a7, 0x02a2,
+ 0xf716, 0x0911, 0xfbe1, 0xfae6, 0x0e8e, 0xf947,
+ 0xf77f, 0x0c02, 0x0c55, 0x0a45, 0x052c, 0x05d1,
+ 0x0540, 0x012d, 0x0381, 0xfbee, 0x03d8, 0x061e,
+ 0xf0c7, 0x024d, 0x11eb, 0x07af, 0x0cfc, 0xfee7,
+ 0xf71e, 0x0833, 0x0500, 0x032a, 0x01b0, 0xfdac,
+ 0x05a5, 0xfe61, 0xf83c, 0x02e2, 0x11e4, 0x0fbd,
+ 0xeb20, 0xebb8, 0x1318, 0x0c86, 0xf8b3, 0xfb41,
+ 0xfde5, 0xfa3b, 0xf5c1, 0x0247, 0x0b14, 0x0996,
+ 0x02dc, 0xea53, 0xf258, 0xfaeb, 0xddd1, 0xee55,
+ 0xf9bc, 0xe513, 0xfcc7, 0xfa2a, 0xddc1, 0xe7db,
+ 0xf057, 0xf7b7, 0xeeac, 0xe00f, 0xf045, 0xe5c8,
+ 0xe314, 0xfb9a, 0xea5b, 0xe763, 0xf5fb, 0xe816,
+ 0xeb57, 0xf0b4, 0xeb50, 0xe582, 0xda39, 0xf3c2,
+ 0x05a1, 0xea40, 0xed1b, 0xf8f9, 0xeb8d, 0xeccc,
+ 0xedbc, 0xeeed, 0xf832, 0xe4d0, 0xda89, 0xfa02,
+ 0xfec1, 0xe99a, 0xf24f, 0xf0c1, 0xdcb1, 0xe97d,
+ 0xefe9, 0xda8b, 0xde78, 0xf217, 0xf971, 0xffa1,
+ 0xf882, 0xddc8, 0xd7ca, 0xeb59, 0xeddc, 0xeefe,
+ 0xf8fc, 0xe602, 0xdda6, 0xef81, 0xe875, 0xe8d6,
+ 0xf2c2, 0xe329, 0xe901, 0xf9b9, 0xf39e, 0xfab9,
+ 0x0282, 0xf869, 0xf1a5, 0xee0a, 0xf1a6, 0xf6de,
+ 0xf1cc, 0xef22, 0xf204, 0xfe92, 0x0446, 0xe8fd,
+ 0xe105, 0xfbc6, 0xf5ff, 0xed90, 0x083e, 0x0765,
+ 0xef0b, 0xef9b, 0xff34, 0x0803, 0xfb1a, 0xf890,
+ 0x0a79, 0xfad2, 0xee1a, 0xf9fd, 0xebd0, 0xefc1,
+ 0x01de, 0xf619, 0xfda7, 0xfc11, 0xe33e, 0xef2b,
+ 0xf3c9, 0xe963, 0xf360, 0xf05b, 0xe9fc, 0xe886,
+ 0xeda2, 0x0579, 0xf8e4, 0xe3dd, 0xfe46, 0xfc30,
+ 0xe1f4, 0xf238, 0xfd6d, 0xedb0, 0xede1, 0xf729,
+ 0xed2f, 0xe10f, 0xeb62, 0xf1b7, 0xe934, 0xee3a,
+ 0xee6c, 0xe221, 0xf049, 0xfc28, 0xe53a, 0xe121,
+ 0xf557, 0xf317, 0xe8d3, 0xe6a0, 0xe5f6, 0xedac,
+ 0xf54c, 0xf876, 0xf18d, 0xdffd, 0xe658, 0xf0c7,
+ 0xe2e5, 0xeffb, 0x0bd0, 0xfc20, 0xe40e, 0xe9dc,
+ 0xf565, 0xf511, 0xef6a, 0xe5eb, 0xe0e6, 0xf350,
+ 0xfffe, 0xed2a, 0xe89c, 0xf4b3, 0xecf7, 0xef85,
+ 0xfebd, 0xeec6, 0xe09e, 0xf47c, 0xf73d, 0xe710,
+ 0xef9a, 0xf776, 0xf2aa, 0xf805, 0xfa27, 0xfb18,
+ 0xf903, 0xead9, 0xf576, 0x095a, 0xff49, 0x0046,
+ 0x1092, 0xfe51, 0xe0bc, 0xe9fc, 0x01e3, 0x0238,
+ 0xfc41, 0xfd1e, 0xfe2e, 0xff8a, 0xfe1d, 0x045b,
+ 0x0612, 0xf4f0, 0xf553, 0xff01, 0xfcfb, 0x0214,
+ 0xfd91, 0xf77f, 0xfbe2, 0xf6fe, 0xfff2, 0x017d,
+ 0xeaf4, 0xf1b6, 0x018e, 0x01ce, 0xfab3, 0xe76f,
+ 0xf61d, 0x1158, 0xff44, 0xf053, 0xfc71, 0x0a42,
+ 0x0445, 0xf071, 0xfd78, 0x0670, 0xf581, 0x0701,
+ 0x1129, 0xfbde, 0xfb88, 0xf8a5, 0xedcb, 0xf382,
+ 0xf9bb, 0x0245, 0x0827, 0xfc86, 0xf0c1, 0xf5a0,
+ 0xfb33, 0xefe1, 0xf00e, 0x03f6, 0x0554, 0xf726,
+ 0xed4d, 0xe983, 0xed0e, 0xef5b, 0xeff4, 0xf25f,
+ 0xfb1f, 0x028b, 0xf123, 0xe67f, 0xf68a, 0xf786,
+ 0xf367, 0xfdb2, 0xfea9, 0xf307, 0xe97a, 0xeef1,
+ 0xf4e4, 0xf0ed, 0xf4b3, 0xf085, 0xe453, 0xe221,
+ 0xe402, 0xf32e, 0xed78, 0xd5f7, 0xf1c4, 0xffa6,
+ 0xe1ca, 0xeed6, 0xfe49, 0xf396, 0xf60e, 0xed5e,
+ 0xf382, 0x0a53, 0xfd6a, 0xf1f8, 0xee01, 0xe2d0,
+ 0xf2ad, 0xf6d7, 0xe57c, 0xed8f, 0xf0ca, 0xed01,
+ 0xfaeb, 0xf897, 0xf056, 0xfb12, 0xff00, 0xf722,
+ 0xedbb, 0xeda2, 0xf80c, 0xee24, 0xe0bb, 0xf501,
+ 0x04ec, 0xfa42, 0xf567, 0xf9f5, 0xf9e4, 0xf4a6,
+ 0xef37, 0xed33, 0xedf1, 0xf456, 0xf806, 0xf5fa,
+ 0xfde9, 0xfe77, 0xf067, 0xf3d1, 0xf94e, 0xf1a4,
+ 0xf37e, 0xf061, 0xefd0, 0x0888, 0x0ab2, 0xeeb9,
+ 0xe945, 0xf7ad, 0x02a4, 0xffd4, 0xf1ba, 0xf409,
+ 0xfa76, 0xf1a0, 0xf589, 0xfe6f, 0xf9c6, 0xfad1,
+ 0xfbe6, 0xf6b6, 0xf636, 0xf6e6, 0xfc3b, 0x0201,
+ 0x01ec, 0x02bb, 0xf8d3, 0xedc5, 0xf880, 0x000d,
+ 0xf2d5, 0xe9d1, 0xf8d7, 0x0892, 0xfa4c, 0xeeb6,
+ 0xf9e9, 0xf8e1, 0xf426, 0xf102, 0xe032, 0xe7c5,
+ 0x0097, 0xff1c, 0xfc61, 0xff4b, 0xf71f, 0xf590,
+ 0xf91a, 0xfc32, 0xfc2c, 0xef22, 0xf11f, 0xfe14,
+ 0xecec, 0xe01a, 0xf605, 0x078f, 0x0570, 0xf6f7,
+ 0xeb06, 0xf490, 0xf2ac, 0xdd24, 0xe00f, 0xea45,
+ 0xeea0, 0x0692, 0x0666, 0xe353, 0xe890, 0x043a,
+ 0xf31d, 0xe1dd, 0xf267, 0xf02b, 0xecd5, 0x0d48,
+ 0x0f19, 0xed83, 0xf70f, 0x0bb3, 0xf80a, 0xf0a8,
+ 0x0156, 0x0447, 0x05ac, 0x039a, 0xf4e3, 0xf5cf,
+ 0xfbb1, 0xef64, 0xf1e3, 0x0b62, 0x0c72, 0xf9f8,
+ 0xff12, 0x04df, 0xff48, 0x112e, 0x1666, 0xf594,
+ 0xf457, 0x0fde, 0x08dd, 0xfa2b, 0x004b, 0x06b0,
+ 0x0d02, 0x0f43, 0x0ca5, 0x0e2f, 0x08ab, 0x0019,
+ 0xfeac, 0xfc2c, 0x0236, 0x12a6, 0x1068, 0x0392,
+ 0x0608, 0x057d, 0xfc91, 0x00ab, 0x0bb9, 0x056c,
+ 0xfa42, 0x0996, 0x0e36, 0xf22a, 0xf036, 0x06e7,
+ 0x0a6f, 0x023d, 0xfb2c, 0xf985, 0xff12, 0xfe8b,
+ 0xfd53, 0x0cf6, 0x1365, 0x0770, 0x099c, 0x0700,
+ 0xf41d, 0xf421, 0x032e, 0x0c82, 0x06dc, 0xf86e,
+ 0xfce3, 0x0567, 0xfa0d, 0xfcd6, 0x0900, 0xfbd8,
+ 0xf71a, 0x0107, 0xf9fa, 0xf584, 0xffd5, 0x0a16,
+ 0x0ad2, 0xfcf9, 0xeff5, 0xf7af, 0xfcb4, 0xf1b3,
+ 0x0199, 0x0f3c, 0xf3af, 0xecc0, 0xf9c5, 0xfc24,
+ 0xff2b, 0xf501, 0xf045, 0xfd4d, 0xfd94, 0xed7e,
+ 0xec54, 0x0803, 0x0dd6, 0xf602, 0xf9a1, 0x0935,
+ 0xfe46, 0xf5e9, 0x0280, 0x065c, 0x0691, 0x0c50,
+ 0xfd44, 0xef51, 0xf28c, 0xf269, 0x0594, 0x1d64,
+ 0x089d, 0xf397, 0x0138, 0x0990, 0x0668, 0xfdb7,
+ 0x022e, 0x135b, 0x011b, 0xfaf8, 0x0dbf, 0xfb9a,
+ 0xf4d7, 0x01bc, 0x04a6, 0x1548, 0x15bd, 0x0544,
+ 0x0863, 0x0361, 0xf276, 0x0568, 0x1520, 0xf77d,
+ 0xf71b, 0x0421, 0xf0ab, 0xfba7, 0x05de, 0xeb0f,
+ 0xe5fd, 0xf5f0, 0x0bd5, 0x198b, 0xfe0b, 0xe2fc,
+ 0xebd8, 0xf725, 0xfc38, 0xfb47, 0xfb19, 0x0062,
+ 0xf171, 0xef55, 0xfe45, 0xeb8c, 0xdc1b, 0xef31,
+ 0x018f, 0xfa1e, 0xef36, 0xee4f, 0xe7b9, 0xf64a,
+ 0x021d, 0xf0ac, 0xe72b, 0xd98c, 0xdd5c, 0xf0bf,
+ 0xed04, 0xf5f4, 0xf146, 0xd9f3, 0xe8c8, 0xf3ae,
+ 0xe2be, 0xdece, 0xeaac, 0xf75d, 0xf706, 0xe586,
+ 0xe4a5, 0xf182, 0xe11e, 0xd5f9, 0xf071, 0x01d6,
+ 0xf6a7, 0xe96a, 0xe928, 0xf5f8, 0xfdf7, 0xf6a2,
+ 0x0311, 0x0605, 0xe934, 0xfa7a, 0x06d0, 0xf2de,
+ 0x0ac1, 0x0b9a, 0xf2f9, 0xfcc4, 0x09f7, 0x1533,
+ 0x1637, 0x1968, 0x1781, 0xf6ef, 0xf944, 0x1fce,
+ 0x218c, 0x076f, 0x04c7, 0x15b3, 0x1df1, 0x1e36,
+ 0x13d5, 0x1113, 0x218c, 0x2880, 0x229b, 0x1a27,
+ 0x1893, 0x1dbd, 0x191a, 0x152d, 0x2095, 0x2041,
+ 0x1291, 0x1838, 0x1d7b, 0x2606, 0x2d8b, 0x1092,
+ 0x0ead, 0x21b1, 0x19bd, 0x213a, 0x23f8, 0x1e39,
+ 0x231f, 0x1dd5, 0x1db1, 0x20d4, 0x1cad, 0x15bb,
+ 0x1534, 0x1a88, 0x1929, 0x1e43, 0x1d83, 0x11de,
+ 0x1133, 0x1a10, 0x2520, 0x18d9, 0xfa14, 0xf8c2,
+ 0x1689, 0x2343, 0x1890, 0x135a, 0x09e7, 0x006b,
+ 0x0190, 0x1131, 0x21fd, 0x0c7c, 0x0380, 0x0c4c,
+ 0xf6bc, 0xff14, 0x17a1, 0x0672, 0xf0e4, 0xf177,
+ 0xf0d3, 0xeb70, 0xf835, 0xfb4f, 0xf6ca, 0x000c,
+ 0xf303, 0xe8d3, 0xf141, 0xea07, 0xe4b0, 0xf230,
+ 0xffd0, 0xfdd3, 0xf363, 0xe68b, 0xe494, 0xf2f7,
+ 0xfd14, 0xfd66, 0xf46c, 0xee95, 0xe802, 0xe8c2,
+ 0xfe8f, 0xfe26, 0xfcd8, 0x025e, 0xf3b2, 0xf709,
+ 0xfbe1, 0xffc9, 0x007c, 0xec71, 0xf75d, 0x0387,
+ 0xf062, 0xe46f, 0xeda7, 0x005d, 0xfa00, 0xf78e,
+ 0x0482, 0xe9cf, 0xd536, 0xf65d, 0x08d9, 0xfb59,
+ 0x0536, 0x086a, 0xee82, 0xeac3, 0xfc16, 0x0743,
+ 0x0898, 0x05c2, 0xf80e, 0xef0e, 0xffc9, 0x02e9,
+ 0xfc2b, 0xff03, 0x0827, 0x0f19, 0xf904, 0xf47c,
+ 0xfc55, 0xfbb1, 0x0dd4, 0x011d, 0x037d, 0x204a,
+ 0x0b45, 0xf991, 0xf7f7, 0x041d, 0x1a3c, 0x0b32,
+ 0x05f9, 0x0b58, 0xfdf4, 0x026c, 0x0521, 0xfaab,
+ 0x0281, 0x0805, 0x0514, 0x0bc1, 0x01b6, 0xf5be,
+ 0xfea1, 0x01fa, 0x045b, 0x0fb8, 0x1568, 0x06ef,
+ 0x08e8, 0x1bde, 0x0f24, 0x1053, 0x1019, 0x0000,
+ 0x1252, 0x126f, 0x0c6d, 0x0b43, 0x00ef, 0x147f,
+ 0x1013, 0x0815, 0x19cf, 0x135d, 0x0e38, 0x0ce4,
+ 0x0cca, 0x0920, 0x05a9, 0x1182, 0xfd3f, 0xf438,
+ 0x083f, 0xfa74, 0xfca4, 0x0bdf, 0xfca7, 0xfd74,
+ 0xfd57, 0xf3a6, 0x01dc, 0xf697, 0xee08, 0x014c,
+ 0xeef4, 0xef28, 0x0028, 0xf69d, 0x016c, 0xfa90,
+ 0xeb4d, 0xeef8, 0xe70c, 0xeb86, 0xf583, 0xf59c,
+ 0xec42, 0xe9b9, 0xe5ab, 0xd3e8, 0xe067, 0xd94b,
+ 0xd724, 0xfe30, 0xea3f, 0xe32f, 0xf75c, 0xde1c,
+ 0xe554, 0xef7c, 0xe7a0, 0xff7c, 0xfd76, 0xe91b,
+ 0xefa4, 0xea7b, 0xe14c, 0xf2b8, 0x001a, 0xf5f4,
+ 0xde85, 0xdfb6, 0xf75a, 0xf37b, 0xf0e4, 0x0142,
+ 0x0dac, 0x00db, 0xdea8, 0xe795, 0xf83b, 0xf523,
+ 0xff99, 0xf6b7, 0xf199, 0xf6f4, 0xfecb, 0x0bde,
+ 0x01d7, 0x0879, 0x0e13, 0x0339, 0x02cb, 0xf35b,
+ 0xf97d, 0x0f49, 0x0e79, 0x06f0, 0x064d, 0x178e,
+ 0x0acc, 0xf0f9, 0x05ec, 0x14a7, 0x09c0, 0x061c,
+ 0x030b, 0xfe16, 0x03d2, 0x08d5, 0x05e9, 0x0417,
+ 0x0098, 0xf6ab, 0xe981, 0xf8a8, 0x0876, 0x0126,
+ 0x1a13, 0x211c, 0x084e, 0xff50, 0xf0d9, 0xfe19,
+ 0x0c02, 0xfff3, 0x074b, 0x02b6, 0xf41b, 0xf9db,
+ 0x02d5, 0xfb7e, 0xfcf8, 0x09c3, 0xfa08, 0xfa4d,
+ 0x0087, 0xf73f, 0x06ea, 0x0022, 0xfdbf, 0x10e9,
+ 0x00e9, 0xff01, 0x09bc, 0x0291, 0x0ac4, 0x0e7c,
+ 0xfca7, 0x0097, 0x0f68, 0x043a, 0x03a7, 0x0b0c,
+ 0x02bb, 0xfdd8, 0xfd9e, 0x03e6, 0x0134, 0xfb34,
+ 0xffc5, 0x02c9, 0x0903, 0x0793, 0x0aea, 0x0920,
+ 0xf9af, 0x03a2, 0x09e5, 0x0295, 0xfe6f, 0x00af,
+ 0x0ab7, 0x06c6, 0x0a6a, 0x088e, 0xfcef, 0x00a1,
+ 0x0297, 0x1286, 0x1459, 0x0b24, 0x13ce, 0x0c35,
+ 0x12f0, 0x15d9, 0x07d7, 0x1698, 0x0fd6, 0xf4b9,
+ 0xf72e, 0x05da, 0x130e, 0x18ec, 0x0ed0, 0x0bec,
+ 0x12cc, 0x0794, 0x0261, 0x01a7, 0xfdd5, 0x0d30,
+ 0x0af1, 0x058c, 0x0fe5, 0x0b63, 0x09b5, 0x0e67,
+ 0x0fbc, 0x0c9c, 0x0934, 0xfa7c, 0xecc1, 0x0188,
+ 0x0c0d, 0x13c7, 0x1318, 0xf0f2, 0xf5be, 0xfcc2,
+ 0xfdc9, 0x1659, 0x08ca, 0x0044, 0x02c7, 0xf83d,
+ 0x0ccc, 0x1946, 0x07e2, 0x0320, 0x0d38, 0x0511,
+ 0xf974, 0x045c, 0x0510, 0xfd5a, 0x0449, 0x0d03,
+ 0x06c1, 0xf70f, 0xedd2, 0xeff8, 0xff80, 0x0d6e,
+ 0x14ad, 0x02ab, 0xe841, 0xf870, 0xfb12, 0xf942,
+ 0x1368, 0x06d6, 0xf340, 0xf941, 0xff93, 0xf7a7,
+ 0xf116, 0x0a20, 0x0c44, 0xf75a, 0xf7b4, 0x047d,
+ 0x08f5, 0xf1f6, 0xfe05, 0x171a, 0xff9c, 0xfdcf,
+ 0x0459, 0xfae3, 0x060c, 0x0b98, 0x0600, 0x0735,
+ 0x0139, 0xf68d, 0x01fb, 0x13eb, 0x16d5, 0x0f2c,
+ 0x00ac, 0xfadf, 0xf958, 0x07dc, 0x18f2, 0x0a29,
+ 0xfebb, 0xfacc, 0x00ac, 0x0b80, 0x0529, 0x0af6,
+ 0x08e3, 0x0410, 0x0a6e, 0xfd8d, 0xfa03, 0x016d,
+ 0x0191, 0xffca, 0x0a7e, 0x1741, 0x0349, 0xf7de,
+ 0xfabd, 0xf8dd, 0x0cbf, 0x1ad2, 0x0e3a, 0xf98a,
+ 0xfa94, 0x051f, 0x03fc, 0x148b, 0x14c8, 0xf5db,
+ 0xf159, 0x081b, 0x0f0d, 0x0067, 0xf948, 0xfe47,
+ 0x1354, 0x1550, 0xf93a, 0x03d1, 0x12fe, 0x092f,
+ 0x02e4, 0xf94c, 0xffaf, 0x024e, 0xfd3d, 0x0307,
+ 0xfbca, 0xf8e5, 0xfc78, 0xf56f, 0xf2b6, 0xfdaa,
+ 0x0b65, 0x1242, 0x08d6, 0xebc0, 0xeb1a, 0xfe23,
+ 0xfb6e, 0xfb12, 0xfb7e, 0xffed, 0xfe41, 0xf50b,
+ 0x0343, 0x03cb, 0xf59c, 0xf768, 0x018e, 0xfa5e,
+ 0xe263, 0xee16, 0xfa22, 0xef1a, 0xf754, 0xffb3,
+ 0x0360, 0xf9bd, 0xebfc, 0xf59d, 0xfcb9, 0xfa0c,
+ 0xf525, 0xfb50, 0xfdd1, 0xf135, 0xfe96, 0x0ddb,
+ 0x00c6, 0xf1ac, 0xe942, 0xee11, 0xfb49, 0xf853,
+ 0xfb22, 0x0a15, 0xf49b, 0xe9dc, 0x012d, 0xfe5e,
+ 0xf78a, 0xec18, 0xee0a, 0x04bc, 0xf2e4, 0xec05,
+ 0xf0bc, 0xe85e, 0xfa0f, 0xff67, 0xfae3, 0xf22a,
+ 0xe5df, 0xf52b, 0xfe0f, 0x004d, 0x0557, 0xffc3,
+ 0xf887, 0xf62c, 0xff03, 0x0717, 0x11bb, 0x0bd8,
+ 0xeeea, 0xf599, 0x02cc, 0xf909, 0x05b4, 0x0865,
+ 0xf755, 0x03a3, 0x043f, 0xf67c, 0xff51, 0xf3f3,
+ 0xf415, 0x07db, 0x003d, 0xffb8, 0xfa3d, 0x00ea,
+ 0x1345, 0x0539, 0x0de3, 0x08dc, 0xf031, 0xfaf0,
+ 0xf880, 0x0153, 0x12a2, 0x07b2, 0xfef2, 0xfa9e,
+ 0xfe8a, 0xf783, 0xf8ae, 0x12e2, 0x0948, 0xfb81,
+ 0x0a37, 0x0a8b, 0xfdcc, 0xfb9f, 0x08ae, 0x0b7f,
+ 0xfd16, 0xff09, 0x08f9, 0x0165, 0xf8c7, 0xfcb6,
+ 0x0fde, 0x135c, 0xf4f6, 0xedb8, 0xf057, 0xf27f,
+ 0x0d03, 0x047d, 0xf590, 0xf592, 0xef1f, 0x05ce,
+ 0x0124, 0xf79b, 0x0ce4, 0xfcd7, 0xef50, 0xf065,
+ 0xf693, 0x066b, 0xf937, 0xf764, 0x0456, 0x0405,
+ 0x0551, 0xfcf5, 0xf6c6, 0xf5b4, 0xf49a, 0xffeb,
+ 0x06f1, 0xfe18, 0xefbb, 0xeef1, 0xfd6b, 0xff84,
+ 0xf83d, 0xf920, 0xf026, 0xedb8, 0xfce2, 0xf8f4,
+ 0xf3c1, 0xf53e, 0xf994, 0x043b, 0xf9cd, 0xffb6,
+ 0x0694, 0xf2f7, 0xfbbe, 0xfc71, 0xf0de, 0xf7af,
+ 0xfd4d, 0x06db, 0xfae5, 0xf469, 0x049e, 0xfe39,
+ 0xf95e, 0xf899, 0xf837, 0xff0b, 0xf8a9, 0xf59e,
+ 0xf3e3, 0xefea, 0xf73b, 0xfcfa, 0x00cb, 0xfaeb,
+ 0xee68, 0xfdee, 0x0919, 0xf254, 0xf551, 0x0726,
+ 0xfcfe, 0xf8e7, 0xffd2, 0x0970, 0x08d3, 0xf773,
+ 0xf6d8, 0xfd23, 0xfc96, 0xfded, 0x079f, 0x0bdb,
+ 0xfc1e, 0x0112, 0x0395, 0xf3c1, 0x019c, 0x08cb,
+ 0x00b5, 0x0170, 0x0143, 0x009c, 0xf4f5, 0xf683,
+ 0x012c, 0xfcc3, 0x0806, 0x0a30, 0xf1a9, 0xf207,
+ 0x04d6, 0x05b9, 0x04be, 0x0ade, 0x06c0, 0xf974,
+ 0xf305, 0xfee8, 0x02e7, 0xfa85, 0x06cc, 0x0e62,
+ 0x017f, 0xf57f, 0xf24a, 0xfb8d, 0x0175, 0x0554,
+ 0x0c21, 0x097e, 0xfe34, 0xf2d6, 0xf0b0, 0xf1f7,
+ 0xff10, 0x0755, 0xf3fa, 0xf490, 0xff78, 0xf6cd,
+ 0xf5d4, 0xf750, 0xfbf3, 0x0412, 0xff0e, 0xf81f,
+ 0xf7ac, 0xf8f6, 0xf7b4, 0xf20e, 0xec72, 0xf36a,
+ 0xfb6b, 0xf617, 0xf37d, 0xf468, 0xfecd, 0x0264,
+ 0xe9f5, 0xe856, 0xfa28, 0xf41f, 0xf0ef, 0xf8a0,
+ 0xf119, 0xe68b, 0xefa8, 0xf8d5, 0xf5eb, 0xf326,
+ 0xf2e1, 0xfa0c, 0xfb7e, 0xf375, 0xf343, 0xfa8c,
+ 0x049d, 0xffa4, 0xf474, 0xfcb0, 0xfe71, 0xf714,
+ 0x02e4, 0x0555, 0xf43e, 0x0362, 0x16b3, 0xfcde,
+ 0xecf1, 0xfc0b, 0x080e, 0x072f, 0xfcc8, 0xfc0e,
+ 0xfff7, 0xfce5, 0xfb90, 0xfdda, 0x0304, 0xff10,
+ 0xf8a6, 0xfdca, 0xff06, 0xfb94, 0x01ec, 0x07e7,
+ 0xfadc, 0xf441, 0x06c6, 0x0c6c, 0xff24, 0xfa2e,
+ 0xfcc9, 0xfc27, 0xfa5d, 0xfd22, 0xfdb6, 0xfd58,
+ 0x03b0, 0x0557, 0xfb02, 0xf86f, 0x034f, 0xfd15,
+ 0xed71, 0xfb7f, 0x115a, 0x058f, 0xf7db, 0x06da,
+ 0x012b, 0xf200, 0x06c5, 0x0225, 0xe981, 0xfc21,
+ 0x06c8, 0xf6c1, 0xfc3e, 0x0176, 0xf13c, 0xf1f3,
+ 0xfe20, 0xf146, 0xe6e1, 0xf612, 0xfbd1, 0xec5f,
+ 0xe5f7, 0xedc3, 0xf49b, 0xfddd, 0xfc0e, 0xea93,
+ 0xe920, 0xf1bd, 0xed06, 0xe498, 0xe7bc, 0xf7a9,
+ 0xff27, 0xf408, 0xeede, 0xf2cf, 0xeb2e, 0xe42e,
+ 0xe999, 0xf0f0, 0xf5ec, 0xeacd, 0xde96, 0xeafc,
+ 0xf281, 0xf1b8, 0xfa03, 0xf907, 0xf216, 0xee34,
+ 0xece0, 0xf354, 0xf375, 0xf038, 0xf7f8, 0xfa44,
+ 0xf77c, 0xfb7c, 0xfad9, 0xf849, 0xf786, 0xf47d,
+ 0xfb03, 0x0171, 0xfceb, 0xfac1, 0xf7a2, 0xf8f1,
+ 0x0264, 0xfcb9, 0xf494, 0xf97e, 0xf990, 0xfdd5,
+ 0x0621, 0xfd8d, 0xf428, 0xf71a, 0x0471, 0x1178,
+ 0x038c, 0xf70b, 0x05e8, 0x0267, 0xf130, 0xf516,
+ 0xfca6, 0x0661, 0x09bd, 0xf464, 0xe8d8, 0xed20,
+ 0xebdd, 0xf43a, 0xf80d, 0xec7d, 0xf254, 0xfcf1,
+ 0xf59f, 0xedb9, 0xe74c, 0xead3, 0xfb21, 0xf130,
+ 0xd930, 0xdec5, 0xe700, 0xde0c, 0xe142, 0xec8c,
+ 0xe972, 0xe08b, 0xde08, 0xe1ae, 0xe747, 0xe7e0,
+ 0xe897, 0xed49, 0xe4b8, 0xd653, 0xe135, 0xf6bb,
+ 0xf4e8, 0xe87d, 0xed65, 0xf8f2, 0xef82, 0xddd4,
+ 0xe4b5, 0xf5d1, 0xf5b4, 0xf0fc, 0xf3e4, 0xf7ba,
+ 0xf5d2, 0xed97, 0xf11b, 0x02a0, 0x0586, 0xfd5e,
+ 0xff2d, 0x019e, 0x02cb, 0x0a13, 0x094a, 0xfb57,
+ 0xf76d, 0x06a6, 0x0a99, 0xfc61, 0x0059, 0x0d68,
+ 0x097b, 0x0b24, 0x0b8a, 0xff0c, 0x09cd, 0x16ff,
+ 0x067b, 0x0203, 0x0a4e, 0x03da, 0x069e, 0x12a2,
+ 0x1668, 0x177d, 0x1092, 0x0c55, 0x14de, 0x142e,
+ 0x11f9, 0x1bbf, 0x1d20, 0x177a, 0x14ea, 0x10f1,
+ 0x1377, 0x1e37, 0x286a, 0x29fd, 0x1eb4, 0x1828,
+ 0x1613, 0x06da, 0x061f, 0x1a54, 0x1b14, 0x1562,
+ 0x1b13, 0x1091, 0x0551, 0x0cc9, 0x0db3, 0x105a,
+ 0x18e1, 0x0a9d, 0x0048, 0x0d1d, 0x0a00, 0x02f8,
+ 0x0e07, 0x0c50, 0x0888, 0x1053, 0x044a, 0xfc6e,
+ 0x0e26, 0x0bbe, 0xfb75, 0xfedb, 0x021a, 0x0012,
+ 0x01d0, 0xfeab, 0xfaba, 0xf884, 0xfaab, 0x01e8,
+ 0xfbc8, 0xf732, 0x0413, 0x023d, 0xf9fa, 0x00e3,
+ 0xf944, 0xeeb1, 0xfc80, 0x0573, 0x0284, 0x0082,
+ 0xf778, 0xf36e, 0xfa34, 0xfd7d, 0xfe2b, 0xf8e3,
+ 0xf218, 0xf8f3, 0xf8e8, 0xe9f8, 0xedfd, 0xfc6d,
+ 0xf2ab, 0xeab2, 0xff46, 0x088d, 0xf80c, 0xf4bb,
+ 0xf92d, 0xf362, 0xfa12, 0x0253, 0xfb22, 0xfe06,
+ 0x019e, 0xf681, 0xf5eb, 0xf81b, 0xefb6, 0xf1d6,
+ 0xfb5d, 0x014f, 0x05ae, 0x020a, 0xfbe9, 0xf82e,
+ 0xf575, 0xfd9c, 0x0718, 0x0638, 0x022e, 0xfa4c,
+ 0xfa5c, 0x016f, 0xf62f, 0xf3be, 0x0845, 0x0572,
+ 0xfa2f, 0x052f, 0x032f, 0xf372, 0xf156, 0xf36a,
+ 0xf481, 0xf6ff, 0xfc06, 0x0137, 0xf853, 0xf470,
+ 0x039d, 0x00b8, 0xeff2, 0xf1bc, 0xf8fb, 0xfed1,
+ 0x0231, 0xfdff, 0x06f2, 0x0c71, 0xf806, 0xf69c,
+ 0x0ac8, 0x09b6, 0x067a, 0x0b84, 0x0287, 0x00ed,
+ 0x0f12, 0x0e48, 0x05a4, 0x0ce4, 0x159f, 0x0ee2,
+ 0x07e8, 0x0e39, 0x13b0, 0x10d8, 0x1357, 0x1b86,
+ 0x19bb, 0x0d4f, 0x08de, 0x1023, 0x0e88, 0x06dc,
+ 0x0c7e, 0x0f09, 0x046d, 0x03ff, 0x0ae2, 0x0b7e,
+ 0x0e95, 0x0d8f, 0x03ca, 0x0567, 0x0e2e, 0x09f2,
+ 0x0291, 0x053a, 0x081e, 0x064d, 0x0893, 0x0cc9,
+ 0x0ad0, 0x0826, 0x0767, 0x0395, 0x00cc, 0xff5b,
+ 0xfcfe, 0x0158, 0x058c, 0xfeb9, 0xfa37, 0xfd75,
+ 0xfe5a, 0xfed2, 0xfd08, 0xf4c7, 0xf2db, 0xf776,
+ 0xf379, 0xecad, 0xed8b, 0xf16f, 0xf7f8, 0xfc24,
+ 0xf2a5, 0xe9c8, 0xef48, 0xf2d1, 0xefda, 0xef1a,
+ 0xef04, 0xf7f8, 0x0314, 0xf81a, 0xeadc, 0xeed5,
+ 0xedd5, 0xeafe, 0xefe9, 0xee3d, 0xefb6, 0xf3d7,
+ 0xe917, 0xe610, 0xf03a, 0xef67, 0xef4c, 0xf287,
+ 0xed2a, 0xf29e, 0xfd83, 0xf656, 0xf02c, 0xfa92,
+ 0x04f0, 0x000a, 0xf30e, 0xf5e8, 0xfe40, 0xf2c6,
+ 0xedd7, 0xfa7e, 0xfa06, 0xf7d8, 0x015f, 0x019e,
+ 0x003a, 0x028b, 0xf9c1, 0xf612, 0xfce9, 0xfc89,
+ 0xfe7d, 0x04d5, 0xffdd, 0xf656, 0xf4e5, 0x0030,
+ 0x0b98, 0x0072, 0xf3e0, 0xfa9b, 0xf821, 0xf323,
+ 0x00e6, 0x00ba, 0xf625, 0x0251, 0x0a65, 0xff85,
+ 0xf9a9, 0xf947, 0xff58, 0x0a3c, 0x0913, 0x05b3,
+ 0x0792, 0x04cb, 0x05ba, 0x09f0, 0x096c, 0x0820,
+ 0x006c, 0xfc1e, 0x0811, 0x0c80, 0x0544, 0x067d,
+ 0x0b05, 0x0bf7, 0x08ea, 0x068e, 0x0d36, 0x0d60,
+ 0x0845, 0x0db4, 0x08cf, 0x0113, 0x0ba4, 0x0a81,
+ 0x0609, 0x1301, 0x0cdb, 0x01d3, 0x0f34, 0x0d97,
+ 0xfd29, 0x00e3, 0x1086, 0x1a18, 0x1116, 0x0478,
+ 0x0a94, 0x0b26, 0x0686, 0x0c74, 0x0589, 0x0686,
+ 0x16ac, 0x0539, 0xf704, 0x0a4c, 0x065c, 0xff21,
+ 0x0d87, 0x007a, 0xf3b2, 0x06a6, 0x051f, 0xf479,
+ 0xfa89, 0x0202, 0xff06, 0xfd2c, 0xfa85, 0xf821,
+ 0xfbd9, 0x016c, 0x0096, 0xfd70, 0xfb41, 0xf546,
+ 0xfaec, 0x0b27, 0x02ed, 0xf0cb, 0xf7f3, 0x01ac,
+ 0xfdeb, 0x0043, 0x0b45, 0x0db1, 0xfc61, 0xef44,
+ 0xf9ec, 0xfc05, 0xf5e6, 0x0533, 0x0929, 0xf9a1,
+ 0xfe18, 0x012d, 0xf4ee, 0xf9c8, 0x0053, 0xfa79,
+ 0xfe80, 0xffc8, 0xf924, 0x019c, 0x0acf, 0x081d,
+ 0x09c1, 0x0885, 0xffeb, 0x0117, 0x0693, 0x0b03,
+ 0x161c, 0x1543, 0x036f, 0xff39, 0x0724, 0x086e,
+ 0x0cee, 0x112a, 0x0853, 0x0170, 0x035e, 0x03d2,
+ 0x03c2, 0x048b, 0x0522, 0x0766, 0x0809, 0x0561,
+ 0x009d, 0xfd50, 0x0259, 0x09a9, 0x0bff, 0x0da3,
+ 0x0962, 0x0224, 0x066d, 0x0727, 0xfc90, 0x011e,
+ 0x0bb7, 0x0049, 0xf618, 0x02a3, 0x0b07, 0xfee9,
+ 0xf40e, 0xfc3d, 0x08d1, 0x052b, 0xfc3f, 0xff34,
+ 0x0165, 0xfa9a, 0xfba9, 0x04ab, 0x025e, 0xfb55,
+ 0x02e9, 0x0897, 0xf978, 0xf0f2, 0xfdd9, 0x02a6,
+ 0xfaca, 0xfa7a, 0x0174, 0x07c2, 0xffbe, 0xedab,
+ 0xf383, 0x020b, 0xf853, 0xf47d, 0xfbdb, 0xf54f,
+ 0xf686, 0xfa0a, 0xef57, 0xfaef, 0x0c97, 0xfd55,
+ 0xf1e4, 0xf7b2, 0xfbac, 0x0780, 0x08d5, 0xf80c,
+ 0xfb6a, 0x0857, 0xff46, 0xf4f4, 0xfc42, 0x0523,
+ 0x031e, 0xffaf, 0xfd9c, 0xf71e, 0xfbd7, 0x0774,
+ 0x04d7, 0x092c, 0x0c26, 0xf49d, 0xf616, 0x0f8d,
+ 0x02f9, 0xf8e8, 0x0c7e, 0x091b, 0xfd2a, 0xffc4,
+ 0xfedc, 0x0c33, 0x19d2, 0x0610, 0xf769, 0xff36,
+ 0xfc33, 0xf71b, 0x0459, 0x10f9, 0x08f9, 0xf92b,
+ 0xf8e1, 0x0363, 0x07b7, 0x062d, 0x05f8, 0x09e0,
+ 0x0a79, 0x01b0, 0xf791, 0xf2d1, 0xfd50, 0x1248,
+ 0x0f07, 0xfcb0, 0x003a, 0x06ab, 0x02ad, 0x04d2,
+ 0x0403, 0x021f, 0x06d7, 0x04c3, 0x04af, 0x08e1,
+ 0x02e9, 0x0145, 0x0574, 0x018d, 0xfef3, 0x00a0,
+ 0x07a8, 0x0f89, 0x0518, 0xfcfd, 0x07df, 0x077a,
+ 0x0074, 0x0441, 0x0277, 0x00f0, 0x05e1, 0x017e,
+ 0xf964, 0xf598, 0xf867, 0x0274, 0x0001, 0xf5d6,
+ 0xfb1f, 0xff0b, 0xf99d, 0xfbff, 0xfbb6, 0xf742,
+ 0x000c, 0x0472, 0xf9a7, 0xf7d5, 0xf8f4, 0xf0bc,
+ 0xf74d, 0x0254, 0xfbed, 0x0302, 0x0b79, 0xf323,
+ 0xef78, 0x09ce, 0x01fc, 0xf384, 0x02bc, 0x07ff,
+ 0x02c1, 0x0272, 0xfc71, 0xfd8d, 0x03ca, 0x012a,
+ 0xfe3d, 0xfa18, 0xfc4d, 0x05ae, 0xfb16, 0xeef5,
+ 0xfdbc, 0x0c78, 0x098d, 0xff6a, 0xfd95, 0x06ff,
+ 0x0369, 0xfeb8, 0x0b9b, 0x0580, 0xfad5, 0x0d25,
+ 0x0af6, 0xf45b, 0xfce9, 0x0b21, 0x0b7a, 0x0d35,
+ 0x0439, 0xfe51, 0x092a, 0x05dc, 0xfcb8, 0x0a81,
+ 0x135b, 0x05a3, 0x0124, 0x07ef, 0x02ff, 0x0433,
+ 0x10aa, 0x0992, 0xffd9, 0x0780, 0x030b, 0xfb59,
+ 0x06f2, 0x0f22, 0x106d, 0x0e81, 0x01fd, 0x0175,
+ 0x0a45, 0x030a, 0x010f, 0x1089, 0x17ed, 0x0f49,
+ 0x0529, 0x064a, 0x0aa0, 0x0b03, 0x11a0, 0x11f4,
+ 0x069e, 0x0695, 0x079f, 0x01c6, 0x06d8, 0x09da,
+ 0x060a, 0x0783, 0x048a, 0x03b9, 0x0633, 0xfe07,
+ 0xff98, 0x090e, 0x03fc, 0x0429, 0x0b05, 0x0736,
+ 0x0165, 0xf96e, 0xf8e6, 0x0706, 0x05df, 0xfbe6,
+ 0x00ac, 0xff16, 0xf925, 0x025c, 0x091a, 0x016d,
+ 0xf97c, 0x00c2, 0x0cf8, 0x0336, 0xf3c2, 0xfa2c,
+ 0x017b, 0xfa13, 0xf2d4, 0xf571, 0xfd6f, 0x0028,
+ 0x01ee, 0x018a, 0xf22d, 0xf005, 0x02f8, 0xfc7b,
+ 0xf02b, 0x0585, 0x0f05, 0xfb2a, 0xf4d2, 0xfa8b,
+ 0xf7a9, 0xf813, 0x024e, 0x0695, 0x0099, 0xfdc6,
+ 0xff58, 0x00a2, 0xfd59, 0xed4a, 0xe9f2, 0x01b0,
+ 0x073c, 0xf96e, 0xfa8e, 0xf921, 0xfa02, 0x08a3,
+ 0x029a, 0xfa21, 0x0566, 0xffd3, 0xf9d9, 0x0768,
+ 0x049f, 0xffbe, 0x0b70, 0x08dd, 0xfef3, 0x01c5,
+ 0x0548, 0x049a, 0x0241, 0x02db, 0x05eb, 0x006e,
+ 0xfcfe, 0x0631, 0x0b8e, 0x0799, 0x0743, 0x0eaf,
+ 0x0c4c, 0xf949, 0xf8d3, 0x0c41, 0x079b, 0xfd0d,
+ 0x09c0, 0x0bc4, 0x0098, 0x0598, 0x0e71, 0x0dae,
+ 0x09dd, 0x069f, 0x0644, 0x02f7, 0xfdca, 0x035f,
+ 0x0b21, 0x0702, 0x009b, 0x035c, 0x07b1, 0x047e,
+ 0x04bd, 0x0ba6, 0x07f8, 0x025a, 0x061e, 0xfe33,
+ 0xf655, 0x06e3, 0x0d39, 0xfeb1, 0x03c6, 0x0ccc,
+ 0xfb87, 0xf531, 0x0732, 0x0a4a, 0xff17, 0xfae5,
+ 0xfcc8, 0x0ac3, 0x149f, 0x0123, 0xf4ae, 0x028d,
+ 0x0302, 0xfb26, 0xfeef, 0xfa97, 0xf59c, 0xf97f,
+ 0xf85f, 0x006a, 0x0b4a, 0xff42, 0xf623, 0xfbcd,
+ 0xf898, 0xf586, 0xfac6, 0xfe52, 0x0357, 0x0579,
+ 0x00b9, 0xfd10, 0xf943, 0xf736, 0xf9b1, 0xfd12,
+ 0x041d, 0x04ff, 0xf918, 0xf4b5, 0xf9f0, 0xfbc3,
+ 0xfcf5, 0xfd10, 0xffcc, 0x036a, 0xf712, 0xefbc,
+ 0xfe70, 0xffc6, 0xf6ed, 0xfdf7, 0xfe63, 0xfd43,
+ 0x0afb, 0x03ff, 0xf399, 0x00fe, 0x08c0, 0xfc98,
+ 0xff9d, 0x036e, 0xfc65, 0x00a6, 0x043f, 0x01e6,
+ 0x08d8, 0x0504, 0xf5c7, 0xfb09, 0x04fd, 0xfc21,
+ 0xf7c8, 0xffa2, 0xff87, 0xfaa4, 0xfc64, 0xfe7f,
+ 0xfed0, 0x013b, 0x0226, 0x04ee, 0x0a3c, 0x032c,
+ 0xfa2c, 0x01af, 0x02be, 0xfcb0, 0x0a19, 0x099b,
+ 0xed14, 0xf15a, 0x0fd7, 0x0e92, 0x0233, 0x032b,
+ 0xfcb8, 0xfac8, 0x04c7, 0x00fc, 0xfaab, 0x0235,
+ 0x0102, 0xf624, 0xf718, 0x01ed, 0x0a5a, 0x0434,
+ 0xf392, 0xf50f, 0x040a, 0x0327, 0xfe18, 0x0159,
+ 0xfe4d, 0xf972, 0xfa9e, 0xfe24, 0x041c, 0x01dc,
+ 0xfb5b, 0x00df, 0x004d, 0xf72c, 0xfae7, 0xfaaf,
+ 0xf4cc, 0xff2f, 0x044c, 0xf905, 0xf1f0, 0xf1a2,
+ 0xfaa8, 0x027e, 0xf788, 0xf2ce, 0xfad1, 0xf87f,
+ 0xfb32, 0x0389, 0xfd0c, 0xfbf7, 0x0461, 0x0141,
+ 0xfe6a, 0x01d6, 0xfefc, 0xfab8, 0xf948, 0xf785,
+ 0xf918, 0xfe5c, 0xfcf2, 0xf330, 0xf5c4, 0x0304,
+ 0xfcbb, 0xeec9, 0xf17b, 0xf384, 0xf35b, 0xf927,
+ 0xf2e8, 0xe74b, 0xe6eb, 0xe830, 0xe8cc, 0xe8dc,
+ 0xe74d, 0xe974, 0xe3a3, 0xdb53, 0xe726, 0xf0da,
+ 0xe687, 0xdfd9, 0xe057, 0xdf54, 0xe223, 0xe929,
+ 0xf0ba, 0xeac0, 0xd7b9, 0xd938, 0xe888, 0xe69b,
+ 0xea25, 0xf761, 0xeaea, 0xdb76, 0xe6d0, 0xee01,
+ 0xe9e4, 0xf13f, 0xf53c, 0xee7c, 0xf47a, 0xff03,
+ 0xf7a6, 0xed05, 0xf189, 0xfd33, 0x020e, 0xfc09,
+ 0xf505, 0xf818, 0xffd7, 0x008e, 0xf77e, 0xeed2,
+ 0xf3e3, 0x0102, 0x0760, 0x044f, 0xfaab, 0xf4d2,
+ 0xf9c6, 0xfcaf, 0xfd25, 0x0346, 0x0149, 0xfb9d,
+ 0x03cf, 0x082d, 0x02ce, 0x083a, 0x0ecd, 0x0a8a,
+ 0x095e, 0x0c9e, 0x0f80, 0x140f, 0x10b6, 0x0737,
+ 0x0ef0, 0x223d, 0x1de0, 0x06f0, 0x05d1, 0x15d5,
+ 0x1566, 0x0c19, 0x0ad8, 0x0a01, 0x0b33, 0x0fad,
+ 0x0e92, 0x1131, 0x1806, 0x1292, 0x0bd9, 0x0bf6,
+ 0x05e4, 0x0b7b, 0x2101, 0x1a3a, 0x0000, 0x0317,
+ 0x1025, 0x0b10, 0x0a05, 0x11af, 0x1367, 0x0e9f,
+ 0x06e3, 0x07ca, 0x0dc5, 0x0814, 0x0566, 0x09a2,
+ 0x03cb, 0x03c7, 0x07c8, 0xfd3e, 0x0066, 0x1247,
+ 0x112f, 0x0983, 0x0202, 0xf63d, 0x0090, 0x1309,
+ 0x0c57, 0x014b, 0x0408, 0x09cc, 0x0770, 0xfd55,
+ 0x00d5, 0x0b2e, 0x0357, 0x01b0, 0x0ac8, 0xffe1,
+ 0xf6ee, 0xfe01, 0xf9ca, 0xf3a9, 0xf8be, 0xfac0,
+ 0xf8ae, 0xf613, 0xf8c7, 0x0516, 0x09d4, 0xfebf,
+ 0xf04c, 0xeff3, 0x0326, 0x0ce3, 0x0379, 0x04d8,
+ 0x0830, 0xfb70, 0xf6e9, 0x013f, 0x0a8d, 0x0b1a,
+ 0x0305, 0x037d, 0x0925, 0x00c7, 0xfe45, 0x0805,
+ 0x08c4, 0x0ad0, 0x0f8f, 0x084b, 0x03fe, 0x0836,
+ 0x0813, 0x044f, 0x02f9, 0x08b2, 0x0bec, 0x0629,
+ 0x0874, 0x0c74, 0x0801, 0x0bd9, 0x0768, 0xf4ed,
+ 0xfdb0, 0x0f17, 0x0226, 0xf9e0, 0x0669, 0x0504,
+ 0xf824, 0xfb88, 0x0650, 0xffe7, 0xf61f, 0xfbfe,
+ 0xfaed, 0xf0e2, 0xf880, 0x027e, 0xfbdb, 0xf3a6,
+ 0xf4b9, 0xfe31, 0xfd81, 0xecc4, 0xef6b, 0x006e,
+ 0xfc90, 0xf910, 0x0161, 0xffd3, 0x005f, 0x0416,
+ 0xfb29, 0xf90c, 0x008a, 0xfbe8, 0xf804, 0x033c,
+ 0x0a5d, 0x0299, 0xfbcd, 0xfeb6, 0x01b0, 0x021d,
+ 0x039f, 0x02a4, 0xff8b, 0xfdab, 0xff0b, 0x0332,
+ 0x0122, 0xfe8d, 0x0541, 0x03fa, 0xfda7, 0x05fe,
+ 0x083d, 0xfca9, 0xfb0f, 0x0096, 0x08c8, 0x1025,
+ 0x0499, 0xfcaa, 0x0b1b, 0x0ab5, 0xfc2e, 0x018e,
+ 0x07c6, 0xfee1, 0xfde5, 0x033c, 0x0057, 0xff2d,
+ 0x01bd, 0xfc0a, 0xf6ca, 0xfe98, 0x068d, 0x0495,
+ 0x01f9, 0x0181, 0xfee8, 0xfb86, 0xf88a, 0xf8eb,
+ 0xff8d, 0x0422, 0x008a, 0xffd0, 0x06c2, 0x05ee,
+ 0xfc36, 0xfbc0, 0x025a, 0x03d9, 0x01ee, 0xfbd6,
+ 0xf580, 0xf905, 0xfe01, 0xfacf, 0xf406, 0xf1d7,
+ 0xf97a, 0xfd1e, 0xf6fb, 0xfbc8, 0x0083, 0xf616,
+ 0xfa4b, 0x0609, 0xfa28, 0xf305, 0xfd6d, 0xfacc,
+ 0xf4a1, 0xfbf8, 0xfc29, 0xf3a8, 0xf819, 0xfdbb,
+ 0xf299, 0xf190, 0xff3a, 0xf37b, 0xe4b5, 0xf8ad,
+ 0x0145, 0xf04a, 0xefc3, 0xf221, 0xec76, 0xf557,
+ 0xfed0, 0xffbc, 0xfec1, 0xf45b, 0xf2a5, 0xff5e,
+ 0xfc9c, 0xf705, 0x0454, 0x0783, 0xf67c, 0xf461,
+ 0x0835, 0x0e4b, 0x02f8, 0x0496, 0x03be, 0xf033,
+ 0xf2af, 0x08c7, 0x05b5, 0xfaa0, 0xfeea, 0xfdb7,
+ 0xf4ff, 0xf2e1, 0xf740, 0xfe82, 0x032e, 0x0161,
+ 0xf800, 0xec9b, 0xeeca, 0xfaa4, 0xff31, 0x00da,
+ 0x02f6, 0xff06, 0xfb07, 0xfa42, 0xfb07, 0x0244,
+ 0x07ff, 0x0052, 0xf816, 0xfcf7, 0x026e, 0xfe50,
+ 0xfc28, 0x0082, 0x036e, 0x058a, 0x04fe, 0xfd39,
+ 0xfa19, 0x0209, 0x0828, 0x0733, 0x05ce, 0x0752,
+ 0x0ab0, 0x0e0f, 0x0e58, 0x07ec, 0x01e7, 0x07c0,
+ 0x10d8, 0x10de, 0x0bf6, 0x0687, 0x089a, 0x15b4,
+ 0x1859, 0x0ced, 0x0b02, 0x0db1, 0x07fc, 0x06bc,
+ 0x0cef, 0x126b, 0x1543, 0x1107, 0x0e51, 0x143d,
+ 0x0f5c, 0x0631, 0x130f, 0x1cb2, 0x0f54, 0x0c68,
+ 0x1321, 0x0a97, 0x089f, 0x1220, 0x0b8f, 0x04d8,
+ 0x0f85, 0x1176, 0x0868, 0x0bc2, 0x11be, 0x09a5,
+ 0x02f7, 0x0adc, 0x1190, 0x0b93, 0x0595, 0x080e,
+ 0x089e, 0x013d, 0xfe7f, 0x0598, 0x04f4, 0xfe0e,
+ 0x04c2, 0x06f5, 0xf539, 0xeff0, 0xfe77, 0x061c,
+ 0x0579, 0x028c, 0xfcf3, 0xf835, 0xf7b9, 0x063f,
+ 0x148f, 0x0591, 0xf983, 0x06e7, 0x0482, 0xf781,
+ 0xfd8c, 0xff5c, 0xfbd1, 0x0413, 0x0227, 0xf41c,
+ 0xf25b, 0xfbab, 0x025a, 0xff01, 0xf8dc, 0xfbbc,
+ 0xfe69, 0xfca4, 0x00dd, 0x048a, 0xffc5, 0xf949,
+ 0xf723, 0xfc4f, 0x0340, 0x03f7, 0x018f, 0xfeea,
+ 0xfff9, 0x0535, 0xffa2, 0xf664, 0xff48, 0x0484,
+ 0xf6da, 0xf814, 0x07ae, 0x0601, 0x004d, 0x0006,
+ 0xf562, 0xf620, 0x0ae4, 0x0c6e, 0xfd76, 0xfcc1,
+ 0xff77, 0xfd1c, 0x019f, 0x08b8, 0x091d, 0x0417,
+ 0x01a4, 0x01bb, 0xfcfa, 0xffe4, 0x09ed, 0x0383,
+ 0xff86, 0x0a9b, 0x0638, 0x02ad, 0x0d8b, 0x0103,
+ 0xf417, 0x05f9, 0x0bf1, 0x032d, 0x0664, 0x0431,
+ 0x0317, 0x0cc9, 0x0551, 0xf726, 0xfca6, 0x06b6,
+ 0x0b3e, 0x0cb1, 0x0625, 0xff46, 0x01c3, 0x06dd,
+ 0x0522, 0xfe33, 0xfc31, 0x004c, 0x0112, 0xfe46,
+ 0x0091, 0x08ec, 0x0d8f, 0x09a6, 0x0601, 0x055f,
+ 0x00d5, 0xfdc5, 0x0379, 0x08bc, 0x0640, 0x0245,
+ 0x0116, 0x0022, 0x004b, 0x03ec, 0x07ea, 0x094f,
+ 0x06e6, 0x012f, 0xfd95, 0xfc36, 0xfb6b, 0x01fe,
+ 0x0a77, 0x074f, 0xffcb, 0x0031, 0x05c1, 0x0421,
+ 0xf7a4, 0xf7b3, 0x0a40, 0x0b96, 0xfc0c, 0xfcf8,
+ 0x04e5, 0x02af, 0x0041, 0x00e6, 0x0269, 0x01f4,
+ 0x00d7, 0x08b3, 0x0b11, 0xff4e, 0x00e6, 0x08b8,
+ 0xfd0c, 0xf5f0, 0x000a, 0x050c, 0x03e4, 0x0317,
+ 0x02cc, 0x0386, 0xfcb5, 0xf5c2, 0xfac0, 0xfc72,
+ 0xfaa8, 0x0285, 0x0542, 0xfdbc, 0xfa7a, 0xfb7c,
+ 0xfeb5, 0x02a4, 0x0365, 0x0589, 0x03d1, 0xfc39,
+ 0xff5a, 0x05cc, 0xffde, 0xfde8, 0x06ab, 0x0a0d,
+ 0x04b4, 0xffb7, 0x02d6, 0x0582, 0xfc36, 0xf8eb,
+ 0x03e0, 0x0824, 0x085a, 0x0b3c, 0x0234, 0xf8a0,
+ 0xfe32, 0x0160, 0xfe3e, 0x034f, 0x08e2, 0x0359,
+ 0xff0b, 0x0785, 0x0c67, 0x01c5, 0xfc49, 0x0298,
+ 0x02b9, 0x0336, 0x0c43, 0x0bd3, 0x050e, 0x0ac0,
+ 0x0f72, 0x04b1, 0xfcd5, 0x02f1, 0x0a1f, 0x0f34,
+ 0x12fc, 0x0a3c, 0xfcb3, 0xfdb4, 0x0584, 0x0970,
+ 0x0d06, 0x0bc9, 0x031d, 0xfa15, 0xf7c7, 0x00dc,
+ 0x091a, 0x0620, 0x06b5, 0x0a1e, 0x03bf, 0x0229,
+ 0x0749, 0x0315, 0x0413, 0x1245, 0x14d4, 0x0beb,
+ 0x0aa2, 0x05f6, 0xf87d, 0xfaf2, 0x0a6b, 0x0a9d,
+ 0x01b6, 0x01cc, 0x062b, 0x08ac, 0x0457, 0xfd03,
+ 0x002a, 0x02fa, 0x00c4, 0x093e, 0x0936, 0xf962,
+ 0xfc13, 0x075a, 0x0477, 0x0571, 0x066c, 0x0089,
+ 0x03ce, 0x01dd, 0xf4d1, 0xf3c9, 0xf946, 0xfe03,
+ 0x048e, 0xff8e, 0xfbae, 0x070b, 0x0553, 0xf5cd,
+ 0xf5fa, 0xfe0d, 0x0010, 0x0429, 0x084c, 0x05f0,
+ 0x0276, 0x0191, 0xff80, 0xfb45, 0xfc12, 0x04b4,
+ 0x0975, 0x0062, 0xf259, 0xf042, 0xfab9, 0x020c,
+ 0x0189, 0x01ce, 0x023d, 0xff29, 0xfc64, 0xf8d2,
+ 0xf754, 0x0432, 0x13e5, 0x0f0d, 0x02ef, 0x0387,
+ 0x04ec, 0x0313, 0x0859, 0x0ac1, 0x042b, 0x021d,
+ 0x0625, 0x0a05, 0x0ef9, 0x0ec5, 0x015f, 0xf3da,
+ 0xf9f0, 0x0890, 0x066d, 0xfefe, 0x04c5, 0x043c,
+ 0xf942, 0xfcdd, 0x064b, 0x0338, 0xff57, 0xfd0e,
+ 0xf861, 0xfb16, 0xfdc5, 0xf8b4, 0xfcba, 0x06cb,
+ 0x03d8, 0xffda, 0x0641, 0x05d3, 0xfd5c, 0xfd35,
+ 0xfe7b, 0xfa05, 0xfd17, 0x02ae, 0xfe96, 0x0105,
+ 0x0b23, 0x0475, 0xf6ca, 0xfa84, 0x04f1, 0x057f,
+ 0xfe41, 0xf9ac, 0xfe97, 0x0151, 0xfb4d, 0xfa01,
+ 0xfa20, 0xf945, 0x0782, 0x0f6f, 0xfa91, 0xf0f7,
+ 0x0178, 0x03ee, 0xfb58, 0x012d, 0x058a, 0x01c5,
+ 0x0344, 0x0015, 0xf780, 0xfd36, 0x0669, 0xffcc,
+ 0xf96c, 0x00f4, 0x09a7, 0x083e, 0xfd90, 0xf689,
+ 0xfcae, 0x0035, 0xf981, 0xfa6b, 0x006e, 0xfd7d,
+ 0xfd1b, 0x0302, 0x0142, 0xfec4, 0x0321, 0x007b,
+ 0xfcd5, 0x08a3, 0x0e14, 0x0015, 0xfd4d, 0x0642,
+ 0x00a4, 0xfe52, 0x0d69, 0x117f, 0x06a4, 0x0350,
+ 0x04d0, 0xff06, 0xfb89, 0x0535, 0x0937, 0xfd0f,
+ 0xfdbb, 0x08df, 0x0122, 0xff12, 0x0cf0, 0x0446,
+ 0xf67f, 0x0151, 0x04d8, 0xfbe9, 0xfec3, 0x0016,
+ 0xfb80, 0xff80, 0x0111, 0xfb83, 0xff61, 0x09bd,
+ 0x0afa, 0x043e, 0xfb5b, 0xf29a, 0xf452, 0x0068,
+ 0x03fe, 0xff93, 0x0374, 0x0641, 0xf9b6, 0xf12f,
+ 0xff77, 0x0c8e, 0x026b, 0xf9bc, 0x0273, 0x07ad,
+ 0x042a, 0x016c, 0x00cd, 0x05f9, 0x0a95, 0x07c5,
+ 0x06f1, 0x080a, 0x075b, 0x05f1, 0x0116, 0x0247,
+ 0x0631, 0xff30, 0x00d6, 0x09b2, 0x024b, 0xfe1a,
+ 0xffc0, 0xfa09, 0x025f, 0x08dd, 0xfc90, 0x001e,
+ 0x0585, 0xf955, 0xfd74, 0x0520, 0xffab, 0x0810,
+ 0x0b97, 0xfe1d, 0x02c3, 0x0ce2, 0x03c4, 0x00b2,
+ 0x09cd, 0x0480, 0xf80e, 0x0013, 0x0b97, 0x02d0,
+ 0xff08, 0x061b, 0x001d, 0xfd5a, 0x0582, 0x0182,
+ 0xfa95, 0xfbde, 0xfb80, 0xfd77, 0x051a, 0x0a9a,
+ 0x0368, 0xf426, 0xf8d9, 0x084f, 0x0180, 0xf8e7,
+ 0x011a, 0x0518, 0x028b, 0x003a, 0xfd99, 0xfd6e,
+ 0xfb04, 0xf9c1, 0xfcee, 0xfab9, 0xfa2b, 0xfcf3,
+ 0xf6e3, 0xf5d9, 0x0205, 0x08a5, 0x00f5, 0xf442,
+ 0xf369, 0xfc77, 0xff2e, 0x020a, 0x0411, 0xfc3d,
+ 0xfbb2, 0xff18, 0xfae1, 0xff37, 0x029e, 0xfe82,
+ 0x0503, 0x029d, 0xf6d8, 0x017f, 0x0934, 0xff01,
+ 0x0490, 0x0e23, 0x057e, 0xffea, 0x0533, 0x07c8,
+ 0x03f3, 0xfde0, 0xfa8b, 0xfba3, 0x0166, 0x0683,
+ 0x03ad, 0xfe2a, 0xf995, 0xf5bd, 0xf802, 0xfa68,
+ 0xfb39, 0x015d, 0xfdca, 0xf1f6, 0xf7a7, 0xfeaf,
+ 0xf38e, 0xf1d2, 0xff27, 0xff2b, 0xf31e, 0xee15,
+ 0xf13c, 0xf7fe, 0xfde9, 0xfb3f, 0xf385, 0xf22c,
+ 0xf56a, 0xf40e, 0xef7d, 0xf25f, 0xfc04, 0xf852,
+ 0xe83b, 0xe9cd, 0xf820, 0xf69e, 0xef67, 0xf1e4,
+ 0xf52e, 0xf75d, 0xf6e4, 0xeeb7, 0xeb68, 0xf4a9,
+ 0xf9b2, 0xf2d0, 0xf195, 0xf61c, 0xee75, 0xec4b,
+ 0xfa4d, 0xf4f3, 0xe318, 0xe7dd, 0xeed9, 0xebdd,
+ 0xeda7, 0xebeb, 0xee93, 0xf77a, 0xebde, 0xdf84,
+ 0xe695, 0xe725, 0xe966, 0xf778, 0xf699, 0xf1d0,
+ 0xfaa6, 0xfa89, 0xf1be, 0xf410, 0xfb41, 0xface,
+ 0xf3ba, 0xefb8, 0xf295, 0xf498, 0xf652, 0xfc64,
+ 0xfdfc, 0xfa96, 0xfff7, 0x065f, 0xfc30, 0xf2df,
+ 0xfd90, 0x08a6, 0x08bc, 0x06a0, 0xfffb, 0xfe82,
+ 0x0b4a, 0x10a5, 0x08e6, 0x0247, 0xfeaf, 0x0413,
+ 0x0d0a, 0x0b29, 0x0bf7, 0x0fb6, 0x0610, 0x0265,
+ 0x0d0c, 0x0e82, 0x0bc5, 0x12d9, 0x15a3, 0x0cb8,
+ 0x08ce, 0x1227, 0x1717, 0x1323, 0x19a4, 0x2164,
+ 0x1926, 0x1316, 0x1572, 0x178e, 0x2131, 0x271b,
+ 0x1cda, 0x1797, 0x1c28, 0x1c7a, 0x1be1, 0x1d9e,
+ 0x209f, 0x20c9, 0x162d, 0x0f21, 0x15dc, 0x176a,
+ 0x1384, 0x15ff, 0x15ba, 0x1333, 0x143e, 0x0ffb,
+ 0x0977, 0x09bf, 0x0d23, 0x0eb1, 0x0c46, 0x0b56,
+ 0x0e64, 0x0b17, 0x0839, 0x0eff, 0x0e79, 0x0783,
+ 0x091d, 0x0819, 0x0243, 0x059a, 0x0cc2, 0x0c29,
+ 0x032b, 0xfe4c, 0x04fe, 0x02ee, 0xf77b, 0xfdea,
+ 0x0915, 0x033a, 0xfc99, 0xf9db, 0xf5d4, 0xf960,
+ 0xfe5c, 0xfe9b, 0x02ed, 0x04f5, 0xfdda, 0xfa1e,
+ 0xfc54, 0xfa25, 0xf8c4, 0xfff3, 0x0347, 0xffac,
+ 0x015b, 0x0018, 0xf8f2, 0xff4a, 0x0a40, 0x0477,
+ 0xf9c2, 0xfbfd, 0x071f, 0x067a, 0xf7fc, 0xf8e8,
+ 0x0348, 0xfa90, 0xf673, 0x04c3, 0x0705, 0xff07,
+ 0xfcf9, 0xfa04, 0xf80f, 0xfad9, 0xfc92, 0xfa68,
+ 0xf773, 0xfc47, 0x00b0, 0xf8d7, 0xf572, 0xfb85,
+ 0xff6d, 0x0543, 0x052f, 0xfba5, 0xfc08, 0x0046,
+ 0xfe39, 0xfec7, 0xfc7b, 0xfae1, 0x014a, 0xfd50,
+ 0xf237, 0xf227, 0xf530, 0xf8d2, 0xfeab, 0xfd32,
+ 0xf9f7, 0xfce2, 0x00b1, 0x02b6, 0x01c1, 0xff36,
+ 0xffb9, 0x01e1, 0x02df, 0x0404, 0x0804, 0x0a9d,
+ 0x0694, 0x055b, 0x0716, 0x0089, 0x004a, 0x0d31,
+ 0x11b1, 0x0ebe, 0x0b5d, 0x0051, 0xfcd6, 0x06b3,
+ 0x068e, 0x0168, 0x08fc, 0x0eba, 0x0834, 0x00b9,
+ 0xfc23, 0xff6c, 0x10a0, 0x17c7, 0x0865, 0x03e3,
+ 0x0b9c, 0x02ca, 0xfd94, 0x0743, 0x05ec, 0x03f5,
+ 0x083c, 0x0127, 0x0156, 0x0cae, 0x0861, 0xfed5,
+ 0xfc70, 0xfbae, 0x029b, 0x0621, 0xfd59, 0xfa3c,
+ 0xfc8f, 0xfb5e, 0xf9a9, 0xf544, 0xf2e7, 0xf642,
+ 0xf9ab, 0xff37, 0xfe6d, 0xf3b7, 0xf692, 0x0248,
+ 0xfcf5, 0xf29c, 0xf2b1, 0xf0e4, 0xeacf, 0xef11,
+ 0xfabc, 0xf984, 0xf11a, 0xf53c, 0xf7a6, 0xed30,
+ 0xea19, 0xf236, 0xf8ba, 0xf760, 0xeed4, 0xf00d,
+ 0xfb77, 0xf9c7, 0xf37d, 0xf791, 0xf9a1, 0xfa91,
+ 0xfce7, 0xf760, 0xf574, 0xfd89, 0x0087, 0xfd71,
+ 0xfdcf, 0x00da, 0xfcc3, 0xf20a, 0xf31f, 0xfe51,
+ 0x0035, 0xfcae, 0xf9ea, 0xf763, 0xfa7f, 0xfa13,
+ 0xf8b6, 0x0528, 0x0929, 0xff31, 0x021b, 0x0319,
+ 0xf87f, 0xf8e5, 0xfa54, 0xf850, 0xfe6a, 0xfa39,
+ 0xf3f2, 0x00c9, 0x0557, 0xfc71, 0xfd0e, 0xfe1a,
+ 0xfc7e, 0xfcdc, 0xfa65, 0x0286, 0x0cdd, 0x018a,
+ 0xf7a8, 0xfc35, 0xf944, 0xf5b4, 0xfcbb, 0x02ea,
+ 0x03eb, 0xfdc5, 0xf348, 0xf126, 0xf92b, 0x01f4,
+ 0xfd3e, 0xef6f, 0xf37f, 0xfd9a, 0xf5ee, 0xf984,
+ 0x0c1a, 0x08d1, 0xfeeb, 0x03b3, 0x035a, 0x00a7,
+ 0x0564, 0x06ca, 0x07dd, 0x0676, 0xfcef, 0xfe4c,
+ 0x088d, 0x07f9, 0x0684, 0x07a8, 0x02c5, 0x0277,
+ 0x0249, 0xfc2f, 0x06bb, 0x16b0, 0x0bb9, 0xfaed,
+ 0xfd45, 0x0624, 0x0d76, 0x0dde, 0x0762, 0x09a8,
+ 0x0ae2, 0xff52, 0xff4a, 0x0c3f, 0x1032, 0x117b,
+ 0x129e, 0x0bd3, 0x0867, 0x08f7, 0x069d, 0x099f,
+ 0x0bad, 0x0572, 0x0515, 0x0872, 0x0624, 0x0866,
+ 0x0d5a, 0x0b47, 0x0925, 0x086d, 0x07ca, 0x0cc4,
+ 0x0df8, 0x0660, 0x048a, 0x070b, 0x048c, 0x0429,
+ 0x0726, 0x097d, 0x0c34, 0x0856, 0x010a, 0x05ac,
+ 0x0c96, 0x06af, 0x0279, 0x0afe, 0x1105, 0x0c24,
+ 0x06df, 0x03fa, 0x00d9, 0x05d5, 0x0d15, 0x0888,
+ 0x0765, 0x0f6f, 0x0ceb, 0x084f, 0x09d7, 0x0330,
+ 0x0186, 0x08de, 0x029b, 0xfe96, 0x0794, 0x047c,
+ 0xff6c, 0x06a1, 0x070c, 0x0582, 0x09ec, 0x03bb,
+ 0xfb54, 0x0095, 0x07d6, 0x09b8, 0x08ab, 0x02cb,
+ 0xff18, 0x0513, 0x0963, 0x0402, 0x01af, 0x043b,
+ 0x00fe, 0x02d7, 0x0dab, 0x0d20, 0x0589, 0x06bb,
+ 0x0851, 0x05d2, 0x016e, 0xfc96, 0x01a2, 0x07f5,
+ 0x01aa, 0xfdf4, 0xfeea, 0xf9b9, 0xfbe3, 0x0440,
+ 0x032a, 0x0312, 0x06ee, 0x03a4, 0x0220, 0x052a,
+ 0x01f7, 0x000a, 0x04fe, 0x0493, 0xff9c, 0x013f,
+ 0x052b, 0x0501, 0x0512, 0x05a2, 0x0508, 0x06bc,
+ 0x0859, 0x07e1, 0x09b1, 0x09b1, 0x04c1, 0x012d,
+ 0xfe8e, 0x0025, 0x0a6a, 0x0b5a, 0xfffb, 0x01d4,
+ 0x0c26, 0x0aee, 0x072c, 0x062a, 0x0565, 0x0aa1,
+ 0x0b9d, 0x04a0, 0x05c4, 0x0773, 0x020a, 0x051f,
+ 0x0b9a, 0x0af5, 0x09b1, 0x039a, 0xfd0e, 0x0422,
+ 0x0b88, 0x0a20, 0x0bda, 0x0d41, 0x0826, 0x042e,
+ 0x0279, 0x0000, 0x025a, 0x0c71, 0x1256, 0x0e04,
+ 0x0ba7, 0x09ea, 0x02ea, 0x03ec, 0x08ca, 0x08f6,
+ 0x0ef7, 0x0b6c, 0xfc93, 0x0462, 0x0da7, 0x00d0,
+ 0x03c8, 0x0d24, 0xffef, 0xffca, 0x0f0e, 0x0ce4,
+ 0x09e7, 0x0e65, 0x09c5, 0x0520, 0x04f5, 0x028b,
+ 0x033d, 0x0418, 0x0035, 0xfe89, 0xfeea, 0xfd7d,
+ 0xfcd9, 0xfe5f, 0x0311, 0x070a, 0x0007, 0xf70b,
+ 0xfe45, 0x080b, 0x0649, 0x09b3, 0x0da5, 0x006c,
+ 0xf6ea, 0xfc9b, 0xfe94, 0xfe61, 0x02f3, 0x05c6,
+ 0x07fd, 0x074c, 0xfe2d, 0xf5eb, 0xfae6, 0x0765,
+ 0x05be, 0xf9b7, 0xfb8f, 0xffb0, 0xfd22, 0x0605,
+ 0x0965, 0xfe87, 0x0145, 0x052e, 0xfe0e, 0x0226,
+ 0x0649, 0x011d, 0x0263, 0x0183, 0xfd5f, 0xfe6d,
+ 0xfdf1, 0x04ff, 0x0d1b, 0x01db, 0xfa23, 0xfe4e,
+ 0xfa32, 0xfcb1, 0x08e3, 0x0a25, 0x08ee, 0x05a2,
+ 0xf7d4, 0xf589, 0x01e6, 0x0672, 0x0829, 0x0f6b,
+ 0x0f73, 0x079d, 0x022f, 0x00b5, 0x0540, 0x09a5,
+ 0x021f, 0xfee6, 0x093d, 0x0612, 0xfc7b, 0x08e4,
+ 0x1150, 0x0395, 0xfb97, 0xfc42, 0xfc49, 0x0300,
+ 0x06e6, 0x03e2, 0x0808, 0x0b58, 0x04f5, 0x0353,
+ 0x06e0, 0x0485, 0x044e, 0x0815, 0x01ed, 0xfa8f,
+ 0xfe90, 0x001a, 0xffb1, 0x06c4, 0x0534, 0xfe64,
+ 0x0419, 0x04aa, 0xfac3, 0xfb69, 0xffe9, 0xfeb2,
+ 0x00f8, 0x034d, 0x0374, 0x0960, 0x0baa, 0xff89,
+ 0xf4a3, 0xf900, 0x003f, 0x0134, 0x0150, 0xff0a,
+ 0xfb52, 0xfb3c, 0xfc01, 0x0121, 0x0570, 0xfd5b,
+ 0xfc99, 0x0712, 0xffda, 0xf2d5, 0xf75f, 0xff34,
+ 0x0295, 0x028b, 0xfca8, 0xf888, 0xf897, 0xfcc3,
+ 0x00c3, 0xfcbc, 0x012b, 0x0b79, 0x010b, 0xf984,
+ 0x058b, 0x0458, 0xfc01, 0x0339, 0x0863, 0x0282,
+ 0xfdd2, 0x0179, 0x06ce, 0x038c, 0x03d4, 0x0aae,
+ 0x0661, 0x012b, 0x04bd, 0x054b, 0x0531, 0x02f6,
+ 0x0035, 0x085e, 0x09a8, 0x013d, 0x0380, 0x0286,
+ 0xff99, 0x0abd, 0x0a40, 0xff34, 0x04d0, 0x085b,
+ 0x01dc, 0x054e, 0x073e, 0xfddd, 0xfd8f, 0x0a7e,
+ 0x0e77, 0x036b, 0xfcc7, 0x0074, 0x01c3, 0xfcb0,
+ 0xf884, 0xffa9, 0x09a6, 0x02b8, 0xf92c, 0xfb2f,
+ 0xfadb, 0xfebe, 0x05ab, 0xfd12, 0xfbcc, 0x0686,
+ 0xfce3, 0xf35c, 0x0062, 0x07e8, 0x05a4, 0x05d8,
+ 0xffa1, 0xf5f0, 0xf3da, 0xf6dd, 0xfa81, 0xff84,
+ 0x042a, 0x0062, 0xf828, 0xf762, 0xf7f3, 0xf77a,
+ 0xfdd1, 0x01cf, 0xfcd3, 0xf6b6, 0xf584, 0xfac5,
+ 0xfba9, 0xf583, 0xf7f1, 0xfb36, 0xf47f, 0xf339,
+ 0xf826, 0xfc51, 0x005a, 0xf99b, 0xf27a, 0xfdb4,
+ 0x0561, 0xfe00, 0xfee3, 0x099c, 0x0a47, 0xfd8c,
+ 0xf507, 0xfca4, 0x07d5, 0x0afa, 0x0928, 0x065d,
+ 0x06db, 0x066e, 0xff25, 0xfcfe, 0x0468, 0x0939,
+ 0x0ab9, 0x0b8e, 0x07cc, 0x0386, 0x062d, 0x0ccb,
+ 0x0bf8, 0x0494, 0x0599, 0x0c15, 0x0ba7, 0x087b,
+ 0x050b, 0x024b, 0x0794, 0x0de9, 0x0d2e, 0x0ca1,
+ 0x0e0e, 0x0c6b, 0x077f, 0x0322, 0x031e, 0x065d,
+ 0x0c85, 0x1056, 0x09cb, 0x06a7, 0x0c00, 0x0753,
+ 0x0281, 0x0814, 0x0591, 0x0401, 0x0d48, 0x0b6b,
+ 0x04ad, 0x06c8, 0x06ca, 0x0a88, 0x0db8, 0x01df,
+ 0x0022, 0x0b66, 0x058b, 0xfce7, 0xffc6, 0xff46,
+ 0x02c8, 0x083b, 0xfecf, 0xf700, 0xfd2a, 0x0128,
+ 0xfde7, 0xfba0, 0xfc48, 0xfe44, 0xfef4, 0xfa29,
+ 0xf323, 0xf4af, 0xfd65, 0xfe7c, 0xfb3a, 0xfcb5,
+ 0xf6e2, 0xeffe, 0xf741, 0xfcb4, 0xfb6e, 0xfb54,
+ 0xf852, 0xfbb2, 0x05c3, 0x05e5, 0x0338, 0x01d8,
+ 0xf9a8, 0xfb24, 0x0558, 0xfff0, 0xfba4, 0x098c,
+ 0x1061, 0x07b6, 0x00c1, 0xff65, 0x0288, 0x06f3,
+ 0x0700, 0x09c3, 0x0b40, 0x05ad, 0x0733, 0x09d9,
+ 0x04d6, 0x03f1, 0x0657, 0x0591, 0x020a, 0x02a6,
+ 0x08f9, 0x068a, 0xfba3, 0xfa0e, 0xfffa, 0xfeb4,
+ 0xfd93, 0x016d, 0x01e8, 0x0694, 0x07ea, 0xfd60,
+ 0xfa15, 0x00dc, 0x082f, 0x0889, 0x00fa, 0xff2d,
+ 0x0380, 0x0481, 0x0654, 0x0c3f, 0x0869, 0xfeae,
+ 0x01f5, 0x0568, 0x0248, 0x01f3, 0x018a, 0x047a,
+ 0x05eb, 0x007e, 0x00a9, 0x0350, 0xfd05, 0xfa58,
+ 0x01ef, 0x0260, 0xff23, 0x0080, 0xff3b, 0x018c,
+ 0x01f1, 0xfe0b, 0x0274, 0x0252, 0xfe41, 0x0393,
+ 0x0588, 0x0245, 0xfed4, 0xf8f4, 0xfa53, 0xfd12,
+ 0xf7fb, 0xf769, 0xf7ee, 0xf81b, 0xfd82, 0xfbd9,
+ 0xf98f, 0xfa9a, 0xf1c3, 0xee13, 0xf760, 0xf841,
+ 0xf69e, 0xff1e, 0xfa9e, 0xf273, 0xfc38, 0xfa42,
+ 0xf2a2, 0xfe82, 0x063c, 0xfede, 0xf697, 0xf54e,
+ 0xf4ed, 0xf49b, 0xf86a, 0xf770, 0xf7c2, 0xfb25,
+ 0xf794, 0xf4dd, 0xf8ca, 0xfd3c, 0xf711, 0xee9d,
+ 0xf0ae, 0xf076, 0xed1b, 0xefdd, 0xf430, 0xf413,
+ 0xf4ac, 0xf8c3, 0xf65e, 0xf150, 0xeee0, 0xefa4,
+ 0xf66d, 0xf8c4, 0xf739, 0xf7a6, 0xfaf6, 0xfec9,
+ 0xf715, 0xf0d9, 0xf559, 0xf45c, 0xf340, 0xf787,
+ 0xf604, 0xf3fb, 0xf8e4, 0xfa3a, 0xf7f9, 0xf800,
+ 0xf5bd, 0xf4e8, 0xf33c, 0xf0f1, 0xf5ca, 0xf461,
+ 0xf127, 0xf6b0, 0xf1a1, 0xed1f, 0xf844, 0xf981,
+ 0xf43a, 0xf355, 0xeda8, 0xf303, 0xfaf1, 0xf68b,
+ 0xf601, 0xf229, 0xf1b9, 0xf84b, 0xf045, 0xee3f,
+ 0xf86c, 0xfb07, 0xfc87, 0xfbe9, 0xf400, 0xef95,
+ 0xf954, 0x05c6, 0x039c, 0xfbe5, 0xf8b8, 0xf77a,
+ 0xfd54, 0x0784, 0x0281, 0xfd10, 0x0bdb, 0x0f24,
+ 0x051d, 0x0752, 0x0a93, 0x0dd9, 0x11f8, 0x1274,
+ 0x1341, 0x0d72, 0x0ccb, 0x16a4, 0x16ab, 0x1387,
+ 0x1290, 0x0e2a, 0x164a, 0x1d36, 0x12d8, 0x14f5,
+ 0x1a85, 0x1205, 0x128d, 0x1415, 0x159b, 0x1d90,
+ 0x150b, 0x0be9, 0x1011, 0x12b7, 0x1af9, 0x1faf,
+ 0x17e8, 0x161c, 0x17cd, 0x1561, 0x1408, 0x12a4,
+ 0x12eb, 0x13df, 0x11b9, 0x10a3, 0x0fed, 0x0ed2,
+ 0x0fed, 0x1042, 0x0eb4, 0x0c4b, 0x0896, 0x08fd,
+ 0x104c, 0x100b, 0x083d, 0x0a25, 0x0c2b, 0x0b77,
+ 0x1129, 0x0ec3, 0x08ce, 0x090d, 0x04f2, 0x02cf,
+ 0x0631, 0x084c, 0x09aa, 0x0966, 0x0a28, 0x05bf,
+ 0xfaab, 0xfe74, 0x081e, 0x040b, 0x0490, 0x08b7,
+ 0x02df, 0x0109, 0x01d1, 0xff67, 0x03e0, 0x07f2,
+ 0x054c, 0x0224, 0xffbc, 0x064a, 0x0d2b, 0x0266,
+ 0xfd17, 0x044a, 0x04e5, 0x0888, 0x063f, 0xfc02,
+ 0x02ff, 0x076b, 0x01c4, 0x059f, 0x0608, 0x0222,
+ 0x00cf, 0xfdab, 0x001b, 0x046e, 0x0664, 0x0753,
+ 0x01a9, 0xfe0f, 0xfcb2, 0xfa91, 0x0161, 0x05ee,
+ 0x0792, 0x0b20, 0x03b9, 0xfdea, 0xffd2, 0x02e1,
+ 0x0883, 0x025d, 0xfaf6, 0x0384, 0x06e7, 0x00b2,
+ 0x013d, 0x04a7, 0x03c0, 0x0104, 0xfc69, 0xfb4b,
+ 0x0060, 0x0532, 0x04d7, 0xfb9e, 0xfa25, 0x03bf,
+ 0x0225, 0xff91, 0x06ec, 0x0d10, 0x05bf, 0xf3ee,
+ 0xf53d, 0x0603, 0x097d, 0x04fb, 0x08b9, 0x0db0,
+ 0x07ae, 0x044d, 0x0707, 0x0853, 0x0dc6, 0x0f00,
+ 0x0558, 0xfd0c, 0x0760, 0x108d, 0x03e4, 0x047b,
+ 0x0cdb, 0x0839, 0x0810, 0x025f, 0xfbc2, 0x0198,
+ 0x0b3f, 0x0eb0, 0x00ed, 0xfc2f, 0x08ca, 0x08a9,
+ 0x05fe, 0x04ed, 0xfb5b, 0xfe9c, 0x0931, 0x04d9,
+ 0xff0a, 0x0161, 0x0462, 0xfc89, 0xf1fb, 0xfcd5,
+ 0x0369, 0xf902, 0xfd11, 0x0091, 0xf53c, 0xf449,
+ 0x00af, 0x04e2, 0xff1e, 0xf9b2, 0xf3c0, 0xf572,
+ 0xfaab, 0xf9e4, 0xf629, 0xf203, 0xfbd8, 0x0341,
+ 0xfb8c, 0xf5b8, 0xf2d2, 0xff50, 0x033d, 0xef92,
+ 0xf2da, 0x019e, 0xffa8, 0xfe4a, 0x000a, 0xfa23,
+ 0xf8a3, 0xfe8c, 0xfd57, 0xff62, 0xfa9b, 0xf69f,
+ 0x05b2, 0xfe20, 0xf265, 0xf8cf, 0xfa34, 0x0680,
+ 0x06a3, 0xf2ef, 0xf261, 0xfda1, 0xfd29, 0xf624,
+ 0xfb67, 0xfd5f, 0xf6d8, 0xf5b1, 0xf410, 0xfd14,
+ 0x0225, 0xf698, 0xef5c, 0xed88, 0xf59d, 0xfbf6,
+ 0xf614, 0xf6b4, 0xfbbb, 0xfcb8, 0xf8a2, 0xf3e0,
+ 0xf752, 0xfa32, 0xf7ed, 0xfb41, 0xfbbd, 0xf349,
+ 0xf199, 0xf852, 0xfee8, 0xf9bc, 0xf3a5, 0xf734,
+ 0xee22, 0xefe9, 0xfded, 0xf803, 0xf668, 0xf322,
+ 0xeb5c, 0xf341, 0xf911, 0xf61c, 0xedba, 0xeca7,
+ 0xf417, 0xf57f, 0xf0b3, 0xedf2, 0xf7ed, 0xfa83,
+ 0xf9dc, 0x003a, 0xf9b4, 0xfabf, 0x0092, 0xfd3b,
+ 0xf8d8, 0xf7d3, 0xffaf, 0xf9e3, 0xf9d3, 0x04e0,
+ 0xfcae, 0xfb86, 0xfbe3, 0xfb1b, 0x0354, 0x0109,
+ 0x013b, 0x0395, 0x01fc, 0x01c8, 0x02c1, 0x0464,
+ 0x03de, 0x08bb, 0x06bf, 0x0670, 0x0be1, 0x0535,
+ 0x09ea, 0x0be9, 0x0790, 0x0ce5, 0x0371, 0x04af,
+ 0x0eda, 0x081d, 0x0c60, 0x0f6f, 0x07d3, 0x0982,
+ 0x0ad6, 0x109f, 0x15ae, 0x0740, 0x049a, 0x0ddb,
+ 0x0b74, 0x0dfe, 0x0c76, 0x0c32, 0x0e9c, 0x02c2,
+ 0x089f, 0x0f7e, 0x05ef, 0x09d1, 0x09df, 0x043a,
+ 0x0ad4, 0x0d00, 0x042d, 0x0b25, 0x13f7, 0x0826,
+ 0x0bd1, 0x0cca, 0x02fb, 0x0bda, 0x0ae8, 0x061a,
+ 0x04fe, 0x075a, 0x0ed1, 0x0573, 0x085c, 0x0e45,
+ 0x057c, 0x0495, 0x007a, 0x060b, 0x0efe, 0x089a,
+ 0x043c, 0x03e1, 0x0135, 0xff29, 0x084a, 0x0779,
+ 0x005a, 0x0845, 0x06c2, 0x0975, 0x0c9e, 0x0424,
+ 0x0425, 0x0288, 0x0a44, 0x0bb9, 0xffb3, 0x049a,
+ 0x0355, 0x0440, 0x0d1b, 0x0435, 0xff5a, 0x035b,
+ 0x0510, 0x0b14, 0x0dfe, 0x04d8, 0xff97, 0x0693,
+ 0x0a77, 0x09c8, 0x072e, 0x04c8, 0x0795, 0x08b4,
+ 0x049a, 0x041e, 0x076f, 0x03ac, 0x015d, 0x022d,
+ 0x0196, 0x0254, 0xfc4f, 0xffbd, 0x06cc, 0x0412,
+ 0x0562, 0x00db, 0x05d1, 0x0bd3, 0xff87, 0x003d,
+ 0x067d, 0x0805, 0x07ec, 0x0b12, 0x10df, 0x0904,
+ 0x09ab, 0x05a7, 0xfb8b, 0x09ae, 0x0d6b, 0x069b,
+ 0x0619, 0x03da, 0x05dd, 0x0906, 0x0968, 0x0479,
+ 0x08d1, 0x0dbb, 0x092f, 0x0bf7, 0x034e, 0xfd90,
+ 0x07a8, 0x0b39, 0x0aae, 0x0279, 0x02d7, 0x0bb0,
+ 0x0abb, 0x0633, 0xff9d, 0x08a8, 0x1161, 0x071f,
+ 0x04e7, 0x07d3, 0x0844, 0x08c7, 0x0820, 0x060e,
+ 0x042b, 0x0761, 0x0265, 0xffcc, 0x0d1f, 0x0e54,
+ 0x0066, 0xfcde, 0x04eb, 0x0670, 0x01bd, 0x03a5,
+ 0x072f, 0x04c9, 0x03fb, 0x059f, 0x0451, 0x077e,
+ 0x07a5, 0x0352, 0x055f, 0x0793, 0x0ea0, 0x0c4b,
+ 0x0181, 0x0453, 0x0370, 0x0aa4, 0x11f0, 0x01b6,
+ 0xfb9a, 0x01fe, 0x0797, 0x084e, 0x05b9, 0x06fb,
+ 0x04f6, 0x0bad, 0x08f1, 0xf827, 0xfe4c, 0x0854,
+ 0x070c, 0x0634, 0x0583, 0x045c, 0x023e, 0x00d1,
+ 0x01e8, 0x0af1, 0x084b, 0xfcd4, 0x02b5, 0x0230,
+ 0xfe06, 0x02c5, 0x0565, 0x08a4, 0x0013, 0xf956,
+ 0xfead, 0xfebe, 0x0335, 0x0752, 0x0253, 0xfff8,
+ 0xfe9b, 0xfab3, 0x0011, 0x0981, 0x048f, 0xff56,
+ 0xfff8, 0x004e, 0x02fb, 0xfe20, 0x0093, 0x0a43,
+ 0x0426, 0x0185, 0x04ca, 0x010e, 0x045b, 0x0b22,
+ 0x0a10, 0x042e, 0x0017, 0x039f, 0x0378, 0x00d0,
+ 0x07ec, 0x0494, 0xfe6f, 0x0586, 0x0418, 0x032d,
+ 0x0443, 0x043a, 0x0d22, 0x0383, 0xf7a2, 0x025c,
+ 0x088a, 0x0772, 0x0301, 0xfede, 0x00d8, 0x02c4,
+ 0x0506, 0x00df, 0xfbc1, 0x0363, 0x0a8d, 0x04da,
+ 0x0122, 0x041f, 0xff16, 0xfd43, 0x031f, 0x050f,
+ 0x054c, 0xff3f, 0xfe95, 0x0554, 0x02fa, 0x0367,
+ 0x0487, 0x01d3, 0x037d, 0xfff1, 0x00bf, 0x0ac7,
+ 0x0790, 0x0306, 0x0bb2, 0x096a, 0x023b, 0x090f,
+ 0x0b9a, 0x05cc, 0xff95, 0x0035, 0x0d22, 0x0dc8,
+ 0x00ea, 0x0013, 0x0674, 0x080d, 0x066b, 0x0471,
+ 0xff33, 0xfba4, 0x000e, 0xffd1, 0xfc48, 0xfce7,
+ 0xfd45, 0x03d0, 0x04e1, 0xfc26, 0x009e, 0x0241,
+ 0xfc6a, 0x005a, 0xf8bd, 0xf509, 0x00de, 0xf8c3,
+ 0xf55a, 0xffaa, 0xf6a2, 0xf4da, 0xfe57, 0xf7d4,
+ 0xf520, 0xfbff, 0xfa7b, 0xf8a5, 0xfe3e, 0x01db,
+ 0x0030, 0xfc72, 0xf885, 0xf9a0, 0xfdea, 0xfaf1,
+ 0xf7e2, 0x007f, 0x0683, 0x0260, 0x016a, 0x01df,
+ 0xfdae, 0xfb0a, 0xfcfe, 0x015e, 0x02b2, 0x01be,
+ 0x0461, 0x038f, 0x01e1, 0x0854, 0x06ea, 0x0201,
+ 0x0918, 0x0973, 0x066c, 0x079b, 0xff2c, 0x002f,
+ 0x0d68, 0x0e74, 0x0613, 0xfe2c, 0x03a5, 0x0e96,
+ 0x069f, 0xfcc6, 0x0036, 0x064c, 0x0912, 0x038b,
+ 0x01f7, 0x068e, 0x05f0, 0x0ca7, 0x0ab9, 0xfb1d,
+ 0x046c, 0x0ef2, 0x019f, 0xfc10, 0x0161, 0x0765,
+ 0x05ec, 0xfcdb, 0x03e8, 0x0bc8, 0xffe8, 0xfd5b,
+ 0x05b4, 0x020a, 0x0011, 0x04b7, 0x0342, 0xfe97,
+ 0xfb79, 0x0191, 0x0693, 0xff21, 0x012c, 0x078b,
+ 0x00e1, 0xfabe, 0xfaea, 0xfe2a, 0x00fb, 0x00b8,
+ 0xfef5, 0xfc49, 0xfb7d, 0xfcd9, 0xfdce, 0xfd61,
+ 0xffb6, 0x00ca, 0xfb37, 0xfa4e, 0xfed2, 0x033f,
+ 0x02f6, 0xfd6c, 0xfed8, 0xfe83, 0xfb02, 0xfe62,
+ 0xfdac, 0xfc2c, 0xfd1a, 0xfc67, 0xfe0d, 0xff06,
+ 0xfffc, 0xff1e, 0xfcb8, 0xfdf6, 0xfeaf, 0x017c,
+ 0x05a6, 0x0537, 0x03bb, 0x009b, 0xfd10, 0xfe07,
+ 0x0192, 0x093a, 0x0f2d, 0x098c, 0x0432, 0x04df,
+ 0x0727, 0x0d72, 0x0f22, 0x0c27, 0x0c0d, 0x0d19,
+ 0x0ca7, 0x049c, 0x0183, 0x0a7a, 0x0aab, 0x064f,
+ 0x0ac7, 0x0aeb, 0x0654, 0x099f, 0x0822, 0x022c,
+ 0x07f1, 0x087d, 0x01d0, 0x02ef, 0x0733, 0x0a2a,
+ 0x0498, 0x03d0, 0x0c44, 0x03e6, 0xfc0c, 0x0898,
+ 0x0fbd, 0x0890, 0x04f0, 0x05e9, 0x0540, 0x06c2,
+ 0x0268, 0xfb83, 0xfeb9, 0x03c7, 0x0599, 0x036c,
+ 0x01e2, 0x013b, 0xff16, 0x069d, 0x0926, 0x00a0,
+ 0x0032, 0x02e9, 0x061c, 0x07f5, 0x0214, 0x0007,
+ 0x0752, 0x0c96, 0x093a, 0x0791, 0x0945, 0x0659,
+ 0x04c5, 0x0659, 0x0761, 0x0864, 0x0756, 0x056f,
+ 0x0573, 0x063d, 0x0802, 0x09b1, 0x0896, 0x06c8,
+ 0x0309, 0xfefa, 0xfef0, 0xfca7, 0xfbaa, 0xff79,
+ 0x0046, 0xff6c, 0xfb15, 0xf3ff, 0xf68e, 0x0119,
+ 0x0271, 0xf99a, 0xf505, 0xf42a, 0xf5cc, 0xfa44,
+ 0xfc3d, 0xfd35, 0xf7a5, 0xf12a, 0xf2f8, 0xf3e0,
+ 0xf839, 0xfd0a, 0xf7af, 0xf65d, 0xfa0a, 0xf0b2,
+ 0xe660, 0xf080, 0xfa64, 0xf3e8, 0xef61, 0xf0cb,
+ 0xf109, 0xf0ed, 0xf3b0, 0xf555, 0xf284, 0xf6b0,
+ 0xfbe0, 0xf5f4, 0xf21b, 0xf652, 0xf9a4, 0xfaed,
+ 0xfed7, 0xff02, 0xf896, 0xf776, 0xf91e, 0xf77d,
+ 0xf7d5, 0xf88b, 0xf91f, 0xfc25, 0xfcd4, 0xfa68,
+ 0xfd18, 0x030b, 0xffc4, 0xf6c7, 0xf6d3, 0xfc0b,
+ 0xfa85, 0xf880, 0xfb5c, 0xfc93, 0xff3a, 0x0347,
+ 0xff2c, 0xf98b, 0xfc88, 0x01bb, 0x02c5, 0x0013,
+ 0xfdb8, 0xff29, 0xfe06, 0xfe49, 0x058c, 0x0319,
+ 0xfdf4, 0x0592, 0x0352, 0xf89b, 0xfe69, 0x0578,
+ 0xffd7, 0xfe51, 0x0510, 0x08f1, 0x04c5, 0xfe88,
+ 0x01c8, 0x0704, 0x01e3, 0xfcf1, 0xfe05, 0xffe4,
+ 0x00fe, 0x00ba, 0x04bc, 0x0824, 0x0140, 0xfea8,
+ 0x02e7, 0xfd76, 0xf9c0, 0x0269, 0x0537, 0xfe1c,
+ 0xfa2f, 0xfd94, 0x0298, 0xfe32, 0xf5f3, 0xf93b,
+ 0xffad, 0xfeb2, 0xfb3a, 0xf991, 0xfcb6, 0x005c,
+ 0xff4c, 0xfff4, 0x0050, 0xfc38, 0xfc43, 0xfcf3,
+ 0xf864, 0xf901, 0xff30, 0x03c9, 0x0439, 0xfc3e,
+ 0xf993, 0x0546, 0x05e1, 0xfb3c, 0xffd5, 0x067b,
+ 0x0163, 0x0193, 0x031e, 0xfdb4, 0x00fa, 0x0c0c,
+ 0x0f54, 0x0b21, 0x06f2, 0x0632, 0x054a, 0x03f2,
+ 0x08df, 0x0c67, 0x0998, 0x0c03, 0x0c4d, 0x04ad,
+ 0x0810, 0x1001, 0x0c0f, 0x0aeb, 0x0d96, 0x08b5,
+ 0x08b2, 0x0bcc, 0x04f9, 0x02d6, 0x0a69, 0x0ba4,
+ 0x09c7, 0x0a72, 0x058e, 0x031b, 0x0b6c, 0x0d85,
+ 0x05fe, 0x06fc, 0x0bf4, 0x078a, 0x021a, 0x016b,
+ 0x0250, 0x0644, 0x0826, 0x064c, 0x09d7, 0x0b45,
+ 0x02da, 0x0295, 0x0e47, 0x1090, 0x0718, 0xffe9,
+ 0xfe03, 0x00e2, 0x0708, 0x0767, 0x01b5, 0x0135,
+ 0x051a, 0x03da, 0x0140, 0x03a3, 0x048b, 0x02ad,
+ 0x05fe, 0x0993, 0x053d, 0xfecf, 0xfad7, 0xfbea,
+ 0x0429, 0x05fd, 0xffcd, 0x03b9, 0x0652, 0xfaca,
+ 0xf8f6, 0x0071, 0xfdb7, 0xfed2, 0x054f, 0xfdda,
+ 0xf4ab, 0xf989, 0xff01, 0xf7ee, 0xf04a, 0xf907,
+ 0xff97, 0xf351, 0xf2cf, 0x007e, 0xfb31, 0xf3ec,
+ 0xfbf3, 0xfb45, 0xf6be, 0xfa35, 0xf7ad, 0xf438,
+ 0xf55d, 0xf242, 0xf27c, 0xf6a6, 0xf68e, 0xfa2b,
+ 0xff9c, 0xfe1e, 0xfb33, 0xf79f, 0xf556, 0xfaaf,
+ 0xfd3a, 0xf996, 0xfbf7, 0x0055, 0xff10, 0xfc0f,
+ 0xfa4c, 0xfeab, 0x03ab, 0xfcc7, 0xf83f, 0x017d,
+ 0x0821, 0x07ba, 0x0292, 0xfa3a, 0xff15, 0x078d,
+ 0x00fd, 0xff69, 0x042b, 0x0059, 0x0349, 0x0736,
+ 0x0254, 0x0768, 0x091c, 0x00ad, 0x0592, 0x0687,
+ 0x01af, 0x0e8f, 0x0db0, 0xfc3c, 0x0172, 0x0751,
+ 0x0075, 0x051c, 0x0667, 0x0225, 0x09f2, 0x0927,
+ 0xfbcb, 0xf814, 0xfd30, 0x059a, 0x0914, 0xfe5e,
+ 0xf580, 0xf9e7, 0xfe72, 0xfb8e, 0xf90e, 0xfe8a,
+ 0x02bd, 0xfb5f, 0xf67b, 0xfbc9, 0xfc0c, 0xf8be,
+ 0xffa2, 0x0698, 0x0042, 0xf8b6, 0xfa78, 0xfa99,
+ 0xf6d5, 0xfb1c, 0x014a, 0xfccf, 0xf7de, 0xfab3,
+ 0xf824, 0xf1d2, 0xfac6, 0x05c7, 0xfcdf, 0xf61d,
+ 0xfd54, 0xf7f1, 0xec5e, 0xf3a8, 0xfd7b, 0xf7bd,
+ 0xf057, 0xf5fa, 0x00eb, 0xff68, 0xf77e, 0xfb32,
+ 0x01a5, 0xfed8, 0xf8bc, 0xf395, 0xf3f0, 0xfb01,
+ 0xffbc, 0x00d1, 0x01f4, 0x010f, 0xfde8, 0xfcc1,
+ 0x0045, 0x0247, 0xffe8, 0x00a0, 0x018a, 0xff40,
+ 0xfe80, 0xfa54, 0xf951, 0x0351, 0x03b8, 0xfa16,
+ 0xf9ea, 0xfece, 0x0544, 0x06ff, 0xfe1f, 0x013d,
+ 0x0abc, 0x03a2, 0x018a, 0x081c, 0x0532, 0x06c6,
+ 0x0cec, 0x0b9c, 0x090e, 0x067a, 0x09f5, 0x0e2a,
+ 0x0556, 0x0694, 0x1050, 0x06c1, 0x0196, 0x07f5,
+ 0x0352, 0x0340, 0x0675, 0x023b, 0x07e8, 0x08e9,
+ 0xffbc, 0x0650, 0x0a97, 0x0252, 0x040f, 0x0534,
+ 0x0195, 0x06f6, 0x0b19, 0x09ab, 0x056f, 0x014d,
+ 0x08af, 0x0a7d, 0xfbe8, 0xfca2, 0x0b09, 0x0a9e,
+ 0x05b7, 0x07fe, 0x077c, 0x04b2, 0x056a, 0x053a,
+ 0x00dc, 0x02c7, 0x0d1c, 0x0d33, 0x04d3, 0x0495,
+ 0x0436, 0x0247, 0x095c, 0x0d26, 0x0979, 0x0a6b,
+ 0x0ad8, 0x07c7, 0x0795, 0x06cd, 0x0685, 0x0a47,
+ 0x0abb, 0x0729, 0x08d7, 0x0f8c, 0x0e93, 0x0494,
+ 0x0311, 0x0958, 0x06e3, 0x04a4, 0x0889, 0x03d5,
+ 0x002c, 0x0786, 0x0746, 0x00f1, 0x0103, 0xfe1c,
+ 0xfbfc, 0x034a, 0x05a3, 0x019d, 0x033e, 0x03eb,
+ 0xfe63, 0xfbe2, 0xfee0, 0x007b, 0xff70, 0x00f2,
+ 0x02b2, 0x0050, 0x011d, 0x05b0, 0x041c, 0xff16,
+ 0xfd12, 0xfcf9, 0xfed8, 0xfffa, 0xfe67, 0xfde2,
+ 0x000f, 0x0597, 0x07d7, 0x00ac, 0xfec3, 0x0424,
+ 0xffdc, 0xfe60, 0x08da, 0x088b, 0x01b9, 0x05bc,
+ 0x076b, 0x0382, 0x0308, 0x0231, 0x0640, 0x0d7a,
+ 0x07ae, 0x004e, 0x03de, 0x0415, 0x0381, 0x088f,
+ 0x03fd, 0xfcaf, 0x02c2, 0x074e, 0x0340, 0x02a6,
+ 0x03e8, 0x02fd, 0x0042, 0xfad4, 0xfa2d, 0xffc1,
+ 0x044e, 0x07c3, 0x051f, 0xfc66, 0xfbac, 0xff7d,
+ 0x00e1, 0x06e0, 0x07b3, 0xfe00, 0xfc68, 0x02bc,
+ 0x041b, 0x02b4, 0x01eb, 0x052a, 0x0ae4, 0x08b8,
+ 0x032a, 0x0320, 0x04a4, 0x07e6, 0x0c6f, 0x0b1a,
+ 0x0453, 0xff2e, 0x0447, 0x0fce, 0x0ff5, 0x0996,
+ 0x0db3, 0x1227, 0x0da9, 0x0a5e, 0x09fb, 0x09b3,
+ 0x0c19, 0x0d85, 0x098c, 0x05d7, 0x0a6d, 0x112c,
+ 0x0c27, 0x0219, 0x036f, 0x0a13, 0x09ef, 0x0616,
+ 0x0427, 0x05e8, 0x08ad, 0x064b, 0x0241, 0x04ed,
+ 0x087f, 0x0406, 0x0022, 0x0525, 0x080d, 0x05b8,
+ 0x0a0f, 0x0d06, 0x046c, 0x01bc, 0x080a, 0x0687,
+ 0x04ef, 0x0956, 0x0509, 0xfe4b, 0x018e, 0x032b,
+ 0xff17, 0xffee, 0x054c, 0x06ed, 0x029d, 0x00c3,
+ 0x04a1, 0x035c, 0x0064, 0x0673, 0x09a1, 0x061f,
+ 0x07eb, 0x08d3, 0x054d, 0x05e6, 0x054a, 0x021f,
+ 0x03ae, 0x0556, 0x04e6, 0x0551, 0x052e, 0x054f,
+ 0x03c9, 0x01ea, 0x0583, 0x063a, 0x0176, 0x017a,
+ 0x01f0, 0x01b0, 0x05e4, 0x049b, 0x00eb, 0x04ce,
+ 0x0570, 0x042f, 0x092c, 0x088f, 0x023d, 0x0066,
+ 0x0294, 0x0905, 0x0a67, 0x0093, 0xfe27, 0x0590,
+ 0x0733, 0x0641, 0x04ba, 0x016c, 0x0707, 0x0f3c,
+ 0x0c30, 0x072c, 0x08ff, 0x0d23, 0x0e66, 0x0957,
+ 0x05e2, 0x0c0a, 0x0e48, 0x05d6, 0x028f, 0x082a,
+ 0x0ddb, 0x12dc, 0x10ab, 0x045d, 0x0116, 0x0b47,
+ 0x0e8e, 0x08c4, 0x059e, 0x062a, 0x096c, 0x0a91,
+ 0x05de, 0x04c4, 0x07f0, 0x0677, 0x0389, 0x034b,
+ 0x0570, 0x077a, 0x0379, 0x02a9, 0x0a2c, 0x06c6,
+ 0xfd67, 0x0143, 0x0379, 0xff10, 0x0262, 0x0461,
+ 0x03d7, 0x08be, 0x04ac, 0xfb92, 0xfdec, 0xff97,
+ 0xfe31, 0x03cb, 0x04b7, 0xff64, 0xffda, 0x004f,
+ 0xfcba, 0xfbbc, 0xfd3c, 0xfe9c, 0xffa3, 0x01b2,
+ 0x0301, 0xfebd, 0xfcd5, 0x0331, 0x0510, 0x004a,
+ 0xfc80, 0xf827, 0xf948, 0x0048, 0x007a, 0x00d8,
+ 0x0556, 0x0107, 0xfe32, 0x03c2, 0x014a, 0xfc8f,
+ 0xfe92, 0xfde9, 0x0057, 0x0668, 0x02f1, 0xff18,
+ 0x0111, 0x004a, 0x00d1, 0x00bc, 0xfbf8, 0xfdc8,
+ 0x01d1, 0x0074, 0x0598, 0x0b40, 0x02d8, 0xfab2,
+ 0xffb0, 0x05b1, 0x045d, 0x04fb, 0x093d, 0x044c,
+ 0xfc2b, 0x00d8, 0x0721, 0x0478, 0x0209, 0x020f,
+ 0x05be, 0x0a30, 0x0299, 0xfbae, 0x04b9, 0x0aaa,
+ 0x0710, 0x0853, 0x0a4f, 0x07c0, 0x063d, 0x058d,
+ 0x0559, 0x0735, 0x080f, 0x03e8, 0xff13, 0x04e7,
+ 0x0f0b, 0x0cdb, 0x0746, 0x085f, 0x0420, 0xfcf0,
+ 0x0020, 0x0666, 0x0598, 0x024e, 0x02df, 0x04a4,
+ 0x018b, 0xfd55, 0xfe7c, 0x00d4, 0x01b3, 0x05c3,
+ 0x0aab, 0x07c5, 0xffd3, 0xfff1, 0x05a9, 0x040c,
+ 0x02d8, 0x0941, 0x07a5, 0xfecb, 0x018c, 0x09e8,
+ 0x07b4, 0x00e8, 0x0151, 0x042d, 0xffbb, 0xfc2e,
+ 0x0363, 0x0665, 0xfe74, 0x00d9, 0x0d2a, 0x0b91,
+ 0x01e5, 0x0323, 0x070f, 0x03a7, 0x023e, 0x060f,
+ 0x0562, 0x0084, 0x01a3, 0x0640, 0x055b, 0x03fb,
+ 0x05cb, 0x0442, 0x02e4, 0x03fd, 0x0083, 0xff58,
+ 0x0344, 0x0043, 0xfd5f, 0x0232, 0x02d5, 0x00f4,
+ 0x01f0, 0x0018, 0x0067, 0x0332, 0x00c1, 0xfed0,
+ 0xff7b, 0xffe1, 0x01fc, 0x01f8, 0x0230, 0x03f9,
+ 0xfe1b, 0xfbdc, 0x04d0, 0x043c, 0xfba0, 0xfc7c,
+ 0x0260, 0x06a8, 0x0680, 0x0271, 0x0224, 0x0411,
+ 0x076c, 0x0a64, 0x027d, 0xfd0a, 0x0438, 0x0378,
+ 0xffc9, 0x0916, 0x104a, 0x0ea0, 0x0818, 0x00c6,
+ 0x0611, 0x0c7e, 0x0681, 0x06fb, 0x0a73, 0x02e5,
+ 0x02c1, 0x0b5d, 0x0a27, 0x0433, 0x05d2, 0x0d4f,
+ 0x0bf2, 0x002e, 0x024d, 0x0e9a, 0x0a58, 0x0232,
+ 0x06d3, 0x0957, 0x0415, 0xfe89, 0xfcbd, 0x00d2,
+ 0x05f2, 0x07eb, 0x0569, 0xfdf1, 0xfb0d, 0xfdbb,
+ 0xfc9e, 0xfe12, 0x028b, 0xfcfe, 0xf3d5, 0xf35b,
+ 0xf8c8, 0xfc65, 0xf8a0, 0xf659, 0xfd73, 0xfe53,
+ 0xf63a, 0xf4fb, 0xf70a, 0xf7a1, 0xfa75, 0xf862,
+ 0xf414, 0xf543, 0xf350, 0xefac, 0xf288, 0xf5d1,
+ 0xf788, 0xf574, 0xec76, 0xeb78, 0xf2bf, 0xf0dd,
+ 0xf085, 0xf99c, 0xf73e, 0xec9d, 0xefd3, 0xfa3e,
+ 0xfabe, 0xf366, 0xf1e4, 0xf952, 0xfb21, 0xf56b,
+ 0xf7c7, 0xfd7f, 0xfb05, 0xf9d6, 0xfbcd, 0xf8a5,
+ 0xf803, 0xfd8d, 0xff26, 0xfcdf, 0xfc84, 0xfc06,
+ 0xf918, 0xf705, 0xf969, 0xfab7, 0xf5bd, 0xf54e,
+ 0xfe4c, 0x03aa, 0x028d, 0x0086, 0xfc32, 0xfa7d,
+ 0xfeaf, 0xff5d, 0xfd31, 0x004d, 0x02d0, 0xffa8,
+ 0xfdb8, 0xfdc1, 0xfb7e, 0xfc8f, 0x018e, 0xfee9,
+ 0xf816, 0xfa09, 0xff6d, 0x00c3, 0x0101, 0x009f,
+ 0xff86, 0xfc89, 0xfa02, 0xffc7, 0x0377, 0xfd93,
+ 0xff77, 0x0519, 0x005f, 0xfec2, 0x0080, 0xfcd3,
+ 0xfe1d, 0x007d, 0xfda5, 0xfdaa, 0xfbc4, 0xfa13,
+ 0x008c, 0x035e, 0x0155, 0xffdf, 0xfac2, 0xfac4,
+ 0xfecd, 0xfc32, 0xfeb3, 0x056a, 0x0116, 0xf809,
+ 0xf2fa, 0xf655, 0xff8b, 0xfdef, 0xf721, 0xfb43,
+ 0x00f6, 0x009a, 0xfbe5, 0xf624, 0xf924, 0xff56,
+ 0x0012, 0x01c0, 0x016f, 0xfe48, 0xfe98, 0xfc15,
+ 0xfa82, 0x0109, 0x042e, 0x0092, 0xfbb5, 0xfa9d,
+ 0x02c1, 0x06f8, 0x0147, 0x0112, 0x0216, 0xff4d,
+ 0x024e, 0x031f, 0x0042, 0x03fe, 0x05ff, 0x0538,
+ 0x0888, 0x0827, 0x047f, 0x02a6, 0x0175, 0x0648,
+ 0x0baa, 0x079d, 0x04d3, 0x077a, 0x05b9, 0x0267,
+ 0x02d4, 0x03f5, 0x049e, 0x0333, 0xff0c, 0xfedc,
+ 0x0485, 0x070b, 0x04cf, 0x0404, 0x0066, 0xfa34,
+ 0xfdf8, 0x0544, 0x03b3, 0x03e5, 0x06ea, 0x01fa,
+ 0x0062, 0x0617, 0x03e0, 0xff91, 0x0285, 0x0390,
+ 0x0416, 0x07af, 0x05de, 0x02f1, 0x05fb, 0x0810,
+ 0x0560, 0xff6f, 0xfe2e, 0x077f, 0x09c5, 0x0154,
+ 0x049f, 0x0b19, 0x0678, 0x0789, 0x0a4e, 0x02a4,
+ 0x01c7, 0x092c, 0x0aa2, 0x083d, 0x037e, 0x0162,
+ 0x083b, 0x0c3d, 0x093f, 0x0723, 0x0487, 0x03d4,
+ 0x0691, 0x03b9, 0xff54, 0x040c, 0x091a, 0x02f1,
+ 0xfbee, 0x0049, 0x0567, 0x0169, 0xfb9e, 0xf7f4,
+ 0xf82a, 0xfda5, 0xff74, 0xfd7b, 0xff03, 0xff2f,
+ 0xfd02, 0xfe09, 0x023b, 0x052b, 0xfd56, 0xf1e8,
+ 0xf701, 0x018d, 0xffac, 0xfb13, 0xf9ad, 0xf9e8,
+ 0xfcde, 0xfb76, 0xf5ab, 0xf56f, 0xfc21, 0x005a,
+ 0xf92e, 0xf3a4, 0xfbd9, 0xff5f, 0xfbd2, 0xfe07,
+ 0xfaa4, 0xf8c5, 0x02d5, 0xfe1b, 0xf25a, 0xfb8b,
+ 0x023c, 0xfd00, 0xfeb4, 0xfd58, 0xfad4, 0x039b,
+ 0x03f9, 0xfb30, 0xfc27, 0xfd5c, 0xfcef, 0x0330,
+ 0x01df, 0xfc64, 0x034f, 0x06b5, 0xff5a, 0xfef8,
+ 0x019f, 0xfde5, 0xf9b4, 0xf6fe, 0xfa1a, 0x020b,
+ 0x00a2, 0xf9f3, 0xfa19, 0xfcae, 0xfdc1, 0xfc73,
+ 0xfb72, 0xfe6b, 0xfbbe, 0xf7de, 0xffc3, 0x0339,
+ 0xfcbd, 0xfa9b, 0xf80a, 0xf72f, 0xfbae, 0xf7a9,
+ 0xf37e, 0xf7ea, 0xfa1a, 0xfea7, 0x00a0, 0xf90f,
+ 0xfbdb, 0x0167, 0xf9ec, 0xf928, 0xfced, 0xf99b,
+ 0xfbda, 0xfc8f, 0xf7fc, 0xfde9, 0x023d, 0xfac5,
+ 0xf79e, 0xfc34, 0xffbf, 0xfc7e, 0xf64a, 0xf872,
+ 0xfd1c, 0xfcbd, 0xffcc, 0x0282, 0xfeb1, 0xfd84,
+ 0xff1d, 0xfdf0, 0xfdaa, 0xff30, 0xfeff, 0xfc5f,
+ 0xf9fd, 0xfbbb, 0x01d1, 0x0609, 0x0121, 0xf8b7,
+ 0xf820, 0xfb28, 0xfce1, 0x0014, 0xfe89, 0xf946,
+ 0xfb1d, 0x0066, 0x02c8, 0x0005, 0xf9d7, 0xfd12,
+ 0x0341, 0xfccb, 0xfa49, 0x0169, 0xff3d, 0xfae0,
+ 0xff11, 0x0377, 0x047d, 0xfe19, 0xf55c, 0xf988,
+ 0x00c8, 0xff3b, 0x00c5, 0x072e, 0x07a7, 0x013c,
+ 0xfc06, 0xfff5, 0x06ae, 0x04fc, 0xfe9b, 0xfbf4,
+ 0x0197, 0x097c, 0x053e, 0xfce4, 0xff28, 0x026d,
+ 0x045e, 0x0874, 0x00e3, 0xf5db, 0xfd39, 0x0835,
+ 0x0509, 0xfeeb, 0xfd95, 0xfedd, 0x03d2, 0x0821,
+ 0x06c3, 0x05f0, 0x097f, 0x096e, 0x0361, 0x00ba,
+ 0x0534, 0x0879, 0x04c6, 0x039d, 0x0b04, 0x0bc5,
+ 0x039c, 0x0441, 0x07f8, 0x0523, 0x0712, 0x0a05,
+ 0x0748, 0x0784, 0x081e, 0x0b9e, 0x155b, 0x123d,
+ 0x089e, 0x0c14, 0x0c11, 0x06c0, 0x0c44, 0x0f7f,
+ 0x0bab, 0x0c60, 0x0e0d, 0x0ece, 0x0dd0, 0x08f1,
+ 0x0746, 0x05a0, 0x017d, 0x046f, 0x090a, 0x09bb,
+ 0x0b62, 0x088f, 0x0389, 0x0524, 0x052c, 0x008a,
+ 0x0002, 0x0316, 0x04ff, 0x0568, 0x0551, 0x048d,
+ 0x0441, 0x0624, 0x0595, 0x025a, 0x029a, 0x0222,
+ 0xffdb, 0x002f, 0xfd9e, 0xfd97, 0x06f2, 0x08f6,
+ 0x0020, 0xfd55, 0x015a, 0x00f0, 0xf994, 0xf7e1,
+ 0x0031, 0x0111, 0xfc86, 0x0019, 0x0166, 0x004c,
+ 0x027a, 0xff8c, 0x00da, 0x04c4, 0xfb60, 0xf8d8,
+ 0x01f3, 0x012a, 0x0301, 0x0828, 0xff98, 0xfbb5,
+ 0x0140, 0xffd4, 0xff40, 0x008d, 0xfd9f, 0xff0a,
+ 0x021e, 0x0180, 0x01c1, 0x021f, 0x0322, 0x03fb,
+ 0x0150, 0x006e, 0xffd3, 0xfc49, 0x005f, 0x0934,
+ 0x0838, 0x035d, 0x043d, 0x0462, 0x02d4, 0x0683,
+ 0x09ee, 0x0642, 0x01eb, 0x01a0, 0x04ce, 0x0a41,
+ 0x0c25, 0x098b, 0x057b, 0x01dc, 0x06e0, 0x0d2c,
+ 0x052b, 0x015f, 0x0c88, 0x0d65, 0x04b5, 0x05f6,
+ 0x0a2d, 0x092e, 0x0770, 0x08fd, 0x0d1c, 0x0d19,
+ 0x0ace, 0x0a87, 0x0883, 0x0ae4, 0x10ee, 0x0dfc,
+ 0x0a79, 0x0b94, 0x07fa, 0x07af, 0x0b8d, 0x08ee,
+ 0x08b0, 0x0c47, 0x08eb, 0x057f, 0x0979, 0x0e2d,
+ 0x0bc7, 0x05cd, 0x07e6, 0x0b1f, 0x0449, 0x0351,
+ 0x0d92, 0x1092, 0x0c8c, 0x0b40, 0x0a1a, 0x090d,
+ 0x0b0a, 0x0e8b, 0x0fe1, 0x0c3b, 0x06a5, 0x03df,
+ 0x04d1, 0x073b, 0x06eb, 0x0612, 0x0817, 0x0673,
+ 0x0143, 0x0118, 0x032e, 0x03c9, 0x05d4, 0x0553,
+ 0x0092, 0x009e, 0x06ff, 0x08b2, 0x0270, 0xfe91,
+ 0x000f, 0x0055, 0x0271, 0x07c5, 0x0717, 0x04a9,
+ 0x0811, 0x0801, 0x0418, 0x0408, 0x01c6, 0xffb8,
+ 0x05e4, 0x0936, 0x054f, 0x02d6, 0x00a1, 0x01c8,
+ 0x081b, 0x06f5, 0x0250, 0x045c, 0x01fd, 0xfc8b,
+ 0x025c, 0x0b21, 0x0b5e, 0x07ff, 0x061d, 0x0549,
+ 0x0436, 0x0514, 0x0908, 0x0afa, 0x0ac1, 0x0b68,
+ 0x0b56, 0x0b81, 0x0bae, 0x0b02, 0x0ca6, 0x0bb8,
+ 0x06ed, 0x079e, 0x08dc, 0x04b6, 0x053e, 0x0b90,
+ 0x0ff2, 0x101b, 0x0bf3, 0x08af, 0x0a95, 0x0ef1,
+ 0x1298, 0x1192, 0x0eb2, 0x1028, 0x0fcf, 0x0b60,
+ 0x09e7, 0x0b73, 0x0f25, 0x115f, 0x0d24, 0x0b49,
+ 0x0fe3, 0x11b9, 0x0ea4, 0x0b5d, 0x0d79, 0x1141,
+ 0x0b2f, 0x0406, 0x06c9, 0x0735, 0x0301, 0x053a,
+ 0x0b1d, 0x0b7a, 0x051e, 0x03c7, 0x0b89, 0x0bc0,
+ 0x058e, 0x0759, 0x08f5, 0x0607, 0x05dc, 0x076b,
+ 0x0a7f, 0x0937, 0x0113, 0x01ac, 0x0839, 0x0520,
+ 0xfff3, 0x01bb, 0x0619, 0x063c, 0x0282, 0x0432,
+ 0x0567, 0xfe57, 0xfb93, 0xfbc5, 0xfb5c, 0x0468,
+ 0x072f, 0xfeaf, 0x02ee, 0x090f, 0x030d, 0x0203,
+ 0x0394, 0xffb4, 0xfef9, 0x00b5, 0x0157, 0x0087,
+ 0x00b8, 0x04f3, 0x033c, 0xfd94, 0xff5a, 0xff1c,
+ 0xfe19, 0x021f, 0xfe8e, 0xfce4, 0x0467, 0x0392,
+ 0x011d, 0x026e, 0xfe35, 0xfea1, 0xff1d, 0xfa4d,
+ 0x017b, 0x06d0, 0x00cc, 0x036b, 0x041c, 0x00ee,
+ 0x093f, 0x08e5, 0x036d, 0x0c13, 0x0967, 0xfd02,
+ 0x0071, 0x057d, 0x075c, 0x0b4a, 0x0650, 0x02ea,
+ 0x06a0, 0x062f, 0x0a65, 0x0faf, 0x0a19, 0x070d,
+ 0x07a0, 0x067c, 0x0b71, 0x0cf1, 0x097e, 0x0da8,
+ 0x0c55, 0x04cc, 0x08ce, 0x0b5b, 0x05d1, 0x078a,
+ 0x07d2, 0x00c3, 0x0272, 0x096a, 0x0966, 0x081f,
+ 0x08ae, 0x0574, 0x00b4, 0xffc7, 0xfff5, 0x0039,
+ 0x04d8, 0x0813, 0x03d8, 0x006d, 0x004f, 0xff6a,
+ 0x030b, 0x097d, 0x0856, 0x0114, 0xfe91, 0x051c,
+ 0x07f4, 0x019a, 0x0672, 0x1225, 0x0b84, 0x03af,
+ 0x0805, 0x03fa, 0x01c0, 0x0bb6, 0x09ab, 0xfff0,
+ 0x0056, 0x024b, 0x03aa, 0x062d, 0x070a, 0x096a,
+ 0x05de, 0xfca1, 0xfcc3, 0x018f, 0x041a, 0x0648,
+ 0x03f6, 0x04dd, 0x09c7, 0x0477, 0xff75, 0x0254,
+ 0x011e, 0x012c, 0x0264, 0xfd74, 0xff8b, 0x0507,
+ 0xfe9b, 0xf8c5, 0xfd3f, 0x028a, 0x0162, 0xfbf1,
+ 0xface, 0xfc24, 0xfb2f, 0xfdaf, 0xfeed, 0xfdb2,
+ 0x022a, 0xfefd, 0xf50e, 0xfaa8, 0x0346, 0x00c8,
+ 0xfffa, 0x002f, 0x009b, 0x06e8, 0x08db, 0x0499,
+ 0x02ab, 0x0395, 0x07a1, 0x0afa, 0x0ab2, 0x08f5,
+ 0x0401, 0x0495, 0x0c89, 0x0977, 0x04a3, 0x0d5f,
+ 0x0dcc, 0x039f, 0x069c, 0x108b, 0x1256, 0x0e4f,
+ 0x0a31, 0x0c3c, 0x0ef5, 0x076c, 0x0385, 0x0e42,
+ 0x1160, 0x0747, 0x0851, 0x0e8e, 0x0798, 0x0422,
+ 0x09bd, 0x0985, 0x0ab0, 0x0bff, 0x0342, 0x0091,
+ 0x0524, 0x031f, 0x036a, 0x05bb, 0x02bb, 0x0272,
+ 0x02d0, 0x0207, 0x0340, 0xfe67, 0xfa6e, 0x0036,
+ 0x0327, 0x00b4, 0xfd1e, 0xfa15, 0xfe05, 0xffc0,
+ 0xfb47, 0xfdb0, 0xfea9, 0xf811, 0xf6b2, 0xf822,
+ 0xf92c, 0xfb50, 0xf89c, 0xf6ca, 0xf7c0, 0xf491,
+ 0xf528, 0xf8b3, 0xf6c0, 0xf604, 0xf548, 0xf23d,
+ 0xf5da, 0xfaca, 0xf8c9, 0xf4ef, 0xf4cb, 0xf8d1,
+ 0xf894, 0xf325, 0xf36c, 0xf409, 0xf244, 0xf76a,
+ 0xf97d, 0xf5ae, 0xf707, 0xf577, 0xf347, 0xf9bf,
+ 0xfa56, 0xf69a, 0xf93c, 0xf56d, 0xf127, 0xfbc4,
+ 0x0225, 0xf8cf, 0xf262, 0xf5d7, 0xf967, 0xf9ba,
+ 0xfa20, 0xfa7b, 0xf853, 0xf797, 0xfc1e, 0xfd95,
+ 0xf836, 0xf89f, 0xff58, 0xfe0a, 0xf9fa, 0xfdcf,
+ 0xff61, 0xfcdf, 0x0026, 0x0262, 0x0051, 0x02eb,
+ 0x03e8, 0xfe50, 0xfd3a, 0xffdc, 0xff30, 0x00ff,
+ 0x052d, 0x037c, 0xffa8, 0x0100, 0x032d, 0x0218,
+ 0x0293, 0x0480, 0x0331, 0x0073, 0xfcdb, 0xf89e,
+ 0xf9d5, 0x00db, 0x0714, 0x06b3, 0x0116, 0xff8b,
+ 0xffe0, 0xfc7f, 0xff30, 0x05c9, 0x03e8, 0xfe1f,
+ 0xfa87, 0xfa7e, 0xfce2, 0xfbeb, 0xfb60, 0xfb03,
+ 0xf58f, 0xf4a2, 0xf678, 0xf398, 0xf6dd, 0xfe1a,
+ 0x004a, 0xff52, 0xf8ac, 0xf6e6, 0xff46, 0xfca7,
+ 0xf585, 0xfbf2, 0xff6a, 0xfade, 0xfa81, 0xfb2c,
+ 0xfc1b, 0xfe22, 0xffe5, 0x040d, 0x0094, 0xf734,
+ 0xfa87, 0xff6e, 0xfb3b, 0xfaf8, 0xfbe1, 0xff4b,
+ 0x07b6, 0x013d, 0xf761, 0xfe70, 0x0219, 0xfff5,
+ 0x02fb, 0x004b, 0xfd8f, 0x00a1, 0xfe21, 0xfcb0,
+ 0x0355, 0x062b, 0xff75, 0xf9e7, 0xfc5a, 0xfd6e,
+ 0xfd58, 0x006f, 0xfd37, 0xfce3, 0x044b, 0x0016,
+ 0xfb91, 0x004a, 0xfab5, 0xf61c, 0xfd27, 0xfc51,
+ 0xf67a, 0xf878, 0xfdf4, 0x0099, 0xff70, 0x016c,
+ 0x03cc, 0xfeb2, 0xff89, 0x077a, 0x05e3, 0x032d,
+ 0x062d, 0x032a, 0xff63, 0x0175, 0x0267, 0x03a4,
+ 0x064a, 0x0789, 0x080f, 0x05de, 0x07cd, 0x0cdb,
+ 0x0642, 0x0385, 0x0ad0, 0x0438, 0x020a, 0x0ebf,
+ 0x0a8a, 0x0263, 0x0797, 0x074c, 0x05bf, 0x0551,
+ 0x0239, 0x089b, 0x0e84, 0x0d2a, 0x0aed, 0x00e9,
+ 0xfd5c, 0x0807, 0x0883, 0x0062, 0xff4f, 0x0276,
+ 0x03ae, 0xfed7, 0xfcc1, 0x021f, 0x0115, 0xfc7c,
+ 0xfce2, 0xfac0, 0xf928, 0xfda3, 0xffd2, 0xfe6b,
+ 0xfdee, 0xfd5d, 0xfee9, 0x0138, 0xfd67, 0xf8b9,
+ 0xf8ae, 0xfa35, 0xfea0, 0xfeed, 0xf7e3, 0xf798,
+ 0xfa21, 0xf8b6, 0xfa98, 0xf827, 0xf35c, 0xf711,
+ 0xfb0c, 0xffaf, 0x013b, 0xf487, 0xeb64, 0xf1ab,
+ 0xfbdc, 0xff98, 0xf904, 0xf7ed, 0x004f, 0xfe20,
+ 0xf7f5, 0xfb03, 0xfff9, 0xffc4, 0xf5d7, 0xefc3,
+ 0xf9ca, 0xff99, 0xfb39, 0xfba1, 0xfe03, 0xfd6a,
+ 0xfbb5, 0xf9ca, 0xfbb8, 0xff5d, 0xfd32, 0xf8d5,
+ 0xf880, 0xf625, 0xf3dc, 0xfc51, 0x0377, 0xff8b,
+ 0xfe2d, 0x00c2, 0xff10, 0xfb4b, 0xfada, 0xfdec,
+ 0xfdc3, 0xfe46, 0x0291, 0x0095, 0x0096, 0x025f,
+ 0xf865, 0xf74b, 0xffe2, 0xfa93, 0xf914, 0x0310,
+ 0x0558, 0x012c, 0xfd64, 0xffce, 0x0524, 0x0204,
+ 0xfdf4, 0xfa7f, 0xf4f8, 0xfa0b, 0x011b, 0xfb80,
+ 0xf688, 0xfb6c, 0xfe17, 0xf8cb, 0xf8d0, 0xfec2,
+ 0xfdad, 0xfca7, 0xfe6a, 0xfbc7, 0xfd57, 0x0017,
+ 0xfc43, 0xfc4c, 0x0093, 0x0126, 0xff33, 0xfe8b,
+ 0xfcb0, 0xf57b, 0xf5ec, 0x00c8, 0xffec, 0xf78f,
+ 0xf90a, 0xfbac, 0xf917, 0xf95d, 0xffef, 0x0402,
+ 0x0000, 0xfc12, 0xfaa5, 0xfbb8, 0xff91, 0xfe3e,
+ 0xfc64, 0xfe43, 0xfeca, 0xfff8, 0xfa0b, 0xf43f,
+ 0xfe8b, 0x0081, 0xf78a, 0xfc51, 0xffe2, 0xfce4,
+ 0x0085, 0x012c, 0xfcd6, 0xfad1, 0xfd07, 0x006e,
+ 0xfc8b, 0xf92f, 0xfe54, 0x0282, 0x025c, 0x0099,
+ 0x013e, 0x031f, 0x01ba, 0x0349, 0x02bb, 0xfc11,
+ 0xfd86, 0x00d2, 0xfeeb, 0x02f7, 0x067d, 0x0270,
+ 0xff4a, 0x00d3, 0x01bd, 0xfd36, 0xfc76, 0x0317,
+ 0x0689, 0x057e, 0xffc5, 0xfbc8, 0x0291, 0x0643,
+ 0x0358, 0x0311, 0x02f5, 0x0605, 0x0776, 0x042a,
+ 0x08e8, 0x0b5b, 0x029b, 0xfe2a, 0xffd8, 0x00ed,
+ 0xffdd, 0xff8c, 0x04e7, 0x0b29, 0x0e0a, 0x0bb8,
+ 0x08a5, 0x0d47, 0x0c62, 0x045e, 0x05c2, 0x084e,
+ 0x08a4, 0x097c, 0x0449, 0x0530, 0x0afd, 0x08e0,
+ 0x0853, 0x08c4, 0x06dd, 0x07c7, 0x083d, 0x085d,
+ 0x04b0, 0x029f, 0x0b2b, 0x0b62, 0x0678, 0x0d04,
+ 0x0cc3, 0x0694, 0x07b3, 0x0666, 0x0369, 0x016d,
+ 0xff6e, 0xffe7, 0xfd12, 0xfd68, 0x04e5, 0x025c,
+ 0xfa22, 0xff5b, 0x0813, 0x042b, 0xffdb, 0x0253,
+ 0x0063, 0x02a6, 0x08d2, 0x01e7, 0xfe54, 0x0412,
+ 0x02e7, 0x03a8, 0x04fc, 0x007c, 0x002e, 0xff49,
+ 0xfd3a, 0xfd30, 0xfb37, 0xfdb8, 0x008a, 0x0210,
+ 0x041c, 0xfa21, 0xf599, 0xff9c, 0xfd5a, 0xf912,
+ 0xfe47, 0xfbcf, 0xf8f2, 0xfeab, 0x0335, 0xff9e,
+ 0xfc3e, 0x0385, 0x040a, 0xfb41, 0xfe36, 0x0128,
+ 0xfdba, 0xfe3e, 0xfbd4, 0xfd2e, 0x0487, 0x020c,
+ 0xfb50, 0xfb1a, 0xfec9, 0xfde3, 0xf8dd, 0xfd6e,
+ 0x0518, 0x045d, 0x03b4, 0x03c6, 0x01bb, 0xff83,
+ 0x00b7, 0x07f7, 0x0639, 0xfca0, 0xffb9, 0x0645,
+ 0x05b0, 0x0645, 0x075a, 0x055d, 0x03ad, 0x0657,
+ 0x04df, 0x0000, 0x09d0, 0x113f, 0x0949, 0x09e3,
+ 0x09d8, 0x02e0, 0x0819, 0x0ab2, 0x061c, 0x0871,
+ 0x0b58, 0x0dbb, 0x0c95, 0x0609, 0x0482, 0x0769,
+ 0x0c18, 0x09f1, 0x00aa, 0x04cc, 0x0c48, 0x0a56,
+ 0x0cde, 0x0fc7, 0x1054, 0x10f1, 0x0b31, 0x0755,
+ 0x07c2, 0x0965, 0x0b04, 0x04bd, 0x029c, 0x0506,
+ 0xffbd, 0x0537, 0x0de0, 0x06ca, 0x0660, 0x0c15,
+ 0x08d3, 0x0825, 0x08a7, 0x0112, 0xfa08, 0x010c,
+ 0x1053, 0x1010, 0x02bf, 0x0325, 0x0fd1, 0x0d13,
+ 0xfc25, 0xfa1e, 0xfe57, 0xf6ab, 0xf8a4, 0x042c,
+ 0x0739, 0x0611, 0x0185, 0x00b9, 0x0280, 0xfb45,
+ 0xfc00, 0x0216, 0xff0f, 0xfec1, 0xfb3d, 0xfaba,
+ 0x069c, 0x0380, 0xfd9e, 0x0898, 0x0a0d, 0x036a,
+ 0x0435, 0x0646, 0x0406, 0xfe36, 0x024e, 0x0953,
+ 0x0036, 0xf88d, 0xfd74, 0x03f2, 0x0540, 0x0093,
+ 0x0463, 0x0933, 0xff07, 0xfd9a, 0x05c2, 0x0494,
+ 0x08a6, 0x0f8f, 0x08e9, 0x0278, 0x0642, 0x066f,
+ 0x00fa, 0x052b, 0x0a80, 0x069b, 0x0928, 0x0b8e,
+ 0x071b, 0x0b85, 0x0d72, 0x0795, 0x06be, 0x0663,
+ 0x08bd, 0x0b83, 0x09fd, 0x0f2a, 0x119e, 0x0b53,
+ 0x07ed, 0x0708, 0x0c12, 0x107a, 0x0c4c, 0x0e3b,
+ 0x1054, 0x09a0, 0x076d, 0x0ad1, 0x0f25, 0x0f69,
+ 0x0ba0, 0x0e31, 0x11e7, 0x1176, 0x112e, 0x114b,
+ 0x1160, 0x0b7e, 0x0952, 0x10f5, 0x0d29, 0x0894,
+ 0x0e3c, 0x09b0, 0x04ee, 0x042f, 0xfefe, 0x02b5,
+ 0x0562, 0x066e, 0x1118, 0x0e52, 0x0569, 0x0870,
+ 0x0820, 0x0a96, 0x0dde, 0x0167, 0xf951, 0x014e,
+ 0x094b, 0x0a32, 0x0731, 0x0622, 0x082b, 0x07f5,
+ 0x045b, 0x0461, 0x05c8, 0x00b2, 0x0178, 0x041e,
+ 0xf93e, 0xf8f4, 0x02ad, 0xfe9a, 0xff72, 0x03ec,
+ 0xfddd, 0xfc71, 0xfd1d, 0xffb9, 0x0622, 0x03d7,
+ 0x04bf, 0x068d, 0xff4d, 0xff6a, 0xfd09, 0xf6f0,
+ 0x0001, 0x034b, 0xfadd, 0xfbcb, 0x0154, 0x02f1,
+ 0xfffb, 0xfc12, 0xfeb7, 0x0528, 0x06de, 0x01e2,
+ 0x02ed, 0x08cb, 0x0421, 0x0571, 0x0cf6, 0x02c3,
+ 0xfc85, 0x0393, 0xff95, 0xfab2, 0x026c, 0x0a63,
+ 0x09c5, 0x08c9, 0x0e0a, 0x0bc6, 0x06da, 0x09cf,
+ 0x00b2, 0xf627, 0xfe2e, 0x0363, 0x0253, 0x0564,
+ 0x07a9, 0x07af, 0x0430, 0x04c4, 0x08e6, 0x02a2,
+ 0xfe03, 0x0354, 0x0723, 0x08d1, 0x08f6, 0x0954,
+ 0x0bb2, 0x0d39, 0x0d2b, 0x0663, 0x000b, 0x00f6,
+ 0x00f0, 0x061f, 0x090b, 0x035f, 0x0e55, 0x17f7,
+ 0x08c4, 0x01e0, 0x0a20, 0x0cb7, 0x0813, 0x019f,
+ 0x0505, 0x0dac, 0x0e8c, 0x0d0f, 0x0a11, 0x04fd,
+ 0x01f8, 0x03f6, 0x0a13, 0x06e3, 0x035d, 0x0dbe,
+ 0x11f2, 0x0eb3, 0x0b33, 0x0040, 0x0087, 0x0b61,
+ 0x09b5, 0x0567, 0x04c4, 0x01fa, 0x0190, 0x0334,
+ 0x03d2, 0x022d, 0x03f2, 0x07d6, 0x005c, 0xf9e5,
+ 0x0034, 0x03f4, 0x02fd, 0x025b, 0x0210, 0x01c4,
+ 0xfd81, 0xfc5d, 0xfd94, 0xf9f9, 0xfd2b, 0x03d8,
+ 0x0380, 0x0497, 0x061e, 0x011d, 0xf8a6, 0xf63a,
+ 0xfa81, 0xf83c, 0xf573, 0xf8db, 0xf766, 0xf722,
+ 0xf816, 0xf75b, 0x011c, 0x06e6, 0x0173, 0x0017,
+ 0xfeae, 0xfe8a, 0xfd83, 0xf64a, 0xf9c2, 0xffa7,
+ 0xff34, 0x05fc, 0x040d, 0xf8ea, 0xfd24, 0x0734,
+ 0x076f, 0x0124, 0x01ac, 0x0af2, 0x0926, 0x00e6,
+ 0x024b, 0x062e, 0x09e7, 0x0bac, 0x0a4d, 0x09af,
+ 0x0497, 0x0567, 0x0fbe, 0x0b9a, 0x001a, 0x0405,
+ 0x0b8a, 0x0959, 0x0908, 0x0f3c, 0x0a63, 0x0108,
+ 0x09f5, 0x0fd8, 0x037e, 0x01bc, 0x0d1f, 0x0e5a,
+ 0x0880, 0x0821, 0x078d, 0x0546, 0x086d, 0x055c,
+ 0x029e, 0x14f3, 0x1d79, 0x0f8b, 0x0b31, 0x0623,
+ 0xfc49, 0x0179, 0x04d9, 0x0272, 0x0618, 0x06bf,
+ 0x04ed, 0x0677, 0x0cac, 0x0e7b, 0x00bd, 0xfaed,
+ 0x0524, 0x040a, 0xfb2d, 0xfaa7, 0x0013, 0x04aa,
+ 0x004d, 0xf882, 0xf7c8, 0xfd25, 0x014c, 0xffcb,
+ 0x023a, 0x02c8, 0xf6c7, 0xf41c, 0xf720, 0xf073,
+ 0xf703, 0x0287, 0xfe76, 0xfc73, 0xfc78, 0xf734,
+ 0xf42d, 0xf333, 0xf6a0, 0xf756, 0xf03e, 0xf137,
+ 0xf4ea, 0xef72, 0xecf8, 0xef46, 0xf083, 0xf4a5,
+ 0xf4eb, 0xeb4d, 0xe7fb, 0xeef7, 0xef97, 0xf0e7,
+ 0xfa82, 0xfa05, 0xf28e, 0xf1f1, 0xf188, 0xf084,
+ 0xf217, 0xf3b2, 0xf2ae, 0xef98, 0xf374, 0xf8be,
+ 0xf5ef, 0xf5db, 0xf7be, 0xf6f3, 0xf8ac, 0xf8a1,
+ 0xf967, 0xf979, 0xf3bc, 0xf678, 0xfc09, 0xf856,
+ 0xf700, 0xf876, 0xfdae, 0x07fe, 0x09cf, 0x0327,
+ 0xf844, 0xf2d0, 0xfa61, 0xfa8c, 0xf827, 0x0013,
+ 0xfe2c, 0xfd5d, 0x0693, 0x03e5, 0x02d7, 0x0671,
+ 0xfd9c, 0xfc59, 0x026f, 0xfb57, 0xf6c2, 0xfc43,
+ 0xfd2c, 0xfa51, 0xfb45, 0x0133, 0x0991, 0x0ceb,
+ 0x087f, 0x05ad, 0x089c, 0x084f, 0x00de, 0xf999,
+ 0xfa70, 0xff2b, 0xfeb3, 0xfdbc, 0xfdcd, 0xfc95,
+ 0x02bc, 0x07a1, 0x0221, 0x0288, 0x0788, 0x0578,
+ 0x0282, 0x0197, 0x01c4, 0x01b2, 0x0372, 0x09dc,
+ 0x0749, 0xfdef, 0xffa7, 0x0460, 0x03ad, 0xfe2b,
+ 0xf4fd, 0xf6c0, 0x00df, 0x02c2, 0xfe66, 0xfaa9,
+ 0xfda9, 0x02c9, 0x01fa, 0x0559, 0x063c, 0xfcbd,
+ 0xfeb8, 0x0833, 0x080e, 0x0956, 0x090c, 0xfcf8,
+ 0xf1ad, 0xead1, 0xe2bb, 0xe24b, 0xeaa4, 0xf0d6,
+ 0xfc4a, 0x0df2, 0x1109, 0x0d76, 0x1114, 0x0b10,
+ 0xfd54, 0xf4d3, 0xecd6, 0xe735, 0xe13e, 0xdc19,
+ 0xe680, 0xf514, 0xfb60, 0x01ca, 0x03a2, 0x004b,
+ 0xfeb6, 0xf7bc, 0xf115, 0xf861, 0x0506, 0x0ad0,
+ 0x0967, 0x02e6, 0xfc15, 0xf933, 0xf535, 0xf07d,
+ 0xf5f8, 0x013b, 0x07cd, 0x0fed, 0x18c7, 0x1655,
+ 0x0dc3, 0x09fb, 0x05ab, 0x0004, 0x042d, 0x0b11,
+ 0x09c7, 0x09bd, 0x08e9, 0x0310, 0x053d, 0x0a05,
+ 0x0b15, 0x1155, 0x14ec, 0x125b, 0x0c56, 0xff5e,
+ 0xfd4b, 0x0969, 0x0e35, 0x0f5b, 0x0f3b, 0x076d,
+ 0x01ba, 0xfc6d, 0xf790, 0xfe1f, 0x0475, 0x04a4,
+ 0x0bdd, 0x1312, 0x0ce1, 0x0529, 0x0a82, 0x12c9,
+ 0x128a, 0x0fc7, 0x08da, 0xfd2f, 0xfc10, 0xfdf4,
+ 0xf1cc, 0xea90, 0xf571, 0xfdfa, 0x00b9, 0x08dd,
+ 0x09a3, 0xfe78, 0xfb33, 0x01b1, 0x0700, 0x0b33,
+ 0x0bcc, 0x0777, 0x02d2, 0xfdef, 0xfbc2, 0xff2f,
+ 0x03af, 0x0807, 0x0b88, 0x0972, 0x0085, 0xf504,
+ 0xeec0, 0xeed6, 0xecb0, 0xe895, 0xea47, 0xeed4,
+ 0xf2ac, 0xfa8c, 0x0497, 0x0b50, 0x0f24, 0x0db9,
+ 0x0526, 0xf7bd, 0xe90c, 0xe4e8, 0xec19, 0xed3e,
+ 0xeb28, 0xf007, 0xf23a, 0xf35f, 0xfbed, 0x0304,
+ 0x036d, 0x00e3, 0xfe2e, 0xfaa6, 0xf223, 0xecc7,
+ 0xf0c4, 0xf07a, 0xedef, 0xf561, 0xf99b, 0xf4ec,
+ 0xf785, 0xffa1, 0x0072, 0xfcb6, 0xf9a2, 0xf7d2,
+ 0xfa38, 0xfde2, 0xfd9b, 0xfe06, 0xfeca, 0xf938,
+ 0xf436, 0xf51f, 0xf686, 0xfc3f, 0x05a8, 0x06fd,
+ 0x0414, 0x022a, 0xfa32, 0xf467, 0xfa95, 0xffcb,
+ 0xfeb9, 0xff46, 0xfdc6, 0xfbc4, 0x0281, 0x083d,
+ 0x059f, 0x02b1, 0xfb28, 0xf13c, 0xf544, 0xfe8d,
+ 0x03fc, 0x0e91, 0x11d0, 0x0667, 0xfc47, 0xf0bc,
+ 0xe616, 0xea1f, 0xf087, 0xf6bc, 0x03f7, 0x08ed,
+ 0x0ab4, 0x122b, 0x0b36, 0xfe7c, 0xff9e, 0xffff,
+ 0xfb8d, 0xfbab, 0x0079, 0x0847, 0x07c2, 0x00dc,
+ 0x02b1, 0x0192, 0xf7c8, 0xf2d9, 0xefc9, 0xee73,
+ 0xee05, 0xe412, 0xdfb0, 0xea25, 0xf2e3, 0xfaf2,
+ 0x0398, 0x039a, 0xfffe, 0xf8aa, 0xeec7, 0xeecd,
+ 0xf1d3, 0xeff6, 0xf1bb, 0xf791, 0xff75, 0x0481,
+ 0xfe0d, 0xfa05, 0x0361, 0x0721, 0xfe10, 0xf7e4,
+ 0xf7aa, 0xf3d1, 0xedff, 0xef2c, 0xf2b1, 0xf06a,
+ 0xf17d, 0xfbae, 0x041d, 0x07bd, 0x0add, 0x0b5d,
+ 0x0c87, 0x0f82, 0x0722, 0xf863, 0xf83a, 0xfbfe,
+ 0xf635, 0xf9bb, 0x0449, 0x02c0, 0x02aa, 0x09e3,
+ 0x0d04, 0x145d, 0x1940, 0x0c87, 0x0072, 0xfba7,
+ 0xf345, 0xf3fa, 0x00f8, 0x0a30, 0x0d76, 0x0cac,
+ 0x0927, 0x06e0, 0x02ce, 0xfe5f, 0xfdfd, 0xffec,
+ 0x06e9, 0x10a0, 0x1429, 0x143f, 0x1389, 0x10e4,
+ 0x122a, 0x15c9, 0x1426, 0x0d5f, 0x0418, 0x002f,
+ 0x06a6, 0x0b6d, 0x08e8, 0x07f3, 0x0837, 0x067b,
+ 0x05dc, 0x04f2, 0x0194, 0xfd7f, 0xfdd5, 0x06ed,
+ 0x0bf9, 0x0331, 0xfe38, 0x009d, 0xfb93, 0xf8c9,
+ 0xfc4e, 0xf9d3, 0xfea3, 0x0d77, 0x0fc4, 0x0ccc,
+ 0x0e1d, 0x04c5, 0xf6e1, 0xf033, 0xe91a, 0xe506,
+ 0xed66, 0xfdbc, 0x098d, 0x08d4, 0x078d, 0x0eca,
+ 0x0f96, 0x068b, 0xfdcb, 0xf38d, 0xe937, 0xe47e,
+ 0xe536, 0xea21, 0xedbf, 0xf00e, 0xf469, 0xf501,
+ 0xf87c, 0x02d5, 0x01aa, 0xfc3b, 0x039a, 0x0572,
+ 0xfe80, 0xfd93, 0xf7c2, 0xf064, 0xf865, 0xfed4,
+ 0xfa29, 0xfd1f, 0x057d, 0x059e, 0x028e, 0xfda7,
+ 0xf26c, 0xec4d, 0xf195, 0xf55a, 0xf761, 0x0088,
+ 0x05b3, 0x0126, 0x02bd, 0x0cfa, 0x11ef, 0x0d59,
+ 0x05a2, 0x01e7, 0x033c, 0x04ef, 0x031f, 0xfe7b,
+ 0xfe67, 0x0452, 0x056a, 0x04a9, 0x0ca7, 0x11b0,
+ 0x0d32, 0x0ddf, 0x12fe, 0x12a2, 0x135c, 0x16e6,
+ 0x155c, 0x13dc, 0x173a, 0x149a, 0x0ac2, 0x07d2,
+ 0x0b9c, 0x0e99, 0x160c, 0x1d05, 0x17c0, 0x1329,
+ 0x179d, 0x14af, 0x0c1d, 0x0d33, 0x0fe4, 0x0c54,
+ 0x09c0, 0x0521, 0xfb9c, 0xf8fd, 0xff06, 0x052f,
+ 0x0bfc, 0x1096, 0x0f17, 0x1234, 0x1739, 0x0cd0,
+ 0xffa5, 0x031f, 0x08f1, 0x06c8, 0x06e0, 0x087a,
+ 0x0745, 0x07b4, 0x0827, 0x0497, 0x0205, 0x0504,
+ 0x06f8, 0x04ee, 0x0c1a, 0x1b77, 0x1da7, 0x14c1,
+ 0x1061, 0x0bea, 0x0490, 0xfebf, 0xf918, 0xf982,
+ 0x01ff, 0x08dc, 0x0eab, 0x1594, 0x161c, 0x0d46,
+ 0xff52, 0xf4ba, 0xf05b, 0xee62, 0xf596, 0x05f0,
+ 0x0fea, 0x1508, 0x1b66, 0x1a1a, 0x104d, 0x022d,
+ 0xf32b, 0xeccf, 0xecdf, 0xed0a, 0xf32f, 0xffd6,
+ 0x0ba5, 0x0d46, 0x0335, 0xff68, 0x03d7, 0xff46,
+ 0xfbce, 0x03f0, 0x07c6, 0x0578, 0x0655, 0x06d6,
+ 0x036b, 0xff5b, 0x007a, 0x02af, 0xfdc4, 0xfd02,
+ 0x03fe, 0x02a2, 0xfed5, 0x04f4, 0x0d67, 0x1472,
+ 0x1755, 0x11af, 0x0bd3, 0x0a18, 0x09a0, 0x0811,
+ 0x0119, 0xfe00, 0x0761, 0x0f30, 0x1051, 0x1334,
+ 0x1567, 0x16cb, 0x194e, 0x1659, 0x0fd2, 0x0c56,
+ 0x090a, 0x0523, 0x05c7, 0x0abd, 0x0da0, 0x0d11,
+ 0x0fcc, 0x1571, 0x1430, 0x0cb2, 0x09c7, 0x0c78,
+ 0x0ec6, 0x112f, 0x1294, 0x0e03, 0x08eb, 0x0829,
+ 0x04d6, 0x008a, 0x0387, 0x0828, 0x0727, 0x0659,
+ 0x0aa9, 0x0b8a, 0x0453, 0x02ad, 0x087c, 0x05eb,
+ 0x0134, 0x05ae, 0x0762, 0x049f, 0x06c5, 0x0930,
+ 0x0805, 0x0459, 0xffe7, 0xfec5, 0xfe1d, 0xfeb7,
+ 0x041c, 0x0448, 0xff66, 0x0075, 0x03af, 0x05c8,
+ 0x0589, 0xff17, 0xfd19, 0x0280, 0x020e, 0xfcd4,
+ 0xfa1d, 0xfdd4, 0x090d, 0x0bd5, 0xff84, 0xf799,
+ 0xfbb9, 0x022c, 0x04b5, 0x029a, 0x0225, 0x0641,
+ 0x073c, 0x0286, 0xfeaa, 0xffe2, 0x01d4, 0x005f,
+ 0x0054, 0x010d, 0xfd0e, 0xfa32, 0xfb6c, 0xfe83,
+ 0x092f, 0x153e, 0x121a, 0x03e9, 0xfb86, 0xfd09,
+ 0x0017, 0x0062, 0x0259, 0x0439, 0x0210, 0x02db,
+ 0x07f3, 0x08e4, 0x057a, 0x0264, 0x00a1, 0xffd2,
+ 0xfffb, 0x01ed, 0x040d, 0x05b3, 0x08d9, 0x0783,
+ 0xfeca, 0xfa16, 0xfaa0, 0xf8c7, 0xfddd, 0x0bfd,
+ 0x101c, 0x0d36, 0x1496, 0x194d, 0x1128, 0x0c22,
+ 0x09bc, 0x0493, 0x0759, 0x0955, 0x029a, 0x05df,
+ 0x11d3, 0x1423, 0x0eeb, 0x0bf0, 0x10a9, 0x1621,
+ 0x107e, 0x0a83, 0x0b31, 0x081b, 0x0529, 0x0291,
+ 0xfaab, 0xfa3a, 0xfebd, 0xfba0, 0xfc79, 0x0250,
+ 0x00f4, 0xff69, 0x03b8, 0x0819, 0x0856, 0x03c7,
+ 0x0084, 0x02be, 0x0626, 0x0772, 0x07b2, 0x0be4,
+ 0x113d, 0x0adc, 0xfc71, 0xf563, 0xf702, 0xfb9f,
+ 0xfe4e, 0xfc2b, 0xf9f1, 0xfcdf, 0x023a, 0x010c,
+ 0xfb1b, 0xfd3e, 0x011f, 0xfdcc, 0xff17, 0x0192,
+ 0xfc2b, 0xfb4e, 0xff87, 0x0201, 0x03fc, 0xfe53,
+ 0xf793, 0xfaa5, 0xfc3e, 0xfe94, 0x05bf, 0x026e,
+ 0xfcb0, 0x0121, 0x03b8, 0x01d0, 0xfe5d, 0xf8a1,
+ 0xf6bf, 0xf700, 0xf88e, 0xfdce, 0xfcff, 0xf993,
+ 0xfccc, 0xfca4, 0xfc6e, 0x061a, 0x0a28, 0x01f2,
+ 0xfcb8, 0xfe47, 0x019d, 0x06b4, 0x08c3, 0x04da,
+ 0x0660, 0x0cdc, 0x0724, 0xfe30, 0x0346, 0x07cb,
+ 0x046a, 0x05d5, 0x082d, 0x0543, 0x02f5, 0x03dd,
+ 0x062b, 0x0656, 0x07a0, 0x0e0b, 0x0fe4, 0x0bac,
+ 0x07a7, 0x014c, 0x008c, 0x07a1, 0x0813, 0x072c,
+ 0x0bf1, 0x0ea9, 0x1177, 0x0fb4, 0x06cb, 0x07a0,
+ 0x0b02, 0x0170, 0xfa85, 0xfe74, 0x04aa, 0x09c3,
+ 0x0958, 0x067a, 0x07dd, 0x08ac, 0x07b9, 0x090f,
+ 0x0b20, 0x0bb1, 0x0c3b, 0x1070, 0x11c9, 0x06d1,
+ 0xfc40, 0xfe3a, 0x0139, 0xfbc8, 0xf452, 0xf7f2,
+ 0x06cd, 0x0f05, 0x0dd4, 0x0c81, 0x06d6, 0xfdcc,
+ 0xf4de, 0xeb07, 0xec74, 0xf4da, 0xf269, 0xf583,
+ 0x0634, 0x0944, 0xfde4, 0xfacf, 0x00d8, 0x041e,
+ 0xffd6, 0xf9d8, 0xf86f, 0xf8f4, 0xf8be, 0xf4dc,
+ 0xed57, 0xed8e, 0xf55f, 0xf852, 0xfa22, 0x0047,
+ 0x0311, 0x017e, 0xfeeb, 0xf9ad, 0xf4f5, 0xf46a,
+ 0xf4c7, 0xf364, 0xf063, 0xf072, 0xfa30, 0x0388,
+ 0xfd42, 0xf2c5, 0xf2ee, 0xf40a, 0xf000, 0xedad,
+ 0xedf0, 0xf0e5, 0xf678, 0xfa1c, 0xfc09, 0xfd5d,
+ 0xfd0b, 0xfb65, 0xf76d, 0xf5a9, 0xf97d, 0xfa8d,
+ 0xf9d4, 0xfdc7, 0xfd49, 0xf772, 0xf7e4, 0xfa3c,
+ 0xf7af, 0xf7a9, 0xfa0d, 0xf549, 0xee62, 0xefc4,
+ 0xf2bf, 0xf39f, 0xfa08, 0xfe0d, 0xfacc, 0xfe54,
+ 0x03df, 0xfe3e, 0xf5e7, 0xf142, 0xf0d8, 0xf6e6,
+ 0xfc0e, 0xfed7, 0x0348, 0x0293, 0xfdd1, 0xfd08,
+ 0xfd22, 0xf99f, 0xf372, 0xf18d, 0xf7cc, 0xfc4e,
+ 0xfd61, 0x033d, 0x07c3, 0x02bc, 0xf8db, 0xf61c,
+ 0xfe9d, 0x025f, 0xff61, 0x07cd, 0x0fa8, 0x0754,
+ 0x017f, 0x042a, 0x043c, 0x0303, 0x014c, 0x01a9,
+ 0x05c6, 0x03ec, 0xff0a, 0xffb6, 0x0012, 0xfffb,
+ 0x029d, 0x025b, 0xfe92, 0xfaf2, 0xfbbe, 0x04e3,
+ 0x0ef1, 0x0f3d, 0x06a6, 0xfde4, 0xfb65, 0xfc37,
+ 0xfcc3, 0x0065, 0x075d, 0x0d6d, 0x0cf1, 0x03cb,
+ 0xfd93, 0xfe54, 0xf65d, 0xe869, 0xea3e, 0xf8aa,
+ 0xffb5, 0xfe17, 0xfc9d, 0xfa26, 0xf5b7, 0xf4f0,
+ 0xf854, 0xfe2c, 0x05b0, 0x09da, 0x0d32, 0x1339,
+ 0x109d, 0x0434, 0xf88b, 0xed2b, 0xe9a5, 0xf428,
+ 0xf90b, 0xf5f7, 0xfdca, 0x0770, 0x0779, 0x09ab,
+ 0x0b2e, 0x01fb, 0xf9e4, 0xf88e, 0xf35b, 0xee5c,
+ 0xf4a2, 0xffd3, 0x070b, 0x0bc8, 0x0ed7, 0x0e32,
+ 0x0938, 0x0204, 0xfc90, 0xf9a6, 0xf868, 0xf642,
+ 0xf283, 0xf890, 0x0674, 0x0678, 0x01a2, 0x0a19,
+ 0x0b2a, 0xfffa, 0xffe8, 0x0508, 0x0362, 0x00c5,
+ 0xfc6c, 0xfa3a, 0xffa1, 0x030f, 0x00d5, 0xfed4,
+ 0x017d, 0x0580, 0xff96, 0xf992, 0x0057, 0xfeae,
+ 0xf2e9, 0xf658, 0xfd47, 0xf91a, 0xf79a, 0xf952,
+ 0xfc49, 0x046a, 0x076c, 0x058b, 0x0645, 0x027c,
+ 0xfc14, 0xfa1b, 0xf94b, 0xfa39, 0xfc01, 0xfd86,
+ 0x0387, 0x0606, 0x009e, 0xff70, 0xfe72, 0xf633,
+ 0xf362, 0xf82a, 0xfbd0, 0x004a, 0x0348, 0xfffe,
+ 0xfcaf, 0xfd49, 0xff6f, 0xfff2, 0xfb51, 0xf70f,
+ 0xfa18, 0xfd63, 0xfc4e, 0xfc48, 0xfc8d, 0xfbc7,
+ 0xfe37, 0x0243, 0x03d0, 0x006d, 0xf81f, 0xf5e8,
+ 0xfca3, 0xfcaa, 0xf822, 0xfbf9, 0xfdd0, 0xf8fb,
+ 0xfa9d, 0x0204, 0x0851, 0x09f2, 0x0398, 0xff59,
+ 0x0004, 0xf8b5, 0xf030, 0xef96, 0xedd1, 0xed00,
+ 0xf0cb, 0xf4ae, 0xfd2f, 0x02ea, 0xfd0e, 0xfb21,
+ 0xfc48, 0xf47e, 0xf33b, 0xfdbe, 0x05de, 0x0a0a,
+ 0x07e4, 0x00f8, 0x0043, 0xfd3a, 0xf22f, 0xf07d,
+ 0xf962, 0xfec7, 0xffa9, 0xff92, 0xfe27, 0xfa89,
+ 0xf677, 0xf637, 0xf7df, 0xf8e0, 0xfce2, 0x011d,
+ 0xffbd, 0xfcd0, 0xfee7, 0x0422, 0x0271, 0xf8cf,
+ 0xf630, 0xfc74, 0xfd05, 0xfafb, 0x0327, 0x0d53,
+ 0x0b0f, 0x0493, 0x08d2, 0x0d2b, 0x038f, 0xfae2,
+ 0xfc3e, 0xf9f3, 0xf5da, 0xf7c1, 0xf726, 0xf62f,
+ 0xfdba, 0x067e, 0x09c7, 0x0754, 0xff64, 0xf8e6,
+ 0xf623, 0xf1e5, 0xeeec, 0xf111, 0xf6d2, 0xfe61,
+ 0x0301, 0x05e2, 0x0d76, 0x116b, 0x089d, 0xfc1f,
+ 0xf42a, 0xf18a, 0xf46a, 0xf691, 0xf692, 0xfb83,
+ 0xffb7, 0xfba2, 0xf910, 0xfd43, 0xffdb, 0xfe8c,
+ 0xfd98, 0xfdbf, 0xfc16, 0xf6ee, 0xf3a8, 0xf6cb,
+ 0xfc23, 0x017a, 0x05c5, 0x050d, 0x054f, 0x09a5,
+ 0x0659, 0xfe6d, 0xfe75, 0xff29, 0xfa42, 0xf38f,
+ 0xec1c, 0xeed7, 0xfc5e, 0xffbd, 0xfdf9, 0x042e,
+ 0x0105, 0xf66c, 0xf9ad, 0xff7d, 0xfc13, 0xfbb5,
+ 0x00e5, 0x03c6, 0x0207, 0x00c9, 0x0445, 0x03f6,
+ 0xfe99, 0xfe96, 0xffb5, 0x0072, 0x0873, 0x0ea1,
+ 0x0f1c, 0x110a, 0x0bdf, 0xfecf, 0xf8fe, 0xfb14,
+ 0xfce2, 0xfd54, 0x00df, 0x06d4, 0x04f7, 0x0001,
+ 0x03d1, 0x056a, 0x02fd, 0x0b15, 0x140e, 0x129c,
+ 0x0e59, 0x087f, 0x02e2, 0x02b6, 0x0371, 0x036a,
+ 0x01f5, 0xfdbe, 0x00e1, 0x0aa8, 0x0b5f, 0x06b3,
+ 0x0898, 0x0924, 0x01cb, 0xfd45, 0xff73, 0x0112,
+ 0x0402, 0x09e3, 0x0b46, 0x0ac5, 0x0c82, 0x09e5,
+ 0x05ed, 0x06bc, 0x0621, 0x0384, 0x041e, 0x0525,
+ 0x0372, 0x02a1, 0x068b, 0x086d, 0x027b, 0xfff7,
+ 0x03a7, 0x0386, 0x04e6, 0x0901, 0x07c1, 0x0928,
+ 0x0add, 0xffcc, 0xf57d, 0xf839, 0xfe03, 0x023c,
+ 0x06b1, 0x0a60, 0x0905, 0x00ed, 0xfd6e, 0xffcf,
+ 0xfc89, 0xfbdc, 0x00ba, 0xfc51, 0xf7e9, 0xfd9b,
+ 0xfe95, 0xfc0d, 0xffb3, 0x0231, 0x043e, 0x092f,
+ 0x080e, 0x03bb, 0x0382, 0x0003, 0xf9a8, 0xf8f4,
+ 0xf8e4, 0xf6bd, 0xfaa9, 0x0278, 0x0513, 0x026e,
+ 0x0050, 0x0196, 0xffe6, 0xf800, 0xf59b, 0xfa7d,
+ 0xfbd9, 0xfe5e, 0x06a0, 0x0d17, 0x12c4, 0x1674,
+ 0x11b5, 0x0bef, 0x089d, 0x01af, 0xfc35, 0xfcf2,
+ 0xff7b, 0x0144, 0x01d8, 0x03d4, 0x0917, 0x0c78,
+ 0x0c06, 0x0ab8, 0x096d, 0x07dc, 0x0452, 0xffdd,
+ 0xfd86, 0xfbba, 0xfd05, 0x059b, 0x0f22, 0x14ac,
+ 0x18c3, 0x1bb7, 0x1b3d, 0x14dd, 0x0bc8, 0x05f0,
+ 0x0202, 0x0179, 0x04de, 0x02dd, 0x00ea, 0x082d,
+ 0x0a34, 0x040c, 0x05bb, 0x0cdd, 0x107d, 0x1174,
+ 0x1093, 0x0f9a, 0x0c1e, 0x0597, 0x0655, 0x0aec,
+ 0x07a1, 0x03ce, 0x057e, 0x0813, 0x0c50, 0x0dec,
+ 0x071f, 0x002c, 0xfe60, 0xfe65, 0x0217, 0x0754,
+ 0x0641, 0x03c7, 0x0658, 0x0591, 0x00e8, 0x02cb,
+ 0x0731, 0x082f, 0x0893, 0x04ab, 0x0010, 0x034a,
+ 0x0466, 0x00b9, 0x03b4, 0x0821, 0x06c2, 0x0330,
+ 0xfeb8, 0xfd87, 0xff38, 0xfd6a, 0xfdea, 0x0319,
+ 0x04a0, 0x027a, 0x0063, 0x006b, 0x00a5, 0xfc95,
+ 0xfd59, 0x040c, 0x0041, 0xfa03, 0xfe65, 0x003a,
+ 0xff54, 0x03be, 0x026a, 0xfbdc, 0xfcad, 0x01c4,
+ 0x02c3, 0x00b2, 0x02f3, 0x089a, 0x0865, 0x04f8,
+ 0x01dc, 0xfbe0, 0xfcc1, 0x0652, 0x089d, 0x053f,
+ 0x0656, 0x07ee, 0x06d9, 0x044e, 0x01ad, 0xffae,
+ 0xfd67, 0xffad, 0x050b, 0x0366, 0x01c5, 0x0767,
+ 0x0a27, 0x0b6c, 0x1094, 0x102d, 0x0989, 0x03e3,
+ 0xffcf, 0x00db, 0x0761, 0x0a62, 0x05cc, 0xfe66,
+ 0xfe95, 0x0a9b, 0x13e3, 0x107e, 0x0bfe, 0x0ba8,
+ 0x09ac, 0x09b5, 0x0af9, 0x04b0, 0xffb2, 0x053a,
+ 0x084e, 0x0399, 0x022e, 0x0687, 0x0c63, 0x0f7b,
+ 0x0d51, 0x0b2e, 0x07a0, 0xfdcd, 0xfa86, 0x0147,
+ 0x0099, 0xfc2a, 0x0427, 0x0f72, 0x11b6, 0x0f6a,
+ 0x0abb, 0x04ac, 0x03b7, 0x04be, 0x02a9, 0x0557,
+ 0x0c82, 0x0f31, 0x13db, 0x19d9, 0x11a6, 0x0461,
+ 0x01b7, 0x00c8, 0xffa6, 0x0445, 0x070d, 0x069a,
+ 0x0681, 0x04f6, 0x0786, 0x0d52, 0x0cc5, 0x09ca,
+ 0x08cb, 0x072e, 0x065e, 0x03fa, 0x00bd, 0x032b,
+ 0x045f, 0xff6d, 0xfe49, 0x01d8, 0x0296, 0x01fc,
+ 0x04e8, 0x07cb, 0x039b, 0xff05, 0x01cf, 0x0158,
+ 0xfc68, 0xfd9b, 0xfdbe, 0xfcc8, 0x0563, 0x08e8,
+ 0xffe1, 0xfcc8, 0x005b, 0x0318, 0x0927, 0x0b35,
+ 0x02ec, 0xfb17, 0xf91f, 0xfbe2, 0x0318, 0x0670,
+ 0x01aa, 0xff61, 0x0247, 0xff13, 0xf83c, 0xfb64,
+ 0x046d, 0x07fa, 0x06fe, 0x03b2, 0x007d, 0x01e8,
+ 0x03b8, 0x0315, 0x0533, 0x0740, 0x0144, 0xf7c3,
+ 0xf8c3, 0x0358, 0x0749, 0x0750, 0x0ca4, 0x095b,
+ 0xff81, 0x012c, 0x00a9, 0xf7a3, 0xfb57, 0x04ca,
+ 0x04f9, 0x06e7, 0x0a70, 0x06ad, 0x02cc, 0x0489,
+ 0x0802, 0x0762, 0x032b, 0x03c6, 0x07a7, 0x0825,
+ 0x0872, 0x065f, 0xfe50, 0xf9be, 0xfd22, 0x0264,
+ 0x060f, 0x081a, 0x0b03, 0x0e23, 0x0c2b, 0x0621,
+ 0xffb4, 0xfac6, 0xfbd3, 0xfe69, 0xfa6b, 0xf9d1,
+ 0x03ae, 0x0a39, 0x0a63, 0x0e0b, 0x0f01, 0x07d2,
+ 0x02a6, 0x0063, 0xfc31, 0xfb44, 0xfdd6, 0xfec5,
+ 0xfd8c, 0xf8ee, 0xf60c, 0xfd2f, 0x06bd, 0x09ca,
+ 0x0acb, 0x0b5f, 0x09d5, 0x0a51, 0x0cdb, 0x0bac,
+ 0x0764, 0x04c5, 0x02d2, 0x018f, 0x067a, 0x0f5c,
+ 0x13e7, 0x12d6, 0x0e70, 0x0908, 0x0475, 0x0015,
+ 0xfe19, 0xfd6b, 0xf9cc, 0xfb85, 0x0628, 0x0cdb,
+ 0x0e05, 0x102e, 0x1190, 0x12ca, 0x1256, 0x0b75,
+ 0x033d, 0xfeaa, 0xfe38, 0x0386, 0x0a77, 0x0d77,
+ 0x0d57, 0x0db2, 0x0e32, 0x0999, 0x0579, 0x0876,
+ 0x04c7, 0xfbfc, 0x018e, 0x0896, 0x0350, 0x0298,
+ 0x0824, 0x09c5, 0x097f, 0x06b7, 0x057b, 0x0853,
+ 0x04af, 0xff75, 0x01df, 0x02d8, 0x026e, 0x0689,
+ 0x0870, 0x0640, 0x0384, 0x00d5, 0xff8f, 0xff8c,
+ 0x014e, 0x01a1, 0xfb47, 0xf799, 0xfbd6, 0xfcc2,
+ 0xfa78, 0xf8ff, 0xf493, 0xf5d0, 0xffad, 0x025b,
+ 0xfc99, 0xf90b, 0xf62b, 0xf1be, 0xf19f, 0xf64b,
+ 0xf61d, 0xf073, 0xf2bd, 0xfa27, 0xf93b, 0xf812,
+ 0xfbbc, 0xf7d2, 0xef22, 0xeb99, 0xebab, 0xf039,
+ 0xf9b2, 0x01c3, 0x013d, 0xf6dc, 0xefba, 0xf19c,
+ 0xf18e, 0xf3d7, 0xfb50, 0xfa16, 0xf79e, 0xfb01,
+ 0xf6b0, 0xf250, 0xf3e3, 0xeee3, 0xef2a, 0xf931,
+ 0xf940, 0xf6f9, 0xfc48, 0xfdd1, 0xfe55, 0xff5e,
+ 0xfa9e, 0xf6ac, 0xf2bd, 0xef0e, 0xf6f4, 0xfe6a,
+ 0xf9c7, 0xf880, 0xf975, 0xefea, 0xe7dd, 0xeb78,
+ 0xf227, 0xf717, 0xfce4, 0x041d, 0x0828, 0x066c,
+ 0x05af, 0x0624, 0xff14, 0xf80f, 0xf919, 0xf54f,
+ 0xef18, 0xf59a, 0xfa85, 0xf4b2, 0xf74d, 0xff81,
+ 0xfee5, 0xffbc, 0x04cc, 0x02ff, 0xfd62, 0xf9f7,
+ 0xf6d6, 0xf376, 0xf3a4, 0xf82e, 0xf857, 0xf503,
+ 0xfb4f, 0x0301, 0xfeaa, 0xfa99, 0xfe0c, 0xff33,
+ 0xfd6e, 0xfda8, 0xfd45, 0xf898, 0xf636, 0xfe09,
+ 0x05f2, 0x059a, 0x067c, 0x088d, 0x06c1, 0x0837,
+ 0x0a7c, 0x050c, 0xfd40, 0xf939, 0xf712, 0xf43e,
+ 0xf422, 0xfb14, 0x0064, 0xfd40, 0xfbd7, 0x0102,
+ 0x0683, 0x091a, 0x07cc, 0x0487, 0x014d, 0xfd82,
+ 0xfc4b, 0xfe46, 0x00e2, 0x04c8, 0x05b4, 0x01b6,
+ 0x0004, 0x0011, 0xfdf4, 0xfdc4, 0xff46, 0xfd0c,
+ 0xf8d9, 0xfa41, 0x0078, 0x0034, 0xf9b2, 0xf8e5,
+ 0xfbb6, 0xf9e6, 0xf801, 0xfb2d, 0xfe17, 0xfb50,
+ 0xf938, 0xfe1d, 0x0093, 0xfb8d, 0xf96d, 0xfc40,
+ 0xfc8f, 0xf8ae, 0xf4c9, 0xf651, 0xfa0e, 0xf8df,
+ 0xf776, 0xf9f3, 0xfafa, 0xf7e1, 0xf2db, 0xf305,
+ 0xfa98, 0xfdff, 0xfbd7, 0xfc5a, 0xf968, 0xf3e8,
+ 0xf7c9, 0xfd4b, 0xfd2b, 0x01f6, 0x0923, 0x07fd,
+ 0x02ac, 0xfe67, 0xfc70, 0xfe82, 0x0079, 0x00d1,
+ 0x0025, 0xfb20, 0xfa25, 0x0063, 0xfc50, 0xf313,
+ 0xf767, 0xfce2, 0xfcab, 0x023b, 0x0635, 0x05d6,
+ 0x0acc, 0x0c69, 0x0411, 0xfbea, 0xf965, 0xf833,
+ 0xf4fe, 0xf958, 0x05f9, 0x0624, 0xff8b, 0x04e1,
+ 0x054f, 0xfb22, 0xf873, 0xf9ce, 0xfb8b, 0x0063,
+ 0x0209, 0x06bf, 0x0cfc, 0x0592, 0xfe43, 0x0512,
+ 0x0982, 0x0464, 0x0045, 0x0103, 0x01da, 0xffc9,
+ 0xfe39, 0xfe8c, 0x00dd, 0x0673, 0x0942, 0x08e0,
+ 0x0b18, 0x0ad7, 0x0878, 0x088a, 0x0477, 0xff5a,
+ 0xfef4, 0xfbeb, 0xf90d, 0xfda9, 0x0490, 0x0899,
+ 0x0968, 0x0955, 0x068c, 0xfdc1, 0xf95d, 0xfb68,
+ 0xf843, 0xf785, 0xffb7, 0x043c, 0x026d, 0x0013,
+ 0x0035, 0x01c7, 0xff20, 0xfeff, 0x0207, 0xf873,
+ 0xeff2, 0xf8f9, 0xfd5e, 0xf9c1, 0xfffa, 0x0520,
+ 0x02c9, 0x0616, 0x0914, 0x0215, 0xfd59, 0x00eb,
+ 0xfe6e, 0xf420, 0xf18d, 0xf59c, 0xf64d, 0xf68a,
+ 0xf83f, 0xfa72, 0xfb90, 0xf79e, 0xf853, 0x0145,
+ 0x00ff, 0xfba1, 0xffad, 0x004d, 0xf925, 0xf71a,
+ 0xf836, 0xfa3f, 0xff71, 0x0040, 0xfdaf, 0xfee7,
+ 0xfe6e, 0xfc5a, 0xfff9, 0x01c0, 0xfd3c, 0xfc88,
+ 0xfd41, 0xf907, 0xf886, 0xfca2, 0xff10, 0x0273,
+ 0x04c1, 0x04d4, 0x06ef, 0x0520, 0x0181, 0x04b9,
+ 0x03a5, 0xfcbb, 0xfd7e, 0xfc6b, 0xf371, 0xf3ca,
+ 0xfb48, 0xf971, 0xf47b, 0xf74f, 0xfb6b, 0xfcd9,
+ 0x004f, 0x0029, 0xf8f9, 0xf72f, 0xf98a, 0xf234,
+ 0xe9b0, 0xed8f, 0xf5fc, 0xf97c, 0xf96b, 0xf76b,
+ 0xf45a, 0xf493, 0xf839, 0xf82f, 0xf57b, 0xf713,
+ 0xf8f4, 0xf75c, 0xf73f, 0xfa0d, 0xfd40, 0xfd46,
+ 0xf9a5, 0xf659, 0xf18f, 0xee3a, 0xf5b5, 0xffe2,
+ 0x02c1, 0x0237, 0xfe3e, 0xf874, 0xf4ef, 0xf226,
+ 0xf306, 0xf331, 0xef13, 0xf519, 0xfd92, 0xf7d9,
+ 0xf711, 0xff33, 0xfc0e, 0xf7e9, 0xfc54, 0xfb6b,
+ 0xf6fe, 0xf854, 0xfa80, 0xf8c3, 0xf7c6, 0xfc46,
+ 0x0100, 0x0183, 0x00c6, 0xff1e, 0x008f, 0x05fc,
+ 0x0467, 0x009b, 0x03b2, 0x012d, 0xf835, 0xf6c7,
+ 0xfd00, 0x05ff, 0x0a60, 0x063e, 0x048d, 0x04d3,
+ 0xffd4, 0xff0c, 0x00d0, 0xfb13, 0xf855, 0xfcb7,
+ 0xfe37, 0x0126, 0x084c, 0x0964, 0x0882, 0x0e10,
+ 0x0ddf, 0x0416, 0x0132, 0x02b8, 0xfc0d, 0xf8a0,
+ 0xffc7, 0x04af, 0x0523, 0x06f3, 0x07d2, 0x0606,
+ 0x0219, 0xfdd2, 0xfcac, 0xfba8, 0xf800, 0xf8cb,
+ 0xffa6, 0x033f, 0x0341, 0x05ab, 0x05f4, 0x04a4,
+ 0x0a58, 0x0e64, 0x0a20, 0x0ac1, 0x0e28, 0x09bb,
+ 0x0772, 0x0ae0, 0x0ae7, 0x08fd, 0x083c, 0x07e0,
+ 0x0640, 0x00e9, 0xfe9a, 0x0197, 0x0128, 0x0124,
+ 0x0466, 0x012b, 0xfbc0, 0xfb9b, 0xfb00, 0xfbca,
+ 0x0221, 0x0579, 0x00ff, 0xfd28, 0x0087, 0x0371,
+ 0x005e, 0x0055, 0x02de, 0xfea4, 0xfa28, 0xf9f7,
+ 0xf769, 0xf74c, 0xfe85, 0x02f3, 0xff8c, 0xfc62,
+ 0xfdb6, 0xfe7e, 0xff0b, 0x0298, 0x0003, 0xf702,
+ 0xf83f, 0x004b, 0x009a, 0xfecf, 0xff6e, 0xfe15,
+ 0xfd9e, 0xfe60, 0xfd65, 0xfc33, 0xfb62, 0xfb8a,
+ 0xfa4a, 0xf4e0, 0xf459, 0xfb4a, 0xfd0e, 0xfaed,
+ 0xfeb9, 0x016b, 0xfe4b, 0xfe03, 0xfda4, 0xf65d,
+ 0xf42f, 0xfb69, 0xff11, 0x0274, 0x09ec, 0x08cd,
+ 0x0505, 0x09cc, 0x0ae8, 0x0773, 0x0959, 0x0b68,
+ 0x0b12, 0x084f, 0x0407, 0x087f, 0x0f74, 0x0e27,
+ 0x0f19, 0x1108, 0x0c1c, 0x0a27, 0x0a55, 0x0663,
+ 0x056d, 0x082b, 0x0ad1, 0x0b83, 0x0881, 0x07bd,
+ 0x08d2, 0x06be, 0x071c, 0x07e4, 0x0499, 0x02ea,
+ 0x0170, 0x01f8, 0x08e3, 0x0ba3, 0x0a93, 0x0d22,
+ 0x0b37, 0x0760, 0x0953, 0x098e, 0x07db, 0x0854,
+ 0x0720, 0x0429, 0x004a, 0xfdd3, 0x003c, 0x037f,
+ 0x0833, 0x106b, 0x1351, 0x0e19, 0x0741, 0x03fb,
+ 0x067f, 0x0824, 0x0470, 0x02e6, 0x06c2, 0x0d00,
+ 0x1358, 0x1733, 0x19c9, 0x1c5e, 0x1c70, 0x1791,
+ 0x0d08, 0x040d, 0x0368, 0x064b, 0x0975, 0x0aab,
+ 0x0600, 0x0236, 0x0375, 0x04cf, 0x03ba, 0xfdfa,
+ 0xfc55, 0x06ab, 0x0ab6, 0x029f, 0xff41, 0xfff0,
+ 0x02a1, 0x09f8, 0x0bb3, 0x0a9d, 0x0d6a, 0x0b57,
+ 0x08ea, 0x0c98, 0x0e1d, 0x0dc7, 0x0d14, 0x0a48,
+ 0x0ad8, 0x0cb6, 0x0c2d, 0x0b0d, 0x0580, 0xffa5,
+ 0xffb3, 0xfe36, 0xfcf7, 0x025b, 0x065c, 0x0723,
+ 0x092b, 0x0856, 0x0441, 0x01ca, 0x02f4, 0x07f2,
+ 0x0c0a, 0x0b3f, 0x0a08, 0x0980, 0x04bb, 0x0028,
+ 0x02dd, 0x05e0, 0x04a5, 0x06f8, 0x09a2, 0x0542,
+ 0x0281, 0x059e, 0x08d5, 0x0bb6, 0x0a90, 0x0326,
+ 0xfeac, 0x0009, 0x02a5, 0x054b, 0x06a8, 0x06c5,
+ 0x04a6, 0xff58, 0xffbd, 0x079b, 0x0b1c, 0x0a41,
+ 0x0b50, 0x0b3a, 0x0a7f, 0x0b33, 0x091b, 0x0551,
+ 0x04a3, 0x05f2, 0x074d, 0x0969, 0x0c57, 0x0d71,
+ 0x09e0, 0x04b0, 0x0227, 0xff88, 0xfc52, 0xfe0d,
+ 0x01fe, 0x032c, 0x075a, 0x0d7c, 0x0bdd, 0x07b0,
+ 0x0746, 0x03aa, 0x0092, 0x0674, 0x0ce9, 0x0c57,
+ 0x06ec, 0x010f, 0x0211, 0x0760, 0x083b, 0x089f,
+ 0x0857, 0x01ad, 0xfe7a, 0x01fb, 0x0254, 0x0307,
+ 0x05f0, 0x037e, 0x016d, 0x0450, 0x0392, 0xfec4,
+ 0xfcaf, 0xfe70, 0x0168, 0x02d3, 0x02cf, 0x0168,
+ 0xfde1, 0xfc6b, 0xfec8, 0x027e, 0x083b, 0x0c39,
+ 0x09e6, 0x04eb, 0xfe2b, 0xf7f3, 0xf9ae, 0xfd27,
+ 0xf9e9, 0xf724, 0xf8ea, 0xfbdf, 0x01ea, 0x0b31,
+ 0x1174, 0x1034, 0x0a41, 0x053c, 0x0083, 0xfb7c,
+ 0xfabe, 0xfd1c, 0xfede, 0x00e3, 0x0260, 0x049a,
+ 0x0983, 0x0ad3, 0x0785, 0x069d, 0x0685, 0x0494,
+ 0x043c, 0x0434, 0x0426, 0x0805, 0x0c59, 0x0cf3,
+ 0x0c48, 0x0969, 0x0338, 0xfedb, 0xfef2, 0x0178,
+ 0x0343, 0x0221, 0x0101, 0x005f, 0xfd4b, 0xfdbd,
+ 0x0366, 0x0581, 0x074e, 0x0c74, 0x0b1e, 0x0674,
+ 0x0871, 0x0b74, 0x0c6d, 0x0eb3, 0x0f66, 0x0d89,
+ 0x0a18, 0x0653, 0x069d, 0x07cd, 0x04cb, 0x01c7,
+ 0xff93, 0xfc40, 0xfb58, 0xfc63, 0xfda1, 0x00ea,
+ 0x0295, 0x005f, 0xffa7, 0x0127, 0x035e, 0x0895,
+ 0x0c0e, 0x07a2, 0x0198, 0x0042, 0x0218, 0x05a8,
+ 0x06cf, 0x03d0, 0x039c, 0x04e3, 0x010a, 0xfd9e,
+ 0xff83, 0x047d, 0x09bd, 0x0888, 0x02ce, 0x02df,
+ 0x044f, 0x01af, 0x020c, 0x0476, 0x0382, 0x0278,
+ 0x043a, 0x07f1, 0x0b53, 0x0d35, 0x0f50, 0x0f9b,
+ 0x0bf6, 0x073e, 0x0302, 0x0173, 0x02e8, 0x033c,
+ 0x0537, 0x0a9b, 0x0c49, 0x09ea, 0x05e1, 0xffd7,
+ 0xff63, 0x04bf, 0x03e1, 0x008c, 0x072a, 0x112e,
+ 0x133b, 0x1089, 0x0ded, 0x0b31, 0x0ad5, 0x0b34,
+ 0x07e4, 0x0607, 0x07bd, 0x085f, 0x0a3d, 0x0b47,
+ 0x0724, 0x0513, 0x04cf, 0x02db, 0x0787, 0x0da1,
+ 0x0b86, 0x0ac3, 0x0c83, 0x08e2, 0x058f, 0x05f0,
+ 0x0632, 0x05e5, 0x044b, 0x018b, 0xff8d, 0x0104,
+ 0x058d, 0x03a4, 0xfbba, 0xf9e9, 0xfaf4, 0xfa2f,
+ 0xfde9, 0x0377, 0x07b3, 0x0a4a, 0x0584, 0x00b3,
+ 0x032d, 0x01c3, 0xfa90, 0xf50a, 0xf2a6, 0xf69a,
+ 0xfb7e, 0xfafa, 0xfe2d, 0x0310, 0x021b, 0x03ea,
+ 0x04a1, 0xfba2, 0xf62d, 0xf82f, 0xf837, 0xf8b9,
+ 0xfad5, 0xfc26, 0xff06, 0x00ce, 0x00df, 0x019e,
+ 0xff72, 0xfccb, 0xfd5a, 0xfbe7, 0xf988, 0xf929,
+ 0xf823, 0xfa78, 0x001b, 0x00b6, 0xfeee, 0xffa2,
+ 0xfe24, 0xf9fd, 0xf86d, 0xf921, 0xf786, 0xf555,
+ 0xf784, 0xf9af, 0xf805, 0xf726, 0xf676, 0xf65b,
+ 0xfbfe, 0x00a6, 0xfe01, 0xfa5b, 0xf985, 0xfa9a,
+ 0xfa98, 0xf8e5, 0xfc9e, 0x01c3, 0xfe79, 0xfb0c,
+ 0xfd49, 0xfdf2, 0xfbff, 0xf869, 0xf394, 0xf058,
+ 0xee25, 0xee40, 0xefb9, 0xee05, 0xee45, 0xf21a,
+ 0xf2b7, 0xf254, 0xf3b4, 0xf55d, 0xf75a, 0xf6af,
+ 0xf634, 0xfa12, 0xfb9d, 0xfa34, 0xfa02, 0xf86b,
+ 0xf684, 0xf643, 0xf6bc, 0xf65c, 0xf289, 0xf3c0,
+ 0xfd08, 0xff44, 0xfd80, 0x01f0, 0x0146, 0xfa15,
+ 0xf652, 0xf73e, 0xfcfe, 0x0062, 0xff22, 0x02fd,
+ 0x0546, 0x0155, 0x007c, 0xfcc8, 0xf536, 0xf538,
+ 0xf99e, 0xfddb, 0xff57, 0xfbba, 0xfd0c, 0x021a,
+ 0x0207, 0x0339, 0x0313, 0xfa76, 0xf213, 0xf01d,
+ 0xf532, 0xfd0e, 0x0074, 0x0318, 0x0311, 0xfd04,
+ 0xfcd3, 0xff5b, 0xfa98, 0xf768, 0xf796, 0xf83a,
+ 0xfb21, 0xfa67, 0xfa09, 0xfe1e, 0xfc4c, 0xf96e,
+ 0xfb2a, 0xf885, 0xf79d, 0xfeaa, 0x0313, 0x004d,
+ 0xfb63, 0xfb39, 0xfca5, 0xf760, 0xf5ef, 0xfc3c,
+ 0xfbe2, 0xf943, 0xfb2b, 0xf96f, 0xf5ce, 0xf24b,
+ 0xee23, 0xefb3, 0xf265, 0xf156, 0xf1c4, 0xf291,
+ 0xf649, 0xfddc, 0xfe0b, 0xfaa0, 0xfb2e, 0xf63e,
+ 0xeec4, 0xefa5, 0xf28b, 0xf3ee, 0xf926, 0xfdbf,
+ 0xfcc8, 0xfc16, 0xfcbd, 0xf986, 0xf8a1, 0xfdec,
+ 0xfc95, 0xf3d1, 0xf139, 0xf3ed, 0xf67c, 0xf9b0,
+ 0xfa0f, 0xf84a, 0xfab4, 0xffb6, 0x0091, 0xfb58,
+ 0xf754, 0xfaac, 0xfe35, 0xfbb1, 0xf865, 0xf903,
+ 0xfbbe, 0xfdab, 0x011c, 0x06d7, 0x06af, 0x0154,
+ 0x0004, 0x0028, 0xffd3, 0x020b, 0x010a, 0xfc7d,
+ 0xfa07, 0xf890, 0xf96b, 0xfb15, 0xf9bd, 0xfbc7,
+ 0xfe7f, 0xfb1b, 0xfc47, 0x0125, 0xfceb, 0xf7d1,
+ 0xfa75, 0xffda, 0x0732, 0x0d07, 0x0d91, 0x0e28,
+ 0x0e9b, 0x0cbb, 0x0c71, 0x0b3d, 0x075a, 0x0693,
+ 0x06e9, 0x0328, 0xff7f, 0x000f, 0x02a0, 0x04e7,
+ 0x076d, 0x09d5, 0x09e4, 0x0a36, 0x0f0d, 0x137c,
+ 0x1307, 0x125b, 0x1229, 0x0f1f, 0x0c9e, 0x0d10,
+ 0x0d6a, 0x0cf9, 0x0cdb, 0x0c66, 0x0a63, 0x0796,
+ 0x06e3, 0x06f4, 0x034e, 0xfe79, 0xfe1b, 0x0189,
+ 0x047f, 0x0495, 0x04f3, 0x093f, 0x0b07, 0x0559,
+ 0x0198, 0x043f, 0x04f9, 0x0305, 0x0308, 0x01ac,
+ 0xff48, 0x0131, 0x030a, 0x00c9, 0xff86, 0xff43,
+ 0xfd74, 0xfc28, 0xf7f1, 0xf015, 0xef3a, 0xf6c2,
+ 0xfc07, 0xfc0f, 0xfb59, 0xfd20, 0xffb6, 0xfce9,
+ 0xf569, 0xf2cd, 0xf7cd, 0xfbc0, 0xf861, 0xf2c2,
+ 0xf142, 0xf255, 0xf4d4, 0xf949, 0xfbd9, 0xfbc5,
+ 0xfbc4, 0xfae7, 0xfa19, 0xfa90, 0xf868, 0xf2c4,
+ 0xedc7, 0xeccf, 0xf022, 0xf49a, 0xf8d0, 0xfc6f,
+ 0xfcb3, 0xfb6f, 0xf9f2, 0xf3f8, 0xee6f, 0xef4e,
+ 0xeec5, 0xebbe, 0xeeb1, 0xf48c, 0xf811, 0xfbeb,
+ 0xfe78, 0xfc9c, 0xfa73, 0xfa05, 0xf799, 0xf54c,
+ 0xf905, 0xfdfb, 0xfd1e, 0xfae3, 0xfaaa, 0xfae2,
+ 0xfe35, 0x0129, 0xfcd3, 0xf807, 0xf92b, 0xfa92,
+ 0xf949, 0xf66a, 0xf277, 0xf0a7, 0xf24c, 0xf63c,
+ 0xfb47, 0xfd73, 0xfce9, 0xfe57, 0xff3b, 0xfca2,
+ 0xfb55, 0xfce2, 0xfd9c, 0xfd49, 0xfdd5, 0xff08,
+ 0x0018, 0x00b3, 0xfe56, 0xf831, 0xf4c5, 0xf74b,
+ 0xf8c2, 0xf4dd, 0xeeb2, 0xebbe, 0xf102, 0xf9f0,
+ 0xfd81, 0xfd6b, 0xfca8, 0xf8e8, 0xf5a4, 0xf6dc,
+ 0xfaef, 0xff6d, 0xff9b, 0xfb89, 0xfbc8, 0x002b,
+ 0x0122, 0x0067, 0x0240, 0x0417, 0x03aa, 0x02e0,
+ 0x0369, 0x04c8, 0x0646, 0x0669, 0x03ba, 0x0151,
+ 0x0028, 0xfabe, 0xf426, 0xf5f1, 0xfcc6, 0x018f,
+ 0x067f, 0x0ae3, 0x0a39, 0x07b9, 0x0854, 0x096f,
+ 0x0672, 0x0141, 0xff2e, 0x0014, 0x00df, 0x0277,
+ 0x05f3, 0x09e7, 0x0c47, 0x08fa, 0x0162, 0xfff4,
+ 0x0495, 0x0347, 0xfdea, 0xfe69, 0x010e, 0x00e5,
+ 0x019d, 0x03da, 0x0675, 0x095b, 0x08a4, 0x044a,
+ 0x0221, 0x0298, 0x0354, 0x0502, 0x05c7, 0x033f,
+ 0x00db, 0x013d, 0x00d2, 0xfe42, 0xfd54, 0xfe75,
+ 0xffb4, 0x00c1, 0xfd53, 0xf42f, 0xf140, 0xfa9a,
+ 0x031b, 0x0124, 0xfc76, 0xfbfc, 0xfb20, 0xf7fb,
+ 0xf840, 0xfb3f, 0xfcad, 0xff1c, 0x0074, 0xfb24,
+ 0xf6ea, 0xfb59, 0x02bf, 0x07d8, 0x080d, 0x02e0,
+ 0xff1a, 0xfee7, 0xff31, 0x0158, 0x01f2, 0xfe1f,
+ 0xfd70, 0xff48, 0xfd02, 0xfbcb, 0xff84, 0x0425,
+ 0x06fa, 0x05a0, 0x0182, 0xfd7e, 0xf801, 0xf543,
+ 0xf8e2, 0xfcca, 0x00c4, 0x0691, 0x095a, 0x0a9d,
+ 0x0c14, 0x0aaf, 0x07b1, 0x0130, 0xf85f, 0xf655,
+ 0xf68e, 0xf458, 0xf958, 0x0182, 0x02a8, 0x023f,
+ 0x0374, 0x04dc, 0x06c9, 0x055a, 0x02c3, 0x02bc,
+ 0xff98, 0xfacb, 0xfa77, 0xfc5e, 0xff26, 0x0147,
+ 0x0097, 0x014e, 0x026d, 0xffe7, 0x003c, 0x0639,
+ 0x09b9, 0x08c5, 0x084a, 0x06eb, 0x0296, 0x02d6,
+ 0x0955, 0x0b39, 0x0869, 0x06bb, 0x014b, 0xfcd7,
+ 0x035c, 0x0a62, 0x096a, 0x0861, 0x0825, 0x049d,
+ 0x0144, 0x012f, 0x0336, 0x05c8, 0x0841, 0x087d,
+ 0x0420, 0x0063, 0x024b, 0x03be, 0x0210, 0x0465,
+ 0x0bc9, 0x1115, 0x0f94, 0x091e, 0x04b1, 0x06b6,
+ 0x09f9, 0x08a5, 0x082a, 0x0d60, 0x108b, 0x0e20,
+ 0x0be2, 0x0948, 0x060f, 0x0625, 0x0599, 0x0335,
+ 0x0573, 0x0ab5, 0x0f05, 0x13ce, 0x166d, 0x12a5,
+ 0x0a95, 0x050d, 0x05be, 0x0750, 0x0607, 0x06d7,
+ 0x0b6f, 0x0ff2, 0x110b, 0x0ca0, 0x054d, 0xfe9c,
+ 0xf83e, 0xf52c, 0xf79d, 0xfa54, 0xfbb2, 0xfee2,
+ 0x017f, 0x00fd, 0x001a, 0xff9a, 0xfee5, 0xff63,
+ 0xfeb2, 0xfbcc, 0xfd5b, 0x0253, 0x01e6, 0xff95,
+ 0x0187, 0x0354, 0x03e7, 0x0498, 0x0164, 0xfd12,
+ 0xfe2c, 0x001b, 0xfd35, 0xfb66, 0xff7e, 0x035e,
+ 0x0407, 0x054f, 0x0480, 0x0023, 0xfff3, 0x04ec,
+ 0x095e, 0x0b9b, 0x0b45, 0x0b85, 0x0e3c, 0x0d03,
+ 0x098b, 0x0c79, 0x10af, 0x0ed3, 0x0c6f, 0x0d43,
+ 0x0cb1, 0x0aba, 0x0ba5, 0x0ba1, 0x0740, 0x0623,
+ 0x0951, 0x084d, 0x051a, 0x068c, 0x0bc3, 0x1010,
+ 0x0ece, 0x0a17, 0x0718, 0x043a, 0x02f1, 0x0656,
+ 0x092a, 0x09f8, 0x0b27, 0x0a97, 0x09f5, 0x0b85,
+ 0x0b81, 0x0681, 0xfead, 0xfc94, 0x00db, 0x01a2,
+ 0x01e2, 0x0687, 0x077d, 0x07df, 0x0db9, 0x101f,
+ 0x0d4e, 0x098d, 0x04ef, 0x0534, 0x092f, 0x0808,
+ 0x0485, 0x0328, 0x03ea, 0x0767, 0x0920, 0x0773,
+ 0x0652, 0x0436, 0x0177, 0x01f3, 0x0492, 0x0907,
+ 0x0e7d, 0x0fb7, 0x0cf9, 0x0b4b, 0x0ac7, 0x08b2,
+ 0x0653, 0x068f, 0x0740, 0x05c2, 0x0542, 0x073f,
+ 0x0700, 0x0282, 0x0034, 0x02df, 0x019f, 0xfc6c,
+ 0xfdc4, 0xffcd, 0xfb84, 0xfb4a, 0xff18, 0xfec2,
+ 0xfe6a, 0xfee8, 0xfe80, 0x0059, 0x0181, 0x0268,
+ 0x05ea, 0x055b, 0x02ab, 0x03fc, 0x03c1, 0x040f,
+ 0x09c6, 0x0d33, 0x0ced, 0x0c93, 0x0b4f, 0x0d21,
+ 0x0f70, 0x0a0a, 0x04f6, 0x0689, 0x058c, 0x01bc,
+ 0x0294, 0x05eb, 0x087b, 0x0a79, 0x09e8, 0x069c,
+ 0x0255, 0xfde7, 0xfc8c, 0xff5e, 0x0271, 0x05ce,
+ 0x0a70, 0x0bb6, 0x0997, 0x0977, 0x0aa3, 0x096d,
+ 0x071f, 0x070a, 0x07a5, 0x051a, 0x035f, 0x05e0,
+ 0x0591, 0x01d6, 0xfff8, 0xfbe8, 0xf85f, 0xfc76,
+ 0xff1e, 0xfce9, 0xfd9a, 0xfd43, 0xfcac, 0x02d2,
+ 0x0595, 0x0204, 0x0506, 0x0aa8, 0x0a6c, 0x0a61,
+ 0x0a58, 0x0589, 0x01a4, 0x02e6, 0x0596, 0x0631,
+ 0x041e, 0x013d, 0x00cf, 0x043d, 0x071e, 0x037b,
+ 0xfc98, 0xf8db, 0xf6fd, 0xf617, 0xf7b5, 0xfa92,
+ 0x0009, 0x0664, 0x0586, 0x00d7, 0x0102, 0x0189,
+ 0xffe7, 0x0106, 0x00bf, 0xfb6b, 0xf83b, 0xf961,
+ 0xfa87, 0xfd21, 0x025c, 0x0462, 0x011a, 0xfe01,
+ 0xfc5f, 0xf8b2, 0xf45e, 0xf21c, 0xf17f, 0xf47e,
+ 0xfc04, 0x033e, 0x06a9, 0x063a, 0x0277, 0xfdba,
+ 0xfa08, 0xf724, 0xf534, 0xf41b, 0xf312, 0xf387,
+ 0xf76e, 0xfc63, 0xfda6, 0xfc5f, 0xfe26, 0x0277,
+ 0x0512, 0x0672, 0x07c9, 0x088d, 0x0964, 0x09a8,
+ 0x0951, 0x0a17, 0x0943, 0x05d8, 0x04cd, 0x04e1,
+ 0x0393, 0x06d6, 0x0c37, 0x0961, 0x03bd, 0x0606,
+ 0x0b8c, 0x0d7d, 0x0d9f, 0x0d8f, 0x0e21, 0x10bf,
+ 0x12de, 0x121b, 0x1050, 0x0eb0, 0x0d9a, 0x0dad,
+ 0x0e30, 0x113e, 0x16ad, 0x15aa, 0x0f46, 0x0fa9,
+ 0x1431, 0x1539, 0x1543, 0x117e, 0x0a49, 0x0924,
+ 0x09b9, 0x06e5, 0x0766, 0x07db, 0x0593, 0x07bb,
+ 0x0a14, 0x087e, 0x0765, 0x04b1, 0x02c7, 0x06d9,
+ 0x0a7b, 0x0ade, 0x0a64, 0x08a8, 0x09a8, 0x0c88,
+ 0x0a48, 0x0472, 0x003c, 0x00c4, 0x03d6, 0x02e3,
+ 0x0244, 0x0591, 0x04b4, 0x019b, 0x0009, 0xfb59,
+ 0xfa0e, 0xffa3, 0x0352, 0x0560, 0x0542, 0xfef9,
+ 0xf98f, 0xf7bf, 0xf784, 0xfbd7, 0xffc6, 0xfecc,
+ 0xfdbd, 0xfd61, 0xfd18, 0xfcce, 0xfb65, 0xfd21,
+ 0xff72, 0xfac4, 0xf6ca, 0xfad5, 0x0009, 0x0171,
+ 0xff66, 0xfb62, 0xf6f0, 0xf391, 0xf641, 0xfbf3,
+ 0xfad0, 0xf925, 0xfe18, 0x017f, 0x0356, 0x064c,
+ 0x0368, 0xffd4, 0x028c, 0x02b8, 0xfef5, 0xfcad,
+ 0xf94b, 0xf88b, 0xff41, 0x059c, 0x053f, 0xfe9c,
+ 0xf64a, 0xf35a, 0xf317, 0xf128, 0xf1cf, 0xf318,
+ 0xf375, 0xf8f9, 0xfead, 0xfed9, 0xfe73, 0xfce0,
+ 0xfa40, 0xf92e, 0xf471, 0xf100, 0xf63d, 0xf87b,
+ 0xf467, 0xf5aa, 0xfb20, 0xfd35, 0xfb1c, 0xf7e7,
+ 0xf6cc, 0xf503, 0xf1e7, 0xf2c7, 0xf52a, 0xf5d1,
+ 0xf815, 0xfb1e, 0xfccb, 0xfd30, 0xfc0c, 0xfac8,
+ 0xf8c0, 0xf7a9, 0xfac9, 0xfa46, 0xf4e7, 0xf679,
+ 0xfa7b, 0xf867, 0xf906, 0xfd74, 0xfc49, 0xf7cb,
+ 0xf6b3, 0xf70e, 0xf3fe, 0xf032, 0xf16a, 0xf37b,
+ 0xf13e, 0xefea, 0xf1b4, 0xf1bc, 0xf137, 0xf457,
+ 0xf66a, 0xf360, 0xf432, 0xfc91, 0x0124, 0x0013,
+ 0x0071, 0xffba, 0xfc8a, 0xfa8a, 0xfa56, 0xfcab,
+ 0xfdf3, 0xfab6, 0xf862, 0xf67e, 0xf11b, 0xef16,
+ 0xf456, 0xfaa3, 0xfb33, 0xf683, 0xf604, 0xfa56,
+ 0xfa47, 0xf873, 0xf82e, 0xf58f, 0xf5da, 0xfad4,
+ 0xfa3a, 0xf386, 0xf09b, 0xf458, 0xf814, 0xf871,
+ 0xf970, 0xf99f, 0xf8c4, 0xfe5e, 0x0397, 0xff0e,
+ 0xfc0a, 0xff3e, 0xff82, 0xfd94, 0xfc93, 0xfbb9,
+ 0xfd15, 0xff45, 0xff28, 0xfd2d, 0xfabf, 0xfa5c,
+ 0xfcae, 0xffce, 0x0277, 0x0232, 0xfd9c, 0xf745,
+ 0xf2b9, 0xf201, 0xf3b8, 0xf76f, 0xfd63, 0x0049,
+ 0x0057, 0x0291, 0x01a6, 0xfdc4, 0xffd3, 0x00f7,
+ 0xfa1a, 0xf603, 0xf93b, 0xfbb4, 0xfb3e, 0xfca5,
+ 0x012d, 0x046b, 0x03f5, 0x0067, 0xfa97, 0xf857,
+ 0xfb75, 0xfa32, 0xf29a, 0xee7c, 0xf166, 0xf60c,
+ 0xf66a, 0xf483, 0xf6c9, 0xf94a, 0xf7a3, 0xf814,
+ 0xfb3b, 0xfc36, 0xfbac, 0xf998, 0xf79e, 0xfa3e,
+ 0xfd8c, 0xfb4c, 0xf5d3, 0xf3c2, 0xf7a7, 0xfa06,
+ 0xf4d9, 0xf09f, 0xf295, 0xf3eb, 0xf3e8, 0xf5b6,
+ 0xf60c, 0xf38b, 0xf14b, 0xf2fb, 0xf9a1, 0xfef8,
+ 0xffa9, 0x0117, 0x039f, 0x03ad, 0x01c9, 0xfdf0,
+ 0xfb3a, 0xfe2b, 0x019e, 0xffd6, 0xfa8f, 0xf4f4,
+ 0xf2f3, 0xf503, 0xf6b5, 0xf798, 0xf9bb, 0xfe5e,
+ 0x0551, 0x08fe, 0x07a4, 0x06fb, 0x077b, 0x06bf,
+ 0x0426, 0xfe37, 0xf9b4, 0xfca3, 0x02ca, 0x0660,
+ 0x0721, 0x0714, 0x08cc, 0x0dce, 0x1557, 0x1975,
+ 0x15af, 0x11d4, 0x13d2, 0x1671, 0x1814, 0x19ec,
+ 0x19ef, 0x1804, 0x1570, 0x1495, 0x1497, 0x10c1,
+ 0x0da7, 0x0eb8, 0x0c88, 0x08b6, 0x08d5, 0x09c2,
+ 0x0b4a, 0x0c85, 0x0bf5, 0x0df6, 0x0e8c, 0x0a92,
+ 0x0ace, 0x0e4a, 0x0ecc, 0x0e18, 0x0afc, 0x06db,
+ 0x0736, 0x0988, 0x0a17, 0x06f2, 0x0090, 0x000b,
+ 0x0707, 0x095b, 0x02ed, 0xfc87, 0xfcad, 0xffdb,
+ 0x00df, 0x0175, 0x023b, 0x01b0, 0x02ef, 0x04f2,
+ 0x032f, 0xffbe, 0xfccb, 0xf9d2, 0xf8d4, 0xfa6d,
+ 0xfbc4, 0xfb48, 0xfac4, 0xfa63, 0xf78c, 0xf51c,
+ 0xf6ed, 0xf96c, 0xf9ce, 0xf7a3, 0xf2f0, 0xf178,
+ 0xf4c1, 0xf5e6, 0xf3f7, 0xf2d6, 0xf36d, 0xf640,
+ 0xfaa6, 0xfc42, 0xf864, 0xf5de, 0xf930, 0xf831,
+ 0xf237, 0xf34d, 0xf605, 0xf3e5, 0xf479, 0xf456,
+ 0xf11b, 0xf2c8, 0xf447, 0xf25c, 0xf3b5, 0xf397,
+ 0xf0b0, 0xf298, 0xf4f8, 0xf209, 0xedc5, 0xec9b,
+ 0xeeb6, 0xeead, 0xeb1d, 0xea93, 0xebb7, 0xe942,
+ 0xe867, 0xed93, 0xf246, 0xf0d1, 0xedae, 0xed7d,
+ 0xed4b, 0xecf7, 0xef6d, 0xf106, 0xefe5, 0xf1fd,
+ 0xfb30, 0x06d2, 0x0c5a, 0x0bc3, 0x0add, 0x0745,
+ 0xffd9, 0xf987, 0xf284, 0xed0b, 0xf1dd, 0xfa28,
+ 0xfbc4, 0xfde1, 0x062d, 0x0d0a, 0x0c02, 0x03da,
+ 0xf9f4, 0xf52c, 0xf53a, 0xf4aa, 0xf622, 0xfc87,
+ 0xffa4, 0xfea6, 0x01fb, 0x04da, 0x0133, 0xfd2c,
+ 0xf9d0, 0xf6d8, 0xf9a0, 0xfd7a, 0xfcda, 0xfe49,
+ 0x0413, 0x099e, 0x0c90, 0x0af8, 0x07a0, 0x0789,
+ 0x073f, 0x046e, 0x038d, 0x03b5, 0x02b9, 0x04ab,
+ 0x08bb, 0x0994, 0x0911, 0x0a11, 0x0954, 0x0615,
+ 0x04ff, 0x0783, 0x08eb, 0x0657, 0x035b, 0x0205,
+ 0xff81, 0xfbe8, 0xfa29, 0xfb39, 0xff5e, 0x0333,
+ 0x01bf, 0xffc6, 0x0373, 0x060c, 0x029f, 0x0097,
+ 0x0254, 0x0215, 0x0112, 0x042e, 0x08d5, 0x0899,
+ 0x029a, 0xfd7c, 0xfe6d, 0x0225, 0x01dd, 0xfc40,
+ 0xf96b, 0xfd26, 0xfd65, 0xfb3c, 0x020c, 0x0788,
+ 0x02f5, 0x00d6, 0x004d, 0xfc20, 0xfcb1, 0xfe22,
+ 0xfcbc, 0x000c, 0x01df, 0xfe06, 0xfb1f, 0xf8b5,
+ 0xf984, 0xfc59, 0xf9d7, 0xfa4a, 0xfd4b, 0xf97e,
+ 0xfb92, 0x0441, 0x04bd, 0x0459, 0x0682, 0x04ef,
+ 0x06d3, 0x0993, 0x054f, 0x0250, 0x042d, 0x051b,
+ 0x0323, 0x01f3, 0x0555, 0x0527, 0xfe73, 0xfeef,
+ 0x045f, 0x02f6, 0x0194, 0x0429, 0x03b3, 0x01e2,
+ 0x03f0, 0x06eb, 0x0562, 0x03e5, 0x08a3, 0x0b6e,
+ 0x08b2, 0x09b2, 0x0d3a, 0x0c00, 0x05ac, 0xfeb4,
+ 0xfdd2, 0xff25, 0xfc8b, 0xfd81, 0x004f, 0xfcc7,
+ 0xfa32, 0xfa33, 0xf7fa, 0xfa78, 0x01c0, 0x0492,
+ 0x021b, 0xff20, 0x00cf, 0x0704, 0x0a1b, 0x0645,
+ 0xff87, 0xfc8b, 0xfdc8, 0xfd46, 0xfccf, 0xffc7,
+ 0x0037, 0xfc91, 0xfa21, 0xfce6, 0x048c, 0x0962,
+ 0x0a37, 0x0c54, 0x0930, 0x01fd, 0x042e, 0x08ad,
+ 0x04f1, 0x0324, 0x0793, 0x0b8a, 0x0e4f, 0x1027,
+ 0x10e2, 0x1168, 0x0e84, 0x083d, 0x040c, 0x013b,
+ 0xfec8, 0x02a3, 0x0916, 0x0886, 0x0805, 0x0eba,
+ 0x1315, 0x117d, 0x0f7f, 0x0c68, 0x081c, 0x04cd,
+ 0x0028, 0xfb0b, 0xfd58, 0x07e6, 0x0d66, 0x07d8,
+ 0x0250, 0x00a1, 0xff4b, 0x0067, 0xffb0, 0xfc07,
+ 0xfd9d, 0xffd8, 0xff9b, 0x0408, 0x07e6, 0x07b2,
+ 0x075e, 0x031c, 0xfe90, 0xfe24, 0xfb05, 0xf818,
+ 0xf99d, 0xfd1c, 0x0492, 0x0815, 0x0354, 0x0495,
+ 0x086e, 0x031c, 0xfecf, 0xfff4, 0x005d, 0x0393,
+ 0x0a44, 0x0e82, 0x0df2, 0x0a86, 0x097e, 0x0b98,
+ 0x0cd0, 0x0cb5, 0x0a2a, 0x048d, 0x0297, 0x07ab,
+ 0x0ae7, 0x0665, 0x0320, 0x0614, 0x07d6, 0x0923,
+ 0x0d4a, 0x0e29, 0x0cfc, 0x0bd0, 0x05ca, 0x0297,
+ 0x0653, 0x0581, 0x01ff, 0x034f, 0x049f, 0x058b,
+ 0x072d, 0x0645, 0x06e6, 0x099b, 0x083a, 0x0565,
+ 0x03c7, 0x0106, 0x012b, 0x04b4, 0x044d, 0x026d,
+ 0x039b, 0x0131, 0xfbf3, 0xfb88, 0xfb45, 0xfa03,
+ 0xff66, 0x0450, 0x0126, 0x007c, 0x06b7, 0x09b1,
+ 0x05ce, 0x01d1, 0x026c, 0x04ad, 0x05c8, 0x0722,
+ 0x07eb, 0x087b, 0x0c04, 0x0ea6, 0x0c36, 0x0a84,
+ 0x0cb8, 0x0da1, 0x0d3e, 0x0fcb, 0x11a9, 0x1030,
+ 0x1072, 0x10dd, 0x0dda, 0x0bec, 0x09fb, 0x075e,
+ 0x0a4f, 0x0b45, 0x0487, 0x0299, 0x0557, 0x04f6,
+ 0x0796, 0x0ac6, 0x0731, 0x0479, 0x0529, 0x0379,
+ 0x02d7, 0x066f, 0x0a67, 0x0d21, 0x0dd2, 0x0ac9,
+ 0x0716, 0x0587, 0x0474, 0x05d8, 0x0972, 0x097b,
+ 0x0afa, 0x1113, 0x1154, 0x0fb2, 0x143f, 0x1497,
+ 0x1004, 0x0e26, 0x0c96, 0x0e24, 0x0ff9, 0x09b8,
+ 0x0740, 0x0ddf, 0x1086, 0x0e33, 0x09fb, 0x04d6,
+ 0x04d6, 0x062d, 0x0393, 0x012d, 0xff80, 0xff39,
+ 0x01ee, 0x03fa, 0x0372, 0xff4f, 0xfacd, 0xfc7a,
+ 0xff53, 0xfeca, 0xfe2d, 0xfbfe, 0xfbdd, 0x014b,
+ 0x01bf, 0xfae6, 0xf6a9, 0xf8aa, 0xfe0b, 0x007b,
+ 0xff91, 0x006e, 0xfeaa, 0xf94f, 0xf89b, 0xfb4f,
+ 0xfe1d, 0x00e9, 0xff1b, 0xfa01, 0xf69d, 0xf41b,
+ 0xf202, 0xf10a, 0xf3d3, 0xfa61, 0xfb34, 0xf557,
+ 0xf37e, 0xf791, 0xfd8a, 0x00f5, 0xfe20, 0xfaae,
+ 0xf9b3, 0xf79a, 0xf979, 0xffa1, 0xff17, 0xfa37,
+ 0xfb26, 0xfcf8, 0xf87d, 0xf4e0, 0xf7dc, 0xf95e,
+ 0xf606, 0xf691, 0xfaf5, 0xfaa2, 0xf92d, 0xfe32,
+ 0x0219, 0xfd7e, 0xfb17, 0x004c, 0x010d, 0xfd52,
+ 0xff70, 0x026f, 0x014c, 0x0018, 0xfd43, 0xfa68,
+ 0xfc33, 0xfcf3, 0xfa0b, 0xf91b, 0xfc2f, 0x01e1,
+ 0x0484, 0x0070, 0xfd2a, 0xff2f, 0x035d, 0x08a8,
+ 0x0a4b, 0x04e2, 0x0139, 0x03ea, 0x055f, 0x026f,
+ 0x0020, 0x00c4, 0x01c3, 0x0154, 0xffc4, 0xfe91,
+ 0x0097, 0x03ba, 0x0255, 0xffaf, 0xffc8, 0xfe00,
+ 0xfc8a, 0x0021, 0x0142, 0xfee1, 0x016a, 0x047f,
+ 0x02f0, 0x0399, 0x0756, 0x08d8, 0x0817, 0x068a,
+ 0x06c2, 0x0965, 0x0a86, 0x0c9f, 0x1186, 0x106a,
+ 0x0b60, 0x0eaa, 0x13a8, 0x0e1e, 0x0727, 0x0a5c,
+ 0x1175, 0x1440, 0x1495, 0x132e, 0x0edb, 0x0d98,
+ 0x10ae, 0x0e9c, 0x08a6, 0x0925, 0x0cb9, 0x0bca,
+ 0x09ab, 0x0a86, 0x0df2, 0x1167, 0x1142, 0x0e0d,
+ 0x0a2f, 0x05e3, 0x046b, 0x0732, 0x0880, 0x06d1,
+ 0x06d0, 0x086c, 0x0741, 0x0259, 0xfe5a, 0xfeaf,
+ 0xffa7, 0xfe56, 0xfdf5, 0x00a3, 0x0455, 0x052c,
+ 0x02f8, 0x0304, 0x04a6, 0x036c, 0x02ce, 0x02ee,
+ 0x0084, 0x0146, 0x04c1, 0x043f, 0x034c, 0x0161,
+ 0xfbb9, 0xfc03, 0x0197, 0x00c7, 0xfb9a, 0xf7f0,
+ 0xf885, 0xfec5, 0x0011, 0xf7eb, 0xf4ed, 0xfadd,
+ 0xfeb8, 0xfe7c, 0xfd4f, 0xfbe4, 0xfe24, 0x0456,
+ 0x05ba, 0x0097, 0xfdda, 0xfde3, 0xfc72, 0xfd42,
+ 0xfef0, 0xfe1b, 0x0026, 0x0284, 0x00b8, 0x0149,
+ 0x00a7, 0xf9dd, 0xf8ed, 0xfe3f, 0xfda1, 0xfb5e,
+ 0xfdb5, 0xfe99, 0xfe0d, 0x020a, 0x0745, 0x06d2,
+ 0x0204, 0xfd0a, 0xf9c6, 0xfb02, 0xfe85, 0xfecf,
+ 0xfd54, 0xfafa, 0xf879, 0xfbe1, 0x005b, 0xfd9b,
+ 0xfb36, 0xfd6e, 0xfedc, 0x0048, 0x0141, 0xfffc,
+ 0x0143, 0x048a, 0x03c9, 0xffe4, 0xfd06, 0xfb76,
+ 0xfb1e, 0xfdf1, 0x0064, 0xfdee, 0xfd39, 0x00e6,
+ 0x0163, 0x005f, 0xff84, 0xfad5, 0xf9fe, 0xfed1,
+ 0xfdb6, 0xf8dd, 0xf7e2, 0xf793, 0xf601, 0xf505,
+ 0xf5a9, 0xf5fd, 0xf488, 0xf745, 0xfdb3, 0xff5e,
+ 0xfeed, 0xffca, 0xffc0, 0xffe6, 0xfcea, 0xf976,
+ 0xfe42, 0x017a, 0xfd4a, 0xfc18, 0xfbad, 0xfac7,
+ 0xfea3, 0xfe8c, 0xfa8d, 0xfb69, 0xfb41, 0xfa80,
+ 0xff02, 0x02c8, 0x0462, 0x049c, 0x0184, 0x0092,
+ 0x00e8, 0xfd78, 0xfaf3, 0xfa16, 0xf842, 0xf6bd,
+ 0xf524, 0xf66f, 0xf8f0, 0xf574, 0xf2c7, 0xf476,
+ 0xf330, 0xf40a, 0xf6b6, 0xf1ff, 0xef46, 0xf333,
+ 0xf388, 0xf342, 0xf5ba, 0xf5ff, 0xf66e, 0xf6d1,
+ 0xf535, 0xf5a6, 0xf63b, 0xf56f, 0xf58b, 0xf303,
+ 0xf129, 0xf608, 0xf956, 0xf657, 0xf425, 0xf5ce,
+ 0xf94d, 0xfae3, 0xf8a3, 0xf622, 0xf67d, 0xfa72,
+ 0xfde8, 0xfa94, 0xf6b7, 0xf8d6, 0xf96c, 0xf786,
+ 0xf7d9, 0xf63b, 0xf3f3, 0xf689, 0xfad2, 0xfbb2,
+ 0xf6e7, 0xf1c5, 0xf3ff, 0xf752, 0xf517, 0xf178,
+ 0xef58, 0xf263, 0xf7f1, 0xf5c4, 0xf265, 0xf4a2,
+ 0xf46c, 0xf573, 0xf911, 0xf56f, 0xf314, 0xf700,
+ 0xf660, 0xf568, 0xf723, 0xf5af, 0xf70d, 0xf9ed,
+ 0xf7f1, 0xf831, 0xf933, 0xf65d, 0xf660, 0xf69f,
+ 0xf4dd, 0xf973, 0xff18, 0xfade, 0xf28f, 0xf1a5,
+ 0xf72c, 0xf88e, 0xf61d, 0xf817, 0xf9d4, 0xf77a,
+ 0xf72c, 0xf875, 0xfa6a, 0xfe20, 0xfd8e, 0xf8e6,
+ 0xf6bc, 0xf7b4, 0xfa78, 0xfb9f, 0xfafc, 0xfe5d,
+ 0x0113, 0xfe04, 0xfcae, 0xfc1d, 0xf717, 0xf41d,
+ 0xf3d0, 0xf12c, 0xf19f, 0xf7c9, 0xfbff, 0xfb69,
+ 0xfb20, 0xfe2f, 0x0181, 0x0188, 0x0140, 0x0551,
+ 0x0922, 0x0754, 0x0753, 0x0dbc, 0x1149, 0x0e22,
+ 0x094a, 0x05d3, 0x06d1, 0x0985, 0x0856, 0x087a,
+ 0x0bee, 0x0c50, 0x0b0d, 0x0a63, 0x0a0c, 0x0c6a,
+ 0x0ca7, 0x092e, 0x0a50, 0x0c32, 0x0947, 0x0b19,
+ 0x1212, 0x1327, 0x0f35, 0x0bbe, 0x06ea, 0x024a,
+ 0x0342, 0x060d, 0x0569, 0x05c2, 0x06ab, 0x02dd,
+ 0x00e1, 0x0520, 0x0843, 0x076b, 0x0352, 0xfe18,
+ 0xfe18, 0x00a5, 0xffcb, 0xffc4, 0x00e5, 0xff25,
+ 0xfe23, 0xff27, 0xfef9, 0xff95, 0x02b6, 0x0559,
+ 0x0551, 0x0342, 0x01c4, 0x03f7, 0x0852, 0x0907,
+ 0x0679, 0x0615, 0x073a, 0x088a, 0x0a1c, 0x064f,
+ 0xfe59, 0xfc29, 0xfe54, 0xfed8, 0xff48, 0xfefc,
+ 0xfd61, 0xfe8c, 0x01cf, 0x036d, 0x02d4, 0x00ff,
+ 0xff9b, 0xfe9b, 0xfc44, 0xfaa9, 0xfc37, 0xfca4,
+ 0xf9b9, 0xfbb4, 0x0361, 0x029c, 0xf9c9, 0xf9eb,
+ 0x0152, 0x0142, 0xfc61, 0xfd75, 0x030d, 0x05a7,
+ 0x03a2, 0x00cb, 0x00d6, 0x0342, 0x02c0, 0xfeb2,
+ 0xfdc0, 0xff03, 0xfd62, 0xfc5d, 0xfd97, 0xfe62,
+ 0xfdd7, 0xfa22, 0xf905, 0xfe19, 0xfd88, 0xf8ee,
+ 0xfbda, 0xfe27, 0xfc23, 0xfdb1, 0x00c3, 0x0406,
+ 0x048f, 0xff01, 0xfe4b, 0x01ce, 0x00c7, 0x0157,
+ 0xfe39, 0xf70c, 0xfdb9, 0x0309, 0xf91a, 0xf9eb,
+ 0x01d7, 0xfc19, 0xf932, 0xfe35, 0xfe5e, 0xff40,
+ 0xffa4, 0xfa81, 0xf856, 0xf863, 0xf73a, 0xf81c,
+ 0xf7be, 0xf6e6, 0xf923, 0xf9e2, 0xfa8b, 0xfe7e,
+ 0x00c4, 0x00e8, 0x01de, 0x02eb, 0x0387, 0x0220,
+ 0x0004, 0x023a, 0x0552, 0x028c, 0xfe0b, 0xff15,
+ 0x0264, 0x00ad, 0xfdf2, 0x0029, 0x0108, 0x00c5,
+ 0x06dd, 0x07d9, 0xfd84, 0xfbc9, 0x046d, 0x0525,
+ 0x0238, 0x03cc, 0x019f, 0xfd37, 0xfd5b, 0xfcbc,
+ 0xf9f4, 0xfa73, 0xfbc3, 0xf880, 0xf34c, 0xf242,
+ 0xf523, 0xf6e8, 0xf5be, 0xf414, 0xf411, 0xf2cd,
+ 0xeebe, 0xef8e, 0xf58b, 0xf691, 0xf5f3, 0xf8f1,
+ 0xf722, 0xf226, 0xf1ff, 0xf29a, 0xf2ca, 0xf3b6,
+ 0xf0d5, 0xee03, 0xf1f3, 0xf8d8, 0xfb74, 0xf830,
+ 0xf5f6, 0xf731, 0xf59c, 0xf488, 0xf63e, 0xf36b,
+ 0xf31b, 0xfad5, 0xfc63, 0xf5c9, 0xf2fe, 0xf69a,
+ 0xfb6d, 0xf9cd, 0xf5ee, 0xf9d6, 0xfb0e, 0xf699,
+ 0xfbb7, 0x012e, 0xfc26, 0xfaab, 0xfb86, 0xf742,
+ 0xf73c, 0xf856, 0xf52a, 0xf6c1, 0xfa54, 0xface,
+ 0xfcf4, 0xfd0f, 0xfbac, 0xffb0, 0x020a, 0x003b,
+ 0x01c2, 0x048b, 0x0778, 0x0a71, 0x077f, 0x044f,
+ 0x0652, 0x05dd, 0x04e9, 0x07d6, 0x0831, 0x04f8,
+ 0x006e, 0xfe52, 0x03f2, 0x07ba, 0x04ae, 0x04fd,
+ 0x0494, 0x020c, 0x0798, 0x0b0b, 0x0829, 0x0bbb,
+ 0x0c5d, 0x03fe, 0x01b3, 0x03ec, 0x0398, 0x04ce,
+ 0x0574, 0x034b, 0xffd7, 0xfceb, 0xfefb, 0x01e2,
+ 0x01c2, 0x036b, 0x02bc, 0xfe96, 0xffed, 0x0454,
+ 0x06fa, 0x0742, 0x0353, 0x019f, 0x026f, 0xfef5,
+ 0xff1f, 0x0312, 0x00d8, 0xffcf, 0x036d, 0x05e7,
+ 0x0a8e, 0x0de3, 0x0cb5, 0x0e00, 0x0d98, 0x0b7c,
+ 0x1110, 0x141b, 0x0eb6, 0x1035, 0x1720, 0x169b,
+ 0x134c, 0x1325, 0x135f, 0x145c, 0x1527, 0x122b,
+ 0x0fcd, 0x1219, 0x13a1, 0x129a, 0x11dd, 0x0efa,
+ 0x0a8d, 0x0905, 0x0908, 0x0968, 0x0a6b, 0x08e8,
+ 0x04e1, 0x039b, 0x0882, 0x0dd6, 0x0aef, 0x04cf,
+ 0x02b1, 0x00d7, 0x0055, 0x01a0, 0xff29, 0xff63,
+ 0x0306, 0xff2f, 0xfafc, 0xfc43, 0xfb10, 0xfc30,
+ 0xffb4, 0xfca6, 0xfbd5, 0x0048, 0x0045, 0xff21,
+ 0xfe8a, 0xfd0a, 0x00e6, 0x03dc, 0xffa6, 0xfefc,
+ 0x02fa, 0x049f, 0x0555, 0x0535, 0x057c, 0x0790,
+ 0x059c, 0x0126, 0xfeb9, 0xfad4, 0xfa50, 0x0136,
+ 0x037a, 0xff6f, 0xffe7, 0x0215, 0x0174, 0x031e,
+ 0x0466, 0xff81, 0xfa8b, 0xfb84, 0xfd77, 0xfbea,
+ 0xfb2b, 0xfe00, 0xff5a, 0xfe21, 0xfe44, 0xfcb9,
+ 0xf8f1, 0xfb10, 0x0021, 0xfef7, 0xfd8f, 0x010a,
+ 0x01d8, 0x0035, 0x023a, 0x043a, 0x02dd, 0x005f,
+ 0xfd51, 0xfc74, 0xfedd, 0xfe2d, 0xfafe, 0xfc0c,
+ 0xfe44, 0xfee6, 0x007d, 0xfe3f, 0xf98a, 0xfd82,
+ 0x038c, 0xff01, 0xf8d5, 0xf9e7, 0xfb84, 0xfc07,
+ 0xffa8, 0x02c3, 0x012a, 0xff41, 0x0192, 0x0433,
+ 0x025e, 0xfe97, 0xfcda, 0xfe3f, 0x01a6, 0x0347,
+ 0x022f, 0x017b, 0x00ad, 0xfefa, 0xffc8, 0x0270,
+ 0x0270, 0x00d8, 0x0082, 0xfef8, 0xfc22, 0xfdee,
+ 0x0353, 0x047c, 0x01d2, 0xff6f, 0xfc78, 0xfcb4,
+ 0x048f, 0x0bd9, 0x0b94, 0x0a71, 0x0c6c, 0x0c6b,
+ 0x0bb5, 0x0f9c, 0x1299, 0x0f35, 0x0d25, 0x0ffb,
+ 0x0f9d, 0x0c8f, 0x0f7e, 0x146f, 0x11bf, 0x0c04,
+ 0x0bf8, 0x0ec0, 0x10af, 0x12c9, 0x1187, 0x0cc6,
+ 0x0bb1, 0x0cbc, 0x09e7, 0x06bf, 0x0788, 0x0a5a,
+ 0x0b7c, 0x0887, 0x04e7, 0x04f8, 0x0639, 0x065a,
+ 0x0676, 0x05cd, 0x03dd, 0x01ce, 0x0044, 0xffc4,
+ 0xffd0, 0xfecc, 0xfbec, 0xf914, 0xf9be, 0xfc7c,
+ 0xfc9c, 0xfaa1, 0xf8d8, 0xf84a, 0xfb81, 0xffd6,
+ 0xff01, 0xfc66, 0xfe1a, 0x0096, 0x0121, 0x02a1,
+ 0x02e4, 0x0011, 0x0081, 0x049e, 0x04d8, 0x01fa,
+ 0x0131, 0x0208, 0x02f3, 0x0294, 0x016f, 0x00f0,
+ 0xfcf5, 0xf7c5, 0xfa4f, 0xfe22, 0xfc21, 0xfc27,
+ 0xfd27, 0xfab5, 0xfc47, 0xff48, 0xfc32, 0xf892,
+ 0xf6fa, 0xf7c4, 0xfd0b, 0xfcc2, 0xf52c, 0xf4ca,
+ 0xf935, 0xf8ee, 0xf8bd, 0xf8f8, 0xf82d, 0xfb72,
+ 0xfee8, 0xff7f, 0x00fb, 0xffde, 0xfe99, 0x03eb,
+ 0x071e, 0x0431, 0x0289, 0x0168, 0x0100, 0x02a8,
+ 0x0211, 0x02b0, 0x045c, 0x00a6, 0x0023, 0x050b,
+ 0x0519, 0x0619, 0x09cf, 0x0654, 0x026d, 0x0350,
+ 0x0430, 0x0919, 0x0d4f, 0x08b2, 0x0674, 0x0aa5,
+ 0x0c12, 0x0c44, 0x0e1a, 0x0e6d, 0x0c3b, 0x078f,
+ 0x0466, 0x06a7, 0x0952, 0x0767, 0x0340, 0x01e8,
+ 0x0415, 0x051e, 0x0439, 0x036c, 0x01dd, 0x0251,
+ 0x0535, 0x059d, 0x06b5, 0x09e6, 0x09c1, 0x0aab,
+ 0x0e5c, 0x0e35, 0x0ee1, 0x1204, 0x10b2, 0x114f,
+ 0x15ab, 0x138d, 0x1194, 0x172e, 0x1a3d, 0x18fb,
+ 0x1846, 0x1673, 0x16ab, 0x190d, 0x17d6, 0x1685,
+ 0x1630, 0x1372, 0x135b, 0x13f4, 0x1054, 0x10f6,
+ 0x1441, 0x1044, 0x0b9a, 0x0a5c, 0x07aa, 0x06a0,
+ 0x060d, 0x0212, 0x015b, 0x0457, 0x04d5, 0x0444,
+ 0x0368, 0x0143, 0xff6a, 0xfcea, 0xfaea, 0xfb61,
+ 0xf9bb, 0xf56a, 0xf4f1, 0xf831, 0xf8c6, 0xf549,
+ 0xf26c, 0xf35b, 0xf65a, 0xf8d4, 0xf95a, 0xf7da,
+ 0xf821, 0xfde2, 0x0414, 0x02a9, 0xfe11, 0xffac,
+ 0x0327, 0x02b3, 0x02fd, 0x0357, 0x00cf, 0x012d,
+ 0x0459, 0x0581, 0x062c, 0x057b, 0x02fc, 0x029f,
+ 0x0251, 0x0105, 0x01a0, 0x009b, 0xfd7e, 0xfcec,
+ 0xfd5d, 0xff08, 0x02cf, 0x00ad, 0xf8e4, 0xf820,
+ 0xfe04, 0xff4b, 0xfc65, 0xfb98, 0xfcd6, 0xfff9,
+ 0x035c, 0x01cd, 0xfe72, 0xffb6, 0x0215, 0x01dc,
+ 0x01d6, 0x0424, 0x0745, 0x076e, 0x061d, 0x089a,
+ 0x0a4d, 0x0676, 0x0321, 0x023f, 0x0062, 0xfe40,
+ 0xfdc6, 0x00f5, 0x0594, 0x054e, 0x01a6, 0xffd9,
+ 0x00ae, 0x0297, 0x01b4, 0xff21, 0xff2e, 0xfe86,
+ 0xfd34, 0xff13, 0xffe7, 0xff04, 0xff15, 0xfe7f,
+ 0xff8c, 0x00a6, 0xfe22, 0xfe0b, 0xffd6, 0xff2f,
+ 0xff4d, 0xfd0e, 0xfa87, 0xfed7, 0xfee0, 0xf792,
+ 0xf531, 0xf4b6, 0xf3c6, 0xf6ce, 0xf8f4, 0xfa99,
+ 0xfb81, 0xf7d2, 0xf9a5, 0x001a, 0xffb5, 0x00a0,
+ 0x036a, 0xfe4a, 0xfc53, 0x029d, 0x060b, 0x069b,
+ 0x0687, 0x05a4, 0x0861, 0x0c37, 0x0d27, 0x0d54,
+ 0x0c6d, 0x0bdf, 0x0e50, 0x0f3a, 0x0c2b, 0x0976,
+ 0x0890, 0x07a8, 0x0801, 0x0aaf, 0x0b0b, 0x0716,
+ 0x052d, 0x0765, 0x0899, 0x0861, 0x095e, 0x0a3b,
+ 0x0a35, 0x0a1c, 0x07ca, 0x041b, 0x04a4, 0x060f,
+ 0x024b, 0x002f, 0x0222, 0x0049, 0xfd79, 0xfccb,
+ 0xf9ac, 0xf925, 0xfca4, 0xfaf6, 0xf720, 0xf756,
+ 0xf81a, 0xf99f, 0xfc60, 0xfcab, 0xfb90, 0xfb42,
+ 0xfcc2, 0x0086, 0x0238, 0x0019, 0xfde2, 0xfb45,
+ 0xf86f, 0xfa68, 0xfea3, 0xfd09, 0xf96a, 0xfa9c,
+ 0xfb24, 0xf986, 0xfb97, 0xfd1f, 0xfbde, 0xfca0,
+ 0xfbfd, 0xfb02, 0xfdcf, 0xfb32, 0xf46e, 0xf522,
+ 0xf615, 0xf108, 0xeecf, 0xf06f, 0xf0ef, 0xefba,
+ 0xee43, 0xefc4, 0xf321, 0xf462, 0xf3f7, 0xf27b,
+ 0xf1b6, 0xf402, 0xf5eb, 0xf56d, 0xf4fa, 0xf593,
+ 0xf748, 0xf877, 0xf85e, 0xf835, 0xf600, 0xf41a,
+ 0xf839, 0xfc97, 0xfaf4, 0xf8ae, 0xf919, 0xf93f,
+ 0xf7ec, 0xf600, 0xf442, 0xf36a, 0xf45c, 0xf5ee,
+ 0xf653, 0xf616, 0xf414, 0xf1a7, 0xf4bd, 0xf9fc,
+ 0xfafc, 0xfa1e, 0xf7f6, 0xf6a2, 0xf992, 0xf7e0,
+ 0xf1ad, 0xf497, 0xfafa, 0xfafb, 0xfba5, 0xfc7b,
+ 0xf830, 0xf4f5, 0xf4f7, 0xf605, 0xf968, 0xf986,
+ 0xf3d9, 0xf320, 0xf7e4, 0xf7a7, 0xf5d3, 0xf7ac,
+ 0xf729, 0xf5eb, 0xf7b8, 0xf7b2, 0xf96f, 0xffd0,
+ 0x0156, 0xfee7, 0xffd9, 0x0219, 0x0494, 0x0604,
+ 0x0529, 0x068d, 0x06e8, 0x0301, 0x03c9, 0x0991,
+ 0x0c69, 0x0bcf, 0x09bb, 0x09ab, 0x0c38, 0x0b67,
+ 0x07fa, 0x06e2, 0x07a1, 0x07a3, 0x045a, 0x0186,
+ 0x0412, 0x06ba, 0x07c5, 0x097a, 0x070b, 0x0279,
+ 0x018d, 0x013a, 0xffe8, 0xfed7, 0xfff7, 0x02d0,
+ 0xff49, 0xf9e2, 0xfda5, 0x0095, 0xfd70, 0xfcc5,
+ 0xfb02, 0xf782, 0xf758, 0xf6d5, 0xf8cb, 0xfd31,
+ 0xfb1b, 0xf7e2, 0xf879, 0xf88f, 0xf9aa, 0xf7d3,
+ 0xf2a0, 0xf52b, 0xf984, 0xf666, 0xf3db, 0xf46e,
+ 0xf67e, 0xfa7b, 0xfa27, 0xf700, 0xf776, 0xf7f9,
+ 0xf755, 0xf73c, 0xf6d9, 0xf810, 0xf891, 0xf73d,
+ 0xf96f, 0xfade, 0xf74b, 0xf65d, 0xf7dd, 0xf5e5,
+ 0xf2e3, 0xf095, 0xeee8, 0xef45, 0xf063, 0xf217,
+ 0xf3b2, 0xf271, 0xf206, 0xf488, 0xf48d, 0xf41e,
+ 0xf6ea, 0xf66d, 0xf351, 0xf5df, 0xf9da, 0xf985,
+ 0xfa5b, 0xfd09, 0xfc24, 0xfa3d, 0xfbed, 0xfe69,
+ 0xfe37, 0xfcb7, 0xfbe5, 0xfc25, 0xfe00, 0xff59,
+ 0xfc6c, 0xf89e, 0xf9b3, 0xfc3a, 0xfb83, 0xfa3e,
+ 0xfa56, 0xfa44, 0xfaf4, 0xfcf4, 0xfd75, 0xfcda,
+ 0xfdc2, 0xfe43, 0xff12, 0x038a, 0x05a5, 0x028a,
+ 0x0281, 0x043e, 0x0394, 0x078c, 0x0d98, 0x0c43,
+ 0x07e1, 0x0631, 0x07c8, 0x0c64, 0x0d39, 0x097a,
+ 0x0914, 0x07f9, 0x01c2, 0x003d, 0x0446, 0x03fa,
+ 0x0235, 0x058b, 0x07d3, 0x05b0, 0x05d3, 0x091a,
+ 0x0be3, 0x0cb4, 0x0885, 0x0483, 0x087a, 0x0b24,
+ 0x0797, 0x0860, 0x0b55, 0x09c4, 0x08a5, 0x084a,
+ 0x082c, 0x0b58, 0x0ce0, 0x0b38, 0x0a6e, 0x08ab,
+ 0x0746, 0x0958, 0x0aa6, 0x08a1, 0x053d, 0x0295,
+ 0x0077, 0xfda3, 0xfe52, 0x022f, 0x010a, 0xfe1b,
+ 0xff5f, 0x00ff, 0x0298, 0x02f8, 0x0004, 0xffd2,
+ 0x003f, 0xfd34, 0xfd3a, 0xfbfc, 0xf648, 0xf7d1,
+ 0xfbf1, 0xf91c, 0xf7e4, 0xf847, 0xf45e, 0xf243,
+ 0xf388, 0xf56e, 0xf7d2, 0xf726, 0xf4ff, 0xf5b1,
+ 0xf691, 0xf678, 0xf59e, 0xf43d, 0xf5d0, 0xf7d0,
+ 0xf730, 0xf7ad, 0xf71a, 0xf495, 0xf6bb, 0xfa54,
+ 0xfa21, 0xf991, 0xf7fc, 0xf611, 0xf8a0, 0xfa5f,
+ 0xf739, 0xf5ae, 0xf730, 0xf857, 0xf8ae, 0xf77b,
+ 0xf6f3, 0xfa64, 0xfc69, 0xf7ba, 0xf2ea, 0xf41c,
+ 0xf6a8, 0xf688, 0xf55c, 0xf3e6, 0xf4c1, 0xf9fe,
+ 0xfde5, 0xfd9f, 0xfd52, 0xfd95, 0xfd66, 0xfc05,
+ 0xf89c, 0xf845, 0xfc2c, 0xfdf2, 0xfe2c, 0xfe73,
+ 0xfd76, 0xff3d, 0x00fa, 0xfd4c, 0xfbef, 0xfe9a,
+ 0xfd70, 0xfa33, 0xf942, 0xfb67, 0xfdfc, 0xfa67,
+ 0xf60b, 0xf86e, 0xf8ce, 0xf66d, 0xf8e8, 0xfa17,
+ 0xf878, 0xf99f, 0xfa2e, 0xfb6d, 0xfed7, 0xfdbe,
+ 0xfd02, 0x00ae, 0xfe02, 0xf7ec, 0xfa27, 0xfdda,
+ 0xfc78, 0xfc29, 0xfba6, 0xf6dd, 0xf48a, 0xf828,
+ 0xfbb2, 0xfc86, 0xfc93, 0xfd25, 0xfe6e, 0xfe3b,
+ 0xfc6c, 0xfcdd, 0xff7d, 0x00c6, 0x000b, 0xffe9,
+ 0x0270, 0x03bf, 0x0245, 0x04ac, 0x08ac, 0x06f2,
+ 0x0515, 0x0660, 0x06c5, 0x0827, 0x0930, 0x07b6,
+ 0x0907, 0x0b28, 0x0a23, 0x0a8a, 0x0b74, 0x09c5,
+ 0x08f9, 0x0985, 0x098c, 0x0a0c, 0x0c1e, 0x0ee8,
+ 0x0f6e, 0x0db4, 0x0bf9, 0x0aca, 0x0d10, 0x1042,
+ 0x0cfe, 0x080b, 0x06f2, 0x06b4, 0x07f2, 0x08ac,
+ 0x0828, 0x0b7b, 0x0af4, 0x04f2, 0x074b, 0x0aee,
+ 0x068b, 0x05ee, 0x07e0, 0x05f2, 0x069d, 0x0641,
+ 0x027f, 0x0369, 0x05b2, 0x05d9, 0x06bd, 0x050d,
+ 0x0309, 0x05cb, 0x07e7, 0x0694, 0x05be, 0x063f,
+ 0x0631, 0x0549, 0x06e9, 0x0a24, 0x0910, 0x0691,
+ 0x05b4, 0x016f, 0xfd8e, 0x002d, 0x0383, 0x0461,
+ 0x043b, 0x01ed, 0x0224, 0x067d, 0x05ac, 0x00c6,
+ 0x0135, 0x029e, 0x0096, 0x0231, 0x05ce, 0x043d,
+ 0x01f3, 0x02ab, 0x028c, 0x00f5, 0xff46, 0xff08,
+ 0x0135, 0x0168, 0xfecd, 0xfeed, 0x0131, 0x01bb,
+ 0x0064, 0xfe7b, 0xff15, 0x017e, 0x003f, 0xfcf7,
+ 0xfc69, 0xfc8f, 0xfbcf, 0xfd4f, 0x01a0, 0x03a9,
+ 0x0143, 0x0056, 0x01fb, 0x002f, 0xfcdf, 0xfcab,
+ 0xfda6, 0xfecd, 0xfeab, 0xfc84, 0xfde0, 0x00f8,
+ 0xfde4, 0xf880, 0xf73e, 0xf855, 0xf9c5, 0xfaa2,
+ 0xfb7d, 0xfe32, 0xffa3, 0xfdc5, 0xfc85, 0xfdd8,
+ 0x0069, 0x019b, 0x005b, 0x00d8, 0x0256, 0xfebd,
+ 0xfaa3, 0xfcd2, 0xff81, 0xfd90, 0xfb9d, 0xfdcd,
+ 0x0112, 0x00d0, 0x0078, 0x0468, 0x0663, 0x031c,
+ 0x0138, 0x024e, 0x0472, 0x08ab, 0x0baa, 0x0a93,
+ 0x093a, 0x099e, 0x0a42, 0x0a63, 0x0a1c, 0x0ab5,
+ 0x0bab, 0x0b02, 0x0a3b, 0x0ab9, 0x0c20, 0x0fdb,
+ 0x12d7, 0x0f3e, 0x0a2d, 0x0af5, 0x0c94, 0x0bcd,
+ 0x0e21, 0x1193, 0x1058, 0x0d48, 0x0af7, 0x0998,
+ 0x0af9, 0x0b05, 0x0704, 0x04d9, 0x04dd, 0x0392,
+ 0x02eb, 0x02ca, 0x02c0, 0x03ca, 0x02b5, 0x011b,
+ 0x0315, 0x0466, 0x03be, 0x045b, 0x04d1, 0x04f5,
+ 0x048c, 0x0197, 0xff93, 0xffb4, 0xfe80, 0xfd6b,
+ 0xfe6e, 0xfff8, 0xff16, 0xf972, 0xf4c4, 0xf7ae,
+ 0xfc4b, 0xfb4c, 0xf7bc, 0xf7a5, 0xf9dd, 0xf87c,
+ 0xf6cb, 0xfae1, 0xfd8d, 0xfb39, 0xfc67, 0xfff4,
+ 0xff42, 0xfd52, 0xfcca, 0xfbf8, 0xfbbd, 0xfd88,
+ 0xff52, 0xfdda, 0xfa6c, 0xf8b3, 0xf968, 0xfc31,
+ 0xfda9, 0xfaf0, 0xfa3a, 0xfd3c, 0xfce2, 0xfbb6,
+ 0xfe17, 0xfedf, 0xfdd9, 0xfefc, 0x00d1, 0x01a0,
+ 0x00ac, 0xfea2, 0xfec3, 0x00b5, 0x01d5, 0x0263,
+ 0x038e, 0x05cd, 0x079a, 0x0778, 0x071e, 0x073e,
+ 0x0728, 0x075c, 0x06c1, 0x05c1, 0x0725, 0x083e,
+ 0x05bf, 0x03a0, 0x042d, 0x03a1, 0x027c, 0x0576,
+ 0x09bc, 0x0846, 0x02ee, 0x00ae, 0x0226, 0x031a,
+ 0x028e, 0x03c4, 0x070d, 0x095d, 0x0a88, 0x093a,
+ 0x0423, 0x0245, 0x05e8, 0x0718, 0x0616, 0x079b,
+ 0x08cc, 0x07c7, 0x051e, 0x021c, 0x0283, 0x03bc,
+ 0x0116, 0xfdef, 0xfcc7, 0xfd85, 0x0117, 0x046b,
+ 0x0673, 0x0924, 0x08f0, 0x05a2, 0x0540, 0x0856,
+ 0x0bc2, 0x0d3f, 0x0c4f, 0x0c78, 0x0dee, 0x0e0f,
+ 0x0fa0, 0x11f9, 0x10a6, 0x0f59, 0x1054, 0x0f66,
+ 0x0ea2, 0x1024, 0x0f86, 0x0e1a, 0x0f29, 0x0eb4,
+ 0x0bec, 0x0acc, 0x0b71, 0x0de6, 0x1147, 0x0fb0,
+ 0x0ac5, 0x0bc6, 0x100f, 0x0eb8, 0x0b29, 0x0b51,
+ 0x0c9b, 0x0cc3, 0x0b12, 0x06d1, 0x04a5, 0x06f6,
+ 0x08d5, 0x0865, 0x06d4, 0x0556, 0x0747, 0x09d5,
+ 0x082d, 0x06ea, 0x0741, 0x058a, 0x04fc, 0x04f0,
+ 0x0294, 0x026a, 0x0213, 0xfec0, 0xffcd, 0x02ae,
+ 0x014a, 0x01ea, 0x04b4, 0x0410, 0x027a, 0x017b,
+ 0x0116, 0x01a8, 0x0048, 0xff93, 0x022b, 0x0214,
+ 0xff62, 0x000e, 0x0266, 0x01d8, 0xfe0a, 0xfa85,
+ 0xfaf8, 0xfee9, 0x0346, 0x0315, 0xfd5c, 0xfa1e,
+ 0xfb49, 0xfb87, 0xfcf3, 0xff02, 0xfc15, 0xf8fc,
+ 0xfaf7, 0xfdd9, 0xfee6, 0xff72, 0x0128, 0x02e8,
+ 0x01ae, 0x0097, 0x031c, 0x04f7, 0x03d1, 0x02c4,
+ 0x0338, 0x036d, 0x01ea, 0x0064, 0x0013, 0x007e,
+ 0x017c, 0xff23, 0xfad7, 0xfd97, 0x0115, 0xfc2e,
+ 0xf997, 0xfc70, 0xfbd3, 0xfade, 0xfac2, 0xf8f3,
+ 0xfbbe, 0x0088, 0x00ee, 0x0270, 0x040f, 0x00e2,
+ 0xff3e, 0x0115, 0x00f5, 0xff92, 0x002f, 0x0255,
+ 0x02e0, 0x00f1, 0x009f, 0x0291, 0x01ee, 0xfe5c,
+ 0xfc38, 0xfcdd, 0xfdd8, 0xfdbb, 0xfd4d, 0xfd2b,
+ 0xfe22, 0xff9c, 0xff5b, 0xffc4, 0x0344, 0x04ed,
+ 0x027c, 0xffb7, 0xfe59, 0xffd7, 0x041e, 0x06cf,
+ 0x06db, 0x0650, 0x04d2, 0x035a, 0x0472, 0x06f8,
+ 0x0767, 0x0646, 0x0759, 0x08e9, 0x0748, 0x067d,
+ 0x09a2, 0x0b93, 0x0907, 0x0575, 0x0565, 0x07d3,
+ 0x073f, 0x04bf, 0x05cd, 0x0789, 0x05b5, 0x0437,
+ 0x05bb, 0x06b9, 0x0587, 0x0543, 0x0710, 0x0832,
+ 0x07bc, 0x05bf, 0x0305, 0x0419, 0x07a1, 0x06d2,
+ 0x0517, 0x0628, 0x0403, 0x001e, 0x0093, 0x01b6,
+ 0x0102, 0x017a, 0x027d, 0x0266, 0x01d9, 0x00f0,
+ 0xff0f, 0xfe7c, 0x02e6, 0x06ea, 0x033f, 0xff6a,
+ 0x0198, 0x02cd, 0x0196, 0x007b, 0xfde0, 0xfe02,
+ 0x01e2, 0x0202, 0xff97, 0xff46, 0xff82, 0x0045,
+ 0x004a, 0xfdfd, 0xfdd5, 0xffcf, 0xff89, 0xfe21,
+ 0xfcf4, 0xfca0, 0xfe34, 0xfe7c, 0xfdd1, 0x015f,
+ 0x057f, 0x02e5, 0xfcc2, 0xfae8, 0xfdfa, 0x0067,
+ 0xffb2, 0xfe36, 0xfd26, 0xfc02, 0xfac9, 0xfa59,
+ 0xfc21, 0xfd41, 0xfa26, 0xf883, 0xfc47, 0xfdb1,
+ 0xfa86, 0xfb13, 0x0056, 0x030c, 0x00b7, 0xfca2,
+ 0xfa7b, 0xfbf5, 0xfe58, 0xfcf7, 0xf9a3, 0xf97c,
+ 0xfa99, 0xfa26, 0xfa36, 0xf9b1, 0xf7e9, 0xf7ef,
+ 0xf5fa, 0xf088, 0xf131, 0xf783, 0xf92d, 0xf820,
+ 0xf993, 0xfa56, 0xf92e, 0xf761, 0xf557, 0xf593,
+ 0xf6f0, 0xf498, 0xf0b6, 0xf1e1, 0xf743, 0xf951,
+ 0xf64f, 0xf46e, 0xf542, 0xf538, 0xf5a8, 0xf8b3,
+ 0xfb51, 0xfaad, 0xf7c3, 0xf66c, 0xf907, 0xfd39,
+ 0xffd9, 0xff62, 0xfe25, 0x0171, 0x05bb, 0x0384,
+ 0x0089, 0x0383, 0x070b, 0x06cf, 0x04eb, 0x052d,
+ 0x0909, 0x0b02, 0x08d3, 0x088e, 0x0a88, 0x0acb,
+ 0x0b06, 0x0cfc, 0x0eb7, 0x0e04, 0x0c1a, 0x0c0c,
+ 0x0c99, 0x0ce1, 0x0e86, 0x0e32, 0x0b45, 0x09f1,
+ 0x08ce, 0x079f, 0x07f2, 0x069c, 0x052c, 0x0509,
+ 0x0264, 0x0121, 0x036c, 0x0366, 0x0236, 0x0225,
+ 0x01b5, 0x01d7, 0x00bd, 0xff7c, 0x0165, 0x0130,
+ 0xff34, 0x000a, 0xfe35, 0xfaad, 0xfa72, 0xf929,
+ 0xf872, 0xf918, 0xf406, 0xee6f, 0xef2e, 0xf249,
+ 0xf5fc, 0xf6a2, 0xf2a1, 0xf1d8, 0xf31a, 0xf13b,
+ 0xf144, 0xf2f5, 0xf1d1, 0xf02d, 0xef1f, 0xeea4,
+ 0xef30, 0xeddf, 0xeb94, 0xec25, 0xee52, 0xef60,
+ 0xee7b, 0xec40, 0xeb97, 0xee56, 0xf10f, 0xef75,
+ 0xed1a, 0xef07, 0xf071, 0xedf6, 0xec4d, 0xebc8,
+ 0xead2, 0xebbf, 0xedca, 0xef17, 0xef17, 0xecf6,
+ 0xecb1, 0xf18b, 0xf669, 0xf672, 0xf3bf, 0xf3c6,
+ 0xf6fd, 0xf81a, 0xf743, 0xf78f, 0xf7b6, 0xf972,
+ 0xfcd8, 0xfc81, 0xfa7f, 0xfa3c, 0xf951, 0xf9a3,
+ 0xfb4f, 0xfae3, 0xfb78, 0xfcde, 0xfc3a, 0xfeb1,
+ 0x0265, 0xfec8, 0xf99b, 0xfc85, 0x032f, 0x0595,
+ 0x03e9, 0x02f4, 0x048a, 0x0607, 0x04a7, 0x01ba,
+ 0x0176, 0x042d, 0x061d, 0x0692, 0x064e, 0x0507,
+ 0x0442, 0x0381, 0x00f1, 0xfedf, 0xfdfe, 0xfcf8,
+ 0xfe11, 0x00fc, 0x0197, 0xff3f, 0xfbcc, 0xf967,
+ 0xf9e0, 0xfbf0, 0xfd64, 0xfd55, 0xfb5b, 0xf989,
+ 0xfb59, 0xffe3, 0x0220, 0x00c1, 0xff7e, 0xff0f,
+ 0xfdc7, 0xfd36, 0xfd92, 0xfd03, 0xfcb9, 0xfd14,
+ 0xfcc7, 0xfcf9, 0xfe08, 0xfe39, 0xfcda, 0xfaab,
+ 0xf8b6, 0xf6e5, 0xf64d, 0xf842, 0xf8ef, 0xf712,
+ 0xf6ee, 0xf6e4, 0xf5f7, 0xf7c3, 0xf781, 0xf2fb,
+ 0xf1ef, 0xf328, 0xf20b, 0xf22f, 0xf390, 0xf41e,
+ 0xf46d, 0xf2ad, 0xf0ac, 0xf14b, 0xf22a, 0xf3a7,
+ 0xf51b, 0xf340, 0xf252, 0xf439, 0xf4af, 0xf4ca,
+ 0xf47a, 0xf29a, 0xf310, 0xf3a2, 0xf256, 0xf495,
+ 0xf600, 0xf208, 0xf217, 0xf6d1, 0xf65b, 0xf1be,
+ 0xeff0, 0xf3d7, 0xfb4f, 0xffbd, 0xffc2, 0xff05,
+ 0xfd51, 0xfc00, 0xfdf8, 0x00b2, 0x0315, 0x0647,
+ 0x06ff, 0x0491, 0x03e5, 0x05c5, 0x06e0, 0x071e,
+ 0x0878, 0x0a96, 0x0b7b, 0x0ab6, 0x0a8b, 0x0cb1,
+ 0x0e68, 0x0cd4, 0x0ad3, 0x0b1b, 0x0c2f, 0x0d7b,
+ 0x0e14, 0x0c16, 0x0a1d, 0x0a0a, 0x09de, 0x0b77,
+ 0x0f90, 0x106c, 0x0db9, 0x0d7a, 0x0f80, 0x0f31,
+ 0x0cc2, 0x0b69, 0x0c58, 0x0f91, 0x123e, 0x0e52,
+ 0x06af, 0x05a6, 0x0877, 0x06d6, 0x0552, 0x06cd,
+ 0x05f0, 0x03a7, 0x022f, 0x007d, 0x00d5, 0x024d,
+ 0x01c2, 0x0237, 0x0397, 0x0101, 0xfd01, 0xfdc7,
+ 0x01e7, 0x02ee, 0xff5d, 0xfb4e, 0xf8b2, 0xf7cc,
+ 0xf93a, 0xfa82, 0xfaa5, 0xfade, 0xf871, 0xf4bd,
+ 0xf602, 0xf982, 0xf98f, 0xf851, 0xf84c, 0xf8ef,
+ 0xfa2b, 0xfc0e, 0xfe29, 0x0000, 0x021d, 0x03a2,
+ 0x0191, 0xfe2b, 0xfde7, 0xfe97, 0xfe2f, 0xfec6,
+ 0x013f, 0x0467, 0x0503, 0x03aa, 0x05bd, 0x0865,
+ 0x06d7, 0x05c8, 0x06fc, 0x0877, 0x0aa0, 0x09be,
+ 0x06ff, 0x08dd, 0x0a8e, 0x088d, 0x0841, 0x0785,
+ 0x0440, 0x0305, 0x034e, 0x04a2, 0x084e, 0x0a26,
+ 0x07e0, 0x0386, 0x0106, 0x0475, 0x07ff, 0x0507,
+ 0x02cb, 0x05d5, 0x07f4, 0x06b7, 0x04c1, 0x0511,
+ 0x07a4, 0x07f7, 0x068b, 0x07e4, 0x09ea, 0x092b,
+ 0x06b6, 0x054c, 0x06bb, 0x07ab, 0x0513, 0x030a,
+ 0x03b2, 0x0455, 0x039e, 0x0109, 0xfe4f, 0xfdff,
+ 0xfe26, 0xfd3c, 0xfc17, 0xfb11, 0xfc47, 0xffdd,
+ 0x02c8, 0x03b1, 0x00f7, 0xfcb3, 0xfd04, 0xfec2,
+ 0xfd4c, 0xfd7e, 0xfeeb, 0xfd2f, 0xfbe8, 0xfbb6,
+ 0xf87f, 0xf442, 0xf2b9, 0xf3ad, 0xf491, 0xf458,
+ 0xf505, 0xf553, 0xf352, 0xf2f8, 0xf4ba, 0xf583,
+ 0xf6fd, 0xf805, 0xf623, 0xf552, 0xf6c8, 0xf7a5,
+ 0xf7aa, 0xf681, 0xf568, 0xf635, 0xf605, 0xf45b,
+ 0xf49a, 0xf5f9, 0xf5c8, 0xf3e4, 0xf297, 0xf43a,
+ 0xf70d, 0xf89a, 0xf8c1, 0xf67a, 0xf34f, 0xf386,
+ 0xf663, 0xf78b, 0xf584, 0xf39f, 0xf504, 0xf6e0,
+ 0xf7b4, 0xf998, 0xf969, 0xf6b2, 0xf745, 0xf9e4,
+ 0xfb6e, 0xfd26, 0xfd7b, 0xfd96, 0x000d, 0x0098,
+ 0xfeb4, 0xfdca, 0xfc50, 0xfbb9, 0xfe67, 0x00ef,
+ 0x01e7, 0x01f1, 0x01b1, 0x0332, 0x0431, 0x02a8,
+ 0x01a9, 0x020c, 0x04b0, 0x0934, 0x09c8, 0x07f0,
+ 0x0970, 0x0c15, 0x0fbb, 0x146b, 0x13c1, 0x0f51,
+ 0x0c85, 0x09d8, 0x096a, 0x0cf8, 0x0f2c, 0x0fbf,
+ 0x1135, 0x1214, 0x122f, 0x10e7, 0x0e14, 0x0cc0,
+ 0x0cb0, 0x0cfe, 0x0df1, 0x0c28, 0x09cc, 0x0c71,
+ 0x0eb2, 0x0c4c, 0x09ca, 0x069b, 0x02a6, 0x03e2,
+ 0x08a1, 0x0abd, 0x0a0b, 0x0825, 0x069d, 0x05ea,
+ 0x042c, 0x02d0, 0x035d, 0x028c, 0x000b, 0xff0b,
+ 0xff52, 0xff10, 0xfe87, 0xff52, 0x00bd, 0x0008,
+ 0xff70, 0x0240, 0x0424, 0x0246, 0x0102, 0x01de,
+ 0x01d2, 0xff1d, 0xfbab, 0xfba8, 0xfdd2, 0xfc66,
+ 0xf8f0, 0xf8bd, 0xf97c, 0xf77b, 0xf5db, 0xf6a5,
+ 0xf687, 0xf5cc, 0xf759, 0xf8b1, 0xf84b, 0xf7b4,
+ 0xf50c, 0xf265, 0xf54d, 0xf9f5, 0xfa73, 0xf72e,
+ 0xf246, 0xf096, 0xf39f, 0xf51b, 0xf45a, 0xf560,
+ 0xf704, 0xf7d0, 0xf76e, 0xf6e2, 0xf97b, 0xfcbf,
+ 0xfccf, 0xfbf4, 0xfaf0, 0xf9e2, 0xfac7, 0xfc15,
+ 0xfd7c, 0xff8f, 0xff9f, 0xff2f, 0x0000, 0xff81,
+ 0xff7c, 0x015b, 0x0280, 0x03fa, 0x055e, 0x0401,
+ 0x024f, 0x026e, 0x040b, 0x0632, 0x05ad, 0x031b,
+ 0x01f3, 0x01d6, 0x0358, 0x06d1, 0x0942, 0x0aaf,
+ 0x0b57, 0x0a48, 0x0b6b, 0x0fb7, 0x10da, 0x0c74,
+ 0x076f, 0x072a, 0x0a55, 0x0a31, 0x0656, 0x04ff,
+ 0x07a7, 0x0a84, 0x0a7d, 0x08ac, 0x0934, 0x0bb4,
+ 0x0c83, 0x0cde, 0x0f1c, 0x1168, 0x1197, 0x0fc3,
+ 0x0e0d, 0x0e86, 0x1013, 0x1070, 0x0f54, 0x0e09,
+ 0x0df4, 0x0dbe, 0x0b20, 0x094d, 0x0c66, 0x10ae,
+ 0x1117, 0x0ec0, 0x0c13, 0x0b3f, 0x0e9b, 0x128a,
+ 0x1179, 0x0da3, 0x0be4, 0x0c8c, 0x0dd5, 0x0dbb,
+ 0x0bac, 0x09f7, 0x09e3, 0x0983, 0x0712, 0x04c9,
+ 0x05ae, 0x065e, 0x03a8, 0x0271, 0x03de, 0x0283,
+ 0x001c, 0x005b, 0x000e, 0xfea1, 0xfea8, 0xfdd3,
+ 0xfb17, 0xfb41, 0xff6e, 0x022d, 0x016a, 0x0044,
+ 0xffd1, 0xff6a, 0xff0e, 0xfec2, 0xfffc, 0x0163,
+ 0xfec2, 0xfa51, 0xf799, 0xf5fb, 0xf7c8, 0xfbab,
+ 0xfbd4, 0xfadf, 0xfb29, 0xf9d5, 0xf8ba, 0xf79b,
+ 0xf5d9, 0xf90a, 0xfd9a, 0xfc4d, 0xfa3e, 0xfb16,
+ 0xfc34, 0xfcad, 0xfbd8, 0xfc71, 0xfebf, 0xfd25,
+ 0xfb97, 0xfedb, 0x0067, 0xffb3, 0x0086, 0x00c8,
+ 0x0188, 0x021b, 0xff26, 0xfe23, 0x012b, 0x0189,
+ 0xffdd, 0x0109, 0x0371, 0x0392, 0x02aa, 0x0442,
+ 0x06af, 0x06c2, 0x0652, 0x05e6, 0x05db, 0x099e,
+ 0x0de7, 0x0dd4, 0x0d4a, 0x0e47, 0x0db8, 0x0cf7,
+ 0x0e5c, 0x0f03, 0x0cc0, 0x0ba8, 0x0da9, 0x0dbf,
+ 0x0bc5, 0x0b70, 0x0a26, 0x0856, 0x097b, 0x09d7,
+ 0x08d9, 0x09e8, 0x0a13, 0x092c, 0x0962, 0x0759,
+ 0x0450, 0x041a, 0x0454, 0x054a, 0x0851, 0x0982,
+ 0x08fe, 0x08c3, 0x05c6, 0x01f1, 0x0366, 0x0684,
+ 0x03cd, 0xfde5, 0xfb9e, 0xfd31, 0xfeb4, 0xfddf,
+ 0xfc17, 0xfc4e, 0xfd31, 0xfb32, 0xf85d, 0xf926,
+ 0xfc64, 0xfd4c, 0xfb1b, 0xfa85, 0xfdd9, 0x0136,
+ 0x017b, 0x0012, 0xff45, 0xff93, 0x0075, 0x01f9,
+ 0x02e7, 0x00f5, 0xfe5c, 0xff42, 0x02f1, 0x05e6,
+ 0x05d2, 0x0452, 0x04ee, 0x05a8, 0x0375, 0x00e5,
+ 0xffe7, 0x014c, 0x05d0, 0x08fe, 0x082b, 0x06e5,
+ 0x0710, 0x0882, 0x0999, 0x07f4, 0x0677, 0x080f,
+ 0x0a8e, 0x0bc3, 0x09ee, 0x065c, 0x055d, 0x05f5,
+ 0x0700, 0x0a21, 0x0ad7, 0x071f, 0x05a3, 0x07fe,
+ 0x09eb, 0x09b8, 0x07ed, 0x06b1, 0x0798, 0x0931,
+ 0x094f, 0x07dd, 0x07b2, 0x0900, 0x07b2, 0x048a,
+ 0x0381, 0x0424, 0x04b5, 0x043c, 0x046d, 0x082f,
+ 0x0a2b, 0x05cc, 0x026a, 0x03aa, 0x04b4, 0x04da,
+ 0x0517, 0x03f6, 0x0219, 0x01e0, 0x0384, 0x0433,
+ 0x0324, 0x01ee, 0xff47, 0xfcf7, 0xfeb1, 0xffbd,
+ 0xfdaa, 0xfd2b, 0xfde7, 0xff19, 0x00fd, 0xffc0,
+ 0xfdb2, 0xfde4, 0xfc4e, 0xfba1, 0xfdff, 0xfc0d,
+ 0xf76c, 0xf66f, 0xf603, 0xf4d7, 0xf49a, 0xf453,
+ 0xf54e, 0xf73c, 0xf74d, 0xf74c, 0xf8f4, 0xfa6f,
+ 0xfb22, 0xfb58, 0xfa19, 0xf7c0, 0xf7b4, 0xfa4f,
+ 0xfab3, 0xf944, 0xfa17, 0xfa39, 0xf785, 0xf5d7,
+ 0xf696, 0xf928, 0xfb5b, 0xf968, 0xf6bb, 0xf84f,
+ 0xfa30, 0xf8e5, 0xf76b, 0xf84f, 0xfaca, 0xfb92,
+ 0xf900, 0xf704, 0xf91d, 0xfc40, 0xfc7e, 0xfba0,
+ 0xfc74, 0xfd89, 0xfdce, 0xfdc0, 0xfce9, 0xfd0f,
+ 0xfee9, 0xff9f, 0x00aa, 0x030e, 0x02a2, 0x020d,
+ 0x05f0, 0x0925, 0x082a, 0x05e5, 0x03df, 0x044e,
+ 0x0821, 0x0aff, 0x0ad4, 0x099c, 0x0831, 0x07a0,
+ 0x09b5, 0x0d86, 0x1018, 0x1029, 0x0eec, 0x0eda,
+ 0x1223, 0x16dd, 0x189f, 0x17f2, 0x179a, 0x17a8,
+ 0x193a, 0x1b05, 0x180f, 0x130a, 0x12fb, 0x166c,
+ 0x17ce, 0x15ad, 0x12e9, 0x12ad, 0x12e3, 0x10d1,
+ 0x0f55, 0x0ffd, 0x102a, 0x0efd, 0x0d9a, 0x0d1b,
+ 0x0d30, 0x0c14, 0x0a57, 0x09b3, 0x0989, 0x0911,
+ 0x07f1, 0x060e, 0x0535, 0x0585, 0x04b7, 0x02ba,
+ 0x00b2, 0xffcd, 0x011e, 0x0173, 0xfe5d, 0xfc4a,
+ 0xfc39, 0xfa5f, 0xf927, 0xf9c4, 0xf702, 0xf318,
+ 0xf3ab, 0xf54c, 0xf4e5, 0xf484, 0xf445, 0xf4ae,
+ 0xf617, 0xf5a2, 0xf399, 0xf26e, 0xf1b0, 0xf181,
+ 0xf1ed, 0xf11b, 0xef31, 0xedbc, 0xed44, 0xed1c,
+ 0xec26, 0xeb83, 0xebba, 0xea72, 0xe8b2, 0xe8c5,
+ 0xe922, 0xea28, 0xecc3, 0xedc5, 0xecd8, 0xed1e,
+ 0xee4b, 0xee34, 0xecaa, 0xebd1, 0xec74, 0xebdc,
+ 0xeb18, 0xee2d, 0xf178, 0xf081, 0xef26, 0xefcd,
+ 0xf03a, 0xf06c, 0xf147, 0xf35c, 0xf674, 0xf737,
+ 0xf5ad, 0xf665, 0xf876, 0xf8d1, 0xf8ea, 0xf89e,
+ 0xf77d, 0xf886, 0xfabc, 0xfae3, 0xfa43, 0xf9d6,
+ 0xf963, 0xfa52, 0xfc39, 0xfdb6, 0xfe72, 0xfe55,
+ 0xff80, 0x0259, 0x02a8, 0x0031, 0xff17, 0xffb8,
+ 0x0004, 0xff96, 0xff84, 0x0086, 0x0179, 0x01b1,
+ 0x00fe, 0xfe98, 0xfce7, 0xfe65, 0x0053, 0x00d3,
+ 0x0141, 0x018f, 0x00f8, 0xffd4, 0xff8d, 0x0141,
+ 0x03e3, 0x0684, 0x080b, 0x063c, 0x033e, 0x02d6,
+ 0x0361, 0x02f0, 0x0282, 0x026c, 0x02a8, 0x02e2,
+ 0x0260, 0x01f4, 0x0323, 0x0593, 0x062a, 0x03b1,
+ 0x0154, 0xffc3, 0xfe33, 0xff04, 0x0074, 0xfec8,
+ 0xfc34, 0xfa62, 0xf93b, 0xf9a5, 0xf900, 0xf688,
+ 0xf58a, 0xf51f, 0xf44d, 0xf4fa, 0xf604, 0xf5cf,
+ 0xf48d, 0xf30d, 0xf2e0, 0xf250, 0xeed4, 0xeaed,
+ 0xe9ed, 0xebcf, 0xed39, 0xeb87, 0xe9d6, 0xe9f4,
+ 0xe906, 0xe776, 0xe699, 0xe66f, 0xe7de, 0xe7f3,
+ 0xe56c, 0xe571, 0xe7f1, 0xe91a, 0xea0f, 0xec0b,
+ 0xee41, 0xeee5, 0xecee, 0xec8a, 0xefe3, 0xf229,
+ 0xf09e, 0xedb4, 0xedd0, 0xf19c, 0xf2f2, 0xf01d,
+ 0xee3d, 0xee32, 0xeedf, 0xeff7, 0xf016, 0xf1c7,
+ 0xf60d, 0xf7ab, 0xf5eb, 0xf443, 0xf3c8, 0xf4dd,
+ 0xf5ad, 0xf55a, 0xf754, 0xfa83, 0xfa8a, 0xf8fc,
+ 0xf966, 0xfbe9, 0xfe25, 0xfe7b, 0xfefc, 0x00b2,
+ 0x0140, 0x00d2, 0x010d, 0x0121, 0x007b, 0xff8c,
+ 0xfede, 0xff20, 0x0028, 0x0175, 0x01ed, 0x010e,
+ 0x01f7, 0x0567, 0x05f8, 0x032f, 0x02ab, 0x0401,
+ 0x0355, 0x017b, 0xffbc, 0xfe1f, 0xfd72, 0xfcfe,
+ 0xfd4d, 0x0037, 0x01f0, 0xfefe, 0xfc64, 0xfdf5,
+ 0x0034, 0xff95, 0xfc91, 0xfaad, 0xfba6, 0xfc46,
+ 0xfa65, 0xf7f4, 0xf654, 0xf5b7, 0xf65e, 0xf812,
+ 0xfa09, 0xfa34, 0xf7cc, 0xf540, 0xf42b, 0xf447,
+ 0xf528, 0xf5e6, 0xf702, 0xf8e2, 0xf89e, 0xf61e,
+ 0xf608, 0xf909, 0xfbcf, 0xfd9c, 0xfec8, 0xfed3,
+ 0xfe6d, 0xfe45, 0xfdd7, 0xfd6a, 0xfdd0, 0xfedc,
+ 0xffeb, 0x0096, 0x0117, 0x018d, 0x0101, 0x009c,
+ 0x03d6, 0x09cb, 0x0db8, 0x0e02, 0x0c2d, 0x09d5,
+ 0x07f5, 0x06a7, 0x0612, 0x0635, 0x0688, 0x0811,
+ 0x0b8e, 0x0de5, 0x0c2b, 0x08b0, 0x076a, 0x088b,
+ 0x09b5, 0x096c, 0x07df, 0x073b, 0x0967, 0x0c7f,
+ 0x0cd2, 0x0972, 0x060c, 0x0691, 0x07db, 0x0632,
+ 0x05dc, 0x0850, 0x09c2, 0x0b67, 0x0d3e, 0x0c5a,
+ 0x0b0f, 0x09a9, 0x06d5, 0x0742, 0x0a6f, 0x0a8f,
+ 0x08f0, 0x0817, 0x079c, 0x07e0, 0x0729, 0x04a7,
+ 0x0375, 0x04a0, 0x0677, 0x0765, 0x072a, 0x0748,
+ 0x0866, 0x09ca, 0x0986, 0x056d, 0x00b3, 0x0016,
+ 0x020d, 0x0304, 0x0121, 0xfd7c, 0xfc19, 0xfc25,
+ 0xfad9, 0xfac8, 0xfb8b, 0xfaa3, 0xfab2, 0xfbb2,
+ 0xfbb4, 0xfcd6, 0xfeaf, 0xff6f, 0xffab, 0xfe46,
+ 0xfc62, 0xfd2c, 0xfd71, 0xf9bf, 0xf60b, 0xf656,
+ 0xf8c7, 0xf999, 0xf89a, 0xf8a4, 0xfa0f, 0xfa32,
+ 0xf856, 0xf74c, 0xf9be, 0xfdd3, 0xff40, 0xfe20,
+ 0xfde9, 0xfe6b, 0xfd20, 0xfa94, 0xf8ab, 0xf7fd,
+ 0xf803, 0xf6fe, 0xf5b9, 0xf74c, 0xf998, 0xf97b,
+ 0xf939, 0xf96a, 0xf97d, 0xfb06, 0xfafa, 0xf80e,
+ 0xf847, 0xfbf5, 0xfe2a, 0xfe0b, 0xfbdd, 0xf9a0,
+ 0xfa4d, 0xfc28, 0xfd49, 0xfdbd, 0xfd76, 0xfe21,
+ 0xfef9, 0xfe45, 0xff5a, 0x026f, 0x0342, 0x026d,
+ 0x028f, 0x047f, 0x07b5, 0x0989, 0x0a23, 0x0bd5,
+ 0x0d38, 0x0d29, 0x0cca, 0x0cf2, 0x0ee6, 0x1137,
+ 0x1089, 0x0eb3, 0x0f13, 0x1061, 0x110e, 0x121d,
+ 0x1361, 0x13c0, 0x14e4, 0x1796, 0x187a, 0x164e,
+ 0x133b, 0x10e4, 0x10db, 0x1145, 0x0edb, 0x0d16,
+ 0x0ddd, 0x0d50, 0x0cfe, 0x0f38, 0x10c8, 0x10ff,
+ 0x0f8e, 0x0b86, 0x09a9, 0x0b60, 0x0af4, 0x07a4,
+ 0x0504, 0x0405, 0x04be, 0x065e, 0x0698, 0x04f4,
+ 0x02ee, 0x01db, 0x01f7, 0x018d, 0xff3b, 0xfe14,
+ 0x0100, 0x0374, 0x0099, 0xfbf4, 0xfa65, 0xfae0,
+ 0xf9f9, 0xf803, 0xf864, 0xfa0e, 0xf978, 0xf898,
+ 0xf955, 0xfa06, 0xfb15, 0xfbd3, 0xfa9f, 0xf999,
+ 0xf8b1, 0xf650, 0xf485, 0xf3f8, 0xf466, 0xf5ef,
+ 0xf63f, 0xf617, 0xf708, 0xf5da, 0xf3bc, 0xf442,
+ 0xf4d9, 0xf521, 0xf6fc, 0xf778, 0xf595, 0xf393,
+ 0xf236, 0xf2d1, 0xf5ae, 0xf831, 0xf88d, 0xf76c,
+ 0xf7c4, 0xfaec, 0xfd21, 0xfc0f, 0xfb50, 0xfda8,
+ 0xffb9, 0xfdcb, 0xfb62, 0xfcbb, 0xfe72, 0xfdbd,
+ 0xfd68, 0xfe96, 0x0077, 0x024b, 0x02c1, 0x0381,
+ 0x0674, 0x08e1, 0x0900, 0x087c, 0x0825, 0x07a0,
+ 0x0702, 0x069d, 0x05f0, 0x0448, 0x030b, 0x0377,
+ 0x0514, 0x0875, 0x0c11, 0x0b9b, 0x0851, 0x0781,
+ 0x09a0, 0x0b30, 0x0a53, 0x0897, 0x07ea, 0x0762,
+ 0x05c5, 0x0364, 0x0112, 0x007d, 0x0199, 0x0291,
+ 0x039b, 0x03d4, 0x01ac, 0x00b8, 0x02e6, 0x0446,
+ 0x0394, 0x01de, 0xff77, 0xfee5, 0x00b2, 0x021a,
+ 0x039f, 0x0690, 0x08cc, 0x08e9, 0x0833, 0x0844,
+ 0x089e, 0x07dd, 0x0840, 0x0c0d, 0x0f3a, 0x0e0d,
+ 0x0aeb, 0x08c2, 0x08dd, 0x0b58, 0x0c27, 0x07ff,
+ 0x034e, 0x031a, 0x0505, 0x04ae, 0x028d, 0x022b,
+ 0x0390, 0x025f, 0xfee7, 0xff42, 0x031d, 0x0443,
+ 0x02e0, 0x0349, 0x04f9, 0x048a, 0x01a7, 0xff61,
+ 0xff48, 0xff88, 0xfef2, 0xfe37, 0xfdde, 0xfdbe,
+ 0xfce9, 0xfbbe, 0xfb7c, 0xfab2, 0xf93c, 0xf9e9,
+ 0xfb90, 0xfb94, 0xfb84, 0xfc74, 0xfd72, 0xfe54,
+ 0xfeab, 0xfdda, 0xfd1e, 0xfe9f, 0x0178, 0x0261,
+ 0x0223, 0x0310, 0x03f1, 0x050f, 0x05e3, 0x02c4,
+ 0xffb4, 0x024b, 0x056f, 0x056a, 0x04ef, 0x03b8,
+ 0x0242, 0x02a3, 0x02e8, 0x0251, 0x025a, 0x01e9,
+ 0x00e6, 0x0138, 0x0217, 0x0162, 0xffc1, 0xff3a,
+ 0x001c, 0x020d, 0x04fb, 0x081b, 0x0aa3, 0x0bd8,
+ 0x0bbf, 0x0bdf, 0x0b96, 0x0a55, 0x0b26, 0x0caf,
+ 0x0af8, 0x08d7, 0x0829, 0x06c2, 0x064e, 0x07a4,
+ 0x07f6, 0x0631, 0x0372, 0x03ae, 0x0820, 0x0a0b,
+ 0x06c8, 0x0370, 0x0242, 0x033d, 0x0572, 0x05dd,
+ 0x04d1, 0x036d, 0x009b, 0xfe8e, 0xff45, 0xffd2,
+ 0xfe27, 0xfc38, 0xfcd2, 0xff48, 0x0000, 0xfe53,
+ 0xfb31, 0xf6a3, 0xf42f, 0xf682, 0xf932, 0xf865,
+ 0xf5ce, 0xf3cc, 0xf34f, 0xf402, 0xf464, 0xf376,
+ 0xf218, 0xf309, 0xf790, 0xfc2b, 0xfcda, 0xfa8f,
+ 0xf94c, 0xfb8a, 0xff1b, 0xfef0, 0xfb34, 0xf9b0,
+ 0xfb73, 0xfcee, 0xfe24, 0xffaa, 0x0004, 0x009e,
+ 0x0267, 0x02c5, 0x01ed, 0x01d5, 0x0149, 0x0075,
+ 0x0251, 0x0660, 0x0861, 0x06c0, 0x0486, 0x0465,
+ 0x05e5, 0x070e, 0x0587, 0x01ee, 0x00d6, 0x02d4,
+ 0x03b7, 0x0365, 0x03e7, 0x03d6, 0x0314, 0x039e,
+ 0x0471, 0x0409, 0x0379, 0x0348, 0x0308, 0x030e,
+ 0x0369, 0x03f1, 0x0453, 0x0346, 0x00d8, 0xfeeb,
+ 0xff10, 0x020f, 0x04ee, 0x0318, 0x001b, 0x01e3,
+ 0x04c4, 0x0485, 0x0417, 0x04ff, 0x0601, 0x072c,
+ 0x0813, 0x087e, 0x0885, 0x0717, 0x0575, 0x05ef,
+ 0x06d3, 0x0644, 0x0590, 0x04cb, 0x03e8, 0x058e,
+ 0x08ee, 0x0940, 0x06b3, 0x04c1, 0x038c, 0x02d7,
+ 0x0313, 0x02d0, 0x01c8, 0x019d, 0x02a1, 0x0353,
+ 0x018a, 0xfd9e, 0xfb15, 0xfb67, 0xfc69, 0xfc1d,
+ 0xfa62, 0xf7e8, 0xf5ee, 0xf6f0, 0xfa60, 0xfae1,
+ 0xf884, 0xf888, 0xf9b1, 0xfa32, 0xfcc6, 0xff44,
+ 0xfebb, 0xfd78, 0xfc19, 0xfa74, 0xf980, 0xf811,
+ 0xf6bf, 0xf75e, 0xf8b6, 0xf9fd, 0xfaa5, 0xf948,
+ 0xf7b7, 0xf8ad, 0xfb36, 0xfc69, 0xfbb3, 0xfc0d,
+ 0xfe89, 0x008f, 0x0177, 0x01ee, 0x0190, 0x00cb,
+ 0x002e, 0x002a, 0x00a2, 0xfff8, 0xff46, 0x00c7,
+ 0x0270, 0x02d6, 0x036f, 0x03e8, 0x038a, 0x02a4,
+ 0x0144, 0x000e, 0xff52, 0xfea1, 0xfe77, 0xff65,
+ 0x0072, 0x0000, 0xfea9, 0xfe43, 0xfe7a, 0x001d,
+ 0x0505, 0x09cc, 0x0b50, 0x0c38, 0x0dc0, 0x0e65,
+ 0x0de7, 0x0c1f, 0x09a5, 0x08b4, 0x0a4b, 0x0c33,
+ 0x0b6d, 0x091a, 0x0825, 0x08b5, 0x0b2a, 0x0e55,
+ 0x0e08, 0x0bf9, 0x0ce1, 0x0f7c, 0x11eb, 0x13e4,
+ 0x13d4, 0x1271, 0x11d0, 0x129b, 0x1505, 0x16ef,
+ 0x15dd, 0x1298, 0x0ed7, 0x0c18, 0x0b04, 0x0a82,
+ 0x0a31, 0x09b5, 0x080b, 0x06ca, 0x0713, 0x0617,
+ 0x02ec, 0x0130, 0x024c, 0x02da, 0x0163, 0x009d,
+ 0x0103, 0x0037, 0xfe2b, 0xfd4d, 0xff24, 0x01b9,
+ 0x0257, 0x026b, 0x0398, 0x03d5, 0x0233, 0xff67,
+ 0xfb95, 0xf8f3, 0xf9c9, 0xfba3, 0xfb38, 0xf9a4,
+ 0xf8cc, 0xf829, 0xf83c, 0xf9f5, 0xfb71, 0xfb2c,
+ 0xf9ac, 0xf8e0, 0xfbac, 0xffd2, 0x003a, 0xff08,
+ 0xffb2, 0x0024, 0xff34, 0xfe0e, 0xfd9c, 0xfd66,
+ 0xfbd9, 0xfb1f, 0xfcef, 0xfd95, 0xfc5e, 0xfa74,
+ 0xf6eb, 0xf57a, 0xf789, 0xf7ea, 0xf705, 0xf86b,
+ 0xfb90, 0xfedc, 0x0020, 0xfff3, 0x00fb, 0x01a0,
+ 0x0189, 0x0287, 0x02ab, 0x01b9, 0x018d, 0x0260,
+ 0x048b, 0x0523, 0x01f2, 0xff37, 0xfede, 0x0019,
+ 0x0312, 0x0421, 0x023e, 0x01ce, 0x02db, 0x038a,
+ 0x0485, 0x0560, 0x0569, 0x0449, 0x02b0, 0x02bd,
+ 0x03e9, 0x04b7, 0x0590, 0x0633, 0x0635, 0x0556,
+ 0x04a2, 0x06f0, 0x0999, 0x085f, 0x06da, 0x0655,
+ 0x02ff, 0xff5c, 0xfe50, 0xfcfe, 0xfb11, 0xf9fc,
+ 0xf906, 0xf8a6, 0xf970, 0xfa69, 0xfb4f, 0xfc3c,
+ 0xfccf, 0xfc97, 0xfc39, 0xfe5d, 0x027e, 0x03a4,
+ 0x01a1, 0xfff0, 0xfe1f, 0xfcec, 0xfde6, 0xfdf6,
+ 0xfd08, 0xfd65, 0xfcea, 0xfc6f, 0xfd8a, 0xfce4,
+ 0xfc28, 0xfe38, 0xff9a, 0xffd2, 0xffc6, 0xfe49,
+ 0xfe06, 0xff04, 0xfe06, 0xfc8e, 0xfb6f, 0xfb39,
+ 0xfd92, 0xfd3b, 0xf81d, 0xf5dd, 0xf760, 0xf7ba,
+ 0xf8e1, 0xfbef, 0xfb53, 0xf67d, 0xf46c, 0xf68b,
+ 0xf858, 0xf987, 0xf999, 0xf6e5, 0xf5b1, 0xf75e,
+ 0xf809, 0xf827, 0xf7ac, 0xf60b, 0xf6b1, 0xf77e,
+ 0xf4de, 0xf383, 0xf4ec, 0xf486, 0xf2d4, 0xf31f,
+ 0xf467, 0xf473, 0xf428, 0xf461, 0xf4a9, 0xf726,
+ 0xfb8c, 0xfd01, 0xfc36, 0xfd1d, 0xfea6, 0xfecc,
+ 0xfe1b, 0xfea1, 0x0028, 0xff68, 0xfe0f, 0xff74,
+ 0x010b, 0x018e, 0x017a, 0x0104, 0x0332, 0x05c4,
+ 0x043b, 0x0288, 0x0273, 0x012d, 0xfff5, 0x0009,
+ 0x01a5, 0x02bf, 0xfee2, 0xf9cf, 0xf94e, 0xfa84,
+ 0xfb5b, 0xfd0f, 0xffea, 0x0338, 0x038b, 0x00ee,
+ 0x0025, 0x01e5, 0x0403, 0x043f, 0x0343, 0x0504,
+ 0x0589, 0x0090, 0xfd32, 0xfde2, 0xfea6, 0xff15,
+ 0xfd39, 0xfaf7, 0xfd25, 0xff7b, 0xfee8, 0xfda4,
+ 0xfbb1, 0xfc60, 0xffff, 0x0013, 0xfda4, 0xfcb0,
+ 0xfbe7, 0xfbf8, 0xfd68, 0xfd92, 0xfc9d, 0xfc58,
+ 0xfb7d, 0xf886, 0xf6e4, 0xf878, 0xf798, 0xf3be,
+ 0xf2a8, 0xf290, 0xf17a, 0xf32d, 0xf5d1, 0xf58b,
+ 0xf4c4, 0xf4d7, 0xf321, 0xf039, 0xefe4, 0xf1b7,
+ 0xf36e, 0xf5c2, 0xf679, 0xf3ac, 0xf283, 0xf47e,
+ 0xf5c9, 0xf645, 0xf61a, 0xf4f5, 0xf43e, 0xf490,
+ 0xf651, 0xf6f0, 0xf473, 0xf3a0, 0xf471, 0xf396,
+ 0xf5d2, 0xfabd, 0xfbda, 0xfb78, 0xfd18, 0xff87,
+ 0x0226, 0x03f3, 0x0530, 0x06b2, 0x071f, 0x06b8,
+ 0x062c, 0x04fb, 0x0398, 0x02e9, 0x03c6, 0x0340,
+ 0xfeaf, 0xfc46, 0xfeb5, 0x006b, 0x013f, 0x01e5,
+ 0x0078, 0xff08, 0xfe24, 0xfe12, 0xffb5, 0xff23,
+ 0xfd85, 0xfed9, 0xff68, 0xff40, 0x0079, 0xfee8,
+ 0xfc68, 0xfd36, 0xfe9e, 0xfffb, 0x0121, 0xffb1,
+ 0xfe92, 0x0028, 0x0107, 0x004f, 0x008c, 0x0033,
+ 0xfd5c, 0xfc29, 0xfdb6, 0xfdd6, 0xfe65, 0xffe8,
+ 0xfd34, 0xf9d3, 0xfa86, 0xfb3f, 0xfb57, 0xfcbc,
+ 0xfe13, 0xfeff, 0xfe18, 0xfa20, 0xf5c8, 0xf4c2,
+ 0xf89f, 0xfbfe, 0xf9c2, 0xf6a1, 0xf4c9, 0xf2de,
+ 0xf425, 0xf5d0, 0xf4b7, 0xf690, 0xf94f, 0xf660,
+ 0xf1d4, 0xf175, 0xf4ad, 0xf704, 0xf6e8, 0xf7f6,
+ 0xf8b7, 0xf6e8, 0xf6ce, 0xf651, 0xf0d9, 0xeb14,
+ 0xe96e, 0xec03, 0xef8b, 0xee9f, 0xebf6, 0xec06,
+ 0xebb1, 0xeab1, 0xebf7, 0xee88, 0xefdc, 0xeef2,
+ 0xef7f, 0xf340, 0xf35f, 0xee20, 0xea50, 0xea97,
+ 0xed0a, 0xeee7, 0xeec9, 0xee2b, 0xee08, 0xefba,
+ 0xf29a, 0xf29e, 0xf257, 0xf571, 0xf80a, 0xf9d8,
+ 0xfb86, 0xf89e, 0xf467, 0xf5dd, 0xfa78, 0xfc1f,
+ 0xf9a7, 0xf7c3, 0xf904, 0xf953, 0xf956, 0xfc72,
+ 0xfe4b, 0xfcdc, 0xfbed, 0xfca0, 0x000b, 0x0526,
+ 0x065e, 0x0491, 0x0616, 0x0993, 0x0907, 0x064a,
+ 0x06c8, 0x07e9, 0x0676, 0x0632, 0x080b, 0x0952,
+ 0x09f8, 0x0925, 0x0742, 0x07a3, 0x0ae4, 0x0ef1,
+ 0x0f76, 0x0af0, 0x0895, 0x0a65, 0x09d1, 0x0812,
+ 0x08bf, 0x09da, 0x0c18, 0x0e0b, 0x0aa3, 0x0558,
+ 0x04c1, 0x079f, 0x0943, 0x085a, 0x06f2, 0x0555,
+ 0x021f, 0xffe1, 0x0123, 0x02f6, 0x0203, 0xffac,
+ 0xff76, 0x008e, 0xffa3, 0xfee5, 0x00cf, 0x027b,
+ 0x0268, 0x0114, 0xff65, 0xff61, 0xfeb4, 0xfb66,
+ 0xf9e7, 0xfa71, 0xf98d, 0xf8ec, 0xf903, 0xf7d9,
+ 0xf720, 0xf74b, 0xf5fb, 0xf5d4, 0xfb5a, 0x0096,
+ 0xfdc2, 0xfa71, 0xfd3e, 0xfeb3, 0xfe6e, 0x0142,
+ 0x0322, 0x0401, 0x0524, 0x035f, 0x03cd, 0x06b7,
+ 0x041a, 0x0183, 0x036b, 0x029e, 0xffe9, 0xfec7,
+ 0xfef6, 0x0173, 0x0187, 0xfe2b, 0xfd5a, 0xfbc4,
+ 0xf8a7, 0xfa66, 0xfbcd, 0xf8c1, 0xf880, 0xfb8a,
+ 0xfd1e, 0xfe24, 0x0006, 0x00b9, 0xffab, 0x007f,
+ 0x01f5, 0xfe72, 0xfb0a, 0xfd59, 0xfed0, 0xfe35,
+ 0x0028, 0x00c0, 0xfe15, 0xfdc6, 0x01b5, 0x0671,
+ 0x0896, 0x08bd, 0x0947, 0x0a6b, 0x0d26, 0x0fe2,
+ 0x0cd8, 0x071b, 0x06d5, 0x08c9, 0x07de, 0x0851,
+ 0x0a35, 0x07a9, 0x0401, 0x057f, 0x0835, 0x07f1,
+ 0x0738, 0x0791, 0x08a6, 0x0961, 0x07d5, 0x04f7,
+ 0x0305, 0x03bf, 0x0673, 0x0525, 0x0011, 0xfefb,
+ 0x0061, 0x0072, 0x0235, 0x0377, 0x0138, 0xffe8,
+ 0x0173, 0x034d, 0x032f, 0x01e3, 0x02bc, 0x0346,
+ 0x0096, 0xffab, 0x01c4, 0x0315, 0x024f, 0xfe89,
+ 0xfc2d, 0xffda, 0x0292, 0x00f8, 0x00d0, 0x0140,
+ 0x00b0, 0x02a5, 0x05e2, 0x07cc, 0x08da, 0x0866,
+ 0x0779, 0x0725, 0x037c, 0xfe05, 0x0068, 0x0801,
+ 0x0693, 0xfedf, 0xfec6, 0x01b9, 0xfe43, 0xfc60,
+ 0x0134, 0x037d, 0x009c, 0xfeff, 0xff72, 0xffb3,
+ 0xff98, 0xfde7, 0xfb7a, 0xfb68, 0xfc1c, 0xfb65,
+ 0xfbed, 0xfef1, 0x0142, 0x0085, 0xff43, 0x01b0,
+ 0x063b, 0x0806, 0x0643, 0x0342, 0x022e, 0x0314,
+ 0x0345, 0x05e4, 0x0b3b, 0x09db, 0x030c, 0x01fd,
+ 0x05ba, 0x0868, 0x0ab1, 0x0c76, 0x0c17, 0x0a63,
+ 0x092c, 0x099e, 0x0bb2, 0x0d5d, 0x0b42, 0x0764,
+ 0x06d9, 0x0628, 0x0263, 0x0122, 0x033a, 0x0689,
+ 0x09ef, 0x07ac, 0x01c7, 0x00bf, 0x02b7, 0x0426,
+ 0x0601, 0x07f0, 0x0a01, 0x0a77, 0x08a9, 0x066c,
+ 0x0371, 0x0460, 0x08b8, 0x062c, 0x03c6, 0x0937,
+ 0x0952, 0x046e, 0x03d4, 0x0320, 0x04ea, 0x09b4,
+ 0x06ea, 0x00d0, 0xff93, 0x0192, 0x059f, 0x068d,
+ 0x036a, 0x028b, 0x0083, 0xfbdc, 0xfad2, 0xfbcb,
+ 0xfc0c, 0xfbc5, 0xfac8, 0xfc0c, 0xfd8c, 0xfc4a,
+ 0xfe70, 0x043c, 0x04c0, 0xff62, 0xfcca, 0x00cb,
+ 0x0553, 0x0589, 0x01ff, 0xfbff, 0xf876, 0xf830,
+ 0xf6b2, 0xf826, 0xfad4, 0xf5cf, 0xf1ba, 0xf52f,
+ 0xf7ee, 0xf9f4, 0xfc0f, 0xfc6a, 0xff30, 0x006d,
+ 0xfe4a, 0x0066, 0x02dc, 0x0273, 0x03af, 0x01a6,
+ 0xfcdd, 0xfdf5, 0x019e, 0x01da, 0xffcc, 0xfd9a,
+ 0xfaab, 0xf658, 0xf7ae, 0xffaa, 0x01f8, 0x00bb,
+ 0x04dd, 0x05d0, 0x028f, 0x0602, 0x0b6f, 0x0a5f,
+ 0x07b2, 0x0860, 0x0a6a, 0x0c29, 0x0d9d, 0x0c4f,
+ 0x0867, 0x0655, 0x04d2, 0x0201, 0x01bf, 0x03d3,
+ 0x0651, 0x08af, 0x07cc, 0x0612, 0x06b9, 0x0669,
+ 0x0696, 0x07fb, 0x05e1, 0x0353, 0x037d, 0x0366,
+ 0x044f, 0x0728, 0x094c, 0x094c, 0x06a0, 0x045f,
+ 0x0545, 0x0767, 0x0987, 0x095c, 0x060e, 0x03ce,
+ 0x0280, 0x00ee, 0x018f, 0x0247, 0x00f4, 0xff14,
+ 0xfd60, 0xfdb1, 0xfeb2, 0xfebf, 0x0233, 0x06aa,
+ 0x063f, 0x0492, 0x044b, 0x0573, 0x08ea, 0x097a,
+ 0x0570, 0x035e, 0x052f, 0x0647, 0x0275, 0xfe7f,
+ 0x0113, 0x0243, 0xfeb1, 0x023d, 0x0932, 0x0618,
+ 0xfe77, 0xfce8, 0xff50, 0xfe4f, 0xfa8e, 0xfac8,
+ 0xfb32, 0xf755, 0xf704, 0xf9a8, 0xf984, 0xfa85,
+ 0xfa18, 0xf679, 0xf7c5, 0xfa52, 0xf934, 0xfa1c,
+ 0xfab2, 0xf8ba, 0xf846, 0xf7aa, 0xf848, 0xfb6e,
+ 0xfc8d, 0xfe5e, 0x0018, 0xfd83, 0xff48, 0x04c4,
+ 0x0529, 0x0650, 0x04f5, 0xfb1e, 0xf8d6, 0xfe2c,
+ 0xfbb8, 0xfa0b, 0xfd6c, 0xfaa9, 0xf747, 0xf949,
+ 0xfac6, 0xfbd1, 0xfcff, 0xfee5, 0x02dc, 0x00b3,
+ 0xfa23, 0xfbba, 0xffa5, 0xfe87, 0xfeb0, 0xfdfb,
+ 0xfb00, 0xfdfd, 0x0356, 0x036a, 0x01f7, 0x0255,
+ 0x0334, 0x02bd, 0x01c6, 0x0456, 0x063a, 0x01e2,
+ 0xff7f, 0x02b1, 0x044b, 0x055d, 0x07bd, 0x0863,
+ 0x0a27, 0x0b57, 0x0752, 0x063e, 0x0b2a, 0x0cf3,
+ 0x0ca2, 0x0ee0, 0x0f67, 0x0e66, 0x0f83, 0x1192,
+ 0x1535, 0x19b4, 0x1a75, 0x18ef, 0x17d5, 0x15d5,
+ 0x1569, 0x1648, 0x1353, 0x1081, 0x10ce, 0x0d02,
+ 0x07ec, 0x0a6c, 0x0df2, 0x0a7d, 0x0584, 0x0517,
+ 0x06fe, 0x067b, 0x0545, 0x0710, 0x06d8, 0x025c,
+ 0xffc7, 0xfe38, 0xfc5a, 0xff30, 0x0268, 0x005d,
+ 0xff51, 0x023c, 0x03ea, 0x0273, 0x00ed, 0x007f,
+ 0xfe0b, 0xfb73, 0xfd03, 0xfdfc, 0xfc71, 0xfae5,
+ 0xf601, 0xf2db, 0xf66e, 0xf685, 0xf4e2, 0xf8a6,
+ 0xf832, 0xf4d3, 0xf63a, 0xf5d2, 0xf638, 0xfa9d,
+ 0xfa4a, 0xfa0a, 0xfcf6, 0xfad7, 0xf9d9, 0xfc88,
+ 0xfbcf, 0xfdf1, 0x010b, 0xfae7, 0xf528, 0xf76c,
+ 0xf9a4, 0xf86c, 0xf6a3, 0xf899, 0xfd4f, 0xfde9,
+ 0xfcdd, 0xfc00, 0xf743, 0xf79b, 0xfeca, 0xfe98,
+ 0xfc10, 0xffe1, 0xff70, 0xfba3, 0xfc75, 0xfb93,
+ 0xf8f7, 0xf8ff, 0xf76c, 0xf61a, 0xf750, 0xf71b,
+ 0xf86a, 0xfbcd, 0xfbaf, 0xf9e4, 0xf981, 0xfb74,
+ 0xff63, 0xfe7c, 0xf9fc, 0xfadd, 0xfde2, 0xfef6,
+ 0xffa8, 0xfdd6, 0xfde4, 0x0246, 0x014d, 0xfd43,
+ 0xff4c, 0x022a, 0x01da, 0x0192, 0x01ce, 0x0313,
+ 0x048c, 0x049a, 0x0473, 0x041f, 0x040a, 0x0442,
+ 0x032a, 0x0318, 0x0497, 0x0593, 0x0835, 0x0a02,
+ 0x06a9, 0x0368, 0x0438, 0x05ab, 0x0457, 0x022a,
+ 0x0447, 0x05f7, 0x01cd, 0x011e, 0x046c, 0x020b,
+ 0x003d, 0x030a, 0x01e5, 0xfeeb, 0xffb9, 0x016a,
+ 0x0278, 0x02f3, 0x00f0, 0xfc79, 0xfba9, 0x01d0,
+ 0x05e9, 0x0560, 0x06c6, 0x0475, 0xfe8f, 0xff77,
+ 0x0040, 0xfd88, 0x0064, 0x010e, 0xfa32, 0xf67a,
+ 0xf6ba, 0xf762, 0xf88f, 0xf8c4, 0xfa48, 0xfa82,
+ 0xf661, 0xf70e, 0xfaf0, 0xf740, 0xf1cd, 0xf0c0,
+ 0xefd4, 0xef13, 0xf048, 0xf30d, 0xf609, 0xf67b,
+ 0xf633, 0xf773, 0xf82f, 0xf9ef, 0xfd69, 0xfdec,
+ 0xfc68, 0xfd0b, 0xfc93, 0xf92f, 0xf93b, 0xfc89,
+ 0xfb33, 0xf7e9, 0xf9db, 0xfd65, 0xff2a, 0x0281,
+ 0x0751, 0x097b, 0x0811, 0x0870, 0x0c5e, 0x0d35,
+ 0x0be6, 0x0c8a, 0x0b46, 0x0c37, 0x10c3, 0x0cf2,
+ 0x06fc, 0x0a24, 0x0b1b, 0x080d, 0x0a86, 0x0e12,
+ 0x0f84, 0x0ea7, 0x093f, 0x066a, 0x07d5, 0x07d5,
+ 0x0907, 0x09b6, 0x06f3, 0x0696, 0x073c, 0x05b6,
+ 0x0551, 0x047d, 0x036e, 0x0484, 0x047c, 0x04c5,
+ 0x0620, 0x03cb, 0x029b, 0x06ca, 0x0868, 0x051a,
+ 0x0381, 0x0526, 0x055c, 0x03f1, 0x0644, 0x089c,
+ 0x045a, 0x02a6, 0x08dd, 0x0b2e, 0x0690, 0x029b,
+ 0x00a4, 0x007e, 0x0072, 0xfd45, 0xfb36, 0xfab3,
+ 0xf678, 0xf560, 0xfa04, 0xf842, 0xf490, 0xf978,
+ 0xfa4d, 0xf477, 0xf719, 0xfaa0, 0xf5a4, 0xf569,
+ 0xfa2a, 0xf87f, 0xf521, 0xf638, 0xf94c, 0xfad6,
+ 0xf8e4, 0xf805, 0xf967, 0xf7c8, 0xf7e3, 0xfc17,
+ 0xfc2f, 0xfb04, 0xfc6a, 0xf968, 0xf5f7, 0xf8e2,
+ 0xfa5e, 0xf84b, 0xf9e0, 0xfbe6, 0xf84a, 0xf5bf,
+ 0xfb09, 0xffdd, 0xfd10, 0xfbc6, 0x006e, 0x018b,
+ 0xff44, 0x012b, 0x03f1, 0x04bf, 0x06fa, 0x08a6,
+ 0x0828, 0x0834, 0x08c2, 0x0964, 0x08b2, 0x062d,
+ 0x062f, 0x056d, 0x01d3, 0x0626, 0x0af7, 0x03dd,
+ 0x03fc, 0x0d38, 0x07a2, 0x0001, 0x05ee, 0x07af,
+ 0x05e2, 0x0a59, 0x0a90, 0x07fa, 0x094b, 0x07d8,
+ 0x0476, 0x0367, 0x0542, 0x0ae5, 0x0bef, 0x06e7,
+ 0x0820, 0x0b9d, 0x06b4, 0x027a, 0x06a7, 0x09ef,
+ 0x081d, 0x07dc, 0x0707, 0x01bf, 0x0098, 0x02d3,
+ 0xffc7, 0xfdb4, 0xfe44, 0xfba1, 0xfb38, 0xfb4c,
+ 0xf780, 0xf835, 0xfbc6, 0xfccb, 0xfda5, 0xfb80,
+ 0xfb6f, 0x012b, 0x0150, 0xffe3, 0x021c, 0xfd17,
+ 0xf7cb, 0xf9e6, 0xfab7, 0xfd03, 0xfee3, 0xf9c4,
+ 0xf9f5, 0xff13, 0xfbcc, 0xf620, 0xf5b5, 0xf85e,
+ 0xfa1f, 0xf80d, 0xf811, 0xfa9b, 0xf75b, 0xf28a,
+ 0xf21c, 0xf3e4, 0xf59c, 0xf3b2, 0xf1a7, 0xf24e,
+ 0xef24, 0xee43, 0xf37b, 0xf1f9, 0xece7, 0xed2b,
+ 0xed60, 0xed46, 0xed99, 0xedad, 0xf0cc, 0xf198,
+ 0xf0c1, 0xf448, 0xf28f, 0xed3d, 0xf018, 0xf2a3,
+ 0xf04a, 0xef6b, 0xedd1, 0xebf6, 0xeb8d, 0xeb77,
+ 0xeec9, 0xf110, 0xee6a, 0xeef2, 0xf2a2, 0xf2a5,
+ 0xf11f, 0xf347, 0xf892, 0xf9a2, 0xf4e8, 0xf2e6,
+ 0xf536, 0xf711, 0xf771, 0xf8b9, 0xfd14, 0xfddc,
+ 0xf96e, 0xfb1d, 0xfe02, 0xfa2b, 0xfaa1, 0xfd6d,
+ 0xfbd6, 0xfdf3, 0xff44, 0xfc81, 0xff9c, 0x037a,
+ 0x024d, 0x00ae, 0x0053, 0x0589, 0x0a7d, 0x06d2,
+ 0x0732, 0x0d18, 0x0d5b, 0x0da2, 0x0eb9, 0x0d6b,
+ 0x0dc7, 0x0a02, 0x05b6, 0x0983, 0x091f, 0x0575,
+ 0x087e, 0x064d, 0x00b7, 0x0469, 0x06fe, 0x0304,
+ 0x0108, 0x01d1, 0x02a2, 0x00ae, 0xfe17, 0xffdd,
+ 0xfef6, 0xfa54, 0xfc7e, 0xfe46, 0xf74c, 0xf4a6,
+ 0xf985, 0xf906, 0xf45c, 0xf5b0, 0xfbd7, 0xfe6c,
+ 0xfa1d, 0xf5d7, 0xf7a5, 0xf94b, 0xf7af, 0xf802,
+ 0xf759, 0xf4ae, 0xf5b4, 0xf5f0, 0xf543, 0xf9bf,
+ 0xf9fc, 0xf570, 0xf853, 0xf9bc, 0xf467, 0xf614,
+ 0xfbef, 0xfc82, 0xfab8, 0xf6de, 0xf374, 0xf4dd,
+ 0xf5c6, 0xf571, 0xf707, 0xf4ad, 0xf059, 0xf4bb,
+ 0xfb0a, 0xf8b3, 0xf7e5, 0xfb02, 0xf6aa, 0xf572,
+ 0xfc90, 0xf8e5, 0xf3a4, 0xfcd6, 0xffe2, 0xf8b5,
+ 0xf810, 0xf7a9, 0xf4db, 0xf6c1, 0xf829, 0xf80c,
+ 0xf7f6, 0xf646, 0xf743, 0xfb43, 0x0040, 0x0359,
+ 0xfff6, 0xff72, 0x0386, 0xff61, 0xfcc3, 0x03d8,
+ 0x06dc, 0x06e0, 0x0844, 0x0502, 0x0286, 0x04c2,
+ 0x0682, 0x04c5, 0xffa9, 0xfed9, 0x015f, 0xfd13,
+ 0xfaa9, 0xff18, 0xfd1a, 0xf666, 0xf622, 0xfbb4,
+ 0xfd9f, 0xf822, 0xf960, 0x01b4, 0xffb6, 0xfd27,
+ 0x024f, 0x0068, 0xfe41, 0x0357, 0x03f5, 0x026e,
+ 0x015e, 0xfe6d, 0x0027, 0x02df, 0x036c, 0x0596,
+ 0x046a, 0x03a3, 0x05bc, 0x0261, 0x0175, 0x05e5,
+ 0x06a1, 0x0972, 0x0b77, 0x05a7, 0x0275, 0x01bd,
+ 0x0190, 0x0770, 0x092d, 0x05c6, 0x06ee, 0x0584,
+ 0x0184, 0x023c, 0x039d, 0x052b, 0x0636, 0x0456,
+ 0x02b2, 0xffda, 0xfecc, 0x02cc, 0x03c4, 0x04ad,
+ 0x074a, 0x019e, 0xfcf6, 0xff19, 0xfae1, 0xf5d9,
+ 0xf7e7, 0xf895, 0xf7d5, 0xf787, 0xf503, 0xf2d3,
+ 0xf2e6, 0xf60b, 0xf73a, 0xf086, 0xedbc, 0xf5b5,
+ 0xfa06, 0xf51f, 0xf24f, 0xf746, 0xf907, 0xf2a9,
+ 0xf3fb, 0xf99b, 0xf36e, 0xf1e7, 0xf91a, 0xf56b,
+ 0xf40d, 0xfaf7, 0xf7d6, 0xf657, 0xfb08, 0xf6b2,
+ 0xf60d, 0xfb62, 0xf955, 0xfac0, 0xfc69, 0xf596,
+ 0xf854, 0xff18, 0xfb28, 0xfc80, 0x016e, 0xfd60,
+ 0xfd8e, 0x030a, 0x02ed, 0x0236, 0x028e, 0x0231,
+ 0x025e, 0xffc6, 0xffb4, 0x042d, 0x01f6, 0xfeeb,
+ 0x02cb, 0x0237, 0x00d0, 0x065b, 0x0624, 0x01bd,
+ 0x039b, 0x02f6, 0x0035, 0x04a0, 0x06fb, 0x02fc,
+ 0x035c, 0x06eb, 0x04c4, 0x00fe, 0x03b7, 0x05aa,
+ 0xff5f, 0xfdfe, 0x049b, 0x01ed, 0xfbff, 0x00df,
+ 0x02a9, 0xfd28, 0xfe7e, 0x014c, 0xfbf5, 0xf5eb,
+ 0xf726, 0xfc1f, 0xfa79, 0xf634, 0xfbf0, 0x0003,
+ 0xf8c1, 0xf60b, 0xf826, 0xf5a7, 0xf580, 0xf4f8,
+ 0xf282, 0xf981, 0xff0f, 0xfa1e, 0xfb2f, 0xff95,
+ 0xfc46, 0xfd06, 0x01d3, 0xff55, 0xfd6b, 0x00ff,
+ 0x000c, 0xfa8a, 0xf9ad, 0xfce3, 0xfe2f, 0xfe36,
+ 0xfd91, 0xfbac, 0xfd5c, 0x003f, 0xfe80, 0xfde1,
+ 0xfe3f, 0xfcd9, 0x00fb, 0x032d, 0xfe5e, 0x0240,
+ 0x06e7, 0xff0e, 0xfb9e, 0xfe3d, 0xfd33, 0x0083,
+ 0x0462, 0x039c, 0x0302, 0xfd4e, 0xfc04, 0x0601,
+ 0x03f9, 0xfb66, 0x015b, 0x0418, 0xfda4, 0xfe79,
+ 0x0136, 0xff11, 0xfcaa, 0xfeb0, 0x04cc, 0x0255,
+ 0xfbea, 0x00f9, 0x0114, 0xf93b, 0xfe49, 0x01ab,
+ 0xfaa3, 0xfd58, 0x00be, 0xfba0, 0xfdb3, 0x01e5,
+ 0x0098, 0x022e, 0x0205, 0xfe72, 0x0165, 0x05ae,
+ 0x0241, 0xfdae, 0x00d6, 0x064a, 0x036b, 0xff3a,
+ 0x0399, 0x068a, 0x0435, 0x0600, 0x074a, 0x0418,
+ 0x05e8, 0x0a3b, 0x08ee, 0x0736, 0x0817, 0x08cb,
+ 0x0ae8, 0x0cf9, 0x0c8e, 0x0cec, 0x0db8, 0x0cb4,
+ 0x0c59, 0x0d4c, 0x0f74, 0x12eb, 0x1312, 0x0f39,
+ 0x0cec, 0x0c76, 0x0b70, 0x0bd4, 0x0e27, 0x0cbe,
+ 0x0624, 0x048c, 0x0a2e, 0x0a76, 0x04bc, 0x02d8,
+ 0x0463, 0x0667, 0x06e2, 0x0341, 0x0053, 0xfff1,
+ 0xff48, 0x01cf, 0x04bd, 0x01a6, 0xff48, 0x02ca,
+ 0x06a1, 0x0727, 0x0598, 0x0554, 0x072b, 0x07f5,
+ 0x075c, 0x0792, 0x0930, 0x0976, 0x05b8, 0x0241,
+ 0x01b7, 0x0100, 0x01df, 0x035e, 0x00b8, 0xfe44,
+ 0xfe7b, 0xfdd5, 0xfd3b, 0xfcd2, 0xfbc4, 0xfa1f,
+ 0xf770, 0xf89e, 0xfd9b, 0xff1c, 0xff24, 0xff59,
+ 0xfc0e, 0xf8e3, 0xf94a, 0xfc85, 0x0031, 0x01b2,
+ 0x03cd, 0x025c, 0xfb27, 0xfd4c, 0x0475, 0x01e0,
+ 0x02c2, 0x0699, 0xfeff, 0xfc60, 0x05c9, 0x0a10,
+ 0x0934, 0x0a76, 0x0da1, 0x0ea3, 0x09c7, 0x0896,
+ 0x0c42, 0x07be, 0x0393, 0x0a6a, 0x1064, 0x110e,
+ 0x1365, 0x167c, 0x14c2, 0x1142, 0x1392, 0x14e0,
+ 0x10a9, 0x0fba, 0x0be3, 0x0671, 0x0fcd, 0x1603,
+ 0x0bce, 0x08d6, 0x0b19, 0x05ea, 0x0626, 0x0a08,
+ 0x086b, 0x072b, 0x05b0, 0x02da, 0x03ab, 0x0609,
+ 0x041d, 0xfe52, 0xfb95, 0xfa4a, 0xf774, 0xfdd7,
+ 0x071c, 0x0609, 0x07a6, 0x0927, 0xffd8, 0xff0c,
+ 0x05a5, 0x0450, 0x05af, 0x05e7, 0xfced, 0xf8b2,
+ 0xf9d0, 0xfdac, 0x0548, 0x0421, 0xfd8c, 0xfb9e,
+ 0xf7ce, 0xf602, 0xfac9, 0xfced, 0xfba1, 0xfafb,
+ 0xfc04, 0xfcb7, 0xfa16, 0xfa4f, 0xfccb, 0xfae4,
+ 0xfc01, 0xff83, 0xfea1, 0x0088, 0x042a, 0x0441,
+ 0x02ab, 0xfdbf, 0xfc24, 0xfe00, 0xf86c, 0xf8c1,
+ 0x02f8, 0x0216, 0xfdac, 0x009b, 0xfed9, 0xfd5c,
+ 0x0266, 0x0458, 0x03b3, 0x01b0, 0xfbcb, 0xf9a4,
+ 0xff4f, 0x0552, 0x0599, 0x03c3, 0x01e1, 0xfb80,
+ 0xf8fd, 0x0040, 0x0314, 0x0250, 0x058e, 0x0225,
+ 0xfcd7, 0xfe65, 0xfc66, 0xfb53, 0xfe91, 0xf920,
+ 0xf4c5, 0xfa69, 0xfcc7, 0xfef6, 0x0506, 0x02f0,
+ 0xfceb, 0xfb97, 0xf92d, 0xf64f, 0xf7ef, 0xfab9,
+ 0xfadf, 0xf994, 0xfa4d, 0xfb20, 0xf96d, 0xfbe3,
+ 0x00f4, 0xfd93, 0xf82a, 0xf9f9, 0xfd7d, 0x01b4,
+ 0x03d9, 0xff02, 0xff79, 0x0599, 0x0465, 0x074a,
+ 0x0e9b, 0x06c1, 0xfebb, 0x051c, 0x063b, 0x0163,
+ 0x04b4, 0x09dd, 0x0949, 0x0579, 0x0621, 0x0cb5,
+ 0x0e61, 0x0c5c, 0x0d31, 0x0bdf, 0x0c11, 0x0dfb,
+ 0x0ad0, 0x0bc9, 0x0bf7, 0x0059, 0xfcba, 0x03ed,
+ 0x04c1, 0x0675, 0x0964, 0x05ac, 0x0305, 0xfeb7,
+ 0xf9f9, 0xffc7, 0x048b, 0x0422, 0x07cd, 0x05f7,
+ 0x00ef, 0x0551, 0x07e4, 0x03fa, 0x01c0, 0xfdfc,
+ 0xfa99, 0xfaf8, 0xf707, 0xf250, 0xf59d, 0xf675,
+ 0xee1f, 0xecb2, 0xf7d8, 0xfd32, 0xf968, 0xfb62,
+ 0xff18, 0xfa97, 0xf729, 0xfa89, 0xfca6, 0xf8ab,
+ 0xf15b, 0xeedf, 0xf3ff, 0xf706, 0xf5f4, 0xf930,
+ 0xfbe5, 0xf746, 0xf6e2, 0xff49, 0x00a7, 0xf7a8,
+ 0xf358, 0xf6c1, 0xfa75, 0xfeea, 0x03b6, 0x04c4,
+ 0x0570, 0x064d, 0x01d2, 0xfe03, 0x0133, 0x02c1,
+ 0x002d, 0xff5a, 0xfdef, 0xfce2, 0x0057, 0x0281,
+ 0x0124, 0x002e, 0xfdb8, 0xf93f, 0xf795, 0xfb5a,
+ 0x00b2, 0x0389, 0x078d, 0x08ec, 0x0027, 0xfaa7,
+ 0xfe76, 0xff83, 0x01dd, 0x0576, 0x0358, 0x07c8,
+ 0x0bd0, 0x03bd, 0x06b2, 0x108b, 0x08a1, 0xff0b,
+ 0xfd5c, 0xfa91, 0xfea5, 0x066f, 0x09a5, 0x0d9b,
+ 0x0d31, 0x068e, 0x03fb, 0x0721, 0x0b13, 0x0989,
+ 0x06d9, 0x0afc, 0x0b19, 0x0675, 0x084e, 0x0a5b,
+ 0x0c07, 0x0b86, 0xff39, 0xf822, 0xfb2a, 0xf92d,
+ 0xffde, 0x0bac, 0x0623, 0xfe2e, 0xfb9e, 0xfa5a,
+ 0x0666, 0x0eae, 0x0460, 0xfeba, 0xfe5d, 0xfb9b,
+ 0x0614, 0x164c, 0x1832, 0x1318, 0x1208, 0x0d19,
+ 0x012d, 0xff29, 0x05e2, 0x028c, 0x01cb, 0x0af1,
+ 0x08a3, 0x0607, 0x1079, 0x11af, 0x0c0a, 0x0cd6,
+ 0x0710, 0xfef8, 0x03e8, 0x0df1, 0x11d2, 0x0e49,
+ 0x0757, 0xffb4, 0xf8cf, 0xfb86, 0x045e, 0x032d,
+ 0xfefc, 0x025b, 0x02d0, 0x0146, 0x0594, 0x0466,
+ 0xfb88, 0xf878, 0xf6f3, 0xf075, 0xf1b4, 0xfc6b,
+ 0x0484, 0x0696, 0x0042, 0xf86c, 0xfca2, 0x0244,
+ 0x014a, 0x02c6, 0xff99, 0xf9b0, 0xfe41, 0xff94,
+ 0xf994, 0xf83e, 0xf73a, 0xfa70, 0xffe1, 0xf977,
+ 0xf4ee, 0xf3a5, 0xea79, 0xefa6, 0xfba2, 0xf4f6,
+ 0xf5e4, 0x0215, 0xfe27, 0xf96a, 0xfcd3, 0xf8f2,
+ 0xf57a, 0xf96d, 0xfd72, 0xfb53, 0xf542, 0xfb65,
+ 0x0687, 0xfe76, 0xf30a, 0xf616, 0xf8f4, 0xf98a,
+ 0xfe91, 0x04b8, 0x0af2, 0x0b78, 0x04aa, 0xffe0,
+ 0xfd77, 0xfdfb, 0x03f2, 0x0438, 0xfc95, 0xf970,
+ 0xfb4a, 0xfe6b, 0x04eb, 0x07d2, 0x0077, 0xf9dc,
+ 0xfc45, 0xfef4, 0xffa0, 0x03e0, 0x0585, 0x01f2,
+ 0x004a, 0xfc48, 0xf52e, 0xf928, 0x04eb, 0x0711,
+ 0x02f3, 0x0412, 0x0593, 0x0220, 0xff17, 0xfea1,
+ 0xff4a, 0x00ea, 0xff34, 0xf9c9, 0xf7c0, 0xfa25,
+ 0x0007, 0x0711, 0x04ac, 0xfc7a, 0xfc72, 0xfdd6,
+ 0xfc17, 0x008d, 0x03a4, 0x007d, 0x0123, 0xfd53,
+ 0xf277, 0xf469, 0xfe92, 0x019c, 0x04c1, 0x06a9,
+ 0x018e, 0x00c8, 0x0419, 0x0340, 0x0204, 0xffcc,
+ 0xfcac, 0xfce8, 0xfbc7, 0xfbbe, 0x00a8, 0x01cd,
+ 0x0091, 0xfd6e, 0xf456, 0xf8c0, 0x0afa, 0x0d1d,
+ 0x0601, 0x0644, 0x01a2, 0xfe2b, 0x06ac, 0x0dde,
+ 0x1157, 0x12ac, 0x0c8f, 0x0761, 0x03d5, 0xfaa1,
+ 0xf527, 0xf57c, 0xf555, 0xfae8, 0x042b, 0x08ee,
+ 0x0c56, 0x0c7f, 0x0744, 0x0401, 0x015d, 0xfe34,
+ 0x0131, 0x03a1, 0x014e, 0x0491, 0x0666, 0xfe74,
+ 0xfe0d, 0x0617, 0x03c7, 0xff1e, 0x0529, 0x0a4b,
+ 0x07df, 0x05d8, 0x04b7, 0xfd8b, 0xf329, 0xef97,
+ 0xf135, 0xf496, 0xfcf1, 0xffdf, 0xf92a, 0xfa15,
+ 0x0207, 0x077d, 0x0e19, 0x0d83, 0x0347, 0xfc99,
+ 0xf735, 0xf604, 0xfe41, 0xfeb6, 0xfb36, 0x03d7,
+ 0x09ad, 0x0650, 0x0493, 0x0307, 0x011f, 0xfcf1,
+ 0xf611, 0xf7d9, 0xfd9d, 0xfe26, 0x0223, 0x0724,
+ 0x0548, 0x02ed, 0x01dd, 0xfe98, 0xfa3f, 0xf816,
+ 0xf7f5, 0xf40d, 0xf356, 0xfe45, 0x03b3, 0xfeaf,
+ 0x001e, 0x01a4, 0xf98a, 0xf2c5, 0xf10f, 0xf207,
+ 0xf70c, 0xfcc7, 0x00a5, 0x03b5, 0x05b5, 0x0479,
+ 0x0068, 0xfe1c, 0xfb6e, 0xf7c7, 0xfcf2, 0x064b,
+ 0x08d9, 0x0a0f, 0x0bac, 0x0b32, 0x0958, 0x0168,
+ 0xfa9f, 0xfbe1, 0xf7e3, 0xf2bd, 0xfc27, 0x0993,
+ 0x0bcc, 0x0379, 0xfbf7, 0xfb37, 0xf838, 0xf93d,
+ 0x0428, 0x015c, 0xf6c3, 0xfd37, 0x0290, 0x01ba,
+ 0x0a4b, 0x0a4a, 0x00d0, 0x01dd, 0x01bc, 0xfcce,
+ 0xff3d, 0x03ed, 0x09eb, 0x0eb5, 0x0b5c, 0x0a37,
+ 0x0801, 0xfadb, 0xf46e, 0xf6cd, 0xf31d, 0xf405,
+ 0xfcfb, 0x00b5, 0x0342, 0x0842, 0x0a11, 0x0849,
+ 0x00b7, 0xf9b2, 0xfc5b, 0xfb74, 0xf36a, 0xf479,
+ 0xf863, 0xf7fd, 0xff78, 0x0604, 0xfffd, 0xfd15,
+ 0xffe6, 0xfc84, 0xf984, 0xfcee, 0xffed, 0xffbc,
+ 0xfe8e, 0xfdd8, 0xfc2f, 0xf991, 0xf8b4, 0xf505,
+ 0xed9a, 0xec88, 0xf242, 0xfa43, 0x046b, 0x0bd1,
+ 0x1144, 0x12c5, 0x04c0, 0xf505, 0xf1fb, 0xec91,
+ 0xec6e, 0xfbc8, 0xfe18, 0xf5fa, 0xfaab, 0xf876,
+ 0xef54, 0xf4d9, 0xf409, 0xe76a, 0xe494, 0xe08b,
+ 0xdb95, 0xe689, 0xef96, 0xee53, 0xef4d, 0xed4f,
+ 0xea78, 0xebd6, 0xe89c, 0xe748, 0xeb65, 0xeb3c,
+ 0xea4e, 0xea3d, 0xf127, 0x045e, 0x0748, 0xf96f,
+ 0xfaa2, 0xf5b3, 0xe100, 0xe140, 0xe9ec, 0xe943,
+ 0xf51e, 0x006b, 0xfc14, 0xfb7d, 0x00c3, 0x060d,
+ 0x022f, 0xeb36, 0xdf54, 0xf2c3, 0x0f10, 0x28d4,
+ 0x35b5, 0x2a87, 0x1213, 0xf185, 0xd9bf, 0xe0a1,
+ 0xf3f6, 0x0d83, 0x2d02, 0x2c64, 0x13c5, 0x070a,
+ 0xf34a, 0xda96, 0xd52f, 0xd19c, 0xd40b, 0xed53,
+ 0x06d4, 0x1bd8, 0x3023, 0x2640, 0xf95f, 0xd204,
+ 0xd18d, 0xee35, 0x06c1, 0x0f3f, 0x04c9, 0xea38,
+ 0xe098, 0xeeff, 0xfc61, 0x136f, 0x3195, 0x31ce,
+ 0x1c3d, 0x0987, 0xf76c, 0xeb43, 0xe4c5, 0xdde7,
+ 0xe10f, 0xe569, 0xd8d6, 0xc7d8, 0xc11e, 0xc230,
+ 0xc463, 0xc43a, 0xcec0, 0xf066, 0x13d8, 0x182f,
+ 0xfb7e, 0xd2e8, 0xadcb, 0x9c4d, 0xa9ba, 0xc01a,
+ 0xcbf0, 0xd6ad, 0xdb3e, 0xd42d, 0xcf4a, 0xca5c,
+ 0xcdaa, 0xe331, 0xe713, 0xd9ff, 0xe47c, 0xefad,
+ 0xedfb, 0xff8b, 0x0f44, 0x0bcc, 0x0e2b, 0x036f,
+ 0xe567, 0xdece, 0xeb68, 0xf6c8, 0x0ce6, 0x20e4,
+ 0x224a, 0x1e05, 0x102e, 0xf41b, 0xe646, 0xf0c1,
+ 0xf85d, 0xf6cb, 0xfc1a, 0xff10, 0xf828, 0xfb56,
+ 0x04a0, 0x0252, 0x0246, 0x0908, 0x0c28, 0x1577,
+ 0x1f56, 0x1aac, 0x16a7, 0x168f, 0x1042, 0x12e1,
+ 0x1d48, 0x1afe, 0x1637, 0x1a3c, 0x1aab, 0x1884,
+ 0x22ec, 0x3872, 0x42ef, 0x390f, 0x31b4, 0x3175,
+ 0x242f, 0x1ec5, 0x33b9, 0x3b8e, 0x2d9f, 0x2af0,
+ 0x2b8c, 0x26f5, 0x2a26, 0x2431, 0x15f2, 0x1c75,
+ 0x2967, 0x2a2a, 0x2a30, 0x255a, 0x2167, 0x3406,
+ 0x4cb2, 0x5a96, 0x6d9b, 0x7c16, 0x6b08, 0x5081,
+ 0x5043, 0x5435, 0x464d, 0x4c6b, 0x691c, 0x6bff,
+ 0x6339, 0x6684, 0x588f, 0x4a56, 0x51c4, 0x4599,
+ 0x3382, 0x40ac, 0x44ea, 0x3b8b, 0x4606, 0x45b7,
+ 0x3506, 0x35ee, 0x32fc, 0x254b, 0x2745, 0x1e6c,
+ 0xffd6, 0xf911, 0x0ac6, 0x1426, 0x1839, 0x1bae,
+ 0x17db, 0x15ab, 0x152e, 0x0d1f, 0x0abe, 0x0f9d,
+ 0x0467, 0xf7a8, 0xfe2a, 0xf4cd, 0xdc7a, 0xe692,
+ 0xf55b, 0xe709, 0xefe6, 0x0672, 0xf4d2, 0xe848,
+ 0xf8f3, 0xf5ef, 0xeaa7, 0xe87d, 0xd69c, 0xc258,
+ 0xb322, 0xa54b, 0xb914, 0xdaf3, 0xe21c, 0xe76a,
+ 0xe5f6, 0xc71a, 0xb07b, 0xa994, 0xa0ad, 0xaa55,
+ 0xbcd4, 0xc09b, 0xc2cc, 0xc469, 0xc206, 0xc342,
+ 0xc863, 0xd869, 0xe5df, 0xdd97, 0xd8f4, 0xdc16,
+ 0xd512, 0xdb17, 0xeaca, 0xe8a0, 0xe8d8, 0xf3b2,
+ 0xf3ef, 0xec29, 0xe752, 0xe9c0, 0xea31, 0xe0bb,
+ 0xe03e, 0xdf18, 0xc891, 0xbbba, 0xbce5, 0xb902,
+ 0xc807, 0xdb46, 0xd420, 0xcfd3, 0xcbec, 0xb588,
+ 0xaf0b, 0xbc42, 0xc6aa, 0xd683, 0xe631, 0xea31,
+ 0xe952, 0xe7d0, 0xea9e, 0xeba3, 0xe4bf, 0xe123,
+ 0xda5e, 0xd080, 0xd4d6, 0xd685, 0xcf3c, 0xd2fc,
+ 0xd47e, 0xcedc, 0xd194, 0xd0c1, 0xcb4a, 0xcf23,
+ 0xd4a7, 0xd4bc, 0xd0c7, 0xd077, 0xd995, 0xdc6f,
+ 0xd539, 0xd0c1, 0xcc8e, 0xc7c1, 0xc259, 0xbd22,
+ 0xc215, 0xc4c6, 0xbf24, 0xc045, 0xbd82, 0xbc23,
+ 0xc70c, 0xbde3, 0xaef2, 0xb8f3, 0xb872, 0xb064,
+ 0xb6d6, 0xb34a, 0xba4a, 0xd357, 0xcf78, 0xc1e0,
+ 0xbf31, 0xb015, 0xaf0a, 0xc1b7, 0xc4af, 0xc5d8,
+ 0xcd55, 0xcb51, 0xca44, 0xcd6a, 0xcc76, 0xc854,
+ 0xc967, 0xd21a, 0xca62, 0xbc09, 0xc926, 0xcd53,
+ 0xbda8, 0xc955, 0xd36c, 0xc7a2, 0xd065, 0xd9bb,
+ 0xd53b, 0xe235, 0xe8b8, 0xdd4e, 0xde22, 0xe151,
+ 0xde5e, 0xe0eb, 0xe6da, 0xf022, 0xf582, 0xf4cd,
+ 0xf827, 0xf2ea, 0xe789, 0xeb88, 0xf245, 0xf3f8,
+ 0xf9d8, 0xf9a3, 0xf237, 0xee01, 0xec4d, 0xeaf6,
+ 0xeaa3, 0xf59e, 0x081d, 0x074f, 0xfc56, 0xfe7d,
+ 0xffc5, 0x001a, 0x0f74, 0x1e2f, 0x1db0, 0x1bf6,
+ 0x2158, 0x1ec6, 0x1942, 0x2bc0, 0x3d8c, 0x32a4,
+ 0x3154, 0x3d46, 0x3890, 0x34ed, 0x2fef, 0x24d3,
+ 0x31c7, 0x3a8c, 0x2d5d, 0x34f2, 0x3b0d, 0x2b09,
+ 0x2e7c, 0x3343, 0x21a6, 0x21aa, 0x35a2, 0x3caf,
+ 0x3391, 0x2c27, 0x34e3, 0x420b, 0x43f9, 0x3bd1,
+ 0x3094, 0x33c8, 0x3c7b, 0x393f, 0x459e, 0x5003,
+ 0x35bc, 0x31f4, 0x4831, 0x333e, 0x1ce0, 0x3383,
+ 0x42ca, 0x33c5, 0x2533, 0x369b, 0x5679, 0x4c9d,
+ 0x3691, 0x4183, 0x3e79, 0x3225, 0x4101, 0x433e,
+ 0x3ea5, 0x4ecb, 0x4c56, 0x3d0b, 0x3e9e, 0x3fdc,
+ 0x4628, 0x517a, 0x4c08, 0x4728, 0x4810, 0x3d8d,
+ 0x36c8, 0x3dee, 0x4561, 0x44b8, 0x4117, 0x4264,
+ 0x3a4d, 0x2cba, 0x3bbc, 0x4e9d, 0x45a2, 0x4815,
+ 0x54fc, 0x4754, 0x3c03, 0x4356, 0x4184, 0x39da,
+ 0x3753, 0x3cfc, 0x4d07, 0x529f, 0x5061, 0x598d,
+ 0x55d9, 0x4536, 0x481a, 0x475d, 0x3121, 0x279c,
+ 0x303d, 0x3749, 0x3808, 0x335c, 0x3183, 0x2f06,
+ 0x2697, 0x273a, 0x262c, 0x216f, 0x3c54, 0x561d,
+ 0x435a, 0x33f7, 0x32c3, 0x2131, 0x1ea0, 0x2da2,
+ 0x2ee3, 0x2de3, 0x28ba, 0x2565, 0x3994, 0x3df6,
+ 0x2afc, 0x2c33, 0x2739, 0x10fb, 0x1ba5, 0x3ba5,
+ 0x4a35, 0x488a, 0x3dc9, 0x3401, 0x2bfb, 0x24fc,
+ 0x2e89, 0x3966, 0x340c, 0x3168, 0x3124, 0x2df5,
+ 0x3073, 0x311b, 0x3996, 0x4d43, 0x4ef2, 0x479d,
+ 0x46b1, 0x3cce, 0x3544, 0x3186, 0x2446, 0x249e,
+ 0x2d7f, 0x2695, 0x1ff0, 0x1be6, 0x1a42, 0x25e7,
+ 0x24b3, 0x17b3, 0x1716, 0x0ca8, 0x0606, 0x1edc,
+ 0x2842, 0x19f6, 0x206c, 0x2dd5, 0x3003, 0x309f,
+ 0x2714, 0x19c3, 0x1820, 0x1975, 0x1941, 0x15f8,
+ 0x0d4c, 0x0e44, 0x1fbd, 0x316c, 0x3270, 0x22d5,
+ 0x13d5, 0x0e00, 0x07b0, 0xff85, 0x00a7, 0x087a,
+ 0x01f1, 0xed45, 0xe434, 0xe48c, 0xe452, 0xf0ac,
+ 0xf9da, 0xf60e, 0x05f1, 0x155a, 0x00ef, 0xf0e2,
+ 0xf435, 0xf051, 0xf836, 0x0f54, 0x135e, 0x02de,
+ 0xeb7d, 0xdb93, 0xe65c, 0xfa12, 0xfbc6, 0xfbd3,
+ 0x051a, 0xfb48, 0xdec1, 0xdb24, 0xed75, 0xeebc,
+ 0xec1c, 0xf8d9, 0xff99, 0xfafd, 0xf6ad, 0xf993,
+ 0x0091, 0xf6a6, 0xedd1, 0x0034, 0x0051, 0xe988,
+ 0xf163, 0xfc06, 0xecb4, 0xeac6, 0xefba, 0xe120,
+ 0xd470, 0xdb80, 0xe796, 0xdd30, 0xcb2b, 0xd84b,
+ 0xe95a, 0xe63d, 0xea8d, 0xeb9e, 0xe57e, 0xf376,
+ 0xfe62, 0xf963, 0xfaa4, 0xfb18, 0xf6ca, 0xedaa,
+ 0xdf4c, 0xde94, 0xddb5, 0xd846, 0xe829, 0xf095,
+ 0xf07e, 0x073e, 0x00f1, 0xe029, 0xe75e, 0xee98,
+ 0xe2f0, 0xf0e4, 0xf790, 0xec19, 0xf2d4, 0xf818,
+ 0xf7ac, 0xfae0, 0xec26, 0xdf61, 0xea69, 0xf872,
+ 0xfeef, 0xf5c8, 0xe819, 0xf460, 0x01f3, 0xf4e5,
+ 0xeb3c, 0xee9b, 0xe8fe, 0xe389, 0xed50, 0xf076,
+ 0xe08b, 0xd6c5, 0xd3d8, 0xc817, 0xc992, 0xdb30,
+ 0xde8d, 0xd06e, 0xba65, 0xabf5, 0xb2a3, 0xbec4,
+ 0xcb4d, 0xd34c, 0xcdf4, 0xd827, 0xda2c, 0xb219,
+ 0xb051, 0xd7a3, 0xcdad, 0xc019, 0xd2ba, 0xc85b,
+ 0xb7b1, 0xba26, 0xb4b4, 0xb5f4, 0xb7e3, 0xb529,
+ 0xc066, 0xbd74, 0xbcc9, 0xd52d, 0xcd80, 0xc03e,
+ 0xd0ba, 0xb459, 0x8df6, 0xaaa0, 0xc0e9, 0xb2b2,
+ 0xbd8a, 0xd681, 0xd191, 0xbb0c, 0xc5f4, 0xe537,
+ 0xcfbc, 0xad20, 0xc161, 0xcd60, 0xc05e, 0xce67,
+ 0xd11a, 0xb818, 0xb4fb, 0xc71f, 0xda5f, 0xd98f,
+ 0xc058, 0xc66b, 0xe4f4, 0xdb9f, 0xcf88, 0xe0f7,
+ 0xd67b, 0xbed2, 0xcd7e, 0xd6ae, 0xc39b, 0xc5ed,
+ 0xdd14, 0xe64a, 0xe517, 0xe3b1, 0xdffc, 0xd56b,
+ 0xccf8, 0xdc77, 0xeed4, 0xe9ea, 0xedf1, 0xf82f,
+ 0xea6e, 0xe6ed, 0xf14a, 0xe718, 0xdf01, 0xdc9d,
+ 0xd1c9, 0xda02, 0xe8cb, 0xeb3a, 0xf7bc, 0xfce6,
+ 0xf347, 0xf8bc, 0xfe6d, 0xfa33, 0xff3f, 0x0771,
+ 0x0509, 0xf256, 0xe4ec, 0xf00e, 0xed03, 0xde1f,
+ 0xea1d, 0xeaa4, 0xd986, 0xe027, 0xe23a, 0xdb67,
+ 0xe677, 0xeac1, 0xeadb, 0xee56, 0xe26b, 0xe013,
+ 0xe76d, 0xe499, 0xf188, 0xf857, 0xe4ca, 0xe824,
+ 0xf113, 0xda79, 0xcfee, 0xd802, 0xcfb2, 0xc42b,
+ 0xc535, 0xc734, 0xc879, 0xd022, 0xd497, 0xcf85,
+ 0xcd25, 0xc36e, 0xb522, 0xc3f4, 0xce3d, 0xb808,
+ 0xb8d4, 0xc7e8, 0xc618, 0xd769, 0xdf37, 0xc88c,
+ 0xcbf8, 0xcb16, 0xab0c, 0xabb8, 0xc046, 0xc233,
+ 0xbf7c, 0xad79, 0xa22d, 0xb995, 0xc7b7, 0xcf69,
+ 0xecf9, 0xf3d5, 0xdc1d, 0xd442, 0xd9b4, 0xd37f,
+ 0xcae8, 0xd39e, 0xde9d, 0xd696, 0xd25e, 0xde4a,
+ 0xe97d, 0xf50d, 0xf49d, 0xe5df, 0xeaa6, 0xecb6,
+ 0xd4c4, 0xd62b, 0xecfe, 0xf0e4, 0xfc24, 0x09eb,
+ 0x04a7, 0x104c, 0x1913, 0xfec9, 0xf9b9, 0x04b4,
+ 0xf14f, 0xf708, 0x19f9, 0x1662, 0x1546, 0x3368,
+ 0x33ba, 0x22a9, 0x1f11, 0x1126, 0x0afa, 0x11d8,
+ 0x0351, 0xfcd8, 0x1ef4, 0x419e, 0x3b9f, 0x21b4,
+ 0x285a, 0x3d29, 0x303e, 0x2b46, 0x3ba7, 0x33f5,
+ 0x3850, 0x49cf, 0x2e3a, 0x1e90, 0x3579, 0x2544,
+ 0x0735, 0x110f, 0x2238, 0x331f, 0x412b, 0x3564,
+ 0x286b, 0x26a3, 0x1c2a, 0x1578, 0x1c11, 0x1d20,
+ 0x1766, 0x1c12, 0x23d0, 0x1b82, 0x173a, 0x222a,
+ 0x176f, 0x019f, 0x1022, 0x2843, 0x1d5c, 0x04b1,
+ 0xfac4, 0xf342, 0xe975, 0xf3ac, 0x00d5, 0xf62c,
+ 0xf95f, 0x04b6, 0xe51f, 0xcf20, 0xe25d, 0xddfe,
+ 0xd894, 0xf4e8, 0xf954, 0xee61, 0xf561, 0xf0cc,
+ 0xf790, 0x124a, 0xfc7f, 0xd112, 0xe0a6, 0x02bc,
+ 0xfc17, 0xeeb2, 0xf2d7, 0xf083, 0xeb0a, 0xee5f,
+ 0xedde, 0xf086, 0xfc48, 0xfc7c, 0xf535, 0xf25e,
+ 0xecaa, 0xe9d4, 0xec26, 0xf132, 0xfd32, 0xff09,
+ 0xf79c, 0xfa3d, 0xf66d, 0xf2f1, 0x060b, 0x1097,
+ 0x0b60, 0x0ebc, 0x0f19, 0x0b91, 0x0d77, 0x112f,
+ 0x1e42, 0x247a, 0x1c97, 0x253d, 0x2817, 0x0b10,
+ 0xf646, 0xf425, 0xf59f, 0x00cc, 0x09a6, 0x0e6a,
+ 0x17bb, 0x1af0, 0x243d, 0x34c7, 0x354f, 0x3514,
+ 0x2fc7, 0x1048, 0x06f4, 0x214b, 0x23ef, 0x17d6,
+ 0x224f, 0x2860, 0x2130, 0x29da, 0x357d, 0x1fc7,
+ 0xf826, 0xf49b, 0x1840, 0x2e52, 0x2a3a, 0x27e0,
+ 0x27a7, 0x2489, 0x225c, 0x193a, 0x15a4, 0x1f48,
+ 0x1702, 0x0509, 0x07cc, 0x06dd, 0xffc3, 0x0b6e,
+ 0x0c93, 0xfc8f, 0x0020, 0x0942, 0x023a, 0xfd85,
+ 0x06f1, 0x1125, 0x016e, 0xeb42, 0xfc04, 0x0573,
+ 0xe48b, 0xe5d6, 0x0c4d, 0x0b6f, 0xf498, 0xf2a6,
+ 0xfc42, 0x085d, 0x0f31, 0x11da, 0x15a5, 0x113a,
+ 0x12a8, 0x1e3a, 0x1693, 0x04d2, 0xfc1a, 0xf15f,
+ 0xecbd, 0xf426, 0xf985, 0xf9c4, 0xf031, 0xe8fe,
+ 0xf900, 0x05f8, 0x01cb, 0x0757, 0x0a5d, 0xfdd0,
+ 0x0578, 0x1d79, 0x1bec, 0x0fc6, 0x16da, 0x198f,
+ 0x0af0, 0x044a, 0x0724, 0x07b8, 0x09cc, 0x0a8f,
+ 0x0e24, 0x167e, 0x101c, 0x0b9d, 0x2295, 0x2f29,
+ 0x1b16, 0x0a5e, 0x0fd1, 0x2100, 0x2d38, 0x2d2a,
+ 0x2b94, 0x2695, 0x1e9a, 0x2165, 0x1fee, 0x1516,
+ 0x14a5, 0x1509, 0x193e, 0x2cc6, 0x2c39, 0x175b,
+ 0x152c, 0x1862, 0x15c0, 0x1ebe, 0x28c8, 0x2a57,
+ 0x24b4, 0x133f, 0x06e4, 0x0b18, 0x123c, 0x1872,
+ 0x1c10, 0x1c21, 0x21d8, 0x210e, 0x0c2e, 0x0144,
+ 0x138d, 0x1c84, 0x1272, 0x2243, 0x318e, 0x0d28,
+ 0xfa25, 0x1ae5, 0x1dcf, 0x156b, 0x315a, 0x287e,
+ 0x0b62, 0x2950, 0x3832, 0x1755, 0x1e13, 0x2f0e,
+ 0x123b, 0x0544, 0x13c1, 0x11da, 0x16a3, 0x20a6,
+ 0x0c3c, 0x03d3, 0x1f59, 0x1f0c, 0x0100, 0xff6f,
+ 0x0f5d, 0x13cc, 0x14f6, 0x1519, 0x16d4, 0x17b7,
+ 0x11e2, 0x13cf, 0x0bf3, 0xf105, 0xfaa2, 0x1b12,
+ 0x182c, 0x14b5, 0x196a, 0x07c2, 0x0a8d, 0x1a43,
+ 0x07ff, 0x03cc, 0x1403, 0x0603, 0xfd4b, 0x0906,
+ 0xfedb, 0xf882, 0x0eb1, 0x198c, 0x0e3c, 0x04fd,
+ 0x0397, 0x0a46, 0x1c7a, 0x2a42, 0x21d0, 0x1468,
+ 0x104e, 0x0707, 0xff24, 0x0061, 0xfc89, 0x041d,
+ 0x1821, 0x0f74, 0xfefe, 0x0cec, 0x138c, 0x06c9,
+ 0x0a9c, 0x0ee5, 0xff65, 0xfbe7, 0x0f4e, 0x1aba,
+ 0x0fe5, 0x08fb, 0x1a6a, 0x24b1, 0x193a, 0x1fce,
+ 0x2817, 0x0c55, 0x00f2, 0x100d, 0x029b, 0x043a,
+ 0x2e03, 0x38cb, 0x318a, 0x3687, 0x1f3f, 0x0916,
+ 0x1424, 0x1746, 0x16dc, 0x1cc8, 0x193f, 0x1c51,
+ 0x1aaf, 0x10ad, 0x193c, 0x1467, 0x0251, 0x0d48,
+ 0x127f, 0x0aff, 0x198e, 0x228f, 0x1aa6, 0x0a73,
+ 0xf738, 0x037b, 0x0edb, 0xfd35, 0x0dda, 0x24a7,
+ 0x0ed9, 0x095b, 0x1087, 0x07b2, 0x154b, 0x1c5a,
+ 0x0cf7, 0x184e, 0x27d6, 0x2664, 0x27e8, 0x1f1e,
+ 0x1409, 0x1268, 0x0cc3, 0x0b55, 0x05b5, 0xfe08,
+ 0x0e9d, 0x1b66, 0x2171, 0x3bbe, 0x3dfd, 0x2764,
+ 0x2998, 0x27cf, 0x1161, 0x028e, 0xf94c, 0xfb65,
+ 0x08dc, 0x1376, 0x24c3, 0x2aee, 0x19aa, 0x0d4b,
+ 0xfbf8, 0xf021, 0x1061, 0x253c, 0x0f34, 0x0f71,
+ 0x1cbf, 0x104e, 0x0f6a, 0x1951, 0x0d90, 0x0210,
+ 0x081c, 0x19a6, 0x26f0, 0x1819, 0x0d05, 0x1c29,
+ 0x0e4f, 0xf793, 0x150d, 0x25b4, 0x0863, 0xfefd,
+ 0xffa0, 0xf943, 0x0952, 0x0d64, 0xfc49, 0xfd96,
+ 0xfd9b, 0xf8f6, 0xf832, 0xdeef, 0xd89f, 0xfddf,
+ 0x0517, 0xfb9a, 0x0cdb, 0x0664, 0xf480, 0x0343,
+ 0x0022, 0xe32e, 0xe0fe, 0xeb2d, 0xe8cc, 0xeb4a,
+ 0xf5c3, 0xf8f7, 0xec3b, 0xdf0e, 0xf028, 0x0d5b,
+ 0x0978, 0xf643, 0xf060, 0xe651, 0xe35f, 0xf470,
+ 0xf327, 0xea05, 0xf7bd, 0xf3b1, 0xdf58, 0xe503,
+ 0xe64f, 0xd9f9, 0xe2c9, 0xef76, 0xf449, 0xfc55,
+ 0xfd5b, 0xfbf8, 0xf394, 0xdd25, 0xd807, 0xd91a,
+ 0xc9b6, 0xcfe3, 0xdc6e, 0xc5f5, 0xb92a, 0xc806,
+ 0xcb54, 0xc9db, 0xd2ee, 0xe0db, 0xf0ce, 0xf04b,
+ 0xe456, 0xe62f, 0xdeb6, 0xc9ab, 0xd083, 0xdb30,
+ 0xc61c, 0xbfb8, 0xd549, 0xd85d, 0xd0c2, 0xd78d,
+ 0xdf6d, 0xe5c9, 0xec9d, 0xeae8, 0xe3d3, 0xe30b,
+ 0xf1c1, 0xf796, 0xdbbc, 0xd05e, 0xe932, 0xebf6,
+ 0xe60e, 0xf54f, 0xf20f, 0xeb61, 0xf5ff, 0xe6f5,
+ 0xd1fa, 0xd5c1, 0xd5c8, 0xddf3, 0xef49, 0xe120,
+ 0xcf66, 0xdefc, 0xf1e9, 0xef21, 0xdd5a, 0xd33d,
+ 0xde8a, 0xe41e, 0xcf0f, 0xc030, 0xd56c, 0xe817,
+ 0xd632, 0xd514, 0xf1dd, 0xea17, 0xda69, 0xf156,
+ 0xee76, 0xd213, 0xd82a, 0xe236, 0xe26b, 0xeef4,
+ 0xf0e3, 0xf355, 0xff9e, 0xec02, 0xd2ee, 0xde6b,
+ 0xe8ce, 0xe38e, 0xe076, 0xd854, 0xd6b2, 0xe382,
+ 0xe7fb, 0xe54c, 0xe306, 0xd89e, 0xd266, 0xd865,
+ 0xdc93, 0xde19, 0xde8c, 0xde21, 0xe6b5, 0xef14,
+ 0xedbb, 0xef27, 0xee47, 0xe5c3, 0xe3f1, 0xe470,
+ 0xe211, 0xdffa, 0xd902, 0xddfa, 0xe954, 0xd118,
+ 0xb616, 0xca33, 0xdfbb, 0xdab0, 0xdf37, 0xe881,
+ 0xdc4f, 0xcb76, 0xcc1c, 0xd2ba, 0xd52e, 0xdf7b,
+ 0xe6e4, 0xe1aa, 0xecbd, 0xfb0d, 0xe838, 0xd291,
+ 0xd31a, 0xdece, 0xf1d8, 0xf31e, 0xe428, 0xe8dd,
+ 0xeaff, 0xde01, 0xe374, 0xeaa4, 0xe08f, 0xd8d1,
+ 0xd0c6, 0xc900, 0xcc0d, 0xd261, 0xe02c, 0xf435,
+ 0xf823, 0xee0a, 0xe983, 0xe6c3, 0xd6b6, 0xc1e0,
+ 0xb794, 0xb88a, 0xcbb0, 0xdfbc, 0xd5c5, 0xcbec,
+ 0xcf84, 0xc6ac, 0xceff, 0xd9ee, 0xbf4a, 0xc5c1,
+ 0xea3a, 0xd847, 0xc2a5, 0xcb41, 0xc746, 0xcf97,
+ 0xda3b, 0xcf16, 0xd28f, 0xcb63, 0xbb71, 0xd35d,
+ 0xdd0e, 0xd45c, 0xee92, 0xf27e, 0xda9a, 0xdcc6,
+ 0xd619, 0xcb8b, 0xd97d, 0xd5cf, 0xcc1a, 0xdc78,
+ 0xe6f6, 0xdc9c, 0xc927, 0xc11f, 0xd195, 0xde31,
+ 0xe33b, 0xef40, 0xe9ab, 0xdbd4, 0xe2fd, 0xe8de,
+ 0xe2ba, 0xe17c, 0xe4a3, 0xe6b1, 0xe35b, 0xdf0b,
+ 0xe172, 0xd9a1, 0xc653, 0xca31, 0xe61f, 0xf44f,
+ 0xedf4, 0xe869, 0xe5cf, 0xde12, 0xd422, 0xd2fb,
+ 0xe420, 0xf186, 0xe36e, 0xdb7c, 0xe97d, 0xe99e,
+ 0xe3b0, 0xe801, 0xdb5a, 0xc57c, 0xc83e, 0xdbff,
+ 0xdc88, 0xc427, 0xbfea, 0xcfc0, 0xcc6f, 0xd4ff,
+ 0xe8b0, 0xda31, 0xd94c, 0xf15b, 0xefd0, 0xf191,
+ 0xf2e2, 0xe116, 0xebea, 0xf0ae, 0xdd00, 0xed03,
+ 0xefbc, 0xd988, 0xef4e, 0xf836, 0xe4e2, 0xf776,
+ 0x04b2, 0xf5eb, 0xede1, 0xe77d, 0xeb5e, 0xe5c7,
+ 0xcca6, 0xd7d1, 0xee3f, 0xeaf4, 0xf1c3, 0xf15f,
+ 0xe95f, 0xf880, 0xf941, 0xecf1, 0xeb63, 0xe1b9,
+ 0xe0a1, 0xe2b1, 0xdb84, 0xec36, 0xf291, 0xdeda,
+ 0xe4a0, 0xe908, 0xe51c, 0xfd30, 0x07c0, 0xffad,
+ 0xffb6, 0xf4a7, 0xf5b4, 0x0283, 0xf594, 0xf01b,
+ 0xf99c, 0xf8aa, 0xff51, 0x0393, 0xfcc1, 0xfb40,
+ 0xf503, 0xf514, 0xfc19, 0xf5cd, 0xfd61, 0x094e,
+ 0xfc47, 0xfae9, 0x04ec, 0x04bc, 0x08e0, 0xff0f,
+ 0xf26c, 0x023d, 0x04ce, 0xfa92, 0x0d1b, 0x1bf4,
+ 0x1766, 0x18d8, 0x186c, 0x17b0, 0x1e99, 0x16c0,
+ 0x021d, 0x047d, 0x1c9d, 0x2465, 0x1d5e, 0x1d6d,
+ 0x185c, 0x1419, 0x18e8, 0x0ccd, 0x0499, 0x122b,
+ 0x0aad, 0xfa73, 0xfd1c, 0xf7a5, 0xf5cc, 0x030b,
+ 0x0713, 0x1062, 0x1d55, 0x159b, 0x0748, 0xf89a,
+ 0xf30b, 0xff5a, 0xfb0b, 0xf092, 0x003a, 0x0a18,
+ 0x07b4, 0x0557, 0xf059, 0xe2c0, 0xeba3, 0xebda,
+ 0xf65a, 0x0f36, 0x0dde, 0x06fd, 0x0dc8, 0x0582,
+ 0xfc46, 0x030a, 0xffdf, 0xf7f8, 0xfb8d, 0xf31c,
+ 0xe203, 0xed6b, 0x0535, 0x0a51, 0x192e, 0x2feb,
+ 0x1dea, 0x0324, 0x08fa, 0x0337, 0xf8af, 0x0c8e,
+ 0x0996, 0xf75e, 0x1612, 0x2c05, 0x1534, 0x100e,
+ 0x1160, 0x09fd, 0x1b64, 0x202c, 0x113d, 0x1b82,
+ 0x19a6, 0x0636, 0x0f41, 0x13db, 0x0d4a, 0x1829,
+ 0x14f9, 0x0ddc, 0x1879, 0x106e, 0x07ec, 0x0c60,
+ 0xf6a0, 0xe910, 0xf914, 0xf598, 0xef87, 0xfcf3,
+ 0xfb7a, 0xf96e, 0x0c3d, 0x128c, 0x03c7, 0xf94f,
+ 0xf5f9, 0xef93, 0xead3, 0xed6a, 0xf224, 0xf9e8,
+ 0x02b6, 0x04ce, 0x077f, 0x0bf2, 0x1247, 0x206a,
+ 0x1b08, 0x04e4, 0x0ac5, 0x0fde, 0xfd18, 0x053c,
+ 0x1afc, 0x1b93, 0x2111, 0x2334, 0x179c, 0x1898,
+ 0x19cd, 0x11a3, 0x0fce, 0x136e, 0x1bde, 0x18e4,
+ 0x0d97, 0x21e8, 0x3592, 0x261b, 0x2556, 0x2e15,
+ 0x222b, 0x21bd, 0x1d16, 0x0207, 0xffcd, 0x0f46,
+ 0x148e, 0x1f90, 0x1e24, 0x0bc8, 0x1272, 0x20be,
+ 0x1454, 0x0bab, 0x111a, 0x0692, 0xfa81, 0x0471,
+ 0x0cb8, 0x0b7d, 0x0ef3, 0x0bb1, 0x062d, 0x09d8,
+ 0x0076, 0xf1d4, 0xf66b, 0xfe6b, 0x09c0, 0x1902,
+ 0x0fc6, 0x029f, 0x10a6, 0x205e, 0x22b0, 0x1cfb,
+ 0x1199, 0x133f, 0x202b, 0x2271, 0x2361, 0x2d2c,
+ 0x2c5f, 0x19e2, 0x0eaa, 0x1522, 0x18da, 0x197a,
+ 0x1c4f, 0x0ec7, 0x01cf, 0x0e66, 0x17e4, 0x1198,
+ 0x0c98, 0x0b1b, 0x10aa, 0x12a0, 0x0a34, 0x1047,
+ 0x1ce2, 0x1971, 0x1122, 0x097f, 0x097b, 0x106b,
+ 0x0ea7, 0x1624, 0x1df5, 0x0bf7, 0x0a55, 0x14f5,
+ 0x0279, 0x026b, 0x1d20, 0x2567, 0x2c79, 0x2b21,
+ 0x14a2, 0x0f1f, 0x0ec3, 0x0567, 0x046e, 0xfac2,
+ 0xf791, 0x06da, 0x0147, 0xf9f2, 0xfe78, 0xf286,
+ 0xf97c, 0x0f19, 0x02ac, 0xff31, 0x0cb3, 0xf7be,
+ 0xe7ac, 0xfbf9, 0x0610, 0xffbb, 0x03fd, 0x0f70,
+ 0x16e6, 0x1ab2, 0x183f, 0x0b1a, 0x061b, 0x1372,
+ 0x1438, 0x053f, 0x02cc, 0x0343, 0xfc49, 0xff4e,
+ 0x0c24, 0x1596, 0x1525, 0x0aee, 0x0490, 0x0b6c,
+ 0x1105, 0x081a, 0x0189, 0x0c55, 0x1902, 0x1fd2,
+ 0x1f7c, 0x0fd7, 0x06f9, 0x0bc7, 0x074b, 0x0ea5,
+ 0x20ca, 0x1993, 0x18bd, 0x26dc, 0x1cde, 0x1454,
+ 0x144c, 0x0b9f, 0x181e, 0x1e06, 0x0a2b, 0x12ac,
+ 0x16cf, 0xffc7, 0x0be5, 0x176f, 0x0639, 0x0f51,
+ 0x13ca, 0x093d, 0x1ad6, 0x173b, 0x057d, 0x1edb,
+ 0x24a5, 0x0e07, 0x1547, 0x1040, 0xfefc, 0x0faf,
+ 0x15d1, 0x0dc2, 0x1ca6, 0x20d7, 0x1842, 0x1907,
+ 0x0edf, 0x0a58, 0x17e9, 0x184a, 0x16f8, 0x1ef0,
+ 0x1976, 0x11c2, 0x12fd, 0x18a0, 0x28e9, 0x2c00,
+ 0x18c2, 0x1679, 0x1c02, 0x0ceb, 0x0880, 0x17e7,
+ 0x1e7e, 0x244d, 0x2bbc, 0x1de1, 0x0ad0, 0x09b1,
+ 0x0e9e, 0x19ea, 0x2a2b, 0x2174, 0x0a1e, 0x0a77,
+ 0x1369, 0x10b7, 0x18b0, 0x2c44, 0x2c07, 0x1641,
+ 0x0db9, 0x1909, 0x140f, 0x013f, 0x0363, 0x0b77,
+ 0x07c0, 0x06bf, 0xffa9, 0xf3d7, 0xfa26, 0x05fa,
+ 0x0ab7, 0x0e09, 0x0bb8, 0x0b2b, 0x0d69, 0x05f1,
+ 0x0320, 0x0d6f, 0x1530, 0x1478, 0x0cdf, 0x0b36,
+ 0x156a, 0x1578, 0x0c5c, 0x0c40, 0x0b9c, 0x072a,
+ 0x0727, 0x05f5, 0x0103, 0xfb24, 0xfa0d, 0x060b,
+ 0x18dd, 0x225b, 0x19db, 0x0cf8, 0x1000, 0x1449,
+ 0x05f0, 0xf4ed, 0xf1ff, 0xf8fe, 0xfc20, 0xf984,
+ 0x00f6, 0x0ced, 0x10c8, 0x103b, 0x018e, 0xf1a3,
+ 0xf986, 0x012d, 0x0499, 0x105d, 0x07fd, 0xf720,
+ 0xf852, 0xfa5b, 0x00fa, 0x0257, 0xf157, 0xf287,
+ 0xf4cd, 0xdf83, 0xe11f, 0xf84f, 0x0e1d, 0x1d75,
+ 0x0986, 0xf932, 0x078e, 0xfa60, 0xef8d, 0x055d,
+ 0x01af, 0xf88b, 0xf71b, 0xde25, 0xe00a, 0xf881,
+ 0xf6f4, 0x002d, 0x0bae, 0xfe16, 0xf7df, 0xf0eb,
+ 0xec7f, 0xfb5d, 0xfa9d, 0xf7d3, 0xfd52, 0xe9af,
+ 0xe462, 0xf5d0, 0xf009, 0xf3a7, 0x0314, 0xfba5,
+ 0x0086, 0x08ab, 0xf383, 0xebd9, 0xf615, 0xf456,
+ 0xf9bc, 0x07bc, 0x0994, 0x017c, 0xf3ee, 0xe8b4,
+ 0xea01, 0xf6ca, 0x0699, 0x08f6, 0xfd9d, 0xf69e,
+ 0xf19f, 0xecd9, 0xf532, 0xfe48, 0xfffa, 0x0bef,
+ 0x139b, 0x0767, 0x05e4, 0x0e8a, 0x053e, 0xfb88,
+ 0xfa3b, 0xf47c, 0xfd2c, 0x0d8c, 0x04c8, 0xf628,
+ 0xf93d, 0xfd7f, 0xfbef, 0xfed2, 0x033f, 0xf9f1,
+ 0xe998, 0xe6ed, 0xe78e, 0xe8ea, 0xfb6b, 0x07ca,
+ 0x03ec, 0x055e, 0xfeb4, 0xf279, 0xf761, 0xfa38,
+ 0xf5ab, 0xf53d, 0xf327, 0xf769, 0xf7a2, 0xea33,
+ 0xeb25, 0xec8f, 0xdef8, 0xe457, 0xef41, 0xea71,
+ 0xec69, 0xec48, 0xe61f, 0xeadc, 0xe85a, 0xdd32,
+ 0xdd0f, 0xe3b6, 0xedbb, 0xf019, 0xe16c, 0xd8fb,
+ 0xe0d2, 0xe6f6, 0xe1e8, 0xdcad, 0xe560, 0xece8,
+ 0xe5db, 0xdf1d, 0xdb2e, 0xe094, 0xf45b, 0xf8cc,
+ 0xf207, 0xf33e, 0xe6ab, 0xdda7, 0xedd1, 0xf642,
+ 0xfd79, 0x0c40, 0x01e6, 0xf454, 0xf55d, 0xe693,
+ 0xe07a, 0xf5a4, 0xf870, 0xe96e, 0xe836, 0xe69d,
+ 0xdcb4, 0xddea, 0xecd9, 0xfb06, 0xfbfd, 0xf224,
+ 0xee87, 0xf51f, 0xfbc5, 0x0251, 0x0447, 0xf8da,
+ 0xef15, 0xf1d0, 0xf607, 0xfb4a, 0x010d, 0x0307,
+ 0x09df, 0x0ae8, 0xfb5a, 0xf866, 0x0a7d, 0x11b3,
+ 0x0579, 0xf88c, 0xf58d, 0xf796, 0xf9f3, 0xfeac,
+ 0xff91, 0xf8ee, 0xf267, 0xf054, 0xf5b6, 0xf549,
+ 0xe51c, 0xe3f9, 0xef15, 0xe6f9, 0xeddb, 0x0afd,
+ 0x0a7e, 0xfdea, 0x01a4, 0xfd67, 0xf347, 0xe943,
+ 0xe085, 0xec17, 0xf2a7, 0xe3a8, 0xe439, 0xeb6e,
+ 0xe358, 0xe246, 0xe51f, 0xe3d7, 0xe9fa, 0xe818,
+ 0xde6e, 0xe531, 0xef70, 0xeeb2, 0xf00f, 0xf245,
+ 0xec1f, 0xe507, 0xe4dc, 0xe7af, 0xeb40, 0xf565,
+ 0xfe12, 0xf521, 0xe88a, 0xec38, 0xf50d, 0xfc97,
+ 0x07e6, 0x0b47, 0x05ae, 0x0076, 0xf4c5, 0xeed1,
+ 0xfe90, 0x081b, 0xfe49, 0xf9a6, 0xfbb1, 0xf910,
+ 0xf757, 0x0059, 0x12fd, 0x18b3, 0x0ae9, 0x0154,
+ 0xfd13, 0xfa2e, 0x0131, 0x02ab, 0xfcfd, 0xfd97,
+ 0xf801, 0xf467, 0xfd20, 0xfc73, 0xfa3b, 0xfdac,
+ 0xf3ff, 0xeebe, 0xf8ae, 0xff6f, 0x04b1, 0x0482,
+ 0xfccf, 0xf9d9, 0xf67c, 0xfa43, 0x04d9, 0xfdba,
+ 0xf9a0, 0x038f, 0xff3f, 0xfe39, 0x0762, 0x054e,
+ 0x0bb8, 0x104c, 0xfe5c, 0xff95, 0x0f2d, 0x03c6,
+ 0xf81e, 0xfed4, 0xfd40, 0xf20c, 0xf248, 0x0126,
+ 0x079a, 0xfba4, 0xf25c, 0xf0e3, 0xf1ae, 0xf977,
+ 0xfe9c, 0xff31, 0x037f, 0x0081, 0xf867, 0xf7b6,
+ 0xf6ae, 0xf21b, 0xec1c, 0xe584, 0xe4d6, 0xe3ed,
+ 0xe1a7, 0xe7fb, 0xed67, 0xf0b2, 0xf779, 0xf0f2,
+ 0xe6d1, 0xecfd, 0xec3a, 0xe374, 0xea3e, 0xece3,
+ 0xe262, 0xe24d, 0xe6c9, 0xe93f, 0xf30a, 0xf514,
+ 0xeb6c, 0xe63b, 0xdd6a, 0xd26d, 0xd809, 0xe20b,
+ 0xe00e, 0xd6d6, 0xcdc5, 0xd0fb, 0xdcdb, 0xe006,
+ 0xe3c3, 0xec32, 0xe75f, 0xde2a, 0xe196, 0xe8cc,
+ 0xec05, 0xf093, 0xf98a, 0xfccb, 0xf3fb, 0xec25,
+ 0xe738, 0xe1c1, 0xe6e1, 0xeb5a, 0xe74b, 0xefc8,
+ 0xf789, 0xeff8, 0xf28b, 0xf614, 0xe9cb, 0xe837,
+ 0xf2b5, 0xf6a5, 0xf679, 0xf1e1, 0xf0a0, 0xf844,
+ 0xf8de, 0xf67e, 0xf879, 0xf68e, 0xfd70, 0x09b2,
+ 0x04be, 0x00b1, 0x046c, 0xf89f, 0xf041, 0xfbc5,
+ 0x004f, 0xfe03, 0x055f, 0x09d3, 0x03a3, 0xfb50,
+ 0xfc42, 0x0b8e, 0x1306, 0x0739, 0x01a4, 0x0571,
+ 0x032d, 0x00b0, 0xfb33, 0xf207, 0xf746, 0x008a,
+ 0xfd19, 0xfad5, 0xfbc9, 0xf631, 0xef73, 0xecec,
+ 0xf11f, 0xf76f, 0xf5eb, 0xf2de, 0xf287, 0xf1e4,
+ 0xfa12, 0x03ac, 0xfd09, 0xf456, 0xf521, 0xf255,
+ 0xefb4, 0xf668, 0xf7b3, 0xf013, 0xf0ac, 0xf690,
+ 0xf790, 0xf946, 0xf50b, 0xea60, 0xf196, 0x0252,
+ 0x0473, 0x0576, 0x081e, 0xffbe, 0xfa0d, 0xf9cd,
+ 0xf2ad, 0xec0a, 0xee07, 0xf699, 0xfcd4, 0xfb65,
+ 0xff19, 0x058a, 0x025c, 0x033e, 0x04b7, 0xf516,
+ 0xe951, 0xf215, 0xff07, 0x025a, 0xfa0f, 0xf48e,
+ 0xfc1e, 0xfd43, 0xf1d5, 0xeeac, 0xf5f1, 0xf5cb,
+ 0xe8bd, 0xde44, 0xe07e, 0xe5c6, 0xeadf, 0xef1f,
+ 0xe9b2, 0xe55e, 0xed4d, 0xf415, 0xf594, 0xf5fa,
+ 0xf2e4, 0xf426, 0xfab6, 0xf9f2, 0xf40d, 0xf0e3,
+ 0xf30f, 0xfd90, 0x02a9, 0xf5f4, 0xec85, 0xf094,
+ 0xee47, 0xeced, 0xfc6b, 0x0577, 0xfd49, 0xf4e6,
+ 0xec77, 0xe7de, 0xef04, 0xf28d, 0xeeea, 0xecac,
+ 0xe700, 0xe186, 0xe345, 0xed88, 0xfdf2, 0x013b,
+ 0xf7d4, 0xf503, 0xef18, 0xeb2c, 0xf5f7, 0xf29c,
+ 0xe7d4, 0xf21d, 0xf415, 0xeb29, 0xf509, 0xfb27,
+ 0xf597, 0xfcd0, 0x01ef, 0xf665, 0xec0c, 0xed74,
+ 0xf2ce, 0xf001, 0xebd1, 0xf2ba, 0xf7d1, 0xf4fc,
+ 0xf590, 0xf70d, 0xf7a4, 0xf8ed, 0xf508, 0xf2ae,
+ 0xf3d0, 0xec89, 0xe935, 0xf572, 0xfb2d, 0xf482,
+ 0xf373, 0xf460, 0xf1b0, 0xf3f9, 0xf646, 0xf89e,
+ 0x031c, 0x03bc, 0xf4c6, 0xef05, 0xf331, 0xf710,
+ 0xfdc4, 0xff9d, 0xfd27, 0xfef4, 0xfbbe, 0xf588,
+ 0xf557, 0xf5ca, 0xf9fb, 0xfef6, 0xfcbf, 0x0270,
+ 0x0d56, 0x09a5, 0x0165, 0xfbfb, 0xf4cf, 0xf5f8,
+ 0xfc1d, 0xfbed, 0xfa46, 0xf3c7, 0xe7ed, 0xe75b,
+ 0xf00f, 0xf422, 0xf683, 0xf880, 0xf590, 0xf420,
+ 0xf56f, 0xf0a7, 0xec80, 0xf3a5, 0xfbb4, 0xfc8b,
+ 0xfd45, 0xfbef, 0xf36f, 0xed79, 0xef7c, 0xf1df,
+ 0xf4b4, 0xfc19, 0x01c7, 0x0408, 0x0544, 0xffee,
+ 0xfc46, 0x0440, 0x0656, 0xff9e, 0x016f, 0x041d,
+ 0x0191, 0x0006, 0xfa11, 0xf781, 0xfabc, 0xf2bc,
+ 0xed4c, 0xf425, 0xf2a1, 0xf0ee, 0xf6bd, 0xf2f0,
+ 0xeea2, 0xf1f5, 0xf3a3, 0xf9f0, 0x0094, 0xfe37,
+ 0xfdc8, 0xfeee, 0xfbd5, 0xfa68, 0xfa6b, 0xfad0,
+ 0xfb3d, 0xfc94, 0x04f9, 0x0860, 0xfd6f, 0xf856,
+ 0xfede, 0x028c, 0x010f, 0xfb8b, 0xf4c7, 0xf229,
+ 0xf2c6, 0xf751, 0xfb41, 0xf713, 0xf5f3, 0x007b,
+ 0x07d5, 0x01f2, 0xfa85, 0xfa20, 0xf715, 0xf0a6,
+ 0xf1d7, 0xf310, 0xef2c, 0xf130, 0xf4ba, 0xf547,
+ 0xf8d8, 0xfa95, 0xfc63, 0xff56, 0xf84b, 0xf3c7,
+ 0xfac3, 0xfb15, 0xfa38, 0x0356, 0x0781, 0x0387,
+ 0xfdf8, 0xf920, 0xfbdd, 0x009c, 0x01b0, 0x0681,
+ 0x08b9, 0x040a, 0x049d, 0x09db, 0x0c6c, 0x0be3,
+ 0x07e2, 0x05fe, 0x08f0, 0x0a88, 0x0a73, 0x0925,
+ 0x07a8, 0x0bf8, 0x0f23, 0x09e4, 0x07b1, 0x0aa4,
+ 0x086f, 0x0666, 0x0b84, 0x0e6a, 0x0786, 0xfc66,
+ 0xf585, 0xf42b, 0xf556, 0xfaff, 0x0508, 0x08c7,
+ 0x0287, 0xfdb6, 0xfecc, 0xffcd, 0x0307, 0x0bc1,
+ 0x111b, 0x0e30, 0x07ed, 0x01b8, 0x027c, 0x0b79,
+ 0x0b7e, 0x0210, 0x0437, 0x0af6, 0x04e1, 0xff5d,
+ 0x02c1, 0x01e4, 0xfc21, 0xf9cd, 0xfb4b, 0x0004,
+ 0x0847, 0x0fa3, 0x0e82, 0x084b, 0x09ab, 0x0fa9,
+ 0x109e, 0x0f90, 0x0be4, 0x04cc, 0x031a, 0x04f7,
+ 0x041a, 0x046f, 0x0742, 0x0ac3, 0x0bc2, 0x0667,
+ 0x01ac, 0x01b9, 0xff60, 0xfc52, 0xfe6d, 0x0220,
+ 0x030e, 0x024f, 0x0542, 0x0c1f, 0x0dea, 0x0864,
+ 0x037f, 0x0464, 0x0843, 0x0962, 0x08c3, 0x0a19,
+ 0x0d7d, 0x1229, 0x0e97, 0xff68, 0xf8f7, 0x003f,
+ 0x0396, 0x03bd, 0x064f, 0x06a1, 0x07f2, 0x09e0,
+ 0x067b, 0x01e0, 0x0011, 0xff2b, 0xfb66, 0xf5f7,
+ 0xf92a, 0x03dc, 0x0a2e, 0x0b9a, 0x08ae, 0xff62,
+ 0xf69c, 0xf487, 0xf819, 0xfdea, 0x067a, 0x1047,
+ 0x0e30, 0x035d, 0x01d6, 0x0119, 0xfbd2, 0x0130,
+ 0x09a5, 0x0c06, 0x0c1e, 0x0369, 0xfd1f, 0x024e,
+ 0xfd98, 0xf6a5, 0xff82, 0x0444, 0x01fb, 0x0553,
+ 0x0423, 0xffa2, 0x0003, 0xfeec, 0xfdcb, 0xfebc,
+ 0xfef4, 0x0290, 0x058d, 0x014a, 0xfaee, 0xf573,
+ 0xf34b, 0xf9f4, 0x0319, 0x0341, 0xfcde, 0xfb36,
+ 0x0022, 0x0451, 0x0517, 0x042c, 0x03ae, 0x04d9,
+ 0x0337, 0xfe83, 0xfe20, 0xfffc, 0xff2f, 0x0048,
+ 0x03c0, 0x05fb, 0x0707, 0x02b6, 0xf9a8, 0xf9ed,
+ 0x04f0, 0x09a6, 0x0719, 0x0ad2, 0x106e, 0x0e1d,
+ 0x0a48, 0x0a54, 0x0aa1, 0x080c, 0x00c1, 0xf8b8,
+ 0xf81b, 0xfdf8, 0x013c, 0x0076, 0x0472, 0x0973,
+ 0x00e2, 0xf4cf, 0xf503, 0xf57e, 0xf300, 0xf993,
+ 0xffd3, 0xfcf1, 0xf8b0, 0xf282, 0xeae9, 0xec07,
+ 0xf407, 0xf7be, 0xf78b, 0xfa56, 0xfb6f, 0xf7d7,
+ 0xfa37, 0x0108, 0x0311, 0x042b, 0x0283, 0xfefb,
+ 0x041e, 0x05a1, 0xfa9f, 0xf391, 0xf276, 0xf622,
+ 0x00bd, 0xff10, 0xf4e3, 0xfa53, 0xfe96, 0xf446,
+ 0xf225, 0xf7f1, 0xf5b1, 0xf4ec, 0xfd00, 0x0291,
+ 0x0187, 0xff32, 0xfbbc, 0xf7de, 0xf535, 0xefb3,
+ 0xec69, 0xf3fa, 0xfd8d, 0x0238, 0x043a, 0x00b0,
+ 0xfd5a, 0xff0b, 0xfcbd, 0xfa82, 0xfef4, 0x00d5,
+ 0x015a, 0x07bd, 0x0e46, 0x0d29, 0x03ab, 0xfe18,
+ 0x0453, 0x0879, 0x0789, 0x0b77, 0x0c87, 0x0804,
+ 0x0919, 0x0ca6, 0x0c49, 0x0c48, 0x0dee, 0x0eca,
+ 0x0eb9, 0x0d86, 0x0bd5, 0x0d65, 0x106f, 0x0dcc,
+ 0x093f, 0x057d, 0xfa7d, 0xf1ae, 0xf560, 0xf70d,
+ 0xf6c5, 0xffa9, 0x07f6, 0x0c8e, 0x0f18, 0x07f8,
+ 0x02f2, 0x097d, 0x0c1b, 0x08f6, 0x0905, 0x0795,
+ 0x029b, 0xfe9b, 0xfce3, 0xfde4, 0x01d7, 0x07e9,
+ 0x0cd0, 0x0c40, 0x059c, 0xfeab, 0xfe7d, 0xffa0,
+ 0xfcac, 0xff33, 0x0439, 0x01e6, 0x0260, 0x06b9,
+ 0x0702, 0x085e, 0x05a9, 0xfe37, 0xffd3, 0x006c,
+ 0xf92e, 0xf945, 0xfbcd, 0xf8d0, 0xf7c3, 0xf8b4,
+ 0xfc6f, 0x0109, 0xff86, 0x0002, 0x035f, 0xff2b,
+ 0xfa42, 0xf934, 0xf581, 0xf393, 0xf86a, 0xfd5c,
+ 0xfc1f, 0xfb3e, 0x0080, 0x00b0, 0xfb67, 0xfd38,
+ 0xff2e, 0x0024, 0x090a, 0x0a7a, 0x00ba, 0xfe0a,
+ 0xfde6, 0xfb08, 0xff3a, 0x045b, 0x01f2, 0xff36,
+ 0x011c, 0x035a, 0x02b7, 0x015d, 0xfe61, 0xf952,
+ 0xf7fc, 0xf81b, 0xf76a, 0xf9e8, 0xf8a0, 0xf5fc,
+ 0xfcd0, 0x00af, 0xfd77, 0xfdba, 0xfb0f, 0xf962,
+ 0xfedd, 0xfb91, 0xf60a, 0xfc63, 0xfdde, 0xf72d,
+ 0xf8d6, 0x02f8, 0x0a77, 0x0601, 0xfb8e, 0xfa28,
+ 0xfe39, 0xff35, 0x00d2, 0x048e, 0x058d, 0xfff9,
+ 0xfa39, 0xfbd1, 0xfd63, 0xfc75, 0xfd9e, 0xfc9f,
+ 0xfca7, 0xff96, 0xfe3c, 0xff95, 0x0317, 0xffd9,
+ 0x01e4, 0x0574, 0xfa5b, 0xf16b, 0xf45d, 0xf6a3,
+ 0xfb0b, 0x0048, 0xfc9e, 0xf691, 0xf295, 0xedae,
+ 0xed7e, 0xf411, 0xf776, 0xf338, 0xf073, 0xf13e,
+ 0xec59, 0xe712, 0xed3b, 0xf7e5, 0xfb6e, 0xf82d,
+ 0xf550, 0xf54f, 0xf3a8, 0xf432, 0xfc2f, 0x0285,
+ 0x02ac, 0x0150, 0xff64, 0xfe4b, 0xfc3b, 0xfa2b,
+ 0x00e9, 0x087e, 0x0393, 0xfa27, 0xf594, 0xf5e9,
+ 0xf82f, 0xf836, 0xf94d, 0xfa69, 0xf532, 0xf27d,
+ 0xf799, 0xfc3d, 0xfd4f, 0xf80f, 0xef09, 0xeb4e,
+ 0xe866, 0xe4f9, 0xe9b5, 0xf1ed, 0xf69c, 0xf7e7,
+ 0xf742, 0xf8ea, 0xf7ef, 0xf2e0, 0xf73a, 0xfc9f,
+ 0xf491, 0xf142, 0xf897, 0xf5e5, 0xed45, 0xf024,
+ 0xf8c2, 0xfc0a, 0xfa89, 0xf629, 0xf078, 0xeffa,
+ 0xf711, 0xfc94, 0xfac7, 0xf92a, 0xfbf5, 0xfbcd,
+ 0xf7d0, 0xf798, 0xf7d8, 0xf4e8, 0xf850, 0xfedc,
+ 0xfbac, 0xf710, 0xf9b5, 0xfb13, 0xfb08, 0x001f,
+ 0x0684, 0x0878, 0x06bc, 0x0668, 0x0883, 0x080b,
+ 0x057b, 0x04d1, 0x04d4, 0x03de, 0x03a4, 0x06c0,
+ 0x0932, 0x0485, 0x01ad, 0x0840, 0x0a33, 0x0376,
+ 0x02e3, 0x0845, 0x0974, 0x094d, 0x0c98, 0x0f4f,
+ 0x0ee2, 0x0f19, 0x11e7, 0x1404, 0x1185, 0x0abb,
+ 0x05e0, 0x0611, 0x0730, 0x0757, 0x04bb, 0xfeb8,
+ 0xfc65, 0xfc0e, 0xf6f5, 0xf5b9, 0xfcaa, 0x03fd,
+ 0x0894, 0x078f, 0x032f, 0x0159, 0xfd30, 0xf9df,
+ 0xfe59, 0x00d1, 0x013e, 0x0672, 0x07fb, 0x0620,
+ 0x0774, 0x08dd, 0x0b66, 0x0bf7, 0x0608, 0x0462,
+ 0x08e1, 0x0851, 0x033c, 0x0123, 0x05a5, 0x0b2a,
+ 0x084e, 0x0297, 0x03bd, 0x098c, 0x0e1b, 0x0bb7,
+ 0x0542, 0x040c, 0x0355, 0xfe81, 0xffb0, 0x07af,
+ 0x0b8e, 0x086c, 0x02af, 0xfec8, 0xffcc, 0x03a3,
+ 0x01cb, 0xfa5b, 0xfa6b, 0x003f, 0xfe35, 0xfb1a,
+ 0x007b, 0x0459, 0x00e0, 0xfe01, 0x00f6, 0x031c,
+ 0xfe10, 0xfb6b, 0xfeef, 0xfc68, 0xf7d5, 0xfaaa,
+ 0xfb20, 0xf7b7, 0xfb18, 0x02dd, 0x07b8, 0x08cb,
+ 0x0816, 0x08c1, 0x0a01, 0x0707, 0x00de, 0xffa9,
+ 0x039d, 0x04a4, 0x059b, 0x0939, 0x06a9, 0x0218,
+ 0x0322, 0x0395, 0x05e7, 0x0828, 0xfebd, 0xf926,
+ 0x0357, 0x0986, 0x0857, 0x0b35, 0x0d22, 0x0b2e,
+ 0x0783, 0x020d, 0xffde, 0x005d, 0xfec1, 0xfe8a,
+ 0x0045, 0x0089, 0x0392, 0x0c4a, 0x127f, 0x0f84,
+ 0x08ee, 0x04ad, 0x0281, 0x0311, 0x03d0, 0x018e,
+ 0x009a, 0x0197, 0x01bd, 0x0310, 0x03c8, 0x02c4,
+ 0x0453, 0x0666, 0x0502, 0x020a, 0x008c, 0x0041,
+ 0xfc2d, 0xf644, 0xf61a, 0xf687, 0xf441, 0xf721,
+ 0xfc59, 0xfc15, 0xf592, 0xecc3, 0xed2f, 0xf6f8,
+ 0xfac6, 0xf857, 0xf879, 0xfb33, 0xfcf7, 0xf723,
+ 0xeecb, 0xf182, 0xf6c7, 0xf525, 0xf606, 0xf9ba,
+ 0xfabc, 0xf90e, 0xf350, 0xf174, 0xf69e, 0xf616,
+ 0xf332, 0xf589, 0xf2ad, 0xeeb0, 0xf4e4, 0xfa67,
+ 0xf988, 0xf884, 0xf517, 0xf245, 0xf550, 0xf6b1,
+ 0xf5ab, 0xf799, 0xf7a0, 0xf61f, 0xf820, 0xf816,
+ 0xf402, 0xf160, 0xf10b, 0xf317, 0xf5a2, 0xf41a,
+ 0xf1f1, 0xf4ee, 0xfb2d, 0xfe97, 0xfb83, 0xf6b3,
+ 0xf5f5, 0xf765, 0xfa29, 0xfe1b, 0xfe44, 0xf92a,
+ 0xf271, 0xf022, 0xf615, 0xfd69, 0xfff2, 0x0114,
+ 0x0210, 0x01c3, 0xffe9, 0xfd17, 0xfd19, 0xfc53,
+ 0xf603, 0xf38a, 0xf809, 0xfa99, 0xfb5f, 0xfe79,
+ 0x024e, 0x0135, 0xf8d4, 0xf3b9, 0xf5f7, 0xf6a8,
+ 0xf8c7, 0xfd91, 0xfc4e, 0xf9eb, 0xfa0a, 0xf865,
+ 0xf957, 0xfaa7, 0xf980, 0xfd25, 0xffcc, 0xfd3c,
+ 0xfe28, 0xfdd6, 0xf963, 0xf980, 0xfb21, 0xfbc8,
+ 0xfe71, 0xfe32, 0xfbc4, 0xfbfc, 0xfdd1, 0x00f7,
+ 0x0102, 0xfcc5, 0xfe43, 0x046b, 0x0698, 0x067a,
+ 0x04fb, 0x0390, 0x077e, 0x0aa9, 0x060a, 0xfeff,
+ 0xfa60, 0xf9d1, 0xfc8e, 0xfbe2, 0xf8a3, 0xfa6b,
+ 0xfd52, 0xfccc, 0xff80, 0x057a, 0x0761, 0x06c0,
+ 0x07b0, 0x08ab, 0x07f3, 0x0530, 0x0266, 0x023a,
+ 0x0205, 0xffc8, 0xff49, 0x0163, 0x0184, 0xfd9d,
+ 0xfa02, 0xfada, 0xfd68, 0xff98, 0x03ff, 0x071d,
+ 0x03e0, 0xffae, 0xfedb, 0xfd5c, 0xfccf, 0x027a,
+ 0x07db, 0x0503, 0x0059, 0x0041, 0x002d, 0xff20,
+ 0x01eb, 0x0726, 0x0933, 0x0681, 0x0235, 0xfeb9,
+ 0xfbee, 0xfcdd, 0x029c, 0x0623, 0x0500, 0x032a,
+ 0xffdd, 0xfb1e, 0xf902, 0xfa51, 0xfcf1, 0xfdbb,
+ 0xfc11, 0xfc63, 0xff6e, 0x0115, 0x007d, 0xffac,
+ 0xffef, 0xff72, 0xfcbe, 0xfbff, 0xfe1f, 0xfe98,
+ 0xfe07, 0xfd66, 0xfaab, 0xf824, 0xf6ea, 0xf612,
+ 0xf8e2, 0xfcdf, 0xfac2, 0xf6e1, 0xf8e4, 0xfc54,
+ 0xfb95, 0xf9e2, 0xf952, 0xf7e2, 0xf70c, 0xf839,
+ 0xf832, 0xf6c0, 0xf6cd, 0xf5bd, 0xf158, 0xeffd,
+ 0xf4d9, 0xf979, 0xfb9a, 0xfda2, 0xfd2d, 0xfb6c,
+ 0xfd4d, 0xffb8, 0xfe1e, 0xf8b3, 0xf272, 0xf114,
+ 0xf320, 0xf461, 0xfa42, 0x01e0, 0x01de, 0x00c3,
+ 0x01aa, 0xfd68, 0xf8d4, 0xf8b9, 0xf9c5, 0xfc34,
+ 0xfcd7, 0xf9dc, 0xf9b8, 0xfc6c, 0xfdf6, 0xfe17,
+ 0xfc47, 0xfa6a, 0xf87c, 0xf457, 0xf233, 0xf3ae,
+ 0xf727, 0xfd85, 0x0096, 0xfd7c, 0xfd32, 0x0013,
+ 0x0013, 0xfe91, 0xfc94, 0xf9d0, 0xf6e8, 0xf2d4,
+ 0xef8a, 0xef78, 0xf1a9, 0xf5f9, 0xfb2c, 0xfe40,
+ 0xfe10, 0xfb92, 0xf97d, 0xf8f4, 0xf973, 0xfb31,
+ 0xfb3c, 0xf822, 0xf537, 0xf22e, 0xf016, 0xf273,
+ 0xf4fb, 0xf6b2, 0xfc11, 0xffd5, 0xff0e, 0xfff9,
+ 0x014a, 0xffce, 0xfe7b, 0xfcf4, 0xfb4c, 0xfcd5,
+ 0xfdba, 0xf9a9, 0xf69f, 0xf83a, 0xf832, 0xf591,
+ 0xf611, 0xf7b8, 0xf691, 0xf506, 0xf40e, 0xf538,
+ 0xfb0e, 0xff26, 0xfcab, 0xf81f, 0xf39e, 0xf2c1,
+ 0xf9d6, 0xffd2, 0xfec3, 0xfdeb, 0xfc50, 0xf701,
+ 0xf5d5, 0xf7f3, 0xf616, 0xf43f, 0xf5ab, 0xf740,
+ 0xf96b, 0xfb48, 0xf9a6, 0xf6ae, 0xf6ce, 0xfa3e,
+ 0xfc17, 0xfa28, 0xf95a, 0xfa0c, 0xf7c7, 0xf492,
+ 0xf2a0, 0xf15b, 0xf389, 0xf81a, 0xf9aa, 0xf75f,
+ 0xf3e1, 0xf2bb, 0xf3af, 0xf419, 0xf89e, 0x0194,
+ 0x04c0, 0x021a, 0x00eb, 0xffc9, 0xfc41, 0xf7af,
+ 0xf646, 0xfb5b, 0xff2c, 0xfc98, 0xfb41, 0xfb1e,
+ 0xf833, 0xf84d, 0xfb91, 0xfd08, 0xff08, 0x0190,
+ 0x00ab, 0xfd34, 0xfbaa, 0xfefe, 0x01ec, 0xfed9,
+ 0xfcb4, 0xff2e, 0xfe69, 0xfb0e, 0xfacb, 0xf969,
+ 0xf525, 0xf43a, 0xf7e9, 0xfc31, 0xff74, 0x0260,
+ 0x0524, 0x0695, 0x0562, 0x0254, 0x0134, 0x03b0,
+ 0x04b4, 0x0202, 0x0165, 0x031a, 0x0217, 0x0046,
+ 0x0017, 0x0138, 0x0507, 0x0746, 0x054a, 0x069a,
+ 0x0a3a, 0x08e9, 0x06e6, 0x0629, 0x03c8, 0x04a1,
+ 0x081d, 0x08d2, 0x0a28, 0x0b36, 0x07b6, 0x0577,
+ 0x06a2, 0x076a, 0x09d6, 0x0c38, 0x0972, 0x068f,
+ 0x08fc, 0x0bb7, 0x09fa, 0x0614, 0x0296, 0xff14,
+ 0xfc69, 0xfc3c, 0xfdc3, 0xffd8, 0x0153, 0x0133,
+ 0x0100, 0x0079, 0xfd21, 0xf955, 0xf8a2, 0xfb12,
+ 0x00a8, 0x0660, 0x06f4, 0x0444, 0x02d1, 0x00b1,
+ 0xfd61, 0xfeef, 0x0486, 0x0406, 0xfd4c, 0xf9bc,
+ 0xf9aa, 0xfa9d, 0xfec3, 0x019f, 0xfff0, 0xff9a,
+ 0x0034, 0xfdf4, 0xfc0f, 0xfb2e, 0xf9cc, 0xf885,
+ 0xf621, 0xf5f1, 0xfa5a, 0xfb02, 0xf766, 0xf85a,
+ 0xf9f0, 0xf538, 0xeefd, 0xed75, 0xf26d, 0xf8c6,
+ 0xf7f9, 0xf431, 0xf694, 0xfaab, 0xf9bc, 0xf61a,
+ 0xf359, 0xf35f, 0xf5e8, 0xf833, 0xf901, 0xf772,
+ 0xf3e8, 0xf277, 0xf36b, 0xf497, 0xf89e, 0xfd79,
+ 0xfc72, 0xf8e3, 0xf8a2, 0xf8cf, 0xf89c, 0xfb93,
+ 0x00b9, 0x04c9, 0x05e2, 0x0455, 0x0315, 0x01f7,
+ 0xfe77, 0xfb39, 0xfad8, 0xfad7, 0xfac3, 0xfc30,
+ 0xfd77, 0xfd27, 0xfc6a, 0xfc72, 0xfdf4, 0x00c5,
+ 0x0355, 0x03d8, 0x01a1, 0xfe54, 0xfb87, 0xf81b,
+ 0xf530, 0xf6aa, 0xfa4d, 0xfa88, 0xf7b7, 0xf49a,
+ 0xf337, 0xf527, 0xf6d4, 0xf548, 0xf42e, 0xf3da,
+ 0xf2f1, 0xf538, 0xf8a3, 0xf8ed, 0xfa93, 0xfdb2,
+ 0xfd81, 0xfc8a, 0xfc4e, 0xfcf0, 0x00d5, 0x018e,
+ 0xfc02, 0xfa2a, 0xfbab, 0xf9cc, 0xf97a, 0xfa9f,
+ 0xf706, 0xf34a, 0xf432, 0xf767, 0xfb5b, 0xfdf6,
+ 0xfd76, 0xfae3, 0xf700, 0xf391, 0xf21f, 0xf239,
+ 0xf47d, 0xf762, 0xf7a0, 0xf6e0, 0xf768, 0xf7bd,
+ 0xf7a1, 0xf88f, 0xfa36, 0xfad4, 0xf9cc, 0xf771,
+ 0xf457, 0xf3fc, 0xf838, 0xfb6d, 0xfa43, 0xf84d,
+ 0xf835, 0xfa72, 0xfbe8, 0xf940, 0xf812, 0xfaef,
+ 0xfaca, 0xf91c, 0xfbe0, 0xff0a, 0xff7a, 0xffa5,
+ 0xfee4, 0xfc3d, 0xfad4, 0xfd0f, 0x00b8, 0x047d,
+ 0x08cf, 0x090b, 0x05d1, 0x07c8, 0x0a6d, 0x073d,
+ 0x06fe, 0x096b, 0x074d, 0x0754, 0x0b23, 0x0bd1,
+ 0x0abc, 0x0958, 0x0851, 0x0aaa, 0x0d7b, 0x0eb2,
+ 0x0ee9, 0x0c98, 0x0ac5, 0x0ba6, 0x0d8a, 0x111a,
+ 0x12a1, 0x1050, 0x0f94, 0x0e4f, 0x0bc4, 0x0d99,
+ 0x0eb4, 0x0bef, 0x0b17, 0x0a46, 0x087a, 0x093b,
+ 0x0ad3, 0x0ce4, 0x0e3e, 0x0c96, 0x0bc6, 0x0a5b,
+ 0x0629, 0x0606, 0x084b, 0x07c3, 0x087e, 0x0993,
+ 0x08f6, 0x0a35, 0x0b26, 0x0aec, 0x0cbc, 0x0df3,
+ 0x0cee, 0x0a51, 0x0567, 0x01dd, 0x01b3, 0x01fe,
+ 0x0220, 0x0139, 0xffb2, 0x00c0, 0x023a, 0x01ce,
+ 0x029f, 0x0419, 0x0380, 0x02ca, 0x035b, 0x02df,
+ 0x0020, 0xfd3b, 0xfc4b, 0xfcf5, 0xfd5a, 0xfbe8,
+ 0xf9a3, 0xf85f, 0xf78a, 0xf79b, 0xf96f, 0xfa77,
+ 0xf9d7, 0xf83e, 0xf4ba, 0xf2db, 0xf60b, 0xf903,
+ 0xf7bf, 0xf5fc, 0xf6eb, 0xf7f9, 0xf5c5, 0xf3ac,
+ 0xf602, 0xf976, 0xfbbf, 0xfec8, 0x00a8, 0x0004,
+ 0xff2d, 0xfe2d, 0xfcce, 0xfc61, 0xfcc1, 0xfde8,
+ 0xffc7, 0x0012, 0xfdce, 0xfbfb, 0xfbe9, 0xfab5,
+ 0xf9ae, 0xfceb, 0x00f4, 0x027f, 0x04d2, 0x066f,
+ 0x0355, 0xff00, 0xfd1a, 0xfcbd, 0xfe1d, 0x01e5,
+ 0x04ed, 0x0472, 0x0418, 0x0664, 0x07ae, 0x07d8,
+ 0x084f, 0x0776, 0x08b4, 0x0c1d, 0x0af8, 0x097f,
+ 0x0c64, 0x0c34, 0x0951, 0x0a07, 0x0bc8, 0x0cbd,
+ 0x0d5e, 0x0c93, 0x0c07, 0x0bb3, 0x0bb0, 0x0ea1,
+ 0x1090, 0x0e46, 0x0c45, 0x0bd7, 0x0c3a, 0x0d17,
+ 0x0ae6, 0x07fd, 0x0992, 0x0c31, 0x0d24, 0x0e12,
+ 0x0da7, 0x0c0a, 0x0a3e, 0x065f, 0x0290, 0x01df,
+ 0x0105, 0xfe6d, 0xfcfc, 0xfc87, 0xfbbb, 0xfc28,
+ 0xfdc1, 0xfe29, 0xfe2e, 0xffd6, 0x00b3, 0xfea1,
+ 0xfccc, 0xfcfd, 0xfce1, 0xfc46, 0xfba3, 0xf94d,
+ 0xf663, 0xf560, 0xf55a, 0xf4fa, 0xf3d7, 0xf1e2,
+ 0xf124, 0xf28c, 0xf40c, 0xf50c, 0xf6c8, 0xf8ed,
+ 0xf8fe, 0xf69d, 0xf641, 0xf8a3, 0xf803, 0xf46d,
+ 0xf2ca, 0xf2d7, 0xf318, 0xf351, 0xf207, 0xefdb,
+ 0xee92, 0xee81, 0xefc1, 0xf0d3, 0xf05b, 0xefa4,
+ 0xf0a4, 0xf432, 0xf6e0, 0xf620, 0xf797, 0xfb14,
+ 0xf80c, 0xf2ba, 0xf388, 0xf53e, 0xf475, 0xf51c,
+ 0xf656, 0xf74c, 0xf958, 0xf9e9, 0xf8af, 0xf866,
+ 0xf7ae, 0xf69d, 0xf8ba, 0xfb4f, 0xfaeb, 0xfb84,
+ 0xfc77, 0xf946, 0xf729, 0xf954, 0xf9e5, 0xf972,
+ 0xfad8, 0xfb73, 0xfc5f, 0xfdab, 0xfb9b, 0xf93e,
+ 0xf993, 0xfa57, 0xfb52, 0xfbfb, 0xfc7d, 0xff24,
+ 0x0102, 0x0080, 0x014a, 0x01d3, 0xff12, 0xfbad,
+ 0xfb8c, 0x0046, 0x05a6, 0x0646, 0x047c, 0x0424,
+ 0x060a, 0x08ed, 0x078b, 0x0329, 0x03f2, 0x066c,
+ 0x0466, 0x03c4, 0x063d, 0x058f, 0x0248, 0xfff3,
+ 0xfe53, 0xfe16, 0x0035, 0x02a2, 0x040e, 0x065c,
+ 0x0898, 0x0655, 0x0176, 0xffc3, 0xffd5, 0xff03,
+ 0x001c, 0x030a, 0x03f0, 0x02ee, 0x022f, 0x01fe,
+ 0x029e, 0x0388, 0x0305, 0x020e, 0x02a6, 0x03f8,
+ 0x05a8, 0x0798, 0x073c, 0x0573, 0x05ac, 0x06c3,
+ 0x07e0, 0x0982, 0x0880, 0x0558, 0x043d, 0x03cc,
+ 0x02b9, 0x033f, 0x0502, 0x0726, 0x084c, 0x0662,
+ 0x049d, 0x0508, 0x044d, 0x0394, 0x04ab, 0x042a,
+ 0x022d, 0x0107, 0x0001, 0xff37, 0xfe53, 0xfd53,
+ 0xfe54, 0xfe83, 0xfb15, 0xf8f4, 0xf9ee, 0xfb0d,
+ 0xfc36, 0xfbb9, 0xf92d, 0xf993, 0xfcc3, 0xff3f,
+ 0x027d, 0x05ea, 0x06be, 0x061d, 0x0517, 0x0427,
+ 0x0496, 0x05c6, 0x074f, 0x0842, 0x0639, 0x035a,
+ 0x02d1, 0x0336, 0x040e, 0x0509, 0x0489, 0x04a9,
+ 0x057f, 0x0399, 0x0174, 0x0254, 0x03df, 0x04b3,
+ 0x03b8, 0xff75, 0xfb3f, 0xf9fb, 0xfa55, 0xfaff,
+ 0xfa4e, 0xf805, 0xf664, 0xf547, 0xf4e4, 0xf6f9,
+ 0xf89f, 0xf72a, 0xf526, 0xf496, 0xf644, 0xfa41,
+ 0xfd4b, 0xfcee, 0xfa76, 0xf8b6, 0xf9d8, 0xfc33,
+ 0xfcc5, 0xfc08, 0xfb1c, 0xfac7, 0xfc13, 0xfdc0,
+ 0xff4b, 0x01aa, 0x02ea, 0x01c5, 0xffb7, 0xfd97,
+ 0xfd2a, 0xfee1, 0xff81, 0xfea4, 0xfe7c, 0xff0e,
+ 0x0035, 0x0138, 0x00ec, 0x00f6, 0x01ff, 0x022e,
+ 0x01b7, 0x0172, 0x0166, 0x02f5, 0x05a5, 0x05b3,
+ 0x020b, 0xfdf3, 0xfbf0, 0xfb5a, 0xfa11, 0xf804,
+ 0xf863, 0xfb5f, 0xfcb5, 0xfd50, 0x00d5, 0x0349,
+ 0x018b, 0x003f, 0x015d, 0x029f, 0x0385, 0x0496,
+ 0x0620, 0x0658, 0x03f2, 0x02a2, 0x033a, 0x029b,
+ 0x02c0, 0x0415, 0x033c, 0x037c, 0x0783, 0x0a98,
+ 0x0aa0, 0x092c, 0x0779, 0x0734, 0x0792, 0x06c9,
+ 0x0622, 0x0647, 0x0551, 0x02a5, 0x00ee, 0x019f,
+ 0x00fe, 0xfdd1, 0xfd3a, 0x0006, 0x01f9, 0x0261,
+ 0x01ee, 0x00c5, 0x0088, 0x0181, 0x033f, 0x0615,
+ 0x0783, 0x0538, 0x0229, 0x0151, 0x015e, 0x0075,
+ 0xfed2, 0xfe1c, 0xff28, 0x000d, 0xff5c, 0xfe7b,
+ 0xfe14, 0xfde9, 0xfe81, 0xfebb, 0xfdfd, 0xfe0e,
+ 0xfe02, 0xfc77, 0xfc1e, 0xfded, 0xff15, 0xfe75,
+ 0xfd8c, 0xfd67, 0xfd05, 0xfc55, 0xfd49, 0xfeec,
+ 0xfe56, 0xfb52, 0xf828, 0xf840, 0xfaf5, 0xfbc6,
+ 0xfbd1, 0xfd61, 0xfe65, 0xffc8, 0x00c2, 0xfe50,
+ 0xfd99, 0x0046, 0xffc3, 0xfce3, 0xfb23, 0xfaaf,
+ 0xfd70, 0x0049, 0xff91, 0xfef7, 0xfe66, 0xfc5c,
+ 0xfc30, 0xfcf6, 0xfd88, 0xffcf, 0x014e, 0x01f2,
+ 0x046b, 0x057e, 0x03c0, 0x0246, 0x0150, 0x00b9,
+ 0x00ae, 0x0059, 0x007e, 0x012f, 0x0201, 0x0437,
+ 0x0653, 0x05d3, 0x04b4, 0x04d9, 0x04d5, 0x0437,
+ 0x044a, 0x0578, 0x0763, 0x097c, 0x0a66, 0x0968,
+ 0x0856, 0x091c, 0x0afa, 0x0c4b, 0x0c72, 0x0bd3,
+ 0x0c20, 0x0ea6, 0x1150, 0x1130, 0x0ea7, 0x0b82,
+ 0x0908, 0x0831, 0x084d, 0x08b4, 0x0992, 0x0951,
+ 0x0819, 0x07d0, 0x06cc, 0x0553, 0x072b, 0x0ac9,
+ 0x0bf4, 0x09bd, 0x069e, 0x070d, 0x096b, 0x0899,
+ 0x0702, 0x05c8, 0x01e9, 0xffbf, 0x01f6, 0x0378,
+ 0x02f7, 0x01b2, 0xffe7, 0xff79, 0x00e0, 0x03d6,
+ 0x070b, 0x077c, 0x07c1, 0x0a07, 0x09cb, 0x07c4,
+ 0x0739, 0x0543, 0x01de, 0xffbd, 0xfeb8, 0xffd8,
+ 0x018b, 0x0049, 0xfec5, 0xfe95, 0xfcd7, 0xfb7c,
+ 0xfcfd, 0xfeea, 0x00e4, 0x0343, 0x031b, 0x00ac,
+ 0xfec4, 0xfcc0, 0xfaa4, 0xf9f5, 0xf911, 0xf7ba,
+ 0xf838, 0xf903, 0xf883, 0xf8b2, 0xf970, 0xf950,
+ 0xf9ab, 0xfb52, 0xfcd3, 0xfd89, 0xfebb, 0x00a3,
+ 0x00f3, 0xfed5, 0xfd0e, 0xfe4a, 0x016d, 0x02b7,
+ 0x0157, 0x0018, 0xffa1, 0xff66, 0x000b, 0x00c1,
+ 0x015b, 0x02e3, 0x045a, 0x0582, 0x06a1, 0x0638,
+ 0x0510, 0x0474, 0x0368, 0x030d, 0x0483, 0x0605,
+ 0x06fa, 0x07a9, 0x0788, 0x06a7, 0x0583, 0x0484,
+ 0x0389, 0x031a, 0x04a4, 0x05be, 0x036e, 0x012c,
+ 0x0212, 0x03fa, 0x053d, 0x058f, 0x0505, 0x04af,
+ 0x03ec, 0x01ee, 0x0133, 0x03c5, 0x075f, 0x0861,
+ 0x06a3, 0x0504, 0x0531, 0x0672, 0x072e, 0x0667,
+ 0x04c2, 0x0352, 0x0240, 0x01ea, 0x031d, 0x0506,
+ 0x0590, 0x052e, 0x0585, 0x0524, 0x041d, 0x0527,
+ 0x05d7, 0x0315, 0xffc2, 0xfd8b, 0xfc26, 0xfd13,
+ 0xfec2, 0xfe2f, 0xfc4d, 0xfa9c, 0xf8b2, 0xf6eb,
+ 0xf7a8, 0xfad7, 0xfb87, 0xf912, 0xf8d8, 0xfa7b,
+ 0xfa4d, 0xfa1e, 0xfbf5, 0xfe94, 0x0097, 0x00c2,
+ 0xff37, 0xfde9, 0xfe34, 0xff1a, 0xfee9, 0xfea9,
+ 0xff13, 0xfdf2, 0xfbce, 0xfab3, 0xf9fa, 0xfa32,
+ 0xfb1a, 0xfa56, 0xf9d5, 0xfc08, 0xff12, 0x0148,
+ 0x01ca, 0x00e6, 0x00af, 0x00b4, 0x004b, 0x00e9,
+ 0x01ae, 0x0155, 0x00e1, 0x0070, 0xff63, 0xfdb0,
+ 0xfc48, 0xfd17, 0xff49, 0x000b, 0x0054, 0x0235,
+ 0x0387, 0x0246, 0x012d, 0x029a, 0x04b2, 0x05ba,
+ 0x061b, 0x061e, 0x0593, 0x03d4, 0x0116, 0xff34,
+ 0xfea4, 0xff35, 0x0129, 0x029f, 0x02f0, 0x0449,
+ 0x061d, 0x071d, 0x0825, 0x0912, 0x0986, 0x0979,
+ 0x086e, 0x0791, 0x075f, 0x0684, 0x05ae, 0x0625,
+ 0x077d, 0x08ab, 0x08b0, 0x081b, 0x0849, 0x096e,
+ 0x0b17, 0x0b78, 0x09c3, 0x0864, 0x083a, 0x0899,
+ 0x0969, 0x08c8, 0x0727, 0x0744, 0x0794, 0x079c,
+ 0x090b, 0x08ab, 0x0549, 0x02ee, 0x0259, 0x027a,
+ 0x0339, 0x03a2, 0x0402, 0x042f, 0x02a2, 0x00b8,
+ 0xffd9, 0xff3c, 0xff1a, 0xff00, 0xfe21, 0xfe0a,
+ 0xfee2, 0xfec8, 0xfde4, 0xfd47, 0xfce1, 0xfc56,
+ 0xfb5d, 0xfa47, 0xf99b, 0xf8e8, 0xf7cd, 0xf714,
+ 0xf758, 0xf843, 0xf975, 0xfa79, 0xfaa4, 0xfa53,
+ 0xfa91, 0xfb0a, 0xfa41, 0xf831, 0xf6fc, 0xf792,
+ 0xf868, 0xf999, 0xfca2, 0xff37, 0xfe0c, 0xfa8d,
+ 0xf7ec, 0xf6bc, 0xf60c, 0xf5b7, 0xf659, 0xf761,
+ 0xf788, 0xf74a, 0xf757, 0xf6f6, 0xf696, 0xf756,
+ 0xf805, 0xf759, 0xf6c3, 0xf6ee, 0xf64c, 0xf572,
+ 0xf5c8, 0xf5aa, 0xf48e, 0xf3f0, 0xf322, 0xf27a,
+ 0xf348, 0xf36a, 0xf22f, 0xf248, 0xf4c3, 0xf92a,
+ 0xfcdf, 0xfd81, 0xfdfc, 0xff22, 0xfe28, 0xfd98,
+ 0xff1f, 0xffd5, 0x0030, 0x00b5, 0x00a1, 0x014f,
+ 0x00c4, 0xfe52, 0xfebb, 0x0105, 0x01ac, 0x02f1,
+ 0x057a, 0x079e, 0x08dc, 0x088e, 0x08c4, 0x09fa,
+ 0x085d, 0x05b6, 0x05fd, 0x0700, 0x0735, 0x0710,
+ 0x05f4, 0x051c, 0x04c0, 0x033d, 0x01f2, 0x01c9,
+ 0x00d4, 0xff2a, 0xfe51, 0xfdda, 0xfd6b, 0xfe2d,
+ 0xffad, 0x0021, 0x0000, 0xffd1, 0xfef1, 0xfe8e,
+ 0xfeb0, 0xfdb0, 0xfd1b, 0xfd5e, 0xfc20, 0xfb22,
+ 0xfc91, 0xfe11, 0xfe19, 0xfd41, 0xfc6c, 0xfce2,
+ 0xfe12, 0xfe78, 0xfec0, 0x003e, 0x02a8, 0x0402,
+ 0x02e7, 0x0083, 0xfe44, 0xfc59, 0xfb22, 0xfaa5,
+ 0xfa27, 0xf96e, 0xf8f7, 0xf916, 0xf8fd, 0xf7c1,
+ 0xf61c, 0xf4f4, 0xf44e, 0xf474, 0xf56e, 0xf66e,
+ 0xf6e2, 0xf6c9, 0xf6b3, 0xf722, 0xf743, 0xf699,
+ 0xf6eb, 0xf8a5, 0xf96c, 0xf961, 0xfa30, 0xfa42,
+ 0xf922, 0xf923, 0xf988, 0xf8ec, 0xf858, 0xf7b6,
+ 0xf712, 0xf748, 0xf74c, 0xf727, 0xf88f, 0xfafe,
+ 0xfcde, 0xfd6e, 0xfd1b, 0xfd3b, 0xfdc9, 0xfe13,
+ 0xfe0d, 0xfd98, 0xfdd9, 0xff54, 0x001f, 0x003a,
+ 0x00c0, 0x00ba, 0x000d, 0xff52, 0xfea0, 0xfee8,
+ 0x0022, 0x01db, 0x0451, 0x060a, 0x064c, 0x064f,
+ 0x05f0, 0x057e, 0x05b9, 0x0585, 0x0524, 0x0599,
+ 0x05e2, 0x058e, 0x04f5, 0x0429, 0x0393, 0x0313,
+ 0x037a, 0x05c9, 0x07d4, 0x088a, 0x09fa, 0x0bb3,
+ 0x0bd1, 0x0abc, 0x09c9, 0x09d3, 0x0a30, 0x09ea,
+ 0x0a06, 0x0acb, 0x0b0c, 0x0aef, 0x0ae1, 0x0ad6,
+ 0x0a74, 0x08f1, 0x07cf, 0x08a6, 0x099b, 0x0a0d,
+ 0x0ab4, 0x0a13, 0x08db, 0x095c, 0x0a9a, 0x0b24,
+ 0x0a40, 0x07f1, 0x069b, 0x0649, 0x053e, 0x050a,
+ 0x055f, 0x0416, 0x0325, 0x034e, 0x029e, 0x018b,
+ 0x009d, 0x0025, 0x010d, 0x01da, 0x01af, 0x0154,
+ 0x007f, 0x008c, 0x0200, 0x01c0, 0xffe7, 0xfec2,
+ 0xfd9c, 0xfc9d, 0xfcb2, 0xfc85, 0xfb93, 0xfa6e,
+ 0xf8f8, 0xf7c3, 0xf7af, 0xf834, 0xf84d, 0xf89a,
+ 0xfa42, 0xfbc9, 0xfb6e, 0xfa64, 0xfa14, 0xfa3e,
+ 0xf9f7, 0xf8ff, 0xf912, 0xfad3, 0xfc1f, 0xfc4c,
+ 0xfc1e, 0xfbab, 0xfbf7, 0xfd2c, 0xfdb8, 0xfdd2,
+ 0xfdf3, 0xfd3a, 0xfc68, 0xfc5a, 0xfbf2, 0xfb85,
+ 0xfc34, 0xfca3, 0xfc91, 0xfdce, 0xfedc, 0xfdef,
+ 0xfd75, 0xfe1d, 0xfdd0, 0xfd24, 0xfcda, 0xfc55,
+ 0xfc58, 0xfc5b, 0xfaf7, 0xfa18, 0xfb61, 0xfd44,
+ 0xfec8, 0x000c, 0x00a4, 0x0121, 0x0249, 0x02a9,
+ 0x01ff, 0x02b2, 0x0404, 0x0339, 0x01c7, 0x0189,
+ 0x0155, 0x00f0, 0x00d8, 0x00c6, 0x00cb, 0x00cd,
+ 0x00bd, 0x009d, 0x006b, 0x010c, 0x022b, 0x02d3,
+ 0x03d1, 0x040b, 0x0252, 0x0149, 0x016d, 0x014b,
+ 0x01eb, 0x02b4, 0x0271, 0x0212, 0x0100, 0xff38,
+ 0xfe37, 0xfd21, 0xfbd9, 0xfbc3, 0xfbda, 0xfaf2,
+ 0xf9e0, 0xf9e6, 0xfaef, 0xfb51, 0xfb15, 0xfb74,
+ 0xfba4, 0xfb55, 0xfb07, 0xfa30, 0xf971, 0xf9ab,
+ 0xfa66, 0xfb3e, 0xfb6f, 0xfb06, 0xfb49, 0xfb9b,
+ 0xfb4a, 0xfb29, 0xfb38, 0xfbc4, 0xfd19, 0xfdfb,
+ 0xfe4d, 0xfeb0, 0xfec7, 0xfeda, 0xff22, 0xff3d,
+ 0xff77, 0xff33, 0xfd25, 0xfa66, 0xf944, 0xf9a0,
+ 0xf9b5, 0xf942, 0xf903, 0xf922, 0xf9b7, 0xfa5e,
+ 0xfa7f, 0xfa6d, 0xfa69, 0xfb2b, 0xfd4f, 0xfe9d,
+ 0xfde1, 0xfd6b, 0xfdb0, 0xfe0d, 0xffb9, 0x0210,
+ 0x0321, 0x0329, 0x02be, 0x01d4, 0x00b2, 0xff77,
+ 0xfeac, 0xff20, 0x0014, 0x002d, 0x004b, 0x0186,
+ 0x023d, 0x01b4, 0x01ac, 0x0238, 0x02e9, 0x0454,
+ 0x0541, 0x052c, 0x0552, 0x04d8, 0x0393, 0x035a,
+ 0x0379, 0x027b, 0x0126, 0x0070, 0x00ed, 0x0278,
+ 0x0374, 0x02cf, 0x019d, 0x0180, 0x021d, 0x023e,
+ 0x02b1, 0x03d0, 0x0375, 0x017c, 0x0063, 0x0082,
+ 0x0045, 0xffab, 0xff41, 0xfe23, 0xfc59, 0xfbec,
+ 0xfd57, 0xfed3, 0xff2b, 0xfee3, 0xff50, 0x002d,
+ 0x001d, 0xff90, 0xfef5, 0xfe23, 0xfe8a, 0x001a,
+ 0x0120, 0x01c3, 0x019c, 0x0045, 0xff6f, 0xfed2,
+ 0xfdfc, 0xfeb1, 0xff81, 0xfe3a, 0xfd27, 0xfdc9,
+ 0xfe49, 0xfe11, 0xfe7a, 0xffc4, 0x006f, 0x001f,
+ 0xfff3, 0xffb8, 0xff25, 0xfede, 0xfec1, 0xff1c,
+ 0x0049, 0x00dd, 0x007d, 0x003d, 0xffd0, 0xfef6,
+ 0xfec0, 0xff5d, 0xffa8, 0xff29, 0xfe9d, 0xfe5e,
+ 0xfec1, 0x0091, 0x02d4, 0x03ea, 0x045d, 0x04c6,
+ 0x049c, 0x0416, 0x0439, 0x059a, 0x06ea, 0x0636,
+ 0x0443, 0x0317, 0x0303, 0x0372, 0x03c0, 0x03d6,
+ 0x0402, 0x0432, 0x04d8, 0x057e, 0x04cd, 0x0449,
+ 0x0514, 0x04fe, 0x0435, 0x0483, 0x04e5, 0x04ed,
+ 0x0575, 0x0600, 0x0621, 0x0609, 0x05db, 0x05b5,
+ 0x0531, 0x046b, 0x03b8, 0x024d, 0x007b, 0xfffc,
+ 0x00b8, 0x0120, 0x012b, 0x0231, 0x0371, 0x02aa,
+ 0x00c3, 0x0000, 0xffde, 0xffa9, 0xff5a, 0xfdda,
+ 0xfb5b, 0xf981, 0xf8c0, 0xf8e1, 0xf989, 0xf9dc,
+ 0xf968, 0xf899, 0xf87d, 0xf99a, 0xfb02, 0xfbd6,
+ 0xfc30, 0xfc83, 0xfd0e, 0xfda3, 0xfe18, 0xfe2c,
+ 0xfd86, 0xfcb8, 0xfbfb, 0xfa9e, 0xf97a, 0xf9d6,
+ 0xfb1c, 0xfc45, 0xfc74, 0xfb87, 0xfadd, 0xfacc,
+ 0xfa90, 0xfaa2, 0xfb78, 0xfc8a, 0xfd7f, 0xfe49,
+ 0xfee0, 0xff58, 0xffdb, 0xffba, 0xfdeb, 0xfc0b,
+ 0xfc72, 0xfe18, 0xff6d, 0x0004, 0xff5a, 0xfec9,
+ 0xff87, 0x003c, 0x00d0, 0x01a0, 0x01c0, 0x01b5,
+ 0x01d9, 0x01ca, 0x0294, 0x03a0, 0x0346, 0x0272,
+ 0x01f1, 0x019d, 0x01ec, 0x02c1, 0x0400, 0x0534,
+ 0x0546, 0x051c, 0x0592, 0x0592, 0x0557, 0x05ec,
+ 0x0708, 0x07fb, 0x0829, 0x07fe, 0x084f, 0x0898,
+ 0x08d1, 0x098c, 0x0a63, 0x0b4e, 0x0c1e, 0x0bca,
+ 0x0a74, 0x08d3, 0x070d, 0x0518, 0x0336, 0x02af,
+ 0x03b4, 0x0431, 0x03d1, 0x0408, 0x04b9, 0x04f7,
+ 0x044f, 0x0342, 0x0316, 0x03f5, 0x0570, 0x074a,
+ 0x0894, 0x08c8, 0x0800, 0x0671, 0x0575, 0x0598,
+ 0x05bb, 0x059a, 0x0535, 0x0464, 0x03fd, 0x0407,
+ 0x03b9, 0x0327, 0x02aa, 0x02d8, 0x03c3, 0x0432,
+ 0x03db, 0x03ce, 0x0442, 0x045a, 0x03cd, 0x039f,
+ 0x03aa, 0x029f, 0x0161, 0x00b7, 0xffa1, 0xff29,
+ 0xffe3, 0xffa9, 0xfee0, 0xff45, 0xfff0, 0x0034,
+ 0x000c, 0xff35, 0xff02, 0x0029, 0x00c0, 0xffb3,
+ 0xfec0, 0xff82, 0x0067, 0xffbc, 0xff25, 0xff64,
+ 0xfe8b, 0xfce3, 0xfc51, 0xfcd9, 0xfded, 0xff3a,
+ 0x0035, 0x0109, 0x025d, 0x0439, 0x057a, 0x04f4,
+ 0x03a3, 0x038b, 0x04ae, 0x0594, 0x05a9, 0x05c9,
+ 0x068c, 0x06ec, 0x0640, 0x05ca, 0x0606, 0x05df,
+ 0x059c, 0x0620, 0x068b, 0x06a9, 0x07b4, 0x08c4,
+ 0x0899, 0x08d7, 0x0a06, 0x0a7b, 0x0a86, 0x0ad8,
+ 0x0aa2, 0x0a4d, 0x0a48, 0x09d3, 0x09ef, 0x0b9c,
+ 0x0cfd, 0x0cf3, 0x0c89, 0x0baf, 0x0a1f, 0x0944,
+ 0x0963, 0x093a, 0x090a, 0x0962, 0x0963, 0x08f7,
+ 0x08ae, 0x084f, 0x082c, 0x0863, 0x082f, 0x07db,
+ 0x07ad, 0x06ca, 0x058f, 0x04c1, 0x03f3, 0x0329,
+ 0x0294, 0x01d2, 0x00ff, 0x0057, 0xffb9, 0xff07,
+ 0xfe21, 0xfd65, 0xfd18, 0xfc95, 0xfbf3, 0xfbeb,
+ 0xfc48, 0xfcb4, 0xfcae, 0xfbca, 0xfb40, 0xfbc4,
+ 0xfc1c, 0xfbc6, 0xfae8, 0xf9a0, 0xf8ea, 0xf89e,
+ 0xf791, 0xf676, 0xf620, 0xf604, 0xf65e, 0xf793,
+ 0xf8e7, 0xf9df, 0xfa57, 0xf9d4, 0xf891, 0xf7b1,
+ 0xf757, 0xf697, 0xf5a6, 0xf549, 0xf548, 0xf5c9,
+ 0xf6d6, 0xf756, 0xf738, 0xf729, 0xf70c, 0xf72a,
+ 0xf792, 0xf7eb, 0xf906, 0xfaa2, 0xfb90, 0xfc8f,
+ 0xfdc2, 0xfdf7, 0xfd74, 0xfca9, 0xfbd3, 0xfbf0,
+ 0xfcd4, 0xfde7, 0xff0d, 0xff45, 0xfe7c, 0xfe0c,
+ 0xfe70, 0xffbf, 0x0183, 0x0232, 0x01a1, 0x0110,
+ 0x0135, 0x0250, 0x03b2, 0x0420, 0x03fa, 0x0467,
+ 0x04fd, 0x04c3, 0x0457, 0x04b4, 0x0548, 0x0571,
+ 0x0580, 0x056e, 0x0512, 0x0500, 0x05a7, 0x066f,
+ 0x0676, 0x0649, 0x06c4, 0x06f3, 0x066d, 0x064a,
+ 0x0648, 0x05ee, 0x05d6, 0x05e8, 0x0622, 0x069a,
+ 0x069d, 0x0695, 0x06dc, 0x067a, 0x060f, 0x06a1,
+ 0x06f5, 0x0631, 0x0525, 0x04b6, 0x0507, 0x0552,
+ 0x0575, 0x060b, 0x0675, 0x0648, 0x0644, 0x0630,
+ 0x05af, 0x05a7, 0x0629, 0x05e3, 0x045f, 0x027c,
+ 0x0124, 0x00bc, 0x00f7, 0x0125, 0x013c, 0x015c,
+ 0x00fa, 0x0065, 0x0067, 0x0073, 0x005d, 0x00d6,
+ 0x0134, 0x00c4, 0x0078, 0x010e, 0x0218, 0x0321,
+ 0x043c, 0x0514, 0x04cf, 0x03c4, 0x02d0, 0x01f2,
+ 0x01ad, 0x0248, 0x027b, 0x01ef, 0x01a1, 0x01de,
+ 0x0292, 0x0381, 0x0411, 0x03fa, 0x036f, 0x033e,
+ 0x0404, 0x0514, 0x0581, 0x0508, 0x03ec, 0x02fb,
+ 0x029d, 0x0261, 0x019b, 0x0072, 0x004d, 0x0151,
+ 0x01eb, 0x024d, 0x02fd, 0x02c8, 0x0215, 0x0235,
+ 0x02ef, 0x0430, 0x057f, 0x05f2, 0x0619, 0x062d,
+ 0x0605, 0x0664, 0x06dc, 0x06d3, 0x0740, 0x0819,
+ 0x0869, 0x0827, 0x07ff, 0x08be, 0x09c1, 0x09cc,
+ 0x09af, 0x0a3a, 0x0ae6, 0x0b89, 0x0bc1, 0x0b7a,
+ 0x0bbd, 0x0c73, 0x0cc0, 0x0caa, 0x0c58, 0x0c48,
+ 0x0ca8, 0x0c99, 0x0c31, 0x0be7, 0x0afd, 0x0984,
+ 0x088c, 0x0866, 0x08d2, 0x0910, 0x08b7, 0x08bb,
+ 0x093a, 0x090f, 0x0878, 0x0818, 0x0756, 0x0666,
+ 0x0616, 0x05a3, 0x04af, 0x0461, 0x0465, 0x0384,
+ 0x029c, 0x02da, 0x0349, 0x02c5, 0x01c2, 0x0151,
+ 0x01a6, 0x0201, 0x01f6, 0x01eb, 0x0242, 0x02ef,
+ 0x0391, 0x03b9, 0x03b6, 0x03f4, 0x03aa, 0x0259,
+ 0x0125, 0x0088, 0xffcc, 0xff57, 0xff77, 0xfef8,
+ 0xfdbe, 0xfcc4, 0xfbdf, 0xfb0d, 0xfb0d, 0xfb7c,
+ 0xfb95, 0xfbcb, 0xfc8d, 0xfd22, 0xfd13, 0xfd2c,
+ 0xfdd9, 0xfe41, 0xfe1a, 0xfdf5, 0xfdca, 0xfd88,
+ 0xfdc6, 0xfe7f, 0xfeb8, 0xfe09, 0xfcec, 0xfba2,
+ 0xface, 0xfb5a, 0xfc44, 0xfc1f, 0xfbc8, 0xfbcb,
+ 0xfb53, 0xfacb, 0xfabb, 0xfa6e, 0xf9d6, 0xf986,
+ 0xf9b6, 0xfa4d, 0xfaec, 0xfb97, 0xfc51, 0xfc9c,
+ 0xfca8, 0xfc88, 0xfbb4, 0xfb09, 0xfb3d, 0xfb47,
+ 0xfb18, 0xfb69, 0xfc0a, 0xfd44, 0xfee6, 0xffb6,
+ 0x0032, 0x00fa, 0x0083, 0xfeee, 0xfe6d, 0xfee6,
+ 0xff0d, 0xfee1, 0xfe52, 0xfddb, 0xfe91, 0xffba,
+ 0x006e, 0x013c, 0x0190, 0x00e7, 0x00d7, 0x01e6,
+ 0x0304, 0x03fa, 0x0484, 0x0425, 0x035f, 0x02ea,
+ 0x0317, 0x0380, 0x0324, 0x01f7, 0x008f, 0xff07,
+ 0xfdf0, 0xfdc6, 0xfe02, 0xfe5b, 0xfe75, 0xfdbe,
+ 0xfd22, 0xfd89, 0xfe05, 0xfdf8, 0xfdcc, 0xfda9,
+ 0xfdf5, 0xfec2, 0xff1a, 0xfed5, 0xfe85, 0xfdd4,
+ 0xfcd3, 0xfc66, 0xfc4f, 0xfbe8, 0xfb9f, 0xfbeb,
+ 0xfc8c, 0xfd46, 0xfe3a, 0xff2e, 0xff83, 0xff88,
+ 0xfffc, 0x0053, 0xfff1, 0xff65, 0xff58, 0xffe2,
+ 0x004b, 0xfff2, 0xff8b, 0xff79, 0xff31, 0xff1d,
+ 0xff3a, 0xfec9, 0xfeb1, 0xff7b, 0x000b, 0x007b,
+ 0x010a, 0x00a8, 0xff7b, 0xfe8d, 0xfe03, 0xfdfb,
+ 0xfea4, 0xff7b, 0xffde, 0xffcd, 0xffd1, 0xffd5,
+ 0xff1e, 0xfe18, 0xfdbd, 0xfdb3, 0xfd9c, 0xfe1f,
+ 0xff80, 0x0135, 0x0256, 0x0245, 0x0209, 0x02da,
+ 0x03d3, 0x03f0, 0x03ad, 0x034b, 0x0310, 0x03b3,
+ 0x04d0, 0x05f0, 0x071d, 0x0767, 0x06b3, 0x0696,
+ 0x071c, 0x0705, 0x0649, 0x05b5, 0x05c1, 0x05ea,
+ 0x0575, 0x052b, 0x05da, 0x06d7, 0x07ba, 0x0878,
+ 0x0864, 0x075d, 0x0634, 0x05b7, 0x05f6, 0x0653,
+ 0x0691, 0x06df, 0x0718, 0x0711, 0x0682, 0x0552,
+ 0x042b, 0x0353, 0x02a1, 0x028d, 0x02fd, 0x032a,
+ 0x0333, 0x0355, 0x036f, 0x03cb, 0x0455, 0x0478,
+ 0x0441, 0x03d6, 0x030f, 0x0233, 0x01a2, 0x0167,
+ 0x01ad, 0x0227, 0x01df, 0x0104, 0x007e, 0x0006,
+ 0xff8b, 0xffc7, 0x000d, 0xffaa, 0xff6e, 0xff6f,
+ 0xff46, 0xff3d, 0xfece, 0xfd8b, 0xfc62, 0xfbfc,
+ 0xfc54, 0xfcbc, 0xfc55, 0xfc01, 0xfc62, 0xfc1c,
+ 0xfb38, 0xfaff, 0xfb24, 0xfb51, 0xfbcb, 0xfc53,
+ 0xfcf6, 0xfdc2, 0xfe2e, 0xfe37, 0xfe5a, 0xfecc,
+ 0xff0a, 0xfe56, 0xfd2b, 0xfc61, 0xfbcf, 0xfb5f,
+ 0xfb25, 0xfb1c, 0xfba4, 0xfc37, 0xfbd1, 0xfb0c,
+ 0xfaa5, 0xfa65, 0xfa77, 0xfafa, 0xfb8c, 0xfc0b,
+ 0xfc88, 0xfd5d, 0xfec0, 0x0035, 0x0161, 0x01e6,
+ 0x017a, 0x012e, 0x01e4, 0x02c3, 0x0336, 0x0384,
+ 0x038f, 0x0372, 0x03a2, 0x03d4, 0x03a8, 0x039b,
+ 0x03d3, 0x038b, 0x02bd, 0x023a, 0x0241, 0x02f1,
+ 0x0453, 0x055e, 0x055d, 0x04d1, 0x03f1, 0x02f8,
+ 0x0281, 0x0258, 0x020e, 0x01c8, 0x0198, 0x018f,
+ 0x0196, 0x013e, 0x00c5, 0x006b, 0xff7f, 0xfe46,
+ 0xfde7, 0xfe16, 0xfe17, 0xfe2c, 0xfe5f, 0xfe6d,
+ 0xfe61, 0xfe1f, 0xfdd0, 0xfda8, 0xfcf6, 0xfbbd,
+ 0xfb2c, 0xfb3c, 0xfb50, 0xfbe3, 0xfcbd, 0xfcdc,
+ 0xfcce, 0xfd60, 0xfde5, 0xfdf9, 0xfe13, 0xfe1a,
+ 0xfe01, 0xfe37, 0xfe8e, 0xfe8e, 0xfe43, 0xfdef,
+ 0xfddf, 0xfdf0, 0xfd9f, 0xfd0e, 0xfc77, 0xfbc4,
+ 0xfb60, 0xfb4c, 0xfb24, 0xfb5e, 0xfbaf, 0xfb54,
+ 0xfafa, 0xfaae, 0xfa24, 0xfa7a, 0xfb42, 0xfb38,
+ 0xfb4e, 0xfb96, 0xfb0d, 0xfa89, 0xfa66, 0xfa09,
+ 0xf9e5, 0xf9df, 0xf9a2, 0xf9bc, 0xf9ee, 0xfa31,
+ 0xfb4e, 0xfcb3, 0xfd80, 0xfdd5, 0xfda4, 0xfd28,
+ 0xfd59, 0xfe94, 0x001b, 0x00fa, 0x0132, 0x015f,
+ 0x0196, 0x0204, 0x02e1, 0x0354, 0x02e6, 0x0277,
+ 0x0282, 0x02b8, 0x02e9, 0x0316, 0x033d, 0x0377,
+ 0x040a, 0x050d, 0x060f, 0x0663, 0x05f5, 0x0596,
+ 0x05e0, 0x064e, 0x0698, 0x0719, 0x079a, 0x07ed,
+ 0x0824, 0x07cc, 0x071e, 0x06c8, 0x069a, 0x06b6,
+ 0x0748, 0x0780, 0x073c, 0x06f3, 0x06ac, 0x06db,
+ 0x0754, 0x0702, 0x061e, 0x0507, 0x036d, 0x023c,
+ 0x0243, 0x02a7, 0x02be, 0x02a6, 0x0288, 0x026c,
+ 0x0211, 0x018c, 0x011f, 0x008d, 0xffec, 0xff76,
+ 0xff24, 0xff73, 0x0046, 0x00ac, 0x00dc, 0x0142,
+ 0x0133, 0x00b8, 0x008f, 0x00b2, 0x0084, 0xffb9,
+ 0xfefc, 0xfef8, 0xff18, 0xfeef, 0xfee7, 0xff37,
+ 0xffee, 0x00b3, 0x00ea, 0x00ee, 0x010d, 0x00e0,
+ 0x00c2, 0x00c2, 0x0018, 0xff55, 0xff6b, 0xffbd,
+ 0xffea, 0x0070, 0x0101, 0x00fd, 0x00a8, 0x0073,
+ 0x005c, 0x001f, 0xff9f, 0xff4d, 0xff5b, 0xff09,
+ 0xfe51, 0xfe3f, 0xfe8f, 0xfe66, 0xfe9c, 0xffcc,
+ 0x00e1, 0x015a, 0x0195, 0x014b, 0x005c, 0xffaf,
+ 0xfff1, 0x00c5, 0x0168, 0x017d, 0x017f, 0x0222,
+ 0x0339, 0x0432, 0x0512, 0x05c0, 0x05f0, 0x061a,
+ 0x06a0, 0x071a, 0x0756, 0x076c, 0x0760, 0x0767,
+ 0x0778, 0x074e, 0x0701, 0x0679, 0x0572, 0x0457,
+ 0x0395, 0x02c2, 0x01de, 0x01a5, 0x020f, 0x0257,
+ 0x0236, 0x01b8, 0x00fa, 0x0058, 0x0022, 0x0086,
+ 0x013c, 0x0149, 0x0081, 0xffda, 0xff9c, 0xff66,
+ 0xff01, 0xfe61, 0xfdef, 0xfdbf, 0xfd46, 0xfcaa,
+ 0xfc3f, 0xfbd4, 0xfbd4, 0xfc83, 0xfd3e, 0xfdcd,
+ 0xfe3c, 0xfe73, 0xfe9f, 0xfeab, 0xfe74, 0xfe31,
+ 0xfdb8, 0xfd00, 0xfc95, 0xfc96, 0xfd0e, 0xfdfa,
+ 0xfe6f, 0xfdf1, 0xfd2c, 0xfc95, 0xfc44, 0xfc5b,
+ 0xfc80, 0xfc52, 0xfc08, 0xfbde, 0xfbf2, 0xfc3d,
+ 0xfc34, 0xfb8a, 0xfaeb, 0xfad6, 0xfae6, 0xfad9,
+ 0xfada, 0xfb0b, 0xfb50, 0xfb72, 0xfb9b, 0xfc17,
+ 0xfc7d, 0xfc94, 0xfce4, 0xfd54, 0xfd69, 0xfd5f,
+ 0xfd77, 0xfdde, 0xfeb0, 0xff55, 0xff88, 0xffc9,
+ 0x0032, 0x00bd, 0x015b, 0x01b7, 0x0232, 0x02f9,
+ 0x031e, 0x0297, 0x022c, 0x01e2, 0x01ce, 0x0212,
+ 0x023f, 0x023b, 0x0208, 0x01a3, 0x01a5, 0x0225,
+ 0x027c, 0x02b5, 0x0306, 0x0354, 0x03d5, 0x045a,
+ 0x0423, 0x0355, 0x030a, 0x03a5, 0x0465, 0x04da,
+ 0x0543, 0x0578, 0x053b, 0x0501, 0x0529, 0x0569,
+ 0x0597, 0x0607, 0x06ce, 0x077f, 0x080f, 0x0892,
+ 0x08a7, 0x086c, 0x085c, 0x0847, 0x0817, 0x07ff,
+ 0x07c6, 0x0758, 0x06ef, 0x069a, 0x0623, 0x053c,
+ 0x042d, 0x039b, 0x0378, 0x0382, 0x0382, 0x0313,
+ 0x027a, 0x023c, 0x0253, 0x0283, 0x026b, 0x0212,
+ 0x01b8, 0x00dd, 0xff99, 0xfea2, 0xfdd0, 0xfd9b,
+ 0xfe65, 0xfebd, 0xfe72, 0xfeca, 0xff62, 0xff78,
+ 0xff10, 0xfe3e, 0xfdba, 0xfdf0, 0xfe27, 0xfdf7,
+ 0xfda6, 0xfd6d, 0xfd4e, 0xfd55, 0xfda5, 0xfdb4,
+ 0xfd3b, 0xfd0a, 0xfd1a, 0xfd0b, 0xfd6c, 0xfdf6,
+ 0xfe1b, 0xfe62, 0xfee7, 0xff54, 0xff68, 0xfeeb,
+ 0xfec5, 0xff65, 0xffb9, 0xffc0, 0x0026, 0x008a,
+ 0x0094, 0x0078, 0x00af, 0x0169, 0x01ee, 0x01ec,
+ 0x01cf, 0x01d7, 0x027d, 0x0381, 0x03e4, 0x040d,
+ 0x04af, 0x0577, 0x0644, 0x06cc, 0x06b6, 0x06bd,
+ 0x074b, 0x07f8, 0x08ba, 0x09a4, 0x0a89, 0x0b4b,
+ 0x0bb3, 0x0b9f, 0x0b5d, 0x0b23, 0x0aba, 0x0a46,
+ 0x0a53, 0x0a9f, 0x0a97, 0x0a6e, 0x0a40, 0x09e9,
+ 0x09a3, 0x0999, 0x09d2, 0x0a04, 0x09b5, 0x0956,
+ 0x097f, 0x09c0, 0x09c8, 0x098b, 0x090e, 0x08cd,
+ 0x08bb, 0x086a, 0x0831, 0x07fc, 0x076e, 0x0705,
+ 0x06f2, 0x06e4, 0x06e3, 0x06de, 0x06be, 0x0690,
+ 0x061d, 0x0591, 0x0541, 0x04e0, 0x0452, 0x03d8,
+ 0x0368, 0x031f, 0x02f0, 0x0247, 0x014f, 0x0085,
+ 0xff96, 0xfecd, 0xfee5, 0xff31, 0xff59, 0xffe8,
+ 0x0032, 0xfff0, 0x001b, 0x003b, 0xff79, 0xfea0,
+ 0xfe00, 0xfd2c, 0xfc5e, 0xfb8e, 0xfa89, 0xf9ca,
+ 0xf9a4, 0xf9d9, 0xf9f5, 0xf9d8, 0xfa16, 0xfa92,
+ 0xfa67, 0xfa09, 0xfa58, 0xfaa0, 0xfa6a, 0xfa6a,
+ 0xfab6, 0xfb03, 0xfb66, 0xfb89, 0xfb4b, 0xfb10,
+ 0xfab4, 0xfa5a, 0xfa98, 0xfae7, 0xfac5, 0xfacc,
+ 0xfafe, 0xfaf2, 0xfafa, 0xfafe, 0xfaa0, 0xfa8c,
+ 0xfb58, 0xfc59, 0xfcde, 0xfd1e, 0xfd67, 0xfda8,
+ 0xfdd6, 0xfe11, 0xfe93, 0xff62, 0x0026, 0x00e9,
+ 0x01b7, 0x0208, 0x0202, 0x0252, 0x02eb, 0x03af,
+ 0x0481, 0x04fe, 0x0530, 0x053d, 0x0536, 0x0556,
+ 0x0552, 0x0544, 0x05c9, 0x065b, 0x068d, 0x06be,
+ 0x06be, 0x06bc, 0x074b, 0x07dd, 0x07db, 0x0784,
+ 0x0733, 0x06ef, 0x0657, 0x05b4, 0x058a, 0x0569,
+ 0x0566, 0x05c7, 0x05a4, 0x050a, 0x04f4, 0x0535,
+ 0x0565, 0x055e, 0x0518, 0x04f8, 0x04db, 0x0498,
+ 0x045d, 0x03a9, 0x0299, 0x01e5, 0x0155, 0x011e,
+ 0x017c, 0x0178, 0x0100, 0x00dc, 0x0117, 0x019a,
+ 0x021f, 0x025c, 0x0279, 0x026b, 0x024c, 0x024d,
+ 0x01fd, 0x0145, 0x009c, 0x0021, 0xffe2, 0xfffd,
+ 0x0074, 0x00e8, 0x00c3, 0x0051, 0x0007, 0xffb4,
+ 0xff8e, 0xffb4, 0xffc7, 0xfff6, 0x0032, 0x0027,
+ 0x0025, 0x0024, 0xfff3, 0xffdc, 0xffc3, 0xff62,
+ 0xfeb1, 0xfe06, 0xfe26, 0xfecf, 0xff41, 0xffe1,
+ 0x0094, 0x00d0, 0x012d, 0x01d9, 0x0233, 0x0239,
+ 0x022a, 0x0256, 0x02e3, 0x035f, 0x0394, 0x038b,
+ 0x034f, 0x0343, 0x0379, 0x03bb, 0x041f, 0x0493,
+ 0x04f2, 0x0535, 0x0577, 0x0624, 0x0724, 0x07f3,
+ 0x0887, 0x08bc, 0x087f, 0x085e, 0x088e, 0x08ec,
+ 0x094b, 0x0940, 0x0902, 0x091c, 0x095a, 0x09a1,
+ 0x0a0e, 0x0a41, 0x0a04, 0x09ae, 0x0971, 0x0904,
+ 0x0856, 0x07d2, 0x0778, 0x0726, 0x073a, 0x077f,
+ 0x077d, 0x0761, 0x0713, 0x06bc, 0x06f2, 0x0768,
+ 0x07d8, 0x0870, 0x08bd, 0x08af, 0x08a3, 0x0859,
+ 0x07cb, 0x0715, 0x062b, 0x0586, 0x051b, 0x046d,
+ 0x03d7, 0x036b, 0x02c7, 0x021b, 0x0189, 0x010c,
+ 0x00bf, 0x0081, 0x0050, 0x0030, 0x0001, 0xfff2,
+ 0xffb1, 0xfeeb, 0xfe54, 0xfe22, 0xfdec, 0xfdd2,
+ 0xfd9a, 0xfcfb, 0xfc69, 0xfbf9, 0xfb9e, 0xfbb8,
+ 0xfc19, 0xfc89, 0xfd4a, 0xfe2f, 0xfeb7, 0xfe9c,
+ 0xfe0e, 0xfdb1, 0xfd87, 0xfd23, 0xfcc7, 0xfc7d,
+ 0xfbd2, 0xfb2d, 0xfb22, 0xfb62, 0xfba2, 0xfbf2,
+ 0xfc2c, 0xfc3f, 0xfc66, 0xfc9e, 0xfcc3, 0xfcfd,
+ 0xfd5e, 0xfdcc, 0xfe4e, 0xfebe, 0xfefd, 0xff4e,
+ 0xffb8, 0x000a, 0x0059, 0x0093, 0x00a3, 0x00a5,
+ 0x00a2, 0x00d5, 0x0143, 0x0167, 0x0176, 0x0216,
+ 0x02de, 0x0342, 0x0389, 0x03f7, 0x0467, 0x04a2,
+ 0x04a6, 0x048b, 0x046c, 0x046f, 0x047a, 0x0469,
+ 0x0474, 0x0471, 0x0430, 0x0445, 0x04b4, 0x04da,
+ 0x04b8, 0x0491, 0x04a5, 0x052e, 0x059d, 0x058e,
+ 0x058b, 0x05c8, 0x05f9, 0x05fb, 0x05f3, 0x0620,
+ 0x064c, 0x062c, 0x0615, 0x0641, 0x0684, 0x06b3,
+ 0x0699, 0x0683, 0x06da, 0x071b, 0x06d0, 0x0647,
+ 0x05bf, 0x0553, 0x0524, 0x0518, 0x04d1, 0x042b,
+ 0x03c5, 0x03fe, 0x042e, 0x0426, 0x041f, 0x0385,
+ 0x023b, 0x0107, 0x0028, 0xff88, 0xff1b, 0xfe96,
+ 0xfdef, 0xfd58, 0xfcc2, 0xfc38, 0xfbbe, 0xfb0e,
+ 0xfa27, 0xf953, 0xf8b3, 0xf86f, 0xf89a, 0xf8c8,
+ 0xf89d, 0xf888, 0xf8e7, 0xf94f, 0xf989, 0xf9ba,
+ 0xf9ab, 0xf96d, 0xf979, 0xf998, 0xf97f, 0xf9a3,
+ 0xfa42, 0xfaf7, 0xfb60, 0xfb90, 0xfc1a, 0xfcf1,
+ 0xfd17, 0xfc92, 0xfc4a, 0xfc58, 0xfcaa, 0xfd28,
+ 0xfd24, 0xfccd, 0xfce4, 0xfd2c, 0xfd7d, 0xfdef,
+ 0xfe16, 0xfe53, 0xff30, 0xffce, 0xffaa, 0xff87,
+ 0xffd5, 0x0084, 0x0188, 0x02a2, 0x0382, 0x0421,
+ 0x0492, 0x04ca, 0x04e8, 0x0523, 0x0533, 0x04f4,
+ 0x04c8, 0x04ba, 0x04a7, 0x0491, 0x0470, 0x046d,
+ 0x047e, 0x04a7, 0x0565, 0x0652, 0x0695, 0x0682,
+ 0x067a, 0x06a4, 0x0763, 0x07fa, 0x07c5, 0x079d,
+ 0x07b8, 0x0789, 0x0749, 0x0751, 0x07b1, 0x0838,
+ 0x088a, 0x08b3, 0x08d0, 0x08e9, 0x0912, 0x08ff,
+ 0x08c6, 0x08c5, 0x086c, 0x0786, 0x06b7, 0x0601,
+ 0x0548, 0x04cf, 0x0489, 0x0455, 0x042c, 0x03fc,
+ 0x03c5, 0x036c, 0x0326, 0x0323, 0x02dc, 0x023e,
+ 0x01e5, 0x01e5, 0x021f, 0x029a, 0x0308, 0x031b,
+ 0x02e1, 0x028c, 0x0226, 0x01ce, 0x01e1, 0x0221,
+ 0x01e8, 0x0175, 0x0124, 0x00cb, 0x0077, 0x0015,
+ 0xff84, 0xff09, 0xfea6, 0xfe2a, 0xfdb3, 0xfd57,
+ 0xfd09, 0xfc9a, 0xfc15, 0xfbf5, 0xfc16, 0xfbe5,
+ 0xfb87, 0xfb19, 0xfa8f, 0xfa34, 0xf9f5, 0xf99c,
+ 0xf964, 0xf941, 0xf8f4, 0xf87d, 0xf7ff, 0xf7ac,
+ 0xf795, 0xf7b1, 0xf80b, 0xf85a, 0xf86b, 0xf8ae,
+ 0xf93f, 0xf9a4, 0xf9f1, 0xfa9b, 0xfb6f, 0xfbea,
+ 0xfc01, 0xfbcd, 0xfb6a, 0xfb2f, 0xfb40, 0xfb84,
+ 0xfbee, 0xfc50, 0xfc9c, 0xfcda, 0xfcd2, 0xfcca,
+ 0xfd18, 0xfd50, 0xfd8e, 0xfe3d, 0xfedd, 0xff30,
+ 0xff73, 0xff9a, 0xffca, 0xffd3, 0xff4b, 0xfeb3,
+ 0xfe59, 0xfdd8, 0xfd5d, 0xfd47, 0xfd8b, 0xfdf7,
+ 0xfe5e, 0xfeb2, 0xfeb9, 0xfe56, 0xfe1b, 0xfe08,
+ 0xfd9e, 0xfd4e, 0xfd61, 0xfd72, 0xfd9c, 0xfdf1,
+ 0xfe21, 0xfe14, 0xfdaf, 0xfd1b, 0xfcbb, 0xfc85,
+ 0xfc72, 0xfc8c, 0xfc84, 0xfc40, 0xfc02, 0xfc0b,
+ 0xfc5a, 0xfc97, 0xfcba, 0xfcd6, 0xfc92, 0xfc28,
+ 0xfc2f, 0xfc76, 0xfcea, 0xfda3, 0xfe13, 0xfe26,
+ 0xfe5d, 0xfe93, 0xfe84, 0xfe6f, 0xfe89, 0xfece,
+ 0xff13, 0xff37, 0xff62, 0xffb0, 0xffe1, 0xffcd,
+ 0xffb7, 0xffc8, 0xffdd, 0xffff, 0x0037, 0x0063,
+ 0x00a2, 0x00fa, 0x0117, 0x00e9, 0x0072, 0xffa6,
+ 0xfef9, 0xfed2, 0xff18, 0xff90, 0xffd5, 0xffc1,
+ 0xffa5, 0xff89, 0xff79, 0xffa3, 0xffbd, 0xffa4,
+ 0xffce, 0x0076, 0x0154, 0x01f5, 0x025c, 0x02f6,
+ 0x037b, 0x0376, 0x0352, 0x0341, 0x02f9, 0x02b7,
+ 0x02bb, 0x02f6, 0x0360, 0x03d0, 0x045c, 0x0525,
+ 0x05db, 0x0673, 0x0712, 0x077b, 0x07bb, 0x07e9,
+ 0x07cf, 0x07ad, 0x07cd, 0x07ee, 0x07ff, 0x07f9,
+ 0x0792, 0x06f5, 0x0698, 0x0694, 0x0698, 0x0657,
+ 0x05ea, 0x0583, 0x0542, 0x0562, 0x05a2, 0x055e,
+ 0x04bc, 0x044e, 0x0401, 0x03ab, 0x038a, 0x0395,
+ 0x034c, 0x02b1, 0x0242, 0x01d6, 0x0124, 0x008d,
+ 0x0016, 0xff75, 0xfefe, 0xfecc, 0xfeb3, 0xfeee,
+ 0xff35, 0xff16, 0xff0f, 0xff65, 0xff8e, 0xff5f,
+ 0xff2d, 0xff25, 0xff37, 0xff4f, 0xff8c, 0xffb7,
+ 0xff5a, 0xfea4, 0xfe08, 0xfd9c, 0xfd6e, 0xfd81,
+ 0xfd91, 0xfd66, 0xfd21, 0xfd17, 0xfd4e, 0xfd77,
+ 0xfd8f, 0xfdc1, 0xfe1a, 0xfe90, 0xfede, 0xfed4,
+ 0xfea6, 0xfe6b, 0xfe2f, 0xfe18, 0xfe20, 0xfe2d,
+ 0xfe15, 0xfddf, 0xfe0e, 0xfeaf, 0xff3b, 0xffb8,
+ 0x003f, 0x0086, 0x0080, 0x0059, 0x004e, 0x0087,
+ 0x00b6, 0x00de, 0x0163, 0x0217, 0x02d0, 0x03b5,
+ 0x048d, 0x0527, 0x057f, 0x0596, 0x05a1, 0x05ab,
+ 0x05a5, 0x05de, 0x066a, 0x06fe, 0x0772, 0x07c1,
+ 0x0812, 0x088e, 0x090b, 0x094a, 0x0931, 0x08f5,
+ 0x08f3, 0x0928, 0x0963, 0x096f, 0x0921, 0x08e1,
+ 0x08ff, 0x08fa, 0x08af, 0x0870, 0x0824, 0x07e4,
+ 0x07e3, 0x07d6, 0x07ad, 0x077d, 0x0726, 0x06e4,
+ 0x070d, 0x0774, 0x07bb, 0x07a8, 0x0739, 0x0693,
+ 0x05e4, 0x0561, 0x051f, 0x0507, 0x04fd, 0x04ca,
+ 0x042e, 0x032d, 0x0233, 0x01c2, 0x01a5, 0x0169,
+ 0x0131, 0x011b, 0x00f2, 0x00ae, 0x0058, 0x001c,
+ 0x000f, 0xffe9, 0xff88, 0xff00, 0xfe50, 0xfda6,
+ 0xfcee, 0xfc01, 0xfb2a, 0xfa64, 0xf998, 0xf914,
+ 0xf8a0, 0xf807, 0xf7ac, 0xf788, 0xf779, 0xf772,
+ 0xf707, 0xf677, 0xf648, 0xf630, 0xf618, 0xf62d,
+ 0xf64e, 0xf67f, 0xf675, 0xf5d4, 0xf535, 0xf50b,
+ 0xf512, 0xf529, 0xf53d, 0xf552, 0xf58c, 0xf5dc,
+ 0xf65b, 0xf711, 0xf7a2, 0xf809, 0xf87c, 0xf905,
+ 0xf9c0, 0xfa6a, 0xfaa4, 0xfab8, 0xfaeb, 0xfb19,
+ 0xfb46, 0xfb94, 0xfbf3, 0xfc15, 0xfbfc, 0xfc21,
+ 0xfc9d, 0xfd3d, 0xfe01, 0xfea9, 0xff00, 0xff4c,
+ 0xff96, 0xffdd, 0x0061, 0x00ee, 0x0149, 0x01bc,
+ 0x0252, 0x02dd, 0x0350, 0x037a, 0x0375, 0x03b6,
+ 0x040a, 0x0403, 0x03c6, 0x0390, 0x0365, 0x0367,
+ 0x039a, 0x03e0, 0x044a, 0x04ad, 0x04ac, 0x0481,
+ 0x0493, 0x04c3, 0x04ef, 0x052e, 0x056b, 0x058c,
+ 0x0584, 0x0553, 0x0540, 0x0570, 0x05b5, 0x060d,
+ 0x0666, 0x0693, 0x06c4, 0x0715, 0x0743, 0x0753,
+ 0x0771, 0x0777, 0x0736, 0x06c9, 0x0677, 0x0638,
+ 0x05c2, 0x054d, 0x050d, 0x04ab, 0x044d, 0x0434,
+ 0x03f1, 0x0379, 0x0320, 0x02bb, 0x0267, 0x0249,
+ 0x01fc, 0x0187, 0x0129, 0x00e2, 0x00e9, 0x011c,
+ 0x00fb, 0x00a7, 0x0066, 0x0013, 0xffbc, 0xff8e,
+ 0xff84, 0xff6d, 0xff1d, 0xfead, 0xfe44, 0xfdf0,
+ 0xfdb6, 0xfd86, 0xfd6a, 0xfd67, 0xfd6b, 0xfdab,
+ 0xfdfe, 0xfde4, 0xfdd8, 0xfe45, 0xfe9f, 0xfecf,
+ 0xff11, 0xff34, 0xff57, 0xff95, 0xffb9, 0xffd2,
+ 0xffe9, 0x0010, 0x0050, 0x0027, 0xff7f, 0xff03,
+ 0xff26, 0xffc5, 0x0050, 0x0079, 0x008c, 0x00ab,
+ 0x00ff, 0x01bd, 0x0250, 0x0281, 0x02e8, 0x0363,
+ 0x039c, 0x03b8, 0x03a7, 0x039b, 0x03ed, 0x0476,
+ 0x050d, 0x0590, 0x05d2, 0x0611, 0x0652, 0x066f,
+ 0x06b7, 0x0737, 0x0781, 0x07a4, 0x07fd, 0x088e,
+ 0x091c, 0x0998, 0x0a08, 0x0a51, 0x0a61, 0x0a26,
+ 0x0997, 0x0900, 0x0899, 0x0844, 0x07fd, 0x07ba,
+ 0x076f, 0x072d, 0x06ee, 0x06d5, 0x06de, 0x06a3,
+ 0x0644, 0x05f8, 0x0573, 0x04f8, 0x04ed, 0x04f4,
+ 0x04bf, 0x0438, 0x036d, 0x02e7, 0x02c9, 0x02a3,
+ 0x024e, 0x01eb, 0x019b, 0x0161, 0x013b, 0x013d,
+ 0x0134, 0x00ea, 0x00a0, 0x0072, 0x0049, 0x0013,
+ 0xff95, 0xfefa, 0xfea0, 0xfe57, 0xfe01, 0xfdac,
+ 0xfd63, 0xfd51, 0xfd28, 0xfcc7, 0xfcb7, 0xfcb3,
+ 0xfc44, 0xfbed, 0xfbc8, 0xfb93, 0xfb94, 0xfbb8,
+ 0xfbd7, 0xfc0b, 0xfc32, 0xfc46, 0xfc38, 0xfbd9,
+ 0xfb82, 0xfb63, 0xfb37, 0xfb17, 0xfb04, 0xfae7,
+ 0xfb1d, 0xfba1, 0xfbf0, 0xfbeb, 0xfbe0, 0xfc24,
+ 0xfca4, 0xfcf8, 0xfd37, 0xfdc2, 0xfe71, 0xfefa,
+ 0xff67, 0xffcc, 0x002c, 0x008b, 0x00d4, 0x010a,
+ 0x0154, 0x0192, 0x0187, 0x018a, 0x01e4, 0x023f,
+ 0x0278, 0x02b9, 0x02dc, 0x02ef, 0x033f, 0x03c1,
+ 0x043a, 0x0495, 0x04f4, 0x0583, 0x0611, 0x0660,
+ 0x0693, 0x06d3, 0x071e, 0x074e, 0x0725, 0x06b5,
+ 0x0654, 0x0602, 0x05a9, 0x0580, 0x058a, 0x0586,
+ 0x0572, 0x0560, 0x0543, 0x0539, 0x0563, 0x05a6,
+ 0x05e6, 0x0608, 0x05f4, 0x05b9, 0x055e, 0x04d7,
+ 0x042c, 0x037a, 0x02dd, 0x0260, 0x01f8, 0x0196,
+ 0x0130, 0x00d8, 0x00a6, 0x006f, 0x0011, 0xffa0,
+ 0xff3a, 0xff17, 0xff19, 0xfee5, 0xfec2, 0xfeef,
+ 0xff05, 0xfeef, 0xfed5, 0xfea7, 0xfe7f, 0xfe6d,
+ 0xfe6e, 0xfea0, 0xfebf, 0xfea5, 0xfeab, 0xfeca,
+ 0xfed4, 0xfef9, 0xff39, 0xff77, 0xffb4, 0xfff8,
+ 0x0031, 0x0035, 0x001b, 0x0028, 0x001e, 0xffcc,
+ 0xff5a, 0xfee6, 0xfebf, 0xfefe, 0xff37, 0xff62,
+ 0xff9a, 0xffa9, 0xffa9, 0xffb2, 0xffa3, 0xff97,
+ 0xff82, 0xff47, 0xff18, 0xff0c, 0xff47, 0xffd5,
+ 0x004e, 0x008e, 0x00aa, 0x0092, 0x0099, 0x00fe,
+ 0x0162, 0x01aa, 0x01fb, 0x023e, 0x026a, 0x0288,
+ 0x02ad, 0x0308, 0x037a, 0x03cf, 0x042b, 0x04b2,
+ 0x0552, 0x05f6, 0x0693, 0x0717, 0x0773, 0x07b0,
+ 0x07f6, 0x0859, 0x08b4, 0x08ee, 0x093f, 0x09ad,
+ 0x09df, 0x09d1, 0x09cd, 0x09be, 0x0985, 0x0958,
+ 0x0952, 0x094e, 0x092e, 0x0903, 0x0904, 0x094f,
+ 0x09bd, 0x0a0d, 0x0a2e, 0x0a41, 0x0a55, 0x0a47,
+ 0x09e0, 0x092e, 0x087b, 0x07ba, 0x06d8, 0x0645,
+ 0x0606, 0x05a3, 0x054e, 0x0549, 0x0535, 0x050a,
+ 0x050b, 0x053a, 0x0580, 0x05a6, 0x05a4, 0x05a0,
+ 0x055e, 0x04cf, 0x0447, 0x03b9, 0x0319, 0x029f,
+ 0x0248, 0x01fa, 0x01a1, 0x012f, 0x00d0, 0x00a6,
+ 0x00a5, 0x00c0, 0x00c3, 0x0096, 0x005d, 0x0017,
+ 0xffbe, 0xff66, 0xff31, 0xff2f, 0xff36, 0xff22,
+ 0xfeef, 0xfe85, 0xfe29, 0xfe2c, 0xfe21, 0xfdc4,
+ 0xfd62, 0xfd08, 0xfcde, 0xfd2e, 0xfd9c, 0xfdc9,
+ 0xfdd6, 0xfdd0, 0xfdc5, 0xfdf2, 0xfe2f, 0xfe34,
+ 0xfe2b, 0xfe3c, 0xfe48, 0xfe6b, 0xfece, 0xff2c,
+ 0xff48, 0xff36, 0xff09, 0xfef2, 0xff2c, 0xff97,
+ 0xfff6, 0x002c, 0x0035, 0x0040, 0x006a, 0x00a6,
+ 0x00ff, 0x015b, 0x0191, 0x01b9, 0x01a1, 0x0120,
+ 0x00c5, 0x00c2, 0x009c, 0x0085, 0x00fd, 0x01aa,
+ 0x01fd, 0x01fa, 0x01de, 0x01d0, 0x01b0, 0x014a,
+ 0x00db, 0x00c5, 0x00e7, 0x00eb, 0x00d4, 0x00cb,
+ 0x00d7, 0x00fd, 0x012a, 0x012c, 0x0126, 0x015b,
+ 0x0199, 0x01bf, 0x01e4, 0x01c7, 0x0168, 0x011d,
+ 0x00b0, 0x0027, 0xfffe, 0xffee, 0xffc1, 0xffe6,
+ 0x0052, 0x00cc, 0x0167, 0x01f4, 0x023d, 0x0231,
+ 0x01d8, 0x017f, 0x014c, 0x0134, 0x0132, 0x00ef,
+ 0x008c, 0x0089, 0x009d, 0x009f, 0x00f9, 0x015d,
+ 0x0173, 0x0189, 0x01af, 0x01db, 0x0223, 0x0271,
+ 0x02b8, 0x02ce, 0x0297, 0x025c, 0x0229, 0x01f7,
+ 0x020a, 0x0236, 0x022b, 0x01fd, 0x01af, 0x0147,
+ 0x00f8, 0x00d2, 0x00ca, 0x00c4, 0x00b7, 0x00c8,
+ 0x00ea, 0x011e, 0x0193, 0x0211, 0x024c, 0x0254,
+ 0x0234, 0x0220, 0x0248, 0x0280, 0x02b8, 0x02f2,
+ 0x030e, 0x033b, 0x0393, 0x03df, 0x0419, 0x044f,
+ 0x0479, 0x04a4, 0x04b9, 0x04a2, 0x0479, 0x0465,
+ 0x0473, 0x0470, 0x0443, 0x0438, 0x043a, 0x0401,
+ 0x03d7, 0x03d2, 0x03ab, 0x037c, 0x0356, 0x0335,
+ 0x0345, 0x0345, 0x02f4, 0x02aa, 0x027e, 0x0246,
+ 0x0221, 0x020e, 0x0216, 0x0256, 0x0286, 0x0285,
+ 0x0273, 0x023e, 0x01e3, 0x0170, 0x0107, 0x010d,
+ 0x015b, 0x014d, 0x0124, 0x0165, 0x01b2, 0x01af,
+ 0x0193, 0x018d, 0x0188, 0x0152, 0x00e8, 0x0086,
+ 0x0044, 0x001a, 0x0007, 0x0003, 0x0002, 0xfff3,
+ 0xffbc, 0xff8a, 0xff87, 0xff66, 0xfef8, 0xfe94,
+ 0xfe4e, 0xfdf0, 0xfdaf, 0xfdbb, 0xfdc4, 0xfdb1,
+ 0xfdad, 0xfda0, 0xfd8b, 0xfd9d, 0xfde2, 0xfe45,
+ 0xfea7, 0xff05, 0xff59, 0xff74, 0xff73, 0xff7d,
+ 0xff4e, 0xff0b, 0xff0f, 0xff25, 0xff69, 0x0007,
+ 0x008c, 0x00f4, 0x0170, 0x01a3, 0x01a9, 0x01c5,
+ 0x01c2, 0x01cd, 0x01ec, 0x01d7, 0x01dc, 0x01f1,
+ 0x01a2, 0x0146, 0x0119, 0x00ca, 0x0064, 0x0011,
+ 0xfff8, 0x0043, 0x008e, 0x008c, 0x007a, 0x0070,
+ 0x0086, 0x00cb, 0x00ee, 0x00f8, 0x0116, 0x010a,
+ 0x00f2, 0x010f, 0x012b, 0x0139, 0x0136, 0x00f7,
+ 0x00d9, 0x011a, 0x0157, 0x019a, 0x0213, 0x025c,
+ 0x0259, 0x027a, 0x02df, 0x032c, 0x0333, 0x0344,
+ 0x0391, 0x03b8, 0x0395, 0x0370, 0x0347, 0x0324,
+ 0x032d, 0x032d, 0x0307, 0x02d5, 0x02a6, 0x0292,
+ 0x0277, 0x0229, 0x01be, 0x012e, 0x0098, 0x0048,
+ 0x0000, 0xffb2, 0xffb8, 0xffcd, 0xff92, 0xff38,
+ 0xfec5, 0xfe3c, 0xfdd3, 0xfd7b, 0xfd0e, 0xfc93,
+ 0xfc31, 0xfc1c, 0xfc17, 0xfbfb, 0xfc03, 0xfc0b,
+ 0xfbd2, 0xfb81, 0xfb38, 0xfb1f, 0xfb60, 0xfbb1,
+ 0xfbc6, 0xfbbe, 0xfbaf, 0xfb7e, 0xfb1d, 0xfae3,
+ 0xfb12, 0xfb3e, 0xfb2f, 0xfb41, 0xfb80, 0xfbbc,
+ 0xfbdc, 0xfbca, 0xfba2, 0xfb80, 0xfb60, 0xfb5d,
+ 0xfb5b, 0xfb4f, 0xfb90, 0xfbfd, 0xfc34, 0xfc77,
+ 0xfce4, 0xfd1f, 0xfd23, 0xfd27, 0xfd27, 0xfd23,
+ 0xfd32, 0xfd57, 0xfd7d, 0xfd81, 0xfd58, 0xfd1b,
+ 0xfcfa, 0xfcf4, 0xfcec, 0xfcdf, 0xfced, 0xfd2a,
+ 0xfd89, 0xfe11, 0xfed1, 0xff71, 0xffa9, 0xffd8,
+ 0x0026, 0x004d, 0x0056, 0x004c, 0x0030, 0x005b,
+ 0x00bc, 0x00e4, 0x00f9, 0x0128, 0x013e, 0x013a,
+ 0x0140, 0x016e, 0x01b7, 0x01f1, 0x0252, 0x0304,
+ 0x03a6, 0x0419, 0x049a, 0x04ff, 0x0526, 0x0541,
+ 0x0556, 0x0579, 0x05f3, 0x0691, 0x06e7, 0x071f,
+ 0x077c, 0x07d1, 0x0815, 0x0853, 0x0861, 0x085f,
+ 0x088c, 0x08c9, 0x0900, 0x094b, 0x099a, 0x09cf,
+ 0x09d7, 0x09ac, 0x0973, 0x093b, 0x08e6, 0x0879,
+ 0x0819, 0x079a, 0x06e1, 0x064f, 0x05f7, 0x0587,
+ 0x0543, 0x054d, 0x0536, 0x04fd, 0x04c3, 0x0481,
+ 0x0462, 0x0435, 0x03cf, 0x0367, 0x02d0, 0x0223,
+ 0x01ba, 0x012e, 0x00a1, 0x0078, 0x0002, 0xff6b,
+ 0xff71, 0xff7c, 0xff4f, 0xff2e, 0xfebe, 0xfe49,
+ 0xfe1e, 0xfdc2, 0xfd5e, 0xfd1b, 0xfc9a, 0xfc16,
+ 0xfbba, 0xfb5d, 0xfb19, 0xfaf0, 0xfadb, 0xfac5,
+ 0xfa7e, 0xfa29, 0xf9c4, 0xf953, 0xf93e, 0xf973,
+ 0xf9c0, 0xfa15, 0xf9f3, 0xf9b3, 0xfa0b, 0xfa77,
+ 0xfabf, 0xfb23, 0xfb44, 0xfb45, 0xfb69, 0xfb77,
+ 0xfbaa, 0xfbe8, 0xfbf6, 0xfc5c, 0xfce2, 0xfd0e,
+ 0xfd67, 0xfe01, 0xfe83, 0xff07, 0xff71, 0xffe8,
+ 0x009a, 0x011b, 0x0156, 0x0175, 0x014d, 0x012a,
+ 0x0166, 0x01b1, 0x01d2, 0x01db, 0x01d1, 0x01b3,
+ 0x0196, 0x019f, 0x01b3, 0x01c2, 0x01f9, 0x0240,
+ 0x0264, 0x0265, 0x022e, 0x01e9, 0x01d8, 0x01df,
+ 0x01eb, 0x01f9, 0x01ee, 0x0209, 0x027b, 0x02ec,
+ 0x031d, 0x0327, 0x0326, 0x031d, 0x030e, 0x032a,
+ 0x0389, 0x0402, 0x046b, 0x0498, 0x0488, 0x046f,
+ 0x0454, 0x0444, 0x0455, 0x0472, 0x049d, 0x04d3,
+ 0x04f7, 0x0501, 0x04c5, 0x0440, 0x03d7, 0x0390,
+ 0x0325, 0x028c, 0x01dc, 0x0147, 0x00b0, 0xffc1,
+ 0xfecf, 0xfe3a, 0xfdc8, 0xfd7b, 0xfd5d, 0xfd4e,
+ 0xfd65, 0xfd79, 0xfd56, 0xfd35, 0xfd1a, 0xfcf4,
+ 0xfced, 0xfcf3, 0xfcec, 0xfcfa, 0xfd21, 0xfd3b,
+ 0xfd1c, 0xfccc, 0xfc73, 0xfc28, 0xfc06, 0xfc0a,
+ 0xfc1f, 0xfc5d, 0xfca7, 0xfcd9, 0xfd1a, 0xfd36,
+ 0xfd09, 0xfcef, 0xfcd5, 0xfcac, 0xfcf4, 0xfd96,
+ 0xfe05, 0xfe28, 0xfe26, 0xfe35, 0xfe5a, 0xfe7a,
+ 0xfea9, 0xfebf, 0xfeb3, 0xfee7, 0xff33, 0xff4e,
+ 0xff6c, 0xff8c, 0xffaf, 0xfff7, 0x0015, 0x0004,
+ 0x0002, 0xfff0, 0xffe7, 0x0020, 0x0070, 0x00cd,
+ 0x013d, 0x018a, 0x01a5, 0x0190, 0x014b, 0x0115,
+ 0x011f, 0x016b, 0x01f2, 0x02ab, 0x037b, 0x0434,
+ 0x04c1, 0x0527, 0x0553, 0x0524, 0x04b4, 0x0458,
+ 0x0443, 0x0447, 0x0447, 0x044a, 0x0416, 0x03c0,
+ 0x03aa, 0x039f, 0x0363, 0x033f, 0x0357, 0x038f,
+ 0x03bf, 0x03c4, 0x03b7, 0x0397, 0x033a, 0x02ce,
+ 0x028b, 0x0254, 0x021b, 0x01fb, 0x020e, 0x023e,
+ 0x0254, 0x0269, 0x0297, 0x02b2, 0x02c3, 0x02d4,
+ 0x02ad, 0x024a, 0x01c7, 0x0151, 0x012b, 0x0119,
+ 0x00cc, 0x0098, 0x00b2, 0x00e6, 0x0116, 0x010f,
+ 0x00b9, 0x0060, 0x0020, 0xffec, 0xffc0, 0xff7c,
+ 0xff45, 0xff69, 0xffa2, 0xffaf, 0xffc8, 0xffd9,
+ 0xffd0, 0xfff1, 0x0030, 0x0065, 0x00a5, 0x00e1,
+ 0x00fe, 0x00eb, 0x0090, 0x0016, 0xffb3, 0xff70,
+ 0xff64, 0xff85, 0xffab, 0xffd5, 0xffeb, 0xffe6,
+ 0xfff5, 0x0012, 0x002c, 0x0053, 0x0085, 0x00e7,
+ 0x0172, 0x01d0, 0x0219, 0x0277, 0x02bb, 0x031d,
+ 0x03b6, 0x0419, 0x0452, 0x0493, 0x04be, 0x04f9,
+ 0x054b, 0x0569, 0x0573, 0x05a0, 0x05d9, 0x0625,
+ 0x0679, 0x0695, 0x067a, 0x065d, 0x0644, 0x0631,
+ 0x0653, 0x06a0, 0x06d3, 0x06f9, 0x072a, 0x0735,
+ 0x0713, 0x06de, 0x0687, 0x061f, 0x05bf, 0x0568,
+ 0x053e, 0x052f, 0x04f2, 0x048c, 0x040d, 0x0377,
+ 0x02fb, 0x029b, 0x0245, 0x021e, 0x0212, 0x01fe,
+ 0x01e4, 0x0191, 0x0110, 0x0098, 0x0001, 0xff52,
+ 0xfebd, 0xfe1b, 0xfd76, 0xfd06, 0xfcb2, 0xfc8a,
+ 0xfc7d, 0xfc24, 0xfb97, 0xfb2f, 0xfae5, 0xfaa0,
+ 0xfa56, 0xfa29, 0xfa3b, 0xfa1f, 0xf9be, 0xf9a8,
+ 0xf9b6, 0xf992, 0xf990, 0xf9b9, 0xf9d9, 0xfa1a,
+ 0xfa68, 0xfa99, 0xfac1, 0xfad9, 0xfb02, 0xfb70,
+ 0xfbe7, 0xfc3b, 0xfc80, 0xfca1, 0xfca9, 0xfcb6,
+ 0xfcb9, 0xfcc7, 0xfce1, 0xfcd8, 0xfccb, 0xfcd5,
+ 0xfcbd, 0xfc99, 0xfc99, 0xfc91, 0xfc93, 0xfcd3,
+ 0xfd19, 0xfd47, 0xfd81, 0xfdb6, 0xfde2, 0xfe2a,
+ 0xfe6e, 0xfe6e, 0xfe48, 0xfe41, 0xfe6d, 0xfeb9,
+ 0xff05, 0xff27, 0xff3e, 0xff8b, 0xfff7, 0x0078,
+ 0x0131, 0x01c8, 0x020f, 0x0277, 0x02fe, 0x035c,
+ 0x03c8, 0x0441, 0x0496, 0x0505, 0x0591, 0x05fa,
+ 0x0634, 0x0646, 0x065d, 0x06ab, 0x0717, 0x0781,
+ 0x07d1, 0x07f2, 0x0825, 0x0884, 0x08b8, 0x08b2,
+ 0x08bc, 0x08f7, 0x0953, 0x0998, 0x0997, 0x0978,
+ 0x0969, 0x0956, 0x0949, 0x094e, 0x0943, 0x0949,
+ 0x0976, 0x0978, 0x0941, 0x0909, 0x08d4, 0x08b4,
+ 0x0893, 0x0830, 0x07d8, 0x07b1, 0x076f, 0x0750,
+ 0x0773, 0x0775, 0x076c, 0x075d, 0x0704, 0x0693,
+ 0x060d, 0x054a, 0x04a7, 0x0439, 0x03c0, 0x034b,
+ 0x02d2, 0x0238, 0x019e, 0x0108, 0x0064, 0xffaf,
+ 0xff0f, 0xfebb, 0xfe98, 0xfe82, 0xfe7f, 0xfe78,
+ 0xfe7d, 0xfe9b, 0xfe89, 0xfe47, 0xfe13, 0xfded,
+ 0xfdce, 0xfdaa, 0xfd7f, 0xfd6a, 0xfd50, 0xfd3a,
+ 0xfd54, 0xfd69, 0xfd74, 0xfda8, 0xfdc8, 0xfdc3,
+ 0xfdd3, 0xfe02, 0xfe7c, 0xff50, 0x0002, 0x005c,
+ 0x00a2, 0x00fc, 0x0154, 0x019f, 0x01f5, 0x0230,
+ 0x021c, 0x01fd, 0x020f, 0x023a, 0x0272, 0x0299,
+ 0x02a8, 0x02c7, 0x02e1, 0x02f4, 0x0326, 0x0352,
+ 0x038b, 0x040e, 0x0491, 0x04f9, 0x055c, 0x0570,
+ 0x0532, 0x04e9, 0x049d, 0x046b, 0x0466, 0x0459,
+ 0x0449, 0x0458, 0x0481, 0x04ad, 0x04af, 0x049d,
+ 0x04c1, 0x0518, 0x055b, 0x0567, 0x0562, 0x0576,
+ 0x0583, 0x057e, 0x0581, 0x0556, 0x04ff, 0x04c8,
+ 0x0494, 0x0468, 0x048a, 0x04b7, 0x04c2, 0x04dc,
+ 0x04e9, 0x04fd, 0x053a, 0x053d, 0x04fb, 0x04cc,
+ 0x04a0, 0x0469, 0x0445, 0x043a, 0x043c, 0x0434,
+ 0x042e, 0x0439, 0x041d, 0x03cc, 0x0360, 0x02c4,
+ 0x022b, 0x01c2, 0x0155, 0x00f5, 0x00b6, 0x007f,
+ 0x007d, 0x0092, 0x006d, 0x003b, 0x0013, 0xffe0,
+ 0xffca, 0xffc8, 0xffbe, 0xffba, 0xff8b, 0xff3d,
+ 0xff1a, 0xff01, 0xfed8, 0xfecc, 0xfed5, 0xfecf,
+ 0xfebe, 0xfed1, 0xff1e, 0xff70, 0xffb0, 0xffeb,
+ 0x0001, 0xffe4, 0xffa1, 0xff46, 0xfeec, 0xfea3,
+ 0xfe71, 0xfe6a, 0xfe86, 0xfebb, 0xff03, 0xff44,
+ 0xff82, 0xffc7, 0x0011, 0x006e, 0x00c3, 0x0101,
+ 0x0166, 0x01e0, 0x0228, 0x0239, 0x01f1, 0x0171,
+ 0x0134, 0x0121, 0x0102, 0x0110, 0x0139, 0x015f,
+ 0x019d, 0x01c1, 0x01cd, 0x01f9, 0x0205, 0x01d5,
+ 0x01b7, 0x01aa, 0x0193, 0x017f, 0x0187, 0x01d5,
+ 0x025b, 0x02d8, 0x0333, 0x0346, 0x032b, 0x034d,
+ 0x0384, 0x0373, 0x0334, 0x02ce, 0x0265, 0x024b,
+ 0x0240, 0x0205, 0x01d6, 0x01b5, 0x0194, 0x0180,
+ 0x0155, 0x010d, 0x00bf, 0x0064, 0x0019, 0xffe5,
+ 0xffbd, 0xffa6, 0xff7c, 0xff3f, 0xff12, 0xfecb,
+ 0xfe7d, 0xfe5d, 0xfe38, 0xfe10, 0xfe01, 0xfdf3,
+ 0xfe11, 0xfe56, 0xfe59, 0xfe1c, 0xfdd5, 0xfd8b,
+ 0xfd49, 0xfd18, 0xfd06, 0xfd02, 0xfcf6, 0xfd13,
+ 0xfd3e, 0xfd26, 0xfd11, 0xfd19, 0xfd00, 0xfce6,
+ 0xfcdc, 0xfccd, 0xfcd6, 0xfcea, 0xfd0d, 0xfd4d,
+ 0xfd87, 0xfdc6, 0xfe02, 0xfe1a, 0xfe4a, 0xfe90,
+ 0xfeac, 0xfebe, 0xfecd, 0xfebd, 0xfea3, 0xfe93,
+ 0xfeb4, 0xfef1, 0xff06, 0xff19, 0xff44, 0xff4d,
+ 0xff3f, 0xff29, 0xff04, 0xfeec, 0xfef0, 0xff1e,
+ 0xff6b, 0xffc0, 0x0043, 0x00e1, 0x0169, 0x0212,
+ 0x02d2, 0x036b, 0x03f7, 0x046b, 0x04cf, 0x054d,
+ 0x05b2, 0x05f4, 0x0638, 0x067d, 0x06de, 0x0749,
+ 0x07ac, 0x0840, 0x08c4, 0x08f7, 0x0936, 0x0996,
+ 0x0a03, 0x0a8b, 0x0af3, 0x0b33, 0x0b58, 0x0b4f,
+ 0x0b5c, 0x0b8c, 0x0ba8, 0x0bca, 0x0bca, 0x0b89,
+ 0x0b45, 0x0adb, 0x0a42, 0x09b7, 0x092b, 0x08b8,
+ 0x0860, 0x07c9, 0x0729, 0x06ca, 0x066a, 0x05f8,
+ 0x058c, 0x0525, 0x04c9, 0x044a, 0x039d, 0x02fe,
+ 0x0278, 0x0201, 0x018b, 0x010a, 0x008f, 0x000c,
+ 0xff9d, 0xff6b, 0xff24, 0xfeb7, 0xfe70, 0xfe3c,
+ 0xfe21, 0xfe27, 0xfe03, 0xfdd1, 0xfdb7, 0xfd85,
+ 0xfd42, 0xfcf4, 0xfca2, 0xfc79, 0xfc52, 0xfc11,
+ 0xfbdc, 0xfba2, 0xfb8a, 0xfbb4, 0xfbcc, 0xfbdd,
+ 0xfc00, 0xfbf9, 0xfbfa, 0xfc2c, 0xfc3f, 0xfc3b,
+ 0xfc43, 0xfc54, 0xfc6c, 0xfc53, 0xfbfb, 0xfb9e,
+ 0xfb34, 0xfadd, 0xfad0, 0xfac2, 0xfa84, 0xfa30,
+ 0xf9c4, 0xf973, 0xf965, 0xf96b, 0xf98c, 0xf9d6,
+ 0xfa11, 0xfa47, 0xfa8a, 0xfa98, 0xfa7b, 0xfa7e,
+ 0xfa95, 0xfab1, 0xfaef, 0xfb26, 0xfb1c, 0xfb01,
+ 0xfb0c, 0xfb27, 0xfb3b, 0xfb40, 0xfb3f, 0xfb71,
+ 0xfbe5, 0xfc62, 0xfccb, 0xfd33, 0xfda8, 0xfe18,
+ 0xfe66, 0xfeaa, 0xff1b, 0xff98, 0xffeb, 0x001a,
+ 0x002d, 0x0029, 0x0034, 0x0050, 0x0063, 0x008f,
+ 0x0110, 0x01ca, 0x025e, 0x02b9, 0x02f6, 0x030e,
+ 0x0306, 0x02ec, 0x02c6, 0x02bb, 0x02c4, 0x02b6,
+ 0x02af, 0x02c8, 0x02e5, 0x030b, 0x031b, 0x02e6,
+ 0x0292, 0x024d, 0x021d, 0x020e, 0x0208, 0x0200,
+ 0x020c, 0x0222, 0x023a, 0x0255, 0x025b, 0x0263,
+ 0x027e, 0x028f, 0x0297, 0x028c, 0x0257, 0x0215,
+ 0x01cb, 0x017c, 0x0145, 0x0109, 0x00a3, 0x0039,
+ 0xffea, 0xffc1, 0xffb6, 0xff8f, 0xff5a, 0xff62,
+ 0xff7e, 0xff76, 0xff82, 0xff9a, 0xff7d, 0xff50,
+ 0xff3c, 0xff2c, 0xff25, 0xff16, 0xfeda, 0xfeaf,
+ 0xfeb8, 0xfeb3, 0xfe8f, 0xfe8a, 0xfeb1, 0xfef2,
+ 0xff40, 0xff72, 0xff68, 0xff53, 0xff63, 0xff6b,
+ 0xff4f, 0xff2e, 0xff16, 0xff23, 0xff61, 0xffa2,
+ 0xffe0, 0x0028, 0x0054, 0x0066, 0x0076, 0x0098,
+ 0x00da, 0x0112, 0x013e, 0x0181, 0x01c6, 0x021a,
+ 0x026e, 0x0283, 0x029b, 0x02b1, 0x0276, 0x026d,
+ 0x02a6, 0x0295, 0x0290, 0x02c9, 0x02eb, 0x0310,
+ 0x0313, 0x02e4, 0x02e6, 0x02e3, 0x02ca, 0x02e7,
+ 0x02fb, 0x0316, 0x036a, 0x0391, 0x039f, 0x03bb,
+ 0x039f, 0x038f, 0x03b8, 0x03c7, 0x03c0, 0x03a6,
+ 0x0379, 0x033a, 0x029f, 0x01de, 0x0159, 0x00e3,
+ 0x0088, 0x0067, 0x003c, 0x0003, 0xffd8, 0xffcf,
+ 0x0008, 0x0040, 0x006d, 0x00c3, 0x00fa, 0x010d,
+ 0x0142, 0x017a, 0x01b0, 0x01e1, 0x01e0, 0x01c8,
+ 0x0193, 0x011e, 0x00b0, 0x0077, 0x0050, 0x0028,
+ 0xfffe, 0xffe3, 0xffd0, 0xffa8, 0xff77, 0xff47,
+ 0xff26, 0xff13, 0xfef1, 0xfef0, 0xff16, 0xff07,
+ 0xfedc, 0xfebd, 0xfe82, 0xfe4f, 0xfe41, 0xfe51,
+ 0xfe9f, 0xfeff, 0xff4f, 0xffb1, 0xfffa, 0x0002,
+ 0xffda, 0xff62, 0xfec2, 0xfe6e, 0xfe86, 0xfecd,
+ 0xff05, 0xff31, 0xff3f, 0xff02, 0xfec1, 0xfec6,
+ 0xff02, 0xff95, 0x0048, 0x00b5, 0x0113, 0x0177,
+ 0x01b8, 0x0216, 0x0287, 0x02bd, 0x02c1, 0x0298,
+ 0x0250, 0x020e, 0x01c6, 0x0193, 0x0185, 0x0189,
+ 0x01c5, 0x0222, 0x024b, 0x0256, 0x0258, 0x0231,
+ 0x01fc, 0x01c4, 0x016c, 0x0109, 0x00c6, 0x0098,
+ 0x005f, 0x001f, 0xffe5, 0xffbd, 0xffbe, 0xffc9,
+ 0xffba, 0xff9f, 0xff87, 0xff8c, 0xffba, 0xffc1,
+ 0xff99, 0xff71, 0xff2d, 0xfeef, 0xfeef, 0xfeef,
+ 0xfee0, 0xfec9, 0xfe94, 0xfe74, 0xfe6b, 0xfe48,
+ 0xfe3f, 0xfe62, 0xfe90, 0xfecf, 0xff00, 0xff0d,
+ 0xfefc, 0xfeb2, 0xfe34, 0xfda8, 0xfd21, 0xfcbe,
+ 0xfc67, 0xfc04, 0xfbb3, 0xfb63, 0xfb13, 0xfade,
+ 0xfa99, 0xfa3b, 0xf9ea, 0xf998, 0xf957, 0xf940,
+ 0xf92d, 0xf923, 0xf93c, 0xf967, 0xf98a, 0xf99e,
+ 0xf99a, 0xf96f, 0xf933, 0xf913, 0xf903, 0xf8fd,
+ 0xf913, 0xf92e, 0xf96a, 0xf9ce, 0xfa00, 0xfa2e,
+ 0xfaa7, 0xfb0e, 0xfb5b, 0xfbc5, 0xfc09, 0xfc17,
+ 0xfc1b, 0xfc19, 0xfc31, 0xfc63, 0xfc92, 0xfcc8,
+ 0xfcef, 0xfd0b, 0xfd5e, 0xfdbb, 0xfdd8, 0xfdf1,
+ 0xfe46, 0xfec4, 0xff45, 0xffa5, 0xffd0, 0xffed,
+ 0x003e, 0x00a0, 0x00cb, 0x00e3, 0x0116, 0x0167,
+ 0x01f1, 0x028e, 0x0303, 0x0368, 0x03bc, 0x03f5,
+ 0x0445, 0x04c6, 0x057b, 0x0645, 0x06e1, 0x0753,
+ 0x07c9, 0x081e, 0x082b, 0x0812, 0x080f, 0x0822,
+ 0x0822, 0x0835, 0x0892, 0x0904, 0x095c, 0x09a4,
+ 0x09dc, 0x0a0e, 0x0a2b, 0x0a10, 0x09e2, 0x09da,
+ 0x09f7, 0x0a1c, 0x0a27, 0x0a06, 0x0993, 0x08c6,
+ 0x07fa, 0x076b, 0x071a, 0x0715, 0x071d, 0x06f6,
+ 0x06d8, 0x06ab, 0x0615, 0x054f, 0x04ae, 0x0453,
+ 0x044e, 0x0462, 0x0461, 0x0447, 0x03d7, 0x032a,
+ 0x02a5, 0x0238, 0x01d7, 0x01af, 0x019a, 0x019c,
+ 0x01dc, 0x0202, 0x01e0, 0x01a3, 0x0128, 0x0084,
+ 0x0017, 0xffce, 0xff89, 0xff78, 0xff94, 0xffc5,
+ 0x000a, 0x0046, 0x006d, 0x0094, 0x00a9, 0x00c3,
+ 0x0114, 0x0192, 0x021e, 0x029d, 0x02e8, 0x02f8,
+ 0x02cb, 0x0263, 0x01e0, 0x0157, 0x00bf, 0x0036,
+ 0xffd8, 0xff91, 0xff61, 0xff5c, 0xff6c, 0xff6a,
+ 0xff62, 0xff6c, 0xff73, 0xff7d, 0xffb9, 0x0000,
+ 0x0013, 0x000a, 0xfffb, 0xfffd, 0x002e, 0x003f,
+ 0xfffa, 0xffb8, 0xffa7, 0xffb5, 0xfff9, 0x004e,
+ 0x0082, 0x00a3, 0x00be, 0x00f5, 0x0148, 0x0188,
+ 0x01c9, 0x0202, 0x0203, 0x0221, 0x0288, 0x02e8,
+ 0x0362, 0x041b, 0x04c4, 0x0555, 0x05e1, 0x062d,
+ 0x0632, 0x0635, 0x066c, 0x06d0, 0x073e, 0x07be,
+ 0x0859, 0x08cb, 0x08d5, 0x0883, 0x080e, 0x07af,
+ 0x076c, 0x0724, 0x06d8, 0x06b6, 0x06dd, 0x071f,
+ 0x0724, 0x06eb, 0x06bb, 0x06a1, 0x066c, 0x0623,
+ 0x05e0, 0x0571, 0x04ce, 0x0432, 0x0398, 0x0314,
+ 0x02e7, 0x02e0, 0x02ac, 0x0233, 0x015e, 0x006a,
+ 0xffc8, 0xff6e, 0xff2d, 0xfef7, 0xfeb6, 0xfe82,
+ 0xfe68, 0xfe53, 0xfe33, 0xfde3, 0xfd76, 0xfd21,
+ 0xfcba, 0xfc49, 0xfc20, 0xfc15, 0xfc15, 0xfc67,
+ 0xfcfd, 0xfd8e, 0xfdea, 0xfe0c, 0xfe36, 0xfe7a,
+ 0xfe95, 0xfe67, 0xfe0b, 0xfdb0, 0xfd70, 0xfd50,
+ 0xfd4b, 0xfd26, 0xfcd3, 0xfcaa, 0xfca8, 0xfc8f,
+ 0xfc63, 0xfc21, 0xfbf6, 0xfc0b, 0xfc22, 0xfc5b,
+ 0xfcf0, 0xfd6f, 0xfd9f, 0xfd95, 0xfd50, 0xfd3a,
+ 0xfd68, 0xfd4f, 0xfcff, 0xfcd5, 0xfcb0, 0xfc99,
+ 0xfcd3, 0xfd2a, 0xfd4c, 0xfd65, 0xfdb7, 0xfe25,
+ 0xfeb6, 0xff60, 0xff6f, 0xfeb0, 0xfdf4, 0xfdc4,
+ 0xfe45, 0xff43, 0xfff4, 0x001c, 0x000f, 0xffbd,
+ 0xff6b, 0xffa7, 0x0042, 0x00cd, 0x0124, 0x014c,
+ 0x0176, 0x01ba, 0x01e8, 0x01e1, 0x01b1, 0x0185,
+ 0x0196, 0x0204, 0x029c, 0x02e5, 0x02d3, 0x02a4,
+ 0x023d, 0x01a3, 0x014a, 0x0172, 0x0211, 0x02d8,
+ 0x0330, 0x02e6, 0x0264, 0x01fb, 0x01b5, 0x01d0,
+ 0x026e, 0x02cf, 0x0261, 0x01eb, 0x0211, 0x0273,
+ 0x02c4, 0x02c7, 0x0252, 0x01d8, 0x0195, 0x0199,
+ 0x0226, 0x0285, 0x01be, 0x0064, 0xff8d, 0xff93,
+ 0x0034, 0x009c, 0x0072, 0x003f, 0xffc1, 0xfe79,
+ 0xfd46, 0xfcee, 0xfd18, 0xfd7a, 0xfde7, 0xfe18,
+ 0xfe5d, 0xff0b, 0xffac, 0xffb1, 0xff1c, 0xfe9d,
+ 0xff03, 0x001b, 0x00cb, 0x008c, 0xffd7, 0xff54,
+ 0xff78, 0x004c, 0x0156, 0x01d3, 0x01a0, 0x015e,
+ 0x0185, 0x01e6, 0x0206, 0x01b1, 0x0157, 0x0174,
+ 0x01cf, 0x0226, 0x02c6, 0x03d8, 0x04d6, 0x0507,
+ 0x045e, 0x03ad, 0x03c0, 0x0480, 0x055a, 0x060d,
+ 0x067a, 0x0637, 0x0544, 0x0476, 0x047d, 0x056a,
+ 0x06c6, 0x0792, 0x0751, 0x0691, 0x05ae, 0x04a2,
+ 0x03b4, 0x0347, 0x03a1, 0x04b0, 0x05b2, 0x05fe,
+ 0x05ac, 0x0503, 0x044b, 0x0402, 0x044d, 0x04b9,
+ 0x04e0, 0x04bc, 0x04a2, 0x04d0, 0x04ea, 0x04a9,
+ 0x0483, 0x04c4, 0x0539, 0x059f, 0x0584, 0x04d5,
+ 0x0429, 0x03a2, 0x0326, 0x031f, 0x03a9, 0x045d,
+ 0x04d8, 0x04c2, 0x0446, 0x0415, 0x0489, 0x0526,
+ 0x0545, 0x052c, 0x0557, 0x054a, 0x04ba, 0x03f2,
+ 0x02fd, 0x0243, 0x0236, 0x029f, 0x0352, 0x03b0,
+ 0x02f1, 0x019b, 0x0042, 0xfef9, 0xfe40, 0xfe10,
+ 0xfe3b, 0xff1d, 0xffe5, 0xff58, 0xfdb3, 0xfbdc,
+ 0xfaba, 0xfac5, 0xfb79, 0xfc3d, 0xfc9d, 0xfc4d,
+ 0xfb84, 0xfa7a, 0xf9c5, 0xfa48, 0xfb7a, 0xfc39,
+ 0xfc3f, 0xfba1, 0xfad9, 0xfa36, 0xf969, 0xf8ef,
+ 0xf940, 0xf977, 0xf91d, 0xf8ca, 0xf925, 0xfa7f,
+ 0xfc10, 0xfc7f, 0xfbbd, 0xfa9e, 0xf9e7, 0xfa6a,
+ 0xfc36, 0xfdf1, 0xfe54, 0xfdc2, 0xfd86, 0xfe34,
+ 0xff7e, 0x00b8, 0x0170, 0x01f5, 0x02a4, 0x031e,
+ 0x0314, 0x028d, 0x01b8, 0x0164, 0x0208, 0x02bf,
+ 0x0310, 0x038c, 0x03de, 0x0319, 0x0195, 0x009e,
+ 0x0112, 0x0293, 0x03b1, 0x03b1, 0x0354, 0x033f,
+ 0x0377, 0x03f6, 0x0495, 0x0522, 0x054d, 0x0489,
+ 0x0354, 0x02e0, 0x02bc, 0x01ec, 0x010d, 0x00d2,
+ 0x00e6, 0x0146, 0x023b, 0x034c, 0x039b, 0x02da,
+ 0x01bd, 0x0127, 0x011b, 0x015b, 0x020d, 0x02ed,
+ 0x035b, 0x031e, 0x026c, 0x01d9, 0x01ce, 0x0203,
+ 0x0213, 0x019e, 0x0097, 0xffe1, 0xffda, 0xffe5,
+ 0xffbc, 0xff1b, 0xfdfb, 0xfd69, 0xfdad, 0xfe0c,
+ 0xfe79, 0xfead, 0xfdc2, 0xfbce, 0xf9fe, 0xf986,
+ 0xfa7a, 0xfbb0, 0xfc36, 0xfc1b, 0xfbe8, 0xfbbf,
+ 0xfb61, 0xfb20, 0xfb22, 0xfaeb, 0xfabf, 0xfab2,
+ 0xfa7b, 0xfb2d, 0xfca7, 0xfd3b, 0xfd58, 0xfdb2,
+ 0xfdcd, 0xfe36, 0xfea1, 0xfe13, 0xfd93, 0xfd7c,
+ 0xfd11, 0xfce3, 0xfd26, 0xfda7, 0xfea0, 0xff1c,
+ 0xfea3, 0xfe44, 0xfe30, 0xfe15, 0xfe28, 0xfe2d,
+ 0xfde6, 0xfdcd, 0xfe42, 0xfeb0, 0xfe7f, 0xfe74,
+ 0xff27, 0x0018, 0x0100, 0x0138, 0x0055, 0xffaa,
+ 0xffc3, 0x0000, 0x00c3, 0x01e0, 0x02a4, 0x0363,
+ 0x03ea, 0x03db, 0x03d4, 0x03c1, 0x0391, 0x0408,
+ 0x04c1, 0x04d9, 0x0454, 0x0356, 0x025a, 0x0242,
+ 0x032c, 0x0457, 0x04c9, 0x0417, 0x02f1, 0x025b,
+ 0x02be, 0x03a5, 0x044f, 0x049c, 0x0495, 0x0414,
+ 0x038c, 0x03a6, 0x0476, 0x05aa, 0x0631, 0x052d,
+ 0x039c, 0x02bd, 0x0241, 0x01a1, 0x011a, 0x013d,
+ 0x0251, 0x0382, 0x03e3, 0x03f1, 0x0432, 0x0439,
+ 0x03c5, 0x030b, 0x029a, 0x02bb, 0x02c8, 0x02a9,
+ 0x0314, 0x037f, 0x02fe, 0x01fc, 0x0124, 0x00d0,
+ 0x0112, 0x018e, 0x0254, 0x0359, 0x039f, 0x02e5,
+ 0x020d, 0x01b2, 0x0209, 0x02a3, 0x0299, 0x0200,
+ 0x015a, 0x00da, 0x011e, 0x01f6, 0x01e5, 0x00da,
+ 0x0041, 0x0063, 0x007b, 0x0043, 0x0033, 0x0075,
+ 0x0040, 0xff4c, 0xfe75, 0xfe1d, 0xfe0e, 0xfe39,
+ 0xfe4a, 0xfe3f, 0xfe93, 0xfef9, 0xff48, 0x0006,
+ 0x00b4, 0x004f, 0xff22, 0xfe00, 0xfd89, 0xfe33,
+ 0xff87, 0x0081, 0x00ec, 0x00e9, 0x00b9, 0x0185,
+ 0x0364, 0x043c, 0x031e, 0x013c, 0xff60, 0xfe40,
+ 0xfec8, 0x000e, 0x0073, 0xfff9, 0xffcd, 0x006e,
+ 0x00d0, 0xffee, 0xfe71, 0xfdd3, 0xff09, 0x0110,
+ 0x0184, 0x002a, 0xfe88, 0xfd64, 0xfd98, 0xff10,
+ 0x006e, 0x01c3, 0x02d0, 0x028c, 0x0239, 0x02b2,
+ 0x02f2, 0x0316, 0x02ac, 0x009f, 0xfe85, 0xfe2a,
+ 0xff3c, 0x00df, 0x023e, 0x030f, 0x035d, 0x02f9,
+ 0x02b2, 0x02d2, 0x0246, 0x01ae, 0x0244, 0x034b,
+ 0x0409, 0x03e8, 0x0244, 0x00d4, 0x014e, 0x0234,
+ 0x0204, 0x00fe, 0xff7b, 0xfe8d, 0xfefa, 0xff87,
+ 0xffd0, 0x0088, 0x00ca, 0xffe6, 0xfee0, 0xfed0,
+ 0x000e, 0x016e, 0x012d, 0xff2c, 0xfcbf, 0xfc0e,
+ 0xfd89, 0xfeb7, 0xff91, 0x0168, 0x01c8, 0xffee,
+ 0xfe5b, 0xfdb5, 0xfea2, 0x00e9, 0x023e, 0x0397,
+ 0x056e, 0x04c1, 0x0254, 0x00b1, 0x0045, 0x0261,
+ 0x05c3, 0x06bb, 0x0586, 0x0382, 0x00da, 0xff01,
+ 0xfecb, 0xffa0, 0x0102, 0x0255, 0x02fd, 0x026b,
+ 0x008d, 0xfe53, 0xfd24, 0xfe25, 0x001b, 0x00a0,
+ 0x0061, 0x00bc, 0x00c8, 0xff76, 0xfcf2, 0xfc2c,
+ 0xff68, 0x02c2, 0x0313, 0x0267, 0x01d7, 0x014c,
+ 0xffd9, 0xfbc8, 0xf884, 0xf9ad, 0xfc3a, 0xfdaa,
+ 0xfe95, 0xff2c, 0xffe7, 0x0044, 0xffd9, 0x0029,
+ 0x00d1, 0x0074, 0x0003, 0x0019, 0xffee, 0xff3d,
+ 0xfef8, 0x002a, 0x0227, 0x032f, 0x0228, 0x0035,
+ 0x0047, 0x01d9, 0x0254, 0x0292, 0x02ce, 0x02aa,
+ 0x03f0, 0x04a3, 0x0326, 0x0370, 0x04df, 0x03f6,
+ 0x02be, 0x0263, 0x020d, 0x021c, 0x0193, 0x0141,
+ 0x02fc, 0x045e, 0x03d6, 0x0300, 0x02bf, 0x031d,
+ 0x02a5, 0x00a8, 0xfff2, 0x017f, 0x031c, 0x0389,
+ 0x030a, 0x034d, 0x0510, 0x066b, 0x06fe, 0x0764,
+ 0x0613, 0x032b, 0x0122, 0x00c3, 0x015f, 0x017b,
+ 0xff9c, 0xfd22, 0xfc72, 0xfc9b, 0xfbd7, 0xfb5d,
+ 0xfc92, 0xfe3d, 0xfe76, 0xfc99, 0xfa49, 0xfa5f,
+ 0xfcc5, 0xfe6a, 0xfe2d, 0xfe34, 0x0053, 0x031b,
+ 0x03e9, 0x0294, 0x008d, 0xff1a, 0xff0a, 0xff8e,
+ 0xffc4, 0x00ab, 0x0228, 0x0238, 0x003e, 0xfdbf,
+ 0xfc98, 0xfd37, 0xfe77, 0xff31, 0xfec9, 0xfd87,
+ 0xfc21, 0xfa6a, 0xf935, 0xfa88, 0xfdae, 0xfffd,
+ 0x0070, 0xff7a, 0xfe29, 0xfe36, 0x00b2, 0x0454,
+ 0x0619, 0x0511, 0x0345, 0x026b, 0x024d, 0x018e,
+ 0xffc5, 0xfed0, 0x0031, 0x0350, 0x069f, 0x0823,
+ 0x073e, 0x053f, 0x031b, 0x01af, 0x013c, 0x0036,
+ 0xfe5a, 0xfd02, 0xfc81, 0xfd34, 0xfef0, 0xffe1,
+ 0xffe8, 0x0099, 0x01b4, 0x01e5, 0x0159, 0x00e2,
+ 0xfff7, 0xfe25, 0xfd7b, 0xffc0, 0x034e, 0x0537,
+ 0x042d, 0x0168, 0xff80, 0xff00, 0xfddf, 0xfb68,
+ 0xf9b3, 0xf9e3, 0xfa21, 0xf97b, 0xf983, 0xfa60,
+ 0xfa89, 0xfa64, 0xfbb5, 0xfe59, 0x0013, 0xff83,
+ 0xfdc7, 0xfc84, 0xfc07, 0xfbd8, 0xfc1f, 0xfdb5,
+ 0x0024, 0x01c9, 0x0261, 0x0244, 0x00ed, 0xfe81,
+ 0xfbc6, 0xf952, 0xf7a1, 0xf6fd, 0xf7c4, 0xf99d,
+ 0xfb2d, 0xfc48, 0xfd26, 0xfd59, 0xfde2, 0xfef2,
+ 0xfe5e, 0xfcb9, 0xfd1b, 0xffa9, 0x020d, 0x0311,
+ 0x036c, 0x043b, 0x054e, 0x055b, 0x038a, 0x014e,
+ 0x01b9, 0x0594, 0x0a74, 0x0d23, 0x0ac1, 0x0359,
+ 0xfbfd, 0xfa5f, 0xff0e, 0x05ba, 0x0a79, 0x0c61,
+ 0x0b1e, 0x06c6, 0x0225, 0x0133, 0x0643, 0x105e,
+ 0x1aa6, 0x1ff5, 0x1ed2, 0x1906, 0x1293, 0x0fdc,
+ 0x121e, 0x1703, 0x1c07, 0x20b5, 0x24df, 0x2775,
+ 0x293d, 0x2bf6, 0x2d37, 0x287c, 0x1e77, 0x1567,
+ 0x123f, 0x136c, 0x1321, 0x0e7a, 0x0892, 0x062a,
+ 0x08b0, 0x0e1b, 0x13ae, 0x16db, 0x14ea, 0x0d51,
+ 0x03bb, 0xfc62, 0xf853, 0xf7a0, 0xfa80, 0xff52,
+ 0x03ae, 0x050f, 0x0100, 0xf9bc, 0xf4d0, 0xf287,
+ 0xeeb9, 0xe8a6, 0xe394, 0xe141, 0xde8f, 0xd737,
+ 0xcb4a, 0xbf83, 0xbac0, 0xc0a5, 0xccdf, 0xd7a4,
+ 0xdb18, 0xd470, 0xc6df, 0xb88c, 0xac4d, 0xa502,
+ 0xa611, 0xad0a, 0xb418, 0xb8b9, 0xbca2, 0xc22d,
+ 0xc723, 0xc78c, 0xc5cf, 0xc8a3, 0xd307, 0xe1c3,
+ 0xee25, 0xf3a0, 0xf276, 0xec6c, 0xe388, 0xdbe9,
+ 0xd940, 0xdaa2, 0xdcf0, 0xdf7f, 0xe29b, 0xe57a,
+ 0xe80a, 0xea57, 0xebe4, 0xed96, 0xefb4, 0xf093,
+ 0xf07b, 0xf230, 0xf6ff, 0xfca7, 0xffd0, 0x009a,
+ 0x0194, 0x0337, 0x0498, 0x0552, 0x05c2, 0x07b2,
+ 0x0b80, 0x0e48, 0x0ea9, 0x0e88, 0x0f4e, 0x10dd,
+ 0x127b, 0x1329, 0x1329, 0x14ee, 0x1a0d, 0x2038,
+ 0x241f, 0x2577, 0x25b8, 0x262a, 0x281d, 0x2b2a,
+ 0x2c6d, 0x2a8c, 0x2887, 0x29d8, 0x2d78, 0x3068,
+ 0x3329, 0x386b, 0x4010, 0x459f, 0x444c, 0x3dc2,
+ 0x38ac, 0x370a, 0x3600, 0x35fc, 0x397f, 0x3e7c,
+ 0x3feb, 0x3bfe, 0x351f, 0x2d9b, 0x2585, 0x1db7,
+ 0x199f, 0x1bb9, 0x2105, 0x22e3, 0x1f45, 0x1b41,
+ 0x1abc, 0x1b1c, 0x18e8, 0x1521, 0x12f5, 0x1354,
+ 0x1416, 0x12f1, 0x106b, 0x0ea0, 0x0d9c, 0x0b9a,
+ 0x0910, 0x0898, 0x0a2c, 0x0b63, 0x0c6a, 0x0f2a,
+ 0x12d4, 0x14ec, 0x144d, 0x111c, 0x0cdd, 0x0a66,
+ 0x0b71, 0x0f5f, 0x1496, 0x191d, 0x1aaf, 0x17fd,
+ 0x11a3, 0x0a4e, 0x06ca, 0x0b01, 0x14ac, 0x1cb4,
+ 0x1f7b, 0x1ed1, 0x1bcb, 0x1565, 0x0cff, 0x0626,
+ 0x0233, 0xffe1, 0xfdfc, 0xfc57, 0xfaf1, 0xf8eb,
+ 0xf4d2, 0xef62, 0xebe1, 0xeb49, 0xeaac, 0xe8cf,
+ 0xe89f, 0xec2b, 0xf130, 0xf3b2, 0xf1d8, 0xedc0,
+ 0xebf7, 0xee8d, 0xf2f2, 0xf65b, 0xf908, 0xfba3,
+ 0xfdc2, 0xffe3, 0x026e, 0x036b, 0x016d, 0xfeec,
+ 0xff47, 0x0283, 0x0600, 0x07eb, 0x0900, 0x0aa5,
+ 0x0b35, 0x0707, 0xfede, 0xf90e, 0xf9df, 0xfecd,
+ 0x02cc, 0x0308, 0xff2a, 0xf86e, 0xf049, 0xe76b,
+ 0xe041, 0xe029, 0xe984, 0xf69c, 0xfebb, 0xfe3a,
+ 0xf75e, 0xee6a, 0xe6b1, 0xe1c9, 0xe08c, 0xe392,
+ 0xe908, 0xec6e, 0xeb54, 0xe7f2, 0xe542, 0xe3a3,
+ 0xe1e5, 0xdee3, 0xdadc, 0xd86c, 0xd9b9, 0xdd09,
+ 0xdfd7, 0xe310, 0xe7f9, 0xec69, 0xee16, 0xee3a,
+ 0xef02, 0xf075, 0xf188, 0xf274, 0xf53f, 0xfb5b,
+ 0x0259, 0x05ac, 0x0493, 0x02b2, 0x027b, 0x0347,
+ 0x0434, 0x0515, 0x0599, 0x05aa, 0x04ea, 0x0208,
+ 0xfd5c, 0xfa34, 0xfaaf, 0xfd17, 0xff0a, 0xffc9,
+ 0xff20, 0xfd2b, 0xfac0, 0xf86d, 0xf67e, 0xf5ff,
+ 0xf730, 0xf7fb, 0xf63c, 0xf21a, 0xed0f, 0xe8d8,
+ 0xe6f7, 0xe78a, 0xe9d6, 0xed97, 0xf136, 0xf130,
+ 0xec9a, 0xe727, 0xe468, 0xe4fd, 0xe8d2, 0xef3f,
+ 0xf522, 0xf75d, 0xf6af, 0xf63c, 0xf7a2, 0xfa25,
+ 0xfc55, 0xfdb4, 0xfee2, 0xffa9, 0xfe66, 0xfb31,
+ 0xf914, 0xfa7d, 0xffa2, 0x0805, 0x1179, 0x17af,
+ 0x1888, 0x166a, 0x1470, 0x135e, 0x12ec, 0x12f7,
+ 0x131f, 0x1304, 0x1261, 0x104b, 0x0c5f, 0x085f,
+ 0x0679, 0x0744, 0x0a8f, 0x0f6d, 0x1362, 0x1422,
+ 0x1170, 0x0c2e, 0x05b8, 0x0040, 0xfcf2, 0xfabc,
+ 0xf92b, 0xf9cb, 0xfd38, 0x023c, 0x0734, 0x0967,
+ 0x069e, 0x00fc, 0xfc6d, 0xf8f4, 0xf48e, 0xf0a4,
+ 0xf0e9, 0xf64f, 0xfe01, 0x0477, 0x0814, 0x08f2,
+ 0x073f, 0x02f7, 0xfdcd, 0xfb48, 0xfcc2, 0xffbc,
+ 0x025e, 0x0565, 0x082f, 0x0957, 0x0ac4, 0x0eab,
+ 0x138c, 0x173d, 0x1905, 0x17bd, 0x128a, 0x0af7,
+ 0x0493, 0x0265, 0x0453, 0x0750, 0x0860, 0x0765,
+ 0x0697, 0x05fc, 0x029b, 0xfc45, 0xf64d, 0xf244,
+ 0xeff1, 0xef05, 0xedfb, 0xec4d, 0xebd3, 0xec73,
+ 0xeba1, 0xe945, 0xe7d5, 0xe895, 0xeb3d, 0xee8b,
+ 0xef5d, 0xec74, 0xe9f6, 0xead1, 0xebf8, 0xeac1,
+ 0xe816, 0xe642, 0xe836, 0xed58, 0xf11c, 0xf31c,
+ 0xf5ee, 0xf7e4, 0xf6e2, 0xf53b, 0xf609, 0xf8aa,
+ 0xf9ef, 0xfa75, 0xfd94, 0x019a, 0x03a4, 0x04da,
+ 0x0572, 0x05d5, 0x0822, 0x09b6, 0x0868, 0x086e,
+ 0x0aba, 0x0c33, 0x0db5, 0x0fd7, 0x0fd1, 0x0de2,
+ 0x0d7e, 0x0f5f, 0x1009, 0x0bfb, 0x0441, 0xfe3c,
+ 0xfe5e, 0x0393, 0x091f, 0x0b91, 0x0a9b, 0x088b,
+ 0x06de, 0x043e, 0x010e, 0xfe51, 0xf95a, 0xf2ba,
+ 0xef73, 0xf08f, 0xf4e1, 0xfa4e, 0xfcf9, 0xfe4e,
+ 0x00b5, 0x00ce, 0xff54, 0x011c, 0x0598, 0x09fa,
+ 0x0be2, 0x0a13, 0x071c, 0x0457, 0x01f9, 0x0278,
+ 0x04d2, 0x0636, 0x06b2, 0x0567, 0x032c, 0x02fd,
+ 0x0333, 0x021a, 0x019f, 0x01d4, 0x017d, 0xffe5,
+ 0xfd60, 0xfd8f, 0x025a, 0x0818, 0x0b06, 0x0a1d,
+ 0x06da, 0x0563, 0x07e3, 0x0b17, 0x0b86, 0x0a9b,
+ 0x0a2b, 0x08cd, 0x0678, 0x041a, 0x0137, 0xff6e,
+ 0xfe9d, 0xfb31, 0xf6f4, 0xf591, 0xf6a3, 0xfa49,
+ 0xfdc9, 0xfd4e, 0xfc70, 0xfc8c, 0xf93d, 0xf3e8,
+ 0xf045, 0xeed5, 0xef2c, 0xf005, 0xf3d0, 0xfcf5,
+ 0x051e, 0x06dd, 0x0301, 0xfc39, 0xf954, 0xfc9e,
+ 0xffeb, 0x0212, 0x0383, 0x0197, 0xff39, 0xfe54,
+ 0xfd92, 0xff86, 0x025b, 0x02fa, 0x05fc, 0x0a80,
+ 0x0a9e, 0x0841, 0x05d1, 0x03e7, 0x0714, 0x0f45,
+ 0x15b5, 0x17d5, 0x171b, 0x12b5, 0x0c36, 0x0831,
+ 0x0459, 0xff44, 0xffd8, 0x0244, 0xfe10, 0xfb83,
+ 0xfe56, 0xffc7, 0x03e5, 0x078d, 0xff99, 0xf68e,
+ 0xf7d9, 0xfbe7, 0xfdb4, 0xfd11, 0xf944, 0xf492,
+ 0xf0e1, 0xf2f8, 0xfacf, 0xfe26, 0xfd81, 0xfe49,
+ 0xfdb2, 0x0132, 0x096d, 0x097a, 0x04b5, 0x0372,
+ 0x013a, 0x0128, 0x04a7, 0x0426, 0x04bc, 0x09b3,
+ 0x09af, 0x06d6, 0x0900, 0x0b2f, 0x093f, 0x0a05,
+ 0x0de5, 0x0a6f, 0x0470, 0x089c, 0x0b45, 0x0500,
+ 0x0584, 0x083c, 0x01e0, 0x00e9, 0x05c0, 0x02c8,
+ 0x01b9, 0x083f, 0x09d4, 0x04d9, 0xff69, 0xfaf1,
+ 0xf947, 0xfd0f, 0x051d, 0x0a42, 0x0870, 0x02f8,
+ 0xfc03, 0xf856, 0xf9da, 0xf908, 0xfa09, 0x00ce,
+ 0xffca, 0xfaf4, 0xfdf1, 0xfd97, 0xfbb1, 0x02a5,
+ 0x064e, 0x05b9, 0x0a1e, 0x0aff, 0x07ca, 0x06ff,
+ 0x0602, 0x07f6, 0x09fe, 0x0654, 0x090a, 0x1037,
+ 0x0ce4, 0x09d5, 0x0e9b, 0x0e99, 0x0d79, 0x12ce,
+ 0x13ce, 0x0ebf, 0x0da1, 0x0c9d, 0x0635, 0x03be,
+ 0x07c8, 0x08eb, 0x0931, 0x0d26, 0x0d67, 0x0af7,
+ 0x0d97, 0x1090, 0x105f, 0x1089, 0x0dde, 0x0792,
+ 0x0492, 0x03c6, 0x00a4, 0x019a, 0x08a8, 0x0977,
+ 0x02d9, 0x0084, 0xffbf, 0xfa55, 0xf6e9, 0xf6dd,
+ 0xf68c, 0xf7ac, 0xf8a5, 0xf5a3, 0xedea, 0xe640,
+ 0xe60b, 0xe713, 0xe597, 0xedd8, 0xf592, 0xec34,
+ 0xe4a8, 0xe62a, 0xe175, 0xe07c, 0xe9fb, 0xef68,
+ 0xf1bf, 0xf558, 0xf4c8, 0xf2c7, 0xf2ba, 0xf3c3,
+ 0xf559, 0xf6a1, 0xfb44, 0x0180, 0x0223, 0x01f9,
+ 0x05c4, 0x09c8, 0x0b34, 0x08d5, 0x0a57, 0x1129,
+ 0x0f64, 0x0c6b, 0x1019, 0x07b9, 0xfc42, 0xfe86,
+ 0xfbb0, 0xf9e1, 0x0872, 0x0c38, 0x03e7, 0x0749,
+ 0x0783, 0xfd80, 0xfa96, 0xfb2a, 0xf8e3, 0xf7fb,
+ 0xf81b, 0xf8d8, 0xf7ef, 0xf647, 0xf7dc, 0xf76b,
+ 0xf797, 0xfdf3, 0xffd5, 0xfef3, 0x04be, 0x0629,
+ 0xffde, 0xfbd1, 0xfa0f, 0xfad5, 0xfce6, 0xfb01,
+ 0xfa18, 0xfc7f, 0xfd6f, 0xfe36, 0x0036, 0x0450,
+ 0x0915, 0x0703, 0x025d, 0x04e9, 0x0af4, 0x1291,
+ 0x1c11, 0x1f66, 0x1d78, 0x1e39, 0x1e7a, 0x1b3e,
+ 0x1aba, 0x1d50, 0x1c9d, 0x1bd6, 0x1f9f, 0x1ec9,
+ 0x17ea, 0x1850, 0x1f4b, 0x2355, 0x2429, 0x22ac,
+ 0x2103, 0x200b, 0x1ba1, 0x1614, 0x1049, 0x09ed,
+ 0x0c0a, 0x1154, 0x0f6f, 0x10be, 0x12b1, 0x0a5b,
+ 0x05cd, 0x09d0, 0x0bba, 0x0cd2, 0x0a4e, 0x02ff,
+ 0xfec9, 0xf9f1, 0xf570, 0xf7d3, 0xfab1, 0xff0b,
+ 0x058c, 0x057f, 0x0696, 0x0ac7, 0x080d, 0x07a6,
+ 0x0ae6, 0x0815, 0x06ee, 0x05ba, 0xffd6, 0x0189,
+ 0x0659, 0x05a2, 0x06a2, 0x077e, 0x07c2, 0x09e8,
+ 0x07e7, 0x076f, 0x07f5, 0x017a, 0x029a, 0x08bc,
+ 0x0431, 0x0505, 0x0971, 0x01cd, 0x0075, 0x0432,
+ 0xff09, 0x0260, 0x0893, 0x02e6, 0x0220, 0x0201,
+ 0xfb15, 0xfee3, 0x01d5, 0xf8d3, 0xf9f7, 0xff71,
+ 0xf6b7, 0xef9f, 0xf438, 0xf710, 0xf520, 0xf6ed,
+ 0xf799, 0xeee9, 0xeb8a, 0xf249, 0xee84, 0xe9c1,
+ 0xf44e, 0xf652, 0xeee5, 0xf3f3, 0xf6f1, 0xf41c,
+ 0xfab9, 0xfad7, 0xf088, 0xee36, 0xecd8, 0xe975,
+ 0xef36, 0xf56e, 0xf71f, 0xfb99, 0x0010, 0x049d,
+ 0x0bb8, 0x0e44, 0x0a6a, 0x04e1, 0x00ac, 0x0116,
+ 0x04e3, 0x0735, 0x064b, 0x0372, 0x0282, 0x041e,
+ 0x0534, 0x0721, 0x0ae2, 0x0e89, 0x10ff, 0x0e05,
+ 0x07d6, 0x08e9, 0x0c6c, 0x079f, 0x002b, 0xfa7f,
+ 0xf5ae, 0xfa15, 0x0688, 0x0ad8, 0x05ec, 0x0318,
+ 0xff67, 0xf413, 0xea66, 0xea98, 0xec5d, 0xea52,
+ 0xe9fa, 0xe9d5, 0xe546, 0xe291, 0xe568, 0xe5bc,
+ 0xe07d, 0xddf0, 0xe19e, 0xe496, 0xe485, 0xe6e0,
+ 0xea11, 0xe9af, 0xeb22, 0xf000, 0xef8f, 0xeb2a,
+ 0xecb4, 0xf091, 0xee89, 0xed56, 0xf32c, 0xf79e,
+ 0xf8dd, 0xfe2f, 0x00c5, 0xfc07, 0xfd73, 0x03db,
+ 0x02e6, 0x0438, 0x0c6f, 0x0d68, 0x0b8d, 0x1029,
+ 0x10ec, 0x0dd6, 0x1051, 0x11e5, 0x0db6, 0x0945,
+ 0x05b8, 0x036d, 0x049d, 0x075f, 0x07c5, 0x0584,
+ 0x054c, 0x070c, 0x04e8, 0x00f3, 0xfe4f, 0xf9fe,
+ 0xf627, 0xf3f6, 0xf21a, 0xf4cf, 0xf814, 0xf6a5,
+ 0xf743, 0xf7c8, 0xf4d7, 0xf5f3, 0xf527, 0xef56,
+ 0xf0f4, 0xf3cc, 0xf00d, 0xf05a, 0xf27d, 0xf1d0,
+ 0xf4b8, 0xf61a, 0xf3ef, 0xf5a1, 0xf7a0, 0xf878,
+ 0xfb8e, 0xfe59, 0x022e, 0x0663, 0x0814, 0x09ce,
+ 0x0685, 0x0010, 0x044b, 0x0b09, 0x0a06, 0x0c11,
+ 0x0f56, 0x0ca7, 0x0b96, 0x0bfe, 0x09a7, 0x06e7,
+ 0x0422, 0x0470, 0x06d5, 0x0778, 0x0cdb, 0x1250,
+ 0x0d8f, 0x09ee, 0x0ab4, 0x0575, 0x006f, 0xffb0,
+ 0xfea0, 0x0066, 0x00f8, 0xfdbc, 0x0049, 0x0505,
+ 0x0472, 0x032e, 0x00b2, 0xfde0, 0x00c3, 0x0386,
+ 0x00d7, 0xfd6d, 0xfb86, 0xfbd5, 0xfe48, 0x000e,
+ 0x007e, 0x0049, 0x01d1, 0x04ef, 0x02fc, 0xfddb,
+ 0xfd5a, 0xfe14, 0xfcc0, 0xfbce, 0xf94f, 0xf649,
+ 0xf77e, 0xfbbb, 0xfe16, 0xfb8c, 0xf920, 0xfb71,
+ 0xfa57, 0xf573, 0xf828, 0xfda9, 0xfd9b, 0xfe67,
+ 0x0081, 0xfcd7, 0xf3b6, 0xebd6, 0xec2d, 0xf015,
+ 0xefd1, 0xf223, 0xf74d, 0xf6e2, 0xf872, 0xfcd8,
+ 0xf7a1, 0xf111, 0xf269, 0xf0b9, 0xec62, 0xedf7,
+ 0xef45, 0xed45, 0xee78, 0xf20c, 0xf504, 0xfa4f,
+ 0xffec, 0xfff8, 0xff62, 0x0267, 0x0040, 0xfb50,
+ 0xff5e, 0x03d1, 0x0053, 0xfe07, 0xfcad, 0xf9c0,
+ 0xfbad, 0xfd95, 0xfbe8, 0xfcb5, 0xfc3e, 0xfc14,
+ 0x0311, 0x073c, 0x07c0, 0x0dd7, 0x0f1e, 0x0a96,
+ 0x0d25, 0x0c66, 0x0302, 0x01a9, 0x0670, 0x06ca,
+ 0x07f9, 0x0a7e, 0x0a45, 0x0aa7, 0x0c2d, 0x0c30,
+ 0x0ab3, 0x0b16, 0x1027, 0x12bc, 0x0fcb, 0x110f,
+ 0x1223, 0x0a55, 0x06a2, 0x0bb9, 0x0e6f, 0x109a,
+ 0x12d1, 0x0f26, 0x0c9c, 0x0e32, 0x0eba, 0x10ce,
+ 0x11a4, 0x0dcf, 0x0cb1, 0x0ba9, 0x05f5, 0x036b,
+ 0x0240, 0xfdbe, 0xfd68, 0xff0b, 0xfb1e, 0xf74d,
+ 0xf753, 0xf83c, 0xf9e5, 0xfacd, 0xf7ea, 0xf2e7,
+ 0xf1c1, 0xf4e3, 0xf524, 0xf43a, 0xf5a6, 0xf158,
+ 0xecc8, 0xf244, 0xf329, 0xec99, 0xee55, 0xf013,
+ 0xec15, 0xef43, 0xf3db, 0xf3b2, 0xf570, 0xf3b4,
+ 0xf077, 0xf2f1, 0xf04f, 0xebe2, 0xf162, 0xf47c,
+ 0xf250, 0xf4ef, 0xf64c, 0xf63a, 0xfa5b, 0xfc98,
+ 0xfef6, 0x0438, 0x04b2, 0x02ec, 0x0298, 0x010b,
+ 0x0241, 0x0327, 0xfda4, 0xf9b9, 0xfa4b, 0xfad6,
+ 0xfc2e, 0xfbe9, 0xfaa1, 0xfb97, 0xf8e5, 0xf5f5,
+ 0xfb28, 0xfe84, 0xfb1d, 0xfa88, 0xfca0, 0xfc23,
+ 0xf7d1, 0xf1c7, 0xf1d7, 0xf6b6, 0xf7d1, 0xf902,
+ 0xfc9d, 0xfcae, 0xfc1a, 0xfe11, 0xfec6, 0xfdfb,
+ 0xfc3d, 0xfa65, 0xfbc5, 0xfefd, 0x01f1, 0x0520,
+ 0x06b6, 0x07af, 0x09f4, 0x096e, 0x058c, 0x0381,
+ 0x040b, 0x0546, 0x0783, 0x0a6d, 0x0c2b, 0x0bdc,
+ 0x0ac2, 0x09bf, 0x081e, 0x06c6, 0x072d, 0x0865,
+ 0x0a29, 0x0cbf, 0x0d05, 0x0a84, 0x0b08, 0x0db5,
+ 0x0c19, 0x0b0c, 0x0f11, 0x0fd9, 0x0d75, 0x0e2b,
+ 0x0c6a, 0x0930, 0x0c74, 0x1064, 0x121f, 0x15d7,
+ 0x1630, 0x1390, 0x1392, 0x116c, 0x0e3d, 0x0ecc,
+ 0x0f0c, 0x1060, 0x118b, 0x0b11, 0x050a, 0x0487,
+ 0x0057, 0xfd2b, 0x002d, 0xff77, 0xfc83, 0xfee0,
+ 0x0171, 0x00fe, 0x00f1, 0x0289, 0x03ae, 0x00ff,
+ 0xfd4b, 0xfd9a, 0xff54, 0x0154, 0x04e8, 0x054e,
+ 0x01a5, 0xfee5, 0xfc7f, 0xf876, 0xf58b, 0xf5ca,
+ 0xf712, 0xf832, 0xfbb8, 0xff58, 0xfde3, 0xfc25,
+ 0xfe16, 0xfd88, 0xfa59, 0xf9b5, 0xfa82, 0xfc64,
+ 0x004e, 0x03b6, 0x04fe, 0x0460, 0x04da, 0x08e9,
+ 0x0c1b, 0x0dab, 0x1186, 0x1280, 0x0f3d, 0x1098,
+ 0x13bb, 0x11c9, 0x1104, 0x12ca, 0x10fb, 0x0f83,
+ 0x10da, 0x0f4c, 0x0dc6, 0x0fd4, 0x0f15, 0x0c75,
+ 0x0cb3, 0x0b55, 0x0a04, 0x0c93, 0x0bbf, 0x0821,
+ 0x05c9, 0xfde4, 0xf5c7, 0xf5c5, 0xf3ff, 0xf1dd,
+ 0xf72a, 0xf895, 0xf5d6, 0xf86f, 0xf881, 0xf610,
+ 0xf82a, 0xf670, 0xf243, 0xf4ad, 0xf6d0, 0xf6f4,
+ 0xfb38, 0xffad, 0x01d3, 0x03a9, 0x0460, 0x03b0,
+ 0x0057, 0xfd2f, 0x0020, 0x03e8, 0x03d8, 0x05c6,
+ 0x0825, 0x0567, 0x0214, 0x0172, 0xff4f, 0xfc3b,
+ 0xfea5, 0x0470, 0x05a5, 0x0521, 0x0569, 0xff7e,
+ 0xf81d, 0xf73e, 0xf5e7, 0xf45d, 0xf87a, 0xfbe7,
+ 0xfe6c, 0x03c7, 0x05b9, 0x0455, 0x0132, 0xf8eb,
+ 0xf2ee, 0xf0c2, 0xe96e, 0xe57a, 0xeba7, 0xf011,
+ 0xf3c0, 0xfd41, 0x003d, 0xf870, 0xf3a1, 0xf24a,
+ 0xeab4, 0xe343, 0xe462, 0xe62d, 0xe5a5, 0xe950,
+ 0xec47, 0xeaa7, 0xecc3, 0xf2f0, 0xf87f, 0xff30,
+ 0x0531, 0x089e, 0x0b5c, 0x0b35, 0x090e, 0x08ae,
+ 0x0829, 0x0894, 0x0bbf, 0x0d1b, 0x0e4d, 0x1407,
+ 0x1899, 0x175b, 0x154c, 0x14d7, 0x116d, 0x0b56,
+ 0x0901, 0x08f8, 0x06c9, 0x07c2, 0x0c02, 0x0b1f,
+ 0x0801, 0x08c4, 0x0a6e, 0x0c3a, 0x0e9e, 0x0feb,
+ 0x1335, 0x197e, 0x1dcc, 0x1d94, 0x1a1b, 0x16c2,
+ 0x1490, 0x1135, 0x0ee1, 0x0df2, 0x09d1, 0x06a2,
+ 0x07b8, 0x0607, 0x0262, 0x021b, 0x025d, 0x0308,
+ 0x0460, 0x02e2, 0x0276, 0x053d, 0x05f6, 0x06cc,
+ 0x09dd, 0x09bb, 0x07c9, 0x0813, 0x07c0, 0x0701,
+ 0x08df, 0x0a74, 0x08c1, 0x06b4, 0x069d, 0x066e,
+ 0x06b2, 0x0971, 0x09bc, 0x053f, 0x0294, 0x0183,
+ 0xfdc2, 0xfc99, 0x0018, 0x02b6, 0x0503, 0x087c,
+ 0x09e5, 0x093c, 0x083c, 0x06d5, 0x0529, 0x036b,
+ 0x03c7, 0x076c, 0x0a23, 0x0a38, 0x09d5, 0x0783,
+ 0x0296, 0xfe11, 0xfb0c, 0xf959, 0xf8b5, 0xf85d,
+ 0xf886, 0xf7c7, 0xf455, 0xf0fa, 0xf013, 0xef21,
+ 0xec7c, 0xea49, 0xea0c, 0xea27, 0xeb01, 0xef60,
+ 0xf3ed, 0xf41c, 0xf29d, 0xf01c, 0xebb2, 0xeadc,
+ 0xedbe, 0xeebf, 0xefd3, 0xf1a4, 0xef6c, 0xeb0b,
+ 0xe943, 0xea7e, 0xed00, 0xef75, 0xf43d, 0xfa5d,
+ 0xfb1e, 0xfa18, 0xfdaf, 0xff40, 0xfd48, 0xff45,
+ 0x0338, 0x0558, 0x0780, 0x08e4, 0x0957, 0x0985,
+ 0x0745, 0x03e8, 0x01b7, 0xfed7, 0xfb0e, 0xf84a,
+ 0xf6a8, 0xf4b9, 0xf237, 0xf140, 0xf16b, 0xf0c6,
+ 0xf192, 0xf3a7, 0xf41c, 0xf4c8, 0xf55a, 0xf3df,
+ 0xf405, 0xf52b, 0xf34c, 0xf155, 0xf1da, 0xf4d0,
+ 0xf9b3, 0xfbd1, 0xfb29, 0xfbee, 0xfb1c, 0xf8a7,
+ 0xf8ba, 0xf751, 0xf379, 0xf2a1, 0xf2ee, 0xf196,
+ 0xf007, 0xede3, 0xec8b, 0xedaa, 0xef3c, 0xf123,
+ 0xf41e, 0xf769, 0xfb70, 0xff03, 0x0036, 0x00b3,
+ 0x0299, 0x0531, 0x05fe, 0x053c, 0x05f3, 0x06d2,
+ 0x0693, 0x08f7, 0x0c2c, 0x0c09, 0x0bcb, 0x0ba2,
+ 0x07f6, 0x037b, 0x00f4, 0xffcf, 0xffe3, 0x0018,
+ 0x00bb, 0x022f, 0x0207, 0x0094, 0xfea1, 0xfaf2,
+ 0xf8a1, 0xf8fa, 0xf7d4, 0xf654, 0xf83d, 0xfc37,
+ 0x003d, 0x034e, 0x03e9, 0x0152, 0xfd24, 0xfba6,
+ 0xfde6, 0xffee, 0x00ea, 0x02ff, 0x05cf, 0x0737,
+ 0x05df, 0x0494, 0x05db, 0x0640, 0x0640, 0x0963,
+ 0x0a3a, 0x069e, 0x04ff, 0x03a6, 0xff9e, 0xfe48,
+ 0xff90, 0xff6e, 0xff38, 0xfee7, 0xfdd3, 0xfe29,
+ 0xff10, 0xfe7e, 0xfc49, 0xf959, 0xf956, 0xfc30,
+ 0xfc92, 0xfc10, 0xfead, 0x006b, 0x0051, 0x02fe,
+ 0x062f, 0x05c3, 0x0513, 0x06e9, 0x0857, 0x085e,
+ 0x0900, 0x084e, 0x0447, 0x0085, 0xfe12, 0xfae2,
+ 0xf962, 0xf9f3, 0xfa8c, 0xfd58, 0xffe7, 0xfea0,
+ 0xfef2, 0x0020, 0xfc3f, 0xf9fa, 0xfd81, 0xfea5,
+ 0xfb38, 0xf824, 0xf74b, 0xf6dd, 0xf43f, 0xf25a,
+ 0xf3bc, 0xf245, 0xecfe, 0xeab1, 0xea6b, 0xe855,
+ 0xe6a4, 0xe6ce, 0xe75f, 0xe81f, 0xe9bc, 0xeb09,
+ 0xeab9, 0xeaa9, 0xeb4c, 0xeb9b, 0xee0a, 0xf10c,
+ 0xf083, 0xf0b4, 0xf394, 0xf46b, 0xf4d7, 0xf6a8,
+ 0xf68c, 0xf636, 0xf823, 0xf93a, 0xf7a3, 0xf5d6,
+ 0xf63a, 0xf6dc, 0xf65b, 0xf836, 0xfad0, 0xf984,
+ 0xf813, 0xf892, 0xf783, 0xf6da, 0xf84a, 0xf982,
+ 0xfb3e, 0xfd29, 0xfd2e, 0xfce9, 0xfd49, 0xfd04,
+ 0xfc35, 0xfbc2, 0xfc47, 0xfccb, 0xfbdf, 0xfb2c,
+ 0xfc44, 0xfd75, 0xfd96, 0xfd76, 0xfce3, 0xfb2c,
+ 0xfa1e, 0xfb10, 0xfc2e, 0xfdb1, 0x007b, 0x010b,
+ 0xfeeb, 0xfdd7, 0xfd1a, 0xfb93, 0xfafa, 0xfad2,
+ 0xfb2c, 0xfd81, 0x00f5, 0x04e7, 0x0864, 0x0957,
+ 0x08de, 0x0816, 0x04d9, 0xfff0, 0xfd38, 0xfdcd,
+ 0x00cf, 0x04eb, 0x070a, 0x068e, 0x06c3, 0x06c5,
+ 0x03a0, 0x0089, 0xff02, 0xfc40, 0xfb47, 0xfe0b,
+ 0xffcf, 0x0090, 0x02f1, 0x04ed, 0x056e, 0x0459,
+ 0x012f, 0xfe71, 0xfd5f, 0xfbc8, 0xf91a, 0xf778,
+ 0xf86d, 0xfaa2, 0xfd95, 0x0302, 0x07e3, 0x091c,
+ 0x0b2c, 0x0f4a, 0x1092, 0x0f6e, 0x0f10, 0x0f4d,
+ 0x0ef9, 0x0ce9, 0x09e3, 0x0941, 0x0c10, 0x0f3e,
+ 0x0fc2, 0x0f07, 0x0f91, 0x0f41, 0x0cf8, 0x0c4b,
+ 0x0e12, 0x0f73, 0x0eba, 0x0c41, 0x09d6, 0x079a,
+ 0x04a3, 0x02f7, 0x03bb, 0x055b, 0x06d5, 0x0665,
+ 0x0382, 0x00ac, 0xfe09, 0xfac9, 0xf880, 0xf705,
+ 0xf565, 0xf4e9, 0xf5a8, 0xf5d0, 0xf5ab, 0xf710,
+ 0xf85a, 0xf734, 0xf768, 0xfab5, 0xfb3b, 0xf91d,
+ 0xfa51, 0xfca5, 0xfc29, 0xfb29, 0xfa9c, 0xf9b0,
+ 0xf97e, 0xfa59, 0xfbd2, 0xfd3d, 0xfdd3, 0xff24,
+ 0x0153, 0x0150, 0x0035, 0x0084, 0xff23, 0xfc59,
+ 0xfd75, 0x0013, 0xfffe, 0x00d6, 0x02ea, 0x0242,
+ 0x017e, 0x0309, 0x0415, 0x042b, 0x045c, 0x04c7,
+ 0x054d, 0x0403, 0x019d, 0x0174, 0x025e, 0x030d,
+ 0x0488, 0x0475, 0x02f8, 0x0405, 0x05aa, 0x0546,
+ 0x05ba, 0x0697, 0x048a, 0x015b, 0xffe5, 0xffe0,
+ 0x0172, 0x049e, 0x070c, 0x07cb, 0x08a8, 0x09aa,
+ 0x096e, 0x08c2, 0x07e1, 0x05a6, 0x03cc, 0x03b7,
+ 0x034e, 0x0358, 0x066c, 0x09bf, 0x0a79, 0x09dc,
+ 0x0756, 0x022d, 0xfd54, 0xfadf, 0xfa95, 0xfb27,
+ 0xfafd, 0xfb31, 0xfca7, 0xfd47, 0xfcb4, 0xfc15,
+ 0xfc2f, 0xfe57, 0x012b, 0x0349, 0x067a, 0x08f5,
+ 0x081f, 0x05b0, 0x0185, 0xfc86, 0xfa47, 0xf8f2,
+ 0xf75a, 0xf825, 0xf8f2, 0xf851, 0xf91c, 0xf95a,
+ 0xf66a, 0xf27a, 0xef31, 0xebc8, 0xe781, 0xe4db,
+ 0xe699, 0xea4f, 0xee83, 0xf41e, 0xf840, 0xfa4b,
+ 0xfce0, 0xff10, 0x00ea, 0x03ac, 0x05d8, 0x074a,
+ 0x07a5, 0x06ae, 0x0773, 0x0942, 0x09eb, 0x0bca,
+ 0x0df9, 0x0e56, 0x0e53, 0x0bf4, 0x068d, 0x02af,
+ 0x00b6, 0xff2c, 0xff7a, 0x00b1, 0x0127, 0x013d,
+ 0x016c, 0x0235, 0x0321, 0x038c, 0x0413, 0x048c,
+ 0x04ba, 0x042e, 0x01a7, 0xff1d, 0xfed8, 0xfea0,
+ 0xfd4b, 0xfc5c, 0xfbf4, 0xfc1d, 0xfd21, 0xfe67,
+ 0xff61, 0xff4f, 0xfde7, 0xfbf1, 0xfa2c, 0xf8fb,
+ 0xf7f2, 0xf759, 0xf84a, 0xf8ee, 0xf879, 0xfa55,
+ 0xfd1e, 0xfcef, 0xfce4, 0xfe68, 0xfde5, 0xfd97,
+ 0x0005, 0x0131, 0x00fb, 0x02a9, 0x03fe, 0x0345,
+ 0x031c, 0x03db, 0x0458, 0x04ad, 0x042e, 0x02b1,
+ 0x0154, 0x0079, 0x005d, 0x00bd, 0x00a1, 0x000a,
+ 0xfefc, 0xfe13, 0xff50, 0x020a, 0x0467, 0x0733,
+ 0x09c3, 0x09f2, 0x091e, 0x08f4, 0x0814, 0x05d1,
+ 0x037b, 0x011d, 0xfdbc, 0xfad2, 0xfa4e, 0xfb46,
+ 0xfd21, 0xfed5, 0xfd4c, 0xf9f4, 0xf827, 0xf619,
+ 0xf3a0, 0xf386, 0xf50c, 0xf74c, 0xf9cd, 0xfad2,
+ 0xfb7b, 0xfc89, 0xfcd7, 0xfe31, 0x00be, 0x0251,
+ 0x039f, 0x0429, 0x0334, 0x0313, 0x02a3, 0x0049,
+ 0xff8e, 0x0132, 0x02a5, 0x0435, 0x05cf, 0x05be,
+ 0x050a, 0x0667, 0x0957, 0x0a95, 0x0a1f, 0x0a60,
+ 0x0a89, 0x0a02, 0x0ae7, 0x0d02, 0x0e9e, 0x0fa3,
+ 0x1050, 0x10b4, 0x0fff, 0x0db5, 0x0c1d, 0x0cc7,
+ 0x0e8b, 0x1068, 0x11eb, 0x135c, 0x14d9, 0x14dc,
+ 0x139e, 0x1281, 0x1085, 0x0e18, 0x0ce7, 0x0bc4,
+ 0x0a58, 0x09eb, 0x0aa8, 0x0d9b, 0x124f, 0x15c1,
+ 0x1812, 0x1962, 0x16fa, 0x125d, 0x0f19, 0x0ced,
+ 0x0c47, 0x0ddd, 0x0eeb, 0x0dc4, 0x0b28, 0x078d,
+ 0x0417, 0x01a5, 0xffde, 0xfea3, 0xfd72, 0xfc3a,
+ 0xfbfc, 0xfc43, 0xfc2e, 0xfba3, 0xf9dc, 0xf766,
+ 0xf5a1, 0xf46b, 0xf4b3, 0xf728, 0xf974, 0xfae2,
+ 0xfca3, 0xfd73, 0xfc88, 0xfbe9, 0xfc9d, 0xfd4d,
+ 0xfd2e, 0xfd23, 0xfd29, 0xfcb9, 0xfd35, 0xfe14,
+ 0xfc63, 0xf91c, 0xf666, 0xf393, 0xf24e, 0xf4dd,
+ 0xf876, 0xfa09, 0xfa38, 0xfa36, 0xf9bf, 0xf75e,
+ 0xf2df, 0xeee2, 0xecfe, 0xeb75, 0xe995, 0xe983,
+ 0xebf1, 0xef75, 0xf384, 0xf704, 0xf885, 0xf9c4,
+ 0xfc70, 0xff93, 0x032f, 0x06b9, 0x07b6, 0x0662,
+ 0x0492, 0x02a4, 0x0125, 0x007d, 0x0036, 0xffe4,
+ 0xff4e, 0xff4d, 0x000b, 0x0018, 0x0004, 0x0033,
+ 0xfdf4, 0xf955, 0xf53d, 0xf1f1, 0xefb4, 0xf0ac,
+ 0xf48d, 0xf8fa, 0xfcd1, 0xff39, 0xff3a, 0xfe1a,
+ 0xfd79, 0xfc9d, 0xfbf1, 0xfcc6, 0xfd80, 0xfda4,
+ 0xfe54, 0xfd2a, 0xf954, 0xf601, 0xf3a2, 0xf1e3,
+ 0xf1f0, 0xf217, 0xf150, 0xf158, 0xf196, 0xf178,
+ 0xf26b, 0xf35f, 0xf310, 0xf2da, 0xf27c, 0xf118,
+ 0xf067, 0xf093, 0xf070, 0xf1f0, 0xf531, 0xf671,
+ 0xf60a, 0xf6a3, 0xf740, 0xf79e, 0xf8b9, 0xf9c8,
+ 0xfb25, 0xfc93, 0xfc2f, 0xfb54, 0xfb6d, 0xfbb4,
+ 0xfe0f, 0x038e, 0x0932, 0x0dec, 0x12c0, 0x1693,
+ 0x1835, 0x1928, 0x1af8, 0x1cbb, 0x1e83, 0x20b4,
+ 0x1f96, 0x1abc, 0x174e, 0x14b8, 0x112d, 0x1038,
+ 0x103e, 0x0e22, 0x0d4c, 0x0d31, 0x0ad3, 0x094a,
+ 0x0920, 0x075b, 0x04d8, 0x02a9, 0x00ff, 0x00ce,
+ 0x00ee, 0x0098, 0x00c5, 0x00e4, 0x0071, 0xffc2,
+ 0xfed6, 0xfec8, 0x0039, 0x01f4, 0x0352, 0x0422,
+ 0x045a, 0x048e, 0x03d0, 0x00be, 0xfc2c, 0xf701,
+ 0xf20e, 0xefdf, 0xf169, 0xf4cb, 0xf939, 0xfe02,
+ 0x0096, 0x0104, 0x01b8, 0x01a5, 0xff4e, 0xfd33,
+ 0xfc60, 0xfb32, 0xfa80, 0xfb85, 0xfd67, 0xfff2,
+ 0x0258, 0x0312, 0x0366, 0x044e, 0x045b, 0x0422,
+ 0x048d, 0x03ca, 0x0145, 0xfe52, 0xfbde, 0xfad6,
+ 0xfa9c, 0xf9f0, 0xf992, 0xf8ec, 0xf683, 0xf43b,
+ 0xf330, 0xf1cc, 0xf06a, 0xef24, 0xec54, 0xe936,
+ 0xe7e6, 0xe815, 0xea29, 0xee55, 0xf1d8, 0xf36e,
+ 0xf4b3, 0xf530, 0xf41e, 0xf439, 0xf65d, 0xf7bd,
+ 0xf867, 0xf9bf, 0xfa32, 0xf947, 0xf7f3, 0xf5ba,
+ 0xf3fc, 0xf4d6, 0xf6f7, 0xf913, 0xfb31, 0xfc56,
+ 0xfccb, 0xfd38, 0xfc6b, 0xfb67, 0xfc92, 0xfed8,
+ 0x00d4, 0x02d6, 0x03bc, 0x0352, 0x0349, 0x0346,
+ 0x02bc, 0x0254, 0x00ad, 0xfd6e, 0xfb4f, 0xfab2,
+ 0xfa3d, 0xfa80, 0xfb03, 0xfa3f, 0xf886, 0xf62c,
+ 0xf2f5, 0xf00c, 0xeed9, 0xef91, 0xf196, 0xf3ad,
+ 0xf4f2, 0xf59f, 0xf5b6, 0xf4e3, 0xf462, 0xf5b8,
+ 0xf81b, 0xfac1, 0xfde6, 0xfffe, 0xffc2, 0xfec4,
+ 0xfe12, 0xfd96, 0xfe1e, 0xffd0, 0x01bf, 0x0330,
+ 0x03be, 0x03ff, 0x04bc, 0x054a, 0x0528, 0x04de,
+ 0x03ff, 0x01a1, 0xfeab, 0xfcce, 0xfc0f, 0xfb95,
+ 0xfb24, 0xfa98, 0xfa43, 0xfa67, 0xfa0e, 0xf934,
+ 0xf91f, 0xf98b, 0xf990, 0xf966, 0xf9e1, 0xfb6f,
+ 0xfccf, 0xfd12, 0xfd53, 0xfd9e, 0xfd7f, 0xfde2,
+ 0xfe85, 0xff06, 0xff6b, 0xfddf, 0xfac3, 0xf8dd,
+ 0xf7b5, 0xf6f4, 0xf7df, 0xf8ab, 0xf82c, 0xf81a,
+ 0xf866, 0xf896, 0xf9a8, 0xfb1f, 0xfbba, 0xfc1a,
+ 0xfd8e, 0xff9b, 0x00de, 0x01ba, 0x02f7, 0x036c,
+ 0x01fe, 0xff68, 0xfd05, 0xfb5b, 0xfa06, 0xf8ef,
+ 0xf829, 0xf759, 0xf6d1, 0xf762, 0xf96f, 0xfc9e,
+ 0xff48, 0x0058, 0x00c8, 0x0176, 0x0347, 0x0705,
+ 0x0b03, 0x0dbd, 0x0ff0, 0x118d, 0x11ee, 0x11bf,
+ 0x11df, 0x129e, 0x1387, 0x13ad, 0x12b6, 0x10bf,
+ 0x0e4f, 0x0c3b, 0x0ae0, 0x0a5d, 0x0ad0, 0x0bfe,
+ 0x0d4f, 0x0dd8, 0x0d4a, 0x0c0b, 0x0a63, 0x08d9,
+ 0x079e, 0x06a0, 0x06e9, 0x0849, 0x08c2, 0x0807,
+ 0x068f, 0x0480, 0x031b, 0x027d, 0x0112, 0xfe74,
+ 0xfb36, 0xf807, 0xf565, 0xf3c0, 0xf3f8, 0xf579,
+ 0xf6fb, 0xf92d, 0xfbd5, 0xfdaf, 0xffa4, 0x021d,
+ 0x040f, 0x0575, 0x0674, 0x06a4, 0x0544, 0x023e,
+ 0xfff4, 0xff75, 0xff1d, 0xff6b, 0x00f9, 0x01ee,
+ 0x0212, 0x0224, 0x0214, 0x02fa, 0x0538, 0x0786,
+ 0x09a0, 0x0b67, 0x0ba5, 0x0a14, 0x0806, 0x069e,
+ 0x0631, 0x071b, 0x08d7, 0x0980, 0x0817, 0x050b,
+ 0x015a, 0xfe23, 0xfae8, 0xf6d2, 0xf327, 0xf10c,
+ 0xf083, 0xf18b, 0xf351, 0xf536, 0xf76d, 0xf9a9,
+ 0xfbdd, 0xfddd, 0xff0f, 0x0009, 0x00f5, 0x0113,
+ 0x00ad, 0xffd9, 0xfe8d, 0xfd77, 0xfc59, 0xfb2c,
+ 0xfa51, 0xf8d5, 0xf6f6, 0xf6a3, 0xf845, 0xfac1,
+ 0xfcd9, 0xfe17, 0xfedf, 0xff7d, 0x00d2, 0x0326,
+ 0x0534, 0x06fd, 0x0894, 0x08ef, 0x0908, 0x0936,
+ 0x07d0, 0x05cc, 0x042c, 0x019a, 0xfeae, 0xfc97,
+ 0xfaf7, 0xfa2a, 0xfa30, 0xf9b4, 0xf839, 0xf65e,
+ 0xf4eb, 0xf439, 0xf444, 0xf4f7, 0xf586, 0xf526,
+ 0xf44f, 0xf3ee, 0xf46f, 0xf574, 0xf679, 0xf74c,
+ 0xf754, 0xf6b8, 0xf671, 0xf652, 0xf6b1, 0xf851,
+ 0xf9aa, 0xf9ff, 0xfa78, 0xfab6, 0xfacc, 0xfc0a,
+ 0xfe26, 0x00a6, 0x038e, 0x05f4, 0x0727, 0x072f,
+ 0x067b, 0x05b8, 0x04fa, 0x0493, 0x04dd, 0x0534,
+ 0x055e, 0x057d, 0x051b, 0x042a, 0x0319, 0x0288,
+ 0x02d9, 0x0353, 0x0344, 0x024b, 0x0002, 0xfd6f,
+ 0xfb78, 0xf991, 0xf7f9, 0xf72c, 0xf6ef, 0xf762,
+ 0xf80a, 0xf855, 0xf8a9, 0xf905, 0xf938, 0xf906,
+ 0xf7e3, 0xf656, 0xf4d3, 0xf35a, 0xf341, 0xf51f,
+ 0xf81b, 0xfbd9, 0xff23, 0x00fb, 0x0246, 0x02de,
+ 0x0252, 0x020e, 0x02bb, 0x0373, 0x037c, 0x0293,
+ 0x00ed, 0xfee5, 0xfd10, 0xfc0b, 0xfb51, 0xfa3c,
+ 0xf8d7, 0xf66d, 0xf2a6, 0xef4a, 0xee43, 0xef6f,
+ 0xf1b0, 0xf4e8, 0xf8ff, 0xfcee, 0x004d, 0x02fd,
+ 0x043b, 0x042e, 0x0384, 0x02d8, 0x031c, 0x03d1,
+ 0x042c, 0x0523, 0x069d, 0x0792, 0x0845, 0x088c,
+ 0x0833, 0x0812, 0x0841, 0x086d, 0x0859, 0x078f,
+ 0x06f0, 0x07a0, 0x0902, 0x0a2d, 0x0aaa, 0x0a1f,
+ 0x08f9, 0x0866, 0x092b, 0x0a9c, 0x0c1c, 0x0e11,
+ 0x0f7e, 0x0f51, 0x0ecb, 0x0dec, 0x0b9c, 0x0931,
+ 0x0796, 0x0643, 0x05db, 0x066e, 0x06fe, 0x07c4,
+ 0x08f8, 0x09ee, 0x0a6d, 0x0aa9, 0x0a95, 0x0a2a,
+ 0x0a25, 0x0b14, 0x0bf0, 0x0bfb, 0x0c0f, 0x0d0b,
+ 0x0f0a, 0x1127, 0x1204, 0x11a3, 0x10d3, 0x100d,
+ 0x1002, 0x10f1, 0x1278, 0x1450, 0x15e3, 0x16dd,
+ 0x1791, 0x17f0, 0x1812, 0x186d, 0x18dd, 0x18fb,
+ 0x1819, 0x1539, 0x10ab, 0x0be9, 0x07c0, 0x046f,
+ 0x0268, 0x01a9, 0x0138, 0x0069, 0xffd8, 0x001a,
+ 0x012c, 0x02db, 0x04a5, 0x0640, 0x078d, 0x078f,
+ 0x0587, 0x023f, 0xff1b, 0xfd1b, 0xfc58, 0xfc34,
+ 0xfc33, 0xfbb2, 0xfa10, 0xf776, 0xf468, 0xf1cd,
+ 0xf08b, 0xf04f, 0xf0c4, 0xf21a, 0xf39f, 0xf4b2,
+ 0xf5b5, 0xf6cc, 0xf7d9, 0xf8df, 0xf9c2, 0xfa58,
+ 0xfa81, 0xfaa2, 0xfb1c, 0xfb79, 0xfbf8, 0xfd3b,
+ 0xfdf4, 0xfc99, 0xf96e, 0xf5ac, 0xf2f2, 0xf1ed,
+ 0xf1f3, 0xf2e0, 0xf460, 0xf5ad, 0xf6c0, 0xf693,
+ 0xf4ad, 0xf3c6, 0xf509, 0xf6a3, 0xf862, 0xf9e0,
+ 0xf91e, 0xf6e4, 0xf56d, 0xf491, 0xf3dd, 0xf40d,
+ 0xf57f, 0xf7a1, 0xf96d, 0xfa4b, 0xfa39, 0xf956,
+ 0xf82b, 0xf71c, 0xf5ea, 0xf4e4, 0xf4bb, 0xf537,
+ 0xf616, 0xf7b1, 0xf9de, 0xfbda, 0xfd1b, 0xfd97,
+ 0xfda9, 0xfd54, 0xfc67, 0xfb6f, 0xfad4, 0xfa43,
+ 0xf9d4, 0xf952, 0xf7c0, 0xf50f, 0xf1cc, 0xee6b,
+ 0xebfc, 0xea6d, 0xe8a1, 0xe725, 0xe64d, 0xe533,
+ 0xe478, 0xe48e, 0xe4c3, 0xe600, 0xe875, 0xea47,
+ 0xeb47, 0xebbb, 0xeabf, 0xe937, 0xe892, 0xe843,
+ 0xe820, 0xe916, 0xeb31, 0xee0a, 0xf1c1, 0xf5f8,
+ 0xf9c7, 0xfd66, 0x01a8, 0x05e8, 0x0911, 0x0b5e,
+ 0x0d11, 0x0d9b, 0x0cb4, 0x0b35, 0x0a22, 0x092e,
+ 0x0807, 0x0759, 0x068f, 0x04cc, 0x0323, 0x01bb,
+ 0xffd4, 0xfede, 0xff6c, 0xff57, 0xfe7e, 0xfec0,
+ 0xffb1, 0x0009, 0x00c3, 0x034f, 0x073d, 0x0b0d,
+ 0x0da0, 0x0ef4, 0x0fa8, 0x0f5b, 0x0d6d, 0x0b2c,
+ 0x0a48, 0x0aba, 0x0bdc, 0x0d10, 0x0dc6, 0x0e0b,
+ 0x0dc6, 0x0cba, 0x0bd8, 0x0c03, 0x0cb0, 0x0d53,
+ 0x0da1, 0x0cd1, 0x0b21, 0x0a16, 0x09ec, 0x09d5,
+ 0x09ff, 0x0a76, 0x0acd, 0x0b3d, 0x0b68, 0x0abe,
+ 0x0a01, 0x0967, 0x086c, 0x0748, 0x05ab, 0x0363,
+ 0x0191, 0x00a3, 0x005e, 0x00cc, 0x00d8, 0xffb2,
+ 0xfe3a, 0xfcf3, 0xfb82, 0xf9eb, 0xf8e7, 0xf953,
+ 0xfad7, 0xfc6c, 0xfe02, 0xff68, 0xffbd, 0xff1e,
+ 0xfe8c, 0xfe71, 0xfea2, 0xfee7, 0xfed1, 0xfe40,
+ 0xfe2d, 0xfef2, 0xff52, 0xff6b, 0x00a9, 0x02a9,
+ 0x043d, 0x0559, 0x0651, 0x0748, 0x07c4, 0x0775,
+ 0x0727, 0x06e5, 0x05c1, 0x03e2, 0x01c4, 0xff58,
+ 0xfcde, 0xfac3, 0xf94c, 0xf871, 0xf820, 0xf8d7,
+ 0xfa5a, 0xfb8d, 0xfc67, 0xfd03, 0xfc78, 0xfa81,
+ 0xf7bd, 0xf494, 0xf10e, 0xed57, 0xea54, 0xe8a7,
+ 0xe7bb, 0xe70e, 0xe691, 0xe619, 0xe625, 0xe753,
+ 0xe937, 0xeb64, 0xee06, 0xf0a3, 0xf29a, 0xf4d0,
+ 0xf82e, 0xfbba, 0xfeaa, 0x0191, 0x04b0, 0x07ef,
+ 0x0b06, 0x0d1e, 0x0e43, 0x0ef3, 0x0eb1, 0x0d2e,
+ 0x0ab5, 0x0821, 0x06df, 0x069d, 0x05df, 0x04ca,
+ 0x037a, 0x014d, 0xfea1, 0xfc45, 0xfb22, 0xfb46,
+ 0xfb00, 0xf9e1, 0xf8c7, 0xf719, 0xf4e3, 0xf350,
+ 0xf20c, 0xf0dd, 0xf04e, 0xf001, 0xef99, 0xef1a,
+ 0xee48, 0xed73, 0xed4a, 0xedfe, 0xef7e, 0xf1cf,
+ 0xf4d6, 0xf78b, 0xf8c7, 0xf8f0, 0xf93b, 0xfa7b,
+ 0xfca7, 0xfeb6, 0x0075, 0x027b, 0x037c, 0x0240,
+ 0x004f, 0xff9c, 0x0099, 0x0275, 0x03e4, 0x0494,
+ 0x046e, 0x02dd, 0x0086, 0xfe85, 0xfce9, 0xfbb0,
+ 0xfaa2, 0xf938, 0xf7e4, 0xf740, 0xf70c, 0xf740,
+ 0xf84e, 0xf9fd, 0xfb31, 0xfb22, 0xf9f0, 0xf7b9,
+ 0xf4b5, 0xf1c2, 0xef46, 0xecd6, 0xea99, 0xe908,
+ 0xe7f6, 0xe744, 0xe783, 0xe925, 0xec53, 0xf12d,
+ 0xf6b0, 0xfb12, 0xfe10, 0x001d, 0x00e5, 0x00ac,
+ 0x004e, 0x0064, 0x018f, 0x0359, 0x048e, 0x0547,
+ 0x05b8, 0x0573, 0x04bb, 0x03df, 0x032d, 0x0348,
+ 0x03e0, 0x0457, 0x04db, 0x05bb, 0x076b, 0x09ba,
+ 0x0bc5, 0x0db3, 0x0f73, 0x0ff9, 0x0f5f, 0x0e22,
+ 0x0c70, 0x0b44, 0x0ae6, 0x0ad3, 0x0b09, 0x0ad1,
+ 0x09c2, 0x08fe, 0x08aa, 0x0813, 0x0755, 0x0643,
+ 0x04ab, 0x02fe, 0x014e, 0xffd5, 0xff2e, 0xff38,
+ 0xff4d, 0xff0f, 0xfeae, 0xfecf, 0xffb1, 0x00c7,
+ 0x018e, 0x023f, 0x0347, 0x044c, 0x04dd, 0x0501,
+ 0x04b7, 0x045f, 0x0426, 0x0342, 0x022c, 0x026e,
+ 0x03c9, 0x055a, 0x06c5, 0x0743, 0x070a, 0x0736,
+ 0x07be, 0x0884, 0x0a02, 0x0ba5, 0x0c28, 0x0b2f,
+ 0x0996, 0x0865, 0x0789, 0x06a2, 0x05cb, 0x04bb,
+ 0x02c6, 0xffea, 0xfcff, 0xfb10, 0xfa90, 0xfb5b,
+ 0xfcf9, 0xfeba, 0x0067, 0x01e6, 0x0284, 0x025f,
+ 0x028b, 0x03ad, 0x063f, 0x0a1e, 0x0dc4, 0x1045,
+ 0x11cc, 0x11d8, 0x0ff2, 0x0cfd, 0x0a6a, 0x094a,
+ 0x09d2, 0x0b39, 0x0c92, 0x0da8, 0x0ea6, 0x0f8f,
+ 0x107b, 0x113b, 0x10ec, 0x0f5a, 0x0d24, 0x0a1a,
+ 0x060b, 0x01cd, 0xfde2, 0xfa7c, 0xf7ad, 0xf475,
+ 0xf071, 0xecdb, 0xea58, 0xe8be, 0xe851, 0xe93a,
+ 0xeb3d, 0xedd6, 0xf045, 0xf25f, 0xf4c1, 0xf7eb,
+ 0xfbf8, 0x00ce, 0x05f0, 0x0a38, 0x0cb3, 0x0d6c,
+ 0x0cef, 0x0c1c, 0x0c1b, 0x0cfe, 0x0e06, 0x0ec8,
+ 0x0ecd, 0x0e3b, 0x0ddf, 0x0d71, 0x0cb3, 0x0cd2,
+ 0x0e3b, 0x0fe7, 0x10e4, 0x1104, 0x10b1, 0x0ffd,
+ 0x0e88, 0x0cac, 0x0adb, 0x095b, 0x089e, 0x0878,
+ 0x08b2, 0x0937, 0x08b7, 0x06f2, 0x0598, 0x04ba,
+ 0x033b, 0x011e, 0xfe7e, 0xfb87, 0xf914, 0xf7b6,
+ 0xf751, 0xf711, 0xf676, 0xf629, 0xf608, 0xf551,
+ 0xf4b7, 0xf543, 0xf6f2, 0xf8d9, 0xf9aa, 0xf952,
+ 0xf8c2, 0xf862, 0xf86b, 0xf89a, 0xf860, 0xf835,
+ 0xf835, 0xf78d, 0xf6ab, 0xf680, 0xf6fb, 0xf7ed,
+ 0xf928, 0xfa28, 0xfad2, 0xfb9b, 0xfc9f, 0xfd1d,
+ 0xfca0, 0xfb57, 0xf920, 0xf64e, 0xf3ec, 0xf211,
+ 0xf047, 0xee5f, 0xec19, 0xe9fd, 0xe8dc, 0xe851,
+ 0xe7b4, 0xe71b, 0xe6ca, 0xe699, 0xe62f, 0xe604,
+ 0xe6bc, 0xe810, 0xe9b2, 0xeb45, 0xebfc, 0xeba3,
+ 0xea30, 0xe7a8, 0xe508, 0xe314, 0xe21a, 0xe23b,
+ 0xe28f, 0xe2f1, 0xe431, 0xe567, 0xe5c7, 0xe653,
+ 0xe7d7, 0xeaba, 0xeef5, 0xf3c9, 0xf8e9, 0xfd90,
+ 0x00ca, 0x037e, 0x0665, 0x08f1, 0x0b34, 0x0d61,
+ 0x0f53, 0x111c, 0x1276, 0x1310, 0x12d8, 0x11f1,
+ 0x1100, 0x1039, 0x0f90, 0x0f6a, 0x0f8e, 0x0fd2,
+ 0x1097, 0x1137, 0x111b, 0x1064, 0x0ebd, 0x0c85,
+ 0x0a7a, 0x0865, 0x06d4, 0x06da, 0x0836, 0x0a2d,
+ 0x0c09, 0x0d11, 0x0d29, 0x0c9d, 0x0c11, 0x0c6d,
+ 0x0e41, 0x1135, 0x1398, 0x1453, 0x14c4, 0x15f7,
+ 0x171f, 0x17eb, 0x1912, 0x1b1b, 0x1d67, 0x1ecc,
+ 0x1fa0, 0x20cb, 0x220a, 0x2348, 0x2488, 0x24ee,
+ 0x242b, 0x22c1, 0x211b, 0x1f4d, 0x1cc1, 0x1938,
+ 0x1586, 0x124c, 0x0f98, 0x0d51, 0x0b93, 0x0aa5,
+ 0x0a05, 0x0918, 0x089b, 0x0937, 0x0a6a, 0x0b6c,
+ 0x0bee, 0x0c5b, 0x0cd1, 0x0ca9, 0x0bfe, 0x0b3c,
+ 0x0a11, 0x0857, 0x0613, 0x036d, 0x014e, 0x0087,
+ 0x0120, 0x028d, 0x03dd, 0x04a6, 0x04f1, 0x04b0,
+ 0x042e, 0x0379, 0x0235, 0x0097, 0xfe88, 0xfb8c,
+ 0xf82b, 0xf50c, 0xf22c, 0xef9b, 0xed53, 0xeb23,
+ 0xe934, 0xe7c9, 0xe6e4, 0xe684, 0xe69e, 0xe6bc,
+ 0xe670, 0xe650, 0xe714, 0xe87b, 0xea3c, 0xec38,
+ 0xee44, 0xf0c0, 0xf3a6, 0xf657, 0xf8f4, 0xfba5,
+ 0xfdf9, 0xffd7, 0x0104, 0x011b, 0x00aa, 0x005a,
+ 0x004b, 0x00ed, 0x0284, 0x0447, 0x055d, 0x05c9,
+ 0x05e7, 0x0593, 0x0474, 0x02ff, 0x0282, 0x03b3,
+ 0x05e7, 0x0818, 0x09bb, 0x0a92, 0x0ab3, 0x0a6b,
+ 0x09e7, 0x0988, 0x09b6, 0x0a30, 0x0a76, 0x0a7e,
+ 0x0a75, 0x0a16, 0x08d5, 0x06da, 0x04cf, 0x02c3,
+ 0x0068, 0xfda3, 0xfa8f, 0xf7dd, 0xf641, 0xf594,
+ 0xf562, 0xf594, 0xf639, 0xf72c, 0xf7f2, 0xf826,
+ 0xf7bf, 0xf6f2, 0xf607, 0xf4f7, 0xf3a6, 0xf262,
+ 0xf12a, 0xefd6, 0xef3d, 0xefec, 0xf10b, 0xf1e2,
+ 0xf255, 0xf257, 0xf285, 0xf399, 0xf53e, 0xf6ff,
+ 0xf905, 0xfafc, 0xfc32, 0xfcbe, 0xfcb5, 0xfbc9,
+ 0xfa96, 0xf9f5, 0xf978, 0xf861, 0xf6b9, 0xf51b,
+ 0xf446, 0xf456, 0xf49f, 0xf4e6, 0xf5b9, 0xf76e,
+ 0xf981, 0xfb0b, 0xfb8f, 0xfb0f, 0xf98b, 0xf70a,
+ 0xf415, 0xf1a9, 0xf038, 0xef70, 0xef47, 0xefd5,
+ 0xf095, 0xf15d, 0xf28f, 0xf404, 0xf57b, 0xf70b,
+ 0xf87e, 0xf9d6, 0xfbbf, 0xfe67, 0x0144, 0x041c,
+ 0x06b1, 0x0862, 0x0946, 0x0a34, 0x0b4d, 0x0c3a,
+ 0x0d10, 0x0d98, 0x0d7f, 0x0d40, 0x0d1d, 0x0c87,
+ 0x0b7e, 0x0a9d, 0x09a4, 0x07d8, 0x057b, 0x037d,
+ 0x0227, 0x012e, 0x003a, 0xfee3, 0xfd2a, 0xfbc9,
+ 0xfb42, 0xfb4e, 0xfb77, 0xfb6a, 0xfadb, 0xf9e0,
+ 0xf90e, 0xf8c3, 0xf8ec, 0xf958, 0xf9cf, 0xfa36,
+ 0xfa78, 0xfa4c, 0xfa06, 0xfac7, 0xfcee, 0xff9b,
+ 0x01eb, 0x038d, 0x0490, 0x0522, 0x056d, 0x05e5,
+ 0x06c9, 0x07bc, 0x08d1, 0x0a73, 0x0bcc, 0x0b82,
+ 0x098d, 0x0690, 0x02f9, 0xffce, 0xfde2, 0xfcab,
+ 0xfbaf, 0xfb15, 0xfa21, 0xf803, 0xf552, 0xf308,
+ 0xf183, 0xf0ab, 0xf069, 0xf0d4, 0xf1a7, 0xf27e,
+ 0xf3ab, 0xf560, 0xf716, 0xf868, 0xf8e2, 0xf7ec,
+ 0xf60b, 0xf443, 0xf285, 0xf0ad, 0xef8b, 0xef6e,
+ 0xeff4, 0xf175, 0xf3fe, 0xf67f, 0xf8ce, 0xfb88,
+ 0xfe29, 0xfffe, 0x0101, 0x0122, 0x006d, 0xff15,
+ 0xfd42, 0xfb9e, 0xfaa1, 0xf9db, 0xf8e0, 0xf781,
+ 0xf587, 0xf35c, 0xf1e3, 0xf148, 0xf15d, 0xf270,
+ 0xf456, 0xf5dd, 0xf68d, 0xf6f4, 0xf773, 0xf868,
+ 0xf9c5, 0xfa96, 0xfacb, 0xfb5d, 0xfc59, 0xfd19,
+ 0xfd60, 0xfd3d, 0xfcca, 0xfc2f, 0xfbbe, 0xfbb2,
+ 0xfbf6, 0xfc84, 0xfd4f, 0xfe0a, 0xfe98, 0xff0d,
+ 0xffa5, 0x00ad, 0x01b7, 0x020f, 0x01ef, 0x01fb,
+ 0x02b3, 0x0453, 0x0668, 0x0828, 0x0913, 0x08fe,
+ 0x0808, 0x06a0, 0x0599, 0x0544, 0x04b1, 0x0364,
+ 0x01f9, 0x0097, 0xff2d, 0xfe3b, 0xfdec, 0xfdbd,
+ 0xfd28, 0xfc49, 0xfb9f, 0xfb46, 0xfb66, 0xfc15,
+ 0xfc7c, 0xfc22, 0xfb98, 0xfb1e, 0xfac5, 0xfac3,
+ 0xfacb, 0xfa52, 0xf928, 0xf7ce, 0xf719, 0xf72a,
+ 0xf7b6, 0xf874, 0xf8b8, 0xf82e, 0xf72a, 0xf62a,
+ 0xf5fa, 0xf6e3, 0xf848, 0xf9c7, 0xfb15, 0xfc04,
+ 0xfcf8, 0xfe2f, 0xffbd, 0x018f, 0x02c3, 0x02d1,
+ 0x0226, 0x0102, 0xff81, 0xfda5, 0xfb3b, 0xf8ca,
+ 0xf74a, 0xf6fa, 0xf74f, 0xf784, 0xf752, 0xf6cc,
+ 0xf5c7, 0xf435, 0xf267, 0xf0fe, 0xf08c, 0xf095,
+ 0xf00d, 0xeedb, 0xedb7, 0xed58, 0xede1, 0xeef8,
+ 0xf0af, 0xf308, 0xf557, 0xf757, 0xf962, 0xfbd9,
+ 0xfeb4, 0x014a, 0x034f, 0x055f, 0x07ee, 0x0ad4,
+ 0x0d7c, 0x0f69, 0x10f4, 0x1251, 0x132b, 0x1395,
+ 0x1394, 0x1310, 0x1299, 0x1280, 0x1281, 0x12a4,
+ 0x12fa, 0x1335, 0x12db, 0x11cd, 0x106e, 0x0eed,
+ 0x0d8e, 0x0ccd, 0x0c20, 0x0a8c, 0x07e3, 0x047d,
+ 0x0121, 0xfe9b, 0xfd4b, 0xfd65, 0xfe0a, 0xfde0,
+ 0xfd10, 0xfc06, 0xfa83, 0xf8ec, 0xf790, 0xf60c,
+ 0xf4a7, 0xf448, 0xf54f, 0xf722, 0xf907, 0xfb09,
+ 0xfcf8, 0xfe3c, 0xff22, 0x0063, 0x0247, 0x049b,
+ 0x06e0, 0x0912, 0x0b27, 0x0ca0, 0x0df8, 0x0fca,
+ 0x1148, 0x1195, 0x1095, 0x0ec6, 0x0d32, 0x0c3c,
+ 0x0bc4, 0x0bb7, 0x0b3f, 0x09f0, 0x0880, 0x0746,
+ 0x069d, 0x0717, 0x0808, 0x087c, 0x0865, 0x07fc,
+ 0x0762, 0x0681, 0x0573, 0x0495, 0x0344, 0x00ac,
+ 0xfda9, 0xfb6d, 0xf9ca, 0xf7ff, 0xf5f2, 0xf415,
+ 0xf2a2, 0xf1a7, 0xf18c, 0xf2a6, 0xf4d0, 0xf77c,
+ 0xf991, 0xfa7a, 0xfaea, 0xfb8a, 0xfc3a, 0xfcbb,
+ 0xfcbf, 0xfc0b, 0xfae0, 0xf9ab, 0xf8b3, 0xf84f,
+ 0xf89d, 0xf938, 0xf9ab, 0xfa01, 0xfa91, 0xfb6e,
+ 0xfc6a, 0xfd8d, 0xfee4, 0x0032, 0x0178, 0x02f6,
+ 0x044a, 0x04d5, 0x04c1, 0x0490, 0x0476, 0x0478,
+ 0x04a8, 0x051e, 0x0593, 0x0586, 0x04ec, 0x041e,
+ 0x0367, 0x032b, 0x03bb, 0x04bb, 0x0562, 0x0572,
+ 0x0544, 0x04e7, 0x044e, 0x03ef, 0x0418, 0x047b,
+ 0x04e5, 0x0581, 0x0680, 0x079f, 0x0856, 0x0895,
+ 0x0890, 0x0846, 0x07e2, 0x077b, 0x06d8, 0x05f6,
+ 0x04e9, 0x03ec, 0x0382, 0x036d, 0x02d0, 0x01be,
+ 0x009b, 0xff42, 0xfe10, 0xfdf0, 0xfeb2, 0xff57,
+ 0xff8c, 0xff4b, 0xfe28, 0xfc5a, 0xfad0, 0xf9eb,
+ 0xf98e, 0xf97e, 0xf8ee, 0xf742, 0xf4e5, 0xf295,
+ 0xf0f7, 0xf075, 0xf0ad, 0xf102, 0xf1a1, 0xf318,
+ 0xf577, 0xf822, 0xfa5e, 0xfc18, 0xfda9, 0xff06,
+ 0x002a, 0x014b, 0x021f, 0x0259, 0x01fb, 0x00ca,
+ 0xfeff, 0xfd5a, 0xfbc6, 0xf9ca, 0xf7b8, 0xf5f9,
+ 0xf46e, 0xf2bc, 0xf13d, 0xf11c, 0xf277, 0xf3b1,
+ 0xf36d, 0xf1b2, 0xef88, 0xedd6, 0xec4b, 0xea88,
+ 0xe915, 0xe805, 0xe6fb, 0xe637, 0xe603, 0xe64d,
+ 0xe6ee, 0xe796, 0xe81b, 0xe8b0, 0xe9af, 0xeb47,
+ 0xed75, 0xf053, 0xf3d8, 0xf774, 0xfac3, 0xfdef,
+ 0x0129, 0x047b, 0x07ac, 0x0a68, 0x0ca2, 0x0e84,
+ 0x107f, 0x1305, 0x15c5, 0x1826, 0x1a07, 0x1b70,
+ 0x1c6f, 0x1d3f, 0x1e15, 0x1ef1, 0x1f7e, 0x1f92,
+ 0x1f31, 0x1dfc, 0x1be4, 0x19db, 0x187b, 0x176c,
+ 0x1667, 0x1584, 0x149f, 0x134c, 0x117c, 0x0f75,
+ 0x0d6e, 0x0bcd, 0x0ae3, 0x0a7b, 0x0a66, 0x0a80,
+ 0x0a4e, 0x09be, 0x0956, 0x098b, 0x0a7c, 0x0bce,
+ 0x0d1a, 0x0e73, 0x0fd3, 0x10f4, 0x11f2, 0x1308,
+ 0x1452, 0x15fd, 0x1816, 0x1a1c, 0x1b33, 0x1b3c,
+ 0x1b02, 0x1aa6, 0x196a, 0x1769, 0x1583, 0x13ff,
+ 0x12d9, 0x122b, 0x11a0, 0x1105, 0x10b1, 0x1091,
+ 0x106d, 0x1072, 0x1028, 0x0f0b, 0x0dd5, 0x0d0e,
+ 0x0c6f, 0x0c10, 0x0b84, 0x0995, 0x0630, 0x023d,
+ 0xfe2e, 0xfa14, 0xf662, 0xf3e4, 0xf2ca, 0xf226,
+ 0xf12c, 0xeffa, 0xef17, 0xef1e, 0xf056, 0xf22f,
+ 0xf3d8, 0xf4d7, 0xf4f2, 0xf46a, 0xf3e7, 0xf35f,
+ 0xf25f, 0xf156, 0xf0de, 0xf0dc, 0xf13c, 0xf1bd,
+ 0xf1d8, 0xf1be, 0xf1de, 0xf239, 0xf2e1, 0xf3e6,
+ 0xf58b, 0xf811, 0xfaa0, 0xfc88, 0xfe7b, 0x008e,
+ 0x01fb, 0x032e, 0x052d, 0x0756, 0x082a, 0x07ee,
+ 0x0813, 0x08c1, 0x095b, 0x0981, 0x090d, 0x088a,
+ 0x083b, 0x0783, 0x06a8, 0x0646, 0x05f0, 0x0541,
+ 0x0404, 0x0262, 0x0123, 0x003c, 0xff69, 0xff52,
+ 0xffe3, 0x0072, 0x00dc, 0x00f2, 0x00e3, 0x00e4,
+ 0x0083, 0xfff5, 0xffa5, 0xff5d, 0xff65, 0xffd0,
+ 0xffed, 0xff99, 0xfed2, 0xfd59, 0xfba8, 0xfa78,
+ 0xfa0c, 0xfa25, 0xfa6c, 0xfae8, 0xfb54, 0xfb1c,
+ 0xfa61, 0xf98a, 0xf8a9, 0xf7a0, 0xf635, 0xf49d,
+ 0xf315, 0xf185, 0xf00c, 0xeea2, 0xed3e, 0xec70,
+ 0xebe3, 0xeab3, 0xe93e, 0xe7f6, 0xe6d7, 0xe65b,
+ 0xe6b6, 0xe7e4, 0xea25, 0xed0a, 0xefbc, 0xf1e0,
+ 0xf385, 0xf507, 0xf687, 0xf7df, 0xf8fc, 0xf9a4,
+ 0xf9b1, 0xf916, 0xf7a0, 0xf5b6, 0xf43d, 0xf389,
+ 0xf3ab, 0xf47b, 0xf57a, 0xf68b, 0xf78f, 0xf7de,
+ 0xf722, 0xf5ba, 0xf41e, 0xf27b, 0xf0fe, 0xeff8,
+ 0xef59, 0xeec7, 0xee27, 0xed85, 0xed3a, 0xed63,
+ 0xed76, 0xed56, 0xed83, 0xee55, 0xf01a, 0xf2bf,
+ 0xf5ba, 0xf8c8, 0xfb9f, 0xfddb, 0xff61, 0x003a,
+ 0x011c, 0x0308, 0x05ed, 0x08fd, 0x0b7a, 0x0d18,
+ 0x0e47, 0x0f6d, 0x10c0, 0x1276, 0x1423, 0x1574,
+ 0x168e, 0x1707, 0x16b1, 0x15d1, 0x1441, 0x122f,
+ 0x1007, 0x0e1c, 0x0d09, 0x0c54, 0x0b1c, 0x09f5,
+ 0x08d8, 0x06fc, 0x04e3, 0x030b, 0x01c6, 0x01e1,
+ 0x02a5, 0x02cd, 0x0294, 0x0231, 0x019a, 0x013f,
+ 0x011f, 0x00cc, 0x001c, 0xff60, 0xff43, 0xffd3,
+ 0x0092, 0x01a2, 0x032a, 0x046f, 0x04bf, 0x0491,
+ 0x04c0, 0x0519, 0x0527, 0x0528, 0x04f1, 0x03ff,
+ 0x029f, 0x015c, 0x007d, 0x0006, 0xff86, 0xfee8,
+ 0xfea2, 0xfeb9, 0xfee9, 0xff1c, 0xff38, 0xff24,
+ 0xfec5, 0xfe4f, 0xfe53, 0xfec5, 0xff61, 0x0061,
+ 0x0146, 0x010c, 0xffd7, 0xfe33, 0xfc15, 0xf9ae,
+ 0xf742, 0xf474, 0xf126, 0xedf6, 0xebab, 0xea9e,
+ 0xea68, 0xea8f, 0xeb61, 0xeced, 0xee62, 0xef38,
+ 0xef5a, 0xeeb6, 0xeded, 0xedc3, 0xedd2, 0xed97,
+ 0xed88, 0xedca, 0xedda, 0xedb9, 0xed9c, 0xed98,
+ 0xee7d, 0xf0c6, 0xf38c, 0xf61f, 0xf83a, 0xf955,
+ 0xf9d4, 0xfa81, 0xfb2f, 0xfbec, 0xfd15, 0xfe86,
+ 0x0064, 0x0288, 0x03bd, 0x03c5, 0x0384, 0x032e,
+ 0x0275, 0x017b, 0x0088, 0xff95, 0xfe93, 0xfdaa,
+ 0xfc9c, 0xfb5b, 0xfaa8, 0xfa78, 0xf9ea, 0xf905,
+ 0xf7f3, 0xf667, 0xf4d8, 0xf3ef, 0xf39e, 0xf382,
+ 0xf330, 0xf2d3, 0xf31a, 0xf434, 0xf600, 0xf865,
+ 0xfae1, 0xfcd4, 0xfdc4, 0xfd83, 0xfcad, 0xfc2a,
+ 0xfc5f, 0xfd51, 0xfed3, 0x0094, 0x0252, 0x03d1,
+ 0x04f0, 0x05d6, 0x06b2, 0x072c, 0x06dd, 0x0659,
+ 0x065e, 0x0675, 0x05c4, 0x042e, 0x0228, 0x0036,
+ 0xfe77, 0xfcd7, 0xfb92, 0xfa89, 0xf920, 0xf713,
+ 0xf490, 0xf1f2, 0xefbf, 0xee6e, 0xee51, 0xef31,
+ 0xf01d, 0xf0b4, 0xf1cb, 0xf3cd, 0xf5ec, 0xf768,
+ 0xf861, 0xf926, 0xf993, 0xf982, 0xf985, 0xfa4e,
+ 0xfb7a, 0xfc42, 0xfccd, 0xfd7b, 0xfe21, 0xfeb5,
+ 0xff5f, 0x004b, 0x019e, 0x02df, 0x0391, 0x0413,
+ 0x04c7, 0x056f, 0x05a0, 0x0506, 0x03cc, 0x027e,
+ 0x013a, 0xffe7, 0xfe8c, 0xfd2f, 0xfbd1, 0xfa52,
+ 0xf8bc, 0xf784, 0xf707, 0xf753, 0xf84d, 0xf995,
+ 0xfaf1, 0xfc40, 0xfd5f, 0xfed3, 0x00f3, 0x0321,
+ 0x051c, 0x0716, 0x08c0, 0x09ed, 0x0aba, 0x0b48,
+ 0x0bf5, 0x0ce3, 0x0dd7, 0x0ec5, 0x0f60, 0x0f3f,
+ 0x0eb5, 0x0e85, 0x0ed9, 0x0f10, 0x0ed2, 0x0e71,
+ 0x0dc2, 0x0c22, 0x0982, 0x0643, 0x034f, 0x01cc,
+ 0x018e, 0x01af, 0x0221, 0x02df, 0x0351, 0x031f,
+ 0x0284, 0x0213, 0x0215, 0x0277, 0x0351, 0x0477,
+ 0x050d, 0x049b, 0x039c, 0x02cb, 0x0267, 0x0221,
+ 0x01cf, 0x01cf, 0x024c, 0x02ac, 0x026d, 0x022d,
+ 0x02d2, 0x043b, 0x05a1, 0x0676, 0x06a1, 0x067b,
+ 0x062e, 0x0593, 0x051a, 0x054f, 0x05c3, 0x05ca,
+ 0x056c, 0x054f, 0x05f8, 0x0748, 0x092a, 0x0b92,
+ 0x0db4, 0x0ed3, 0x0ee5, 0x0e35, 0x0d98, 0x0d7f,
+ 0x0d6f, 0x0d73, 0x0d8b, 0x0cac, 0x0aa5, 0x0823,
+ 0x0544, 0x0245, 0xff6b, 0xfcb6, 0xfaf2, 0xfa80,
+ 0xfa54, 0xf9ef, 0xf9cd, 0xf9cc, 0xf95c, 0xf8a2,
+ 0xf83c, 0xf848, 0xf857, 0xf819, 0xf751, 0xf5eb,
+ 0xf45c, 0xf345, 0xf326, 0xf3f9, 0xf507, 0xf615,
+ 0xf787, 0xf942, 0xfb4f, 0xfdf7, 0x00c6, 0x035a,
+ 0x05c8, 0x07f0, 0x09ff, 0x0c55, 0x0eed, 0x11e1,
+ 0x14ec, 0x1701, 0x179a, 0x171f, 0x1634, 0x1537,
+ 0x13fc, 0x127a, 0x1105, 0x0fb8, 0x0ee2, 0x0ecc,
+ 0x0ed1, 0x0e68, 0x0d9f, 0x0c35, 0x0a00, 0x0733,
+ 0x041a, 0x0140, 0xfedd, 0xfca5, 0xfaa8, 0xf916,
+ 0xf809, 0xf7c5, 0xf81f, 0xf88f, 0xf8bb, 0xf835,
+ 0xf6ff, 0xf5f9, 0xf5da, 0xf67e, 0xf77e, 0xf8e2,
+ 0xfab8, 0xfc60, 0xfd77, 0xfe63, 0xff3a, 0xfffa,
+ 0x0122, 0x029a, 0x03a5, 0x03ee, 0x03b4, 0x0368,
+ 0x031c, 0x02c5, 0x02d7, 0x033f, 0x033f, 0x02a1,
+ 0x0117, 0xfe1e, 0xfa71, 0xf755, 0xf52a, 0xf3d0,
+ 0xf316, 0xf297, 0xf1e4, 0xf0ec, 0xefed, 0xeeed,
+ 0xedf6, 0xedbd, 0xee95, 0xefbd, 0xf06f, 0xf094,
+ 0xf059, 0xef90, 0xeddc, 0xebad, 0xe9df, 0xe8ad,
+ 0xe7ef, 0xe75a, 0xe674, 0xe569, 0xe504, 0xe57b,
+ 0xe64e, 0xe74a, 0xe8af, 0xea1a, 0xeac8, 0xeafe,
+ 0xeb62, 0xebf0, 0xec65, 0xec2d, 0xeac0, 0xe8c6,
+ 0xe739, 0xe666, 0xe6c9, 0xe8e6, 0xec18, 0xeeee,
+ 0xf0ab, 0xf1d1, 0xf325, 0xf4d9, 0xf701, 0xf9de,
+ 0xfd59, 0x00d0, 0x03cc, 0x0679, 0x08e9, 0x0ac3,
+ 0x0c1a, 0x0d25, 0x0dd1, 0x0e99, 0x100c, 0x11ae,
+ 0x12e3, 0x1390, 0x1397, 0x130b, 0x124d, 0x11a4,
+ 0x116e, 0x11ea, 0x1296, 0x12c2, 0x128c, 0x1275,
+ 0x12a7, 0x1302, 0x1331, 0x1306, 0x12cf, 0x12d5,
+ 0x133b, 0x1449, 0x15a8, 0x16b8, 0x17a4, 0x1887,
+ 0x18e4, 0x18ea, 0x1977, 0x1abe, 0x1c07, 0x1cc1,
+ 0x1cf5, 0x1cba, 0x1c40, 0x1bdc, 0x1b64, 0x1ab7,
+ 0x1a3c, 0x1a06, 0x19f1, 0x19e8, 0x1994, 0x18fc,
+ 0x1835, 0x16c7, 0x14c7, 0x12c1, 0x10cb, 0x0f25,
+ 0x0dfc, 0x0cff, 0x0c04, 0x0ac2, 0x090b, 0x0795,
+ 0x06d1, 0x0650, 0x05cc, 0x0589, 0x05db, 0x0680,
+ 0x06d9, 0x06f5, 0x075b, 0x0836, 0x0946, 0x09f6,
+ 0x09f7, 0x0913, 0x06bf, 0x0360, 0x000e, 0xfce5,
+ 0xf9ab, 0xf667, 0xf31d, 0xf097, 0xef42, 0xee54,
+ 0xede7, 0xeed1, 0xf089, 0xf1cb, 0xf1d1, 0xf07d,
+ 0xee6b, 0xec6c, 0xeb12, 0xea83, 0xeaa3, 0xeb8a,
+ 0xecf9, 0xee25, 0xeecd, 0xef1c, 0xef19, 0xef2a,
+ 0xeff3, 0xf1d1, 0xf4e1, 0xf88b, 0xfbc3, 0xfe48,
+ 0x0081, 0x0286, 0x0426, 0x0593, 0x0738, 0x0903,
+ 0x0a55, 0x0aad, 0x0a69, 0x0a85, 0x0b34, 0x0bc7,
+ 0x0c28, 0x0c8d, 0x0c96, 0x0c28, 0x0bc3, 0x0b8f,
+ 0x0b53, 0x0ac9, 0x09b5, 0x0808, 0x05cd, 0x0351,
+ 0x0149, 0x000b, 0xff35, 0xfe52, 0xfd4a, 0xfc0f,
+ 0xfa8e, 0xf8f3, 0xf78a, 0xf674, 0xf5b4, 0xf51c,
+ 0xf47b, 0xf3fc, 0xf3aa, 0xf30e, 0xf20e, 0xf127,
+ 0xf0da, 0xf174, 0xf2b8, 0xf3ef, 0xf4e1, 0xf5e7,
+ 0xf6e1, 0xf740, 0xf6f3, 0xf6a9, 0xf6f2, 0xf799,
+ 0xf82a, 0xf85f, 0xf811, 0xf774, 0xf6c9, 0xf5e9,
+ 0xf4b6, 0xf34c, 0xf1b2, 0xf05c, 0xefde, 0xeff9,
+ 0xf044, 0xf0c6, 0xf182, 0xf292, 0xf3e2, 0xf4ed,
+ 0xf5aa, 0xf69b, 0xf7be, 0xf8a7, 0xf8f6, 0xf87a,
+ 0xf76b, 0xf627, 0xf4b7, 0xf2c1, 0xf022, 0xed8b,
+ 0xeb6b, 0xe948, 0xe774, 0xe6dc, 0xe710, 0xe743,
+ 0xe796, 0xe83e, 0xe923, 0xea20, 0xeb47, 0xecf4,
+ 0xeee1, 0xf058, 0xf150, 0xf1ed, 0xf24e, 0xf2e9,
+ 0xf3b9, 0xf481, 0xf571, 0xf653, 0xf6d4, 0xf75f,
+ 0xf87a, 0xfa6d, 0xfd52, 0x00ac, 0x03d0, 0x065e,
+ 0x0809, 0x08d9, 0x0948, 0x099b, 0x09e8, 0x0a90,
+ 0x0b9c, 0x0c5c, 0x0c85, 0x0c72, 0x0c37, 0x0bc6,
+ 0x0b6b, 0x0b6f, 0x0bb6, 0x0b95, 0x0a8a, 0x0911,
+ 0x07c9, 0x06a3, 0x05c4, 0x05bd, 0x0687, 0x0771,
+ 0x07c3, 0x071c, 0x058d, 0x039d, 0x01f1, 0x0114,
+ 0x017b, 0x02e7, 0x0476, 0x05f1, 0x0768, 0x083d,
+ 0x0844, 0x07fd, 0x076b, 0x066e, 0x050a, 0x0345,
+ 0x01a4, 0x007e, 0xffa5, 0xff60, 0xffe7, 0x00a2,
+ 0x00e7, 0x0078, 0xffc2, 0xff62, 0xff39, 0xff13,
+ 0xfeff, 0xfec4, 0xfe3d, 0xfd3e, 0xfb79, 0xf98d,
+ 0xf823, 0xf6cf, 0xf57c, 0xf4a9, 0xf44a, 0xf411,
+ 0xf3c0, 0xf357, 0xf376, 0xf467, 0xf58b, 0xf68e,
+ 0xf7f8, 0xfa07, 0xfc04, 0xfd0f, 0xfd43, 0xfd74,
+ 0xfdd9, 0xfde4, 0xfd77, 0xfcdb, 0xfbe3, 0xfa71,
+ 0xf8d8, 0xf754, 0xf66a, 0xf6a0, 0xf757, 0xf7a3,
+ 0xf792, 0xf796, 0xf7df, 0xf83b, 0xf847, 0xf7fd,
+ 0xf792, 0xf6f6, 0xf5f7, 0xf4be, 0xf40d, 0xf449,
+ 0xf4d7, 0xf560, 0xf5fd, 0xf636, 0xf5e6, 0xf5c1,
+ 0xf62b, 0xf6f9, 0xf7e5, 0xf8e3, 0xfa86, 0xfd33,
+ 0x005f, 0x0347, 0x0593, 0x072e, 0x07fb, 0x0834,
+ 0x08a9, 0x099a, 0x0a78, 0x0b28, 0x0bc5, 0x0be8,
+ 0x0b56, 0x0a56, 0x09a4, 0x09e4, 0x0a8b, 0x0ac4,
+ 0x0aaf, 0x0a60, 0x0980, 0x0835, 0x06fa, 0x0616,
+ 0x056d, 0x0482, 0x0332, 0x0209, 0x016c, 0x0159,
+ 0x01c9, 0x02ac, 0x03cd, 0x04d1, 0x053e, 0x04c0,
+ 0x0370, 0x01c5, 0x0056, 0xff6c, 0xfebd, 0xfe01,
+ 0xfd26, 0xfbd1, 0xf9d6, 0xf7e4, 0xf6af, 0xf642,
+ 0xf657, 0xf6ba, 0xf757, 0xf7df, 0xf7cd, 0xf735,
+ 0xf681, 0xf5fc, 0xf614, 0xf68d, 0xf684, 0xf5e8,
+ 0xf4e2, 0xf30e, 0xf0f6, 0xefdf, 0xf00e, 0xf13d,
+ 0xf362, 0xf62d, 0xf8ea, 0xfaee, 0xfc28, 0xfd14,
+ 0xfde7, 0xfe77, 0xfec6, 0xfed0, 0xfe65, 0xfd8d,
+ 0xfcaf, 0xfc16, 0xfb9c, 0xfad9, 0xf949, 0xf693,
+ 0xf341, 0xf067, 0xee5d, 0xed0f, 0xecd6, 0xedbd,
+ 0xef0b, 0xf023, 0xf107, 0xf1e2, 0xf27a, 0xf279,
+ 0xf231, 0xf24c, 0xf2be, 0xf313, 0xf367, 0xf411,
+ 0xf51a, 0xf669, 0xf7be, 0xf8fb, 0xfa9a, 0xfccc,
+ 0xfed2, 0xfff0, 0x0042, 0x005d, 0x00c2, 0x01d1,
+ 0x03ba, 0x0621, 0x0846, 0x09ec, 0x0b35, 0x0bf1,
+ 0x0c44, 0x0cbc, 0x0d31, 0x0cdf, 0x0b99, 0x09e3,
+ 0x0824, 0x0670, 0x0518, 0x047c, 0x0444, 0x03da,
+ 0x032b, 0x0248, 0x0166, 0x00f8, 0x0104, 0x013f,
+ 0x0193, 0x01b2, 0x0153, 0x00d2, 0x008d, 0x0074,
+ 0x0070, 0x008d, 0x0105, 0x020e, 0x0374, 0x04ec,
+ 0x0660, 0x078a, 0x081c, 0x083c, 0x0868, 0x08dc,
+ 0x096c, 0x0a2c, 0x0b76, 0x0cc6, 0x0d53, 0x0d91,
+ 0x0e42, 0x0f4f, 0x106f, 0x117c, 0x125a, 0x12dd,
+ 0x1292, 0x117a, 0x1050, 0x0f54, 0x0e3c, 0x0d03,
+ 0x0b7b, 0x095b, 0x06e5, 0x0486, 0x029f, 0x019d,
+ 0x01b0, 0x0288, 0x0375, 0x0416, 0x04a3, 0x0527,
+ 0x0572, 0x05df, 0x06a9, 0x0768, 0x07c3, 0x076c,
+ 0x05f4, 0x038f, 0x0115, 0xff15, 0xfd7d, 0xfc3a,
+ 0xfba9, 0xfbf5, 0xfc82, 0xfcc0, 0xfccb, 0xfce5,
+ 0xfd20, 0xfd7d, 0xfdf5, 0xfe82, 0xfeee, 0xfed4,
+ 0xfe46, 0xfdc4, 0xfd83, 0xfd97, 0xfe39, 0xff67,
+ 0x00dc, 0x0245, 0x0352, 0x0429, 0x052d, 0x0648,
+ 0x072e, 0x07d3, 0x0836, 0x0866, 0x088e, 0x08ff,
+ 0x0a0b, 0x0b83, 0x0ccf, 0x0d85, 0x0d6a, 0x0c8b,
+ 0x0b5d, 0x0a2e, 0x0920, 0x0864, 0x07e1, 0x0776,
+ 0x071c, 0x06ab, 0x0619, 0x0582, 0x04de, 0x0455,
+ 0x040b, 0x03c8, 0x03aa, 0x0402, 0x049d, 0x050d,
+ 0x051b, 0x04e4, 0x04e7, 0x0557, 0x05db, 0x0625,
+ 0x060a, 0x0592, 0x051a, 0x04db, 0x04c8, 0x04ec,
+ 0x0546, 0x05a6, 0x05b8, 0x0529, 0x0418, 0x031b,
+ 0x0274, 0x01ca, 0x00b2, 0xff38, 0xfdcf, 0xfccc,
+ 0xfc73, 0xfd17, 0xfe54, 0xff38, 0xff86, 0xff5f,
+ 0xfe58, 0xfc42, 0xf9cd, 0xf7c3, 0xf64e, 0xf506,
+ 0xf3db, 0xf371, 0xf3da, 0xf44d, 0xf4a1, 0xf541,
+ 0xf60a, 0xf6a6, 0xf737, 0xf80f, 0xf92f, 0xfa31,
+ 0xfab9, 0xfabe, 0xfa57, 0xf973, 0xf7ea, 0xf5e0,
+ 0xf3b1, 0xf12d, 0xede7, 0xea36, 0xe6a4, 0xe338,
+ 0xe02b, 0xddff, 0xdce8, 0xdce4, 0xddaf, 0xdec3,
+ 0xe00c, 0xe1bb, 0xe39f, 0xe558, 0xe6be, 0xe7c7,
+ 0xe86f, 0xe8a0, 0xe86e, 0xe849, 0xe8a5, 0xe9ce,
+ 0xebd1, 0xee10, 0xefc5, 0xf0f9, 0xf220, 0xf32f,
+ 0xf3ff, 0xf511, 0xf6f4, 0xf934, 0xfb04, 0xfc79,
+ 0xfe01, 0xff8f, 0x011f, 0x02fe, 0x0540, 0x07b0,
+ 0x09f5, 0x0ba7, 0x0c96, 0x0cc3, 0x0c6d, 0x0c20,
+ 0x0c3d, 0x0cdf, 0x0e08, 0x0f74, 0x10c3, 0x11b6,
+ 0x11e1, 0x111a, 0x0fff, 0x0f2d, 0x0ea8, 0x0e5e,
+ 0x0e59, 0x0e9e, 0x0f29, 0x0fd5, 0x1082, 0x1106,
+ 0x111d, 0x10b0, 0x0fd4, 0x0ec5, 0x0dfb, 0x0d92,
+ 0x0d51, 0x0d77, 0x0e26, 0x0eca, 0x0f0e, 0x0f40,
+ 0x0fd0, 0x10d0, 0x11c9, 0x1295, 0x13a5, 0x14d2,
+ 0x1586, 0x15ce, 0x15c7, 0x1559, 0x14c9, 0x1440,
+ 0x1384, 0x129f, 0x11ec, 0x114c, 0x1019, 0x0e38,
+ 0x0c54, 0x0adf, 0x09d9, 0x0935, 0x088f, 0x079b,
+ 0x06a0, 0x05c5, 0x04ef, 0x0435, 0x03bc, 0x0395,
+ 0x0376, 0x02ad, 0x0122, 0xff55, 0xfd45, 0xfae3,
+ 0xf8a1, 0xf692, 0xf458, 0xf231, 0xf0cd, 0xf045,
+ 0xf029, 0xf059, 0xf108, 0xf22b, 0xf354, 0xf413,
+ 0xf485, 0xf558, 0xf6c1, 0xf81b, 0xf92f, 0xfa89,
+ 0xfc48, 0xfde9, 0xff2e, 0x0018, 0x0076, 0x0058,
+ 0x0051, 0x00bd, 0x015b, 0x01ed, 0x02c1, 0x0431,
+ 0x0601, 0x07bf, 0x0954, 0x0ad4, 0x0c6a, 0x0e21,
+ 0x0f6a, 0x0fff, 0x1051, 0x104f, 0x0fad, 0x0f00,
+ 0x0e9d, 0x0e06, 0x0d23, 0x0c27, 0x0ad4, 0x090c,
+ 0x0745, 0x05ea, 0x04fe, 0x0484, 0x0497, 0x04d4,
+ 0x0491, 0x0396, 0x0227, 0x00eb, 0x0065, 0x0036,
+ 0xffcd, 0xff36, 0xfe7c, 0xfd91, 0xfca4, 0xfbe8,
+ 0xfbad, 0xfc0b, 0xfc65, 0xfc4e, 0xfbee, 0xfb1d,
+ 0xf999, 0xf7e4, 0xf6dd, 0xf6aa, 0xf6d1, 0xf742,
+ 0xf838, 0xf943, 0xf9b4, 0xf97f, 0xf921, 0xf92f,
+ 0xf9c4, 0xfa6c, 0xfb06, 0xfb97, 0xfb9d, 0xfad4,
+ 0xf9b6, 0xf886, 0xf734, 0xf5eb, 0xf4c0, 0xf369,
+ 0xf1c0, 0xf027, 0xef20, 0xeedb, 0xef50, 0xf022,
+ 0xf0bf, 0xf116, 0xf188, 0xf21f, 0xf29d, 0xf305,
+ 0xf372, 0xf3aa, 0xf356, 0xf281, 0xf16c, 0xf007,
+ 0xee5b, 0xecfc, 0xec3b, 0xebed, 0xebf7, 0xec17,
+ 0xebdf, 0xeb85, 0xeb75, 0xeb90, 0xebc3, 0xec6f,
+ 0xedd2, 0xefbc, 0xf1ae, 0xf324, 0xf407, 0xf4c2,
+ 0xf5a9, 0xf689, 0xf6ed, 0xf69d, 0xf5c9, 0xf4bc,
+ 0xf3c8, 0xf35a, 0xf3ac, 0xf47b, 0xf580, 0xf6e5,
+ 0xf8be, 0xfa86, 0xfbef, 0xfd85, 0xffcc, 0x0270,
+ 0x04b5, 0x065b, 0x07d9, 0x0962, 0x0a75, 0x0ae8,
+ 0x0b20, 0x0b3c, 0x0b0e, 0x0a72, 0x0950, 0x07f3,
+ 0x06bc, 0x0593, 0x049e, 0x046c, 0x04df, 0x0550,
+ 0x0587, 0x0581, 0x04da, 0x0350, 0x0157, 0xff9b,
+ 0xfe4e, 0xfd75, 0xfd39, 0xfdb4, 0xfeba, 0xffc1,
+ 0x0032, 0x0012, 0xffa5, 0xfed5, 0xfdaa, 0xfc6b,
+ 0xfb31, 0xf9f4, 0xf8ac, 0xf777, 0xf6b5, 0xf68b,
+ 0xf6ca, 0xf73f, 0xf794, 0xf78e, 0xf74a, 0xf6f5,
+ 0xf6e3, 0xf772, 0xf896, 0xf9f9, 0xfb23, 0xfba8,
+ 0xfbaf, 0xfb96, 0xfb81, 0xfb8b, 0xfbaa, 0xfb9f,
+ 0xfb24, 0xfa04, 0xf880, 0xf757, 0xf71d, 0xf7f1,
+ 0xf9ad, 0xfc08, 0xfea0, 0x00a9, 0x0186, 0x016c,
+ 0x00b7, 0xff7e, 0xfe02, 0xfc9f, 0xfb7e, 0xfa57,
+ 0xf8a2, 0xf695, 0xf4ea, 0xf3bb, 0xf2d4, 0xf23e,
+ 0xf20c, 0xf231, 0xf226, 0xf174, 0xf0cc, 0xf109,
+ 0xf1c8, 0xf276, 0xf368, 0xf4d3, 0xf5f3, 0xf63b,
+ 0xf656, 0xf6f4, 0xf7e4, 0xf8bf, 0xf949, 0xf98a,
+ 0xf9b5, 0xf9d2, 0xf9f6, 0xfa56, 0xfaf8, 0xfbea,
+ 0xfd32, 0xfe9d, 0x001d, 0x01bb, 0x035b, 0x0500,
+ 0x06ad, 0x084d, 0x09b4, 0x0a67, 0x0a52, 0x09e4,
+ 0x0929, 0x0816, 0x06fb, 0x0618, 0x05c5, 0x0639,
+ 0x06f3, 0x0767, 0x077d, 0x0772, 0x07ae, 0x0836,
+ 0x08c0, 0x091a, 0x08fb, 0x084b, 0x0733, 0x05a0,
+ 0x03b4, 0x01f9, 0x00c2, 0x0024, 0xffe8, 0xffac,
+ 0xff89, 0xffc5, 0x0041, 0x00b1, 0x00b4, 0x0040,
+ 0xffb8, 0xff31, 0xfeb4, 0xfe98, 0xfeea, 0xff70,
+ 0xfffa, 0x007a, 0x011b, 0x01a7, 0x01a6, 0x0154,
+ 0x013a, 0x0173, 0x01d1, 0x01ee, 0x01d7, 0x0215,
+ 0x0226, 0x010c, 0xff0f, 0xfcf0, 0xfb00, 0xf978,
+ 0xf860, 0xf79e, 0xf768, 0xf79f, 0xf7cb, 0xf818,
+ 0xf901, 0xfa3f, 0xfb4b, 0xfc36, 0xfd40, 0xfe2d,
+ 0xfe94, 0xfe3c, 0xfd5a, 0xfc6e, 0xfb8a, 0xfa78,
+ 0xf971, 0xf87b, 0xf728, 0xf5c8, 0xf4e5, 0xf444,
+ 0xf401, 0xf4c3, 0xf655, 0xf7d5, 0xf8c3, 0xf905,
+ 0xf8bd, 0xf809, 0xf72a, 0xf6c4, 0xf716, 0xf77f,
+ 0xf789, 0xf777, 0xf784, 0xf771, 0xf728, 0xf746,
+ 0xf827, 0xf92b, 0xf9eb, 0xfaa9, 0xfb54, 0xfba7,
+ 0xfbc3, 0xfc1b, 0xfd26, 0xfeb7, 0x001d, 0x012a,
+ 0x01f3, 0x021b, 0x0188, 0x00c4, 0x005d, 0x005e,
+ 0x0042, 0xff99, 0xfeb3, 0xfe07, 0xfd91, 0xfd4a,
+ 0xfd6d, 0xfde7, 0xfe4c, 0xfe52, 0xfe1b, 0xfe17,
+ 0xfe92, 0xff5c, 0x0021, 0x00d4, 0x018d, 0x0242,
+ 0x02b2, 0x030e, 0x03f8, 0x0548, 0x0630, 0x0697,
+ 0x06cb, 0x06d4, 0x06c1, 0x067f, 0x05fe, 0x0595,
+ 0x0579, 0x059b, 0x060e, 0x06c3, 0x0773, 0x07ae,
+ 0x0704, 0x05d2, 0x04f6, 0x04ae, 0x04b8, 0x04e0,
+ 0x053c, 0x05da, 0x064d, 0x065d, 0x0666, 0x0653,
+ 0x05c4, 0x04b1, 0x033f, 0x01f9, 0x0133, 0x006a,
+ 0xffa8, 0xff77, 0xff91, 0xff7d, 0xff49, 0xff68,
+ 0x0071, 0x020e, 0x033e, 0x03c3, 0x03cc, 0x0385,
+ 0x032b, 0x0283, 0x016e, 0x0063, 0xff52, 0xfdf7,
+ 0xfcde, 0xfc5f, 0xfc09, 0xfb82, 0xfaee, 0xfa85,
+ 0xfa1e, 0xf981, 0xf927, 0xf9d4, 0xfb51, 0xfc83,
+ 0xfd13, 0xfdaa, 0xfe61, 0xfeb3, 0xfe99, 0xfe7f,
+ 0xfeac, 0xfede, 0xfea9, 0xfe5d, 0xfe56, 0xfe41,
+ 0xfe3b, 0xfedc, 0x0012, 0x0174, 0x02b0, 0x039c,
+ 0x046c, 0x0550, 0x0653, 0x0797, 0x0900, 0x0a54,
+ 0x0b70, 0x0bf3, 0x0ba1, 0x0af5, 0x0ab8, 0x0b2d,
+ 0x0bd7, 0x0c5f, 0x0cf6, 0x0d51, 0x0cf4, 0x0c3e,
+ 0x0bdb, 0x0c05, 0x0c63, 0x0c49, 0x0ba3, 0x0af2,
+ 0x0a34, 0x0904, 0x0770, 0x061c, 0x0598, 0x05ad,
+ 0x05da, 0x05dd, 0x0574, 0x0470, 0x02e7, 0x0138,
+ 0x002e, 0x002c, 0x00b5, 0x017e, 0x026d, 0x02e8,
+ 0x029e, 0x021b, 0x01fe, 0x0263, 0x02f7, 0x037c,
+ 0x03f5, 0x046f, 0x04e1, 0x0544, 0x05b0, 0x0634,
+ 0x065d, 0x05a7, 0x0436, 0x029b, 0x014d, 0x0043,
+ 0xff23, 0xfde7, 0xfc91, 0xfaee, 0xf951, 0xf81c,
+ 0xf714, 0xf610, 0xf518, 0xf410, 0xf2fd, 0xf1e3,
+ 0xf0b3, 0xefa2, 0xeedb, 0xee5c, 0xee2c, 0xee2a,
+ 0xee2c, 0xee4b, 0xee5b, 0xedb1, 0xec01, 0xe9b8,
+ 0xe75e, 0xe542, 0xe3af, 0xe2c9, 0xe283, 0xe2d2,
+ 0xe389, 0xe469, 0xe58c, 0xe72f, 0xe922, 0xeae7,
+ 0xec3b, 0xed4c, 0xee46, 0xef13, 0xefa9, 0xf01e,
+ 0xf0b8, 0xf192, 0xf23a, 0xf294, 0xf34c, 0xf49d,
+ 0xf622, 0xf7be, 0xf989, 0xfb90, 0xfdd2, 0x0034,
+ 0x02d0, 0x05a6, 0x0877, 0x0b4c, 0x0e0e, 0x102e,
+ 0x116e, 0x1204, 0x122e, 0x1224, 0x11d6, 0x1113,
+ 0x1024, 0x0f85, 0x0f55, 0x0f56, 0x0f4b, 0x0f4d,
+ 0x0f9c, 0x1029, 0x10a0, 0x10e1, 0x1129, 0x11a3,
+ 0x1241, 0x12e0, 0x133b, 0x1335, 0x1333, 0x138b,
+ 0x143a, 0x152f, 0x1650, 0x1771, 0x185c, 0x18df,
+ 0x191f, 0x195c, 0x1967, 0x1915, 0x18a0, 0x1828,
+ 0x175e, 0x1604, 0x148c, 0x13a9, 0x135b, 0x134e,
+ 0x136f, 0x13bb, 0x13fb, 0x13c6, 0x12f6, 0x120a,
+ 0x113d, 0x1025, 0x0ea5, 0x0d0b, 0x0b61, 0x0949,
+ 0x0676, 0x0368, 0x00e8, 0xff18, 0xfe00, 0xfdbb,
+ 0xfdc4, 0xfd6d, 0xfc6b, 0xfad6, 0xf92d, 0xf7d3,
+ 0xf6fd, 0xf720, 0xf845, 0xf9ad, 0xfabb, 0xfb2e,
+ 0xfb17, 0xfade, 0xfa8c, 0xf9ce, 0xf8bf, 0xf7b9,
+ 0xf6c1, 0xf5de, 0xf56b, 0xf59c, 0xf633, 0xf6e1,
+ 0xf722, 0xf68e, 0xf5bb, 0xf56c, 0xf58d, 0xf613,
+ 0xf742, 0xf8de, 0xfa3e, 0xfacf, 0xfa99, 0xfa1e,
+ 0xf97f, 0xf8b6, 0xf834, 0xf82e, 0xf87d, 0xf8eb,
+ 0xf92b, 0xf967, 0xfa11, 0xfaf3, 0xfbec, 0xfd73,
+ 0xff98, 0x01f6, 0x041a, 0x058f, 0x065c, 0x06d3,
+ 0x06eb, 0x06b2, 0x066e, 0x0625, 0x05c5, 0x0536,
+ 0x047e, 0x0409, 0x0414, 0x0446, 0x045c, 0x0460,
+ 0x0442, 0x03bd, 0x02bf, 0x01db, 0x01a0, 0x01ca,
+ 0x0211, 0x028a, 0x0310, 0x035f, 0x0339, 0x0275,
+ 0x0183, 0x00de, 0x0078, 0x007c, 0x0111, 0x01c4,
+ 0x0230, 0x0249, 0x0231, 0x021d, 0x01bf, 0x0107,
+ 0x00a8, 0x0096, 0x001d, 0xff40, 0xfe59, 0xfdc0,
+ 0xfdd0, 0xfe5b, 0xff0c, 0xffb1, 0xffeb, 0xffa1,
+ 0xfed9, 0xfd77, 0xfbdf, 0xfa88, 0xf980, 0xf8ed,
+ 0xf8b4, 0xf865, 0xf7de, 0xf6f9, 0xf5db, 0xf524,
+ 0xf4b5, 0xf406, 0xf36f, 0xf359, 0xf390, 0xf3cd,
+ 0xf416, 0xf4b6, 0xf5ba, 0xf6b9, 0xf74d, 0xf746,
+ 0xf6d3, 0xf668, 0xf63a, 0xf65d, 0xf6d7, 0xf739,
+ 0xf724, 0xf695, 0xf5a0, 0xf4a2, 0xf3d8, 0xf329,
+ 0xf30b, 0xf416, 0xf5db, 0xf785, 0xf8d1, 0xf9e1,
+ 0xfab2, 0xfb00, 0xfad4, 0xfab3, 0xfb00, 0xfbbc,
+ 0xfcb3, 0xfda0, 0xfe5a, 0xfeaf, 0xfe89, 0xfe57,
+ 0xfe8b, 0xff2b, 0x001e, 0x013e, 0x028b, 0x0443,
+ 0x0643, 0x0813, 0x095d, 0x09f8, 0x0a22, 0x0a50,
+ 0x0a78, 0x0a6d, 0x0a72, 0x0ac1, 0x0b2f, 0x0b4d,
+ 0x0ac2, 0x09b8, 0x0887, 0x074f, 0x0642, 0x059c,
+ 0x0545, 0x0510, 0x04ee, 0x04a7, 0x03e6, 0x029b,
+ 0x010a, 0xff7a, 0xfe1f, 0xfd45, 0xfcf4, 0xfccb,
+ 0xfc77, 0xfbde, 0xfb4a, 0xfb48, 0xfbbf, 0xfc1b,
+ 0xfc68, 0xfcb5, 0xfc77, 0xfb7d, 0xfa43, 0xf955,
+ 0xf910, 0xf977, 0xfa2e, 0xfac5, 0xfb09, 0xfb1d,
+ 0xfb25, 0xfafa, 0xfaa5, 0xfa82, 0xfac0, 0xfb26,
+ 0xfb4c, 0xfb27, 0xfb12, 0xfafb, 0xfa9a, 0xf9ff,
+ 0xf90c, 0xf794, 0xf5c3, 0xf38d, 0xf12e, 0xef89,
+ 0xeee4, 0xef02, 0xf024, 0xf246, 0xf47e, 0xf602,
+ 0xf6b1, 0xf6a7, 0xf620, 0xf598, 0xf564, 0xf583,
+ 0xf60f, 0xf6e7, 0xf76b, 0xf772, 0xf729, 0xf647,
+ 0xf4d0, 0xf311, 0xf10b, 0xef21, 0xedc8, 0xeccd,
+ 0xec55, 0xecc8, 0xeded, 0xef7c, 0xf0f9, 0xf1b7,
+ 0xf1c1, 0xf140, 0xf022, 0xef14, 0xeeeb, 0xefa8,
+ 0xf110, 0xf2e2, 0xf4b1, 0xf5f4, 0xf636, 0xf5c0,
+ 0xf558, 0xf55e, 0xf605, 0xf74d, 0xf8b9, 0xf9fb,
+ 0xfb09, 0xfbae, 0xfbfd, 0xfc46, 0xfc9e, 0xfd02,
+ 0xfd3e, 0xfd18, 0xfc90, 0xfba1, 0xfa85, 0xf9e9,
+ 0xfa31, 0xfb32, 0xfc58, 0xfcec, 0xfcb8, 0xfbc4,
+ 0xfa03, 0xf807, 0xf6ea, 0xf75c, 0xf946, 0xfbd4,
+ 0xfe34, 0x0011, 0x00f3, 0x007f, 0xff35, 0xfdb8,
+ 0xfc9a, 0xfc55, 0xfcc3, 0xfde3, 0x0009, 0x0289,
+ 0x044e, 0x0514, 0x04c9, 0x0376, 0x01a1, 0xffe5,
+ 0xfefc, 0xff6d, 0x00e0, 0x02ea, 0x054e, 0x075f,
+ 0x0880, 0x08c7, 0x0882, 0x07cd, 0x06a6, 0x054c,
+ 0x0445, 0x03d5, 0x03dd, 0x0434, 0x04b4, 0x0547,
+ 0x05d5, 0x0653, 0x06dc, 0x0743, 0x0717, 0x0668,
+ 0x0593, 0x04d9, 0x04a2, 0x0543, 0x06b6, 0x08bb,
+ 0x0ab5, 0x0c02, 0x0c6e, 0x0bc2, 0x0a0a, 0x0803,
+ 0x0656, 0x0517, 0x042d, 0x03a2, 0x038d, 0x0382,
+ 0x02b7, 0x0121, 0xff3e, 0xfd2d, 0xfb2f, 0xf9ee,
+ 0xf9d2, 0xfaa5, 0xfbc9, 0xfcd6, 0xfdc4, 0xfe47,
+ 0xfdf2, 0xfcf2, 0xfbab, 0xfa4e, 0xf8fc, 0xf7f0,
+ 0xf7a0, 0xf85c, 0xf9b0, 0xfafd, 0xfc0a, 0xfcb2,
+ 0xfcdb, 0xfcd1, 0xfd05, 0xfdbc, 0xff21, 0x014b,
+ 0x03f7, 0x0686, 0x089a, 0x0a2b, 0x0b0a, 0x0b29,
+ 0x0ac7, 0x0a0a, 0x091c, 0x0842, 0x078b, 0x06f2,
+ 0x068d, 0x0641, 0x05e7, 0x056f, 0x04d4, 0x0426,
+ 0x0365, 0x0275, 0x0172, 0x009e, 0x0007, 0xffa2,
+ 0xff5d, 0xff24, 0xfee9, 0xfeb5, 0xfea8, 0xfeca,
+ 0xff11, 0xff70, 0xff9e, 0xff64, 0xff0c, 0xfec6,
+ 0xfe4e, 0xfdad, 0xfd43, 0xfd30, 0xfd61, 0xfdb8,
+ 0xfe0d, 0xfe6c, 0xfedf, 0xff49, 0xffc2, 0x0090,
+ 0x01a3, 0x028c, 0x02f7, 0x02e7, 0x025c, 0x0132,
+ 0xffac, 0xfe8c, 0xfe3e, 0xfea8, 0xff91, 0x008a,
+ 0x0109, 0x0116, 0x0112, 0x012d, 0x0173, 0x01dd,
+ 0x026a, 0x0347, 0x0444, 0x04f8, 0x0585, 0x0615,
+ 0x065a, 0x0625, 0x0574, 0x0458, 0x032e, 0x0210,
+ 0x00c1, 0xff8d, 0xfeca, 0xfe23, 0xfd4e, 0xfc52,
+ 0xfb08, 0xf952, 0xf780, 0xf5e6, 0xf47a, 0xf341,
+ 0xf2a6, 0xf2e9, 0xf3b2, 0xf494, 0xf56f, 0xf64f,
+ 0xf740, 0xf7f7, 0xf7ff, 0xf75d, 0xf649, 0xf4af,
+ 0xf2d1, 0xf179, 0xf11b, 0xf176, 0xf221, 0xf2fe,
+ 0xf42b, 0xf5a3, 0xf729, 0xf88d, 0xf9db, 0xfb0a,
+ 0xfba8, 0xfb65, 0xfa94, 0xf99d, 0xf8b0, 0xf839,
+ 0xf878, 0xf929, 0xfa01, 0xfaad, 0xfaf4, 0xfb06,
+ 0xfaca, 0xfa11, 0xf951, 0xf8cf, 0xf875, 0xf892,
+ 0xf936, 0xf9e5, 0xfa7b, 0xfaf0, 0xfb31, 0xfb65,
+ 0xfb91, 0xfbda, 0xfc7e, 0xfcfc, 0xfcda, 0xfc84,
+ 0xfc3d, 0xfbca, 0xfb55, 0xfb4f, 0xfbe2, 0xfcdc,
+ 0xfdac, 0xfde2, 0xfd99, 0xfcf6, 0xfbf8, 0xfaf0,
+ 0xfa42, 0xf9df, 0xf9ce, 0xfa4e, 0xfb19, 0xfbe3,
+ 0xfd02, 0xfe98, 0x0048, 0x01e9, 0x034e, 0x0429,
+ 0x047e, 0x0475, 0x0424, 0x03ce, 0x03c1, 0x041c,
+ 0x04c5, 0x0579, 0x062c, 0x0718, 0x086a, 0x0a25,
+ 0x0c1a, 0x0dff, 0x0fad, 0x10ff, 0x11ce, 0x122a,
+ 0x123e, 0x1247, 0x12c5, 0x13db, 0x14f7, 0x15bc,
+ 0x1622, 0x1600, 0x156f, 0x14c4, 0x1413, 0x1363,
+ 0x12af, 0x11ce, 0x10bf, 0x0f6d, 0x0dc2, 0x0c48,
+ 0x0b7a, 0x0b04, 0x0a9c, 0x0a2a, 0x094d, 0x07dc,
+ 0x0635, 0x04ae, 0x032f, 0x019d, 0x003a, 0xff2d,
+ 0xfe34, 0xfd47, 0xfcbb, 0xfca7, 0xfcd6, 0xfd0b,
+ 0xfd5b, 0xfe1a, 0xff3f, 0x0092, 0x0241, 0x0463,
+ 0x06a0, 0x0890, 0x0a1c, 0x0b6c, 0x0c87, 0x0d2f,
+ 0x0d78, 0x0db9, 0x0de0, 0x0dbd, 0x0daa, 0x0df2,
+ 0x0e35, 0x0e11, 0x0dbb, 0x0d79, 0x0d4d, 0x0d48,
+ 0x0d74, 0x0dc4, 0x0e37, 0x0e7a, 0x0e29, 0x0d7f,
+ 0x0cf0, 0x0c7d, 0x0c09, 0x0ba0, 0x0b41, 0x0ae9,
+ 0x0ab6, 0x0a9f, 0x0a48, 0x095e, 0x07ee, 0x0646,
+ 0x0488, 0x02a4, 0x00dd, 0xffc0, 0xff64, 0xff5d,
+ 0xff44, 0xfeef, 0xfe69, 0xfdc6, 0xfd0a, 0xfc63,
+ 0xfbf5, 0xfbb2, 0xfbb7, 0xfc40, 0xfd41, 0xfe3e,
+ 0xfe9d, 0xfe54, 0xfdc1, 0xfcda, 0xfbb8, 0xfaf9,
+ 0xfac7, 0xfaf2, 0xfb84, 0xfc5e, 0xfd40, 0xfe26,
+ 0xff09, 0xffd9, 0x00a3, 0x0192, 0x02b2, 0x0393,
+ 0x03e6, 0x040a, 0x042f, 0x0419, 0x03d9, 0x0388,
+ 0x031a, 0x02bc, 0x0265, 0x01aa, 0x006c, 0xfee7,
+ 0xfd54, 0xfc0c, 0xfb3b, 0xfa82, 0xf98a, 0xf888,
+ 0xf7ae, 0xf6bf, 0xf569, 0xf3ab, 0xf1d6, 0xf01e,
+ 0xee56, 0xec89, 0xeb45, 0xeae8, 0xeb54, 0xec54,
+ 0xedb6, 0xef10, 0xefdc, 0xeff8, 0xefc6, 0xefac,
+ 0xefe7, 0xf0c7, 0xf2a0, 0xf55f, 0xf841, 0xfa58,
+ 0xfb5d, 0xfb8f, 0xfb41, 0xfad4, 0xfaab, 0xfb09,
+ 0xfbf9, 0xfd0e, 0xfdb4, 0xfdaf, 0xfd24, 0xfc76,
+ 0xfc10, 0xfbf6, 0xfbd9, 0xfbaa, 0xfbc0, 0xfc42,
+ 0xfcf6, 0xfdad, 0xfe66, 0xff14, 0xff76, 0xff3f,
+ 0xfea2, 0xfe3b, 0xfe42, 0xfea7, 0xff64, 0x0044,
+ 0x0134, 0x0239, 0x02f4, 0x0347, 0x0380, 0x039b,
+ 0x0393, 0x0399, 0x03a4, 0x03c5, 0x0414, 0x0489,
+ 0x0529, 0x05b6, 0x05f6, 0x065f, 0x0727, 0x07c1,
+ 0x07d7, 0x0779, 0x06eb, 0x067f, 0x061a, 0x05a7,
+ 0x056e, 0x056a, 0x0529, 0x0482, 0x03b5, 0x0300,
+ 0x0240, 0x0178, 0x011c, 0x0126, 0x010f, 0x00fb,
+ 0x013e, 0x0183, 0x0190, 0x0192, 0x0161, 0x00e3,
+ 0x0056, 0xffd3, 0xff43, 0xfeb5, 0xfe35, 0xfdb9,
+ 0xfd1e, 0xfc48, 0xfb6e, 0xfac5, 0xfa36, 0xf9af,
+ 0xf93a, 0xf902, 0xf93c, 0xf99c, 0xf9c7, 0xf9d3,
+ 0xf98d, 0xf8a5, 0xf75c, 0xf5ed, 0xf46f, 0xf340,
+ 0xf2a2, 0xf28d, 0xf2cc, 0xf2ff, 0xf318, 0xf324,
+ 0xf308, 0xf32a, 0xf3e0, 0xf48f, 0xf4c4, 0xf4b6,
+ 0xf489, 0xf438, 0xf406, 0xf46d, 0xf58a, 0xf6ce,
+ 0xf7c9, 0xf869, 0xf85a, 0xf77f, 0xf67c, 0xf5cf,
+ 0xf570, 0xf54b, 0xf536, 0xf4e3, 0xf466, 0xf42d,
+ 0xf454, 0xf491, 0xf4c4, 0xf501, 0xf552, 0xf59b,
+ 0xf5ba, 0xf5ae, 0xf58f, 0xf58c, 0xf5fe, 0xf6fa,
+ 0xf817, 0xf90b, 0xf9d9, 0xfa68, 0xfa77, 0xf9ff,
+ 0xf972, 0xf96f, 0xfa07, 0xfacd, 0xfb73, 0xfbc9,
+ 0xfbb8, 0xfbab, 0xfc36, 0xfd30, 0xfe06, 0xfe9b,
+ 0xfeda, 0xfe65, 0xfd5a, 0xfc5a, 0xfbf6, 0xfc4b,
+ 0xfcb1, 0xfc9b, 0xfc57, 0xfbf1, 0xfb1e, 0xfa53,
+ 0xfa00, 0xf9fd, 0xfa12, 0xfa0c, 0xfa23, 0xfad1,
+ 0xfbd6, 0xfcc9, 0xfdc7, 0xfeb4, 0xff67, 0xfffa,
+ 0x0072, 0x010b, 0x020a, 0x0336, 0x045a, 0x0568,
+ 0x063c, 0x06d6, 0x071f, 0x06e4, 0x0650, 0x05a1,
+ 0x04f3, 0x0489, 0x047d, 0x0499, 0x04a5, 0x0433,
+ 0x02e1, 0x0129, 0xffcd, 0xfee7, 0xfe6e, 0xfe65,
+ 0xfe73, 0xfe56, 0xfe2c, 0xfde9, 0xfd68, 0xfcc7,
+ 0xfc44, 0xfbf1, 0xfba3, 0xfb49, 0xfb0a, 0xfaf5,
+ 0xfb35, 0xfbe9, 0xfc84, 0xfcad, 0xfcbe, 0xfcde,
+ 0xfd1d, 0xfd9c, 0xfe19, 0xfe99, 0xff4f, 0xffec,
+ 0x0072, 0x0111, 0x0167, 0x018a, 0x01de, 0x0217,
+ 0x021a, 0x0249, 0x0282, 0x027c, 0x0279, 0x0297,
+ 0x0277, 0x01f3, 0x014c, 0x00b1, 0x0036, 0xffd9,
+ 0xff66, 0xfedb, 0xfe67, 0xfdef, 0xfd56, 0xfcf0,
+ 0xfd0f, 0xfd86, 0xfe07, 0xfe86, 0xfeed, 0xfeee,
+ 0xfea8, 0xfe94, 0xfed8, 0xff5f, 0xfffe, 0x0078,
+ 0x00b6, 0x00a0, 0x0031, 0xffc1, 0xff7f, 0xff80,
+ 0xffe0, 0x003b, 0x0060, 0x00d5, 0x0186, 0x01d6,
+ 0x01ec, 0x0232, 0x027b, 0x0271, 0x0220, 0x01d6,
+ 0x018b, 0x00ec, 0x0047, 0x004a, 0x00f9, 0x01e1,
+ 0x02e5, 0x03e7, 0x0468, 0x0423, 0x0379, 0x02f4,
+ 0x02d3, 0x0317, 0x03a0, 0x0412, 0x03e6, 0x02f9,
+ 0x01dd, 0x0114, 0x008b, 0x0021, 0xfff9, 0x0003,
+ 0xffc1, 0xff04, 0xfe43, 0xfda5, 0xfcf7, 0xfc4e,
+ 0xfbab, 0xfb2d, 0xfb44, 0xfbc2, 0xfc3c, 0xfcdb,
+ 0xfd6f, 0xfd85, 0xfd2e, 0xfc91, 0xfbfe, 0xfbcb,
+ 0xfbbd, 0xfbca, 0xfc4d, 0xfd08, 0xfd85, 0xfda7,
+ 0xfd6c, 0xfce2, 0xfc20, 0xfb69, 0xfb50, 0xfbff,
+ 0xfd41, 0xff00, 0x00c1, 0x01d7, 0x025f, 0x02c6,
+ 0x031b, 0x035c, 0x038f, 0x039a, 0x035c, 0x02bd,
+ 0x01cb, 0x00d5, 0xfffd, 0xff0e, 0xfe06, 0xfd11,
+ 0xfc26, 0xfb4f, 0xfab2, 0xfa2f, 0xf989, 0xf8c6,
+ 0xf80d, 0xf756, 0xf67a, 0xf582, 0xf4bc, 0xf45e,
+ 0xf451, 0xf453, 0xf468, 0xf4e2, 0xf5ad, 0xf64c,
+ 0xf6a3, 0xf6bd, 0xf691, 0xf65c, 0xf657, 0xf67e,
+ 0xf6c2, 0xf6fb, 0xf720, 0xf754, 0xf797, 0xf815,
+ 0xf8e3, 0xf99d, 0xfa3f, 0xfb2a, 0xfc15, 0xfc75,
+ 0xfc38, 0xfb97, 0xfad2, 0xf9f7, 0xf90b, 0xf841,
+ 0xf7a8, 0xf717, 0xf66e, 0xf590, 0xf4aa, 0xf427,
+ 0xf42f, 0xf4ae, 0xf573, 0xf63c, 0xf6c8, 0xf6e4,
+ 0xf6d2, 0xf746, 0xf842, 0xf926, 0xf9c7, 0xfa34,
+ 0xfa62, 0xfa57, 0xfa27, 0xfa33, 0xfad5, 0xfbb1,
+ 0xfc61, 0xfcff, 0xfd7a, 0xfdc5, 0xfe39, 0xfef1,
+ 0xffb4, 0x0089, 0x0177, 0x0244, 0x02d8, 0x0334,
+ 0x0343, 0x0342, 0x03ae, 0x04bf, 0x0685, 0x08d7,
+ 0x0b06, 0x0c8b, 0x0d78, 0x0dde, 0x0dcc, 0x0de3,
+ 0x0eb7, 0x1006, 0x1124, 0x11d1, 0x1244, 0x12b5,
+ 0x132d, 0x139b, 0x141e, 0x14ff, 0x15f3, 0x1660,
+ 0x1660, 0x166e, 0x168e, 0x1693, 0x163c, 0x154a,
+ 0x13ee, 0x1273, 0x10da, 0x0f47, 0x0e08, 0x0d14,
+ 0x0c1d, 0x0b2d, 0x0a81, 0x09d7, 0x08dd, 0x07d3,
+ 0x06eb, 0x061c, 0x0583, 0x050d, 0x04a2, 0x046a,
+ 0x044b, 0x0423, 0x0435, 0x04b9, 0x05ab, 0x06de,
+ 0x07e6, 0x0880, 0x08c8, 0x08e8, 0x091a, 0x09a3,
+ 0x0aaa, 0x0c04, 0x0d1f, 0x0d95, 0x0da9, 0x0da0,
+ 0x0d6a, 0x0d3e, 0x0d89, 0x0e3e, 0x0ed3, 0x0ef4,
+ 0x0ed4, 0x0eb8, 0x0e85, 0x0e05, 0x0d6e, 0x0d09,
+ 0x0cbe, 0x0c58, 0x0bb5, 0x0ab9, 0x0991, 0x088f,
+ 0x07aa, 0x06c3, 0x0613, 0x05f8, 0x065e, 0x06bb,
+ 0x06dc, 0x0714, 0x076a, 0x077b, 0x0730, 0x06af,
+ 0x05e9, 0x04da, 0x03c4, 0x02ca, 0x01e7, 0x014b,
+ 0x0111, 0x0110, 0x012e, 0x013f, 0x00f8, 0x0048,
+ 0xff40, 0xfdfe, 0xfcd2, 0xfbdc, 0xfb1b, 0xfa83,
+ 0xf9d7, 0xf8f4, 0xf800, 0xf743, 0xf71f, 0xf790,
+ 0xf84c, 0xf955, 0xfa6a, 0xfb11, 0xfb72, 0xfbf2,
+ 0xfcd9, 0xfe2e, 0xff7e, 0x00a1, 0x01c0, 0x0271,
+ 0x02a1, 0x02e5, 0x0328, 0x0310, 0x02d9, 0x027e,
+ 0x019f, 0x005f, 0xff14, 0xfda2, 0xfbe8, 0xfa3d,
+ 0xf905, 0xf83c, 0xf786, 0xf691, 0xf554, 0xf3c6,
+ 0xf1d8, 0xeffc, 0xeedf, 0xee8d, 0xee9c, 0xeec8,
+ 0xeef3, 0xeeec, 0xee77, 0xedcc, 0xed7a, 0xedc1,
+ 0xee64, 0xeec6, 0xee89, 0xee3e, 0xee53, 0xee78,
+ 0xee9a, 0xeef1, 0xef87, 0xf060, 0xf14f, 0xf246,
+ 0xf39b, 0xf544, 0xf6de, 0xf84d, 0xf99a, 0xface,
+ 0xfbd8, 0xfcbb, 0xfda8, 0xfe84, 0xff13, 0xff8a,
+ 0x001a, 0x00c7, 0x0181, 0x0201, 0x021e, 0x0208,
+ 0x01fb, 0x01fc, 0x01c3, 0x012c, 0x006d, 0xff79,
+ 0xfe55, 0xfd87, 0xfd7b, 0xfe6d, 0x0033, 0x020b,
+ 0x0374, 0x045d, 0x04ba, 0x04be, 0x04dd, 0x0558,
+ 0x0620, 0x06c0, 0x0703, 0x072c, 0x0741, 0x073e,
+ 0x0758, 0x0774, 0x0759, 0x071e, 0x06c4, 0x0644,
+ 0x05e1, 0x05b5, 0x057b, 0x0531, 0x0519, 0x0504,
+ 0x04a2, 0x03fc, 0x0326, 0x023f, 0x016b, 0x0090,
+ 0xffbe, 0xff42, 0xff16, 0xff0d, 0xff17, 0xff0f,
+ 0xfef9, 0xff0b, 0xff76, 0x0028, 0x00ce, 0x012e,
+ 0x0141, 0x010a, 0x00a8, 0x001b, 0xff89, 0xff6a,
+ 0xffe0, 0x00aa, 0x0180, 0x01db, 0x01a4, 0x0149,
+ 0x00a0, 0xff76, 0xfe52, 0xfd97, 0xfd0c, 0xfc59,
+ 0xfb74, 0xfa99, 0xf9dd, 0xf93a, 0xf8c1, 0xf861,
+ 0xf7e7, 0xf71c, 0xf60f, 0xf543, 0xf4e8, 0xf4e3,
+ 0xf567, 0xf62d, 0xf6b4, 0xf723, 0xf770, 0xf75d,
+ 0xf754, 0xf7a1, 0xf834, 0xf918, 0xfa1b, 0xfaf4,
+ 0xfba6, 0xfc32, 0xfc86, 0xfcb1, 0xfcf5, 0xfd83,
+ 0xfe11, 0xfe61, 0xfe78, 0xfe01, 0xfcba, 0xfb1f,
+ 0xf9cb, 0xf90e, 0xf8e4, 0xf8e2, 0xf8bc, 0xf88e,
+ 0xf82e, 0xf766, 0xf6c6, 0xf6eb, 0xf79d, 0xf86f,
+ 0xf934, 0xf9ba, 0xfa06, 0xfa47, 0xfa8b, 0xfad2,
+ 0xfb14, 0xfb5f, 0xfbdd, 0xfc67, 0xfccf, 0xfd28,
+ 0xfd56, 0xfd33, 0xfcc4, 0xfbfa, 0xfae5, 0xf9cf,
+ 0xf8db, 0xf807, 0xf747, 0xf6b4, 0xf671, 0xf652,
+ 0xf639, 0xf621, 0xf5c2, 0xf52e, 0xf4d8, 0xf4c8,
+ 0xf4e2, 0xf543, 0xf5c6, 0xf5db, 0xf528, 0xf41d,
+ 0xf359, 0xf2f6, 0xf325, 0xf427, 0xf586, 0xf6b6,
+ 0xf7af, 0xf890, 0xf974, 0xfa70, 0xfb94, 0xfcc9,
+ 0xfdd4, 0xfebc, 0xffa3, 0x006e, 0x012d, 0x01ea,
+ 0x0280, 0x0306, 0x0362, 0x035e, 0x034a, 0x0372,
+ 0x03b3, 0x03e3, 0x03f6, 0x0409, 0x0414, 0x03cd,
+ 0x0344, 0x02c5, 0x0253, 0x01d7, 0x013b, 0x009d,
+ 0x0012, 0xff67, 0xfea3, 0xfddc, 0xfcf8, 0xfc55,
+ 0xfc39, 0xfc5b, 0xfcb2, 0xfd3d, 0xfda5, 0xfdd6,
+ 0xfdd2, 0xfda8, 0xfd80, 0xfd63, 0xfda9, 0xfea1,
+ 0xffdc, 0x0102, 0x020c, 0x02c8, 0x0337, 0x0367,
+ 0x034f, 0x0343, 0x0373, 0x037e, 0x0312, 0x023d,
+ 0x0142, 0x003a, 0xff21, 0xfe2f, 0xfd72, 0xfcbe,
+ 0xfc23, 0xfbba, 0xfb96, 0xfbcd, 0xfc4b, 0xfcfe,
+ 0xfdd7, 0xfeb4, 0xff84, 0x000f, 0x0050, 0x00c9,
+ 0x0187, 0x0234, 0x02c6, 0x0310, 0x030a, 0x02e0,
+ 0x0249, 0x014e, 0x008f, 0x0031, 0x0004, 0xffe9,
+ 0xff9f, 0xfee7, 0xfd8f, 0xfbbd, 0xfa25, 0xf957,
+ 0xf96b, 0xf9ff, 0xfa6b, 0xfab8, 0xfafb, 0xfa7a,
+ 0xf959, 0xf8a4, 0xf862, 0xf83b, 0xf85c, 0xf8c5,
+ 0xf959, 0xf9f2, 0xfa63, 0xfaf2, 0xfbbe, 0xfc7a,
+ 0xfd4f, 0xfe8b, 0x0014, 0x01f0, 0x03fd, 0x05ca,
+ 0x0749, 0x08a4, 0x09bd, 0x0a79, 0x0aec, 0x0b34,
+ 0x0b5e, 0x0b65, 0x0b61, 0x0b75, 0x0ba4, 0x0bc7,
+ 0x0b73, 0x0a79, 0x094f, 0x083e, 0x073d, 0x0687,
+ 0x0629, 0x05d8, 0x055d, 0x049d, 0x03c5, 0x0316,
+ 0x0294, 0x027b, 0x02eb, 0x0362, 0x03ac, 0x0416,
+ 0x0493, 0x0509, 0x0596, 0x062e, 0x069b, 0x06ba,
+ 0x06c1, 0x06f9, 0x0749, 0x079a, 0x07f8, 0x0824,
+ 0x07f8, 0x078a, 0x06e4, 0x0614, 0x0520, 0x0426,
+ 0x036b, 0x02c4, 0x01e6, 0x00de, 0xffb0, 0xfe7c,
+ 0xfd76, 0xfc63, 0xfb1b, 0xf9d3, 0xf8aa, 0xf7cd,
+ 0xf74c, 0xf6f1, 0xf6d8, 0xf733, 0xf7d2, 0xf89e,
+ 0xf996, 0xfa75, 0xfafd, 0xfb3c, 0xfb63, 0xfb76,
+ 0xfb3c, 0xfab7, 0xfa4b, 0xfa3e, 0xfa8f, 0xfb0f,
+ 0xfb69, 0xfb5d, 0xfb00, 0xfa8b, 0xf9f7, 0xf92d,
+ 0xf849, 0xf774, 0xf6ba, 0xf608, 0xf53e, 0xf47d,
+ 0xf3e3, 0xf346, 0xf2af, 0xf23e, 0xf1b3, 0xf0ed,
+ 0xf018, 0xef5f, 0xeeec, 0xeec2, 0xeea4, 0xee72,
+ 0xee41, 0xee21, 0xedf0, 0xed9c, 0xed81, 0xedfb,
+ 0xeef7, 0xf048, 0xf1d0, 0xf374, 0xf501, 0xf61a,
+ 0xf6d5, 0xf7ca, 0xf929, 0xfac8, 0xfc90, 0xfe4f,
+ 0xffd3, 0x00ee, 0x0197, 0x0246, 0x0343, 0x043e,
+ 0x0504, 0x0588, 0x05d2, 0x0613, 0x0649, 0x06a4,
+ 0x077e, 0x088e, 0x09a6, 0x0ad9, 0x0b99, 0x0bc4,
+ 0x0bf8, 0x0c42, 0x0c89, 0x0ceb, 0x0d3e, 0x0d7f,
+ 0x0dbc, 0x0deb, 0x0e2f, 0x0e4b, 0x0e00, 0x0dbb,
+ 0x0d92, 0x0d5e, 0x0d45, 0x0d0b, 0x0c8f, 0x0c02,
+ 0x0b40, 0x0a75, 0x09d1, 0x08e2, 0x07ad, 0x0675,
+ 0x0501, 0x0379, 0x0223, 0x00ff, 0x0056, 0x0027,
+ 0x0009, 0xffda, 0xff87, 0xff1b, 0xfee1, 0xfefd,
+ 0xff83, 0x0069, 0x0179, 0x02a6, 0x03e7, 0x0523,
+ 0x067b, 0x07ec, 0x0941, 0x0a5f, 0x0b4f, 0x0c3e,
+ 0x0d27, 0x0df2, 0x0ee6, 0x1001, 0x10e4, 0x119a,
+ 0x121f, 0x1236, 0x11ef, 0x1167, 0x10c5, 0x103c,
+ 0x0faa, 0x0f15, 0x0ea1, 0x0e28, 0x0dc7, 0x0d81,
+ 0x0cdc, 0x0bd2, 0x0abf, 0x099b, 0x0855, 0x06fd,
+ 0x05b7, 0x04ab, 0x03cc, 0x030b, 0x0282, 0x024b,
+ 0x0268, 0x02ae, 0x02ea, 0x032b, 0x0352, 0x030d,
+ 0x0280, 0x023a, 0x029d, 0x0371, 0x0459, 0x0556,
+ 0x0650, 0x0701, 0x0783, 0x07df, 0x07f6, 0x07fd,
+ 0x0809, 0x07e2, 0x077c, 0x06da, 0x0622, 0x0598,
+ 0x0546, 0x051b, 0x04eb, 0x0465, 0x0395, 0x02b1,
+ 0x01c2, 0x0101, 0x0099, 0x0067, 0x006d, 0x00b8,
+ 0x011c, 0x016d, 0x016f, 0x0123, 0x00ea, 0x00e2,
+ 0x00fb, 0x0127, 0x0111, 0x0099, 0x0010, 0xff95,
+ 0xff35, 0xff36, 0xffb3, 0x0085, 0x0143, 0x015b,
+ 0x00a8, 0xff78, 0xfe11, 0xfcb6, 0xfba0, 0xfaec,
+ 0xfa87, 0xfa11, 0xf948, 0xf852, 0xf770, 0xf6c6,
+ 0xf641, 0xf5c5, 0xf55f, 0xf50a, 0xf4d9, 0xf512,
+ 0xf57b, 0xf5ba, 0xf607, 0xf67b, 0xf6f2, 0xf798,
+ 0xf890, 0xf9d7, 0xfb58, 0xfce9, 0xfe93, 0x0037,
+ 0x0175, 0x0240, 0x02bc, 0x0300, 0x0350, 0x03ab,
+ 0x03f3, 0x0447, 0x04a6, 0x04fd, 0x0511, 0x0457,
+ 0x02ed, 0x018f, 0x008a, 0x0001, 0x000d, 0x0074,
+ 0x00fd, 0x014e, 0x0125, 0x00b9, 0x000b, 0xff08,
+ 0xfe11, 0xfd6f, 0xfd27, 0xfd35, 0xfd6d, 0xfdcd,
+ 0xfe65, 0xff0b, 0xffb9, 0x006a, 0x0113, 0x01e2,
+ 0x02c5, 0x03a6, 0x04bf, 0x05d8, 0x068b, 0x06f2,
+ 0x072a, 0x0738, 0x071b, 0x06b5, 0x0634, 0x05ce,
+ 0x0543, 0x048a, 0x03e5, 0x0353, 0x02ba, 0x021f,
+ 0x0187, 0x00fe, 0x0085, 0xffe8, 0xff05, 0xfe17,
+ 0xfd41, 0xfc42, 0xfb14, 0xfa15, 0xf969, 0xf918,
+ 0xf92a, 0xf969, 0xf9ab, 0xf9be, 0xf967, 0xf8da,
+ 0xf85a, 0xf80a, 0xf834, 0xf8ce, 0xf974, 0xfa0f,
+ 0xfaaf, 0xfb70, 0xfc5d, 0xfd34, 0xfdf2, 0xfeb7,
+ 0xff14, 0xfec3, 0xfe19, 0xfd56, 0xfc74, 0xfb75,
+ 0xfa83, 0xf9b3, 0xf8a6, 0xf72f, 0xf5cb, 0xf4c7,
+ 0xf3ff, 0xf36a, 0xf319, 0xf302, 0xf31b, 0xf368,
+ 0xf3d6, 0xf422, 0xf439, 0xf46c, 0xf4f7, 0xf5e7,
+ 0xf71e, 0xf841, 0xf923, 0xf9cb, 0xfa39, 0xfa84,
+ 0xfac5, 0xfb15, 0xfba0, 0xfc3d, 0xfc6e, 0xfc04,
+ 0xfb32, 0xfa3e, 0xf945, 0xf856, 0xf783, 0xf6a4,
+ 0xf595, 0xf471, 0xf35f, 0xf2a7, 0xf270, 0xf25d,
+ 0xf246, 0xf248, 0xf237, 0xf223, 0xf22f, 0xf225,
+ 0xf211, 0xf1f9, 0xf192, 0xf0f6, 0xf044, 0xef6a,
+ 0xeec2, 0xee8a, 0xeead, 0xef6c, 0xf0d9, 0xf28d,
+ 0xf436, 0xf59e, 0xf6ae, 0xf783, 0xf832, 0xf8c8,
+ 0xf966, 0xfa38, 0xfb56, 0xfc65, 0xfceb, 0xfcf3,
+ 0xfcc4, 0xfc76, 0xfc26, 0xfc09, 0xfc32, 0xfc73,
+ 0xfcbd, 0xfd40, 0xfddd, 0xfe25, 0xfdfc, 0xfd88,
+ 0xfceb, 0xfc38, 0xfb87, 0xfb0e, 0xfae5, 0xfaf8,
+ 0xfb7d, 0xfc8d, 0xfdd8, 0xff21, 0x0048, 0x0141,
+ 0x0249, 0x037a, 0x049a, 0x058c, 0x0649, 0x06e5,
+ 0x077e, 0x07de, 0x07eb, 0x0817, 0x08aa, 0x095b,
+ 0x09f0, 0x0a74, 0x0ac8, 0x0aaf, 0x0a4d, 0x09f1,
+ 0x09a0, 0x0950, 0x08fa, 0x0882, 0x07f3, 0x0757,
+ 0x0676, 0x0548, 0x0419, 0x0348, 0x030f, 0x034b,
+ 0x03c1, 0x0465, 0x04fb, 0x0539, 0x0534, 0x0525,
+ 0x0544, 0x05ca, 0x0684, 0x070e, 0x075a, 0x077a,
+ 0x076d, 0x074a, 0x073c, 0x075e, 0x077b, 0x0750,
+ 0x0700, 0x068b, 0x05a3, 0x047b, 0x0364, 0x0234,
+ 0x00de, 0xff71, 0xfdde, 0xfc6e, 0xfb4f, 0xfa72,
+ 0xfa1b, 0xfa33, 0xfa42, 0xfa72, 0xfabf, 0xfaa5,
+ 0xfa33, 0xf9a5, 0xf930, 0xf95f, 0xfa2d, 0xfb14,
+ 0xfbf2, 0xfca1, 0xfce6, 0xfcf2, 0xfcf9, 0xfd27,
+ 0xfdc6, 0xfec3, 0xffce, 0x00a3, 0x00fd, 0x00da,
+ 0x00ab, 0x00aa, 0x00a0, 0x0084, 0x0071, 0x0030,
+ 0xff9d, 0xfece, 0xfdcb, 0xfcc8, 0xfc0f, 0xfba0,
+ 0xfb98, 0xfbf0, 0xfc4f, 0xfca2, 0xfcc7, 0xfc79,
+ 0xfc0e, 0xfbb5, 0xfb2c, 0xfaa4, 0xfa4c, 0xfa15,
+ 0xfa13, 0xfa2c, 0xfa7a, 0xfb5b, 0xfc70, 0xfd3b,
+ 0xfdea, 0xfe84, 0xfeee, 0xff69, 0x0028, 0x011b,
+ 0x0226, 0x032a, 0x03f2, 0x0443, 0x043e, 0x0423,
+ 0x0406, 0x03f4, 0x03d8, 0x039e, 0x0382, 0x0378,
+ 0x0333, 0x02b7, 0x020f, 0x0147, 0x00ab, 0x003d,
+ 0xffce, 0xff76, 0xff44, 0xff02, 0xfe99, 0xfe2f,
+ 0xfdf2, 0xfde7, 0xfded, 0xfdee, 0xfe00, 0xfe34,
+ 0xfe48, 0xfe14, 0xfde1, 0xfdc9, 0xfda9, 0xfd4d,
+ 0xfc77, 0xfb74, 0xfab3, 0xfa00, 0xf943, 0xf8be,
+ 0xf85c, 0xf808, 0xf7b7, 0xf753, 0xf709, 0xf6db,
+ 0xf69f, 0xf681, 0xf68f, 0xf69f, 0xf69c, 0xf663,
+ 0xf60c, 0xf5cf, 0xf59f, 0xf5a5, 0xf60b, 0xf68e,
+ 0xf710, 0xf791, 0xf7e1, 0xf803, 0xf81d, 0xf83f,
+ 0xf87f, 0xf8de, 0xf953, 0xf9e0, 0xfa83, 0xfb47,
+ 0xfc43, 0xfd79, 0xfebf, 0xffe9, 0x0105, 0x0205,
+ 0x0299, 0x02c1, 0x02a8, 0x0254, 0x01d9, 0x012a,
+ 0x0020, 0xfed1, 0xfd3c, 0xfb5e, 0xf982, 0xf7e3,
+ 0xf695, 0xf5b7, 0xf54d, 0xf51b, 0xf49f, 0xf3a7,
+ 0xf2ac, 0xf205, 0xf1c5, 0xf223, 0xf30a, 0xf413,
+ 0xf50c, 0xf5eb, 0xf6d7, 0xf801, 0xf944, 0xfaa2,
+ 0xfc59, 0xfe3c, 0xfff4, 0x0167, 0x029a, 0x039b,
+ 0x047d, 0x054a, 0x0608, 0x06b2, 0x0760, 0x083d,
+ 0x093d, 0x0a2d, 0x0ae8, 0x0b6c, 0x0bef, 0x0c9f,
+ 0x0d6a, 0x0e38, 0x0f01, 0x0faf, 0x1041, 0x10c7,
+ 0x1138, 0x117b, 0x116d, 0x1107, 0x1068, 0x0f9c,
+ 0x0eca, 0x0e6c, 0x0e99, 0x0ee4, 0x0f1f, 0x0f37,
+ 0x0eee, 0x0e56, 0x0dad, 0x0d00, 0x0c6d, 0x0c03,
+ 0x0b93, 0x0afb, 0x0a51, 0x09c5, 0x096b, 0x0927,
+ 0x08ef, 0x08c6, 0x088b, 0x0827, 0x07a4, 0x0720,
+ 0x069f, 0x0605, 0x0569, 0x04f8, 0x04a8, 0x0472,
+ 0x0450, 0x043e, 0x0450, 0x046e, 0x047b, 0x04be,
+ 0x054c, 0x05f8, 0x06c5, 0x07ba, 0x08d0, 0x09f3,
+ 0x0b07, 0x0c2b, 0x0d6d, 0x0e90, 0x0f8f, 0x1071,
+ 0x111c, 0x11b8, 0x1251, 0x12c8, 0x133e, 0x13b8,
+ 0x13f9, 0x13df, 0x1365, 0x1290, 0x1184, 0x1060,
+ 0x0f13, 0x0d77, 0x0bb5, 0x0a08, 0x0823, 0x05e9,
+ 0x0409, 0x02e1, 0x0229, 0x01aa, 0x0130, 0x0093,
+ 0xffe5, 0xff15, 0xfe09, 0xfd00, 0xfc31, 0xfb99,
+ 0xfb38, 0xfb00, 0xfadb, 0xfade, 0xfb0f, 0xfb6f,
+ 0xfc00, 0xfc99, 0xfd33, 0xfdfb, 0xfec3, 0xff59,
+ 0xffe2, 0x0049, 0x0089, 0x0104, 0x01ca, 0x0292,
+ 0x0334, 0x036f, 0x030b, 0x023f, 0x016f, 0x00d4,
+ 0x0092, 0x00b4, 0x0110, 0x0148, 0x0136, 0x0106,
+ 0x00e1, 0x00fc, 0x0179, 0x021a, 0x028a, 0x029d,
+ 0x0272, 0x0254, 0x0253, 0x0261, 0x02b2, 0x0345,
+ 0x03a4, 0x038e, 0x032b, 0x027c, 0x0154, 0xffcc,
+ 0xfe2b, 0xfc95, 0xfb1c, 0xf9ca, 0xf89d, 0xf799,
+ 0xf68f, 0xf55b, 0xf423, 0xf2ed, 0xf1d7, 0xf130,
+ 0xf0bc, 0xf030, 0xefda, 0xefc0, 0xefac, 0xefbe,
+ 0xefef, 0xf014, 0xf02b, 0xf009, 0xefbe, 0xefb5,
+ 0xf01e, 0xf0ed, 0xf207, 0xf317, 0xf3f6, 0xf4bc,
+ 0xf56a, 0xf60d, 0xf6cc, 0xf7af, 0xf8c0, 0xf9fb,
+ 0xfb0e, 0xfbc1, 0xfc46, 0xfcc5, 0xfd51, 0xfe04,
+ 0xfebf, 0xff61, 0x0001, 0x0078, 0x0098, 0x0081,
+ 0x002a, 0xff92, 0xfef9, 0xfe75, 0xfe13, 0xfdff,
+ 0xfe1d, 0xfe41, 0xfe6a, 0xfe9c, 0xfed4, 0xfef0,
+ 0xfedf, 0xfee5, 0xff29, 0xff91, 0x0018, 0x00b5,
+ 0x0142, 0x01c6, 0x0252, 0x02d9, 0x0357, 0x03d1,
+ 0x0449, 0x04dc, 0x05a3, 0x069a, 0x07cf, 0x091b,
+ 0x0a0f, 0x0a94, 0x0ae0, 0x0afd, 0x0af2, 0x0acd,
+ 0x0a9e, 0x0a7c, 0x0a10, 0x0912, 0x07e0, 0x06b5,
+ 0x05a8, 0x050b, 0x04c3, 0x0498, 0x0492, 0x045e,
+ 0x03df, 0x0359, 0x02b0, 0x01ef, 0x014e, 0x00bf,
+ 0x007d, 0x009b, 0x00c8, 0x012f, 0x01da, 0x026b,
+ 0x02fd, 0x0397, 0x0409, 0x0477, 0x04c8, 0x04bc,
+ 0x046e, 0x03e8, 0x0357, 0x0318, 0x0305, 0x029a,
+ 0x019d, 0x0031, 0xfeab, 0xfd29, 0xfbbc, 0xfaa5,
+ 0xf9ef, 0xf95d, 0xf8bc, 0xf7e1, 0xf6cf, 0xf5dc,
+ 0xf577, 0xf5b3, 0xf624, 0xf688, 0xf6e7, 0xf704,
+ 0xf6cf, 0xf687, 0xf630, 0xf5f6, 0xf61e, 0xf668,
+ 0xf6a8, 0xf71b, 0xf7b5, 0xf831, 0xf86b, 0xf867,
+ 0xf865, 0xf875, 0xf854, 0xf7fd, 0xf796, 0xf72f,
+ 0xf6d0, 0xf679, 0xf639, 0xf61e, 0xf605, 0xf5d8,
+ 0xf5ad, 0xf56e, 0xf507, 0xf4ad, 0xf478, 0xf42e,
+ 0xf3b7, 0xf32f, 0xf288, 0xf1cc, 0xf14a, 0xf125,
+ 0xf13b, 0xf178, 0xf1d6, 0xf23a, 0xf27d, 0xf296,
+ 0xf2a9, 0xf2cb, 0xf302, 0xf36b, 0xf3eb, 0xf443,
+ 0xf492, 0xf4e9, 0xf51d, 0xf537, 0xf550, 0xf571,
+ 0xf5ae, 0xf5f3, 0xf64b, 0xf6d6, 0xf751, 0xf7bd,
+ 0xf85f, 0xf8ec, 0xf92d, 0xf94d, 0xf931, 0xf8f8,
+ 0xf913, 0xf966, 0xf9ba, 0xfa36, 0xfae1, 0xfb8f,
+ 0xfc31, 0xfcce, 0xfd6c, 0xfe01, 0xfea7, 0xff77,
+ 0x0052, 0x012e, 0x020b, 0x02ca, 0x0366, 0x03c5,
+ 0x03c8, 0x03a9, 0x03a1, 0x03a3, 0x039f, 0x0377,
+ 0x031c, 0x029c, 0x01f9, 0x0171, 0x0141, 0x0149,
+ 0x0175, 0x01aa, 0x0173, 0x00c1, 0xffdf, 0xfed1,
+ 0xfdcb, 0xfd2d, 0xfcd8, 0xfca1, 0xfca7, 0xfccb,
+ 0xfce4, 0xfd0b, 0xfd29, 0xfd1a, 0xfce6, 0xfc75,
+ 0xfbd1, 0xfb36, 0xfa8b, 0xf9c3, 0xf943, 0xf947,
+ 0xf9b7, 0xfa51, 0xfae0, 0xfb88, 0xfc4c, 0xfcfd,
+ 0xfdd4, 0xff06, 0x0072, 0x0203, 0x036d, 0x0455,
+ 0x04b5, 0x0485, 0x03ed, 0x0364, 0x0312, 0x02f0,
+ 0x02cc, 0x0241, 0x0171, 0x00c6, 0x0040, 0xfff1,
+ 0xfff6, 0x0038, 0x0096, 0x00ca, 0x009a, 0x003e,
+ 0xffd9, 0xff7c, 0xff77, 0xffd0, 0x0047, 0x00de,
+ 0x0189, 0x01f8, 0x022c, 0x0267, 0x02a4, 0x02bb,
+ 0x02c6, 0x02ea, 0x033d, 0x03b4, 0x040d, 0x0439,
+ 0x0469, 0x0495, 0x049f, 0x0476, 0x0405, 0x0384,
+ 0x0337, 0x030c, 0x02e7, 0x02c6, 0x029b, 0x024f,
+ 0x01c3, 0x00fb, 0x0013, 0xff2a, 0xfe84, 0xfe24,
+ 0xfdca, 0xfd8f, 0xfd8c, 0xfd85, 0xfd7c, 0xfd92,
+ 0xfdc4, 0xfe11, 0xfe6e, 0xfed7, 0xff39, 0xff69,
+ 0xff88, 0xffa3, 0xff9d, 0xff9c, 0xffb5, 0xffce,
+ 0x0004, 0x0047, 0x005e, 0x0071, 0x009d, 0x00e0,
+ 0x013c, 0x0187, 0x01be, 0x01fe, 0x0218, 0x01f6,
+ 0x01d2, 0x01b4, 0x017d, 0x0124, 0x00b9, 0x005c,
+ 0x001b, 0xffd7, 0xff8a, 0xff66, 0xff6c, 0xff65,
+ 0xff54, 0xff41, 0xff1b, 0xfef9, 0xfec0, 0xfe52,
+ 0xfe04, 0xfdf6, 0xfdfc, 0xfe1d, 0xfe4f, 0xfe79,
+ 0xfea3, 0xfe9c, 0xfe6e, 0xfe84, 0xfeec, 0xff4b,
+ 0xff5a, 0xff0c, 0xfe7c, 0xfdb3, 0xfcc2, 0xfbdc,
+ 0xfb10, 0xfa75, 0xfa26, 0xf9fc, 0xf9d9, 0xf9bf,
+ 0xf9cb, 0xfa14, 0xfa50, 0xfa5b, 0xfa79, 0xfa8e,
+ 0xfa63, 0xfa20, 0xf9d3, 0xf99b, 0xf99a, 0xf9b5,
+ 0xf9fc, 0xfa6e, 0xfacb, 0xfb01, 0xfb12, 0xfb0c,
+ 0xfb38, 0xfbaa, 0xfc37, 0xfca3, 0xfca6, 0xfc1f,
+ 0xfb03, 0xf96d, 0xf7e5, 0xf6a2, 0xf56f, 0xf43b,
+ 0xf2dc, 0xf138, 0xef83, 0xede2, 0xec8d, 0xebcc,
+ 0xebaa, 0xec21, 0xeccf, 0xed5e, 0xee03, 0xeeb2,
+ 0xef2f, 0xefb3, 0xf048, 0xf0eb, 0xf1cf, 0xf2cf,
+ 0xf3d2, 0xf4f0, 0xf619, 0xf774, 0xf903, 0xfa7e,
+ 0xfc03, 0xfdaa, 0xff49, 0x00ef, 0x0290, 0x0424,
+ 0x05de, 0x0789, 0x08e9, 0x0a1c, 0x0b17, 0x0be4,
+ 0x0ccd, 0x0de6, 0x0f14, 0x102e, 0x10fe, 0x1165,
+ 0x114f, 0x10de, 0x104a, 0x0fbb, 0x0f49, 0x0ecc,
+ 0x0e13, 0x0d5e, 0x0cbb, 0x0be7, 0x0b08, 0x0a60,
+ 0x09f9, 0x09cb, 0x09bc, 0x09b4, 0x09a7, 0x0971,
+ 0x091c, 0x08c9, 0x087a, 0x084c, 0x0843, 0x0844,
+ 0x085e, 0x0897, 0x08ca, 0x08eb, 0x08f9, 0x0913,
+ 0x0960, 0x09bc, 0x09e9, 0x09e5, 0x09c7, 0x09a7,
+ 0x098a, 0x0950, 0x0906, 0x08d5, 0x08c2, 0x08e2,
+ 0x0949, 0x09b6, 0x0a19, 0x0abb, 0x0b8b, 0x0c53,
+ 0x0d20, 0x0dc8, 0x0e14, 0x0e31, 0x0e30, 0x0e16,
+ 0x0e2d, 0x0e6f, 0x0eac, 0x0eea, 0x0efd, 0x0ec1,
+ 0x0e60, 0x0e03, 0x0dea, 0x0e3b, 0x0e97, 0x0eb9,
+ 0x0e8c, 0x0de5, 0x0cfc, 0x0c20, 0x0b15, 0x09d2,
+ 0x08b5, 0x07d4, 0x0706, 0x0633, 0x0582, 0x054a,
+ 0x0572, 0x058d, 0x05af, 0x05f0, 0x05e4, 0x0584,
+ 0x051b, 0x048d, 0x03ee, 0x0390, 0x034f, 0x0320,
+ 0x033f, 0x0356, 0x0319, 0x02d7, 0x02ca, 0x0313,
+ 0x03c3, 0x0493, 0x0551, 0x05e2, 0x05fa, 0x05c1,
+ 0x0596, 0x0573, 0x0559, 0x0545, 0x0513, 0x04d8,
+ 0x048e, 0x040d, 0x039a, 0x036f, 0x0365, 0x0364,
+ 0x036c, 0x0375, 0x0376, 0x0370, 0x037e, 0x0393,
+ 0x0374, 0x032a, 0x02db, 0x029a, 0x0280, 0x0254,
+ 0x01db, 0x0150, 0x00cc, 0x0038, 0xffb7, 0xff4c,
+ 0xfeef, 0xfec6, 0xfeb6, 0xfe90, 0xfe5a, 0xfdff,
+ 0xfd65, 0xfc98, 0xfb7c, 0xfa18, 0xf8cc, 0xf7d4,
+ 0xf744, 0xf710, 0xf6e6, 0xf697, 0xf62e, 0xf574,
+ 0xf458, 0xf358, 0xf2ba, 0xf268, 0xf270, 0xf2d2,
+ 0xf34b, 0xf3b9, 0xf411, 0xf440, 0xf45d, 0xf491,
+ 0xf4eb, 0xf562, 0xf5d8, 0xf640, 0xf6a0, 0xf6e6,
+ 0xf707, 0xf730, 0xf77b, 0xf7c5, 0xf817, 0xf890,
+ 0xf908, 0xf983, 0xfa4e, 0xfb44, 0xfc46, 0xfd8d,
+ 0xfef2, 0x001e, 0x012d, 0x0214, 0x02bb, 0x0351,
+ 0x03bf, 0x03d2, 0x03c6, 0x03cd, 0x03cf, 0x03b8,
+ 0x0390, 0x036a, 0x035e, 0x0389, 0x03e1, 0x0430,
+ 0x046a, 0x0488, 0x046e, 0x0457, 0x047c, 0x04c1,
+ 0x053c, 0x0602, 0x06cb, 0x076c, 0x07de, 0x082a,
+ 0x086e, 0x08aa, 0x08ee, 0x0957, 0x09b0, 0x09cf,
+ 0x09d9, 0x09b8, 0x094b, 0x08ad, 0x07e2, 0x06eb,
+ 0x05ef, 0x0521, 0x0487, 0x03fc, 0x0374, 0x0302,
+ 0x028f, 0x0207, 0x0182, 0x00fe, 0x0045, 0xff52,
+ 0xfe62, 0xfd79, 0xfc94, 0xfc10, 0xfbf5, 0xfbb4,
+ 0xfb3e, 0xfade, 0xfa95, 0xfa87, 0xfad6, 0xfb60,
+ 0xfc1a, 0xfcb7, 0xfcda, 0xfcac, 0xfc51, 0xfbc4,
+ 0xfb59, 0xfb30, 0xfafa, 0xfa8c, 0xf9ee, 0xf932,
+ 0xf868, 0xf7a5, 0xf72b, 0xf700, 0xf6df, 0xf6c2,
+ 0xf6c6, 0xf6eb, 0xf738, 0xf79e, 0xf7fd, 0xf86d,
+ 0xf8f0, 0xf969, 0xf9d3, 0xfa18, 0xfa31, 0xfa60,
+ 0xfab3, 0xfaf3, 0xfb11, 0xfb07, 0xfabc, 0xfa49,
+ 0xf9d5, 0xf973, 0xf93d, 0xf932, 0xf932, 0xf92a,
+ 0xf8e5, 0xf845, 0xf792, 0xf70a, 0xf6bd, 0xf6ce,
+ 0xf72f, 0xf7a2, 0xf81e, 0xf8a9, 0xf93a, 0xf9cf,
+ 0xfa4e, 0xfa9a, 0xfab8, 0xfaab, 0xfa72, 0xfa10,
+ 0xf9a6, 0xf97b, 0xf99a, 0xf9d8, 0xfa1e, 0xfa4b,
+ 0xfa40, 0xfa07, 0xf99b, 0xf912, 0xf8a3, 0xf83d,
+ 0xf7dd, 0xf7e1, 0xf835, 0xf84f, 0xf82d, 0xf81b,
+ 0xf7fc, 0xf7a9, 0xf74b, 0xf70d, 0xf70b, 0xf75c,
+ 0xf805, 0xf8d1, 0xf965, 0xf9ac, 0xf9c0, 0xf98a,
+ 0xf928, 0xf901, 0xf908, 0xf909, 0xf912, 0xf902,
+ 0xf8a7, 0xf835, 0xf7f9, 0xf80f, 0xf864, 0xf8ed,
+ 0xf9ad, 0xfa4b, 0xfa6f, 0xfa65, 0xfa76, 0xfa87,
+ 0xfaa2, 0xfadc, 0xfb32, 0xfbba, 0xfc66, 0xfd19,
+ 0xfdcc, 0xfe6f, 0xff00, 0xff8b, 0x001d, 0x00d4,
+ 0x0191, 0x022f, 0x02ce, 0x0362, 0x03bc, 0x03dc,
+ 0x03b3, 0x0358, 0x0326, 0x0337, 0x0371, 0x03d9,
+ 0x045c, 0x04c0, 0x04d1, 0x0474, 0x0388, 0x0220,
+ 0x00ce, 0xfffd, 0xff93, 0xff8c, 0xffbb, 0xffb8,
+ 0xff96, 0xff82, 0xff65, 0xff79, 0xfff3, 0x009c,
+ 0x0154, 0x0218, 0x02da, 0x0390, 0x041b, 0x047c,
+ 0x04b0, 0x04a4, 0x0476, 0x0412, 0x0336, 0x022e,
+ 0x0153, 0x0092, 0xffea, 0xff5b, 0xfef1, 0xfed0,
+ 0xfee2, 0xfeff, 0xff0c, 0xfee0, 0xfea9, 0xfe94,
+ 0xfe75, 0xfe5e, 0xfe5d, 0xfe59, 0xfe7e, 0xfed0,
+ 0xff18, 0xff65, 0xff8e, 0xff55, 0xfeed, 0xfe82,
+ 0xfe0e, 0xfdb6, 0xfd9d, 0xfdc5, 0xfde9, 0xfdc0,
+ 0xfd61, 0xfccc, 0xfbfc, 0xfb6a, 0xfb38, 0xfb29,
+ 0xfb62, 0xfbd9, 0xfc32, 0xfc68, 0xfc72, 0xfc3f,
+ 0xfc1d, 0xfc2e, 0xfc72, 0xfd00, 0xfd9a, 0xfdf0,
+ 0xfe1a, 0xfe23, 0xfe01, 0xfddb, 0xfdc6, 0xfdcb,
+ 0xfdfa, 0xfe37, 0xfe71, 0xfeb8, 0xff0a, 0xff7c,
+ 0x002a, 0x00f4, 0x01bc, 0x0283, 0x0321, 0x0394,
+ 0x041e, 0x04ad, 0x0514, 0x0588, 0x0642, 0x072a,
+ 0x0811, 0x08b6, 0x090f, 0x0955, 0x0972, 0x0928,
+ 0x08b1, 0x0849, 0x07ca, 0x0706, 0x05f5, 0x04c6,
+ 0x03ca, 0x031c, 0x02b2, 0x0276, 0x0234, 0x01d2,
+ 0x016d, 0x0117, 0x00de, 0x00b7, 0x0088, 0x006d,
+ 0x005f, 0x001b, 0xffad, 0xff44, 0xfee1, 0xfe7d,
+ 0xfe0b, 0xfd93, 0xfd38, 0xfcfb, 0xfccb, 0xfcab,
+ 0xfc9e, 0xfca4, 0xfc9d, 0xfc6b, 0xfc30, 0xfbf8,
+ 0xfbb7, 0xfb87, 0xfb6e, 0xfb87, 0xfbf0, 0xfc71,
+ 0xfcf6, 0xfd6d, 0xfd5d, 0xfccc, 0xfc3c, 0xfbe9,
+ 0xfc17, 0xfcb4, 0xfd3a, 0xfd7e, 0xfd5d, 0xfcad,
+ 0xfbe1, 0xfb46, 0xfad0, 0xfaab, 0xfaab, 0xfa84,
+ 0xfa55, 0xfa0e, 0xf99d, 0xf925, 0xf89d, 0xf811,
+ 0xf781, 0xf6af, 0xf5b4, 0xf4b9, 0xf3ac, 0xf2bb,
+ 0xf1f0, 0xf112, 0xf033, 0xef78, 0xef02, 0xeee7,
+ 0xef07, 0xef6c, 0xf02a, 0xf108, 0xf1fb, 0xf30c,
+ 0xf3f2, 0xf49d, 0xf52d, 0xf5b5, 0xf669, 0xf756,
+ 0xf850, 0xf953, 0xfa41, 0xfaf8, 0xfba0, 0xfc7c,
+ 0xfda7, 0xff09, 0x0073, 0x01de, 0x0339, 0x044d,
+ 0x0514, 0x05ba, 0x0659, 0x06f9, 0x07a2, 0x0872,
+ 0x0979, 0x0a8c, 0x0b69, 0x0c0a, 0x0c7d, 0x0cb2,
+ 0x0cab, 0x0c89, 0x0c50, 0x0bfc, 0x0ba7, 0x0b46,
+ 0x0aa0, 0x09aa, 0x0897, 0x0787, 0x0674, 0x0575,
+ 0x04ae, 0x040b, 0x0363, 0x02af, 0x0208, 0x019a,
+ 0x0154, 0x00fe, 0x00a5, 0x0046, 0xffc8, 0xff62,
+ 0xff2f, 0xff1b, 0xff66, 0x001b, 0x00f7, 0x01d4,
+ 0x0287, 0x02f2, 0x0344, 0x03b0, 0x046b, 0x056d,
+ 0x0656, 0x0703, 0x075d, 0x0750, 0x075c, 0x07d9,
+ 0x087e, 0x093d, 0x0a0f, 0x0ab6, 0x0b50, 0x0c08,
+ 0x0cb6, 0x0d5a, 0x0e1a, 0x0eed, 0x0faa, 0x102e,
+ 0x1065, 0x103c, 0x0ff0, 0x0fd7, 0x0fc6, 0x0fa1,
+ 0x0fa9, 0x0fbc, 0x0fb9, 0x0fe5, 0x1031, 0x105c,
+ 0x106f, 0x105a, 0x1002, 0x0f70, 0x0e9d, 0x0d8f,
+ 0x0c77, 0x0b8e, 0x0b09, 0x0afd, 0x0b2d, 0x0b1d,
+ 0x0a75, 0x095f, 0x0836, 0x0735, 0x068c, 0x0624,
+ 0x05b7, 0x0537, 0x0497, 0x03b2, 0x02b3, 0x01e4,
+ 0x015a, 0x012b, 0x0165, 0x01f2, 0x02b7, 0x03a5,
+ 0x04a4, 0x05b4, 0x06d7, 0x07d1, 0x086f, 0x08d9,
+ 0x0936, 0x0977, 0x0983, 0x0958, 0x0902, 0x0885,
+ 0x07ee, 0x0774, 0x0715, 0x06a3, 0x063c, 0x05ee,
+ 0x057d, 0x0503, 0x04b5, 0x046e, 0x041f, 0x03db,
+ 0x0372, 0x02d5, 0x0249, 0x01e6, 0x0190, 0x0155,
+ 0x0136, 0x00f2, 0x0084, 0x0014, 0xff8b, 0xfede,
+ 0xfe2b, 0xfd56, 0xfc5c, 0xfb59, 0xfa2f, 0xf8df,
+ 0xf794, 0xf647, 0xf516, 0xf438, 0xf3a4, 0xf343,
+ 0xf30b, 0xf2e0, 0xf2be, 0xf2d0, 0xf348, 0xf413,
+ 0xf4e8, 0xf5c9, 0xf6de, 0xf801, 0xf904, 0xf9e2,
+ 0xfaa6, 0xfb82, 0xfc86, 0xfd73, 0xfe23, 0xfe9e,
+ 0xfed8, 0xfeee, 0xff0f, 0xff2f, 0xff4e, 0xff78,
+ 0xff85, 0xff55, 0xff06, 0xfec1, 0xfe90, 0xfe6a,
+ 0xfe58, 0xfe78, 0xfed4, 0xff54, 0xffc5, 0x000f,
+ 0x0074, 0x0112, 0x01b7, 0x0258, 0x02e0, 0x030f,
+ 0x02ff, 0x02db, 0x0293, 0x0244, 0x021a, 0x0219,
+ 0x023c, 0x0269, 0x02a7, 0x02e5, 0x02b0, 0x0214,
+ 0x0197, 0x0132, 0x00d5, 0x00b0, 0x00aa, 0x00ba,
+ 0x00ed, 0x011f, 0x0137, 0x010f, 0x00ae, 0x0089,
+ 0x00ba, 0x010d, 0x0192, 0x0236, 0x02d9, 0x038e,
+ 0x041b, 0x042d, 0x03da, 0x035e, 0x02b2, 0x01d5,
+ 0x0128, 0x00cf, 0x009b, 0x00be, 0x012e, 0x0155,
+ 0x012a, 0x00b7, 0xffbb, 0xfeb1, 0xfe19, 0xfdb0,
+ 0xfd6b, 0xfd28, 0xfc97, 0xfc22, 0xfbd4, 0xfb3f,
+ 0xfaea, 0xfb24, 0xfb7a, 0xfc12, 0xfcd3, 0xfd45,
+ 0xfdc0, 0xfe41, 0xfe51, 0xfe69, 0xfed8, 0xff2e,
+ 0xff49, 0xff37, 0xfefd, 0xfed7, 0xfece, 0xfe88,
+ 0xfdeb, 0xfd67, 0xfce3, 0xfc07, 0xfb86, 0xfb77,
+ 0xfb11, 0xfae4, 0xfb00, 0xfa7b, 0xfa2b, 0xfa74,
+ 0xfa73, 0xfaaf, 0xfb26, 0xfae9, 0xfa75, 0xf9da,
+ 0xf8da, 0xf82d, 0xf7ca, 0xf79d, 0xf7fb, 0xf855,
+ 0xf876, 0xf872, 0xf81c, 0xf7df, 0xf788, 0xf6ae,
+ 0xf604, 0xf5af, 0xf570, 0xf525, 0xf479, 0xf41d,
+ 0xf44d, 0xf443, 0xf495, 0xf560, 0xf5d1, 0xf635,
+ 0xf63e, 0xf5cf, 0xf5f4, 0xf5de, 0xf4c7, 0xf381,
+ 0xf1e6, 0xf05c, 0xeff1, 0xefff, 0xf01c, 0xf022,
+ 0xef50, 0xee5e, 0xee0e, 0xede0, 0xee03, 0xee8c,
+ 0xeef3, 0xef84, 0xf08e, 0xf170, 0xf180, 0xf10f,
+ 0xf0d1, 0xf0aa, 0xf06c, 0xf055, 0xf035, 0xf049,
+ 0xf137, 0xf297, 0xf39f, 0xf458, 0xf544, 0xf663,
+ 0xf72f, 0xf7d1, 0xf8a9, 0xf993, 0xfaf4, 0xfccd,
+ 0xfe0f, 0xfe9b, 0xfecb, 0xfede, 0xffad, 0x00ca,
+ 0x010a, 0x014c, 0x0239, 0x02c3, 0x0360, 0x0514,
+ 0x0687, 0x06e7, 0x072f, 0x06e9, 0x05a6, 0x04f3,
+ 0x04f6, 0x04ee, 0x059a, 0x06ae, 0x0772, 0x0879,
+ 0x091e, 0x08c7, 0x0845, 0x076e, 0x067a, 0x0608,
+ 0x0502, 0x0397, 0x0333, 0x036f, 0x043a, 0x05e3,
+ 0x06fb, 0x0705, 0x071a, 0x072a, 0x06ae, 0x062f,
+ 0x060c, 0x056c, 0x03f1, 0x0271, 0x0122, 0xffc5,
+ 0xfef5, 0xfeeb, 0xff38, 0xfff3, 0x00e0, 0x0120,
+ 0x00be, 0x0082, 0x0057, 0x0014, 0x002e, 0x003b,
+ 0xff87, 0xfe0b, 0xfba2, 0xf98e, 0xf946, 0xf964,
+ 0xf98f, 0xfaf3, 0xfba4, 0xfae7, 0xfadf, 0xfb63,
+ 0xfc54, 0xfe83, 0x00a2, 0x0252, 0x03f1, 0x0437,
+ 0x037f, 0x030f, 0x02a0, 0x0273, 0x02b2, 0x02bc,
+ 0x029d, 0x0229, 0x00d5, 0xff5e, 0xff18, 0xffb4,
+ 0xffcb, 0x000c, 0x0149, 0x01b2, 0x0154, 0x0224,
+ 0x0316, 0x02d3, 0x021e, 0x0152, 0x00bb, 0x0105,
+ 0x0207, 0x02f2, 0x031c, 0x02ff, 0x030b, 0x02e9,
+ 0x02ea, 0x030c, 0x031b, 0x0330, 0x0265, 0x0193,
+ 0x01b4, 0x0011, 0xfda9, 0xfe19, 0xfecc, 0xfe7e,
+ 0xff2d, 0xfe5e, 0xfc6f, 0xfcec, 0xfd80, 0xfc95,
+ 0xfbd8, 0xfa8b, 0xf98c, 0xf9f9, 0xf960, 0xf836,
+ 0xf8c5, 0xf9fe, 0xfb6f, 0xfd9f, 0xfeed, 0xfe5f,
+ 0xfd56, 0xfce2, 0xfcca, 0xfd3a, 0xfe70, 0xfea5,
+ 0xfc9d, 0xfab2, 0xfa9a, 0xfb0f, 0xfbc8, 0xfd28,
+ 0xfdb5, 0xfcef, 0xfc10, 0xfb3d, 0xfa93, 0xfa75,
+ 0xf98f, 0xf7f6, 0xf80a, 0xf94b, 0xf9b3, 0xf9b6,
+ 0xf9c6, 0xf9dc, 0xfb02, 0xfcb0, 0xfd42, 0xfd20,
+ 0xfca0, 0xfb0b, 0xf9c6, 0xfa9b, 0xfbf9, 0xfbc2,
+ 0xfa8a, 0xf95b, 0xf83a, 0xf7d7, 0xf92f, 0xfb38,
+ 0xfc0a, 0xfbe1, 0xfb32, 0xf97c, 0xf881, 0xf90c,
+ 0xf88f, 0xf7bd, 0xf895, 0xf9c4, 0xfba0, 0xfd86,
+ 0xfcbb, 0xfc7e, 0xfec8, 0xff86, 0xff94, 0x0011,
+ 0xfe0a, 0xfc91, 0xfe2c, 0xfec4, 0xfe93, 0xffbd,
+ 0x0046, 0xfff0, 0xff96, 0xfed5, 0xfe54, 0xfe16,
+ 0xfd61, 0xfcb9, 0xfc04, 0xfa45, 0xf7eb, 0xf66e,
+ 0xf5d0, 0xf59a, 0xf66d, 0xf6ef, 0xf570, 0xf45b,
+ 0xf49f, 0xf384, 0xf187, 0xf091, 0xefc6, 0xeed0,
+ 0xeef7, 0xf085, 0xf232, 0xf310, 0xf374, 0xf385,
+ 0xf3c7, 0xf4f8, 0xf6b9, 0xf9d9, 0xfe75, 0x020c,
+ 0x049d, 0x069a, 0x0651, 0x0534, 0x0439, 0x025d,
+ 0x0252, 0x03df, 0x0348, 0x028d, 0x02aa, 0x0087,
+ 0xfe0c, 0xfe25, 0xffd5, 0x0247, 0x0445, 0x04c1,
+ 0x052a, 0x0600, 0x066f, 0x0724, 0x0881, 0x0914,
+ 0x0805, 0x0621, 0x0407, 0x020e, 0x00c7, 0xfffb,
+ 0xff98, 0x0054, 0x019a, 0x0256, 0x033b, 0x0539,
+ 0x074a, 0x0880, 0x0a57, 0x0c76, 0x0bcb, 0x0949,
+ 0x075c, 0x0563, 0x04e7, 0x06c3, 0x07bf, 0x082c,
+ 0x09ac, 0x0b3a, 0x0dfb, 0x116a, 0x12cc, 0x13ae,
+ 0x146e, 0x1363, 0x129c, 0x1231, 0x10b0, 0x10a9,
+ 0x123b, 0x130e, 0x1486, 0x1664, 0x160c, 0x15b0,
+ 0x175a, 0x1823, 0x1829, 0x19dd, 0x1a77, 0x182d,
+ 0x164a, 0x161f, 0x1774, 0x1a21, 0x1bb2, 0x1bca,
+ 0x1c1f, 0x1bdc, 0x1ad8, 0x19e6, 0x17ee, 0x14b2,
+ 0x116c, 0x0ed8, 0x0c3a, 0x086d, 0x04bc, 0x024d,
+ 0x0072, 0xfff3, 0x0065, 0x0064, 0x01f3, 0x0564,
+ 0x07b0, 0x0860, 0x08d2, 0x091a, 0x07e2, 0x0575,
+ 0x03fd, 0x0224, 0xff9d, 0xfffb, 0x0151, 0x0062,
+ 0xfebb, 0xfc59, 0xfaec, 0xfceb, 0xffae, 0x02e5,
+ 0x0658, 0x06ee, 0x07c2, 0x0a77, 0x0b8e, 0x0be7,
+ 0x0b33, 0x08c1, 0x07df, 0x06ac, 0x03d8, 0x0346,
+ 0x0419, 0x045b, 0x03f7, 0x028d, 0x0279, 0x02f3,
+ 0x01cd, 0x024f, 0x04dc, 0x07a5, 0x0a54, 0x0a00,
+ 0x076a, 0x04a8, 0x0086, 0xfe63, 0xffaf, 0x01bf,
+ 0x0592, 0x0815, 0x072b, 0x068f, 0x0350, 0xfe75,
+ 0xfe9e, 0xfe8e, 0xfb92, 0xfa1a, 0xf720, 0xf358,
+ 0xf2b8, 0xf23b, 0xf20f, 0xf3fd, 0xf673, 0xf91d,
+ 0xfadf, 0xfc6f, 0xfe66, 0xfe19, 0xfdad, 0xfd1a,
+ 0xf9e2, 0xf930, 0xf8ba, 0xf3c8, 0xf1f5, 0xf1da,
+ 0xef2b, 0xf140, 0xf4a8, 0xf537, 0xf9cc, 0xfd88,
+ 0xfcc8, 0xfe94, 0x0027, 0xfedf, 0xfc41, 0xf639,
+ 0xf2db, 0xf496, 0xf431, 0xf4ff, 0xf811, 0xf5e7,
+ 0xf2a6, 0xf351, 0xf48d, 0xf5ce, 0xf677, 0xf5b4,
+ 0xf4fc, 0xf50f, 0xf83f, 0xfcb1, 0xfdd1, 0xff83,
+ 0x037f, 0x061d, 0x094e, 0x0c4a, 0x0b80, 0x09ea,
+ 0x094f, 0x08f0, 0x08a1, 0x0682, 0x03a9, 0x01aa,
+ 0xff81, 0xfe9b, 0xfeed, 0xff50, 0x0039, 0xffb8,
+ 0xff4f, 0xfffd, 0xfd6c, 0xfcd1, 0x00cc, 0xffbd,
+ 0xfd1a, 0xfee5, 0xff38, 0x0184, 0x06f8, 0x0782,
+ 0x0717, 0x074f, 0x0447, 0x0388, 0x03d3, 0x0352,
+ 0x08d9, 0x0f44, 0x11eb, 0x1555, 0x1557, 0x114a,
+ 0x0e49, 0x0aaf, 0x081a, 0x0785, 0x06b9, 0x0739,
+ 0x04e8, 0x0072, 0x0167, 0x01a7, 0xffce, 0x0394,
+ 0x067f, 0x066b, 0x0987, 0x0c18, 0x0df8, 0x0fe7,
+ 0x0d1b, 0x099e, 0x0767, 0x02b9, 0xfd75, 0xf758,
+ 0xf2c9, 0xf4ac, 0xf780, 0xf901, 0xfadc, 0xf932,
+ 0xf7c2, 0xfa22, 0xfb6d, 0xfd4c, 0x00f8, 0x01a2,
+ 0xfff9, 0xfe6a, 0xfcb8, 0xfa48, 0xf79b, 0xf6cf,
+ 0xf658, 0xf60b, 0xf860, 0xf86b, 0xf557, 0xf3d6,
+ 0xf142, 0xf046, 0xf3f4, 0xf5d1, 0xf8ca, 0xfde6,
+ 0xfd7c, 0xfebd, 0x0411, 0x0380, 0x024d, 0x036e,
+ 0x0167, 0x02d1, 0x05e3, 0x008d, 0xf90d, 0xf49c,
+ 0xf075, 0xf01b, 0xf315, 0xf3e3, 0xf5aa, 0xfb50,
+ 0xfe11, 0xfb21, 0xf80a, 0xf3ce, 0xec46, 0xe9bf,
+ 0xed64, 0xeea2, 0xee0a, 0xed56, 0xe9cb, 0xe843,
+ 0xec63, 0xf0d7, 0xf35c, 0xf608, 0xf82a, 0xf96c,
+ 0xfc80, 0x002a, 0xff9c, 0xfc43, 0xf9d8, 0xf81f,
+ 0xf7db, 0xf82f, 0xf7b8, 0xf9ad, 0xfc29, 0xfbd2,
+ 0xfd31, 0xffa0, 0xfdde, 0xf982, 0xf3cc, 0xed4a,
+ 0xea97, 0xed8f, 0xf2c7, 0xf5d3, 0xf682, 0xf79d,
+ 0xf9e9, 0xff30, 0x04ea, 0x0248, 0xf971, 0xf296,
+ 0xee28, 0xee0c, 0xf238, 0xf47c, 0xf4b0, 0xf3d4,
+ 0xf19d, 0xf24c, 0xf45e, 0xf3cb, 0xf486, 0xf87e,
+ 0xfd71, 0x0303, 0x0703, 0x0621, 0x01f8, 0xff2b,
+ 0xfe7a, 0xff69, 0x047a, 0x09cb, 0x08a4, 0x040d,
+ 0xfdf5, 0xf583, 0xf185, 0xf3c7, 0xf670, 0xf985,
+ 0xff50, 0x06fb, 0x0d53, 0x0f1e, 0x0f32, 0x1283,
+ 0x1767, 0x17c2, 0x14d7, 0x16ce, 0x1a9a, 0x1c11,
+ 0x221c, 0x2457, 0x1d20, 0x2248, 0x313f, 0x3277,
+ 0x2df5, 0x2dc1, 0x2b28, 0x26aa, 0x2023, 0x1955,
+ 0x1659, 0x11a9, 0x0c35, 0x0950, 0x06d0, 0x08c0,
+ 0x0aad, 0x0721, 0x049e, 0xfdff, 0xf0de, 0xe51a,
+ 0xd863, 0xd125, 0xccba, 0xb67f, 0xa11a, 0xa0a0,
+ 0x9a24, 0x8973, 0x8835, 0x9837, 0xb162, 0xd406,
+ 0xfefb, 0x221f, 0x2b85, 0x2474, 0x1628, 0x0149,
+ 0xf4e7, 0xe5be, 0xc477, 0xb21f, 0xb358, 0xa904,
+ 0x9d4c, 0x9a95, 0x986e, 0xa2a9, 0xbc4c, 0xdae9,
+ 0xf6f3, 0x00b0, 0xf555, 0xddc5, 0xc0f7, 0xb090,
+ 0xadea, 0xaf76, 0xbef5, 0xcebf, 0xcd58, 0xd71c,
+ 0xebe4, 0xe5e5, 0xd298, 0xd088, 0xd58d, 0xd7b6,
+ 0xdc1a, 0xe133, 0xe2e8, 0xe34c, 0xebc6, 0xfb1a,
+ 0x02ce, 0x0ba0, 0x2156, 0x2c3a, 0x2652, 0x2732,
+ 0x29fa, 0x267d, 0x252f, 0x2041, 0x1cdf, 0x211f,
+ 0x1c7d, 0x1c2d, 0x29be, 0x255b, 0x1a56, 0x23b5,
+ 0x2903, 0x23bc, 0x2197, 0x207b, 0x272c, 0x270b,
+ 0x1912, 0x2692, 0x3da5, 0x2bec, 0x1dde, 0x34e1,
+ 0x38a9, 0x1c61, 0x16ab, 0x2a50, 0x272e, 0x17d7,
+ 0x23ec, 0x29b0, 0x1a1e, 0x2b2c, 0x4564, 0x3777,
+ 0x2e27, 0x34a9, 0x2cbc, 0x3656, 0x4a98, 0x3d20,
+ 0x3024, 0x3a44, 0x3e57, 0x4379, 0x48ca, 0x3865,
+ 0x279d, 0x1f5f, 0x0de7, 0x0aa6, 0x2179, 0x2b2c,
+ 0x1d62, 0x1414, 0x176e, 0x206c, 0x302a, 0x428c,
+ 0x45e5, 0x3910, 0x34c3, 0x3d57, 0x4054, 0x3c15,
+ 0x35f1, 0x34ab, 0x3f7f, 0x45e0, 0x43f8, 0x4949,
+ 0x4387, 0x3170, 0x3113, 0x328e, 0x2bcf, 0x30b0,
+ 0x2d80, 0x230b, 0x2d50, 0x331c, 0x2a30, 0x2777,
+ 0x23b3, 0x26ec, 0x288e, 0x096f, 0xf6f8, 0x0885,
+ 0x07a1, 0x02c6, 0x1649, 0x1fd5, 0x21f9, 0x1f31,
+ 0x08f9, 0x04a7, 0x09ab, 0xf2f3, 0xec34, 0xf38b,
+ 0xd992, 0xcac3, 0xd83a, 0xd101, 0xc9fc, 0xd78f,
+ 0xd673, 0xcae9, 0xc7be, 0xc704, 0xcc56, 0xd25e,
+ 0xd021, 0xd0a4, 0xd609, 0xdb05, 0xde2a, 0xdc47,
+ 0xde7d, 0xe6a4, 0xe591, 0xdee2, 0xd82c, 0xcaf7,
+ 0xc334, 0xc77a, 0xca2b, 0xcca3, 0xd1f5, 0xce7e,
+ 0xc286, 0xbb33, 0xbe3a, 0xc2ba, 0xc121, 0xc3e1,
+ 0xcbdc, 0xc8cd, 0xbfd3, 0xbdd2, 0xbd51, 0xbc1f,
+ 0xbd95, 0xc5fe, 0xda1b, 0xe871, 0xe2b8, 0xdcea,
+ 0xdef1, 0xda5b, 0xd485, 0xd838, 0xdd57, 0xdb3f,
+ 0xd782, 0xd99b, 0xda43, 0xd738, 0xddb9, 0xe5ca,
+ 0xe20d, 0xe15b, 0xe62a, 0xe667, 0xe773, 0xe050,
+ 0xd338, 0xdc24, 0xe594, 0xd1d8, 0xc3d2, 0xce11,
+ 0xdef4, 0xf81e, 0x0b23, 0x04b0, 0xf784, 0xed01,
+ 0xe1ff, 0xdd38, 0xd7a6, 0xd834, 0xe626, 0xdca1,
+ 0xc20a, 0xc8bd, 0xd67e, 0xcda2, 0xd509, 0xe468,
+ 0xd98b, 0xd417, 0xe334, 0xeafe, 0xe9a5, 0xe33a,
+ 0xd8a6, 0xd551, 0xd147, 0xca76, 0xcc0f, 0xc493,
+ 0xb996, 0xca05, 0xd7ab, 0xcb47, 0xcc46, 0xd615,
+ 0xcc8a, 0xc700, 0xc59f, 0xb8f9, 0xbf2e, 0xd5ad,
+ 0xd8b7, 0xd436, 0xd427, 0xceb6, 0xcf55, 0xd2e0,
+ 0xcaff, 0xc895, 0xcffa, 0xd07f, 0xcd38, 0xcba4,
+ 0xccdc, 0xd249, 0xd19a, 0xd155, 0xdc3e, 0xd8a6,
+ 0xc5f8, 0xc9c0, 0xd712, 0xcf5f, 0xc68e, 0xc7ec,
+ 0xc62c, 0xcb73, 0xd93a, 0xda6d, 0xd89d, 0xe90a,
+ 0xf7c7, 0xeb49, 0xd40d, 0xcba5, 0xcee9, 0xd525,
+ 0xe010, 0xe74a, 0xe39c, 0xe32d, 0xe993, 0xe8a6,
+ 0xe98d, 0xf712, 0xfa36, 0xf11f, 0xfb7e, 0x0da7,
+ 0x0612, 0xf8d9, 0xfe33, 0x0196, 0xfd43, 0x063c,
+ 0x1528, 0x1182, 0x0154, 0xfd04, 0x0338, 0x002b,
+ 0xf7a0, 0xf808, 0xfb22, 0xfd3a, 0x044f, 0x0b98,
+ 0x122f, 0x1833, 0x168c, 0x1b52, 0x2a1d, 0x2267,
+ 0x0ceb, 0x0e6f, 0x1302, 0x0cb4, 0x191f, 0x2a5c,
+ 0x2369, 0x1901, 0x15d9, 0x1176, 0x1878, 0x2725,
+ 0x29dc, 0x270d, 0x27ff, 0x278b, 0x1f61, 0x1130,
+ 0x143f, 0x2d72, 0x3596, 0x28f7, 0x28cd, 0x2a9d,
+ 0x253f, 0x306e, 0x3ec6, 0x3ad3, 0x328d, 0x26a0,
+ 0x1a72, 0x2375, 0x34c9, 0x3eba, 0x4713, 0x3e2c,
+ 0x2a0a, 0x2b35, 0x2cd9, 0x1f3a, 0x294f, 0x4290,
+ 0x40ef, 0x36f0, 0x3c3d, 0x4015, 0x4024, 0x485a,
+ 0x5246, 0x52af, 0x4a5f, 0x4396, 0x44ca, 0x494b,
+ 0x4c9c, 0x4ed2, 0x4d0b, 0x4397, 0x3740, 0x33b4,
+ 0x3abe, 0x439b, 0x4a12, 0x4985, 0x421c, 0x424a,
+ 0x4875, 0x485a, 0x4c3d, 0x513b, 0x4495, 0x3685,
+ 0x378b, 0x3c8a, 0x433e, 0x43fb, 0x3945, 0x3af0,
+ 0x4314, 0x39f8, 0x38b1, 0x46f7, 0x4609, 0x3dbe,
+ 0x3d9f, 0x3b46, 0x36a9, 0x305f, 0x2f05, 0x3bea,
+ 0x3da1, 0x34b5, 0x42b7, 0x4cf8, 0x3e46, 0x3b94,
+ 0x3e79, 0x34a1, 0x35e5, 0x3954, 0x3593, 0x3da4,
+ 0x3b30, 0x2b5f, 0x32c3, 0x3b0d, 0x3439, 0x3efe,
+ 0x465c, 0x323a, 0x29da, 0x3621, 0x37b9, 0x2ad8,
+ 0x2538, 0x33e3, 0x3a66, 0x25a2, 0x20bd, 0x324e,
+ 0x30a1, 0x2bc7, 0x320e, 0x2b70, 0x2bc0, 0x3576,
+ 0x2446, 0x14da, 0x20eb, 0x234b, 0x1aa8, 0x18c3,
+ 0x139d, 0x14bc, 0x1c63, 0x17f5, 0x16e6, 0x1dc8,
+ 0x19c2, 0x17d5, 0x1d0f, 0x1814, 0x1428, 0x1918,
+ 0x15f1, 0x0da2, 0x0d86, 0x10d0, 0x0df3, 0x05ad,
+ 0x02fb, 0x0a33, 0x1222, 0x152a, 0x1310, 0x0ed0,
+ 0x0f7f, 0x12ea, 0x15da, 0x1a24, 0x148e, 0x04f8,
+ 0x0429, 0x0fbd, 0x0c10, 0x012f, 0x0c2b, 0x1e80,
+ 0x12bc, 0xfc75, 0x0462, 0x0d0b, 0xfc8a, 0xfc4c,
+ 0x0ab2, 0x04cb, 0x067d, 0x13f8, 0x0814, 0xfec6,
+ 0x0c2b, 0x0725, 0xf2ff, 0xee07, 0xf1fb, 0xf78c,
+ 0xf7d8, 0xf37a, 0xfcfc, 0x0581, 0xfd07, 0xf8fa,
+ 0xf3e6, 0xe654, 0xe982, 0xf14a, 0xed8b, 0xf4d1,
+ 0xfb6b, 0xefe6, 0xeba2, 0xf162, 0xf252, 0xf2f8,
+ 0xf4c6, 0xfb26, 0xfc1c, 0xe8da, 0xe639, 0x0096,
+ 0x053a, 0xf9fa, 0xf98b, 0xead8, 0xe08b, 0xf28a,
+ 0xf2f4, 0xe4b7, 0xed1b, 0xec53, 0xdb2a, 0xe118,
+ 0xf0cb, 0xf1c9, 0xee2d, 0xe998, 0xe3a9, 0xe072,
+ 0xe373, 0xed4e, 0xf069, 0xeff0, 0xf8fe, 0xf1fd,
+ 0xdc82, 0xe40f, 0xf2ef, 0xe7f2, 0xe322, 0xe632,
+ 0xdb10, 0xd87e, 0xe0fa, 0xe62e, 0xf341, 0xf56b,
+ 0xdf70, 0xd74f, 0xe070, 0xe47b, 0xed8b, 0xf372,
+ 0xebf6, 0xeefd, 0xf2cf, 0xe335, 0xdd26, 0xe71c,
+ 0xe628, 0xe385, 0xeaa3, 0xec1a, 0xeb11, 0xf26c,
+ 0xf61b, 0xee24, 0xe760, 0xea6f, 0xecb5, 0xe66b,
+ 0xde66, 0xd3d3, 0xca1b, 0xd701, 0xec8f, 0xe435,
+ 0xd383, 0xdc72, 0xe334, 0xda90, 0xdbdb, 0xdb54,
+ 0xca38, 0xc15a, 0xc46a, 0xc581, 0xcd00, 0xd48b,
+ 0xcde6, 0xca3f, 0xcfe4, 0xcea6, 0xcf07, 0xd8f1,
+ 0xd51c, 0xbff7, 0xb9da, 0xcb15, 0xd3aa, 0xc93e,
+ 0xc9da, 0xd69d, 0xce9f, 0xbd69, 0xc172, 0xc7ba,
+ 0xc358, 0xc9cc, 0xd336, 0xce87, 0xcae6, 0xceaa,
+ 0xd3be, 0xdb6e, 0xdacf, 0xd0da, 0xd0d8, 0xd3fd,
+ 0xcd18, 0xccc8, 0xd8b1, 0xe0ef, 0xe140, 0xdee6,
+ 0xdf68, 0xe3d7, 0xe7df, 0xed6d, 0xef2a, 0xe3e2,
+ 0xdcc4, 0xe2b1, 0xe47f, 0xe7fd, 0xee6a, 0xe2ff,
+ 0xe054, 0xfaa8, 0xfe3f, 0xe826, 0xf068, 0x028b,
+ 0xf745, 0xee4b, 0xf78f, 0xfb46, 0xf713, 0xf617,
+ 0x000d, 0x0b11, 0x014b, 0xf719, 0xff60, 0xf7b3,
+ 0xe99b, 0xfdd1, 0x0be6, 0xf8f5, 0xf722, 0x0658,
+ 0x03b6, 0xfefb, 0xfee0, 0xfae0, 0xff25, 0x01bc,
+ 0xfc97, 0x0459, 0x07d2, 0xfabf, 0xff3d, 0x0915,
+ 0xf863, 0xed46, 0xf3cb, 0xec29, 0xe2aa, 0xe98c,
+ 0xedfa, 0xecbc, 0xe85c, 0xdaf2, 0xd6d3, 0xe3a5,
+ 0xecde, 0xeef7, 0xeb42, 0xe071, 0xe178, 0xea20,
+ 0xe14f, 0xdd75, 0xf35f, 0xfb2c, 0xe664, 0xe025,
+ 0xee6e, 0xeef5, 0xe76d, 0xea63, 0xe3c3, 0xd696,
+ 0xe261, 0xebb0, 0xd7e2, 0xd9a8, 0xf668, 0xf3ac,
+ 0xe2b3, 0xe7a4, 0xe498, 0xdb5f, 0xe4d2, 0xe852,
+ 0xe357, 0xeb9d, 0xf1df, 0xf3f8, 0xfa6f, 0xf315,
+ 0xee12, 0x0254, 0x0836, 0xf3b5, 0xf2da, 0x0484,
+ 0x08ff, 0x0485, 0xfcf0, 0xf651, 0xfdf5, 0x0123,
+ 0xf3a9, 0xf5b1, 0x03a3, 0xfddd, 0xf421, 0xf31a,
+ 0xf380, 0x01fb, 0x0dbb, 0x05a7, 0x0b65, 0x121d,
+ 0xfe91, 0x02b2, 0x1c92, 0x1488, 0x0cf1, 0x1d7e,
+ 0x181c, 0x0abf, 0x109b, 0x0a98, 0xfbda, 0x03d9,
+ 0x1451, 0x1480, 0x0bd0, 0x0b69, 0x0cbc, 0x0019,
+ 0xf2be, 0xf98f, 0x0d78, 0x188f, 0x1409, 0x12e2,
+ 0x17e5, 0x0a70, 0xf9c8, 0x0268, 0x0b96, 0x0908,
+ 0x1030, 0x16cc, 0x0c67, 0xfa78, 0xed30, 0xefdc,
+ 0xff2b, 0x0838, 0x068c, 0x02ac, 0x03ee, 0x066f,
+ 0x0104, 0xfc98, 0xff21, 0x022d, 0x07e8, 0x04bf,
+ 0xf727, 0xfdb9, 0x0a2f, 0xfc63, 0xee36, 0xf0e4,
+ 0xf7f3, 0xfa49, 0xe930, 0xe074, 0xf8a6, 0xf8f3,
+ 0xe14a, 0xf0aa, 0x02b7, 0xf493, 0xf594, 0x00eb,
+ 0xfa6d, 0xf4ad, 0xf111, 0xefd1, 0xfd0d, 0x0134,
+ 0xf256, 0xec7b, 0xefea, 0xe9b3, 0xe4c8, 0xeba1,
+ 0xea6d, 0xe296, 0xeae2, 0xeec4, 0xe4f3, 0xf056,
+ 0xfb7a, 0xea62, 0xea85, 0xfa90, 0xf15f, 0xeab5,
+ 0xf3ff, 0xf04c, 0xed61, 0xfd4a, 0x0bf2, 0x063b,
+ 0xf6e2, 0xf749, 0xfc57, 0xf791, 0x016e, 0x0a5a,
+ 0xf7f3, 0xeeca, 0xf34b, 0xefe2, 0xf886, 0xffd7,
+ 0xf9c3, 0x02d0, 0x00b9, 0xeb7b, 0xf6c6, 0x0792,
+ 0xfa4d, 0xfaeb, 0x083f, 0x023d, 0xfebf, 0x0683,
+ 0x04a3, 0xfd53, 0x0304, 0x0fcf, 0x0ac1, 0xfbcd,
+ 0x000b, 0x0cf0, 0x0e39, 0x0862, 0x03cb, 0x0987,
+ 0x1062, 0x082e, 0x016a, 0x03d8, 0x02ac, 0x01d6,
+ 0x0359, 0x0c1f, 0x1827, 0x0861, 0xf564, 0x051b,
+ 0x0914, 0xfb95, 0x0b06, 0x1479, 0x0443, 0x0255,
+ 0x047d, 0x082f, 0x1ef5, 0x1fd4, 0x0637, 0x02c9,
+ 0x0885, 0x02a9, 0x0a81, 0x181e, 0x10ff, 0x0807,
+ 0x0b53, 0x0375, 0xf913, 0x0bf1, 0x1ee4, 0x138e,
+ 0x0da8, 0x141a, 0x09db, 0x0222, 0x0cd8, 0x12a6,
+ 0x0d6e, 0x061f, 0x02fc, 0x08ad, 0x0f13, 0x0f3e,
+ 0x0e39, 0x13ca, 0x17b1, 0x065e, 0xfcdd, 0x1a32,
+ 0x2764, 0x1287, 0x144a, 0x18c2, 0x075a, 0x0dbf,
+ 0x1a1c, 0x0e83, 0x0ff5, 0x16f7, 0x0fb7, 0x1297,
+ 0x1318, 0x099f, 0x12d1, 0x1d2b, 0x128c, 0x0946,
+ 0x0a35, 0x0b96, 0x0d34, 0x149d, 0x1e5d, 0x1c39,
+ 0x1856, 0x24e2, 0x295d, 0x1588, 0x0a19, 0x1780,
+ 0x20f2, 0x15df, 0x1374, 0x23f7, 0x219c, 0x121c,
+ 0x18e7, 0x1e75, 0x15ae, 0x1769, 0x19af, 0x15dc,
+ 0x123c, 0x074c, 0x0e7e, 0x2570, 0x1abd, 0x0c43,
+ 0x1dbc, 0x20ff, 0x1976, 0x2720, 0x2a1d, 0x1efb,
+ 0x20c0, 0x22ac, 0x2053, 0x1fbd, 0x184d, 0x1647,
+ 0x2130, 0x2238, 0x177b, 0x15f3, 0x1a4c, 0x18df,
+ 0x1f49, 0x2da5, 0x2b07, 0x21e6, 0x224e, 0x165d,
+ 0x0b82, 0x19c7, 0x1a7f, 0x0908, 0x131e, 0x27a7,
+ 0x22ab, 0x16ab, 0x19d8, 0x2327, 0x2025, 0x1c47,
+ 0x2b9c, 0x3216, 0x21c8, 0x1b14, 0x1cc0, 0x1daa,
+ 0x2570, 0x222d, 0x1f2f, 0x2c99, 0x21c9, 0x0ad3,
+ 0x137c, 0x1b3a, 0x18b0, 0x2157, 0x1abb, 0x1106,
+ 0x1ebc, 0x1cfb, 0x0b36, 0x0ea4, 0x177f, 0x15e2,
+ 0x15fb, 0x1d3b, 0x2672, 0x234f, 0x1d29, 0x24ea,
+ 0x24c8, 0x1b3e, 0x1a2d, 0x12d4, 0x1408, 0x2a54,
+ 0x2691, 0x11c9, 0x1495, 0x1052, 0x065b, 0x1337,
+ 0x14f7, 0x0ee6, 0x19f5, 0x0f85, 0x0017, 0x19e8,
+ 0x25ca, 0x0ae5, 0x0a2b, 0x23de, 0x243a, 0x0e79,
+ 0x06f6, 0x14bc, 0x1734, 0x0875, 0x0fb0, 0x2165,
+ 0x159a, 0x07f2, 0x1074, 0x11a8, 0x0824, 0x06be,
+ 0x0b19, 0x111c, 0x11f8, 0x0773, 0x0255, 0x0da5,
+ 0x1806, 0x13c7, 0x0999, 0x047a, 0x0409, 0x073e,
+ 0x0b32, 0x0655, 0x0054, 0x07cf, 0x0dcc, 0x07ae,
+ 0x0734, 0x0900, 0xffec, 0x02d3, 0x1611, 0x1129,
+ 0xfa08, 0xff58, 0x0e56, 0x0576, 0x0381, 0x0baf,
+ 0xff30, 0xf76a, 0x01f3, 0x05cc, 0x0dd1, 0x1350,
+ 0x01a7, 0xfadb, 0x0019, 0xf84a, 0xff9e, 0x0b56,
+ 0xfef9, 0x0067, 0x0936, 0xfae3, 0xfe0f, 0x1060,
+ 0x082a, 0x01b0, 0x0cc7, 0x0cad, 0x049c, 0xff65,
+ 0xfbe8, 0xff05, 0x0148, 0xffa1, 0x064a, 0x0d07,
+ 0x057d, 0xfced, 0xfee1, 0x0041, 0xfee3, 0x02c7,
+ 0x054b, 0x0288, 0xfff0, 0xfae0, 0xf835, 0xff86,
+ 0x0252, 0xf830, 0xf3c0, 0xfe63, 0x03d9, 0xf82a,
+ 0xed9c, 0xed13, 0xf263, 0xfee2, 0xfd23, 0xebae,
+ 0xf428, 0x040d, 0xf893, 0xf7b4, 0x011c, 0xf5fa,
+ 0xf6ba, 0x01fc, 0xf5fa, 0xeebb, 0xf8f5, 0xf7fb,
+ 0xed06, 0xe9a2, 0xf280, 0xfa90, 0xf621, 0xeec2,
+ 0xe895, 0xea91, 0xf7ff, 0xf575, 0xec1c, 0xf515,
+ 0xf225, 0xe761, 0xf51f, 0x01ea, 0x03f9, 0x0720,
+ 0x00c6, 0x007a, 0x0934, 0x04d1, 0x0321, 0x07f9,
+ 0x04d6, 0x0319, 0xfb86, 0xee6d, 0xef93, 0xf213,
+ 0xf262, 0xfbe9, 0x016c, 0x0374, 0x03f2, 0xfc33,
+ 0xfef6, 0x03f1, 0xf3a2, 0xec70, 0xfea1, 0x0ba0,
+ 0x08b6, 0x024b, 0x048b, 0x0913, 0xfd13, 0xf3ba,
+ 0x02dd, 0x0c67, 0x01b2, 0xfe03, 0x046d, 0x0192,
+ 0xf870, 0xf9e4, 0x038e, 0x04c2, 0xff45, 0xfcc0,
+ 0xf6f7, 0xf0ac, 0xf50a, 0xfbba, 0xfdee, 0xfe0d,
+ 0xf9d4, 0xfb5d, 0x03ec, 0xff6b, 0xf636, 0xf648,
+ 0xf4a3, 0xf902, 0x00fb, 0xf9e2, 0xfc4c, 0x090e,
+ 0xff13, 0xf4ca, 0xf12a, 0xe18f, 0xe91e, 0xfc82,
+ 0xf1f1, 0xf2bb, 0x02bd, 0xf898, 0xf123, 0xf1b7,
+ 0xe644, 0xec10, 0xf4cd, 0xe9a2, 0xeefa, 0xf8eb,
+ 0xedda, 0xed19, 0xeeb3, 0xdcc0, 0xd8b5, 0xe680,
+ 0xe60e, 0xdc9d, 0xda14, 0xdd1e, 0xe222, 0xdf62,
+ 0xd6b5, 0xd6d3, 0xd645, 0xd223, 0xda99, 0xd99a,
+ 0xcb39, 0xd71c, 0xe0c7, 0xd012, 0xdc22, 0xf07e,
+ 0xdf7d, 0xdbb3, 0xe56b, 0xd962, 0xd875, 0xd8c4,
+ 0xcc86, 0xdba0, 0xe631, 0xd28d, 0xce5c, 0xcbb0,
+ 0xc029, 0xcdc7, 0xd2a2, 0xc1aa, 0xccc6, 0xdf32,
+ 0xd4a7, 0xcdf7, 0xd86f, 0xda92, 0xd4a0, 0xd426,
+ 0xcfcf, 0xc224, 0xc2c7, 0xd856, 0xe487, 0xddfb,
+ 0xdaa0, 0xdc84, 0xd4e8, 0xce99, 0xd820, 0xdf5a,
+ 0xdbe8, 0xdd49, 0xde61, 0xd92b, 0xd42d, 0xcea0,
+ 0xd530, 0xe13e, 0xd417, 0xc99c, 0xdc65, 0xe35a,
+ 0xd443, 0xca94, 0xcc52, 0xd5db, 0xd5c6, 0xd0b4,
+ 0xdf94, 0xe5a2, 0xd75e, 0xd945, 0xdc11, 0xd498,
+ 0xddf9, 0xe60a, 0xdfa0, 0xdc2f, 0xd596, 0xd1bb,
+ 0xd8ef, 0xda96, 0xd9d8, 0xdc06, 0xdab2, 0xdb00,
+ 0xda00, 0xd774, 0xd810, 0xd5cc, 0xd89f, 0xdca0,
+ 0xd7e2, 0xe0ed, 0xe6d8, 0xd436, 0xda3a, 0xebd2,
+ 0xd55e, 0xca06, 0xdc76, 0xd938, 0xd752, 0xe9cf,
+ 0xe932, 0xdac8, 0xd633, 0xd987, 0xe13c, 0xe0ba,
+ 0xdbf3, 0xe29e, 0xe4c4, 0xdcba, 0xd9a7, 0xd792,
+ 0xd8e3, 0xe1e4, 0xe148, 0xd83e, 0xd613, 0xd696,
+ 0xd85e, 0xde95, 0xde98, 0xd84c, 0xdbc2, 0xe231,
+ 0xd7b9, 0xcce0, 0xd4cc, 0xd721, 0xcea0, 0xd6ac,
+ 0xe174, 0xd9f7, 0xd6e0, 0xe01d, 0xe39b, 0xe12a,
+ 0xe221, 0xe76b, 0xe66c, 0xda38, 0xd7e0, 0xe48a,
+ 0xe27f, 0xcfd7, 0xccbb, 0xdc3e, 0xe2d7, 0xdd1f,
+ 0xde6a, 0xe11e, 0xdcc0, 0xe295, 0xea0c, 0xdf65,
+ 0xd8bf, 0xde94, 0xdfb6, 0xe320, 0xe6c8, 0xe0c7,
+ 0xdf8e, 0xe170, 0xdf27, 0xe49d, 0xe9e0, 0xe59d,
+ 0xe12a, 0xdd7c, 0xdf53, 0xe5df, 0xe574, 0xe762,
+ 0xe88f, 0xddb4, 0xdd08, 0xe285, 0xdc14, 0xe198,
+ 0xeaa5, 0xe13c, 0xe216, 0xe8e7, 0xe308, 0xea8c,
+ 0xf215, 0xe58a, 0xe433, 0xeb2f, 0xecbb, 0xf569,
+ 0xf3d9, 0xea88, 0xef00, 0xeaa7, 0xe24f, 0xe8fc,
+ 0xe8a2, 0xeb2b, 0xf454, 0xea07, 0xea7a, 0xf69c,
+ 0xeb7d, 0xf13a, 0xffd8, 0xe6ef, 0xe12c, 0xf72e,
+ 0xe931, 0xdeba, 0xec20, 0xe57a, 0xe28f, 0xe71b,
+ 0xda05, 0xdaee, 0xe0b7, 0xd401, 0xd8cd, 0xe388,
+ 0xdb69, 0xe1b2, 0xedf1, 0xe600, 0xe262, 0xe71e,
+ 0xe392, 0xdeb9, 0xdedf, 0xe36c, 0xe466, 0xdf11,
+ 0xe5ca, 0xef95, 0xe822, 0xe81a, 0xf14e, 0xe62d,
+ 0xde2d, 0xec2b, 0xf1e7, 0xee04, 0xecff, 0xeb2b,
+ 0xf346, 0xf6c2, 0xe2f2, 0xdd73, 0xeb81, 0xe6e3,
+ 0xe15e, 0xeec9, 0xf43f, 0xea9d, 0xe42f, 0xee49,
+ 0xfbf0, 0xf49a, 0xedf6, 0xf85c, 0xf6d3, 0xf129,
+ 0xf586, 0xf1af, 0xf460, 0xfeec, 0xfb23, 0xff17,
+ 0x042c, 0xf33d, 0xf2e6, 0xff23, 0xf21e, 0xed41,
+ 0xf91d, 0xf1f9, 0xec8d, 0xf64a, 0xf08a, 0xe6c8,
+ 0xf001, 0xf322, 0xec29, 0xf6e7, 0x019c, 0xfb38,
+ 0xfdd7, 0x0019, 0xf84d, 0x0385, 0x09b5, 0xf9dc,
+ 0xfdf4, 0x03a7, 0xf70c, 0xfdbe, 0x041c, 0xf972,
+ 0xfd3a, 0xfd04, 0xf3cc, 0xfa90, 0xfce3, 0xfdfa,
+ 0x09eb, 0x054d, 0xfe2f, 0x03f3, 0xfe99, 0xfe3d,
+ 0x0ed0, 0x1019, 0x0200, 0x01b5, 0x110b, 0x164f,
+ 0x0d25, 0x0c66, 0x0d68, 0x082a, 0x0ed0, 0x14ad,
+ 0x11ba, 0x158d, 0x1178, 0x09b3, 0x10d5, 0x13e9,
+ 0x15c0, 0x1ba2, 0x12fb, 0x0fe3, 0x1674, 0x0f53,
+ 0x0eae, 0x1350, 0x098a, 0x09b1, 0x11e7, 0x0f66,
+ 0x0e73, 0x0a92, 0x0594, 0x0c48, 0x09da, 0x02af,
+ 0x0f48, 0x17be, 0x0f2f, 0x0c78, 0x0afb, 0x0251,
+ 0x02ab, 0x0776, 0x0261, 0xffb2, 0x0161, 0xff9c,
+ 0x0843, 0x10f1, 0x074a, 0x054b, 0x09c8, 0xffff,
+ 0x0223, 0x0c01, 0x054c, 0x06c3, 0x0d47, 0x075e,
+ 0x09b5, 0x0d43, 0x0aa2, 0x1246, 0x171e, 0x16da,
+ 0x17b2, 0x0fe3, 0x11c4, 0x1907, 0x0f3b, 0x103f,
+ 0x17df, 0x0d3c, 0x0f5e, 0x1ad4, 0x14e2, 0x13eb,
+ 0x1afa, 0x1ac3, 0x171c, 0x1145, 0x1340, 0x1a30,
+ 0x17af, 0x1789, 0x15c6, 0x0d0b, 0x1083, 0x1266,
+ 0x0c3c, 0x1231, 0x15c2, 0x13f2, 0x143e, 0x0682,
+ 0x01ed, 0x0fb9, 0x09e0, 0x03eb, 0x11a3, 0x0f45,
+ 0x0694, 0x104b, 0x1506, 0x0c27, 0x09fa, 0x1434,
+ 0x15c8, 0x07dd, 0x090f, 0x1614, 0x12ec, 0x13ef,
+ 0x1ab7, 0x0bbf, 0x00fb, 0x0e1a, 0x189f, 0x1685,
+ 0x0d71, 0x085c, 0x0e07, 0x0fb3, 0x112c, 0x182d,
+ 0x1136, 0x0a5c, 0x1308, 0x11ef, 0x0dca, 0x1589,
+ 0x15e4, 0x18b5, 0x22b7, 0x16d2, 0x0aea, 0x1880,
+ 0x1bf6, 0x1284, 0x18cc, 0x1d2a, 0x132a, 0x0e44,
+ 0x1196, 0x15c8, 0x154a, 0x11cb, 0x1a31, 0x2389,
+ 0x1a4c, 0x1256, 0x11fc, 0x09ce, 0x0bce, 0x18e4,
+ 0x1298, 0x058e, 0x096f, 0x0e76, 0x0710, 0xffc3,
+ 0x0a79, 0x1802, 0x0afe, 0x00f3, 0x11af, 0x118c,
+ 0x03bf, 0x0b68, 0x0d51, 0x08e9, 0x138f, 0x0cdc,
+ 0x000a, 0x0e6b, 0x1071, 0xfeea, 0xfe89, 0x027c,
+ 0x00e6, 0x02eb, 0x01ae, 0x0252, 0x04a9, 0x0308,
+ 0x07da, 0x0a3c, 0x05fb, 0x0768, 0x0346, 0x0180,
+ 0x101e, 0x1599, 0x14a1, 0x195c, 0x0eba, 0x0553,
+ 0x0f1d, 0x149e, 0x182f, 0x1bb6, 0x12cc, 0x0f95,
+ 0x12b9, 0x0e86, 0x1086, 0x169f, 0x1565, 0x118f,
+ 0x0e75, 0x104c, 0x0e1e, 0x05f7, 0x0f98, 0x1d59,
+ 0x1ac7, 0x1c85, 0x1ca1, 0x11fb, 0x1109, 0x12e3,
+ 0x1163, 0x0fb5, 0x067d, 0x0c2f, 0x1913, 0x0ab0,
+ 0x07fc, 0x1a01, 0x10aa, 0x088e, 0x1642, 0x14e0,
+ 0x10af, 0x145c, 0x103b, 0x1189, 0x1295, 0x0d67,
+ 0x1408, 0x140c, 0x09e4, 0x1194, 0x193b, 0x1482,
+ 0x18d4, 0x1de4, 0x1bb3, 0x1dac, 0x1f14, 0x20b7,
+ 0x27ca, 0x289a, 0x249a, 0x25bc, 0x24e1, 0x2247,
+ 0x24e6, 0x2189, 0x1628, 0x145a, 0x195c, 0x1780,
+ 0x16cb, 0x1cf4, 0x1ef9, 0x192c, 0x134b, 0x12d5,
+ 0x135c, 0x0f40, 0x0d56, 0x12be, 0x15e1, 0x0fbd,
+ 0x07f7, 0x0747, 0x0853, 0x07fd, 0x0e07, 0x11f4,
+ 0x0cb4, 0x0b68, 0x0879, 0x013d, 0x052c, 0x027e,
+ 0xf5d7, 0xfd64, 0x0683, 0x0228, 0x0845, 0x0932,
+ 0xff7e, 0x02f8, 0x007e, 0xf8bb, 0x029d, 0x0276,
+ 0xf7cd, 0x00ce, 0x0690, 0xfa9b, 0xf575, 0xfb25,
+ 0xffd6, 0xfe88, 0xfd72, 0x0037, 0xfc9f, 0xf967,
+ 0xff48, 0x01c0, 0x03b9, 0x06af, 0x0150, 0x01af,
+ 0x085e, 0x08a2, 0x08e9, 0x0176, 0xf8b4, 0x04be,
+ 0x0afd, 0x05d6, 0x1206, 0x1547, 0x0862, 0x0b85,
+ 0x0bd8, 0x045b, 0x0a04, 0x079d, 0x0208, 0x0bb6,
+ 0x0a2e, 0x044f, 0x0c88, 0x0cb4, 0x0b4b, 0x0e43,
+ 0x0300, 0x00ab, 0x0c52, 0x07c4, 0x067e, 0x1023,
+ 0x06ab, 0xfca7, 0x02d4, 0x00ec, 0xff29, 0x0d8f,
+ 0x1472, 0x0725, 0xfc2c, 0x0348, 0x0a97, 0x0384,
+ 0x000d, 0x02ea, 0xfbcb, 0xf732, 0xfd9b, 0xff50,
+ 0xfdef, 0x0008, 0xff15, 0xf9a8, 0xf47f, 0xf828,
+ 0x0112, 0xfff9, 0xfefc, 0x0709, 0x0776, 0x0635,
+ 0x0ced, 0x0c75, 0x09db, 0x0b01, 0x02c7, 0xfe66,
+ 0x0523, 0x01a3, 0xfaf9, 0xff58, 0x01ab, 0x0044,
+ 0x0171, 0x0232, 0x04b1, 0x04ec, 0xff04, 0xfe4c,
+ 0x01bb, 0xffaa, 0xfe11, 0x013c, 0x044b, 0x02b3,
+ 0xfd3e, 0xfebf, 0x0544, 0x035e, 0x02d9, 0x08f8,
+ 0x06f6, 0x03b4, 0x0477, 0xfde0, 0xfc7a, 0x0276,
+ 0xfafd, 0xf2f1, 0xf6e2, 0xf4fb, 0xefb4, 0xf02e,
+ 0xef17, 0xf094, 0xf6c4, 0xf7e2, 0xf440, 0xf13b,
+ 0xf0d4, 0xf22c, 0xf4f6, 0xf961, 0xf604, 0xee7c,
+ 0xf2a4, 0xf596, 0xf290, 0xfb14, 0xfb5f, 0xeb6f,
+ 0xedcf, 0xf845, 0xf2e0, 0xf516, 0x00c8, 0x00a1,
+ 0xfd5c, 0xfd59, 0xfa5e, 0xfabf, 0xffd4, 0x014b,
+ 0x0116, 0x0415, 0x0503, 0x01a3, 0x00b1, 0x0312,
+ 0x06e9, 0x0a51, 0x0645, 0x01be, 0x05a9, 0x0601,
+ 0x0490, 0x09df, 0x0673, 0xfcee, 0xfd53, 0xfdeb,
+ 0xfd4d, 0x0139, 0xff37, 0xfb6f, 0xfc96, 0xfa06,
+ 0xf892, 0xfb44, 0xf90a, 0xf6eb, 0xf77d, 0xf36a,
+ 0xeeff, 0xed43, 0xeb99, 0xeea5, 0xf27d, 0xee19,
+ 0xebdd, 0xf39b, 0xf643, 0xeecf, 0xeb2c, 0xee55,
+ 0xf0b5, 0xf06c, 0xf196, 0xf556, 0xf421, 0xef7a,
+ 0xef87, 0xec09, 0xe838, 0xf13e, 0xf4de, 0xed4b,
+ 0xefb1, 0xf1b6, 0xea28, 0xeccc, 0xf6fa, 0xf777,
+ 0xefa8, 0xeca0, 0xf165, 0xee69, 0xea88, 0xf544,
+ 0xf620, 0xee23, 0xf6f3, 0xf879, 0xf058, 0xf8dc,
+ 0xfab7, 0xf267, 0xf72e, 0xf7b3, 0xf3bd, 0xf876,
+ 0xf489, 0xecb8, 0xed9e, 0xedea, 0xf0bd, 0xf436,
+ 0xef93, 0xec71, 0xeceb, 0xebce, 0xeb74, 0xe9da,
+ 0xe7f5, 0xeaf9, 0xeea4, 0xea0c, 0xe3a5, 0xeb0c,
+ 0xf104, 0xe64d, 0xe5bc, 0xef3d, 0xe9a7, 0xe5e5,
+ 0xeade, 0xe9ea, 0xea4a, 0xe847, 0xe433, 0xe9cd,
+ 0xe7fb, 0xe2a7, 0xe9f2, 0xe66b, 0xddbf, 0xe4bb,
+ 0xe5f9, 0xe599, 0xf213, 0xf284, 0xea05, 0xf143,
+ 0xfb89, 0xfa51, 0xf917, 0xff7c, 0x012e, 0xf856,
+ 0xf448, 0xf668, 0xf226, 0xed23, 0xed2a, 0xed2b,
+ 0xee4e, 0xf22e, 0xf4fe, 0xf3e5, 0xf140, 0xeff4,
+ 0xeef0, 0xefbc, 0xefef, 0xeea0, 0xf43c, 0xf556,
+ 0xeb4c, 0xed39, 0xf4bc, 0xf335, 0xf5fa, 0xf36e,
+ 0xed6f, 0xf68f, 0xf58c, 0xee2e, 0xf8b6, 0xf540,
+ 0xe9c2, 0xf2f4, 0xf1ab, 0xe8ee, 0xeeec, 0xec27,
+ 0xe67c, 0xe983, 0xe7a1, 0xeb1f, 0xee87, 0xe8c0,
+ 0xeed9, 0xf539, 0xef98, 0xf1fd, 0xf49b, 0xefdd,
+ 0xf0d5, 0xf339, 0xf462, 0xf4c1, 0xf118, 0xf082,
+ 0xf044, 0xeec4, 0xf306, 0xf1d5, 0xec55, 0xf2d1,
+ 0xfa6c, 0xf8da, 0xf7bc, 0xf74a, 0xf23e, 0xefa9,
+ 0xf667, 0xfa65, 0xf6c1, 0xfcb7, 0x0452, 0xfdf2,
+ 0xfcf3, 0x023e, 0xfdd1, 0xfe3b, 0x0498, 0x0118,
+ 0xfc7b, 0xfb6e, 0xf64c, 0xf1e3, 0xf2e9, 0xf1c8,
+ 0xea16, 0xe6dc, 0xe9da, 0xe7e2, 0xeaa6, 0xf2f3,
+ 0xef30, 0xedb4, 0xf34b, 0xebb4, 0xe66a, 0xeb6a,
+ 0xe8e6, 0xe7cc, 0xea05, 0xe6fb, 0xe679, 0xe20f,
+ 0xddaa, 0xe670, 0xe859, 0xe352, 0xe963, 0xea24,
+ 0xe2b6, 0xe171, 0xe167, 0xe385, 0xe719, 0xe52d,
+ 0xe501, 0xe6bf, 0xe82e, 0xedbb, 0xef3b, 0xecc5,
+ 0xeec4, 0xef57, 0xef69, 0xf37d, 0xf53f, 0xf476,
+ 0xf3ed, 0xf3fb, 0xf3ee, 0xf07d, 0xf1cb, 0xfad6,
+ 0xfaa1, 0xf29e, 0xf2e5, 0xf764, 0xf990, 0xfbc5,
+ 0xfcd4, 0xfbcd, 0xf8f9, 0xf59f, 0xf488, 0xf3b8,
+ 0xf221, 0xf1cb, 0xf06f, 0xeec4, 0xf068, 0xf190,
+ 0xf1b2, 0xf4ca, 0xf58e, 0xf4eb, 0xfa92, 0xfbb7,
+ 0xf545, 0xf722, 0xf8d0, 0xf0ad, 0xeea6, 0xf0ec,
+ 0xf067, 0xf34b, 0xf13b, 0xeed0, 0xf52f, 0xefee,
+ 0xe8b0, 0xf4df, 0xf8a6, 0xf022, 0xf363, 0xf519,
+ 0xf1b0, 0xf4bb, 0xf4d0, 0xf506, 0xf7b8, 0xf253,
+ 0xf01e, 0xf50a, 0xf56e, 0xf706, 0xfaa1, 0xfbbd,
+ 0x0091, 0x03cc, 0x0178, 0x01c9, 0x003f, 0xfa22,
+ 0xfa99, 0xff33, 0xfc73, 0xf888, 0xfc36, 0xfd0c,
+ 0xf7ad, 0xfa37, 0xff77, 0xfad3, 0xf82c, 0xfc83,
+ 0xfc72, 0xf967, 0xf614, 0xee98, 0xe85e, 0xe8cf,
+ 0xeb3f, 0xea70, 0xe827, 0xe9fa, 0xef26, 0xf207,
+ 0xf187, 0xf033, 0xf15f, 0xf56b, 0xf6eb, 0xf46e,
+ 0xf3c7, 0xf4d5, 0xf16f, 0xed40, 0xf055, 0xf506,
+ 0xf334, 0xefd5, 0xf11d, 0xf363, 0xefd1, 0xec57,
+ 0xf290, 0xf4c8, 0xec30, 0xed1f, 0xf29f, 0xedd6,
+ 0xeeee, 0xf4a3, 0xf173, 0xf11a, 0xf343, 0xf3ad,
+ 0xfaa7, 0xfe19, 0xfc41, 0xff1d, 0xfe8a, 0xfd67,
+ 0xfe63, 0xf93d, 0xfb9b, 0x02a5, 0xff27, 0x0179,
+ 0x0514, 0xfc69, 0xfca7, 0x039b, 0x02ea, 0x0352,
+ 0x0221, 0x012e, 0x0174, 0xf76d, 0xf80d, 0x0625,
+ 0x0114, 0xf90c, 0xfda3, 0xf774, 0xeef3, 0xf0b4,
+ 0xf472, 0xfaa5, 0xfa90, 0xf7b6, 0xfe83, 0xfc4b,
+ 0xf475, 0xf88f, 0xf5d1, 0xf078, 0xf684, 0xf2a2,
+ 0xea32, 0xede8, 0xf10e, 0xf40b, 0xf5ff, 0xefd3,
+ 0xf261, 0xfa23, 0xf5f1, 0xf2f8, 0xf436, 0xf259,
+ 0xf5ae, 0xf68e, 0xeeb0, 0xed05, 0xeed6, 0xecd2,
+ 0xf07c, 0xf6ab, 0xf61e, 0xf3b2, 0xf3d1, 0xf629,
+ 0xf8dd, 0xf816, 0xf4ae, 0xf131, 0xefec, 0xf44a,
+ 0xf8bb, 0xf860, 0xfa0c, 0xfa55, 0xf383, 0xf496,
+ 0xfee8, 0xff0c, 0xfbc9, 0x03f6, 0x09a5, 0x04a3,
+ 0x0117, 0x00e8, 0xfe4d, 0xfaf7, 0xf923, 0xf6ad,
+ 0xf28e, 0xefbb, 0xee02, 0xeb02, 0xec84, 0xf4c3,
+ 0xf99c, 0xf7c3, 0xf6ef, 0xfafd, 0xfef0, 0xfd8b,
+ 0xfc67, 0xfd81, 0xf78c, 0xf16a, 0xf5fd, 0xfa9a,
+ 0xfb99, 0xfcc1, 0xf84e, 0xf514, 0xf768, 0xf598,
+ 0xf582, 0xf7cd, 0xf33b, 0xf1ec, 0xf275, 0xedb2,
+ 0xf321, 0xfb3c, 0xf755, 0xf864, 0xfd33, 0xfc0f,
+ 0x0154, 0x060e, 0x0360, 0x06e4, 0x09c0, 0x05a1,
+ 0x03bb, 0x00c1, 0xfd35, 0xfc1e, 0xf827, 0xf60e,
+ 0xf577, 0xf25d, 0xf4c4, 0xf73b, 0xf5c7, 0xf9e3,
+ 0xfa9f, 0xf5f1, 0xf7f5, 0xf91c, 0xf976, 0xfeea,
+ 0xfd33, 0xf921, 0xfb66, 0xfa0e, 0xf996, 0xfc54,
+ 0xfb10, 0xff3e, 0x03d7, 0xfddb, 0xfd3c, 0x00f8,
+ 0xfc51, 0xfcf6, 0x02fe, 0xfea9, 0xf85f, 0xf9d7,
+ 0xfb88, 0xf9a3, 0xf977, 0xfc42, 0xfa43, 0xf57f,
+ 0xf8fd, 0xfe02, 0xfdb7, 0x00c9, 0x0344, 0xffeb,
+ 0x0094, 0x02cf, 0x01db, 0x05f0, 0x09f5, 0x073f,
+ 0x0640, 0x05a4, 0x02e9, 0x04c2, 0x04ff, 0x01f5,
+ 0x0663, 0x0ac0, 0x06e7, 0x035c, 0x011c, 0xff9d,
+ 0x0333, 0x0724, 0x085d, 0x08e2, 0x0882, 0x0b0e,
+ 0x10b7, 0x13cb, 0x13c0, 0x10bb, 0x0d8f, 0x0e0e,
+ 0x0cc0, 0x0a4c, 0x0b9e, 0x0b68, 0x0ae2, 0x0a49,
+ 0x039b, 0x01a3, 0x068b, 0x0508, 0x0306, 0x03d0,
+ 0x015f, 0x01c5, 0x02e0, 0x04d7, 0x0e59, 0x0f70,
+ 0x06c3, 0x0629, 0x047a, 0xff46, 0x0193, 0x01e5,
+ 0x0054, 0x0347, 0x02e1, 0x01db, 0x0377, 0x053f,
+ 0x0897, 0x05aa, 0xfff3, 0x02a7, 0x0279, 0xfe35,
+ 0xff86, 0xfed5, 0xfe5a, 0x004f, 0xfb37, 0xfb3c,
+ 0x02de, 0x02a1, 0x05ec, 0x0d04, 0x084e, 0x0645,
+ 0x0944, 0x055f, 0x05b7, 0x0667, 0xfedb, 0xfed1,
+ 0x04a9, 0x03ea, 0x03f4, 0x0693, 0x0429, 0x02c3,
+ 0x07cc, 0x09f6, 0x08a0, 0x0ba3, 0x0ca0, 0x08fc,
+ 0x0a4f, 0x0e7b, 0x0fbf, 0x0ed5, 0x0a42, 0x0681,
+ 0x05b6, 0x0102, 0x0045, 0x06e2, 0x0459, 0xff0f,
+ 0x0409, 0x05cf, 0x03b1, 0x05c7, 0x01d3, 0xfa4a,
+ 0xf9b0, 0xfa44, 0xface, 0xfe5c, 0xff9b, 0xfebb,
+ 0x004f, 0x0382, 0x04ad, 0x00d2, 0xfc7b, 0xfcf1,
+ 0xfe04, 0xfdd3, 0xfea6, 0xfee7, 0xfc1c, 0xf889,
+ 0xfabe, 0xfe3c, 0xfc8d, 0xfe27, 0x00f7, 0x0006,
+ 0x037e, 0x058e, 0x039c, 0x045c, 0xff64, 0xfade,
+ 0x0063, 0xfea7, 0xf669, 0xf81e, 0xfbb8, 0xfbcf,
+ 0xfeab, 0xfef1, 0xfcbd, 0xfedd, 0xffce, 0xfed8,
+ 0x0138, 0x0301, 0x021d, 0x00af, 0x01a9, 0x057b,
+ 0x0514, 0x0156, 0x00a4, 0x0026, 0xfe1c, 0xfc8a,
+ 0xfcd6, 0xff0e, 0xff7f, 0xfe37, 0xfeaa, 0xfffa,
+ 0xff80, 0xfc51, 0xf953, 0xf9a8, 0xfb0d, 0xfbf2,
+ 0xfdb0, 0xfe89, 0xfe1a, 0xfe84, 0xfd5d, 0xfb4c,
+ 0xfd50, 0x0097, 0x016d, 0x030c, 0x0721, 0x0b40,
+ 0x0d83, 0x0def, 0x0dca, 0x0e29, 0x0c9f, 0x0a06,
+ 0x0b96, 0x0c7c, 0x0a66, 0x0b12, 0x0b73, 0x0d13,
+ 0x0f6c, 0x09de, 0x0708, 0x0a51, 0x0739, 0x063f,
+ 0x0c31, 0x0e1b, 0x0e1d, 0x11af, 0x15e1, 0x17af,
+ 0x1705, 0x1542, 0x12ec, 0x116f, 0x112e, 0x0e0e,
+ 0x0a77, 0x0e3c, 0x1088, 0x09cc, 0x083f, 0x0a28,
+ 0x0482, 0x037c, 0x06fa, 0x033e, 0xff79, 0xfff3,
+ 0x01c8, 0x044a, 0x0270, 0xfe18, 0xfe2a, 0xfe55,
+ 0xfbf9, 0xfe5a, 0x012d, 0xfd41, 0xfc4e, 0xfe8c,
+ 0xfa88, 0xf798, 0xf99a, 0xf9d7, 0xf910, 0xf756,
+ 0xf4c6, 0xf64b, 0xf7aa, 0xf513, 0xf48d, 0xf366,
+ 0xeeb0, 0xec96, 0xeb8f, 0xecbc, 0xf2c8, 0xf5a0,
+ 0xf68e, 0xf899, 0xf851, 0xfa64, 0xfd42, 0xfc32,
+ 0xfb48, 0xfac8, 0xfa11, 0xf995, 0xf925, 0xfb7f,
+ 0xfe8c, 0xff72, 0x00b9, 0x00ae, 0xfd42, 0xfbea,
+ 0xfd49, 0xfd81, 0xfe7a, 0xfe7b, 0xff99, 0x07a5,
+ 0x0abb, 0x0664, 0x072a, 0x0609, 0x005b, 0x00e6,
+ 0x034c, 0x0283, 0x02e2, 0x02db, 0x00fa, 0x01f4,
+ 0x01b8, 0xfb8a, 0xf9a8, 0xfcb7, 0xfad7, 0xf820,
+ 0xf8b7, 0xf97b, 0xf9a9, 0xfa07, 0xfbac, 0xfd1b,
+ 0xfe73, 0xfff8, 0xfde9, 0xfbd3, 0xfe6f, 0x0013,
+ 0xfe92, 0xff00, 0xfdef, 0xf903, 0xfa50, 0xff26,
+ 0xff5d, 0x022f, 0x04ad, 0x00e5, 0xffbf, 0x030a,
+ 0x0489, 0x00c6, 0xfd98, 0x005e, 0xfe62, 0xf8f9,
+ 0xfbc3, 0xfeea, 0xffd0, 0x043e, 0x0614, 0x0523,
+ 0x05f3, 0x0582, 0x053b, 0x0566, 0x0377, 0x040f,
+ 0x04d2, 0x0405, 0x07c1, 0x078d, 0x024b, 0x02ca,
+ 0x015e, 0xfd31, 0xfe1f, 0xfdae, 0xfbc0, 0xfc79,
+ 0xfc4a, 0xfab4, 0xfa6d, 0xfaa6, 0xf7d0, 0xf723,
+ 0xfc48, 0xfd79, 0xfbe0, 0xff25, 0x007c, 0xfdcb,
+ 0xfddc, 0xfd9b, 0xfab2, 0xfad7, 0xfa8c, 0xf793,
+ 0xf6ff, 0xf5ed, 0xf76c, 0xfd31, 0xfe71, 0xff47,
+ 0x0191, 0x0168, 0x01e4, 0xff84, 0xfcb1, 0xfd8f,
+ 0xfd49, 0xfe5e, 0xff53, 0xfe93, 0x0054, 0x000f,
+ 0xfe45, 0xfd15, 0xfab1, 0xfc23, 0xfef0, 0xfff9,
+ 0x03c4, 0x05b4, 0x0446, 0x05af, 0x0685, 0x04ea,
+ 0x056e, 0x04eb, 0x01b2, 0xff42, 0xfd55, 0xfdce,
+ 0xffa2, 0xfef4, 0xff23, 0xfee9, 0xfbd2, 0xfc64,
+ 0x011c, 0x0234, 0xfefa, 0xff38, 0x0152, 0xfd4d,
+ 0xf90d, 0xf99f, 0xf7ee, 0xf421, 0xf674, 0xfbda,
+ 0xfb52, 0xfb07, 0xfee7, 0xfede, 0xfceb, 0xfb8c,
+ 0xfa6e, 0xfb0e, 0xf92b, 0xf887, 0xfa0f, 0xf8c0,
+ 0xfaee, 0xfbf4, 0xf789, 0xf9b4, 0xfca9, 0xf66f,
+ 0xf3db, 0xf8a3, 0xf7ae, 0xf6c1, 0xfcc4, 0xfd5f,
+ 0xfd47, 0xfec8, 0xf78c, 0xf64e, 0xf9f9, 0xf50d,
+ 0xf61b, 0xfaa4, 0xfa5d, 0xfe24, 0xffaf, 0xfe22,
+ 0x00dc, 0x0259, 0x00f5, 0xfe90, 0xfcc1, 0xfd3d,
+ 0xfb87, 0xf92f, 0xfb6e, 0xfdc8, 0xfd71, 0xfe71,
+ 0x0126, 0x01d9, 0xff2b, 0xfcc3, 0xfc08, 0xfa27,
+ 0xf963, 0xfa3f, 0xfa94, 0xfc1c, 0xfac3, 0xf79c,
+ 0xf976, 0xfa90, 0xf9b4, 0xfb2a, 0xfba9, 0xfc00,
+ 0xfda0, 0xfd48, 0xfa68, 0xf9bb, 0xfc78, 0xfc64,
+ 0xfacf, 0xfa5e, 0xf8fb, 0xf9b1, 0xfbd4, 0xfd49,
+ 0xfcdb, 0xfa69, 0xfb8c, 0xfd91, 0x000a, 0x03db,
+ 0x0244, 0x03f3, 0x092d, 0x081f, 0x07e0, 0x04ee,
+ 0x0070, 0x03ea, 0x01bd, 0xfa13, 0xf9af, 0xf982,
+ 0xf809, 0xfb00, 0xfd5e, 0xfc26, 0xfbb1, 0xfae7,
+ 0xf997, 0xfcc8, 0x0013, 0x00c7, 0x010f, 0xfec0,
+ 0xfed8, 0x0007, 0xfd3f, 0xfe13, 0x0000, 0xfecb,
+ 0xfe47, 0xfb21, 0xf950, 0xfac1, 0xf922, 0xfa52,
+ 0xfbc0, 0xf6e0, 0xf49f, 0xf32f, 0xf1e4, 0xf6ab,
+ 0xf68c, 0xf4db, 0xf995, 0xf96e, 0xfa09, 0xfdb2,
+ 0xfc7b, 0xfda3, 0xfb1a, 0xf7a0, 0xfee0, 0x0066,
+ 0xfea0, 0x04d5, 0x06b8, 0x04dc, 0x03c3, 0x042f,
+ 0x07f0, 0x0827, 0x06d5, 0x0680, 0x03f9, 0x038b,
+ 0x0438, 0x03b4, 0x051d, 0x06c0, 0x068f, 0x0685,
+ 0x0775, 0x09bd, 0x0d43, 0x0c9c, 0x0b58, 0x0fc7,
+ 0x0f19, 0x0c4e, 0x0f1e, 0x0d3c, 0x0c96, 0x0d9b,
+ 0x0766, 0x06d3, 0x09d9, 0x0875, 0x0806, 0x06c3,
+ 0x094e, 0x0b70, 0x05c6, 0x062a, 0x08b0, 0x0669,
+ 0x0918, 0x08cb, 0x0450, 0x0454, 0x013c, 0xfe54,
+ 0xfff1, 0xfe18, 0xfdd7, 0xffa8, 0xfe07, 0xfea1,
+ 0xfec2, 0xfd92, 0x0003, 0xff92, 0xfca3, 0xfc3d,
+ 0xfc7d, 0xfa98, 0xf6f1, 0xf90e, 0xfb26, 0xf6da,
+ 0xf800, 0xfa90, 0xf845, 0xf8f3, 0xfb30, 0xfc3c,
+ 0xfaf6, 0xf9b9, 0xfcfe, 0xfdb7, 0xfc40, 0xfe91,
+ 0xfe49, 0xfb2c, 0xfb62, 0xfb63, 0xf862, 0xf788,
+ 0xf8c0, 0xf985, 0xfcaf, 0xfbed, 0xf788, 0xfaba,
+ 0xfccf, 0xfb61, 0xfd01, 0xfae2, 0xfb77, 0x0009,
+ 0xffe4, 0x01d2, 0x051b, 0x0617, 0x08bf, 0x0a80,
+ 0x09d6, 0x0893, 0x0527, 0xffe0, 0xfe15, 0xfde2,
+ 0xf8e2, 0xf474, 0xf45a, 0xf2dd, 0xf1b7, 0xf3e3,
+ 0xf571, 0xf6d0, 0xf77d, 0xf868, 0xfd72, 0xfea5,
+ 0xfd51, 0x012b, 0x0125, 0xfeec, 0x00b9, 0xfe4c,
+ 0xfb7e, 0xfd99, 0xfc7b, 0xfa3a, 0xfa82, 0xfa5f,
+ 0xfac9, 0xf9b5, 0xf898, 0xf988, 0xf9e4, 0xfae6,
+ 0xfb64, 0xfd2b, 0xffcb, 0xfd7c, 0xfa32, 0xfac0,
+ 0xfdee, 0xfdf9, 0xfe27, 0x02be, 0x00d8, 0xff27,
+ 0x02c2, 0xfe6d, 0xfdcb, 0x03b1, 0xfe35, 0xf9b6,
+ 0xff1f, 0xfe4a, 0xf9ff, 0xfae4, 0xfb44, 0xfa51,
+ 0xfa50, 0xfae1, 0xfc38, 0xfdd6, 0xff37, 0x011a,
+ 0x02a2, 0x0259, 0x01c5, 0xfef9, 0xfcda, 0xffd2,
+ 0xffab, 0xfd62, 0xfe0d, 0xfcea, 0xfbb7, 0xfde8,
+ 0x004f, 0xfded, 0xfac0, 0xfd8e, 0xff20, 0xfb30,
+ 0xf8fe, 0xf8fc, 0xf6c6, 0xf67a, 0xf8e3, 0xf96d,
+ 0xfb2f, 0xfda2, 0xffa6, 0x02e3, 0x02a3, 0xffcf,
+ 0xff28, 0xffe6, 0xfec6, 0xfd3d, 0xfed7, 0xfe35,
+ 0xfad5, 0xfa9e, 0xfa9a, 0xf9cd, 0xfae0, 0xfae3,
+ 0xfb82, 0xfea4, 0xff0c, 0xff66, 0x017b, 0x0136,
+ 0x0037, 0xff88, 0x0036, 0x00e0, 0x00d5, 0x0148,
+ 0x0003, 0x0138, 0x02a3, 0x0157, 0x040a, 0x0774,
+ 0x0800, 0x0815, 0x0803, 0x059c, 0x0198, 0x0027,
+ 0xfeff, 0xfe51, 0xfeb7, 0xfd13, 0xfb7c, 0xf955,
+ 0xf755, 0xf928, 0xfa52, 0xf963, 0xfd10, 0x00e6,
+ 0xff70, 0xff49, 0xff69, 0xfd80, 0xfc53, 0xfb72,
+ 0xfa86, 0xf788, 0xf416, 0xf321, 0xf34f, 0xf261,
+ 0xf102, 0xf10f, 0xf08d, 0xf125, 0xf267, 0xf44e,
+ 0xf909, 0xfa3b, 0xf8f8, 0xf843, 0xf770, 0xf831,
+ 0xf84d, 0xf8f2, 0xf9d2, 0xf8f9, 0xf7d8, 0xf76d,
+ 0xf688, 0xf41a, 0xf4e1, 0xf465, 0xf046, 0xf1bb,
+ 0xf2ff, 0xf00f, 0xf139, 0xf3ab, 0xf2c1, 0xf4b8,
+ 0xf8b0, 0xf976, 0xfc1b, 0x009e, 0x0206, 0x0193,
+ 0x020c, 0x0169, 0xfeaa, 0xfd76, 0xfab6, 0xf765,
+ 0xf657, 0xf38d, 0xf22d, 0xf288, 0xf190, 0xf03f,
+ 0xf104, 0xf36b, 0xf481, 0xf782, 0xf8d4, 0xf842,
+ 0xfbc5, 0xfc8f, 0xf9dc, 0xf98f, 0xfc5e, 0xfd82,
+ 0xfc7c, 0xfe84, 0xfe10, 0xfcf4, 0xffa5, 0xfe9c,
+ 0xfcb7, 0xfe4b, 0xfef8, 0xff22, 0x00f6, 0x019b,
+ 0xff9f, 0xfce0, 0xfbea, 0xfc0c, 0xf9b8, 0xf953,
+ 0xfa1f, 0xf7ab, 0xf8ad, 0xfbdc, 0xfb03, 0xf9f8,
+ 0xfce4, 0xfe91, 0xfcb3, 0xfc6c, 0xfbed, 0xfaeb,
+ 0xf9ea, 0xf939, 0xf88b, 0xf45d, 0xf52d, 0xf80e,
+ 0xf60a, 0xf82c, 0xf9d9, 0xf6d6, 0xf613, 0xf79c,
+ 0xf785, 0xf69f, 0xf634, 0xf47b, 0xf564, 0xf63d,
+ 0xf485, 0xf58c, 0xf611, 0xf773, 0xfa62, 0xfb47,
+ 0xfdf5, 0x009d, 0xffca, 0xfec6, 0xfeb7, 0xfeb9,
+ 0xff78, 0xfe9a, 0xfd6c, 0xfe32, 0xfdcb, 0xff0e,
+ 0x0114, 0x01f9, 0x04a9, 0x05f1, 0x0552, 0x044f,
+ 0x02e7, 0x0119, 0x018b, 0x0357, 0x030a, 0x0639,
+ 0x0717, 0x034d, 0x032e, 0x031d, 0x033c, 0x0257,
+ 0x01b0, 0x02d0, 0xff77, 0xfdb4, 0xfdaa, 0xfc1f,
+ 0xfc07, 0xf964, 0xf705, 0xf7fd, 0xf72a, 0xf677,
+ 0xf883, 0xf830, 0xf930, 0xfd5e, 0xfdd6, 0xff63,
+ 0x018a, 0x00de, 0x009a, 0xfe2a, 0xfc5c, 0xfbd4,
+ 0xf99b, 0xf895, 0xf668, 0xf3c8, 0xf661, 0xf68e,
+ 0xf2db, 0xf58a, 0xf4c0, 0xf10f, 0xf468, 0xf3b0,
+ 0xf3d9, 0xf755, 0xf640, 0xf702, 0xf653, 0xf2d1,
+ 0xf19a, 0xf17b, 0xf1d1, 0xf323, 0xf468, 0xf3ef,
+ 0xf50b, 0xf4f0, 0xf35d, 0xf518, 0xf5bc, 0xf6f3,
+ 0xf7a3, 0xf602, 0xf6f8, 0xf6e6, 0xf68c, 0xf943,
+ 0xfa97, 0xf8cf, 0xf7c2, 0xf808, 0xf6f4, 0xf63c,
+ 0xf701, 0xf6c9, 0xf5d3, 0xf795, 0xf7ce, 0xf5bd,
+ 0xf87b, 0xfa27, 0xf99a, 0xfb0b, 0xfc07, 0xfd4b,
+ 0xfe98, 0x0338, 0x07bc, 0x069a, 0x05d9, 0x0498,
+ 0x0120, 0xfffb, 0x008f, 0xfc59, 0xf80d, 0xf95c,
+ 0xf6ea, 0xf520, 0xf7c4, 0xf730, 0xf7c3, 0xfb51,
+ 0xfcd0, 0xfb64, 0xfcdb, 0xff6a, 0xfe0a, 0xfee4,
+ 0xfff4, 0xfee9, 0xfde7, 0xfb78, 0xfbc2, 0xfe12,
+ 0xfeb6, 0xfffb, 0x01f2, 0x02b5, 0x0341, 0x0333,
+ 0x032d, 0x048b, 0x03e3, 0x0429, 0x05d3, 0x051f,
+ 0x0482, 0x027b, 0x0173, 0x032a, 0x036a, 0x02f4,
+ 0x0406, 0x050e, 0x02f6, 0x02ee, 0x025b, 0xfe2f,
+ 0x0068, 0x022a, 0xfed4, 0xff5c, 0x0133, 0xfecd,
+ 0xfc28, 0xfe0c, 0xff4f, 0x00fd, 0x04a6, 0x0520,
+ 0x0677, 0x0825, 0x0763, 0x05fe, 0x0461, 0x0283,
+ 0xfe53, 0xfbca, 0xfca1, 0xfb9b, 0xf9d1, 0xfac6,
+ 0xfb50, 0xfa33, 0xfb8d, 0xfca6, 0xfdd0, 0x0121,
+ 0x0276, 0x03db, 0x053b, 0x03d0, 0x0236, 0x01eb,
+ 0x0168, 0x0120, 0x015f, 0x0079, 0x01e6, 0x031c,
+ 0x02aa, 0x04a6, 0x0367, 0x0158, 0x0105, 0xff68,
+ 0xffca, 0xff54, 0xfde6, 0xfe46, 0xfdc8, 0xfbf5,
+ 0xfd59, 0x0118, 0x005e, 0x009b, 0x0353, 0x0339,
+ 0x034b, 0x041c, 0x063f, 0x065a, 0x036a, 0x0474,
+ 0x062a, 0x042c, 0x021b, 0x0109, 0x0047, 0x01a8,
+ 0x026c, 0x0189, 0x0431, 0x0754, 0x07a0, 0x0720,
+ 0x0732, 0x080b, 0x06c7, 0x03c4, 0x01d1, 0x018f,
+ 0x0089, 0xfecd, 0xfe78, 0xfdc4, 0xfdaa, 0xfd7c,
+ 0xfd94, 0xff58, 0xffe3, 0x003a, 0xffd3, 0xff2f,
+ 0xfdf8, 0xfb1a, 0xf9cc, 0xf6a0, 0xf3b8, 0xf3e1,
+ 0xf2f0, 0xf265, 0xf26d, 0xf30b, 0xf43a, 0xf4cb,
+ 0xf5c4, 0xf7da, 0xfab5, 0xfb71, 0xfb81, 0xfca0,
+ 0xfc69, 0xfaa4, 0xf8f1, 0xf8f5, 0xf83c, 0xf5fa,
+ 0xf3e0, 0xf219, 0xf2a6, 0xf447, 0xf43d, 0xf441,
+ 0xf5a8, 0xf5be, 0xf550, 0xf6fa, 0xf918, 0xfae2,
+ 0xfb0e, 0xfc00, 0xfe82, 0xff6d, 0x0251, 0x0536,
+ 0x052f, 0x057b, 0x0661, 0x068f, 0x04d4, 0x02f5,
+ 0x0086, 0xfe2c, 0xfc8b, 0xf8d0, 0xf7fb, 0xf945,
+ 0xf8c9, 0xfa0d, 0xfc60, 0xff66, 0x0296, 0x0461,
+ 0x06b7, 0x0a05, 0x0cc6, 0x0f30, 0x106c, 0x0e2a,
+ 0x0c88, 0x0c0e, 0x095c, 0x0880, 0x07a5, 0x045c,
+ 0x0355, 0x0316, 0x0178, 0x0068, 0xffc7, 0x00c3,
+ 0x0293, 0x022c, 0x0302, 0x044c, 0x0489, 0x0751,
+ 0x0824, 0x06fc, 0x075c, 0x07db, 0x0959, 0x09ae,
+ 0x0983, 0x08cb, 0x0541, 0x039e, 0x029b, 0xff39,
+ 0xfdd2, 0xfd25, 0xf938, 0xf704, 0xf6db, 0xf46d,
+ 0xf52c, 0xf791, 0xf8f9, 0xfd17, 0xfef6, 0x0016,
+ 0x02f5, 0x03ed, 0x0639, 0x07e6, 0x06b5, 0x0688,
+ 0x05e6, 0x054f, 0x063b, 0x0526, 0x0383, 0x02b4,
+ 0x0131, 0x016d, 0x01da, 0x01d3, 0x03eb, 0x0467,
+ 0x0338, 0x03c9, 0x0472, 0x0483, 0x05a6, 0x0624,
+ 0x054e, 0x05f9, 0x066b, 0x06be, 0x0966, 0x0bb6,
+ 0x0c81, 0x0ca8, 0x0c7e, 0x0ab8, 0x08db, 0x093c,
+ 0x084e, 0x073f, 0x06ab, 0x043d, 0x0266, 0x0073,
+ 0xfef3, 0xff9f, 0x0116, 0x0242, 0x014f, 0x00b1,
+ 0x01fa, 0x0250, 0x02f2, 0x0404, 0x03a2, 0x03f1,
+ 0x0493, 0x03dc, 0x0431, 0x04d4, 0x04c0, 0x057b,
+ 0x0514, 0x0453, 0x0540, 0x050d, 0x0447, 0x0420,
+ 0x01af, 0xff72, 0xff48, 0xfe1b, 0xfe10, 0xfece,
+ 0xfe88, 0xff49, 0xff34, 0x000c, 0x02b1, 0x03d2,
+ 0x05a5, 0x06e0, 0x0596, 0x0511, 0x0592, 0x0542,
+ 0x0387, 0x0148, 0xff73, 0xfdab, 0xfb10, 0xf9bf,
+ 0xfb1d, 0xfaf2, 0xfa10, 0xfaeb, 0xfaf3, 0xfc65,
+ 0x0022, 0x0307, 0x053e, 0x0638, 0x06b8, 0x07aa,
+ 0x06c0, 0x05de, 0x06a2, 0x0646, 0x0570, 0x0557,
+ 0x049a, 0x0330, 0x00e4, 0xfd56, 0xfae8, 0xf9ed,
+ 0xf82d, 0xf6d7, 0xf5ee, 0xf522, 0xf690, 0xf89b,
+ 0xfac5, 0xfd12, 0xfe93, 0x027a, 0x0756, 0x0a42,
+ 0x0c0e, 0x0af1, 0x086a, 0x0682, 0x030f, 0xff71,
+ 0xfda5, 0xfc29, 0xfa1b, 0xf87e, 0xf7a1, 0xf787,
+ 0xf8a0, 0xf9f5, 0xfbe2, 0xfe6e, 0xffa3, 0x013d,
+ 0x03bb, 0x04a9, 0x059e, 0x0737, 0x0734, 0x06fd,
+ 0x086b, 0x08ca, 0x0816, 0x0850, 0x06c0, 0x0540,
+ 0x05c5, 0x0477, 0x03d7, 0x03f6, 0x01e0, 0x01de,
+ 0x02a9, 0x0151, 0x00f7, 0x010b, 0x00f9, 0x022c,
+ 0x0358, 0x04f4, 0x0760, 0x07fe, 0x07f7, 0x081a,
+ 0x0536, 0x0260, 0x02f3, 0x02a6, 0x00c3, 0xff6f,
+ 0xfde7, 0xfc57, 0xfac9, 0xfa18, 0xfadd, 0xfba0,
+ 0xfd4d, 0xff48, 0x0063, 0x01ef, 0x0289, 0x0261,
+ 0x033b, 0x0416, 0x048c, 0x04bb, 0x0469, 0x043a,
+ 0x04e5, 0x04f5, 0x041d, 0x0448, 0x04d2, 0x0557,
+ 0x055b, 0x04e1, 0x05aa, 0x05cf, 0x04f5, 0x0380,
+ 0x00bf, 0x0020, 0xffe2, 0xfd84, 0xfd64, 0xfd99,
+ 0xfb9a, 0xfbe1, 0xfd70, 0xfded, 0xffa1, 0x015c,
+ 0x0304, 0x061a, 0x07d6, 0x0859, 0x08fc, 0x0856,
+ 0x07cc, 0x0738, 0x0507, 0x03be, 0x029c, 0x006c,
+ 0xfffa, 0xff82, 0xfe85, 0xfed4, 0xfe65, 0xfdc9,
+ 0xfdd9, 0xfe12, 0xfe11, 0xfc67, 0xfb51, 0xfc5c,
+ 0xfd90, 0xfece, 0x0122, 0x0342, 0x0421, 0x061f,
+ 0x07be, 0x06c3, 0x06b9, 0x07c3, 0x079b, 0x0667,
+ 0x042a, 0x01dc, 0xffc7, 0xfc5a, 0xf8ff, 0xf809,
+ 0xf785, 0xf745, 0xf81f, 0xf7f0, 0xf84b, 0xf9e7,
+ 0xfa93, 0xfb62, 0xfbf5, 0xfbe2, 0xfc2c, 0xfa9b,
+ 0xf85e, 0xf768, 0xf4f4, 0xf39a, 0xf3f3, 0xf255,
+ 0xf2f5, 0xf4c1, 0xf39b, 0xf409, 0xf599, 0xf582,
+ 0xf5d5, 0xf670, 0xf67c, 0xf6cf, 0xf689, 0xf5f8,
+ 0xf6e2, 0xf742, 0xf72e, 0xf82d, 0xf825, 0xf74c,
+ 0xf628, 0xf4b2, 0xf3d2, 0xf389, 0xf391, 0xf2ba,
+ 0xf26d, 0xf361, 0xf31c, 0xf2dd, 0xf40f, 0xf587,
+ 0xf7cd, 0xfa9e, 0xfc41, 0xfdbb, 0xffcb, 0x011b,
+ 0x01e8, 0x029a, 0x02f3, 0x028e, 0x01c9, 0x0186,
+ 0x0103, 0x0060, 0x0067, 0x010a, 0x01e1, 0x0220,
+ 0x020f, 0x02d5, 0x03d4, 0x02fe, 0x0294, 0x044f,
+ 0x0488, 0x03ca, 0x0464, 0x04be, 0x0392, 0x01e0,
+ 0x0157, 0x016e, 0x012e, 0x006c, 0xff98, 0xff76,
+ 0xff25, 0xfe88, 0xfe9c, 0xffb1, 0x007e, 0x001e,
+ 0x0067, 0x00e7, 0x001d, 0xffb4, 0xff88, 0xfe6a,
+ 0xfdce, 0xfd7d, 0xfc84, 0xfc06, 0xfaaf, 0xf824,
+ 0xf72e, 0xf700, 0xf688, 0xf722, 0xf82a, 0xf8af,
+ 0xf973, 0xfa98, 0xfbf2, 0xfd7c, 0xfe9f, 0xffb9,
+ 0x00ec, 0x020c, 0x03b4, 0x0483, 0x03f3, 0x0391,
+ 0x0304, 0x01f1, 0x013e, 0x0101, 0x0063, 0xfee9,
+ 0xfd7a, 0xfd8f, 0xfeb7, 0xff16, 0xff8d, 0x0127,
+ 0x021f, 0x02bd, 0x0401, 0x043e, 0x0361, 0x0312,
+ 0x02e7, 0x01d3, 0x00ff, 0x0189, 0x0190, 0xffbb,
+ 0xfe1d, 0xfd6a, 0xfba2, 0xf9b9, 0xf9cc, 0xfa25,
+ 0xfa07, 0xfbb9, 0xfe82, 0x000d, 0x012e, 0x0233,
+ 0x01d7, 0x01b5, 0x030d, 0x03ec, 0x0440, 0x0583,
+ 0x06d7, 0x072e, 0x06a2, 0x0567, 0x0424, 0x02a8,
+ 0x0071, 0xfeac, 0xfd81, 0xfc4d, 0xfbed, 0xfc31,
+ 0xfc58, 0xfccf, 0xfd40, 0xfdb7, 0xff3a, 0x00a8,
+ 0x0115, 0x01ce, 0x027b, 0x023b, 0x024a, 0x0310,
+ 0x03d8, 0x04a3, 0x04f9, 0x041a, 0x028d, 0x0117,
+ 0xffc1, 0xfeb6, 0xfe3a, 0xfdf5, 0xfd8f, 0xfd29,
+ 0xfc9c, 0xfb69, 0xf9b7, 0xf838, 0xf72c, 0xf64f,
+ 0xf5f1, 0xf636, 0xf645, 0xf6fb, 0xf98c, 0xfb9f,
+ 0xfc09, 0xfcfb, 0xfe13, 0xfe29, 0xfecf, 0xffc6,
+ 0xff8e, 0xfec9, 0xfe02, 0xfdd0, 0xfe99, 0xfe73,
+ 0xfd25, 0xfcee, 0xfcf7, 0xfb6b, 0xf981, 0xf820,
+ 0xf6b7, 0xf5be, 0xf591, 0xf582, 0xf5d7, 0xf6e4,
+ 0xf7cb, 0xf8f1, 0xfb0c, 0xfcc8, 0xfe01, 0xff36,
+ 0xff1d, 0xff32, 0x016f, 0x02e1, 0x02ac, 0x02f5,
+ 0x0233, 0x008b, 0x00a3, 0x00db, 0x0078, 0x0142,
+ 0x0199, 0x011c, 0x0215, 0x038b, 0x04b7, 0x06ff,
+ 0x0958, 0x0a86, 0x0b93, 0x0c97, 0x0cdf, 0x0cea,
+ 0x0cd7, 0x0b93, 0x097e, 0x0835, 0x074d, 0x05f5,
+ 0x04fb, 0x03f6, 0x0251, 0x014f, 0x00ae, 0xffcb,
+ 0x001c, 0x0187, 0x02b9, 0x03f0, 0x04c2, 0x04d0,
+ 0x0529, 0x0569, 0x04d8, 0x04b3, 0x0578, 0x0645,
+ 0x069f, 0x0620, 0x0490, 0x0262, 0x001a, 0xfde2,
+ 0xfb6d, 0xf865, 0xf581, 0xf448, 0xf4ba, 0xf501,
+ 0xf4d4, 0xf5ea, 0xf82d, 0xfa2c, 0xfc21, 0xfe8d,
+ 0x0105, 0x0318, 0x03f6, 0x03ad, 0x03b5, 0x03cb,
+ 0x02e3, 0x020e, 0x0182, 0xffeb, 0xfe03, 0xfceb,
+ 0xfc09, 0xfb70, 0xfbaa, 0xfc59, 0xfcfe, 0xfcba,
+ 0xfb58, 0xfa71, 0xfa86, 0xfaa8, 0xfb0d, 0xfbb0,
+ 0xfc2b, 0xfd51, 0xfec8, 0xff47, 0xff93, 0x0027,
+ 0x0022, 0xffab, 0xff13, 0xfeac, 0xff76, 0x00d8,
+ 0x01f5, 0x037c, 0x042b, 0x0296, 0x0102, 0x007a,
+ 0xff7d, 0xfecb, 0xff42, 0xffde, 0x009a, 0x0193,
+ 0x02ad, 0x0474, 0x058f, 0x0517, 0x04f1, 0x04a1,
+ 0x02cf, 0x019b, 0x0163, 0x00a6, 0x004f, 0xffe7,
+ 0xfeae, 0xff42, 0x013b, 0x018b, 0x0137, 0x015c,
+ 0x00ca, 0x0021, 0x0042, 0x00a0, 0x00be, 0x0041,
+ 0xffe1, 0xfff1, 0xff30, 0xfeba, 0x002e, 0x01a5,
+ 0x027f, 0x03e3, 0x04c3, 0x050b, 0x058d, 0x0531,
+ 0x0447, 0x0357, 0x00d8, 0xfda8, 0xfb7f, 0xf942,
+ 0xf72f, 0xf6d3, 0xf786, 0xf891, 0xf9d1, 0xfae3,
+ 0xfc1e, 0xfd6f, 0xfe70, 0xffcf, 0x01a1, 0x02fc,
+ 0x032f, 0x024e, 0x01cd, 0x0274, 0x0338, 0x03ad,
+ 0x036d, 0x01b4, 0xffca, 0xfe8a, 0xfcd7, 0xfadd,
+ 0xf95a, 0xf7ec, 0xf68f, 0xf609, 0xf728, 0xf923,
+ 0xfa4f, 0xfb42, 0xfc5b, 0xfc92, 0xfd74, 0xffb7,
+ 0x010f, 0x01e7, 0x0339, 0x03d6, 0x04a2, 0x0604,
+ 0x0633, 0x05f8, 0x0634, 0x05fd, 0x05ee, 0x05f6,
+ 0x053f, 0x0533, 0x0622, 0x06c2, 0x0771, 0x086e,
+ 0x092f, 0x09f8, 0x0a89, 0x0a37, 0x0943, 0x0832,
+ 0x07c1, 0x0859, 0x08c4, 0x07d7, 0x066e, 0x055c,
+ 0x03eb, 0x01cd, 0xff8d, 0xfd56, 0xfbfa, 0xfc49,
+ 0xfd34, 0xfdb3, 0xfde6, 0xfd93, 0xfcc4, 0xfc3f,
+ 0xfc65, 0xfd0c, 0xfe14, 0xff9b, 0x00df, 0x00d6,
+ 0x0067, 0xfff4, 0xfe67, 0xfd38, 0xfd1a, 0xfbf7,
+ 0xfb0c, 0xfb8c, 0xfae4, 0xf9ce, 0xfa40, 0xfa97,
+ 0xfb0d, 0xfc8c, 0xfdc8, 0xff3b, 0x00b3, 0x00aa,
+ 0x0098, 0x0102, 0x0097, 0x00ee, 0x02a3, 0x03a8,
+ 0x03d3, 0x03be, 0x0321, 0x0211, 0x0139, 0x01d7,
+ 0x03db, 0x052a, 0x04fb, 0x03d8, 0x01b1, 0xfecc,
+ 0xfbcd, 0xf950, 0xf815, 0xf843, 0xf97e, 0xfaec,
+ 0xfb21, 0xfa1a, 0xf902, 0xf844, 0xf83f, 0xf944,
+ 0xfad4, 0xfcab, 0xfea4, 0x005b, 0x0227, 0x0417,
+ 0x0556, 0x05d3, 0x05f4, 0x05af, 0x0544, 0x04ee,
+ 0x049b, 0x048e, 0x0441, 0x02e7, 0x01d6, 0x0209,
+ 0x021f, 0x021d, 0x02c5, 0x0260, 0x0041, 0xfe6e,
+ 0xfdf5, 0xfe87, 0xffdd, 0x01ba, 0x0425, 0x0698,
+ 0x084d, 0x0987, 0x0a40, 0x09ba, 0x083b, 0x06c0,
+ 0x05bc, 0x0515, 0x04ab, 0x0452, 0x035c, 0x0193,
+ 0xffb9, 0xfe7b, 0xfebd, 0x0098, 0x024b, 0x0380,
+ 0x051e, 0x05bb, 0x04ad, 0x03be, 0x02e4, 0x0124,
+ 0xff8f, 0xfef7, 0xfe98, 0xfe16, 0xfde2, 0xfdcd,
+ 0xfd58, 0xfcce, 0xfc6a, 0xfc3d, 0xfc99, 0xfcb2,
+ 0xfbe2, 0xfb23, 0xfa95, 0xfa02, 0xf9f0, 0xf989,
+ 0xf8f0, 0xf9e0, 0xfb79, 0xfcc2, 0xfecf, 0x00a3,
+ 0x009a, 0xff4a, 0xfd47, 0xfaec, 0xf954, 0xf902,
+ 0xf92d, 0xf921, 0xf94e, 0xf971, 0xf8fa, 0xf989,
+ 0xfb24, 0xfb8f, 0xfbe9, 0xfd0a, 0xfd16, 0xfd66,
+ 0xfee9, 0xff62, 0xffac, 0x00cf, 0x0148, 0x0200,
+ 0x0365, 0x03e8, 0x04a4, 0x05ed, 0x0611, 0x062a,
+ 0x079e, 0x09a5, 0x0bf7, 0x0e51, 0x0fac, 0x0f97,
+ 0x0e62, 0x0cd5, 0x0b54, 0x09a2, 0x0838, 0x07c0,
+ 0x079a, 0x06cd, 0x05a8, 0x0500, 0x047e, 0x03b1,
+ 0x0327, 0x02d0, 0x027c, 0x02e7, 0x0375, 0x0312,
+ 0x02d3, 0x02fe, 0x01d5, 0xffdd, 0xff10, 0xfee5,
+ 0xfec2, 0xffe6, 0x016b, 0x013e, 0x006b, 0xffed,
+ 0xfeb1, 0xfd6d, 0xfcc9, 0xfb8a, 0xfa85, 0xfaf9,
+ 0xfb69, 0xfb2b, 0xfae5, 0xfa53, 0xf9bd, 0xf9e8,
+ 0xfad8, 0xfc7b, 0xfe68, 0x0003, 0x0105, 0x00cb,
+ 0xff78, 0xfe23, 0xfcf0, 0xfbe2, 0xfb4a, 0xfa9e,
+ 0xfa47, 0xfb45, 0xfc74, 0xfd35, 0xff0d, 0x0196,
+ 0x0309, 0x0390, 0x0394, 0x0296, 0x00b1, 0xfe8a,
+ 0xfce1, 0xfc0a, 0xfba1, 0xfc09, 0xfd80, 0xfe99,
+ 0xfe97, 0xfe0b, 0xfd15, 0xfc44, 0xfc66, 0xfd33,
+ 0xfe54, 0xff9b, 0x00b4, 0x0182, 0x01b8, 0x01e0,
+ 0x033c, 0x0561, 0x076b, 0x0976, 0x0ae5, 0x0b00,
+ 0x09e9, 0x07ee, 0x064c, 0x05f9, 0x0621, 0x062b,
+ 0x05f8, 0x0521, 0x0420, 0x0392, 0x034a, 0x02ec,
+ 0x01ff, 0x0077, 0xff25, 0xff36, 0x0154, 0x03c0,
+ 0x0430, 0x0389, 0x02b5, 0x009b, 0xfe33, 0xfd6f,
+ 0xfdc6, 0xfe3f, 0xfe6e, 0xfd87, 0xfbe7, 0xfb3a,
+ 0xfc0a, 0xfd75, 0xff06, 0x0085, 0x0110, 0x007c,
+ 0xff86, 0xfe60, 0xfd65, 0xfc91, 0xfb0d, 0xf9c1,
+ 0xfa20, 0xfb77, 0xfd4d, 0xff9c, 0x00f7, 0x009c,
+ 0xff78, 0xfea1, 0xfe41, 0xfdb1, 0xfd6f, 0xfe68,
+ 0xffa2, 0x00ab, 0x0285, 0x0479, 0x0526, 0x04c6,
+ 0x045c, 0x041c, 0x02d7, 0x005c, 0xfe48, 0xfd2f,
+ 0xfd1c, 0xfe42, 0xff3b, 0xff39, 0xfebe, 0xfd5f,
+ 0xfbd5, 0xfb93, 0xfc42, 0xfde0, 0xffd0, 0x0013,
+ 0xffd1, 0x0106, 0x0243, 0x02a7, 0x02dd, 0x0262,
+ 0x015b, 0x00ee, 0x0147, 0x0295, 0x055d, 0x08bc,
+ 0x0a9a, 0x0a37, 0x095e, 0x09d4, 0x0b4f, 0x0d0a,
+ 0x0e88, 0x0eee, 0x0e22, 0x0d8e, 0x0e49, 0x0fcd,
+ 0x10d5, 0x109c, 0x0fae, 0x0f74, 0x105f, 0x11b9,
+ 0x12e9, 0x12f8, 0x116c, 0x1040, 0x10db, 0x1222,
+ 0x139e, 0x152c, 0x1522, 0x1338, 0x1125, 0x0fda,
+ 0x0f44, 0x0ebc, 0x0d7b, 0x0b9f, 0x096b, 0x074f,
+ 0x0712, 0x0999, 0x0c98, 0x0d40, 0x0b4f, 0x08ad,
+ 0x0757, 0x07db, 0x0972, 0x0ab3, 0x09ec, 0x06b0,
+ 0x02d3, 0x00a7, 0x0109, 0x02cc, 0x03ab, 0x02e4,
+ 0x012d, 0xfeb2, 0xfc65, 0xfb8f, 0xfb0a, 0xfa19,
+ 0xf9d0, 0xf952, 0xf76a, 0xf51a, 0xf2dd, 0xf0e2,
+ 0xf021, 0xf002, 0xef57, 0xee1f, 0xebb3, 0xe636,
+ 0xdc0b, 0xcdb7, 0xbefe, 0xb43b, 0xaf22, 0xaec5,
+ 0xb0e9, 0xb420, 0xb85c, 0xbd32, 0xc298, 0xc9a6,
+ 0xd144, 0xd5fb, 0xd6ca, 0xd5fe, 0xd5be, 0xd6dc,
+ 0xd974, 0xdd31, 0xe1bd, 0xe64a, 0xe9b0, 0xec84,
+ 0xf020, 0xf424, 0xf7f5, 0xfb3b, 0xfd11, 0xfdff,
+ 0xff31, 0x0097, 0x0249, 0x037d, 0x02d5, 0x018d,
+ 0x00ba, 0x004f, 0x0261, 0x0717, 0x0b05, 0x0d2b,
+ 0x0e35, 0x0e3f, 0x0ef5, 0x1134, 0x13a1, 0x15e2,
+ 0x17f9, 0x1938, 0x19a9, 0x1a03, 0x1b49, 0x1e26,
+ 0x21f5, 0x2571, 0x278d, 0x285c, 0x2909, 0x29ec,
+ 0x2ae3, 0x2c84, 0x2e86, 0x2fe0, 0x308f, 0x30dd,
+ 0x304a, 0x2e4e, 0x2b80, 0x2898, 0x250a, 0x210c,
+ 0x1e4b, 0x1cd9, 0x1b98, 0x1aba, 0x1a55, 0x1972,
+ 0x1809, 0x1776, 0x1810, 0x1843, 0x17aa, 0x1770,
+ 0x16ce, 0x1485, 0x116e, 0x0e2d, 0x0b0d, 0x0952,
+ 0x0930, 0x099c, 0x0a1c, 0x0a25, 0x08a8, 0x0563,
+ 0x016b, 0xfdab, 0xfa4a, 0xf806, 0xf752, 0xf7c4,
+ 0xfa03, 0xfde2, 0x0119, 0x02de, 0x0348, 0x01dc,
+ 0xffde, 0xfe64, 0xfcf3, 0xfc52, 0xfcdd, 0xfdab,
+ 0xfee7, 0xfff7, 0xffff, 0x005b, 0x018a, 0x027e,
+ 0x0325, 0x0396, 0x0469, 0x0635, 0x0768, 0x0713,
+ 0x062a, 0x048b, 0x0250, 0x0118, 0x0170, 0x024c,
+ 0x023b, 0x00f0, 0xff8f, 0xfe1a, 0xfbd1, 0xf9c4,
+ 0xf8d7, 0xf85d, 0xf84b, 0xf961, 0xfbf5, 0xff53,
+ 0x01bf, 0x02b5, 0x030b, 0x0271, 0x00d4, 0xff6d,
+ 0xfe44, 0xfce1, 0xfc28, 0xfc9f, 0xfd92, 0xfe12,
+ 0xfdb5, 0xfd4e, 0xfd64, 0xfcad, 0xfad7, 0xf92c,
+ 0xf797, 0xf596, 0xf3f7, 0xf2ec, 0xf22c, 0xf25a,
+ 0xf30e, 0xf29e, 0xf09e, 0xed6c, 0xe922, 0xe4ab,
+ 0xe13a, 0xdf47, 0xdef4, 0xdf7f, 0xdf93, 0xdf28,
+ 0xdec0, 0xde89, 0xdf23, 0xe0f4, 0xe3ef, 0xe7f9,
+ 0xebec, 0xeecb, 0xf0e0, 0xf1af, 0xf0b5, 0xeee7,
+ 0xed1e, 0xec7f, 0xee00, 0xf03f, 0xf203, 0xf34d,
+ 0xf2ef, 0xf0b4, 0xee43, 0xec47, 0xeb36, 0xebdd,
+ 0xee0e, 0xf194, 0xf5d7, 0xf97c, 0xfbf3, 0xfcb2,
+ 0xfb44, 0xf928, 0xf816, 0xf86f, 0xfa2a, 0xfce2,
+ 0xffca, 0x01df, 0x028f, 0x02bc, 0x0343, 0x03cd,
+ 0x0437, 0x0484, 0x04cb, 0x0597, 0x0674, 0x06fc,
+ 0x0859, 0x0a99, 0x0c39, 0x0cf1, 0x0d85, 0x0e4e,
+ 0x0f22, 0x0f9e, 0x0f62, 0x0e17, 0x0c4a, 0x0b3b,
+ 0x0aea, 0x0ae5, 0x0b91, 0x0c84, 0x0cfc, 0x0d74,
+ 0x0e75, 0x0ff1, 0x115e, 0x11d0, 0x1188, 0x118d,
+ 0x120a, 0x131f, 0x149f, 0x1563, 0x14f0, 0x13b3,
+ 0x11f3, 0x1018, 0x0e19, 0x0b63, 0x0845, 0x0554,
+ 0x02a4, 0x0111, 0x0156, 0x0272, 0x03c9, 0x05ce,
+ 0x07c3, 0x08ff, 0x0a4b, 0x0b2a, 0x0ad3, 0x0aa4,
+ 0x0b0a, 0x0abc, 0x09ec, 0x0925, 0x0842, 0x07fd,
+ 0x0836, 0x07a8, 0x06af, 0x060c, 0x052c, 0x041e,
+ 0x03d7, 0x048a, 0x0551, 0x0522, 0x0471, 0x049a,
+ 0x058e, 0x0694, 0x07da, 0x0931, 0x09c0, 0x0938,
+ 0x07b5, 0x05f9, 0x0555, 0x05d4, 0x06a0, 0x07b6,
+ 0x08ae, 0x08ad, 0x083c, 0x07fc, 0x07d7, 0x0850,
+ 0x094f, 0x0998, 0x08fe, 0x0848, 0x082f, 0x0915,
+ 0x0a3f, 0x0afd, 0x0ba7, 0x0bdd, 0x0b19, 0x09da,
+ 0x081a, 0x05cf, 0x03e9, 0x029d, 0x0173, 0x0058,
+ 0xff46, 0xfe75, 0xfde8, 0xfd41, 0xfd0d, 0xfd7d,
+ 0xfd55, 0xfc62, 0xfb85, 0xfae1, 0xfa99, 0xfa9a,
+ 0xf9ec, 0xf874, 0xf726, 0xf606, 0xf46f, 0xf2a8,
+ 0xf136, 0xef90, 0xed40, 0xeaed, 0xe8f7, 0xe6cb,
+ 0xe44f, 0xe236, 0xe0f1, 0xe01e, 0xdf43, 0xde34,
+ 0xdc77, 0xd9eb, 0xd7b2, 0xd66a, 0xd5e9, 0xd683,
+ 0xd7a0, 0xd84b, 0xd941, 0xda5b, 0xda60, 0xda5d,
+ 0xdb74, 0xdd11, 0xdf94, 0xe360, 0xe756, 0xeac9,
+ 0xeda2, 0xef93, 0xf099, 0xf0f0, 0xf112, 0xf158,
+ 0xf1ac, 0xf254, 0xf35c, 0xf3fc, 0xf462, 0xf58e,
+ 0xf76d, 0xf8fd, 0xf9ec, 0xfb19, 0xfc8d, 0xfd40,
+ 0xfde8, 0xff65, 0x0066, 0x00d4, 0x0239, 0x0457,
+ 0x064a, 0x0827, 0x09e8, 0x0b13, 0x0b16, 0x0a7d,
+ 0x0a62, 0x0a1d, 0x09a7, 0x0ab1, 0x0c60, 0x0ce8,
+ 0x0d27, 0x0d5b, 0x0c96, 0x0b98, 0x0b19, 0x0a99,
+ 0x0a14, 0x09f7, 0x0a0a, 0x0978, 0x0858, 0x07d3,
+ 0x07ba, 0x0705, 0x0601, 0x058d, 0x05fe, 0x06bb,
+ 0x0693, 0x0606, 0x0674, 0x0752, 0x07bc, 0x0825,
+ 0x0928, 0x0ad9, 0x0c86, 0x0d88, 0x0e1f, 0x0e68,
+ 0x0e6c, 0x0e60, 0x0d96, 0x0bc5, 0x09b8, 0x0797,
+ 0x058b, 0x03fb, 0x025c, 0x00ca, 0xfff7, 0xff4e,
+ 0xfe58, 0xfd6f, 0xfcd1, 0xfc9d, 0xfc40, 0xfb46,
+ 0xfaab, 0xfad9, 0xfb26, 0xfb9c, 0xfc59, 0xfcfe,
+ 0xfd47, 0xfd09, 0xfcc9, 0xfcf3, 0xfd0d, 0xfd90,
+ 0xfeed, 0xffd0, 0xffe4, 0x0006, 0xff89, 0xfdca,
+ 0xfbdf, 0xfa9e, 0xfa0a, 0xfa0b, 0xfa4b, 0xfa81,
+ 0xfad0, 0xfb4a, 0xfb88, 0xfb65, 0xfb37, 0xfabb,
+ 0xf9da, 0xf9b8, 0xfaaf, 0xfbe7, 0xfd1b, 0xfe3c,
+ 0xfefe, 0xff7d, 0xfff0, 0x00c9, 0x0232, 0x0374,
+ 0x0471, 0x0561, 0x05cb, 0x05fa, 0x0658, 0x0641,
+ 0x05e3, 0x0575, 0x042c, 0x02a1, 0x01db, 0x014e,
+ 0x00f5, 0x0175, 0x0234, 0x0261, 0x0234, 0x0246,
+ 0x02d3, 0x03b2, 0x04da, 0x062e, 0x0742, 0x082b,
+ 0x0933, 0x0a22, 0x0aaf, 0x0acd, 0x0a94, 0x09f1,
+ 0x08b4, 0x0783, 0x0711, 0x06c4, 0x0629, 0x05a5,
+ 0x0500, 0x03e1, 0x02d5, 0x0242, 0x01ba, 0x0100,
+ 0x00a5, 0x00e0, 0x00fb, 0x00d7, 0x00e7, 0x00e0,
+ 0x007d, 0xfff5, 0xff16, 0xfdbc, 0xfc60, 0xfb69,
+ 0xfacc, 0xfa47, 0xf9d6, 0xf984, 0xf916, 0xf8b7,
+ 0xf8d7, 0xf949, 0xf9ea, 0xfacc, 0xfbb9, 0xfcd1,
+ 0xfe21, 0xfef0, 0xff04, 0xfedb, 0xfe71, 0xfdc9,
+ 0xfd33, 0xfc74, 0xfb8d, 0xfb0e, 0xfacd, 0xfa53,
+ 0xf9fb, 0xfa0e, 0xfa61, 0xfad7, 0xfb30, 0xfb89,
+ 0xfc58, 0xfd49, 0xfdfc, 0xfed0, 0xffd4, 0x00d1,
+ 0x01cb, 0x0277, 0x02ba, 0x02d0, 0x02ac, 0x0270,
+ 0x0236, 0x01f6, 0x0250, 0x0381, 0x04cb, 0x05f6,
+ 0x06ec, 0x0736, 0x071e, 0x071e, 0x0740, 0x07be,
+ 0x0868, 0x08cf, 0x0929, 0x0955, 0x08f5, 0x0883,
+ 0x0872, 0x08a4, 0x08e0, 0x08e9, 0x08f7, 0x0937,
+ 0x091c, 0x08c5, 0x08de, 0x090a, 0x08ff, 0x0957,
+ 0x0a4d, 0x0b84, 0x0c79, 0x0cd9, 0x0ce3, 0x0cb2,
+ 0x0c01, 0x0b06, 0x0a36, 0x0991, 0x08b5, 0x078a,
+ 0x0690, 0x05e8, 0x0545, 0x04e3, 0x04ad, 0x0458,
+ 0x0449, 0x0410, 0x033a, 0x02d0, 0x02cd, 0x026d,
+ 0x023d, 0x0227, 0x01ca, 0x01c8, 0x01e5, 0x01de,
+ 0x01fa, 0x0190, 0x00d9, 0x009a, 0x000d, 0xff6d,
+ 0xff90, 0xff9f, 0xff8b, 0xffd0, 0xffb4, 0xff94,
+ 0x002d, 0x00c9, 0x0129, 0x01a9, 0x020e, 0x0242,
+ 0x023d, 0x01e6, 0x017a, 0x0115, 0x009e, 0x002a,
+ 0xfff6, 0xffe9, 0xffe6, 0x0074, 0x01a7, 0x02c2,
+ 0x03cd, 0x04f1, 0x0624, 0x07f1, 0x09bb, 0x0aaf,
+ 0x0bee, 0x0d93, 0x0e6e, 0x0edf, 0x0f0b, 0x0e77,
+ 0x0da8, 0x0ca6, 0x0b45, 0x09e6, 0x084f, 0x06fd,
+ 0x06a3, 0x0622, 0x0538, 0x0516, 0x0562, 0x0560,
+ 0x0575, 0x05c8, 0x0609, 0x0616, 0x0629, 0x067c,
+ 0x06a7, 0x0677, 0x0652, 0x0626, 0x05b3, 0x0532,
+ 0x04ca, 0x0478, 0x044e, 0x0424, 0x03d1, 0x037b,
+ 0x0351, 0x0320, 0x02a1, 0x020e, 0x01b7, 0x017e,
+ 0x013c, 0x0107, 0x00eb, 0x00ab, 0x0018, 0xff60,
+ 0xfeb9, 0xfe11, 0xfd7a, 0xfd3c, 0xfd2c, 0xfd12,
+ 0xfd3e, 0xfda5, 0xfde8, 0xfe43, 0xfed2, 0xff4a,
+ 0xffcb, 0x0011, 0xffc5, 0xffbf, 0x0020, 0x0027,
+ 0x0044, 0x0081, 0x0009, 0xff3c, 0xfe4e, 0xfcfe,
+ 0xfc17, 0xfbb8, 0xfb57, 0xfb50, 0xfb64, 0xfb00,
+ 0xfac9, 0xfb07, 0xfb41, 0xfb4a, 0xfb27, 0xfb4f,
+ 0xfbfd, 0xfc95, 0xfd2c, 0xfe4f, 0xff88, 0x0031,
+ 0x002b, 0xff75, 0xfeaa, 0xfea4, 0xff0a, 0xff18,
+ 0xff29, 0xff90, 0xffa9, 0xff75, 0xff8f, 0xffc2,
+ 0xffc2, 0xffde, 0x0038, 0x00b8, 0x0135, 0x0191,
+ 0x0193, 0x010d, 0x006b, 0x0005, 0xff72, 0xfeae,
+ 0xfde3, 0xfce9, 0xfc47, 0xfc20, 0xfbd7, 0xfbd0,
+ 0xfc55, 0xfcee, 0xfdd5, 0xfeef, 0xffd1, 0x00df,
+ 0x01e0, 0x0252, 0x02ea, 0x03d4, 0x0466, 0x0486,
+ 0x044f, 0x03c0, 0x02d7, 0x01cd, 0x0161, 0x0180,
+ 0x0153, 0x0142, 0x01bc, 0x01c9, 0x014b, 0x0155,
+ 0x01ee, 0x026c, 0x02c3, 0x031e, 0x0386, 0x040c,
+ 0x0474, 0x0474, 0x0452, 0x0468, 0x047a, 0x0451,
+ 0x0410, 0x03ce, 0x0399, 0x03b5, 0x0404, 0x0410,
+ 0x0405, 0x042b, 0x040e, 0x03af, 0x038f, 0x038c,
+ 0x03a6, 0x043c, 0x04e4, 0x0527, 0x052b, 0x04f9,
+ 0x0493, 0x0409, 0x0360, 0x02db, 0x02a7, 0x02c0,
+ 0x0339, 0x03da, 0x0466, 0x04fe, 0x05ca, 0x06e5,
+ 0x0835, 0x095e, 0x0a4d, 0x0b22, 0x0bea, 0x0ca6,
+ 0x0d2d, 0x0da6, 0x0e23, 0x0ded, 0x0d04, 0x0c35,
+ 0x0b4f, 0x0a0c, 0x08fb, 0x083a, 0x0796, 0x070f,
+ 0x0677, 0x05ea, 0x05ca, 0x05cb, 0x0571, 0x0500,
+ 0x04d7, 0x04d7, 0x04d4, 0x0480, 0x03b2, 0x02ff,
+ 0x02a0, 0x01e7, 0x00e1, 0x0011, 0xff54, 0xfead,
+ 0xfe37, 0xfd9a, 0xfcc4, 0xfbda, 0xfaf5, 0xfa39,
+ 0xf98e, 0xf91b, 0xf911, 0xf907, 0xf8e3, 0xf8e1,
+ 0xf8d3, 0xf8d4, 0xf8d6, 0xf82b, 0xf6e8, 0xf5c2,
+ 0xf4e2, 0xf423, 0xf387, 0xf33d, 0xf345, 0xf370,
+ 0xf3d3, 0xf473, 0xf525, 0xf5f6, 0xf6cc, 0xf7a6,
+ 0xf8a4, 0xf97a, 0xfa52, 0xfb67, 0xfc3a, 0xfd04,
+ 0xfe12, 0xfe9c, 0xfec4, 0xff22, 0xff35, 0xff0f,
+ 0xff3f, 0xff96, 0xffeb, 0x001f, 0x000a, 0xffe0,
+ 0xffa2, 0xff46, 0xff19, 0xff57, 0xfff9, 0x0083,
+ 0x00d1, 0x019c, 0x02d0, 0x038f, 0x03d4, 0x0411,
+ 0x0462, 0x04b8, 0x0511, 0x0590, 0x05eb, 0x05d9,
+ 0x05c7, 0x05a7, 0x0538, 0x04f5, 0x04c3, 0x044f,
+ 0x0407, 0x03db, 0x038e, 0x0374, 0x036b, 0x034c,
+ 0x0320, 0x0275, 0x016d, 0x00a1, 0xffd1, 0xfebb,
+ 0xfdbb, 0xfd0b, 0xfce7, 0xfd79, 0xfe39, 0xfec9,
+ 0xff99, 0x00aa, 0x0176, 0x0238, 0x033e, 0x0417,
+ 0x04b3, 0x0547, 0x0586, 0x055f, 0x04fe, 0x046c,
+ 0x03b6, 0x02bc, 0x01db, 0x01ad, 0x018a, 0x0102,
+ 0x00b7, 0x0079, 0x0020, 0x004d, 0x0099, 0x0073,
+ 0x004a, 0x0011, 0xff95, 0xff4a, 0xff66, 0xffaa,
+ 0xffbd, 0xff7a, 0xff2a, 0xfec8, 0xfe08, 0xfd41,
+ 0xfccc, 0xfc6c, 0xfbf6, 0xfb6d, 0xfacc, 0xfa40,
+ 0xf9fd, 0xf9e0, 0xf9b7, 0xf9a3, 0xf9d1, 0xfa48,
+ 0xfaf6, 0xfb97, 0xfbf7, 0xfc19, 0xfbda, 0xfb34,
+ 0xfa8c, 0xfa12, 0xf9b6, 0xf9a0, 0xfa17, 0xfb21,
+ 0xfc76, 0xfde0, 0xff66, 0x00e4, 0x0240, 0x038a,
+ 0x048c, 0x053a, 0x061b, 0x0733, 0x081f, 0x08f1,
+ 0x0993, 0x099f, 0x0944, 0x08e4, 0x0877, 0x07eb,
+ 0x0765, 0x06fd, 0x06c9, 0x06c6, 0x06b4, 0x0684,
+ 0x066f, 0x0659, 0x05fa, 0x0575, 0x04ef, 0x0453,
+ 0x03a4, 0x02fd, 0x026a, 0x01ec, 0x0147, 0x0056,
+ 0xff65, 0xfe89, 0xfd82, 0xfc5f, 0xfb56, 0xfa69,
+ 0xf98b, 0xf8ba, 0xf801, 0xf76e, 0xf6ea, 0xf690,
+ 0xf69c, 0xf6cd, 0xf6f2, 0xf75f, 0xf80d, 0xf895,
+ 0xf8c3, 0xf876, 0xf7ed, 0xf778, 0xf6ee, 0xf673,
+ 0xf651, 0xf629, 0xf5e9, 0xf5eb, 0xf60f, 0xf661,
+ 0xf70c, 0xf786, 0xf78c, 0xf7ab, 0xf82d, 0xf8df,
+ 0xf9a7, 0xfaab, 0xfbef, 0xfd09, 0xfda3, 0xfdee,
+ 0xfe2f, 0xfe7b, 0xfed0, 0xff05, 0xff10, 0xff1a,
+ 0xfef9, 0xfe6e, 0xfde4, 0xfda3, 0xfd17, 0xfc21,
+ 0xfb61, 0xfae2, 0xfa77, 0xfa6d, 0xfaaf, 0xfafe,
+ 0xfb84, 0xfc4a, 0xfd23, 0xfdca, 0xfe25, 0xfeaf,
+ 0xff84, 0x0023, 0x0097, 0x0105, 0x0124, 0x011f,
+ 0x013f, 0x015f, 0x018f, 0x01fd, 0x0274, 0x02c7,
+ 0x030c, 0x034d, 0x0395, 0x0424, 0x04d0, 0x04fc,
+ 0x04d2, 0x04ac, 0x040b, 0x0308, 0x0262, 0x01f8,
+ 0x01a5, 0x019f, 0x01ac, 0x01a9, 0x01b4, 0x01d7,
+ 0x023e, 0x02a4, 0x02b7, 0x02df, 0x0333, 0x0369,
+ 0x03b5, 0x03ee, 0x0394, 0x02ef, 0x0278, 0x0209,
+ 0x017d, 0x011f, 0x0117, 0x0124, 0x0148, 0x017e,
+ 0x0157, 0x0105, 0x00ed, 0x008e, 0xffc6, 0xff02,
+ 0xfe2b, 0xfd72, 0xfd25, 0xfcc5, 0xfc59, 0xfc68,
+ 0xfc8f, 0xfc79, 0xfc7a, 0xfc88, 0xfc89, 0xfcd1,
+ 0xfd69, 0xfe00, 0xfe82, 0xfee2, 0xff03, 0xff29,
+ 0xff7f, 0xffaa, 0xffbc, 0x000b, 0x0018, 0xff97,
+ 0xff2a, 0xfec3, 0xfddc, 0xfcf4, 0xfc6c, 0xfbcf,
+ 0xfb30, 0xfb13, 0xfb70, 0xfc16, 0xfce7, 0xfdbf,
+ 0xfeb9, 0xffd7, 0x00f5, 0x0251, 0x03de, 0x0509,
+ 0x05ce, 0x068f, 0x074b, 0x07eb, 0x084b, 0x084f,
+ 0x080e, 0x0750, 0x0620, 0x0522, 0x0460, 0x03b5,
+ 0x0379, 0x0383, 0x03ab, 0x041a, 0x044f, 0x0434,
+ 0x0454, 0x0440, 0x03ae, 0x0329, 0x029b, 0x01f9,
+ 0x01b2, 0x0199, 0x015f, 0x00e9, 0x0004, 0xff0a,
+ 0xfe4b, 0xfd8b, 0xfcef, 0xfc81, 0xfbd9, 0xfb02,
+ 0xfa3f, 0xf9ac, 0xf95b, 0xf8f3, 0xf86e, 0xf85b,
+ 0xf896, 0xf89d, 0xf882, 0xf870, 0xf875, 0xf894,
+ 0xf8a9, 0xf8bc, 0xf8c7, 0xf891, 0xf825, 0xf7ad,
+ 0xf75e, 0xf773, 0xf79f, 0xf782, 0xf773, 0xf7a8,
+ 0xf7db, 0xf810, 0xf87d, 0xf8f7, 0xf950, 0xf9c9,
+ 0xfa8a, 0xfb3d, 0xfbc8, 0xfc65, 0xfcd5, 0xfce7,
+ 0xfce8, 0xfcda, 0xfcb0, 0xfcc1, 0xfd07, 0xfd41,
+ 0xfd66, 0xfd35, 0xfcaf, 0xfc42, 0xfbce, 0xfb33,
+ 0xfafe, 0xfb25, 0xfb2e, 0xfb7f, 0xfc5d, 0xfd35,
+ 0xfdc2, 0xfe11, 0xfe4c, 0xfeef, 0xffe8, 0x009e,
+ 0x011c, 0x0193, 0x01dc, 0x020e, 0x0248, 0x027b,
+ 0x0297, 0x0282, 0x025b, 0x0252, 0x0275, 0x0307,
+ 0x03cb, 0x0425, 0x0488, 0x0536, 0x057b, 0x057f,
+ 0x05b9, 0x05c0, 0x057c, 0x0523, 0x04b0, 0x0467,
+ 0x0456, 0x044a, 0x045b, 0x047d, 0x049a, 0x04a2,
+ 0x0469, 0x044b, 0x0478, 0x047a, 0x048d, 0x04e9,
+ 0x04f3, 0x04e0, 0x050c, 0x04fb, 0x0502, 0x059a,
+ 0x0631, 0x06c0, 0x078a, 0x080d, 0x083e, 0x0859,
+ 0x0824, 0x07b8, 0x073a, 0x0678, 0x05af, 0x050c,
+ 0x044d, 0x03a6, 0x035c, 0x032f, 0x02f9, 0x02b0,
+ 0x0263, 0x0264, 0x02ae, 0x02f8, 0x035c, 0x03d6,
+ 0x0428, 0x0477, 0x04db, 0x050b, 0x04e7, 0x0496,
+ 0x043c, 0x03e2, 0x037b, 0x0317, 0x02c9, 0x0271,
+ 0x01fe, 0x019d, 0x0160, 0x0131, 0x0134, 0x016d,
+ 0x017a, 0x015f, 0x0196, 0x0222, 0x02cb, 0x037f,
+ 0x0405, 0x0478, 0x0526, 0x05c7, 0x0636, 0x06c5,
+ 0x0748, 0x077c, 0x0798, 0x07bb, 0x07d3, 0x07d8,
+ 0x07bd, 0x0779, 0x071c, 0x06dd, 0x06d5, 0x06da,
+ 0x0709, 0x0767, 0x078b, 0x078d, 0x07a1, 0x0767,
+ 0x06fc, 0x06ba, 0x065a, 0x05e7, 0x05a0, 0x052d,
+ 0x048d, 0x0402, 0x032a, 0x01e0, 0x00ae, 0xffe7,
+ 0xff4f, 0xfebc, 0xfe5b, 0xfe34, 0xfddd, 0xfd42,
+ 0xfcb9, 0xfc3d, 0xfba7, 0xfb1c, 0xfaa5, 0xfa39,
+ 0xfa08, 0xfa0a, 0xfa0d, 0xfa11, 0xfa1f, 0xfa41,
+ 0xfa76, 0xfa82, 0xfa79, 0xfa8d, 0xfa65, 0xf9ef,
+ 0xf999, 0xf971, 0xf975, 0xf9d7, 0xfa7f, 0xfb43,
+ 0xfbf9, 0xfc8b, 0xfd4e, 0xfe2e, 0xfed4, 0xff8f,
+ 0x006a, 0x0109, 0x0176, 0x01b3, 0x01cd, 0x01fd,
+ 0x0208, 0x01ee, 0x0213, 0x022c, 0x01e1, 0x017c,
+ 0x0139, 0x00f1, 0x0065, 0xffca, 0xff7c, 0xff38,
+ 0xfee3, 0xfef7, 0xff64, 0xffdb, 0x005a, 0x00c0,
+ 0x00fd, 0x0145, 0x01ad, 0x020e, 0x0220, 0x020e,
+ 0x0247, 0x0285, 0x0280, 0x0280, 0x027c, 0x022d,
+ 0x01a5, 0x011f, 0x00e4, 0x00f1, 0x011a, 0x016d,
+ 0x01d6, 0x0228, 0x0267, 0x02ae, 0x033b, 0x03e2,
+ 0x0410, 0x03f4, 0x03e5, 0x03b1, 0x038e, 0x03af,
+ 0x03b6, 0x0397, 0x0376, 0x0344, 0x032c, 0x035c,
+ 0x03ba, 0x0414, 0x0435, 0x0421, 0x03ed, 0x03b4,
+ 0x03b8, 0x03de, 0x03fa, 0x0437, 0x046b, 0x0476,
+ 0x04bc, 0x053e, 0x05a2, 0x05db, 0x05dc, 0x0576,
+ 0x04ba, 0x0408, 0x03b8, 0x0385, 0x0315, 0x0296,
+ 0x022d, 0x01d0, 0x019b, 0x016f, 0x0115, 0x00c8,
+ 0x00bf, 0x00ce, 0x00c9, 0x00ca, 0x00eb, 0x012c,
+ 0x0188, 0x01e7, 0x0248, 0x02b1, 0x02fa, 0x0316,
+ 0x0317, 0x02ef, 0x02af, 0x027d, 0x0240, 0x0216,
+ 0x0253, 0x02d7, 0x0328, 0x0320, 0x032a, 0x038b,
+ 0x040e, 0x04a8, 0x0550, 0x05af, 0x05d6, 0x0608,
+ 0x0629, 0x0658, 0x06b5, 0x0725, 0x07b7, 0x083f,
+ 0x0879, 0x089e, 0x08c4, 0x08cd, 0x08c9, 0x08b2,
+ 0x08af, 0x08e8, 0x08fa, 0x08d3, 0x08d2, 0x08ec,
+ 0x08fc, 0x08f6, 0x08c4, 0x0885, 0x0833, 0x0788,
+ 0x06a5, 0x05bf, 0x04b9, 0x03a8, 0x02c4, 0x0202,
+ 0x013f, 0x0069, 0xff7a, 0xfeb6, 0xfe5e, 0xfe35,
+ 0xfe08, 0xfdde, 0xfd99, 0xfd45, 0xfcec, 0xfc58,
+ 0xfbbc, 0xfb46, 0xfaa0, 0xf9db, 0xf950, 0xf8fc,
+ 0xf8e3, 0xf8e1, 0xf8c7, 0xf8d2, 0xf90a, 0xf956,
+ 0xf9cb, 0xfa0b, 0xf9e7, 0xf9c7, 0xf9b7, 0xf9b1,
+ 0xf9e0, 0xfa14, 0xfa42, 0xfa7e, 0xfaa8, 0xfb05,
+ 0xfbbb, 0xfc6a, 0xfd1f, 0xfe13, 0xfee5, 0xff5b,
+ 0xffbb, 0x001a, 0x0054, 0x0083, 0x00d8, 0x0127,
+ 0x0136, 0x0114, 0x00f8, 0x00f7, 0x00d3, 0x0076,
+ 0x0016, 0xff9b, 0xfefe, 0xfea2, 0xfe73, 0xfe3e,
+ 0xfe3e, 0xfe52, 0xfe52, 0xfe8f, 0xff0e, 0xff9e,
+ 0x0039, 0x00c8, 0x0145, 0x01c9, 0x023a, 0x027e,
+ 0x02a6, 0x02c8, 0x02ca, 0x029e, 0x0288, 0x0293,
+ 0x029c, 0x02b8, 0x02c3, 0x02bb, 0x02eb, 0x0317,
+ 0x0307, 0x030a, 0x0332, 0x0386, 0x03fc, 0x044a,
+ 0x0487, 0x04ac, 0x048c, 0x04a9, 0x04f6, 0x04db,
+ 0x04c4, 0x04e9, 0x04d0, 0x04b4, 0x04c1, 0x04b2,
+ 0x04a5, 0x04a8, 0x0496, 0x0483, 0x0469, 0x043b,
+ 0x03f8, 0x03a7, 0x0373, 0x0359, 0x033a, 0x0318,
+ 0x02e4, 0x02a9, 0x0275, 0x0217, 0x017f, 0x00a6,
+ 0xffb4, 0xff11, 0xfe96, 0xfe08, 0xfdba, 0xfd71,
+ 0xfce7, 0xfc88, 0xfc3e, 0xfbd6, 0xfbcd, 0xfc15,
+ 0xfc3e, 0xfc6c, 0xfc9b, 0xfc8f, 0xfc7c, 0xfc88,
+ 0xfc89, 0xfc7f, 0xfc8c, 0xfcb6, 0xfcd2, 0xfcae,
+ 0xfc73, 0xfc89, 0xfcf3, 0xfd51, 0xfd9c, 0xfe18,
+ 0xfec5, 0xff90, 0x007f, 0x0160, 0x01ff, 0x026a,
+ 0x02b1, 0x02ee, 0x0350, 0x03ac, 0x03ca, 0x03f9,
+ 0x0479, 0x0509, 0x0596, 0x063a, 0x06d4, 0x0772,
+ 0x0828, 0x08af, 0x0903, 0x094c, 0x0965, 0x0964,
+ 0x0984, 0x09ba, 0x09f7, 0x0a26, 0x0a2c, 0x0a2c,
+ 0x0a27, 0x09f3, 0x09a3, 0x0961, 0x0937, 0x091f,
+ 0x08f6, 0x0898, 0x07ff, 0x0738, 0x0652, 0x056f,
+ 0x04d2, 0x0473, 0x0417, 0x03e3, 0x03cd, 0x0376,
+ 0x02f6, 0x0283, 0x01e9, 0x0125, 0x0062, 0xffba,
+ 0xff50, 0xff22, 0xff11, 0xff16, 0xff27, 0xff57,
+ 0xff9c, 0xffcf, 0xfff3, 0xffe8, 0xffa3, 0xff78,
+ 0xff4c, 0xfecc, 0xfe44, 0xfddf, 0xfd69, 0xfd09,
+ 0xfcf4, 0xfd05, 0xfd1d, 0xfd59, 0xfdbe, 0xfe32,
+ 0xfebd, 0xff45, 0xff94, 0xffef, 0x0083, 0x00d7,
+ 0x00de, 0x00f0, 0x00db, 0x0075, 0x0000, 0xff85,
+ 0xfedc, 0xfdf6, 0xfd00, 0xfc29, 0xfb5d, 0xfa7f,
+ 0xf9bd, 0xf962, 0xf967, 0xf984, 0xf9b3, 0xfa09,
+ 0xfa52, 0xfa86, 0xfad0, 0xfb2c, 0xfbaa, 0xfc3e,
+ 0xfcaf, 0xfd11, 0xfd54, 0xfd45, 0xfd31, 0xfd3c,
+ 0xfd35, 0xfd31, 0xfd38, 0xfd33, 0xfd35, 0xfd5c,
+ 0xfde0, 0xfea3, 0xff45, 0xffd8, 0x0055, 0x00a2,
+ 0x012b, 0x01d4, 0x021e, 0x026d, 0x02fe, 0x0372,
+ 0x03c3, 0x03f6, 0x03e4, 0x03a9, 0x036a, 0x031f,
+ 0x02c5, 0x0297, 0x02d6, 0x0335, 0x035e, 0x0374,
+ 0x036f, 0x0345, 0x0333, 0x0337, 0x034f, 0x039a,
+ 0x03ff, 0x0471, 0x04d5, 0x04f3, 0x04f2, 0x04ef,
+ 0x04ce, 0x04a0, 0x044c, 0x03a9, 0x02fb, 0x028b,
+ 0x022f, 0x01b2, 0x0137, 0x00eb, 0x009f, 0x0041,
+ 0x0015, 0x0029, 0x006c, 0x00d1, 0x012b, 0x0173,
+ 0x01b1, 0x01cf, 0x01ec, 0x0211, 0x0204, 0x01c6,
+ 0x0171, 0x0118, 0x00c9, 0x0068, 0x0009, 0xffdf,
+ 0xffcf, 0xffd6, 0x0005, 0x0055, 0x00d5, 0x0169,
+ 0x01da, 0x023e, 0x0284, 0x028d, 0x0293, 0x02a0,
+ 0x029c, 0x0296, 0x0287, 0x0274, 0x026f, 0x0273,
+ 0x0297, 0x02de, 0x032c, 0x038a, 0x03c9, 0x03bf,
+ 0x03a7, 0x03a7, 0x03b3, 0x03d9, 0x0413, 0x043f,
+ 0x0440, 0x0411, 0x03c5, 0x0349, 0x02b7, 0x0251,
+ 0x0201, 0x01ba, 0x0195, 0x0161, 0x0122, 0x0114,
+ 0x0104, 0x00c4, 0x0066, 0xfff2, 0xff74, 0xfef7,
+ 0xfe88, 0xfe3f, 0xfe05, 0xfdcd, 0xfd8c, 0xfd0a,
+ 0xfc64, 0xfbca, 0xfb0d, 0xfa4e, 0xf9e2, 0xf9cc,
+ 0xfa01, 0xfa60, 0xfabf, 0xfb1a, 0xfb6c, 0xfbd0,
+ 0xfc57, 0xfce1, 0xfd85, 0xfe22, 0xfe4f, 0xfe49,
+ 0xfe40, 0xfde8, 0xfd83, 0xfd72, 0xfd95, 0xfdd5,
+ 0xfe11, 0xfe27, 0xfe40, 0xfe5f, 0xfe71, 0xfe98,
+ 0xfedf, 0xff47, 0xffc3, 0x0015, 0x003f, 0x0059,
+ 0x005b, 0x0055, 0x004e, 0x0039, 0x001b, 0xffdc,
+ 0xff62, 0xfec5, 0xfe17, 0xfd58, 0xfca0, 0xfc2d,
+ 0xfc08, 0xfbdb, 0xfb94, 0xfb60, 0xfb20, 0xfae0,
+ 0xfaec, 0xfb36, 0xfb6b, 0xfb75, 0xfb8d, 0xfbd1,
+ 0xfbff, 0xfc1d, 0xfc56, 0xfc5b, 0xfc2a, 0xfc0e,
+ 0xfbee, 0xfbed, 0xfc3a, 0xfc8b, 0xfcdf, 0xfd65,
+ 0xfde3, 0xfe49, 0xfebf, 0xff4c, 0xfff5, 0x0096,
+ 0x011d, 0x018a, 0x01bc, 0x01c2, 0x01a5, 0x0139,
+ 0x00c9, 0x0090, 0x003d, 0xffdb, 0xffa3, 0xff75,
+ 0xff63, 0xff9b, 0xfff0, 0x003d, 0x0085, 0x00d3,
+ 0x012d, 0x017e, 0x01cd, 0x023e, 0x02c3, 0x032d,
+ 0x0372, 0x03c5, 0x042c, 0x0451, 0x0417, 0x03b8,
+ 0x0341, 0x02b6, 0x0239, 0x01d9, 0x01aa, 0x019a,
+ 0x015f, 0x0113, 0x0108, 0x012e, 0x016f, 0x01d7,
+ 0x022e, 0x0256, 0x028c, 0x02d3, 0x02da, 0x0297,
+ 0x024d, 0x021e, 0x0200, 0x01ea, 0x01db, 0x01bb,
+ 0x0188, 0x0176, 0x0191, 0x01ac, 0x01d8, 0x0252,
+ 0x0310, 0x03c2, 0x043b, 0x049a, 0x04ef, 0x0515,
+ 0x0518, 0x0507, 0x04ce, 0x04aa, 0x04bc, 0x04b7,
+ 0x0494, 0x047a, 0x046f, 0x049a, 0x04e3, 0x0516,
+ 0x0583, 0x0622, 0x066d, 0x0678, 0x0681, 0x0685,
+ 0x06b2, 0x0703, 0x072b, 0x0726, 0x0708, 0x06d4,
+ 0x0692, 0x0626, 0x0598, 0x0509, 0x046f, 0x03f6,
+ 0x03b7, 0x0369, 0x0313, 0x02d9, 0x0278, 0x0207,
+ 0x01d6, 0x0190, 0x00f9, 0x0066, 0xffec, 0xff57,
+ 0xfec4, 0xfe39, 0xfd80, 0xfca0, 0xfbc6, 0xfaf3,
+ 0xfa37, 0xf9bf, 0xf982, 0xf951, 0xf920, 0xf8fa,
+ 0xf901, 0xf968, 0xfa0c, 0xfa99, 0xfb07, 0xfb5b,
+ 0xfb78, 0xfb69, 0xfb43, 0xfb0d, 0xfac3, 0xfa50,
+ 0xf9cb, 0xf984, 0xf995, 0xf9e2, 0xfa55, 0xfad6,
+ 0xfb6b, 0xfc16, 0xfcc5, 0xfd8c, 0xfe61, 0xff04,
+ 0xff85, 0x0009, 0x006c, 0x009c, 0x00ad, 0x0081,
+ 0x001f, 0xffd3, 0xffb4, 0xff97, 0xff5e, 0xff0d,
+ 0xfeca, 0xfeb2, 0xfea1, 0xfe6b, 0xfe28, 0xfe04,
+ 0xfe17, 0xfe59, 0xfeae, 0xff1a, 0xffa9, 0x0028,
+ 0x0067, 0x0073, 0x0082, 0x00b6, 0x00f7, 0x0116,
+ 0x010b, 0x00ee, 0x00db, 0x00e7, 0x0117, 0x0162,
+ 0x01b6, 0x020b, 0x0265, 0x02b5, 0x0304, 0x0372,
+ 0x03ef, 0x047a, 0x050f, 0x0572, 0x05a1, 0x05be,
+ 0x05d5, 0x0608, 0x0632, 0x05fa, 0x0594, 0x0537,
+ 0x04c4, 0x0446, 0x03b0, 0x0304, 0x029b, 0x025e,
+ 0x01f6, 0x0188, 0x012a, 0x00d2, 0x009f, 0x0082,
+ 0x0070, 0x007c, 0x0079, 0x004c, 0x0016, 0xffe8,
+ 0xffd6, 0xffdb, 0xffc1, 0xff8d, 0xff55, 0xfefe,
+ 0xfe8e, 0xfe0d, 0xfd74, 0xfcff, 0xfcd3, 0xfcb8,
+ 0xfca3, 0xfca7, 0xfc9f, 0xfc93, 0xfc94, 0xfc71,
+ 0xfc44, 0xfc3f, 0xfc38, 0xfc30, 0xfc1d, 0xfbbb,
+ 0xfb52, 0xfb3b, 0xfb27, 0xfaf7, 0xfadd, 0xfad3,
+ 0xfadb, 0xfb12, 0xfb84, 0xfc2a, 0xfcee, 0xfdca,
+ 0xfe87, 0xfee5, 0xff1c, 0xff4d, 0xff44, 0xff28,
+ 0xff27, 0xff40, 0xff77, 0xff9a, 0xff9d, 0xff9f,
+ 0xff84, 0xff8d, 0x000b, 0x009d, 0x0133, 0x0205,
+ 0x02b0, 0x0316, 0x037e, 0x03d8, 0x0437, 0x04b6,
+ 0x050d, 0x0537, 0x0572, 0x05ad, 0x05c6, 0x05d8,
+ 0x05f0, 0x05f0, 0x05eb, 0x0619, 0x064d, 0x0647,
+ 0x062f, 0x0618, 0x05e4, 0x059b, 0x053c, 0x04ae,
+ 0x0425, 0x03d6, 0x0388, 0x0310, 0x028e, 0x0206,
+ 0x0186, 0x0137, 0x00f2, 0x00ac, 0x0096, 0x0085,
+ 0x0058, 0x0028, 0xffdf, 0xff98, 0xff90, 0xffa5,
+ 0xffb8, 0xffb4, 0xffa1, 0xffbc, 0xffc5, 0xff6d,
+ 0xff04, 0xfe9f, 0xfe28, 0xfddb, 0xfdac, 0xfd87,
+ 0xfd7b, 0xfd71, 0xfd86, 0xfdc0, 0xfdea, 0xfe31,
+ 0xfe90, 0xfeca, 0xff14, 0xff76, 0xffa9, 0xff9d,
+ 0xff52, 0xff02, 0xfeca, 0xfe6f, 0xfe0b, 0xfdbd,
+ 0xfd44, 0xfcb3, 0xfc2b, 0xfbb5, 0xfb71, 0xfb35,
+ 0xfafa, 0xfb04, 0xfb33, 0xfb66, 0xfbaa, 0xfbca,
+ 0xfbba, 0xfb99, 0xfb81, 0xfb8f, 0xfb8f, 0xfb7e,
+ 0xfb9c, 0xfba4, 0xfb79, 0xfb6b, 0xfb74, 0xfb90,
+ 0xfbde, 0xfc50, 0xfce9, 0xfd79, 0xfdd0, 0xfe2f,
+ 0xfe8b, 0xfece, 0xff4e, 0xfff5, 0x0081, 0x010a,
+ 0x0186, 0x01fe, 0x0278, 0x02c3, 0x0316, 0x038e,
+ 0x03cc, 0x03de, 0x03fc, 0x03f3, 0x03b3, 0x035b,
+ 0x0312, 0x02ff, 0x0305, 0x0305, 0x031e, 0x034a,
+ 0x0367, 0x038b, 0x03e2, 0x046c, 0x04ee, 0x0531,
+ 0x0553, 0x057a, 0x0577, 0x055d, 0x0569, 0x0562,
+ 0x0540, 0x0558, 0x0576, 0x056a, 0x057f, 0x0591,
+ 0x0581, 0x0598, 0x05a1, 0x0579, 0x055c, 0x0533,
+ 0x052e, 0x0579, 0x058a, 0x0560, 0x0559, 0x0521,
+ 0x04b8, 0x046e, 0x0420, 0x03e9, 0x03f0, 0x03e1,
+ 0x03b5, 0x0395, 0x0367, 0x0338, 0x0328, 0x0323,
+ 0x031b, 0x0333, 0x0378, 0x03bf, 0x0406, 0x045f,
+ 0x0497, 0x04a1, 0x049f, 0x0481, 0x044c, 0x041a,
+ 0x03f8, 0x03f8, 0x03f5, 0x03dc, 0x03f6, 0x0434,
+ 0x0452, 0x045c, 0x0449, 0x042a, 0x042c, 0x0436,
+ 0x043e, 0x043d, 0x0401, 0x03b6, 0x039a, 0x0396,
+ 0x0394, 0x0375, 0x0350, 0x036d, 0x03a4, 0x03d3,
+ 0x041a, 0x0443, 0x0449, 0x047b, 0x04b6, 0x04c4,
+ 0x04a2, 0x044b, 0x03e3, 0x038b, 0x0333, 0x02d4,
+ 0x0267, 0x01f8, 0x01a2, 0x0147, 0x00eb, 0x00be,
+ 0x00b0, 0x00ab, 0x009a, 0x0069, 0x0058, 0x006d,
+ 0x0059, 0x003e, 0x004c, 0x0037, 0xffee, 0xffba,
+ 0xffbe, 0xffe2, 0x0011, 0x003b, 0x0030, 0xffe1,
+ 0xff81, 0xff28, 0xfee2, 0xfec9, 0xfec5, 0xfecd,
+ 0xfee9, 0xfee8, 0xfed5, 0xfeff, 0xff50, 0xffab,
+ 0x001d, 0x0072, 0x0088, 0x008f, 0x007e, 0x001d,
+ 0xffa2, 0xff60, 0xff3c, 0xff0d, 0xfefc, 0xfee5,
+ 0xfe94, 0xfe5d, 0xfe49, 0xfe1d, 0xfe0e, 0xfe00,
+ 0xfd9a, 0xfd35, 0xfcfd, 0xfca5, 0xfc4e, 0xfc11,
+ 0xfbbc, 0xfb5d, 0xfb05, 0xfab4, 0xfa87, 0xfa85,
+ 0xfab1, 0xfb03, 0xfb49, 0xfb87, 0xfbe2, 0xfc4d,
+ 0xfcaa, 0xfcf0, 0xfd33, 0xfd7c, 0xfdb2, 0xfdfd,
+ 0xfe7a, 0xfece, 0xfef4, 0xff53, 0xffd4, 0x002c,
+ 0x0063, 0x006a, 0x003a, 0x001e, 0x0042, 0x0087,
+ 0x00d2, 0x010f, 0x0139, 0x0152, 0x0133, 0x00e2,
+ 0x00a7, 0x0090, 0x0084, 0x008f, 0x00b7, 0x00fa,
+ 0x013d, 0x015a, 0x0190, 0x01fe, 0x023c, 0x026d,
+ 0x02dc, 0x031b, 0x0310, 0x0329, 0x036e, 0x03cf,
+ 0x0440, 0x0496, 0x04e1, 0x0515, 0x0505, 0x04ed,
+ 0x04dd, 0x04a1, 0x044b, 0x03ef, 0x038e, 0x0347,
+ 0x030f, 0x02e0, 0x02cc, 0x02ac, 0x0287, 0x0298,
+ 0x02be, 0x02cb, 0x02df, 0x032b, 0x03ac, 0x0424,
+ 0x0465, 0x048e, 0x04b5, 0x04dd, 0x051a, 0x055b,
+ 0x0586, 0x05c4, 0x060f, 0x0638, 0x0658, 0x0687,
+ 0x069d, 0x06aa, 0x06d2, 0x070c, 0x074d, 0x076b,
+ 0x075d, 0x0787, 0x07e0, 0x0800, 0x0816, 0x0859,
+ 0x0889, 0x08a2, 0x08cb, 0x08db, 0x08b9, 0x0888,
+ 0x085d, 0x0832, 0x0807, 0x07d1, 0x077b, 0x0712,
+ 0x06aa, 0x0638, 0x05d3, 0x05b0, 0x05c4, 0x05e9,
+ 0x060b, 0x060e, 0x05d9, 0x0588, 0x0535, 0x04c7,
+ 0x0432, 0x039d, 0x0303, 0x0248, 0x01a7, 0x0148,
+ 0x00d3, 0x0035, 0xffd1, 0xffa2, 0xff5d, 0xff31,
+ 0xff4e, 0xff59, 0xff3d, 0xff43, 0xff46, 0xff2f,
+ 0xff3e, 0xff4c, 0xff32, 0xff0f, 0xfee4, 0xfecc,
+ 0xfee9, 0xff14, 0xff4b, 0xff6d, 0xff42, 0xff08,
+ 0xfec7, 0xfe64, 0xfe49, 0xfe7f, 0xfea8, 0xfed1,
+ 0xfee1, 0xfebb, 0xfea7, 0xfeaa, 0xfe9a, 0xfe92,
+ 0xfea4, 0xfebf, 0xfeb0, 0xfe7d, 0xfe7a, 0xfe93,
+ 0xfe86, 0xfe7e, 0xfe77, 0xfe44, 0xfdf6, 0xfd9f,
+ 0xfd61, 0xfd52, 0xfd5a, 0xfd96, 0xfe13, 0xfe8e,
+ 0xfef3, 0xff3f, 0xff5b, 0xff46, 0xfefa, 0xfe98,
+ 0xfe4c, 0xfe11, 0xfe01, 0xfe13, 0xfe02, 0xfe00,
+ 0xfe3d, 0xfe65, 0xfe87, 0xfef4, 0xff79, 0xffda,
+ 0x0024, 0x005b, 0x0073, 0x006d, 0x006a, 0x008c,
+ 0x00be, 0x00eb, 0x0122, 0x0166, 0x01b3, 0x0218,
+ 0x0281, 0x02cd, 0x02eb, 0x02cf, 0x026f, 0x01e5,
+ 0x0151, 0x00c9, 0x0070, 0x0033, 0xffd3, 0xff7c,
+ 0xff88, 0xffb7, 0xffc7, 0xffd5, 0xffdc, 0xffe5,
+ 0x0029, 0x0095, 0x010a, 0x0199, 0x0219, 0x0269,
+ 0x02ae, 0x02cd, 0x02af, 0x02a5, 0x02be, 0x02c2,
+ 0x02be, 0x02bc, 0x02a8, 0x029c, 0x029d, 0x0289,
+ 0x0268, 0x0235, 0x01c9, 0x0142, 0x00e2, 0x00a0,
+ 0x0070, 0x006a, 0x007c, 0x007e, 0x0069, 0x0046,
+ 0x0031, 0x003f, 0x004c, 0x0044, 0x0048, 0x0068,
+ 0x00a4, 0x00f4, 0x0146, 0x0197, 0x01d5, 0x0200,
+ 0x0244, 0x0294, 0x02c4, 0x02eb, 0x032b, 0x0383,
+ 0x03e1, 0x0425, 0x0452, 0x0498, 0x04fe, 0x0561,
+ 0x05bc, 0x0620, 0x067d, 0x06c5, 0x0705, 0x071b,
+ 0x06ff, 0x06f2, 0x06e3, 0x06ae, 0x0696, 0x06a8,
+ 0x06ce, 0x0718, 0x0740, 0x0731, 0x072a, 0x0700,
+ 0x06bf, 0x06a9, 0x0694, 0x069c, 0x06cb, 0x06a6,
+ 0x0645, 0x05f8, 0x05aa, 0x0587, 0x057e, 0x0541,
+ 0x04f5, 0x0495, 0x0409, 0x0388, 0x0306, 0x029a,
+ 0x0285, 0x028c, 0x0297, 0x02aa, 0x0294, 0x027d,
+ 0x0262, 0x01fb, 0x0190, 0x015e, 0x0134, 0x0109,
+ 0x00cf, 0x0082, 0x004a, 0x0029, 0x0023, 0x003c,
+ 0x005e, 0x007f, 0x0083, 0x005d, 0x0035, 0xffff,
+ 0xffbd, 0xff99, 0xff72, 0xff46, 0xff45, 0xff46,
+ 0xff0d, 0xfea4, 0xfe36, 0xfde0, 0xfd7d, 0xfd18,
+ 0xfcd5, 0xfc7c, 0xfbf4, 0xfb74, 0xfb00, 0xfa94,
+ 0xfa31, 0xf9cc, 0xf98f, 0xf993, 0xf9c4, 0xfa11,
+ 0xfa47, 0xfa4a, 0xfa47, 0xfa41, 0xfa26, 0xfa00,
+ 0xf9ee, 0xfa07, 0xfa39, 0xfa67, 0xfa86, 0xfa8a,
+ 0xfa99, 0xfac7, 0xfae8, 0xfb10, 0xfb61, 0xfbba,
+ 0xfc1b, 0xfc90, 0xfd10, 0xfda7, 0xfe31, 0xfe9d,
+ 0xff0f, 0xff4e, 0xff41, 0xff23, 0xfeec, 0xfead,
+ 0xfe9a, 0xfe96, 0xfeb1, 0xff06, 0xff3b, 0xff44,
+ 0xff67, 0xff88, 0xff81, 0xff7b, 0xff90, 0xffae,
+ 0xffbf, 0xffe4, 0x0035, 0x007c, 0x00b0, 0x010e,
+ 0x0170, 0x019e, 0x01be, 0x01e5, 0x0205, 0x0228,
+ 0x0249, 0x0272, 0x02bc, 0x0301, 0x0330, 0x0371,
+ 0x03be, 0x0408, 0x0462, 0x04b1, 0x04dd, 0x04fc,
+ 0x0508, 0x0505, 0x0504, 0x04f5, 0x04df, 0x04ce,
+ 0x049a, 0x0435, 0x03bf, 0x0342, 0x02bd, 0x0241,
+ 0x01d3, 0x0172, 0x011d, 0x00d2, 0x00a2, 0x0099,
+ 0x0087, 0x0059, 0x0052, 0x0066, 0x0056, 0x0059,
+ 0x0088, 0x009f, 0x00a8, 0x00b9, 0x00c3, 0x00d8,
+ 0x00e5, 0x00e4, 0x010a, 0x013b, 0x0146, 0x0151,
+ 0x0178, 0x01ce, 0x024f, 0x02b1, 0x02e9, 0x032f,
+ 0x036d, 0x0384, 0x03a2, 0x03f3, 0x044e, 0x047d,
+ 0x04b2, 0x04fd, 0x0514, 0x0516, 0x0533, 0x0543,
+ 0x054c, 0x0551, 0x0534, 0x051c, 0x0527, 0x0551,
+ 0x0598, 0x05c3, 0x05c1, 0x05b0, 0x0571, 0x051d,
+ 0x04e3, 0x04a0, 0x044e, 0x03ff, 0x03b2, 0x0372,
+ 0x0328, 0x02d3, 0x02a2, 0x025d, 0x01e6, 0x0192,
+ 0x015d, 0x0125, 0x010f, 0x010f, 0x0110, 0x010e,
+ 0x00fd, 0x00ea, 0x00c6, 0x0075, 0x001f, 0xffc8,
+ 0xff59, 0xfeff, 0xfec7, 0xfea6, 0xfeba, 0xfee7,
+ 0xff05, 0xff2c, 0xff5d, 0xff83, 0xffa4, 0xffbf,
+ 0xffcf, 0xffd0, 0xffc5, 0xffc4, 0xffc4, 0xffab,
+ 0xff94, 0xff92, 0xff95, 0xff95, 0xff72, 0xff08,
+ 0xfe7e, 0xfdfc, 0xfd76, 0xfd16, 0xfd0c, 0xfd2c,
+ 0xfd48, 0xfd63, 0xfd73, 0xfd69, 0xfd4c, 0xfd2f,
+ 0xfd1c, 0xfd05, 0xfce7, 0xfcd8, 0xfcd2, 0xfcca,
+ 0xfcb6, 0xfc8e, 0xfc69, 0xfc4d, 0xfc20, 0xfc05,
+ 0xfc29, 0xfc65, 0xfc98, 0xfcd0, 0xfcf6, 0xfcfd,
+ 0xfd02, 0xfd07, 0xfd19, 0xfd4f, 0xfd64, 0xfd27,
+ 0xfce0, 0xfcb5, 0xfc8e, 0xfc7c, 0xfc74, 0xfc3e,
+ 0xfbf1, 0xfbbe, 0xfbaf, 0xfbc7, 0xfbe7, 0xfbea,
+ 0xfbed, 0xfc07, 0xfc19, 0xfc1d, 0xfc37, 0xfc72,
+ 0xfcad, 0xfcce, 0xfcb9, 0xfc77, 0xfc57, 0xfc6e,
+ 0xfc99, 0xfd01, 0xfd98, 0xfdfb, 0xfe49, 0xfeac,
+ 0xfee9, 0xff1a, 0xff79, 0xffe9, 0x005b, 0x00d8,
+ 0x014d, 0x01b6, 0x021a, 0x027a, 0x02b8, 0x02b1,
+ 0x028f, 0x0266, 0x021b, 0x01db, 0x01bc, 0x01a2,
+ 0x0199, 0x017d, 0x0140, 0x0123, 0x0114, 0x00f2,
+ 0x00e0, 0x00c0, 0x008b, 0x008b, 0x00c9, 0x0120,
+ 0x017e, 0x01d7, 0x020f, 0x0217, 0x0232, 0x0290,
+ 0x02f7, 0x035c, 0x03bf, 0x03ec, 0x0412, 0x0446,
+ 0x0455, 0x047b, 0x04cc, 0x04fa, 0x0529, 0x0570,
+ 0x059c, 0x05c3, 0x05f5, 0x0635, 0x0693, 0x06e7,
+ 0x0729, 0x0758, 0x0742, 0x070a, 0x06d2, 0x068c,
+ 0x066d, 0x0670, 0x0646, 0x0610, 0x0601, 0x060b,
+ 0x0608, 0x05e1, 0x05bd, 0x058a, 0x0515, 0x04af,
+ 0x046b, 0x03fd, 0x0398, 0x0352, 0x02ea, 0x028a,
+ 0x0252, 0x0223, 0x020e, 0x020d, 0x01f8, 0x01c1,
+ 0x016c, 0x0118, 0x00d4, 0x00a0, 0x007d, 0x0051,
+ 0x0026, 0x0021, 0x0018, 0x0010, 0x0029, 0x0032,
+ 0x0021, 0x0010, 0xffe0, 0xff9a, 0xff64, 0xff16,
+ 0xfe9d, 0xfe33, 0xfe14, 0xfe1a, 0xfe1b, 0xfe4c,
+ 0xfeb5, 0xff04, 0xff45, 0xff92, 0xffc2, 0xffdf,
+ 0x0003, 0x0012, 0xfff5, 0xffac, 0xff41, 0xfec4,
+ 0xfe55, 0xfe12, 0xfdf4, 0xfe09, 0xfe54, 0xfe8a,
+ 0xfeaf, 0xfef0, 0xff13, 0xff1b, 0xff2e, 0xff1c,
+ 0xff03, 0xff03, 0xfedf, 0xfebf, 0xfeb6, 0xfe85,
+ 0xfe70, 0xfe8f, 0xfe8b, 0xfe83, 0xfe8c, 0xfe77,
+ 0xfe6f, 0xfe95, 0xfecf, 0xff18, 0xff59, 0xff84,
+ 0xffa8, 0xffc9, 0xfff8, 0x0047, 0x00ab, 0x0105,
+ 0x0130, 0x0127, 0x00f9, 0x00a7, 0x0059, 0x0034,
+ 0x000f, 0xffe0, 0xffde, 0x0001, 0x0019, 0x0020,
+ 0x0024, 0x0021, 0x0003, 0xffc0, 0xff7d, 0xff53,
+ 0xff1c, 0xfed8, 0xfec3, 0xfed6, 0xfeef, 0xff22,
+ 0xff6a, 0xffb8, 0x000d, 0x0041, 0x0053, 0x007e,
+ 0x00bf, 0x011b, 0x01a6, 0x021d, 0x0252, 0x0261,
+ 0x0248, 0x0214, 0x01f7, 0x01e4, 0x01ba, 0x0180,
+ 0x0148, 0x0126, 0x0115, 0x0104, 0x00e9, 0x00c1,
+ 0x0090, 0x004d, 0xffee, 0xff8b, 0xff49, 0xff27,
+ 0xff09, 0xfee5, 0xfeca, 0xfea9, 0xfe6c, 0xfe3c,
+ 0xfe1f, 0xfdf5, 0xfdf7, 0xfe28, 0xfe2f, 0xfe24,
+ 0xfe23, 0xfdfb, 0xfdd0, 0xfdd7, 0xfdea, 0xfe02,
+ 0xfe33, 0xfe7c, 0xfeed, 0xff66, 0xffd5, 0x0061,
+ 0x00df, 0x012e, 0x018e, 0x01e3, 0x020f, 0x0259,
+ 0x0296, 0x0289, 0x0291, 0x02ca, 0x02fb, 0x0325,
+ 0x034b, 0x0366, 0x0382, 0x03a3, 0x03fe, 0x047f,
+ 0x04c8, 0x0514, 0x0594, 0x05f0, 0x0624, 0x064d,
+ 0x0639, 0x060a, 0x05ef, 0x05ce, 0x05b8, 0x05ca,
+ 0x05f3, 0x061c, 0x0629, 0x060a, 0x05d1, 0x059d,
+ 0x0574, 0x053c, 0x0500, 0x04d9, 0x04b9, 0x04b6,
+ 0x04df, 0x0504, 0x0525, 0x0542, 0x052d, 0x04f0,
+ 0x0492, 0x03f0, 0x0339, 0x02a7, 0x0232, 0x01d1,
+ 0x0177, 0x0131, 0x0100, 0x00b3, 0x0068, 0x005f,
+ 0x007c, 0x009f, 0x00c9, 0x00ec, 0x0101, 0x00fc,
+ 0x00d2, 0x0094, 0x005a, 0x0040, 0x0029, 0xffe9,
+ 0xffac, 0xff87, 0xff4d, 0xfefb, 0xfe8b, 0xfe0c,
+ 0xfdbd, 0xfd87, 0xfd57, 0xfd63, 0xfd86, 0xfd93,
+ 0xfdaa, 0xfdb0, 0xfd8e, 0xfd78, 0xfd7a, 0xfd71,
+ 0xfd56, 0xfd2e, 0xfcf8, 0xfcb8, 0xfc8c, 0xfc7f,
+ 0xfc73, 0xfc6f, 0xfc89, 0xfcaa, 0xfcb9, 0xfcce,
+ 0xfd1c, 0xfd92, 0xfdeb, 0xfe3d, 0xfeae, 0xff09,
+ 0xff39, 0xff66, 0xff92, 0xffb9, 0xffcf, 0xffcc,
+ 0xffc1, 0xffad, 0xff9c, 0xffa8, 0xffb7, 0xffcb,
+ 0xfffa, 0x0016, 0x0016, 0x001d, 0x0021, 0x001f,
+ 0x0021, 0x001a, 0x0013, 0x0011, 0x0006, 0xfffa,
+ 0xfff0, 0xfffa, 0x002f, 0x0081, 0x00db, 0x0138,
+ 0x018b, 0x01db, 0x022b, 0x0272, 0x02c2, 0x030e,
+ 0x0342, 0x0397, 0x0412, 0x0459, 0x0472, 0x0496,
+ 0x04b5, 0x04be, 0x04c9, 0x04f9, 0x053e, 0x0550,
+ 0x0533, 0x052b, 0x0519, 0x04e2, 0x04a3, 0x0456,
+ 0x040a, 0x03de, 0x039f, 0x0355, 0x033d, 0x0321,
+ 0x02df, 0x02a2, 0x0269, 0x022a, 0x01ee, 0x01a6,
+ 0x0159, 0x0105, 0x0093, 0x0027, 0xfffb, 0xffed,
+ 0xffd2, 0xffc9, 0xfff7, 0x0048, 0x0098, 0x00e4,
+ 0x012e, 0x0165, 0x0194, 0x01ea, 0x0267, 0x02c9,
+ 0x02f2, 0x0312, 0x0340, 0x036d, 0x03b3, 0x042d,
+ 0x04a7, 0x04f6, 0x0541, 0x0590, 0x05bd, 0x05de,
+ 0x05f0, 0x05c5, 0x058e, 0x057a, 0x0572, 0x05a4,
+ 0x05ff, 0x0636, 0x0672, 0x06b4, 0x06ac, 0x066f,
+ 0x0617, 0x05b5, 0x057d, 0x0559, 0x0534, 0x051c,
+ 0x04e7, 0x04a5, 0x047c, 0x0441, 0x03f9, 0x03b1,
+ 0x035f, 0x0337, 0x0333, 0x0327, 0x0322, 0x0304,
+ 0x02c4, 0x0284, 0x0229, 0x01c1, 0x016a, 0x0108,
+ 0x00bd, 0x008e, 0x0049, 0x0000, 0xffbe, 0xff93,
+ 0xff9f, 0xffa6, 0xffac, 0xffda, 0xfff6, 0x000d,
+ 0x0059, 0x00a1, 0x00ca, 0x00da, 0x00ca, 0x00c1,
+ 0x00aa, 0x007c, 0x0067, 0x0040, 0xfff7, 0xffa9,
+ 0xff48, 0xfef3, 0xfebd, 0xfe86, 0xfe73, 0xfe71,
+ 0xfe4c, 0xfe36, 0xfe1a, 0xfde9, 0xfde1, 0xfdd4,
+ 0xfd9f, 0xfd6e, 0xfd31, 0xfcfe, 0xfcf6, 0xfce3,
+ 0xfcce, 0xfccd, 0xfcc8, 0xfcd9, 0xfcec, 0xfcce,
+ 0xfca9, 0xfc8b, 0xfc64, 0xfc45, 0xfc30, 0xfc35,
+ 0xfc61, 0xfc8b, 0xfc95, 0xfc83, 0xfc6c, 0xfc50,
+ 0xfc1c, 0xfbe6, 0xfbbf, 0xfb91, 0xfb7a, 0xfb83,
+ 0xfb95, 0xfbd5, 0xfc40, 0xfca5, 0xfd00, 0xfd5b,
+ 0xfdbd, 0xfe16, 0xfe40, 0xfe66, 0xfe9b, 0xfea4,
+ 0xfea5, 0xfece, 0xfeea, 0xfef2, 0xfefd, 0xff10,
+ 0xff4a, 0xff9c, 0xfff7, 0x0080, 0x011e, 0x019e,
+ 0x021b, 0x02a2, 0x032c, 0x03af, 0x040f, 0x045f,
+ 0x04c7, 0x052a, 0x056f, 0x05b2, 0x060c, 0x0679,
+ 0x06d1, 0x06f5, 0x06f6, 0x06e7, 0x06c3, 0x0680,
+ 0x060d, 0x0582, 0x050e, 0x04ad, 0x045f, 0x0421,
+ 0x03d1, 0x0386, 0x035b, 0x0339, 0x0347, 0x037e,
+ 0x0386, 0x0380, 0x037e, 0x033a, 0x02e2, 0x02b0,
+ 0x027b, 0x0258, 0x0251, 0x025e, 0x029d, 0x02ce,
+ 0x02c1, 0x02cb, 0x02f5, 0x0313, 0x0345, 0x038a,
+ 0x03be, 0x03ee, 0x0426, 0x045b, 0x047e, 0x04a4,
+ 0x04c1, 0x0498, 0x0458, 0x0456, 0x0477, 0x049c,
+ 0x04be, 0x04b8, 0x0495, 0x0469, 0x0435, 0x041b,
+ 0x0415, 0x0415, 0x041c, 0x0414, 0x040b, 0x040c,
+ 0x0403, 0x040a, 0x0410, 0x03fa, 0x03fb, 0x03e5,
+ 0x0375, 0x030b, 0x02be, 0x0265, 0x021e, 0x01c8,
+ 0x013b, 0x00b5, 0x0049, 0xfffd, 0xffe9, 0xfff3,
+ 0x0004, 0x0028, 0x0049, 0x005a, 0x0068, 0x0079,
+ 0x0087, 0x0083, 0x0070, 0x0048, 0xfff3, 0xff8a,
+ 0xff34, 0xfeeb, 0xfeb5, 0xfeb1, 0xfec5, 0xfec5,
+ 0xfec6, 0xfee2, 0xfeed, 0xfeed, 0xff0f, 0xff2d,
+ 0xff2c, 0xff18, 0xfeed, 0xfed0, 0xfed5, 0xfed7,
+ 0xfed9, 0xfec9, 0xfe9f, 0xfe8e, 0xfe87, 0xfe74,
+ 0xfe84, 0xfe8a, 0xfe71, 0xfe66, 0xfe3e, 0xfde9,
+ 0xfda1, 0xfd52, 0xfcfb, 0xfcaa, 0xfc40, 0xfbf3,
+ 0xfbef, 0xfbf7, 0xfbf0, 0xfbf5, 0xfc19, 0xfc52,
+ 0xfc73, 0xfc8a, 0xfcba, 0xfce6, 0xfcf9, 0xfcfe,
+ 0xfd05, 0xfd24, 0xfd43, 0xfd5f, 0xfda2, 0xfe04,
+ 0xfe62, 0xfeb8, 0xfef8, 0xff2d, 0xff6a, 0xffa8,
+ 0xffe4, 0x0015, 0x0037, 0x0041, 0x0036, 0x003a,
+ 0x004a, 0x004e, 0x0072, 0x00ab, 0x00b9, 0x00c9,
+ 0x00ef, 0x00f9, 0x010e, 0x0142, 0x0159, 0x0154,
+ 0x0156, 0x014a, 0x0115, 0x00e4, 0x00e6, 0x00fe,
+ 0x010f, 0x0131, 0x0157, 0x0171, 0x017d, 0x016c,
+ 0x0160, 0x0168, 0x0157, 0x0146, 0x0168, 0x01aa,
+ 0x0205, 0x0263, 0x029a, 0x02b5, 0x02bd, 0x02a7,
+ 0x027c, 0x0248, 0x022a, 0x0226, 0x0213, 0x01f6,
+ 0x01e0, 0x01c3, 0x019f, 0x0169, 0x012a, 0x00f1,
+ 0x0087, 0x0007, 0xffcb, 0xffac, 0xff86, 0xff6b,
+ 0xff33, 0xfeed, 0xfec7, 0xfeae, 0xfeb7, 0xfef4,
+ 0xff3b, 0xff87, 0xffc3, 0xffd0, 0xffe7, 0x0029,
+ 0x008b, 0x0107, 0x0170, 0x01c0, 0x021e, 0x0270,
+ 0x02af, 0x02ee, 0x031b, 0x033e, 0x0356, 0x0346,
+ 0x034d, 0x0382, 0x03a4, 0x03d1, 0x0422, 0x0456,
+ 0x046d, 0x0475, 0x0464, 0x0474, 0x04b1, 0x04dc,
+ 0x04f6, 0x051c, 0x0543, 0x056e, 0x058e, 0x05a1,
+ 0x05b0, 0x0599, 0x0547, 0x04ea, 0x04a7, 0x0479,
+ 0x0462, 0x046e, 0x048d, 0x0497, 0x0488, 0x047e,
+ 0x0487, 0x0485, 0x0466, 0x0448, 0x0443, 0x042c,
+ 0x03f7, 0x03d3, 0x03c8, 0x03d2, 0x03eb, 0x03d7,
+ 0x0388, 0x033b, 0x02fc, 0x02c5, 0x02a8, 0x02a9,
+ 0x02ba, 0x02c6, 0x02cd, 0x02d5, 0x02c6, 0x02a5,
+ 0x0279, 0x0213, 0x019b, 0x0157, 0x0114, 0x00bb,
+ 0x007f, 0x0043, 0xffec, 0xff9c, 0xff5b, 0xff1c,
+ 0xfed9, 0xfe8a, 0xfe3c, 0xfdee, 0xfd90, 0xfd40,
+ 0xfd27, 0xfd35, 0xfd44, 0xfd44, 0xfd36, 0xfd2c,
+ 0xfd32, 0xfd13, 0xfcc5, 0xfc97, 0xfc8a, 0xfc8a,
+ 0xfcbf, 0xfcd6, 0xfc83, 0xfc3c, 0xfc1d, 0xfbee,
+ 0xfc06, 0xfc51, 0xfc65, 0xfc66, 0xfc77, 0xfc92,
+ 0xfcc6, 0xfcf0, 0xfd23, 0xfd8a, 0xfdce, 0xfdd5,
+ 0xfdde, 0xfdd2, 0xfda5, 0xfd83, 0xfd70, 0xfd51,
+ 0xfd1a, 0xfcee, 0xfce7, 0xfceb, 0xfcfd, 0xfd06,
+ 0xfce7, 0xfcd6, 0xfcd5, 0xfcc3, 0xfce4, 0xfd2f,
+ 0xfd62, 0xfda6, 0xfded, 0xfe05, 0xfe13, 0xfe15,
+ 0xfe0a, 0xfe26, 0xfe4d, 0xfe64, 0xfe9e, 0xfeff,
+ 0xff59, 0xff92, 0xffbc, 0xffec, 0x0015, 0x004c,
+ 0x0093, 0x00c9, 0x0112, 0x017f, 0x01e5, 0x024c,
+ 0x02a5, 0x02da, 0x030f, 0x032b, 0x031d, 0x0323,
+ 0x033a, 0x0353, 0x0367, 0x033f, 0x02fb, 0x02d1,
+ 0x02a1, 0x026a, 0x0236, 0x01fd, 0x01cf, 0x0194,
+ 0x0150, 0x0129, 0x0105, 0x00e5, 0x00c3, 0x006d,
+ 0x0030, 0x0046, 0x0059, 0x0070, 0x00b1, 0x00db,
+ 0x00f8, 0x011f, 0x0123, 0x0126, 0x0154, 0x018d,
+ 0x01d6, 0x024d, 0x02da, 0x0356, 0x03c1, 0x0425,
+ 0x0481, 0x04e3, 0x0537, 0x053b, 0x04ff, 0x04bb,
+ 0x0479, 0x0450, 0x044d, 0x046d, 0x04a8, 0x04b6,
+ 0x0474, 0x041d, 0x03ba, 0x0350, 0x030e, 0x02e9,
+ 0x02cc, 0x02c9, 0x02e9, 0x0324, 0x0346, 0x034c,
+ 0x0364, 0x036f, 0x036f, 0x0391, 0x03af, 0x03cf,
+ 0x0407, 0x0401, 0x03c1, 0x038e, 0x0354, 0x0320,
+ 0x0310, 0x0303, 0x02ff, 0x02fc, 0x02c9, 0x027a,
+ 0x022c, 0x01da, 0x0190, 0x014b, 0x011f, 0x011e,
+ 0x0129, 0x0139, 0x0158, 0x0179, 0x01a9, 0x01eb,
+ 0x0219, 0x0228, 0x021d, 0x01fc, 0x01e0, 0x01c9,
+ 0x019e, 0x017f, 0x0181, 0x017d, 0x0183, 0x01a4,
+ 0x018f, 0x0132, 0x00d1, 0x005d, 0xffd5, 0xff79,
+ 0xff51, 0xff50, 0xff73, 0xff9d, 0xffd6, 0x001b,
+ 0x005a, 0x00a7, 0x00e5, 0x00e4, 0x00ca, 0x00a2,
+ 0x0057, 0x0002, 0xffb8, 0xff85, 0xff6b, 0xff50,
+ 0xff3d, 0xff27, 0xfefc, 0xfee3, 0xfec8, 0xfe93,
+ 0xfe74, 0xfe4c, 0xfdff, 0xfdd1, 0xfdc7, 0xfdd4,
+ 0xfdfc, 0xfe10, 0xfe09, 0xfdfc, 0xfdf5, 0xfe11,
+ 0xfe2e, 0xfe3d, 0xfe85, 0xfee3, 0xff2b, 0xff95,
+ 0x0000, 0x003f, 0x0063, 0x0053, 0x0020, 0xffff,
+ 0xffe4, 0xffe5, 0x0017, 0x004f, 0x007a, 0x009a,
+ 0x00a0, 0x0084, 0x0052, 0x003d, 0x0056, 0x0081,
+ 0x00c5, 0x0113, 0x0148, 0x0171, 0x0186, 0x0189,
+ 0x019d, 0x01ae, 0x01b7, 0x01dd, 0x0213, 0x0259,
+ 0x02ad, 0x02ea, 0x0321, 0x034e, 0x0342, 0x031d,
+ 0x02fd, 0x02d3, 0x02c6, 0x02e4, 0x0306, 0x0318,
+ 0x0310, 0x02e9, 0x02bc, 0x0296, 0x0270, 0x0242,
+ 0x021f, 0x021c, 0x022b, 0x024b, 0x0270, 0x0255,
+ 0x01ff, 0x01a4, 0x012e, 0x00ac, 0x0068, 0x0059,
+ 0x006c, 0x00c1, 0x013a, 0x019c, 0x01d9, 0x01e6,
+ 0x01da, 0x01f0, 0x0224, 0x0262, 0x02db, 0x037f,
+ 0x040c, 0x04a3, 0x0540, 0x0599, 0x05d5, 0x0617,
+ 0x0643, 0x0670, 0x067f, 0x0665, 0x066d, 0x0660,
+ 0x0622, 0x0611, 0x05ed, 0x0589, 0x054e, 0x0524,
+ 0x04f4, 0x0508, 0x052c, 0x0543, 0x054d, 0x051c,
+ 0x04f4, 0x04d9, 0x0467, 0x03d2, 0x0343, 0x02b0,
+ 0x025e, 0x022e, 0x01e2, 0x01b4, 0x019b, 0x0179,
+ 0x0175, 0x0155, 0x00cf, 0x0036, 0xfffa, 0xffec,
+ 0xffea, 0x0039, 0x007f, 0x0064, 0x0047, 0xfffa,
+ 0xff56, 0xfed8, 0xfe3b, 0xfd94, 0xfd77, 0xfd54,
+ 0xfd27, 0xfd75, 0xfd9d, 0xfdb3, 0xfe26, 0xfe51,
+ 0xfe55, 0xfe96, 0xfed6, 0xff35, 0xff88, 0xffa8,
+ 0xffbb, 0xff63, 0xff03, 0xfee4, 0xfe78, 0xfe84,
+ 0xff16, 0xfeea, 0xfeaa, 0xfeb9, 0xfe3c, 0xfde3,
+ 0xfde1, 0xfd97, 0xfd71, 0xfd5f, 0xfd35, 0xfd31,
+ 0xfd0a, 0xfce9, 0xfcb9, 0xfc32, 0xfbf7, 0xfbc7,
+ 0xfb68, 0xfb8b, 0xfb94, 0xfb96, 0xfc58, 0xfcae,
+ 0xfcb2, 0xfd62, 0xfdb7, 0xfde0, 0xfe8a, 0xfede,
+ 0xff2c, 0xff8f, 0xff5a, 0xff62, 0xffab, 0xff67,
+ 0xff3d, 0xff4d, 0xff08, 0xfeca, 0xfee7, 0xff27,
+ 0xff3a, 0xff54, 0xffe4, 0x0076, 0x00ae, 0x00d8,
+ 0x00f2, 0x00d4, 0x006f, 0x0011, 0x0007, 0xffda,
+ 0xffe3, 0x009c, 0x0112, 0x0162, 0x01e7, 0x01ce,
+ 0x01c5, 0x01ff, 0x0179, 0x0142, 0x016a, 0x00bf,
+ 0x0074, 0x00a6, 0x004a, 0x0025, 0xfff2, 0xff59,
+ 0xff7d, 0xffd3, 0xffd8, 0x0047, 0x00a0, 0x00cb,
+ 0x0149, 0x015a, 0x00ef, 0x00ad, 0x0065, 0x0048,
+ 0x00ae, 0x0135, 0x01a4, 0x01f9, 0x0206, 0x01f4,
+ 0x0201, 0x01fa, 0x01f9, 0x023e, 0x0257, 0x022f,
+ 0x0241, 0x026a, 0x0285, 0x0270, 0x01f7, 0x019b,
+ 0x0132, 0x0076, 0x002c, 0xfff6, 0xff82, 0xff78,
+ 0xff0b, 0xfea1, 0xff96, 0x0098, 0x0168, 0x0291,
+ 0x02b2, 0x02c2, 0x03d9, 0x045c, 0x0494, 0x04c1,
+ 0x0437, 0x045a, 0x0499, 0x03ee, 0x0424, 0x04aa,
+ 0x0442, 0x0453, 0x04d8, 0x0541, 0x05f9, 0x0699,
+ 0x0704, 0x072f, 0x0704, 0x06e3, 0x062c, 0x050e,
+ 0x0472, 0x037e, 0x026b, 0x021a, 0x0197, 0x0104,
+ 0x0123, 0x0126, 0x00bb, 0x007d, 0x00b6, 0x0104,
+ 0x0154, 0x024d, 0x0317, 0x0300, 0x032c, 0x0334,
+ 0x029e, 0x024a, 0x0206, 0x022d, 0x0293, 0x0210,
+ 0x021b, 0x027f, 0x0184, 0x00e5, 0x0081, 0xffa5,
+ 0x0050, 0x0119, 0x014a, 0x028e, 0x02ba, 0x0211,
+ 0x0284, 0x01fa, 0x013d, 0x0121, 0x000d, 0x0044,
+ 0x013c, 0x00a4, 0x0118, 0x0195, 0x006b, 0x0051,
+ 0x001c, 0xff55, 0xffc8, 0xff50, 0xfec7, 0xffac,
+ 0xff3d, 0xfe9d, 0xfea3, 0xfd25, 0xfbfb, 0xfb86,
+ 0xfa9b, 0xfaf4, 0xfb37, 0xfa64, 0xfaba, 0xfb26,
+ 0xfacb, 0xface, 0xfab9, 0xfaf5, 0xfb6b, 0xfb40,
+ 0xfbff, 0xfd6a, 0xfdbf, 0xfde6, 0xfe5a, 0xfe4d,
+ 0xfe17, 0xfe73, 0xfedb, 0xfe10, 0xfcf4, 0xfca7,
+ 0xfbf8, 0xfb6b, 0xfbfa, 0xfc45, 0xfcc2, 0xfe2c,
+ 0xff3c, 0x001d, 0x0121, 0x01ac, 0x01c1, 0x0155,
+ 0x0118, 0x010a, 0x009c, 0x011d, 0x016e, 0xfff0,
+ 0xff17, 0xfea1, 0xfd46, 0xfd6a, 0xfe9c, 0xffc1,
+ 0x01a2, 0x0274, 0x02e5, 0x04b8, 0x053b, 0x04ab,
+ 0x045c, 0x024e, 0x005d, 0x004f, 0xffe9, 0xffbd,
+ 0x0034, 0xffbf, 0xff80, 0xffd7, 0xffd2, 0x0052,
+ 0x014d, 0x0212, 0x02c0, 0x031c, 0x03a8, 0x0499,
+ 0x04be, 0x044f, 0x0440, 0x0424, 0x03f5, 0x0436,
+ 0x048f, 0x04d8, 0x0517, 0x049f, 0x03b3, 0x0300,
+ 0x021e, 0x01b2, 0x0207, 0x0197, 0x012c, 0x018b,
+ 0x00ff, 0x005e, 0x0031, 0xfef4, 0xfe5b, 0xfec8,
+ 0xfe4b, 0xfe55, 0xfebf, 0xfe75, 0xff6c, 0x003b,
+ 0xffa7, 0x0069, 0x0148, 0x0113, 0x01e3, 0x025b,
+ 0x021f, 0x02de, 0x02da, 0x0249, 0x031f, 0x03c4,
+ 0x03da, 0x0499, 0x053d, 0x059a, 0x0628, 0x0676,
+ 0x0670, 0x060e, 0x0534, 0x04a4, 0x047e, 0x03a8,
+ 0x02c0, 0x0310, 0x0313, 0x028e, 0x0353, 0x03de,
+ 0x03b3, 0x04df, 0x05cb, 0x05f7, 0x06cf, 0x0668,
+ 0x0572, 0x05a6, 0x04d0, 0x0424, 0x04e0, 0x0436,
+ 0x035d, 0x038a, 0x02d8, 0x0285, 0x02a8, 0x01cd,
+ 0x0159, 0x013c, 0x0105, 0x0179, 0x01c3, 0x020b,
+ 0x0271, 0x0255, 0x02df, 0x0310, 0x026f, 0x0347,
+ 0x03b3, 0x02fa, 0x03d2, 0x03cc, 0x0201, 0x0166,
+ 0x0083, 0xff3e, 0xff90, 0xffb2, 0xff97, 0x0046,
+ 0x007d, 0x00bd, 0x0167, 0x01be, 0x0210, 0x017e,
+ 0x0047, 0xffe3, 0xff3f, 0xfe63, 0xfe41, 0xfd9e,
+ 0xfcfd, 0xfd41, 0xfd15, 0xfcdd, 0xfd4a, 0xfd53,
+ 0xfd5b, 0xfda0, 0xfd02, 0xfc49, 0xfc2a, 0xfb2b,
+ 0xf9f0, 0xfa7a, 0xfb2e, 0xfad1, 0xfb1e, 0xfb87,
+ 0xfb40, 0xfbec, 0xfcb8, 0xfcb4, 0xfd59, 0xfde3,
+ 0xfdb4, 0xfe21, 0xfe74, 0xfe5e, 0xfe75, 0xfe06,
+ 0xfdc8, 0xfdca, 0xfcbe, 0xfc32, 0xfc46, 0xfb43,
+ 0xfb34, 0xfc99, 0xfd17, 0xfdeb, 0xffd9, 0x0108,
+ 0x01d7, 0x029b, 0x0279, 0x01ee, 0x00d8, 0xff26,
+ 0xfe21, 0xfd79, 0xfc96, 0xfc68, 0xfc9f, 0xfca4,
+ 0xfd0b, 0xfd40, 0xfcc0, 0xfc37, 0xfbc7, 0xfbf5,
+ 0xfd30, 0xfe37, 0xfea0, 0xff17, 0xff60, 0xff76,
+ 0xffa7, 0xfff4, 0x00ba, 0x01cb, 0x02ce, 0x043c,
+ 0x05d6, 0x06a9, 0x0682, 0x05fb, 0x057b, 0x04a5,
+ 0x03be, 0x0310, 0x01d5, 0x0182, 0x0359, 0x04a2,
+ 0x04de, 0x05a3, 0x0582, 0x053b, 0x069d, 0x072b,
+ 0x0682, 0x06dd, 0x06fd, 0x05bb, 0x0491, 0x0495,
+ 0x056b, 0x05c1, 0x0573, 0x05ba, 0x065f, 0x0652,
+ 0x05d0, 0x0600, 0x0670, 0x0559, 0x03bb, 0x02f7,
+ 0x01e9, 0x015c, 0x01c5, 0x0110, 0x009c, 0x01d9,
+ 0x02bc, 0x038a, 0x04e5, 0x056b, 0x057c, 0x0615,
+ 0x0767, 0x08a8, 0x08bf, 0x08cc, 0x0901, 0x08ac,
+ 0x090c, 0x08ef, 0x07f8, 0x089d, 0x085e, 0x0698,
+ 0x070c, 0x0703, 0x054d, 0x05d2, 0x0650, 0x04cf,
+ 0x03c5, 0x02b3, 0x0193, 0x01c2, 0x0296, 0x02c7,
+ 0x017d, 0x011e, 0x0276, 0x01b3, 0x0127, 0x02df,
+ 0x0172, 0xff96, 0x0195, 0x01aa, 0x0014, 0x00ff,
+ 0x00ef, 0xff24, 0xfe51, 0xfe17, 0xfe4c, 0xff07,
+ 0x005f, 0x0198, 0x01c8, 0x037c, 0x054b, 0x03a1,
+ 0x02f1, 0x0397, 0x0153, 0x00c4, 0x025a, 0x00de,
+ 0xffeb, 0x008e, 0xff7b, 0xff72, 0xffe6, 0xff27,
+ 0x006b, 0x0142, 0x000d, 0x00d8, 0x0142, 0xffd5,
+ 0xffaa, 0xfe0b, 0xfb7d, 0xfbea, 0xfb7e, 0xfa87,
+ 0xfc8d, 0xfc6e, 0xfb3c, 0xfeae, 0x0074, 0xfde1,
+ 0xfd1f, 0xfc3c, 0xf923, 0xf88b, 0xf9e1, 0xf9e9,
+ 0xf994, 0xf9d0, 0xfa05, 0xf9aa, 0xf958, 0xf9f5,
+ 0xfaae, 0xfacb, 0xfaa5, 0xfb25, 0xfc99, 0xfd51,
+ 0xfe2d, 0x004c, 0x0044, 0xffc6, 0x0187, 0x0127,
+ 0x0193, 0x04e5, 0x02a8, 0x000f, 0x0392, 0x0256,
+ 0xff09, 0x01fa, 0x012e, 0xfd8c, 0xffba, 0x0023,
+ 0xfe84, 0x01ac, 0x031a, 0x00a3, 0x0081, 0x0103,
+ 0xff68, 0xfe71, 0xff68, 0x007e, 0x0106, 0x0211,
+ 0x0370, 0x04ae, 0x055a, 0x04a4, 0x04e3, 0x060a,
+ 0x055c, 0x068d, 0x091c, 0x07a4, 0x0731, 0x083a,
+ 0x03e2, 0xffe9, 0xfea0, 0xf9f3, 0xf76f, 0xf949,
+ 0xf917, 0xf9d5, 0xfc45, 0xfc30, 0xfe04, 0x01a1,
+ 0x0094, 0xfeea, 0x014a, 0x02fd, 0x03af, 0x06e7,
+ 0x07cb, 0x048f, 0x0415, 0x03b2, 0xff72, 0xff51,
+ 0x0143, 0xfeb3, 0xffdf, 0x0320, 0xffe2, 0xff20,
+ 0x0144, 0xfceb, 0xfa5d, 0xfbe0, 0xf8d3, 0xf8ca,
+ 0xfe82, 0xff8e, 0xfff8, 0x0399, 0x01c4, 0xfe7b,
+ 0x011d, 0x01e8, 0xff93, 0x00be, 0x010e, 0xff4a,
+ 0x012b, 0x018f, 0xfdeb, 0xfdd2, 0xff11, 0xfdb0,
+ 0xff2a, 0x02a1, 0x02cc, 0x0128, 0x002c, 0x0093,
+ 0x0156, 0x007b, 0x002e, 0x0267, 0x04ba, 0x04ad,
+ 0x033a, 0x0460, 0x0696, 0x042f, 0x00ca, 0x0073,
+ 0xffb5, 0xff0c, 0xfe91, 0xfc76, 0xfc9f, 0xfda0,
+ 0xfc57, 0xfcf6, 0xfdae, 0xfd40, 0xff6c, 0xfe48,
+ 0xfab6, 0xfdb2, 0xff75, 0xfbcb, 0xfbca, 0xfcc8,
+ 0xfc8f, 0xfff5, 0x01b4, 0x00e7, 0x03ae, 0x05e9,
+ 0x055a, 0x0592, 0x0412, 0x00d8, 0xff92, 0xfe93,
+ 0xfe09, 0x0120, 0x03f9, 0x017f, 0xfe0f, 0xfe7b,
+ 0xff81, 0xffdb, 0x0177, 0x0180, 0xffc7, 0xff9b,
+ 0xffa5, 0xfffd, 0x0150, 0x0067, 0xfed1, 0xfe68,
+ 0xfcae, 0xfba3, 0xfbe5, 0xfb9f, 0xfd9b, 0xfee7,
+ 0xfbd3, 0xfa2d, 0xfa58, 0xfa09, 0xfc37, 0xfd2a,
+ 0xfab9, 0xf8fe, 0xf66b, 0xf569, 0xf877, 0xf813,
+ 0xf627, 0xf6f4, 0xf4cd, 0xf4a8, 0xfa2c, 0xfcc7,
+ 0xff45, 0x0360, 0x02ae, 0x02d5, 0x0389, 0xfed9,
+ 0xfe65, 0x0264, 0x0208, 0x029d, 0x03dd, 0x016a,
+ 0xffcd, 0xfd46, 0xfaef, 0xfc77, 0xfa2b, 0xf901,
+ 0xffed, 0xffed, 0xfaea, 0x0021, 0x0441, 0xff1b,
+ 0xfbf2, 0xfc80, 0xfc0a, 0xf9ae, 0xf812, 0xfd47,
+ 0x04e9, 0x0624, 0x0522, 0x05db, 0x0513, 0x038a,
+ 0x04e4, 0x0982, 0x0d53, 0x0eb6, 0x1021, 0x0f35,
+ 0x0e83, 0x1570, 0x1993, 0x13f2, 0x13cf, 0x18fa,
+ 0x1711, 0x16d6, 0x1ba3, 0x179d, 0x0f0c, 0x0ec7,
+ 0x0ee4, 0x085a, 0x062d, 0x0a5d, 0x098f, 0x0845,
+ 0x0f83, 0x1304, 0x0bf4, 0x07fc, 0x0a23, 0x0a1f,
+ 0x0982, 0x0a9a, 0x0a27, 0x0900, 0x09bd, 0x0b22,
+ 0x0aa3, 0x08d2, 0x096b, 0x0c25, 0x0c85, 0x0a3b,
+ 0x0739, 0x0322, 0xfe8d, 0xf98a, 0xf2f6, 0xed87,
+ 0xeb08, 0xe782, 0xe1b5, 0xdb93, 0xd07d, 0xbc82,
+ 0xa96a, 0xa1fa, 0xa223, 0xa51c, 0xae1d, 0xba41,
+ 0xc7b9, 0xdda7, 0xf583, 0x01b4, 0x0602, 0x0629,
+ 0x0061, 0xfb98, 0xf8b1, 0xf421, 0xf043, 0xe7b6,
+ 0xdb66, 0xd5ad, 0xd095, 0xccdf, 0xd3f7, 0xd77b,
+ 0xd773, 0xe5c5, 0xf197, 0xf13c, 0xf8b7, 0xff90,
+ 0xfb1d, 0xfc1e, 0xfead, 0xfa00, 0xfc5e, 0x03d4,
+ 0x03f9, 0x0235, 0x009d, 0xfb30, 0xf687, 0xf575,
+ 0xf720, 0xfc61, 0x03ec, 0x0d2b, 0x14ca, 0x138d,
+ 0x10fc, 0x177d, 0x1b6a, 0x1b52, 0x2800, 0x3656,
+ 0x37db, 0x3bf3, 0x40ee, 0x3a66, 0x358f, 0x30f9,
+ 0x209a, 0x1410, 0x10c5, 0x0b93, 0x0a0d, 0x0c9e,
+ 0x0bd9, 0x0b5d, 0x094e, 0x0369, 0x0051, 0xff6d,
+ 0x00ce, 0x083d, 0x0f97, 0x1319, 0x1724, 0x1d23,
+ 0x23ab, 0x2651, 0x22ab, 0x1fa9, 0x2190, 0x2309,
+ 0x211f, 0x1eff, 0x1cdc, 0x193b, 0x1783, 0x150c,
+ 0x0b6b, 0x0440, 0x04dc, 0x015b, 0xfda7, 0x00ae,
+ 0xfe5f, 0xfb18, 0x0093, 0x000f, 0xfbc5, 0x0354,
+ 0x0810, 0x033f, 0x06a3, 0x0b52, 0x0699, 0x09b4,
+ 0x1267, 0x0c69, 0x04d4, 0x08cb, 0x06bc, 0xfff8,
+ 0x0368, 0x04d8, 0xff55, 0x00c5, 0x0421, 0x01b3,
+ 0x024e, 0x0897, 0x0da9, 0x0d22, 0x0c5c, 0x11b5,
+ 0x137e, 0x1115, 0x193e, 0x2027, 0x198a, 0x1616,
+ 0x13d2, 0x0afe, 0x0be7, 0x10ed, 0x0cd4, 0x0bc9,
+ 0x0932, 0xff17, 0xfffd, 0x05f5, 0x0304, 0x01f9,
+ 0xffb3, 0xf964, 0xfd1a, 0x0030, 0xfb24, 0xfebe,
+ 0x023c, 0xfa5c, 0xf81b, 0xfb6d, 0xf9a9, 0xfbb3,
+ 0x039f, 0x0752, 0x045e, 0x0168, 0x04f3, 0x085e,
+ 0x07e3, 0x0df0, 0x13ab, 0x0e91, 0x0ca0, 0x0f14,
+ 0x0c39, 0x0e92, 0x1324, 0x0baa, 0x056d, 0x07ac,
+ 0x02d8, 0xfb41, 0x0037, 0x082a, 0x0576, 0x01d8,
+ 0x0649, 0x079c, 0x0333, 0x0554, 0x0ac3, 0x0a80,
+ 0x0a11, 0x0b56, 0x0a07, 0x09dc, 0x0c7f, 0x0cd8,
+ 0x0b54, 0x0b4b, 0x089f, 0x0177, 0xff0e, 0x03af,
+ 0x0592, 0x02a6, 0x0010, 0x00b1, 0x038e, 0x019d,
+ 0xfe3a, 0x0431, 0x0791, 0xff92, 0xfeee, 0x07c8,
+ 0x0a78, 0x0a2b, 0x0acc, 0x06a5, 0x022b, 0x026f,
+ 0x0263, 0x0085, 0x02f9, 0x0839, 0x0694, 0x014b,
+ 0xfff0, 0xfc4a, 0xf753, 0xf636, 0xf0b3, 0xec6a,
+ 0xf33e, 0xf5af, 0xf13b, 0xf44a, 0xf698, 0xf250,
+ 0xf0ba, 0xefe3, 0xf171, 0xf8d7, 0xfb01, 0xfad3,
+ 0x0053, 0xff0c, 0xf8f3, 0xf958, 0xf405, 0xea24,
+ 0xeba3, 0xeeef, 0xeead, 0xf34f, 0xf3cc, 0xeed3,
+ 0xee38, 0xece4, 0xed00, 0xf24b, 0xf3ee, 0xf834,
+ 0x0069, 0x0021, 0x01cd, 0x0799, 0x01c2, 0xfa1a,
+ 0xf735, 0xf0f2, 0xef42, 0xf1cb, 0xf332, 0xf95e,
+ 0xf991, 0xf009, 0xedd7, 0xefdd, 0xee29, 0xed29,
+ 0xec7a, 0xefcf, 0xf668, 0xf711, 0xf5e9, 0xf67a,
+ 0xf662, 0xf6b7, 0xf473, 0xf48b, 0xf9b4, 0xf8f1,
+ 0xfa66, 0x0367, 0x0260, 0xfc9b, 0xfc09, 0xf71a,
+ 0xf2a7, 0xf31d, 0xf31b, 0xf68c, 0xf948, 0xf7e3,
+ 0xf68c, 0xf071, 0xef2e, 0xfa24, 0xfd36, 0xf9bc,
+ 0xfe2c, 0x00a5, 0x0018, 0x0333, 0x03a9, 0x01a3,
+ 0x0032, 0xfd23, 0xf87e, 0xf4b9, 0xf5ca, 0xf722,
+ 0xf566, 0xf7f4, 0xf843, 0xf369, 0xf59f, 0xf605,
+ 0xf1c7, 0xf5ac, 0xf49d, 0xeea0, 0xf56c, 0xfb48,
+ 0xfb58, 0x00cd, 0x02b0, 0x0344, 0x0783, 0x0402,
+ 0xff23, 0xff17, 0xfd69, 0xfeb0, 0xffce, 0xfc69,
+ 0xfe3a, 0x01cb, 0x0068, 0xfed0, 0xfd93, 0xfc83,
+ 0xf9f1, 0xf58c, 0xf641, 0xf8a4, 0xf9af, 0xfe87,
+ 0xff18, 0xf935, 0xf6f7, 0xf597, 0xf2ff, 0xf170,
+ 0xef2a, 0xf10a, 0xf311, 0xecbd, 0xea7d, 0xf166,
+ 0xf2e4, 0xeed9, 0xf0b0, 0xf5f1, 0xf5ca, 0xf547,
+ 0xfa5a, 0xfbb2, 0xf7bc, 0xf5ed, 0xf417, 0xf42a,
+ 0xf62c, 0xf343, 0xf2f8, 0xf6ca, 0xf694, 0xf788,
+ 0xf7a8, 0xf57d, 0xf8bf, 0xf893, 0xf929, 0x03e4,
+ 0x01d4, 0xf78e, 0xfe28, 0x030f, 0xfd0e, 0xfd5c,
+ 0x0188, 0x0401, 0x020e, 0xfd49, 0x0136, 0x064b,
+ 0x05b3, 0x0701, 0x0436, 0x01c5, 0x0781, 0x095a,
+ 0x0b0f, 0x0dc6, 0x07d7, 0x07df, 0x0a92, 0x025c,
+ 0x0248, 0x06f7, 0x01a6, 0x00df, 0x0177, 0xfec1,
+ 0x0399, 0x03d6, 0xffae, 0x050c, 0x0594, 0x0008,
+ 0x032b, 0x0672, 0x0426, 0x03e3, 0x066e, 0x0711,
+ 0x0433, 0x03fa, 0x06b2, 0x069b, 0x071f, 0x073c,
+ 0x04fd, 0x0454, 0xff10, 0xfa12, 0xff6b, 0x00c4,
+ 0xfd75, 0xfff5, 0xfe7e, 0xfe3b, 0x04a1, 0x00e6,
+ 0xfad8, 0xffee, 0x03d0, 0x03fb, 0x057e, 0x0551,
+ 0x0341, 0x00b4, 0x011f, 0x019e, 0xfce6, 0xfca9,
+ 0x0043, 0xfe69, 0xfeb7, 0xfddd, 0xf686, 0xf755,
+ 0xfc93, 0xfc3c, 0xfebb, 0x0063, 0xfde7, 0x00ba,
+ 0x0408, 0x0218, 0xffb5, 0xff33, 0x021a, 0x03bf,
+ 0x005b, 0xfecf, 0xfe93, 0xfc98, 0xfc80, 0xfb7d,
+ 0xfa0f, 0xfcc7, 0xfd84, 0xfb9d, 0xfdda, 0xfff3,
+ 0xfe4b, 0xfe2a, 0xff4c, 0xff49, 0x0251, 0x05d6,
+ 0x025a, 0xff96, 0x0470, 0x0777, 0x07b2, 0x0a2a,
+ 0x0965, 0x067e, 0x060e, 0x053b, 0x055f, 0x0693,
+ 0x0768, 0x0a49, 0x09d0, 0x0585, 0x050e, 0x0456,
+ 0x02d0, 0x0472, 0x0348, 0x028a, 0x04c9, 0x01d1,
+ 0x00eb, 0x059e, 0x03f3, 0x0195, 0x0588, 0x0685,
+ 0x0536, 0x08ca, 0x0e1e, 0x0e3f, 0x0a9e, 0x0b24,
+ 0x0a76, 0x0421, 0x066d, 0x0bbb, 0x03bd, 0xfdf2,
+ 0xff34, 0xf8b7, 0xf751, 0xffac, 0xfe78, 0xfb43,
+ 0x0046, 0xffde, 0xfc64, 0xfee4, 0xfe4f, 0xfa02,
+ 0xfa6e, 0xfbb3, 0xf8d5, 0xf638, 0xf6e2, 0xf50c,
+ 0xee0f, 0xebd4, 0xf04f, 0xef46, 0xe8f0, 0xe618,
+ 0xe502, 0xe4dd, 0xe735, 0xe730, 0xe3ff, 0xe19d,
+ 0xe13f, 0xe380, 0xe6f4, 0xe96c, 0xea73, 0xea22,
+ 0xed4c, 0xf4da, 0xf84b, 0xf92b, 0xfdca, 0x001a,
+ 0xff95, 0x0280, 0x046c, 0x049a, 0x096b, 0x0d4e,
+ 0x09e3, 0x068e, 0x0786, 0x0622, 0x0365, 0x0757,
+ 0x0c58, 0x0b30, 0x0b7f, 0x0d7e, 0x0b15, 0x0c28,
+ 0x105b, 0x0da1, 0x0bd0, 0x0ef4, 0x0cac, 0x0a67,
+ 0x0fd0, 0x11c1, 0x0b93, 0x07be, 0x09c1, 0x09b3,
+ 0x05e6, 0x05f7, 0x07bb, 0x054d, 0x0481, 0x04c0,
+ 0x0263, 0x0590, 0x09c0, 0x0814, 0x0d22, 0x146f,
+ 0x1236, 0x15a4, 0x1ec2, 0x1d70, 0x1ca3, 0x2330,
+ 0x2576, 0x23d1, 0x1fd6, 0x1bd0, 0x2023, 0x2333,
+ 0x1cf1, 0x1955, 0x17e2, 0x1214, 0x0fc0, 0x1204,
+ 0x1167, 0x0c72, 0x0769, 0x07ca, 0x0940, 0x0669,
+ 0x060e, 0x06ca, 0x0348, 0x0370, 0x050c, 0x016b,
+ 0x01a2, 0x03e9, 0xff72, 0xfc9b, 0xfec1, 0xffa7,
+ 0xff64, 0xfdd8, 0xfdaa, 0x014d, 0x0278, 0x01a1,
+ 0x0147, 0xff7d, 0x0360, 0x08de, 0x04aa, 0x04d3,
+ 0x0b99, 0x0721, 0x049f, 0x0d2d, 0x0bfe, 0x0678,
+ 0x0a82, 0x0c51, 0x0baf, 0x0c72, 0x06fa, 0x0422,
+ 0x07bd, 0x051d, 0x00d2, 0xff33, 0xf9a5, 0xf773,
+ 0xfa91, 0xfa5f, 0xfa8e, 0xfa28, 0xf420, 0xf18e,
+ 0xf419, 0xf4cf, 0xf5cd, 0xf67f, 0xf5e8, 0xf8d2,
+ 0xfbfd, 0xfc4e, 0xfdfe, 0xff73, 0xfe03, 0xfd01,
+ 0xff7e, 0x045b, 0x05c6, 0x038c, 0x036e, 0x0247,
+ 0xffcd, 0x02e7, 0x050e, 0x0213, 0x0342, 0x0574,
+ 0x025d, 0x0067, 0x0101, 0x0179, 0x00fe, 0xfdf7,
+ 0xfd45, 0xfe13, 0xfa5d, 0xfc91, 0x04e3, 0x02b6,
+ 0xff6d, 0x05b8, 0x053a, 0xfeed, 0x004f, 0x0172,
+ 0xffb8, 0x01fc, 0x02cb, 0x0170, 0x033b, 0x0451,
+ 0x041d, 0x04e9, 0x0209, 0xfcde, 0xfd63, 0x01fc,
+ 0x027d, 0xff0a, 0xff4e, 0x032a, 0x0351, 0x0262,
+ 0x05fd, 0x072b, 0x029b, 0x01d8, 0x0544, 0x0464,
+ 0x025f, 0x03da, 0x041e, 0x0505, 0x09a8, 0x0955,
+ 0x04b7, 0x061e, 0x07cb, 0x04da, 0x06ea, 0x0b27,
+ 0x08b5, 0x0661, 0x07b7, 0x0789, 0x07a7, 0x08f9,
+ 0x090d, 0x0aa7, 0x0d66, 0x0dd2, 0x0e45, 0x0ea6,
+ 0x0b9f, 0x091d, 0x09b0, 0x08d2, 0x083c, 0x0a4a,
+ 0x06f9, 0x0040, 0x0239, 0x04d4, 0xfcfe, 0xf82b,
+ 0xfc47, 0xfbaa, 0xf740, 0xf88f, 0xfabb, 0xf88d,
+ 0xf606, 0xf674, 0xf7be, 0xf672, 0xf569, 0xf7d5,
+ 0xf8ca, 0xf76e, 0xf791, 0xf66c, 0xf56f, 0xf878,
+ 0xf855, 0xf560, 0xf94d, 0xfce2, 0xf7e8, 0xf474,
+ 0xf65b, 0xf754, 0xf7a9, 0xf6d8, 0xf485, 0xf6a8,
+ 0xfa5a, 0xf7a5, 0xf34f, 0xf2de, 0xf21e, 0xf06b,
+ 0xf2d6, 0xf6d8, 0xf3fa, 0xedf2, 0xef99, 0xf34f,
+ 0xf0a3, 0xefb3, 0xf21b, 0xf041, 0xee30, 0xee67,
+ 0xed37, 0xedae, 0xef90, 0xf0aa, 0xf291, 0xf186,
+ 0xf092, 0xf53e, 0xf536, 0xf1fc, 0xf720, 0xf8de,
+ 0xf3d6, 0xf77e, 0xfc84, 0xf8fb, 0xf7fe, 0xfb85,
+ 0xfbdc, 0xf92e, 0xf763, 0xf93c, 0xfb16, 0xfa7c,
+ 0xfba7, 0xfba4, 0xf90e, 0xf983, 0xf996, 0xfa16,
+ 0xfedb, 0xfdc1, 0xf9b6, 0xfce5, 0xfc39, 0xf853,
+ 0xfc7d, 0xfe87, 0xfc64, 0xfdec, 0xfbf7, 0xf8cd,
+ 0xfae6, 0xfaa0, 0xfa12, 0xfc54, 0xfa6a, 0xf858,
+ 0xf868, 0xf6f2, 0xf9f7, 0xfdee, 0xfb7e, 0xfb4b,
+ 0xfd2f, 0xfab4, 0xfb20, 0xfdde, 0xfb86, 0xf981,
+ 0xfa3f, 0xf9d0, 0xfb6a, 0xfd98, 0xf8c9, 0xf3e0,
+ 0xf858, 0xfb06, 0xf5af, 0xf5ea, 0xf8fc, 0xf4a3,
+ 0xf627, 0xfd50, 0xf8b2, 0xf455, 0xfb0f, 0xfbc1,
+ 0xf797, 0xfb8b, 0xfdd5, 0xf860, 0xf5c5, 0xf82c,
+ 0xf809, 0xf4ff, 0xf586, 0xf85d, 0xf83d, 0xf826,
+ 0xf7e5, 0xf429, 0xf380, 0xf670, 0xf5ba, 0xf511,
+ 0xf7ae, 0xf94a, 0xf994, 0xf92d, 0xf8cd, 0xf91c,
+ 0xf841, 0xf8f0, 0xfb1b, 0xf9c0, 0xf896, 0xf838,
+ 0xf4ad, 0xf472, 0xf6e8, 0xf605, 0xf785, 0xf8c4,
+ 0xf5f4, 0xf870, 0xfa34, 0xf52e, 0xf674, 0xf8de,
+ 0xf442, 0xf7ba, 0xffb5, 0xfdac, 0xfc53, 0xff95,
+ 0xfda3, 0xfbb6, 0xfe0c, 0xff12, 0xff9d, 0x0048,
+ 0xfea4, 0xfd90, 0xfdb7, 0xfba8, 0xf93d, 0xf9bc,
+ 0xfb82, 0xfcf8, 0xfcdf, 0xf935, 0xf6af, 0xf8fa,
+ 0xf8ae, 0xf5f2, 0xf927, 0xfcab, 0xfbe2, 0xfd5f,
+ 0xfd98, 0xfa7c, 0xfc21, 0xfd46, 0xf92b, 0xf9fa,
+ 0xfe18, 0xfd5e, 0xfc9c, 0xfda2, 0xfcec, 0xfcee,
+ 0xfdb9, 0xfc74, 0xfc81, 0x0131, 0x0415, 0xfffb,
+ 0xfde2, 0x01a7, 0x01a9, 0x0136, 0x0677, 0x072f,
+ 0x0475, 0x0632, 0x0486, 0x017a, 0x041f, 0x029b,
+ 0xfd78, 0xfca6, 0xfadb, 0xfa23, 0xfd07, 0xfb18,
+ 0xf836, 0xf968, 0xf889, 0xf70c, 0xf671, 0xf495,
+ 0xf5ab, 0xf7e7, 0xf820, 0xf9c1, 0xfa0d, 0xf8cc,
+ 0xf9fd, 0xfa2f, 0xfb27, 0xfe8c, 0xfddf, 0xfdce,
+ 0x00d8, 0xfe5b, 0xfc80, 0xffc9, 0xfe06, 0xfafa,
+ 0xfc6b, 0xfac8, 0xf756, 0xf5db, 0xf2c3, 0xef70,
+ 0xeb46, 0xe5af, 0xe6cb, 0xebd5, 0xeba2, 0xebc6,
+ 0xedca, 0xea73, 0xe87c, 0xed86, 0xefdb, 0xee91,
+ 0xf0f1, 0xf364, 0xf30c, 0xf3e2, 0xf4da, 0xf49b,
+ 0xf57c, 0xf73e, 0xf8d9, 0xf920, 0xf7b3, 0xf7b1,
+ 0xf8cd, 0xf93b, 0xfb40, 0xfc9d, 0xfad0, 0xfb14,
+ 0xff33, 0x0400, 0x06de, 0x066f, 0x07d3, 0x0bf3,
+ 0x0b57, 0x0aff, 0x102e, 0x10d8, 0x0eb9, 0x1150,
+ 0x0f70, 0x0905, 0x081c, 0x0760, 0x0457, 0x0591,
+ 0x057f, 0x0080, 0xff62, 0x0257, 0x026b, 0x01d4,
+ 0x0480, 0x065d, 0x057c, 0x0783, 0x0c51, 0x0d78,
+ 0x0d6a, 0x1087, 0x1272, 0x124a, 0x1378, 0x1473,
+ 0x1555, 0x171b, 0x16a6, 0x14e4, 0x149b, 0x14cd,
+ 0x158b, 0x15ba, 0x13ed, 0x123f, 0x0fb4, 0x0c59,
+ 0x0bbf, 0x0a89, 0x079b, 0x0790, 0x06e4, 0x040d,
+ 0x02ed, 0x01a6, 0x02af, 0x06b5, 0x059d, 0x0465,
+ 0x0752, 0x04d9, 0x0310, 0x07bf, 0x05ec, 0x01a7,
+ 0x049d, 0x041d, 0x0062, 0x026f, 0x0349, 0x0111,
+ 0x031b, 0x0619, 0x053a, 0x0429, 0x057c, 0x0665,
+ 0x0607, 0x06c6, 0x06cc, 0x04ea, 0x04bf, 0x0510,
+ 0x0450, 0x0535, 0x0655, 0x0796, 0x0977, 0x075b,
+ 0x04e2, 0x06ca, 0x070a, 0x0690, 0x07af, 0x0417,
+ 0x0101, 0x03b4, 0x02a4, 0xffc9, 0x021f, 0x00c3,
+ 0xfc6a, 0xfff5, 0x039f, 0x0057, 0x007d, 0x0469,
+ 0x044d, 0x04d8, 0x0677, 0x0328, 0x0135, 0x033d,
+ 0x0263, 0x0187, 0x0259, 0x00b1, 0x00b5, 0x0283,
+ 0x01fd, 0x03d4, 0x0642, 0x0391, 0x01ac, 0x034d,
+ 0x0435, 0x0393, 0x0147, 0xffaa, 0x0038, 0xff7e,
+ 0xfec4, 0xff73, 0xfefc, 0xffa0, 0x0085, 0xfe1a,
+ 0xfcdd, 0xfdf4, 0xfe66, 0x00d8, 0x0492, 0x0645,
+ 0x068e, 0x0531, 0x0507, 0x084f, 0x08eb, 0x06e3,
+ 0x0812, 0x0871, 0x056b, 0x04e1, 0x066d, 0x05c9,
+ 0x046f, 0x045f, 0x05f9, 0x086c, 0x07d6, 0x04c5,
+ 0x048a, 0x05dd, 0x0629, 0x07c2, 0x08c9, 0x081c,
+ 0x0950, 0x0921, 0x062a, 0x0765, 0x0adb, 0x0aea,
+ 0x0ab6, 0x0ada, 0x0960, 0x0942, 0x0ab8, 0x09be,
+ 0x0654, 0x0595, 0x081c, 0x078e, 0x04aa, 0x04c1,
+ 0x0556, 0x0619, 0x0846, 0x07a7, 0x07e2, 0x0b86,
+ 0x0a81, 0x08c1, 0x0cd1, 0x0d2d, 0x088f, 0x07ee,
+ 0x0924, 0x08bc, 0x0987, 0x0af3, 0x0a66, 0x08ad,
+ 0x07f2, 0x0840, 0x0953, 0x0aad, 0x0951, 0x075e,
+ 0x0907, 0x099c, 0x07d5, 0x0789, 0x0561, 0x02ca,
+ 0x0379, 0x0153, 0xfe22, 0xff8f, 0xff40, 0xfc9d,
+ 0xfc3a, 0xfaaf, 0xf8a2, 0xf921, 0xf9b6, 0xfa0a,
+ 0xfae0, 0xfb5c, 0xfa2e, 0xf7e8, 0xf91f, 0xfb3c,
+ 0xf9f4, 0xfb3b, 0xfbd3, 0xf6ef, 0xf7da, 0xfbc2,
+ 0xf8bb, 0xf8a6, 0xfa70, 0xf66f, 0xf799, 0xfb83,
+ 0xf922, 0xfb25, 0xfe9c, 0xfa1b, 0xfa3a, 0xfef7,
+ 0xfcaa, 0xfb56, 0xfdb7, 0xfba5, 0xfa8d, 0xfd4e,
+ 0xfc19, 0xf85e, 0xf80b, 0xf901, 0xf82e, 0xf698,
+ 0xf50f, 0xf3cf, 0xf44f, 0xf5c2, 0xf486, 0xf0f7,
+ 0xef00, 0xef03, 0xefb1, 0xf1a9, 0xf3f0, 0xf4d2,
+ 0xf54c, 0xf5c5, 0xf5ce, 0xf65e, 0xf68d, 0xf61a,
+ 0xf767, 0xf82a, 0xf654, 0xf5b5, 0xf607, 0xf548,
+ 0xf578, 0xf5fb, 0xf6b9, 0xf90d, 0xf9af, 0xf80f,
+ 0xf7e8, 0xf8e6, 0xfa12, 0xfbf0, 0xfc83, 0xfc32,
+ 0xfd72, 0xfe8f, 0xff20, 0xffda, 0xfe58, 0xfc1d,
+ 0xfbf2, 0xfd0e, 0xfe08, 0xfbe1, 0xf924, 0xfb3e,
+ 0xfde0, 0xfe11, 0xfe26, 0xfcf5, 0xfbcd, 0xfcc6,
+ 0xfe23, 0xff49, 0x0042, 0x00a5, 0xff8e, 0xfe3c,
+ 0xffe3, 0x018b, 0x0090, 0x0052, 0xffff, 0xfe2b,
+ 0xfd2f, 0xfd04, 0xfe18, 0xfe7e, 0xfb24, 0xfa4f,
+ 0xfd8a, 0xfce9, 0xfb8e, 0xfd96, 0xfc80, 0xfa97,
+ 0xfe1f, 0x0112, 0x0057, 0x009c, 0x0167, 0x02ca,
+ 0x0567, 0x04d8, 0x033a, 0x02f7, 0x0096, 0x0037,
+ 0x0249, 0x00b5, 0xfec8, 0xfe4f, 0xfe1c, 0xfecf,
+ 0xfcfe, 0xfc33, 0xff92, 0x0026, 0xff91, 0x0109,
+ 0x0063, 0x00a2, 0x0356, 0x0339, 0x02c4, 0x04c7,
+ 0x0536, 0x046d, 0x03ea, 0x02b9, 0x032f, 0x045a,
+ 0x042c, 0x04bc, 0x0400, 0x023b, 0x033c, 0x03ea,
+ 0x0374, 0x0478, 0x04d2, 0x03ab, 0x02b0, 0x03df,
+ 0x06f9, 0x0755, 0x05eb, 0x0790, 0x08b5, 0x069b,
+ 0x05e6, 0x0742, 0x07f4, 0x07f2, 0x06a7, 0x0476,
+ 0x03d5, 0x0478, 0x046d, 0x0402, 0x0463, 0x0410,
+ 0x024e, 0x0244, 0x0391, 0x0375, 0x03f9, 0x0464,
+ 0x01b4, 0x00dc, 0x032a, 0x01d5, 0x0126, 0x0566,
+ 0x0556, 0x0280, 0x03b7, 0x0377, 0x0218, 0x03e6,
+ 0x0617, 0x05fd, 0x03c0, 0x03c8, 0x04a7, 0x01f0,
+ 0x021d, 0x0397, 0x010b, 0x01be, 0x02f0, 0xfff2,
+ 0x0028, 0x009e, 0xfdc8, 0xff07, 0x01a5, 0x005f,
+ 0x0027, 0x0109, 0x001c, 0x004a, 0x01b9, 0x0260,
+ 0x027b, 0x031f, 0x0498, 0x0405, 0x0323, 0x055e,
+ 0x0567, 0x0320, 0x0355, 0x02b8, 0x0069, 0xfeb4,
+ 0xfc39, 0xf9c5, 0xf8ad, 0xf7af, 0xf641, 0xf561,
+ 0xf558, 0xf4ae, 0xf37e, 0xf3a8, 0xf491, 0xf4b6,
+ 0xf471, 0xf411, 0xf37a, 0xf28e, 0xf185, 0xf201,
+ 0xf31e, 0xf2d3, 0xf2a1, 0xf244, 0xf1a4, 0xf287,
+ 0xf318, 0xf34f, 0xf3eb, 0xf46c, 0xf70f, 0xf9ca,
+ 0xfa30, 0xfb0c, 0xfd04, 0xfe88, 0xfe6c, 0xffea,
+ 0x03c3, 0x0357, 0x02ed, 0x07b8, 0x0958, 0x07f3,
+ 0x0944, 0x09b1, 0x07a8, 0x06fc, 0x079d, 0x0599,
+ 0x022c, 0x0097, 0xfe8f, 0xfbdd, 0xfa0e, 0xf944,
+ 0xfa51, 0xf922, 0xf5bf, 0xf6ed, 0xf8b8, 0xf7dd,
+ 0xfa33, 0xfc9b, 0xfc37, 0xfd52, 0xfe96, 0x003f,
+ 0x0297, 0x02a3, 0x03d5, 0x05ca, 0x066b, 0x076e,
+ 0x0662, 0x07cd, 0x0bb0, 0x0a7a, 0x0cbe, 0x1163,
+ 0x0e1a, 0x0cb7, 0x0eeb, 0x0d7e, 0x0cde, 0x0d7b,
+ 0x0dc2, 0x0dc9, 0x0bcf, 0x0aca, 0x0abb, 0x08f4,
+ 0x0825, 0x0815, 0x0669, 0x057f, 0x054e, 0x0301,
+ 0x0124, 0x0183, 0x0065, 0xfdf0, 0xfe10, 0xff4d,
+ 0xfe1f, 0xfd82, 0xff19, 0xfe8f, 0xfdfb, 0xfff0,
+ 0x006c, 0x0127, 0x03af, 0x0458, 0x04b0, 0x05ab,
+ 0x047f, 0x03a9, 0x05cb, 0x06d3, 0x0558, 0x05b1,
+ 0x072d, 0x06d7, 0x0765, 0x0a00, 0x0ad1, 0x09de,
+ 0x0ac2, 0x0b08, 0x0934, 0x091e, 0x08df, 0x0878,
+ 0x0a1d, 0x08bd, 0x0667, 0x06d2, 0x0513, 0x0332,
+ 0x03ca, 0x021a, 0xffa7, 0x0039, 0xffab, 0xfcf0,
+ 0xfd26, 0xfd91, 0xfbe2, 0xfc60, 0xfd0b, 0xfd3f,
+ 0xfe1a, 0xfd42, 0xfde5, 0xff22, 0xfe84, 0xfee5,
+ 0xfe1d, 0xfdbc, 0xfe9b, 0xfd5c, 0xfef2, 0x0076,
+ 0xfe49, 0x00c1, 0x0383, 0x0152, 0x00e2, 0x00e1,
+ 0x000f, 0x009f, 0x0066, 0x012e, 0x0121, 0xfe1c,
+ 0xff92, 0x01e7, 0xff69, 0x0023, 0x01a1, 0xff2f,
+ 0xffa0, 0x00e7, 0xffb0, 0xffe6, 0x008d, 0x0049,
+ 0x0031, 0x005c, 0x003c, 0xfeb3, 0xfdd0, 0xff23,
+ 0xfecb, 0xfce7, 0xfe79, 0xffff, 0xfdfd, 0xff0c,
+ 0x0202, 0x01ea, 0x01fc, 0x01a7, 0x00de, 0x00d3,
+ 0xff30, 0xfef3, 0xffa9, 0xff0f, 0x0096, 0x01f9,
+ 0x01b4, 0x0309, 0x0538, 0x0547, 0x039d, 0x0501,
+ 0x07df, 0x07d2, 0x0759, 0x0729, 0x079f, 0x0729,
+ 0x049f, 0x05e4, 0x067c, 0x0384, 0x056e, 0x07ae,
+ 0x06cd, 0x0776, 0x0788, 0x0794, 0x0801, 0x086f,
+ 0x0a46, 0x0947, 0x0821, 0x0997, 0x079f, 0x0692,
+ 0x0845, 0x064e, 0x0571, 0x0728, 0x073f, 0x073b,
+ 0x05d4, 0x045d, 0x041d, 0x0236, 0x025b, 0x02f7,
+ 0x00a2, 0x001f, 0xffc6, 0xfec5, 0xfe97, 0xfd02,
+ 0xfd85, 0xfebc, 0xfdce, 0xfec8, 0xff33, 0xfd60,
+ 0xfc61, 0xfcf2, 0xfdb1, 0xfca4, 0xfd67, 0xfe9d,
+ 0xfb18, 0xf864, 0xf855, 0xf82b, 0xf72a, 0xf4a5,
+ 0xf4f7, 0xf54b, 0xf264, 0xf2f5, 0xf3e9, 0xf1c9,
+ 0xf140, 0xf1cc, 0xf264, 0xf1ea, 0xf072, 0xf0f6,
+ 0xf0ca, 0xeeca, 0xee7c, 0xeee7, 0xee84, 0xeec7,
+ 0xef57, 0xef50, 0xef70, 0xef72, 0xefc8, 0xf044,
+ 0xeef8, 0xeeb3, 0xf0e3, 0xf25b, 0xf396, 0xf449,
+ 0xf3d2, 0xf421, 0xf427, 0xf4b6, 0xf643, 0xf54e,
+ 0xf49d, 0xf59e, 0xf3ca, 0xf2f6, 0xf546, 0xf50d,
+ 0xf43d, 0xf4b9, 0xf4b1, 0xf533, 0xf406, 0xf368,
+ 0xf52b, 0xf387, 0xf2c6, 0xf50c, 0xf518, 0xf5d6,
+ 0xf638, 0xf59a, 0xf711, 0xf6d5, 0xf6a4, 0xf815,
+ 0xf7a0, 0xf7dc, 0xf926, 0xf97f, 0xf977, 0xf980,
+ 0xf9d6, 0xf9c5, 0xfb24, 0xfd8c, 0xfdc0, 0xfd88,
+ 0xfe05, 0xfede, 0xffd9, 0x00b5, 0x026e, 0x02ca,
+ 0x02f0, 0x049b, 0x048c, 0x0515, 0x0612, 0x0521,
+ 0x0585, 0x04d2, 0x02e4, 0x0336, 0x0247, 0x0115,
+ 0x01ad, 0x00fd, 0x0019, 0xff16, 0xfcef, 0xfc76,
+ 0xfd29, 0xfd65, 0xfdfc, 0xfe40, 0xfe58, 0xfe72,
+ 0xfe01, 0xfead, 0xffb1, 0xfff1, 0x010c, 0x01d8,
+ 0x01b3, 0x019b, 0x019d, 0x0202, 0x017d, 0x00be,
+ 0x0174, 0x0257, 0x02b0, 0x01e9, 0x0103, 0x0006,
+ 0xfeaa, 0x00a7, 0x01c5, 0xff01, 0xffdc, 0x02a5,
+ 0x0313, 0x0366, 0x0324, 0x015f, 0xff0b, 0xffea,
+ 0x0292, 0x0180, 0x00c8, 0x01a2, 0x011c, 0x014f,
+ 0x00fb, 0x00ca, 0x0174, 0x006d, 0x006e, 0x00e8,
+ 0x0001, 0x003a, 0x005d, 0x0044, 0x00a0, 0xff60,
+ 0xfe94, 0xffdb, 0x0043, 0xffc0, 0x0028, 0x0021,
+ 0xffb7, 0x0089, 0x00bb, 0xff71, 0xfe93, 0xfe66,
+ 0xfe31, 0xfe3b, 0xfeb7, 0xfe53, 0xfd80, 0xfd6e,
+ 0xfd13, 0xfd91, 0xfee2, 0xfeec, 0xff84, 0x01c1,
+ 0x036c, 0x033e, 0x0398, 0x054f, 0x0497, 0x0421,
+ 0x0685, 0x0646, 0x0554, 0x069b, 0x0596, 0x0406,
+ 0x053e, 0x05e1, 0x04d2, 0x04c4, 0x0540, 0x04ab,
+ 0x0389, 0x0217, 0x0193, 0x0190, 0x0064, 0x0060,
+ 0x00ec, 0x006c, 0x00c3, 0x00e0, 0x00f4, 0x01d7,
+ 0x019c, 0x0139, 0x01bd, 0x0243, 0x0202, 0x01a1,
+ 0x028d, 0x034b, 0x02e2, 0x01f0, 0x0181, 0x0287,
+ 0x0276, 0x019f, 0x025d, 0x036c, 0x03fd, 0x034f,
+ 0x034b, 0x0407, 0x015b, 0xffdb, 0x011f, 0xfefd,
+ 0xfced, 0xfd83, 0xfca9, 0xfb27, 0xfa54, 0xf912,
+ 0xf79e, 0xf6dd, 0xf5fa, 0xf413, 0xf2de, 0xf2ce,
+ 0xf1ac, 0xef58, 0xee7d, 0xef3f, 0xeea6, 0xed2e,
+ 0xed06, 0xecd9, 0xec5c, 0xedf9, 0xf0ab, 0xf1c9,
+ 0xf2de, 0xf43c, 0xf53c, 0xf821, 0xfa43, 0xf9ea,
+ 0xfb06, 0xfcd9, 0xfdc4, 0xfddc, 0xfdf3, 0x0001,
+ 0x00fc, 0x010c, 0x032d, 0x03f7, 0x0454, 0x0626,
+ 0x0616, 0x0530, 0x04e5, 0x03d8, 0x02e8, 0x0284,
+ 0x014c, 0x002b, 0x0045, 0xff4a, 0xfde4, 0xfdd9,
+ 0xfcd7, 0xfc49, 0xfd7d, 0xfdc7, 0xfde3, 0xfe71,
+ 0xfebe, 0xffb3, 0x0105, 0x01ae, 0x0249, 0x0429,
+ 0x0627, 0x0761, 0x08c5, 0x09c1, 0x0ab9, 0x0bc9,
+ 0x0cfd, 0x0f79, 0x10c4, 0x1116, 0x129d, 0x13ad,
+ 0x156d, 0x1763, 0x1707, 0x16a0, 0x16d6, 0x169d,
+ 0x15f8, 0x1511, 0x14be, 0x13f8, 0x12be, 0x1256,
+ 0x114d, 0x0f1f, 0x0cfd, 0x0b75, 0x09e5, 0x07a5,
+ 0x05f3, 0x04ac, 0x02b4, 0x01df, 0x0277, 0x0236,
+ 0x01ef, 0x027d, 0x02a7, 0x031b, 0x0397, 0x03c4,
+ 0x04ef, 0x05bb, 0x0650, 0x0734, 0x0710, 0x07f5,
+ 0x08a3, 0x078c, 0x0802, 0x0811, 0x06cf, 0x06cd,
+ 0x0695, 0x0617, 0x057b, 0x0493, 0x04db, 0x0543,
+ 0x0544, 0x0504, 0x03fd, 0x0375, 0x03df, 0x046a,
+ 0x04a5, 0x048d, 0x0437, 0x04cb, 0x0697, 0x0630,
+ 0x04c2, 0x050d, 0x03fc, 0x034b, 0x03e0, 0x0223,
+ 0x015d, 0x01d5, 0x0066, 0xff58, 0xfe4e, 0xfcf5,
+ 0xfd1a, 0xfd2f, 0xfd33, 0xfdd8, 0xfd96, 0xfd2b,
+ 0xfd8e, 0xfd7e, 0xfd3e, 0xfdd0, 0xfe87, 0xfe89,
+ 0xfde4, 0xfdb6, 0xfe3d, 0xfe37, 0xfde7, 0xfdef,
+ 0xfe50, 0xfead, 0xfe57, 0xfea8, 0xff9f, 0x0025,
+ 0x0177, 0x0287, 0x0265, 0x0258, 0x0278, 0x0358,
+ 0x040f, 0x039f, 0x0394, 0x03dc, 0x0425, 0x0484,
+ 0x0476, 0x0428, 0x0395, 0x037f, 0x0409, 0x0415,
+ 0x037b, 0x02e0, 0x0387, 0x0450, 0x03e5, 0x03b9,
+ 0x0347, 0x0302, 0x038b, 0x025f, 0x0167, 0x022c,
+ 0x0167, 0x005b, 0x00f9, 0x00c2, 0x0054, 0x0173,
+ 0x01d9, 0x015c, 0x016b, 0x012b, 0x01d1, 0x031e,
+ 0x031e, 0x03c3, 0x04a5, 0x0470, 0x04f3, 0x0569,
+ 0x0510, 0x04dd, 0x0521, 0x05c7, 0x05ca, 0x05ba,
+ 0x0612, 0x0637, 0x071f, 0x07b4, 0x073b, 0x0731,
+ 0x0717, 0x0752, 0x07ce, 0x071e, 0x06ec, 0x0723,
+ 0x0665, 0x0694, 0x06f8, 0x0690, 0x0760, 0x07cb,
+ 0x0755, 0x07dc, 0x06d8, 0x058a, 0x063b, 0x04de,
+ 0x02da, 0x0317, 0x02ae, 0x019b, 0x00c7, 0x00b1,
+ 0x01e6, 0x0192, 0x0098, 0x016d, 0x013e, 0xffc7,
+ 0xffd5, 0x0071, 0x003d, 0x007c, 0x00ee, 0x0110,
+ 0x01d8, 0x019e, 0x0075, 0x00cf, 0x004b, 0xfe36,
+ 0xfda2, 0xfd8f, 0xfcd2, 0xfc87, 0xfc4e, 0xfc04,
+ 0xfbdb, 0xfade, 0xf9aa, 0xf90f, 0xf814, 0xf794,
+ 0xf72c, 0xf535, 0xf509, 0xf615, 0xf471, 0xf439,
+ 0xf5ec, 0xf4fa, 0xf453, 0xf5a0, 0xf5d7, 0xf5c7,
+ 0xf69c, 0xf6d7, 0xf63a, 0xf5f0, 0xf616, 0xf5ef,
+ 0xf5a7, 0xf5d6, 0xf5eb, 0xf578, 0xf5c0, 0xf6b0,
+ 0xf6b9, 0xf66e, 0xf679, 0xf640, 0xf618, 0xf60b,
+ 0xf577, 0xf510, 0xf5c0, 0xf61e, 0xf565, 0xf5ae,
+ 0xf68c, 0xf627, 0xf5e1, 0xf60d, 0xf621, 0xf6c9,
+ 0xf6e2, 0xf692, 0xf790, 0xf89b, 0xf8fb, 0xf978,
+ 0xf95f, 0xf92d, 0xf999, 0xf9fe, 0xfb17, 0xfc2e,
+ 0xfc30, 0xfd06, 0xfe57, 0xfec9, 0xff16, 0xff0e,
+ 0xff07, 0xfed6, 0xfdf7, 0xfe02, 0xfe95, 0xfedc,
+ 0xff1e, 0xfea4, 0xfe41, 0xfde6, 0xfdab, 0xfefa,
+ 0xfeba, 0xfcf0, 0xfdd4, 0xfec0, 0xfe1a, 0xfebf,
+ 0xff4f, 0xff0f, 0xff90, 0xffe3, 0xff8b, 0xff3e,
+ 0xff73, 0x0056, 0x00b4, 0x00ac, 0x0130, 0x00ae,
+ 0xff91, 0xffde, 0xffe5, 0xfef7, 0xfeed, 0xff3b,
+ 0xfee6, 0xfe7e, 0xfe8b, 0xff47, 0xfff0, 0xffe5,
+ 0x0008, 0x009a, 0x00a4, 0x0015, 0xffa3, 0xff7c,
+ 0xff93, 0xffa4, 0xff91, 0xffd4, 0x0032, 0x001b,
+ 0x000b, 0xfffd, 0xff95, 0xffae, 0x0002, 0xff99,
+ 0xffb2, 0x006e, 0x0002, 0xff53, 0xffaf, 0x0007,
+ 0x0035, 0x00d2, 0x0134, 0x0112, 0x013f, 0x01d8,
+ 0x020f, 0x0221, 0x029b, 0x030c, 0x0387, 0x0409,
+ 0x03e0, 0x0345, 0x0238, 0x00f5, 0x007d, 0xffc7,
+ 0xfe63, 0xfdc6, 0xfd01, 0xfbc4, 0xfbb8, 0xfc09,
+ 0xfc15, 0xfc91, 0xfd1f, 0xfdf1, 0xfe96, 0xfe56,
+ 0xfea7, 0xff8b, 0x0006, 0x0105, 0x0229, 0x0296,
+ 0x02d9, 0x02ab, 0x0226, 0x01f2, 0x01b1, 0x017e,
+ 0x0174, 0x0114, 0x00b9, 0x00df, 0x0138, 0x0121,
+ 0x00a3, 0x0086, 0x009d, 0x007b, 0x0062, 0x002d,
+ 0x0068, 0x0142, 0x0157, 0x0139, 0x01e2, 0x01c8,
+ 0x0124, 0x014e, 0x0161, 0x0119, 0x00e2, 0x0048,
+ 0xffd8, 0xffc9, 0xff43, 0xfea0, 0xfe7d, 0xfe9d,
+ 0xfeec, 0xff16, 0xff09, 0xff85, 0x0022, 0x0015,
+ 0x0056, 0x0102, 0x0094, 0xffdc, 0x0038, 0x002c,
+ 0xff3a, 0xfed0, 0xfe64, 0xfd3b, 0xfc1b, 0xfaff,
+ 0xf9db, 0xf8ad, 0xf697, 0xf476, 0xf382, 0xf26c,
+ 0xf0cc, 0xefcf, 0xef25, 0xee37, 0xed31, 0xec5b,
+ 0xec21, 0xec2a, 0xec58, 0xed5c, 0xee78, 0xef5e,
+ 0xf0f7, 0xf224, 0xf27b, 0xf397, 0xf4fc, 0xf60c,
+ 0xf73d, 0xf7ef, 0xf8d5, 0xfa98, 0xfbd6, 0xfcd3,
+ 0xfdc9, 0xfddf, 0xfea5, 0x0008, 0xfffa, 0xffa7,
+ 0xffd3, 0xff77, 0xff1b, 0xfe98, 0xfd9e, 0xfd46,
+ 0xfd26, 0xfc96, 0xfc2c, 0xfbcf, 0xfb80, 0xfb63,
+ 0xfb26, 0xfb2f, 0xfba1, 0xfc0d, 0xfcc6, 0xfdbe,
+ 0xfe44, 0xfe82, 0xfeee, 0xff39, 0xff30, 0xff7b,
+ 0x0041, 0x0112, 0x0250, 0x03ef, 0x04ee, 0x0592,
+ 0x06c5, 0x0832, 0x0935, 0x09e6, 0x0ac7, 0x0bd7,
+ 0x0cd7, 0x0df7, 0x0eeb, 0x0f49, 0x0f92, 0x0fda,
+ 0x0fb2, 0x0f24, 0x0e39, 0x0d23, 0x0c2f, 0x0afc,
+ 0x095e, 0x07f0, 0x06ae, 0x04ce, 0x02f8, 0x0285,
+ 0x020a, 0x0056, 0xff61, 0xff1e, 0xfdc8, 0xfc8b,
+ 0xfc24, 0xfbc4, 0xfbf7, 0xfc7f, 0xfcc9, 0xfd99,
+ 0xfe7e, 0xfef4, 0xffea, 0x0126, 0x01f5, 0x02ee,
+ 0x0433, 0x050e, 0x0572, 0x05d1, 0x066c, 0x0752,
+ 0x07d1, 0x075e, 0x06fe, 0x0725, 0x076a, 0x07f9,
+ 0x080b, 0x079f, 0x0858, 0x0900, 0x0899, 0x08f2,
+ 0x095e, 0x08e8, 0x0890, 0x07e7, 0x0792, 0x082f,
+ 0x0813, 0x081d, 0x08de, 0x0876, 0x07fa, 0x0848,
+ 0x084b, 0x085b, 0x081d, 0x07b9, 0x0800, 0x0777,
+ 0x069f, 0x069a, 0x05af, 0x04dc, 0x055f, 0x0504,
+ 0x0408, 0x03cc, 0x0376, 0x02eb, 0x02a8, 0x02c1,
+ 0x02aa, 0x01d7, 0x017f, 0x01b5, 0x0116, 0x0083,
+ 0x0088, 0x002e, 0xffc2, 0xff97, 0xffab, 0x0016,
+ 0x0058, 0x009b, 0x0116, 0x0142, 0x0147, 0x0170,
+ 0x0196, 0x014d, 0x00a2, 0x00ae, 0x00dd, 0xfffd,
+ 0xff8e, 0xffdc, 0xff88, 0xff7b, 0x0019, 0x0075,
+ 0x00ab, 0x00b4, 0x00de, 0x0181, 0x018e, 0x012e,
+ 0x014a, 0x0148, 0x0114, 0x00f2, 0x0053, 0xffb2,
+ 0xffd2, 0xffc5, 0xff07, 0xfeec, 0xff73, 0xff2a,
+ 0xfecc, 0xff52, 0xffbd, 0x0016, 0x00d0, 0x0140,
+ 0x018c, 0x01cd, 0x01b7, 0x01d9, 0x0225, 0x0239,
+ 0x0255, 0x0297, 0x0351, 0x044a, 0x04e4, 0x058c,
+ 0x061a, 0x05dd, 0x0529, 0x044c, 0x03d7, 0x03f9,
+ 0x03b5, 0x033a, 0x0310, 0x02e3, 0x0302, 0x0339,
+ 0x0342, 0x03c4, 0x0417, 0x0413, 0x04da, 0x05bb,
+ 0x0637, 0x070c, 0x07aa, 0x07c5, 0x081d, 0x088a,
+ 0x089c, 0x088e, 0x08b7, 0x08a5, 0x0817, 0x07f3,
+ 0x0814, 0x07a0, 0x0779, 0x07ff, 0x07fa, 0x0747,
+ 0x06d3, 0x06c2, 0x0660, 0x05bf, 0x0597, 0x0535,
+ 0x040b, 0x0311, 0x027a, 0x01f5, 0x013a, 0xffe4,
+ 0xfee4, 0xfe61, 0xfd51, 0xfca9, 0xfcb0, 0xfbf9,
+ 0xfb05, 0xfa94, 0xfa45, 0xf9ed, 0xf92f, 0xf86c,
+ 0xf82f, 0xf7a6, 0xf6df, 0xf66d, 0xf5da, 0xf52e,
+ 0xf490, 0xf3d1, 0xf34f, 0xf328, 0xf319, 0xf2c9,
+ 0xf249, 0xf285, 0xf30a, 0xf2cd, 0xf2aa, 0xf2ff,
+ 0xf35b, 0xf3fa, 0xf484, 0xf510, 0xf5e6, 0xf60a,
+ 0xf5e9, 0xf633, 0xf5bd, 0xf4fb, 0xf4d8, 0xf44e,
+ 0xf3ab, 0xf38e, 0xf2f5, 0xf217, 0xf1a9, 0xf144,
+ 0xf108, 0xf111, 0xf0bc, 0xf033, 0xf048, 0xf101,
+ 0xf19c, 0xf20c, 0xf2fb, 0xf403, 0xf4a4, 0xf58f,
+ 0xf6c9, 0xf7c9, 0xf8cf, 0xf9c7, 0xfa85, 0xfb74,
+ 0xfc8c, 0xfd98, 0xfe5a, 0xfe9a, 0xff1e, 0xffef,
+ 0x0022, 0x0072, 0x00f1, 0x0085, 0x0096, 0x01da,
+ 0x026a, 0x0298, 0x0378, 0x041c, 0x046a, 0x04b5,
+ 0x04ce, 0x050e, 0x0519, 0x04d8, 0x054a, 0x05fc,
+ 0x061f, 0x061a, 0x0603, 0x05f0, 0x05f8, 0x05ba,
+ 0x0570, 0x0546, 0x04f3, 0x0499, 0x0434, 0x03e9,
+ 0x03e9, 0x0380, 0x02b1, 0x0240, 0x0200, 0x01ee,
+ 0x0213, 0x01b7, 0x0118, 0x00f4, 0x0108, 0x00fd,
+ 0x00cb, 0x008f, 0x0089, 0x0076, 0x0017, 0xff95,
+ 0xff00, 0xfe86, 0xfe21, 0xfd87, 0xfd1b, 0xfcf9,
+ 0xfca1, 0xfc5e, 0xfc6b, 0xfc61, 0xfc76, 0xfcc0,
+ 0xfcca, 0xfcd3, 0xfd3a, 0xfddc, 0xfe6e, 0xfe90,
+ 0xfeb3, 0xff67, 0xffb2, 0xff3f, 0xff43, 0xff7e,
+ 0xff0b, 0xfe99, 0xfe88, 0xfe49, 0xfde4, 0xfd79,
+ 0xfce2, 0xfc4d, 0xfc04, 0xfbdf, 0xfb6c, 0xfabb,
+ 0xfa54, 0xfa32, 0xfa11, 0xfa2a, 0xfa69, 0xfaa8,
+ 0xfb4f, 0xfc61, 0xfd37, 0xfd98, 0xfdf6, 0xfea5,
+ 0xff45, 0xffa3, 0x0045, 0x00f6, 0x0126, 0x0158,
+ 0x01ab, 0x0199, 0x0191, 0x01bd, 0x0196, 0x0184,
+ 0x01e2, 0x0249, 0x027f, 0x024a, 0x01fd, 0x0217,
+ 0x01e6, 0x0149, 0x0103, 0x00a5, 0xffe0, 0xff38,
+ 0xfed3, 0xfef2, 0xff44, 0xff1b, 0xff32, 0xffa2,
+ 0xffa6, 0xfffb, 0x0096, 0x0090, 0x00c6, 0x0164,
+ 0x0176, 0x018b, 0x0203, 0x0266, 0x02b8, 0x02e0,
+ 0x0306, 0x037a, 0x03d9, 0x046c, 0x0584, 0x0649,
+ 0x06a5, 0x0714, 0x0759, 0x077b, 0x07a5, 0x07a3,
+ 0x076f, 0x0703, 0x066c, 0x05ce, 0x04fe, 0x040c,
+ 0x0306, 0x01c6, 0x00a2, 0xff7b, 0xfdb1, 0xfbd0,
+ 0xfa72, 0xf91e, 0xf78d, 0xf5f7, 0xf488, 0xf33d,
+ 0xf1ed, 0xf0d0, 0xf056, 0xf050, 0xf047, 0xf02f,
+ 0xf066, 0xf116, 0xf1f2, 0xf2ec, 0xf3e6, 0xf470,
+ 0xf4d2, 0xf56f, 0xf626, 0xf705, 0xf7bf, 0xf835,
+ 0xf931, 0xfa6c, 0xfb14, 0xfb98, 0xfc21, 0xfc77,
+ 0xfcc6, 0xfcf2, 0xfd55, 0xfdf9, 0xfdd2, 0xfd51,
+ 0xfd4a, 0xfd02, 0xfc84, 0xfc14, 0xfb3b, 0xfaab,
+ 0xfa7f, 0xf9e2, 0xf976, 0xf945, 0xf89a, 0xf839,
+ 0xf843, 0xf830, 0xf884, 0xf90f, 0xf987, 0xfa84,
+ 0xfbad, 0xfcba, 0xfe03, 0xfee6, 0xff65, 0x0076,
+ 0x01c1, 0x02ca, 0x0409, 0x0569, 0x06a2, 0x07fa,
+ 0x0998, 0x0b28, 0x0c44, 0x0cf5, 0x0d91, 0x0e27,
+ 0x0e9b, 0x0eda, 0x0ee6, 0x0ef1, 0x0f1c, 0x0f5f,
+ 0x0f93, 0x0f69, 0x0ecb, 0x0e10, 0x0d5b, 0x0c85,
+ 0x0b99, 0x0ac7, 0x09f7, 0x08e3, 0x07d1, 0x071d,
+ 0x0663, 0x054b, 0x0429, 0x0331, 0x024d, 0x0198,
+ 0x0134, 0x00f7, 0x0089, 0xffed, 0xffa8, 0xffd0,
+ 0xffe1, 0xffc4, 0xffc1, 0xffdf, 0x0014, 0x0055,
+ 0x0078, 0x00c0, 0x014a, 0x01a1, 0x01f0, 0x0298,
+ 0x0309, 0x0344, 0x03fa, 0x04ca, 0x0568, 0x062b,
+ 0x0690, 0x0683, 0x06c9, 0x06fc, 0x06bf, 0x06c1,
+ 0x06cd, 0x0693, 0x06ab, 0x06ee, 0x06ce, 0x0692,
+ 0x0678, 0x066f, 0x067e, 0x06a7, 0x06f2, 0x0740,
+ 0x0748, 0x072f, 0x0718, 0x06d8, 0x0684, 0x061f,
+ 0x0556, 0x0465, 0x03cc, 0x033c, 0x0253, 0x0191,
+ 0x0139, 0x00c8, 0x0070, 0x00ab, 0x00c5, 0x0057,
+ 0x001b, 0x0012, 0xffd8, 0xffc2, 0xffd5, 0xffd2,
+ 0x0003, 0x0061, 0x007c, 0x0048, 0xfffb, 0xffee,
+ 0x0026, 0x004b, 0x0085, 0x00f3, 0x013f, 0x0195,
+ 0x021a, 0x0268, 0x0296, 0x02e8, 0x0329, 0x034e,
+ 0x0388, 0x03dd, 0x0424, 0x044b, 0x0467, 0x0455,
+ 0x0409, 0x03cf, 0x039f, 0x0354, 0x0319, 0x02e1,
+ 0x02ba, 0x02b6, 0x0276, 0x0225, 0x0228, 0x0239,
+ 0x026f, 0x02da, 0x0310, 0x0343, 0x039f, 0x03d2,
+ 0x041a, 0x048b, 0x04c7, 0x04f6, 0x0560, 0x0600,
+ 0x0695, 0x06d0, 0x0705, 0x0766, 0x0783, 0x076e,
+ 0x078c, 0x07e9, 0x0872, 0x0901, 0x09aa, 0x0a4e,
+ 0x0a69, 0x0a54, 0x0a8b, 0x0abd, 0x0ae4, 0x0acc,
+ 0x0a34, 0x09c4, 0x0955, 0x0878, 0x082a, 0x084e,
+ 0x07cc, 0x0733, 0x06f2, 0x0696, 0x065a, 0x0655,
+ 0x0614, 0x0596, 0x052e, 0x051f, 0x0545, 0x054c,
+ 0x0519, 0x048c, 0x0402, 0x03fe, 0x03f6, 0x03aa,
+ 0x03a9, 0x03aa, 0x033f, 0x02b8, 0x021f, 0x0184,
+ 0x0123, 0x00aa, 0xfff7, 0xff4e, 0xfe96, 0xfe03,
+ 0xfdf5, 0xfddf, 0xfd89, 0xfd86, 0xfd66, 0xfcd0,
+ 0xfca0, 0xfc83, 0xfbc3, 0xfb3d, 0xfacb, 0xf99e,
+ 0xf8b2, 0xf848, 0xf7a3, 0xf739, 0xf6fe, 0xf686,
+ 0xf67d, 0xf69a, 0xf648, 0xf622, 0xf610, 0xf5d9,
+ 0xf5fb, 0xf614, 0xf5dc, 0xf5b7, 0xf57d, 0xf549,
+ 0xf561, 0xf56e, 0xf596, 0xf5d9, 0xf5b3, 0xf59e,
+ 0xf5d9, 0xf5a5, 0xf53e, 0xf53b, 0xf550, 0xf575,
+ 0xf5db, 0xf64e, 0xf6a9, 0xf6be, 0xf697, 0xf68c,
+ 0xf67f, 0xf64a, 0xf625, 0xf5fe, 0xf5da, 0xf5ea,
+ 0xf5e7, 0xf5ca, 0xf5d2, 0xf5e8, 0xf626, 0xf695,
+ 0xf6e3, 0xf730, 0xf77d, 0xf783, 0xf79b, 0xf7e0,
+ 0xf812, 0xf853, 0xf85e, 0xf817, 0xf829, 0xf874,
+ 0xf866, 0xf82f, 0xf80d, 0xf816, 0xf830, 0xf831,
+ 0xf884, 0xf936, 0xf9c2, 0xfa51, 0xfaff, 0xfb6e,
+ 0xfbb4, 0xfbd0, 0xfbbb, 0xfbf5, 0xfc77, 0xfcc7,
+ 0xfcdf, 0xfce3, 0xfcef, 0xfd14, 0xfd5b, 0xfdd3,
+ 0xfe38, 0xfe5e, 0xfea8, 0xff43, 0xffef, 0x0083,
+ 0x00fd, 0x0188, 0x022f, 0x02a3, 0x02b9, 0x0295,
+ 0x024e, 0x01ce, 0x0127, 0x00a2, 0x0036, 0xffb6,
+ 0xff4e, 0xfefe, 0xfe7e, 0xfdda, 0xfd5b, 0xfd21,
+ 0xfce1, 0xfc7f, 0xfc94, 0xfce8, 0xfca5, 0xfc5c,
+ 0xfcaf, 0xfd01, 0xfd4a, 0xfde0, 0xfe6c, 0xfed9,
+ 0xff5d, 0xffed, 0x0078, 0x00fb, 0x016d, 0x01b3,
+ 0x01b8, 0x0199, 0x0151, 0x00eb, 0x009b, 0x0057,
+ 0x0058, 0x00b3, 0x00df, 0x00f5, 0x0133, 0x0123,
+ 0x010b, 0x0154, 0x016c, 0x0136, 0x011f, 0x0123,
+ 0x013a, 0x0167, 0x0195, 0x01bd, 0x01c3, 0x01c5,
+ 0x01dd, 0x01d3, 0x01cd, 0x0209, 0x0255, 0x0294,
+ 0x02f4, 0x0391, 0x0413, 0x042d, 0x043d, 0x0457,
+ 0x0446, 0x047a, 0x04d6, 0x04d2, 0x04ee, 0x0544,
+ 0x0531, 0x0506, 0x0506, 0x04d0, 0x0478, 0x0424,
+ 0x03b0, 0x0329, 0x02b5, 0x026d, 0x0239, 0x01fb,
+ 0x01d7, 0x01bf, 0x0187, 0x013e, 0x010c, 0x010a,
+ 0x0108, 0x00ca, 0x008a, 0x0050, 0x0002, 0xffda,
+ 0xff9f, 0xff10, 0xfe99, 0xfe5d, 0xfe1f, 0xfdf1,
+ 0xfdfe, 0xfe35, 0xfe31, 0xfdff, 0xfe2f, 0xfe67,
+ 0xfe4e, 0xfe64, 0xfe5c, 0xfe1a, 0xfe4e, 0xfe4a,
+ 0xfdc4, 0xfded, 0xfe46, 0xfdef, 0xfdb0, 0xfd7a,
+ 0xfcd9, 0xfc8c, 0xfc99, 0xfc51, 0xfbc1, 0xfb41,
+ 0xfb09, 0xfac4, 0xfa07, 0xf941, 0xf895, 0xf7a0,
+ 0xf6d2, 0xf65e, 0xf5b8, 0xf519, 0xf4da, 0xf4ac,
+ 0xf481, 0xf47b, 0xf481, 0xf47c, 0xf45b, 0xf426,
+ 0xf400, 0xf3dc, 0xf3d7, 0xf413, 0xf43f, 0xf457,
+ 0xf4b8, 0xf554, 0xf618, 0xf70a, 0xf7d7, 0xf871,
+ 0xf92f, 0xf9f6, 0xfa80, 0xfaef, 0xfb6b, 0xfbfa,
+ 0xfc8b, 0xfce0, 0xfcf1, 0xfd06, 0xfd2c, 0xfd39,
+ 0xfd30, 0xfd2a, 0xfd08, 0xfcaf, 0xfc51, 0xfbfc,
+ 0xfb7b, 0xfac5, 0xfa1b, 0xf9b8, 0xf989, 0xf966,
+ 0xf98d, 0xfa20, 0xfabb, 0xfb55, 0xfc1e, 0xfcc8,
+ 0xfd5f, 0xfe30, 0xfed4, 0xff38, 0xffca, 0x004d,
+ 0x0086, 0x00b7, 0x0110, 0x01a3, 0x023b, 0x02b7,
+ 0x0361, 0x040a, 0x047b, 0x0523, 0x05ea, 0x06a7,
+ 0x07ac, 0x0890, 0x0913, 0x09cf, 0x0a91, 0x0adb,
+ 0x0af9, 0x0b0e, 0x0b16, 0x0b32, 0x0b57, 0x0b81,
+ 0x0b98, 0x0b7e, 0x0b3c, 0x0ab5, 0x0a02, 0x0957,
+ 0x0860, 0x0728, 0x0647, 0x05cb, 0x056d, 0x04f2,
+ 0x045a, 0x0413, 0x041d, 0x042f, 0x0467, 0x0487,
+ 0x043b, 0x03f8, 0x03da, 0x036d, 0x02eb, 0x02c0,
+ 0x02b1, 0x029d, 0x02d7, 0x034a, 0x039d, 0x0416,
+ 0x04c3, 0x0536, 0x0590, 0x05fb, 0x063d, 0x0688,
+ 0x06e7, 0x071b, 0x074d, 0x0767, 0x074a, 0x073c,
+ 0x073a, 0x0740, 0x075b, 0x073a, 0x06e4, 0x0684,
+ 0x060a, 0x05b5, 0x058b, 0x0573, 0x0590, 0x056a,
+ 0x04e6, 0x04cb, 0x04cc, 0x0445, 0x03c7, 0x03a8,
+ 0x0394, 0x03a3, 0x0402, 0x0475, 0x04a5, 0x049b,
+ 0x0483, 0x043f, 0x03cf, 0x0368, 0x0307, 0x0296,
+ 0x0214, 0x01ae, 0x0183, 0x0152, 0x0138, 0x0177,
+ 0x01a0, 0x01b9, 0x0231, 0x0291, 0x029a, 0x02a5,
+ 0x029c, 0x0277, 0x0268, 0x027d, 0x02b0, 0x02b6,
+ 0x029a, 0x02ce, 0x031f, 0x035b, 0x03a2, 0x03c5,
+ 0x03e9, 0x0438, 0x0461, 0x0480, 0x04a9, 0x0483,
+ 0x043b, 0x040f, 0x03d0, 0x038a, 0x0349, 0x02ef,
+ 0x026c, 0x01c3, 0x0110, 0x006e, 0xffe8, 0xff86,
+ 0xff18, 0xfe89, 0xfe14, 0xfdda, 0xfdc5, 0xfd8f,
+ 0xfd3d, 0xfd4e, 0xfdb4, 0xfe1d, 0xfec9, 0xffac,
+ 0x005e, 0x00dd, 0x0132, 0x0171, 0x01a8, 0x01a8,
+ 0x01a3, 0x01e2, 0x0228, 0x025a, 0x0298, 0x02df,
+ 0x033d, 0x03c4, 0x045e, 0x04f2, 0x0596, 0x063f,
+ 0x0697, 0x06d5, 0x075f, 0x07be, 0x07be, 0x07bc,
+ 0x0792, 0x0753, 0x073a, 0x06e3, 0x0671, 0x064f,
+ 0x064d, 0x0678, 0x06d1, 0x070e, 0x0758, 0x07a8,
+ 0x07d5, 0x07fc, 0x07fd, 0x0804, 0x0848, 0x085e,
+ 0x086b, 0x08b3, 0x08c1, 0x08a9, 0x08af, 0x0888,
+ 0x083f, 0x0805, 0x07e9, 0x07f5, 0x07d1, 0x079b,
+ 0x07af, 0x0781, 0x06f0, 0x068c, 0x062e, 0x05be,
+ 0x058f, 0x0569, 0x04fe, 0x0477, 0x0413, 0x03dc,
+ 0x0392, 0x0322, 0x02b0, 0x0222, 0x017a, 0x00da,
+ 0x0018, 0xff3c, 0xfe66, 0xfd6b, 0xfc69, 0xfbbe,
+ 0xfb45, 0xfabf, 0xfa5d, 0xfa40, 0xfa32, 0xfa25,
+ 0xfa1f, 0xfa04, 0xf9d0, 0xf998, 0xf95d, 0xf920,
+ 0xf8c7, 0xf858, 0xf80a, 0xf7d8, 0xf7be, 0xf7d8,
+ 0xf7e2, 0xf7a0, 0xf740, 0xf6e4, 0xf68d, 0xf647,
+ 0xf606, 0xf5ab, 0xf547, 0xf500, 0xf4d8, 0xf4c9,
+ 0xf4e1, 0xf4f6, 0xf4de, 0xf4c6, 0xf4bc, 0xf49c,
+ 0xf47a, 0xf455, 0xf3f2, 0xf348, 0xf29f, 0xf237,
+ 0xf1d6, 0xf166, 0xf158, 0xf1ab, 0xf217, 0xf2d2,
+ 0xf3b8, 0xf486, 0xf56f, 0xf644, 0xf6cf, 0xf74e,
+ 0xf798, 0xf7a3, 0xf7a7, 0xf76c, 0xf71c, 0xf708,
+ 0xf6e5, 0xf6cc, 0xf6ec, 0xf6e0, 0xf6d4, 0xf707,
+ 0xf73a, 0xf7a3, 0xf843, 0xf8a1, 0xf8ec, 0xf960,
+ 0xf9dc, 0xfa87, 0xfb37, 0xfb9d, 0xfc01, 0xfc7b,
+ 0xfce5, 0xfd66, 0xfdef, 0xfe52, 0xfeac, 0xff00,
+ 0xff23, 0xff15, 0xfeee, 0xfebd, 0xfe7e, 0xfe3c,
+ 0xfe01, 0xfdae, 0xfd5f, 0xfd55, 0xfd61, 0xfd71,
+ 0xfdad, 0xfdc5, 0xfd8e, 0xfd5f, 0xfd3e, 0xfd12,
+ 0xfd08, 0xfcf7, 0xfcb5, 0xfc92, 0xfcae, 0xfcb1,
+ 0xfc8e, 0xfca3, 0xfcf0, 0xfd14, 0xfd10, 0xfd18,
+ 0xfd1f, 0xfd3f, 0xfd80, 0xfd76, 0xfd29, 0xfd25,
+ 0xfd5b, 0xfd57, 0xfd2a, 0xfd27, 0xfd50, 0xfd8c,
+ 0xfdda, 0xfe26, 0xfe77, 0xfef7, 0xff7f, 0xffda,
+ 0x001d, 0x0035, 0x000b, 0xffd8, 0xffb9, 0xffad,
+ 0xffa8, 0xff7d, 0xff57, 0xff57, 0xff4a, 0xff60,
+ 0xffbe, 0x0005, 0x002e, 0x0060, 0x007d, 0x0094,
+ 0x0098, 0x0051, 0x000b, 0xffef, 0xffc3, 0xff8c,
+ 0xff67, 0xff57, 0xff66, 0xff81, 0xff9c, 0xffce,
+ 0x000d, 0x0042, 0x0059, 0x0064, 0x008f, 0x00b5,
+ 0x00a8, 0x00a9, 0x00db, 0x0116, 0x017a, 0x0206,
+ 0x0267, 0x02b6, 0x0319, 0x0363, 0x0399, 0x03bf,
+ 0x03b5, 0x03c8, 0x0419, 0x041f, 0x03d8, 0x03b5,
+ 0x039b, 0x0358, 0x0315, 0x02db, 0x02a6, 0x0288,
+ 0x0291, 0x02af, 0x02a6, 0x0260, 0x0217, 0x01cf,
+ 0x0166, 0x010c, 0x0102, 0x0130, 0x0154, 0x017e,
+ 0x01d8, 0x020c, 0x01e2, 0x01b3, 0x018d, 0x014b,
+ 0x011b, 0x00dc, 0x005c, 0xffe1, 0xff7f, 0xff15,
+ 0xfeb4, 0xfe48, 0xfdc8, 0xfd4a, 0xfc96, 0xfbad,
+ 0xfaf4, 0xfa66, 0xf9ca, 0xf935, 0xf8c9, 0xf874,
+ 0xf80e, 0xf797, 0xf73e, 0xf6ff, 0xf6c3, 0xf6ad,
+ 0xf6cc, 0xf717, 0xf7a6, 0xf85d, 0xf911, 0xf9d4,
+ 0xfa94, 0xfb1a, 0xfb6b, 0xfba1, 0xfbcb, 0xfbef,
+ 0xfbff, 0xfc17, 0xfc43, 0xfc4f, 0xfc36, 0xfc29,
+ 0xfc14, 0xfbe3, 0xfbe1, 0xfc27, 0xfc6c, 0xfcaf,
+ 0xfd1d, 0xfd80, 0xfdc7, 0xfe2c, 0xfe85, 0xfeaa,
+ 0xfedb, 0xff21, 0xff6d, 0xffcc, 0x0012, 0x004c,
+ 0x00b9, 0x0118, 0x0154, 0x01b6, 0x0214, 0x0243,
+ 0x0270, 0x028f, 0x02af, 0x030a, 0x0368, 0x039b,
+ 0x03e4, 0x043a, 0x045e, 0x0482, 0x04c0, 0x04e3,
+ 0x0502, 0x0537, 0x0555, 0x0570, 0x05a4, 0x05ce,
+ 0x0618, 0x0686, 0x06b2, 0x06c9, 0x0722, 0x078d,
+ 0x07fc, 0x086b, 0x08b2, 0x08e6, 0x08e7, 0x0897,
+ 0x0866, 0x084a, 0x07e8, 0x0775, 0x06ed, 0x0642,
+ 0x05c9, 0x0552, 0x049c, 0x0411, 0x03c9, 0x038b,
+ 0x0372, 0x038b, 0x03b2, 0x03d1, 0x03d6, 0x03d5,
+ 0x03cd, 0x03a6, 0x0395, 0x039c, 0x036e, 0x0327,
+ 0x030b, 0x02ee, 0x02ab, 0x0269, 0x0244, 0x021b,
+ 0x01cb, 0x0181, 0x0166, 0x0143, 0x0119, 0x0122,
+ 0x0140, 0x014a, 0x014a, 0x0133, 0x0117, 0x0108,
+ 0x00e4, 0x00d1, 0x00fd, 0x012b, 0x014e, 0x0184,
+ 0x01a3, 0x019e, 0x019f, 0x019e, 0x0188, 0x016d,
+ 0x015e, 0x015d, 0x016d, 0x0196, 0x01c8, 0x01dc,
+ 0x01e2, 0x0215, 0x0260, 0x0287, 0x02a6, 0x02f5,
+ 0x034c, 0x0374, 0x0382, 0x0379, 0x0358, 0x034b,
+ 0x034d, 0x0352, 0x0379, 0x03a2, 0x03ba, 0x0400,
+ 0x0451, 0x045d, 0x045d, 0x0497, 0x04d8, 0x04e6,
+ 0x04f5, 0x0549, 0x05ad, 0x05f7, 0x0641, 0x066c,
+ 0x0679, 0x068f, 0x066f, 0x0615, 0x05e7, 0x05cf,
+ 0x0595, 0x0559, 0x0520, 0x04e4, 0x04b7, 0x0493,
+ 0x047a, 0x045a, 0x0414, 0x03d8, 0x03c7, 0x03bc,
+ 0x03b0, 0x03a0, 0x0361, 0x02ef, 0x0274, 0x01f0,
+ 0x0144, 0x00a4, 0x0052, 0x0018, 0xffd9, 0xffdd,
+ 0x001f, 0x0057, 0x0094, 0x00f3, 0x0140, 0x015f,
+ 0x017c, 0x0199, 0x01a6, 0x01c9, 0x0218, 0x026a,
+ 0x02bf, 0x0323, 0x0374, 0x03ae, 0x03e0, 0x0408,
+ 0x042d, 0x045c, 0x049d, 0x04e7, 0x052c, 0x056e,
+ 0x0591, 0x058a, 0x0596, 0x059b, 0x055a, 0x0523,
+ 0x0522, 0x0525, 0x0545, 0x0572, 0x055e, 0x053f,
+ 0x0546, 0x0536, 0x0513, 0x04f6, 0x04c7, 0x049f,
+ 0x048e, 0x0468, 0x0442, 0x0445, 0x0438, 0x03f0,
+ 0x039d, 0x0355, 0x030a, 0x02cb, 0x0276, 0x01ff,
+ 0x01bc, 0x01a0, 0x015f, 0x0127, 0x0116, 0x0108,
+ 0x00f5, 0x00cc, 0x00a4, 0x00a7, 0x009f, 0x0089,
+ 0x00a0, 0x00ae, 0x008a, 0x0058, 0x0021, 0x0007,
+ 0xffee, 0xff8a, 0xff28, 0xfee1, 0xfe56, 0xfdcb,
+ 0xfd90, 0xfd65, 0xfd47, 0xfd45, 0xfd3f, 0xfd4a,
+ 0xfd58, 0xfd51, 0xfd5c, 0xfd65, 0xfd4a, 0xfd28,
+ 0xfcf3, 0xfcc1, 0xfcd0, 0xfce0, 0xfcd1, 0xfce9,
+ 0xfd06, 0xfd02, 0xfd20, 0xfd4d, 0xfd4c, 0xfd42,
+ 0xfd40, 0xfd33, 0xfd2f, 0xfd40, 0xfd56, 0xfd61,
+ 0xfd61, 0xfd75, 0xfd96, 0xfd9e, 0xfda1, 0xfdbe,
+ 0xfde3, 0xfe08, 0xfe42, 0xfe90, 0xfedb, 0xff18,
+ 0xff46, 0xff72, 0xffb9, 0x0030, 0x00ca, 0x0156,
+ 0x01c4, 0x022b, 0x028c, 0x02d0, 0x030b, 0x0358,
+ 0x0387, 0x0376, 0x0365, 0x0370, 0x035e, 0x0337,
+ 0x0319, 0x02e7, 0x02ae, 0x029b, 0x0290, 0x026e,
+ 0x0262, 0x0277, 0x0265, 0x0221, 0x01e5, 0x01a7,
+ 0x014d, 0x0103, 0x00dc, 0x00b3, 0x0084, 0x004c,
+ 0x0012, 0xfffb, 0xfff6, 0xffce, 0xff75, 0xfed8,
+ 0xfdf6, 0xfd2f, 0xfcb8, 0xfc40, 0xfbb1, 0xfb5e,
+ 0xfb3a, 0xfb13, 0xfb0e, 0xfb1f, 0xfb18, 0xfb0c,
+ 0xfaed, 0xfab1, 0xfa8c, 0xfa81, 0xfa84, 0xfaa1,
+ 0xfaa3, 0xfa5f, 0xf9ef, 0xf96d, 0xf8ea, 0xf85c,
+ 0xf7ca, 0xf75e, 0xf708, 0xf6b6, 0xf69e, 0xf6aa,
+ 0xf6b1, 0xf6c1, 0xf6bd, 0xf6b5, 0xf6df, 0xf6f3,
+ 0xf6da, 0xf6fa, 0xf75b, 0xf7b0, 0xf7e6, 0xf81d,
+ 0xf855, 0xf865, 0xf861, 0xf880, 0xf8ad, 0xf8f5,
+ 0xf982, 0xfa1a, 0xfa9d, 0xfb11, 0xfb5b, 0xfb90,
+ 0xfbcb, 0xfbf6, 0xfc1d, 0xfc2d, 0xfc0d, 0xfc12,
+ 0xfc4b, 0xfc6c, 0xfc8f, 0xfcd3, 0xfcf9, 0xfce1,
+ 0xfcae, 0xfc90, 0xfc7f, 0xfc5b, 0xfc42, 0xfc41,
+ 0xfc2e, 0xfc13, 0xfc12, 0xfc18, 0xfc10, 0xfc06,
+ 0xfc1b, 0xfc55, 0xfc87, 0xfc9e, 0xfcb4, 0xfcb9,
+ 0xfca1, 0xfc8c, 0xfc82, 0xfc76, 0xfc73, 0xfc95,
+ 0xfcd2, 0xfd0a, 0xfd32, 0xfd4e, 0xfd5a, 0xfd52,
+ 0xfd4e, 0xfd6e, 0xfda9, 0xfde9, 0xfe2c, 0xfe64,
+ 0xfe8d, 0xfec3, 0xfee2, 0xfec2, 0xfe9d, 0xfe84,
+ 0xfe4f, 0xfe12, 0xfdcb, 0xfd6c, 0xfd36, 0xfd0f,
+ 0xfc9f, 0xfc2c, 0xfbe8, 0xfb88, 0xfb26, 0xfae5,
+ 0xfa97, 0xfa6e, 0xfa7d, 0xfa80, 0xfaa8, 0xfaf8,
+ 0xfb07, 0xfb00, 0xfb0c, 0xfad3, 0xfa79, 0xfa49,
+ 0xfa1f, 0xf9f9, 0xf9e5, 0xf9d1, 0xf9bc, 0xf99f,
+ 0xf989, 0xf982, 0xf95d, 0xf941, 0xf95e, 0xf982,
+ 0xf9be, 0xfa25, 0xfa6e, 0xfa96, 0xfaab, 0xfaa2,
+ 0xfad1, 0xfb4f, 0xfbc8, 0xfc37, 0xfca9, 0xfd28,
+ 0xfdbf, 0xfe4c, 0xfed5, 0xff67, 0xffd7, 0x0041,
+ 0x00c5, 0x0138, 0x01ab, 0x0221, 0x026d, 0x02bc,
+ 0x0306, 0x0310, 0x0314, 0x032b, 0x0333, 0x033f,
+ 0x0346, 0x032c, 0x02fa, 0x02bd, 0x02a1, 0x02b2,
+ 0x029f, 0x0271, 0x0266, 0x0261, 0x0258, 0x0282,
+ 0x02dc, 0x0353, 0x03e5, 0x0458, 0x047a, 0x046b,
+ 0x0444, 0x03f0, 0x0395, 0x0366, 0x0342, 0x0313,
+ 0x0302, 0x02fc, 0x02cf, 0x02a4, 0x0297, 0x0262,
+ 0x0206, 0x01cd, 0x01a8, 0x0187, 0x016e, 0x011b,
+ 0x0096, 0x0037, 0xffe3, 0xff7e, 0xff4c, 0xff2e,
+ 0xfee9, 0xfe99, 0xfe52, 0xfe0c, 0xfdb8, 0xfd46,
+ 0xfcd9, 0xfc6c, 0xfbe5, 0xfb70, 0xfb08, 0xfa93,
+ 0xfa46, 0xfa24, 0xfa02, 0xf9f1, 0xf9de, 0xf9a2,
+ 0xf959, 0xf932, 0xf937, 0xf95a, 0xf98e, 0xf9e2,
+ 0xfa45, 0xfa94, 0xfadf, 0xfb2c, 0xfb69, 0xfb94,
+ 0xfbab, 0xfbb3, 0xfba5, 0xfb7e, 0xfb69, 0xfb81,
+ 0xfb93, 0xfb80, 0xfb4f, 0xfafc, 0xfa9b, 0xfa6c,
+ 0xfa86, 0xfac7, 0xfb23, 0xfb97, 0xfbfb, 0xfc50,
+ 0xfcba, 0xfd0f, 0xfd30, 0xfd4e, 0xfd73, 0xfd9d,
+ 0xfdf0, 0xfe57, 0xfeab, 0xfef6, 0xff2a, 0xff32,
+ 0xff36, 0xff66, 0xffbf, 0x002a, 0x00a5, 0x0135,
+ 0x01c9, 0x0243, 0x02ae, 0x0312, 0x0353, 0x036b,
+ 0x0368, 0x0351, 0x0342, 0x034d, 0x0365, 0x0396,
+ 0x03ee, 0x0449, 0x0497, 0x04e8, 0x0524, 0x0534,
+ 0x052d, 0x0528, 0x052d, 0x0553, 0x05b0, 0x0618,
+ 0x064e, 0x064f, 0x061c, 0x05b8, 0x0561, 0x0533,
+ 0x0511, 0x0500, 0x0505, 0x04f5, 0x04b9, 0x0464,
+ 0x040f, 0x03b9, 0x0362, 0x032c, 0x02f9, 0x02b1,
+ 0x0298, 0x02a7, 0x02a3, 0x02bc, 0x02e0, 0x02b4,
+ 0x026b, 0x0234, 0x01ed, 0x01c1, 0x01b9, 0x01a2,
+ 0x019f, 0x01c2, 0x01c2, 0x01b0, 0x01c7, 0x01e3,
+ 0x01e7, 0x01fe, 0x021f, 0x0234, 0x0264, 0x02a1,
+ 0x02c3, 0x02e5, 0x0306, 0x030d, 0x031a, 0x0345,
+ 0x0383, 0x03cd, 0x040c, 0x0438, 0x045d, 0x046a,
+ 0x0449, 0x03f3, 0x0396, 0x0355, 0x02fb, 0x0285,
+ 0x0247, 0x0233, 0x0229, 0x0242, 0x026a, 0x029a,
+ 0x02d1, 0x02db, 0x02cd, 0x02e4, 0x031c, 0x0378,
+ 0x03f8, 0x0466, 0x0499, 0x0484, 0x044c, 0x042c,
+ 0x0437, 0x046f, 0x04d4, 0x054e, 0x05b5, 0x05f7,
+ 0x062b, 0x0676, 0x06cf, 0x072b, 0x077c, 0x07a9,
+ 0x07af, 0x0790, 0x075a, 0x073a, 0x070a, 0x069f,
+ 0x062b, 0x05a4, 0x04f1, 0x0449, 0x03c4, 0x0387,
+ 0x03b1, 0x03fb, 0x043b, 0x047d, 0x0495, 0x0483,
+ 0x047a, 0x0468, 0x044f, 0x0462, 0x0483, 0x048f,
+ 0x04b3, 0x04ed, 0x04f5, 0x04f1, 0x04ff, 0x04b0,
+ 0x040e, 0x03a8, 0x036b, 0x033a, 0x0350, 0x0378,
+ 0x0377, 0x0376, 0x036d, 0x0347, 0x031a, 0x02dd,
+ 0x0291, 0x024d, 0x0212, 0x01d9, 0x01a7, 0x0192,
+ 0x0183, 0x0138, 0x00ca, 0x006b, 0x0007, 0xffaf,
+ 0xff84, 0xff77, 0xff66, 0xff46, 0xff30, 0xff2c,
+ 0xff11, 0xfeef, 0xfef7, 0xff0a, 0xff26, 0xff6a,
+ 0xffc6, 0x0031, 0x00a6, 0x00fe, 0x0133, 0x0166,
+ 0x01a7, 0x01e9, 0x021a, 0x0248, 0x0292, 0x02ee,
+ 0x0337, 0x035e, 0x0370, 0x0363, 0x0333, 0x031a,
+ 0x0322, 0x031a, 0x0339, 0x039a, 0x03da, 0x03ef,
+ 0x0407, 0x0404, 0x03ed, 0x03d6, 0x039a, 0x0352,
+ 0x0335, 0x0326, 0x0310, 0x0305, 0x02f5, 0x02d9,
+ 0x02c7, 0x02b5, 0x0294, 0x027e, 0x0289, 0x02b3,
+ 0x02e5, 0x02f2, 0x02dc, 0x02ba, 0x0266, 0x01d5,
+ 0x0134, 0x0077, 0xffba, 0xff2f, 0xfea6, 0xfe25,
+ 0xfdf3, 0xfdde, 0xfdaa, 0xfd7d, 0xfd56, 0xfd22,
+ 0xfcf1, 0xfcc7, 0xfcad, 0xfcb2, 0xfcd2, 0xfcf2,
+ 0xfcea, 0xfcc2, 0xfcab, 0xfca4, 0xfc98, 0xfca7,
+ 0xfcf0, 0xfd4c, 0xfd93, 0xfdc5, 0xfdd8, 0xfdc8,
+ 0xfdb6, 0xfd94, 0xfd65, 0xfd64, 0xfd7b, 0xfd8a,
+ 0xfdbe, 0xfdfa, 0xfe1a, 0xfe49, 0xfe5d, 0xfe31,
+ 0xfe10, 0xfdf1, 0xfdba, 0xfdac, 0xfdd3, 0xfe17,
+ 0xfe7f, 0xfed6, 0xfefb, 0xff33, 0xff9f, 0x0000,
+ 0x0044, 0x0092, 0x00e9, 0x0141, 0x01b6, 0x0220,
+ 0x024f, 0x0267, 0x0268, 0x0240, 0x0229, 0x0226,
+ 0x021c, 0x0233, 0x0260, 0x028b, 0x02d5, 0x031a,
+ 0x0318, 0x02da, 0x028e, 0x024f, 0x01fe, 0x018e,
+ 0x0153, 0x0159, 0x0140, 0x00f7, 0x0088, 0xfff0,
+ 0xff5f, 0xfee6, 0xfe89, 0xfe74, 0xfe98, 0xfed9,
+ 0xff35, 0xff86, 0xffe1, 0x0051, 0x0099, 0x00cc,
+ 0x0115, 0x014b, 0x0183, 0x01c6, 0x01e9, 0x0213,
+ 0x0245, 0x0250, 0x0264, 0x0271, 0x022a, 0x01bb,
+ 0x0157, 0x00f4, 0x008f, 0x0025, 0xffbb, 0xff49,
+ 0xfec4, 0xfe48, 0xfdd5, 0xfd5b, 0xfd04, 0xfccb,
+ 0xfc8a, 0xfc57, 0xfc2c, 0xfbeb, 0xfbb2, 0xfb8a,
+ 0xfb5d, 0xfb3c, 0xfb3f, 0xfb5f, 0xfb94, 0xfbf8,
+ 0xfc7a, 0xfce7, 0xfd56, 0xfdd5, 0xfe1f, 0xfe31,
+ 0xfe32, 0xfe27, 0xfe31, 0xfe5d, 0xfe81, 0xfe8f,
+ 0xfe78, 0xfe34, 0xfde0, 0xfd9c, 0xfd82, 0xfd94,
+ 0xfdc1, 0xfe1e, 0xfe90, 0xfee8, 0xff40, 0xff81,
+ 0xff71, 0xff37, 0xfef0, 0xfe9d, 0xfe63, 0xfe4b,
+ 0xfe56, 0xfe7f, 0xfe97, 0xfe9f, 0xfea4, 0xfe90,
+ 0xfe6c, 0xfe30, 0xfdc8, 0xfd53, 0xfcd7, 0xfc6b,
+ 0xfc43, 0xfc47, 0xfc5c, 0xfc85, 0xfc9a, 0xfca4,
+ 0xfcd7, 0xfd24, 0xfd77, 0xfdcf, 0xfe17, 0xfe3d,
+ 0xfe42, 0xfe32, 0xfe15, 0xfde6, 0xfdab, 0xfd62,
+ 0xfd08, 0xfcb2, 0xfc79, 0xfc7c, 0xfc9f, 0xfc97,
+ 0xfc60, 0xfc22, 0xfbd7, 0xfb78, 0xfb2f, 0xfb23,
+ 0xfb33, 0xfb31, 0xfb49, 0xfb84, 0xfb90, 0xfb71,
+ 0xfb60, 0xfb4c, 0xfb39, 0xfb36, 0xfb2f, 0xfb3c,
+ 0xfb69, 0xfb9a, 0xfbbd, 0xfbc7, 0xfbc0, 0xfbb4,
+ 0xfba5, 0xfbab, 0xfbc6, 0xfbe8, 0xfc0b, 0xfc06,
+ 0xfbf1, 0xfbfa, 0xfbe7, 0xfbb8, 0xfba0, 0xfb62,
+ 0xfb1f, 0xfb22, 0xfb29, 0xfb33, 0xfb60, 0xfb84,
+ 0xfbbc, 0xfc03, 0xfc2a, 0xfc6c, 0xfcbc, 0xfcf2,
+ 0xfd67, 0xfe11, 0xfe99, 0xff0a, 0xff60, 0xff8a,
+ 0xff9c, 0xff85, 0xff53, 0xff31, 0xff12, 0xfee5,
+ 0xfeb2, 0xfe86, 0xfe78, 0xfe83, 0xfe8d, 0xfe84,
+ 0xfe5e, 0xfe2f, 0xfdf9, 0xfdcb, 0xfdcc, 0xfddc,
+ 0xfdc7, 0xfd9f, 0xfd6f, 0xfd28, 0xfcef, 0xfcf7,
+ 0xfd4a, 0xfdca, 0xfe4b, 0xfece, 0xff6e, 0x0017,
+ 0x009c, 0x0115, 0x0190, 0x01c2, 0x01b6, 0x01d1,
+ 0x0217, 0x027b, 0x02ee, 0x0321, 0x032c, 0x034f,
+ 0x0362, 0x0378, 0x0391, 0x035f, 0x0316, 0x02e0,
+ 0x0275, 0x01fd, 0x0199, 0x0122, 0x00ac, 0x0032,
+ 0xffab, 0xff3e, 0xfed1, 0xfe6c, 0xfe3f, 0xfe09,
+ 0xfdae, 0xfd62, 0xfd1e, 0xfce2, 0xfcb6, 0xfc88,
+ 0xfc75, 0xfc87, 0xfca5, 0xfcdf, 0xfd20, 0xfd40,
+ 0xfd4d, 0xfd4b, 0xfd31, 0xfd0e, 0xfcfa, 0xfd0e,
+ 0xfd46, 0xfd8c, 0xfde3, 0xfe47, 0xfea1, 0xfee5,
+ 0xff06, 0xff00, 0xfee6, 0xfed8, 0xfee7, 0xff11,
+ 0xff4e, 0xff85, 0xff9a, 0xff93, 0xff81, 0xff74,
+ 0xff5d, 0xff1f, 0xfede, 0xfecc, 0xfeda, 0xfeff,
+ 0xff3c, 0xff7a, 0xffb6, 0xffd4, 0xffd3, 0xfff0,
+ 0x000f, 0x001c, 0x0054, 0x008c, 0x0090, 0x009c,
+ 0x00ac, 0x00ae, 0x00cd, 0x00f9, 0x0122, 0x014f,
+ 0x0168, 0x0194, 0x0205, 0x0298, 0x0322, 0x0380,
+ 0x03b1, 0x03d7, 0x03d8, 0x03b6, 0x039f, 0x038c,
+ 0x0384, 0x0394, 0x03a0, 0x03a8, 0x03b3, 0x03bf,
+ 0x03e0, 0x03f0, 0x03c7, 0x0396, 0x036b, 0x0356,
+ 0x0363, 0x034f, 0x0319, 0x02e6, 0x0274, 0x01da,
+ 0x016f, 0x010d, 0x00b5, 0x008c, 0x005a, 0x002d,
+ 0x0028, 0x000a, 0xffe5, 0xffe6, 0xffe9, 0xffe7,
+ 0xffe5, 0xffdb, 0xffdd, 0xffbb, 0xff5a, 0xff12,
+ 0xfee5, 0xfea1, 0xfe63, 0xfe1d, 0xfddd, 0xfde5,
+ 0xfdf4, 0xfdeb, 0xfe0e, 0xfe31, 0xfe49, 0xfe96,
+ 0xfed9, 0xff07, 0xff6b, 0xffcf, 0x0017, 0x0073,
+ 0x00c1, 0x010a, 0x0162, 0x0196, 0x01ae, 0x01b4,
+ 0x016d, 0x0105, 0x00c1, 0x008f, 0x006d, 0x0057,
+ 0x0022, 0xffd6, 0xff91, 0xff4d, 0xff03, 0xfecd,
+ 0xfeb8, 0xfe97, 0xfe64, 0xfe66, 0xfe8e, 0xfe97,
+ 0xfea2, 0xfec5, 0xfecc, 0xfed1, 0xff01, 0xff4a,
+ 0xffbf, 0x0075, 0x013a, 0x01e9, 0x0295, 0x0338,
+ 0x03c4, 0x042b, 0x0471, 0x04ab, 0x04d2, 0x04e6,
+ 0x04ff, 0x04f2, 0x04a6, 0x0468, 0x043f, 0x03f9,
+ 0x03b6, 0x0376, 0x0316, 0x02bc, 0x025a, 0x01d4,
+ 0x0161, 0x010b, 0x00c7, 0x00af, 0x0093, 0x0066,
+ 0x0061, 0x0068, 0x004e, 0x0033, 0x001c, 0x000d,
+ 0x0017, 0x001b, 0x000d, 0x0005, 0xfff6, 0xffdf,
+ 0xffe0, 0x0005, 0x0032, 0x0040, 0x004d, 0x0073,
+ 0x0074, 0x0050, 0x004a, 0x0036, 0x0004, 0x0012,
+ 0x0049, 0x0057, 0x0064, 0x007c, 0x0074, 0x005e,
+ 0x0034, 0xffef, 0xffce, 0xffd1, 0xffc7, 0xffc8,
+ 0xffca, 0xffa5, 0xff6f, 0xff53, 0xff60, 0xff7f,
+ 0xff8a, 0xff8a, 0xffa1, 0xffc9, 0xffff, 0x0042,
+ 0x008b, 0x00d4, 0x0119, 0x016d, 0x01cf, 0x0220,
+ 0x0271, 0x02d4, 0x0318, 0x034c, 0x0395, 0x03c0,
+ 0x03da, 0x0423, 0x047c, 0x04be, 0x04fc, 0x0536,
+ 0x0562, 0x058e, 0x05c3, 0x05f9, 0x0624, 0x064e,
+ 0x0674, 0x0673, 0x0650, 0x062a, 0x060f, 0x060e,
+ 0x0612, 0x0600, 0x05fb, 0x061c, 0x063d, 0x064e,
+ 0x064e, 0x0634, 0x0615, 0x060b, 0x0605, 0x05e5,
+ 0x05a5, 0x053c, 0x04b1, 0x0421, 0x0393, 0x02fa,
+ 0x0269, 0x01f6, 0x01b1, 0x0198, 0x0176, 0x0131,
+ 0x00f8, 0x00db, 0x00d1, 0x00e6, 0x0109, 0x0125,
+ 0x013c, 0x013d, 0x010e, 0x00c4, 0x007e, 0x0048,
+ 0x0015, 0xffe4, 0xffb7, 0xff7c, 0xff2b, 0xfee6,
+ 0xfebe, 0xfeae, 0xfea5, 0xfe8f, 0xfe6e, 0xfe40,
+ 0xfe0d, 0xfdfd, 0xfe0d, 0xfe17, 0xfe0c, 0xfde9,
+ 0xfdcb, 0xfdc9, 0xfdbc, 0xfd9e, 0xfd8a, 0xfd59,
+ 0xfd09, 0xfcce, 0xfca8, 0xfc93, 0xfca2, 0xfcca,
+ 0xfcf5, 0xfd0c, 0xfd0b, 0xfd15, 0xfd19, 0xfd0f,
+ 0xfd26, 0xfd56, 0xfd80, 0xfdb4, 0xfdf4, 0xfe44,
+ 0xfea1, 0xfee2, 0xff2a, 0xffa0, 0x001e, 0x00a7,
+ 0x013f, 0x01b6, 0x021d, 0x0288, 0x02c1, 0x02c5,
+ 0x02b1, 0x0284, 0x0259, 0x0232, 0x01f0, 0x01a7,
+ 0x016e, 0x0133, 0x00f7, 0x00c2, 0x008a, 0x0050,
+ 0x002d, 0x0024, 0x0015, 0xfffc, 0xfff7, 0xfff5,
+ 0xffdc, 0xffce, 0xffdd, 0xffeb, 0xffe7, 0xffd6,
+ 0xffbc, 0xff94, 0xff75, 0xff88, 0xffd1, 0x0025,
+ 0x006d, 0x00b1, 0x00e0, 0x00dc, 0x00b2, 0x0094,
+ 0x0080, 0x0056, 0x001b, 0xffdf, 0xff95, 0xff2b,
+ 0xfe96, 0xfdf3, 0xfd63, 0xfcda, 0xfc3e, 0xfba1,
+ 0xfb27, 0xfad6, 0xfa88, 0xfa2d, 0xf9ea, 0xf9d1,
+ 0xf9ba, 0xf9a1, 0xf9a7, 0xf9b7, 0xf9b1, 0xf9b9,
+ 0xf9e5, 0xfa18, 0xfa4b, 0xfa7d, 0xfaa2, 0xfabf,
+ 0xfada, 0xfafb, 0xfb2a, 0xfb5c, 0xfb81, 0xfbaa,
+ 0xfbda, 0xfc03, 0xfc1a, 0xfc3a, 0xfc82, 0xfcbc,
+ 0xfcc2, 0xfcd3, 0xfcf6, 0xfd04, 0xfd20, 0xfd40,
+ 0xfd48, 0xfd84, 0xfdfa, 0xfe4a, 0xfe61, 0xfe70,
+ 0xfe8b, 0xfe9a, 0xfe92, 0xfe96, 0xfe9f, 0xfe7c,
+ 0xfe46, 0xfe21, 0xfdf5, 0xfdc0, 0xfdaa, 0xfdc8,
+ 0xfe04, 0xfe3e, 0xfe79, 0xfe9b, 0xfe92, 0xfe9f,
+ 0xfec8, 0xfedb, 0xfef1, 0xff09, 0xfefa, 0xfedc,
+ 0xfeae, 0xfe7c, 0xfe71, 0xfe6a, 0xfe4c, 0xfe49,
+ 0xfe4e, 0xfe48, 0xfe66, 0xfe94, 0xfebd, 0xfef6,
+ 0xff1e, 0xff26, 0xff34, 0xff3c, 0xff36, 0xff4c,
+ 0xff72, 0xff83, 0xff7e, 0xff5b, 0xff26, 0xff0d,
+ 0xff04, 0xfeed, 0xfed7, 0xfec1, 0xfeb0, 0xfeae,
+ 0xfea4, 0xfe9c, 0xfe9f, 0xfe73, 0xfe32, 0xfe19,
+ 0xfdf6, 0xfdb8, 0xfd87, 0xfd49, 0xfcfe, 0xfcc8,
+ 0xfc89, 0xfc3a, 0xfbea, 0xfb8a, 0xfb1a, 0xfa9f,
+ 0xfa24, 0xf9d4, 0xf9b6, 0xf9bf, 0xf9ed, 0xfa32,
+ 0xfa84, 0xfad5, 0xfb29, 0xfb9a, 0xfc09, 0xfc4e,
+ 0xfc96, 0xfce8, 0xfd0e, 0xfd1f, 0xfd47, 0xfd7f,
+ 0xfdb9, 0xfe00, 0xfe4e, 0xfe82, 0xfeb9, 0xff21,
+ 0xff83, 0xffc9, 0x0011, 0x0024, 0x000c, 0x0015,
+ 0xfff6, 0xff8e, 0xff41, 0xff04, 0xfeb6, 0xfe89,
+ 0xfe6c, 0xfe45, 0xfe2d, 0xfe2b, 0xfe43, 0xfe6c,
+ 0xfea3, 0xff06, 0xff7e, 0xffea, 0x0059, 0x00b7,
+ 0x00f3, 0x0146, 0x01c7, 0x0254, 0x02c4, 0x0307,
+ 0x035b, 0x03db, 0x0441, 0x0487, 0x04e7, 0x0554,
+ 0x05a0, 0x05c1, 0x05bd, 0x05a7, 0x058d, 0x0586,
+ 0x059b, 0x059c, 0x0570, 0x053c, 0x0509, 0x04cb,
+ 0x048c, 0x0442, 0x03df, 0x0371, 0x02f9, 0x0278,
+ 0x01f0, 0x0159, 0x00c5, 0x004f, 0xfff0, 0xffab,
+ 0xff79, 0xff33, 0xfee3, 0xfeba, 0xfeb5, 0xfec7,
+ 0xfeed, 0xff0c, 0xff12, 0xff14, 0xff15, 0xff04,
+ 0xfee5, 0xfec8, 0xfebd, 0xfebc, 0xfea8, 0xfe7f,
+ 0xfe56, 0xfe1d, 0xfddf, 0xfddb, 0xfdf5, 0xfde5,
+ 0xfdc7, 0xfdad, 0xfd7b, 0xfd58, 0xfd58, 0xfd4b,
+ 0xfd35, 0xfd3c, 0xfd59, 0xfd74, 0xfd7c, 0xfd73,
+ 0xfd65, 0xfd59, 0xfd54, 0xfd55, 0xfd4a, 0xfd30,
+ 0xfd10, 0xfcff, 0xfd0a, 0xfd29, 0xfd4e, 0xfd6e,
+ 0xfd81, 0xfd9a, 0xfdc3, 0xfde8, 0xfe13, 0xfe5c,
+ 0xfebe, 0xff25, 0xff71, 0xff9d, 0xffc2, 0xffe2,
+ 0x0002, 0x0041, 0x0092, 0x00d2, 0x00f4, 0x010d,
+ 0x0146, 0x019d, 0x01e9, 0x0231, 0x028c, 0x02e5,
+ 0x031e, 0x0337, 0x035d, 0x03b1, 0x040c, 0x045a,
+ 0x04bd, 0x0525, 0x0573, 0x05bb, 0x0605, 0x063c,
+ 0x0660, 0x0681, 0x06ad, 0x06d4, 0x06d4, 0x06c1,
+ 0x06a9, 0x0671, 0x061a, 0x05b6, 0x053a, 0x04b8,
+ 0x0443, 0x03c0, 0x0339, 0x02c9, 0x0252, 0x01ce,
+ 0x015f, 0x0107, 0x00af, 0x0047, 0xffdf, 0xffab,
+ 0xffab, 0xffcc, 0x0018, 0x0067, 0x009e, 0x00f4,
+ 0x014f, 0x018a, 0x01dc, 0x0231, 0x0247, 0x0246,
+ 0x0248, 0x0232, 0x0217, 0x0207, 0x01f1, 0x01e6,
+ 0x01ef, 0x01dd, 0x019c, 0x016b, 0x0169, 0x016b,
+ 0x016b, 0x016c, 0x0142, 0x0109, 0x00ea, 0x00c3,
+ 0x008e, 0x004e, 0x0000, 0xffe2, 0xfffb, 0x0016,
+ 0x0049, 0x0098, 0x00ed, 0x015d, 0x01dd, 0x024f,
+ 0x02c7, 0x033b, 0x03a6, 0x0420, 0x048c, 0x04cd,
+ 0x0502, 0x0538, 0x0566, 0x0597, 0x05b7, 0x05b3,
+ 0x05a7, 0x05a4, 0x0594, 0x0588, 0x059c, 0x05a8,
+ 0x059d, 0x05a2, 0x05b3, 0x05c4, 0x05d2, 0x05c2,
+ 0x05a4, 0x059b, 0x0598, 0x0596, 0x059a, 0x059b,
+ 0x0595, 0x0575, 0x0529, 0x04b9, 0x0432, 0x03a5,
+ 0x0320, 0x02ac, 0x026d, 0x0261, 0x0256, 0x0257,
+ 0x0274, 0x0284, 0x0275, 0x0259, 0x023b, 0x0220,
+ 0x020a, 0x0201, 0x0202, 0x0209, 0x0216, 0x0210,
+ 0x01fb, 0x01ee, 0x01d2, 0x01ad, 0x018b, 0x014b,
+ 0x0121, 0x0131, 0x0123, 0x00f8, 0x00f1, 0x00ec,
+ 0x00e6, 0x00e2, 0x00b8, 0x0087, 0x0069, 0x0045,
+ 0x0028, 0x0027, 0x0039, 0x0045, 0x0036, 0x0031,
+ 0x0045, 0x003b, 0x001c, 0xfffb, 0xffd2, 0xffc9,
+ 0xffcf, 0xffc2, 0xffd6, 0x000c, 0x0041, 0x0083,
+ 0x00ce, 0x011c, 0x0176, 0x01cc, 0x0224, 0x027a,
+ 0x029e, 0x0295, 0x027a, 0x0255, 0x0235, 0x021a,
+ 0x0210, 0x0221, 0x021e, 0x020e, 0x0225, 0x024f,
+ 0x0262, 0x0262, 0x026e, 0x0294, 0x02b4, 0x02d6,
+ 0x031b, 0x035d, 0x038f, 0x03ca, 0x03e4, 0x03d1,
+ 0x03b6, 0x038d, 0x0367, 0x0354, 0x0344, 0x0357,
+ 0x037d, 0x0379, 0x0373, 0x0378, 0x0350, 0x02fd,
+ 0x0282, 0x01ea, 0x0164, 0x00e5, 0x005c, 0xfff0,
+ 0xff91, 0xff2c, 0xfed8, 0xfe89, 0xfe2a, 0xfdca,
+ 0xfd67, 0xfd03, 0xfcbf, 0xfcb2, 0xfccd, 0xfcfc,
+ 0xfd50, 0xfdce, 0xfe43, 0xfe95, 0xfed0, 0xfef4,
+ 0xff0d, 0xff20, 0xff13, 0xfee8, 0xfea4, 0xfe2d,
+ 0xfda2, 0xfd48, 0xfd02, 0xfca6, 0xfc59, 0xfc1d,
+ 0xfbd1, 0xfb83, 0xfb44, 0xfb09, 0xfadb, 0xfac0,
+ 0xfab0, 0xfab9, 0xfad0, 0xfade, 0xfb06, 0xfb68,
+ 0xfbd6, 0xfc22, 0xfc6c, 0xfcd4, 0xfd30, 0xfd79,
+ 0xfdee, 0xfe81, 0xfef0, 0xff5f, 0xfff4, 0x0070,
+ 0x00b8, 0x00e9, 0x010f, 0x0121, 0x011a, 0x00fe,
+ 0x00e2, 0x00c4, 0x00a2, 0x009a, 0x00ac, 0x00b8,
+ 0x00cc, 0x00fa, 0x012b, 0x0148, 0x013a, 0x0101,
+ 0x00bf, 0x0084, 0x0059, 0x004e, 0x0043, 0x0031,
+ 0x004a, 0x0084, 0x00b1, 0x00dd, 0x010c, 0x012a,
+ 0x0149, 0x0157, 0x0126, 0x00db, 0x00ac, 0x008b,
+ 0x0070, 0x0070, 0x007b, 0x0072, 0x0059, 0x0044,
+ 0x0036, 0x0021, 0x0001, 0xffde, 0xffbe, 0xff9a,
+ 0xff6a, 0xff39, 0xff1b, 0xfef4, 0xfea2, 0xfe41,
+ 0xfded, 0xfd8a, 0xfd0f, 0xfca0, 0xfc42, 0xfbf5,
+ 0xfbbe, 0xfb81, 0xfb33, 0xfaef, 0xfac9, 0xfabb,
+ 0xfab0, 0xfaa3, 0xfa99, 0xfa7e, 0xfa5a, 0xfa5e,
+ 0xfa6b, 0xfa46, 0xfa1c, 0xfa26, 0xfa43, 0xfa4d,
+ 0xfa4a, 0xfa59, 0xfa6a, 0xfa61, 0xfa60, 0xfa74,
+ 0xfa7d, 0xfa98, 0xfadc, 0xfb1b, 0xfb4c, 0xfb7b,
+ 0xfb9c, 0xfbbd, 0xfbde, 0xfbd6, 0xfba9, 0xfb79,
+ 0xfb50, 0xfb2a, 0xfb14, 0xfb1f, 0xfb36, 0xfb4c,
+ 0xfb87, 0xfbd9, 0xfc08, 0xfc39, 0xfc86, 0xfcb4,
+ 0xfccc, 0xfceb, 0xfd06, 0xfd36, 0xfd7a, 0xfdb7,
+ 0xfe15, 0xfe7d, 0xfeaa, 0xfecd, 0xff06, 0xff27,
+ 0xff48, 0xff79, 0xff96, 0xffb8, 0xfff2, 0x0029,
+ 0x0059, 0x0079, 0x0083, 0x008c, 0x0085, 0x0063,
+ 0x003f, 0x000c, 0xffcd, 0xffa3, 0xff83, 0xff5e,
+ 0xff47, 0xff28, 0xfef6, 0xfede, 0xfed7, 0xfeb6,
+ 0xfe92, 0xfe88, 0xfe73, 0xfe4d, 0xfe41, 0xfe4a,
+ 0xfe4a, 0xfe58, 0xfe71, 0xfe71, 0xfe6d, 0xfe73,
+ 0xfe5a, 0xfe1c, 0xfdc0, 0xfd2d, 0xfc79, 0xfbc7,
+ 0xfb12, 0xfa6e, 0xf9f7, 0xf9a1, 0xf95c, 0xf913,
+ 0xf8b7, 0xf876, 0xf867, 0xf859, 0xf84f, 0xf85f,
+ 0xf86c, 0xf886, 0xf8cd, 0xf917, 0xf961, 0xf9c7,
+ 0xfa1a, 0xfa4e, 0xfaa1, 0xfb0a, 0xfb69, 0xfbcc,
+ 0xfc29, 0xfc77, 0xfcd3, 0xfd3b, 0xfd9a, 0xfded,
+ 0xfe3d, 0xfe89, 0xfec9, 0xfee0, 0xfec7, 0xfe93,
+ 0xfe4a, 0xfdf5, 0xfdb8, 0xfda2, 0xfd93, 0xfd75,
+ 0xfd52, 0xfd30, 0xfd02, 0xfcaa, 0xfc34, 0xfbdb,
+ 0xfb9d, 0xfb5c, 0xfb52, 0xfba3, 0xfc13, 0xfc83,
+ 0xfcf8, 0xfd6c, 0xfde4, 0xfe5b, 0xfed8, 0xff5e,
+ 0xffbd, 0xfffd, 0x0054, 0x00a8, 0x00df, 0x0114,
+ 0x0149, 0x018d, 0x01f3, 0x025e, 0x02bc, 0x0304,
+ 0x0330, 0x0350, 0x034b, 0x0319, 0x02e8, 0x02a6,
+ 0x024d, 0x021f, 0x0211, 0x0217, 0x023b, 0x023a,
+ 0x0217, 0x0208, 0x01de, 0x019b, 0x0178, 0x0152,
+ 0x012b, 0x0121, 0x0121, 0x014a, 0x0199, 0x01b9,
+ 0x01b4, 0x01b5, 0x0194, 0x014b, 0x0106, 0x00db,
+ 0x00be, 0x0092, 0x0056, 0x000c, 0xffa6, 0xff4e,
+ 0xff1b, 0xfecf, 0xfe4f, 0xfdc4, 0xfd42, 0xfcd6,
+ 0xfc93, 0xfc72, 0xfc64, 0xfc78, 0xfcb9, 0xfcfd,
+ 0xfd30, 0xfd6e, 0xfda5, 0xfdbf, 0xfddf, 0xfe04,
+ 0xfe05, 0xfdef, 0xfdde, 0xfdca, 0xfdb0, 0xfd9c,
+ 0xfd7e, 0xfd4c, 0xfd1c, 0xfcfe, 0xfcdf, 0xfcd9,
+ 0xfd08, 0xfd45, 0xfd74, 0xfdae, 0xfdf5, 0xfe30,
+ 0xfe44, 0xfe4c, 0xfe78, 0xfebb, 0xfefb, 0xff3e,
+ 0xff75, 0xffb3, 0x0004, 0x0049, 0x0085, 0x00be,
+ 0x00e8, 0x012a, 0x0173, 0x019c, 0x01d9, 0x021f,
+ 0x0235, 0x023a, 0x023c, 0x0251, 0x0284, 0x028d,
+ 0x0284, 0x02b5, 0x02eb, 0x0320, 0x0379, 0x03c4,
+ 0x0410, 0x0473, 0x04b3, 0x04ed, 0x0543, 0x0581,
+ 0x05ad, 0x05e5, 0x061d, 0x063c, 0x0627, 0x05f7,
+ 0x05b8, 0x0553, 0x04e7, 0x0479, 0x03e3, 0x033e,
+ 0x02a7, 0x021e, 0x01ac, 0x013e, 0x00e0, 0x00b2,
+ 0x0097, 0x0087, 0x0090, 0x0096, 0x009a, 0x009b,
+ 0x009f, 0x00bd, 0x00df, 0x0111, 0x0181, 0x01f9,
+ 0x025d, 0x02c3, 0x0303, 0x032e, 0x0355, 0x0344,
+ 0x0328, 0x0326, 0x0302, 0x02d6, 0x02be, 0x0297,
+ 0x0267, 0x0212, 0x0192, 0x011f, 0x00a4, 0x001e,
+ 0xffd3, 0xff97, 0xff3f, 0xff01, 0xfee2, 0xfec0,
+ 0xfea9, 0xfea9, 0xfea4, 0xfe87, 0xfe7c, 0xfe9b,
+ 0xfec0, 0xfefb, 0xff6e, 0xfff2, 0x0089, 0x0149,
+ 0x0208, 0x02b8, 0x035b, 0x03da, 0x0441, 0x049f,
+ 0x04e7, 0x0528, 0x0573, 0x05c3, 0x0612, 0x064e,
+ 0x065a, 0x064c, 0x064f, 0x0649, 0x061d, 0x05fe,
+ 0x05f9, 0x05da, 0x05a3, 0x055b, 0x04f8, 0x04a1,
+ 0x0462, 0x0422, 0x03fd, 0x03fc, 0x03f6, 0x03e3,
+ 0x03c2, 0x038d, 0x033a, 0x02dc, 0x02a9, 0x028f,
+ 0x025e, 0x0249, 0x0261, 0x025e, 0x023d, 0x021c,
+ 0x01dd, 0x017f, 0x013b, 0x0127, 0x0116, 0x00de,
+ 0x00a0, 0x0067, 0x0021, 0xfff5, 0xfff0, 0xffeb,
+ 0xffd5, 0xffb5, 0xffa6, 0xffae, 0xff98, 0xff6c,
+ 0xff54, 0xff22, 0xfed0, 0xfe96, 0xfe68, 0xfe44,
+ 0xfe40, 0xfe40, 0xfe3b, 0xfe2b, 0xfe03, 0xfde7,
+ 0xfdd5, 0xfdb3, 0xfdb9, 0xfde7, 0xfdf8, 0xfe0e,
+ 0xfe52, 0xfea3, 0xff0d, 0xffab, 0x0065, 0x011a,
+ 0x01af, 0x021e, 0x027d, 0x02da, 0x0335, 0x0398,
+ 0x0402, 0x047a, 0x0511, 0x05c4, 0x0669, 0x06d2,
+ 0x0720, 0x0784, 0x07ed, 0x083f, 0x088d, 0x08fd,
+ 0x0997, 0x0a32, 0x0aba, 0x0b36, 0x0b8e, 0x0bc6,
+ 0x0c04, 0x0c28, 0x0c1e, 0x0c0d, 0x0bf2, 0x0bb5,
+ 0x0b63, 0x0b11, 0x0acb, 0x0a78, 0x09f9, 0x0971,
+ 0x08fc, 0x088f, 0x083e, 0x07fb, 0x07a4, 0x0762,
+ 0x073f, 0x070c, 0x06d6, 0x06a6, 0x065a, 0x0603,
+ 0x05b6, 0x0568, 0x0520, 0x04d3, 0x0466, 0x0407,
+ 0x03c6, 0x0372, 0x030f, 0x02a5, 0x0236, 0x01f7,
+ 0x01dc, 0x01a5, 0x016f, 0x0149, 0x0112, 0x00cd,
+ 0x006d, 0x0002, 0xffbe, 0xff6c, 0xfeef, 0xfe82,
+ 0xfe2c, 0xfdda, 0xfd83, 0xfd0f, 0xfc84, 0xfbde,
+ 0xfb30, 0xfab3, 0xfa41, 0xf9c8, 0xf97b, 0xf913,
+ 0xf880, 0xf825, 0xf7e8, 0xf79f, 0xf765, 0xf729,
+ 0xf6ff, 0xf6f1, 0xf6d3, 0xf6e1, 0xf72a, 0xf764,
+ 0xf7b3, 0xf820, 0xf890, 0xf92f, 0xf9d9, 0xfa71,
+ 0xfb29, 0xfbd5, 0xfc6e, 0xfd16, 0xfd82, 0xfdce,
+ 0xfe53, 0xfec5, 0xff12, 0xff7d, 0xffd4, 0x000d,
+ 0x0050, 0x006f, 0x005f, 0x0042, 0x001b, 0xffff,
+ 0xfff8, 0xffe4, 0xffd9, 0xfff5, 0x000b, 0xfffb,
+ 0xffea, 0xffdd, 0xffc6, 0xffcc, 0xfff8, 0x0025,
+ 0x005c, 0x00a8, 0x00fa, 0x0146, 0x0175, 0x018a,
+ 0x01a4, 0x01ad, 0x0197, 0x0180, 0x0170, 0x015a,
+ 0x0148, 0x0147, 0x0155, 0x014e, 0x0117, 0x00e1,
+ 0x00d9, 0x00d9, 0x00d1, 0x00e3, 0x00f4, 0x00d2,
+ 0x00a4, 0x008b, 0x006b, 0x0049, 0x0025, 0xffe8,
+ 0xffac, 0xff80, 0xff42, 0xfeeb, 0xfe98, 0xfe5c,
+ 0xfe2d, 0xfdec, 0xfdae, 0xfd80, 0xfd43, 0xfd13,
+ 0xfd01, 0xfcc8, 0xfc6e, 0xfc40, 0xfc30, 0xfc03,
+ 0xfbba, 0xfb7e, 0xfb47, 0xfb06, 0xfaec, 0xfb04,
+ 0xfb31, 0xfb89, 0xfc04, 0xfc77, 0xfce5, 0xfd38,
+ 0xfd70, 0xfdaf, 0xfdcb, 0xfdc6, 0xfdd8, 0xfde5,
+ 0xfdf6, 0xfe1c, 0xfe21, 0xfe29, 0xfe53, 0xfe5a,
+ 0xfe4e, 0xfe4f, 0xfe3f, 0xfe49, 0xfe7a, 0xfe9c,
+ 0xfec0, 0xfef4, 0xff23, 0xff53, 0xff75, 0xff7f,
+ 0xff88, 0xff95, 0xffa7, 0xffb3, 0xff9e, 0xff74,
+ 0xff4d, 0xff34, 0xff40, 0xff60, 0xff75, 0xff86,
+ 0xff88, 0xff74, 0xff57, 0xff1e, 0xfed0, 0xfe98,
+ 0xfe68, 0xfe30, 0xfe12, 0xfe09, 0xfe0b, 0xfe33,
+ 0xfe5e, 0xfe61, 0xfe5b, 0xfe5b, 0xfe56, 0xfe5e,
+ 0xfe60, 0xfe63, 0xfe8b, 0xfeac, 0xfeb2, 0xfec3,
+ 0xfec5, 0xfeae, 0xfe9e, 0xfe73, 0xfe2d, 0xfdff,
+ 0xfdcc, 0xfd7c, 0xfd2a, 0xfcd6, 0xfc83, 0xfc3d,
+ 0xfc07, 0xfbef, 0xfbee, 0xfbea, 0xfbd3, 0xfbad,
+ 0xfb84, 0xfb48, 0xfaf3, 0xfa9b, 0xfa2f, 0xf9b6,
+ 0xf964, 0xf912, 0xf8aa, 0xf867, 0xf82f, 0xf7e9,
+ 0xf7bd, 0xf794, 0xf761, 0xf748, 0xf741, 0xf755,
+ 0xf7a9, 0xf828, 0xf8b2, 0xf93b, 0xf9b4, 0xfa1e,
+ 0xfa69, 0xfa92, 0xfaac, 0xfaad, 0xfa9c, 0xfa9f,
+ 0xfab2, 0xfacc, 0xfb01, 0xfb3f, 0xfb67, 0xfb90,
+ 0xfbc1, 0xfbd3, 0xfbcb, 0xfbd2, 0xfbd1, 0xfbb4,
+ 0xfba4, 0xfb98, 0xfb82, 0xfb93, 0xfbc0, 0xfbd6,
+ 0xfbe5, 0xfbf8, 0xfc12, 0xfc4b, 0xfc91, 0xfcef,
+ 0xfd80, 0xfe13, 0xfe8c, 0xff11, 0xffaf, 0x0053,
+ 0x00ec, 0x0177, 0x0206, 0x0284, 0x02e4, 0x033e,
+ 0x0384, 0x03ae, 0x03df, 0x0414, 0x0436, 0x043b,
+ 0x042a, 0x042a, 0x0432, 0x0415, 0x03eb, 0x03b5,
+ 0x035a, 0x0302, 0x02ca, 0x02b2, 0x02c3, 0x02e2,
+ 0x02f8, 0x031e, 0x0344, 0x033e, 0x0300, 0x02ae,
+ 0x0261, 0x01ec, 0x0155, 0x00ef, 0x00ae, 0x0064,
+ 0x001d, 0xffdc, 0xff8f, 0xff31, 0xfeba, 0xfe51,
+ 0xfe03, 0xfdb7, 0xfd80, 0xfd53, 0xfd1d, 0xfd07,
+ 0xfd0f, 0xfd28, 0xfd57, 0xfd5e, 0xfd3a, 0xfd37,
+ 0xfd2f, 0xfcf9, 0xfcc1, 0xfc87, 0xfc4f, 0xfc2f,
+ 0xfc0c, 0xfbea, 0xfbe1, 0xfbd3, 0xfbb4, 0xfb8a,
+ 0xfb3d, 0xfad5, 0xfa85, 0xfa58, 0xfa31, 0xfa17,
+ 0xfa28, 0xfa49, 0xfa59, 0xfa61, 0xfa5b, 0xfa56,
+ 0xfa75, 0xfa90, 0xfa83, 0xfa6f, 0xfa65, 0xfa6e,
+ 0xfaae, 0xfb0b, 0xfb5b, 0xfbb4, 0xfc33, 0xfcc4,
+ 0xfd42, 0xfdae, 0xfe13, 0xfe6b, 0xfea5, 0xfeb4,
+ 0xfeb0, 0xfed1, 0xff0f, 0xff48, 0xff97, 0xffea,
+ 0x0013, 0x0037, 0x0060, 0x007b, 0x00a6, 0x00de,
+ 0x010f, 0x015a, 0x01bc, 0x021b, 0x0290, 0x0326,
+ 0x03bb, 0x0432, 0x0474, 0x0493, 0x04ae, 0x04ba,
+ 0x04b5, 0x049b, 0x0460, 0x042e, 0x0411, 0x03de,
+ 0x03ae, 0x0398, 0x037f, 0x037c, 0x0395, 0x0385,
+ 0x0359, 0x033f, 0x032b, 0x0323, 0x032c, 0x031d,
+ 0x02f7, 0x02ce, 0x0298, 0x0262, 0x023a, 0x0210,
+ 0x01d2, 0x0183, 0x014b, 0x014c, 0x016d, 0x0182,
+ 0x0189, 0x018c, 0x018a, 0x017a, 0x0158, 0x012a,
+ 0x00f8, 0x00c6, 0x009d, 0x0080, 0x005d, 0x0028,
+ 0x0000, 0xfff4, 0xffd8, 0xffa9, 0xff85, 0xff6c,
+ 0xff46, 0xff04, 0xfeba, 0xfe8b, 0xfe65, 0xfe37,
+ 0xfe1e, 0xfe11, 0xfe02, 0xfdfc, 0xfdfc, 0xfe07,
+ 0xfe28, 0xfe59, 0xfeac, 0xff15, 0xff67, 0xffbf,
+ 0x003f, 0x00d6, 0x016a, 0x01eb, 0x025f, 0x02cc,
+ 0x0310, 0x0336, 0x0364, 0x038d, 0x03a8, 0x03cf,
+ 0x040a, 0x044e, 0x047f, 0x049e, 0x04b8, 0x04b3,
+ 0x04a2, 0x04a6, 0x048b, 0x044f, 0x0417, 0x03c7,
+ 0x0372, 0x0348, 0x032d, 0x030d, 0x02f0, 0x02d4,
+ 0x02c4, 0x02c0, 0x02ca, 0x02e6, 0x02e9, 0x02c4,
+ 0x0291, 0x0259, 0x0222, 0x01fa, 0x01df, 0x01d9,
+ 0x01e0, 0x01de, 0x01d8, 0x01cb, 0x01b3, 0x018e,
+ 0x0153, 0x011d, 0x010e, 0x0123, 0x0151, 0x0181,
+ 0x01b7, 0x01fc, 0x0216, 0x01fe, 0x01f4, 0x01e0,
+ 0x01b1, 0x0198, 0x0178, 0x0130, 0x00ee, 0x00af,
+ 0x005a, 0x0001, 0xffa3, 0xff3f, 0xfeee, 0xfea0,
+ 0xfe4f, 0xfe21, 0xfe15, 0xfe0e, 0xfe24, 0xfe66,
+ 0xfeb1, 0xfeee, 0xff19, 0xff3e, 0xff89, 0xffef,
+ 0x0047, 0x009c, 0x00ea, 0x012f, 0x0190, 0x0202,
+ 0x0266, 0x02e4, 0x0388, 0x042d, 0x04cf, 0x056e,
+ 0x05f5, 0x0653, 0x0690, 0x06bb, 0x06d0, 0x06c4,
+ 0x069e, 0x0667, 0x0634, 0x0610, 0x05f2, 0x05f5,
+ 0x0614, 0x0618, 0x0615, 0x063a, 0x0674, 0x06c3,
+ 0x0732, 0x0799, 0x07f9, 0x0868, 0x08c7, 0x090a,
+ 0x093b, 0x093f, 0x0911, 0x08ce, 0x0879, 0x0816,
+ 0x07c4, 0x077a, 0x072b, 0x06ef, 0x06b9, 0x0679,
+ 0x064f, 0x0628, 0x05e1, 0x05a4, 0x057a, 0x0544,
+ 0x051c, 0x050f, 0x04f8, 0x04ca, 0x0497, 0x0462,
+ 0x0425, 0x03ea, 0x03bb, 0x0392, 0x036d, 0x034e,
+ 0x031b, 0x02cf, 0x0281, 0x023f, 0x0207, 0x01c6,
+ 0x017f, 0x014e, 0x012b, 0x010a, 0x00f3, 0x00c2,
+ 0x006f, 0x0032, 0x0007, 0xffce, 0xff8c, 0xff3b,
+ 0xfedb, 0xfe91, 0xfe6d, 0xfe58, 0xfe42, 0xfe3f,
+ 0xfe54, 0xfe60, 0xfe5e, 0xfe6b, 0xfe87, 0xfe99,
+ 0xfea0, 0xfeb9, 0xfeec, 0xff13, 0xff2f, 0xff56,
+ 0xff75, 0xff9d, 0xffe4, 0x001c, 0x0048, 0x0095,
+ 0x00e5, 0x0114, 0x0130, 0x0146, 0x0165, 0x0177,
+ 0x0156, 0x012a, 0x0123, 0x0113, 0x00e6, 0x00d6,
+ 0x0100, 0x0145, 0x017b, 0x0195, 0x01a6, 0x01ae,
+ 0x0195, 0x016e, 0x0162, 0x014b, 0x0106, 0x00bc,
+ 0x0080, 0x003c, 0xffff, 0xffd5, 0xffac, 0xff7a,
+ 0xff55, 0xff45, 0xff25, 0xfeda, 0xfe85, 0xfe4f,
+ 0xfe25, 0xfdfd, 0xfdf5, 0xfe13, 0xfe2c, 0xfe31,
+ 0xfe37, 0xfe36, 0xfe22, 0xfe05, 0xfdde, 0xfdb4,
+ 0xfd9b, 0xfd82, 0xfd68, 0xfd60, 0xfd4e, 0xfd17,
+ 0xfcd2, 0xfc87, 0xfc3f, 0xfc06, 0xfbd1, 0xfb8c,
+ 0xfb27, 0xfaaf, 0xfa4f, 0xfa0a, 0xf9cd, 0xf9a0,
+ 0xf973, 0xf92b, 0xf8f1, 0xf8d6, 0xf8b3, 0xf894,
+ 0xf8a2, 0xf8cb, 0xf8f9, 0xf94a, 0xf9c0, 0xfa31,
+ 0xfa9b, 0xfb15, 0xfb8b, 0xfbe9, 0xfc61, 0xfcf0,
+ 0xfd58, 0xfdb0, 0xfe18, 0xfe65, 0xfeab, 0xff14,
+ 0xff6a, 0xffa8, 0xfff5, 0x0028, 0x0040, 0x0060,
+ 0x005b, 0x0027, 0x0008, 0xfff8, 0xffd2, 0xffb7,
+ 0xffc1, 0xffc8, 0xffbd, 0xffbe, 0xffc0, 0xffaf,
+ 0xffa8, 0xffb9, 0xffd2, 0x0000, 0x0040, 0x0073,
+ 0x008c, 0x0094, 0x00a0, 0x00ab, 0x0093, 0x0062,
+ 0x0027, 0xffed, 0xffcf, 0xffb9, 0xff91, 0xff88,
+ 0xffa3, 0xffbf, 0xffe0, 0xfff2, 0xffeb, 0xffe7,
+ 0xffe3, 0xffda, 0xffd8, 0xffd8, 0xffe0, 0xffdb,
+ 0xffaf, 0xff73, 0xff2c, 0xfed6, 0xfe96, 0xfe68,
+ 0xfe40, 0xfe31, 0xfe1c, 0xfdf5, 0xfdcf, 0xfd8f,
+ 0xfd36, 0xfcf7, 0xfcd1, 0xfcaf, 0xfc88, 0xfc61,
+ 0xfc47, 0xfc21, 0xfbd6, 0xfb93, 0xfb66, 0xfb24,
+ 0xfadb, 0xfaa8, 0xfa82, 0xfa79, 0xfa83, 0xfa76,
+ 0xfa81, 0xfab8, 0xfadc, 0xfafb, 0xfb36, 0xfb57,
+ 0xfb63, 0xfb7f, 0xfb9f, 0xfbcf, 0xfc00, 0xfc19,
+ 0xfc4a, 0xfc84, 0xfcb6, 0xfd16, 0xfd72, 0xfd9c,
+ 0xfdd5, 0xfe06, 0xfe1e, 0xfe60, 0xfeab, 0xfede,
+ 0xff10, 0xff16, 0xfef4, 0xfec2, 0xfe58, 0xfdde,
+ 0xfd82, 0xfd2a, 0xfcdc, 0xfc94, 0xfc4a, 0xfc1f,
+ 0xfbfb, 0xfbc1, 0xfb89, 0xfb58, 0xfb45, 0xfb5a,
+ 0xfb75, 0xfb9f, 0xfbd7, 0xfbfc, 0xfc31, 0xfc80,
+ 0xfcc3, 0xfd12, 0xfd86, 0xfdf7, 0xfe4d, 0xfea6,
+ 0xff08, 0xff45, 0xff63, 0xff7f, 0xff81, 0xff78,
+ 0xff97, 0xffc3, 0xffe2, 0x000e, 0x0045, 0x0082,
+ 0x00bf, 0x00ec, 0x010b, 0x010e, 0x010e, 0x013e,
+ 0x017c, 0x01a0, 0x01b6, 0x01bb, 0x01b3, 0x019b,
+ 0x0159, 0x00f5, 0x007c, 0xfff0, 0xff63, 0xfed5,
+ 0xfe5a, 0xfe07, 0xfda3, 0xfd22, 0xfcbb, 0xfc5c,
+ 0xfbf3, 0xfb9f, 0xfb56, 0xfb1e, 0xfb19, 0xfb34,
+ 0xfb4c, 0xfb7d, 0xfbdb, 0xfc26, 0xfc47, 0xfc78,
+ 0xfcad, 0xfcd2, 0xfd0b, 0xfd3b, 0xfd48, 0xfd62,
+ 0xfd76, 0xfd71, 0xfd7a, 0xfd7e, 0xfd75, 0xfd8f,
+ 0xfdb4, 0xfdb5, 0xfd99, 0xfd6f, 0xfd34, 0xfce2,
+ 0xfc91, 0xfc53, 0xfc02, 0xfb9a, 0xfb2f, 0xfaa8,
+ 0xfa20, 0xf9b5, 0xf948, 0xf8e6, 0xf8b3, 0xf89f,
+ 0xf8a3, 0xf8c1, 0xf8fa, 0xf952, 0xf9b4, 0xfa1a,
+ 0xfa85, 0xfae6, 0xfb55, 0xfbe5, 0xfc61, 0xfcb7,
+ 0xfd0d, 0xfd70, 0xfdca, 0xfe0a, 0xfe42, 0xfe83,
+ 0xfec6, 0xff12, 0xff5f, 0xffaa, 0x000e, 0x006f,
+ 0x00b1, 0x0101, 0x0152, 0x0196, 0x01ff, 0x0257,
+ 0x027c, 0x02c5, 0x031d, 0x0348, 0x0382, 0x03e2,
+ 0x043b, 0x0481, 0x04ae, 0x04d5, 0x04fa, 0x04f6,
+ 0x04ed, 0x050b, 0x0529, 0x0548, 0x057f, 0x0598,
+ 0x058d, 0x0580, 0x0554, 0x050b, 0x04dd, 0x04d0,
+ 0x04cb, 0x04bb, 0x0490, 0x045a, 0x0432, 0x0413,
+ 0x0402, 0x0405, 0x03f6, 0x03c4, 0x0394, 0x037a,
+ 0x0369, 0x034c, 0x032a, 0x0316, 0x0307, 0x02f6,
+ 0x02f6, 0x02e9, 0x02b3, 0x027f, 0x025d, 0x022c,
+ 0x01fb, 0x01d8, 0x01ad, 0x017e, 0x014e, 0x0112,
+ 0x00ce, 0x0088, 0x0041, 0xffee, 0xff9e, 0xff76,
+ 0xff6a, 0xff4d, 0xff2b, 0xff07, 0xfee8, 0xfef0,
+ 0xff0b, 0xff24, 0xff5d, 0xffb2, 0x0010, 0x0079,
+ 0x00c1, 0x00e8, 0x0121, 0x015d, 0x0197, 0x01e3,
+ 0x0232, 0x028a, 0x02e2, 0x0311, 0x0338, 0x0369,
+ 0x038c, 0x03c2, 0x040b, 0x0438, 0x0468, 0x04ad,
+ 0x04f5, 0x0550, 0x05c2, 0x062e, 0x068b, 0x06d0,
+ 0x06f8, 0x0713, 0x0727, 0x0721, 0x0701, 0x06f8,
+ 0x06fe, 0x06d1, 0x0683, 0x0638, 0x05dc, 0x058c,
+ 0x0544, 0x04db, 0x048b, 0x0457, 0x03f2, 0x038c,
+ 0x034a, 0x02e5, 0x026e, 0x0205, 0x0195, 0x013c,
+ 0x00fe, 0x00ab, 0x006c, 0x0059, 0x003f, 0x0025,
+ 0x0022, 0x000e, 0xfff9, 0x0008, 0x001a, 0x0029,
+ 0x005f, 0x00a8, 0x00e1, 0x010c, 0x011d, 0x0123,
+ 0x0139, 0x012d, 0x00e1, 0x007e, 0x001c, 0xffb6,
+ 0xff4b, 0xfeea, 0xfe9c, 0xfe54, 0xfe04, 0xfda5,
+ 0xfd2e, 0xfcbe, 0xfc6c, 0xfc25, 0xfbf1, 0xfbe5,
+ 0xfbfc, 0xfc40, 0xfca0, 0xfcf4, 0xfd5c, 0xfdf5,
+ 0xfe98, 0xff2e, 0xffc9, 0x0059, 0x00b8, 0x00ee,
+ 0x012c, 0x0183, 0x01f9, 0x0284, 0x02e2, 0x0312,
+ 0x034f, 0x0383, 0x0398, 0x03be, 0x03f9, 0x0440,
+ 0x049c, 0x04f0, 0x052a, 0x0554, 0x056b, 0x0596,
+ 0x05f0, 0x063f, 0x0657, 0x065b, 0x0666, 0x066c,
+ 0x0668, 0x065b, 0x0652, 0x065f, 0x0679, 0x0689,
+ 0x0690, 0x0695, 0x069c, 0x06a9, 0x06ad, 0x0698,
+ 0x0683, 0x0673, 0x065b, 0x0649, 0x063c, 0x061d,
+ 0x05e6, 0x05a0, 0x055b, 0x050b, 0x04ae, 0x045e,
+ 0x040f, 0x03bd, 0x0385, 0x0348, 0x02e6, 0x027e,
+ 0x0230, 0x0200, 0x01d6, 0x0198, 0x016b, 0x0150,
+ 0x0112, 0x00c9, 0x0085, 0x0024, 0xffd0, 0xffa4,
+ 0xff7f, 0xff65, 0xff4e, 0xff1b, 0xfede, 0xfe98,
+ 0xfe32, 0xfdda, 0xfda7, 0xfd6c, 0xfd1f, 0xfce2,
+ 0xfcb8, 0xfc92, 0xfc74, 0xfc69, 0xfc69, 0xfc69,
+ 0xfc5f, 0xfc4c, 0xfc3a, 0xfc3d, 0xfc58, 0xfc6d,
+ 0xfc73, 0xfc7c, 0xfc91, 0xfca7, 0xfcb0, 0xfcad,
+ 0xfcb2, 0xfcaa, 0xfc7b, 0xfc57, 0xfc4f, 0xfc39,
+ 0xfc22, 0xfc21, 0xfc21, 0xfc26, 0xfc3a, 0xfc4c,
+ 0xfc41, 0xfc1e, 0xfc22, 0xfc43, 0xfc53, 0xfc84,
+ 0xfcda, 0xfd0f, 0xfd3e, 0xfd77, 0xfda3, 0xfde6,
+ 0xfe2c, 0xfe5e, 0xfeb1, 0xff1a, 0xff70, 0xffad,
+ 0xffbc, 0xffc4, 0xffeb, 0x0011, 0x003f, 0x0060,
+ 0x004a, 0x0032, 0x001a, 0xffdc, 0xff97, 0xff32,
+ 0xfe9f, 0xfe27, 0xfdc9, 0xfd77, 0xfd50, 0xfd41,
+ 0xfd54, 0xfda5, 0xfe0a, 0xfe67, 0xfeab, 0xfec1,
+ 0xfedb, 0xff07, 0xff31, 0xff73, 0xffb6, 0xffe2,
+ 0x001d, 0x004e, 0x004c, 0x0040, 0x0028, 0xfff0,
+ 0xffb5, 0xff80, 0xff4d, 0xff31, 0xff25, 0xff18,
+ 0xff0f, 0xfeef, 0xfebd, 0xfe9e, 0xfe81, 0xfe50,
+ 0xfe32, 0xfe29, 0xfe12, 0xfdf5, 0xfde6, 0xfdec,
+ 0xfe03, 0xfe1d, 0xfe52, 0xfea2, 0xfedb, 0xff04,
+ 0xff38, 0xff5c, 0xff72, 0xff8c, 0xff9c, 0xffac,
+ 0xffc7, 0xffe9, 0x000f, 0x0027, 0x0010, 0xffca,
+ 0xff7c, 0xff52, 0xff31, 0xfefe, 0xfedc, 0xfeb7,
+ 0xfe7d, 0xfe50, 0xfe28, 0xfe11, 0xfe2b, 0xfe3e,
+ 0xfe37, 0xfe43, 0xfe40, 0xfe1e, 0xfe0d, 0xfe06,
+ 0xfdff, 0xfe02, 0xfe06, 0xfe1d, 0xfe55, 0xfe85,
+ 0xfea0, 0xfec2, 0xfeee, 0xff16, 0xff38, 0xff55,
+ 0xff5a, 0xff54, 0xff62, 0xff76, 0xff82, 0xff84,
+ 0xff70, 0xff51, 0xff36, 0xff0e, 0xfee1, 0xfeba,
+ 0xfe9b, 0xfe84, 0xfe62, 0xfe3c, 0xfe35, 0xfe3c,
+ 0xfe3b, 0xfe29, 0xfdf4, 0xfda4, 0xfd3e, 0xfcc4,
+ 0xfc69, 0xfc1c, 0xfbab, 0xfb49, 0xfb1a, 0xfaf7,
+ 0xfade, 0xfacd, 0xfab6, 0xfaa4, 0xfa8f, 0xfa6d,
+ 0xfa48, 0xfa23, 0xfa0c, 0xfa05, 0xfa07, 0xfa14,
+ 0xfa16, 0xfa03, 0xf9f8, 0xf9f3, 0xf9f5, 0xfa09,
+ 0xfa06, 0xf9f0, 0xfa00, 0xfa19, 0xfa25, 0xfa4c,
+ 0xfa77, 0xfa89, 0xfa96, 0xfa96, 0xfa7f, 0xfa65,
+ 0xfa35, 0xf9ea, 0xf9b3, 0xf98d, 0xf951, 0xf903,
+ 0xf8b7, 0xf87a, 0xf858, 0xf844, 0xf82c, 0xf812,
+ 0xf804, 0xf800, 0xf7fa, 0xf7fc, 0xf80e, 0xf80d,
+ 0xf7fa, 0xf80e, 0xf84e, 0xf8b1, 0xf93f, 0xf9bf,
+ 0xfa0b, 0xfa5c, 0xfab0, 0xfade, 0xfb12, 0xfb58,
+ 0xfb98, 0xfbee, 0xfc59, 0xfcb9, 0xfd16, 0xfd51,
+ 0xfd54, 0xfd59, 0xfd72, 0xfd77, 0xfd6a, 0xfd5f,
+ 0xfd4d, 0xfd32, 0xfd23, 0xfd36, 0xfd5c, 0xfd91,
+ 0xfdf6, 0xfe65, 0xfea3, 0xfeda, 0xff24, 0xff5a,
+ 0xff9b, 0x000b, 0x0076, 0x00ca, 0x012f, 0x0190,
+ 0x01ca, 0x01ed, 0x020d, 0x022f, 0x025c, 0x0276,
+ 0x026d, 0x0266, 0x025f, 0x0237, 0x0214, 0x0209,
+ 0x01e5, 0x01b1, 0x0193, 0x0174, 0x013d, 0x0112,
+ 0x0119, 0x0137, 0x0157, 0x0198, 0x01e1, 0x0219,
+ 0x0281, 0x030d, 0x0378, 0x03e0, 0x043c, 0x0468,
+ 0x0491, 0x0497, 0x0471, 0x046b, 0x045d, 0x0420,
+ 0x03f6, 0x03cb, 0x0382, 0x032f, 0x02be, 0x0257,
+ 0x0215, 0x01c4, 0x0177, 0x0136, 0x00de, 0x0081,
+ 0x0021, 0xffc1, 0xff85, 0xff5a, 0xff2e, 0xff0f,
+ 0xfeea, 0xfece, 0xfec3, 0xfea3, 0xfe90, 0xfeac,
+ 0xfedf, 0xff2c, 0xff8b, 0xffed, 0x0043, 0x006d,
+ 0x007b, 0x0088, 0x0078, 0x005f, 0x0071, 0x00ab,
+ 0x00ea, 0x0111, 0x013c, 0x0177, 0x0190, 0x019f,
+ 0x01ad, 0x0181, 0x014a, 0x0127, 0x00e7, 0x00a6,
+ 0x0068, 0x0016, 0xffee, 0xffe9, 0x0000, 0x006a,
+ 0x00d2, 0x00eb, 0x0107, 0x012d, 0x0134, 0x014b,
+ 0x017e, 0x01bb, 0x0211, 0x026e, 0x02a8, 0x02be,
+ 0x02c7, 0x02c8, 0x02bb, 0x02aa, 0x0295, 0x027b,
+ 0x025e, 0x022f, 0x01ff, 0x01da, 0x01b2, 0x01b7,
+ 0x01f3, 0x021a, 0x024e, 0x02ae, 0x02ec, 0x0318,
+ 0x035e, 0x0392, 0x03a8, 0x03bb, 0x03dc, 0x0402,
+ 0x040c, 0x0405, 0x040e, 0x0406, 0x03de, 0x038f,
+ 0x0319, 0x02ad, 0x024d, 0x01de, 0x0189, 0x0135,
+ 0x00ca, 0x0098, 0x00a8, 0x00b3, 0x00b4, 0x00aa,
+ 0x008b, 0x0068, 0x0050, 0x0053, 0x006e, 0x008f,
+ 0x00bf, 0x00f4, 0x011e, 0x015c, 0x01b3, 0x01ff,
+ 0x0230, 0x024c, 0x0252, 0x0255, 0x0276, 0x02ae,
+ 0x02eb, 0x033a, 0x037a, 0x038e, 0x03a3, 0x03b3,
+ 0x0392, 0x037b, 0x038e, 0x0385, 0x0350, 0x0302,
+ 0x02aa, 0x0275, 0x0279, 0x02ac, 0x02ed, 0x0314,
+ 0x0340, 0x0395, 0x03e8, 0x0429, 0x046d, 0x04af,
+ 0x04f1, 0x0541, 0x0595, 0x05ce, 0x05db, 0x05e0,
+ 0x05e5, 0x05ca, 0x05a9, 0x058b, 0x0536, 0x04ce,
+ 0x048a, 0x0437, 0x03c9, 0x0369, 0x0305, 0x02af,
+ 0x028f, 0x0287, 0x0278, 0x026f, 0x0275, 0x027b,
+ 0x0281, 0x02a6, 0x02ec, 0x032e, 0x0377, 0x03d4,
+ 0x0440, 0x04b5, 0x0511, 0x0535, 0x0527, 0x04f4,
+ 0x04bd, 0x048e, 0x043c, 0x03d8, 0x038a, 0x033c,
+ 0x02fa, 0x02d8, 0x02b3, 0x0286, 0x025e, 0x0232,
+ 0x0209, 0x01dc, 0x0191, 0x012b, 0x00cb, 0x00aa,
+ 0x00c8, 0x00e1, 0x00e0, 0x00d0, 0x00c0, 0x00cb,
+ 0x00d8, 0x00d8, 0x00eb, 0x0108, 0x0135, 0x0179,
+ 0x01b4, 0x0204, 0x0272, 0x02c2, 0x031d, 0x0394,
+ 0x03d5, 0x03fc, 0x042f, 0x0444, 0x044e, 0x0451,
+ 0x042f, 0x0414, 0x0403, 0x03cb, 0x0383, 0x0350,
+ 0x031a, 0x02cd, 0x0284, 0x0254, 0x021e, 0x01e7,
+ 0x01d0, 0x01c7, 0x01cc, 0x01f7, 0x0233, 0x0270,
+ 0x02b3, 0x02f4, 0x0334, 0x035f, 0x035d, 0x034e,
+ 0x0342, 0x0333, 0x0317, 0x02f3, 0x02e9, 0x02e4,
+ 0x02b9, 0x02a8, 0x02c0, 0x02ab, 0x0263, 0x020b,
+ 0x01a8, 0x0154, 0x010b, 0x00c3, 0x009d, 0x0091,
+ 0x0089, 0x0083, 0x0073, 0x0055, 0x0026, 0xfff9,
+ 0xfffb, 0x0000, 0xffce, 0xff93, 0xff71, 0xff59,
+ 0xff4b, 0xff32, 0xff04, 0xfecf, 0xfe85, 0xfe28,
+ 0xfdd0, 0xfd79, 0xfd12, 0xfc9b, 0xfc2c, 0xfbdc,
+ 0xfba4, 0xfb7c, 0xfb64, 0xfb57, 0xfb5b, 0xfb6d,
+ 0xfb77, 0xfb94, 0xfbe4, 0xfc3f, 0xfc9a, 0xfd20,
+ 0xfdbd, 0xfe41, 0xfec1, 0xff48, 0xffc3, 0x002b,
+ 0x006c, 0x007d, 0x0082, 0x007a, 0x0055, 0x0026,
+ 0xffe4, 0xff90, 0xff4f, 0xff25, 0xff09, 0xfef8,
+ 0xfedb, 0xfeb9, 0xfea7, 0xfe98, 0xfe86, 0xfe90,
+ 0xfeb8, 0xfee5, 0xff2c, 0xff9e, 0x0006, 0x0055,
+ 0x00b7, 0x0122, 0x0198, 0x022c, 0x029d, 0x02d2,
+ 0x02fb, 0x0307, 0x02f9, 0x02f1, 0x02c3, 0x028e,
+ 0x027b, 0x0246, 0x01fa, 0x01cb, 0x0171, 0x00e4,
+ 0x0073, 0x000f, 0xffac, 0xff70, 0xff65, 0xff6b,
+ 0xff6d, 0xff70, 0xff6c, 0xff5b, 0xff54, 0xff42,
+ 0xff1e, 0xff19, 0xff36, 0xff5b, 0xff95, 0xffd1,
+ 0xffff, 0x0015, 0x0000, 0xffdb, 0xffbe, 0xff8e,
+ 0xff4f, 0xff09, 0xfebb, 0xfe7b, 0xfe2d, 0xfdc1,
+ 0xfd71, 0xfd2e, 0xfcdb, 0xfca4, 0xfc7d, 0xfc4b,
+ 0xfc28, 0xfc09, 0xfbde, 0xfbc0, 0xfbba, 0xfbc7,
+ 0xfbd6, 0xfbde, 0xfbf4, 0xfc00, 0xfbf0, 0xfc06,
+ 0xfc4e, 0xfc86, 0xfcb6, 0xfcf8, 0xfd1d, 0xfd15,
+ 0xfcf9, 0xfcc9, 0xfca3, 0xfc9e, 0xfc9a, 0xfc97,
+ 0xfcb0, 0xfcc4, 0xfcc3, 0xfcbe, 0xfca1, 0xfc73,
+ 0xfc5e, 0xfc5f, 0xfc70, 0xfc9f, 0xfcde, 0xfd03,
+ 0xfce6, 0xfc97, 0xfc46, 0xfbfc, 0xfbc2, 0xfbb2,
+ 0xfba6, 0xfb94, 0xfbb3, 0xfbec, 0xfc1e, 0xfc5f,
+ 0xfc75, 0xfc42, 0xfc2d, 0xfc5d, 0xfc93, 0xfcb6,
+ 0xfccb, 0xfcda, 0xfcf1, 0xfd05, 0xfd20, 0xfd4f,
+ 0xfd50, 0xfd16, 0xfcee, 0xfcbf, 0xfc4f, 0xfbd2,
+ 0xfb76, 0xfb26, 0xfae9, 0xfac1, 0xfa91, 0xfa58,
+ 0xfa28, 0xfa15, 0xfa2e, 0xfa5b, 0xfa82, 0xfaa4,
+ 0xfac5, 0xfae3, 0xfadf, 0xfa93, 0xfa32, 0xf9e1,
+ 0xf984, 0xf932, 0xf8f5, 0xf89b, 0xf850, 0xf845,
+ 0xf830, 0xf7f4, 0xf7b4, 0xf776, 0xf74a, 0xf736,
+ 0xf746, 0xf79e, 0xf806, 0xf839, 0xf853, 0xf872,
+ 0xf8ad, 0xf8fe, 0xf924, 0xf950, 0xf9c8, 0xfa37,
+ 0xfa7e, 0xfad3, 0xfb12, 0xfb38, 0xfb5f, 0xfb67,
+ 0xfb61, 0xfb68, 0xfb58, 0xfb37, 0xfb12, 0xfad8,
+ 0xfa94, 0xfa47, 0xf9f9, 0xf9c7, 0xf9a7, 0xf987,
+ 0xf964, 0xf92f, 0xf8ff, 0xf8fa, 0xf90b, 0xf923,
+ 0xf952, 0xf989, 0xf9d0, 0xfa44, 0xfac5, 0xfb37,
+ 0xfbbe, 0xfc58, 0xfce7, 0xfd8c, 0xfe45, 0xfee7,
+ 0xff75, 0xffe3, 0x0014, 0x0024, 0x0022, 0x0020,
+ 0x0048, 0x0078, 0x0087, 0x0090, 0x0097, 0x008d,
+ 0x0085, 0x0081, 0x008f, 0x00bb, 0x00e1, 0x00f8,
+ 0x012c, 0x016b, 0x0190, 0x01bd, 0x0214, 0x028a,
+ 0x0317, 0x03b4, 0x0451, 0x04e6, 0x055f, 0x05b9,
+ 0x060b, 0x0642, 0x0654, 0x064e, 0x061d, 0x05d5,
+ 0x05a3, 0x0562, 0x050f, 0x04cf, 0x0480, 0x0426,
+ 0x03e5, 0x03bc, 0x03bd, 0x03cf, 0x03c6, 0x03c9,
+ 0x03d1, 0x03c4, 0x03cc, 0x03db, 0x03f1, 0x0436,
+ 0x0458, 0x043e, 0x0439, 0x043b, 0x0437, 0x0438,
+ 0x0406, 0x03cf, 0x03c7, 0x03a8, 0x0376, 0x0353,
+ 0x0314, 0x02d3, 0x02b1, 0x0271, 0x020f, 0x01bf,
+ 0x0177, 0x0134, 0x0113, 0x00f3, 0x0092, 0x000c,
+ 0xff9e, 0xff41, 0xfeef, 0xfe9e, 0xfe29, 0xfd97,
+ 0xfd25, 0xfceb, 0xfcb7, 0xfc5d, 0xfc0d, 0xfbf6,
+ 0xfc0d, 0xfc45, 0xfc78, 0xfc92, 0xfcca, 0xfd0e,
+ 0xfd20, 0xfd1d, 0xfd23, 0xfd20, 0xfcfc, 0xfcb3,
+ 0xfc8e, 0xfc96, 0xfc5f, 0xfc04, 0xfc07, 0xfc49,
+ 0xfc66, 0xfc51, 0xfc50, 0xfc80, 0xfc91, 0xfc5c,
+ 0xfc18, 0xfbe2, 0xfbd4, 0xfbeb, 0xfc0c, 0xfc30,
+ 0xfc42, 0xfc5e, 0xfcdc, 0xfd84, 0xfdf2, 0xfe47,
+ 0xfe95, 0xfed1, 0xff00, 0xff17, 0xff20, 0xff0c,
+ 0xfec5, 0xfe77, 0xfe35, 0xfe07, 0xfdfd, 0xfde5,
+ 0xfdd2, 0xfe13, 0xfe66, 0xfe93, 0xfedb, 0xff4d,
+ 0xffc8, 0x003a, 0x00aa, 0x0121, 0x0176, 0x01ab,
+ 0x0205, 0x0273, 0x02c4, 0x02f7, 0x030b, 0x0316,
+ 0x0325, 0x0328, 0x0338, 0x035b, 0x0375, 0x037d,
+ 0x037d, 0x039e, 0x03d1, 0x03d5, 0x03c8, 0x03b7,
+ 0x037d, 0x0351, 0x033d, 0x02f4, 0x0286, 0x0219,
+ 0x01c6, 0x01b0, 0x019a, 0x0158, 0x012f, 0x0147,
+ 0x017e, 0x01b1, 0x01ed, 0x024c, 0x02ab, 0x030e,
+ 0x03a3, 0x0445, 0x04d9, 0x0560, 0x05ac, 0x05cb,
+ 0x05c6, 0x0579, 0x052c, 0x04fd, 0x04a4, 0x0441,
+ 0x03e2, 0x035c, 0x02ec, 0x02c5, 0x02d9, 0x0316,
+ 0x0330, 0x031e, 0x032d, 0x0339, 0x032e, 0x0348,
+ 0x0358, 0x0347, 0x0360, 0x0394, 0x03bd, 0x03e0,
+ 0x03ea, 0x03fe, 0x0445, 0x0484, 0x04c0, 0x0528,
+ 0x0569, 0x0562, 0x055b, 0x054e, 0x052b, 0x0511,
+ 0x04f4, 0x04cc, 0x0498, 0x0455, 0x0430, 0x0414,
+ 0x03ce, 0x0396, 0x0362, 0x02f2, 0x0294, 0x0288,
+ 0x02a0, 0x02b3, 0x02a7, 0x02a3, 0x02da, 0x02f6,
+ 0x02d2, 0x02d7, 0x0319, 0x035d, 0x0394, 0x03d5,
+ 0x042e, 0x0478, 0x0484, 0x0478, 0x047b, 0x0465,
+ 0x041b, 0x03c2, 0x037d, 0x0338, 0x02d5, 0x0253,
+ 0x01c7, 0x014e, 0x00e9, 0x0080, 0x0034, 0x0019,
+ 0x0005, 0xfff0, 0xffea, 0xffec, 0xfff3, 0xffea,
+ 0xffe2, 0x0006, 0x0024, 0x0017, 0x0028, 0x005a,
+ 0x0068, 0x0058, 0x0037, 0xfff9, 0xffc1, 0xffaa,
+ 0xff8d, 0xff4c, 0xff06, 0xfef7, 0xff2c, 0xff7a,
+ 0xffb3, 0xffc1, 0xff93, 0xff42, 0xff07, 0xfec7,
+ 0xfe43, 0xfdba, 0xfd7f, 0xfd85, 0xfda5, 0xfdbd,
+ 0xfddc, 0xfe28, 0xfe82, 0xfee6, 0xff5d, 0xff8d,
+ 0xff80, 0xffb4, 0x001e, 0x0091, 0x0112, 0x0166,
+ 0x0182, 0x019c, 0x018f, 0x0142, 0x00da, 0x0061,
+ 0xffec, 0xff82, 0xff1d, 0xfee3, 0xfec9, 0xfe9f,
+ 0xfe9c, 0xfece, 0xfeec, 0xfef7, 0xff21, 0xff66,
+ 0xffbe, 0x0016, 0x005e, 0x00a0, 0x00cf, 0x00db,
+ 0x00d3, 0x00d4, 0x0101, 0x0153, 0x01ab, 0x021c,
+ 0x0282, 0x027f, 0x0242, 0x0223, 0x01fc, 0x01b7,
+ 0x0170, 0x011d, 0x00c2, 0x0060, 0x0005, 0xffd8,
+ 0xffaa, 0xff73, 0xff84, 0xff9e, 0xff7b, 0xff74,
+ 0xff9a, 0xffc4, 0x0005, 0x0056, 0x00d2, 0x01a1,
+ 0x024f, 0x027b, 0x026f, 0x027c, 0x02b8, 0x0303,
+ 0x030f, 0x02f0, 0x02f4, 0x02ed, 0x027f, 0x01cf,
+ 0x012d, 0x00af, 0x005e, 0x002b, 0xfff4, 0xffcf,
+ 0xffb8, 0xff75, 0xff38, 0xff42, 0xff51, 0xff45,
+ 0xff37, 0xff0f, 0xfed7, 0xfeae, 0xfe8c, 0xfe7c,
+ 0xfe97, 0xfee1, 0xff31, 0xff5b, 0xff7b, 0xffa0,
+ 0xffbf, 0x0010, 0x008d, 0x00d3, 0x00d8, 0x00af,
+ 0x0043, 0xffc1, 0xff5d, 0xff1e, 0xfef6, 0xfeae,
+ 0xfe35, 0xfdc1, 0xfd72, 0xfd4a, 0xfd46, 0xfd5b,
+ 0xfd6b, 0xfd46, 0xfd0d, 0xfd06, 0xfd11, 0xfd19,
+ 0xfd40, 0xfd4c, 0xfd11, 0xfcd2, 0xfca2, 0xfc6a,
+ 0xfc5c, 0xfc84, 0xfc7f, 0xfc24, 0xfbe1, 0xfbed,
+ 0xfbfa, 0xfbee, 0xfbfa, 0xfc10, 0xfc0c, 0xfbfe,
+ 0xfbea, 0xfbb5, 0xfb71, 0xfb66, 0xfbba, 0xfc32,
+ 0xfc73, 0xfc76, 0xfc8e, 0xfccc, 0xfcd4, 0xfc88,
+ 0xfc22, 0xfbb9, 0xfb78, 0xfb97, 0xfbf6, 0xfc44,
+ 0xfc5d, 0xfc73, 0xfcca, 0xfd16, 0xfd01, 0xfced,
+ 0xfd0c, 0xfd15, 0xfd0a, 0xfcfe, 0xfcee, 0xfcff,
+ 0xfd18, 0xfd3b, 0xfdae, 0xfe36, 0xfe73, 0xfe99,
+ 0xfedd, 0xff1c, 0xff21, 0xfef0, 0xfece, 0xfeab,
+ 0xfe54, 0xfe02, 0xfd9d, 0xfcf3, 0xfc87, 0xfc89,
+ 0xfc88, 0xfc94, 0xfcd0, 0xfcfe, 0xfd48, 0xfde4,
+ 0xfe8e, 0xff02, 0xff47, 0xff87, 0xffc8, 0xffd8,
+ 0xffb2, 0xff8c, 0xff59, 0xfefc, 0xfe93, 0xfe32,
+ 0xfdc4, 0xfd3a, 0xfcc0, 0xfc89, 0xfc88, 0xfc9c,
+ 0xfcb4, 0xfcd6, 0xfd2f, 0xfda9, 0xfde4, 0xfdf8,
+ 0xfe2a, 0xfe3b, 0xfe0d, 0xfdfd, 0xfe2b, 0xfe62,
+ 0xfe84, 0xfe90, 0xfe94, 0xfebb, 0xfefb, 0xff29,
+ 0xff48, 0xff69, 0xff77, 0xff60, 0xff0d, 0xfe98,
+ 0xfe7a, 0xfeca, 0xfef4, 0xfeb3, 0xfe57, 0xfe1f,
+ 0xfe1e, 0xfe39, 0xfe28, 0xfde1, 0xfdaf, 0xfda4,
+ 0xfd8b, 0xfd77, 0xfd9c, 0xfde0, 0xfe45, 0xfeef,
+ 0xff79, 0xff97, 0xff88, 0xff51, 0xff01, 0xff08,
+ 0xff7b, 0x0016, 0x0090, 0x0082, 0x0033, 0x0018,
+ 0xffd0, 0xff1f, 0xfe59, 0xfd99, 0xfd08, 0xfca7,
+ 0xfc16, 0xfbb3, 0xfbf1, 0xfc60, 0xfcfe, 0xfddd,
+ 0xfe1f, 0xfdc2, 0xfdbb, 0xfdf9, 0xfe01, 0xfe28,
+ 0xfeab, 0xff4c, 0xffeb, 0x0086, 0x0126, 0x01c2,
+ 0x01fb, 0x01a8, 0x0151, 0x0140, 0x0128, 0x00fc,
+ 0x00ba, 0x004b, 0x0010, 0x0013, 0xffd0, 0xff4b,
+ 0xfed6, 0xfe96, 0xfeca, 0xff55, 0xffd6, 0x0024,
+ 0x001b, 0xffee, 0xffd1, 0xff6b, 0xff04, 0xff3d,
+ 0xff98, 0xffba, 0x000d, 0x0081, 0x0097, 0x0048,
+ 0x0006, 0x0000, 0xffd7, 0xff91, 0xff73, 0xff40,
+ 0xff1f, 0xff6f, 0xffcc, 0x0013, 0x0085, 0x00b7,
+ 0x0061, 0xffe7, 0xff6d, 0xfee4, 0xfe9c, 0xfeb8,
+ 0xfecc, 0xfed4, 0xff11, 0xff34, 0xff2e, 0xff41,
+ 0xff39, 0xff27, 0xff0d, 0xfe7e, 0xfdf2, 0xfdf5,
+ 0xfe47, 0xff04, 0xffe6, 0x0044, 0x0081, 0x00d0,
+ 0x00b9, 0x0040, 0xff7c, 0xfea7, 0xfe37, 0xfe4c,
+ 0xfef7, 0xffd9, 0x0036, 0x0010, 0xff7f, 0xfeb7,
+ 0xfe61, 0xfe64, 0xfe59, 0xfe72, 0xfebd, 0xfeef,
+ 0xfe93, 0xfdf0, 0xfdea, 0xfe2e, 0xfe89, 0xffa3,
+ 0x009b, 0x00b9, 0x00c1, 0x0098, 0x001b, 0xfff1,
+ 0x0023, 0x009c, 0x00fd, 0x0124, 0x01ad, 0x020b,
+ 0x01df, 0x021c, 0x023c, 0x01b0, 0x0139, 0x00ab,
+ 0x0009, 0x0001, 0x0046, 0x0092, 0x00e2, 0x013b,
+ 0x019e, 0x0163, 0x0111, 0x01e1, 0x030f, 0x03f6,
+ 0x0485, 0x03f1, 0x0305, 0x02ee, 0x0302, 0x02d1,
+ 0x0279, 0x0233, 0x0248, 0x023c, 0x0251, 0x02e3,
+ 0x02dd, 0x0259, 0x0226, 0x01fe, 0x0239, 0x02f3,
+ 0x0398, 0x045b, 0x04bd, 0x042a, 0x0336, 0x0226,
+ 0x015c, 0x0153, 0x01df, 0x02e3, 0x0361, 0x02ad,
+ 0x01d7, 0x011d, 0x00e2, 0x0240, 0x040d, 0x0534,
+ 0x060b, 0x0603, 0x054b, 0x0462, 0x02e1, 0x01c4,
+ 0x01a0, 0x01d2, 0x02dd, 0x0453, 0x04cf, 0x0481,
+ 0x03c6, 0x0295, 0x013c, 0x0035, 0x0016, 0x0054,
+ 0x006a, 0x013a, 0x0247, 0x024a, 0x019a, 0x00ae,
+ 0xffe6, 0xffc1, 0x0003, 0x0097, 0x0135, 0x01cc,
+ 0x02fe, 0x03e5, 0x0421, 0x051c, 0x05d8, 0x0538,
+ 0x04ec, 0x04e8, 0x03de, 0x02ad, 0x020f, 0x01c0,
+ 0x01de, 0x0237, 0x0256, 0x0240, 0x0223, 0x01cb,
+ 0x014d, 0x0144, 0x018c, 0x01ae, 0x01c8, 0x01b2,
+ 0x0182, 0x018b, 0x0159, 0x0148, 0x01c0, 0x01fb,
+ 0x0252, 0x02ca, 0x0201, 0x00ea, 0x00e4, 0x0128,
+ 0x01d8, 0x032e, 0x03d6, 0x03b6, 0x03b8, 0x03c8,
+ 0x0385, 0x0313, 0x02c7, 0x025d, 0x0169, 0x00b6,
+ 0x00db, 0x00eb, 0x0064, 0x0007, 0xffed, 0xff6c,
+ 0xfed4, 0xfe9b, 0xfe61, 0xfe62, 0xfea4, 0xfe68,
+ 0xfea7, 0xffe6, 0x0052, 0x0023, 0x009e, 0x008f,
+ 0xffad, 0xff2d, 0xfed6, 0xfe95, 0xfee1, 0xff20,
+ 0xfecf, 0xfe23, 0xfd4d, 0xfca1, 0xfc6a, 0xfcbc,
+ 0xfd77, 0xfe15, 0xfe54, 0xfe98, 0xfea3, 0xfdf7,
+ 0xfd93, 0xfdfb, 0xfdb8, 0xfcb8, 0xfc06, 0xfb49,
+ 0xfb36, 0xfc9b, 0xfdad, 0xfdf3, 0xfe74, 0xfe70,
+ 0xfdea, 0xfdd6, 0xfdc6, 0xfdce, 0xfe57, 0xfec1,
+ 0xfee9, 0xfec4, 0xfde7, 0xfce2, 0xfc58, 0xfbd8,
+ 0xfb44, 0xfb22, 0xfae9, 0xf9ef, 0xf931, 0xf91c,
+ 0xf93e, 0xf9e7, 0xfa15, 0xf965, 0xfa53, 0xfc5a,
+ 0xfd22, 0xfdf6, 0xff3a, 0xffc5, 0x005c, 0x009a,
+ 0xffc2, 0xff09, 0xfe94, 0xfe18, 0xfe0b, 0xfeb6,
+ 0x0059, 0x01b3, 0x01a6, 0x0166, 0x00b7, 0xfeb4,
+ 0xfcfe, 0xfca0, 0xfd19, 0xfe73, 0x00da, 0x0325,
+ 0x032e, 0x0186, 0x0041, 0xfea5, 0xfd12, 0xfd4d,
+ 0xfe25, 0xff94, 0x0258, 0x0439, 0x04b8, 0x044c,
+ 0x0246, 0x0080, 0x003f, 0x00f2, 0x0327, 0x0551,
+ 0x058c, 0x04ce, 0x036b, 0x01f2, 0x019f, 0x0232,
+ 0x03a6, 0x0556, 0x05fa, 0x0589, 0x03a5, 0x0160,
+ 0x005a, 0xff64, 0xff51, 0x00f0, 0x00e0, 0xff6e,
+ 0xff47, 0xff00, 0xfe1e, 0xfdc0, 0xfdda, 0xfe46,
+ 0xfe45, 0xfece, 0x0114, 0x02d2, 0x03b0, 0x0472,
+ 0x034e, 0x01d0, 0x021c, 0x0258, 0x0241, 0x023b,
+ 0x0148, 0xffe9, 0xfe86, 0xfd83, 0xfd4d, 0xfcf5,
+ 0xfd07, 0xfda8, 0xfd4c, 0xfd20, 0xfde2, 0xfe18,
+ 0xfe19, 0xfe0b, 0xfd8f, 0xfd22, 0xfcb2, 0xfd30,
+ 0xfe6d, 0xfeaf, 0xff7e, 0x00ba, 0xff9c, 0xfe0b,
+ 0xfd90, 0xfca5, 0xfc96, 0xfddc, 0xfed1, 0xff8b,
+ 0xffa7, 0xfef6, 0xfe68, 0xfde0, 0xfe13, 0xffb6,
+ 0x0198, 0x031a, 0x038b, 0x0211, 0xffea, 0xfe68,
+ 0xfd6f, 0xfcaf, 0xfcaf, 0xfdf0, 0xfee8, 0xfefb,
+ 0xffd8, 0x00a0, 0x0046, 0x0045, 0xfff6, 0xfef3,
+ 0xff09, 0xff26, 0xfe3a, 0xfdc2, 0xfd89, 0xfd1a,
+ 0xfd09, 0xfce0, 0xfcf1, 0xfddd, 0xfe93, 0xfe7d,
+ 0xfe0a, 0xfd80, 0xfd6c, 0xfe09, 0xfee7, 0x0001,
+ 0x0153, 0x01a7, 0x0055, 0xff1d, 0xfef5, 0xfe59,
+ 0xfd61, 0xfd3b, 0xfc72, 0xfa88, 0xfa1f, 0xfb86,
+ 0xfc5e, 0xfcf6, 0xfee5, 0x0099, 0x0068, 0xfffd,
+ 0x008e, 0x011a, 0x01a6, 0x02a9, 0x02e1, 0x0177,
+ 0xff5d, 0xfd75, 0xfc0d, 0xfbc1, 0xfcde, 0xfe67,
+ 0xfee0, 0xfdc2, 0xfc00, 0xfabc, 0xf9d8, 0xf96a,
+ 0xfa8b, 0xfca6, 0xfdbf, 0xfdba, 0xfdb9, 0xfdfb,
+ 0xfe63, 0xff26, 0xffd8, 0xff05, 0xfcf0, 0xfbe0,
+ 0xfc29, 0xfd2f, 0xff8e, 0x01d0, 0x020e, 0x01b4,
+ 0x0178, 0x004a, 0xff25, 0xff3a, 0xffcc, 0x004a,
+ 0x00e2, 0x015c, 0x011d, 0x003f, 0xff75, 0xfe65,
+ 0xfc9f, 0xfb58, 0xfafb, 0xf9cd, 0xf818, 0xf8c3,
+ 0xfbc6, 0xfe78, 0x003d, 0x00e4, 0xfff4, 0xff57,
+ 0xffcb, 0xff61, 0xfe30, 0xfd89, 0xfd96, 0xfe8b,
+ 0xffd2, 0x008c, 0x00fb, 0x0080, 0xfe86, 0xfcfd,
+ 0xfd59, 0xfe4c, 0xff1a, 0x0067, 0x00fa, 0xffdb,
+ 0xff1a, 0xff3f, 0xfeaa, 0xfde7, 0xfe37, 0xff72,
+ 0x004d, 0x001d, 0x0113, 0x0301, 0x0252, 0x00ac,
+ 0x0095, 0xffbc, 0xfeb3, 0xff3d, 0xffab, 0x0035,
+ 0x017a, 0x0170, 0xff4f, 0xfced, 0xfc90, 0xfcaf,
+ 0xfacb, 0xf9f6, 0xfb96, 0xfc45, 0xfc59, 0xfd02,
+ 0xfd1d, 0xfd2b, 0xfd59, 0xfd71, 0xfe03, 0xfea2,
+ 0xfedd, 0xfe17, 0xfe18, 0x016d, 0x0361, 0x014c,
+ 0x002e, 0xff8f, 0xfe39, 0xffc3, 0x0233, 0x02f9,
+ 0x02a9, 0xffa7, 0xfbf5, 0xfaea, 0xfbf0, 0xfe99,
+ 0xfff3, 0xfe04, 0xfc42, 0xfb22, 0xfa92, 0xfc6e,
+ 0xfdd0, 0xfca0, 0xfa43, 0xf83f, 0xf8b0, 0xf90f,
+ 0xf673, 0xf46f, 0xf4f6, 0xf808, 0xfc82, 0xfd83,
+ 0xfc41, 0xfcf7, 0xff1a, 0x039f, 0x07a3, 0x068b,
+ 0x04d5, 0x035f, 0xff71, 0xfdf9, 0xffcf, 0x01b9,
+ 0x045b, 0x0511, 0x0202, 0xff1e, 0xff7a, 0x01ec,
+ 0x0248, 0x021e, 0x0553, 0x0644, 0x0434, 0x065e,
+ 0x09bd, 0x0a55, 0x0a86, 0x09c2, 0x085c, 0x0665,
+ 0x0357, 0x0314, 0x0400, 0x0296, 0x029c, 0x03d8,
+ 0x0331, 0x018f, 0xff6e, 0xfe8a, 0xff19, 0xfff6,
+ 0x0383, 0x0556, 0x0031, 0xfb7a, 0xfb63, 0xfd02,
+ 0x01cd, 0x0902, 0x0c7d, 0x093f, 0x0525, 0x06bd,
+ 0x07c7, 0x04ba, 0x0625, 0x0861, 0x0298, 0xfc42,
+ 0xfc01, 0xfe18, 0xff53, 0xff4c, 0xfe99, 0xfcf6,
+ 0xfe4c, 0x065a, 0x0a3a, 0x0408, 0x0094, 0x0228,
+ 0x0089, 0xffcd, 0x047c, 0x0847, 0x067d, 0x04a6,
+ 0x0730, 0x071b, 0x02b7, 0x01d6, 0x0197, 0xfe0e,
+ 0xfe1e, 0x0249, 0x04d8, 0x0617, 0x08ef, 0x0bc0,
+ 0x088b, 0x0150, 0xfeef, 0x0051, 0x011a, 0x004a,
+ 0xfaf3, 0xf68d, 0xfa1c, 0xfea6, 0xff91, 0x017c,
+ 0x0502, 0x056e, 0xff1f, 0xf83a, 0xf9b0, 0xfe7e,
+ 0xfdfe, 0xf864, 0xf26a, 0xf274, 0xf84b, 0xfdd1,
+ 0x0200, 0x056f, 0x0923, 0x0c89, 0x08aa, 0x00e2,
+ 0x0166, 0x07b4, 0x0aee, 0x0aba, 0x09ca, 0x07e8,
+ 0x021c, 0xfc1e, 0xfbf2, 0xfca0, 0xfc1e, 0xfd66,
+ 0xfb53, 0xf771, 0xf99e, 0xfed4, 0x030d, 0x0637,
+ 0x06f5, 0x04d0, 0xff29, 0xf9ef, 0xfa14, 0xfbe7,
+ 0xfd2e, 0xfc33, 0xf4f1, 0xef82, 0xf2be, 0xf7a5,
+ 0xfba3, 0x005d, 0x0328, 0x022e, 0xffcb, 0x02c0,
+ 0x08e7, 0x0787, 0x0238, 0x00e3, 0x0259, 0x07c0,
+ 0x0cd9, 0x0a5e, 0x0611, 0x050c, 0x057a, 0x0655,
+ 0x0624, 0x06e2, 0x0827, 0x04db, 0xffd0, 0xfcbf,
+ 0xfd32, 0x0344, 0x05d4, 0xff04, 0xf7e2, 0xf4be,
+ 0xf65f, 0xfb8e, 0xfb9b, 0xf81b, 0xf872, 0xfa6f,
+ 0xfc21, 0xfc89, 0xfad4, 0xf948, 0xf867, 0xfcf7,
+ 0x0732, 0x0aab, 0x0766, 0x0618, 0x04c5, 0x03d8,
+ 0x05a7, 0x07b9, 0x09d1, 0x0ac7, 0x0b29, 0x0bec,
+ 0x0aa6, 0x0d3b, 0x1355, 0x0faf, 0x05dc, 0x0088,
+ 0xfea2, 0x00c7, 0x040f, 0x02cc, 0x0047, 0xfe5b,
+ 0xfde3, 0xff6f, 0xfd00, 0xf647, 0xef77, 0xed2a,
+ 0xf5dd, 0xffab, 0xfce8, 0xf4ec, 0xf018, 0xefe3,
+ 0xf504, 0xf99f, 0xfc29, 0xfe45, 0xfd01, 0xfb68,
+ 0xfb22, 0xfbc4, 0x028f, 0x09fa, 0x09ce, 0x05b9,
+ 0x007c, 0xff83, 0x051b, 0x066c, 0x0367, 0x04ac,
+ 0x0906, 0x0dc1, 0x0f81, 0x0d0f, 0x085d, 0xfe45,
+ 0xf5f1, 0xf94e, 0xff6e, 0x02fe, 0x04c0, 0xff52,
+ 0xf935, 0xfa76, 0xfee4, 0x04ae, 0x0967, 0x09d0,
+ 0x05f6, 0xfd7a, 0xf807, 0xf8f2, 0xf7ed, 0xf740,
+ 0xf784, 0xf208, 0xef51, 0xf489, 0xfa2a, 0xff7d,
+ 0x0500, 0x08e8, 0x07f9, 0x00e2, 0xffb9, 0x0791,
+ 0x0c9e, 0x10a2, 0x1593, 0x15c7, 0x13fc, 0x0e1b,
+ 0x0245, 0xfa65, 0xfa74, 0xfe69, 0xfc14, 0xed8d,
+ 0xe3e9, 0xe912, 0xf08f, 0xf58a, 0xf92e, 0xfbd1,
+ 0xfdd9, 0xf86f, 0xf02e, 0xf11e, 0xf558, 0xf623,
+ 0xf48b, 0xf2ff, 0xf8fc, 0x0245, 0x04b0, 0x04a5,
+ 0x0534, 0x04e4, 0x0396, 0xffaa, 0xff07, 0x0073,
+ 0xfab6, 0xf84c, 0xfee4, 0x0200, 0x03e0, 0x0b61,
+ 0x1275, 0x1034, 0x000c, 0xed89, 0xe8bc, 0xf582,
+ 0x132f, 0x30c1, 0x36c5, 0x271e, 0x08a6, 0xe227,
+ 0xcb75, 0xd000, 0xe54c, 0x0082, 0x18ca, 0x26fe,
+ 0x225d, 0x0ba7, 0xf506, 0xe1f8, 0xcdfc, 0xc940,
+ 0xdd03, 0x0156, 0x29f2, 0x4110, 0x3bf6, 0x245c,
+ 0x0590, 0xeb19, 0xdc92, 0xe05e, 0xfa69, 0x142e,
+ 0x175f, 0x0f78, 0x0afe, 0x0b1f, 0x0b3c, 0x0601,
+ 0x022e, 0x00a9, 0xf653, 0xe8a3, 0xe1ec, 0xe260,
+ 0xea98, 0xf6a4, 0x021e, 0x0851, 0x00aa, 0xf3e5,
+ 0xee4b, 0xe984, 0xe24b, 0xdaca, 0xd620, 0xdd0a,
+ 0xeb2d, 0xf5ed, 0xfc37, 0xfc8e, 0xfb14, 0xfa9f,
+ 0xf270, 0xe58d, 0xdce5, 0xd8ef, 0xdce0, 0xe6c5,
+ 0xf256, 0x002e, 0x07d7, 0x0677, 0x04ad, 0x0315,
+ 0x03c4, 0x0b08, 0x1813, 0x2a51, 0x3488, 0x2964,
+ 0x1154, 0xf5e6, 0xdf60, 0xd841, 0xde1c, 0xed67,
+ 0x00b6, 0x096b, 0x044e, 0xf3df, 0xdb03, 0xc773,
+ 0xbf3b, 0xc17a, 0xcfb1, 0xdf0d, 0xe6cb, 0xea81,
+ 0xed85, 0xf5db, 0x026f, 0x0c13, 0x1447, 0x14b5,
+ 0x08b5, 0xfed3, 0xfd94, 0x0372, 0x11a1, 0x1f18,
+ 0x2481, 0x226a, 0x1abb, 0x12fc, 0x0a9d, 0x05ec,
+ 0x1049, 0x1e26, 0x24bb, 0x2dd0, 0x3392, 0x2a9f,
+ 0x1a28, 0x0c0d, 0x06e2, 0x0b84, 0x165d, 0x2160,
+ 0x1dbb, 0x0c53, 0xfe47, 0xf3f1, 0xef26, 0xf619,
+ 0xfc06, 0x00f5, 0x1361, 0x27e3, 0x28b3, 0x1790,
+ 0x0b8e, 0x0ee8, 0x12fb, 0x1785, 0x22d8, 0x24ec,
+ 0x1eef, 0x211e, 0x216e, 0x1638, 0x0851, 0xffda,
+ 0xffa5, 0x04c5, 0x0d83, 0x1379, 0x08be, 0xf7b8,
+ 0xf41c, 0xf831, 0xfc38, 0xfc3d, 0xf112, 0xdfc1,
+ 0xcea6, 0xc515, 0xceec, 0xe219, 0xec5c, 0xec2f,
+ 0xe55a, 0xdd83, 0xd702, 0xd326, 0xd8d2, 0xdf8d,
+ 0xde26, 0xde40, 0xdcd6, 0xd4e2, 0xd316, 0xd624,
+ 0xd4e3, 0xd459, 0xd958, 0xdfdd, 0xdf2d, 0xdcbc,
+ 0xe7d6, 0xf63d, 0xf880, 0xf11b, 0xde58, 0xc925,
+ 0xc391, 0xc677, 0xc969, 0xd47a, 0xe833, 0xf95b,
+ 0xfb0d, 0xef83, 0xe228, 0xd235, 0xc663, 0xc905,
+ 0xcf1d, 0xd4d1, 0xdef0, 0xe5d0, 0xeb06, 0xf293,
+ 0xf4f9, 0xf432, 0xf5e3, 0xf6c2, 0xf097, 0xe61f,
+ 0xea2c, 0xfcf6, 0x079e, 0x0cb4, 0x159b, 0x1975,
+ 0x1d4a, 0x2816, 0x2fe4, 0x3006, 0x2bb6, 0x283a,
+ 0x27ce, 0x2937, 0x318d, 0x3c7d, 0x4148, 0x4610,
+ 0x41d3, 0x27b0, 0x0bdc, 0xfbe9, 0xee9a, 0xe54e,
+ 0xe790, 0xf545, 0x04c7, 0x0ce7, 0x1055, 0x0e61,
+ 0x0a99, 0x1061, 0x1188, 0x0510, 0x04bc, 0x14b6,
+ 0x2008, 0x2788, 0x34e2, 0x3d90, 0x2e6d, 0x1408,
+ 0x1101, 0x2029, 0x2895, 0x2d81, 0x3053, 0x2c33,
+ 0x2a42, 0x2c40, 0x2a5b, 0x20bf, 0x1521, 0x13e5,
+ 0x17c5, 0x15c1, 0x122e, 0x0899, 0xf7bd, 0xf11f,
+ 0xf70d, 0xff83, 0x0718, 0x0c2f, 0x12b5, 0x187f,
+ 0x1685, 0x1246, 0x0af1, 0xfb63, 0xead3, 0xdbda,
+ 0xcfc3, 0xc825, 0xbc74, 0xb1d0, 0xb7fa, 0xd0c4,
+ 0xf5de, 0x17a7, 0x2700, 0x253c, 0x180b, 0x0a7a,
+ 0x02db, 0xf4bb, 0xe132, 0xd40b, 0xc92b, 0xc15d,
+ 0xbee2, 0xb833, 0xad24, 0xa713, 0xb003, 0xc819,
+ 0xdec8, 0xeed2, 0xf918, 0xf11f, 0xde73, 0xd6a6,
+ 0xd806, 0xd910, 0xd8c2, 0xdc0c, 0xe4f2, 0xea6f,
+ 0xeb24, 0xe8a4, 0xdc13, 0xd14a, 0xd538, 0xdb4f,
+ 0xde2c, 0xe328, 0xeac5, 0xf59a, 0xfcbd, 0xfedb,
+ 0x06c9, 0x13bf, 0x21d5, 0x2c98, 0x28b1, 0x1e31,
+ 0x1d2a, 0x23fe, 0x2cee, 0x2d46, 0x1db9, 0x0ee3,
+ 0x12a9, 0x25a9, 0x367d, 0x3cea, 0x441c, 0x4a01,
+ 0x4006, 0x3034, 0x297f, 0x2953, 0x2855, 0x211e,
+ 0x19e7, 0x168a, 0x0f7a, 0x0e03, 0x15bc, 0x145e,
+ 0x1033, 0x1628, 0x18b2, 0x13fd, 0x13f0, 0x1c8c,
+ 0x26e0, 0x29d9, 0x2dd1, 0x3887, 0x38e0, 0x332a,
+ 0x3e71, 0x50ab, 0x5242, 0x4496, 0x3270, 0x1cdf,
+ 0x0d4d, 0x18d0, 0x3509, 0x4287, 0x4328, 0x4249,
+ 0x3d3d, 0x3a1b, 0x3728, 0x2d2f, 0x23e9, 0x1b51,
+ 0x1831, 0x2722, 0x305c, 0x22ba, 0x2167, 0x384a,
+ 0x41ca, 0x3946, 0x3f20, 0x4c8a, 0x4e12, 0x5a20,
+ 0x675a, 0x4dbc, 0x336b, 0x3ea9, 0x3fa1, 0x2f44,
+ 0x3709, 0x41fa, 0x3a76, 0x3668, 0x31a9, 0x26af,
+ 0x2d18, 0x411a, 0x4e20, 0x598a, 0x5ed0, 0x5172,
+ 0x48b3, 0x49b3, 0x348e, 0x1c7c, 0x2117, 0x1f29,
+ 0x055b, 0xf00f, 0xe508, 0xeb1d, 0x085b, 0x1fe7,
+ 0x277d, 0x2c5e, 0x2c76, 0x2ca0, 0x2ea0, 0x23db,
+ 0x144e, 0x0f3f, 0x0920, 0xfa1a, 0xf358, 0xfdab,
+ 0x03ba, 0xfc33, 0x01c5, 0x153d, 0x1331, 0x03e5,
+ 0x090c, 0x0ab9, 0xf1aa, 0xe94a, 0xf651, 0xe55d,
+ 0xd37c, 0xe85b, 0xe64b, 0xc848, 0xd266, 0xdff0,
+ 0xc943, 0xc6fa, 0xd343, 0xc49c, 0xc1b1, 0xd353,
+ 0xd07a, 0xc3be, 0xb49d, 0x8ea0, 0x8000, 0x8000,
+ 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, 0x8000,
+ 0x8000, 0x8000, 0x8b41, 0xbb9c, 0xc3c8, 0xaf66,
+ 0xa78d, 0xa953, 0xa789, 0x990f, 0x8000, 0x8000,
+ 0x8000, 0x8000, 0x8000, 0x8000, 0x881c, 0x84d5,
+ 0x8f12, 0xab35, 0xaaab, 0x9f2e, 0xb2b3, 0xbf88,
+ 0xb61d, 0xbda9, 0xc17f, 0xa48e, 0x92a2, 0x9d62,
+ 0x9a69, 0x883b, 0x8d89, 0xa6d7, 0xb411, 0xb5fe,
+ 0xbea5, 0xc49c, 0xb9b8, 0xb006, 0xb518, 0xb69c,
+ 0xb3f6, 0xbcc9, 0xc11f, 0xbd42, 0xcc7e, 0xe5de,
+ 0xf1a0, 0xf312, 0xea1d, 0xe40c, 0xec36, 0xdfed,
+ 0xc711, 0xcc95, 0xc5b5, 0xa16a, 0xa64b, 0xbb6c,
+ 0xa83a, 0xa860, 0xbd8f, 0xa5a2, 0x984e, 0xb6e7,
+ 0xb2ae, 0xa14f, 0xb9dc, 0xbbbb, 0xa0f4, 0xac2e,
+ 0xbfa9, 0xc5cd, 0xe1ab, 0xf0f4, 0xe296, 0xe69d,
+ 0xea1b, 0xd5d8, 0xd434, 0xddfa, 0xd78a, 0xd73e,
+ 0xd72a, 0xcb33, 0xce6b, 0xd7c1, 0xd5be, 0xdc52,
+ 0xde45, 0xccef, 0xc9f4, 0xd6f6, 0xdcfe, 0xe34c,
+ 0xe319, 0xd7e2, 0xdaaa, 0xe4e6, 0xe6e4, 0xe9c9,
+ 0xe0e6, 0xd377, 0xe1c2, 0xe976, 0xd807, 0xe2f7,
+ 0xf72e, 0xec1a, 0xf71a, 0x1267, 0x013d, 0xf696,
+ 0x0c31, 0xfd88, 0xea75, 0x0a3b, 0x1a85, 0x0759,
+ 0x0795, 0x0a83, 0x0178, 0x0af5, 0x13dd, 0x1338,
+ 0x27a8, 0x3414, 0x1fa5, 0x1823, 0x1fb4, 0x137e,
+ 0x0b59, 0x1376, 0x0902, 0xf49d, 0xf2d6, 0xf416,
+ 0xf52e, 0x0a1b, 0x1ba0, 0x1464, 0x1c92, 0x3ecc,
+ 0x43c8, 0x2b29, 0x296e, 0x31dd, 0x2862, 0x2c3f,
+ 0x4382, 0x505f, 0x57dc, 0x56e7, 0x3d9e, 0x2a66,
+ 0x2b09, 0x2695, 0x2a90, 0x3ba3, 0x36dd, 0x2a1f,
+ 0x2b37, 0x210c, 0x18a3, 0x23f0, 0x1dcf, 0x1622,
+ 0x3441, 0x4665, 0x3e82, 0x5547, 0x679a, 0x459f,
+ 0x2fe9, 0x3ede, 0x3c5f, 0x35e3, 0x4b13, 0x57c1,
+ 0x4e00, 0x4a9f, 0x497d, 0x3dfc, 0x3c26, 0x4a87,
+ 0x4f84, 0x473b, 0x470b, 0x436d, 0x298c, 0x1bd0,
+ 0x2f02, 0x3a1b, 0x33a8, 0x3d70, 0x4e8d, 0x4f9b,
+ 0x4bd4, 0x4ee1, 0x5d92, 0x716f, 0x6ee3, 0x5bc5,
+ 0x5478, 0x4a04, 0x3861, 0x3d35, 0x49be, 0x4b0f,
+ 0x53e4, 0x5381, 0x41dc, 0x4cb9, 0x620a, 0x54ee,
+ 0x5422, 0x6ab2, 0x5977, 0x4093, 0x5933, 0x6f1c,
+ 0x65d4, 0x5f8c, 0x4dc8, 0x321b, 0x3b65, 0x514b,
+ 0x4b78, 0x4b8c, 0x56d9, 0x453e, 0x28f8, 0x2440,
+ 0x2463, 0x21fc, 0x3793, 0x5d8f, 0x6c4d, 0x5ed2,
+ 0x523e, 0x5121, 0x51cc, 0x4ee4, 0x4385, 0x354e,
+ 0x36d9, 0x41c3, 0x4265, 0x3f61, 0x3d83, 0x351f,
+ 0x30c7, 0x353e, 0x3474, 0x304c, 0x30ff, 0x3651,
+ 0x446c, 0x51c6, 0x4e85, 0x4826, 0x4962, 0x42e9,
+ 0x3693, 0x3348, 0x336b, 0x32e6, 0x3418, 0x29a8,
+ 0x170d, 0x18b4, 0x21c1, 0x106d, 0x01c3, 0x12de,
+ 0x1892, 0x08e3, 0x1454, 0x2ad0, 0x24d6, 0x2259,
+ 0x2da1, 0x2062, 0x0c75, 0x1178, 0x13ff, 0x096e,
+ 0x0adc, 0x0f5d, 0x05ab, 0xffe0, 0x05fd, 0x04ed,
+ 0xfdc4, 0x0130, 0x0522, 0xfbcd, 0xf54e, 0xfc16,
+ 0x01bf, 0x01d9, 0x03cc, 0x0522, 0x0174, 0xfb34,
+ 0xf66b, 0xf346, 0xee99, 0xebb7, 0xedf2, 0xef39,
+ 0xf307, 0xfcc9, 0xf843, 0xe562, 0xe47a, 0xf11d,
+ 0xf095, 0xf2f6, 0x04f7, 0x0c64, 0x06e2, 0x04bd,
+ 0xf819, 0xe4c0, 0xeb21, 0xf759, 0xe18c, 0xc79f,
+ 0xcd01, 0xd6f5, 0xd4b8, 0xd6b0, 0xdb12, 0xe366,
+ 0xfa98, 0x0784, 0xfb37, 0xfb16, 0x0f6c, 0x0f36,
+ 0xf4d1, 0xdb21, 0xc95a, 0xc8d2, 0xe431, 0xfdaa,
+ 0xfb70, 0xfb6a, 0x1031, 0x1a58, 0x11a5, 0x0e3e,
+ 0x0c4b, 0x011b, 0xf66a, 0xeab4, 0xdfb8, 0xe463,
+ 0xe70a, 0xd6a9, 0xd48b, 0xed31, 0xfb52, 0xf408,
+ 0xe7f5, 0xdb08, 0xd8dd, 0xe74f, 0xeec9, 0xee24,
+ 0xfa4d, 0xfebe, 0xe844, 0xdbdc, 0xeab0, 0xf2f4,
+ 0xedf4, 0xebfd, 0xe234, 0xd2b8, 0xd523, 0xda5e,
+ 0xccc5, 0xc55c, 0xcc12, 0xc2e9, 0xb4b0, 0xbef5,
+ 0xcf37, 0xd6f6, 0xe303, 0xe3df, 0xcb9f, 0xb556,
+ 0xb3d2, 0xbefc, 0xc8d1, 0xc733, 0xc4de, 0xcc41,
+ 0xd283, 0xd7fe, 0xdb58, 0xccaa, 0xbd6c, 0xbb7c,
+ 0xa91e, 0x920b, 0x9f6f, 0xb25d, 0xa146, 0x8aeb,
+ 0x90e7, 0xa306, 0xadfe, 0xbdf3, 0xda34, 0xe2c7,
+ 0xc83b, 0xb315, 0xb935, 0xbe35, 0xb530, 0xb421,
+ 0xc7bf, 0xd3f3, 0xbe7f, 0xaf05, 0xc477, 0xd136,
+ 0xcefe, 0xe403, 0xe803, 0xc0bd, 0xae2d, 0xbe12,
+ 0xc600, 0xc316, 0xbfeb, 0xc732, 0xd4f8, 0xc9d5,
+ 0xbee1, 0xd73b, 0xe0e1, 0xd030, 0xd4bc, 0xd9a9,
+ 0xcc21, 0xcee5, 0xde8e, 0xe55c, 0xe349, 0xe015,
+ 0xea3e, 0xec9c, 0xd2d6, 0xc8f2, 0xdc36, 0xeb9e,
+ 0xf72a, 0xf98a, 0xf516, 0x0103, 0x018a, 0xf72b,
+ 0x0efa, 0x2221, 0x12bb, 0x0aac, 0x06cf, 0x04ca,
+ 0x0db7, 0xfb5b, 0xe7e1, 0xf97e, 0xf7b9, 0xe884,
+ 0xf3be, 0xe9af, 0xd7be, 0xecfe, 0xf84e, 0xf262,
+ 0x0327, 0x09db, 0xf626, 0xed97, 0xf97d, 0x0685,
+ 0x0729, 0x0541, 0x00d3, 0xe491, 0xcb9c, 0xd213,
+ 0xd603, 0xd275, 0xd530, 0xca85, 0xc5e1, 0xde8b,
+ 0xf63e, 0xfc35, 0xebfc, 0xcf8c, 0xd3f1, 0xe835,
+ 0xdaa7, 0xd1f2, 0xe843, 0xecdf, 0xe82b, 0x00d7,
+ 0x0ca7, 0xf7f7, 0xfd05, 0x0be8, 0xe7d2, 0xc69f,
+ 0xde1e, 0xf4aa, 0xe9f0, 0xd86c, 0xd40b, 0xe86d,
+ 0xf453, 0xda82, 0xc6c7, 0xccce, 0xd636, 0xd566,
+ 0xb6b5, 0x9ec2, 0xb8b0, 0xcd55, 0xcede, 0xdf42,
+ 0xda45, 0xcb08, 0xd32c, 0xc7d2, 0xbe44, 0xd8a1,
+ 0xdebf, 0xd187, 0xcffd, 0xca78, 0xd049, 0xdc0a,
+ 0xd4c1, 0xcf24, 0xc889, 0xc483, 0xcfb3, 0xc686,
+ 0xc6f0, 0xea97, 0xe569, 0xcffe, 0xe0f5, 0xdc8c,
+ 0xd685, 0xf156, 0xf21a, 0xf48b, 0x0cfe, 0x04a4,
+ 0x0277, 0x143d, 0x091f, 0x018e, 0xfef2, 0xeecb,
+ 0xfc65, 0x081e, 0xf516, 0xfa1e, 0x090f, 0x0703,
+ 0x0868, 0xfde5, 0xef19, 0xf355, 0x0007, 0x16c9,
+ 0x1c12, 0x050b, 0x02cd, 0xfc34, 0xe1a8, 0xf406,
+ 0x0edc, 0xfcf5, 0xebe4, 0xdf57, 0xd432, 0xe8b0,
+ 0x015d, 0x0603, 0xfa90, 0xee51, 0x03ca, 0x0c5a,
+ 0xe87d, 0xf051, 0x1260, 0xfe7b, 0xf031, 0xffcd,
+ 0xfec6, 0x05fa, 0x18a0, 0x1d6f, 0x21d2, 0x1f84,
+ 0x16e8, 0x1971, 0x1fc5, 0x282d, 0x22fe, 0x07d4,
+ 0xfc52, 0x024c, 0x0e40, 0x267c, 0x2877, 0x1bfc,
+ 0x1d65, 0x00ac, 0xe1ea, 0xf534, 0xf518, 0xdbb5,
+ 0xe2bd, 0xe95b, 0xf1c5, 0x1220, 0x1856, 0x0e6f,
+ 0x1165, 0xfe19, 0xe547, 0xe536, 0xe110, 0xd50b,
+ 0xd8fa, 0xee97, 0xfd7e, 0xf651, 0xfc29, 0x1454,
+ 0x0ece, 0xf7db, 0xf344, 0xf8fc, 0xff6c, 0xf686,
+ 0xe98d, 0xfbdf, 0x07ab, 0xf536, 0xf3fb, 0xfb76,
+ 0xf733, 0x0202, 0x14a3, 0x21bc, 0x2601, 0x191d,
+ 0x1bb4, 0x252f, 0x07f5, 0xf8cd, 0x1336, 0x15da,
+ 0x0ec5, 0x1e56, 0x11d0, 0xecb6, 0xec22, 0x08f4,
+ 0x1912, 0x1f8b, 0x2823, 0x191f, 0xfbab, 0x00f6,
+ 0x0dc7, 0xfd17, 0xf7e0, 0xffb1, 0xfec5, 0x0d05,
+ 0x11ee, 0xf956, 0xf06b, 0xf0e2, 0xeafb, 0xf783,
+ 0x009d, 0x0092, 0x0f13, 0x0bd2, 0xfbe7, 0x0760,
+ 0x1326, 0x183c, 0x1ee4, 0xff25, 0xd688, 0xdf61,
+ 0xf3b6, 0xfb53, 0x0a7d, 0x0f13, 0x099b, 0x0b30,
+ 0x005e, 0xf411, 0xfc75, 0x0042, 0x06cc, 0x2386,
+ 0x2494, 0x0753, 0x0b17, 0x0cd9, 0xdf74, 0xd023,
+ 0xef59, 0xf28a, 0xf361, 0x0f23, 0x0c91, 0xff0f,
+ 0x0d05, 0x0a73, 0x0a9e, 0x286e, 0x1e3d, 0xfeb2,
+ 0x1103, 0x1c7b, 0x08c8, 0x14c7, 0x260d, 0x1242,
+ 0xfedb, 0xfdcf, 0x0390, 0x0e07, 0x19cb, 0x2471,
+ 0x1de8, 0x09aa, 0x0bad, 0x14a1, 0x0ee5, 0x130c,
+ 0x09db, 0xee09, 0x004c, 0x2005, 0x0b3c, 0xf6cf,
+ 0x020d, 0x0d14, 0x14d9, 0x074b, 0xe6f9, 0xe818,
+ 0x01bc, 0x1094, 0x15e1, 0x0a6f, 0x0109, 0x0daf,
+ 0x0c05, 0x02bb, 0x16d3, 0x2937, 0x22af, 0x1541,
+ 0x089d, 0x0504, 0x062d, 0x0ada, 0x21e5, 0x2b09,
+ 0x1a94, 0x2003, 0x1ca2, 0xee1e, 0xe564, 0x105f,
+ 0x1668, 0xf96a, 0xf404, 0xfe05, 0x012e, 0x0b43,
+ 0x1484, 0xff71, 0xedf7, 0x09e9, 0x1f88, 0x13dd,
+ 0x0f26, 0x01cf, 0xf3e9, 0x1a3a, 0x35a2, 0x1213,
+ 0xff72, 0x10e3, 0x18ad, 0x1fc4, 0x200d, 0x0fe8,
+ 0x0ffb, 0x1bb5, 0x199e, 0x13b8, 0x135f, 0x14b9,
+ 0x1594, 0x1590, 0x0e19, 0xfdbc, 0xfd54, 0x0542,
+ 0xf92a, 0x071d, 0x2df3, 0x1b7e, 0x054b, 0x2c53,
+ 0x30dc, 0x0a5f, 0x0690, 0x027f, 0xf9f0, 0x0a93,
+ 0xff53, 0xeaa1, 0xfe63, 0x0766, 0xff71, 0xfd84,
+ 0xe84a, 0xea52, 0x13ea, 0x1625, 0x040e, 0x17c6,
+ 0x2612, 0x1d5e, 0x1a21, 0x170d, 0x170a, 0x1d5e,
+ 0x1e4d, 0x23d7, 0x2707, 0x14fd, 0x098c, 0x15e7,
+ 0x1966, 0x0e1c, 0x0e82, 0x0f8e, 0xff31, 0xf926,
+ 0x069d, 0x0913, 0x0027, 0xf4a1, 0xe4d4, 0xee63,
+ 0x10de, 0x1a2d, 0x0a41, 0x04c4, 0x1350, 0x2920,
+ 0x28f2, 0x1918, 0x1823, 0x121c, 0x068a, 0x0f08,
+ 0x0857, 0xf544, 0x06db, 0x1bf2, 0x17f6, 0x118b,
+ 0x0118, 0xf341, 0xfbb0, 0x068f, 0x1755, 0x1f51,
+ 0x098f, 0x0830, 0x189d, 0x0c3d, 0x076c, 0x10b3,
+ 0x088a, 0x0665, 0x058c, 0x02f8, 0x15d5, 0x17cb,
+ 0x10d6, 0x2637, 0x1e7f, 0x07f7, 0x1632, 0x0579,
+ 0xecef, 0x1309, 0x198d, 0xf123, 0x02bb, 0x2822,
+ 0x1d53, 0x0787, 0x075f, 0x1745, 0x19fc, 0x0bb7,
+ 0x106c, 0x1991, 0x1c13, 0x3188, 0x3591, 0x22fe,
+ 0x2d2e, 0x3125, 0x16f2, 0x0666, 0xede9, 0xd1b9,
+ 0xdd9c, 0xf0ca, 0xf1c0, 0xf585, 0xf52a, 0xf5ce,
+ 0x0094, 0x0120, 0xfd07, 0x023e, 0x06f0, 0x06d3,
+ 0x0627, 0x0ca5, 0x0ff9, 0x0198, 0xfb72, 0x01f7,
+ 0x05a0, 0x1d6c, 0x2894, 0x0773, 0x0b8f, 0x2b5c,
+ 0x1193, 0x06c9, 0x32ab, 0x3927, 0x27bf, 0x2499,
+ 0x0cd8, 0x072e, 0x23da, 0x20ad, 0x1138, 0x1882,
+ 0x1575, 0x0f6d, 0x0cd7, 0xfd85, 0x0822, 0x2127,
+ 0x0ca9, 0xfc61, 0x1177, 0x030f, 0xea95, 0x09dd,
+ 0x1352, 0xe594, 0xd4a7, 0xd89e, 0xceb1, 0xdedd,
+ 0xef42, 0xe1fa, 0xf46c, 0x19cf, 0x15f9, 0x08b1,
+ 0x018f, 0xed31, 0xe98d, 0xf8da, 0xfd14, 0xfe01,
+ 0x03e4, 0x0e09, 0x1bf2, 0x2477, 0x2d7c, 0x2d39,
+ 0x0f30, 0xf24b, 0xf094, 0xfb51, 0x0793, 0x04db,
+ 0xf6e9, 0xf976, 0x0094, 0x006f, 0x06c4, 0x131e,
+ 0x24f5, 0x25d2, 0x06e8, 0xf8f9, 0xfe62, 0xf6e5,
+ 0x02ca, 0x1281, 0x01d6, 0xfd93, 0xfde8, 0xec81,
+ 0xf902, 0x04f6, 0xf2e2, 0xf982, 0xf90e, 0xe45a,
+ 0x0b36, 0x3551, 0x1533, 0xf4ff, 0xecc4, 0xdfc5,
+ 0xee6f, 0x0192, 0xf10d, 0xea52, 0xfba5, 0xfb25,
+ 0xe6d8, 0xe0c5, 0xf501, 0x020c, 0xff0c, 0x0ee2,
+ 0x1962, 0x047a, 0xfd15, 0xfc25, 0xea14, 0xeef6,
+ 0xf87a, 0xe894, 0xedc1, 0x02a7, 0x0543, 0x08e5,
+ 0x0a5f, 0x066b, 0x0ca8, 0x0abb, 0x0211, 0x0119,
+ 0xfdf8, 0x04c5, 0x0d70, 0xfe46, 0xf113, 0xec9a,
+ 0xe16a, 0xe871, 0xfa35, 0xf296, 0xdef8, 0xd83e,
+ 0xd799, 0xcae6, 0xc054, 0xd487, 0xe80f, 0xde9a,
+ 0xdca9, 0xe5f8, 0xe5b4, 0xea17, 0xebd4, 0xe3e7,
+ 0xea3d, 0xf806, 0x010c, 0x11e9, 0x2060, 0x1a86,
+ 0x0aa7, 0x04da, 0x0cfd, 0x124e, 0x0aa2, 0x0156,
+ 0x012f, 0x031e, 0xf800, 0xeabd, 0xf486, 0x0391,
+ 0xfb84, 0xee84, 0xecb0, 0xe898, 0xe523, 0xecb0,
+ 0xf08f, 0xe842, 0xe201, 0xe331, 0xe7ec, 0xeae0,
+ 0xe45e, 0xe00f, 0xe299, 0xd86b, 0xcd8b, 0xd17a,
+ 0xd581, 0xdfb0, 0xe791, 0xdcc1, 0xe295, 0xef1b,
+ 0xde61, 0xd975, 0xe292, 0xd956, 0xdd45, 0xe86c,
+ 0xe369, 0xe9b2, 0xf047, 0xec69, 0xf2f9, 0xf731,
+ 0xf99c, 0xfb17, 0xec80, 0xe86d, 0xe910, 0xdbbf,
+ 0xe5ca, 0xf175, 0xe2ff, 0xeb66, 0xfa5f, 0xe979,
+ 0xdc7a, 0xe1d7, 0xee88, 0xf041, 0xd3a7, 0xc412,
+ 0xd408, 0xdae6, 0xe3d5, 0xf175, 0xe52f, 0xe1b4,
+ 0xf92e, 0xf671, 0xda81, 0xe106, 0x025b, 0xfe03,
+ 0xdd64, 0xdbf5, 0xe76f, 0xdcfe, 0xde68, 0xf024,
+ 0xe3d3, 0xc9b4, 0xd680, 0xf016, 0xec26, 0xe825,
+ 0xe5d5, 0xcff6, 0xd48a, 0xe6ff, 0xce06, 0xbe59,
+ 0xc7e3, 0xb40a, 0xae5e, 0xc98c, 0xcb30, 0xc271,
+ 0xc408, 0xb9bf, 0xae7d, 0xb204, 0xc263, 0xcd4a,
+ 0xc5df, 0xc427, 0xc45d, 0xbd14, 0xcc3b, 0xe0c8,
+ 0xe531, 0xeb5e, 0xe7c7, 0xe45b, 0xe6bc, 0xccd7,
+ 0xbe95, 0xd2c3, 0xdc59, 0xed91, 0xf698, 0xd8a2,
+ 0xdb07, 0xed71, 0xdaba, 0xe26f, 0xebf1, 0xc99a,
+ 0xcaa5, 0xde16, 0xce81, 0xd267, 0xd8a3, 0xc258,
+ 0xce36, 0xe947, 0xdd6b, 0xd944, 0xe955, 0xdacb,
+ 0xc002, 0xc2e2, 0xcbea, 0xc7a4, 0xc97f, 0xd004,
+ 0xcef5, 0xc891, 0xc000, 0xc157, 0xc7b3, 0xc374,
+ 0xcabe, 0xd654, 0xc0c8, 0xaee9, 0xbedb, 0xc5be,
+ 0xbfd6, 0xc89c, 0xd285, 0xd34d, 0xd87a, 0xe2d5,
+ 0xe343, 0xdc86, 0xe1a9, 0xe6ff, 0xddd8, 0xdbe8,
+ 0xe4e9, 0xe7e8, 0xe82c, 0xe614, 0xdda1, 0xd6bf,
+ 0xd5e6, 0xd72c, 0xd8f5, 0xe729, 0xfd27, 0xfe37,
+ 0xf8e9, 0xfe9a, 0xe98b, 0xc545, 0xc538, 0xd7f2,
+ 0xe2de, 0xe679, 0xd700, 0xc113, 0xc027, 0xd009,
+ 0xddc6, 0xe2b8, 0xee3c, 0xfc56, 0xefac, 0xdb7b,
+ 0xdaa8, 0xd780, 0xd3e0, 0xdbde, 0xda2c, 0xd458,
+ 0xdd99, 0xe48c, 0xd96d, 0xccbd, 0xd0fa, 0xd43b,
+ 0xc66d, 0xc2cc, 0xccbb, 0xcf6e, 0xd7e2, 0xdf15,
+ 0xd648, 0xd8b4, 0xe267, 0xe3da, 0xefde, 0xf2c9,
+ 0xe10f, 0xe0c2, 0xe800, 0xe624, 0xef01, 0xedb8,
+ 0xe2c2, 0xf5e4, 0x070c, 0xfb42, 0xf311, 0xe2af,
+ 0xcb0b, 0xd7f6, 0xe960, 0xded6, 0xdf24, 0xe5b1,
+ 0xe16a, 0xe7b2, 0xe653, 0xd941, 0xe32d, 0xeb18,
+ 0xdb07, 0xd4fc, 0xd94c, 0xd494, 0xd23c, 0xdeef,
+ 0xf06f, 0xeec1, 0xe669, 0xf181, 0xf41c, 0xea74,
+ 0xf17e, 0xeb0a, 0xd8d9, 0xe759, 0xf24f, 0xe536,
+ 0xea50, 0xf061, 0xe17b, 0xde24, 0xeb23, 0xf403,
+ 0xf484, 0xf7d1, 0x07a9, 0x0afb, 0xf35f, 0xea04,
+ 0x0024, 0x10ae, 0x0cf3, 0x0ca2, 0x1445, 0x12d0,
+ 0x119f, 0x1ac4, 0x1e1b, 0x1f48, 0x1c52, 0x037c,
+ 0xf56a, 0xfe2a, 0xf582, 0xf03e, 0x035e, 0x07ae,
+ 0x06a1, 0x143e, 0x1a34, 0x215a, 0x2384, 0x07fd,
+ 0xf9dc, 0x0948, 0x0721, 0xfe13, 0x04b5, 0x0130,
+ 0xfd40, 0x0a1a, 0x0a59, 0x03c3, 0x0fad, 0x105f,
+ 0x0401, 0x13a0, 0x23ab, 0x115f, 0x0607, 0x0c6f,
+ 0x02b1, 0xf8dc, 0x0187, 0x049c, 0xfd5c, 0xfa7b,
+ 0xfb0d, 0xff55, 0x05d6, 0x007a, 0xf666, 0xfe0d,
+ 0x0b5a, 0x0c1b, 0x0d9c, 0x11eb, 0x11fc, 0x1479,
+ 0x0ca4, 0xfba4, 0x02e1, 0x1aab, 0x2ade, 0x358e,
+ 0x2e6d, 0x195b, 0x1184, 0x1294, 0x1803, 0x1e92,
+ 0x1538, 0x1143, 0x1c41, 0x1529, 0x0864, 0x0bb4,
+ 0x0e1c, 0x14d7, 0x20c8, 0x1b6d, 0x0e02, 0x0660,
+ 0x021b, 0x05dd, 0x0a36, 0x04a0, 0xfef7, 0x00ca,
+ 0x0057, 0xf5d0, 0xf249, 0xfabb, 0xf435, 0xefa6,
+ 0x05d6, 0x0713, 0xf0ff, 0xfcb5, 0x0eff, 0x0652,
+ 0x08f3, 0x13b0, 0x0bbb, 0x0064, 0xf2a1, 0xe2ab,
+ 0xebb0, 0x069b, 0x11e2, 0x0f84, 0x1357, 0x149d,
+ 0x0a39, 0x0cbb, 0x1d5d, 0x1e71, 0x18c4, 0x13ef,
+ 0xfefb, 0xf8ee, 0x12fa, 0x1922, 0x0433, 0x00c3,
+ 0x1060, 0x1b68, 0x1e2a, 0x23f0, 0x2b9f, 0x2753,
+ 0x2362, 0x248c, 0x1667, 0x1052, 0x1dab, 0x14c6,
+ 0x013b, 0xfa9b, 0xed21, 0xecc4, 0xfa2f, 0xf54b,
+ 0x0271, 0x18f4, 0x0219, 0xf8e2, 0x1510, 0x1265,
+ 0x0ec2, 0x2290, 0x168b, 0x0656, 0x0c45, 0x0154,
+ 0x01e0, 0x11b0, 0xf7c9, 0xdfc0, 0xf50d, 0x03a6,
+ 0x0b6a, 0x1cfb, 0x0fb1, 0xf910, 0x0426, 0x0a15,
+ 0xf958, 0xf541, 0x0214, 0x0d93, 0x0886, 0xfc6b,
+ 0x0a26, 0x19a4, 0x04a5, 0xf892, 0x0a96, 0x0b1b,
+ 0x0872, 0x2295, 0x2d4b, 0x1b22, 0x1a17, 0x2397,
+ 0x1f7c, 0x2656, 0x2955, 0x02be, 0xe8b6, 0xfc2a,
+ 0xfb42, 0xe960, 0xf181, 0xecab, 0xe070, 0xef97,
+ 0xeddc, 0xe53a, 0xfcba, 0xfff3, 0xf011, 0xfc4e,
+ 0x00c4, 0xfaeb, 0x0d35, 0x164e, 0x0e3f, 0x113d,
+ 0x107c, 0x065f, 0x024d, 0x0678, 0x14ba, 0x2265,
+ 0x24e1, 0x2634, 0x293b, 0x2c0a, 0x2f04, 0x2db3,
+ 0x2d30, 0x2ec3, 0x2a3f, 0x26e3, 0x2e0d, 0x3836,
+ 0x3451, 0x2294, 0x223f, 0x3362, 0x2c45, 0x132e,
+ 0x095a, 0x07a2, 0x07a1, 0x0a95, 0x0427, 0xfef3,
+ 0x088c, 0x10ec, 0x10ea, 0x0dee, 0x08c7, 0x09ba,
+ 0x0c9b, 0x0278, 0xfb30, 0x048f, 0x042f, 0xf2af,
+ 0xeeb0, 0xfb37, 0x01f6, 0x058a, 0x0f3e, 0x147b,
+ 0x11b3, 0x139e, 0x1a99, 0x1f1e, 0x2904, 0x359e,
+ 0x2f63, 0x202a, 0x230f, 0x2da5, 0x30aa, 0x34a9,
+ 0x34c1, 0x269e, 0x1c4f, 0x26b3, 0x30cd, 0x268c,
+ 0x2012, 0x2cba, 0x2fd6, 0x1f1e, 0x0cb1, 0x0297,
+ 0x069e, 0x0983, 0xfede, 0x03db, 0x12a2, 0x0988,
+ 0x0674, 0x16d6, 0x1631, 0x12e7, 0x1bd8, 0x166a,
+ 0x0fad, 0x14d4, 0x0f97, 0x0e7d, 0x21a7, 0x2a05,
+ 0x1b81, 0x0a18, 0x0048, 0x0342, 0x0f7b, 0x1016,
+ 0xfe83, 0xef57, 0xf2c7, 0x05f6, 0x1bda, 0x23ac,
+ 0x1cb0, 0x1654, 0x0fa2, 0x04d0, 0x0495, 0x0d31,
+ 0x1029, 0x0f53, 0x04e6, 0xefde, 0xeb71, 0xf945,
+ 0xfe99, 0xfc85, 0x002c, 0x0c35, 0x1bcc, 0x197b,
+ 0x0789, 0x0412, 0x038d, 0xf5c6, 0xf1dc, 0xf335,
+ 0xf237, 0x087f, 0x1ca8, 0x09d7, 0xf7c1, 0x01db,
+ 0x0c35, 0x0c18, 0x0c9b, 0x11f2, 0x1437, 0x0ca3,
+ 0x0667, 0x0751, 0x0f7a, 0x2208, 0x27f9, 0x16ac,
+ 0x0744, 0xfc40, 0xf283, 0xf06e, 0xeea6, 0xfb5f,
+ 0x10f1, 0x08f8, 0x0455, 0x1f05, 0x25fc, 0x1a87,
+ 0x1ba8, 0x141a, 0x0501, 0xf98d, 0xeb67, 0xeff6,
+ 0x07b8, 0x14f0, 0x12e2, 0x04db, 0xf44c, 0xef12,
+ 0xf2be, 0xfd9f, 0x0491, 0x0039, 0xff77, 0xf9b9,
+ 0xf3c3, 0x0840, 0x1456, 0x0a1b, 0x1760, 0x2687,
+ 0x19c8, 0x116b, 0x0dd8, 0x08a7, 0x126c, 0x1953,
+ 0x132f, 0x0af3, 0xfeaf, 0xfd6c, 0x0d26, 0x1768,
+ 0x1611, 0x0747, 0xf3a2, 0xf70e, 0x057b, 0x064d,
+ 0x03c9, 0xfc48, 0xeff3, 0xf43a, 0xfe20, 0x01d0,
+ 0x10b7, 0x1823, 0x00dc, 0xed0a, 0xf06e, 0xf68e,
+ 0xfdd0, 0x0591, 0x0121, 0xfa20, 0xf8a2, 0xf7e4,
+ 0xfe8d, 0x058c, 0xfcbc, 0xf22f, 0xf31b, 0xf302,
+ 0xeebe, 0xef87, 0xf0ef, 0xeab3, 0xe4ae, 0xe549,
+ 0xe49d, 0xe351, 0xe7c4, 0xecf5, 0xed22, 0xe7ad,
+ 0xeb17, 0x0043, 0x04f9, 0xf316, 0xf3a7, 0xf79a,
+ 0xebaf, 0xef0d, 0xf0fa, 0xe349, 0xe75f, 0xe7bb,
+ 0xdc15, 0xea8c, 0xf395, 0xe7b6, 0xef03, 0xf31d,
+ 0xebbf, 0xfb41, 0x078d, 0x0569, 0x0cc3, 0x07f5,
+ 0xf96f, 0xfd83, 0x0151, 0xfea1, 0x0519, 0x0b26,
+ 0x0e52, 0x0ce2, 0xfad0, 0xeb28, 0xf091, 0xf6e2,
+ 0xf03e, 0xe847, 0xe8a0, 0xf01c, 0xf4b8, 0xee81,
+ 0xe851, 0xed9b, 0xf30c, 0xefea, 0xee76, 0xf132,
+ 0xf03c, 0xecca, 0xef48, 0xfbf6, 0x0874, 0x066b,
+ 0xfb37, 0xf3ae, 0xf2ad, 0xf5a7, 0xf3e0, 0xeb33,
+ 0xe91b, 0xf29a, 0xfe68, 0x037c, 0x005e, 0xfe85,
+ 0xfe54, 0xf4fc, 0xec90, 0xf1d3, 0xfafa, 0x0517,
+ 0x1124, 0x11bb, 0x0873, 0x03f3, 0x0044, 0xf894,
+ 0xf98e, 0x04d5, 0x0537, 0xf649, 0xf2e1, 0x015c,
+ 0x0766, 0x00a7, 0xfd11, 0xfbb2, 0xfa53, 0xfcca,
+ 0xfff5, 0x0134, 0xfb41, 0xf0f4, 0xf4ad, 0xfcfa,
+ 0xf6dd, 0xf446, 0xf73c, 0xedfd, 0xe876, 0xed9b,
+ 0xf1db, 0xfb5c, 0x0055, 0xf985, 0xfa91, 0xfd93,
+ 0xfb53, 0xfdea, 0xf67f, 0xeb3b, 0xf448, 0xfa8b,
+ 0xf1b9, 0xeffb, 0xf6de, 0x01d3, 0x08e1, 0x0341,
+ 0x02b2, 0x07d5, 0x01aa, 0xfc30, 0xfc13, 0xf7a4,
+ 0xf4da, 0xf2bf, 0xef22, 0xf2e5, 0xfb2a, 0x01a4,
+ 0x052e, 0x0149, 0xf7cf, 0xf2e4, 0xf469, 0xeff2,
+ 0xe699, 0xeba9, 0xf838, 0xfb7e, 0xfcfd, 0xfae0,
+ 0xf2b6, 0xf349, 0xf937, 0xfa2b, 0xf340, 0xe4cc,
+ 0xe13c, 0xe8a9, 0xe822, 0xe8f2, 0xed55, 0xecfe,
+ 0xefaf, 0xedbf, 0xeba9, 0xf826, 0xfa03, 0xeda5,
+ 0xe9f5, 0xe3f6, 0xd884, 0xcfd3, 0xc8a5, 0xcc5e,
+ 0xd4fe, 0xdde9, 0xeb2a, 0xe799, 0xe1e2, 0xf32f,
+ 0xfc0a, 0xfbd0, 0x00ee, 0xf904, 0xf87b, 0x01a3,
+ 0xf8df, 0xf60b, 0xf65d, 0xeb7a, 0xf495, 0xfd93,
+ 0xf507, 0xf57d, 0xebc4, 0xe427, 0xf7ba, 0xf213,
+ 0xdb6e, 0xe3a4, 0xeb1a, 0xea44, 0xf2ef, 0xf4fb,
+ 0xf401, 0xef9f, 0xe7a1, 0xee9b, 0xeefa, 0xe259,
+ 0xe602, 0xecd8, 0xecfc, 0xecfa, 0xe01c, 0xd69b,
+ 0xde88, 0xe4d1, 0xebc3, 0xf288, 0xe761, 0xd2ed,
+ 0xca3b, 0xd391, 0xdb19, 0xcfc0, 0xc5e4, 0xc67c,
+ 0xc972, 0xd78b, 0xe27c, 0xdbe0, 0xdbf9, 0xe77f,
+ 0xf358, 0x0359, 0x0b4d, 0x039c, 0xff85, 0x02c0,
+ 0xfbbc, 0xebe0, 0xe6e5, 0xe8cc, 0xe657, 0xee9a,
+ 0xfae7, 0xf332, 0xe6d7, 0xe3f0, 0xe40e, 0xe971,
+ 0xeb33, 0xe3e2, 0xded5, 0xdf9b, 0xe965, 0xee23,
+ 0xe273, 0xe7a7, 0xf97b, 0xf0a7, 0xe44e, 0xe77d,
+ 0xe6ef, 0xeaf3, 0xf5df, 0xfb3a, 0xfecb, 0x0003,
+ 0x0090, 0xfbe5, 0xedd3, 0xf0b9, 0xfe1c, 0xfc2c,
+ 0x0327, 0x0fec, 0x09a2, 0x06a9, 0x04d2, 0xf9cd,
+ 0xfffe, 0x099f, 0x031a, 0xfe6b, 0xfa9f, 0x0030,
+ 0x153d, 0x143e, 0x0364, 0x0483, 0x0331, 0xfae5,
+ 0xffb4, 0x0090, 0xf940, 0xf8f4, 0xf2f7, 0xe75f,
+ 0xe99f, 0xf124, 0xf388, 0xf712, 0xf72f, 0xf6da,
+ 0xfe5d, 0xf8be, 0xe114, 0xd6c4, 0xdd71, 0xe621,
+ 0xf0df, 0xf60e, 0xf749, 0xfe42, 0xfc8b, 0xf6fc,
+ 0x0178, 0x068e, 0xfefc, 0x0698, 0x117f, 0x0b94,
+ 0x0b76, 0x1558, 0x10ef, 0x0449, 0x0267, 0x04c8,
+ 0x0113, 0xf9fa, 0xf812, 0x019c, 0x09c5, 0x01f0,
+ 0xf848, 0xf927, 0xfc7d, 0xfd37, 0xf6d5, 0xf153,
+ 0xfc29, 0x017d, 0xf556, 0xf5b8, 0xfcd0, 0xfa26,
+ 0x03e3, 0x0ec1, 0x06e0, 0x087b, 0x102b, 0x030d,
+ 0xf70a, 0xfa1a, 0xfb3b, 0xf7ee, 0xefbc, 0xe8af,
+ 0xf2b5, 0xffd9, 0x0365, 0x0d6b, 0x15c4, 0x0e49,
+ 0x0dd3, 0x16e7, 0x0c9e, 0xf5da, 0xf0b3, 0xf9b9,
+ 0xf72f, 0xec33, 0xf49d, 0x06ca, 0x068a, 0x059c,
+ 0x0e35, 0x07bf, 0xfcc6, 0xfb01, 0xefa7, 0xe27a,
+ 0xe1bd, 0xe644, 0xf162, 0xf64f, 0xecca, 0xed6d,
+ 0xf44c, 0xf183, 0xf110, 0xecfa, 0xe39d, 0xe4e8,
+ 0xe44d, 0xe36f, 0xf114, 0xf2b9, 0xe24d, 0xde34,
+ 0xe8aa, 0xf7f3, 0x036a, 0xfcd5, 0xed75, 0xe411,
+ 0xdc7a, 0xd819, 0xdfd0, 0xefc4, 0xf870, 0xf796,
+ 0xfb97, 0x027d, 0x02e7, 0x022e, 0x0006, 0xfb18,
+ 0xf5cb, 0xedc8, 0xefb9, 0xfaab, 0xf655, 0xf1a7,
+ 0xfc85, 0xfd9d, 0xf836, 0xfb21, 0xf746, 0xf2aa,
+ 0xf8d7, 0xfc8e, 0xfe15, 0x04f5, 0x0bc5, 0x0891,
+ 0xf704, 0xe8de, 0xe8b5, 0xe5d7, 0xdfb2, 0xe14b,
+ 0xea91, 0xf715, 0xf604, 0xec5c, 0xf3cf, 0xf9f5,
+ 0xf1c9, 0xf5a1, 0xfd94, 0xfa02, 0xf575, 0xedf6,
+ 0xec78, 0xf855, 0xfd4b, 0xfedd, 0x01c7, 0xfb87,
+ 0xfca0, 0x0018, 0xf6f5, 0xfb73, 0x01b3, 0xedcc,
+ 0xdee8, 0xdf3b, 0xe111, 0xed11, 0xf2ba, 0xec6c,
+ 0xf0ea, 0xf34e, 0xef1d, 0xf3d8, 0xf38b, 0xf20e,
+ 0xfd12, 0x015e, 0xfda0, 0xfe4a, 0xff74, 0x0456,
+ 0x08f6, 0x0725, 0x0b17, 0x10d6, 0x0d91, 0x09a9,
+ 0x0617, 0xfd5b, 0xf257, 0xe968, 0xe49d, 0xe093,
+ 0xe127, 0xead0, 0xee3c, 0xebd3, 0xf2ab, 0xf3c9,
+ 0xe84f, 0xe560, 0xea0c, 0xe8a5, 0xe513, 0xe5a6,
+ 0xe586, 0xe06e, 0xe5ba, 0xfa13, 0xfda7, 0xe9e2,
+ 0xdc61, 0xdb4d, 0xe3f2, 0xf6a4, 0x0198, 0x012c,
+ 0xffc6, 0xf8da, 0xef38, 0xeb3d, 0xebce, 0xf1d6,
+ 0xf3f0, 0xeafc, 0xe72c, 0xe7c7, 0xe127, 0xe4a6,
+ 0xf42e, 0xf6f8, 0xf352, 0xf982, 0x0095, 0x0434,
+ 0x026a, 0xf740, 0xf36d, 0xfa6d, 0xfc83, 0x046a,
+ 0x10bc, 0x0795, 0xfa02, 0xf91e, 0xeb73, 0xdb0e,
+ 0xe508, 0xf461, 0xf553, 0xf0ce, 0xe8a0, 0xe309,
+ 0xea45, 0xf3ea, 0xf41a, 0xeed0, 0xeae9, 0xed57,
+ 0xf3ae, 0xf129, 0xebe8, 0xf808, 0x0300, 0xf806,
+ 0xf340, 0xf9a3, 0xf3fd, 0xf425, 0xfcd1, 0xf8d3,
+ 0xfe66, 0x0e93, 0x0928, 0xfc6a, 0xf70e, 0xf12e,
+ 0xf633, 0x00ac, 0x00c8, 0xfb38, 0xf05d, 0xed95,
+ 0xfcd2, 0x01e9, 0xf98e, 0xf919, 0xfadc, 0xff02,
+ 0x0866, 0x0c11, 0x1070, 0x13f2, 0x0af2, 0x05dd,
+ 0x0adc, 0x0c65, 0x0f22, 0x1377, 0x0eb8, 0x03a0,
+ 0xf901, 0xf2dc, 0xf16e, 0xf213, 0xf80b, 0xfdad,
+ 0xf94c, 0xf628, 0xf9d8, 0xf8e8, 0xf82e, 0xfd5d,
+ 0xff2c, 0x0249, 0x083b, 0x02e6, 0xff37, 0x07d4,
+ 0x02ac, 0xf7a4, 0x05a1, 0x1503, 0x12d1, 0x13c0,
+ 0x11e0, 0x0566, 0xffc1, 0xfe20, 0xfd84, 0x0524,
+ 0x0473, 0xf7e9, 0xf5e1, 0xfccb, 0xfcae, 0xf783,
+ 0xf8b5, 0x039a, 0x0e57, 0x121a, 0x1292, 0x11c4,
+ 0x11c7, 0x11d0, 0x0c55, 0x081d, 0x0b48, 0x0b2b,
+ 0x072e, 0x08b6, 0x07cf, 0x0192, 0x0689, 0x10a0,
+ 0x0d84, 0x0be4, 0x0fb7, 0x0226, 0xf32b, 0xf614,
+ 0xf4b8, 0xf2a6, 0xfc4e, 0xf9aa, 0xef53, 0xf086,
+ 0xed66, 0xe9e1, 0xf42a, 0xfacb, 0xfb91, 0x009d,
+ 0x009b, 0xfcda, 0xfffa, 0x070f, 0x0aec, 0x07b8,
+ 0x035a, 0x0463, 0x01e8, 0xf974, 0xf9a4, 0x0406,
+ 0x0807, 0x0333, 0x0402, 0x053c, 0xf8a7, 0xeebc,
+ 0xf467, 0xfa0c, 0xfef3, 0x077c, 0x05f1, 0x0117,
+ 0x0646, 0x05b1, 0xfd72, 0xfefa, 0xffb3, 0xf5b4,
+ 0xf199, 0xf20b, 0xecfd, 0xedad, 0xf19c, 0xefb1,
+ 0xf515, 0xfe5f, 0xfcbb, 0xf7f1, 0xef97, 0xe0fc,
+ 0xdcc9, 0xe0fb, 0xdfdd, 0xded2, 0xe413, 0xecfd,
+ 0xf052, 0xeb1c, 0xe963, 0xeb6e, 0xf009, 0xfc1c,
+ 0xfd8a, 0xf4aa, 0xf850, 0xfb4a, 0xfa63, 0x035b,
+ 0x01e1, 0xfc78, 0x07fe, 0x0846, 0xfdf8, 0x0416,
+ 0x0818, 0x0260, 0xffab, 0xf786, 0xee56, 0xee49,
+ 0xf081, 0xf4ad, 0xfa9b, 0xfde5, 0x013f, 0x0519,
+ 0x06c6, 0x06a4, 0x0969, 0x0ba7, 0x0110, 0xf6df,
+ 0xfbe3, 0xfe7f, 0x0164, 0x0fcf, 0x11e1, 0x08d5,
+ 0x0bf1, 0x11e9, 0x15b7, 0x1b17, 0x15dd, 0x0900,
+ 0x025b, 0x04a3, 0x0d7f, 0x11b8, 0x0c2f, 0x0b70,
+ 0x14ec, 0x1808, 0x0e17, 0x0b80, 0x14ed, 0x1509,
+ 0x1369, 0x1be3, 0x195d, 0x1012, 0x0fd6, 0x07d7,
+ 0xfdbc, 0x04bf, 0x0c98, 0x0b2a, 0x078e, 0x005e,
+ 0xfa62, 0xfcd9, 0x0317, 0x0650, 0x06b6, 0x0518,
+ 0xfd41, 0xf94f, 0x037c, 0x06bd, 0xfdf5, 0xfd3d,
+ 0xfe34, 0xfd52, 0x0308, 0x0601, 0x094a, 0x0c78,
+ 0x0345, 0x017a, 0x095c, 0x06ef, 0x0d27, 0x1afe,
+ 0x1860, 0x15ae, 0x16e7, 0x11a7, 0x13ae, 0x1837,
+ 0x18fb, 0x1b48, 0x0ee8, 0xfc6e, 0xfcf0, 0x01b5,
+ 0x00f6, 0x0429, 0x0a92, 0x12f7, 0x1266, 0x0693,
+ 0x0555, 0x0952, 0x02e3, 0x00fa, 0x0789, 0x0a6a,
+ 0x09ad, 0x069c, 0x030e, 0x045f, 0x0ae9, 0x1000,
+ 0x0e1a, 0x103e, 0x176e, 0x0d35, 0xfcc4, 0xfee5,
+ 0x00ad, 0xfbc0, 0x01ec, 0x06af, 0x0501, 0x0b4b,
+ 0x0f4c, 0x0bd2, 0x0c2b, 0x0c01, 0x08aa, 0x0712,
+ 0x077e, 0x0d7b, 0x11f8, 0x0ba2, 0x0843, 0x0bb3,
+ 0x09b3, 0x0ae8, 0x14f6, 0x182e, 0x12c0, 0x1187,
+ 0x1690, 0x1606, 0x08a5, 0xfc03, 0xf7c5, 0xf093,
+ 0xeb44, 0xefb8, 0xf43c, 0xfaa8, 0xfeb1, 0xf17b,
+ 0xe92d, 0xf50a, 0xf99e, 0xf550, 0xf869, 0xf770,
+ 0xf19c, 0xf2ec, 0xf59b, 0xf3e5, 0xf109, 0xf3f8,
+ 0xfc73, 0xfc29, 0xf884, 0x0145, 0x069f, 0xfed0,
+ 0xf92c, 0xf7ab, 0xf7bf, 0xf8d2, 0xf53b, 0xf65b,
+ 0x0000, 0x04f5, 0x0761, 0x0a7f, 0x0c21, 0x1318,
+ 0x137d, 0x05f9, 0x03ac, 0x0ab4, 0x0562, 0xfebc,
+ 0xff0d, 0x001e, 0x0546, 0x0a74, 0x0d46, 0x14ef,
+ 0x19a4, 0x1449, 0x0ced, 0x0a00, 0x0b76, 0x0894,
+ 0xfd9e, 0xf5f7, 0xf670, 0xfd57, 0x045d, 0xff35,
+ 0xfa4a, 0x010e, 0xfe1b, 0xf359, 0xf257, 0xef7d,
+ 0xece7, 0xf201, 0xef06, 0xee32, 0xfbfb, 0x01fa,
+ 0xfffd, 0x04bc, 0x056a, 0xff8b, 0xfc70, 0xf94e,
+ 0xf4b9, 0xf41c, 0xf90a, 0xfc02, 0xf89e, 0xf883,
+ 0xfc13, 0xfb63, 0xfec3, 0x0804, 0x0b45, 0x09d4,
+ 0x08dd, 0x07aa, 0x0661, 0x0427, 0x0399, 0x038a,
+ 0xfe84, 0xfceb, 0x0222, 0x03b0, 0x04b6, 0x08ee,
+ 0x0987, 0x0945, 0x08a3, 0x0259, 0xfc3f, 0xf8b0,
+ 0xf433, 0xf1f3, 0xee8d, 0xe578, 0xe07e, 0xe314,
+ 0xe350, 0xe21f, 0xe6d4, 0xebaa, 0xebd3, 0xecef,
+ 0xeda2, 0xeaef, 0xeb3d, 0xed56, 0xebca, 0xeb90,
+ 0xed4c, 0xed4c, 0xef66, 0xf21f, 0xf002, 0xebf7,
+ 0xe89b, 0xe87d, 0xeec1, 0xf18e, 0xe978, 0xe359,
+ 0xe7d8, 0xef66, 0xf4a1, 0xf628, 0xf4b0, 0xf6e5,
+ 0xfcf0, 0xffd9, 0x00e3, 0x0247, 0x007e, 0xfcb9,
+ 0xf911, 0xf450, 0xf209, 0xf511, 0xf7b1, 0xf5e6,
+ 0xf513, 0xf93b, 0xfd2a, 0xfe51, 0x00ed, 0x0357,
+ 0x011e, 0xfc60, 0xf77d, 0xf06e, 0xe4f3, 0xdade,
+ 0xdaef, 0xdfbb, 0xe36c, 0xea46, 0xec85, 0xe7b9,
+ 0xeca3, 0xf5ae, 0xf4b7, 0xf5a0, 0xf943, 0xf5b5,
+ 0xf755, 0x012b, 0x0418, 0x0011, 0xfae0, 0xf510,
+ 0xf294, 0xf2db, 0xf385, 0xf859, 0xfcdf, 0xf7f0,
+ 0xf119, 0xf264, 0xf5fe, 0xfaa9, 0x05a9, 0x0d2f,
+ 0x0a6e, 0x0763, 0x0781, 0x072c, 0x05de, 0x0303,
+ 0x024c, 0x02e5, 0xfe92, 0xfe5c, 0x0793, 0x0bc3,
+ 0x098b, 0x0a57, 0x0881, 0x037b, 0x06fd, 0x0e03,
+ 0x0b85, 0x0745, 0x096c, 0x08e5, 0x0754, 0x0a47,
+ 0x05df, 0xfd4e, 0xfe5c, 0xff92, 0xfdae, 0xff40,
+ 0xfc05, 0xf91d, 0xff00, 0xfe9a, 0xf852, 0xf9f5,
+ 0xfee1, 0x03b1, 0x074e, 0x0470, 0x002c, 0xfcc4,
+ 0xf9af, 0xfd07, 0x00ee, 0x0095, 0x0397, 0x0370,
+ 0xf992, 0xf38e, 0xf74c, 0xfbf1, 0xff39, 0x0688,
+ 0x0f48, 0x0e9c, 0x084c, 0x09e2, 0x0e6c, 0x0e63,
+ 0x0fff, 0x10ec, 0x0b1d, 0x04d5, 0x01ce, 0x011c,
+ 0x04b7, 0x08b9, 0x0737, 0x030f, 0x0280, 0x077d,
+ 0x0ba5, 0x06e8, 0xfff8, 0x0142, 0x0289, 0xfa58,
+ 0xf080, 0xec50, 0xed26, 0xf274, 0xf883, 0xfc7a,
+ 0x00bf, 0x037c, 0x0197, 0xfeb4, 0xfd74, 0xfb32,
+ 0xf6d7, 0xf4c0, 0xf7ea, 0xfb2a, 0xfa96, 0xf95e,
+ 0xf88b, 0xf997, 0x0207, 0x0d78, 0x0f6f, 0x0876,
+ 0x03f0, 0x0307, 0xff98, 0xfd40, 0xffa9, 0xffbe,
+ 0xfd92, 0xffd9, 0x00b6, 0xfce4, 0x0024, 0x0993,
+ 0x0999, 0x0396, 0x036e, 0x0006, 0xf5d5, 0xf5ad,
+ 0xfd96, 0xfe3e, 0xfc68, 0xfc71, 0xf968, 0xf8d1,
+ 0xfd57, 0x0088, 0x01dd, 0x0265, 0x017e, 0x000f,
+ 0xff90, 0xfffc, 0xfabe, 0xf174, 0xf28f, 0xfa22,
+ 0xfc48, 0xfe70, 0xff38, 0xfa61, 0xf8be, 0xf86d,
+ 0xf73a, 0xfd6f, 0x0367, 0x01a2, 0x000c, 0xffbb,
+ 0x004f, 0x041f, 0x07b9, 0x0b1c, 0x0bd4, 0x05f2,
+ 0x007b, 0xfc86, 0xf616, 0xf1c1, 0xef50, 0xeed0,
+ 0xf2b4, 0xf283, 0xef04, 0xeff4, 0xed8b, 0xe880,
+ 0xea5c, 0xed6b, 0xef04, 0xf0ee, 0xee67, 0xec2f,
+ 0xee9a, 0xf153, 0xf69c, 0xfbcf, 0xfbcc, 0xfd9e,
+ 0x002b, 0xfee7, 0x023d, 0x094d, 0x0d32, 0x1081,
+ 0x10f4, 0x0fe5, 0x16ec, 0x1f51, 0x1e46, 0x1a18,
+ 0x193d, 0x1a09, 0x1c67, 0x207c, 0x216c, 0x1c5a,
+ 0x172f, 0x1439, 0x105b, 0x1028, 0x1278, 0x0e05,
+ 0x0815, 0x088a, 0x0cc5, 0x125f, 0x14d7, 0x1454,
+ 0x13c6, 0x0a73, 0xfe45, 0xfdc4, 0xfb4e, 0xf216,
+ 0xf0df, 0xef46, 0xe952, 0xec9e, 0xf3f0, 0xf9d2,
+ 0x0325, 0x0a41, 0x0c53, 0x0c16, 0x08d7, 0x040a,
+ 0xfe4f, 0xfc7b, 0x0118, 0x01f0, 0x01e7, 0x0732,
+ 0x061b, 0x037a, 0x0949, 0x0b24, 0x0b7b, 0x12f7,
+ 0x157e, 0x126e, 0x10c0, 0x0e24, 0x0ff9, 0x139d,
+ 0x0eca, 0x0a70, 0x0a19, 0x0539, 0x050b, 0x0e3f,
+ 0x1091, 0x0b3e, 0x0b60, 0x0cbf, 0x09b9, 0x09be,
+ 0x0b5e, 0x09d7, 0x0aee, 0x0bc9, 0x06dc, 0x03dd,
+ 0x0426, 0x04bc, 0x08fa, 0x0992, 0x01bc, 0xfda8,
+ 0xfe90, 0xfab6, 0xf524, 0xf48d, 0xf7d3, 0xfe9b,
+ 0x0942, 0x1095, 0x10cc, 0x11a4, 0x1320, 0x10ca,
+ 0x112f, 0x1350, 0x1123, 0x0ddd, 0x0755, 0x0139,
+ 0x03e2, 0x033b, 0xffab, 0x0744, 0x0c1d, 0x081b,
+ 0x0836, 0x0567, 0xfe82, 0xfeb7, 0x01bf, 0x040a,
+ 0x0309, 0xfb78, 0xf665, 0xf474, 0xf366, 0xf8c6,
+ 0xf9d6, 0xf225, 0xeecc, 0xeca9, 0xe978, 0xed94,
+ 0xf48a, 0xf9e4, 0xfd32, 0xfc3d, 0xfaf7, 0xf9b5,
+ 0xf9ae, 0xffc2, 0x0356, 0xffbc, 0xfa36, 0xf1eb,
+ 0xed15, 0xefa0, 0xf100, 0xf3a0, 0xf8ed, 0xf990,
+ 0xf8da, 0xf892, 0xf81c, 0xfb67, 0xfc5b, 0xf999,
+ 0xfa4a, 0xf98a, 0xf693, 0xf7fd, 0xf988, 0xf760,
+ 0xf4d0, 0xf6bf, 0xfe89, 0x04d0, 0x0790, 0x0a07,
+ 0x0972, 0x09a0, 0x0c74, 0x0a22, 0x072b, 0x0779,
+ 0x0416, 0x017e, 0x02a8, 0x002c, 0xfc9b, 0xfc83,
+ 0xfdfd, 0xffa7, 0xfe36, 0xfa6e, 0xf9c2, 0xfc01,
+ 0xfead, 0xff45, 0xfcd9, 0xfbcd, 0xfba7, 0xf81a,
+ 0xf552, 0xf6ee, 0xf952, 0xfbb5, 0xfe2d, 0xfcb3,
+ 0xf955, 0xf9b1, 0xf8b5, 0xf291, 0xedba, 0xea7e,
+ 0xe92f, 0xeff4, 0xf80a, 0xfb0c, 0xfe41, 0xfe17,
+ 0xf8b4, 0xf519, 0xf0d5, 0xed1b, 0xf0e4, 0xf6c7,
+ 0xf8fe, 0xf69b, 0xf12d, 0xf150, 0xf5a4, 0xf714,
+ 0xfae7, 0x0077, 0x0177, 0x0247, 0x050a, 0x06c7,
+ 0x0631, 0x01ee, 0xfbb8, 0xf458, 0xedb0, 0xeda0,
+ 0xf0a9, 0xf2d5, 0xf703, 0xf668, 0xee88, 0xea6a,
+ 0xeb5d, 0xec9d, 0xeebf, 0xf231, 0xf65f, 0xf7bc,
+ 0xf59d, 0xf29f, 0xeabc, 0xe339, 0xe60e, 0xe8ba,
+ 0xe67f, 0xe8d7, 0xea3d, 0xe74e, 0xe60e, 0xe101,
+ 0xd98e, 0xda93, 0xe107, 0xe740, 0xec55, 0xec6d,
+ 0xe86f, 0xe5ac, 0xe665, 0xe97e, 0xeb1a, 0xeabd,
+ 0xeb2a, 0xebb2, 0xedcf, 0xf45a, 0xf98d, 0xf7af,
+ 0xf35a, 0xf064, 0xec17, 0xe826, 0xe986, 0xed38,
+ 0xed5b, 0xea58, 0xe873, 0xeaa7, 0xee89, 0xf00b,
+ 0xf124, 0xf40c, 0xf52a, 0xf17b, 0xeb8f, 0xe8a7,
+ 0xe976, 0xeb3e, 0xef3d, 0xf554, 0xf94c, 0xfa79,
+ 0xfa02, 0xf919, 0xf880, 0xf5bd, 0xf24e, 0xf159,
+ 0xf1e0, 0xf5bf, 0xf8e0, 0xf486, 0xf321, 0xf87f,
+ 0xf840, 0xf4a4, 0xf258, 0xedc4, 0xee4f, 0xf44a,
+ 0xf4d0, 0xf2da, 0xf312, 0xf418, 0xf7bc, 0xfc08,
+ 0x005a, 0x050b, 0x0339, 0xfe81, 0x00b5, 0x05c9,
+ 0x09fb, 0x0e15, 0x0e56, 0x0bb5, 0x0989, 0x0838,
+ 0x099e, 0x0a04, 0x0551, 0x0224, 0x02cf, 0x01a2,
+ 0x016c, 0x068b, 0x0a5a, 0x0902, 0x0a28, 0x0ff1,
+ 0x1214, 0x109a, 0x1238, 0x113e, 0x084a, 0x03d0,
+ 0x099d, 0x0bcd, 0x0760, 0x069d, 0x0660, 0x01d1,
+ 0x00b8, 0x0419, 0x0520, 0x0374, 0x0109, 0xfe75,
+ 0xfc53, 0xfb70, 0xfd64, 0x0011, 0x005a, 0xfdfe,
+ 0xf7d5, 0xf356, 0xf733, 0xfb28, 0xfb1b, 0xfed0,
+ 0x0336, 0x03aa, 0x0463, 0x04ab, 0x0338, 0x0187,
+ 0xff16, 0xff0e, 0x0208, 0x036d, 0x02cf, 0xff63,
+ 0xf974, 0xf690, 0xf73d, 0xf947, 0xfc16, 0xfd55,
+ 0xfef0, 0x025a, 0x0289, 0xffad, 0xfd35, 0xf9b2,
+ 0xf562, 0xf384, 0xf547, 0xf7c9, 0xf860, 0xfa4d,
+ 0xfe1e, 0xff51, 0xffa9, 0x01f1, 0x03a6, 0x039d,
+ 0x02b0, 0x025e, 0x0223, 0xff5c, 0xfbfa, 0xf8d6,
+ 0xf5d8, 0xf9b3, 0x01ab, 0x0334, 0x013b, 0xfe17,
+ 0xf5ce, 0xefc2, 0xf26b, 0xf7b2, 0xf976, 0xf941,
+ 0xfd92, 0x03e7, 0x03d4, 0x0363, 0x0806, 0x0a4d,
+ 0x09bb, 0x06fb, 0xff12, 0xfad2, 0xfe43, 0x005e,
+ 0x0045, 0xff84, 0xfb08, 0xf679, 0xf5fb, 0xf84e,
+ 0xfbc2, 0xfd2d, 0xfc1f, 0xfbde, 0xfb57, 0xf8ae,
+ 0xf640, 0xf69c, 0xfa96, 0xffa2, 0x01ec, 0x0175,
+ 0xfe11, 0xf864, 0xf738, 0xfbcf, 0xfe5b, 0xfe58,
+ 0xffb5, 0x004f, 0x0061, 0x0299, 0x04af, 0x04c5,
+ 0x0306, 0xffc2, 0xfc7a, 0xf86f, 0xf33c, 0xeedd,
+ 0xeb40, 0xe95b, 0xe7bc, 0xe2e6, 0xe2be, 0xea34,
+ 0xec69, 0xe9b1, 0xea93, 0xeb71, 0xec12, 0xeccd,
+ 0xe995, 0xe944, 0xed0d, 0xec8d, 0xed58, 0xf333,
+ 0xf65f, 0xf7b0, 0xfaa9, 0xfd71, 0xffa3, 0x0165,
+ 0x03a3, 0x0578, 0x04d5, 0x0451, 0x03b9, 0x03a0,
+ 0x0908, 0x0e34, 0x0f6f, 0x14a2, 0x1a54, 0x1b75,
+ 0x1d1c, 0x1b32, 0x1332, 0x0eb3, 0x1040, 0x12d6,
+ 0x11bc, 0x0d25, 0x0b22, 0x07e2, 0xfef2, 0xfac4,
+ 0xfc5c, 0xfbad, 0xfd90, 0x0259, 0x0221, 0x00f2,
+ 0x033a, 0x0298, 0xfdab, 0xfa26, 0xf5b2, 0xebc4,
+ 0xe522, 0xe841, 0xed54, 0xf1ef, 0xf7a5, 0xf9b2,
+ 0xf994, 0xfa37, 0xf9c4, 0xfbd0, 0x0015, 0x01e8,
+ 0x036d, 0x03e3, 0x022d, 0x015a, 0xff90, 0x0041,
+ 0x0691, 0x08bc, 0x07ed, 0x0a54, 0x07a0, 0x0265,
+ 0x031f, 0x024f, 0x0017, 0x044c, 0x0a45, 0x0edc,
+ 0x146f, 0x1891, 0x1939, 0x17f2, 0x16ee, 0x14fa,
+ 0x106d, 0x0f10, 0x129b, 0x12e9, 0x0e52, 0x0911,
+ 0x055a, 0x049e, 0x0317, 0xff27, 0xff1d, 0x0151,
+ 0xffe7, 0xfe4f, 0xfda3, 0xfadd, 0xf922, 0xfa90,
+ 0xfdaf, 0x0321, 0x083d, 0x0969, 0x0a14, 0x0b8c,
+ 0x0a64, 0x0873, 0x065b, 0x0267, 0x0347, 0x09dd,
+ 0x0c26, 0x0b5e, 0x0c0c, 0x0a38, 0x09f4, 0x0e07,
+ 0x0c96, 0x06a3, 0x0608, 0x0881, 0x096b, 0x0a0b,
+ 0x0922, 0x04f5, 0x0118, 0x00b6, 0x012f, 0x0153,
+ 0x0377, 0x05e4, 0x0734, 0x080d, 0x0617, 0x0393,
+ 0x02ee, 0x00a3, 0x0141, 0x0745, 0x0968, 0x099b,
+ 0x0ce5, 0x0c61, 0x0944, 0x07ad, 0x0365, 0xfe46,
+ 0xfa93, 0xf6dc, 0xf5fd, 0xf5e0, 0xf428, 0xf4bf,
+ 0xf5d1, 0xf653, 0xf816, 0xf6d8, 0xf511, 0xf791,
+ 0xf954, 0xfc35, 0x043b, 0x090a, 0x07e4, 0x078a,
+ 0x08a5, 0x07d6, 0x042e, 0x000f, 0xfe28, 0xfd57,
+ 0xfdaf, 0x012a, 0x0529, 0x0745, 0x0a87, 0x105e,
+ 0x1521, 0x16ef, 0x174e, 0x153c, 0x108f, 0x0cf1,
+ 0x0a15, 0x06ec, 0x06b1, 0x082c, 0x0844, 0x0893,
+ 0x0897, 0x070f, 0x069e, 0x0805, 0x092b, 0x093f,
+ 0x099b, 0x0984, 0x0415, 0xfae0, 0xf680, 0xf714,
+ 0xf729, 0xf77d, 0xf9d3, 0xfbbb, 0xfb52, 0xfa86,
+ 0xfa6b, 0xf9d9, 0xfb72, 0xff50, 0xff8d, 0xfefa,
+ 0x02e7, 0x0591, 0x047b, 0x0486, 0x068c, 0x085c,
+ 0x080a, 0x07f7, 0x0a8b, 0x0a6a, 0x0861, 0x0964,
+ 0x06e4, 0x0062, 0xfda5, 0xfc18, 0xfa3c, 0xfa3a,
+ 0xfa39, 0xfd82, 0x03da, 0x0721, 0x0a02, 0x0c9e,
+ 0x0a34, 0x05e9, 0x028a, 0x00d3, 0x005d, 0xfc8c,
+ 0xf8fc, 0xf9a0, 0xf7e3, 0xf556, 0xf5a2, 0xf35c,
+ 0xf217, 0xf607, 0xf6b6, 0xf210, 0xee96, 0xed4e,
+ 0xeb64, 0xe8a2, 0xe728, 0xe55c, 0xe277, 0xe493,
+ 0xeb30, 0xef2d, 0xf030, 0xef38, 0xedc3, 0xeefb,
+ 0xeed2, 0xeb7d, 0xe9e8, 0xe941, 0xe841, 0xe809,
+ 0xe6fa, 0xe7b6, 0xec5f, 0xf07f, 0xf45d, 0xfb72,
+ 0x024b, 0x027d, 0xfc49, 0xf77a, 0xf5f2, 0xf2c0,
+ 0xf0be, 0xf32d, 0xf68f, 0xfa61, 0xfc22, 0xf8ee,
+ 0xf6b3, 0xf65e, 0xf47c, 0xf5bf, 0xf919, 0xf7b7,
+ 0xf59c, 0xf8ff, 0x0048, 0x06b6, 0x08c1, 0x07fa,
+ 0x0629, 0x01ce, 0xfdfc, 0xfe16, 0xfecc, 0xfe63,
+ 0xfdef, 0xfb93, 0xf702, 0xf43e, 0xf532, 0xf76b,
+ 0xfa9c, 0x00fd, 0x07c5, 0x0a3d, 0x07d2, 0x01dd,
+ 0xfd00, 0xfc34, 0xfa4b, 0xf721, 0xf85c, 0xfa2b,
+ 0xf97a, 0xfaa1, 0xfc3e, 0xfd97, 0x0316, 0x09b3,
+ 0x0c46, 0x0bad, 0x097d, 0x07ed, 0x07ce, 0x065e,
+ 0x047c, 0x062a, 0x0be6, 0x120b, 0x1525, 0x16d3,
+ 0x1935, 0x1ae4, 0x1c5e, 0x1d18, 0x1ab0, 0x1788,
+ 0x13e7, 0x0da1, 0x0901, 0x08d0, 0x0bb0, 0x10ca,
+ 0x1322, 0x1171, 0x11d6, 0x1452, 0x1612, 0x1691,
+ 0x1328, 0x0da6, 0x091e, 0x037c, 0xff74, 0x0056,
+ 0x01de, 0x01b8, 0x01be, 0x035a, 0x05f7, 0x0688,
+ 0x05c3, 0x058e, 0x0379, 0x0062, 0xfdd9, 0xfa33,
+ 0xf887, 0xf8d2, 0xf500, 0xefd0, 0xefd4, 0xf465,
+ 0xfa36, 0xfefb, 0x03ac, 0x08db, 0x0a16, 0x06ed,
+ 0x0300, 0xfefd, 0xfd22, 0xfe07, 0xfdd6, 0xfd98,
+ 0xff69, 0x00e0, 0x0146, 0x004f, 0xfe0a, 0xfdb6,
+ 0xfe39, 0xfb4a, 0xf680, 0xf309, 0xf239, 0xf4e9,
+ 0xf6bc, 0xf435, 0xf32a, 0xf5b4, 0xf72a, 0xfaa6,
+ 0x0167, 0x02e8, 0x0009, 0xff35, 0xfd42, 0xfa6d,
+ 0xfac2, 0xfabc, 0xfa44, 0xfc95, 0xfd6f, 0xfba8,
+ 0xfc7c, 0xff39, 0xff71, 0xfe00, 0xfe80, 0x006e,
+ 0x0125, 0x00fd, 0xffec, 0xfc65, 0xf79b, 0xf3ac,
+ 0xf1ac, 0xf1c3, 0xf33c, 0xf656, 0xf8ec, 0xf7f7,
+ 0xf62b, 0xf4ae, 0xf1df, 0xf096, 0xf042, 0xedc5,
+ 0xec31, 0xed15, 0xf01b, 0xf5b2, 0xf952, 0xf9ba,
+ 0xfaed, 0xfc13, 0xfcbd, 0xfd87, 0xfbb4, 0xf8e1,
+ 0xf8e0, 0xfc0e, 0x013d, 0x046a, 0x0476, 0x0510,
+ 0x05d1, 0x0574, 0x0489, 0x0321, 0x0368, 0x03b4,
+ 0x0189, 0x0132, 0x005e, 0xfae5, 0xf847, 0xf9b3,
+ 0xf950, 0xf9a3, 0xfa35, 0xf66e, 0xf03d, 0xeaff,
+ 0xe8f6, 0xe862, 0xe506, 0xe369, 0xe5e7, 0xe5dc,
+ 0xe4c9, 0xe66f, 0xe702, 0xe816, 0xecb2, 0xf055,
+ 0xf1f4, 0xf506, 0xf822, 0xf89d, 0xf964, 0xfcfd,
+ 0xfeea, 0xfd63, 0xfde1, 0x00fc, 0x03a7, 0x06c6,
+ 0x0a0c, 0x0ce7, 0x10c7, 0x1425, 0x1588, 0x1530,
+ 0x1382, 0x13c3, 0x15c6, 0x14ad, 0x1156, 0x0e58,
+ 0x0b42, 0x09d9, 0x0a3e, 0x09e4, 0x08ca, 0x07f2,
+ 0x0921, 0x0c1a, 0x0cb3, 0x0ab1, 0x075f, 0x0146,
+ 0xfb38, 0xf82a, 0xf7c3, 0xfae2, 0xfdd7, 0xfd5c,
+ 0xfe11, 0xffc7, 0xff17, 0xfdbb, 0xfa8b, 0xf649,
+ 0xf619, 0xf810, 0xf9c7, 0xfc12, 0xfca4, 0xfd1d,
+ 0x00a9, 0x0571, 0x0ae1, 0x0ef9, 0x0f19, 0x0e8d,
+ 0x0d4b, 0x0836, 0x0269, 0xff0d, 0xfd50, 0xfb43,
+ 0xf89e, 0xf873, 0xfb2b, 0x0000, 0x074b, 0x0bf2,
+ 0x0dd9, 0x12cc, 0x1513, 0x116a, 0x0eba, 0x0ad5,
+ 0x04cb, 0x0352, 0x038b, 0x01ff, 0x0208, 0x0403,
+ 0x07f8, 0x0c55, 0x0d7c, 0x0d13, 0x0c67, 0x0b9b,
+ 0x0cc5, 0x0e9b, 0x1161, 0x15bf, 0x15db, 0x1128,
+ 0x0d20, 0x0a80, 0x0981, 0x09f2, 0x09a8, 0x0973,
+ 0x09ac, 0x0959, 0x08d5, 0x07ee, 0x07a8, 0x0808,
+ 0x0758, 0x0751, 0x084d, 0x08e6, 0x0a2a, 0x098e,
+ 0x05ba, 0x035b, 0x02a7, 0x01e9, 0x01cd, 0x0067,
+ 0xfebd, 0xff1f, 0xfe01, 0xfaf6, 0xfa99, 0xfd3b,
+ 0xff17, 0xfe64, 0xfe6b, 0x01d2, 0x0673, 0x0ae8,
+ 0x0d6d, 0x0b8f, 0x0777, 0x0251, 0xfcce, 0xfb10,
+ 0xfad4, 0xf873, 0xf8aa, 0xfc32, 0xfee0, 0x012e,
+ 0x02b1, 0x02ad, 0x0480, 0x0868, 0x0b57, 0x0cfc,
+ 0x0d44, 0x0a0f, 0x046a, 0x0189, 0x0220, 0x024a,
+ 0x020d, 0x0190, 0xfe4e, 0xfa8a, 0xf8e1, 0xf6a8,
+ 0xf458, 0xf5cf, 0xfaa6, 0x00f2, 0x07f3, 0x0cb9,
+ 0x0d4e, 0x0b7a, 0x077f, 0x0211, 0xffc8, 0x00cd,
+ 0x0111, 0xffff, 0xfd2d, 0xf94e, 0xf81c, 0xf8f8,
+ 0xfa3f, 0xfc94, 0xfe13, 0x000b, 0x050c, 0x09e6,
+ 0x0e4d, 0x12ea, 0x1419, 0x1227, 0x0d8b, 0x0646,
+ 0x01ee, 0xfff6, 0xfc63, 0xfb87, 0xfd02, 0xfc95,
+ 0xfe2d, 0x02ca, 0x0654, 0x08bb, 0x0970, 0x075f,
+ 0x05bb, 0x05fa, 0x0412, 0xfe82, 0xfa4d, 0xf966,
+ 0xf9c4, 0xfcff, 0x0100, 0x00ef, 0x00da, 0x02ce,
+ 0x029b, 0x022d, 0x025e, 0x0032, 0xfeb6, 0xff0c,
+ 0xfd97, 0xfbb5, 0xfc3f, 0xfe69, 0x0078, 0x01f4,
+ 0x0409, 0x062d, 0x0581, 0x019a, 0xfd1b, 0xf98e,
+ 0xf64a, 0xf469, 0xf502, 0xf4cb, 0xf41f, 0xf68b,
+ 0xf852, 0xf77b, 0xf7ad, 0xf858, 0xfa02, 0xfcb4,
+ 0xfbd9, 0xf9e8, 0xf8d1, 0xf467, 0xf161, 0xf32b,
+ 0xf48d, 0xf648, 0xf848, 0xf799, 0xf78b, 0xf6bf,
+ 0xf296, 0xf039, 0xef0e, 0xec0b, 0xea9e, 0xea87,
+ 0xe9d9, 0xea43, 0xeb6a, 0xecbb, 0xee3c, 0xed55,
+ 0xe8a9, 0xe371, 0xe297, 0xe5d9, 0xe8f3, 0xebf4,
+ 0xef3c, 0xf02a, 0xf07f, 0xf2d3, 0xf5e3, 0xf8fd,
+ 0xfabd, 0xf996, 0xf789, 0xf5de, 0xf3a9, 0xf0f3,
+ 0xee1f, 0xeb6a, 0xea37, 0xec41, 0xefce, 0xf142,
+ 0xf10f, 0xef62, 0xea70, 0xe651, 0xe74f, 0xeb5e,
+ 0xf0f6, 0xf5da, 0xf6c2, 0xf6a9, 0xf883, 0xf9c9,
+ 0xf9bc, 0xf9b6, 0xf958, 0xf8c4, 0xf9d1, 0xfc73,
+ 0xfd2b, 0xfb96, 0xfb7b, 0xfc4d, 0xfb7a, 0xfa9c,
+ 0xfb11, 0xfbf7, 0xfbe7, 0xf9dc, 0xf7e8, 0xf847,
+ 0xf9c2, 0xfa80, 0xf9f3, 0xf9f0, 0xfcc1, 0x00dc,
+ 0x03f1, 0x0540, 0x04b2, 0x0439, 0x03c8, 0x019f,
+ 0x00c6, 0x0326, 0x0658, 0x0a22, 0x0db1, 0x0ec8,
+ 0x0e02, 0x0c3e, 0x0af8, 0x0b70, 0x0b4a, 0x0abb,
+ 0x0b98, 0x0b0a, 0x0828, 0x04a7, 0x00a2, 0xffba,
+ 0x0459, 0x0926, 0x0af8, 0x0c4e, 0x0daf, 0x0d55,
+ 0x0b0a, 0x09ca, 0x0bca, 0x0dd2, 0x0d2d, 0x0b77,
+ 0x08e4, 0x0559, 0x031e, 0x025b, 0x0156, 0xff73,
+ 0xfd8c, 0xfe37, 0x00c5, 0x0120, 0x0088, 0x011c,
+ 0xffb2, 0xfd72, 0xfe42, 0xffca, 0x007d, 0x010f,
+ 0xffd5, 0xfe9c, 0xffba, 0x0027, 0xff3f, 0xff30,
+ 0x000c, 0x023d, 0x04fc, 0x06ad, 0x0870, 0x095a,
+ 0x072a, 0x03c8, 0x00e0, 0xfe1e, 0xfc8c, 0xfcdb,
+ 0xfe36, 0xfef8, 0xfd7d, 0xfa4d, 0xf7cf, 0xf84b,
+ 0xfb7c, 0xfe42, 0xfffb, 0x0233, 0x03c2, 0x0431,
+ 0x044b, 0x02a7, 0x003e, 0x005e, 0x02ee, 0x06c4,
+ 0x0a16, 0x08ee, 0x038a, 0xfe4a, 0xf92b, 0xf279,
+ 0xee1b, 0xf030, 0xf5cb, 0xfa0b, 0xfc08, 0xfcc2,
+ 0xfcda, 0xfcb5, 0xfd17, 0xfe72, 0xfe36, 0xfa7d,
+ 0xf781, 0xf872, 0xf9d0, 0xf8c3, 0xf68b, 0xf55e,
+ 0xf78e, 0xfd56, 0x0380, 0x070d, 0x07e6, 0x0651,
+ 0x0113, 0xfa25, 0xf70d, 0xf7f1, 0xf818, 0xf71b,
+ 0xf7e7, 0xfaba, 0xfd0c, 0xfd8f, 0xfd96, 0xfd58,
+ 0xfd08, 0xfedf, 0x0187, 0x0301, 0x052b, 0x0655,
+ 0x0563, 0x0728, 0x0aa0, 0x0c6c, 0x0f3a, 0x10f8,
+ 0x0e53, 0x0bc5, 0x0a99, 0x0857, 0x057e, 0x0124,
+ 0xfc44, 0xfaa1, 0xfa62, 0xf89f, 0xf6fe, 0xf6d8,
+ 0xf71b, 0xf571, 0xf1de, 0xef6d, 0xedce, 0xeb53,
+ 0xe99b, 0xe8b8, 0xe754, 0xe593, 0xe3a4, 0xe387,
+ 0xe646, 0xe90d, 0xecdd, 0xf513, 0xfe6d, 0x0419,
+ 0x062b, 0x0674, 0x05fa, 0x052f, 0x058c, 0x08df,
+ 0x0cf6, 0x0e3f, 0x0db8, 0x0e28, 0x0fb3, 0x10cf,
+ 0x104c, 0x0e90, 0x0d02, 0x0c62, 0x0cd2, 0x0e17,
+ 0x0f70, 0x1069, 0x1139, 0x1236, 0x1363, 0x1400,
+ 0x1338, 0x1152, 0x0f52, 0x0e46, 0x0ebc, 0x0fca,
+ 0x0fe1, 0x0e46, 0x0ace, 0x063d, 0x024c, 0xff42,
+ 0xfc39, 0xf9b4, 0xf9cc, 0xfdd0, 0x028e, 0x02ae,
+ 0xfe56, 0xf8eb, 0xf3c3, 0xf0c2, 0xefd7, 0xee1c,
+ 0xee26, 0xf2e2, 0xf85d, 0xfd67, 0x035b, 0x067d,
+ 0x0602, 0x05ab, 0x052d, 0x03c5, 0x02fe, 0x02a4,
+ 0x02bc, 0x03aa, 0x03a7, 0x0222, 0x002f, 0xfe95,
+ 0xffc4, 0x04da, 0x09d0, 0x0b7d, 0x0b3a, 0x0a79,
+ 0x0a4f, 0x0bd5, 0x0d00, 0x0b7b, 0x08f8, 0x06e3,
+ 0x046e, 0x02f4, 0x0417, 0x05fd, 0x07bf, 0x0b7e,
+ 0x10df, 0x150f, 0x1720, 0x160d, 0x115d, 0x0db8,
+ 0x0e26, 0x0e76, 0x0ca9, 0x0b88, 0x0ae1, 0x090b,
+ 0x06da, 0x0564, 0x0558, 0x0697, 0x07b4, 0x0883,
+ 0x0976, 0x0921, 0x06cb, 0x03fc, 0x010f, 0xfd34,
+ 0xfa9c, 0xfc06, 0xff93, 0x0265, 0x04a6, 0x0644,
+ 0x065d, 0x05bd, 0x05d8, 0x06b3, 0x0747, 0x0845,
+ 0x0b89, 0x0f6c, 0x116f, 0x12dd, 0x1492, 0x14fb,
+ 0x134d, 0x0fa3, 0x0b53, 0x0885, 0x072a, 0x056e,
+ 0x028b, 0x002e, 0x0055, 0x0288, 0x062d, 0x0ac9,
+ 0x0d9c, 0x0dbb, 0x0cce, 0x0b5d, 0x0a47, 0x08e4,
+ 0x054b, 0x0234, 0x01b8, 0x0191, 0x010a, 0xff4d,
+ 0xfd01, 0xfeca, 0x027a, 0x027c, 0x0162, 0x00e3,
+ 0xfede, 0xfcdc, 0xfb81, 0xfa6a, 0xfc1a, 0x0020,
+ 0x039e, 0x064b, 0x08e3, 0x0b6f, 0x0bca, 0x08a7,
+ 0x0550, 0x02b2, 0xfe87, 0xfaba, 0xf93b, 0xf8f0,
+ 0xf983, 0xf9f0, 0xfa87, 0xfda1, 0x00ea, 0x0204,
+ 0x0414, 0x07cb, 0x0a85, 0x0c72, 0x0f1b, 0x123f,
+ 0x12e2, 0x0f54, 0x0bf6, 0x0bea, 0x0c2f, 0x0b29,
+ 0x09c3, 0x08c4, 0x0931, 0x090d, 0x06d8, 0x05fa,
+ 0x064e, 0x04f2, 0x04a5, 0x0655, 0x0632, 0x049f,
+ 0x032c, 0x003e, 0xfca9, 0xfb52, 0xfc29, 0xfd1a,
+ 0xfd47, 0xfd3b, 0xfd15, 0xfcf0, 0xfd84, 0xfe38,
+ 0xfe10, 0xfd18, 0xfb11, 0xf8fe, 0xf93d, 0xfbe2,
+ 0xff9f, 0x034f, 0x0515, 0x04c2, 0x0454, 0x03c2,
+ 0x0130, 0xfcf7, 0xf982, 0xf7ce, 0xf718, 0xf6f9,
+ 0xf796, 0xf986, 0xfc8f, 0xfe2d, 0xfd67, 0xfc57,
+ 0xfc73, 0xff20, 0x041f, 0x070f, 0x079b, 0x09af,
+ 0x0b84, 0x0a73, 0x080a, 0x0410, 0xff40, 0xfc9e,
+ 0xfb3f, 0xfa25, 0xfa13, 0xf8a3, 0xf53f, 0xf2e1,
+ 0xf157, 0xef78, 0xee6f, 0xeebe, 0xefdc, 0xf059,
+ 0xeed4, 0xed2c, 0xedb6, 0xeecc, 0xeddb, 0xeb04,
+ 0xe81e, 0xe6e7, 0xe7a6, 0xe889, 0xe84b, 0xe8cf,
+ 0xeb9f, 0xef14, 0xf240, 0xf573, 0xf701, 0xf5d0,
+ 0xf394, 0xf2b9, 0xf4b0, 0xf7ff, 0xf93e, 0xf81d,
+ 0xf71e, 0xf6cc, 0xf517, 0xf1e7, 0xf0cb, 0xf23a,
+ 0xf201, 0xf019, 0xf05e, 0xf31c, 0xf61a, 0xf6e0,
+ 0xf478, 0xf316, 0xf63b, 0xfa6d, 0xfc4f, 0xfdaf,
+ 0x0057, 0x02ea, 0x039d, 0x0293, 0x00a1, 0xfead,
+ 0xfdcb, 0xfd94, 0xfd44, 0xfd65, 0xfd4a, 0xfc03,
+ 0xfa92, 0xf97d, 0xf95f, 0xfb81, 0xff28, 0x0347,
+ 0x06df, 0x0738, 0x044b, 0x00f1, 0xfe3f, 0xfc91,
+ 0xfc16, 0xfc9f, 0xff51, 0x0334, 0x0571, 0x06fd,
+ 0x0975, 0x0b6f, 0x0c21, 0x0ba0, 0x0a39, 0x098b,
+ 0x09af, 0x08c4, 0x06b9, 0x0613, 0x0955, 0x0f3a,
+ 0x12d9, 0x11db, 0x0ed9, 0x0c72, 0x0a14, 0x069d,
+ 0x0429, 0x0549, 0x0804, 0x0981, 0x0a74, 0x0b93,
+ 0x0bb9, 0x0a0a, 0x0669, 0x0263, 0x0103, 0x038c,
+ 0x084b, 0x0c49, 0x0dd4, 0x0e81, 0x0fcc, 0x0f78,
+ 0x0c36, 0x08cb, 0x0653, 0x0365, 0x01aa, 0x022b,
+ 0x010a, 0xfe72, 0xff7e, 0x0243, 0x01c0, 0x009e,
+ 0x0241, 0x0540, 0x0836, 0x0969, 0x07be, 0x04ef,
+ 0x00ec, 0xfb50, 0xf72d, 0xf587, 0xf545, 0xf6e0,
+ 0xf8dd, 0xf9e8, 0xfc2d, 0xfecb, 0xfe61, 0xfbf3,
+ 0xf9de, 0xf8a0, 0xf8a8, 0xf94f, 0xf9d3, 0xfb74,
+ 0xfe67, 0x0141, 0x03b5, 0x055e, 0x053f, 0x035b,
+ 0xffa5, 0xfa5e, 0xf574, 0xf219, 0xf072, 0xf162,
+ 0xf4a2, 0xf8db, 0xfda9, 0x01e4, 0x03b0, 0x02e6,
+ 0x00c0, 0xff31, 0xff21, 0xfe85, 0xfb62, 0xf6e8,
+ 0xf449, 0xf4b4, 0xf4c9, 0xf312, 0xf3d7, 0xf7e1,
+ 0xfb2c, 0xfce9, 0xfd4d, 0xfb4a, 0xf7a3, 0xf338,
+ 0xef73, 0xef45, 0xf290, 0xf6bc, 0xfa9f, 0xfebc,
+ 0x03ce, 0x0717, 0x058c, 0x0284, 0x006b, 0xfcb8,
+ 0xf901, 0xf886, 0xf921, 0xf8af, 0xf836, 0xf91c,
+ 0xfbc1, 0xfe88, 0x0042, 0x0206, 0x041f, 0x058b,
+ 0x05d7, 0x0617, 0x0810, 0x0a33, 0x0944, 0x06fc,
+ 0x071b, 0x087d, 0x075b, 0x031f, 0xfe53, 0xf9f0,
+ 0xf5b3, 0xf316, 0xf190, 0xee79, 0xeb2c, 0xe97b,
+ 0xe7f1, 0xe6ef, 0xe758, 0xe82d, 0xea29, 0xed49,
+ 0xefae, 0xf2af, 0xf723, 0xf9f5, 0xfa6a, 0xf9eb,
+ 0xf7ef, 0xf5e5, 0xf7a2, 0xfc56, 0xff22, 0xfead,
+ 0xfdb6, 0xfdfc, 0xffa1, 0x021b, 0x03e8, 0x04cb,
+ 0x05a6, 0x0546, 0x02ec, 0x010c, 0x0183, 0x02f0,
+ 0x037d, 0x04ad, 0x0955, 0x0f1f, 0x11bb, 0x11b8,
+ 0x1009, 0x0cb7, 0x0ad8, 0x0a8f, 0x08f7, 0x0769,
+ 0x061b, 0x02ee, 0x011c, 0x02f3, 0x0482, 0x041f,
+ 0x047d, 0x077c, 0x0be3, 0x0e51, 0x0d5d, 0x09e8,
+ 0x0479, 0xfe78, 0xf981, 0xf687, 0xf6aa, 0xf7b2,
+ 0xf67e, 0xf5b9, 0xf883, 0xfceb, 0x0003, 0x00bf,
+ 0x001c, 0xff16, 0xfd7c, 0xfd14, 0xff2c, 0x01e0,
+ 0x04c3, 0x07ac, 0x0923, 0x0ada, 0x0e3e, 0x10c2,
+ 0x1082, 0x0d14, 0x06ed, 0x0109, 0xfed4, 0x0122,
+ 0x04dd, 0x06c8, 0x0894, 0x0b3c, 0x0c23, 0x0bf8,
+ 0x0c06, 0x09fc, 0x05cd, 0x01af, 0xfee6, 0xffa4,
+ 0x0492, 0x09cb, 0x0bae, 0x0bb7, 0x0d02, 0x0e6a,
+ 0x0dda, 0x0cd1, 0x0b9f, 0x09a4, 0x098e, 0x0be0,
+ 0x0cb5, 0x09d5, 0x0469, 0xff94, 0xfdfd, 0xff40,
+ 0x01c5, 0x042a, 0x0509, 0x048d, 0x0429, 0x054d,
+ 0x07e3, 0x09d2, 0x0aa1, 0x0b1e, 0x0add, 0x0b5a,
+ 0x0dc8, 0x0ffe, 0x11c0, 0x1337, 0x11e9, 0x0f01,
+ 0x0d36, 0x0b4d, 0x08d5, 0x0709, 0x05f8, 0x066f,
+ 0x0913, 0x0c9a, 0x0f2a, 0x0f5a, 0x0d84, 0x0b4b,
+ 0x09a3, 0x093b, 0x0a1d, 0x0aea, 0x0a2c, 0x07a5,
+ 0x0599, 0x0651, 0x086d, 0x09e8, 0x0a02, 0x082d,
+ 0x0673, 0x065a, 0x0544, 0x035e, 0x0314, 0x0245,
+ 0xffea, 0xfebd, 0xfe73, 0xfd08, 0xfb05, 0xfa6e,
+ 0xfcd8, 0x0074, 0x0218, 0x0211, 0x0098, 0xfd1c,
+ 0xfb43, 0xfd43, 0xffd9, 0x0188, 0x0257, 0x0096,
+ 0xfdb1, 0xfc4e, 0xfbc6, 0xfc1e, 0xfd7a, 0xfd44,
+ 0xfbee, 0xfd40, 0x00be, 0x02ff, 0x03ce, 0x0509,
+ 0x0660, 0x052d, 0x0135, 0xfe97, 0xff81, 0x0198,
+ 0x0414, 0x0831, 0x0cff, 0x1179, 0x1541, 0x1653,
+ 0x1456, 0x11e8, 0x108e, 0x1095, 0x11f3, 0x1345,
+ 0x1380, 0x12c9, 0x1149, 0x0ef0, 0x0bbd, 0x08df,
+ 0x074a, 0x059a, 0x038c, 0x01e2, 0xff03, 0xfb4d,
+ 0xf919, 0xf77c, 0xf674, 0xf735, 0xf78c, 0xf70f,
+ 0xf754, 0xf712, 0xf77b, 0xfb38, 0xfea4, 0xfe50,
+ 0xfcef, 0xfc3f, 0xfac1, 0xf85f, 0xf612, 0xf3b5,
+ 0xf14f, 0xef6f, 0xeeba, 0xf0f8, 0xf620, 0xfaaf,
+ 0xfe19, 0x021d, 0x0441, 0x02f9, 0x018c, 0x0199,
+ 0x01fc, 0x0200, 0x01c1, 0x017c, 0x0072, 0xff05,
+ 0xfe9e, 0xfdef, 0xfcc6, 0xfd22, 0xfd96, 0xfdd8,
+ 0x0068, 0x032f, 0x0332, 0x0169, 0xff05, 0xfcfe,
+ 0xfbc5, 0xfb04, 0xfb52, 0xfb9c, 0xfaa0, 0xf917,
+ 0xf5de, 0xf187, 0xef9b, 0xef16, 0xee1d, 0xedaa,
+ 0xec77, 0xea90, 0xea43, 0xea7a, 0xea7e, 0xeb31,
+ 0xeb65, 0xea89, 0xe891, 0xe4fe, 0xe1c1, 0xe01f,
+ 0xdf0a, 0xdee7, 0xdf99, 0xdfa0, 0xdff8, 0xe267,
+ 0xe634, 0xe9cf, 0xec2f, 0xecd1, 0xeccb, 0xed81,
+ 0xedf9, 0xed72, 0xeda3, 0xeee7, 0xefed, 0xf09e,
+ 0xf109, 0xf1d4, 0xf41a, 0xf627, 0xf650, 0xf5da,
+ 0xf5ea, 0xf738, 0xf9ed, 0xfc99, 0xfe8d, 0xff3a,
+ 0xfe45, 0xfe0d, 0xfead, 0xfd11, 0xfa4b, 0xf8b7,
+ 0xf728, 0xf5a3, 0xf532, 0xf4fc, 0xf530, 0xf700,
+ 0xf9a0, 0xfb7f, 0xfc6a, 0xfdc7, 0x0102, 0x05ac,
+ 0x09ec, 0x0bfe, 0x0ac1, 0x06d8, 0x025f, 0xfdca,
+ 0xf871, 0xf41a, 0xf24c, 0xf1c3, 0xf28c, 0xf516,
+ 0xf6ed, 0xf7e6, 0xfa97, 0xfdc2, 0xff35, 0xfff2,
+ 0x002f, 0xffc4, 0x017a, 0x068e, 0x0b4e, 0x0cf1,
+ 0x0dc2, 0x100e, 0x1238, 0x1302, 0x13be, 0x1441,
+ 0x128e, 0x0e39, 0x093d, 0x06c0, 0x07eb, 0x0a02,
+ 0x0a48, 0x090a, 0x0767, 0x06a2, 0x07c8, 0x0987,
+ 0x0aaa, 0x0c96, 0x0f6e, 0x1177, 0x125e, 0x1273,
+ 0x11d4, 0x110e, 0x1052, 0x0faf, 0x0f05, 0x0d5b,
+ 0x0a43, 0x061a, 0x01b4, 0xfeb2, 0xfd60, 0xfc6c,
+ 0xfb59, 0xfaaf, 0xfb30, 0xfc07, 0xfb31, 0xfa23,
+ 0xfb40, 0xfcec, 0xfea3, 0x0143, 0x026c, 0x01d6,
+ 0x022b, 0x0242, 0xfff8, 0xfc47, 0xf894, 0xf5fa,
+ 0xf504, 0xf47d, 0xf364, 0xf26b, 0xf293, 0xf3cb,
+ 0xf4dd, 0xf427, 0xf125, 0xeece, 0xf112, 0xf7a3,
+ 0x0021, 0x094b, 0x1056, 0x12a7, 0x116e, 0x0eec,
+ 0x0caf, 0x0c2d, 0x0ce5, 0x0c3f, 0x091a, 0x05cf,
+ 0x04c4, 0x048b, 0x0319, 0x01c4, 0x0251, 0x03ad,
+ 0x037d, 0x0148, 0xff72, 0x0035, 0x0279, 0x03c0,
+ 0x0438, 0x0536, 0x04ea, 0x0176, 0xfd4a, 0xfa79,
+ 0xf85f, 0xf78e, 0xf8a3, 0xfa51, 0xfbb9, 0xfcaf,
+ 0xfd43, 0xfd7d, 0xfc81, 0xfa6c, 0xf8bc, 0xf7f1,
+ 0xf7f7, 0xf8ce, 0xfa3d, 0xfc37, 0xfe8f, 0x014a,
+ 0x0407, 0x0525, 0x04ef, 0x051a, 0x04b1, 0x030f,
+ 0x0251, 0x0369, 0x0577, 0x073b, 0x06fc, 0x0445,
+ 0x00f1, 0xfed0, 0xfdbd, 0xfcc8, 0xfbbd, 0xfa78,
+ 0xf90c, 0xf845, 0xf7d3, 0xf745, 0xf777, 0xf844,
+ 0xf8f9, 0xf98b, 0xf966, 0xf93c, 0xfab9, 0xfd8a,
+ 0x00bd, 0x033c, 0x037e, 0x01d6, 0xfecf, 0xfa85,
+ 0xf793, 0xf769, 0xf77a, 0xf6bf, 0xf742, 0xf9a3,
+ 0xfc9d, 0xffd4, 0x0381, 0x06a1, 0x0867, 0x09bc,
+ 0x0bf3, 0x0f65, 0x1250, 0x12e2, 0x1278, 0x1251,
+ 0x1155, 0x0f5f, 0x0d10, 0x0b4b, 0x0b2d, 0x0a96,
+ 0x0740, 0x03b8, 0x02ac, 0x036b, 0x03fa, 0x0359,
+ 0x02b2, 0x024d, 0x0169, 0x01ab, 0x0320, 0x03a4,
+ 0x046b, 0x06b2, 0x08dc, 0x0990, 0x082a, 0x062e,
+ 0x0569, 0x03eb, 0x0167, 0xffe5, 0xfe19, 0xfc03,
+ 0xfc39, 0xfdfc, 0x0059, 0x0452, 0x0837, 0x08ad,
+ 0x0526, 0x0095, 0xfe18, 0xfd88, 0xfd5f, 0xfd4c,
+ 0xfd9b, 0xfed6, 0x01aa, 0x0631, 0x0a47, 0x0a7f,
+ 0x079c, 0x04d2, 0x01fd, 0xff95, 0xff8b, 0x0016,
+ 0xffca, 0x0033, 0x0126, 0x024d, 0x040a, 0x03fe,
+ 0x009b, 0xfcf4, 0xfc32, 0xfda4, 0xff99, 0x028b,
+ 0x068a, 0x0a2f, 0x0d41, 0x0ec5, 0x0cfd, 0x0a0f,
+ 0x08af, 0x0824, 0x07eb, 0x07f0, 0x0794, 0x0814,
+ 0x09a9, 0x0919, 0x0587, 0x033d, 0x057c, 0x0993,
+ 0x0b7a, 0x0bbd, 0x0cf9, 0x0fb0, 0x1280, 0x130e,
+ 0x10ce, 0x0e5e, 0x0cf6, 0x0b54, 0x0a0e, 0x0ad9,
+ 0x0dac, 0x1157, 0x1408, 0x143b, 0x12ef, 0x1251,
+ 0x125c, 0x114b, 0x0e00, 0x08b6, 0x039b, 0x0231,
+ 0x04e0, 0x07f1, 0x0944, 0x0a69, 0x0c89, 0x0ea6,
+ 0x0fa1, 0x0fc4, 0x0f90, 0x0e01, 0x0b0d, 0x0933,
+ 0x092f, 0x0988, 0x0a19, 0x0ab0, 0x0ab9, 0x0b75,
+ 0x0d0e, 0x0d07, 0x0a86, 0x079a, 0x05f5, 0x0535,
+ 0x0506, 0x05c0, 0x0557, 0x025b, 0xfffe, 0xff57,
+ 0xfdda, 0xfcf2, 0xfe74, 0xff36, 0xfdc4, 0xfc9e,
+ 0xfcc9, 0xfd80, 0xfec5, 0x00b1, 0x0189, 0x0096,
+ 0x00d3, 0x02d3, 0x0326, 0x0193, 0x0012, 0xfeba,
+ 0xfdc1, 0xfd1f, 0xfcdc, 0xfeb4, 0x028e, 0x0686,
+ 0x09a9, 0x0b42, 0x0c78, 0x0ee5, 0x10be, 0x1136,
+ 0x1180, 0x1032, 0x0cf3, 0x0a7f, 0x08f1, 0x0666,
+ 0x03b9, 0x030f, 0x045f, 0x064f, 0x089f, 0x0b27,
+ 0x0caa, 0x0c64, 0x0a6a, 0x0758, 0x045c, 0x0234,
+ 0x00b0, 0xfede, 0xfcab, 0xfc63, 0xfe6f, 0xffe3,
+ 0x0016, 0x0073, 0x0166, 0x035d, 0x052f, 0x04ac,
+ 0x0282, 0xffe2, 0xfc9c, 0xf9b7, 0xf888, 0xf949,
+ 0xfb25, 0xfc80, 0xfd56, 0xfe7f, 0xff1a, 0xff08,
+ 0xffb1, 0x0069, 0xff81, 0xfe57, 0xff95, 0x024a,
+ 0x03e6, 0x0498, 0x0522, 0x0576, 0x06a1, 0x0898,
+ 0x09ea, 0x0ab2, 0x0ae0, 0x0960, 0x0671, 0x02eb,
+ 0xffd4, 0xfe5c, 0xfe0e, 0xfdf6, 0xfe15, 0xfe61,
+ 0xffb5, 0x034f, 0x0777, 0x0944, 0x092a, 0x08d4,
+ 0x0740, 0x03ef, 0x0182, 0x00df, 0xff69, 0xfbe1,
+ 0xf791, 0xf395, 0xf062, 0xee0f, 0xec13, 0xea67,
+ 0xeab1, 0xed88, 0xf032, 0xf088, 0xef76, 0xee0b,
+ 0xed4f, 0xeea8, 0xf0ef, 0xf19b, 0xf013, 0xec7b,
+ 0xe6de, 0xe0d2, 0xdcec, 0xdc2f, 0xdda3, 0xe016,
+ 0xe281, 0xe48b, 0xe710, 0xe9d7, 0xebd7, 0xedcb,
+ 0xeffa, 0xf1aa, 0xf39e, 0xf554, 0xf458, 0xf0f2,
+ 0xee37, 0xeebb, 0xf263, 0xf656, 0xf855, 0xf8d8,
+ 0xf96e, 0xfabf, 0xfc16, 0xfd60, 0xfeee, 0xfe73,
+ 0xf9ca, 0xf2eb, 0xed6f, 0xeb90, 0xed45, 0xf12f,
+ 0xf629, 0xfa99, 0xfd58, 0xfe7e, 0xfd5c, 0xfaeb,
+ 0xfa0e, 0xfa43, 0xf9ef, 0xf9a5, 0xf99c, 0xfa3e,
+ 0xfb81, 0xfbe6, 0xfc0b, 0xfc7a, 0xfc1e, 0xfc6e,
+ 0xfda6, 0xfd19, 0xfbdb, 0xfcc8, 0xffe5, 0x041b,
+ 0x0761, 0x080e, 0x0722, 0x05b4, 0x03c4, 0x022c,
+ 0x02d5, 0x0621, 0x094b, 0x0a36, 0x09c2, 0x08d9,
+ 0x0885, 0x09ec, 0x0bab, 0x0c72, 0x0d30, 0x0e46,
+ 0x0eba, 0x0d68, 0x0b53, 0x0c51, 0x11f0, 0x1929,
+ 0x1e89, 0x20a0, 0x1f9c, 0x1c46, 0x183f, 0x164c,
+ 0x16fe, 0x179f, 0x15bc, 0x10a3, 0x0a8b, 0x073c,
+ 0x06c9, 0x07bf, 0x0b23, 0x103b, 0x13ed, 0x155b,
+ 0x1564, 0x148c, 0x12f4, 0x1088, 0x0d1f, 0x08af,
+ 0x0400, 0xffc2, 0xfb68, 0xf817, 0xf7a6, 0xf84a,
+ 0xf822, 0xf82a, 0xf82f, 0xf6d9, 0xf425, 0xf112,
+ 0xef65, 0xefcc, 0xf167, 0xf41d, 0xf691, 0xf651,
+ 0xf4b7, 0xf415, 0xf38f, 0xf2d8, 0xf2f2, 0xf3af,
+ 0xf486, 0xf4b8, 0xf476, 0xf61d, 0xf9fd, 0xfdf4,
+ 0x021d, 0x0673, 0x08cc, 0x094e, 0x097f, 0x0947,
+ 0x091e, 0x09b7, 0x0a68, 0x0ae2, 0x0a9c, 0x0890,
+ 0x05ca, 0x043a, 0x0427, 0x04fd, 0x0525, 0x0261,
+ 0xfd3a, 0xf857, 0xf45e, 0xf10b, 0xef8d, 0xf04a,
+ 0xf22d, 0xf4dd, 0xf840, 0xfbdf, 0xff7c, 0x022a,
+ 0x0260, 0xff9a, 0xfb2a, 0xf75c, 0xf4d1, 0xf2a9,
+ 0xf10a, 0xefc8, 0xee3c, 0xedc6, 0xef73, 0xf25f,
+ 0xf5fa, 0xf99e, 0xfd01, 0x00c1, 0x040f, 0x063b,
+ 0x07e2, 0x07d2, 0x050f, 0x01bd, 0x0031, 0x0069,
+ 0x009b, 0x001f, 0x002a, 0x0061, 0x0005, 0xfffc,
+ 0xffbf, 0xff0c, 0xff69, 0x000c, 0xffe4, 0xffba,
+ 0xfed9, 0xfda7, 0xfeaa, 0x00ce, 0x015e, 0x00f6,
+ 0x00a8, 0xff9f, 0xfdc7, 0xfc90, 0xfc7a, 0xfcd5,
+ 0xfd99, 0xfe51, 0xfdba, 0xfc3c, 0xfb70, 0xfc1c,
+ 0xfdba, 0xfece, 0xff29, 0xffd5, 0x00b2, 0x01e6,
+ 0x03f4, 0x05e0, 0x06d9, 0x0641, 0x039c, 0x00f3,
+ 0x0011, 0x0085, 0x027a, 0x0501, 0x0557, 0x03b9,
+ 0x02f3, 0x0407, 0x0567, 0x0514, 0x033f, 0x017b,
+ 0x0068, 0x0079, 0x0249, 0x051a, 0x074a, 0x0809,
+ 0x07ac, 0x062a, 0x037f, 0x0173, 0x0092, 0xff32,
+ 0xfe73, 0x007d, 0x034b, 0x0450, 0x03dc, 0x02ee,
+ 0x0226, 0x0163, 0x002f, 0xff7b, 0x00a7, 0x03bf,
+ 0x079f, 0x0ac9, 0x0c6a, 0x0c3c, 0x0ab4, 0x09cb,
+ 0x0a52, 0x0ad2, 0x0b4a, 0x0c78, 0x0c89, 0x0984,
+ 0x03d6, 0xfe0a, 0xfb3a, 0xfb00, 0xfa46, 0xf8d0,
+ 0xf78f, 0xf5fd, 0xf517, 0xf65b, 0xf979, 0xfde1,
+ 0x0217, 0x0495, 0x0656, 0x07aa, 0x07b9, 0x07b0,
+ 0x0776, 0x0502, 0x01c7, 0x00ba, 0x018a, 0x0328,
+ 0x05c2, 0x08de, 0x0baa, 0x0e54, 0x10ad, 0x11b4,
+ 0x113c, 0x100c, 0x0f62, 0x104c, 0x117d, 0x111b,
+ 0x103c, 0x0fe9, 0x0ef3, 0x0d2a, 0x0bd2, 0x0c10,
+ 0x0ddb, 0x0f87, 0x1060, 0x10eb, 0x1060, 0x0eb7,
+ 0x0d36, 0x0bb7, 0x0aa3, 0x0bf7, 0x0f79, 0x1242,
+ 0x1277, 0x116e, 0x1130, 0x11ad, 0x1239, 0x12c2,
+ 0x1339, 0x138a, 0x1241, 0x0de6, 0x0884, 0x057a,
+ 0x0631, 0x0963, 0x0bef, 0x0ca4, 0x0c2d, 0x0aaa,
+ 0x09a8, 0x0997, 0x07ed, 0x05af, 0x0553, 0x049c,
+ 0x0243, 0x00b3, 0x010e, 0x027f, 0x0374, 0x031c,
+ 0x024d, 0x017e, 0x008d, 0xffa0, 0xfeee, 0xff38,
+ 0x0077, 0x0188, 0x0215, 0x0221, 0x0202, 0x0291,
+ 0x032c, 0x02d6, 0x016f, 0xfe74, 0xfad5, 0xf8dc,
+ 0xf8e1, 0xfa22, 0xfca9, 0x002b, 0x030b, 0x03f2,
+ 0x03ad, 0x037c, 0x03f0, 0x050e, 0x04bc, 0x026d,
+ 0x0160, 0x0194, 0x005e, 0xfde1, 0xfa3a, 0xf6a7,
+ 0xf5ce, 0xf5c5, 0xf519, 0xf660, 0xf91b, 0xfba9,
+ 0xfe50, 0xffce, 0x0024, 0x011b, 0x0229, 0x021e,
+ 0x00a6, 0xfe59, 0xfcbc, 0xfc22, 0xfcbe, 0xfed3,
+ 0x00ba, 0x017b, 0x00fd, 0xff11, 0xfd8f, 0xfce6,
+ 0xfb60, 0xfa05, 0xf991, 0xf8fc, 0xf936, 0xfa9b,
+ 0xfc4b, 0xfe4f, 0xffa5, 0xffb4, 0xffb8, 0x001b,
+ 0x00a0, 0x00fa, 0x012d, 0x01fb, 0x0268, 0x00f7,
+ 0xfe8d, 0xfc1d, 0xfa6d, 0xfa78, 0xfb40, 0xfb90,
+ 0xfb5c, 0xfa86, 0xf95e, 0xf807, 0xf6e7, 0xf744,
+ 0xf88c, 0xf9b5, 0xfb55, 0xfcbe, 0xfda4, 0xffc2,
+ 0x02ac, 0x0464, 0x0447, 0x02f7, 0x0232, 0x026c,
+ 0x0294, 0x035a, 0x04e3, 0x0536, 0x0420, 0x02d1,
+ 0x018e, 0x008f, 0x002f, 0x006e, 0x0096, 0x003a,
+ 0x00b5, 0x0241, 0x02bc, 0x01ca, 0x0048, 0xfde0,
+ 0xfb7f, 0xfa85, 0xf951, 0xf619, 0xf2a6, 0xf17d,
+ 0xf1b7, 0xf0c2, 0xeee2, 0xee70, 0xefae, 0xf022,
+ 0xee34, 0xec77, 0xee63, 0xf28d, 0xf562, 0xf688,
+ 0xf6cd, 0xf58c, 0xf26d, 0xef03, 0xedbb, 0xee46,
+ 0xee38, 0xee1e, 0xef6d, 0xf0b4, 0xf12f, 0xf113,
+ 0xef89, 0xedfd, 0xee58, 0xef3a, 0xf03d, 0xf2a8,
+ 0xf561, 0xf784, 0xfa88, 0xfe6d, 0x0071, 0xfe56,
+ 0xf946, 0xf48b, 0xf22e, 0xf236, 0xf31e, 0xf356,
+ 0xf3d3, 0xf5fc, 0xf868, 0xf9de, 0xfbd3, 0xfed9,
+ 0x00a6, 0xffee, 0xfe85, 0xfde1, 0xfd9a, 0xfd5c,
+ 0xfcca, 0xfc0e, 0xfcc6, 0xff10, 0x0123, 0x021b,
+ 0x01b0, 0x0040, 0xff61, 0xffda, 0x003a, 0xfe85,
+ 0xfc59, 0xfd35, 0xfe95, 0xfc2e, 0xf973, 0xfae8,
+ 0xfe8b, 0x0122, 0x0236, 0x02e2, 0x03ca, 0x047e,
+ 0x05f6, 0x0885, 0x0992, 0x0927, 0x09f7, 0x0bb6,
+ 0x0caf, 0x0cb1, 0x0c62, 0x0c74, 0x0ca6, 0x0c4c,
+ 0x0b2d, 0x094a, 0x070b, 0x0471, 0x02a1, 0x0481,
+ 0x0968, 0x0e5d, 0x12c2, 0x14d5, 0x1417, 0x14a5,
+ 0x168c, 0x15f5, 0x1378, 0x119c, 0x116c, 0x122e,
+ 0x1193, 0x1078, 0x110c, 0x117b, 0x10c8, 0x10c0,
+ 0x116b, 0x11a3, 0x1078, 0x0d95, 0x09f5, 0x0623,
+ 0x02c7, 0x01ab, 0x027f, 0x027d, 0x0083, 0xff23,
+ 0x007a, 0x018c, 0xffe7, 0xfec4, 0xff96, 0xff0f,
+ 0xfc08, 0xf8cc, 0xf723, 0xf650, 0xf4dd, 0xf3e5,
+ 0xf530, 0xf8c4, 0xfe60, 0x040c, 0x0683, 0x05e9,
+ 0x04b2, 0x0403, 0x03ba, 0x02f9, 0x01b4, 0x00d9,
+ 0x0091, 0x0134, 0x035d, 0x060d, 0x07ad, 0x0744,
+ 0x0529, 0x0341, 0x0225, 0x00cc, 0xff9f, 0xff5e,
+ 0xff63, 0xff9d, 0x00e1, 0x026d, 0x01c3, 0xfeca,
+ 0xfd1f, 0xfe49, 0xffe9, 0x0154, 0x0392, 0x0576,
+ 0x05ab, 0x0488, 0x027a, 0xffe4, 0xfd25, 0xfaec,
+ 0xfa8b, 0xfb96, 0xfc80, 0xfe17, 0x011d, 0x0332,
+ 0x0208, 0xfe25, 0xfa0d, 0xf805, 0xf800, 0xf91f,
+ 0xfb2e, 0xfd74, 0xff9b, 0x024f, 0x0521, 0x06df,
+ 0x0712, 0x05e4, 0x0478, 0x03e9, 0x03d3, 0x0373,
+ 0x0291, 0x011d, 0xfed0, 0xfbf3, 0xfa94, 0xfbdf,
+ 0xfdc5, 0xfe83, 0xfe2c, 0xfce6, 0xfbd9, 0xfbc4,
+ 0xfb0b, 0xf971, 0xf910, 0xfa3c, 0xfb3c, 0xfb3e,
+ 0xfaf8, 0xfaaa, 0xf991, 0xf800, 0xf740, 0xf79f,
+ 0xf8cc, 0xf9c9, 0xf93b, 0xf842, 0xf9b7, 0xfdb1,
+ 0x0174, 0x039b, 0x0508, 0x0692, 0x0871, 0x0a50,
+ 0x0aa7, 0x0917, 0x0758, 0x05b6, 0x0374, 0x017e,
+ 0x00c5, 0x014f, 0x0293, 0x02c2, 0x00e6, 0xfeb4,
+ 0xfdba, 0xfd5f, 0xfd21, 0xfdc9, 0xfef9, 0xffb8,
+ 0x018b, 0x050f, 0x074f, 0x0763, 0x077c, 0x08a2,
+ 0x0a47, 0x0b00, 0x0aa2, 0x0aec, 0x0b1a, 0x0966,
+ 0x071b, 0x0533, 0x0440, 0x05e2, 0x08a0, 0x0a1b,
+ 0x0b14, 0x0ba1, 0x0ab0, 0x089b, 0x057e, 0x01b1,
+ 0xff54, 0xffaf, 0x0154, 0x0217, 0x01df, 0x0228,
+ 0x032a, 0x03a4, 0x02a4, 0x0077, 0xfe27, 0xfc92,
+ 0xfc7c, 0xfd84, 0xfe77, 0x0063, 0x03e4, 0x061a,
+ 0x0658, 0x0667, 0x0591, 0x0394, 0x01ae, 0xff88,
+ 0xfd4c, 0xfbb0, 0xfa76, 0xfa94, 0xfc46, 0xfd96,
+ 0xfe17, 0xfeb6, 0xffb0, 0x011a, 0x025f, 0x026f,
+ 0x0114, 0xff05, 0xfd71, 0xfcd4, 0xfce5, 0xfdb2,
+ 0xff79, 0x030d, 0x08ba, 0x0def, 0x1078, 0x112d,
+ 0x10aa, 0x0ecc, 0x0c62, 0x0a32, 0x08e6, 0x08e1,
+ 0x097a, 0x0a42, 0x0b29, 0x0b91, 0x0b1f, 0x0a36,
+ 0x09ac, 0x09fe, 0x0aba, 0x0bef, 0x0de6, 0x0f77,
+ 0x1037, 0x1176, 0x135b, 0x14a2, 0x1417, 0x11a2,
+ 0x0f28, 0x0d51, 0x09ef, 0x0550, 0x01ff, 0xff69,
+ 0xfcf8, 0xfcd8, 0xff0c, 0x016f, 0x038a, 0x059a,
+ 0x0762, 0x0872, 0x085d, 0x07f3, 0x084a, 0x08db,
+ 0x08eb, 0x0851, 0x06dc, 0x04ff, 0x03b4, 0x0370,
+ 0x039e, 0x036c, 0x0377, 0x043c, 0x045a, 0x0367,
+ 0x029a, 0x01ee, 0x008d, 0xfee3, 0xfeda, 0x0203,
+ 0x06bf, 0x09cc, 0x0a9e, 0x0acb, 0x0b13, 0x0b04,
+ 0x09e6, 0x07f0, 0x06b2, 0x079d, 0x09cf, 0x0a91,
+ 0x0918, 0x06f8, 0x0507, 0x03b1, 0x03d6, 0x04e6,
+ 0x05a5, 0x05c3, 0x04d5, 0x0308, 0x023d, 0x0353,
+ 0x044f, 0x041b, 0x0482, 0x0582, 0x051a, 0x048a,
+ 0x05ab, 0x0707, 0x0796, 0x07e7, 0x08b9, 0x0b00,
+ 0x0cea, 0x0b86, 0x0863, 0x0622, 0x0465, 0x02de,
+ 0x01fe, 0x0167, 0x00af, 0xffb1, 0xfed0, 0xfef4,
+ 0x00b1, 0x0406, 0x0795, 0x0946, 0x08e1, 0x0795,
+ 0x059f, 0x02c9, 0x005a, 0x003d, 0x022b, 0x04b1,
+ 0x0772, 0x0973, 0x09a6, 0x0985, 0x0a5e, 0x0b7e,
+ 0x0c32, 0x0b98, 0x0918, 0x05a6, 0x023a, 0x001f,
+ 0x019c, 0x0608, 0x0942, 0x093c, 0x0752, 0x04ce,
+ 0x027d, 0x0185, 0x0180, 0x010a, 0x0080, 0x00c2,
+ 0x0115, 0x006d, 0xff13, 0xfe80, 0xff44, 0xfffd,
+ 0x0024, 0x00fd, 0x032c, 0x05b6, 0x068d, 0x0559,
+ 0x04fa, 0x063b, 0x05d8, 0x0327, 0x014b, 0x0128,
+ 0x006d, 0xfdf8, 0xfb3f, 0xf993, 0xf933, 0xfa07,
+ 0xfaca, 0xfac0, 0xfb7c, 0xfd6c, 0xff58, 0x0100,
+ 0x01a7, 0x00a3, 0xff0b, 0xfcab, 0xf856, 0xf31d,
+ 0xef24, 0xedf0, 0xef60, 0xf161, 0xf2f5, 0xf49b,
+ 0xf674, 0xf8ce, 0xfaf8, 0xfb23, 0xfa24, 0xf988,
+ 0xf80a, 0xf595, 0xf49f, 0xf584, 0xf709, 0xf8d9,
+ 0xf9ec, 0xf957, 0xf852, 0xf77d, 0xf60d, 0xf469,
+ 0xf2f0, 0xf155, 0xf0db, 0xf1a4, 0xf197, 0xf1d7,
+ 0xf546, 0xf9ec, 0xfc08, 0xfb1e, 0xf860, 0xf59f,
+ 0xf48c, 0xf468, 0xf433, 0xf4f7, 0xf6dd, 0xf8a7,
+ 0xfa40, 0xfc38, 0xfe50, 0xffba, 0x0005, 0xff7b,
+ 0xfe2c, 0xfc59, 0xfb53, 0xfb0b, 0xf9c0, 0xf7d4,
+ 0xf785, 0xf9d5, 0xfdbd, 0x0082, 0x0084, 0xffa1,
+ 0x0000, 0x0142, 0x01e6, 0x01c0, 0x02da, 0x064e,
+ 0x09c0, 0x0b4c, 0x0bcd, 0x0be4, 0x0b1f, 0x0966,
+ 0x0762, 0x05b8, 0x03f5, 0x01a2, 0xff9b, 0xfece,
+ 0xff9e, 0x0225, 0x0627, 0x0ad9, 0x0e14, 0x0e9b,
+ 0x0f44, 0x126a, 0x159e, 0x1628, 0x1466, 0x117b,
+ 0x0dd5, 0x09e1, 0x06c5, 0x0566, 0x0579, 0x0683,
+ 0x07e2, 0x08cf, 0x09b8, 0x0aa6, 0x0a62, 0x092d,
+ 0x07e2, 0x05d1, 0x0336, 0x01c2, 0x01f9, 0x0347,
+ 0x052b, 0x06d2, 0x0755, 0x068c, 0x04b6, 0x01c8,
+ 0xfe24, 0xfafc, 0xf928, 0xf8bd, 0xf9bf, 0xfb69,
+ 0xfbf1, 0xfab5, 0xf8f3, 0xf7a6, 0xf6a4, 0xf5c4,
+ 0xf509, 0xf443, 0xf35d, 0xf2c3, 0xf3c3, 0xf70b,
+ 0xfaca, 0xfd46, 0xfefc, 0xffe8, 0xff0c, 0xfcce,
+ 0xfae5, 0xfaee, 0xfccf, 0xfeee, 0x00c1, 0x0240,
+ 0x0272, 0x014b, 0xff28, 0xfc16, 0xf9c9, 0xf9a3,
+ 0xfabb, 0xfc99, 0xff30, 0x018a, 0x0343, 0x03f7,
+ 0x02cf, 0x00af, 0xff34, 0xfe0f, 0xfc71, 0xfb13,
+ 0xfae4, 0xfb88, 0xfc56, 0xfcdc, 0xfcb1, 0xfc68,
+ 0xfcce, 0xfd5c, 0xfdba, 0xfe1e, 0xfde0, 0xfcca,
+ 0xfbb0, 0xfb35, 0xfbfe, 0xfde7, 0xffa4, 0x00e4,
+ 0x026c, 0x0483, 0x06c3, 0x0793, 0x0566, 0x01d0,
+ 0xfff2, 0xfff0, 0xff64, 0xfd8e, 0xfb8d, 0xf9f1,
+ 0xf9a3, 0xfb9d, 0xfdf1, 0xfec9, 0xffd2, 0x01d2,
+ 0x033d, 0x03ca, 0x03df, 0x03c2, 0x03ce, 0x0299,
+ 0xff7d, 0xfd64, 0xfd9a, 0xfdd5, 0xfd33, 0xfc3e,
+ 0xfa65, 0xf83b, 0xf7e1, 0xf965, 0xfaed, 0xfbf4,
+ 0xfd26, 0xfe6d, 0xff2f, 0xff31, 0xff06, 0xff91,
+ 0x0050, 0x005d, 0x0086, 0x011d, 0x010f, 0x00e3,
+ 0x0163, 0x0149, 0x00b4, 0x01c0, 0x0446, 0x0602,
+ 0x05c8, 0x039d, 0xffdc, 0xfbe0, 0xf967, 0xf853,
+ 0xf750, 0xf693, 0xf70d, 0xf892, 0xfa9b, 0xfc41,
+ 0xfcb7, 0xfd49, 0xff10, 0x003e, 0xffaf, 0xfea8,
+ 0xfdcb, 0xfd24, 0xfda7, 0xffa1, 0x0215, 0x03bb,
+ 0x03d4, 0x0326, 0x02a6, 0x0168, 0xfed5, 0xfc3c,
+ 0xfa4f, 0xf8ee, 0xf909, 0xfbad, 0xffe1, 0x02c6,
+ 0x033b, 0x03b4, 0x0532, 0x056d, 0x041e, 0x028f,
+ 0x005e, 0xfe40, 0xfdad, 0xfe33, 0xffc9, 0x026f,
+ 0x045f, 0x053d, 0x05a5, 0x047d, 0x0200, 0x0063,
+ 0x0014, 0xfff6, 0xffd2, 0x0019, 0x0077, 0x0055,
+ 0x0054, 0x00bd, 0x00ff, 0x01b7, 0x0287, 0x0145,
+ 0xfeb0, 0xfd60, 0xfdac, 0xfed2, 0xff58, 0xfdbd,
+ 0xfba8, 0xfb51, 0xfc13, 0xfd42, 0xff93, 0x02d3,
+ 0x0558, 0x0632, 0x0696, 0x0703, 0x0605, 0x03df,
+ 0x0244, 0x0189, 0x01d0, 0x02ef, 0x03d1, 0x043c,
+ 0x0408, 0x029f, 0x0130, 0x01b7, 0x04dc, 0x097b,
+ 0x0d42, 0x0f63, 0x1099, 0x10e0, 0x10ad, 0x108d,
+ 0x0f71, 0x0dc0, 0x0d24, 0x0cb0, 0x0ba3, 0x0b2b,
+ 0x0b08, 0x0ae4, 0x0bd0, 0x0d3d, 0x0df8, 0x0ea5,
+ 0x0fc2, 0x1108, 0x1229, 0x126d, 0x1242, 0x12ba,
+ 0x12a3, 0x1125, 0x0f87, 0x0dc9, 0x0bed, 0x0bba,
+ 0x0cca, 0x0d35, 0x0d61, 0x0e4b, 0x0fb6, 0x10c1,
+ 0x107e, 0x0f71, 0x0e5b, 0x0c3f, 0x08ee, 0x0624,
+ 0x046c, 0x0281, 0x0016, 0xfeb3, 0xfed0, 0xff39,
+ 0x003e, 0x0258, 0x041e, 0x05a1, 0x0768, 0x0807,
+ 0x07ca, 0x07a3, 0x0609, 0x030a, 0x00c8, 0xffde,
+ 0x0040, 0x0154, 0x01e0, 0x02b7, 0x0509, 0x07b6,
+ 0x08e6, 0x079f, 0x04b5, 0x0278, 0x0222, 0x0317,
+ 0x0438, 0x04c1, 0x0499, 0x0380, 0x00ff, 0xfe35,
+ 0xfd3e, 0xfe21, 0xfed3, 0xfe7e, 0xfe25, 0xfe9c,
+ 0x0079, 0x03b5, 0x0621, 0x0622, 0x053a, 0x0504,
+ 0x056b, 0x0635, 0x0736, 0x082a, 0x08b8, 0x080d,
+ 0x05db, 0x02fd, 0x0069, 0xfebf, 0xfeb5, 0x00a6,
+ 0x037c, 0x05d4, 0x07c9, 0x094e, 0x0978, 0x0858,
+ 0x0679, 0x0462, 0x02f8, 0x0211, 0x014b, 0x0132,
+ 0x010c, 0x003b, 0x002d, 0x00c7, 0x00ab, 0x0095,
+ 0x0137, 0x01c2, 0x0215, 0x027e, 0x02b9, 0x02d8,
+ 0x0368, 0x0449, 0x0469, 0x039c, 0x02e8, 0x01ed,
+ 0xffe2, 0xfed3, 0x00ae, 0x0367, 0x0465, 0x0410,
+ 0x03b6, 0x039f, 0x037d, 0x0309, 0x0267, 0x00f5,
+ 0xfd3f, 0xf896, 0xf6fe, 0xf9df, 0xfec7, 0x02d3,
+ 0x053c, 0x06ed, 0x0819, 0x0844, 0x07d0, 0x06ce,
+ 0x0501, 0x02d0, 0x0027, 0xfdb0, 0xfcac, 0xfbe8,
+ 0xfab5, 0xfb43, 0xfd94, 0xff3b, 0xff32, 0xfd82,
+ 0xfb22, 0xf9a2, 0xf928, 0xf953, 0xf9ba, 0xf8fd,
+ 0xf694, 0xf3ab, 0xf121, 0xeee7, 0xecfe, 0xebc6,
+ 0xeb82, 0xec37, 0xed64, 0xede0, 0xed9e, 0xede6,
+ 0xeeec, 0xf027, 0xf144, 0xf190, 0xf186, 0xf266,
+ 0xf367, 0xf389, 0xf384, 0xf39f, 0xf349, 0xf269,
+ 0xf118, 0xef14, 0xecca, 0xec42, 0xee20, 0xeffd,
+ 0xf100, 0xf2fa, 0xf5d5, 0xf77b, 0xf722, 0xf5da,
+ 0xf4a7, 0xf326, 0xf0c5, 0xee13, 0xec31, 0xec20,
+ 0xed76, 0xeee2, 0xf060, 0xf27f, 0xf593, 0xf954,
+ 0xfbac, 0xfc53, 0xfd9b, 0xfecc, 0xfed8, 0xfffb,
+ 0x01b3, 0x0120, 0xfe98, 0xfc69, 0xfc79, 0xfe91,
+ 0x00a5, 0x0234, 0x0301, 0x0249, 0x010e, 0xff84,
+ 0xfd8e, 0xfd7b, 0xff47, 0x00ea, 0x0280, 0x0357,
+ 0x02d8, 0x0322, 0x04cf, 0x0674, 0x0770, 0x07bc,
+ 0x0803, 0x0874, 0x08c2, 0x09a9, 0x0ab1, 0x0ae9,
+ 0x0b8a, 0x0cc3, 0x0d93, 0x0e5c, 0x0e9b, 0x0d5e,
+ 0x0b7a, 0x09d5, 0x0901, 0x094e, 0x0a3d, 0x0bd9,
+ 0x0e22, 0x1013, 0x1153, 0x1230, 0x12a3, 0x127f,
+ 0x1158, 0x0f12, 0x0c1e, 0x08d5, 0x05c9, 0x03ad,
+ 0x02c9, 0x02d4, 0x02b9, 0x01a6, 0x000f, 0xfe96,
+ 0xfd82, 0xfd2f, 0xfd96, 0xfdd2, 0xfd11, 0xfbd0,
+ 0xfadd, 0xfaba, 0xfc8d, 0x0029, 0x0356, 0x04d1,
+ 0x03eb, 0x0088, 0xfcea, 0xfa27, 0xf7c4, 0xf6f3,
+ 0xf753, 0xf702, 0xf6ab, 0xf6de, 0xf78e, 0xf96f,
+ 0xfb2e, 0xfbf2, 0xfd4f, 0xfefb, 0x0039, 0x014f,
+ 0x0085, 0xfd9d, 0xfbb1, 0xfbf8, 0xfd21, 0xfe25,
+ 0xfe8e, 0xfe69, 0xfe2d, 0xfe80, 0xffb2, 0x0132,
+ 0x0268, 0x030c, 0x0326, 0x0371, 0x04a6, 0x06de,
+ 0x0900, 0x0933, 0x07f3, 0x0723, 0x063a, 0x043b,
+ 0x01eb, 0x0064, 0x0087, 0x0249, 0x048f, 0x063e,
+ 0x065e, 0x05a6, 0x0611, 0x077c, 0x0915, 0x0b05,
+ 0x0c70, 0x0c50, 0x0a38, 0x0663, 0x0361, 0x0340,
+ 0x0482, 0x050a, 0x043d, 0x02e2, 0x01cc, 0x006d,
+ 0xfee0, 0xfda3, 0xfbc2, 0xf989, 0xf83e, 0xf816,
+ 0xf9d2, 0xfc65, 0xfcd1, 0xfb87, 0xf9fe, 0xf7e7,
+ 0xf672, 0xf61e, 0xf567, 0xf4ae, 0xf493, 0xf480,
+ 0xf57f, 0xf863, 0xfb1b, 0xfbc0, 0xfb2e, 0xfad3,
+ 0xfa64, 0xf981, 0xf940, 0xfaec, 0xfe8a, 0x022f,
+ 0x03f8, 0x04a5, 0x053b, 0x055d, 0x0567, 0x05a1,
+ 0x0599, 0x05b7, 0x0634, 0x06df, 0x0829, 0x0a20,
+ 0x0c15, 0x0cf4, 0x0c26, 0x0a9e, 0x08e1, 0x0681,
+ 0x039e, 0x0034, 0xfd74, 0xfd4a, 0xfe1f, 0xfe10,
+ 0xfe66, 0xff5f, 0x0069, 0x01f6, 0x0351, 0x03e9,
+ 0x0340, 0xffc6, 0xfac5, 0xf74f, 0xf599, 0xf51f,
+ 0xf615, 0xf7df, 0xf977, 0xfa69, 0xfbbd, 0xfddd,
+ 0xfeb5, 0xfe26, 0xfe39, 0xfe7b, 0xfe45, 0xfdea,
+ 0xfc81, 0xfad2, 0xfa98, 0xfac6, 0xfb09, 0xfcc7,
+ 0xff44, 0x0131, 0x0236, 0x0179, 0xff67, 0xfe58,
+ 0xff88, 0x01f2, 0x03d5, 0x041e, 0x0333, 0x028b,
+ 0x0369, 0x05ad, 0x07e3, 0x08ec, 0x0902, 0x089e,
+ 0x07aa, 0x0640, 0x0520, 0x04d4, 0x04f4, 0x04ec,
+ 0x0560, 0x0729, 0x094d, 0x0a35, 0x09cf, 0x08e5,
+ 0x0801, 0x0719, 0x05e2, 0x04bd, 0x0467, 0x057a,
+ 0x0865, 0x0bce, 0x0d06, 0x0b78, 0x0883, 0x0549,
+ 0x029b, 0x00c0, 0xffd8, 0x003e, 0x0113, 0x0108,
+ 0x00dd, 0x0202, 0x03ea, 0x050a, 0x05b9, 0x0756,
+ 0x0943, 0x0add, 0x0d66, 0x1033, 0x10f9, 0x1032,
+ 0x0f8d, 0x0f33, 0x0e9a, 0x0d69, 0x0c90, 0x0d2b,
+ 0x0dd3, 0x0d35, 0x0cc2, 0x0d9b, 0x0f16, 0x109c,
+ 0x11b0, 0x11e5, 0x1235, 0x13da, 0x1600, 0x1751,
+ 0x1806, 0x1834, 0x177b, 0x1689, 0x1582, 0x13ad,
+ 0x11d7, 0x1102, 0x10bb, 0x1111, 0x129b, 0x1459,
+ 0x148b, 0x1363, 0x1270, 0x11f4, 0x11a9, 0x11df,
+ 0x113e, 0x0e5a, 0x0ae5, 0x0872, 0x06b0, 0x05e5,
+ 0x05f2, 0x059b, 0x048e, 0x031e, 0x01e7, 0x01c1,
+ 0x0243, 0x028a, 0x02a5, 0x02ce, 0x0365, 0x0457,
+ 0x049a, 0x042a, 0x03fc, 0x03fc, 0x03fa, 0x04c4,
+ 0x0695, 0x0834, 0x088b, 0x0829, 0x07da, 0x071a,
+ 0x05cb, 0x050e, 0x0541, 0x05aa, 0x060f, 0x06f0,
+ 0x082d, 0x0888, 0x078d, 0x0668, 0x0578, 0x03ac,
+ 0x0158, 0x008a, 0x01a3, 0x02aa, 0x02dd, 0x0380,
+ 0x04dd, 0x0619, 0x073a, 0x0868, 0x08a5, 0x072a,
+ 0x04fa, 0x03ae, 0x032f, 0x02c3, 0x02eb, 0x03e3,
+ 0x04e3, 0x05f3, 0x079f, 0x0967, 0x0a59, 0x0a1b,
+ 0x08c5, 0x06c9, 0x055e, 0x0546, 0x0524, 0x03c0,
+ 0x01fd, 0x0060, 0xfecc, 0xfe54, 0xff69, 0x00d3,
+ 0x01ae, 0x0210, 0x0281, 0x02c1, 0x0218, 0x01ad,
+ 0x0289, 0x036d, 0x0488, 0x072c, 0x09d2, 0x0af1,
+ 0x0b16, 0x09af, 0x0601, 0x01b4, 0xff1a, 0xfee6,
+ 0xff6c, 0xff17, 0xff13, 0xff9e, 0xfef1, 0xfe14,
+ 0xfeb6, 0xff3b, 0xfee2, 0xfee6, 0xff64, 0x0086,
+ 0x0211, 0x023d, 0x011d, 0x0060, 0x0049, 0x0116,
+ 0x0308, 0x0471, 0x03fc, 0x028a, 0x0122, 0xffd7,
+ 0xfeb0, 0xfd8d, 0xfbb4, 0xf929, 0xf742, 0xf6e5,
+ 0xf803, 0xf9f3, 0xfb0f, 0xfa94, 0xf9d8, 0xf9bd,
+ 0xf9ac, 0xf935, 0xf890, 0xf7c6, 0xf608, 0xf352,
+ 0xf17f, 0xf11d, 0xf0e2, 0xf0db, 0xf15a, 0xf17b,
+ 0xf169, 0xf1e6, 0xf24d, 0xf1ee, 0xf174, 0xf194,
+ 0xf188, 0xf074, 0xef6b, 0xef70, 0xefc1, 0xf071,
+ 0xf29a, 0xf558, 0xf69f, 0xf626, 0xf4e8, 0xf365,
+ 0xf1b7, 0xefe6, 0xedbc, 0xeb8a, 0xea01, 0xe90f,
+ 0xe8dd, 0xea15, 0xebbd, 0xec70, 0xeccf, 0xed9b,
+ 0xeeb2, 0xf08c, 0xf30d, 0xf4b2, 0xf4e8, 0xf4a2,
+ 0xf4cf, 0xf5fe, 0xf81b, 0xfa58, 0xfc47, 0xfe19,
+ 0x003a, 0x02db, 0x04ae, 0x0461, 0x033e, 0x029f,
+ 0x01f9, 0x019a, 0x0257, 0x0331, 0x0338, 0x034d,
+ 0x048a, 0x0669, 0x07b5, 0x0865, 0x07fa, 0x0557,
+ 0x0269, 0x0181, 0x0182, 0x0213, 0x0475, 0x07cf,
+ 0x0ae4, 0x0d91, 0x0f95, 0x10fd, 0x11bb, 0x116f,
+ 0x100c, 0x0d39, 0x09db, 0x087a, 0x09ac, 0x0c35,
+ 0x0f41, 0x11ee, 0x1396, 0x1410, 0x1310, 0x1110,
+ 0x0f0c, 0x0dab, 0x0d1a, 0x0c43, 0x0a6c, 0x0919,
+ 0x094e, 0x09ef, 0x09fc, 0x093d, 0x07ac, 0x05f7,
+ 0x050b, 0x049c, 0x03c4, 0x030a, 0x033f, 0x0385,
+ 0x031c, 0x02c5, 0x033c, 0x043e, 0x04de, 0x0496,
+ 0x03a3, 0x0218, 0x008a, 0x0042, 0x00ed, 0x012c,
+ 0x00c2, 0xffef, 0xfef8, 0xfe55, 0xfdf9, 0xfddd,
+ 0xfe38, 0xfec9, 0xff70, 0x003d, 0x00fb, 0x013f,
+ 0x004b, 0xfe4d, 0xfccd, 0xfc2b, 0xfbf5, 0xfd2f,
+ 0x0042, 0x039a, 0x05a6, 0x056e, 0x02ba, 0xfebe,
+ 0xfadc, 0xf7f7, 0xf6c0, 0xf71e, 0xf8a2, 0xfb53,
+ 0xfebc, 0x01c8, 0x03f4, 0x0532, 0x0536, 0x03d9,
+ 0x0217, 0x0151, 0x019a, 0x0296, 0x04a7, 0x0722,
+ 0x0851, 0x0821, 0x0761, 0x05e9, 0x0427, 0x0316,
+ 0x01e3, 0xff96, 0xfdc1, 0xfdc2, 0xfe9a, 0xffc1,
+ 0x018b, 0x0323, 0x03e2, 0x03c3, 0x0200, 0xfeeb,
+ 0xfcc4, 0xfc57, 0xfc09, 0xfabf, 0xf964, 0xf968,
+ 0xfaca, 0xfc3c, 0xfc92, 0xfbac, 0xfa20, 0xf7c7,
+ 0xf4aa, 0xf2c4, 0xf35c, 0xf506, 0xf660, 0xf76c,
+ 0xf8db, 0xfb24, 0xfd11, 0xfd5f, 0xfc7d, 0xfaaf,
+ 0xf841, 0xf68a, 0xf5ff, 0xf637, 0xf727, 0xf86b,
+ 0xf9aa, 0xfaee, 0xfc3a, 0xfd9a, 0xfe5e, 0xfe21,
+ 0xfe7b, 0x0043, 0x0253, 0x0448, 0x05c6, 0x0584,
+ 0x03f2, 0x02ae, 0x01cf, 0x0080, 0xfe8a, 0xfc4e,
+ 0xfa7c, 0xf9d8, 0xfafa, 0xfd50, 0xff0f, 0xff40,
+ 0xfe70, 0xfd84, 0xfd69, 0xfe30, 0xfec5, 0xff55,
+ 0x00a8, 0x01a2, 0x0180, 0x00db, 0xff33, 0xfc65,
+ 0xf9ee, 0xf877, 0xf7f8, 0xf865, 0xf8d7, 0xf918,
+ 0xfa27, 0xfc3c, 0xfeab, 0x0071, 0x00b3, 0xfff5,
+ 0xff3f, 0xfe86, 0xfdcf, 0xfe61, 0x00d3, 0x03ef,
+ 0x06ba, 0x08be, 0x08ea, 0x074d, 0x04bf, 0x0126,
+ 0xfd6e, 0xfb2b, 0xfa61, 0xfb3c, 0xfdc9, 0x0069,
+ 0x0269, 0x0482, 0x06f2, 0x0902, 0x0914, 0x0737,
+ 0x0557, 0x03af, 0x0213, 0x0173, 0x01a8, 0x0289,
+ 0x03f3, 0x045f, 0x0388, 0x0238, 0x00b4, 0x0011,
+ 0x003c, 0xff67, 0xfdaa, 0xfc23, 0xfb0e, 0xfac3,
+ 0xfb28, 0xfbcb, 0xfcd6, 0xfe4e, 0xffb6, 0x0081,
+ 0x00ec, 0x017b, 0x01f3, 0x02cf, 0x04d9, 0x06fa,
+ 0x084a, 0x08c2, 0x0818, 0x07d7, 0x097b, 0x0b06,
+ 0x0a7c, 0x0866, 0x0689, 0x06b5, 0x089e, 0x0a49,
+ 0x0b11, 0x0bbc, 0x0d49, 0x1005, 0x1311, 0x15e5,
+ 0x18a8, 0x1ac3, 0x1b23, 0x19d6, 0x182e, 0x166e,
+ 0x13ef, 0x11be, 0x108e, 0x0f8a, 0x0fb0, 0x11b1,
+ 0x135e, 0x13a8, 0x137f, 0x1395, 0x1445, 0x147c,
+ 0x1299, 0x0f1d, 0x0bf1, 0x0a98, 0x0b14, 0x0c0f,
+ 0x0caf, 0x0c5f, 0x0ae2, 0x098f, 0x08d1, 0x078c,
+ 0x0664, 0x0669, 0x06dd, 0x0776, 0x08dc, 0x0ab6,
+ 0x0be8, 0x0b5d, 0x0871, 0x041b, 0x001a, 0xfcdf,
+ 0xfae8, 0xfb8f, 0xfe46, 0x014c, 0x03e1, 0x0501,
+ 0x042f, 0x02c4, 0x01a1, 0x00ae, 0xffdb, 0xff81,
+ 0x013f, 0x054f, 0x08f9, 0x0af3, 0x0c61, 0x0e1d,
+ 0x0ff9, 0x103f, 0x0ddd, 0x0aa5, 0x07b9, 0x0443,
+ 0x00f2, 0xffa0, 0x00c8, 0x03d4, 0x07b6, 0x0ab5,
+ 0x0b6f, 0x0a47, 0x0800, 0x0485, 0x007d, 0xfd03,
+ 0xfabf, 0xfa3e, 0xfa62, 0xf9fa, 0xfac7, 0xfdc4,
+ 0x00f0, 0x0277, 0x0193, 0xff05, 0xfcce, 0xfbf2,
+ 0xfc9d, 0xfe55, 0xfff8, 0x0144, 0x01e0, 0x0164,
+ 0x012c, 0x0203, 0x0388, 0x0563, 0x05fa, 0x04d9,
+ 0x03dd, 0x02c9, 0x000f, 0xfc63, 0xf961, 0xf7e6,
+ 0xf804, 0xfa0a, 0xfe2c, 0x0297, 0x05b5, 0x0801,
+ 0x0944, 0x0887, 0x05d3, 0x0241, 0xffba, 0xfe94,
+ 0xfdfd, 0xfedf, 0x0167, 0x0402, 0x0648, 0x0839,
+ 0x09ec, 0x0baa, 0x0bf3, 0x09d4, 0x06de, 0x044f,
+ 0x02c0, 0x02fe, 0x04b3, 0x067a, 0x071b, 0x067d,
+ 0x052e, 0x038c, 0x0289, 0x0294, 0x0276, 0x01d9,
+ 0x01a2, 0x0268, 0x0482, 0x0745, 0x0942, 0x09b8,
+ 0x08c4, 0x0799, 0x06b7, 0x04e1, 0x0241, 0x0004,
+ 0xfe4d, 0xfdf3, 0xff0d, 0xffbe, 0xff97, 0xff45,
+ 0xfede, 0xfe71, 0xfda9, 0xfce8, 0xfd4b, 0xfde4,
+ 0xfd9d, 0xfd44, 0xfccc, 0xfb82, 0xfa28, 0xf93a,
+ 0xf77b, 0xf439, 0xf130, 0xf047, 0xf0e9, 0xf177,
+ 0xf1a8, 0xf256, 0xf3b1, 0xf4c8, 0xf573, 0xf659,
+ 0xf70e, 0xf70b, 0xf635, 0xf444, 0xf1e2, 0xefa6,
+ 0xed26, 0xeb2e, 0xead7, 0xeb97, 0xecf3, 0xeea7,
+ 0xf05e, 0xf240, 0xf3a6, 0xf3d5, 0xf3b0, 0xf3b3,
+ 0xf32f, 0xf23a, 0xf120, 0xefb9, 0xee96, 0xee8b,
+ 0xef72, 0xf0bf, 0xf25a, 0xf47e, 0xf78d, 0xfb4a,
+ 0xfe9e, 0x00ef, 0x0201, 0x0194, 0x0055, 0xfe7a,
+ 0xfb4e, 0xf7ec, 0xf620, 0xf60a, 0xf71a, 0xf817,
+ 0xf804, 0xf7fc, 0xf8f7, 0xfa78, 0xfc31, 0xfe11,
+ 0x002b, 0x0268, 0x03ef, 0x044f, 0x0353, 0x00d5,
+ 0xfe0f, 0xfbec, 0xf9fb, 0xf8ce, 0xf9e5, 0xfd7f,
+ 0x0200, 0x056b, 0x07c4, 0x0a09, 0x0bc2, 0x0c1c,
+ 0x0b3f, 0x0a0a, 0x093a, 0x084c, 0x0729, 0x0725,
+ 0x0867, 0x09f7, 0x0b8c, 0x0cf2, 0x0dd9, 0x0e1c,
+ 0x0db4, 0x0cc1, 0x0af6, 0x08b8, 0x077a, 0x0746,
+ 0x075d, 0x07cf, 0x0852, 0x08d3, 0x094f, 0x08b5,
+ 0x0723, 0x05dd, 0x04ca, 0x03bd, 0x0378, 0x0444,
+ 0x057f, 0x064f, 0x06ca, 0x06d0, 0x0545, 0x0301,
+ 0x01d2, 0x00ed, 0xff68, 0xfe33, 0xfe18, 0xff31,
+ 0x0076, 0x00b8, 0x0072, 0xffe2, 0xfea6, 0xfdcc,
+ 0xfd99, 0xfce6, 0xfc09, 0xfbfc, 0xfc57, 0xfc35,
+ 0xfb74, 0xfabc, 0xfa6c, 0xfa41, 0xfa72, 0xfb53,
+ 0xfcbe, 0xfe73, 0xff8f, 0xff5d, 0xfea6, 0xfde3,
+ 0xfc8f, 0xfb23, 0xfab1, 0xfb76, 0xfd2a, 0xff25,
+ 0x00b6, 0x0206, 0x0310, 0x031e, 0x026c, 0x0188,
+ 0xffdc, 0xfd8e, 0xfc47, 0xfcc6, 0xfea5, 0x015d,
+ 0x0419, 0x067c, 0x08c9, 0x0a67, 0x0a56, 0x0853,
+ 0x04e3, 0x01b4, 0x0057, 0x0061, 0x00bd, 0x0149,
+ 0x0287, 0x04ca, 0x06ed, 0x078e, 0x0737, 0x063d,
+ 0x03c1, 0x00bd, 0xfebb, 0xfd2b, 0xfbee, 0xfc16,
+ 0xfd4e, 0xfe34, 0xfe66, 0xfe86, 0xfe6a, 0xfd20,
+ 0xfb51, 0xfa60, 0xf9eb, 0xf977, 0xf963, 0xf95c,
+ 0xf942, 0xf98e, 0xfa02, 0xfa3d, 0xfa16, 0xf9b4,
+ 0xf9ef, 0xfb0c, 0xfc7a, 0xfdb7, 0xfde3, 0xfcd3,
+ 0xfbaf, 0xfad5, 0xfa47, 0xfa99, 0xfb0b, 0xfa89,
+ 0xf9fc, 0xfa7a, 0xfb82, 0xfc65, 0xfd8f, 0xff5a,
+ 0x00ae, 0x00af, 0x0044, 0x003d, 0x00af, 0x0206,
+ 0x0437, 0x0634, 0x06fb, 0x0624, 0x045e, 0x032f,
+ 0x031f, 0x033d, 0x02ab, 0x018c, 0x0088, 0xffed,
+ 0xffb3, 0x000e, 0x010c, 0x0217, 0x02bf, 0x0338,
+ 0x0362, 0x0290, 0x00d6, 0xff10, 0xfdd0, 0xfd4f,
+ 0xfd63, 0xfd94, 0xfe10, 0xfef7, 0xff74, 0xffaa,
+ 0x00be, 0x0246, 0x033c, 0x03cb, 0x03ca, 0x02ef,
+ 0x0225, 0x01b4, 0x00d0, 0xff94, 0xfe4b, 0xfcd1,
+ 0xfbdd, 0xfbe6, 0xfc0f, 0xfc81, 0xfe6c, 0x0117,
+ 0x02ce, 0x0307, 0x0198, 0xff52, 0xfe6e, 0xff17,
+ 0xff61, 0xff0d, 0xfecf, 0xfe9e, 0xfeb6, 0xff2a,
+ 0xffbe, 0x00bb, 0x01bd, 0x01b9, 0x00cb, 0xff99,
+ 0xfe93, 0xfe3a, 0xfebf, 0xffe0, 0x011b, 0x0217,
+ 0x02b3, 0x02b1, 0x028f, 0x0311, 0x037b, 0x0308,
+ 0x01f0, 0x0051, 0xff67, 0x009a, 0x0315, 0x0633,
+ 0x0a03, 0x0c98, 0x0c78, 0x0a9f, 0x082d, 0x05e3,
+ 0x0489, 0x043f, 0x0495, 0x0569, 0x072d, 0x09b6,
+ 0x0c59, 0x0fa5, 0x138e, 0x161a, 0x16b7, 0x1667,
+ 0x1594, 0x148a, 0x1330, 0x1178, 0x109e, 0x10f7,
+ 0x1149, 0x116d, 0x1224, 0x1352, 0x1422, 0x142a,
+ 0x139e, 0x125a, 0x1099, 0x0f5a, 0x0e62, 0x0d36,
+ 0x0ce2, 0x0df1, 0x0faf, 0x1108, 0x1119, 0x10b7,
+ 0x10ad, 0x100c, 0x0f31, 0x0f0d, 0x0eac, 0x0df4,
+ 0x0dcc, 0x0dc6, 0x0d5b, 0x0cad, 0x0c57, 0x0d08,
+ 0x0dff, 0x0eb7, 0x0fcc, 0x1027, 0x0ea9, 0x0c5d,
+ 0x09b2, 0x06df, 0x0562, 0x057e, 0x062c, 0x06b0,
+ 0x067c, 0x061f, 0x06bb, 0x07c2, 0x07bd, 0x064d,
+ 0x04bb, 0x0495, 0x0548, 0x0596, 0x0615, 0x0729,
+ 0x0805, 0x08c7, 0x0a1d, 0x0bbe, 0x0cb2, 0x0c8b,
+ 0x0bb9, 0x0a48, 0x089f, 0x087c, 0x099c, 0x09a1,
+ 0x087f, 0x0762, 0x0651, 0x05a7, 0x055a, 0x04f1,
+ 0x04ed, 0x04a8, 0x02f0, 0x00aa, 0xfee0, 0xfded,
+ 0xfe5e, 0xff55, 0xffdf, 0x009f, 0x0167, 0x012f,
+ 0x0073, 0x009c, 0x020d, 0x03c9, 0x0526, 0x063c,
+ 0x0671, 0x0593, 0x049b, 0x03f4, 0x03f7, 0x04b1,
+ 0x04a1, 0x038f, 0x0317, 0x034f, 0x038a, 0x03d0,
+ 0x0398, 0x025a, 0x005c, 0xfe5d, 0xfd99, 0xfe87,
+ 0xfff9, 0x00e9, 0x01a5, 0x02bf, 0x03f0, 0x0487,
+ 0x0469, 0x03c6, 0x02af, 0x0142, 0xff87, 0xfd9c,
+ 0xfc05, 0xfb59, 0xfc03, 0xfde0, 0x006f, 0x035c,
+ 0x05c7, 0x06d8, 0x06de, 0x0590, 0x02a8, 0x0073,
+ 0x008a, 0x00df, 0xffc8, 0xfe1d, 0xfc96, 0xfb46,
+ 0xfaed, 0xfc78, 0xff4e, 0x015c, 0x01a7, 0x0147,
+ 0x00f4, 0x0046, 0xff82, 0xff3e, 0xff25, 0xfef3,
+ 0xff1c, 0xffde, 0x00c3, 0x011e, 0x0136, 0x0242,
+ 0x03e6, 0x0420, 0x0295, 0x0063, 0xfdd7, 0xfb6a,
+ 0xfa31, 0xfa82, 0xfc4a, 0xfee3, 0x00da, 0x01cf,
+ 0x0262, 0x0258, 0x0112, 0xfe78, 0xfb14, 0xf7eb,
+ 0xf55a, 0xf325, 0xf176, 0xf052, 0xf001, 0xf1b1,
+ 0xf509, 0xf789, 0xf7e8, 0xf717, 0xf5fc, 0xf47b,
+ 0xf249, 0xef82, 0xecc4, 0xeb53, 0xebe4, 0xed0e,
+ 0xed39, 0xeceb, 0xecb9, 0xec21, 0xeb93, 0xebd4,
+ 0xec40, 0xec2d, 0xec1c, 0xecb6, 0xede7, 0xee90,
+ 0xedc5, 0xecd9, 0xedec, 0xf091, 0xf2c9, 0xf42a,
+ 0xf548, 0xf60f, 0xf687, 0xf735, 0xf8be, 0xfb66,
+ 0xfdfb, 0xff10, 0xff5c, 0x0017, 0x011e, 0x0219,
+ 0x0285, 0x01a1, 0xffd3, 0xfe47, 0xfda7, 0xfdd2,
+ 0xfdea, 0xfdf7, 0xff6d, 0x022f, 0x0496, 0x06bc,
+ 0x0977, 0x0b96, 0x0bb1, 0x0a6a, 0x08fe, 0x07e1,
+ 0x0749, 0x0752, 0x0817, 0x0a19, 0x0d1a, 0x0f98,
+ 0x1135, 0x1308, 0x1499, 0x13f2, 0x10e6, 0x0d83,
+ 0x0b2e, 0x097f, 0x0857, 0x0866, 0x0929, 0x09bd,
+ 0x0a81, 0x0b64, 0x0b45, 0x09f9, 0x07f0, 0x0502,
+ 0x0147, 0xfdc7, 0xfbb2, 0xfb10, 0xfb16, 0xfb9c,
+ 0xfc9d, 0xfd51, 0xfd5b, 0xfcd5, 0xfbdf, 0xfb77,
+ 0xfc4d, 0xfd7d, 0xfe3b, 0xfe72, 0xfe05, 0xfd91,
+ 0xfe0b, 0xff56, 0x007f, 0x009c, 0xff70, 0xfdbb,
+ 0xfca9, 0xfd30, 0xff19, 0x00b3, 0x0105, 0x00e6,
+ 0x0155, 0x0271, 0x0366, 0x0306, 0x0181, 0xffe2,
+ 0xfe58, 0xfd42, 0xfd60, 0xfe03, 0xfdf4, 0xfd43,
+ 0xfc90, 0xfc57, 0xfcfc, 0xfe96, 0x00c8, 0x02c4,
+ 0x0419, 0x057c, 0x075a, 0x08b3, 0x08cc, 0x0819,
+ 0x06fc, 0x0556, 0x02fb, 0x0014, 0xfd8c, 0xfc56,
+ 0xfc86, 0xfdb8, 0xff17, 0xff8e, 0xff44, 0xff53,
+ 0xffca, 0xfff6, 0xffef, 0x005d, 0x0156, 0x0202,
+ 0x01f0, 0x01cb, 0x017b, 0xfff5, 0xfdc5, 0xfcbf,
+ 0xfd4a, 0xfe86, 0xffe1, 0x0138, 0x0267, 0x02d1,
+ 0x0191, 0xfee0, 0xfc91, 0xfbea, 0xfbd4, 0xfafb,
+ 0xf9df, 0xf914, 0xf884, 0xf8cd, 0xfa52, 0xfc92,
+ 0xff38, 0x017c, 0x0276, 0x02b6, 0x02b1, 0x01e8,
+ 0x0109, 0x010e, 0x014e, 0x011c, 0x011a, 0x01c9,
+ 0x025f, 0x0210, 0x0134, 0xffeb, 0xfe47, 0xfd78,
+ 0xfd50, 0xfc50, 0xfb8c, 0xfc8e, 0xfe3d, 0xffa1,
+ 0x003f, 0xff18, 0xfd11, 0xfbfd, 0xfbec, 0xfca8,
+ 0xfddd, 0xfe82, 0xfede, 0xffc0, 0x0049, 0xffa3,
+ 0xfe78, 0xfde1, 0xfe47, 0xff03, 0xff46, 0xff74,
+ 0x0017, 0x006c, 0xffda, 0xff7c, 0x0020, 0x00d1,
+ 0x0132, 0x0208, 0x0339, 0x0484, 0x061c, 0x0764,
+ 0x079c, 0x0684, 0x03de, 0x00a4, 0xfe33, 0xfc14,
+ 0xfa17, 0xf95d, 0xf9b0, 0xf9f9, 0xfa29, 0xfa9d,
+ 0xfc14, 0xfef9, 0x01c8, 0x033d, 0x03e9, 0x03b1,
+ 0x022e, 0x00cf, 0x0035, 0xff40, 0xfe90, 0xff89,
+ 0x0105, 0x0192, 0x017d, 0x011f, 0x00e1, 0x01a0,
+ 0x02d4, 0x030a, 0x0230, 0x0176, 0x01d7, 0x0314,
+ 0x03ed, 0x03d1, 0x02e9, 0x0130, 0xff45, 0xfe1c,
+ 0xfdc6, 0xfe1b, 0xfec3, 0xfe81, 0xfd55, 0xfd36,
+ 0xfe9f, 0xffbc, 0xff8b, 0xfef7, 0xfeda, 0xff0b,
+ 0xff44, 0xff2a, 0xfe19, 0xfc7f, 0xfc19, 0xfdab,
+ 0x0000, 0x01bf, 0x031e, 0x04ec, 0x065f, 0x0645,
+ 0x058d, 0x0566, 0x0554, 0x04ed, 0x0466, 0x03e1,
+ 0x03ce, 0x03f2, 0x0387, 0x02a9, 0x018a, 0x006f,
+ 0x009a, 0x024d, 0x0464, 0x068d, 0x08e8, 0x0af4,
+ 0x0c0e, 0x0c30, 0x0ca8, 0x0e48, 0x0fae, 0x1011,
+ 0x1047, 0x1010, 0x0e83, 0x0c1f, 0x0a4b, 0x09f2,
+ 0x0adf, 0x0cb8, 0x0f63, 0x119e, 0x121b, 0x1174,
+ 0x10b3, 0x1055, 0x1046, 0x0f82, 0x0dc5, 0x0c13,
+ 0x0ade, 0x0aa5, 0x0be6, 0x0d36, 0x0ccb, 0x0ae0,
+ 0x08fb, 0x07f4, 0x0720, 0x0616, 0x05ca, 0x06dd,
+ 0x090f, 0x0b58, 0x0c25, 0x0bde, 0x0c1d, 0x0c89,
+ 0x0cc6, 0x0d62, 0x0d71, 0x0c24, 0x09e8, 0x0729,
+ 0x054f, 0x05a7, 0x074b, 0x096f, 0x0bf0, 0x0db3,
+ 0x0e29, 0x0dcc, 0x0c73, 0x0a01, 0x077c, 0x0631,
+ 0x0647, 0x06af, 0x0688, 0x05c2, 0x051c, 0x0599,
+ 0x06a5, 0x06ad, 0x0637, 0x06fd, 0x08de, 0x0a61,
+ 0x0aa3, 0x0a30, 0x0a2b, 0x0a8a, 0x0a7d, 0x0a32,
+ 0x0a44, 0x0a3e, 0x0936, 0x073f, 0x0564, 0x0452,
+ 0x03ff, 0x0418, 0x03f4, 0x031f, 0x0217, 0x01d2,
+ 0x02c5, 0x0430, 0x050f, 0x0589, 0x059b, 0x048d,
+ 0x030e, 0x024b, 0x01ee, 0x01e7, 0x02ac, 0x0339,
+ 0x02b6, 0x026b, 0x0371, 0x04e1, 0x0566, 0x04df,
+ 0x0402, 0x0361, 0x032b, 0x0309, 0x0272, 0x0214,
+ 0x034a, 0x058d, 0x06d6, 0x0664, 0x04e2, 0x0347,
+ 0x02ac, 0x0319, 0x034d, 0x033b, 0x041e, 0x05dc,
+ 0x0731, 0x07bb, 0x0825, 0x08b3, 0x08b6, 0x07e7,
+ 0x0702, 0x0645, 0x0599, 0x055d, 0x054f, 0x04c3,
+ 0x03d1, 0x02e2, 0x0294, 0x030f, 0x0343, 0x0300,
+ 0x0345, 0x03cd, 0x0415, 0x04c3, 0x0612, 0x0776,
+ 0x0817, 0x0753, 0x05d0, 0x04af, 0x0447, 0x048c,
+ 0x04ce, 0x0409, 0x02a9, 0x0225, 0x02cd, 0x032b,
+ 0x021e, 0x00f4, 0x014b, 0x0240, 0x0246, 0x0164,
+ 0x0032, 0xfea4, 0xfce1, 0xfc25, 0xfc84, 0xfbe7,
+ 0xf9fd, 0xf8c0, 0xf81e, 0xf6c4, 0xf4f9, 0xf39d,
+ 0xf34f, 0xf3b7, 0xf374, 0xf25b, 0xf13d, 0xf02a,
+ 0xef57, 0xeed7, 0xee2d, 0xed7f, 0xecbe, 0xeb43,
+ 0xe963, 0xe826, 0xe85d, 0xe9ae, 0xea73, 0xea4a,
+ 0xea4f, 0xead1, 0xec23, 0xee62, 0xf055, 0xf1a3,
+ 0xf283, 0xf20e, 0xf0ed, 0xf0d9, 0xf11d, 0xf075,
+ 0xef82, 0xef5a, 0xf055, 0xf1d6, 0xf2cc, 0xf2de,
+ 0xf248, 0xf1b2, 0xf1fb, 0xf327, 0xf4e7, 0xf718,
+ 0xf8bc, 0xf929, 0xf965, 0xfa33, 0xfb0e, 0xfb8c,
+ 0xfbb2, 0xfbbb, 0xfc28, 0xfce7, 0xfd07, 0xfc59,
+ 0xfc57, 0xfe35, 0x010f, 0x032c, 0x03b3, 0x030a,
+ 0x0254, 0x01fc, 0x01b5, 0x0253, 0x0464, 0x0606,
+ 0x0601, 0x05a2, 0x05d9, 0x06ab, 0x085e, 0x0a61,
+ 0x0b1a, 0x09bc, 0x0738, 0x0553, 0x04da, 0x056c,
+ 0x0603, 0x0579, 0x0467, 0x041d, 0x03b7, 0x0298,
+ 0x0271, 0x03f7, 0x0640, 0x082b, 0x08b1, 0x0845,
+ 0x07da, 0x0791, 0x0850, 0x0a0f, 0x0abe, 0x0a0e,
+ 0x0871, 0x04cb, 0xffff, 0xfd0b, 0xfcf1, 0xfe45,
+ 0xff74, 0x006b, 0x0165, 0x01ca, 0x0299, 0x04ee,
+ 0x06c1, 0x06bf, 0x0634, 0x056e, 0x0413, 0x0270,
+ 0x00a6, 0xff0c, 0xfd8f, 0xfbd5, 0xfad7, 0xfb5e,
+ 0xfcd8, 0xfe75, 0xff84, 0x008e, 0x0270, 0x0393,
+ 0x025c, 0xff4d, 0xfb22, 0xf706, 0xf469, 0xf3a4,
+ 0xf4be, 0xf703, 0xf8e3, 0xfa1b, 0xfb2a, 0xfc67,
+ 0xfe6f, 0x0131, 0x03e6, 0x0588, 0x0577, 0x0502,
+ 0x04fb, 0x0434, 0x0335, 0x0313, 0x02db, 0x0292,
+ 0x0281, 0x01ae, 0x005d, 0xff38, 0xff13, 0x0182,
+ 0x0509, 0x0729, 0x08e1, 0x0a9f, 0x0ba1, 0x0d0d,
+ 0x0e92, 0x0e16, 0x0bad, 0x0894, 0x0579, 0x028f,
+ 0xffa3, 0xfd08, 0xfb46, 0xfa42, 0xfa06, 0xfaae,
+ 0xfc4f, 0xfed9, 0x013e, 0x029d, 0x036f, 0x043c,
+ 0x049c, 0x03de, 0x021c, 0xffa2, 0xfc19, 0xf8a1,
+ 0xf748, 0xf7a6, 0xf8a5, 0xfaa0, 0xfcc1, 0xfdae,
+ 0xfddf, 0xfde4, 0xfd66, 0xfc85, 0xfbcc, 0xfb12,
+ 0xf999, 0xf824, 0xf849, 0xf96e, 0xfa46, 0xfb19,
+ 0xfbbf, 0xfbaf, 0xfbca, 0xfcba, 0xfdca, 0xfe15,
+ 0xfdd3, 0xfe67, 0x0001, 0x00fb, 0x00d1, 0x002d,
+ 0xff28, 0xfea8, 0x0012, 0x02e6, 0x05af, 0x0763,
+ 0x0725, 0x0553, 0x03c8, 0x038b, 0x03f3, 0x0410,
+ 0x0376, 0x0230, 0x010b, 0x00ea, 0x0151, 0x0163,
+ 0x017c, 0x01f2, 0x025a, 0x027b, 0x0229, 0x0124,
+ 0xff80, 0xfdec, 0xfdb5, 0xfed6, 0xffef, 0x00ed,
+ 0x01dc, 0x01e6, 0x01be, 0x0247, 0x031d, 0x0458,
+ 0x056b, 0x0534, 0x044b, 0x039d, 0x0395, 0x042a,
+ 0x0409, 0x02c4, 0x0121, 0xff84, 0xff27, 0x0005,
+ 0xffae, 0xfe29, 0xfd30, 0xfc8b, 0xfc4c, 0xfd1d,
+ 0xfe61, 0xff63, 0x005f, 0x01fe, 0x03d6, 0x04ab,
+ 0x04a4, 0x03d5, 0x0139, 0xfd63, 0xf9fb, 0xf7db,
+ 0xf789, 0xf94e, 0xfcb0, 0x0013, 0x0219, 0x0301,
+ 0x02f5, 0x0272, 0x02ce, 0x0355, 0x02e2, 0x01dd,
+ 0x0083, 0x005a, 0x01dd, 0x0224, 0x01e0, 0x039f,
+ 0x0513, 0x0521, 0x0583, 0x0591, 0x04ef, 0x04d7,
+ 0x058a, 0x064d, 0x0630, 0x05d9, 0x062f, 0x05f7,
+ 0x04e2, 0x03dd, 0x032d, 0x032f, 0x02de, 0x0198,
+ 0x00d6, 0x0001, 0xff1d, 0x00b1, 0x03cb, 0x0650,
+ 0x08a7, 0x0afa, 0x0d3d, 0x0e3f, 0x0cfe, 0x0b76,
+ 0x0951, 0x05a5, 0x03b1, 0x03ae, 0x03d8, 0x0543,
+ 0x06a8, 0x0754, 0x097f, 0x0c2a, 0x0e98, 0x1141,
+ 0x1207, 0x118f, 0x11e1, 0x11fc, 0x1243, 0x12c1,
+ 0x11a1, 0x0fc5, 0x0e24, 0x0ceb, 0x0dab, 0x0f71,
+ 0x1052, 0x117e, 0x1373, 0x1518, 0x1649, 0x1731,
+ 0x17cd, 0x185f, 0x1988, 0x1ada, 0x1a83, 0x18a3,
+ 0x1680, 0x133d, 0x0f5f, 0x0d62, 0x0cf6, 0x0cb4,
+ 0x0cf4, 0x0dda, 0x0efb, 0x0fc7, 0x0f6a, 0x0e85,
+ 0x0e40, 0x0dbc, 0x0c3a, 0x0ab3, 0x0959, 0x07c0,
+ 0x06c7, 0x0760, 0x0965, 0x0b86, 0x0c63, 0x0c67,
+ 0x0c22, 0x0b58, 0x0af1, 0x0ae9, 0x09ca, 0x0808,
+ 0x0689, 0x0596, 0x05b3, 0x0560, 0x039d, 0x0212,
+ 0x00a4, 0xfeac, 0xfd32, 0xfc3b, 0xfc1e, 0xfdaa,
+ 0x006d, 0x048a, 0x0908, 0x0c27, 0x0e52, 0x0e69,
+ 0x0b77, 0x0934, 0x092f, 0x08e9, 0x0750, 0x0416,
+ 0x0030, 0xfe26, 0xfe1c, 0xfeb6, 0xfef6, 0xfe56,
+ 0xfde2, 0xfe16, 0xfe37, 0xfe48, 0xfdea, 0xfd04,
+ 0xfbf4, 0xf9b5, 0xf6aa, 0xf4af, 0xf3bb, 0xf3a3,
+ 0xf431, 0xf431, 0xf437, 0xf580, 0xf7d4, 0xfade,
+ 0xfdaf, 0xfeeb, 0xfe1f, 0xfb71, 0xf843, 0xf645,
+ 0xf596, 0xf5af, 0xf5a9, 0xf4ce, 0xf399, 0xf1f0,
+ 0xf024, 0xf02d, 0xf1c5, 0xf2d7, 0xf36d, 0xf45b,
+ 0xf5d2, 0xf7d7, 0xf9bb, 0xfadf, 0xfae6, 0xf973,
+ 0xf7da, 0xf7ae, 0xf866, 0xf9c0, 0xfc17, 0xfe5d,
+ 0x0023, 0x020a, 0x033f, 0x0396, 0x0478, 0x056c,
+ 0x0563, 0x055c, 0x05c3, 0x05bd, 0x053f, 0x04d3,
+ 0x0546, 0x0710, 0x08e8, 0x094b, 0x084e, 0x0700,
+ 0x0700, 0x0959, 0x0c92, 0x0dec, 0x0cbc, 0x0a6e,
+ 0x0810, 0x0666, 0x05ee, 0x058c, 0x04db, 0x0506,
+ 0x0528, 0x03cb, 0x01ed, 0x008e, 0x0005, 0x0029,
+ 0xff96, 0xfe99, 0xfe25, 0xfcb1, 0xfa80, 0xf9ad,
+ 0xf9bc, 0xfa6a, 0xfbdf, 0xfc3b, 0xfbf6, 0xfd50,
+ 0xff30, 0x0035, 0x00b9, 0xff9b, 0xfc09, 0xf833,
+ 0xf637, 0xf587, 0xf54d, 0xf5d7, 0xf616, 0xf515,
+ 0xf4b7, 0xf534, 0xf446, 0xf307, 0xf3aa, 0xf565,
+ 0xf75e, 0xf929, 0xfa20, 0xfa25, 0xf86c, 0xf595,
+ 0xf443, 0xf45e, 0xf52d, 0xf832, 0xfcc7, 0x00c0,
+ 0x0356, 0x0416, 0x03c9, 0x031a, 0x0158, 0xffe0,
+ 0xff8e, 0xfeb5, 0xfe2b, 0xfeff, 0xff23, 0xfe2a,
+ 0xfcfa, 0xfb0d, 0xf8f8, 0xf872, 0xfa3d, 0xfdbe,
+ 0x00f2, 0x0203, 0x0097, 0xfde5, 0xfb76, 0xf913,
+ 0xf693, 0xf566, 0xf5c9, 0xf75d, 0xfa27, 0xfc4f,
+ 0xfc48, 0xfadd, 0xf8f0, 0xf77a, 0xf76d, 0xf82b,
+ 0xf864, 0xf770, 0xf633, 0xf647, 0xf75d, 0xf816,
+ 0xf852, 0xf8b6, 0xf965, 0xf9bb, 0xfa46, 0xfccb,
+ 0x0059, 0x0244, 0x025c, 0x0221, 0x0294, 0x03c3,
+ 0x051a, 0x060c, 0x0611, 0x0592, 0x0559, 0x04f8,
+ 0x0506, 0x06ab, 0x08ee, 0x0aa9, 0x0a6a, 0x076c,
+ 0x04e6, 0x03f7, 0x0245, 0x0139, 0x01ea, 0x02a7,
+ 0x042b, 0x064c, 0x078e, 0x0877, 0x081f, 0x0657,
+ 0x055c, 0x0502, 0x0517, 0x0580, 0x03f8, 0x01c7,
+ 0x0122, 0x00c8, 0x01cc, 0x0479, 0x0606, 0x0811,
+ 0x0bc6, 0x0da6, 0x0da6, 0x0d2e, 0x0ae0, 0x07bc,
+ 0x061b, 0x0620, 0x0753, 0x08aa, 0x0902, 0x07c8,
+ 0x04e3, 0x0316, 0x04de, 0x0787, 0x08d7, 0x09e8,
+ 0x0a37, 0x0937, 0x07cc, 0x0571, 0x032f, 0x02ba,
+ 0x026f, 0x026d, 0x038c, 0x0279, 0xffea, 0xffd3,
+ 0xffd8, 0xfec3, 0xff44, 0xff51, 0xfd88, 0xfbde,
+ 0xf987, 0xf6fe, 0xf627, 0xf60c, 0xf6fa, 0xf955,
+ 0xfb3a, 0xfc12, 0xfb7c, 0xfa0b, 0xf907, 0xf60c,
+ 0xf15a, 0xee96, 0xec1a, 0xe9b3, 0xec16, 0xf2f7,
+ 0xfa2c, 0xfe78, 0xfedb, 0xfd7b, 0xf9ff, 0xf39d,
+ 0xeebe, 0xec8c, 0xeb2a, 0xed32, 0xf320, 0xf986,
+ 0xfe35, 0xff7c, 0xfe51, 0xfda7, 0xfd95, 0xfe60,
+ 0x0161, 0x056b, 0x084c, 0x0909, 0x07a8, 0x0434,
+ 0xffda, 0xfe50, 0x00ff, 0x056c, 0x09c0, 0x0c4b,
+ 0x0c6a, 0x0cbf, 0x0ea4, 0x109c, 0x1148, 0x111a,
+ 0x1185, 0x11b2, 0x11c5, 0x13be, 0x14ef, 0x1407,
+ 0x1387, 0x1127, 0x0db1, 0x0e10, 0x106c, 0x14b0,
+ 0x1bf4, 0x1fc1, 0x1e26, 0x1968, 0x11d8, 0x0d77,
+ 0x0ed9, 0x110b, 0x12bf, 0x11c7, 0x0dba, 0x0c44,
+ 0x0cd7, 0x0dca, 0x0fd7, 0x0d4a, 0x067e, 0x01b7,
+ 0xfd15, 0xf8aa, 0xf5db, 0xef37, 0xe49b, 0xd9a9,
+ 0xce54, 0xc4a2, 0xbe1a, 0xba96, 0xba94, 0xbc12,
+ 0xbfa3, 0xc74c, 0xcff4, 0xd9d5, 0xe75c, 0xf2f8,
+ 0xf71b, 0xf5cf, 0xf346, 0xf06d, 0xeb0d, 0xe37f,
+ 0xdc83, 0xd5d1, 0xcf5b, 0xcbad, 0xcb67, 0xcd05,
+ 0xd03d, 0xd5fc, 0xdcf3, 0xe267, 0xe639, 0xe8fd,
+ 0xeb35, 0xee4a, 0xf15d, 0xf46c, 0xf994, 0xfe9a,
+ 0x01ac, 0x0544, 0x08b6, 0x091c, 0x05fd, 0x017f,
+ 0xff34, 0xff82, 0x013f, 0x04bb, 0x085b, 0x0bde,
+ 0x10c8, 0x155a, 0x1851, 0x18c6, 0x1799, 0x1af2,
+ 0x21d2, 0x2776, 0x301f, 0x391a, 0x3a38, 0x381d,
+ 0x35df, 0x2fd4, 0x2880, 0x2202, 0x1c8a, 0x198a,
+ 0x176f, 0x1691, 0x1656, 0x12ac, 0x0fa9, 0x11a7,
+ 0x14cb, 0x17dd, 0x1abf, 0x1d87, 0x23a2, 0x2a80,
+ 0x2e53, 0x3096, 0x3050, 0x2f29, 0x2ff9, 0x2e69,
+ 0x2bb3, 0x2c2f, 0x2a71, 0x251a, 0x2134, 0x1d44,
+ 0x16f6, 0x0f49, 0x07f9, 0x039a, 0x014d, 0xfff0,
+ 0xffdf, 0xfcab, 0xf651, 0xf3da, 0xf418, 0xf343,
+ 0xf471, 0xf76a, 0xf895, 0xf829, 0xf7a9, 0xf853,
+ 0xfa0a, 0xfbb7, 0xfd96, 0xfe22, 0xfc74, 0xfb0c,
+ 0xf8e2, 0xf56f, 0xf61a, 0xfa50, 0xfc03, 0xfc84,
+ 0xff87, 0x0362, 0x06ed, 0x0bc6, 0x108f, 0x1281,
+ 0x142a, 0x16d3, 0x1560, 0x1179, 0x114c, 0x10d2,
+ 0x0d8d, 0x0d29, 0x0e2e, 0x0cf2, 0x0c7b, 0x0cfa,
+ 0x0ca2, 0x0c37, 0x0aa0, 0x0732, 0x0379, 0x00d0,
+ 0x005f, 0x002e, 0xfe60, 0xfe7d, 0x0076, 0xff8d,
+ 0xfe00, 0x001a, 0x035e, 0x060e, 0x09d9, 0x0d24,
+ 0x0dca, 0x0dec, 0x0f12, 0x1118, 0x15dc, 0x1b99,
+ 0x1c3e, 0x1938, 0x1878, 0x184f, 0x167b, 0x1707,
+ 0x1a37, 0x1b64, 0x1a32, 0x1915, 0x17c0, 0x14e0,
+ 0x1162, 0x0eae, 0x0c0c, 0x0acc, 0x0dde, 0x10c9,
+ 0x0e93, 0x0c23, 0x0c10, 0x0b50, 0x0b7c, 0x0cbf,
+ 0x0c50, 0x0b73, 0x0971, 0x04bc, 0x0007, 0xfce2,
+ 0xfc4e, 0xfc7b, 0xf936, 0xf7b5, 0xfb6a, 0xfd43,
+ 0xfd62, 0xff0a, 0x0035, 0x029e, 0x0526, 0x0546,
+ 0x0648, 0x05e5, 0x02f4, 0x00e6, 0xfc55, 0xf8f8,
+ 0xfbe8, 0xfb3b, 0xf760, 0xf917, 0xfb7c, 0xfc00,
+ 0xfafa, 0xf72b, 0xf6bc, 0xf695, 0xf120, 0xef46,
+ 0xef2c, 0xea9c, 0xea72, 0xed99, 0xeca4, 0xec93,
+ 0xeebd, 0xefd4, 0xf0e3, 0xf274, 0xf455, 0xf48b,
+ 0xf2d0, 0xf2bf, 0xf3b6, 0xf516, 0xf6bc, 0xf5c9,
+ 0xf616, 0xf7cc, 0xf5a2, 0xf84d, 0x0125, 0x01f8,
+ 0xff48, 0x0258, 0x02d0, 0xff34, 0xfe26, 0xfea8,
+ 0xfed9, 0xfdf2, 0xfc6c, 0xfd47, 0xfe7e, 0xfde4,
+ 0xff2b, 0x012d, 0xff2b, 0xfc71, 0xfd62, 0xff3f,
+ 0x0069, 0x01fd, 0x02e2, 0x02de, 0x0183, 0xfe9a,
+ 0xfe20, 0xff0f, 0xfd1f, 0xfc39, 0xfdcf, 0xff2a,
+ 0x02e3, 0x0638, 0x031b, 0xfd0a, 0xf934, 0xf8c8,
+ 0xfa0a, 0xfc06, 0x015e, 0x04ba, 0x019f, 0x01ae,
+ 0x042e, 0x014b, 0x001b, 0x002c, 0xf9b4, 0xf3f9,
+ 0xf325, 0xf25b, 0xf1eb, 0xf298, 0xf4b1, 0xf79b,
+ 0xf8db, 0xfa85, 0xfba7, 0xf94d, 0xf855, 0xf925,
+ 0xf765, 0xf584, 0xf559, 0xf6a3, 0xf939, 0xf938,
+ 0xf6fc, 0xf764, 0xf893, 0xf6b7, 0xf4bf, 0xf448,
+ 0xf036, 0xea07, 0xe959, 0xeb78, 0xed98, 0xf287,
+ 0xf438, 0xf214, 0xf457, 0xf6ee, 0xf63c, 0xf537,
+ 0xf1ad, 0xef0a, 0xefe0, 0xefd0, 0xf2d3, 0xf86c,
+ 0xf925, 0xf799, 0xf57d, 0xf2c9, 0xf212, 0xf18b,
+ 0xf474, 0xfa0a, 0xfa13, 0xfa96, 0xfc30, 0xf820,
+ 0xf9a6, 0xff6e, 0xfdf9, 0xfe16, 0xfe03, 0xf93b,
+ 0xfd04, 0x01b8, 0xfd9d, 0xfe2a, 0xffe3, 0xfa55,
+ 0xf63e, 0xf3f8, 0xf1bb, 0xf1c4, 0xf105, 0xf2f9,
+ 0xf7ec, 0xf980, 0xfbb9, 0xfd09, 0xf8e0, 0xf8dd,
+ 0xfa08, 0xf362, 0xf196, 0xf5ef, 0xf321, 0xf19c,
+ 0xf503, 0xf134, 0xefa5, 0xf6f1, 0xf830, 0xf6f1,
+ 0xfa02, 0xf887, 0xf9f8, 0x000b, 0xfc62, 0xfaac,
+ 0x0155, 0xff8d, 0xfe69, 0x060a, 0x04d6, 0xfd79,
+ 0xfc2c, 0xfe1b, 0x02ec, 0x07c6, 0x09af, 0x0c6f,
+ 0x0c56, 0x0a04, 0x0bc8, 0x0b9b, 0x069b, 0x0227,
+ 0x0071, 0x034a, 0x05fe, 0x04f6, 0x0668, 0x06f2,
+ 0x02e7, 0x02ed, 0x04c3, 0x01f8, 0x0027, 0x018b,
+ 0x041f, 0x063d, 0x034e, 0xfe65, 0xfdce, 0xfdc5,
+ 0xfbdc, 0xfc3b, 0xfe1d, 0xfd9e, 0xfc9a, 0xff07,
+ 0x027e, 0x0203, 0x0015, 0x01cb, 0x040e, 0x0307,
+ 0x0246, 0x01bf, 0xfd34, 0xf8c7, 0xf88d, 0xf954,
+ 0xfaea, 0xfcab, 0xfca6, 0xff95, 0x04db, 0x05f4,
+ 0x0501, 0x047e, 0x02ec, 0x01fc, 0x00ca, 0xfdbd,
+ 0xfcb9, 0xfee7, 0xffbc, 0xfeac, 0x00bc, 0x0329,
+ 0xffe6, 0xfe77, 0x0076, 0xfbe3, 0xf8f1, 0xfe73,
+ 0x009e, 0x0265, 0x0956, 0x0b23, 0x091e, 0x09f8,
+ 0x0a86, 0x09e5, 0x099b, 0x0c3c, 0x0f4d, 0x0d9e,
+ 0x0f8d, 0x13f1, 0x0f78, 0x0ccc, 0x0eea, 0x0bd1,
+ 0x0c53, 0x0e90, 0x0aec, 0x0d6d, 0x1113, 0x0d48,
+ 0x0c30, 0x0959, 0x046c, 0x098b, 0x0fa3, 0x10d7,
+ 0x12b2, 0x0fc1, 0x0b22, 0x0dc5, 0x137d, 0x16e6,
+ 0x1703, 0x15e9, 0x13e7, 0x0fb5, 0x0dbf, 0x0ba5,
+ 0x07f0, 0x09c0, 0x0937, 0x05a6, 0x0ac2, 0x0afa,
+ 0x0390, 0x04a5, 0x051c, 0x03ce, 0x0765, 0x02e6,
+ 0xff61, 0x059e, 0x0566, 0x058f, 0x0a18, 0x0701,
+ 0x0674, 0x0759, 0x02d1, 0x06ae, 0x09c2, 0x0355,
+ 0x0482, 0x0728, 0x0239, 0x010c, 0x0328, 0x057d,
+ 0x06ca, 0x03a6, 0x04cb, 0x0904, 0x0754, 0x0919,
+ 0x10b4, 0x142a, 0x1468, 0x13dd, 0x0f95, 0x0810,
+ 0x0438, 0x04b2, 0xff17, 0xf8ec, 0xfba9, 0xf94e,
+ 0xf2d8, 0xf6fb, 0xf9de, 0xf600, 0xf753, 0xf96c,
+ 0xf6dd, 0xf67d, 0xfb8b, 0xff29, 0xfa50, 0xf6db,
+ 0xf9cf, 0xf823, 0xf939, 0x0169, 0x024c, 0x0406,
+ 0x0bb8, 0x0c7c, 0x0e4a, 0x11ac, 0x0d76, 0x0f94,
+ 0x14a7, 0x0fc8, 0x0e8e, 0x0ff2, 0x09b0, 0x05d4,
+ 0x0680, 0x063f, 0x02e0, 0xfc16, 0xfd72, 0x05e1,
+ 0x07f6, 0x09a8, 0x0bad, 0x0713, 0x0499, 0x0325,
+ 0xff15, 0x010f, 0x01d2, 0xfcc1, 0xfd52, 0xff47,
+ 0xfd5b, 0xfddc, 0xfdd5, 0xfb9a, 0xfc9f, 0xffe2,
+ 0x010b, 0xff8f, 0x01a6, 0x07aa, 0x0793, 0x05cd,
+ 0x09d0, 0x0ada, 0x0b06, 0x0f94, 0x0eb6, 0x0cc1,
+ 0x11fc, 0x1408, 0x1189, 0x10ec, 0x0f6c, 0x0e98,
+ 0x0fac, 0x0fae, 0x1114, 0x1123, 0x0c5f, 0x0929,
+ 0x0878, 0x081d, 0x0a14, 0x09a3, 0x0513, 0x0393,
+ 0x0532, 0x068a, 0x0760, 0x0713, 0x0959, 0x0d9b,
+ 0x0b7f, 0x0759, 0x088c, 0x0735, 0x0284, 0x03c9,
+ 0x06db, 0x068a, 0x0861, 0x0bc8, 0x0d61, 0x10b8,
+ 0x1421, 0x1277, 0x1016, 0x1205, 0x1460, 0x13b1,
+ 0x1227, 0x1181, 0x11db, 0x12a1, 0x1200, 0x11be,
+ 0x13e8, 0x137e, 0x1048, 0x10e7, 0x11e6, 0x0e10,
+ 0x0a03, 0x0794, 0x068f, 0x09e8, 0x0ef0, 0x1078,
+ 0x0db0, 0x0b04, 0x0d65, 0x0e05, 0x08c9, 0x0885,
+ 0x0ba2, 0x09d9, 0x09f4, 0x0ab9, 0x07de, 0x0ac1,
+ 0x0ffd, 0x0f10, 0x0ebd, 0x1114, 0x1292, 0x1078,
+ 0x0a5d, 0x0bbc, 0x11e2, 0x0d70, 0x08dc, 0x09de,
+ 0x04b3, 0x01f1, 0x0357, 0xfd72, 0xfaf6, 0xfdb9,
+ 0xfa4e, 0xf8d1, 0xfb12, 0xf9dd, 0xfaa0, 0xfc80,
+ 0xfa9d, 0xf8da, 0xf9de, 0xfd4b, 0xfd37, 0xf81c,
+ 0xf693, 0xf537, 0xf2b8, 0xf893, 0xfcea, 0xfade,
+ 0xfdda, 0xfccf, 0xf83e, 0x00d9, 0x0690, 0xff4d,
+ 0xffae, 0x04ee, 0x0460, 0x07ae, 0x0c3c, 0x0a5e,
+ 0x0880, 0x08d5, 0x0a07, 0x0af0, 0x0757, 0x04a7,
+ 0x069f, 0x0533, 0x041d, 0x081e, 0x0697, 0x03c3,
+ 0x0928, 0x0a9d, 0x069f, 0x05a3, 0xff9a, 0xf9bc,
+ 0xff77, 0x02dd, 0x006f, 0x01a5, 0xff56, 0xfcaf,
+ 0x02f0, 0x06a0, 0x04e6, 0x0557, 0x036f, 0x0122,
+ 0x0480, 0x0558, 0x00d9, 0x00fd, 0x0521, 0x04d1,
+ 0x0550, 0x09d2, 0x06c3, 0x00eb, 0x03cd, 0x03d8,
+ 0xff6d, 0xfff1, 0xfd01, 0xf9cc, 0xfe3a, 0xfed5,
+ 0xfec4, 0x026b, 0xff56, 0xfef3, 0x02fb, 0xfcfc,
+ 0xf912, 0xfa8c, 0xf34b, 0xf088, 0xf852, 0xfb23,
+ 0xfa3a, 0xf996, 0xf6bd, 0xf4d9, 0xf423, 0xf5bc,
+ 0xf990, 0xf920, 0xf5dd, 0xf2ab, 0xefdf, 0xf2f1,
+ 0xf6de, 0xf3c8, 0xf1b0, 0xf386, 0xf283, 0xf14b,
+ 0xf423, 0xf5fc, 0xf359, 0xf1e1, 0xf3a8, 0xf277,
+ 0xef91, 0xef2f, 0xed5d, 0xea4b, 0xe826, 0xe466,
+ 0xe20b, 0xe341, 0xe525, 0xe863, 0xebbe, 0xee0d,
+ 0xf099, 0xef0b, 0xec7a, 0xf21f, 0xf7f1, 0xf4f2,
+ 0xf221, 0xf4f5, 0xf7ab, 0xf768, 0xf661, 0xf823,
+ 0xfc16, 0xfbfe, 0xf846, 0xf60f, 0xf24c, 0xef10,
+ 0xf33d, 0xf482, 0xefd2, 0xf434, 0xf958, 0xf3b6,
+ 0xf31b, 0xf80f, 0xf768, 0xf876, 0xf980, 0xf4d1,
+ 0xf35f, 0xf52c, 0xf5f5, 0xf67e, 0xf44e, 0xf28b,
+ 0xf26e, 0xf25b, 0xf715, 0xf8bf, 0xf326, 0xf472,
+ 0xf783, 0xf325, 0xf3d6, 0xfa72, 0xfd5f, 0xfd4e,
+ 0xfe75, 0x01e9, 0xff1c, 0xf7d0, 0xfaa5, 0xfd58,
+ 0xf972, 0xff24, 0x04f8, 0x0236, 0x0605, 0x0b3f,
+ 0x0bf3, 0x0ee0, 0x0cce, 0x078f, 0x06c3, 0x0450,
+ 0x01ba, 0x0008, 0xfc46, 0xfaa2, 0xf754, 0xf512,
+ 0xfa3c, 0xf9b3, 0xf682, 0xfc0c, 0xfd97, 0xfd9e,
+ 0x0381, 0x0207, 0xfeb1, 0xff5b, 0xf9e5, 0xf8ef,
+ 0xfd46, 0xf660, 0xf0a8, 0xf3e6, 0xf1ec, 0xf0d3,
+ 0xf570, 0xf3d2, 0xf22c, 0xf7b9, 0xf902, 0xf752,
+ 0xfa72, 0xf9df, 0xf639, 0xf938, 0xfb00, 0xf6e0,
+ 0xf593, 0xf6cc, 0xf7a4, 0xf7eb, 0xf692, 0xf8c2,
+ 0xfbfe, 0xf9c4, 0xf8b1, 0xf7fe, 0xf5de, 0xfaed,
+ 0xfe49, 0xfae7, 0xfd64, 0xff46, 0xfd30, 0x00f5,
+ 0x00d9, 0xfc34, 0xfdd1, 0xfca6, 0xf98d, 0xfcef,
+ 0xfe3e, 0xfe36, 0x0149, 0x00c1, 0xfe12, 0xfc6f,
+ 0xfb95, 0xfe13, 0x0075, 0x006a, 0x00ce, 0x0148,
+ 0x00d8, 0xfd9f, 0xfba2, 0x004f, 0x0112, 0xfb9a,
+ 0xfc63, 0xfeae, 0xfc81, 0xfd7b, 0x0175, 0x050d,
+ 0x0831, 0x0b19, 0x0f6a, 0x10e3, 0x0f00, 0x0ed6,
+ 0x0c3e, 0x08de, 0x0910, 0x0599, 0x026c, 0x04cf,
+ 0x0479, 0x0534, 0x0ac3, 0x0ca6, 0x0c22, 0x0ad9,
+ 0x0737, 0x064e, 0x0747, 0x0833, 0x08fe, 0x05a3,
+ 0x03a9, 0x05e5, 0x03bc, 0x000b, 0xffc0, 0xffcb,
+ 0x0101, 0x008d, 0xfc95, 0xfa5d, 0xf8c8, 0xf745,
+ 0xf7ba, 0xf672, 0xf4ee, 0xf648, 0xf88f, 0xfbd8,
+ 0xfd98, 0xfbad, 0xf9e2, 0xf9dc, 0xfaeb, 0xfaf4,
+ 0xfabf, 0xfdfd, 0xff1d, 0xfe2e, 0x01d1, 0x0101,
+ 0xfd68, 0x01cf, 0x0104, 0xfad4, 0xfd1e, 0xfcd1,
+ 0xf8a4, 0xf895, 0xf2b5, 0xee96, 0xf46a, 0xf515,
+ 0xf3cc, 0xf6ad, 0xf580, 0xf6a5, 0xf93f, 0xf4e1,
+ 0xf31d, 0xf32b, 0xf164, 0xf7ba, 0xfd11, 0xfa8f,
+ 0xfe67, 0x0399, 0x0158, 0x0227, 0x0439, 0xffa7,
+ 0xfb8e, 0xfc10, 0xfd59, 0xfdad, 0xfd15, 0xfca0,
+ 0xfcd3, 0xfd4a, 0xfdc9, 0xfe2e, 0xff98, 0x006a,
+ 0xfed5, 0xff76, 0x0181, 0xfec6, 0xfc94, 0xff14,
+ 0x001c, 0x00d2, 0x02e5, 0x01e4, 0x01a5, 0x01d5,
+ 0xfbc3, 0xf7c8, 0xf8e0, 0xf4c6, 0xf1a6, 0xf45d,
+ 0xf35c, 0xf33f, 0xf850, 0xfab2, 0xfd97, 0x00c6,
+ 0xfee1, 0x0132, 0x05dc, 0x02ea, 0x029a, 0x064c,
+ 0x03a8, 0x025f, 0x0591, 0x04c8, 0x03ee, 0x05b1,
+ 0x0595, 0x0792, 0x0cd5, 0x0d8d, 0x0ab4, 0x0b72,
+ 0x0b5e, 0x067f, 0x0621, 0x0786, 0xffd4, 0xfbaa,
+ 0x00f6, 0xfeeb, 0xfa74, 0xfe85, 0xff2e, 0xfd8f,
+ 0x0354, 0x07ac, 0x06ea, 0x06d3, 0x0837, 0x0b12,
+ 0x0c3a, 0x0b8a, 0x0c86, 0x0a79, 0x07ad, 0x09de,
+ 0x083e, 0x0486, 0x07e5, 0x0991, 0x0865, 0x0d1c,
+ 0x1155, 0x113f, 0x11e3, 0x13f2, 0x17cb, 0x18e3,
+ 0x1459, 0x1395, 0x1691, 0x1619, 0x17d0, 0x1c28,
+ 0x1a59, 0x159a, 0x148a, 0x13da, 0x10f4, 0x0f4c,
+ 0x0ec0, 0x0cf8, 0x0e17, 0x11aa, 0x1111, 0x1191,
+ 0x151f, 0x114d, 0x0c72, 0x0f5a, 0x0ec7, 0x0af5,
+ 0x0c3c, 0x0a7e, 0x06b2, 0x09f3, 0x0bc9, 0x0878,
+ 0x09ca, 0x0dac, 0x0d2c, 0x0bb1, 0x0b8d, 0x09ff,
+ 0x084d, 0x091e, 0x0a6e, 0x0a9a, 0x0a60, 0x0885,
+ 0x05ab, 0x0541, 0x0602, 0x04d8, 0x02cb, 0x00da,
+ 0xff04, 0xff12, 0x00fa, 0x01fc, 0x0240, 0x0268,
+ 0x0079, 0xff39, 0x018c, 0x01cf, 0xffc0, 0x00e5,
+ 0x00e1, 0xfda3, 0xfd6e, 0xfef9, 0xfee8, 0xfe72,
+ 0xfd82, 0xfd85, 0xfe62, 0xfe8c, 0x012b, 0x04e9,
+ 0x05f7, 0x06d4, 0x07b5, 0x07d8, 0x0761, 0x0439,
+ 0x032d, 0x05ab, 0x042b, 0x02a9, 0x04a7, 0x0312,
+ 0x010d, 0x01e2, 0x0185, 0x032d, 0x0637, 0x0608,
+ 0x05ab, 0x0546, 0x04e8, 0x074b, 0x097d, 0x0c19,
+ 0x0fae, 0x0e7e, 0x0bae, 0x0c98, 0x0d14, 0x0a3b,
+ 0x06a9, 0x069f, 0x07f6, 0x059c, 0x05df, 0x09da,
+ 0x08a0, 0x06c1, 0x0701, 0x039e, 0x0308, 0x067e,
+ 0x078e, 0x09e2, 0x0add, 0x07ab, 0x0871, 0x09ee,
+ 0x070b, 0x0519, 0x04f9, 0x0817, 0x0c5b, 0x0a3c,
+ 0x0907, 0x0cb8, 0x0c68, 0x0c2a, 0x0d3b, 0x084a,
+ 0x05bb, 0x06de, 0x0123, 0xfcdc, 0xff6c, 0xfe14,
+ 0xfc28, 0x0069, 0x0386, 0x045a, 0x0727, 0x0894,
+ 0x0742, 0x04a0, 0xfffd, 0xfc5d, 0xfc53, 0xfd87,
+ 0xff5e, 0x01b0, 0x020b, 0xffe5, 0xfdd6, 0xfe11,
+ 0xfd64, 0xfa34, 0xf9f6, 0xf967, 0xf325, 0xf0a5,
+ 0xf2d2, 0xf1cd, 0xf390, 0xf719, 0xf585, 0xf5da,
+ 0xf729, 0xf698, 0xfab7, 0xfb6e, 0xf715, 0xf9a9,
+ 0xfaf9, 0xf880, 0xfba4, 0xfa93, 0xf6f0, 0xfb65,
+ 0xfb73, 0xf75a, 0xf9c7, 0xf982, 0xf70c, 0xf949,
+ 0xf97d, 0xf925, 0xf9ac, 0xf4f0, 0xf183, 0xf441,
+ 0xf6dc, 0xf862, 0xfae0, 0xfd6b, 0xfe11, 0xfd83,
+ 0xff48, 0x0069, 0xfeff, 0x001d, 0x0037, 0xfd1a,
+ 0xfe58, 0x0085, 0xfe1f, 0xfc70, 0xfac6, 0xf745,
+ 0xf6f7, 0xf858, 0xf810, 0xf8d1, 0xfa1b, 0xf9f9,
+ 0xfadb, 0xfcb3, 0xfcf6, 0xfe56, 0x0256, 0x03ec,
+ 0x0345, 0x046b, 0x04e4, 0x03f1, 0x0382, 0x01a9,
+ 0x002f, 0x014c, 0x01fb, 0x027e, 0x0357, 0x039c,
+ 0x0564, 0x0651, 0x050d, 0x0686, 0x0802, 0x05fe,
+ 0x0564, 0x063b, 0x05eb, 0x05c8, 0x04e4, 0x0464,
+ 0x0726, 0x0a3f, 0x0bda, 0x0e9f, 0x121b, 0x12c7,
+ 0x112a, 0x10c1, 0x0fb9, 0x0c47, 0x0a91, 0x0918,
+ 0x04af, 0x0309, 0x03d9, 0x015e, 0xffa0, 0x00df,
+ 0x012c, 0x01a6, 0x01f8, 0xfef4, 0xfbf9, 0xfc53,
+ 0xfcd0, 0xfb34, 0xfa4f, 0xfc79, 0xfec5, 0xfe9a,
+ 0xff05, 0x021b, 0x03fc, 0x019c, 0xfe11, 0xfc56,
+ 0xfae9, 0xfa08, 0xfae9, 0xfae2, 0xfac1, 0xfd7b,
+ 0xff92, 0x003d, 0x0390, 0x0636, 0x040c, 0x018e,
+ 0x01e1, 0x01d3, 0x0076, 0x012e, 0x0330, 0x0256,
+ 0x00f7, 0x0169, 0xff45, 0xfb93, 0xfafa, 0xfba0,
+ 0xfd60, 0x0022, 0xfefa, 0xfcb0, 0xfd0d, 0xfadd,
+ 0xf889, 0xfb07, 0xfbba, 0xfa69, 0xfceb, 0xff03,
+ 0x0022, 0x045f, 0x05eb, 0x0361, 0x04b2, 0x0971,
+ 0x0bd7, 0x0b34, 0x0a27, 0x0b1f, 0x0c84, 0x0c34,
+ 0x0c17, 0x0c50, 0x0b71, 0x0a7d, 0x0a78, 0x0c0f,
+ 0x0d2f, 0x0afa, 0x092a, 0x09e5, 0x0a1c, 0x0af8,
+ 0x0c7b, 0x0bf6, 0x0b77, 0x0abb, 0x08da, 0x0933,
+ 0x0926, 0x05dc, 0x038f, 0x0275, 0x021a, 0x042f,
+ 0x0418, 0x00d3, 0xff97, 0xfe76, 0xfb6c, 0xfb03,
+ 0xfce1, 0xfc7e, 0xfaf3, 0xfb9d, 0xfd0d, 0xfd19,
+ 0xfd74, 0xfe71, 0xfe70, 0xfedf, 0x00cb, 0x01d2,
+ 0x000b, 0xfe4f, 0x01be, 0x06a8, 0x059a, 0x02f5,
+ 0x0217, 0xfdb7, 0xf9f3, 0xfb8a, 0xfbcb, 0xfa8d,
+ 0xfb2e, 0xf8f2, 0xf573, 0xf5c5, 0xf623, 0xf5e2,
+ 0xf6c2, 0xf3d7, 0xef4d, 0xf0d7, 0xf3f9, 0xf433,
+ 0xf6ba, 0xfab0, 0xfc9c, 0xfef5, 0x0004, 0xfe8e,
+ 0xfdb1, 0xfb64, 0xf957, 0xfb99, 0xfbc2, 0xf9d6,
+ 0xfd1d, 0x00a4, 0x00af, 0x0181, 0x028e, 0x0319,
+ 0x038f, 0x03cd, 0x04df, 0x0325, 0xffdc, 0x0181,
+ 0x0291, 0x0149, 0x0458, 0x055f, 0x0183, 0xff82,
+ 0xfbff, 0xf7cf, 0xf90c, 0xfa4b, 0xf95d, 0xf971,
+ 0xf8c3, 0xf809, 0xf6d6, 0xf3a9, 0xf208, 0xf088,
+ 0xede8, 0xeee7, 0xf15a, 0xf33b, 0xf7c7, 0xfbbb,
+ 0xfdb8, 0x00cf, 0x013d, 0xff04, 0x001d, 0x0241,
+ 0x0380, 0x07d1, 0x0aec, 0x0801, 0x0600, 0x06de,
+ 0x04d2, 0x0364, 0x0603, 0x073a, 0x0706, 0x07a7,
+ 0x0649, 0x0459, 0x03f7, 0x0349, 0x02d5, 0x01db,
+ 0xff4c, 0xfe9e, 0xff8e, 0xff55, 0xff99, 0x00f1,
+ 0x02f3, 0x05fa, 0x06d8, 0x0421, 0x01ad, 0x00c2,
+ 0xff21, 0xfcba, 0xfc32, 0xfe77, 0x003b, 0xffdb,
+ 0x00e7, 0x0370, 0x0338, 0x0264, 0x0405, 0x03cf,
+ 0x0156, 0x00e5, 0x019a, 0x0409, 0x0981, 0x0d24,
+ 0x0f13, 0x12ca, 0x1438, 0x1210, 0x10e2, 0x117f,
+ 0x11b0, 0x10c0, 0x11e7, 0x1483, 0x1237, 0x0fb9,
+ 0x11d6, 0x0fa3, 0x0bd0, 0x0e63, 0x0f47, 0x0d99,
+ 0x0efe, 0x0eef, 0x0f04, 0x121d, 0x132c, 0x12c9,
+ 0x10c1, 0x0bc3, 0x0897, 0x0638, 0x046b, 0x0678,
+ 0x0705, 0x0651, 0x08c7, 0x09b1, 0x0a4b, 0x0c97,
+ 0x0bac, 0x0aea, 0x0a8a, 0x05fa, 0x03f0, 0x04b6,
+ 0x01fc, 0x00b8, 0x01d7, 0x0186, 0x02af, 0x037a,
+ 0x00ed, 0xfeb5, 0xfd7b, 0xfcdf, 0xfe57, 0x0080,
+ 0x0236, 0x029c, 0x00ef, 0x002d, 0x01c4, 0x02e0,
+ 0x0301, 0x0363, 0x02aa, 0x00da, 0x0056, 0x0081,
+ 0x0155, 0x0469, 0x058e, 0x0381, 0x03b5, 0x03b7,
+ 0x00fa, 0x0101, 0x0241, 0x01fb, 0x03c8, 0x04a2,
+ 0x023d, 0x010e, 0xff88, 0xfb9e, 0xf8f6, 0xf8ca,
+ 0xfa69, 0xfcf2, 0xfecc, 0xffc7, 0x004e, 0x00d6,
+ 0x005d, 0xfe61, 0xfd79, 0xfcc9, 0xfb82, 0xfd3f,
+ 0xff73, 0x00df, 0x0653, 0x0a56, 0x0893, 0x0820,
+ 0x089d, 0x0647, 0x03b4, 0x021a, 0x0330, 0x063c,
+ 0x079c, 0x0a50, 0x0e75, 0x1001, 0x10b3, 0x0f5a,
+ 0x0bb8, 0x0ada, 0x09af, 0x0629, 0x0440, 0x018e,
+ 0xfeaf, 0xff4e, 0x0031, 0x0119, 0x01ff, 0x005c,
+ 0x005a, 0x01d6, 0x00f0, 0x0164, 0x0226, 0x0029,
+ 0xff3e, 0xfe08, 0xfc0d, 0xfe00, 0x0000, 0xfed5,
+ 0xfe6d, 0xfee3, 0x0045, 0x035c, 0x057d, 0x06f1,
+ 0x0854, 0x0810, 0x0790, 0x0736, 0x05f4, 0x04f8,
+ 0x043c, 0x0401, 0x055a, 0x06af, 0x0725, 0x06fe,
+ 0x05b1, 0x03f6, 0x01d6, 0xff1a, 0xfd2e, 0xfb83,
+ 0xf998, 0xf8ca, 0xf855, 0xf7ff, 0xf86b, 0xf758,
+ 0xf4d3, 0xf42d, 0xf4ec, 0xf460, 0xf261, 0xefec,
+ 0xecf1, 0xe9cb, 0xe85c, 0xe881, 0xe7fd, 0xe6f9,
+ 0xe693, 0xe705, 0xe8c3, 0xea9a, 0xeb6c, 0xec06,
+ 0xebeb, 0xeb80, 0xecad, 0xedef, 0xee4b, 0xf04f,
+ 0xf359, 0xf3e7, 0xf314, 0xf4f7, 0xf850, 0xf900,
+ 0xf886, 0xf88b, 0xf74d, 0xf6cc, 0xf76c, 0xf5ef,
+ 0xf532, 0xf655, 0xf5e4, 0xf6f8, 0xf9b8, 0xf983,
+ 0xf9dd, 0xfbad, 0xfa55, 0xf840, 0xf6d0, 0xf4ae,
+ 0xf487, 0xf516, 0xf4cb, 0xf60a, 0xf6a4, 0xf6a1,
+ 0xf90b, 0xf9e3, 0xf81f, 0xf711, 0xf53e, 0xf4ed,
+ 0xf89d, 0xfa82, 0xfa54, 0xfc6d, 0xfd6c, 0xfbbd,
+ 0xfbde, 0xfdeb, 0xfe80, 0xfd7a, 0xfd7d, 0xfeea,
+ 0xff55, 0xff5f, 0x012b, 0x02a3, 0x022d, 0x02ab,
+ 0x05c5, 0x08a8, 0x0834, 0x05ed, 0x052d, 0x055a,
+ 0x04e7, 0x04b1, 0x0499, 0x037b, 0x018d, 0x0027,
+ 0x00a3, 0x024b, 0x0438, 0x074c, 0x0a25, 0x0ad4,
+ 0x0a62, 0x0866, 0x051e, 0x039a, 0x0306, 0x0151,
+ 0xff3e, 0xfc91, 0xfa7d, 0xfa16, 0xf900, 0xf8b9,
+ 0xfadb, 0xfbcd, 0xfbd1, 0xfbe9, 0xfa89, 0xfad1,
+ 0xfcd7, 0xfd1b, 0xfe1d, 0xff32, 0xfdc8, 0xfdde,
+ 0xfda4, 0xf99f, 0xf7cb, 0xf92c, 0xf96a, 0xf9db,
+ 0xfa96, 0xf9d0, 0xf8f3, 0xf911, 0xfa18, 0xfa84,
+ 0xf9a8, 0xfa77, 0xfc78, 0xfc5f, 0xfafd, 0xf990,
+ 0xf854, 0xf81a, 0xf8a7, 0xfa17, 0xfb4d, 0xfa63,
+ 0xf9ba, 0xfb22, 0xfd04, 0xff3c, 0x0100, 0x0137,
+ 0x01cb, 0x030b, 0x0377, 0x0491, 0x0755, 0x0863,
+ 0x0661, 0x0557, 0x05b4, 0x0437, 0x036b, 0x0555,
+ 0x0709, 0x0901, 0x0b46, 0x0b7b, 0x0b75, 0x0bf5,
+ 0x0be4, 0x0c5c, 0x0c35, 0x0b30, 0x0a82, 0x0894,
+ 0x0791, 0x08fd, 0x08bc, 0x081f, 0x090a, 0x086d,
+ 0x0819, 0x0963, 0x0906, 0x06f5, 0x04ad, 0x03c7,
+ 0x03d4, 0x01e5, 0x012c, 0x02e1, 0x016e, 0xff9f,
+ 0x00fa, 0x00d8, 0x002d, 0x012c, 0x0103, 0x00c3,
+ 0x012a, 0x0110, 0x0299, 0x0535, 0x05e5, 0x0524,
+ 0x0559, 0x0743, 0x0787, 0x04a2, 0x02de, 0x036d,
+ 0x0379, 0x01c4, 0xfefc, 0xfdb1, 0xfcf8, 0xf9ca,
+ 0xf7e3, 0xf922, 0xf92a, 0xf83f, 0xf8a7, 0xf9a3,
+ 0xf9de, 0xf871, 0xf840, 0xfab1, 0xfb75, 0xfabe,
+ 0xfaa8, 0xf967, 0xf827, 0xf6ef, 0xf448, 0xf40c,
+ 0xf5e4, 0xf5a4, 0xf581, 0xf745, 0xf98c, 0xfb89,
+ 0xfb89, 0xfadf, 0xfc04, 0xfd1b, 0xfde1, 0xff67,
+ 0xffe3, 0xff39, 0xfe15, 0xfb26, 0xf775, 0xf632,
+ 0xf75f, 0xf84f, 0xf91e, 0xfb7e, 0xfe23, 0x0056,
+ 0x0281, 0x02a0, 0x00d9, 0xff4d, 0xfd76, 0xfb6a,
+ 0xf9a7, 0xf865, 0xf96a, 0xfb31, 0xfb78, 0xfc0e,
+ 0xfc11, 0xf9fc, 0xf816, 0xf627, 0xf472, 0xf5fc,
+ 0xf877, 0xf88a, 0xf8bf, 0xfb67, 0xfe6d, 0xff89,
+ 0x007d, 0x0326, 0x0501, 0x0559, 0x0649, 0x06b0,
+ 0x0600, 0x0652, 0x07f9, 0x0a86, 0x0cd8, 0x0d88,
+ 0x0de3, 0x0e09, 0x0c57, 0x09e2, 0x06dc, 0x029e,
+ 0xffe9, 0xff14, 0xfd96, 0xfd2c, 0xfea6, 0xfe75,
+ 0xfde7, 0x0058, 0x029a, 0x02f3, 0x047f, 0x063b,
+ 0x0611, 0x0643, 0x0773, 0x07da, 0x0768, 0x06e8,
+ 0x06cb, 0x0694, 0x0588, 0x03ec, 0x01f5, 0x0060,
+ 0xffd4, 0xff68, 0xffd8, 0x01e2, 0x0424, 0x074a,
+ 0x0a9d, 0x0b51, 0x0bf1, 0x0d97, 0x0cad, 0x0b3b,
+ 0x0c1f, 0x0cdd, 0x0ce5, 0x0d3c, 0x0ddc, 0x0f73,
+ 0x114e, 0x12b1, 0x13d5, 0x13fd, 0x1449, 0x15cf,
+ 0x16a9, 0x16c0, 0x16f2, 0x1618, 0x13e7, 0x110b,
+ 0x0e3b, 0x0c07, 0x09fa, 0x08c6, 0x09ef, 0x0cee,
+ 0x0f6b, 0x0f9c, 0x0f77, 0x10f4, 0x119f, 0x1206,
+ 0x1444, 0x1460, 0x11c3, 0x109e, 0x0fd3, 0x0e9c,
+ 0x0e99, 0x0ded, 0x0c22, 0x0a9d, 0x0965, 0x0919,
+ 0x0851, 0x0624, 0x052c, 0x0439, 0x0152, 0xff35,
+ 0xfe7b, 0xfe7d, 0x004e, 0x02c5, 0x04bd, 0x05d3,
+ 0x0503, 0x0466, 0x0565, 0x0640, 0x0743, 0x07e1,
+ 0x06c5, 0x066f, 0x0698, 0x04df, 0x03f8, 0x0471,
+ 0x03a0, 0x036f, 0x045c, 0x0399, 0x0262, 0x0202,
+ 0x01c9, 0x02f8, 0x04b8, 0x04cc, 0x0416, 0x02f2,
+ 0x01ac, 0x01ad, 0x01d6, 0x023b, 0x03ce, 0x03c8,
+ 0x02ac, 0x03ac, 0x04c3, 0x04cd, 0x0502, 0x03f5,
+ 0x0239, 0x0141, 0x004f, 0x006d, 0x017d, 0x0208,
+ 0x0352, 0x04aa, 0x04f7, 0x060b, 0x06a0, 0x0556,
+ 0x04a5, 0x0520, 0x05e2, 0x0678, 0x06ac, 0x07da,
+ 0x0911, 0x087c, 0x07a0, 0x05e4, 0x02f4, 0x0265,
+ 0x0290, 0x0070, 0xffea, 0x01b9, 0x0101, 0xfe53,
+ 0xfe56, 0x0061, 0x008a, 0x003a, 0x01b7, 0x0242,
+ 0x0298, 0x0514, 0x05a7, 0x040b, 0x0475, 0x0551,
+ 0x0655, 0x096f, 0x0bb8, 0x0cdc, 0x0edb, 0x0f6d,
+ 0x0e2b, 0x0d04, 0x0b97, 0x0a35, 0x0981, 0x0921,
+ 0x0942, 0x094b, 0x08ee, 0x097d, 0x0b01, 0x0be7,
+ 0x0bba, 0x0bda, 0x0c54, 0x0aee, 0x083f, 0x0672,
+ 0x0443, 0x016d, 0xffc8, 0xfe85, 0xfd74, 0xfddd,
+ 0xfe35, 0xfd09, 0xfb23, 0xf8e7, 0xf6e6, 0xf5e4,
+ 0xf50a, 0xf379, 0xf1ae, 0xf043, 0xefc9, 0xf101,
+ 0xf323, 0xf419, 0xf37f, 0xf239, 0xf0d6, 0xefef,
+ 0xef5b, 0xef0d, 0xeffe, 0xf187, 0xf291, 0xf363,
+ 0xf377, 0xf355, 0xf411, 0xf410, 0xf3c9, 0xf546,
+ 0xf674, 0xf651, 0xf694, 0xf6cb, 0xf6e2, 0xf71b,
+ 0xf682, 0xf634, 0xf67b, 0xf5b0, 0xf517, 0xf5d7,
+ 0xf700, 0xf8ea, 0xfb44, 0xfce0, 0xfdac, 0xfd2c,
+ 0xfb49, 0xf85a, 0xf4dc, 0xf2f5, 0xf234, 0xf050,
+ 0xf042, 0xf3c8, 0xf6d7, 0xf8ef, 0xfb81, 0xfc7e,
+ 0xfc34, 0xfc3a, 0xfb4a, 0xf9d2, 0xf97d, 0xf9df,
+ 0xfabf, 0xfbf5, 0xfcfe, 0xfe58, 0xfee7, 0xfd3c,
+ 0xfb9f, 0xfbb7, 0xfc27, 0xfcf2, 0xfe3c, 0xfe7d,
+ 0xfe81, 0x004a, 0x0314, 0x056e, 0x06ec, 0x0748,
+ 0x0722, 0x077f, 0x087c, 0x0960, 0x08e7, 0x075a,
+ 0x06b4, 0x06fd, 0x078f, 0x093d, 0x0acb, 0x0a9b,
+ 0x0a6c, 0x0aa0, 0x0993, 0x0874, 0x0842, 0x077f,
+ 0x066d, 0x064c, 0x064d, 0x05c5, 0x056b, 0x04f5,
+ 0x0321, 0x00c8, 0xfff8, 0x0055, 0x007b, 0x005a,
+ 0xffb0, 0xfe2c, 0xfd0c, 0xfd3d, 0xfd81, 0xfc49,
+ 0xfa7f, 0xf9bb, 0xf8fe, 0xf819, 0xf91a, 0xfa7b,
+ 0xf948, 0xf730, 0xf614, 0xf542, 0xf548, 0xf65f,
+ 0xf683, 0xf50f, 0xf3ab, 0xf396, 0xf4d6, 0xf720,
+ 0xf992, 0xfacf, 0xfb27, 0xfbee, 0xfc7e, 0xfbe4,
+ 0xfb92, 0xfcf9, 0xfed8, 0xff39, 0xfea1, 0xfe17,
+ 0xfce3, 0xfba6, 0xfbd5, 0xfc63, 0xfcb7, 0xfda1,
+ 0xfe75, 0xfeba, 0xff13, 0x004e, 0x02ed, 0x04d1,
+ 0x046b, 0x03fa, 0x03c8, 0x02c1, 0x02fe, 0x04bc,
+ 0x05d2, 0x068b, 0x078e, 0x08bc, 0x09b5, 0x0915,
+ 0x0769, 0x06ab, 0x0668, 0x05d3, 0x0541, 0x04d7,
+ 0x04e0, 0x051b, 0x0493, 0x0379, 0x02cd, 0x030b,
+ 0x042e, 0x05e5, 0x0708, 0x06c5, 0x0709, 0x08f1,
+ 0x0a17, 0x0a4e, 0x0b37, 0x0b9a, 0x0bd0, 0x0d8a,
+ 0x0ec5, 0x0e0c, 0x0c4b, 0x09c5, 0x078a, 0x068f,
+ 0x066c, 0x0758, 0x08db, 0x09a1, 0x097a, 0x0890,
+ 0x0745, 0x0585, 0x02d6, 0x006e, 0xfed1, 0xfd4d,
+ 0xfccb, 0xfc7d, 0xfab1, 0xf9a0, 0xfaae, 0xfbd6,
+ 0xfbf8, 0xfae0, 0xf971, 0xf940, 0xf959, 0xf8c1,
+ 0xf889, 0xf88e, 0xf7f8, 0xf70e, 0xf62b, 0xf56f,
+ 0xf4b5, 0xf3c5, 0xf29c, 0xf1a9, 0xf25f, 0xf4be,
+ 0xf694, 0xf7b6, 0xf938, 0xfa10, 0xf9de, 0xfa3f,
+ 0xfbd0, 0xfd66, 0xfdbc, 0xfd29, 0xfc77, 0xfb60,
+ 0xfaa2, 0xfaf0, 0xfa80, 0xf967, 0xfa50, 0xfc84,
+ 0xfdf1, 0xffbc, 0x020f, 0x02b0, 0x0213, 0x01db,
+ 0x00ec, 0xfeff, 0xfd5d, 0xfae0, 0xf763, 0xf634,
+ 0xf74e, 0xf775, 0xf6ed, 0xf75a, 0xf7a9, 0xf702,
+ 0xf6ae, 0xf718, 0xf6a2, 0xf59a, 0xf6d8, 0xf9d8,
+ 0xfbab, 0xfd13, 0xff69, 0x0128, 0x01eb, 0x0255,
+ 0x0229, 0x0250, 0x0382, 0x04b0, 0x050a, 0x041a,
+ 0x02ac, 0x0370, 0x0628, 0x07eb, 0x090c, 0x0aa5,
+ 0x0adf, 0x095d, 0x082c, 0x0763, 0x05cc, 0x03c7,
+ 0x021d, 0x0032, 0xfdc8, 0xfc2d, 0xfbb7, 0xfba9,
+ 0xfcef, 0xffb8, 0x0194, 0x01a6, 0x012c, 0x008a,
+ 0xffec, 0xff50, 0xfe64, 0xfe32, 0xfefc, 0xff69,
+ 0x0020, 0x0208, 0x03a8, 0x0474, 0x0510, 0x052f,
+ 0x0543, 0x05fd, 0x0671, 0x0619, 0x05c5, 0x0659,
+ 0x082f, 0x0a3c, 0x0af1, 0x0a5f, 0x092f, 0x07fc,
+ 0x0840, 0x09f6, 0x0a9d, 0x09a7, 0x092c, 0x095b,
+ 0x08fb, 0x0909, 0x0a75, 0x0bf9, 0x0d3d, 0x0eb5,
+ 0x0f34, 0x0f53, 0x1173, 0x140f, 0x1451, 0x135e,
+ 0x1306, 0x135b, 0x13da, 0x1313, 0x10ab, 0x0e0b,
+ 0x0b81, 0x099e, 0x099a, 0x0a72, 0x0b60, 0x0cba,
+ 0x0cf0, 0x0bde, 0x0b95, 0x0bad, 0x0b85, 0x0bbc,
+ 0x0ad2, 0x089b, 0x07f6, 0x0924, 0x0a70, 0x0b9c,
+ 0x0bc1, 0x09ee, 0x07ca, 0x071c, 0x0753, 0x074b,
+ 0x0737, 0x07d6, 0x08f1, 0x09e5, 0x0a79, 0x0a76,
+ 0x09a7, 0x07f4, 0x0608, 0x051b, 0x04d6, 0x049b,
+ 0x05b2, 0x0793, 0x07ff, 0x07f2, 0x08c9, 0x0931,
+ 0x08a7, 0x0760, 0x051a, 0x02a3, 0x004a, 0xfe29,
+ 0xfdb1, 0xfe72, 0xfe9a, 0xfe93, 0xfeb4, 0xfe8e,
+ 0xff23, 0x0081, 0x015a, 0x022c, 0x03c4, 0x04dc,
+ 0x04b3, 0x0418, 0x02a9, 0x000b, 0xfe74, 0xfebf,
+ 0xfee1, 0xfed2, 0xff8f, 0x000e, 0x0081, 0x01c6,
+ 0x02c7, 0x039e, 0x04ec, 0x04eb, 0x0360, 0x0268,
+ 0x021b, 0x01d9, 0x02cc, 0x0544, 0x075c, 0x0812,
+ 0x08ba, 0x09da, 0x0a00, 0x0909, 0x083c, 0x07d7,
+ 0x07ca, 0x0811, 0x07ed, 0x06b2, 0x0446, 0x01d3,
+ 0x013e, 0x01bf, 0x0181, 0x0163, 0x01d5, 0x022f,
+ 0x0401, 0x0799, 0x0ad8, 0x0daf, 0x0fe2, 0x0f74,
+ 0x0d58, 0x0bdc, 0x0b50, 0x0c09, 0x0dc8, 0x0ed4,
+ 0x0eae, 0x0e32, 0x0df8, 0x0df2, 0x0daf, 0x0d43,
+ 0x0c91, 0x0b48, 0x0a97, 0x0ac7, 0x0a25, 0x08a1,
+ 0x06f6, 0x04b6, 0x0263, 0x0086, 0xfea9, 0xfcf0,
+ 0xfb7f, 0xfa99, 0xfadb, 0xfb5a, 0xfb51, 0xfb6e,
+ 0xfb6a, 0xfaed, 0xfa4f, 0xf90c, 0xf737, 0xf586,
+ 0xf39c, 0xf198, 0xf06c, 0xf020, 0xf06a, 0xf112,
+ 0xf154, 0xf093, 0xef5b, 0xee7f, 0xed6c, 0xeb86,
+ 0xe9e3, 0xe92b, 0xe8db, 0xe93e, 0xeaad, 0xecc5,
+ 0xef30, 0xf115, 0xf194, 0xf109, 0xf05a, 0xf049,
+ 0xf137, 0xf26f, 0xf2fb, 0xf327, 0xf355, 0xf28b,
+ 0xf0ef, 0xeff9, 0xeefc, 0xeda3, 0xedb6, 0xee42,
+ 0xee09, 0xef0b, 0xf099, 0xf0c4, 0xf135, 0xf1f2,
+ 0xf1d8, 0xf2b0, 0xf495, 0xf606, 0xf729, 0xf77e,
+ 0xf726, 0xf7a0, 0xf870, 0xf89a, 0xf85c, 0xf80b,
+ 0xf80c, 0xf7ff, 0xf7a4, 0xf808, 0xf955, 0xfb04,
+ 0xfcdf, 0xfe4a, 0xff7c, 0x00ee, 0x0242, 0x039d,
+ 0x0462, 0x0395, 0x0278, 0x0235, 0x02ce, 0x0435,
+ 0x05a0, 0x0731, 0x08f0, 0x08f1, 0x07de, 0x07d3,
+ 0x0850, 0x0961, 0x0ad9, 0x0b19, 0x0b5b, 0x0c87,
+ 0x0c50, 0x0a90, 0x08d8, 0x07a0, 0x075f, 0x0797,
+ 0x075a, 0x06f2, 0x06b6, 0x06d5, 0x0768, 0x086b,
+ 0x09bf, 0x0a01, 0x08f0, 0x0849, 0x075b, 0x050f,
+ 0x033a, 0x025e, 0x01c2, 0x01dc, 0x01e9, 0x00fd,
+ 0xffdf, 0xff2e, 0xff60, 0x0058, 0x00b7, 0xffaa,
+ 0xfd19, 0xf9ae, 0xf76c, 0xf6f3, 0xf701, 0xf760,
+ 0xf874, 0xf9b6, 0xfab2, 0xfb7c, 0xfbe4, 0xfba1,
+ 0xfad3, 0xf961, 0xf742, 0xf58f, 0xf4d7, 0xf48e,
+ 0xf4f6, 0xf628, 0xf76d, 0xf902, 0xfad3, 0xfbbf,
+ 0xfc10, 0xfcb0, 0xfd2e, 0xfd19, 0xfce0, 0xfcf1,
+ 0xfd6b, 0xfe1b, 0xfe67, 0xfdfa, 0xfd77, 0xfdcc,
+ 0xfef9, 0xfff3, 0xffa7, 0xfeb9, 0xfed8, 0xffdd,
+ 0x0096, 0x00d9, 0x008b, 0x0011, 0x0028, 0xffe0,
+ 0xfede, 0xfeb2, 0xff62, 0xffd8, 0x0040, 0x00e7,
+ 0x01ac, 0x0207, 0x018c, 0x0139, 0x01ba, 0x0229,
+ 0x028a, 0x03a8, 0x04d1, 0x0528, 0x0527, 0x0517,
+ 0x04d3, 0x0541, 0x067a, 0x0708, 0x0774, 0x08b7,
+ 0x0977, 0x0a36, 0x0c57, 0x0de0, 0x0dfc, 0x0e39,
+ 0x0e43, 0x0dcf, 0x0d6c, 0x0cb7, 0x0bbe, 0x0a1c,
+ 0x078c, 0x065e, 0x078b, 0x097c, 0x0ba1, 0x0ced,
+ 0x0c30, 0x0abd, 0x0934, 0x06c0, 0x0457, 0x0336,
+ 0x02d7, 0x023f, 0x00d8, 0xfeaf, 0xfcb8, 0xfbcc,
+ 0xfb65, 0xfaf8, 0xfb5a, 0xfc65, 0xfc88, 0xfb60,
+ 0xf92d, 0xf653, 0xf3be, 0xf150, 0xef46, 0xeecb,
+ 0xef18, 0xef72, 0xf07b, 0xf177, 0xf2aa, 0xf57d,
+ 0xf883, 0xfaa7, 0xfc9e, 0xfd43, 0xfc1c, 0xfafc,
+ 0xfa3a, 0xf8d1, 0xf6d8, 0xf5bd, 0xf687, 0xf843,
+ 0xfa47, 0xfd07, 0xff29, 0xff96, 0xffcf, 0xffe3,
+ 0xfe58, 0xfc01, 0xfa40, 0xf8e2, 0xf840, 0xf986,
+ 0xfc49, 0xff58, 0x029f, 0x053c, 0x054e, 0x0363,
+ 0x0110, 0xfe42, 0xfbc1, 0xfb10, 0xfb53, 0xfb6e,
+ 0xfbfc, 0xfd27, 0xfeea, 0x01d0, 0x04f5, 0x06ce,
+ 0x07b1, 0x0802, 0x06df, 0x04f7, 0x0417, 0x03ef,
+ 0x03d3, 0x046d, 0x057d, 0x0635, 0x06b9, 0x06b1,
+ 0x0597, 0x040b, 0x029d, 0x013f, 0x001b, 0xff73,
+ 0xff57, 0xffbb, 0x0078, 0x0133, 0x0144, 0x0087,
+ 0xff94, 0xfe78, 0xfccf, 0xfae7, 0xf9b5, 0xf9ef,
+ 0xfaf5, 0xfb77, 0xfb5c, 0xfb22, 0xfae7, 0xfb37,
+ 0xfc55, 0xfdba, 0xfef0, 0xff31, 0xfe31, 0xfce0,
+ 0xfbbc, 0xfb71, 0xfcfd, 0xff31, 0x00ef, 0x02c0,
+ 0x0378, 0x02a8, 0x02c3, 0x041b, 0x05bd, 0x0853,
+ 0x0a97, 0x0aaf, 0x0990, 0x07ec, 0x0631, 0x061b,
+ 0x07c5, 0x09f4, 0x0bfc, 0x0cef, 0x0d48, 0x0e8d,
+ 0x0fef, 0x1084, 0x111b, 0x1130, 0x101c, 0x0f1d,
+ 0x0e97, 0x0e19, 0x0e79, 0x1005, 0x11f9, 0x1407,
+ 0x1554, 0x150e, 0x1459, 0x13f8, 0x12df, 0x110d,
+ 0x0fbf, 0x0f05, 0x0e61, 0x0e10, 0x0de3, 0x0d4c,
+ 0x0cb3, 0x0c89, 0x0c35, 0x0bc2, 0x0bbd, 0x0b95,
+ 0x0b2b, 0x0b62, 0x0bfd, 0x0cb1, 0x0df2, 0x0ef0,
+ 0x0ec0, 0x0dec, 0x0cf0, 0x0bee, 0x0aef, 0x09c5,
+ 0x08f0, 0x0911, 0x09f6, 0x0ae2, 0x0ab4, 0x0946,
+ 0x07dd, 0x0711, 0x0690, 0x05fc, 0x0517, 0x04cf,
+ 0x05a2, 0x062f, 0x05e1, 0x04fc, 0x0326, 0x00ee,
+ 0xff2a, 0xfe0f, 0xfe05, 0xfe66, 0xfe61, 0xfe97,
+ 0xfed5, 0xfe74, 0xfe18, 0xfdfe, 0xfddd, 0xfda8,
+ 0xfd2a, 0xfcd3, 0xfcec, 0xfcfe, 0xfd78, 0xfe55,
+ 0xfe8d, 0xfe50, 0xfddd, 0xfd0e, 0xfc8c, 0xfc1d,
+ 0xfb6b, 0xfb51, 0xfb6d, 0xfb17, 0xfb5d, 0xfc90,
+ 0xfdef, 0xff55, 0x00cf, 0x027a, 0x043a, 0x05a9,
+ 0x06b9, 0x0732, 0x071c, 0x0792, 0x08ea, 0x0a2a,
+ 0x0ace, 0x0ada, 0x0a7c, 0x09fa, 0x0976, 0x096e,
+ 0x0a24, 0x0ad3, 0x0b03, 0x0ab1, 0x09a4, 0x0894,
+ 0x0869, 0x0860, 0x07df, 0x07b8, 0x0821, 0x0884,
+ 0x08b5, 0x08c1, 0x08f3, 0x096c, 0x0978, 0x0954,
+ 0x0a1c, 0x0b11, 0x0aeb, 0x0a6d, 0x0a82, 0x0aac,
+ 0x0a55, 0x09a2, 0x0919, 0x08b9, 0x0832, 0x0806,
+ 0x0846, 0x0830, 0x084e, 0x0937, 0x09a1, 0x08b8,
+ 0x073b, 0x05f6, 0x057c, 0x05ae, 0x05cf, 0x05ec,
+ 0x05ec, 0x0502, 0x035a, 0x016e, 0xff54, 0xfe0b,
+ 0xfdeb, 0xfda0, 0xfce3, 0xfbdd, 0xf9b1, 0xf722,
+ 0xf5f2, 0xf629, 0xf765, 0xf8e2, 0xf8bf, 0xf6ba,
+ 0xf44d, 0xf1ee, 0xefaf, 0xee51, 0xeddf, 0xed45,
+ 0xec57, 0xec3e, 0xecc4, 0xece5, 0xed4c, 0xedf3,
+ 0xedf1, 0xee4f, 0xef13, 0xeebd, 0xee54, 0xeeeb,
+ 0xef85, 0xef9f, 0xeeca, 0xed4e, 0xeccc, 0xed3c,
+ 0xee1c, 0xefe1, 0xf1b6, 0xf343, 0xf514, 0xf603,
+ 0xf5d6, 0xf60e, 0xf6ed, 0xf81c, 0xf8d8, 0xf7fd,
+ 0xf611, 0xf3f9, 0xf1f7, 0xf136, 0xf25f, 0xf49f,
+ 0xf704, 0xf8e9, 0xfa41, 0xfb0b, 0xfadb, 0xfa31,
+ 0xf9a9, 0xf938, 0xf98d, 0xfb0c, 0xfcdc, 0xfe98,
+ 0x0034, 0x0109, 0x008b, 0xff2c, 0xfddb, 0xfcc4,
+ 0xfbcb, 0xfb35, 0xfa8c, 0xf9e4, 0xfa85, 0xfbd5,
+ 0xfcc5, 0xfe83, 0x00fc, 0x0267, 0x02d5, 0x02ff,
+ 0x0321, 0x03e4, 0x04e8, 0x0571, 0x0681, 0x0877,
+ 0x0a00, 0x0ac7, 0x0b4e, 0x0ba0, 0x0c30, 0x0d1c,
+ 0x0d73, 0x0cf1, 0x0c05, 0x0ae6, 0x0a41, 0x0a34,
+ 0x09c8, 0x0951, 0x09c3, 0x0ab5, 0x0b8f, 0x0c06,
+ 0x0bbb, 0x0abf, 0x08f9, 0x06d7, 0x05c5, 0x0591,
+ 0x0503, 0x0478, 0x044a, 0x03ea, 0x0381, 0x0358,
+ 0x0326, 0x02bc, 0x01b1, 0xff25, 0xfb04, 0xf6b0,
+ 0xf39c, 0xf23d, 0xf29b, 0xf3f3, 0xf4e3, 0xf54f,
+ 0xf5cd, 0xf626, 0xf68c, 0xf756, 0xf7b8, 0xf743,
+ 0xf6d3, 0xf736, 0xf842, 0xf939, 0xf9d7, 0xfa63,
+ 0xfac0, 0xfadc, 0xfb20, 0xfb97, 0xfbe5, 0xfbe0,
+ 0xfb6e, 0xfa9d, 0xf9ba, 0xf919, 0xf8f9, 0xf99d,
+ 0xfae0, 0xfbb3, 0xfb31, 0xf9ef, 0xf8ed, 0xf86b,
+ 0xf843, 0xf87a, 0xf922, 0xf997, 0xf92c, 0xf8ae,
+ 0xf90e, 0xf9bb, 0xfa41, 0xfb22, 0xfc8a, 0xfe1c,
+ 0xffd9, 0x020f, 0x03fb, 0x0459, 0x03b2, 0x0321,
+ 0x0296, 0x0247, 0x02a9, 0x03c5, 0x0579, 0x066e,
+ 0x05dc, 0x053f, 0x0525, 0x0556, 0x0725, 0x0a4d,
+ 0x0ce5, 0x0eda, 0x10ad, 0x1279, 0x148c, 0x15fe,
+ 0x15f6, 0x1507, 0x12f1, 0x0f73, 0x0c57, 0x0ac4,
+ 0x09e8, 0x0974, 0x09b8, 0x0a1b, 0x09ff, 0x0992,
+ 0x08e4, 0x07db, 0x0678, 0x0473, 0x01f2, 0xffb8,
+ 0xfde9, 0xfc32, 0xfabe, 0xf9f7, 0xf9d4, 0xf9a2,
+ 0xf8e7, 0xf7ff, 0xf705, 0xf5a5, 0xf401, 0xf28d,
+ 0xf198, 0xf158, 0xf21f, 0xf3d6, 0xf537, 0xf57f,
+ 0xf5ac, 0xf61f, 0xf608, 0xf583, 0xf54d, 0xf595,
+ 0xf5ce, 0xf56c, 0xf51c, 0xf54a, 0xf565, 0xf627,
+ 0xf812, 0xf9c9, 0xfade, 0xfbb0, 0xfc0e, 0xfca2,
+ 0xfd8f, 0xfd72, 0xfc3a, 0xfb0b, 0xf9f5, 0xf8aa,
+ 0xf7e8, 0xf8ba, 0xfae5, 0xfd59, 0xff30, 0xff46,
+ 0xfdef, 0xfd43, 0xfd83, 0xfddc, 0xfed2, 0x0000,
+ 0x009a, 0x0144, 0x01cf, 0x01e7, 0x028f, 0x03a3,
+ 0x0462, 0x0535, 0x061d, 0x0698, 0x0695, 0x05fa,
+ 0x0523, 0x04fb, 0x05bd, 0x06f8, 0x084e, 0x099d,
+ 0x0acb, 0x0b87, 0x0b90, 0x0b01, 0x09ec, 0x0829,
+ 0x05ea, 0x0402, 0x02ed, 0x0283, 0x026d, 0x01dc,
+ 0x003f, 0xfe71, 0xfd44, 0xfc94, 0xfc4f, 0xfc45,
+ 0xfc09, 0xfb92, 0xface, 0xf98f, 0xf7f0, 0xf64b,
+ 0xf542, 0xf4cc, 0xf46b, 0xf4a2, 0xf5c5, 0xf718,
+ 0xf875, 0xf9dd, 0xfac1, 0xfb61, 0xfc4a, 0xfd15,
+ 0xfd15, 0xfc32, 0xfb48, 0xfb61, 0xfc84, 0xfe1d,
+ 0xffda, 0x018d, 0x02cf, 0x0313, 0x02d6, 0x032e,
+ 0x03b4, 0x03a5, 0x0391, 0x03e8, 0x047e, 0x0574,
+ 0x06c5, 0x0805, 0x087d, 0x07db, 0x075a, 0x087a,
+ 0x0b24, 0x0e1f, 0x1031, 0x10f9, 0x10fe, 0x109a,
+ 0x0fd1, 0x0ea9, 0x0d3e, 0x0c37, 0x0c13, 0x0c9a,
+ 0x0dcd, 0x0f90, 0x114e, 0x12b4, 0x136e, 0x134c,
+ 0x1280, 0x10f3, 0x0f30, 0x0e49, 0x0e01, 0x0e4c,
+ 0x100a, 0x124a, 0x1333, 0x12ad, 0x1178, 0x103a,
+ 0x0f85, 0x0f4a, 0x0f28, 0x0ee2, 0x0e8a, 0x0e6d,
+ 0x0e48, 0x0de1, 0x0d9c, 0x0d02, 0x0b44, 0x08de,
+ 0x0691, 0x049a, 0x030c, 0x018d, 0x0002, 0xff06,
+ 0xff1d, 0x007d, 0x0275, 0x038c, 0x033d, 0x01a6,
+ 0xfee1, 0xfc24, 0xfab6, 0xfa75, 0xfb11, 0xfc01,
+ 0xfc0c, 0xfb06, 0xfa36, 0xfa65, 0xfb1d, 0xfbac,
+ 0xfc45, 0xfd8d, 0xff90, 0x0195, 0x02be, 0x0319,
+ 0x037e, 0x03f5, 0x042f, 0x0451, 0x0404, 0x0367,
+ 0x0363, 0x03c1, 0x0410, 0x04ba, 0x053c, 0x04b0,
+ 0x034c, 0x01b2, 0x00e9, 0x01e2, 0x0413, 0x05fb,
+ 0x068d, 0x0638, 0x0675, 0x079c, 0x08f2, 0x0a11,
+ 0x0a99, 0x0a4d, 0x0961, 0x081c, 0x071e, 0x06db,
+ 0x077c, 0x0955, 0x0b60, 0x0c1b, 0x0c45, 0x0caa,
+ 0x0c9d, 0x0c0a, 0x0afc, 0x095e, 0x0819, 0x078f,
+ 0x071d, 0x0685, 0x05cf, 0x053a, 0x04f9, 0x0499,
+ 0x03d7, 0x02f6, 0x02a0, 0x039d, 0x055a, 0x06d3,
+ 0x07d9, 0x07db, 0x06d3, 0x0609, 0x05eb, 0x0666,
+ 0x077b, 0x080f, 0x0764, 0x0642, 0x058f, 0x05c6,
+ 0x066d, 0x06ad, 0x0695, 0x0602, 0x0506, 0x04f8,
+ 0x05f2, 0x0693, 0x0665, 0x0590, 0x04a4, 0x042a,
+ 0x0383, 0x02b7, 0x02ff, 0x0422, 0x0491, 0x03a3,
+ 0x0218, 0x012e, 0x0168, 0x0263, 0x0356, 0x0360,
+ 0x029f, 0x01aa, 0x0027, 0xfdff, 0xfbf6, 0xfa47,
+ 0xf91d, 0xf900, 0xf977, 0xf964, 0xf873, 0xf68e,
+ 0xf370, 0xefe7, 0xed27, 0xeada, 0xe8b8, 0xe7c8,
+ 0xe843, 0xe948, 0xea15, 0xea4c, 0xea90, 0xeb4f,
+ 0xebe0, 0xec81, 0xed00, 0xebb3, 0xe953, 0xe800,
+ 0xe7c0, 0xe882, 0xea55, 0xec15, 0xed74, 0xeec8,
+ 0xefe4, 0xf0e3, 0xf193, 0xf1b2, 0xf1b4, 0xf176,
+ 0xf0a3, 0xefd1, 0xef98, 0xf058, 0xf201, 0xf3ad,
+ 0xf4a3, 0xf4e7, 0xf50f, 0xf5ce, 0xf729, 0xf8fd,
+ 0xfaec, 0xfbdf, 0xfbd1, 0xfbbe, 0xfbd5, 0xfc4b,
+ 0xfd9c, 0xff79, 0x015e, 0x02d7, 0x0391, 0x03e3,
+ 0x03fb, 0x03cd, 0x036a, 0x026d, 0x010b, 0x006a,
+ 0x00e6, 0x02a0, 0x05c6, 0x08df, 0x0a5a, 0x0b02,
+ 0x0bf5, 0x0cf5, 0x0ded, 0x0f1b, 0x0fe3, 0x0fbf,
+ 0x0f08, 0x0e0b, 0x0d12, 0x0c6d, 0x0bc7, 0x0b1e,
+ 0x0ae3, 0x0a8e, 0x09d8, 0x0948, 0x0890, 0x0787,
+ 0x06c1, 0x05dd, 0x049b, 0x03d8, 0x035e, 0x022a,
+ 0x009a, 0xff4f, 0xfded, 0xfc7b, 0xfbb8, 0xfbb6,
+ 0xfbdd, 0xfbcc, 0xfb63, 0xfa96, 0xf946, 0xf754,
+ 0xf582, 0xf519, 0xf64e, 0xf878, 0xfa86, 0xfb31,
+ 0xfaa6, 0xfa10, 0xf974, 0xf895, 0xf7dc, 0xf722,
+ 0xf666, 0xf64d, 0xf6d1, 0xf7ec, 0xf9f7, 0xfbfd,
+ 0xfd0a, 0xfdeb, 0xfedb, 0xff39, 0xffbf, 0x00d6,
+ 0x019d, 0x0206, 0x024b, 0x024b, 0x02bd, 0x03b3,
+ 0x0435, 0x0469, 0x04ab, 0x04fe, 0x0618, 0x07b1,
+ 0x088b, 0x087d, 0x079b, 0x0622, 0x0544, 0x055e,
+ 0x057e, 0x04d2, 0x0329, 0x0123, 0xff49, 0xfd4e,
+ 0xfb8d, 0xfabf, 0xfa93, 0xfabb, 0xfb78, 0xfc83,
+ 0xfd04, 0xfcaa, 0xfc41, 0xfc6b, 0xfca6, 0xfce1,
+ 0xfd6e, 0xfd5e, 0xfc37, 0xfb4b, 0xfb3c, 0xfb25,
+ 0xfae8, 0xfb61, 0xfc75, 0xfd3b, 0xfdc6, 0xfea8,
+ 0xffc9, 0x00b1, 0x00c2, 0xffb7, 0xfea7, 0xfe6a,
+ 0xfe32, 0xfd9a, 0xfd27, 0xfc9d, 0xfbbc, 0xfb39,
+ 0xfb71, 0xfbe3, 0xfbfd, 0xfb95, 0xfae7, 0xfa45,
+ 0xf9f1, 0xf9ec, 0xf9be, 0xf945, 0xf901, 0xf903,
+ 0xf903, 0xf916, 0xf91b, 0xf8e7, 0xf8db, 0xf92e,
+ 0xf9aa, 0xfa40, 0xfb4d, 0xfd10, 0xfed9, 0x0005,
+ 0x00db, 0x012b, 0x00b2, 0x001c, 0xff69, 0xfe6c,
+ 0xfe6e, 0x0001, 0x0282, 0x058b, 0x085c, 0x0a68,
+ 0x0bb8, 0x0be5, 0x0b48, 0x0ac8, 0x0a05, 0x08f0,
+ 0x082a, 0x0772, 0x06b8, 0x063e, 0x05d7, 0x0576,
+ 0x04c5, 0x03c6, 0x033d, 0x02bb, 0x01a2, 0x00b1,
+ 0x0034, 0xfff6, 0xffb1, 0xfea4, 0xfd3b, 0xfca3,
+ 0xfcab, 0xfcf2, 0xfd9a, 0xfe9d, 0x002b, 0x01c1,
+ 0x0273, 0x02d4, 0x03c2, 0x04e0, 0x058a, 0x0588,
+ 0x04f8, 0x03d9, 0x0245, 0x00e7, 0x0028, 0xfff5,
+ 0x004c, 0x00c4, 0x00d5, 0x009e, 0x0029, 0xff6b,
+ 0xfea2, 0xfdf3, 0xfd63, 0xfce2, 0xfcae, 0xfd4f,
+ 0xfe54, 0xfec2, 0xfea9, 0xfe93, 0xfe63, 0xfd88,
+ 0xfc20, 0xfb23, 0xfa8e, 0xf9c6, 0xf968, 0xf9be,
+ 0xfa03, 0xfa18, 0xfa2a, 0xfa1f, 0xfa12, 0xfa18,
+ 0xfa92, 0xfbae, 0xfce0, 0xfe35, 0x0001, 0x01ce,
+ 0x0315, 0x039a, 0x03cc, 0x045e, 0x048d, 0x03b3,
+ 0x02d6, 0x0268, 0x0228, 0x023e, 0x0288, 0x02cc,
+ 0x02df, 0x02ce, 0x0345, 0x042f, 0x0545, 0x0726,
+ 0x0929, 0x0a4a, 0x0b4d, 0x0c60, 0x0cec, 0x0d1d,
+ 0x0c81, 0x0b26, 0x0a77, 0x0a80, 0x0a91, 0x0b38,
+ 0x0c7b, 0x0d65, 0x0db6, 0x0db9, 0x0d45, 0x0c0c,
+ 0x0a5c, 0x08d0, 0x07af, 0x0730, 0x075f, 0x0811,
+ 0x0933, 0x0a6b, 0x0b72, 0x0c9c, 0x0e37, 0x1007,
+ 0x1147, 0x113a, 0x1061, 0x0f90, 0x0ec3, 0x0de2,
+ 0x0ce4, 0x0bfa, 0x0ba2, 0x0b7f, 0x0b5a, 0x0b85,
+ 0x0ae9, 0x092a, 0x07ff, 0x0770, 0x06a3, 0x067d,
+ 0x0722, 0x07d6, 0x08ba, 0x0942, 0x08e9, 0x088a,
+ 0x0839, 0x0771, 0x06ac, 0x060a, 0x0518, 0x0450,
+ 0x0420, 0x0412, 0x03b9, 0x02fb, 0x01ec, 0x012a,
+ 0x0170, 0x02f7, 0x0545, 0x0715, 0x07af, 0x07e2,
+ 0x0823, 0x07ef, 0x0771, 0x06f8, 0x0620, 0x052f,
+ 0x04e1, 0x052c, 0x05ac, 0x05f1, 0x0597, 0x0519,
+ 0x0561, 0x066a, 0x075a, 0x078a, 0x070b, 0x0696,
+ 0x06d8, 0x07bc, 0x088c, 0x0893, 0x0785, 0x05d2,
+ 0x041f, 0x028b, 0x017a, 0x014f, 0x0145, 0x00e7,
+ 0x0121, 0x0271, 0x0456, 0x060f, 0x06db, 0x0695,
+ 0x0599, 0x041c, 0x028a, 0x015f, 0x00cc, 0x00e8,
+ 0x016d, 0x0230, 0x032c, 0x0388, 0x02bb, 0x01b4,
+ 0x0140, 0x019e, 0x0303, 0x04c8, 0x05b1, 0x056e,
+ 0x04d5, 0x0485, 0x042b, 0x03b9, 0x0393, 0x0376,
+ 0x036e, 0x0416, 0x051f, 0x0605, 0x0672, 0x05ac,
+ 0x03eb, 0x0225, 0x00bb, 0x0061, 0x018d, 0x0320,
+ 0x03fb, 0x03fa, 0x0342, 0x023a, 0x0108, 0xffc2,
+ 0xff0e, 0xff1e, 0xff79, 0x0025, 0x0136, 0x025d,
+ 0x03b6, 0x0544, 0x0645, 0x0631, 0x05ad, 0x0576,
+ 0x0549, 0x04ca, 0x041c, 0x032e, 0x020c, 0x0126,
+ 0x005e, 0xffa2, 0xff86, 0xffb8, 0xff27, 0xfdec,
+ 0xfc88, 0xfb10, 0xfa27, 0xfa49, 0xfae0, 0xfb74,
+ 0xfbf1, 0xfc12, 0xfbdc, 0xfb3d, 0xfa13, 0xf929,
+ 0xf904, 0xf8d1, 0xf831, 0xf7c5, 0xf797, 0xf770,
+ 0xf799, 0xf7b6, 0xf700, 0xf601, 0xf5b4, 0xf5fa,
+ 0xf6e1, 0xf8d0, 0xfb3a, 0xfd9d, 0xffb3, 0x0041,
+ 0xff0b, 0xfd6a, 0xfbb5, 0xf989, 0xf781, 0xf692,
+ 0xf744, 0xf8d8, 0xf991, 0xf939, 0xf8ea, 0xf8a8,
+ 0xf832, 0xf7e3, 0xf76a, 0xf6b0, 0xf6bb, 0xf76a,
+ 0xf736, 0xf64a, 0xf634, 0xf724, 0xf85a, 0xf92c,
+ 0xf8a2, 0xf6bb, 0xf50d, 0xf4c0, 0xf5b2, 0xf740,
+ 0xf84a, 0xf7b0, 0xf5ad, 0xf398, 0xf26c, 0xf264,
+ 0xf357, 0xf484, 0xf55e, 0xf688, 0xf83b, 0xf98f,
+ 0xfa83, 0xfba3, 0xfca4, 0xfda5, 0xff1f, 0x0059,
+ 0x008e, 0x0021, 0xffaf, 0xffaa, 0x00a4, 0x0270,
+ 0x03eb, 0x0481, 0x04a5, 0x04d1, 0x0539, 0x05d3,
+ 0x061b, 0x0581, 0x0415, 0x02d1, 0x02ab, 0x0309,
+ 0x02b4, 0x01d0, 0x0138, 0x013a, 0x0168, 0x0123,
+ 0x00c2, 0x00c3, 0x00d8, 0x014e, 0x02b5, 0x0477,
+ 0x05b0, 0x0560, 0x02f8, 0xffd2, 0xfd83, 0xfc7b,
+ 0xfca2, 0xfce7, 0xfc55, 0xfb8b, 0xfafd, 0xfa62,
+ 0xf9ce, 0xf98d, 0xf9f2, 0xfab8, 0xfb38, 0xfbf0,
+ 0xfd6e, 0xff24, 0x00a4, 0x0182, 0x018a, 0x017c,
+ 0x0184, 0x0134, 0x009c, 0xff93, 0xfe6b, 0xfe37,
+ 0xfeaf, 0xfec5, 0xfe71, 0xfe48, 0xfea7, 0xff24,
+ 0xff06, 0xfea0, 0xfe99, 0xfec5, 0xfed3, 0xfeb5,
+ 0xfe39, 0xfd46, 0xfc64, 0xfbe2, 0xfb12, 0xf9f2,
+ 0xf979, 0xf978, 0xf940, 0xf8fd, 0xf8e5, 0xf9a3,
+ 0xfbff, 0xff09, 0x014d, 0x025c, 0x0218, 0x00e6,
+ 0xffad, 0xfeef, 0xfecf, 0xfee4, 0xfe7f, 0xfd6b,
+ 0xfbe8, 0xfaec, 0xfb95, 0xfdad, 0x0019, 0x0227,
+ 0x03fb, 0x0642, 0x089c, 0x09df, 0x09e5, 0x08dd,
+ 0x06f9, 0x0554, 0x044c, 0x0302, 0x01ab, 0x012c,
+ 0x0146, 0x0171, 0x01a3, 0x017b, 0x00bd, 0x002f,
+ 0x001a, 0xffc1, 0xff16, 0xfe5b, 0xfd4f, 0xfc2d,
+ 0xfb4b, 0xfac2, 0xfaed, 0xfb67, 0xfb93, 0xfbcb,
+ 0xfbed, 0xfbe1, 0xfca9, 0xfe13, 0xff03, 0xffae,
+ 0x007a, 0x0154, 0x025e, 0x0362, 0x03f4, 0x040b,
+ 0x03b6, 0x033b, 0x032a, 0x03a9, 0x03f5, 0x037b,
+ 0x02ea, 0x02c5, 0x02b5, 0x02b9, 0x02ab, 0x023f,
+ 0x020f, 0x024e, 0x02bf, 0x03b6, 0x04a8, 0x04b4,
+ 0x040f, 0x02ac, 0x009d, 0xfe8f, 0xfc44, 0xf9f2,
+ 0xf8d2, 0xf908, 0xf9d6, 0xfa41, 0xf9b8, 0xf946,
+ 0xf977, 0xf967, 0xf95c, 0xf9f5, 0xfabc, 0xfbae,
+ 0xfd18, 0xfedf, 0x00d2, 0x021e, 0x01f9, 0x00a8,
+ 0xfebf, 0xfd20, 0xfcd7, 0xfda5, 0xfe9c, 0xffad,
+ 0x0150, 0x0399, 0x063f, 0x08ad, 0x09fe, 0x09ec,
+ 0x0952, 0x08e3, 0x087d, 0x0802, 0x0781, 0x0732,
+ 0x077c, 0x0811, 0x07cb, 0x0623, 0x040d, 0x02ca,
+ 0x022f, 0x017a, 0x00d7, 0x0067, 0xffcb, 0xff20,
+ 0xfe68, 0xfd4b, 0xfbda, 0xfa43, 0xf8e3, 0xf816,
+ 0xf775, 0xf6ff, 0xf735, 0xf795, 0xf7d4, 0xf892,
+ 0xf967, 0xf997, 0xf98a, 0xf944, 0xf857, 0xf736,
+ 0xf650, 0xf5cc, 0xf684, 0xf8a7, 0xfabb, 0xfbd2,
+ 0xfc67, 0xfc74, 0xfbcf, 0xfb8f, 0xfc77, 0xfdac,
+ 0xfe5a, 0xfe99, 0xfec0, 0xff4c, 0x0099, 0x024c,
+ 0x03d7, 0x04f4, 0x0545, 0x04de, 0x0498, 0x04f0,
+ 0x05e8, 0x07b9, 0x09ec, 0x0b52, 0x0bc9, 0x0c05,
+ 0x0c15, 0x0c0a, 0x0c90, 0x0dc2, 0x0f08, 0x102a,
+ 0x1106, 0x10ea, 0x0fc0, 0x0ebb, 0x0eb1, 0x0f47,
+ 0x1060, 0x1251, 0x1498, 0x15d4, 0x1548, 0x13c0,
+ 0x1249, 0x10da, 0x0f54, 0x0e68, 0x0e60, 0x0ee6,
+ 0x1003, 0x119f, 0x1303, 0x13ac, 0x13d1, 0x13dd,
+ 0x13b1, 0x12bc, 0x1101, 0x0f30, 0x0dcb, 0x0d08,
+ 0x0cb2, 0x0c1a, 0x0b1b, 0x0a71, 0x0a9d, 0x0b65,
+ 0x0c33, 0x0c7c, 0x0be8, 0x0a26, 0x0749, 0x043d,
+ 0x020e, 0x0123, 0x0171, 0x0276, 0x034e, 0x0370,
+ 0x02ee, 0x021d, 0x0168, 0x011e, 0x0126, 0x00dd,
+ 0xffb7, 0xfde2, 0xfc0e, 0xfaf0, 0xfae1, 0xfb9a,
+ 0xfccc, 0xfe3b, 0xff34, 0xff54, 0xff1d, 0xfef5,
+ 0xfec3, 0xfe50, 0xfd58, 0xfbdf, 0xfa28, 0xf86a,
+ 0xf753, 0xf7e4, 0xfa3f, 0xfd54, 0xfff8, 0x01aa,
+ 0x022c, 0x0185, 0x008c, 0x001e, 0x0070, 0x0150,
+ 0x01a6, 0x0078, 0xfebe, 0xfde0, 0xfe34, 0xff74,
+ 0x00da, 0x01f8, 0x0327, 0x03ff, 0x03f6, 0x03a0,
+ 0x033b, 0x02b8, 0x02c4, 0x038a, 0x0475, 0x0536,
+ 0x05af, 0x0597, 0x04b5, 0x037b, 0x02c3, 0x0280,
+ 0x0228, 0x01a3, 0x0117, 0x012d, 0x026f, 0x0433,
+ 0x05e9, 0x0762, 0x080a, 0x0854, 0x0912, 0x098e,
+ 0x096b, 0x097d, 0x09f9, 0x0ab3, 0x0b9d, 0x0c52,
+ 0x0c8c, 0x0c56, 0x0bce, 0x0b13, 0x0a3a, 0x09aa,
+ 0x09c2, 0x09f4, 0x09cf, 0x09d2, 0x0a3b, 0x0aac,
+ 0x0aaf, 0x09ce, 0x0857, 0x0762, 0x0735, 0x073a,
+ 0x0733, 0x06e3, 0x0617, 0x056e, 0x0585, 0x062f,
+ 0x06f4, 0x06fc, 0x0595, 0x033b, 0x00ae, 0xfe8c,
+ 0xfdae, 0xfdcf, 0xfd6c, 0xfbd0, 0xf92b, 0xf5f1,
+ 0xf314, 0xf151, 0xf0b3, 0xf115, 0xf241, 0xf3b1,
+ 0xf49d, 0xf49f, 0xf40f, 0xf372, 0xf367, 0xf450,
+ 0xf53b, 0xf547, 0xf512, 0xf51e, 0xf54a, 0xf5bc,
+ 0xf63e, 0xf6b3, 0xf7f5, 0xfa0f, 0xfbc6, 0xfcda,
+ 0xfe06, 0xff16, 0xff4b, 0xfede, 0xfe56, 0xfdaa,
+ 0xfd30, 0xfd64, 0xfdca, 0xfe0e, 0xfe93, 0xfef9,
+ 0xfe80, 0xfd7c, 0xfcd4, 0xfcda, 0xfcfd, 0xfcbd,
+ 0xfcae, 0xfd70, 0xfe84, 0xff28, 0xff1b, 0xfe54,
+ 0xfd31, 0xfc74, 0xfc5c, 0xfc50, 0xfbac, 0xfa8e,
+ 0xf977, 0xf8c4, 0xf8bd, 0xf985, 0xfb1d, 0xfd46,
+ 0xff2b, 0x0018, 0x003f, 0xffb8, 0xfe51, 0xfcc8,
+ 0xfc27, 0xfc5f, 0xfce9, 0xfdc0, 0xff01, 0x0071,
+ 0x01b6, 0x02bc, 0x03a6, 0x0464, 0x04ab, 0x0467,
+ 0x03e9, 0x0350, 0x0242, 0x00d8, 0xffc7, 0xff6f,
+ 0xffe8, 0x013c, 0x0302, 0x047e, 0x0537, 0x052c,
+ 0x04c9, 0x0451, 0x03b5, 0x031f, 0x02d0, 0x02c3,
+ 0x0307, 0x0396, 0x03f6, 0x03b6, 0x02e1, 0x01bd,
+ 0x0049, 0xfe55, 0xfc43, 0xfaa3, 0xf96b, 0xf890,
+ 0xf864, 0xf8d8, 0xf990, 0xfa41, 0xfaa8, 0xfad3,
+ 0xfb1f, 0xfb96, 0xfbe1, 0xfb8e, 0xfa23, 0xf7f6,
+ 0xf683, 0xf6d3, 0xf85d, 0xf9e7, 0xfa69, 0xf9e3,
+ 0xf9c4, 0xfae2, 0xfc1a, 0xfc71, 0xfc17, 0xfb02,
+ 0xf930, 0xf7aa, 0xf7a7, 0xf90a, 0xfa87, 0xfb87,
+ 0xfc6a, 0xfcee, 0xfcce, 0xfc94, 0xfc67, 0xfc55,
+ 0xfce2, 0xfde7, 0xfeee, 0xffc2, 0xffaf, 0xfe8d,
+ 0xfd97, 0xfdae, 0xfe9f, 0x0014, 0x01f2, 0x03db,
+ 0x04fd, 0x04df, 0x0408, 0x0301, 0x01a5, 0xffc6,
+ 0xfdf4, 0xfd2c, 0xfd68, 0xfdfe, 0xff57, 0x0179,
+ 0x02e3, 0x0317, 0x02ec, 0x02ac, 0x0273, 0x023b,
+ 0x0193, 0x00f0, 0x00e3, 0x00ce, 0x0089, 0x00a7,
+ 0x00cf, 0x0063, 0xffaf, 0xff44, 0xff49, 0xff94,
+ 0xfffd, 0x0062, 0x00a7, 0x0113, 0x021f, 0x0380,
+ 0x042b, 0x0371, 0x018b, 0xff82, 0xfe94, 0xfeff,
+ 0xff9a, 0xff6e, 0xfed7, 0xfe77, 0xfe3a, 0xfe12,
+ 0xfe6a, 0xff62, 0x008a, 0x0194, 0x0261, 0x02b2,
+ 0x02ac, 0x02d5, 0x031f, 0x034b, 0x037c, 0x0392,
+ 0x0350, 0x02ae, 0x016a, 0xff9d, 0xfe21, 0xfd8f,
+ 0xfdf5, 0xfeef, 0xff85, 0xff13, 0xfdf2, 0xfce2,
+ 0xfc68, 0xfc85, 0xfd0e, 0xfddd, 0xfe65, 0xfe45,
+ 0xfe18, 0xfe98, 0xff6c, 0xff58, 0xfdd9, 0xfbdb,
+ 0xfa01, 0xf87a, 0xf83f, 0xf97a, 0xfaba, 0xfb74,
+ 0xfc15, 0xfc66, 0xfc1c, 0xfb66, 0xfab7, 0xfab0,
+ 0xfb5e, 0xfc3f, 0xfcfe, 0xfd53, 0xfcf9, 0xfc12,
+ 0xfb49, 0xfb77, 0xfcbb, 0xfe73, 0x0046, 0x0227,
+ 0x03c1, 0x04c6, 0x055a, 0x05e0, 0x0661, 0x06a1,
+ 0x06a3, 0x064d, 0x0548, 0x03b0, 0x021d, 0x0175,
+ 0x0240, 0x03a7, 0x04c5, 0x05ef, 0x0712, 0x0780,
+ 0x0786, 0x07b1, 0x07fa, 0x0894, 0x0961, 0x095b,
+ 0x0805, 0x061a, 0x0452, 0x030e, 0x02be, 0x030d,
+ 0x02aa, 0x012d, 0xffaa, 0xff28, 0xffaf, 0x007e,
+ 0x0101, 0x012a, 0x00d5, 0x002e, 0x0024, 0x00e3,
+ 0x01a7, 0x0262, 0x035f, 0x044d, 0x04ed, 0x056a,
+ 0x05fa, 0x06a2, 0x0708, 0x0708, 0x0746, 0x0834,
+ 0x0946, 0x09c5, 0x09a2, 0x092a, 0x08b3, 0x085b,
+ 0x07ef, 0x0774, 0x071c, 0x06fe, 0x075a, 0x07f5,
+ 0x07ad, 0x064f, 0x04c3, 0x034f, 0x0217, 0x0182,
+ 0x014f, 0x016b, 0x0220, 0x02f4, 0x038e, 0x0437,
+ 0x048d, 0x03f1, 0x02da, 0x0269, 0x0312, 0x03ea,
+ 0x03c2, 0x026f, 0x0095, 0xff21, 0xfecd, 0xff9e,
+ 0x0114, 0x0258, 0x02ef, 0x0364, 0x03d9, 0x0387,
+ 0x028a, 0x01b3, 0x014b, 0x0161, 0x01b9, 0x01e1,
+ 0x01f3, 0x01fa, 0x0196, 0x00d6, 0x0044, 0x0048,
+ 0x00a9, 0x00bd, 0x00a3, 0x00f3, 0x016f, 0x01af,
+ 0x01d8, 0x0215, 0x02a1, 0x037a, 0x041b, 0x0455,
+ 0x0469, 0x0467, 0x0470, 0x0459, 0x03bd, 0x0351,
+ 0x0424, 0x05d0, 0x0767, 0x0895, 0x0939, 0x09be,
+ 0x0af5, 0x0ccf, 0x0e8f, 0x0fa0, 0x0f9c, 0x0f00,
+ 0x0ed3, 0x0f06, 0x0efe, 0x0eb4, 0x0e40, 0x0e10,
+ 0x0f03, 0x1142, 0x140c, 0x164c, 0x1734, 0x1712,
+ 0x169d, 0x160a, 0x15ab, 0x158e, 0x14f0, 0x13b5,
+ 0x1298, 0x11c1, 0x10e1, 0x0fdd, 0x0edd, 0x0e61,
+ 0x0eb7, 0x0f64, 0x0fb6, 0x0f55, 0x0e1e, 0x0c2e,
+ 0x09f4, 0x07c3, 0x05ae, 0x03f1, 0x0257, 0x0020,
+ 0xfd99, 0xfbae, 0xfa15, 0xf82e, 0xf607, 0xf376,
+ 0xf0be, 0xeefb, 0xee70, 0xee5f, 0xee55, 0xee32,
+ 0xede9, 0xed63, 0xec71, 0xeb45, 0xea97, 0xeb26,
+ 0xed00, 0xef55, 0xf182, 0xf382, 0xf4f3, 0xf504,
+ 0xf3a7, 0xf202, 0xf180, 0xf28f, 0xf48b, 0xf6b3,
+ 0xf867, 0xf938, 0xf92e, 0xf8b3, 0xf86f, 0xf901,
+ 0xfa9c, 0xfcef, 0xff01, 0xffb8, 0xfecf, 0xfcbe,
+ 0xfa8b, 0xf966, 0xf95a, 0xf9e9, 0xfb46, 0xfd25,
+ 0xfeb7, 0x000c, 0x012c, 0x01dc, 0x029e, 0x036a,
+ 0x0362, 0x02d1, 0x02e9, 0x0401, 0x055d, 0x061e,
+ 0x0624, 0x060b, 0x063a, 0x0698, 0x0704, 0x0765,
+ 0x07a0, 0x07e7, 0x087d, 0x091a, 0x095e, 0x0975,
+ 0x096f, 0x0904, 0x085c, 0x07f6, 0x07e6, 0x0796,
+ 0x062a, 0x037e, 0x00a1, 0xfeef, 0xfec8, 0xff60,
+ 0xfffd, 0x00c0, 0x01c1, 0x02b0, 0x0348, 0x0345,
+ 0x02da, 0x0291, 0x023b, 0x014c, 0xff9f, 0xfd65,
+ 0xfb9c, 0xfb31, 0xfb8f, 0xfbe8, 0xfc76, 0xfd56,
+ 0xfdd9, 0xfd23, 0xfb42, 0xf961, 0xf88a, 0xf8df,
+ 0xf9b8, 0xf9eb, 0xf924, 0xf873, 0xf8aa, 0xf96f,
+ 0xf9ce, 0xf91b, 0xf778, 0xf560, 0xf350, 0xf1f2,
+ 0xf1a8, 0xf242, 0xf311, 0xf358, 0xf336, 0xf33a,
+ 0xf373, 0xf40a, 0xf532, 0xf6be, 0xf8b0, 0xfabb,
+ 0xfc36, 0xfd19, 0xfd3c, 0xfc7d, 0xfbf0, 0xfc42,
+ 0xfc9e, 0xfca5, 0xfd00, 0xfe2c, 0xffe0, 0x014c,
+ 0x020d, 0x0269, 0x0298, 0x0289, 0x0229, 0x01dc,
+ 0x027a, 0x0408, 0x0595, 0x0696, 0x0714, 0x0740,
+ 0x07ad, 0x08b5, 0x099a, 0x094e, 0x0834, 0x07b9,
+ 0x081a, 0x0861, 0x0816, 0x0766, 0x0699, 0x05e5,
+ 0x053b, 0x0468, 0x0335, 0x0157, 0xfefe, 0xfced,
+ 0xfc10, 0xfced, 0xfee1, 0x004b, 0x000d, 0xfe4c,
+ 0xfbd1, 0xf96d, 0xf7ff, 0xf7df, 0xf832, 0xf85e,
+ 0xf8fa, 0xf9c5, 0xf994, 0xf8a4, 0xf7d9, 0xf737,
+ 0xf687, 0xf5ca, 0xf555, 0xf5a3, 0xf672, 0xf736,
+ 0xf7db, 0xf82d, 0xf802, 0xf7c9, 0xf83d, 0xf9c3,
+ 0xfbd8, 0xfdb1, 0xff48, 0x0073, 0x0074, 0xff4b,
+ 0xfddb, 0xfd0b, 0xfd33, 0xfde7, 0xfebf, 0xff8b,
+ 0xffb0, 0xff38, 0xff57, 0x004b, 0x014e, 0x0263,
+ 0x0395, 0x0407, 0x039f, 0x033c, 0x0307, 0x0292,
+ 0x01cb, 0x0126, 0x0172, 0x02c8, 0x0423, 0x04ec,
+ 0x0509, 0x043c, 0x0358, 0x0354, 0x0379, 0x034c,
+ 0x0372, 0x03cf, 0x041a, 0x046d, 0x0436, 0x0366,
+ 0x02ba, 0x01fd, 0x00da, 0xffe2, 0xff24, 0xfe4d,
+ 0xfd9d, 0xfd53, 0xfd55, 0xfd83, 0xfdbd, 0xfe21,
+ 0xfed8, 0xff9b, 0x0000, 0xffed, 0xff59, 0xfe5a,
+ 0xfd3c, 0xfc45, 0xfb90, 0xfb02, 0xfa83, 0xfa4f,
+ 0xfa94, 0xfb1a, 0xfb87, 0xfb88, 0xfb09, 0xfa66,
+ 0xf9d5, 0xf984, 0xf9ed, 0xfae2, 0xfb9c, 0xfbf3,
+ 0xfbfd, 0xfb8e, 0xfb0b, 0xfb47, 0xfc94, 0xfe81,
+ 0x003f, 0x016c, 0x0223, 0x024c, 0x01d2, 0x010e,
+ 0x0055, 0xffdd, 0x000a, 0x0104, 0x025c, 0x03a2,
+ 0x04cd, 0x05d4, 0x0673, 0x0690, 0x0663, 0x060c,
+ 0x0546, 0x03ed, 0x02a5, 0x0223, 0x025d, 0x0317,
+ 0x0445, 0x05a5, 0x06f5, 0x082e, 0x0970, 0x0ad9,
+ 0x0c42, 0x0d31, 0x0d32, 0x0c5b, 0x0bac, 0x0bdd,
+ 0x0c4d, 0x0c74, 0x0c8c, 0x0c88, 0x0c54, 0x0c3e,
+ 0x0c55, 0x0c2d, 0x0b43, 0x09df, 0x08fd, 0x089e,
+ 0x07f7, 0x06f6, 0x05c6, 0x046a, 0x035e, 0x0348,
+ 0x0459, 0x05eb, 0x06d1, 0x069e, 0x0590, 0x03df,
+ 0x0244, 0x019e, 0x01dd, 0x0251, 0x027e, 0x0218,
+ 0x00fd, 0xff8e, 0xfe75, 0xfdee, 0xfdcd, 0xfdb8,
+ 0xfd1b, 0xfbfc, 0xfad5, 0xf9c5, 0xf959, 0xf9d4,
+ 0xfa3e, 0xfa68, 0xfb0a, 0xfbeb, 0xfcc6, 0xfdd6,
+ 0xff13, 0x003d, 0x0092, 0xffc5, 0xfefa, 0xfeae,
+ 0xfe78, 0xfe89, 0xfebc, 0xfea0, 0xfe6a, 0xfe3f,
+ 0xfe2b, 0xfe7a, 0xff64, 0x013d, 0x03ee, 0x06ad,
+ 0x0904, 0x0ab9, 0x0b81, 0x0b78, 0x0b10, 0x0ade,
+ 0x0b4b, 0x0c76, 0x0e5d, 0x1045, 0x1121, 0x10c6,
+ 0x0f84, 0x0df0, 0x0cee, 0x0ca3, 0x0ccf, 0x0d3d,
+ 0x0d5d, 0x0d35, 0x0d5e, 0x0dd2, 0x0e80, 0x0f5a,
+ 0x0ff2, 0x104c, 0x1078, 0x1073, 0x1082, 0x1069,
+ 0x0ffd, 0x0fe2, 0x101a, 0x102f, 0x100e, 0x0f72,
+ 0x0e70, 0x0dc9, 0x0dd9, 0x0e95, 0x0f95, 0x1005,
+ 0x0f98, 0x0e84, 0x0d1d, 0x0bf2, 0x0b2b, 0x0a76,
+ 0x0985, 0x07ff, 0x05fd, 0x0413, 0x0296, 0x0193,
+ 0x00d9, 0xffd4, 0xfe03, 0xfb5f, 0xf87c, 0xf655,
+ 0xf54d, 0xf504, 0xf522, 0xf584, 0xf5d6, 0xf58c,
+ 0xf4a1, 0xf396, 0xf232, 0xefee, 0xed52, 0xeb39,
+ 0xea31, 0xeaba, 0xec75, 0xee5b, 0xf01a, 0xf1da,
+ 0xf355, 0xf432, 0xf4e5, 0xf62c, 0xf7cb, 0xf936,
+ 0xfaa3, 0xfbe9, 0xfc5d, 0xfc29, 0xfbfc, 0xfc6c,
+ 0xfd6e, 0xfe19, 0xfe19, 0xfdf1, 0xfdad, 0xfd5d,
+ 0xfd87, 0xfe71, 0x0022, 0x020c, 0x0337, 0x03c3,
+ 0x048d, 0x05b9, 0x06a4, 0x06b2, 0x0607, 0x0545,
+ 0x04dc, 0x0516, 0x05bb, 0x0612, 0x05ff, 0x05ab,
+ 0x04de, 0x03c5, 0x031d, 0x0363, 0x0446, 0x052b,
+ 0x0615, 0x071e, 0x07e0, 0x0800, 0x0721, 0x0568,
+ 0x0415, 0x03bf, 0x03bf, 0x0380, 0x028f, 0x00ec,
+ 0xff34, 0xfd93, 0xfc36, 0xfb8d, 0xfb83, 0xfc2e,
+ 0xfdcb, 0xff94, 0x00b3, 0x010e, 0x00d2, 0x0082,
+ 0x0075, 0x002c, 0xff33, 0xfdfd, 0xfd58, 0xfd29,
+ 0xfcb8, 0xfc1e, 0xfc04, 0xfc63, 0xfccc, 0xfd64,
+ 0xfe7a, 0xff87, 0x0000, 0x008c, 0x01ae, 0x02a3,
+ 0x02ca, 0x0260, 0x01b1, 0x00be, 0xffba, 0xff2c,
+ 0xff0c, 0xfecb, 0xfeb1, 0xff45, 0x0034, 0x012f,
+ 0x01d4, 0x0192, 0x00d4, 0xffff, 0xfe64, 0xfc09,
+ 0xfa22, 0xf96f, 0xf9f6, 0xfba5, 0xfdfa, 0x000b,
+ 0x0194, 0x02d1, 0x03b8, 0x0415, 0x034d, 0x00da,
+ 0xfdc8, 0xfb73, 0xf9e3, 0xf905, 0xf8b3, 0xf837,
+ 0xf7ad, 0xf7cc, 0xf8a7, 0xf9f6, 0xfb31, 0xfbe5,
+ 0xfc50, 0xfcd5, 0xfd6a, 0xfd9f, 0xfd1c, 0xfc4b,
+ 0xfb98, 0xfb04, 0xfac4, 0xfafd, 0xfb78, 0xfbe8,
+ 0xfbc9, 0xfb2b, 0xfadd, 0xfb42, 0xfc3a, 0xfd6a,
+ 0xfe3a, 0xfe3e, 0xfd5c, 0xfc23, 0xfbb8, 0xfc83,
+ 0xfded, 0xff1c, 0xff5e, 0xfed2, 0xfdfe, 0xfcec,
+ 0xfbbb, 0xfaad, 0xf9b4, 0xf8f3, 0xf8b8, 0xf949,
+ 0xfaaf, 0xfc44, 0xfd99, 0xfed4, 0xff89, 0xff43,
+ 0xfe5c, 0xfd76, 0xfd4a, 0xfe1f, 0xff75, 0x00d1,
+ 0x01a2, 0x0137, 0x0007, 0xff55, 0xff90, 0x0027,
+ 0x0075, 0x007b, 0x00ac, 0x0168, 0x02e4, 0x04b1,
+ 0x0604, 0x0694, 0x0677, 0x0625, 0x064b, 0x0670,
+ 0x05bf, 0x0482, 0x030d, 0x0185, 0x00e9, 0x0197,
+ 0x0279, 0x0308, 0x037a, 0x0365, 0x0257, 0x0112,
+ 0x00dd, 0x01ea, 0x034f, 0x0466, 0x0524, 0x056c,
+ 0x051c, 0x045a, 0x0351, 0x0215, 0x00f4, 0x0062,
+ 0x005b, 0x0020, 0xff3a, 0xfe2e, 0xfdbb, 0xfdc2,
+ 0xfdb5, 0xfdba, 0xfe1e, 0xfe4e, 0xfdff, 0xfe05,
+ 0xfed5, 0xfff5, 0x00a3, 0x0031, 0xfec4, 0xfd1b,
+ 0xfb8a, 0xfa74, 0xfa47, 0xfaac, 0xfb64, 0xfc9b,
+ 0xfdce, 0xfe32, 0xfdcf, 0xfd57, 0xfd77, 0xfe66,
+ 0xffd8, 0x0130, 0x01eb, 0x01ef, 0x0143, 0xfffe,
+ 0xfe96, 0xfd9a, 0xfd66, 0xfdec, 0xfeaa, 0xff66,
+ 0x0029, 0x00d6, 0x0194, 0x028c, 0x0387, 0x043c,
+ 0x0459, 0x0410, 0x03f3, 0x03a6, 0x0302, 0x02ff,
+ 0x03e1, 0x0513, 0x060b, 0x0658, 0x0638, 0x05fa,
+ 0x0556, 0x047a, 0x0397, 0x028b, 0x01cd, 0x01a4,
+ 0x020a, 0x033e, 0x0488, 0x0511, 0x054d, 0x0567,
+ 0x0501, 0x0455, 0x03bc, 0x0356, 0x0300, 0x026f,
+ 0x01cb, 0x015d, 0x0159, 0x0217, 0x035a, 0x045a,
+ 0x04db, 0x0542, 0x05d5, 0x064d, 0x066b, 0x067c,
+ 0x069d, 0x069e, 0x06a7, 0x06d3, 0x06ed, 0x06c1,
+ 0x0663, 0x063c, 0x062d, 0x059e, 0x04cc, 0x03f7,
+ 0x02b6, 0x017c, 0x0108, 0x00d0, 0x0078, 0x006b,
+ 0x008d, 0x0101, 0x0244, 0x035b, 0x0330, 0x028c,
+ 0x0269, 0x02eb, 0x03ce, 0x0432, 0x03a7, 0x02b7,
+ 0x019d, 0x0072, 0xff54, 0xfe03, 0xfcf4, 0xfc66,
+ 0xfb85, 0xfa9f, 0xfabe, 0xfbcb, 0xfd89, 0xff8f,
+ 0x00e8, 0x015c, 0x0112, 0x0009, 0xfe72, 0xfc53,
+ 0xf9f8, 0xf819, 0xf702, 0xf6bf, 0xf767, 0xf902,
+ 0xfb43, 0xfd1c, 0xfdff, 0xfeb0, 0xffb3, 0x00c9,
+ 0x0187, 0x019d, 0x017a, 0x0166, 0x0128, 0x017a,
+ 0x0316, 0x056f, 0x07bb, 0x095a, 0x0a01, 0x09ce,
+ 0x08c1, 0x078d, 0x0746, 0x07a3, 0x0810, 0x08c6,
+ 0x097a, 0x0977, 0x08c6, 0x07ed, 0x073c, 0x0707,
+ 0x07c2, 0x08f3, 0x09b3, 0x0a3f, 0x0afe, 0x0ba8,
+ 0x0c26, 0x0c4f, 0x0c0c, 0x0bb4, 0x0b34, 0x0a97,
+ 0x0a8a, 0x0b3d, 0x0c3d, 0x0d3f, 0x0e94, 0x1072,
+ 0x11fe, 0x12d3, 0x139f, 0x1452, 0x1464, 0x139a,
+ 0x11e5, 0x101d, 0x0e9f, 0x0cc4, 0x0b18, 0x0a1a,
+ 0x0919, 0x085c, 0x080d, 0x0733, 0x05b3, 0x0444,
+ 0x03a7, 0x0436, 0x052a, 0x05aa, 0x0525, 0x032b,
+ 0x00a3, 0xfe60, 0xfbd4, 0xf91e, 0xf6cc, 0xf4d7,
+ 0xf39d, 0xf333, 0xf306, 0xf325, 0xf3d4, 0xf4a6,
+ 0xf4f2, 0xf49b, 0xf3ef, 0xf2cd, 0xf15a, 0xf06a,
+ 0xeff6, 0xef86, 0xef64, 0xefb8, 0xf077, 0xf1b6,
+ 0xf309, 0xf43e, 0xf549, 0xf591, 0xf55c, 0xf58f,
+ 0xf5fd, 0xf670, 0xf764, 0xf8dc, 0xfaa3, 0xfcb0,
+ 0xfe4f, 0xfed8, 0xfe9e, 0xfe16, 0xfda3, 0xfde9,
+ 0xfefa, 0x0075, 0x026d, 0x04d7, 0x0706, 0x0836,
+ 0x0823, 0x079e, 0x07b6, 0x0881, 0x09b5, 0x0b13,
+ 0x0c28, 0x0cec, 0x0d8a, 0x0dce, 0x0da0, 0x0cf8,
+ 0x0be2, 0x0abb, 0x0999, 0x087a, 0x078a, 0x0698,
+ 0x05ac, 0x0519, 0x04b4, 0x046a, 0x0471, 0x0491,
+ 0x0489, 0x0459, 0x0420, 0x03ee, 0x035a, 0x0232,
+ 0x00ec, 0xffa2, 0xfe56, 0xfd93, 0xfd91, 0xfdcd,
+ 0xfd5b, 0xfbd9, 0xfa45, 0xf982, 0xf912, 0xf898,
+ 0xf87c, 0xf8ea, 0xf9ab, 0xfa61, 0xfa97, 0xfa18,
+ 0xf926, 0xf852, 0xf803, 0xf829, 0xf8a1, 0xf959,
+ 0xfa31, 0xfac5, 0xfaa0, 0xfa0f, 0xf9be, 0xf997,
+ 0xf972, 0xf993, 0xf9c6, 0xfa1e, 0xfb3b, 0xfc48,
+ 0xfbed, 0xfad5, 0xfa1c, 0xf9c7, 0xfa0c, 0xfaf4,
+ 0xfbb1, 0xfc37, 0xfd1b, 0xfe33, 0xff77, 0x0122,
+ 0x027a, 0x02b3, 0x022c, 0x0188, 0x010f, 0x00ce,
+ 0x00cc, 0x0119, 0x016c, 0x01aa, 0x025c, 0x0367,
+ 0x03f7, 0x040b, 0x03fc, 0x03c1, 0x039e, 0x03be,
+ 0x0414, 0x04b5, 0x0531, 0x0511, 0x04b0, 0x0464,
+ 0x0454, 0x04d8, 0x05d7, 0x0702, 0x0821, 0x089d,
+ 0x07fd, 0x06ac, 0x0555, 0x03eb, 0x0251, 0x0170,
+ 0x01e1, 0x02d5, 0x0367, 0x02d3, 0x00bf, 0xfe53,
+ 0xfc55, 0xfa36, 0xf829, 0xf6c1, 0xf626, 0xf6b3,
+ 0xf7ee, 0xf8de, 0xf974, 0xf990, 0xf908, 0xf82f,
+ 0xf728, 0xf66a, 0xf676, 0xf6d2, 0xf744, 0xf7fb,
+ 0xf887, 0xf878, 0xf7de, 0xf722, 0xf690, 0xf604,
+ 0xf5da, 0xf685, 0xf775, 0xf859, 0xf998, 0xfb34,
+ 0xfcc6, 0xfde1, 0xfe86, 0xfeea, 0xfeb6, 0xfe20,
+ 0xfdfc, 0xfe49, 0xfecf, 0xff37, 0xfedb, 0xfe4b,
+ 0xfe9d, 0xffe6, 0x01d9, 0x03ad, 0x048e, 0x04c7,
+ 0x0497, 0x040e, 0x03d7, 0x0439, 0x04bc, 0x050b,
+ 0x0512, 0x04ac, 0x0367, 0x016b, 0xffc9, 0xff1b,
+ 0xff59, 0x002e, 0x00ec, 0x0140, 0x0116, 0x0097,
+ 0x008b, 0x00fc, 0x0139, 0x0161, 0x0190, 0x0167,
+ 0x00c4, 0xffbd, 0xfed2, 0xfe05, 0xfcde, 0xfc57,
+ 0xfd1b, 0xfdf4, 0xfe37, 0xfdb5, 0xfc1c, 0xfa61,
+ 0xf96a, 0xf901, 0xf91f, 0xf99a, 0xfa51, 0xfb94,
+ 0xfd20, 0xfe5e, 0xff05, 0xfee8, 0xfe2a, 0xfcf6,
+ 0xfb9f, 0xfaec, 0xfb14, 0xfbdc, 0xfd1e, 0xfe2f,
+ 0xfead, 0xff0c, 0xff9f, 0x004d, 0x00aa, 0x0084,
+ 0x0063, 0x008a, 0x00d6, 0x0146, 0x0189, 0x01a3,
+ 0x021d, 0x02a6, 0x02c0, 0x02b1, 0x02ac, 0x0270,
+ 0x01a0, 0x003d, 0xfee8, 0xfe3c, 0xfe76, 0xff63,
+ 0x007f, 0x01b2, 0x030d, 0x0422, 0x04a4, 0x04c1,
+ 0x04ac, 0x048a, 0x044f, 0x03f5, 0x03db, 0x0436,
+ 0x04c6, 0x054a, 0x05a2, 0x05f0, 0x0698, 0x0799,
+ 0x086e, 0x08d0, 0x0913, 0x099f, 0x0a8f, 0x0b7e,
+ 0x0bb6, 0x0b08, 0x09e9, 0x08dd, 0x0835, 0x07ce,
+ 0x0773, 0x0797, 0x0869, 0x0988, 0x0ad8, 0x0be7,
+ 0x0bff, 0x0b38, 0x09f3, 0x08a2, 0x07e0, 0x0770,
+ 0x06bc, 0x05b9, 0x0474, 0x031a, 0x01f0, 0x00ea,
+ 0x002c, 0xffd0, 0xff7f, 0xff13, 0xfea3, 0xfe5c,
+ 0xfe7c, 0xff00, 0xffee, 0x016b, 0x0325, 0x046b,
+ 0x04d8, 0x0492, 0x03e3, 0x02e0, 0x01e4, 0x014d,
+ 0x00e2, 0x0098, 0x004a, 0xff58, 0xfddc, 0xfc78,
+ 0xfb6b, 0xfb09, 0xfb55, 0xfbe9, 0xfca8, 0xfd1f,
+ 0xfcfb, 0xfcdd, 0xfd12, 0xfd90, 0xfea0, 0xfff6,
+ 0x0127, 0x0254, 0x0339, 0x0347, 0x024a, 0x00a4,
+ 0xff44, 0xfeb2, 0xfef6, 0x0051, 0x027d, 0x04aa,
+ 0x067c, 0x07b0, 0x083e, 0x08f3, 0x0a1b, 0x0b06,
+ 0x0b62, 0x0b63, 0x0af9, 0x0a01, 0x08b9, 0x0784,
+ 0x069f, 0x0620, 0x061b, 0x0699, 0x0774, 0x0898,
+ 0x0a1f, 0x0bb8, 0x0ccd, 0x0da5, 0x0eef, 0x1062,
+ 0x1151, 0x11a8, 0x118b, 0x114a, 0x1149, 0x115a,
+ 0x1151, 0x11ab, 0x12a8, 0x13ad, 0x141b, 0x1425,
+ 0x143c, 0x1421, 0x1366, 0x1246, 0x10e6, 0x0f4e,
+ 0x0e1c, 0x0da4, 0x0d67, 0x0d26, 0x0cab, 0x0ba8,
+ 0x0a93, 0x09be, 0x089b, 0x0728, 0x0603, 0x0553,
+ 0x04fd, 0x04b1, 0x03e9, 0x02da, 0x01ec, 0x00bf,
+ 0xff3a, 0xfdcb, 0xfc51, 0xfa9e, 0xf901, 0xf76f,
+ 0xf634, 0xf627, 0xf6c4, 0xf6d9, 0xf67a, 0xf5f5,
+ 0xf569, 0xf56b, 0xf5c1, 0xf578, 0xf47b, 0xf334,
+ 0xf22a, 0xf1d9, 0xf1e4, 0xf1eb, 0xf23b, 0xf2a2,
+ 0xf29f, 0xf257, 0xf20d, 0xf1b9, 0xf15c, 0xf14b,
+ 0xf1f0, 0xf30d, 0xf424, 0xf525, 0xf5ce, 0xf5cb,
+ 0xf590, 0xf5bf, 0xf682, 0xf7b8, 0xf944, 0xfb14,
+ 0xfce8, 0xfe65, 0xff55, 0xffa0, 0xff6d, 0xff0c,
+ 0xfec4, 0xff1f, 0x0071, 0x0248, 0x042f, 0x05c4,
+ 0x0698, 0x06f0, 0x071c, 0x06f8, 0x06d5, 0x06e7,
+ 0x06c8, 0x0680, 0x0676, 0x06d9, 0x078e, 0x07fc,
+ 0x07c6, 0x070f, 0x05de, 0x04ad, 0x0450, 0x04ec,
+ 0x0635, 0x079b, 0x0869, 0x0882, 0x07db, 0x067c,
+ 0x053e, 0x0488, 0x03f3, 0x039b, 0x03af, 0x0410,
+ 0x04be, 0x0516, 0x0441, 0x0292, 0x00d3, 0xff24,
+ 0xfd29, 0xfaec, 0xf957, 0xf8ee, 0xf903, 0xf94d,
+ 0xfa48, 0xfbb2, 0xfccd, 0xfd95, 0xfe1f, 0xfe11,
+ 0xfd7f, 0xfd20, 0xfd4b, 0xfd83, 0xfd2c, 0xfc60,
+ 0xfba0, 0xfabc, 0xf95b, 0xf821, 0xf7a8, 0xf7a6,
+ 0xf7f7, 0xf89a, 0xf8f2, 0xf8c8, 0xf8c1, 0xf95f,
+ 0xfa86, 0xfbe6, 0xfd3b, 0xfe18, 0xfe49, 0xfe35,
+ 0xfe3f, 0xfe7a, 0xff1d, 0x0014, 0x00e1, 0x017d,
+ 0x0231, 0x02e3, 0x0350, 0x036e, 0x035b, 0x0329,
+ 0x02a9, 0x018c, 0xffe2, 0xfe50, 0xfd86, 0xfdcd,
+ 0xff05, 0x0084, 0x01a0, 0x0241, 0x0261, 0x0200,
+ 0x0190, 0x014c, 0x012d, 0x0164, 0x01bd, 0x0202,
+ 0x0279, 0x0316, 0x03a4, 0x0430, 0x0497, 0x04da,
+ 0x04fc, 0x049d, 0x03c5, 0x02cf, 0x01e7, 0x0152,
+ 0x00f9, 0x004e, 0xff00, 0xfd29, 0xfb9f, 0xfb5b,
+ 0xfc2a, 0xfd84, 0xff45, 0x00f5, 0x0235, 0x02f6,
+ 0x02fa, 0x024e, 0x0143, 0x001f, 0xff5b, 0xff11,
+ 0xff12, 0xff49, 0xff00, 0xfdab, 0xfc28, 0xfb68,
+ 0xfb3d, 0xfafd, 0xfa22, 0xf8d0, 0xf7c1, 0xf77d,
+ 0xf83b, 0xf9dc, 0xfbba, 0xfd01, 0xfd3d, 0xfccc,
+ 0xfc7d, 0xfc7a, 0xfc53, 0xfc00, 0xfbe4, 0xfc16,
+ 0xfc5e, 0xfcd9, 0xfdb1, 0xfe70, 0xfeed, 0xffb4,
+ 0x0085, 0x0080, 0xff99, 0xfe82, 0xfdd8, 0xfdb1,
+ 0xfd9b, 0xfd60, 0xfd37, 0xfd8d, 0xfecb, 0x007d,
+ 0x01a7, 0x01fa, 0x0174, 0x0043, 0xff0a, 0xfdd5,
+ 0xfc9a, 0xfc44, 0xfd00, 0xfdf6, 0xff1f, 0x00a6,
+ 0x020c, 0x02fd, 0x0351, 0x02d3, 0x01da, 0x00da,
+ 0xffed, 0xff2d, 0xfee3, 0xff24, 0xffa5, 0xffd1,
+ 0xff2a, 0xfde6, 0xfcd3, 0xfc42, 0xfbe1, 0xfbd1,
+ 0xfca7, 0xfe42, 0xfffe, 0x017c, 0x0277, 0x02a7,
+ 0x0247, 0x01d7, 0x0176, 0x0120, 0x00fb, 0x0113,
+ 0x016f, 0x01f5, 0x020a, 0x018a, 0x0132, 0x011a,
+ 0x00b1, 0x0017, 0xffa3, 0xff2a, 0xfe9f, 0xfe22,
+ 0xfd9d, 0xfcda, 0xfbe7, 0xfb35, 0xfb30, 0xfbda,
+ 0xfced, 0xfe0c, 0xfedb, 0xff00, 0xfe40, 0xfd08,
+ 0xfc2a, 0xfbed, 0xfc1e, 0xfca6, 0xfd93, 0xfed4,
+ 0xffe9, 0x0027, 0xffa2, 0xfefa, 0xfe9f, 0xfec2,
+ 0xff53, 0xfff3, 0x0070, 0x0100, 0x01ac, 0x01fc,
+ 0x0193, 0x00c7, 0x0050, 0x00aa, 0x01d4, 0x034f,
+ 0x0472, 0x04f5, 0x0516, 0x0559, 0x05fd, 0x069f,
+ 0x06e2, 0x06d8, 0x0691, 0x0612, 0x0561, 0x0445,
+ 0x02d3, 0x0191, 0x0088, 0xffae, 0xff8a, 0xfffd,
+ 0xfff9, 0xff1b, 0xfe3b, 0xfe44, 0xff2d, 0x0055,
+ 0x01a3, 0x032a, 0x0472, 0x050d, 0x04e9, 0x03f8,
+ 0x0285, 0x0120, 0x004b, 0x008b, 0x01b8, 0x02c8,
+ 0x0305, 0x0296, 0x01de, 0x014e, 0x0162, 0x01d3,
+ 0x01a8, 0x00a6, 0xff67, 0xfe71, 0xfe6a, 0xff76,
+ 0x0096, 0x0154, 0x01da, 0x01b0, 0x00dc, 0x000d,
+ 0xff46, 0xfeb3, 0xfe97, 0xfe5e, 0xfdff, 0xfe1a,
+ 0xfec1, 0xffd6, 0x0129, 0x0243, 0x02d3, 0x02c9,
+ 0x0253, 0x01a9, 0x00cb, 0xfffe, 0xff57, 0xfe85,
+ 0xfe0a, 0xfe7a, 0xff71, 0x00d7, 0x02a5, 0x0425,
+ 0x052f, 0x0610, 0x06bc, 0x0743, 0x07a9, 0x07e4,
+ 0x081f, 0x0832, 0x07db, 0x0774, 0x07a5, 0x08b2,
+ 0x0a1b, 0x0b46, 0x0c36, 0x0cf5, 0x0d43, 0x0d37,
+ 0x0d41, 0x0dd7, 0x0f0e, 0x1089, 0x120a, 0x1362,
+ 0x1446, 0x1498, 0x1418, 0x12a2, 0x10d7, 0x0f76,
+ 0x0ee0, 0x0f1c, 0x0f86, 0x0f99, 0x0f8a, 0x0f76,
+ 0x0f62, 0x0f54, 0x0f0b, 0x0e9a, 0x0e3a, 0x0dce,
+ 0x0d4a, 0x0c97, 0x0bac, 0x0aff, 0x0a7c, 0x09a2,
+ 0x08b4, 0x07ce, 0x0693, 0x053c, 0x0411, 0x02ff,
+ 0x0251, 0x0219, 0x01ad, 0x00b7, 0xff9e, 0xfea3,
+ 0xfda8, 0xfccf, 0xfc5d, 0xfbed, 0xfb13, 0xfa25,
+ 0xf989, 0xf928, 0xf8b6, 0xf802, 0xf724, 0xf603,
+ 0xf42b, 0xf1e9, 0xf031, 0xef05, 0xedce, 0xecd3,
+ 0xecb9, 0xed42, 0xede2, 0xeebe, 0xefe6, 0xf0cd,
+ 0xf127, 0xf13d, 0xf179, 0xf229, 0xf34f, 0xf490,
+ 0xf547, 0xf4fc, 0xf459, 0xf48d, 0xf5c1, 0xf7b4,
+ 0xfa50, 0xfcf2, 0xfee4, 0x0034, 0x011d, 0x016f,
+ 0x0137, 0x0149, 0x026f, 0x0480, 0x06f6, 0x0911,
+ 0x09cd, 0x095a, 0x0901, 0x0927, 0x0978, 0x09dd,
+ 0x0a10, 0x09d0, 0x0975, 0x098a, 0x09f7, 0x0a0d,
+ 0x098b, 0x08e9, 0x0889, 0x0893, 0x08ec, 0x091b,
+ 0x090c, 0x08fb, 0x08ac, 0x07b2, 0x05f5, 0x03a7,
+ 0x0143, 0xff76, 0xfed6, 0xff2a, 0xff99, 0xffef,
+ 0x001f, 0xff70, 0xfdee, 0xfccf, 0xfc7f, 0xfc73,
+ 0xfc75, 0xfcb1, 0xfd04, 0xfd34, 0xfd5b, 0xfd73,
+ 0xfd88, 0xfe05, 0xfe8e, 0xfe75, 0xfe5a, 0xfeca,
+ 0xff12, 0xfed9, 0xfe67, 0xfdcc, 0xfd43, 0xfd2a,
+ 0xfd64, 0xfd59, 0xfc6c, 0xfacb, 0xf95c, 0xf8d5,
+ 0xf962, 0xfac2, 0xfc55, 0xfd65, 0xfdc4, 0xfe12,
+ 0xfeb9, 0xff60, 0xffff, 0x00d3, 0x015f, 0x013a,
+ 0x00b1, 0x0015, 0xffb1, 0xffa9, 0xff83, 0xff0b,
+ 0xfe9a, 0xfdde, 0xfca8, 0xfbfe, 0xfc21, 0xfc08,
+ 0xfb95, 0xfb48, 0xfae0, 0xfab0, 0xfb93, 0xfd2f,
+ 0xfea4, 0xffa7, 0x0031, 0x0054, 0xffff, 0xfeff,
+ 0xfdbd, 0xfd19, 0xfd6e, 0xfe42, 0xfeca, 0xfe97,
+ 0xfdb6, 0xfc8b, 0xfb98, 0xfaf7, 0xfa98, 0xfac0,
+ 0xfb6f, 0xfc0b, 0xfc30, 0xfc1f, 0xfc42, 0xfcb6,
+ 0xfd46, 0xfdca, 0xfe73, 0xff4c, 0xffb1, 0xff2f,
+ 0xfe44, 0xfd54, 0xfc60, 0xfbb5, 0xfb7b, 0xfba8,
+ 0xfca6, 0xfe50, 0xffb3, 0x005f, 0x0092, 0x009c,
+ 0x0087, 0x0032, 0xffad, 0xfeec, 0xfe0a, 0xfdb8,
+ 0xfdf4, 0xfe11, 0xfe5b, 0xff33, 0x001a, 0x00c5,
+ 0x012d, 0x0139, 0x00e6, 0x0039, 0xff81, 0xff31,
+ 0xff6a, 0x002a, 0x0129, 0x01fa, 0x02c6, 0x03ad,
+ 0x0448, 0x0467, 0x0426, 0x036c, 0x021f, 0x008e,
+ 0xff17, 0xfda6, 0xfc86, 0xfc61, 0xfce6, 0xfd4d,
+ 0xfd8d, 0xfe00, 0xfecd, 0xffa3, 0x0030, 0x00dd,
+ 0x01a8, 0x0211, 0x0240, 0x01ec, 0x00a9, 0xff7b,
+ 0xfeff, 0xfe93, 0xfe14, 0xfd9b, 0xfd16, 0xfcae,
+ 0xfc24, 0xfb01, 0xf979, 0xf84e, 0xf823, 0xf8ba,
+ 0xf95b, 0xf9bb, 0xf9d0, 0xf9c8, 0xf9fe, 0xfa63,
+ 0xfab5, 0xfae1, 0xfae8, 0xfb2a, 0xfc00, 0xfd44,
+ 0xfe86, 0xff33, 0xff4f, 0xff80, 0xffe4, 0x0067,
+ 0x0123, 0x0184, 0x0105, 0x0032, 0xffa9, 0xff3f,
+ 0xfe91, 0xfdc5, 0xfd5c, 0xfd8d, 0xfe56, 0xff75,
+ 0x006e, 0x00fc, 0x00be, 0xffb3, 0xfef2, 0xff04,
+ 0xfeff, 0xfe48, 0xfd18, 0xfc09, 0xfbf3, 0xfd26,
+ 0xfefc, 0x008e, 0x017e, 0x024a, 0x0365, 0x045f,
+ 0x04bc, 0x0499, 0x0441, 0x03d0, 0x0351, 0x02f3,
+ 0x02de, 0x0316, 0x03bb, 0x04cb, 0x05c4, 0x062d,
+ 0x0635, 0x0671, 0x06f2, 0x074f, 0x0780, 0x07a4,
+ 0x0772, 0x06bf, 0x05a9, 0x0475, 0x03ac, 0x03e1,
+ 0x0567, 0x07cf, 0x09bc, 0x0a1b, 0x0923, 0x07b7,
+ 0x068f, 0x05f5, 0x05c7, 0x0581, 0x04eb, 0x049e,
+ 0x04de, 0x051e, 0x0530, 0x04e4, 0x03c4, 0x0245,
+ 0x00e2, 0xff59, 0xfdd2, 0xfc98, 0xfbb9, 0xfb68,
+ 0xfb92, 0xfc1f, 0xfd23, 0xfe2f, 0xfedb, 0xff11,
+ 0xfead, 0xfde4, 0xfd01, 0xfbf4, 0xfab5, 0xf960,
+ 0xf876, 0xf883, 0xf92a, 0xf9c3, 0xfa1a, 0xfa2d,
+ 0xfa2d, 0xfa6e, 0xfb40, 0xfc8a, 0xfd97, 0xfe71,
+ 0xff8d, 0x002e, 0x0004, 0xffe3, 0x001b, 0x00b5,
+ 0x01a9, 0x029c, 0x03bb, 0x0510, 0x0600, 0x0647,
+ 0x05ca, 0x04dc, 0x0467, 0x0498, 0x0532, 0x0612,
+ 0x06b2, 0x0715, 0x07ba, 0x0898, 0x098c, 0x0a30,
+ 0x0a40, 0x0a81, 0x0b3c, 0x0bbe, 0x0bd5, 0x0ba4,
+ 0x0b6a, 0x0bb2, 0x0c9d, 0x0dd1, 0x0eba, 0x0ebd,
+ 0x0dfc, 0x0d40, 0x0d2b, 0x0dac, 0x0df5, 0x0d95,
+ 0x0cf9, 0x0cc3, 0x0d68, 0x0edd, 0x109b, 0x121e,
+ 0x12e4, 0x12af, 0x11a9, 0x1037, 0x0f30, 0x0ee8,
+ 0x0eab, 0x0e60, 0x0e66, 0x0e88, 0x0eda, 0x0f65,
+ 0x0fc2, 0x102a, 0x109f, 0x1064, 0x0f8a, 0x0ebc,
+ 0x0df3, 0x0cd7, 0x0b60, 0x09ae, 0x07ea, 0x0644,
+ 0x04c6, 0x0373, 0x02ae, 0x0299, 0x02d3, 0x0362,
+ 0x0458, 0x052b, 0x0597, 0x0594, 0x04da, 0x034c,
+ 0x0140, 0xff67, 0xfe1c, 0xfd0c, 0xfc4c, 0xfc2a,
+ 0xfc0b, 0xfb6b, 0xfa75, 0xf992, 0xf93c, 0xf92b,
+ 0xf8b7, 0xf821, 0xf7ad, 0xf6d4, 0xf54f, 0xf38c,
+ 0xf22c, 0xf133, 0xf014, 0xeedd, 0xedfa, 0xed93,
+ 0xedf0, 0xef18, 0xf070, 0xf16a, 0xf201, 0xf2bd,
+ 0xf3f5, 0xf577, 0xf736, 0xf912, 0xfa82, 0xfb6c,
+ 0xfc1e, 0xfce4, 0xfe18, 0xffa2, 0x00f3, 0x01d8,
+ 0x0289, 0x033d, 0x03f8, 0x04cb, 0x05be, 0x067b,
+ 0x0702, 0x07b5, 0x0871, 0x08f8, 0x093f, 0x0938,
+ 0x0960, 0x0a21, 0x0b0b, 0x0bdb, 0x0c6e, 0x0c6f,
+ 0x0c30, 0x0c00, 0x0b73, 0x0a53, 0x08db, 0x0766,
+ 0x0677, 0x062b, 0x060f, 0x05d1, 0x057f, 0x0529,
+ 0x04f5, 0x050f, 0x0521, 0x04ce, 0x045b, 0x03a7,
+ 0x0216, 0xffdb, 0xfd81, 0xfba6, 0xfaf8, 0xfb2b,
+ 0xfba7, 0xfc6c, 0xfd02, 0xfcfb, 0xfcc0, 0xfc96,
+ 0xfc95, 0xfcbd, 0xfcd6, 0xfce0, 0xfcab, 0xfc01,
+ 0xfb6c, 0xfb37, 0xfb25, 0xfb2e, 0xfb47, 0xfb82,
+ 0xfbe7, 0xfc38, 0xfcb3, 0xfd45, 0xfd27, 0xfc72,
+ 0xfb84, 0xfa60, 0xf9d5, 0xfa9b, 0xfc2e, 0xfdbc,
+ 0xfeb3, 0xfef3, 0xfe9c, 0xfdd5, 0xfd39, 0xfd08,
+ 0xfcde, 0xfce4, 0xfd42, 0xfdd4, 0xfec0, 0xff94,
+ 0xffb5, 0xffae, 0xfff9, 0x006a, 0x00f9, 0x0141,
+ 0x00c3, 0xffab, 0xfe91, 0xfe1a, 0xfea3, 0x0025,
+ 0x0216, 0x0377, 0x03db, 0x036b, 0x0208, 0x000f,
+ 0xfe72, 0xfd79, 0xfd18, 0xfd4c, 0xfdc2, 0xfe4a,
+ 0xfeca, 0xfeff, 0xfed4, 0xfe53, 0xfda6, 0xfd1c,
+ 0xfcbb, 0xfc69, 0xfc0a, 0xfb51, 0xfa43, 0xf95d,
+ 0xf8f7, 0xf912, 0xf969, 0xf9a2, 0xf99b, 0xf963,
+ 0xf91e, 0xf8f4, 0xf8fa, 0xf980, 0xfaa8, 0xfbd2,
+ 0xfc9d, 0xfd76, 0xfe6b, 0xfefd, 0xfef2, 0xfe51,
+ 0xfd4e, 0xfc3e, 0xfb24, 0xfa32, 0xfa20, 0xfaea,
+ 0xfbb4, 0xfc20, 0xfc23, 0xfba6, 0xfaf9, 0xfa64,
+ 0xfa13, 0xfa3c, 0xfaa1, 0xfb03, 0xfb94, 0xfc37,
+ 0xfcaf, 0xfd12, 0xfd78, 0xfe08, 0xfe9f, 0xfed0,
+ 0xfeac, 0xfe72, 0xfe31, 0xfe1a, 0xfde2, 0xfd1c,
+ 0xfc15, 0xfb3e, 0xfadf, 0xfb34, 0xfbf9, 0xfcc6,
+ 0xfd7f, 0xfe18, 0xfe82, 0xfe5e, 0xfdac, 0xfd1d,
+ 0xfcb2, 0xfc62, 0xfd25, 0xff0a, 0x010e, 0x02d0,
+ 0x03e1, 0x03d9, 0x0333, 0x021a, 0x0065, 0xfea5,
+ 0xfd5a, 0xfc84, 0xfc48, 0xfc95, 0xfcfc, 0xfd99,
+ 0xfeb0, 0xffa3, 0xffed, 0xfff4, 0xff9e, 0xfe8c,
+ 0xfd6b, 0xfccd, 0xfcb9, 0xfd92, 0xff0a, 0xffed,
+ 0xffb3, 0xfe9c, 0xfd57, 0xfcc2, 0xfd2e, 0xfe86,
+ 0x0049, 0x0192, 0x0214, 0x0204, 0x016f, 0x00ac,
+ 0xfffb, 0xff4a, 0xfec4, 0xfe51, 0xfdbf, 0xfd84,
+ 0xfdc6, 0xfe20, 0xfe85, 0xfedc, 0xfefd, 0xff45,
+ 0xffcb, 0x0018, 0x002f, 0x006b, 0x00af, 0x0093,
+ 0xffcf, 0xfe5c, 0xfcd4, 0xfbe4, 0xfb6c, 0xfb34,
+ 0xfba6, 0xfcff, 0xfeee, 0x00e5, 0x023f, 0x02a8,
+ 0x0276, 0x0239, 0x0248, 0x0282, 0x024b, 0x0148,
+ 0x0014, 0xff8e, 0xffb6, 0x0035, 0x0126, 0x023a,
+ 0x02d4, 0x02de, 0x0262, 0x01a7, 0x018f, 0x0266,
+ 0x03a8, 0x04e5, 0x05bb, 0x0614, 0x064e, 0x0696,
+ 0x06d8, 0x06ee, 0x06f2, 0x075b, 0x07fc, 0x0832,
+ 0x0800, 0x07a4, 0x075f, 0x0763, 0x0727, 0x0646,
+ 0x052c, 0x0408, 0x02f7, 0x0234, 0x0182, 0x00cb,
+ 0x005b, 0x003b, 0x0030, 0xfff5, 0xffa9, 0xffdc,
+ 0x0074, 0x00df, 0x00e2, 0x0072, 0xff9e, 0xfe68,
+ 0xfcdc, 0xfba6, 0xfb56, 0xfb9d, 0xfc13, 0xfcbd,
+ 0xfdd1, 0xff1f, 0xfff5, 0x0016, 0xffb0, 0xfeb2,
+ 0xfda6, 0xfd65, 0xfdf3, 0xfee0, 0xffa5, 0xffdb,
+ 0xffc2, 0xffdd, 0x009c, 0x023d, 0x042a, 0x058a,
+ 0x060f, 0x05b5, 0x04d5, 0x0416, 0x03c3, 0x03d6,
+ 0x0443, 0x04c2, 0x04e7, 0x0483, 0x03d8, 0x0328,
+ 0x027d, 0x01e2, 0x016c, 0x0170, 0x0262, 0x03ed,
+ 0x055e, 0x06bb, 0x0825, 0x0987, 0x0ae1, 0x0be5,
+ 0x0c6d, 0x0cdb, 0x0d0b, 0x0cb3, 0x0c85, 0x0cd8,
+ 0x0ce8, 0x0c61, 0x0b9f, 0x0ac8, 0x0a16, 0x09d3,
+ 0x09ff, 0x0aa5, 0x0b6a, 0x0bb2, 0x0bfb, 0x0cd9,
+ 0x0d9b, 0x0dec, 0x0e40, 0x0e98, 0x0eb8, 0x0e7a,
+ 0x0de7, 0x0d78, 0x0d47, 0x0d3c, 0x0d9b, 0x0e28,
+ 0x0e63, 0x0e16, 0x0cf1, 0x0b40, 0x09f0, 0x091e,
+ 0x08b0, 0x08e6, 0x0985, 0x0a4e, 0x0b78, 0x0ce8,
+ 0x0e1b, 0x0ea0, 0x0e46, 0x0d27, 0x0b89, 0x09df,
+ 0x0884, 0x077b, 0x06cc, 0x0682, 0x067e, 0x06a9,
+ 0x06cc, 0x06a4, 0x0641, 0x05b4, 0x04d6, 0x036a,
+ 0x0167, 0xff1f, 0xfcbb, 0xfa51, 0xf83f, 0xf672,
+ 0xf4a4, 0xf344, 0xf276, 0xf1d0, 0xf193, 0xf1e6,
+ 0xf206, 0xf197, 0xf103, 0xf08f, 0xf040, 0xf03f,
+ 0xf0bc, 0xf1ad, 0xf2c6, 0xf3b8, 0xf461, 0xf4f9,
+ 0xf5c4, 0xf69c, 0xf74b, 0xf7ea, 0xf8b3, 0xf9a9,
+ 0xfa85, 0xfb3f, 0xfc7a, 0xfea4, 0x0127, 0x0314,
+ 0x042f, 0x04c3, 0x04ca, 0x0440, 0x03cc, 0x03ed,
+ 0x0470, 0x051b, 0x05e8, 0x06e7, 0x082b, 0x0975,
+ 0x0a56, 0x0a9e, 0x0a46, 0x095d, 0x082b, 0x06dc,
+ 0x054c, 0x037f, 0x01f1, 0x0114, 0x00e1, 0x00fb,
+ 0x0109, 0x0132, 0x01c0, 0x0243, 0x024f, 0x021d,
+ 0x0172, 0xffd9, 0xfdc5, 0xfc2b, 0xfb94, 0xfbcc,
+ 0xfc1c, 0xfc3c, 0xfc59, 0xfc91, 0xfd1a, 0xfdd2,
+ 0xfe35, 0xfe2f, 0xfdf1, 0xfd99, 0xfd76, 0xfd7f,
+ 0xfd60, 0xfd6b, 0xfe3a, 0xffc5, 0x0168, 0x0295,
+ 0x0331, 0x032e, 0x02a4, 0x0220, 0x01df, 0x01ab,
+ 0x0194, 0x0199, 0x018b, 0x0173, 0x0149, 0x0109,
+ 0x00c2, 0x0056, 0xfff3, 0xffde, 0xff9b, 0xfecb,
+ 0xfdf1, 0xfd95, 0xfddd, 0xfeb7, 0xffda, 0x0103,
+ 0x0200, 0x027c, 0x027c, 0x0276, 0x02b8, 0x032a,
+ 0x0385, 0x0373, 0x02c7, 0x01cd, 0x0112, 0x00e1,
+ 0x012c, 0x01a7, 0x01ff, 0x0210, 0x01cc, 0x0137,
+ 0x00cf, 0x00fd, 0x0154, 0x0150, 0x0114, 0x00e4,
+ 0x00c5, 0x00a3, 0x0035, 0xff40, 0xfe08, 0xfd3e,
+ 0xfd44, 0xfdcf, 0xfe63, 0xfeb1, 0xfe63, 0xfd7e,
+ 0xfcb5, 0xfc7a, 0xfc76, 0xfc58, 0xfc28, 0xfbe1,
+ 0xfb63, 0xfac8, 0xfa88, 0xfaac, 0xfa9b, 0xfa50,
+ 0xfa6d, 0xfb01, 0xfba2, 0xfbef, 0xfb9b, 0xfada,
+ 0xfa22, 0xf98a, 0xf91b, 0xf8e4, 0xf8bb, 0xf88b,
+ 0xf85d, 0xf84e, 0xf884, 0xf8b2, 0xf8b5, 0xf937,
+ 0xfa8a, 0xfc26, 0xfd71, 0xfe04, 0xfde7, 0xfdab,
+ 0xfd8a, 0xfd54, 0xfd35, 0xfd63, 0xfd93, 0xfd69,
+ 0xfcf1, 0xfc88, 0xfc70, 0xfcc2, 0xfdb1, 0xff59,
+ 0x0140, 0x028b, 0x02e6, 0x02a3, 0x01ea, 0x00bb,
+ 0xff65, 0xfe0e, 0xfca9, 0xfbaa, 0xfbc1, 0xfccc,
+ 0xfdee, 0xfec5, 0xff80, 0xffe8, 0xff96, 0xfeeb,
+ 0xfe98, 0xfebe, 0xff4b, 0x0061, 0x0223, 0x0424,
+ 0x0550, 0x051a, 0x0439, 0x034c, 0x0238, 0x0153,
+ 0x0131, 0x016c, 0x0147, 0x00c2, 0x0024, 0xff82,
+ 0xfefb, 0xfeac, 0xfe89, 0xfecb, 0xffa4, 0x009e,
+ 0x00ee, 0x0019, 0xfe8e, 0xfd79, 0xfd62, 0xfdd4,
+ 0xfead, 0xffde, 0x00a2, 0x0075, 0xff9f, 0xfe9a,
+ 0xfdcd, 0xfd38, 0xfc9e, 0xfc07, 0xfb92, 0xfb66,
+ 0xfb82, 0xfb5d, 0xfada, 0xfa88, 0xfa9a, 0xfb17,
+ 0xfbf0, 0xfc8a, 0xfc79, 0xfbc9, 0xfa9d, 0xf980,
+ 0xf8d6, 0xf84d, 0xf7e2, 0xf7e0, 0xf86c, 0xf9d4,
+ 0xfbef, 0xfdde, 0xff36, 0x0000, 0x004f, 0x0063,
+ 0x0062, 0x005c, 0x00a1, 0x0142, 0x01d8, 0x022a,
+ 0x025e, 0x0269, 0x01e9, 0x010c, 0x00db, 0x01d9,
+ 0x0381, 0x051b, 0x0614, 0x061f, 0x0585, 0x04d2,
+ 0x0458, 0x043c, 0x0495, 0x0557, 0x0621, 0x069a,
+ 0x06c9, 0x06c4, 0x0683, 0x0619, 0x05c2, 0x05c8,
+ 0x0632, 0x0668, 0x0606, 0x0568, 0x04e3, 0x0479,
+ 0x0464, 0x04f9, 0x0640, 0x07df, 0x0920, 0x0969,
+ 0x08cb, 0x0794, 0x05c3, 0x0396, 0x01bd, 0x0088,
+ 0x0000, 0x0030, 0x00ae, 0x00d2, 0x0066, 0xff26,
+ 0xfd1b, 0xfb42, 0xfa38, 0xf99b, 0xf959, 0xf9bb,
+ 0xfaa3, 0xfbbe, 0xfcc2, 0xfd7d, 0xfdcc, 0xfd8a,
+ 0xfcf2, 0xfc66, 0xfbcb, 0xfb30, 0xfb0a, 0xfb60,
+ 0xfc04, 0xfd13, 0xfe96, 0x003f, 0x017b, 0x01ed,
+ 0x01c1, 0x00f7, 0xffab, 0xfec8, 0xfeba, 0xfeca,
+ 0xfe91, 0xfe50, 0xfe22, 0xfdff, 0xfdea, 0xfdb9,
+ 0xfd3d, 0xfcdc, 0xfd57, 0xfe74, 0xff86, 0x00d4,
+ 0x0294, 0x0416, 0x0508, 0x05d1, 0x06d0, 0x07fc,
+ 0x0900, 0x09c4, 0x0a4d, 0x0a4a, 0x09e6, 0x0991,
+ 0x0913, 0x0889, 0x08b5, 0x0998, 0x0a97, 0x0b69,
+ 0x0c25, 0x0d31, 0x0e9d, 0x0fee, 0x10c6, 0x10ed,
+ 0x106a, 0x0fd4, 0x0f7c, 0x0f29, 0x0f13, 0x0fab,
+ 0x10d5, 0x1201, 0x1290, 0x1259, 0x11cb, 0x1145,
+ 0x10f2, 0x10eb, 0x110c, 0x1111, 0x10b4, 0x0fb8,
+ 0x0e81, 0x0e04, 0x0e6f, 0x0ee9, 0x0ee2, 0x0e6f,
+ 0x0d8d, 0x0c2a, 0x0aa9, 0x09c0, 0x09ed, 0x0b17,
+ 0x0c89, 0x0d6a, 0x0d68, 0x0cb9, 0x0ba3, 0x0a68,
+ 0x0921, 0x079f, 0x0601, 0x049e, 0x0333, 0x0166,
+ 0xff95, 0xfe2a, 0xfd26, 0xfc53, 0xfb70, 0xfa7c,
+ 0xf99d, 0xf8ac, 0xf7a0, 0xf6c6, 0xf61c, 0xf55e,
+ 0xf49a, 0xf432, 0xf465, 0xf4de, 0xf511, 0xf4d1,
+ 0xf429, 0xf363, 0xf305, 0xf2fe, 0xf2f1, 0xf319,
+ 0xf397, 0xf40a, 0xf456, 0xf46c, 0xf3f0, 0xf2e3,
+ 0xf1de, 0xf1b5, 0xf2ea, 0xf522, 0xf7ac, 0xfa3b,
+ 0xfc61, 0xfd86, 0xfddd, 0xfe3e, 0xfef2, 0xff8a,
+ 0x0003, 0x00ef, 0x024a, 0x0382, 0x0449, 0x048c,
+ 0x0487, 0x048f, 0x0478, 0x0421, 0x03ed, 0x03e7,
+ 0x03bd, 0x036d, 0x0338, 0x0356, 0x03a3, 0x03df,
+ 0x0443, 0x04e4, 0x0564, 0x05bf, 0x0654, 0x0731,
+ 0x07dc, 0x07b0, 0x06ce, 0x0609, 0x0574, 0x0472,
+ 0x0310, 0x01f0, 0x017e, 0x0199, 0x019c, 0x011d,
+ 0x004e, 0xff5d, 0xfe33, 0xfd0a, 0xfc4f, 0xfc0b,
+ 0xfc20, 0xfcb3, 0xfda2, 0xfe67, 0xfebb, 0xfe90,
+ 0xfdf9, 0xfd5c, 0xfd04, 0xfce1, 0xfcc6, 0xfc86,
+ 0xfc4b, 0xfc5a, 0xfc60, 0xfc0e, 0xfb9f, 0xfb3a,
+ 0xfaee, 0xfaf3, 0xfb2d, 0xfb4d, 0xfb0b, 0xfa6e,
+ 0xfa1f, 0xfa95, 0xfb64, 0xfbfa, 0xfc2b, 0xfc38,
+ 0xfc7f, 0xfcda, 0xfd3e, 0xfe29, 0xffbf, 0x01a4,
+ 0x0365, 0x0496, 0x0554, 0x05c2, 0x057c, 0x04ad,
+ 0x03f6, 0x0357, 0x0284, 0x016f, 0x0046, 0xff62,
+ 0xfee9, 0xff12, 0xffe0, 0x0075, 0x004d, 0xffc9,
+ 0xff09, 0xfe32, 0xfd95, 0xfd08, 0xfcae, 0xfce7,
+ 0xfd95, 0xfec5, 0x001c, 0x0089, 0xffde, 0xfe68,
+ 0xfc33, 0xfa44, 0xf9bd, 0xfa4b, 0xfb0d, 0xfb7a,
+ 0xfb97, 0xfbcb, 0xfc32, 0xfce1, 0xfdb1, 0xfdd2,
+ 0xfd28, 0xfc6a, 0xfbaa, 0xfaf4, 0xfab4, 0xfaf4,
+ 0xfb9f, 0xfc90, 0xfd82, 0xfe69, 0xfeff, 0xff05,
+ 0xfef7, 0xff01, 0xfec3, 0xfe39, 0xfd82, 0xfcb8,
+ 0xfc18, 0xfbd3, 0xfc12, 0xfc81, 0xfc8a, 0xfc76,
+ 0xfc67, 0xfbe0, 0xfb44, 0xfb11, 0xfafd, 0xfaf1,
+ 0xfac1, 0xfa55, 0xfa6c, 0xfb39, 0xfc4e, 0xfde2,
+ 0xffaf, 0x00b9, 0x00eb, 0x00ad, 0x002f, 0xffaf,
+ 0xff52, 0xff2c, 0xff32, 0xff23, 0xff1a, 0xff51,
+ 0xff69, 0xff10, 0xfe8c, 0xfe20, 0xfdaf, 0xfd30,
+ 0xfd21, 0xfdb5, 0xfe6a, 0xff42, 0x00d1, 0x02e3,
+ 0x04a6, 0x05a4, 0x05f1, 0x05ee, 0x0596, 0x049a,
+ 0x0332, 0x01c0, 0x0073, 0xff90, 0xff22, 0xff12,
+ 0xff6d, 0xffe8, 0x0021, 0x0026, 0xfffd, 0xff89,
+ 0xfeb3, 0xfd4a, 0xfb74, 0xf9b2, 0xf85f, 0xf7da,
+ 0xf878, 0xf9f6, 0xfbb0, 0xfd16, 0xfdd1, 0xfddd,
+ 0xfd5a, 0xfc73, 0xfb82, 0xfadd, 0xfaa4, 0xfaf2,
+ 0xfbb8, 0xfc5b, 0xfc16, 0xfaf0, 0xf9b2, 0xf910,
+ 0xf966, 0xfa85, 0xfbb0, 0xfc73, 0xfcfe, 0xfd6f,
+ 0xfd7f, 0xfd14, 0xfcbc, 0xfcf6, 0xfd53, 0xfd86,
+ 0xfe04, 0xfeb4, 0xff1e, 0xff68, 0xff54, 0xfe53,
+ 0xfcd1, 0xfb8e, 0xfac7, 0xfa91, 0xfaf0, 0xfbf1,
+ 0xfd71, 0xfee0, 0x0028, 0x0197, 0x02c8, 0x0378,
+ 0x03ee, 0x03e4, 0x0325, 0x0267, 0x0243, 0x028a,
+ 0x02d7, 0x0324, 0x0392, 0x03da, 0x03cb, 0x03ab,
+ 0x0365, 0x02b8, 0x0213, 0x01f0, 0x023c, 0x02d2,
+ 0x03a7, 0x04c4, 0x0613, 0x0729, 0x07c4, 0x07ea,
+ 0x07a0, 0x0710, 0x0652, 0x0559, 0x048e, 0x043f,
+ 0x03fe, 0x03a1, 0x0397, 0x0425, 0x04e8, 0x04ee,
+ 0x03c2, 0x023f, 0x013f, 0x009e, 0x0009, 0xff69,
+ 0xfeb2, 0xfdfb, 0xfd6e, 0xfd67, 0xfe35, 0xff57,
+ 0xffee, 0xffb2, 0xfeae, 0xfcf7, 0xfaf3, 0xf945,
+ 0xf874, 0xf8ab, 0xf9cb, 0xfb7a, 0xfd07, 0xfdd4,
+ 0xfe0c, 0xfe33, 0xfe8a, 0xff45, 0x003b, 0x0091,
+ 0xffb2, 0xfe1d, 0xfcb7, 0xfbd5, 0xfb58, 0xfb42,
+ 0xfb95, 0xfc49, 0xfd74, 0xfeec, 0x002f, 0x00e4,
+ 0x00f2, 0x0063, 0xff5a, 0xfe0e, 0xfd26, 0xfd31,
+ 0xfdc2, 0xfe44, 0xfed6, 0xffb0, 0x00dd, 0x022a,
+ 0x0325, 0x03eb, 0x04cd, 0x0594, 0x0656, 0x0767,
+ 0x0888, 0x0981, 0x0a37, 0x0a96, 0x0b39, 0x0c38,
+ 0x0ca4, 0x0c81, 0x0cb0, 0x0d4f, 0x0e35, 0x0f1f,
+ 0x0f6e, 0x0f0c, 0x0e6e, 0x0de9, 0x0d91, 0x0d2d,
+ 0x0cb4, 0x0c7c, 0x0c87, 0x0cc7, 0x0d81, 0x0ea9,
+ 0x0fcb, 0x105b, 0x1001, 0x0f42, 0x0f01, 0x0f30,
+ 0x0f10, 0x0e38, 0x0d2a, 0x0cdd, 0x0d58, 0x0ddd,
+ 0x0e20, 0x0df6, 0x0d14, 0x0bd9, 0x0b01, 0x0ac2,
+ 0x0af9, 0x0ba6, 0x0cd6, 0x0e02, 0x0e4d, 0x0dd4,
+ 0x0d63, 0x0ce4, 0x0bcb, 0x0a62, 0x0959, 0x08d6,
+ 0x0894, 0x084f, 0x07d5, 0x0710, 0x060d, 0x04e5,
+ 0x03db, 0x033c, 0x02d7, 0x0265, 0x0220, 0x01f8,
+ 0x0173, 0x0083, 0xff3e, 0xfdb5, 0xfc7c, 0xfbdd,
+ 0xfb5c, 0xfa9d, 0xf97a, 0xf7c9, 0xf603, 0xf4e3,
+ 0xf471, 0xf44d, 0xf41f, 0xf37b, 0xf271, 0xf19f,
+ 0xf12f, 0xf114, 0xf1d3, 0xf388, 0xf548, 0xf660,
+ 0xf6d5, 0xf6e7, 0xf709, 0xf775, 0xf7d8, 0xf813,
+ 0xf85b, 0xf8a0, 0xf8d3, 0xf91b, 0xf991, 0xfa41,
+ 0xfb4f, 0xfcfd, 0xff4c, 0x019f, 0x0364, 0x049f,
+ 0x0584, 0x061f, 0x0675, 0x069e, 0x06ca, 0x070d,
+ 0x0744, 0x076c, 0x079a, 0x07c1, 0x07f1, 0x084d,
+ 0x08ca, 0x0919, 0x08d8, 0x081f, 0x077d, 0x072f,
+ 0x0721, 0x0762, 0x07e4, 0x084a, 0x0837, 0x07a3,
+ 0x06e8, 0x064e, 0x05e9, 0x05ee, 0x0650, 0x066c,
+ 0x05b4, 0x0412, 0x01c8, 0xff63, 0xfd6c, 0xfc27,
+ 0xfba4, 0xfb9c, 0xfb9f, 0xfbcc, 0xfc8f, 0xfdb5,
+ 0xfebf, 0xffc4, 0x00e1, 0x017d, 0x0114, 0xffee,
+ 0xfeac, 0xfdd1, 0xfd54, 0xfcc8, 0xfc4f, 0xfc4a,
+ 0xfc8e, 0xfcfc, 0xfdd2, 0xff08, 0x006d, 0x01d2,
+ 0x02c6, 0x0304, 0x0275, 0x0128, 0xffc2, 0xfee1,
+ 0xfe51, 0xfdb4, 0xfd10, 0xfc7c, 0xfc34, 0xfcaa,
+ 0xfe03, 0xffb5, 0x00df, 0x010f, 0x0069, 0xff74,
+ 0xfece, 0xfebe, 0xff27, 0xfff1, 0x00d9, 0x0194,
+ 0x0222, 0x0242, 0x01d6, 0x016a, 0x00dc, 0xff7d,
+ 0xfdcd, 0xfc72, 0xfb22, 0xfa0f, 0xf9c5, 0xfa21,
+ 0xfaf0, 0xfbfc, 0xfcd7, 0xfdbf, 0xff34, 0x0100,
+ 0x029a, 0x0394, 0x03e9, 0x03e5, 0x0371, 0x0266,
+ 0x012d, 0x001e, 0xff70, 0xff56, 0xff40, 0xfe90,
+ 0xfdbf, 0xfd4c, 0xfd3b, 0xfdc9, 0xfeee, 0x001f,
+ 0x00e5, 0x0107, 0x00cf, 0x00d4, 0x0110, 0x013a,
+ 0x0170, 0x01a1, 0x0198, 0x0163, 0x00fe, 0x0054,
+ 0xff96, 0xff0e, 0xff07, 0xff67, 0xff96, 0xff4e,
+ 0xfeda, 0xfe50, 0xfd9f, 0xfce6, 0xfc0c, 0xfadc,
+ 0xf9ab, 0xf905, 0xf8f0, 0xf90f, 0xf91b, 0xf902,
+ 0xf8e2, 0xf8dc, 0xf8ea, 0xf925, 0xf9da, 0xfb1e,
+ 0xfca5, 0xfe21, 0xff84, 0x00da, 0x021b, 0x0313,
+ 0x036a, 0x02e4, 0x01d2, 0x00d9, 0x0022, 0xff85,
+ 0xff0b, 0xfede, 0xff13, 0xff77, 0xffac, 0xffd7,
+ 0x005b, 0x010d, 0x018a, 0x0194, 0x0106, 0x004f,
+ 0x0001, 0x0010, 0x0084, 0x018c, 0x02a6, 0x032f,
+ 0x02f1, 0x01db, 0x0060, 0xff1e, 0xfdb7, 0xfbca,
+ 0xf9dd, 0xf839, 0xf6dd, 0xf65a, 0xf6cd, 0xf753,
+ 0xf7b1, 0xf875, 0xf990, 0xfa90, 0xfb36, 0xfb08,
+ 0xf9e3, 0xf8ae, 0xf82e, 0xf855, 0xf8ec, 0xf9a2,
+ 0xfa43, 0xfb6a, 0xfd89, 0xffb0, 0x00c7, 0x00d1,
+ 0x0029, 0xff4d, 0xfefd, 0xff56, 0xffd0, 0x004b,
+ 0x00db, 0x0156, 0x0195, 0x018f, 0x015c, 0x0101,
+ 0x0093, 0x00ba, 0x01c1, 0x02d1, 0x0359, 0x036a,
+ 0x02fa, 0x0280, 0x028e, 0x02ea, 0x034d, 0x037a,
+ 0x032f, 0x02d7, 0x02af, 0x0260, 0x01f8, 0x0175,
+ 0x0089, 0xff6b, 0xfe46, 0xfd09, 0xfc1f, 0xfbbf,
+ 0xfb91, 0xfb88, 0xfc03, 0xfd55, 0xff63, 0x01a0,
+ 0x0389, 0x0507, 0x064a, 0x0754, 0x07d8, 0x07d6,
+ 0x0790, 0x071d, 0x06ca, 0x06e6, 0x0734, 0x078e,
+ 0x07d3, 0x078f, 0x06e4, 0x0638, 0x0557, 0x0458,
+ 0x03c1, 0x0358, 0x02b8, 0x022f, 0x01e9, 0x0189,
+ 0x011b, 0x0127, 0x01de, 0x0321, 0x0486, 0x0511,
+ 0x0422, 0x0246, 0x000a, 0xfd6d, 0xfa9e, 0xf81d,
+ 0xf678, 0xf5e6, 0xf5de, 0xf5c1, 0xf567, 0xf4c7,
+ 0xf420, 0xf40c, 0xf4b2, 0xf595, 0xf631, 0xf643,
+ 0xf5c9, 0xf545, 0xf565, 0xf61a, 0xf6e4, 0xf7c2,
+ 0xf8d9, 0xfa18, 0xfb49, 0xfbd3, 0xfb8a, 0xfb43,
+ 0xfb74, 0xfbe7, 0xfca2, 0xfd8d, 0xfec2, 0x00e5,
+ 0x03dd, 0x06cc, 0x0907, 0x09f5, 0x097c, 0x0869,
+ 0x0794, 0x0766, 0x07c3, 0x0821, 0x0819, 0x07b6,
+ 0x0787, 0x0849, 0x09e1, 0x0b88, 0x0cdb, 0x0df6,
+ 0x0f0b, 0x0fec, 0x1024, 0x0fc5, 0x0f25, 0x0e50,
+ 0x0d60, 0x0c68, 0x0b4b, 0x0a0b, 0x08cb, 0x07c9,
+ 0x06ef, 0x05b1, 0x0470, 0x0471, 0x05d8, 0x07c4,
+ 0x09bb, 0x0bb3, 0x0d9a, 0x0f36, 0x107b, 0x118e,
+ 0x1245, 0x128c, 0x12b9, 0x12d2, 0x12bf, 0x128b,
+ 0x11f6, 0x10fd, 0x1002, 0x0f2e, 0x0e97, 0x0e2c,
+ 0x0dd9, 0x0e13, 0x0ee8, 0x0f7a, 0x0f3d, 0x0e70,
+ 0x0db4, 0x0d9a, 0x0ddf, 0x0dca, 0x0d34, 0x0c48,
+ 0x0b0f, 0x098d, 0x07c8, 0x05e0, 0x0448, 0x037f,
+ 0x0394, 0x040c, 0x0433, 0x0398, 0x025e, 0x00f3,
+ 0xffa6, 0xfec6, 0xfe62, 0xfdf6, 0xfd53, 0xfc9e,
+ 0xfb69, 0xf98a, 0xf7a4, 0xf60a, 0xf4c8, 0xf41c,
+ 0xf421, 0xf4e6, 0xf63f, 0xf7b4, 0xf91f, 0xfa7e,
+ 0xfb9c, 0xfc4d, 0xfc5f, 0xfbf4, 0xfba7, 0xfbdc,
+ 0xfc83, 0xfd04, 0xfcc1, 0xfc3d, 0xfc38, 0xfc99,
+ 0xfd5d, 0xfe77, 0xff68, 0x0007, 0x0036, 0xfff7,
+ 0x0002, 0x006c, 0x007b, 0x0060, 0x009e, 0x0119,
+ 0x01b7, 0x0241, 0x0260, 0x0220, 0x01aa, 0x0134,
+ 0x0126, 0x01b2, 0x0282, 0x02f9, 0x02de, 0x0263,
+ 0x0199, 0x00bb, 0x0067, 0x00cc, 0x0198, 0x028e,
+ 0x0388, 0x044c, 0x04a8, 0x04bd, 0x04b7, 0x046b,
+ 0x03dc, 0x034f, 0x02eb, 0x030a, 0x03bd, 0x0478,
+ 0x0517, 0x0576, 0x0516, 0x0435, 0x0335, 0x0200,
+ 0x0100, 0x0087, 0x0045, 0x002b, 0x000c, 0xff95,
+ 0xff01, 0xfe86, 0xfe31, 0xfe2f, 0xfe40, 0xfdd0,
+ 0xfc83, 0xfa5d, 0xf80e, 0xf64b, 0xf530, 0xf4f7,
+ 0xf60f, 0xf839, 0xfa3f, 0xfb2d, 0xfb60, 0xfb6c,
+ 0xfb17, 0xfa2e, 0xf8f7, 0xf81a, 0xf835, 0xf8d6,
+ 0xf94d, 0xf9b0, 0xf9f6, 0xfa36, 0xfaff, 0xfc0e,
+ 0xfcd1, 0xfd81, 0xfe6f, 0xffa7, 0x00da, 0x017f,
+ 0x018d, 0x0146, 0x0126, 0x01f8, 0x036f, 0x04b2,
+ 0x05ab, 0x0604, 0x05ac, 0x05b1, 0x0644, 0x068a,
+ 0x0642, 0x0599, 0x04cf, 0x0421, 0x0387, 0x0309,
+ 0x0298, 0x022b, 0x020d, 0x0238, 0x026d, 0x028d,
+ 0x0225, 0x0151, 0x00e4, 0x00b6, 0xfffe, 0xfe82,
+ 0xfc99, 0xfb01, 0xfa1d, 0xf9c7, 0xfa3c, 0xfb4c,
+ 0xfc01, 0xfbff, 0xfb86, 0xfadd, 0xfa4f, 0xfa17,
+ 0xfa7f, 0xfb96, 0xfccf, 0xfd74, 0xfcc4, 0xfa9d,
+ 0xf849, 0xf704, 0xf6d2, 0xf71d, 0xf735, 0xf71f,
+ 0xf781, 0xf826, 0xf87f, 0xf87d, 0xf855, 0xf8ce,
+ 0xfa53, 0xfbf3, 0xfce9, 0xfd40, 0xfd0a, 0xfc98,
+ 0xfc3a, 0xfc06, 0xfc09, 0xfbeb, 0xfb5b, 0xfaa1,
+ 0xfa18, 0xfa1d, 0xfac2, 0xfb82, 0xfc3a, 0xfd18,
+ 0xfde9, 0xfeb5, 0xff78, 0xffb0, 0xff3f, 0xfe85,
+ 0xfdbd, 0xfced, 0xfc2f, 0xfbe4, 0xfc24, 0xfcb7,
+ 0xfd98, 0xfe3b, 0xfe10, 0xfdc9, 0xfdd8, 0xfdf5,
+ 0xfe8b, 0xffaa, 0x0096, 0x0119, 0x010a, 0x0062,
+ 0xffc5, 0xff6a, 0xff53, 0xffd1, 0x00a4, 0x015e,
+ 0x01d2, 0x01c8, 0x0162, 0x00d1, 0xfff3, 0xfeea,
+ 0xfdf8, 0xfd4e, 0xfd49, 0xfdeb, 0xfeb3, 0xff07,
+ 0xfeac, 0xfe5f, 0xfece, 0xff58, 0xff3e, 0xfea1,
+ 0xfdfe, 0xfdc7, 0xfdc3, 0xfd49, 0xfc3d, 0xfaf5,
+ 0xf9d1, 0xf912, 0xf89f, 0xf865, 0xf866, 0xf880,
+ 0xf8c7, 0xf925, 0xf930, 0xf925, 0xf96e, 0xf9e6,
+ 0xfa79, 0xfb48, 0xfc52, 0xfd63, 0xfe08, 0xfe0b,
+ 0xfdb4, 0xfd59, 0xfd34, 0xfd28, 0xfd10, 0xfd46,
+ 0xfdb8, 0xfdd2, 0xfdb2, 0xfdab, 0xfddf, 0xfee6,
+ 0x00d7, 0x02b5, 0x03c7, 0x041f, 0x0434, 0x0483,
+ 0x051b, 0x05d3, 0x063a, 0x05ba, 0x04ba, 0x0458,
+ 0x04c3, 0x056f, 0x0611, 0x0681, 0x06a1, 0x0694,
+ 0x0695, 0x0693, 0x0656, 0x0602, 0x05a0, 0x04e1,
+ 0x03d7, 0x02f7, 0x026f, 0x0287, 0x03a2, 0x054b,
+ 0x0690, 0x071f, 0x071a, 0x0662, 0x051f, 0x0407,
+ 0x0357, 0x02d7, 0x02d9, 0x0397, 0x049a, 0x0592,
+ 0x064d, 0x065d, 0x058a, 0x03d6, 0x0197, 0xffc6,
+ 0xfefc, 0xfee3, 0xff0e, 0xff2c, 0xff17, 0xff0f,
+ 0xfefc, 0xfe6e, 0xfd9d, 0xfd28, 0xfd4f, 0xfdff,
+ 0xfed7, 0xff79, 0x0005, 0x008d, 0x00c9, 0x00b2,
+ 0x00a4, 0x00de, 0x0145, 0x017a, 0x0170, 0x0191,
+ 0x01f1, 0x0235, 0x024b, 0x0230, 0x0197, 0x006b,
+ 0xfeed, 0xfd7a, 0xfc79, 0xfbf5, 0xfbb7, 0xfb9d,
+ 0xfb3d, 0xfa41, 0xf933, 0xf898, 0xf828, 0xf7ca,
+ 0xf799, 0xf742, 0xf6f1, 0xf760, 0xf868, 0xf963,
+ 0xfa68, 0xfb9d, 0xfcb0, 0xfda6, 0xfee9, 0x0071,
+ 0x01bb, 0x027e, 0x02f4, 0x0361, 0x03c3, 0x03f3,
+ 0x03d8, 0x03af, 0x0410, 0x054e, 0x072d, 0x092b,
+ 0x0aad, 0x0b65, 0x0b86, 0x0b78, 0x0ba0, 0x0c0e,
+ 0x0c9c, 0x0d67, 0x0e2d, 0x0e35, 0x0da2, 0x0d2d,
+ 0x0ce2, 0x0c9e, 0x0c66, 0x0c38, 0x0c03, 0x0b53,
+ 0x09ed, 0x0881, 0x074d, 0x0606, 0x0523, 0x0505,
+ 0x056c, 0x0674, 0x0840, 0x0a6c, 0x0c7c, 0x0df3,
+ 0x0e85, 0x0e84, 0x0e47, 0x0d9e, 0x0c73, 0x0b59,
+ 0x0acb, 0x0a79, 0x09e6, 0x08fa, 0x0815, 0x07bf,
+ 0x0812, 0x08c5, 0x095a, 0x0953, 0x0911, 0x0925,
+ 0x08e4, 0x07c1, 0x0671, 0x05a4, 0x055a, 0x053b,
+ 0x0506, 0x04e2, 0x04a7, 0x040c, 0x0398, 0x03b9,
+ 0x042d, 0x04b1, 0x04fd, 0x0505, 0x04f6, 0x0492,
+ 0x03bf, 0x02c3, 0x01a9, 0x00c9, 0x00b2, 0x0117,
+ 0x013d, 0x00fa, 0x008f, 0x0017, 0xff91, 0xff18,
+ 0xfe9e, 0xfe0e, 0xfdb2, 0xfd99, 0xfd9a, 0xfe08,
+ 0xff0f, 0x0036, 0x00e4, 0x00a0, 0xff97, 0xfe97,
+ 0xfe1f, 0xfe29, 0xfe98, 0xff56, 0x004c, 0x0135,
+ 0x01e4, 0x0268, 0x02a4, 0x02c0, 0x02eb, 0x02b4,
+ 0x022e, 0x0211, 0x0268, 0x02cb, 0x02bc, 0x01d2,
+ 0x00c5, 0x0075, 0x007e, 0x0085, 0x00f8, 0x01ef,
+ 0x033d, 0x04c4, 0x05da, 0x05ac, 0x047b, 0x0362,
+ 0x02c3, 0x023e, 0x017b, 0x002c, 0xfe6e, 0xfd38,
+ 0xfd1d, 0xfd8e, 0xfe35, 0xff21, 0xffb2, 0xff72,
+ 0xfee2, 0xfe4c, 0xfd9c, 0xfd1a, 0xfcac, 0xfbd9,
+ 0xfac1, 0xf996, 0xf86f, 0xf7a7, 0xf78c, 0xf86a,
+ 0xf9ef, 0xfac9, 0xfa92, 0xfa23, 0xf9c1, 0xf986,
+ 0xf9cc, 0xfa33, 0xfa21, 0xf988, 0xf8d3, 0xf8c9,
+ 0xf9bf, 0xfb34, 0xfc87, 0xfd5a, 0xfd7a, 0xfcd1,
+ 0xfbc7, 0xfb60, 0xfbf9, 0xfcec, 0xfddc, 0xfeab,
+ 0xff4c, 0x0013, 0x00ca, 0x0122, 0x01f9, 0x03ac,
+ 0x04e6, 0x04c0, 0x03c7, 0x02c4, 0x0206, 0x01bd,
+ 0x0245, 0x0382, 0x0468, 0x0475, 0x0474, 0x04cb,
+ 0x04e9, 0x04da, 0x052b, 0x056b, 0x04ee, 0x0439,
+ 0x0433, 0x048c, 0x0452, 0x03b4, 0x03c5, 0x04b6,
+ 0x0587, 0x0572, 0x04ab, 0x0396, 0x024d, 0x016e,
+ 0x01af, 0x027d, 0x02ee, 0x032b, 0x0397, 0x0404,
+ 0x040d, 0x03c1, 0x0398, 0x039f, 0x039a, 0x034a,
+ 0x0225, 0x006f, 0xfef7, 0xfd4f, 0xfb38, 0xf9a6,
+ 0xf8e6, 0xf8a7, 0xf8b9, 0xf8d8, 0xf95d, 0xfa63,
+ 0xfb42, 0xfbf8, 0xfc63, 0xfba0, 0xf9d3, 0xf7dc,
+ 0xf67e, 0xf650, 0xf6d0, 0xf746, 0xf7c9, 0xf82d,
+ 0xf84d, 0xf845, 0xf7a3, 0xf658, 0xf514, 0xf444,
+ 0xf442, 0xf51c, 0xf5ef, 0xf5db, 0xf4f6, 0xf408,
+ 0xf3c4, 0xf460, 0xf59e, 0xf701, 0xf835, 0xf917,
+ 0xf95d, 0xf8dd, 0xf7da, 0xf70e, 0xf75a, 0xf8e3,
+ 0xfb4a, 0xfdf2, 0xff75, 0xff40, 0xfe9c, 0xfe78,
+ 0xfeaa, 0xfea9, 0xfdd6, 0xfc84, 0xfb39, 0xf9e3,
+ 0xf975, 0xfab6, 0xfcab, 0xfedd, 0x0195, 0x0474,
+ 0x0704, 0x08a8, 0x08e4, 0x0841, 0x071a, 0x055d,
+ 0x036a, 0x0174, 0xffbc, 0xfefd, 0xff74, 0x00c6,
+ 0x0291, 0x0455, 0x057d, 0x05b0, 0x0546, 0x04e6,
+ 0x0485, 0x03c1, 0x02b8, 0x01b2, 0x00ca, 0x003d,
+ 0x006e, 0x014d, 0x0240, 0x02d5, 0x02c7, 0x0219,
+ 0x018f, 0x018f, 0x01a7, 0x01b6, 0x0194, 0x00ed,
+ 0x002e, 0xffa9, 0xff37, 0xff26, 0xff7d, 0xffce,
+ 0x0030, 0x00d4, 0x01b4, 0x02df, 0x03fa, 0x0475,
+ 0x0455, 0x03d2, 0x02f7, 0x01d9, 0x008d, 0xff52,
+ 0xfe7e, 0xfdc7, 0xfc9b, 0xfb13, 0xf99d, 0xf8a9,
+ 0xf885, 0xf8a7, 0xf88c, 0xf8bc, 0xf9a3, 0xfb3b,
+ 0xfd46, 0xfe93, 0xfe2c, 0xfc7c, 0xfa4d, 0xf8ac,
+ 0xf857, 0xf899, 0xf8cd, 0xf90d, 0xf937, 0xf98c,
+ 0xfa5a, 0xfb77, 0xfcfb, 0xfe70, 0xfef4, 0xff14,
+ 0xff88, 0xffe8, 0x003e, 0x00f7, 0x01bc, 0x0217,
+ 0x0233, 0x028e, 0x0309, 0x0305, 0x02a7, 0x02b3,
+ 0x036b, 0x0494, 0x05c7, 0x069a, 0x06ef, 0x071a,
+ 0x07a2, 0x089c, 0x097b, 0x09a3, 0x08f9, 0x084c,
+ 0x0849, 0x081b, 0x0727, 0x0650, 0x0617, 0x0643,
+ 0x06b3, 0x06ea, 0x06ce, 0x06d6, 0x06b2, 0x0613,
+ 0x0583, 0x056d, 0x0607, 0x0760, 0x08c3, 0x0924,
+ 0x0845, 0x0741, 0x070b, 0x0718, 0x06d0, 0x05f7,
+ 0x043e, 0x02c1, 0x02c6, 0x0378, 0x041d, 0x04a6,
+ 0x0469, 0x0399, 0x02f0, 0x0258, 0x01f4, 0x01af,
+ 0x012e, 0x00fb, 0x0121, 0x0186, 0x02db, 0x045d,
+ 0x04c4, 0x0483, 0x03e8, 0x02fd, 0x0276, 0x01e9,
+ 0x009b, 0xff4b, 0xfe8d, 0xfe1a, 0xfde3, 0xfdb8,
+ 0xfd18, 0xfc53, 0xfc0c, 0xfbd7, 0xfb75, 0xfbb6,
+ 0xfca3, 0xfd7a, 0xfdf5, 0xfe0e, 0xfe57, 0xfef6,
+ 0xfeca, 0xfe1b, 0xfe07, 0xfe0c, 0xfdff, 0xfdfc,
+ 0xfd1f, 0xfb81, 0xf9eb, 0xf90c, 0xfa12, 0xfc88,
+ 0xfeb6, 0x0069, 0x023a, 0x0467, 0x063f, 0x06c9,
+ 0x06e3, 0x06f9, 0x05c5, 0x03cb, 0x0272, 0x01cc,
+ 0x01dd, 0x0291, 0x03a7, 0x04a4, 0x0524, 0x0639,
+ 0x07e7, 0x087e, 0x085b, 0x084b, 0x0889, 0x09f5,
+ 0x0af0, 0x0a2b, 0x0a2d, 0x0b54, 0x0c16, 0x0d1f,
+ 0x0e04, 0x0daa, 0x0c32, 0x099d, 0x07cb, 0x0834,
+ 0x087e, 0x07eb, 0x07ed, 0x077d, 0x0653, 0x0611,
+ 0x060f, 0x057a, 0x05b4, 0x0679, 0x062c, 0x0547,
+ 0x0436, 0x02ce, 0x0254, 0x02c7, 0x032f, 0x0451,
+ 0x0566, 0x0529, 0x04dc, 0x040a, 0x01fc, 0x00b5,
+ 0x0020, 0xff8b, 0x000a, 0x0059, 0xffea, 0x00df,
+ 0x02be, 0x03c5, 0x0426, 0x0477, 0x04a0, 0x0418,
+ 0x03d7, 0x04b4, 0x046d, 0x02fd, 0x02c6, 0x0270,
+ 0x015e, 0x0174, 0x01cf, 0x01d6, 0x0277, 0x0290,
+ 0x019c, 0x0069, 0xfeed, 0xfdd3, 0xfdc7, 0xfda8,
+ 0xfc93, 0xfbbd, 0xfc29, 0xfc4c, 0xfba9, 0xfba2,
+ 0xfaca, 0xf869, 0xf70d, 0xf673, 0xf5a8, 0xf5aa,
+ 0xf5a3, 0xf600, 0xf7b2, 0xf85d, 0xf853, 0xf8bd,
+ 0xf78b, 0xf6ad, 0xf827, 0xf90e, 0xf9e9, 0xfbbc,
+ 0xfbd4, 0xfb63, 0xfc48, 0xfc6c, 0xfac2, 0xf812,
+ 0xf6ec, 0xf866, 0xf922, 0xf9ed, 0xfcc4, 0xfcf5,
+ 0xfb4e, 0xfd2f, 0xffb7, 0x00b1, 0x01c6, 0x01fa,
+ 0x029e, 0x041a, 0x03c2, 0x03a3, 0x03ec, 0x01d1,
+ 0xffef, 0xfedb, 0xfd34, 0xfdcd, 0xffce, 0x0036,
+ 0xff0c, 0xfc7c, 0xfb75, 0xfc23, 0xfa5f, 0xf97c,
+ 0xfb70, 0xfba9, 0xfc99, 0xff63, 0x0022, 0x01f7,
+ 0x05ca, 0x0843, 0x0a7c, 0x0a82, 0x0799, 0x0612,
+ 0x0469, 0x0254, 0x02d9, 0x032f, 0x03aa, 0x062b,
+ 0x0702, 0x0717, 0x08c7, 0x0a49, 0x0b79, 0x0b42,
+ 0x0b59, 0x0f00, 0x0ffe, 0x0d3b, 0x0e40, 0x0ef9,
+ 0x0b53, 0x0932, 0x079e, 0x03e2, 0x0248, 0x037f,
+ 0x045e, 0x0474, 0x0590, 0x0775, 0x06bc, 0x03d6,
+ 0x01a1, 0xfff5, 0x0018, 0x0183, 0x0153, 0x0245,
+ 0x03a3, 0x0130, 0x0029, 0x0253, 0x004e, 0xfbf8,
+ 0xfc03, 0xfe58, 0xff31, 0xff78, 0xffd9, 0xfec7,
+ 0xfd21, 0xfbbe, 0xf848, 0xf625, 0xf913, 0xfb0c,
+ 0xfb90, 0xfe91, 0xfefc, 0xfdec, 0x0071, 0x005b,
+ 0xfce3, 0xfbce, 0xfbc4, 0xfd00, 0xfead, 0xfc9d,
+ 0xfb0f, 0xfc09, 0xfb0f, 0xfb2b, 0xfeef, 0x00df,
+ 0xfe16, 0xfb6d, 0xfe51, 0x026e, 0x02ec, 0x04c6,
+ 0x0715, 0x0578, 0x045c, 0x02f4, 0x0020, 0x01c2,
+ 0x0366, 0x0249, 0x043c, 0x03a5, 0xfff9, 0x024c,
+ 0x0388, 0xfe74, 0xfbe9, 0xfb8c, 0xf9d7, 0xf96b,
+ 0xf979, 0xf995, 0xfb0c, 0xfcd2, 0xfdef, 0xfda3,
+ 0xfd7b, 0xff3c, 0x017a, 0x0428, 0x050b, 0x023f,
+ 0x0087, 0xff56, 0xfdbe, 0x007e, 0x008b, 0xfbd9,
+ 0xfeda, 0x02c4, 0xfed1, 0xfff5, 0x05ae, 0x05d0,
+ 0x0539, 0x0490, 0x00f1, 0xfeb5, 0xfe0b, 0xfe6c,
+ 0xffcb, 0x0046, 0x0270, 0x033f, 0xffca, 0x009e,
+ 0x03be, 0x0291, 0x034e, 0x0377, 0xff46, 0x0037,
+ 0x041a, 0x0377, 0x0242, 0x0072, 0xfce5, 0xfa14,
+ 0xf78c, 0xf7d2, 0xfa0f, 0xfb1d, 0xfe5b, 0xfdac,
+ 0xf642, 0xf63f, 0xf94b, 0xf477, 0xf48e, 0xfa93,
+ 0xf9f8, 0xf76f, 0xf680, 0xf4cb, 0xf6a9, 0xfa7e,
+ 0xfc6f, 0xfd6f, 0xfc39, 0xfad8, 0xfc6b, 0xfebe,
+ 0x0040, 0x0053, 0x0022, 0x0103, 0x00fc, 0x0174,
+ 0x00ef, 0xfcf5, 0xfef7, 0x052a, 0x03da, 0x044b,
+ 0x0a91, 0x0be3, 0x0ce5, 0x0e47, 0x08d4, 0x0527,
+ 0x0520, 0x03fc, 0x0819, 0x0d40, 0x0d2e, 0x0ecf,
+ 0x0eb4, 0x078b, 0x0336, 0x070e, 0x0c03, 0x0b7d,
+ 0x094b, 0x0a99, 0x0996, 0x0627, 0x06a7, 0x05e9,
+ 0x0295, 0xfffb, 0xfa59, 0xf76c, 0xf9da, 0xf8ad,
+ 0xfab7, 0x02fb, 0x04cd, 0x0502, 0x07ea, 0x034d,
+ 0xfdb2, 0xff42, 0x0025, 0x005a, 0x0435, 0x0789,
+ 0x0926, 0x0b77, 0x0afb, 0x0527, 0x02e0, 0x07a0,
+ 0x0736, 0x02eb, 0x0634, 0x0883, 0x046f, 0x0442,
+ 0x05b0, 0x02b3, 0xff9b, 0xfdd6, 0xfe46, 0x02c1,
+ 0x0729, 0x0810, 0x07df, 0x0932, 0x080c, 0x02f3,
+ 0x0190, 0x007e, 0xfa85, 0xfc31, 0x0208, 0xfd58,
+ 0xfa3a, 0xfdbe, 0xfb13, 0xf7fa, 0xf9d2, 0xfa6c,
+ 0xfa6f, 0xf8a5, 0xf6e9, 0xf956, 0xf79c, 0xf1ed,
+ 0xee8f, 0xe8eb, 0xe539, 0xe747, 0xe829, 0xeb5c,
+ 0xf15a, 0xf3a1, 0xf45c, 0xf140, 0xecb4, 0xee7b,
+ 0xec9b, 0xe764, 0xe92b, 0xe673, 0xe0c8, 0xe4fc,
+ 0xe53b, 0xdd48, 0xdacf, 0xdca5, 0xdf70, 0xdfe1,
+ 0xdaf6, 0xd9c7, 0xdabd, 0xd7ae, 0xd824, 0xd97f,
+ 0xd8e3, 0xdd4e, 0xdf25, 0xdadb, 0xd87a, 0xd6f5,
+ 0xd9b7, 0xdebf, 0xdaa6, 0xd9b2, 0xe113, 0xdc74,
+ 0xd086, 0xcb8e, 0xc613, 0xc236, 0xcab5, 0xdc2a,
+ 0xe9db, 0xe8a6, 0xdfaf, 0xdc16, 0xdb2e, 0xde52,
+ 0xe777, 0xeba8, 0xedf8, 0xf506, 0xf780, 0xf754,
+ 0xfa6c, 0xfb27, 0xfd59, 0x03dc, 0x06b9, 0x0689,
+ 0x0464, 0xfecd, 0xfd37, 0x0059, 0x021a, 0x05e2,
+ 0x0cac, 0x10a2, 0x1341, 0x17d0, 0x1a0f, 0x1879,
+ 0x1840, 0x1951, 0x19b0, 0x1cf1, 0x1f5a, 0x1c93,
+ 0x1d8f, 0x219c, 0x203e, 0x21bc, 0x27a8, 0x2707,
+ 0x2582, 0x26ab, 0x1fa7, 0x158e, 0x14a9, 0x160c,
+ 0x0e4d, 0xff24, 0xeeb9, 0xdf06, 0xd833, 0xe63c,
+ 0x0201, 0x1c15, 0x2ff2, 0x352f, 0x29ad, 0x1f00,
+ 0x1a36, 0x15d2, 0x177a, 0x1884, 0x0e9f, 0x051c,
+ 0xfe6c, 0xf442, 0xf2ee, 0xfcaf, 0x0745, 0x18ad,
+ 0x2c14, 0x3241, 0x31c7, 0x272d, 0x08dd, 0xf1ca,
+ 0xef67, 0xeed5, 0xf660, 0x0864, 0x0dce, 0x0d04,
+ 0x140c, 0x1878, 0x16de, 0x0d4d, 0xfe66, 0xfc7d,
+ 0x0180, 0x000c, 0x035f, 0x07a6, 0x040d, 0x04a8,
+ 0x0b0f, 0x1447, 0x216e, 0x2979, 0x2ccc, 0x2ebe,
+ 0x2ae2, 0x2886, 0x26fc, 0x1fc8, 0x1ec0, 0x21a4,
+ 0x1ed1, 0x2040, 0x22b3, 0x1e42, 0x1c7d, 0x1cf7,
+ 0x1b6a, 0x1c13, 0x1ec8, 0x216c, 0x1e73, 0x18a5,
+ 0x1c81, 0x2231, 0x231a, 0x2640, 0x22e3, 0x1d42,
+ 0x21fb, 0x20cf, 0x1b5f, 0x1f5d, 0x1b56, 0x10ed,
+ 0x12a3, 0x18d3, 0x1ec3, 0x2242, 0x1e4e, 0x1eff,
+ 0x246b, 0x2555, 0x255f, 0x2021, 0x18a9, 0x1764,
+ 0x109a, 0x0b2e, 0x163e, 0x22ca, 0x29a9, 0x28b0,
+ 0x1904, 0x109d, 0x15e5, 0x131e, 0x121d, 0x1929,
+ 0x1637, 0x1234, 0x1516, 0x12b6, 0x1414, 0x208c,
+ 0x29bf, 0x2d1a, 0x2f89, 0x3115, 0x37e3, 0x4018,
+ 0x3a32, 0x2e9a, 0x31a8, 0x3c1f, 0x4115, 0x4702,
+ 0x4c16, 0x43ee, 0x345a, 0x2c58, 0x2b83, 0x2a5c,
+ 0x2f5c, 0x3ea7, 0x437e, 0x383c, 0x36b2, 0x3d8e,
+ 0x3832, 0x3138, 0x31bf, 0x2c8f, 0x1f20, 0x0f9d,
+ 0x020f, 0xfc9a, 0x023d, 0x118c, 0x211b, 0x251e,
+ 0x1fd2, 0x192e, 0x16e5, 0x185e, 0x0e8f, 0xfb9c,
+ 0xf655, 0xf6f7, 0xee55, 0xeccb, 0xf1f0, 0xedd0,
+ 0xf0ba, 0xfd10, 0xf520, 0xe6f3, 0xf180, 0xf90d,
+ 0xecb3, 0xed66, 0xf53e, 0xebc7, 0xe925, 0xf3af,
+ 0xf0cc, 0xe871, 0xe97f, 0xe9d7, 0xe52e, 0xdef0,
+ 0xdbe7, 0xdfa3, 0xe2a9, 0xe1a0, 0xe0e4, 0xdfcc,
+ 0xdd31, 0xd94e, 0xd6a9, 0xd475, 0xcda9, 0xcd0d,
+ 0xd4dd, 0xd114, 0xcc45, 0xd6f7, 0xda91, 0xd2b6,
+ 0xd104, 0xd11c, 0xd141, 0xd42c, 0xd613, 0xd741,
+ 0xcd5e, 0xbf69, 0xc8dc, 0xd302, 0xc5cd, 0xc54f,
+ 0xd2aa, 0xc771, 0xb6e8, 0xbf05, 0xc90c, 0xc3f9,
+ 0xbf7e, 0xc2f1, 0xc55b, 0xc3af, 0xc2d0, 0xc1a9,
+ 0xbac4, 0xb3b0, 0xb478, 0xb2ef, 0xa723, 0x9ee9,
+ 0xa29d, 0xafda, 0xc226, 0xc887, 0xc69e, 0xd191,
+ 0xd483, 0xc27a, 0xbad0, 0xbc73, 0xb96d, 0xba4f,
+ 0xb0df, 0xa1b6, 0xa96d, 0xb671, 0xbd35, 0xcaec,
+ 0xd05c, 0xcd18, 0xcdb9, 0xcc11, 0xd407, 0xdd75,
+ 0xcb96, 0xba31, 0xbc77, 0xb36f, 0xa440, 0xa808,
+ 0xb3eb, 0xb648, 0xb20e, 0xb4ff, 0xba8f, 0xb882,
+ 0xbccc, 0xc4eb, 0xc117, 0xc0bd, 0xc62a, 0xc139,
+ 0xbec5, 0xc816, 0xcddd, 0xc644, 0xbbe2, 0xc165,
+ 0xc9bd, 0xc360, 0xc751, 0xd555, 0xcfe7, 0xc992,
+ 0xd090, 0xcd00, 0xc27a, 0xbfbe, 0xbfd0, 0xc46c,
+ 0xcfea, 0xd8bf, 0xd6c1, 0xcfb3, 0xd0a8, 0xd55c,
+ 0xd380, 0xcff9, 0xce6e, 0xd095, 0xd54d, 0xd185,
+ 0xcc3c, 0xd2ca, 0xdb00, 0xe0fa, 0xe71b, 0xe47d,
+ 0xe2b7, 0xee03, 0xf576, 0xf128, 0xef61, 0xf10c,
+ 0xee65, 0xecb6, 0xf1ad, 0xf866, 0xfde1, 0x0278,
+ 0x0300, 0x01ef, 0x060e, 0x08b4, 0xffd5, 0xfa74,
+ 0x07e0, 0x0b48, 0xf54e, 0xf3f2, 0x0c60, 0x0c82,
+ 0x0205, 0x0cc2, 0x11b5, 0x09d9, 0x065b, 0x0277,
+ 0x0648, 0x1373, 0x15a7, 0x11d3, 0x11ce, 0x108f,
+ 0x1275, 0x1874, 0x1ceb, 0x1ea2, 0x1d3c, 0x1e71,
+ 0x220e, 0x1cef, 0x1195, 0x14af, 0x2ae5, 0x2d69,
+ 0x1419, 0x1aca, 0x33ba, 0x20b4, 0x13cc, 0x28bd,
+ 0x1fdf, 0x11e9, 0x26a9, 0x31aa, 0x3042, 0x2fac,
+ 0x2206, 0x1e56, 0x2410, 0x2298, 0x3133, 0x3fc6,
+ 0x3763, 0x318c, 0x2acc, 0x2112, 0x323b, 0x4ecd,
+ 0x531c, 0x410c, 0x30cc, 0x3080, 0x321c, 0x3253,
+ 0x37cf, 0x339c, 0x34cf, 0x48e0, 0x4b62, 0x4443,
+ 0x4de5, 0x4e79, 0x46e9, 0x450e, 0x42c8, 0x4f81,
+ 0x5725, 0x47d8, 0x5252, 0x63c0, 0x4b41, 0x3f05,
+ 0x53a7, 0x53f5, 0x44a7, 0x41c9, 0x4769, 0x4b3e,
+ 0x4592, 0x3f9d, 0x4098, 0x4595, 0x5394, 0x5856,
+ 0x4d11, 0x5066, 0x521c, 0x3f73, 0x405c, 0x529c,
+ 0x557c, 0x5166, 0x4a75, 0x46fa, 0x5203, 0x542c,
+ 0x4922, 0x44be, 0x4504, 0x4737, 0x41fe, 0x393c,
+ 0x4a67, 0x5787, 0x4027, 0x35b8, 0x4011, 0x3cbd,
+ 0x4531, 0x59d0, 0x5398, 0x4385, 0x4348, 0x4371,
+ 0x37c3, 0x31b6, 0x4334, 0x4e96, 0x3c97, 0x36df,
+ 0x4b3f, 0x54b2, 0x4eb6, 0x4744, 0x4571, 0x49aa,
+ 0x4429, 0x3ac0, 0x38bf, 0x34a5, 0x3bd3, 0x4906,
+ 0x4367, 0x4a28, 0x5b46, 0x4aff, 0x3ec2, 0x49c4,
+ 0x4008, 0x3691, 0x3c4c, 0x2ee8, 0x274f, 0x351e,
+ 0x31c1, 0x29c8, 0x326a, 0x2dbc, 0x20e1, 0x2e85,
+ 0x3d7e, 0x3090, 0x2f89, 0x3e61, 0x2847, 0x11df,
+ 0x2ad3, 0x3107, 0x1759, 0x164b, 0x13c4, 0x06ec,
+ 0x13f4, 0x1bc5, 0x1723, 0x1f63, 0x163a, 0x0581,
+ 0x0b7a, 0x0431, 0xf91c, 0x0e0d, 0x16aa, 0x0278,
+ 0x0307, 0x171d, 0x18ae, 0x10ca, 0x1a7e, 0x2133,
+ 0x0f32, 0x0760, 0x154d, 0x12a1, 0x02fc, 0x01ad,
+ 0x0686, 0x07f8, 0x0dc1, 0x1b88, 0x20f7, 0x160c,
+ 0x17d4, 0x1f8e, 0x0a6a, 0x0005, 0x144c, 0x0d95,
+ 0xf76f, 0xfed4, 0x074b, 0x0077, 0xfdd4, 0x0501,
+ 0x1012, 0x0a7f, 0x0206, 0x139b, 0x0fae, 0xe9bf,
+ 0xe983, 0xfe4e, 0xf61c, 0xfbe0, 0x0eb0, 0xf926,
+ 0xe3ca, 0xfa39, 0x06c9, 0xf788, 0xfe57, 0x0994,
+ 0xf2c5, 0xe9d8, 0xfe03, 0xfa7c, 0xef20, 0xf37d,
+ 0xe734, 0xdc44, 0xe3c5, 0xdf68, 0xe436, 0xf581,
+ 0xe906, 0xe1a4, 0xf5c7, 0xf31b, 0xe693, 0xf0b2,
+ 0xf4cc, 0xeb79, 0xe75f, 0xe93d, 0xe98a, 0xe35c,
+ 0xe7a1, 0xf4d7, 0xeb17, 0xe244, 0xf1f9, 0xee75,
+ 0xe17c, 0xf5c6, 0x02bd, 0xec0f, 0xdb68, 0xe04f,
+ 0xe5f1, 0xe800, 0xf0a4, 0xf6bf, 0xebb1, 0xe749,
+ 0xf233, 0xea67, 0xdf3a, 0xecaa, 0xeeb9, 0xdcdc,
+ 0xd280, 0xc7e2, 0xc279, 0xcd4a, 0xd09f, 0xd137,
+ 0xdf29, 0xe299, 0xd666, 0xd0d6, 0xd3aa, 0xd560,
+ 0xd065, 0xc594, 0xba63, 0xb699, 0xc767, 0xe05d,
+ 0xe77b, 0xeba9, 0xf481, 0xf1d5, 0xf843, 0x017f,
+ 0xecd5, 0xe5aa, 0xf1fa, 0xd2c9, 0xbe14, 0xe443,
+ 0xe61e, 0xc757, 0xddfb, 0xf128, 0xe135, 0xf2dc,
+ 0x001e, 0xda63, 0xc79a, 0xd609, 0xd46a, 0xccfc,
+ 0xd063, 0xd509, 0xd9e0, 0xd9ad, 0xd6b0, 0xdc3b,
+ 0xe269, 0xe446, 0xe9c4, 0xed89, 0xe8b0, 0xe34e,
+ 0xdfa5, 0xd5a2, 0xd10d, 0xe0d2, 0xeab6, 0xdcec,
+ 0xd37c, 0xd525, 0xda30, 0xecc8, 0xf448, 0xe446,
+ 0xe6ea, 0xf21b, 0xe6cb, 0xe803, 0xf59b, 0xeb39,
+ 0xe0ee, 0xe3bd, 0xdfd8, 0xe46d, 0xf24b, 0xf1d0,
+ 0xe8a9, 0xe0ab, 0xe34a, 0xf598, 0xf882, 0xe85a,
+ 0xeb60, 0xfa95, 0x009d, 0x08fc, 0x0a9e, 0xfbd6,
+ 0xf626, 0xfbc4, 0xf62a, 0xeaad, 0xe816, 0xe835,
+ 0xe2d0, 0xdf5c, 0xe338, 0xe6db, 0xeb58, 0xefdf,
+ 0xe4db, 0xd9f1, 0xe818, 0xef14, 0xd977, 0xcf85,
+ 0xdf82, 0xee59, 0xf474, 0xf956, 0x0195, 0x070b,
+ 0x0036, 0xfbda, 0xfce7, 0xeeb8, 0xe4cd, 0xedb5,
+ 0xe47e, 0xd531, 0xedcf, 0x0a02, 0xfc42, 0xede6,
+ 0x038d, 0x13bc, 0xfede, 0xef66, 0xf71c, 0xe7ff,
+ 0xd143, 0xe103, 0xeb13, 0xdcc7, 0xece6, 0x0447,
+ 0xf8cf, 0xf2a3, 0xfafd, 0xf5a9, 0xee4e, 0xedaf,
+ 0xf128, 0xf12e, 0xdf11, 0xdbb5, 0xf507, 0xf5df,
+ 0xeadf, 0xf7b2, 0xf135, 0xdf86, 0xeb0e, 0xeabe,
+ 0xdcf2, 0xe56d, 0xe137, 0xd2be, 0xe2a6, 0xeec7,
+ 0xe28e, 0xdcdb, 0xddeb, 0xdedf, 0xe5ad, 0xedd5,
+ 0xeeff, 0xe7ae, 0xf018, 0x0389, 0xef12, 0xd76c,
+ 0xf1e4, 0xf4c5, 0xd50e, 0xe1be, 0xf1cf, 0xe632,
+ 0xf787, 0xffe8, 0xe569, 0xeb9c, 0xfbe6, 0xeb90,
+ 0xe6c3, 0xec5a, 0xe1f0, 0xdf42, 0xe67e, 0xeafd,
+ 0xf417, 0x0142, 0x0a0d, 0x02f8, 0xf7aa, 0xfd80,
+ 0xf73a, 0xe183, 0xe8d8, 0xeeec, 0xd6d9, 0xd08b,
+ 0xd871, 0xdb8d, 0xf05c, 0xf175, 0xd15b, 0xd063,
+ 0xe117, 0xde01, 0xe367, 0xe4f4, 0xd3bd, 0xd359,
+ 0xda7c, 0xd9c6, 0xe132, 0xdf19, 0xd747, 0xe335,
+ 0xe576, 0xdabc, 0xe580, 0xedf8, 0xe0e2, 0xdc4c,
+ 0xe480, 0xe95f, 0xe931, 0xe994, 0xf12f, 0xf492,
+ 0xee3a, 0xf622, 0x05b7, 0xff09, 0xf35c, 0xf89a,
+ 0xf9e4, 0xf0ca, 0xf466, 0x006c, 0xfcf4, 0xf1d5,
+ 0xf319, 0x0271, 0x17a8, 0x163b, 0xfd56, 0x0784,
+ 0x2287, 0x09b8, 0xfbe4, 0x1e1f, 0x1192, 0xf2fe,
+ 0x0faf, 0x143f, 0xf55d, 0x0978, 0x198c, 0xfb8a,
+ 0xf5bc, 0x01be, 0x0021, 0x053e, 0x0415, 0x0068,
+ 0x0cca, 0x04a1, 0xf30a, 0x0454, 0x1026, 0x045b,
+ 0x0e90, 0x1ce4, 0x120e, 0x0b4d, 0x094a, 0x04a1,
+ 0x17fa, 0x266b, 0x0dfa, 0x0583, 0x1a57, 0x143e,
+ 0x0046, 0xfe43, 0x03fa, 0x1333, 0x122a, 0xf71c,
+ 0xfead, 0x116f, 0xf79c, 0xf0d2, 0x05ce, 0xfbbf,
+ 0xf99b, 0x042d, 0xf4d3, 0xfcd9, 0x1809, 0x0e35,
+ 0xf9ab, 0xec57, 0xef3a, 0x0d57, 0x08d7, 0xedf5,
+ 0xfb97, 0xf1ff, 0xcf2f, 0xe0cb, 0xf1c1, 0xeca7,
+ 0xff6f, 0xfa36, 0xea0a, 0x04a5, 0x06c0, 0xeb26,
+ 0xf0a3, 0xf633, 0xf096, 0xfaf9, 0xfd06, 0xf422,
+ 0xed85, 0xeba2, 0xfb96, 0x02a3, 0xf671, 0xfabd,
+ 0xfa4c, 0xeb39, 0xf8c4, 0x0ef9, 0x0d25, 0x028e,
+ 0xf83e, 0xfbdc, 0x0828, 0x08f1, 0x174a, 0x27e9,
+ 0x12c2, 0x0018, 0x0c51, 0x1ecb, 0x3099, 0x28d6,
+ 0x0d2c, 0x113d, 0x12fc, 0xf834, 0x061d, 0x2e5c,
+ 0x2ca5, 0x23e2, 0x30a7, 0x2bef, 0x1b01, 0x1c96,
+ 0x1f7e, 0x174a, 0x1ade, 0x1ee1, 0x07de, 0xf92d,
+ 0x0c10, 0x1a70, 0x1e1c, 0x2912, 0x2c73, 0x2634,
+ 0x1c9d, 0x0fb1, 0x0fa8, 0x1719, 0x189f, 0x1b9d,
+ 0x1805, 0x18a2, 0x2cab, 0x31d1, 0x30e3, 0x438f,
+ 0x3943, 0x1ca1, 0x25a6, 0x29f3, 0x16ae, 0x1c3e,
+ 0x2bbe, 0x273a, 0x1c68, 0x1aba, 0x265e, 0x3023,
+ 0x3b1a, 0x5232, 0x4c9b, 0x2dd3, 0x29db, 0x2952,
+ 0x20e2, 0x2f9e, 0x37fc, 0x2e22, 0x27b6, 0x1b91,
+ 0x1d64, 0x2f9b, 0x315e, 0x3367, 0x2ab7, 0x0e7c,
+ 0x195e, 0x27cf, 0x0e13, 0x103c, 0x195d, 0x0a92,
+ 0x2190, 0x2ccd, 0x13b9, 0x274b, 0x2933, 0x011b,
+ 0x1849, 0x2dfe, 0x03b7, 0xf555, 0xf97a, 0xf467,
+ 0x0967, 0x08a0, 0xf53d, 0x04a4, 0x080e, 0x0628,
+ 0x257e, 0x2c7d, 0x208b, 0x2637, 0x14d6, 0x0171,
+ 0x0ef0, 0x0f52, 0x06ca, 0x176a, 0x24b3, 0x1fba,
+ 0x2050, 0x2b11, 0x2912, 0x1575, 0x0baa, 0x07c2,
+ 0xfcf5, 0x087e, 0x1c6d, 0x1608, 0x12ce, 0x19ca,
+ 0x1b88, 0x2969, 0x2eea, 0x23a2, 0x2a71, 0x2834,
+ 0x1431, 0x1a5a, 0x1d89, 0x1154, 0x1d4c, 0x1f7d,
+ 0x1271, 0x25ba, 0x3074, 0x20c9, 0x28e4, 0x2e16,
+ 0x2057, 0x286e, 0x271d, 0x0f98, 0x162e, 0x1bb2,
+ 0x054d, 0x1410, 0x3564, 0x2acf, 0x2657, 0x3c0a,
+ 0x3796, 0x30f8, 0x38bb, 0x29df, 0x2388, 0x2e66,
+ 0x1b54, 0x1148, 0x2509, 0x2536, 0x3059, 0x4e5a,
+ 0x410f, 0x2bad, 0x3164, 0x2bab, 0x2590, 0x1bf1,
+ 0x04fe, 0x153c, 0x293b, 0x1741, 0x28dc, 0x3ab6,
+ 0x0f9b, 0x0c8c, 0x2ee2, 0x1921, 0x0aa5, 0x1f59,
+ 0x101c, 0xfbcc, 0x0ac5, 0x16e0, 0x0b58, 0xf880,
+ 0x017e, 0x1845, 0x08c3, 0x0035, 0x21e1, 0x2429,
+ 0x0985, 0x0af2, 0x0fdc, 0x0947, 0x0338, 0x0106,
+ 0x0fbf, 0x0d6d, 0xf4e6, 0x0628, 0x1a83, 0x06da,
+ 0x11bc, 0x227b, 0x0503, 0x01e6, 0x1535, 0x0ce4,
+ 0x1619, 0x23af, 0x12ed, 0x0ba3, 0x05cf, 0x0257,
+ 0x199e, 0x1348, 0x0382, 0x25ee, 0x2a0e, 0x108a,
+ 0x2936, 0x2d9a, 0x12ec, 0x239b, 0x2568, 0x1624,
+ 0x2bb9, 0x18ee, 0xf4be, 0x192a, 0x298c, 0x0a48,
+ 0x14d7, 0x1e7a, 0x0b9d, 0x10e3, 0x1499, 0x1034,
+ 0x228f, 0x31cf, 0x34ae, 0x28aa, 0x1037, 0x1e28,
+ 0x32c9, 0x1652, 0x0d01, 0x218f, 0x13b0, 0x0b6c,
+ 0x2109, 0x266d, 0x2482, 0x25c6, 0x2160, 0x2756,
+ 0x2c4d, 0x2a72, 0x3194, 0x2f5e, 0x2acf, 0x355d,
+ 0x2d28, 0x1bba, 0x23d1, 0x25f6, 0x159d, 0x0fa1,
+ 0x1826, 0x259e, 0x1ff6, 0x0b86, 0x1a58, 0x2fa1,
+ 0x156c, 0x0495, 0x15ea, 0x0fc2, 0x03f7, 0x1164,
+ 0x1258, 0x0c5f, 0x1903, 0x1c44, 0x145c, 0x16c7,
+ 0x1453, 0x1053, 0x1c84, 0x2298, 0x1ad9, 0x17ed,
+ 0x1248, 0x0d42, 0x1880, 0x19d2, 0x063d, 0xfe01,
+ 0x03fe, 0x0857, 0x0a90, 0x09b9, 0x0e8a, 0x14a2,
+ 0x0b40, 0x0ce0, 0x1bf9, 0x0ec7, 0x0227, 0x0b1e,
+ 0xf744, 0xe978, 0x0d00, 0x0ed2, 0xe706, 0xecda,
+ 0x01a2, 0xf1d1, 0xecd2, 0xfdb5, 0xfdc1, 0xf5a7,
+ 0xf9c6, 0xfd79, 0xf823, 0xf6dd, 0xfabd, 0xf83b,
+ 0xf9a4, 0x020e, 0xfee5, 0xfa47, 0x00a5, 0x02d4,
+ 0x0210, 0x00cb, 0xfb2a, 0xfd7a, 0xf9b3, 0xe98f,
+ 0xed97, 0xf158, 0xe25f, 0xefa1, 0x0325, 0xf02f,
+ 0xe709, 0xf1ad, 0xe842, 0xdbf5, 0xd96a, 0xdfb4,
+ 0xf05f, 0xe4b4, 0xcce2, 0xdce7, 0xe479, 0xd2eb,
+ 0xe343, 0xf018, 0xda58, 0xe2c6, 0xf6bc, 0xe215,
+ 0xdfa9, 0x0385, 0x015d, 0xe01a, 0xe8e2, 0xfd23,
+ 0xe3ae, 0xd3a1, 0xe9a5, 0xe78d, 0xde86, 0xf5cd,
+ 0xf397, 0xd8aa, 0xdf7d, 0xeb8e, 0xe5e5, 0xe39f,
+ 0xdf8c, 0xe2a6, 0xe65a, 0xd75b, 0xe1f2, 0xfb99,
+ 0xe837, 0xda5c, 0xee67, 0xef25, 0xf046, 0xf945,
+ 0xe9db, 0xeb55, 0xf719, 0xe256, 0xe68a, 0x0356,
+ 0xf8e1, 0xf125, 0xfc08, 0xeb92, 0xe4e9, 0xf9d6,
+ 0xfcd7, 0xf757, 0xf7ef, 0xf367, 0xf3a5, 0xf457,
+ 0xf7a4, 0x09aa, 0x0983, 0xf5a2, 0xf4f3, 0xf40d,
+ 0xe96f, 0xf456, 0xfd61, 0xf1ed, 0xf3c1, 0xfe13,
+ 0xf989, 0xf37f, 0xf4b6, 0xf9cc, 0xfeeb, 0xfb1e,
+ 0xf3e8, 0xf371, 0xf756, 0xfb99, 0xf902, 0xf03d,
+ 0xea6a, 0xe561, 0xe7ed, 0xf33d, 0xee75, 0xe386,
+ 0xe89f, 0xe8c7, 0xe6f2, 0xef65, 0xe787, 0xdcd4,
+ 0xe4a5, 0xe57d, 0xebe1, 0xf8b4, 0xe515, 0xde80,
+ 0xfa51, 0xeda7, 0xd5ef, 0xeab6, 0xe4ae, 0xc3f7,
+ 0xd1fd, 0xe5cc, 0xddb2, 0xded7, 0xd886, 0xc5e6,
+ 0xcec6, 0xdbf9, 0xce6d, 0xc01a, 0xc1a0, 0xcc11,
+ 0xd24d, 0xcfec, 0xd68b, 0xdc15, 0xd275, 0xd88a,
+ 0xe2ee, 0xcffb, 0xc6a6, 0xd430, 0xd174, 0xc92c,
+ 0xcdd3, 0xd2a3, 0xd0e6, 0xcdf5, 0xde6e, 0xed5f,
+ 0xd5b8, 0xcce6, 0xddee, 0xc86e, 0xbccb, 0xd68e,
+ 0xcdd4, 0xc7ba, 0xdfb0, 0xd68f, 0xd64b, 0xf0ae,
+ 0xdff6, 0xd075, 0xdfeb, 0xd6f5, 0xd5a9, 0xe5ef,
+ 0xcffb, 0xbdfd, 0xd836, 0xec4e, 0xe8c9, 0xe482,
+ 0xe26e, 0xdbd3, 0xda4f, 0xee7e, 0xfbec, 0xec87,
+ 0xed57, 0xf87a, 0xdeb5, 0xcf32, 0xe8c2, 0xf48a,
+ 0xefd7, 0xed8e, 0xe181, 0xe5fa, 0xf5af, 0xe9e2,
+ 0xe942, 0xf720, 0xe061, 0xd785, 0xf308, 0xeafd,
+ 0xde3b, 0xfbc9, 0x07d4, 0xfb5e, 0xf8fb, 0xf3c7,
+ 0xf492, 0xfa54, 0xf36c, 0xf862, 0xfa5a, 0xe57b,
+ 0xeb27, 0xfc84, 0xee05, 0xf18a, 0x0bd9, 0x0553,
+ 0xf37a, 0xf26d, 0xf469, 0xfcd0, 0x0058, 0xf220,
+ 0xeb8f, 0xf169, 0xf15a, 0xee37, 0xeed6, 0xf4eb,
+ 0xfbe7, 0xf99b, 0xf3a3, 0xf104, 0xed53, 0xe939,
+ 0xe6d6, 0xea60, 0xf06f, 0xe7e1, 0xdbea, 0xe047,
+ 0xe695, 0xea39, 0xeceb, 0xe400, 0xe18a, 0xe991,
+ 0xe3b6, 0xe114, 0xe8d2, 0xde08, 0xce27, 0xcecc,
+ 0xd522, 0xddc9, 0xe739, 0xeb4b, 0xe7a0, 0xe126,
+ 0xe680, 0xeb47, 0xe43a, 0xe91d, 0xebd8, 0xde23,
+ 0xe40e, 0xef20, 0xe674, 0xec26, 0xfb7d, 0xfa43,
+ 0xf251, 0xe7b4, 0xe5cc, 0xeb2f, 0xe0b6, 0xddc6,
+ 0xeed3, 0xf396, 0xed58, 0xe7bb, 0xe33d, 0xe779,
+ 0xed51, 0xf2ec, 0xf213, 0xe2ff, 0xe84b, 0xf903,
+ 0xe927, 0xdfec, 0xf195, 0xf3a9, 0xee38, 0xec52,
+ 0xe377, 0xe303, 0xe63a, 0xe6f3, 0xefdd, 0xf3c5,
+ 0xf495, 0xf802, 0xee03, 0xe55e, 0xe5c8, 0xe1e0,
+ 0xea3d, 0xf529, 0xed29, 0xf170, 0xff4b, 0xf59b,
+ 0xf07c, 0xfbbf, 0xf5d3, 0xefa4, 0xf9a9, 0xf313,
+ 0xe99e, 0xf635, 0xf66f, 0xf065, 0x0010, 0x0451,
+ 0xfefb, 0x08ab, 0x086e, 0x07d9, 0x0f30, 0x0225,
+ 0x011c, 0x12e8, 0x0975, 0x00b6, 0x0b0f, 0x0cda,
+ 0x0f3a, 0x0b74, 0x0287, 0x08e3, 0x0237, 0xfa6f,
+ 0x063f, 0xf9fe, 0xf258, 0x0761, 0xfbca, 0xecba,
+ 0xfcf1, 0xfa11, 0xf578, 0x00d9, 0xfd00, 0xfc2a,
+ 0xfc5a, 0xf259, 0xf870, 0xfb04, 0xf554, 0xfe37,
+ 0xf8f3, 0xf0c6, 0xfc3e, 0xf634, 0xf3ec, 0x085b,
+ 0x00e2, 0xf6af, 0x09d2, 0x07e5, 0xf9e6, 0x014c,
+ 0xff7b, 0xf98e, 0x04aa, 0x0415, 0xf9da, 0x0028,
+ 0x08b0, 0x0712, 0x0229, 0xfcb3, 0xfb85, 0xfe61,
+ 0x035e, 0x07fc, 0x01ea, 0xfe2b, 0x04a5, 0xfe87,
+ 0xfd3a, 0x0e14, 0x0b0d, 0x05fc, 0x162d, 0x1227,
+ 0x07ea, 0x1172, 0x1005, 0x0ecd, 0x1328, 0x061c,
+ 0x0434, 0x091d, 0xf8fb, 0xf2d0, 0xfb66, 0x0668,
+ 0x1554, 0x0c73, 0xfe67, 0x07f6, 0x04ac, 0xfbb0,
+ 0x00e0, 0xfa9f, 0xfa23, 0x06a6, 0x0493, 0x009b,
+ 0x00bb, 0x05ae, 0x16ac, 0x17a2, 0x0eb0, 0x11c1,
+ 0x098b, 0x017b, 0x0986, 0x0a0c, 0x0937, 0x0c47,
+ 0x0da7, 0x15ea, 0x12f2, 0x086f, 0x10fb, 0x18c2,
+ 0x16b2, 0x12c1, 0x088b, 0x0bc1, 0x1669, 0x0fe8,
+ 0x0bba, 0x1008, 0x1647, 0x2032, 0x1996, 0x0ffd,
+ 0x17dc, 0x143e, 0x0b04, 0x0e8c, 0x08d7, 0x0140,
+ 0x03fa, 0x037b, 0x046b, 0x0363, 0xfcec, 0x0512,
+ 0x0eb1, 0x0425, 0x0257, 0x14fa, 0x162a, 0x0c90,
+ 0x195a, 0x1574, 0xf7e2, 0x0071, 0x152d, 0x0fab,
+ 0x1dd2, 0x25cb, 0x1247, 0x1edb, 0x23a5, 0x04fa,
+ 0x0ceb, 0x1bb6, 0x0747, 0x07e8, 0x0ef4, 0xffc5,
+ 0x0188, 0x0e5c, 0x0e03, 0x112c, 0x1e50, 0x1f09,
+ 0x10d3, 0x198c, 0x2c45, 0x1df6, 0x1707, 0x222a,
+ 0x14b0, 0x125f, 0x22b4, 0x1fc0, 0x23a4, 0x297f,
+ 0x2202, 0x2845, 0x24ef, 0x19cf, 0x1f37, 0x0f7f,
+ 0x02b9, 0x1445, 0x1257, 0x1110, 0x1c9c, 0x12f7,
+ 0x1cdf, 0x2ad0, 0x10b7, 0x0b57, 0x152b, 0x0672,
+ 0x098c, 0x0a23, 0xf381, 0xf984, 0x0835, 0x02b8,
+ 0x02e2, 0x023e, 0xff22, 0x062f, 0x0d5d, 0x0f27,
+ 0x05ad, 0x0261, 0x1776, 0x1c6c, 0x10d5, 0x1af2,
+ 0x1d38, 0x1540, 0x2668, 0x2eb0, 0x2043, 0x1e3d,
+ 0x1e1e, 0x165e, 0x157c, 0x1119, 0x08ad, 0x0a04,
+ 0x10c3, 0x1985, 0x1e72, 0x15f4, 0x0f18, 0x16bf,
+ 0x1c5c, 0x16a5, 0x1317, 0x172f, 0x15c6, 0x0cde,
+ 0x10da, 0x1d02, 0x13ff, 0x0853, 0x16ad, 0x1c35,
+ 0x0c62, 0x104b, 0x1bf2, 0x0fcf, 0x06ae, 0x0d4e,
+ 0x0e1e, 0x0dff, 0x138e, 0x108a, 0x0ae8, 0x13bd,
+ 0x1b00, 0x1309, 0x1789, 0x244e, 0x1488, 0x0980,
+ 0x1c15, 0x163b, 0x04fd, 0x15f3, 0x1b0b, 0x0eaf,
+ 0x17cf, 0x12f4, 0x0700, 0x1a13, 0x1996, 0x0720,
+ 0x16ec, 0x1e50, 0x0e7e, 0x11d2, 0x1701, 0x1c4f,
+ 0x2ca4, 0x24a4, 0x1400, 0x17a3, 0x17cc, 0x1b13,
+ 0x25fd, 0x220a, 0x1b0d, 0x152d, 0x1327, 0x200d,
+ 0x1b90, 0x0f44, 0x1e84, 0x20ea, 0x1707, 0x215b,
+ 0x1b20, 0x0fd0, 0x1b76, 0x155c, 0x07d6, 0x0868,
+ 0xfe37, 0xf9e4, 0x0043, 0x0222, 0x0c90, 0x0a3a,
+ 0xfdb8, 0x05a1, 0xfeec, 0xefcd, 0xfbb7, 0xfbf3,
+ 0xf4d0, 0xfdd9, 0xf8d6, 0xfa3c, 0x0d2f, 0x110d,
+ 0x197d, 0x1f8f, 0x0e68, 0x0f85, 0x168f, 0x026f,
+ 0xf62a, 0xf68b, 0xf47c, 0xfd4d, 0x05a4, 0x01b3,
+ 0xfc33, 0xfd15, 0x0529, 0x0636, 0x014b, 0x0377,
+ 0xff00, 0xf8ea, 0x024a, 0x0941, 0x08a0, 0x0aea,
+ 0x0b4c, 0x0736, 0xfea4, 0xfeda, 0x0c7b, 0x091a,
+ 0xfde4, 0x09ce, 0x0c5a, 0xf28a, 0xe4fc, 0xf2a9,
+ 0xfeb3, 0xfa17, 0xfae5, 0x0642, 0x003c, 0xf2d2,
+ 0xf7c6, 0x021c, 0x0537, 0xfd34, 0xf192, 0xf46b,
+ 0xf6ea, 0xf65c, 0x0310, 0x05ab, 0x03ea, 0x10cf,
+ 0x07ca, 0xf7a8, 0x089f, 0x139f, 0x0687, 0xfb73,
+ 0xf7cb, 0xffdf, 0x067a, 0x02d5, 0x0a1b, 0x1170,
+ 0x1191, 0x1d78, 0x262f, 0x2653, 0x2845, 0x1fa1,
+ 0x185f, 0x1cad, 0x1907, 0x1425, 0x1a7a, 0x23b1,
+ 0x25fa, 0x1ef4, 0x1ef7, 0x2108, 0x1522, 0x168a,
+ 0x1f93, 0x123a, 0x0d05, 0x1251, 0x0bdc, 0x1696,
+ 0x2366, 0x114d, 0x0710, 0x1184, 0x13ec, 0x1087,
+ 0x1281, 0x19f3, 0x193b, 0x0d44, 0x0d68, 0x11b3,
+ 0x0a39, 0x0922, 0x0cb8, 0x0f24, 0x1488, 0x0b9b,
+ 0x02c8, 0x1140, 0x18a1, 0x0c9f, 0x02f9, 0x011c,
+ 0x03d8, 0x019e, 0xff69, 0x0acd, 0x1029, 0x0b37,
+ 0x0e1a, 0x0e7f, 0x0df4, 0x13a4, 0x0c40, 0xff27,
+ 0xfee8, 0x021e, 0x01a7, 0xfe2e, 0x0043, 0x07ee,
+ 0xffe1, 0xf5d6, 0xff0f, 0xfea7, 0xf015, 0xf05c,
+ 0xf75d, 0xf665, 0xf48b, 0xf497, 0xf5cb, 0xfb1a,
+ 0x017e, 0xfc49, 0xf158, 0xf3e9, 0xf3bd, 0xe80c,
+ 0xebde, 0xf401, 0xeae0, 0xe263, 0xe1ef, 0xe85d,
+ 0xeed4, 0xe526, 0xe1a1, 0xeb6d, 0xe4b5, 0xde92,
+ 0xe536, 0xe446, 0xeb14, 0xf622, 0xf0b6, 0xf11c,
+ 0xf593, 0xefb6, 0xf315, 0xf54f, 0xe94c, 0xe9ce,
+ 0xf585, 0xf3d7, 0xeca9, 0xf1c3, 0xf958, 0xf6c3,
+ 0xf618, 0xf5df, 0xedce, 0xf06f, 0xf47b, 0xed85,
+ 0xf758, 0x0025, 0xf392, 0xf40c, 0xf54a, 0xeef7,
+ 0x001a, 0x02e1, 0xed61, 0xf4c9, 0xffe4, 0xf741,
+ 0xfa3c, 0xfa70, 0xed4e, 0xe794, 0xeacc, 0xf605,
+ 0xfaa2, 0xf26c, 0xf458, 0xf6c1, 0xf3c5, 0xfff4,
+ 0x05c9, 0xf96e, 0xf76c, 0xfed8, 0xffda, 0xf9c7,
+ 0xf1a5, 0xecbd, 0xe8d5, 0xee0f, 0xfc14, 0xfbbc,
+ 0xf700, 0xfa16, 0xf3ab, 0xf2ce, 0xfd1a, 0xf555,
+ 0xeb84, 0xf3db, 0xf822, 0xf61d, 0xf824, 0xf70f,
+ 0xf602, 0xfb9e, 0xfe62, 0xfe48, 0x050f, 0x0130,
+ 0xeee8, 0xf144, 0xf878, 0xe9c8, 0xec01, 0xf609,
+ 0xea63, 0xf27a, 0x0096, 0xf43d, 0xf721, 0xfdb3,
+ 0xf4fe, 0x00c0, 0x0343, 0xefad, 0xf0c0, 0xee5e,
+ 0xe1c3, 0xea6c, 0xf200, 0xf22b, 0xf4ff, 0xf025,
+ 0xf028, 0xefdf, 0xe6ee, 0xed12, 0xf443, 0xe7c5,
+ 0xd94d, 0xd915, 0xec0d, 0xf654, 0xeafb, 0xf22b,
+ 0xffe6, 0xf7e4, 0xf740, 0xf91f, 0xf077, 0xee50,
+ 0xe84e, 0xe6f4, 0xf24a, 0xed8e, 0xe792, 0xed37,
+ 0xed3f, 0xf59a, 0xf9eb, 0xed82, 0xf00a, 0xf296,
+ 0xe92e, 0xf0c8, 0xf4df, 0xea82, 0xec6d, 0xefab,
+ 0xef02, 0xf726, 0xfa04, 0xf162, 0xed79, 0xf214,
+ 0xec5f, 0xe022, 0xe9c8, 0xf115, 0xdfc4, 0xe002,
+ 0xeeb2, 0xec8e, 0xec74, 0xee7a, 0xebd4, 0xf008,
+ 0xee9f, 0xebf3, 0xed05, 0xe340, 0xe445, 0xf0e4,
+ 0xef62, 0xeb44, 0xe3f5, 0xde3d, 0xe955, 0xe86d,
+ 0xe474, 0xeee7, 0xe227, 0xd963, 0xed03, 0xe8bb,
+ 0xe097, 0xf1cd, 0xf509, 0xf01d, 0xed85, 0xe632,
+ 0xef05, 0xf36b, 0xe9a7, 0xf45b, 0xfb4b, 0xeec2,
+ 0xee8e, 0xef50, 0xea23, 0xf077, 0xf635, 0xf78e,
+ 0xfb23, 0xf7fe, 0xf0be, 0xf218, 0xfa28, 0xf833,
+ 0xf0e3, 0xf6db, 0xf567, 0xeba8, 0xfb7c, 0x065f,
+ 0xf786, 0xf787, 0xf899, 0xebea, 0xf2aa, 0xf856,
+ 0xec50, 0xedc8, 0xf175, 0xeb39, 0xee1d, 0xf006,
+ 0xeac9, 0xecb2, 0xf169, 0xf403, 0xf691, 0xf4fa,
+ 0xf003, 0xee86, 0xf359, 0xf5a2, 0xee9b, 0xe8ee,
+ 0xe9da, 0xed3f, 0xf3ea, 0xf697, 0xf1dc, 0xf131,
+ 0xf360, 0xf0e9, 0xed85, 0xeacc, 0xeb42, 0xf279,
+ 0xf6c8, 0xf1c6, 0xedbc, 0xf04a, 0xf3de, 0xf6d7,
+ 0xf7ab, 0xf3dc, 0xf3d5, 0xf7a5, 0xf2a9, 0xed30,
+ 0xf09d, 0xf137, 0xf0f5, 0xf345, 0xeff7, 0xf370,
+ 0xfc70, 0xf568, 0xf0fa, 0xfd1d, 0xfdf7, 0xf3fc,
+ 0xf33a, 0xf50b, 0xf549, 0xf7b5, 0xf833, 0xf70a,
+ 0xf99b, 0xff60, 0xfc43, 0xeec5, 0xec3e, 0xf47a,
+ 0xf5ee, 0xf6aa, 0xf788, 0xf227, 0xf0ca, 0xf39b,
+ 0xf921, 0x00cd, 0xf9d0, 0xf19e, 0xfb7f, 0xfdcc,
+ 0xf731, 0xfadc, 0xfb83, 0xf8fe, 0xf5cb, 0xeba8,
+ 0xf1a9, 0x0213, 0x0225, 0x01bd, 0xfe54, 0xf284,
+ 0xfa33, 0x000b, 0xf3aa, 0xfac4, 0x04d7, 0xf8d8,
+ 0xf60a, 0xfa8f, 0xf8e9, 0x015b, 0x07e4, 0x003f,
+ 0xfac2, 0xf867, 0xf3e1, 0xf445, 0xf9e5, 0xf9e4,
+ 0xf2b1, 0xef3a, 0xeaea, 0xe4bc, 0xedbb, 0xf6f7,
+ 0xf352, 0xf741, 0xf63f, 0xea48, 0xf0fb, 0xfad9,
+ 0xf652, 0xf229, 0xeb31, 0xef6f, 0xfd2d, 0xf116,
+ 0xec4e, 0x024c, 0x01bd, 0xfaeb, 0x00b0, 0xf3f7,
+ 0xf108, 0xff5e, 0xf7b5, 0xf46d, 0xfac9, 0xea87,
+ 0xe318, 0xee9e, 0xf007, 0xf49d, 0xfcb7, 0xf96c,
+ 0xfa42, 0xfc5f, 0xf644, 0xf8ee, 0x036c, 0x039b,
+ 0xfbe3, 0xfd02, 0x0842, 0x0b0e, 0x069d, 0x0c45,
+ 0x11bb, 0x0e9f, 0x0fd7, 0x0f14, 0x065c, 0x037a,
+ 0x029b, 0xfd51, 0xfced, 0xfb65, 0xf59d, 0xfb1d,
+ 0x05be, 0x05d2, 0x0072, 0xfb3b, 0xf92a, 0xfaf6,
+ 0xf853, 0xf6ea, 0xfd70, 0x0074, 0x0011, 0xffd4,
+ 0xfdff, 0x0611, 0x0fd5, 0x0b0d, 0x088a, 0x08bd,
+ 0xfe0c, 0xf9c5, 0xfe65, 0xfd4b, 0xfb36, 0xfa86,
+ 0xfde5, 0x0446, 0x0127, 0xff73, 0x0408, 0x0186,
+ 0x0547, 0x09e4, 0xfd8b, 0xfd4c, 0x07be, 0xff91,
+ 0xfdd5, 0x04c5, 0xf892, 0xf445, 0xffcb, 0xf92c,
+ 0xf041, 0xfb22, 0x01e9, 0xfcab, 0xfa52, 0xfaf2,
+ 0xfcd0, 0xff2a, 0xfa4d, 0xf6a4, 0xfe9a, 0x01fa,
+ 0xff47, 0x04f3, 0x0176, 0xf58e, 0xffcb, 0x08b4,
+ 0xf915, 0xf74b, 0x02d7, 0xfae5, 0xf76b, 0x03e1,
+ 0xff5d, 0xf3ca, 0xf935, 0xfbab, 0xf773, 0xfec7,
+ 0x02e4, 0xfc05, 0xfd87, 0x00c0, 0xfc26, 0xfe84,
+ 0x0426, 0x02b3, 0xffff, 0xfb0b, 0xf8a6, 0xfe5c,
+ 0xfd6b, 0xf85e, 0xfc6a, 0xfdfd, 0xfc35, 0x0267,
+ 0x0634, 0x02fe, 0x033a, 0x04b8, 0x0507, 0x09cd,
+ 0x0cb2, 0x0947, 0x0ae8, 0x0c8e, 0x01ae, 0xfad1,
+ 0xfde3, 0xfa7d, 0xf91c, 0xfd08, 0xf93f, 0xf8ed,
+ 0xfae6, 0xf61d, 0xfaed, 0xfd6f, 0xf390, 0xf78a,
+ 0xf926, 0xecc7, 0xf4c3, 0xfdee, 0xf3a3, 0xf812,
+ 0xffd7, 0xf7d8, 0xfc3a, 0x0341, 0xf965, 0xf752,
+ 0xfed0, 0xfafc, 0xf387, 0xf37e, 0xef80, 0xe583,
+ 0xea52, 0xf94b, 0xf904, 0xf5a3, 0xfb3a, 0xf954,
+ 0xf7c6, 0xfcc1, 0xf961, 0xf949, 0xfedf, 0xf9d1,
+ 0xfb40, 0x052e, 0x00a1, 0xfe04, 0x04d9, 0xfd9f,
+ 0xf522, 0xf955, 0xf815, 0xf67f, 0xfbfe, 0xf94f,
+ 0xf755, 0xfd6d, 0xfa44, 0xf6eb, 0xfc92, 0xf8b5,
+ 0xf25b, 0xf48d, 0xeed4, 0xe60a, 0xe7a3, 0xea52,
+ 0xeba9, 0xecce, 0xeaa0, 0xea22, 0xea8a, 0xeb6c,
+ 0xf07e, 0xf1f8, 0xf045, 0xf1fd, 0xf227, 0xf2bd,
+ 0xf4cd, 0xf391, 0xf5f7, 0xfaaa, 0xfbf7, 0x0063,
+ 0x04a0, 0x0790, 0x0e00, 0x0d05, 0x0858, 0x0c2e,
+ 0x0bcf, 0x05a6, 0x062a, 0x093d, 0x09f4, 0x0776,
+ 0x05f5, 0x0c1e, 0x0e45, 0x09fa, 0x0bed, 0x0b94,
+ 0x0814, 0x0c92, 0x0c61, 0x06f3, 0x0c39, 0x1467,
+ 0x1550, 0x1145, 0x1015, 0x18ff, 0x1bfc, 0x11a5,
+ 0x0e96, 0x0e90, 0x093b, 0x0c84, 0x0dfa, 0x0a2c,
+ 0x1423, 0x17ee, 0x0b67, 0x0d53, 0x1433, 0x0a3f,
+ 0x039f, 0x06df, 0x0765, 0x05f3, 0x0346, 0xff77,
+ 0xfafb, 0xfb0d, 0x088a, 0x1202, 0x0ee5, 0x1592,
+ 0x19e7, 0x0fb6, 0x1363, 0x1a8c, 0x1230, 0x11be,
+ 0x1274, 0x09fd, 0x0e6c, 0x13d9, 0x0ebe, 0x0f3d,
+ 0x0f44, 0x0fcb, 0x136b, 0x0ad0, 0x0745, 0x0c0f,
+ 0x0144, 0x00e4, 0x0f83, 0x073d, 0xfdf1, 0x07fe,
+ 0x0b04, 0x0927, 0x074b, 0x007a, 0x029f, 0x0348,
+ 0xf965, 0xf93c, 0xf997, 0xf07c, 0xef8a, 0xf02e,
+ 0xee52, 0xf797, 0xfc86, 0xf551, 0xf59d, 0xf7b8,
+ 0xf182, 0xf1aa, 0xf60e, 0xf13d, 0xee24, 0xf30e,
+ 0xf2a7, 0xeefb, 0xf220, 0xf4ac, 0xf2d6, 0xf432,
+ 0xf766, 0xf7b0, 0xf507, 0xeff6, 0xee90, 0xf41d,
+ 0xf6cc, 0xf38a, 0xf360, 0xf45e, 0xf0f1, 0xf1a7,
+ 0xf7ad, 0xf773, 0xf365, 0xf356, 0xf5b0, 0xfb1d,
+ 0xff70, 0xfcba, 0xfc66, 0xfeda, 0xfa83, 0xfa5f,
+ 0x01ae, 0xff95, 0xfa18, 0xfd9e, 0xfe24, 0xf9b4,
+ 0xfbe3, 0xfe27, 0xfad6, 0xfa29, 0xf9cf, 0xf714,
+ 0xf9bc, 0xfce5, 0xfab2, 0xfa12, 0xf8df, 0xf738,
+ 0xfbd5, 0xfbe3, 0xf6b3, 0xf9cf, 0xfb93, 0xf89c,
+ 0xfcf7, 0x0115, 0x0288, 0x073e, 0x0825, 0x0861,
+ 0x0882, 0x0380, 0x0862, 0x0f7a, 0x06a2, 0x04ab,
+ 0x0a68, 0x02b8, 0x022b, 0x0a3d, 0x0472, 0x03a1,
+ 0x0b5a, 0x067a, 0x061a, 0x0fc3, 0x0cee, 0x06a0,
+ 0x0773, 0x0613, 0x0838, 0x0ce9, 0x08fd, 0x0692,
+ 0x0959, 0x0739, 0x057b, 0x05aa, 0x01e7, 0xfffa,
+ 0x002e, 0x0039, 0x0285, 0x006e, 0xfd80, 0x00df,
+ 0xff5f, 0xfd5b, 0x02ce, 0x01f8, 0x0169, 0x07fc,
+ 0x0594, 0x04dd, 0x0dc9, 0x0cf0, 0x098d, 0x0ccc,
+ 0x0be4, 0x0c4e, 0x0e43, 0x0b4c, 0x0a86, 0x0779,
+ 0x00d1, 0x003a, 0x0098, 0x016e, 0x03b2, 0x0112,
+ 0x039f, 0x09c0, 0x0656, 0x057c, 0x0907, 0x056e,
+ 0x0345, 0x0527, 0x0524, 0x0455, 0x022d, 0x032c,
+ 0x05e0, 0x0354, 0x03f4, 0x0705, 0x0478, 0x0359,
+ 0x022c, 0xfeeb, 0x00b1, 0x0064, 0xfbe6, 0xfb40,
+ 0xfb3a, 0xf9f3, 0xf920, 0xfa6e, 0xfe6a, 0xfeb2,
+ 0xfeec, 0xfef4, 0xf707, 0xf99e, 0x04c2, 0xfd85,
+ 0xf85d, 0x01f9, 0x0279, 0x0033, 0x009c, 0x00b0,
+ 0x0941, 0x0609, 0xf9a6, 0x00d3, 0x026e, 0xf99a,
+ 0x0042, 0x0076, 0xfc59, 0x047c, 0xff87, 0xfbc9,
+ 0x0839, 0x0618, 0x0201, 0x06f8, 0xff52, 0xfdf7,
+ 0x06a4, 0x01ba, 0xfe92, 0x0216, 0xfef6, 0xfdea,
+ 0x0110, 0x0619, 0x09cc, 0x030b, 0xfe4c, 0xff46,
+ 0xf943, 0xf813, 0xfbf9, 0xf6ba, 0xf442, 0xf6a0,
+ 0xf60b, 0xfc22, 0x02fa, 0x0155, 0x008d, 0xfedd,
+ 0xfb3f, 0xff25, 0x02cb, 0xff4a, 0xfda9, 0xfd9f,
+ 0xfb55, 0xfcc7, 0x0205, 0x05e0, 0x085a, 0x090f,
+ 0x09f4, 0x0cd4, 0x09cc, 0x031d, 0x0458, 0x05f8,
+ 0x022b, 0x0212, 0x03c1, 0x0508, 0x076a, 0x0434,
+ 0x01ad, 0x04b8, 0x0201, 0xfffa, 0x04df, 0x03c6,
+ 0xffb1, 0x005a, 0x011a, 0x029f, 0x04bc, 0x0652,
+ 0x0730, 0x02ff, 0x006f, 0x0230, 0xfe55, 0xfab0,
+ 0xfbe2, 0xfb0e, 0xfa6f, 0xf8ce, 0xf7a1, 0xfcc9,
+ 0xfe2b, 0xfd08, 0x0050, 0xfd66, 0xfa3d, 0xfa92,
+ 0xf353, 0xf4b9, 0xffcc, 0xfd63, 0xfaee, 0x0135,
+ 0x0070, 0xfe9b, 0x0133, 0x03d2, 0x06cb, 0x047e,
+ 0x005b, 0xff11, 0xfc59, 0xff23, 0x0341, 0x0048,
+ 0x0130, 0x0080, 0xfaf3, 0xfea3, 0xffa3, 0xfb1a,
+ 0xff3a, 0xfe25, 0xf94a, 0xff63, 0x0285, 0x0180,
+ 0x03a1, 0x033f, 0x05d6, 0x06d8, 0x0093, 0x001c,
+ 0xff71, 0xfb26, 0xfe49, 0xfc5b, 0xf5ce, 0xf923,
+ 0xfa72, 0xf8f2, 0xfbbf, 0xf85e, 0xf51b, 0xf90d,
+ 0xf9dc, 0xfa57, 0xfda4, 0xfd9e, 0xfc4a, 0xfd21,
+ 0xff20, 0xfdff, 0xfbeb, 0x0024, 0x0158, 0xfca0,
+ 0xfe27, 0xfe2c, 0xfa5b, 0xfd3b, 0xfc28, 0xf808,
+ 0xfc40, 0xfdb4, 0xfdd4, 0x01c1, 0xfdeb, 0xfba7,
+ 0x011e, 0x00bf, 0x00b8, 0x02e4, 0xfcdd, 0xf97e,
+ 0xfe05, 0x000f, 0xff4b, 0xfecb, 0xfff0, 0xffe3,
+ 0xfb6a, 0xfc0a, 0x014e, 0xff47, 0xfb32, 0xf9f6,
+ 0xf7b4, 0xf7d6, 0xf8b1, 0xf7a7, 0xf974, 0xfb32,
+ 0xfb7c, 0xfe05, 0xffb4, 0x0194, 0x0438, 0x0100,
+ 0xfc90, 0xfcce, 0xfcd8, 0xfdf9, 0x010c, 0x000d,
+ 0xfe78, 0x009f, 0x0260, 0x0424, 0x0679, 0x055c,
+ 0x0453, 0x0743, 0x0840, 0x04ca, 0x01dc, 0x0118,
+ 0x00f4, 0x0061, 0xfe8f, 0xfe21, 0x020f, 0x05d9,
+ 0x04be, 0x02b5, 0x022b, 0xffc6, 0xfd4d, 0xfc18,
+ 0xf891, 0xf7c0, 0xfc9b, 0xfd14, 0xfae2, 0xfee0,
+ 0x00a7, 0xfd54, 0xffa2, 0x02fb, 0xfeea, 0xfb70,
+ 0xfbfc, 0xfa30, 0xf9e5, 0xff08, 0x0092, 0xfeed,
+ 0x0307, 0x05e5, 0x0546, 0x0ad5, 0x0d46, 0x06e0,
+ 0x0497, 0x02de, 0xff19, 0x03b6, 0x07df, 0x06e4,
+ 0x0a32, 0x0a4a, 0x069b, 0x095a, 0x0b3a, 0x0925,
+ 0x079e, 0x037c, 0xfeea, 0xfbc0, 0xf90e, 0xf882,
+ 0xf643, 0xf69d, 0xfccf, 0xfba9, 0xf831, 0xfd04,
+ 0xfef5, 0xffed, 0x049a, 0x0305, 0x014c, 0x022e,
+ 0xfd61, 0xfb92, 0xfd17, 0xfa11, 0xfac7, 0xff08,
+ 0xfffd, 0xffa7, 0xfe37, 0xfefb, 0x0104, 0xfe79,
+ 0xfe14, 0xfea7, 0xfa90, 0xfc9e, 0x028c, 0x039c,
+ 0x0775, 0x0b67, 0x0aa8, 0x0bb5, 0x0aa9, 0x074f,
+ 0x085f, 0x08e0, 0x08b2, 0x0a23, 0x0750, 0x03c5,
+ 0x04ee, 0x08ee, 0x0e84, 0x0f8c, 0x0b9e, 0x0b19,
+ 0x0a6a, 0x0739, 0x08df, 0x0b74, 0x0a31, 0x09ee,
+ 0x0a15, 0x0940, 0x0a3a, 0x0acf, 0x096c, 0x085d,
+ 0x0626, 0x00c5, 0xfa7d, 0xf6cb, 0xf768, 0xf900,
+ 0xf715, 0xf4e7, 0xf5b8, 0xf497, 0xf14b, 0xf1e5,
+ 0xf45d, 0xf4da, 0xf68f, 0xf926, 0xf91a, 0xf91b,
+ 0xf9fe, 0xf857, 0xf92e, 0x004d, 0x0474, 0x04d4,
+ 0x081a, 0x077c, 0x0463, 0x07de, 0x06ab, 0x0052,
+ 0x0227, 0x0008, 0xf88c, 0xfc90, 0xfed8, 0xf906,
+ 0xfb46, 0xfc34, 0xf6c9, 0xf94b, 0xfbbc, 0xf7a9,
+ 0xf667, 0xf463, 0xef56, 0xedf6, 0xef79, 0xef1f,
+ 0xeb17, 0xe961, 0xec67, 0xea07, 0xe45c, 0xe4bd,
+ 0xe59a, 0xe361, 0xe002, 0xdd44, 0xe01b, 0xe2bb,
+ 0xe0e2, 0xe2b4, 0xe428, 0xe1c1, 0xe2b3, 0xe3d2,
+ 0xe53f, 0xea46, 0xed53, 0xf222, 0xf75b, 0xf55d,
+ 0xf7bc, 0xfd64, 0xfa78, 0xfb18, 0xff25, 0xfb84,
+ 0xfacf, 0xfc3f, 0xfa1b, 0xff14, 0x037a, 0xff36,
+ 0x0000, 0x03d0, 0x0306, 0x04b9, 0x076e, 0x078a,
+ 0x0895, 0x0920, 0x09e9, 0x0ce8, 0x0eb7, 0x0fa1,
+ 0x0ff2, 0x0e7e, 0x0eb3, 0x0e80, 0x0b2a, 0x0cba,
+ 0x130b, 0x12d5, 0x0d21, 0x09c1, 0x089b, 0x0795,
+ 0x0524, 0x030d, 0x0547, 0x05e5, 0x024b, 0x03e5,
+ 0x079e, 0x06c4, 0x0821, 0x0a1a, 0x0951, 0x0bbd,
+ 0x0b53, 0x0577, 0x0479, 0x0577, 0x05f5, 0x0a8a,
+ 0x0d1c, 0x0db7, 0x105c, 0x0f95, 0x0e8b, 0x0fe2,
+ 0x0d73, 0x0a5d, 0x0a4c, 0x0ce5, 0x1029, 0x0de9,
+ 0x0e8a, 0x166b, 0x14df, 0x1002, 0x14f1, 0x1624,
+ 0x138c, 0x142b, 0x1027, 0x0c18, 0x09a0, 0x039b,
+ 0x0376, 0x0521, 0x0160, 0x024f, 0x01ef, 0xfca8,
+ 0xffa4, 0x030e, 0xff7f, 0xfd6e, 0xf9fc, 0xf5b5,
+ 0xf596, 0xf3ac, 0xf0db, 0xf0e9, 0xf1e6, 0xf4ad,
+ 0xf619, 0xf5a0, 0xf82e, 0xf9be, 0xf871, 0xf750,
+ 0xf3b6, 0xefb3, 0xefb3, 0xf19b, 0xf26e, 0xf170,
+ 0xf294, 0xf5a4, 0xf519, 0xf664, 0xfac7, 0xf8d4,
+ 0xf471, 0xf21e, 0xee26, 0xec5b, 0xecb5, 0xec73,
+ 0xef34, 0xf278, 0xf4d0, 0xf79c, 0xf6fc, 0xf5f0,
+ 0xf5d5, 0xf35a, 0xf41c, 0xf4b6, 0xefcb, 0xefb0,
+ 0xf25f, 0xf05c, 0xf024, 0xefdc, 0xee5f, 0xf267,
+ 0xf4a1, 0xf1bb, 0xf27d, 0xf479, 0xf2b5, 0xf066,
+ 0xf020, 0xf0eb, 0xf061, 0xefec, 0xf10b, 0xf20c,
+ 0xf473, 0xf6a8, 0xf671, 0xf7d2, 0xf7f8, 0xf5d0,
+ 0xf8d2, 0xfbf5, 0xf930, 0xf72c, 0xf7f1, 0xfa4d,
+ 0xfdc0, 0xff62, 0x0073, 0x013f, 0x020c, 0x05ae,
+ 0x0734, 0x0517, 0x0431, 0x02d5, 0x02db, 0x0510,
+ 0x0439, 0x04b2, 0x0643, 0x0326, 0x0240, 0x039f,
+ 0x0260, 0x0440, 0x06e9, 0x0647, 0x05c8, 0x0450,
+ 0x0578, 0x0a2b, 0x09de, 0x07bb, 0x05ad, 0xff23,
+ 0xfc46, 0xfdbd, 0xfc01, 0xfcbd, 0xffe5, 0xff9d,
+ 0x0105, 0x04d3, 0x0553, 0x0419, 0x04e4, 0x051f,
+ 0x0164, 0xfe72, 0xfe78, 0xfca7, 0xfc9f, 0xffae,
+ 0xfe8f, 0xfd06, 0xfed7, 0xff01, 0xfdfb, 0xfc88,
+ 0xfbbd, 0xfd0f, 0xfa76, 0xf638, 0xf634, 0xf511,
+ 0xf412, 0xf592, 0xf4e9, 0xf685, 0xfa94, 0xfabc,
+ 0xfb12, 0xfc54, 0xfb95, 0xfb28, 0xf9b8, 0xf800,
+ 0xf7ce, 0xf6ae, 0xf635, 0xf576, 0xf39b, 0xf473,
+ 0xf3a7, 0xf1dc, 0xf500, 0xf681, 0xf5d7, 0xf60c,
+ 0xf2e6, 0xf351, 0xf6d9, 0xf3ca, 0xf47a, 0xfa62,
+ 0xfa3a, 0xfbcd, 0x0020, 0xfe0f, 0xfb48, 0xfa2c,
+ 0xf7bc, 0xf6be, 0xf6bf, 0xf774, 0xf887, 0xf7c7,
+ 0xf761, 0xf70a, 0xf693, 0xf89d, 0xf980, 0xf7c1,
+ 0xf6b2, 0xf761, 0xf991, 0xf8a2, 0xf6ba, 0xfb71,
+ 0xfe66, 0xfc92, 0xfff5, 0x0268, 0xfe77, 0xfb5d,
+ 0xf9cc, 0xf96c, 0xf78f, 0xf141, 0xee7d, 0xee2b,
+ 0xeba2, 0xede0, 0xf128, 0xf1ad, 0xf71f, 0xfca0,
+ 0xfca6, 0xfbfa, 0xfbfa, 0xfe55, 0xffe3, 0xfbef,
+ 0xf9e2, 0xfabd, 0xf8e1, 0xf849, 0xfa92, 0xfd98,
+ 0x00aa, 0x0271, 0x04b1, 0x051d, 0x021a, 0x01d2,
+ 0x0128, 0xfd74, 0xfd2d, 0xfc79, 0xf9d8, 0xfb77,
+ 0xfe2d, 0x0167, 0x0582, 0x0552, 0x04cd, 0x05e8,
+ 0x0566, 0x05b0, 0x037b, 0xff3b, 0xff91, 0xff1a,
+ 0xfe4c, 0x0273, 0x03d5, 0x0458, 0x0954, 0x09ce,
+ 0x0654, 0x0593, 0x0540, 0x047c, 0x01f1, 0xfe58,
+ 0xfda6, 0xfb62, 0xf7a2, 0xf9c8, 0xfe7e, 0x00d6,
+ 0x0265, 0x042a, 0x0691, 0x0661, 0x014e, 0xfcbd,
+ 0xfad9, 0xf94b, 0xf9cd, 0xfca9, 0xfd27, 0xfaa4,
+ 0xfb23, 0xfee9, 0xff45, 0xfcef, 0xfc34, 0xfc01,
+ 0xfb5a, 0xf8ac, 0xf4a1, 0xf4a3, 0xf6fd, 0xf845,
+ 0xfb19, 0xfe07, 0xffef, 0x023d, 0x023c, 0x00f0,
+ 0xff5c, 0xfa4c, 0xf61e, 0xf60f, 0xf568, 0xf3a2,
+ 0xf2df, 0xf430, 0xf6d7, 0xf711, 0xf68d, 0xf77a,
+ 0xf6a3, 0xf56e, 0xf461, 0xf17f, 0xf080, 0xf010,
+ 0xedc8, 0xeefe, 0xf1de, 0xf2e4, 0xf5df, 0xf91b,
+ 0xfb1a, 0xfe5d, 0xffac, 0xff75, 0x019e, 0x0223,
+ 0xfefd, 0xfce5, 0xfd91, 0xfe43, 0xfcf5, 0xfbaa,
+ 0xfca2, 0xfeeb, 0x01c7, 0x040e, 0x0529, 0x0710,
+ 0x0820, 0x0669, 0x05e1, 0x070e, 0x05a2, 0x033f,
+ 0x0387, 0x0343, 0x0058, 0xff1a, 0xfea8, 0xfc12,
+ 0xfd13, 0x0026, 0xfd0c, 0xfac2, 0xfddb, 0xfd8f,
+ 0xfcad, 0xffcd, 0xffe9, 0xfed3, 0x019f, 0x0417,
+ 0x04ec, 0x04ea, 0x0475, 0x05f7, 0x0636, 0x0448,
+ 0x0565, 0x0634, 0x041c, 0x0457, 0x03dd, 0xffaf,
+ 0xfe04, 0xfdec, 0xfb6e, 0xfac8, 0xfc6b, 0xfc79,
+ 0xfc67, 0xfc80, 0xfada, 0xfa86, 0xfd1d, 0xfe6d,
+ 0xfd87, 0xfdb2, 0xff39, 0x0032, 0xff6a, 0xfd09,
+ 0xfc54, 0xfe8d, 0xffa8, 0xff8e, 0x01cc, 0x046a,
+ 0x0618, 0x0908, 0x0ab2, 0x0925, 0x0706, 0x04f5,
+ 0x03d2, 0x0451, 0x0364, 0x0204, 0x0315, 0x039c,
+ 0x02c9, 0x0303, 0x02d7, 0x022a, 0x0336, 0x03d7,
+ 0x01ce, 0x0053, 0x0104, 0x002a, 0xfdbb, 0xfd62,
+ 0xfd8f, 0xfca5, 0xfcf2, 0xfe42, 0x000a, 0x01b5,
+ 0x0171, 0x01d9, 0x0333, 0x0258, 0x0305, 0x05fa,
+ 0x06b1, 0x073a, 0x081c, 0x073b, 0x0695, 0x05ab,
+ 0x0543, 0x0679, 0x04ce, 0x02c5, 0x0413, 0x03ea,
+ 0x030a, 0x0318, 0x026f, 0x044a, 0x0522, 0x01ca,
+ 0x01d7, 0x02d5, 0xffb5, 0xfe22, 0xfd57, 0xfb5f,
+ 0xfbfc, 0xfdfd, 0x006b, 0x026e, 0x0248, 0x038e,
+ 0x0513, 0x03ee, 0x035b, 0x025a, 0x010e, 0x016f,
+ 0xfff6, 0x0008, 0x03af, 0x0407, 0x04d0, 0x08d5,
+ 0x08eb, 0x0780, 0x079b, 0x0678, 0x063b, 0x05b3,
+ 0x0340, 0x0306, 0x042b, 0x0485, 0x050c, 0x05e6,
+ 0x07cf, 0x08bb, 0x0772, 0x073f, 0x06a7, 0x0445,
+ 0x0341, 0x0308, 0x029e, 0x02d1, 0x03e9, 0x0614,
+ 0x0644, 0x055a, 0x0792, 0x08d7, 0x0815, 0x0943,
+ 0x0947, 0x084d, 0x089c, 0x06ee, 0x05a1, 0x06a5,
+ 0x0634, 0x0573, 0x057a, 0x0631, 0x086e, 0x087c,
+ 0x0745, 0x090e, 0x0a46, 0x08bf, 0x0634, 0x03a3,
+ 0x02bd, 0x020c, 0x0192, 0x034e, 0x0428, 0x04af,
+ 0x066a, 0x05c9, 0x04da, 0x037d, 0xfe3e, 0xfaf1,
+ 0xfa05, 0xf6ca, 0xf594, 0xf716, 0xf90a, 0xfbd2,
+ 0xfb9e, 0xfa0e, 0xfa3f, 0xf811, 0xf596, 0xf586,
+ 0xf5d4, 0xf829, 0xf9e1, 0xfa1f, 0xfe3d, 0x0126,
+ 0xff88, 0xff33, 0xfe29, 0xfab9, 0xf776, 0xf3bd,
+ 0xf18c, 0xf063, 0xee1a, 0xed9c, 0xedbf, 0xef3e,
+ 0xf481, 0xf59e, 0xf2af, 0xf351, 0xf28a, 0xef05,
+ 0xeed7, 0xf061, 0xf196, 0xf268, 0xf3a8, 0xf752,
+ 0xf927, 0xf8a2, 0xfa91, 0xfac9, 0xf845, 0xf8dd,
+ 0xfa68, 0xfa47, 0xf9eb, 0xf94c, 0xf9c3, 0xfb7b,
+ 0xfd76, 0xffa9, 0x00c9, 0x02c1, 0x0607, 0x0699,
+ 0x06dd, 0x07c7, 0x0592, 0x04a1, 0x064d, 0x05d6,
+ 0x066b, 0x0870, 0x0817, 0x0931, 0x0c05, 0x0c4e,
+ 0x0c28, 0x0d0d, 0x0c8b, 0x0a1d, 0x085c, 0x09ca,
+ 0x0b56, 0x0b0c, 0x0deb, 0x130a, 0x14ff, 0x167c,
+ 0x1960, 0x19e3, 0x18c7, 0x188a, 0x1799, 0x15bf,
+ 0x14c7, 0x1434, 0x13cf, 0x1573, 0x1807, 0x1826,
+ 0x1685, 0x15cf, 0x155f, 0x136d, 0x1116, 0x112e,
+ 0x12e5, 0x1304, 0x1325, 0x15bb, 0x17c6, 0x177e,
+ 0x16f0, 0x161c, 0x1374, 0x0fd2, 0x0dc4, 0x0d5a,
+ 0x0c59, 0x0beb, 0x0d8e, 0x0e98, 0x0f08, 0x101d,
+ 0x0f31, 0x0db5, 0x0e63, 0x0ddd, 0x0d29, 0x0f7b,
+ 0x1066, 0x101b, 0x12c4, 0x1395, 0x1134, 0x1097,
+ 0x0f2e, 0x0c71, 0x0c95, 0x0b70, 0x07b5, 0x0739,
+ 0x0708, 0x047e, 0x04d6, 0x05ea, 0x03d4, 0x027d,
+ 0x01c6, 0xff4f, 0xfde2, 0xfdb0, 0xfd99, 0xfeb0,
+ 0xfefc, 0xfe46, 0xfeec, 0xfe93, 0xfc79, 0xfb4c,
+ 0xf9da, 0xf7ee, 0xf71f, 0xf620, 0xf5a0, 0xf649,
+ 0xf6c3, 0xf8ca, 0xfa3c, 0xf749, 0xf5b5, 0xf761,
+ 0xf5d7, 0xf33b, 0xf3e2, 0xf4ab, 0xf48e, 0xf57b,
+ 0xf788, 0xf920, 0xf91c, 0xf9c7, 0xfa70, 0xf7f9,
+ 0xf733, 0xf969, 0xf85b, 0xf740, 0xf8ce, 0xf72a,
+ 0xf59e, 0xf902, 0xfc0d, 0xfd46, 0xfecb, 0xffb1,
+ 0x0036, 0xff0e, 0xfcac, 0xfd97, 0xfeee, 0xfd44,
+ 0xfddf, 0x0002, 0xfed9, 0xfeb0, 0x0179, 0x027c,
+ 0x02af, 0x044d, 0x04a5, 0x0348, 0x022f, 0x0156,
+ 0x005f, 0x006a, 0x02a7, 0x04c9, 0x0470, 0x04ea,
+ 0x0636, 0x03ac, 0x0122, 0x01a4, 0xfeea, 0xfa5a,
+ 0xf969, 0xf883, 0xf750, 0xf92a, 0xfb4e, 0xfc83,
+ 0xfe37, 0xff9e, 0x00fc, 0x0274, 0x0394, 0x043a,
+ 0x0300, 0x01cc, 0x02da, 0x0346, 0x029f, 0x02d2,
+ 0x03e6, 0x0680, 0x07e6, 0x0674, 0x0705, 0x07bb,
+ 0x0406, 0x0108, 0x00c3, 0xffdb, 0xff85, 0xffbf,
+ 0xff9c, 0x009d, 0x0161, 0x01bc, 0x039b, 0x04c8,
+ 0x040b, 0x0328, 0x027d, 0x0260, 0x01ea, 0xfff3,
+ 0xfef7, 0xff59, 0xfe67, 0xfd64, 0xfdb1, 0xfd3c,
+ 0xfc0c, 0xfae9, 0xf8bf, 0xf725, 0xf77d, 0xf6be,
+ 0xf459, 0xf302, 0xf270, 0xf25e, 0xf3ac, 0xf4a6,
+ 0xf458, 0xf3b7, 0xf31d, 0xf33f, 0xf3f8, 0xf4cd,
+ 0xf661, 0xf715, 0xf66a, 0xf70c, 0xf7bf, 0xf758,
+ 0xf8da, 0xfab5, 0xf9ec, 0xf960, 0xfa2a, 0xf9eb,
+ 0xf977, 0xfa4e, 0xfb3b, 0xfb93, 0xfc27, 0xfc87,
+ 0xfbe6, 0xfb26, 0xfa33, 0xf893, 0xf81c, 0xf8fc,
+ 0xf9c9, 0xfbaa, 0xfe47, 0xff65, 0x0075, 0x02ca,
+ 0x03ba, 0x0246, 0x012b, 0x0154, 0x0081, 0xfe8e,
+ 0xfd3a, 0xfbc2, 0xf9a8, 0xf859, 0xf7b9, 0xf74f,
+ 0xf6fd, 0xf6af, 0xf82b, 0xfab9, 0xfa9e, 0xf8f1,
+ 0xf87b, 0xf79f, 0xf596, 0xf435, 0xf407, 0xf4a9,
+ 0xf61e, 0xf832, 0xfa10, 0xfb30, 0xfbb7, 0xfbcf,
+ 0xfbfb, 0xfc01, 0xfaee, 0xf9e3, 0xf960, 0xf87d,
+ 0xf94f, 0xfc14, 0xfda3, 0xfeb5, 0xff94, 0xfe3a,
+ 0xfd17, 0xfd37, 0xfc91, 0xfd39, 0xff68, 0x0058,
+ 0x016c, 0x02d3, 0x029a, 0x01ef, 0x00b2, 0xfe76,
+ 0xfd31, 0xfbf9, 0xfa3e, 0xf9fc, 0xfa03, 0xf9af,
+ 0xfa1a, 0xf9fe, 0xfaab, 0xfcd9, 0xfc13, 0xf9db,
+ 0xfa26, 0xf94c, 0xf736, 0xf791, 0xf85a, 0xf992,
+ 0xfc28, 0xfccc, 0xfcff, 0xfeea, 0xff34, 0xfe4b,
+ 0xfe23, 0xfd7e, 0xfcc2, 0xfbc5, 0xfab8, 0xfbe8,
+ 0xfd9e, 0xfe47, 0xff80, 0xfffc, 0xff4e, 0xfefd,
+ 0xfe3e, 0xfe23, 0xfffd, 0x01b8, 0x0271, 0x028c,
+ 0x0285, 0x0282, 0x0151, 0x0056, 0x009a, 0xffc1,
+ 0xfee0, 0xfeb7, 0xfd0e, 0xfc9c, 0xfe51, 0xfe7c,
+ 0xfedf, 0x00f5, 0x01a1, 0x0107, 0x0091, 0xffc0,
+ 0xfdf5, 0xfb06, 0xf8d8, 0xf855, 0xf801, 0xf7eb,
+ 0xf78c, 0xf6a3, 0xf780, 0xf989, 0xfb06, 0xfc4b,
+ 0xfc52, 0xfb8a, 0xfb2d, 0xf9bc, 0xf7d4, 0xf69e,
+ 0xf54c, 0xf542, 0xf6b1, 0xf81f, 0xfb13, 0xffb7,
+ 0x0426, 0x081e, 0x0a89, 0x0a1c, 0x074b, 0x039f,
+ 0x017f, 0x0107, 0x0116, 0x02b7, 0x053a, 0x06a9,
+ 0x078d, 0x07e4, 0x073e, 0x0624, 0x042c, 0x0212,
+ 0x0107, 0xffdb, 0xfed7, 0xff53, 0x000a, 0x013f,
+ 0x04c6, 0x0840, 0x08d1, 0x0839, 0x07bb, 0x064a,
+ 0x0512, 0x0563, 0x05d3, 0x0570, 0x04d9, 0x047f,
+ 0x03d5, 0x02ab, 0x027b, 0x023c, 0xffc6, 0xfe42,
+ 0xfec4, 0xfd99, 0xfcac, 0xfdcd, 0xfd93, 0xfd32,
+ 0xfe5f, 0xfe59, 0xfd4f, 0xfcc4, 0xfd5b, 0xff9c,
+ 0x0168, 0x0345, 0x0720, 0x0969, 0x0940, 0x094b,
+ 0x087f, 0x0710, 0x0588, 0x02c0, 0x0165, 0x0215,
+ 0x0205, 0x02ad, 0x04a6, 0x05c0, 0x063b, 0x0654,
+ 0x0604, 0x05a1, 0x04c3, 0x0475, 0x0442, 0x02ad,
+ 0x022c, 0x02ac, 0x0188, 0x00f1, 0x0165, 0x00cd,
+ 0x0107, 0x0150, 0xfec4, 0xfc45, 0xfb6b, 0xfa19,
+ 0xf9bf, 0xfabd, 0xfa82, 0xfae2, 0xfd9d, 0x001a,
+ 0x0225, 0x0452, 0x0516, 0x0598, 0x066c, 0x05f3,
+ 0x060a, 0x0737, 0x06f7, 0x062e, 0x052d, 0x035e,
+ 0x0302, 0x034c, 0x0339, 0x0512, 0x0689, 0x05d9,
+ 0x06ad, 0x07f8, 0x06f6, 0x0610, 0x0622, 0x059e,
+ 0x049f, 0x0444, 0x0563, 0x06cd, 0x0738, 0x078e,
+ 0x0785, 0x0675, 0x05db, 0x05cf, 0x04b2, 0x0324,
+ 0x034b, 0x0426, 0x032b, 0x0246, 0x032f, 0x0361,
+ 0x035d, 0x046c, 0x047d, 0x04b2, 0x05d0, 0x052f,
+ 0x048b, 0x0563, 0x051d, 0x0473, 0x04b9, 0x04ca,
+ 0x04c2, 0x0465, 0x0375, 0x032e, 0x03c7, 0x052f,
+ 0x06d0, 0x0731, 0x0690, 0x056d, 0x0417, 0x037c,
+ 0x030e, 0x02f1, 0x0478, 0x0683, 0x079f, 0x07d6,
+ 0x07cc, 0x0872, 0x08af, 0x07bc, 0x0744, 0x06df,
+ 0x05d5, 0x058d, 0x05bb, 0x05b8, 0x05e6, 0x0602,
+ 0x05be, 0x046e, 0x0306, 0x0385, 0x0411, 0x03eb,
+ 0x04f6, 0x051c, 0x03d2, 0x03af, 0x0379, 0x02e3,
+ 0x0345, 0x032a, 0x02f2, 0x0316, 0x0241, 0x01c4,
+ 0x015d, 0x000f, 0x007c, 0x01b4, 0x0146, 0x0185,
+ 0x02da, 0x0397, 0x0443, 0x04b2, 0x048d, 0x0415,
+ 0x0350, 0x02ac, 0x00da, 0xfdd1, 0xfcc6, 0xfcc0,
+ 0xfb80, 0xfb67, 0xfc72, 0xfcbd, 0xfdbd, 0xff38,
+ 0xffb1, 0x000e, 0x0012, 0xff0e, 0xfe02, 0xfc86,
+ 0xf9f6, 0xf832, 0xf81a, 0xf7b4, 0xf679, 0xf660,
+ 0xf72f, 0xf6ee, 0xf657, 0xf678, 0xf5c6, 0xf395,
+ 0xf171, 0xf05c, 0xf025, 0xf077, 0xf0e5, 0xf0d4,
+ 0xf04a, 0xefee, 0xefea, 0xf055, 0xf121, 0xf1a3,
+ 0xf215, 0xf2c6, 0xf301, 0xf3a4, 0xf57a, 0xf67f,
+ 0xf665, 0xf6e6, 0xf780, 0xf80b, 0xf98b, 0xfa96,
+ 0xfa3b, 0xfa0a, 0xfa74, 0xfb58, 0xfd3c, 0xfed6,
+ 0xfee7, 0xfeb1, 0xfeb5, 0xfe71, 0xfee7, 0x0008,
+ 0x007c, 0x0132, 0x02c5, 0x03dc, 0x0551, 0x080a,
+ 0x09d6, 0x09e3, 0x095c, 0x087d, 0x0814, 0x08e2,
+ 0x09eb, 0x0aa9, 0x0b1f, 0x0b13, 0x0b20, 0x0ba4,
+ 0x0c54, 0x0d40, 0x0e59, 0x0fa3, 0x1114, 0x1235,
+ 0x136a, 0x1476, 0x1417, 0x1371, 0x13aa, 0x1348,
+ 0x129b, 0x12ff, 0x1300, 0x11ee, 0x1162, 0x113f,
+ 0x1012, 0x0e81, 0x0e1f, 0x0e2d, 0x0d75, 0x0cdb,
+ 0x0c8d, 0x0c01, 0x0c44, 0x0cda, 0x0c68, 0x0c38,
+ 0x0c94, 0x0c2b, 0x0b95, 0x0b2e, 0x0a6d, 0x09c2,
+ 0x0931, 0x086e, 0x07ab, 0x072a, 0x0766, 0x07e7,
+ 0x080f, 0x083e, 0x080b, 0x0809, 0x096c, 0x0a51,
+ 0x0a19, 0x0a39, 0x0954, 0x07a4, 0x0735, 0x06b4,
+ 0x0627, 0x06b7, 0x0679, 0x05b8, 0x0624, 0x069b,
+ 0x0716, 0x07c5, 0x076f, 0x06da, 0x0695, 0x05b7,
+ 0x0445, 0x0237, 0x0027, 0xff3e, 0xfef5, 0xff3f,
+ 0x0080, 0x01b1, 0x026f, 0x0281, 0x0156, 0xfffa,
+ 0xfed4, 0xfd24, 0xfb9e, 0xfb05, 0xfaed, 0xfad2,
+ 0xfaba, 0xfb69, 0xfc74, 0xfc4d, 0xfb36, 0xfa82,
+ 0xfac9, 0xfbd0, 0xfc39, 0xfbeb, 0xfcae, 0xfdfb,
+ 0xfe07, 0xfd8c, 0xfd9d, 0xfdcb, 0xfde0, 0xfe07,
+ 0xfe28, 0xfe25, 0xfdcc, 0xfcf8, 0xfc1f, 0xfbae,
+ 0xfb4e, 0xfb0c, 0xfbb1, 0xfd20, 0xfe72, 0xff7c,
+ 0x007e, 0x0157, 0x020c, 0x02b4, 0x02b7, 0x01f4,
+ 0x011d, 0xffd5, 0xfe1c, 0xfd68, 0xfcef, 0xfb54,
+ 0xfa5f, 0xfae3, 0xfbb5, 0xfccc, 0xfd4d, 0xfc68,
+ 0xfb74, 0xfb0c, 0xfb24, 0xfbe3, 0xfc8e, 0xfd60,
+ 0xfe96, 0xff61, 0x00c6, 0x02bf, 0x0331, 0x028c,
+ 0x015e, 0xff16, 0xfd2a, 0xfc23, 0xfb76, 0xfc49,
+ 0xfe3c, 0xfffe, 0x01d5, 0x0317, 0x02a3, 0x0140,
+ 0x008b, 0x00e7, 0x00b2, 0xffb7, 0x0023, 0x0209,
+ 0x041e, 0x060d, 0x06f1, 0x071e, 0x078c, 0x0719,
+ 0x05e5, 0x0551, 0x04d3, 0x047e, 0x0507, 0x05be,
+ 0x064b, 0x06cb, 0x0749, 0x07a2, 0x06e2, 0x0571,
+ 0x0493, 0x03a0, 0x02af, 0x02d4, 0x032c, 0x0331,
+ 0x038b, 0x03d4, 0x03d8, 0x03cb, 0x034f, 0x025a,
+ 0x0102, 0xff7f, 0xfe70, 0xfdb2, 0xfcef, 0xfc34,
+ 0xfb04, 0xf984, 0xf883, 0xf7de, 0xf7aa, 0xf824,
+ 0xf84d, 0xf821, 0xf883, 0xf8c4, 0xf8ef, 0xfa21,
+ 0xfb66, 0xfbfd, 0xfcb8, 0xfd1a, 0xfce4, 0xfcde,
+ 0xfc5e, 0xfb9b, 0xfbc9, 0xfbcf, 0xfb5a, 0xfbf2,
+ 0xfd2f, 0xfe42, 0xff67, 0x003f, 0x00f7, 0x01ab,
+ 0x01c1, 0x0236, 0x0372, 0x039c, 0x026e, 0x00ed,
+ 0xfed6, 0xfc5e, 0xfa76, 0xf920, 0xf813, 0xf7b2,
+ 0xf866, 0xf9da, 0xfb65, 0xfc6d, 0xfc3a, 0xfb39,
+ 0xfaef, 0xfb48, 0xfae5, 0xf9ea, 0xf9a6, 0xfa57,
+ 0xfaff, 0xfb79, 0xfc91, 0xfd88, 0xfd2b, 0xfc68,
+ 0xfc4d, 0xfc6a, 0xfc35, 0xfbce, 0xfbef, 0xfcfa,
+ 0xfe33, 0xfef8, 0xff49, 0xff75, 0xffa8, 0xff2a,
+ 0xfddc, 0xfcc3, 0xfbec, 0xfbab, 0xfcc4, 0xfdb2,
+ 0xfde1, 0xff09, 0x0084, 0x0149, 0x0251, 0x0291,
+ 0x00cc, 0xfeed, 0xfe17, 0xfd90, 0xfd4c, 0xfd4c,
+ 0xfd30, 0xfcf7, 0xfca5, 0xfc30, 0xfbda, 0xfc2b,
+ 0xfcea, 0xfd0f, 0xfce6, 0xfd53, 0xfd86, 0xfcf8,
+ 0xfcb9, 0xfd2a, 0xfd99, 0xfdc3, 0xfe20, 0xfed4,
+ 0xff2b, 0xff39, 0xffb1, 0xfff8, 0xffb4, 0xffb2,
+ 0xffda, 0xffd5, 0xffd8, 0xff93, 0xff17, 0xfeb1,
+ 0xfdd8, 0xfcf0, 0xfd2a, 0xfdf0, 0xfe19, 0xfe5b,
+ 0xff7f, 0x006c, 0x007d, 0x00af, 0x0111, 0x014e,
+ 0x024c, 0x03b4, 0x0487, 0x0556, 0x05cf, 0x0564,
+ 0x053e, 0x050a, 0x042b, 0x0402, 0x03d8, 0x0273,
+ 0x018c, 0x0146, 0x0053, 0xff58, 0xfe19, 0xfc52,
+ 0xfb88, 0xfb51, 0xfaeb, 0xfb84, 0xfc93, 0xfd31,
+ 0xfe63, 0x0023, 0x01ac, 0x0292, 0x0226, 0x0159,
+ 0x0125, 0x009e, 0x0024, 0x0043, 0xffdf, 0xffc4,
+ 0x0106, 0x0221, 0x0283, 0x0291, 0x01e8, 0x0139,
+ 0x00f6, 0x0060, 0x001c, 0x00f7, 0x022d, 0x0322,
+ 0x038a, 0x032e, 0x0297, 0x021f, 0x015a, 0x001a,
+ 0xfee1, 0xfe42, 0xfe3e, 0xfe99, 0xff81, 0x0116,
+ 0x02b4, 0x03bb, 0x0478, 0x04e3, 0x0488, 0x046a,
+ 0x0526, 0x0556, 0x04f4, 0x050e, 0x04fb, 0x043e,
+ 0x0306, 0x015d, 0x0052, 0x0010, 0xff76, 0xfefc,
+ 0xff53, 0xfff5, 0x00a1, 0x0143, 0x0223, 0x02f0,
+ 0x022d, 0x009d, 0xffde, 0xff11, 0xfe32, 0xfe0f,
+ 0xfdef, 0xfe0e, 0xfe9f, 0xfec7, 0xff6c, 0x00a5,
+ 0x00bf, 0x002a, 0xff94, 0xfe66, 0xfdb5, 0xfea7,
+ 0x004c, 0x01bb, 0x0355, 0x0599, 0x075f, 0x0766,
+ 0x0709, 0x072d, 0x06c5, 0x0685, 0x073a, 0x0736,
+ 0x063d, 0x05fc, 0x0659, 0x0629, 0x051d, 0x03a3,
+ 0x027f, 0x01aa, 0x00c8, 0x0085, 0x00fe, 0x0144,
+ 0x0180, 0x0231, 0x02c1, 0x02ee, 0x0385, 0x04f0,
+ 0x064e, 0x0708, 0x0801, 0x08cf, 0x07e8, 0x0693,
+ 0x0663, 0x063d, 0x05d8, 0x05b3, 0x0560, 0x0561,
+ 0x05b8, 0x0543, 0x0499, 0x0491, 0x04da, 0x056f,
+ 0x05dc, 0x058a, 0x049a, 0x037f, 0x0310, 0x032d,
+ 0x035d, 0x04ca, 0x06bf, 0x0716, 0x0719, 0x07c2,
+ 0x0794, 0x072b, 0x075a, 0x06e5, 0x05df, 0x053f,
+ 0x04d4, 0x0415, 0x02ec, 0x0212, 0x0225, 0x02c1,
+ 0x038b, 0x04b5, 0x0659, 0x07d9, 0x0860, 0x083f,
+ 0x080e, 0x07e1, 0x0809, 0x0803, 0x0712, 0x062c,
+ 0x05b1, 0x04dc, 0x0410, 0x0398, 0x0346, 0x03b4,
+ 0x04a0, 0x04d9, 0x0449, 0x03a6, 0x0369, 0x036e,
+ 0x034a, 0x02d6, 0x0267, 0x02b0, 0x0387, 0x03dd,
+ 0x040d, 0x04b2, 0x04a0, 0x0383, 0x0299, 0x0202,
+ 0x012f, 0x0072, 0x0057, 0x008d, 0x0065, 0x0022,
+ 0x0035, 0xffd9, 0xfebe, 0xfe3f, 0xfee1, 0xff42,
+ 0xfef0, 0xff32, 0xffd0, 0xff9e, 0xff9f, 0x007a,
+ 0x00bf, 0x00bd, 0x01cd, 0x0323, 0x03e8, 0x0470,
+ 0x04dd, 0x0571, 0x0600, 0x0580, 0x03fb, 0x024d,
+ 0x00ae, 0xffbc, 0xfff0, 0x0056, 0x00d5, 0x0229,
+ 0x0318, 0x032a, 0x040f, 0x0510, 0x04a4, 0x042f,
+ 0x043a, 0x03ac, 0x031d, 0x030d, 0x02f7, 0x02d9,
+ 0x024a, 0x0134, 0x00c3, 0x00fb, 0x006e, 0xfec0,
+ 0xfd23, 0xfc48, 0xfb7c, 0xfab7, 0xfa91, 0xfa77,
+ 0xfa5b, 0xfacf, 0xfae1, 0xfa4b, 0xfa2f, 0xfa31,
+ 0xf9ab, 0xf97a, 0xf9e6, 0xfa0d, 0xf959, 0xf802,
+ 0xf6a1, 0xf55e, 0xf42e, 0xf364, 0xf302, 0xf2d0,
+ 0xf339, 0xf446, 0xf51a, 0xf5b8, 0xf6a4, 0xf751,
+ 0xf792, 0xf7d3, 0xf74c, 0xf5f0, 0xf56e, 0xf5d3,
+ 0xf5cf, 0xf573, 0xf53a, 0xf534, 0xf543, 0xf4fb,
+ 0xf4de, 0xf5d1, 0xf6c1, 0xf6a8, 0xf6ec, 0xf822,
+ 0xf8a1, 0xf84e, 0xf83a, 0xf7b8, 0xf6c6, 0xf700,
+ 0xf7c6, 0xf79f, 0xf79a, 0xf8be, 0xfa5e, 0xfbe3,
+ 0xfd0e, 0xfdb1, 0xfe10, 0xfecc, 0x0003, 0x00df,
+ 0x0159, 0x0236, 0x02b6, 0x0259, 0x027a, 0x0347,
+ 0x03f4, 0x04d7, 0x05f7, 0x0722, 0x08f5, 0x0b27,
+ 0x0cbf, 0x0dff, 0x0f2f, 0x0fab, 0x0fd5, 0x1089,
+ 0x110a, 0x10f8, 0x113f, 0x11bb, 0x1229, 0x1300,
+ 0x13ad, 0x13c1, 0x1396, 0x12da, 0x1205, 0x121f,
+ 0x12b3, 0x1332, 0x1364, 0x12fd, 0x128f, 0x1250,
+ 0x11ce, 0x11c8, 0x12d4, 0x13cf, 0x139e, 0x12b3,
+ 0x1212, 0x1194, 0x1100, 0x10d9, 0x1095, 0x0fe2,
+ 0x0fc5, 0x1011, 0x0ff2, 0x0f7a, 0x0ec5, 0x0df8,
+ 0x0cd8, 0x0b59, 0x0a99, 0x0a6c, 0x09d4, 0x095e,
+ 0x0915, 0x08cd, 0x0906, 0x08c3, 0x079a, 0x06c0,
+ 0x0630, 0x05c9, 0x05ac, 0x0577, 0x05fe, 0x06fe,
+ 0x068f, 0x0571, 0x04db, 0x03bb, 0x01f6, 0x0084,
+ 0xff6e, 0xfe79, 0xfd86, 0xfcb7, 0xfc38, 0xfba5,
+ 0xfb05, 0xfb12, 0xfba0, 0xfb6e, 0xfa78, 0xfa1e,
+ 0xfa1f, 0xf967, 0xf8fb, 0xf9ba, 0xfa97, 0xfaed,
+ 0xfaeb, 0xfa88, 0xf976, 0xf828, 0xf807, 0xf8d9,
+ 0xf924, 0xf98a, 0xfae9, 0xfcbc, 0xfe7e, 0xff22,
+ 0xfede, 0xff97, 0x006e, 0xffc3, 0xfe82, 0xfd3a,
+ 0xfbc1, 0xfa52, 0xf8c1, 0xf7ec, 0xf871, 0xf902,
+ 0xf975, 0xfa63, 0xfae4, 0xfaa1, 0xfa58, 0xfa3a,
+ 0xfa1e, 0xf9eb, 0xf9bb, 0xf9f0, 0xfa75, 0xfab0,
+ 0xfa8b, 0xfa91, 0xfadd, 0xfb61, 0xfc2f, 0xfc84,
+ 0xfbfd, 0xfb8c, 0xfb7c, 0xfb76, 0xfb57, 0xfaf8,
+ 0xfacd, 0xfaa8, 0xf9bc, 0xf91f, 0xf966, 0xf9be,
+ 0xfabf, 0xfbf4, 0xfc12, 0xfc50, 0xfd23, 0xfdfc,
+ 0xff5c, 0x000c, 0xff6b, 0xff1e, 0xfefe, 0xfeec,
+ 0xffcf, 0x007f, 0x00d5, 0x01e5, 0x028f, 0x0260,
+ 0x0225, 0x01a2, 0x0151, 0x01d0, 0x025a, 0x02cb,
+ 0x0380, 0x03ff, 0x0413, 0x0442, 0x048b, 0x0488,
+ 0x04a4, 0x0518, 0x0545, 0x0580, 0x060e, 0x0634,
+ 0x064f, 0x069a, 0x065d, 0x0641, 0x0688, 0x061b,
+ 0x0527, 0x0445, 0x03a7, 0x0393, 0x0383, 0x0373,
+ 0x03f4, 0x040e, 0x0360, 0x02f3, 0x0289, 0x01a2,
+ 0x00db, 0x007e, 0x005b, 0x0086, 0x00d6, 0x00bb,
+ 0x0065, 0x0071, 0x0005, 0xfe97, 0xfd8b, 0xfd0f,
+ 0xfc53, 0xfc23, 0xfca2, 0xfcd7, 0xfd0a, 0xfd6b,
+ 0xfd7b, 0xfd63, 0xfd31, 0xfc8e, 0xfba1, 0xfab1,
+ 0xf9d9, 0xf96e, 0xf9f9, 0xfb4a, 0xfc57, 0xfce0,
+ 0xfd83, 0xfe1c, 0xfde7, 0xfd07, 0xfc5e, 0xfbf5,
+ 0xfb79, 0xfbaa, 0xfc7c, 0xfca9, 0xfca0, 0xfd39,
+ 0xfda5, 0xfda9, 0xfd9c, 0xfd15, 0xfc21, 0xfb53,
+ 0xfb23, 0xfbc9, 0xfc92, 0xfcda, 0xfcd4, 0xfca9,
+ 0xfca9, 0xfd04, 0xfd83, 0xfe36, 0xfec7, 0xfeff,
+ 0xff95, 0x0055, 0x00ab, 0x010b, 0x014b, 0x0128,
+ 0x014b, 0x019b, 0x01c9, 0x01ff, 0x01af, 0x00a5,
+ 0xffa8, 0xfedf, 0xfe05, 0xfd47, 0xfd16, 0xfda2,
+ 0xfea1, 0xffdb, 0x013e, 0x0287, 0x0373, 0x0365,
+ 0x0232, 0x0117, 0x0085, 0xffe6, 0xffcc, 0x003e,
+ 0x002e, 0x0041, 0x0113, 0x0179, 0x0178, 0x01d2,
+ 0x01e1, 0x019b, 0x019d, 0x016b, 0x011d, 0x0147,
+ 0x010b, 0x001b, 0xffad, 0xffae, 0xff46, 0xfeb2,
+ 0xfded, 0xfcd6, 0xfc55, 0xfc6d, 0xfc4d, 0xfc6d,
+ 0xfd33, 0xfe04, 0xff0f, 0x00a0, 0x01dd, 0x0214,
+ 0x0177, 0x007d, 0xff9a, 0xff1b, 0xff62, 0x005d,
+ 0x0128, 0x019a, 0x0257, 0x02fc, 0x02eb, 0x0262,
+ 0x01aa, 0x011e, 0x00e9, 0x0094, 0x0044, 0x0046,
+ 0xffe6, 0xff0b, 0xfe9f, 0xfed4, 0xff3e, 0xffb9,
+ 0x004c, 0x00d2, 0x0132, 0x01aa, 0x0209, 0x01ed,
+ 0x0201, 0x02a0, 0x02de, 0x02ad, 0x02a1, 0x0294,
+ 0x02bf, 0x0361, 0x03cb, 0x03ee, 0x047e, 0x0570,
+ 0x05f2, 0x058b, 0x04be, 0x041a, 0x037f, 0x0326,
+ 0x0358, 0x0386, 0x0377, 0x035f, 0x0308, 0x0289,
+ 0x0222, 0x016f, 0x0067, 0xff9f, 0xff69, 0xffce,
+ 0x00b9, 0x01dc, 0x0299, 0x027c, 0x01ae, 0x008b,
+ 0xff64, 0xfeb0, 0xfe7e, 0xfe9c, 0xff73, 0x0131,
+ 0x0329, 0x04b5, 0x0556, 0x04bb, 0x037f, 0x0277,
+ 0x01c7, 0x0156, 0x00e8, 0xfffd, 0xff04, 0xff3e,
+ 0x007e, 0x0180, 0x0235, 0x033a, 0x0455, 0x04f4,
+ 0x04c1, 0x040d, 0x036e, 0x0283, 0x0123, 0x003a,
+ 0xffdc, 0xff8b, 0xff6d, 0xff40, 0xff0f, 0xffae,
+ 0x00bf, 0x0137, 0x00f8, 0x0075, 0x002f, 0xfff5,
+ 0xff60, 0xff1e, 0xff66, 0xff55, 0xfec9, 0xfe57,
+ 0xfe94, 0xffbf, 0x0138, 0x02b8, 0x044f, 0x051e,
+ 0x04e4, 0x045e, 0x03d6, 0x037f, 0x0349, 0x02e1,
+ 0x02c9, 0x0314, 0x0342, 0x03be, 0x0490, 0x04e0,
+ 0x04c3, 0x04ca, 0x04ea, 0x0529, 0x05f1, 0x0723,
+ 0x0821, 0x0928, 0x0a4a, 0x0a77, 0x09f1, 0x098d,
+ 0x0885, 0x0722, 0x0691, 0x062c, 0x05c0, 0x0600,
+ 0x069f, 0x07a1, 0x08da, 0x0959, 0x0961, 0x0965,
+ 0x092c, 0x08db, 0x0823, 0x0718, 0x06b6, 0x06b4,
+ 0x06a3, 0x075c, 0x08bd, 0x09b0, 0x09e0, 0x0965,
+ 0x0870, 0x078c, 0x0760, 0x07a5, 0x0748, 0x0665,
+ 0x05c6, 0x0535, 0x04c7, 0x0501, 0x057e, 0x05dc,
+ 0x0635, 0x069c, 0x0724, 0x07b8, 0x089b, 0x09f1,
+ 0x0aca, 0x0af2, 0x0b34, 0x0b66, 0x0b56, 0x0b57,
+ 0x0b20, 0x0a58, 0x08c7, 0x06b9, 0x05b4, 0x0630,
+ 0x0713, 0x0842, 0x09cf, 0x0ad8, 0x0b1b, 0x0ac6,
+ 0x09d3, 0x08bb, 0x07ee, 0x0778, 0x075c, 0x074e,
+ 0x072d, 0x0732, 0x0714, 0x06b0, 0x06de, 0x07d0,
+ 0x0866, 0x080f, 0x0755, 0x06b9, 0x0642, 0x05c5,
+ 0x0516, 0x0430, 0x0369, 0x032e, 0x0345, 0x033b,
+ 0x0336, 0x032a, 0x0301, 0x0365, 0x044e, 0x0509,
+ 0x05a7, 0x05fc, 0x05ad, 0x0572, 0x058f, 0x0590,
+ 0x05a1, 0x05bd, 0x05a8, 0x05ae, 0x05d5, 0x0600,
+ 0x0654, 0x0669, 0x05e5, 0x0534, 0x04b5, 0x0493,
+ 0x04fa, 0x05c5, 0x06af, 0x07c4, 0x08b1, 0x0872,
+ 0x0723, 0x0647, 0x0668, 0x0701, 0x07c3, 0x081c,
+ 0x07e0, 0x07b2, 0x0780, 0x06ff, 0x0680, 0x0619,
+ 0x0599, 0x04ec, 0x043d, 0x03c6, 0x033c, 0x02d4,
+ 0x035b, 0x044f, 0x04ec, 0x054d, 0x055b, 0x0542,
+ 0x0505, 0x0413, 0x0313, 0x0280, 0x019d, 0x00e7,
+ 0x00bc, 0x002f, 0xff77, 0xfef4, 0xfe36, 0xfd5c,
+ 0xfc5a, 0xfb32, 0xfa87, 0xfa2d, 0xfa20, 0xfabd,
+ 0xfb14, 0xfab9, 0xfa65, 0xf9f9, 0xf978, 0xf948,
+ 0xf8fd, 0xf89f, 0xf8d1, 0xf91e, 0xf8e3, 0xf8b6,
+ 0xf91c, 0xf989, 0xf9d1, 0xfa6a, 0xfac3, 0xfa33,
+ 0xf93b, 0xf7f0, 0xf645, 0xf53a, 0xf537, 0xf574,
+ 0xf596, 0xf601, 0xf6d9, 0xf78d, 0xf7af, 0xf781,
+ 0xf727, 0xf6e8, 0xf734, 0xf750, 0xf678, 0xf52f,
+ 0xf3f6, 0xf2f7, 0xf296, 0xf304, 0xf42a, 0xf567,
+ 0xf657, 0xf7b3, 0xf971, 0xfa8c, 0xfb83, 0xfd1c,
+ 0xfe7c, 0xff3a, 0x0001, 0x00d4, 0x018c, 0x02ab,
+ 0x0435, 0x0585, 0x0676, 0x0735, 0x07c1, 0x0848,
+ 0x08e5, 0x0976, 0x0a21, 0x0ad4, 0x0b3c, 0x0bc5,
+ 0x0cea, 0x0e2f, 0x0f11, 0x0fa8, 0x101a, 0x1026,
+ 0x0fbc, 0x0f83, 0x0ff4, 0x10ce, 0x11db, 0x131d,
+ 0x1483, 0x15d5, 0x1669, 0x15e2, 0x14de, 0x13b6,
+ 0x1253, 0x111c, 0x1069, 0x100a, 0x0fdb, 0x0fed,
+ 0x1029, 0x1058, 0x107e, 0x1094, 0x1050, 0x0ffc,
+ 0x1015, 0x1019, 0x0fb7, 0x0f68, 0x0f19, 0x0e9d,
+ 0x0e3f, 0x0ddd, 0x0d36, 0x0c58, 0x0b3e, 0x0a2f,
+ 0x097c, 0x08ef, 0x0859, 0x07a6, 0x06bc, 0x05ef,
+ 0x055c, 0x04ad, 0x0411, 0x039b, 0x02ac, 0x0155,
+ 0x006a, 0x000c, 0xffc8, 0xff97, 0xffb7, 0xfff7,
+ 0xfff3, 0xffeb, 0x0062, 0x00e9, 0x00bd, 0x0020,
+ 0xff8d, 0xfedb, 0xfdf1, 0xfcd5, 0xfbaf, 0xfb59,
+ 0xfc1e, 0xfcf1, 0xfd54, 0xfd84, 0xfd1e, 0xfc34,
+ 0xfb88, 0xfafa, 0xfa3c, 0xf993, 0xf907, 0xf8cb,
+ 0xf92b, 0xf9ac, 0xf9fd, 0xfa49, 0xfa91, 0xfb31,
+ 0xfc68, 0xfda7, 0xfe8b, 0xfedb, 0xfe6d, 0xfde0,
+ 0xfd6c, 0xfca9, 0xfbf4, 0xfb60, 0xfa88, 0xfa25,
+ 0xfa94, 0xfae2, 0xfaef, 0xfb4b, 0xfb9d, 0xfb86,
+ 0xfb5c, 0xfb6f, 0xfba0, 0xfbe0, 0xfc85, 0xfd8b,
+ 0xfe43, 0xfe53, 0xfe18, 0xfde0, 0xfdb5, 0xfdb4,
+ 0xfdfd, 0xfe62, 0xfead, 0xff0c, 0xffc5, 0x00aa,
+ 0x013f, 0x0137, 0x00d7, 0x0089, 0x005c, 0x0030,
+ 0x0019, 0x0046, 0x0099, 0x00c4, 0x00f7, 0x0160,
+ 0x01a7, 0x01cf, 0x0204, 0x01e4, 0x0188, 0x0137,
+ 0x0094, 0x0016, 0x0084, 0x0137, 0x01a1, 0x0226,
+ 0x029c, 0x0285, 0x020f, 0x01cf, 0x0202, 0x026f,
+ 0x031d, 0x0415, 0x04ca, 0x0543, 0x061d, 0x06d3,
+ 0x069b, 0x05f8, 0x05aa, 0x059a, 0x058d, 0x05db,
+ 0x06cc, 0x07d0, 0x086a, 0x08cf, 0x08f5, 0x08b4,
+ 0x0892, 0x08cd, 0x08d3, 0x0856, 0x07b3, 0x073e,
+ 0x0706, 0x0708, 0x072e, 0x0762, 0x0786, 0x0770,
+ 0x073d, 0x0703, 0x066f, 0x054f, 0x03c1, 0x01e4,
+ 0x0034, 0xff32, 0xfede, 0xff21, 0xffca, 0x005a,
+ 0x0063, 0xffe0, 0xff83, 0xffcc, 0x0040, 0x00be,
+ 0x0165, 0x01a4, 0x0172, 0x011e, 0x006b, 0xffb4,
+ 0xff15, 0xfdd8, 0xfc4a, 0xfb0f, 0xfa14, 0xf996,
+ 0xf961, 0xf906, 0xf948, 0xfa3d, 0xfafb, 0xfbd7,
+ 0xfd26, 0xfe0f, 0xfe4e, 0xfe5a, 0xfe2b, 0xfd7a,
+ 0xfc6f, 0xfb7a, 0xfabc, 0xfa41, 0xfa41, 0xfa90,
+ 0xfaea, 0xfb70, 0xfc31, 0xfd2b, 0xfe13, 0xfe48,
+ 0xfe06, 0xfde0, 0xfd76, 0xfcb5, 0xfc45, 0xfc1e,
+ 0xfbd5, 0xfb95, 0xfbcc, 0xfc92, 0xfd72, 0xfdeb,
+ 0xfe1b, 0xfe55, 0xfe93, 0xfebc, 0xfef2, 0xff4d,
+ 0xff95, 0xff8f, 0xff48, 0xfee9, 0xfea5, 0xfe83,
+ 0xfe67, 0xfeb4, 0xffa5, 0x007c, 0x00e1, 0x0140,
+ 0x016d, 0x0146, 0x015b, 0x01a6, 0x01a3, 0x0134,
+ 0x007c, 0xffe6, 0xffcc, 0xffe1, 0xffd8, 0xffa3,
+ 0xff36, 0xfef6, 0xff0a, 0xfeea, 0xfe81, 0xfe03,
+ 0xfd88, 0xfda8, 0xfe7b, 0xff45, 0xfff5, 0x007d,
+ 0x002d, 0xff44, 0xfe8d, 0xfe0f, 0xfd90, 0xfcfa,
+ 0xfc38, 0xfb93, 0xfb45, 0xfb36, 0xfb68, 0xfbb5,
+ 0xfbc7, 0xfba7, 0xfbab, 0xfbf6, 0xfc8a, 0xfd57,
+ 0xfdf2, 0xfded, 0xfda6, 0xfdbb, 0xfe23, 0xfeb1,
+ 0xff53, 0xffc9, 0x0007, 0x0025, 0x0027, 0x003a,
+ 0x0014, 0xff3b, 0xfe10, 0xfd04, 0xfc37, 0xfc1f,
+ 0xfc9c, 0xfd5a, 0xfecc, 0x0094, 0x01a6, 0x023f,
+ 0x02a7, 0x027e, 0x01fd, 0x0140, 0x0011, 0xfeb3,
+ 0xfd39, 0xfbe7, 0xfb6b, 0xfb98, 0xfc25, 0xfd45,
+ 0xfe4c, 0xfed0, 0xff76, 0xffd1, 0xfefd, 0xfdbd,
+ 0xfd0e, 0xfce6, 0xfd01, 0xfd4d, 0xfe07, 0xff75,
+ 0x012f, 0x02a3, 0x03ca, 0x048e, 0x0473, 0x0384,
+ 0x026e, 0x0187, 0x00c5, 0x0044, 0xffda, 0xff4d,
+ 0xff00, 0xff03, 0xfebb, 0xfdec, 0xfcc1, 0xfbb2,
+ 0xfb7b, 0xfbf7, 0xfc99, 0xfd8d, 0xfe7b, 0xfea0,
+ 0xfe63, 0xfe52, 0xfe57, 0xfea7, 0xff22, 0xff40,
+ 0xff1a, 0xfebc, 0xfdfe, 0xfd73, 0xfd88, 0xfdcc,
+ 0xfdf0, 0xfdf4, 0xfdca, 0xfd90, 0xfd6c, 0xfd36,
+ 0xfcc7, 0xfc60, 0xfc4b, 0xfc63, 0xfc6b, 0xfc6a,
+ 0xfc80, 0xfcc6, 0xfd0e, 0xfd39, 0xfdcb, 0xfeca,
+ 0xff63, 0xff81, 0xff6f, 0xfeb2, 0xfd68, 0xfc6d,
+ 0xfbb7, 0xfb09, 0xfaca, 0xfb26, 0xfc37, 0xfe2d,
+ 0x005c, 0x01fe, 0x034c, 0x0482, 0x0531, 0x053c,
+ 0x050c, 0x04e4, 0x04d5, 0x04cb, 0x04a7, 0x049a,
+ 0x04c8, 0x04b3, 0x0410, 0x0379, 0x035e, 0x038c,
+ 0x03f3, 0x0489, 0x04f6, 0x0534, 0x056c, 0x0588,
+ 0x059e, 0x05da, 0x05f9, 0x05c0, 0x0552, 0x04b8,
+ 0x03fd, 0x0389, 0x03a0, 0x03ed, 0x045b, 0x0531,
+ 0x05ff, 0x060f, 0x05a6, 0x0539, 0x04ba, 0x0433,
+ 0x03b7, 0x0330, 0x02a9, 0x0245, 0x0265, 0x0348,
+ 0x0468, 0x055e, 0x060c, 0x05ff, 0x0572, 0x0530,
+ 0x0538, 0x0578, 0x0610, 0x0690, 0x06bd, 0x06c3,
+ 0x069d, 0x065e, 0x05e4, 0x051d, 0x04a5, 0x0498,
+ 0x04bd, 0x056c, 0x063d, 0x068b, 0x06d4, 0x075d,
+ 0x07ec, 0x0897, 0x091a, 0x0973, 0x0a23, 0x0ad3,
+ 0x0b2c, 0x0bad, 0x0c22, 0x0bec, 0x0b49, 0x0ab3,
+ 0x0a2c, 0x098f, 0x08d0, 0x07fc, 0x0730, 0x0698,
+ 0x061d, 0x0564, 0x0470, 0x0397, 0x031a, 0x0314,
+ 0x0355, 0x03b0, 0x041d, 0x041c, 0x035f, 0x027a,
+ 0x01b4, 0x00fd, 0x0084, 0x0008, 0xff4e, 0xfed8,
+ 0xfec0, 0xfec8, 0xff59, 0x00ab, 0x0237, 0x037f,
+ 0x0438, 0x0460, 0x0451, 0x0432, 0x0415, 0x045c,
+ 0x04d4, 0x04e9, 0x050b, 0x05c2, 0x0635, 0x05cc,
+ 0x0548, 0x051a, 0x0518, 0x0587, 0x065d, 0x070a,
+ 0x0794, 0x0836, 0x0884, 0x0870, 0x089f, 0x090b,
+ 0x0924, 0x090b, 0x0904, 0x08d3, 0x08a9, 0x08fc,
+ 0x0970, 0x098a, 0x0970, 0x0929, 0x08b6, 0x0889,
+ 0x08bc, 0x08df, 0x08ce, 0x08ad, 0x0888, 0x0853,
+ 0x07d2, 0x06ff, 0x0615, 0x04fa, 0x03b3, 0x02ac,
+ 0x01d7, 0x0127, 0x0102, 0x012e, 0x0130, 0x014c,
+ 0x0186, 0x015f, 0x00ae, 0xffad, 0xfebc, 0xfdeb,
+ 0xfcc6, 0xfb65, 0xfa6c, 0xf9df, 0xf982, 0xf976,
+ 0xf9e6, 0xfabd, 0xfbad, 0xfc8f, 0xfd58, 0xfdb7,
+ 0xfdb3, 0xfdb5, 0xfdb9, 0xfdd1, 0xfe4e, 0xfed8,
+ 0xff14, 0xff4b, 0xff83, 0xff5e, 0xfeb5, 0xfdb5,
+ 0xfc8c, 0xfb40, 0xfa2e, 0xf9b0, 0xf925, 0xf835,
+ 0xf7b9, 0xf7ec, 0xf81a, 0xf815, 0xf7d1, 0xf72f,
+ 0xf6c3, 0xf706, 0xf76c, 0xf756, 0xf6db, 0xf65c,
+ 0xf601, 0xf5d1, 0xf620, 0xf718, 0xf82f, 0xf91a,
+ 0xfa2f, 0xfb48, 0xfc06, 0xfcc6, 0xfd8e, 0xfe02,
+ 0xfe81, 0xff3b, 0xffc2, 0x0059, 0x0156, 0x0262,
+ 0x0392, 0x052e, 0x0708, 0x08df, 0x0a59, 0x0b4f,
+ 0x0c3a, 0x0d66, 0x0ec3, 0x105b, 0x1208, 0x1371,
+ 0x1474, 0x1509, 0x152c, 0x1503, 0x14ef, 0x150f,
+ 0x1507, 0x14d3, 0x14b5, 0x1483, 0x145a, 0x1486,
+ 0x1483, 0x140e, 0x13b7, 0x1384, 0x134b, 0x1341,
+ 0x1339, 0x1328, 0x135e, 0x13b9, 0x141a, 0x147b,
+ 0x1443, 0x1355, 0x1269, 0x11a3, 0x10d8, 0x1046,
+ 0x0fe2, 0x0f7d, 0x0f31, 0x0eda, 0x0e35, 0x0d58,
+ 0x0c67, 0x0b72, 0x0a6c, 0x095f, 0x08b4, 0x08a4,
+ 0x08cb, 0x08cb, 0x08b4, 0x08c9, 0x08ee, 0x0898,
+ 0x07e9, 0x0793, 0x077e, 0x0769, 0x0788, 0x07b2,
+ 0x0780, 0x06e8, 0x061b, 0x0585, 0x054b, 0x052e,
+ 0x0520, 0x04f2, 0x0485, 0x03fc, 0x02fa, 0x019b,
+ 0x00fc, 0x011e, 0x011d, 0x00f7, 0x00c5, 0x0065,
+ 0x0023, 0x0024, 0x005c, 0x00c4, 0x0101, 0x00c9,
+ 0x001b, 0xff21, 0xfe4d, 0xfdcc, 0xfd48, 0xfcaf,
+ 0xfc4e, 0xfc5d, 0xfcd4, 0xfd90, 0xfe58, 0xfece,
+ 0xfecb, 0xfe7b, 0xfddc, 0xfd0c, 0xfc92, 0xfcb4,
+ 0xfd50, 0xfe04, 0xfe5a, 0xfe4e, 0xfdfc, 0xfd71,
+ 0xfcf8, 0xfc82, 0xfbd3, 0xfb41, 0xfaee, 0xfab7,
+ 0xfac0, 0xfaec, 0xfb19, 0xfb6f, 0xfbd3, 0xfc3d,
+ 0xfc86, 0xfc59, 0xfc42, 0xfcb2, 0xfd25, 0xfd98,
+ 0xfe10, 0xfe1a, 0xfe19, 0xfe49, 0xfe33, 0xfe0c,
+ 0xfe03, 0xfdeb, 0xfe37, 0xff09, 0xfff1, 0x00ec,
+ 0x01d7, 0x0251, 0x0284, 0x02a4, 0x02b5, 0x02d0,
+ 0x02d0, 0x0298, 0x02a5, 0x036c, 0x048d, 0x058f,
+ 0x064d, 0x0676, 0x060a, 0x05a1, 0x053a, 0x04a2,
+ 0x0450, 0x044f, 0x0434, 0x041c, 0x0413, 0x0403,
+ 0x042c, 0x049f, 0x0539, 0x05ce, 0x0608, 0x05f0,
+ 0x05d4, 0x05ca, 0x05ff, 0x067b, 0x06c8, 0x0693,
+ 0x060d, 0x05c1, 0x05f7, 0x0632, 0x0604, 0x05b0,
+ 0x055c, 0x04df, 0x0439, 0x0362, 0x0263, 0x0192,
+ 0x012a, 0x00f3, 0x00b0, 0x00b3, 0x0140, 0x01ed,
+ 0x0288, 0x0356, 0x0433, 0x04b2, 0x047b, 0x0389,
+ 0x0290, 0x020d, 0x01ae, 0x0183, 0x01ce, 0x023a,
+ 0x02c8, 0x03a8, 0x0457, 0x0455, 0x038b, 0x021b,
+ 0x0092, 0xff65, 0xfebd, 0xfeda, 0xff92, 0x0060,
+ 0x0127, 0x01bc, 0x01f1, 0x0204, 0x01f8, 0x0197,
+ 0x011a, 0x00b4, 0x004b, 0xffe5, 0xffaa, 0xffa1,
+ 0xff9f, 0xff91, 0xff78, 0xff45, 0xff1b, 0xff0b,
+ 0xfed3, 0xfe97, 0xfe82, 0xfe3e, 0xfdf0, 0xfdb1,
+ 0xfd00, 0xfc3a, 0xfbeb, 0xfb9b, 0xfb41, 0xfb16,
+ 0xfad4, 0xfaca, 0xfb4a, 0xfc0b, 0xfce0, 0xfd65,
+ 0xfd6b, 0xfd7d, 0xfd93, 0xfd8a, 0xfdd2, 0xfe4e,
+ 0xfeef, 0xffd9, 0x0090, 0x0135, 0x0230, 0x02b6,
+ 0x0272, 0x0211, 0x01a9, 0x0109, 0x0029, 0xff20,
+ 0xfe51, 0xfdb3, 0xfd09, 0xfcbb, 0xfce4, 0xfd38,
+ 0xfdaf, 0xfe04, 0xfdfe, 0xfe03, 0xfe53, 0xfec3,
+ 0xff0c, 0xff01, 0xfedf, 0xff09, 0xff9d, 0x0088,
+ 0x0183, 0x020e, 0x01e1, 0x0144, 0x00a5, 0x0006,
+ 0xff6c, 0xff38, 0xff79, 0xffde, 0x002d, 0x0037,
+ 0x0008, 0xffde, 0xffe2, 0x0047, 0x00e2, 0x014b,
+ 0x0195, 0x01b0, 0x014d, 0x00ca, 0x008f, 0x0091,
+ 0x00a6, 0x0076, 0x000a, 0xffeb, 0x0043, 0x010b,
+ 0x0206, 0x029f, 0x02c0, 0x0280, 0x01a8, 0x009c,
+ 0x0008, 0x0046, 0x0179, 0x02e1, 0x0388, 0x038c,
+ 0x0347, 0x02e5, 0x02af, 0x0278, 0x0207, 0x0173,
+ 0x0090, 0xff5e, 0xfe44, 0xfd59, 0xfc87, 0xfbf8,
+ 0xfbb2, 0xfb83, 0xfb2d, 0xfa97, 0xfa04, 0xf9ea,
+ 0xfa55, 0xfab4, 0xfaba, 0xfa8c, 0xf9f8, 0xf90d,
+ 0xf88d, 0xf8b2, 0xf94a, 0xfa6f, 0xfbe3, 0xfd32,
+ 0xfe3e, 0xfeeb, 0xff36, 0xff25, 0xfe7e, 0xfd8a,
+ 0xfcdf, 0xfc58, 0xfbd8, 0xfbcb, 0xfc30, 0xfcb6,
+ 0xfd67, 0xfe42, 0xff07, 0xff80, 0xff9d, 0xff8b,
+ 0xffa3, 0x000d, 0x00ba, 0x0177, 0x01e9, 0x01fd,
+ 0x020e, 0x0248, 0x029f, 0x02fa, 0x0319, 0x02fe,
+ 0x02d4, 0x029b, 0x0279, 0x0285, 0x028a, 0x027f,
+ 0x0255, 0x01e6, 0x016a, 0x0105, 0x00ab, 0x009a,
+ 0x00f2, 0x0191, 0x0244, 0x0296, 0x024c, 0x018b,
+ 0x0036, 0xfe85, 0xfd19, 0xfc07, 0xfb39, 0xfae9,
+ 0xfaef, 0xfaff, 0xfb33, 0xfb77, 0xfb7d, 0xfb7c,
+ 0xfbbb, 0xfbdf, 0xfbf6, 0xfc84, 0xfd56, 0xfe33,
+ 0xff3d, 0xffff, 0x005a, 0x00e5, 0x016a, 0x0182,
+ 0x015e, 0x00fe, 0x0086, 0x0048, 0x0005, 0xffd5,
+ 0x0041, 0x012e, 0x022e, 0x030c, 0x03bb, 0x045d,
+ 0x04f4, 0x0582, 0x064f, 0x073c, 0x07e9, 0x0871,
+ 0x08e2, 0x0905, 0x0900, 0x0911, 0x0903, 0x089a,
+ 0x07fc, 0x0772, 0x0721, 0x070d, 0x0712, 0x0720,
+ 0x0761, 0x07c6, 0x080c, 0x0819, 0x07f3, 0x0795,
+ 0x071b, 0x06d7, 0x06e0, 0x06fc, 0x0736, 0x0798,
+ 0x07b7, 0x07aa, 0x07a4, 0x070f, 0x05e8, 0x0507,
+ 0x0494, 0x0471, 0x04a7, 0x04d8, 0x04dd, 0x04ed,
+ 0x0514, 0x055b, 0x05a6, 0x05df, 0x0623, 0x063d,
+ 0x05ef, 0x0572, 0x0513, 0x0502, 0x0532, 0x0588,
+ 0x0625, 0x06ea, 0x0797, 0x0832, 0x0865, 0x07f3,
+ 0x0744, 0x06a1, 0x0656, 0x066f, 0x0634, 0x0595,
+ 0x0542, 0x0537, 0x053d, 0x055a, 0x0556, 0x054c,
+ 0x058c, 0x061e, 0x06e1, 0x0759, 0x0733, 0x06c2,
+ 0x0627, 0x0557, 0x04bb, 0x0474, 0x043e, 0x041a,
+ 0x040e, 0x03fd, 0x0409, 0x0441, 0x045c, 0x0461,
+ 0x04c2, 0x0589, 0x0663, 0x0710, 0x0749, 0x0703,
+ 0x0661, 0x057a, 0x04c3, 0x0489, 0x045f, 0x0426,
+ 0x0416, 0x03f7, 0x03be, 0x03aa, 0x03d1, 0x0451,
+ 0x0511, 0x05b7, 0x0634, 0x065d, 0x062b, 0x0624,
+ 0x0640, 0x0612, 0x05f4, 0x0620, 0x0632, 0x0645,
+ 0x068e, 0x06b7, 0x06b0, 0x06b4, 0x06a0, 0x0679,
+ 0x0686, 0x0697, 0x067c, 0x0688, 0x06e3, 0x0762,
+ 0x07d4, 0x07f5, 0x07a4, 0x071f, 0x06b4, 0x0662,
+ 0x05e7, 0x0542, 0x04cf, 0x04c7, 0x0503, 0x0529,
+ 0x04d0, 0x0407, 0x0346, 0x02a8, 0x01fc, 0x0167,
+ 0x010b, 0x008d, 0xffb0, 0xfedc, 0xfe8c, 0xfebe,
+ 0xff18, 0xff34, 0xfeea, 0xfe6e, 0xfdf8, 0xfda7,
+ 0xfd8a, 0xfd8c, 0xfdb3, 0xfdfc, 0xfe3a, 0xfe66,
+ 0xfe95, 0xfec5, 0xfef2, 0xff0c, 0xff26, 0xff3c,
+ 0xfef7, 0xfe69, 0xfe08, 0xfdcf, 0xfdbf, 0xfe00,
+ 0xfe5d, 0xfeb3, 0xfee2, 0xfedb, 0xff1e, 0xffa8,
+ 0xffa7, 0xff0d, 0xfe4a, 0xfd46, 0xfc15, 0xfb3d,
+ 0xfaf2, 0xfaed, 0xfaf9, 0xfb09, 0xfac7, 0xfa10,
+ 0xf95a, 0xf8d2, 0xf864, 0xf866, 0xf8cd, 0xf91c,
+ 0xf940, 0xf93a, 0xf8e8, 0xf85b, 0xf7ae, 0xf711,
+ 0xf6c0, 0xf6a5, 0xf6bb, 0xf734, 0xf7df, 0xf882,
+ 0xf93d, 0xf9f4, 0xfa88, 0xfb67, 0xfc8f, 0xfd7e,
+ 0xfe7f, 0xfff0, 0x0170, 0x02f0, 0x0467, 0x057b,
+ 0x0669, 0x0758, 0x07f9, 0x08a6, 0x099b, 0x0a71,
+ 0x0b2f, 0x0be8, 0x0c82, 0x0d0a, 0x0d58, 0x0d98,
+ 0x0e4d, 0x0f3f, 0x102d, 0x1135, 0x1220, 0x12d1,
+ 0x1347, 0x1375, 0x1397, 0x1384, 0x12f2, 0x1266,
+ 0x1238, 0x1243, 0x1298, 0x1312, 0x136c, 0x13a3,
+ 0x1387, 0x130c, 0x1263, 0x1187, 0x1097, 0x0fc6,
+ 0x0ef5, 0x0e28, 0x0d6d, 0x0cca, 0x0c75, 0x0c71,
+ 0x0c73, 0x0c36, 0x0b8a, 0x0aba, 0x0a3f, 0x09e6,
+ 0x095f, 0x08d9, 0x087a, 0x082e, 0x07ec, 0x079d,
+ 0x071c, 0x0658, 0x0571, 0x04ab, 0x0411, 0x0384,
+ 0x030b, 0x028d, 0x01d3, 0x0109, 0x0074, 0x0024,
+ 0x002a, 0x007e, 0x00e3, 0x0112, 0x00c9, 0x001f,
+ 0xff6d, 0xfed6, 0xfe8f, 0xfe98, 0xfe8c, 0xfe5b,
+ 0xfdfd, 0xfd62, 0xfd3a, 0xfd81, 0xfd3f, 0xfcc1,
+ 0xfcbb, 0xfcc7, 0xfcde, 0xfd57, 0xfded, 0xfe71,
+ 0xfebb, 0xfe99, 0xfe35, 0xfd95, 0xfcd6, 0xfc6b,
+ 0xfc72, 0xfcd0, 0xfd37, 0xfd20, 0xfc8c, 0xfbd3,
+ 0xfb30, 0xfae1, 0xfac5, 0xfaa5, 0xfac0, 0xfb2d,
+ 0xfbcd, 0xfc80, 0xfcdc, 0xfcb9, 0xfc61, 0xfc08,
+ 0xfbd4, 0xfbba, 0xfb79, 0xfb19, 0xfa9e, 0xf9fa,
+ 0xf97b, 0xf989, 0xfa63, 0xfbe4, 0xfd73, 0xfea5,
+ 0xff83, 0x000a, 0x0021, 0xffc9, 0xff47, 0xfef8,
+ 0xff01, 0xff6f, 0x0025, 0x00ee, 0x01a6, 0x01f5,
+ 0x01be, 0x0169, 0x0104, 0x0080, 0x002c, 0xfff6,
+ 0xffe2, 0x003d, 0x00ad, 0x00dd, 0x010b, 0x010c,
+ 0x00ba, 0x0070, 0x005a, 0x006d, 0x0095, 0x009f,
+ 0x007a, 0x0051, 0x004a, 0x003f, 0x0014, 0x0019,
+ 0x004c, 0x0070, 0x00a4, 0x00b0, 0x0062, 0x002e,
+ 0x0024, 0x001b, 0x0040, 0x0051, 0x0030, 0x0031,
+ 0x0029, 0x001e, 0x006a, 0x00d8, 0x0164, 0x0243,
+ 0x0325, 0x03d9, 0x044e, 0x042f, 0x0385, 0x0297,
+ 0x0193, 0x00b7, 0x0018, 0xffc9, 0xfff7, 0x007a,
+ 0x0107, 0x0168, 0x0166, 0x010a, 0x00a6, 0x0051,
+ 0xffe3, 0xff5d, 0xfef8, 0xfeac, 0xfe55, 0xfe16,
+ 0xfdd1, 0xfd4c, 0xfcd2, 0xfc8f, 0xfc68, 0xfc7f,
+ 0xfcbc, 0xfcc5, 0xfc8e, 0xfc2c, 0xfbd8, 0xfbef,
+ 0xfc62, 0xfcf9, 0xfd9e, 0xfe2a, 0xfe9a, 0xfef1,
+ 0xff1e, 0xff3c, 0xff3b, 0xfeca, 0xfe12, 0xfd7d,
+ 0xfd3a, 0xfd56, 0xfd95, 0xfdaf, 0xfdf4, 0xfeba,
+ 0xffa3, 0x0032, 0x0054, 0x0033, 0x0008, 0xffe7,
+ 0xffab, 0xff33, 0xfe99, 0xfe2d, 0xfe26, 0xfe5e,
+ 0xfe9b, 0xfee7, 0xff36, 0xff40, 0xff0d, 0xfefb,
+ 0xff09, 0xfefa, 0xfeee, 0xfefc, 0xfefb, 0xfef9,
+ 0xff00, 0xfedd, 0xfea9, 0xfe8c, 0xfe50, 0xfdde,
+ 0xfd51, 0xfcdd, 0xfcd0, 0xfd22, 0xfd9e, 0xfe55,
+ 0xff3f, 0x0041, 0x013e, 0x01d6, 0x01fa, 0x01ec,
+ 0x017d, 0x00b8, 0xfff9, 0xff47, 0xfed2, 0xfebb,
+ 0xfe92, 0xfe6c, 0xfebb, 0xff3b, 0xffad, 0x0033,
+ 0x00b6, 0x0118, 0x015d, 0x0181, 0x019a, 0x01c5,
+ 0x01f9, 0x0215, 0x020e, 0x01fc, 0x01b2, 0x010d,
+ 0x0072, 0x003b, 0x0048, 0x0066, 0x0070, 0x006f,
+ 0x0069, 0x0035, 0x0006, 0x001b, 0x003b, 0x0073,
+ 0x00d1, 0x00ea, 0x00d2, 0x00e0, 0x00e9, 0x00eb,
+ 0x00f5, 0x00e7, 0x0106, 0x0155, 0x016d, 0x017b,
+ 0x01cb, 0x020a, 0x0200, 0x01e1, 0x01d6, 0x01d6,
+ 0x01bd, 0x01a4, 0x01c0, 0x01f6, 0x022c, 0x0264,
+ 0x027c, 0x0265, 0x025c, 0x028f, 0x02e0, 0x02fc,
+ 0x0299, 0x01bf, 0x00ef, 0x0093, 0x009c, 0x0108,
+ 0x01e6, 0x02bf, 0x0326, 0x0329, 0x02bd, 0x01e9,
+ 0x0109, 0x0044, 0xffaa, 0xff4b, 0xfefb, 0xfec4,
+ 0xfec5, 0xfead, 0xfe71, 0xfe4e, 0xfe2f, 0xfe18,
+ 0xfe12, 0xfdec, 0xfdc5, 0xfdc8, 0xfdcc, 0xfdb9,
+ 0xfd78, 0xfd18, 0xfd06, 0xfd2e, 0xfd0e, 0xfcb8,
+ 0xfc72, 0xfc2e, 0xfc0c, 0xfc46, 0xfcc9, 0xfd75,
+ 0xfe3b, 0xfecd, 0xff02, 0xff36, 0xff78, 0xff54,
+ 0xfedf, 0xfe88, 0xfe78, 0xfebe, 0xff2c, 0xff7b,
+ 0xffc6, 0xfffb, 0xffcd, 0xff6d, 0xff22, 0xfef1,
+ 0xfef3, 0xff22, 0xff6d, 0xffe9, 0x009b, 0x015f,
+ 0x01fc, 0x0258, 0x027e, 0x0243, 0x01ae, 0x0139,
+ 0x0103, 0x00e0, 0x00e4, 0x0125, 0x018d, 0x01d5,
+ 0x01d4, 0x01bb, 0x0185, 0x010c, 0x00b6, 0x00c1,
+ 0x0111, 0x01a4, 0x0218, 0x023b, 0x0278, 0x02bf,
+ 0x02c4, 0x02b7, 0x0292, 0x0253, 0x025e, 0x02b5,
+ 0x032f, 0x03b8, 0x0406, 0x044d, 0x04f4, 0x0588,
+ 0x05bc, 0x05c6, 0x0564, 0x04ae, 0x0454, 0x0431,
+ 0x0405, 0x0437, 0x04b4, 0x0540, 0x0604, 0x06b8,
+ 0x0733, 0x07ae, 0x07e8, 0x07ef, 0x082a, 0x086b,
+ 0x08af, 0x091a, 0x0954, 0x0961, 0x096e, 0x0934,
+ 0x08b1, 0x07fc, 0x073d, 0x06ec, 0x0701, 0x0737,
+ 0x07ad, 0x0811, 0x0823, 0x0831, 0x0832, 0x0829,
+ 0x087f, 0x0918, 0x097f, 0x097c, 0x090e, 0x0890,
+ 0x0860, 0x0880, 0x08c5, 0x08ef, 0x08e7, 0x08b7,
+ 0x085d, 0x07e2, 0x0763, 0x06ea, 0x0673, 0x0601,
+ 0x05e5, 0x065a, 0x0703, 0x0783, 0x07bd, 0x079a,
+ 0x0757, 0x0739, 0x073f, 0x0748, 0x0719, 0x06c6,
+ 0x0682, 0x060d, 0x0570, 0x052a, 0x0542, 0x05a7,
+ 0x065c, 0x0701, 0x0747, 0x0729, 0x06da, 0x069d,
+ 0x0657, 0x05da, 0x0525, 0x042f, 0x0355, 0x02f8,
+ 0x02dc, 0x02d7, 0x02ba, 0x022e, 0x0170, 0x00e1,
+ 0x00b7, 0x014c, 0x026d, 0x0388, 0x0462, 0x04c7,
+ 0x04a8, 0x0443, 0x03be, 0x0340, 0x02d4, 0x026e,
+ 0x0254, 0x029f, 0x0337, 0x042b, 0x0518, 0x05a8,
+ 0x0633, 0x06bd, 0x0706, 0x0722, 0x0716, 0x071e,
+ 0x07a1, 0x083a, 0x0868, 0x0867, 0x087d, 0x08ce,
+ 0x097d, 0x0a43, 0x0a9e, 0x0a68, 0x09e0, 0x0955,
+ 0x08ef, 0x08c6, 0x08f5, 0x0928, 0x0903, 0x08d7,
+ 0x08d2, 0x0887, 0x0810, 0x07c4, 0x0759, 0x06c6,
+ 0x0664, 0x0622, 0x05e1, 0x0596, 0x0515, 0x0485,
+ 0x042a, 0x0410, 0x0428, 0x0439, 0x0419, 0x03e0,
+ 0x0393, 0x0311, 0x0232, 0x00f6, 0xffa6, 0xfe47,
+ 0xfcff, 0xfc72, 0xfc9e, 0xfce3, 0xfd36, 0xfda2,
+ 0xfe02, 0xfe88, 0xff2e, 0xff8f, 0xffa6, 0xffaf,
+ 0xffc9, 0xffe9, 0xffd7, 0xff8c, 0xff4c, 0xff1f,
+ 0xfeda, 0xfe9f, 0xfe8f, 0xfe46, 0xfda1, 0xfd25,
+ 0xfd1e, 0xfd71, 0xfdf2, 0xfe5d, 0xfeb5, 0xff13,
+ 0xff40, 0xff5c, 0xffac, 0xffba, 0xff41, 0xfe99,
+ 0xfde8, 0xfd49, 0xfd03, 0xfd07, 0xfcfc, 0xfca7,
+ 0xfc3a, 0xfbf3, 0xfbbd, 0xfba9, 0xfbce, 0xfbec,
+ 0xfbf9, 0xfc15, 0xfc2b, 0xfc49, 0xfc70, 0xfc69,
+ 0xfc5c, 0xfc82, 0xfcbe, 0xfd19, 0xfdd3, 0xfef8,
+ 0x003e, 0x014b, 0x01fd, 0x024c, 0x023a, 0x021b,
+ 0x0243, 0x02c1, 0x0399, 0x04a0, 0x057d, 0x063e,
+ 0x072c, 0x0840, 0x095c, 0x0a69, 0x0b33, 0x0ba9,
+ 0x0bff, 0x0c3f, 0x0c47, 0x0c17, 0x0bd9, 0x0be2,
+ 0x0c63, 0x0d29, 0x0df5, 0x0eba, 0x0f5c, 0x0fae,
+ 0x0fa1, 0x0f52, 0x0ee9, 0x0e5c, 0x0dc9, 0x0d72,
+ 0x0d29, 0x0cb7, 0x0c41, 0x0bd7, 0x0b93, 0x0ba9,
+ 0x0bed, 0x0c29, 0x0c62, 0x0c6b, 0x0c03, 0x0b30,
+ 0x0a3c, 0x0952, 0x085a, 0x0786, 0x071c, 0x06e1,
+ 0x06c1, 0x06e9, 0x072e, 0x0797, 0x0847, 0x08e1,
+ 0x0944, 0x097a, 0x0936, 0x0897, 0x07f2, 0x075e,
+ 0x070a, 0x06de, 0x06ac, 0x06c1, 0x06fa, 0x06e8,
+ 0x06d5, 0x06e9, 0x06f3, 0x06f7, 0x06c2, 0x063e,
+ 0x05cc, 0x059a, 0x05d0, 0x067f, 0x0713, 0x073d,
+ 0x0726, 0x06c0, 0x062b, 0x05b3, 0x053e, 0x04a7,
+ 0x03fb, 0x033c, 0x024b, 0x011f, 0x0004, 0xff37,
+ 0xfe98, 0xfe4f, 0xfe6d, 0xfe93, 0xfebf, 0xff14,
+ 0xff4d, 0xff68, 0xff79, 0xff42, 0xfea4, 0xfdb5,
+ 0xfcb5, 0xfc08, 0xfbbc, 0xfbc0, 0xfc1c, 0xfca9,
+ 0xfd26, 0xfd5a, 0xfd3f, 0xfd28, 0xfd32, 0xfd57,
+ 0xfdc9, 0xfe5b, 0xfede, 0xff9e, 0x0080, 0x014f,
+ 0x023d, 0x0319, 0x0380, 0x039d, 0x03aa, 0x0395,
+ 0x0351, 0x02f6, 0x02cd, 0x0300, 0x0368, 0x03d2,
+ 0x0428, 0x0437, 0x03c7, 0x030d, 0x027f, 0x0234,
+ 0x020c, 0x01e0, 0x0168, 0x00bb, 0x002b, 0xffdc,
+ 0x0003, 0x0095, 0x0136, 0x01ea, 0x0278, 0x0288,
+ 0x0277, 0x0252, 0x01c4, 0x014c, 0x0127, 0x00d2,
+ 0x003e, 0xffad, 0xff5e, 0xff96, 0x0017, 0x008e,
+ 0x00f0, 0x0119, 0x012b, 0x0189, 0x0215, 0x028d,
+ 0x02ee, 0x032b, 0x0351, 0x0384, 0x03bb, 0x03f7,
+ 0x0464, 0x04ef, 0x052f, 0x04e9, 0x044b, 0x038a,
+ 0x02c5, 0x0217, 0x0199, 0x017e, 0x01c1, 0x0217,
+ 0x027d, 0x0316, 0x03bf, 0x045f, 0x04ec, 0x053d,
+ 0x0530, 0x0497, 0x0395, 0x02b0, 0x0208, 0x016a,
+ 0x00f4, 0x00cd, 0x00f3, 0x0145, 0x0173, 0x0166,
+ 0x013f, 0x00ef, 0x009d, 0x007e, 0x0057, 0xffff,
+ 0xff99, 0xff3a, 0xfeeb, 0xfea8, 0xfe6f, 0xfe62,
+ 0xfe63, 0xfe5f, 0xfeab, 0xff2f, 0xff92, 0xfff0,
+ 0x002f, 0x002d, 0x002a, 0xfffd, 0xff98, 0xff95,
+ 0xffe7, 0x001e, 0x0063, 0x00a2, 0x0075, 0xffeb,
+ 0xff3c, 0xfe79, 0xfda3, 0xfcec, 0xfca0, 0xfc9b,
+ 0xfc9c, 0xfca0, 0xfc93, 0xfc83, 0xfca2, 0xfcc2,
+ 0xfc97, 0xfbfc, 0xfaf3, 0xf9e0, 0xf90a, 0xf883,
+ 0xf87b, 0xf8b9, 0xf8e4, 0xf91f, 0xf964, 0xf976,
+ 0xf941, 0xf8be, 0xf849, 0xf824, 0xf7e8, 0xf788,
+ 0xf74f, 0xf71b, 0xf6e7, 0xf6d6, 0xf6b6, 0xf693,
+ 0xf6bb, 0xf722, 0xf775, 0xf79d, 0xf7bb, 0xf7e2,
+ 0xf831, 0xf8b6, 0xf92b, 0xf984, 0xf9ed, 0xfa2b,
+ 0xfa43, 0xfa95, 0xfaf3, 0xfb21, 0xfb3a, 0xfb3b,
+ 0xfb15, 0xfad6, 0xfaa4, 0xfa97, 0xfa8c, 0xfa8a,
+ 0xfab7, 0xfaf7, 0xfb54, 0xfbf2, 0xfcac, 0xfd69,
+ 0xfe00, 0xfe4f, 0xfe73, 0xfe3e, 0xfdbc, 0xfd89,
+ 0xfd9b, 0xfd7a, 0xfd1e, 0xfc74, 0xfb8e, 0xfaf0,
+ 0xfade, 0xfb48, 0xfc28, 0xfd5e, 0xfe88, 0xff23,
+ 0xff14, 0xfea5, 0xfe0c, 0xfd77, 0xfd04, 0xfcbd,
+ 0xfcc8, 0xfd0d, 0xfd65, 0xfde8, 0xfe68, 0xfeab,
+ 0xfeea, 0xff3c, 0xff89, 0xffa6, 0xff67, 0xff0b,
+ 0xfec2, 0xfe71, 0xfe56, 0xfe70, 0xfe79, 0xfe9f,
+ 0xfecf, 0xfeab, 0xfe5b, 0xfe00, 0xfd8b, 0xfd39,
+ 0xfd45, 0xfdae, 0xfe54, 0xff15, 0xffbc, 0xffe1,
+ 0xff8e, 0xff4b, 0xff24, 0xfee7, 0xfeb1, 0xfe77,
+ 0xfe37, 0xfe14, 0xfe01, 0xfe0f, 0xfe4d, 0xfe99,
+ 0xff0e, 0xff89, 0xffae, 0xffb2, 0xffb2, 0xff6b,
+ 0xff1c, 0xfef8, 0xfea9, 0xfe4d, 0xfe1f, 0xfdc6,
+ 0xfd2d, 0xfcb8, 0xfc61, 0xfbed, 0xfb87, 0xfb6c,
+ 0xfb7a, 0xfb76, 0xfb73, 0xfb93, 0xfbbb, 0xfbfe,
+ 0xfc97, 0xfd46, 0xfdd9, 0xfe5e, 0xfe97, 0xfe88,
+ 0xfe88, 0xfe72, 0xfe2f, 0xfde9, 0xfd95, 0xfd6b,
+ 0xfd9d, 0xfdec, 0xfe6e, 0xff2a, 0xffc1, 0x0037,
+ 0x00c4, 0x0169, 0x0228, 0x02ce, 0x033f, 0x039b,
+ 0x03d5, 0x0417, 0x0480, 0x04a6, 0x0482, 0x0466,
+ 0x044a, 0x0447, 0x0461, 0x045a, 0x0467, 0x04b6,
+ 0x0519, 0x05a0, 0x063a, 0x067c, 0x0657, 0x05f1,
+ 0x0554, 0x04be, 0x0446, 0x03b6, 0x033a, 0x032f,
+ 0x0372, 0x03dc, 0x046f, 0x04e7, 0x054e, 0x05fb,
+ 0x06b9, 0x0744, 0x0799, 0x0793, 0x076b, 0x076c,
+ 0x075c, 0x0745, 0x075a, 0x0776, 0x0792, 0x079f,
+ 0x0782, 0x077c, 0x0796, 0x078d, 0x0786, 0x07a6,
+ 0x07f3, 0x087e, 0x0915, 0x096b, 0x0983, 0x0973,
+ 0x093c, 0x0900, 0x08ed, 0x08f5, 0x08f5, 0x08ec,
+ 0x08b9, 0x085b, 0x081c, 0x07f2, 0x07bc, 0x078d,
+ 0x0738, 0x06c4, 0x0683, 0x0655, 0x0621, 0x060b,
+ 0x05ed, 0x05a7, 0x0527, 0x0483, 0x0414, 0x03c2,
+ 0x0386, 0x03cc, 0x044d, 0x0494, 0x04c1, 0x04ad,
+ 0x045e, 0x043a, 0x041d, 0x03e0, 0x03bc, 0x03c1,
+ 0x040c, 0x048a, 0x04e9, 0x0523, 0x0527, 0x04e7,
+ 0x04ae, 0x049f, 0x04d5, 0x056f, 0x060e, 0x0677,
+ 0x06e7, 0x0746, 0x074e, 0x070b, 0x06a5, 0x061d,
+ 0x0583, 0x0515, 0x04e5, 0x04d8, 0x0506, 0x0564,
+ 0x05ca, 0x0633, 0x064d, 0x05ef, 0x056e, 0x04d7,
+ 0x042f, 0x03d9, 0x03dd, 0x0418, 0x04a0, 0x0542,
+ 0x05bc, 0x061e, 0x0671, 0x0678, 0x060b, 0x0552,
+ 0x0473, 0x03a3, 0x0346, 0x0353, 0x0379, 0x03c7,
+ 0x0435, 0x0495, 0x04eb, 0x050f, 0x04ea, 0x04a1,
+ 0x041f, 0x03ac, 0x03be, 0x03fc, 0x03fb, 0x03dd,
+ 0x03aa, 0x0362, 0x0324, 0x02f6, 0x02eb, 0x030d,
+ 0x033b, 0x035d, 0x038c, 0x03e6, 0x044b, 0x0495,
+ 0x04d7, 0x04f7, 0x04d2, 0x0486, 0x0427, 0x03c3,
+ 0x0361, 0x02e8, 0x026e, 0x01f8, 0x015d, 0x00d3,
+ 0x0086, 0x0052, 0x005a, 0x0090, 0x00a8, 0x00b2,
+ 0x00a4, 0x0053, 0x0000, 0xffe9, 0xffe9, 0xffe4,
+ 0xffc2, 0xff62, 0xfed7, 0xfe6c, 0xfe37, 0xfe17,
+ 0xfe15, 0xfe1f, 0xfdef, 0xfd90, 0xfd06, 0xfc41,
+ 0xfbb8, 0xfbb3, 0xfc05, 0xfca7, 0xfd54, 0xfdac,
+ 0xfddf, 0xfdf8, 0xfdc8, 0xfd7a, 0xfcf6, 0xfc21,
+ 0xfb69, 0xfb00, 0xfab5, 0xfa8f, 0xfaa3, 0xfaf2,
+ 0xfb6b, 0xfbbb, 0xfbc9, 0xfbc2, 0xfb86, 0xfb18,
+ 0xfaf3, 0xfb61, 0xfc27, 0xfce1, 0xfd66, 0xfddb,
+ 0xfe52, 0xfe96, 0xfea6, 0xfeac, 0xfe96, 0xfe69,
+ 0xfe57, 0xfe71, 0xfec0, 0xff4f, 0x000a, 0x00d9,
+ 0x0194, 0x020a, 0x0229, 0x0202, 0x01cd, 0x01c5,
+ 0x01f1, 0x0234, 0x0268, 0x027d, 0x029a, 0x02cb,
+ 0x0309, 0x036a, 0x03c8, 0x0405, 0x044d, 0x04ab,
+ 0x0531, 0x0604, 0x06e0, 0x0780, 0x07cf, 0x07b9,
+ 0x077f, 0x076a, 0x0787, 0x0804, 0x08eb, 0x09e5,
+ 0x0aae, 0x0b22, 0x0b4a, 0x0b64, 0x0b9e, 0x0bf2,
+ 0x0c23, 0x0c12, 0x0c08, 0x0c1e, 0x0c2a, 0x0c3b,
+ 0x0c44, 0x0c2a, 0x0c11, 0x0bf3, 0x0bcb, 0x0bb2,
+ 0x0b86, 0x0b3f, 0x0b04, 0x0af5, 0x0b43, 0x0bc1,
+ 0x0c0d, 0x0c2a, 0x0bfc, 0x0b65, 0x0ad1, 0x0a7a,
+ 0x0a67, 0x0a9f, 0x0ace, 0x0ae9, 0x0b18, 0x0afc,
+ 0x0a82, 0x0a04, 0x0981, 0x091a, 0x08f2, 0x08c7,
+ 0x089a, 0x08a2, 0x08c7, 0x08e5, 0x08ee, 0x08dc,
+ 0x088c, 0x07cf, 0x06fe, 0x067f, 0x0635, 0x063c,
+ 0x0692, 0x06a4, 0x0669, 0x0649, 0x0634, 0x0626,
+ 0x0624, 0x05eb, 0x059e, 0x058a, 0x0591, 0x0588,
+ 0x056c, 0x0565, 0x05a1, 0x05eb, 0x05e8, 0x057b,
+ 0x04ac, 0x03b1, 0x02da, 0x0247, 0x021b, 0x0259,
+ 0x02b7, 0x030c, 0x0363, 0x03b9, 0x0419, 0x0468,
+ 0x0466, 0x0427, 0x03df, 0x0397, 0x035c, 0x0324,
+ 0x02f6, 0x02fb, 0x030c, 0x0308, 0x0328, 0x0366,
+ 0x038f, 0x03aa, 0x03a6, 0x0378, 0x035d, 0x0369,
+ 0x038e, 0x03a3, 0x034f, 0x02b0, 0x0245, 0x022b,
+ 0x024b, 0x029b, 0x030c, 0x0398, 0x040f, 0x0464,
+ 0x04c8, 0x0502, 0x04e2, 0x04cc, 0x04dd, 0x04d8,
+ 0x04b5, 0x046e, 0x0417, 0x03bf, 0x033c, 0x02b5,
+ 0x026c, 0x0238, 0x0224, 0x0258, 0x02b5, 0x032c,
+ 0x03a9, 0x03ee, 0x03f4, 0x03de, 0x03ef, 0x0444,
+ 0x0495, 0x04d9, 0x0518, 0x04fb, 0x048a, 0x0427,
+ 0x03e1, 0x03d2, 0x0413, 0x0465, 0x049d, 0x049e,
+ 0x045e, 0x0420, 0x040c, 0x03fb, 0x03cd, 0x0391,
+ 0x035d, 0x0315, 0x02ca, 0x02e3, 0x034c, 0x0392,
+ 0x03cb, 0x0400, 0x03ea, 0x03ad, 0x034b, 0x026e,
+ 0x015c, 0x0085, 0xffc7, 0xff27, 0xfef7, 0xff1c,
+ 0xff5c, 0xffab, 0xffdb, 0xffc7, 0xff95, 0xff6d,
+ 0xff59, 0xff66, 0xff96, 0xffd7, 0xffed, 0xffa3,
+ 0xff43, 0xff27, 0xff4d, 0xff9e, 0xffff, 0x0045,
+ 0x0061, 0x004f, 0x0022, 0xfffb, 0xffc3, 0xff70,
+ 0xff1b, 0xfeb9, 0xfe5d, 0xfe28, 0xfdfe, 0xfdd2,
+ 0xfdae, 0xfd91, 0xfda4, 0xfdde, 0xfe04, 0xfe22,
+ 0xfe50, 0xfe7d, 0xfea4, 0xfebc, 0xfebe, 0xfe83,
+ 0xfdf0, 0xfd54, 0xfcf8, 0xfcd8, 0xfd0f, 0xfd71,
+ 0xfd8c, 0xfd64, 0xfd26, 0xfcc5, 0xfc56, 0xfbdd,
+ 0xfb4d, 0xfad1, 0xfa7a, 0xfa38, 0xfa08, 0xf9d4,
+ 0xf999, 0xf95c, 0xf8f1, 0xf851, 0xf798, 0xf6da,
+ 0xf653, 0xf627, 0xf631, 0xf658, 0xf692, 0xf6c2,
+ 0xf6fb, 0xf754, 0xf7a2, 0xf7bb, 0xf7a6, 0xf781,
+ 0xf75a, 0xf71a, 0xf6bc, 0xf65d, 0xf610, 0xf61a,
+ 0xf6ab, 0xf764, 0xf814, 0xf8e3, 0xf9a1, 0xfa00,
+ 0xf9fa, 0xf999, 0xf910, 0xf8a1, 0xf862, 0xf881,
+ 0xf8fd, 0xf996, 0xfa55, 0xfb25, 0xfbae, 0xfbde,
+ 0xfbb7, 0xfb52, 0xfafa, 0xfaa1, 0xfa2a, 0xf9d4,
+ 0xf9ac, 0xf9b6, 0xfa2b, 0xfaec, 0xfba4, 0xfc27,
+ 0xfc50, 0xfc28, 0xfbf8, 0xfbf5, 0xfc09, 0xfc16,
+ 0xfc34, 0xfc75, 0xfcba, 0xfcf1, 0xfd21, 0xfd53,
+ 0xfd88, 0xfd95, 0xfd64, 0xfd1b, 0xfce6, 0xfcd7,
+ 0xfce5, 0xfd1d, 0xfd84, 0xfdae, 0xfd73, 0xfd31,
+ 0xfcd9, 0xfc65, 0xfc5b, 0xfca8, 0xfcf2, 0xfd48,
+ 0xfd70, 0xfd56, 0xfd62, 0xfd84, 0xfd85, 0xfd6f,
+ 0xfd2f, 0xfce6, 0xfca6, 0xfc44, 0xfbfc, 0xfbfe,
+ 0xfc24, 0xfc79, 0xfcd4, 0xfcd1, 0xfc87, 0xfc41,
+ 0xfc30, 0xfc4c, 0xfc5b, 0xfc6a, 0xfc89, 0xfc91,
+ 0xfca6, 0xfcd4, 0xfcd3, 0xfccb, 0xfcd9, 0xfcb5,
+ 0xfc68, 0xfc12, 0xfb88, 0xfad0, 0xfa27, 0xf9ca,
+ 0xf9d9, 0xfa3f, 0xfae5, 0xfbb2, 0xfc52, 0xfc91,
+ 0xfc88, 0xfc5c, 0xfc2b, 0xfc0b, 0xfbf6, 0xfbd6,
+ 0xfba3, 0xfb4c, 0xfaba, 0xfa20, 0xf9df, 0xf9fd,
+ 0xfa44, 0xfaa2, 0xfafa, 0xfb30, 0xfb5f, 0xfbaf,
+ 0xfc15, 0xfc64, 0xfca0, 0xfce5, 0xfd0c, 0xfd1b,
+ 0xfd61, 0xfdbd, 0xfde0, 0xfde5, 0xfdd0, 0xfda3,
+ 0xfdaa, 0xfddc, 0xfdf6, 0xfe0a, 0xfe28, 0xfe5c,
+ 0xfee7, 0xffa0, 0x0033, 0x00cd, 0x018a, 0x023d,
+ 0x02d9, 0x0337, 0x0314, 0x02a4, 0x0256, 0x0257,
+ 0x02b9, 0x036a, 0x041a, 0x04a3, 0x0521, 0x0596,
+ 0x05ff, 0x064c, 0x0643, 0x05e6, 0x05a7, 0x05c8,
+ 0x0622, 0x0684, 0x06c9, 0x06c6, 0x069c, 0x0699,
+ 0x06a4, 0x0668, 0x060d, 0x05e8, 0x05e5, 0x05de,
+ 0x05e5, 0x060a, 0x0651, 0x06a7, 0x06d6, 0x06d6,
+ 0x06d9, 0x0712, 0x078d, 0x0814, 0x0869, 0x0882,
+ 0x0863, 0x0805, 0x079c, 0x0772, 0x0790, 0x07cf,
+ 0x080c, 0x0835, 0x0845, 0x0859, 0x089a, 0x090e,
+ 0x0992, 0x09fb, 0x0a26, 0x09fd, 0x0984, 0x08e3,
+ 0x083a, 0x0799, 0x072c, 0x071b, 0x071d, 0x06dd,
+ 0x0686, 0x064a, 0x0630, 0x0645, 0x0651, 0x060c,
+ 0x05ab, 0x0567, 0x051b, 0x04c5, 0x0496, 0x048b,
+ 0x0495, 0x04bc, 0x04e3, 0x04d5, 0x04a3, 0x0460,
+ 0x03d7, 0x0312, 0x026a, 0x01e6, 0x017c, 0x0133,
+ 0x00d7, 0x0080, 0x007f, 0x00a5, 0x00c2, 0x00f4,
+ 0x0110, 0x010a, 0x0127, 0x015e, 0x019e, 0x01ea,
+ 0x0211, 0x0211, 0x021f, 0x0247, 0x0284, 0x02a3,
+ 0x0278, 0x0252, 0x027a, 0x02e2, 0x0367, 0x03cc,
+ 0x03f4, 0x0422, 0x048c, 0x0535, 0x060c, 0x06e6,
+ 0x07a7, 0x0840, 0x08af, 0x090c, 0x093b, 0x0916,
+ 0x08d2, 0x0895, 0x0838, 0x07bb, 0x074e, 0x0711,
+ 0x070a, 0x0748, 0x07c8, 0x0841, 0x088d, 0x08d4,
+ 0x08f9, 0x08cc, 0x0879, 0x082e, 0x0814, 0x084f,
+ 0x08a0, 0x08b8, 0x0895, 0x0842, 0x07dd, 0x0784,
+ 0x070e, 0x0672, 0x05dc, 0x055b, 0x0502, 0x04e4,
+ 0x04e1, 0x04dc, 0x04d9, 0x04e8, 0x0509, 0x0520,
+ 0x0529, 0x0533, 0x051c, 0x04b4, 0x0401, 0x0331,
+ 0x028d, 0x023f, 0x0226, 0x0230, 0x024d, 0x0236,
+ 0x01ee, 0x01d5, 0x01ed, 0x0204, 0x0239, 0x02a5,
+ 0x0324, 0x0379, 0x0372, 0x032f, 0x0300, 0x02db,
+ 0x02ab, 0x028b, 0x0269, 0x0221, 0x01c5, 0x016c,
+ 0x0115, 0x00cd, 0x00b5, 0x00cf, 0x00eb, 0x010c,
+ 0x0152, 0x01a0, 0x01db, 0x01d7, 0x015e, 0x00d8,
+ 0x00b1, 0x0098, 0x008e, 0x00e1, 0x014a, 0x016e,
+ 0x011b, 0x001e, 0xfed4, 0xfdc6, 0xfd2d, 0xfd3a,
+ 0xfdc8, 0xfe5a, 0xfebe, 0xfee5, 0xfef2, 0xff39,
+ 0xffa0, 0x0000, 0x0074, 0x00ba, 0x0097, 0x005b,
+ 0x0067, 0x00f6, 0x01f3, 0x02ed, 0x039f, 0x0406,
+ 0x0438, 0x0470, 0x04b4, 0x04dc, 0x04ee, 0x04f4,
+ 0x04ff, 0x0528, 0x053e, 0x052e, 0x0532, 0x055e,
+ 0x059a, 0x05bd, 0x05b1, 0x05ad, 0x05d1, 0x05fc,
+ 0x0628, 0x0639, 0x0614, 0x0601, 0x0632, 0x068a,
+ 0x0707, 0x0799, 0x0805, 0x0837, 0x0825, 0x07c5,
+ 0x074a, 0x06e2, 0x0663, 0x05ba, 0x0537, 0x0521,
+ 0x056d, 0x05eb, 0x064b, 0x065f, 0x066e, 0x06ae,
+ 0x06f5, 0x073a, 0x078c, 0x07be, 0x07c7, 0x07a9,
+ 0x073b, 0x06aa, 0x0656, 0x0637, 0x063b, 0x0676,
+ 0x06ab, 0x069f, 0x0670, 0x0646, 0x0647, 0x0692,
+ 0x06f4, 0x0725, 0x0722, 0x06fa, 0x06b9, 0x0696,
+ 0x06be, 0x06df, 0x068e, 0x05fb, 0x0571, 0x04fc,
+ 0x04d1, 0x04f7, 0x0513, 0x0517, 0x04fa, 0x046e,
+ 0x03ac, 0x0316, 0x029b, 0x024c, 0x022a, 0x01e8,
+ 0x01aa, 0x01b2, 0x01e7, 0x0243, 0x029f, 0x0298,
+ 0x0234, 0x01b2, 0x0133, 0x00cf, 0x0066, 0xfff2,
+ 0xffb4, 0xff9d, 0xff85, 0xffa7, 0x0017, 0x00a3,
+ 0x0131, 0x019f, 0x01df, 0x0228, 0x0299, 0x0300,
+ 0x0322, 0x0306, 0x02de, 0x02a0, 0x022f, 0x01c8,
+ 0x0192, 0x0186, 0x01d0, 0x0256, 0x02c1, 0x0313,
+ 0x035a, 0x037a, 0x0391, 0x03ae, 0x03ae, 0x0385,
+ 0x0332, 0x02fc, 0x033c, 0x03ac, 0x03f0, 0x0417,
+ 0x040e, 0x03d1, 0x03a5, 0x039c, 0x03d2, 0x044f,
+ 0x04b2, 0x04ce, 0x04c5, 0x04a4, 0x04a4, 0x04c1,
+ 0x0478, 0x03d2, 0x0351, 0x0307, 0x02dc, 0x02d8,
+ 0x02e4, 0x0314, 0x038d, 0x0423, 0x04a1, 0x04f6,
+ 0x0508, 0x04e4, 0x04c8, 0x04ba, 0x047f, 0x03ff,
+ 0x036e, 0x0302, 0x02bf, 0x0282, 0x0221, 0x01a4,
+ 0x014b, 0x0142, 0x0180, 0x01f0, 0x0246, 0x022c,
+ 0x01b2, 0x0125, 0x00bb, 0x0099, 0x00b7, 0x00d3,
+ 0x00da, 0x00e9, 0x00ec, 0x00d9, 0x00e5, 0x0115,
+ 0x014c, 0x01a1, 0x0210, 0x0250, 0x024f, 0x023a,
+ 0x0213, 0x01dd, 0x01a5, 0x0151, 0x00fe, 0x00ed,
+ 0x00df, 0x0094, 0x003b, 0xfff7, 0xfff7, 0x0065,
+ 0x00db, 0x0114, 0x0145, 0x0165, 0x0172, 0x019b,
+ 0x01b0, 0x017d, 0x012e, 0x00f0, 0x00df, 0x0103,
+ 0x0143, 0x0192, 0x01be, 0x019e, 0x0160, 0x0111,
+ 0x00a4, 0x0062, 0x007a, 0x00df, 0x017d, 0x020a,
+ 0x024d, 0x0262, 0x025a, 0x0224, 0x01c6, 0x0147,
+ 0x00a1, 0xffd1, 0xfeed, 0xfe1f, 0xfd88, 0xfd55,
+ 0xfd77, 0xfdb1, 0xfe16, 0xfe93, 0xfebc, 0xfe97,
+ 0xfe77, 0xfe77, 0xfe9e, 0xfec9, 0xfebd, 0xfe7f,
+ 0xfe46, 0xfe31, 0xfe1c, 0xfdb3, 0xfd0b, 0xfc83,
+ 0xfc2d, 0xfbe7, 0xfb97, 0xfb4b, 0xfb2b, 0xfb3e,
+ 0xfb7e, 0xfbde, 0xfc3a, 0xfc8a, 0xfca5, 0xfc53,
+ 0xfbec, 0xfbca, 0xfbd4, 0xfbfb, 0xfc09, 0xfbbf,
+ 0xfb3d, 0xfa6c, 0xf94b, 0xf87d, 0xf842, 0xf87b,
+ 0xf944, 0xfa57, 0xfb53, 0xfc48, 0xfcf8, 0xfd1f,
+ 0xfcf5, 0xfc9a, 0xfc1e, 0xfbb7, 0xfb86, 0xfba3,
+ 0xfbea, 0xfbfc, 0xfbd5, 0xfb8c, 0xfb16, 0xfab0,
+ 0xfaa7, 0xfafa, 0xfb99, 0xfc54, 0xfccd, 0xfcd3,
+ 0xfc6f, 0xfbee, 0xfbc5, 0xfbf3, 0xfc0e, 0xfc05,
+ 0xfbef, 0xfbbf, 0xfba6, 0xfbba, 0xfbb4, 0xfb96,
+ 0xfb6a, 0xfb1b, 0xfb09, 0xfb5a, 0xfba0, 0xfbd4,
+ 0xfc0d, 0xfc05, 0xfbd5, 0xfbc0, 0xfbce, 0xfc0d,
+ 0xfc5c, 0xfc85, 0xfc90, 0xfc75, 0xfc57, 0xfc7e,
+ 0xfcd0, 0xfd2d, 0xfd8d, 0xfda4, 0xfd7f, 0xfd8c,
+ 0xfdde, 0xfe40, 0xfe79, 0xfe54, 0xfddf, 0xfd64,
+ 0xfd25, 0xfd11, 0xfcef, 0xfceb, 0xfd36, 0xfda7,
+ 0xfe34, 0xfebd, 0xff0a, 0xff5e, 0xffdf, 0x003f,
+ 0x008a, 0x00c4, 0x00b0, 0x0061, 0x0000, 0xff8b,
+ 0xff3f, 0xff20, 0xfef3, 0xfeb1, 0xfe5c, 0xfe00,
+ 0xfde5, 0xfe14, 0xfe4a, 0xfe7b, 0xfec2, 0xff12,
+ 0xff3d, 0xff30, 0xfef4, 0xfe87, 0xfe01, 0xfd8a,
+ 0xfd1e, 0xfcb7, 0xfc68, 0xfc20, 0xfbeb, 0xfbff,
+ 0xfc1c, 0xfbe3, 0xfb89, 0xfb40, 0xfaf0, 0xfac9,
+ 0xfaf0, 0xfb23, 0xfb3f, 0xfb53, 0xfb46, 0xfb19,
+ 0xfaf6, 0xfb03, 0xfb4a, 0xfba2, 0xfbc4, 0xfb9e,
+ 0xfb5a, 0xfb22, 0xfafa, 0xfae4, 0xfafa, 0xfb59,
+ 0xfc30, 0xfd7b, 0xfeb5, 0xff71, 0xffc5, 0xffc3,
+ 0xff64, 0xfed8, 0xfe3f, 0xfdbb, 0xfd9c, 0xfe01,
+ 0xfec1, 0xffb2, 0x009f, 0x0121, 0x0110, 0x00cb,
+ 0x0099, 0x006b, 0x0068, 0x00b5, 0x011c, 0x019a,
+ 0x023b, 0x02b5, 0x02e9, 0x02fd, 0x02f5, 0x02fb,
+ 0x0334, 0x0369, 0x0386, 0x03d6, 0x046f, 0x0510,
+ 0x05b0, 0x0673, 0x072a, 0x079b, 0x07d7, 0x07e1,
+ 0x07b3, 0x0799, 0x07a3, 0x0787, 0x0735, 0x06e8,
+ 0x06c9, 0x06d7, 0x0702, 0x0731, 0x0735, 0x072a,
+ 0x0774, 0x0816, 0x08b8, 0x0930, 0x095c, 0x0941,
+ 0x0931, 0x0944, 0x095c, 0x095f, 0x0914, 0x086e,
+ 0x07a7, 0x06d6, 0x060e, 0x057a, 0x0533, 0x0529,
+ 0x0515, 0x04e3, 0x04e2, 0x0510, 0x0529, 0x0509,
+ 0x049b, 0x0425, 0x03ff, 0x03df, 0x03b4, 0x03ca,
+ 0x03d0, 0x038d, 0x033f, 0x02cc, 0x023d, 0x01dc,
+ 0x017a, 0x0115, 0x0119, 0x0182, 0x020a, 0x0298,
+ 0x0306, 0x0325, 0x02eb, 0x0280, 0x0209, 0x018f,
+ 0x012e, 0x00f1, 0x00c9, 0x00d2, 0x0127, 0x018d,
+ 0x01d1, 0x020a, 0x023e, 0x025b, 0x0287, 0x02d8,
+ 0x0314, 0x0339, 0x036c, 0x037f, 0x035a, 0x02fb,
+ 0x025a, 0x01b6, 0x012d, 0x00b6, 0x00a5, 0x00ec,
+ 0x010c, 0x00f6, 0x00cd, 0x00b1, 0x00d6, 0x0129,
+ 0x0191, 0x01dd, 0x01d3, 0x01f0, 0x026d, 0x02d0,
+ 0x0323, 0x0343, 0x02b3, 0x0204, 0x01b7, 0x0187,
+ 0x01ba, 0x0297, 0x03bd, 0x04f8, 0x0619, 0x06d4,
+ 0x0737, 0x0745, 0x06d4, 0x0628, 0x05cb, 0x05ad,
+ 0x0584, 0x059f, 0x0619, 0x0681, 0x06e7, 0x0744,
+ 0x071b, 0x06b7, 0x06ae, 0x06f5, 0x076a, 0x07da,
+ 0x0801, 0x07f0, 0x07ef, 0x0836, 0x0883, 0x0856,
+ 0x07e2, 0x075e, 0x06b3, 0x0640, 0x0611, 0x05b6,
+ 0x0549, 0x04d7, 0x0437, 0x03b3, 0x0399, 0x03f2,
+ 0x047b, 0x04dd, 0x0533, 0x0593, 0x05cb, 0x05e8,
+ 0x05e9, 0x05ac, 0x0549, 0x04e7, 0x049f, 0x045a,
+ 0x040b, 0x03e5, 0x03e1, 0x0409, 0x0466, 0x045d,
+ 0x041f, 0x043e, 0x03d5, 0x02ec, 0x02ab, 0x0298,
+ 0x0257, 0x0260, 0x0204, 0x0147, 0x0116, 0x0138,
+ 0x018d, 0x022b, 0x0287, 0x02b6, 0x02ca, 0x027a,
+ 0x0241, 0x0234, 0x01d2, 0x0156, 0x0109, 0x00dd,
+ 0x00b3, 0x0058, 0x0008, 0xfffc, 0xfffa, 0x0001,
+ 0xffe5, 0xff7e, 0xff53, 0xff3e, 0xfedc, 0xfecf,
+ 0xff35, 0xffa8, 0x0035, 0x005b, 0xfffb, 0x0009,
+ 0x005c, 0x006b, 0x00d2, 0x0135, 0x00e7, 0x00ba,
+ 0x00e0, 0x00f0, 0x0184, 0x027d, 0x0348, 0x0434,
+ 0x04f0, 0x0574, 0x069e, 0x07c1, 0x081d, 0x086f,
+ 0x085b, 0x0772, 0x06ac, 0x0623, 0x05c5, 0x061d,
+ 0x06b3, 0x0735, 0x07bd, 0x079a, 0x0717, 0x06ff,
+ 0x06ec, 0x0732, 0x0817, 0x0878, 0x0871, 0x08c0,
+ 0x08e6, 0x08e7, 0x08e0, 0x0863, 0x0802, 0x07c5,
+ 0x06fc, 0x066d, 0x064a, 0x05c0, 0x0546, 0x04c1,
+ 0x03b0, 0x0346, 0x03c6, 0x0484, 0x05ae, 0x0652,
+ 0x05f1, 0x05b9, 0x0554, 0x04a9, 0x0495, 0x03f0,
+ 0x02c4, 0x0280, 0x0227, 0x01c0, 0x0253, 0x02a4,
+ 0x02a3, 0x02d1, 0x0262, 0x027d, 0x0335, 0x02bd,
+ 0x0257, 0x0294, 0x0222, 0x0268, 0x036f, 0x0345,
+ 0x02f5, 0x0313, 0x028f, 0x01f4, 0x0195, 0x017e,
+ 0x01f8, 0x0212, 0x01d4, 0x0212, 0x0235, 0x024a,
+ 0x02a8, 0x0274, 0x01cd, 0x0165, 0x010b, 0x00d3,
+ 0x00e2, 0x00c2, 0x0032, 0xffb6, 0xffad, 0xff89,
+ 0xff76, 0x005e, 0x015a, 0x0168, 0x0149, 0x013c,
+ 0x015b, 0x01ec, 0x01f9, 0x0161, 0x0139, 0x0176,
+ 0x01fb, 0x02ad, 0x0293, 0x020c, 0x0223, 0x0231,
+ 0x01ec, 0x0277, 0x03af, 0x0457, 0x0478, 0x0476,
+ 0x0462, 0x04f7, 0x05d7, 0x0597, 0x04af, 0x03c8,
+ 0x029d, 0x0233, 0x02c5, 0x0369, 0x0459, 0x051d,
+ 0x057c, 0x063d, 0x0601, 0x050d, 0x0591, 0x05bb,
+ 0x0503, 0x05bf, 0x0638, 0x05cc, 0x0682, 0x0691,
+ 0x05b4, 0x05ff, 0x060a, 0x05a1, 0x05bc, 0x04ea,
+ 0x0401, 0x03d2, 0x02e6, 0x02ae, 0x03a0, 0x0388,
+ 0x036f, 0x040d, 0x042a, 0x04c1, 0x059c, 0x0543,
+ 0x047b, 0x037d, 0x0287, 0x02db, 0x036a, 0x0357,
+ 0x037c, 0x0347, 0x02b3, 0x029d, 0x023e, 0x01c5,
+ 0x0210, 0x0246, 0x0247, 0x024c, 0x01ce, 0x01b9,
+ 0x023c, 0x01e9, 0x015a, 0x013a, 0x00b6, 0x007c,
+ 0x00c7, 0x0062, 0xffa8, 0xfeb9, 0xfd5e, 0xfd2b,
+ 0xfe0c, 0xfe9d, 0xffa1, 0x00c6, 0x00e4, 0x00f5,
+ 0x00b0, 0xff47, 0xfe5c, 0xfe14, 0xfd82, 0xfd6b,
+ 0xfd55, 0xfcf6, 0xfd96, 0xfe30, 0xfe1d, 0xfed7,
+ 0xff4d, 0xfeab, 0xfeb7, 0xfed5, 0xfdff, 0xfdb6,
+ 0xfdfe, 0xfe3c, 0xfecb, 0xfee1, 0xfeaa, 0xff15,
+ 0xfef5, 0xfe32, 0xfde7, 0xfd57, 0xfcad, 0xfc9b,
+ 0xfc3f, 0xfc1c, 0xfceb, 0xfd8c, 0xfdea, 0xfe4d,
+ 0xfe65, 0xfe9d, 0xfe82, 0xfdb4, 0xfd26, 0xfca8,
+ 0xfc0e, 0xfbae, 0xfaf7, 0xfac5, 0xfb51, 0xfb0d,
+ 0xfb4e, 0xfc67, 0xfbe7, 0xfb46, 0xfbb5, 0xfb79,
+ 0xfc15, 0xfda9, 0xfd8f, 0xfd7d, 0xfea7, 0xfee3,
+ 0xfeb2, 0xfebb, 0xfdff, 0xfd50, 0xfd31, 0xfcf9,
+ 0xfcfe, 0xfdaf, 0xfeb7, 0xff24, 0xfed5, 0xfed6,
+ 0xfecd, 0xfe4a, 0xfe87, 0xff32, 0xfed1, 0xfda6,
+ 0xfcb0, 0xfc8b, 0xfd1b, 0xfddc, 0xfeaf, 0xff2d,
+ 0xff38, 0xff32, 0xfec4, 0xfe5b, 0xfe93, 0xfe6e,
+ 0xfdfd, 0xfdf9, 0xfdd2, 0xfde4, 0xfe77, 0xfe70,
+ 0xfdb3, 0xfcba, 0xfc17, 0xfc5d, 0xfc84, 0xfc63,
+ 0xfcfc, 0xfd1c, 0xfc32, 0xfbde, 0xfc13, 0xfbfd,
+ 0xfc24, 0xfc6f, 0xfc08, 0xfb71, 0xfbb4, 0xfc40,
+ 0xfc86, 0xfd19, 0xfd47, 0xfccf, 0xfcce, 0xfc48,
+ 0xfb38, 0xfb8e, 0xfbf8, 0xfbd1, 0xfcdf, 0xfddd,
+ 0xfe43, 0xff59, 0xffa3, 0xff2c, 0xff19, 0xfdfd,
+ 0xfcb6, 0xfca1, 0xfc88, 0xfcf3, 0xfdbb, 0xfdae,
+ 0xfe7a, 0xff9b, 0xfebf, 0xfd77, 0xfce6, 0xfc81,
+ 0xfd1c, 0xfe51, 0xff3f, 0x0054, 0x0114, 0x0133,
+ 0x0150, 0x0134, 0x00de, 0x0095, 0xfff8, 0xff41,
+ 0xfeeb, 0xfe6f, 0xfda3, 0xfd83, 0xfe6f, 0xff8b,
+ 0x000a, 0xffa7, 0xfee5, 0xfeb6, 0xfee4, 0xff21,
+ 0xffe8, 0x00ad, 0x0106, 0x014d, 0x00ef, 0x000a,
+ 0xff1f, 0xfdb0, 0xfcd4, 0xfcfe, 0xfc84, 0xfc45,
+ 0xfd30, 0xfd8b, 0xfd47, 0xfcf0, 0xfc08, 0xfb0a,
+ 0xfa3c, 0xfa00, 0xfacc, 0xfbbc, 0xfd35, 0xff23,
+ 0xff02, 0xfd8c, 0xfcbe, 0xfb73, 0xf9cc, 0xf906,
+ 0xf901, 0xfa1d, 0xfbb8, 0xfc4b, 0xfc35, 0xfc0b,
+ 0xfb7d, 0xfa69, 0xf972, 0xf980, 0xf9e1, 0xfa48,
+ 0xfbfb, 0xfdff, 0xfed7, 0xff25, 0xfebf, 0xfd95,
+ 0xfca3, 0xfc18, 0xfc30, 0xfc97, 0xfcf3, 0xfe27,
+ 0xff49, 0xff7c, 0xffbd, 0xff31, 0xfde5, 0xfd54,
+ 0xfc37, 0xfb00, 0xfbb0, 0xfcef, 0xfe4b, 0x000b,
+ 0x0088, 0x0082, 0x0156, 0x0202, 0x020d, 0x01af,
+ 0x01a1, 0x0232, 0x026a, 0x02ff, 0x0439, 0x04b4,
+ 0x0570, 0x065c, 0x059a, 0x04c1, 0x04bd, 0x0439,
+ 0x03f6, 0x0475, 0x050a, 0x05a2, 0x0633, 0x06fa,
+ 0x07ba, 0x085f, 0x08fe, 0x0836, 0x0792, 0x0917,
+ 0x0954, 0x0863, 0x0959, 0x0961, 0x0883, 0x0934,
+ 0x0881, 0x06fc, 0x070d, 0x0676, 0x0610, 0x06d4,
+ 0x06e9, 0x07f4, 0x09af, 0x09e7, 0x0a0c, 0x0996,
+ 0x0830, 0x080d, 0x0786, 0x0634, 0x066d, 0x06b7,
+ 0x0663, 0x0689, 0x066f, 0x067e, 0x0679, 0x055e,
+ 0x04a9, 0x045f, 0x039a, 0x0393, 0x0445, 0x0511,
+ 0x0607, 0x0668, 0x05f6, 0x04fa, 0x0434, 0x044f,
+ 0x03d6, 0x02b6, 0x02ed, 0x03d6, 0x042b, 0x043e,
+ 0x0468, 0x04b6, 0x046f, 0x040a, 0x043f, 0x03a3,
+ 0x0388, 0x04bd, 0x03f6, 0x03ab, 0x062e, 0x0601,
+ 0x03f1, 0x03cb, 0x0214, 0xff7f, 0xfede, 0xfdeb,
+ 0xfdc0, 0xff6e, 0x0076, 0x0153, 0x01e1, 0x01a5,
+ 0x01d5, 0x0060, 0xfebb, 0x00cb, 0x0207, 0x0095,
+ 0x0147, 0x0241, 0x017c, 0x022a, 0x0293, 0x00f8,
+ 0x014a, 0x031a, 0x01f1, 0xffc9, 0x0124, 0x0414,
+ 0x053a, 0x058c, 0x05bb, 0x0543, 0x0470, 0x0304,
+ 0x0237, 0x03a8, 0x0564, 0x0563, 0x02e4, 0xfefe,
+ 0xff72, 0x0540, 0x08a6, 0x074c, 0x05d0, 0x05b9,
+ 0x05ec, 0x0518, 0x0331, 0x036d, 0x06dc, 0x08b1,
+ 0x0618, 0x03b1, 0x04cd, 0x05f7, 0x062f, 0x0696,
+ 0x042a, 0x0188, 0x03ec, 0x061d, 0x05f5, 0x087f,
+ 0x0a08, 0x077b, 0x05e1, 0x0525, 0x03e9, 0x048a,
+ 0x0502, 0x02b4, 0xffe6, 0xffcd, 0x0239, 0x03e5,
+ 0x05fb, 0x0940, 0x0706, 0x0219, 0x02e2, 0x036f,
+ 0x01ed, 0x04a1, 0x052c, 0x02b2, 0x04a5, 0x03f1,
+ 0x005d, 0x0366, 0x047d, 0x00a1, 0x02da, 0x04aa,
+ 0x006b, 0x005d, 0x03af, 0x0545, 0x0683, 0x0393,
+ 0xff73, 0x00cf, 0x001d, 0xfd38, 0x01ff, 0x071b,
+ 0x052d, 0x04df, 0x0578, 0xff69, 0xfaa5, 0xfe93,
+ 0x01d8, 0xff69, 0xffde, 0x02ef, 0xffe2, 0xfca6,
+ 0x0141, 0x0500, 0x03a2, 0x0449, 0x0499, 0x0043,
+ 0xfeb8, 0x02db, 0x056a, 0x0547, 0x065c, 0x05c0,
+ 0x024d, 0x0275, 0x04b3, 0x02da, 0x023d, 0x04fd,
+ 0x0402, 0x02c6, 0x0540, 0x051a, 0x04de, 0x080d,
+ 0x06d9, 0x0386, 0x054c, 0x0599, 0x027a, 0x03cc,
+ 0x0815, 0x0878, 0x047c, 0x0172, 0x0387, 0x05f3,
+ 0x04a3, 0x0543, 0x0791, 0x05ac, 0x0471, 0x073f,
+ 0x085e, 0x0947, 0x0b19, 0x06ba, 0x01d7, 0x0541,
+ 0x0663, 0x029a, 0x05d2, 0x0867, 0x035d, 0x058f,
+ 0x0b68, 0x076a, 0x075d, 0x0e42, 0x08ef, 0xfebe,
+ 0x00dd, 0x05b6, 0x040e, 0x03b1, 0x07cc, 0x0875,
+ 0x0394, 0x0292, 0x04ae, 0x01ba, 0x01cc, 0x05d2,
+ 0x030a, 0x0524, 0x0d30, 0x074c, 0x0333, 0x0bd4,
+ 0x0578, 0xfb2e, 0x04d4, 0x06d3, 0xfcb9, 0x0112,
+ 0x0544, 0xfef8, 0x0238, 0x0858, 0x030f, 0xfdc5,
+ 0xff7b, 0x0141, 0xfe43, 0xfb14, 0xfe68, 0x024f,
+ 0x00e6, 0xfe65, 0xfc54, 0xfdf7, 0x01a2, 0xfcaa,
+ 0xf900, 0x000c, 0xffa8, 0xf941, 0xfcd4, 0xfe7f,
+ 0xfa5f, 0xfcc8, 0xff65, 0xfd69, 0xfbd5, 0xfab3,
+ 0xfe43, 0x02c6, 0xff53, 0xfe0d, 0x01cd, 0xff97,
+ 0xfd01, 0xff83, 0x0166, 0x01c8, 0x0086, 0x018d,
+ 0x0490, 0xfe48, 0xfa7c, 0x0438, 0x023c, 0xf71c,
+ 0xfecd, 0x06e0, 0x007d, 0x0146, 0x03ef, 0xfdfa,
+ 0xff89, 0x040c, 0x0076, 0x014e, 0x050a, 0x005e,
+ 0xfb7d, 0xfbf5, 0xfd34, 0xffc9, 0x02ae, 0x02e2,
+ 0x0261, 0x0222, 0x0131, 0x0084, 0x0093, 0x0122,
+ 0x01c9, 0x0113, 0x004f, 0x021d, 0x0363, 0x0215,
+ 0x02c6, 0x0496, 0x03a5, 0x0398, 0x03fb, 0x01bb,
+ 0x02c8, 0x05ad, 0x035e, 0x025a, 0x04b8, 0x0351,
+ 0x01e5, 0x0369, 0x04f2, 0x0820, 0x08c8, 0x0608,
+ 0x081d, 0x0801, 0x0198, 0x0372, 0x0815, 0x0233,
+ 0xffcc, 0x06a6, 0x07bc, 0x0466, 0x06a8, 0x094a,
+ 0x065d, 0x03f2, 0x0521, 0x02d1, 0xff2f, 0x031f,
+ 0x0669, 0x02ab, 0x022c, 0x03bb, 0x021e, 0x03ab,
+ 0x03a4, 0xfe21, 0xfe4f, 0x00a2, 0xfca7, 0xfca6,
+ 0x03dd, 0x0728, 0x0328, 0xfec3, 0xfebd, 0xfd59,
+ 0xfa39, 0xff23, 0x0337, 0xfccf, 0xfb74, 0xff47,
+ 0xfb50, 0xf9dd, 0xfe0a, 0xff41, 0x029f, 0x0419,
+ 0x004d, 0x0309, 0x04b5, 0x0046, 0x040a, 0x0545,
+ 0xfd04, 0xff9f, 0x048f, 0xfd74, 0xfc22, 0x013d,
+ 0x00dd, 0x02d0, 0x054e, 0x02c0, 0x0343, 0x03e5,
+ 0x00d6, 0x00e2, 0x00a5, 0xfeb0, 0x010a, 0x0192,
+ 0xfe79, 0x013b, 0x0571, 0x0237, 0xfd88, 0xfd0a,
+ 0xfd03, 0xfc80, 0xfe10, 0xfeab, 0xfb30, 0xf830,
+ 0xf98b, 0xfd8a, 0x00e0, 0x006e, 0xfe92, 0xfe93,
+ 0xfc3f, 0xf990, 0xfca7, 0xfe5d, 0xfc2a, 0xfea9,
+ 0x0227, 0x009e, 0xfec2, 0xfed5, 0x00af, 0x0171,
+ 0xfdd9, 0xfe82, 0x037c, 0x0035, 0xfc59, 0x0081,
+ 0x0086, 0xfe5b, 0x03ef, 0x0681, 0x00f9, 0xfece,
+ 0x020b, 0x0330, 0x0127, 0x01a8, 0x042b, 0x0313,
+ 0x0266, 0x038c, 0x007a, 0x00a3, 0x054a, 0x0075,
+ 0xfbc4, 0x020b, 0x0136, 0xfa72, 0xfe9b, 0x00fb,
+ 0xfa0b, 0xf93d, 0xfde9, 0xff6f, 0x0042, 0x0063,
+ 0x003a, 0x02ba, 0x03a3, 0x012e, 0x0085, 0x01b0,
+ 0x0162, 0x00be, 0xff87, 0xfa5d, 0xf5fc, 0xf8c8,
+ 0xfaa2, 0xf6fe, 0xf884, 0xfd27, 0xfab4, 0xf903,
+ 0xfd6d, 0xfed3, 0xfc2d, 0xfb7a, 0xfe02, 0xffff,
+ 0xfd78, 0xfd50, 0x017a, 0xfce8, 0xf752, 0xfeed,
+ 0x00db, 0xf872, 0xfb8e, 0x005f, 0xfa73, 0xfb26,
+ 0x0087, 0xffed, 0x0225, 0x0267, 0xfdcc, 0x021c,
+ 0x04c4, 0xfd00, 0xfd55, 0x0210, 0xff85, 0x017e,
+ 0x048b, 0x0009, 0xff64, 0x0007, 0xfc29, 0xfe46,
+ 0x0078, 0xfb93, 0xfcd6, 0x02a9, 0x013a, 0xfd66,
+ 0xfc3c, 0xfca9, 0xfe3d, 0xfe33, 0xfda2, 0xffd2,
+ 0x0293, 0x032a, 0x0265, 0x0399, 0x0467, 0x0013,
+ 0xff4c, 0x043b, 0x0255, 0xff43, 0x00f8, 0xfc3e,
+ 0xfa17, 0x01b1, 0x00f6, 0xfdeb, 0x050f, 0x0404,
+ 0xfac2, 0xfd22, 0x0433, 0x033d, 0x0012, 0x0189,
+ 0x03be, 0x0217, 0x033f, 0x0613, 0xff9a, 0xfb50,
+ 0x0111, 0xffeb, 0xfc4e, 0x00ad, 0xfeef, 0xf9dd,
+ 0xfc1b, 0xfc64, 0xfc4c, 0xfea9, 0xfbfc, 0xfce3,
+ 0x018b, 0xfd59, 0xfab9, 0xfe0d, 0xfad7, 0xf833,
+ 0xfba1, 0xfc2c, 0xfd79, 0x0028, 0xfbd7, 0xf729,
+ 0xf7f3, 0xf839, 0xf937, 0xfbc4, 0xfa5e, 0xf964,
+ 0xfc03, 0xfaaa, 0xf925, 0xfe0f, 0xfed9, 0xfb5a,
+ 0xff3d, 0x0084, 0xf8e3, 0xf8b0, 0xfd94, 0xf977,
+ 0xf534, 0xf8e4, 0xfc91, 0xfc6d, 0xfbbd, 0xfd85,
+ 0x001f, 0xffbd, 0xfee8, 0x0015, 0x0118, 0x0156,
+ 0x0103, 0x022b, 0x03f4, 0x016f, 0x00bc, 0x0400,
+ 0xffbc, 0xfaf7, 0xff95, 0x010c, 0xff93, 0x02b9,
+ 0x01ee, 0x0114, 0x05fb, 0x04fe, 0x00f8, 0x02aa,
+ 0x0233, 0xfeb4, 0xff96, 0x02aa, 0x01f7, 0x0019,
+ 0x03fe, 0x0567, 0xff68, 0x0392, 0x0bc4, 0x053b,
+ 0x02ac, 0x07a8, 0x01a8, 0x011c, 0x07a9, 0x0055,
+ 0xfcab, 0x0394, 0x0245, 0x0223, 0x051f, 0x00a2,
+ 0x01b8, 0x06ce, 0x04a5, 0x03cb, 0x027b, 0xff4c,
+ 0x011b, 0xfe7a, 0xfbb9, 0x043b, 0x0767, 0x02c4,
+ 0x03ee, 0x031e, 0xffef, 0x0229, 0x0168, 0xfe4a,
+ 0x0049, 0x01e1, 0x015a, 0x0253, 0x025a, 0xff04,
+ 0xfc53, 0xff30, 0x0068, 0xfad8, 0xfb6e, 0x01e7,
+ 0xffff, 0xfc8a, 0xfe32, 0xfd62, 0xfdd0, 0x00bf,
+ 0xfe19, 0xfb61, 0xfe34, 0xff87, 0xfcbd, 0xfad2,
+ 0xfd2a, 0xfff7, 0xfebc, 0xfd5f, 0xfdc8, 0xfe28,
+ 0x0062, 0x00bc, 0xfd81, 0xfe69, 0xfff9, 0xfc18,
+ 0xfaae, 0xfc38, 0xfa9e, 0xfb37, 0xff81, 0xffe7,
+ 0xfcc6, 0xfae5, 0xfa50, 0xfc7d, 0x0179, 0x0175,
+ 0xfd66, 0xff85, 0x0091, 0xf983, 0xf92d, 0xff24,
+ 0xfda2, 0xfc08, 0xfd8e, 0xfc10, 0xfe9e, 0x01b6,
+ 0xfd94, 0xfc40, 0xfd32, 0xfb02, 0xfcfe, 0xff87,
+ 0xfefb, 0x00ad, 0x0039, 0x0041, 0x03f6, 0xffcd,
+ 0xfb71, 0x010e, 0x0173, 0xfeff, 0x054c, 0x067b,
+ 0x006d, 0x016d, 0x0537, 0x039c, 0x0169, 0x035d,
+ 0x055f, 0x0365, 0x037a, 0x0607, 0x04ca, 0x05ab,
+ 0x0757, 0x0238, 0x01a6, 0x04de, 0x00af, 0x02fc,
+ 0x0a91, 0x05be, 0x026c, 0x06cc, 0x0374, 0x00bb,
+ 0x04cb, 0x04ed, 0x03e1, 0x03f9, 0x03a8, 0x059e,
+ 0x03c9, 0x0207, 0x0876, 0x085e, 0x0125, 0x0243,
+ 0x033e, 0xffcc, 0x00a5, 0x00db, 0x0162, 0x034b,
+ 0xfd17, 0xfa26, 0x00ac, 0xfed6, 0xfc77, 0x0589,
+ 0x06bb, 0xff32, 0xff24, 0xff77, 0xfcfa, 0x0076,
+ 0x04b4, 0x03fe, 0x01c5, 0x0025, 0x00d4, 0x02fe,
+ 0x0481, 0x068a, 0x06f0, 0x03c7, 0x00fe, 0x011b,
+ 0x04cb, 0x08ee, 0x0799, 0x0559, 0x068c, 0x04b1,
+ 0x0285, 0x05fa, 0x073f, 0x04fb, 0x0534, 0x0418,
+ 0x01e5, 0x0317, 0x030a, 0x0256, 0x05e0, 0x072a,
+ 0x02a6, 0xff94, 0xfff4, 0xffac, 0xff42, 0x0229,
+ 0x060d, 0x058b, 0x0280, 0x01b8, 0x0316, 0x04ee,
+ 0x04ca, 0x0272, 0x01ed, 0x01a6, 0xff7f, 0x00ba,
+ 0x03b2, 0x0382, 0x0471, 0x0543, 0x01ce, 0x018a,
+ 0x05a8, 0x0586, 0x03c4, 0x056b, 0x056f, 0x0391,
+ 0x04fe, 0x065c, 0x04d4, 0x0602, 0x082b, 0x0569,
+ 0x04d1, 0x0a02, 0x0b5c, 0x0946, 0x099d, 0x07d4,
+ 0x04da, 0x06c2, 0x08f3, 0x06ab, 0x0339, 0x02c5,
+ 0x0591, 0x069b, 0x055b, 0x072e, 0x08d7, 0x0674,
+ 0x0508, 0x0517, 0x056b, 0x081d, 0x0861, 0x04fa,
+ 0x0560, 0x0759, 0x0561, 0x037b, 0x027b, 0x002b,
+ 0x0042, 0x01e4, 0x0000, 0xfecf, 0x01cb, 0x0222,
+ 0xff5b, 0xffe7, 0x0124, 0x0107, 0x02ce, 0x0257,
+ 0xffd4, 0x01be, 0x02e8, 0x0251, 0x05d1, 0x03d8,
+ 0xfcd4, 0x00ab, 0x061b, 0x01c0, 0x0166, 0x0611,
+ 0x051f, 0x02bb, 0x02a8, 0x0474, 0x0690, 0x033a,
+ 0x0071, 0x038c, 0x0227, 0xfe8c, 0x016b, 0x0497,
+ 0x070d, 0x076f, 0xffb9, 0xfd77, 0x05b9, 0x06cc,
+ 0x039c, 0x0650, 0x05dd, 0x02e6, 0x046a, 0x05fd,
+ 0x076f, 0x087b, 0x0570, 0x0425, 0x061d, 0x0490,
+ 0x0202, 0x03d8, 0x06f4, 0x05ca, 0x02e9, 0x0531,
+ 0x0649, 0x00a3, 0x01a9, 0x0947, 0x0805, 0x041b,
+ 0x048f, 0x0124, 0xfee8, 0x0296, 0x03b5, 0x0426,
+ 0x05d3, 0x03c4, 0x0378, 0x061c, 0x053b, 0x043a,
+ 0x039c, 0x009a, 0x0128, 0x0453, 0x04b1, 0x05c9,
+ 0x0851, 0x0a7b, 0x0c1c, 0x0996, 0x075d, 0x0b0e,
+ 0x0b9b, 0x0816, 0x0972, 0x0a43, 0x07ca, 0x09a3,
+ 0x0bc0, 0x0a4d, 0x0b21, 0x0c06, 0x09f0, 0x0936,
+ 0x0880, 0x059d, 0x053d, 0x07b9, 0x0768, 0x03c0,
+ 0x0247, 0x03ea, 0x041f, 0x0346, 0x024a, 0xfe0b,
+ 0xfa8e, 0xfb64, 0xfaec, 0xfa34, 0xfbb2, 0xf948,
+ 0xf692, 0xf953, 0xf9b2, 0xf6cb, 0xf6a7, 0xf59c,
+ 0xf2ae, 0xf19a, 0xf148, 0xf1a5, 0xf2c1, 0xf545,
+ 0xfc01, 0x0161, 0x016b, 0x019f, 0xff86, 0xfa02,
+ 0xf990, 0xfa2f, 0xf69b, 0xf639, 0xf7fa, 0xf9af,
+ 0x00c0, 0x06df, 0x0767, 0x07f5, 0x047a, 0xfee6,
+ 0x00d2, 0xff5f, 0xf65b, 0xf767, 0xff4f, 0x00c2,
+ 0x034a, 0x07d6, 0x061d, 0x03ad, 0x01f2, 0xfc06,
+ 0xf8d3, 0xf980, 0xf6c2, 0xf6fe, 0xfe89, 0x0271,
+ 0x014e, 0x0364, 0x04d0, 0x00aa, 0xfe14, 0xfec3,
+ 0xfcec, 0xfc6d, 0x000a, 0x0092, 0x015e, 0x07bd,
+ 0x0913, 0x0589, 0x0623, 0x00f4, 0xf857, 0xfe7b,
+ 0x060a, 0x01d9, 0x03d9, 0x0a6c, 0x0852, 0x088a,
+ 0x0b29, 0x07c9, 0x082d, 0x0932, 0x02d2, 0x021a,
+ 0x06c6, 0x05fb, 0x06de, 0x0a48, 0x0930, 0x0854,
+ 0x07d0, 0x04c5, 0x049e, 0x069d, 0x06cb, 0x050e,
+ 0x0013, 0xfd89, 0x01ef, 0x04bc, 0x0537, 0x0908,
+ 0x08c7, 0x02ba, 0x0105, 0x01fc, 0xffe8, 0xfe7b,
+ 0xfe3c, 0xfe4d, 0x0241, 0x0643, 0x04b9, 0x027f,
+ 0x0338, 0x0402, 0x0376, 0x013a, 0xfe19, 0xfb5f,
+ 0xf9b8, 0xfd71, 0x03d7, 0x0284, 0xff1f, 0x0224,
+ 0x01cb, 0xfcd4, 0xfd04, 0xfe9e, 0xfd5b, 0xfbc9,
+ 0xfaa0, 0xfd1a, 0x0079, 0xff39, 0xff6b, 0x00ef,
+ 0xfeb7, 0xfe8b, 0xfe4d, 0xfa69, 0xfb63, 0xfe1b,
+ 0xfe02, 0x01be, 0x0342, 0xff4d, 0xffb2, 0x00c3,
+ 0xff9d, 0x01dd, 0x021e, 0x002f, 0x0189, 0x015b,
+ 0x0146, 0x041f, 0x03de, 0x0263, 0x012f, 0xfea5,
+ 0x006f, 0x0237, 0xfe63, 0xfdf6, 0x0017, 0xfe4f,
+ 0xfcc0, 0xfbaf, 0xfb69, 0xfd64, 0xfc2a, 0xfb5d,
+ 0xfe76, 0xfce9, 0xf9d1, 0xfb2c, 0xfb4f, 0xfb45,
+ 0xfc2d, 0xfa83, 0xfae6, 0xfcfc, 0xfc4f, 0xfce7,
+ 0xff41, 0x00c8, 0x0027, 0xfcfc, 0x0000, 0x06cc,
+ 0x02bb, 0xfdeb, 0x0233, 0x00b9, 0xfc20, 0x0052,
+ 0x03d8, 0x0296, 0x016d, 0x003c, 0x0340, 0x0786,
+ 0x047b, 0x0107, 0x01da, 0x00cf, 0xff96, 0xfff3,
+ 0xfe9e, 0xff1a, 0x0322, 0x047f, 0x0268, 0x00fa,
+ 0xfefc, 0xfcad, 0xfd77, 0xfce6, 0xfa32, 0xfc80,
+ 0xfcd6, 0xf6d5, 0xf878, 0xfdc4, 0xfa82, 0xf923,
+ 0xfa81, 0xf6ea, 0xf83f, 0xfc19, 0xf9b6, 0xfb40,
+ 0xfeb9, 0xfc2d, 0xfc54, 0xfd52, 0xfb2c, 0xfe08,
+ 0x006a, 0xfebc, 0x0121, 0x0112, 0xfcb2, 0xfe19,
+ 0xfef8, 0xfba4, 0xfcd7, 0xfe49, 0xfbb8, 0xfbde,
+ 0xfe58, 0xfea7, 0xfddf, 0xff3e, 0x01a3, 0xff57,
+ 0xfb9c, 0xfd89, 0xff48, 0xfd41, 0xfc98, 0xfd01,
+ 0xfde9, 0xfdfe, 0xfa3e, 0xf9b2, 0xfd6d, 0xfc5a,
+ 0xfafd, 0xfd2f, 0xfb90, 0xf8ed, 0xf8a2, 0xf6c0,
+ 0xf787, 0xfb86, 0xfb74, 0xfad6, 0xfe63, 0x00c1,
+ 0xffde, 0xfe94, 0xfd39, 0xfcab, 0xfd92, 0xfc7d,
+ 0xfa41, 0xfc68, 0xff14, 0xfda0, 0xfed6, 0x025f,
+ 0x00b7, 0xfe61, 0xfef7, 0xfde5, 0xfd6f, 0x0011,
+ 0x020c, 0x02c1, 0x0350, 0x03f0, 0x04bf, 0x0403,
+ 0x0252, 0x0268, 0x02db, 0x010e, 0xfe63, 0xfdef,
+ 0xff98, 0x012c, 0x0210, 0x01c6, 0x012a, 0x01e8,
+ 0x0105, 0xfe89, 0xffe3, 0x02cd, 0x02e2, 0x0295,
+ 0x0270, 0x0153, 0x0017, 0xff25, 0x007f, 0x031c,
+ 0x0231, 0xffcb, 0xffeb, 0x0048, 0xff2d, 0xfe20,
+ 0xfdeb, 0xfe6e, 0xff7d, 0xffa5, 0xfdd5, 0xfd03,
+ 0xfe16, 0xfdf2, 0xfecc, 0x0111, 0xffe8, 0xfead,
+ 0xff84, 0xfdd4, 0xfd49, 0xff14, 0xfda6, 0xfc05,
+ 0xfbe1, 0xfbb1, 0xfe77, 0xfffd, 0xfd5e, 0xfce2,
+ 0xfd48, 0xfc94, 0xfdc9, 0xfe2d, 0xfda3, 0xfddc,
+ 0xfc7f, 0xfd0d, 0xffa2, 0xfe53, 0xfd88, 0xffcc,
+ 0xff1c, 0xfde2, 0xff2b, 0xfe58, 0xfcb3, 0xfe12,
+ 0xfeb9, 0xfdcc, 0x0059, 0x0321, 0xffe6, 0xfc67,
+ 0xfdb9, 0xfe75, 0xfcbe, 0xfbcb, 0xfc4c, 0xfd77,
+ 0xfdd3, 0xfe26, 0xffc4, 0x007d, 0x0039, 0xff82,
+ 0xfdd3, 0xfe1f, 0xfeea, 0xfd17, 0xfd55, 0x0035,
+ 0x0221, 0x035d, 0x027e, 0x01d5, 0x03bf, 0x020f,
+ 0xff3e, 0x0165, 0x02a1, 0x0274, 0x047f, 0x047d,
+ 0x034f, 0x03c2, 0x0398, 0x03ac, 0x0355, 0x01b2,
+ 0x0269, 0x03fe, 0x03a3, 0x0364, 0x03a1, 0x0469,
+ 0x0524, 0x03de, 0x0338, 0x044b, 0x0459, 0x04bc,
+ 0x05e0, 0x0509, 0x03b4, 0x03b1, 0x035d, 0x0336,
+ 0x0434, 0x039d, 0x0163, 0x0126, 0x0189, 0x0053,
+ 0x007e, 0x01ef, 0x01b8, 0x0104, 0x013a, 0x0138,
+ 0xffaa, 0xfe63, 0xffd8, 0xffd5, 0xfd54, 0xfde9,
+ 0xfee2, 0xfec4, 0x0116, 0x00ad, 0xff92, 0x0314,
+ 0x0188, 0xfd6b, 0xffea, 0xffe2, 0xfe6e, 0x01c9,
+ 0x00b0, 0xfe8c, 0x00ca, 0xfeae, 0xfcc9, 0xffc4,
+ 0x006e, 0x00c1, 0x0098, 0xfdfd, 0xff5b, 0x00d6,
+ 0xfeb4, 0xff8b, 0x009b, 0xff8e, 0x001d, 0xffba,
+ 0xffe6, 0x02bb, 0x02e5, 0x01eb, 0x02ae, 0x01e0,
+ 0x008b, 0x007e, 0x0075, 0x00ed, 0x01eb, 0x0281,
+ 0x022c, 0x0163, 0x0157, 0x00de, 0xfff7, 0x008c,
+ 0x0197, 0x029f, 0x0340, 0x01f7, 0x018d, 0x02ef,
+ 0x0306, 0x0306, 0x03ec, 0x0495, 0x05ed, 0x06c8,
+ 0x05c2, 0x0488, 0x0412, 0x0482, 0x0513, 0x04eb,
+ 0x04b3, 0x0464, 0x0507, 0x069c, 0x0619, 0x055f,
+ 0x065f, 0x05ec, 0x05bb, 0x073c, 0x06d0, 0x05ca,
+ 0x05eb, 0x05f6, 0x06f2, 0x07ca, 0x072d, 0x0626,
+ 0x04af, 0x0568, 0x07c7, 0x0660, 0x04b0, 0x05bd,
+ 0x03dd, 0x01b8, 0x03af, 0x03dc, 0x01a6, 0x01c7,
+ 0x01ec, 0x00dc, 0x0197, 0x0279, 0x0191, 0x0160,
+ 0x01b6, 0x00e7, 0x00d7, 0x010c, 0x001d, 0x006d,
+ 0x00c7, 0xff79, 0x0056, 0x0251, 0x0166, 0x00b3,
+ 0x024d, 0x032f, 0x02c3, 0x02a0, 0x01db, 0xff60,
+ 0xfe77, 0x0014, 0x0018, 0x0072, 0x02e3, 0x0245,
+ 0x010e, 0x0265, 0x0195, 0x0113, 0x0285, 0x0101,
+ 0xfff8, 0x011a, 0x0104, 0x0236, 0x0289, 0x0033,
+ 0x0113, 0x02a9, 0x018a, 0x0151, 0x013b, 0x01e0,
+ 0x03cc, 0x02aa, 0x0137, 0x01e4, 0x0169, 0x01d8,
+ 0x035a, 0x031b, 0x028f, 0x017c, 0x0116, 0x029b,
+ 0x01f5, 0x00bf, 0x0152, 0x0064, 0x0042, 0x0141,
+ 0xff85, 0xfed4, 0x00a5, 0x01d3, 0x02cc, 0x026d,
+ 0x0157, 0x01c3, 0x015f, 0x0187, 0x0325, 0x026b,
+ 0x023d, 0x0384, 0x01a6, 0x010a, 0x03e1, 0x03de,
+ 0x02a2, 0x0348, 0x0206, 0x00a6, 0x02bd, 0x03a4,
+ 0x0221, 0x0361, 0x053c, 0x03e2, 0x03a3, 0x0500,
+ 0x0478, 0x0453, 0x0436, 0x0257, 0x02b0, 0x03e5,
+ 0x0278, 0x0274, 0x0417, 0x040f, 0x040f, 0x0464,
+ 0x03bc, 0x030a, 0x02da, 0x0382, 0x03e5, 0x0259,
+ 0x00d8, 0x00c2, 0x00ad, 0x0047, 0x0000, 0x0026,
+ 0x005f, 0xffe6, 0xff82, 0xffb2, 0xfff0, 0x004b,
+ 0x00b2, 0x0196, 0x026c, 0x0158, 0xffe4, 0xffea,
+ 0x0006, 0x0006, 0xffd5, 0xfece, 0xfede, 0x000b,
+ 0xffa5, 0xfe28, 0xfe00, 0xff11, 0xff8e, 0xfef5,
+ 0xfde7, 0xfd5f, 0xfe6e, 0xfeff, 0xfdd4, 0xff0d,
+ 0x0127, 0xff56, 0xfe88, 0x004b, 0xff2c, 0xfe42,
+ 0xffc0, 0xffd4, 0x007d, 0x01e9, 0x0098, 0xff7a,
+ 0x00a0, 0x018e, 0x0161, 0x00a2, 0x0062, 0x0010,
+ 0xff0d, 0xff96, 0x0070, 0xffcf, 0x00d6, 0x0291,
+ 0x01ed, 0x0179, 0x01c8, 0x0097, 0xff59, 0xffe5,
+ 0x0070, 0xff22, 0xfeb8, 0x0130, 0x029f, 0x01e3,
+ 0x020e, 0x0281, 0x020f, 0x019d, 0x01cb, 0x0274,
+ 0x01cd, 0x00c7, 0x01c5, 0x023c, 0x0222, 0x0359,
+ 0x02e3, 0x026c, 0x0410, 0x0321, 0x01fd, 0x0440,
+ 0x045c, 0x0272, 0x02de, 0x0355, 0x0264, 0x018d,
+ 0x01a3, 0x02d2, 0x03dd, 0x049a, 0x04df, 0x03c6,
+ 0x036b, 0x03db, 0x0311, 0x02e4, 0x0308, 0x01b7,
+ 0x00f1, 0x0105, 0x0159, 0x01b0, 0x0068, 0xffdf,
+ 0x0146, 0x007d, 0xfee5, 0xffad, 0x00ca, 0x0192,
+ 0x0144, 0xff7e, 0x0000, 0x0196, 0x00ef, 0x01aa,
+ 0x0364, 0x0179, 0xff7d, 0x009f, 0x00f1, 0x0039,
+ 0x0059, 0xff70, 0xfee7, 0x0015, 0xfec6, 0xfca4,
+ 0xfe37, 0xfed5, 0xfcc9, 0xfd0c, 0xfdd1, 0xfd2e,
+ 0xfe14, 0xff0c, 0xff06, 0x002e, 0x00ce, 0xfff1,
+ 0xffdf, 0x001d, 0xffc7, 0x0016, 0x00aa, 0xffb9,
+ 0xfe45, 0xfe74, 0xfedc, 0xfe70, 0xff18, 0xffeb,
+ 0xffc1, 0x005d, 0x00b0, 0x0006, 0x007c, 0x00e2,
+ 0x0087, 0x00a7, 0xffa6, 0xfeb1, 0x0022, 0x0036,
+ 0xfe17, 0xfe2d, 0xff98, 0xff7b, 0xff5a, 0x0022,
+ 0x00eb, 0x01bf, 0x0251, 0x025d, 0x0299, 0x024e,
+ 0x0118, 0x00b2, 0x0095, 0xffa0, 0xffd2, 0x00da,
+ 0x0104, 0x01d4, 0x02ca, 0x0265, 0x027f, 0x02a3,
+ 0x016f, 0x00d6, 0x00ab, 0xffe0, 0x002b, 0x00fa,
+ 0x0079, 0x003a, 0x010e, 0x00fc, 0x006d, 0x016a,
+ 0x026d, 0x01e7, 0x01b0, 0x01c6, 0x00c4, 0xff81,
+ 0xfea9, 0xff40, 0x00a8, 0xffa3, 0xfe8d, 0x003b,
+ 0x0045, 0xfe8e, 0xfe72, 0xfe43, 0xfeb0, 0x0054,
+ 0xfffc, 0xff88, 0x004a, 0xff74, 0xfef5, 0xffbf,
+ 0xff5a, 0xff0a, 0xfefc, 0xfe18, 0xfe57, 0xff26,
+ 0xfec2, 0xfe98, 0xfefb, 0xfed1, 0xfe90, 0xfeff,
+ 0xff82, 0xff36, 0xff29, 0xffe0, 0x0008, 0xffe4,
+ 0xffc7, 0xff81, 0x0036, 0x00b4, 0xffe4, 0x0056,
+ 0x0172, 0x0133, 0x014b, 0x0164, 0x008f, 0x00dd,
+ 0x0194, 0x0112, 0x00cf, 0x0101, 0x011d, 0x01b4,
+ 0x0173, 0xffb6, 0xff10, 0xffb9, 0xff7a, 0xff7c,
+ 0x00aa, 0x00c7, 0x0081, 0x012a, 0x0086, 0xff45,
+ 0xff29, 0xfe22, 0xfce5, 0xfd77, 0xfdde, 0xfdff,
+ 0xff14, 0xff8d, 0xff16, 0xfe8b, 0xfe82, 0xffe9,
+ 0x0123, 0x0038, 0xfeb1, 0xfe72, 0xff98, 0x006b,
+ 0xff76, 0xff08, 0x0024, 0xff77, 0xfd89, 0xfe50,
+ 0x003e, 0x004b, 0x00a0, 0x022e, 0x021f, 0x0157,
+ 0x01dd, 0x0198, 0x00e4, 0x01d6, 0x0264, 0x023b,
+ 0x02ad, 0x01dc, 0x00ff, 0x0289, 0x0340, 0x01d7,
+ 0x01b7, 0x02d7, 0x030d, 0x0341, 0x0474, 0x04f2,
+ 0x043a, 0x03e0, 0x032e, 0x01dc, 0x01d1, 0x0175,
+ 0xffd9, 0xffcf, 0xffdd, 0xfe89, 0xfee6, 0xffdd,
+ 0xffcc, 0x0102, 0x01e7, 0x0116, 0x0129, 0x011b,
+ 0x0008, 0x0053, 0x00b1, 0xff98, 0xff69, 0x0079,
+ 0x008a, 0xff88, 0xff31, 0xffaa, 0xffa1, 0xff72,
+ 0xff8d, 0xfeca, 0xfe23, 0xfefa, 0xff5b, 0xfee9,
+ 0xffcc, 0x0155, 0x019d, 0x00ef, 0x0081, 0x00d8,
+ 0x010a, 0x0082, 0x004e, 0x003c, 0xff7e, 0xff10,
+ 0xff0f, 0xff35, 0x002a, 0x003b, 0xfeab, 0xfe18,
+ 0xfe28, 0xfd8f, 0xfdb3, 0xfdec, 0xfdb8, 0xfe29,
+ 0xfddc, 0xfda2, 0xfeef, 0xfe9d, 0xfdb8, 0xff64,
+ 0xffe1, 0xfe96, 0xfecc, 0xfe6b, 0xfd66, 0xfe58,
+ 0xfed8, 0xfe32, 0xfe96, 0xfea4, 0xfdae, 0xfda6,
+ 0xfea5, 0xff65, 0xff45, 0xfef6, 0xffaf, 0x011d,
+ 0x01e7, 0x0192, 0x0113, 0x0118, 0x00ec, 0x00e7,
+ 0x01d6, 0x0255, 0x01dc, 0x01b6, 0x01ef, 0x022a,
+ 0x023b, 0x01ed, 0x020b, 0x02ba, 0x031d, 0x0339,
+ 0x034c, 0x038e, 0x03ec, 0x03c7, 0x03d5, 0x04c0,
+ 0x0535, 0x04b0, 0x0434, 0x03cc, 0x030b, 0x02af,
+ 0x02d3, 0x01e9, 0x0088, 0x0076, 0xffea, 0xfea0,
+ 0xfef0, 0xfeb3, 0xfd72, 0xfecf, 0x004b, 0xff8f,
+ 0x0018, 0x00c5, 0xff65, 0xfed7, 0xff29, 0xfefe,
+ 0xff43, 0xff67, 0xff7e, 0x0009, 0xffc9, 0xffad,
+ 0x0027, 0xff49, 0xfe25, 0xfde0, 0xfd05, 0xfc72,
+ 0xfd7e, 0xff17, 0x0026, 0x002f, 0xfffe, 0x0091,
+ 0x0091, 0xfff5, 0x00bd, 0x01b4, 0x0110, 0x007b,
+ 0x003c, 0xfefc, 0xfe89, 0xffe0, 0x007c, 0x0051,
+ 0x0151, 0x024d, 0x01e9, 0x014b, 0x0139, 0x015a,
+ 0x0154, 0x0165, 0x01bf, 0x0188, 0x0139, 0x023f,
+ 0x0309, 0x0264, 0x01d2, 0x00d2, 0xff2e, 0xff45,
+ 0x0023, 0xff7c, 0xfe92, 0xfe40, 0xfe0f, 0xfe47,
+ 0xfe8e, 0xfec9, 0xfef7, 0xfe86, 0xfed2, 0x0071,
+ 0x0114, 0x00c0, 0x0102, 0x014c, 0x0180, 0x01a6,
+ 0x0159, 0x01b6, 0x0264, 0x01ec, 0x01c2, 0x028c,
+ 0x0267, 0x015c, 0x00ed, 0x019f, 0x02c1, 0x032f,
+ 0x0346, 0x0372, 0x02e0, 0x02b9, 0x0439, 0x053a,
+ 0x04da, 0x04b6, 0x0496, 0x03df, 0x039e, 0x0435,
+ 0x04b6, 0x0485, 0x0435, 0x045f, 0x047f, 0x044e,
+ 0x03e3, 0x0332, 0x0325, 0x03a9, 0x0306, 0x0227,
+ 0x0273, 0x01e0, 0x00a8, 0x0176, 0x024c, 0x011d,
+ 0x008a, 0x00d0, 0x0001, 0xffe4, 0x014b, 0x016a,
+ 0xffcf, 0xfebf, 0xfee9, 0xff5c, 0xffc6, 0x007a,
+ 0x009f, 0xff88, 0xff0a, 0xffb6, 0xffc7, 0xff94,
+ 0xff88, 0xfe9e, 0xfe42, 0xff3f, 0xff95, 0xffa0,
+ 0x004a, 0x006b, 0x0077, 0x00f7, 0x00f8, 0x0100,
+ 0x0137, 0x00c7, 0x00aa, 0x0164, 0x019d, 0x010d,
+ 0x00d2, 0x01a9, 0x0285, 0x0229, 0x017e, 0x0105,
+ 0x000f, 0xffbc, 0x00bf, 0x01d6, 0x0266, 0x022d,
+ 0x015f, 0x0161, 0x01fe, 0x021b, 0x020d, 0x01f3,
+ 0x01b8, 0x0184, 0x0145, 0x01a9, 0x0243, 0x0196,
+ 0x0126, 0x022f, 0x02a4, 0x02af, 0x0388, 0x03c0,
+ 0x038e, 0x042f, 0x046b, 0x0444, 0x04c6, 0x0528,
+ 0x055e, 0x05c4, 0x0593, 0x0542, 0x0562, 0x0514,
+ 0x0481, 0x044b, 0x0403, 0x0363, 0x0313, 0x03bd,
+ 0x0435, 0x036f, 0x0373, 0x0495, 0x046e, 0x0454,
+ 0x0586, 0x056f, 0x04c1, 0x0578, 0x0605, 0x0667,
+ 0x0703, 0x063e, 0x053c, 0x04ee, 0x03b5, 0x0267,
+ 0x01ed, 0x0107, 0x001d, 0xffc5, 0xff7f, 0xff7d,
+ 0xffa9, 0xffe7, 0x0037, 0x0028, 0x002e, 0x0060,
+ 0x0044, 0x0091, 0x00c0, 0x003a, 0x0044, 0xffdc,
+ 0xfe1b, 0xfd59, 0xfd82, 0xfd54, 0xfd99, 0xfd83,
+ 0xfcc9, 0xfd01, 0xfd8f, 0xfdee, 0xfe9d, 0xfecb,
+ 0xfebb, 0xfe9a, 0xfdb2, 0xfddb, 0xff42, 0xff31,
+ 0xfe9d, 0xfeed, 0xfe87, 0xfe00, 0xfeb6, 0xff65,
+ 0xff68, 0xff53, 0xff4e, 0xffac, 0x0084, 0x0191,
+ 0x0292, 0x02fa, 0x02be, 0x02b9, 0x02fe, 0x02b1,
+ 0x0240, 0x02cc, 0x0359, 0x02de, 0x0289, 0x0264,
+ 0x01cc, 0x0219, 0x02c7, 0x0246, 0x023f, 0x0308,
+ 0x02e1, 0x02da, 0x033e, 0x02cc, 0x02e4, 0x0392,
+ 0x0322, 0x02f9, 0x037a, 0x02dd, 0x023d, 0x0290,
+ 0x0276, 0x020c, 0x01d0, 0x0157, 0x011e, 0x0137,
+ 0x011e, 0x0174, 0x0266, 0x02dc, 0x0298, 0x0274,
+ 0x0295, 0x0263, 0x022a, 0x0252, 0x021a, 0x0172,
+ 0x011c, 0x00d9, 0x0098, 0x00a4, 0x00b7, 0x0122,
+ 0x01dd, 0x01d3, 0x014f, 0x0153, 0x01a4, 0x01c2,
+ 0x019d, 0x01a1, 0x01dc, 0x0158, 0x008d, 0x00ee,
+ 0x0185, 0x0125, 0x00bb, 0x00bf, 0x00a2, 0x007e,
+ 0x00ae, 0x00b7, 0x000a, 0xff71, 0xff9f, 0xffdf,
+ 0x0015, 0x0097, 0x00ae, 0x003b, 0xfff8, 0x0039,
+ 0x00bb, 0x005f, 0xff4b, 0xff63, 0x002f, 0x0003,
+ 0xffbc, 0x0012, 0x0014, 0xffc3, 0x0003, 0x0084,
+ 0xffd5, 0xfe5d, 0xfe64, 0xffc0, 0x00b0, 0x0159,
+ 0x01ed, 0x01d7, 0x0173, 0x0140, 0x016f, 0x01ce,
+ 0x01fc, 0x025d, 0x02a9, 0x0232, 0x01fe, 0x0234,
+ 0x01aa, 0x0119, 0x0145, 0x0168, 0x0166, 0x01be,
+ 0x025e, 0x028e, 0x0208, 0x01dd, 0x024e, 0x0254,
+ 0x023f, 0x0298, 0x02af, 0x0280, 0x0291, 0x02a3,
+ 0x02ac, 0x0346, 0x03fa, 0x0397, 0x0302, 0x032c,
+ 0x028b, 0x0187, 0x01c3, 0x01c4, 0x017a, 0x0272,
+ 0x0320, 0x0323, 0x03aa, 0x0376, 0x0300, 0x0386,
+ 0x034d, 0x027f, 0x02b8, 0x0330, 0x034f, 0x0315,
+ 0x02ab, 0x02fa, 0x0338, 0x02a5, 0x026e, 0x025a,
+ 0x01f4, 0x0232, 0x029b, 0x0279, 0x0265, 0x024e,
+ 0x01e3, 0x01c1, 0x0225, 0x0237, 0x01b0, 0x017f,
+ 0x016e, 0x00ee, 0x0104, 0x014b, 0x00a8, 0x0075,
+ 0x0128, 0x01ac, 0x0222, 0x023b, 0x01c7, 0x01aa,
+ 0x0180, 0x010d, 0x00e2, 0x009e, 0x0051, 0x000c,
+ 0xff55, 0xff10, 0xff58, 0xfefe, 0xfea8, 0xff3b,
+ 0x002c, 0x00ce, 0x00f9, 0x013a, 0x0132, 0x002b,
+ 0xffb3, 0x0029, 0xffe7, 0xffac, 0x0024, 0x0031,
+ 0x0044, 0x0083, 0x0027, 0xfff8, 0x0005, 0xffbd,
+ 0xffa8, 0xff87, 0xff54, 0xffc3, 0xfffa, 0xffd0,
+ 0x004b, 0x007b, 0xffee, 0x0008, 0x0083, 0x008e,
+ 0x00c7, 0x00f5, 0x0098, 0x004f, 0x0004, 0xff79,
+ 0xff44, 0xff04, 0xfe39, 0xfdc1, 0xfdd3, 0xfe1e,
+ 0xfed5, 0xff6e, 0xffb4, 0x0043, 0x0091, 0x005f,
+ 0x008e, 0x00b7, 0x0061, 0x0049, 0x0070, 0x0065,
+ 0x007d, 0x00e9, 0x0161, 0x01b7, 0x01fb, 0x021d,
+ 0x0226, 0x0292, 0x032f, 0x0352, 0x032f, 0x02ae,
+ 0x01ad, 0x014b, 0x0198, 0x01aa, 0x01cb, 0x01bc,
+ 0x00e3, 0x006a, 0x00ec, 0x0169, 0x018e, 0x01b2,
+ 0x0185, 0x00c1, 0x0053, 0x00d8, 0x0120, 0x00e2,
+ 0x0112, 0x0131, 0x0102, 0x015c, 0x01a8, 0x0191,
+ 0x01c0, 0x01b6, 0x0120, 0x007a, 0xffd4, 0xff93,
+ 0xffd9, 0xfffc, 0xfffe, 0xffdd, 0xff62, 0xff11,
+ 0xff2e, 0xffad, 0x0059, 0x004b, 0xff7c, 0xfece,
+ 0xfe62, 0xfe3f, 0xfe5b, 0xfe3e, 0xfe30, 0xfe60,
+ 0xfe83, 0xff05, 0xffb5, 0xffc0, 0xffc0, 0x0009,
+ 0xffce, 0xff9a, 0x001f, 0x0077, 0x0088, 0x0127,
+ 0x01d4, 0x01d2, 0x016b, 0x00ed, 0x006a, 0xffef,
+ 0xff78, 0xff44, 0xff4e, 0xff46, 0xff59, 0xff9f,
+ 0xffda, 0x003a, 0x00a1, 0x00ae, 0x00dc, 0x0134,
+ 0x00ea, 0x0072, 0x00a5, 0x00c7, 0x0080, 0x00dd,
+ 0x018e, 0x018a, 0x01bf, 0x02a7, 0x02d8, 0x026a,
+ 0x024c, 0x01e9, 0x0146, 0x00fa, 0x0090, 0x0023,
+ 0xfff0, 0xff61, 0xff06, 0xff80, 0xffdd, 0xff9e,
+ 0xff38, 0xfefc, 0xfee9, 0xfe9c, 0xfe25, 0xfe12,
+ 0xfe2f, 0xfe1a, 0xfe09, 0xfe36, 0xfecb, 0xff7a,
+ 0xffd0, 0x0042, 0x0111, 0x0184, 0x0133, 0x0085,
+ 0x0036, 0x005e, 0x008b, 0x00f3, 0x017b, 0x012b,
+ 0x0071, 0x0044, 0x0029, 0xffd4, 0xffa0, 0xff60,
+ 0xff13, 0xff1c, 0xffab, 0x0084, 0x0112, 0x0146,
+ 0x0157, 0x00ed, 0x0078, 0x00a4, 0x00a7, 0x0038,
+ 0x000a, 0xffc8, 0xff4c, 0xff24, 0xfef0, 0xfe93,
+ 0xfe98, 0xfe85, 0xfe0d, 0xfdb3, 0xfd5a, 0xfd06,
+ 0xfd19, 0xfd49, 0xfd89, 0xfdfe, 0xfe17, 0xfde0,
+ 0xfdf2, 0xfde5, 0xfd88, 0xfd4b, 0xfd10, 0xfce6,
+ 0xfcf0, 0xfcab, 0xfc71, 0xfcd1, 0xfce2, 0xfc7b,
+ 0xfca9, 0xfd19, 0xfd2c, 0xfd7a, 0xfe35, 0xfed5,
+ 0xff21, 0xff3a, 0xff59, 0xff67, 0xff65, 0xffd9,
+ 0x0080, 0x008e, 0x005e, 0x0072, 0x0079, 0x006d,
+ 0x007f, 0x00af, 0x0102, 0x0149, 0x0183, 0x01ec,
+ 0x023f, 0x026c, 0x02bd, 0x02cc, 0x027a, 0x0250,
+ 0x0201, 0x011d, 0x0047, 0xffd8, 0xff51, 0xfec4,
+ 0xfeb4, 0xfec7, 0xfea9, 0xfec8, 0xfee7, 0xfe8d,
+ 0xfe4d, 0xfe17, 0xfda5, 0xfe15, 0xff40, 0xffa6,
+ 0xffe9, 0x00a7, 0x00c6, 0x006b, 0x005d, 0x002c,
+ 0xffe6, 0xffd1, 0xff9e, 0xff97, 0xffde, 0xffe6,
+ 0xffef, 0x005b, 0x00b5, 0x00e9, 0x013d, 0x0158,
+ 0x0126, 0x010f, 0x0114, 0x0127, 0x013d, 0x0108,
+ 0x00c8, 0x00f8, 0x015b, 0x01a3, 0x0193, 0x00e4,
+ 0x0026, 0xffdf, 0xffd3, 0xfffc, 0x002e, 0x0021,
+ 0x0010, 0xffec, 0xffc7, 0xffda, 0xff61, 0xfe79,
+ 0xfe33, 0xfe12, 0xfdd7, 0xfe0c, 0xfdf3, 0xfd75,
+ 0xfd2b, 0xfc87, 0xfbf7, 0xfc2b, 0xfc1d, 0xfbb6,
+ 0xfbee, 0xfcad, 0xfd7f, 0xfdda, 0xfdbe, 0xfdf4,
+ 0xfe22, 0xfdcc, 0xfdb4, 0xfdf3, 0xfe27, 0xfe6c,
+ 0xfe98, 0xfeab, 0xfec7, 0xfebb, 0xfebf, 0xff03,
+ 0xff54, 0xffa9, 0xffe8, 0x0033, 0x00a9, 0x00e1,
+ 0x00f5, 0x00f4, 0x007c, 0x004e, 0x00dd, 0x0158,
+ 0x01da, 0x0293, 0x02d2, 0x02c9, 0x02cb, 0x02a4,
+ 0x027d, 0x0222, 0x016d, 0x0113, 0x010a, 0x00aa,
+ 0x0031, 0x0030, 0x0075, 0x0087, 0x00a6, 0x0115,
+ 0x0135, 0x00fa, 0x0102, 0x00f9, 0x00a1, 0x0060,
+ 0xfffa, 0xff75, 0xff80, 0xfff1, 0x003c, 0x007d,
+ 0x00d1, 0x00d0, 0x006b, 0x0060, 0x00d8, 0x010f,
+ 0x010b, 0x0132, 0x012a, 0x00c7, 0x0050, 0xfff9,
+ 0xffe5, 0xffe8, 0xfff8, 0x003c, 0x0060, 0x0052,
+ 0x0082, 0x00be, 0x00ad, 0x006c, 0x003d, 0x0064,
+ 0x00a1, 0x00ba, 0x0117, 0x0169, 0x012d, 0x00dc,
+ 0x0089, 0x0005, 0xffeb, 0x002a, 0x0004, 0xff88,
+ 0xff18, 0xfed1, 0xfecb, 0xfefc, 0xff42, 0xff80,
+ 0xffa5, 0xffa8, 0xffa9, 0x000c, 0x00ad, 0x00f0,
+ 0x00ec, 0x00d3, 0x006e, 0x001a, 0x0029, 0x0047,
+ 0x006b, 0x0086, 0x003a, 0xffa8, 0xff2e, 0xfec7,
+ 0xfe3d, 0xfdcb, 0xfded, 0xfe58, 0xfea5, 0xff44,
+ 0x002e, 0x00cb, 0x010b, 0x00ed, 0x00a4, 0x00a9,
+ 0x00c8, 0x00d3, 0x00f5, 0x00e7, 0x00a8, 0x0074,
+ 0x0040, 0x005d, 0x00e1, 0x016e, 0x0202, 0x0282,
+ 0x02c6, 0x02cc, 0x026e, 0x021f, 0x01ee, 0x0134,
+ 0x00a5, 0x00aa, 0x0068, 0x007f, 0x013d, 0x016c,
+ 0x0142, 0x0110, 0x007e, 0x0067, 0x00bd, 0x00c6,
+ 0x0130, 0x01c5, 0x01e2, 0x0225, 0x024d, 0x0209,
+ 0x020a, 0x0239, 0x025f, 0x029e, 0x02b5, 0x02c8,
+ 0x02d6, 0x02b9, 0x0302, 0x0363, 0x034e, 0x033d,
+ 0x031f, 0x0300, 0x035c, 0x0399, 0x0391, 0x03a7,
+ 0x035b, 0x030c, 0x0366, 0x03c0, 0x03fb, 0x0444,
+ 0x0422, 0x03c4, 0x0366, 0x02dc, 0x0273, 0x0236,
+ 0x01f2, 0x01d0, 0x01bf, 0x01b4, 0x01cc, 0x01d3,
+ 0x01bb, 0x018a, 0x0115, 0x0084, 0x001e, 0xffe2,
+ 0xffa8, 0xff5e, 0xff21, 0xff0b, 0xff3b, 0xffb9,
+ 0x001d, 0x0046, 0x0041, 0xffd8, 0xff66, 0xff1b,
+ 0xfe60, 0xfda9, 0xfdbf, 0xfe03, 0xfe07, 0xfe0e,
+ 0xfe1a, 0xfe21, 0xfe0c, 0xfdf7, 0xfe35, 0xfeab,
+ 0xff30, 0xffb1, 0x0014, 0x009e, 0x0135, 0x0187,
+ 0x01e5, 0x020f, 0x01aa, 0x0161, 0x0154, 0x0132,
+ 0x0123, 0x011a, 0x0143, 0x0186, 0x0131, 0x00d8,
+ 0x012d, 0x019e, 0x0231, 0x02d3, 0x02c9, 0x02b4,
+ 0x0347, 0x03db, 0x03f8, 0x03b7, 0x0378, 0x0386,
+ 0x035e, 0x02ec, 0x02d6, 0x02e0, 0x02aa, 0x0298,
+ 0x02c0, 0x02d0, 0x02bc, 0x027c, 0x0216, 0x0210,
+ 0x0290, 0x02e8, 0x02fb, 0x0311, 0x02bf, 0x0253,
+ 0x0286, 0x02c0, 0x02b9, 0x02c8, 0x02a0, 0x0291,
+ 0x02d3, 0x02aa, 0x0269, 0x0273, 0x0262, 0x02c0,
+ 0x037b, 0x03bc, 0x0409, 0x046f, 0x0455, 0x0458,
+ 0x047c, 0x041c, 0x0399, 0x0315, 0x025e, 0x01d0,
+ 0x017f, 0x0151, 0x015c, 0x018b, 0x01ba, 0x01c5,
+ 0x01d4, 0x0216, 0x022f, 0x0227, 0x0242, 0x021a,
+ 0x01a7, 0x0105, 0xffe9, 0xfee1, 0xfe68, 0xfe04,
+ 0xfde5, 0xfe50, 0xfec3, 0xff2d, 0xff97, 0xffaa,
+ 0xff8a, 0xff5f, 0xff2e, 0xff0a, 0xfebb, 0xfe7d,
+ 0xfee4, 0xff61, 0xff4e, 0xff44, 0xffa9, 0x000c,
+ 0x0053, 0x00bc, 0x0140, 0x01cb, 0x024b, 0x02a3,
+ 0x02f4, 0x0376, 0x03fe, 0x0455, 0x0480, 0x0480,
+ 0x045a, 0x0425, 0x03e6, 0x03a9, 0x0379, 0x0372,
+ 0x03b8, 0x03e5, 0x03a9, 0x0383, 0x0380, 0x0328,
+ 0x02db, 0x02b5, 0x0232, 0x01e7, 0x023b, 0x021f,
+ 0x018d, 0x0151, 0x0104, 0x0096, 0x00bc, 0x012a,
+ 0x017e, 0x01e6, 0x022c, 0x022b, 0x01e5, 0x015e,
+ 0x0138, 0x016f, 0x0124, 0x00b7, 0x00bf, 0x00c5,
+ 0x00ca, 0x00fa, 0x00f3, 0x00e2, 0x00eb, 0x00b2,
+ 0x0066, 0x003f, 0x0022, 0x003d, 0x0081, 0x00ae,
+ 0x00db, 0x0104, 0x0132, 0x019e, 0x021f, 0x029a,
+ 0x034a, 0x0411, 0x0473, 0x0435, 0x03cb, 0x03b7,
+ 0x03b2, 0x0392, 0x0393, 0x0376, 0x033b, 0x0342,
+ 0x033a, 0x0316, 0x033b, 0x0334, 0x0310, 0x036c,
+ 0x037b, 0x02ce, 0x0272, 0x0243, 0x0195, 0x00fd,
+ 0x00ab, 0x0034, 0xffdb, 0xffba, 0xff9d, 0xff96,
+ 0xff9b, 0xffbd, 0x0008, 0x0019, 0x000c, 0x0066,
+ 0x00e9, 0x0122, 0x0115, 0x00ed, 0x00c9, 0x0083,
+ 0x000f, 0xffcf, 0xffee, 0x004c, 0x00c6, 0x0101,
+ 0x00f3, 0x00fd, 0x0127, 0x014c, 0x015d, 0x014a,
+ 0x014b, 0x018f, 0x01f0, 0x025f, 0x02be, 0x02f5,
+ 0x034a, 0x03b7, 0x040e, 0x0474, 0x0492, 0x0407,
+ 0x0354, 0x02b9, 0x0200, 0x0185, 0x0175, 0x014c,
+ 0x0111, 0x013f, 0x01bc, 0x022e, 0x0262, 0x0247,
+ 0x0230, 0x024e, 0x0232, 0x01dc, 0x01c4, 0x01a5,
+ 0x013f, 0x0133, 0x017c, 0x015d, 0x00f5, 0x00a5,
+ 0x0027, 0xffa0, 0xff90, 0xffbb, 0xffd6, 0x0006,
+ 0x0032, 0x0055, 0x00b3, 0x0110, 0x0139, 0x0166,
+ 0x018d, 0x01bc, 0x020d, 0x021b, 0x01f6, 0x020e,
+ 0x0218, 0x01ea, 0x01e1, 0x01f0, 0x020f, 0x025e,
+ 0x0288, 0x0288, 0x02b5, 0x02d2, 0x029c, 0x024a,
+ 0x01f5, 0x01a3, 0x017b, 0x017b, 0x017b, 0x014f,
+ 0x0106, 0x00fb, 0x0130, 0x0136, 0x0105, 0x00f0,
+ 0x00cd, 0x003c, 0xff7a, 0xff0c, 0xfef3, 0xfec9,
+ 0xfe9c, 0xfeba, 0xfeb5, 0xfe52, 0xfe44, 0xfe87,
+ 0xfe7b, 0xfe71, 0xfea1, 0xfea1, 0xfe9b, 0xfebb,
+ 0xfed9, 0xff34, 0xffb7, 0xffea, 0xffee, 0x0000,
+ 0x0021, 0x0041, 0x0023, 0xffcc, 0xff9f, 0xffa5,
+ 0xffa3, 0xff99, 0xff9a, 0xff8a, 0xff74, 0xffa3,
+ 0xfffb, 0x003c, 0x00c5, 0x0175, 0x01a5, 0x01a5,
+ 0x01be, 0x0179, 0x0114, 0x00ff, 0x00cb, 0x006a,
+ 0x0043, 0x0032, 0x0016, 0x002b, 0x0067, 0x0093,
+ 0x00c7, 0x0108, 0x0130, 0x0152, 0x013d, 0x00ba,
+ 0x0027, 0xff8c, 0xfed1, 0xfe92, 0xfeb1, 0xfed4,
+ 0xff79, 0x002d, 0x004d, 0x0077, 0x006d, 0xffc5,
+ 0xff59, 0xff2d, 0xfef6, 0xff34, 0xff59, 0xfef6,
+ 0xfec4, 0xfecc, 0xfeb0, 0xfe77, 0xfe30, 0xfe2a,
+ 0xfe7b, 0xff0f, 0x0011, 0x010f, 0x01a9, 0x0232,
+ 0x0274, 0x026a, 0x027c, 0x025d, 0x022c, 0x0241,
+ 0x01ff, 0x015b, 0x0102, 0x00d9, 0x00b1, 0x00a9,
+ 0x00b0, 0x00b7, 0x00b8, 0x00b7, 0x00ae, 0x0087,
+ 0x006d, 0x0052, 0xffd9, 0xff48, 0xff15, 0xff0c,
+ 0xfede, 0xfe90, 0xfe47, 0xfdeb, 0xfd7f, 0xfd7b,
+ 0xfde7, 0xfe44, 0xfe6f, 0xfe7f, 0xfea3, 0xfee3,
+ 0xfeeb, 0xfeff, 0xff7e, 0xffdd, 0xfffc, 0x000e,
+ 0xffbd, 0xff47, 0xff13, 0xfed3, 0xfea8, 0xfeac,
+ 0xfe8b, 0xfe88, 0xfec5, 0xfec2, 0xfe7a, 0xfe49,
+ 0xfe2c, 0xfde7, 0xfdad, 0xfddc, 0xfe33, 0xfea1,
+ 0xff5e, 0xffd4, 0xffea, 0x0036, 0x005b, 0x0032,
+ 0x001e, 0xffba, 0xff27, 0xfef4, 0xfeb2, 0xfe6b,
+ 0xfe7a, 0xfe57, 0xfdeb, 0xfdb5, 0xfdc2, 0xfde8,
+ 0xfdfb, 0xfdfa, 0xfdf5, 0xfdc6, 0xfdb4, 0xfe1f,
+ 0xfeba, 0xff39, 0xff93, 0xffdc, 0x0055, 0x00df,
+ 0x013d, 0x017f, 0x0184, 0x0161, 0x016a, 0x0164,
+ 0x0113, 0x0083, 0xffd4, 0xff67, 0xff58, 0xff72,
+ 0xffc0, 0x0010, 0x0040, 0x0092, 0x00dd, 0x0116,
+ 0x0198, 0x022e, 0x02a8, 0x034c, 0x03cd, 0x03bb,
+ 0x036d, 0x032e, 0x02c6, 0x026e, 0x029d, 0x02d4,
+ 0x02b2, 0x02a9, 0x026a, 0x019c, 0x00f7, 0x008e,
+ 0x001e, 0xffff, 0xfff6, 0xffe7, 0x0018, 0xfff3,
+ 0xff87, 0xff84, 0xff35, 0xfe77, 0xfe19, 0xfda0,
+ 0xfcf7, 0xfcf9, 0xfd4d, 0xfd64, 0xfd5c, 0xfd18,
+ 0xfcab, 0xfc58, 0xfc10, 0xfbfa, 0xfc38, 0xfca1,
+ 0xfd0d, 0xfd3f, 0xfd26, 0xfcf2, 0xfcc5, 0xfcd7,
+ 0xfd3c, 0xfdbe, 0xfe5a, 0xfee6, 0xff1c, 0xff30,
+ 0xff11, 0xfe78, 0xfdf1, 0xfdd9, 0xfdc9, 0xfdd6,
+ 0xfe22, 0xfe4e, 0xfe92, 0xff48, 0xffea, 0x0048,
+ 0x00ae, 0x00b9, 0x0031, 0xffb3, 0xff61, 0xff10,
+ 0xff19, 0xff75, 0xff82, 0xff40, 0xff2e, 0xff19,
+ 0xfeb6, 0xfe73, 0xfe7d, 0xfe69, 0xfe72, 0xfedb,
+ 0xff09, 0xff00, 0xff6c, 0x0000, 0x0050, 0x00b1,
+ 0x011e, 0x0151, 0x015b, 0x0131, 0x00d7, 0x008d,
+ 0x006f, 0x007e, 0x00a6, 0x00b2, 0x0096, 0x0083,
+ 0x00a5, 0x00f2, 0x012b, 0x013d, 0x0155, 0x0176,
+ 0x0182, 0x018e, 0x01be, 0x01fe, 0x0222, 0x0235,
+ 0x0264, 0x02b4, 0x0305, 0x0337, 0x0330, 0x02f9,
+ 0x02ae, 0x024b, 0x01cf, 0x014b, 0x00e0, 0x00ac,
+ 0x00a9, 0x00c4, 0x00e0, 0x00d1, 0x00a0, 0x0072,
+ 0x0045, 0x003c, 0x0065, 0x004f, 0xffd0, 0xff55,
+ 0xff11, 0xfee8, 0xfeca, 0xfea9, 0xfea6, 0xfec6,
+ 0xfe9d, 0xfe29, 0xfdc5, 0xfd4e, 0xfcc8, 0xfca5,
+ 0xfcdd, 0xfd30, 0xfd9d, 0xfde0, 0xfdda, 0xfdeb,
+ 0xfe1c, 0xfe2e, 0xfe2c, 0xfe19, 0xfe08, 0xfe20,
+ 0xfe20, 0xfde8, 0xfdd6, 0xfdde, 0xfda8, 0xfd6d,
+ 0xfd75, 0xfd90, 0xfd9d, 0xfdc4, 0xfe20, 0xfe7b,
+ 0xfeb9, 0xff1c, 0xff8a, 0xffb0, 0xffd0, 0xfff9,
+ 0xffd8, 0xffaa, 0xff9d, 0xff69, 0xff39, 0xff3c,
+ 0xff56, 0xff9e, 0xffd7, 0xffc5, 0xffca, 0xffdc,
+ 0xffb9, 0xffc7, 0x0019, 0x0060, 0x0091, 0x009e,
+ 0x0087, 0x0062, 0x0019, 0xfff8, 0x002b, 0x0058,
+ 0x007e, 0x00c5, 0x00d4, 0x00a4, 0x0084, 0x0077,
+ 0x007a, 0x0091, 0x00a8, 0x00aa, 0x009d, 0x00c0,
+ 0x012b, 0x0187, 0x01b4, 0x01e4, 0x0212, 0x020e,
+ 0x01cf, 0x0188, 0x017b, 0x01b2, 0x021d, 0x02a6,
+ 0x0317, 0x0359, 0x035f, 0x0303, 0x0265, 0x01e4,
+ 0x0192, 0x0158, 0x0164, 0x01d9, 0x0249, 0x024e,
+ 0x0235, 0x022b, 0x01e3, 0x0163, 0x00e0, 0x0065,
+ 0x000b, 0xffb9, 0xff52, 0xff0f, 0xfefe, 0xfeeb,
+ 0xfec9, 0xfeaa, 0xfe96, 0xfe81, 0xfe73, 0xfe9b,
+ 0xfeda, 0xff08, 0xff23, 0xfefd, 0xfebb, 0xfeb4,
+ 0xfe9a, 0xfe65, 0xfe7f, 0xfe8a, 0xfe32, 0xfdf2,
+ 0xfdf1, 0xfdf4, 0xfdf4, 0xfdf0, 0xfdf5, 0xfe0b,
+ 0xfe1e, 0xfe56, 0xfea8, 0xfece, 0xfed7, 0xfee3,
+ 0xfefd, 0xff54, 0xffb4, 0xffac, 0xff78, 0xff8b,
+ 0xffc8, 0xfff7, 0x001b, 0x0023, 0xfff4, 0xffa4,
+ 0xff4a, 0xff07, 0xff10, 0xff59, 0xffb4, 0x001f,
+ 0x009e, 0x0125, 0x0189, 0x01a3, 0x0199, 0x018b,
+ 0x0171, 0x0181, 0x01a9, 0x018b, 0x015c, 0x0156,
+ 0x0146, 0x0150, 0x01ac, 0x0215, 0x0264, 0x0293,
+ 0x028c, 0x0285, 0x029c, 0x0293, 0x025c, 0x023b,
+ 0x0252, 0x027a, 0x0294, 0x02ce, 0x0334, 0x0369,
+ 0x0349, 0x0310, 0x02da, 0x029c, 0x0240, 0x01d8,
+ 0x01b8, 0x01dc, 0x01eb, 0x01fb, 0x0210, 0x01c3,
+ 0x012b, 0x00c0, 0x0091, 0x007e, 0x0072, 0x0072,
+ 0x0099, 0x00bc, 0x00ab, 0x008d, 0x0074, 0x005d,
+ 0x0042, 0xfff9, 0xffab, 0xff9b, 0xffa9, 0xffd7,
+ 0x001d, 0x002d, 0x0025, 0x0014, 0xffb9, 0xff46,
+ 0xfede, 0xfe76, 0xfe62, 0xfeaf, 0xff0c, 0xff5a,
+ 0xff75, 0xff88, 0xffc6, 0xffcc, 0xffb7, 0xfff9,
+ 0x0029, 0x0026, 0x0077, 0x0101, 0x0146, 0x0141,
+ 0x0148, 0x016c, 0x0153, 0x0110, 0x00ed, 0x00ba,
+ 0x00a4, 0x00f0, 0x0118, 0x0109, 0x0108, 0x00c9,
+ 0x0066, 0x003d, 0x0038, 0x0065, 0x00a7, 0x00cb,
+ 0x010f, 0x013b, 0x00ec, 0x008d, 0x0044, 0xffe5,
+ 0xffba, 0xfff2, 0x006b, 0x00fe, 0x016d, 0x01b5,
+ 0x01d0, 0x01a2, 0x0178, 0x0167, 0x0125, 0x00fd,
+ 0x012d, 0x014c, 0x015f, 0x01be, 0x0236, 0x028d,
+ 0x02f1, 0x0346, 0x033e, 0x030f, 0x030b, 0x0305,
+ 0x02d5, 0x0294, 0x0257, 0x024b, 0x026f, 0x026e,
+ 0x0259, 0x026b, 0x0267, 0x0239, 0x022e, 0x0247,
+ 0x0263, 0x0296, 0x02d7, 0x02fa, 0x0304, 0x031b,
+ 0x0355, 0x03a7, 0x03e9, 0x0403, 0x03f8, 0x03bb,
+ 0x034d, 0x02c7, 0x024f, 0x0213, 0x020e, 0x01fc,
+ 0x01d0, 0x01aa, 0x0178, 0x014d, 0x0134, 0x0106,
+ 0x00d6, 0x00ba, 0x0093, 0x0091, 0x00c7, 0x00e5,
+ 0x00db, 0x00b7, 0x0076, 0x0033, 0xffdd, 0xff80,
+ 0xff6b, 0xff70, 0xff65, 0xff8d, 0xffba, 0xffac,
+ 0xff95, 0xff93, 0xffaf, 0xffdd, 0xffdd, 0xffc7,
+ 0xffd0, 0xffc0, 0xff90, 0xff82, 0xff8e, 0xff94,
+ 0xff99, 0xff95, 0xff7c, 0xff6c, 0xff8a, 0xffae,
+ 0xffc4, 0x000d, 0x006c, 0x008d, 0x00a6, 0x00c6,
+ 0x009e, 0x0078, 0x00c8, 0x0144, 0x0192, 0x01ce,
+ 0x0202, 0x01fe, 0x01c0, 0x016b, 0x011d, 0x00ff,
+ 0x0125, 0x0167, 0x01c4, 0x0237, 0x0282, 0x02b8,
+ 0x02f7, 0x0319, 0x0328, 0x031d, 0x02cc, 0x028e,
+ 0x0296, 0x029f, 0x02c2, 0x0302, 0x02f8, 0x02af,
+ 0x0254, 0x01d5, 0x015b, 0x0108, 0x00cf, 0x00cc,
+ 0x00f9, 0x0127, 0x014e, 0x016f, 0x01a6, 0x020f,
+ 0x0288, 0x02f7, 0x033a, 0x0333, 0x032c, 0x033c,
+ 0x0326, 0x0315, 0x032e, 0x032a, 0x030c, 0x02f4,
+ 0x02bb, 0x026a, 0x0238, 0x0222, 0x020d, 0x01f9,
+ 0x01e0, 0x01a1, 0x014f, 0x012c, 0x012b, 0x0117,
+ 0x010b, 0x0117, 0x011b, 0x0111, 0x0107, 0x010a,
+ 0x0103, 0x00c7, 0x0087, 0x0069, 0x0025, 0xffba,
+ 0xff67, 0xff1e, 0xfec7, 0xfe6d, 0xfe28, 0xfe2e,
+ 0xfe6b, 0xfeaa, 0xff01, 0xff66, 0xff91, 0xff82,
+ 0xff62, 0xff46, 0xff3c, 0xff55, 0xffa2, 0x0010,
+ 0x0080, 0x00df, 0x0117, 0x0115, 0x00d4, 0x005a,
+ 0xffe5, 0xffb2, 0xffb2, 0xffce, 0xfffe, 0x0030,
+ 0x0054, 0x005d, 0x0073, 0x00c3, 0x00f7, 0x00de,
+ 0x00d4, 0x00fd, 0x012a, 0x0161, 0x01b3, 0x01f7,
+ 0x01ea, 0x018d, 0x013b, 0x0120, 0x0119, 0x0113,
+ 0x011f, 0x017a, 0x0228, 0x02a9, 0x02ba, 0x028e,
+ 0x0246, 0x01f8, 0x01bf, 0x018d, 0x016a, 0x0169,
+ 0x0164, 0x012c, 0x00d5, 0x00ac, 0x00ac, 0x0089,
+ 0x0048, 0x0001, 0xffb3, 0xffa0, 0xffef, 0x005c,
+ 0x00bf, 0x00f6, 0x00f3, 0x00cb, 0x007b, 0x0036,
+ 0x004b, 0x007e, 0x0091, 0x00a9, 0x00d1, 0x0107,
+ 0x013f, 0x016b, 0x0196, 0x019a, 0x0173, 0x0179,
+ 0x0198, 0x01af, 0x01ea, 0x0210, 0x0201, 0x0205,
+ 0x01f3, 0x0199, 0x0129, 0x00a4, 0x0030, 0x0016,
+ 0x0029, 0x0050, 0x00a7, 0x00fc, 0x0128, 0x0135,
+ 0x0130, 0x0148, 0x016c, 0x0150, 0x010f, 0x00e1,
+ 0x00ad, 0x0073, 0x0056, 0x004b, 0x004d, 0x0079,
+ 0x00ad, 0x00ba, 0x00b6, 0x00a5, 0x006c, 0x001c,
+ 0xffc7, 0xff5e, 0xff0c, 0xfedb, 0xfe9d, 0xfe7e,
+ 0xfeb3, 0xff04, 0xff49, 0xff85, 0xff99, 0xff68,
+ 0xff17, 0xfeec, 0xff14, 0xff7c, 0xffe5, 0x000a,
+ 0xffb5, 0xfef9, 0xfe3d, 0xfdc9, 0xfda4, 0xfddc,
+ 0xfe6b, 0xff13, 0xffa0, 0xffec, 0xffd6, 0xff84,
+ 0xff3a, 0xff06, 0xff09, 0xff4d, 0xff92, 0xffd7,
+ 0x0043, 0x00af, 0x0113, 0x0188, 0x01b5, 0x016e,
+ 0x0120, 0x00e9, 0x0095, 0x0050, 0x004f, 0x0069,
+ 0x0077, 0x007e, 0x008c, 0x00b7, 0x010d, 0x0173,
+ 0x01c9, 0x0219, 0x0267, 0x0298, 0x0299, 0x0265,
+ 0x0211, 0x01db, 0x01cd, 0x01b4, 0x01ac, 0x01e1,
+ 0x0213, 0x0235, 0x0279, 0x02a8, 0x0288, 0x0262,
+ 0x025d, 0x022d, 0x01b7, 0x0145, 0x011b, 0x011d,
+ 0x012f, 0x0169, 0x01b0, 0x01c6, 0x01bf, 0x01a6,
+ 0x016c, 0x0155, 0x0176, 0x0184, 0x0176, 0x0167,
+ 0x0141, 0x0131, 0x0158, 0x017c, 0x01a6, 0x01d8,
+ 0x01b7, 0x015e, 0x0115, 0x00af, 0x0038, 0xfff8,
+ 0xffd0, 0xffbb, 0xffce, 0xffcc, 0xffb3, 0xffb2,
+ 0xffa6, 0xff5d, 0xfef4, 0xfeac, 0xfe8d, 0xfe65,
+ 0xfe56, 0xfe9d, 0xfef7, 0xff2d, 0xff55, 0xff36,
+ 0xfebd, 0xfe42, 0xfdf1, 0xfdd3, 0xfde5, 0xfe00,
+ 0xfe0d, 0xfe05, 0xfdeb, 0xfded, 0xfdd9, 0xfd6e,
+ 0xfd09, 0xfce7, 0xfccb, 0xfcae, 0xfcb9, 0xfcfd,
+ 0xfd7a, 0xfe01, 0xfe5c, 0xfe7c, 0xfe74, 0xfe59,
+ 0xfe20, 0xfdd7, 0xfdc8, 0xfe04, 0xfe65, 0xfef5,
+ 0xff8f, 0xfffa, 0x0051, 0x008f, 0x0088, 0x0077,
+ 0x00b3, 0x0132, 0x01b2, 0x0219, 0x0281, 0x02d5,
+ 0x02e6, 0x02cb, 0x0296, 0x0242, 0x0202, 0x01ec,
+ 0x01f3, 0x0237, 0x02a8, 0x0309, 0x036a, 0x03cd,
+ 0x03f0, 0x03c5, 0x038c, 0x036b, 0x035b, 0x0369,
+ 0x038d, 0x0388, 0x0340, 0x02d6, 0x024c, 0x01a0,
+ 0x00fc, 0x0085, 0x0057, 0x0076, 0x00cb, 0x0139,
+ 0x0180, 0x0175, 0x0138, 0x00d6, 0x005d, 0xfff8,
+ 0xffa4, 0xff82, 0xffcb, 0x0037, 0x0077, 0x009e,
+ 0x00ac, 0x007e, 0x0025, 0xffc3, 0xff65, 0xff18,
+ 0xfef8, 0xff03, 0xff02, 0xfee8, 0xfec2, 0xfe84,
+ 0xfe61, 0xfe82, 0xfeb5, 0xfefb, 0xff59, 0xff8e,
+ 0xff96, 0xff7f, 0xff3e, 0xff00, 0xfebe, 0xfe67,
+ 0xfe49, 0xfe65, 0xfe82, 0xfe9e, 0xfe91, 0xfe57,
+ 0xfe35, 0xfe10, 0xfdde, 0xfdd7, 0xfde0, 0xfde8,
+ 0xfe19, 0xfe56, 0xfe84, 0xfeb3, 0xfee0, 0xff0f,
+ 0xff2a, 0xff2c, 0xff44, 0xff6e, 0xff87, 0xffa3,
+ 0xffcd, 0xfff7, 0xfffa, 0xffbb, 0xff90, 0xffa7,
+ 0xffb2, 0xffd6, 0x0053, 0x00ca, 0x010f, 0x0163,
+ 0x01b4, 0x01f1, 0x022e, 0x0255, 0x0271, 0x028d,
+ 0x027a, 0x024b, 0x0231, 0x0211, 0x01dc, 0x019c,
+ 0x0145, 0x00e8, 0x00a2, 0x009d, 0x0107, 0x01ad,
+ 0x0244, 0x02ca, 0x0314, 0x0304, 0x02de, 0x028c,
+ 0x01f5, 0x0183, 0x0144, 0x00fa, 0x00dc, 0x00ec,
+ 0x00ce, 0x0093, 0x006e, 0x004c, 0x0030, 0x001f,
+ 0x0005, 0xffe4, 0xffd1, 0xffec, 0x002e, 0x006a,
+ 0x009a, 0x00d0, 0x00fc, 0x011b, 0x0132, 0x013c,
+ 0x0148, 0x015e, 0x016b, 0x0159, 0x011f, 0x00cc,
+ 0x006a, 0xffeb, 0xff83, 0xff6b, 0xff6d, 0xff6b,
+ 0xff88, 0xff9a, 0xff79, 0xff49, 0xfeff, 0xfe9a,
+ 0xfe6a, 0xfe6c, 0xfe62, 0xfe67, 0xfe96, 0xfed0,
+ 0xff06, 0xff3f, 0xff64, 0xff4e, 0xfef2, 0xfe7d,
+ 0xfe2d, 0xfe28, 0xfe71, 0xfedf, 0xff62, 0x0004,
+ 0x0097, 0x00f6, 0x0128, 0x011e, 0x00f2, 0x00d1,
+ 0x00a2, 0x006c, 0x0057, 0x0068, 0x00b0, 0x0116,
+ 0x014d, 0x017b, 0x01aa, 0x0181, 0x0129, 0x0104,
+ 0x00f9, 0x0111, 0x016c, 0x01db, 0x0254, 0x02e0,
+ 0x0326, 0x02f9, 0x02bd, 0x02ad, 0x028b, 0x0259,
+ 0x025b, 0x0257, 0x01e0, 0x0116, 0x003b, 0xff4c,
+ 0xfe67, 0xfddb, 0xfdb8, 0xfdc4, 0xfdda, 0xfdf4,
+ 0xfdf0, 0xfdbd, 0xfd85, 0xfd51, 0xfd1d, 0xfd07,
+ 0xfd22, 0xfd67, 0xfd8d, 0xfd3c, 0xfcbd, 0xfc86,
+ 0xfc9b, 0xfd21, 0xfe3f, 0xff87, 0x009e, 0x0159,
+ 0x015f, 0x00c4, 0x0004, 0xff4d, 0xfed0, 0xfef4,
+ 0xffda, 0x014e, 0x030d, 0x04aa, 0x059e, 0x05a3,
+ 0x04e4, 0x03ba, 0x0295, 0x01db, 0x01a4, 0x01e2,
+ 0x0273, 0x02f1, 0x02fc, 0x0291, 0x01c8, 0x00e5,
+ 0x0037, 0xffc9, 0xffb2, 0x000a, 0x008c, 0x010c,
+ 0x0197, 0x01df, 0x01a0, 0x0127, 0x00be, 0x006b,
+ 0x0047, 0x005b, 0x0092, 0x00c5, 0x00cf, 0x009b,
+ 0x0026, 0xff93, 0xff2d, 0xff0e, 0xff29, 0xffa7,
+ 0x006c, 0x00f6, 0x0120, 0x010e, 0x00a9, 0x000a,
+ 0xff7b, 0xff27, 0xff34, 0xff8e, 0xfff3, 0x005c,
+ 0x0097, 0x0059, 0xfff0, 0xffc0, 0xffd9, 0x0040,
+ 0x00d7, 0x0181, 0x0247, 0x02e7, 0x032a, 0x032a,
+ 0x0307, 0x02f8, 0x0317, 0x033a, 0x0368, 0x03ac,
+ 0x03e6, 0x042d, 0x046a, 0x0461, 0x0426, 0x03b3,
+ 0x0317, 0x02ce, 0x02e7, 0x031f, 0x0381, 0x03e6,
+ 0x0406, 0x03d0, 0x0344, 0x02a5, 0x023a, 0x01e4,
+ 0x018a, 0x0140, 0x00f9, 0x00bc, 0x00a9, 0x00c6,
+ 0x0103, 0x0162, 0x01f9, 0x028a, 0x029b, 0x0246,
+ 0x01f3, 0x0194, 0x0107, 0x0079, 0x0014, 0xffda,
+ 0xffc0, 0xffce, 0xffeb, 0xffb9, 0xff2a, 0xfe99,
+ 0xfe4a, 0xfe48, 0xfe7e, 0xfed6, 0xff2e, 0xff23,
+ 0xfec1, 0xfe9d, 0xfe9d, 0xfe69, 0xfe58, 0xfe75,
+ 0xfe6d, 0xfe72, 0xfe87, 0xfe63, 0xfe3d, 0xfe55,
+ 0xfeb6, 0xff7c, 0x007a, 0x0146, 0x01a9, 0x018b,
+ 0x0103, 0x003d, 0xff49, 0xfe74, 0xfe24, 0xfe45,
+ 0xfea3, 0xff1b, 0xff4d, 0xff10, 0xfe95, 0xfdfb,
+ 0xfd70, 0xfd11, 0xfcbd, 0xfc89, 0xfc7f, 0xfc56,
+ 0xfc2b, 0xfc49, 0xfc70, 0xfc8f, 0xfcd9, 0xfd13,
+ 0xfd12, 0xfcf0, 0xfca3, 0xfc3b, 0xfbc3, 0xfb48,
+ 0xfb2e, 0xfb95, 0xfc3d, 0xfd34, 0xfe65, 0xff54,
+ 0xffc6, 0xffba, 0xff40, 0xfe9a, 0xfe03, 0xfdbc,
+ 0xfe02, 0xfec8, 0xffc0, 0x0092, 0x0117, 0x0158,
+ 0x013c, 0x00de, 0x00ad, 0x00af, 0x00a1, 0x0082,
+ 0x004e, 0x0005, 0xffaa, 0xfefd, 0xfe21, 0xfd9c,
+ 0xfd7a, 0xfd73, 0xfd7b, 0xfd97, 0xfdc3, 0xfdf3,
+ 0xfe33, 0xfe92, 0xfed6, 0xfedc, 0xfef8, 0xff4d,
+ 0xff9c, 0xffda, 0x0009, 0xfff4, 0xff98, 0xff40,
+ 0xfeef, 0xfe88, 0xfe43, 0xfe51, 0xfe86, 0xfec8,
+ 0xff11, 0xff41, 0xff5a, 0xff73, 0xff7b, 0xff62,
+ 0xff44, 0xff35, 0xff31, 0xff45, 0xff78, 0xffb1,
+ 0xffdd, 0xfff4, 0xffd1, 0xff70, 0xff0b, 0xfebe,
+ 0xfe8a, 0xfe88, 0xfec3, 0xff27, 0xff7a, 0xff87,
+ 0xff67, 0xff46, 0xff26, 0xff27, 0xff59, 0xff95,
+ 0xffd5, 0x001d, 0x0031, 0xffe9, 0xff67, 0xfee7,
+ 0xfe9c, 0xfe9f, 0xfed6, 0xff19, 0xff5b, 0xff82,
+ 0xff5a, 0xfef8, 0xfe9f, 0xfe50, 0xfdf2, 0xfd95,
+ 0xfd52, 0xfd37, 0xfd46, 0xfd8c, 0xfe06, 0xfe71,
+ 0xfea2, 0xfeae, 0xfe93, 0xfe78, 0xfe9a, 0xfed2,
+ 0xfef8, 0xff10, 0xff15, 0xff20, 0xff0e, 0xfea0,
+ 0xfe33, 0xfe00, 0xfdbb, 0xfd76, 0xfd4e, 0xfd16,
+ 0xfcf5, 0xfd13, 0xfd47, 0xfd84, 0xfddb, 0xfe5f,
+ 0xfef2, 0xff3c, 0xff3d, 0xff2d, 0xfefd, 0xfeb4,
+ 0xfe7d, 0xfe6f, 0xfeab, 0xff1f, 0xffac, 0x006d,
+ 0x0154, 0x021c, 0x02bf, 0x033a, 0x038b, 0x03b4,
+ 0x039d, 0x035e, 0x0335, 0x031f, 0x031c, 0x035e,
+ 0x03dc, 0x0451, 0x04a1, 0x04d1, 0x04d4, 0x04ad,
+ 0x0472, 0x041c, 0x03bd, 0x037f, 0x0350, 0x0306,
+ 0x02b2, 0x0268, 0x0229, 0x0200, 0x01f6, 0x0205,
+ 0x01f7, 0x01a7, 0x0143, 0x00e2, 0x0068, 0xfff9,
+ 0xffc9, 0xffc8, 0xffd0, 0xffde, 0xffe4, 0xffbe,
+ 0xff70, 0xff19, 0xfeb5, 0xfe49, 0xfdeb, 0xfd87,
+ 0xfd0f, 0xfc95, 0xfc34, 0xfc13, 0xfc23, 0xfc3a,
+ 0xfc7a, 0xfcef, 0xfd58, 0xfd8e, 0xfd89, 0xfd65,
+ 0xfd3f, 0xfd10, 0xfd12, 0xfd69, 0xfdb3, 0xfddb,
+ 0xfe2a, 0xfe9a, 0xff02, 0xff41, 0xff3a, 0xfef9,
+ 0xfe89, 0xfe2b, 0xfe3d, 0xfe86, 0xfec7, 0xff1c,
+ 0xff46, 0xff31, 0xff33, 0xff2a, 0xff04, 0xff1f,
+ 0xff54, 0xff66, 0xff88, 0xffba, 0xffe6, 0x0022,
+ 0x004e, 0x0042, 0x0027, 0x0023, 0x002d, 0x003d,
+ 0x0069, 0x00cc, 0x014c, 0x01ba, 0x020f, 0x025b,
+ 0x0288, 0x0282, 0x0273, 0x02a1, 0x0357, 0x048b,
+ 0x0596, 0x0608, 0x0619, 0x05bb, 0x04a6, 0x0349,
+ 0x024f, 0x01dc, 0x01dc, 0x026c, 0x0390, 0x04c1,
+ 0x0572, 0x0590, 0x0525, 0x0441, 0x032c, 0x01ef,
+ 0x007c, 0xff46, 0xfea7, 0xfe74, 0xfe7b, 0xfeb8,
+ 0xff04, 0xff19, 0xff0c, 0xff36, 0xff7e, 0xffb6,
+ 0x0000, 0x001f, 0xffde, 0xff98, 0xff4b, 0xfeb0,
+ 0xfe1f, 0xfdcf, 0xfdae, 0xfdf7, 0xfe89, 0xfee9,
+ 0xff0a, 0xfefd, 0xfec2, 0xfe89, 0xfe4f, 0xfdf7,
+ 0xfdc3, 0xfdd6, 0xfe0c, 0xfe5e, 0xfec6, 0xff4b,
+ 0x0015, 0x00f8, 0x01a4, 0x0223, 0x0258, 0x01fa,
+ 0x0158, 0x00e2, 0x0096, 0x0065, 0x004b, 0x003f,
+ 0x0050, 0x007a, 0x0099, 0x0096, 0x0067, 0x0021,
+ 0xffd2, 0xff6b, 0xff0b, 0xfec0, 0xfe5f, 0xfe05,
+ 0xfdef, 0xfe11, 0xfe51, 0xfe98, 0xfed6, 0xff16,
+ 0xff48, 0xff57, 0xff52, 0xff34, 0xfefe, 0xfeb5,
+ 0xfe66, 0xfe5e, 0xfeab, 0xfefc, 0xff61, 0xffee,
+ 0x004e, 0x0070, 0x0077, 0x0069, 0x007a, 0x00cd,
+ 0x0136, 0x01a7, 0x0213, 0x0260, 0x028a, 0x028d,
+ 0x027f, 0x0296, 0x02e4, 0x037a, 0x0437, 0x0492,
+ 0x045a, 0x03dd, 0x035a, 0x0305, 0x030b, 0x0341,
+ 0x0366, 0x0375, 0x0380, 0x03a3, 0x03dc, 0x03e6,
+ 0x0393, 0x0319, 0x02b6, 0x0253, 0x01d6, 0x0163,
+ 0x0142, 0x0192, 0x0217, 0x028c, 0x02e2, 0x0302,
+ 0x02e7, 0x02d0, 0x02be, 0x0284, 0x0253, 0x0245,
+ 0x0227, 0x0200, 0x01e2, 0x01a5, 0x015a, 0x0135,
+ 0x0121, 0x0105, 0x0107, 0x0140, 0x0192, 0x01e1,
+ 0x022f, 0x025e, 0x0244, 0x01ff, 0x01ac, 0x0124,
+ 0x0076, 0xffec, 0xff97, 0xff79, 0xffb4, 0x000d,
+ 0x0018, 0xffcb, 0xff47, 0xfe98, 0xfdf2, 0xfd83,
+ 0xfd4f, 0xfd5b, 0xfd97, 0xfde1, 0xfe3b, 0xfe93,
+ 0xfec3, 0xfeb8, 0xfe60, 0xfddd, 0xfd72, 0xfd0f,
+ 0xfcad, 0xfc95, 0xfccb, 0xfd15, 0xfd55, 0xfd6c,
+ 0xfd54, 0xfd4a, 0xfd80, 0xfddd, 0xfe44, 0xfeae,
+ 0xfef6, 0xff0f, 0xff18, 0xff20, 0xff3e, 0xff7b,
+ 0xffa0, 0xffac, 0xffcf, 0xffe7, 0xffff, 0x0066,
+ 0x0100, 0x019f, 0x024d, 0x02e4, 0x0337, 0x034f,
+ 0x035e, 0x03a0, 0x03fd, 0x0449, 0x0495, 0x04cc,
+ 0x04d8, 0x04d5, 0x04b1, 0x047c, 0x0462, 0x0442,
+ 0x042a, 0x043f, 0x0455, 0x0469, 0x0490, 0x04b1,
+ 0x04eb, 0x0544, 0x058f, 0x05e3, 0x0620, 0x060a,
+ 0x05d9, 0x0592, 0x04f8, 0x044b, 0x03c9, 0x0350,
+ 0x02f0, 0x02ce, 0x02c3, 0x02b1, 0x02a4, 0x02ae,
+ 0x02b7, 0x0298, 0x0260, 0x0235, 0x021e, 0x0227,
+ 0x0253, 0x0267, 0x0252, 0x0237, 0x0205, 0x01b0,
+ 0x0149, 0x00ad, 0xffe8, 0xff57, 0xff1e, 0xff1b,
+ 0xff1c, 0xfefb, 0xfed3, 0xfec4, 0xfec8, 0xfee8,
+ 0xff07, 0xff0d, 0xff24, 0xff40, 0xff44, 0xff5f,
+ 0xff93, 0xffd0, 0x0029, 0x0075, 0x0096, 0x00ac,
+ 0x00a7, 0x0096, 0x00bc, 0x010d, 0x016f, 0x01e1,
+ 0x023f, 0x024e, 0x0207, 0x01b3, 0x017c, 0x0138,
+ 0x0113, 0x0175, 0x024c, 0x0352, 0x0434, 0x04a0,
+ 0x0495, 0x0427, 0x037b, 0x02f8, 0x02b4, 0x0274,
+ 0x022f, 0x01cd, 0x014d, 0x00f9, 0x00d3, 0x00cc,
+ 0x0114, 0x018c, 0x01e7, 0x0218, 0x020f, 0x01cf,
+ 0x017a, 0x0104, 0x0046, 0xff53, 0xfe59, 0xfd8c,
+ 0xfd1b, 0xfd02, 0xfd29, 0xfd89, 0xfdf0, 0xfe23,
+ 0xfe19, 0xfdc8, 0xfd58, 0xfd3a, 0xfd73, 0xfdbb,
+ 0xfe05, 0xfe28, 0xfe1e, 0xfe24, 0xfe1e, 0xfddf,
+ 0xfd95, 0xfd52, 0xfd28, 0xfd45, 0xfd8a, 0xfdd6,
+ 0xfe31, 0xfe74, 0xfe91, 0xfeb5, 0xfefb, 0xff51,
+ 0xff97, 0xffca, 0xffdf, 0xffc5, 0xff9c, 0xff8f,
+ 0xff95, 0xffac, 0xffe7, 0x0038, 0x006f, 0x0072,
+ 0x007f, 0x00c1, 0x0100, 0x0128, 0x0156, 0x0185,
+ 0x01b1, 0x01d0, 0x01be, 0x0186, 0x0157, 0x0143,
+ 0x013a, 0x0129, 0x0128, 0x014d, 0x0190, 0x01f7,
+ 0x024d, 0x0246, 0x0210, 0x01f3, 0x01f0, 0x0207,
+ 0x0249, 0x02ad, 0x0309, 0x0341, 0x035e, 0x0331,
+ 0x029f, 0x01fb, 0x0155, 0x00ac, 0x0075, 0x00b7,
+ 0x0120, 0x01b6, 0x024a, 0x02a1, 0x02e3, 0x0310,
+ 0x0315, 0x0306, 0x02ea, 0x02e1, 0x0305, 0x0330,
+ 0x0366, 0x03a9, 0x03c5, 0x03ba, 0x03af, 0x03ab,
+ 0x03a4, 0x037c, 0x031a, 0x0282, 0x01cd, 0x013f,
+ 0x010f, 0x0138, 0x0198, 0x0214, 0x0294, 0x02fd,
+ 0x0326, 0x02ee, 0x0275, 0x0217, 0x020b, 0x023a,
+ 0x02a0, 0x0325, 0x037f, 0x03b2, 0x03be, 0x0359,
+ 0x02a7, 0x0203, 0x018d, 0x017f, 0x01cf, 0x01ff,
+ 0x01eb, 0x01bf, 0x0194, 0x0195, 0x01c8, 0x01f9,
+ 0x0203, 0x01f1, 0x01e1, 0x01b6, 0x0167, 0x0133,
+ 0x0101, 0x009a, 0x003b, 0xfff7, 0xffae, 0xffb3,
+ 0x0045, 0x013b, 0x0244, 0x030e, 0x0353, 0x02fa,
+ 0x022d, 0x0161, 0x00d8, 0x0090, 0x0085, 0x0097,
+ 0x00c9, 0x0133, 0x018f, 0x0197, 0x0173, 0x0147,
+ 0x00e2, 0x001d, 0xff36, 0xfe80, 0xfe08, 0xfddb,
+ 0xfdfb, 0xfe1f, 0xfe28, 0xfdf9, 0xfd51, 0xfc77,
+ 0xfbbe, 0xfae1, 0xf9d8, 0xf8fb, 0xf849, 0xf795,
+ 0xf6d6, 0xf62f, 0xf5cd, 0xf59e, 0xf57c, 0xf57d,
+ 0xf5b5, 0xf5f1, 0xf601, 0xf60d, 0xf642, 0xf699,
+ 0xf716, 0xf7a8, 0xf81a, 0xf885, 0xf8f1, 0xf924,
+ 0xf958, 0xf9c7, 0xfa37, 0xfa9f, 0xfaed, 0xfb03,
+ 0xfb43, 0xfbd1, 0xfc4d, 0xfcf8, 0xfe71, 0x008d,
+ 0x0297, 0x041a, 0x0511, 0x0577, 0x0546, 0x04d3,
+ 0x045c, 0x03df, 0x03b0, 0x0421, 0x0515, 0x066b,
+ 0x07ee, 0x091f, 0x09be, 0x09fa, 0x09e2, 0x095a,
+ 0x087e, 0x07a6, 0x06fc, 0x0655, 0x0596, 0x04e6,
+ 0x044a, 0x03b3, 0x035c, 0x037d, 0x03e4, 0x0455,
+ 0x04a2, 0x0486, 0x03e0, 0x02c5, 0x017a, 0x0068,
+ 0xffc8, 0xff82, 0xff95, 0xffe4, 0x0015, 0xffe8,
+ 0xff6c, 0xfef0, 0xfe9c, 0xfe48, 0xfdf3, 0xfdd9,
+ 0xfdfb, 0xfe25, 0xfe34, 0xfe0d, 0xfda5, 0xfd20,
+ 0xfcbb, 0xfc8f, 0xfc92, 0xfcd6, 0xfd51, 0xfdaa,
+ 0xfda9, 0xfd67, 0xfd0a, 0xfca7, 0xfc48, 0xfbf6,
+ 0xfbd5, 0xfbe0, 0xfbf0, 0xfbf3, 0xfbe8, 0xfbe7,
+ 0xfbf9, 0xfbf1, 0xfbc6, 0xfb7c, 0xfb10, 0xfad6,
+ 0xfafc, 0xfb2b, 0xfb43, 0xfb66, 0xfb7e, 0xfb85,
+ 0xfb8a, 0xfb7b, 0xfb61, 0xfb5a, 0xfb70, 0xfbae,
+ 0xfbf6, 0xfc2e, 0xfc7d, 0xfcd5, 0xfcea, 0xfcb8,
+ 0xfc86, 0xfc87, 0xfcb1, 0xfcdb, 0xfcf2, 0xfd0d,
+ 0xfd39, 0xfd3e, 0xfcfe, 0xfca3, 0xfc3f, 0xfbba,
+ 0xfb55, 0xfb33, 0xfb0b, 0xfae0, 0xfae3, 0xfaf6,
+ 0xfb21, 0xfb68, 0xfb9d, 0xfc0c, 0xfce8, 0xfda0,
+ 0xfdea, 0xfe06, 0xfdf4, 0xfdb8, 0xfd91, 0xfd99,
+ 0xfdd0, 0xfe35, 0xfeba, 0xff4e, 0xffc6, 0xfffd,
+ 0x0003, 0xffe0, 0xff99, 0xff6f, 0xff89, 0xffca,
+ 0x0020, 0x0093, 0x010c, 0x0164, 0x019d, 0x01db,
+ 0x0224, 0x0275, 0x02d2, 0x0332, 0x037c, 0x03aa,
+ 0x03c2, 0x03d7, 0x03fb, 0x0428, 0x0453, 0x0494,
+ 0x04f4, 0x054a, 0x0582, 0x0596, 0x0587, 0x0596,
+ 0x05ed, 0x0651, 0x06ad, 0x0717, 0x076a, 0x0787,
+ 0x076d, 0x072b, 0x06ed, 0x06cf, 0x06e5, 0x073d,
+ 0x078c, 0x07b0, 0x07d5, 0x07c4, 0x0767, 0x0715,
+ 0x06da, 0x06a3, 0x067b, 0x0621, 0x0584, 0x0507,
+ 0x04c2, 0x0474, 0x0402, 0x03a3, 0x0385, 0x037f,
+ 0x0366, 0x034e, 0x0331, 0x02ef, 0x027b, 0x01f4,
+ 0x0186, 0x0115, 0x009b, 0x005e, 0x0062, 0x006f,
+ 0x006a, 0x0032, 0xffc9, 0xff49, 0xfebc, 0xfe44,
+ 0xfde4, 0xfd90, 0xfd8a, 0xfdc2, 0xfde9, 0xfe1d,
+ 0xfe3f, 0xfdf4, 0xfd70, 0xfce0, 0xfc39, 0xfbcc,
+ 0xfbdd, 0xfc4b, 0xfcc8, 0xfd1b, 0xfd5d, 0xfd9c,
+ 0xfdbb, 0xfde9, 0xfe42, 0xfe83, 0xfe87, 0xfe60,
+ 0xfe30, 0xfe25, 0xfe48, 0xfe9f, 0xff32, 0xffd4,
+ 0x0050, 0x0094, 0x0092, 0x005a, 0x0018, 0x0000,
+ 0x0040, 0x00f7, 0x0223, 0x0395, 0x0508, 0x0648,
+ 0x0710, 0x0725, 0x06a6, 0x05b6, 0x0465, 0x0315,
+ 0x0241, 0x022b, 0x02e5, 0x043c, 0x05d2, 0x074f,
+ 0x0836, 0x0836, 0x0785, 0x0664, 0x04f5, 0x039e,
+ 0x02ac, 0x01e9, 0x012f, 0x0097, 0x000f, 0xff9c,
+ 0xff5e, 0xff52, 0xff80, 0xffd5, 0xffe8, 0xff94,
+ 0xff09, 0xfe58, 0xfd89, 0xfcb6, 0xfc25, 0xfc0b,
+ 0xfc1f, 0xfc27, 0xfc2b, 0xfbe1, 0xfb28, 0xfa47,
+ 0xf952, 0xf865, 0xf7c8, 0xf77f, 0xf784, 0xf7c5,
+ 0xf7ff, 0xf80d, 0xf7df, 0xf78b, 0xf73e, 0xf6cd,
+ 0xf659, 0xf656, 0xf689, 0xf6b1, 0xf6f4, 0xf705,
+ 0xf6ab, 0xf63f, 0xf5d7, 0xf587, 0xf5b4, 0xf66a,
+ 0xf756, 0xf82a, 0xf8b3, 0xf8d7, 0xf89a, 0xf830,
+ 0xf7e4, 0xf7b5, 0xf798, 0xf7d2, 0xf867, 0xf8ed,
+ 0xf938, 0xf960, 0xf94c, 0xf8ef, 0xf89d, 0xf8a4,
+ 0xf91d, 0xfa03, 0xfb30, 0xfc81, 0xfdba, 0xfe7f,
+ 0xfed4, 0xfee2, 0xfeae, 0xfeae, 0xff34, 0xffd4,
+ 0x0063, 0x0109, 0x017a, 0x019a, 0x01b0, 0x01ce,
+ 0x01e8, 0x01fe, 0x0212, 0x0229, 0x0248, 0x027f,
+ 0x02c7, 0x02f6, 0x0318, 0x0340, 0x0367, 0x03bd,
+ 0x0455, 0x04e5, 0x0539, 0x054a, 0x0534, 0x0517,
+ 0x04d9, 0x0496, 0x0495, 0x04ba, 0x04db, 0x04f8,
+ 0x0508, 0x050c, 0x04e8, 0x0479, 0x040f, 0x03e7,
+ 0x03c8, 0x038e, 0x034f, 0x0323, 0x031a, 0x0319,
+ 0x030c, 0x0301, 0x0313, 0x0357, 0x03ad, 0x03e9,
+ 0x0416, 0x042b, 0x0410, 0x03dd, 0x037c, 0x02dd,
+ 0x0255, 0x0212, 0x01ed, 0x01d1, 0x01b8, 0x0199,
+ 0x015b, 0x00e3, 0x005d, 0xffe7, 0xff82, 0xff68,
+ 0xff93, 0xffb5, 0xffda, 0xfffc, 0xffde, 0xffb5,
+ 0xffa6, 0xff77, 0xff37, 0xfefb, 0xfe9a, 0xfe2c,
+ 0xfdd1, 0xfd78, 0xfd31, 0xfcf5, 0xfcad, 0xfc8a,
+ 0xfca8, 0xfcd1, 0xfccf, 0xfc8f, 0xfc24, 0xfbb2,
+ 0xfb47, 0xfb01, 0xfaea, 0xfad0, 0xfaba, 0xfad4,
+ 0xfafa, 0xfafe, 0xfad6, 0xfa8f, 0xfa63, 0xfa69,
+ 0xfa88, 0xfae4, 0xfb8c, 0xfc41, 0xfcd8, 0xfd1d,
+ 0xfcd8, 0xfc52, 0xfbde, 0xfb68, 0xfb21, 0xfb43,
+ 0xfb8b, 0xfbd8, 0xfc36, 0xfc6c, 0xfc73, 0xfc79,
+ 0xfc67, 0xfc33, 0xfc17, 0xfc3d, 0xfcb7, 0xfd5b,
+ 0xfdd0, 0xfe04, 0xfe0c, 0xfdfd, 0xfe04, 0xfe28,
+ 0xfe5e, 0xfec0, 0xff37, 0xff9c, 0xfff0, 0x0028,
+ 0x005f, 0x00c0, 0x0138, 0x01b4, 0x021e, 0x024a,
+ 0x0262, 0x0282, 0x0280, 0x0294, 0x0306, 0x03af,
+ 0x0488, 0x0591, 0x068a, 0x075a, 0x07ec, 0x080e,
+ 0x07c3, 0x0749, 0x06dc, 0x0699, 0x068a, 0x06cb,
+ 0x0763, 0x082d, 0x0901, 0x09a8, 0x09ef, 0x09e3,
+ 0x099c, 0x0916, 0x085f, 0x079d, 0x06e3, 0x0628,
+ 0x056a, 0x04b1, 0x03e9, 0x0330, 0x02be, 0x0258,
+ 0x01c7, 0x013d, 0x00c9, 0x005b, 0x0016, 0x0011,
+ 0x003e, 0x0068, 0x004a, 0xfffb, 0xff97, 0xff12,
+ 0xfe89, 0xfe07, 0xfd7b, 0xfd28, 0xfd2e, 0xfd5b,
+ 0xfdae, 0xfe10, 0xfe23, 0xfde5, 0xfd91, 0xfd32,
+ 0xfcdb, 0xfcb3, 0xfcbe, 0xfcfa, 0xfd5e, 0xfdb3,
+ 0xfde1, 0xfdfd, 0xfdfc, 0xfdf0, 0xfe14, 0xfe57,
+ 0xfe82, 0xfea1, 0xfebd, 0xfed2, 0xfef5, 0xff20,
+ 0xff39, 0xff35, 0xff15, 0xfefa, 0xff1a, 0xff75,
+ 0xffec, 0x0059, 0x00a3, 0x00be, 0x00a2, 0x0061,
+ 0x0026, 0x0009, 0x0009, 0x001c, 0x002c, 0x0038,
+ 0x0064, 0x00a8, 0x00e8, 0x013b, 0x01a1, 0x01f9,
+ 0x025d, 0x02bc, 0x02c8, 0x02ba, 0x02d0, 0x02c3,
+ 0x02a2, 0x028e, 0x023b, 0x01d5, 0x01a8, 0x017c,
+ 0x015a, 0x016f, 0x0183, 0x018d, 0x01a7, 0x01d0,
+ 0x021b, 0x0282, 0x02fd, 0x038d, 0x03f9, 0x042b,
+ 0x043b, 0x041a, 0x03db, 0x038c, 0x0326, 0x02e2,
+ 0x02b0, 0x024e, 0x01fb, 0x01c8, 0x017d, 0x013b,
+ 0x00f8, 0x0090, 0x0032, 0xffe1, 0xff83, 0xff44,
+ 0xff32, 0xff40, 0xff5d, 0xff60, 0xff45, 0xff2f,
+ 0xff25, 0xff2d, 0xff5b, 0xff9a, 0xffa7, 0xff82,
+ 0xff57, 0xff1c, 0xfeea, 0xfede, 0xfed8, 0xfef2,
+ 0xff20, 0xff0d, 0xfeeb, 0xfef0, 0xfed8, 0xfeca,
+ 0xfef3, 0xff29, 0xff84, 0xfff2, 0x0032, 0x0065,
+ 0x0096, 0x00c8, 0x010d, 0x0143, 0x016c, 0x0185,
+ 0x0171, 0x017a, 0x01b1, 0x01f9, 0x029a, 0x0362,
+ 0x03e5, 0x0450, 0x0485, 0x0451, 0x0412, 0x03e2,
+ 0x03b1, 0x038e, 0x0360, 0x0356, 0x039a, 0x03f2,
+ 0x0454, 0x04ab, 0x04be, 0x04c8, 0x04cf, 0x04a5,
+ 0x0492, 0x04a8, 0x04ad, 0x04bb, 0x04f6, 0x0536,
+ 0x0546, 0x0527, 0x0502, 0x04dd, 0x04bf, 0x04ad,
+ 0x047e, 0x0432, 0x03d9, 0x034c, 0x029f, 0x0204,
+ 0x0172, 0x00f3, 0x009d, 0x0069, 0x005d, 0x0076,
+ 0x00a5, 0x00c6, 0x00b6, 0x0085, 0x0044, 0xfff9,
+ 0xffa7, 0xff2d, 0xfea4, 0xfe55, 0xfe2b, 0xfe2b,
+ 0xfe90, 0xff22, 0xffb5, 0x0046, 0x0084, 0x005a,
+ 0x000c, 0xffab, 0xff61, 0xff4b, 0xff48, 0xff72,
+ 0xffb4, 0xffca, 0xffee, 0x005c, 0x00ea, 0x017f,
+ 0x020a, 0x026a, 0x02ce, 0x0371, 0x042b, 0x04b6,
+ 0x0518, 0x0577, 0x05c2, 0x05f3, 0x062f, 0x0679,
+ 0x06b5, 0x06c8, 0x06b4, 0x06a9, 0x06b5, 0x06b0,
+ 0x06a7, 0x06aa, 0x0675, 0x05f2, 0x055a, 0x04b6,
+ 0x040b, 0x0374, 0x02eb, 0x0277, 0x0217, 0x019b,
+ 0x0100, 0x0068, 0xffbb, 0xfefa, 0xfe46, 0xfd9a,
+ 0xfd03, 0xfc9a, 0xfc48, 0xfbf7, 0xfb83, 0xfae4,
+ 0xfa59, 0xf9eb, 0xf971, 0xf8f6, 0xf87c, 0xf801,
+ 0xf7c2, 0xf7ca, 0xf7cb, 0xf7ac, 0xf79e, 0xf7a7,
+ 0xf796, 0xf762, 0xf71a, 0xf6ac, 0xf646, 0xf636,
+ 0xf669, 0xf6b9, 0xf714, 0xf758, 0xf798, 0xf7f5,
+ 0xf848, 0xf87c, 0xf8a4, 0xf8b9, 0xf8ab, 0xf891,
+ 0xf887, 0xf88f, 0xf89b, 0xf8c4, 0xf920, 0xf9a8,
+ 0xfa35, 0xfa94, 0xfad7, 0xfb21, 0xfb47, 0xfb36,
+ 0xfb23, 0xfb1d, 0xfb31, 0xfb82, 0xfbe5, 0xfc2d,
+ 0xfc7f, 0xfcf2, 0xfd72, 0xfdf1, 0xfe61, 0xfeb0,
+ 0xfed3, 0xfed3, 0xfed6, 0xff0c, 0xff85, 0x0015,
+ 0x0090, 0x00e8, 0x010d, 0x00ed, 0x009f, 0x0051,
+ 0x0027, 0x002b, 0x0067, 0x00e0, 0x0176, 0x01fc,
+ 0x0265, 0x02ba, 0x02fa, 0x0314, 0x0313, 0x031f,
+ 0x032a, 0x0328, 0x034d, 0x0397, 0x03df, 0x041a,
+ 0x042d, 0x0423, 0x042b, 0x0434, 0x0448, 0x0483,
+ 0x04a4, 0x049e, 0x04af, 0x04ce, 0x04fb, 0x053f,
+ 0x056d, 0x057e, 0x0582, 0x056c, 0x0550, 0x054d,
+ 0x0550, 0x054d, 0x053a, 0x0520, 0x052c, 0x0554,
+ 0x055e, 0x0547, 0x051e, 0x04d4, 0x047f, 0x043f,
+ 0x03f3, 0x0393, 0x035a, 0x0345, 0x0330, 0x033f,
+ 0x0378, 0x03a5, 0x03c5, 0x03d1, 0x0398, 0x0330,
+ 0x02ee, 0x02d4, 0x02b6, 0x029a, 0x0283, 0x0260,
+ 0x0250, 0x0259, 0x0258, 0x0247, 0x022d, 0x0206,
+ 0x01ec, 0x01da, 0x01c5, 0x01c0, 0x01d1, 0x01e6,
+ 0x01df, 0x01ab, 0x017c, 0x016f, 0x016c, 0x0186,
+ 0x01c7, 0x0208, 0x023d, 0x024a, 0x0212, 0x01be,
+ 0x015e, 0x0106, 0x00e0, 0x00ce, 0x00b9, 0x00b7,
+ 0x00b0, 0x0096, 0x007f, 0x0070, 0x006b, 0x0056,
+ 0x0027, 0xfff9, 0xffa5, 0xff30, 0xfedf, 0xfe87,
+ 0xfe08, 0xfd99, 0xfd32, 0xfcca, 0xfc6a, 0xfbf6,
+ 0xfb96, 0xfb6e, 0xfb5f, 0xfb7b, 0xfbbf, 0xfc07,
+ 0xfc6e, 0xfcbd, 0xfcb6, 0xfcab, 0xfcb7, 0xfcbe,
+ 0xfce0, 0xfd0d, 0xfd3d, 0xfd90, 0xfdd8, 0xfe04,
+ 0xfe31, 0xfe41, 0xfe59, 0xfe9c, 0xfec8, 0xfef3,
+ 0xff69, 0x0008, 0x00b3, 0x0166, 0x0215, 0x02ba,
+ 0x034e, 0x03ed, 0x04b1, 0x055c, 0x05de, 0x066e,
+ 0x06ed, 0x0748, 0x07b2, 0x0827, 0x0883, 0x08db,
+ 0x094c, 0x09b9, 0x09f5, 0x0a14, 0x0a21, 0x09ea,
+ 0x0978, 0x08fa, 0x087a, 0x080c, 0x07b8, 0x0764,
+ 0x0717, 0x06c7, 0x0646, 0x059f, 0x04e2, 0x03fe,
+ 0x0308, 0x0220, 0x015a, 0x00d2, 0x00a4, 0x00a5,
+ 0x007f, 0x001a, 0xff88, 0xfead, 0xfdbf, 0xfd1d,
+ 0xfcab, 0xfc49, 0xfc10, 0xfbdc, 0xfb8e, 0xfb35,
+ 0xfabe, 0xfa3c, 0xf9ea, 0xf9be, 0xf9a9, 0xf9a5,
+ 0xf991, 0xf950, 0xf8e4, 0xf872, 0xf81f, 0xf7d9,
+ 0xf79e, 0xf7a0, 0xf7d6, 0xf80d, 0xf840, 0xf869,
+ 0xf874, 0xf888, 0xf8cd, 0xf912, 0xf91b, 0xf903,
+ 0xf8e3, 0xf8b2, 0xf88a, 0xf876, 0xf85d, 0xf860,
+ 0xf897, 0xf8d9, 0xf917, 0xf956, 0xf990, 0xf9db,
+ 0xfa47, 0xfaa5, 0xfadd, 0xfb10, 0xfb5c, 0xfbc0,
+ 0xfc42, 0xfcdb, 0xfd6e, 0xfdf4, 0xfe71, 0xfede,
+ 0xff29, 0xff4e, 0xff4d, 0xff1b, 0xfec2, 0xfe80,
+ 0xfe5a, 0xfe1f, 0xfe03, 0xfe3b, 0xfea1, 0xff30,
+ 0xffd4, 0x003a, 0x006a, 0x0089, 0x0083, 0x007c,
+ 0x0092, 0x009c, 0x00ca, 0x0143, 0x01ca, 0x024f,
+ 0x02cb, 0x0303, 0x0317, 0x0329, 0x030f, 0x02da,
+ 0x02a0, 0x024e, 0x0210, 0x0209, 0x020b, 0x0215,
+ 0x0240, 0x0271, 0x02a2, 0x02e1, 0x032a, 0x0378,
+ 0x03b8, 0x03e8, 0x0429, 0x0464, 0x045c, 0x042c,
+ 0x0414, 0x0423, 0x0453, 0x048a, 0x04a1, 0x0484,
+ 0x043e, 0x03ea, 0x03bb, 0x03ac, 0x0391, 0x038a,
+ 0x03a9, 0x03b0, 0x03a2, 0x0392, 0x0358, 0x030e,
+ 0x02df, 0x02a9, 0x0256, 0x01d5, 0x012a, 0x0096,
+ 0x0006, 0xff57, 0xfedd, 0xfe9a, 0xfe5b, 0xfe64,
+ 0xfea9, 0xfecb, 0xfedf, 0xfef2, 0xfecc, 0xfe71,
+ 0xfe15, 0xfdc5, 0xfd5f, 0xfcf4, 0xfcb1, 0xfc7c,
+ 0xfc5a, 0xfc7c, 0xfc9f, 0xfc8a, 0xfc5a, 0xfbfc,
+ 0xfb7d, 0xfb19, 0xfad0, 0xfac2, 0xfb04, 0xfb5e,
+ 0xfbc4, 0xfc2f, 0xfc71, 0xfc97, 0xfcb7, 0xfcc0,
+ 0xfca7, 0xfc6a, 0xfc3d, 0xfc60, 0xfcb9, 0xfd14,
+ 0xfd3b, 0xfcff, 0xfc83, 0xfbf6, 0xfb62, 0xfaec,
+ 0xfac7, 0xfb0c, 0xfba1, 0xfc49, 0xfcf8, 0xfd86,
+ 0xfd94, 0xfd3e, 0xfce5, 0xfc92, 0xfc57, 0xfc5a,
+ 0xfc6c, 0xfc87, 0xfcd6, 0xfd30, 0xfd7f, 0xfde7,
+ 0xfe50, 0xfea3, 0xfef2, 0xff14, 0xff00, 0xfef4,
+ 0xfee3, 0xfeb6, 0xfea0, 0xfead, 0xfed9, 0xff38,
+ 0xffc5, 0x0083, 0x015a, 0x020e, 0x02cb, 0x03af,
+ 0x0478, 0x0535, 0x05fe, 0x06a4, 0x0744, 0x080c,
+ 0x08e4, 0x09b3, 0x0a58, 0x0ab9, 0x0af1, 0x0b1d,
+ 0x0b41, 0x0b49, 0x0b1b, 0x0ad0, 0x0a77, 0x0a18,
+ 0x09d7, 0x09ba, 0x09b6, 0x09c0, 0x09b2, 0x0966,
+ 0x08c7, 0x07d9, 0x06cd, 0x05bf, 0x04d5, 0x0443,
+ 0x03f1, 0x03c1, 0x03a6, 0x0358, 0x02d4, 0x0244,
+ 0x018a, 0x00bc, 0x0004, 0xff37, 0xfe5d, 0xfdb8,
+ 0xfd3e, 0xfccf, 0xfc6e, 0xfc23, 0xfbc9, 0xfb45,
+ 0xfabc, 0xfa32, 0xf996, 0xf920, 0xf8c6, 0xf85c,
+ 0xf816, 0xf7f8, 0xf7dc, 0xf7dd, 0xf7ed, 0xf802,
+ 0xf839, 0xf86b, 0xf881, 0xf889, 0xf861, 0xf825,
+ 0xf819, 0xf832, 0xf856, 0xf874, 0xf87f, 0xf877,
+ 0xf831, 0xf7a9, 0xf721, 0xf6b3, 0xf684, 0xf6c4,
+ 0xf744, 0xf7c8, 0xf830, 0xf85d, 0xf85f, 0xf841,
+ 0xf803, 0xf7f6, 0xf84c, 0xf8c0, 0xf92f, 0xf9b3,
+ 0xfa42, 0xfab7, 0xfb0c, 0xfb52, 0xfb8b, 0xfbc6,
+ 0xfc1d, 0xfc8a, 0xfcf8, 0xfd68, 0xfdcd, 0xfe10,
+ 0xfe36, 0xfe43, 0xfe44, 0xfe54, 0xfe7d, 0xfed8,
+ 0xff82, 0x0046, 0x00f1, 0x017b, 0x01cc, 0x01fa,
+ 0x023a, 0x025a, 0x0237, 0x021c, 0x021f, 0x0234,
+ 0x028c, 0x031a, 0x0396, 0x03d3, 0x03b7, 0x035a,
+ 0x02cc, 0x0200, 0x012f, 0x0095, 0x001d, 0xffe4,
+ 0x0003, 0x0040, 0x007a, 0x00a8, 0x00b1, 0x00a9,
+ 0x00b9, 0x0102, 0x0181, 0x01f0, 0x0240, 0x02a2,
+ 0x02e7, 0x02da, 0x0299, 0x0247, 0x01ea, 0x0176,
+ 0x00e1, 0x004c, 0xffd2, 0xff7f, 0xff6f, 0xff8e,
+ 0xff9a, 0xff82, 0xff59, 0xff1e, 0xfed4, 0xfeab,
+ 0xfeb8, 0xfec2, 0xfec5, 0xfef3, 0xff1c, 0xff13,
+ 0xfeff, 0xfede, 0xfeb1, 0xfeb3, 0xfedf, 0xff19,
+ 0xff65, 0xffa9, 0xffcf, 0xffe9, 0xfffe, 0x000a,
+ 0xfffd, 0xffca, 0xff8b, 0xff43, 0xff01, 0xfefa,
+ 0xff26, 0xff5b, 0xffa5, 0xfffa, 0x001d, 0x0002,
+ 0xffc8, 0xff79, 0xff22, 0xfef7, 0xff04, 0xff21,
+ 0xff5c, 0xffb5, 0xffdc, 0xffe4, 0x0007, 0x0001,
+ 0xffd2, 0xffcb, 0xffb6, 0xff6b, 0xff24, 0xfed8,
+ 0xfe87, 0xfe5a, 0xfe43, 0xfe47, 0xfe58, 0xfe3c,
+ 0xfe1d, 0xfe0f, 0xfdcf, 0xfd7d, 0xfd48, 0xfd0d,
+ 0xfce6, 0xfcfe, 0xfd2e, 0xfd56, 0xfd67, 0xfd56,
+ 0xfd35, 0xfd16, 0xfd15, 0xfd31, 0xfd38, 0xfd1e,
+ 0xfd10, 0xfd2a, 0xfd62, 0xfd96, 0xfdaf, 0xfdb3,
+ 0xfdc0, 0xfdf8, 0xfe5b, 0xfed8, 0xff69, 0xfff0,
+ 0x0054, 0x00af, 0x0105, 0x014a, 0x0197, 0x0203,
+ 0x02a3, 0x036e, 0x0412, 0x046b, 0x04b1, 0x04e5,
+ 0x04ec, 0x04ef, 0x051a, 0x056c, 0x05d3, 0x0635,
+ 0x0688, 0x06d0, 0x06fb, 0x070c, 0x0705, 0x06c2,
+ 0x0652, 0x060a, 0x05f2, 0x05b5, 0x0534, 0x0487,
+ 0x03b6, 0x02c7, 0x01ea, 0x0153, 0x00f9, 0x00ac,
+ 0x006f, 0x0032, 0xffd3, 0xff76, 0xff24, 0xfeb0,
+ 0xfe3a, 0xfdda, 0xfd65, 0xfcea, 0xfc70, 0xfbd7,
+ 0xfb30, 0xfa8f, 0xfa07, 0xf9c0, 0xf997, 0xf963,
+ 0xf949, 0xf942, 0xf934, 0xf930, 0xf921, 0xf904,
+ 0xf90c, 0xf93c, 0xf97c, 0xf9c7, 0xfa08, 0xfa37,
+ 0xfa56, 0xfa60, 0xfa6e, 0xfa75, 0xfa57, 0xfa38,
+ 0xfa2c, 0xf9fe, 0xf9ad, 0xf97b, 0xf980, 0xf99e,
+ 0xf9b3, 0xf9bf, 0xf9d2, 0xf9e7, 0xfa03, 0xfa3c,
+ 0xfa76, 0xfa83, 0xfa78, 0xfa79, 0xfaa0, 0xfafa,
+ 0xfb71, 0xfbf6, 0xfc79, 0xfcd7, 0xfd13, 0xfd3c,
+ 0xfd3a, 0xfd3a, 0xfd77, 0xfdd8, 0xfe54, 0xfee6,
+ 0xff57, 0xff9e, 0xffab, 0xff63, 0xff1b, 0xff32,
+ 0xffa8, 0x0065, 0x0134, 0x01da, 0x0257, 0x02b9,
+ 0x031e, 0x0394, 0x03ea, 0x042c, 0x0485, 0x04d4,
+ 0x0514, 0x0553, 0x0578, 0x0595, 0x05b7, 0x05b1,
+ 0x0582, 0x0548, 0x0520, 0x0519, 0x0519, 0x051e,
+ 0x053d, 0x0556, 0x0556, 0x053c, 0x04ff, 0x04ce,
+ 0x04cd, 0x04d6, 0x04e7, 0x0504, 0x0503, 0x04df,
+ 0x04c0, 0x04b6, 0x04ab, 0x049d, 0x04ac, 0x04c0,
+ 0x04a0, 0x0468, 0x0429, 0x03ca, 0x0370, 0x033b,
+ 0x0319, 0x02fe, 0x02ca, 0x0267, 0x020e, 0x01df,
+ 0x01c6, 0x01c0, 0x01d3, 0x01eb, 0x01f2, 0x01d3,
+ 0x019a, 0x0166, 0x0142, 0x0139, 0x0160, 0x01a7,
+ 0x01fd, 0x0262, 0x02ae, 0x02bc, 0x02c1, 0x02d1,
+ 0x02c0, 0x02a6, 0x029d, 0x0276, 0x0245, 0x023e,
+ 0x0243, 0x0244, 0x0252, 0x026b, 0x028e, 0x02ad,
+ 0x02c1, 0x02d7, 0x02da, 0x02b5, 0x0285, 0x0241,
+ 0x01d2, 0x015a, 0x00f0, 0x00ab, 0x00bc, 0x0120,
+ 0x01a0, 0x021c, 0x026a, 0x025a, 0x01f1, 0x016c,
+ 0x00ee, 0x0070, 0x0000, 0xffad, 0xff64, 0xff18,
+ 0xfed4, 0xfea4, 0xfe9e, 0xfeb1, 0xfeb5, 0xfecc,
+ 0xff10, 0xff43, 0xff59, 0xff79, 0xff86, 0xff6e,
+ 0xff4f, 0xff24, 0xfee6, 0xfeaa, 0xfe86, 0xfe8e,
+ 0xfeb3, 0xfed4, 0xfef7, 0xfefe, 0xfec1, 0xfe62,
+ 0xfdfd, 0xfdab, 0xfdb3, 0xfe03, 0xfe5c, 0xfec6,
+ 0xff33, 0xff8b, 0xffdc, 0x0010, 0x0024, 0x0039,
+ 0x0036, 0x001a, 0x0027, 0x0067, 0x00ce, 0x015b,
+ 0x01f1, 0x0286, 0x0329, 0x03ba, 0x041a, 0x0467,
+ 0x04c0, 0x051d, 0x057a, 0x05e2, 0x063c, 0x067c,
+ 0x06bb, 0x06eb, 0x06f9, 0x06f2, 0x06d9, 0x06cd,
+ 0x06f7, 0x0735, 0x076c, 0x079f, 0x079d, 0x0756,
+ 0x06eb, 0x0659, 0x05bd, 0x0546, 0x04c6, 0x0418,
+ 0x0362, 0x02b7, 0x0216, 0x017a, 0x00d4, 0x003c,
+ 0xffce, 0xff75, 0xff26, 0xfedb, 0xfe92, 0xfe67,
+ 0xfe47, 0xfdf7, 0xfd7c, 0xfcdb, 0xfbf9, 0xfb0c,
+ 0xfa5b, 0xf9df, 0xf990, 0xf984, 0xf9aa, 0xf9cd,
+ 0xf9de, 0xf9f0, 0xf9f1, 0xf9ca, 0xf9a6, 0xf99a,
+ 0xf983, 0xf95c, 0xf925, 0xf8e4, 0xf8c6, 0xf8b8,
+ 0xf89a, 0xf881, 0xf852, 0xf80f, 0xf803, 0xf824,
+ 0xf83a, 0xf851, 0xf86a, 0xf88e, 0xf8d8, 0xf92f,
+ 0xf98b, 0xfa12, 0xfabc, 0xfb4f, 0xfbb8, 0xfc12,
+ 0xfc6c, 0xfcb4, 0xfcf1, 0xfd34, 0xfd55, 0xfd45,
+ 0xfd27, 0xfcfc, 0xfcbc, 0xfc8f, 0xfc94, 0xfcba,
+ 0xfcff, 0xfd89, 0xfe51, 0xff0e, 0xffab, 0x0038,
+ 0x009f, 0x00d7, 0x00ed, 0x00f8, 0x0115, 0x013d,
+ 0x015f, 0x018f, 0x01bb, 0x01c6, 0x01c5, 0x01c1,
+ 0x01ae, 0x01a7, 0x01b2, 0x01c3, 0x01e6, 0x0210,
+ 0x0236, 0x027a, 0x02cf, 0x02fa, 0x02fb, 0x02dc,
+ 0x029c, 0x0266, 0x0246, 0x0238, 0x025f, 0x02a1,
+ 0x02c3, 0x02c0, 0x02a4, 0x0275, 0x023b, 0x01f3,
+ 0x01bf, 0x01ac, 0x0196, 0x01a2, 0x01de, 0x0214,
+ 0x0262, 0x02c7, 0x02fc, 0x0319, 0x0318, 0x02c0,
+ 0x0262, 0x0233, 0x01f8, 0x01bc, 0x0184, 0x012f,
+ 0x00e0, 0x00aa, 0x0085, 0x008c, 0x00b4, 0x00ff,
+ 0x019d, 0x025b, 0x02e9, 0x035d, 0x03aa, 0x0399,
+ 0x0355, 0x0321, 0x02f8, 0x02f6, 0x0330, 0x0375,
+ 0x03b8, 0x0407, 0x043c, 0x044c, 0x0431, 0x03d2,
+ 0x0360, 0x0307, 0x02ba, 0x028d, 0x0295, 0x02cc,
+ 0x030a, 0x031c, 0x0317, 0x0314, 0x02f6, 0x02db,
+ 0x02e1, 0x02fc, 0x0333, 0x0351, 0x0320, 0x02da,
+ 0x0296, 0x024d, 0x021e, 0x01db, 0x0178, 0x012e,
+ 0x00e7, 0x00aa, 0x00b2, 0x00dd, 0x00fd, 0x010a,
+ 0x00f9, 0x00d2, 0x009c, 0x005f, 0x0029, 0xffe4,
+ 0xff87, 0xff2f, 0xfedd, 0xfe94, 0xfe48, 0xfde2,
+ 0xfd6c, 0xfcdf, 0xfc5d, 0xfc28, 0xfc28, 0xfc47,
+ 0xfca5, 0xfd12, 0xfd43, 0xfd3d, 0xfd2f, 0xfd33,
+ 0xfd2b, 0xfd08, 0xfce2, 0xfcb5, 0xfc93, 0xfc9b,
+ 0xfcb4, 0xfcdd, 0xfd29, 0xfd81, 0xfddc, 0xfe3d,
+ 0xfead, 0xff48, 0xfff2, 0x0093, 0x013e, 0x01d5,
+ 0x0255, 0x02da, 0x0354, 0x03bf, 0x0417, 0x046c,
+ 0x04e5, 0x0560, 0x05c6, 0x0638, 0x069e, 0x0706,
+ 0x077c, 0x07be, 0x07ec, 0x0833, 0x0858, 0x087e,
+ 0x08c9, 0x08fb, 0x0921, 0x092f, 0x08f9, 0x089f,
+ 0x0832, 0x07cd, 0x0786, 0x0714, 0x0698, 0x0664,
+ 0x0645, 0x062f, 0x0631, 0x0617, 0x05d3, 0x0555,
+ 0x048d, 0x039d, 0x0271, 0x013b, 0x0064, 0xffc3,
+ 0xff46, 0xff31, 0xff41, 0xff3e, 0xff3e, 0xff17,
+ 0xfeb5, 0xfe47, 0xfdee, 0xfdc0, 0xfda7, 0xfd91,
+ 0xfd88, 0xfd6b, 0xfd21, 0xfcc7, 0xfc5f, 0xfbf3,
+ 0xfba2, 0xfb66, 0xfb42, 0xfb39, 0xfb3c, 0xfb57,
+ 0xfb75, 0xfb64, 0xfb44, 0xfb39, 0xfb0e, 0xfab9,
+ 0xfa69, 0xfa0c, 0xf9a8, 0xf992, 0xf9bd, 0xf9e6,
+ 0xfa21, 0xfa54, 0xfa45, 0xfa19, 0xf9fa, 0xf9f0,
+ 0xfa10, 0xfa63, 0xfaed, 0xfb8d, 0xfc09, 0xfc6b,
+ 0xfcc1, 0xfcef, 0xfcf5, 0xfcea, 0xfcfe, 0xfd4b,
+ 0xfd8f, 0xfdd3, 0xfe5f, 0xfefa, 0xff68, 0xffd5,
+ 0x0036, 0x006c, 0x0087, 0x00a9, 0x00ec, 0x0130,
+ 0x0150, 0x0173, 0x01a5, 0x01d3, 0x01f0, 0x01d4,
+ 0x0191, 0x0169, 0x0142, 0x0111, 0x0109, 0x0122,
+ 0x014a, 0x0183, 0x01ba, 0x01e4, 0x01f7, 0x01f4,
+ 0x01f4, 0x020a, 0x0244, 0x0292, 0x02c0, 0x02cf,
+ 0x02d4, 0x02b2, 0x0282, 0x0263, 0x0242, 0x023e,
+ 0x0278, 0x02c6, 0x031f, 0x0379, 0x03b0, 0x03eb,
+ 0x0434, 0x0462, 0x0487, 0x048b, 0x042f, 0x039d,
+ 0x030a, 0x027f, 0x0224, 0x01fc, 0x0200, 0x0234,
+ 0x0259, 0x0262, 0x0288, 0x02ae, 0x02d6, 0x0330,
+ 0x0388, 0x03bc, 0x03e1, 0x03e0, 0x03c7, 0x0399,
+ 0x033f, 0x02eb, 0x02a4, 0x024a, 0x0213, 0x01fa,
+ 0x01cb, 0x019c, 0x014d, 0x00c7, 0x0040, 0xff9d,
+ 0xfece, 0xfe18, 0xfd87, 0xfd2e, 0xfd1a, 0xfcfc,
+ 0xfcdc, 0xfce9, 0xfcdd, 0xfca4, 0xfc71, 0xfc3d,
+ 0xfc0c, 0xfbdc, 0xfb88, 0xfb38, 0xfb13, 0xfb00,
+ 0xfb13, 0xfb41, 0xfb41, 0xfb12, 0xfadc, 0xfa95,
+ 0xfa4c, 0xfa1e, 0xfa15, 0xfa40, 0xfa75, 0xfa6f,
+ 0xfa62, 0xfa8e, 0xfab6, 0xfab9, 0xfabc, 0xfac8,
+ 0xfad7, 0xfae7, 0xfaeb, 0xfad8, 0xfaa9, 0xfa78,
+ 0xfa75, 0xfa7c, 0xfa46, 0xf9f8, 0xf9e0, 0xf9e4,
+ 0xf9e8, 0xfa1a, 0xfa8d, 0xfb2b, 0xfbe3, 0xfc7d,
+ 0xfcca, 0xfcf0, 0xfd15, 0xfd49, 0xfdac, 0xfe1b,
+ 0xfe63, 0xfe9d, 0xfeca, 0xfed8, 0xfed5, 0xfec2,
+ 0xfea3, 0xfe78, 0xfe46, 0xfe41, 0xfe5e, 0xfe7a,
+ 0xfeed, 0xffc0, 0x0082, 0x013d, 0x0200, 0x029a,
+ 0x0327, 0x03b8, 0x041b, 0x044f, 0x0466, 0x0470,
+ 0x048c, 0x04c4, 0x0516, 0x057d, 0x05e7, 0x0650,
+ 0x06a1, 0x06ad, 0x0695, 0x067e, 0x065a, 0x0636,
+ 0x062f, 0x0636, 0x062d, 0x060f, 0x05cb, 0x0548,
+ 0x049a, 0x03e6, 0x0335, 0x0286, 0x01ce, 0x00ff,
+ 0x0051, 0xffda, 0xff53, 0xfec2, 0xfe55, 0xfde9,
+ 0xfd80, 0xfd3f, 0xfcf4, 0xfc7a, 0xfc05, 0xfba3,
+ 0xfb47, 0xfaf0, 0xfa81, 0xf9fb, 0xf986, 0xf91f,
+ 0xf8b6, 0xf863, 0xf824, 0xf808, 0xf82b, 0xf865,
+ 0xf886, 0xf88c, 0xf87a, 0xf85f, 0xf826, 0xf7b1,
+ 0xf72b, 0xf6b0, 0xf63e, 0xf5fd, 0xf5e2, 0xf5e2,
+ 0xf61d, 0xf667, 0xf6aa, 0xf719, 0xf78a, 0xf7e0,
+ 0xf83c, 0xf872, 0xf87e, 0xf893, 0xf893, 0xf883,
+ 0xf894, 0xf8bb, 0xf8f6, 0xf939, 0xf96d, 0xf9bc,
+ 0xfa1e, 0xfa7a, 0xfaee, 0xfb60, 0xfbb6, 0xfc1b,
+ 0xfc8f, 0xfcf4, 0xfd5a, 0xfdc3, 0xfe20, 0xfe66,
+ 0xfe94, 0xfeaf, 0xfeae, 0xfe9b, 0xfe91, 0xfe97,
+ 0xfebd, 0xff0e, 0xff80, 0x000b, 0x0096, 0x0115,
+ 0x0197, 0x01ef, 0x01f1, 0x01c3, 0x018e, 0x0157,
+ 0x0115, 0x00d1, 0x00b4, 0x00aa, 0x0084, 0x007a,
+ 0x00b8, 0x0111, 0x016e, 0x01dd, 0x023d, 0x0269,
+ 0x0271, 0x0260, 0x0226, 0x01e6, 0x01d1, 0x01d5,
+ 0x01f1, 0x0221, 0x0241, 0x0254, 0x024d, 0x020d,
+ 0x01d0, 0x01a7, 0x016b, 0x0135, 0x00fe, 0x00b1,
+ 0x008d, 0x0083, 0x0070, 0x0082, 0x00ae, 0x00c3,
+ 0x00d3, 0x00eb, 0x011c, 0x0169, 0x01b7, 0x020f,
+ 0x0255, 0x026a, 0x026b, 0x0243, 0x01dd, 0x0183,
+ 0x014d, 0x0134, 0x014a, 0x0163, 0x0167, 0x015d,
+ 0x0139, 0x0107, 0x00c4, 0x0064, 0x0000, 0xff8c,
+ 0xfefd, 0xfe7e, 0xfe0e, 0xfdc2, 0xfdbc, 0xfdd2,
+ 0xfdf2, 0xfe15, 0xfe0c, 0xfdf3, 0xfdf7, 0xfdff,
+ 0xfe00, 0xfde6, 0xfda0, 0xfd53, 0xfd07, 0xfccb,
+ 0xfcc3, 0xfcd6, 0xfcf3, 0xfd0f, 0xfd07, 0xfd07,
+ 0xfd1c, 0xfd0b, 0xfcfc, 0xfd08, 0xfce9, 0xfcb7,
+ 0xfcaf, 0xfcc5, 0xfcec, 0xfd10, 0xfd19, 0xfd1e,
+ 0xfd22, 0xfd1a, 0xfcff, 0xfcd1, 0xfcc0, 0xfcf1,
+ 0xfd5b, 0xfdd7, 0xfe2c, 0xfe3c, 0xfe0d, 0xfd9f,
+ 0xfd25, 0xfcee, 0xfd01, 0xfd3b, 0xfd8a, 0xfdda,
+ 0xfe15, 0xfe2f, 0xfe50, 0xfea5, 0xff0e, 0xff6e,
+ 0xffc7, 0xffe3, 0xffc7, 0xffb8, 0xffa9, 0xff8c,
+ 0xff8e, 0xff87, 0xff63, 0xff63, 0xff6f, 0xff6b,
+ 0xff9c, 0xfff9, 0x0038, 0x0078, 0x00c3, 0x00e2,
+ 0x00f4, 0x0133, 0x0194, 0x0211, 0x02b0, 0x0363,
+ 0x041b, 0x04b2, 0x051b, 0x0572, 0x05b7, 0x05ef,
+ 0x0633, 0x065e, 0x065b, 0x0650, 0x0642, 0x0620,
+ 0x05f6, 0x05b7, 0x054f, 0x04c5, 0x0426, 0x0389,
+ 0x0314, 0x02d3, 0x02aa, 0x026d, 0x0222, 0x01d8,
+ 0x016c, 0x00d2, 0x002d, 0xff85, 0xfee7, 0xfe64,
+ 0xfdd9, 0xfd38, 0xfcac, 0xfc4b, 0xfc09, 0xfbf7,
+ 0xfc1a, 0xfc28, 0xfbe0, 0xfb64, 0xfadc, 0xfa63,
+ 0xfa1c, 0xf9ee, 0xf9bb, 0xf981, 0xf91f, 0xf8ae,
+ 0xf868, 0xf81d, 0xf7bf, 0xf78e, 0xf77e, 0xf770,
+ 0xf76d, 0xf769, 0xf75d, 0xf74c, 0xf745, 0xf762,
+ 0xf78c, 0xf7d4, 0xf857, 0xf8c4, 0xf8ff, 0xf932,
+ 0xf92d, 0xf905, 0xf8f6, 0xf8ca, 0xf89d, 0xf8c6,
+ 0xf919, 0xf98b, 0xfa26, 0xfaba, 0xfb6c, 0xfc39,
+ 0xfccd, 0xfd3e, 0xfdaf, 0xfe05, 0xfe57, 0xfea1,
+ 0xfecd, 0xfef2, 0xff10, 0xff3c, 0xffa7, 0x0028,
+ 0x0090, 0x00ef, 0x0145, 0x0172, 0x0175, 0x017b,
+ 0x01aa, 0x01ed, 0x022e, 0x028d, 0x0312, 0x038f,
+ 0x03e3, 0x040c, 0x0408, 0x03df, 0x03b7, 0x039d,
+ 0x0379, 0x036a, 0x039f, 0x03f6, 0x0452, 0x04b0,
+ 0x04f0, 0x0505, 0x0507, 0x04ef, 0x04b7, 0x0475,
+ 0x042a, 0x03d7, 0x039a, 0x0387, 0x038a, 0x039c,
+ 0x03c8, 0x03ec, 0x03e4, 0x03c2, 0x0393, 0x036b,
+ 0x0365, 0x036f, 0x0364, 0x033f, 0x030e, 0x02ea,
+ 0x02cb, 0x02a1, 0x027a, 0x0250, 0x0218, 0x01f6,
+ 0x0200, 0x021c, 0x0231, 0x0227, 0x0205, 0x01dd,
+ 0x019b, 0x0153, 0x0131, 0x0125, 0x012a, 0x0150,
+ 0x017f, 0x01a3, 0x01a4, 0x0168, 0x0121, 0x0104,
+ 0x00f4, 0x00e5, 0x00e4, 0x00eb, 0x0109, 0x0137,
+ 0x014f, 0x014a, 0x0134, 0x0115, 0x0101, 0x00f9,
+ 0x00f1, 0x00eb, 0x00e2, 0x00de, 0x00f4, 0x0104,
+ 0x00ea, 0x00ca, 0x00b5, 0x009f, 0x00aa, 0x00dc,
+ 0x0107, 0x011a, 0x0102, 0x00b1, 0x006e, 0x0062,
+ 0x005c, 0x004b, 0x0042, 0x0048, 0x0054, 0x0044,
+ 0x0014, 0xffec, 0xffbe, 0xff8d, 0xff95, 0xffd3,
+ 0x0024, 0x0085, 0x00cf, 0x00e8, 0x00d9, 0x009f,
+ 0x0058, 0x001b, 0xffd8, 0xff9d, 0xff80, 0xff7f,
+ 0xffb9, 0x0023, 0x0070, 0x0096, 0x00d1, 0x0119,
+ 0x0149, 0x016b, 0x017d, 0x0155, 0x00fd, 0x0095,
+ 0x0013, 0xff9b, 0xff4b, 0xfef3, 0xfead, 0xfeae,
+ 0xfea1, 0xfe6f, 0xfe50, 0xfe34, 0xfe24, 0xfe44,
+ 0xfe6a, 0xfe94, 0xfecd, 0xfefb, 0xff33, 0xff67,
+ 0xff7e, 0xffbd, 0x0029, 0x008b, 0x00fc, 0x0180,
+ 0x01f4, 0x0268, 0x02ec, 0x0371, 0x03e5, 0x045c,
+ 0x050e, 0x05d0, 0x065f, 0x06df, 0x072c, 0x0705,
+ 0x06bb, 0x067f, 0x062e, 0x05e5, 0x05c2, 0x05c7,
+ 0x05ea, 0x05f5, 0x05e8, 0x05e2, 0x05c3, 0x058a,
+ 0x0527, 0x0476, 0x03be, 0x032b, 0x02ac, 0x0267,
+ 0x0239, 0x01dd, 0x0197, 0x0189, 0x0173, 0x0151,
+ 0x0113, 0x0096, 0xfff4, 0xff4d, 0xfeb1, 0xfe2b,
+ 0xfdc7, 0xfd91, 0xfd6e, 0xfd44, 0xfd18, 0xfccf,
+ 0xfc5c, 0xfbdd, 0xfb44, 0xfaa9, 0xfa4a, 0xfa1e,
+ 0xfa1a, 0xfa35, 0xfa52, 0xfa86, 0xfac0, 0xfac5,
+ 0xfac9, 0xfadd, 0xfac8, 0xfaa6, 0xfaa2, 0xfabc,
+ 0xfb01, 0xfb52, 0xfb98, 0xfbeb, 0xfc1f, 0xfc17,
+ 0xfc09, 0xfc05, 0xfc0a, 0xfc1c, 0xfc28, 0xfc48,
+ 0xfca0, 0xfd0c, 0xfd5b, 0xfd82, 0xfd85, 0xfd70,
+ 0xfd3e, 0xfcf9, 0xfcbb, 0xfc7d, 0xfc4f, 0xfc54,
+ 0xfc83, 0xfccd, 0xfd38, 0xfdaa, 0xfe09, 0xfe54,
+ 0xfe95, 0xfed8, 0xff15, 0xff35, 0xff41, 0xff54,
+ 0xff72, 0xff9e, 0xffda, 0x0001, 0x0013, 0x0036,
+ 0x0067, 0x0099, 0x00e1, 0x0124, 0x0151, 0x0187,
+ 0x01c0, 0x01e8, 0x01f8, 0x01e2, 0x01d3, 0x01e5,
+ 0x01dc, 0x01d2, 0x01fb, 0x0210, 0x0205, 0x020b,
+ 0x0206, 0x0211, 0x024d, 0x028d, 0x02d7, 0x0322,
+ 0x032f, 0x032b, 0x032e, 0x02f6, 0x02b5, 0x02b1,
+ 0x02b9, 0x02c0, 0x02e4, 0x030a, 0x0317, 0x0310,
+ 0x02eb, 0x02a6, 0x0264, 0x0243, 0x0235, 0x023b,
+ 0x0267, 0x027e, 0x025c, 0x0234, 0x01f1, 0x0170,
+ 0x010d, 0x00e4, 0x00a7, 0x0061, 0x003c, 0x002e,
+ 0x0045, 0x0082, 0x00bd, 0x00f6, 0x0134, 0x0166,
+ 0x018d, 0x01b6, 0x01d4, 0x01ca, 0x0193, 0x0145,
+ 0x00e9, 0x0084, 0x003b, 0x0027, 0x0027, 0x0021,
+ 0x001c, 0x0002, 0xffd2, 0xffb8, 0xffb2, 0xffaa,
+ 0xffd0, 0x000a, 0x000e, 0x0008, 0x0016, 0x0000,
+ 0xffd9, 0xffc5, 0xffbd, 0xffb3, 0xff8d, 0xff4d,
+ 0xff0f, 0xfebe, 0xfe5c, 0xfe09, 0xfdb9, 0xfd72,
+ 0xfd5d, 0xfd78, 0xfdb9, 0xfe10, 0xfe6d, 0xfed3,
+ 0xff26, 0xff3b, 0xff0c, 0xfe9d, 0xfe12, 0xfd9f,
+ 0xfd51, 0xfd36, 0xfd40, 0xfd4b, 0xfd60, 0xfd74,
+ 0xfd5f, 0xfd2f, 0xfcf5, 0xfcaa, 0xfc55, 0xfbfe,
+ 0xfbae, 0xfb6a, 0xfb45, 0xfb64, 0xfb9c, 0xfbb4,
+ 0xfbd3, 0xfc03, 0xfc38, 0xfca1, 0xfd27, 0xfda3,
+ 0xfe2b, 0xfe9b, 0xfedc, 0xff0a, 0xff23, 0xff52,
+ 0xffcb, 0x0065, 0x0110, 0x01c0, 0x0244, 0x02c5,
+ 0x035c, 0x03e0, 0x0487, 0x056a, 0x063b, 0x06f1,
+ 0x07aa, 0x0852, 0x08f3, 0x099e, 0x0a31, 0x0a95,
+ 0x0ad8, 0x0afe, 0x0b02, 0x0af0, 0x0ad1, 0x0aa1,
+ 0x0a74, 0x0a50, 0x0a12, 0x09b6, 0x093a, 0x0896,
+ 0x07fb, 0x0775, 0x06ea, 0x0682, 0x0634, 0x05c1,
+ 0x0546, 0x04d9, 0x0461, 0x03f3, 0x037c, 0x02cb,
+ 0x0211, 0x0173, 0x00d1, 0x0020, 0xff81, 0xff09,
+ 0xfe9c, 0xfe18, 0xfd89, 0xfcdd, 0xfc06, 0xfb45,
+ 0xfaae, 0xfa29, 0xf9c6, 0xf970, 0xf908, 0xf8b1,
+ 0xf88e, 0xf8a3, 0xf8d4, 0xf8e8, 0xf8e5, 0xf8e8,
+ 0xf8f1, 0xf913, 0xf942, 0xf960, 0xf97e, 0xf99a,
+ 0xf99e, 0xf992, 0xf96e, 0xf94f, 0xf95a, 0xf968,
+ 0xf985, 0xf9c5, 0xf9dc, 0xf9d3, 0xf9f7, 0xfa31,
+ 0xfa73, 0xfad7, 0xfb46, 0xfba1, 0xfbe1, 0xfc12,
+ 0xfc35, 0xfc3b, 0xfc42, 0xfc63, 0xfc7b, 0xfc8f,
+ 0xfcb4, 0xfcdc, 0xfd1a, 0xfd5b, 0xfd76, 0xfd89,
+ 0xfda2, 0xfdb6, 0xfdf1, 0xfe69, 0xff16, 0xffee,
+ 0x00b6, 0x0163, 0x01fa, 0x0256, 0x0288, 0x02a7,
+ 0x028c, 0x0264, 0x0286, 0x02d6, 0x0330, 0x0399,
+ 0x03e2, 0x03ea, 0x03e7, 0x03fe, 0x0410, 0x0419,
+ 0x0433, 0x0454, 0x047b, 0x04b5, 0x04de, 0x04e3,
+ 0x04df, 0x04d2, 0x04a8, 0x0471, 0x043f, 0x0410,
+ 0x03d5, 0x0393, 0x036d, 0x0370, 0x037e, 0x038a,
+ 0x03ac, 0x03e9, 0x041f, 0x0421, 0x03e3, 0x0395,
+ 0x0365, 0x0332, 0x02e3, 0x02a3, 0x0273, 0x0245,
+ 0x023c, 0x0237, 0x0201, 0x01bf, 0x017e, 0x012e,
+ 0x00f2, 0x00c1, 0x0081, 0x0056, 0x004d, 0x0063,
+ 0x00a8, 0x00ff, 0x013f, 0x0154, 0x013b, 0x0123,
+ 0x0115, 0x00e8, 0x00bb, 0x00a9, 0x0089, 0x0076,
+ 0x0093, 0x00ab, 0x00a2, 0x0081, 0x0051, 0x0022,
+ 0xffe0, 0xff91, 0xff6e, 0xff6a, 0xff52, 0xff31,
+ 0xff10, 0xfedc, 0xfe83, 0xfe07, 0xfd93, 0xfd40,
+ 0xfce4, 0xfc7d, 0xfc3e, 0xfc2e, 0xfc3b, 0xfc57,
+ 0xfc73, 0xfc8e, 0xfcab, 0xfccd, 0xfcf0, 0xfcfe,
+ 0xfcf4, 0xfcdc, 0xfcb2, 0xfc7e, 0xfc2c, 0xfba9,
+ 0xfb34, 0xfb05, 0xfb05, 0xfb30, 0xfb71, 0xfb8a,
+ 0xfb80, 0xfb74, 0xfb56, 0xfb2d, 0xfb12, 0xfb07,
+ 0xfb18, 0xfb2e, 0xfb2a, 0xfb3a, 0xfb71, 0xfb98,
+ 0xfbaf, 0xfbc6, 0xfbc0, 0xfbba, 0xfbdd, 0xfbf8,
+ 0xfc02, 0xfc31, 0xfc5d, 0xfc56, 0xfc68, 0xfcc3,
+ 0xfd2f, 0xfd95, 0xfe07, 0xfe6e, 0xfec3, 0xff0b,
+ 0xff23, 0xff12, 0xff06, 0xff02, 0xff26, 0xff9e,
+ 0x003e, 0x00ea, 0x01bc, 0x029b, 0x035e, 0x03ef,
+ 0x0445, 0x0486, 0x04cb, 0x051d, 0x059b, 0x0630,
+ 0x06ab, 0x0716, 0x0780, 0x0802, 0x0894, 0x08e7,
+ 0x0901, 0x0919, 0x0910, 0x08e8, 0x08ba, 0x086b,
+ 0x0802, 0x078e, 0x070e, 0x0697, 0x0617, 0x058e,
+ 0x050d, 0x0465, 0x038b, 0x0294, 0x0179, 0x0074,
+ 0xff97, 0xfeb0, 0xfde1, 0xfd2f, 0xfc6e, 0xfbc8,
+ 0xfb30, 0xfa84, 0xf9e0, 0xf938, 0xf893, 0xf803,
+ 0xf760, 0xf6e4, 0xf6be, 0xf6b1, 0xf6c0, 0xf6d8,
+ 0xf6a2, 0xf62f, 0xf59a, 0xf4fa, 0xf491, 0xf442,
+ 0xf3ff, 0xf40a, 0xf450, 0xf4aa, 0xf50f, 0xf55e,
+ 0xf5ad, 0xf60d, 0xf65e, 0xf6a1, 0xf6da, 0xf716,
+ 0xf76e, 0xf7b6, 0xf7e2, 0xf807, 0xf803, 0xf7f8,
+ 0xf836, 0xf8a5, 0xf92d, 0xf9d6, 0xfa77, 0xfaf0,
+ 0xfb4c, 0xfb8c, 0xfbac, 0xfbb4, 0xfbb7, 0xfbc8,
+ 0xfc05, 0xfc77, 0xfd0e, 0xfdbe, 0xfe5e, 0xfeb8,
+ 0xfecc, 0xfeaa, 0xfe68, 0xfe39, 0xfe2b, 0xfe41,
+ 0xfe83, 0xfed4, 0xff35, 0xff99, 0xffca, 0xffdf,
+ 0xffe3, 0xffc0, 0xffd0, 0x0034, 0x009b, 0x00ff,
+ 0x014f, 0x0167, 0x0177, 0x0185, 0x017e, 0x0183,
+ 0x0194, 0x01ac, 0x01dc, 0x0205, 0x0208, 0x01e9,
+ 0x01cc, 0x01d8, 0x01ea, 0x01f8, 0x0221, 0x023f,
+ 0x023a, 0x0233, 0x0236, 0x025e, 0x02b4, 0x030c,
+ 0x0351, 0x037d, 0x038b, 0x0369, 0x030a, 0x029c,
+ 0x0230, 0x01b0, 0x0157, 0x013d, 0x0134, 0x014b,
+ 0x016b, 0x015f, 0x013b, 0x00fe, 0x009f, 0x004a,
+ 0x000d, 0xffe1, 0xffbc, 0xff90, 0xff6e, 0xff46,
+ 0xfefe, 0xfeca, 0xfec4, 0xfec2, 0xfeb0, 0xfe9c,
+ 0xfe9f, 0xfebf, 0xfedc, 0xfeea, 0xfee3, 0xfeb9,
+ 0xfe8b, 0xfe70, 0xfe60, 0xfe57, 0xfe55, 0xfe5d,
+ 0xfe66, 0xfe58, 0xfe2f, 0xfde4, 0xfd84, 0xfd33,
+ 0xfd06, 0xfd0f, 0xfd29, 0xfd13, 0xfcee, 0xfccb,
+ 0xfca9, 0xfcd3, 0xfd2e, 0xfd6f, 0xfdd1, 0xfe41,
+ 0xfe76, 0xfe92, 0xfe80, 0xfe3e, 0xfe17, 0xfdf5,
+ 0xfddc, 0xfdff, 0xfe1c, 0xfe13, 0xfdfe, 0xfdbe,
+ 0xfd60, 0xfd11, 0xfced, 0xfd08, 0xfd31, 0xfd49,
+ 0xfd66, 0xfd70, 0xfd5f, 0xfd37, 0xfcef, 0xfcca,
+ 0xfce2, 0xfd0a, 0xfd55, 0xfd9f, 0xfdae, 0xfdc2,
+ 0xfdea, 0xfdf4, 0xfe07, 0xfe32, 0xfe62, 0xfeba,
+ 0xff3f, 0xffb8, 0xfffd, 0x001c, 0x003e, 0x0054,
+ 0x0056, 0x007f, 0x00c9, 0x00f1, 0x0105, 0x012e,
+ 0x015a, 0x0187, 0x01d5, 0x023b, 0x028e, 0x02c5,
+ 0x02f0, 0x030e, 0x030d, 0x02f0, 0x02d0, 0x02c2,
+ 0x02cd, 0x02f0, 0x0329, 0x038c, 0x0414, 0x0495,
+ 0x0517, 0x05a9, 0x05f5, 0x05ea, 0x05d6, 0x05bd,
+ 0x059a, 0x0598, 0x059b, 0x0586, 0x0571, 0x0541,
+ 0x04e5, 0x0483, 0x0422, 0x03c8, 0x0382, 0x0339,
+ 0x02e7, 0x0294, 0x0213, 0x0149, 0x0079, 0xffcc,
+ 0xff1b, 0xfe63, 0xfdca, 0xfd57, 0xfceb, 0xfc6b,
+ 0xfbdf, 0xfb5e, 0xfae9, 0xfa89, 0xfa6f, 0xfa99,
+ 0xface, 0xfaf7, 0xfb15, 0xfafe, 0xfaaa, 0xfa65,
+ 0xfa3a, 0xf9e8, 0xf97e, 0xf930, 0xf8ff, 0xf8f8,
+ 0xf911, 0xf925, 0xf93c, 0xf942, 0xf931, 0xf94e,
+ 0xf983, 0xf999, 0xf9c1, 0xf9f9, 0xfa07, 0xfa04,
+ 0xfa05, 0xfa0d, 0xfa26, 0xfa33, 0xfa4b, 0xfa8d,
+ 0xfac8, 0xfafc, 0xfb45, 0xfb8b, 0xfbd9, 0xfc47,
+ 0xfcbb, 0xfd28, 0xfd82, 0xfdb6, 0xfdbc, 0xfd9c,
+ 0xfd70, 0xfd56, 0xfd5f, 0xfda4, 0xfe2f, 0xfece,
+ 0xff4e, 0xffb7, 0x000c, 0x0021, 0x0000, 0xffe4,
+ 0xffc1, 0xffaf, 0xffe8, 0x0035, 0x0076, 0x00d7,
+ 0x0123, 0x012e, 0x0122, 0x00f6, 0x00b7, 0x00af,
+ 0x00db, 0x0111, 0x0156, 0x01a1, 0x01c2, 0x019c,
+ 0x0161, 0x013b, 0x011a, 0x011b, 0x0158, 0x019d,
+ 0x01c6, 0x01c9, 0x01ae, 0x01a0, 0x0196, 0x0184,
+ 0x0186, 0x0166, 0x0114, 0x00e0, 0x00ce, 0x00da,
+ 0x0123, 0x016f, 0x01a0, 0x01df, 0x0219, 0x023a,
+ 0x024d, 0x0246, 0x0236, 0x0242, 0x0262, 0x0280,
+ 0x0286, 0x0250, 0x01f3, 0x01a2, 0x015f, 0x0121,
+ 0x010a, 0x0127, 0x0170, 0x01df, 0x024b, 0x0290,
+ 0x02c7, 0x02e4, 0x02c5, 0x0283, 0x0237, 0x01ec,
+ 0x01bf, 0x01a2, 0x018c, 0x018f, 0x0184, 0x0154,
+ 0x0119, 0x00d8, 0x00a8, 0x00aa, 0x00c7, 0x00f3,
+ 0x011f, 0x0113, 0x00d7, 0x009d, 0x006d, 0x0051,
+ 0x004e, 0x0045, 0x0029, 0x000b, 0xfff1, 0xffe1,
+ 0xffdc, 0xffd5, 0xffcc, 0xffcc, 0xffcf, 0xffc3,
+ 0xffa6, 0xff7a, 0xff46, 0xff2d, 0xff3a, 0xff3b,
+ 0xff31, 0xff3e, 0xff40, 0xff29, 0xff2d, 0xff47,
+ 0xff53, 0xff47, 0xff29, 0xff2b, 0xff49, 0xff3c,
+ 0xff2a, 0xff4e, 0xff78, 0xff94, 0xff9e, 0xff76,
+ 0xff36, 0xfef8, 0xfeb5, 0xfe8e, 0xfe86, 0xfe8f,
+ 0xfebc, 0xfef3, 0xff21, 0xff55, 0xff6b, 0xff56,
+ 0xff2f, 0xfefa, 0xfedc, 0xfed1, 0xfea7, 0xfe8d,
+ 0xfe99, 0xfe91, 0xfe8c, 0xfeb1, 0xfef0, 0xff4e,
+ 0xffc7, 0x003a, 0x009a, 0x00cb, 0x00bc, 0x008e,
+ 0x0057, 0x0022, 0x0003, 0x0009, 0x0031, 0x007d,
+ 0x00f7, 0x0192, 0x022d, 0x02ae, 0x030b, 0x0360,
+ 0x03b3, 0x03e4, 0x040b, 0x0446, 0x0479, 0x04b7,
+ 0x0520, 0x059b, 0x0621, 0x06a0, 0x06e8, 0x06f6,
+ 0x06b6, 0x0627, 0x0598, 0x0516, 0x0494, 0x043f,
+ 0x0413, 0x03ee, 0x03e6, 0x03e6, 0x03de, 0x03e1,
+ 0x03ce, 0x038e, 0x033c, 0x02dc, 0x0268, 0x01fb,
+ 0x01a4, 0x0156, 0x010e, 0x00c3, 0x0056, 0xffcb,
+ 0xff45, 0xfed2, 0xfe7e, 0xfe58, 0xfe54, 0xfe70,
+ 0xfea4, 0xfec6, 0xfecc, 0xfea9, 0xfe4b, 0xfded,
+ 0xfda3, 0xfd59, 0xfd3a, 0xfd42, 0xfd42, 0xfd47,
+ 0xfd2d, 0xfccb, 0xfc74, 0xfc35, 0xfbe5, 0xfbc1,
+ 0xfbcf, 0xfbc7, 0xfbbc, 0xfbcc, 0xfbd8, 0xfbdc,
+ 0xfbfb, 0xfc3d, 0xfc76, 0xfc6d, 0xfc23, 0xfbb1,
+ 0xfb22, 0xfaab, 0xfa7c, 0xfa8d, 0xfac6, 0xfb0c,
+ 0xfb3f, 0xfb69, 0xfba6, 0xfbec, 0xfc1c, 0xfc2f,
+ 0xfc43, 0xfc7a, 0xfcd3, 0xfd25, 0xfd46, 0xfd30,
+ 0xfcee, 0xfc97, 0xfc76, 0xfcd1, 0xfd90, 0xfe67,
+ 0xff18, 0xff70, 0xff73, 0xff50, 0xff1e, 0xfef8,
+ 0xfef6, 0xff15, 0xff80, 0x004f, 0x0122, 0x01ca,
+ 0x0275, 0x02f3, 0x0327, 0x035c, 0x0387, 0x0382,
+ 0x038a, 0x03aa, 0x03ba, 0x03c7, 0x03cb, 0x03b6,
+ 0x039f, 0x038f, 0x0383, 0x037e, 0x036d, 0x0348,
+ 0x0314, 0x02c7, 0x026d, 0x023a, 0x0242, 0x026e,
+ 0x02a5, 0x02c5, 0x02a3, 0x025f, 0x0249, 0x026a,
+ 0x02b2, 0x0322, 0x0361, 0x0304, 0x024e, 0x01e1,
+ 0x01f2, 0x0225, 0x020b, 0x01a2, 0x013d, 0x011c,
+ 0x015c, 0x01e2, 0x024e, 0x0279, 0x025b, 0x01a6,
+ 0x0093, 0xfff4, 0x0008, 0x008c, 0x011c, 0x015c,
+ 0x01a8, 0x0238, 0x02a1, 0x0302, 0x0328, 0x025c,
+ 0x0153, 0x00b8, 0x0000, 0xffb9, 0x0069, 0x00fe,
+ 0x0129, 0x0181, 0x01ea, 0x022d, 0x0255, 0x026e,
+ 0x01d1, 0xffc5, 0xfdc3, 0xfd69, 0xfd9c, 0xfd98,
+ 0xfd9f, 0xfd01, 0xfc78, 0xfd78, 0xfe9f, 0xfe74,
+ 0xfde2, 0xfd78, 0xfce6, 0xfca3, 0xfd36, 0xfdec,
+ 0xfe1e, 0xfeb1, 0xffd2, 0xffa6, 0xfdcb, 0xfc23,
+ 0xfbaf, 0xfc6d, 0xfe4c, 0x002d, 0x00d3, 0x00b0,
+ 0x00c3, 0x00be, 0xffef, 0xfea4, 0xfd28, 0xfb93,
+ 0xfaf2, 0xfb90, 0xfc47, 0xfd1f, 0xfe32, 0xfded,
+ 0xfcc4, 0xfd51, 0xff48, 0x0031, 0xff70, 0xfe24,
+ 0xfd4f, 0xfcc3, 0xfc35, 0xfca0, 0xfe32, 0xff61,
+ 0xffaa, 0xffc2, 0x001c, 0x00bd, 0x00a0, 0xff71,
+ 0xfea5, 0xfe92, 0xfe5e, 0xfe22, 0xfe03, 0xfe3c,
+ 0xff2c, 0x008a, 0x0291, 0x0461, 0x0412, 0x0371,
+ 0x04c8, 0x05d3, 0x04e1, 0x0374, 0x02e0, 0x0381,
+ 0x0495, 0x056c, 0x064b, 0x0672, 0x05cc, 0x058f,
+ 0x04fb, 0x03f7, 0x0421, 0x04bb, 0x0521, 0x063b,
+ 0x0724, 0x06fb, 0x0600, 0x042c, 0x02c6, 0x02a4,
+ 0x030c, 0x047f, 0x0645, 0x0651, 0x05ab, 0x04b3,
+ 0x0214, 0x0088, 0x01e6, 0x0253, 0x00a8, 0x0013,
+ 0x0093, 0x006c, 0x0047, 0x00df, 0x01b4, 0x0223,
+ 0x01c7, 0x00ae, 0xfeb9, 0xfc41, 0xfb59, 0xfd17,
+ 0xffc2, 0x0191, 0x024d, 0x0271, 0x01c4, 0xffd5,
+ 0xfe65, 0xfefb, 0xffeb, 0x004f, 0x0070, 0xffaf,
+ 0xffbd, 0x0170, 0x0140, 0xff5c, 0xff33, 0xff55,
+ 0xfe7c, 0xff05, 0x003f, 0xff48, 0xfc84, 0xfad5,
+ 0xfb66, 0xfc20, 0xfc35, 0xfd94, 0xff02, 0xfda0,
+ 0xfb0e, 0xf9ec, 0xfa39, 0xfb6b, 0xfc8d, 0xfc8f,
+ 0xfbac, 0xfac6, 0xfad6, 0xfb79, 0xfb68, 0xfb96,
+ 0xfc0a, 0xfa4b, 0xf83d, 0xf8fd, 0xf9aa, 0xf902,
+ 0xf96c, 0xf922, 0xf724, 0xf6fa, 0xf92b, 0xfbc7,
+ 0xfe47, 0x002d, 0x0124, 0x003f, 0xfdce, 0xfd1f,
+ 0xfdf5, 0xfd80, 0xfc9f, 0xfbef, 0xfc78, 0x00f4,
+ 0x0633, 0x0781, 0x057b, 0x01b0, 0xfee2, 0xfe3a,
+ 0xfd4e, 0xfe87, 0x0231, 0x01a1, 0xfee8, 0xfeec,
+ 0xfdaa, 0xfb98, 0xfc04, 0xfb67, 0xf9e4, 0xfab9,
+ 0xfc55, 0xfdf8, 0xffea, 0x010e, 0x00f9, 0xfe72,
+ 0xfa47, 0xf876, 0xf9bc, 0xfc61, 0xfece, 0xff3c,
+ 0xff24, 0x00c3, 0x0257, 0x0254, 0x01e9, 0x01d5,
+ 0x0145, 0xff95, 0xfe80, 0xff82, 0x00d2, 0x0176,
+ 0x02dd, 0x04c2, 0x057b, 0x0553, 0x0566, 0x04dd,
+ 0x02db, 0x0130, 0x0172, 0x028c, 0x0336, 0x03c7,
+ 0x04da, 0x051c, 0x0363, 0x024c, 0x0364, 0x0403,
+ 0x0283, 0xff0f, 0xfb47, 0xfabb, 0xfd0c, 0xfee5,
+ 0xffc3, 0xffb8, 0xfee5, 0xfd50, 0xfa4a, 0xf8c2,
+ 0xf938, 0xf781, 0xf681, 0xf82f, 0xf781, 0xf811,
+ 0xfcf5, 0xfddf, 0xfab3, 0xf963, 0xf7ac, 0xf5c6,
+ 0xf793, 0xfca6, 0x02d2, 0x0545, 0x01c2, 0xfdc8,
+ 0xfbdf, 0xfb1a, 0xfc15, 0xfc02, 0xfa2d, 0xfb22,
+ 0xfe8c, 0x012a, 0x02d2, 0x03a0, 0x0340, 0x00b0,
+ 0xfd14, 0xfcc2, 0xfe2b, 0xfd66, 0xfda8, 0xfed1,
+ 0xfc7f, 0xfabd, 0xfccb, 0xfdcd, 0xfd6a, 0xfea2,
+ 0xff5e, 0xfe62, 0xfde8, 0xfee8, 0x0035, 0xffd6,
+ 0xfdab, 0xfb33, 0xf8ff, 0xf991, 0xfea4, 0x031c,
+ 0x0399, 0x0364, 0x02bd, 0xff1d, 0xfae4, 0xfab7,
+ 0xfe5c, 0x0030, 0xfec6, 0xff3a, 0x008f, 0xff38,
+ 0x0025, 0x03f1, 0x03e2, 0x01f8, 0x0277, 0x02df,
+ 0x02fb, 0x030b, 0x005c, 0xfd69, 0xfe5b, 0x016a,
+ 0x0405, 0x06c0, 0x098e, 0x094a, 0x041d, 0xfe35,
+ 0xfc49, 0xfdce, 0x00ce, 0x0476, 0x0760, 0x0830,
+ 0x06f5, 0x05cd, 0x0602, 0x04c0, 0x01c1, 0x0204,
+ 0x03c4, 0x0049, 0xfb78, 0xfbc9, 0xfdc4, 0xff68,
+ 0x025b, 0x02e8, 0x004b, 0xfe02, 0xfaa4, 0xf6fa,
+ 0xf70a, 0xf970, 0xfc0f, 0xfdc2, 0xfcce, 0xfba8,
+ 0xfafa, 0xf88d, 0xf7a3, 0xf8f2, 0xf8b9, 0xf8b6,
+ 0xfa0c, 0xfab2, 0xfb8a, 0xfbfb, 0xfa55, 0xf7ed,
+ 0xf729, 0xfa9e, 0xfea6, 0xfcd8, 0xfac4, 0xfe2f,
+ 0x00da, 0x0040, 0xfef0, 0xfbd5, 0xf896, 0xf7e3,
+ 0xf853, 0xf88a, 0xf7c2, 0xf74d, 0xf9ff, 0xfe14,
+ 0x00b0, 0x01a8, 0x017c, 0x0272, 0x0401, 0x01fe,
+ 0xfe09, 0xfbf4, 0xfa5c, 0xf869, 0xf87f, 0xfd04,
+ 0x03a0, 0x03ee, 0xfdde, 0xfca6, 0x0121, 0x02eb,
+ 0x02ae, 0x024b, 0xfe63, 0xf99c, 0xf809, 0xf7f0,
+ 0xf9fc, 0xfebf, 0x013b, 0x0124, 0x0445, 0x0af7,
+ 0x0f25, 0x0cce, 0x061c, 0xff59, 0xfbdb, 0xffa1,
+ 0x08b5, 0x0d38, 0x0b78, 0x0a94, 0x09e8, 0x057c,
+ 0x010f, 0x0061, 0x0119, 0x0229, 0x0658, 0x0a7f,
+ 0x07f9, 0x03a5, 0x042a, 0x0478, 0x0277, 0xffc2,
+ 0xf84d, 0xf13e, 0xf4a8, 0xfcf7, 0x013b, 0x0253,
+ 0x0316, 0x0467, 0x0549, 0x06a9, 0x09a7, 0x084a,
+ 0x0152, 0xfbed, 0xf835, 0xf674, 0xfafc, 0x004c,
+ 0x0227, 0x048c, 0x060b, 0x05d0, 0x0729, 0x06fc,
+ 0x02a1, 0xfc8f, 0xf73f, 0xf7b4, 0xff18, 0x0528,
+ 0x058d, 0x03a9, 0x007d, 0xfc18, 0xfa27, 0xfcb1,
+ 0x01d6, 0x0758, 0x09af, 0x05ce, 0xff8d, 0xfd11,
+ 0xfe41, 0xff57, 0xfe88, 0xfdb2, 0xfead, 0xff18,
+ 0xfe1d, 0xff08, 0x0204, 0x0425, 0x038a, 0x0107,
+ 0xff9f, 0xfe32, 0xfbe8, 0xfec2, 0x0591, 0x0745,
+ 0x03c9, 0xffb8, 0xfe4f, 0x0303, 0x08a5, 0x07d0,
+ 0x04cc, 0x04f6, 0x064e, 0x0703, 0x07c8, 0x07c4,
+ 0x040e, 0xfe59, 0xfc04, 0xfb82, 0xfa1f, 0xfb29,
+ 0xfdf1, 0xff6f, 0x011e, 0x02a6, 0x01e8, 0xff7d,
+ 0xfde0, 0xff0b, 0xffa3, 0xfcc5, 0xfa6e, 0xf9fa,
+ 0xfa26, 0xfc1a, 0xfe25, 0x0036, 0x02c9, 0x004d,
+ 0xfaef, 0xfa7a, 0xfbdb, 0xfc0d, 0xfce9, 0xfcd6,
+ 0xfc1d, 0xf9d5, 0xf551, 0xf817, 0x02d3, 0x0778,
+ 0x039c, 0xff14, 0xfdf8, 0x02d4, 0x095f, 0x0974,
+ 0x047c, 0x001c, 0xfde2, 0xfc6a, 0xfaa2, 0xfb0e,
+ 0xfd55, 0xfd6e, 0xfec3, 0x03ae, 0x05ac, 0x050e,
+ 0x058a, 0x01cb, 0xfa66, 0xf7df, 0xf899, 0xf79e,
+ 0xf869, 0xfb68, 0xfaf2, 0xf898, 0xfa16, 0xfbef,
+ 0xfa76, 0xfd74, 0x070c, 0x0bec, 0x091a, 0x0530,
+ 0x0098, 0xfda7, 0x0251, 0x07ea, 0x03cc, 0xfa52,
+ 0xf725, 0xfda1, 0x075d, 0x0c4b, 0x096d, 0x00dd,
+ 0xf898, 0xf737, 0xfd10, 0x03d0, 0x0477, 0xfca3,
+ 0xf269, 0xefa2, 0xf596, 0xfb24, 0xfbce, 0xfef3,
+ 0x0632, 0x07c5, 0x046f, 0x057c, 0x07c9, 0x0514,
+ 0xffab, 0xfa48, 0xf716, 0xf6cc, 0xf690, 0xf79b,
+ 0xfd24, 0x0511, 0x09dd, 0x06aa, 0xff58, 0xfcb6,
+ 0xfdb6, 0xfe84, 0xfef7, 0xfb6f, 0xf715, 0xfa26,
+ 0xfef2, 0xfe83, 0xfc6d, 0xf90a, 0xf58c, 0xf913,
+ 0x0208, 0x083d, 0x09f2, 0x0898, 0x03cc, 0xfcab,
+ 0xf775, 0xf750, 0xf97e, 0xf7fc, 0xf279, 0xf11c,
+ 0xf8f3, 0x02f5, 0x05c8, 0x0101, 0xfa89, 0xf628,
+ 0xf257, 0xf006, 0xf4a6, 0xfd47, 0x0057, 0xfc94,
+ 0xf889, 0xfa78, 0x01b7, 0x06d7, 0x0783, 0x0602,
+ 0x00ee, 0xfabf, 0xf972, 0xfc43, 0xff04, 0xff06,
+ 0xfc61, 0xf952, 0xf585, 0xf2ee, 0xf6c8, 0xfefc,
+ 0x0565, 0x061b, 0xffab, 0xf87e, 0xf72c, 0xf958,
+ 0xfd89, 0x0246, 0x001f, 0xf5e2, 0xedc2, 0xf015,
+ 0xf744, 0xf8a5, 0xf795, 0xfbc0, 0x0058, 0x0181,
+ 0x02b0, 0x04d7, 0x0584, 0xfe1a, 0xed71, 0xe4cd,
+ 0xf339, 0x103b, 0x290a, 0x31a3, 0x2625, 0x076b,
+ 0xe132, 0xcb1e, 0xd050, 0xe6ae, 0x0517, 0x2495,
+ 0x373f, 0x36bc, 0x28db, 0x1058, 0xef70, 0xd60c,
+ 0xd2ba, 0xddc5, 0xed45, 0x01d0, 0x1395, 0x1d4d,
+ 0x244c, 0x1f9d, 0x0a59, 0xf92b, 0xf408, 0xec3f,
+ 0xde44, 0xd46d, 0xd302, 0xd5ca, 0xe2ae, 0x0369,
+ 0x2673, 0x36bd, 0x3633, 0x228f, 0x0814, 0x0a13,
+ 0x1dc8, 0x1c65, 0x0970, 0xf580, 0xe78e, 0xe91c,
+ 0xf18b, 0xf8d6, 0x086a, 0x13ab, 0x0716, 0xf1a5,
+ 0xed1d, 0xfddb, 0x0f6a, 0x0d4a, 0xfe42, 0xebd4,
+ 0xd0e4, 0xb7d1, 0xb892, 0xd96b, 0x03c6, 0x141b,
+ 0x0534, 0xf31f, 0xe915, 0xe0a4, 0xdc0e, 0xda1d,
+ 0xd742, 0xd8be, 0xdfa4, 0xea9b, 0xfb6a, 0x09a8,
+ 0x0ba1, 0x0919, 0x0cb9, 0x1323, 0x17de, 0x1d83,
+ 0x2027, 0x17c4, 0x057f, 0xee43, 0xdbe1, 0xdac3,
+ 0xe06e, 0xdb6c, 0xd6ac, 0xde62, 0xea9c, 0xf796,
+ 0x03d7, 0x0918, 0x07bb, 0xffef, 0xf5f8, 0xf94a,
+ 0x07cb, 0x0ed0, 0x1044, 0x1a64, 0x2900, 0x2c9a,
+ 0x242a, 0x1e0e, 0x2199, 0x2b94, 0x38d0, 0x40e3,
+ 0x3d89, 0x36b2, 0x3149, 0x2a58, 0x2173, 0x132f,
+ 0x039f, 0x0245, 0x0a74, 0x09c8, 0x052b, 0x08e5,
+ 0x0ab9, 0xfdcb, 0xecf8, 0xec51, 0xfe3a, 0x139e,
+ 0x1d57, 0x19c8, 0x120e, 0x068e, 0xf52f, 0xedce,
+ 0xf7df, 0x030d, 0x0966, 0x0c0f, 0x0456, 0xfd15,
+ 0x0405, 0x0efb, 0x19a5, 0x26ed, 0x2a07, 0x2099,
+ 0x15bf, 0x055d, 0xf0ea, 0xea6f, 0xf1db, 0xf983,
+ 0xffdf, 0x0332, 0xfdf6, 0xf4ce, 0xed16, 0xe7ac,
+ 0xe834, 0xeb59, 0xe777, 0xdd6a, 0xd4fb, 0xd274,
+ 0xd31d, 0xcd38, 0xc0b6, 0xbcd9, 0xc969, 0xdf16,
+ 0xf12e, 0xf553, 0xecaf, 0xdc51, 0xc6a5, 0xb907,
+ 0xbbee, 0xc0f9, 0xc22e, 0xc626, 0xc53e, 0xbe3c,
+ 0xbfaf, 0xcadb, 0xdbeb, 0xf101, 0xfb97, 0xfb90,
+ 0xfe9e, 0xf42f, 0xd218, 0xb8da, 0xb4bb, 0xb5e0,
+ 0xc38e, 0xdf5a, 0xf48e, 0x0106, 0x06f7, 0xfcc8,
+ 0xe6ef, 0xcd73, 0xb5db, 0xafb5, 0xb81d, 0xbc3f,
+ 0xbff5, 0xcb28, 0xd767, 0xe31e, 0xec23, 0xee59,
+ 0xf113, 0xf75d, 0xf995, 0xf819, 0xfaec, 0x014f,
+ 0xffcd, 0xf6a4, 0xf84c, 0x06be, 0x0f55, 0x1025,
+ 0x149f, 0x1c65, 0x2154, 0x2211, 0x218b, 0x2528,
+ 0x30d0, 0x3f83, 0x4144, 0x30f2, 0x215e, 0x1efd,
+ 0x1ee6, 0x163f, 0x0d9a, 0x16b4, 0x2a98, 0x2faa,
+ 0x28c1, 0x2352, 0x1808, 0x0bdf, 0x0a8c, 0x0c5b,
+ 0x110a, 0x1cb5, 0x2937, 0x3793, 0x444e, 0x4840,
+ 0x467c, 0x38d3, 0x20e7, 0x0fcb, 0x011e, 0xf723,
+ 0x0588, 0x1d83, 0x27e4, 0x2614, 0x15a8, 0xf912,
+ 0xe2a3, 0xe345, 0xfcdb, 0x1647, 0x1fc0, 0x23f6,
+ 0x1aed, 0x042c, 0xf5f5, 0xe4b9, 0xcc87, 0xcc06,
+ 0xdc79, 0xe685, 0xe98e, 0xe2ee, 0xd86d, 0xcb17,
+ 0xb8ac, 0xbe5e, 0xd5d5, 0xd78c, 0xd6a7, 0xdb5f,
+ 0xca2e, 0xbee8, 0xc676, 0xbe8c, 0xb657, 0xbea0,
+ 0xc64f, 0xdcb3, 0x02b9, 0x1393, 0x0afd, 0xf567,
+ 0xd636, 0xbb32, 0xae21, 0xb5bd, 0xd5fe, 0xf391,
+ 0xf361, 0xe740, 0xe411, 0xdc23, 0xd0f4, 0xe198,
+ 0x002e, 0x004a, 0xee0d, 0xe70e, 0xe1f5, 0xd99c,
+ 0xd7fc, 0xe316, 0xf4af, 0xf337, 0xe72b, 0xf2a2,
+ 0xfb3c, 0xec9f, 0xf1c2, 0x0907, 0x0ca8, 0x057c,
+ 0xfdfe, 0xf141, 0xe7dd, 0xe7c0, 0xf3f6, 0x03ff,
+ 0x08eb, 0x1297, 0x245f, 0x1fbc, 0x0e60, 0x11c8,
+ 0x1e7e, 0x1a20, 0x0da1, 0x1468, 0x25eb, 0x242d,
+ 0x2274, 0x3763, 0x3fbe, 0x32ef, 0x35b1, 0x4293,
+ 0x4213, 0x3f2f, 0x42b3, 0x4285, 0x39a9, 0x2f7e,
+ 0x2fd0, 0x3a06, 0x3ec3, 0x3a03, 0x38b9, 0x37b9,
+ 0x2795, 0x1507, 0x136e, 0x1cd9, 0x2a87, 0x327f,
+ 0x2bea, 0x2bc6, 0x36f1, 0x3d06, 0x4988, 0x5522,
+ 0x5256, 0x60de, 0x745a, 0x6c24, 0x6f8b, 0x7e88,
+ 0x71c0, 0x6cbf, 0x79bb, 0x6fca, 0x620a, 0x6668,
+ 0x698d, 0x62c2, 0x5515, 0x5642, 0x668f, 0x5f73,
+ 0x534f, 0x5aee, 0x4f71, 0x3bf0, 0x424c, 0x4658,
+ 0x42bc, 0x3fc9, 0x2c05, 0x157c, 0x04fa, 0xf814,
+ 0x049b, 0x14da, 0x1245, 0x1b79, 0x227a, 0x0f1a,
+ 0xfcb1, 0xf0a9, 0xeea2, 0xfc07, 0xf613, 0xebfc,
+ 0xff6f, 0x05f7, 0xfa78, 0x0178, 0x0049, 0xf2b9,
+ 0xfdb9, 0x0dbe, 0x073f, 0xf830, 0xed4d, 0xe82a,
+ 0xe44d, 0xdfef, 0xe032, 0xdfdb, 0xdc52, 0xd9ee,
+ 0xd353, 0xca35, 0xc451, 0xbd9b, 0xbc4d, 0xc77b,
+ 0xd2c2, 0xd0a6, 0xc75c, 0xcb15, 0xd652, 0xcc67,
+ 0xb9cd, 0xb8f8, 0xb6f6, 0xad6b, 0xb545, 0xc791,
+ 0xd039, 0xd287, 0xd242, 0xcc8f, 0xbf76, 0xaff5,
+ 0xad07, 0xb7b3, 0xc02a, 0xc0b5, 0xba63, 0xac71,
+ 0xa1fe, 0xa8b3, 0xb3f6, 0xad2a, 0xa25b, 0xae8a,
+ 0xbf5a, 0xb985, 0xad55, 0xad10, 0xb17c, 0xb942,
+ 0xc715, 0xcff3, 0xcb88, 0xc093, 0xb7a6, 0xb13a,
+ 0xad54, 0xb09f, 0xbb54, 0xc39d, 0xc34d, 0xc87a,
+ 0xdf4f, 0xf3bb, 0xf477, 0xf04d, 0xecd6, 0xdef9,
+ 0xca84, 0xbd24, 0xc5d6, 0xe02d, 0xe8a9, 0xda9e,
+ 0xda36, 0xf03e, 0x0a55, 0x11d2, 0xfc45, 0xec0d,
+ 0xf14b, 0xe860, 0xde54, 0xf2c1, 0xfaef, 0xe06d,
+ 0xd112, 0xd97b, 0xdaab, 0xcc52, 0xc6db, 0xd4ea,
+ 0xd8d3, 0xca72, 0xc858, 0xd002, 0xd6e6, 0xee03,
+ 0x02e2, 0xf9ea, 0xea29, 0xe359, 0xda40, 0xd66e,
+ 0xe30c, 0xf45d, 0xf9e6, 0xfaaa, 0x0816, 0x130a,
+ 0x05fa, 0xf032, 0xdd25, 0xc8c3, 0xc18c, 0xcc8e,
+ 0xd5b8, 0xd1ba, 0xc33e, 0xb667, 0xb989, 0xc866,
+ 0xd3fb, 0xd35f, 0xcb6a, 0xcce8, 0xd2e5, 0xca24,
+ 0xc24a, 0xcc6a, 0xd3d4, 0xd041, 0xd227, 0xdae8,
+ 0xe04f, 0xdcc9, 0xd686, 0xd8e4, 0xdafc, 0xd699,
+ 0xde25, 0xeb90, 0xe61f, 0xd9d6, 0xd9cd, 0xe07d,
+ 0xe75a, 0xe87c, 0xe5aa, 0xe9ce, 0xe92b, 0xdcd6,
+ 0xdf56, 0xf139, 0xf604, 0xf365, 0xf9ea, 0xfe67,
+ 0xfd2f, 0x01c6, 0x0561, 0xfcfc, 0xf396, 0xf28b,
+ 0xf420, 0xf969, 0x0451, 0x0c3b, 0x0e7c, 0x0e13,
+ 0x1135, 0x1d0a, 0x1e6b, 0x0eef, 0x0fb3, 0x1b4e,
+ 0x1051, 0x07a0, 0x1625, 0x1faa, 0x2400, 0x2b57,
+ 0x1e42, 0x0634, 0x0514, 0x0f4c, 0x0763, 0xfba4,
+ 0x0db4, 0x27d3, 0x1be3, 0x068e, 0x1203, 0x1ae5,
+ 0x0fac, 0x15eb, 0x234d, 0x18ac, 0x1199, 0x251c,
+ 0x3413, 0x2e60, 0x2fb4, 0x3968, 0x309b, 0x2cad,
+ 0x480d, 0x5544, 0x4480, 0x4a97, 0x623f, 0x5a91,
+ 0x46c3, 0x4d7c, 0x585e, 0x4986, 0x3a36, 0x447d,
+ 0x4b0f, 0x3c03, 0x3107, 0x2c7e, 0x2dd1, 0x48e4,
+ 0x5faa, 0x50cf, 0x41e8, 0x46b0, 0x41d3, 0x30cc,
+ 0x27d9, 0x2deb, 0x37be, 0x3ad0, 0x4241, 0x432d,
+ 0x2759, 0x1738, 0x2b22, 0x332a, 0x2cd7, 0x394f,
+ 0x426c, 0x37bf, 0x3114, 0x3bd5, 0x4e25, 0x4ce1,
+ 0x3526, 0x2891, 0x2a49, 0x2cfa, 0x3c0d, 0x5093,
+ 0x5b9c, 0x61e3, 0x5bf8, 0x45be, 0x2dca, 0x1f74,
+ 0x248a, 0x3256, 0x3569, 0x3b4c, 0x460f, 0x457e,
+ 0x48ef, 0x5765, 0x6364, 0x6a7c, 0x62e8, 0x5741,
+ 0x5d50, 0x5d5c, 0x5790, 0x6414, 0x62a8, 0x5361,
+ 0x5a55, 0x56f1, 0x40af, 0x3a6d, 0x3212, 0x32ce,
+ 0x53e4, 0x5830, 0x3f7f, 0x4de0, 0x5df0, 0x46f5,
+ 0x3ead, 0x4c5c, 0x459a, 0x358b, 0x346e, 0x3586,
+ 0x2e8a, 0x2cad, 0x302e, 0x2aba, 0x26b0, 0x2d5c,
+ 0x303d, 0x2ea1, 0x2960, 0x1eda, 0x2160, 0x28cc,
+ 0x258b, 0x295d, 0x24a2, 0x0f8e, 0x1451, 0x17f8,
+ 0xfb86, 0xfcb7, 0x171a, 0x1579, 0x16fb, 0x23a9,
+ 0x24a3, 0x2d3a, 0x289f, 0x1082, 0x1938, 0x2adc,
+ 0x24d3, 0x276d, 0x1e58, 0x004d, 0xfad4, 0xf698,
+ 0xe9c4, 0xffc0, 0x0f9c, 0x00c1, 0x1029, 0x2547,
+ 0x0e29, 0x038a, 0x1553, 0x09fc, 0xf470, 0xf740,
+ 0xee26, 0xde6f, 0xe938, 0xe31c, 0xce48, 0xec59,
+ 0x0507, 0xe420, 0xe38b, 0xff1e, 0xe6a3, 0xd0cf,
+ 0xd4af, 0xbe77, 0xbd38, 0xd683, 0xc4f4, 0xb1eb,
+ 0xc0b2, 0xc252, 0xc253, 0xd4ef, 0xe4b2, 0xe934,
+ 0xd3d4, 0xbd16, 0xd1c1, 0xe3f1, 0xd635, 0xd652,
+ 0xde56, 0xdaf1, 0xdd96, 0xe194, 0xea38, 0xf702,
+ 0xeafd, 0xd97f, 0xdea8, 0xe2c8, 0xe108, 0xe6ce,
+ 0xea83, 0xe884, 0xeb83, 0xf41f, 0xea25, 0xce55,
+ 0xd007, 0xe454, 0xe404, 0xf08a, 0x052f, 0xfb34,
+ 0xf936, 0xfeb0, 0xeeff, 0xf891, 0x0b0e, 0x008e,
+ 0x0fdc, 0x215d, 0x0207, 0xf857, 0x0cae, 0x0882,
+ 0x0d25, 0x1b33, 0x07af, 0xf10f, 0xf202, 0xf828,
+ 0xf92f, 0xf776, 0xfef7, 0x0413, 0xf624, 0xf672,
+ 0x0a67, 0x0996, 0xff18, 0x0225, 0x029e, 0xff17,
+ 0x0069, 0xff6c, 0xfb58, 0xfb3e, 0xfae8, 0xf450,
+ 0xf697, 0x0048, 0xf1d9, 0xdf28, 0xe7ad, 0xebb2,
+ 0xf199, 0x0bab, 0xff3f, 0xd891, 0xd935, 0xdaa9,
+ 0xce25, 0xdbed, 0xe293, 0xd653, 0xd298, 0xc2c3,
+ 0xb554, 0xc042, 0xc46c, 0xcf11, 0xe0f3, 0xc9b7,
+ 0xae0e, 0xb6e3, 0xb65e, 0xa72a, 0xa47a, 0xa34e,
+ 0xa03d, 0x950d, 0x8000, 0x8000, 0x8000, 0x8000,
+ 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, 0x8000,
+ 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, 0x8000,
+ 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, 0x8000,
+ 0x8000, 0x8000, 0x8000, 0x8000, 0x80ee, 0x85ce,
+ 0x8974, 0x8439, 0x82af, 0x89b8, 0x8f05, 0x9580,
+ 0x9a85, 0x95fb, 0x99de, 0xac8e, 0xb546, 0xb0f1,
+ 0xadd0, 0xaf2d, 0xb826, 0xc0fe, 0xc238, 0xc1ed,
+ 0xb42f, 0x9ff5, 0xa9b9, 0xbaf9, 0xb5e6, 0xc04d,
+ 0xd931, 0xd5f8, 0xca17, 0xd1b7, 0xdd9a, 0xdfbb,
+ 0xd8fe, 0xd7c8, 0xe277, 0xecef, 0xfd18, 0x0de8,
+ 0x04dd, 0xf3e5, 0xf272, 0xf403, 0xfadc, 0xfe26,
+ 0xecfe, 0xe98c, 0xfa06, 0xf893, 0xfe3b, 0x1eea,
+ 0x2b5c, 0x2c55, 0x46ad, 0x4840, 0x2074, 0x19ee,
+ 0x2d4c, 0x1c74, 0x0f20, 0x26bd, 0x38bb, 0x48b0,
+ 0x58e6, 0x48e9, 0x439f, 0x5bfc, 0x5576, 0x3f14,
+ 0x3575, 0x200f, 0x1c8c, 0x28c1, 0x163a, 0x17f2,
+ 0x3870, 0x2df7, 0x12cd, 0x0b3d, 0xfcea, 0xf867,
+ 0xf19a, 0xcff0, 0xc87a, 0xd1ae, 0xc213, 0xd45c,
+ 0x03b7, 0x035e, 0xf5a0, 0x005e, 0xf5e8, 0xde83,
+ 0xe311, 0xee4b, 0xed6d, 0xebe7, 0xe313, 0xdaac,
+ 0xec98, 0xfd4a, 0xeee5, 0xe4b3, 0xe94b, 0xe866,
+ 0xf462, 0xfe90, 0xea0b, 0xe64f, 0x0014, 0x04ff,
+ 0xfb7b, 0xf59b, 0xebd7, 0xead5, 0xeaaa, 0xe750,
+ 0xf807, 0x00c8, 0xf224, 0xf642, 0xfc71, 0xe834,
+ 0xe19b, 0xed05, 0xea31, 0xe6ae, 0xebe1, 0xe44e,
+ 0xd4e3, 0xd803, 0xe859, 0xedf4, 0xecda, 0xe9f1,
+ 0xe25b, 0xec91, 0xfa80, 0xe839, 0xe318, 0xfe30,
+ 0xfb83, 0xe74d, 0xe631, 0xde7f, 0xdbac, 0xe60b,
+ 0xe230, 0xe6e7, 0xf250, 0xec73, 0xf778, 0xf9c0,
+ 0xd2f6, 0xcf1a, 0xeb0c, 0xe7fa, 0xee69, 0xfe68,
+ 0xf6a1, 0x041f, 0x0cbe, 0xea15, 0xe91c, 0x03f0,
+ 0xf38e, 0xde30, 0xdb8f, 0xd620, 0xe49c, 0xf98c,
+ 0xfb16, 0x02b5, 0x0610, 0xf6d6, 0xf585, 0xfa28,
+ 0xf183, 0xf477, 0xff64, 0xfcb8, 0xfdc5, 0x089b,
+ 0x0532, 0xf8e5, 0xfc7e, 0x01f2, 0xfa72, 0xfbed,
+ 0xf9b8, 0xdfd6, 0xde6b, 0xf87d, 0xf325, 0xde3c,
+ 0xcef3, 0xb444, 0xb33a, 0xc6fd, 0xbd2b, 0xc378,
+ 0xe936, 0xf037, 0xeb7e, 0xee3f, 0xdb74, 0xcf89,
+ 0xd5a1, 0xdede, 0xf8c5, 0xf5ba, 0xcde7, 0xd92f,
+ 0xfb2a, 0xeb32, 0xdbf4, 0xe3b3, 0xe77d, 0xf3f4,
+ 0xf9ea, 0xf5a2, 0x0057, 0xfaf2, 0xe928, 0xfc45,
+ 0x126b, 0x0c38, 0x0d3d, 0x16c4, 0x1860, 0x18a4,
+ 0x1444, 0x114a, 0x1b1c, 0x2149, 0x1680, 0x07ef,
+ 0x04db, 0x081d, 0x05f7, 0x071d, 0x1401, 0x21e3,
+ 0x29b6, 0x2769, 0x18e4, 0x0dbf, 0x102e, 0x1438,
+ 0x10bb, 0x0a04, 0x0052, 0xf1a3, 0xf09d, 0x057e,
+ 0x1182, 0x10ec, 0x1936, 0x14bb, 0xffec, 0xfc09,
+ 0xfa39, 0xec5e, 0xed0e, 0xf779, 0xf81f, 0xef6f,
+ 0xe804, 0xf7d0, 0x09e5, 0xfa47, 0xecbb, 0xef38,
+ 0xdf63, 0xd7ae, 0xe887, 0xf220, 0xfcb1, 0x012a,
+ 0xed18, 0xeb55, 0xfd15, 0x042b, 0x1d5d, 0x3266,
+ 0x18dc, 0x0810, 0x0f29, 0x05e6, 0x091e, 0x1a11,
+ 0x1715, 0x21c6, 0x3beb, 0x4445, 0x5187, 0x5783,
+ 0x3c3d, 0x3291, 0x4026, 0x31e6, 0x1db5, 0x2b0e,
+ 0x4378, 0x434c, 0x2d1a, 0x2155, 0x21ee, 0x1918,
+ 0x112e, 0x114f, 0x1525, 0x2124, 0x1b96, 0x0462,
+ 0x0ce0, 0x2347, 0x1a4e, 0x0a09, 0x0b93, 0x1842,
+ 0x21f7, 0x1a90, 0x0f42, 0x0629, 0xf821, 0x0243,
+ 0x23fe, 0x324d, 0x3088, 0x2bf6, 0x205a, 0x1a15,
+ 0x1204, 0x0aa9, 0x2485, 0x3cc6, 0x2239, 0x02b2,
+ 0x02f5, 0x071d, 0x0f9f, 0x1eb5, 0x1592, 0x082f,
+ 0x136e, 0x15cd, 0x149f, 0x2ae5, 0x2fc9, 0x2cfc,
+ 0x4c49, 0x4fe2, 0x2aa5, 0x2a51, 0x3dcc, 0x3e69,
+ 0x448d, 0x45c0, 0x3994, 0x368f, 0x3948, 0x3cc8,
+ 0x3762, 0x25f3, 0x2401, 0x2327, 0x1074, 0x0e45,
+ 0x1916, 0x1da3, 0x2795, 0x24a7, 0x18fd, 0x23a5,
+ 0x26b3, 0x1a69, 0x2377, 0x229a, 0x00c3, 0xf9b8,
+ 0x146a, 0x1675, 0x12ee, 0x2c6f, 0x2acb, 0x0ad1,
+ 0x0f76, 0x16b0, 0x02aa, 0x0daa, 0x221e, 0x1977,
+ 0x16b8, 0x0efa, 0x0834, 0x2720, 0x3187, 0x1a92,
+ 0x1bba, 0x0f2d, 0xef61, 0xfc50, 0x126e, 0x0c6e,
+ 0x118a, 0x2318, 0x2af7, 0x26ea, 0x1d70, 0x1e10,
+ 0x18f1, 0x029d, 0x02b4, 0x1791, 0x1895, 0x12d2,
+ 0x1934, 0x1db0, 0x23cb, 0x2feb, 0x2bc1, 0x14d7,
+ 0x06e0, 0x0545, 0x0049, 0x037c, 0x14a6, 0x1ad3,
+ 0x1311, 0x0dc6, 0x0b6e, 0x0c29, 0x096d, 0xffab,
+ 0x0873, 0x1aaa, 0x1074, 0x0729, 0x155b, 0x124f,
+ 0x0e3a, 0x223c, 0x180b, 0xfa9c, 0x05e6, 0x1272,
+ 0x095e, 0x168a, 0x26d6, 0x20de, 0x1e02, 0x2284,
+ 0x2af9, 0x2ce5, 0x12c6, 0xf98c, 0xfb21, 0xffb5,
+ 0x00d4, 0x03b6, 0x0716, 0x1028, 0x15c3, 0x1958,
+ 0x214f, 0x1d1d, 0x1cb2, 0x2dc6, 0x2852, 0x0c67,
+ 0x01d7, 0x0750, 0x0a32, 0x06ef, 0x0d2d, 0x1a11,
+ 0x08b5, 0xf18a, 0xfdab, 0x02ba, 0x008e, 0x1def,
+ 0x2802, 0x0c5d, 0xfcec, 0xf5cf, 0xfba9, 0x194c,
+ 0x151d, 0xf00a, 0xeb70, 0xf628, 0xf15a, 0xfb6e,
+ 0x1080, 0x0fe9, 0x0758, 0x0a6d, 0x0f9d, 0x11ce,
+ 0x149d, 0x16c6, 0x11c1, 0x05aa, 0x09f6, 0x1f39,
+ 0x1e47, 0x1145, 0x177a, 0x1504, 0x0627, 0x01e6,
+ 0xf77e, 0xf924, 0x139e, 0x0fac, 0xf87b, 0xf6eb,
+ 0xec91, 0xe792, 0x008f, 0x0939, 0x0a6f, 0x20ab,
+ 0x20da, 0x07e3, 0xfa18, 0xf9e1, 0x0772, 0x0f96,
+ 0x01e3, 0x013e, 0x0e95, 0x0e8b, 0x14bc, 0x15fb,
+ 0xf734, 0xeef5, 0x0f0e, 0x109e, 0xf426, 0xeb33,
+ 0xe971, 0xed51, 0x05a7, 0x0d51, 0xfa2c, 0xf353,
+ 0xf9d1, 0xfd1c, 0x0273, 0x0718, 0x03bf, 0x06b8,
+ 0x1e06, 0x29cf, 0x102a, 0xfee7, 0x03c2, 0xf679,
+ 0xf2eb, 0x0a12, 0x0c06, 0x072d, 0x0d53, 0x003e,
+ 0xf8ac, 0x033e, 0xff76, 0xfa1b, 0xf56c, 0xe6e2,
+ 0xee13, 0x01ae, 0xf8e7, 0xe129, 0xdfe9, 0xf669,
+ 0xfed1, 0xfd40, 0x1200, 0x1293, 0xfc8d, 0x0cdc,
+ 0x14e6, 0xfef8, 0x09c5, 0x0696, 0xe3c5, 0xf108,
+ 0x0a03, 0x041e, 0x09bc, 0x0b67, 0x009b, 0xff91,
+ 0xf93d, 0xfe8b, 0x0f44, 0x07a6, 0x0382, 0x05e2,
+ 0xf481, 0xf398, 0xf906, 0xe74b, 0xee5f, 0x0313,
+ 0xf2f8, 0xe5f2, 0xf28d, 0xf5cf, 0xf13d, 0xf173,
+ 0xf64f, 0x0493, 0x0bfe, 0x02f5, 0xffd2, 0xff70,
+ 0xf0d8, 0xece8, 0x007a, 0x0a6b, 0x042d, 0x06d0,
+ 0x0968, 0xf662, 0xe68b, 0xf50d, 0x01f7, 0xfa05,
+ 0xfcc6, 0xfd95, 0xe660, 0xdd9b, 0xe0fe, 0xdc8c,
+ 0xef78, 0xfd07, 0xe5de, 0xdeb8, 0xdf03, 0xca57,
+ 0xca86, 0xd4eb, 0xd587, 0xe29f, 0xe04d, 0xceb1,
+ 0xd451, 0xdb98, 0xde3d, 0xe6c6, 0xe372, 0xdd19,
+ 0xcfce, 0xbd78, 0xcccb, 0xda76, 0xcaba, 0xd49a,
+ 0xe434, 0xd00d, 0xc5bf, 0xd3a0, 0xdaa6, 0xd87f,
+ 0xd93c, 0xde91, 0xdf3f, 0xe552, 0xec08, 0xd68c,
+ 0xd01d, 0xe9b5, 0xdf12, 0xcf45, 0xdf4e, 0xd059,
+ 0xbf9b, 0xd209, 0xd002, 0xd0f5, 0xec53, 0xf618,
+ 0xff8e, 0x0969, 0xf4f9, 0xe0e8, 0xddc2, 0xe4af,
+ 0xee39, 0xe44f, 0xdcb9, 0xe22d, 0xe15a, 0xec95,
+ 0xe5e8, 0xbea9, 0xc752, 0xe668, 0xdc34, 0xe495,
+ 0xfc9f, 0xf14f, 0xe67f, 0xe440, 0xe08c, 0xea1b,
+ 0xe87e, 0xdecb, 0xdeff, 0xd5a0, 0xdaf5, 0xf264,
+ 0xeb4e, 0xe50e, 0xfca9, 0xff42, 0xeed6, 0xee93,
+ 0xed37, 0xe294, 0xdff4, 0xe698, 0xee75, 0xefd5,
+ 0xe9c3, 0xea20, 0xf9d7, 0x08ad, 0x0a7d, 0x0dd8,
+ 0x09ce, 0xea3f, 0xdcb4, 0xf93d, 0xfc4f, 0xe235,
+ 0xe6a8, 0xe954, 0xd5f1, 0xdfad, 0xe8d5, 0xda1f,
+ 0xec51, 0xfb32, 0xe363, 0xeb1c, 0xf9e2, 0xe678,
+ 0xefde, 0xf5b9, 0xd40f, 0xdb83, 0xeaa7, 0xcec5,
+ 0xda00, 0xf5a0, 0xe29f, 0xe413, 0xf63c, 0xe0b6,
+ 0xd878, 0xecfe, 0xe43b, 0xd17b, 0xdd15, 0xe0dd,
+ 0xc9ef, 0xc65f, 0xd047, 0xc972, 0xd01e, 0xd875,
+ 0xc88e, 0xcd33, 0xd5fd, 0xc997, 0xd93d, 0xde9b,
+ 0xbf55, 0xc4bf, 0xd09e, 0xc1a4, 0xc836, 0xc8da,
+ 0xc610, 0xd62b, 0xbd5c, 0xab55, 0xc9f5, 0xbf00,
+ 0xb69f, 0xe2f2, 0xe067, 0xc4c7, 0xcbdc, 0xc68b,
+ 0xc599, 0xd9c7, 0xdfab, 0xe2c6, 0xdd13, 0xcfa2,
+ 0xd6f0, 0xd674, 0xd149, 0xde8d, 0xd7f3, 0xced2,
+ 0xe243, 0xe40a, 0xd0ba, 0xcb67, 0xd16c, 0xd9b6,
+ 0xdec1, 0xe3b1, 0xe199, 0xcf9b, 0xce64, 0xd445,
+ 0xc2bd, 0xca5f, 0xe22b, 0xd094, 0xc246, 0xc582,
+ 0xb4c8, 0xb5c6, 0xc9a4, 0xc707, 0xc94e, 0xd892,
+ 0xd938, 0xd596, 0xd42c, 0xcd22, 0xc83c, 0xce93,
+ 0xd948, 0xdbaf, 0xe246, 0xeca3, 0xddd1, 0xcf88,
+ 0xd964, 0xd05f, 0xbd59, 0xc3ad, 0xc74c, 0xc22c,
+ 0xc385, 0xc4fd, 0xd2f3, 0xddb1, 0xcb4c, 0xc069,
+ 0xc704, 0xc59c, 0xcbe3, 0xd714, 0xd51a, 0xd563,
+ 0xd172, 0xc207, 0xbf09, 0xc1b3, 0xbf53, 0xc9ec,
+ 0xd89b, 0xdc9c, 0xe171, 0xdee1, 0xc738, 0xb68b,
+ 0xc82f, 0xdfee, 0xd61c, 0xbdba, 0xbee3, 0xd30f,
+ 0xe2f0, 0xe799, 0xe12f, 0xdb71, 0xd693, 0xcc85,
+ 0xd460, 0xe1be, 0xd2a4, 0xd559, 0xf385, 0xe5c0,
+ 0xce5f, 0xe531, 0xef3a, 0xe407, 0xe5d7, 0xdaac,
+ 0xda4b, 0xf642, 0xee8e, 0xd3b2, 0xe207, 0xf8b1,
+ 0xef88, 0xd49b, 0xce80, 0xe6a5, 0xeda7, 0xe2d8,
+ 0xe9bf, 0xe95a, 0xe321, 0xee7d, 0xf19f, 0xf4c4,
+ 0xf639, 0xd82e, 0xd4b9, 0xf916, 0xfa27, 0xf14a,
+ 0x0041, 0xff3d, 0xfcd2, 0x053e, 0x0320, 0x0bbe,
+ 0x1736, 0x06c0, 0xf3ff, 0xf72e, 0x02b1, 0x0048,
+ 0xf772, 0x0602, 0x114c, 0x0087, 0x02b7, 0x1662,
+ 0x0f40, 0xfd7f, 0xf8b2, 0x0175, 0x0a57, 0xfeac,
+ 0xfb6c, 0x0e86, 0x0cd1, 0x03d2, 0x0f94, 0x0dd1,
+ 0xfe85, 0x0613, 0x1d68, 0x220f, 0x0ca2, 0x0286,
+ 0x0dd0, 0x0f26, 0x1520, 0x2448, 0x14ef, 0xfe42,
+ 0xfb5b, 0xee43, 0xe429, 0xf363, 0xffc8, 0x00f2,
+ 0x0225, 0x023e, 0x02c6, 0x03d7, 0x041a, 0xfdce,
+ 0xec54, 0xdd7c, 0xdc4a, 0xebe4, 0x02cb, 0x03cf,
+ 0xf953, 0x0014, 0xfff2, 0xedd2, 0xe674, 0xeeb8,
+ 0xf657, 0xeb1d, 0xd9a7, 0xe207, 0xead5, 0xe54f,
+ 0xf523, 0x0317, 0xfa99, 0xfc31, 0xf343, 0xdf2f,
+ 0xf113, 0x031d, 0xf52d, 0xfd8a, 0x15bd, 0x0e47,
+ 0xfe00, 0x0099, 0x066e, 0x0852, 0x1062, 0x1871,
+ 0x1474, 0x0b16, 0x0303, 0x02f7, 0x104d, 0x13b9,
+ 0x0aa6, 0x0e8b, 0x0ecb, 0x0957, 0x1820, 0x1b50,
+ 0x0876, 0x0895, 0x0f11, 0x0c2a, 0x0cc3, 0x058e,
+ 0x06eb, 0x1b56, 0x1657, 0x0130, 0x0500, 0x0ff1,
+ 0x1314, 0x14ca, 0x15e4, 0x1967, 0x0ebb, 0xfb6f,
+ 0x0538, 0x1473, 0x0afa, 0x0dd1, 0x1cdb, 0x143b,
+ 0x086c, 0x0a6f, 0x05ca, 0x0458, 0x15a5, 0x1db0,
+ 0x0e2d, 0x0603, 0x0ce5, 0x08d7, 0x0320, 0x0f09,
+ 0x12fd, 0x0846, 0x0a71, 0x0d8a, 0x0582, 0x0a25,
+ 0x1004, 0x088b, 0x0c25, 0x0b88, 0xf72a, 0xfbc5,
+ 0x1566, 0x19c8, 0x1a97, 0x1df3, 0x0ec3, 0x05e3,
+ 0x151d, 0x25a3, 0x245b, 0x108d, 0x001f, 0xf93c,
+ 0xef5d, 0xf868, 0x0f2b, 0x0d98, 0x0dd8, 0x1b04,
+ 0x0e7b, 0x0291, 0x0f24, 0x12ac, 0x12c5, 0x1852,
+ 0x0f73, 0x02c6, 0xfabd, 0xf5c0, 0xf9a9, 0xf4fe,
+ 0xebff, 0xf6ac, 0xfefa, 0xf7dc, 0xf217, 0xee28,
+ 0xf331, 0xfbdf, 0xf15c, 0xe601, 0xead5, 0xf4b3,
+ 0x04a8, 0x0a37, 0xfc3f, 0xff2a, 0x116f, 0x1193,
+ 0x0a2b, 0x0b52, 0x100f, 0x103e, 0x0701, 0x08ff,
+ 0x1b3e, 0x1aba, 0x0bd9, 0x09c9, 0x085f, 0x06b8,
+ 0x0f51, 0x134a, 0x12f5, 0x1999, 0x241f, 0x2fe4,
+ 0x3021, 0x215d, 0x1561, 0x0a19, 0x0410, 0x0eae,
+ 0x0f78, 0x0a20, 0x17ef, 0x1793, 0x09d2, 0x174d,
+ 0x222e, 0x1960, 0x15dc, 0x0643, 0xf3eb, 0xfa7c,
+ 0xfb0f, 0xf711, 0x043c, 0x03ca, 0xfc36, 0x053b,
+ 0x0549, 0x0117, 0x052d, 0xfc7b, 0xf703, 0xfe54,
+ 0xf9db, 0xfdbd, 0x1468, 0x17d8, 0x0e6b, 0x158b,
+ 0x1e16, 0x1ca6, 0x21e3, 0x2c9d, 0x26c5, 0x12e5,
+ 0x0b72, 0x0fb5, 0x0e2a, 0x108d, 0x1e06, 0x2301,
+ 0x1b59, 0x1936, 0x1c34, 0x1b62, 0x256e, 0x321b,
+ 0x1a01, 0xfa20, 0x073e, 0x1669, 0x0859, 0x07a8,
+ 0x0c48, 0x01cf, 0x0588, 0x0dea, 0x0c9c, 0x155a,
+ 0x14df, 0x0640, 0x0a54, 0x10d2, 0x0a3b, 0x0c9d,
+ 0x1412, 0x1956, 0x1f2e, 0x1c03, 0x150a, 0x0ef4,
+ 0x0486, 0x007b, 0x0576, 0x100f, 0x1b91, 0x125e,
+ 0x0262, 0x0698, 0x092b, 0x0c01, 0x1b4d, 0x124c,
+ 0xfff4, 0x0b5e, 0x108b, 0x0b48, 0x17c3, 0x14c5,
+ 0x0885, 0x1a5b, 0x212e, 0x0d46, 0x1122, 0x1f6a,
+ 0x15ce, 0x109a, 0x1944, 0x1069, 0x0064, 0x0b36,
+ 0x1bd4, 0x1169, 0x081c, 0x15af, 0x1bb0, 0x151e,
+ 0x160c, 0x173d, 0x159e, 0x13fe, 0x08f1, 0x032a,
+ 0x108d, 0x1726, 0x0c38, 0x081e, 0x0e71, 0x0c22,
+ 0x0817, 0x1428, 0x1d8a, 0x1871, 0x1d2d, 0x20ac,
+ 0x10e1, 0x10ee, 0x1e98, 0x15a8, 0x0d1b, 0x1273,
+ 0x0fb0, 0x101d, 0x15a1, 0x1064, 0x09cd, 0x0482,
+ 0x077b, 0x1c45, 0x251d, 0x1caf, 0x1f0d, 0x202d,
+ 0x15d9, 0x12a4, 0x168b, 0x1667, 0x0f33, 0x0da5,
+ 0x18c7, 0x159f, 0x067a, 0x0be0, 0x140a, 0x0e8e,
+ 0x0cf9, 0x0747, 0xfbb7, 0xfaae, 0xfbca, 0xf6e1,
+ 0xf0d6, 0xf34e, 0xff90, 0xfca9, 0xf23d, 0xff97,
+ 0x0af6, 0x0391, 0x01d9, 0x005e, 0xfdfd, 0x05ae,
+ 0x093b, 0x0b59, 0x0f7c, 0x08a9, 0x040b, 0x070b,
+ 0x08cc, 0x0ce7, 0x08a0, 0x00eb, 0x05e8, 0x06cc,
+ 0x0ca3, 0x200d, 0x1645, 0xfc5c, 0x04fa, 0x1943,
+ 0x15ac, 0x01da, 0xf550, 0xfb9f, 0xfcd6, 0xf49a,
+ 0xfe4b, 0x05e4, 0xf7fd, 0xf2d6, 0xf8ca, 0xf5e1,
+ 0xf28c, 0xf998, 0x02a4, 0xfc73, 0xef30, 0xf57c,
+ 0xfea9, 0xf3a0, 0xee6c, 0xf952, 0xfcfd, 0xf9ac,
+ 0xfbdd, 0x010c, 0x04cf, 0x0687, 0x05da, 0x04a2,
+ 0x036e, 0xff47, 0xff52, 0x0b2b, 0x11d4, 0x0bd2,
+ 0x0da4, 0x15dc, 0x1150, 0x0286, 0xfb3d, 0x06a9,
+ 0x11c7, 0x0e2a, 0x1875, 0x2c70, 0x27c5, 0x1e98,
+ 0x1d18, 0x120c, 0x1092, 0x15a2, 0x0ba3, 0x0d72,
+ 0x1b25, 0x1838, 0x1589, 0x18cc, 0x101b, 0x087b,
+ 0x0e79, 0x18eb, 0x1ca0, 0x1627, 0x118f, 0x1246,
+ 0x0b9f, 0x000a, 0xf8d9, 0xf65a, 0xf8d9, 0xfbd2,
+ 0xf760, 0xf302, 0xfe70, 0x0dc3, 0x0ae0, 0x08dc,
+ 0x1379, 0x0ce6, 0xfeba, 0x04f0, 0x0800, 0xffd9,
+ 0x002b, 0xffa8, 0xfcf6, 0x04ff, 0x0cd5, 0x0ae0,
+ 0x04de, 0x00dd, 0x01c3, 0x06bf, 0x0b0f, 0x046f,
+ 0xfc53, 0x05d6, 0x0858, 0xfaa6, 0xffc3, 0x05f0,
+ 0xf99c, 0xfd2e, 0x0344, 0xfa23, 0x00ce, 0x0707,
+ 0xfdaa, 0x0113, 0x01ce, 0xf52f, 0xefd6, 0xe63b,
+ 0xe01e, 0xeef3, 0xf704, 0xf7d6, 0x0302, 0x02af,
+ 0xf350, 0xec8b, 0xf41e, 0xfca4, 0xf3cb, 0xe6d1,
+ 0xeed8, 0xf977, 0xf8a4, 0xf97a, 0xf354, 0xe6a0,
+ 0xeb67, 0xf76f, 0xf26d, 0xec16, 0xf91a, 0x0296,
+ 0xf317, 0xe743, 0xf023, 0xf4e1, 0xf582, 0xfc35,
+ 0xf745, 0xec70, 0xeead, 0xf3ec, 0xf99e, 0x025d,
+ 0x0343, 0x02ce, 0x03a6, 0xfa5f, 0xf7d8, 0x0435,
+ 0x05cb, 0xfdda, 0xfab6, 0xf04b, 0xe1d2, 0xe1d1,
+ 0xeb00, 0xf346, 0xf994, 0xfbdf, 0xfd33, 0xfd54,
+ 0xf5b9, 0xeeea, 0xf3c0, 0xf834, 0xf223, 0xece9,
+ 0xebf9, 0xe98e, 0xef66, 0xf8fe, 0xf0ee, 0xe71d,
+ 0xec45, 0xe9ee, 0xe617, 0xf326, 0xf658, 0xeb64,
+ 0xeb3c, 0xecbd, 0xe78b, 0xdf7e, 0xd324, 0xd3b8,
+ 0xdcdf, 0xd884, 0xdb0f, 0xe2ba, 0xd7e8, 0xdaa0,
+ 0xe9af, 0xdd0c, 0xd502, 0xe0ec, 0xdcd1, 0xdf2c,
+ 0xefed, 0xe7f8, 0xddb1, 0xe1ef, 0xd794, 0xd629,
+ 0xeb6c, 0xebb2, 0xdd70, 0xe3aa, 0xf2a0, 0xf7e3,
+ 0xf082, 0xe32a, 0xde8f, 0xe230, 0xe843, 0xeffd,
+ 0xf617, 0x01f6, 0x0e78, 0x0775, 0xfafb, 0xf9e8,
+ 0xf63e, 0xec29, 0xe36a, 0xe3e1, 0xee5e, 0xf03a,
+ 0xefc9, 0xf8d1, 0xefb5, 0xe0ea, 0xe964, 0xe834,
+ 0xe165, 0xf2f3, 0xf5e4, 0xe0c2, 0xd60a, 0xd260,
+ 0xdaf9, 0xec80, 0xe843, 0xe288, 0xeca0, 0xeb66,
+ 0xe4c0, 0xe5f5, 0xe60d, 0xe895, 0xe8b0, 0xe004,
+ 0xde0f, 0xead1, 0xf9d4, 0xf6b2, 0xead4, 0xf3c0,
+ 0xfc77, 0xef92, 0xeba1, 0xf2f3, 0xf3bb, 0xf472,
+ 0xf259, 0xf493, 0xff02, 0xf8da, 0xf105, 0xfb62,
+ 0xfca9, 0xfb0e, 0x07c9, 0x08a5, 0xfcda, 0xf907,
+ 0xf9e1, 0xfbab, 0xfa7f, 0xf43b, 0xf0da, 0xeff0,
+ 0xf48a, 0x0177, 0x034e, 0xf45f, 0xebcc, 0xf1a3,
+ 0xf614, 0xf453, 0xf53a, 0xf309, 0xebed, 0xf194,
+ 0xfc2a, 0xf910, 0xf563, 0xf33d, 0xe66d, 0xde24,
+ 0xe4a3, 0xed2c, 0xf1c6, 0xf444, 0xf516, 0xf2ed,
+ 0xef0c, 0xede9, 0xf038, 0xf537, 0xf5b6, 0xee83,
+ 0xed24, 0xea3c, 0xdd6e, 0xe0b2, 0xe70d, 0xd723,
+ 0xd917, 0xf0d0, 0xf228, 0xeef0, 0xfaf8, 0xfd2a,
+ 0xf19c, 0xe4ca, 0xe195, 0xeb15, 0xef1d, 0xe966,
+ 0xe5a1, 0xe6e2, 0xecde, 0xed01, 0xe6ee, 0xe88b,
+ 0xea84, 0xeca1, 0xf6ee, 0xfa3c, 0xf4ff, 0xecf0,
+ 0xe354, 0xea73, 0xf5ea, 0xf30a, 0xf68f, 0xf757,
+ 0xec91, 0xee6a, 0xece0, 0xe84a, 0xfa3a, 0x00f1,
+ 0xf3fe, 0xefc5, 0xe6c7, 0xe3e0, 0xf492, 0xf947,
+ 0xf754, 0xf661, 0xe5fc, 0xdfb8, 0xea08, 0xed76,
+ 0xf5e3, 0xfe8f, 0xf469, 0xe89a, 0xe7b9, 0xebfd,
+ 0xed11, 0xe852, 0xeb75, 0xf52d, 0xf74b, 0xf3d0,
+ 0xeed1, 0xf0ca, 0xf912, 0xf691, 0xf0d9, 0xec9d,
+ 0xe282, 0xe6db, 0xf253, 0xecac, 0xea92, 0xe9d0,
+ 0xddf6, 0xe38e, 0xf0bb, 0xee6d, 0xeff3, 0xf00f,
+ 0xe971, 0xeffa, 0xf231, 0xe3e7, 0xdc5c, 0xdefb,
+ 0xe655, 0xefde, 0xf1a6, 0xef50, 0xedb9, 0xeaea,
+ 0xec1b, 0xefe9, 0xf5ce, 0x003a, 0xfdf4, 0xea3b,
+ 0xdd51, 0xdde4, 0xe20c, 0xeb3c, 0xf665, 0xf84e,
+ 0xef8c, 0xe4a4, 0xe50e, 0xf061, 0xf149, 0xe99e,
+ 0xeced, 0xee6e, 0xe892, 0xee57, 0xf488, 0xf2de,
+ 0xf4e9, 0xed12, 0xe157, 0xe73a, 0xeaab, 0xe7ce,
+ 0xebdd, 0xe9d6, 0xe99f, 0xecd3, 0xe20c, 0xe112,
+ 0xec85, 0xebce, 0xefce, 0xf494, 0xedc0, 0xef84,
+ 0xe726, 0xd275, 0xd742, 0xdf6a, 0xdf12, 0xef0c,
+ 0xf6d6, 0xf18b, 0xf351, 0xeb9c, 0xe296, 0xe21d,
+ 0xdb52, 0xe02b, 0xed6e, 0xebf9, 0xeeec, 0xf61b,
+ 0xf5d8, 0xfb04, 0xfaed, 0xf3f1, 0xf1ec, 0xe9f1,
+ 0xeaa2, 0xf7e7, 0xf3d6, 0xee4b, 0xf174, 0xe7f0,
+ 0xe438, 0xe8fc, 0xe4e2, 0xecc4, 0xfa42, 0xfac3,
+ 0x0056, 0x01a0, 0xf709, 0xf8ab, 0xfafb, 0xf6ba,
+ 0xfefb, 0x0204, 0xf76c, 0xf45e, 0xefe8, 0xe7ce,
+ 0xf040, 0xfb92, 0xf741, 0xee9d, 0xeab3, 0xeec8,
+ 0xfb29, 0x0219, 0xfec5, 0xfa99, 0xf54e, 0xedbb,
+ 0xebcb, 0xf0b7, 0xf4e2, 0xf3c5, 0xf2c8, 0xf514,
+ 0xf122, 0xeb2f, 0xf123, 0xf47e, 0xec7e, 0xec84,
+ 0xf134, 0xf031, 0xf5b2, 0xfb1c, 0xf58c, 0xf48e,
+ 0xfa1a, 0xf967, 0xf499, 0xf18f, 0xf38c, 0xfb38,
+ 0x02b8, 0x0516, 0x01c5, 0x00c7, 0x07b5, 0x094d,
+ 0x006f, 0xfb96, 0xfc01, 0xf89f, 0xf5b4, 0xf988,
+ 0xfc2d, 0xf683, 0xf35c, 0xf93f, 0xfee6, 0x00fa,
+ 0xfdf4, 0xf8ea, 0xfd3b, 0xfe94, 0xf694, 0xfa50,
+ 0xfed2, 0xf994, 0xff91, 0x0075, 0xf475, 0xfbfc,
+ 0x054c, 0xfc78, 0xfc94, 0x0066, 0xff61, 0x0610,
+ 0x0274, 0xf6b6, 0xf8fe, 0xf7f7, 0xf240, 0xf8ce,
+ 0xfb0a, 0xf4cb, 0xf73f, 0xfe35, 0xfd5e, 0xf4d0,
+ 0xefd5, 0xf391, 0xfb94, 0x0932, 0x0d73, 0xfe08,
+ 0xfce2, 0x0c45, 0x07ed, 0x00f0, 0x0775, 0x00f6,
+ 0xf94a, 0x0197, 0x00f5, 0xfa6e, 0x00d0, 0x02ac,
+ 0xfbbb, 0xfe91, 0x02e2, 0xfe45, 0xff4b, 0x04ff,
+ 0x0260, 0x00d6, 0x017f, 0xfa5f, 0xfb9d, 0x0628,
+ 0x0207, 0xfe6e, 0x0997, 0x065c, 0xf73c, 0xf84c,
+ 0xfcb4, 0xf80d, 0xf76a, 0xf975, 0xf897, 0xf84a,
+ 0xf817, 0xfb8c, 0x0211, 0x015d, 0xfc91, 0xf91c,
+ 0xf495, 0xf77b, 0x000e, 0xfe70, 0xf923, 0xf6f9,
+ 0xf040, 0xef9e, 0xfa8f, 0x0131, 0x0048, 0xf8ee,
+ 0xedb1, 0xec83, 0xef25, 0xeb97, 0xf006, 0xfa16,
+ 0xfa2e, 0xf511, 0xf2a0, 0xf613, 0xfb6e, 0xf914,
+ 0xf796, 0xfbd4, 0xf9bf, 0xf59e, 0xf402, 0xefd5,
+ 0xf220, 0xf95e, 0xf9c1, 0xfaf2, 0xfecf, 0xfc67,
+ 0xf779, 0xf593, 0xf9f0, 0x0242, 0x007d, 0xf49b,
+ 0xee58, 0xf0b7, 0xf43e, 0xf526, 0xf4aa, 0xf5a2,
+ 0xf839, 0xfb5a, 0xfda2, 0xfc2b, 0xf583, 0xf028,
+ 0xf5cc, 0xfd86, 0xfa85, 0xf9f8, 0xff6d, 0xfb01,
+ 0xf4ae, 0xf3e8, 0xf26c, 0xfb48, 0x0864, 0x05d4,
+ 0xffa8, 0xfb5e, 0xf475, 0xf983, 0x0364, 0x0545,
+ 0x0b89, 0x10e2, 0x0f04, 0x1132, 0x0ec1, 0x082e,
+ 0x0e82, 0x14bb, 0x1058, 0x0e9c, 0x0f75, 0x0f33,
+ 0x1199, 0x1373, 0x1368, 0x1416, 0x161d, 0x19c0,
+ 0x1ada, 0x17c9, 0x158c, 0x13f4, 0x1106, 0x1069,
+ 0x13d0, 0x1878, 0x1d29, 0x2161, 0x2015, 0x1736,
+ 0x0e9c, 0x09e7, 0x061a, 0x0678, 0x0bed, 0x0f72,
+ 0x0ebd, 0x0bde, 0x08c9, 0x084c, 0x0a9c, 0x1055,
+ 0x1765, 0x135a, 0x0500, 0x020d, 0x0956, 0x0724,
+ 0x043a, 0x0a60, 0x0bb6, 0x0b94, 0x0f1d, 0x08f4,
+ 0x04cb, 0x0ac3, 0x02e8, 0xf7d8, 0x0173, 0x0b5d,
+ 0x0c58, 0x1020, 0x0f6b, 0x0a22, 0x0679, 0x021b,
+ 0x05dc, 0x1065, 0x11f0, 0x0da4, 0x0a30, 0x05da,
+ 0x03eb, 0x048c, 0x0581, 0x0650, 0x03b4, 0xfe9a,
+ 0xfa9c, 0xf9af, 0xfc38, 0xfde0, 0xfe87, 0x001d,
+ 0xfe7a, 0xfa36, 0xf5ac, 0xf446, 0xfb13, 0xfd12,
+ 0xf591, 0xf732, 0xfb09, 0xf49d, 0xf2e1, 0xf5de,
+ 0xf66c, 0xfa0f, 0xfc38, 0xff94, 0x0568, 0xfe13,
+ 0xf60a, 0xfc03, 0xfc88, 0xf70a, 0xf827, 0xf9f3,
+ 0xfcda, 0xff15, 0xfcf0, 0x00bd, 0x0512, 0x00dd,
+ 0xff2c, 0x00d1, 0x0056, 0x0031, 0xff78, 0x01ab,
+ 0x063d, 0x0725, 0x0c82, 0x148e, 0x12a2, 0x0e48,
+ 0x0d49, 0x0c1c, 0x104b, 0x173d, 0x1731, 0x0f3d,
+ 0x04b9, 0x0379, 0x0ca0, 0x1245, 0x10b0, 0x0ac9,
+ 0x070f, 0x0c73, 0x0c8e, 0x035a, 0x02d4, 0x0292,
+ 0xfbbb, 0xfed7, 0x0209, 0xfcf4, 0xff5c, 0x00e0,
+ 0xfa05, 0xf772, 0xf5d6, 0xf801, 0x02a3, 0xfff2,
+ 0xef90, 0xe5e2, 0xe25b, 0xe73f, 0xf387, 0xf61d,
+ 0xf315, 0xf29c, 0xed87, 0xec88, 0xf64b, 0xfc72,
+ 0xfabb, 0xfa26, 0xfe58, 0x01aa, 0xfe64, 0xf9e5,
+ 0xf7d9, 0xf735, 0xfc11, 0xff43, 0xfa66, 0xfb6b,
+ 0x01bb, 0xfea0, 0xf8c0, 0xfbcc, 0x040e, 0x0537,
+ 0xfbb2, 0xf7dc, 0xfd98, 0xfd66, 0xfb79, 0xfef3,
+ 0x00a7, 0x024f, 0x00df, 0xf995, 0xfb66, 0x0040,
+ 0xf980, 0xf7a2, 0xfe34, 0xfa2d, 0xf1cd, 0xf3ca,
+ 0xf9b8, 0xfa33, 0xf66b, 0xf4ee, 0xf899, 0xfbc8,
+ 0xf79a, 0xf0d5, 0xf429, 0xfc8c, 0xfa8f, 0xf6d9,
+ 0xfc07, 0xfdfe, 0xfc56, 0x0154, 0x0489, 0x01bd,
+ 0x03e7, 0x0af0, 0x0f21, 0x0f8a, 0x0c15, 0x060e,
+ 0x03f3, 0x07d2, 0x0bf1, 0x0d9f, 0x0fa8, 0x12e8,
+ 0x14dc, 0x134e, 0x10da, 0x113f, 0x1023, 0x0acd,
+ 0x0a49, 0x12c6, 0x1a0f, 0x17fe, 0x1227, 0x1016,
+ 0x0dca, 0x08e3, 0x08e6, 0x0dbb, 0x11d1, 0x1426,
+ 0x121f, 0x0ea8, 0x0dc1, 0x09bc, 0x0656, 0x09b3,
+ 0x0bd0, 0x0cbe, 0x0f70, 0x0d83, 0x09d8, 0x070d,
+ 0x04c0, 0x0a70, 0x10b9, 0x0cd9, 0x0861, 0x07fa,
+ 0x08da, 0x094b, 0x0568, 0x057c, 0x0ae1, 0x0a74,
+ 0x0cc9, 0x0fe4, 0x048b, 0xfc64, 0xffa6, 0xfee0,
+ 0x020c, 0x0906, 0x062e, 0x02dc, 0xfff5, 0xf907,
+ 0xfb13, 0x012c, 0x00c3, 0x01a8, 0x01d6, 0xfd63,
+ 0xfc2a, 0xfdef, 0xfdb0, 0xfb6e, 0xfa6c, 0xfc67,
+ 0xfc45, 0xfbd0, 0x013e, 0x03ec, 0xfe04, 0xf7f8,
+ 0xf697, 0xf9e0, 0xff5e, 0x0188, 0xff09, 0xfa87,
+ 0xf86e, 0xfa7e, 0xfd8b, 0x0069, 0xff77, 0xf8d4,
+ 0xf763, 0xfd87, 0x01d8, 0x0567, 0x07a4, 0x0354,
+ 0xffde, 0x01de, 0x0199, 0xfbca, 0xf5e9, 0xf5eb,
+ 0xf883, 0xf686, 0xf4fb, 0xfab5, 0x0186, 0x0216,
+ 0xfe9c, 0xfcc0, 0xfb7e, 0xf7be, 0xf885, 0x021e,
+ 0x0829, 0x0064, 0xf308, 0xee04, 0xf1ea, 0xf5cc,
+ 0xf86c, 0xfbad, 0xfd47, 0xfdc0, 0xfbd7, 0xf829,
+ 0xfb95, 0x01dc, 0xffaa, 0xfbd4, 0xfb3d, 0xf88b,
+ 0xf849, 0xfcc0, 0xfecc, 0xfe05, 0xfcd7, 0xf98d,
+ 0xf4e0, 0xf466, 0xf976, 0xf965, 0xf217, 0xf282,
+ 0xf8a2, 0xf702, 0xf53a, 0xf8c3, 0xf9a2, 0xfa20,
+ 0xf9f2, 0xf40f, 0xf14c, 0xf252, 0xee9b, 0xef1d,
+ 0xf7c7, 0xfc57, 0xfc1e, 0xfb14, 0xf701, 0xf327,
+ 0xf2d0, 0xf5f0, 0xf967, 0xf5ab, 0xf0a4, 0xf2b2,
+ 0xf0ec, 0xec0d, 0xf005, 0xf2ed, 0xf0d0, 0xf3b9,
+ 0xf4cf, 0xf20a, 0xf520, 0xf822, 0xf64a, 0xf606,
+ 0xf78f, 0xf7fc, 0xf585, 0xf250, 0xf244, 0xf19a,
+ 0xf2e0, 0xf951, 0xf943, 0xf7e6, 0x00f9, 0x0246,
+ 0xf7b3, 0xf53d, 0xf659, 0xf48a, 0xf961, 0xff81,
+ 0x0039, 0x0019, 0xfd3d, 0xf784, 0xf56a, 0xf7cb,
+ 0xfa1e, 0xf9a7, 0xf9b1, 0xf9f1, 0xf67a, 0xf78b,
+ 0xff3d, 0x00ef, 0xff75, 0xffd4, 0xfa21, 0xf4d9,
+ 0xf5d1, 0xf38f, 0xf2ab, 0xf7ae, 0xf850, 0xf771,
+ 0xfa29, 0xf954, 0xf83d, 0xfd83, 0x0452, 0x0812,
+ 0x0555, 0xfbeb, 0xf55b, 0xf658, 0xf959, 0xfcc9,
+ 0x0243, 0x0652, 0x05df, 0x026c, 0xfe7c, 0xfe50,
+ 0x0362, 0x069c, 0x04ce, 0x01d8, 0xfe93, 0xfe4f,
+ 0x00cc, 0xfd6e, 0xfac1, 0x020f, 0x0879, 0x0926,
+ 0x0722, 0x012a, 0xffdf, 0x025a, 0xfe92, 0xffd4,
+ 0x056d, 0xffd9, 0xfc64, 0x0291, 0x041c, 0x0434,
+ 0x074c, 0x08b0, 0x08a7, 0x02f2, 0xfc56, 0xfe0a,
+ 0x0003, 0x01eb, 0x0566, 0x01d7, 0x0271, 0x09f1,
+ 0x0641, 0x02c0, 0x0a29, 0x0a3b, 0x0322, 0x00d1,
+ 0x02a0, 0x0717, 0x08cc, 0x07b5, 0x09b6, 0x08ff,
+ 0x0575, 0x0307, 0xfcbf, 0xf9eb, 0xfeba, 0xffcc,
+ 0x0019, 0x02df, 0x00f0, 0x0028, 0x0261, 0x00d8,
+ 0x0097, 0x0287, 0x0246, 0x0271, 0x00a3, 0xfcd5,
+ 0xfdb2, 0x0031, 0x0135, 0x021c, 0xfe36, 0xf816,
+ 0xf80a, 0xf939, 0xf707, 0xf705, 0xf95e, 0xfa62,
+ 0xfb1b, 0xfbab, 0xfccd, 0x0094, 0x036a, 0x02f1,
+ 0x0266, 0x01c7, 0x000b, 0xfebb, 0xfdf7, 0xfd89,
+ 0xfce6, 0xfd41, 0x008f, 0x0225, 0x0219, 0x05c8,
+ 0x05b4, 0x0114, 0x02e2, 0x033c, 0xfcbf, 0xfbd8,
+ 0xfd09, 0xfb0b, 0xff01, 0x03ce, 0x027b, 0x0337,
+ 0x0607, 0x04b8, 0x010d, 0xff36, 0x00bd, 0x01aa,
+ 0x011f, 0x0588, 0x0b54, 0x0999, 0x0471, 0x0368,
+ 0x05cc, 0x07a7, 0x073e, 0x056a, 0x047b, 0x0642,
+ 0x069e, 0x01d6, 0xfe3d, 0xfd68, 0xfae7, 0xfb36,
+ 0xfd81, 0xfc90, 0xfe19, 0xffbe, 0xfd0b, 0xff8c,
+ 0x027a, 0xfb8d, 0xf6a9, 0xf870, 0xf74a, 0xf563,
+ 0xf6c7, 0xf804, 0xf716, 0xf543, 0xf64a, 0xfa05,
+ 0xfbb3, 0xf9f4, 0xf682, 0xf5f4, 0xf813, 0xf44e,
+ 0xef9e, 0xf486, 0xf82b, 0xf418, 0xf474, 0xf82f,
+ 0xf6dd, 0xf602, 0xf881, 0xf980, 0xf96f, 0xf8ca,
+ 0xf519, 0xf15c, 0xf297, 0xf6aa, 0xf719, 0xf36d,
+ 0xf1d8, 0xf259, 0xefa0, 0xedff, 0xf18d, 0xf24f,
+ 0xef91, 0xf020, 0xef45, 0xeaed, 0xeb51, 0xef4d,
+ 0xf0f4, 0xf129, 0xf125, 0xf302, 0xf6bf, 0xf571,
+ 0xf0d6, 0xf25c, 0xf50f, 0xf1ef, 0xf34e, 0xfc93,
+ 0x0130, 0x0173, 0x0472, 0x056e, 0x0578, 0x08ab,
+ 0x0864, 0x0556, 0x03f6, 0x016d, 0x02a9, 0x07ee,
+ 0x06ec, 0x0595, 0x0b89, 0x0eaa, 0x0aba, 0x0651,
+ 0x0530, 0x068b, 0x0728, 0x078c, 0x08be, 0x09c4,
+ 0x0d8f, 0x0ff8, 0x0b2b, 0x0923, 0x0d4e, 0x0e23,
+ 0x0d2b, 0x0e56, 0x0f11, 0x0fa0, 0x0f34, 0x0c5d,
+ 0x099e, 0x0a49, 0x0e2b, 0x0f46, 0x0da7, 0x0e4b,
+ 0x0cb1, 0x0b55, 0x1128, 0x130f, 0x0eaf, 0x0f4f,
+ 0x0eff, 0x08ce, 0x04b7, 0x058d, 0x0b14, 0x0f35,
+ 0x0c67, 0x09e3, 0x07cd, 0x0392, 0x0488, 0x06a8,
+ 0x0552, 0x0640, 0x04fa, 0x0122, 0x0192, 0x0092,
+ 0xff86, 0x0428, 0x04da, 0x0093, 0xfe53, 0xfb33,
+ 0xf988, 0xfbac, 0xfb48, 0xf9ee, 0xfa01, 0xf845,
+ 0xf75c, 0xf702, 0xf425, 0xf322, 0xf31a, 0xf110,
+ 0xf273, 0xf3da, 0xef0c, 0xecce, 0xef96, 0xeff5,
+ 0xef63, 0xed8e, 0xea07, 0xed0a, 0xf2e0, 0xf34e,
+ 0xf34b, 0xf336, 0xf16e, 0xf25f, 0xf34f, 0xf48e,
+ 0xf91e, 0xf966, 0xf594, 0xf404, 0xf284, 0xf1f1,
+ 0xf22f, 0xf1a9, 0xf476, 0xf5cd, 0xf504, 0xfb5b,
+ 0x004d, 0xfef4, 0x0247, 0x050c, 0x025e, 0x0272,
+ 0x0411, 0x056d, 0x065b, 0x03fb, 0x031c, 0x0311,
+ 0x0229, 0x066c, 0x0715, 0x0046, 0xffbd, 0x01b6,
+ 0x011d, 0x054c, 0x06e1, 0x030f, 0x02f9, 0x01c7,
+ 0xfd82, 0xfe01, 0x01b9, 0x033f, 0x001f, 0xfad3,
+ 0xf825, 0xf673, 0xf613, 0xf76b, 0xf4cd, 0xf26e,
+ 0xf463, 0xf1d9, 0xebf4, 0xeb44, 0xec94, 0xead6,
+ 0xe90b, 0xeb9e, 0xee51, 0xebb5, 0xea29, 0xeacc,
+ 0xe76c, 0xe6d9, 0xebec, 0xeefc, 0xf154, 0xf1f3,
+ 0xeed6, 0xf000, 0xf2a4, 0xf0e8, 0xf2ab, 0xf6d3,
+ 0xf555, 0xf1b0, 0xf155, 0xf5b8, 0xfad6, 0xfb14,
+ 0xfb4c, 0xfcf2, 0xf933, 0xf573, 0xf76f, 0xf8e7,
+ 0xf93b, 0xf9e1, 0xf85f, 0xf842, 0xf8b2, 0xf450,
+ 0xf14c, 0xf28b, 0xf195, 0xf053, 0xef59, 0xea9a,
+ 0xe8d8, 0xeb8a, 0xeb16, 0xec2f, 0xf01e, 0xee0c,
+ 0xeab7, 0xebb4, 0xeb93, 0xeb94, 0xedb3, 0xee00,
+ 0xecd8, 0xeb01, 0xe90c, 0xe897, 0xe7ba, 0xe83d,
+ 0xeb98, 0xedbf, 0xf126, 0xf5b2, 0xf57d, 0xf5b7,
+ 0xf72b, 0xf2ac, 0xefc1, 0xf2bd, 0xf3f5, 0xf602,
+ 0xfa40, 0xfb3f, 0xfc67, 0xfe80, 0xfe3f, 0xfee6,
+ 0xffb2, 0xffab, 0x025a, 0x0384, 0x02b5, 0x05ea,
+ 0x0639, 0x0116, 0x02dc, 0x09f9, 0x0cee, 0x0f84,
+ 0x11f3, 0x0fb7, 0x0f1e, 0x1283, 0x136f, 0x1339,
+ 0x1450, 0x1216, 0x0d4b, 0x0bd8, 0x0df9, 0x108e,
+ 0x127f, 0x128a, 0x0f01, 0x0a3b, 0x0857, 0x0905,
+ 0x0a40, 0x0b26, 0x09d2, 0x0605, 0x019e, 0xfdbe,
+ 0xfbed, 0xfc57, 0xfd28, 0xfd44, 0xfb4d, 0xf98b,
+ 0xfc6a, 0xff9e, 0xfeee, 0xfee7, 0xfed8, 0xfae4,
+ 0xf7e0, 0xf89c, 0xf894, 0xf6ef, 0xf6be, 0xf7c4,
+ 0xf861, 0xf95d, 0xf9ea, 0xf89f, 0xf892, 0xf9bf,
+ 0xf9ea, 0xfe04, 0x0409, 0x01e8, 0xfc6c, 0xfc60,
+ 0xfd3d, 0xfbf8, 0xfb03, 0xfabd, 0xfbfd, 0xfe2f,
+ 0xfee4, 0xfdb9, 0xfc02, 0xfbfd, 0xfcbe, 0xfba2,
+ 0xfa9e, 0xfab9, 0xfafd, 0xfc6e, 0xfca5, 0xfa8b,
+ 0xfb0f, 0xfdf3, 0xfd8f, 0xf8e3, 0xf5da, 0xf902,
+ 0xfc0d, 0xfa2d, 0xf92d, 0xf93a, 0xf76c, 0xf73e,
+ 0xf790, 0xf73a, 0xf9c1, 0xfd58, 0xffbb, 0xfee8,
+ 0xf9a9, 0xf90d, 0xfe8d, 0xff46, 0xfd62, 0xff81,
+ 0x01ea, 0x0182, 0xfedd, 0xfdff, 0xfea8, 0xf9bc,
+ 0xf582, 0xf835, 0xf81a, 0xf7cd, 0xfc19, 0xfa95,
+ 0xf800, 0xfb39, 0xf9fc, 0xf741, 0xf896, 0xf704,
+ 0xf6d5, 0xf9f7, 0xf94e, 0xfab5, 0xff27, 0xfe88,
+ 0xfcbb, 0xfb91, 0xf879, 0xf8e3, 0xfc4a, 0xfde8,
+ 0xff79, 0xfffd, 0xfd65, 0xfa7c, 0xfa77, 0xfe98,
+ 0x023f, 0x00a5, 0xfe67, 0xff5a, 0x00c7, 0x00bf,
+ 0xfeec, 0xfcfd, 0xfc90, 0xfc4a, 0xfcd0, 0xfda3,
+ 0xfb91, 0xf973, 0xf93b, 0xf700, 0xf46c, 0xf449,
+ 0xf41f, 0xf506, 0xf779, 0xf6c4, 0xf489, 0xf593,
+ 0xf6c9, 0xf650, 0xf7cc, 0xf882, 0xf479, 0xf132,
+ 0xf1ce, 0xf2bc, 0xf476, 0xf6a6, 0xf652, 0xf54c,
+ 0xf3d2, 0xf1f4, 0xf47b, 0xf84f, 0xf816, 0xf7cf,
+ 0xf767, 0xf447, 0xf332, 0xf620, 0xfb3c, 0xff47,
+ 0xfd66, 0xfade, 0xfd1a, 0xfc3d, 0xf755, 0xf5d9,
+ 0xf663, 0xf6e7, 0xf838, 0xf8a2, 0xf92d, 0xfa28,
+ 0xf8ba, 0xf62c, 0xf5e8, 0xf828, 0xf963, 0xf7c3,
+ 0xf792, 0xf93d, 0xf908, 0xf946, 0xfaaf, 0xfb71,
+ 0xfe86, 0x01d5, 0x0098, 0xfd2d, 0xf9a1, 0xf81f,
+ 0xfaec, 0xfd9c, 0xfed6, 0x0005, 0xfdf2, 0xfc60,
+ 0xffba, 0x00f9, 0xfe78, 0xfd85, 0xfd84, 0xfda3,
+ 0xfd7d, 0xfc55, 0xfde4, 0x0060, 0xff1f, 0xffc4,
+ 0x039a, 0x0326, 0x0161, 0x0345, 0x03be, 0x0203,
+ 0x01e7, 0x02b5, 0x0470, 0x05d8, 0x0371, 0xfff6,
+ 0xfdcd, 0xfb81, 0xfbbf, 0xfde1, 0xfcf7, 0xfbf4,
+ 0xfd30, 0xfcaa, 0xfb82, 0xfcf3, 0xff8f, 0x00ec,
+ 0xff2a, 0xfb53, 0xf836, 0xf69d, 0xf8aa, 0xfdfc,
+ 0x0128, 0x017c, 0x00b6, 0xfeb3, 0xfee0, 0x023a,
+ 0x04b9, 0x0587, 0x0487, 0x0250, 0x02af, 0x04fd,
+ 0x0644, 0x0726, 0x0774, 0x0704, 0x06af, 0x05d6,
+ 0x0543, 0x04f1, 0x03b3, 0x039e, 0x03f2, 0x02ea,
+ 0x046b, 0x0642, 0x0304, 0x011f, 0x03b0, 0x0356,
+ 0x0178, 0x0229, 0x00fb, 0xff5e, 0x020a, 0x03e9,
+ 0x01bf, 0x001d, 0x00a1, 0x0227, 0x03ff, 0x0422,
+ 0x0291, 0x01c9, 0x023b, 0x02bf, 0x0263, 0x00bf,
+ 0xffc8, 0x01a7, 0x0356, 0x00b8, 0xfd9b, 0xff56,
+ 0x02eb, 0x0495, 0x04c7, 0x035b, 0x0279, 0x0446,
+ 0x0557, 0x0600, 0x0925, 0x097a, 0x04b0, 0x016c,
+ 0x018b, 0x02fb, 0x0668, 0x09b9, 0x09b9, 0x07f7,
+ 0x06a5, 0x06b4, 0x09bc, 0x0e09, 0x0fb1, 0x0ed6,
+ 0x0bec, 0x07ab, 0x0862, 0x0d69, 0x0cd6, 0x0874,
+ 0x084c, 0x0a7c, 0x0d04, 0x0f3e, 0x0e1c, 0x0c4e,
+ 0x0b4b, 0x07b6, 0x03f3, 0x0280, 0x0256, 0x0350,
+ 0x0246, 0xff26, 0xfe6e, 0xfdf7, 0xfbe9, 0xfb85,
+ 0xfc35, 0xfc5e, 0xfb55, 0xf8f6, 0xf956, 0xfd71,
+ 0x0107, 0x01d4, 0xffce, 0xfea0, 0x009e, 0x00fa,
+ 0xff63, 0xff9a, 0xff97, 0xfe48, 0xfd98, 0xff14,
+ 0x02fc, 0x04b2, 0x03e2, 0x0524, 0x04dc, 0x02e9,
+ 0x0567, 0x07ac, 0x06b6, 0x07f7, 0x099d, 0x087e,
+ 0x062a, 0x0397, 0x02b2, 0x01f9, 0xff21, 0xfd8c,
+ 0xfc70, 0xfa06, 0xf9ba, 0xf946, 0xf6ad, 0xf5da,
+ 0xf4d8, 0xf17b, 0xeec7, 0xecff, 0xecc3, 0xee8d,
+ 0xefa3, 0xf0dc, 0xf360, 0xf567, 0xf778, 0xf8b9,
+ 0xf75f, 0xf5f1, 0xf634, 0xf842, 0xfbba, 0xfcc9,
+ 0xfbf9, 0xfed1, 0x0217, 0x009a, 0xfff8, 0x0313,
+ 0x0454, 0x047d, 0x0688, 0x066f, 0x0566, 0x08c4,
+ 0x0c68, 0x0c6c, 0x0c49, 0x0b63, 0x0845, 0x07c3,
+ 0x0a3b, 0x0a0d, 0x0858, 0x0951, 0x09a5, 0x0798,
+ 0x08b8, 0x0be9, 0x0c2a, 0x0d5c, 0x1023, 0x0edd,
+ 0x0d47, 0x0f6b, 0x1066, 0x1014, 0x1097, 0x0e8e,
+ 0x0bb2, 0x0d1a, 0x1010, 0x10f7, 0x1183, 0x11e1,
+ 0x10ad, 0x0fc6, 0x0ffc, 0x0f82, 0x0f78, 0x1054,
+ 0x0f5d, 0x0e2f, 0x0f88, 0x10ca, 0x109d, 0x10bc,
+ 0x10fb, 0x1032, 0x0eb4, 0x0f37, 0x1262, 0x139b,
+ 0x1230, 0x1233, 0x12a5, 0x115c, 0x1033, 0x106a,
+ 0x11aa, 0x1206, 0x1007, 0x0dd8, 0x0c30, 0x0a06,
+ 0x0917, 0x0996, 0x094f, 0x07f4, 0x067b, 0x0649,
+ 0x06cb, 0x05d8, 0x0565, 0x076b, 0x0914, 0x08e0,
+ 0x07a6, 0x052d, 0x01e6, 0xff9a, 0xff8b, 0x0025,
+ 0xfeb0, 0xfc87, 0xfbd0, 0xfac1, 0xf911, 0xf9af,
+ 0xfc21, 0xfc02, 0xf98c, 0xfa58, 0xfd31, 0xfc47,
+ 0xfac9, 0xfc65, 0xfcf7, 0xfbd3, 0xfb2c, 0xfb38,
+ 0xfe58, 0x024c, 0x01d6, 0x0129, 0x0394, 0x042e,
+ 0x02f1, 0x0336, 0x03fb, 0x04a8, 0x054b, 0x04bd,
+ 0x0383, 0x02f3, 0x0400, 0x066f, 0x0787, 0x06a8,
+ 0x0621, 0x056e, 0x0470, 0x05e7, 0x0838, 0x08c8,
+ 0x0a9a, 0x0d8c, 0x0d4d, 0x0b65, 0x0a92, 0x09ce,
+ 0x09dc, 0x0ac9, 0x0a08, 0x0820, 0x0723, 0x078d,
+ 0x0898, 0x07f7, 0x0540, 0x02ad, 0x00a8, 0xfedc,
+ 0xfd79, 0xfbba, 0xf96d, 0xf737, 0xf568, 0xf425,
+ 0xf320, 0xf1ce, 0xeff3, 0xee91, 0xedfd, 0xeaeb,
+ 0xe660, 0xe6e6, 0xea40, 0xeab8, 0xeab5, 0xea14,
+ 0xe7d9, 0xe991, 0xed1d, 0xec77, 0xecaf, 0xf060,
+ 0xf1d8, 0xf1a5, 0xf3e8, 0xf6f4, 0xf7ff, 0xf7ba,
+ 0xf74f, 0xf6da, 0xf78b, 0xf8b3, 0xf6e2, 0xf3ea,
+ 0xf3b5, 0xf3db, 0xf31d, 0xf3fd, 0xf55b, 0xf5b5,
+ 0xf58f, 0xf41b, 0xf1db, 0xf0cc, 0xf0ab, 0xf00a,
+ 0xeecb, 0xed97, 0xeba3, 0xe911, 0xe8bb, 0xe9b1,
+ 0xe8e8, 0xe8d2, 0xeabb, 0xebae, 0xebba, 0xebb9,
+ 0xeb60, 0xebd2, 0xec68, 0xecc6, 0xeee3, 0xf099,
+ 0xef0b, 0xed40, 0xedb5, 0xeeaa, 0xef45, 0xf119,
+ 0xf480, 0xf6b8, 0xf6b4, 0xf78e, 0xf9a0, 0xfa4d,
+ 0xfaee, 0xfd01, 0xfe54, 0xff3b, 0x0139, 0x0283,
+ 0x0301, 0x0418, 0x046d, 0x03e3, 0x036c, 0x0308,
+ 0x053b, 0x0982, 0x0a7b, 0x08e7, 0x081e, 0x06e5,
+ 0x06b8, 0x08f4, 0x09d3, 0x092b, 0x09bc, 0x0abd,
+ 0x0b26, 0x0b66, 0x0c2e, 0x0c6b, 0x09c5, 0x073f,
+ 0x0875, 0x09d0, 0x09df, 0x0aa6, 0x09d9, 0x07e2,
+ 0x0831, 0x0875, 0x075e, 0x0818, 0x0994, 0x094d,
+ 0x0976, 0x0ad6, 0x0ae2, 0x0ad3, 0x0cb4, 0x0d4e,
+ 0x0b78, 0x09fd, 0x081e, 0x05a9, 0x0505, 0x04ba,
+ 0x041e, 0x04d6, 0x04c2, 0x036d, 0x033a, 0x02e6,
+ 0x01ca, 0x0102, 0xff9d, 0xfe08, 0xfd8c, 0xfdf1,
+ 0xff86, 0x00b5, 0xff62, 0xfe07, 0xfeef, 0x0027,
+ 0xffdd, 0xfe2e, 0xfcb4, 0xfd68, 0xfef2, 0xfe2d,
+ 0xfc31, 0xfbea, 0xfc7b, 0xfd13, 0xfeb4, 0xff51,
+ 0xfde0, 0xfd7c, 0xfdea, 0xfd66, 0xfd8e, 0xfd90,
+ 0xfc27, 0xfc3e, 0xfd8f, 0xfd21, 0xfc7f, 0xfcee,
+ 0xfc7b, 0xfb7a, 0xfb68, 0xfaf8, 0xf99d, 0xf913,
+ 0xf8dc, 0xf831, 0xf92e, 0xfabe, 0xf9c4, 0xf8d7,
+ 0xf9eb, 0xfa09, 0xf93c, 0xf969, 0xfa20, 0xfb5d,
+ 0xfc20, 0xfb43, 0xface, 0xfad6, 0xf9e2, 0xfa62,
+ 0xfc9e, 0xfcaf, 0xfb29, 0xfb13, 0xfb20, 0xfa27,
+ 0xf9f8, 0xfab5, 0xfb23, 0xfbca, 0xfd4d, 0xfe5c,
+ 0xfd2f, 0xfae2, 0xfa7a, 0xfb97, 0xfc2a, 0xfc91,
+ 0xfc6b, 0xfb94, 0xfc4e, 0xfdc2, 0xfe2d, 0xfee5,
+ 0xfeea, 0xfdcf, 0xfefc, 0x012a, 0x00f8, 0x0019,
+ 0xff84, 0xfe50, 0xfdc8, 0xfe5b, 0xfe93, 0xfe09,
+ 0xfda7, 0xfd71, 0xfcd2, 0xfd8e, 0xffc1, 0x0006,
+ 0xff6f, 0xffbb, 0xfd9d, 0xfa5f, 0xf9ae, 0xf9c8,
+ 0xfb01, 0xfda0, 0xfd86, 0xfbf0, 0xfb71, 0xf9ab,
+ 0xf858, 0xf9af, 0xfa49, 0xfa11, 0xfb11, 0xfb50,
+ 0xfad2, 0xfc0b, 0xfdcc, 0xfd6b, 0xfba2, 0xfb2c,
+ 0xfc7a, 0xfdc9, 0xfe3f, 0xfdfc, 0xfd01, 0xfb43,
+ 0xf952, 0xf88b, 0xf917, 0xf9df, 0xfb16, 0xfc66,
+ 0xfc51, 0xfb8e, 0xfadf, 0xf97c, 0xf8e8, 0xfa26,
+ 0xfa3f, 0xf882, 0xf838, 0xfa0d, 0xfbda, 0xfc89,
+ 0xfc09, 0xfb8d, 0xfcbc, 0xfec2, 0xffb1, 0xff27,
+ 0xfde2, 0xfd86, 0xfe1b, 0xfd6d, 0xfc14, 0xfbe9,
+ 0xfbac, 0xfb6c, 0xfcea, 0xfeb6, 0xff24, 0xfed4,
+ 0xfe4a, 0xfdc1, 0xfcfa, 0xfbc6, 0xfbf4, 0xfe42,
+ 0xffb6, 0xfe99, 0xfdc1, 0xfe47, 0xfd31, 0xfbd1,
+ 0xfe09, 0x00a7, 0x0081, 0x0091, 0x0101, 0x0076,
+ 0x00d5, 0x0162, 0x00de, 0x00c9, 0x006d, 0xffaa,
+ 0x006c, 0x014b, 0x010b, 0x01c3, 0x03b1, 0x04ac,
+ 0x03a4, 0x019a, 0xffe0, 0xfe5c, 0xfd3a, 0xfca8,
+ 0xfc15, 0xfc88, 0xfd83, 0xfc4f, 0xfb14, 0xfc5c,
+ 0xfc8a, 0xfabd, 0xfab1, 0xfbc3, 0xfb5c, 0xfaa3,
+ 0xfb5d, 0xfd3a, 0xfed6, 0xff75, 0x0029, 0x01f9,
+ 0x0413, 0x0587, 0x0628, 0x05c2, 0x04e7, 0x047b,
+ 0x03f0, 0x02fb, 0x0293, 0x02cf, 0x037a, 0x0449,
+ 0x0451, 0x0499, 0x0595, 0x0478, 0x0273, 0x0326,
+ 0x034d, 0x004e, 0xfee9, 0x0022, 0xffdc, 0xfe99,
+ 0xfeb5, 0xfee4, 0xfe45, 0xfdfe, 0xfe95, 0xff83,
+ 0xff29, 0xfd48, 0xfd55, 0xffdd, 0x004a, 0xff06,
+ 0x001f, 0x012b, 0xff5e, 0xfdf2, 0xfe84, 0xffb5,
+ 0x014b, 0x025b, 0x01a4, 0xfff7, 0xff02, 0xffa0,
+ 0x0045, 0xff2a, 0xfe11, 0xfe98, 0xfef2, 0xfe42,
+ 0xfe50, 0x0007, 0x01a6, 0x00fe, 0xff4d, 0xff77,
+ 0x00ca, 0x0132, 0x015e, 0x01e9, 0x0194, 0x00d7,
+ 0x01af, 0x03d2, 0x0587, 0x0697, 0x070f, 0x067d,
+ 0x05dc, 0x061d, 0x0626, 0x055c, 0x04c6, 0x04fb,
+ 0x05e7, 0x06ad, 0x05f7, 0x04c1, 0x0504, 0x059e,
+ 0x0512, 0x03dc, 0x01d2, 0xffdd, 0x0017, 0x0108,
+ 0x00ca, 0x00d0, 0x010a, 0x0052, 0xff94, 0xfed8,
+ 0xfe39, 0xff1e, 0x0083, 0x00f6, 0x00b5, 0xff8b,
+ 0xfebe, 0xffe9, 0x0140, 0x0232, 0x0426, 0x0551,
+ 0x0441, 0x0319, 0x032e, 0x03f2, 0x048c, 0x03e8,
+ 0x021e, 0x00ad, 0x0026, 0xffc9, 0xff75, 0xff9f,
+ 0xff7c, 0xfe7e, 0xfdba, 0xfd29, 0xfc15, 0xfb80,
+ 0xfbd6, 0xfc50, 0xfc82, 0xfb57, 0xf918, 0xf82e,
+ 0xf85b, 0xf7ab, 0xf62d, 0xf461, 0xf337, 0xf393,
+ 0xf3eb, 0xf3a5, 0xf3de, 0xf387, 0xf223, 0xf15a,
+ 0xf165, 0xf244, 0xf381, 0xf2d6, 0xf11b, 0xf140,
+ 0xf21a, 0xf1e6, 0xf1b0, 0xf1f1, 0xf27b, 0xf33b,
+ 0xf36d, 0xf356, 0xf40c, 0xf544, 0xf61c, 0xf68b,
+ 0xf792, 0xf99c, 0xfb40, 0xfc06, 0xfd24, 0xfe64,
+ 0xff47, 0x00c7, 0x02f5, 0x04f0, 0x066d, 0x0755,
+ 0x07f8, 0x08b1, 0x0961, 0x0ab6, 0x0d11, 0x0ed2,
+ 0x0ec6, 0x0e26, 0x0e61, 0x0f19, 0x0fc7, 0x10c2,
+ 0x10ff, 0x0fab, 0x0f4c, 0x10ac, 0x10df, 0x1002,
+ 0x1011, 0x102b, 0x1009, 0x1084, 0x1138, 0x11e1,
+ 0x119e, 0x1086, 0x11c2, 0x14c3, 0x1574, 0x14ab,
+ 0x1452, 0x134b, 0x12b1, 0x13d3, 0x152e, 0x1647,
+ 0x16cb, 0x1632, 0x164f, 0x1751, 0x172b, 0x16b3,
+ 0x16c6, 0x1634, 0x15fd, 0x16dc, 0x1693, 0x155e,
+ 0x1570, 0x15d6, 0x15bd, 0x1623, 0x1585, 0x131b,
+ 0x1222, 0x1332, 0x1395, 0x133e, 0x1268, 0x1049,
+ 0x0eda, 0x0ed2, 0x0dc6, 0x0c77, 0x0c89, 0x0c00,
+ 0x0a54, 0x08ac, 0x06dc, 0x064a, 0x06f8, 0x05b7,
+ 0x03b8, 0x0363, 0x01ed, 0xff5b, 0xff48, 0x0089,
+ 0x0128, 0x016f, 0x0056, 0xfe83, 0xfe07, 0xfe5a,
+ 0xff28, 0xffea, 0xfec1, 0xfd30, 0xfd07, 0xfc57,
+ 0xfba5, 0xfd5a, 0xff26, 0xfe8c, 0xfdcd, 0xfe95,
+ 0xff5e, 0xff84, 0xffbd, 0xffce, 0xff82, 0xff1b,
+ 0xfebf, 0xff61, 0x00b7, 0x00fb, 0x0134, 0x0276,
+ 0x0326, 0x042b, 0x0658, 0x06a2, 0x0596, 0x064e,
+ 0x072b, 0x070f, 0x0822, 0x0aae, 0x0da2, 0x0f9f,
+ 0x0fa2, 0x0f42, 0x0eee, 0x0d1e, 0x0b9d, 0x0c14,
+ 0x0c41, 0x0b88, 0x0b27, 0x0aba, 0x0a4b, 0x0980,
+ 0x06f2, 0x044d, 0x0330, 0x011f, 0xfd77, 0xfad0,
+ 0xf97c, 0xf858, 0xf6f3, 0xf4ef, 0xf34f, 0xf2ec,
+ 0xf253, 0xf0fc, 0xf02f, 0xf034, 0xf087, 0xf0c9,
+ 0xf066, 0xef91, 0xef85, 0xf06c, 0xf114, 0xf188,
+ 0xf2b5, 0xf3b6, 0xf3cb, 0xf437, 0xf58e, 0xf725,
+ 0xf809, 0xf79e, 0xf731, 0xf779, 0xf748, 0xf769,
+ 0xf83f, 0xf819, 0xf853, 0xf9d6, 0xf994, 0xf80b,
+ 0xf7e9, 0xf7bf, 0xf6da, 0xf64c, 0xf533, 0xf410,
+ 0xf449, 0xf47d, 0xf418, 0xf3fc, 0xf310, 0xf119,
+ 0xf00c, 0xefe9, 0xef5a, 0xee9c, 0xee12, 0xedb5,
+ 0xedec, 0xee09, 0xecd6, 0xeb44, 0xeaaa, 0xea25,
+ 0xe958, 0xea0c, 0xec68, 0xee60, 0xef84, 0xf0a5,
+ 0xf168, 0xf189, 0xf18c, 0xf1e1, 0xf2ca, 0xf3cc,
+ 0xf46a, 0xf51c, 0xf60b, 0xf790, 0xfa20, 0xfc2e,
+ 0xfcf3, 0xfe56, 0x00e0, 0x035b, 0x04ec, 0x0544,
+ 0x056b, 0x0631, 0x0726, 0x08c2, 0x0aab, 0x0b62,
+ 0x0baf, 0x0c97, 0x0d8d, 0x0e41, 0x0e3e, 0x0e06,
+ 0x0ece, 0x0f8a, 0x0fc7, 0x1099, 0x1105, 0x1091,
+ 0x1070, 0x106b, 0x1062, 0x10b7, 0x1094, 0x100f,
+ 0x1021, 0x109b, 0x10db, 0x1083, 0x1023, 0x10cf,
+ 0x11e1, 0x1203, 0x116b, 0x10de, 0x104d, 0x0ef9,
+ 0x0d0d, 0x0bf9, 0x0bd7, 0x0bbd, 0x0c22, 0x0cd1,
+ 0x0c61, 0x0b9a, 0x0b92, 0x0ad5, 0x0943, 0x08b7,
+ 0x089f, 0x0776, 0x05f8, 0x0553, 0x05a3, 0x059d,
+ 0x03fc, 0x0242, 0x01e6, 0x01bd, 0x01af, 0x0241,
+ 0x027e, 0x0262, 0x0202, 0x011c, 0x0160, 0x02ee,
+ 0x0356, 0x02bd, 0x02ad, 0x02bb, 0x0247, 0x0194,
+ 0x0146, 0x01a9, 0x01e0, 0x00fd, 0xff7d, 0xfebd,
+ 0xfed4, 0xfe9b, 0xfe6b, 0xfef8, 0xff65, 0xff9b,
+ 0xffa9, 0xfeb3, 0xfdb5, 0xfd96, 0xfd58, 0xfd70,
+ 0xfe70, 0xff10, 0xff15, 0xff12, 0xfecf, 0xfe17,
+ 0xfd0c, 0xfc20, 0xfb81, 0xfb34, 0xfbc5, 0xfc4a,
+ 0xfb61, 0xfa74, 0xfa70, 0xfa2e, 0xfa76, 0xfc34,
+ 0xfd92, 0xfd96, 0xfd41, 0xfcab, 0xfba3, 0xfadf,
+ 0xfa47, 0xf96d, 0xf910, 0xf968, 0xfa13, 0xfb45,
+ 0xfc35, 0xfc31, 0xfc0c, 0xfbaa, 0xfb6b, 0xfc9d,
+ 0xfd5d, 0xfc43, 0xfc12, 0xfdb5, 0xff28, 0xff98,
+ 0xff41, 0xff0c, 0xff77, 0xffb3, 0x001e, 0x0141,
+ 0x0183, 0x003f, 0xff2b, 0xff6a, 0x0040, 0x0098,
+ 0x006f, 0x0033, 0x003d, 0x0092, 0x000e, 0xfe7e,
+ 0xfd95, 0xfd6a, 0xfd39, 0xfd99, 0xfe0a, 0xfda4,
+ 0xfcf1, 0xfbf1, 0xfab3, 0xfa18, 0xf9ee, 0xfa28,
+ 0xfb9d, 0xfd92, 0xfeba, 0xfebc, 0xfd75, 0xfc09,
+ 0xfc00, 0xfc24, 0xfb61, 0xfb3a, 0xfbc1, 0xfc18,
+ 0xfd42, 0xfe65, 0xfd88, 0xfbf3, 0xfac6, 0xf9b1,
+ 0xf9ce, 0xfb12, 0xfc29, 0xfcf3, 0xfcd5, 0xfbe6,
+ 0xfbff, 0xfc89, 0xfbb0, 0xfa7d, 0xfa28, 0xf9de,
+ 0xf95f, 0xf9a1, 0xfa6d, 0xfafe, 0xfc1d, 0xfd96,
+ 0xfdd4, 0xfd8b, 0xfdca, 0xfdb8, 0xfd4e, 0xfcd4,
+ 0xfc11, 0xfb7f, 0xfafc, 0xfa6a, 0xfa6c, 0xfa69,
+ 0xfa45, 0xfb23, 0xfc7a, 0xfcf8, 0xfc88, 0xfc1d,
+ 0xfc89, 0xfcbf, 0xfc27, 0xfc13, 0xfc55, 0xfc49,
+ 0xfc84, 0xfc61, 0xfbbd, 0xfbb1, 0xfb87, 0xfaf6,
+ 0xfb79, 0xfd0e, 0xfe72, 0xff46, 0xffe1, 0x0009,
+ 0xff1c, 0xfdb2, 0xfce4, 0xfced, 0xfdd8, 0xfec2,
+ 0xfecc, 0xff6c, 0x0133, 0x01b3, 0xffce, 0xfd42,
+ 0xfb30, 0xf91f, 0xf7b0, 0xf80d, 0xf91f, 0xf9ed,
+ 0xfae8, 0xfb26, 0xfa6c, 0xfa26, 0xfa50, 0xfad4,
+ 0xfbbc, 0xfbc5, 0xfb4a, 0xfb42, 0xfb18, 0xfb1a,
+ 0xfba3, 0xfc88, 0xfe26, 0xffa7, 0x00c6, 0x0250,
+ 0x02d9, 0x024e, 0x02ab, 0x02ee, 0x0243, 0x023e,
+ 0x02f2, 0x03b7, 0x0432, 0x03da, 0x036b, 0x0352,
+ 0x02a5, 0x017f, 0x0102, 0x016c, 0x01af, 0x0141,
+ 0x00e6, 0x007f, 0xffd2, 0xff82, 0xfeb9, 0xfd7d,
+ 0xfd81, 0xfdc6, 0xfd45, 0xfd60, 0xfdc7, 0xfdac,
+ 0xfdae, 0xfd78, 0xfcfb, 0xfd14, 0xfd9b, 0xfe03,
+ 0xfe17, 0xfe27, 0xfeba, 0xff59, 0xffe3, 0x00dd,
+ 0x01a8, 0x01b0, 0x0140, 0x0053, 0xff2e, 0xfe36,
+ 0xfd8b, 0xfd47, 0xfcc9, 0xfbdf, 0xfb91, 0xfc08,
+ 0xfcef, 0xfe59, 0xff67, 0xff9f, 0xffd5, 0x0015,
+ 0x0041, 0x0103, 0x022e, 0x030b, 0x03b2, 0x0416,
+ 0x03eb, 0x0385, 0x035f, 0x039d, 0x040e, 0x043b,
+ 0x0457, 0x04e7, 0x053d, 0x04cc, 0x04a8, 0x053c,
+ 0x058c, 0x05ae, 0x069a, 0x07af, 0x075e, 0x05e8,
+ 0x04e8, 0x04c9, 0x04e8, 0x04b7, 0x0406, 0x0350,
+ 0x02cc, 0x0216, 0x0199, 0x01f1, 0x02b3, 0x0346,
+ 0x0346, 0x02c5, 0x025e, 0x024e, 0x02b4, 0x0389,
+ 0x0405, 0x03d8, 0x0375, 0x039b, 0x04aa, 0x051f,
+ 0x0438, 0x042d, 0x0540, 0x0553, 0x0488, 0x0392,
+ 0x0219, 0x00e8, 0x00d6, 0x0140, 0x0113, 0x0077,
+ 0x00bc, 0x015e, 0x00f9, 0x006e, 0x001f, 0xfefe,
+ 0xfd9e, 0xfcea, 0xfcf3, 0xfd98, 0xfdf6, 0xfe0e,
+ 0xfe8d, 0xfe6f, 0xfd72, 0xfce9, 0xfc84, 0xfb45,
+ 0xf987, 0xf831, 0xf7bb, 0xf76a, 0xf633, 0xf46a,
+ 0xf35a, 0xf375, 0xf385, 0xf2c5, 0xf264, 0xf2b2,
+ 0xf2c3, 0xf2a8, 0xf241, 0xf1a0, 0xf1e5, 0xf286,
+ 0xf270, 0xf25c, 0xf241, 0xf1a9, 0xf189, 0xf221,
+ 0xf2e4, 0xf3f8, 0xf54d, 0xf662, 0xf731, 0xf824,
+ 0xf94c, 0xfa39, 0xfb29, 0xfc84, 0xfdbd, 0xff19,
+ 0x016f, 0x0405, 0x05d9, 0x06cd, 0x06c4, 0x0611,
+ 0x0573, 0x057b, 0x0656, 0x0749, 0x07cd, 0x0844,
+ 0x0889, 0x08ba, 0x09a7, 0x0ab1, 0x0aff, 0x0b50,
+ 0x0bc6, 0x0b81, 0x0b11, 0x0b98, 0x0c78, 0x0cab,
+ 0x0cc4, 0x0d4a, 0x0d9b, 0x0dd9, 0x0ebe, 0x0fcd,
+ 0x1053, 0x107e, 0x1077, 0x106b, 0x10c8, 0x115c,
+ 0x117f, 0x119d, 0x12ab, 0x1412, 0x14fa, 0x15fe,
+ 0x173c, 0x1829, 0x18de, 0x1925, 0x195e, 0x1a87,
+ 0x1b9e, 0x1be0, 0x1c58, 0x1c66, 0x1b4e, 0x1a75,
+ 0x19d8, 0x1898, 0x178c, 0x171c, 0x16af, 0x15f0,
+ 0x1490, 0x12e7, 0x11be, 0x10d9, 0x0fc5, 0x0ee4,
+ 0x0e77, 0x0ded, 0x0d08, 0x0c57, 0x0bd9, 0x0b14,
+ 0x0a0a, 0x08d5, 0x07bf, 0x06ed, 0x05ee, 0x0512,
+ 0x048b, 0x03a2, 0x0332, 0x03b3, 0x034b, 0x022b,
+ 0x01d8, 0x0193, 0x0102, 0x00a0, 0xfffb, 0xff46,
+ 0xfedd, 0xfea8, 0xff09, 0xff54, 0xfea9, 0xfde2,
+ 0xfd22, 0xfbf4, 0xfb49, 0xfb75, 0xfbaf, 0xfbf9,
+ 0xfc4f, 0xfc3a, 0xfc28, 0xfcbd, 0xfd8a, 0xfe22,
+ 0xff01, 0x0057, 0x01f5, 0x03d5, 0x058c, 0x0717,
+ 0x08e2, 0x09f3, 0x09bf, 0x09db, 0x0ad5, 0x0bd5,
+ 0x0cec, 0x0dd2, 0x0dc0, 0x0d55, 0x0d3a, 0x0cdc,
+ 0x0c31, 0x0bc9, 0x0b7c, 0x0b2e, 0x0b03, 0x0a54,
+ 0x08e6, 0x07ab, 0x06ae, 0x052f, 0x0346, 0x0152,
+ 0xff7e, 0xfe0c, 0xfd06, 0xfc10, 0xfa9a, 0xf8b9,
+ 0xf746, 0xf61c, 0xf4c9, 0xf40e, 0xf3cd, 0xf305,
+ 0xf259, 0xf295, 0xf2f0, 0xf2a5, 0xf209, 0xf1d4,
+ 0xf20a, 0xf22e, 0xf27a, 0xf32a, 0xf3eb, 0xf4cb,
+ 0xf584, 0xf566, 0xf557, 0xf65b, 0xf6fd, 0xf679,
+ 0xf6aa, 0xf7a2, 0xf765, 0xf6b2, 0xf718, 0xf778,
+ 0xf739, 0xf722, 0xf6d5, 0xf638, 0xf60b, 0xf63c,
+ 0xf695, 0xf733, 0xf75b, 0xf61f, 0xf445, 0xf335,
+ 0xf235, 0xf056, 0xef12, 0xeea7, 0xed72, 0xec01,
+ 0xeb7f, 0xeb63, 0xeb40, 0xeb11, 0xeb30, 0xebd9,
+ 0xebff, 0xeb60, 0xea8a, 0xe902, 0xe772, 0xe6e2,
+ 0xe687, 0xe687, 0xe78c, 0xe8c6, 0xea16, 0xeba9,
+ 0xecf3, 0xee3d, 0xefaf, 0xf103, 0xf292, 0xf400,
+ 0xf4eb, 0xf5fc, 0xf730, 0xf824, 0xf8f4, 0xf97c,
+ 0xf9e5, 0xfad3, 0xfc31, 0xfd5e, 0xfe2e, 0xff0d,
+ 0xffed, 0x0067, 0x012f, 0x02d7, 0x04a4, 0x0678,
+ 0x088b, 0x0a06, 0x0aaa, 0x0b08, 0x0b3c, 0x0bc1,
+ 0x0d0b, 0x0e87, 0x0fe8, 0x113d, 0x122b, 0x130f,
+ 0x1421, 0x144c, 0x13ec, 0x1450, 0x1472, 0x13c3,
+ 0x13e6, 0x14c5, 0x1540, 0x158c, 0x157f, 0x1538,
+ 0x153f, 0x14b0, 0x13a2, 0x135c, 0x12ec, 0x1135,
+ 0x0f55, 0x0e72, 0x0e9d, 0x0ef9, 0x0eae, 0x0e2a,
+ 0x0d9c, 0x0c6a, 0x0aeb, 0x09d0, 0x0935, 0x090c,
+ 0x08fd, 0x0894, 0x07ee, 0x07a8, 0x07a3, 0x06df,
+ 0x05d9, 0x05e1, 0x0634, 0x05fa, 0x05d5, 0x05ae,
+ 0x0540, 0x04cf, 0x0422, 0x0380, 0x032a, 0x026a,
+ 0x01ac, 0x01d4, 0x022c, 0x0210, 0x01d3, 0x01cb,
+ 0x0230, 0x02e4, 0x037c, 0x0390, 0x02e2, 0x01d1,
+ 0x00e2, 0xfffb, 0xff12, 0xfe7d, 0xfe76, 0xff0b,
+ 0xfffe, 0x00fe, 0x01fa, 0x0307, 0x03ed, 0x03de,
+ 0x02bd, 0x0172, 0x0046, 0xff49, 0xfebd, 0xfe29,
+ 0xfdb7, 0xfe32, 0xfeec, 0xff31, 0xff3b, 0xfef4,
+ 0xfe9d, 0xfe5e, 0xfdc9, 0xfd31, 0xfcc3, 0xfc32,
+ 0xfc1a, 0xfc5d, 0xfbf4, 0xfb54, 0xfb54, 0xfba2,
+ 0xfbda, 0xfc04, 0xfc06, 0xfbd5, 0xfc22, 0xfd2c,
+ 0xfd98, 0xfd55, 0xfdea, 0xfed9, 0xff39, 0xffbe,
+ 0x0077, 0x0138, 0x01f7, 0x01f8, 0x01d4, 0x0281,
+ 0x02cb, 0x0221, 0x017e, 0x012c, 0x0122, 0x012c,
+ 0x00b8, 0x000d, 0xffbd, 0xff93, 0xff0b, 0xfe70,
+ 0xfeb1, 0xff66, 0xff4f, 0xfeab, 0xfe2d, 0xfdf1,
+ 0xfdfa, 0xfddd, 0xfdbf, 0xfe5a, 0xff1a, 0xff6b,
+ 0xff8d, 0xff41, 0xfedb, 0xfed8, 0xfe6f, 0xfdb9,
+ 0xfda3, 0xfdbd, 0xfd93, 0xfda3, 0xfe22, 0xfe93,
+ 0xfe63, 0xfdf2, 0xfe2a, 0xfedd, 0xff6f, 0xfff9,
+ 0x009f, 0x012d, 0x014a, 0x00b4, 0x000b, 0x006d,
+ 0x013b, 0x00b9, 0xffb9, 0x000a, 0x0072, 0xffc4,
+ 0xff5f, 0xff72, 0xff09, 0xfe7f, 0xfdd9, 0xfceb,
+ 0xfc58, 0xfc01, 0xfb9d, 0xfb89, 0xfb97, 0xfb4c,
+ 0xfa79, 0xf949, 0xf85e, 0xf7d3, 0xf721, 0xf641,
+ 0xf5d9, 0xf60c, 0xf5be, 0xf4a6, 0xf42c, 0xf44f,
+ 0xf460, 0xf541, 0xf696, 0xf749, 0xf82d, 0xf942,
+ 0xf9b0, 0xf9f3, 0xfa15, 0xfa1e, 0xfab2, 0xfb20,
+ 0xfb36, 0xfc19, 0xfd5a, 0xfdba, 0xfcf5, 0xfbad,
+ 0xfb41, 0xfc03, 0xfcdc, 0xfd6d, 0xfe0d, 0xfebc,
+ 0xff1b, 0xfe9d, 0xfd80, 0xfcc1, 0xfcb0, 0xfc9c,
+ 0xfc0a, 0xfbd4, 0xfc6f, 0xfcb7, 0xfcba, 0xfd63,
+ 0xfdc7, 0xfd7a, 0xfd2e, 0xfc7d, 0xfbce, 0xfc6d,
+ 0xfdd4, 0xff12, 0x0012, 0x00c3, 0x0145, 0x01c7,
+ 0x0267, 0x0361, 0x0487, 0x05b1, 0x06cc, 0x0772,
+ 0x07d3, 0x0865, 0x0926, 0x09f8, 0x0a89, 0x0af0,
+ 0x0b6c, 0x0b61, 0x0ae6, 0x0ac7, 0x0a78, 0x09be,
+ 0x092d, 0x0891, 0x0849, 0x08bb, 0x08de, 0x0881,
+ 0x0872, 0x0887, 0x0875, 0x082d, 0x07b7, 0x079b,
+ 0x07ee, 0x0827, 0x081d, 0x07c4, 0x0738, 0x06f2,
+ 0x06dc, 0x068c, 0x0670, 0x0702, 0x0762, 0x06c4,
+ 0x05ef, 0x05a4, 0x0582, 0x0529, 0x04a3, 0x0417,
+ 0x0378, 0x02a9, 0x023c, 0x02ad, 0x035d, 0x03a6,
+ 0x038e, 0x0390, 0x03ea, 0x03f6, 0x039e, 0x03a1,
+ 0x03d1, 0x03de, 0x03de, 0x03af, 0x03bb, 0x0410,
+ 0x0431, 0x04a3, 0x0514, 0x0490, 0x040e, 0x03de,
+ 0x035b, 0x0340, 0x036b, 0x032d, 0x0333, 0x0365,
+ 0x037a, 0x03cb, 0x03ba, 0x0337, 0x02df, 0x0272,
+ 0x022f, 0x0220, 0x01c2, 0x01b5, 0x01ec, 0x0197,
+ 0x010c, 0x003a, 0xff22, 0xfe9e, 0xfe77, 0xfe78,
+ 0xff06, 0xffad, 0x0068, 0x0140, 0x01a5, 0x020b,
+ 0x0239, 0x014f, 0x0098, 0x00f9, 0x0159, 0x0188,
+ 0x01bf, 0x01ba, 0x021c, 0x0341, 0x0432, 0x0462,
+ 0x045d, 0x0477, 0x0445, 0x03bc, 0x0390, 0x0423,
+ 0x0517, 0x05af, 0x05af, 0x05d1, 0x0639, 0x05f3,
+ 0x04f9, 0x0453, 0x0458, 0x0493, 0x04b7, 0x04c9,
+ 0x04c9, 0x04c1, 0x0484, 0x03ac, 0x02a0, 0x01ff,
+ 0x0178, 0x00ee, 0x00ae, 0x008f, 0x009c, 0x00ba,
+ 0x006e, 0x0010, 0xffe5, 0xffa5, 0xff7d, 0xff3c,
+ 0xfe78, 0xfd98, 0xfcc1, 0xfbd7, 0xfb11, 0xfa67,
+ 0xf9e1, 0xf9ae, 0xf9b1, 0xf984, 0xf883, 0xf6d1,
+ 0xf529, 0xf31f, 0xf0a7, 0xef1d, 0xeedf, 0xef51,
+ 0xefec, 0xf04f, 0xf0ca, 0xf141, 0xf0dd, 0xf018,
+ 0xefc5, 0xefaa, 0xefa5, 0xefdc, 0xf061, 0xf0f9,
+ 0xf122, 0xf147, 0xf1e8, 0xf27c, 0xf31c, 0xf438,
+ 0xf588, 0xf6e7, 0xf7f1, 0xf87b, 0xf948, 0xfa31,
+ 0xfab4, 0xfb46, 0xfbb7, 0xfbba, 0xfbf0, 0xfc8b,
+ 0xfd79, 0xfeac, 0xffa6, 0x0074, 0x013f, 0x018d,
+ 0x0191, 0x01ed, 0x02b4, 0x03a3, 0x0445, 0x0492,
+ 0x0513, 0x0605, 0x0759, 0x08b6, 0x09bf, 0x0afd,
+ 0x0ca0, 0x0dc7, 0x0e9c, 0x0ff5, 0x1152, 0x1221,
+ 0x12ea, 0x1414, 0x1585, 0x1705, 0x1846, 0x194e,
+ 0x1a2c, 0x1a7f, 0x1a49, 0x1a15, 0x1a05, 0x1a06,
+ 0x1a11, 0x1a1c, 0x1a5c, 0x1a86, 0x19f2, 0x194c,
+ 0x195d, 0x193b, 0x184b, 0x1761, 0x16e0, 0x1629,
+ 0x14e5, 0x13b2, 0x130e, 0x1266, 0x115d, 0x1077,
+ 0x0ffd, 0x0fe5, 0x1006, 0x0fce, 0x0f04, 0x0e2b,
+ 0x0d86, 0x0ccb, 0x0bc6, 0x0af2, 0x0a8e, 0x09c3,
+ 0x0850, 0x074f, 0x0728, 0x0708, 0x064e, 0x0558,
+ 0x04ec, 0x04b4, 0x03b9, 0x0298, 0x0251, 0x01fc,
+ 0x00b2, 0xff8a, 0xff53, 0xff41, 0xff03, 0xff49,
+ 0xfff0, 0x002f, 0x0039, 0x00c7, 0x01e5, 0x0308,
+ 0x03fe, 0x052c, 0x0695, 0x0798, 0x0828, 0x08df,
+ 0x09c5, 0x0a7a, 0x0af0, 0x0b0c, 0x0aaa, 0x0a28,
+ 0x0a12, 0x0a64, 0x0acc, 0x0b4e, 0x0c0a, 0x0caf,
+ 0x0cd6, 0x0cc1, 0x0cdd, 0x0d12, 0x0d15, 0x0cc2,
+ 0x0c25, 0x0b75, 0x0aa8, 0x0988, 0x0849, 0x0742,
+ 0x0648, 0x04f4, 0x0357, 0x0225, 0x01c8, 0x019d,
+ 0x00e9, 0xffc3, 0xfebd, 0xfe2f, 0xfdce, 0xfd54,
+ 0xfce3, 0xfc49, 0xfb73, 0xfaed, 0xfa9c, 0xfa05,
+ 0xf96c, 0xf922, 0xf935, 0xf9c0, 0xfa95, 0xfb71,
+ 0xfc1c, 0xfc50, 0xfc38, 0xfc51, 0xfcc3, 0xfd3f,
+ 0xfd7d, 0xfda6, 0xfdbc, 0xfd84, 0xfd3d, 0xfd04,
+ 0xfcba, 0xfcd5, 0xfd63, 0xfdf9, 0xfeb0, 0xff11,
+ 0xfe8d, 0xfdd5, 0xfd39, 0xfc65, 0xfba3, 0xfaf8,
+ 0xfa24, 0xf95d, 0xf8a6, 0xf7d7, 0xf6e9, 0xf5bf,
+ 0xf467, 0xf307, 0xf1c5, 0xf0e0, 0xf039, 0xef9a,
+ 0xeee7, 0xedb2, 0xec0e, 0xeac0, 0xe9da, 0xe90d,
+ 0xe8b6, 0xe91e, 0xe9a4, 0xe9c0, 0xea09, 0xeae2,
+ 0xeb72, 0xeb8f, 0xec19, 0xed02, 0xedad, 0xee3b,
+ 0xeecb, 0xef44, 0xefe1, 0xf0b9, 0xf1b3, 0xf30f,
+ 0xf4b1, 0xf608, 0xf731, 0xf893, 0xf9eb, 0xfb13,
+ 0xfc0a, 0xfc91, 0xfcfa, 0xfdb5, 0xfe98, 0xff75,
+ 0x0028, 0x00f1, 0x025d, 0x040b, 0x0575, 0x06c9,
+ 0x07dc, 0x08f8, 0x0abe, 0x0c6a, 0x0d7d, 0x0eb2,
+ 0x1011, 0x1119, 0x11b9, 0x124b, 0x1333, 0x1408,
+ 0x1465, 0x14a5, 0x14c4, 0x14ef, 0x1575, 0x1599,
+ 0x154e, 0x153c, 0x14e2, 0x142d, 0x13be, 0x1348,
+ 0x1275, 0x1171, 0x108f, 0x1021, 0x0fbc, 0x0f3d,
+ 0x0f2a, 0x0f1d, 0x0eaf, 0x0e48, 0x0ddf, 0x0d8a,
+ 0x0d65, 0x0cd2, 0x0c07, 0x0bb6, 0x0b83, 0x0b12,
+ 0x0a76, 0x0991, 0x0874, 0x0758, 0x066d, 0x05e8,
+ 0x058e, 0x04ff, 0x046c, 0x0420, 0x03bb, 0x02bc,
+ 0x018b, 0x010f, 0x013f, 0x0165, 0x013d, 0x00f1,
+ 0x00b0, 0x008b, 0x0043, 0xffa8, 0xff1a, 0xfeee,
+ 0xfeea, 0xfee3, 0xfedf, 0xfec4, 0xfe99, 0xfe28,
+ 0xfd6d, 0xfd57, 0xfdb1, 0xfd3d, 0xfcca, 0xfd0f,
+ 0xfcf2, 0xfcab, 0xfce6, 0xfccd, 0xfc3f, 0xfb92,
+ 0xfa9c, 0xf9d0, 0xf959, 0xf8f1, 0xf8d1, 0xf8bb,
+ 0xf86f, 0xf83e, 0xf80e, 0xf803, 0xf82b, 0xf80c,
+ 0xf80e, 0xf83e, 0xf7bb, 0xf702, 0xf6b6, 0xf66b,
+ 0xf655, 0xf686, 0xf65a, 0xf60c, 0xf61f, 0xf68c,
+ 0xf70b, 0xf77a, 0xf836, 0xf91f, 0xf981, 0xf9b7,
+ 0xfa43, 0xfab0, 0xfb08, 0xfbac, 0xfc5f, 0xfd05,
+ 0xfdaf, 0xfe38, 0xfe7a, 0xfe75, 0xfe6a, 0xfe9e,
+ 0xfecd, 0xfec5, 0xfec5, 0xfee3, 0xfefe, 0xff26,
+ 0xff52, 0xff5f, 0xff82, 0xfffc, 0x0089, 0x00c9,
+ 0x00c7, 0x00df, 0x010d, 0x00e8, 0x0079, 0x0000,
+ 0xff66, 0xfefe, 0xff14, 0xff1b, 0xfef7, 0xfee6,
+ 0xfe87, 0xfe11, 0xfe0d, 0xfe1d, 0xfe00, 0xfdb2,
+ 0xfd2a, 0xfcdc, 0xfcd0, 0xfcad, 0xfcc5, 0xfd13,
+ 0xfd34, 0xfd46, 0xfd5a, 0xfd7b, 0xfdb3, 0xfdc8,
+ 0xfe15, 0xfec9, 0xff36, 0xff5b, 0xff99, 0xffb7,
+ 0xffae, 0xff73, 0xfee5, 0xfe87, 0xfe9b, 0xfebf,
+ 0xfecf, 0xfeeb, 0xff09, 0xfedc, 0xfe5c, 0xfdf8,
+ 0xfd8f, 0xfcb7, 0xfbce, 0xfb37, 0xfb00, 0xfb00,
+ 0xfa83, 0xf99b, 0xf938, 0xf92d, 0xf906, 0xf92a,
+ 0xf98b, 0xf9e7, 0xfa44, 0xfa4c, 0xfa13, 0xfa03,
+ 0xfa08, 0xfa6b, 0xfb46, 0xfbea, 0xfc8f, 0xfd8d,
+ 0xfdf3, 0xfdc6, 0xfdef, 0xfe06, 0xfdd1, 0xfe00,
+ 0xfe52, 0xfe46, 0xfe30, 0xfe44, 0xfe49, 0xfe1e,
+ 0xfdd9, 0xfd8d, 0xfd19, 0xfcad, 0xfc7e, 0xfc39,
+ 0xfbe5, 0xfbd5, 0xfbc2, 0xfb97, 0xfb84, 0xfb83,
+ 0xfbce, 0xfc33, 0xfc2b, 0xfc11, 0xfc0a, 0xfbc7,
+ 0xfbaf, 0xfba2, 0xfb31, 0xfb23, 0xfbb4, 0xfc3d,
+ 0xfd04, 0xfe24, 0xfef5, 0xff81, 0xfffa, 0x0020,
+ 0x0024, 0x0041, 0x002b, 0xffef, 0x0017, 0x007f,
+ 0x0081, 0x0037, 0xffea, 0xff7c, 0xff5d, 0xffe0,
+ 0x0065, 0x00c7, 0x014a, 0x0178, 0x011c, 0x00cc,
+ 0x00d7, 0x013d, 0x01e4, 0x0283, 0x032e, 0x03f2,
+ 0x0444, 0x042b, 0x0461, 0x04bf, 0x0494, 0x0404,
+ 0x0377, 0x02f2, 0x027f, 0x023d, 0x021c, 0x01ee,
+ 0x0187, 0x00f4, 0x0088, 0x00af, 0x0140, 0x016e,
+ 0x00fc, 0x007c, 0x0005, 0xff68, 0xfed2, 0xfe67,
+ 0xfe77, 0xff16, 0xff7b, 0xff8a, 0xffea, 0x006a,
+ 0x00e4, 0x01b4, 0x0277, 0x02f2, 0x03b2, 0x04ab,
+ 0x0576, 0x062e, 0x06b7, 0x06d9, 0x06fa, 0x0755,
+ 0x0774, 0x0736, 0x0702, 0x06d5, 0x0683, 0x0620,
+ 0x05b2, 0x0579, 0x05af, 0x05f7, 0x0634, 0x0682,
+ 0x0689, 0x065d, 0x0648, 0x060d, 0x05ce, 0x05bf,
+ 0x05bd, 0x061b, 0x06ae, 0x06a7, 0x0678, 0x06c1,
+ 0x06d4, 0x0652, 0x05b8, 0x055c, 0x0554, 0x0562,
+ 0x0535, 0x04e7, 0x04d0, 0x0524, 0x0598, 0x05d6,
+ 0x0649, 0x0726, 0x07a4, 0x078f, 0x0794, 0x07af,
+ 0x0789, 0x0755, 0x070b, 0x0675, 0x060a, 0x05f6,
+ 0x0592, 0x04ee, 0x049b, 0x045e, 0x0417, 0x0417,
+ 0x03e2, 0x032d, 0x0294, 0x0214, 0x014b, 0x00a9,
+ 0x0085, 0x0098, 0x00c5, 0x011b, 0x0179, 0x019d,
+ 0x0176, 0x0144, 0x0121, 0x00c6, 0x0012, 0xff40,
+ 0xfe97, 0xfe11, 0xfd82, 0xfd0c, 0xfcdd, 0xfcbf,
+ 0xfc90, 0xfc5a, 0xfbfd, 0xfb7d, 0xfafd, 0xfa58,
+ 0xf988, 0xf8c8, 0xf813, 0xf735, 0xf621, 0xf522,
+ 0xf4d2, 0xf540, 0xf59d, 0xf56f, 0xf4f4, 0xf452,
+ 0xf3a2, 0xf2f3, 0xf240, 0xf1ed, 0xf24c, 0xf2f9,
+ 0xf3e1, 0xf516, 0xf5d1, 0xf5df, 0xf5fe, 0xf61d,
+ 0xf631, 0xf6ea, 0xf807, 0xf8db, 0xf9a0, 0xfa32,
+ 0xfa2a, 0xfa32, 0xfabb, 0xfb3b, 0xfbb4, 0xfc77,
+ 0xfcf7, 0xfcfc, 0xfd11, 0xfcf5, 0xfc58, 0xfbf3,
+ 0xfbf4, 0xfc0b, 0xfcae, 0xfda9, 0xfe41, 0xff01,
+ 0x001d, 0x00c8, 0x013c, 0x020e, 0x02db, 0x036c,
+ 0x03f7, 0x0492, 0x0560, 0x0643, 0x06eb, 0x0794,
+ 0x08a2, 0x09df, 0x0b00, 0x0c4d, 0x0dcf, 0x0ef2,
+ 0x0fbb, 0x1098, 0x117a, 0x1255, 0x132d, 0x13e4,
+ 0x14e5, 0x1666, 0x17bc, 0x1899, 0x1952, 0x1a0f,
+ 0x1aaf, 0x1ae1, 0x1a94, 0x1a21, 0x1999, 0x18ea,
+ 0x1868, 0x1843, 0x1837, 0x1815, 0x17fe, 0x17fa,
+ 0x17b7, 0x171c, 0x1667, 0x15c0, 0x1549, 0x14cb,
+ 0x1400, 0x1360, 0x1307, 0x124c, 0x1146, 0x1067,
+ 0x0fb2, 0x0f41, 0x0ec0, 0x0db3, 0x0c77, 0x0b40,
+ 0x09f3, 0x0909, 0x088f, 0x0808, 0x0767, 0x06a8,
+ 0x05bd, 0x04df, 0x0415, 0x0354, 0x02ae, 0x01ef,
+ 0x0104, 0x004f, 0x0011, 0x002e, 0x0077, 0x00bf,
+ 0x00e7, 0x00e4, 0x00b7, 0x0066, 0x0029, 0x0037,
+ 0x0088, 0x0115, 0x01c7, 0x0242, 0x0273, 0x02cb,
+ 0x0383, 0x0430, 0x049c, 0x054f, 0x0674, 0x0759,
+ 0x07e5, 0x0883, 0x08fe, 0x095c, 0x09fa, 0x0a80,
+ 0x0ac9, 0x0b5d, 0x0c45, 0x0d07, 0x0d4f, 0x0d20,
+ 0x0cd3, 0x0cad, 0x0ca5, 0x0c8f, 0x0c5b, 0x0c3c,
+ 0x0c0b, 0x0b51, 0x0a61, 0x09a4, 0x08c0, 0x07c2,
+ 0x06ec, 0x0608, 0x052d, 0x0464, 0x034b, 0x0204,
+ 0x00c5, 0xff5e, 0xfdff, 0xfd06, 0xfc75, 0xfc28,
+ 0xfc01, 0xfbee, 0xfbe6, 0xfbd9, 0xfbc3, 0xfbb7,
+ 0xfbe1, 0xfc33, 0xfc6c, 0xfcc2, 0xfd6c, 0xfe0c,
+ 0xfe83, 0xfeef, 0xff48, 0xffcf, 0x0088, 0x00e6,
+ 0x00e9, 0x00fd, 0x0118, 0x00f6, 0x0091, 0x0046,
+ 0x0038, 0x0028, 0x0030, 0x004d, 0x0024, 0xffe5,
+ 0xff9d, 0xff06, 0xfe58, 0xfdab, 0xfcbe, 0xfba4,
+ 0xfa64, 0xf930, 0xf83e, 0xf711, 0xf5b7, 0xf4b7,
+ 0xf3b9, 0xf2b3, 0xf20d, 0xf16f, 0xf0cc, 0xf062,
+ 0xefd9, 0xef1c, 0xee49, 0xed52, 0xec78, 0xebdf,
+ 0xeb84, 0xeb81, 0xeb99, 0xebb2, 0xebff, 0xec54,
+ 0xecba, 0xed61, 0xedf8, 0xee5d, 0xeeca, 0xef4c,
+ 0xefef, 0xf0c2, 0xf1a2, 0xf25b, 0xf306, 0xf3fe,
+ 0xf513, 0xf5f5, 0xf704, 0xf838, 0xf925, 0xfa0c,
+ 0xfb09, 0xfbf9, 0xfd1c, 0xfe4b, 0xff72, 0x00f9,
+ 0x02d2, 0x04be, 0x068e, 0x07c0, 0x086b, 0x0906,
+ 0x0997, 0x0a46, 0x0b31, 0x0c30, 0x0d3e, 0x0e17,
+ 0x0ea1, 0x0f45, 0x0feb, 0x1062, 0x10ec, 0x116e,
+ 0x11dd, 0x1255, 0x1282, 0x1258, 0x1225, 0x11e2,
+ 0x11ab, 0x1196, 0x1174, 0x1159, 0x116a, 0x1193,
+ 0x11b9, 0x11ac, 0x116d, 0x10fb, 0x1022, 0x0f2a,
+ 0x0e90, 0x0e51, 0x0e25, 0x0da8, 0x0cb7, 0x0bcf,
+ 0x0b49, 0x0b04, 0x0aba, 0x0a31, 0x09a4, 0x0947,
+ 0x08ce, 0x0843, 0x07c5, 0x0727, 0x06b4, 0x068d,
+ 0x0660, 0x0673, 0x06ce, 0x06df, 0x06c8, 0x06b4,
+ 0x0675, 0x0642, 0x05e6, 0x04f7, 0x0408, 0x0370,
+ 0x02e6, 0x0298, 0x0290, 0x0284, 0x0281, 0x0263,
+ 0x01f8, 0x01a8, 0x01af, 0x01bf, 0x01a9, 0x0175,
+ 0x0124, 0x00c0, 0x006d, 0x0037, 0xffe4, 0xff62,
+ 0xfef8, 0xfeb2, 0xfe77, 0xfe47, 0xfdf5, 0xfd95,
+ 0xfd66, 0xfd33, 0xfcd4, 0xfc81, 0xfc3e, 0xfc31,
+ 0xfc69, 0xfc60, 0xfc0b, 0xfbef, 0xfbf1, 0xfbd4,
+ 0xfbbf, 0xfb89, 0xfb1e, 0xfabf, 0xfa69, 0xfa27,
+ 0xfa25, 0xfa07, 0xf9ad, 0xf9a2, 0xf9e0, 0xfa0b,
+ 0xfa55, 0xfac0, 0xfaed, 0xfb27, 0xfbad, 0xfc14,
+ 0xfc57, 0xfca3, 0xfcb5, 0xfca9, 0xfcdb, 0xfd33,
+ 0xfda7, 0xfe36, 0xfeae, 0xff44, 0x0003, 0x006d,
+ 0x0063, 0x0027, 0xffea, 0xffcc, 0xffc8, 0xfffb,
+ 0x005c, 0x003c, 0xff97, 0xff1f, 0xfec0, 0xfe61,
+ 0xfe5d, 0xfe76, 0xfe73, 0xfe65, 0xfe19, 0xfdb4,
+ 0xfd6d, 0xfcff, 0xfc8b, 0xfc5f, 0xfc4e, 0xfc61,
+ 0xfcab, 0xfcd7, 0xfcb7, 0xfc7b, 0xfc5e, 0xfc5b,
+ 0xfc44, 0xfc31, 0xfc39, 0xfc5d, 0xfcb4, 0xfd07,
+ 0xfd4b, 0xfdf1, 0xfeb0, 0xff0d, 0xff67, 0xffdb,
+ 0x0010, 0x0019, 0x0016, 0x000f, 0x001f, 0x001c,
+ 0xffcf, 0xff2a, 0xfe62, 0xfde7, 0xfda6, 0xfd54,
+ 0xfd2e, 0xfd28, 0xfcdd, 0xfc7e, 0xfc58, 0xfc49,
+ 0xfc3c, 0xfc3a, 0xfc3f, 0xfc5e, 0xfcc1, 0xfd24,
+ 0xfcf0, 0xfc56, 0xfbea, 0xfb9a, 0xfb89, 0xfc35,
+ 0xfd42, 0xfe3f, 0xff42, 0xfff8, 0x0007, 0xffa0,
+ 0xff08, 0xfea6, 0xfeaa, 0xfed0, 0xff01, 0xff3a,
+ 0xff2d, 0xfebc, 0xfe26, 0xfdc8, 0xfdb5, 0xfd86,
+ 0xfd21, 0xfcd1, 0xfc77, 0xfbe3, 0xfb54, 0xfae3,
+ 0xfa90, 0xfa93, 0xfaf3, 0xfb57, 0xfb8d, 0xfb9c,
+ 0xfb81, 0xfb3a, 0xfae8, 0xfaba, 0xfae5, 0xfb6c,
+ 0xfc08, 0xfca2, 0xfd35, 0xfd76, 0xfd89, 0xfdc9,
+ 0xfdab, 0xfccf, 0xfbde, 0xfb41, 0xfad7, 0xfab0,
+ 0xfac8, 0xfb08, 0xfb86, 0xfc42, 0xfd28, 0xfe01,
+ 0xfe87, 0xfef6, 0xffa0, 0x0040, 0x00ae, 0x0116,
+ 0x0160, 0x0183, 0x01b1, 0x01eb, 0x024f, 0x0305,
+ 0x03b1, 0x03f3, 0x03f8, 0x03e7, 0x03b5, 0x036b,
+ 0x0327, 0x033a, 0x03be, 0x0433, 0x0448, 0x0447,
+ 0x045c, 0x046c, 0x0460, 0x042e, 0x03eb, 0x0393,
+ 0x030f, 0x026a, 0x01a6, 0x00c6, 0x0019, 0xffbe,
+ 0xff8d, 0xff89, 0xff98, 0xffaa, 0x0002, 0x0089,
+ 0x00d1, 0x00f9, 0x0149, 0x01ad, 0x021f, 0x02c2,
+ 0x037d, 0x041d, 0x048d, 0x04cb, 0x04e8, 0x0513,
+ 0x056b, 0x05ed, 0x0686, 0x06fe, 0x0728, 0x0720,
+ 0x06f8, 0x06aa, 0x066d, 0x0660, 0x0648, 0x060f,
+ 0x05eb, 0x0604, 0x062a, 0x060b, 0x05d4, 0x05e7,
+ 0x061d, 0x0627, 0x0613, 0x05fc, 0x05e2, 0x05c5,
+ 0x0590, 0x054b, 0x052f, 0x053c, 0x0556, 0x0592,
+ 0x05d5, 0x05b2, 0x053a, 0x04f4, 0x04e8, 0x04c9,
+ 0x04ad, 0x04c6, 0x0514, 0x0585, 0x05f7, 0x065e,
+ 0x06a5, 0x0688, 0x063f, 0x0639, 0x0647, 0x0638,
+ 0x0621, 0x05ce, 0x0542, 0x04c9, 0x0473, 0x0468,
+ 0x049c, 0x0480, 0x040a, 0x0383, 0x02b8, 0x01d0,
+ 0x0153, 0x0145, 0x0191, 0x0229, 0x02a4, 0x02cc,
+ 0x02c0, 0x028c, 0x0243, 0x01f0, 0x0189, 0x0139,
+ 0x0123, 0x011c, 0x00f3, 0x00c1, 0x00a2, 0x0075,
+ 0x0038, 0x0026, 0x0010, 0xffb0, 0xff42, 0xfee6,
+ 0xfe78, 0xfe0b, 0xfd97, 0xfd14, 0xfcb9, 0xfc7d,
+ 0xfc28, 0xfba1, 0xfad6, 0xfa04, 0xf970, 0xf8cf,
+ 0xf80b, 0xf79a, 0xf786, 0xf774, 0xf74d, 0xf742,
+ 0xf766, 0xf75a, 0xf6e0, 0xf668, 0xf621, 0xf5b8,
+ 0xf548, 0xf546, 0xf5b7, 0xf64d, 0xf6db, 0xf752,
+ 0xf7ac, 0xf7be, 0xf768, 0xf6fe, 0xf6ff, 0xf756,
+ 0xf7b1, 0xf821, 0xf87e, 0xf874, 0xf855, 0xf861,
+ 0xf84c, 0xf825, 0xf82a, 0xf840, 0xf879, 0xf8c7,
+ 0xf8c1, 0xf882, 0xf87b, 0xf8aa, 0xf905, 0xf9b1,
+ 0xfa62, 0xfac1, 0xfb06, 0xfb5f, 0xfb8b, 0xfb9e,
+ 0xfbc9, 0xfbca, 0xfbbe, 0xfc11, 0xfc78, 0xfcb2,
+ 0xfd16, 0xfdaf, 0xfe64, 0xff42, 0x002f, 0x014c,
+ 0x02c4, 0x044f, 0x05d4, 0x0750, 0x0880, 0x0973,
+ 0x0a65, 0x0b4d, 0x0c46, 0x0d77, 0x0ecd, 0x1031,
+ 0x1178, 0x129f, 0x13d3, 0x14dc, 0x1595, 0x1650,
+ 0x16f4, 0x1748, 0x17a0, 0x17fd, 0x181d, 0x184f,
+ 0x18aa, 0x18ae, 0x185d, 0x180e, 0x179f, 0x1702,
+ 0x168d, 0x164c, 0x161b, 0x15e8, 0x1590, 0x1524,
+ 0x14c2, 0x1439, 0x138b, 0x12ec, 0x122a, 0x112a,
+ 0x1034, 0x0f2d, 0x0de2, 0x0c7e, 0x0b0b, 0x099a,
+ 0x088f, 0x07d9, 0x0712, 0x0656, 0x05cf, 0x0545,
+ 0x04ab, 0x041e, 0x03a4, 0x033b, 0x02c2, 0x023c,
+ 0x01dc, 0x0158, 0x0084, 0xfff0, 0xffaf, 0xff4f,
+ 0xfefe, 0xfede, 0xfeb9, 0xfecc, 0xff2b, 0xff99,
+ 0x0020, 0x00a8, 0x010b, 0x018c, 0x0231, 0x02d4,
+ 0x0384, 0x0426, 0x04b1, 0x054b, 0x05e8, 0x068b,
+ 0x0727, 0x0797, 0x0804, 0x086e, 0x08a8, 0x08d3,
+ 0x08f7, 0x0921, 0x0987, 0x09e0, 0x09ee, 0x09ee,
+ 0x09cf, 0x0985, 0x093f, 0x08c7, 0x0820, 0x0794,
+ 0x06dc, 0x05da, 0x04f5, 0x042b, 0x034d, 0x028f,
+ 0x020c, 0x01a0, 0x0142, 0x00d7, 0x0027, 0xff54,
+ 0xfea4, 0xfded, 0xfd18, 0xfc8c, 0xfc6a, 0xfc83,
+ 0xfcbb, 0xfceb, 0xfd1b, 0xfd68, 0xfdb1, 0xfdf9,
+ 0xfe48, 0xfe73, 0xfeb4, 0xff33, 0xff9c, 0xfff5,
+ 0x006d, 0x00ca, 0x00fa, 0x0119, 0x0103, 0x00e8,
+ 0x011e, 0x0161, 0x0152, 0x012b, 0x0137, 0x0152,
+ 0x014f, 0x013a, 0x011b, 0x00df, 0x0065, 0xffb5,
+ 0xff05, 0xfe68, 0xfdce, 0xfd21, 0xfc37, 0xfb38,
+ 0xfa5c, 0xf951, 0xf824, 0xf748, 0xf688, 0xf5b0,
+ 0xf4ec, 0xf407, 0xf2fd, 0xf210, 0xf127, 0xf05b,
+ 0xefd0, 0xef42, 0xee9c, 0xedd7, 0xecf1, 0xec3d,
+ 0xebae, 0xeb20, 0xeaf8, 0xeb35, 0xeb83, 0xebd8,
+ 0xebfb, 0xebe9, 0xec0c, 0xec55, 0xec9b, 0xed14,
+ 0xedaf, 0xee48, 0xeefc, 0xefbf, 0xf05b, 0xf0e3,
+ 0xf1a9, 0xf2a7, 0xf3a2, 0xf4bd, 0xf5fa, 0xf719,
+ 0xf84c, 0xf9a8, 0xfae0, 0xfc0f, 0xfd4d, 0xfe64,
+ 0xff5c, 0x0019, 0x00af, 0x01c3, 0x0333, 0x044e,
+ 0x0550, 0x066f, 0x0747, 0x0808, 0x0908, 0x0a12,
+ 0x0b0f, 0x0c16, 0x0d0d, 0x0dcf, 0x0e64, 0x0ef0,
+ 0x0f7b, 0x0fee, 0x1042, 0x1072, 0x107a, 0x1089,
+ 0x109f, 0x1097, 0x10ac, 0x10d9, 0x10b4, 0x108f,
+ 0x10da, 0x10fc, 0x10af, 0x106d, 0x1029, 0x0f97,
+ 0x0edd, 0x0e3b, 0x0dd7, 0x0d8c, 0x0d23, 0x0cb0,
+ 0x0c38, 0x0bae, 0x0b3b, 0x0abd, 0x0a22, 0x09cb,
+ 0x09ae, 0x097e, 0x0965, 0x0965, 0x094c, 0x092f,
+ 0x0922, 0x0907, 0x08be, 0x0866, 0x0839, 0x07f2,
+ 0x0758, 0x06c1, 0x064e, 0x05ed, 0x05c5, 0x05b3,
+ 0x0595, 0x058f, 0x057c, 0x0531, 0x04a5, 0x03ce,
+ 0x030d, 0x02a6, 0x0263, 0x024e, 0x0259, 0x0231,
+ 0x01f6, 0x01c3, 0x0177, 0x013e, 0x0138, 0x0133,
+ 0x0109, 0x00bc, 0x007a, 0x003c, 0xffcd, 0xff5c,
+ 0xff16, 0xfedb, 0xfea9, 0xfe60, 0xfdf5, 0xfda6,
+ 0xfd48, 0xfcba, 0xfc4e, 0xfbec, 0xfb87, 0xfb74,
+ 0xfb88, 0xfb96, 0xfbc0, 0xfbc6, 0xfb85, 0xfb2a,
+ 0xfac4, 0xfa75, 0xfa3c, 0xfa01, 0xf9f5, 0xfa1f,
+ 0xfa69, 0xfade, 0xfb49, 0xfb99, 0xfc04, 0xfc6c,
+ 0xfcc0, 0xfd0f, 0xfd44, 0xfd8c, 0xfe06, 0xfe6c,
+ 0xfead, 0xfee2, 0xff29, 0xffa0, 0x0010, 0x0059,
+ 0x008c, 0x0086, 0x0058, 0x0029, 0xffe5, 0xffbe,
+ 0xffdd, 0xffd5, 0xff86, 0xff3d, 0xff00, 0xfead,
+ 0xfe41, 0xfde4, 0xfdba, 0xfdac, 0xfd9b, 0xfd94,
+ 0xfdb3, 0xfe06, 0xfe6e, 0xfec2, 0xfeea, 0xfee8,
+ 0xfef9, 0xff4a, 0xffc3, 0x0044, 0x00bb, 0x0119,
+ 0x014a, 0x0129, 0x00d8, 0x00ae, 0x00b4, 0x00bf,
+ 0x00bf, 0x00bc, 0x009a, 0x000b, 0xff35, 0xfe92,
+ 0xfe24, 0xfde7, 0xfdf6, 0xfe04, 0xfe05, 0xfe0c,
+ 0xfdc9, 0xfd6a, 0xfd30, 0xfcca, 0xfc56, 0xfc15,
+ 0xfbe9, 0xfbc4, 0xfb64, 0xfad6, 0xfabd, 0xfaee,
+ 0xfaf5, 0xfb04, 0xfb06, 0xfac1, 0xfa6c, 0xfa33,
+ 0xfa10, 0xf9ee, 0xf9f4, 0xfa58, 0xfac5, 0xfb0a,
+ 0xfb74, 0xfbda, 0xfbfd, 0xfbfa, 0xfbbe, 0xfb49,
+ 0xfab8, 0xfa25, 0xf9d2, 0xf9aa, 0xf99d, 0xf9fa,
+ 0xfa9a, 0xfb34, 0xfbaa, 0xfbad, 0xfb78, 0xfb70,
+ 0xfb59, 0xfb59, 0xfbb1, 0xfbf4, 0xfc12, 0xfc40,
+ 0xfc6e, 0xfcbb, 0xfcf6, 0xfcaf, 0xfc19, 0xfb70,
+ 0xfab0, 0xf9e6, 0xf933, 0xf8e9, 0xf91c, 0xf95c,
+ 0xf998, 0xf9e4, 0xfa10, 0xfa37, 0xfa7e, 0xfaa2,
+ 0xfaa3, 0xfaab, 0xfa93, 0xfa4e, 0xfa26, 0xfa40,
+ 0xfa9a, 0xfb29, 0xfbb6, 0xfc2d, 0xfcaf, 0xfd25,
+ 0xfd85, 0xfdf4, 0xfe5f, 0xfed9, 0xff8d, 0x003b,
+ 0x00d4, 0x0182, 0x0211, 0x027a, 0x02f6, 0x0386,
+ 0x0425, 0x04ab, 0x04e7, 0x04f6, 0x04cf, 0x0464,
+ 0x03fe, 0x03b2, 0x0371, 0x0340, 0x030d, 0x02f0,
+ 0x02ef, 0x02d7, 0x02d0, 0x02da, 0x02a1, 0x024c,
+ 0x0212, 0x01d4, 0x01a9, 0x01a4, 0x01ba, 0x0220,
+ 0x02c6, 0x0350, 0x03bf, 0x0411, 0x0423, 0x0435,
+ 0x046a, 0x0474, 0x046a, 0x049a, 0x04e4, 0x051f,
+ 0x0552, 0x0573, 0x05a8, 0x05ee, 0x0616, 0x0675,
+ 0x0728, 0x07a9, 0x07d6, 0x07ec, 0x07ea, 0x07d3,
+ 0x07a3, 0x075d, 0x0714, 0x069a, 0x05f1, 0x0565,
+ 0x050b, 0x04d5, 0x04a7, 0x0465, 0x042d, 0x03eb,
+ 0x037e, 0x0323, 0x02db, 0x0286, 0x0279, 0x02dd,
+ 0x0367, 0x03e8, 0x044c, 0x048e, 0x04a5, 0x0492,
+ 0x0497, 0x04ce, 0x0500, 0x0528, 0x054e, 0x0566,
+ 0x058c, 0x05d6, 0x0629, 0x0671, 0x06b6, 0x06fa,
+ 0x072e, 0x0738, 0x072c, 0x073d, 0x0769, 0x0785,
+ 0x0795, 0x07a8, 0x07c6, 0x07f6, 0x07e7, 0x0767,
+ 0x06e4, 0x0673, 0x05bd, 0x0506, 0x0490, 0x042a,
+ 0x03e3, 0x03d4, 0x03f3, 0x043c, 0x0463, 0x0452,
+ 0x0440, 0x0407, 0x03b5, 0x03c2, 0x0416, 0x0446,
+ 0x043a, 0x0413, 0x03ce, 0x0341, 0x0290, 0x01fa,
+ 0x015f, 0x00d2, 0x007c, 0x001f, 0xffb9, 0xff66,
+ 0xfefd, 0xfe83, 0xfe0b, 0xfd99, 0xfd59, 0xfd2a,
+ 0xfceb, 0xfcd7, 0xfcd7, 0xfcd1, 0xfcf7, 0xfd33,
+ 0xfd59, 0xfd58, 0xfd29, 0xfcf3, 0xfcac, 0xfc35,
+ 0xfbc5, 0xfb3f, 0xfa7f, 0xfa0f, 0xfa07, 0xf9e0,
+ 0xf990, 0xf940, 0xf8ee, 0xf8ba, 0xf8be, 0xf8e2,
+ 0xf927, 0xf993, 0xf9eb, 0xf9e9, 0xf9a8, 0xf978,
+ 0xf963, 0xf94f, 0xf943, 0xf954, 0xf97e, 0xf9ba,
+ 0xf9fb, 0xfa1d, 0xfa15, 0xf9ee, 0xf991, 0xf910,
+ 0xf8a9, 0xf866, 0xf847, 0xf85a, 0xf88a, 0xf8c3,
+ 0xf8f7, 0xf91d, 0xf94a, 0xf95d, 0xf94c, 0xf94e,
+ 0xf970, 0xf9c1, 0xfa45, 0xfac4, 0xfb65, 0xfc33,
+ 0xfcd6, 0xfd94, 0xfe94, 0xff73, 0x0078, 0x01c8,
+ 0x02fe, 0x0465, 0x0604, 0x0770, 0x08f4, 0x0a94,
+ 0x0bfc, 0x0d56, 0x0e90, 0x0fb2, 0x10ff, 0x120f,
+ 0x12dc, 0x13ed, 0x14e6, 0x1599, 0x1672, 0x174a,
+ 0x17ef, 0x1868, 0x1887, 0x188e, 0x18c0, 0x18c1,
+ 0x1890, 0x1863, 0x181d, 0x17e1, 0x17e8, 0x17ef,
+ 0x17c0, 0x1778, 0x170a, 0x1647, 0x1571, 0x14d0,
+ 0x1424, 0x1363, 0x12ee, 0x129d, 0x1224, 0x11b2,
+ 0x114e, 0x10c6, 0x100e, 0x0f23, 0x0e2b, 0x0d55,
+ 0x0c8c, 0x0bd7, 0x0b49, 0x0aa7, 0x09dd, 0x0918,
+ 0x0852, 0x076a, 0x067b, 0x05d2, 0x0568, 0x04ee,
+ 0x047d, 0x0431, 0x03b7, 0x031b, 0x0294, 0x0205,
+ 0x019c, 0x0189, 0x0192, 0x01cd, 0x023b, 0x028f,
+ 0x02e8, 0x0359, 0x03b7, 0x0440, 0x0511, 0x05ee,
+ 0x06c2, 0x076f, 0x07fd, 0x0895, 0x08fd, 0x0929,
+ 0x0971, 0x09d3, 0x0a2d, 0x0a79, 0x0ab3, 0x0af6,
+ 0x0b3b, 0x0b84, 0x0be0, 0x0beb, 0x0b94, 0x0b41,
+ 0x0aba, 0x09e7, 0x0938, 0x0896, 0x0809, 0x07d9,
+ 0x0794, 0x070a, 0x068d, 0x05e7, 0x051b, 0x046c,
+ 0x037f, 0x0265, 0x0199, 0x00fc, 0x007b, 0x003e,
+ 0x002f, 0x005b, 0x00b3, 0x00cd, 0x009c, 0x0060,
+ 0x002e, 0x0006, 0xffe9, 0xffec, 0x0019, 0x0034,
+ 0x002e, 0x002d, 0x0032, 0x0049, 0x0083, 0x00c8,
+ 0x010e, 0x014a, 0x0177, 0x01b0, 0x01ff, 0x0275,
+ 0x0309, 0x038a, 0x03f0, 0x0423, 0x0408, 0x03d1,
+ 0x036e, 0x02bf, 0x022a, 0x01a3, 0x00de, 0x0036,
+ 0xffba, 0xff07, 0xfe3d, 0xfd79, 0xfcaa, 0xfbe5,
+ 0xfb0c, 0xfa18, 0xf940, 0xf87d, 0xf7da, 0xf76b,
+ 0xf6ef, 0xf633, 0xf531, 0xf3ff, 0xf2d3, 0xf1c0,
+ 0xf0ba, 0xefcf, 0xeef4, 0xee2f, 0xeda8, 0xed5e,
+ 0xed16, 0xec9a, 0xec09, 0xeb9f, 0xeb57, 0xeb3e,
+ 0xeb61, 0xeb8c, 0xebc1, 0xec06, 0xec2f, 0xec63,
+ 0xecad, 0xecd4, 0xed06, 0xed5e, 0xedb7, 0xee42,
+ 0xef07, 0xefb9, 0xf043, 0xf0bb, 0xf158, 0xf235,
+ 0xf307, 0xf3c1, 0xf48d, 0xf572, 0xf68c, 0xf7c9,
+ 0xf8f6, 0xfa48, 0xfbd8, 0xfd6d, 0xff1f, 0x00e5,
+ 0x0268, 0x03b7, 0x0513, 0x065a, 0x075e, 0x0828,
+ 0x08c6, 0x0943, 0x09c2, 0x0a53, 0x0ace, 0x0b39,
+ 0x0ba9, 0x0bfa, 0x0c3b, 0x0c9a, 0x0cdd, 0x0ce8,
+ 0x0cfc, 0x0d1d, 0x0d3d, 0x0d5f, 0x0d4d, 0x0d02,
+ 0x0cbf, 0x0c9b, 0x0ca0, 0x0ccb, 0x0ce3, 0x0cd9,
+ 0x0cb6, 0x0c51, 0x0bcc, 0x0b6f, 0x0b38, 0x0b1e,
+ 0x0b04, 0x0ade, 0x0acf, 0x0ab3, 0x0a7e, 0x0a70,
+ 0x0a4a, 0x09d5, 0x0975, 0x093f, 0x0917, 0x091d,
+ 0x091f, 0x08f9, 0x08bc, 0x0841, 0x079b, 0x0726,
+ 0x06de, 0x06a1, 0x066f, 0x0661, 0x0690, 0x06cd,
+ 0x06e5, 0x06d7, 0x06ad, 0x067d, 0x063c, 0x05d3,
+ 0x0582, 0x0558, 0x050e, 0x04ae, 0x0466, 0x0432,
+ 0x0421, 0x0424, 0x040e, 0x03e1, 0x03ad, 0x0384,
+ 0x0359, 0x02f9, 0x026f, 0x01eb, 0x0155, 0x0093,
+ 0xffcb, 0xff30, 0xfebe, 0xfe51, 0xfdec, 0xfda4,
+ 0xfd70, 0xfd2b, 0xfcc5, 0xfc6e, 0xfc36, 0xfbe2,
+ 0xfb6f, 0xfb0b, 0xfaca, 0xfabd, 0xface, 0xfad3,
+ 0xfaef, 0xfb2b, 0xfb5f, 0xfb95, 0xfbde, 0xfc2c,
+ 0xfc7f, 0xfcf2, 0xfd91, 0xfe32, 0xfeac, 0xff2a,
+ 0xffd0, 0x0074, 0x00f6, 0x0137, 0x0111, 0x0096,
+ 0x0000, 0xff62, 0xfecd, 0xfe75, 0xfe56, 0xfe48,
+ 0xfe50, 0xfe4a, 0xfe11, 0xfdd6, 0xfd89, 0xfd0c,
+ 0xfcab, 0xfc70, 0xfc4e, 0xfc73, 0xfca9, 0xfcba,
+ 0xfce4, 0xfd2c, 0xfd75, 0xfdb5, 0xfdde, 0xfe21,
+ 0xfe6a, 0xfe76, 0xfe95, 0xfed9, 0xfee5, 0xfee9,
+ 0xff15, 0xff29, 0xfefd, 0xfeb2, 0xfe7d, 0xfe52,
+ 0xfe29, 0xfe39, 0xfe61, 0xfe83, 0xfec6, 0xfecd,
+ 0xfe84, 0xfe50, 0xfe09, 0xfda8, 0xfd62, 0xfd0b,
+ 0xfce7, 0xfd25, 0xfd61, 0xfdb8, 0xfe23, 0xfe19,
+ 0xfdb5, 0xfd34, 0xfc96, 0xfc13, 0xfbd4, 0xfbfd,
+ 0xfc88, 0xfd20, 0xfdc9, 0xfe4c, 0xfe0c, 0xfd28,
+ 0xfc0a, 0xfad9, 0xf9d8, 0xf919, 0xf8ba, 0xf8ea,
+ 0xf95c, 0xf9d7, 0xfa2a, 0xf9f6, 0xf971, 0xf8e6,
+ 0xf851, 0xf7ea, 0xf7d7, 0xf81b, 0xf8bd, 0xf96c,
+ 0xf9eb, 0xfa57, 0xfacb, 0xfb76, 0xfc2b, 0xfc8e,
+ 0xfca7, 0xfc70, 0xfc07, 0xfbbf, 0xfb6c, 0xfb27,
+ 0xfb36, 0xfb3e, 0xfb56, 0xfbae, 0xfbaf, 0xfb4b,
+ 0xfac7, 0xfa10, 0xf969, 0xf8e9, 0xf87b, 0xf880,
+ 0xf8d8, 0xf91d, 0xf94f, 0xf928, 0xf897, 0xf805,
+ 0xf773, 0xf6fa, 0xf6f0, 0xf730, 0xf77e, 0xf7c4,
+ 0xf7f3, 0xf81c, 0xf817, 0xf7bf, 0xf76b, 0xf758,
+ 0xf797, 0xf871, 0xf9e6, 0xfb8e, 0xfd37, 0xfea9,
+ 0xff7c, 0xffae, 0xff89, 0xff2b, 0xfed1, 0xfead,
+ 0xfeae, 0xfeea, 0xff6b, 0xfff0, 0x0081, 0x0128,
+ 0x019b, 0x01b2, 0x016d, 0x00fe, 0x009b, 0x001c,
+ 0xffa5, 0xff87, 0xff82, 0xff95, 0xfffc, 0x007b,
+ 0x0101, 0x016e, 0x0169, 0x0131, 0x00d1, 0x0018,
+ 0xff97, 0xff82, 0xff97, 0x0001, 0x00ab, 0x0150,
+ 0x01f0, 0x0260, 0x02a8, 0x02ef, 0x0309, 0x0310,
+ 0x032b, 0x0346, 0x0384, 0x03c5, 0x03d2, 0x03f0,
+ 0x042c, 0x045b, 0x0491, 0x04b5, 0x04ba, 0x04b1,
+ 0x0472, 0x040b, 0x03a1, 0x0335, 0x02e3, 0x0290,
+ 0x022b, 0x020e, 0x0239, 0x0263, 0x028f, 0x02c7,
+ 0x02f5, 0x02fb, 0x02c2, 0x0278, 0x023f, 0x020d,
+ 0x0217, 0x026b, 0x02c2, 0x0300, 0x0340, 0x0383,
+ 0x03c1, 0x03e1, 0x03df, 0x03e4, 0x0409, 0x0431,
+ 0x0447, 0x0461, 0x047e, 0x048c, 0x0495, 0x0497,
+ 0x0495, 0x04af, 0x04d9, 0x04e7, 0x04d4, 0x04be,
+ 0x04b5, 0x049d, 0x0466, 0x0431, 0x0407, 0x03e6,
+ 0x03d2, 0x03bf, 0x03c4, 0x03f9, 0x0437, 0x0463,
+ 0x045c, 0x040e, 0x03cf, 0x03c1, 0x0393, 0x0332,
+ 0x02bb, 0x0247, 0x01f4, 0x019d, 0x0125, 0x00b1,
+ 0x004f, 0xffe4, 0xff60, 0xfee2, 0xfe9d, 0xfe80,
+ 0xfe7a, 0xfe7e, 0xfe5b, 0xfe35, 0xfe33, 0xfe35,
+ 0xfe88, 0xff1f, 0xff74, 0xffc7, 0x0031, 0x004c,
+ 0x0085, 0x0105, 0x0143, 0x0169, 0x018f, 0x0186,
+ 0x019e, 0x01b5, 0x018e, 0x0179, 0x015b, 0x00fe,
+ 0x0089, 0x0000, 0xff7c, 0xff0f, 0xfea9, 0xfe70,
+ 0xfe3b, 0xfde2, 0xfdbb, 0xfda7, 0xfd6d, 0xfd44,
+ 0xfd01, 0xfc94, 0xfc41, 0xfbf0, 0xfbbd, 0xfbd2,
+ 0xfbdd, 0xfbfe, 0xfc6e, 0xfcda, 0xfd3d, 0xfd88,
+ 0xfd60, 0xfcee, 0xfc6f, 0xfbc3, 0xfb0f, 0xfa8e,
+ 0xfa57, 0xfa6b, 0xfa86, 0xfa73, 0xfa3b, 0xf9de,
+ 0xf96b, 0xf8ea, 0xf850, 0xf7b3, 0xf722, 0xf694,
+ 0xf626, 0xf5fa, 0xf60c, 0xf637, 0xf64c, 0xf645,
+ 0xf647, 0xf649, 0xf644, 0xf671, 0xf6e5, 0xf76f,
+ 0xf82b, 0xf937, 0xfa45, 0xfb46, 0xfc7c, 0xfdaa,
+ 0xfea1, 0xffc1, 0x010d, 0x0232, 0x0344, 0x046c,
+ 0x05a1, 0x06e6, 0x0821, 0x0943, 0x0a7b, 0x0bb1,
+ 0x0cb1, 0x0dcf, 0x0f29, 0x104a, 0x1123, 0x11f4,
+ 0x1291, 0x12eb, 0x1346, 0x13a6, 0x1402, 0x1467,
+ 0x14b8, 0x14fd, 0x1568, 0x15cc, 0x15f0, 0x15eb,
+ 0x15d5, 0x15ad, 0x156d, 0x1520, 0x14f5, 0x1500,
+ 0x150f, 0x14f4, 0x149a, 0x140b, 0x1371, 0x12e1,
+ 0x1248, 0x1197, 0x10c6, 0x0fd2, 0x0ec7, 0x0dc5,
+ 0x0ce7, 0x0c0a, 0x0b04, 0x0a07, 0x092e, 0x086b,
+ 0x07da, 0x0766, 0x06e4, 0x0668, 0x05d4, 0x0523,
+ 0x04cd, 0x04c8, 0x04b9, 0x04c4, 0x04dd, 0x04d4,
+ 0x04eb, 0x0539, 0x0596, 0x060c, 0x0690, 0x0729,
+ 0x07ec, 0x08b0, 0x0972, 0x0a2f, 0x0aa6, 0x0ae3,
+ 0x0af9, 0x0ad4, 0x0abf, 0x0ae9, 0x0b20, 0x0b6f,
+ 0x0bd3, 0x0c1c, 0x0c4b, 0x0c49, 0x0bfd, 0x0ba1,
+ 0x0b4b, 0x0afe, 0x0ad9, 0x0ab7, 0x0a7f, 0x0a65,
+ 0x0a5c, 0x0a2b, 0x09d7, 0x0959, 0x08a6, 0x07d0,
+ 0x06da, 0x05df, 0x050b, 0x045a, 0x03da, 0x039c,
+ 0x034d, 0x02b4, 0x01de, 0x00cd, 0xffc3, 0xff08,
+ 0xfe87, 0xfe50, 0xfe8a, 0xff0d, 0xffbc, 0x0073,
+ 0x00ea, 0x0119, 0x010f, 0x00ee, 0x0116, 0x01a0,
+ 0x0286, 0x03d9, 0x0539, 0x064c, 0x0715, 0x0768,
+ 0x0735, 0x06af, 0x0605, 0x0593, 0x0588, 0x05d0,
+ 0x0694, 0x07a4, 0x088b, 0x0925, 0x0922, 0x086b,
+ 0x0793, 0x06cc, 0x0616, 0x05b4, 0x0593, 0x059f,
+ 0x05e6, 0x0610, 0x05ec, 0x0588, 0x04cc, 0x03e6,
+ 0x02ea, 0x01b1, 0x007c, 0xff60, 0xfe27, 0xfd08,
+ 0xfc0b, 0xfafc, 0xfa21, 0xf99f, 0xf948, 0xf918,
+ 0xf8e2, 0xf870, 0xf7c0, 0xf6c7, 0xf5ac, 0xf4b7,
+ 0xf3e3, 0xf338, 0xf2d7, 0xf29f, 0xf271, 0xf238,
+ 0xf1e9, 0xf1d4, 0xf202, 0xf228, 0xf27c, 0xf31b,
+ 0xf396, 0xf3d4, 0xf3e2, 0xf38d, 0xf2fe, 0xf262,
+ 0xf1a0, 0xf0fa, 0xf0ab, 0xf093, 0xf0c8, 0xf144,
+ 0xf1b4, 0xf1f0, 0xf1e7, 0xf1b5, 0xf1a1, 0xf1b0,
+ 0xf1ed, 0xf286, 0xf362, 0xf47d, 0xf5f0, 0xf766,
+ 0xf8a5, 0xf9b5, 0xfa75, 0xfaf6, 0xfb6d, 0xfbc2,
+ 0xfbf8, 0xfc36, 0xfc7f, 0xfcf8, 0xfdb9, 0xfea1,
+ 0xff9a, 0x008a, 0x0148, 0x01e3, 0x0250, 0x0253,
+ 0x0209, 0x01cd, 0x01b7, 0x01cf, 0x0224, 0x02a7,
+ 0x035a, 0x0436, 0x0500, 0x05a9, 0x0636, 0x067e,
+ 0x069d, 0x06de, 0x0726, 0x076b, 0x07ec, 0x0896,
+ 0x093a, 0x09d4, 0x0a39, 0x0a54, 0x0a4a, 0x0a33,
+ 0x0a39, 0x0a6e, 0x0a9a, 0x0abc, 0x0ae3, 0x0ae8,
+ 0x0afb, 0x0b47, 0x0b6b, 0x0b52, 0x0b3a, 0x0afd,
+ 0x0a94, 0x0a2f, 0x09af, 0x091c, 0x08a9, 0x0852,
+ 0x083e, 0x088a, 0x08fe, 0x0991, 0x0a3f, 0x0ac7,
+ 0x0b2e, 0x0b85, 0x0b9d, 0x0b76, 0x0b30, 0x0aec,
+ 0x0ab2, 0x0a57, 0x09ff, 0x09e0, 0x09ba, 0x0983,
+ 0x0949, 0x08c0, 0x07fb, 0x0745, 0x068d, 0x05e2,
+ 0x055c, 0x04e4, 0x047c, 0x03f7, 0x0335, 0x0261,
+ 0x0179, 0x0098, 0x000b, 0xffaa, 0xff7a, 0xffba,
+ 0x0011, 0x0037, 0x004c, 0x003d, 0x0016, 0x001d,
+ 0x0055, 0x008b, 0x00b2, 0x00e5, 0x0126, 0x014a,
+ 0x0147, 0x0123, 0x00e8, 0x00b4, 0x0060, 0xffdb,
+ 0xff73, 0xff19, 0xfe9f, 0xfe4c, 0xfe37, 0xfe38,
+ 0xfe3c, 0xfe18, 0xfde2, 0xfdc6, 0xfd8b, 0xfd44,
+ 0xfd40, 0xfd55, 0xfd5c, 0xfd64, 0xfd4d, 0xfd0c,
+ 0xfcdc, 0xfcf3, 0xfd4e, 0xfdb3, 0xfe0e, 0xfe71,
+ 0xfeb7, 0xfeb1, 0xfe7f, 0xfe59, 0xfe38, 0xfe01,
+ 0xfdc8, 0xfd9e, 0xfd6f, 0xfd3a, 0xfd11, 0xfd08,
+ 0xfd07, 0xfcdd, 0xfc9d, 0xfc6c, 0xfc27, 0xfbd7,
+ 0xfba7, 0xfba1, 0xfbf0, 0xfcae, 0xfda5, 0xfe9c,
+ 0xff60, 0xffcc, 0xffd8, 0xff8d, 0xff34, 0xff17,
+ 0xff25, 0xff68, 0xfff0, 0x007d, 0x00dd, 0x00fb,
+ 0x00c5, 0x0049, 0xffa3, 0xfef3, 0xfe58, 0xfdc3,
+ 0xfd4b, 0xfd12, 0xfcfb, 0xfcee, 0xfcdc, 0xfcaf,
+ 0xfc6b, 0xfc08, 0xfb8c, 0xfb2b, 0xfb01, 0xfb20,
+ 0xfb76, 0xfbc7, 0xfc12, 0xfc69, 0xfcb0, 0xfcd8,
+ 0xfccd, 0xfca7, 0xfca9, 0xfcba, 0xfccb, 0xfd05,
+ 0xfd44, 0xfd65, 0xfd87, 0xfda3, 0xfdcb, 0xfe20,
+ 0xfe60, 0xfe3d, 0xfddd, 0xfd8f, 0xfd51, 0xfd1b,
+ 0xfd20, 0xfd51, 0xfd6a, 0xfd72, 0xfd58, 0xfcf4,
+ 0xfc73, 0xfbec, 0xfb5e, 0xfaf7, 0xfac4, 0xfab7,
+ 0xfad5, 0xfb05, 0xfb13, 0xfad6, 0xfa73, 0xfa27,
+ 0xf9d4, 0xf974, 0xf93c, 0xf908, 0xf8db, 0xf8ff,
+ 0xf948, 0xf991, 0xf9f4, 0xfa43, 0xfa72, 0xfab6,
+ 0xfb03, 0xfb52, 0xfbce, 0xfc63, 0xfcd2, 0xfd11,
+ 0xfd3d, 0xfd4e, 0xfd3d, 0xfd4d, 0xfda5, 0xfe20,
+ 0xfe8d, 0xfee5, 0xff3e, 0xff81, 0xff8f, 0xff7c,
+ 0xff5c, 0xff3a, 0xff35, 0xff46, 0xff69, 0xff92,
+ 0xffac, 0xffe2, 0x0031, 0x0067, 0x00b2, 0x0103,
+ 0x011c, 0x0132, 0x014a, 0x0166, 0x01c6, 0x0226,
+ 0x0272, 0x02ed, 0x0339, 0x0335, 0x0332, 0x030f,
+ 0x02d4, 0x02c2, 0x02e1, 0x0352, 0x03d2, 0x0409,
+ 0x044a, 0x049b, 0x04b7, 0x04c3, 0x04a6, 0x044a,
+ 0x03f0, 0x0399, 0x035e, 0x0373, 0x03b2, 0x041d,
+ 0x04bd, 0x053c, 0x0572, 0x0565, 0x0505, 0x0473,
+ 0x03dc, 0x0362, 0x031a, 0x02ee, 0x02dd, 0x02ef,
+ 0x02f0, 0x02b0, 0x0248, 0x01eb, 0x01ad, 0x0192,
+ 0x019d, 0x01c1, 0x01e6, 0x01fb, 0x020d, 0x0250,
+ 0x029e, 0x02a7, 0x0292, 0x0274, 0x0228, 0x01d0,
+ 0x0174, 0x0114, 0x00f3, 0x00ff, 0x0106, 0x0113,
+ 0x00f7, 0x00ac, 0x006e, 0x0036, 0x0012, 0x0015,
+ 0x0017, 0x0010, 0x0001, 0xffdc, 0xffb7, 0xff91,
+ 0xff72, 0xff6c, 0xff62, 0xff57, 0xff45, 0xff1b,
+ 0xff03, 0xfee4, 0xfe9e, 0xfe76, 0xfe57, 0xfe1e,
+ 0xfe0b, 0xfdf1, 0xfd9d, 0xfd47, 0xfd05, 0xfcdf,
+ 0xfcdc, 0xfcd4, 0xfcda, 0xfcef, 0xfcf0, 0xfced,
+ 0xfceb, 0xfd10, 0xfd9c, 0xfe58, 0xff08, 0xffa5,
+ 0x0005, 0x0058, 0x00d0, 0x0135, 0x0183, 0x01d9,
+ 0x0216, 0x0244, 0x027e, 0x02ba, 0x02e9, 0x02ed,
+ 0x02d1, 0x02be, 0x0290, 0x0226, 0x01ad, 0x0137,
+ 0x00bd, 0x005c, 0x0020, 0xfff9, 0xfff9, 0x001a,
+ 0x0027, 0x001c, 0x000d, 0xfff5, 0xfff5, 0x0000,
+ 0xfff5, 0x000f, 0x0052, 0x0078, 0x00a0, 0x00ca,
+ 0x00d0, 0x00f1, 0x0132, 0x0160, 0x0199, 0x01d8,
+ 0x01f4, 0x0200, 0x021c, 0x0260, 0x02b1, 0x02c9,
+ 0x02b1, 0x0289, 0x025b, 0x0239, 0x0224, 0x0231,
+ 0x0276, 0x02c8, 0x02fb, 0x0302, 0x02d4, 0x0268,
+ 0x01c2, 0x0130, 0x00ef, 0x00d7, 0x00d5, 0x00f7,
+ 0x0108, 0x0111, 0x0143, 0x0191, 0x01e3, 0x0206,
+ 0x01cd, 0x0174, 0x0158, 0x01a3, 0x0236, 0x02c0,
+ 0x0330, 0x0369, 0x0335, 0x02e6, 0x02c3, 0x02a9,
+ 0x02a5, 0x02c2, 0x02d3, 0x0300, 0x0364, 0x03a9,
+ 0x038d, 0x032d, 0x02b2, 0x0230, 0x01ca, 0x019c,
+ 0x0192, 0x01a7, 0x01d6, 0x020c, 0x023e, 0x0239,
+ 0x01df, 0x017b, 0x0118, 0x00bf, 0x00d7, 0x0151,
+ 0x01eb, 0x02b4, 0x0360, 0x03be, 0x0409, 0x0435,
+ 0x044f, 0x0495, 0x04e5, 0x0529, 0x0541, 0x04ea,
+ 0x0476, 0x0457, 0x0483, 0x04e3, 0x0553, 0x0586,
+ 0x0560, 0x0509, 0x04d1, 0x04d7, 0x04ec, 0x04f6,
+ 0x04ec, 0x04b5, 0x0465, 0x0443, 0x0480, 0x04ee,
+ 0x052f, 0x0556, 0x059b, 0x05e9, 0x0624, 0x0648,
+ 0x0652, 0x0656, 0x065b, 0x0658, 0x0655, 0x065d,
+ 0x0699, 0x071e, 0x07ad, 0x07fb, 0x0817, 0x0845,
+ 0x089e, 0x08f1, 0x091e, 0x0935, 0x0941, 0x094b,
+ 0x0964, 0x0993, 0x09f4, 0x0a91, 0x0b4b, 0x0c09,
+ 0x0cb1, 0x0d36, 0x0d9b, 0x0dd3, 0x0dd7, 0x0dd3,
+ 0x0df2, 0x0e29, 0x0e61, 0x0e99, 0x0ea8, 0x0e73,
+ 0x0e4e, 0x0e63, 0x0e6c, 0x0e6a, 0x0e7f, 0x0e71,
+ 0x0e1f, 0x0dbb, 0x0d74, 0x0d43, 0x0cf0, 0x0c82,
+ 0x0c26, 0x0bb2, 0x0b13, 0x0a7d, 0x09f6, 0x0987,
+ 0x0968, 0x0996, 0x09e6, 0x0a1e, 0x0a1c, 0x0a00,
+ 0x09e5, 0x09ce, 0x09e3, 0x0a30, 0x0a9e, 0x0b22,
+ 0x0b7e, 0x0b63, 0x0af8, 0x0a8c, 0x0a50, 0x0a68,
+ 0x0aa5, 0x0ac6, 0x0ae7, 0x0b07, 0x0af2, 0x0abc,
+ 0x0a53, 0x098b, 0x08c4, 0x085d, 0x0851, 0x087c,
+ 0x086d, 0x07b8, 0x06a8, 0x05c2, 0x054d, 0x054d,
+ 0x057a, 0x056b, 0x04df, 0x03f2, 0x02fa, 0x01f4,
+ 0x00d0, 0xffeb, 0xff5f, 0xfefb, 0xfed7, 0xfeef,
+ 0xff20, 0xff7e, 0xffcb, 0xff93, 0xfeec, 0xfe36,
+ 0xfdc5, 0xfdef, 0xfea0, 0xff2d, 0xff03, 0xfe4f,
+ 0xfd86, 0xfccf, 0xfc52, 0xfc35, 0xfc2c, 0xfbe1,
+ 0xfb4e, 0xfa8a, 0xf9b5, 0xf8df, 0xf7ee, 0xf707,
+ 0xf69b, 0xf6cf, 0xf73b, 0xf76a, 0xf750, 0xf70e,
+ 0xf6c8, 0xf69d, 0xf692, 0xf6ae, 0xf705, 0xf782,
+ 0xf7e4, 0xf7f7, 0xf7c8, 0xf771, 0xf6fc, 0xf6bc,
+ 0xf6de, 0xf6ed, 0xf6c6, 0xf6b0, 0xf680, 0xf623,
+ 0xf5e1, 0xf5c6, 0xf5e5, 0xf63f, 0xf68b, 0xf6c1,
+ 0xf6f0, 0xf6fa, 0xf6f5, 0xf6e1, 0xf6b0, 0xf69e,
+ 0xf695, 0xf65d, 0xf63d, 0xf63e, 0xf62d, 0xf650,
+ 0xf6b9, 0xf6fe, 0xf721, 0xf74a, 0xf753, 0xf74d,
+ 0xf765, 0xf790, 0xf7d8, 0xf83d, 0xf876, 0xf888,
+ 0xf8c6, 0xf92b, 0xf97d, 0xf9bb, 0xfa12, 0xfaaf,
+ 0xfb75, 0xfc25, 0xfc7b, 0xfc46, 0xfbf9, 0xfc36,
+ 0xfcbe, 0xfd2c, 0xfda2, 0xfdff, 0xfe35, 0xfe8f,
+ 0xfefe, 0xff55, 0xff96, 0xffa6, 0xff7d, 0xff2f,
+ 0xfef8, 0xff49, 0x0012, 0x00e4, 0x0199, 0x01e6,
+ 0x01a2, 0x015f, 0x01a9, 0x028d, 0x03b0, 0x0459,
+ 0x0438, 0x03ab, 0x032e, 0x0350, 0x0413, 0x04b6,
+ 0x04f7, 0x0512, 0x0508, 0x04fe, 0x0514, 0x052f,
+ 0x0569, 0x05bb, 0x05f0, 0x0614, 0x060e, 0x05d9,
+ 0x05e7, 0x063a, 0x0672, 0x068c, 0x0685, 0x064c,
+ 0x0600, 0x05be, 0x05a9, 0x05cd, 0x0612, 0x0678,
+ 0x06cf, 0x06f2, 0x0735, 0x078d, 0x078d, 0x074e,
+ 0x06fd, 0x0696, 0x0660, 0x0660, 0x0628, 0x0595,
+ 0x0503, 0x04d3, 0x050c, 0x0577, 0x05ba, 0x0554,
+ 0x0464, 0x03c2, 0x03da, 0x0479, 0x0509, 0x04b9,
+ 0x039f, 0x0289, 0x01fe, 0x0259, 0x0352, 0x0411,
+ 0x0462, 0x0431, 0x035c, 0x0295, 0x0244, 0x0213,
+ 0x0210, 0x0210, 0x01aa, 0x0131, 0x00d3, 0x0063,
+ 0x0004, 0xff9e, 0xff27, 0xff05, 0xff11, 0xfef3,
+ 0xfedf, 0xfedc, 0xfeda, 0xff20, 0xff81, 0xff70,
+ 0xff04, 0xfeae, 0xfe92, 0xfecf, 0xff35, 0xff52,
+ 0xff55, 0xff7e, 0xff49, 0xfea5, 0xfe22, 0xfdd1,
+ 0xfd96, 0xfd77, 0xfd3c, 0xfcda, 0xfc79, 0xfc32,
+ 0xfc27, 0xfc35, 0xfc20, 0xfc1e, 0xfc54, 0xfc97,
+ 0xfcc8, 0xfcc9, 0xfc9e, 0xfc5e, 0xfc1b, 0xfbfd,
+ 0xfbe8, 0xfbb8, 0xfbde, 0xfc72, 0xfce0, 0xfcda,
+ 0xfc8b, 0xfc3f, 0xfc2b, 0xfc32, 0xfc64, 0xfcdc,
+ 0xfd52, 0xfdab, 0xfe01, 0xfe3a, 0xfe58, 0xfe3f,
+ 0xfdbd, 0xfd21, 0xfcca, 0xfcdc, 0xfd61, 0xfe0e,
+ 0xfeb2, 0xff25, 0xfef5, 0xfe4f, 0xfde3, 0xfdd3,
+ 0xfe2b, 0xfec1, 0xfeee, 0xfec9, 0xfea0, 0xfe2d,
+ 0xfdb5, 0xfd85, 0xfd22, 0xfc8e, 0xfc2f, 0xfbfd,
+ 0xfc15, 0xfc79, 0xfcbd, 0xfcba, 0xfc88, 0xfc53,
+ 0xfc6d, 0xfcb7, 0xfcca, 0xfcac, 0xfc85, 0xfc50,
+ 0xfc12, 0xfbd8, 0xfb97, 0xfb6f, 0xfba4, 0xfc1e,
+ 0xfc83, 0xfce3, 0xfd3a, 0xfd34, 0xfd02, 0xfcf9,
+ 0xfcf2, 0xfce2, 0xfcb6, 0xfc40, 0xfbd4, 0xfb8d,
+ 0xfb28, 0xfafc, 0xfb2b, 0xfb23, 0xfabe, 0xfa37,
+ 0xf9c1, 0xf9be, 0xfa0d, 0xfa07, 0xf9a0, 0xf93e,
+ 0xf8e6, 0xf883, 0xf84b, 0xf86c, 0xf8d2, 0xf937,
+ 0xf935, 0xf89c, 0xf80e, 0xf83c, 0xf8cc, 0xf922,
+ 0xf930, 0xf90b, 0xf902, 0xf979, 0xfa1d, 0xfa69,
+ 0xfa72, 0xfa8b, 0xfad5, 0xfb50, 0xfc1c, 0xfd4a,
+ 0xfe42, 0xfe78, 0xfe46, 0xfe13, 0xfdfa, 0xfe2f,
+ 0xfead, 0xff3e, 0xffa4, 0xffb1, 0xffb1, 0xffcf,
+ 0xffd2, 0xffe8, 0x0000, 0xffba, 0xff59, 0xff0d,
+ 0xfecf, 0xfefe, 0xff6a, 0xff8d, 0xff8c, 0xff89,
+ 0xffb5, 0x004e, 0x00c4, 0x00a8, 0x0057, 0x000e,
+ 0xffe7, 0xfffa, 0x0034, 0x00ac, 0x0153, 0x0182,
+ 0x00b7, 0xff72, 0xfebb, 0xff08, 0x0022, 0x017a,
+ 0x023b, 0x0219, 0x0182, 0x00e1, 0x008c, 0x00a9,
+ 0x0103, 0x0178, 0x01f2, 0x026a, 0x0303, 0x035c,
+ 0x0322, 0x02d8, 0x0305, 0x0393, 0x03f6, 0x03c8,
+ 0x0310, 0x0201, 0x0167, 0x0202, 0x02e6, 0x0307,
+ 0x026d, 0x012a, 0xfff8, 0xffab, 0xffc5, 0xffdc,
+ 0xffcf, 0xff7c, 0xff65, 0xff63, 0xff0e, 0xfedd,
+ 0xfe6d, 0xfdbd, 0xfe01, 0xfee6, 0xffd8, 0x010a,
+ 0x01a8, 0x019c, 0x01aa, 0x01b2, 0x021e, 0x02e0,
+ 0x02dd, 0x0298, 0x02d3, 0x030f, 0x0325, 0x02f6,
+ 0x0292, 0x026b, 0x023a, 0x024e, 0x030d, 0x0362,
+ 0x02e4, 0x01f7, 0x009b, 0xffd7, 0x0043, 0x007e,
+ 0xffc6, 0xfebb, 0xfdf8, 0xfe11, 0xfef5, 0xff7c,
+ 0xfee7, 0xfe08, 0xfe04, 0xfec2, 0xff62, 0xff4e,
+ 0xfe72, 0xfd77, 0xfd4c, 0xfe10, 0xfeee, 0xff5b,
+ 0xffcb, 0x007e, 0x00fa, 0x0123, 0x0111, 0x00d8,
+ 0x00f7, 0x0151, 0x017f, 0x01ef, 0x0286, 0x02b2,
+ 0x02a3, 0x027b, 0x027f, 0x032e, 0x040e, 0x045e,
+ 0x03f4, 0x033a, 0x031d, 0x03a5, 0x0404, 0x0423,
+ 0x0409, 0x039d, 0x037b, 0x0407, 0x049e, 0x04b9,
+ 0x04c2, 0x04de, 0x048d, 0x045f, 0x04e2, 0x0508,
+ 0x04a0, 0x049b, 0x04cb, 0x0510, 0x058a, 0x059e,
+ 0x0566, 0x0576, 0x05aa, 0x05f9, 0x067c, 0x06fd,
+ 0x0756, 0x07ae, 0x0818, 0x0821, 0x07c1, 0x077b,
+ 0x06ff, 0x0641, 0x05dd, 0x05d3, 0x0692, 0x07d0,
+ 0x07c3, 0x069a, 0x05a2, 0x0499, 0x03cb, 0x03ca,
+ 0x03f3, 0x0410, 0x0457, 0x047c, 0x03f2, 0x02be,
+ 0x01fa, 0x01e3, 0x01c7, 0x01dd, 0x01bd, 0x00da,
+ 0x000e, 0xff83, 0xff48, 0xffc5, 0x001a, 0x004b,
+ 0x00d4, 0x0097, 0xffb0, 0xfee4, 0xfdcb, 0xfd0c,
+ 0xfd7f, 0xfeb9, 0x002b, 0x014d, 0x0253, 0x0332,
+ 0x0322, 0x02c9, 0x022a, 0x005e, 0xfeb2, 0xfe00,
+ 0xfe07, 0xff4d, 0x009b, 0x00a9, 0x0021, 0xfefc,
+ 0xfdd8, 0xfdb0, 0xfda4, 0xfdd0, 0xfe8b, 0xff14,
+ 0xffd5, 0x0077, 0x001c, 0xff63, 0xfe1b, 0xfc8f,
+ 0xfc91, 0xfe4d, 0x012e, 0x0456, 0x062c, 0x06c5,
+ 0x06ed, 0x0704, 0x073e, 0x06be, 0x05c5, 0x0538,
+ 0x048a, 0x04c1, 0x0673, 0x078b, 0x0805, 0x085b,
+ 0x07a1, 0x0702, 0x072a, 0x0785, 0x08bf, 0x0a2c,
+ 0x0adb, 0x0b4e, 0x0b0c, 0x0a59, 0x0a73, 0x0b37,
+ 0x0c67, 0x0da1, 0x0e73, 0x0f03, 0x0ea5, 0x0de1,
+ 0x0e0f, 0x0e5e, 0x0ec6, 0x0f80, 0x0ef4, 0x0de0,
+ 0x0da4, 0x0d5d, 0x0d5d, 0x0dbc, 0x0d89, 0x0dc9,
+ 0x0e8d, 0x0e87, 0x0e2a, 0x0def, 0x0dc2, 0x0dfe,
+ 0x0e68, 0x0e99, 0x0e81, 0x0e2e, 0x0df3, 0x0dfb,
+ 0x0eb1, 0x0ffa, 0x1081, 0x103e, 0x0fe0, 0x0ef8,
+ 0x0e6e, 0x0f9b, 0x111d, 0x1197, 0x11ca, 0x121f,
+ 0x1249, 0x12cb, 0x1380, 0x12c2, 0x10bf, 0x0f75,
+ 0x0f04, 0x0ed9, 0x0f45, 0x0fba, 0x0f5e, 0x0e22,
+ 0x0c8e, 0x0bc7, 0x0bf9, 0x0c54, 0x0c82, 0x0bdb,
+ 0x0a9c, 0x0a6d, 0x0b26, 0x0b88, 0x0bb7, 0x0c04,
+ 0x0c6e, 0x0cda, 0x0cdc, 0x0c78, 0x0bd1, 0x0a8f,
+ 0x0895, 0x06b6, 0x05cb, 0x0507, 0x03ee, 0x03e9,
+ 0x0484, 0x040b, 0x03be, 0x0490, 0x04a8, 0x035b,
+ 0x020f, 0x019b, 0x01d1, 0x0264, 0x0298, 0x0185,
+ 0x0046, 0x0032, 0xffec, 0xfec4, 0xfdbe, 0xfcac,
+ 0xfbbe, 0xfb73, 0xfacd, 0xf9ac, 0xf8fb, 0xf8f7,
+ 0xf924, 0xf89b, 0xf7db, 0xf7a1, 0xf6f4, 0xf631,
+ 0xf5f5, 0xf554, 0xf500, 0xf507, 0xf438, 0xf407,
+ 0xf47f, 0xf3a2, 0xf204, 0xefac, 0xec45, 0xe9ef,
+ 0xe8fe, 0xe7e5, 0xe5a5, 0xe04f, 0xd6ae, 0xca3a,
+ 0xbf32, 0xbbac, 0xc288, 0xd0a0, 0xddf9, 0xe18a,
+ 0xd9fb, 0xce93, 0xc62f, 0xc3f9, 0xc744, 0xcc34,
+ 0xd0ee, 0xd644, 0xdc7a, 0xe29a, 0xe6ab, 0xe7f8,
+ 0xe7ee, 0xe7d8, 0xe882, 0xe9c6, 0xeb13, 0xed2e,
+ 0xf05e, 0xf436, 0xf8c2, 0xfc3e, 0xfd00, 0xfc4c,
+ 0xfbb3, 0xfc3b, 0xfe90, 0x023c, 0x0606, 0x07be,
+ 0x06cc, 0x0513, 0x02d8, 0x00eb, 0x025d, 0x0713,
+ 0x0c91, 0x10c3, 0x11a7, 0x1036, 0x0ed7, 0x0df4,
+ 0x0e46, 0x0fb1, 0x1136, 0x139d, 0x1624, 0x1737,
+ 0x17da, 0x17e9, 0x1745, 0x1806, 0x197e, 0x19fb,
+ 0x1a32, 0x1962, 0x16c2, 0x1459, 0x1350, 0x1373,
+ 0x1586, 0x199b, 0x1dc0, 0x2023, 0x20a2, 0x1fc1,
+ 0x1e0e, 0x1c6f, 0x1b10, 0x19fa, 0x1ab5, 0x1dcc,
+ 0x2157, 0x23d1, 0x24ff, 0x255b, 0x2623, 0x2751,
+ 0x2758, 0x2648, 0x253e, 0x2422, 0x22e9, 0x21b1,
+ 0x2001, 0x1e35, 0x1cae, 0x1afe, 0x19c6, 0x1912,
+ 0x178f, 0x15c8, 0x14c7, 0x1452, 0x1516, 0x1658,
+ 0x15ed, 0x14e4, 0x148b, 0x13a5, 0x12df, 0x135d,
+ 0x13a6, 0x13bf, 0x14d3, 0x1556, 0x144e, 0x131c,
+ 0x121a, 0x1170, 0x11df, 0x122f, 0x1157, 0x103e,
+ 0x0eb3, 0x0cf5, 0x0ca8, 0x0ccf, 0x0c52, 0x0ca0,
+ 0x0d2d, 0x0c77, 0x0b8f, 0x0b33, 0x0b43, 0x0c86,
+ 0x0e5b, 0x0e7c, 0x0d06, 0x0c3e, 0x0c05, 0x0b0f,
+ 0x0a9a, 0x0aec, 0x0a74, 0x09e9, 0x095d, 0x074e,
+ 0x0507, 0x039b, 0x0293, 0x02b3, 0x0300, 0x01c2,
+ 0xffff, 0xfe6a, 0xfd6d, 0xfdd2, 0xfedb, 0x008b,
+ 0x0245, 0x014b, 0xfe80, 0xfc90, 0xfb22, 0xfa5d,
+ 0xfaa8, 0xfae3, 0xfb4e, 0xfc07, 0xfb8f, 0xf9ce,
+ 0xf7fc, 0xf693, 0xf589, 0xf51e, 0xf529, 0xf4fa,
+ 0xf56e, 0xf70a, 0xf788, 0xf6d1, 0xf6da, 0xf646,
+ 0xf47f, 0xf3b9, 0xf37e, 0xf294, 0xf1d4, 0xf0ea,
+ 0xeeaa, 0xec0e, 0xeb22, 0xebdc, 0xec9f, 0xed64,
+ 0xedee, 0xec69, 0xe96b, 0xe6ab, 0xe3fc, 0xe246,
+ 0xe28a, 0xe34e, 0xe386, 0xe289, 0xdf50, 0xdbda,
+ 0xdb15, 0xdbb3, 0xdb80, 0xdc51, 0xdf49, 0xe0f6,
+ 0xe035, 0xdffe, 0xe017, 0xdf40, 0xdf60, 0xe011,
+ 0xdfe3, 0xe0e9, 0xe3aa, 0xe65f, 0xe935, 0xec07,
+ 0xed8e, 0xedf0, 0xedc6, 0xed5f, 0xeceb, 0xec86,
+ 0xecfe, 0xee79, 0xf037, 0xf25c, 0xf44b, 0xf455,
+ 0xf30d, 0xf1fd, 0xf0c4, 0xeecb, 0xeccf, 0xeb79,
+ 0xeb1a, 0xec97, 0xefd8, 0xf30d, 0xf5c3, 0xf80e,
+ 0xf885, 0xf80b, 0xf83d, 0xf793, 0xf669, 0xf681,
+ 0xf640, 0xf5b9, 0xf654, 0xf675, 0xf70c, 0xfa0f,
+ 0xfc9b, 0xfd11, 0xfc72, 0xf99c, 0xf55a, 0xf337,
+ 0xf3d5, 0xf5b5, 0xf8ae, 0xfc2d, 0xfd7a, 0xfc13,
+ 0xfaca, 0xf9ce, 0xf8c9, 0xfa15, 0xfc6b, 0xfd88,
+ 0xff68, 0x015b, 0x018e, 0x0227, 0x02c0, 0x01bb,
+ 0x011d, 0x0163, 0x0184, 0x01e7, 0x0204, 0x018c,
+ 0x01a0, 0x02e8, 0x04f7, 0x0662, 0x06c7, 0x071b,
+ 0x0737, 0x0729, 0x07a1, 0x07d8, 0x0746, 0x0675,
+ 0x05b1, 0x05bf, 0x076d, 0x096d, 0x095b, 0x07bd,
+ 0x06a2, 0x0508, 0x02ae, 0x0185, 0x0043, 0xfef8,
+ 0x0066, 0x02eb, 0x0577, 0x08ca, 0x0982, 0x076e,
+ 0x0598, 0x02ad, 0xff3c, 0xfd72, 0xfc66, 0xfd68,
+ 0x00af, 0x0288, 0x031b, 0x0451, 0x04a9, 0x02bf,
+ 0x008c, 0x00ad, 0x00a0, 0xfe2b, 0xfd6a, 0xfe1b,
+ 0xfd1f, 0xfe69, 0x01c6, 0x02a3, 0x02d6, 0x01d0,
+ 0xfe2d, 0xfcf9, 0xfd2c, 0xfb43, 0xfb1e, 0xfb48,
+ 0xf812, 0xf677, 0xf713, 0xf531, 0xf297, 0xf11d,
+ 0xf061, 0xf1ed, 0xf41a, 0xf584, 0xf76d, 0xf6ba,
+ 0xf37c, 0xf311, 0xf465, 0xf53a, 0xf53c, 0xf2f9,
+ 0xf497, 0xfbc6, 0xfdd6, 0xfbe9, 0xfc0b, 0xf972,
+ 0xf6c6, 0xf797, 0xf692, 0xf6dc, 0xfa09, 0xfa1e,
+ 0xf8b6, 0xf5d7, 0xf075, 0xee42, 0xef11, 0xf149,
+ 0xf450, 0xf3f5, 0xf447, 0xf4f9, 0xefb2, 0xef34,
+ 0xf580, 0xf58d, 0xf631, 0xfbe9, 0xfd16, 0xfd40,
+ 0xfdd7, 0xfb23, 0xfb12, 0xfbfb, 0xfb1e, 0xfd77,
+ 0xfebd, 0xfd66, 0xff78, 0x0191, 0xffa9, 0xfbc7,
+ 0xf9bd, 0xfbe1, 0xfd4b, 0xfd3c, 0x0077, 0x031d,
+ 0x02b6, 0x015e, 0xfee3, 0xfeaf, 0x001c, 0x007e,
+ 0x025b, 0x0030, 0xfaa6, 0xfd9b, 0x040d, 0x070b,
+ 0x08da, 0x05bf, 0x0364, 0x05a5, 0x02f6, 0x0321,
+ 0x08f7, 0x0585, 0x01c0, 0x0536, 0x03da, 0x040c,
+ 0x09de, 0x0c11, 0x0ff1, 0x1163, 0x0636, 0xfdf0,
+ 0xff6b, 0xfe73, 0xff35, 0x0612, 0x0748, 0x030b,
+ 0x04ed, 0x09e9, 0x0a17, 0x09d4, 0x09ab, 0x04b6,
+ 0x0246, 0x0474, 0x0325, 0x04a6, 0x0b36, 0x0b84,
+ 0x0a8b, 0x0d86, 0x0b4a, 0x0773, 0x0840, 0x08b7,
+ 0x090a, 0x0905, 0x0673, 0x049d, 0x0278, 0x0113,
+ 0x0429, 0x0574, 0x042e, 0x03f2, 0x0030, 0xfd40,
+ 0xfde9, 0xf906, 0xf597, 0xfbe1, 0x0013, 0xff8f,
+ 0x0106, 0x010a, 0xfe76, 0xfcf0, 0xfb69, 0xf996,
+ 0xfb57, 0x00c1, 0x04b6, 0x0852, 0x0e7b, 0x0fb5,
+ 0x0b2b, 0x0a36, 0x098f, 0x0548, 0x0448, 0x0464,
+ 0x03e2, 0x0835, 0x0995, 0x06b3, 0x0a84, 0x0c56,
+ 0x06ca, 0x0475, 0x010a, 0xfbb4, 0xfbed, 0xfcd0,
+ 0x01c7, 0x0a7e, 0x079b, 0x012b, 0x0316, 0x0253,
+ 0xfd7e, 0xfd46, 0x01ae, 0x082f, 0x0d5f, 0x0f07,
+ 0x0f3d, 0x107a, 0x119c, 0x0f48, 0x0c35, 0x0c0a,
+ 0x0b04, 0x0a58, 0x0f77, 0x1453, 0x124a, 0x0f40,
+ 0x0e32, 0x0b21, 0x0886, 0x0967, 0x0b67, 0x0d58,
+ 0x0f4a, 0x10f7, 0x0e18, 0x0791, 0x08ad, 0x0c2b,
+ 0x0993, 0x0cdc, 0x11d4, 0x0e41, 0x0e23, 0x109c,
+ 0x0f86, 0x1171, 0x114b, 0x0f40, 0x1454, 0x16dc,
+ 0x0f7b, 0x08bd, 0x098e, 0x0c42, 0x0b34, 0x0c0a,
+ 0x1090, 0x0f91, 0x0c0f, 0x0eba, 0x0fd6, 0x0bb6,
+ 0x0b4d, 0x0b7e, 0x0879, 0x09b3, 0x0bd8, 0x0b6d,
+ 0x0d56, 0x0dae, 0x0d16, 0x0d88, 0x0ac2, 0x0bea,
+ 0x0e09, 0x09eb, 0x0c93, 0x1060, 0x0b4f, 0x0b2e,
+ 0x0b4f, 0x0627, 0x084b, 0x0917, 0x02dc, 0x03bd,
+ 0x083b, 0x07ba, 0x08a6, 0x0b72, 0x09e9, 0x06e8,
+ 0x062b, 0x06f0, 0x0968, 0x09cf, 0x088e, 0x0968,
+ 0x063b, 0x04ed, 0x0cb6, 0x0e20, 0x0a9e, 0x0d9e,
+ 0x0e21, 0x0bbe, 0x0b4e, 0x0b9b, 0x0e06, 0x0c56,
+ 0x0753, 0x064b, 0x05d5, 0x059e, 0x056a, 0x06d9,
+ 0x0cce, 0x0cbf, 0x0938, 0x0cc7, 0x0e39, 0x0a9d,
+ 0x0af6, 0x0f96, 0x0f4e, 0x09d2, 0x0bf9, 0x1023,
+ 0x0fc5, 0x14f7, 0x1496, 0x0afb, 0x094f, 0x09c1,
+ 0x0806, 0x0b73, 0x116b, 0x15f7, 0x1495, 0x1273,
+ 0x1262, 0x0b2f, 0x0641, 0x0749, 0x035c, 0x0290,
+ 0x0894, 0x0d3b, 0x0d76, 0x0c19, 0x0f42, 0x0dff,
+ 0x06d8, 0x075d, 0x092d, 0x0b8e, 0x10fe, 0x0e9d,
+ 0x0e29, 0x0f03, 0x0482, 0x0046, 0x047e, 0x01e5,
+ 0x00bb, 0x0575, 0x0575, 0xfee9, 0xff4a, 0x0593,
+ 0x010e, 0xfdb5, 0x0247, 0xff7d, 0xffbe, 0x0395,
+ 0x0144, 0x02e1, 0xffef, 0xfa40, 0xfd91, 0xf976,
+ 0xf571, 0xfc26, 0xfe9c, 0xff8d, 0x0016, 0xfd9c,
+ 0xfa6d, 0xf56a, 0xf5df, 0xf4d3, 0xf36c, 0xfb6b,
+ 0xf9d3, 0xf79d, 0xffde, 0xfd8e, 0xfa58, 0xf91a,
+ 0xf271, 0xf4cc, 0xf811, 0xf6d6, 0xfa1f, 0xfea5,
+ 0x01f7, 0x00eb, 0xfffa, 0x0035, 0xfd41, 0x0062,
+ 0x0198, 0xfc92, 0xfe3a, 0xfc3c, 0xf723, 0xf943,
+ 0xfa82, 0xff70, 0x032f, 0xfc37, 0xfcaf, 0xfdaf,
+ 0xf3ad, 0xf231, 0xf178, 0xebf7, 0xeedd, 0xef3d,
+ 0xf1e1, 0xf86a, 0xf4e8, 0xf5e1, 0xf8cf, 0xf565,
+ 0xf514, 0xf2ba, 0xf4af, 0xfc1e, 0xfd94, 0xfa80,
+ 0xf5fd, 0xf97f, 0xfb54, 0xf9b0, 0x05c6, 0x084b,
+ 0x0287, 0x0399, 0xf7e0, 0xf087, 0xf3d7, 0xf2b4,
+ 0xf6e3, 0xf6b8, 0xf76b, 0x010f, 0xfd66, 0xf760,
+ 0xfc44, 0xfda9, 0xfaff, 0xfad5, 0xfc47, 0xfb4a,
+ 0xfac4, 0xff1a, 0x00d8, 0xfdc9, 0xfe2b, 0xffca,
+ 0xfe35, 0xff06, 0xfe47, 0xfad3, 0xfb27, 0xf90b,
+ 0xfac3, 0x02da, 0x04b4, 0x0509, 0x0409, 0x01b4,
+ 0xfe49, 0xf8e9, 0xff12, 0x01a7, 0xff78, 0x08d1,
+ 0x088c, 0x07b2, 0x096c, 0xfec1, 0xffde, 0x02d5,
+ 0x0007, 0x0582, 0x0472, 0x058d, 0x0abd, 0x0a8b,
+ 0x0cc3, 0x0be7, 0x0b56, 0x07e0, 0x041e, 0x0b18,
+ 0x099b, 0x0913, 0x1285, 0x12f0, 0x1112, 0x0caa,
+ 0x070f, 0x086f, 0x08d5, 0x0a82, 0x0f30, 0x15a4,
+ 0x173c, 0x0ee7, 0x0b23, 0x0bf7, 0x0a76, 0x099c,
+ 0x0a79, 0x08c0, 0x0526, 0x0c17, 0x0c5f, 0x0416,
+ 0x0e48, 0x0f45, 0x0259, 0x04e8, 0x061b, 0xffa4,
+ 0xfc3c, 0xfd85, 0xfe3b, 0xfdc6, 0x02f4, 0xfe85,
+ 0xfc37, 0x0313, 0xf9ce, 0xf6fa, 0xfb26, 0xf827,
+ 0xfe79, 0xfb99, 0xf698, 0xfba6, 0xf73e, 0xf548,
+ 0xf7d3, 0xfc8a, 0x02f1, 0x000e, 0xfef4, 0xfcd5,
+ 0xf819, 0xf86f, 0xfb6f, 0x03d6, 0x0295, 0xfde6,
+ 0x0122, 0xfb6d, 0xfa6f, 0xfdfe, 0xfb47, 0xfd7e,
+ 0xfb9b, 0xf923, 0xfb39, 0xf9fa, 0xfac5, 0xfc30,
+ 0xfd56, 0xfb7c, 0xf89c, 0xf970, 0xf74e, 0xf7b8,
+ 0xf43c, 0xeed6, 0xf366, 0xee44, 0xea07, 0xf109,
+ 0xef19, 0xedf7, 0xf102, 0xeea9, 0xe86a, 0xe750,
+ 0xedb0, 0xea05, 0xe845, 0xeeb4, 0xea53, 0xe9dc,
+ 0xeeba, 0xee7e, 0xee6d, 0xecd8, 0xecc5, 0xeafe,
+ 0xebf7, 0xefe4, 0xeb1c, 0xeef0, 0xf764, 0xf40a,
+ 0xf0a7, 0xf0e3, 0xf448, 0xf1fd, 0xeda7, 0xf5f1,
+ 0xfae2, 0xf87e, 0xf573, 0xf3dd, 0xf98b, 0xfc1a,
+ 0xfcea, 0x014e, 0x0481, 0x03b2, 0xfcbb, 0xfe0b,
+ 0x0016, 0xf98b, 0xfe2e, 0x0066, 0xfa80, 0xfc9a,
+ 0xfca9, 0xf81a, 0xf61f, 0xf8f9, 0xf667, 0xec4d,
+ 0xec6c, 0xeeef, 0xf08c, 0xf58d, 0xf562, 0xf8c0,
+ 0xf8f3, 0xf2e4, 0xf208, 0xee79, 0xefe3, 0xf445,
+ 0xf073, 0xf1e8, 0xf7f8, 0xfc0f, 0xffcb, 0x04a9,
+ 0x0451, 0xfdf6, 0x03b4, 0x0478, 0xf936, 0xfe9e,
+ 0x034c, 0x0057, 0x0523, 0x0401, 0x00da, 0x05ee,
+ 0x0c25, 0x09bb, 0x0182, 0x0194, 0x03fb, 0x03ee,
+ 0x0241, 0xffa0, 0x04f4, 0x06db, 0x0689, 0x0cbf,
+ 0x0c66, 0x0c0c, 0x0b7f, 0x0556, 0x04b5, 0x03af,
+ 0x0143, 0x01cf, 0x03f3, 0x07b1, 0x060a, 0x0341,
+ 0xffd4, 0xfa84, 0xfc7d, 0xfc56, 0xf911, 0xfbb1,
+ 0xfd65, 0xfc57, 0xfe1d, 0x032a, 0xff42, 0xf6bb,
+ 0xf7c1, 0xf39d, 0xf0b3, 0xf8f5, 0xf7c4, 0xf79c,
+ 0xff43, 0xfcff, 0xfbe7, 0x01e1, 0x000e, 0xfad1,
+ 0xfca7, 0xfc34, 0xf911, 0xfe48, 0x00c1, 0xfdb7,
+ 0xfdcb, 0xfbbf, 0xfcc7, 0xfefc, 0xfaca, 0xfc03,
+ 0x00e0, 0x01e3, 0x01d0, 0xfed1, 0xfd7e, 0x0092,
+ 0x0024, 0xfc1c, 0xfc52, 0x0096, 0x0140, 0x0033,
+ 0x0356, 0x04fc, 0xfe5a, 0xf81d, 0xfbb4, 0xfc69,
+ 0xf7f5, 0xff05, 0x0546, 0xff6d, 0xff88, 0x0183,
+ 0xf991, 0xf763, 0xfd9b, 0xfbc0, 0xf663, 0xf9b7,
+ 0xfd56, 0xfc01, 0xff73, 0x029f, 0xfc26, 0xfaeb,
+ 0x040b, 0x0373, 0xfb25, 0xfc42, 0xff0d, 0xfbb2,
+ 0xfade, 0xfca6, 0xfc75, 0xfc0c, 0xfcd5, 0xfea1,
+ 0xfcca, 0xf8f7, 0xfdc5, 0x0243, 0xfb62, 0xf796,
+ 0xfadf, 0xfae0, 0xfab8, 0xfca7, 0xfe5f, 0x0015,
+ 0xfdd8, 0xfa46, 0xfb03, 0xfa1b, 0xf6f3, 0xf7e1,
+ 0xfa1a, 0xfcc1, 0x005d, 0x005a, 0x0086, 0xffed,
+ 0xf705, 0xf085, 0xf27b, 0xf2d1, 0xf413, 0xf8e5,
+ 0xfb1a, 0xfe04, 0xff29, 0xf673, 0xf058, 0xf65e,
+ 0xfa5c, 0xf834, 0xfa6f, 0xfd96, 0xfbaf, 0xfbca,
+ 0xfe06, 0xfae2, 0xf81d, 0xfca6, 0x01a0, 0x0413,
+ 0x0735, 0x07bc, 0x0536, 0x0301, 0xffdd, 0xfed7,
+ 0x03de, 0x08b1, 0x0863, 0x06a6, 0x0703, 0x06f5,
+ 0x02d1, 0x006b, 0x048b, 0x05cb, 0x0193, 0x00a5,
+ 0x0078, 0xfd97, 0xff33, 0x0474, 0x06a9, 0x075d,
+ 0x079b, 0x04d9, 0x01b4, 0x01d3, 0x0158, 0xfcb5,
+ 0xfb2b, 0x007c, 0x0435, 0x04f7, 0x05fe, 0x0326,
+ 0xfe4d, 0xf935, 0xf004, 0xec63, 0xf2a8, 0xf5a6,
+ 0xf74a, 0xfbda, 0xf760, 0xee20, 0xeabe, 0xe71a,
+ 0xe573, 0xe931, 0xe95d, 0xea64, 0xf0e1, 0xf1fb,
+ 0xf071, 0xf43f, 0xf5ba, 0xf389, 0xf43e, 0xf562,
+ 0xf572, 0xf852, 0xfc9f, 0xfd9d, 0xfc8c, 0xfd8c,
+ 0xfdc1, 0xfbb3, 0xfdee, 0x0233, 0x028d, 0x0461,
+ 0x05ba, 0x002f, 0xfe10, 0x01b1, 0xff92, 0xfe2f,
+ 0x04de, 0x0848, 0x0764, 0x09a1, 0x09b3, 0x06dc,
+ 0x07c8, 0x0804, 0x04a0, 0x0499, 0x06d7, 0x067b,
+ 0x086f, 0x0d02, 0x0bdb, 0x0843, 0x0b16, 0x0d0f,
+ 0x06c0, 0x03d2, 0x097e, 0x0a0e, 0x056e, 0x0875,
+ 0x0be4, 0x0759, 0x0804, 0x0eca, 0x0dd2, 0x0aed,
+ 0x0d48, 0x0bf7, 0x0885, 0x09f2, 0x0bfc, 0x0e0d,
+ 0x108b, 0x0ec9, 0x0cf6, 0x0d83, 0x0a33, 0x074a,
+ 0x0a65, 0x0d34, 0x0e84, 0x1186, 0x1253, 0x1036,
+ 0x0f6b, 0x0f3a, 0x0d05, 0x0aae, 0x0bc6, 0x0f35,
+ 0x11cf, 0x1435, 0x150b, 0x1241, 0x10b3, 0x114a,
+ 0x0f45, 0x0d6d, 0x0eb9, 0x10a8, 0x11ff, 0x108a,
+ 0x0ef8, 0x11da, 0x1008, 0x0809, 0x07ac, 0x0a66,
+ 0x073f, 0x0723, 0x0994, 0x096a, 0x0bcf, 0x0b2b,
+ 0x04d6, 0x0482, 0x06c8, 0x04e4, 0x052f, 0x05e4,
+ 0x05f9, 0x0993, 0x0891, 0x042a, 0x06c3, 0x06cf,
+ 0x0155, 0x04a4, 0x0b28, 0x09ab, 0x07e6, 0x08c1,
+ 0x07ae, 0x06b7, 0x0523, 0x03ae, 0x09c1, 0x1173,
+ 0x0ea1, 0x09e4, 0x0d4d, 0x0d37, 0x04e5, 0x0247,
+ 0x0606, 0x05a2, 0x050f, 0x09cd, 0x0dd7, 0x0ec4,
+ 0x0f64, 0x0e6c, 0x0ae8, 0x084c, 0x0a07, 0x0e53,
+ 0x0eb0, 0x09e1, 0x0772, 0x0a6e, 0x0c65, 0x0b34,
+ 0x0be0, 0x0d60, 0x0b33, 0x091f, 0x0a9e, 0x0b1a,
+ 0x09ab, 0x0a5d, 0x0b9a, 0x0a66, 0x08eb, 0x08a4,
+ 0x0825, 0x089f, 0x0b8f, 0x0b24, 0x03b7, 0xffd8,
+ 0x0534, 0x07b9, 0x0481, 0x06e0, 0x0c6d, 0x0bee,
+ 0x099f, 0x0acb, 0x0c8e, 0x0b5b, 0x0777, 0x05b8,
+ 0x067b, 0x0548, 0x06aa, 0x0ce2, 0x0fad, 0x103c,
+ 0x108c, 0x09c2, 0x0415, 0x078e, 0x081a, 0x0619,
+ 0x0af5, 0x0eea, 0x0f7a, 0x1183, 0x10d2, 0x0f51,
+ 0x0e50, 0x0834, 0x0595, 0x0a6d, 0x09d1, 0x0550,
+ 0x058d, 0x06cf, 0x06d3, 0x0578, 0x030e, 0x01d7,
+ 0xfe9a, 0xfc7c, 0x007e, 0x0053, 0xfbbc, 0xfc26,
+ 0xf9f6, 0xf55a, 0xf7dc, 0xf8f5, 0xf681, 0xf972,
+ 0xfcf6, 0xfd78, 0xfd75, 0xfcb3, 0xfe78, 0xffac,
+ 0xfdbb, 0x0126, 0x0564, 0x03ad, 0x03ef, 0x03da,
+ 0x0289, 0x07df, 0x0904, 0x0354, 0x05d5, 0x0935,
+ 0x0625, 0x072f, 0x0979, 0x08df, 0x09f7, 0x09d5,
+ 0x0a16, 0x0cdf, 0x0ba1, 0x0955, 0x0a23, 0x0a44,
+ 0x09ac, 0x0694, 0x0375, 0x072b, 0x08a7, 0x03fe,
+ 0x0519, 0x0851, 0x05e8, 0x0396, 0x01b7, 0xff1b,
+ 0xff08, 0xff15, 0xfdbd, 0xfcb3, 0xfc34, 0xfc60,
+ 0xfc46, 0xfe42, 0x021c, 0x0047, 0xfce9, 0xff1d,
+ 0xffca, 0xfeeb, 0x005c, 0xff72, 0x0116, 0x068a,
+ 0x05d5, 0x0454, 0x058a, 0x01ac, 0x001e, 0x044d,
+ 0x04d6, 0x066a, 0x0b4a, 0x0b18, 0x0957, 0x091b,
+ 0x069f, 0x0500, 0x055d, 0x05f6, 0x0878, 0x0a9b,
+ 0x0b2b, 0x0c2d, 0x0b20, 0x081d, 0x060c, 0x03b2,
+ 0x021b, 0x0349, 0x04ad, 0x065d, 0x0aae, 0x0d53,
+ 0x09ba, 0x052a, 0x0385, 0x014e, 0x0216, 0x0720,
+ 0x071e, 0x06d7, 0x0c4e, 0x0c06, 0x09d1, 0x0dc8,
+ 0x0bac, 0x07e7, 0x0cea, 0x0e92, 0x0dc4, 0x1107,
+ 0x0f99, 0x0e59, 0x1145, 0x0fda, 0x0e9b, 0x0e2a,
+ 0x0b31, 0x0d07, 0x0db5, 0x0a44, 0x0d37, 0x0e3e,
+ 0x0a97, 0x0daa, 0x0df3, 0x0814, 0x07f6, 0x0821,
+ 0x04d0, 0x046f, 0x04e7, 0x0537, 0x0633, 0x06c6,
+ 0x0856, 0x0892, 0x078d, 0x07fe, 0x060f, 0x03b9,
+ 0x057c, 0x076e, 0x08de, 0x09a1, 0x075a, 0x059a,
+ 0x0515, 0x04a3, 0x05fc, 0x065a, 0x05fd, 0x071e,
+ 0x05d8, 0x03b6, 0x03cb, 0x034e, 0x0356, 0x0400,
+ 0x0371, 0x0428, 0x0432, 0x01e1, 0x0208, 0x0473,
+ 0x0618, 0x06b1, 0x064f, 0x0724, 0x08f5, 0x094c,
+ 0x09c9, 0x0a1c, 0x08f6, 0x092d, 0x0ac5, 0x0b95,
+ 0x0c18, 0x0c27, 0x0a54, 0x06f2, 0x0570, 0x06a1,
+ 0x0688, 0x05d0, 0x0684, 0x05e2, 0x051e, 0x050c,
+ 0x0257, 0xff4a, 0xfc70, 0xf85e, 0xf96c, 0xfdc8,
+ 0xfd10, 0xfc79, 0xff03, 0xfdf0, 0xfb21, 0xf9f9,
+ 0xf82e, 0xf716, 0xf638, 0xf4eb, 0xf751, 0xf8a2,
+ 0xf4ce, 0xf508, 0xf6c7, 0xf22c, 0xf121, 0xf35e,
+ 0xef1f, 0xedde, 0xf0d4, 0xeecf, 0xf0d4, 0xf59e,
+ 0xf19c, 0xee8d, 0xf03e, 0xf04d, 0xf42b, 0xf809,
+ 0xf68a, 0xf7a4, 0xf845, 0xf645, 0xf921, 0xfaf8,
+ 0xfa78, 0xff89, 0x02ed, 0x00f0, 0x017f, 0x0303,
+ 0x025f, 0x026d, 0x0376, 0x0489, 0x04ac, 0x0325,
+ 0x0101, 0xfedb, 0xfccd, 0xfb58, 0xfbab, 0xfd7c,
+ 0xfeba, 0x0115, 0x04d3, 0x04ec, 0x0145, 0xfcb4,
+ 0xf8a5, 0xf7a6, 0xf77d, 0xf702, 0xfa7d, 0xff00,
+ 0x008e, 0x0035, 0xfd11, 0xfa31, 0xf8ee, 0xf570,
+ 0xf450, 0xf69e, 0xf6fc, 0xf9d8, 0xfe95, 0xff6c,
+ 0x00e5, 0x01cc, 0xfe65, 0xfcd5, 0xfd18, 0xfd13,
+ 0x0010, 0x032a, 0x0447, 0x0551, 0x0393, 0xff6e,
+ 0xfed6, 0x024b, 0x02dd, 0xfffd, 0x0218, 0x05c9,
+ 0x0408, 0x04f1, 0x06ed, 0x0231, 0x011e, 0x0405,
+ 0x0213, 0x0432, 0x097a, 0x0764, 0x05fa, 0x0891,
+ 0x072f, 0x0414, 0x0279, 0x0148, 0x022f, 0x055e,
+ 0x080f, 0x0764, 0x04a1, 0x0355, 0x0266, 0x017c,
+ 0x01b5, 0x00ed, 0x00a9, 0x032d, 0x062e, 0x0823,
+ 0x0754, 0x049a, 0x0244, 0xfd79, 0xf9a0, 0xfb87,
+ 0xfc18, 0xfb6d, 0xff02, 0x005f, 0xfdcb, 0xfc19,
+ 0xfa9a, 0xfa42, 0xfa61, 0xf977, 0xfb3f, 0xfcf1,
+ 0xfc0c, 0xfd61, 0xfe28, 0xfc7d, 0xfcbe, 0xfc29,
+ 0xfae2, 0xfcbe, 0xfd5c, 0xfc79, 0xfd15, 0xfb4d,
+ 0xf827, 0xf787, 0xf699, 0xf549, 0xf6ba, 0xf8c5,
+ 0xf854, 0xf72c, 0xf72d, 0xf627, 0xf473, 0xf5c1,
+ 0xf84b, 0xf8b5, 0xf7df, 0xf7ad, 0xfa89, 0xfdcb,
+ 0xfc76, 0xfc74, 0x0020, 0xfe8d, 0xfab8, 0xfadd,
+ 0xf8c9, 0xf621, 0xf86a, 0xf8dc, 0xf560, 0xf366,
+ 0xf313, 0xf3e8, 0xf499, 0xf25b, 0xefd0, 0xefd2,
+ 0xf100, 0xf0fb, 0xef77, 0xf090, 0xf33a, 0xf12f,
+ 0xee93, 0xef68, 0xef74, 0xf1be, 0xf607, 0xf4ab,
+ 0xf3bf, 0xf748, 0xf63f, 0xf32d, 0xf478, 0xf6e2,
+ 0xf9ea, 0xfc5e, 0xfd1c, 0x0015, 0x00c2, 0xfc6f,
+ 0xfb93, 0xfc07, 0xf8a2, 0xf73b, 0xf7a4, 0xf768,
+ 0xf9c2, 0xfc1f, 0xfd49, 0xff2c, 0xfd0c, 0xf8a0,
+ 0xf8fd, 0xfa8a, 0xfa5b, 0xfb01, 0xfa30, 0xf8b5,
+ 0xfaa7, 0xfc60, 0xfb5a, 0xfaf8, 0xfa99, 0xf916,
+ 0xf947, 0xfa26, 0xf93a, 0xf97b, 0xfb8f, 0xfb0e,
+ 0xf8e6, 0xf922, 0xf921, 0xf67a, 0xf568, 0xf70e,
+ 0xf7f0, 0xf788, 0xf59f, 0xf313, 0xf4cb, 0xf8e3,
+ 0xf898, 0xf72c, 0xf97b, 0xfb5b, 0xf9c2, 0xf7ee,
+ 0xfa0f, 0xfefb, 0x014f, 0x02f9, 0x0766, 0x07e1,
+ 0x030e, 0x0054, 0xfec0, 0xfbbb, 0xfa67, 0xfa7f,
+ 0xfb14, 0xfd5c, 0xffd6, 0x0006, 0xfd27, 0xf9f9,
+ 0xf926, 0xf7c6, 0xf542, 0xf4f1, 0xf535, 0xf3ef,
+ 0xf2d7, 0xf356, 0xf4be, 0xf4a4, 0xf46b, 0xf632,
+ 0xf50c, 0xf1da, 0xf24c, 0xf156, 0xeec7, 0xf135,
+ 0xf287, 0xf08e, 0xf2e5, 0xf5aa, 0xf4f3, 0xf592,
+ 0xf640, 0xf4dc, 0xf37b, 0xf277, 0xf305, 0xf47c,
+ 0xf4d0, 0xf634, 0xf7ad, 0xf711, 0xf78e, 0xf7d5,
+ 0xf5ea, 0xf703, 0xfa09, 0xf9dc, 0xf9db, 0xfac7,
+ 0xf8cd, 0xf786, 0xf9a3, 0xfb87, 0xfce5, 0xfdda,
+ 0xfca5, 0xfc0e, 0xfd8a, 0xfdfb, 0xfd5c, 0xfd37,
+ 0xfda1, 0xfef1, 0x0000, 0x008a, 0x023e, 0x03a6,
+ 0x02fe, 0x016e, 0x001c, 0x0019, 0x0098, 0x0030,
+ 0x01be, 0x0581, 0x06df, 0x069d, 0x0705, 0x056c,
+ 0x02a7, 0x02d7, 0x047c, 0x04d0, 0x053c, 0x0611,
+ 0x0639, 0x0731, 0x0878, 0x077a, 0x067f, 0x0749,
+ 0x06bf, 0x0595, 0x06ab, 0x07d4, 0x078a, 0x0827,
+ 0x09e9, 0x0a0e, 0x08ad, 0x08d6, 0x0950, 0x07cf,
+ 0x07c6, 0x08ff, 0x06ca, 0x0493, 0x0594, 0x04da,
+ 0x02b8, 0x0365, 0x03f2, 0x033b, 0x050c, 0x0660,
+ 0x0374, 0x0211, 0x03c5, 0x02b1, 0x01cb, 0x04ce,
+ 0x0647, 0x061c, 0x06c8, 0x05d7, 0x05e0, 0x06e6,
+ 0x03d5, 0x017d, 0x0268, 0x00fd, 0x00a2, 0x03f7,
+ 0x04e5, 0x041c, 0x0535, 0x0572, 0x02fb, 0x0089,
+ 0x0071, 0xfffa, 0xfdb5, 0xfe0f, 0x0027, 0xff7f,
+ 0xfe33, 0xfdbd, 0xfce5, 0xfd04, 0xfe47, 0xff0d,
+ 0xfdcd, 0xfc0b, 0xfd5d, 0xfe6c, 0xfd08, 0xfe46,
+ 0x0021, 0x006b, 0x0340, 0x04ab, 0x03bd, 0x069f,
+ 0x080e, 0x050a, 0x049b, 0x058d, 0x0521, 0x0546,
+ 0x048e, 0x03df, 0x04b2, 0x0470, 0x0415, 0x0539,
+ 0x05b7, 0x0492, 0x0320, 0x03c4, 0x05b4, 0x0569,
+ 0x03f9, 0x0391, 0x03a9, 0x04cf, 0x067e, 0x07b9,
+ 0x092c, 0x0967, 0x07ec, 0x06ed, 0x062a, 0x04cd,
+ 0x044b, 0x0578, 0x0675, 0x0603, 0x0678, 0x0773,
+ 0x05c7, 0x043c, 0x055c, 0x061d, 0x05fa, 0x0670,
+ 0x07d3, 0x0924, 0x0815, 0x06ab, 0x05ff, 0x02ff,
+ 0x0246, 0x05da, 0x06a2, 0x079f, 0x0b42, 0x09f3,
+ 0x07cf, 0x098c, 0x074c, 0x037e, 0x057d, 0x082c,
+ 0x082a, 0x08a6, 0x0976, 0x0929, 0x08a8, 0x0885,
+ 0x074c, 0x059c, 0x05bd, 0x0604, 0x0665, 0x0932,
+ 0x0a99, 0x086f, 0x0633, 0x0441, 0x02cf, 0x0269,
+ 0x0164, 0x01da, 0x03e1, 0x030c, 0x012f, 0x0130,
+ 0x0135, 0x00c2, 0xffa3, 0xfeb7, 0x0075, 0x024e,
+ 0x022d, 0x02c0, 0x038c, 0x0343, 0x0374, 0x038b,
+ 0x031e, 0x03b5, 0x03ed, 0x0319, 0x043d, 0x05bf,
+ 0x0339, 0x0047, 0x00dc, 0x0136, 0x0072, 0x00a9,
+ 0x0009, 0xff51, 0xff7c, 0xfdc9, 0xfd24, 0x0006,
+ 0x0090, 0xfe11, 0xfd58, 0xfd9f, 0xfd78, 0xfd8f,
+ 0xfd45, 0xfd2d, 0xfdd5, 0xfdba, 0xfcd8, 0xfc54,
+ 0xfc1e, 0xfc2b, 0xfc83, 0xfc95, 0xfd17, 0xfeb0,
+ 0xfedd, 0xfd40, 0xfd86, 0xfe79, 0xfccb, 0xfb91,
+ 0xfcda, 0xfe1b, 0xfe9f, 0xfe60, 0xfd87, 0xfd64,
+ 0xfd0e, 0xfc66, 0xfd50, 0xfe45, 0xfdc0, 0xfd6d,
+ 0xfd5a, 0xfcca, 0xfce3, 0xfdb9, 0xfe18, 0xfe31,
+ 0xfec0, 0xff32, 0xff7c, 0x0056, 0x0082, 0xff9b,
+ 0xffbc, 0x0086, 0x00db, 0x01d9, 0x024d, 0x0147,
+ 0x01e6, 0x041e, 0x049d, 0x0372, 0x018a, 0xfff8,
+ 0x0143, 0x0329, 0x0204, 0x01fc, 0x057b, 0x0745,
+ 0x0711, 0x0825, 0x08b2, 0x08d2, 0x0a54, 0x0afd,
+ 0x0b22, 0x0c21, 0x0b6b, 0x0a4d, 0x0bc9, 0x0d49,
+ 0x0d69, 0x0dba, 0x0d8a, 0x0c5a, 0x0b42, 0x0a3e,
+ 0x094d, 0x09dc, 0x0ba0, 0x0bec, 0x0b76, 0x0cbb,
+ 0x0df9, 0x0ded, 0x0d0b, 0x0a77, 0x08cb, 0x092a,
+ 0x080b, 0x07f2, 0x0a3c, 0x0956, 0x07fb, 0x0a2b,
+ 0x0a2f, 0x07a4, 0x077b, 0x0892, 0x08a5, 0x077c,
+ 0x063e, 0x0669, 0x06c0, 0x0769, 0x0918, 0x091c,
+ 0x0856, 0x08ee, 0x084c, 0x06ea, 0x07cd, 0x0952,
+ 0x0957, 0x08d1, 0x0934, 0x0a11, 0x0ab9, 0x0c3d,
+ 0x0d29, 0x0bac, 0x0b16, 0x0b9d, 0x09e1, 0x0882,
+ 0x09b9, 0x0ac1, 0x0b7e, 0x0d06, 0x0d7a, 0x0ba9,
+ 0x09c6, 0x09f6, 0x0a36, 0x0901, 0x087d, 0x08ba,
+ 0x0882, 0x085e, 0x0864, 0x08da, 0x08af, 0x0675,
+ 0x04b2, 0x03b3, 0x01c0, 0x018f, 0x02a5, 0x01d0,
+ 0x0071, 0xff5f, 0xff80, 0x00d6, 0xfe63, 0xfa4a,
+ 0xfab1, 0xfb3e, 0xf98d, 0xf97c, 0xf95e, 0xf7fe,
+ 0xf7b5, 0xf88e, 0xf9d0, 0xf9a4, 0xf805, 0xf81a,
+ 0xf88b, 0xf7ef, 0xf8f4, 0xfa28, 0xf969, 0xf8e9,
+ 0xf98d, 0xfa53, 0xfa4f, 0xf9ae, 0xf97e, 0xf8c0,
+ 0xf821, 0xf994, 0xf9cd, 0xf7f2, 0xf834, 0xf962,
+ 0xf967, 0xfa55, 0xfb7e, 0xfb98, 0xfbf4, 0xfc84,
+ 0xfce9, 0xfd4f, 0xfd2c, 0xfd0e, 0xfded, 0xfec7,
+ 0xfe59, 0xfdb6, 0xfdfb, 0xfd95, 0xfcee, 0xfe5e,
+ 0xff2a, 0xfd4d, 0xfc9e, 0xfcfa, 0xfb98, 0xfb09,
+ 0xfc02, 0xfb79, 0xfa2e, 0xf97d, 0xf8ab, 0xf8f9,
+ 0xfad8, 0xfc1d, 0xfcf5, 0xfe31, 0xfe04, 0xfd38,
+ 0xfe82, 0xffb1, 0xff0b, 0xffb5, 0x015c, 0x0155,
+ 0x0180, 0x0259, 0x01b2, 0x0163, 0x02d7, 0x0353,
+ 0x0244, 0x01fd, 0x02f9, 0x03bd, 0x0394, 0x0356,
+ 0x0381, 0x036d, 0x030a, 0x033c, 0x042a, 0x048d,
+ 0x0404, 0x041d, 0x04ac, 0x0452, 0x0425, 0x0455,
+ 0x034a, 0x0220, 0x0276, 0x03a5, 0x042a, 0x033d,
+ 0x0352, 0x0541, 0x0534, 0x04c3, 0x071b, 0x0731,
+ 0x0501, 0x062b, 0x0750, 0x064a, 0x0738, 0x07b1,
+ 0x0594, 0x050c, 0x05c6, 0x0541, 0x04e4, 0x04f9,
+ 0x042a, 0x0300, 0x02ee, 0x0360, 0x02c3, 0x0228,
+ 0x0252, 0x0219, 0x0291, 0x03b3, 0x034f, 0x02b8,
+ 0x032c, 0x03d0, 0x0471, 0x0365, 0x014b, 0x012e,
+ 0x0194, 0x019f, 0x021e, 0x0055, 0xfd91, 0xfdb5,
+ 0xfeb7, 0xff1f, 0xffe2, 0x000e, 0xffde, 0xffa4,
+ 0xfef3, 0xff3a, 0xffed, 0xff45, 0xff45, 0x00f0,
+ 0x019f, 0x013d, 0x01e0, 0x0262, 0x0161, 0x00b9,
+ 0x00ce, 0xfff9, 0xff01, 0xfec8, 0xfe2a, 0xfd25,
+ 0xfc72, 0xfbfd, 0xfb2f, 0xf91d, 0xf741, 0xf796,
+ 0xf833, 0xf801, 0xf833, 0xf81f, 0xf7b6, 0xf7fc,
+ 0xf8cc, 0xf982, 0xf886, 0xf6de, 0xf74f, 0xf799,
+ 0xf6b2, 0xf733, 0xf7b3, 0xf70f, 0xf6a4, 0xf662,
+ 0xf6a5, 0xf696, 0xf604, 0xf747, 0xf84e, 0xf795,
+ 0xf7ff, 0xf82d, 0xf7b9, 0xf958, 0xfa31, 0xf986,
+ 0xfa96, 0xfaeb, 0xf96c, 0xf915, 0xf93b, 0xf998,
+ 0xfa17, 0xf874, 0xf746, 0xf889, 0xf8c8, 0xf865,
+ 0xf874, 0xf74d, 0xf695, 0xf67a, 0xf604, 0xf727,
+ 0xf7de, 0xf705, 0xf85a, 0xfa32, 0xfa15, 0xfa47,
+ 0xfa5a, 0xfa22, 0xfb12, 0xfaf5, 0xf9c4, 0xfa15,
+ 0xfa48, 0xf9bb, 0xfa81, 0xfb55, 0xfb32, 0xfadc,
+ 0xf9c6, 0xf982, 0xfaae, 0xfa4d, 0xf9f4, 0xfb80,
+ 0xfb91, 0xfaf5, 0xfc41, 0xfd14, 0xfcef, 0xfd7c,
+ 0xfded, 0xfdd9, 0xfe2b, 0xfed7, 0xfebb, 0xfe41,
+ 0xff0f, 0x0028, 0x0045, 0x0019, 0xff2b, 0xfe21,
+ 0xff03, 0xffce, 0xfeb3, 0xfdc7, 0xfd16, 0xfc08,
+ 0xfc37, 0xfc7f, 0xfba2, 0xfb67, 0xfb42, 0xfa32,
+ 0xf958, 0xf8de, 0xf90a, 0xf922, 0xf7d6, 0xf6fc,
+ 0xf6e4, 0xf66f, 0xf6b1, 0xf69f, 0xf615, 0xf6cb,
+ 0xf689, 0xf540, 0xf583, 0xf5a4, 0xf547, 0xf68f,
+ 0xf894, 0xf969, 0xf8bf, 0xf823, 0xf880, 0xf881,
+ 0xf89b, 0xf967, 0xf8ea, 0xf82c, 0xf907, 0xf90a,
+ 0xf89d, 0xfa80, 0xfb8a, 0xfa4d, 0xfa78, 0xfaa1,
+ 0xf969, 0xfa65, 0xfbc9, 0xfad1, 0xfae1, 0xfc10,
+ 0xfbf4, 0xfc03, 0xfc57, 0xfbf5, 0xfc4d, 0xfd3b,
+ 0xfd2d, 0xfcae, 0xfcb4, 0xfd30, 0xfe41, 0xff67,
+ 0xff75, 0xff18, 0xff8e, 0xffb7, 0xff5c, 0x0048,
+ 0x00ff, 0xffce, 0xff96, 0x00c3, 0x00db, 0x011b,
+ 0x01f3, 0x01ec, 0x0231, 0x02b3, 0x02d7, 0x03c5,
+ 0x044b, 0x03b3, 0x0391, 0x03fa, 0x04ea, 0x05b0,
+ 0x0545, 0x0556, 0x05fa, 0x05c0, 0x05a2, 0x05f8,
+ 0x0684, 0x077b, 0x0782, 0x06e3, 0x074f, 0x07e0,
+ 0x078a, 0x06fb, 0x072d, 0x0809, 0x0779, 0x05b0,
+ 0x05c5, 0x06ad, 0x0601, 0x0599, 0x05e8, 0x05c2,
+ 0x062e, 0x068b, 0x064a, 0x0714, 0x0753, 0x05f5,
+ 0x0590, 0x05c2, 0x0583, 0x05f7, 0x0640, 0x0650,
+ 0x06d2, 0x0620, 0x0540, 0x05aa, 0x0550, 0x04ad,
+ 0x04a0, 0x03ad, 0x0359, 0x0412, 0x0360, 0x0227,
+ 0x019b, 0x0182, 0x0245, 0x0272, 0x01b6, 0x01b6,
+ 0x016f, 0x00a8, 0x00c1, 0x00da, 0x006c, 0x0026,
+ 0x0022, 0x0048, 0x0011, 0xff8b, 0xffb6, 0x00c1,
+ 0x01c7, 0x0163, 0x0025, 0x0090, 0x01dd, 0x01c2,
+ 0x01d8, 0x02b7, 0x0207, 0x0119, 0x018a, 0x0145,
+ 0x013c, 0x02d9, 0x02e2, 0x0161, 0x0164, 0x01b5,
+ 0x0131, 0x0130, 0x015e, 0x00de, 0x0060, 0x0052,
+ 0x006a, 0x010c, 0x01c3, 0x0122, 0x00a3, 0x01c1,
+ 0x0290, 0x029a, 0x02b6, 0x029c, 0x036d, 0x04ed,
+ 0x04dd, 0x0445, 0x0473, 0x0455, 0x04d6, 0x0656,
+ 0x0676, 0x05ba, 0x05bc, 0x05ac, 0x0604, 0x06ab,
+ 0x0635, 0x0639, 0x070e, 0x06f2, 0x06f4, 0x07af,
+ 0x0843, 0x089b, 0x08c3, 0x0910, 0x0908, 0x08c0,
+ 0x0956, 0x097c, 0x090e, 0x093e, 0x0911, 0x08ee,
+ 0x0896, 0x0768, 0x0804, 0x08f8, 0x07a4, 0x0717,
+ 0x0744, 0x05e6, 0x051b, 0x0539, 0x0497, 0x0491,
+ 0x0531, 0x0427, 0x0328, 0x0454, 0x04a7, 0x039a,
+ 0x03b0, 0x0370, 0x025d, 0x024b, 0x0275, 0x0263,
+ 0x026e, 0x01d5, 0x0112, 0x01c9, 0x032b, 0x0291,
+ 0x01ca, 0x0383, 0x040f, 0x02a1, 0x0303, 0x034f,
+ 0x0253, 0x0312, 0x03e6, 0x0316, 0x0329, 0x0382,
+ 0x02d2, 0x0348, 0x041b, 0x0391, 0x03af, 0x03bf,
+ 0x02a0, 0x0280, 0x0253, 0x01d7, 0x02cf, 0x02b9,
+ 0x01bd, 0x020b, 0x01e4, 0x01b7, 0x01f1, 0x0100,
+ 0x0087, 0x0099, 0xff86, 0xfe9b, 0xfe94, 0xfea0,
+ 0xfe62, 0xfdc8, 0xfd15, 0xfc99, 0xfc88, 0xfca7,
+ 0xfccb, 0xfcca, 0xfc85, 0xfcbc, 0xfcd5, 0xfc31,
+ 0xfc29, 0xfc8a, 0xfcf9, 0xfd30, 0xfc28, 0xfbfd,
+ 0xfce5, 0xfc95, 0xfc84, 0xfc73, 0xfb9a, 0xfc19,
+ 0xfc90, 0xfbe3, 0xfbb4, 0xfbae, 0xfbc9, 0xfbf5,
+ 0xfb7d, 0xfae1, 0xfa80, 0xfadc, 0xfb66, 0xfb5c,
+ 0xfbf1, 0xfc50, 0xfbcd, 0xfbf5, 0xfc19, 0xfbe1,
+ 0xfc39, 0xfc7d, 0xfc79, 0xfc14, 0xfb74, 0xfbcd,
+ 0xfca6, 0xfceb, 0xfd06, 0xfd18, 0xfce6, 0xfcd9,
+ 0xfd13, 0xfd7c, 0xfe7e, 0xff5f, 0xff7d, 0x0042,
+ 0x0190, 0x0254, 0x02fc, 0x037b, 0x044f, 0x0549,
+ 0x054a, 0x05e8, 0x0747, 0x07f4, 0x08a2, 0x08ea,
+ 0x0937, 0x0a56, 0x0a41, 0x0a0b, 0x0b9a, 0x0cd6,
+ 0x0cbf, 0x0c18, 0x0bc3, 0x0be8, 0x0b70, 0x0adf,
+ 0x0ae3, 0x0ac1, 0x0a65, 0x0a4e, 0x0a8a, 0x09f2,
+ 0x093c, 0x0a25, 0x0a30, 0x08fa, 0x090b, 0x089b,
+ 0x0792, 0x07a8, 0x0739, 0x065a, 0x05b2, 0x04bd,
+ 0x049d, 0x04eb, 0x050d, 0x05d9, 0x0647, 0x05cd,
+ 0x057f, 0x0589, 0x05c6, 0x0620, 0x06ae, 0x07a0,
+ 0x081f, 0x07b9, 0x0806, 0x094f, 0x097c, 0x0933,
+ 0x0a09, 0x0aaf, 0x0af1, 0x0b3c, 0x0b51, 0x0bde,
+ 0x0bcd, 0x0b42, 0x0c25, 0x0c6f, 0x0c10, 0x0d07,
+ 0x0cfe, 0x0c88, 0x0db3, 0x0da3, 0x0c70, 0x0c92,
+ 0x0c83, 0x0b75, 0x0a82, 0x098d, 0x0896, 0x07cb,
+ 0x06bf, 0x05aa, 0x04fb, 0x0489, 0x040c, 0x031c,
+ 0x0216, 0x01a1, 0x0147, 0x0107, 0x00a3, 0xff97,
+ 0xff52, 0xff67, 0xfe31, 0xfd75, 0xfd53, 0xfc89,
+ 0xfc30, 0xfb87, 0xfa10, 0xf97c, 0xf934, 0xf874,
+ 0xf7a9, 0xf6d1, 0xf66d, 0xf664, 0xf631, 0xf5e5,
+ 0xf5c7, 0xf657, 0xf6dc, 0xf6f1, 0xf7ad, 0xf8b5,
+ 0xf9c5, 0xfafd, 0xfb6a, 0xfbb6, 0xfc4b, 0xfc48,
+ 0xfc9a, 0xfd8e, 0xfe05, 0xfdde, 0xfd82, 0xfdb6,
+ 0xfe1a, 0xfdba, 0xfda4, 0xfdad, 0xfc95, 0xfb82,
+ 0xfad5, 0xfa0a, 0xf9da, 0xf9dc, 0xf9bb, 0xf9bf,
+ 0xf965, 0xf99c, 0xfa99, 0xfa95, 0xfa35, 0xfa70,
+ 0xfa9a, 0xfae1, 0xfae4, 0xfaa2, 0xfad2, 0xfa8a,
+ 0xfa61, 0xfb3e, 0xfb4b, 0xfafb, 0xfbc6, 0xfc4d,
+ 0xfc49, 0xfc7e, 0xfcc2, 0xfd26, 0xfd55, 0xfd5e,
+ 0xfdd6, 0xfe26, 0xfe46, 0xfeca, 0xff18, 0xff11,
+ 0xff3e, 0xff6f, 0xff99, 0xffac, 0xff93, 0x0005,
+ 0x00d1, 0x0108, 0x011f, 0x0183, 0x021b, 0x0310,
+ 0x03a6, 0x03b0, 0x0412, 0x047f, 0x04ae, 0x04c0,
+ 0x0460, 0x044a, 0x04ea, 0x0521, 0x04f7, 0x0548,
+ 0x0593, 0x0558, 0x054b, 0x05b1, 0x05e6, 0x05d0,
+ 0x0588, 0x04d0, 0x0426, 0x043b, 0x04b6, 0x04c4,
+ 0x0476, 0x0493, 0x050d, 0x0561, 0x0593, 0x05bb,
+ 0x05fd, 0x064e, 0x066d, 0x063c, 0x05f7, 0x0617,
+ 0x05c2, 0x0473, 0x03bf, 0x0383, 0x02af, 0x01f5,
+ 0x014f, 0x00c6, 0x0090, 0xffef, 0xff72, 0xff64,
+ 0xff35, 0xfef2, 0xfe68, 0xfebd, 0x0008, 0x0044,
+ 0x0055, 0x00cc, 0x00ea, 0x01ef, 0x02c0, 0x0292,
+ 0x0352, 0x03c5, 0x031e, 0x02fe, 0x029e, 0x01c5,
+ 0x01be, 0x01d7, 0x0100, 0xffdf, 0xff50, 0xff2a,
+ 0xff3f, 0xff51, 0xfed9, 0xfe7e, 0xfe70, 0xfdd4,
+ 0xfd39, 0xfd29, 0xfd27, 0xfd0e, 0xfcb0, 0xfbdd,
+ 0xfae4, 0xfa40, 0xf9ec, 0xf98d, 0xf952, 0xf91f,
+ 0xf893, 0xf815, 0xf7e0, 0xf795, 0xf70e, 0xf6e0,
+ 0xf6fb, 0xf65d, 0xf5f8, 0xf670, 0xf663, 0xf637,
+ 0xf650, 0xf665, 0xf72e, 0xf785, 0xf77a, 0xf84b,
+ 0xf83f, 0xf801, 0xf8f1, 0xf909, 0xf8c1, 0xf90d,
+ 0xf8d5, 0xf88b, 0xf843, 0xf7d3, 0xf7c7, 0xf78d,
+ 0xf71e, 0xf73e, 0xf7ca, 0xf817, 0xf801, 0xf80e,
+ 0xf80c, 0xf7e9, 0xf7e9, 0xf785, 0xf75e, 0xf7d4,
+ 0xf810, 0xf861, 0xf86c, 0xf7be, 0xf762, 0xf764,
+ 0xf76e, 0xf755, 0xf72d, 0xf797, 0xf7af, 0xf752,
+ 0xf7ac, 0xf841, 0xf90a, 0xf9d4, 0xf99f, 0xf97b,
+ 0xf9ce, 0xf9bd, 0xf9bc, 0xfa1b, 0xfa69, 0xfaa3,
+ 0xfb74, 0xfc7f, 0xfc64, 0xfc4a, 0xfd5d, 0xfe3a,
+ 0xfe91, 0xfecb, 0xfed9, 0xff2a, 0xffad, 0x0039,
+ 0x007a, 0xffee, 0xff8c, 0xffc3, 0xff9a, 0xff4d,
+ 0xff9c, 0xffb9, 0xff01, 0xfeaa, 0xfebf, 0xfe23,
+ 0xfdbc, 0xfddf, 0xfd90, 0xfd0a, 0xfc85, 0xfc45,
+ 0xfc73, 0xfc36, 0xfb7e, 0xfad9, 0xfada, 0xfb32,
+ 0xfa82, 0xf99c, 0xf959, 0xf89d, 0xf7dd, 0xf794,
+ 0xf768, 0xf794, 0xf783, 0xf74f, 0xf797, 0xf7da,
+ 0xf7df, 0xf772, 0xf73e, 0xf7b7, 0xf77c, 0xf730,
+ 0xf7a6, 0xf7b6, 0xf7da, 0xf84c, 0xf868, 0xf899,
+ 0xf89b, 0xf8a4, 0xf8ed, 0xf8a9, 0xf8c4, 0xf973,
+ 0xf932, 0xf8ba, 0xf913, 0xf969, 0xf95c, 0xf982,
+ 0xf9c9, 0xf989, 0xf934, 0xf985, 0xf9e0, 0xf9b7,
+ 0xf9a3, 0xfa27, 0xfaa5, 0xfac6, 0xfb20, 0xfb80,
+ 0xfbad, 0xfc24, 0xfc72, 0xfc7b, 0xfcfa, 0xfda4,
+ 0xfde6, 0xfe22, 0xfee8, 0xffc9, 0x000f, 0x0025,
+ 0x0069, 0x00db, 0x0180, 0x01bb, 0x01c3, 0x024c,
+ 0x02b3, 0x02b5, 0x02ef, 0x0388, 0x0439, 0x0484,
+ 0x0487, 0x049f, 0x04b3, 0x049a, 0x042f, 0x0416,
+ 0x04b9, 0x0519, 0x050d, 0x050b, 0x04ee, 0x04eb,
+ 0x0505, 0x0544, 0x05c8, 0x05f7, 0x062b, 0x06b7,
+ 0x06bd, 0x06a0, 0x06fe, 0x0724, 0x06e1, 0x068a,
+ 0x0664, 0x06b8, 0x072e, 0x0725, 0x06c4, 0x0691,
+ 0x067f, 0x0653, 0x0619, 0x05df, 0x05c0, 0x05a1,
+ 0x058a, 0x05ba, 0x0599, 0x0521, 0x0515, 0x04e6,
+ 0x048d, 0x04aa, 0x0455, 0x03a4, 0x039d, 0x039e,
+ 0x0349, 0x031f, 0x02fc, 0x02b0, 0x0262, 0x0229,
+ 0x01b7, 0x00d9, 0x0048, 0x0028, 0xffcc, 0xff8d,
+ 0xffc2, 0xffe0, 0xffd6, 0xffbf, 0xffb9, 0xfff6,
+ 0x002e, 0x0082, 0x0108, 0x0134, 0x0177, 0x0200,
+ 0x01f4, 0x01f6, 0x0257, 0x0205, 0x018d, 0x0179,
+ 0x0121, 0x0101, 0x0138, 0x0111, 0x00d5, 0x00a8,
+ 0x0055, 0x0049, 0x00a3, 0x011a, 0x0174, 0x01b4,
+ 0x0217, 0x0255, 0x022f, 0x0227, 0x025f, 0x028b,
+ 0x02a8, 0x0268, 0x01e2, 0x0207, 0x0295, 0x02a2,
+ 0x02a3, 0x030f, 0x0387, 0x03fd, 0x0440, 0x0449,
+ 0x04a3, 0x04ef, 0x04bc, 0x04db, 0x058b, 0x0628,
+ 0x0682, 0x06ea, 0x07d4, 0x08cd, 0x0903, 0x0957,
+ 0x0a2f, 0x0a63, 0x0a58, 0x0ace, 0x0b15, 0x0b45,
+ 0x0b8c, 0x0ba5, 0x0bfb, 0x0c15, 0x0b9f, 0x0b9c,
+ 0x0b81, 0x0a9d, 0x0a23, 0x0a03, 0x0952, 0x08b1,
+ 0x088f, 0x0870, 0x0848, 0x0814, 0x078b, 0x0701,
+ 0x06f2, 0x06d3, 0x0634, 0x05a6, 0x054c, 0x0522,
+ 0x0569, 0x0567, 0x04be, 0x046b, 0x0452, 0x03b7,
+ 0x0338, 0x0323, 0x02eb, 0x02ab, 0x02be, 0x0306,
+ 0x031d, 0x02d5, 0x02aa, 0x02bb, 0x029e, 0x026f,
+ 0x0223, 0x01a2, 0x0162, 0x0158, 0x0169, 0x01ba,
+ 0x01c8, 0x01b9, 0x021b, 0x024d, 0x0257, 0x02d1,
+ 0x0303, 0x02d9, 0x0306, 0x02f4, 0x026f, 0x0221,
+ 0x01df, 0x0195, 0x0176, 0x011c, 0x00b7, 0x00ad,
+ 0x009c, 0x009d, 0x00fa, 0x011f, 0x00e0, 0x00ac,
+ 0x005f, 0xffcd, 0xff42, 0xfee1, 0xfe84, 0xfe23,
+ 0xfde4, 0xfdb7, 0xfd86, 0xfd85, 0xfd81, 0xfd03,
+ 0xfc9d, 0xfcbc, 0xfca6, 0xfc72, 0xfcad, 0xfcc5,
+ 0xfcb7, 0xfcf7, 0xfd05, 0xfcee, 0xfd25, 0xfd1e,
+ 0xfcc5, 0xfcae, 0xfca7, 0xfc88, 0xfca0, 0xfcc4,
+ 0xfcc6, 0xfd17, 0xfdce, 0xfe3c, 0xfe3f, 0xfe62,
+ 0xfe7d, 0xfe42, 0xfdec, 0xfd7d, 0xfd12, 0xfcf0,
+ 0xfca7, 0xfc3b, 0xfc66, 0xfcd1, 0xfcdb, 0xfcdf,
+ 0xfd10, 0xfd30, 0xfd5c, 0xfdc5, 0xfe44, 0xfea1,
+ 0xfee8, 0xff51, 0x0003, 0x00ba, 0x011f, 0x0197,
+ 0x0266, 0x02e5, 0x0307, 0x0357, 0x03b4, 0x0405,
+ 0x0464, 0x04bb, 0x051d, 0x0537, 0x0516, 0x057b,
+ 0x05e5, 0x05f2, 0x06ac, 0x078c, 0x07a7, 0x080c,
+ 0x08d2, 0x090b, 0x0926, 0x0975, 0x09b6, 0x09f0,
+ 0x09dd, 0x097a, 0x0950, 0x0943, 0x08e6, 0x087b,
+ 0x0867, 0x0837, 0x0797, 0x074a, 0x076a, 0x072a,
+ 0x06e1, 0x06e2, 0x06ac, 0x0685, 0x0695, 0x0673,
+ 0x0677, 0x06c1, 0x06e1, 0x0700, 0x0737, 0x0762,
+ 0x07a1, 0x07e7, 0x0811, 0x0828, 0x0839, 0x0865,
+ 0x08a3, 0x08e1, 0x093c, 0x09a6, 0x0a0b, 0x0a60,
+ 0x0aac, 0x0b1c, 0x0b78, 0x0b8f, 0x0bbc, 0x0bf8,
+ 0x0c19, 0x0c44, 0x0c44, 0x0c31, 0x0c60, 0x0c57,
+ 0x0c18, 0x0c2e, 0x0c2d, 0x0bed, 0x0be1, 0x0bd0,
+ 0x0b87, 0x0b31, 0x0ab4, 0x0a26, 0x09d0, 0x09ac,
+ 0x09a7, 0x0998, 0x0958, 0x091e, 0x08f0, 0x0863,
+ 0x07a1, 0x0744, 0x06eb, 0x05ef, 0x04c7, 0x03c3,
+ 0x0286, 0x0140, 0x0034, 0xff48, 0xfe91, 0xfde0,
+ 0xfd27, 0xfce6, 0xfcc8, 0xfc43, 0xfbdf, 0xfbb5,
+ 0xfb6c, 0xfb70, 0xfbbe, 0xfbd4, 0xfc1a, 0xfcbb,
+ 0xfd15, 0xfd4e, 0xfdb6, 0xfd98, 0xfcf8, 0xfccd,
+ 0xfcdd, 0xfc7b, 0xfbf8, 0xfbae, 0xfb89, 0xfb5f,
+ 0xfb17, 0xfaf4, 0xfaf8, 0xfac1, 0xfa7f, 0xfa57,
+ 0xfa08, 0xf9c2, 0xf9ba, 0xf9d4, 0xfa25, 0xfa7e,
+ 0xfab1, 0xfaef, 0xfb3b, 0xfb90, 0xfbd4, 0xfbc6,
+ 0xfba1, 0xfb9b, 0xfb90, 0xfb9e, 0xfb89, 0xfb0b,
+ 0xfa87, 0xfa27, 0xf9fd, 0xfa18, 0xf9f2, 0xf9a3,
+ 0xf9a4, 0xf995, 0xf964, 0xf949, 0xf924, 0xf976,
+ 0xfa4a, 0xfad2, 0xfb4b, 0xfbe9, 0xfc11, 0xfc1d,
+ 0xfc84, 0xfcea, 0xfd29, 0xfd3c, 0xfd2f, 0xfd54,
+ 0xfd85, 0xfd7c, 0xfd65, 0xfd75, 0xfd9b, 0xfdb3,
+ 0xfe14, 0xfef6, 0xff94, 0xffe2, 0x00af, 0x0180,
+ 0x01c5, 0x0204, 0x0232, 0x023b, 0x0281, 0x0294,
+ 0x0250, 0x0249, 0x0259, 0x025a, 0x0286, 0x0298,
+ 0x0291, 0x02bf, 0x02c6, 0x02be, 0x033a, 0x03dd,
+ 0x042a, 0x0482, 0x04fe, 0x053e, 0x056a, 0x05c7,
+ 0x0605, 0x05f0, 0x05e9, 0x060e, 0x05ff, 0x05b6,
+ 0x0577, 0x0517, 0x046a, 0x03c3, 0x0345, 0x02b8,
+ 0x021e, 0x0199, 0x011b, 0x00ab, 0x0067, 0x0046,
+ 0x0037, 0x005a, 0x00b1, 0x00df, 0x00e1, 0x0148,
+ 0x01e7, 0x0218, 0x0236, 0x02a2, 0x02e8, 0x02e1,
+ 0x02d4, 0x02e0, 0x0312, 0x0331, 0x0316, 0x02fa,
+ 0x02d9, 0x02b3, 0x02b3, 0x0299, 0x0267, 0x0263,
+ 0x025e, 0x026e, 0x02c2, 0x02e6, 0x02ca, 0x02b5,
+ 0x028d, 0x0264, 0x0222, 0x0182, 0x0105, 0x00d7,
+ 0x0046, 0xff6d, 0xfed9, 0xfe49, 0xfd8d, 0xfcfe,
+ 0xfca3, 0xfc37, 0xfbb8, 0xfb4d, 0xfb05, 0xfae3,
+ 0xfae7, 0xfb00, 0xfb1a, 0xfaff, 0xfaab, 0xfa6d,
+ 0xfa4c, 0xfa32, 0xfa38, 0xfa07, 0xf97c, 0xf93b,
+ 0xf928, 0xf8c3, 0xf880, 0xf885, 0xf858, 0xf817,
+ 0xf7e3, 0xf7a0, 0xf783, 0xf77b, 0xf75b, 0xf758,
+ 0xf77e, 0xf7c7, 0xf83f, 0xf8a6, 0xf8f3, 0xf94d,
+ 0xf98e, 0xf9e8, 0xfa7b, 0xfabf, 0xfaba, 0xfad8,
+ 0xfadc, 0xfa97, 0xfa19, 0xf972, 0xf925, 0xf939,
+ 0xf90b, 0xf8c1, 0xf877, 0xf7c9, 0xf73d, 0xf737,
+ 0xf73b, 0xf76a, 0xf7d7, 0xf7fc, 0xf80a, 0xf856,
+ 0xf8a2, 0xf8e1, 0xf91a, 0xf941, 0xf954, 0xf934,
+ 0xf90b, 0xf90b, 0xf8f8, 0xf8d8, 0xf8df, 0xf8fa,
+ 0xf917, 0xf935, 0xf976, 0xf9e9, 0xfa4b, 0xfa9b,
+ 0xfaf7, 0xfb46, 0xfba6, 0xfc11, 0xfc72, 0xfd22,
+ 0xfdcc, 0xfdff, 0xfe4f, 0xfed3, 0xff1e, 0xff5d,
+ 0xff7c, 0xff54, 0xfefe, 0xfe62, 0xfdf6, 0xfdf3,
+ 0xfdbb, 0xfd89, 0xfd77, 0xfce7, 0xfc85, 0xfcbc,
+ 0xfc92, 0xfc1b, 0xfbe2, 0xfb93, 0xfb55, 0xfb71,
+ 0xfb90, 0xfb96, 0xfb83, 0xfb4b, 0xfb10, 0xfac9,
+ 0xfa64, 0xf9e8, 0xf96c, 0xf92f, 0xf905, 0xf8a4,
+ 0xf851, 0xf81e, 0xf7df, 0xf7d6, 0xf7ef, 0xf7c6,
+ 0xf793, 0xf78d, 0xf79d, 0xf7f3, 0xf86b, 0xf89c,
+ 0xf8cf, 0xf91f, 0xf923, 0xf926, 0xf968, 0xf960,
+ 0xf925, 0xf90c, 0xf8ad, 0xf827, 0xf809, 0xf820,
+ 0xf82a, 0xf822, 0xf7f3, 0xf7ee, 0xf848, 0xf88e,
+ 0xf8a0, 0xf8d3, 0xf907, 0xf8f5, 0xf8eb, 0xf91d,
+ 0xf927, 0xf918, 0xf967, 0xf9e0, 0xfa08, 0xfa11,
+ 0xfa85, 0xfb4b, 0xfbd5, 0xfc5e, 0xfd43, 0xfde1,
+ 0xfe2a, 0xfec7, 0xff43, 0xff52, 0xff78, 0xff7e,
+ 0xff60, 0xff84, 0xff96, 0xffa7, 0x0011, 0x004c,
+ 0x0018, 0xffe3, 0xffdf, 0xffee, 0xffd1, 0xffd3,
+ 0x004d, 0x00df, 0x018b, 0x025e, 0x02df, 0x036d,
+ 0x0448, 0x049c, 0x0489, 0x04aa, 0x04eb, 0x0563,
+ 0x05f9, 0x065b, 0x069c, 0x06d4, 0x072b, 0x077a,
+ 0x075b, 0x074d, 0x077f, 0x0744, 0x06d3, 0x0698,
+ 0x0661, 0x063c, 0x0614, 0x05f9, 0x062f, 0x0637,
+ 0x060f, 0x0634, 0x0620, 0x05ba, 0x0586, 0x0554,
+ 0x051f, 0x0507, 0x04d8, 0x04da, 0x0520, 0x0527,
+ 0x04e5, 0x048d, 0x0426, 0x03c6, 0x0381, 0x0354,
+ 0x030e, 0x02b5, 0x0293, 0x027d, 0x0267, 0x0282,
+ 0x0272, 0x0255, 0x02ae, 0x0301, 0x0313, 0x0346,
+ 0x0361, 0x034b, 0x0329, 0x02d7, 0x0276, 0x0220,
+ 0x01c6, 0x0196, 0x0160, 0x0115, 0x011e, 0x0139,
+ 0x0115, 0x0114, 0x013a, 0x014d, 0x015f, 0x0173,
+ 0x0192, 0x01bb, 0x01ba, 0x019e, 0x019f, 0x01bf,
+ 0x01de, 0x01ca, 0x0185, 0x015f, 0x0159, 0x0122,
+ 0x00de, 0x00d5, 0x00d9, 0x00cd, 0x00ec, 0x0114,
+ 0x0115, 0x010e, 0x011b, 0x015d, 0x01c3, 0x01fe,
+ 0x0247, 0x02e3, 0x038e, 0x043b, 0x0500, 0x05b6,
+ 0x0650, 0x06c0, 0x071f, 0x079c, 0x0807, 0x0857,
+ 0x08a4, 0x08c8, 0x08ee, 0x08ff, 0x08bc, 0x08ad,
+ 0x08cd, 0x0889, 0x0849, 0x0830, 0x07e7, 0x07c6,
+ 0x07c1, 0x0796, 0x07a5, 0x07d4, 0x07df, 0x0802,
+ 0x082e, 0x0833, 0x07fa, 0x07ac, 0x07b3, 0x07b9,
+ 0x0763, 0x0727, 0x0700, 0x06ac, 0x0665, 0x0618,
+ 0x05be, 0x0580, 0x0548, 0x0557, 0x059d, 0x059c,
+ 0x058b, 0x0593, 0x057a, 0x0563, 0x0536, 0x04e7,
+ 0x04be, 0x048c, 0x0467, 0x0484, 0x047b, 0x0476,
+ 0x049f, 0x0464, 0x0411, 0x0427, 0x043b, 0x045d,
+ 0x04af, 0x04b5, 0x04a5, 0x04ff, 0x055c, 0x056a,
+ 0x055e, 0x0536, 0x04ea, 0x04c2, 0x04a8, 0x0461,
+ 0x041c, 0x03d0, 0x0367, 0x0347, 0x0344, 0x02fe,
+ 0x02cd, 0x029f, 0x0257, 0x026b, 0x0269, 0x01d1,
+ 0x0145, 0x00ea, 0x0096, 0x008a, 0x006a, 0xfff6,
+ 0xffa2, 0xff95, 0xffa0, 0xff79, 0xff22, 0xff17,
+ 0xff2e, 0xff15, 0xff53, 0xffd0, 0xffe5, 0xffc9,
+ 0xffc5, 0xffb8, 0xffaa, 0xff98, 0xff7f, 0xff58,
+ 0xff14, 0xfee7, 0xfedb, 0xfe9c, 0xfe35, 0xfde1,
+ 0xfda3, 0xfd50, 0xfcd1, 0xfc7b, 0xfc6d, 0xfc41,
+ 0xfc1c, 0xfc52, 0xfc60, 0xfbff, 0xfbae, 0xfb93,
+ 0xfb62, 0xfb01, 0xfa9f, 0xfa83, 0xfa87, 0xfa4a,
+ 0xfa16, 0xfa30, 0xfa16, 0xf9c1, 0xf9bf, 0xf9d7,
+ 0xf9d0, 0xfa1f, 0xfa9a, 0xfae2, 0xfb4c, 0xfbcf,
+ 0xfc1e, 0xfc96, 0xfd6f, 0xfe5a, 0xff3a, 0x0023,
+ 0x010e, 0x01d0, 0x027b, 0x035e, 0x044f, 0x04f2,
+ 0x0582, 0x0619, 0x067e, 0x06db, 0x0742, 0x077f,
+ 0x07a9, 0x07db, 0x07ee, 0x07e7, 0x07f4, 0x080f,
+ 0x0807, 0x07df, 0x07c1, 0x07aa, 0x0799, 0x0797,
+ 0x0794, 0x07b0, 0x07f5, 0x07f9, 0x07a3, 0x0749,
+ 0x06ea, 0x0681, 0x064a, 0x0642, 0x0650, 0x0671,
+ 0x0687, 0x069b, 0x06ca, 0x06f4, 0x0711, 0x073f,
+ 0x0765, 0x078f, 0x07fe, 0x088a, 0x08dc, 0x0912,
+ 0x095f, 0x09be, 0x0a2c, 0x0a85, 0x0a96, 0x0a78,
+ 0x0a5b, 0x0a42, 0x0a48, 0x0a7a, 0x0aab, 0x0afb,
+ 0x0bac, 0x0c73, 0x0d08, 0x0da5, 0x0e3e, 0x0e90,
+ 0x0ecb, 0x0f09, 0x0f25, 0x0f39, 0x0f64, 0x0f95,
+ 0x0fb4, 0x0fa4, 0x0f79, 0x0f1f, 0x0e39, 0x0d0e,
+ 0x0c3f, 0x0ba4, 0x0aef, 0x0a43, 0x099a, 0x08b8,
+ 0x07ae, 0x06bf, 0x05d7, 0x04b8, 0x03ad, 0x0318,
+ 0x02b2, 0x0237, 0x01ca, 0x0173, 0x0126, 0x00dc,
+ 0x007c, 0x002d, 0xfffb, 0xff9f, 0xff2b, 0xfee1,
+ 0xfea6, 0xfe6e, 0xfe51, 0xfe22, 0xfdd6, 0xfda5,
+ 0xfd65, 0xfcdc, 0xfc4a, 0xfbdf, 0xfb8c, 0xfb6c,
+ 0xfb8b, 0xfbc5, 0xfbf4, 0xfc08, 0xfc35, 0xfc84,
+ 0xfca5, 0xfca8, 0xfcb6, 0xfc98, 0xfc87, 0xfcb4,
+ 0xfcb0, 0xfc9c, 0xfcec, 0xfd48, 0xfd50, 0xfd2d,
+ 0xfd03, 0xfccc, 0xfc59, 0xfbc1, 0xfb55, 0xfb04,
+ 0xfab1, 0xfa88, 0xfa8f, 0xfa9d, 0xfa83, 0xfa51,
+ 0xfa53, 0xfa5f, 0xfa30, 0xfa02, 0xf9e9, 0xf9c7,
+ 0xf9c0, 0xf9c6, 0xf9b3, 0xf995, 0xf986, 0xf9b6,
+ 0xfa0d, 0xfa2b, 0xfa3d, 0xfaa4, 0xfb4e, 0xfbf6,
+ 0xfc5c, 0xfca3, 0xfd00, 0xfd22, 0xfcfe, 0xfcf0,
+ 0xfcd6, 0xfcac, 0xfcce, 0xfd1e, 0xfd54, 0xfd88,
+ 0xfdce, 0xfe01, 0xfe11, 0xfe19, 0xfe12, 0xfdeb,
+ 0xfdec, 0xfe35, 0xfe92, 0xff1b, 0xffd2, 0x0058,
+ 0x00b8, 0x012e, 0x01a7, 0x0221, 0x02ba, 0x0358,
+ 0x03d4, 0x042f, 0x047a, 0x04b4, 0x04e0, 0x050f,
+ 0x0544, 0x0566, 0x0553, 0x0531, 0x0533, 0x0513,
+ 0x04bc, 0x04a0, 0x049d, 0x0455, 0x0410, 0x03e7,
+ 0x039f, 0x035f, 0x0335, 0x0312, 0x0302, 0x02de,
+ 0x029c, 0x0274, 0x0276, 0x0286, 0x0260, 0x0201,
+ 0x01cc, 0x01bc, 0x01a8, 0x01ca, 0x0216, 0x025b,
+ 0x02a1, 0x02db, 0x0302, 0x0313, 0x0308, 0x0314,
+ 0x0326, 0x031a, 0x0345, 0x039b, 0x03d5, 0x0423,
+ 0x0470, 0x0496, 0x04d1, 0x04f9, 0x04ce, 0x049d,
+ 0x0484, 0x0459, 0x041a, 0x03ec, 0x03d7, 0x03a6,
+ 0x0370, 0x0383, 0x0392, 0x0354, 0x0317, 0x02cb,
+ 0x0238, 0x01b0, 0x0152, 0x00dc, 0x005b, 0xfffc,
+ 0xffa6, 0xff4f, 0xff21, 0xff12, 0xfeea, 0xfec7,
+ 0xfec6, 0xfeb3, 0xfe7a, 0xfe37, 0xfde4, 0xfd66,
+ 0xfcb1, 0xfbe6, 0xfb35, 0xfaaf, 0xfa5b, 0xfa31,
+ 0xfa0c, 0xf9f8, 0xfa01, 0xfa0f, 0xfa22, 0xfa31,
+ 0xfa40, 0xfa55, 0xfa42, 0xfa11, 0xf9f6, 0xf9d8,
+ 0xf9cf, 0xfa00, 0xfa2f, 0xfa4a, 0xfa57, 0xfa24,
+ 0xf9d6, 0xf990, 0xf930, 0xf8cc, 0xf885, 0xf84f,
+ 0xf829, 0xf804, 0xf7fc, 0xf826, 0xf82b, 0xf814,
+ 0xf81c, 0xf80e, 0xf7fe, 0xf831, 0xf852, 0xf83f,
+ 0xf84c, 0xf864, 0xf83f, 0xf7e8, 0xf78d, 0xf741,
+ 0xf70a, 0xf6e7, 0xf6bb, 0xf67d, 0xf653, 0xf643,
+ 0xf65b, 0xf6bf, 0xf73a, 0xf7aa, 0xf837, 0xf8b6,
+ 0xf90a, 0xf96f, 0xf9e6, 0xfa6a, 0xfb02, 0xfb7e,
+ 0xfbf9, 0xfc94, 0xfcf9, 0xfd2e, 0xfd85, 0xfde6,
+ 0xfe31, 0xfe76, 0xfeb5, 0xfeea, 0xff07, 0xff0c,
+ 0xff03, 0xfee7, 0xfedd, 0xfef6, 0xfed5, 0xfe7d,
+ 0xfe48, 0xfe1a, 0xfdd6, 0xfdac, 0xfd8f, 0xfd63,
+ 0xfd3e, 0xfd24, 0xfd05, 0xfcda, 0xfcad, 0xfc80,
+ 0xfc1e, 0xfb84, 0xfb0e, 0xfabe, 0xfa54, 0xfa0d,
+ 0xfa02, 0xf9e3, 0xf9da, 0xfa11, 0xfa17, 0xf9e7,
+ 0xf9ec, 0xf9e3, 0xf995, 0xf967, 0xf962, 0xf94c,
+ 0xf934, 0xf920, 0xf90a, 0xf90a, 0xf924, 0xf944,
+ 0xf930, 0xf8cf, 0xf86c, 0xf826, 0xf7d1, 0xf779,
+ 0xf734, 0xf6dd, 0xf667, 0xf5fe, 0xf5d3, 0xf5c9,
+ 0xf5ba, 0xf5c9, 0xf5f6, 0xf61a, 0xf642, 0xf666,
+ 0xf68b, 0xf6d1, 0xf701, 0xf716, 0xf758, 0xf796,
+ 0xf7ae, 0xf7d8, 0xf807, 0xf83c, 0xf894, 0xf8d8,
+ 0xf90d, 0xf95b, 0xf992, 0xf9b2, 0xf9d3, 0xf9e1,
+ 0xf9ed, 0xfa05, 0xfa20, 0xfa52, 0xfa9a, 0xfae9,
+ 0xfb48, 0xfbb0, 0xfc19, 0xfc83, 0xfcd9, 0xfd1a,
+ 0xfd6a, 0xfdd1, 0xfe35, 0xfe85, 0xfee7, 0xff77,
+ 0x0018, 0x00ba, 0x0166, 0x0209, 0x029f, 0x0344,
+ 0x03ed, 0x046f, 0x04b7, 0x04ed, 0x0525, 0x052d,
+ 0x0508, 0x04fe, 0x0507, 0x0505, 0x0514, 0x052f,
+ 0x052a, 0x052b, 0x055f, 0x05a1, 0x05cd, 0x05e6,
+ 0x05e4, 0x05e8, 0x061f, 0x065f, 0x068d, 0x06c2,
+ 0x06c5, 0x0686, 0x0665, 0x0664, 0x064c, 0x0639,
+ 0x0625, 0x05e3, 0x0599, 0x055c, 0x04fe, 0x0498,
+ 0x046a, 0x0452, 0x042f, 0x0434, 0x0455, 0x044e,
+ 0x0427, 0x03f7, 0x03cb, 0x03cd, 0x03dc, 0x03e4,
+ 0x040d, 0x041e, 0x03f8, 0x03f7, 0x03f8, 0x03c9,
+ 0x03a2, 0x036b, 0x0315, 0x02e1, 0x02a4, 0x0252,
+ 0x022f, 0x0215, 0x01dd, 0x01b9, 0x01d2, 0x021f,
+ 0x0231, 0x01d9, 0x0191, 0x0161, 0x00f4, 0x0090,
+ 0x005a, 0x0015, 0xffb7, 0xff4a, 0xff09, 0xff19,
+ 0xff1a, 0xfefd, 0xff04, 0xfef8, 0xfebb, 0xfe7e,
+ 0xfe21, 0xfda6, 0xfd59, 0xfd26, 0xfd0e, 0xfd4a,
+ 0xfdaa, 0xfde8, 0xfe2c, 0xfe9e, 0xff30, 0xffc3,
+ 0x003a, 0x00a3, 0x0137, 0x01d8, 0x024f, 0x02d6,
+ 0x0384, 0x03f5, 0x0421, 0x046c, 0x04e2, 0x0544,
+ 0x059f, 0x061d, 0x0685, 0x0695, 0x069d, 0x06ef,
+ 0x0737, 0x072e, 0x070c, 0x0718, 0x076a, 0x07ca,
+ 0x07fb, 0x082c, 0x088a, 0x08e5, 0x0910, 0x08f7,
+ 0x08b0, 0x088b, 0x0886, 0x086b, 0x0857, 0x0851,
+ 0x081c, 0x07cb, 0x07af, 0x07c6, 0x07d7, 0x07c5,
+ 0x07a9, 0x0797, 0x0777, 0x072b, 0x06d1, 0x068e,
+ 0x0655, 0x0618, 0x05e4, 0x05be, 0x05ad, 0x05c0,
+ 0x05d7, 0x05b9, 0x0566, 0x0522, 0x0518, 0x050f,
+ 0x04ea, 0x04e3, 0x0503, 0x0520, 0x053e, 0x0553,
+ 0x054d, 0x053d, 0x052c, 0x0535, 0x0560, 0x0577,
+ 0x0583, 0x05aa, 0x05d9, 0x0618, 0x064b, 0x0635,
+ 0x0614, 0x0615, 0x05e4, 0x057a, 0x050e, 0x04aa,
+ 0x045c, 0x0405, 0x0390, 0x032f, 0x02e3, 0x029a,
+ 0x026f, 0x0251, 0x021a, 0x01d8, 0x0196, 0x0164,
+ 0x0148, 0x011d, 0x00da, 0x0096, 0x0062, 0x0048,
+ 0x0041, 0x0054, 0x007a, 0x0071, 0x0047, 0x0052,
+ 0x0064, 0x0027, 0xffcf, 0xff98, 0xff77, 0xff5f,
+ 0xff49, 0xff28, 0xff05, 0xfef2, 0xfefb, 0xff27,
+ 0xff5b, 0xff74, 0xff57, 0xff0c, 0xfecd, 0xfe97,
+ 0xfe33, 0xfdd0, 0xfd94, 0xfd38, 0xfcba, 0xfc4d,
+ 0xfbdd, 0xfb69, 0xfaec, 0xfa51, 0xf9d1, 0xf96d,
+ 0xf8ee, 0xf894, 0xf87f, 0xf89d, 0xf913, 0xf990,
+ 0xf9da, 0xfa68, 0xfb12, 0xfb63, 0xfbc2, 0xfc56,
+ 0xfcd5, 0xfd64, 0xfe10, 0xfea8, 0xff2e, 0xff90,
+ 0xffdb, 0x0039, 0x0093, 0x00df, 0x0122, 0x014a,
+ 0x0162, 0x016d, 0x0183, 0x01c6, 0x01ff, 0x0235,
+ 0x02b7, 0x034d, 0x03c4, 0x0431, 0x0474, 0x04b1,
+ 0x0514, 0x054a, 0x056a, 0x05c2, 0x061c, 0x0671,
+ 0x06d8, 0x0729, 0x0782, 0x07cc, 0x07a3, 0x0739,
+ 0x06f2, 0x06c0, 0x068d, 0x065c, 0x0633, 0x0621,
+ 0x0603, 0x05c8, 0x0599, 0x0567, 0x051f, 0x04f1,
+ 0x04f8, 0x0528, 0x056e, 0x05ae, 0x05fc, 0x0668,
+ 0x06c5, 0x070b, 0x0767, 0x07d0, 0x0833, 0x0891,
+ 0x08df, 0x093e, 0x09ee, 0x0acd, 0x0b81, 0x0c18,
+ 0x0cda, 0x0dac, 0x0e4d, 0x0ed3, 0x0f5b, 0x0fb9,
+ 0x0fe3, 0x0ff1, 0x0fdb, 0x0fbb, 0x0f95, 0x0f4d,
+ 0x0f0f, 0x0ed0, 0x0e24, 0x0d3c, 0x0c8b, 0x0be4,
+ 0x0b2e, 0x0a9b, 0x0a27, 0x09d2, 0x099f, 0x0967,
+ 0x092d, 0x0908, 0x08ef, 0x08d3, 0x0898, 0x082b,
+ 0x07ad, 0x0739, 0x06a9, 0x05e3, 0x0515, 0x046e,
+ 0x03c0, 0x0304, 0x0282, 0x0231, 0x01cd, 0x016a,
+ 0x0112, 0x0093, 0xffec, 0xff47, 0xfec7, 0xfe7f,
+ 0xfe6d, 0xfe74, 0xfea0, 0xff12, 0xff9e, 0x0003,
+ 0x004d, 0x0073, 0x003c, 0xffc0, 0xff3f, 0xfec3,
+ 0xfe46, 0xfddd, 0xfda2, 0xfda3, 0xfdbd, 0xfdb2,
+ 0xfd8b, 0xfd73, 0xfd46, 0xfce3, 0xfc8a, 0xfc51,
+ 0xfc0b, 0xfbd5, 0xfbc4, 0xfbbc, 0xfbd3, 0xfbf1,
+ 0xfbde, 0xfbd7, 0xfbe1, 0xfbac, 0xfb56, 0xfb03,
+ 0xfaa8, 0xfa65, 0xfa2d, 0xf9f2, 0xf9df, 0xf9c4,
+ 0xf98c, 0xf983, 0xf9a7, 0xf9d0, 0xf9f9, 0xf9fe,
+ 0xf9ec, 0xf9f1, 0xf9f8, 0xfa04, 0xfa28, 0xfa56,
+ 0xfa8c, 0xfaa7, 0xfa7d, 0xfa2a, 0xf9cc, 0xf96a,
+ 0xf910, 0xf8cd, 0xf8be, 0xf8dc, 0xf901, 0xf949,
+ 0xf9b3, 0xf9f0, 0xfa07, 0xfa3d, 0xfaaa, 0xfb4d,
+ 0xfc1b, 0xfcf6, 0xfddf, 0xfebe, 0xff6d, 0x0005,
+ 0x0092, 0x00e6, 0x0117, 0x0152, 0x0190, 0x01e1,
+ 0x024d, 0x0296, 0x02c3, 0x0301, 0x0330, 0x0345,
+ 0x035a, 0x0381, 0x03da, 0x042f, 0x042e, 0x042e,
+ 0x0454, 0x0441, 0x041c, 0x042e, 0x043a, 0x042c,
+ 0x0434, 0x042b, 0x03d8, 0x0361, 0x030a, 0x02cc,
+ 0x0290, 0x0262, 0x023d, 0x0225, 0x0222, 0x020c,
+ 0x01f3, 0x01f9, 0x01ed, 0x01dd, 0x01f7, 0x0216,
+ 0x0249, 0x02b4, 0x031c, 0x0355, 0x035d, 0x0344,
+ 0x0350, 0x037a, 0x038e, 0x03be, 0x0434, 0x04ad,
+ 0x04e7, 0x04ee, 0x04f0, 0x04de, 0x04bc, 0x04d6,
+ 0x0520, 0x0573, 0x05de, 0x0644, 0x0693, 0x06d7,
+ 0x06d7, 0x0696, 0x0648, 0x05dc, 0x057c, 0x0564,
+ 0x0552, 0x050a, 0x048f, 0x0402, 0x037b, 0x02d4,
+ 0x020c, 0x0164, 0x00d7, 0x004f, 0xffe8, 0xff97,
+ 0xff37, 0xfecc, 0xfe8d, 0xfe92, 0xfe95, 0xfe74,
+ 0xfe5e, 0xfe3f, 0xfdfd, 0xfdab, 0xfd55, 0xfd10,
+ 0xfcce, 0xfc76, 0xfc36, 0xfbfc, 0xfba6, 0xfb93,
+ 0xfbbd, 0xfbb8, 0xfb8b, 0xfb6a, 0xfb65, 0xfb6a,
+ 0xfb51, 0xfb50, 0xfb88, 0xfb9f, 0xfb8a, 0xfb76,
+ 0xfb44, 0xfb0a, 0xfaec, 0xfac9, 0xfa98, 0xfa58,
+ 0xfa17, 0xf9f5, 0xf9ca, 0xf976, 0xf91a, 0xf8c0,
+ 0xf871, 0xf846, 0xf831, 0xf814, 0xf7e0, 0xf79f,
+ 0xf763, 0xf713, 0xf6ab, 0xf658, 0xf622, 0xf5ee,
+ 0xf5bb, 0xf591, 0xf572, 0xf566, 0xf58b, 0xf5ce,
+ 0xf5fc, 0xf629, 0xf673, 0xf6c1, 0xf707, 0xf747,
+ 0xf77e, 0xf7d3, 0xf83c, 0xf89f, 0xf91f, 0xf9be,
+ 0xfa6c, 0xfb3d, 0xfc1c, 0xfcd9, 0xfd63, 0xfdc5,
+ 0xfe12, 0xfe2c, 0xfe04, 0xfded, 0xfe0b, 0xfe2a,
+ 0xfe36, 0xfe3a, 0xfe4e, 0xfe76, 0xfe8c, 0xfe91,
+ 0xfe99, 0xfe78, 0xfe1f, 0xfdc7, 0xfd9d, 0xfd98,
+ 0xfd78, 0xfd30, 0xfcfb, 0xfcc3, 0xfc66, 0xfc24,
+ 0xfc18, 0xfc06, 0xfbd2, 0xfbaa, 0xfbac, 0xfb98,
+ 0xfb50, 0xfb19, 0xfb08, 0xfaf6, 0xfadc, 0xfabe,
+ 0xfaaa, 0xfa9f, 0xfa7e, 0xfa54, 0xfa35, 0xfa10,
+ 0xf9eb, 0xf9be, 0xf988, 0xf96b, 0xf94e, 0xf916,
+ 0xf8e5, 0xf8ae, 0xf86e, 0xf83b, 0xf7f2, 0xf7a5,
+ 0xf787, 0xf766, 0xf71e, 0xf6e6, 0xf6d5, 0xf6d5,
+ 0xf6de, 0xf702, 0xf741, 0xf767, 0xf76f, 0xf76c,
+ 0xf752, 0xf743, 0xf765, 0xf791, 0xf7c1, 0xf7f2,
+ 0xf7f3, 0xf7ea, 0xf80f, 0xf827, 0xf801, 0xf7bf,
+ 0xf777, 0xf728, 0xf6f3, 0xf6fb, 0xf71d, 0xf728,
+ 0xf746, 0xf783, 0xf79c, 0xf79d, 0xf7c6, 0xf810,
+ 0xf865, 0xf8c4, 0xf943, 0xf9dc, 0xfa4d, 0xfa8a,
+ 0xfad6, 0xfb38, 0xfb99, 0xfc13, 0xfca2, 0xfd37,
+ 0xfde0, 0xfe7c, 0xfeda, 0xff0a, 0xff23, 0xff30,
+ 0xff5a, 0xffc1, 0x003e, 0x00af, 0x0127, 0x01ad,
+ 0x021d, 0x0278, 0x02e6, 0x0358, 0x03a7, 0x03f7,
+ 0x0459, 0x0496, 0x04bb, 0x04f7, 0x052a, 0x054a,
+ 0x0562, 0x0557, 0x0551, 0x0578, 0x058b, 0x0581,
+ 0x0587, 0x0572, 0x0532, 0x04e7, 0x04aa, 0x04a4,
+ 0x04b6, 0x04a9, 0x04bd, 0x04ed, 0x04de, 0x04b3,
+ 0x0489, 0x0444, 0x0418, 0x0411, 0x0406, 0x0405,
+ 0x03fa, 0x03c7, 0x0391, 0x035f, 0x0324, 0x02d9,
+ 0x0280, 0x025c, 0x0264, 0x0237, 0x0202, 0x01f8,
+ 0x01df, 0x01d6, 0x01fa, 0x0218, 0x0242, 0x027b,
+ 0x02a4, 0x02e8, 0x0321, 0x030d, 0x02e7, 0x02c0,
+ 0x026c, 0x021e, 0x01fa, 0x01f0, 0x01f0, 0x01ce,
+ 0x0183, 0x012b, 0x00c4, 0x0062, 0x0015, 0xffd2,
+ 0xffa3, 0xff71, 0xff14, 0xfeb3, 0xfe5a, 0xfdf0,
+ 0xfda3, 0xfd8a, 0xfd8e, 0xfdb8, 0xfdfa, 0xfe29,
+ 0xfe47, 0xfe62, 0xfe7f, 0xfea2, 0xfead, 0xfe94,
+ 0xfe91, 0xfed7, 0xff4a, 0xffba, 0x0015, 0x0069,
+ 0x00b4, 0x00f2, 0x0131, 0x0172, 0x01b6, 0x0218,
+ 0x0284, 0x02d6, 0x032f, 0x03ab, 0x0429, 0x049c,
+ 0x0509, 0x056d, 0x05d2, 0x0641, 0x06b4, 0x0721,
+ 0x0772, 0x07af, 0x07e3, 0x07ef, 0x07ed, 0x0815,
+ 0x084d, 0x0871, 0x0884, 0x088b, 0x089b, 0x08a0,
+ 0x0868, 0x081a, 0x07f3, 0x07db, 0x07b4, 0x0792,
+ 0x0793, 0x079b, 0x0786, 0x0786, 0x07a7, 0x07aa,
+ 0x0795, 0x0773, 0x0724, 0x06bb, 0x0649, 0x05d1,
+ 0x057f, 0x0548, 0x051f, 0x051f, 0x0531, 0x054e,
+ 0x0599, 0x05e1, 0x060b, 0x063e, 0x0677, 0x06a3,
+ 0x06b1, 0x06b1, 0x06d8, 0x0708, 0x071b, 0x0737,
+ 0x0756, 0x075e, 0x0742, 0x06ea, 0x0691, 0x0653,
+ 0x05e3, 0x0575, 0x053f, 0x04fe, 0x04d3, 0x04cd,
+ 0x049f, 0x0476, 0x0462, 0x041b, 0x03e2, 0x03d8,
+ 0x03a1, 0x035b, 0x034d, 0x034c, 0x0338, 0x031f,
+ 0x02f6, 0x02ad, 0x0262, 0x0226, 0x01e8, 0x01b5,
+ 0x0197, 0x016d, 0x0146, 0x0132, 0x0116, 0x0120,
+ 0x016a, 0x01bb, 0x0211, 0x0276, 0x02c8, 0x0313,
+ 0x0347, 0x033a, 0x02ee, 0x0270, 0x01e0, 0x0157,
+ 0x00aa, 0xffec, 0xff67, 0xfefb, 0xfe6b, 0xfdce,
+ 0xfd34, 0xfc86, 0xfbc6, 0xfb18, 0xfa8e, 0xfa24,
+ 0xf9e8, 0xf9cc, 0xf9bd, 0xf9e0, 0xfa21, 0xfa3e,
+ 0xfa4c, 0xfa66, 0xfa7a, 0xfa8f, 0xfa8d, 0xfa6f,
+ 0xfa85, 0xfab9, 0xfab4, 0xfaab, 0xfac4, 0xfabc,
+ 0xfaa0, 0xfaad, 0xfaca, 0xfae4, 0xfb0e, 0xfb3e,
+ 0xfb75, 0xfbcb, 0xfc3c, 0xfcc8, 0xfd64, 0xfdf4,
+ 0xfe92, 0xff5c, 0x002a, 0x00ec, 0x01af, 0x0277,
+ 0x0328, 0x039f, 0x0400, 0x0459, 0x046e, 0x0472,
+ 0x04a2, 0x04a3, 0x0484, 0x0490, 0x047d, 0x0453,
+ 0x0455, 0x043f, 0x0414, 0x0403, 0x03d4, 0x0396,
+ 0x035a, 0x02e3, 0x026d, 0x0224, 0x01cc, 0x0183,
+ 0x0156, 0x0121, 0x0100, 0x00f6, 0x00fb, 0x0135,
+ 0x01a1, 0x022c, 0x02d1, 0x0374, 0x041b, 0x04bd,
+ 0x052d, 0x0594, 0x0627, 0x06d7, 0x07a3, 0x0870,
+ 0x090a, 0x099d, 0x0a59, 0x0b01, 0x0b69, 0x0bbb,
+ 0x0bf9, 0x0c0e, 0x0c32, 0x0c8a, 0x0ced, 0x0d5e,
+ 0x0de7, 0x0e6c, 0x0f02, 0x0f96, 0x0fe8, 0x1029,
+ 0x106e, 0x1078, 0x106f, 0x1070, 0x1044, 0x1017,
+ 0x1017, 0x0ff8, 0x0f9f, 0x0f41, 0x0ee3, 0x0e6f,
+ 0x0dcd, 0x0cfe, 0x0c27, 0x0b51, 0x0a6c, 0x0984,
+ 0x08b6, 0x080b, 0x0773, 0x06f0, 0x067d, 0x0606,
+ 0x0592, 0x0529, 0x04c0, 0x0467, 0x042b, 0x03f3,
+ 0x03bf, 0x039e, 0x0383, 0x0351, 0x02eb, 0x0269,
+ 0x01ff, 0x0193, 0x00fa, 0x0056, 0xffc3, 0xff2f,
+ 0xfeb4, 0xfe77, 0xfe6c, 0xfe79, 0xfe9d, 0xfed8,
+ 0xff1b, 0xff54, 0xff78, 0xff7e, 0xff5b, 0xff14,
+ 0xfecd, 0xfea6, 0xfe7e, 0xfe43, 0xfe1c, 0xfe08,
+ 0xfdf7, 0xfe0c, 0xfe33, 0xfe32, 0xfe1d, 0xfe13,
+ 0xfdfd, 0xfdd7, 0xfdbc, 0xfdb6, 0xfdb2, 0xfda6,
+ 0xfdad, 0xfdc7, 0xfdc8, 0xfda9, 0xfd7f, 0xfd51,
+ 0xfd24, 0xfce2, 0xfc74, 0xfbe0, 0xfb26, 0xfa64,
+ 0xf9db, 0xf98c, 0xf944, 0xf908, 0xf8d8, 0xf897,
+ 0xf83c, 0xf7ca, 0xf740, 0xf6c0, 0xf673, 0xf64b,
+ 0xf636, 0xf659, 0xf6b6, 0xf71d, 0xf78a, 0xf804,
+ 0xf874, 0xf8f1, 0xf98d, 0xfa18, 0xfa90, 0xfb0d,
+ 0xfb66, 0xfbac, 0xfc14, 0xfc79, 0xfccd, 0xfd45,
+ 0xfdde, 0xfe88, 0xff56, 0x002c, 0x00ed, 0x0190,
+ 0x01f7, 0x022a, 0x0264, 0x02bb, 0x0323, 0x0391,
+ 0x03f9, 0x044c, 0x0480, 0x048d, 0x046b, 0x041b,
+ 0x03df, 0x03ec, 0x0417, 0x0439, 0x0452, 0x0448,
+ 0x0405, 0x038b, 0x02fe, 0x02a7, 0x027e, 0x0269,
+ 0x02a5, 0x0318, 0x034c, 0x0331, 0x02c3, 0x01f9,
+ 0x012d, 0x0091, 0x0026, 0x0023, 0x007d, 0x00fb,
+ 0x0188, 0x01e3, 0x01f2, 0x01f2, 0x01ef, 0x01da,
+ 0x01c1, 0x01c6, 0x022a, 0x02d4, 0x035f, 0x03c7,
+ 0x0426, 0x046b, 0x04ae, 0x0508, 0x0581, 0x0621,
+ 0x06bc, 0x0722, 0x0745, 0x070b, 0x068c, 0x060d,
+ 0x05b2, 0x058e, 0x059c, 0x05cf, 0x0629, 0x066d,
+ 0x0654, 0x05f2, 0x0560, 0x04a5, 0x03de, 0x032f,
+ 0x02bb, 0x0265, 0x01fb, 0x01a5, 0x0188, 0x0187,
+ 0x018f, 0x01a0, 0x01c9, 0x0204, 0x0213, 0x01f5,
+ 0x01b2, 0x0105, 0x000a, 0xff11, 0xfe2a, 0xfd9b,
+ 0xfd73, 0xfd5b, 0xfd67, 0xfd9e, 0xfd9d, 0xfd5d,
+ 0xfcf6, 0xfc63, 0xfbeb, 0xfbac, 0xfb85, 0xfb7b,
+ 0xfb6e, 0xfb5f, 0xfb96, 0xfbe4, 0xfc0c, 0xfc3a,
+ 0xfc6c, 0xfc89, 0xfca2, 0xfc8d, 0xfc49, 0xfc18,
+ 0xfbde, 0xfb77, 0xfb1a, 0xfad0, 0xfa7d, 0xfa3c,
+ 0xfa14, 0xf9e6, 0xf9a7, 0xf962, 0xf912, 0xf8ab,
+ 0xf831, 0xf7b6, 0xf757, 0xf725, 0xf70c, 0xf6ef,
+ 0xf6d7, 0xf6c6, 0xf6b5, 0xf6ba, 0xf6d8, 0xf6f3,
+ 0xf70a, 0xf724, 0xf739, 0xf74d, 0xf765, 0xf782,
+ 0xf7a5, 0xf7d1, 0xf811, 0xf874, 0xf8e9, 0xf950,
+ 0xf99f, 0xf9f6, 0xfa5f, 0xfaa8, 0xfac8, 0xfadf,
+ 0xfad0, 0xfaa5, 0xfaa0, 0xfaa7, 0xfaa0, 0xfab5,
+ 0xfadd, 0xfb04, 0xfb31, 0xfb53, 0xfb62, 0xfb74,
+ 0xfb9d, 0xfbe6, 0xfc2e, 0xfc61, 0xfc8e, 0xfca6,
+ 0xfca6, 0xfc9e, 0xfc7a, 0xfc4e, 0xfc2a, 0xfbf5,
+ 0xfbdd, 0xfbfd, 0xfc27, 0xfc5c, 0xfc70, 0xfc4b,
+ 0xfc40, 0xfc31, 0xfbf0, 0xfbf8, 0xfc3a, 0xfc41,
+ 0xfc40, 0xfc3a, 0xfbfc, 0xfbb8, 0xfb76, 0xfb2f,
+ 0xfb00, 0xfac2, 0xfa6a, 0xfa0a, 0xf993, 0xf92e,
+ 0xf8eb, 0xf897, 0xf846, 0xf7fa, 0xf79e, 0xf767,
+ 0xf743, 0xf703, 0xf6e9, 0xf6f9, 0xf6fb, 0xf712,
+ 0xf73a, 0xf743, 0xf738, 0xf71d, 0xf6eb, 0xf6be,
+ 0xf6a4, 0xf698, 0xf691, 0xf684, 0xf66f, 0xf651,
+ 0xf63a, 0xf62a, 0xf60c, 0xf5f2, 0xf5f2, 0xf5ee,
+ 0xf5e3, 0xf5ee, 0xf603, 0xf601, 0xf5e1, 0xf5af,
+ 0xf581, 0xf585, 0xf5cf, 0xf63d, 0xf6af, 0xf726,
+ 0xf77f, 0xf7b7, 0xf7f7, 0xf835, 0xf85d, 0xf87e,
+ 0xf8a0, 0xf8cf, 0xf905, 0xf926, 0xf95c, 0xf9b0,
+ 0xf9ed, 0xfa39, 0xfaaf, 0xfb15, 0xfb83, 0xfc26,
+ 0xfcdb, 0xfd92, 0xfe3b, 0xfec5, 0xff53, 0xffe6,
+ 0x0060, 0x00d5, 0x0160, 0x01fc, 0x0275, 0x02b1,
+ 0x02ea, 0x0322, 0x0331, 0x0347, 0x036c, 0x0386,
+ 0x03c3, 0x040b, 0x041c, 0x042c, 0x0447, 0x044f,
+ 0x047f, 0x04cf, 0x04f0, 0x04f4, 0x04f6, 0x04d4,
+ 0x0493, 0x0448, 0x03fd, 0x03cb, 0x03b2, 0x039f,
+ 0x0380, 0x034c, 0x0314, 0x02cf, 0x0265, 0x01fd,
+ 0x01ca, 0x01c6, 0x01e7, 0x0221, 0x0255, 0x0285,
+ 0x02cd, 0x0325, 0x036f, 0x03a8, 0x03d4, 0x03e7,
+ 0x03df, 0x03c9, 0x03a7, 0x0380, 0x0368, 0x0360,
+ 0x0366, 0x0375, 0x0368, 0x0333, 0x02f5, 0x02ad,
+ 0x0255, 0x0210, 0x01ce, 0x0179, 0x013f, 0x0122,
+ 0x0107, 0x0105, 0x0107, 0x00e0, 0x00b3, 0x0087,
+ 0x0048, 0x0010, 0xffdf, 0xff99, 0xff57, 0xff25,
+ 0xfef1, 0xfeb1, 0xfe72, 0xfe47, 0xfe1d, 0xfde4,
+ 0xfdc2, 0xfdb6, 0xfd9f, 0xfd8d, 0xfd83, 0xfd7c,
+ 0xfd79, 0xfd72, 0xfd8c, 0xfdd1, 0xfe0f, 0xfe5f,
+ 0xfed1, 0xff27, 0xff77, 0xffcd, 0xfffb, 0x0034,
+ 0x0089, 0x00ce, 0x0140, 0x01c5, 0x0212, 0x0273,
+ 0x02f3, 0x035d, 0x03d7, 0x043b, 0x046e, 0x04c8,
+ 0x0515, 0x0521, 0x0550, 0x0597, 0x05b9, 0x05fb,
+ 0x065d, 0x069c, 0x06ba, 0x06cb, 0x06dc, 0x06eb,
+ 0x06df, 0x06c8, 0x06b6, 0x0693, 0x067a, 0x0677,
+ 0x065b, 0x062b, 0x0608, 0x05d5, 0x0585, 0x052e,
+ 0x04e0, 0x04bf, 0x04d4, 0x04ed, 0x0515, 0x056e,
+ 0x05cd, 0x0619, 0x0663, 0x0697, 0x06ba, 0x06d0,
+ 0x06d1, 0x06da, 0x06f1, 0x06fd, 0x0725, 0x076c,
+ 0x079d, 0x07bd, 0x07db, 0x07f1, 0x07f3, 0x07c9,
+ 0x079c, 0x0786, 0x0757, 0x0729, 0x071a, 0x06fc,
+ 0x06de, 0x06c7, 0x069c, 0x067b, 0x0649, 0x0601,
+ 0x05f5, 0x05f6, 0x05c9, 0x05b6, 0x05a9, 0x056d,
+ 0x0526, 0x04d2, 0x0481, 0x045e, 0x0447, 0x0430,
+ 0x0431, 0x043f, 0x0464, 0x049b, 0x04cf, 0x0505,
+ 0x052e, 0x055a, 0x0594, 0x05bc, 0x05d5, 0x05e0,
+ 0x05bd, 0x058b, 0x0544, 0x04ba, 0x041e, 0x038b,
+ 0x02f9, 0x0284, 0x021a, 0x01a8, 0x013a, 0x00a1,
+ 0xffea, 0xff58, 0xfee1, 0xfe84, 0xfe50, 0xfe32,
+ 0xfe39, 0xfe52, 0xfe47, 0xfe45, 0xfe60, 0xfe69,
+ 0xfe68, 0xfe5f, 0xfe33, 0xfdd8, 0xfd54, 0xfccd,
+ 0xfc4a, 0xfbae, 0xfb1d, 0xfab0, 0xfa4c, 0xf9fe,
+ 0xf9cd, 0xf9aa, 0xf99c, 0xf9a3, 0xf9c6, 0xfa10,
+ 0xfa59, 0xfaa7, 0xfb12, 0xfb77, 0xfbea, 0xfc89,
+ 0xfd0a, 0xfd6d, 0xfe05, 0xfeb7, 0xff43, 0xffa9,
+ 0xfff0, 0x001a, 0x003b, 0x0068, 0x00b2, 0x0118,
+ 0x0188, 0x01f3, 0x024d, 0x0298, 0x02c6, 0x02c3,
+ 0x02b1, 0x02bb, 0x02d0, 0x02d6, 0x02d9, 0x02df,
+ 0x02dc, 0x02c9, 0x02af, 0x028d, 0x0257, 0x020b,
+ 0x01d0, 0x01ae, 0x0188, 0x0166, 0x0154, 0x0131,
+ 0x00ed, 0x00a4, 0x0068, 0x0051, 0x0078, 0x00c8,
+ 0x0129, 0x01b2, 0x0258, 0x02e2, 0x0355, 0x03d0,
+ 0x043e, 0x0487, 0x04be, 0x0500, 0x055f, 0x05d1,
+ 0x0643, 0x06cd, 0x0781, 0x0841, 0x0901, 0x09cf,
+ 0x0aa2, 0x0b64, 0x0c0e, 0x0cb2, 0x0d4f, 0x0dcb,
+ 0x0e39, 0x0eba, 0x0f3f, 0x0fb7, 0x1011, 0x103c,
+ 0x1057, 0x1070, 0x106f, 0x1059, 0x1025, 0x0fd5,
+ 0x0f84, 0x0f16, 0x0e7f, 0x0de7, 0x0d4e, 0x0cc4,
+ 0x0c64, 0x0c08, 0x0bc7, 0x0bc2, 0x0bb2, 0x0b7f,
+ 0x0b53, 0x0b11, 0x0aa7, 0x0a2d, 0x09ac, 0x0924,
+ 0x088f, 0x07fd, 0x0787, 0x0716, 0x06b4, 0x0679,
+ 0x063a, 0x05f0, 0x05b7, 0x0568, 0x04f5, 0x046f,
+ 0x03d6, 0x0344, 0x02cd, 0x025a, 0x01fe, 0x01d1,
+ 0x01ab, 0x0182, 0x0165, 0x0139, 0x00ef, 0x00a3,
+ 0x0050, 0xffea, 0xff8b, 0xff3c, 0xfefa, 0xfec0,
+ 0xfe7c, 0xfe62, 0xfea6, 0xff05, 0xff61, 0xffcf,
+ 0x000c, 0x001a, 0x0039, 0x0044, 0x0037, 0x004d,
+ 0x0065, 0x006c, 0x0084, 0x009b, 0x0095, 0x0068,
+ 0x0031, 0x0013, 0xffc9, 0xff34, 0xfea7, 0xfe10,
+ 0xfd41, 0xfc76, 0xfbc7, 0xfb45, 0xfb05, 0xfacf,
+ 0xfa9c, 0xfa95, 0xfa8b, 0xfa4c, 0xf9e6, 0xf961,
+ 0xf8c9, 0xf830, 0xf7ab, 0xf741, 0xf6eb, 0xf6d4,
+ 0xf716, 0xf76a, 0xf799, 0xf7ba, 0xf7db, 0xf7e9,
+ 0xf7e8, 0xf7ef, 0xf801, 0xf822, 0xf870, 0xf8e2,
+ 0xf95a, 0xf9d2, 0xfa36, 0xfa97, 0xfb34, 0xfbea,
+ 0xfc81, 0xfd1c, 0xfda6, 0xfdf0, 0xfe25, 0xfe69,
+ 0xfec4, 0xff4d, 0xffed, 0x007f, 0x0100, 0x0168,
+ 0x01b8, 0x0205, 0x0250, 0x0286, 0x02a7, 0x02c3,
+ 0x02c3, 0x0287, 0x023a, 0x01fb, 0x01c5, 0x01ad,
+ 0x01a6, 0x018a, 0x0163, 0x0136, 0x00f3, 0x0091,
+ 0xfff8, 0xff42, 0xfebd, 0xfe6e, 0xfe46, 0xfe5a,
+ 0xfe93, 0xfeb4, 0xfeab, 0xfe9a, 0xfe9d, 0xfeb8,
+ 0xff0c, 0xffb0, 0x0086, 0x017d, 0x027d, 0x034e,
+ 0x03e0, 0x043b, 0x0467, 0x0485, 0x0499, 0x0492,
+ 0x048c, 0x0479, 0x0440, 0x0426, 0x0435, 0x0426,
+ 0x0427, 0x0475, 0x04e1, 0x0544, 0x05b2, 0x0615,
+ 0x064b, 0x0652, 0x062e, 0x05f0, 0x05ae, 0x0573,
+ 0x0554, 0x0564, 0x0587, 0x0597, 0x058b, 0x056a,
+ 0x0520, 0x049c, 0x041a, 0x03bf, 0x035d, 0x0305,
+ 0x02d4, 0x027e, 0x01fd, 0x019f, 0x0155, 0x011b,
+ 0x0120, 0x0138, 0x0129, 0x00f6, 0x00a4, 0x0041,
+ 0xffdb, 0xff77, 0xff29, 0xfedd, 0xfe7c, 0xfe32,
+ 0xfe18, 0xfe19, 0xfe30, 0xfe4d, 0xfe63, 0xfe6e,
+ 0xfe60, 0xfe42, 0xfe28, 0xfe0c, 0xfdef, 0xfdcc,
+ 0xfda8, 0xfdab, 0xfdcd, 0xfdd1, 0xfdc1, 0xfdce,
+ 0xfdd9, 0xfd9f, 0xfd2f, 0xfcb9, 0xfc34, 0xfb9e,
+ 0xfb12, 0xfa87, 0xfa00, 0xf998, 0xf95e, 0xf93f,
+ 0xf92f, 0xf943, 0xf975, 0xf98e, 0xf993, 0xf991,
+ 0xf957, 0xf8f3, 0xf8a4, 0xf863, 0xf839, 0xf844,
+ 0xf871, 0xf8a7, 0xf8be, 0xf8a8, 0xf894, 0xf87f,
+ 0xf85f, 0xf857, 0xf853, 0xf84c, 0xf85e, 0xf86e,
+ 0xf880, 0xf8a6, 0xf8ce, 0xf91c, 0xf981, 0xf9a8,
+ 0xf9b6, 0xf9d3, 0xf9d4, 0xf9da, 0xf9f9, 0xfa08,
+ 0xfa1a, 0xfa34, 0xfa49, 0xfa74, 0xfaa7, 0xfac9,
+ 0xfae9, 0xfb20, 0xfb70, 0xfbb7, 0xfbef, 0xfc29,
+ 0xfc3b, 0xfc2a, 0xfc2f, 0xfc31, 0xfc29, 0xfc47,
+ 0xfc6b, 0xfc8e, 0xfcd7, 0xfd1d, 0xfd43, 0xfd59,
+ 0xfd50, 0xfd2a, 0xfce2, 0xfc91, 0xfc74, 0xfc67,
+ 0xfc3f, 0xfc26, 0xfc04, 0xfbb0, 0xfb52, 0xfaef,
+ 0xfa8f, 0xfa4e, 0xfa15, 0xf9f1, 0xf9f1, 0xf9e9,
+ 0xf9db, 0xf9c9, 0xf991, 0xf956, 0xf92b, 0xf8e9,
+ 0xf8b4, 0xf8a0, 0xf873, 0xf832, 0xf7fe, 0xf7c1,
+ 0xf769, 0xf710, 0xf6c4, 0xf67b, 0xf63f, 0xf621,
+ 0xf5f2, 0xf5a4, 0xf571, 0xf555, 0xf52e, 0xf51b,
+ 0xf51b, 0xf51f, 0xf52d, 0xf52b, 0xf51f, 0xf526,
+ 0xf52c, 0xf547, 0xf573, 0xf56d, 0xf55b, 0xf571,
+ 0xf573, 0xf563, 0xf570, 0xf590, 0xf5c3, 0xf5f3,
+ 0xf607, 0xf623, 0xf63f, 0xf642, 0xf651, 0xf665,
+ 0xf678, 0xf695, 0xf6a1, 0xf6b8, 0xf6f0, 0xf716,
+ 0xf748, 0xf7ac, 0xf807, 0xf865, 0xf8e7, 0xf96f,
+ 0xfa07, 0xfaab, 0xfb3f, 0xfbe0, 0xfc7e, 0xfcf7,
+ 0xfd6c, 0xfde1, 0xfe49, 0xfeb2, 0xff10, 0xff73,
+ 0xfffc, 0x008f, 0x0115, 0x0186, 0x01e0, 0x0240,
+ 0x028c, 0x02a7, 0x02c0, 0x02dc, 0x02e4, 0x02f2,
+ 0x02f7, 0x02e4, 0x02e6, 0x0303, 0x0317, 0x0315,
+ 0x0310, 0x030b, 0x02f3, 0x02d0, 0x02ae, 0x0279,
+ 0x024b, 0x0248, 0x024c, 0x024f, 0x026e, 0x028a,
+ 0x029b, 0x02ae, 0x02a6, 0x0283, 0x0267, 0x0256,
+ 0x0259, 0x0279, 0x02b2, 0x02f1, 0x0314, 0x0321,
+ 0x0332, 0x033e, 0x0331, 0x0304, 0x02d2, 0x02c2,
+ 0x02c3, 0x02b4, 0x029d, 0x0270, 0x0220, 0x01d5,
+ 0x01a4, 0x0183, 0x0171, 0x0164, 0x0153, 0x012f,
+ 0x00f8, 0x00cd, 0x00b6, 0x009a, 0x0070, 0x0031,
+ 0xffdb, 0xff7f, 0xff37, 0xff03, 0xfeca, 0xfe8a,
+ 0xfe56, 0xfe14, 0xfdbb, 0xfd69, 0xfd19, 0xfcc4,
+ 0xfc7f, 0xfc3e, 0xfc0a, 0xfc05, 0xfc14, 0xfc2e,
+ 0xfc6c, 0xfcac, 0xfccc, 0xfcd9, 0xfce5, 0xfcf9,
+ 0xfd00, 0xfd00, 0xfd20, 0xfd57, 0xfd93, 0xfdde,
+ 0xfe23, 0xfe5a, 0xfe9c, 0xfefd, 0xff86, 0x0020,
+ 0x00ba, 0x0170, 0x022a, 0x02b4, 0x0323, 0x038e,
+ 0x03f1, 0x045d, 0x04ce, 0x0530, 0x057e, 0x05af,
+ 0x05c4, 0x05ba, 0x0591, 0x0556, 0x0506, 0x04a9,
+ 0x0469, 0x0441, 0x0416, 0x03fc, 0x03fa, 0x03fa,
+ 0x03f9, 0x03fc, 0x040d, 0x042e, 0x0465, 0x04bc,
+ 0x0512, 0x054e, 0x0576, 0x058e, 0x059f, 0x05a5,
+ 0x05a0, 0x05c5, 0x0602, 0x0621, 0x065a, 0x06ac,
+ 0x06cb, 0x06e9, 0x0722, 0x0735, 0x0750, 0x0791,
+ 0x07bd, 0x07ea, 0x0832, 0x0873, 0x08aa, 0x08c0,
+ 0x0892, 0x0843, 0x07e5, 0x0782, 0x0739, 0x06fc,
+ 0x06b5, 0x0676, 0x0628, 0x05b8, 0x0555, 0x0520,
+ 0x0504, 0x04f3, 0x04f4, 0x0516, 0x0563, 0x05ca,
+ 0x0636, 0x0691, 0x06d1, 0x070b, 0x0746, 0x0764,
+ 0x076e, 0x077e, 0x077e, 0x0775, 0x0778, 0x0764,
+ 0x0728, 0x06de, 0x0689, 0x0626, 0x05be, 0x055e,
+ 0x0505, 0x04ad, 0x046e, 0x0451, 0x041f, 0x03e6,
+ 0x03ee, 0x041d, 0x043f, 0x045c, 0x0465, 0x043e,
+ 0x03f2, 0x03a3, 0x0367, 0x0318, 0x02a3, 0x022b,
+ 0x01a3, 0x0104, 0x007c, 0x000b, 0xff95, 0xff15,
+ 0xfe97, 0xfe22, 0xfda2, 0xfd07, 0xfc79, 0xfc15,
+ 0xfbd3, 0xfba2, 0xfb71, 0xfb4c, 0xfb39, 0xfb1c,
+ 0xfb03, 0xfb12, 0xfb2d, 0xfb29, 0xfafb, 0xfad7,
+ 0xfada, 0xfaca, 0xfabb, 0xfafc, 0xfb56, 0xfbaa,
+ 0xfc30, 0xfcc1, 0xfd3b, 0xfdab, 0xfdf5, 0xfe45,
+ 0xfec4, 0xff3b, 0xffb5, 0x0051, 0x00e0, 0x015e,
+ 0x01de, 0x023b, 0x0286, 0x02e1, 0x0329, 0x0349,
+ 0x0361, 0x0388, 0x039f, 0x0376, 0x0323, 0x02d4,
+ 0x0281, 0x0232, 0x0205, 0x01f2, 0x01e4, 0x01d9,
+ 0x01bb, 0x0175, 0x0120, 0x00d5, 0x0086, 0x003e,
+ 0x000d, 0xffd9, 0xff95, 0xff4d, 0xfef5, 0xfe97,
+ 0xfe5b, 0xfe53, 0xfe8d, 0xff11, 0xffbb, 0x006a,
+ 0x011d, 0x01d8, 0x0270, 0x02bc, 0x02fe, 0x0380,
+ 0x043f, 0x053b, 0x0676, 0x07b2, 0x08c1, 0x0996,
+ 0x0a15, 0x0a3e, 0x0a49, 0x0a70, 0x0abd, 0x0b2b,
+ 0x0bc4, 0x0c78, 0x0d0f, 0x0d7a, 0x0dc0, 0x0de4,
+ 0x0e01, 0x0e2a, 0x0e5a, 0x0e93, 0x0ed6, 0x0f10,
+ 0x0f30, 0x0f43, 0x0f53, 0x0f54, 0x0f43, 0x0f2b,
+ 0x0ef2, 0x0e86, 0x0e02, 0x0d87, 0x0d27, 0x0cc5,
+ 0x0c37, 0x0bab, 0x0b49, 0x0ae5, 0x0a71, 0x0a02,
+ 0x0990, 0x0914, 0x087c, 0x07e0, 0x0772, 0x0708,
+ 0x0688, 0x0633, 0x05ed, 0x058e, 0x054f, 0x0519,
+ 0x04c2, 0x0484, 0x044b, 0x03da, 0x036f, 0x0329,
+ 0x02cd, 0x026a, 0x0227, 0x01ee, 0x01c1, 0x01b1,
+ 0x01a7, 0x01ab, 0x01d9, 0x0202, 0x0213, 0x0244,
+ 0x0280, 0x0293, 0x029d, 0x02a8, 0x029a, 0x0294,
+ 0x02a8, 0x02d2, 0x032b, 0x03a1, 0x03fc, 0x0431,
+ 0x0436, 0x0401, 0x039e, 0x031b, 0x0281, 0x01d7,
+ 0x0139, 0x00bc, 0x004e, 0xfff5, 0xffbb, 0xff79,
+ 0xff1f, 0xfebe, 0xfe58, 0xfdfb, 0xfda6, 0xfd40,
+ 0xfcda, 0xfc78, 0xfbf3, 0xfb4f, 0xfaab, 0xfa29,
+ 0xf9bb, 0xf930, 0xf898, 0xf812, 0xf780, 0xf6fb,
+ 0xf699, 0xf62d, 0xf5e5, 0xf5f3, 0xf626, 0xf66d,
+ 0xf6cd, 0xf727, 0xf772, 0xf7a6, 0xf7cb, 0xf80c,
+ 0xf86f, 0xf8f8, 0xf9ac, 0xfa66, 0xfb0d, 0xfb97,
+ 0xfc0e, 0xfc90, 0xfd0a, 0xfd72, 0xfded, 0xfe62,
+ 0xfed4, 0xff60, 0xffbe, 0xffde, 0x0002, 0x0021,
+ 0x003a, 0x0060, 0x0072, 0x0078, 0x0082, 0x0077,
+ 0x0054, 0x001c, 0xffd9, 0xffaa, 0xff7f, 0xff52,
+ 0xff30, 0xfef7, 0xfea2, 0xfe58, 0xfe20, 0xfdfc,
+ 0xfde5, 0xfdcf, 0xfdcb, 0xfdd8, 0xfe06, 0xfe60,
+ 0xfeac, 0xfee4, 0xff37, 0xff79, 0xff87, 0xff8a,
+ 0xff87, 0xff85, 0xffa8, 0xffef, 0x0047, 0x00ac,
+ 0x011c, 0x0180, 0x01b4, 0x01b5, 0x01b6, 0x01dd,
+ 0x0217, 0x0262, 0x02d8, 0x036c, 0x0403, 0x048d,
+ 0x04ef, 0x0541, 0x05a8, 0x05f0, 0x0621, 0x0671,
+ 0x0696, 0x0689, 0x0691, 0x067e, 0x0652, 0x063f,
+ 0x0613, 0x05e0, 0x05ca, 0x058d, 0x053f, 0x0505,
+ 0x04bc, 0x046f, 0x041b, 0x03b6, 0x0374, 0x033f,
+ 0x0303, 0x02d5, 0x029b, 0x0266, 0x0244, 0x0205,
+ 0x01c2, 0x0186, 0x013c, 0x0122, 0x012f, 0x0123,
+ 0x010a, 0x00e8, 0x00c2, 0x0095, 0x003d, 0x0001,
+ 0x000f, 0x0022, 0x0049, 0x0072, 0x0052, 0x002c,
+ 0x0012, 0xffd5, 0xff9e, 0xff62, 0xff1e, 0xff04,
+ 0xfec3, 0xfe47, 0xfde8, 0xfd88, 0xfd3e, 0xfd4f,
+ 0xfd6c, 0xfd72, 0xfd82, 0xfd73, 0xfd3a, 0xfcf8,
+ 0xfcb4, 0xfc7b, 0xfc4c, 0xfc37, 0xfc43, 0xfc38,
+ 0xfc03, 0xfbb8, 0xfb46, 0xfabf, 0xfa48, 0xf9ec,
+ 0xf9bd, 0xf9b8, 0xf9c8, 0xf9e3, 0xfa00, 0xfa15,
+ 0xfa04, 0xf9c7, 0xf990, 0xf94b, 0xf8d6, 0xf88c,
+ 0xf87a, 0xf849, 0xf828, 0xf859, 0xf894, 0xf8bd,
+ 0xf8fa, 0xf926, 0xf91c, 0xf907, 0xf8f7, 0xf8c5,
+ 0xf899, 0xf8b0, 0xf8cc, 0xf8c6, 0xf8e6, 0xf942,
+ 0xf99d, 0xf9e0, 0xfa1a, 0xfa59, 0xfaa2, 0xfaea,
+ 0xfb1d, 0xfb3c, 0xfb56, 0xfb76, 0xfba2, 0xfbde,
+ 0xfc25, 0xfc5f, 0xfc73, 0xfc61, 0xfc55, 0xfc55,
+ 0xfc3a, 0xfc24, 0xfc27, 0xfc1c, 0xfc1d, 0xfc43,
+ 0xfc56, 0xfc53, 0xfc4b, 0xfc20, 0xfbd4, 0xfb87,
+ 0xfb45, 0xfb1d, 0xfb1b, 0xfb45, 0xfb98, 0xfbde,
+ 0xfbe4, 0xfba4, 0xfb34, 0xfaba, 0xfa43, 0xf9dd,
+ 0xf9a4, 0xf990, 0xf992, 0xf99c, 0xf97d, 0xf932,
+ 0xf8dc, 0xf862, 0xf7d5, 0xf782, 0xf754, 0xf724,
+ 0xf6fc, 0xf6cd, 0xf68b, 0xf657, 0xf62b, 0xf5fa,
+ 0xf5d3, 0xf5c1, 0xf5cf, 0xf5f5, 0xf5fc, 0xf5eb,
+ 0xf5de, 0xf5aa, 0xf55f, 0xf52c, 0xf500, 0xf4f9,
+ 0xf523, 0xf52f, 0xf52a, 0xf546, 0xf541, 0xf519,
+ 0xf50c, 0xf50f, 0xf52a, 0xf55b, 0xf571, 0xf577,
+ 0xf578, 0xf56c, 0xf57d, 0xf592, 0xf582, 0xf58b,
+ 0xf5c2, 0xf600, 0xf635, 0xf659, 0xf689, 0xf6cb,
+ 0xf701, 0xf741, 0xf794, 0xf7ee, 0xf873, 0xf90a,
+ 0xf996, 0xfa48, 0xfaef, 0xfb55, 0xfbc8, 0xfc42,
+ 0xfc8a, 0xfcdb, 0xfd4e, 0xfdbe, 0xfe3f, 0xfed6,
+ 0xff58, 0xffb3, 0xfffa, 0x0049, 0x009a, 0x00cd,
+ 0x00e6, 0x00fc, 0x011b, 0x0146, 0x0167, 0x0177,
+ 0x0190, 0x01b2, 0x01b4, 0x019a, 0x0184, 0x016d,
+ 0x015b, 0x0174, 0x019a, 0x01a1, 0x01bb, 0x01ea,
+ 0x01ff, 0x0217, 0x0230, 0x021c, 0x0215, 0x0235,
+ 0x023a, 0x0240, 0x0266, 0x0287, 0x02a5, 0x02b5,
+ 0x02ad, 0x02bf, 0x02c7, 0x02a0, 0x02a6, 0x02d3,
+ 0x02e2, 0x0302, 0x0336, 0x0343, 0x034b, 0x0364,
+ 0x0367, 0x0355, 0x033d, 0x032a, 0x0319, 0x02ef,
+ 0x02b4, 0x0274, 0x021e, 0x01c2, 0x0169, 0x0115,
+ 0x00d1, 0x0091, 0x005d, 0x004c, 0x0041, 0x0030,
+ 0x0027, 0x0008, 0xffde, 0xffca, 0xffb8, 0xff9d,
+ 0xff78, 0xff2b, 0xfec7, 0xfe6d, 0xfe1a, 0xfdbc,
+ 0xfd48, 0xfcda, 0xfc85, 0xfc2e, 0xfbdf, 0xfbad,
+ 0xfb80, 0xfb5d, 0xfb4a, 0xfb28, 0xfb0d, 0xfb16,
+ 0xfb31, 0xfb68, 0xfbbf, 0xfc19, 0xfc85, 0xfd0f,
+ 0xfd81, 0xfde5, 0xfe7a, 0xff22, 0xffc1, 0x0081,
+ 0x0144, 0x01d7, 0x025d, 0x02c4, 0x02f4, 0x0314,
+ 0x030a, 0x02d9, 0x02d0, 0x02d9, 0x02da, 0x02e3,
+ 0x02bc, 0x026f, 0x0243, 0x021b, 0x0206, 0x022b,
+ 0x025d, 0x029c, 0x02fa, 0x034f, 0x038d, 0x03af,
+ 0x03b9, 0x03ca, 0x03c5, 0x03ae, 0x03b7, 0x03cf,
+ 0x03e8, 0x0402, 0x0420, 0x0461, 0x0496, 0x0494,
+ 0x049e, 0x04bc, 0x04d8, 0x0520, 0x058a, 0x05f6,
+ 0x065f, 0x06a9, 0x06f6, 0x0749, 0x075f, 0x0764,
+ 0x0782, 0x078e, 0x078c, 0x0788, 0x0778, 0x076b,
+ 0x074b, 0x071a, 0x06ea, 0x06aa, 0x0686, 0x0692,
+ 0x06a2, 0x06c7, 0x06fb, 0x071a, 0x0749, 0x0793,
+ 0x07e5, 0x0842, 0x087c, 0x0891, 0x089b, 0x0869,
+ 0x0806, 0x07a7, 0x0740, 0x06d5, 0x0674, 0x0628,
+ 0x0608, 0x05f8, 0x05fa, 0x062a, 0x064c, 0x063e,
+ 0x060b, 0x05c3, 0x05a3, 0x05a9, 0x05bd, 0x060f,
+ 0x0667, 0x0681, 0x0698, 0x068d, 0x064a, 0x0625,
+ 0x05fd, 0x05b2, 0x056d, 0x050d, 0x049b, 0x0444,
+ 0x03d8, 0x0357, 0x02e2, 0x0267, 0x01fb, 0x01a6,
+ 0x0163, 0x012b, 0x00cd, 0x0075, 0x0066, 0x0055,
+ 0x002e, 0x0018, 0xffdb, 0xff7e, 0xff21, 0xfe86,
+ 0xfdc1, 0xfd1a, 0xfc93, 0xfc2a, 0xfbd5, 0xfb8d,
+ 0xfb61, 0xfb31, 0xfaf1, 0xfacf, 0xfac7, 0xfabe,
+ 0xfacc, 0xfb0c, 0xfb60, 0xfb95, 0xfbc0, 0xfc03,
+ 0xfc33, 0xfc61, 0xfcc2, 0xfd3b, 0xfdb6, 0xfe23,
+ 0xfe6b, 0xfeb1, 0xfeef, 0xff13, 0xff60, 0xffc4,
+ 0xfffe, 0x003a, 0x007a, 0x00ab, 0x00ee, 0x011a,
+ 0x011f, 0x013b, 0x0141, 0x0122, 0x011e, 0x010c,
+ 0x00e8, 0x00da, 0x009c, 0x002d, 0xffd5, 0xff73,
+ 0xff04, 0xfeb2, 0xfe55, 0xfde7, 0xfd7c, 0xfd09,
+ 0xfcaf, 0xfc70, 0xfc2c, 0xfc01, 0xfbf5, 0xfc01,
+ 0xfc49, 0xfcbb, 0xfd44, 0xfdf2, 0xfe98, 0xff23,
+ 0xffb8, 0x0049, 0x00de, 0x0185, 0x0213, 0x028b,
+ 0x0307, 0x036b, 0x03c6, 0x0436, 0x04aa, 0x0532,
+ 0x05d2, 0x0657, 0x06c5, 0x0737, 0x07a6, 0x0826,
+ 0x08bf, 0x0953, 0x09f0, 0x0a9c, 0x0b3c, 0x0bed,
+ 0x0cb8, 0x0d5f, 0x0de9, 0x0e73, 0x0eda, 0x0f2a,
+ 0x0f6f, 0x0f7d, 0x0f5e, 0x0f24, 0x0eb3, 0x0e36,
+ 0x0de1, 0x0da8, 0x0d9e, 0x0dd1, 0x0e15, 0x0e4d,
+ 0x0e64, 0x0e44, 0x0df3, 0x0d7a, 0x0cf6, 0x0c77,
+ 0x0bee, 0x0b6e, 0x0b04, 0x0a8e, 0x0a09, 0x0985,
+ 0x090e, 0x089b, 0x0809, 0x0774, 0x0705, 0x0692,
+ 0x0615, 0x05af, 0x053b, 0x04be, 0x0464, 0x0428,
+ 0x040b, 0x0417, 0x043b, 0x045d, 0x044e, 0x040f,
+ 0x03c4, 0x0351, 0x02dd, 0x02be, 0x02cf, 0x02e1,
+ 0x02f7, 0x02f0, 0x02d1, 0x02ac, 0x026d, 0x0238,
+ 0x0231, 0x023d, 0x025f, 0x0294, 0x02c8, 0x0305,
+ 0x0342, 0x0367, 0x0379, 0x0388, 0x03a6, 0x03c2,
+ 0x03bc, 0x03a1, 0x0369, 0x02fc, 0x027f, 0x0211,
+ 0x01b1, 0x0156, 0x00e0, 0x004f, 0xffab, 0xfebc,
+ 0xfd99, 0xfca1, 0xfbcc, 0xfaf9, 0xfa54, 0xf9d2,
+ 0xf938, 0xf897, 0xf813, 0xf7a5, 0xf754, 0xf72a,
+ 0xf70d, 0xf6ff, 0xf702, 0xf6ea, 0xf6ca, 0xf6cf,
+ 0xf6d7, 0xf6d4, 0xf6e6, 0xf6fc, 0xf71a, 0xf762,
+ 0xf7ba, 0xf818, 0xf89b, 0xf937, 0xf9d8, 0xfa8b,
+ 0xfb4a, 0xfbf6, 0xfc74, 0xfcd6, 0xfd3b, 0xfd7d,
+ 0xfd92, 0xfdbe, 0xfe0d, 0xfe48, 0xfe63, 0xfe6b,
+ 0xfe69, 0xfe7a, 0xfe9c, 0xfeb0, 0xfebd, 0xfee0,
+ 0xff10, 0xff21, 0xff01, 0xfed0, 0xfea9, 0xfe86,
+ 0xfe65, 0xfe53, 0xfe38, 0xfdfb, 0xfdc0, 0xfdb4,
+ 0xfda5, 0xfd74, 0xfd5b, 0xfd60, 0xfd4b, 0xfd36,
+ 0xfd3e, 0xfd3a, 0xfd23, 0xfd11, 0xfd01, 0xfcef,
+ 0xfcf2, 0xfd21, 0xfd80, 0xfe05, 0xfe9d, 0xff2b,
+ 0xffa1, 0x000f, 0x006d, 0x00bb, 0x0126, 0x01a1,
+ 0x0211, 0x0294, 0x031c, 0x0384, 0x03de, 0x0421,
+ 0x0444, 0x0462, 0x047c, 0x048d, 0x04a2, 0x04af,
+ 0x04bb, 0x04d6, 0x04e8, 0x04ee, 0x04f5, 0x04f7,
+ 0x04ef, 0x04dc, 0x04d6, 0x04dd, 0x04b9, 0x0480,
+ 0x0472, 0x0472, 0x0468, 0x045f, 0x043e, 0x0408,
+ 0x03cc, 0x0368, 0x02fb, 0x02c5, 0x02b5, 0x0297,
+ 0x026c, 0x024e, 0x0237, 0x0212, 0x01fe, 0x0228,
+ 0x027a, 0x02ca, 0x0300, 0x0312, 0x0303, 0x02d5,
+ 0x028a, 0x0233, 0x01d8, 0x017f, 0x0126, 0x00c2,
+ 0x0062, 0x0012, 0xffbd, 0xff6b, 0xff45, 0xff3e,
+ 0xff3e, 0xff57, 0xffa4, 0x0007, 0x004b, 0x006e,
+ 0x0073, 0x0042, 0x0000, 0xffd9, 0xffc1, 0xffae,
+ 0xff89, 0xff3a, 0xfef6, 0xfed6, 0xfea4, 0xfe5c,
+ 0xfe10, 0xfdb6, 0xfd63, 0xfd26, 0xfcef, 0xfccc,
+ 0xfcc1, 0xfca2, 0xfc61, 0xfc0b, 0xfbae, 0xfb6f,
+ 0xfb60, 0xfb73, 0xfb9d, 0xfbc1, 0xfbb9, 0xfb81,
+ 0xfb29, 0xfac6, 0xfa6e, 0xfa1b, 0xf9c3, 0xf97d,
+ 0xf95a, 0xf94e, 0xf93d, 0xf91e, 0xf913, 0xf931,
+ 0xf959, 0xf980, 0xf9ac, 0xf9ce, 0xf9e9, 0xf9fd,
+ 0xf9ec, 0xf9de, 0xf9f7, 0xfa0c, 0xfa2f, 0xfa8d,
+ 0xfaee, 0xfb1f, 0xfb2a, 0xfb12, 0xfaf8, 0xfae9,
+ 0xfac6, 0xfab3, 0xfad2, 0xfaea, 0xfaed, 0xfafd,
+ 0xfb21, 0xfb61, 0xfb9f, 0xfbc6, 0xfbff, 0xfc31,
+ 0xfc2b, 0xfc1c, 0xfc0b, 0xfbe9, 0xfbe2, 0xfbee,
+ 0xfbf5, 0xfc15, 0xfc2d, 0xfc21, 0xfc0e, 0xfbe2,
+ 0xfb94, 0xfb41, 0xfadf, 0xfa70, 0xfa11, 0xf9c5,
+ 0xf993, 0xf975, 0xf957, 0xf930, 0xf8f7, 0xf8ce,
+ 0xf8d8, 0xf8df, 0xf8d4, 0xf8df, 0xf8d6, 0xf8a1,
+ 0xf86d, 0xf836, 0xf801, 0xf7ea, 0xf7e0, 0xf7d6,
+ 0xf7c3, 0xf7a2, 0xf7a0, 0xf7a9, 0xf775, 0xf72a,
+ 0xf6f5, 0xf6c5, 0xf6a4, 0xf68e, 0xf67d, 0xf680,
+ 0xf677, 0xf652, 0xf636, 0xf620, 0xf60c, 0xf61c,
+ 0xf63c, 0xf647, 0xf638, 0xf60c, 0xf5e2, 0xf5d8,
+ 0xf5da, 0xf5e2, 0xf5ff, 0xf62d, 0xf656, 0xf63f,
+ 0xf5eb, 0xf5b7, 0xf5aa, 0xf599, 0xf59e, 0xf5b1,
+ 0xf5c2, 0xf5ec, 0xf61b, 0xf657, 0xf6cc, 0xf741,
+ 0xf79c, 0xf816, 0xf887, 0xf8d8, 0xf939, 0xf982,
+ 0xf9a5, 0xf9f5, 0xfa65, 0xfad4, 0xfb73, 0xfc2e,
+ 0xfccd, 0xfd5f, 0xfdda, 0xfe1e, 0xfe4e, 0xfe81,
+ 0xfeb3, 0xfeed, 0xff34, 0xff81, 0xffd3, 0x0016,
+ 0x0052, 0x00a7, 0x00ff, 0x0130, 0x0144, 0x014e,
+ 0x015b, 0x0159, 0x0137, 0x012a, 0x0150, 0x015c,
+ 0x0139, 0x011a, 0x0108, 0x0113, 0x0142, 0x016a,
+ 0x018b, 0x01b2, 0x01c1, 0x01c0, 0x01c2, 0x01d3,
+ 0x01f8, 0x0217, 0x022c, 0x0249, 0x0254, 0x0259,
+ 0x027b, 0x029a, 0x02a4, 0x02aa, 0x02a4, 0x02a3,
+ 0x029f, 0x028c, 0x0293, 0x02a3, 0x0283, 0x0266,
+ 0x027a, 0x0292, 0x028d, 0x027f, 0x0283, 0x0294,
+ 0x029f, 0x02ae, 0x02c4, 0x02ce, 0x02e0, 0x02f6,
+ 0x02d7, 0x0277, 0x01fe, 0x0182, 0x010b, 0x009a,
+ 0x001e, 0xff91, 0xff04, 0xfe5d, 0xfd81, 0xfcaf,
+ 0xfc15, 0xfb91, 0xfb30, 0xfb00, 0xfade, 0xfae8,
+ 0xfb2e, 0xfb6f, 0xfbb0, 0xfbfb, 0xfc2b, 0xfc51,
+ 0xfc70, 0xfc72, 0xfc8c, 0xfcc8, 0xfcf4, 0xfd2a,
+ 0xfd7e, 0xfdb8, 0xfddb, 0xfe1b, 0xfe6b, 0xfe9a,
+ 0xfeb2, 0xfede, 0xff13, 0xff3c, 0xff59, 0xff72,
+ 0xffa9, 0x0005, 0x0056, 0x009e, 0x00f8, 0x0148,
+ 0x0194, 0x01ef, 0x022a, 0x0247, 0x026d, 0x0290,
+ 0x02a3, 0x02ad, 0x02b9, 0x02d5, 0x02e3, 0x02c3,
+ 0x02aa, 0x02cb, 0x02fa, 0x031e, 0x034b, 0x0374,
+ 0x037d, 0x0385, 0x039c, 0x03ad, 0x03c3, 0x03ed,
+ 0x0419, 0x044a, 0x0481, 0x0497, 0x0489, 0x047f,
+ 0x0485, 0x047a, 0x0447, 0x0415, 0x040b, 0x0419,
+ 0x0431, 0x045c, 0x0494, 0x04db, 0x0530, 0x0574,
+ 0x0595, 0x05a6, 0x05ba, 0x05c0, 0x05b7, 0x05c8,
+ 0x05ed, 0x05fb, 0x060f, 0x0626, 0x0607, 0x05d2,
+ 0x05ae, 0x056d, 0x052c, 0x0538, 0x0573, 0x05b5,
+ 0x0603, 0x0656, 0x06bd, 0x072b, 0x0772, 0x079a,
+ 0x07c0, 0x07dc, 0x07f6, 0x081a, 0x084f, 0x0898,
+ 0x08d2, 0x08e8, 0x08f9, 0x0906, 0x08f8, 0x08f0,
+ 0x08fa, 0x08ef, 0x08dc, 0x08d2, 0x08a7, 0x0866,
+ 0x0824, 0x07bb, 0x0741, 0x06df, 0x0680, 0x0629,
+ 0x05e3, 0x0577, 0x0502, 0x04ae, 0x0444, 0x03bf,
+ 0x0359, 0x0306, 0x02bb, 0x027c, 0x0223, 0x01a4,
+ 0x0123, 0x009d, 0xfff1, 0xff2a, 0xfe7b, 0xfde4,
+ 0xfd4c, 0xfcbe, 0xfc3d, 0xfbd8, 0xfb99, 0xfb50,
+ 0xfb02, 0xfadf, 0xfad4, 0xfad5, 0xfae0, 0xfac6,
+ 0xfab8, 0xfadf, 0xfaec, 0xfae9, 0xfb18, 0xfb5f,
+ 0xfba9, 0xfbf8, 0xfc4b, 0xfca5, 0xfcf0, 0xfd4b,
+ 0xfdd0, 0xfe33, 0xfe74, 0xfecc, 0xff19, 0xff65,
+ 0xffc9, 0x001b, 0x0073, 0x00d4, 0x0108, 0x0136,
+ 0x0165, 0x016b, 0x0167, 0x0156, 0x012b, 0x0104,
+ 0x00c3, 0x0060, 0x0003, 0xff96, 0xff19, 0xfeac,
+ 0xfe47, 0xfdf3, 0xfda6, 0xfd4f, 0xfd0a, 0xfcce,
+ 0xfc9c, 0xfca2, 0xfcc5, 0xfcdf, 0xfcf7, 0xfd20,
+ 0xfd58, 0xfd6d, 0xfd68, 0xfd9a, 0xfdd5, 0xfdf3,
+ 0xfe2e, 0xfe59, 0xfe61, 0xfe89, 0xfea7, 0xfeb7,
+ 0xff08, 0xff7e, 0xfffc, 0x0083, 0x010c, 0x01b5,
+ 0x025a, 0x02d7, 0x036e, 0x0409, 0x0494, 0x054b,
+ 0x05f9, 0x068a, 0x0745, 0x0800, 0x08a6, 0x094b,
+ 0x09c9, 0x0a43, 0x0ad3, 0x0b3c, 0x0b9a, 0x0bf2,
+ 0x0c18, 0x0c46, 0x0c79, 0x0c8e, 0x0cc5, 0x0d13,
+ 0x0d45, 0x0d8d, 0x0ddf, 0x0def, 0x0dde, 0x0dd8,
+ 0x0db7, 0x0d74, 0x0d40, 0x0d1c, 0x0cfa, 0x0ce7,
+ 0x0cc0, 0x0c7a, 0x0c47, 0x0bf9, 0x0b67, 0x0aec,
+ 0x0a9c, 0x0a4a, 0x0a15, 0x09fe, 0x09d9, 0x09a2,
+ 0x0955, 0x08f5, 0x0889, 0x080c, 0x079b, 0x0723,
+ 0x068e, 0x060c, 0x05a6, 0x054e, 0x051c, 0x04ee,
+ 0x04be, 0x04b4, 0x04ab, 0x049c, 0x049f, 0x0497,
+ 0x0489, 0x0480, 0x0471, 0x0481, 0x04ae, 0x04cc,
+ 0x0500, 0x055a, 0x05b3, 0x060a, 0x064b, 0x0668,
+ 0x067f, 0x068a, 0x0680, 0x066d, 0x0642, 0x0612,
+ 0x05eb, 0x05a7, 0x054d, 0x04ff, 0x049f, 0x041d,
+ 0x038e, 0x02f0, 0x0238, 0x016c, 0x00a8, 0x0007,
+ 0xff82, 0xfef8, 0xfe6d, 0xfdfd, 0xfda6, 0xfd52,
+ 0xfcf8, 0xfc9c, 0xfc44, 0xfbe5, 0xfb5f, 0xfabd,
+ 0xfa3f, 0xf9e8, 0xf989, 0xf925, 0xf8e2, 0xf8bd,
+ 0xf8a1, 0xf89c, 0xf8be, 0xf8e2, 0xf8fb, 0xf92d,
+ 0xf961, 0xf97f, 0xf9ae, 0xf9f5, 0xfa4b, 0xfac1,
+ 0xfb2b, 0xfb70, 0xfbc1, 0xfc0f, 0xfc48, 0xfc99,
+ 0xfceb, 0xfd0c, 0xfd1e, 0xfd33, 0xfd2c, 0xfd18,
+ 0xfd27, 0xfd4c, 0xfd66, 0xfd95, 0xfdf4, 0xfe33,
+ 0xfe34, 0xfe23, 0xfde0, 0xfd55, 0xfcdd, 0xfca5,
+ 0xfc97, 0xfc9e, 0xfc98, 0xfc7e, 0xfc57, 0xfbfd,
+ 0xfb70, 0xfae8, 0xfa86, 0xfa4f, 0xfa3e, 0xfa54,
+ 0xfaa2, 0xfb10, 0xfb74, 0xfbbb, 0xfbe0, 0xfbf6,
+ 0xfbf2, 0xfbd4, 0xfc00, 0xfc87, 0xfd29, 0xfe00,
+ 0xfeed, 0xff94, 0x0021, 0x0096, 0x00a1, 0x008a,
+ 0x0091, 0x0090, 0x00a3, 0x00c8, 0x00d7, 0x00f7,
+ 0x0129, 0x014c, 0x019c, 0x022c, 0x02b5, 0x032d,
+ 0x03a8, 0x03f0, 0x03eb, 0x03d6, 0x03c3, 0x03a0,
+ 0x0389, 0x0393, 0x03ac, 0x03c3, 0x03c4, 0x03b5,
+ 0x03a0, 0x0371, 0x033c, 0x031f, 0x0310, 0x032b,
+ 0x036f, 0x03a3, 0x03dc, 0x0418, 0x0414, 0x03f1,
+ 0x03dc, 0x03bd, 0x03a6, 0x03b6, 0x03d7, 0x03e6,
+ 0x03c9, 0x0399, 0x036c, 0x032f, 0x02fd, 0x02de,
+ 0x02c7, 0x02dc, 0x030e, 0x0328, 0x0330, 0x030f,
+ 0x02b9, 0x0256, 0x01dd, 0x0154, 0x00f9, 0x00c7,
+ 0x00af, 0x00c9, 0x0108, 0x0136, 0x012a, 0x00f9,
+ 0x00c3, 0x0079, 0x0042, 0x003e, 0x003e, 0x0037,
+ 0x0030, 0x0000, 0xff9e, 0xff2f, 0xfed9, 0xfe9c,
+ 0xfe4d, 0xfe19, 0xfe1b, 0xfdf7, 0xfdc4, 0xfdbe,
+ 0xfd9b, 0xfd60, 0xfd37, 0xfcf8, 0xfcc0, 0xfca3,
+ 0xfc83, 0xfc71, 0xfc5d, 0xfc3a, 0xfc1a, 0xfbcf,
+ 0xfb78, 0xfb53, 0xfb1e, 0xfae4, 0xfad7, 0xfac9,
+ 0xfacb, 0xfade, 0xfaaf, 0xfa5e, 0xfa15, 0xf9c4,
+ 0xf989, 0xf965, 0xf954, 0xf978, 0xf99d, 0xf9aa,
+ 0xf9bd, 0xf9b3, 0xf98d, 0xf962, 0xf923, 0xf8f3,
+ 0xf8e7, 0xf8e8, 0xf908, 0xf943, 0xf97d, 0xf9c5,
+ 0xfa0a, 0xfa3a, 0xfa6e, 0xfab2, 0xfaf2, 0xfb1b,
+ 0xfb2f, 0xfb3b, 0xfb2d, 0xfb0b, 0xfafa, 0xfaec,
+ 0xfae4, 0xfaf7, 0xfb12, 0xfb2e, 0xfb43, 0xfb3f,
+ 0xfb3a, 0xfb33, 0xfb15, 0xfafb, 0xfae5, 0xfad8,
+ 0xfae6, 0xfae1, 0xfac2, 0xfab2, 0xfa9f, 0xfa86,
+ 0xfa89, 0xfa8b, 0xfa6c, 0xfa47, 0xfa2f, 0xfa11,
+ 0xf9e8, 0xf9c2, 0xf980, 0xf916, 0xf8b5, 0xf859,
+ 0xf7ff, 0xf7de, 0xf7d6, 0xf7a9, 0xf776, 0xf748,
+ 0xf70c, 0xf6e8, 0xf6e6, 0xf6f9, 0xf719, 0xf736,
+ 0xf74d, 0xf755, 0xf745, 0xf73b, 0xf732, 0xf720,
+ 0xf71e, 0xf714, 0xf6e5, 0xf6ae, 0xf675, 0xf62d,
+ 0xf5da, 0xf57a, 0xf538, 0xf530, 0xf52d, 0xf51e,
+ 0xf521, 0xf51a, 0xf4e9, 0xf4a3, 0xf45e, 0xf423,
+ 0xf409, 0xf414, 0xf436, 0xf474, 0xf4c9, 0xf50e,
+ 0xf541, 0xf577, 0xf5ac, 0xf5db, 0xf60c, 0xf645,
+ 0xf690, 0xf6e2, 0xf72e, 0xf76a, 0xf789, 0xf7b0,
+ 0xf7fb, 0xf83a, 0xf864, 0xf89d, 0xf8d1, 0xf905,
+ 0xf947, 0xf981, 0xf9cb, 0xfa4a, 0xfade, 0xfb67,
+ 0xfbea, 0xfc6b, 0xfcdd, 0xfd2e, 0xfd6b, 0xfda7,
+ 0xfdd5, 0xfe03, 0xfe46, 0xfe95, 0xfee7, 0xff35,
+ 0xff69, 0xff7d, 0xff7a, 0xff78, 0xff8c, 0xffb6,
+ 0xfff0, 0x003f, 0x009b, 0x00ef, 0x0133, 0x0164,
+ 0x0186, 0x01a4, 0x01ce, 0x0208, 0x0241, 0x026f,
+ 0x0292, 0x029d, 0x0293, 0x0291, 0x0298, 0x028b,
+ 0x0273, 0x0279, 0x029a, 0x02b4, 0x02d5, 0x030b,
+ 0x0346, 0x037c, 0x03ad, 0x03dd, 0x041b, 0x0466,
+ 0x04ad, 0x04d4, 0x04df, 0x04e0, 0x04cd, 0x04a0,
+ 0x0472, 0x0443, 0x0413, 0x03e1, 0x0390, 0x0329,
+ 0x02b1, 0x0207, 0x0159, 0x00bb, 0xfffa, 0xff52,
+ 0xfef3, 0xfe93, 0xfe3a, 0xfe08, 0xfdd6, 0xfdb5,
+ 0xfdb0, 0xfd9c, 0xfd84, 0xfd62, 0xfd15, 0xfcc1,
+ 0xfc7a, 0xfc3b, 0xfc12, 0xfbeb, 0xfbbd, 0xfba2,
+ 0xfb82, 0xfb3c, 0xfaef, 0xfaaf, 0xfa76, 0xfa62,
+ 0xfa91, 0xfaea, 0xfb51, 0xfbc3, 0xfc32, 0xfc98,
+ 0xfcf7, 0xfd4f, 0xfd9e, 0xfdce, 0xfddc, 0xfdf8,
+ 0xfe19, 0xfe17, 0xfe0f, 0xfe0a, 0xfdef, 0xfde1,
+ 0xfdee, 0xfe01, 0xfe24, 0xfe5a, 0xfeac, 0xff25,
+ 0xff95, 0xfff8, 0x0066, 0x00b9, 0x00e7, 0x0110,
+ 0x0125, 0x0121, 0x0126, 0x0139, 0x0164, 0x01ad,
+ 0x0202, 0x0252, 0x0292, 0x02c4, 0x02f1, 0x0309,
+ 0x030e, 0x031a, 0x0341, 0x0385, 0x03c3, 0x03e3,
+ 0x03fb, 0x0418, 0x0431, 0x0448, 0x0460, 0x047c,
+ 0x04a4, 0x04dd, 0x052a, 0x057d, 0x05bf, 0x05ef,
+ 0x05f9, 0x05c7, 0x057e, 0x053b, 0x04fd, 0x04c0,
+ 0x047b, 0x0445, 0x0436, 0x041d, 0x03ee, 0x03e7,
+ 0x03ea, 0x03d6, 0x03ed, 0x0430, 0x0469, 0x049b,
+ 0x04c7, 0x04f7, 0x0544, 0x0590, 0x05cc, 0x060f,
+ 0x0626, 0x0613, 0x0613, 0x0603, 0x05c7, 0x05a0,
+ 0x05a8, 0x05ce, 0x0615, 0x0672, 0x06d8, 0x0732,
+ 0x075b, 0x075c, 0x0764, 0x0781, 0x07ad, 0x07e5,
+ 0x0822, 0x0850, 0x086a, 0x087d, 0x086f, 0x082b,
+ 0x07d9, 0x0794, 0x0749, 0x06f4, 0x06aa, 0x0670,
+ 0x062c, 0x05bb, 0x0532, 0x04a9, 0x0411, 0x037c,
+ 0x0305, 0x028e, 0x0208, 0x017a, 0x00cf, 0x0008,
+ 0xff61, 0xfed9, 0xfe3d, 0xfdb0, 0xfd60, 0xfd12,
+ 0xfcbd, 0xfc8c, 0xfc53, 0xfc10, 0xfbe5, 0xfba5,
+ 0xfb60, 0xfb55, 0xfb4e, 0xfb3a, 0xfb42, 0xfb52,
+ 0xfb77, 0xfbc3, 0xfc19, 0xfc83, 0xfd02, 0xfd7b,
+ 0xfdf7, 0xfe6a, 0xfec5, 0xff1b, 0xff57, 0xff7b,
+ 0xff9a, 0xff9d, 0xff9b, 0xffa3, 0xff98, 0xff92,
+ 0xff9c, 0xff95, 0xff97, 0xffa8, 0xffa4, 0xff98,
+ 0xff9f, 0xffc7, 0x0001, 0x0028, 0x003a, 0x003b,
+ 0x0027, 0x000d, 0xffd8, 0xff82, 0xff3c, 0xfef1,
+ 0xfe94, 0xfe4b, 0xfe07, 0xfdce, 0xfda2, 0xfd50,
+ 0xfcff, 0xfccf, 0xfc8c, 0xfc4c, 0xfc25, 0xfbea,
+ 0xfbbe, 0xfbc9, 0xfbfd, 0xfc48, 0xfc7d, 0xfc9d,
+ 0xfcbe, 0xfcc9, 0xfcdb, 0xfd12, 0xfd3f, 0xfd86,
+ 0xfe0c, 0xfe9c, 0xff42, 0x0014, 0x00d7, 0x0171,
+ 0x0201, 0x02b2, 0x0389, 0x044c, 0x04e8, 0x0580,
+ 0x060d, 0x0695, 0x0733, 0x07d3, 0x0866, 0x08f5,
+ 0x097f, 0x09fc, 0x0a6c, 0x0ad7, 0x0b36, 0x0b82,
+ 0x0bce, 0x0c23, 0x0c6c, 0x0c9d, 0x0cad, 0x0cac,
+ 0x0cab, 0x0c98, 0x0c88, 0x0c95, 0x0c9f, 0x0c9f,
+ 0x0ca0, 0x0c8b, 0x0c77, 0x0c79, 0x0c60, 0x0c28,
+ 0x0bf2, 0x0ba6, 0x0b25, 0x0a8a, 0x09fe, 0x097c,
+ 0x08fe, 0x089b, 0x084e, 0x0801, 0x07b9, 0x0763,
+ 0x06ff, 0x06b8, 0x068c, 0x065e, 0x0642, 0x063e,
+ 0x0639, 0x062c, 0x062b, 0x0636, 0x0644, 0x0660,
+ 0x0692, 0x06ba, 0x06c2, 0x06bc, 0x06ad, 0x069a,
+ 0x06ac, 0x06fb, 0x075f, 0x07a1, 0x07d1, 0x07f5,
+ 0x07e1, 0x07b7, 0x07b8, 0x07b2, 0x0790, 0x0792,
+ 0x07a3, 0x0793, 0x076a, 0x0721, 0x06b4, 0x0640,
+ 0x05e1, 0x05aa, 0x0589, 0x055a, 0x051c, 0x04d2,
+ 0x045f, 0x03c0, 0x0313, 0x0271, 0x01d8, 0x0154,
+ 0x0103, 0x00c3, 0x0057, 0xffc4, 0xff0d, 0xfe1e,
+ 0xfd1d, 0xfc2e, 0xfb58, 0xfab8, 0xfa4d, 0xfa09,
+ 0xfa1d, 0xfa6f, 0xfa90, 0xfa76, 0xfa5d, 0xfa37,
+ 0xf9f9, 0xf9cb, 0xf9b8, 0xf9ad, 0xf9b1, 0xf9e2,
+ 0xfa32, 0xfa8c, 0xfb08, 0xfbb5, 0xfc6f, 0xfd29,
+ 0xfde6, 0xfe87, 0xfef5, 0xff1b, 0xfeec, 0xfe9f,
+ 0xfe6d, 0xfe5f, 0xfe86, 0xfecf, 0xfefd, 0xff02,
+ 0xfecd, 0xfe42, 0xfda5, 0xfd4f, 0xfd46, 0xfd8a,
+ 0xfe1a, 0xfec0, 0xff3a, 0xff61, 0xff25, 0xfea3,
+ 0xfe18, 0xfdbd, 0xfdc4, 0xfe26, 0xfeb8, 0xff64,
+ 0xfff9, 0x0030, 0x001d, 0xffee, 0xff8c, 0xfef0,
+ 0xfe49, 0xfdc3, 0xfd72, 0xfd4a, 0xfd41, 0xfd62,
+ 0xfd98, 0xfdc0, 0xfddf, 0xfde1, 0xfda6, 0xfd49,
+ 0xfcec, 0xfc97, 0xfc54, 0xfc32, 0xfc37, 0xfc60,
+ 0xfcaa, 0xfd13, 0xfd99, 0xfe1e, 0xfe78, 0xfe99,
+ 0xfe98, 0xfe75, 0xfe39, 0xfe19, 0xfe19, 0xfe3f,
+ 0xfeaf, 0xff39, 0xffa8, 0x0012, 0x0066, 0x007e,
+ 0x0071, 0x005c, 0x0053, 0x004b, 0x0029, 0x0006,
+ 0xffe5, 0xffb2, 0xff99, 0xff98, 0xffa6, 0xfff9,
+ 0x006f, 0x00c4, 0x00fd, 0x00fb, 0x00c5, 0x0095,
+ 0x004b, 0xffeb, 0xffbc, 0xff9a, 0xff70, 0xff83,
+ 0xffd0, 0x0028, 0x0094, 0x010d, 0x0174, 0x01b3,
+ 0x01b8, 0x0174, 0x00e9, 0x004a, 0xffbf, 0xff46,
+ 0xff03, 0xff24, 0xff99, 0x002a, 0x00a1, 0x00d9,
+ 0x00e3, 0x00d9, 0x00c5, 0x00b8, 0x00bc, 0x00ca,
+ 0x00d5, 0x00e6, 0x010e, 0x013e, 0x017b, 0x01eb,
+ 0x0277, 0x02ec, 0x032f, 0x0343, 0x034a, 0x034b,
+ 0x031b, 0x02d8, 0x02c7, 0x02de, 0x0308, 0x0360,
+ 0x03d9, 0x0439, 0x0463, 0x0457, 0x03f0, 0x0335,
+ 0x0272, 0x01dd, 0x0181, 0x0155, 0x012c, 0x010c,
+ 0x0122, 0x0142, 0x0141, 0x012a, 0x00e4, 0x0082,
+ 0x0048, 0x001d, 0xffec, 0xffc3, 0xff88, 0xff42,
+ 0xff11, 0xfedd, 0xfeb9, 0xfec5, 0xfee2, 0xff01,
+ 0xff02, 0xfebb, 0xfe51, 0xfde0, 0xfd65, 0xfd0b,
+ 0xfccc, 0xfc8e, 0xfc6e, 0xfc60, 0xfc52, 0xfc50,
+ 0xfc32, 0xfbf0, 0xfbc0, 0xfb97, 0xfb66, 0xfb36,
+ 0xfae4, 0xfa88, 0xfa44, 0xf9f4, 0xf9a8, 0xf98a,
+ 0xf9a0, 0xf9f0, 0xfa3a, 0xfa3f, 0xfa14, 0xf9b1,
+ 0xf927, 0xf8b5, 0xf852, 0xf816, 0xf824, 0xf826,
+ 0xf801, 0xf7d2, 0xf773, 0xf70d, 0xf6d5, 0xf68a,
+ 0xf646, 0xf636, 0xf619, 0xf5d3, 0xf584, 0xf52e,
+ 0xf4c9, 0xf447, 0xf3d4, 0xf394, 0xf35e, 0xf34d,
+ 0xf391, 0xf3f8, 0xf47d, 0xf51e, 0xf59f, 0xf5ec,
+ 0xf5ff, 0xf5d0, 0xf58f, 0xf54b, 0xf50d, 0xf4f7,
+ 0xf4ee, 0xf4ed, 0xf509, 0xf520, 0xf522, 0xf50a,
+ 0xf4ca, 0xf473, 0xf3f8, 0xf35b, 0xf2db, 0xf271,
+ 0xf226, 0xf245, 0xf2b0, 0xf330, 0xf3c4, 0xf41e,
+ 0xf429, 0xf424, 0xf407, 0xf3d5, 0xf3c8, 0xf3dd,
+ 0xf40a, 0xf44f, 0xf486, 0xf4b6, 0xf4fb, 0xf53e,
+ 0xf571, 0xf5b3, 0xf5f6, 0xf606, 0xf5f9, 0xf608,
+ 0xf631, 0xf67f, 0xf709, 0xf7a2, 0xf820, 0xf895,
+ 0xf905, 0xf961, 0xf9b5, 0xfa0e, 0xfa70, 0xfad6,
+ 0xfb48, 0xfbb6, 0xfc00, 0xfc3c, 0xfc83, 0xfcb2,
+ 0xfccf, 0xfcfb, 0xfd1a, 0xfd21, 0xfd3b, 0xfd76,
+ 0xfdcb, 0xfe2e, 0xfe8e, 0xfedc, 0xff05, 0xff01,
+ 0xfee6, 0xfec5, 0xfeb9, 0xfed1, 0xfef0, 0xff05,
+ 0xff17, 0xff19, 0xff10, 0xff12, 0xff0c, 0xff0c,
+ 0xff32, 0xff59, 0xff54, 0xff45, 0xff44, 0xff56,
+ 0xff88, 0xffc9, 0x001c, 0x009c, 0x0129, 0x0198,
+ 0x01e8, 0x0223, 0x0279, 0x02e8, 0x0334, 0x037f,
+ 0x03dd, 0x0403, 0x03ff, 0x03ec, 0x03a2, 0x0354,
+ 0x032f, 0x0301, 0x02ed, 0x0308, 0x02ff, 0x02d6,
+ 0x02b5, 0x0284, 0x023f, 0x0201, 0x01e2, 0x01ee,
+ 0x01ff, 0x01f1, 0x01b7, 0x0147, 0x00a6, 0xffdd,
+ 0xff0d, 0xfe69, 0xfe06, 0xfdf7, 0xfe29, 0xfe47,
+ 0xfe3b, 0xfe11, 0xfdbd, 0xfd64, 0xfd12, 0xfca7,
+ 0xfc5a, 0xfc44, 0xfc3f, 0xfc6e, 0xfcc0, 0xfce6,
+ 0xfceb, 0xfcdd, 0xfcb9, 0xfca3, 0xfc88, 0xfc74,
+ 0xfc94, 0xfcba, 0xfce0, 0xfd29, 0xfd5c, 0xfd75,
+ 0xfda4, 0xfdc2, 0xfdba, 0xfda6, 0xfd9a, 0xfda0,
+ 0xfdb7, 0xfe00, 0xfe5b, 0xfe80, 0xfeb5, 0xfeff,
+ 0xfeea, 0xfecc, 0xfef1, 0xfeea, 0xfeea, 0xff30,
+ 0xff58, 0xff7d, 0xffbf, 0xffc3, 0xffbf, 0x0002,
+ 0x0046, 0x0088, 0x0127, 0x01f4, 0x0271, 0x02b1,
+ 0x02ea, 0x02d6, 0x0273, 0x0248, 0x025e, 0x0255,
+ 0x0237, 0x021d, 0x01ff, 0x0223, 0x0279, 0x0286,
+ 0x02a1, 0x0334, 0x037c, 0x0327, 0x02ee, 0x02cf,
+ 0x0284, 0x028d, 0x0315, 0x035c, 0x02c7, 0x0201,
+ 0x0237, 0x032b, 0x0409, 0x04ce, 0x051c, 0x045e,
+ 0x031d, 0x021d, 0x017e, 0x0125, 0x010c, 0x0181,
+ 0x029b, 0x038e, 0x03cb, 0x0425, 0x0539, 0x05ff,
+ 0x05d4, 0x05ab, 0x05cf, 0x05a5, 0x0546, 0x0519,
+ 0x0537, 0x0575, 0x05d8, 0x06ab, 0x073d, 0x0718,
+ 0x0742, 0x079a, 0x0792, 0x07ed, 0x0840, 0x0841,
+ 0x08c4, 0x08bc, 0x0816, 0x088a, 0x08e6, 0x0820,
+ 0x07d8, 0x0807, 0x07d1, 0x076d, 0x067a, 0x0506,
+ 0x03f7, 0x039f, 0x03fc, 0x04f9, 0x0622, 0x068d,
+ 0x0602, 0x056c, 0x04bd, 0x03aa, 0x0345, 0x038d,
+ 0x03d6, 0x040c, 0x0322, 0x015e, 0x009f, 0x0034,
+ 0xff4f, 0xff78, 0x00b2, 0x00ec, 0xffd2, 0xff50,
+ 0xff75, 0xfec1, 0xfecc, 0x0053, 0x0084, 0xffe9,
+ 0xffa7, 0xfdac, 0xfc24, 0xfdb4, 0xfebf, 0xfe2e,
+ 0xfedf, 0xffeb, 0xffa0, 0xffd4, 0x01cd, 0x0311,
+ 0x0229, 0x01ae, 0x01f0, 0x00e0, 0x002b, 0x00aa,
+ 0x0088, 0x00c3, 0x01e3, 0x0224, 0x0208, 0x0260,
+ 0x021b, 0x00d2, 0xff79, 0xfe9a, 0xfda2, 0xfd33,
+ 0xfe3c, 0xfef4, 0xfef1, 0xff43, 0xfe22, 0xfb7d,
+ 0xf9ab, 0xf950, 0xfb3e, 0xfe59, 0xffbe, 0x0011,
+ 0xff50, 0xfcba, 0xfb72, 0xfc09, 0xfcdf, 0xfee7,
+ 0x0063, 0xffa4, 0xff0a, 0xfe7a, 0xfd18, 0xfd04,
+ 0xfdd9, 0xfda3, 0xfdd1, 0xff82, 0x006a, 0xffa7,
+ 0xfe7e, 0xfc23, 0xfa09, 0xfc0a, 0xff8c, 0x01a5,
+ 0x0383, 0x0247, 0xfeff, 0xff1a, 0xfeaf, 0xfcd8,
+ 0xff98, 0x0218, 0x006c, 0x0078, 0x01b4, 0x01c8,
+ 0x029f, 0x01d6, 0xff4d, 0xfea2, 0xfe32, 0xfda2,
+ 0xffea, 0x01ad, 0xfe6b, 0xfb0e, 0xfd55, 0x0040,
+ 0xff55, 0x0036, 0x045a, 0x0539, 0x02d1, 0x0207,
+ 0x020e, 0x006f, 0x0000, 0x0234, 0x0221, 0x000d,
+ 0x014f, 0x0261, 0x005a, 0x00b8, 0x03db, 0x073a,
+ 0x0a11, 0x096e, 0x0785, 0x069e, 0x0413, 0x04ef,
+ 0x09ce, 0x091d, 0x06d8, 0x08df, 0x07ef, 0x059c,
+ 0x07b1, 0x0884, 0x0659, 0x0541, 0x0473, 0x03c8,
+ 0x04ee, 0x06d0, 0x086f, 0x09cc, 0x08e2, 0x0530,
+ 0x03b5, 0x05cd, 0x063f, 0x0608, 0x08bb, 0x0a2b,
+ 0x08ac, 0x083e, 0x08c1, 0x07e6, 0x063c, 0x04e5,
+ 0x02ff, 0x01b2, 0x0482, 0x074f, 0x0675, 0x084c,
+ 0x09e7, 0x0531, 0x041a, 0x07f3, 0x0811, 0x09ec,
+ 0x0db4, 0x0b3c, 0x0736, 0x040b, 0xff7e, 0xff2c,
+ 0x0285, 0x055f, 0x08d7, 0x08fc, 0x0519, 0x0452,
+ 0x062b, 0x075e, 0x0955, 0x0a8e, 0x0933, 0x0770,
+ 0x0668, 0x0581, 0x0532, 0x0569, 0x05a3, 0x0736,
+ 0x0918, 0x0874, 0x073d, 0x059e, 0x0230, 0x02be,
+ 0x073c, 0x0864, 0x0748, 0x043f, 0xfe6a, 0xfc0f,
+ 0xfc5f, 0xfd7a, 0x032f, 0x0665, 0x04b5, 0x0616,
+ 0x0477, 0xfef0, 0x011b, 0x04e7, 0x0385, 0x04bd,
+ 0x0631, 0x021d, 0xfdd5, 0xfc28, 0xfb61, 0xfbdf,
+ 0xfd92, 0xfe54, 0xfdda, 0xff97, 0x0278, 0x01ee,
+ 0x012a, 0x024c, 0x0040, 0xfc81, 0xfcac, 0xff5e,
+ 0x0129, 0x01dd, 0x0161, 0xff1b, 0xfd38, 0xfc93,
+ 0xfaf8, 0xfbf3, 0xff7c, 0xfd42, 0xfae1, 0xfec0,
+ 0xfe55, 0xfc91, 0x01fe, 0x02a3, 0xfce8, 0xfba6,
+ 0xfc05, 0xfd7a, 0x0283, 0x0593, 0x060b, 0x0376,
+ 0xfda6, 0xfd22, 0xff64, 0xfc04, 0xfa2e, 0xfcf7,
+ 0xfc08, 0xf8d5, 0xf9d1, 0xfbc5, 0xfafb, 0xfd0a,
+ 0x02d3, 0x02bd, 0xfe4e, 0xff70, 0x00df, 0xfb43,
+ 0xf6e8, 0xfae1, 0xffb5, 0xfdd4, 0xfa74, 0xf95b,
+ 0xf676, 0xf5d4, 0xfa61, 0xfce8, 0xfe2e, 0xff46,
+ 0xfd02, 0xfebb, 0x023f, 0xfdc5, 0xfacf, 0xfc3d,
+ 0xf907, 0xf92b, 0xffd0, 0x034e, 0x0512, 0x045f,
+ 0xfcd1, 0xf6d6, 0xf73b, 0xf92b, 0xfc8d, 0x012c,
+ 0x0255, 0x0094, 0x00a8, 0x0071, 0xfd29, 0xfc15,
+ 0xfd56, 0xfd76, 0x00e3, 0x053f, 0x0457, 0x029b,
+ 0xffee, 0xfb5e, 0xfcf1, 0x027c, 0x0669, 0x0b35,
+ 0x0ca7, 0x0764, 0x00b2, 0xfbab, 0xfb42, 0xfe97,
+ 0x002e, 0x017e, 0x02c1, 0x0094, 0xfe0c, 0xfccf,
+ 0xfb78, 0xfb76, 0xfcfc, 0xfee6, 0xffa4, 0xffa8,
+ 0x0140, 0x0129, 0xff3d, 0xffe1, 0xfe73, 0xfaee,
+ 0xfc45, 0xfd41, 0xfbd2, 0xffb8, 0x04ea, 0x03c7,
+ 0x007c, 0x00f9, 0x01d5, 0xfe11, 0xfc94, 0xfff0,
+ 0xfd28, 0xf869, 0xfbad, 0xfe5d, 0xfed2, 0x026f,
+ 0x01cc, 0xfdf2, 0xff63, 0x01b0, 0x0198, 0x038c,
+ 0x06e3, 0x05d6, 0x0002, 0xfccb, 0xfcab, 0xfaaf,
+ 0xfb70, 0xffe1, 0x01ef, 0x0349, 0x034f, 0xffea,
+ 0xff83, 0x01bf, 0x021a, 0x0444, 0x0890, 0x0a11,
+ 0x072d, 0x01da, 0xfd09, 0xf96c, 0xf89a, 0xfab6,
+ 0xfb09, 0xfaeb, 0xfb46, 0xf7ce, 0xf72f, 0xfb48,
+ 0xf96c, 0xf60f, 0xf758, 0xf600, 0xf33d, 0xf2dd,
+ 0xf326, 0xf611, 0xf90f, 0xf9d4, 0xfc6c, 0xfdbb,
+ 0xfa5f, 0xf5be, 0xf1b1, 0xef1e, 0xec91, 0xea83,
+ 0xed42, 0xefc0, 0xeffd, 0xf708, 0x000b, 0x0073,
+ 0xfd8c, 0xfcf9, 0xfab8, 0xf29f, 0xe671, 0xdb6c,
+ 0xd20f, 0xc951, 0xc452, 0xc657, 0xd090, 0xdd5f,
+ 0xe5fb, 0xeb9d, 0xea7c, 0xe05e, 0xdaf9, 0xde65,
+ 0xe0cb, 0xe0fa, 0xe158, 0xe309, 0xe550, 0xe5b2,
+ 0xeab6, 0xf33d, 0xf38f, 0xf34e, 0xf99d, 0xfb4d,
+ 0xf8b7, 0xf7c6, 0xf61a, 0xf506, 0xf358, 0xf03d,
+ 0xf023, 0xf081, 0xf31a, 0xfd08, 0x0609, 0x0a9c,
+ 0x0def, 0x0ae9, 0x03eb, 0x00cd, 0xfff5, 0x0269,
+ 0x09f6, 0x0f32, 0x1046, 0x11ed, 0x10cd, 0x0d22,
+ 0x0fd8, 0x12bd, 0x0e05, 0x0f4f, 0x14ac, 0x0ead,
+ 0x0bd7, 0x123f, 0x1014, 0x0e8c, 0x15ff, 0x1804,
+ 0x197c, 0x1dda, 0x1b4a, 0x18e9, 0x1658, 0x0de3,
+ 0x0c27, 0x0e05, 0x0a7d, 0x0d26, 0x1440, 0x176e,
+ 0x1d17, 0x2173, 0x1f0e, 0x1c8f, 0x19a3, 0x1693,
+ 0x1858, 0x1863, 0x138e, 0x12c3, 0x14e9, 0x13df,
+ 0x15ce, 0x1c2a, 0x1ece, 0x2066, 0x2314, 0x205c,
+ 0x1d63, 0x1e6c, 0x1ca1, 0x1864, 0x1193, 0x0b36,
+ 0x1027, 0x1406, 0x0d2a, 0x0e53, 0x1385, 0x1069,
+ 0x140f, 0x1aa6, 0x16e3, 0x1449, 0x124d, 0x0a72,
+ 0x07e4, 0x0af4, 0x0b5a, 0x0868, 0x055a, 0x0a8c,
+ 0x12a4, 0x1023, 0x0d58, 0x0f83, 0x07f3, 0xfe1b,
+ 0xffd1, 0x0210, 0x02ba, 0x09fb, 0x09ab, 0xfe30,
+ 0xfe33, 0x04a4, 0x00bd, 0x033d, 0x0b65, 0x01e1,
+ 0xf680, 0xfa54, 0xfeef, 0x0163, 0xfed6, 0xf16a,
+ 0xecdd, 0xf5ea, 0xfb40, 0x016f, 0x0b00, 0x092a,
+ 0xfb6e, 0xee40, 0xea4e, 0xebde, 0xec7d, 0xf56e,
+ 0x0507, 0x067b, 0xff81, 0x0267, 0x03b8, 0xfa3c,
+ 0xf6a4, 0xfb5d, 0xf74d, 0xeecc, 0xf052, 0xf425,
+ 0xf3ec, 0xf3a4, 0xf039, 0xf116, 0xfccb, 0x02f1,
+ 0x006e, 0xfdd2, 0xf512, 0xebcd, 0xec1f, 0xf0ae,
+ 0xf8a4, 0xfe26, 0xfacc, 0xfa2e, 0xf918, 0xf351,
+ 0xfc71, 0x0ade, 0x08fd, 0x071a, 0x07fd, 0x0048,
+ 0x01cc, 0x08a9, 0x005d, 0xff95, 0x0aab, 0x0250,
+ 0xf9bb, 0x047a, 0x012d, 0xf9e4, 0x0799, 0x046b,
+ 0xf420, 0xfba8, 0xf837, 0xe570, 0xebd5, 0xed80,
+ 0xe514, 0xf982, 0x0122, 0xeaa2, 0xebd1, 0xf293,
+ 0xe999, 0xf7b0, 0x0594, 0xf42d, 0xedee, 0xf865,
+ 0xf1ee, 0xe70e, 0xecd3, 0xfe6e, 0x0a0b, 0xfe11,
+ 0xecff, 0xef57, 0xf19c, 0xef22, 0xfab7, 0xfb20,
+ 0xe3a4, 0xdcc6, 0xe886, 0xe8d2, 0xe50c, 0xe7c2,
+ 0xeb1b, 0xea7a, 0xe7b1, 0xf844, 0x0d64, 0xf799,
+ 0xdf6b, 0xeff6, 0xebb5, 0xd582, 0xe7f8, 0xeca3,
+ 0xc4bb, 0xaf39, 0xaaf2, 0xa7fd, 0xc07d, 0xdf3d,
+ 0xfa39, 0x1ec2, 0x1ebc, 0xff73, 0xfff2, 0xfc6d,
+ 0xdcf0, 0xe3cc, 0xf6e2, 0xdce0, 0xd022, 0xda78,
+ 0xc26d, 0xb384, 0xd05f, 0xe053, 0xe569, 0x04f9,
+ 0x2067, 0x174a, 0xf6b2, 0xde0c, 0xda4c, 0xd3a2,
+ 0xcacd, 0xd9ac, 0xe9e4, 0xe633, 0xe673, 0xf141,
+ 0xf6e1, 0xf119, 0xe90e, 0xeba4, 0xe9ff, 0xdf67,
+ 0xe73e, 0xf01f, 0xe299, 0xe52a, 0xfb3e, 0xfefe,
+ 0x0133, 0x102f, 0x0dd0, 0x02c4, 0x0dd8, 0x14a7,
+ 0xfee6, 0xf5a0, 0x0318, 0xf84a, 0xe4b0, 0xefbe,
+ 0xf7cf, 0xf17c, 0xfca7, 0x0a06, 0x0f9c, 0x1d2b,
+ 0x1d49, 0x09ea, 0xffca, 0xfcc3, 0xf709, 0xfaa5,
+ 0x05ba, 0x072b, 0x019c, 0x07b8, 0x0ecc, 0x0353,
+ 0xfd10, 0x0367, 0xfd9c, 0x02eb, 0x1d92, 0x1cfc,
+ 0x0951, 0x0b6c, 0x0e09, 0x0742, 0x0f7f, 0x1a5c,
+ 0x1576, 0x0e90, 0x104c, 0x1404, 0x15ed, 0x1e38,
+ 0x2a84, 0x2c9f, 0x2ca4, 0x3073, 0x2530, 0x1119,
+ 0x0800, 0x044c, 0x082e, 0x15f8, 0x1c08, 0x1a33,
+ 0x15ab, 0x0eb7, 0x1981, 0x30b0, 0x35ca, 0x3222,
+ 0x3388, 0x30e6, 0x2f6d, 0x31c3, 0x33c1, 0x36a6,
+ 0x3316, 0x3619, 0x4d7e, 0x5948, 0x50db, 0x4e8a,
+ 0x4cc7, 0x4690, 0x42ba, 0x3f63, 0x499c, 0x540e,
+ 0x460d, 0x4442, 0x55a5, 0x4999, 0x30e7, 0x30d5,
+ 0x36ff, 0x33cd, 0x2876, 0x18fb, 0x0c6d, 0xfce1,
+ 0xf2ac, 0x00c6, 0x1927, 0x23e6, 0x1c97, 0x160b,
+ 0x203b, 0x1e96, 0x0b5d, 0x1193, 0x1e5b, 0x0c3e,
+ 0xff69, 0x06a7, 0x041a, 0xfa68, 0xf6fc, 0xfb70,
+ 0x02d2, 0x0045, 0xfaee, 0xfec0, 0x05d1, 0x0cf6,
+ 0x0efc, 0x0fd6, 0x15c4, 0x0752, 0xf00b, 0xfd3e,
+ 0x0fc9, 0x06fd, 0x031c, 0xfec7, 0xead3, 0xe28c,
+ 0xe43c, 0xe905, 0xf88e, 0xf974, 0xecb5, 0xef8f,
+ 0xeffb, 0xe523, 0xe7a4, 0xed11, 0xe2d3, 0xd901,
+ 0xe02e, 0xea87, 0xe56d, 0xe5d5, 0xf6b2, 0xf118,
+ 0xdbec, 0xdef6, 0xdfbd, 0xd19d, 0xd726, 0xe1c5,
+ 0xdc24, 0xd6b5, 0xd1d5, 0xce8a, 0xd22c, 0xd0df,
+ 0xd24e, 0xd9e8, 0xd21a, 0xc289, 0xbd15, 0xbc03,
+ 0xba7b, 0xb551, 0xb017, 0xae6f, 0xa398, 0x9949,
+ 0x9e94, 0xa2ff, 0xa835, 0xaf9c, 0xa58c, 0xa420,
+ 0xb888, 0xba18, 0xb8ac, 0xd092, 0xd74c, 0xc242,
+ 0xb468, 0xad7f, 0xa5a8, 0xa3b1, 0xaa63, 0xb4f5,
+ 0xb77f, 0xb785, 0xbb3e, 0xb309, 0xaba1, 0xb450,
+ 0xb5e8, 0xb6d7, 0xc51a, 0xc7a5, 0xc57d, 0xce4e,
+ 0xcd3f, 0xc8cc, 0xc857, 0xbba4, 0xb7fc, 0xc45f,
+ 0xc2c4, 0xc100, 0xcba2, 0xc53d, 0xb6a6, 0xc2ca,
+ 0xda7b, 0xd691, 0xc0a7, 0xc0ad, 0xc9a9, 0xc0ba,
+ 0xc524, 0xd958, 0xd6b3, 0xd1e0, 0xdcc4, 0xdbc1,
+ 0xd8d7, 0xddb1, 0xd6b4, 0xd40f, 0xdf4e, 0xe1ac,
+ 0xe00a, 0xe52f, 0xe895, 0xe74e, 0xe29e, 0xe027,
+ 0xe049, 0xde47, 0xe4f1, 0xed2a, 0xe626, 0xe20e,
+ 0xe291, 0xdc95, 0xe3fb, 0xec79, 0xe8cb, 0xfd08,
+ 0x1343, 0x02e5, 0xf799, 0xfd8c, 0xf2f5, 0xee55,
+ 0xf7db, 0xf3b5, 0xeed7, 0xf698, 0xfce9, 0xfc25,
+ 0xf8c3, 0xfdf5, 0x043a, 0xfa6f, 0xf9d0, 0x0e1b,
+ 0x12f3, 0x0893, 0x0ae8, 0x169d, 0x1faf, 0x1c4b,
+ 0x0ca9, 0x03f0, 0x0765, 0x123a, 0x203d, 0x2382,
+ 0x20e2, 0x240b, 0x232d, 0x214c, 0x236c, 0x20b4,
+ 0x235b, 0x2a93, 0x26ae, 0x2585, 0x28d3, 0x2124,
+ 0x1b32, 0x1cd0, 0x21e7, 0x2dd4, 0x2f13, 0x27d6,
+ 0x3152, 0x38af, 0x2c94, 0x2054, 0x1f3a, 0x2e20,
+ 0x3a18, 0x2db4, 0x2e1e, 0x3df3, 0x2df8, 0x1fd4,
+ 0x30cf, 0x32f1, 0x3327, 0x444d, 0x31fa, 0x0fd4,
+ 0x1d3d, 0x39fa, 0x3d36, 0x395e, 0x34e5, 0x2b1b,
+ 0x2749, 0x28b5, 0x2832, 0x33cc, 0x4ce3, 0x525d,
+ 0x43fe, 0x4292, 0x3ea9, 0x2a29, 0x2a88, 0x3d88,
+ 0x4284, 0x4307, 0x4223, 0x3a94, 0x418b, 0x4f3d,
+ 0x475b, 0x33c4, 0x2af4, 0x30a9, 0x3bcb, 0x47fc,
+ 0x5409, 0x4d4a, 0x3b18, 0x3d35, 0x3c0f, 0x306e,
+ 0x47ba, 0x5a86, 0x3f42, 0x4022, 0x61dd, 0x5894,
+ 0x4054, 0x447c, 0x4878, 0x4835, 0x47f2, 0x39ec,
+ 0x3390, 0x456f, 0x54b0, 0x4c62, 0x38b1, 0x3172,
+ 0x3a39, 0x45e5, 0x4f67, 0x550c, 0x54fd, 0x4c06,
+ 0x3af5, 0x3751, 0x41b4, 0x42a4, 0x47cb, 0x4f0a,
+ 0x3c28, 0x32dc, 0x421f, 0x3d0b, 0x39ca, 0x4bed,
+ 0x4690, 0x33c6, 0x2d3a, 0x2cd6, 0x3d1e, 0x3d64,
+ 0x2312, 0x3238, 0x494b, 0x3006, 0x3031, 0x4b08,
+ 0x430f, 0x4443, 0x51dd, 0x426d, 0x3b6e, 0x4066,
+ 0x3e30, 0x4ad8, 0x4b91, 0x3dcd, 0x498d, 0x4414,
+ 0x263f, 0x2d4c, 0x383c, 0x29a8, 0x30e6, 0x437a,
+ 0x43b3, 0x43c0, 0x4504, 0x3c3b, 0x2df9, 0x28e1,
+ 0x310b, 0x2e60, 0x298d, 0x39fe, 0x3a3a, 0x2ab2,
+ 0x358c, 0x354f, 0x1f34, 0x276c, 0x367a, 0x3418,
+ 0x381b, 0x2c0f, 0x1449, 0x182d, 0x1b52, 0x1251,
+ 0x1d21, 0x27b6, 0x1e9c, 0x157a, 0x14b7, 0x192e,
+ 0x1667, 0x1226, 0x22ba, 0x2697, 0x0db0, 0x11d5,
+ 0x24d6, 0x0fc6, 0x0101, 0x1614, 0x1cf7, 0x16aa,
+ 0x1ac8, 0x1080, 0xfcbe, 0x030c, 0x1662, 0x1a6a,
+ 0x1662, 0x12c0, 0x0ee0, 0x163b, 0x2174, 0x187b,
+ 0x0a6a, 0x0a2b, 0x017e, 0xf242, 0xfb3a, 0x0f4b,
+ 0x1255, 0x0cd1, 0x09d6, 0x03d2, 0xfe4e, 0x00fd,
+ 0xff20, 0xf1d5, 0xf083, 0xfa6e, 0xf477, 0xee32,
+ 0xf7fa, 0xfad9, 0xfaf1, 0xff99, 0xf442, 0xeb8a,
+ 0xf624, 0xf9d3, 0xff2a, 0x0e0b, 0x04f4, 0xf0e4,
+ 0xf24e, 0xf842, 0xf705, 0xf719, 0xfb55, 0x02a7,
+ 0xff01, 0xf0b4, 0xe9ae, 0xe6ac, 0xea69, 0xf363,
+ 0xe780, 0xdfe2, 0xf75e, 0xf883, 0xdd50, 0xdca2,
+ 0xe3e8, 0xdcd0, 0xe4e7, 0xe82f, 0xd197, 0xd430,
+ 0xf5c8, 0xf6f1, 0xdbdd, 0xdb4e, 0xe7e7, 0xdfd6,
+ 0xd5b8, 0xd8e7, 0xe5ac, 0xf407, 0xeb90, 0xde38,
+ 0xecfb, 0xefd0, 0xdfb4, 0xe73c, 0xe630, 0xda04,
+ 0xef70, 0xf1b0, 0xd6b0, 0xe27e, 0xe818, 0xd148,
+ 0xe4e0, 0xf8cf, 0xdc40, 0xcc5c, 0xd49e, 0xe089,
+ 0xee57, 0xe316, 0xd969, 0xe7be, 0xd653, 0xbfe4,
+ 0xd902, 0xe13b, 0xcebc, 0xdfce, 0xedab, 0xd2c8,
+ 0xce98, 0xf372, 0xfc2b, 0xdbdb, 0xd3f1, 0xe730,
+ 0xe320, 0xd753, 0xd616, 0xce8c, 0xd444, 0xd9ec,
+ 0xc283, 0xc4dd, 0xe393, 0xe68a, 0xeda2, 0xf648,
+ 0xd535, 0xc9b6, 0xe018, 0xd605, 0xd061, 0xdf93,
+ 0xcedc, 0xc457, 0xd7e6, 0xd5f7, 0xce5d, 0xdb26,
+ 0xde16, 0xd540, 0xce78, 0xcc0e, 0xd4c4, 0xd9da,
+ 0xd3a9, 0xd558, 0xdb5f, 0xda74, 0xd868, 0xd511,
+ 0xd169, 0xd32a, 0xdb8d, 0xe6da, 0xe28f, 0xce44,
+ 0xcc2f, 0xdd00, 0xe282, 0xe118, 0xe376, 0xe187,
+ 0xe22a, 0xe6e0, 0xde81, 0xd25e, 0xd504, 0xd6ee,
+ 0xcf0b, 0xcfc3, 0xdac9, 0xe6ce, 0xf077, 0xe8dc,
+ 0xd604, 0xd46d, 0xda44, 0xd9f4, 0xdf35, 0xdbfb,
+ 0xd556, 0xe746, 0xea45, 0xd1c9, 0xdbed, 0xee23,
+ 0xd8f9, 0xd51d, 0xe072, 0xc96c, 0xc3d7, 0xdada,
+ 0xd7ea, 0xdf78, 0xfc06, 0xf221, 0xe466, 0xf288,
+ 0xed06, 0xe8ce, 0xf6a9, 0xe333, 0xd344, 0xea20,
+ 0xe35e, 0xd3b9, 0xf29a, 0xf597, 0xd4f1, 0xe3ca,
+ 0xf4b5, 0xddb0, 0xe7f4, 0x017e, 0xeacd, 0xdbb5,
+ 0xe972, 0xda0e, 0xcc85, 0xe809, 0xf298, 0xe343,
+ 0xe8c4, 0xed31, 0xe694, 0xf2ae, 0xf02f, 0xdd17,
+ 0xf1d2, 0xfcb4, 0xd440, 0xcff8, 0xed53, 0xe44a,
+ 0xe36f, 0xf5f3, 0xe72a, 0xe5da, 0xfd55, 0xf2b5,
+ 0xee7b, 0x04f6, 0xf6a6, 0xda82, 0xde88, 0xe950,
+ 0xf3d2, 0xfcef, 0xf8e0, 0xfb55, 0x0035, 0xf7d7,
+ 0xf825, 0xfcc3, 0xf36f, 0xed4f, 0xed59, 0xedd8,
+ 0xf937, 0x05f3, 0x06f9, 0xfeac, 0xf014, 0xea2a,
+ 0xefda, 0xeb8a, 0xe23a, 0xe75b, 0xf1f7, 0xf793,
+ 0xfb42, 0xf6f4, 0xe962, 0xefad, 0x1225, 0x1aa8,
+ 0xfcfb, 0xf74f, 0x05ea, 0x0220, 0x08a0, 0x0e9a,
+ 0xf2dc, 0xeb1b, 0xfeb2, 0xfd98, 0x06ab, 0x158d,
+ 0xfe00, 0xf66e, 0x0b6a, 0x0291, 0xfe64, 0x0e50,
+ 0x0252, 0xfbf7, 0x0821, 0xf843, 0xefc7, 0x024f,
+ 0x019b, 0x02b4, 0x1452, 0x0c94, 0xfd76, 0x0469,
+ 0x0f67, 0x1a94, 0x1a23, 0x01cc, 0xf478, 0xfcbb,
+ 0xfef1, 0xfce2, 0xffee, 0x02e4, 0x0061, 0xf3fe,
+ 0xede3, 0xfb1c, 0x0715, 0x086f, 0x0472, 0xf88c,
+ 0xf1f6, 0xf60c, 0xf9f9, 0x06b2, 0x1107, 0x0131,
+ 0xf632, 0x03f9, 0x089e, 0x0057, 0x024c, 0x091e,
+ 0x069b, 0xfc34, 0xf964, 0x013e, 0x02a6, 0x011a,
+ 0x0104, 0xf5cd, 0xf4c2, 0x036f, 0xfab3, 0xefb4,
+ 0x033c, 0x0a0b, 0xfaae, 0xf438, 0xea54, 0xe546,
+ 0xf79f, 0xfe54, 0xf0d2, 0xeaee, 0xec8c, 0xf2c5,
+ 0xf855, 0xf41d, 0xf43d, 0xf6a5, 0xf3d1, 0xfd07,
+ 0x039b, 0xf8ab, 0xf50f, 0xf08c, 0xe4ab, 0xee85,
+ 0xf68b, 0xea4f, 0xf488, 0x0615, 0xf91e, 0xf4a7,
+ 0x02c3, 0xf788, 0xe552, 0xf160, 0xfafd, 0xeb02,
+ 0xe99d, 0xfaf0, 0xf4da, 0xe6a5, 0xeb2a, 0xed40,
+ 0xf529, 0x0431, 0xf6ee, 0xf0ef, 0x054f, 0xfa9a,
+ 0xf44f, 0x12a3, 0x03f4, 0xe336, 0xf648, 0xf72b,
+ 0xe126, 0xf43c, 0x0304, 0xfbc6, 0xfb84, 0xeaf3,
+ 0xe8f2, 0x098e, 0x06cb, 0xf0f4, 0xfdd7, 0x025a,
+ 0xf0b6, 0xebb2, 0xf5ee, 0x0975, 0x0e44, 0xfe64,
+ 0xfeea, 0x0312, 0xfa0d, 0x04d7, 0x132a, 0x0e28,
+ 0x0ec8, 0x08e1, 0xf7d6, 0xff68, 0x0ef0, 0x0a19,
+ 0x03f7, 0x06f6, 0x062f, 0xfb0b, 0xf8ad, 0x0865,
+ 0x0968, 0x05db, 0x1956, 0x1152, 0xf3bc, 0x02ae,
+ 0x12ad, 0x092c, 0x12ac, 0x0b5a, 0xf77b, 0x13f2,
+ 0x2421, 0x0f63, 0x1c44, 0x2711, 0x0a4b, 0xfc37,
+ 0x053f, 0x134a, 0x16e7, 0x023a, 0x03d9, 0x17af,
+ 0x0647, 0xfe81, 0x10d9, 0x07ff, 0x0a82, 0x1cc4,
+ 0x0a1a, 0x07ee, 0x201b, 0x109e, 0x017d, 0x0fc7,
+ 0x10a9, 0x0dcd, 0x099c, 0xfd16, 0x0a4b, 0x1d9c,
+ 0x19c0, 0x16cb, 0x132d, 0x120c, 0x1c74, 0x16c8,
+ 0x1505, 0x2089, 0x0668, 0xef8d, 0x07b9, 0x0b4e,
+ 0x00be, 0x1802, 0x20b1, 0x1498, 0x171e, 0x110d,
+ 0x0c3c, 0x1b3d, 0x1b41, 0x144b, 0x1a32, 0x1439,
+ 0x0d58, 0x1786, 0x1aac, 0x1591, 0x16e2, 0x1a4f,
+ 0x1edb, 0x1efe, 0x16b0, 0x190b, 0x2be1, 0x3428,
+ 0x21f8, 0x0dc6, 0x0f0e, 0x1531, 0x1729, 0x24f2,
+ 0x2ee3, 0x24cc, 0x20f4, 0x2789, 0x234c, 0x1e04,
+ 0x22d4, 0x26d9, 0x25a9, 0x1fde, 0x1928, 0x1f49,
+ 0x31d9, 0x3bdf, 0x3a2d, 0x3cad, 0x38b8, 0x23f0,
+ 0x2082, 0x2ec4, 0x20bc, 0x11e2, 0x2b59, 0x34b8,
+ 0x1c66, 0x2523, 0x4453, 0x4551, 0x3ac5, 0x3555,
+ 0x29db, 0x260a, 0x2bb3, 0x2a83, 0x2991, 0x2e2b,
+ 0x2f7c, 0x303b, 0x3200, 0x2f22, 0x2fd3, 0x39dd,
+ 0x3dca, 0x3525, 0x2b9e, 0x24bb, 0x2525, 0x31bb,
+ 0x3717, 0x2da8, 0x2700, 0x209b, 0x1d2f, 0x29f1,
+ 0x2cf6, 0x2384, 0x30bd, 0x3a32, 0x28ec, 0x2731,
+ 0x2c53, 0x1d67, 0x1f77, 0x29fe, 0x1940, 0x15a1,
+ 0x27e9, 0x2315, 0x19b4, 0x2118, 0x1e60, 0x150d,
+ 0x149f, 0x17a8, 0x1f56, 0x231b, 0x19b1, 0x0f63,
+ 0x080e, 0x061b, 0x15ae, 0x2455, 0x155e, 0x02c2,
+ 0x11c5, 0x2298, 0x1251, 0x0620, 0x1099, 0x0df9,
+ 0x0518, 0x0cb3, 0x06ec, 0xf0e4, 0xf4c8, 0x0bdb,
+ 0x15fd, 0x1436, 0x0520, 0xf18b, 0xfce1, 0x137f,
+ 0x0673, 0xf639, 0x03d6, 0x085f, 0xfdaa, 0x04f4,
+ 0x115e, 0x0d13, 0x03d8, 0x00a2, 0xfd6a, 0xf60c,
+ 0xf8bb, 0x0762, 0x07f9, 0xfd2d, 0xfe37, 0xfe5d,
+ 0xf866, 0xfdb8, 0xfc99, 0xf2e9, 0x02de, 0x0cbe,
+ 0xeeb6, 0xe349, 0xfbe4, 0x0714, 0x09d5, 0x169f,
+ 0x158d, 0xfeca, 0xf31c, 0x0054, 0x0387, 0xf864,
+ 0xfcc0, 0x040b, 0x029e, 0x029f, 0xfe8f, 0xfa23,
+ 0xff15, 0x09cf, 0x0725, 0xef23, 0xeac0, 0x03d1,
+ 0x0ca4, 0x0318, 0x0112, 0x0841, 0x09a2, 0x004f,
+ 0x017e, 0x07d9, 0x04bf, 0x09c8, 0x0f26, 0x0e40,
+ 0x1390, 0x0c38, 0x0229, 0x111d, 0x16b2, 0x04d0,
+ 0x05a7, 0x0efb, 0x022a, 0x03e9, 0x17e1, 0x13cc,
+ 0x0a9b, 0x081a, 0x055b, 0x134c, 0x14b6, 0x096e,
+ 0x11ba, 0x0c52, 0x056e, 0x1514, 0x0fb7, 0x0489,
+ 0x0a94, 0x0704, 0x0290, 0x0a97, 0x13ea, 0x0e8b,
+ 0xff91, 0xffb0, 0x036e, 0x04a9, 0x0b9c, 0x03df,
+ 0xfb47, 0x06bf, 0x0cc6, 0x0455, 0x02a9, 0x0a96,
+ 0x0141, 0xf733, 0x0d0d, 0x0f92, 0xf52e, 0xf818,
+ 0x05bd, 0x074f, 0x0898, 0x0228, 0xff3d, 0x0481,
+ 0x0365, 0xfe33, 0xfdfd, 0x00d0, 0xfb1b, 0xf8a4,
+ 0xfa60, 0xf2f7, 0xfa1f, 0xff2e, 0xf0de, 0xf342,
+ 0xf4cb, 0xefb1, 0xee3d, 0xdeaa, 0xf00e, 0x0ba5,
+ 0xf39d, 0xee87, 0xfc0d, 0xebe6, 0xee81, 0xf942,
+ 0xf288, 0xf49a, 0xf3d8, 0xec76, 0xeeb7, 0xf5f3,
+ 0xf6ab, 0xf51e, 0xfe1d, 0xfea4, 0xf11c, 0xefa7,
+ 0xf888, 0xf975, 0xe953, 0xe1ff, 0xed52, 0xe6e1,
+ 0xe53c, 0xef76, 0xe1be, 0xe106, 0xe8b6, 0xdec4,
+ 0xe8a2, 0xed53, 0xdee6, 0xe41b, 0xeb53, 0xe323,
+ 0xd848, 0xdae6, 0xdfec, 0xd44a, 0xdaf6, 0xe5e3,
+ 0xda0b, 0xe264, 0xe9eb, 0xe2fc, 0xe7a0, 0xd724,
+ 0xcb3c, 0xdc5c, 0xda49, 0xd234, 0xd6e3, 0xdcc6,
+ 0xe196, 0xd901, 0xd3a4, 0xd8a6, 0xd9b8, 0xde1a,
+ 0xda7d, 0xd0c3, 0xd7be, 0xe599, 0xe6cf, 0xde5f,
+ 0xdbfa, 0xd0e6, 0xc65b, 0xdf69, 0xe7c1, 0xd549,
+ 0xdcd0, 0xd5fd, 0xc55d, 0xd7c0, 0xe47a, 0xdc11,
+ 0xd0cb, 0xd5ba, 0xe1b7, 0xce94, 0xcdaa, 0xe71a,
+ 0xd967, 0xd0b3, 0xe13d, 0xde00, 0xda24, 0xe3f6,
+ 0xeaea, 0xdcec, 0xcdd0, 0xddeb, 0xdf50, 0xd00e,
+ 0xe010, 0xe932, 0xd932, 0xd3b6, 0xdc5f, 0xe0fc,
+ 0xdf5c, 0xeac8, 0xe995, 0xcfb1, 0xcf97, 0xd7b1,
+ 0xd2d9, 0xdef9, 0xe3a7, 0xd191, 0xc547, 0xd0ba,
+ 0xe16e, 0xd960, 0xde7d, 0xefe3, 0xdb22, 0xd1d8,
+ 0xe1dd, 0xdc70, 0xdb17, 0xe419, 0xde86, 0xcff4,
+ 0xce33, 0xdde3, 0xde2e, 0xdcc9, 0xe97e, 0xe270,
+ 0xdd43, 0xdbb6, 0xcbfb, 0xd585, 0xe7b0, 0xe992,
+ 0xe361, 0xd208, 0xd840, 0xe34d, 0xd606, 0xe24f,
+ 0xeda0, 0xd801, 0xd22e, 0xd9aa, 0xdbc3, 0xe022,
+ 0xe0f1, 0xd75b, 0xcebf, 0xdb21, 0xe619, 0xe1f4,
+ 0xe3a6, 0xde21, 0xd9a5, 0xde18, 0xd6a3, 0xd913,
+ 0xdbc0, 0xd2e8, 0xdf72, 0xe394, 0xd13e, 0xd064,
+ 0xdcdc, 0xdaf1, 0xca03, 0xd0a7, 0xdd0d, 0xc6a8,
+ 0xc90f, 0xd901, 0xc7aa, 0xd385, 0xe47c, 0xd212,
+ 0xd3e4, 0xd894, 0xc9d4, 0xc6fb, 0xd07e, 0xd8b4,
+ 0xd20b, 0xcd08, 0xd523, 0xd388, 0xcd68, 0xc65a,
+ 0xc592, 0xcbda, 0xbb0d, 0xb5cc, 0xcd28, 0xcfbb,
+ 0xc90f, 0xc5cd, 0xbf7e, 0xc888, 0xcca6, 0xbe39,
+ 0xbe45, 0xd012, 0xc88c, 0xb5c1, 0xcd30, 0xd6b9,
+ 0xc16f, 0xd81d, 0xe0df, 0xc4c9, 0xcb05, 0xcbc7,
+ 0xc786, 0xd86f, 0xce8a, 0xc8fb, 0xd4ef, 0xc99d,
+ 0xc317, 0xcecf, 0xdb4e, 0xdb53, 0xd181, 0xd699,
+ 0xd6c8, 0xcd65, 0xd71e, 0xdd3d, 0xd564, 0xd5fd,
+ 0xdcd1, 0xda54, 0xd28b, 0xd537, 0xd749, 0xdd7b,
+ 0xe805, 0xda2a, 0xd9e2, 0xe36e, 0xcf4a, 0xdbf1,
+ 0xec8c, 0xd448, 0xe082, 0xe72d, 0xcb9e, 0xddb3,
+ 0xec01, 0xd2b5, 0xcfaf, 0xdd61, 0xe0a2, 0xe11e,
+ 0xe3a9, 0xdd45, 0xd9e8, 0xec17, 0xe9f1, 0xd7b2,
+ 0xe5da, 0xeb66, 0xdcc8, 0xe6c1, 0xede2, 0xe0d0,
+ 0xea9e, 0xf8d0, 0xddb5, 0xdea3, 0x083b, 0xf0e1,
+ 0xda07, 0xf698, 0xe28d, 0xe135, 0x05f7, 0xec29,
+ 0xe823, 0xfcb0, 0xda3e, 0xdbc7, 0xfb95, 0xf0a5,
+ 0xeca4, 0xf215, 0xe98a, 0xea85, 0xeb0f, 0xe807,
+ 0xf519, 0xfc18, 0xec2a, 0xecfb, 0xf5a7, 0xe526,
+ 0xedf1, 0xfe41, 0xe3bb, 0xdd91, 0xed3e, 0xe84c,
+ 0xe4f0, 0xe630, 0xe8a1, 0xe45c, 0xde5c, 0xe595,
+ 0xe2e5, 0xe798, 0xf35a, 0xe779, 0xebc4, 0xeef3,
+ 0xdd66, 0xf445, 0x01fb, 0xe655, 0xebcd, 0xf451,
+ 0xe4e2, 0xea00, 0xf4af, 0xf1c1, 0xef80, 0xf40e,
+ 0xf0c8, 0xee5b, 0xfa5b, 0xf714, 0xf692, 0x0128,
+ 0xf57a, 0xf2df, 0xfa0f, 0xf622, 0xfc13, 0xfd92,
+ 0xf8d7, 0xf950, 0xeefc, 0xee1c, 0xfe9b, 0x00ed,
+ 0xfc20, 0x0006, 0x0253, 0xf618, 0xee41, 0x00d6,
+ 0x02c8, 0xf5fc, 0xfb31, 0xf575, 0xf986, 0x0987,
+ 0x0169, 0xfa3c, 0xf78f, 0xf751, 0xfdd0, 0xfcc4,
+ 0xfae2, 0xf9d6, 0xfa1f, 0xf52d, 0xef3b, 0xfe6c,
+ 0x0004, 0xeee9, 0xfb81, 0x013c, 0xef06, 0xf869,
+ 0x0183, 0xf623, 0xf3f3, 0xf610, 0xf789, 0xf57b,
+ 0xfd8d, 0x0329, 0xf60b, 0x00f5, 0x013f, 0xede8,
+ 0xfe3b, 0x00fa, 0xf5e5, 0x0634, 0x0789, 0xfb9d,
+ 0x0294, 0x065f, 0xf838, 0xf5c1, 0x089b, 0x0f0f,
+ 0x01e3, 0xfba2, 0xffab, 0x043c, 0xff87, 0xf675,
+ 0x0369, 0x036a, 0xf142, 0x015f, 0x0543, 0xf7cf,
+ 0x0486, 0x0bb4, 0x0730, 0xfdc7, 0x01e2, 0x0a87,
+ 0xf947, 0x0326, 0x1329, 0xfc19, 0xfeb7, 0x0de7,
+ 0x03d2, 0x0bcf, 0x0d2b, 0xfa3f, 0x062a, 0x0936,
+ 0xfde7, 0x10a0, 0x0fde, 0xfea5, 0x0760, 0x0afa,
+ 0x05c5, 0x1029, 0x0d3f, 0x015c, 0x15e9, 0x1481,
+ 0xfd89, 0x0b5b, 0x0e5f, 0x09e0, 0x1139, 0x0c0a,
+ 0x0f6f, 0x101e, 0x0855, 0x0523, 0x025d, 0x0e31,
+ 0x1280, 0x0491, 0x09e9, 0x0f04, 0x060e, 0x1183,
+ 0x177f, 0x11c9, 0x12fe, 0x09d2, 0x111c, 0x14b1,
+ 0x0529, 0x0f98, 0x1468, 0x0e77, 0x11d6, 0x11e9,
+ 0x13b5, 0x0f83, 0x0db1, 0x0d5b, 0x0ae3, 0x139e,
+ 0x1646, 0x11e3, 0x0e83, 0x0b46, 0x0edb, 0x118a,
+ 0x0e13, 0x0f84, 0x11f0, 0x0f12, 0x0f54, 0x0d93,
+ 0x1457, 0x1664, 0x05c5, 0x0bb8, 0x0f25, 0x09b9,
+ 0x15fb, 0x1501, 0x16fe, 0x16a7, 0x0c00, 0x124a,
+ 0x1025, 0x08ee, 0x0ab8, 0x099d, 0x094b, 0x1062,
+ 0x1b61, 0x1945, 0x1216, 0x148e, 0x11f5, 0x0c22,
+ 0x1531, 0x1196, 0x0330, 0x0f63, 0x0eef, 0x0bc0,
+ 0x1a44, 0x12c8, 0x1851, 0x1de6, 0x08bc, 0x0c17,
+ 0x192e, 0x1093, 0x0c6a, 0x1bcf, 0x20e0, 0x1adb,
+ 0x19fc, 0x1b7a, 0x2678, 0x1a79, 0x0911, 0x185d,
+ 0x1989, 0x1324, 0x172e, 0x0e58, 0x0ced, 0x16da,
+ 0x16c1, 0x1859, 0x10f8, 0x091e, 0x24d8, 0x2016,
+ 0x0553, 0x1901, 0x1429, 0x08c2, 0x1828, 0x14ff,
+ 0x1565, 0x10af, 0x0695, 0x0d68, 0x127a, 0x125d,
+ 0x10b4, 0x133b, 0x14a9, 0x14ad, 0x1b61, 0x1cc7,
+ 0x186a, 0x1911, 0x13fc, 0x0d8c, 0x1a8a, 0x13b8,
+ 0x078c, 0x1de7, 0x1d0d, 0x1474, 0x1b1e, 0x16f4,
+ 0x1a83, 0x183b, 0x128b, 0x16ef, 0x1736, 0x0ee8,
+ 0x098f, 0x1441, 0x159b, 0x174f, 0x1cc1, 0x0f8d,
+ 0x13be, 0x1ecc, 0x1525, 0x194b, 0x25bc, 0x163a,
+ 0x1002, 0x1fe0, 0x170b, 0x1211, 0x1934, 0x16ce,
+ 0x15ac, 0x1033, 0x1578, 0x1754, 0x11d0, 0x14ef,
+ 0x111c, 0x18c7, 0x2128, 0x1cb6, 0x1b18, 0x18a6,
+ 0x1719, 0x16ce, 0x1a70, 0x1582, 0x124a, 0x1c78,
+ 0x1e86, 0x1fcc, 0x1a7d, 0x13d7, 0x168d, 0x129a,
+ 0x1230, 0x17c3, 0x170e, 0x1368, 0x16d4, 0x0fd2,
+ 0x0c7f, 0x1e3a, 0x195c, 0x1740, 0x1cee, 0x112f,
+ 0x1462, 0x1502, 0x1669, 0x1a58, 0x1174, 0x161f,
+ 0x17f9, 0x11c8, 0x1481, 0x197f, 0x1691, 0x10ae,
+ 0x14a7, 0x15ef, 0x1108, 0x0ca0, 0x0ebe, 0x11c6,
+ 0x1271, 0x13d1, 0x0e90, 0x125a, 0x0927, 0x044e,
+ 0x1e52, 0x183f, 0x130c, 0x1954, 0x06f7, 0x0bc8,
+ 0x1217, 0x0ca5, 0x1ae9, 0x206a, 0x13c3, 0x131f,
+ 0x14c6, 0x0aac, 0x0e56, 0x10ab, 0x0d36, 0x1011,
+ 0x0b07, 0x06be, 0x00c9, 0x0866, 0x124d, 0x0acf,
+ 0x1024, 0x0bb8, 0x001d, 0x05b7, 0x083b, 0x061b,
+ 0x0c60, 0x12fe, 0x04ec, 0x053c, 0x1444, 0x12ba,
+ 0x167f, 0x0f2c, 0x0515, 0x0da3, 0x141d, 0x12d8,
+ 0x100f, 0x1661, 0x11f7, 0x0974, 0x0bd4, 0x085e,
+ 0x08b4, 0x0823, 0x07f9, 0x0fb9, 0x129c, 0x06c3,
+ 0x00dd, 0x0cde, 0x04bd, 0x06dd, 0x1727, 0x098d,
+ 0x037c, 0x05e9, 0x0751, 0x0bf1, 0x0bc8, 0x0b1b,
+ 0xffe8, 0xff45, 0x069a, 0x0515, 0x02b9, 0xfd8a,
+ 0xff3a, 0x0069, 0xfeb1, 0x0106, 0x055d, 0x010b,
+ 0xf73b, 0xfd23, 0xfd87, 0xfe11, 0xff46, 0xf729,
+ 0x00c0, 0x02f6, 0xff0c, 0xff3f, 0xfc39, 0xffc7,
+ 0xf88c, 0xfc75, 0x0523, 0xfd89, 0x00cc, 0x0125,
+ 0xf6f7, 0xfb6d, 0x0d6b, 0x0a6c, 0xfe48, 0xff7c,
+ 0xfba3, 0xfcaa, 0xff52, 0x0320, 0x01da, 0xfc1d,
+ 0x0788, 0xfc20, 0xf22d, 0x06e4, 0x0b5f, 0x038c,
+ 0xfe5c, 0xffb3, 0xfa3b, 0xee31, 0xf1e0, 0xfa9a,
+ 0xfbe5, 0xf929, 0xfd71, 0xf718, 0xf522, 0xffe8,
+ 0xf4d6, 0xf92f, 0xfefd, 0xef89, 0xf1bc, 0xf389,
+ 0xf336, 0xf8ea, 0xf850, 0xf047, 0xef6a, 0xf79a,
+ 0xf15c, 0xed99, 0xf284, 0xf4b4, 0xf019, 0xec20,
+ 0xf369, 0xee2d, 0xef24, 0xf5f9, 0xf5d2, 0xfb94,
+ 0xee03, 0xeb30, 0xf57a, 0xf108, 0xf67c, 0xf71a,
+ 0xefc5, 0xeee2, 0xf023, 0xf04a, 0xf305, 0xf533,
+ 0xf145, 0xf2af, 0xeed5, 0xf33b, 0xf812, 0xefe0,
+ 0xfaf2, 0xf52b, 0xeee7, 0xff6d, 0xf510, 0xeeb9,
+ 0xf6c1, 0xf435, 0xf76d, 0x01e8, 0xfefb, 0xf8f7,
+ 0xfde0, 0xf610, 0xf6ac, 0xfc08, 0xf1ab, 0xf296,
+ 0xf3bb, 0xf80f, 0xfcab, 0xfac1, 0xfc3b, 0xf6db,
+ 0xfb47, 0xffb8, 0xfb11, 0xfa9b, 0xfe6f, 0xffa7,
+ 0xf5c3, 0xfd31, 0xff93, 0xf09d, 0xf92b, 0x0219,
+ 0x026d, 0x0578, 0x0303, 0xfb03, 0xfb1e, 0xfb20,
+ 0xf142, 0xfd14, 0xfd16, 0xee1e, 0xf89a, 0xf994,
+ 0xf656, 0xfa52, 0xffb4, 0x0207, 0xf5c0, 0xf553,
+ 0xfc7d, 0xfb3c, 0xf407, 0xf3c4, 0xfecd, 0x0012,
+ 0xf9d1, 0xf497, 0xf9f8, 0xf98e, 0xfa02, 0x07a6,
+ 0xf956, 0xf3dd, 0xfddc, 0xf4d4, 0xf760, 0xf917,
+ 0xf6c2, 0xfa58, 0xf842, 0xf495, 0xf489, 0xf708,
+ 0xf651, 0xf92e, 0xf2ef, 0xf00a, 0xfa52, 0xf5c9,
+ 0xf495, 0xf7f6, 0xfb7e, 0xf9aa, 0xf290, 0xfd20,
+ 0xf744, 0xef8f, 0xf980, 0xf5a5, 0xf2ae, 0xf3e6,
+ 0xf2e0, 0xee99, 0xeb60, 0xeced, 0xecaf, 0xec91,
+ 0xed56, 0xf3ad, 0xed5a, 0xea2d, 0xef99, 0xe417,
+ 0xe9d3, 0xe8b4, 0xdd22, 0xe70c, 0xdf42, 0xdb44,
+ 0xe7fd, 0xe588, 0xe36c, 0xeb12, 0xe74c, 0xe132,
+ 0xe876, 0xe0d0, 0xdd8d, 0xe43e, 0xde6c, 0xe3fb,
+ 0xe39a, 0xe1fd, 0xeadc, 0xead3, 0xe8cd, 0xe676,
+ 0xeeca, 0xf084, 0xe67b, 0xe82d, 0xeb0a, 0xea12,
+ 0xe60c, 0xed65, 0xf248, 0xe94f, 0xed57, 0xf1d5,
+ 0xef2d, 0xec4c, 0xeede, 0xef13, 0xec7c, 0xf38e,
+ 0xee45, 0xf225, 0xfc1e, 0xf15b, 0xf1a3, 0xf7e8,
+ 0xf924, 0xf40c, 0xf1e4, 0xf9db, 0xf70a, 0xf826,
+ 0xfcfd, 0xf8ee, 0xf5fb, 0xf951, 0xf690, 0xefaf,
+ 0xf9ae, 0xf723, 0xf193, 0xf82c, 0xefc3, 0xf2e1,
+ 0xf762, 0xf185, 0xf2d4, 0xf122, 0xef40, 0xefb2,
+ 0xf9c2, 0xfede, 0xf749, 0xf4f0, 0xf5f3, 0xf6c6,
+ 0xf1ba, 0xf6a2, 0xfe96, 0xfc76, 0xfe72, 0xf9df,
+ 0xf5bd, 0xf507, 0xfb91, 0x0113, 0xf521, 0xf8fc,
+ 0xff1e, 0xf954, 0xf6db, 0xf5a9, 0xfc51, 0xfb67,
+ 0xf93f, 0xfd01, 0xf733, 0xef70, 0xf00e, 0xf480,
+ 0xf2b0, 0xf400, 0xef6e, 0xedeb, 0xf479, 0xe682,
+ 0xea1a, 0xf4f5, 0xeb31, 0xec90, 0xe9d1, 0xe952,
+ 0xeedc, 0xe82f, 0xea2b, 0xf184, 0xe8df, 0xe4bb,
+ 0xf216, 0xeec2, 0xe8af, 0xeb0d, 0xe55c, 0xecde,
+ 0xec80, 0xe603, 0xe8dc, 0xe60b, 0xed57, 0xed4a,
+ 0xe634, 0xea70, 0xea48, 0xe792, 0xe70e, 0xe88e,
+ 0xebfb, 0xf1ec, 0xecb7, 0xe769, 0xf039, 0xebe7,
+ 0xeaf3, 0xefd9, 0xedef, 0xf25b, 0xf21e, 0xf209,
+ 0xeed7, 0xeb5c, 0xef04, 0xed2b, 0xee3b, 0xf259,
+ 0xf6ab, 0xf123, 0xeb78, 0xf4d0, 0xf5d3, 0xf482,
+ 0xf579, 0xf5e6, 0xf879, 0xf564, 0xf445, 0xf6dd,
+ 0xf740, 0xecc6, 0xecef, 0xf5b6, 0xeb20, 0xed42,
+ 0xf45c, 0xf21f, 0xf515, 0xee91, 0xeb78, 0xed85,
+ 0xecb9, 0xf0a4, 0xf238, 0xeeca, 0xf24d, 0xf838,
+ 0xedf2, 0xed8b, 0xf3a2, 0xecce, 0xf1f7, 0xf426,
+ 0xf269, 0xf50d, 0xf0ca, 0xf166, 0xf5e9, 0xf9a3,
+ 0xf415, 0xf0a5, 0xf7b8, 0xf4ac, 0xf050, 0xf1b2,
+ 0xf482, 0xf2b2, 0xee9d, 0xf0a4, 0xf36d, 0xf6f4,
+ 0xf26f, 0xf0e0, 0xf620, 0xf69c, 0xf9df, 0xf434,
+ 0xf2c8, 0xf63c, 0xeec9, 0xf2d4, 0xf881, 0xf557,
+ 0xf3a0, 0xf3c5, 0xf201, 0xefa9, 0xf25f, 0xf137,
+ 0xf2d4, 0xf641, 0xf233, 0xec5d, 0xea16, 0xf083,
+ 0xeed6, 0xf040, 0xf797, 0xef28, 0xf08b, 0xf5b7,
+ 0xf38b, 0xf66c, 0xf425, 0xf254, 0xf4bd, 0xf43a,
+ 0xf14d, 0xf378, 0xf669, 0xf5a6, 0xf49c, 0xef84,
+ 0xf1ee, 0xeee0, 0xe83d, 0xf29d, 0xf382, 0xf196,
+ 0xf3eb, 0xeecb, 0xef40, 0xefa4, 0xf108, 0xf879,
+ 0xf805, 0xeda0, 0xefd4, 0xf75b, 0xeffb, 0xf54c,
+ 0xfd70, 0xf518, 0xf3e4, 0xf5dd, 0xf118, 0xed53,
+ 0xefa3, 0xf0c8, 0xf6dd, 0xfbd7, 0xeee4, 0xef84,
+ 0xf5d0, 0xeda1, 0xf152, 0xf737, 0xf5a6, 0xf523,
+ 0xf2dd, 0xf1fd, 0xf6b9, 0xf79b, 0xf475, 0xf78b,
+ 0xf362, 0xf118, 0xf68f, 0xf25f, 0xf32c, 0xf5c4,
+ 0xf500, 0xf653, 0xf38c, 0xf29b, 0xed9c, 0xeaef,
+ 0xf3fe, 0xf6cb, 0xef4e, 0xedf6, 0xf2f4, 0xf14c,
+ 0xf3db, 0xf6d3, 0xf230, 0xf44c, 0xf573, 0xf24a,
+ 0xef97, 0xf249, 0xf6ee, 0xf27d, 0xf4e7, 0xf884,
+ 0xf245, 0xf0cf, 0xf35a, 0xf371, 0xf381, 0xf407,
+ 0xeeb3, 0xf1c5, 0xfbcb, 0xf519, 0xf1dd, 0xf864,
+ 0xf5c4, 0xf218, 0xf57a, 0xf637, 0xf386, 0xf890,
+ 0xf916, 0xf6a5, 0xfbca, 0xfc9c, 0xfdf5, 0xfc77,
+ 0xf7cc, 0xfb45, 0xfbc0, 0xf733, 0xf73a, 0xfc32,
+ 0xfecf, 0x005e, 0x0140, 0xfdd5, 0xfe76, 0x003d,
+ 0x0091, 0x0066, 0xfeac, 0xfed2, 0xfd1b, 0xfd54,
+ 0xff04, 0x0002, 0x0073, 0xfe15, 0x040c, 0x078d,
+ 0xffc6, 0xfdcb, 0xff13, 0xfd63, 0xfd1a, 0xfce2,
+ 0xfc0f, 0xff14, 0x00c1, 0x0070, 0x0306, 0xff71,
+ 0xfcba, 0xfeae, 0xff39, 0x03b3, 0x0226, 0xfeec,
+ 0x00ef, 0xfcb0, 0xfbd3, 0xff63, 0xfe7e, 0x020d,
+ 0x057c, 0x0112, 0x00e0, 0xffe6, 0xfc36, 0x0544,
+ 0x0642, 0xfe12, 0x044f, 0x05a0, 0xffef, 0xfff8,
+ 0xffb5, 0x03a4, 0x06f0, 0x038f, 0x0250, 0x0155,
+ 0x011f, 0x0821, 0x0681, 0xfd99, 0x0299, 0x059f,
+ 0x01eb, 0x05c3, 0x06c2, 0x062d, 0x08dd, 0x06c6,
+ 0x04ba, 0x076b, 0x05de, 0x025a, 0x068c, 0x0896,
+ 0x05a3, 0x0536, 0x02c6, 0x01de, 0x081f, 0x0bba,
+ 0x089d, 0x08d6, 0x0911, 0x03d4, 0x03dd, 0x056c,
+ 0x04e9, 0x094d, 0x0892, 0x00dd, 0x0016, 0x0425,
+ 0x04af, 0x0329, 0x0174, 0x04a9, 0x0962, 0x02d8,
+ 0xfe1b, 0x04d2, 0x05bd, 0x01b8, 0x03d4, 0x05e3,
+ 0x03b2, 0x02f5, 0x047a, 0x0534, 0x07ce, 0x0a77,
+ 0x05be, 0x023c, 0x080a, 0x0759, 0x0190, 0x07ba,
+ 0x0c58, 0x07ce, 0x0753, 0x06ca, 0x044a, 0x0746,
+ 0x0978, 0x06e1, 0x040d, 0x025c, 0x030b, 0x03c6,
+ 0x01f9, 0x0161, 0x03be, 0x05eb, 0x0289, 0xfc4b,
+ 0xfba5, 0xfee3, 0x030f, 0x0551, 0x0132, 0xff26,
+ 0x01bd, 0x0078, 0x0106, 0x0356, 0x0180, 0x059c,
+ 0x088f, 0x024f, 0x0580, 0x0acf, 0x0451, 0x0463,
+ 0x092c, 0x0591, 0x04c7, 0x0637, 0x039e, 0x05f5,
+ 0x0a9e, 0x0abc, 0x09a3, 0x08dc, 0x090b, 0x07af,
+ 0x04d5, 0x074d, 0x0975, 0x04ce, 0x02d9, 0x05fb,
+ 0x0639, 0x04d3, 0x0700, 0x09b5, 0x0705, 0x028d,
+ 0x034c, 0x04ac, 0x021c, 0x0071, 0x0011, 0xfe50,
+ 0xfdcf, 0xffaa, 0x0145, 0x01c6, 0x00ec, 0xfe22,
+ 0xfc10, 0xfc4b, 0xfbf9, 0xfb66, 0xfc6c, 0xfcc6,
+ 0xfbeb, 0xfa6a, 0xf8c2, 0xf9dc, 0xfba0, 0xfcf1,
+ 0x00ec, 0x0177, 0xfd0e, 0xfb92, 0xfb06, 0xfbd9,
+ 0x021f, 0x051f, 0x018f, 0xfe81, 0xfeb8, 0x00a6,
+ 0xfe24, 0xfb18, 0x00b0, 0x0391, 0x00c2, 0x0374,
+ 0x024b, 0xfcd4, 0x0002, 0x0273, 0x008a, 0x01d0,
+ 0x00c9, 0xfecf, 0xff1a, 0xfe8b, 0x015b, 0x02bc,
+ 0xff50, 0x00cc, 0x0066, 0xfbac, 0x009e, 0x054e,
+ 0xfe51, 0xfa58, 0xfdc9, 0xfd63, 0xf964, 0xfa8d,
+ 0xfd79, 0xf9cc, 0xf8ed, 0xfe5b, 0xfbfd, 0xf896,
+ 0xfcfc, 0xfabf, 0xf4ce, 0xf674, 0xf667, 0xf44a,
+ 0xf6b7, 0xf833, 0xf8e1, 0xfafe, 0xf949, 0xf62d,
+ 0xf836, 0xfaf6, 0xf8d2, 0xf777, 0xf944, 0xf7d8,
+ 0xf6f0, 0xfafd, 0xfc25, 0xf972, 0xf807, 0xf90c,
+ 0xfc7a, 0xfaf9, 0xf4bb, 0xf5bb, 0xf89e, 0xf716,
+ 0xf90c, 0xf930, 0xf456, 0xf620, 0xfbee, 0xfdb6,
+ 0xfe7a, 0xffa4, 0xffef, 0xfed6, 0xfe08, 0x000b,
+ 0x0146, 0xfe90, 0xfa68, 0xf9e0, 0xfeab, 0xfeb6,
+ 0xf948, 0xfbd9, 0xff34, 0xfc3b, 0x009d, 0x0531,
+ 0xfefd, 0xfe2b, 0x02f9, 0xff85, 0xfd06, 0x0262,
+ 0x0411, 0x0078, 0x01e9, 0x05fa, 0x0393, 0x0148,
+ 0x0478, 0x0493, 0x0218, 0x023d, 0x0288, 0x0370,
+ 0x0409, 0x0399, 0x0595, 0x057b, 0x030a, 0x0472,
+ 0x05f0, 0x068f, 0x0673, 0x02c8, 0x04a0, 0x09aa,
+ 0x06fb, 0x08f2, 0x10a8, 0x0e4e, 0x0b09, 0x0dfc,
+ 0x0b20, 0x057d, 0x0818, 0x0f37, 0x1017, 0x0afc,
+ 0x0a05, 0x0b11, 0x095f, 0x0be6, 0x0e81, 0x0b49,
+ 0x0aa1, 0x0ade, 0x07f4, 0x08da, 0x0b9d, 0x0bd1,
+ 0x0af9, 0x07ec, 0x0672, 0x0907, 0x08db, 0x0653,
+ 0x0723, 0x093b, 0x08b6, 0x06f8, 0x072c, 0x07d7,
+ 0x0746, 0x085a, 0x0a5d, 0x0a1f, 0x0756, 0x031e,
+ 0x0253, 0x05e3, 0x07e7, 0x0846, 0x0791, 0x04f5,
+ 0x052e, 0x06d6, 0x06e6, 0x07e8, 0x04ba, 0xfe8e,
+ 0xff8e, 0x0139, 0xfe2c, 0xff43, 0x0268, 0x01b8,
+ 0x00c6, 0xffa9, 0xfca0, 0xfa7d, 0xfafb, 0xfb83,
+ 0xf990, 0xf858, 0xf8e9, 0xf841, 0xf973, 0xfbbd,
+ 0xf9f5, 0xf8b8, 0xf89c, 0xf578, 0xf4f1, 0xf5eb,
+ 0xf348, 0xf360, 0xf4d5, 0xf28e, 0xf33e, 0xf4fe,
+ 0xf232, 0xf23d, 0xf4b4, 0xf354, 0xf3bd, 0xf572,
+ 0xf17e, 0xeef7, 0xf3ae, 0xf86c, 0xf9fc, 0xf9ca,
+ 0xf84b, 0xf993, 0xfd4e, 0xfdf7, 0xfde8, 0x00df,
+ 0x0344, 0x02ac, 0x013e, 0x01e0, 0x03e9, 0x03a5,
+ 0x0288, 0x0349, 0x0362, 0x02a2, 0x01c8, 0x0086,
+ 0x0216, 0x0398, 0x0165, 0x0299, 0x050f, 0x00fe,
+ 0xff9a, 0x0417, 0x041a, 0x01d4, 0x0165, 0x0033,
+ 0x01dd, 0x049e, 0x0399, 0x0464, 0x0587, 0x0270,
+ 0x0224, 0x03bd, 0x02fc, 0x053f, 0x05f7, 0x01dc,
+ 0x027f, 0x03e7, 0x014f, 0x02c7, 0x03f5, 0x02b8,
+ 0x06c2, 0x0705, 0x01bb, 0x03b0, 0x05c5, 0x03bf,
+ 0x078b, 0x0927, 0x0331, 0x013a, 0x02df, 0x02b3,
+ 0x0325, 0x0375, 0x0186, 0xfe27, 0xfcc7, 0xff1f,
+ 0x0014, 0x002f, 0x031d, 0x01ed, 0xfc8a, 0xfc61,
+ 0xffb7, 0x011f, 0x0085, 0xfeae, 0xfdec, 0xfd18,
+ 0xfabe, 0xfb3d, 0xfd48, 0xfc74, 0xfa7b, 0xf787,
+ 0xf461, 0xf3f6, 0xf36b, 0xf272, 0xf3fb, 0xf3f4,
+ 0xf17a, 0xf186, 0xf25a, 0xf1e6, 0xf31e, 0xf50f,
+ 0xf5e9, 0xf5c9, 0xf2a5, 0xf044, 0xf419, 0xf6c7,
+ 0xf459, 0xf4ef, 0xf689, 0xf410, 0xf46d, 0xf807,
+ 0xf88b, 0xf704, 0xf46b, 0xf29d, 0xf4ad, 0xf5fb,
+ 0xf607, 0xf900, 0xfa50, 0xf970, 0xfb14, 0xfad0,
+ 0xf892, 0xfb05, 0xfe92, 0xff22, 0xffa9, 0xfead,
+ 0xfc11, 0xfc8b, 0xfd99, 0xfcaa, 0xfd9e, 0xfdc2,
+ 0xfb25, 0xfd29, 0x0145, 0xffae, 0xfdb5, 0xfe0c,
+ 0xfbf9, 0xfaaf, 0xfcf0, 0xfe1c, 0xfbf1, 0xfa2f,
+ 0xfcf3, 0xff7e, 0xfdad, 0xfe25, 0xfeda, 0xfa35,
+ 0xf971, 0xfc8c, 0xfbe2, 0xfdbe, 0xfff4, 0xfc21,
+ 0xfb39, 0xfc03, 0xf8d7, 0xf9d3, 0xfc1b, 0xf9c0,
+ 0xfa69, 0xfbf0, 0xf9ac, 0xfae4, 0xfd74, 0xfb03,
+ 0xf9bf, 0xfc05, 0xfb70, 0xf8c7, 0xf9db, 0xfce2,
+ 0xfca6, 0xfab9, 0xfa07, 0xf96a, 0xf94d, 0xfa06,
+ 0xf90b, 0xf76e, 0xf7a9, 0xf723, 0xf595, 0xf76a,
+ 0xf966, 0xf5da, 0xf38a, 0xf669, 0xf615, 0xf3c5,
+ 0xf66b, 0xf87d, 0xf696, 0xf54c, 0xf4ce, 0xf4f4,
+ 0xf744, 0xfa04, 0xfacd, 0xf946, 0xf8b5, 0xfa33,
+ 0xf97a, 0xf80c, 0xf935, 0xf93e, 0xf7a5, 0xf6a1,
+ 0xf632, 0xf778, 0xf7e6, 0xf6be, 0xf7e9, 0xf76b,
+ 0xf4dc, 0xf70a, 0xf8cc, 0xf7c9, 0xfb37, 0xfd40,
+ 0xf975, 0xf827, 0xf81a, 0xf623, 0xf854, 0xfbb2,
+ 0xf961, 0xf6f6, 0xf860, 0xf884, 0xf8a7, 0xfc72,
+ 0xfcff, 0xf7fc, 0xf683, 0xf8d2, 0xf8ab, 0xf895,
+ 0xfaf3, 0xfc23, 0xfa48, 0xf7b6, 0xf7dd, 0xf9ed,
+ 0xfbb1, 0xfe42, 0xff7b, 0xfe43, 0xff50, 0x0041,
+ 0xfd9e, 0xfd19, 0xfe42, 0xfc59, 0xfba6, 0xfd9e,
+ 0xfdc4, 0xfd26, 0xfd25, 0xfb9e, 0xfa72, 0xfbf6,
+ 0xfcd2, 0xfb92, 0xfb9b, 0xfcd6, 0xfd03, 0xfd3f,
+ 0xfe3e, 0xff8d, 0x0038, 0xfeff, 0xfeb4, 0xffd9,
+ 0xfe24, 0xfd2b, 0x00dc, 0x02f9, 0x0093, 0xfd08,
+ 0xfb4d, 0xfc82, 0xfce2, 0xfc4b, 0xfe1d, 0xfd98,
+ 0xfb3d, 0xfd10, 0xfdca, 0xfc37, 0xfd81, 0xfd9a,
+ 0xfc67, 0xfd9a, 0xfe64, 0xff3b, 0xffb7, 0xfecc,
+ 0x011f, 0x02ce, 0x0080, 0x0146, 0x020a, 0xff12,
+ 0xff03, 0x007b, 0x0073, 0x00ba, 0xffe6, 0xff8e,
+ 0xffca, 0xfee8, 0x00b1, 0x012d, 0xfea2, 0x0220,
+ 0x05b5, 0x02bf, 0x02a0, 0x0386, 0x00db, 0x00d4,
+ 0x01ac, 0x01bf, 0x0374, 0x02a0, 0x00ed, 0x0131,
+ 0x002e, 0x00be, 0x024e, 0x0086, 0xff93, 0xffeb,
+ 0xffec, 0x013e, 0xffb7, 0xfe3d, 0x0204, 0x018b,
+ 0xfd77, 0xfffd, 0x02bd, 0x01a2, 0x01bb, 0x00e9,
+ 0x00a4, 0x031b, 0x01ce, 0xfec7, 0x0075, 0x028d,
+ 0x0214, 0x019e, 0x0140, 0x0107, 0x00ba, 0xff1e,
+ 0xfed0, 0x01b0, 0x0393, 0x0341, 0x0549, 0x074e,
+ 0x032e, 0xfedd, 0x018e, 0x043d, 0x0271, 0x0314,
+ 0x056d, 0x0271, 0xff03, 0x01c6, 0x0447, 0x02b1,
+ 0x039c, 0x05cf, 0x0352, 0x0246, 0x06df, 0x0890,
+ 0x058e, 0x0505, 0x062d, 0x054f, 0x04dd, 0x05e0,
+ 0x0632, 0x0623, 0x06c4, 0x074c, 0x06a3, 0x0506,
+ 0x0448, 0x04d6, 0x04cf, 0x049b, 0x0596, 0x0596,
+ 0x03f6, 0x03ac, 0x042f, 0x0335, 0x02ae, 0x0379,
+ 0x02ef, 0x0247, 0x041b, 0x0500, 0x02ef, 0x0205,
+ 0x02f4, 0x0350, 0x03f8, 0x045b, 0x037e, 0x03ce,
+ 0x0423, 0x02a3, 0x027c, 0x02eb, 0x01a4, 0x027a,
+ 0x04e5, 0x03ff, 0x01b9, 0x00cb, 0xffe9, 0xffb5,
+ 0x00ac, 0x006b, 0xfe42, 0xfcf9, 0xfe4e, 0xff89,
+ 0xff45, 0x0004, 0xffef, 0xfc9d, 0xfb26, 0xfd0f,
+ 0xfd8f, 0xfd78, 0xfe84, 0xfe1f, 0xfd71, 0xfe1a,
+ 0xfde2, 0xfdc0, 0xfeec, 0xfef1, 0xfe7b, 0xfe8c,
+ 0xfc65, 0xf965, 0xf95f, 0xfae5, 0xfc19, 0xfce4,
+ 0xfc13, 0xfb51, 0xfcc2, 0xfcb0, 0xfa98, 0xfcd2,
+ 0x0153, 0xffb6, 0xfbae, 0xfc7f, 0xfdc6, 0xfced,
+ 0xfe62, 0x0028, 0xff52, 0xfed7, 0xff63, 0x0080,
+ 0x01ad, 0x0053, 0xff21, 0x0000, 0xfe73, 0xfd5a,
+ 0x0045, 0x00dc, 0xfffc, 0x01f9, 0x011a, 0xfe4f,
+ 0xffda, 0x00d7, 0xff6a, 0x00e4, 0x0256, 0x003c,
+ 0xfe2e, 0xfd31, 0xfc90, 0xfd3e, 0xfd60, 0xfc05,
+ 0xfbe4, 0xfc68, 0xfb9c, 0xfba3, 0xfc33, 0xfa6a,
+ 0xf877, 0xf870, 0xf8e6, 0xf9f5, 0xfa50, 0xf8c8,
+ 0xf83a, 0xf826, 0xf741, 0xf805, 0xf85b, 0xf6fd,
+ 0xf7a2, 0xf832, 0xf7e7, 0xfa4a, 0xfa62, 0xf6c7,
+ 0xf785, 0xfab6, 0xfa6d, 0xf947, 0xf89c, 0xf808,
+ 0xf8df, 0xf9f3, 0xfb0c, 0xfc52, 0xfb54, 0xf985,
+ 0xfa03, 0xfb0e, 0xfafa, 0xfb1a, 0xfc3a, 0xfd5c,
+ 0xfd58, 0xfc94, 0xfbdc, 0xfbd2, 0xfcfd, 0xfd46,
+ 0xfb8b, 0xfadf, 0xfb54, 0xfa79, 0xfa2a, 0xfb55,
+ 0xfb68, 0xfa5e, 0xf985, 0xf907, 0xf947, 0xf9cf,
+ 0xf9f8, 0xf9dc, 0xf950, 0xf933, 0xf9c9, 0xf91a,
+ 0xf84a, 0xf9b8, 0xfaa6, 0xf991, 0xf94a, 0xf970,
+ 0xf8b4, 0xf8f1, 0xfa1f, 0xfa31, 0xf8dc, 0xf766,
+ 0xf72f, 0xf75f, 0xf706, 0xf77d, 0xf7c9, 0xf6ba,
+ 0xf677, 0xf69c, 0xf691, 0xf7f1, 0xf888, 0xf851,
+ 0xf9b5, 0xf8c5, 0xf5ef, 0xf6ef, 0xf8cd, 0xf907,
+ 0xf9be, 0xf8b5, 0xf730, 0xf7f9, 0xf7ea, 0xf83d,
+ 0xf9d7, 0xf860, 0xf723, 0xf87d, 0xf7d5, 0xf7d1,
+ 0xf9e4, 0xf8bb, 0xf74b, 0xf8e3, 0xf89f, 0xf720,
+ 0xf88d, 0xfa04, 0xf889, 0xf6d7, 0xf757, 0xf828,
+ 0xf7da, 0xf7a9, 0xf747, 0xf6c0, 0xf81c, 0xf971,
+ 0xf80f, 0xf6b5, 0xf782, 0xf847, 0xf7a1, 0xf736,
+ 0xf82b, 0xf8a7, 0xf837, 0xf914, 0xfa2e, 0xf996,
+ 0xf915, 0xf955, 0xf981, 0xfa4c, 0xfb9a, 0xfcbf,
+ 0xfd39, 0xfc37, 0xfb08, 0xfb2b, 0xfb9b, 0xfc36,
+ 0xfdad, 0xfed9, 0xfe7e, 0xfd9f, 0xfe3f, 0xff25,
+ 0xfe1c, 0xfdcb, 0xfee0, 0xfd8b, 0xfbef, 0xfc63,
+ 0xfb2e, 0xfa80, 0xfd85, 0xff00, 0xfe26, 0xfe92,
+ 0xfecb, 0xfeb8, 0xff07, 0xfefe, 0x00ac, 0x014f,
+ 0xfdfd, 0xfdda, 0x010c, 0x0083, 0xfff6, 0x011d,
+ 0xff4e, 0xfe5d, 0x0010, 0xffe7, 0xffd4, 0x00ac,
+ 0xffb0, 0xffb1, 0x01b8, 0x0251, 0x0192, 0x0163,
+ 0x0228, 0x02ba, 0x0230, 0x0234, 0x0244, 0x00ab,
+ 0x008f, 0x0295, 0x02be, 0x018b, 0x005f, 0xfdfc,
+ 0xfd1c, 0xffd5, 0x0115, 0xfe1f, 0xfbb9, 0xfc3e,
+ 0xfc70, 0xfb6f, 0xfb31, 0xfbaf, 0xfc03, 0xfbc0,
+ 0xfad7, 0xfa7d, 0xfb34, 0xfbc3, 0xfb6a, 0xfadc,
+ 0xfaeb, 0xfa7b, 0xf94a, 0xf9a1, 0xfa43, 0xf959,
+ 0xf9e9, 0xfada, 0xf927, 0xf8ae, 0xf9a5, 0xf8bb,
+ 0xf941, 0xfb57, 0xfb50, 0xfbbb, 0xfd07, 0xfc5f,
+ 0xfbea, 0xfcdf, 0xfdfb, 0xff1f, 0xfec7, 0xfdc9,
+ 0xfed5, 0xff79, 0xfe18, 0xfda1, 0xfe74, 0xfea4,
+ 0xfe23, 0xfe79, 0xfff7, 0x0016, 0xfe8d, 0xfe30,
+ 0xfe35, 0xfd65, 0xfe0b, 0xff46, 0xfee6, 0xfeb6,
+ 0xff0a, 0xfe81, 0xfe00, 0xfdea, 0xfe14, 0xfe6e,
+ 0xfdc8, 0xfd01, 0xfd0c, 0xfc79, 0xfd01, 0xff68,
+ 0xffa0, 0xfe98, 0xff52, 0xff4b, 0xfeae, 0xff71,
+ 0xff8f, 0xff83, 0x0063, 0x0003, 0xffa1, 0x0108,
+ 0x01f3, 0x0207, 0x0284, 0x026a, 0x0151, 0x00eb,
+ 0x0204, 0x0277, 0x01b5, 0x022f, 0x0283, 0x0140,
+ 0x019a, 0x02af, 0x020f, 0x02a4, 0x0444, 0x0411,
+ 0x039b, 0x03d8, 0x03f4, 0x044f, 0x045f, 0x0433,
+ 0x03f2, 0x021e, 0x0059, 0x00ab, 0x007c, 0xff58,
+ 0xffc6, 0x0058, 0xfef9, 0xfd91, 0xfd1a, 0xfc08,
+ 0xfb23, 0xfb95, 0xfb53, 0xf953, 0xf72a, 0xf64d,
+ 0xf795, 0xf94e, 0xf8c2, 0xf791, 0xf83e, 0xf9a2,
+ 0xfa35, 0xf9c9, 0xf90e, 0xf8fd, 0xf923, 0xf891,
+ 0xf7c7, 0xf7fe, 0xf8d7, 0xf7db, 0xf5a0, 0xf5ac,
+ 0xf69e, 0xf590, 0xf525, 0xf6dc, 0xf7c8, 0xf814,
+ 0xf998, 0xfa6b, 0xf9d1, 0xfa3f, 0xfb88, 0xfc49,
+ 0xfddb, 0xff53, 0xfdc6, 0xfc1e, 0xfd20, 0xfdb1,
+ 0xfd84, 0xfdeb, 0xfe12, 0xfeb4, 0xff1d, 0xfe65,
+ 0xfe3d, 0xfec2, 0xff6f, 0xff44, 0xfd69, 0xfd03,
+ 0xfe8e, 0xfe57, 0xfe18, 0x0008, 0x00cc, 0x0021,
+ 0x009f, 0x01d0, 0x0256, 0x01b4, 0x019c, 0x02b5,
+ 0x024d, 0x00a9, 0xff75, 0xfe6e, 0xfe8c, 0xff26,
+ 0xfe26, 0xfd1d, 0xfd72, 0xfdb0, 0xfd23, 0xfc24,
+ 0xfc52, 0xfe49, 0xff1a, 0xfeba, 0xff94, 0x00ee,
+ 0x01bd, 0x01d4, 0x020c, 0x028b, 0x01c1, 0x015a,
+ 0x0198, 0x0049, 0x0051, 0x01b1, 0x006a, 0xfef2,
+ 0xfeee, 0xfd87, 0xfb77, 0xfaa5, 0xfae0, 0xfac5,
+ 0xf9a0, 0xf91f, 0xf87f, 0xf777, 0xf900, 0xfa6b,
+ 0xf990, 0xfb23, 0xfdcb, 0xfd4e, 0xfd18, 0xfda2,
+ 0xfc18, 0xfb65, 0xfbbc, 0xfb73, 0xfc64, 0xfd1b,
+ 0xfc93, 0xfbad, 0xfa56, 0xfa3b, 0xfa33, 0xf94e,
+ 0xfa15, 0xfb1f, 0xfa46, 0xf936, 0xfa0d, 0xfc2e,
+ 0xfc1d, 0xf9f5, 0xfa73, 0xfcb5, 0xfc33, 0xfb5a,
+ 0xfc00, 0xfb9b, 0xfb82, 0xfc43, 0xfbf9, 0xfb53,
+ 0xfb15, 0xfab5, 0xf988, 0xf8e6, 0xf977, 0xf90c,
+ 0xf830, 0xf7ef, 0xf742, 0xf7fb, 0xfa94, 0xfb32,
+ 0xfa41, 0xfb61, 0xfd00, 0xfce2, 0xfd4d, 0x0006,
+ 0x015e, 0xff0b, 0xfe86, 0xfff0, 0xfea6, 0xfe66,
+ 0xffe4, 0xff3d, 0xfe84, 0xfe6b, 0xfdba, 0xfdaf,
+ 0xfda9, 0xfd15, 0xfd43, 0xfdcf, 0xfdc0, 0xfddc,
+ 0xfe53, 0xfe54, 0xff21, 0x012b, 0x01a5, 0x0115,
+ 0x018f, 0x01bf, 0x01c2, 0x023e, 0x02e6, 0x0356,
+ 0x02dc, 0x02b6, 0x01fa, 0x0108, 0x0235, 0x021e,
+ 0x014a, 0x01bd, 0x00c5, 0x008b, 0x019c, 0x0158,
+ 0x0119, 0x01a0, 0x0178, 0xffd6, 0xff36, 0x00b2,
+ 0x0170, 0x0119, 0x00f3, 0x0189, 0x01ff, 0x012a,
+ 0x0176, 0x0345, 0x02f9, 0x01c2, 0x0285, 0x02d0,
+ 0x0209, 0x0250, 0x0373, 0x04ff, 0x051d, 0x0433,
+ 0x047c, 0x04d4, 0x05d2, 0x0724, 0x0780, 0x07da,
+ 0x0796, 0x07f1, 0x0825, 0x06af, 0x0750, 0x0885,
+ 0x0777, 0x072c, 0x07b1, 0x0715, 0x05ea, 0x0532,
+ 0x0554, 0x05f5, 0x05e5, 0x04ef, 0x042d, 0x0455,
+ 0x0581, 0x05fe, 0x04d2, 0x044c, 0x0491, 0x042c,
+ 0x03f7, 0x03fc, 0x0437, 0x04f6, 0x048c, 0x0428,
+ 0x04f4, 0x0477, 0x041e, 0x0521, 0x0566, 0x04f7,
+ 0x03f7, 0x03e4, 0x0567, 0x05ff, 0x0545, 0x048d,
+ 0x04fc, 0x04b0, 0x0327, 0x0394, 0x0480, 0x048c,
+ 0x04d3, 0x04a9, 0x040d, 0x039e, 0x0482, 0x0524,
+ 0x0453, 0x04d8, 0x05a7, 0x0564, 0x05cf, 0x0664,
+ 0x0626, 0x05c1, 0x05b3, 0x05a9, 0x05a7, 0x0575,
+ 0x05c3, 0x0707, 0x0755, 0x0739, 0x076e, 0x0695,
+ 0x0584, 0x062e, 0x0814, 0x0841, 0x07c4, 0x07ec,
+ 0x070f, 0x0708, 0x0720, 0x0706, 0x0834, 0x0732,
+ 0x0621, 0x0750, 0x07a9, 0x0896, 0x09ba, 0x08fa,
+ 0x082d, 0x07f7, 0x07b8, 0x0833, 0x094b, 0x0968,
+ 0x0964, 0x09fd, 0x0963, 0x08b5, 0x097d, 0x0a77,
+ 0x0b41, 0x0b1c, 0x097f, 0x08a3, 0x08b5, 0x080d,
+ 0x075e, 0x0791, 0x08b7, 0x0931, 0x07fe, 0x077a,
+ 0x081f, 0x0801, 0x071e, 0x07a7, 0x0883, 0x06d1,
+ 0x058a, 0x05bf, 0x058e, 0x0586, 0x0502, 0x049d,
+ 0x03d4, 0x033c, 0x04c1, 0x04a7, 0x03f4, 0x0489,
+ 0x037c, 0x02fd, 0x035c, 0x02e5, 0x0285, 0x01c1,
+ 0x01d7, 0x02a1, 0x018e, 0x0115, 0x02bb, 0x02af,
+ 0x0208, 0x0358, 0x03b9, 0x029a, 0x0200, 0x02eb,
+ 0x03d7, 0x0387, 0x03fd, 0x0397, 0x028d, 0x02ff,
+ 0x02ec, 0x037f, 0x03f7, 0x0382, 0x03ad, 0x02b7,
+ 0x02e7, 0x0439, 0x03fe, 0x03f8, 0x038d, 0x0309,
+ 0x02db, 0x029f, 0x02ac, 0x019b, 0x0225, 0x036c,
+ 0x01aa, 0x00e0, 0x0093, 0xff85, 0x010d, 0x0158,
+ 0x003d, 0x0154, 0x00a1, 0xff6a, 0x006d, 0x006b,
+ 0x0022, 0x0000, 0xff46, 0xfea7, 0xfddc, 0xfe3f,
+ 0xfe47, 0xfd32, 0xfda3, 0xfd7f, 0xfc12, 0xfc07,
+ 0xfca8, 0xfc5b, 0xfc50, 0xfd0b, 0xfc83, 0xfbb7,
+ 0xfbf3, 0xfc36, 0xfce4, 0xfd8b, 0xfdbf, 0xfe1c,
+ 0xfe54, 0xfd8d, 0xfcda, 0xfdc0, 0xfdf8, 0xfd00,
+ 0xfc28, 0xfb85, 0xfc2a, 0xfcd9, 0xfd46, 0xfe03,
+ 0xfdf8, 0xfe3f, 0xff35, 0xffbd, 0xff20, 0xff2b,
+ 0x0000, 0xfe68, 0xfd6d, 0xfe3d, 0xfd94, 0xfd12,
+ 0xfda7, 0xfe31, 0xfdbe, 0xfd4d, 0xfd7a, 0xfc9f,
+ 0xfc1c, 0xfc3b, 0xfccb, 0xfd97, 0xfd2d, 0xfd3a,
+ 0xfcbe, 0xfc61, 0xfdff, 0xfe04, 0xfdcb, 0xfe04,
+ 0xfc9f, 0xfcca, 0xfdd8, 0xfdd0, 0xfea0, 0xff1b,
+ 0xfe59, 0xfe9a, 0xfefa, 0xfde1, 0xfd92, 0xfdcc,
+ 0xfc70, 0xfbfd, 0xfd3b, 0xfd35, 0xfd4a, 0xfe3d,
+ 0xfdd1, 0xfde1, 0xfe19, 0xfd2a, 0xfd45, 0xfd28,
+ 0xfd01, 0xfdd1, 0xfdc2, 0xfd72, 0xfd1f, 0xfd46,
+ 0xfdd9, 0xfdbd, 0xfdf3, 0xfd6e, 0xfc6a, 0xfc64,
+ 0xfc9f, 0xfd12, 0xfc41, 0xfa71, 0xfa98, 0xfb00,
+ 0xf9b8, 0xfa00, 0xfb4f, 0xfa65, 0xfa8d, 0xfbba,
+ 0xfab0, 0xf9ed, 0xfa06, 0xf95e, 0xf8b4, 0xf962,
+ 0xf95b, 0xf788, 0xf7fd, 0xf8d2, 0xf7ea, 0xf7ce,
+ 0xf749, 0xf6e7, 0xf6a4, 0xf605, 0xf630, 0xf690,
+ 0xf7d3, 0xf7be, 0xf6bf, 0xf770, 0xf78a, 0xf84d,
+ 0xf8df, 0xf845, 0xf8fb, 0xf8a1, 0xf836, 0xf8dd,
+ 0xf87b, 0xf894, 0xf8e7, 0xf956, 0xf9d0, 0xf8bd,
+ 0xf8a6, 0xf921, 0xf80c, 0xf8d4, 0xfa0a, 0xf8d2,
+ 0xf92b, 0xf9f6, 0xf8ff, 0xf960, 0xfa13, 0xfa21,
+ 0xfab1, 0xfb2e, 0xfb9c, 0xfbb5, 0xfb9f, 0xfc37,
+ 0xfd17, 0xfd06, 0xfc90, 0xfc87, 0xfbb0, 0xfb53,
+ 0xfbf6, 0xfc20, 0xfcde, 0xfc97, 0xfb03, 0xfb4d,
+ 0xfbe5, 0xfba4, 0xfcd0, 0xfdff, 0xfdd1, 0xfe52,
+ 0xfe7c, 0xfe64, 0xffb2, 0xffc9, 0xfeed, 0xfe9b,
+ 0xfec5, 0xfff3, 0x0046, 0xffe5, 0xff7a, 0xfee7,
+ 0xfec6, 0xfe59, 0xfe9f, 0xff13, 0xff31, 0xfee9,
+ 0xfdc1, 0xff06, 0xffb9, 0xfde2, 0xfe5b, 0xff18,
+ 0xff35, 0x0035, 0x0061, 0xffdd, 0xffa0, 0xfffd,
+ 0xffd5, 0x0019, 0x00f1, 0xffc1, 0xfee6, 0xffd0,
+ 0x00cb, 0x011c, 0x005f, 0xffe6, 0xffdb, 0x0007,
+ 0x00b4, 0x0130, 0x0155, 0x010e, 0x0113, 0x0161,
+ 0x018d, 0x02b0, 0x03b6, 0x033d, 0x0328, 0x042a,
+ 0x0402, 0x02f3, 0x0299, 0x0278, 0x0211, 0x0109,
+ 0x00e2, 0x0187, 0x007c, 0x0053, 0x0166, 0x00a6,
+ 0x0083, 0x0158, 0x0012, 0xff08, 0xfff5, 0x000e,
+ 0xff6b, 0xfec5, 0xfe4d, 0xfef4, 0xfec3, 0xfe76,
+ 0xfef8, 0xfe10, 0xfdb6, 0xfe3a, 0xfde3, 0xfdf2,
+ 0xfdfd, 0xfcf4, 0xfc5e, 0xfd67, 0xfd77, 0xfc4a,
+ 0xfc72, 0xfd2f, 0xfdd6, 0xfe3a, 0xfede, 0xffd7,
+ 0xffb2, 0xffcb, 0x0068, 0x00ba, 0x0084, 0x0077,
+ 0x0174, 0x0126, 0x01c4, 0x0367, 0x026d, 0x0270,
+ 0x0231, 0x007a, 0x00f9, 0x01b1, 0x0251, 0x0298,
+ 0x01f0, 0x029a, 0x0339, 0x0359, 0x03ce, 0x03de,
+ 0x03d1, 0x03e3, 0x0403, 0x03f7, 0x03a7, 0x02ee,
+ 0x0242, 0x026e, 0x027c, 0x0224, 0x021e, 0x01b0,
+ 0x00e8, 0x00d6, 0x0047, 0xff9a, 0xffed, 0xfeb0,
+ 0xfde1, 0xff51, 0xff77, 0xff7f, 0xff46, 0xfe32,
+ 0xff1d, 0xff75, 0xff22, 0x0077, 0x00a2, 0xfffa,
+ 0xffff, 0x0016, 0x0117, 0x013d, 0xffd5, 0xff8c,
+ 0xff9f, 0xffbf, 0xffe6, 0xfec1, 0xfe7e, 0xfee4,
+ 0xff13, 0xffa4, 0xff47, 0xffbd, 0x008a, 0x007b,
+ 0x010b, 0x00da, 0x0180, 0x02a5, 0x01e9, 0x01fb,
+ 0x02b0, 0x02f6, 0x0290, 0x0188, 0x01ca, 0x0219,
+ 0x01ed, 0x0271, 0x0281, 0x01b7, 0x01b5, 0x0279,
+ 0x0209, 0x01a2, 0x0207, 0x01ac, 0x0108, 0x011f,
+ 0x0248, 0x028e, 0x024e, 0x032d, 0x0328, 0x0377,
+ 0x03bd, 0x029a, 0x0297, 0x0283, 0x0274, 0x02b3,
+ 0x017a, 0x015d, 0x01d9, 0x00b5, 0x0034, 0x00a7,
+ 0x00aa, 0x00ff, 0x0163, 0x0044, 0xff5b, 0x0037,
+ 0x0106, 0x014a, 0x01c7, 0x0239, 0x0298, 0x032e,
+ 0x03e1, 0x04b9, 0x04cf, 0x03f2, 0x0494, 0x0596,
+ 0x0517, 0x0541, 0x0540, 0x0425, 0x03f1, 0x0403,
+ 0x0375, 0x032b, 0x030d, 0x02b4, 0x0275, 0x01fe,
+ 0x0187, 0x0162, 0x011a, 0x014d, 0x01a4, 0x01ad,
+ 0x01e3, 0x022b, 0x023c, 0x016d, 0x0121, 0x0131,
+ 0xfffe, 0xff50, 0xfe7a, 0xfdd4, 0xfeb5, 0xfe85,
+ 0xfe1e, 0xfe51, 0xfdea, 0xfd7e, 0xfd15, 0xfd1d,
+ 0xfcfe, 0xfc75, 0xfc84, 0xfcca, 0xfd37, 0xfdf5,
+ 0xfec2, 0xfeee, 0xff09, 0xff65, 0xff4e, 0xffbe,
+ 0xff90, 0xfefc, 0xff7a, 0xfea5, 0xfd8b, 0xfd77,
+ 0xfd6b, 0xfdd5, 0xfd6a, 0xfcb1, 0xfc64, 0xfb93,
+ 0xfb83, 0xfbbd, 0xfb9f, 0xfc52, 0xfcbb, 0xfc38,
+ 0xfc67, 0xfd1c, 0xfd93, 0xfe48, 0xfebd, 0xff20,
+ 0xff4b, 0xfe5e, 0xfdf4, 0xfdfe, 0xfd7b, 0xfdad,
+ 0xfe13, 0xfdb5, 0xfd6f, 0xfd63, 0xfcec, 0xfc75,
+ 0xfc68, 0xfc5e, 0xfc74, 0xfca8, 0xfcdc, 0xfd16,
+ 0xfd51, 0xfd82, 0xfd3e, 0xfd0f, 0xfd47, 0xfd19,
+ 0xfccd, 0xfd1d, 0xfd23, 0xfc1a, 0xfbac, 0xfbca,
+ 0xfb79, 0xfb79, 0xfaf7, 0xfb10, 0xfc1b, 0xfbea,
+ 0xfc3b, 0xfce2, 0xfc80, 0xfc98, 0xfcd3, 0xfcd3,
+ 0xfcd8, 0xfce4, 0xfcb8, 0xfc05, 0xfbec, 0xfc88,
+ 0xfd44, 0xfdbc, 0xfd94, 0xfd7f, 0xfd93, 0xfd25,
+ 0xfc4b, 0xfc28, 0xfc6e, 0xfc8b, 0xfd51, 0xfd90,
+ 0xfd67, 0xfd6b, 0xfcbf, 0xfd1d, 0xfe0b, 0xfe21,
+ 0xfe3e, 0xfe69, 0xfedf, 0xfebb, 0xfe71, 0xff4e,
+ 0xff67, 0xff6d, 0xffd9, 0xfeda, 0xfec2, 0x0024,
+ 0x0069, 0x004c, 0x0055, 0xffca, 0xff64, 0xff4a,
+ 0xff9e, 0x001d, 0xfffa, 0x000d, 0x0017, 0xff7e,
+ 0xff2f, 0xfeff, 0xfeaa, 0xfe72, 0xfe8f, 0xfece,
+ 0xfe5c, 0xfdd6, 0xfdef, 0xfe09, 0xfe10, 0xfe93,
+ 0xff05, 0xff05, 0xffe7, 0x00aa, 0xffb8, 0xff7b,
+ 0x0089, 0x00bd, 0x0081, 0x0020, 0xff60, 0x0012,
+ 0x0104, 0x004a, 0x004e, 0x009f, 0xffcc, 0xffb3,
+ 0x004e, 0x008e, 0xffab, 0xfeee, 0xffa7, 0xff67,
+ 0xff3b, 0x0075, 0x0093, 0x002a, 0x0006, 0xffac,
+ 0xffc3, 0x000c, 0x0034, 0x0078, 0x00cc, 0x0132,
+ 0x01d1, 0x01be, 0x0156, 0x0205, 0x019b, 0x0052,
+ 0x0106, 0x0172, 0x00c1, 0x0111, 0x00e3, 0xffef,
+ 0x0073, 0x012a, 0x0100, 0x01b3, 0x0226, 0x017c,
+ 0x01a9, 0x022b, 0x024f, 0x02bc, 0x02e5, 0x02ef,
+ 0x034b, 0x035b, 0x0332, 0x033d, 0x031f, 0x02ff,
+ 0x0349, 0x0360, 0x0331, 0x034d, 0x0391, 0x0394,
+ 0x0367, 0x03b4, 0x045f, 0x0453, 0x03e9, 0x049d,
+ 0x05c0, 0x05c0, 0x0562, 0x057a, 0x055d, 0x04f4,
+ 0x04e8, 0x0523, 0x0508, 0x0530, 0x060d, 0x060d,
+ 0x04d0, 0x0442, 0x0440, 0x033a, 0x0293, 0x0337,
+ 0x0351, 0x02fd, 0x0324, 0x0321, 0x033b, 0x03dc,
+ 0x0406, 0x035f, 0x030b, 0x02dd, 0x0246, 0x023c,
+ 0x023f, 0x01dc, 0x0223, 0x0245, 0x01f0, 0x0243,
+ 0x0266, 0x0210, 0x025f, 0x026c, 0x0206, 0x0296,
+ 0x02ea, 0x028a, 0x02eb, 0x0365, 0x03ed, 0x04a6,
+ 0x042c, 0x03b1, 0x042a, 0x03ef, 0x037f, 0x03b7,
+ 0x038e, 0x0367, 0x03c9, 0x0429, 0x0490, 0x04e3,
+ 0x053c, 0x05c5, 0x05b6, 0x0510, 0x04dd, 0x05ad,
+ 0x06a0, 0x0660, 0x05f3, 0x0683, 0x06d0, 0x0661,
+ 0x05ec, 0x0584, 0x0561, 0x0524, 0x0472, 0x0435,
+ 0x0429, 0x03f0, 0x04a0, 0x057e, 0x0583, 0x0586,
+ 0x05a4, 0x05c1, 0x05e0, 0x05a6, 0x058b, 0x0541,
+ 0x0487, 0x04e9, 0x05f3, 0x064a, 0x06fe, 0x07ff,
+ 0x0836, 0x07fd, 0x0776, 0x06fe, 0x06e7, 0x066f,
+ 0x05d0, 0x0547, 0x0478, 0x0460, 0x0518, 0x0585,
+ 0x05df, 0x0643, 0x0663, 0x0691, 0x06d9, 0x074a,
+ 0x079a, 0x071b, 0x06b1, 0x070d, 0x0726, 0x06d9,
+ 0x06c2, 0x06db, 0x0736, 0x079d, 0x07ae, 0x07a7,
+ 0x07c8, 0x07d7, 0x0762, 0x06b9, 0x067d, 0x05db,
+ 0x0444, 0x0309, 0x02af, 0x0294, 0x02f8, 0x03ee,
+ 0x04b0, 0x054d, 0x0659, 0x071b, 0x0692, 0x057d,
+ 0x04fa, 0x049d, 0x0407, 0x03c5, 0x03f1, 0x0490,
+ 0x05c6, 0x06d6, 0x0719, 0x0736, 0x07b3, 0x07ec,
+ 0x0781, 0x06d3, 0x0600, 0x057c, 0x05b4, 0x05e6,
+ 0x05e4, 0x0677, 0x0706, 0x06e2, 0x06ee, 0x078b,
+ 0x080b, 0x0817, 0x0801, 0x0809, 0x07e8, 0x07b4,
+ 0x07d6, 0x07c3, 0x06ff, 0x060b, 0x052f, 0x0440,
+ 0x0385, 0x03a2, 0x0451, 0x0474, 0x043d, 0x0460,
+ 0x0455, 0x040f, 0x0385, 0x024a, 0x0190, 0x01a5,
+ 0x016b, 0x01c1, 0x029f, 0x029d, 0x02ae, 0x02d0,
+ 0x01d7, 0x00fe, 0x0074, 0xff63, 0xff22, 0xffc4,
+ 0xffef, 0xffdc, 0xfff3, 0x0060, 0x0115, 0x0134,
+ 0x00e4, 0x00a2, 0xfff7, 0xff21, 0xfecf, 0xff1e,
+ 0xffeb, 0x00b2, 0x0148, 0x01ed, 0x023f, 0x01d9,
+ 0x0108, 0x0057, 0xffa4, 0xfe79, 0xfda3, 0xfd7a,
+ 0xfcf4, 0xfcce, 0xfde3, 0xfe7c, 0xfe22, 0xfdee,
+ 0xfd92, 0xfcb3, 0xfb9d, 0xfae7, 0xfb40, 0xfbdb,
+ 0xfbda, 0xfbd6, 0xfc04, 0xfc52, 0xfc93, 0xfc29,
+ 0xfb96, 0xfb4c, 0xfaad, 0xfa28, 0xfa1c, 0xfa1d,
+ 0xfa68, 0xfaab, 0xfa7f, 0xfa8e, 0xfa95, 0xfa54,
+ 0xfa8a, 0xfac3, 0xfab0, 0xfb48, 0xfc4d, 0xfd27,
+ 0xfe06, 0xfe55, 0xfdf5, 0xfdea, 0xfde4, 0xfd5b,
+ 0xfd40, 0xfd5a, 0xfcd9, 0xfd13, 0xfe38, 0xfe70,
+ 0xfe6b, 0xff31, 0xff0e, 0xfe04, 0xfdcc, 0xfdd4,
+ 0xfd5f, 0xfd13, 0xfd31, 0xfdc4, 0xfe9f, 0xff5b,
+ 0xffe8, 0xffae, 0xfe7b, 0xfd88, 0xfd0c, 0xfc6f,
+ 0xfc43, 0xfc94, 0xfcbd, 0xfd16, 0xfd61, 0xfceb,
+ 0xfca1, 0xfcca, 0xfc3f, 0xfb9c, 0xfbae, 0xfb6f,
+ 0xfb42, 0xfc50, 0xfd72, 0xfdcd, 0xfe1c, 0xfe66,
+ 0xfe74, 0xfe9a, 0xfeca, 0xfeda, 0xfef0, 0xff2b,
+ 0xff46, 0xff32, 0xff42, 0xff11, 0xfebc, 0xff42,
+ 0xff85, 0xfe8d, 0xfe48, 0xfed8, 0xfe9a, 0xfe6e,
+ 0xfec0, 0xfe90, 0xfe7f, 0xfede, 0xfec1, 0xfe2e,
+ 0xfdd7, 0xfe09, 0xfe55, 0xfe4f, 0xfe69, 0xfe65,
+ 0xfdca, 0xfd75, 0xfd74, 0xfcb5, 0xfb8e, 0xfaf1,
+ 0xfabe, 0xfab4, 0xfb4b, 0xfc63, 0xfd12, 0xfdce,
+ 0xfefb, 0xff4d, 0xff1a, 0xff4b, 0xfeca, 0xfe2d,
+ 0xfe97, 0xfeb8, 0xfebf, 0xffab, 0x0064, 0x00c0,
+ 0x0137, 0x0130, 0x00ac, 0xffdb, 0xff06, 0xfeb9,
+ 0xfe88, 0xfe7c, 0xfed9, 0xff21, 0xffc6, 0x006a,
+ 0xffe5, 0xffbe, 0x00a1, 0x00ce, 0x00bd, 0x0139,
+ 0x0127, 0x00a9, 0x00b7, 0x012b, 0x012c, 0x0076,
+ 0xffdd, 0xff78, 0xfef3, 0xff29, 0xffaf, 0xff52,
+ 0xfef5, 0xff07, 0xfedf, 0xfed8, 0xfedd, 0xfeab,
+ 0xfec0, 0xfeef, 0xff1a, 0xff7a, 0xff93, 0xff85,
+ 0xffc0, 0xffb4, 0xff55, 0xff34, 0xff2c, 0xfeff,
+ 0xfee1, 0xfefa, 0xff10, 0xfed6, 0xfe76, 0xfe4e,
+ 0xfe6e, 0xfe87, 0xfe6f, 0xfe6f, 0xfe7f, 0xfe34,
+ 0xfdb9, 0xfd70, 0xfd9b, 0xfe4d, 0xfec0, 0xfea1,
+ 0xfea1, 0xfe9a, 0xfe48, 0xfe3a, 0xfe20, 0xfd7e,
+ 0xfd0a, 0xfd17, 0xfd18, 0xfce1, 0xfcb0, 0xfc84,
+ 0xfc15, 0xfb8a, 0xfb62, 0xfb50, 0xfaee, 0xfb18,
+ 0xfc21, 0xfcb4, 0xfcaa, 0xfd2e, 0xfd92, 0xfd28,
+ 0xfd37, 0xfdc5, 0xfdf7, 0xfe63, 0xff09, 0xff7c,
+ 0x0016, 0x0070, 0x0094, 0x012a, 0x019c, 0x01db,
+ 0x0223, 0x01dc, 0x01b7, 0x01f4, 0x01b3, 0x01d9,
+ 0x0270, 0x0250, 0x0275, 0x0313, 0x0340, 0x03ac,
+ 0x040e, 0x03e8, 0x0445, 0x04ab, 0x048d, 0x0505,
+ 0x05d0, 0x060b, 0x05e3, 0x05a5, 0x0590, 0x056d,
+ 0x052d, 0x0559, 0x0571, 0x0511, 0x04eb, 0x04fc,
+ 0x0531, 0x0585, 0x0555, 0x04ea, 0x04b9, 0x0462,
+ 0x044c, 0x0480, 0x041b, 0x0386, 0x03a4, 0x03f0,
+ 0x03b6, 0x036b, 0x0377, 0x0323, 0x027b, 0x025f,
+ 0x024b, 0x0203, 0x01fa, 0x015d, 0x006b, 0x003d,
+ 0xfffa, 0xff7c, 0xff67, 0xff0d, 0xfed0, 0xff54,
+ 0xffb6, 0xfffc, 0x005e, 0x005d, 0x005b, 0x0067,
+ 0x0045, 0x0061, 0x0050, 0x0006, 0x005a, 0x00c3,
+ 0x009b, 0x0031, 0xffc5, 0xffd4, 0x001a, 0xffa4,
+ 0xfeff, 0xfee1, 0xfed1, 0xfeea, 0xff6c, 0xffd2,
+ 0xffdd, 0xffb7, 0xff98, 0xffa5, 0xff98, 0xff14,
+ 0xfe65, 0xfe18, 0xfdfb, 0xfde1, 0xfe4c, 0xfee5,
+ 0xfed1, 0xfe95, 0xfec6, 0xfed3, 0xfe67, 0xfdc2,
+ 0xfd41, 0xfcff, 0xfcda, 0xfd12, 0xfdab, 0xfe33,
+ 0xfec4, 0xff33, 0xff1f, 0xff1a, 0xff30, 0xfeed,
+ 0xfec3, 0xfea2, 0xfe43, 0xfe51, 0xfeb8, 0xfef7,
+ 0xff68, 0xffd7, 0xffcf, 0xffa7, 0xff87, 0xff29,
+ 0xfe7c, 0xfdee, 0xfdfa, 0xfe33, 0xfe28, 0xfe35,
+ 0xfe38, 0xfe1f, 0xfe7f, 0xfeed, 0xfecb, 0xfe9b,
+ 0xfe5e, 0xfdb4, 0xfd30, 0xfd38, 0xfd67, 0xfd7d,
+ 0xfd82, 0xfdc1, 0xfe43, 0xfe6f, 0xfe3f, 0xfe56,
+ 0xfe75, 0xfe30, 0xfe10, 0xfe50, 0xfe87, 0xfeaa,
+ 0xfeb0, 0xfe72, 0xfe21, 0xfdcc, 0xfd5f, 0xfd03,
+ 0xfcdf, 0xfcf7, 0xfd0d, 0xfcd1, 0xfc85, 0xfc75,
+ 0xfc70, 0xfc4e, 0xfbfa, 0xfb96, 0xfb57, 0xfad9,
+ 0xfa2c, 0xfa07, 0xf9fd, 0xf989, 0xf96c, 0xf9c0,
+ 0xf9e0, 0xf9e4, 0xfa04, 0xfa33, 0xfa43, 0xf9e9,
+ 0xf972, 0xf96c, 0xf990, 0xf978, 0xf955, 0xf954,
+ 0xf96b, 0xf9a1, 0xf9df, 0xf9cf, 0xf986, 0xf953,
+ 0xf921, 0xf93c, 0xf9f4, 0xfa80, 0xfa90, 0xfad4,
+ 0xfb4d, 0xfb90, 0xfb7f, 0xfb4b, 0xfb70, 0xfb90,
+ 0xfb46, 0xfb64, 0xfbd9, 0xfc17, 0xfcc0, 0xfd93,
+ 0xfddc, 0xfe0d, 0xfe05, 0xfdc4, 0xfe16, 0xfe6a,
+ 0xfe40, 0xfe4b, 0xfe85, 0xfed4, 0xff60, 0xffc6,
+ 0x0006, 0x0045, 0x0072, 0x00af, 0x00af, 0x0079,
+ 0x00b6, 0x012b, 0x0195, 0x0215, 0x024e, 0x0276,
+ 0x02a1, 0x025f, 0x0264, 0x02be, 0x0289, 0x027a,
+ 0x02df, 0x0319, 0x03a6, 0x042d, 0x0412, 0x046a,
+ 0x04f2, 0x0489, 0x0423, 0x0449, 0x0439, 0x0420,
+ 0x0452, 0x04c0, 0x0585, 0x0654, 0x06b5, 0x06a6,
+ 0x0684, 0x06b0, 0x06df, 0x0684, 0x0604, 0x061b,
+ 0x06ac, 0x070f, 0x071a, 0x0724, 0x075a, 0x0797,
+ 0x0788, 0x070f, 0x06c5, 0x06e9, 0x06d1, 0x06a4,
+ 0x0701, 0x078e, 0x0811, 0x0897, 0x08ad, 0x0875,
+ 0x0851, 0x07e0, 0x0743, 0x070f, 0x0703, 0x06cf,
+ 0x06a7, 0x06a0, 0x06ab, 0x06a6, 0x0672, 0x0618,
+ 0x058e, 0x04f0, 0x0499, 0x0468, 0x0408, 0x03ac,
+ 0x038b, 0x036e, 0x0339, 0x031e, 0x034c, 0x039e,
+ 0x03da, 0x041b, 0x0460, 0x0481, 0x04b5, 0x04f6,
+ 0x04df, 0x04ab, 0x04ad, 0x0496, 0x043b, 0x0402,
+ 0x044b, 0x04b3, 0x04a8, 0x04ac, 0x0526, 0x055f,
+ 0x054a, 0x0563, 0x0582, 0x059c, 0x0580, 0x0533,
+ 0x059a, 0x060c, 0x057c, 0x0560, 0x0620, 0x0616,
+ 0x058e, 0x0563, 0x052a, 0x04fd, 0x04c8, 0x0439,
+ 0x03f3, 0x0420, 0x0439, 0x043c, 0x044f, 0x0498,
+ 0x0504, 0x0524, 0x04ff, 0x04a0, 0x0410, 0x03e6,
+ 0x040f, 0x0419, 0x0456, 0x04e7, 0x057b, 0x05e6,
+ 0x060a, 0x061d, 0x0633, 0x060a, 0x05d6, 0x05a6,
+ 0x054a, 0x0530, 0x0568, 0x0580, 0x0598, 0x05eb,
+ 0x066b, 0x06d4, 0x06f2, 0x0737, 0x07af, 0x07a7,
+ 0x073c, 0x0717, 0x0749, 0x077b, 0x0764, 0x0770,
+ 0x07f3, 0x0833, 0x080c, 0x07ee, 0x0794, 0x0728,
+ 0x06ea, 0x0661, 0x05f8, 0x0613, 0x05f8, 0x05b8,
+ 0x05bf, 0x05a6, 0x058c, 0x05b2, 0x058b, 0x04ed,
+ 0x0488, 0x04a1, 0x04a4, 0x0470, 0x0473, 0x0446,
+ 0x03ba, 0x03b2, 0x0412, 0x0438, 0x046b, 0x047d,
+ 0x0434, 0x0401, 0x03a8, 0x033f, 0x036f, 0x03a4,
+ 0x0390, 0x03eb, 0x0458, 0x0465, 0x048a, 0x04ce,
+ 0x051a, 0x0591, 0x05dd, 0x05fe, 0x0632, 0x0636,
+ 0x062a, 0x066c, 0x06bc, 0x06dd, 0x06f1, 0x06ea,
+ 0x06b7, 0x066a, 0x0626, 0x0609, 0x05fb, 0x05d0,
+ 0x0584, 0x0522, 0x04ce, 0x04af, 0x0498, 0x0472,
+ 0x045e, 0x0457, 0x0480, 0x04d3, 0x04bd, 0x044c,
+ 0x0419, 0x03ee, 0x0380, 0x0324, 0x02d5, 0x026b,
+ 0x0231, 0x0239, 0x021d, 0x01b5, 0x017b, 0x01a4,
+ 0x019b, 0x015d, 0x017e, 0x01bf, 0x01e4, 0x0222,
+ 0x0242, 0x024e, 0x028d, 0x02bc, 0x02e8, 0x0342,
+ 0x0370, 0x0373, 0x0394, 0x03d9, 0x0419, 0x03fd,
+ 0x03c3, 0x03cd, 0x036e, 0x02d0, 0x030d, 0x0382,
+ 0x0378, 0x0393, 0x0398, 0x0340, 0x034e, 0x039c,
+ 0x03b4, 0x03da, 0x03ed, 0x03c2, 0x0398, 0x036c,
+ 0x034f, 0x0340, 0x02fd, 0x02b8, 0x028d, 0x022b,
+ 0x01ab, 0x013c, 0x00e2, 0x00ba, 0x007d, 0x0006,
+ 0xffcc, 0xffd2, 0xffe5, 0x001b, 0x0029, 0x0004,
+ 0x0025, 0x003e, 0x001b, 0x0057, 0x00c7, 0x00e7,
+ 0x00ed, 0x00f0, 0x00ee, 0x0126, 0x0160, 0x014a,
+ 0x0129, 0x0144, 0x015f, 0x0141, 0x0142, 0x0183,
+ 0x0163, 0x010d, 0x013b, 0x017a, 0x0167, 0x017a,
+ 0x01aa, 0x01ed, 0x0255, 0x025c, 0x020b, 0x01d4,
+ 0x01b5, 0x01de, 0x021c, 0x01c8, 0x014d, 0x0112,
+ 0x00c9, 0x00b8, 0x00da, 0x00a6, 0x0049, 0xfff0,
+ 0xff9c, 0xff96, 0xff77, 0xff0c, 0xff11, 0xff62,
+ 0xff5f, 0xff6b, 0xffac, 0xff9e, 0xff89, 0xffdd,
+ 0x0017, 0xffed, 0xffcf, 0xffcc, 0xffb6, 0xffb1,
+ 0xff94, 0xff81, 0xffe9, 0x003a, 0x0023, 0x004a,
+ 0x008c, 0x00a2, 0x00e7, 0x010b, 0x0113, 0x0197,
+ 0x0218, 0x0237, 0x0263, 0x027a, 0x0276, 0x0280,
+ 0x024e, 0x0219, 0x01fa, 0x018b, 0x014c, 0x0176,
+ 0x0136, 0x00bd, 0x00be, 0x00cf, 0x0087, 0x0044,
+ 0x0041, 0x0041, 0x0024, 0x0003, 0xffcd, 0xffc2,
+ 0x0037, 0x006a, 0x0001, 0xfff0, 0x0021, 0x0006,
+ 0x0032, 0x008b, 0x0058, 0x002a, 0x0077, 0x00ae,
+ 0x0083, 0x0040, 0x004f, 0x0087, 0x0059, 0x0035,
+ 0x0088, 0x00ba, 0x00ef, 0x0184, 0x01bb, 0x01c1,
+ 0x0268, 0x02d5, 0x0288, 0x0282, 0x02ba, 0x0298,
+ 0x0299, 0x02dc, 0x02cf, 0x027a, 0x0233, 0x0214,
+ 0x01ff, 0x01b3, 0x0154, 0x010c, 0x00a8, 0x0063,
+ 0x0082, 0x007d, 0x0050, 0x0093, 0x00db, 0x00ae,
+ 0x009e, 0x00f0, 0x013a, 0x0165, 0x0190, 0x019c,
+ 0x0182, 0x0187, 0x019c, 0x0165, 0x011c, 0x0139,
+ 0x0173, 0x0163, 0x0123, 0x00e1, 0x00d4, 0x00f6,
+ 0x00e2, 0x00ab, 0x00c6, 0x0122, 0x014f, 0x014b,
+ 0x01a5, 0x024f, 0x0269, 0x0239, 0x029b, 0x02ee,
+ 0x02fb, 0x037a, 0x03cc, 0x038a, 0x037b, 0x0344,
+ 0x02a8, 0x0273, 0x0244, 0x01c1, 0x0194, 0x0173,
+ 0x010c, 0x00d3, 0x00a0, 0x0088, 0x00e6, 0x0104,
+ 0x0090, 0x0052, 0x0066, 0x0057, 0x0053, 0x00b2,
+ 0x0112, 0x00eb, 0x00ad, 0x00be, 0x00a4, 0x0043,
+ 0xffea, 0xffab, 0xffb6, 0xffcd, 0xff92, 0xff73,
+ 0xff70, 0xff2e, 0xff12, 0xff25, 0xff0e, 0xfef8,
+ 0xfeff, 0xff56, 0xfff0, 0xfff9, 0xffb9, 0xffee,
+ 0x0000, 0xfff0, 0x003c, 0x004e, 0x0018, 0x0015,
+ 0x0001, 0x0003, 0x0018, 0xffc0, 0xff7a, 0xff79,
+ 0xff26, 0xfef9, 0xff18, 0xfed8, 0xfeb1, 0xfef2,
+ 0xfee8, 0xfecc, 0xff31, 0xffa0, 0xff88, 0xff1f,
+ 0xff03, 0xff3f, 0xff52, 0xff59, 0xffa7, 0xfffb,
+ 0x0028, 0x0026, 0xfff1, 0xffd2, 0xffc7, 0xff7c,
+ 0xff35, 0xff51, 0xffa1, 0xffdd, 0xfff4, 0xffeb,
+ 0xffcb, 0xffb7, 0xffce, 0xffd1, 0xffa6, 0xff99,
+ 0xff98, 0xff9a, 0xffdc, 0xfff5, 0xffb6, 0xffdf,
+ 0x004d, 0x004c, 0x0044, 0x0077, 0x0074, 0x0090,
+ 0x00fb, 0x00ed, 0x0075, 0x0062, 0x009b, 0x00c7,
+ 0x0101, 0x0114, 0x00f3, 0x011b, 0x016c, 0x016c,
+ 0x0172, 0x01b0, 0x01a2, 0x016f, 0x01ab, 0x01f5,
+ 0x01db, 0x01db, 0x022a, 0x022e, 0x01eb, 0x01e7,
+ 0x01d9, 0x0173, 0x0124, 0x00f4, 0x00bc, 0x00d5,
+ 0x0109, 0x00d2, 0x0091, 0x008c, 0x005f, 0x0022,
+ 0x001d, 0x0033, 0x004d, 0x002e, 0xffc6, 0xff94,
+ 0xffb4, 0xffb4, 0xff93, 0xff7a, 0xff61, 0xff56,
+ 0xff63, 0xff78, 0xff8a, 0xff63, 0xff16, 0xff1f,
+ 0xff72, 0xffab, 0xffdd, 0x001e, 0x0048, 0x0056,
+ 0x004e, 0x0060, 0x00af, 0x00cd, 0x0097, 0x0082,
+ 0x0073, 0x0047, 0x0069, 0x00b1, 0x00ba, 0x00c5,
+ 0x00e5, 0x00ee, 0x00fc, 0x0129, 0x0173, 0x018b,
+ 0x0138, 0x00fd, 0x00f5, 0x009c, 0x0041, 0x005f,
+ 0x00a9, 0x00df, 0x00e1, 0x0099, 0x0050, 0x001e,
+ 0xffff, 0x000f, 0x001f, 0x0011, 0x0000, 0xffda,
+ 0xffc4, 0xffcd, 0xffa4, 0xff75, 0xff81, 0xffa0,
+ 0xffc3, 0xffb8, 0xff6c, 0xff4d, 0xff47, 0xfef2,
+ 0xfe9d, 0xfe91, 0xfe99, 0xfe80, 0xfe5a, 0xfe6b,
+ 0xfe85, 0xfe5a, 0xfe4e, 0xfe7f, 0xfe75, 0xfe7f,
+ 0xfee7, 0xff10, 0xfef3, 0xff11, 0xff27, 0xfef2,
+ 0xfedd, 0xfee7, 0xfe9f, 0xfe3a, 0xfe30, 0xfe54,
+ 0xfe6f, 0xfe9f, 0xfebe, 0xfebc, 0xfed4, 0xfee6,
+ 0xfeea, 0xff37, 0xff89, 0xff62, 0xff0f, 0xff11,
+ 0xff50, 0xff5e, 0xff18, 0xfed7, 0xfed1, 0xfece,
+ 0xfec1, 0xfec9, 0xfecb, 0xfea2, 0xfe66, 0xfe4d,
+ 0xfe4c, 0xfe0e, 0xfdb9, 0xfdb4, 0xfdd8, 0xfdee,
+ 0xfe04, 0xfdfc, 0xfdec, 0xfdea, 0xfda5, 0xfd32,
+ 0xfcf6, 0xfcdd, 0xfcd0, 0xfcce, 0xfcaf, 0xfc8c,
+ 0xfc78, 0xfc67, 0xfc6c, 0xfc68, 0xfc4b, 0xfc49,
+ 0xfc4d, 0xfc4f, 0xfc7f, 0xfcba, 0xfccc, 0xfcbb,
+ 0xfca7, 0xfcb9, 0xfcd2, 0xfcd8, 0xfd0a, 0xfd3f,
+ 0xfd31, 0xfd21, 0xfd33, 0xfd30, 0xfd09, 0xfcfa,
+ 0xfd39, 0xfd5a, 0xfd15, 0xfd03, 0xfd37, 0xfd3e,
+ 0xfd55, 0xfd8c, 0xfd8e, 0xfd83, 0xfd97, 0xfdb2,
+ 0xfdbd, 0xfdbb, 0xfde8, 0xfe1f, 0xfe10, 0xfe10,
+ 0xfe38, 0xfe4d, 0xfe88, 0xfed3, 0xff03, 0xff2a,
+ 0xfee3, 0xfe77, 0xfeb1, 0xff14, 0xff13, 0xff0b,
+ 0xff0b, 0xff26, 0xff8b, 0xffc5, 0xffbb, 0xffcc,
+ 0xfff1, 0x001c, 0x0073, 0x00e1, 0x011e, 0x0115,
+ 0x0123, 0x016b, 0x0198, 0x01ac, 0x01c0, 0x019d,
+ 0x0167, 0x0159, 0x0151, 0x0160, 0x0196, 0x01b9,
+ 0x01af, 0x01a5, 0x01d0, 0x0223, 0x0246, 0x0235,
+ 0x0244, 0x0262, 0x0265, 0x0286, 0x02b5, 0x02b0,
+ 0x02b2, 0x02d5, 0x02e0, 0x02e9, 0x02f7, 0x02df,
+ 0x02c6, 0x029c, 0x023a, 0x0212, 0x0228, 0x01f7,
+ 0x01c5, 0x01f3, 0x020e, 0x01d3, 0x01a1, 0x01a7,
+ 0x01a7, 0x0198, 0x01bd, 0x01f0, 0x01e4, 0x01c2,
+ 0x0193, 0x0158, 0x016e, 0x01a4, 0x0161, 0x0107,
+ 0x0132, 0x0171, 0x0153, 0x013a, 0x014e, 0x012a,
+ 0x00e5, 0x00c6, 0x00ab, 0x009c, 0x00ab, 0x00ae,
+ 0x00c4, 0x00e4, 0x00cc, 0x00b5, 0x00c2, 0x00cb,
+ 0x00f1, 0x012c, 0x0140, 0x0132, 0x0108, 0x00ef,
+ 0x0115, 0x014d, 0x018a, 0x01c7, 0x01bb, 0x0183,
+ 0x0158, 0x012b, 0x0112, 0x010e, 0x00f8, 0x00f5,
+ 0x0116, 0x0125, 0x0121, 0x0133, 0x0162, 0x017d,
+ 0x0173, 0x018a, 0x01d7, 0x0207, 0x01e6, 0x01ba,
+ 0x01c3, 0x01ba, 0x0182, 0x0186, 0x0197, 0x015f,
+ 0x0161, 0x01b1, 0x01c0, 0x01bd, 0x01e4, 0x01fe,
+ 0x0215, 0x022f, 0x023e, 0x025d, 0x0278, 0x029b,
+ 0x0304, 0x0370, 0x038d, 0x037b, 0x0357, 0x0337,
+ 0x033b, 0x0340, 0x0327, 0x0315, 0x0315, 0x0309,
+ 0x02f1, 0x02eb, 0x031e, 0x0382, 0x03ce, 0x03e7,
+ 0x03fa, 0x0404, 0x0405, 0x041f, 0x0433, 0x041f,
+ 0x0411, 0x041f, 0x0429, 0x0421, 0x041c, 0x0423,
+ 0x040f, 0x03e4, 0x03c3, 0x0395, 0x0363, 0x034b,
+ 0x0325, 0x0306, 0x031c, 0x0326, 0x0313, 0x0312,
+ 0x031f, 0x033b, 0x0353, 0x0354, 0x0352, 0x0337,
+ 0x032d, 0x0375, 0x03b2, 0x03d0, 0x0407, 0x0402,
+ 0x03f0, 0x044a, 0x0493, 0x049d, 0x04b3, 0x04a0,
+ 0x0472, 0x046d, 0x047d, 0x04b0, 0x04c5, 0x047a,
+ 0x0455, 0x0460, 0x045f, 0x04b4, 0x0527, 0x053b,
+ 0x0554, 0x0594, 0x05c1, 0x05f0, 0x05fe, 0x05ef,
+ 0x060a, 0x061c, 0x060f, 0x0612, 0x05f0, 0x05a9,
+ 0x0582, 0x056f, 0x0573, 0x0588, 0x056b, 0x054c,
+ 0x056a, 0x055b, 0x0509, 0x04e1, 0x04d3, 0x04c4,
+ 0x04e8, 0x050b, 0x04e8, 0x04d3, 0x04eb, 0x04dc,
+ 0x04b2, 0x04b6, 0x04ce, 0x04c5, 0x0488, 0x0435,
+ 0x03f2, 0x03c4, 0x03b8, 0x03e0, 0x040a, 0x0413,
+ 0x0425, 0x0461, 0x04b3, 0x04e7, 0x04f9, 0x052f,
+ 0x0592, 0x05cf, 0x05eb, 0x0603, 0x05ea, 0x05b3,
+ 0x05a5, 0x05aa, 0x058f, 0x0570, 0x0584, 0x059c,
+ 0x0555, 0x04fb, 0x0523, 0x0574, 0x0573, 0x056d,
+ 0x0581, 0x0573, 0x0576, 0x05ae, 0x05e1, 0x0612,
+ 0x0641, 0x063e, 0x0624, 0x0607, 0x05ca, 0x0593,
+ 0x057a, 0x054b, 0x04fa, 0x04af, 0x049f, 0x04c3,
+ 0x04d8, 0x04e6, 0x050d, 0x0520, 0x052f, 0x0559,
+ 0x0568, 0x0574, 0x05a4, 0x05c8, 0x05ea, 0x0613,
+ 0x0620, 0x061a, 0x0602, 0x05e4, 0x05d3, 0x057c,
+ 0x04fa, 0x04d2, 0x04ba, 0x046c, 0x0445, 0x043c,
+ 0x0431, 0x0437, 0x0434, 0x044d, 0x047b, 0x0457,
+ 0x042e, 0x0447, 0x0440, 0x0454, 0x04bf, 0x04fa,
+ 0x04fb, 0x0512, 0x0518, 0x0509, 0x04f8, 0x04ca,
+ 0x04ac, 0x04bd, 0x04c0, 0x04a5, 0x0482, 0x0455,
+ 0x0411, 0x03ab, 0x034e, 0x0336, 0x0341, 0x033e,
+ 0x033a, 0x0328, 0x031b, 0x0341, 0x0371, 0x0399,
+ 0x03cb, 0x03d8, 0x03e5, 0x0427, 0x0423, 0x03c9,
+ 0x039a, 0x038e, 0x038a, 0x0397, 0x0370, 0x031e,
+ 0x02e9, 0x02c6, 0x02ae, 0x0298, 0x0269, 0x024f,
+ 0x0250, 0x0243, 0x0245, 0x025f, 0x0277, 0x029c,
+ 0x02bc, 0x02a0, 0x024b, 0x0209, 0x020a, 0x0208,
+ 0x01d6, 0x01b9, 0x01ac, 0x0185, 0x018f, 0x01d3,
+ 0x01fc, 0x020e, 0x0226, 0x022d, 0x023a, 0x0270,
+ 0x0289, 0x026a, 0x026b, 0x02a0, 0x02cc, 0x02f8,
+ 0x032a, 0x033e, 0x0343, 0x0355, 0x0368, 0x0377,
+ 0x0393, 0x03b4, 0x03be, 0x03a6, 0x0383, 0x036a,
+ 0x0359, 0x0343, 0x033d, 0x035e, 0x036c, 0x033a,
+ 0x0302, 0x02d0, 0x029e, 0x0295, 0x029b, 0x02a1,
+ 0x02ab, 0x0274, 0x0240, 0x0270, 0x026b, 0x021e,
+ 0x0233, 0x0265, 0x024f, 0x0233, 0x0227, 0x0220,
+ 0x0215, 0x0208, 0x0230, 0x0254, 0x0231, 0x0231,
+ 0x0268, 0x0277, 0x0264, 0x024e, 0x0246, 0x026b,
+ 0x02aa, 0x02d7, 0x02dd, 0x02e1, 0x02fc, 0x02f3,
+ 0x02d4, 0x02dd, 0x02e8, 0x02ef, 0x02ee, 0x0296,
+ 0x024d, 0x026d, 0x0260, 0x0230, 0x0259, 0x026b,
+ 0x023a, 0x0237, 0x0231, 0x01f4, 0x01dc, 0x01ea,
+ 0x01e6, 0x01f1, 0x0204, 0x01e9, 0x01b1, 0x0171,
+ 0x0127, 0x0118, 0x0138, 0x0117, 0x00c3, 0x0086,
+ 0x0052, 0x0037, 0x004b, 0x0054, 0x002b, 0xffdc,
+ 0xff9d, 0xff9e, 0xff9c, 0xff70, 0xff7d, 0xffb9,
+ 0xffc2, 0xffc1, 0xffe4, 0x0007, 0x0036, 0x0052,
+ 0x0028, 0x000a, 0x002e, 0x003b, 0x000d, 0xffd0,
+ 0xffa0, 0xff83, 0xff70, 0xff6e, 0xff8d, 0xffa7,
+ 0xffaf, 0xffb5, 0xff9c, 0xff7a, 0xff89, 0xffa8,
+ 0xffb2, 0xffc8, 0xffe5, 0xffd5, 0xff88, 0xff3f,
+ 0xff19, 0xfee8, 0xfebd, 0xfeaa, 0xfe7d, 0xfe69,
+ 0xfea3, 0xfeb8, 0xfe90, 0xfe86, 0xfe82, 0xfe4d,
+ 0xfe1e, 0xfe2c, 0xfe51, 0xfe4e, 0xfe3e, 0xfe40,
+ 0xfe24, 0xfdfd, 0xfe04, 0xfe0c, 0xfdf1, 0xfdd0,
+ 0xfdc8, 0xfdd8, 0xfdd1, 0xfdb3, 0xfdbf, 0xfdde,
+ 0xfdcb, 0xfdaa, 0xfd9c, 0xfd9a, 0xfda4, 0xfda8,
+ 0xfd9b, 0xfd97, 0xfd9f, 0xfdaa, 0xfdbf, 0xfdd2,
+ 0xfdca, 0xfdb7, 0xfdaf, 0xfdbd, 0xfde5, 0xfdf6,
+ 0xfdd5, 0xfdc5, 0xfdd5, 0xfdcb, 0xfdc5, 0xfdd5,
+ 0xfdc4, 0xfda2, 0xfd93, 0xfd91, 0xfd9e, 0xfdae,
+ 0xfdbd, 0xfddb, 0xfe0d, 0xfe4c, 0xfe76, 0xfe82,
+ 0xfe86, 0xfe74, 0xfe77, 0xfebc, 0xfece, 0xfe91,
+ 0xfe7a, 0xfe7f, 0xfe8a, 0xfea3, 0xfe82, 0xfe49,
+ 0xfe4b, 0xfe4c, 0xfe3e, 0xfe40, 0xfe30, 0xfe21,
+ 0xfe2b, 0xfe3c, 0xfe4a, 0xfe49, 0xfe5e, 0xfe91,
+ 0xfe82, 0xfe39, 0xfe11, 0xfded, 0xfdb6, 0xfd9e,
+ 0xfdb6, 0xfde3, 0xfdff, 0xfe0e, 0xfe0d, 0xfdd8,
+ 0xfdb5, 0xfde1, 0xfdfc, 0xfdfb, 0xfe35, 0xfe71,
+ 0xfe71, 0xfe72, 0xfe8d, 0xfe9e, 0xfea3, 0xfe9a,
+ 0xfe86, 0xfe94, 0xfeb2, 0xfeb0, 0xfeb5, 0xfece,
+ 0xfeb5, 0xfe91, 0xfe97, 0xfe93, 0xfe7c, 0xfe75,
+ 0xfe73, 0xfe6d, 0xfe5d, 0xfe48, 0xfe48, 0xfe4b,
+ 0xfe41, 0xfe3f, 0xfe39, 0xfe16, 0xfde2, 0xfdd3,
+ 0xfdf1, 0xfdf6, 0xfdfc, 0xfe46, 0xfe82, 0xfe98,
+ 0xfec2, 0xfebd, 0xfe78, 0xfe3b, 0xfdf1, 0xfda8,
+ 0xfd8a, 0xfd6e, 0xfd45, 0xfd2e, 0xfd3c, 0xfd63,
+ 0xfd64, 0xfd57, 0xfd87, 0xfda5, 0xfd7d, 0xfd62,
+ 0xfd5e, 0xfd63, 0xfd7d, 0xfd92, 0xfd9e, 0xfdad,
+ 0xfdaf, 0xfdc6, 0xfe14, 0xfe65, 0xfe8f, 0xfe90,
+ 0xfe6c, 0xfe40, 0xfe33, 0xfe3e, 0xfe4a, 0xfe5f,
+ 0xfe6c, 0xfe68, 0xfe78, 0xfe8f, 0xfe84, 0xfe7a,
+ 0xfe7b, 0xfe78, 0xfe97, 0xfecc, 0xfedd, 0xfee5,
+ 0xff17, 0xff4d, 0xff48, 0xff2a, 0xff1e, 0xff07,
+ 0xfefa, 0xff21, 0xff4c, 0xff60, 0xff50, 0xff13,
+ 0xff08, 0xff2b, 0xff0a, 0xfede, 0xfed5, 0xfeab,
+ 0xfe87, 0xfe73, 0xfe3a, 0xfe24, 0xfe45, 0xfe53,
+ 0xfe67, 0xfe87, 0xfe94, 0xfeb3, 0xfedf, 0xfeeb,
+ 0xfee2, 0xfee9, 0xfef6, 0xfee9, 0xfed6, 0xfee6,
+ 0xfef6, 0xfee3, 0xfecc, 0xfec3, 0xfeb4, 0xfe97,
+ 0xfe98, 0xfebc, 0xfeb4, 0xfe90, 0xfe85, 0xfe58,
+ 0xfe27, 0xfe3c, 0xfe56, 0xfe74, 0xfeba, 0xfedf,
+ 0xfef1, 0xff1f, 0xff33, 0xff3c, 0xff38, 0xfefc,
+ 0xfecf, 0xfec2, 0xfea5, 0xfeac, 0xfec0, 0xfeb4,
+ 0xfec7, 0xfed7, 0xfeaa, 0xfe84, 0xfe72, 0xfe69,
+ 0xfe9c, 0xfee0, 0xff01, 0xff1b, 0xff4a, 0xff8e,
+ 0xffc5, 0xffe2, 0x000a, 0x0019, 0xfff7, 0xfffd,
+ 0x0029, 0x0044, 0x007b, 0x00be, 0x00e8, 0x0131,
+ 0x0180, 0x0192, 0x0196, 0x019f, 0x0195, 0x0197,
+ 0x01af, 0x01d4, 0x0200, 0x020b, 0x01eb, 0x01e0,
+ 0x01f7, 0x020f, 0x0237, 0x027c, 0x02af, 0x02c5,
+ 0x02ec, 0x0315, 0x0321, 0x031e, 0x0315, 0x0319,
+ 0x033c, 0x033f, 0x031f, 0x0332, 0x0370, 0x03a3,
+ 0x03b7, 0x0392, 0x0370, 0x0390, 0x03a9, 0x03b8,
+ 0x03f2, 0x040b, 0x0402, 0x041a, 0x0416, 0x03f8,
+ 0x0411, 0x0423, 0x03fd, 0x03e6, 0x03e3, 0x03ec,
+ 0x0423, 0x0456, 0x0450, 0x043b, 0x043a, 0x0439,
+ 0x041d, 0x03e4, 0x03b2, 0x0392, 0x0378, 0x0357,
+ 0x0324, 0x0305, 0x0320, 0x033f, 0x0356, 0x038c,
+ 0x03ab, 0x0393, 0x0374, 0x0360, 0x0358, 0x0363,
+ 0x0382, 0x03a8, 0x039c, 0x0373, 0x038f, 0x03b6,
+ 0x03a2, 0x039b, 0x0395, 0x0365, 0x0348, 0x0340,
+ 0x0334, 0x032b, 0x0319, 0x0331, 0x0376, 0x03a4,
+ 0x03d8, 0x0412, 0x0422, 0x0432, 0x043c, 0x0431,
+ 0x044c, 0x0458, 0x0435, 0x0436, 0x043d, 0x0422,
+ 0x0405, 0x03d1, 0x0399, 0x0378, 0x034e, 0x0335,
+ 0x0326, 0x0300, 0x0308, 0x0348, 0x0376, 0x03a0,
+ 0x03cd, 0x03d7, 0x03cf, 0x03cc, 0x03dd, 0x03f9,
+ 0x0400, 0x03ed, 0x03c9, 0x039a, 0x0376, 0x036d,
+ 0x0373, 0x0367, 0x0351, 0x0366, 0x0396, 0x03c1,
+ 0x03f8, 0x0410, 0x03f5, 0x03ec, 0x0403, 0x0424,
+ 0x0446, 0x0453, 0x0467, 0x048f, 0x049e, 0x04b5,
+ 0x04dc, 0x04e2, 0x04dd, 0x04cd, 0x049a, 0x0480,
+ 0x0474, 0x044f, 0x043a, 0x042c, 0x041b, 0x0425,
+ 0x041c, 0x03fb, 0x03f9, 0x03ee, 0x03c7, 0x03ac,
+ 0x039c, 0x0398, 0x039b, 0x0398, 0x03b3, 0x03d0,
+ 0x03b6, 0x0396, 0x037b, 0x033f, 0x0308, 0x02dc,
+ 0x02a3, 0x028e, 0x02a3, 0x02b9, 0x02df, 0x0311,
+ 0x0333, 0x0358, 0x0384, 0x039c, 0x03a9, 0x03c4,
+ 0x03ea, 0x03fa, 0x03e8, 0x03d4, 0x03d5, 0x03de,
+ 0x03db, 0x03d8, 0x03ec, 0x03ef, 0x03c8, 0x03b3,
+ 0x03b5, 0x03a0, 0x0387, 0x0372, 0x0372, 0x039f,
+ 0x03af, 0x03aa, 0x03db, 0x03e3, 0x03a6, 0x039a,
+ 0x0395, 0x0363, 0x0360, 0x0376, 0x0362, 0x0350,
+ 0x0347, 0x0326, 0x02ff, 0x02dd, 0x02c3, 0x02bb,
+ 0x02b3, 0x0290, 0x026d, 0x026a, 0x0261, 0x023c,
+ 0x0233, 0x0236, 0x0210, 0x01eb, 0x01e2, 0x01dd,
+ 0x01da, 0x01ce, 0x01bb, 0x01aa, 0x0190, 0x018a,
+ 0x0196, 0x018e, 0x01a1, 0x01c4, 0x01ab, 0x01a2,
+ 0x01d8, 0x01e7, 0x01ec, 0x023a, 0x0283, 0x029b,
+ 0x02a7, 0x029c, 0x027b, 0x0263, 0x0249, 0x0233,
+ 0x023a, 0x023e, 0x023f, 0x0264, 0x0282, 0x0278,
+ 0x026c, 0x0250, 0x0225, 0x0237, 0x025a, 0x0231,
+ 0x0200, 0x0200, 0x01e6, 0x01b7, 0x01b7, 0x01b6,
+ 0x019b, 0x01aa, 0x01c4, 0x01ba, 0x01cb, 0x01f5,
+ 0x01fb, 0x01e6, 0x01b9, 0x0186, 0x016d, 0x0154,
+ 0x015c, 0x018d, 0x0177, 0x0126, 0x0101, 0x00e3,
+ 0x00ba, 0x00a9, 0x009f, 0x00a2, 0x00ac, 0x00ab,
+ 0x00b9, 0x00c8, 0x00e7, 0x0130, 0x014f, 0x013b,
+ 0x013c, 0x013b, 0x012d, 0x0122, 0x0105, 0x00f6,
+ 0x00de, 0x0087, 0x0041, 0x002d, 0x0017, 0x000b,
+ 0x0012, 0x002e, 0x005b, 0x0072, 0x008a, 0x00ac,
+ 0x00b6, 0x00cd, 0x00e6, 0x00c5, 0x00a8, 0x00b2,
+ 0x00ab, 0x0091, 0x0079, 0x007d, 0x00a0, 0x00bc,
+ 0x00e4, 0x0101, 0x00e4, 0x00d9, 0x00ea, 0x00cf,
+ 0x00b6, 0x00a8, 0x0080, 0x006b, 0x0068, 0x006d,
+ 0x0090, 0x008d, 0x0079, 0x00a8, 0x00e3, 0x0124,
+ 0x0185, 0x019a, 0x016c, 0x0169, 0x0167, 0x014b,
+ 0x0120, 0x00c9, 0x008b, 0x0099, 0x00a3, 0x0090,
+ 0x0078, 0x005a, 0x005c, 0x0083, 0x00a3, 0x00b6,
+ 0x00ca, 0x00ec, 0x00ff, 0x00e0, 0x00e4, 0x0132,
+ 0x015a, 0x0162, 0x0180, 0x0180, 0x017b, 0x0192,
+ 0x018d, 0x0181, 0x0195, 0x01b1, 0x01ce, 0x01c8,
+ 0x01aa, 0x01bb, 0x01c6, 0x01bf, 0x01f0, 0x020c,
+ 0x01f5, 0x020c, 0x022f, 0x023f, 0x025d, 0x026b,
+ 0x027e, 0x02a1, 0x02b0, 0x02ce, 0x02e5, 0x02d0,
+ 0x02e7, 0x0311, 0x0300, 0x02ef, 0x02ef, 0x02db,
+ 0x02be, 0x0282, 0x0232, 0x01fd, 0x01e0, 0x01e5,
+ 0x01fd, 0x01fd, 0x020e, 0x0249, 0x0286, 0x02b8,
+ 0x02de, 0x02e6, 0x02c5, 0x0299, 0x0286, 0x0269,
+ 0x023c, 0x023b, 0x0247, 0x0240, 0x0243, 0x022f,
+ 0x0207, 0x020a, 0x0208, 0x01ec, 0x01f1, 0x020d,
+ 0x0226, 0x024c, 0x0274, 0x028a, 0x0287, 0x0283,
+ 0x0293, 0x02a6, 0x02af, 0x02b2, 0x02ab, 0x02ac,
+ 0x029d, 0x027b, 0x027a, 0x027f, 0x0265, 0x0276,
+ 0x0297, 0x0276, 0x0252, 0x0254, 0x0233, 0x01f6,
+ 0x01d7, 0x01cd, 0x01d2, 0x01dd, 0x01c6, 0x01a1,
+ 0x01a4, 0x01aa, 0x01a7, 0x01ba, 0x01af, 0x0180,
+ 0x0175, 0x0169, 0x014f, 0x0158, 0x0165, 0x0174,
+ 0x01a2, 0x01c2, 0x01e1, 0x0211, 0x0220, 0x021d,
+ 0x020b, 0x01e1, 0x01cc, 0x01b9, 0x018c, 0x016c,
+ 0x014e, 0x0135, 0x0129, 0x00f9, 0x00db, 0x00fd,
+ 0x0109, 0x00fd, 0x010c, 0x0118, 0x0120, 0x0128,
+ 0x0135, 0x0155, 0x014e, 0x0126, 0x011f, 0x0118,
+ 0x010a, 0x0113, 0x0102, 0x00ed, 0x00fc, 0x0103,
+ 0x0112, 0x0138, 0x0129, 0x00ee, 0x00c4, 0x00a5,
+ 0x0088, 0x007e, 0x007d, 0x006f, 0x0063, 0x0065,
+ 0x006d, 0x007f, 0x0095, 0x0095, 0x0096, 0x00a2,
+ 0x00a5, 0x00b3, 0x00bb, 0x00a2, 0x0093, 0x0096,
+ 0x008b, 0x0081, 0x0075, 0x0057, 0x0044, 0x0048,
+ 0x004c, 0x0042, 0x0044, 0x0055, 0x004c, 0x0045,
+ 0x0064, 0x0079, 0x0083, 0x008a, 0x0076, 0x006c,
+ 0x006e, 0x0064, 0x007b, 0x0075, 0x002e, 0x0016,
+ 0x001f, 0x0020, 0x0060, 0x00a1, 0x00ae, 0x00db,
+ 0x00ff, 0x0105, 0x0130, 0x0142, 0x0121, 0x0116,
+ 0x010b, 0x00d0, 0x0093, 0x0086, 0x0099, 0x00a8,
+ 0x00c4, 0x00d6, 0x00ca, 0x00df, 0x00fd, 0x00f4,
+ 0x0115, 0x012e, 0x00ff, 0x0115, 0x0160, 0x0168,
+ 0x017c, 0x01ab, 0x01a6, 0x0190, 0x016a, 0x011f,
+ 0x00d7, 0x0094, 0x004e, 0x0025, 0x0015, 0x000c,
+ 0x0000, 0xfff5, 0xfffc, 0x0000, 0x0002, 0x0009,
+ 0x000c, 0x0024, 0x0046, 0x0058, 0x0078, 0x0099,
+ 0x009f, 0x00be, 0x00e4, 0x00f8, 0x0129, 0x0156,
+ 0x0156, 0x015c, 0x0157, 0x0124, 0x00fb, 0x00f3,
+ 0x00f8, 0x010e, 0x0127, 0x0135, 0x0150, 0x0170,
+ 0x017e, 0x0185, 0x0192, 0x019c, 0x01a2, 0x01b3,
+ 0x01cc, 0x01d8, 0x01d0, 0x01c1, 0x01cc, 0x01fb,
+ 0x0223, 0x0232, 0x0243, 0x0254, 0x023e, 0x01fb,
+ 0x01a8, 0x015f, 0x0128, 0x0101, 0x00ee, 0x00de,
+ 0x00c1, 0x00b4, 0x00c9, 0x00dc, 0x00f4, 0x010a,
+ 0x00e9, 0x00cc, 0x0101, 0x0139, 0x0144, 0x0157,
+ 0x016c, 0x017e, 0x01a2, 0x01b7, 0x01a7, 0x018a,
+ 0x016d, 0x0158, 0x014a, 0x0141, 0x013f, 0x0131,
+ 0x0132, 0x0153, 0x0160, 0x0162, 0x0173, 0x016b,
+ 0x0169, 0x018e, 0x0197, 0x0172, 0x0151, 0x0132,
+ 0x0124, 0x0131, 0x012f, 0x0128, 0x014b, 0x0164,
+ 0x0137, 0x010b, 0x0101, 0x00d2, 0x0094, 0x0088,
+ 0x0086, 0x0074, 0x0065, 0x004b, 0x002e, 0x001b,
+ 0x000e, 0x000b, 0xfffc, 0xfff2, 0x0009, 0x0018,
+ 0x001e, 0x002f, 0x0019, 0xffec, 0xffc2, 0xff96,
+ 0xff8e, 0xff72, 0xff17, 0xfee4, 0xfed2, 0xfec3,
+ 0xfeef, 0xff0a, 0xff00, 0xff2d, 0xff4c, 0xff58,
+ 0xff99, 0xff95, 0xff4b, 0xff37, 0xff26, 0xff02,
+ 0xfee4, 0xfeab, 0xfe9d, 0xfec7, 0xfec5, 0xfece,
+ 0xfef9, 0xfecf, 0xfe7f, 0xfe78, 0xfe8f, 0xfe99,
+ 0xfeae, 0xfecc, 0xfed8, 0xfee7, 0xff07, 0xff1e,
+ 0xff1d, 0xfefa, 0xfec7, 0xfeb7, 0xfeb3, 0xfe91,
+ 0xfe86, 0xfe99, 0xfea1, 0xfeb1, 0xfed5, 0xff07,
+ 0xff33, 0xff3b, 0xff4a, 0xff71, 0xff6f, 0xff5f,
+ 0xff69, 0xff71, 0xff89, 0xffb4, 0xffd6, 0xfffa,
+ 0x000d, 0x0015, 0x0032, 0x004b, 0x006c, 0x008e,
+ 0x0082, 0x007f, 0x0087, 0x0056, 0x0039, 0x004b,
+ 0x004b, 0x005b, 0x0061, 0x0031, 0x0033, 0x0071,
+ 0x008e, 0x00a7, 0x00d9, 0x0102, 0x012b, 0x0149,
+ 0x013f, 0x0123, 0x011e, 0x013b, 0x015c, 0x016c,
+ 0x0178, 0x0191, 0x01c0, 0x01e3, 0x01cf, 0x01b8,
+ 0x01cc, 0x01e1, 0x01f3, 0x021a, 0x022c, 0x021e,
+ 0x021a, 0x0226, 0x022b, 0x0224, 0x0212, 0x01fc,
+ 0x01f4, 0x01ea, 0x01d9, 0x01dd, 0x01db, 0x01b7,
+ 0x01ae, 0x01d2, 0x01da, 0x01c1, 0x01b8, 0x01ab,
+ 0x0183, 0x016e, 0x016a, 0x014b, 0x0137, 0x0144,
+ 0x0144, 0x0145, 0x015b, 0x0159, 0x0141, 0x012f,
+ 0x011a, 0x0112, 0x0111, 0x00fc, 0x00ec, 0x00e0,
+ 0x00cb, 0x00ba, 0x00ae, 0x00b2, 0x00be, 0x00b5,
+ 0x00c2, 0x00e7, 0x00e9, 0x00e7, 0x00f7, 0x00e9,
+ 0x00c3, 0x0098, 0x007d, 0x0089, 0x00a0, 0x00c0,
+ 0x00e4, 0x00e1, 0x00e0, 0x0109, 0x011c, 0x0101,
+ 0x00e0, 0x00c5, 0x00ae, 0x008b, 0x0077, 0x008d,
+ 0x00ac, 0x00e0, 0x0116, 0x0111, 0x00fb, 0x00f0,
+ 0x00e1, 0x00e4, 0x00d2, 0x00a3, 0x008f, 0x0062,
+ 0x0028, 0x0036, 0x003d, 0x0030, 0x004a, 0x0036,
+ 0xfff4, 0xffe2, 0xffec, 0xfffe, 0x0016, 0x0024,
+ 0x0047, 0x007d, 0x00ae, 0x00e1, 0x00ea, 0x00d9,
+ 0x00ec, 0x0103, 0x0113, 0x012d, 0x013d, 0x0163,
+ 0x01a6, 0x01c8, 0x01ce, 0x01d3, 0x01cf, 0x01b4,
+ 0x0175, 0x013c, 0x0124, 0x0113, 0x0124, 0x0155,
+ 0x0161, 0x0163, 0x018e, 0x01b4, 0x01b2, 0x019e,
+ 0x0199, 0x01b0, 0x01c4, 0x01c5, 0x01bb, 0x01a5,
+ 0x0194, 0x019a, 0x01ad, 0x01c1, 0x01c6, 0x01b5,
+ 0x01a5, 0x01b0, 0x01c2, 0x01b7, 0x01a8, 0x01bf,
+ 0x01d3, 0x01cb, 0x01db, 0x01fa, 0x01fc, 0x01eb,
+ 0x01d6, 0x01b9, 0x0192, 0x0167, 0x015a, 0x016e,
+ 0x0186, 0x01a0, 0x01ba, 0x01d6, 0x0211, 0x0261,
+ 0x029f, 0x02cb, 0x02e4, 0x02e7, 0x02e8, 0x02f4,
+ 0x0302, 0x030b, 0x0317, 0x0323, 0x0330, 0x034b,
+ 0x0359, 0x0346, 0x0328, 0x030e, 0x0302, 0x030c,
+ 0x030f, 0x030a, 0x030b, 0x02f7, 0x02fc, 0x0346,
+ 0x037e, 0x0381, 0x0389, 0x0388, 0x0374, 0x035c,
+ 0x0332, 0x030e, 0x0305, 0x0305, 0x030b, 0x0307,
+ 0x02f6, 0x02f1, 0x02db, 0x02a5, 0x0273, 0x0240,
+ 0x0223, 0x0231, 0x022d, 0x0214, 0x021b, 0x0235,
+ 0x0256, 0x0269, 0x0252, 0x022c, 0x01fd, 0x01d4,
+ 0x01de, 0x01de, 0x01c1, 0x01d4, 0x01ec, 0x01de,
+ 0x01ed, 0x01fe, 0x01fd, 0x0226, 0x025b, 0x0267,
+ 0x0269, 0x026f, 0x0274, 0x0268, 0x0249, 0x022c,
+ 0x020d, 0x01fd, 0x0206, 0x0201, 0x0200, 0x020e,
+ 0x01e8, 0x01b1, 0x01a2, 0x0191, 0x018b, 0x01a8,
+ 0x01bf, 0x01c9, 0x01ce, 0x01c5, 0x01b9, 0x01a2,
+ 0x0188, 0x016e, 0x0146, 0x0139, 0x012e, 0x00fe,
+ 0x00fd, 0x010e, 0x00d6, 0x00a8, 0x00a5, 0x008e,
+ 0x007b, 0x007d, 0x008f, 0x00ac, 0x00aa, 0x00a1,
+ 0x0095, 0x005f, 0x0059, 0x0083, 0x006e, 0x0059,
+ 0x0065, 0x004e, 0x003f, 0x0034, 0x0007, 0x0006,
+ 0x0032, 0x0052, 0x007e, 0x00aa, 0x00c8, 0x00e1,
+ 0x00db, 0x00c6, 0x00bc, 0x00b5, 0x00c3, 0x00dd,
+ 0x00f6, 0x0127, 0x014a, 0x0145, 0x0146, 0x014d,
+ 0x014b, 0x0159, 0x017b, 0x01a0, 0x01b7, 0x01c8,
+ 0x01de, 0x01d7, 0x01ac, 0x017e, 0x0151, 0x0131,
+ 0x012b, 0x012e, 0x0135, 0x0141, 0x014e, 0x0167,
+ 0x0187, 0x01a9, 0x01cf, 0x01e8, 0x020c, 0x0245,
+ 0x0263, 0x025c, 0x024f, 0x0246, 0x0241, 0x0235,
+ 0x021f, 0x0206, 0x01e9, 0x01dc, 0x01dc, 0x01d0,
+ 0x01d4, 0x01f1, 0x0209, 0x0231, 0x0266, 0x0282,
+ 0x029d, 0x02c0, 0x02c3, 0x02b3, 0x02b0, 0x02b1,
+ 0x02b1, 0x02b9, 0x02bb, 0x02a9, 0x0298, 0x028e,
+ 0x0268, 0x0230, 0x0209, 0x01f6, 0x0201, 0x0216,
+ 0x0203, 0x01ed, 0x01e5, 0x01b9, 0x0195, 0x019b,
+ 0x0181, 0x013f, 0x010d, 0x00ec, 0x00db, 0x00d5,
+ 0x00c2, 0x00ac, 0x009c, 0x0086, 0x0071, 0x0063,
+ 0x005e, 0x005e, 0x004d, 0x002f, 0x0028, 0x0034,
+ 0x0031, 0x001b, 0xfff9, 0xffcc, 0xffb0, 0xffaa,
+ 0xff8d, 0xff6a, 0xff66, 0xff67, 0xff81, 0xffb2,
+ 0xffa6, 0xff7b, 0xff76, 0xff64, 0xff49, 0xff52,
+ 0xff4f, 0xff52, 0xff84, 0xffab, 0xffd0, 0x0019,
+ 0x0040, 0x002d, 0x0024, 0x0036, 0x0047, 0x0056,
+ 0x0079, 0x00a3, 0x00ad, 0x00aa, 0x00c3, 0x00de,
+ 0x00d5, 0x00bd, 0x00b4, 0x00c2, 0x00cd, 0x00c6,
+ 0x00ca, 0x00f3, 0x0132, 0x016c, 0x01a1, 0x01dc,
+ 0x020f, 0x0224, 0x0237, 0x0257, 0x0257, 0x023f,
+ 0x024c, 0x026a, 0x0266, 0x025c, 0x0261, 0x0249,
+ 0x020e, 0x01df, 0x01c9, 0x01b2, 0x019c, 0x01b1,
+ 0x01e9, 0x020b, 0x021f, 0x023e, 0x0247, 0x0251,
+ 0x0284, 0x029f, 0x029c, 0x02b8, 0x02e6, 0x02fc,
+ 0x02f1, 0x02d7, 0x02c6, 0x029f, 0x025c, 0x0241,
+ 0x0241, 0x0232, 0x0228, 0x021c, 0x021a, 0x0223,
+ 0x020b, 0x01ff, 0x021b, 0x0219, 0x0219, 0x022d,
+ 0x0216, 0x0205, 0x0208, 0x01ed, 0x01e6, 0x01eb,
+ 0x01d7, 0x01f4, 0x0222, 0x0219, 0x020e, 0x01ff,
+ 0x01d1, 0x01bb, 0x01bf, 0x01c7, 0x01d3, 0x01cc,
+ 0x01c4, 0x01c5, 0x01af, 0x0189, 0x0160, 0x012c,
+ 0x0100, 0x00e2, 0x00d1, 0x00cb, 0x00bf, 0x00ae,
+ 0x0092, 0x0070, 0x0051, 0x001e, 0xfff3, 0xfffa,
+ 0x0009, 0x000d, 0x0012, 0x000f, 0x0016, 0x001d,
+ 0x0003, 0xfff3, 0xfffb, 0x000d, 0x003a, 0x004d,
+ 0x003e, 0x0046, 0x0034, 0xfffe, 0xfff5, 0x0000,
+ 0x0014, 0x0056, 0x007d, 0x0065, 0x005f, 0x0079,
+ 0x0083, 0x0076, 0x0069, 0x006b, 0x0066, 0x005e,
+ 0x0062, 0x0064, 0x0079, 0x00a7, 0x00bf, 0x00c8,
+ 0x00dd, 0x00d6, 0x00b2, 0x00a7, 0x00b2, 0x00ad,
+ 0x0099, 0x009c, 0x00ac, 0x00b0, 0x00c3, 0x00eb,
+ 0x0108, 0x012b, 0x014a, 0x0144, 0x013e, 0x013c,
+ 0x0122, 0x0112, 0x00fe, 0x00c8, 0x00a8, 0x0098,
+ 0x0060, 0x0034, 0x0035, 0x0021, 0xfffe, 0xffdf,
+ 0xffb3, 0xffa4, 0xffbe, 0xffca, 0xffe4, 0x0023,
+ 0x0056, 0x0084, 0x00b6, 0x00ad, 0x0078, 0x0058,
+ 0x0045, 0x002e, 0x0016, 0x0003, 0x000b, 0x003e,
+ 0x0096, 0x00f4, 0x0121, 0x0129, 0x0141, 0x015d,
+ 0x0167, 0x0166, 0x014f, 0x0130, 0x0133, 0x0148,
+ 0x014d, 0x014c, 0x0158, 0x0170, 0x0191, 0x01bd,
+ 0x01e5, 0x01ef, 0x01cd, 0x019b, 0x0188, 0x019a,
+ 0x01bf, 0x0201, 0x0243, 0x0244, 0x022b, 0x0234,
+ 0x021f, 0x01cf, 0x0199, 0x0193, 0x0193, 0x0198,
+ 0x01a0, 0x019c, 0x01a3, 0x01bb, 0x01c8, 0x01c0,
+ 0x01b9, 0x01b7, 0x01a9, 0x0193, 0x0197, 0x01b7,
+ 0x01c6, 0x01c5, 0x01d2, 0x01d8, 0x01de, 0x0216,
+ 0x026e, 0x02a4, 0x02b1, 0x02bc, 0x02d7, 0x02ef,
+ 0x02f8, 0x02f7, 0x02f9, 0x0309, 0x0325, 0x0338,
+ 0x033b, 0x033c, 0x0345, 0x0342, 0x032a, 0x0315,
+ 0x0307, 0x02f9, 0x02f7, 0x0301, 0x0317, 0x033b,
+ 0x0351, 0x0367, 0x0392, 0x03a7, 0x03ae, 0x03c7,
+ 0x03ac, 0x0354, 0x031a, 0x02fb, 0x02d5, 0x02be,
+ 0x02b0, 0x0298, 0x0288, 0x02aa, 0x02ea, 0x02f4,
+ 0x02e1, 0x02f2, 0x02ff, 0x0303, 0x0331, 0x035b,
+ 0x035f, 0x0361, 0x035f, 0x034c, 0x0326, 0x0301,
+ 0x02e5, 0x02ac, 0x0274, 0x0278, 0x0281, 0x0272,
+ 0x0271, 0x0267, 0x0254, 0x0254, 0x0259, 0x0261,
+ 0x026c, 0x0269, 0x0261, 0x0264, 0x027b, 0x029b,
+ 0x02ac, 0x02bd, 0x02c9, 0x02b7, 0x029c, 0x0275,
+ 0x0246, 0x023d, 0x023c, 0x021c, 0x01fc, 0x01e8,
+ 0x01f2, 0x0209, 0x01f2, 0x01c6, 0x01b0, 0x019e,
+ 0x019b, 0x01ab, 0x01bf, 0x01dc, 0x01f4, 0x0215,
+ 0x023c, 0x023b, 0x022b, 0x0217, 0x01d9, 0x01ad,
+ 0x01ae, 0x01a4, 0x01a1, 0x01ae, 0x01ab, 0x01b0,
+ 0x01cc, 0x01e7, 0x01ef, 0x01e8, 0x01fb, 0x0227,
+ 0x023f, 0x023c, 0x021c, 0x01f9, 0x01ec, 0x01cd,
+ 0x01a5, 0x01a9, 0x01b7, 0x01ba, 0x01c7, 0x01d5,
+ 0x01d6, 0x01c8, 0x01bb, 0x01bf, 0x01be, 0x01cf,
+ 0x01f4, 0x01f4, 0x0203, 0x0240, 0x0257, 0x0260,
+ 0x0276, 0x0265, 0x025a, 0x026d, 0x025b, 0x023d,
+ 0x022a, 0x0210, 0x0218, 0x0241, 0x024e, 0x0248,
+ 0x0260, 0x0287, 0x0294, 0x0293, 0x0291, 0x0286,
+ 0x0278, 0x0269, 0x0258, 0x0259, 0x0260, 0x025d,
+ 0x025d, 0x0254, 0x0254, 0x0260, 0x0247, 0x022e,
+ 0x0231, 0x0222, 0x0224, 0x0243, 0x0250, 0x026d,
+ 0x0286, 0x027f, 0x0297, 0x02a1, 0x027b, 0x0272,
+ 0x0267, 0x0241, 0x023d, 0x0242, 0x0249, 0x025f,
+ 0x0263, 0x026f, 0x0284, 0x0284, 0x028c, 0x0286,
+ 0x026e, 0x0284, 0x0294, 0x0283, 0x028c, 0x028e,
+ 0x0276, 0x026d, 0x025a, 0x0242, 0x0246, 0x0241,
+ 0x0230, 0x022d, 0x022b, 0x0211, 0x01dd, 0x01b3,
+ 0x01a8, 0x0194, 0x0161, 0x0136, 0x0125, 0x0117,
+ 0x00fc, 0x00db, 0x00ac, 0x007f, 0x006e, 0x0051,
+ 0x0022, 0x0019, 0x0023, 0x0011, 0x0002, 0x000b,
+ 0x001d, 0x000f, 0xffe3, 0xffd6, 0xffc5, 0xff80,
+ 0xff64, 0xff73, 0xff68, 0xff70, 0xff89, 0xff7d,
+ 0xff6d, 0xff79, 0xff83, 0xff72, 0xff64, 0xff87,
+ 0xff9c, 0xff98, 0xffc7, 0xfffb, 0x0001, 0x0014,
+ 0x0028, 0x0039, 0x0074, 0x00a7, 0x00b3, 0x00b0,
+ 0x00a0, 0x0099, 0x0089, 0x0067, 0x0074, 0x0092,
+ 0x008e, 0x009b, 0x00c9, 0x00f9, 0x0114, 0x0115,
+ 0x0118, 0x010e, 0x00f7, 0x010a, 0x0127, 0x011e,
+ 0x0113, 0x010c, 0x00f9, 0x00d4, 0x009a, 0x0072,
+ 0x004f, 0x001f, 0x0017, 0x0005, 0xffd2, 0xffbe,
+ 0xff92, 0xff3e, 0xff28, 0xff23, 0xff06, 0xff19,
+ 0xff58, 0xff9d, 0xffcd, 0xffdb, 0xfffa, 0x000f,
+ 0x000b, 0x002c, 0x0052, 0x0064, 0x008f, 0x00ae,
+ 0x00c0, 0x00eb, 0x010e, 0x0134, 0x0167, 0x018e,
+ 0x01bf, 0x01d9, 0x01c8, 0x01df, 0x0202, 0x0209,
+ 0x0229, 0x0243, 0x023d, 0x0255, 0x0278, 0x0288,
+ 0x0295, 0x0288, 0x025f, 0x023e, 0x0229, 0x0218,
+ 0x0210, 0x020d, 0x01f6, 0x01d8, 0x01da, 0x01e0,
+ 0x01dc, 0x01ef, 0x01fb, 0x01fd, 0x0219, 0x0231,
+ 0x025a, 0x02a3, 0x02b7, 0x02b4, 0x02e3, 0x0300,
+ 0x0304, 0x031d, 0x0321, 0x0321, 0x033b, 0x033d,
+ 0x0332, 0x0337, 0x0327, 0x0315, 0x0319, 0x030a,
+ 0x02e6, 0x02d2, 0x02bf, 0x02a5, 0x0297, 0x027b,
+ 0x0249, 0x0224, 0x01ed, 0x0198, 0x015f, 0x0132,
+ 0x00f5, 0x00cb, 0x00a7, 0x007a, 0x0063, 0x0044,
+ 0x0010, 0xffed, 0xffc8, 0xff9b, 0xff8b, 0xff78,
+ 0xff59, 0xff44, 0xff17, 0xfedf, 0xfed6, 0xfed8,
+ 0xfec7, 0xfebf, 0xfeaa, 0xfe6a, 0xfe2d, 0xfe1b,
+ 0xfe12, 0xfde7, 0xfdb0, 0xfd91, 0xfd71, 0xfd4f,
+ 0xfd43, 0xfd2b, 0xfd0a, 0xfd06, 0xfcf9, 0xfcdd,
+ 0xfce3, 0xfcea, 0xfcee, 0xfd1d, 0xfd45, 0xfd4d,
+ 0xfd68, 0xfd76, 0xfd77, 0xfd9d, 0xfdd2, 0xfdfa,
+ 0xfe08, 0xfdf8, 0xfe01, 0xfe0e, 0xfde2, 0xfdc3,
+ 0xfdbf, 0xfda6, 0xfda7, 0xfdb1, 0xfd99, 0xfdb5,
+ 0xfdf7, 0xfe0b, 0xfe1e, 0xfe40, 0xfe3d, 0xfe2b,
+ 0xfe20, 0xfe14, 0xfe01, 0xfde6, 0xfde4, 0xfdf5,
+ 0xfdf2, 0xfe0d, 0xfe48, 0xfe62, 0xfe72, 0xfe7e,
+ 0xfe55, 0xfe2d, 0xfe3d, 0xfe58, 0xfe6f, 0xfe87,
+ 0xfe8c, 0xfe88, 0xfe7b, 0xfe58, 0xfe37, 0xfe2c,
+ 0xfe2e, 0xfe2d, 0xfe24, 0xfe21, 0xfe23, 0xfe14,
+ 0xfe00, 0xfe02, 0xfe17, 0xfe3a, 0xfe5c, 0xfe61,
+ 0xfe58, 0xfe57, 0xfe5d, 0xfe5f, 0xfe4b, 0xfe27,
+ 0xfe16, 0xfe16, 0xfe10, 0xfe0a, 0xfe06, 0xfe05,
+ 0xfe1a, 0xfe38, 0xfe3f, 0xfe25, 0xfe12, 0xfe26,
+ 0xfe46, 0xfe56, 0xfe6d, 0xfe80, 0xfe7d, 0xfe8c,
+ 0xfead, 0xfeb4, 0xfeb3, 0xfeb6, 0xfeb4, 0xfebc,
+ 0xfeb1, 0xfe8c, 0xfe86, 0xfe85, 0xfe6f, 0xfe75,
+ 0xfe8d, 0xfea8, 0xfede, 0xff01, 0xfefe, 0xfef9,
+ 0xfeea, 0xfee8, 0xff0a, 0xff1c, 0xff27, 0xff41,
+ 0xff4a, 0xff46, 0xff38, 0xff2f, 0xff56, 0xff79,
+ 0xff5d, 0xff39, 0xff20, 0xff05, 0xfefd, 0xfef9,
+ 0xfef2, 0xfef0, 0xfedf, 0xfed7, 0xfee5, 0xfedd,
+ 0xfece, 0xfec9, 0xfebc, 0xfebe, 0xfed7, 0xfee3,
+ 0xfee6, 0xfefa, 0xff12, 0xff0e, 0xff02, 0xff13,
+ 0xff16, 0xff00, 0xff0a, 0xff2b, 0xff4a, 0xff79,
+ 0xffa0, 0xffb2, 0xffcf, 0xfff9, 0x000a, 0xfff0,
+ 0xffdf, 0xfff9, 0xfffe, 0xfff2, 0x0004, 0x0000,
+ 0xfff2, 0x0018, 0x0039, 0x0046, 0x0070, 0x009a,
+ 0x00bb, 0x00d5, 0x00df, 0x00ef, 0x00ef, 0x00db,
+ 0x00dd, 0x00ca, 0x009e, 0x00a3, 0x00ba, 0x00c2,
+ 0x00d5, 0x00da, 0x00da, 0x00e9, 0x00de, 0x00cf,
+ 0x00ea, 0x00ff, 0x00f6, 0x00e6, 0x00df, 0x00dc,
+ 0x00ce, 0x00b5, 0x009e, 0x0092, 0x0097, 0x0095,
+ 0x0078, 0x0066, 0x006d, 0x0075, 0x0078, 0x006d,
+ 0x0064, 0x0078, 0x008b, 0x008d, 0x009f, 0x00ab,
+ 0x008c, 0x006f, 0x007e, 0x0093, 0x009a, 0x00a1,
+ 0x009d, 0x0095, 0x009a, 0x009a, 0x0092, 0x008c,
+ 0x0083, 0x0090, 0x00b4, 0x00cc, 0x00e2, 0x00fb,
+ 0x0102, 0x011b, 0x0153, 0x017b, 0x0180, 0x016c,
+ 0x0153, 0x0146, 0x013e, 0x0139, 0x0140, 0x0154,
+ 0x0175, 0x0182, 0x016f, 0x0159, 0x0133, 0x00fd,
+ 0x00d7, 0x00b5, 0x0098, 0x0095, 0x008e, 0x0086,
+ 0x0094, 0x009d, 0x0097, 0x0092, 0x0091, 0x009d,
+ 0x00a7, 0x00a2, 0x00ae, 0x00d2, 0x00f5, 0x010e,
+ 0x011c, 0x0129, 0x0144, 0x0159, 0x0151, 0x0151,
+ 0x016e, 0x018a, 0x018e, 0x0186, 0x017e, 0x018b,
+ 0x019e, 0x019b, 0x01b0, 0x01e3, 0x01ec, 0x01e8,
+ 0x01f5, 0x01d7, 0x01b2, 0x01c1, 0x01dc, 0x01f1,
+ 0x01fb, 0x01fd, 0x0210, 0x0200, 0x01d0, 0x01d1,
+ 0x01db, 0x01cf, 0x01e1, 0x01e8, 0x01ce, 0x01ba,
+ 0x019d, 0x0180, 0x0165, 0x0136, 0x011f, 0x0114,
+ 0x00f0, 0x00eb, 0x00e8, 0x00c2, 0x00b5, 0x00a0,
+ 0x007e, 0x0091, 0x0096, 0x0078, 0x007c, 0x0074,
+ 0x0049, 0x0015, 0xffd6, 0xffb9, 0xffbb, 0xff9f,
+ 0xff9a, 0xffba, 0xffcb, 0xffea, 0x0013, 0x0038,
+ 0x006c, 0x008c, 0x0099, 0x00b5, 0x00ac, 0x0088,
+ 0x007e, 0x007b, 0x0087, 0x0096, 0x0081, 0x0083,
+ 0x009b, 0x007c, 0x0064, 0x0090, 0x00b6, 0x00c0,
+ 0x00dc, 0x010a, 0x0138, 0x016b, 0x01b1, 0x01fd,
+ 0x0231, 0x0254, 0x0262, 0x0263, 0x0281, 0x02aa,
+ 0x02b0, 0x02a6, 0x02a6, 0x02a8, 0x02b0, 0x02af,
+ 0x029e, 0x0290, 0x0292, 0x029f, 0x02a3, 0x0290,
+ 0x027a, 0x026b, 0x024d, 0x0231, 0x023b, 0x0244,
+ 0x0229, 0x0205, 0x01d9, 0x01a5, 0x018c, 0x0173,
+ 0x0148, 0x0144, 0x0149, 0x012c, 0x0135, 0x015c,
+ 0x015a, 0x0163, 0x0197, 0x01bd, 0x01d8, 0x01ff,
+ 0x0235, 0x027b, 0x02b7, 0x02e9, 0x032f, 0x036f,
+ 0x039f, 0x03db, 0x041b, 0x044b, 0x046d, 0x0484,
+ 0x0496, 0x049c, 0x0499, 0x04a8, 0x04c9, 0x04ea,
+ 0x0509, 0x0513, 0x04fc, 0x04de, 0x04c1, 0x04a0,
+ 0x048b, 0x047c, 0x0462, 0x0460, 0x0490, 0x04d0,
+ 0x050a, 0x0531, 0x0549, 0x0578, 0x059c, 0x057f,
+ 0x055e, 0x056a, 0x0574, 0x0586, 0x05b8, 0x05ec,
+ 0x061c, 0x063f, 0x064c, 0x066f, 0x069b, 0x06a7,
+ 0x06aa, 0x069d, 0x066f, 0x064b, 0x063e, 0x062a,
+ 0x060e, 0x05e9, 0x05bf, 0x0599, 0x056e, 0x0541,
+ 0x0514, 0x04e7, 0x04d1, 0x04be, 0x04a0, 0x0497,
+ 0x0486, 0x0455, 0x043a, 0x0434, 0x0422, 0x041f,
+ 0x0419, 0x03fd, 0x03f6, 0x03e1, 0x03a7, 0x038c,
+ 0x0376, 0x0335, 0x02ef, 0x02a2, 0x024b, 0x0224,
+ 0x0205, 0x01cb, 0x01bc, 0x01d1, 0x01c8, 0x01b0,
+ 0x019c, 0x017e, 0x015f, 0x014f, 0x014f, 0x0145,
+ 0x0130, 0x0126, 0x010e, 0x00e5, 0x00d8, 0x00c3,
+ 0x0088, 0x0068, 0x005a, 0x0043, 0x0047, 0x004f,
+ 0x0049, 0x0055, 0x0048, 0x000b, 0xffe7, 0xfff8,
+ 0x0038, 0x0092, 0x00ce, 0x00ef, 0x0113, 0x0125,
+ 0x011b, 0x0101, 0x00fa, 0x0134, 0x0187, 0x01b3,
+ 0x01ae, 0x018c, 0x0170, 0x0175, 0x0199, 0x01e2,
+ 0x021e, 0x0226, 0x0239, 0x024b, 0x0223, 0x01f5,
+ 0x01d8, 0x01bc, 0x01b7, 0x01aa, 0x0199, 0x01d6,
+ 0x0233, 0x0270, 0x02b6, 0x02dd, 0x0294, 0x020c,
+ 0x0191, 0x0124, 0x00ab, 0x0051, 0x0055, 0x0078,
+ 0x0074, 0x0081, 0x00b0, 0x00f4, 0x018f, 0x026f,
+ 0x030b, 0x032a, 0x02ee, 0x028e, 0x0222, 0x0190,
+ 0x0106, 0x00d7, 0x00f5, 0x0141, 0x01c4, 0x020a,
+ 0x01a2, 0x00f4, 0x0081, 0x003f, 0x000c, 0xffd6,
+ 0xff93, 0xff8a, 0xffc3, 0xffbd, 0xff6e, 0xff4a,
+ 0xff7a, 0x000d, 0x0113, 0x01f5, 0x01f7, 0x014e,
+ 0x00bf, 0x00a7, 0x00f3, 0x0161, 0x0193, 0x0193,
+ 0x01b4, 0x01f0, 0x0231, 0x025e, 0x01f9, 0x0116,
+ 0x0084, 0x0068, 0x007f, 0x00b9, 0x00d5, 0x00cd,
+ 0x00be, 0x0094, 0x00c0, 0x015c, 0x0160, 0x00ab,
+ 0x001a, 0xffbf, 0xffa1, 0x0013, 0x0088, 0x0097,
+ 0x00e2, 0x019c, 0x023b, 0x029f, 0x02b8, 0x01dd,
+ 0x007b, 0x005e, 0x016d, 0x01b3, 0x010c, 0x004b,
+ 0xff43, 0xfecd, 0x0027, 0x0206, 0x02ad, 0x02a4,
+ 0x02db, 0x0310, 0x0304, 0x0310, 0x0307, 0x022c,
+ 0x00ba, 0xfff2, 0x0050, 0x011d, 0x01ad, 0x0214,
+ 0x022f, 0x017b, 0x00b1, 0x0125, 0x0225, 0x027c,
+ 0x02b9, 0x02f1, 0x025e, 0x01f6, 0x02b2, 0x0359,
+ 0x0322, 0x02d9, 0x02d2, 0x030f, 0x03f1, 0x04e3,
+ 0x04a3, 0x0375, 0x02ec, 0x037a, 0x043e, 0x04bf,
+ 0x0501, 0x04a4, 0x03b8, 0x0315, 0x02c4, 0x021e,
+ 0x016c, 0x012c, 0x00fc, 0x00ae, 0x0095, 0x009b,
+ 0x0090, 0x0090, 0x0076, 0x0005, 0xff56, 0xfeb5,
+ 0xfea5, 0xff89, 0x00e2, 0x01d6, 0x0241, 0x023f,
+ 0x01c9, 0x0160, 0x018a, 0x01e0, 0x020f, 0x0264,
+ 0x02df, 0x0357, 0x03b1, 0x0372, 0x02c3, 0x02b4,
+ 0x0339, 0x036a, 0x0398, 0x041e, 0x041d, 0x0366,
+ 0x02bb, 0x020e, 0x0119, 0x004c, 0xffc9, 0xff7b,
+ 0xffb8, 0x008c, 0x0186, 0x022a, 0x020f, 0x0149,
+ 0x0061, 0xff9c, 0xff49, 0xffd8, 0x00fa, 0x01fa,
+ 0x02bc, 0x034e, 0x0371, 0x0329, 0x02ac, 0x01c8,
+ 0x007b, 0xff4f, 0xfe83, 0xfe33, 0xfe96, 0xff2e,
+ 0xff7d, 0x001f, 0x013c, 0x0218, 0x02f3, 0x043e,
+ 0x0545, 0x05a2, 0x05b5, 0x0562, 0x047f, 0x0390,
+ 0x02eb, 0x024d, 0x0192, 0x00ea, 0x006b, 0x0035,
+ 0x00cc, 0x0237, 0x0377, 0x03cb, 0x0363, 0x028a,
+ 0x0162, 0x0055, 0xffe4, 0x001c, 0x00d5, 0x01eb,
+ 0x0317, 0x03c0, 0x0358, 0x0237, 0x0153, 0x00e7,
+ 0x0086, 0x0054, 0x0074, 0x0080, 0x00b0, 0x0186,
+ 0x02a5, 0x03c5, 0x0510, 0x060d, 0x0651, 0x0674,
+ 0x06b0, 0x0655, 0x055f, 0x048e, 0x03c5, 0x0261,
+ 0x00ac, 0xff4f, 0xfe7d, 0xfe68, 0xff05, 0xffdc,
+ 0x00df, 0x0228, 0x033c, 0x03d2, 0x03eb, 0x0324,
+ 0x016d, 0xff9d, 0xfe81, 0xfe4c, 0xfee1, 0xfffa,
+ 0x010b, 0x0153, 0x0093, 0xff58, 0xfe1c, 0xfcf5,
+ 0xfc36, 0xfc0f, 0xfc14, 0xfc4d, 0xfd4a, 0xfe79,
+ 0xfed9, 0xfee5, 0xff3c, 0xff1d, 0xfe5c, 0xfe48,
+ 0xff47, 0x004f, 0x00aa, 0x007f, 0x0039, 0xfff7,
+ 0xff4a, 0xfe5f, 0xfe52, 0xff4e, 0x0068, 0x0188,
+ 0x029a, 0x0265, 0x00aa, 0xfecd, 0xfd94, 0xfced,
+ 0xfcd4, 0xfcf1, 0xfcf5, 0xfd1f, 0xfd44, 0xfd09,
+ 0xfcc3, 0xfc82, 0xfbda, 0xfb49, 0xfb5a, 0xfb4d,
+ 0xfadf, 0xfb35, 0xfc81, 0xfda4, 0xfe4f, 0xfe9e,
+ 0xfdd6, 0xfc7e, 0xfcf2, 0xff4b, 0x00aa, 0x0002,
+ 0xfedd, 0xfde3, 0xfd32, 0xfdaa, 0xfe7d, 0xfdbd,
+ 0xfc6d, 0xfcaa, 0xfd74, 0xfda1, 0xfe3c, 0xfe84,
+ 0xfcb5, 0xfb02, 0xfbf2, 0xfd88, 0xfde7, 0xfe01,
+ 0xfd61, 0xfad4, 0xf82f, 0xf800, 0xf9f4, 0xfbf3,
+ 0xfd1b, 0xfe5d, 0xffea, 0x00ce, 0x020d, 0x0499,
+ 0x0543, 0x01fc, 0xfe87, 0xfda6, 0xfde9, 0xff4b,
+ 0x01a6, 0x014a, 0xfe24, 0xfd93, 0x0072, 0x02dd,
+ 0x043a, 0x053f, 0x04bd, 0x03a6, 0x03a7, 0x034b,
+ 0x01a1, 0xffdb, 0xfe3e, 0xfd53, 0xfe6e, 0x005c,
+ 0x00d8, 0x0044, 0x0017, 0x007e, 0x011b, 0x017b,
+ 0x012f, 0x0052, 0xff37, 0xfe8b, 0xff7e, 0x0197,
+ 0x02a3, 0x024a, 0x021a, 0x0250, 0x027d, 0x02fd,
+ 0x035b, 0x02a6, 0x0188, 0x0196, 0x03b1, 0x0723,
+ 0x096b, 0x08bc, 0x0622, 0x0358, 0x0134, 0x0091,
+ 0x011b, 0x00ce, 0xff31, 0xfdf9, 0xfdb6, 0xfd67,
+ 0xfcbf, 0xfc61, 0xfcfe, 0xfe7f, 0xffc3, 0xfffc,
+ 0xff6b, 0xfe2f, 0xfc78, 0xfb96, 0xfc67, 0xfe2a,
+ 0x0041, 0x0301, 0x0644, 0x08b4, 0x08fa, 0x076d,
+ 0x05c0, 0x04b0, 0x03b9, 0x02fc, 0x0280, 0x0121,
+ 0xff04, 0xfdb5, 0xfd12, 0xfc7f, 0xfd26, 0xff3b,
+ 0x0117, 0x0270, 0x03b2, 0x03ec, 0x02c3, 0x0136,
+ 0xff8e, 0xfdd6, 0xfcbe, 0xfc3c, 0xfbe9, 0xfc3b,
+ 0xfcf5, 0xfce5, 0xfc55, 0xfc58, 0xfc71, 0xfbfc,
+ 0xfbbd, 0xfc58, 0xfdc7, 0x0010, 0x0270, 0x035a,
+ 0x0273, 0x00cd, 0xff79, 0xff25, 0x0019, 0x0190,
+ 0x028b, 0x0311, 0x0354, 0x02f1, 0x0229, 0x01c2,
+ 0x018f, 0x00f7, 0x0003, 0xfec0, 0xfd39, 0xfc24,
+ 0xfbc4, 0xfb7c, 0xfb53, 0xfb91, 0xfb4d, 0xfa1f,
+ 0xf97b, 0xfa2d, 0xfb6f, 0xfd3c, 0xfffa, 0x027e,
+ 0x039f, 0x03f7, 0x0431, 0x03f3, 0x0362, 0x0344,
+ 0x0382, 0x0384, 0x034c, 0x02c4, 0x0143, 0xfeff,
+ 0xfd2c, 0xfc34, 0xfbc5, 0xfbdf, 0xfc37, 0xfc5b,
+ 0xfcf1, 0xfe3f, 0xff23, 0xff7f, 0x0060, 0x014a,
+ 0x018e, 0x0244, 0x0382, 0x03d9, 0x039c, 0x03b0,
+ 0x0345, 0x0255, 0x01cf, 0x00db, 0xff0a, 0xfe1f,
+ 0xfe2c, 0xfd90, 0xfd30, 0xfe97, 0x0096, 0x01f1,
+ 0x02eb, 0x0330, 0x02db, 0x0381, 0x0532, 0x05ef,
+ 0x0520, 0x041f, 0x03dd, 0x0414, 0x03f6, 0x0324,
+ 0x01e6, 0x0029, 0xfd7e, 0xfa7b, 0xf84f, 0xf728,
+ 0xf6f1, 0xf825, 0xfa49, 0xfbb4, 0xfbf0, 0xfc41,
+ 0xfd3c, 0xfe45, 0xff58, 0x009c, 0x00d0, 0xff09,
+ 0xfcb6, 0xfb49, 0xfa3a, 0xf92d, 0xf8d9, 0xf942,
+ 0xf9d7, 0xfa2d, 0xf9a2, 0xf89f, 0xf931, 0xfbe2,
+ 0xfed5, 0x00f8, 0x0248, 0x0224, 0x00ef, 0x0055,
+ 0x0082, 0x010d, 0x0344, 0x0728, 0x09f7, 0x0ad2,
+ 0x0bdc, 0x0dde, 0x1058, 0x13fc, 0x1817, 0x1a00,
+ 0x1a50, 0x1c19, 0x1e5b, 0x1e41, 0x1d2b, 0x1cd2,
+ 0x1b87, 0x19a7, 0x1a2f, 0x1c3b, 0x1cf3, 0x1d33,
+ 0x1e24, 0x1e61, 0x1dd3, 0x1da2, 0x1d28, 0x1b86,
+ 0x18bd, 0x14b2, 0x10c9, 0x0edd, 0x0d79, 0x0aa9,
+ 0x07c4, 0x05bd, 0x0380, 0x01ad, 0x0179, 0x0166,
+ 0xffba, 0xfcf4, 0xfa32, 0xf7cc, 0xf589, 0xf328,
+ 0xf00e, 0xea5f, 0xe17b, 0xd66c, 0xc55b, 0xaa19,
+ 0x90be, 0x8c83, 0x9a0a, 0xa568, 0xa933, 0xabe5,
+ 0xadd9, 0xb2b7, 0xc5d9, 0xe40f, 0xf95d, 0xfc01,
+ 0xf51b, 0xef51, 0xec11, 0xe79a, 0xde87, 0xcf72,
+ 0xbc5a, 0xad59, 0xab80, 0xb464, 0xbce8, 0xc22b,
+ 0xc92d, 0xd0e2, 0xd57e, 0xda6c, 0xe34d, 0xec87,
+ 0xf22f, 0xf4c8, 0xf595, 0xf54e, 0xf579, 0xf786,
+ 0xfacc, 0xfc1e, 0xf97a, 0xf59b, 0xf427, 0xf541,
+ 0xf851, 0xfdac, 0x0427, 0x0ac4, 0x11ff, 0x1814,
+ 0x1a07, 0x18fb, 0x188d, 0x1afe, 0x21db, 0x2ca6,
+ 0x372d, 0x3dfb, 0x40e1, 0x3fb1, 0x3a4c, 0x32fe,
+ 0x2c67, 0x27e5, 0x26af, 0x27e4, 0x2748, 0x223c,
+ 0x1ab8, 0x1387, 0x0de5, 0x0b41, 0x0cb8, 0x10f4,
+ 0x15b9, 0x1a5e, 0x1e74, 0x2084, 0x204e, 0x1f68,
+ 0x1eca, 0x1ee3, 0x20fd, 0x253e, 0x298a, 0x2c52,
+ 0x2d2f, 0x2b24, 0x25ec, 0x1f04, 0x175b, 0x0f3d,
+ 0x0840, 0x03e3, 0x0211, 0x0299, 0x04ee, 0x070d,
+ 0x07ee, 0x08c7, 0x09f9, 0x0a5b, 0x0993, 0x07aa,
+ 0x0439, 0x005f, 0xfe13, 0xfccd, 0xfafc, 0xf940,
+ 0xf896, 0xf84b, 0xf828, 0xf8e6, 0xf9fc, 0xfa85,
+ 0xfaca, 0xfadc, 0xfa7c, 0xfa7b, 0xfb36, 0xfbe9,
+ 0xfd00, 0xff7a, 0x0293, 0x05be, 0x09f9, 0x0ef6,
+ 0x12ef, 0x151d, 0x1519, 0x12a2, 0x0f71, 0x0daa,
+ 0x0d96, 0x0f4b, 0x12ee, 0x1658, 0x16a2, 0x133a,
+ 0x0d03, 0x055a, 0xfe68, 0xf92c, 0xf490, 0xf025,
+ 0xecda, 0xeace, 0xe9af, 0xea20, 0xec91, 0xf080,
+ 0xf5b9, 0xfbf3, 0x0158, 0x03d0, 0x0372, 0x01fb,
+ 0x00e3, 0x0141, 0x03e1, 0x080a, 0x0c09, 0x0f42,
+ 0x11b6, 0x1283, 0x1130, 0x0ebe, 0x0c66, 0x0b10,
+ 0x0b44, 0x0c29, 0x0c6b, 0x0c33, 0x0c6a, 0x0d65,
+ 0x0f81, 0x1313, 0x1774, 0x1ba0, 0x1edd, 0x2016,
+ 0x1e90, 0x1b34, 0x1763, 0x13aa, 0x10b2, 0x0f50,
+ 0x0f57, 0x101f, 0x1141, 0x11d8, 0x10e4, 0x0e60,
+ 0x0ac4, 0x06b0, 0x037e, 0x0275, 0x03de, 0x077f,
+ 0x0ca8, 0x118e, 0x1405, 0x130a, 0x0f46, 0x0a96,
+ 0x06ec, 0x055d, 0x05d8, 0x0792, 0x09aa, 0x0b4d,
+ 0x0ba9, 0x0a66, 0x07aa, 0x03e2, 0x006a, 0xfefa,
+ 0xffe2, 0x0287, 0x06a0, 0x0b25, 0x0dfb, 0x0dd6,
+ 0x0add, 0x05a4, 0xff5a, 0xfa09, 0xf6da, 0xf55b,
+ 0xf4f8, 0xf52b, 0xf514, 0xf44d, 0xf313, 0xf1fc,
+ 0xf269, 0xf557, 0xfa2a, 0xff7b, 0x031a, 0x026a,
+ 0xfcb8, 0xf366, 0xe877, 0xded0, 0xd96f, 0xd9a1,
+ 0xdf11, 0xe79c, 0xefcc, 0xf51f, 0xf68b, 0xf42b,
+ 0xefad, 0xeb47, 0xe8e9, 0xe9d2, 0xed28, 0xf149,
+ 0xf558, 0xf7bb, 0xf77c, 0xf5e1, 0xf38a, 0xf0aa,
+ 0xee8f, 0xed72, 0xed1d, 0xee28, 0xeff5, 0xf225,
+ 0xf54f, 0xf80f, 0xf8fb, 0xf939, 0xf96f, 0xf903,
+ 0xf83e, 0xf7ae, 0xf6f8, 0xf5c3, 0xf46f, 0xf360,
+ 0xf2ff, 0xf3e0, 0xf5d6, 0xf920, 0xfdee, 0x019b,
+ 0x0263, 0x0184, 0xfea0, 0xfa09, 0xf65c, 0xf300,
+ 0xf030, 0xf0d8, 0xf312, 0xf4fb, 0xf888, 0xfbdc,
+ 0xfd0e, 0xfe27, 0xfe80, 0xfda4, 0xfe04, 0xff61,
+ 0x012c, 0x042b, 0x06bf, 0x081d, 0x08f0, 0x0837,
+ 0x0654, 0x051b, 0x0410, 0x0290, 0x0166, 0x0017,
+ 0xfdd5, 0xfc33, 0xfc94, 0xfd9f, 0xfec1, 0x014f,
+ 0x0541, 0x09f9, 0x0f58, 0x1455, 0x17cb, 0x1820,
+ 0x1432, 0x0e8d, 0x0907, 0x0225, 0xfc34, 0xfb30,
+ 0xfd19, 0xfee0, 0x01e5, 0x06f8, 0x0ba1, 0x0ee1,
+ 0x1286, 0x15ce, 0x1524, 0x10c6, 0x0bf3, 0x06ad,
+ 0xffbc, 0xf941, 0xf509, 0xf0ab, 0xeb82, 0xea41,
+ 0xee3d, 0xf307, 0xf794, 0xfd82, 0x0258, 0x030e,
+ 0xffd9, 0xfa41, 0xf379, 0xebfb, 0xe53d, 0xe172,
+ 0xe02a, 0xe0a3, 0xe4ac, 0xec80, 0xf4d7, 0xfacc,
+ 0xfd98, 0xfc3f, 0xf63e, 0xeed4, 0xe8f6, 0xe432,
+ 0xe1e4, 0xe359, 0xe71e, 0xee4c, 0xf830, 0x0096,
+ 0x07d1, 0x0c0c, 0x08c9, 0x020f, 0xf9cc, 0xee12,
+ 0xe653, 0xe4c0, 0xe339, 0xe60c, 0xeeb2, 0xf527,
+ 0xfaea, 0x0270, 0x07aa, 0x0c5d, 0x0ffb, 0x0ccd,
+ 0x0625, 0x0165, 0xfd26, 0xf8c2, 0xf5de, 0xf541,
+ 0xf749, 0xfc16, 0x02ec, 0x0ab6, 0x1377, 0x1b00,
+ 0x1dea, 0x1e39, 0x1b22, 0x100f, 0x0368, 0xfae4,
+ 0xf2c4, 0xef27, 0xf32e, 0xf8f2, 0x0278, 0x0f44,
+ 0x173e, 0x1cb1, 0x1f4a, 0x187d, 0x0e92, 0x06a6,
+ 0xfd48, 0xf54f, 0xf25f, 0xf567, 0xfd86, 0x0464,
+ 0x0a53, 0x12d4, 0x185d, 0x1a88, 0x1c36, 0x19d0,
+ 0x1671, 0x14cf, 0x0e9e, 0x05bc, 0x0124, 0x0130,
+ 0x0413, 0x083d, 0x0ee4, 0x16a5, 0x1869, 0x1698,
+ 0x14d2, 0x0cdf, 0x0332, 0x0028, 0xff12, 0xff50,
+ 0x03ac, 0x0947, 0x107f, 0x16ec, 0x18fb, 0x18f5,
+ 0x1315, 0x0801, 0x0119, 0xf9d0, 0xf0d0, 0xf217,
+ 0xf739, 0xf6ce, 0xfcc4, 0x0a95, 0x105d, 0x0d45,
+ 0x0d74, 0x0eef, 0x06df, 0xfb84, 0xf77f, 0xf495,
+ 0xf11a, 0xf346, 0xf6a8, 0xfa22, 0xff71, 0x01cc,
+ 0x05a5, 0x0a9a, 0x078d, 0x05e6, 0x074e, 0xfdfe,
+ 0xf5a3, 0xf7cb, 0xf7e7, 0xfa3a, 0x01f6, 0x041a,
+ 0x080e, 0x102a, 0x0e66, 0x0908, 0x07e8, 0x0186,
+ 0xf7d8, 0xf30d, 0xf0ff, 0xf327, 0xfe0a, 0x0c75,
+ 0x1624, 0x1aac, 0x1c0e, 0x185f, 0x11fe, 0x0da1,
+ 0x094a, 0x0451, 0xffe9, 0xfbf4, 0xfded, 0x0476,
+ 0x06ef, 0x0adf, 0x13c6, 0x17df, 0x16ba, 0x13b4,
+ 0x0f29, 0x0dbd, 0x0aa7, 0x01cf, 0xfd53, 0xfbd8,
+ 0xf797, 0xf8b6, 0xfed5, 0x0423, 0x0ad4, 0x1004,
+ 0x123b, 0x1232, 0x0b1e, 0x04f9, 0x0657, 0x01af,
+ 0xf7a9, 0xf4f0, 0xf440, 0xf2d5, 0xf49b, 0xf2c9,
+ 0xedac, 0xec86, 0xec6c, 0xed7e, 0xf2dc, 0xf634,
+ 0xf613, 0xf889, 0xfae8, 0xf7d8, 0xf117, 0xe951,
+ 0xe4e9, 0xe887, 0xee18, 0xf087, 0xf6a3, 0xfe4b,
+ 0xfff2, 0x02f8, 0x080a, 0x04fe, 0xff5b, 0xfc72,
+ 0xf86a, 0xf85b, 0xf970, 0xf537, 0xf8af, 0x02a8,
+ 0x02d5, 0x01ea, 0x061e, 0x0581, 0x06f0, 0x0b58,
+ 0x052b, 0xfd3b, 0xfbf3, 0xf6a9, 0xf002, 0xed6e,
+ 0xea27, 0xec74, 0xf42e, 0xf5a6, 0xf9c0, 0x05b8,
+ 0x0848, 0x0424, 0x049b, 0xfcb3, 0xedd9, 0xe9ff,
+ 0xe8a6, 0xe228, 0xe21d, 0xe442, 0xe481, 0xee20,
+ 0xfa87, 0x01c7, 0x0d9b, 0x177e, 0x1623, 0x142d,
+ 0x0f7f, 0x0319, 0xfd78, 0xfd5b, 0xf9a5, 0xfddb,
+ 0x0680, 0x04b6, 0x0588, 0x0ff6, 0x1470, 0x1410,
+ 0x12ea, 0x0819, 0xfbc0, 0xf841, 0xf491, 0xeff0,
+ 0xee21, 0xe84b, 0xe50b, 0xecd4, 0xf373, 0xf6e8,
+ 0x0029, 0x0665, 0x051e, 0x05c4, 0x068f, 0x0651,
+ 0x09b3, 0x0782, 0xfea4, 0xff9e, 0x06f8, 0x05ae,
+ 0x021b, 0x0507, 0x0aa3, 0x101c, 0x12ae, 0x1313,
+ 0x18fe, 0x2061, 0x206d, 0x2086, 0x241f, 0x219b,
+ 0x1a6b, 0x143d, 0x0b70, 0x03ac, 0x03e3, 0x069c,
+ 0x07e5, 0x0a50, 0x0b7e, 0x0b49, 0x0e1b, 0x11f6,
+ 0x140b, 0x156b, 0x1405, 0x0fd3, 0x0da4, 0x0d7e,
+ 0x0de6, 0x0fb6, 0x0e4f, 0x07b9, 0x0543, 0x096f,
+ 0x0b27, 0x0a50, 0x0ea3, 0x16d9, 0x1c07, 0x1b2f,
+ 0x162e, 0x127b, 0x11d4, 0x0f2b, 0x0a3a, 0x0956,
+ 0x0cbb, 0x0f9b, 0x1125, 0x11b4, 0x102e, 0x0d05,
+ 0x092c, 0x0622, 0x056d, 0x043d, 0x01fb, 0x05d6,
+ 0x0ead, 0x0fc2, 0x0908, 0x071c, 0x0a69, 0x0a60,
+ 0x07e7, 0x0885, 0x0b4c, 0x0b3e, 0x0795, 0x0695,
+ 0x0a6e, 0x0a93, 0x0469, 0x017a, 0x044c, 0x0649,
+ 0x05fc, 0x04ae, 0x0353, 0x05d8, 0x0a12, 0x0785,
+ 0x0016, 0xfdc2, 0x022c, 0x0679, 0x0454, 0xfc90,
+ 0xf700, 0xf69d, 0xf659, 0xf63e, 0xfa2f, 0xfe04,
+ 0xfd73, 0xfd0b, 0xffba, 0x0196, 0xffce, 0xfb26,
+ 0xf594, 0xefee, 0xe961, 0xe563, 0xe9bb, 0xf1ba,
+ 0xf54d, 0xf989, 0x03eb, 0x0be2, 0x0ace, 0x05c8,
+ 0x0096, 0xf8d9, 0xee5b, 0xe794, 0xea9c, 0xf1ff,
+ 0xf49a, 0xf63a, 0xfd9f, 0x05d6, 0x0948, 0x0899,
+ 0x038a, 0xfc5e, 0xf8b9, 0xf70a, 0xf17e, 0xea62,
+ 0xe99d, 0xf04d, 0xf749, 0xfae3, 0xff03, 0x0477,
+ 0x066c, 0x0350, 0xfd6f, 0xf69d, 0xf0a4, 0xecb6,
+ 0xea44, 0xe8f5, 0xeb38, 0xf34c, 0xfc1d, 0xfec3,
+ 0xff3c, 0x030e, 0x0449, 0xfee0, 0xf97b, 0xf872,
+ 0xf927, 0xf9d9, 0xfc6d, 0x016a, 0x03fd, 0x02f0,
+ 0x051e, 0x09eb, 0x0853, 0x0101, 0xfb1a, 0xf7a4,
+ 0xf4b6, 0xf16f, 0xeef1, 0xf0e1, 0xf8ef, 0x0452,
+ 0x0be2, 0x0a4e, 0x0540, 0x020d, 0xfc2d, 0xf3f3,
+ 0xedac, 0xe766, 0xe308, 0xe3cb, 0xe6e0, 0xed59,
+ 0xf584, 0xf844, 0xfa00, 0xfeae, 0xffd2, 0xfe2c,
+ 0xfb17, 0xf2d2, 0xebb0, 0xea59, 0xeae2, 0xeedf,
+ 0xf4d5, 0xf826, 0xfbe0, 0xfde5, 0xfc51, 0xfebb,
+ 0x0110, 0xfbf8, 0xf6de, 0xf339, 0xee04, 0xee06,
+ 0xf1c7, 0xf2e3, 0xf54d, 0xf80f, 0xf60f, 0xf3ce,
+ 0xf42b, 0xf3fe, 0xf2c4, 0xf0fd, 0xefb2, 0xf0e7,
+ 0xf3b1, 0xf679, 0xf97c, 0xfb37, 0xf96b, 0xf766,
+ 0xf99c, 0xfa61, 0xf462, 0xf0a9, 0xf461, 0xf70f,
+ 0xf6fd, 0xfa0e, 0x008a, 0x0806, 0x0cde, 0x0cad,
+ 0x0a9f, 0x073a, 0x0104, 0xfb62, 0xf8ab, 0xfa25,
+ 0xfee3, 0xff9e, 0xfe2f, 0x02fd, 0x07ed, 0x08e6,
+ 0x0d3b, 0x0f92, 0x08e2, 0x012d, 0xf99b, 0xef53,
+ 0xecbc, 0xf3f2, 0xf8c1, 0xfa25, 0xfe85, 0x03b1,
+ 0x0756, 0x099f, 0x06c5, 0x00b5, 0xfeab, 0xfc16,
+ 0xf31c, 0xedea, 0xf23b, 0xf5f2, 0xf66c, 0xfb25,
+ 0x0351, 0x0887, 0x0a0c, 0x0ac5, 0x0a25, 0x0698,
+ 0x0332, 0xff91, 0xf7dd, 0xf477, 0xfc35, 0x022f,
+ 0x005f, 0x0179, 0x04ab, 0x01a6, 0xfb8b, 0xf6d2,
+ 0xf3d8, 0xf324, 0xf1ba, 0xef40, 0xf1a2, 0xf6e7,
+ 0xf84a, 0xfa54, 0x002e, 0x015a, 0xfe34, 0xfd03,
+ 0xf820, 0xf1d8, 0xf46a, 0xf625, 0xf11b, 0xf1b1,
+ 0xf4c1, 0xf417, 0xf861, 0xfda6, 0xfede, 0x018e,
+ 0xfd2c, 0xf120, 0xecf3, 0xedc4, 0xf07f, 0xf8e6,
+ 0xfb62, 0xfb1a, 0x02f9, 0x053b, 0x021f, 0x040a,
+ 0x00a0, 0xfd92, 0x01b6, 0xfdd6, 0xfceb, 0x05c4,
+ 0xfff0, 0xf921, 0x0449, 0x0629, 0xfe54, 0x029b,
+ 0x0648, 0x01e2, 0xfc9f, 0xf60b, 0xf524, 0xf84b,
+ 0xf80e, 0xfd6b, 0x0364, 0x01fc, 0x05f6, 0x08db,
+ 0x017a, 0xffe1, 0x0194, 0xfda8, 0xff19, 0x0292,
+ 0x02b5, 0x06d8, 0x08bb, 0x06a6, 0x0780, 0x059a,
+ 0x0366, 0x03de, 0xfdba, 0xf8ac, 0xfb34, 0xfb38,
+ 0xfc43, 0xff7d, 0xff1d, 0x048f, 0x0a78, 0x05d6,
+ 0x0631, 0x0aee, 0x0506, 0xff93, 0xffce, 0xfdd0,
+ 0xfd88, 0xfdc1, 0xfdd2, 0x017c, 0xfe33, 0xf818,
+ 0xfcaa, 0xfa72, 0xebd2, 0xe612, 0xe32f, 0xd8ef,
+ 0xd6d9, 0xdda0, 0xe1a3, 0xe582, 0xe9c4, 0xeb80,
+ 0xee55, 0xf1f5, 0xf2ec, 0xf129, 0xed1f, 0xe90f,
+ 0xe786, 0xe8af, 0xec96, 0xf127, 0xf4c5, 0xfae9,
+ 0x0150, 0x0139, 0x00e0, 0x055c, 0x03f7, 0xfeb2,
+ 0x0125, 0xff51, 0xf45a, 0xf544, 0xfe53, 0xfd96,
+ 0xff3f, 0x09c8, 0x0f32, 0x1218, 0x17cf, 0x185f,
+ 0x13ad, 0x0f6f, 0x0dc9, 0x0c3d, 0x0505, 0xfe46,
+ 0xfeb5, 0xfcb7, 0xf6ff, 0xf50c, 0xf4f2, 0xf77f,
+ 0xfa1e, 0xf70a, 0xf780, 0xf9b1, 0xf430, 0xf564,
+ 0xfcef, 0xfb1b, 0xfdf2, 0x087d, 0x0897, 0x08ad,
+ 0x1007, 0x1182, 0x11ed, 0x1479, 0x129d, 0x115f,
+ 0x0f4b, 0x0ba6, 0x0dc2, 0x0cb0, 0x07a9, 0x0a7e,
+ 0x0bff, 0x0af9, 0x10a3, 0x0f50, 0x07ee, 0x09c6,
+ 0x086f, 0x0054, 0xfee8, 0xfd86, 0xfa0a, 0xfb24,
+ 0xf9fe, 0xf8ea, 0xfcc6, 0xfc32, 0xf9f6, 0xfbb1,
+ 0xf838, 0xef49, 0xe789, 0xe279, 0xe3c6, 0xe978,
+ 0xee8e, 0xf47a, 0xf7e5, 0xf742, 0xfa38, 0xfeda,
+ 0xfe34, 0xfd1b, 0x0118, 0x064b, 0x075f, 0x0632,
+ 0x0774, 0x0928, 0x09fb, 0x0d31, 0x1082, 0x12ad,
+ 0x166a, 0x17cb, 0x171c, 0x198a, 0x1762, 0x0cc5,
+ 0x0636, 0x0742, 0x07f3, 0x0781, 0x08dc, 0x0ab2,
+ 0x0a61, 0x08ed, 0x09b9, 0x0b4a, 0x0be9, 0x0eb6,
+ 0x1137, 0x0fb6, 0x0fe3, 0x128c, 0x11b3, 0x1123,
+ 0x1460, 0x13f9, 0x0ebc, 0x0b9e, 0x0a77, 0x0976,
+ 0x0b1e, 0x0d70, 0x0e3b, 0x0fa8, 0x0f6a, 0x0e52,
+ 0x12ad, 0x15aa, 0x1017, 0x0b28, 0x0908, 0x04d8,
+ 0x052e, 0x0ac9, 0x0db1, 0x0e39, 0x0de3, 0x0e6b,
+ 0x123a, 0x1316, 0x10b6, 0x11f6, 0x1223, 0x0db3,
+ 0x0894, 0x0438, 0x0552, 0x08a4, 0x0414, 0x010a,
+ 0x05e8, 0x06a1, 0x0556, 0x0763, 0x064c, 0x0653,
+ 0x087c, 0x0501, 0x02d7, 0x0400, 0x0128, 0x00a3,
+ 0x0391, 0x0482, 0x087c, 0x0c22, 0x0a23, 0x08dd,
+ 0x0638, 0x0041, 0xfcce, 0xf920, 0xf66f, 0xf84d,
+ 0xf967, 0xfda3, 0x0425, 0x01c7, 0x0016, 0x047f,
+ 0x0247, 0xffba, 0x0328, 0x0444, 0x06d3, 0x092e,
+ 0x04b0, 0x03d3, 0x0630, 0x04ac, 0x07ee, 0x0c72,
+ 0x0908, 0x04b1, 0x016c, 0xfe9d, 0xfe6d, 0xfa65,
+ 0xf5de, 0xf8d6, 0xfb40, 0xfbeb, 0x004e, 0x033c,
+ 0x0611, 0x09d7, 0x0624, 0x00b7, 0xff3c, 0xf939,
+ 0xf3fd, 0xf6b4, 0xf6ec, 0xf47e, 0xf7d4, 0xfc52,
+ 0xffa6, 0x04ed, 0x0855, 0x0761, 0x0419, 0x0042,
+ 0xfda2, 0xfbd4, 0xfb3c, 0xfda0, 0x007b, 0x00e3,
+ 0xff88, 0x0020, 0x0473, 0x0686, 0x0666, 0x0929,
+ 0x0671, 0xff5b, 0x02ab, 0x079c, 0x0383, 0x01ac,
+ 0x03e9, 0x048d, 0x03cd, 0x020f, 0x05d0, 0x084f,
+ 0xfcee, 0xf749, 0xfee9, 0xfd78, 0xf96c, 0xfccf,
+ 0xfb2d, 0xface, 0xff03, 0xfce7, 0xfcfe, 0xff46,
+ 0xfa3f, 0xf9a9, 0xfccb, 0xf91f, 0xf92b, 0xfc0c,
+ 0xf925, 0xfcdf, 0x064b, 0x0589, 0x01e7, 0x042f,
+ 0x021a, 0xfab8, 0xf73e, 0xf5e0, 0xf360, 0xf2dc,
+ 0xf4d4, 0xf8ef, 0xfdf7, 0x00bd, 0x034d, 0x04e8,
+ 0x0098, 0xfbd0, 0xfa63, 0xf779, 0xf634, 0xf851,
+ 0xf81b, 0xf7e7, 0xf9b3, 0xfa7e, 0xfc6a, 0xfe1a,
+ 0xfd00, 0xfd82, 0xfd95, 0xfa3a, 0xfab3, 0xfd87,
+ 0xfa19, 0xf792, 0xfd2f, 0x0132, 0x0049, 0x0233,
+ 0x0473, 0x02a9, 0x00d2, 0xff2d, 0xfc86, 0xfaf9,
+ 0xfbb9, 0x0032, 0x03a7, 0x02db, 0x079c, 0x0f0f,
+ 0x0cb5, 0x0895, 0x0716, 0x0025, 0xf9bc, 0xf70b,
+ 0xf2d8, 0xf14c, 0xf2cd, 0xf6a7, 0x0048, 0x07d9,
+ 0x0a92, 0x0da3, 0x0b28, 0x055a, 0x03fc, 0xff4e,
+ 0xf72f, 0xf4ad, 0xf4c6, 0xf48b, 0xf582, 0xf906,
+ 0x0215, 0x0a3f, 0x0b49, 0x0c84, 0x0d28, 0x06a8,
+ 0x007b, 0xfe2e, 0xf994, 0xf616, 0xf782, 0xf8b3,
+ 0xfaf6, 0x01fd, 0x0741, 0x07f7, 0x096c, 0x09f1,
+ 0x066a, 0x0177, 0xfa77, 0xf2b6, 0xeffc, 0xf04f,
+ 0xf073, 0xf340, 0xf806, 0xfc7b, 0x00c1, 0x031a,
+ 0x03e0, 0x0473, 0x025d, 0xfe45, 0xfb80, 0xfa79,
+ 0xfc1d, 0xff35, 0x0090, 0x02b5, 0x0514, 0x02d8,
+ 0x01a7, 0x03e6, 0x0063, 0xfb7b, 0xfcd9, 0xfb7e,
+ 0xf8c6, 0xfdb9, 0x0120, 0x009c, 0x0580, 0x0947,
+ 0x078d, 0x0787, 0x0610, 0x00bb, 0xfde7, 0xfc7a,
+ 0xf909, 0xf546, 0xf2dc, 0xf423, 0xf952, 0xfe25,
+ 0x006e, 0x0285, 0x057c, 0x0582, 0x018c, 0xfd67,
+ 0xf8d6, 0xf4e7, 0xf4e5, 0xf4e3, 0xf549, 0xf940,
+ 0xfa35, 0xfb49, 0x0335, 0x065d, 0x03e3, 0x0739,
+ 0x085c, 0x02d4, 0x00d5, 0x006a, 0xfe64, 0xfe22,
+ 0xfc25, 0xfa66, 0xfe19, 0xff7a, 0xfc00, 0xfc4f,
+ 0xff5e, 0x00a6, 0x0372, 0x05fc, 0x03a4, 0x013e,
+ 0x00b3, 0xfdc7, 0xfbf2, 0xfc84, 0xfb2c, 0xfc96,
+ 0x00f4, 0x010c, 0x01df, 0x0519, 0x045d, 0x05d0,
+ 0x099e, 0x06e4, 0x0471, 0x04ff, 0x012d, 0xfea3,
+ 0xfea1, 0xfa3f, 0xf760, 0xf8cc, 0xf937, 0xfa30,
+ 0xfb5c, 0xfb75, 0xfd41, 0xfc80, 0xf65d, 0xf129,
+ 0xee41, 0xe9d4, 0xe51e, 0xe3a1, 0xe401, 0xe397,
+ 0xe557, 0xe9ce, 0xed06, 0xf108, 0xf4fd, 0xf3ec,
+ 0xf254, 0xf135, 0xed69, 0xed9a, 0xf028, 0xee5f,
+ 0xef2a, 0xf282, 0xf212, 0xf36f, 0xf87e, 0xfd97,
+ 0x01bc, 0x0234, 0x032d, 0x074c, 0x06b3, 0x04ee,
+ 0x08a7, 0x0ba0, 0x0c96, 0x0d5f, 0x0c5e, 0x0c05,
+ 0x0b95, 0x09a9, 0x072f, 0x013d, 0xfb66, 0xf90b,
+ 0xf5b2, 0xf4de, 0xf653, 0xf4ad, 0xf758, 0xfb97,
+ 0xf9dd, 0xfcb6, 0x0104, 0xfd20, 0xfabb, 0xf8d4,
+ 0xf3e5, 0xf5fd, 0xf8ed, 0xf7f7, 0xfdde, 0x0469,
+ 0x05de, 0x0b19, 0x1035, 0x1087, 0x108a, 0x0e62,
+ 0x0aac, 0x098e, 0x0974, 0x0950, 0x08e2, 0x0854,
+ 0x0a01, 0x0cca, 0x0e94, 0x0f90, 0x0f7b, 0x0f4c,
+ 0x0e2d, 0x0ac2, 0x0703, 0x012c, 0xfa87, 0xf89d,
+ 0xf80a, 0xf730, 0xf89a, 0xfa90, 0xfe13, 0xffac,
+ 0xfacf, 0xf757, 0xf66a, 0xf167, 0xecf0, 0xeae6,
+ 0xe7fd, 0xe8ef, 0xec96, 0xede0, 0xf146, 0xf735,
+ 0xfa78, 0xfbec, 0xfde4, 0xff23, 0xff84, 0x017f,
+ 0x0431, 0x055c, 0x06cd, 0x08cd, 0x0920, 0x094f,
+ 0x0bc4, 0x0d20, 0x0b5a, 0x0ade, 0x0b1b, 0x08bb,
+ 0x07d0, 0x0976, 0x0880, 0x075a, 0x0aa8, 0x0cea,
+ 0x0b9e, 0x0bf2, 0x0b52, 0x067c, 0x034b, 0x0278,
+ 0x001f, 0xff65, 0x0170, 0x02a7, 0x0476, 0x08f6,
+ 0x0ce6, 0x0e0c, 0x0f24, 0x1070, 0x0fb9, 0x0e72,
+ 0x0c45, 0x09c8, 0x090c, 0x06c3, 0x04ca, 0x07cc,
+ 0x0b80, 0x0bdf, 0x0b2b, 0x0b74, 0x0b62, 0x09c6,
+ 0x075f, 0x06c1, 0x0731, 0x0537, 0x050e, 0x0806,
+ 0x0b9d, 0x0fdc, 0x0ec2, 0x0cb4, 0x0cf0, 0x059a,
+ 0xfff4, 0xffc6, 0xf9c7, 0xf828, 0xfddf, 0xfdc5,
+ 0xfe09, 0x0457, 0x0684, 0x065f, 0x090f, 0x0766,
+ 0x0405, 0x03ee, 0x0125, 0xfd94, 0xfcb4, 0xfc65,
+ 0xff70, 0x04b6, 0x081a, 0x0b86, 0x0dde, 0x0ce2,
+ 0x0a94, 0x0658, 0x0017, 0xfae1, 0xf8ee, 0xf98d,
+ 0xf964, 0xfad6, 0x00bc, 0x04d6, 0x0510, 0x0609,
+ 0x0679, 0x03f7, 0x0049, 0xfab0, 0xf457, 0xf11f,
+ 0xef63, 0xefb4, 0xf31e, 0xf5f4, 0xf969, 0xfe47,
+ 0x0126, 0x0228, 0x02da, 0x00be, 0xfaa5, 0xf5d7,
+ 0xf3bc, 0xf2aa, 0xf391, 0xf567, 0xf836, 0xfbe4,
+ 0x0004, 0x02cb, 0x011e, 0xff3e, 0xfe01, 0xfb51,
+ 0xf9c7, 0xf6bf, 0xf418, 0xf673, 0xf82d, 0xf94e,
+ 0xfefc, 0x029e, 0xffe6, 0xfce1, 0xfa29, 0xf721,
+ 0xf4d5, 0xf16d, 0xf077, 0xf23f, 0xf3a4, 0xf746,
+ 0xfb85, 0xfea3, 0x01fe, 0x02b6, 0x0172, 0x013a,
+ 0xfe9e, 0xfa13, 0xf8c0, 0xf8f2, 0xf8fa, 0xf895,
+ 0xf987, 0xfe4b, 0xffed, 0xffb0, 0x01fe, 0x00e6,
+ 0xfeec, 0xfdb8, 0xfcf0, 0xfd1d, 0xfa7b, 0xfc4a,
+ 0x0032, 0xfedf, 0x0155, 0x03b9, 0x01cb, 0x017b,
+ 0xff08, 0xfd86, 0xfe80, 0xfa94, 0xf7e2, 0xf8da,
+ 0xf772, 0xf8a2, 0xfc55, 0xfcff, 0xfdd9, 0xfe76,
+ 0xfd76, 0xfd66, 0xfc09, 0xfa53, 0xfa3b, 0xf804,
+ 0xf7ad, 0xfbc9, 0xfca5, 0xfd42, 0x0065, 0xffca,
+ 0xfe2f, 0xfb31, 0xf62f, 0xf5d1, 0xf6c0, 0xf5b3,
+ 0xf556, 0xf72f, 0xfaf6, 0xfd61, 0xfe7e, 0xff36,
+ 0xfd43, 0xf7a0, 0xf45a, 0xf47c, 0xefde, 0xee3a,
+ 0xf1ef, 0xf201, 0xf512, 0xf8fe, 0xfa1f, 0xfc58,
+ 0xfbb1, 0xfbbc, 0xfb56, 0xf675, 0xf345, 0xf262,
+ 0xf2ce, 0xf3ff, 0xf5f8, 0xf848, 0xf94d, 0xfcfc,
+ 0x001f, 0xff48, 0x004a, 0x01c4, 0xff8f, 0xfd16,
+ 0xfcef, 0xfba6, 0xfa6e, 0xfcba, 0xfe31, 0xfec5,
+ 0x0145, 0x02a6, 0x027e, 0x018e, 0xfe09, 0xf8a6,
+ 0xf4c9, 0xf34b, 0xf26a, 0xf2e3, 0xf58e, 0xfa6d,
+ 0x0118, 0x043c, 0x0543, 0x0900, 0x07d7, 0x040e,
+ 0x0344, 0xfe6b, 0xfaba, 0xfa36, 0xf899, 0xfa85,
+ 0xfbc8, 0xfcf8, 0xff4a, 0xfde8, 0xfe99, 0xff60,
+ 0xfd27, 0xfaa9, 0xf86c, 0xfa99, 0xfc4f, 0xfc57,
+ 0xffe7, 0x0234, 0x0310, 0x034f, 0x01b7, 0xffdd,
+ 0xfcac, 0xfbab, 0xfd47, 0xfb57, 0xfa3b, 0xfd46,
+ 0xfd50, 0xfd27, 0x00be, 0x028f, 0x03f9, 0x056c,
+ 0x0590, 0x0613, 0x0323, 0xff7f, 0xfed4, 0xfc22,
+ 0xf8e0, 0xf928, 0xfac7, 0xfd66, 0x0146, 0x01cd,
+ 0x01c7, 0x0314, 0xffb7, 0xfc60, 0xfa39, 0xf6f2,
+ 0xf66b, 0xf52f, 0xf52d, 0xf6ed, 0xf6bc, 0xf9a9,
+ 0xfc63, 0xfcdd, 0xfeac, 0xfdfa, 0xfb7a, 0xfb49,
+ 0xfcb8, 0xfc19, 0xfa5b, 0xfc47, 0xffed, 0x02c0,
+ 0x05b0, 0x067f, 0x0495, 0x051e, 0x060c, 0x02aa,
+ 0x0114, 0x0085, 0xfdcc, 0xfea4, 0xff98, 0xfda0,
+ 0xfcc5, 0xfba2, 0xfb67, 0xfe42, 0x0018, 0xff17,
+ 0xfde7, 0xfe5f, 0xfe40, 0xfc15, 0xfd09, 0xff98,
+ 0xfde5, 0xfd7e, 0xff65, 0xffa3, 0x013d, 0x02f6,
+ 0x0206, 0x011e, 0x0186, 0x0157, 0x0308, 0x054f,
+ 0x0470, 0x0827, 0x0a88, 0x0857, 0x0d15, 0x0c3b,
+ 0x0725, 0x0878, 0x0448, 0x008f, 0xff55, 0xfaca,
+ 0xfadb, 0xfc7d, 0xfe3f, 0x015c, 0x0328, 0x0535,
+ 0x04b9, 0x00f2, 0xfcd3, 0xf830, 0xf192, 0xebac,
+ 0xe865, 0xe4e3, 0xe4ba, 0xe5fe, 0xe4f6, 0xe7a1,
+ 0xeaa0, 0xeb20, 0xed60, 0xefcc, 0xefe1, 0xeea8,
+ 0xeffe, 0xf187, 0xf05d, 0xf240, 0xf657, 0xf90a,
+ 0xfd17, 0x014f, 0x042e, 0x066c, 0x0641, 0x0687,
+ 0x0820, 0x0660, 0x046c, 0x0466, 0x0357, 0x029b,
+ 0x0306, 0x02c0, 0x012e, 0x0097, 0x00c8, 0xffa8,
+ 0xfe23, 0xfd09, 0xfd25, 0xfbaf, 0xf919, 0xf9e1,
+ 0xfb5a, 0xfdd3, 0x0066, 0x00a9, 0x01fd, 0x00de,
+ 0xfdd2, 0xfe10, 0xfd3c, 0xfa3f, 0xfa7c, 0xfdfa,
+ 0x017e, 0x05fd, 0x0aeb, 0x0f54, 0x12dc, 0x131c,
+ 0x12af, 0x1104, 0x0e61, 0x0d1f, 0x0ae6, 0x0bf6,
+ 0x0cf9, 0x0cfb, 0x1272, 0x1419, 0x1430, 0x16fe,
+ 0x14c5, 0x124a, 0x0ee9, 0x08e3, 0x0611, 0x03a6,
+ 0x013c, 0x003a, 0xfdb8, 0xfc46, 0xfd4a, 0xfb5e,
+ 0xf916, 0xf9c0, 0xf7f8, 0xf657, 0xf713, 0xf70e,
+ 0xf741, 0xf644, 0xf5f5, 0xf866, 0xf9d4, 0xf94c,
+ 0xf844, 0xf7be, 0xf819, 0xfa5b, 0xfc17, 0xfba7,
+ 0xfd0f, 0xff66, 0x0193, 0x045d, 0x06eb, 0x099d,
+ 0x0a2e, 0x09b4, 0x0a6a, 0x099c, 0x0645, 0x02c9,
+ 0x0397, 0x0610, 0x05c0, 0x0816, 0x0ca6, 0x1005,
+ 0x155d, 0x16dd, 0x13a5, 0x12ff, 0x0e30, 0x0845,
+ 0x073a, 0x02e0, 0x0234, 0x04f7, 0x044d, 0x0999,
+ 0x0f20, 0x1094, 0x1410, 0x156d, 0x147a, 0x11c5,
+ 0x0e1b, 0x0b89, 0x0886, 0x0752, 0x088b, 0x0a8e,
+ 0x0c52, 0x0e47, 0x1077, 0x107e, 0x1053, 0x116d,
+ 0x123a, 0x1145, 0x0f51, 0x0e21, 0x0cb0, 0x0d10,
+ 0x0dc5, 0x0c74, 0x0bbd, 0x0af0, 0x0c44, 0x0e06,
+ 0x0c94, 0x0c36, 0x0c64, 0x0b73, 0x0b3d, 0x0ccf,
+ 0x0ecf, 0x1043, 0x12b6, 0x149d, 0x15bb, 0x1292,
+ 0x0b58, 0x091e, 0x06a5, 0x003d, 0xfc56, 0xfaaa,
+ 0xfb8d, 0xfdf7, 0x012c, 0x069d, 0x0c54, 0x1033,
+ 0x100d, 0x0e42, 0x0c63, 0x0893, 0x0522, 0x01ee,
+ 0xfead, 0xfde2, 0xfee2, 0x0126, 0x0424, 0x0637,
+ 0x0727, 0x0675, 0x0602, 0x06b9, 0x042e, 0x0039,
+ 0xfecf, 0xfde2, 0xfd00, 0xfb6c, 0xfaa6, 0xfbc3,
+ 0xfbdf, 0xfd2e, 0xff69, 0xff33, 0xfe04, 0xfe0c,
+ 0xfd5b, 0xfb3d, 0xfc2e, 0xfb8b, 0xf81f, 0xf89e,
+ 0xf806, 0xf71b, 0xf842, 0xf824, 0xf915, 0xf8ba,
+ 0xf716, 0xf5dc, 0xf4ff, 0xf59c, 0xf463, 0xf3df,
+ 0xf488, 0xf4f5, 0xf782, 0xf864, 0xf819, 0xf7cc,
+ 0xf788, 0xf7f8, 0xf662, 0xf644, 0xf7a8, 0xf8b4,
+ 0xfabd, 0xfcb8, 0xff6a, 0xff32, 0xfe15, 0xff2b,
+ 0xfc72, 0xf9fd, 0xf940, 0xf699, 0xf6dd, 0xf8e9,
+ 0xfa5c, 0xfdff, 0x019c, 0x028e, 0x0327, 0x0412,
+ 0x0463, 0x0487, 0x019a, 0xfcf2, 0xfc37, 0xfbeb,
+ 0xfa7b, 0xfbab, 0xfc2e, 0xfc93, 0xff65, 0x00ff,
+ 0x030e, 0x043a, 0x02c7, 0x02f4, 0x017a, 0x0022,
+ 0x0078, 0xfea3, 0xfeea, 0xfe1e, 0xfcd2, 0xff07,
+ 0xfde0, 0xfcfa, 0xfe75, 0xfeba, 0xfef0, 0xfefe,
+ 0x00d3, 0xfffd, 0xfdea, 0xfff3, 0xff09, 0xfeee,
+ 0x00cb, 0xfd6c, 0xfc15, 0xfc51, 0xf862, 0xf676,
+ 0xf5df, 0xf459, 0xf53e, 0xf5ad, 0xf71a, 0xfac9,
+ 0xfbc7, 0xfd7d, 0xfe86, 0xfce7, 0xfd39, 0xfaab,
+ 0xf6b6, 0xf5ed, 0xf53c, 0xf4dd, 0xf3ca, 0xf42e,
+ 0xf731, 0xf830, 0xf893, 0xfa26, 0xfb28, 0xfa4b,
+ 0xf897, 0xf737, 0xf62d, 0xf5d2, 0xf4f2, 0xf532,
+ 0xf68d, 0xf6d6, 0xf81a, 0xfa3b, 0xfc35, 0xfd36,
+ 0xfdc8, 0xfe18, 0xfc2a, 0xfb65, 0xfac3, 0xf877,
+ 0xf7fe, 0xf78a, 0xf783, 0xf894, 0xfa3b, 0xfc99,
+ 0xfcf0, 0xfeec, 0x022a, 0x0230, 0x029d, 0x026c,
+ 0x009e, 0x0036, 0xffe0, 0x00d5, 0x028e, 0x01af,
+ 0x0178, 0x01ff, 0x0092, 0x0026, 0xffcc, 0xfe91,
+ 0x007d, 0x026f, 0x00f0, 0x0198, 0x0451, 0x03e2,
+ 0x0369, 0x023a, 0xfe8c, 0xfdc6, 0xfc22, 0xf9f4,
+ 0xfbb2, 0xfb4e, 0xfb4f, 0xfe4f, 0x008b, 0x01a5,
+ 0x014d, 0x01d0, 0x00a7, 0xfe28, 0xfcd7, 0xf990,
+ 0xf95b, 0xfb0f, 0xfc20, 0xffcc, 0x0107, 0x01e4,
+ 0x0389, 0x02a8, 0x0232, 0x01d7, 0x021a, 0x01bf,
+ 0x00b8, 0x0087, 0xfebc, 0xfebb, 0xfe8d, 0xfc6b,
+ 0xfd57, 0xfdad, 0xfddc, 0xff1b, 0xfd27, 0xfba0,
+ 0xfb3e, 0xf8b1, 0xf6df, 0xf72b, 0xf77f, 0xf86b,
+ 0xfab9, 0xfcff, 0xff46, 0x0107, 0x0073, 0xffd1,
+ 0x0071, 0xff57, 0xfcb1, 0xfacb, 0xfa7f, 0xfb0f,
+ 0xfb76, 0xfe39, 0x014a, 0x01e0, 0x03a3, 0x0344,
+ 0xfff3, 0xfe41, 0xfb3a, 0xf835, 0xf773, 0xf631,
+ 0xf5b5, 0xf8de, 0xfe3d, 0x00ed, 0x0257, 0x03ec,
+ 0x02f1, 0x022a, 0x0063, 0xfc63, 0xfa91, 0xf9ad,
+ 0xf8d9, 0xf9f7, 0xfc32, 0xfeda, 0x020c, 0x04ab,
+ 0x06b4, 0x0892, 0x07b9, 0x05bd, 0x04af, 0x02d7,
+ 0x0195, 0x00be, 0x00f9, 0x026e, 0x027e, 0x04b1,
+ 0x08d4, 0x0ac0, 0x0b37, 0x0a77, 0x0972, 0x07d5,
+ 0x04a3, 0x0272, 0x00ee, 0xff81, 0x0034, 0x009d,
+ 0xffe3, 0x006a, 0xff78, 0xfd68, 0xfb9a, 0xf77b,
+ 0xf3f3, 0xf0d3, 0xec9c, 0xeac0, 0xea4b, 0xea97,
+ 0xeb8e, 0xed78, 0xeff1, 0xefb2, 0xf070, 0xf23f,
+ 0xf1f8, 0xf307, 0xf361, 0xf223, 0xf28a, 0xf44d,
+ 0xf6dd, 0xf853, 0xf980, 0xfbda, 0xfe38, 0x0179,
+ 0x0354, 0x02fe, 0x0421, 0x048a, 0x0319, 0x02c6,
+ 0x01a4, 0xff51, 0xff0c, 0xffe7, 0xffd1, 0xfed4,
+ 0xfd1a, 0xfb06, 0xf9c6, 0xf92f, 0xf8a9, 0xf90f,
+ 0xf904, 0xf8ea, 0xfa6a, 0xfaf5, 0xfbdd, 0xfe80,
+ 0xff45, 0xfe68, 0xfeb2, 0xffe7, 0xffd6, 0x0092,
+ 0x02ff, 0x03e2, 0x0683, 0x0abd, 0x0c24, 0x0d57,
+ 0x0ef3, 0x0f97, 0x0fb0, 0x0f1f, 0x0ea6, 0x0e87,
+ 0x0ebf, 0x0fd3, 0x11ed, 0x1347, 0x13ca, 0x14bf,
+ 0x13c4, 0x1205, 0x1040, 0x0c06, 0x08f0, 0x0725,
+ 0x03ee, 0x0203, 0x0193, 0x011c, 0x0144, 0x00cd,
+ 0xfe87, 0xfcd5, 0xfb89, 0xf889, 0xf6d8, 0xf62a,
+ 0xf39b, 0xf2d3, 0xf4c8, 0xf5d4, 0xf5a1, 0xf549,
+ 0xf59d, 0xf6e7, 0xf7a1, 0xf71d, 0xf680, 0xf633,
+ 0xf67c, 0xf757, 0xf7df, 0xf8db, 0xfac5, 0xfc0f,
+ 0xfda7, 0x00af, 0x022e, 0x015b, 0x004a, 0xff89,
+ 0xfffc, 0x0081, 0xffd9, 0x0036, 0x01fd, 0x0478,
+ 0x0707, 0x0915, 0x0bfb, 0x0e7d, 0x0ed9, 0x0eac,
+ 0x0db5, 0x0a28, 0x05ee, 0x0384, 0x01c1, 0x005d,
+ 0x005f, 0x019d, 0x0436, 0x0774, 0x0ae9, 0x0dd8,
+ 0x0ed0, 0x0f24, 0x0f29, 0x0d67, 0x0a3c, 0x0754,
+ 0x0697, 0x0700, 0x06e4, 0x07f8, 0x0a2b, 0x0b4c,
+ 0x0ca0, 0x0ed6, 0x0eef, 0x0d61, 0x0caf, 0x0c11,
+ 0x0b50, 0x0aaa, 0x0989, 0x0900, 0x0974, 0x0997,
+ 0x0962, 0x0985, 0x0a0c, 0x0b45, 0x0caf, 0x0d9c,
+ 0x0eb7, 0x0ec9, 0x0d60, 0x0d1e, 0x0d86, 0x0cf3,
+ 0x0c5b, 0x0ba0, 0x0a32, 0x08db, 0x082c, 0x078c,
+ 0x0638, 0x054a, 0x0545, 0x04cd, 0x0503, 0x067d,
+ 0x0641, 0x04f9, 0x0504, 0x0485, 0x0316, 0x01e5,
+ 0xffe9, 0xfe33, 0xfe40, 0xfe63, 0xfe54, 0xfee4,
+ 0xffcd, 0x01c9, 0x0400, 0x0433, 0x0393, 0x035c,
+ 0x0264, 0x0133, 0x0021, 0xfe12, 0xfc28, 0xfb9a,
+ 0xfb98, 0xfbd8, 0xfc3d, 0xfc8f, 0xfdba, 0xffba,
+ 0x00b6, 0x009e, 0x00d2, 0x0090, 0xff37, 0xfdc1,
+ 0xfbea, 0xf98f, 0xf7fb, 0xf6fa, 0xf5ae, 0xf48a,
+ 0xf3ea, 0xf3fd, 0xf4e9, 0xf5fc, 0xf6e7, 0xf7c8,
+ 0xf815, 0xf7af, 0xf7bd, 0xf87f, 0xf808, 0xf64f,
+ 0xf596, 0xf4e4, 0xf333, 0xf2ef, 0xf377, 0xf30b,
+ 0xf3fa, 0xf696, 0xf931, 0xfc92, 0xffe6, 0x01d8,
+ 0x039e, 0x0452, 0x0276, 0xff7f, 0xfc32, 0xf915,
+ 0xf7e4, 0xf845, 0xf926, 0xfb29, 0xfe3e, 0x019a,
+ 0x04c6, 0x0626, 0x04ea, 0x0307, 0x0153, 0xfe9b,
+ 0xfb6d, 0xf926, 0xf7cf, 0xf7a8, 0xf8b9, 0xfa4b,
+ 0xfc44, 0xfe40, 0x0000, 0x0209, 0x032b, 0x02b1,
+ 0x0257, 0x01fd, 0x0080, 0xfebe, 0xfcf5, 0xfb10,
+ 0xf9fe, 0xf9eb, 0xfa8f, 0xfb77, 0xfc6b, 0xfe58,
+ 0x0058, 0x008c, 0x0070, 0x00bd, 0xffb2, 0xfe57,
+ 0xfdd0, 0xfca4, 0xfb8e, 0xfbea, 0xfc34, 0xfbfa,
+ 0xfc30, 0xfc1e, 0xfb9a, 0xfb72, 0xfb13, 0xfa8c,
+ 0xfaf1, 0xfbb1, 0xfbf2, 0xfc0c, 0xfc1c, 0xfbee,
+ 0xfb40, 0xf98e, 0xf721, 0xf4d6, 0xf2fa, 0xf1a9,
+ 0xf154, 0xf244, 0xf40e, 0xf682, 0xf9f0, 0xfce9,
+ 0xfdaa, 0xfd76, 0xfd54, 0xfbcf, 0xf90a, 0xf695,
+ 0xf497, 0xf339, 0xf2ea, 0xf316, 0xf3a8, 0xf516,
+ 0xf6c9, 0xf8cb, 0xfbb8, 0xfdc7, 0xfdee, 0xfe52,
+ 0xfeac, 0xfd39, 0xfbe7, 0xfb90, 0xfaad, 0xfa26,
+ 0xfa7e, 0xfac8, 0xfbc4, 0xfd6a, 0xfeb1, 0xffaf,
+ 0x0053, 0x0080, 0xffe8, 0xfed0, 0xfedf, 0xfee7,
+ 0xfd61, 0xfcfb, 0xfdb5, 0xfd26, 0xfcec, 0xfd7d,
+ 0xfd6e, 0xfdfc, 0xff7c, 0x0118, 0x02f2, 0x04ab,
+ 0x0627, 0x069b, 0x0544, 0x03b6, 0x019e, 0xfe35,
+ 0xfbdc, 0xfa44, 0xf849, 0xf818, 0xf908, 0xf9a5,
+ 0xfb71, 0xfd87, 0xfe59, 0xfe80, 0xfdd5, 0xfcd1,
+ 0xfc15, 0xfaf4, 0xf9e4, 0xf8e7, 0xf7c4, 0xf86e,
+ 0xfac9, 0xfccd, 0xfef0, 0x0146, 0x02b9, 0x03e0,
+ 0x049d, 0x03f5, 0x0306, 0x0256, 0x006d, 0xfdc8,
+ 0xfbd3, 0xfa24, 0xf91a, 0xf974, 0xfa1c, 0xfb06,
+ 0xfc7b, 0xfd30, 0xfdbb, 0xfed3, 0xfef8, 0xfeab,
+ 0xfee1, 0xfe9d, 0xfe46, 0xfe6a, 0xfe95, 0xfeff,
+ 0xff1b, 0xfec5, 0xfea0, 0xfdcd, 0xfc98, 0xfc1f,
+ 0xfbe8, 0xfcc7, 0xfeec, 0x00c3, 0x0344, 0x065a,
+ 0x0783, 0x0721, 0x05e6, 0x0357, 0x006c, 0xfd50,
+ 0xfa81, 0xf9ad, 0xf9d4, 0xfa75, 0xfd18, 0x0072,
+ 0x02ba, 0x0440, 0x047e, 0x034b, 0x01c3, 0xffcb,
+ 0xfd13, 0xfa7d, 0xf8e4, 0xf8b1, 0xf9fa, 0xfc47,
+ 0xfef4, 0x01cd, 0x04c1, 0x0757, 0x090d, 0x09aa,
+ 0x0964, 0x08bd, 0x07b4, 0x065f, 0x0571, 0x04d6,
+ 0x0470, 0x0539, 0x06c9, 0x07a0, 0x0830, 0x08e6,
+ 0x088a, 0x076e, 0x06cf, 0x05af, 0x0359, 0x0152,
+ 0xfff9, 0xfe58, 0xfcc7, 0xfbc9, 0xfaf7, 0xf9ec,
+ 0xf888, 0xf732, 0xf684, 0xf62d, 0xf587, 0xf4c6,
+ 0xf4c5, 0xf558, 0xf52a, 0xf484, 0xf4a6, 0xf4bb,
+ 0xf3b5, 0xf1fb, 0xeffe, 0xee63, 0xeda5, 0xedc6,
+ 0xef41, 0xf1e1, 0xf50e, 0xf8e0, 0xfc57, 0xfeb3,
+ 0x00b4, 0x01bb, 0x0114, 0xffe1, 0xfe2a, 0xfb4b,
+ 0xf8a0, 0xf802, 0xf902, 0xf9ef, 0xfb05, 0xfcfc,
+ 0xfe93, 0xff72, 0x0038, 0xffeb, 0xfe23, 0xfba5,
+ 0xf8f7, 0xf6ae, 0xf487, 0xf2c6, 0xf2a7, 0xf364,
+ 0xf489, 0xf6d8, 0xf905, 0xfafd, 0xfdca, 0xffb6,
+ 0x0080, 0x01a3, 0x027f, 0x0347, 0x04b3, 0x0633,
+ 0x0831, 0x0a65, 0x0b96, 0x0c5f, 0x0d30, 0x0dd1,
+ 0x0e99, 0x0f59, 0x101e, 0x110a, 0x11f9, 0x136a,
+ 0x14ab, 0x14b5, 0x143c, 0x132c, 0x1109, 0x0e64,
+ 0x0b2a, 0x07de, 0x056b, 0x039e, 0x030f, 0x038f,
+ 0x03bc, 0x0454, 0x0577, 0x0584, 0x0455, 0x0219,
+ 0xff8a, 0xfd8d, 0xfaa3, 0xf724, 0xf58e, 0xf527,
+ 0xf569, 0xf73d, 0xf914, 0xfa71, 0xfc86, 0xfe81,
+ 0xffa7, 0xffd0, 0xfea6, 0xfd47, 0xfbdd, 0xf96b,
+ 0xf725, 0xf5ff, 0xf562, 0xf5a4, 0xf6e0, 0xf88d,
+ 0xfaf9, 0xfe0e, 0x0112, 0x039d, 0x0508, 0x0516,
+ 0x0497, 0x03eb, 0x02f1, 0x020d, 0x01a6, 0x01e2,
+ 0x02f4, 0x0443, 0x0514, 0x062e, 0x07f8, 0x0971,
+ 0x0a52, 0x0ab6, 0x0ac8, 0x0bcf, 0x0d76, 0x0dd0,
+ 0x0d76, 0x0d58, 0x0c78, 0x0af7, 0x096b, 0x0796,
+ 0x064c, 0x064e, 0x0739, 0x08c8, 0x0aa3, 0x0cef,
+ 0x0fd8, 0x11e7, 0x1259, 0x1207, 0x1120, 0x0fd3,
+ 0x0e81, 0x0cdf, 0x0b48, 0x0a8b, 0x0ae8, 0x0bfc,
+ 0x0cab, 0x0cf4, 0x0de6, 0x0ee9, 0x0f5b, 0x0f8b,
+ 0x0f16, 0x0e85, 0x0eb8, 0x0e9d, 0x0dfa, 0x0dc8,
+ 0x0db6, 0x0dc1, 0x0e47, 0x0e70, 0x0e0f, 0x0e31,
+ 0x0ecf, 0x0eaf, 0x0d97, 0x0c6f, 0x0b40, 0x09b6,
+ 0x0839, 0x06ad, 0x0518, 0x0448, 0x042d, 0x0462,
+ 0x0497, 0x043e, 0x0447, 0x0548, 0x05b8, 0x059e,
+ 0x060e, 0x0679, 0x06fe, 0x07cf, 0x07d0, 0x0721,
+ 0x068c, 0x05eb, 0x0518, 0x03ed, 0x02c0, 0x0282,
+ 0x0315, 0x03f7, 0x0524, 0x0672, 0x07b6, 0x0854,
+ 0x07b0, 0x0650, 0x048b, 0x0274, 0x008a, 0xfe7f,
+ 0xfc80, 0xfc03, 0xfcce, 0xfdca, 0xfef8, 0xffec,
+ 0x006d, 0x0113, 0x0138, 0x002e, 0xfe88, 0xfc62,
+ 0xf9f3, 0xf7f8, 0xf645, 0xf4f7, 0xf4e1, 0xf5d0,
+ 0xf74a, 0xf900, 0xfa5a, 0xfb7f, 0xfc77, 0xfc7d,
+ 0xfbc1, 0xfa73, 0xf85a, 0xf6b0, 0xf602, 0xf555,
+ 0xf548, 0xf6a2, 0xf860, 0xf9f3, 0xfb3a, 0xfbbb,
+ 0xfbe5, 0xfc27, 0xfc16, 0xfbd5, 0xfc11, 0xfcb8,
+ 0xfd9c, 0xff31, 0x00e6, 0x0147, 0x00de, 0x0097,
+ 0xff40, 0xfcbb, 0xfa76, 0xf870, 0xf6d8, 0xf672,
+ 0xf6c0, 0xf7b9, 0xf98e, 0xfb2d, 0xfc80, 0xfe1a,
+ 0xff32, 0xff6f, 0xff6b, 0xff1b, 0xfe85, 0xfe57,
+ 0xfec1, 0xff5b, 0xffdd, 0x0029, 0x005e, 0x00bf,
+ 0x014b, 0x018e, 0x00e9, 0xff6e, 0xfe09, 0xfcca,
+ 0xfb15, 0xf9c9, 0xf987, 0xf9b1, 0xfab3, 0xfc8a,
+ 0xfe01, 0xff79, 0x010e, 0x018c, 0x013f, 0x0027,
+ 0xfd83, 0xfab4, 0xf8c9, 0xf72d, 0xf664, 0xf6d5,
+ 0xf7e9, 0xf984, 0xfb3d, 0xfc5b, 0xfd00, 0xfd3d,
+ 0xfcb1, 0xfba7, 0xfaef, 0xfaa1, 0xfaaa, 0xfb95,
+ 0xfccd, 0xfd2f, 0xfd5c, 0xfda6, 0xfd0e, 0xfbc2,
+ 0xfa6f, 0xf914, 0xf7e9, 0xf74c, 0xf7ab, 0xf8d0,
+ 0xf9d5, 0xfaf7, 0xfc4a, 0xfcad, 0xfc56, 0xfbf0,
+ 0xfaf8, 0xf996, 0xf896, 0xf82e, 0xf82b, 0xf843,
+ 0xf875, 0xf8b6, 0xf921, 0xfa32, 0xfb4b, 0xfbc5,
+ 0xfc20, 0xfc1d, 0xfbde, 0xfc2a, 0xfc26, 0xfbc3,
+ 0xfbf5, 0xfbed, 0xfbbd, 0xfc35, 0xfc7a, 0xfcce,
+ 0xfde6, 0xfeaa, 0xfeef, 0xff03, 0xfe53, 0xfd5b,
+ 0xfcf0, 0xfd03, 0xfd5b, 0xfdb4, 0xfe34, 0xff13,
+ 0xffe0, 0x0030, 0x0007, 0xffd7, 0xff94, 0xfeab,
+ 0xfe31, 0xff30, 0x0061, 0x018e, 0x0360, 0x04d0,
+ 0x0560, 0x0558, 0x047e, 0x02fc, 0x00c8, 0xfe0d,
+ 0xfbda, 0xfa66, 0xf99b, 0xf9b4, 0xfa5d, 0xfb9a,
+ 0xfd0f, 0xfdc4, 0xfe2e, 0xfe67, 0xfdc4, 0xfcfc,
+ 0xfc4f, 0xfb85, 0xfb68, 0xfba8, 0xfbc6, 0xfc4f,
+ 0xfcdf, 0xfd4c, 0xfdfb, 0xfe13, 0xfd69, 0xfcb1,
+ 0xfbc0, 0xfad8, 0xfa5d, 0xfa0f, 0xfa3c, 0xfaf6,
+ 0xfbdb, 0xfd13, 0xfe47, 0xff0e, 0xffe0, 0x0078,
+ 0x002d, 0xff72, 0xfe9a, 0xfd7a, 0xfcab, 0xfc9d,
+ 0xfcb2, 0xfca9, 0xfcfd, 0xfd92, 0xfdbd, 0xfd3f,
+ 0xfc58, 0xfb31, 0xf9b7, 0xf86b, 0xf816, 0xf86d,
+ 0xf915, 0xfa7c, 0xfc26, 0xfd38, 0xfdbd, 0xfd8c,
+ 0xfc8c, 0xfb12, 0xf8f7, 0xf6be, 0xf56d, 0xf506,
+ 0xf5b6, 0xf7c6, 0xfa88, 0xfdc3, 0x0160, 0x0487,
+ 0x0701, 0x08d2, 0x0996, 0x099e, 0x0920, 0x07df,
+ 0x0663, 0x053c, 0x0460, 0x03cb, 0x0367, 0x0346,
+ 0x037f, 0x03ca, 0x041f, 0x044e, 0x03b6, 0x02b9,
+ 0x01f8, 0x00ff, 0xffa8, 0xfe36, 0xfc9c, 0xfb49,
+ 0xfa6c, 0xf978, 0xf89d, 0xf7ed, 0xf6d4, 0xf5aa,
+ 0xf4a2, 0xf340, 0xf241, 0xf24b, 0xf28a, 0xf2b8,
+ 0xf34d, 0xf420, 0xf4e0, 0xf537, 0xf4eb, 0xf46a,
+ 0xf404, 0xf3c1, 0xf3f1, 0xf4b4, 0xf5fe, 0xf7f1,
+ 0xfa52, 0xfc77, 0xfdf4, 0xfe98, 0xfe45, 0xfd05,
+ 0xfaf3, 0xf857, 0xf5fd, 0xf4af, 0xf46c, 0xf50a,
+ 0xf69a, 0xf88d, 0xfa32, 0xfb70, 0xfbce, 0xfacc,
+ 0xf8ed, 0xf6c9, 0xf47e, 0xf256, 0xf0a3, 0xef85,
+ 0xef22, 0xef97, 0xf08b, 0xf197, 0xf30d, 0xf531,
+ 0xf782, 0xf99f, 0xfb2e, 0xfbd5, 0xfc84, 0xfdbf,
+ 0xfe80, 0xfefc, 0x001f, 0x0179, 0x0313, 0x0569,
+ 0x07c1, 0x09ec, 0x0c4e, 0x0e5e, 0x0fda, 0x10e8,
+ 0x1155, 0x113b, 0x10a3, 0x0f94, 0x0e96, 0x0d74,
+ 0x0bd9, 0x0a82, 0x0965, 0x07d0, 0x0635, 0x04ed,
+ 0x03da, 0x038d, 0x040e, 0x04a6, 0x0585, 0x06c8,
+ 0x0759, 0x0697, 0x04cb, 0x01f2, 0xfdff, 0xf99f,
+ 0xf5b9, 0xf307, 0xf1e9, 0xf244, 0xf3eb, 0xf69f,
+ 0xf9cc, 0xfd0b, 0xffe0, 0x0152, 0x0148, 0x008c,
+ 0xff00, 0xfc50, 0xf97c, 0xf760, 0xf5c7, 0xf4d7,
+ 0xf534, 0xf695, 0xf83f, 0xfa54, 0xfd07, 0xffa2,
+ 0x0161, 0x023e, 0x0272, 0x01f3, 0x00e4, 0xffc8,
+ 0xfe8b, 0xfd31, 0xfcac, 0xfd37, 0xfe39, 0xffc9,
+ 0x01a4, 0x0346, 0x04e9, 0x0607, 0x0620, 0x05f8,
+ 0x0598, 0x0501, 0x0500, 0x0515, 0x04b3, 0x0499,
+ 0x04d8, 0x051d, 0x0564, 0x059b, 0x0675, 0x083f,
+ 0x0a31, 0x0c13, 0x0db9, 0x0ed1, 0x0f9a, 0x0fd0,
+ 0x0f41, 0x0e19, 0x0bd2, 0x0914, 0x0749, 0x0612,
+ 0x054f, 0x05d9, 0x077f, 0x09e4, 0x0cbe, 0x0f77,
+ 0x11f0, 0x1397, 0x1405, 0x13fe, 0x1345, 0x1153,
+ 0x0f38, 0x0d54, 0x0b3f, 0x0996, 0x08c5, 0x08ca,
+ 0x09aa, 0x0ae0, 0x0c71, 0x0ea5, 0x1062, 0x10fa,
+ 0x10f3, 0x0ffd, 0x0dee, 0x0bb3, 0x093a, 0x0659,
+ 0x044f, 0x0371, 0x0320, 0x03a9, 0x04f2, 0x0640,
+ 0x077b, 0x0868, 0x08c5, 0x08a8, 0x07e6, 0x06fc,
+ 0x0678, 0x05c5, 0x04e3, 0x043a, 0x038f, 0x0346,
+ 0x0366, 0x0334, 0x0370, 0x04db, 0x06e2, 0x0931,
+ 0x0b2d, 0x0c43, 0x0ce0, 0x0ccb, 0x0b87, 0x0979,
+ 0x06ad, 0x0366, 0x008e, 0xfe7a, 0xfd57, 0xfd2b,
+ 0xfdb2, 0xff6e, 0x0218, 0x042a, 0x0554, 0x05e0,
+ 0x054c, 0x039b, 0x0152, 0xfe99, 0xfbb7, 0xf939,
+ 0xf7b3, 0xf72a, 0xf720, 0xf7b9, 0xf93c, 0xfaff,
+ 0xfc6e, 0xfd82, 0xfddf, 0xfd55, 0xfc56, 0xfb00,
+ 0xf90b, 0xf6db, 0xf52c, 0xf3ff, 0xf34d, 0xf3b3,
+ 0xf530, 0xf722, 0xf976, 0xfbe4, 0xfdb9, 0xfef8,
+ 0xff92, 0xff1d, 0xfe37, 0xfd68, 0xfc5a, 0xfb60,
+ 0xfad4, 0xfa61, 0xfa30, 0xfa3e, 0xfa30, 0xfa6a,
+ 0xfadc, 0xfb2e, 0xfc35, 0xfdf9, 0xff5a, 0x003b,
+ 0x00b3, 0x0083, 0xffed, 0xfebd, 0xfcd4, 0xfae4,
+ 0xf90e, 0xf791, 0xf73b, 0xf7cd, 0xf919, 0xfbc7,
+ 0xff53, 0x0293, 0x0544, 0x070d, 0x076b, 0x069e,
+ 0x04f5, 0x024c, 0xfedc, 0xfba0, 0xf966, 0xf7fd,
+ 0xf717, 0xf71b, 0xf859, 0xfa87, 0xfd30, 0xffc8,
+ 0x01bc, 0x02d0, 0x0306, 0x0285, 0x015a, 0xff4d,
+ 0xfcc4, 0xfadb, 0xf9d5, 0xf960, 0xf9a0, 0xfa6d,
+ 0xfb85, 0xfcfd, 0xfe2d, 0xfe71, 0xfe2c, 0xfd8c,
+ 0xfc7a, 0xfb27, 0xf9b5, 0xf877, 0xf79c, 0xf707,
+ 0xf71b, 0xf7a5, 0xf7e6, 0xf869, 0xf953, 0xf9c1,
+ 0xfa38, 0xfb3d, 0xfbf1, 0xfc4a, 0xfc99, 0xfc42,
+ 0xfb14, 0xf96a, 0xf774, 0xf55b, 0xf354, 0xf1f6,
+ 0xf1bf, 0xf282, 0xf44d, 0xf716, 0xfa21, 0xfd04,
+ 0xff6b, 0x00b3, 0x00fa, 0x00ac, 0xffae, 0xfe12,
+ 0xfc25, 0xfa3a, 0xf8e5, 0xf868, 0xf86b, 0xf8cd,
+ 0xf9fd, 0xfc35, 0xfeec, 0x0155, 0x02dd, 0x032a,
+ 0x025b, 0x00ed, 0xff2c, 0xfd24, 0xfb14, 0xf9b6,
+ 0xf992, 0xfa2a, 0xfb19, 0xfcb1, 0xfec8, 0x0102,
+ 0x0350, 0x051e, 0x0600, 0x0642, 0x060b, 0x0581,
+ 0x04bd, 0x0394, 0x0288, 0x023d, 0x024f, 0x0239,
+ 0x01e8, 0x0184, 0x0169, 0x0189, 0x01bd, 0x023d,
+ 0x02d9, 0x0348, 0x038c, 0x0310, 0x0160, 0xff11,
+ 0xfc80, 0xf9e9, 0xf7fa, 0xf6e2, 0xf683, 0xf741,
+ 0xf914, 0xfb5d, 0xfde9, 0x006a, 0x0233, 0x0322,
+ 0x0344, 0x024c, 0x0073, 0xfe2e, 0xfb8a, 0xf921,
+ 0xf7bc, 0xf74e, 0xf79a, 0xf875, 0xf9c7, 0xfbb9,
+ 0xfde5, 0xffd8, 0x01ac, 0x0290, 0x01d9, 0x00ad,
+ 0xff6c, 0xfd4f, 0xfaf0, 0xf946, 0xf877, 0xf8a7,
+ 0xf97d, 0xfa90, 0xfc26, 0xfdeb, 0xff02, 0xff5a,
+ 0xff0b, 0xfdfa, 0xfc90, 0xfb50, 0xfa19, 0xf8cd,
+ 0xf7dc, 0xf792, 0xf7e8, 0xf8fb, 0xfa4e, 0xfb52,
+ 0xfcb5, 0xfef1, 0x013e, 0x031f, 0x04aa, 0x060f,
+ 0x077c, 0x0884, 0x08b4, 0x0839, 0x072c, 0x05d0,
+ 0x049f, 0x0394, 0x02f4, 0x034e, 0x048c, 0x06a2,
+ 0x0967, 0x0bf4, 0x0dc2, 0x0ed3, 0x0ee9, 0x0dd7,
+ 0x0b7d, 0x0824, 0x04c5, 0x01ca, 0xff29, 0xfd6c,
+ 0xfcc6, 0xfcba, 0xfd08, 0xfd9d, 0xfe50, 0xfef2,
+ 0xff17, 0xfe89, 0xfd77, 0xfbfa, 0xfa2e, 0xf84e,
+ 0xf68d, 0xf53c, 0xf48a, 0xf462, 0xf4e0, 0xf609,
+ 0xf775, 0xf90b, 0xfada, 0xfc44, 0xfccd, 0xfcdd,
+ 0xfca3, 0xfc10, 0xfb83, 0xfaf6, 0xfa1c, 0xf973,
+ 0xf979, 0xf9d3, 0xf9e6, 0xf98d, 0xf95e, 0xf9c3,
+ 0xfa47, 0xfa9f, 0xfacf, 0xfa7b, 0xf9b1, 0xf8dc,
+ 0xf7c4, 0xf60d, 0xf3ed, 0xf1e1, 0xf052, 0xef3b,
+ 0xee92, 0xee9f, 0xef8d, 0xf177, 0xf423, 0xf6bb,
+ 0xf8d1, 0xfa71, 0xfb78, 0xfbcb, 0xfb2a, 0xf9a0,
+ 0xf839, 0xf7a1, 0xf7c9, 0xf8d3, 0xfaa1, 0xfd29,
+ 0x00a5, 0x0452, 0x07ae, 0x0b27, 0x0e2d, 0x102e,
+ 0x11b3, 0x126e, 0x11d1, 0x1076, 0x0ebf, 0x0ce0,
+ 0x0b77, 0x0ace, 0x0afe, 0x0c16, 0x0da1, 0x0f3d,
+ 0x109e, 0x1124, 0x1093, 0x0f24, 0x0d14, 0x0ace,
+ 0x0896, 0x065c, 0x044b, 0x029a, 0x0150, 0x0092,
+ 0x001b, 0xff56, 0xfe8a, 0xfe48, 0xfe77, 0xfef6,
+ 0xffa0, 0x001b, 0x00ab, 0x016e, 0x01c4, 0x017f,
+ 0x0082, 0xfe84, 0xfc43, 0xfa4c, 0xf846, 0xf6e4,
+ 0xf6e5, 0xf7f0, 0xf9fd, 0xfc9b, 0xfea8, 0x0029,
+ 0x0154, 0x019c, 0x0110, 0xffd0, 0xfdd4, 0xfbfc,
+ 0xfacd, 0xf9d7, 0xf90b, 0xf8d3, 0xf99a, 0xfb5e,
+ 0xfd70, 0xff7c, 0x016b, 0x02ad, 0x034d, 0x03be,
+ 0x038a, 0x026a, 0x0131, 0x0063, 0xffd4, 0xff9d,
+ 0x0018, 0x0150, 0x02fb, 0x04da, 0x06b8, 0x0822,
+ 0x08ad, 0x0870, 0x07c7, 0x06dc, 0x05e7, 0x0545,
+ 0x052c, 0x05cc, 0x0739, 0x0904, 0x0acb, 0x0c77,
+ 0x0db8, 0x0e75, 0x0f11, 0x0fa0, 0x0ffa, 0x101e,
+ 0x100e, 0x0ffb, 0x0fed, 0x0f88, 0x0ec6, 0x0de7,
+ 0x0d02, 0x0c62, 0x0c33, 0x0c45, 0x0ccb, 0x0e05,
+ 0x0fae, 0x1165, 0x12c8, 0x1375, 0x1372, 0x1309,
+ 0x123d, 0x10b0, 0x0e6f, 0x0c64, 0x0b16, 0x0a16,
+ 0x0924, 0x087f, 0x087b, 0x0953, 0x0aab, 0x0bcf,
+ 0x0c95, 0x0d0b, 0x0cfd, 0x0c75, 0x0ba8, 0x0a6d,
+ 0x089a, 0x06c6, 0x0584, 0x04a1, 0x0419, 0x0454,
+ 0x0527, 0x065b, 0x07f0, 0x0924, 0x0979, 0x0985,
+ 0x0958, 0x088d, 0x0797, 0x06d0, 0x0604, 0x0571,
+ 0x054e, 0x0514, 0x0489, 0x040d, 0x03a6, 0x032a,
+ 0x0304, 0x036a, 0x03ed, 0x0473, 0x053c, 0x05ff,
+ 0x0630, 0x05a0, 0x0466, 0x0293, 0x0041, 0xfdc7,
+ 0xfb7e, 0xf9ae, 0xf8b8, 0xf8b8, 0xf97d, 0xfb0d,
+ 0xfd0b, 0xfe87, 0xff35, 0xff60, 0xff03, 0xfde8,
+ 0xfc19, 0xfa32, 0xf8e0, 0xf813, 0xf78a, 0xf74b,
+ 0xf754, 0xf7f7, 0xf94c, 0xfa89, 0xfb55, 0xfbcc,
+ 0xfb90, 0xfadb, 0xfa2c, 0xf8da, 0xf6de, 0xf579,
+ 0xf4e3, 0xf4cb, 0xf59e, 0xf721, 0xf8c5, 0xfac1,
+ 0xfcbf, 0xfdcf, 0xfdf3, 0xfd86, 0xfcb1, 0xfbd1,
+ 0xfaf4, 0xfa11, 0xf9b5, 0xfa14, 0xfac9, 0xfb89,
+ 0xfc19, 0xfc72, 0xfcaf, 0xfca0, 0xfc90, 0xfcd4,
+ 0xfcfa, 0xfd2e, 0xfe1b, 0xff47, 0x0029, 0x00cc,
+ 0x00d0, 0x001f, 0xff0a, 0xfd79, 0xfbbc, 0xfa59,
+ 0xf94e, 0xf8f4, 0xf9ad, 0xfb08, 0xfcb0, 0xfe75,
+ 0xffc3, 0x0052, 0x0024, 0xff11, 0xfd4c, 0xfb40,
+ 0xf93b, 0xf7ad, 0xf6ce, 0xf688, 0xf6e1, 0xf7d2,
+ 0xf945, 0xfb1b, 0xfcce, 0xfde5, 0xfea1, 0xff35,
+ 0xff3b, 0xfe7b, 0xfd06, 0xfaf1, 0xf8c3, 0xf725,
+ 0xf60b, 0xf53e, 0xf4fe, 0xf562, 0xf620, 0xf6e4,
+ 0xf743, 0xf70f, 0xf6b6, 0xf684, 0xf63a, 0xf5c9,
+ 0xf57d, 0xf58f, 0xf610, 0xf6bc, 0xf719, 0xf71d,
+ 0xf721, 0xf73d, 0xf753, 0xf779, 0xf7ed, 0xf8d8,
+ 0xfa3c, 0xfc0f, 0xfdfb, 0xff54, 0xffb6, 0xff2f,
+ 0xfdeb, 0xfc46, 0xfa95, 0xf908, 0xf841, 0xf8be,
+ 0xf9f0, 0xfb71, 0xfd74, 0xff70, 0x00c3, 0x0196,
+ 0x01d7, 0x0158, 0x0075, 0xff3d, 0xfdaa, 0xfc56,
+ 0xfb79, 0xfafe, 0xfb47, 0xfc62, 0xfdec, 0xffc4,
+ 0x0191, 0x02e1, 0x03b7, 0x0421, 0x0426, 0x03c8,
+ 0x02ca, 0x0155, 0x0034, 0xffc9, 0xffea, 0x0088,
+ 0x0195, 0x02f2, 0x0483, 0x05e6, 0x0698, 0x067e,
+ 0x05e3, 0x0503, 0x03cd, 0x024d, 0x00cd, 0xff56,
+ 0xfde5, 0xfcb1, 0xfb89, 0xfa1e, 0xf8df, 0xf82c,
+ 0xf7d3, 0xf7d8, 0xf84c, 0xf8ee, 0xf9e2, 0xfb52,
+ 0xfca5, 0xfd5a, 0xfd7f, 0xfce7, 0xfb87, 0xf9f2,
+ 0xf870, 0xf6ce, 0xf564, 0xf4f6, 0xf59f, 0xf6ea,
+ 0xf881, 0xfa35, 0xfbdf, 0xfd48, 0xfdf3, 0xfd97,
+ 0xfc8f, 0xfb31, 0xf984, 0xf7bb, 0xf620, 0xf4ff,
+ 0xf4a7, 0xf512, 0xf5f2, 0xf71e, 0xf886, 0xfa25,
+ 0xfbd0, 0xfd1d, 0xfde7, 0xfe2e, 0xfd94, 0xfc03,
+ 0xfa10, 0xf842, 0xf6fd, 0xf6a2, 0xf722, 0xf84e,
+ 0xfa13, 0xfc15, 0xfde0, 0xff32, 0xffc6, 0xffd2,
+ 0xffef, 0x001a, 0x0005, 0xffdf, 0xfffc, 0x006b,
+ 0x00f6, 0x0170, 0x0210, 0x0316, 0x046c, 0x05f6,
+ 0x076e, 0x088b, 0x099b, 0x0acb, 0x0b9e, 0x0bcd,
+ 0x0b3c, 0x09c6, 0x07c3, 0x056d, 0x0298, 0xffa6,
+ 0xfd45, 0xfbb3, 0xfb27, 0xfba1, 0xfc98, 0xfda3,
+ 0xfe91, 0xff10, 0xfee0, 0xfde2, 0xfc1e, 0xf9e2,
+ 0xf784, 0xf53f, 0xf359, 0xf1fc, 0xf161, 0xf1d2,
+ 0xf318, 0xf4a7, 0xf64a, 0xf7ed, 0xf957, 0xfa65,
+ 0xfaf4, 0xfad5, 0xfa07, 0xf8c0, 0xf758, 0xf615,
+ 0xf519, 0xf497, 0xf4c2, 0xf5a1, 0xf707, 0xf898,
+ 0xfa0e, 0xfb5d, 0xfc40, 0xfc56, 0xfbb2, 0xfaa6,
+ 0xf964, 0xf7f2, 0xf635, 0xf452, 0xf2a6, 0xf129,
+ 0xefbb, 0xeea2, 0xee13, 0xee38, 0xef3d, 0xf0e3,
+ 0xf2e5, 0xf55f, 0xf828, 0xfa8d, 0xfbf7, 0xfc5f,
+ 0xfc05, 0xfb14, 0xf9bb, 0xf865, 0xf765, 0xf71b,
+ 0xf827, 0xfa8f, 0xfdab, 0x0120, 0x04ac, 0x07d6,
+ 0x0a79, 0x0c47, 0x0cc3, 0x0c58, 0x0b9e, 0x0a6d,
+ 0x0911, 0x083d, 0x07f5, 0x0862, 0x09ce, 0x0bbc,
+ 0x0dc3, 0x0feb, 0x11e7, 0x135f, 0x13fd, 0x1356,
+ 0x118f, 0x0f0d, 0x0c08, 0x08fd, 0x0655, 0x0438,
+ 0x02fe, 0x02bd, 0x0327, 0x03f5, 0x04b4, 0x052c,
+ 0x0580, 0x0551, 0x043a, 0x0296, 0x00d6, 0xff2c,
+ 0xfdad, 0xfc49, 0xfb30, 0xfaaf, 0xfa89, 0xfa7a,
+ 0xfab1, 0xfb3f, 0xfbfa, 0xfcf8, 0xfe54, 0xffe7,
+ 0x0172, 0x02aa, 0x0324, 0x02a7, 0x013c, 0xff13,
+ 0xfc95, 0xfa31, 0xf819, 0xf6ae, 0xf682, 0xf7b9,
+ 0xf9ee, 0xfc87, 0xff20, 0x0185, 0x0357, 0x0446,
+ 0x0447, 0x034b, 0x0176, 0xff5a, 0xfd64, 0xfbc5,
+ 0xfab8, 0xfa7c, 0xfb3e, 0xfcd5, 0xfec7, 0x00f2,
+ 0x035b, 0x059d, 0x0738, 0x07d5, 0x075d, 0x0626,
+ 0x049b, 0x0307, 0x01d1, 0x0161, 0x01f9, 0x03aa,
+ 0x0635, 0x091b, 0x0be7, 0x0e4d, 0x1035, 0x118b,
+ 0x1213, 0x11d3, 0x1136, 0x109a, 0x1021, 0x0fc1,
+ 0x0f40, 0x0e8a, 0x0e02, 0x0de7, 0x0def, 0x0e25,
+ 0x0ee0, 0x100d, 0x1190, 0x1376, 0x155a, 0x1694,
+ 0x16be, 0x15e2, 0x145a, 0x124e, 0x0fd0, 0x0d67,
+ 0x0b8e, 0x0a4a, 0x09b4, 0x09fb, 0x0b12, 0x0ca5,
+ 0x0e1a, 0x0f16, 0x0fb0, 0x0fc4, 0x0f09, 0x0d87,
+ 0x0b65, 0x0906, 0x070d, 0x05b5, 0x04f0, 0x04dc,
+ 0x0585, 0x06d4, 0x087c, 0x0a07, 0x0b72, 0x0cd8,
+ 0x0dad, 0x0d73, 0x0c3e, 0x0a2d, 0x079c, 0x053e,
+ 0x0363, 0x0231, 0x01fe, 0x02e4, 0x04aa, 0x06b8,
+ 0x085d, 0x0996, 0x0a92, 0x0af1, 0x0a84, 0x097c,
+ 0x07fd, 0x0657, 0x04c2, 0x0322, 0x0192, 0x003d,
+ 0xff3d, 0xfee9, 0xff43, 0xffea, 0x00cc, 0x01f7,
+ 0x0359, 0x04e2, 0x064b, 0x0730, 0x074d, 0x0667,
+ 0x0496, 0x0251, 0xffd9, 0xfd58, 0xfb3b, 0xf9f6,
+ 0xf9c3, 0xfaa7, 0xfc65, 0xfe80, 0x007d, 0x020c,
+ 0x02e8, 0x02f0, 0x0229, 0x0079, 0xfdf6, 0xfb2c,
+ 0xf89e, 0xf695, 0xf577, 0xf565, 0xf619, 0xf766,
+ 0xf93d, 0xfb54, 0xfd47, 0xfed2, 0xffad, 0xff96,
+ 0xfea9, 0xfd29, 0xfb45, 0xf956, 0xf7c2, 0xf6de,
+ 0xf6ec, 0xf7ce, 0xf933, 0xfaf4, 0xfcae, 0xfe07,
+ 0xff07, 0xff8b, 0xff7b, 0xff1e, 0xfe84, 0xfdc3,
+ 0xfd20, 0xfc7a, 0xfbc0, 0xfb19, 0xfa7c, 0xfa1b,
+ 0xfa11, 0xfa2b, 0xfaa9, 0xfbb1, 0xfd00, 0xfeba,
+ 0x00ad, 0x01ff, 0x026c, 0x020b, 0x00b5, 0xfeab,
+ 0xfc4b, 0xf9ca, 0xf7b4, 0xf68b, 0xf65e, 0xf729,
+ 0xf8db, 0xfb1c, 0xfd5e, 0xff43, 0x00b4, 0x0183,
+ 0x017c, 0x009b, 0xfeed, 0xfcac, 0xfa44, 0xf81e,
+ 0xf6ab, 0xf61a, 0xf622, 0xf690, 0xf77b, 0xf8d2,
+ 0xfa43, 0xfb71, 0xfc13, 0xfbfc, 0xfb42, 0xfa23,
+ 0xf8ae, 0xf701, 0xf5a5, 0xf4f1, 0xf4ef, 0xf5c6,
+ 0xf750, 0xf91f, 0xfb23, 0xfd29, 0xfec1, 0xffd4,
+ 0x006e, 0x0084, 0x0012, 0xff40, 0xfe4f, 0xfd51,
+ 0xfc30, 0xfb3e, 0xfad9, 0xfae6, 0xfb4e, 0xfc15,
+ 0xfd2a, 0xfe96, 0x003d, 0x01dc, 0x033c, 0x0406,
+ 0x03f1, 0x032e, 0x01df, 0xffec, 0xfd95, 0xfb6d,
+ 0xf9d5, 0xf90b, 0xf929, 0xfa17, 0xfbbc, 0xfdf1,
+ 0x0042, 0x0231, 0x037f, 0x042c, 0x0443, 0x03a4,
+ 0x0242, 0x0089, 0xfef3, 0xfdb2, 0xfd26, 0xfd8b,
+ 0xfead, 0x005a, 0x0271, 0x049f, 0x06b0, 0x0876,
+ 0x0986, 0x0979, 0x0836, 0x060b, 0x036d, 0x0097,
+ 0xfdcc, 0xfb90, 0xfa33, 0xf9bb, 0xfa39, 0xfb8c,
+ 0xfd22, 0xfe7c, 0xff93, 0x005c, 0x006d, 0xff8a,
+ 0xfe11, 0xfc5f, 0xfa7b, 0xf88f, 0xf6ea, 0xf5b5,
+ 0xf521, 0xf553, 0xf600, 0xf6ed, 0xf847, 0xfa17,
+ 0xfc2f, 0xfe4b, 0xffee, 0x00ec, 0x015f, 0x00ea,
+ 0xff68, 0xfd4a, 0xfabf, 0xf7e4, 0xf552, 0xf378,
+ 0xf27f, 0xf294, 0xf3b2, 0xf5a5, 0xf808, 0xfa69,
+ 0xfc95, 0xfe55, 0xff51, 0xff63, 0xfe92, 0xfd12,
+ 0xfb54, 0xf9ce, 0xf8db, 0xf895, 0xf8e1, 0xf9ac,
+ 0xfae0, 0xfc67, 0xfe2d, 0xffd9, 0x0102, 0x016c,
+ 0x0104, 0x000a, 0xfeb8, 0xfd26, 0xfbc7, 0xfaec,
+ 0xfa9b, 0xfb2c, 0xfc94, 0xfe50, 0x0044, 0x023d,
+ 0x03d7, 0x0522, 0x05e3, 0x05c7, 0x0548, 0x04c3,
+ 0x0420, 0x037a, 0x02dd, 0x025c, 0x0239, 0x027c,
+ 0x02fa, 0x036e, 0x0399, 0x03bd, 0x043a, 0x04d9,
+ 0x052a, 0x04f7, 0x042c, 0x02c5, 0x00ca, 0xfe5c,
+ 0xfba1, 0xf8da, 0xf678, 0xf4d2, 0xf412, 0xf45a,
+ 0xf586, 0xf744, 0xf943, 0xfb1c, 0xfc76, 0xfd2b,
+ 0xfd26, 0xfc70, 0xfb10, 0xf922, 0xf727, 0xf5ac,
+ 0xf4f8, 0xf50d, 0xf5af, 0xf6c0, 0xf848, 0xfa33,
+ 0xfc5c, 0xfe4f, 0xff83, 0xfff3, 0xff9e, 0xfe72,
+ 0xfcbd, 0xfaa3, 0xf832, 0xf601, 0xf487, 0xf3cf,
+ 0xf3e5, 0xf490, 0xf58c, 0xf6cb, 0xf812, 0xf933,
+ 0xf9f1, 0xf9e2, 0xf93c, 0xf881, 0xf7a7, 0xf6aa,
+ 0xf5a7, 0xf4c8, 0xf48a, 0xf506, 0xf5d4, 0xf6ef,
+ 0xf864, 0xfa3b, 0xfcd6, 0x0008, 0x02fa, 0x0551,
+ 0x0700, 0x07d8, 0x07f5, 0x0770, 0x0621, 0x0438,
+ 0x026b, 0x015b, 0x0123, 0x0191, 0x02bf, 0x04cf,
+ 0x0761, 0x09fe, 0x0c69, 0x0e62, 0x0fae, 0x1022,
+ 0x0fae, 0x0e7f, 0x0cc7, 0x0ad0, 0x0947, 0x0864,
+ 0x07a3, 0x06f7, 0x06c7, 0x0724, 0x07ff, 0x08f4,
+ 0x0958, 0x090f, 0x0832, 0x06a8, 0x049f, 0x025f,
+ 0x000c, 0xfe0f, 0xfcbd, 0xfc2a, 0xfc52, 0xfce3,
+ 0xfd9a, 0xfe6b, 0xff1b, 0xff7c, 0xff8b, 0xff15,
+ 0xfe46, 0xfda5, 0xfd40, 0xfced, 0xfca9, 0xfc69,
+ 0xfc5a, 0xfcbc, 0xfd40, 0xfd7b, 0xfd72, 0xfd7f,
+ 0xfe05, 0xff0b, 0x001a, 0x00cb, 0x00fc, 0x00ad,
+ 0xfffd, 0xfedc, 0xfd27, 0xfb40, 0xf9a5, 0xf87b,
+ 0xf7fd, 0xf84a, 0xf931, 0xfac7, 0xfd07, 0xff5f,
+ 0x015f, 0x02c9, 0x037d, 0x03ac, 0x0309, 0x013d,
+ 0xff16, 0xfd4b, 0xfbd4, 0xfaf5, 0xfadf, 0xfb84,
+ 0xfd28, 0xffc1, 0x02e8, 0x063c, 0x090f, 0x0afc,
+ 0x0c18, 0x0c4a, 0x0bc9, 0x0b05, 0x09fa, 0x0909,
+ 0x08df, 0x0968, 0x0a5b, 0x0ba3, 0x0cfd, 0x0e5e,
+ 0x0fc4, 0x10c6, 0x112e, 0x1114, 0x107f, 0x0fac,
+ 0x0eed, 0x0e0d, 0x0cc6, 0x0b89, 0x0adf, 0x0a9c,
+ 0x0a7f, 0x0a81, 0x0aa2, 0x0b32, 0x0c85, 0x0e50,
+ 0x1003, 0x1123, 0x1162, 0x10e2, 0x0fd4, 0x0e11,
+ 0x0b94, 0x08a0, 0x05ae, 0x0352, 0x01ea, 0x01b5,
+ 0x02b6, 0x04a0, 0x075b, 0x0ab2, 0x0ddf, 0x101f,
+ 0x10f4, 0x1016, 0x0dc5, 0x0a64, 0x0684, 0x0321,
+ 0x00cf, 0xff95, 0xffb1, 0x0158, 0x044a, 0x0824,
+ 0x0c55, 0x0fe3, 0x11d4, 0x11e4, 0x105f, 0x0d40,
+ 0x08a2, 0x037e, 0xfee3, 0xfb91, 0xfa4a, 0xfb3d,
+ 0xfdf0, 0x01e3, 0x0689, 0x0b20, 0x0ed8, 0x10cb,
+ 0x1074, 0x0def, 0x09a0, 0x044a, 0xff17, 0xfae5,
+ 0xf83a, 0xf7ad, 0xf975, 0xfd27, 0x0223, 0x075f,
+ 0x0b72, 0x0dcc, 0x0eae, 0x0de0, 0x0aff, 0x0661,
+ 0x00e1, 0xfb93, 0xf777, 0xf502, 0xf449, 0xf56b,
+ 0xf86d, 0xfce2, 0x01a9, 0x0561, 0x0733, 0x06ed,
+ 0x04a2, 0x00aa, 0xfbc0, 0xf6b7, 0xf231, 0xeee5,
+ 0xedbf, 0xef08, 0xf256, 0xf733, 0xfcae, 0x015e,
+ 0x049d, 0x0636, 0x05b3, 0x0307, 0xfeb7, 0xf970,
+ 0xf47a, 0xf101, 0xef32, 0xef2f, 0xf168, 0xf59f,
+ 0xfafa, 0x0073, 0x04d3, 0x0755, 0x07e1, 0x063d,
+ 0x024a, 0xfcc9, 0xf6ef, 0xf1d5, 0xee57, 0xed06,
+ 0xee20, 0xf17b, 0xf692, 0xfc66, 0x01b3, 0x05a6,
+ 0x07d9, 0x07ed, 0x0605, 0x0292, 0xfdde, 0xf8dc,
+ 0xf4de, 0xf250, 0xf173, 0xf2b7, 0xf5c5, 0xfa0c,
+ 0xff06, 0x0374, 0x0635, 0x06f5, 0x057c, 0x01e2,
+ 0xfcea, 0xf76f, 0xf244, 0xee4e, 0xec39, 0xec5a,
+ 0xeebf, 0xf30d, 0xf82c, 0xfcab, 0xffd5, 0x01a5,
+ 0x01e5, 0x0044, 0xfcd6, 0xf83d, 0xf3c4, 0xf09b,
+ 0xef15, 0xef4d, 0xf176, 0xf53a, 0xf9f4, 0xfef6,
+ 0x032f, 0x05df, 0x0724, 0x06e9, 0x04c0, 0x00ee,
+ 0xfc24, 0xf749, 0xf3ac, 0xf204, 0xf229, 0xf408,
+ 0xf76b, 0xfb9e, 0xffd4, 0x033f, 0x055f, 0x0635,
+ 0x05ac, 0x03c0, 0x00e1, 0xfd9b, 0xfa85, 0xf831,
+ 0xf6df, 0xf6cd, 0xf80d, 0xfa22, 0xfca9, 0xff72,
+ 0x021a, 0x042e, 0x0534, 0x04ec, 0x03c1, 0x0234,
+ 0x009d, 0xff58, 0xfe48, 0xfd36, 0xfcb2, 0xfd68,
+ 0xff29, 0x0134, 0x02e5, 0x0418, 0x050b, 0x05dd,
+ 0x063e, 0x05c1, 0x049e, 0x0390, 0x02c3, 0x01ca,
+ 0x00ad, 0xffbe, 0xff00, 0xfe65, 0xfe19, 0xfe58,
+ 0xff01, 0xff93, 0xffca, 0xffbf, 0xff60, 0xfebe,
+ 0xfe2a, 0xfd97, 0xfcd0, 0xfc27, 0xfbef, 0xfbfb,
+ 0xfc1f, 0xfc3e, 0xfc32, 0xfc21, 0xfc43, 0xfc4d,
+ 0xfbe6, 0xfb26, 0xfa51, 0xf9a5, 0xf943, 0xf928,
+ 0xf94a, 0xf997, 0xf9e3, 0xfa30, 0xfab8, 0xfba0,
+ 0xfc96, 0xfcea, 0xfc3c, 0xfae3, 0xf951, 0xf79b,
+ 0xf59a, 0xf378, 0xf1e6, 0xf161, 0xf1cb, 0xf30f,
+ 0xf50a, 0xf730, 0xf919, 0xfaa3, 0xfb7f, 0xfb91,
+ 0xfaf0, 0xf98c, 0xf7a6, 0xf5df, 0xf4a3, 0xf458,
+ 0xf54d, 0xf72d, 0xf972, 0xfbfa, 0xfe8e, 0x00af,
+ 0x0217, 0x02ab, 0x024f, 0x010b, 0xff27, 0xfd07,
+ 0xfb05, 0xf976, 0xf8d0, 0xf95e, 0xfb02, 0xfd83,
+ 0x00c1, 0x046b, 0x07cb, 0x0a32, 0x0b72, 0x0b8c,
+ 0x0a5a, 0x0811, 0x0544, 0x0226, 0xfee2, 0xfc2c,
+ 0xfaad, 0xfac8, 0xfc9f, 0xffaf, 0x032b, 0x0679,
+ 0x08d4, 0x0990, 0x089d, 0x061f, 0x0259, 0xfdef,
+ 0xf974, 0xf561, 0xf24b, 0xf09d, 0xf0c5, 0xf349,
+ 0xf7ce, 0xfcf3, 0x014b, 0x0405, 0x04f0, 0x0446,
+ 0x0215, 0xfe51, 0xf979, 0xf4b2, 0xf121, 0xef63,
+ 0xef9f, 0xf1b2, 0xf51e, 0xf939, 0xfd6a, 0x0107,
+ 0x0376, 0x0444, 0x0322, 0x0038, 0xfc35, 0xf7a7,
+ 0xf334, 0xefde, 0xee03, 0xed5c, 0xedde, 0xef5f,
+ 0xf17e, 0xf420, 0xf712, 0xf9fc, 0xfc98, 0xfe39,
+ 0xfe43, 0xfd11, 0xfb42, 0xf90e, 0xf6b2, 0xf485,
+ 0xf2f2, 0xf273, 0xf304, 0xf44e, 0xf64b, 0xf93e,
+ 0xfd19, 0x0158, 0x056a, 0x08e3, 0x0b42, 0x0bf7,
+ 0x0ad5, 0x0816, 0x0474, 0x00fd, 0xfe42, 0xfc5d,
+ 0xfbb6, 0xfcd1, 0xfff1, 0x04eb, 0x0aa4, 0x0f9d,
+ 0x1307, 0x147b, 0x13c5, 0x1162, 0x0de7, 0x09aa,
+ 0x0578, 0x0261, 0x0116, 0x0200, 0x04df, 0x08a2,
+ 0x0c4a, 0x0f52, 0x116b, 0x1257, 0x11ba, 0x0f59,
+ 0x0b92, 0x071d, 0x028c, 0xfe49, 0xfacc, 0xf899,
+ 0xf800, 0xf916, 0xfbb1, 0xff15, 0x022d, 0x0469,
+ 0x05a0, 0x05b0, 0x04b1, 0x02e6, 0x0071, 0xfdae,
+ 0xfb1b, 0xf914, 0xf805, 0xf833, 0xf95c, 0xfb33,
+ 0xfd8b, 0x0003, 0x024c, 0x0451, 0x0606, 0x074f,
+ 0x07d0, 0x06f9, 0x04ae, 0x015a, 0xfda8, 0xfa4c,
+ 0xf7af, 0xf5d2, 0xf4b4, 0xf494, 0xf5f3, 0xf90e,
+ 0xfd39, 0x0140, 0x042c, 0x057c, 0x055c, 0x044c,
+ 0x025b, 0xff80, 0xfc2b, 0xf8fa, 0xf683, 0xf545,
+ 0xf570, 0xf6ff, 0xf9dd, 0xfdb0, 0x01d7, 0x0583,
+ 0x07ef, 0x08d6, 0x086a, 0x06ef, 0x04a2, 0x01f5,
+ 0xffa4, 0xfe3e, 0xfdd8, 0xfe8c, 0x0079, 0x033f,
+ 0x0636, 0x090a, 0x0b7f, 0x0d56, 0x0e96, 0x0f5c,
+ 0x0fc9, 0x0fff, 0x0fdf, 0x0f3f, 0x0e6d, 0x0db9,
+ 0x0d21, 0x0c99, 0x0bfb, 0x0b3f, 0x0afd, 0x0bb6,
+ 0x0d0a, 0x0e8a, 0x1059, 0x1284, 0x149b, 0x15df,
+ 0x15a2, 0x13db, 0x1140, 0x0ea6, 0x0c3a, 0x09a6,
+ 0x06fa, 0x0504, 0x04c3, 0x06c5, 0x0a80, 0x0e7b,
+ 0x11a6, 0x13f3, 0x1593, 0x1651, 0x1578, 0x1275,
+ 0x0dea, 0x094e, 0x05c3, 0x03ae, 0x02c4, 0x029c,
+ 0x037a, 0x05b6, 0x08c8, 0x0bbd, 0x0dc5, 0x0e68,
+ 0x0ddd, 0x0ca6, 0x0ae5, 0x0872, 0x0575, 0x029f,
+ 0x00c9, 0x0046, 0x00c9, 0x01fe, 0x03e8, 0x0675,
+ 0x0921, 0x0b49, 0x0c92, 0x0d0c, 0x0d0a, 0x0cb0,
+ 0x0bcf, 0x0a72, 0x08ec, 0x076b, 0x061d, 0x051d,
+ 0x0436, 0x037b, 0x037b, 0x0478, 0x061e, 0x080d,
+ 0x0a11, 0x0bf9, 0x0d83, 0x0e29, 0x0d1b, 0x0a4b,
+ 0x06ca, 0x0372, 0x0026, 0xfcd1, 0xf9eb, 0xf82a,
+ 0xf867, 0xfb1a, 0xff90, 0x041b, 0x077e, 0x09bc,
+ 0x0b3d, 0x0bb1, 0x0a2f, 0x062f, 0x0057, 0xfa3f,
+ 0xf526, 0xf173, 0xef40, 0xeed3, 0xf0b0, 0xf513,
+ 0xfb0b, 0x00ce, 0x04d5, 0x0674, 0x05fb, 0x03f3,
+ 0x0060, 0xfb60, 0xf5cf, 0xf0dd, 0xed7d, 0xec18,
+ 0xec7c, 0xee53, 0xf156, 0xf53d, 0xf994, 0xfd78,
+ 0x0018, 0x015e, 0x0195, 0x010b, 0xfffe, 0xfe67,
+ 0xfc52, 0xfa56, 0xf908, 0xf85d, 0xf7fe, 0xf7d9,
+ 0xf838, 0xf973, 0xfb9f, 0xfe88, 0x01c9, 0x04d4,
+ 0x06de, 0x072f, 0x05b9, 0x0332, 0x009c, 0xfe7f,
+ 0xfc77, 0xf9f7, 0xf741, 0xf526, 0xf46d, 0xf566,
+ 0xf765, 0xf96b, 0xfb21, 0xfc8b, 0xfd99, 0xfe02,
+ 0xfd15, 0xfa78, 0xf705, 0xf3f9, 0xf1d7, 0xf092,
+ 0xf02b, 0xf0c5, 0xf2a1, 0xf608, 0xfa82, 0xfe68,
+ 0x0059, 0x0089, 0xffa9, 0xfde3, 0xfb36, 0xf7f3,
+ 0xf4df, 0xf2c8, 0xf20e, 0xf2ad, 0xf454, 0xf662,
+ 0xf871, 0xfa91, 0xfcab, 0xfe36, 0xfeb5, 0xfe26,
+ 0xfcdb, 0xfb41, 0xf9ad, 0xf82a, 0xf6d3, 0xf5fa,
+ 0xf5a5, 0xf5c5, 0xf690, 0xf7c2, 0xf8cf, 0xf9d1,
+ 0xfb05, 0xfc81, 0xfeaa, 0x015f, 0x038d, 0x0452,
+ 0x03a5, 0x021f, 0x008b, 0xff2a, 0xfdb0, 0xfc08,
+ 0xfaac, 0xfa7f, 0xfc3d, 0xffbf, 0x03e2, 0x076d,
+ 0x0a04, 0x0bd6, 0x0cc2, 0x0c6d, 0x0a8d, 0x0708,
+ 0x0282, 0xfe3b, 0xfaf7, 0xf8e5, 0xf822, 0xf8df,
+ 0xfb43, 0xff12, 0x0369, 0x0728, 0x097e, 0x0a4b,
+ 0x09e6, 0x089e, 0x0693, 0x03c8, 0x0072, 0xfd3f,
+ 0xfaac, 0xf8ac, 0xf76c, 0xf74a, 0xf830, 0xf9be,
+ 0xfbb5, 0xfe13, 0x00d1, 0x0368, 0x052d, 0x05fa,
+ 0x05bc, 0x0472, 0x0297, 0x00a0, 0xfeb8, 0xfd1b,
+ 0xfbdd, 0xfaae, 0xf964, 0xf862, 0xf846, 0xf968,
+ 0xfbb6, 0xfeb7, 0x01ac, 0x03dc, 0x04d7, 0x04bd,
+ 0x03fb, 0x0252, 0xff00, 0xfa36, 0xf531, 0xf156,
+ 0xefd5, 0xf114, 0xf465, 0xf8cd, 0xfd83, 0x01c9,
+ 0x04d2, 0x05de, 0x04c4, 0x01e0, 0xfdd4, 0xf99c,
+ 0xf5ee, 0xf2f6, 0xf15c, 0xf1eb, 0xf479, 0xf86f,
+ 0xfd26, 0x0185, 0x04a4, 0x0643, 0x065f, 0x050a,
+ 0x0270, 0xfee0, 0xfaff, 0xf7b5, 0xf5a6, 0xf4d7,
+ 0xf514, 0xf65f, 0xf884, 0xfaf1, 0xfd6c, 0xffdd,
+ 0x01b8, 0x029c, 0x02b6, 0x0237, 0x010c, 0xff28,
+ 0xfc9d, 0xf9a5, 0xf6d5, 0xf4e1, 0xf3ef, 0xf3b5,
+ 0xf3ea, 0xf45f, 0xf57c, 0xf804, 0xfb92, 0xfebc,
+ 0x0085, 0x006b, 0xfe62, 0xfb3a, 0xf7b9, 0xf3e6,
+ 0xefad, 0xeb7e, 0xe85e, 0xe76f, 0xe928, 0xed02,
+ 0xf1e1, 0xf6f0, 0xfbe6, 0x0049, 0x034f, 0x044e,
+ 0x02df, 0xff44, 0xfa72, 0xf554, 0xf0a2, 0xed28,
+ 0xeb53, 0xeb26, 0xecb5, 0xf008, 0xf498, 0xf959,
+ 0xfd41, 0xff87, 0xffd1, 0xfe7c, 0xfbef, 0xf837,
+ 0xf3ff, 0xf05c, 0xedbe, 0xec6a, 0xecbd, 0xee66,
+ 0xf0d1, 0xf3af, 0xf6ca, 0xf9e0, 0xfc6f, 0xfe02,
+ 0xfed3, 0xff3f, 0xff51, 0xff30, 0xfee4, 0xfe2d,
+ 0xfd27, 0xfc66, 0xfc72, 0xfd4e, 0xfe8f, 0x0039,
+ 0x02f6, 0x0746, 0x0cb8, 0x11d1, 0x151c, 0x1638,
+ 0x1574, 0x134e, 0x1072, 0x0d33, 0x098b, 0x0614,
+ 0x03fe, 0x0410, 0x0664, 0x0a91, 0x0f76, 0x13af,
+ 0x16b9, 0x1896, 0x18d6, 0x172f, 0x13f5, 0x0f81,
+ 0x0a90, 0x0631, 0x02e9, 0x010e, 0x0107, 0x0292,
+ 0x0537, 0x08bf, 0x0c99, 0x0ff5, 0x1227, 0x1286,
+ 0x10c8, 0x0d65, 0x092a, 0x0489, 0xffa2, 0xfaf6,
+ 0xf758, 0xf54a, 0xf52f, 0xf722, 0xfa83, 0xfe90,
+ 0x02c9, 0x0680, 0x091d, 0x0a6c, 0x0a3a, 0x0879,
+ 0x05a6, 0x0256, 0xfeb0, 0xfaf5, 0xf7ff, 0xf681,
+ 0xf67b, 0xf78c, 0xf924, 0xfae2, 0xfd07, 0xffb1,
+ 0x0266, 0x0479, 0x050f, 0x0399, 0x00b5, 0xfd5f,
+ 0xf9dc, 0xf606, 0xf20c, 0xeec2, 0xed2c, 0xedd9,
+ 0xf0cb, 0xf52a, 0xf991, 0xfd62, 0x009a, 0x02da,
+ 0x03c1, 0x031f, 0x00c0, 0xfd18, 0xf937, 0xf5d8,
+ 0xf345, 0xf1d7, 0xf1fe, 0xf3eb, 0xf780, 0xfc58,
+ 0x0185, 0x0602, 0x0935, 0x0aa6, 0x0a2c, 0x0877,
+ 0x0648, 0x03b5, 0x00e2, 0xfe6a, 0xfcfb, 0xfcdf,
+ 0xfdf9, 0x0011, 0x02d5, 0x05d4, 0x08e4, 0x0bcd,
+ 0x0e20, 0x0f8d, 0x0fc1, 0x0e95, 0x0c7c, 0x09cb,
+ 0x0690, 0x033e, 0x0073, 0xfee6, 0xff59, 0x01bd,
+ 0x0533, 0x08ff, 0x0cbd, 0x1046, 0x135e, 0x1529,
+ 0x14b2, 0x1213, 0x0e7f, 0x0b34, 0x088d, 0x0648,
+ 0x0455, 0x02fb, 0x02c6, 0x045c, 0x07c6, 0x0c1c,
+ 0x1044, 0x13c5, 0x16ab, 0x18c8, 0x1990, 0x188c,
+ 0x159e, 0x114d, 0x0c92, 0x0844, 0x04f6, 0x0309,
+ 0x028f, 0x03b5, 0x06a8, 0x0ac9, 0x0eec, 0x1249,
+ 0x149b, 0x15c5, 0x158f, 0x13d0, 0x10a2, 0x0c50,
+ 0x0780, 0x0315, 0xffd9, 0xfe76, 0xff34, 0x018d,
+ 0x04e0, 0x08e7, 0x0d2f, 0x110a, 0x13e4, 0x1539,
+ 0x14e3, 0x1358, 0x113a, 0x0ed7, 0x0c4f, 0x09d5,
+ 0x07a6, 0x0611, 0x0577, 0x05a9, 0x0603, 0x0656,
+ 0x06ff, 0x0863, 0x0a73, 0x0c4c, 0x0ce4, 0x0c04,
+ 0x0a16, 0x07b8, 0x0544, 0x0263, 0xfed4, 0xfb37,
+ 0xf891, 0xf7b9, 0xf8d3, 0xfae0, 0xfcb8, 0xfe1d,
+ 0xff69, 0x00b4, 0x0182, 0x0130, 0xff88, 0xfcbb,
+ 0xf96e, 0xf663, 0xf3d5, 0xf1eb, 0xf15e, 0xf2cf,
+ 0xf605, 0xfa1d, 0xfe09, 0x00ef, 0x026f, 0x029c,
+ 0x0194, 0xff3f, 0xfbb9, 0xf78d, 0xf38e, 0xf0a6,
+ 0xef5e, 0xefaa, 0xf155, 0xf402, 0xf774, 0xfba7,
+ 0x0007, 0x038f, 0x0595, 0x05c5, 0x043c, 0x01be,
+ 0xfee9, 0xfc18, 0xf9d1, 0xf893, 0xf8e0, 0xfaf6,
+ 0xfe28, 0x0170, 0x042a, 0x0613, 0x075f, 0x087c,
+ 0x0996, 0x0a42, 0x09b2, 0x07ea, 0x0601, 0x04a3,
+ 0x038e, 0x0208, 0xff79, 0xfc91, 0xfae0, 0xfafe,
+ 0xfc9a, 0xff2b, 0x01cf, 0x03ed, 0x0597, 0x06d0,
+ 0x0702, 0x0571, 0x0247, 0xfe99, 0xfb21, 0xf80d,
+ 0xf566, 0xf32e, 0xf1d1, 0xf1db, 0xf357, 0xf608,
+ 0xf90a, 0xfb2b, 0xfc7b, 0xfd76, 0xfd8c, 0xfc3e,
+ 0xf9a7, 0xf626, 0xf2bb, 0xf03f, 0xeea4, 0xedad,
+ 0xed50, 0xedb5, 0xef2e, 0xf19f, 0xf44f, 0xf661,
+ 0xf774, 0xf7fa, 0xf84c, 0xf836, 0xf7ce, 0xf71e,
+ 0xf5ef, 0xf4d2, 0xf4a3, 0xf539, 0xf5d1, 0xf5ff,
+ 0xf5e7, 0xf5f6, 0xf68a, 0xf7c5, 0xf928, 0xf9b8,
+ 0xf933, 0xf82d, 0xf730, 0xf667, 0xf56d, 0xf3b4,
+ 0xf171, 0xef65, 0xee66, 0xef01, 0xf0c9, 0xf2da,
+ 0xf4e0, 0xf6d5, 0xf8c3, 0xfa8b, 0xfb7e, 0xfb0d,
+ 0xf96f, 0xf742, 0xf523, 0xf337, 0xf159, 0xeff8,
+ 0xefd5, 0xf150, 0xf468, 0xf86b, 0xfc1a, 0xfeac,
+ 0x0018, 0x009c, 0x001d, 0xfe08, 0xfa81, 0xf6d9,
+ 0xf41a, 0xf287, 0xf246, 0xf335, 0xf4d9, 0xf6e7,
+ 0xf942, 0xfb80, 0xfcf0, 0xfd38, 0xfcd4, 0xfc99,
+ 0xfcf5, 0xfda7, 0xfe21, 0xfe3d, 0xfe4d, 0xfe90,
+ 0xfefe, 0xff3b, 0xfeb2, 0xfd60, 0xfc29, 0xfc00,
+ 0xfd1e, 0xff1e, 0x016e, 0x0383, 0x04fe, 0x05e7,
+ 0x065c, 0x05f9, 0x0448, 0x015e, 0xfda4, 0xf9c1,
+ 0xf6af, 0xf526, 0xf55e, 0xf72e, 0xf9f5, 0xfd10,
+ 0x0035, 0x02cb, 0x0409, 0x03db, 0x0290, 0x006d,
+ 0xfdec, 0xfb65, 0xf8f6, 0xf700, 0xf5f8, 0xf611,
+ 0xf754, 0xf981, 0xfbfb, 0xfe36, 0xffed, 0x0102,
+ 0x013f, 0x007c, 0xfedd, 0xfcc0, 0xfaaf, 0xf921,
+ 0xf802, 0xf736, 0xf725, 0xf803, 0xf987, 0xfb50,
+ 0xfcd6, 0xfddd, 0xfeb1, 0xff78, 0xfff3, 0xffdd,
+ 0xff19, 0xfded, 0xfceb, 0xfc91, 0xfce0, 0xfd14,
+ 0xfc9b, 0xfbf2, 0xfbd9, 0xfca8, 0xfe4b, 0x0032,
+ 0x01fd, 0x03a1, 0x04f1, 0x05e7, 0x0682, 0x0645,
+ 0x0506, 0x02f9, 0x0055, 0xfde1, 0xfc3c, 0xfb77,
+ 0xfc21, 0xfe85, 0x01c8, 0x053e, 0x08b0, 0x0bba,
+ 0x0dda, 0x0e5f, 0x0d04, 0x0a57, 0x06c3, 0x02ca,
+ 0xff6e, 0xfd5b, 0xfcd8, 0xfdf3, 0x0028, 0x02e9,
+ 0x05ae, 0x07cd, 0x091c, 0x09c9, 0x09ca, 0x091b,
+ 0x07b5, 0x05b3, 0x0388, 0x014f, 0xfeec, 0xfc9d,
+ 0xfaa9, 0xf969, 0xf942, 0xfa13, 0xfb76, 0xfd22,
+ 0xff09, 0x016b, 0x040a, 0x05fb, 0x06b8, 0x064d,
+ 0x0537, 0x041a, 0x02ce, 0x00cf, 0xfe3a, 0xfb76,
+ 0xf964, 0xf931, 0xfadb, 0xfd51, 0xffdd, 0x0229,
+ 0x0407, 0x056c, 0x0633, 0x0602, 0x0479, 0x01a8,
+ 0xfe24, 0xfa86, 0xf78b, 0xf5f9, 0xf5fd, 0xf771,
+ 0xfa1c, 0xfd51, 0x0050, 0x02a0, 0x03d3, 0x03c3,
+ 0x0284, 0x003f, 0xfd77, 0xfac9, 0xf884, 0xf6bf,
+ 0xf5ad, 0xf5ae, 0xf6d7, 0xf8c2, 0xfb19, 0xfd81,
+ 0xff6d, 0x00d3, 0x01b0, 0x0188, 0x005e, 0xfe9c,
+ 0xfc7d, 0xfa6d, 0xf8b2, 0xf75a, 0xf6d1, 0xf76e,
+ 0xf941, 0xfc24, 0xff38, 0x01bc, 0x03f8, 0x060b,
+ 0x0789, 0x0813, 0x073b, 0x051c, 0x0299, 0x003d,
+ 0xfdf5, 0xfb81, 0xf89f, 0xf5bf, 0xf40a, 0xf43d,
+ 0xf65c, 0xf9c7, 0xfd6a, 0x0097, 0x034f, 0x057d,
+ 0x06a9, 0x0648, 0x0442, 0x0127, 0xfdc2, 0xfaea,
+ 0xf969, 0xf9ae, 0xfbc7, 0xff5a, 0x0397, 0x07e1,
+ 0x0c12, 0x0ffb, 0x134f, 0x159b, 0x163c, 0x1500,
+ 0x1270, 0x0f36, 0x0bcb, 0x0885, 0x05cf, 0x0467,
+ 0x04e0, 0x071a, 0x0a9d, 0x0ec6, 0x12cd, 0x1641,
+ 0x18f3, 0x1a82, 0x1a7c, 0x1896, 0x1506, 0x10a4,
+ 0x0c32, 0x082d, 0x052d, 0x0383, 0x033d, 0x0485,
+ 0x072b, 0x0aa7, 0x0e88, 0x123a, 0x1548, 0x1774,
+ 0x1844, 0x17ac, 0x1684, 0x155b, 0x141a, 0x1291,
+ 0x10b0, 0x0ee6, 0x0dfd, 0x0e79, 0x1073, 0x1352,
+ 0x1611, 0x1844, 0x19cd, 0x1a42, 0x1990, 0x17e8,
+ 0x1529, 0x114a, 0x0cb5, 0x081f, 0x0480, 0x02b8,
+ 0x0302, 0x0502, 0x07fa, 0x0b11, 0x0dd9, 0x1033,
+ 0x11ae, 0x117f, 0x0f32, 0x0b0b, 0x060b, 0x0147,
+ 0xfd29, 0xf9a7, 0xf707, 0xf5d0, 0xf68c, 0xf95d,
+ 0xfd58, 0x0116, 0x03cd, 0x054d, 0x05c6, 0x0552,
+ 0x0384, 0x0027, 0xfbdd, 0xf780, 0xf3d1, 0xf15d,
+ 0xf015, 0xefb5, 0xf06c, 0xf28a, 0xf5b7, 0xf922,
+ 0xfc51, 0xff1d, 0x011e, 0x01e4, 0x012e, 0xfefc,
+ 0xfbe8, 0xf8aa, 0xf574, 0xf2a1, 0xf0a4, 0xef87,
+ 0xefb7, 0xf1dd, 0xf5a5, 0xf9fc, 0xfdf2, 0x0113,
+ 0x0373, 0x0504, 0x0578, 0x04a5, 0x026e, 0xfef0,
+ 0xfa9c, 0xf60d, 0xf246, 0xf027, 0xef95, 0xf05a,
+ 0xf2a5, 0xf624, 0xfa41, 0xfe75, 0x01f8, 0x03fd,
+ 0x03c5, 0x00f1, 0xfc6c, 0xf78a, 0xf2cb, 0xee8f,
+ 0xebad, 0xeae1, 0xec7c, 0xf025, 0xf4e7, 0xf9cc,
+ 0xfe18, 0x0145, 0x0304, 0x030c, 0x0126, 0xfd87,
+ 0xf8e6, 0xf44a, 0xf091, 0xee23, 0xed38, 0xee02,
+ 0xf054, 0xf3ab, 0xf78f, 0xfb72, 0xfec8, 0x0188,
+ 0x03a9, 0x047e, 0x03b9, 0x01f7, 0xfff3, 0xfe35,
+ 0xfceb, 0xfb98, 0xfa0d, 0xf8f1, 0xf908, 0xfaca,
+ 0xfdf6, 0x0159, 0x03ff, 0x05df, 0x073b, 0x082b,
+ 0x0863, 0x0752, 0x04bd, 0x0109, 0xfd05, 0xf97b,
+ 0xf6f4, 0xf5df, 0xf699, 0xf924, 0xfd4b, 0x0278,
+ 0x0785, 0x0b4f, 0x0d50, 0x0d7b, 0x0be5, 0x089b,
+ 0x0409, 0xfef7, 0xfa0f, 0xf61d, 0xf3f7, 0xf3b9,
+ 0xf53b, 0xf85b, 0xfc72, 0x00b4, 0x0495, 0x0759,
+ 0x088b, 0x0829, 0x0643, 0x0339, 0xff83, 0xfb3f,
+ 0xf6db, 0xf327, 0xf0d4, 0xf051, 0xf17e, 0xf3ca,
+ 0xf6c1, 0xfa0b, 0xfd79, 0x00cd, 0x032a, 0x03dd,
+ 0x0321, 0x016f, 0xff59, 0xfd6e, 0xfb89, 0xf940,
+ 0xf6c2, 0xf496, 0xf394, 0xf48e, 0xf72f, 0xfa54,
+ 0xfd60, 0x0037, 0x02ad, 0x0471, 0x04ff, 0x03a0,
+ 0x0018, 0xfb22, 0xf5eb, 0xf15a, 0xedf3, 0xec0f,
+ 0xebe5, 0xed81, 0xf0cb, 0xf564, 0xfa4a, 0xfe27,
+ 0x0046, 0x0093, 0xfee4, 0xfb48, 0xf662, 0xf106,
+ 0xec43, 0xe93f, 0xe881, 0xe9f1, 0xed29, 0xf169,
+ 0xf5fe, 0xfa8e, 0xfe87, 0x0112, 0x01c4, 0x00a3,
+ 0xfe11, 0xfa99, 0xf69e, 0xf29a, 0xef76, 0xede5,
+ 0xee0a, 0xefd4, 0xf2e4, 0xf6a0, 0xfa8c, 0xfe56,
+ 0x01c7, 0x04b7, 0x0698, 0x06e3, 0x05c9, 0x03d1,
+ 0x0165, 0xfeee, 0xfca1, 0xfa62, 0xf842, 0xf6e2,
+ 0xf72e, 0xf98a, 0xfd79, 0x020b, 0x064a, 0x0972,
+ 0x0b8c, 0x0d00, 0x0d6b, 0x0c10, 0x0917, 0x0532,
+ 0x00f3, 0xfd1b, 0xfa8f, 0xf9b0, 0xfa60, 0xfc8f,
+ 0x004d, 0x0536, 0x0a36, 0x0e2e, 0x1084, 0x1118,
+ 0x1011, 0x0d95, 0x09bc, 0x0518, 0x008b, 0xfcbc,
+ 0xfa5f, 0xfa06, 0xfb6f, 0xfe20, 0x01bd, 0x057a,
+ 0x08a3, 0x0adb, 0x0b8f, 0x0a98, 0x0850, 0x04d1,
+ 0x009f, 0xfcc5, 0xf98a, 0xf6ed, 0xf562, 0xf521,
+ 0xf5ff, 0xf7b3, 0xf9c2, 0xfbe5, 0xfe12, 0x0015,
+ 0x0190, 0x020c, 0x013f, 0xff78, 0xfd5d, 0xfb79,
+ 0xf9dc, 0xf818, 0xf60e, 0xf46e, 0xf423, 0xf594,
+ 0xf85a, 0xfb89, 0xfe63, 0x00a9, 0x0266, 0x0378,
+ 0x034a, 0x0151, 0xfda3, 0xf917, 0xf514, 0xf28e,
+ 0xf191, 0xf22d, 0xf491, 0xf861, 0xfd00, 0x01a9,
+ 0x0567, 0x07b5, 0x0871, 0x0777, 0x04d2, 0x00c8,
+ 0xfbfb, 0xf75d, 0xf3b3, 0xf18a, 0xf14c, 0xf2ec,
+ 0xf61d, 0xfa5c, 0xfeeb, 0x0340, 0x06fd, 0x09bf,
+ 0x0b5c, 0x0b8a, 0x0a07, 0x0747, 0x03ed, 0x0094,
+ 0xfdf2, 0xfc4b, 0xfbda, 0xfd02, 0xff77, 0x0294,
+ 0x05da, 0x089b, 0x0aba, 0x0c86, 0x0d86, 0x0d16,
+ 0x0b39, 0x086e, 0x0599, 0x0335, 0x00e1, 0xfe51,
+ 0xfba5, 0xf998, 0xf96c, 0xfb6e, 0xfe93, 0x01b9,
+ 0x043e, 0x064c, 0x0872, 0x0a45, 0x0ad5, 0x09e7,
+ 0x07b1, 0x04c6, 0x01d5, 0xff23, 0xfcf0, 0xfbbf,
+ 0xfc08, 0xfe32, 0x01ea, 0x0621, 0x0a33, 0x0de8,
+ 0x10cd, 0x1275, 0x1298, 0x111a, 0x0e4d, 0x0acf,
+ 0x074b, 0x045d, 0x026f, 0x01e1, 0x02eb, 0x054e,
+ 0x0872, 0x0b97, 0x0e31, 0x1007, 0x10c7, 0x1022,
+ 0x0e50, 0x0bca, 0x090a, 0x067b, 0x044f, 0x02d6,
+ 0x026a, 0x0319, 0x04f7, 0x07ed, 0x0b3f, 0x0e6d,
+ 0x118d, 0x1456, 0x1601, 0x15ec, 0x1423, 0x117c,
+ 0x0ef4, 0x0d03, 0x0b7c, 0x09f3, 0x0897, 0x084e,
+ 0x09c4, 0x0cc5, 0x1037, 0x12df, 0x1474, 0x1551,
+ 0x1596, 0x1539, 0x13e6, 0x114a, 0x0dca, 0x0a1b,
+ 0x06bf, 0x043a, 0x02bb, 0x0214, 0x0274, 0x0401,
+ 0x065a, 0x08fd, 0x0b5a, 0x0cef, 0x0d8a, 0x0cfe,
+ 0x0b38, 0x0896, 0x0576, 0x0202, 0xfe9a, 0xfbe5,
+ 0xfa71, 0xfa4e, 0xfb2e, 0xfcd4, 0xff09, 0x0189,
+ 0x0421, 0x064e, 0x073d, 0x0677, 0x0423, 0x00d2,
+ 0xfd17, 0xf93e, 0xf5ad, 0xf303, 0xf197, 0xf180,
+ 0xf2b0, 0xf478, 0xf62e, 0xf807, 0xfa39, 0xfc52,
+ 0xfdb1, 0xfdd6, 0xfce1, 0xfb9e, 0xfa7b, 0xf945,
+ 0xf7c9, 0xf5d7, 0xf3ae, 0xf25f, 0xf29d, 0xf435,
+ 0xf69a, 0xf90c, 0xfb0e, 0xfcfa, 0xfef5, 0x0072,
+ 0x010f, 0x0083, 0xfe9b, 0xfbd0, 0xf8f1, 0xf689,
+ 0xf4fa, 0xf441, 0xf40e, 0xf49c, 0xf660, 0xf913,
+ 0xfbdd, 0xfdfd, 0xfef6, 0xfea9, 0xfd5f, 0xfb65,
+ 0xf8b1, 0xf551, 0xf1e2, 0xef5b, 0xee7f, 0xef66,
+ 0xf164, 0xf3e2, 0xf6db, 0xfa35, 0xfd75, 0xfffa,
+ 0x00f4, 0x000a, 0xfde3, 0xfb4b, 0xf877, 0xf56d,
+ 0xf283, 0xf05e, 0xef9c, 0xf05e, 0xf23a, 0xf4a8,
+ 0xf764, 0xfa59, 0xfd3a, 0xff6f, 0x005b, 0xffc3,
+ 0xfe36, 0xfcc8, 0xfbf7, 0xfb4f, 0xfa36, 0xf8a5,
+ 0xf72f, 0xf663, 0xf68d, 0xf7ae, 0xf949, 0xfac2,
+ 0xfc27, 0xfdc4, 0xff8f, 0x014d, 0x0271, 0x025e,
+ 0x00fc, 0xfe88, 0xfb84, 0xf8ba, 0xf66c, 0xf472,
+ 0xf32f, 0xf330, 0xf4b5, 0xf7a9, 0xfb51, 0xfeac,
+ 0x0139, 0x02d6, 0x0368, 0x02d8, 0x00ff, 0xfdea,
+ 0xfa42, 0xf727, 0xf572, 0xf51a, 0xf599, 0xf6cc,
+ 0xf8c7, 0xfb64, 0xfe3d, 0x0092, 0x01ba, 0x01b4,
+ 0x00c7, 0xff44, 0xfd89, 0xfbb7, 0xf9e6, 0xf893,
+ 0xf833, 0xf8bf, 0xf9d6, 0xfb33, 0xfcd8, 0xfec9,
+ 0x00e1, 0x02cb, 0x03f3, 0x0420, 0x03c4, 0x0365,
+ 0x0337, 0x02f5, 0x0225, 0x00dd, 0xff95, 0xfea9,
+ 0xfe9d, 0xff8a, 0x00a5, 0x0176, 0x0246, 0x0374,
+ 0x051a, 0x06b2, 0x074c, 0x0673, 0x043c, 0x0126,
+ 0xfe09, 0xfb59, 0xf915, 0xf749, 0xf63e, 0xf66e,
+ 0xf820, 0xfad2, 0xfda0, 0xfff2, 0x0184, 0x0234,
+ 0x01ce, 0x0022, 0xfd4d, 0xf9b0, 0xf5ec, 0xf2cf,
+ 0xf0e1, 0xf03d, 0xf0db, 0xf2a3, 0xf565, 0xf8d0,
+ 0xfc42, 0xfee0, 0x001a, 0xffe6, 0xfe7e, 0xfc37,
+ 0xf973, 0xf69b, 0xf40e, 0xf201, 0xf08c, 0xefdc,
+ 0xf00d, 0xf0f7, 0xf26f, 0xf45a, 0xf68b, 0xf8c4,
+ 0xfa9a, 0xfbb3, 0xfc47, 0xfcad, 0xfccb, 0xfc67,
+ 0xfb38, 0xf904, 0xf659, 0xf455, 0xf389, 0xf3d2,
+ 0xf4da, 0xf636, 0xf7e1, 0xfa85, 0xfe67, 0x02a8,
+ 0x0603, 0x0790, 0x072a, 0x0589, 0x0360, 0x00cb,
+ 0xfdea, 0xfb30, 0xf942, 0xf8d9, 0xfa4f, 0xfd2e,
+ 0x009a, 0x040a, 0x0735, 0x09af, 0x0b17, 0x0b43,
+ 0x0a0e, 0x07b9, 0x0529, 0x0301, 0x015b, 0x005d,
+ 0x0017, 0x0060, 0x013f, 0x02bf, 0x0489, 0x0617,
+ 0x0715, 0x0774, 0x0720, 0x0607, 0x0461, 0x0287,
+ 0x00b2, 0xff08, 0xfdb2, 0xfcfa, 0xfd00, 0xfd8a,
+ 0xfe90, 0x002d, 0x0219, 0x03d5, 0x050a, 0x059f,
+ 0x05c1, 0x0590, 0x050d, 0x0427, 0x0283, 0xfffa,
+ 0xfd48, 0xfb6e, 0xfad9, 0xfb4e, 0xfc44, 0xfd60,
+ 0xfeb5, 0x0099, 0x0339, 0x05ff, 0x07c2, 0x07be,
+ 0x05ff, 0x0329, 0xfff5, 0xfcae, 0xf964, 0xf659,
+ 0xf419, 0xf36b, 0xf4bf, 0xf77e, 0xfaa5, 0xfd91,
+ 0xffdd, 0x014d, 0x01b4, 0x00cb, 0xfe90, 0xfb5e,
+ 0xf7dc, 0xf4f6, 0xf346, 0xf2cf, 0xf370, 0xf505,
+ 0xf788, 0xfb0c, 0xff06, 0x027b, 0x050d, 0x06cc,
+ 0x07aa, 0x0791, 0x0686, 0x04ba, 0x0270, 0xffd2,
+ 0xfd40, 0xfb20, 0xf98d, 0xf8cc, 0xf926, 0xfa8a,
+ 0xfccb, 0xff50, 0x0143, 0x02a2, 0x03b1, 0x045a,
+ 0x048b, 0x03c9, 0x0180, 0xfe0c, 0xfa34, 0xf6bf,
+ 0xf47d, 0xf37f, 0xf356, 0xf3fe, 0xf58e, 0xf812,
+ 0xfb8a, 0xff51, 0x0249, 0x039c, 0x0322, 0x017f,
+ 0xff74, 0xfd4e, 0xfb34, 0xf95d, 0xf844, 0xf8a7,
+ 0xfada, 0xfe7a, 0x02ad, 0x067f, 0x0995, 0x0c0c,
+ 0x0da4, 0x0de0, 0x0c90, 0x09e7, 0x068b, 0x0348,
+ 0x00c8, 0xff54, 0xfeb0, 0xfed3, 0x002e, 0x02d4,
+ 0x063a, 0x09a8, 0x0c63, 0x0e25, 0x0eeb, 0x0e88,
+ 0x0d34, 0x0b63, 0x094d, 0x0781, 0x067d, 0x0617,
+ 0x0647, 0x0749, 0x0926, 0x0bdc, 0x0f1f, 0x124e,
+ 0x14f7, 0x16cb, 0x17e0, 0x189c, 0x18d0, 0x1821,
+ 0x1689, 0x13f8, 0x1105, 0x0ed3, 0x0db5, 0x0d7b,
+ 0x0e11, 0x0f33, 0x1105, 0x13ea, 0x177a, 0x1ae1,
+ 0x1d3a, 0x1da8, 0x1c21, 0x1960, 0x160f, 0x128e,
+ 0x0ec9, 0x0ad7, 0x079b, 0x05f0, 0x0615, 0x07e3,
+ 0x0aa6, 0x0d90, 0x1052, 0x1292, 0x13d3, 0x13cf,
+ 0x1257, 0x0f92, 0x0c24, 0x08ab, 0x0594, 0x032f,
+ 0x0175, 0x005b, 0x0039, 0x014c, 0x034b, 0x05ab,
+ 0x07de, 0x0956, 0x09bf, 0x0909, 0x0742, 0x04a5,
+ 0x0182, 0xfe21, 0xfad9, 0xf819, 0xf641, 0xf58f,
+ 0xf605, 0xf780, 0xf9bb, 0xfc1f, 0xfdf1, 0xfeea,
+ 0xff31, 0xfef5, 0xfe42, 0xfd06, 0xfb06, 0xf823,
+ 0xf4fe, 0xf2b5, 0xf1d2, 0xf200, 0xf2c4, 0xf3f0,
+ 0xf5b7, 0xf86a, 0xfbde, 0xff1a, 0x0103, 0x011d,
+ 0xff8d, 0xfcd6, 0xf992, 0xf615, 0xf27c, 0xef3d,
+ 0xed28, 0xecd2, 0xee42, 0xf112, 0xf492, 0xf820,
+ 0xfb75, 0xfe3c, 0xffc3, 0xff94, 0xfdcf, 0xfaa9,
+ 0xf68f, 0xf275, 0xef2d, 0xed27, 0xecc7, 0xedf9,
+ 0xf04a, 0xf3a0, 0xf7c7, 0xfbfe, 0xff8f, 0x020f,
+ 0x032a, 0x02f3, 0x01c3, 0xffc2, 0xfd21, 0xfa53,
+ 0xf7ad, 0xf58d, 0xf45c, 0xf439, 0xf523, 0xf720,
+ 0xf9fd, 0xfd59, 0x00ac, 0x0363, 0x0549, 0x0662,
+ 0x0688, 0x058e, 0x0359, 0x001b, 0xfcbb, 0xfa46,
+ 0xf926, 0xf8fe, 0xf940, 0xf9fe, 0xfbbe, 0xfebf,
+ 0x02b5, 0x0696, 0x0937, 0x0a40, 0x09ba, 0x07e2,
+ 0x0569, 0x0275, 0xfef7, 0xfbb7, 0xf958, 0xf825,
+ 0xf8be, 0xfafb, 0xfe04, 0x0177, 0x04db, 0x0759,
+ 0x0882, 0x0831, 0x0666, 0x036e, 0xffd0, 0xfc37,
+ 0xf923, 0xf6d4, 0xf583, 0xf563, 0xf677, 0xf89f,
+ 0xfba8, 0xfefd, 0x0175, 0x0268, 0x0220, 0x00cd,
+ 0xfe8f, 0xfbf9, 0xf951, 0xf6bf, 0xf4c0, 0xf397,
+ 0xf356, 0xf415, 0xf5b9, 0xf82e, 0xfb06, 0xfd67,
+ 0xfef6, 0xffd6, 0x0036, 0x0047, 0xffd4, 0xfe85,
+ 0xfc55, 0xf96a, 0xf697, 0xf4f1, 0xf496, 0xf528,
+ 0xf664, 0xf826, 0xfaab, 0xfdf3, 0x0155, 0x0426,
+ 0x05a6, 0x0552, 0x0372, 0x0056, 0xfc3d, 0xf7d8,
+ 0xf3ba, 0xf042, 0xee23, 0xede7, 0xefa8, 0xf32b,
+ 0xf7a3, 0xfc18, 0x0016, 0x033a, 0x04d1, 0x0484,
+ 0x0274, 0xfed6, 0xfa71, 0xf674, 0xf354, 0xf12c,
+ 0xf049, 0xf099, 0xf205, 0xf4b1, 0xf836, 0xfbd4,
+ 0xfef5, 0x011a, 0x0203, 0x01bf, 0x0052, 0xfddb,
+ 0xfac9, 0xf7b5, 0xf514, 0xf31e, 0xf20b, 0xf217,
+ 0xf36f, 0xf606, 0xf93e, 0xfc3e, 0xfea6, 0x007a,
+ 0x01d9, 0x02ac, 0x029e, 0x0193, 0xffb3, 0xfd44,
+ 0xfaef, 0xf93a, 0xf822, 0xf7a0, 0xf7c8, 0xf8d7,
+ 0xfb20, 0xfe74, 0x0243, 0x05db, 0x083c, 0x08f5,
+ 0x0865, 0x06bf, 0x0424, 0x0103, 0xfdc5, 0xfad2,
+ 0xf8b7, 0xf839, 0xf9e1, 0xfd21, 0x00f2, 0x04cb,
+ 0x0810, 0x0a38, 0x0b26, 0x0a8d, 0x0846, 0x04ed,
+ 0x0143, 0xfdfb, 0xfbae, 0xfa78, 0xfa70, 0xfbef,
+ 0xfec7, 0x0248, 0x05e5, 0x08fd, 0x0af8, 0x0bb0,
+ 0x0b30, 0x099b, 0x073c, 0x0434, 0x00c3, 0xfd8c,
+ 0xfaed, 0xf902, 0xf824, 0xf892, 0xfa32, 0xfca1,
+ 0xff3c, 0x0179, 0x033c, 0x049c, 0x05aa, 0x0623,
+ 0x0592, 0x03cf, 0x012f, 0xfe73, 0xfc38, 0xfaab,
+ 0xf9fb, 0xfa29, 0xfabf, 0xfbc9, 0xfdc7, 0x00a8,
+ 0x03c5, 0x0628, 0x070e, 0x0647, 0x0401, 0x00c7,
+ 0xfd32, 0xf961, 0xf5af, 0xf2d8, 0xf153, 0xf181,
+ 0xf364, 0xf66f, 0xfa29, 0xfdf0, 0x011b, 0x039b,
+ 0x04f2, 0x0460, 0x0236, 0xff2e, 0xfbf7, 0xf956,
+ 0xf76a, 0xf61f, 0xf5e3, 0xf6f8, 0xf952, 0xfcb3,
+ 0x006c, 0x03d9, 0x0692, 0x083f, 0x08ce, 0x0855,
+ 0x0718, 0x0590, 0x03f1, 0x024b, 0x00ce, 0xffa0,
+ 0xff03, 0xff3f, 0x0037, 0x019e, 0x0316, 0x0423,
+ 0x04a8, 0x04fd, 0x053a, 0x04fa, 0x03fd, 0x0248,
+ 0xffdb, 0xfd21, 0xfadd, 0xf941, 0xf84f, 0xf82b,
+ 0xf8b6, 0xfa13, 0xfcb5, 0x0072, 0x0485, 0x07cb,
+ 0x094e, 0x091c, 0x07b9, 0x0575, 0x0297, 0xff48,
+ 0xfbed, 0xf98f, 0xf8e8, 0xfa17, 0xfcfa, 0x00ee,
+ 0x0520, 0x08fa, 0x0c1c, 0x0e30, 0x0eb7, 0x0d6c,
+ 0x0ab2, 0x072e, 0x0399, 0x00a6, 0xfe64, 0xfcb8,
+ 0xfc25, 0xfd20, 0xff75, 0x029e, 0x0608, 0x091e,
+ 0x0b70, 0x0cc9, 0x0d10, 0x0c56, 0x0b0b, 0x098d,
+ 0x07d6, 0x05ff, 0x0464, 0x035b, 0x0334, 0x0413,
+ 0x05ce, 0x080f, 0x0a5e, 0x0c7d, 0x0e6e, 0x1031,
+ 0x11dc, 0x134d, 0x13ee, 0x1365, 0x11db, 0x0fbf,
+ 0x0dc9, 0x0c67, 0x0b75, 0x0ab3, 0x0a23, 0x0a2f,
+ 0x0b62, 0x0db1, 0x1074, 0x12c7, 0x1405, 0x142a,
+ 0x1371, 0x120d, 0x1024, 0x0d7e, 0x0a36, 0x0765,
+ 0x05f1, 0x05c9, 0x06ad, 0x0871, 0x0ac2, 0x0d42,
+ 0x0f95, 0x114b, 0x11d3, 0x10d4, 0x0e98, 0x0baa,
+ 0x088c, 0x05da, 0x03e7, 0x0290, 0x01e6, 0x024c,
+ 0x03da, 0x060a, 0x082f, 0x09fd, 0x0b3f, 0x0b90,
+ 0x0ac0, 0x0919, 0x06fd, 0x04a4, 0x021d, 0xff93,
+ 0xfd6a, 0xfbfa, 0xfb76, 0xfbf0, 0xfd2e, 0xfedb,
+ 0x00bb, 0x0269, 0x037d, 0x0405, 0x0429, 0x03c4,
+ 0x0288, 0x0046, 0xfd47, 0xfa47, 0xf81b, 0xf71e,
+ 0xf6d7, 0xf6c0, 0xf71e, 0xf855, 0xfa66, 0xfd3c,
+ 0x0015, 0x01c6, 0x020d, 0x014a, 0xffb3, 0xfd8f,
+ 0xfb09, 0xf819, 0xf4f6, 0xf224, 0xf067, 0xf028,
+ 0xf103, 0xf2bf, 0xf559, 0xf839, 0xfae6, 0xfd23,
+ 0xfe40, 0xfde0, 0xfc57, 0xfa01, 0xf748, 0xf48e,
+ 0xf204, 0xf005, 0xeeef, 0xeee5, 0xf01e, 0xf280,
+ 0xf557, 0xf814, 0xfa73, 0xfc06, 0xfca9, 0xfcb6,
+ 0xfc2d, 0xfac7, 0xf8c4, 0xf670, 0xf3fd, 0xf201,
+ 0xf0d0, 0xf05c, 0xf0c6, 0xf1df, 0xf339, 0xf4ba,
+ 0xf613, 0xf737, 0xf8bb, 0xfa5a, 0xfb2b, 0xfb02,
+ 0xfa11, 0xf8ce, 0xf803, 0xf7b1, 0xf737, 0xf66a,
+ 0xf5bc, 0xf5db, 0xf706, 0xf8fc, 0xfb5a, 0xfd6c,
+ 0xfe9f, 0xff18, 0xfef9, 0xfe35, 0xfcf4, 0xfb42,
+ 0xf93d, 0xf779, 0xf68e, 0xf6e0, 0xf853, 0xfa60,
+ 0xfcd7, 0xff8a, 0x01d7, 0x0338, 0x036d, 0x0258,
+ 0x003b, 0xfd89, 0xfabe, 0xf848, 0xf653, 0xf512,
+ 0xf4ca, 0xf58d, 0xf760, 0xfa14, 0xfd12, 0xffbf,
+ 0x01a9, 0x02a9, 0x02f2, 0x0288, 0x015b, 0xff9c,
+ 0xfd65, 0xfb05, 0xf928, 0xf81c, 0xf7dc, 0xf878,
+ 0xf9f5, 0xfc23, 0xfe4f, 0xffbf, 0x00b8, 0x01d4,
+ 0x02f2, 0x03aa, 0x03a9, 0x02b3, 0x011f, 0xff9f,
+ 0xfe76, 0xfd6d, 0xfc51, 0xfb2f, 0xfa2b, 0xf9ce,
+ 0xfac3, 0xfcd1, 0xff11, 0x010f, 0x028d, 0x0338,
+ 0x02fd, 0x01db, 0xffd3, 0xfd04, 0xf9bd, 0xf68d,
+ 0xf415, 0xf2d3, 0xf30a, 0xf460, 0xf677, 0xf964,
+ 0xfcb2, 0xff6d, 0x011e, 0x0180, 0x008c, 0xfebb,
+ 0xfc5f, 0xf9be, 0xf752, 0xf554, 0xf3fe, 0xf3c7,
+ 0xf4cb, 0xf6b1, 0xf8e4, 0xfad8, 0xfc42, 0xfcfa,
+ 0xfd0a, 0xfc8c, 0xfb6f, 0xf9ce, 0xf7f5, 0xf610,
+ 0xf470, 0xf34e, 0xf29d, 0xf2ab, 0xf38e, 0xf4ad,
+ 0xf5ad, 0xf680, 0xf70e, 0xf7da, 0xf93a, 0xfa68,
+ 0xfaa3, 0xfa15, 0xf93f, 0xf86f, 0xf7b2, 0xf6e3,
+ 0xf5f1, 0xf515, 0xf4b6, 0xf531, 0xf6c2, 0xf945,
+ 0xfc1c, 0xfeb8, 0x00bc, 0x01c9, 0x01f6, 0x0190,
+ 0x0047, 0xfde8, 0xfb2c, 0xf8f8, 0xf7ba, 0xf795,
+ 0xf887, 0xfa8e, 0xfd77, 0x00d1, 0x0445, 0x0733,
+ 0x08be, 0x08b6, 0x076c, 0x0523, 0x0261, 0xffab,
+ 0xfd20, 0xfb1f, 0xfa3b, 0xfaaf, 0xfc7a, 0xff36,
+ 0x0221, 0x04b1, 0x06a0, 0x07c7, 0x0826, 0x07b2,
+ 0x0679, 0x04cc, 0x02e1, 0x00e5, 0xff1a, 0xfd92,
+ 0xfc83, 0xfc5b, 0xfd01, 0xfde3, 0xfeae, 0xff81,
+ 0x00c2, 0x02b4, 0x0505, 0x070b, 0x0853, 0x08cb,
+ 0x08a1, 0x0808, 0x0702, 0x0559, 0x031d, 0x00db,
+ 0xff07, 0xfdf0, 0xfe0c, 0xff60, 0x0157, 0x0347,
+ 0x04b6, 0x0596, 0x0603, 0x05a3, 0x0401, 0x0130,
+ 0xfde4, 0xfb07, 0xf907, 0xf7e0, 0xf7af, 0xf87a,
+ 0xfa2c, 0xfcae, 0xff52, 0x0147, 0x0245, 0x021c,
+ 0x00ea, 0xff53, 0xfdb5, 0xfc37, 0xfb01, 0xfa20,
+ 0xf9ed, 0xfae8, 0xfcf7, 0xff80, 0x01e9, 0x03ef,
+ 0x0596, 0x06ad, 0x0702, 0x06c2, 0x05f8, 0x04a1,
+ 0x02f9, 0x0102, 0xfead, 0xfc89, 0xfb4a, 0xfaf0,
+ 0xfb1c, 0xfb96, 0xfc22, 0xfcb1, 0xfd96, 0xfedc,
+ 0xffff, 0x008f, 0x0050, 0xff3a, 0xfd93, 0xfb9c,
+ 0xf96e, 0xf734, 0xf51b, 0xf353, 0xf23e, 0xf269,
+ 0xf438, 0xf739, 0xfa85, 0xfdc1, 0x00ae, 0x02df,
+ 0x042c, 0x0437, 0x029c, 0xffc6, 0xfc7a, 0xf97a,
+ 0xf779, 0xf69f, 0xf6d9, 0xf844, 0xfaef, 0xfebc,
+ 0x02d8, 0x05fa, 0x07b2, 0x083d, 0x07aa, 0x063c,
+ 0x0454, 0x0233, 0x0033, 0xfe7d, 0xfd4b, 0xfd3c,
+ 0xfe60, 0x0032, 0x0256, 0x047c, 0x0677, 0x0859,
+ 0x0a01, 0x0b41, 0x0c28, 0x0cbe, 0x0cd2, 0x0c25,
+ 0x0afc, 0x0a0e, 0x09a8, 0x099f, 0x09d0, 0x0a33,
+ 0x0ae3, 0x0c18, 0x0de9, 0x103e, 0x12b1, 0x14c9,
+ 0x164e, 0x170b, 0x16e9, 0x1630, 0x1514, 0x139b,
+ 0x11e6, 0x1019, 0x0eab, 0x0e6f, 0x0fad, 0x11d0,
+ 0x1423, 0x1638, 0x17ec, 0x1924, 0x197f, 0x18a5,
+ 0x1699, 0x13ac, 0x1099, 0x0e30, 0x0c85, 0x0b6d,
+ 0x0b37, 0x0c19, 0x0dee, 0x1066, 0x12c4, 0x1432,
+ 0x1478, 0x13b4, 0x1206, 0x0fca, 0x0d53, 0x0aba,
+ 0x0811, 0x059a, 0x03d2, 0x0329, 0x03af, 0x051d,
+ 0x06d5, 0x083d, 0x0943, 0x09de, 0x09d2, 0x093f,
+ 0x084f, 0x06cb, 0x048a, 0x019e, 0xfe9f, 0xfc79,
+ 0xfb43, 0xfa8f, 0xfa6b, 0xfad9, 0xfba5, 0xfce8,
+ 0xfe9a, 0x006c, 0x022d, 0x0373, 0x03bc, 0x02e5,
+ 0x011b, 0xfebf, 0xfc24, 0xf952, 0xf646, 0xf36a,
+ 0xf189, 0xf13b, 0xf27c, 0xf4d2, 0xf79b, 0xfa4f,
+ 0xfcdc, 0xff32, 0x009f, 0x006c, 0xfea0, 0xfbf8,
+ 0xf92f, 0xf65a, 0xf3a3, 0xf1c4, 0xf115, 0xf181,
+ 0xf334, 0xf5e3, 0xf8b0, 0xfafa, 0xfc58, 0xfcaa,
+ 0xfc64, 0xfbda, 0xfad6, 0xf930, 0xf727, 0xf53d,
+ 0xf3fc, 0xf3b1, 0xf45e, 0xf5e8, 0xf819, 0xfa72,
+ 0xfc77, 0xfe2a, 0xffbe, 0x00e6, 0x0137, 0x00b7,
+ 0xff7a, 0xfd68, 0xfafe, 0xf90b, 0xf7b9, 0xf6f3,
+ 0xf6cd, 0xf6fc, 0xf775, 0xf8b8, 0xfaa1, 0xfca2,
+ 0xfe9e, 0x0032, 0x00c0, 0x0051, 0xff53, 0xfe23,
+ 0xfcf4, 0xfb63, 0xf92d, 0xf722, 0xf657, 0xf710,
+ 0xf8e7, 0xfb53, 0xfdfc, 0x00a7, 0x02ec, 0x0472,
+ 0x050f, 0x0460, 0x024c, 0xff9a, 0xfcf8, 0xfa82,
+ 0xf893, 0xf79c, 0xf7bb, 0xf922, 0xfbdd, 0xff64,
+ 0x02c6, 0x0509, 0x05dd, 0x05b9, 0x04e4, 0x0352,
+ 0x0113, 0xfe48, 0xfb43, 0xf897, 0xf6d9, 0xf671,
+ 0xf73b, 0xf8a0, 0xfa50, 0xfc49, 0xfe41, 0xffd5,
+ 0x00ef, 0x0194, 0x019f, 0x00fd, 0xffb0, 0xfdb0,
+ 0xfb7d, 0xf9d2, 0xf8bf, 0xf809, 0xf7b0, 0xf7c1,
+ 0xf857, 0xf98a, 0xfb6c, 0xfdf6, 0x006a, 0x01e4,
+ 0x023e, 0x01a9, 0x0089, 0xff34, 0xfd53, 0xfac4,
+ 0xf82f, 0xf619, 0xf4e0, 0xf500, 0xf67c, 0xf8bc,
+ 0xfb21, 0xfd78, 0xffad, 0x014d, 0x01f0, 0x0176,
+ 0xffe8, 0xfd89, 0xfab9, 0xf7ee, 0xf5b6, 0xf42f,
+ 0xf382, 0xf433, 0xf619, 0xf8a6, 0xfb52, 0xfd46,
+ 0xfe35, 0xfe67, 0xfdf3, 0xfd0e, 0xfba6, 0xf95a,
+ 0xf6cf, 0xf4f0, 0xf411, 0xf468, 0xf5a1, 0xf742,
+ 0xf95e, 0xfba4, 0xfd80, 0xfec9, 0xff68, 0xff66,
+ 0xfeb1, 0xfcfa, 0xfa92, 0xf823, 0xf601, 0xf490,
+ 0xf41a, 0xf457, 0xf4be, 0xf53f, 0xf66e, 0xf86c,
+ 0xfaaf, 0xfd06, 0xff1d, 0x0047, 0x0099, 0x0073,
+ 0xffcd, 0xfea1, 0xfce2, 0xfaa3, 0xf855, 0xf663,
+ 0xf54e, 0xf590, 0xf715, 0xf9b1, 0xfd26, 0x00ae,
+ 0x038e, 0x058b, 0x0692, 0x06a1, 0x058f, 0x0326,
+ 0xffee, 0xfce5, 0xfa7a, 0xf8f6, 0xf8df, 0xfa20,
+ 0xfc63, 0xffa1, 0x0308, 0x056f, 0x06cb, 0x0778,
+ 0x076f, 0x06a2, 0x04e0, 0x0260, 0xffe6, 0xfdaf,
+ 0xfbd1, 0xfad0, 0xfadf, 0xfbc5, 0xfd3f, 0xfeff,
+ 0x00c5, 0x0254, 0x0385, 0x0459, 0x047a, 0x0396,
+ 0x01eb, 0xffe5, 0xfe0a, 0xfccb, 0xfc0b, 0xfb8f,
+ 0xfb34, 0xfaf0, 0xfb5b, 0xfcda, 0xfeac, 0x0027,
+ 0x014f, 0x01ed, 0x01f5, 0x01d2, 0x015a, 0x0019,
+ 0xfe6d, 0xfcce, 0xfb51, 0xfa26, 0xf979, 0xf974,
+ 0xfa7d, 0xfc61, 0xfe70, 0x0052, 0x0196, 0x01dc,
+ 0x0195, 0x00ed, 0xff4e, 0xfcb6, 0xf9cc, 0xf709,
+ 0xf4db, 0xf3cc, 0xf406, 0xf571, 0xf7fb, 0xfb1f,
+ 0xfe10, 0x0093, 0x027b, 0x033b, 0x02df, 0x01cf,
+ 0x0001, 0xfd97, 0xfb4f, 0xf9f3, 0xf9c8, 0xfa94,
+ 0xfc55, 0xff0f, 0x0222, 0x051b, 0x07df, 0x09fd,
+ 0x0b47, 0x0be8, 0x0b8d, 0x09ec, 0x075a, 0x046f,
+ 0x01d5, 0x000d, 0xff11, 0xfe86, 0xfe2d, 0xfe33,
+ 0xfeed, 0x0054, 0x0227, 0x0414, 0x059a, 0x0656,
+ 0x064d, 0x05a4, 0x046a, 0x02ae, 0x0085, 0xfe36,
+ 0xfc32, 0xfa90, 0xf941, 0xf8c9, 0xf9a1, 0xfb96,
+ 0xfe27, 0x00ba, 0x02f8, 0x04d4, 0x05d6, 0x05a3,
+ 0x0477, 0x024e, 0xff49, 0xfc37, 0xf9a3, 0xf7e1,
+ 0xf766, 0xf82e, 0xfa09, 0xfca8, 0xff28, 0x00de,
+ 0x01ca, 0x0227, 0x0211, 0x015a, 0xfff3, 0xfe21,
+ 0xfc3c, 0xfac6, 0xfa06, 0xf9cd, 0xfa3f, 0xfb5e,
+ 0xfcb7, 0xfe6a, 0x0077, 0x022b, 0x0354, 0x0414,
+ 0x0454, 0x043d, 0x03c7, 0x02eb, 0x022c, 0x01e4,
+ 0x0252, 0x039a, 0x0508, 0x0626, 0x0754, 0x08a8,
+ 0x0a17, 0x0ba8, 0x0cf5, 0x0dd4, 0x0e66, 0x0e8f,
+ 0x0e73, 0x0e36, 0x0d8f, 0x0c81, 0x0b3e, 0x09f8,
+ 0x097f, 0x0a61, 0x0c2a, 0x0e8b, 0x1186, 0x146f,
+ 0x168c, 0x17e6, 0x189a, 0x1835, 0x1672, 0x13c1,
+ 0x10c3, 0x0ded, 0x0b86, 0x09d8, 0x0964, 0x0a83,
+ 0x0cf2, 0x0ff7, 0x12ae, 0x1479, 0x1543, 0x14fb,
+ 0x13cf, 0x123a, 0x1008, 0x0d23, 0x0a9d, 0x0914,
+ 0x083e, 0x0828, 0x08ad, 0x092f, 0x09c0, 0x0af6,
+ 0x0ca2, 0x0ddf, 0x0e50, 0x0e3f, 0x0db1, 0x0ca4,
+ 0x0b3d, 0x0940, 0x06d6, 0x04c6, 0x034e, 0x0250,
+ 0x0198, 0x00db, 0x0072, 0x00c3, 0x01ae, 0x0327,
+ 0x04b7, 0x0580, 0x0568, 0x04ca, 0x03f1, 0x02f1,
+ 0x016c, 0xff66, 0xfd31, 0xfaa2, 0xf82e, 0xf6f1,
+ 0xf71f, 0xf841, 0xf9f2, 0xfbe3, 0xfdb6, 0xfeda,
+ 0xff37, 0xff01, 0xfdf3, 0xfc1f, 0xfa04, 0xf7b2,
+ 0xf594, 0xf442, 0xf3ac, 0xf3f8, 0xf567, 0xf7a1,
+ 0xfa1e, 0xfc32, 0xfd64, 0xfdda, 0xfd96, 0xfc82,
+ 0xfac4, 0xf87a, 0xf643, 0xf506, 0xf4c4, 0xf51a,
+ 0xf5da, 0xf6d9, 0xf80c, 0xf964, 0xfaa9, 0xfbb2,
+ 0xfc63, 0xfcb7, 0xfcb3, 0xfc24, 0xfb14, 0xf9da,
+ 0xf879, 0xf6fe, 0xf5f3, 0xf577, 0xf514, 0xf4a4,
+ 0xf472, 0xf4e2, 0xf61f, 0xf7ab, 0xf8f8, 0xfa00,
+ 0xfab0, 0xfac2, 0xfa3e, 0xf93a, 0xf7d6, 0xf65a,
+ 0xf4e1, 0xf391, 0xf2b8, 0xf2ab, 0xf3d4, 0xf62f,
+ 0xf935, 0xfc46, 0xfe88, 0xffb9, 0x005c, 0x0038,
+ 0xfee1, 0xfcef, 0xfac2, 0xf866, 0xf68a, 0xf5a6,
+ 0xf58a, 0xf603, 0xf6f7, 0xf85d, 0xfa12, 0xfbe4,
+ 0xfdab, 0xfeff, 0xff7b, 0xff25, 0xfe40, 0xfd0c,
+ 0xfb8b, 0xf9e9, 0xf8c7, 0xf862, 0xf88e, 0xf947,
+ 0xfa69, 0xfc05, 0xfe09, 0xffa6, 0x00bb, 0x01a5,
+ 0x01e4, 0x0162, 0x0093, 0xff78, 0xfe9a, 0xfead,
+ 0xff0a, 0xfec9, 0xfe2c, 0xfe01, 0xfe6b, 0xff0a,
+ 0xffe1, 0x00d6, 0x0186, 0x0229, 0x02e0, 0x0329,
+ 0x02e8, 0x0231, 0x00f2, 0xff63, 0xfdc8, 0xfc3f,
+ 0xfad6, 0xf9f4, 0xfa59, 0xfbf9, 0xfe2f, 0x0097,
+ 0x0247, 0x02ba, 0x02dc, 0x02e1, 0x020e, 0x003a,
+ 0xfd63, 0xf9f3, 0xf73c, 0xf5e7, 0xf5ba, 0xf68f,
+ 0xf858, 0xfab4, 0xfd01, 0xff19, 0x00ec, 0x019f,
+ 0x00d4, 0xff53, 0xfd6f, 0xfb02, 0xf877, 0xf68e,
+ 0xf58c, 0xf510, 0xf506, 0xf5d5, 0xf73e, 0xf8ba,
+ 0xfa2d, 0xfb49, 0xfbe2, 0xfc2d, 0xfc0d, 0xfb75,
+ 0xfa90, 0xf939, 0xf776, 0xf5c6, 0xf493, 0xf3e0,
+ 0xf36f, 0xf32a, 0xf350, 0xf3ed, 0xf4bf, 0xf5ac,
+ 0xf6b8, 0xf7b8, 0xf8a2, 0xf98a, 0xfa1c, 0xfa05,
+ 0xf937, 0xf7c9, 0xf65d, 0xf554, 0xf422, 0xf339,
+ 0xf3ea, 0xf5bb, 0xf790, 0xf979, 0xfb65, 0xfcf5,
+ 0xfe37, 0xff48, 0xfffd, 0xfff9, 0xff45, 0xfe07,
+ 0xfc09, 0xfa31, 0xf9d7, 0xfa74, 0xfb6c, 0xfd25,
+ 0xff0a, 0x00aa, 0x0256, 0x037e, 0x03e3, 0x03ea,
+ 0x0328, 0x0186, 0xffc5, 0xfe74, 0xfdfe, 0xfe59,
+ 0xfefe, 0xffb2, 0x0069, 0x0159, 0x02c1, 0x042a,
+ 0x04f9, 0x052b, 0x0503, 0x04a8, 0x03e2, 0x028f,
+ 0x0132, 0x0026, 0xff7f, 0xff5b, 0xffa0, 0x0012,
+ 0x0086, 0x0117, 0x0260, 0x0437, 0x05c2, 0x06f3,
+ 0x0783, 0x0703, 0x0674, 0x063c, 0x052a, 0x0319,
+ 0x00e7, 0xfef6, 0xfd5a, 0xfc30, 0xfc47, 0xfe4b,
+ 0x00e9, 0x02da, 0x046a, 0x0562, 0x053e, 0x046a,
+ 0x02f6, 0x00c6, 0xfe5e, 0xfbfd, 0xf9af, 0xf7b9,
+ 0xf68c, 0xf6d6, 0xf885, 0xfa99, 0xfcbc, 0xff00,
+ 0x0134, 0x035b, 0x04dd, 0x04a5, 0x02fb, 0x00cd,
+ 0xfe42, 0xfc11, 0xfb39, 0xfb2f, 0xfb67, 0xfc7f,
+ 0xfe3b, 0xffbd, 0x0108, 0x021c, 0x02d4, 0x0357,
+ 0x036f, 0x033a, 0x030e, 0x023a, 0x00a2, 0xff6c,
+ 0xfeda, 0xfe8b, 0xfe0c, 0xfcb8, 0xfb22, 0xfa60,
+ 0xfa5f, 0xfafc, 0xfbec, 0xfc57, 0xfca4, 0xfd9c,
+ 0xfedb, 0xffe3, 0x004e, 0xffdf, 0xfed4, 0xfd28,
+ 0xfb23, 0xf9d4, 0xf976, 0xf9df, 0xfb67, 0xfdc0,
+ 0x0014, 0x01c5, 0x0275, 0x027b, 0x021d, 0x00de,
+ 0xfe7e, 0xfb6d, 0xf883, 0xf689, 0xf57b, 0xf559,
+ 0xf6c2, 0xf94c, 0xfba5, 0xfd5f, 0xfea3, 0xff63,
+ 0xff9d, 0xff4f, 0xfe60, 0xfd0b, 0xfbc3, 0xfaa4,
+ 0xf9d5, 0xf9dc, 0xfabc, 0xfbeb, 0xfd6a, 0xff37,
+ 0x00be, 0x01f8, 0x034d, 0x04ad, 0x05c9, 0x062b,
+ 0x05b9, 0x0535, 0x04e6, 0x0441, 0x034f, 0x027e,
+ 0x0206, 0x0225, 0x0304, 0x04d9, 0x0786, 0x0a29,
+ 0x0c74, 0x0e9f, 0x1018, 0x10f5, 0x11ee, 0x126d,
+ 0x120e, 0x1170, 0x1055, 0x0e8b, 0x0ce0, 0x0b8e,
+ 0x0aa9, 0x0b07, 0x0d26, 0x106c, 0x136c, 0x1545,
+ 0x169f, 0x17e8, 0x185e, 0x1794, 0x15ac, 0x12c8,
+ 0x0f87, 0x0cee, 0x0b96, 0x0b8a, 0x0cb9, 0x0eeb,
+ 0x1133, 0x12dd, 0x1478, 0x162f, 0x16cc, 0x15c4,
+ 0x13f1, 0x11f0, 0x0f79, 0x0cc1, 0x0aec, 0x0a86,
+ 0x0af5, 0x0b8c, 0x0bec, 0x0bf9, 0x0bfb, 0x0c25,
+ 0x0c51, 0x0c73, 0x0c9d, 0x0c4e, 0x0acd, 0x08a0,
+ 0x073b, 0x06e7, 0x06d1, 0x063e, 0x04d6, 0x0330,
+ 0x0255, 0x0256, 0x02d8, 0x0378, 0x03b1, 0x03f1,
+ 0x046b, 0x0420, 0x0351, 0x02ef, 0x022a, 0x0067,
+ 0xfe2c, 0xfb98, 0xf927, 0xf77b, 0xf680, 0xf687,
+ 0xf7b1, 0xf938, 0xfad9, 0xfc63, 0xfd51, 0xfdd7,
+ 0xfdcd, 0xfc7b, 0xfa39, 0xf79e, 0xf4f5, 0xf328,
+ 0xf2d3, 0xf37b, 0xf49e, 0xf636, 0xf849, 0xfa53,
+ 0xfbda, 0xfd49, 0xfed9, 0xffd8, 0xff7a, 0xfd7b,
+ 0xfac5, 0xf8b3, 0xf769, 0xf6f9, 0xf78a, 0xf812,
+ 0xf853, 0xf971, 0xfb61, 0xfd66, 0xff52, 0x00c8,
+ 0x01a6, 0x01fd, 0x01a7, 0x00dd, 0xffa1, 0xfdd0,
+ 0xfc42, 0xfb7a, 0xfade, 0xfa1c, 0xf9b1, 0xfa43,
+ 0xfb8b, 0xfc80, 0xfd3e, 0xfe6a, 0xff5b, 0xff53,
+ 0xfefe, 0xff46, 0xffa8, 0xff0e, 0xfde0, 0xfcb8,
+ 0xfacd, 0xf87e, 0xf791, 0xf834, 0xf9e3, 0xfc93,
+ 0xff4a, 0x011e, 0x0267, 0x033d, 0x0345, 0x0285,
+ 0x00e1, 0xfe32, 0xfb3a, 0xf956, 0xf8fb, 0xf987,
+ 0xfa5e, 0xfb68, 0xfcb7, 0xfdfd, 0xfec9, 0xff81,
+ 0x008b, 0x0123, 0x0097, 0xff03, 0xfcbb, 0xfa96,
+ 0xf925, 0xf80d, 0xf776, 0xf7cf, 0xf8b5, 0xf9f3,
+ 0xfbc9, 0xfdfe, 0xffd0, 0x0052, 0xff57, 0xfdbf,
+ 0xfc5a, 0xfb65, 0xfabf, 0xf9f2, 0xf920, 0xf8d6,
+ 0xf8b8, 0xf85e, 0xf84e, 0xf8b7, 0xf963, 0xfaa4,
+ 0xfc2b, 0xfd32, 0xfe11, 0xfec9, 0xfe7b, 0xfde1,
+ 0xfe0f, 0xfdf0, 0xfccb, 0xfb82, 0xfa25, 0xf873,
+ 0xf776, 0xf849, 0xfab4, 0xfd8b, 0xffcf, 0x0143,
+ 0x021d, 0x02c6, 0x034d, 0x02cb, 0x007d, 0xfccf,
+ 0xf8d1, 0xf58d, 0xf38b, 0xf2fa, 0xf3f7, 0xf60f,
+ 0xf884, 0xfac3, 0xfc6b, 0xfdd1, 0xff11, 0xff47,
+ 0xfea1, 0xfdf4, 0xfc8e, 0xfa25, 0xf80c, 0xf72f,
+ 0xf7af, 0xf910, 0xf9ff, 0xf9cf, 0xf9b7, 0xfb33,
+ 0xfd4c, 0xfdfe, 0xfdc8, 0xfd92, 0xfca5, 0xfbad,
+ 0xfbae, 0xfb82, 0xfabf, 0xf9f9, 0xf8e0, 0xf7af,
+ 0xf6f9, 0xf6b8, 0xf6ef, 0xf75e, 0xf7f8, 0xf907,
+ 0xfa43, 0xfbac, 0xfcad, 0xfc4e, 0xfc02, 0xfc51,
+ 0xfb2e, 0xf98f, 0xf936, 0xf8bb, 0xf85a, 0xf960,
+ 0xfa96, 0xfbe0, 0xfe28, 0x0028, 0x00e7, 0x0156,
+ 0x0201, 0x01c2, 0xffa2, 0xfcb2, 0xf9cc, 0xf6e7,
+ 0xf5c0, 0xf763, 0xfa38, 0xfd5b, 0x001e, 0x011f,
+ 0x0118, 0x016e, 0x019a, 0x00d6, 0xff43, 0xfd9b,
+ 0xfc3e, 0xfad1, 0xf9e8, 0xfa1a, 0xfa83, 0xfad0,
+ 0xfb25, 0xfb4a, 0xfc74, 0xff5e, 0x0248, 0x0457,
+ 0x0625, 0x06eb, 0x059b, 0x030f, 0x0095, 0xfe8c,
+ 0xfd4c, 0xfce7, 0xfca9, 0xfcc9, 0xfdd2, 0xfea7,
+ 0xfef3, 0xffd7, 0x00c9, 0x012b, 0x01fb, 0x0312,
+ 0x0355, 0x0300, 0x02d6, 0x0297, 0x0131, 0xfeba,
+ 0xfc77, 0xfa61, 0xf85c, 0xf7a4, 0xf833, 0xf992,
+ 0xfc2f, 0xfec2, 0xffdf, 0x0092, 0x0186, 0x01d3,
+ 0x00bc, 0xfdef, 0xf9f4, 0xf692, 0xf5cf, 0xf808,
+ 0xfb12, 0xfdaa, 0x00c9, 0x03c0, 0x0513, 0x0593,
+ 0x059e, 0x04ae, 0x03d4, 0x0383, 0x028d, 0x0126,
+ 0x0085, 0x0071, 0x002d, 0xfff9, 0xffd1, 0xff12,
+ 0xfec5, 0x008b, 0x0331, 0x04d6, 0x05bd, 0x05ce,
+ 0x0445, 0x0254, 0x0159, 0x0066, 0xfeaf, 0xfd58,
+ 0xfd3b, 0xfde6, 0xff16, 0x0084, 0x0173, 0x01e9,
+ 0x0215, 0x01a0, 0x0179, 0x02bb, 0x0412, 0x041c,
+ 0x039b, 0x0338, 0x0279, 0x0121, 0xff6c, 0xfdce,
+ 0xfcf6, 0xfd45, 0xfe8d, 0x007a, 0x027c, 0x03ae,
+ 0x0408, 0x047d, 0x04c8, 0x036a, 0x00b4, 0xfe8b,
+ 0xfcbe, 0xfa50, 0xf8eb, 0xfa01, 0xfc3d, 0xfee8,
+ 0x019f, 0x0220, 0x0066, 0xff54, 0xfedf, 0xfd38,
+ 0xfb14, 0xf9a0, 0xf8e3, 0xf8fc, 0xf96c, 0xf8e3,
+ 0xf782, 0xf6d3, 0xf6af, 0xf5ae, 0xf53b, 0xf793,
+ 0xfaee, 0xfd0b, 0xfee8, 0x00f7, 0x0256, 0x0320,
+ 0x02f1, 0x00aa, 0xfce8, 0xf9bc, 0xf88f, 0xf920,
+ 0xfaaf, 0xfd46, 0x0044, 0x026c, 0x041b, 0x0602,
+ 0x072d, 0x06cd, 0x061a, 0x073e, 0x0a85, 0x0dfc,
+ 0x109b, 0x127a, 0x1280, 0x102d, 0x0cfc, 0x0a86,
+ 0x0a46, 0x0cd5, 0x101c, 0x11ee, 0x131e, 0x151a,
+ 0x16f6, 0x16f9, 0x1550, 0x12de, 0x0f47, 0x0b32,
+ 0x0945, 0x0a80, 0x0d58, 0x1067, 0x12c3, 0x1396,
+ 0x131c, 0x126b, 0x1208, 0x1177, 0x1054, 0x0f43,
+ 0x0f33, 0x1023, 0x10d7, 0x0fec, 0x0dd6, 0x0c43,
+ 0x0b66, 0x0af2, 0x0bfa, 0x0ea1, 0x1114, 0x1231,
+ 0x1210, 0x1103, 0x0fff, 0x0f5a, 0x0dcf, 0x0b3c,
+ 0x097a, 0x08e9, 0x07f0, 0x0615, 0x04ca, 0x0569,
+ 0x0766, 0x0908, 0x0a23, 0x0b99, 0x0c7c, 0x0ba2,
+ 0x0a36, 0x097b, 0x0963, 0x09c5, 0x0959, 0x067a,
+ 0x0256, 0xfebd, 0xfa9a, 0xf5e4, 0xf438, 0xf6e0,
+ 0xfa7a, 0xfd1c, 0xff38, 0xffae, 0xfe57, 0xfd58,
+ 0xfc00, 0xf83b, 0xf3af, 0xf088, 0xeec7, 0xef96,
+ 0xf411, 0xf9dd, 0xfe18, 0x0046, 0x0036, 0xfda3,
+ 0xfaad, 0xf99f, 0xf950, 0xf852, 0xf7df, 0xf88c,
+ 0xf9a2, 0xfb28, 0xfc2e, 0xfada, 0xf768, 0xf3cb,
+ 0xf266, 0xf4e3, 0xf9b1, 0xfd85, 0xff55, 0xffa4,
+ 0xfea4, 0xfd2f, 0xfbf0, 0xf992, 0xf590, 0xf2d7,
+ 0xf318, 0xf40d, 0xf54a, 0xf895, 0xfbaf, 0xfbd3,
+ 0xfad2, 0xf93b, 0xf58b, 0xf28c, 0xf2fb, 0xf3f2,
+ 0xf442, 0xf741, 0xfbd9, 0xfccf, 0xfa89, 0xf927,
+ 0xf844, 0xf64a, 0xf4ed, 0xf4a9, 0xf4a2, 0xf6ad,
+ 0xfb23, 0xfe90, 0x0032, 0x0191, 0x00b7, 0xfc44,
+ 0xf7ef, 0xf690, 0xf6b5, 0xf6eb, 0xf729, 0xf77c,
+ 0xf874, 0xfa40, 0xfc41, 0xfeff, 0x02af, 0x04a5,
+ 0x0320, 0x0095, 0xff6d, 0xff39, 0xff7a, 0x001f,
+ 0x005d, 0x0071, 0x00e4, 0x0003, 0xfda3, 0xfd61,
+ 0x0072, 0x040e, 0x074b, 0x0a49, 0x0ab7, 0x0875,
+ 0x06eb, 0x05db, 0x01fc, 0xfcce, 0xfa12, 0xf94f,
+ 0xf971, 0xfb90, 0xfe58, 0xff2f, 0xfed7, 0xfe66,
+ 0xfd23, 0xfc10, 0xfcca, 0xfe21, 0xfee3, 0x0013,
+ 0x0189, 0x01a1, 0x00a7, 0xff60, 0xfca5, 0xf94b,
+ 0xf8f5, 0xfcb1, 0x0272, 0x083a, 0x0bbd, 0x0bb8,
+ 0x09ce, 0x06ee, 0x0246, 0xfd21, 0xf9e9, 0xf8c3,
+ 0xf93d, 0xfb81, 0xfdaa, 0xfd57, 0xfbc5, 0xfa8e,
+ 0xf7d9, 0xf35f, 0xf053, 0xef8b, 0xf02c, 0xf367,
+ 0xf849, 0xfb4d, 0xfcab, 0xfe59, 0xfe9a, 0xfc68,
+ 0xfaed, 0xfb82, 0xfc02, 0xfc14, 0xfc58, 0xfb85,
+ 0xfa4a, 0xfb8b, 0xfe83, 0x006b, 0x0136, 0x0072,
+ 0xfc3e, 0xf686, 0xf358, 0xf2bc, 0xf34e, 0xf5f2,
+ 0xf9ab, 0xfb3d, 0xfa7b, 0xf8bd, 0xf617, 0xf44e,
+ 0xf4ef, 0xf5a4, 0xf59c, 0xf798, 0xfafd, 0xfc32,
+ 0xfaea, 0xf86c, 0xf4de, 0xf29e, 0xf45b, 0xf77f,
+ 0xf906, 0xfb08, 0xfe7e, 0x00e7, 0x02c7, 0x055a,
+ 0x0577, 0x0173, 0xfbea, 0xf5fb, 0xf055, 0xee8d,
+ 0xf194, 0xf5c0, 0xf9a6, 0xfe99, 0x0359, 0x062e,
+ 0x07b3, 0x077c, 0x052d, 0x03cd, 0x0487, 0x0443,
+ 0x0278, 0x0132, 0xffc6, 0xfdbb, 0xfd38, 0xfe86,
+ 0x0073, 0x033e, 0x05bf, 0x0614, 0x05ef, 0x068e,
+ 0x0599, 0x03ef, 0x04da, 0x0549, 0x0178, 0xfe43,
+ 0x0003, 0x02e5, 0x0441, 0x0576, 0x0517, 0x028f,
+ 0x01a5, 0x0216, 0x0018, 0xfd8a, 0xfd34, 0xfca1,
+ 0xfc46, 0xfffe, 0x0401, 0x01c4, 0xfbf9, 0xf7d7,
+ 0xf507, 0xf4b1, 0xfa11, 0x01b1, 0x05bd, 0x06db,
+ 0x0754, 0x064d, 0x0457, 0x0383, 0x0354, 0x02e7,
+ 0x02ee, 0x033b, 0x0351, 0x03dd, 0x0475, 0x03b9,
+ 0x0262, 0x0206, 0x0246, 0x01b3, 0xffca, 0xfddb,
+ 0xfdec, 0xfeec, 0xfd73, 0xfa69, 0xfa3f, 0xfce9,
+ 0xfefe, 0x0041, 0x010c, 0xff4f, 0xfba2, 0xf956,
+ 0xf8fe, 0xfa79, 0xff20, 0x046a, 0x05b9, 0x048e,
+ 0x0446, 0x0248, 0xfca6, 0xf793, 0xf54f, 0xf3af,
+ 0xf394, 0xf787, 0xfd43, 0x0121, 0x0248, 0xffde,
+ 0xfa79, 0xf76f, 0xfa5d, 0xff7f, 0x0266, 0x038d,
+ 0x0402, 0x0312, 0x013f, 0xff54, 0xfc66, 0xf8da,
+ 0xf77f, 0xf9b0, 0xfe8f, 0x0540, 0x0b83, 0x0db1,
+ 0x0c3a, 0x0bb7, 0x0d00, 0x0c3f, 0x08c9, 0x05d5,
+ 0x03bf, 0x0042, 0xfbda, 0xf935, 0xf943, 0xfae0,
+ 0xfca1, 0xfebc, 0x02d6, 0x077a, 0x072a, 0x008e,
+ 0xf95b, 0xf4df, 0xf07b, 0xebf0, 0xeafc, 0xee05,
+ 0xf1ef, 0xf58f, 0xf978, 0xfd84, 0x00aa, 0x0100,
+ 0xfdf9, 0xfb12, 0xfb81, 0xfd9f, 0xff80, 0x0266,
+ 0x0627, 0x0834, 0x0822, 0x0722, 0x0575, 0x03f7,
+ 0x03bf, 0x03fd, 0x03e8, 0x0406, 0x041c, 0x042a,
+ 0x05c8, 0x090f, 0x0c23, 0x0df6, 0x0d47, 0x091d,
+ 0x04ba, 0x03e2, 0x04e1, 0x05a0, 0x0790, 0x09b6,
+ 0x09cf, 0x0abd, 0x0e7d, 0x10e4, 0x1095, 0x10d0,
+ 0x10c6, 0x0f31, 0x100d, 0x137b, 0x143d, 0x133c,
+ 0x1417, 0x139f, 0x1094, 0x105d, 0x1292, 0x11ed,
+ 0x109b, 0x1221, 0x1348, 0x1364, 0x1510, 0x142c,
+ 0x0d8a, 0x0858, 0x092e, 0x0a9a, 0x0988, 0x0834,
+ 0x068d, 0x0559, 0x0867, 0x0f00, 0x1539, 0x1a8e,
+ 0x1da7, 0x1a91, 0x1243, 0x0997, 0x0288, 0xfe54,
+ 0xfef7, 0x0316, 0x0844, 0x0e09, 0x11d0, 0x1084,
+ 0x0d35, 0x0cee, 0x1028, 0x159c, 0x1b66, 0x1d8a,
+ 0x1b18, 0x1712, 0x1194, 0x0a10, 0x047f, 0x0246,
+ 0xffc0, 0xfdb8, 0xff8a, 0x0167, 0xfe5e, 0xf828,
+ 0xf0dd, 0xe93a, 0xe61e, 0xeac9, 0xf2d5, 0xfa21,
+ 0x00dd, 0x05cd, 0x0675, 0x01be, 0xf6f0, 0xea37,
+ 0xe621, 0xeed6, 0xfd19, 0x0a81, 0x14d5, 0x174c,
+ 0x0f68, 0x02c6, 0xf72f, 0xedf2, 0xe84d, 0xe70a,
+ 0xe995, 0xf0fd, 0xfc2d, 0x04b6, 0x0750, 0x067d,
+ 0x01f1, 0xf8c8, 0xf135, 0xf0e3, 0xf570, 0xfbd0,
+ 0x0300, 0x06c0, 0x04fa, 0x03df, 0x07fb, 0x0bf1,
+ 0x08d0, 0xff9f, 0xf7d4, 0xf7fd, 0xff39, 0x050a,
+ 0x016c, 0xf60a, 0xeff9, 0xfda6, 0x1e12, 0x3d02,
+ 0x44a0, 0x2f0e, 0x06cf, 0xdef4, 0xca05, 0xd111,
+ 0xf1cd, 0x1edd, 0x3f79, 0x40af, 0x2b12, 0x1211,
+ 0xf631, 0xd41c, 0xbd98, 0xc3cf, 0xded6, 0xfdae,
+ 0x153d, 0x1d34, 0x167c, 0x0a15, 0xf802, 0xe028,
+ 0xd364, 0xda82, 0xe3ec, 0xe5c5, 0xedda, 0x0215,
+ 0x18e5, 0x2c60, 0x35ff, 0x2de7, 0x1bea, 0x0b0e,
+ 0xf88d, 0xebfd, 0xf9de, 0x17d6, 0x22a6, 0x15cc,
+ 0x076d, 0xfc4b, 0xf018, 0xeb87, 0xf11d, 0xf3c1,
+ 0xe926, 0xd16a, 0xbc33, 0xc655, 0xf124, 0x114d,
+ 0x0aae, 0xf4b7, 0xe688, 0xd66b, 0xbfb3, 0xafd6,
+ 0xa85d, 0xa10b, 0x9d6e, 0xa54c, 0xba6f, 0xd8c0,
+ 0xee4c, 0xe787, 0xcf48, 0xc244, 0xc572, 0xcc3d,
+ 0xd62f, 0xe5b8, 0xf2d1, 0xfc47, 0x0a3f, 0x18de,
+ 0x1af8, 0x0d1e, 0xf3e3, 0xd5db, 0xbf3e, 0xb893,
+ 0xbc13, 0xc2fd, 0xce0c, 0xd82b, 0xd898, 0xd2cb,
+ 0xcd5c, 0xc3f4, 0xb515, 0xaddc, 0xbb28, 0xda99,
+ 0xfd36, 0x10ef, 0x0c90, 0xf911, 0xe803, 0xe1f1,
+ 0xe73c, 0xf56c, 0x01e3, 0x0387, 0x0371, 0x0efd,
+ 0x2131, 0x28c0, 0x1b61, 0x0090, 0xeded, 0xf3c4,
+ 0x0ca1, 0x24bc, 0x2c45, 0x1cf8, 0xf9e6, 0xd612,
+ 0xcb57, 0xdcdd, 0xf3f2, 0xfe3e, 0xfd06, 0xfb26,
+ 0xffdf, 0x0745, 0x0950, 0x06fd, 0x0397, 0xf86b,
+ 0xe1ce, 0xce00, 0xcd1d, 0xdc61, 0xee88, 0xfe3f,
+ 0x0e7d, 0x205b, 0x2f69, 0x347f, 0x2b92, 0x1a00,
+ 0x09ab, 0xfe64, 0xfbf5, 0x0947, 0x1dcd, 0x25e2,
+ 0x1e25, 0x0f54, 0x00a9, 0xfbc0, 0x02d9, 0x0a86,
+ 0x0a24, 0x01b4, 0xf56f, 0xeb6a, 0xe5d7, 0xe583,
+ 0xec65, 0xfa28, 0x0f19, 0x2527, 0x2d9e, 0x259c,
+ 0x1342, 0xf93b, 0xe1db, 0xd687, 0xd571, 0xe16c,
+ 0xf8c0, 0x0d4e, 0x1ac7, 0x2127, 0x19f6, 0x06dc,
+ 0xeedd, 0xda34, 0xd575, 0xe1ea, 0xf70f, 0x103d,
+ 0x2579, 0x3136, 0x39d4, 0x4144, 0x3ee7, 0x2bbd,
+ 0x0b3d, 0xece1, 0xe093, 0xea4a, 0x024f, 0x1d12,
+ 0x32aa, 0x397f, 0x2aaa, 0x16da, 0x1310, 0x1b08,
+ 0x2764, 0x3953, 0x48af, 0x4c18, 0x4419, 0x35ad,
+ 0x27a0, 0x2114, 0x2847, 0x38a7, 0x43f4, 0x4989,
+ 0x4a28, 0x3d44, 0x311e, 0x35d1, 0x40e9, 0x4fff,
+ 0x5c46, 0x53aa, 0x4bc0, 0x553c, 0x53af, 0x48a8,
+ 0x4c13, 0x537e, 0x5392, 0x48fd, 0x3133, 0x200f,
+ 0x1fa9, 0x23de, 0x294d, 0x2c7d, 0x2f68, 0x39e8,
+ 0x3e46, 0x3773, 0x2fb5, 0x212a, 0x1344, 0x0cd7,
+ 0xfa3e, 0xec0c, 0xfbbb, 0x0b15, 0x0b21, 0x0cbe,
+ 0x0a61, 0x05db, 0x06ce, 0x0123, 0xfc17, 0x033f,
+ 0x07ae, 0x05c1, 0x04fc, 0x011a, 0xfaa6, 0xf703,
+ 0xf4fe, 0xf020, 0xe9b1, 0xec64, 0xf4b5, 0xf1e6,
+ 0xea1f, 0xea2e, 0xeca6, 0xefbc, 0xf51e, 0xf65e,
+ 0xf0b0, 0xe7c8, 0xe272, 0xe3c3, 0xe659, 0xe522,
+ 0xdcb5, 0xd1fe, 0xcf69, 0xcc83, 0xc553, 0xc779,
+ 0xc88f, 0xc0d3, 0xc2aa, 0xc74b, 0xc4a8, 0xc655,
+ 0xc396, 0xbdf4, 0xc7a6, 0xcdf6, 0xc70f, 0xc60d,
+ 0xc857, 0xcc15, 0xd1a1, 0xcac2, 0xc188, 0xbdf5,
+ 0xb535, 0xb2fd, 0xb293, 0xa210, 0x9742, 0x94c1,
+ 0x8792, 0x8000, 0x8000, 0x8000, 0x85ed, 0x9190,
+ 0x9c62, 0xb1a5, 0xb543, 0xa54b, 0xa5ec, 0xaa8f,
+ 0xa7d3, 0xaf1d, 0xb331, 0xafde, 0xb08b, 0xaacd,
+ 0xa9ad, 0xb6c9, 0xb970, 0xb42b, 0xb482, 0xb38b,
+ 0xbb76, 0xcadb, 0xce07, 0xd0e7, 0xdf29, 0xed4a,
+ 0xf01e, 0xdd37, 0xc62a, 0xc649, 0xc9ba, 0xc4cc,
+ 0xce2b, 0xdbf1, 0xde63, 0xe14d, 0xe0b3, 0xdcae,
+ 0xea7a, 0x005d, 0x021c, 0xf38c, 0xe78a, 0xe224,
+ 0xe21b, 0xe620, 0xe699, 0xe80c, 0xf457, 0xf871,
+ 0xef0a, 0xf1c4, 0xed72, 0xd168, 0xd0a6, 0xed2b,
+ 0xf330, 0xee7a, 0xef03, 0xe492, 0xe221, 0xeb32,
+ 0xe9a0, 0xee42, 0xfe32, 0x065a, 0x0a21, 0x0624,
+ 0xfd4d, 0x033a, 0x0b8e, 0x0f51, 0x16a0, 0x0cca,
+ 0xfb19, 0xfe54, 0x00e7, 0xfe20, 0x0476, 0xfc73,
+ 0xf226, 0x0276, 0x0b07, 0xffe1, 0xfbe3, 0xf1f1,
+ 0xe142, 0xe455, 0xec38, 0xe569, 0xdced, 0xd9ad,
+ 0xd82f, 0xd752, 0xd830, 0xde40, 0xe514, 0xe8d0,
+ 0xeddd, 0xef3c, 0xeb69, 0xf22a, 0x0341, 0x0a8e,
+ 0x06f4, 0x08c0, 0x11ca, 0x19be, 0x2224, 0x2af6,
+ 0x2a97, 0x2259, 0x1e70, 0x1e15, 0x12c3, 0xf921,
+ 0xe4f2, 0xe599, 0xf181, 0xfe19, 0x0a95, 0x141f,
+ 0x1666, 0x0d37, 0x064d, 0x14f1, 0x1c32, 0x0663,
+ 0xfe8a, 0x0887, 0xfcb1, 0xf087, 0xfb1a, 0x0ab2,
+ 0x2083, 0x31bb, 0x3215, 0x3b2f, 0x4535, 0x3cf1,
+ 0x37ac, 0x327c, 0x2ad6, 0x30e6, 0x2ca4, 0x1fcb,
+ 0x1f54, 0x0bf9, 0xf90d, 0x0b25, 0x12d9, 0x17ce,
+ 0x3a9b, 0x3d9a, 0x2801, 0x30eb, 0x2e66, 0x27ff,
+ 0x458d, 0x491a, 0x3231, 0x40ba, 0x4f10, 0x42e1,
+ 0x4611, 0x506b, 0x4d62, 0x4db8, 0x533f, 0x50e0,
+ 0x4af3, 0x503f, 0x50f9, 0x38ae, 0x2fbf, 0x4a0f,
+ 0x5881, 0x59bb, 0x6000, 0x5534, 0x4bcc, 0x56e5,
+ 0x54fb, 0x4b7f, 0x530f, 0x5e60, 0x68b3, 0x7461,
+ 0x7ece, 0x7fff, 0x72bb, 0x64a9, 0x63b5, 0x4ed0,
+ 0x446b, 0x5ec8, 0x5e75, 0x4a03, 0x4e39, 0x4603,
+ 0x3a20, 0x4439, 0x3941, 0x2ce7, 0x3662, 0x2599,
+ 0x1931, 0x3327, 0x3b18, 0x2e2e, 0x1fa5, 0x0715,
+ 0x0984, 0x1712, 0x013f, 0x042c, 0x2df9, 0x369e,
+ 0x310b, 0x3d4d, 0x3bac, 0x358b, 0x3ab6, 0x39c8,
+ 0x3ba0, 0x42b8, 0x3db8, 0x360a, 0x33c0, 0x2a52,
+ 0x17a3, 0x0743, 0xfde6, 0xf1f2, 0xea44, 0xffd0,
+ 0x2124, 0x2678, 0x1cdc, 0x23b7, 0x2f09, 0x22bb,
+ 0x0422, 0xf6d6, 0x06a3, 0x171c, 0x17c9, 0x12e7,
+ 0x1432, 0x2236, 0x300c, 0x3092, 0x3ad7, 0x5444,
+ 0x57ec, 0x4a34, 0x4d69, 0x4db8, 0x3637, 0x2bea,
+ 0x386e, 0x2f71, 0x1502, 0x1513, 0x1c8f, 0x0a65,
+ 0xffdb, 0x0b5f, 0x0afd, 0x079e, 0x13d4, 0x1906,
+ 0x1d0e, 0x2e1d, 0x2ec4, 0x25d0, 0x389f, 0x4a70,
+ 0x3931, 0x27fa, 0x2c70, 0x29c0, 0x1b2a, 0x14e9,
+ 0x1234, 0x1066, 0x1626, 0x12fb, 0x0fb3, 0x265c,
+ 0x3325, 0x25a5, 0x2845, 0x2868, 0x1192, 0x0e40,
+ 0x0a71, 0xedba, 0xec0c, 0xf938, 0xf062, 0xf4df,
+ 0x0075, 0x028e, 0x1e4b, 0x33b3, 0x1e37, 0x11f1,
+ 0x145a, 0x0033, 0xef31, 0xeeb2, 0xe626, 0xe533,
+ 0xfaa2, 0x042a, 0xfd56, 0x0ad3, 0x1596, 0xf858,
+ 0xe092, 0xe417, 0xde23, 0xdd94, 0xe71d, 0xd8e6,
+ 0xcf7d, 0xdc5e, 0xdfcb, 0xdff7, 0xdd2a, 0xd564,
+ 0xe121, 0xe33b, 0xd758, 0xec11, 0xf426, 0xd84d,
+ 0xd87a, 0xdb1e, 0xc1b9, 0xc177, 0xd48d, 0xdfeb,
+ 0xe855, 0xdf8a, 0xdc5a, 0xed3d, 0xf1ca, 0xfc0e,
+ 0x019a, 0xd7fa, 0xbbdf, 0xc548, 0xc1a2, 0xcfe5,
+ 0xeb78, 0xe117, 0xe709, 0x0164, 0xe920, 0xcdb0,
+ 0xd872, 0xdb42, 0xe8a2, 0x0692, 0xf5fe, 0xd5d1,
+ 0xde62, 0xdcdf, 0xccd2, 0xe7d9, 0xf78f, 0xd1cc,
+ 0xcd2e, 0xef00, 0xf1a3, 0xf315, 0x0223, 0x009b,
+ 0x0b8a, 0x165f, 0x0876, 0x10a7, 0x12a6, 0xf161,
+ 0xf80a, 0x0b27, 0xedcc, 0xeb3c, 0x0d63, 0x148e,
+ 0x1e61, 0x3966, 0x3fff, 0x3780, 0x3347, 0x31a5,
+ 0x1e0c, 0x054d, 0x1593, 0x1fea, 0xfbb5, 0xfa18,
+ 0x1067, 0xfb9a, 0xfdc6, 0x1a07, 0x071b, 0xf6e0,
+ 0x00ab, 0xfa0b, 0x05ba, 0x16ce, 0xf9a6, 0xeab1,
+ 0x0046, 0xf5fb, 0xdcbc, 0xe3ca, 0xe59a, 0xcfc3,
+ 0xcfe4, 0xe08b, 0xd1f5, 0xc0ba, 0xd68d, 0xe7e8,
+ 0xe347, 0xf04d, 0xf8fc, 0xe122, 0xd74a, 0xe877,
+ 0xe11d, 0xc27c, 0xbc26, 0xc04f, 0xb4b8, 0xc2df,
+ 0xea03, 0xec84, 0xd8cf, 0xce5b, 0xbbc0, 0xb6e1,
+ 0xc2f4, 0xbb0e, 0xba88, 0xc46d, 0xb169, 0xa968,
+ 0xbd63, 0xc163, 0xc217, 0xcb46, 0xd113, 0xdc6a,
+ 0xd98a, 0xca32, 0xc9eb, 0xbf57, 0xb6d5, 0xc8da,
+ 0xbf4a, 0xab8c, 0xc28a, 0xccce, 0xc287, 0xd197,
+ 0xd4fb, 0xc9fc, 0xd81e, 0xe1d8, 0xd8cf, 0xcf4e,
+ 0xbf1e, 0xb6c2, 0xbe93, 0xbc50, 0xb4b3, 0xbaa8,
+ 0xc3c6, 0xc96c, 0xd86e, 0xf2a6, 0x0204, 0xffb8,
+ 0xfe80, 0xfe06, 0xf8fb, 0xf83c, 0xf632, 0xf4ce,
+ 0xfc9c, 0xfe90, 0xfc50, 0x0079, 0x0428, 0x1366,
+ 0x24cf, 0x18e4, 0x0de1, 0x163b, 0x0f38, 0x0a53,
+ 0x1af7, 0x1e77, 0x1adc, 0x23ca, 0x24b3, 0x2262,
+ 0x29b0, 0x2c84, 0x2f51, 0x3409, 0x27c6, 0x18e9,
+ 0x218e, 0x2f61, 0x2cd4, 0x2bf5, 0x3822, 0x3d53,
+ 0x3680, 0x3195, 0x2dda, 0x25f7, 0x18fa, 0x0923,
+ 0x00ef, 0xfe3f, 0xfaac, 0xff2f, 0x045d, 0x03b0,
+ 0x0f4b, 0x1d0b, 0x1e0a, 0x25d6, 0x2a79, 0x1aea,
+ 0x129f, 0x112e, 0x000d, 0xf28d, 0xf02d, 0xe63c,
+ 0xde86, 0xe6f2, 0xf622, 0x034c, 0x0917, 0x02b4,
+ 0xfbfb, 0x0598, 0x0edf, 0x018d, 0xf4de, 0xf327,
+ 0xe121, 0xd09d, 0xd890, 0xd81b, 0xd091, 0xdab4,
+ 0xd91a, 0xc401, 0xbbac, 0xbff3, 0xcafe, 0xdc15,
+ 0xe21c, 0xdd97, 0xd63b, 0xccf3, 0xcf61, 0xd7d6,
+ 0xd9fc, 0xdfc8, 0xd620, 0xb7b3, 0xbc07, 0xdbd5,
+ 0xdb4c, 0xd092, 0xd1fb, 0xbd05, 0xaaea, 0xc0c7,
+ 0xd68f, 0xdb05, 0xe57b, 0xeaa7, 0xe669, 0xe980,
+ 0xed21, 0xedc6, 0xefd6, 0xed4e, 0xeb18, 0xeac0,
+ 0xea97, 0xf4d9, 0xf73e, 0xebe4, 0xfd33, 0x1345,
+ 0xfa3e, 0xe9e7, 0x026b, 0x02d9, 0xf042, 0xfc93,
+ 0x0c20, 0x0ae8, 0x18ff, 0x332c, 0x349c, 0x2153,
+ 0x2021, 0x2989, 0x1b09, 0x0e9e, 0x1496, 0x0801,
+ 0x00a6, 0x1bd5, 0x265b, 0x1e95, 0x24db, 0x166b,
+ 0xfdc8, 0x0b9d, 0x232f, 0x2b9d, 0x2a04, 0x1334,
+ 0x032f, 0x0a85, 0x05f5, 0xff82, 0x0445, 0xfaf5,
+ 0xf47e, 0xfb90, 0x009c, 0x18fc, 0x35c0, 0x3573,
+ 0x35e4, 0x2d88, 0x06e4, 0x0246, 0x1a80, 0x04ba,
+ 0xe7f5, 0xf49e, 0x0008, 0x0337, 0x125e, 0x1bd9,
+ 0x1ded, 0x1aaf, 0x0661, 0xfa95, 0x0c0c, 0x1879,
+ 0x07e9, 0xf2c9, 0xf00d, 0xeee2, 0xdba5, 0xd2ff,
+ 0xe709, 0xee04, 0xea36, 0x077a, 0x17a1, 0xf850,
+ 0xfa5c, 0x22f6, 0x1df3, 0x07e4, 0x16d2, 0x1e93,
+ 0x11f4, 0x125e, 0x131b, 0x04dd, 0xf689, 0xf31c,
+ 0xf780, 0xfdc5, 0x0cc1, 0x172f, 0x0491, 0xfbc2,
+ 0x10b4, 0x0cbc, 0xfe9a, 0x11ce, 0x1b4b, 0x14e9,
+ 0x1f0e, 0x1b4b, 0x05f9, 0xf9a9, 0xeed2, 0xedda,
+ 0xf001, 0xea39, 0x03aa, 0x1ff3, 0x11a0, 0x1e60,
+ 0x4a0d, 0x462b, 0x32f1, 0x33ae, 0x2a3d, 0x2165,
+ 0x123c, 0xedd6, 0xdbe9, 0xd81a, 0xd433, 0xf2a6,
+ 0x1c06, 0x3035, 0x46e2, 0x4c41, 0x3155, 0x276a,
+ 0x2d40, 0x17cc, 0xf670, 0xeef2, 0xfce2, 0x0601,
+ 0x0b83, 0x153e, 0x0a6e, 0xee75, 0xf0a7, 0x1227,
+ 0x2a36, 0x2457, 0x0744, 0xf278, 0xf5fc, 0xfba1,
+ 0xff95, 0x09e9, 0x0b19, 0x093a, 0x1691, 0x1a91,
+ 0x03bc, 0xf5c4, 0x049a, 0x0f75, 0x093a, 0x11ae,
+ 0x2b0f, 0x2c0f, 0x0f1f, 0x0655, 0x1ff6, 0x22f0,
+ 0x0796, 0x0ccf, 0x254a, 0x231d, 0x255f, 0x24a6,
+ 0xfc3d, 0xdeb5, 0xe1f1, 0xea2c, 0x0317, 0x095b,
+ 0xed97, 0xff2d, 0x1d19, 0x029b, 0x072a, 0x35e9,
+ 0x2ccd, 0x121d, 0x1a9f, 0x18f1, 0x13f2, 0x2452,
+ 0x27e0, 0x1601, 0x0992, 0x07ac, 0xff38, 0xf70d,
+ 0x0c71, 0x261b, 0x2376, 0x2476, 0x25ce, 0x1618,
+ 0x1adc, 0x1b8f, 0x019d, 0x0ca9, 0x1e9d, 0x079a,
+ 0x0e2b, 0x25cd, 0x1556, 0x06c2, 0xf619, 0xdf66,
+ 0xf872, 0x18ee, 0x20c9, 0x2b22, 0x1f9f, 0x1a80,
+ 0x2955, 0x0eb3, 0x13de, 0x4af8, 0x2ca7, 0xfeb0,
+ 0x1596, 0xffc2, 0xdcf0, 0xeac1, 0xd8db, 0xdb42,
+ 0x1098, 0x0fe0, 0x0a9e, 0x2ef7, 0x2944, 0x1ac1,
+ 0x2bbb, 0x2680, 0x1cf3, 0x216f, 0x15b9, 0x0766,
+ 0xff00, 0xf33a, 0xe9ff, 0xea02, 0x0004, 0x18f8,
+ 0x21d8, 0x3a3d, 0x5002, 0x444d, 0x3c94, 0x2920,
+ 0xf792, 0xed66, 0x046b, 0x0398, 0x0187, 0x0403,
+ 0x00ac, 0x0b7d, 0x0f70, 0x0fa6, 0x2d21, 0x33bc,
+ 0x0c8a, 0xf91b, 0xffbe, 0x082d, 0x1093, 0x026d,
+ 0xf90c, 0x11ef, 0x0ee0, 0xf8ad, 0x0fbb, 0x16ac,
+ 0xf5ac, 0xfc43, 0x0c9a, 0xfa0c, 0xfd9e, 0x136c,
+ 0x16bb, 0x17a0, 0x0cdc, 0x0299, 0x1766, 0x1eee,
+ 0x1091, 0x165c, 0x18ac, 0x142b, 0x2065, 0x1377,
+ 0xf3a5, 0xfbea, 0x0e9e, 0x06d6, 0x09cd, 0x1fdb,
+ 0x2209, 0x0e9a, 0x0ae7, 0x1c59, 0x26a5, 0x269f,
+ 0x1d2b, 0x018c, 0xf480, 0x0787, 0x107e, 0x0962,
+ 0x0ace, 0x041d, 0xf2c4, 0xf3aa, 0x00cd, 0x03b7,
+ 0x017a, 0xfefc, 0xf460, 0xee8e, 0xfcf0, 0x0b20,
+ 0x0fd1, 0x1ef0, 0x2c18, 0x2329, 0x164c, 0x1027,
+ 0x0e2a, 0x1597, 0x1e3a, 0x2585, 0x2d07, 0x1bda,
+ 0xfef2, 0x0b11, 0x2451, 0x1286, 0x0029, 0x09b8,
+ 0xfeed, 0xf5ce, 0x138c, 0x20b2, 0x1e33, 0x2b20,
+ 0x0cdf, 0xe1ee, 0xf624, 0xf996, 0xd6a5, 0xddd9,
+ 0xe902, 0xec8f, 0x14fd, 0x192b, 0xf4fa, 0x01f5,
+ 0x1ac3, 0x1bcd, 0x2814, 0x25c8, 0x10b7, 0x10d4,
+ 0x1bf3, 0x1f09, 0x139f, 0x0397, 0x0d78, 0x1cde,
+ 0x0fb7, 0xfdf7, 0xfe32, 0x0c8f, 0x213f, 0x2dcf,
+ 0x29d3, 0x1cc9, 0x1988, 0x1cbd, 0x172a, 0x22ef,
+ 0x3698, 0x2019, 0x07fc, 0x11c2, 0x18ee, 0x2cca,
+ 0x3e10, 0x1b92, 0x0966, 0x1cb1, 0x0a8b, 0xf6a1,
+ 0x05a4, 0x05b1, 0x00fe, 0x0257, 0xed0e, 0xe220,
+ 0xf0d2, 0xeeba, 0xe749, 0xf708, 0x008e, 0xfef9,
+ 0x144e, 0x1fc5, 0x04e5, 0x098d, 0x3282, 0x3532,
+ 0x2ba2, 0x3286, 0x20bb, 0x0bfb, 0x01c7, 0xdedf,
+ 0xc7be, 0xdc45, 0xf2d3, 0xf1bd, 0xe840, 0xf0b8,
+ 0xfd30, 0xf2db, 0xf3cd, 0x00b8, 0xf7f9, 0xf95f,
+ 0xfc6d, 0xe3a3, 0xe150, 0xeda8, 0xe0c7, 0xe06e,
+ 0xeede, 0xf86b, 0x077c, 0x0ea9, 0x154b, 0x1922,
+ 0x08d9, 0x1330, 0x2622, 0x0cde, 0xffa2, 0xf393,
+ 0xc5b3, 0xce77, 0xf464, 0xe290, 0xdb12, 0xecd4,
+ 0xeaac, 0xf09c, 0xf59d, 0xf3a3, 0xfea0, 0xef07,
+ 0xdc02, 0xf459, 0x011c, 0xf998, 0xfb77, 0xed84,
+ 0xe4b0, 0xf246, 0xf0f0, 0xf1b4, 0xff65, 0xf582,
+ 0xe436, 0xe1ac, 0xdafb, 0xd3da, 0xd842, 0xde96,
+ 0xe17c, 0xe456, 0xe670, 0xe203, 0xd939, 0xd332,
+ 0xd08d, 0xdcc4, 0xfc85, 0x108c, 0x0a84, 0x02eb,
+ 0x025e, 0x03c6, 0x0c57, 0x1343, 0x09b9, 0xf96a,
+ 0xefe9, 0xeb08, 0xeaff, 0xefe3, 0xeb2c, 0xda30,
+ 0xd280, 0xd264, 0xc30d, 0xbd03, 0xda7e, 0xe961,
+ 0xd91e, 0xe2a0, 0xef11, 0xd09a, 0xc0a8, 0xd1d2,
+ 0xd75f, 0xdea6, 0xdf91, 0xc052, 0xb54f, 0xced1,
+ 0xde95, 0xe318, 0xe4e0, 0xda8f, 0xc164, 0xa812,
+ 0xb463, 0xcc49, 0xb9e3, 0xb400, 0xd467, 0xd869,
+ 0xd1ac, 0xe4c5, 0xeff8, 0xf45f, 0xf721, 0xe76d,
+ 0xd856, 0xcee2, 0xc425, 0xc2b5, 0xc36f, 0xc87b,
+ 0xd260, 0xd161, 0xdb23, 0xefe8, 0xef96, 0xf241,
+ 0xfe9a, 0xf032, 0xe380, 0xfb70, 0x0a47, 0xe9cf,
+ 0xc6fa, 0xcb53, 0xcd9c, 0xc1f4, 0xd510, 0xdc8e,
+ 0xb9ed, 0xc328, 0xf57e, 0xf686, 0xdb27, 0xde1a,
+ 0xee09, 0xeaaa, 0xe1ee, 0xf08c, 0xfab7, 0xe489,
+ 0xd44c, 0xd527, 0xd471, 0xda10, 0xd99e, 0xd032,
+ 0xcec6, 0xcc37, 0xd7ab, 0xef1f, 0xec6e, 0xebdc,
+ 0xeef9, 0xcd51, 0xbd41, 0xc84b, 0xb78d, 0xbbd4,
+ 0xd626, 0xc2d7, 0xb4c9, 0xcaf9, 0xd2bb, 0xd117,
+ 0xc9f4, 0xc4c9, 0xe852, 0x01bd, 0xe405, 0xd3c2,
+ 0xe9af, 0xf8c5, 0xf359, 0xe076, 0xd34e, 0xd81d,
+ 0xdf0d, 0xea02, 0xf81e, 0xf09d, 0xe3eb, 0xe999,
+ 0xe80b, 0xde47, 0xe320, 0xe08b, 0xd47a, 0xe030,
+ 0xe7db, 0xcbed, 0xb25d, 0xa662, 0x9613, 0x9965,
+ 0xb026, 0xb9ea, 0xc01f, 0xce5f, 0xd516, 0xd517,
+ 0xda75, 0xe390, 0xe11a, 0xd2d2, 0xd19c, 0xd593,
+ 0xc4b4, 0xb203, 0xa795, 0x9dc9, 0xab42, 0xbef3,
+ 0xb5b4, 0xb6f2, 0xce18, 0xcd69, 0xc808, 0xd822,
+ 0xe301, 0xe6a6, 0xe11d, 0xc984, 0xc59a, 0xd8cf,
+ 0xdce9, 0xe0d9, 0xf0b7, 0xf379, 0xe51f, 0xcd33,
+ 0xc641, 0xe00d, 0xe8e3, 0xd736, 0xd321, 0xca30,
+ 0xbf40, 0xceac, 0xd291, 0xcb4d, 0xdadd, 0xe43f,
+ 0xe540, 0xea8a, 0xe15c, 0xe5f6, 0xfb64, 0xfb49,
+ 0xfba6, 0xfabc, 0xe686, 0xe62a, 0xeb36, 0xe06f,
+ 0xe649, 0xe3b0, 0xdbed, 0xf8b1, 0x0141, 0xec96,
+ 0xf2bc, 0xed86, 0xdb84, 0xe678, 0xe462, 0xdd19,
+ 0xf057, 0xe6ba, 0xcb3d, 0xd1ab, 0xd0dc, 0xbc0c,
+ 0xc006, 0xd6ed, 0xe3f5, 0xe48e, 0xe7ca, 0xf4ea,
+ 0xfc2a, 0xfc43, 0x002e, 0xfea8, 0xfc4b, 0x05d4,
+ 0x08af, 0xfc6a, 0xf01f, 0xe249, 0xd946, 0xe778,
+ 0xf5ed, 0xee0a, 0xe9e7, 0xedb0, 0xe8ac, 0xf010,
+ 0xffe9, 0xf5b6, 0xe123, 0xd74c, 0xd242, 0xdce1,
+ 0xf2a7, 0xfa45, 0xf707, 0xf6c6, 0xf741, 0xf2fd,
+ 0xf516, 0x0388, 0xffd6, 0xea17, 0xe70f, 0xe5a3,
+ 0xdc42, 0xe43b, 0xe417, 0xd89d, 0xdc63, 0xd918,
+ 0xe50f, 0x114d, 0x13ae, 0xf79a, 0xfaae, 0xf763,
+ 0xe63a, 0xe57b, 0xe5a3, 0xed06, 0xf215, 0xe03e,
+ 0xe508, 0xf9cc, 0xeda2, 0xe95e, 0xff50, 0xfef7,
+ 0xf17e, 0xf458, 0xfa0e, 0xfdd6, 0x0684, 0x08f3,
+ 0x05ab, 0x0c27, 0x0b21, 0xf753, 0xf313, 0xfc7b,
+ 0xfb8a, 0xffde, 0xfa96, 0xe16d, 0xde73, 0xe56d,
+ 0xe477, 0xf9b6, 0x096b, 0xfe46, 0xf655, 0xebc2,
+ 0xef3d, 0x0fec, 0x1c63, 0x1ce9, 0x2767, 0x1553,
+ 0xfbf1, 0xf587, 0xe8f3, 0xed70, 0x032f, 0xfddd,
+ 0xf0d6, 0xf20a, 0xf83e, 0x06d5, 0x0b06, 0xfc5f,
+ 0xf633, 0xf97a, 0xf695, 0xf02d, 0xf581, 0x0549,
+ 0x03a0, 0xfc25, 0x0962, 0x0cbc, 0x05de, 0x15e9,
+ 0x24ba, 0x2327, 0x18e2, 0xfd96, 0xefd1, 0xfba0,
+ 0xff25, 0x0cfa, 0x27fd, 0x2579, 0x1c31, 0x1a62,
+ 0x0185, 0xf5a0, 0x0697, 0xfcba, 0xecee, 0x019b,
+ 0x0804, 0xf251, 0xf293, 0xfc48, 0xfbd4, 0x0971,
+ 0x1423, 0x1025, 0x2072, 0x3245, 0x28ae, 0x26f0,
+ 0x2d74, 0x1de1, 0x0ba2, 0x0224, 0xf8e9, 0xfdf4,
+ 0x0a17, 0x05e9, 0xf908, 0xf1a2, 0xf2c1, 0xfab5,
+ 0x0052, 0x0392, 0x0f72, 0x20dc, 0x2698, 0x19ea,
+ 0x0684, 0xfa4d, 0xf924, 0xfa4d, 0xf677, 0xfca8,
+ 0x0f0e, 0x1355, 0x1361, 0x2236, 0x23f6, 0x1cd8,
+ 0x25c9, 0x1dd1, 0x08a0, 0x161b, 0x2ae4, 0x27c5,
+ 0x226a, 0x14dc, 0x0117, 0x014f, 0x0792, 0x0d64,
+ 0x1953, 0x1490, 0x084c, 0x07cb, 0x0135, 0x01e7,
+ 0x141a, 0x19eb, 0x1c6c, 0x23e3, 0x1eee, 0x1e7a,
+ 0x14f9, 0xf2e6, 0xf048, 0x00db, 0xf367, 0xf9f4,
+ 0x1277, 0x05ba, 0xfe6c, 0x02e1, 0xe925, 0xe466,
+ 0xffba, 0x01b3, 0x01df, 0x1123, 0x0d9d, 0x0f80,
+ 0x22c2, 0x1b94, 0x0812, 0x0edb, 0x1391, 0x02fc,
+ 0x02cb, 0x1b3b, 0x2c06, 0x2fc8, 0x2e2b, 0x2142,
+ 0x0cf2, 0xfd93, 0xf8f9, 0xf878, 0xf452, 0xfbd3,
+ 0x158f, 0x2e38, 0x3eac, 0x4285, 0x3c9c, 0x39e7,
+ 0x23d9, 0x01e6, 0x04bd, 0x0ec3, 0x054a, 0x0be3,
+ 0x0e06, 0x0b3b, 0x2b56, 0x36c2, 0x18b2, 0x10a3,
+ 0x0ece, 0x031c, 0x0cde, 0x1829, 0x1c8e, 0x1dd0,
+ 0x084d, 0xf9ff, 0xfb99, 0xebc2, 0xeab4, 0x04b4,
+ 0x09d7, 0xfe36, 0xfca8, 0x029f, 0x077b, 0x06b8,
+ 0x08f3, 0x0723, 0xfa75, 0xff9b, 0x0dff, 0x0e54,
+ 0x134d, 0x0ab8, 0xf199, 0xfcf8, 0x1309, 0x1031,
+ 0x1afa, 0x2112, 0x07d8, 0xfc10, 0xff2b, 0xfc68,
+ 0x0378, 0x087f, 0x04f5, 0x0fc7, 0x1d03, 0x17ec,
+ 0x088b, 0xfc2c, 0xf8ea, 0xf887, 0xfe27, 0x14fe,
+ 0x22da, 0x142f, 0x0918, 0x0ed8, 0x155b, 0x1d10,
+ 0x1d94, 0x136d, 0x1786, 0x1f43, 0x0f52, 0x015a,
+ 0x0619, 0x0749, 0x0670, 0x0977, 0x03cc, 0xfc3c,
+ 0x0147, 0x1042, 0x1781, 0x09bc, 0xfea0, 0x0771,
+ 0x0886, 0xff69, 0x05c7, 0x11a5, 0x0ea0, 0xfff8,
+ 0xf827, 0x01d4, 0x0c3a, 0x10d5, 0x1854, 0x186f,
+ 0x199d, 0x285c, 0x297e, 0x1a4c, 0x149c, 0x1d37,
+ 0x3176, 0x38e8, 0x2567, 0x1c15, 0x1f6f, 0x175e,
+ 0x1b0e, 0x2dbb, 0x3009, 0x2052, 0x138f, 0x18bf,
+ 0x1dc5, 0x1426, 0x162e, 0x16ef, 0x000c, 0xf7b9,
+ 0xfce4, 0xf816, 0x025f, 0x153c, 0x23c3, 0x37d6,
+ 0x3732, 0x247c, 0x1730, 0x07aa, 0x0c62, 0x14c8,
+ 0xf53d, 0xe80e, 0xfb51, 0xf695, 0xfc14, 0x0ffd,
+ 0x0ac2, 0x104f, 0x1451, 0x0263, 0x10c6, 0x20e5,
+ 0x1480, 0x260f, 0x34d5, 0x1afe, 0x1613, 0x221d,
+ 0x1ac3, 0x164c, 0x1738, 0x15c8, 0x1430, 0x0ba7,
+ 0x08ad, 0x0cd3, 0x0eb4, 0x1a20, 0x1e0d, 0x0f0b,
+ 0x10f2, 0x1e9d, 0x1d7f, 0x1f50, 0x254c, 0x2055,
+ 0x1aca, 0x1578, 0x0b18, 0x03b6, 0xfe4c, 0xf544,
+ 0xe941, 0xe366, 0xef94, 0xff43, 0x0320, 0x08ac,
+ 0x0ab1, 0x0179, 0x0883, 0x1a14, 0x176d, 0x0d76,
+ 0x021a, 0xf024, 0xf43e, 0x0815, 0x096e, 0x08ba,
+ 0x0de2, 0x005d, 0xea66, 0xe2ad, 0xe97c, 0xf269,
+ 0xefac, 0xee80, 0xfae3, 0x00a9, 0xfe0c, 0xff63,
+ 0x04f9, 0x151f, 0x2013, 0x1a76, 0x225f, 0x2ae3,
+ 0x1abd, 0x17f9, 0x1add, 0xfe07, 0xebf0, 0xf24c,
+ 0xee2e, 0xfa2a, 0x192e, 0x1ee0, 0x22b6, 0x35bb,
+ 0x2d2a, 0x181f, 0x1dbb, 0x2206, 0x154c, 0x0e84,
+ 0x08ca, 0xfc67, 0xf3b3, 0xef04, 0xf5b0, 0x06de,
+ 0x083c, 0x00b6, 0x03db, 0x0059, 0xff99, 0x17ae,
+ 0x29fb, 0x2888, 0x1eed, 0xfb32, 0xd14c, 0xcf0a,
+ 0xe0a9, 0xede9, 0xfb96, 0xfa4c, 0xf266, 0xfbf9,
+ 0x03de, 0x0639, 0x13e0, 0x18d6, 0x0e10, 0x0580,
+ 0xfe9f, 0x0130, 0x0cf7, 0x08b1, 0x008e, 0x07d2,
+ 0x0aa4, 0x09d0, 0x0ffd, 0x1003, 0x11d7, 0x1d7b,
+ 0x1f4f, 0x11a2, 0xfda5, 0xf79e, 0x0bcf, 0x1508,
+ 0x07f3, 0x0e77, 0x1c2b, 0x143a, 0x0e4c, 0x0708,
+ 0xf1be, 0xee6e, 0xfc1b, 0xfc8a, 0xf7e4, 0xf85d,
+ 0xf51f, 0xef0b, 0xed19, 0xf186, 0xf540, 0xf403,
+ 0xfb24, 0x09f3, 0x0863, 0xf61f, 0xeacc, 0xec08,
+ 0xf002, 0xf19b, 0xeedd, 0xeb9b, 0xecef, 0xed6f,
+ 0xece8, 0xef26, 0xec73, 0xee2e, 0x0295, 0x124a,
+ 0x1082, 0x0e66, 0x0862, 0xfcc9, 0xf96f, 0xf992,
+ 0xf8ba, 0xf6f1, 0xf2b6, 0xfacb, 0x0b36, 0x0ca6,
+ 0x0009, 0xec9d, 0xe2ea, 0xf66d, 0x0f8f, 0x1b90,
+ 0x23f0, 0x22bf, 0x208b, 0x22f5, 0x13ea, 0x093f,
+ 0x1341, 0x04d5, 0xe0c6, 0xd2c2, 0xd3a3, 0xd21b,
+ 0xd1d4, 0xd827, 0xec10, 0x0447, 0x08bb, 0xf6d5,
+ 0xece0, 0xfb20, 0x0254, 0xf7ac, 0xf42c, 0xef22,
+ 0xe490, 0xe372, 0xd94b, 0xcd0c, 0xd202, 0xc926,
+ 0xb9ee, 0xc510, 0xd39c, 0xdcdf, 0xe9b6, 0xf284,
+ 0xfdb3, 0xfa72, 0xe443, 0xe979, 0xf980, 0xee3f,
+ 0xef25, 0x045a, 0x02f1, 0xec0d, 0xdc36, 0xe144,
+ 0xee2c, 0xf4d5, 0xfd32, 0xfdb0, 0xf74c, 0x034d,
+ 0x0bad, 0x0495, 0x0a7f, 0x08dc, 0xf595, 0xf1a4,
+ 0xf0a8, 0xe724, 0xe669, 0xe71d, 0xe9ee, 0xef2c,
+ 0xe460, 0xd971, 0xdea6, 0xe3b8, 0xe7ff, 0xf27b,
+ 0xfc1b, 0xfc76, 0xf20d, 0xe74b, 0xe05b, 0xdd5d,
+ 0xe4c3, 0xea77, 0xeb09, 0xf4dc, 0xf69d, 0xea57,
+ 0xe95e, 0xedad, 0xf0af, 0xfb84, 0xfc92, 0xf0dd,
+ 0xed8a, 0xf031, 0xf0a5, 0xf5ae, 0x06ab, 0x156f,
+ 0x0a34, 0xf919, 0xf99d, 0xf37f, 0xeb01, 0xf8df,
+ 0x0038, 0xedfd, 0xddea, 0xe11a, 0xf04f, 0xfc2f,
+ 0x0365, 0x0b14, 0x0662, 0xfa10, 0xf374, 0xe796,
+ 0xe513, 0xfa31, 0x0932, 0x0da3, 0x08c0, 0xe691,
+ 0xcca7, 0xd755, 0xd9dd, 0xd3bf, 0xe179, 0xea5c,
+ 0xeab4, 0xf3f0, 0xf14f, 0xe43a, 0xe72d, 0xee35,
+ 0xec01, 0xee4a, 0xf308, 0xea85, 0xdc05, 0xdeff,
+ 0xf173, 0xf3cd, 0xe043, 0xd419, 0xd85d, 0xe31a,
+ 0xf212, 0xf8aa, 0xf2c0, 0xf804, 0x04a0, 0xfd1a,
+ 0xf117, 0xfa23, 0x04d3, 0xfe9b, 0xf63d, 0xf2f5,
+ 0xe958, 0xdf6a, 0xe68d, 0xf31d, 0xf0f5, 0xeeaa,
+ 0xfaa5, 0xfff2, 0xf494, 0xed08, 0xed49, 0xe80f,
+ 0xe195, 0xe3f3, 0xf0d6, 0x0208, 0x0180, 0xebf4,
+ 0xe14d, 0xe622, 0xe608, 0xe490, 0xe064, 0xd86e,
+ 0xe256, 0xefe9, 0xe373, 0xd351, 0xd59d, 0xdd63,
+ 0xde86, 0xd44e, 0xc906, 0xcc46, 0xd8be, 0xe37f,
+ 0xe1fd, 0xd586, 0xd7eb, 0xe75f, 0xe97c, 0xe48d,
+ 0xe246, 0xdf18, 0xe2b5, 0xea6d, 0xee49, 0xef1c,
+ 0xe562, 0xd8c6, 0xde38, 0xecdf, 0xf3ba, 0xf76b,
+ 0xfdd2, 0x022b, 0x00ea, 0xfcd7, 0xf70b, 0xf76d,
+ 0x053e, 0x081d, 0xf84b, 0xf8b2, 0x0143, 0xf5d8,
+ 0xed9e, 0xed76, 0xe198, 0xdcbf, 0xeb36, 0xfe78,
+ 0x0e9c, 0x177c, 0x19e3, 0x1146, 0xfc02, 0xef03,
+ 0xea47, 0xe4b2, 0xebb7, 0xeec7, 0xe19f, 0xdf62,
+ 0xdd8d, 0xd2c5, 0xdd5e, 0xebae, 0xe47e, 0xe1ef,
+ 0xe7ee, 0xe9df, 0xf31b, 0x00ad, 0x005c, 0xf4f1,
+ 0xf484, 0xfbe4, 0xef4c, 0xe270, 0xf022, 0xf313,
+ 0xe487, 0xe9db, 0xf40b, 0xf7c7, 0x0947, 0x131d,
+ 0x08e1, 0x0689, 0x06e5, 0xf907, 0xec8a, 0xe8eb,
+ 0xe7d2, 0xef98, 0xfeec, 0x086d, 0x10f1, 0x1bcd,
+ 0x17c2, 0x0e78, 0x163a, 0x1867, 0x0750, 0xfe02,
+ 0xfd94, 0xfaef, 0x0368, 0x0f0d, 0x07f9, 0xf80c,
+ 0xef05, 0xebcb, 0xedfa, 0xf478, 0xf633, 0xf374,
+ 0xf9d2, 0x0477, 0xfd86, 0xece1, 0xe9a2, 0xe6f6,
+ 0xd828, 0xd782, 0xe993, 0xeea1, 0xeae6, 0xf2b8,
+ 0xf766, 0xfc24, 0x0e49, 0x0dd7, 0xf9ff, 0xf8dc,
+ 0xf24b, 0xd707, 0xda4d, 0xf65f, 0xfef2, 0x0702,
+ 0x16f7, 0x1187, 0x05f0, 0x0a87, 0x0a6a, 0x01d4,
+ 0x042a, 0x0802, 0x0119, 0xfc6a, 0xfa88, 0xf34f,
+ 0xf46f, 0x0321, 0x0b0b, 0x0197, 0xf5b7, 0xf803,
+ 0xfdf4, 0xfb49, 0x02d1, 0x13db, 0x12e5, 0x0863,
+ 0x0312, 0xfebd, 0x0307, 0x0037, 0xe6cb, 0xdba7,
+ 0xe2bd, 0xdc60, 0xda51, 0xe48e, 0xe40f, 0xe165,
+ 0xe1e6, 0xe40f, 0xf885, 0x0c96, 0x078c, 0xfee2,
+ 0xf620, 0xdeb9, 0xd15b, 0xde7d, 0xed49, 0xf13c,
+ 0xf37c, 0xefa6, 0xe1d6, 0xd901, 0xd948, 0xdcb0,
+ 0xeb7d, 0xffa7, 0x049d, 0x02af, 0x07f5, 0x0c70,
+ 0x0b1f, 0x0536, 0xfcdc, 0xf593, 0xedaa, 0xef8b,
+ 0x02ae, 0x0fc2, 0x12de, 0x1b5d, 0x10d5, 0xefea,
+ 0xe79e, 0xf2bf, 0xeded, 0xed65, 0xfb82, 0xfd2a,
+ 0xf90f, 0xff7a, 0x06c1, 0x0e73, 0x1423, 0x0d17,
+ 0x0596, 0x020d, 0xf4af, 0xead7, 0xefa9, 0xedea,
+ 0xe4b0, 0xe714, 0xeec9, 0xf287, 0xf679, 0xf51f,
+ 0xf037, 0xf5bf, 0xfce3, 0xfcd6, 0x055a, 0x109b,
+ 0x0b24, 0x0165, 0xfe8e, 0xfb5b, 0xf4df, 0xe6b6,
+ 0xdef0, 0xf1c9, 0x054b, 0x097a, 0x147f, 0x1902,
+ 0x0bc8, 0x0875, 0x09b2, 0x0392, 0x080b, 0x0e2d,
+ 0x08dc, 0x0308, 0xf805, 0xe9d4, 0xea59, 0xf1ca,
+ 0xf4c0, 0xfcb6, 0x0c0d, 0x14da, 0x100a, 0x07a0,
+ 0xff75, 0xf803, 0x0091, 0x1035, 0x0cf4, 0x043e,
+ 0x035f, 0xfffd, 0x0063, 0x00cb, 0xf569, 0xf035,
+ 0xf559, 0xf71f, 0xf9d5, 0xfaf7, 0xf8d4, 0xfcde,
+ 0xfd82, 0xf6cc, 0xf26a, 0xebfa, 0xea10, 0xf528,
+ 0xfb68, 0xf789, 0xf363, 0xee22, 0xee5e, 0xf75f,
+ 0xfc1d, 0xfa59, 0xf7ab, 0xf6f7, 0xfe05, 0x07f3,
+ 0x0b5c, 0x0c1d, 0x0c7f, 0x0a20, 0x05c1, 0xfaa3,
+ 0xeb88, 0xe794, 0xeb7b, 0xebbd, 0xf08d, 0xfa11,
+ 0xfa4a, 0xf9e2, 0x04f1, 0x0b5a, 0x029b, 0xf950,
+ 0xf88b, 0xfd15, 0x0686, 0x0f57, 0x0a8f, 0xfa84,
+ 0xf076, 0xf0d7, 0xf2df, 0xf6c1, 0x012a, 0x067a,
+ 0xfa5a, 0xec6d, 0xe9c2, 0xe417, 0xdf3f, 0xe906,
+ 0xf099, 0xf5d0, 0x04f9, 0x0461, 0xf3df, 0xf412,
+ 0xfc16, 0x015f, 0x08d5, 0x0298, 0xf60e, 0xf354,
+ 0xeed8, 0xeea2, 0xf346, 0xee0f, 0xf0c8, 0xfc75,
+ 0xffcb, 0x06bf, 0x097c, 0x0383, 0x0dbb, 0x1544,
+ 0x0ccb, 0x0df7, 0x08d7, 0xf5fe, 0xf347, 0xf9c4,
+ 0x0146, 0x0f5a, 0x1472, 0x128e, 0x0e79, 0x01c3,
+ 0xfc5d, 0xf92c, 0xec08, 0xf04b, 0x00d7, 0x0071,
+ 0xfe12, 0x030b, 0x0492, 0x06ab, 0x08e0, 0x0913,
+ 0x0814, 0xff74, 0xf698, 0xf782, 0xf915, 0xf47b,
+ 0xee2d, 0xedef, 0xf56d, 0xfbc7, 0xfc96, 0xfa1e,
+ 0xfb95, 0x088f, 0x1110, 0x075f, 0x0062, 0x0849,
+ 0x10a7, 0x0d9e, 0xfe64, 0xf36a, 0xfbd7, 0x0aca,
+ 0x0f16, 0x08c0, 0x05de, 0x10b4, 0x191e, 0x147d,
+ 0x1050, 0x0c27, 0x05bc, 0x0517, 0x0365, 0x02f6,
+ 0x0b10, 0x0c84, 0x09a1, 0x0dec, 0x0cc1, 0x09ad,
+ 0x0eff, 0x0eea, 0x07e1, 0x012f, 0xfad0, 0xfd76,
+ 0x01e7, 0xf815, 0xef85, 0xf605, 0xfff8, 0x0489,
+ 0x026e, 0x001f, 0x0222, 0xfbc6, 0xf0e3, 0xf7f6,
+ 0x06f2, 0x0730, 0x00d6, 0xfe35, 0xf9df, 0xf3ba,
+ 0xedfc, 0xe960, 0xea45, 0xe8eb, 0xde2d, 0xe127,
+ 0xfaed, 0x06f6, 0xfc1e, 0xfe1c, 0x0dbc, 0x10d2,
+ 0x0cfe, 0x0c31, 0x058a, 0xf88a, 0xecc0, 0xea49,
+ 0xf579, 0x0143, 0x06e9, 0x0ef0, 0x0eda, 0x0115,
+ 0xfcb8, 0x0220, 0xffda, 0xfce9, 0xfcfa, 0xfd15,
+ 0x0363, 0x0185, 0xf2ba, 0xf3a4, 0xfbc7, 0xf12b,
+ 0xe950, 0xecf9, 0xeb06, 0xf128, 0x0070, 0x01ba,
+ 0xfe47, 0xff58, 0xfbcf, 0xfc0c, 0xfcbb, 0xf12d,
+ 0xebee, 0xf22c, 0xefd7, 0xeace, 0xed8a, 0xf195,
+ 0xf606, 0xf653, 0xf2fa, 0xfaef, 0x055a, 0x02df,
+ 0x0270, 0x078d, 0x027b, 0xfba6, 0xfd93, 0xf955,
+ 0xeb1b, 0xe609, 0xec5d, 0xefc4, 0xf5f5, 0x030c,
+ 0x034a, 0xf9a7, 0xf9e9, 0xfd73, 0x0462, 0x1393,
+ 0x1608, 0x0e48, 0x092c, 0xf3d5, 0xdeb9, 0xeb5a,
+ 0xff76, 0x0616, 0x08b2, 0x018f, 0xfe26, 0x0980,
+ 0x072f, 0xf9d7, 0xf938, 0xfa3a, 0xfa04, 0xfd35,
+ 0xf7ed, 0xf4bf, 0xfe10, 0x006c, 0xfb34, 0xff0b,
+ 0x074e, 0x0b87, 0x0c25, 0x0658, 0xfab2, 0xf21c,
+ 0xf225, 0xf843, 0xfd6c, 0xfc2c, 0xfac7, 0xff1a,
+ 0xfee5, 0xfaa8, 0xfe52, 0xfefb, 0xf90b, 0xffc7,
+ 0x0c23, 0x0c9e, 0x0753, 0x0203, 0x00f5, 0x079b,
+ 0x0d66, 0x1038, 0x0d1d, 0xfcef, 0xee3a, 0xef32,
+ 0xfa51, 0x0763, 0x0fea, 0x16d5, 0x1b75, 0x12de,
+ 0x08de, 0x06e5, 0x02b4, 0x04fb, 0x0bca, 0x089d,
+ 0x06f3, 0xfeee, 0xeb0c, 0xeab8, 0xf1ca, 0xee82,
+ 0xfcc7, 0x09b7, 0x0031, 0x04df, 0x100a, 0x0730,
+ 0x0278, 0x0831, 0x0a06, 0x08d6, 0x021a, 0xfbe9,
+ 0xfe12, 0x01f4, 0x0781, 0x0be2, 0x06f5, 0xfdf6,
+ 0xf838, 0xf758, 0xf5f6, 0xf239, 0xf862, 0x027e,
+ 0x0033, 0xf972, 0xf288, 0xec3c, 0xf3b2, 0x0118,
+ 0x0475, 0xfff0, 0xf971, 0xfa93, 0x0198, 0x01e9,
+ 0x0372, 0x0834, 0x0189, 0xf587, 0xf0ff, 0xf3d6,
+ 0xf9a1, 0xfd59, 0xfe90, 0xf84f, 0xecd4, 0xef27,
+ 0xf882, 0xfa31, 0xfdfb, 0xfd51, 0xf7b1, 0xfe23,
+ 0xfee4, 0xf7ca, 0xff0e, 0x00cd, 0xf9b9, 0xfc40,
+ 0xf504, 0xee1f, 0xfed8, 0x07ea, 0x02b1, 0x0111,
+ 0xf594, 0xeaf8, 0xf293, 0xf8c2, 0xf8f4, 0xf88f,
+ 0xf342, 0xf2d8, 0xf517, 0xeee1, 0xec58, 0xf2a5,
+ 0xfa53, 0x018c, 0xff31, 0xf36b, 0xeea4, 0xf25b,
+ 0xf6fb, 0xf921, 0xf6a3, 0xf696, 0xfaec, 0xfb7b,
+ 0xfc47, 0xfcf7, 0xf506, 0xf089, 0xf76f, 0xff17,
+ 0x064c, 0x0a2a, 0x08cc, 0x0dee, 0x11c4, 0x0bf3,
+ 0x0b6c, 0x0a6b, 0x02c1, 0x04b7, 0x07c5, 0x045b,
+ 0x0615, 0x012e, 0xf83f, 0x005c, 0x0995, 0x07d3,
+ 0x05f7, 0x042b, 0x0a52, 0x169e, 0x13dd, 0x0a6e,
+ 0x091d, 0x096d, 0x0bd0, 0x0e89, 0x0c05, 0x0813,
+ 0x034f, 0x01a0, 0x0452, 0x02e5, 0x033b, 0x09ae,
+ 0x0d37, 0x0e67, 0x0c27, 0x0539, 0xff5a, 0xf669,
+ 0xf2b2, 0x0048, 0x0a1f, 0x04fc, 0xff96, 0xfc01,
+ 0xfb6f, 0x0139, 0x054b, 0x04fb, 0x0349, 0x03e2,
+ 0x08ce, 0x09d6, 0x0543, 0x014f, 0xfc80, 0xf5b7,
+ 0xee65, 0xeea9, 0xfc6f, 0x03d7, 0xfd48, 0xfd72,
+ 0x038f, 0x0666, 0x0813, 0x01a7, 0xf8e9, 0xfaeb,
+ 0xffe6, 0x0268, 0x00d8, 0xf938, 0xf44a, 0xf005,
+ 0xec7f, 0xf7e6, 0x061d, 0x073f, 0x065b, 0x054b,
+ 0xfff4, 0xfd62, 0xff01, 0x02bf, 0x031c, 0xfbaa,
+ 0xf690, 0xf557, 0xee54, 0xe89f, 0xec27, 0xef10,
+ 0xea85, 0xe5c3, 0xe650, 0xea02, 0xf207, 0xfc01,
+ 0xff44, 0xfdbc, 0xf99c, 0xf4d9, 0xfb31, 0x00e8,
+ 0xf6aa, 0xf330, 0xfa81, 0xf862, 0xf838, 0xfe89,
+ 0xfe07, 0x01d4, 0x0b43, 0x0799, 0xfb3d, 0xf788,
+ 0xfd84, 0xfdd8, 0xf40d, 0xf019, 0xf1bb, 0xf055,
+ 0xf4bd, 0xfa3e, 0xf957, 0xfe5b, 0x04a7, 0x0285,
+ 0x01a2, 0x0127, 0xfd71, 0xfde3, 0x001e, 0x014b,
+ 0x045c, 0x04ee, 0x0052, 0xfc46, 0xff6c, 0x0679,
+ 0x06c4, 0x045c, 0x06ca, 0x04cd, 0xfda0, 0xfc63,
+ 0xff9a, 0x01d8, 0x01ea, 0xfee7, 0xfcac, 0xfba1,
+ 0xf794, 0xf72d, 0x00c5, 0x0952, 0x0877, 0x078f,
+ 0x0b6f, 0x0e39, 0x0f9a, 0x0cd6, 0x02e9, 0xfec3,
+ 0x03cd, 0x039a, 0x0003, 0x0245, 0x04f1, 0x0296,
+ 0xfcf1, 0xfb6d, 0x02b1, 0x0749, 0x02fa, 0x0162,
+ 0x0609, 0x0a2c, 0x0af9, 0x069e, 0xfdfe, 0xf7af,
+ 0xf7bf, 0xfb65, 0x0036, 0x04cc, 0x02a1, 0xfe64,
+ 0x05ff, 0x0e3b, 0x0c0e, 0x10ec, 0x1b47, 0x19ce,
+ 0x1273, 0x0901, 0x006c, 0x0392, 0x05ae, 0xff0f,
+ 0xfdcc, 0xfda5, 0xfd88, 0x0400, 0xffcc, 0xf46f,
+ 0xf91e, 0x019f, 0x03e6, 0x0af3, 0x110c, 0x1384,
+ 0x16fa, 0x1273, 0x0a37, 0x091d, 0x05c2, 0xfe88,
+ 0xfce6, 0xfd00, 0xfbc6, 0xfb70, 0xfa31, 0xfdfa,
+ 0x093d, 0x0d07, 0x0565, 0xff3b, 0xfe5a, 0x0081,
+ 0x02f1, 0xffcd, 0xfbc2, 0xfda0, 0xfefb, 0xfcb4,
+ 0xf963, 0xf60b, 0xf783, 0xfb37, 0xfbc6, 0xfefd,
+ 0x01d1, 0x00e6, 0x0718, 0x0aac, 0xfe12, 0xf5ce,
+ 0xfc4a, 0x025f, 0x0685, 0x0b4b, 0x0ba0, 0x08a1,
+ 0x0332, 0xfc08, 0xf8b1, 0xf9bc, 0xfb43, 0xfa95,
+ 0xf864, 0xf7de, 0xf6b6, 0xf2f0, 0xf0fa, 0xf168,
+ 0xf313, 0xf677, 0xfa1f, 0x01c6, 0x0cd9, 0x0eac,
+ 0x06ef, 0x0081, 0xfd07, 0xfd56, 0x001d, 0xfdf8,
+ 0xfbf6, 0xffca, 0xfedd, 0xf7f2, 0xf572, 0xf611,
+ 0xf6d7, 0xfa4c, 0xfef6, 0x05bc, 0x0dc4, 0x0ea5,
+ 0x09f7, 0x0529, 0xfb28, 0xef6e, 0xed48, 0xf357,
+ 0xfb01, 0xfef2, 0xfcc5, 0xfc75, 0x01b9, 0x06af,
+ 0x0ba8, 0x0f47, 0x0ce2, 0x0b4a, 0x0d7c, 0x0a42,
+ 0x02c7, 0x01c5, 0x06fa, 0x086d, 0x01e8, 0xfa13,
+ 0xf84f, 0xfa1d, 0xf79c, 0xf2f4, 0xf5fc, 0xfbd9,
+ 0xf9a7, 0xf880, 0x011b, 0x08d6, 0x091b, 0x043c,
+ 0xfcc2, 0xfb2d, 0x0233, 0x068e, 0x00e0, 0xf686,
+ 0xf30d, 0xfaaa, 0x02bf, 0x02f7, 0x007c, 0x010e,
+ 0x02f4, 0x0219, 0xfdcb, 0xf737, 0xf12f, 0xf294,
+ 0xf94f, 0xfaa6, 0xf9a8, 0xfadf, 0xf5eb, 0xeeb9,
+ 0xf1aa, 0xfb17, 0x02e8, 0x05e2, 0x02a7, 0xff86,
+ 0x03a9, 0x0ca4, 0x1212, 0x1075, 0x0eb7, 0x0e91,
+ 0x0885, 0x00fc, 0xffa3, 0xffd7, 0x013a, 0x0412,
+ 0xffa5, 0xf723, 0xf49c, 0xf504, 0xf6a0, 0xfa2e,
+ 0xf815, 0xf4f3, 0xfd07, 0x05f6, 0x04f2, 0x0397,
+ 0x01f8, 0xfa25, 0xf7b5, 0xff1a, 0x057f, 0x0876,
+ 0x0742, 0xff28, 0xf799, 0xf6e7, 0xfb60, 0x011f,
+ 0x00c9, 0xf925, 0xf2bf, 0xf19e, 0xf5a2, 0xff28,
+ 0x09d0, 0x0f98, 0x0e20, 0x0891, 0x04b6, 0x008c,
+ 0xf906, 0xf5aa, 0xf80e, 0xf6ea, 0xf329, 0xf319,
+ 0xf4d3, 0xf8a4, 0xff63, 0x033c, 0x0499, 0x06dd,
+ 0x0692, 0x0598, 0x072a, 0x06de, 0x062a, 0x05e5,
+ 0xfefa, 0xf720, 0xf83a, 0xfc11, 0xfcc3, 0xfb82,
+ 0xf72a, 0xf100, 0xec5c, 0xeb26, 0xee4a, 0xf203,
+ 0xf435, 0xf8fa, 0xff51, 0x00f7, 0xfcac, 0xf63d,
+ 0xf297, 0xf3e8, 0xf570, 0xf192, 0xed7e, 0xf180,
+ 0xf9ab, 0xffa7, 0x021d, 0xfd68, 0xf4fc, 0xf08b,
+ 0xed5a, 0xede3, 0xf598, 0xf7d6, 0xf399, 0xf3ae,
+ 0xf2bd, 0xef89, 0xf16a, 0xf282, 0xf0b5, 0xf1ba,
+ 0xf257, 0xf2a7, 0xf8ea, 0x0361, 0x0b43, 0x0b70,
+ 0x03bd, 0xf989, 0xf2cb, 0xf409, 0xfbce, 0xffa7,
+ 0xf9ab, 0xf35d, 0xf4f6, 0xf71b, 0xf79f, 0xfdb9,
+ 0x016c, 0xfd4c, 0xfd10, 0xfda6, 0xf9fc, 0xfe05,
+ 0x02cd, 0xfbd5, 0xf6ed, 0xf913, 0xf702, 0xf33a,
+ 0xf4ae, 0xf82e, 0xf673, 0xf0a2, 0xf19a, 0xf718,
+ 0xf5b3, 0xf420, 0xfaf4, 0x00e9, 0xfefc, 0xfa1e,
+ 0xf56c, 0xf125, 0xf292, 0xf9af, 0xfdd5, 0xff25,
+ 0xfeca, 0xf946, 0xf98f, 0x01bf, 0xfe21, 0xf25b,
+ 0xf125, 0xf588, 0xf67a, 0xf665, 0xf923, 0xfe39,
+ 0xff91, 0x0051, 0x07b3, 0x0e2c, 0x0d24, 0x04af,
+ 0xf8dd, 0xf7f4, 0xff1f, 0xfc84, 0xf4b8, 0xf0ea,
+ 0xf15b, 0xf9c4, 0x01f6, 0x00f3, 0xfcc8, 0xf508,
+ 0xeab8, 0xe994, 0xf131, 0xf746, 0xf813, 0xf96b,
+ 0xffb6, 0x01c9, 0xfd1d, 0xfbe2, 0xfae6, 0xf4e3,
+ 0xf00d, 0xec4a, 0xe904, 0xecc4, 0xf729, 0x0035,
+ 0x023d, 0xff8f, 0xfc5b, 0xf845, 0xf5a5, 0xf64d,
+ 0xf7dd, 0xfb47, 0xfe63, 0xfd82, 0xfa02, 0xf2de,
+ 0xedc9, 0xf135, 0xf211, 0xef21, 0xf3fb, 0xf9c5,
+ 0xfa4c, 0xfbd0, 0xfcb5, 0xfc60, 0xfde9, 0xfdb4,
+ 0xfb34, 0xfa56, 0xfc73, 0xffab, 0xff37, 0xfa2c,
+ 0xf641, 0xf97a, 0x01ca, 0x054b, 0x02c0, 0xfef1,
+ 0xf71d, 0xeedf, 0xed19, 0xede8, 0xef8a, 0xef33,
+ 0xe943, 0xe84a, 0xee28, 0xefad, 0xefef, 0xf473,
+ 0xfab4, 0xffbc, 0xfdf3, 0xf89d, 0xf7e6, 0xf8f4,
+ 0xfb0d, 0xfd9f, 0xfa1e, 0xf447, 0xf0f4, 0xedc3,
+ 0xec8f, 0xec95, 0xeaf5, 0xeae3, 0xee6a, 0xf56c,
+ 0xfcc3, 0xffee, 0xffc6, 0xfb66, 0xf58e, 0xf7bb,
+ 0xfd07, 0xfd26, 0xfe42, 0x018a, 0x028f, 0x03e0,
+ 0x06df, 0x0995, 0x08c9, 0x0233, 0xfaff, 0xf8bf,
+ 0xf932, 0xf741, 0xf329, 0xf301, 0xf858, 0x0099,
+ 0x0a0e, 0x0d01, 0x06dd, 0x01e3, 0x00be, 0xff30,
+ 0xfe2c, 0xfeef, 0x02bc, 0x06a1, 0x056b, 0x0415,
+ 0x0437, 0x00e6, 0xffb9, 0x012d, 0xfaa2, 0xef3f,
+ 0xebcb, 0xf125, 0xf7d3, 0xff2f, 0x0812, 0x0914,
+ 0x01fa, 0x00fa, 0x054f, 0x06e3, 0x07ec, 0x05e4,
+ 0xfffe, 0xfef6, 0x0340, 0x0622, 0x02fc, 0xfb50,
+ 0xf7c5, 0xfa82, 0x01e9, 0x0cf4, 0x0e0d, 0x0202,
+ 0xfd2b, 0x02f1, 0x059e, 0x06f0, 0x0c2b, 0x0eae,
+ 0x08e4, 0xfef7, 0xf88d, 0xf901, 0xfe6e, 0x0177,
+ 0xfe0c, 0xfd51, 0x021f, 0x0187, 0xfc71, 0xfafb,
+ 0xfb57, 0xfbaa, 0xfb7a, 0xfb7f, 0x0101, 0x06b1,
+ 0x03ef, 0x0202, 0x07ac, 0x0a5d, 0x06c0, 0x047c,
+ 0x0376, 0x014e, 0xfff0, 0xfbb7, 0xf472, 0xf37f,
+ 0xf72a, 0xf7bf, 0xf93d, 0xfc4c, 0xfcab, 0xfe5a,
+ 0x0236, 0x041c, 0x040f, 0x02c0, 0x02fc, 0x0626,
+ 0x069d, 0x02ef, 0xfe3b, 0xf9f0, 0xf8fa, 0xfa44,
+ 0xfa0a, 0xf9d4, 0xf9fc, 0xfb5d, 0x0148, 0x076f,
+ 0x0b28, 0x0ffe, 0x0fb6, 0x063b, 0xfe22, 0xf9ec,
+ 0xf569, 0xf804, 0x018f, 0x0598, 0x03f3, 0x010e,
+ 0xfd64, 0xfe4d, 0xff86, 0xf941, 0xf419, 0xf2ea,
+ 0xf341, 0xfc35, 0x04ed, 0x03d8, 0x0563, 0x073b,
+ 0x0284, 0x03e9, 0x06df, 0xffda, 0xf90a, 0xf794,
+ 0xfa97, 0x02ff, 0x06d6, 0x03f4, 0x01d9, 0xfe7a,
+ 0xfc66, 0x00d0, 0x030f, 0xfc77, 0xf48c, 0xf568,
+ 0xfbed, 0xfbd1, 0xf640, 0xf437, 0xf608, 0xfcaf,
+ 0x0722, 0x0d02, 0x0d96, 0x0bed, 0x05f0, 0xfff2,
+ 0x020a, 0x08bc, 0x0a4a, 0x061a, 0x0184, 0xfda1,
+ 0xfaeb, 0xf93c, 0xf6c8, 0xf871, 0xff2b, 0x01eb,
+ 0x0181, 0x0372, 0x0425, 0x0244, 0xff23, 0xfc11,
+ 0xfcd8, 0xfc6d, 0xf598, 0xf2cc, 0xfb28, 0x04ec,
+ 0x04bf, 0xfd7e, 0xfc0b, 0x0114, 0x0287, 0x00bd,
+ 0xff1e, 0xfc38, 0xfb27, 0xfc5e, 0xfc90, 0xff5f,
+ 0x0443, 0x046f, 0x0409, 0x07fd, 0x07e6, 0x01dc,
+ 0x001f, 0x031b, 0x0304, 0xfe04, 0xf7c0, 0xf6e5,
+ 0xfa1d, 0xf7a6, 0xf473, 0xf9eb, 0xffd3, 0x0171,
+ 0x0541, 0x0aca, 0x0e65, 0x0f1e, 0x0d6c, 0x0c3b,
+ 0x0d17, 0x0fa9, 0x0eb1, 0x047c, 0xf967, 0xf5fa,
+ 0xf791, 0xfd09, 0x02b2, 0x062a, 0x0ae9, 0x0976,
+ 0x00f3, 0xfe44, 0xfe73, 0xfdee, 0x00fa, 0x013d,
+ 0x0178, 0x0529, 0x0178, 0xff86, 0x09d7, 0x1152,
+ 0x1107, 0x0c64, 0x01f5, 0xfb9b, 0xfd8b, 0x01d1,
+ 0x077c, 0x08ff, 0x0476, 0x01a9, 0x030c, 0x0813,
+ 0x0941, 0xfeff, 0xf641, 0xf8ba, 0xfded, 0x00e6,
+ 0x0154, 0x02ac, 0x077c, 0x06a0, 0x02c4, 0x09f7,
+ 0x1537, 0x184e, 0x1511, 0x0cdc, 0x0366, 0x0115,
+ 0x04b2, 0x077e, 0x08fe, 0x0a40, 0x07e7, 0x01ea,
+ 0xfe2f, 0xfe6a, 0x00ba, 0x0470, 0x070c, 0x073b,
+ 0x0603, 0x03ee, 0x0187, 0xfd1d, 0xf8ad, 0xfa9a,
+ 0xfdf9, 0xfb59, 0xf78f, 0xf69e, 0xf96b, 0x016c,
+ 0x092a, 0x0d9e, 0x11e0, 0x1277, 0x0bd2, 0x031e,
+ 0xfd12, 0xf8c1, 0xf610, 0xf78c, 0xfafa, 0xfb35,
+ 0xf8b3, 0xf749, 0xfb30, 0x01cd, 0x00d2, 0xfbfc,
+ 0xfd73, 0xfef1, 0xfe9e, 0x023c, 0x03bd, 0x0241,
+ 0x020c, 0xff40, 0xfe95, 0x049c, 0x0922, 0x0ad3,
+ 0x0af3, 0x0662, 0x0270, 0x02f6, 0x03b3, 0x041d,
+ 0x047c, 0x00e5, 0xf93b, 0xf641, 0xfb7f, 0xfdec,
+ 0xfb38, 0xfd50, 0x0235, 0x0597, 0x08da, 0x0748,
+ 0x0262, 0x00d8, 0xff0b, 0xfb2f, 0xf810, 0xf628,
+ 0xf738, 0xf855, 0xf815, 0xfc81, 0x0211, 0x03c5,
+ 0x068a, 0x07a1, 0x0304, 0xff53, 0xfe42, 0xfe15,
+ 0x01d6, 0x0661, 0x04dc, 0xffaa, 0xfd1a, 0xfdcc,
+ 0x0039, 0x0332, 0x02b3, 0xfe8e, 0xfcea, 0xff14,
+ 0x0253, 0x055f, 0x05ab, 0x04bc, 0x066d, 0x07db,
+ 0x074a, 0x07f0, 0x0a75, 0x0cda, 0x0b1c, 0x0595,
+ 0x04a6, 0x0a32, 0x101a, 0x129f, 0x0f53, 0x0a54,
+ 0x0a77, 0x099d, 0x0459, 0x04ea, 0x0add, 0x0ab9,
+ 0x0327, 0xfb70, 0xfaa3, 0x004f, 0x037d, 0x022a,
+ 0x0220, 0x0327, 0x0326, 0x03d1, 0x0761, 0x0e5e,
+ 0x11c7, 0x0b5a, 0x033c, 0x012c, 0x012b, 0xfe7c,
+ 0xf8bc, 0xf58a, 0xf746, 0xf4ea, 0xf130, 0xf7da,
+ 0x008c, 0x02a8, 0x03fb, 0x0467, 0x04d2, 0x0617,
+ 0xff95, 0xf747, 0xf8c6, 0xfbd5, 0xf9b9, 0xf441,
+ 0xed2a, 0xec39, 0xf049, 0xf0b3, 0xf3d2, 0xfddb,
+ 0x04fa, 0x058f, 0x052e, 0x0786, 0x083e, 0x03b2,
+ 0x008e, 0xfea2, 0xf73a, 0xf1b8, 0xf2c0, 0xf336,
+ 0xf3c3, 0xf673, 0xf8cc, 0xfc0a, 0xfdc3, 0xfb0e,
+ 0xf94b, 0xfacf, 0xf9fb, 0xf302, 0xebca, 0xed73,
+ 0xf4f0, 0xf9a2, 0xfbc5, 0xfd5b, 0xfdd4, 0xfd1d,
+ 0xfa78, 0xf6dc, 0xf335, 0xefcb, 0xefb5, 0xf110,
+ 0xf0e2, 0xf4c1, 0xfa0c, 0xf6b5, 0xf140, 0xf318,
+ 0xf6a6, 0xf96e, 0xff58, 0x049f, 0x0600, 0x0604,
+ 0x0395, 0xff5c, 0xff38, 0x0184, 0x00a7, 0xfd53,
+ 0xf921, 0xf753, 0xfb12, 0xfe50, 0xff87, 0x05ba,
+ 0x0cd7, 0x0e7c, 0x0d14, 0x0717, 0xff57, 0xff21,
+ 0x0167, 0xff96, 0x007b, 0x0505, 0x06fe, 0x04a9,
+ 0xfdca, 0xf7a6, 0xf93c, 0xfe32, 0x0065, 0x0035,
+ 0xfe33, 0xfcfc, 0xfe3c, 0xfeb3, 0xff98, 0x030a,
+ 0x04c3, 0x03c5, 0x018d, 0xfca6, 0xf7d2, 0xf5d4,
+ 0xf46a, 0xf406, 0xf54a, 0xf78a, 0xfcd9, 0x016d,
+ 0xffba, 0xfd67, 0xfeed, 0xffe7, 0xff01, 0xfd74,
+ 0xfca0, 0xff97, 0x028e, 0xfff9, 0xfd42, 0xfdd0,
+ 0xfb81, 0xf7e2, 0xfa29, 0xffd3, 0x04bd, 0x099a,
+ 0x0c31, 0x0bc7, 0x0ae8, 0x06a2, 0xfdc0, 0xf64c,
+ 0xf1b8, 0xed87, 0xec24, 0xef3f, 0xf3b2, 0xf756,
+ 0xface, 0xfe37, 0x0073, 0x008b, 0xfe8e, 0xfe04,
+ 0x014d, 0x012d, 0xf85c, 0xee54, 0xe866, 0xe638,
+ 0xea6e, 0xf224, 0xf6f9, 0xf9c9, 0xfaf1, 0xfa30,
+ 0xfbe1, 0xfed2, 0xfd5f, 0xf8c7, 0xf634, 0xf658,
+ 0xf4a4, 0xf081, 0xf0d6, 0xf708, 0xfc35, 0xfd31,
+ 0xfcc5, 0xfd94, 0xfeed, 0x0096, 0x046d, 0x0710,
+ 0x0490, 0x0018, 0xfae8, 0xf59b, 0xf44b, 0xf4b4,
+ 0xf530, 0xfa74, 0x00c1, 0x0152, 0xfeae, 0xfcfe,
+ 0xfd5d, 0xfd91, 0xfc02, 0xfcde, 0xfe52, 0xfaa8,
+ 0xf8b7, 0xfcb5, 0xfe0a, 0xfc76, 0xfda1, 0xfd09,
+ 0xf8c6, 0xf7c6, 0xf930, 0xf806, 0xf92d, 0xfdc5,
+ 0xfd13, 0xf873, 0xf6e2, 0xf6c1, 0xf85f, 0xfd20,
+ 0x00fe, 0x0310, 0x01f3, 0xfd19, 0xfbac, 0xfd22,
+ 0xfc24, 0xfd0d, 0xff63, 0xfe15, 0xfbcc, 0xfaa6,
+ 0xfc76, 0x00cb, 0x00ab, 0xfe78, 0xfe90, 0xfbc5,
+ 0xf9cb, 0xfc0c, 0xfad8, 0xf8be, 0xf9ed, 0xf958,
+ 0xf8ce, 0xf99e, 0xf99a, 0xfd46, 0x036d, 0x0732,
+ 0x0931, 0x0668, 0x0020, 0xfc4a, 0xf7c3, 0xf355,
+ 0xf2cc, 0xf141, 0xf1ec, 0xf8de, 0xfd15, 0x016c,
+ 0x0cd9, 0x11ff, 0x0b87, 0x051f, 0xffef, 0xfb0c,
+ 0xfb6c, 0xfbb3, 0xf775, 0xf504, 0xf4bc, 0xf4aa,
+ 0xf930, 0x00cf, 0x0799, 0x0f73, 0x14b4, 0x1172,
+ 0x0acc, 0x06c6, 0x0363, 0x0071, 0x012a, 0x02ae,
+ 0xff25, 0xf92b, 0xf7ab, 0xfba7, 0x0282, 0x0890,
+ 0x0aa3, 0x0a9b, 0x0a57, 0x09e8, 0x0bca, 0x0d72,
+ 0x0a68, 0x06bc, 0x03ee, 0xff61, 0xfdd9, 0x019c,
+ 0x0517, 0x0653, 0x06aa, 0x056e, 0x025f, 0x0157,
+ 0x0459, 0x040a, 0xfe8e, 0xfcc4, 0xfc64, 0xf805,
+ 0xf744, 0xfb5a, 0xfed5, 0x02f5, 0x056a, 0x03e6,
+ 0x01cc, 0xfe8b, 0xfc4e, 0xfec7, 0x00ed, 0x00c0,
+ 0x0101, 0x0246, 0x0689, 0x0a4c, 0x096c, 0x098e,
+ 0x0965, 0x034b, 0xfea7, 0xfece, 0xfdab, 0xfd49,
+ 0x0110, 0x0511, 0x068d, 0x070c, 0x0810, 0x082d,
+ 0x078c, 0x0a0e, 0x0dd1, 0x0d3a, 0x09ef, 0x07c6,
+ 0x05f8, 0x02b2, 0xfefb, 0xfedb, 0x0337, 0x0792,
+ 0x0a21, 0x0c3d, 0x0c5d, 0x091a, 0x05b3, 0x05d4,
+ 0x07b2, 0x0734, 0x03e9, 0xffd1, 0xfd88, 0xfd66,
+ 0xfb81, 0xf89d, 0xf9bc, 0xfd8c, 0x0281, 0x07fb,
+ 0x0749, 0x0199, 0xff58, 0xfd1a, 0xf7b6, 0xf5f9,
+ 0xf727, 0xf5be, 0xf385, 0xf443, 0xfa7e, 0x046e,
+ 0x0b31, 0x0d24, 0x0d3e, 0x0bef, 0x0934, 0x0403,
+ 0xfd53, 0xfae5, 0xfb68, 0xf821, 0xf341, 0xf280,
+ 0xf792, 0x0025, 0x0511, 0x0684, 0x0b81, 0x0e66,
+ 0x0a1f, 0x087b, 0x0ab4, 0x097c, 0x0748, 0x041d,
+ 0xfd3d, 0xfa0b, 0xfc8d, 0xfd49, 0xfd44, 0x00c8,
+ 0x042a, 0x03cc, 0x01d4, 0x0185, 0x033d, 0x04aa,
+ 0x03a8, 0x0187, 0x0202, 0x03ee, 0x020d, 0xfcf0,
+ 0xf946, 0xf90f, 0xfb21, 0xfb87, 0xfa47, 0xfba1,
+ 0xfbe0, 0xf7c0, 0xf6f5, 0xfbe1, 0x0086, 0x033b,
+ 0x0466, 0x05ad, 0x0984, 0x0bc3, 0x08ba, 0x04e6,
+ 0x03d0, 0x025f, 0xfe99, 0xfd71, 0x0115, 0x0473,
+ 0x082d, 0x0d57, 0x0c6d, 0x07ff, 0x09b4, 0x0da2,
+ 0x0f34, 0x1045, 0x0e15, 0x08aa, 0x044d, 0x0266,
+ 0x045a, 0x074f, 0x06f9, 0x07b9, 0x0c22, 0x0f98,
+ 0x0f7a, 0x0c86, 0x0b0e, 0x0c7c, 0x09d3, 0x02e9,
+ 0xfed1, 0xfc6d, 0xfa6c, 0xfb51, 0xfb73, 0xf9ca,
+ 0xfcb0, 0x0379, 0x06b0, 0x04e1, 0x02a3, 0x020a,
+ 0x009d, 0xfd3d, 0xfac6, 0xfaa4, 0xf99f, 0xf5f0,
+ 0xf47f, 0xf9ac, 0x019d, 0x063f, 0x066a, 0x04a7,
+ 0x0442, 0x0604, 0x0754, 0x05f1, 0x01a6, 0xfc83,
+ 0xfa84, 0xfcff, 0x002d, 0xffaa, 0xfc6e, 0xfcb0,
+ 0x020f, 0x058f, 0x0469, 0x0569, 0x0ac7, 0x0d23,
+ 0x07db, 0xfeaa, 0xf7e3, 0xf6c1, 0xf917, 0xfbc4,
+ 0xfeec, 0x00cb, 0xfe66, 0xfb8b, 0xfc33, 0xfd4b,
+ 0xfdd1, 0xffa5, 0x002f, 0xfe12, 0xfba8, 0xf7dc,
+ 0xf2d8, 0xf34e, 0xf977, 0xfb69, 0xf798, 0xf5e9,
+ 0xf680, 0xf622, 0xf642, 0xf46e, 0xf031, 0xf094,
+ 0xf4b1, 0xf826, 0xfeef, 0x0723, 0x09b5, 0x08ed,
+ 0x0573, 0xfc78, 0xf626, 0xf8da, 0xfc79, 0xfc09,
+ 0xfc5c, 0xfd95, 0xfb9a, 0xf90d, 0xfae3, 0xff2d,
+ 0x015e, 0x01ac, 0x02d1, 0x0412, 0x02d3, 0x01a0,
+ 0x0558, 0x0ad4, 0x0a44, 0x02f5, 0xfb39, 0xf8f6,
+ 0xfe4a, 0x082d, 0x0f9e, 0x10eb, 0x0f5e, 0x0c8a,
+ 0x0601, 0x001d, 0x00ee, 0x01f0, 0xfb88, 0xf4a8,
+ 0xf674, 0xfd86, 0x0221, 0x0471, 0x0831, 0x0be3,
+ 0x0cd0, 0x0cbc, 0x0e63, 0x1077, 0x0e66, 0x07d4,
+ 0x01e6, 0xfe30, 0xfc9f, 0x005b, 0x07cd, 0x0eae,
+ 0x14a7, 0x1726, 0x145c, 0x109d, 0x0e76, 0x0e55,
+ 0x108a, 0x120f, 0x11e2, 0x10ea, 0x0d0d, 0x0797,
+ 0x04de, 0x0505, 0x0624, 0x06db, 0x06ab, 0x0629,
+ 0x0631, 0x09a3, 0x1056, 0x12ff, 0x0e54, 0x06d3,
+ 0x0106, 0xff5a, 0xff79, 0xfd7a, 0xfcc5, 0x011a,
+ 0x0659, 0x0782, 0x03c8, 0xfd5f, 0xf7e1, 0xf549,
+ 0xf4ac, 0xf475, 0xf5a8, 0xf9ce, 0xfe8f, 0x0199,
+ 0x0277, 0xffa8, 0xfb29, 0xf8fc, 0xf933, 0xfbad,
+ 0xfde4, 0xfac3, 0xf588, 0xf3a1, 0xf3ea, 0xf692,
+ 0xfbb9, 0x0103, 0x0630, 0x06a2, 0xfe20, 0xf4a4,
+ 0xf0c2, 0xf049, 0xf313, 0xf724, 0xf7d7, 0xf794,
+ 0xf8a1, 0xf8db, 0xfab6, 0x004b, 0x0626, 0x0ac0,
+ 0x0c3a, 0x07fb, 0x0466, 0x06e4, 0x0901, 0x0871,
+ 0x0a41, 0x0b23, 0x0641, 0x00b8, 0xff6a, 0x00d6,
+ 0x03d6, 0x0869, 0x0acb, 0x0666, 0xfd43, 0xf46f,
+ 0xed89, 0xe9f8, 0xea22, 0xea67, 0xe944, 0xe89c,
+ 0xe917, 0xea96, 0xeca6, 0xef11, 0xf10d, 0xef18,
+ 0xe945, 0xe507, 0xe403, 0xe41a, 0xe44b, 0xe376,
+ 0xe1e7, 0xe324, 0xe9fa, 0xf371, 0xf918, 0xfaaf,
+ 0xfccf, 0xfef7, 0xfe36, 0xfb76, 0xfa03, 0xfaaf,
+ 0xf91d, 0xf545, 0xf657, 0xfc1c, 0x00f6, 0x033f,
+ 0x009e, 0xfbdb, 0xfc18, 0xfe20, 0xff40, 0x046d,
+ 0x0af1, 0x0e5d, 0x101f, 0x0e13, 0x08af, 0x069e,
+ 0x07b3, 0x0665, 0x0364, 0x03e6, 0x06e5, 0x05b0,
+ 0x014c, 0x0074, 0x0263, 0x021d, 0xfe4e, 0xf988,
+ 0xf837, 0xfaf4, 0xfe29, 0x0000, 0x0170, 0x03d9,
+ 0x05f4, 0x0549, 0x017f, 0xfabf, 0xf585, 0xf820,
+ 0xfdcf, 0x0134, 0x05e0, 0x09a5, 0x08f6, 0x06bd,
+ 0x01ee, 0xfd27, 0xffdc, 0x055a, 0x0694, 0x0527,
+ 0x0335, 0x0388, 0x05dc, 0x04fa, 0x0287, 0x0399,
+ 0x06c6, 0x0888, 0x095d, 0x0d82, 0x13ac, 0x14c9,
+ 0x1109, 0x0a9b, 0x01c8, 0xfe5b, 0x0261, 0x05d0,
+ 0x090a, 0x0e7b, 0x12e5, 0x163e, 0x16da, 0x1273,
+ 0x0c67, 0x0614, 0x00ee, 0xff21, 0xfc4c, 0xf7c3,
+ 0xf64a, 0xf630, 0xf541, 0xf5bf, 0xf7e6, 0xf8dd,
+ 0xf69e, 0xf5b6, 0xfb09, 0x00bd, 0x0156, 0xff41,
+ 0xfc43, 0xfb14, 0xfdcf, 0x0179, 0x05c8, 0x0a73,
+ 0x0b74, 0x09b1, 0x073c, 0x03e8, 0x02b8, 0x038b,
+ 0x032d, 0x03ae, 0x069c, 0x095c, 0x0996, 0x06ba,
+ 0x035e, 0x01b9, 0x00ab, 0xff65, 0xfd71, 0xfca3,
+ 0x001e, 0x0415, 0x05c8, 0x09b5, 0x0dd8, 0x0e3d,
+ 0x0f66, 0x1137, 0x0f0e, 0x0b38, 0x076d, 0x0286,
+ 0xfec4, 0xfd04, 0xfb92, 0xfab2, 0xfb3c, 0xfca7,
+ 0xfc1c, 0xf77b, 0xf2ab, 0xf192, 0xf11a, 0xef30,
+ 0xefa5, 0xf3a3, 0xf76f, 0xfa23, 0xfcf7, 0xfdef,
+ 0xfcc1, 0xfcc7, 0xfdea, 0xfeea, 0x01d2, 0x05dd,
+ 0x088d, 0x0bb8, 0x0f75, 0x102a, 0x0e32, 0x0c65,
+ 0x0ba4, 0x0ce2, 0x0f6a, 0x0f9b, 0x0d08, 0x0a3f,
+ 0x0724, 0x049c, 0x06bd, 0x0cde, 0x1123, 0x1071,
+ 0x0c03, 0x06fd, 0x03df, 0x029c, 0x036d, 0x0677,
+ 0x07f1, 0x0563, 0x0291, 0x03e7, 0x09c9, 0x109a,
+ 0x13b2, 0x1231, 0x0e0c, 0x08f2, 0x0554, 0x04d5,
+ 0x0602, 0x0698, 0x0568, 0x0321, 0x022f, 0x0382,
+ 0x04bc, 0x040f, 0x0466, 0x08d8, 0x0ea0, 0x1290,
+ 0x14c6, 0x14a7, 0x13d9, 0x15af, 0x1844, 0x1a0c,
+ 0x1c41, 0x1c48, 0x18df, 0x149d, 0x1054, 0x0d6c,
+ 0x0c20, 0x09c4, 0x084c, 0x0a2e, 0x0d36, 0x10a3,
+ 0x135a, 0x1357, 0x1219, 0x0f7b, 0x0ad1, 0x06bb,
+ 0x02c1, 0xfdc8, 0xf9a4, 0xf581, 0xf1d1, 0xf223,
+ 0xf53c, 0xf788, 0xf83e, 0xf718, 0xf396, 0xee68,
+ 0xea2d, 0xe842, 0xe727, 0xe701, 0xe706, 0xe3ff,
+ 0xdfec, 0xde69, 0xdfa9, 0xe3e9, 0xe761, 0xe6c2,
+ 0xe6f1, 0xe808, 0xe45d, 0xde2a, 0xd9bd, 0xd79b,
+ 0xd6ea, 0xd4c7, 0xd22c, 0xd1f4, 0xd19e, 0xd151,
+ 0xd368, 0xd47d, 0xd2e3, 0xd12d, 0xd18a, 0xd4ed,
+ 0xd73e, 0xd4fe, 0xd234, 0xd198, 0xd288, 0xd4fd,
+ 0xd73a, 0xd9da, 0xdebd, 0xe29c, 0xe3fc, 0xe527,
+ 0xe5c7, 0xe5ea, 0xe698, 0xe734, 0xe815, 0xe93c,
+ 0xea01, 0xec52, 0xf184, 0xf7f5, 0xfe1c, 0x0309,
+ 0x05b5, 0x0713, 0x0985, 0x0bb7, 0x0b58, 0x0b93,
+ 0x0d67, 0x0c93, 0x0afe, 0x0d1c, 0x11a1, 0x17c8,
+ 0x1dae, 0x1c94, 0x1267, 0x0433, 0xf7e1, 0xf075,
+ 0xed5d, 0xef0e, 0xf638, 0xff06, 0x06af, 0x0ce4,
+ 0x0f9d, 0x0fd0, 0x110a, 0x1305, 0x1388, 0x1215,
+ 0x10d6, 0x11e6, 0x1413, 0x1699, 0x1928, 0x18b1,
+ 0x15fc, 0x1700, 0x1e68, 0x2951, 0x31b0, 0x32da,
+ 0x2dfd, 0x27c1, 0x240d, 0x22e4, 0x20d2, 0x1c59,
+ 0x15db, 0x0f2c, 0x0df7, 0x145e, 0x1e03, 0x272f,
+ 0x2c39, 0x2b61, 0x2917, 0x290c, 0x2c7a, 0x33c4,
+ 0x3a19, 0x3b4f, 0x38c6, 0x330c, 0x2cbe, 0x2ca5,
+ 0x33a5, 0x3c00, 0x408f, 0x3dd6, 0x3322, 0x23f5,
+ 0x1409, 0x06f4, 0x03d7, 0x0d96, 0x1af9, 0x2281,
+ 0x22cc, 0x1c98, 0x14bf, 0x135d, 0x19b9, 0x23db,
+ 0x2c08, 0x2b80, 0x221d, 0x14a0, 0x06db, 0xfe59,
+ 0xfe4f, 0x0408, 0x0a2e, 0x0a5d, 0x0578, 0x03a0,
+ 0x054a, 0x05f7, 0x04ef, 0x00dd, 0xfb38, 0xf918,
+ 0xfa4b, 0xfce9, 0x0183, 0x0662, 0x0898, 0x0722,
+ 0x029b, 0xfc90, 0xf71d, 0xf5a2, 0xf9eb, 0x0285,
+ 0x0ced, 0x1325, 0x0f14, 0x0332, 0xf5ee, 0xeb5f,
+ 0xe66d, 0xe897, 0xf242, 0xff58, 0x077d, 0x0818,
+ 0x023b, 0xf5a3, 0xe79d, 0xde2a, 0xda4b, 0xdea3,
+ 0xe9e7, 0xf367, 0xf70c, 0xf764, 0xf882, 0xfcb1,
+ 0x0135, 0x0375, 0x042f, 0x0392, 0x0217, 0x0080,
+ 0xff3a, 0xfe8b, 0xfb2a, 0xf45c, 0xf14b, 0xf517,
+ 0xfc5a, 0x062d, 0x1167, 0x18f6, 0x1893, 0x1139,
+ 0x07ea, 0xff2d, 0xf773, 0xf275, 0xef91, 0xee8d,
+ 0xf24c, 0xf9b1, 0x0120, 0x06ff, 0x09c0, 0x0a81,
+ 0x0b41, 0x0b05, 0x0a07, 0x076d, 0x00bd, 0xf9ce,
+ 0xf722, 0xf76d, 0xf93b, 0xf9e0, 0xf660, 0xf2a5,
+ 0xf2d7, 0xf46d, 0xf45c, 0xf221, 0xee9f, 0xec17,
+ 0xea64, 0xe756, 0xe4f4, 0xe731, 0xedcf, 0xf739,
+ 0x01da, 0x09de, 0x0dc7, 0x0f2e, 0x0dd7, 0x09f0,
+ 0x0468, 0xfd67, 0xf883, 0xf7fe, 0xf7ba, 0xf708,
+ 0xf986, 0xfeaf, 0x0468, 0x09c4, 0x0e45, 0x118e,
+ 0x10b4, 0x0b0d, 0x0572, 0x013e, 0xfd9d, 0xfd0b,
+ 0xfd1d, 0xf8f7, 0xf4bf, 0xf56d, 0xf808, 0xfa1e,
+ 0xfcc4, 0xfee9, 0xffa8, 0x00bb, 0x00d6, 0xfc61,
+ 0xf4c8, 0xee8c, 0xeb9a, 0xeba4, 0xecf4, 0xecb2,
+ 0xe976, 0xe4c7, 0xe0d0, 0xdd8c, 0xda70, 0xd829,
+ 0xd64d, 0xd3e2, 0xd0d9, 0xcd71, 0xcc0a, 0xce71,
+ 0xd2a3, 0xd8e1, 0xe2b2, 0xec45, 0xf1c0, 0xf26f,
+ 0xee8e, 0xe936, 0xe41c, 0xde42, 0xdaf6, 0xdbc0,
+ 0xdadb, 0xd5ee, 0xd0e2, 0xce5e, 0xce95, 0xd186,
+ 0xd752, 0xde08, 0xe1a7, 0xe108, 0xdd8c, 0xd885,
+ 0xd5ac, 0xd78c, 0xdb1c, 0xdf3a, 0xe719, 0xf19e,
+ 0xfa8e, 0x01ec, 0x08df, 0x0e51, 0x1315, 0x1825,
+ 0x1a39, 0x16e0, 0x1109, 0x0c8f, 0x09e1, 0x0853,
+ 0x0917, 0x0ba1, 0x0c82, 0x0be8, 0x0bf1, 0x0bcb,
+ 0x0c98, 0x101a, 0x1377, 0x142a, 0x113f, 0x0a05,
+ 0x026d, 0xff5b, 0x0171, 0x0812, 0x1199, 0x1aa4,
+ 0x1fb4, 0x1ffe, 0x1fb3, 0x20a4, 0x1ee3, 0x1ac5,
+ 0x175a, 0x1426, 0x1223, 0x11c7, 0x1141, 0x1229,
+ 0x1494, 0x15a6, 0x15ec, 0x149b, 0x0f82, 0x08ca,
+ 0x00fe, 0xf709, 0xee99, 0xeab0, 0xea6e, 0xed9d,
+ 0xf3c0, 0xfa5f, 0xff9e, 0x0394, 0x06d9, 0x0966,
+ 0x0b6a, 0x0c92, 0x0ae7, 0x060d, 0x00e7, 0xfd4b,
+ 0xfac3, 0xf929, 0xf747, 0xf2fd, 0xee2e, 0xeba3,
+ 0xe946, 0xe61a, 0xe3da, 0xe10c, 0xde27, 0xdea4,
+ 0xe057, 0xe07c, 0xe114, 0xe2ba, 0xe580, 0xe9db,
+ 0xee2e, 0xf334, 0xfa03, 0x0009, 0x04dc, 0x093c,
+ 0x0ba3, 0x0cb1, 0x0d75, 0x0c7c, 0x0a68, 0x0a16,
+ 0x0c4b, 0x0f7b, 0x1318, 0x173c, 0x185e, 0x1445,
+ 0x101d, 0x0f47, 0x0f45, 0x0f17, 0x0dd1, 0x096c,
+ 0x0494, 0x03ea, 0x07c6, 0x0d59, 0x1265, 0x1613,
+ 0x17c9, 0x185d, 0x197d, 0x19b8, 0x181a, 0x1736,
+ 0x1601, 0x10a7, 0x0950, 0x0552, 0x05f8, 0x097f,
+ 0x0e7d, 0x12a3, 0x1265, 0x0edf, 0x0d31, 0x0ceb,
+ 0x0b0c, 0x0a27, 0x0adc, 0x089a, 0x0435, 0x0274,
+ 0x0280, 0x023c, 0x0364, 0x068c, 0x0a9f, 0x0f11,
+ 0x11ec, 0x121a, 0x1093, 0x0c5c, 0x05b1, 0x000b,
+ 0xfd21, 0xfdbb, 0x0097, 0x0078, 0xfdf3, 0xff89,
+ 0x05c9, 0x0cc4, 0x1105, 0x1006, 0x0b4f, 0x05fe,
+ 0x01f3, 0x0092, 0xffd9, 0xfef9, 0x0139, 0x0420,
+ 0x0438, 0x05c5, 0x08f6, 0x08b5, 0x0582, 0x0077,
+ 0xf968, 0xf4a3, 0xf3e9, 0xf29a, 0xeef5, 0xebea,
+ 0xea50, 0xe8a4, 0xe7cd, 0xe95e, 0xeb78, 0xec5e,
+ 0xec94, 0xeb0f, 0xe78b, 0xe4ba, 0xe25b, 0xdda5,
+ 0xd803, 0xd683, 0xdcf4, 0xea1d, 0xf7cd, 0x0182,
+ 0x05d8, 0x033e, 0xfcd7, 0xf8e9, 0xf751, 0xf688,
+ 0xf77e, 0xf798, 0xf7fc, 0xfe57, 0x06da, 0x0b16,
+ 0x0bc5, 0x0948, 0x0573, 0x0399, 0x0121, 0xfdbf,
+ 0xfc6f, 0xfa92, 0xf75a, 0xf558, 0xf440, 0xf5b3,
+ 0xf9e0, 0xfd1c, 0x0144, 0x081c, 0x0d98, 0x1042,
+ 0x0fed, 0x0c44, 0x087f, 0x0694, 0x0761, 0x0ba8,
+ 0x0eb1, 0x0cfa, 0x082f, 0xffac, 0xf50b, 0xee5a,
+ 0xed26, 0xf0e3, 0xf89e, 0xfed0, 0x00be, 0x00a8,
+ 0xfed7, 0xfd02, 0xfe27, 0x00bc, 0x03db, 0x0772,
+ 0x076e, 0x03f6, 0x031e, 0x06d7, 0x0d3d, 0x131d,
+ 0x14f1, 0x1459, 0x12e7, 0x0e4c, 0x0a6c, 0x0ca9,
+ 0x10e4, 0x1237, 0x1099, 0x0d67, 0x0bcb, 0x0c4b,
+ 0x0c85, 0x0cbf, 0x0c00, 0x0887, 0x0441, 0xff89,
+ 0xfb24, 0xfafa, 0xfd36, 0xfdfe, 0xff16, 0x0084,
+ 0x0049, 0xff80, 0xfe93, 0xfd98, 0xfe24, 0xffa7,
+ 0x00d1, 0x011f, 0xfefe, 0xfa7e, 0xf688, 0xf4b5,
+ 0xf404, 0xf362, 0xf352, 0xf4bf, 0xf7ea, 0xfcdf,
+ 0x0185, 0x0269, 0x0099, 0xff81, 0xfee5, 0xff75,
+ 0x03ee, 0x0952, 0x0a74, 0x08be, 0x08ad, 0x0cd5,
+ 0x14d0, 0x1c25, 0x1f4e, 0x1ea8, 0x196f, 0x1055,
+ 0x09c5, 0x0a40, 0x0fe0, 0x16d1, 0x1bbe, 0x1c8c,
+ 0x19d7, 0x16ff, 0x1653, 0x152d, 0x1198, 0x0eed,
+ 0x0d91, 0x098f, 0x0370, 0xfee9, 0xfd94, 0x0061,
+ 0x0711, 0x0e37, 0x1184, 0x0ef6, 0x0788, 0xfe05,
+ 0xf57c, 0xefb0, 0xed0c, 0xed04, 0xec2c, 0xe750,
+ 0xe136, 0xdd9d, 0xdc41, 0xdd2b, 0xe0af, 0xe55c,
+ 0xea77, 0xefbd, 0xf46c, 0xf7a6, 0xf944, 0xfbc2,
+ 0xffea, 0x02ac, 0x045f, 0x05fb, 0x0472, 0x0185,
+ 0x02e1, 0x091a, 0x1256, 0x1b72, 0x1f64, 0x1dbf,
+ 0x1a77, 0x187d, 0x194e, 0x1c2a, 0x1e78, 0x1eb5,
+ 0x1c4d, 0x1781, 0x12f5, 0x1285, 0x16a6, 0x1ae8,
+ 0x1bd1, 0x19b3, 0x1539, 0x0fc6, 0x0c75, 0x0c51,
+ 0x0db4, 0x0ff0, 0x13e5, 0x1842, 0x19a2, 0x1825,
+ 0x15ef, 0x1314, 0x11e0, 0x1471, 0x1648, 0x1432,
+ 0x1060, 0x0a9e, 0x0203, 0xf99b, 0xf41a, 0xf18f,
+ 0xf146, 0xf27c, 0xf4f2, 0xf952, 0xff28, 0x02ba,
+ 0x012a, 0xfce8, 0xf905, 0xf62a, 0xf4e3, 0xf43e,
+ 0xf323, 0xf34c, 0xf5b0, 0xf9d3, 0xffb7, 0x0633,
+ 0x0bae, 0x0e2f, 0x0b18, 0x0407, 0xfe0c, 0xfb8d,
+ 0xfca1, 0x0063, 0x04a2, 0x0781, 0x08c8, 0x0a54,
+ 0x0d22, 0x0edf, 0x0e4f, 0x0bd4, 0x0615, 0xfe55,
+ 0xf8b1, 0xf62b, 0xf6b3, 0xfacf, 0xffdd, 0x033e,
+ 0x05fa, 0x08e5, 0x0b6a, 0x0dfc, 0x10d2, 0x120e,
+ 0x104f, 0x0d32, 0x0af6, 0x095a, 0x077d, 0x06a2,
+ 0x0790, 0x0810, 0x06a5, 0x0536, 0x06ae, 0x0ce1,
+ 0x16a5, 0x1ef2, 0x2150, 0x1dd3, 0x178c, 0x111f,
+ 0x0ae4, 0x04df, 0x00e7, 0xffe6, 0xffcb, 0xfe5b,
+ 0xfcb6, 0xfdf8, 0x0140, 0x02bb, 0x029b, 0x02b5,
+ 0x02db, 0x03c3, 0x053c, 0x05be, 0x063b, 0x067c,
+ 0x0465, 0x00b6, 0xfc71, 0xf7ce, 0xf4ab, 0xf3d6,
+ 0xf474, 0xf548, 0xf589, 0xf73e, 0xfa6d, 0xfad8,
+ 0xf8ce, 0xf713, 0xf401, 0xf090, 0xf099, 0xf251,
+ 0xf340, 0xf556, 0xf7cc, 0xf6d6, 0xf2e4, 0xeed2,
+ 0xeb0c, 0xe847, 0xe7ce, 0xe80b, 0xe7b0, 0xe7fc,
+ 0xe8ed, 0xea53, 0xee0a, 0xf401, 0xf8a9, 0xf9e5,
+ 0xfa4b, 0xfbb9, 0xfbc8, 0xfaf3, 0xfc50, 0xfe03,
+ 0xfec3, 0x011d, 0x04d4, 0x0926, 0x0db2, 0x0f8a,
+ 0x0f43, 0x0ebd, 0x0bbd, 0x07da, 0x066c, 0x04f3,
+ 0x0328, 0x04a5, 0x092e, 0x0f5b, 0x16e6, 0x1da7,
+ 0x20f8, 0x2012, 0x1b7f, 0x13be, 0x0ae6, 0x04f2,
+ 0x01e0, 0xff2c, 0xfe9b, 0x0103, 0x0390, 0x063a,
+ 0x090c, 0x09e9, 0x0ab3, 0x0ddf, 0x0fa8, 0x0be1,
+ 0x049e, 0xfd0a, 0xf43f, 0xeb52, 0xe7b8, 0xeab2,
+ 0xf112, 0xf987, 0x0254, 0x08bd, 0x0cc1, 0x0e90,
+ 0x0c67, 0x0661, 0x0066, 0xfd3a, 0xfa48, 0xf5bc,
+ 0xf2a7, 0xf245, 0xf30a, 0xf539, 0xf8cf, 0xfc3b,
+ 0xfe45, 0xfece, 0xff12, 0xff44, 0xfe9a, 0xfe10,
+ 0xfd2f, 0xfa43, 0xf708, 0xf5f1, 0xf80c, 0xfcaf,
+ 0xff30, 0xfd39, 0xfa5a, 0xf842, 0xf6f3, 0xf81b,
+ 0xfa75, 0xfb00, 0xf957, 0xf62b, 0xf307, 0xf20e,
+ 0xf34c, 0xf4b6, 0xf3e4, 0xf0e2, 0xefb5, 0xf339,
+ 0xf858, 0xfae7, 0xfb4a, 0xfa30, 0xf63d, 0xf202,
+ 0xf1e8, 0xf532, 0xf9d2, 0xfeaa, 0x015e, 0x02ea,
+ 0x0624, 0x08b5, 0x07c8, 0x0489, 0x0048, 0xfc09,
+ 0xf8fe, 0xf795, 0xf84d, 0xfa5b, 0xfbfb, 0xfe09,
+ 0x01dc, 0x058c, 0x074e, 0x08c4, 0x0c0e, 0x1094,
+ 0x141b, 0x14af, 0x1108, 0x09c9, 0x02b0, 0xffdd,
+ 0x0277, 0x091d, 0x1061, 0x12c4, 0x0d12, 0x0290,
+ 0xfa25, 0xf891, 0xfc37, 0xff2c, 0xff93, 0xff76,
+ 0xfed1, 0xfe50, 0xff57, 0xffa7, 0xfe70, 0xfe24,
+ 0xffc6, 0x03de, 0x08da, 0x0ac5, 0x095f, 0x04b6,
+ 0xfb85, 0xf2b0, 0xf064, 0xf486, 0xfba3, 0x0179,
+ 0x0503, 0x08e9, 0x0d08, 0x1074, 0x129a, 0x0ffe,
+ 0x0999, 0x0475, 0x0018, 0xfbd0, 0xfa1f, 0xfa0b,
+ 0xf954, 0xf77f, 0xf4a1, 0xf2ea, 0xf444, 0xf7d8,
+ 0xfc12, 0xfeff, 0xff70, 0xfd6a, 0xf871, 0xf1ce,
+ 0xec97, 0xeabb, 0xee5a, 0xf754, 0xffb9, 0x0279,
+ 0x0038, 0xfb5a, 0xf6f3, 0xf673, 0xf913, 0xfb18,
+ 0xfb83, 0xfa5e, 0xf789, 0xf5e0, 0xf701, 0xf8e8,
+ 0xfbb9, 0xffb1, 0x0305, 0x0701, 0x0bc0, 0x0dd0,
+ 0x0d6a, 0x0bc0, 0x0783, 0x01e2, 0xfdf2, 0xfe1c,
+ 0x02c6, 0x08e1, 0x0ec1, 0x1466, 0x1868, 0x1bf9,
+ 0x1f6e, 0x1edc, 0x1b0d, 0x1798, 0x13ca, 0x0f6b,
+ 0x0bfa, 0x0ac6, 0x0c6b, 0x0d7d, 0x0b53, 0x084e,
+ 0x0612, 0x04e1, 0x03de, 0x00f2, 0xfed3, 0x0003,
+ 0x012d, 0x013b, 0x009b, 0xfdcd, 0xfadd, 0xf964,
+ 0xf830, 0xf906, 0xfbdb, 0xfd52, 0xfd00, 0xfaa2,
+ 0xf5b1, 0xf0c1, 0xedae, 0xec9c, 0xedad, 0xef02,
+ 0xee85, 0xec7a, 0xea49, 0xe9c1, 0xeb90, 0xee20,
+ 0xefb8, 0xefee, 0xeee7, 0xec7d, 0xe8bd, 0xe4c9,
+ 0xe21b, 0xe25c, 0xe7dd, 0xf31d, 0x006c, 0x0aa6,
+ 0x0fbe, 0x1160, 0x1141, 0x0f28, 0x0b46, 0x075f,
+ 0x03c9, 0xff36, 0xfb5c, 0xfba7, 0xfef4, 0x01f9,
+ 0x03a6, 0x03a7, 0x0386, 0x059e, 0x08df, 0x0c97,
+ 0x1143, 0x140c, 0x137b, 0x1164, 0x0d4a, 0x073d,
+ 0x022f, 0xffb9, 0x00af, 0x05cd, 0x0d5f, 0x14aa,
+ 0x197d, 0x1a52, 0x174a, 0x125c, 0x0e35, 0x0c5c,
+ 0x0c76, 0x0c9a, 0x0a32, 0x05ee, 0x0453, 0x0736,
+ 0x0ba4, 0x0e0f, 0x0d04, 0x0937, 0x0391, 0xfd4b,
+ 0xf8ef, 0xf641, 0xf1f2, 0xec56, 0xe95f, 0xeb4f,
+ 0xf0f2, 0xf6df, 0xfa3c, 0xfaa9, 0xf98f, 0xf7e1,
+ 0xf4cc, 0xf03b, 0xebf6, 0xe9ab, 0xeb18, 0xf01c,
+ 0xf626, 0xfc67, 0x013d, 0x01f8, 0x0247, 0x05e5,
+ 0x0977, 0x0b3a, 0x0bb9, 0x08b7, 0x029f, 0xfd3c,
+ 0xfa86, 0xfaac, 0xfd05, 0x0062, 0x0387, 0x058f,
+ 0x0699, 0x0616, 0x032e, 0xfec7, 0xf98c, 0xf413,
+ 0xefc7, 0xece9, 0xebac, 0xeb76, 0xe98b, 0xe63b,
+ 0xe492, 0xe59a, 0xe94a, 0xee2a, 0xf1a3, 0xf2d3,
+ 0xf1f7, 0xf158, 0xf35f, 0xf537, 0xf3de, 0xf13b,
+ 0xf00b, 0xf1d0, 0xf5b0, 0xf900, 0xfb87, 0xfe0f,
+ 0x00b8, 0x03a0, 0x0479, 0x01f3, 0xff34, 0xfe6e,
+ 0xff49, 0x0128, 0x039c, 0x06b0, 0x0883, 0x07a3,
+ 0x085c, 0x0e4d, 0x170c, 0x1ea7, 0x21d5, 0x1fcb,
+ 0x1ad7, 0x14fc, 0x1063, 0x0e03, 0x0bad, 0x09da,
+ 0x0aa7, 0x0c0e, 0x0ccf, 0x0e91, 0x10e9, 0x1237,
+ 0x1174, 0x0dab, 0x0811, 0x039a, 0x00f2, 0xfe96,
+ 0xfc47, 0xfa89, 0xf922, 0xf94f, 0xfc04, 0xfebb,
+ 0xfff8, 0x009d, 0x0040, 0xff37, 0xfe4f, 0xfbfe,
+ 0xf884, 0xf613, 0xf49d, 0xf45d, 0xf6ac, 0xfa6a,
+ 0xfd70, 0xff68, 0x0100, 0x01cb, 0x0033, 0xfc60,
+ 0xf8a1, 0xf76c, 0xfa6d, 0x008f, 0x060e, 0x0869,
+ 0x074b, 0x041f, 0x0285, 0x0496, 0x083b, 0x0ae8,
+ 0x0b6d, 0x0870, 0x026b, 0xfd11, 0xfaaa, 0xfa1f,
+ 0xfacd, 0xfca0, 0xfe48, 0xff3c, 0xff86, 0xff0d,
+ 0xff5c, 0x008c, 0xff9a, 0xfba7, 0xf697, 0xf205,
+ 0xef78, 0xef41, 0xf04e, 0xf260, 0xf52d, 0xf7d7,
+ 0xfa1c, 0xfbf1, 0xfd4f, 0xfd75, 0xfb4d, 0xf7aa,
+ 0xf3ef, 0xf005, 0xec01, 0xe96a, 0xeab0, 0xf033,
+ 0xf74e, 0xfe98, 0x055a, 0x0943, 0x0a88, 0x0af7,
+ 0x09f2, 0x072a, 0x0340, 0xfff6, 0x000d, 0x01ae,
+ 0x0202, 0x030e, 0x040b, 0x0302, 0x0420, 0x0878,
+ 0x0bdd, 0x0e1a, 0x0fc8, 0x0f4c, 0x0ddd, 0x0d56,
+ 0x0c4f, 0x0977, 0x06b8, 0x064b, 0x0770, 0x0929,
+ 0x0b85, 0x0dec, 0x1076, 0x129a, 0x11ba, 0x0d45,
+ 0x06bc, 0x0000, 0xfb90, 0xf98f, 0xf955, 0xfb84,
+ 0xfdd1, 0xfe2d, 0xfdf3, 0xfcf2, 0xfba1, 0xfc48,
+ 0xfd66, 0xfcc5, 0xfada, 0xf844, 0xf5c0, 0xf360,
+ 0xf141, 0xf119, 0xf32d, 0xf6bb, 0xfab0, 0xfbee,
+ 0xfa44, 0xf912, 0xf932, 0xf9ba, 0xf9e4, 0xfa38,
+ 0xfd0e, 0x01a1, 0x057c, 0x08a0, 0x0a11, 0x09f4,
+ 0x0ab0, 0x0add, 0x0910, 0x0758, 0x06e1, 0x0898,
+ 0x0bb0, 0x0cc4, 0x0c4f, 0x0cc0, 0x0e1c, 0x10ab,
+ 0x138c, 0x152d, 0x1677, 0x16df, 0x14c8, 0x11cd,
+ 0x0f43, 0x0bd4, 0x06bd, 0x0109, 0xfc34, 0xf961,
+ 0xf9dd, 0xfe0a, 0x03f5, 0x090f, 0x0b1e, 0x092a,
+ 0x05d1, 0x03b2, 0x011d, 0xfc73, 0xf79d, 0xf3a8,
+ 0xee7c, 0xe829, 0xe44c, 0xe432, 0xe754, 0xedfb,
+ 0xf4ec, 0xf7db, 0xf7af, 0xf655, 0xf430, 0xf23e,
+ 0xf075, 0xeee7, 0xeefb, 0xefaf, 0xee98, 0xec8e,
+ 0xecde, 0xf0c2, 0xf6b5, 0xfd79, 0x03da, 0x08a7,
+ 0x0cd7, 0x1044, 0x1140, 0x1091, 0x0e1c, 0x097e,
+ 0x062a, 0x0537, 0x04ed, 0x05bc, 0x065b, 0x057b,
+ 0x0544, 0x05d4, 0x0607, 0x0626, 0x05a1, 0x04e6,
+ 0x0455, 0x02ee, 0x02d1, 0x05f7, 0x09ff, 0x0c75,
+ 0x0b8a, 0x06fa, 0x026f, 0xffe9, 0xfd78, 0xfae5,
+ 0xf9f3, 0xf9e9, 0xf85b, 0xf635, 0xf6b9, 0xfa41,
+ 0xfff2, 0x06e2, 0x0b34, 0x0a60, 0x06ad, 0x0321,
+ 0x01ed, 0x0338, 0x045a, 0x048b, 0x056c, 0x06a8,
+ 0x069f, 0x05a2, 0x0626, 0x0984, 0x0de6, 0x108b,
+ 0x1034, 0x0e49, 0x0d92, 0x0e38, 0x0f1f, 0x1090,
+ 0x119d, 0x111e, 0x0fb3, 0x0d28, 0x0aca, 0x0bdc,
+ 0x0ec5, 0x0f42, 0x0d90, 0x0b94, 0x0920, 0x0616,
+ 0x02eb, 0xffbf, 0xfc72, 0xf8a2, 0xf4de, 0xf38f,
+ 0xf587, 0xf807, 0xf91c, 0xf950, 0xf885, 0xf687,
+ 0xf4d6, 0xf4a2, 0xf564, 0xf655, 0xf7b1, 0xf933,
+ 0xfa07, 0xfbfb, 0x005d, 0x03a1, 0x03d9, 0x02d1,
+ 0xfff0, 0xfb94, 0xf9d1, 0xfb4f, 0xfcfd, 0xfd74,
+ 0xfd98, 0xfebc, 0x0065, 0x023a, 0x0658, 0x0c1a,
+ 0x0fbb, 0x10eb, 0x10e2, 0x0f59, 0x0d58, 0x0bc0,
+ 0x09df, 0x07d9, 0x057d, 0x0214, 0xfef4, 0xfdc8,
+ 0xfed6, 0x020a, 0x05d8, 0x07b6, 0x07b9, 0x06e2,
+ 0x0469, 0x011b, 0xffea, 0x0108, 0x0196, 0xff8e,
+ 0xfc21, 0xfa61, 0xfac1, 0xfb4e, 0xfb86, 0xfa99,
+ 0xf740, 0xf39f, 0xf1d3, 0xf130, 0xf260, 0xf64a,
+ 0xfb5f, 0xffbd, 0x02c0, 0x0624, 0x0b4d, 0x0f0c,
+ 0x0f42, 0x0dfa, 0x0b32, 0x06b5, 0x036e, 0x0271,
+ 0x032a, 0x054c, 0x0755, 0x0923, 0x0b7a, 0x0da6,
+ 0x104f, 0x1374, 0x1495, 0x13a1, 0x11c1, 0x0f63,
+ 0x0ed2, 0x10c2, 0x135a, 0x1660, 0x18ff, 0x199a,
+ 0x1921, 0x182a, 0x1654, 0x1493, 0x12e4, 0x1036,
+ 0x0d0c, 0x0a60, 0x0846, 0x0670, 0x04f5, 0x041f,
+ 0x035c, 0x0183, 0xfe10, 0xfa63, 0xf942, 0xfb5a,
+ 0xfe67, 0xfff1, 0xfeb2, 0xfb6c, 0xf7e5, 0xf4a7,
+ 0xf2c5, 0xf3dd, 0xf6f5, 0xfa4b, 0xfd9a, 0x00a4,
+ 0x02e2, 0x0487, 0x066e, 0x07ab, 0x058e, 0x0110,
+ 0xfdeb, 0xfc6f, 0xfb55, 0xfab7, 0xfade, 0xfc17,
+ 0xfdc6, 0xff09, 0x001a, 0x00f8, 0x0224, 0x0383,
+ 0x0376, 0x0415, 0x0768, 0x0a73, 0x0d24, 0x107e,
+ 0x1155, 0x106c, 0x1009, 0x0dff, 0x0ae5, 0x085a,
+ 0x04fb, 0x01b7, 0xff90, 0xfddf, 0xfd60, 0xfd54,
+ 0xfcda, 0xfce5, 0xfc35, 0xf9d3, 0xf737, 0xf544,
+ 0xf4ce, 0xf57c, 0xf5cd, 0xf5f4, 0xf532, 0xf2bd,
+ 0xf0ea, 0xf092, 0xf132, 0xf3c1, 0xf735, 0xfa0e,
+ 0xfc9b, 0xfdb4, 0xfcd0, 0xfc29, 0xfc2c, 0xfa7b,
+ 0xf5bc, 0xef4c, 0xe997, 0xe683, 0xe797, 0xecba,
+ 0xf3e5, 0xfb7b, 0x01fc, 0x05e6, 0x07ef, 0x0992,
+ 0x0a82, 0x0a4e, 0x0a1f, 0x0acb, 0x0b30, 0x0b44,
+ 0x0cca, 0x0f0a, 0x1134, 0x14ab, 0x17cb, 0x18a8,
+ 0x190b, 0x1858, 0x1587, 0x13a3, 0x1323, 0x1289,
+ 0x130d, 0x13b3, 0x12cb, 0x1288, 0x13c0, 0x14cd,
+ 0x154a, 0x1555, 0x1580, 0x15af, 0x140e, 0x1116,
+ 0x0e46, 0x0ab7, 0x0713, 0x050c, 0x03a5, 0x02b0,
+ 0x0340, 0x0505, 0x07a9, 0x09d7, 0x09cf, 0x08d6,
+ 0x07f7, 0x064e, 0x0423, 0x0219, 0x0134, 0x0317,
+ 0x06ee, 0x0b58, 0x0fd6, 0x1227, 0x116d, 0x0f3b,
+ 0x0c20, 0x095a, 0x0862, 0x0882, 0x0919, 0x0919,
+ 0x079b, 0x070e, 0x0883, 0x0a09, 0x0c06, 0x0f0e,
+ 0x1162, 0x1213, 0x1072, 0x0b94, 0x0464, 0xfca6,
+ 0xf5c1, 0xf0c5, 0xedd5, 0xec8f, 0xec5f, 0xecb9,
+ 0xedb2, 0xef50, 0xf0e5, 0xf163, 0xefff, 0xed03,
+ 0xe91a, 0xe411, 0xddd3, 0xd7ac, 0xd37c, 0xd252,
+ 0xd408, 0xd789, 0xdbfe, 0xe1a6, 0xe7c0, 0xec4f,
+ 0xeefe, 0xf009, 0xefcd, 0xf09b, 0xf220, 0xf16c,
+ 0xf065, 0xf1c9, 0xf424, 0xf708, 0xfa7e, 0xfd47,
+ 0x0033, 0x032e, 0x0482, 0x056d, 0x07f4, 0x0c55,
+ 0x111b, 0x1398, 0x149c, 0x1728, 0x1a5d, 0x1d26,
+ 0x2090, 0x23b2, 0x2539, 0x2504, 0x2255, 0x1d18,
+ 0x16f5, 0x123b, 0x1010, 0x0f4a, 0x0f27, 0x0fde,
+ 0x0f95, 0x0cdc, 0x0a00, 0x08fd, 0x08c6, 0x08b3,
+ 0x0947, 0x0929, 0x068b, 0x01fc, 0xfcc3, 0xf83b,
+ 0xf631, 0xf6b1, 0xf8b1, 0xfb47, 0xfcc7, 0xfdb0,
+ 0x0082, 0x0456, 0x0657, 0x0669, 0x061f, 0x0591,
+ 0x0280, 0xfc79, 0xf6d2, 0xf343, 0xf179, 0xf232,
+ 0xf4b8, 0xf853, 0xfdc8, 0x031a, 0x06e2, 0x0b8a,
+ 0x10c5, 0x13f1, 0x1541, 0x152d, 0x135a, 0x10c0,
+ 0x0e69, 0x0c7d, 0x0b0c, 0x09f1, 0x0857, 0x0550,
+ 0x0132, 0xfc8f, 0xf742, 0xf308, 0xf23a, 0xf3d2,
+ 0xf5d6, 0xf829, 0xfaa7, 0xfcf8, 0xff0b, 0xffec,
+ 0xff2f, 0xfe17, 0xfcab, 0xf93d, 0xf40a, 0xeed4,
+ 0xea2d, 0xe71e, 0xe734, 0xe9e4, 0xee35, 0xf2fe,
+ 0xf5ae, 0xf739, 0xfb4f, 0x003b, 0x022d, 0x01fb,
+ 0x0108, 0xfee2, 0xfba9, 0xf7d3, 0xf4a7, 0xf3ee,
+ 0xf558, 0xf73d, 0xf89c, 0xf9db, 0xfc09, 0xfe39,
+ 0xff7d, 0x0197, 0x0463, 0x05a8, 0x05dd, 0x057a,
+ 0x0465, 0x04da, 0x06fe, 0x0895, 0x0a31, 0x0c87,
+ 0x0e27, 0x0e38, 0x0c5b, 0x0902, 0x0594, 0x0264,
+ 0x000b, 0xff58, 0xff37, 0xff43, 0xffe4, 0xfff2,
+ 0xff31, 0xff07, 0xffe3, 0x0186, 0x035e, 0x049a,
+ 0x04bd, 0x02bf, 0xfe7e, 0xfa41, 0xf7ba, 0xf6ee,
+ 0xf7dc, 0xf996, 0xfaae, 0xfb7a, 0xfcd5, 0xfe0d,
+ 0xfe1a, 0xfd23, 0xfb9c, 0xf973, 0xf71c, 0xf5a1,
+ 0xf533, 0xf595, 0xf70c, 0xf965, 0xfb7c, 0xfd00,
+ 0xff55, 0x03a3, 0x090e, 0x0db3, 0x106e, 0x111f,
+ 0x0ffd, 0x0d5e, 0x0a6d, 0x08b6, 0x08b8, 0x09a7,
+ 0x09d4, 0x084c, 0x062c, 0x03d7, 0x0054, 0xfcf9,
+ 0xfb60, 0xfa6b, 0xf9d4, 0xfa51, 0xfaf0, 0xfbab,
+ 0xfd7e, 0xff73, 0x0078, 0x012b, 0x01ec, 0x0210,
+ 0x0113, 0xff30, 0xfc2d, 0xf7a3, 0xf2c5, 0xef1d,
+ 0xed62, 0xee5c, 0xf13c, 0xf43d, 0xf77d, 0xfa8f,
+ 0xfbfa, 0xfcf4, 0xfef3, 0x0062, 0xffe1, 0xfe39,
+ 0xfc64, 0xfa72, 0xf8c8, 0xf86d, 0xf95c, 0xfb5e,
+ 0xfecc, 0x0235, 0x04c5, 0x0890, 0x0d6a, 0x10b1,
+ 0x1231, 0x125b, 0x10c3, 0x0e17, 0x0b91, 0x0ab9,
+ 0x0c51, 0x0e53, 0x0ee6, 0x0e91, 0x0d9e, 0x0b82,
+ 0x088c, 0x0634, 0x054e, 0x04b2, 0x037f, 0x0261,
+ 0x01ba, 0x01c3, 0x0274, 0x02a8, 0x021e, 0x0121,
+ 0xfeee, 0xfbb1, 0xf894, 0xf5ea, 0xf438, 0xf3a3,
+ 0xf29f, 0xf04b, 0xeda9, 0xeba9, 0xea31, 0xe946,
+ 0xe96d, 0xea7f, 0xec29, 0xeeef, 0xf2aa, 0xf628,
+ 0xf8a8, 0xf9ae, 0xf96b, 0xf92d, 0xf948, 0xf94f,
+ 0xfa09, 0xfc0a, 0xfe8d, 0x0117, 0x03c7, 0x0692,
+ 0x09d5, 0x0dc0, 0x10c8, 0x1189, 0x10bd, 0x0ec8,
+ 0x0c08, 0x0baa, 0x0f6d, 0x148b, 0x18d8, 0x1c1b,
+ 0x1d2b, 0x1b79, 0x181f, 0x1432, 0x10b1, 0x0e49,
+ 0x0ce4, 0x0c2d, 0x0b93, 0x0afa, 0x0afc, 0x0b23,
+ 0x0a22, 0x07e9, 0x052c, 0x022d, 0xff6e, 0xfdd9,
+ 0xfdc4, 0xfefa, 0x0090, 0x00ad, 0xff3a, 0xfeb2,
+ 0xffd3, 0x0127, 0x023e, 0x02cb, 0x0241, 0x0109,
+ 0xff12, 0xfc60, 0xfa1c, 0xf848, 0xf6af, 0xf65f,
+ 0xf6f5, 0xf733, 0xf7a2, 0xf926, 0xfbd4, 0xff1f,
+ 0x01cf, 0x039e, 0x05b8, 0x0886, 0x0aaa, 0x0abb,
+ 0x0922, 0x06e1, 0x0463, 0x02e1, 0x0347, 0x0461,
+ 0x04c5, 0x035c, 0xff3d, 0xf975, 0xf38e, 0xee36,
+ 0xeab6, 0xe982, 0xe99b, 0xeaa3, 0xebb9, 0xebe6,
+ 0xec5a, 0xee28, 0xf0fa, 0xf42b, 0xf64d, 0xf6e8,
+ 0xf75a, 0xf77e, 0xf653, 0xf4a8, 0xf2c4, 0xefab,
+ 0xec07, 0xe99e, 0xe8fe, 0xe9ee, 0xec32, 0xef38,
+ 0xf26d, 0xf5b7, 0xf91a, 0xfc8a, 0xffac, 0x01dd,
+ 0x0365, 0x04bc, 0x0506, 0x0421, 0x03ba, 0x04b1,
+ 0x06c9, 0x0957, 0x0aaf, 0x0a93, 0x0b4c, 0x0d95,
+ 0x0fea, 0x1228, 0x14ee, 0x173d, 0x181e, 0x186b,
+ 0x1928, 0x1a0f, 0x1a01, 0x17f7, 0x143c, 0x0fe6,
+ 0x0b40, 0x06ef, 0x0480, 0x0463, 0x061d, 0x08c3,
+ 0x0a5a, 0x0a56, 0x0a58, 0x0b0d, 0x0bce, 0x0b88,
+ 0x091b, 0x0550, 0x0190, 0xfd66, 0xf913, 0xf699,
+ 0xf629, 0xf62b, 0xf63d, 0xf741, 0xf974, 0xfc79,
+ 0x0052, 0x0458, 0x075f, 0x0986, 0x0ab1, 0x0a03,
+ 0x084c, 0x06c6, 0x054e, 0x03e5, 0x0289, 0x012f,
+ 0x008a, 0x00c9, 0x01ce, 0x0372, 0x0462, 0x04a9,
+ 0x05fe, 0x07b7, 0x0883, 0x0920, 0x099c, 0x08d0,
+ 0x0661, 0x0387, 0x029b, 0x03d0, 0x051f, 0x064a,
+ 0x0777, 0x076f, 0x0677, 0x0517, 0x0339, 0x0305,
+ 0x0586, 0x07c5, 0x07f8, 0x0730, 0x060f, 0x049c,
+ 0x02b0, 0x0022, 0xfddd, 0xfc6d, 0xfad2, 0xf879,
+ 0xf5e7, 0xf398, 0xf196, 0xefa2, 0xedd3, 0xecc1,
+ 0xec95, 0xed19, 0xee0e, 0xeead, 0xee76, 0xedcc,
+ 0xed30, 0xed46, 0xee64, 0xefd0, 0xf125, 0xf2aa,
+ 0xf3fd, 0xf4ac, 0xf4cd, 0xf4dc, 0xf595, 0xf66c,
+ 0xf642, 0xf5f1, 0xf68d, 0xf80b, 0xfabd, 0xfe4c,
+ 0x01b1, 0x047e, 0x05a9, 0x051d, 0x04f1, 0x055f,
+ 0x054d, 0x0544, 0x04fd, 0x03a1, 0x01ff, 0x0085,
+ 0xffe4, 0x01bf, 0x0579, 0x0934, 0x0c3e, 0x0df0,
+ 0x0e5a, 0x0e28, 0x0d1c, 0x0b94, 0x0a46, 0x0897,
+ 0x0624, 0x02da, 0xfe9b, 0xfaf8, 0xf96e, 0xf944,
+ 0xf985, 0xfa19, 0xfb7c, 0xfe48, 0x019b, 0x03f9,
+ 0x0581, 0x0722, 0x08cb, 0x094c, 0x07d4, 0x0596,
+ 0x043c, 0x03f1, 0x0474, 0x059e, 0x070d, 0x08b9,
+ 0x0a36, 0x0a38, 0x088a, 0x0691, 0x052a, 0x0403,
+ 0x0368, 0x048c, 0x06f2, 0x08a4, 0x0975, 0x0a5e,
+ 0x0aeb, 0x0a79, 0x097d, 0x084f, 0x06c8, 0x04c8,
+ 0x0298, 0x0133, 0x0159, 0x027d, 0x039c, 0x0447,
+ 0x042c, 0x02c9, 0x003e, 0xfd05, 0xf95c, 0xf69f,
+ 0xf673, 0xf79c, 0xf7da, 0xf7b8, 0xf839, 0xf882,
+ 0xf86b, 0xf866, 0xf7ab, 0xf677, 0xf6a4, 0xf811,
+ 0xf8f3, 0xf948, 0xf9c9, 0xf9ee, 0xf98b, 0xf8fa,
+ 0xf797, 0xf586, 0xf4b7, 0xf5e5, 0xf7b7, 0xf94d,
+ 0xfaf8, 0xfcea, 0xfea9, 0xff68, 0xfef8, 0xfe4c,
+ 0xfe2e, 0xfe5b, 0xff07, 0x00cb, 0x02dd, 0x043a,
+ 0x04f3, 0x04af, 0x0303, 0x00d8, 0xfeed, 0xfcf9,
+ 0xfa84, 0xf734, 0xf3c4, 0xf1e2, 0xf1fe, 0xf394,
+ 0xf6a3, 0xfacb, 0xfeec, 0x01f2, 0x02d8, 0x0127,
+ 0xfe42, 0xfca5, 0xfcee, 0xfd4b, 0xfc8f, 0xfb4b,
+ 0xfa29, 0xf9de, 0xfac3, 0xfbdf, 0xfcdf, 0xff0c,
+ 0x027c, 0x0573, 0x06e2, 0x0779, 0x0842, 0x0913,
+ 0x08ff, 0x079c, 0x0538, 0x0321, 0x02d9, 0x0445,
+ 0x0693, 0x09ce, 0x0db9, 0x1145, 0x13d2, 0x15c3,
+ 0x17e3, 0x1a20, 0x1b99, 0x1c02, 0x1b95, 0x1a1e,
+ 0x1763, 0x1404, 0x10e9, 0x0e0d, 0x0b41, 0x0923,
+ 0x07cf, 0x06a4, 0x0567, 0x03fd, 0x031a, 0x03c7,
+ 0x04fa, 0x056c, 0x05a2, 0x05e7, 0x0685, 0x0792,
+ 0x0763, 0x05fb, 0x052c, 0x046c, 0x02ff, 0x0122,
+ 0xfdef, 0xfa3b, 0xf83c, 0xf793, 0xf765, 0xf72d,
+ 0xf59d, 0xf377, 0xf24a, 0xf151, 0xf030, 0xf046,
+ 0xf270, 0xf5fb, 0xf931, 0xfb48, 0xfc93, 0xfd3b,
+ 0xfe2a, 0xfff6, 0x0167, 0x01f0, 0x01a6, 0xffe2,
+ 0xfccf, 0xf908, 0xf4ec, 0xf1c2, 0xefff, 0xeecf,
+ 0xee15, 0xee38, 0xefab, 0xf1df, 0xf2dd, 0xf2b2,
+ 0xf2e3, 0xf2c7, 0xf1b0, 0xf067, 0xef4e, 0xef5f,
+ 0xf156, 0xf3b0, 0xf59d, 0xf7f0, 0xfa88, 0xfd14,
+ 0x0025, 0x0347, 0x052a, 0x05b4, 0x0556, 0x03df,
+ 0x0210, 0x010d, 0x0006, 0xfe9d, 0xfead, 0x0070,
+ 0x01e1, 0x0229, 0x021b, 0x02f8, 0x051d, 0x076e,
+ 0x0940, 0x0b31, 0x0da2, 0x0fce, 0x1087, 0x0fdf,
+ 0x0e77, 0x0c01, 0x0981, 0x08fd, 0x09d1, 0x0b0b,
+ 0x0d48, 0x0f98, 0x10eb, 0x11ff, 0x12ea, 0x139c,
+ 0x14ad, 0x159e, 0x15e5, 0x15a4, 0x1467, 0x120c,
+ 0x0f3d, 0x0c8a, 0x0a1d, 0x0791, 0x049e, 0x0156,
+ 0xfde6, 0xfb8e, 0xfb42, 0xfbdd, 0xfc8d, 0xfd48,
+ 0xfd8c, 0xfe01, 0xff95, 0x01b5, 0x0462, 0x079a,
+ 0x09b7, 0x09e1, 0x089e, 0x0609, 0x027b, 0xff4c,
+ 0xfdb9, 0xfd6a, 0xfcdd, 0xfbb7, 0xfa53, 0xf8b5,
+ 0xf7b9, 0xf7a4, 0xf722, 0xf654, 0xf644, 0xf62b,
+ 0xf576, 0xf4f0, 0xf4c4, 0xf46e, 0xf453, 0xf5aa,
+ 0xf809, 0xf971, 0xfa18, 0xfb6e, 0xfc8e, 0xfcc5,
+ 0xfd30, 0xfe1a, 0xff60, 0x013f, 0x033f, 0x04e6,
+ 0x060d, 0x06a2, 0x071b, 0x072d, 0x05f0, 0x03b3,
+ 0x00f2, 0xfdf2, 0xfbee, 0xfbc2, 0xfd1f, 0xff66,
+ 0x0163, 0x022c, 0x0201, 0x0118, 0xfff6, 0x002f,
+ 0x0233, 0x0421, 0x04ab, 0x048b, 0x03f5, 0x01d6,
+ 0xfec9, 0xfcf7, 0xfcd0, 0xfd09, 0xfce2, 0xfc87,
+ 0xfc99, 0xfd9d, 0xff50, 0x010a, 0x0275, 0x0350,
+ 0x0377, 0x031b, 0x0244, 0x00ed, 0xff4a, 0xfd49,
+ 0xfb74, 0xfb02, 0xfbb2, 0xfcf6, 0x000c, 0x04e4,
+ 0x0936, 0x0c2d, 0x0deb, 0x0e4b, 0x0e56, 0x0ed9,
+ 0x0f47, 0x0f62, 0x0f0b, 0x0dcc, 0x0ba5, 0x08f4,
+ 0x0664, 0x0442, 0x0289, 0x0254, 0x0421, 0x064e,
+ 0x07ff, 0x09a1, 0x0ae5, 0x0b41, 0x0a74, 0x08e0,
+ 0x07f1, 0x0838, 0x08f6, 0x09b0, 0x0a09, 0x09c5,
+ 0x090a, 0x07b1, 0x05f3, 0x04e9, 0x050b, 0x0584,
+ 0x051a, 0x03b3, 0x0249, 0x011e, 0xfff4, 0xff2b,
+ 0xfeee, 0xfeef, 0xfedf, 0xfe3c, 0xfcbf, 0xfa72,
+ 0xf7fb, 0xf6f8, 0xf7d7, 0xf964, 0xfb77, 0xfe22,
+ 0x00a9, 0x030d, 0x04e3, 0x0539, 0x04ee, 0x04bb,
+ 0x0408, 0x0379, 0x0395, 0x0341, 0x0229, 0x00c9,
+ 0xff5a, 0xfe23, 0xfcb1, 0xfa9c, 0xf903, 0xf885,
+ 0xf86e, 0xf88b, 0xf931, 0xfa94, 0xfcdd, 0xffc2,
+ 0x02b2, 0x0579, 0x0802, 0x09d7, 0x0a72, 0x0a4f,
+ 0x0a56, 0x0a39, 0x093c, 0x0772, 0x0541, 0x0344,
+ 0x01a2, 0xffd9, 0xfe6b, 0xfdfc, 0xfdb5, 0xfd79,
+ 0xfe00, 0xfed7, 0xffe8, 0x01b2, 0x031d, 0x02e8,
+ 0x0140, 0xfe68, 0xfaec, 0xf815, 0xf679, 0xf60f,
+ 0xf734, 0xf9e1, 0xfd74, 0x01d5, 0x06e9, 0x0b3b,
+ 0x0d5a, 0x0d56, 0x0b79, 0x07ed, 0x0414, 0x010f,
+ 0xfe22, 0xfb51, 0xfa1d, 0xfa1f, 0xf9c4, 0xf992,
+ 0xfaad, 0xfcbb, 0xfefd, 0x00f0, 0x0294, 0x0476,
+ 0x0695, 0x08ae, 0x0b12, 0x0d97, 0x0f61, 0x0f7e,
+ 0x0da2, 0x0b89, 0x0b0f, 0x0b5d, 0x0b46, 0x0b33,
+ 0x0b23, 0x0aa8, 0x09e3, 0x0915, 0x0904, 0x0a3a,
+ 0x0b5c, 0x0aed, 0x099e, 0x091d, 0x09fd, 0x0b7f,
+ 0x0ca5, 0x0d06, 0x0c3c, 0x09e0, 0x06fd, 0x051e,
+ 0x0400, 0x034f, 0x03da, 0x04e0, 0x0520, 0x0584,
+ 0x0669, 0x069a, 0x0612, 0x051e, 0x0371, 0x01d8,
+ 0x014a, 0x0153, 0x010e, 0x004a, 0xff77, 0xfea1,
+ 0xfd58, 0xfbc5, 0xfa95, 0xfa68, 0xfb17, 0xfb36,
+ 0xfa1a, 0xf894, 0xf709, 0xf63c, 0xf776, 0xf9ee,
+ 0xfc0d, 0xfdbc, 0xff59, 0x0164, 0x0453, 0x0753,
+ 0x0932, 0x09a0, 0x0888, 0x05f9, 0x0320, 0x019d,
+ 0x014e, 0x00ca, 0xffb2, 0xfdd5, 0xfae5, 0xf845,
+ 0xf75c, 0xf7b4, 0xf871, 0xf838, 0xf582, 0xf104,
+ 0xece1, 0xea14, 0xe871, 0xe836, 0xea45, 0xee11,
+ 0xf18b, 0xf456, 0xf776, 0xfa83, 0xfc64, 0xfc6d,
+ 0xfaa8, 0xf8bd, 0xf821, 0xf7dc, 0xf725, 0xf727,
+ 0xf85f, 0xf9f7, 0xfb8b, 0xfcad, 0xfcef, 0xfd3a,
+ 0xfdf0, 0xfdde, 0xfd2a, 0xfd10, 0xfdbc, 0xffe9,
+ 0x0447, 0x08f8, 0x0c20, 0x0e25, 0x0f5a, 0x0ff8,
+ 0x1137, 0x1308, 0x13e5, 0x133c, 0x113f, 0x0e7e,
+ 0x0cb4, 0x0ccf, 0x0db0, 0x0e62, 0x0e6a, 0x0ce1,
+ 0x0a05, 0x07bb, 0x0775, 0x0904, 0x0b2a, 0x0cd7,
+ 0x0d50, 0x0c2b, 0x0a61, 0x0922, 0x07d9, 0x060c,
+ 0x049e, 0x03e9, 0x0389, 0x037f, 0x042e, 0x05b9,
+ 0x073e, 0x0747, 0x053c, 0x021c, 0xff8a, 0xfda3,
+ 0xfbba, 0xfad9, 0xfbc3, 0xfd25, 0xfdfe, 0xfde9,
+ 0xfcc9, 0xfc09, 0xfc86, 0xfd5f, 0xfe55, 0xff92,
+ 0x00f0, 0x02e9, 0x055d, 0x0719, 0x079c, 0x075f,
+ 0x0708, 0x0700, 0x0768, 0x07ce, 0x06eb, 0x041a,
+ 0x003c, 0xfc89, 0xfa2d, 0xf9a7, 0xfa04, 0xfa79,
+ 0xfac5, 0xfa79, 0xfa07, 0xfa16, 0xfa83, 0xfb7e,
+ 0xfc86, 0xfc4b, 0xfad3, 0xf89a, 0xf662, 0xf606,
+ 0xf785, 0xf944, 0xfbab, 0xff0a, 0x01fd, 0x0457,
+ 0x0689, 0x0853, 0x0992, 0x0937, 0x065e, 0x02f1,
+ 0x0088, 0xfdff, 0xfb3f, 0xf9db, 0xf9c7, 0xfa2a,
+ 0xfae4, 0xfb55, 0xfaeb, 0xfa72, 0xfa82, 0xfaa0,
+ 0xfacd, 0xfb57, 0xfbd4, 0xfc46, 0xfd64, 0xfeed,
+ 0x001e, 0x0150, 0x0319, 0x053e, 0x0758, 0x090a,
+ 0x097a, 0x0823, 0x05de, 0x03f2, 0x0303, 0x034f,
+ 0x03f9, 0x035d, 0x017f, 0xff71, 0xfd32, 0xfb2f,
+ 0xfa48, 0xf9fe, 0xf9e3, 0xfa2c, 0xfa53, 0xfa39,
+ 0xfab6, 0xfc2e, 0xfe79, 0x0127, 0x03a5, 0x05ac,
+ 0x0729, 0x07f5, 0x07e1, 0x0758, 0x071a, 0x063e,
+ 0x03a0, 0x00e1, 0xff79, 0xfe77, 0xfda2, 0xfdaf,
+ 0xfe9d, 0x001c, 0x0166, 0x01cc, 0x01cb, 0x01d8,
+ 0x01d0, 0x01d6, 0x02b9, 0x050c, 0x07ac, 0x0924,
+ 0x09c9, 0x0a27, 0x0a33, 0x0a3a, 0x0a5b, 0x0add,
+ 0x0bd1, 0x0bc6, 0x0a05, 0x078a, 0x04ec, 0x02cc,
+ 0x01ff, 0x0256, 0x033f, 0x0405, 0x040f, 0x039c,
+ 0x0316, 0x02db, 0x02e0, 0x0248, 0x0131, 0x002a,
+ 0xfe45, 0xfb7d, 0xf97d, 0xf8d5, 0xf997, 0xfc0e,
+ 0xff3f, 0x0213, 0x04a6, 0x06a5, 0x0767, 0x0787,
+ 0x0755, 0x058f, 0x021f, 0xfeb8, 0xfc01, 0xf9bc,
+ 0xf831, 0xf7ed, 0xf95a, 0xfbc7, 0xfddc, 0xff72,
+ 0x0054, 0xffac, 0xfdfd, 0xfcba, 0xfd2d, 0xff9a,
+ 0x020c, 0x0317, 0x0374, 0x037b, 0x0378, 0x0415,
+ 0x04d7, 0x0595, 0x065c, 0x05f8, 0x0414, 0x01e1,
+ 0x005c, 0xffdd, 0xffff, 0x0096, 0x0188, 0x014c,
+ 0xff40, 0xfca3, 0xfa46, 0xf8d9, 0xf8ae, 0xf8ab,
+ 0xf874, 0xf837, 0xf747, 0xf603, 0xf56c, 0xf5a2,
+ 0xf6f1, 0xf969, 0xfc41, 0xfe9d, 0xffed, 0x0097,
+ 0x0160, 0x0223, 0x030d, 0x0439, 0x0470, 0x039f,
+ 0x0316, 0x028d, 0x01a3, 0x0197, 0x028c, 0x0389,
+ 0x04cd, 0x0628, 0x0638, 0x0512, 0x03ab, 0x0282,
+ 0x030a, 0x05e1, 0x08e7, 0x0ad6, 0x0c56, 0x0dcd,
+ 0x1009, 0x13c7, 0x1815, 0x1ba3, 0x1da1, 0x1da1,
+ 0x1c29, 0x1a19, 0x185d, 0x1764, 0x1605, 0x13e8,
+ 0x1246, 0x106e, 0x0d37, 0x09cd, 0x06e8, 0x046d,
+ 0x02ec, 0x01af, 0xffcd, 0xfe12, 0xfccb, 0xfc26,
+ 0xfd93, 0x010c, 0x0516, 0x0917, 0x0c7e, 0x0e61,
+ 0x0e6b, 0x0cad, 0x09a3, 0x05ba, 0x0108, 0xfc2e,
+ 0xf819, 0xf56a, 0xf447, 0xf402, 0xf492, 0xf6cd,
+ 0xf9fd, 0xfd0c, 0x003f, 0x030d, 0x042d, 0x03b0,
+ 0x0292, 0x0211, 0x02d9, 0x0423, 0x04dc, 0x0471,
+ 0x02d5, 0x00e5, 0xffad, 0xff94, 0x006a, 0x0142,
+ 0x011d, 0xffd3, 0xfdf0, 0xfc43, 0xfaf6, 0xf97d,
+ 0xf75d, 0xf497, 0xf1c7, 0xef36, 0xec77, 0xea19,
+ 0xe8c8, 0xe814, 0xe834, 0xe910, 0xe983, 0xe9fe,
+ 0xeb26, 0xec60, 0xee0c, 0xf036, 0xf1f7, 0xf391,
+ 0xf4cf, 0xf55a, 0xf666, 0xf7ca, 0xf861, 0xf869,
+ 0xf7d8, 0xf733, 0xf818, 0xfa05, 0xfbc7, 0xfd8a,
+ 0xff1d, 0x004d, 0x0166, 0x0271, 0x03e7, 0x05a7,
+ 0x0632, 0x0509, 0x0342, 0x0253, 0x032b, 0x0535,
+ 0x0783, 0x09fd, 0x0c5e, 0x0e78, 0x10eb, 0x1428,
+ 0x17ca, 0x1a86, 0x1b1a, 0x19e2, 0x183b, 0x16e3,
+ 0x1606, 0x157b, 0x14c4, 0x13c3, 0x12b0, 0x113a,
+ 0x0eff, 0x0c56, 0x0998, 0x06d6, 0x0433, 0x0199,
+ 0xff61, 0xfe34, 0xfd8e, 0xfd34, 0xfe4a, 0x00b3,
+ 0x032d, 0x0507, 0x0611, 0x0744, 0x097f, 0x0b8a,
+ 0x0c3e, 0x0b75, 0x0948, 0x0765, 0x070f, 0x074e,
+ 0x07af, 0x07f6, 0x074b, 0x0662, 0x061e, 0x0606,
+ 0x0638, 0x06bb, 0x0631, 0x03cd, 0x0083, 0xfdfb,
+ 0xfce7, 0xfcdf, 0xfd70, 0xfe10, 0xfe1c, 0xfd89,
+ 0xfcd2, 0xfcfc, 0xfe84, 0x0049, 0x0153, 0x01c3,
+ 0x01d8, 0x01ec, 0x020a, 0x01fd, 0x0228, 0x0237,
+ 0x0102, 0xfeb5, 0xfc48, 0xfa12, 0xf7f8, 0xf594,
+ 0xf2ec, 0xf10f, 0xf0bf, 0xf18d, 0xf2e7, 0xf4d0,
+ 0xf75a, 0xfa1b, 0xfbfb, 0xfc07, 0xfb0d, 0xfa80,
+ 0xfa52, 0xfa3d, 0xf9f7, 0xf855, 0xf5e5, 0xf458,
+ 0xf389, 0xf372, 0xf448, 0xf4db, 0xf51b, 0xf5e0,
+ 0xf6d2, 0xf7ea, 0xf934, 0xfa40, 0xfafe, 0xfaba,
+ 0xf96c, 0xf8d4, 0xf983, 0xfafe, 0xfcef, 0xfe1f,
+ 0xfdff, 0xfd3b, 0xfc72, 0xfcac, 0xfe03, 0xff77,
+ 0x0103, 0x025e, 0x0301, 0x03d7, 0x051f, 0x065a,
+ 0x07f6, 0x096c, 0x09a7, 0x0953, 0x095c, 0x0991,
+ 0x0937, 0x0749, 0x0388, 0xff6d, 0xfc7b, 0xfad4,
+ 0xfa64, 0xfb91, 0xfe34, 0x0166, 0x03ee, 0x055b,
+ 0x06f4, 0x0963, 0x0bd0, 0x0dce, 0x0e5b, 0x0cbe,
+ 0x0ab4, 0x0942, 0x0866, 0x092b, 0x0a92, 0x0acf,
+ 0x0ad2, 0x0b0a, 0x0aa7, 0x09e1, 0x08ed, 0x080a,
+ 0x075f, 0x0657, 0x0530, 0x043c, 0x0378, 0x038a,
+ 0x03cc, 0x0363, 0x0326, 0x02ff, 0x02c8, 0x039d,
+ 0x0545, 0x0710, 0x08a3, 0x08fb, 0x0879, 0x082e,
+ 0x07ca, 0x073d, 0x066b, 0x0478, 0x0149, 0xfdbf,
+ 0xfb43, 0xfa43, 0xf921, 0xf6bb, 0xf33c, 0xef70,
+ 0xed32, 0xed37, 0xeebb, 0xf1ee, 0xf644, 0xf98f,
+ 0xfadd, 0xfb19, 0xfb7c, 0xfc42, 0xfcf4, 0xfda6,
+ 0xfdd8, 0xfcd4, 0xfbc8, 0xfbab, 0xfc2a, 0xfd57,
+ 0xfe46, 0xfd97, 0xfc5c, 0xfbcc, 0xfb43, 0xfadd,
+ 0xfb42, 0xfb7e, 0xfafa, 0xfaae, 0xfa93, 0xfa25,
+ 0xfa39, 0xfad0, 0xfaeb, 0xfad2, 0xfad5, 0xfaa7,
+ 0xfa9b, 0xfae0, 0xfb69, 0xfc29, 0xfc49, 0xfb6e,
+ 0xfaa6, 0xfae5, 0xfc51, 0xfe52, 0x0020, 0x0153,
+ 0x0198, 0x016b, 0x0197, 0x0179, 0x0031, 0xfda6,
+ 0xfa01, 0xf66a, 0xf450, 0xf40d, 0xf5c5, 0xf96f,
+ 0xfdde, 0x0149, 0x0308, 0x042a, 0x057a, 0x06b9,
+ 0x07f0, 0x08cb, 0x08b7, 0x07fa, 0x06d5, 0x0603,
+ 0x06bc, 0x0841, 0x092b, 0x0971, 0x09cc, 0x0b4e,
+ 0x0e25, 0x1195, 0x1543, 0x17f4, 0x18d4, 0x191a,
+ 0x18db, 0x179e, 0x163f, 0x145d, 0x1172, 0x0e70,
+ 0x0b92, 0x0903, 0x0753, 0x069e, 0x0795, 0x09c7,
+ 0x0b24, 0x0b53, 0x0b55, 0x0bd0, 0x0cdc, 0x0d51,
+ 0x0c4b, 0x0a40, 0x07c6, 0x0584, 0x038a, 0x0162,
+ 0xfee0, 0xfb55, 0xf747, 0xf490, 0xf2a7, 0xf0e2,
+ 0xf095, 0xf15a, 0xf25b, 0xf425, 0xf661, 0xf909,
+ 0xfc5a, 0xfee7, 0x0039, 0x00fb, 0x00d4, 0xffbe,
+ 0xfe42, 0xfd30, 0xfda8, 0xff2d, 0x001c, 0x0002,
+ 0xff3f, 0xfe65, 0xfdb0, 0xfca8, 0xfb24, 0xf8cc,
+ 0xf56e, 0xf295, 0xf18b, 0xf19e, 0xf218, 0xf2cc,
+ 0xf334, 0xf2ec, 0xf240, 0xf197, 0xf0e0, 0xf080,
+ 0xf159, 0xf2c4, 0xf33b, 0xf2ba, 0xf247, 0xf2d6,
+ 0xf45c, 0xf545, 0xf4b9, 0xf3cb, 0xf348, 0xf315,
+ 0xf346, 0xf3af, 0xf35a, 0xf1f7, 0xf0d1, 0xf0f2,
+ 0xf224, 0xf461, 0xf79a, 0xfb16, 0xfe62, 0x014d,
+ 0x03f6, 0x06cf, 0x0937, 0x0a53, 0x0a70, 0x09f5,
+ 0x0955, 0x08c5, 0x07f4, 0x07bd, 0x08d6, 0x0a46,
+ 0x0bb2, 0x0d0f, 0x0e28, 0x1031, 0x1345, 0x1615,
+ 0x18ae, 0x1a84, 0x1ad5, 0x1b07, 0x1b74, 0x1b66,
+ 0x1b32, 0x1a36, 0x1801, 0x1561, 0x123f, 0x0f32,
+ 0x0d87, 0x0d21, 0x0e26, 0x0fd1, 0x0fab, 0x0dba,
+ 0x0bc2, 0x0a87, 0x0a8a, 0x0ae7, 0x0a6d, 0x09fd,
+ 0x09c9, 0x0917, 0x086f, 0x07ba, 0x0651, 0x04bb,
+ 0x0341, 0x01c4, 0x00af, 0x0056, 0x00c3, 0x01b2,
+ 0x0292, 0x0327, 0x036f, 0x035f, 0x0308, 0x0270,
+ 0x01a1, 0x0123, 0x0174, 0x0207, 0x0226, 0x022c,
+ 0x0216, 0x0139, 0xffc6, 0xfe33, 0xfd0d, 0xfcfa,
+ 0xfd28, 0xfcbf, 0xfc68, 0xfc10, 0xfb8b, 0xfba5,
+ 0xfc19, 0xfc70, 0xfd15, 0xfdd4, 0xfe82, 0xff32,
+ 0xff59, 0xfee3, 0xfe53, 0xfe6b, 0xff7f, 0x0031,
+ 0xff69, 0xfddd, 0xfc40, 0xfb85, 0xfc6d, 0xfdbf,
+ 0xfec0, 0x0003, 0x0122, 0x019a, 0x013c, 0xffa2,
+ 0xfda9, 0xfc3c, 0xfaa8, 0xf8c0, 0xf74e, 0xf688,
+ 0xf67c, 0xf75b, 0xf8e9, 0xfab6, 0xfc68, 0xfdd8,
+ 0xff28, 0x003f, 0x00d4, 0x0117, 0x015a, 0x017a,
+ 0x01b5, 0x026a, 0x0306, 0x02d3, 0x0192, 0xffcb,
+ 0xff2a, 0xfffd, 0x009b, 0x00d6, 0x0152, 0x01a7,
+ 0x0236, 0x0386, 0x050f, 0x069c, 0x07ed, 0x08b0,
+ 0x0964, 0x09f1, 0x09ee, 0x09d4, 0x09ec, 0x0aa2,
+ 0x0c39, 0x0d32, 0x0c7e, 0x0ae8, 0x0936, 0x0823,
+ 0x0802, 0x07cb, 0x0707, 0x068c, 0x06bc, 0x0736,
+ 0x0769, 0x0772, 0x081f, 0x0930, 0x09ab, 0x097a,
+ 0x08f7, 0x088a, 0x08ab, 0x0939, 0x0a1f, 0x0b3f,
+ 0x0bc7, 0x0ba3, 0x0b7b, 0x0b21, 0x0a66, 0x0973,
+ 0x0806, 0x064b, 0x0522, 0x055e, 0x06e0, 0x0802,
+ 0x07b7, 0x06cb, 0x05c8, 0x04cf, 0x044a, 0x0441,
+ 0x04f7, 0x064c, 0x073e, 0x080d, 0x092b, 0x09d4,
+ 0x0a1b, 0x0a09, 0x08e7, 0x0718, 0x04b9, 0x0177,
+ 0xfe7a, 0xfcac, 0xfbf3, 0xfbd2, 0xfb4d, 0xfaaa,
+ 0xfad8, 0xfb7c, 0xfc85, 0xfda6, 0xfe09, 0xfeae,
+ 0xffca, 0xffae, 0xfec4, 0xfe19, 0xfd3f, 0xfc78,
+ 0xfbfc, 0xfb35, 0xfa5e, 0xf9c9, 0xf95d, 0xf968,
+ 0xfa34, 0xfbce, 0xfe08, 0x0037, 0x01dd, 0x031c,
+ 0x0416, 0x0458, 0x03b9, 0x02de, 0x022c, 0x0192,
+ 0x00d2, 0xff61, 0xfd7a, 0xfc02, 0xfb12, 0xfaa5,
+ 0xfb02, 0xfc35, 0xfe17, 0xffaf, 0x0035, 0x0025,
+ 0xffe6, 0xfffa, 0x009b, 0x005f, 0xff26, 0xfe3c,
+ 0xfd59, 0xfcdd, 0xfdf8, 0xffdd, 0x019f, 0x028a,
+ 0x01d4, 0x00a9, 0xffea, 0xfefe, 0xfe52, 0xfde3,
+ 0xfd35, 0xfd17, 0xfd2f, 0xfca4, 0xfc20, 0xfb85,
+ 0xfa7b, 0xf9ed, 0xfa04, 0xfaae, 0xfc6a, 0xfea3,
+ 0x00b1, 0x02eb, 0x0549, 0x07c8, 0x0ad8, 0x0e01,
+ 0x1054, 0x11cd, 0x1262, 0x1192, 0x1008, 0x0f49,
+ 0x0fc3, 0x10b5, 0x1121, 0x108f, 0x0f57, 0x0dd8,
+ 0x0c50, 0x0b5b, 0x0b4c, 0x0c0c, 0x0d62, 0x0e8c,
+ 0x0e8a, 0x0d46, 0x0c07, 0x0be4, 0x0c31, 0x0bef,
+ 0x0ac1, 0x0802, 0x042a, 0x0125, 0xffd2, 0xffd9,
+ 0x005b, 0x0028, 0xff73, 0xff0e, 0xfeac, 0xfe4f,
+ 0xfe5d, 0xfe89, 0xfec3, 0xfefa, 0xfeb3, 0xfe50,
+ 0xfe86, 0xff15, 0xff71, 0xff8f, 0xffdd, 0x009c,
+ 0x0194, 0x0271, 0x02ea, 0x02df, 0x029f, 0x0270,
+ 0x022f, 0x01da, 0x019d, 0x0165, 0x0111, 0x0049,
+ 0xfec6, 0xfd71, 0xfd1a, 0xfc82, 0xfab4, 0xf84e,
+ 0xf5d1, 0xf427, 0xf424, 0xf4df, 0xf605, 0xf803,
+ 0xf9d7, 0xfaa2, 0xf9e0, 0xf732, 0xf457, 0xf2c7,
+ 0xf23b, 0xf2f3, 0xf3e3, 0xf365, 0xf277, 0xf1ba,
+ 0xf116, 0xf1c6, 0xf319, 0xf3bd, 0xf4b1, 0xf5c0,
+ 0xf61c, 0xf69d, 0xf6ff, 0xf6e3, 0xf771, 0xf8a8,
+ 0xf9cc, 0xfadc, 0xfba5, 0xfbf6, 0xfba5, 0xfab9,
+ 0xfa12, 0xfa0c, 0xfa7e, 0xfbac, 0xfd17, 0xfe14,
+ 0xff30, 0x00df, 0x02fc, 0x0541, 0x0756, 0x09bc,
+ 0x0d12, 0x1038, 0x1202, 0x132c, 0x1484, 0x1589,
+ 0x1540, 0x1320, 0x0fd2, 0x0cf2, 0x0b56, 0x0a86,
+ 0x09f2, 0x0997, 0x0978, 0x08f6, 0x078e, 0x05d9,
+ 0x04a1, 0x0423, 0x04b8, 0x061b, 0x073d, 0x0821,
+ 0x094e, 0x0a4b, 0x0acf, 0x0b29, 0x0b25, 0x0a7e,
+ 0x0977, 0x085e, 0x077c, 0x06f1, 0x066e, 0x05a1,
+ 0x04a3, 0x03ab, 0x0296, 0x0183, 0x0131, 0x0196,
+ 0x01b1, 0x018e, 0x01ae, 0x0178, 0x00f8, 0x0119,
+ 0x0152, 0x00d7, 0x0063, 0x006a, 0x006f, 0x003b,
+ 0xffed, 0x000a, 0x00e1, 0x0180, 0x0113, 0x0011,
+ 0xff4f, 0xff1a, 0xfeda, 0xfe14, 0xfd5e, 0xfd0f,
+ 0xfd12, 0xfe20, 0x009b, 0x0403, 0x0793, 0x0994,
+ 0x08f6, 0x071a, 0x0559, 0x03b9, 0x0299, 0x0249,
+ 0x0229, 0x01b3, 0x00f2, 0x0018, 0xff2e, 0xfe25,
+ 0xfd1b, 0xfc03, 0xfac2, 0xf9e0, 0xf99e, 0xf940,
+ 0xf8a6, 0xf8aa, 0xf95b, 0xf9e7, 0xf9a0, 0xf875,
+ 0xf718, 0xf628, 0xf56d, 0xf4ed, 0xf4d5, 0xf45b,
+ 0xf323, 0xf204, 0xf169, 0xf163, 0xf247, 0xf3ae,
+ 0xf4cc, 0xf577, 0xf604, 0xf748, 0xf9f2, 0xfd58,
+ 0x0069, 0x0300, 0x04eb, 0x054f, 0x0416, 0x0287,
+ 0x01c7, 0x01d6, 0x0236, 0x0299, 0x0301, 0x039a,
+ 0x03e1, 0x02d8, 0x00ca, 0xff64, 0xff6d, 0x004b,
+ 0x019b, 0x0320, 0x043c, 0x04f7, 0x0605, 0x0782,
+ 0x08f3, 0x09e6, 0x0a0d, 0x095d, 0x085e, 0x07ec,
+ 0x07e9, 0x0752, 0x065e, 0x05ff, 0x05f8, 0x0608,
+ 0x0689, 0x0732, 0x0774, 0x0708, 0x060e, 0x0559,
+ 0x0559, 0x0567, 0x04f1, 0x03db, 0x0274, 0x013b,
+ 0x0034, 0xff77, 0xffa0, 0x00d2, 0x028a, 0x0475,
+ 0x0663, 0x07b9, 0x083e, 0x08e0, 0x09ce, 0x09b5,
+ 0x087b, 0x0738, 0x0634, 0x05a6, 0x05c9, 0x0662,
+ 0x07b0, 0x0970, 0x0a2d, 0x08f5, 0x0619, 0x031b,
+ 0x0193, 0x0143, 0x0156, 0x01ad, 0x01b4, 0x0109,
+ 0x005a, 0x0040, 0x00b0, 0x00e7, 0x0002, 0xfe49,
+ 0xfcd6, 0xfc7d, 0xfd35, 0xfe63, 0xffff, 0x01b4,
+ 0x0244, 0x01bb, 0x010a, 0x0044, 0xffb1, 0xff68,
+ 0xfe68, 0xfca3, 0xfb18, 0xf9e4, 0xf886, 0xf71a,
+ 0xf653, 0xf63f, 0xf65e, 0xf6cd, 0xf796, 0xf869,
+ 0xf9b4, 0xfbf2, 0xfeb3, 0x0113, 0x023d, 0x0262,
+ 0x020f, 0x00ad, 0xfe1f, 0xfb9b, 0xfa2e, 0xfa18,
+ 0xfaa2, 0xfb4a, 0xfceb, 0xff6e, 0x0156, 0x0214,
+ 0x01c3, 0x0135, 0x019b, 0x022c, 0x01ab, 0x008c,
+ 0xff5e, 0xfeaa, 0xff1c, 0x0012, 0x00b0, 0x00ab,
+ 0xffac, 0xfe37, 0xfd7b, 0xfdcf, 0xfef7, 0x0092,
+ 0x022a, 0x0379, 0x0469, 0x0539, 0x0666, 0x086a,
+ 0x0b5d, 0x0e06, 0x0ef0, 0x0e6f, 0x0d59, 0x0be0,
+ 0x0af7, 0x0b72, 0x0c4b, 0x0c55, 0x0c1f, 0x0ca7,
+ 0x0dda, 0x0f37, 0x105a, 0x110e, 0x11ae, 0x1265,
+ 0x12b3, 0x1299, 0x1222, 0x10bc, 0x0ea7, 0x0cc3,
+ 0x0b93, 0x0ba8, 0x0cb5, 0x0d9c, 0x0df8, 0x0d7f,
+ 0x0b68, 0x07ac, 0x0377, 0x0092, 0xffe7, 0x00b6,
+ 0x01f4, 0x028f, 0x01d1, 0x011a, 0x022b, 0x04f2,
+ 0x0897, 0x0b6d, 0x0bbc, 0x0a56, 0x08f8, 0x07ff,
+ 0x07a6, 0x0818, 0x08cf, 0x0951, 0x0902, 0x0752,
+ 0x04d7, 0x02f7, 0x0247, 0x01db, 0x00bb, 0xff18,
+ 0xfcec, 0xf9e8, 0xf705, 0xf554, 0xf44f, 0xf31a,
+ 0xf1b4, 0xf0f6, 0xf1cf, 0xf3f8, 0xf64a, 0xf7fc,
+ 0xf8be, 0xf899, 0xf805, 0xf76a, 0xf6bf, 0xf5c8,
+ 0xf46e, 0xf2ee, 0xf1cc, 0xf192, 0xf258, 0xf3e3,
+ 0xf5ff, 0xf802, 0xf90a, 0xf943, 0xf95d, 0xf960,
+ 0xf980, 0xfa4e, 0xfb7d, 0xfc5c, 0xfcf0, 0xfd6e,
+ 0xfded, 0xfeb6, 0xffb8, 0x0005, 0xfed1, 0xfc93,
+ 0xfa88, 0xf97a, 0xf98b, 0xfabb, 0xfd1f, 0x0053,
+ 0x0359, 0x05e4, 0x08c9, 0x0c29, 0x0f27, 0x114e,
+ 0x1269, 0x1238, 0x1131, 0x101a, 0x0f45, 0x0eb1,
+ 0x0dbd, 0x0b6d, 0x082c, 0x05e4, 0x05b0, 0x06ee,
+ 0x0893, 0x09e5, 0x0a66, 0x0a2b, 0x097d, 0x0875,
+ 0x07aa, 0x07b3, 0x0835, 0x08d8, 0x09ec, 0x0baf,
+ 0x0df3, 0x104f, 0x125c, 0x13b7, 0x13f2, 0x1334,
+ 0x11da, 0x0ff4, 0x0e34, 0x0d32, 0x0c3a, 0x0af6,
+ 0x09df, 0x091b, 0x08e2, 0x08ee, 0x0859, 0x0739,
+ 0x05bf, 0x0382, 0x0140, 0x0002, 0xffaf, 0x002b,
+ 0x0167, 0x02bf, 0x0392, 0x03cc, 0x03d1, 0x03a1,
+ 0x02db, 0x019e, 0xffb9, 0xfccb, 0xf9ae, 0xf75f,
+ 0xf670, 0xf754, 0xf8a6, 0xf891, 0xf7e2, 0xf7ff,
+ 0xf929, 0xfbc3, 0xff5c, 0x0255, 0x041b, 0x0515,
+ 0x0573, 0x054d, 0x04b0, 0x039b, 0x0252, 0x012f,
+ 0x009e, 0x010c, 0x0231, 0x0300, 0x02d1, 0x01dc,
+ 0x007c, 0xfee8, 0xfd5a, 0xfc15, 0xfb1d, 0xfa49,
+ 0xf9e3, 0xfa5e, 0xfb45, 0xfc0e, 0xfcd4, 0xfd41,
+ 0xfcde, 0xfbef, 0xfa6a, 0xf7e7, 0xf502, 0xf316,
+ 0xf28c, 0xf28c, 0xf2a9, 0xf35a, 0xf47f, 0xf5cd,
+ 0xf77e, 0xf949, 0xfaf9, 0xfc81, 0xfcb6, 0xfb74,
+ 0xfa7a, 0xfa90, 0xfb7b, 0xfcc3, 0xfce5, 0xfb5e,
+ 0xf996, 0xf8a3, 0xf8eb, 0xfa92, 0xfd2f, 0xffe5,
+ 0x0174, 0x016f, 0x00fb, 0x00eb, 0x014e, 0x0231,
+ 0x0302, 0x0365, 0x0404, 0x052b, 0x06a9, 0x0865,
+ 0x0a1b, 0x0b9a, 0x0cbb, 0x0d49, 0x0d4a, 0x0cd1,
+ 0x0c2a, 0x0bb6, 0x0b49, 0x0af6, 0x0af6, 0x0aa4,
+ 0x0983, 0x0789, 0x04b6, 0x01e8, 0xffca, 0xfddf,
+ 0xfc66, 0xfc2f, 0xfced, 0xfe3b, 0x0039, 0x028f,
+ 0x0480, 0x05c3, 0x0686, 0x06ef, 0x0720, 0x06f8,
+ 0x05ab, 0x0338, 0x00d6, 0xfefd, 0xfd76, 0xfc5b,
+ 0xfb0e, 0xf8f1, 0xf6e4, 0xf64d, 0xf7d3, 0xfb0a,
+ 0xfeca, 0x01e9, 0x03c1, 0x04a0, 0x050e, 0x04b0,
+ 0x0381, 0x021a, 0x007e, 0xff08, 0xfe80, 0xff07,
+ 0x00af, 0x02fb, 0x046b, 0x048c, 0x0437, 0x0419,
+ 0x03f7, 0x034c, 0x02d4, 0x0346, 0x03d8, 0x0485,
+ 0x05b9, 0x0690, 0x06c4, 0x066b, 0x050b, 0x0330,
+ 0x00ed, 0xfdae, 0xfaa4, 0xf8a3, 0xf74c, 0xf755,
+ 0xf8c6, 0xfa6d, 0xfbd6, 0xfcbf, 0xfd17, 0xfd29,
+ 0xfcbd, 0xfbd1, 0xfa4b, 0xf82f, 0xf6eb, 0xf6e0,
+ 0xf6ec, 0xf72f, 0xf78a, 0xf710, 0xf66e, 0xf689,
+ 0xf792, 0xf9f7, 0xfce9, 0xfeee, 0x0022, 0x0111,
+ 0x0153, 0x0081, 0xff2f, 0xfe36, 0xfd5a, 0xfbfc,
+ 0xfa6c, 0xf992, 0xfa7a, 0xfd4a, 0x0067, 0x02bc,
+ 0x04de, 0x06f7, 0x0843, 0x089e, 0x08a6, 0x08e7,
+ 0x097a, 0x0a43, 0x0b10, 0x0b9c, 0x0b85, 0x0a56,
+ 0x0871, 0x0727, 0x06e1, 0x06ec, 0x06ce, 0x065a,
+ 0x05f6, 0x066b, 0x07c3, 0x09cc, 0x0c37, 0x0df0,
+ 0x0eb0, 0x0f57, 0x0fcc, 0x0f48, 0x0dac, 0x0b6c,
+ 0x0965, 0x081d, 0x0714, 0x0599, 0x035f, 0x008c,
+ 0xfdf0, 0xfc57, 0xfbf1, 0xfc88, 0xfdae, 0xfeef,
+ 0xffee, 0x0082, 0x00e7, 0x00ff, 0x006b, 0xffd9,
+ 0x0010, 0x0083, 0x00b5, 0x010e, 0x01db, 0x030a,
+ 0x0438, 0x050f, 0x05d8, 0x066d, 0x0629, 0x0598,
+ 0x05a6, 0x0622, 0x06b1, 0x075a, 0x082d, 0x08fa,
+ 0x090c, 0x07f4, 0x0611, 0x03c8, 0x015a, 0xfede,
+ 0xfbf5, 0xf8e3, 0xf664, 0xf488, 0xf390, 0xf3e0,
+ 0xf49d, 0xf4c0, 0xf448, 0xf36f, 0xf281, 0xf1ed,
+ 0xf191, 0xf0f1, 0xf00b, 0xef58, 0xef0a, 0xeed5,
+ 0xee96, 0xee5e, 0xee27, 0xee2d, 0xeeca, 0xf02e,
+ 0xf270, 0xf50b, 0xf707, 0xf835, 0xf8bb, 0xf861,
+ 0xf77e, 0xf6be, 0xf641, 0xf64b, 0xf728, 0xf88a,
+ 0xfa3a, 0xfbf8, 0xfd5c, 0xfece, 0x00b1, 0x028f,
+ 0x0453, 0x065d, 0x08a4, 0x0b06, 0x0d40, 0x0f27,
+ 0x10f2, 0x1219, 0x11ef, 0x110e, 0x1024, 0x0f49,
+ 0x0e8b, 0x0d71, 0x0bf8, 0x0b48, 0x0b75, 0x0bd7,
+ 0x0cfe, 0x0f11, 0x10ea, 0x11d7, 0x1180, 0x0f8e,
+ 0x0ce8, 0x0afe, 0x09f8, 0x0938, 0x0891, 0x07f8,
+ 0x0703, 0x0581, 0x03ba, 0x0222, 0x0120, 0x00ab,
+ 0x00bf, 0x01fd, 0x0448, 0x065e, 0x07d0, 0x08c6,
+ 0x08ed, 0x088c, 0x0847, 0x07f0, 0x0751, 0x0684,
+ 0x059b, 0x04eb, 0x04d8, 0x054d, 0x05d2, 0x05ee,
+ 0x05b4, 0x0585, 0x0577, 0x058a, 0x05a7, 0x05c4,
+ 0x0623, 0x0691, 0x06b1, 0x0691, 0x05fa, 0x04d9,
+ 0x0390, 0x01f9, 0xffc9, 0xfd28, 0xfaa7, 0xf94e,
+ 0xf90e, 0xf8da, 0xf913, 0xfa1b, 0xfae8, 0xfb4d,
+ 0xfb9c, 0xfb95, 0xfc0c, 0xfda5, 0xff35, 0xfff1,
+ 0x004a, 0x00c7, 0x018d, 0x0237, 0x0242, 0x01a2,
+ 0x0057, 0xfe1a, 0xfb4c, 0xf989, 0xf9c3, 0xfaf8,
+ 0xfbe3, 0xfc27, 0xfbd7, 0xfb74, 0xfb59, 0xfb8d,
+ 0xfc4a, 0xfd4e, 0xfddb, 0xfde5, 0xfe05, 0xfede,
+ 0x0055, 0x01a5, 0x02ca, 0x040c, 0x04e9, 0x0528,
+ 0x04ed, 0x0466, 0x0422, 0x040f, 0x038b, 0x02b7,
+ 0x01d8, 0x00d4, 0xffb0, 0xfe85, 0xfd96, 0xfd2b,
+ 0xfd3c, 0xfd65, 0xfd1d, 0xfcdf, 0xfdb1, 0xff2f,
+ 0x00a2, 0x022f, 0x037f, 0x03fc, 0x03e3, 0x03ee,
+ 0x045d, 0x0470, 0x0405, 0x03e5, 0x03be, 0x032a,
+ 0x02ae, 0x0200, 0x00ef, 0xffff, 0xff46, 0xffa1,
+ 0x01b4, 0x042c, 0x063a, 0x0834, 0x09ea, 0x0b4e,
+ 0x0c41, 0x0c57, 0x0be8, 0x0b3b, 0x0a09, 0x0897,
+ 0x07b9, 0x07fa, 0x08ce, 0x08eb, 0x0845, 0x084e,
+ 0x09a6, 0x0b16, 0x0b86, 0x0b50, 0x0ac4, 0x09af,
+ 0x0858, 0x0716, 0x0665, 0x06c1, 0x071d, 0x0657,
+ 0x04ec, 0x0392, 0x02cf, 0x02ab, 0x0221, 0x0139,
+ 0x0101, 0x0137, 0x0122, 0x00cb, 0x006e, 0x003f,
+ 0x002b, 0xfffd, 0xff73, 0xfe4e, 0xfd50, 0xfd70,
+ 0xfe5a, 0xff57, 0xfff7, 0x0010, 0xffe1, 0xff00,
+ 0xfd2f, 0xfbce, 0xfc07, 0xfd45, 0xfe78, 0xff56,
+ 0x005f, 0x01a3, 0x0288, 0x02fa, 0x0307, 0x0285,
+ 0x01e4, 0x01ca, 0x0298, 0x044b, 0x062a, 0x079b,
+ 0x08c5, 0x09ed, 0x0b03, 0x0b8f, 0x0b38, 0x09fe,
+ 0x0775, 0x03ac, 0x0002, 0xfd64, 0xfbc0, 0xfb1c,
+ 0xfb25, 0xfb0e, 0xfac9, 0xfae0, 0xfb05, 0xfa7c,
+ 0xf9ce, 0xfa04, 0xfb0d, 0xfc61, 0xfddd, 0xff85,
+ 0x012c, 0x0275, 0x035a, 0x03df, 0x0384, 0x0262,
+ 0x0140, 0x005f, 0xffd1, 0xff72, 0xfe7e, 0xfc89,
+ 0xf9ee, 0xf73d, 0xf4df, 0xf38f, 0xf477, 0xf711,
+ 0xf92e, 0xfac6, 0xfd11, 0xff79, 0x01a4, 0x0417,
+ 0x066b, 0x0869, 0x0a21, 0x0b50, 0x0c83, 0x0df3,
+ 0x0ea2, 0x0e9f, 0x0f5d, 0x111f, 0x124f, 0x122a,
+ 0x11a6, 0x1097, 0x0e16, 0x0b7d, 0x0a44, 0x0a08,
+ 0x0ac9, 0x0c7c, 0x0dd2, 0x0e19, 0x0df2, 0x0e11,
+ 0x0e41, 0x0d91, 0x0c31, 0x0b76, 0x0b3f, 0x0a2d,
+ 0x0853, 0x070a, 0x0664, 0x0569, 0x045b, 0x039b,
+ 0x0251, 0x00bf, 0xffd7, 0xfef3, 0xfdf0, 0xfd51,
+ 0xfc18, 0xfa47, 0xf931, 0xf84f, 0xf777, 0xf849,
+ 0xfabf, 0xfd9a, 0x0061, 0x02f0, 0x05c6, 0x08e6,
+ 0x0ace, 0x0af6, 0x0a00, 0x0823, 0x061f, 0x04dc,
+ 0x0491, 0x0544, 0x060f, 0x0603, 0x05b8, 0x057c,
+ 0x04fb, 0x0470, 0x0362, 0x00f1, 0xfdb1, 0xfae9,
+ 0xf8d7, 0xf6f2, 0xf597, 0xf551, 0xf53b, 0xf4ca,
+ 0xf490, 0xf4b6, 0xf522, 0xf50e, 0xf3e8, 0xf345,
+ 0xf342, 0xf226, 0xf129, 0xf17f, 0xf1b3, 0xf1c6,
+ 0xf256, 0xf2dc, 0xf348, 0xf33a, 0xf2c6, 0xf2f6,
+ 0xf36b, 0xf39b, 0xf357, 0xf1e1, 0xf045, 0xefa7,
+ 0xef7b, 0xf0b4, 0xf3ba, 0xf67f, 0xf8b1, 0xfb01,
+ 0xfd07, 0xfef0, 0x00b3, 0x01e3, 0x02f2, 0x0412,
+ 0x054f, 0x0707, 0x08d2, 0x0a85, 0x0cb5, 0x0f20,
+ 0x10cb, 0x11bc, 0x12cd, 0x1395, 0x1324, 0x1245,
+ 0x1198, 0x1081, 0x0f50, 0x0e67, 0x0dae, 0x0d80,
+ 0x0d3e, 0x0c4b, 0x0b92, 0x0af3, 0x09b8, 0x088c,
+ 0x078d, 0x0665, 0x05a1, 0x0519, 0x0404, 0x02ff,
+ 0x02dd, 0x0302, 0x0303, 0x0318, 0x02a5, 0x01e5,
+ 0x0212, 0x0272, 0x028f, 0x0357, 0x039e, 0x02b0,
+ 0x01ab, 0x0018, 0xfe90, 0xfe9e, 0xfed5, 0xfeb7,
+ 0xff16, 0xfeec, 0xfeed, 0xffa4, 0xfec7, 0xfcfa,
+ 0xfbe3, 0xfa6d, 0xf989, 0xfa62, 0xfb7f, 0xfce9,
+ 0xfeeb, 0x0031, 0x00f4, 0x01d1, 0x021f, 0x01d7,
+ 0x0142, 0x0062, 0xffd6, 0x0011, 0x0067, 0x000e,
+ 0xff83, 0xff41, 0xff07, 0xff37, 0xffc5, 0xffce,
+ 0xffce, 0xffde, 0xfec9, 0xfd38, 0xfc7f, 0xfc45,
+ 0xfc2b, 0xfc55, 0xfce8, 0xfd96, 0xfd91, 0xfd35,
+ 0xfcde, 0xfbcb, 0xfb41, 0xfc91, 0xfde3, 0xfe46,
+ 0xfe1d, 0xfc31, 0xf924, 0xf7bc, 0xf7fd, 0xf887,
+ 0xf9bb, 0xfba6, 0xfd1b, 0xfdd1, 0xfe16, 0xfd95,
+ 0xfca8, 0xfc3c, 0xfbf8, 0xfb8c, 0xfbe1, 0xfd03,
+ 0xfe56, 0xffec, 0x0198, 0x0336, 0x04e1, 0x0621,
+ 0x06e9, 0x074e, 0x06ab, 0x05c2, 0x05fd, 0x068f,
+ 0x06b6, 0x0714, 0x074c, 0x06f6, 0x0698, 0x05db,
+ 0x0453, 0x0274, 0x0048, 0xfe03, 0xfc79, 0xfbf6,
+ 0xfc7f, 0xfdcd, 0xff34, 0x00d0, 0x02dc, 0x0502,
+ 0x0749, 0x0924, 0x099d, 0x0965, 0x0963, 0x0976,
+ 0x09dd, 0x0a73, 0x0a04, 0x0832, 0x062e, 0x0581,
+ 0x0632, 0x06d8, 0x0747, 0x0819, 0x0814, 0x0620,
+ 0x035d, 0x0117, 0xff71, 0xfe19, 0xfccc, 0xfbce,
+ 0xfbd8, 0xfd66, 0x0038, 0x0370, 0x064d, 0x08b1,
+ 0x0a6c, 0x0b24, 0x0b23, 0x0ad6, 0x0a16, 0x0908,
+ 0x0821, 0x072f, 0x0605, 0x04eb, 0x040d, 0x033d,
+ 0x01fd, 0x0066, 0xff45, 0xfe52, 0xfd32, 0xfc4f,
+ 0xfae6, 0xf93e, 0xf969, 0xfa91, 0xfb4c, 0xfd06,
+ 0xff6a, 0x00f4, 0x0229, 0x0294, 0x0196, 0x0063,
+ 0xff68, 0xff0a, 0xffb8, 0xffc6, 0xfec4, 0xfe51,
+ 0xfe8c, 0xff09, 0x0012, 0x0175, 0x02c6, 0x0387,
+ 0x0361, 0x0313, 0x0310, 0x029e, 0x01ec, 0x01d5,
+ 0x013a, 0xff8b, 0xfee9, 0xfee0, 0xfd5a, 0xfcb1,
+ 0xfde5, 0xfe16, 0xfde3, 0xfe4b, 0xfde9, 0xfdf8,
+ 0xfea2, 0xfe75, 0xff1b, 0x0055, 0x008c, 0x01ae,
+ 0x035a, 0x0386, 0x03b3, 0x044d, 0x0406, 0x0316,
+ 0x01d8, 0x0074, 0xfe73, 0xfba7, 0xf9cc, 0xf91d,
+ 0xf8f4, 0xfa05, 0xfb4c, 0xfc20, 0xfd3c, 0xfd6b,
+ 0xfd47, 0xfe9a, 0xff93, 0xfff2, 0x0151, 0x0276,
+ 0x02e7, 0x033a, 0x0302, 0x0371, 0x0526, 0x06c9,
+ 0x0891, 0x0ae1, 0x0cc4, 0x0d9e, 0x0d7b, 0x0d39,
+ 0x0d45, 0x0cd2, 0x0c2c, 0x0c2b, 0x0c7b, 0x0cf4,
+ 0x0dad, 0x0e56, 0x0f56, 0x116e, 0x13a3, 0x1463,
+ 0x146c, 0x149d, 0x13fd, 0x12e5, 0x11e7, 0x1026,
+ 0x0ed8, 0x0ec8, 0x0e22, 0x0d4e, 0x0d02, 0x0b90,
+ 0x08e6, 0x05c8, 0x0297, 0x0067, 0xfeb4, 0xfcf7,
+ 0xfc8b, 0xfd5d, 0xfe7f, 0x001a, 0x0294, 0x056d,
+ 0x06c9, 0x06dd, 0x0788, 0x0745, 0x058f, 0x04c8,
+ 0x043d, 0x0381, 0x03b4, 0x03e2, 0x04af, 0x05bb,
+ 0x041b, 0x0239, 0x01e8, 0x0043, 0xff2b, 0xfff4,
+ 0xfe96, 0xfc07, 0xfb68, 0xfae3, 0xf95b, 0xf85f,
+ 0xf8e6, 0xfa15, 0xf9d7, 0xf840, 0xf6f4, 0xf5c7,
+ 0xf44f, 0xf350, 0xf353, 0xf388, 0xf31f, 0xf32b,
+ 0xf3d1, 0xf3f8, 0xf49e, 0xf56d, 0xf565, 0xf6e0,
+ 0xf8c1, 0xf807, 0xf77b, 0xf76c, 0xf571, 0xf4b9,
+ 0xf525, 0xf34b, 0xf2c9, 0xf4a0, 0xf440, 0xf39c,
+ 0xf50d, 0xf534, 0xf49d, 0xf5f1, 0xf73c, 0xf7a8,
+ 0xf8c8, 0xf96b, 0xf8a6, 0xf969, 0xfd15, 0x00de,
+ 0x0389, 0x05ff, 0x0762, 0x07ea, 0x0987, 0x0b71,
+ 0x0cb6, 0x0deb, 0x0e39, 0x0dea, 0x0dd4, 0x0c9e,
+ 0x0b6b, 0x0bd9, 0x0bfe, 0x0c63, 0x0e49, 0x0ee6,
+ 0x0dfc, 0x0da2, 0x0d41, 0x0ce7, 0x0d4a, 0x0e16,
+ 0x0efd, 0x0e9f, 0x0d33, 0x0c9b, 0x0bdd, 0x0af1,
+ 0x0b72, 0x0c41, 0x0d83, 0x0f3a, 0x0e6f, 0x0c65,
+ 0x0b60, 0x09f2, 0x093e, 0x099e, 0x08d2, 0x089c,
+ 0x0913, 0x07e0, 0x077b, 0x0864, 0x0819, 0x0805,
+ 0x07f7, 0x0620, 0x048b, 0x03e7, 0x02c2, 0x01a8,
+ 0x018e, 0x0287, 0x02e3, 0x0123, 0xfefd, 0xfd40,
+ 0xfbce, 0xfbe8, 0xfc0e, 0xfb48, 0xfbe4, 0xfced,
+ 0xfced, 0xfc9b, 0xfb21, 0xfa52, 0xfbfc, 0xfc62,
+ 0xfb65, 0xfbcb, 0xfbf0, 0xfc57, 0xfe91, 0x005f,
+ 0x0186, 0x023e, 0x00dd, 0xfeb5, 0xfd71, 0xfcc4,
+ 0xfcbd, 0xfd26, 0xfe09, 0xfef4, 0xfef9, 0xff2b,
+ 0xff76, 0xfecb, 0xfe0b, 0xfce6, 0xfbc1, 0xfc03,
+ 0xfc1a, 0xfcb3, 0xfe6f, 0xfdef, 0xfd7a, 0xffaa,
+ 0x004e, 0x000d, 0x0128, 0x011d, 0x0088, 0xff9f,
+ 0xfd3e, 0xfc08, 0xfbda, 0xfbea, 0xfd5f, 0xfd59,
+ 0xfc5d, 0xfdd2, 0xfee3, 0xfeea, 0xffa8, 0xff5d,
+ 0xff38, 0xffb7, 0xfed8, 0xfe83, 0xfe51, 0xfd32,
+ 0xfea7, 0x009c, 0xff3e, 0xfdbb, 0xfd82, 0xfd7b,
+ 0xfeca, 0x0063, 0x0070, 0x0049, 0x0179, 0x02a0,
+ 0x021d, 0x0254, 0x04a6, 0x0546, 0x03a3, 0x0312,
+ 0x02da, 0x01e5, 0x023b, 0x0374, 0x03cd, 0x048d,
+ 0x065c, 0x0770, 0x07dc, 0x088c, 0x0922, 0x0a0f,
+ 0x0aec, 0x0b60, 0x0c93, 0x0c19, 0x096a, 0x0929,
+ 0x09d2, 0x093e, 0x0a20, 0x0941, 0x0553, 0x0268,
+ 0xfee7, 0xfc21, 0xfc74, 0xfba3, 0xfcc0, 0x01d6,
+ 0x03e1, 0x0485, 0x05fe, 0x056f, 0x06dc, 0x08c0,
+ 0x0708, 0x0779, 0x0948, 0x0846, 0x06c0, 0x03cb,
+ 0x00fe, 0x00ac, 0xff2c, 0xfe3c, 0xfde0, 0xfa5d,
+ 0xf82c, 0xf634, 0xf1b6, 0xf25b, 0xf632, 0xf78e,
+ 0xfa1e, 0xfb8b, 0xfb2e, 0xfdde, 0xffdc, 0x0136,
+ 0x0528, 0x068a, 0x0608, 0x06e0, 0x067f, 0x06e7,
+ 0x07ce, 0x0561, 0x0343, 0x023a, 0x0003, 0x002b,
+ 0x012e, 0xfed6, 0xfca1, 0xfbd5, 0xfa33, 0xf9b3,
+ 0xfa78, 0xfab6, 0xfb92, 0xfb31, 0xf84a, 0xf7db,
+ 0xf997, 0xf9e9, 0xfc34, 0xff2b, 0xfe2f, 0xfe01,
+ 0xffed, 0xff37, 0xfdd4, 0xfd64, 0xfbab, 0xf906,
+ 0xf7df, 0xfa1b, 0xfbc9, 0xfa3e, 0xfad8, 0xfb8f,
+ 0xfa06, 0xfd2d, 0xff5f, 0xfb52, 0xfba0, 0xfe9d,
+ 0xfdeb, 0xfe2c, 0xfd20, 0xfb3b, 0xfd3a, 0xfd77,
+ 0xfdc7, 0x0135, 0xff8b, 0xfc61, 0xfcbd, 0xfb4f,
+ 0xfc2b, 0x012e, 0x043d, 0x06cb, 0x0967, 0x0b7d,
+ 0x0d54, 0x0a8c, 0x083a, 0x0b03, 0x09f2, 0x080f,
+ 0x0d33, 0x1158, 0x1219, 0x13d4, 0x12f5, 0x101d,
+ 0x1076, 0x1261, 0x1214, 0x106c, 0x0fde, 0x0e6d,
+ 0x0b3f, 0x0a46, 0x0b98, 0x0e8c, 0x1275, 0x1054,
+ 0x09a5, 0x080a, 0x099f, 0x0a51, 0x0b0f, 0x0907,
+ 0x04fe, 0x0314, 0x025a, 0x023f, 0x030c, 0x03bd,
+ 0x0342, 0x0097, 0x006c, 0x0514, 0x04fe, 0xffaa,
+ 0x0025, 0x0351, 0x0108, 0xfec0, 0x007e, 0x028e,
+ 0x04fb, 0x07aa, 0x0755, 0x06f4, 0x0973, 0x095d,
+ 0x06bb, 0x0801, 0x0a25, 0x0896, 0x06d2, 0x04c7,
+ 0x0048, 0xfda4, 0xfe2d, 0xfcad, 0xf85d, 0xf618,
+ 0xf6bd, 0xf617, 0xf334, 0xf125, 0xf07e, 0xefdf,
+ 0xef78, 0xef14, 0xed55, 0xebde, 0xee67, 0xf2ce,
+ 0xf3a6, 0xf206, 0xf1e9, 0xf33f, 0xf3ea, 0xf3c6,
+ 0xf54e, 0xf5db, 0xf162, 0xf00f, 0xf3c6, 0xf0eb,
+ 0xee28, 0xf38c, 0xf1b0, 0xea2d, 0xec58, 0xee8e,
+ 0xebc1, 0xee1f, 0xf0cf, 0xf0c0, 0xf3f4, 0xf5eb,
+ 0xf595, 0xf8e8, 0xfdef, 0x023e, 0x04fd, 0x03cc,
+ 0x0272, 0x05ea, 0x0b6c, 0x0df4, 0x0e42, 0x0ed1,
+ 0x0e03, 0x0da0, 0x0f88, 0x0ef4, 0x0f1d, 0x105b,
+ 0x0816, 0x02a1, 0x0b00, 0x0be5, 0x072a, 0x0e36,
+ 0x1150, 0x0d7f, 0x0fda, 0x0d7a, 0x08b5, 0x0d56,
+ 0x0f1f, 0x0cd2, 0x0edb, 0x103e, 0x115d, 0x1132,
+ 0x0dfa, 0x109a, 0x144d, 0x1192, 0x0f1d, 0x0b4a,
+ 0x0759, 0x0c4c, 0x12a6, 0x1105, 0x0ab7, 0x07eb,
+ 0x0ac3, 0x0744, 0x010d, 0x08ba, 0x0f53, 0x0a35,
+ 0x0ab8, 0x0c7a, 0x08b1, 0x0c97, 0x1214, 0x0fe1,
+ 0x0e71, 0x0d71, 0x099f, 0x07bb, 0x096e, 0x0c35,
+ 0x0a2b, 0x021a, 0xfcd3, 0xfeab, 0x0022, 0xfb76,
+ 0xfa0c, 0xff6c, 0xfd54, 0xf980, 0xff52, 0xff70,
+ 0xfc7c, 0xffa1, 0xf8d1, 0xf48c, 0xfe11, 0xfa36,
+ 0xf417, 0xfcfc, 0xfa3a, 0xf356, 0xfa33, 0xfb49,
+ 0xfafa, 0x0081, 0xfca4, 0xfa2f, 0xfde2, 0xfa04,
+ 0xf8ba, 0xfb66, 0xf7ee, 0xf9b3, 0xffef, 0xffb7,
+ 0x016d, 0x0369, 0xfc71, 0xf961, 0xff97, 0xff8f,
+ 0xfaaa, 0xfcfb, 0xfef5, 0xfaec, 0xfa82, 0xff02,
+ 0x02ba, 0x02b4, 0xff11, 0xfdd6, 0xfcd7, 0xf8e4,
+ 0xfb76, 0xfd98, 0xf6d6, 0xf798, 0xfc3d, 0xf81a,
+ 0xfa4c, 0x000b, 0xf9e5, 0xf514, 0xf8c5, 0xfb0a,
+ 0xfb30, 0xfcce, 0xffc6, 0xff4d, 0xfd89, 0x009c,
+ 0xfdc6, 0xf74a, 0xfc8d, 0xfe2c, 0xf877, 0xfdf4,
+ 0xfee8, 0xf573, 0xf7bc, 0xfc13, 0xfab1, 0x0314,
+ 0x0c12, 0x0bf2, 0x0d7f, 0x0f86, 0x0d72, 0x0cd8,
+ 0x0ef1, 0x1024, 0x0ed6, 0x0bfd, 0x0886, 0x05e9,
+ 0x06d7, 0x09eb, 0x0d92, 0x10af, 0x0df6, 0x0850,
+ 0x0760, 0x089d, 0x093a, 0x090e, 0x0873, 0x09fe,
+ 0x0855, 0x0471, 0x09af, 0x0ea6, 0x0969, 0x06ee,
+ 0x08df, 0x08d0, 0x0a7f, 0x0b50, 0x0c83, 0x129a,
+ 0x1116, 0x0826, 0x09b1, 0x0e6c, 0x080e, 0x0313,
+ 0x05c5, 0x02d3, 0xfddf, 0x0167, 0x0169, 0xfbaa,
+ 0xffc8, 0x03f9, 0xfc72, 0xfa7e, 0xff37, 0xfca7,
+ 0xfdbb, 0x06ac, 0x089d, 0x06c6, 0x0929, 0x0a92,
+ 0x0aa6, 0x0bdc, 0x0e13, 0x1059, 0x0d93, 0x09e9,
+ 0x0b03, 0x0801, 0x0490, 0x0703, 0x01e6, 0xfda5,
+ 0x0538, 0x01fb, 0xfadb, 0x04ab, 0x0846, 0x027f,
+ 0x0594, 0x0559, 0x03db, 0x08bd, 0x06b8, 0x05c4,
+ 0x064f, 0xfc06, 0xfa03, 0xfe99, 0xf8a5, 0xfaea,
+ 0x02af, 0xff01, 0xfe39, 0xfeda, 0xf8cb, 0xf71e,
+ 0xf8d8, 0xfa98, 0xf7f7, 0xee94, 0xf089, 0xf644,
+ 0xee8b, 0xee74, 0xf418, 0xedfe, 0xed5c, 0xf1e2,
+ 0xf0c7, 0xf48f, 0xf8cb, 0xfb44, 0x011b, 0xff65,
+ 0xfb6c, 0xfc4e, 0xf9df, 0xfcd4, 0x0262, 0xfe59,
+ 0xff01, 0x01ba, 0xfaa7, 0xf8ea, 0xfbe5, 0xfb2e,
+ 0xfe4a, 0xff00, 0xfe17, 0x048e, 0x03e4, 0xff7b,
+ 0x097b, 0x1054, 0x0919, 0x071e, 0x0c24, 0x0e2a,
+ 0x0fc7, 0x11c5, 0x109a, 0x0de4, 0x0e86, 0x10ee,
+ 0x0da4, 0x0a82, 0x1088, 0x1306, 0x0b91, 0x08fa,
+ 0x0d98, 0x10c3, 0x0fc0, 0x0ac6, 0x0996, 0x0cad,
+ 0x094c, 0x0515, 0x064d, 0x06f0, 0x080a, 0x05c5,
+ 0x00c5, 0x0500, 0x0751, 0x026c, 0x04ba, 0x05d8,
+ 0x05df, 0x0cf7, 0x09a8, 0x0596, 0x0e3b, 0x0ccc,
+ 0x0a9f, 0x1288, 0x0d68, 0x07a4, 0x0b9c, 0x08be,
+ 0x0a12, 0x0d4c, 0x054d, 0x0303, 0x0593, 0x05e9,
+ 0x0966, 0x074e, 0x07cc, 0x0cea, 0x03fc, 0x0072,
+ 0x0725, 0xfeb6, 0xf97a, 0xfdc0, 0xf6e9, 0xf299,
+ 0xf347, 0xf065, 0xf4ac, 0xf5fb, 0xf056, 0xf28b,
+ 0xf50e, 0xf637, 0xfaa8, 0xf871, 0xf451, 0xf3cb,
+ 0xf274, 0xf385, 0xf289, 0xef11, 0xf233, 0xf488,
+ 0xf0e4, 0xed59, 0xecaa, 0xf109, 0xf239, 0xec02,
+ 0xec34, 0xf154, 0xf15e, 0xf12e, 0xf1ed, 0xf142,
+ 0xf188, 0xf2d5, 0xf4a4, 0xf6c1, 0xfa22, 0xfbfb,
+ 0xf98e, 0xfcb9, 0x0393, 0x0198, 0xffd8, 0x01c7,
+ 0x00ac, 0x051b, 0x09b6, 0x06fe, 0x0acb, 0x0f33,
+ 0x0a84, 0x0ab3, 0x0eaf, 0x0cf8, 0x0b0e, 0x0a3b,
+ 0x0771, 0x05d1, 0x091c, 0x0b45, 0x04e5, 0x00d7,
+ 0x03aa, 0x02f7, 0x0567, 0x0c2a, 0x0bdc, 0x0c0b,
+ 0x0d6a, 0x09ce, 0x0916, 0x0649, 0x01a0, 0x05b3,
+ 0x055c, 0x019b, 0x0761, 0x06fb, 0x00fd, 0x027c,
+ 0x017c, 0x02d6, 0x0c1a, 0x0c24, 0x05c6, 0x053f,
+ 0x0675, 0x0716, 0x071c, 0x0733, 0x091d, 0x0a0b,
+ 0x0989, 0x0702, 0x049f, 0x06e4, 0x045c, 0xfc7a,
+ 0xfcc0, 0xfe79, 0xfd53, 0x014a, 0x006e, 0xfb6c,
+ 0x0084, 0x023b, 0xf82f, 0xf510, 0xf93c, 0xf6d6,
+ 0xf383, 0xf6a3, 0xf7c3, 0xf2ee, 0xf01e, 0xf23e,
+ 0xf669, 0xfae5, 0xfb77, 0xf833, 0xf871, 0xfbb3,
+ 0xfbee, 0xfc3d, 0xffd7, 0xfeb1, 0xf7a2, 0xf633,
+ 0xf868, 0xf712, 0xf8cd, 0xf991, 0xf5d6, 0xfbbf,
+ 0x00e3, 0xf9b3, 0xfd17, 0x05bd, 0x015a, 0x0495,
+ 0x0b84, 0x0378, 0x02b8, 0x09aa, 0x0618, 0x0789,
+ 0x0c7c, 0x0795, 0x0652, 0x0877, 0x0921, 0x0d07,
+ 0x0779, 0x0008, 0x07fb, 0x0841, 0xfd01, 0xfe4b,
+ 0x0243, 0x0035, 0x00bc, 0xfeda, 0xfd44, 0xfdd0,
+ 0xf9b1, 0xfc71, 0x0223, 0xfac8, 0xf768, 0xfbe8,
+ 0xf80c, 0xf722, 0xfbcb, 0xfb99, 0xfe36, 0xfdf1,
+ 0xf7c9, 0xfbd0, 0xfef7, 0xfa1f, 0xfe25, 0xff79,
+ 0xf75b, 0xf825, 0xf8dc, 0xf3a1, 0xf829, 0xfd87,
+ 0xfafe, 0xf9ff, 0xfa04, 0xfd18, 0x027a, 0xfefc,
+ 0xfc8b, 0x04ad, 0x0911, 0x07a3, 0x095f, 0x0b44,
+ 0x096e, 0x06be, 0x096c, 0x0e9a, 0x0ba2, 0x078b,
+ 0x0b43, 0x0c0b, 0x0825, 0x0712, 0x04ee, 0x01ab,
+ 0x02db, 0x0788, 0x0aef, 0x0997, 0x0830, 0x07d7,
+ 0x01c2, 0xff21, 0x039a, 0xfe82, 0xf7c6, 0xfc69,
+ 0xfb95, 0xf555, 0xf74c, 0xf7ad, 0xf454, 0xf563,
+ 0xf662, 0xf798, 0xf999, 0xf765, 0xf71c, 0xfbab,
+ 0xfe9c, 0x000a, 0x0119, 0x018b, 0x02a5, 0x034f,
+ 0x0361, 0x0231, 0x012c, 0x0370, 0x01d0, 0xfd5d,
+ 0x029b, 0x0959, 0x09a5, 0x0c10, 0x0ad7, 0x0562,
+ 0x093a, 0x0db9, 0x0b08, 0x0aac, 0x0af0, 0x0a07,
+ 0x09f1, 0x0784, 0x09d3, 0x0ec1, 0x09ad, 0x04b7,
+ 0x04ac, 0x0026, 0xfffa, 0x0469, 0x028b, 0x02ec,
+ 0x0588, 0x0168, 0xff29, 0x007a, 0xfebf, 0xfc83,
+ 0xfa52, 0xf937, 0xf941, 0xf6c2, 0xf6d5, 0xf800,
+ 0xf56e, 0xf82c, 0xf948, 0xf0b8, 0xf237, 0xfa56,
+ 0xf741, 0xf872, 0xff6b, 0xfb82, 0xf8f3, 0xfd7a,
+ 0xfbf4, 0xf87f, 0xf8e8, 0xfb50, 0x001d, 0x01eb,
+ 0xffef, 0xfe91, 0xfb9a, 0xfb5f, 0x0063, 0x0187,
+ 0xfff6, 0x00d8, 0x024a, 0x060e, 0x0855, 0x0552,
+ 0x057f, 0x071f, 0x0419, 0x046c, 0x088e, 0x0a21,
+ 0x0aed, 0x0a6c, 0x0a4b, 0x0e3f, 0x1116, 0x12c6,
+ 0x1517, 0x12b7, 0x1056, 0x1176, 0x10fb, 0x136d,
+ 0x1507, 0x0ea4, 0x0f12, 0x13b5, 0x0b9f, 0x05ef,
+ 0x088f, 0x0581, 0x070b, 0x0af9, 0x021c, 0xffd1,
+ 0x0818, 0x05ac, 0x02a4, 0x055e, 0x0289, 0x041f,
+ 0x09c0, 0x07eb, 0x089c, 0x0aa8, 0x0734, 0x0805,
+ 0x07b0, 0x0302, 0x076f, 0x0d86, 0x0ed7, 0x1337,
+ 0x12e5, 0x0f43, 0x1314, 0x147a, 0x11eb, 0x12ed,
+ 0x122f, 0x11b5, 0x11d4, 0x0dc9, 0x0edf, 0x11af,
+ 0x0d8a, 0x0d53, 0x0be7, 0x02fc, 0x03c9, 0x078a,
+ 0x0176, 0x013b, 0x05a7, 0x0430, 0x050b, 0x04a3,
+ 0xfe5e, 0xfc5e, 0xfbec, 0xf7c9, 0xf576, 0xf4cf,
+ 0xf42c, 0xf55d, 0xf827, 0xf962, 0xf570, 0xf166,
+ 0xf0c1, 0xecda, 0xe933, 0xe9d0, 0xe7e7, 0xe85e,
+ 0xed21, 0xec14, 0xea0a, 0xeaf4, 0xe961, 0xea7d,
+ 0xede2, 0xeef2, 0xf1ca, 0xf336, 0xf4cb, 0xfbcf,
+ 0xfd91, 0xfd28, 0x039b, 0x0447, 0x03ab, 0x0c58,
+ 0x0eaf, 0x0c24, 0x0fea, 0x0ff0, 0x0ef9, 0x1282,
+ 0x1067, 0x0e95, 0x117f, 0x0fd5, 0x101d, 0x13c9,
+ 0x102f, 0x0d2f, 0x109c, 0x10d9, 0x0ed1, 0x1018,
+ 0x10ac, 0x0dc9, 0x0bf5, 0x0dd3, 0x0d77, 0x08a1,
+ 0x05bc, 0x0597, 0x06a3, 0x09c4, 0x0a27, 0x06a4,
+ 0x03db, 0x0149, 0xffc1, 0x00b0, 0x017e, 0x023d,
+ 0x0144, 0xff6c, 0x0349, 0x0668, 0x0290, 0x01cb,
+ 0x0326, 0xff4a, 0xfd41, 0xfeb6, 0xff13, 0x001e,
+ 0xff84, 0xfcce, 0xfd0e, 0xfdbe, 0xfceb, 0xfd58,
+ 0xfd90, 0xfd8d, 0xff60, 0x0258, 0x0569, 0x0676,
+ 0x0518, 0x035a, 0x017a, 0x01b8, 0x041c, 0x0322,
+ 0x005d, 0x0023, 0xffb1, 0xff22, 0x019d, 0x0529,
+ 0x0613, 0x039d, 0x0173, 0x0180, 0x0016, 0xfd3c,
+ 0xfb77, 0xfa67, 0xfb42, 0xfc83, 0xfb6f, 0xfb47,
+ 0xfb8b, 0xfa6d, 0xfc7b, 0xff19, 0xfc54, 0xf860,
+ 0xf78d, 0xf8fb, 0xfa7c, 0xf9eb, 0xf8b1, 0xf7a1,
+ 0xf703, 0xf8d6, 0xf8a8, 0xf5e9, 0xf845, 0xfaea,
+ 0xf9c8, 0xfcf8, 0xfedf, 0xfa3b, 0xfb55, 0x0055,
+ 0xff7d, 0x0024, 0x0403, 0x0265, 0xfe55, 0xff77,
+ 0x0456, 0x0676, 0x04a7, 0x0467, 0x0531, 0x02c7,
+ 0x022e, 0x05ee, 0x0582, 0xffb7, 0xfeb0, 0x032b,
+ 0x03dc, 0x0227, 0x03c4, 0x03ef, 0x0357, 0x05a7,
+ 0x01ea, 0xfb55, 0xfe77, 0x0148, 0xfe62, 0x018b,
+ 0x0451, 0xff7a, 0xfeb4, 0x0290, 0x0382, 0x0340,
+ 0x02a2, 0x01bc, 0x0081, 0xfe21, 0xff73, 0x02f2,
+ 0x01fb, 0xffeb, 0xfccb, 0xf783, 0xf93e, 0xfe28,
+ 0xfc1a, 0xfb22, 0xfdc0, 0xfc2d, 0xfb87, 0xfed8,
+ 0x00f0, 0x0496, 0x092e, 0x08e1, 0x0894, 0x0b93,
+ 0x0b61, 0x08eb, 0x0a5c, 0x0c89, 0x0af0, 0x092a,
+ 0x097c, 0x086d, 0x04f1, 0x01d9, 0x0125, 0x00f2,
+ 0xfcbe, 0xf76f, 0xf8d8, 0xfd40, 0xfdc7, 0xfdc4,
+ 0xfe17, 0xfbce, 0xf9c0, 0xf98f, 0xfa6c, 0xfc3a,
+ 0xfd0b, 0xfe5f, 0x00b7, 0xff79, 0xfdfd, 0x002f,
+ 0x0109, 0x01a1, 0x03c1, 0x02a0, 0x0143, 0x01e3,
+ 0x002b, 0xffc5, 0x01ed, 0x00d7, 0xfec0, 0xfe40,
+ 0xfce9, 0xfc04, 0xfca8, 0xfdaa, 0xfe2f, 0xfe2a,
+ 0xff9e, 0x00e9, 0x0036, 0x012f, 0x021b, 0x0171,
+ 0x0469, 0x06f6, 0x0548, 0x05df, 0x05f4, 0x01dc,
+ 0x00fd, 0x0292, 0x01b7, 0x01b7, 0x026b, 0x00f7,
+ 0xfffd, 0x017d, 0x020d, 0xff06, 0xfd7f, 0xff9c,
+ 0xfec3, 0xfc9d, 0xfce4, 0xf907, 0xf456, 0xf6ac,
+ 0xf816, 0xf512, 0xf42e, 0xf3c3, 0xf254, 0xf307,
+ 0xf4c7, 0xf692, 0xf7aa, 0xf612, 0xf43b, 0xf506,
+ 0xf725, 0xf884, 0xf897, 0xf91f, 0xfb44, 0xfce7,
+ 0xfcdb, 0xfcc5, 0xfdc7, 0xff00, 0x0003, 0x025e,
+ 0x05a5, 0x07bd, 0x0996, 0x0bef, 0x0e02, 0x111b,
+ 0x1435, 0x1403, 0x120c, 0x11b7, 0x1390, 0x16c6,
+ 0x18fa, 0x17d7, 0x14a2, 0x128b, 0x11cd, 0x0fdc,
+ 0x0d92, 0x0e0b, 0x0f0b, 0x0dc9, 0x0d8c, 0x0f19,
+ 0x0dda, 0x0a7c, 0x09ec, 0x0aba, 0x08fe, 0x06b7,
+ 0x054a, 0x025b, 0x004a, 0x019d, 0x0254, 0x01bb,
+ 0x01a7, 0xffd2, 0xff24, 0x0307, 0x047e, 0x0252,
+ 0x0318, 0x038c, 0x0135, 0x018d, 0x0375, 0x048b,
+ 0x0612, 0x059c, 0x04ea, 0x0699, 0x0577, 0x02e3,
+ 0x0341, 0x0286, 0x01bb, 0x02d9, 0x00e9, 0xfeb7,
+ 0xff5c, 0xfee2, 0xff45, 0x0070, 0xfef4, 0xfed4,
+ 0xfeba, 0xfc22, 0xfe0d, 0x015b, 0xfe8a, 0xfbf4,
+ 0xfce9, 0xfd4a, 0xfdb6, 0xfeed, 0xff38, 0xfdb5,
+ 0xfcd2, 0xfec3, 0xfdc5, 0xf8d3, 0xf7b0, 0xf748,
+ 0xf321, 0xf095, 0xee6a, 0xea45, 0xe7fe, 0xe6d7,
+ 0xe645, 0xe64c, 0xe517, 0xe647, 0xe8a6, 0xe823,
+ 0xe9ff, 0xecba, 0xec36, 0xeea7, 0xf1e0, 0xf26b,
+ 0xf678, 0xf9fc, 0xf97d, 0xfb7a, 0xfce7, 0xfbe9,
+ 0xfdb0, 0xff9c, 0x0175, 0x0462, 0x036e, 0x02f3,
+ 0x06fc, 0x0859, 0x07dc, 0x09e8, 0x0aca, 0x0ab4,
+ 0x0ce5, 0x102e, 0x12ce, 0x1455, 0x15cb, 0x1629,
+ 0x12cd, 0x0f4a, 0x0ea2, 0x0df3, 0x0e8d, 0x1265,
+ 0x150a, 0x1472, 0x126b, 0x0f68, 0x0d3e, 0x0db4,
+ 0x0e4b, 0x0d5a, 0x0c9c, 0x0b32, 0x07eb, 0x05de,
+ 0x051a, 0x033e, 0x027e, 0x02fd, 0x02f5, 0x0422,
+ 0x04c6, 0x038c, 0x0394, 0x02c2, 0x00af, 0x0196,
+ 0x0217, 0x0103, 0x030f, 0x0608, 0x078e, 0x0788,
+ 0x0427, 0x015b, 0x00a5, 0xfea9, 0xfee4, 0x00c3,
+ 0xff8e, 0xff56, 0x006d, 0xfffb, 0x0118, 0x00cd,
+ 0xfd6f, 0xfdf4, 0x0041, 0x0037, 0x027a, 0x05e2,
+ 0x0657, 0x0645, 0x0605, 0x03c6, 0x01a7, 0x01b7,
+ 0x032a, 0x056a, 0x07fd, 0x0885, 0x06c7, 0x04db,
+ 0x0273, 0x0160, 0x0303, 0x0224, 0xff90, 0x001c,
+ 0xff3b, 0xfc98, 0xfcde, 0xfb8b, 0xf8da, 0xfa4c,
+ 0xfaeb, 0xf925, 0xfafc, 0xfdd2, 0xfdeb, 0xfe33,
+ 0xfe1d, 0xfbb8, 0xfa8e, 0xfc81, 0xfe3f, 0xff33,
+ 0x00fa, 0x017d, 0xffbc, 0xfdd7, 0xfc43, 0xfb4e,
+ 0xfb99, 0xfd39, 0xff67, 0xfed5, 0xfcb9, 0xfd84,
+ 0xfe78, 0xff08, 0x01b1, 0x01e3, 0x0130, 0x03d7,
+ 0x03b7, 0x021a, 0x0412, 0x03af, 0x00cd, 0xfffc,
+ 0x0064, 0x01ff, 0x0155, 0xff54, 0x0348, 0x05f8,
+ 0x025a, 0x01f7, 0x02f9, 0x018e, 0x029e, 0x02ba,
+ 0x0119, 0x022d, 0x0159, 0xfe15, 0xfd83, 0xfecb,
+ 0xff6d, 0xfd48, 0xfab1, 0xfb40, 0xfa69, 0xf8d4,
+ 0xfa7c, 0xf9d1, 0xf8b8, 0xfc3a, 0xfd99, 0xfde8,
+ 0x01f1, 0x02f2, 0x016a, 0x02ec, 0x0323, 0x0169,
+ 0x023c, 0x03e3, 0x04d3, 0x06ba, 0x0870, 0x07fe,
+ 0x064e, 0x0462, 0x02e0, 0x041a, 0x06d8, 0x06d8,
+ 0x05ce, 0x06ba, 0x07ad, 0x07b3, 0x06c3, 0x0513,
+ 0x0584, 0x071e, 0x065f, 0x05fd, 0x08d6, 0x0aa2,
+ 0x086d, 0x06ea, 0x07d5, 0x0616, 0x03b0, 0x055a,
+ 0x05ca, 0x03a1, 0x0401, 0x03fb, 0x0168, 0xffbf,
+ 0xfee3, 0xff6c, 0x017f, 0x01fe, 0x0246, 0x02d7,
+ 0x0154, 0x00e9, 0x020f, 0x00ec, 0x0077, 0x02ea,
+ 0x0426, 0x047f, 0x06ed, 0x0843, 0x05ea, 0x0375,
+ 0x01ab, 0xfe6a, 0xfd24, 0xfef3, 0xfeca, 0xfdf4,
+ 0xffaf, 0x004d, 0xfee8, 0xfe5c, 0xfe1f, 0xfe87,
+ 0x0135, 0x03f1, 0x0465, 0x039f, 0x02bc, 0x0245,
+ 0x0304, 0x037f, 0x029c, 0x0257, 0x01d2, 0xfff5,
+ 0xffa9, 0xff6a, 0xfd45, 0xfcea, 0xfc71, 0xf96b,
+ 0xf863, 0xf800, 0xf557, 0xf46e, 0xf57b, 0xf592,
+ 0xf4aa, 0xf3f1, 0xf4b8, 0xf475, 0xf2c1, 0xf420,
+ 0xf530, 0xf394, 0xf4ed, 0xf66e, 0xf5a3, 0xf815,
+ 0xfbb6, 0xfdc2, 0x0077, 0x0295, 0x044e, 0x0585,
+ 0x05da, 0x092b, 0x0b92, 0x0a1e, 0x0c7e, 0x0f90,
+ 0x0df1, 0x0e9a, 0x105d, 0x0f58, 0x105f, 0x1191,
+ 0x10e9, 0x1209, 0x1240, 0x1062, 0x0f84, 0x0e66,
+ 0x0d20, 0x0cb3, 0x0be1, 0x0c12, 0x0d44, 0x0d38,
+ 0x0c6b, 0x0aaf, 0x07a6, 0x0585, 0x04e1, 0x04eb,
+ 0x0574, 0x04f1, 0x0293, 0x0081, 0xff6e, 0xfd98,
+ 0xfc1b, 0xfd20, 0xfef6, 0x00a8, 0x0365, 0x052d,
+ 0x03ec, 0x01f0, 0x01a1, 0x01c2, 0x00de, 0x00b2,
+ 0x0145, 0x0057, 0x00bc, 0x03c7, 0x0442, 0x0221,
+ 0x0031, 0xfd2a, 0xfaf8, 0xfac3, 0xf9a7, 0xf9d8,
+ 0xfc36, 0xfbea, 0xf9bd, 0xf963, 0xf961, 0xf85b,
+ 0xf8bb, 0xfbcf, 0xfe86, 0xfee2, 0xfee1, 0xfe77,
+ 0xfce7, 0xfbfe, 0xfbc0, 0xfbed, 0xfc90, 0xfb71,
+ 0xf9af, 0xf95c, 0xf778, 0xf397, 0xf0fb, 0xef73,
+ 0xeddc, 0xed2a, 0xeddb, 0xee68, 0xeda7, 0xed01,
+ 0xec52, 0xea16, 0xe87e, 0xe906, 0xea55, 0xed11,
+ 0xf0e3, 0xf2f9, 0xf31e, 0xf35b, 0xf420, 0xf425,
+ 0xf44c, 0xf6c7, 0xf964, 0xfa34, 0xfbc7, 0xfe6d,
+ 0x0095, 0x02a9, 0x0466, 0x0586, 0x067a, 0x077c,
+ 0x08eb, 0x0a50, 0x0bea, 0x0d63, 0x0cf2, 0x0d76,
+ 0x0ff0, 0x0f71, 0x0ef7, 0x1230, 0x1316, 0x117d,
+ 0x1122, 0x0f4e, 0x0cc2, 0x0ba8, 0x0a84, 0x0b12,
+ 0x0d50, 0x0d83, 0x0c60, 0x0c48, 0x0c7e, 0x0b1d,
+ 0x0992, 0x0afa, 0x0c67, 0x0ba4, 0x0c4b, 0x0c9a,
+ 0x0a99, 0x09fd, 0x0931, 0x074e, 0x0814, 0x08ca,
+ 0x079b, 0x07d3, 0x0830, 0x075d, 0x0669, 0x04cf,
+ 0x03d3, 0x0415, 0x03fb, 0x03f4, 0x03cc, 0x0290,
+ 0x0141, 0x008a, 0x005a, 0x000a, 0xff6b, 0xff5f,
+ 0xfe79, 0xfce2, 0xfde4, 0xff7c, 0xfea1, 0xfd69,
+ 0xfc36, 0xfaad, 0xfab5, 0xfb9c, 0xfc3a, 0xfdcb,
+ 0x0003, 0x00fc, 0x0048, 0xff61, 0xfec0, 0xfe00,
+ 0xff12, 0x01af, 0x0253, 0x022e, 0x029b, 0x0059,
+ 0xfd0f, 0xfce0, 0xfde7, 0xfe79, 0xff60, 0xff8f,
+ 0xff0a, 0xfe9f, 0xfd26, 0xfa9b, 0xf873, 0xf7d1,
+ 0xf90b, 0xf9f6, 0xf9a9, 0xfabc, 0xfbf8, 0xfae1,
+ 0xfa7e, 0xfac0, 0xf8d8, 0xf8b1, 0xfb60, 0xfc44,
+ 0xfcf1, 0xfed7, 0xfe93, 0xfdd1, 0xfeda, 0xff72,
+ 0xff4b, 0xfec4, 0xfd71, 0xfc1d, 0xfad9, 0xfa7e,
+ 0xfb5c, 0xfb22, 0xfa9e, 0xfb24, 0xfade, 0xfb76,
+ 0xfe1e, 0xff4d, 0xff9a, 0x017f, 0x0292, 0x01b0,
+ 0x00e7, 0x00c4, 0x015d, 0x0390, 0x06b2, 0x08d7,
+ 0x0997, 0x08da, 0x0663, 0x0510, 0x0622, 0x0620,
+ 0x05d1, 0x0787, 0x07c1, 0x0628, 0x05a3, 0x04d4,
+ 0x0444, 0x0545, 0x0539, 0x04f7, 0x0611, 0x0651,
+ 0x06a2, 0x07bf, 0x07c0, 0x0870, 0x0989, 0x0822,
+ 0x0759, 0x089c, 0x0839, 0x074d, 0x077a, 0x0631,
+ 0x042a, 0x0391, 0x0330, 0x02aa, 0x02fe, 0x03c6,
+ 0x0454, 0x04ae, 0x04cd, 0x043e, 0x0358, 0x030a,
+ 0x0300, 0x0361, 0x04cd, 0x0599, 0x0578, 0x0619,
+ 0x0645, 0x0566, 0x050d, 0x0449, 0x02dd, 0x0284,
+ 0x02f4, 0x03e7, 0x0503, 0x04fe, 0x04d4, 0x0507,
+ 0x049e, 0x04c9, 0x05ef, 0x06e0, 0x072b, 0x0642,
+ 0x0581, 0x05b6, 0x04ba, 0x040b, 0x04f9, 0x0426,
+ 0x030e, 0x0408, 0x035a, 0x014e, 0x00a1, 0xffa0,
+ 0xfe81, 0xfe30, 0xfda2, 0xfe52, 0x001d, 0x00aa,
+ 0x00c7, 0x008a, 0xfef5, 0xfda5, 0xfcd8, 0xfb87,
+ 0xface, 0xfb42, 0xfc31, 0xfcdb, 0xfc66, 0xfb7c,
+ 0xfafe, 0xf9ee, 0xf8bd, 0xf903, 0xf91d, 0xf7e5,
+ 0xf7c0, 0xf841, 0xf751, 0xf72d, 0xf821, 0xf716,
+ 0xf5f0, 0xf701, 0xf7e2, 0xf872, 0xfa25, 0xfb7a,
+ 0xfbb4, 0xfbd8, 0xfc53, 0xfce3, 0xfd69, 0xfeff,
+ 0x00ec, 0x008a, 0xff87, 0xffe0, 0xfeec, 0xfd46,
+ 0xfe15, 0xff5d, 0xff97, 0x00e1, 0x0319, 0x0508,
+ 0x072e, 0x08f4, 0x097b, 0x09f3, 0x0ad7, 0x0b46,
+ 0x0bf6, 0x0d51, 0x0da5, 0x0cd2, 0x0bed, 0x0aa0,
+ 0x092b, 0x0824, 0x0755, 0x07c0, 0x09f5, 0x0c0f,
+ 0x0c3b, 0x0aa2, 0x0941, 0x08f6, 0x0896, 0x08ba,
+ 0x09e9, 0x0a63, 0x0a3a, 0x09c9, 0x08bd, 0x08af,
+ 0x088f, 0x0707, 0x0753, 0x0886, 0x07a5, 0x07f8,
+ 0x0a0e, 0x0b16, 0x0c42, 0x0d33, 0x0ccf, 0x0d14,
+ 0x0dad, 0x0dc9, 0x0dea, 0x0d8b, 0x0dc8, 0x0df8,
+ 0x0c11, 0x0b15, 0x0b04, 0x0877, 0x062b, 0x04d6,
+ 0x025e, 0x01a3, 0x01ad, 0xffdf, 0xffa6, 0x0042,
+ 0xff14, 0xff2d, 0x005b, 0x0063, 0x0089, 0x0074,
+ 0xff77, 0xfe14, 0xfbb9, 0xf96d, 0xf823, 0xf77d,
+ 0xf829, 0xf8d8, 0xf801, 0xf708, 0xf59f, 0xf361,
+ 0xf219, 0xf11b, 0xefa8, 0xeeda, 0xedd2, 0xec39,
+ 0xeba5, 0xebcb, 0xebde, 0xec71, 0xed45, 0xed4c,
+ 0xed0e, 0xee22, 0xf07f, 0xf2f7, 0xf4b1, 0xf565,
+ 0xf63a, 0xf7ad, 0xf85c, 0xf8eb, 0xfa8b, 0xfbe1,
+ 0xfc9b, 0xfd39, 0xfd0a, 0xfcc7, 0xfd38, 0xfd7c,
+ 0xfd49, 0xfd1e, 0xfd7c, 0xfe5b, 0xff48, 0x00bb,
+ 0x0277, 0x03b3, 0x0501, 0x0605, 0x0670, 0x073a,
+ 0x07a3, 0x079f, 0x083e, 0x080a, 0x06db, 0x0654,
+ 0x067c, 0x076a, 0x086f, 0x091c, 0x0b0e, 0x0ca2,
+ 0x0c13, 0x0c19, 0x0d20, 0x0dbe, 0x0dd8, 0x0cdd,
+ 0x0c6f, 0x0c9b, 0x0ad5, 0x0a70, 0x0d01, 0x0daf,
+ 0x0d3b, 0x0de3, 0x0dc3, 0x0e1d, 0x0f5e, 0x0f8b,
+ 0x0fd0, 0x0fcb, 0x0e13, 0x0c5a, 0x0b15, 0x0a30,
+ 0x0a79, 0x0b09, 0x0b42, 0x0b31, 0x0af3, 0x0b04,
+ 0x0a48, 0x0896, 0x0705, 0x0498, 0x0237, 0x0165,
+ 0x0023, 0xff19, 0xffde, 0xffd7, 0xff1a, 0xffa2,
+ 0xff5e, 0xfdbb, 0xfd26, 0xfd93, 0xfd3f, 0xfbdf,
+ 0xfade, 0xfb3b, 0xfbe8, 0xfbe0, 0xfc47, 0xfe1e,
+ 0xff99, 0xff27, 0xfe72, 0xfe73, 0xfe5f, 0xfe74,
+ 0xfe40, 0xfd56, 0xfcea, 0xfc2f, 0xfa44, 0xf907,
+ 0xf90f, 0xf972, 0xf985, 0xf901, 0xf928, 0xfa28,
+ 0xfb1e, 0xfcb8, 0xfde7, 0xfd7f, 0xfd47, 0xfd3c,
+ 0xfce2, 0xfd65, 0xfdf3, 0xfe2e, 0xfe9c, 0xfe13,
+ 0xfd42, 0xfd5b, 0xfd9b, 0xfdc5, 0xfcee, 0xfaf2,
+ 0xf984, 0xf850, 0xf7ba, 0xf872, 0xf833, 0xf7c0,
+ 0xf892, 0xf821, 0xf719, 0xf72d, 0xf6e8, 0xf6e9,
+ 0xf737, 0xf6c0, 0xf73e, 0xf817, 0xf864, 0xfa6d,
+ 0xfd66, 0x0002, 0x02f8, 0x0464, 0x044b, 0x050b,
+ 0x05d5, 0x065e, 0x0750, 0x0768, 0x06be, 0x0611,
+ 0x0532, 0x04d1, 0x04a6, 0x03fc, 0x0413, 0x0548,
+ 0x0657, 0x073b, 0x08c3, 0x0a9d, 0x0bbd, 0x0b99,
+ 0x0a87, 0x09b9, 0x09a7, 0x095d, 0x098b, 0x0acc,
+ 0x0a82, 0x08cc, 0x08b0, 0x08d4, 0x0790, 0x0676,
+ 0x053f, 0x033f, 0x0197, 0x006f, 0xffb2, 0xff63,
+ 0xff0b, 0xfee5, 0xfee5, 0xfee2, 0xff55, 0xffcf,
+ 0xffa2, 0xff00, 0xfe32, 0xfd6f, 0xfcaf, 0xfc50,
+ 0xfcae, 0xfd0e, 0xfdce, 0xff6e, 0x000f, 0xff76,
+ 0xff70, 0xffcf, 0x0002, 0x00ab, 0x01f8, 0x0302,
+ 0x02cf, 0x0268, 0x0299, 0x01e5, 0x00c6, 0x00a5,
+ 0x0096, 0x00a9, 0x0159, 0x0229, 0x03ca, 0x0561,
+ 0x051c, 0x03d0, 0x027f, 0x01a2, 0x017f, 0x0169,
+ 0x0232, 0x0398, 0x0337, 0x025c, 0x02ca, 0x02e2,
+ 0x0262, 0x01d6, 0x0139, 0x00d0, 0xff9e, 0xfe47,
+ 0xfe68, 0xfe5e, 0xfe28, 0xff43, 0xffa0, 0xfea6,
+ 0xfdf5, 0xfd20, 0xfc09, 0xfafe, 0xf9d1, 0xf91d,
+ 0xf87c, 0xf7df, 0xf8a6, 0xf9ed, 0xfa5b, 0xfa8e,
+ 0xfa8f, 0xfa5d, 0xfa7e, 0xfa45, 0xf95a, 0xf8ee,
+ 0xf9b7, 0xfa8f, 0xfa61, 0xf9f8, 0xf9c4, 0xf936,
+ 0xf8fa, 0xf94a, 0xf91f, 0xf914, 0xfa4d, 0xfc36,
+ 0xfe12, 0xffd7, 0x00f6, 0x011d, 0x016b, 0x0268,
+ 0x0342, 0x0451, 0x05ee, 0x0766, 0x091c, 0x0aff,
+ 0x0c3a, 0x0d6e, 0x0e61, 0x0e28, 0x0d4b, 0x0bf1,
+ 0x0ab5, 0x0a1e, 0x0907, 0x0888, 0x095f, 0x0929,
+ 0x08b3, 0x091c, 0x0830, 0x06bc, 0x05e1, 0x046a,
+ 0x035e, 0x02ab, 0x0164, 0x0173, 0x02b8, 0x03b8,
+ 0x0490, 0x0480, 0x0446, 0x0505, 0x0548, 0x0566,
+ 0x0612, 0x066f, 0x07be, 0x09ee, 0x0b0c, 0x0ba6,
+ 0x0c0a, 0x0c10, 0x0c84, 0x0c91, 0x0bf4, 0x0ba9,
+ 0x0b49, 0x0ab5, 0x0a31, 0x09f8, 0x0a27, 0x094f,
+ 0x080c, 0x07f4, 0x06ee, 0x0562, 0x05ac, 0x0585,
+ 0x04e2, 0x0602, 0x0682, 0x05a3, 0x0548, 0x048c,
+ 0x0389, 0x02f0, 0x0181, 0xffdc, 0xff04, 0xfe32,
+ 0xfd81, 0xfcf3, 0xfb98, 0xf9a1, 0xf7f4, 0xf6d7,
+ 0xf5cb, 0xf445, 0xf25f, 0xf0a0, 0xefa3, 0xef43,
+ 0xeee4, 0xeea9, 0xee48, 0xed7e, 0xed32, 0xed04,
+ 0xec02, 0xeaf7, 0xea6a, 0xea91, 0xebbb, 0xeced,
+ 0xedcb, 0xeee1, 0xefc4, 0xf0e5, 0xf2be, 0xf3e7,
+ 0xf46c, 0xf5db, 0xf77a, 0xf7df, 0xf7ef, 0xf8ca,
+ 0xf9b0, 0xfa9a, 0xfc75, 0xfe25, 0xff16, 0x00ae,
+ 0x0229, 0x02b2, 0x03ca, 0x050d, 0x05bf, 0x070c,
+ 0x0850, 0x0897, 0x08d2, 0x08dc, 0x0849, 0x07d6,
+ 0x07f1, 0x08ca, 0x09e2, 0x0a3c, 0x0a1b, 0x0a1d,
+ 0x0a88, 0x0b70, 0x0be1, 0x0b76, 0x0b28, 0x0b4d,
+ 0x0bed, 0x0d04, 0x0db1, 0x0ddf, 0x0e5a, 0x0eba,
+ 0x0e71, 0x0dea, 0x0d4b, 0x0c84, 0x0bf4, 0x0bed,
+ 0x0c51, 0x0cb6, 0x0cbc, 0x0c79, 0x0c21, 0x0bee,
+ 0x0c19, 0x0c3f, 0x0c2a, 0x0c6e, 0x0c98, 0x0bac,
+ 0x0a2b, 0x08a5, 0x0764, 0x0727, 0x0728, 0x0681,
+ 0x0636, 0x064a, 0x05e8, 0x0575, 0x04dd, 0x0411,
+ 0x038f, 0x030b, 0x0312, 0x03d7, 0x03a7, 0x02d9,
+ 0x02c1, 0x02a1, 0x02da, 0x03cf, 0x03cb, 0x02f2,
+ 0x0266, 0x01ac, 0x0123, 0x013e, 0x00fb, 0xfff9,
+ 0xfeea, 0xfe98, 0xfedf, 0xfee3, 0xfef7, 0xff65,
+ 0xffb4, 0x007a, 0x012e, 0x001f, 0xfe8b, 0xfdcd,
+ 0xfcee, 0xfc4d, 0xfca1, 0xfce3, 0xfcbf, 0xfcc0,
+ 0xfd36, 0xfe08, 0xfe2b, 0xfd73, 0xfcf2, 0xfc74,
+ 0xfb9e, 0xfae5, 0xfa0c, 0xf97f, 0xf9cf, 0xf9d7,
+ 0xf990, 0xfa0b, 0xfa4d, 0xf9c8, 0xf98d, 0xf92e,
+ 0xf838, 0xf7e6, 0xf85a, 0xf87d, 0xf85b, 0xf8b3,
+ 0xf97b, 0xf9e7, 0xf9f2, 0xfa99, 0xfc2e, 0xfe0b,
+ 0xff8c, 0x004a, 0x00bd, 0x01af, 0x02c3, 0x0343,
+ 0x02c1, 0x00ce, 0xfe6c, 0xfd73, 0xfda1, 0xfdc3,
+ 0xfe18, 0xfee4, 0xffdd, 0x0150, 0x02ee, 0x0367,
+ 0x030f, 0x039b, 0x04e2, 0x05bd, 0x069f, 0x07bc,
+ 0x0832, 0x08b6, 0x0a38, 0x0b78, 0x0bc0, 0x0bd1,
+ 0x0b80, 0x0a8a, 0x0926, 0x0715, 0x0538, 0x04f0,
+ 0x057c, 0x05cc, 0x062c, 0x06ab, 0x06e5, 0x0674,
+ 0x054f, 0x0430, 0x033c, 0x025f, 0x024b, 0x029f,
+ 0x0270, 0x024b, 0x0261, 0x0257, 0x028d, 0x0287,
+ 0x01ba, 0x0110, 0x00e3, 0x00fe, 0x0199, 0x0238,
+ 0x02ad, 0x036d, 0x0392, 0x0274, 0x0138, 0x0095,
+ 0x006e, 0x00d8, 0x0192, 0x026d, 0x039e, 0x04a0,
+ 0x04c8, 0x0436, 0x0320, 0x01d9, 0x0120, 0x0128,
+ 0x0143, 0x00ad, 0xffe0, 0x0064, 0x0217, 0x035a,
+ 0x0414, 0x0489, 0x0417, 0x0309, 0x0168, 0xff04,
+ 0xfdcd, 0xfeb7, 0xffd8, 0x0080, 0x0155, 0x0218,
+ 0x0264, 0x01d6, 0x00ba, 0x0013, 0xffb2, 0xff45,
+ 0xff10, 0xfe6f, 0xfd52, 0xfc93, 0xfc14, 0xfba1,
+ 0xfb5b, 0xfb46, 0xfbb9, 0xfc34, 0xfbf6, 0xfbc7,
+ 0xfc09, 0xfc25, 0xfc1e, 0xfbdd, 0xfb2b, 0xfa02,
+ 0xf85a, 0xf729, 0xf6c1, 0xf5e6, 0xf51b, 0xf595,
+ 0xf689, 0xf77c, 0xf84e, 0xf838, 0xf7e7, 0xf81f,
+ 0xf857, 0xf900, 0xfa44, 0xfb01, 0xfbd8, 0xfe04,
+ 0x00c4, 0x036d, 0x05fd, 0x07bf, 0x086b, 0x088e,
+ 0x0874, 0x0861, 0x08c3, 0x09bb, 0x0b38, 0x0cc2,
+ 0x0d7a, 0x0d1d, 0x0c32, 0x0b1b, 0x0a44, 0x0a37,
+ 0x0a5e, 0x09be, 0x08e7, 0x087d, 0x07c0, 0x06a4,
+ 0x0618, 0x05c8, 0x04fc, 0x0456, 0x042d, 0x03b5,
+ 0x0314, 0x035a, 0x0423, 0x0462, 0x0477, 0x04c6,
+ 0x04e6, 0x0527, 0x05aa, 0x05c3, 0x05e5, 0x0690,
+ 0x0734, 0x0825, 0x09d2, 0x0b0f, 0x0af4, 0x09b1,
+ 0x07db, 0x066c, 0x05c3, 0x052a, 0x0445, 0x03bd,
+ 0x043f, 0x056c, 0x0670, 0x0740, 0x07f4, 0x0805,
+ 0x0706, 0x054b, 0x03c0, 0x02f3, 0x02f6, 0x0402,
+ 0x0545, 0x0583, 0x0545, 0x04bf, 0x0341, 0x020b,
+ 0x0205, 0x01d4, 0x00c2, 0xff33, 0xfdad, 0xfc86,
+ 0xfaff, 0xf900, 0xf773, 0xf5dc, 0xf3ea, 0xf256,
+ 0xf0de, 0xefa5, 0xef55, 0xef4b, 0xef6a, 0xf012,
+ 0xf04d, 0xefc3, 0xef5c, 0xef4d, 0xef3a, 0xef2c,
+ 0xef47, 0xef8d, 0xf04c, 0xf1db, 0xf36e, 0xf45b,
+ 0xf533, 0xf5c3, 0xf5cc, 0xf661, 0xf751, 0xf7a8,
+ 0xf7f4, 0xf899, 0xf9a8, 0xfbca, 0xfebe, 0x019b,
+ 0x039b, 0x0416, 0x03a7, 0x02eb, 0x01b8, 0x011a,
+ 0x01c4, 0x02c6, 0x0416, 0x058b, 0x059a, 0x0473,
+ 0x03c2, 0x03c8, 0x03fa, 0x044e, 0x04d9, 0x0557,
+ 0x0580, 0x05b1, 0x064d, 0x0721, 0x0808, 0x08a7,
+ 0x0886, 0x0828, 0x0824, 0x085b, 0x08c3, 0x0954,
+ 0x09f0, 0x0aa1, 0x0b15, 0x0b28, 0x0b22, 0x0ace,
+ 0x0a60, 0x0a9e, 0x0b05, 0x0ace, 0x0a8e, 0x0abc,
+ 0x0b04, 0x0b1f, 0x0ab0, 0x09b7, 0x0905, 0x08f6,
+ 0x08e2, 0x084b, 0x0748, 0x060d, 0x0536, 0x058c,
+ 0x06a7, 0x0789, 0x07f2, 0x079b, 0x0636, 0x044f,
+ 0x028d, 0x016b, 0x017d, 0x026d, 0x035a, 0x03ff,
+ 0x0432, 0x0410, 0x0440, 0x04d5, 0x054d, 0x0563,
+ 0x04fd, 0x0430, 0x0331, 0x0210, 0x00f7, 0x003a,
+ 0xffc9, 0xff05, 0xfda8, 0xfc4a, 0xfb86, 0xfb3a,
+ 0xfb17, 0xfb59, 0xfc3b, 0xfd0d, 0xfd35, 0xfd47,
+ 0xfd83, 0xfd71, 0xfd5d, 0xfd6b, 0xfd3f, 0xfd4b,
+ 0xfd9a, 0xfd90, 0xfd62, 0xfd1f, 0xfc8a, 0xfc17,
+ 0xfbee, 0xfbe3, 0xfbd3, 0xfb2f, 0xfa03, 0xf8d9,
+ 0xf7ce, 0xf776, 0xf7b5, 0xf759, 0xf6b2, 0xf641,
+ 0xf532, 0xf409, 0xf3bf, 0xf3df, 0xf497, 0xf62d,
+ 0xf796, 0xf8a9, 0xfa01, 0xfb3c, 0xfc5d, 0xfdd4,
+ 0xff07, 0xff85, 0xff95, 0xff18, 0xfe3a, 0xfdaa,
+ 0xfd71, 0xfd89, 0xfdef, 0xfdc3, 0xfcfe, 0xfcd1,
+ 0xfd22, 0xfd4c, 0xfe00, 0xffa9, 0x01a9, 0x03ab,
+ 0x0580, 0x06c3, 0x07aa, 0x08ce, 0x09d1, 0x0a17,
+ 0x0a3a, 0x0a83, 0x0a66, 0x0a46, 0x0a59, 0x09f8,
+ 0x0982, 0x0937, 0x0896, 0x082f, 0x07fe, 0x0712,
+ 0x063c, 0x0645, 0x0657, 0x0665, 0x06bf, 0x06c3,
+ 0x0641, 0x0549, 0x03c5, 0x029e, 0x028c, 0x02bc,
+ 0x02cb, 0x034a, 0x03b1, 0x0382, 0x03c8, 0x0487,
+ 0x04ba, 0x04f8, 0x0589, 0x056c, 0x04fa, 0x04af,
+ 0x03ed, 0x033d, 0x0382, 0x042c, 0x0458, 0x03cf,
+ 0x0321, 0x02ce, 0x024d, 0x019c, 0x01a3, 0x0216,
+ 0x022f, 0x0242, 0x02ae, 0x0315, 0x0324, 0x02ef,
+ 0x0282, 0x01e5, 0x0172, 0x00fc, 0xffef, 0xfedd,
+ 0xfea0, 0xfeec, 0xff58, 0xffbf, 0x0017, 0x008d,
+ 0x008a, 0xffa2, 0xfed8, 0xfebf, 0xfed8, 0xff01,
+ 0xfef9, 0xfe53, 0xfd30, 0xfb99, 0xf9b7, 0xf875,
+ 0xf84e, 0xf8a1, 0xf8e3, 0xf964, 0xfa7f, 0xfbc5,
+ 0xfca5, 0xfd3c, 0xfde3, 0xfe8e, 0xfed4, 0xfe5c,
+ 0xfd59, 0xfc4a, 0xfb43, 0xfa29, 0xf957, 0xf909,
+ 0xf8bb, 0xf859, 0xf85d, 0xf82c, 0xf722, 0xf650,
+ 0xf671, 0xf6e4, 0xf7a6, 0xf928, 0xfb10, 0xfcde,
+ 0xfe48, 0xff31, 0x0038, 0x01e1, 0x0362, 0x0422,
+ 0x0515, 0x069d, 0x07ba, 0x0895, 0x0a14, 0x0b96,
+ 0x0c72, 0x0d1c, 0x0d9f, 0x0dc4, 0x0dd0, 0x0de0,
+ 0x0df8, 0x0e60, 0x0ed3, 0x0e6b, 0x0d2b, 0x0c29,
+ 0x0b70, 0x0a69, 0x0989, 0x0896, 0x06ef, 0x05fa,
+ 0x064a, 0x0660, 0x0630, 0x063c, 0x05f1, 0x05ab,
+ 0x05b6, 0x0552, 0x04ab, 0x0470, 0x04b5, 0x0533,
+ 0x0565, 0x059d, 0x0671, 0x070c, 0x06da, 0x064d,
+ 0x0556, 0x043c, 0x03d7, 0x043c, 0x0544, 0x06c2,
+ 0x07ed, 0x081d, 0x0757, 0x0636, 0x0588, 0x0539,
+ 0x04b8, 0x0415, 0x0387, 0x02c5, 0x01c0, 0x0108,
+ 0x0110, 0x01b5, 0x029a, 0x0353, 0x03b2, 0x0405,
+ 0x0445, 0x0431, 0x03fe, 0x039d, 0x02c4, 0x01c2,
+ 0x00ce, 0xffbc, 0xfe8b, 0xfd53, 0xfc29, 0xfaed,
+ 0xf9ba, 0xf955, 0xf9a9, 0xf99e, 0xf92a, 0xf8d0,
+ 0xf836, 0xf6fd, 0xf580, 0xf492, 0xf472, 0xf449,
+ 0xf3a1, 0xf2dc, 0xf251, 0xf281, 0xf362, 0xf403,
+ 0xf43e, 0xf428, 0xf321, 0xf1a9, 0xf123, 0xf1cc,
+ 0xf336, 0xf519, 0xf721, 0xf8ea, 0xfa2e, 0xfb0d,
+ 0xfbe6, 0xfceb, 0xfe38, 0xff6d, 0xffeb, 0x000a,
+ 0x0089, 0x015e, 0x025d, 0x0385, 0x04a0, 0x0568,
+ 0x0595, 0x0538, 0x04d9, 0x04ad, 0x046d, 0x03f6,
+ 0x0349, 0x029c, 0x024c, 0x023e, 0x0233, 0x0228,
+ 0x01eb, 0x019f, 0x023a, 0x03d4, 0x054b, 0x0659,
+ 0x078e, 0x0894, 0x08c3, 0x0844, 0x0791, 0x0725,
+ 0x0747, 0x0770, 0x0705, 0x0681, 0x068d, 0x06eb,
+ 0x0732, 0x0760, 0x0724, 0x05e4, 0x03de, 0x023d,
+ 0x01c9, 0x025a, 0x038e, 0x051a, 0x065f, 0x06cd,
+ 0x0663, 0x059e, 0x0527, 0x051f, 0x04fa, 0x0471,
+ 0x0381, 0x021b, 0x00cf, 0x0040, 0x0025, 0x0042,
+ 0x00ed, 0x0241, 0x03ca, 0x04ea, 0x057b, 0x05d1,
+ 0x05f2, 0x05a2, 0x04a4, 0x031e, 0x0218, 0x01f9,
+ 0x01cc, 0x0156, 0x0114, 0x00e5, 0x00fa, 0x01cb,
+ 0x0307, 0x042c, 0x04e0, 0x04f2, 0x04a2, 0x0420,
+ 0x037a, 0x02f0, 0x02a9, 0x0270, 0x01d8, 0x00fe,
+ 0x009a, 0x00f2, 0x01e2, 0x02d3, 0x02bb, 0x01f4,
+ 0x0156, 0x0055, 0xff5e, 0xff83, 0xffef, 0x0014,
+ 0x0047, 0x0028, 0xfffe, 0xfff3, 0xff7c, 0xff39,
+ 0xff2e, 0xfe20, 0xfc6a, 0xfae8, 0xf9bf, 0xf941,
+ 0xf91a, 0xf911, 0xf964, 0xf967, 0xf93b, 0xf9d7,
+ 0xfaaa, 0xfb3c, 0xfbd3, 0xfbd8, 0xfb2e, 0xfa75,
+ 0xf9cc, 0xf93d, 0xf880, 0xf761, 0xf6b8, 0xf6b4,
+ 0xf684, 0xf660, 0xf70a, 0xf863, 0xf9da, 0xfb16,
+ 0xfbd2, 0xfbf5, 0xfc36, 0xfd48, 0xfe9c, 0xff73,
+ 0xffaf, 0xff8e, 0xfff7, 0x0169, 0x02e3, 0x036c,
+ 0x0335, 0x02d6, 0x029e, 0x029b, 0x030d, 0x03e0,
+ 0x0460, 0x0480, 0x04a3, 0x04b9, 0x04e9, 0x0541,
+ 0x0590, 0x05fa, 0x060a, 0x0537, 0x0416, 0x0300,
+ 0x0202, 0x01a5, 0x01da, 0x0246, 0x02bd, 0x02cc,
+ 0x02af, 0x031a, 0x03c3, 0x0402, 0x0391, 0x02a9,
+ 0x01dd, 0x015c, 0x012b, 0x0153, 0x018c, 0x01f1,
+ 0x0295, 0x02ed, 0x0343, 0x0432, 0x055c, 0x0694,
+ 0x07cf, 0x0895, 0x08ce, 0x088a, 0x0816, 0x0822,
+ 0x0858, 0x0806, 0x075c, 0x069b, 0x0633, 0x0682,
+ 0x06c3, 0x067e, 0x062a, 0x05b2, 0x0518, 0x04f4,
+ 0x0542, 0x0599, 0x05c1, 0x057d, 0x0506, 0x04e7,
+ 0x053c, 0x05d4, 0x063c, 0x05ba, 0x043e, 0x0275,
+ 0x00dc, 0xffb5, 0xff02, 0xfe51, 0xfd84, 0xfce7,
+ 0xfc64, 0xfc02, 0xfc03, 0xfc3c, 0xfc69, 0xfc65,
+ 0xfbe0, 0xfaec, 0xf9e1, 0xf8cb, 0xf7c4, 0xf724,
+ 0xf71e, 0xf726, 0xf64c, 0xf4e1, 0xf433, 0xf46e,
+ 0xf4e3, 0xf54c, 0xf598, 0xf5bb, 0xf5a1, 0xf533,
+ 0xf49e, 0xf42e, 0xf418, 0xf43a, 0xf428, 0xf450,
+ 0xf581, 0xf770, 0xf93d, 0xfa49, 0xfaad, 0xfb6e,
+ 0xfcf1, 0xfe93, 0x0025, 0x01a8, 0x02e8, 0x03fc,
+ 0x04f0, 0x0657, 0x08ca, 0x0b72, 0x0d43, 0x0df6,
+ 0x0d6b, 0x0c63, 0x0bb6, 0x0b43, 0x0b3f, 0x0bdf,
+ 0x0c7a, 0x0c90, 0x0be4, 0x0af5, 0x0af0, 0x0b4d,
+ 0x0adc, 0x09f9, 0x08d8, 0x075d, 0x0655, 0x05d6,
+ 0x054d, 0x04f6, 0x051e, 0x05b5, 0x0699, 0x0782,
+ 0x0870, 0x0995, 0x0ada, 0x0c33, 0x0d9a, 0x0edf,
+ 0x0fba, 0x0fef, 0x0fc1, 0x0f8a, 0x0efd, 0x0de2,
+ 0x0cb2, 0x0c02, 0x0c45, 0x0d5e, 0x0e0a, 0x0d55,
+ 0x0be4, 0x0a86, 0x094a, 0x087a, 0x0817, 0x0760,
+ 0x0622, 0x04c8, 0x03ae, 0x03a8, 0x04f2, 0x0643,
+ 0x0688, 0x05d8, 0x04bc, 0x03ae, 0x02ad, 0x0196,
+ 0x0085, 0xff84, 0xfeb0, 0xfdb5, 0xfbf0, 0xfa3c,
+ 0xf96b, 0xf88b, 0xf734, 0xf59f, 0xf37a, 0xf169,
+ 0xf009, 0xeec7, 0xedc9, 0xed21, 0xec02, 0xeaad,
+ 0xe9db, 0xe99a, 0xe9fa, 0xeaad, 0xeb5a, 0xec21,
+ 0xecf5, 0xee00, 0xef4b, 0xf010, 0xf00a, 0xef7a,
+ 0xee97, 0xee34, 0xeeac, 0xefba, 0xf1bc, 0xf463,
+ 0xf695, 0xf815, 0xf8f8, 0xf964, 0xf9ee, 0xface,
+ 0xfbf9, 0xfd25, 0xfd9b, 0xfd93, 0xfe0a, 0xff65,
+ 0x0169, 0x031b, 0x03bb, 0x03d1, 0x03ce, 0x03e2,
+ 0x0493, 0x0598, 0x067e, 0x078a, 0x0886, 0x0934,
+ 0x0a13, 0x0b59, 0x0ce6, 0x0e3c, 0x0e9a, 0x0e3e,
+ 0x0e0a, 0x0e33, 0x0e82, 0x0eca, 0x0f11, 0x0f6c,
+ 0x0f6f, 0x0eec, 0x0e7e, 0x0e89, 0x0f03, 0x0f98,
+ 0x0fa6, 0x0f44, 0x0f52, 0x1014, 0x10fe, 0x117e,
+ 0x1149, 0x103f, 0x0e83, 0x0cae, 0x0b6c, 0x0aff,
+ 0x0b38, 0x0b87, 0x0b5d, 0x0a9a, 0x0950, 0x07fc,
+ 0x075b, 0x0714, 0x0641, 0x04f8, 0x03d1, 0x02fe,
+ 0x029c, 0x02e1, 0x03a2, 0x0432, 0x0457, 0x044e,
+ 0x0399, 0x022b, 0x012e, 0x00ad, 0xffeb, 0xff4c,
+ 0xfed5, 0xfe2c, 0xfe2d, 0xfece, 0xfece, 0xfe45,
+ 0xfd96, 0xfc68, 0xfb62, 0xfb2a, 0xfb12, 0xfadb,
+ 0xfadf, 0xfabd, 0xfa1e, 0xf957, 0xf8e8, 0xf93e,
+ 0xfa2f, 0xfb0f, 0xfbbf, 0xfc84, 0xfd72, 0xfeb4,
+ 0x003c, 0x0190, 0x0247, 0x01fc, 0x00bc, 0xffb0,
+ 0xffb6, 0x006a, 0x00e4, 0x0061, 0xff2e, 0xfe31,
+ 0xfd3e, 0xfc13, 0xfb58, 0xfafc, 0xfa7f, 0xfa0b,
+ 0xf9cc, 0xfa25, 0xfb5e, 0xfcbb, 0xfdd6, 0xfedd,
+ 0xff83, 0xffa2, 0xff3c, 0xfe8d, 0xfe8e, 0xff1e,
+ 0xff1d, 0xfed8, 0xfed4, 0xfee5, 0xff7a, 0x007d,
+ 0x0110, 0x0138, 0x0135, 0x00e8, 0x008d, 0x0076,
+ 0x00bc, 0x012a, 0x017d, 0x01f0, 0x0261, 0x0273,
+ 0x02bf, 0x038e, 0x0453, 0x0528, 0x062f, 0x06f7,
+ 0x078a, 0x0826, 0x08e2, 0x09d5, 0x0a78, 0x0a34,
+ 0x096a, 0x08ee, 0x0920, 0x098c, 0x097b, 0x08d1,
+ 0x07b6, 0x0684, 0x05ca, 0x057f, 0x0545, 0x04af,
+ 0x02fb, 0x0096, 0xff2a, 0xff0b, 0xff88, 0x003c,
+ 0x0062, 0xffc6, 0xff80, 0xff88, 0xfed2, 0xfdd5,
+ 0xfd60, 0xfd06, 0xfc98, 0xfc40, 0xfbb8, 0xfb6e,
+ 0xfc04, 0xfcf4, 0xfde1, 0xfee8, 0xff40, 0xfe92,
+ 0xfde4, 0xfdbb, 0xfdd4, 0xfdf7, 0xfdcf, 0xfd5d,
+ 0xfd1b, 0xfd38, 0xfd89, 0xfdf4, 0xfebd, 0xfff1,
+ 0x00d9, 0x016e, 0x0241, 0x02ce, 0x02e6, 0x036d,
+ 0x042c, 0x0498, 0x0502, 0x0553, 0x0590, 0x0608,
+ 0x061d, 0x0583, 0x04a3, 0x036f, 0x0250, 0x01f5,
+ 0x01f8, 0x0181, 0xfffe, 0xfe0c, 0xfd6d, 0xfe43,
+ 0xff24, 0xffcf, 0x0054, 0x0041, 0xffe0, 0xff91,
+ 0xff4f, 0xff70, 0xfff5, 0x0033, 0xfffc, 0xffbc,
+ 0xffab, 0xff8f, 0xff34, 0xfe91, 0xfda4, 0xfcb7,
+ 0xfbf9, 0xfaf8, 0xf983, 0xf806, 0xf6af, 0xf597,
+ 0xf4d9, 0xf420, 0xf35f, 0xf327, 0xf3b8, 0xf4cb,
+ 0xf627, 0xf7bc, 0xf96d, 0xfb23, 0xfcea, 0xfea7,
+ 0x0028, 0x016d, 0x025a, 0x02ff, 0x03ef, 0x0557,
+ 0x0700, 0x08ee, 0x0a8d, 0x0b26, 0x0b07, 0x0aab,
+ 0x0a35, 0x09f6, 0x09e6, 0x0990, 0x08a7, 0x073f,
+ 0x0605, 0x0566, 0x04d7, 0x0457, 0x0466, 0x045a,
+ 0x0383, 0x02ac, 0x028b, 0x02ce, 0x02f2, 0x02a9,
+ 0x0245, 0x028a, 0x0345, 0x039f, 0x039c, 0x03a4,
+ 0x03e9, 0x04a7, 0x0598, 0x063e, 0x06c8, 0x0716,
+ 0x069a, 0x05a0, 0x04d5, 0x046f, 0x046b, 0x04a4,
+ 0x050c, 0x0592, 0x05dc, 0x05fc, 0x064f, 0x0696,
+ 0x069c, 0x0690, 0x0696, 0x06d9, 0x0722, 0x0721,
+ 0x073c, 0x07cd, 0x08bf, 0x09fb, 0x0ae4, 0x0ad5,
+ 0x09f9, 0x08a9, 0x077b, 0x070a, 0x06a9, 0x0565,
+ 0x0390, 0x01c2, 0x001e, 0xfeae, 0xfd7b, 0xfc8c,
+ 0xfb8d, 0xf9fd, 0xf828, 0xf6da, 0xf62b, 0xf59e,
+ 0xf50a, 0xf4ba, 0xf4d1, 0xf4dd, 0xf452, 0xf345,
+ 0xf242, 0xf16f, 0xf0bf, 0xf062, 0xf017, 0xef6e,
+ 0xeec4, 0xee3c, 0xed3c, 0xebf1, 0xeb3d, 0xeb6a,
+ 0xec0e, 0xecae, 0xed63, 0xee80, 0xeffb, 0xf1eb,
+ 0xf453, 0xf693, 0xf86d, 0xf9d6, 0xfa7e, 0xfaf4,
+ 0xfbd7, 0xfc8f, 0xfd0a, 0xfe20, 0xffb5, 0x010e,
+ 0x01fd, 0x026d, 0x0226, 0x0189, 0x0178, 0x01e5,
+ 0x01fa, 0x01b9, 0x0155, 0x008f, 0x0017, 0x00bd,
+ 0x01ed, 0x0312, 0x03fe, 0x044f, 0x0486, 0x0579,
+ 0x069e, 0x0766, 0x085b, 0x09be, 0x0b43, 0x0c8f,
+ 0x0d1c, 0x0cfe, 0x0cef, 0x0ce4, 0x0cb5, 0x0d14,
+ 0x0df8, 0x0e6c, 0x0e42, 0x0dce, 0x0d19, 0x0c3e,
+ 0x0b4a, 0x0a2b, 0x093b, 0x08db, 0x08ae, 0x0832,
+ 0x07b7, 0x07b3, 0x07e8, 0x0829, 0x0873, 0x085b,
+ 0x0816, 0x0867, 0x091c, 0x09b6, 0x0a36, 0x0aa1,
+ 0x0b1d, 0x0b89, 0x0b5c, 0x0ab6, 0x09cc, 0x087a,
+ 0x074d, 0x0690, 0x05d8, 0x050f, 0x03f3, 0x0277,
+ 0x0188, 0x0143, 0x00e5, 0x0046, 0xff61, 0xfe77,
+ 0xfe59, 0xfeeb, 0xff4d, 0xff45, 0xff24, 0xff47,
+ 0xffb0, 0x0004, 0x0018, 0xffcd, 0xff33, 0xfebc,
+ 0xfea2, 0xfed7, 0xff34, 0xff6c, 0xff73, 0xff57,
+ 0xfeec, 0xfe34, 0xfd39, 0xfc00, 0xfb18, 0xfad2,
+ 0xfaa1, 0xfa31, 0xf9e1, 0xf9ee, 0xfa0a, 0xf9de,
+ 0xf976, 0xf8f7, 0xf89a, 0xf89b, 0xf8c7, 0xf91a,
+ 0xf9f6, 0xfb20, 0xfc24, 0xfce3, 0xfd26, 0xfd2d,
+ 0xfd52, 0xfd36, 0xfcff, 0xfd1d, 0xfcef, 0xfc18,
+ 0xfafb, 0xf9da, 0xf932, 0xf907, 0xf87f, 0xf797,
+ 0xf6f0, 0xf6c2, 0xf719, 0xf7a0, 0xf80c, 0xf8bd,
+ 0xf9cb, 0xfb28, 0xfd13, 0xff07, 0x0044, 0x00e7,
+ 0x012f, 0x016f, 0x0239, 0x0374, 0x04be, 0x0605,
+ 0x06e9, 0x0727, 0x0723, 0x06e8, 0x0651, 0x05f3,
+ 0x0620, 0x0643, 0x0649, 0x06aa, 0x072a, 0x0760,
+ 0x0792, 0x07f6, 0x083d, 0x082a, 0x07da, 0x07a0,
+ 0x07b6, 0x0821, 0x08f0, 0x09fa, 0x0a79, 0x09e2,
+ 0x089f, 0x0739, 0x05d4, 0x04ca, 0x0458, 0x040b,
+ 0x0385, 0x02e2, 0x022f, 0x01ab, 0x0195, 0x0182,
+ 0x0115, 0x006d, 0xffd5, 0xffdb, 0x007a, 0x00e7,
+ 0x011c, 0x0196, 0x0218, 0x02a7, 0x0396, 0x045e,
+ 0x0491, 0x0476, 0x0414, 0x03b4, 0x0409, 0x04c5,
+ 0x0533, 0x0589, 0x05ae, 0x0500, 0x03ef, 0x0320,
+ 0x024f, 0x019e, 0x0183, 0x01a8, 0x01eb, 0x0279,
+ 0x02d8, 0x02cd, 0x029f, 0x0238, 0x01a1, 0x00f5,
+ 0x0000, 0xff39, 0xff77, 0x00a4, 0x022a, 0x0384,
+ 0x044b, 0x044b, 0x034b, 0x01bc, 0x00fb, 0x014a,
+ 0x0183, 0x0126, 0x0059, 0xff38, 0xfe2d, 0xfd66,
+ 0xfc8e, 0xfb5c, 0xf995, 0xf76d, 0xf5a3, 0xf459,
+ 0xf34f, 0xf2b0, 0xf265, 0xf242, 0xf282, 0xf312,
+ 0xf3b7, 0xf46a, 0xf4b1, 0xf451, 0xf41b, 0xf48c,
+ 0xf548, 0xf642, 0xf7c1, 0xf984, 0xfb04, 0xfc0b,
+ 0xfc89, 0xfcaa, 0xfd0c, 0xfde2, 0xfee6, 0x0046,
+ 0x021e, 0x03f1, 0x05a1, 0x0734, 0x0874, 0x09af,
+ 0x0b05, 0x0bb5, 0x0b80, 0x0b26, 0x0b4f, 0x0bfc,
+ 0x0ccd, 0x0d79, 0x0dbb, 0x0d1a, 0x0ba0, 0x0a1e,
+ 0x0949, 0x090b, 0x08eb, 0x08b1, 0x084a, 0x07ab,
+ 0x0737, 0x0722, 0x06cc, 0x05dd, 0x04bb, 0x03e4,
+ 0x03a5, 0x03c3, 0x0423, 0x0535, 0x0685, 0x0749,
+ 0x07dc, 0x0879, 0x08f2, 0x0971, 0x0982, 0x08df,
+ 0x085a, 0x082f, 0x0851, 0x0942, 0x0a9b, 0x0b79,
+ 0x0bd2, 0x0b76, 0x0a28, 0x0880, 0x0746, 0x06e4,
+ 0x075d, 0x0854, 0x097f, 0x0a7c, 0x0a94, 0x09b9,
+ 0x08b1, 0x07de, 0x06d5, 0x0543, 0x0370, 0x01e6,
+ 0x013b, 0x01c7, 0x0319, 0x0436, 0x0453, 0x0320,
+ 0x0105, 0xfef4, 0xfd76, 0xfc2c, 0xfacc, 0xf9d9,
+ 0xf983, 0xf933, 0xf8bb, 0xf839, 0xf749, 0xf59d,
+ 0xf35c, 0xf0df, 0xee76, 0xec22, 0xe9ff, 0xe892,
+ 0xe7ed, 0xe7d6, 0xe850, 0xe92f, 0xea5d, 0xebbc,
+ 0xecce, 0xeda6, 0xee6e, 0xeef0, 0xf010, 0xf29f,
+ 0xf577, 0xf7a9, 0xf963, 0xfa75, 0xfae6, 0xfb3b,
+ 0xfb92, 0xfc1f, 0xfd0a, 0xfdc6, 0xfded, 0xfdb2,
+ 0xfd34, 0xfcb4, 0xfccf, 0xfd9b, 0xfe72, 0xfefd,
+ 0xff49, 0xff7d, 0x005d, 0x026a, 0x0500, 0x0762,
+ 0x08fc, 0x0963, 0x0950, 0x09a0, 0x0a42, 0x0b0e,
+ 0x0bc1, 0x0c2e, 0x0cd8, 0x0db5, 0x0e1b, 0x0dec,
+ 0x0d47, 0x0c65, 0x0b9e, 0x0adb, 0x0a0d, 0x097f,
+ 0x0936, 0x0919, 0x091c, 0x0969, 0x0a13, 0x0a6d,
+ 0x0a34, 0x09ff, 0x09c3, 0x0952, 0x08cf, 0x0822,
+ 0x0807, 0x0922, 0x0a52, 0x0ae0, 0x0b05, 0x0a54,
+ 0x08f6, 0x07ad, 0x0698, 0x0607, 0x0620, 0x062a,
+ 0x05e7, 0x0587, 0x0513, 0x04c8, 0x0483, 0x03ff,
+ 0x0381, 0x02f8, 0x022e, 0x01a4, 0x01c7, 0x027a,
+ 0x0377, 0x041a, 0x03f5, 0x0380, 0x0319, 0x028b,
+ 0x01fd, 0x01c8, 0x019d, 0x0141, 0x00f7, 0x00cd,
+ 0x00aa, 0x002f, 0xfee9, 0xfd5e, 0xfc1e, 0xfaca,
+ 0xf9b2, 0xf976, 0xf9a9, 0xfa2c, 0xfb11, 0xfbcd,
+ 0xfc5d, 0xfce7, 0xfce6, 0xfc79, 0xfc29, 0xfbcb,
+ 0xfb50, 0xfb32, 0xfbc2, 0xfcd1, 0xfdd1, 0xfe52,
+ 0xfe2c, 0xfd86, 0xfc9a, 0xfb55, 0xfa36, 0xfa3f,
+ 0xfb2c, 0xfbe1, 0xfc2d, 0xfc65, 0xfcc1, 0xfd27,
+ 0xfd39, 0xfd18, 0xfcf7, 0xfc7b, 0xfbca, 0xfb7f,
+ 0xfbb1, 0xfc32, 0xfc87, 0xfc2c, 0xfb70, 0xfadc,
+ 0xfaa4, 0xfae9, 0xfb5e, 0xfb98, 0xfc02, 0xfd03,
+ 0xfde0, 0xfe1b, 0xfe6d, 0xfee4, 0xfecd, 0xfeb1,
+ 0xfefc, 0xfee6, 0xfe94, 0xfeae, 0xfee6, 0xff5a,
+ 0x0033, 0x00ee, 0x01ab, 0x027d, 0x0301, 0x0396,
+ 0x0465, 0x04f6, 0x0579, 0x063c, 0x076c, 0x0908,
+ 0x0a15, 0x09e9, 0x08ff, 0x079e, 0x0610, 0x04eb,
+ 0x0444, 0x042f, 0x04cb, 0x0574, 0x0575, 0x0504,
+ 0x04d1, 0x04e2, 0x04ae, 0x0427, 0x0368, 0x0271,
+ 0x01c5, 0x01a9, 0x01e4, 0x0288, 0x033f, 0x035b,
+ 0x0305, 0x029c, 0x0241, 0x0250, 0x02d2, 0x036c,
+ 0x03f0, 0x045c, 0x04ef, 0x05ab, 0x0604, 0x05e9,
+ 0x05ad, 0x0535, 0x0431, 0x02a3, 0x0119, 0x0057,
+ 0x0076, 0x010e, 0x01c5, 0x023f, 0x0263, 0x025f,
+ 0x0228, 0x01be, 0x0169, 0x0164, 0x01a4, 0x0210,
+ 0x02a0, 0x0335, 0x03ab, 0x03e2, 0x0372, 0x024e,
+ 0x0120, 0x0024, 0xff3f, 0xfec2, 0xfeb6, 0xfeb5,
+ 0xfeaa, 0xfeaa, 0xfedb, 0xff72, 0x0037, 0x00a9,
+ 0x0054, 0xff41, 0xfe47, 0xfe0e, 0xfe3a, 0xfe54,
+ 0xfe38, 0xfdb5, 0xfcb5, 0xfb61, 0xf9ee, 0xf87b,
+ 0xf734, 0xf648, 0xf57d, 0xf4a0, 0xf3ee, 0xf352,
+ 0xf26c, 0xf15e, 0xf064, 0xef7e, 0xeeb1, 0xede9,
+ 0xed33, 0xed05, 0xedce, 0xef53, 0xf0b8, 0xf1a0,
+ 0xf2a5, 0xf41e, 0xf5cf, 0xf7d0, 0xfa38, 0xfcb9,
+ 0xff25, 0x017b, 0x039f, 0x0579, 0x070a, 0x0820,
+ 0x0874, 0x087b, 0x08c7, 0x091c, 0x0998, 0x0a90,
+ 0x0b5a, 0x0ba3, 0x0bb2, 0x0b1f, 0x0a2d, 0x09c3,
+ 0x097c, 0x090e, 0x08ff, 0x0907, 0x08fb, 0x092d,
+ 0x091e, 0x08bb, 0x08c6, 0x092c, 0x097f, 0x09e9,
+ 0x0aa0, 0x0b96, 0x0c6b, 0x0cc9, 0x0d08, 0x0d8d,
+ 0x0e36, 0x0ea3, 0x0e85, 0x0dbb, 0x0c4d, 0x0a5d,
+ 0x0868, 0x06f7, 0x0615, 0x05b3, 0x05d0, 0x0617,
+ 0x062d, 0x063e, 0x06a8, 0x073c, 0x075a, 0x06e3,
+ 0x067d, 0x0692, 0x06e8, 0x0746, 0x07bc, 0x0866,
+ 0x08f6, 0x08b3, 0x0769, 0x05de, 0x0491, 0x0377,
+ 0x02ea, 0x02f6, 0x02cc, 0x0210, 0x00d5, 0xff16,
+ 0xfd82, 0xfcb3, 0xfbe3, 0xfa66, 0xf8b2, 0xf77f,
+ 0xf707, 0xf6a5, 0xf597, 0xf43d, 0xf314, 0xf1c5,
+ 0xf06e, 0xefab, 0xef44, 0xee97, 0xed90, 0xec86,
+ 0xebee, 0xec23, 0xeced, 0xedbf, 0xee57, 0xee8b,
+ 0xee28, 0xed3f, 0xec15, 0xeb2e, 0xeb3e, 0xec40,
+ 0xedb4, 0xef71, 0xf118, 0xf26f, 0xf40b, 0xf5fc,
+ 0xf782, 0xf874, 0xf921, 0xf9e9, 0xfb34, 0xfcd3,
+ 0xfe5b, 0xffba, 0x0081, 0x006d, 0x0045, 0x00aa,
+ 0x015d, 0x0257, 0x03d2, 0x0553, 0x064f, 0x072a,
+ 0x07fc, 0x0847, 0x0899, 0x09aa, 0x0a99, 0x0a93,
+ 0x0a44, 0x0a7d, 0x0b45, 0x0c41, 0x0d3a, 0x0e17,
+ 0x0e70, 0x0e11, 0x0db5, 0x0e1a, 0x0f15, 0x0fde,
+ 0x0ffb, 0x0fd7, 0x100f, 0x10b3, 0x1182, 0x11fe,
+ 0x117f, 0x0fe4, 0x0d9d, 0x0b2a, 0x0914, 0x0790,
+ 0x065b, 0x0579, 0x0522, 0x04f9, 0x0492, 0x0454,
+ 0x04a4, 0x052a, 0x05a0, 0x05e4, 0x0588, 0x04b3,
+ 0x0435, 0x0422, 0x040b, 0x03f3, 0x03e5, 0x039c,
+ 0x0303, 0x025b, 0x01ec, 0x01c6, 0x01ac, 0x0149,
+ 0x00ac, 0x004b, 0x0043, 0x0055, 0x0071, 0x005c,
+ 0xff94, 0xfe0c, 0xfc4e, 0xfad5, 0xf9cb, 0xf942,
+ 0xf948, 0xf98b, 0xf99a, 0xf9da, 0xfb02, 0xfcbe,
+ 0xfe2f, 0xfef2, 0xff0c, 0xfee0, 0xff2d, 0x0033,
+ 0x0179, 0x027c, 0x02ef, 0x0297, 0x017a, 0x0011,
+ 0xfeeb, 0xfe2f, 0xfd8c, 0xfcdc, 0xfc5d, 0xfc07,
+ 0xfbb7, 0xfbcb, 0xfc87, 0xfdb6, 0xff09, 0x000c,
+ 0x008e, 0x012b, 0x0239, 0x034a, 0x03fc, 0x041b,
+ 0x0398, 0x02e4, 0x025f, 0x020c, 0x0203, 0x025d,
+ 0x02f7, 0x0382, 0x03b0, 0x0399, 0x0379, 0x034a,
+ 0x031f, 0x0305, 0x0289, 0x0185, 0x0082, 0xffcc,
+ 0xff4d, 0xff13, 0xfefb, 0xfea6, 0xfe45, 0xfe82,
+ 0xffab, 0x0166, 0x02e8, 0x037f, 0x034f, 0x031e,
+ 0x037f, 0x0475, 0x0576, 0x05d5, 0x0563, 0x0450,
+ 0x02cf, 0x014b, 0x0023, 0xff50, 0xfed3, 0xfeca,
+ 0xfeec, 0xfece, 0xfe52, 0xfdc7, 0xfd9e, 0xfdcf,
+ 0xfdef, 0xfdd6, 0xfd8b, 0xfd50, 0xfd89, 0xfdc6,
+ 0xfd3b, 0xfc2e, 0xfb2d, 0xfa50, 0xf9d0, 0xf99d,
+ 0xf986, 0xf9d5, 0xfa50, 0xfa63, 0xfa5e, 0xfa7e,
+ 0xfa9a, 0xfb02, 0xfbad, 0xfc36, 0xfcba, 0xfd03,
+ 0xfcb9, 0xfc59, 0xfc56, 0xfcba, 0xfd59, 0xfd80,
+ 0xfd3b, 0xfd97, 0xfeb8, 0xffcd, 0x004e, 0x0039,
+ 0x0023, 0x00b4, 0x01ff, 0x03b9, 0x0525, 0x05ac,
+ 0x05b2, 0x0585, 0x04f1, 0x0479, 0x0497, 0x04b4,
+ 0x0472, 0x0444, 0x0435, 0x03e3, 0x0371, 0x0357,
+ 0x039f, 0x0417, 0x0475, 0x046d, 0x043e, 0x047e,
+ 0x0558, 0x0696, 0x0799, 0x07ce, 0x07c7, 0x081b,
+ 0x0841, 0x0807, 0x07f7, 0x0810, 0x07e0, 0x0730,
+ 0x0605, 0x04b5, 0x0391, 0x02c1, 0x023e, 0x0187,
+ 0x0038, 0xfe96, 0xfcbe, 0xfacf, 0xf99a, 0xf934,
+ 0xf880, 0xf704, 0xf53c, 0xf3a2, 0xf29e, 0xf226,
+ 0xf1d2, 0xf1ce, 0xf254, 0xf317, 0xf3fc, 0xf4e0,
+ 0xf557, 0xf580, 0xf5c0, 0xf618, 0xf68e, 0xf719,
+ 0xf7a0, 0xf84d, 0xf94a, 0xfaba, 0xfc79, 0xfddd,
+ 0xfed0, 0xffd7, 0x00cb, 0x0147, 0x0162, 0x014f,
+ 0x0160, 0x01d1, 0x0292, 0x0384, 0x046d, 0x0526,
+ 0x05a6, 0x059c, 0x04fa, 0x041b, 0x0344, 0x02f3,
+ 0x0332, 0x0354, 0x037c, 0x03e0, 0x0409, 0x045f,
+ 0x0544, 0x0619, 0x06e9, 0x07b1, 0x07b2, 0x0760,
+ 0x0766, 0x0754, 0x0723, 0x070e, 0x0711, 0x07a6,
+ 0x08b7, 0x095c, 0x0960, 0x090b, 0x08a1, 0x089f,
+ 0x0913, 0x09bc, 0x0aad, 0x0bc7, 0x0cc9, 0x0db8,
+ 0x0e4b, 0x0e1e, 0x0d7e, 0x0cd2, 0x0c38, 0x0bf8,
+ 0x0c07, 0x0bdd, 0x0b6e, 0x0ae0, 0x0a16, 0x0963,
+ 0x0931, 0x093f, 0x0948, 0x093f, 0x0913, 0x08fd,
+ 0x0906, 0x089d, 0x0797, 0x0647, 0x04ce, 0x0350,
+ 0x020e, 0x00eb, 0xffd9, 0xfee9, 0xfd97, 0xfb8d,
+ 0xf981, 0xf7c4, 0xf5ff, 0xf48d, 0xf3a1, 0xf2c5,
+ 0xf224, 0xf1a3, 0xf09b, 0xef5b, 0xee3e, 0xed36,
+ 0xecd5, 0xed0c, 0xed50, 0xedf2, 0xeeb2, 0xeefa,
+ 0xef4f, 0xf00a, 0xf0f4, 0xf1d4, 0xf246, 0xf28b,
+ 0xf2f2, 0xf305, 0xf2e0, 0xf2c1, 0xf261, 0xf271,
+ 0xf370, 0xf49e, 0xf5ba, 0xf6c8, 0xf764, 0xf793,
+ 0xf77d, 0xf77d, 0xf82a, 0xf970, 0xfaf9, 0xfc6f,
+ 0xfd58, 0xfe1b, 0xff40, 0x0076, 0x01bf, 0x030a,
+ 0x03e4, 0x0492, 0x055f, 0x061d, 0x06ef, 0x07b9,
+ 0x084e, 0x0912, 0x09f3, 0x0a6b, 0x0a7c, 0x0a51,
+ 0x0a07, 0x09e8, 0x0a48, 0x0b23, 0x0bbf, 0x0b94,
+ 0x0b11, 0x0aa0, 0x0a82, 0x0b2a, 0x0c42, 0x0cdc,
+ 0x0cc6, 0x0c61, 0x0c0a, 0x0bed, 0x0bdd, 0x0bc3,
+ 0x0bd8, 0x0c2b, 0x0c83, 0x0c7a, 0x0b9e, 0x0a1e,
+ 0x08b8, 0x07b4, 0x071b, 0x0741, 0x0810, 0x090c,
+ 0x09f0, 0x0a4c, 0x09eb, 0x0977, 0x090f, 0x07fa,
+ 0x066d, 0x0528, 0x0452, 0x040c, 0x047f, 0x0531,
+ 0x0572, 0x0500, 0x03dd, 0x0210, 0x003f, 0xff74,
+ 0xff9f, 0x002c, 0x015d, 0x02ec, 0x03d0, 0x03cb,
+ 0x02f6, 0x0178, 0x0040, 0x0007, 0x00ad, 0x01d4,
+ 0x02dc, 0x0335, 0x02c8, 0x01b3, 0x0069, 0xff64,
+ 0xfea7, 0xfe29, 0xfdc1, 0xfd2a, 0xfca2, 0xfc5e,
+ 0xfc0b, 0xfb6c, 0xfa6c, 0xf959, 0xf8e8, 0xf907,
+ 0xf8fe, 0xf8b0, 0xf85f, 0xf83b, 0xf89c, 0xf9a8,
+ 0xfb27, 0xfccc, 0xfe3f, 0xfefd, 0xfec3, 0xfe27,
+ 0xfdff, 0xfe17, 0xfdd9, 0xfd71, 0xfd16, 0xfcc9,
+ 0xfce3, 0xfd49, 0xfd53, 0xfd15, 0xfce1, 0xfc70,
+ 0xfb9c, 0xfaa7, 0xf9d3, 0xf98c, 0xfa21, 0xfb5b,
+ 0xfc97, 0xfd48, 0xfd7c, 0xfd77, 0xfd2c, 0xfd0d,
+ 0xfdd7, 0xff3e, 0x0093, 0x017b, 0x01ba, 0x020c,
+ 0x034e, 0x04e3, 0x060d, 0x06b0, 0x0699, 0x0634,
+ 0x0605, 0x05b7, 0x0578, 0x0591, 0x057d, 0x0555,
+ 0x056f, 0x0547, 0x04ba, 0x03e6, 0x0288, 0x0111,
+ 0x002b, 0xffc3, 0xffb0, 0xfff1, 0x005b, 0x00a0,
+ 0x0082, 0x0047, 0x005b, 0x00b2, 0x0122, 0x018c,
+ 0x01e3, 0x026e, 0x036a, 0x04c1, 0x061d, 0x070b,
+ 0x0778, 0x074e, 0x062d, 0x047a, 0x02c8, 0x011e,
+ 0x003b, 0x00b5, 0x019e, 0x0257, 0x02f1, 0x02f8,
+ 0x0260, 0x01bd, 0x014d, 0x0111, 0x00f5, 0x010b,
+ 0x01bb, 0x031b, 0x04ee, 0x06d2, 0x07db, 0x079e,
+ 0x06e8, 0x065f, 0x0609, 0x05d9, 0x05ae, 0x0575,
+ 0x052e, 0x04a5, 0x03da, 0x0326, 0x02b1, 0x026a,
+ 0x0251, 0x0248, 0x0206, 0x01bb, 0x01e1, 0x0236,
+ 0x0214, 0x0169, 0x0056, 0xff2b, 0xfed8, 0xffb3,
+ 0x00b4, 0x011f, 0x0135, 0x0129, 0x00f9, 0x00c6,
+ 0x0089, 0x003c, 0xfff7, 0xff67, 0xfe18, 0xfc3a,
+ 0xfa24, 0xf823, 0xf6d1, 0xf671, 0xf688, 0xf68d,
+ 0xf61b, 0xf4ee, 0xf36d, 0xf25e, 0xf211, 0xf226,
+ 0xf21a, 0xf218, 0xf2a1, 0xf3ac, 0xf4fe, 0xf670,
+ 0xf7bc, 0xf903, 0xfadb, 0xfd4d, 0xffcb, 0x01bc,
+ 0x02be, 0x02de, 0x028e, 0x024f, 0x0277, 0x0325,
+ 0x0459, 0x05ce, 0x06d9, 0x0745, 0x074c, 0x06c9,
+ 0x05eb, 0x0565, 0x0571, 0x05e0, 0x0670, 0x06bf,
+ 0x06ec, 0x073c, 0x076e, 0x077a, 0x076c, 0x0735,
+ 0x0792, 0x0917, 0x0b0a, 0x0cc1, 0x0de6, 0x0dcc,
+ 0x0c63, 0x0a74, 0x08a5, 0x0768, 0x0703, 0x0769,
+ 0x0875, 0x09db, 0x0b1c, 0x0bb3, 0x0b76, 0x0ac4,
+ 0x09eb, 0x0913, 0x088f, 0x0864, 0x088b, 0x0960,
+ 0x0a82, 0x0b32, 0x0b74, 0x0b35, 0x0a7a, 0x0a23,
+ 0x0a73, 0x0aae, 0x0a59, 0x096e, 0x0864, 0x07be,
+ 0x074d, 0x0702, 0x06ff, 0x06bd, 0x0611, 0x056f,
+ 0x04cb, 0x0407, 0x0354, 0x02ba, 0x024d, 0x020c,
+ 0x01b4, 0x0105, 0xffcc, 0xfe2f, 0xfcbc, 0xfb75,
+ 0xf9d9, 0xf7c5, 0xf5b3, 0xf43d, 0xf33d, 0xf21f,
+ 0xf119, 0xf06b, 0xefaa, 0xeec7, 0xeddc, 0xecbb,
+ 0xebab, 0xeadf, 0xea0c, 0xe96c, 0xe996, 0xea93,
+ 0xec00, 0xed49, 0xede5, 0xedd2, 0xed95, 0xedc5,
+ 0xee5a, 0xeeea, 0xef98, 0xf094, 0xf18b, 0xf276,
+ 0xf38e, 0xf4a9, 0xf59e, 0xf630, 0xf605, 0xf57f,
+ 0xf56c, 0xf604, 0xf719, 0xf85a, 0xf97c, 0xfa93,
+ 0xfbd2, 0xfd1a, 0xfe47, 0xff7a, 0x00c1, 0x01f7,
+ 0x02fd, 0x03ef, 0x0508, 0x066e, 0x07f9, 0x0949,
+ 0x0a50, 0x0b2e, 0x0bce, 0x0c61, 0x0d6c, 0x0eda,
+ 0x1014, 0x10cf, 0x1104, 0x10be, 0x1008, 0x0edf,
+ 0x0d8f, 0x0c91, 0x0bd3, 0x0b00, 0x0a10, 0x095d,
+ 0x0975, 0x0a78, 0x0b9e, 0x0c03, 0x0b6d, 0x0a11,
+ 0x0875, 0x0736, 0x0657, 0x059f, 0x0560, 0x059e,
+ 0x05de, 0x0664, 0x078f, 0x08bb, 0x095c, 0x0950,
+ 0x0847, 0x069f, 0x0563, 0x0501, 0x0545, 0x05ac,
+ 0x05a1, 0x0525, 0x0476, 0x039b, 0x028f, 0x0136,
+ 0xffb8, 0xfe9f, 0xfe07, 0xfdb6, 0xfdb4, 0xfe0d,
+ 0xfe8e, 0xfebd, 0xfe59, 0xfdc7, 0xfd8c, 0xfe1b,
+ 0xffa7, 0x0183, 0x0309, 0x042b, 0x04b3, 0x049f,
+ 0x0415, 0x0324, 0x0295, 0x029a, 0x0209, 0x009a,
+ 0xfea3, 0xfbfd, 0xf96e, 0xf7d2, 0xf6b2, 0xf5e9,
+ 0xf5dd, 0xf669, 0xf740, 0xf804, 0xf824, 0xf74a,
+ 0xf56f, 0xf30d, 0xf110, 0xf092, 0xf28a, 0xf692,
+ 0xfaf4, 0xfe60, 0x0029, 0x0021, 0xff1a, 0xfde0,
+ 0xfc75, 0xfb06, 0xfa43, 0xfac1, 0xfc69, 0xfe87,
+ 0x0066, 0x016b, 0x012b, 0xffeb, 0xfdf0, 0xfb42,
+ 0xf8e0, 0xf7ea, 0xf822, 0xf906, 0xfa6a, 0xfbfb,
+ 0xfdea, 0x0052, 0x0238, 0x031b, 0x035c, 0x02ec,
+ 0x0217, 0x01ac, 0x01dd, 0x02e7, 0x04f8, 0x0724,
+ 0x0890, 0x0932, 0x08ed, 0x07c5, 0x063f, 0x04dd,
+ 0x03dc, 0x036d, 0x03b9, 0x0487, 0x0569, 0x0640,
+ 0x06a5, 0x060a, 0x048f, 0x0272, 0x0000, 0xfe54,
+ 0xfe41, 0xff72, 0x0102, 0x0202, 0x0229, 0x0212,
+ 0x0210, 0x01fa, 0x019d, 0x00c5, 0xffb7, 0xff25,
+ 0xff4a, 0xffcd, 0x006f, 0x013b, 0x0204, 0x0285,
+ 0x02d1, 0x02eb, 0x02b2, 0x0249, 0x0187, 0x000d,
+ 0xfe40, 0xfcef, 0xfcb5, 0xfd81, 0xfe88, 0xff8c,
+ 0x00e9, 0x022c, 0x02bf, 0x02c3, 0x0271, 0x023c,
+ 0x0274, 0x02a2, 0x025f, 0x01f1, 0x01bd, 0x01db,
+ 0x01da, 0x0159, 0x0091, 0xffb3, 0xfed1, 0xfe46,
+ 0xfe5c, 0xff1a, 0x0021, 0x00d4, 0x0110, 0x0123,
+ 0x013c, 0x0177, 0x01d5, 0x0234, 0x024c, 0x01b7,
+ 0x00c5, 0x004d, 0x006e, 0x00f6, 0x01e3, 0x029c,
+ 0x029c, 0x024e, 0x01f6, 0x0177, 0x00f6, 0x006b,
+ 0xffb0, 0xfef3, 0xfe68, 0xfe16, 0xfdd1, 0xfd0c,
+ 0xfb6e, 0xf949, 0xf761, 0xf67d, 0xf6af, 0xf75c,
+ 0xf80a, 0xf86b, 0xf86e, 0xf85b, 0xf818, 0xf770,
+ 0xf6d2, 0xf6ad, 0xf702, 0xf7ba, 0xf88a, 0xf94b,
+ 0xfa62, 0xfbdb, 0xfd19, 0xfdd1, 0xfe5f, 0xff06,
+ 0xffb6, 0x0069, 0x013e, 0x0245, 0x0378, 0x049c,
+ 0x056c, 0x05fa, 0x0695, 0x0762, 0x0854, 0x08f5,
+ 0x089b, 0x0754, 0x05e0, 0x04c9, 0x0468, 0x04f9,
+ 0x0624, 0x074f, 0x0830, 0x0893, 0x088d, 0x0891,
+ 0x086c, 0x07d3, 0x0767, 0x0787, 0x07ee, 0x08c1,
+ 0x09cd, 0x0a26, 0x098b, 0x0878, 0x074b, 0x064d,
+ 0x05c6, 0x05f2, 0x06cd, 0x07fd, 0x0931, 0x0a4f,
+ 0x0b5f, 0x0c58, 0x0cd1, 0x0c82, 0x0bac, 0x0a93,
+ 0x097b, 0x08dd, 0x08d7, 0x0915, 0x0927, 0x08d1,
+ 0x084a, 0x07ca, 0x073e, 0x06af, 0x0617, 0x054b,
+ 0x046f, 0x03d0, 0x0382, 0x037d, 0x03d2, 0x0490,
+ 0x059b, 0x066d, 0x0663, 0x05a4, 0x04bc, 0x0390,
+ 0x024c, 0x01c6, 0x01d3, 0x01c7, 0x019a, 0x0106,
+ 0xffd3, 0xfe59, 0xfc94, 0xfa9f, 0xf8fa, 0xf79c,
+ 0xf699, 0xf624, 0xf5c6, 0xf542, 0xf4b3, 0xf415,
+ 0xf3bf, 0xf3a3, 0xf34a, 0xf2e8, 0xf2ac, 0xf283,
+ 0xf2cd, 0xf39f, 0xf49e, 0xf598, 0xf64a, 0xf68f,
+ 0xf68a, 0xf62d, 0xf589, 0xf517, 0xf52c, 0xf59d,
+ 0xf5f7, 0xf60c, 0xf604, 0xf624, 0xf6b0, 0xf7a7,
+ 0xf8aa, 0xf96f, 0xf9eb, 0xfa3e, 0xfa80, 0xfa9c,
+ 0xfa9d, 0xfad0, 0xfb55, 0xfc1d, 0xfd63, 0xff58,
+ 0x015c, 0x02cb, 0x03fd, 0x0542, 0x0662, 0x0748,
+ 0x07cd, 0x082b, 0x08e9, 0x0977, 0x0964, 0x0967,
+ 0x09a6, 0x09e1, 0x0a44, 0x0a81, 0x0a66, 0x0a3c,
+ 0x0a13, 0x0a3c, 0x0ae7, 0x0ba3, 0x0c2f, 0x0c49,
+ 0x0bdd, 0x0b6f, 0x0b1d, 0x0ad3, 0x0aca, 0x0ae2,
+ 0x0ae7, 0x0a90, 0x096a, 0x07ed, 0x06c1, 0x05d8,
+ 0x0508, 0x03f0, 0x0297, 0x01ae, 0x010b, 0x0072,
+ 0x0071, 0x00bc, 0x009c, 0x001e, 0xff84, 0xff32,
+ 0xff56, 0xff63, 0xff18, 0xfebf, 0xfe76, 0xfe18,
+ 0xfd7d, 0xfcfb, 0xfcf8, 0xfd23, 0xfd3f, 0xfd6b,
+ 0xfda0, 0xfe0b, 0xfedc, 0xffb2, 0x001e, 0x0027,
+ 0x0034, 0x0075, 0x00a6, 0x009c, 0x0042, 0xff93,
+ 0xfecf, 0xfe22, 0xfdce, 0xfe2d, 0xfed4, 0xff3a,
+ 0xff7d, 0xff8a, 0xff3a, 0xfecd, 0xfe63, 0xfe18,
+ 0xfe42, 0xfef3, 0xffbc, 0xfff6, 0xff98, 0xff4e,
+ 0xff86, 0x0000, 0x0039, 0xfff6, 0xff61, 0xfe87,
+ 0xfd93, 0xfd0e, 0xfd0a, 0xfd18, 0xfcdd, 0xfc2b,
+ 0xfb54, 0xfad7, 0xfaa4, 0xfa76, 0xfa21, 0xf997,
+ 0xf914, 0xf8c7, 0xf8c1, 0xf93a, 0xfa2a, 0xfb23,
+ 0xfbe7, 0xfc8d, 0xfd2a, 0xfda3, 0xfe1e, 0xfed0,
+ 0xff6a, 0xffad, 0xffa8, 0xff6c, 0xff67, 0xff97,
+ 0xff36, 0xfe3c, 0xfd36, 0xfc81, 0xfcbb, 0xfddb,
+ 0xff1a, 0x003b, 0x00fc, 0x0111, 0x00fb, 0x0112,
+ 0x0139, 0x0191, 0x0222, 0x02d2, 0x0366, 0x0364,
+ 0x02dc, 0x024a, 0x01ec, 0x01de, 0x01ed, 0x019b,
+ 0x00dd, 0xffef, 0xfef6, 0xfe36, 0xfdd9, 0xfda8,
+ 0xfd3c, 0xfc93, 0xfc2e, 0xfc6a, 0xfcf8, 0xfd24,
+ 0xfcc4, 0xfc4d, 0xfbcf, 0xfb2b, 0xfadd, 0xfb3b,
+ 0xfc1d, 0xfd42, 0xfe2d, 0xfe9e, 0xfee0, 0xff19,
+ 0xff5e, 0xffe7, 0x00af, 0x0197, 0x027c, 0x0355,
+ 0x0459, 0x056f, 0x064b, 0x06d4, 0x06f7, 0x0702,
+ 0x0772, 0x080f, 0x08a0, 0x092b, 0x096a, 0x094a,
+ 0x08df, 0x081c, 0x0792, 0x07cf, 0x085f, 0x08c1,
+ 0x08d2, 0x087a, 0x081b, 0x0837, 0x08b9, 0x0934,
+ 0x0963, 0x0934, 0x08bc, 0x082c, 0x07af, 0x0772,
+ 0x07a2, 0x07ed, 0x0798, 0x06d3, 0x0677, 0x0687,
+ 0x06a4, 0x06bb, 0x0687, 0x05dc, 0x0507, 0x043e,
+ 0x0389, 0x0304, 0x0298, 0x0206, 0x013b, 0x0054,
+ 0xff5b, 0xfe2a, 0xfcc9, 0xfb96, 0xfac4, 0xfa23,
+ 0xf985, 0xf8ce, 0xf7e6, 0xf6f8, 0xf642, 0xf5c4,
+ 0xf5a2, 0xf5ff, 0xf666, 0xf693, 0xf6f7, 0xf7aa,
+ 0xf863, 0xf91c, 0xf9a4, 0xfa11, 0xfb1d, 0xfcb3,
+ 0xfe05, 0xfef2, 0xff65, 0xff1f, 0xfeba, 0xfed2,
+ 0xff55, 0x0034, 0x011b, 0x0155, 0x00cc, 0xffc6,
+ 0xfe79, 0xfd6f, 0xfcf2, 0xfc91, 0xfc14, 0xfbde,
+ 0xfc3a, 0xfd19, 0xfe60, 0xffc2, 0x00ce, 0x0182,
+ 0x0214, 0x0290, 0x0324, 0x03ed, 0x04b8, 0x0571,
+ 0x060b, 0x066d, 0x06cc, 0x0715, 0x06ff, 0x06ee,
+ 0x0739, 0x0784, 0x07b1, 0x07be, 0x076c, 0x06e3,
+ 0x0681, 0x068f, 0x0765, 0x08b1, 0x09a9, 0x0a3b,
+ 0x0aab, 0x0b0b, 0x0b77, 0x0ba9, 0x0b3f, 0x0ace,
+ 0x0b13, 0x0bd3, 0x0c8c, 0x0cd1, 0x0c30, 0x0ad9,
+ 0x099a, 0x08ee, 0x08f2, 0x0987, 0x0a2e, 0x0a84,
+ 0x0ab3, 0x0abe, 0x0a44, 0x0929, 0x07a5, 0x05df,
+ 0x03e0, 0x01da, 0x0027, 0xff04, 0xfe35, 0xfd66,
+ 0xfc87, 0xfb74, 0xfa12, 0xf8a2, 0xf72a, 0xf58f,
+ 0xf43d, 0xf373, 0xf2c0, 0xf1ef, 0xf130, 0xf09c,
+ 0xf026, 0xefac, 0xef33, 0xeef7, 0xeed3, 0xee48,
+ 0xed45, 0xec24, 0xeb4c, 0xeb51, 0xec44, 0xed1f,
+ 0xed3d, 0xed11, 0xeccb, 0xec7d, 0xec9d, 0xece1,
+ 0xecfe, 0xed8a, 0xee8f, 0xefbb, 0xf138, 0xf27c,
+ 0xf2c2, 0xf247, 0xf1a1, 0xf173, 0xf223, 0xf32e,
+ 0xf402, 0xf470, 0xf4a8, 0xf54f, 0xf65c, 0xf725,
+ 0xf7a8, 0xf7e7, 0xf7d9, 0xf840, 0xf982, 0xfb5a,
+ 0xfd98, 0xffbc, 0x0163, 0x02ba, 0x03b2, 0x044d,
+ 0x04b9, 0x04df, 0x050b, 0x05ca, 0x0705, 0x0856,
+ 0x0970, 0x0a2f, 0x0ace, 0x0b99, 0x0c8d, 0x0d5a,
+ 0x0db6, 0x0dce, 0x0dcb, 0x0d7a, 0x0d01, 0x0cf0,
+ 0x0d7e, 0x0e4f, 0x0e9a, 0x0dee, 0x0cc0, 0x0bd9,
+ 0x0b6d, 0x0b2a, 0x0afd, 0x0b36, 0x0bf1, 0x0cf6,
+ 0x0dfb, 0x0ea2, 0x0eb8, 0x0e3c, 0x0d32, 0x0c03,
+ 0x0b4d, 0x0b0f, 0x0ac7, 0x0a26, 0x0947, 0x087b,
+ 0x07ee, 0x0747, 0x05e6, 0x03ce, 0x01c7, 0x0047,
+ 0xff72, 0xff81, 0x001b, 0x00c3, 0x017b, 0x01f5,
+ 0x01f4, 0x01e7, 0x01c2, 0x0158, 0x0126, 0x0131,
+ 0x014b, 0x01b5, 0x0211, 0x01d8, 0x0161, 0x00fd,
+ 0x00aa, 0x0062, 0xfff0, 0xff33, 0xfe47, 0xfd4a,
+ 0xfc8e, 0xfc60, 0xfcb3, 0xfd56, 0xfdeb, 0xfe17,
+ 0xfdde, 0xfd80, 0xfd34, 0xfcf3, 0xfca0, 0xfc70,
+ 0xfcb0, 0xfd6b, 0xfe83, 0xff8a, 0xfffb, 0xffe9,
+ 0xff9e, 0xff18, 0xfe4a, 0xfd53, 0xfc79, 0xfbf6,
+ 0xfbb4, 0xfb7b, 0xfb1f, 0xfa79, 0xf975, 0xf830,
+ 0xf713, 0xf6a1, 0xf6dc, 0xf76a, 0xf810, 0xf88f,
+ 0xf8dd, 0xf948, 0xf9bc, 0xf9ed, 0xfa0f, 0xfa55,
+ 0xfac1, 0xfb8c, 0xfcb0, 0xfdc1, 0xfe9c, 0xff49,
+ 0xffcd, 0x0086, 0x018f, 0x026f, 0x032d, 0x03ff,
+ 0x0475, 0x0471, 0x047a, 0x04dc, 0x059c, 0x066f,
+ 0x06ad, 0x062a, 0x0555, 0x0476, 0x03b2, 0x02fa,
+ 0x0224, 0x016f, 0x013f, 0x019c, 0x0261, 0x033b,
+ 0x03e1, 0x045a, 0x04ac, 0x04da, 0x0502, 0x050f,
+ 0x04dd, 0x0483, 0x0417, 0x0399, 0x02e7, 0x01b0,
+ 0xffec, 0xfe29, 0xfd0c, 0xfcd3, 0xfd3c, 0xfdbf,
+ 0xfe29, 0xfec6, 0xffbc, 0x00e3, 0x0217, 0x0311,
+ 0x039f, 0x03fc, 0x045b, 0x04eb, 0x05f0, 0x0709,
+ 0x0787, 0x077a, 0x0731, 0x06c1, 0x0660, 0x0641,
+ 0x064f, 0x063f, 0x05d0, 0x0527, 0x047c, 0x03f1,
+ 0x03e4, 0x043c, 0x044b, 0x040a, 0x03c0, 0x0352,
+ 0x0307, 0x0317, 0x0315, 0x02f8, 0x0336, 0x03ed,
+ 0x04ef, 0x05e8, 0x068d, 0x070b, 0x0781, 0x07a5,
+ 0x0762, 0x06e6, 0x0660, 0x05f2, 0x055e, 0x0451,
+ 0x02ed, 0x016c, 0xffe1, 0xfe6e, 0xfd2d, 0xfc13,
+ 0xfaf5, 0xf96d, 0xf78d, 0xf5f5, 0xf4fd, 0xf4a9,
+ 0xf4cd, 0xf4ba, 0xf3f7, 0xf311, 0xf2c6, 0xf326,
+ 0xf411, 0xf565, 0xf685, 0xf6ff, 0xf743, 0xf77e,
+ 0xf78b, 0xf818, 0xf95a, 0xfa71, 0xfb4b, 0xfc2f,
+ 0xfce4, 0xfda7, 0xfe8d, 0xff1b, 0xff95, 0x0036,
+ 0x0095, 0x00b9, 0x00bc, 0x0094, 0x008c, 0x00bc,
+ 0x012a, 0x0202, 0x02fc, 0x03d3, 0x04a5, 0x056c,
+ 0x063a, 0x06fe, 0x076c, 0x07bc, 0x0819, 0x0856,
+ 0x0883, 0x0863, 0x07a0, 0x069a, 0x05bc, 0x053f,
+ 0x0571, 0x060a, 0x0658, 0x05f9, 0x051d, 0x0458,
+ 0x03f5, 0x040e, 0x04b4, 0x0533, 0x04f8, 0x049e,
+ 0x04ac, 0x0549, 0x06b3, 0x0869, 0x098c, 0x0a05,
+ 0x0a07, 0x09df, 0x09eb, 0x0a1e, 0x0a37, 0x0a03,
+ 0x0961, 0x088e, 0x07de, 0x0770, 0x0736, 0x06f7,
+ 0x06be, 0x06b8, 0x069f, 0x0670, 0x067f, 0x0699,
+ 0x0691, 0x06c1, 0x0755, 0x07f6, 0x082d, 0x07d8,
+ 0x0749, 0x06b7, 0x060f, 0x0533, 0x040c, 0x02af,
+ 0x0145, 0xffd9, 0xfe5f, 0xfc9a, 0xfa7c, 0xf86e,
+ 0xf691, 0xf4e9, 0xf3d7, 0xf335, 0xf274, 0xf171,
+ 0xf002, 0xee3f, 0xecf2, 0xec6a, 0xec40, 0xec37,
+ 0xec1f, 0xebe6, 0xebf2, 0xec87, 0xed6a, 0xee59,
+ 0xef3b, 0xefcc, 0xefc7, 0xef91, 0xefde, 0xf0b3,
+ 0xf18f, 0xf217, 0xf213, 0xf1a3, 0xf13d, 0xf113,
+ 0xf111, 0xf149, 0xf1a7, 0xf1d5, 0xf1c6, 0xf1c2,
+ 0xf222, 0xf323, 0xf4aa, 0xf64d, 0xf7dd, 0xf956,
+ 0xfa91, 0xfbaf, 0xfd17, 0xfed8, 0x00c2, 0x02a9,
+ 0x0437, 0x0556, 0x0641, 0x06f7, 0x075a, 0x076f,
+ 0x0731, 0x06cd, 0x06b8, 0x0708, 0x0766, 0x07c2,
+ 0x0846, 0x08bb, 0x08c8, 0x088f, 0x0888, 0x08e6,
+ 0x0962, 0x09ab, 0x09e3, 0x0a6b, 0x0b52, 0x0c57,
+ 0x0d2b, 0x0dbb, 0x0e2f, 0x0e6e, 0x0e3a, 0x0dba,
+ 0x0d3b, 0x0cfc, 0x0d3a, 0x0daa, 0x0dac, 0x0d3c,
+ 0x0ca2, 0x0bda, 0x0aff, 0x0a59, 0x09e4, 0x0932,
+ 0x07f8, 0x0691, 0x058b, 0x0528, 0x0573, 0x05f5,
+ 0x05e4, 0x0527, 0x0431, 0x0373, 0x0360, 0x03ed,
+ 0x047d, 0x04df, 0x0524, 0x0517, 0x04bf, 0x0486,
+ 0x0473, 0x041e, 0x0361, 0x0295, 0x01f5, 0x015a,
+ 0x00b7, 0x002b, 0xffb9, 0xff38, 0xfe63, 0xfd3f,
+ 0xfc61, 0xfc09, 0xfbbf, 0xfb45, 0xfacd, 0xfa8e,
+ 0xfad1, 0xfb99, 0xfc6d, 0xfd04, 0xfd72, 0xfdaf,
+ 0xfdac, 0xfd85, 0xfd4d, 0xfd3f, 0xfda5, 0xfe2b,
+ 0xfe6c, 0xfea8, 0xfec0, 0xfe42, 0xfd88, 0xfcee,
+ 0xfc55, 0xfbcc, 0xfb28, 0xfa2c, 0xf964, 0xf955,
+ 0xf9d4, 0xfa80, 0xfac2, 0xfa6f, 0xfa14, 0xfa3b,
+ 0xfb1c, 0xfc8a, 0xfdf1, 0xff15, 0xffda, 0xfff3,
+ 0xffa4, 0xff85, 0xff98, 0xff7f, 0xff16, 0xfe95,
+ 0xfe1b, 0xfdab, 0xfd92, 0xfde9, 0xfe6c, 0xfef7,
+ 0xff2b, 0xfef2, 0xff0b, 0xffaa, 0x007d, 0x018d,
+ 0x0277, 0x0301, 0x03c1, 0x04c8, 0x05cf, 0x06cc,
+ 0x075f, 0x077d, 0x0763, 0x06ca, 0x05f4, 0x056c,
+ 0x050a, 0x04c4, 0x04a6, 0x046c, 0x041b, 0x03ca,
+ 0x0358, 0x02c2, 0x0210, 0x015f, 0x00a6, 0xffc3,
+ 0xff37, 0xff6a, 0xffe1, 0x0020, 0xffce, 0xfec6,
+ 0xfda8, 0xfd01, 0xfcf6, 0xfdaa, 0xfeb9, 0xff86,
+ 0xffea, 0xfff4, 0xfff7, 0x004c, 0x00ca, 0x011c,
+ 0x0125, 0x0103, 0x00df, 0x00a3, 0x0049, 0x000c,
+ 0x0002, 0x0002, 0xffc1, 0xff37, 0xfedb, 0xfecf,
+ 0xfeee, 0xff41, 0xff77, 0xff64, 0xff5c, 0xff78,
+ 0xffd1, 0x0085, 0x0141, 0x01f6, 0x0280, 0x0270,
+ 0x023f, 0x0294, 0x0344, 0x042f, 0x050e, 0x0583,
+ 0x05fa, 0x06ad, 0x072f, 0x0764, 0x076b, 0x0743,
+ 0x06ba, 0x05d8, 0x0564, 0x05c0, 0x063c, 0x0657,
+ 0x05fa, 0x0537, 0x049b, 0x0465, 0x044d, 0x0450,
+ 0x046a, 0x043d, 0x0374, 0x01fb, 0x0045, 0xfee9,
+ 0xfdee, 0xfcfd, 0xfbe3, 0xfad2, 0xfa08, 0xf970,
+ 0xf8eb, 0xf85b, 0xf785, 0xf686, 0xf59e, 0xf4dd,
+ 0xf490, 0xf4e5, 0xf57b, 0xf629, 0xf726, 0xf85b,
+ 0xf971, 0xfa5c, 0xfb47, 0xfc36, 0xfd46, 0xfe83,
+ 0xff60, 0xff78, 0xff38, 0xff0f, 0xff39, 0xffdf,
+ 0x0086, 0x00c3, 0x00b5, 0x0055, 0xffc3, 0xff7c,
+ 0xff86, 0xff94, 0xff65, 0xfef4, 0xfefa, 0x0000,
+ 0x015d, 0x0220, 0x0209, 0x0187, 0x0150, 0x018b,
+ 0x01fa, 0x0297, 0x0312, 0x0315, 0x0314, 0x0346,
+ 0x0363, 0x03b6, 0x0460, 0x04b4, 0x0498, 0x048c,
+ 0x04a7, 0x04d7, 0x050f, 0x051f, 0x050a, 0x04e6,
+ 0x048b, 0x041a, 0x0422, 0x04b5, 0x0538, 0x0564,
+ 0x0591, 0x05e5, 0x0632, 0x0654, 0x062f, 0x0619,
+ 0x06a4, 0x07ac, 0x08bd, 0x0999, 0x0a14, 0x0a8e,
+ 0x0b7a, 0x0c5c, 0x0cf0, 0x0d92, 0x0de5, 0x0d72,
+ 0x0c6a, 0x0b10, 0x09be, 0x08ab, 0x078c, 0x0672,
+ 0x05ab, 0x052d, 0x04d5, 0x043f, 0x0314, 0x01cc,
+ 0x00c3, 0xffce, 0xff08, 0xfe78, 0xfdca, 0xfd13,
+ 0xfc8a, 0xfbfd, 0xfb46, 0xfa8f, 0xf9f1, 0xf943,
+ 0xf860, 0xf76d, 0xf69a, 0xf5df, 0xf51d, 0xf449,
+ 0xf392, 0xf30c, 0xf265, 0xf19f, 0xf14c, 0xf1a3,
+ 0xf23c, 0xf2a8, 0xf2c6, 0xf2c1, 0xf2a5, 0xf242,
+ 0xf1b4, 0xf153, 0xf12f, 0xf148, 0xf188, 0xf1a8,
+ 0xf1b0, 0xf205, 0xf2b9, 0xf383, 0xf45f, 0xf589,
+ 0xf6d5, 0xf7b6, 0xf809, 0xf80a, 0xf7e4, 0xf7cf,
+ 0xf80b, 0xf8cf, 0xfa46, 0xfbff, 0xfd3b, 0xfddf,
+ 0xfe34, 0xfe8c, 0xff42, 0x003c, 0x0111, 0x0196,
+ 0x01dd, 0x0241, 0x0317, 0x0428, 0x0519, 0x05c5,
+ 0x0619, 0x064a, 0x0698, 0x06e5, 0x0713, 0x0712,
+ 0x06b5, 0x0608, 0x056a, 0x054a, 0x059a, 0x05d9,
+ 0x05e7, 0x060f, 0x0668, 0x06d6, 0x0747, 0x07a3,
+ 0x07c6, 0x07b4, 0x07b1, 0x07c3, 0x07ab, 0x0792,
+ 0x07a6, 0x07b3, 0x07b6, 0x07bf, 0x07b1, 0x07a9,
+ 0x07b5, 0x07b0, 0x07ce, 0x0820, 0x0845, 0x07ee,
+ 0x070e, 0x05f2, 0x0550, 0x05ba, 0x0700, 0x084b,
+ 0x08e8, 0x08ef, 0x08ec, 0x0932, 0x0977, 0x0949,
+ 0x08dd, 0x088e, 0x0833, 0x07d8, 0x07c2, 0x07ce,
+ 0x07c1, 0x0779, 0x06e8, 0x0654, 0x05f7, 0x05b9,
+ 0x0555, 0x0466, 0x030b, 0x01d6, 0x00e9, 0x0051,
+ 0x0037, 0x0061, 0x00b5, 0x0130, 0x0156, 0x00f1,
+ 0x0046, 0xff7c, 0xfef1, 0xfeed, 0xfeed, 0xfe75,
+ 0xfd7c, 0xfc42, 0xfb7a, 0xfb77, 0xfb85, 0xfb34,
+ 0xfac8, 0xfa53, 0xf9ca, 0xf943, 0xf8ba, 0xf868,
+ 0xf86f, 0xf822, 0xf719, 0xf5e7, 0xf513, 0xf4e1,
+ 0xf560, 0xf5d6, 0xf58d, 0xf4ea, 0xf4ab, 0xf4f3,
+ 0xf577, 0xf5fd, 0xf67c, 0xf6f2, 0xf76f, 0xf817,
+ 0xf90b, 0xfa63, 0xfbe2, 0xfcf3, 0xfd86, 0xfe25,
+ 0xff1b, 0x0036, 0x00fa, 0x00e1, 0x000d, 0xff2e,
+ 0xfe9f, 0xfe54, 0xfe57, 0xfeb1, 0xff20, 0xff77,
+ 0xffbb, 0xffd6, 0xffd5, 0xffe2, 0xffde, 0x0000,
+ 0x00b7, 0x018a, 0x01b2, 0x0158, 0x0125, 0x019f,
+ 0x02b0, 0x0392, 0x03c7, 0x038b, 0x0344, 0x032d,
+ 0x0320, 0x02e4, 0x028b, 0x01ff, 0x0133, 0x00a3,
+ 0x00ab, 0x013e, 0x023e, 0x034d, 0x03f6, 0x042f,
+ 0x0457, 0x04d6, 0x05a6, 0x065e, 0x06d5, 0x0713,
+ 0x0704, 0x06ba, 0x067e, 0x0667, 0x0666, 0x067d,
+ 0x069d, 0x06a8, 0x069f, 0x0669, 0x05d8, 0x04fe,
+ 0x03f8, 0x02cb, 0x01dc, 0x0182, 0x0195, 0x01fe,
+ 0x02a5, 0x0329, 0x034a, 0x0318, 0x02d1, 0x02b5,
+ 0x02b7, 0x02d2, 0x032d, 0x0380, 0x0358, 0x02e0,
+ 0x02bc, 0x0361, 0x0495, 0x058c, 0x05c9, 0x056f,
+ 0x04ce, 0x042a, 0x0372, 0x025f, 0x0103, 0xff9a,
+ 0xfe1f, 0xfcc8, 0xfbf5, 0xfb84, 0xfb1c, 0xfa83,
+ 0xf977, 0xf809, 0xf6c6, 0xf5ee, 0xf549, 0xf4a8,
+ 0xf41d, 0xf3cb, 0xf388, 0xf320, 0xf2d3, 0xf2f9,
+ 0xf3a3, 0xf4c3, 0xf606, 0xf706, 0xf7c0, 0xf863,
+ 0xf8f2, 0xf932, 0xf8f5, 0xf891, 0xf886, 0xf8fc,
+ 0xf9cb, 0xfa95, 0xfb3a, 0xfc1d, 0xfd30, 0xfdf4,
+ 0xfe61, 0xfea7, 0xfee4, 0xff53, 0xffec, 0x0078,
+ 0x00e5, 0x0128, 0x018a, 0x029c, 0x044b, 0x05fc,
+ 0x0766, 0x0877, 0x08e4, 0x08bd, 0x0870, 0x07e1,
+ 0x06f1, 0x0608, 0x053d, 0x04aa, 0x04cf, 0x058e,
+ 0x066b, 0x072f, 0x0794, 0x07cb, 0x0842, 0x08cb,
+ 0x094d, 0x09c6, 0x09f6, 0x0a00, 0x09e9, 0x097f,
+ 0x0946, 0x0994, 0x0a0f, 0x0a91, 0x0af9, 0x0b37,
+ 0x0b56, 0x0af9, 0x0a30, 0x098a, 0x0913, 0x08cb,
+ 0x08e5, 0x0951, 0x0a08, 0x0ad4, 0x0b5e, 0x0bc0,
+ 0x0bf4, 0x0bcd, 0x0b75, 0x0afa, 0x0a68, 0x09e4,
+ 0x0945, 0x0883, 0x07cc, 0x06fc, 0x0628, 0x0599,
+ 0x0532, 0x04cd, 0x0480, 0x0428, 0x0362, 0x0228,
+ 0x00bb, 0xff25, 0xfd61, 0xfb99, 0xfa0b, 0xf906,
+ 0xf85d, 0xf769, 0xf630, 0xf50f, 0xf3f6, 0xf31b,
+ 0xf2b2, 0xf284, 0xf282, 0xf286, 0xf25d, 0xf22e,
+ 0xf1ba, 0xf0ec, 0xf0a2, 0xf12e, 0xf1f3, 0xf29f,
+ 0xf31f, 0xf361, 0xf36f, 0xf334, 0xf2a3, 0xf1ea,
+ 0xf14c, 0xf0e0, 0xf089, 0xf04f, 0xf04e, 0xf060,
+ 0xf087, 0xf0e7, 0xf163, 0xf1f4, 0xf29f, 0xf32b,
+ 0xf38d, 0xf404, 0xf4d6, 0xf604, 0xf72d, 0xf819,
+ 0xf8fa, 0xf9f9, 0xfb20, 0xfc6b, 0xfdc5, 0xff0a,
+ 0x000c, 0x00cc, 0x016b, 0x01dd, 0x020f, 0x022a,
+ 0x0291, 0x038b, 0x04a9, 0x0557, 0x05b3, 0x05f3,
+ 0x061d, 0x0677, 0x0737, 0x0837, 0x091a, 0x098a,
+ 0x0997, 0x0967, 0x0905, 0x08d0, 0x0910, 0x09ae,
+ 0x0a82, 0x0b20, 0x0b46, 0x0b34, 0x0aee, 0x0a64,
+ 0x09bb, 0x08eb, 0x082a, 0x07df, 0x07d0, 0x07a3,
+ 0x0744, 0x06b4, 0x0631, 0x05e4, 0x0592, 0x050d,
+ 0x045f, 0x03aa, 0x02fb, 0x0257, 0x0210, 0x023e,
+ 0x0287, 0x02f0, 0x0388, 0x03e9, 0x0416, 0x0466,
+ 0x04b2, 0x04dd, 0x0509, 0x051e, 0x04fe, 0x04bc,
+ 0x0476, 0x0455, 0x047c, 0x0496, 0x040f, 0x02dd,
+ 0x018d, 0x00b2, 0x0067, 0x0050, 0x004a, 0x007f,
+ 0x00d1, 0x0116, 0x014a, 0x015c, 0x016d, 0x0181,
+ 0x015f, 0x0157, 0x01be, 0x024a, 0x02da, 0x0337,
+ 0x02eb, 0x021a, 0x0102, 0xffcb, 0xfeea, 0xfe70,
+ 0xfe2a, 0xfe06, 0xfd83, 0xfc8d, 0xfbb8, 0xfaf5,
+ 0xfa3d, 0xfa08, 0xfa2d, 0xfa36, 0xf9f3, 0xf959,
+ 0xf8dd, 0xf8e0, 0xf924, 0xf964, 0xf990, 0xf9c6,
+ 0xfa24, 0xfa4e, 0xfa1a, 0xf9d8, 0xf9b4, 0xf9c9,
+ 0xf9fc, 0xf9fd, 0xfa03, 0xfa81, 0xfb8f, 0xfce2,
+ 0xfdb1, 0xfd99, 0xfd2f, 0xfcff, 0xfd53, 0xfe45,
+ 0xff55, 0x000f, 0x0078, 0x00ae, 0x00fa, 0x0159,
+ 0x0188, 0x01b7, 0x021a, 0x0298, 0x0331, 0x03c5,
+ 0x0442, 0x04b4, 0x04da, 0x0485, 0x03c7, 0x02dd,
+ 0x026f, 0x02b1, 0x0304, 0x02fe, 0x029a, 0x01e7,
+ 0x0132, 0x00c6, 0x00a3, 0x00a6, 0x0091, 0x0021,
+ 0xff4e, 0xfe63, 0xfdd4, 0xfdca, 0xfe2e, 0xfec8,
+ 0xff58, 0xfff3, 0x0093, 0x00ec, 0x012b, 0x01b0,
+ 0x0261, 0x0314, 0x0380, 0x0372, 0x0361, 0x03c7,
+ 0x0470, 0x04c0, 0x0451, 0x036c, 0x028c, 0x01f5,
+ 0x01f8, 0x025b, 0x027a, 0x0248, 0x01ef, 0x0193,
+ 0x01ae, 0x023b, 0x02af, 0x02d0, 0x02be, 0x0310,
+ 0x0417, 0x052f, 0x05ed, 0x0674, 0x069f, 0x064e,
+ 0x05a5, 0x0512, 0x0519, 0x0584, 0x05bb, 0x05b0,
+ 0x057b, 0x053a, 0x04f6, 0x047f, 0x041f, 0x0434,
+ 0x0467, 0x045f, 0x03cb, 0x0279, 0x0127, 0x007e,
+ 0x0039, 0x0002, 0xffcd, 0xff9d, 0xff58, 0xfe98,
+ 0xfd55, 0xfc12, 0xfaf5, 0xf9ea, 0xf907, 0xf859,
+ 0xf809, 0xf81c, 0xf841, 0xf84c, 0xf81b, 0xf770,
+ 0xf69c, 0xf644, 0xf684, 0xf71f, 0xf7dd, 0xf86c,
+ 0xf895, 0xf8cb, 0xf9b8, 0xfb51, 0xfcd8, 0xfdb6,
+ 0xfe12, 0xfe72, 0xff15, 0xffd8, 0x008d, 0x0116,
+ 0x0122, 0x0080, 0xffdd, 0x001a, 0x0128, 0x0270,
+ 0x0370, 0x03af, 0x0342, 0x029d, 0x01f6, 0x01b0,
+ 0x0200, 0x026d, 0x02ab, 0x02b1, 0x0250, 0x01d5,
+ 0x01bb, 0x01d8, 0x01ff, 0x025f, 0x030f, 0x03d3,
+ 0x043b, 0x0437, 0x0446, 0x04ab, 0x053d, 0x05ce,
+ 0x063e, 0x069d, 0x071f, 0x07b9, 0x0821, 0x0820,
+ 0x0794, 0x06a3, 0x05fc, 0x0601, 0x0623, 0x05ec,
+ 0x059c, 0x055c, 0x0542, 0x05b2, 0x06d4, 0x0866,
+ 0x0a08, 0x0b4f, 0x0c16, 0x0c91, 0x0cf3, 0x0d5f,
+ 0x0dcf, 0x0e05, 0x0dbb, 0x0ce8, 0x0bd7, 0x0afb,
+ 0x0a96, 0x0a78, 0x0a2d, 0x097a, 0x0876, 0x072f,
+ 0x05d9, 0x04cf, 0x03fc, 0x030a, 0x01e2, 0x007f,
+ 0xfecb, 0xfce9, 0xfb60, 0xfa70, 0xf9b6, 0xf910,
+ 0xf8c5, 0xf874, 0xf7a3, 0xf6af, 0xf5ea, 0xf53e,
+ 0xf4c8, 0xf493, 0xf455, 0xf3e8, 0xf365, 0xf2ee,
+ 0xf2b7, 0xf2d8, 0xf2fc, 0xf2d7, 0xf2a3, 0xf28c,
+ 0xf258, 0xf1e4, 0xf134, 0xf062, 0xefa4, 0xef3b,
+ 0xef7e, 0xf071, 0xf17d, 0xf243, 0xf2e2, 0xf373,
+ 0xf42a, 0xf51b, 0xf5e5, 0xf636, 0xf62d, 0xf631,
+ 0xf687, 0xf70e, 0xf7b1, 0xf866, 0xf8fc, 0xf960,
+ 0xf981, 0xf96e, 0xf9b5, 0xfa9d, 0xfbc9, 0xfcd1,
+ 0xfd66, 0xfda9, 0xfdfa, 0xfe41, 0xfe9a, 0xff8f,
+ 0x00f0, 0x0254, 0x03b7, 0x04e2, 0x05b6, 0x06a5,
+ 0x07c9, 0x0891, 0x08c9, 0x08fd, 0x0970, 0x09b6,
+ 0x09b4, 0x09b0, 0x09ca, 0x09fe, 0x0a0a, 0x09e8,
+ 0x0a07, 0x0a40, 0x0a0d, 0x097c, 0x08b3, 0x07ea,
+ 0x0790, 0x07a3, 0x0813, 0x090d, 0x0a39, 0x0b05,
+ 0x0b4b, 0x0b32, 0x0b0a, 0x0ad3, 0x0a26, 0x08ff,
+ 0x07cc, 0x06eb, 0x0652, 0x05b6, 0x0531, 0x051a,
+ 0x053a, 0x0534, 0x0506, 0x04b9, 0x0473, 0x0446,
+ 0x03f6, 0x0376, 0x02e7, 0x0240, 0x019f, 0x011d,
+ 0x00a1, 0x0074, 0x00ea, 0x01af, 0x0240, 0x0253,
+ 0x01f5, 0x0192, 0x0165, 0x015b, 0x016e, 0x015b,
+ 0x0107, 0x00dd, 0x00cd, 0x00b5, 0x0119, 0x01d4,
+ 0x0250, 0x02a8, 0x02ba, 0x0238, 0x0178, 0x0095,
+ 0xff86, 0xfeaf, 0xfe2b, 0xfe02, 0xfe7b, 0xff70,
+ 0x004c, 0x0084, 0x0003, 0xff7c, 0xff77, 0xffa3,
+ 0xff79, 0xfed7, 0xfe0f, 0xfd71, 0xfcf4, 0xfcb6,
+ 0xfcb1, 0xfc71, 0xfbd2, 0xfaf3, 0xf9dc, 0xf8c7,
+ 0xf7da, 0xf735, 0xf713, 0xf734, 0xf731, 0xf707,
+ 0xf6b1, 0xf665, 0xf69a, 0xf770, 0xf8cd, 0xfa55,
+ 0xfb85, 0xfc51, 0xfcd9, 0xfd29, 0xfd85, 0xfdff,
+ 0xfe58, 0xfe78, 0xfe64, 0xfe26, 0xfdc1, 0xfd4c,
+ 0xfd42, 0xfde1, 0xfeb2, 0xff57, 0xffad, 0xff80,
+ 0xfef4, 0xfe82, 0xfe68, 0xfe86, 0xfe9e, 0xfed7,
+ 0xff98, 0x00d5, 0x022c, 0x032f, 0x038c, 0x0367,
+ 0x0316, 0x0262, 0x0111, 0xffa6, 0xfe95, 0xfdc5,
+ 0xfd36, 0xfd29, 0xfd5a, 0xfd3b, 0xfcc2, 0xfc3f,
+ 0xfbe1, 0xfbcd, 0xfc08, 0xfc51, 0xfc6d, 0xfc6f,
+ 0xfc8a, 0xfcbb, 0xfcb8, 0xfc85, 0xfcc1, 0xfdc1,
+ 0xff1e, 0x008b, 0x01dd, 0x029b, 0x02b9, 0x02cb,
+ 0x031d, 0x0385, 0x03bc, 0x038e, 0x031e, 0x02ba,
+ 0x026c, 0x022e, 0x023b, 0x02e9, 0x042b, 0x0574,
+ 0x0635, 0x063b, 0x05bc, 0x0525, 0x04b7, 0x049a,
+ 0x04f8, 0x05bd, 0x06da, 0x0850, 0x09ba, 0x0abd,
+ 0x0b67, 0x0bc6, 0x0be0, 0x0bc7, 0x0b78, 0x0b0c,
+ 0x0a96, 0x0a08, 0x0973, 0x08f8, 0x088a, 0x07ec,
+ 0x06e3, 0x0572, 0x03c7, 0x021d, 0x00c3, 0xffa8,
+ 0xfe45, 0xfc7c, 0xfa99, 0xf8dc, 0xf768, 0xf652,
+ 0xf5a5, 0xf56a, 0xf595, 0xf5fe, 0xf648, 0xf63e,
+ 0xf618, 0xf619, 0xf663, 0xf6d9, 0xf6f9, 0xf6aa,
+ 0xf67c, 0xf690, 0xf69b, 0xf6a7, 0xf6f4, 0xf7ae,
+ 0xf8a2, 0xf954, 0xf994, 0xf95b, 0xf89a, 0xf7c0,
+ 0xf774, 0xf7ec, 0xf908, 0xfa8c, 0xfc38, 0xfddc,
+ 0xff5d, 0x00b9, 0x01e2, 0x0286, 0x0270, 0x01cd,
+ 0x0103, 0x006f, 0x0049, 0x0086, 0x00ca, 0x00d0,
+ 0x00ba, 0x00a5, 0x0088, 0x0068, 0x0033, 0xffe7,
+ 0xffcc, 0x0006, 0x006e, 0x00d3, 0x0108, 0x0113,
+ 0x012b, 0x0167, 0x01d8, 0x02a4, 0x03be, 0x04cc,
+ 0x056f, 0x0580, 0x051e, 0x04bb, 0x04d5, 0x055e,
+ 0x05d4, 0x060d, 0x0657, 0x06df, 0x0774, 0x0807,
+ 0x08e3, 0x0a1f, 0x0b67, 0x0c82, 0x0d61, 0x0de2,
+ 0x0de4, 0x0d71, 0x0cec, 0x0cea, 0x0d9e, 0x0eb9,
+ 0x0fbc, 0x105a, 0x10cd, 0x1159, 0x11c3, 0x11a5,
+ 0x10c9, 0x0f44, 0x0d6b, 0x0baa, 0x0a84, 0x0a10,
+ 0x0992, 0x0873, 0x06d7, 0x04e1, 0x02a7, 0x0069,
+ 0xfe35, 0xfc0d, 0xfa30, 0xf8c4, 0xf7ac, 0xf6ba,
+ 0xf5f4, 0xf580, 0xf52e, 0xf4b8, 0xf454, 0xf460,
+ 0xf4d4, 0xf53a, 0xf526, 0xf497, 0xf3d0, 0xf312,
+ 0xf294, 0xf251, 0xf1f2, 0xf141, 0xf057, 0xef42,
+ 0xee20, 0xed76, 0xeda1, 0xee3b, 0xeeaf, 0xeee4,
+ 0xeefb, 0xeeee, 0xee8c, 0xede5, 0xed90, 0xee15,
+ 0xef54, 0xf0d1, 0xf243, 0xf3b5, 0xf53a, 0xf6c3,
+ 0xf81a, 0xf8f7, 0xf943, 0xf936, 0xf926, 0xf991,
+ 0xfae9, 0xfcfc, 0xfefa, 0x003c, 0x00d4, 0x0110,
+ 0x0106, 0x00f7, 0x010e, 0x010a, 0x00f6, 0x010d,
+ 0x00f0, 0x008d, 0x00a4, 0x0197, 0x02ee, 0x0413,
+ 0x0511, 0x0648, 0x079d, 0x08c6, 0x09b0, 0x0a2f,
+ 0x0a6a, 0x0aba, 0x0b38, 0x0c14, 0x0d1c, 0x0d99,
+ 0x0d8b, 0x0d24, 0x0c5d, 0x0bcc, 0x0bb6, 0x0bbf,
+ 0x0bfe, 0x0c35, 0x0be6, 0x0b52, 0x0aa7, 0x09d7,
+ 0x0934, 0x08ee, 0x092c, 0x0a00, 0x0aeb, 0x0b96,
+ 0x0c18, 0x0c82, 0x0cb0, 0x0c3a, 0x0b23, 0x0a12,
+ 0x095e, 0x090f, 0x0920, 0x0931, 0x08ef, 0x0841,
+ 0x073d, 0x0640, 0x0557, 0x0455, 0x0353, 0x023b,
+ 0x011c, 0x0043, 0xff50, 0xfdfc, 0xfcf2, 0xfcac,
+ 0xfcfb, 0xfda6, 0xfe87, 0xff61, 0xfff4, 0x0049,
+ 0x0078, 0x0060, 0x0012, 0xffb7, 0xff74, 0xffc0,
+ 0x005b, 0x0051, 0xff9e, 0xfeaf, 0xfd87, 0xfc6e,
+ 0xfbb6, 0xfb53, 0xfb36, 0xfb11, 0xfa98, 0xf9f8,
+ 0xf95d, 0xf8f7, 0xf8e9, 0xf903, 0xf945, 0xf9c4,
+ 0xfa36, 0xfa76, 0xfaae, 0xfae0, 0xfae6, 0xfa73,
+ 0xf957, 0xf7ff, 0xf708, 0xf6ab, 0xf6fc, 0xf7a9,
+ 0xf7ee, 0xf7af, 0xf78d, 0xf79b, 0xf7b5, 0xf802,
+ 0xf83a, 0xf81e, 0xf81c, 0xf85a, 0xf87a, 0xf866,
+ 0xf87f, 0xf916, 0xf9e9, 0xfaaf, 0xfb93, 0xfc7b,
+ 0xfd3a, 0xfdf4, 0xfe8a, 0xff19, 0x000f, 0x013b,
+ 0x0269, 0x03aa, 0x04b9, 0x058d, 0x0620, 0x0613,
+ 0x0598, 0x050b, 0x0476, 0x0409, 0x03b8, 0x0368,
+ 0x0347, 0x031e, 0x02ec, 0x0303, 0x030f, 0x02f1,
+ 0x0313, 0x036c, 0x03c8, 0x0400, 0x0401, 0x0407,
+ 0x0406, 0x03d9, 0x03b6, 0x0391, 0x0384, 0x03f9,
+ 0x04c2, 0x0586, 0x0619, 0x0635, 0x05f3, 0x0589,
+ 0x051b, 0x04d8, 0x0468, 0x0391, 0x02c7, 0x01fa,
+ 0x00ed, 0x0018, 0xffbb, 0xffb8, 0xfff9, 0x0038,
+ 0x006d, 0x00bc, 0x0115, 0x016e, 0x0196, 0x0178,
+ 0x0191, 0x021a, 0x02b4, 0x031f, 0x0362, 0x0390,
+ 0x039a, 0x036a, 0x032a, 0x02f3, 0x02c9, 0x02d7,
+ 0x0316, 0x0335, 0x0318, 0x030e, 0x036a, 0x040b,
+ 0x04b1, 0x054e, 0x05cb, 0x0625, 0x0664, 0x0640,
+ 0x0599, 0x04ad, 0x03a5, 0x02b2, 0x01d3, 0x00c7,
+ 0xffb5, 0xfecc, 0xfdd4, 0xfcb8, 0xfb82, 0xfa46,
+ 0xf929, 0xf817, 0xf6fc, 0xf5f8, 0xf51f, 0xf487,
+ 0xf3f2, 0xf2c9, 0xf147, 0xf05c, 0xf067, 0xf122,
+ 0xf22a, 0xf32b, 0xf403, 0xf4c2, 0xf57f, 0xf625,
+ 0xf6b3, 0xf77b, 0xf8b7, 0xfa28, 0xfb4f, 0xfbe7,
+ 0xfc3f, 0xfcbc, 0xfd2c, 0xfd6d, 0xfdca, 0xfe4d,
+ 0xfec7, 0xff3b, 0xffbd, 0x0047, 0x00ea, 0x01b6,
+ 0x02a5, 0x03b0, 0x04c3, 0x0595, 0x0608, 0x0647,
+ 0x0645, 0x05f8, 0x05a5, 0x0575, 0x0584, 0x05ee,
+ 0x068f, 0x0763, 0x086e, 0x093b, 0x0993, 0x09b4,
+ 0x099e, 0x0961, 0x0956, 0x0975, 0x0930, 0x0847,
+ 0x0727, 0x0629, 0x0515, 0x03ca, 0x0285, 0x01d3,
+ 0x0238, 0x034c, 0x0447, 0x051f, 0x05e6, 0x067b,
+ 0x06ee, 0x0736, 0x0780, 0x083d, 0x095d, 0x0a77,
+ 0x0b1b, 0x0b1f, 0x0b1d, 0x0b4e, 0x0b3f, 0x0b3a,
+ 0x0b85, 0x0b90, 0x0b37, 0x0aa6, 0x09d9, 0x0918,
+ 0x08aa, 0x088f, 0x08b6, 0x08c9, 0x089a, 0x0847,
+ 0x07be, 0x06d6, 0x0556, 0x0354, 0x019f, 0x0090,
+ 0xff98, 0xfe8c, 0xfd96, 0xfcbd, 0xfc0c, 0xfb6a,
+ 0xface, 0xfa55, 0xf9d0, 0xf93d, 0xf8cd, 0xf853,
+ 0xf797, 0xf68a, 0xf532, 0xf3e5, 0xf2a8, 0xf145,
+ 0xf033, 0xefd8, 0xefd0, 0xefc3, 0xef95, 0xef49,
+ 0xef19, 0xeeeb, 0xee96, 0xee86, 0xef19, 0xf033,
+ 0xf18a, 0xf2a7, 0xf328, 0xf30d, 0xf2a9, 0xf264,
+ 0xf284, 0xf327, 0xf42b, 0xf521, 0xf5b9, 0xf5f4,
+ 0xf5f9, 0xf638, 0xf737, 0xf8f0, 0xfae4, 0xfc82,
+ 0xfda4, 0xfe8d, 0xff4e, 0xffcc, 0x0011, 0x0035,
+ 0x00a7, 0x01d5, 0x0348, 0x046b, 0x0562, 0x0646,
+ 0x06d0, 0x06ed, 0x06dc, 0x06dc, 0x06e8, 0x0709,
+ 0x075e, 0x079f, 0x07b0, 0x07bf, 0x075c, 0x0652,
+ 0x054a, 0x04a3, 0x0497, 0x055e, 0x064d, 0x06d1,
+ 0x072e, 0x0766, 0x0749, 0x06f2, 0x0685, 0x0654,
+ 0x0697, 0x0720, 0x07cb, 0x0850, 0x0845, 0x07c6,
+ 0x070e, 0x0645, 0x05da, 0x05e6, 0x0600, 0x05f6,
+ 0x05af, 0x0501, 0x0431, 0x03b4, 0x03c5, 0x0479,
+ 0x0589, 0x0672, 0x06ed, 0x06e8, 0x0678, 0x05ce,
+ 0x04ec, 0x03fb, 0x0374, 0x0369, 0x03ae, 0x044c,
+ 0x04fe, 0x0551, 0x0521, 0x0471, 0x0391, 0x02f9,
+ 0x02a6, 0x0286, 0x029f, 0x02b5, 0x02a4, 0x0249,
+ 0x0150, 0xfff2, 0xfec4, 0xfe27, 0xfe3e, 0xfe94,
+ 0xfe92, 0xfe61, 0xfe44, 0xfe45, 0xfe74, 0xfe7e,
+ 0xfe36, 0xfe21, 0xfe97, 0xff75, 0x007d, 0x0158,
+ 0x01ba, 0x0192, 0x00ed, 0x0017, 0xff7f, 0xff3f,
+ 0xff11, 0xfe9a, 0xfdcb, 0xfcc5, 0xfba4, 0xfac5,
+ 0xfa93, 0xfaf0, 0xfb90, 0xfc53, 0xfcd4, 0xfca3,
+ 0xfbce, 0xfab4, 0xf9d0, 0xf982, 0xf9af, 0xfa19,
+ 0xfabc, 0xfb7d, 0xfc35, 0xfcce, 0xfd08, 0xfceb,
+ 0xfce0
+};
+
+int right_channel_length = sizeof(right_channel)/sizeof(right_channel[0]);
diff --git a/ecos/packages/hal/arm/edb7xxx/current/misc/panel_test.c b/ecos/packages/hal/arm/edb7xxx/current/misc/panel_test.c
new file mode 100644
index 0000000..99e8a40
--- /dev/null
+++ b/ecos/packages/hal/arm/edb7xxx/current/misc/panel_test.c
@@ -0,0 +1,117 @@
+//==========================================================================
+//
+// panel_test.c
+//
+// Cirrus Logic EDB7xxx eval board LCD touch panel test code
+//
+//==========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//==========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): gthomas
+// Contributors: gthomas
+// Date: 1999-09-06
+// Description: Tool used to test LCD touch panel
+//####DESCRIPTIONEND####
+
+#include <pkgconf/kernel.h> // Configuration header
+#include <cyg/kernel/kapi.h>
+#include <cyg/infra/diag.h>
+
+#include <cyg/hal/hal_edb7xxx.h> // Board definitions
+
+#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> // HAL interrupt macros
+#include <cyg/hal/drv_api.h> // HAL ISR support
+
+#ifndef FALSE
+#define FALSE 0
+#define TRUE 1
+#endif
+
+#define STACK_SIZE 4096
+static char stack[STACK_SIZE];
+static cyg_thread thread_data;
+static cyg_handle_t thread_handle;
+
+#include "lcd_support.c"
+#include "lcd_panel_support.c"
+
+// FUNCTIONS
+
+static void
+cyg_test_exit(void)
+{
+ while (TRUE) ;
+}
+
+static void
+panel_exercise(cyg_addrword_t p)
+{
+ int i;
+ cyg_uint32 val;
+
+ diag_printf("LCD touch panel test here!\n");
+
+ lcd_panel_init();
+
+ for (i = 0; i < 50; i++) {
+ diag_printf("Please touch screen now:\n");
+ val = (cyg_uint32)cyg_mbox_get(lcd_panel_events_mbox_handle);
+ diag_printf("val = %x, X = %d, Y = %d\n", val, (val>>16), val & 0xFFFF);
+ }
+
+ diag_printf("All done!\n");
+ cyg_test_exit();
+}
+
+externC void
+cyg_start( void )
+{
+ // Create a main thread, so we can run the scheduler and have time 'pass'
+ cyg_thread_create(10, // Priority - just a number
+ panel_exercise, // entry
+ 0, // initial parameter
+ "LCD_panel_thread", // Name
+ &stack[0], // Stack
+ STACK_SIZE, // Size
+ &thread_handle, // Handle
+ &thread_data // Thread data structure
+ );
+ cyg_thread_resume(thread_handle); // Start it
+ cyg_scheduler_start();
+} // cyg_package_start()
+
diff --git a/ecos/packages/hal/arm/edb7xxx/current/misc/prog_flash.c b/ecos/packages/hal/arm/edb7xxx/current/misc/prog_flash.c
new file mode 100644
index 0000000..3ef5ac2
--- /dev/null
+++ b/ecos/packages/hal/arm/edb7xxx/current/misc/prog_flash.c
@@ -0,0 +1,322 @@
+//==========================================================================
+//
+// prog_flash.c
+//
+// Cirrus CL7211 eval board FLASH program tool
+//
+//==========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//==========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): gthomas
+// Contributors: gthomas
+// Date: 1999-05-12
+// Description: Tool used to program onboard FLASH image
+//####DESCRIPTIONEND####
+
+//
+// This program will program the FLASH on the CL7211 board from a fixed buffer
+//
+
+#include <pkgconf/kernel.h> // Configuration header
+#include <cyg/kernel/kapi.h>
+#include <cyg/infra/diag.h>
+#include <cyg/hal/hal_cache.h>
+
+#ifndef FALSE
+#define FALSE 0
+#define TRUE 1
+#endif
+
+#define STACK_SIZE 4096
+static char stack[STACK_SIZE];
+static cyg_thread thread_data;
+static cyg_handle_t thread_handle;
+
+void identify_FLASH(void);
+int write_flash(long *data, volatile long *mem);
+int erase_sector(volatile long *mem);
+
+// Note: these are mapped addresses
+// 0xE0000000 = ROM Bank 0
+// 0xF0000000 = ROM Bank 1
+volatile unsigned long *FLASH = (volatile unsigned long *)0xE0000000;
+
+long *flash_buffer = (long *)0x60000;
+long *flash_buffer_end = (long *)0x64000;
+long *ROM_address = (long *)0xE07E0000;
+
+// Adapted from Cirrus sample code
+#define ATMEL_SEQ_ADD1 0x00015554>>2
+#define ATMEL_SEQ_ADD2 0x0000AAA8>>2
+#define ATMEL_START_CMD1 0xAAAAAAAA
+#define ATMEL_START_CMD2 0x55555555
+#define ATMEL_ID_CMD 0x90909090
+#define ATMEL_PROG_CMD 0xA0A0A0A0
+#define ATMEL_ERASE_CMD 0x80808080
+#define ATMEL_SECTOR_ERASE_CMD 0x30303030
+#define ATMEL_STOP_CMD 0xF0F0F0F0
+#define ATMEL_BUSY_TOGGLE 0x00400040
+#define ATMEL_ERASE_TOGGLE 0x00440044
+
+#define ATMEL_MANUF 0x1F
+#define ATMEL_AT29C040_ID 0X5B
+#define ATMEL_AT29C040A_ID 0XA4
+#define ATMEL_AT29C1024_ID 0X25
+#define ATMEL_SECTOR_SIZE 256
+#define ATMEL_MAX_SECTORS 2048
+
+#define INTEL_MANUF 0x0089
+#define INTEL_STOP_CMD 0x00FF00FF
+#define INTEL_PROG_CMD 0x00400040
+#define INTEL_ERASE_CMD 0x00200020
+#define INTEL_ERASE_CONFIRM 0x00D000D0
+#define INTEL_READ_STATUS 0x00700070
+#define INTEL_CLEAR_STATUS 0x00500050
+#define INTEL_SB_WSMS 0x00800080 // Write state machine = ready
+#define INTEL_SB_ERASE_ERROR 0x00200020 // Erase failure
+#define INTEL_SB_PROG_ERROR 0x00100010 // Programming failure
+
+#define ERASE_TIMEOUT 10 // seconds
+
+int manuf_code, device_code, sector_size, max_no_of_sectors, word_mode;
+
+// FUNCTIONS
+
+static void
+cyg_test_exit(void)
+{
+ while (TRUE) ;
+}
+
+static void
+program_flash(cyg_addrword_t arg)
+{
+ diag_printf("PROGRAM FLASH here!\n");
+ HAL_UCACHE_SYNC(); // ROM space is marked cacheable which causes problems!
+ HAL_UCACHE_DISABLE(); // So, just disable caches.
+ identify_FLASH();
+ diag_printf("About to program FLASH using data at %x..%x\n", flash_buffer, flash_buffer_end);
+ diag_printf("*** Press RESET now to abort!\n");
+ cyg_thread_delay(5*100);
+ diag_printf("\n");
+ diag_printf("... Erase sector\n");
+ if (erase_sector(ROM_address)) {
+ diag_printf("... Programming FLASH\n");
+ while (flash_buffer < flash_buffer_end) {
+ if (!write_flash(flash_buffer++, ROM_address++)) break;
+ }
+ }
+
+ // Exit Program Mode
+ switch (manuf_code) {
+ case ATMEL_MANUF:
+ FLASH[ATMEL_SEQ_ADD1] = ATMEL_START_CMD1;
+ FLASH[ATMEL_SEQ_ADD2] = ATMEL_START_CMD2;
+ FLASH[ATMEL_SEQ_ADD1] = ATMEL_STOP_CMD;
+ break;
+ case INTEL_MANUF:
+ FLASH[0] = INTEL_STOP_CMD;
+ break;
+ }
+ diag_printf("All done!\n");
+ cyg_test_exit();
+}
+
+void
+identify_FLASH(void )
+{
+ // Enter Software Product Identification Mode
+ FLASH[ATMEL_SEQ_ADD1] = ATMEL_START_CMD1;
+ FLASH[ATMEL_SEQ_ADD2] = ATMEL_START_CMD2;
+ FLASH[ATMEL_SEQ_ADD1] = ATMEL_ID_CMD;
+
+ // Wait at least 10ms
+ cyg_thread_delay(2);
+
+ // Read Manufacturer and device code from the device
+ manuf_code = FLASH[0] >> 16;
+ device_code = FLASH[1] >> 16;
+
+ diag_printf("manufacturer: 0x%04x, device: 0x%04x\n", manuf_code, device_code);
+
+ // Exit Software Product Identification Mode
+ switch (manuf_code) {
+ case ATMEL_MANUF:
+ FLASH[ATMEL_SEQ_ADD1] = ATMEL_START_CMD1;
+ FLASH[ATMEL_SEQ_ADD2] = ATMEL_START_CMD2;
+ FLASH[ATMEL_SEQ_ADD1] = ATMEL_STOP_CMD;
+ break;
+ case INTEL_MANUF:
+ FLASH[0] = INTEL_STOP_CMD;
+ break;
+ default:
+ diag_printf("Unrecognized FLASH manufacturer - I give up!\n");
+ cyg_test_exit();
+ }
+}
+
+void
+spin(void)
+{
+ volatile int i;
+ for (i = 0; i < 100; i++) ;
+}
+
+int
+write_flash(long *data, volatile long *mem)
+{
+ long data1, data2;
+ long status;
+ int timer;
+ switch (manuf_code) {
+ case ATMEL_MANUF:
+ // Enter Program Mode
+ FLASH[ATMEL_SEQ_ADD1] = ATMEL_START_CMD1;
+ FLASH[ATMEL_SEQ_ADD2] = ATMEL_START_CMD2;
+ FLASH[ATMEL_SEQ_ADD1] = ATMEL_PROG_CMD;
+ // Send data to selected address
+ *mem = *data;
+ while (TRUE) {
+ data1 = *mem; // Read cell back twice
+ data2 = *mem;
+ // Bit 6 toggles between reads while programming in progress
+ if ((data1 & ATMEL_BUSY_TOGGLE) == (data2 & ATMEL_BUSY_TOGGLE)) break;
+ }
+ break;
+ case INTEL_MANUF:
+ // Clear current errors
+ FLASH[0] = INTEL_CLEAR_STATUS;
+ // Issue program command
+ FLASH[0] = INTEL_PROG_CMD;
+ // Send data to selected address
+ *mem = *data;
+ timer = 10000;
+ // Read the status register to wait for programming complete
+ do {
+ spin();
+ status = FLASH[0];
+ } while (((status & INTEL_SB_WSMS) != INTEL_SB_WSMS) &&
+ (--timer > 0));
+ // Check for errors
+ if (timer == 0) {
+ diag_printf("Programming at 0x%08x timed out - status: 0x%08x\n", mem, status);
+ }
+ if ((status & INTEL_SB_PROG_ERROR) != 0) {
+ diag_printf("Device reports programming error at 0x%08x - status: 0x%08x\n", mem, status);
+ }
+ // Exit program mode
+ FLASH[0] = INTEL_STOP_CMD;
+ break;
+ }
+ if (*mem != *data) {
+ diag_printf("Programming failed at 0x%08x - write: 0x%08x, read: 0x%08x\n",
+ mem, *data, *mem);
+ return (FALSE);
+ }
+ return (TRUE);
+}
+
+int
+erase_sector(volatile long *mem)
+{
+ long data1, data2;
+ long status;
+ int timer;
+ switch (manuf_code) {
+ case ATMEL_MANUF:
+ // Erase sector command
+ FLASH[ATMEL_SEQ_ADD1] = ATMEL_START_CMD1;
+ FLASH[ATMEL_SEQ_ADD2] = ATMEL_START_CMD2;
+ FLASH[ATMEL_SEQ_ADD1] = ATMEL_ERASE_CMD;
+ FLASH[ATMEL_SEQ_ADD1] = ATMEL_START_CMD1;
+ FLASH[ATMEL_SEQ_ADD2] = ATMEL_START_CMD2;
+ *mem = ATMEL_SECTOR_ERASE_CMD;
+ while (TRUE) {
+ data1 = *mem; // Read cell back twice
+ data2 = *mem;
+ // Bits 6+2 toggle between reads while programming in progress
+ if ((data1 & ATMEL_ERASE_TOGGLE) == (data2 & ATMEL_ERASE_TOGGLE)) break;
+ }
+ break;
+ case INTEL_MANUF:
+ // Clear current errors
+ FLASH[0] = INTEL_CLEAR_STATUS;
+ // Issue erase block command
+ FLASH[0] = INTEL_ERASE_CMD;
+ *mem = INTEL_ERASE_CONFIRM;
+ timer = ERASE_TIMEOUT*50;
+ // Read the status register while erase in progress
+ do {
+ cyg_thread_delay(2);
+ status = FLASH[0];
+ } while (((status & INTEL_SB_WSMS) != INTEL_SB_WSMS) &&
+ (--timer > 0));
+ // Check for errors
+ if (timer == 0) {
+ diag_printf("Erase not complete after %d seconds - status: 0x%08x\n",
+ ERASE_TIMEOUT, status);
+ }
+ if ((status & INTEL_SB_ERASE_ERROR) != 0) {
+ diag_printf("Device reports erase error - status: 0x%08x\n", status);
+ }
+ // Exit erase mode
+ FLASH[0] = INTEL_STOP_CMD;
+ break;
+ }
+ if (*mem != 0xFFFFFFFF) {
+ diag_printf("Erase failed at 0x%08x - read: 0x%08x\n",
+ mem, *mem);
+ return (FALSE);
+ }
+ return (TRUE);
+}
+
+externC void
+cyg_start( void )
+{
+ // Create a main thread, so we can run the scheduler and have time 'pass'
+ cyg_thread_create(10, // Priority - just a number
+ program_flash, // entry
+ 1, // index
+ "program_thread", // Name
+ &stack[0], // Stack
+ STACK_SIZE, // Size
+ &thread_handle, // Handle
+ &thread_data // Thread data structure
+ );
+ cyg_thread_resume(thread_handle); // Start it
+ cyg_scheduler_start();
+} // cyg_package_start()
+
diff --git a/ecos/packages/hal/arm/edb7xxx/current/misc/short_audio_left.h b/ecos/packages/hal/arm/edb7xxx/current/misc/short_audio_left.h
new file mode 100755
index 0000000..100753b
--- /dev/null
+++ b/ecos/packages/hal/arm/edb7xxx/current/misc/short_audio_left.h
@@ -0,0 +1,5002 @@
+unsigned short left_channel[] = {
+ 0x007c, 0x0055, 0x0012, 0xfff6, 0x000a, 0x001f,
+ 0x0011, 0x0000, 0x0018, 0x004e, 0x006e, 0x0067,
+ 0x0055, 0x004d, 0x003b, 0x0010, 0xffe3, 0xffdb,
+ 0xfff7, 0x0012, 0x001c, 0x0022, 0x0031, 0x003d,
+ 0x0040, 0x004a, 0x005e, 0x005d, 0x002b, 0xffec,
+ 0xffe4, 0x0026, 0x006f, 0x007c, 0x005d, 0x004c,
+ 0x0052, 0x003f, 0x0008, 0xffe5, 0x0002, 0x0030,
+ 0x001c, 0xffc9, 0xff9a, 0xffdf, 0x0069, 0x00c3,
+ 0x00ae, 0x004f, 0xfff8, 0xffd3, 0xffe5, 0x000e,
+ 0x0022, 0x0006, 0xffd6, 0xffcf, 0x0008, 0x0044,
+ 0x0035, 0xffec, 0xffc2, 0xffe9, 0x002c, 0x003b,
+ 0x0012, 0xffec, 0xffe0, 0xffd5, 0xffca, 0xfff8,
+ 0x0072, 0x00e9, 0x00e7, 0x0066, 0xffe0, 0xffbc,
+ 0xffed, 0x0022, 0x0038, 0x0042, 0x0044, 0x001f,
+ 0xffd1, 0xff98, 0xffb2, 0x000b, 0x0059, 0x0065,
+ 0x003a, 0x0005, 0xfff1, 0x0014, 0x0067, 0x00ac,
+ 0x00a2, 0x0058, 0x0033, 0x0079, 0x00e5, 0x00eb,
+ 0x006c, 0xffe6, 0xffd7, 0x0024, 0x004d, 0x0020,
+ 0xffeb, 0xfff7, 0x0022, 0x0019, 0xffd8, 0xffac,
+ 0xffc7, 0x0003, 0x002c, 0x003a, 0x003d, 0x002c,
+ 0xfff8, 0xffc6, 0xffd4, 0x0022, 0x0067, 0x0067,
+ 0x0036, 0x0010, 0x0007, 0x0003, 0xfff1, 0xffd3,
+ 0xffa8, 0xff73, 0xff58, 0xff89, 0xfff3, 0x002d,
+ 0xfff5, 0xff8b, 0xff76, 0xffcc, 0x0014, 0xffef,
+ 0xff97, 0xff8e, 0xffe0, 0x0012, 0xffd7, 0xff7d,
+ 0xff81, 0xffe7, 0x0034, 0x0015, 0xffb1, 0xff60,
+ 0xff47, 0xff4f, 0xff60, 0xff70, 0xff71, 0xff60,
+ 0xff5f, 0xff95, 0xffe9, 0x000b, 0xffd9, 0xff89,
+ 0xff68, 0xff7f, 0xffa2, 0xffc0, 0xffec, 0x0013,
+ 0xfffb, 0xff99, 0xff47, 0xff58, 0xffa0, 0xffae,
+ 0xff6e, 0xff48, 0xff7d, 0xffb9, 0xff83, 0xfefb,
+ 0xfec9, 0xff41, 0xfff1, 0x002c, 0xffe3, 0xff9a,
+ 0xffbc, 0x0026, 0x006f, 0x005c, 0x000e, 0xffca,
+ 0xffc7, 0x0013, 0x007e, 0x00a1, 0x0046, 0xffac,
+ 0xff4e, 0xff5d, 0xff9b, 0xffc5, 0xffe2, 0x000b,
+ 0x000f, 0xffa6, 0xff03, 0xfed3, 0xff76, 0x0074,
+ 0x00fd, 0x00c9, 0x0049, 0xfff8, 0xffd8, 0xffbc,
+ 0xffb1, 0xffe3, 0x002d, 0x002f, 0xffcf, 0xff72,
+ 0xff81, 0xffdb, 0x000b, 0xffdb, 0xff88, 0xff69,
+ 0xff8d, 0xffc2, 0xffcc, 0xff8d, 0xff1b, 0xfed3,
+ 0xff1e, 0xfffb, 0x00c3, 0x00c3, 0x0002, 0xff49,
+ 0xff38, 0xff98, 0xffc3, 0xff82, 0xff38, 0xff3d,
+ 0xff6a, 0xff78, 0xff7f, 0xffc9, 0x003c, 0x0062,
+ 0xfffe, 0xff6d, 0xff37, 0xff75, 0xffd8, 0x0016,
+ 0x002e, 0x002e, 0x0015, 0xfff4, 0xfff1, 0x000c,
+ 0x0009, 0xffb7, 0xff46, 0xff16, 0xff39, 0xff6b,
+ 0xff85, 0xffb8, 0x0028, 0x0090, 0x008e, 0x002c,
+ 0xffe1, 0xffe3, 0xffe9, 0xffa8, 0xff51, 0xff59,
+ 0xffc9, 0x002f, 0x003c, 0x001f, 0x002d, 0x005c,
+ 0x0059, 0x0008, 0xffa5, 0xff72, 0xff79, 0xffa9,
+ 0xfff9, 0x0049, 0x0058, 0x0012, 0xffd1, 0xfffc,
+ 0x007d, 0x00c7, 0x0080, 0xfff8, 0xffb0, 0xffbb,
+ 0xffc8, 0xffb7, 0xffc4, 0x0010, 0x0050, 0x002f,
+ 0xffd5, 0xffb6, 0xfff5, 0x0038, 0x0033, 0x0011,
+ 0x0029, 0x007d, 0x00bf, 0x00c3, 0x00a7, 0x008f,
+ 0x0073, 0x0046, 0x0018, 0xfff3, 0xffb8, 0xff5f,
+ 0xff26, 0xff4f, 0xffad, 0xffcb, 0xff8e, 0xff71,
+ 0xffe2, 0x0090, 0x00c0, 0x0033, 0xff81, 0xff55,
+ 0xffb3, 0x001c, 0x004b, 0x005d, 0x006a, 0x004f,
+ 0xfffd, 0xffbd, 0xffe0, 0x0046, 0x007d, 0x0048,
+ 0xffdf, 0xff92, 0xff7b, 0xff93, 0xffd0, 0x0019,
+ 0x0035, 0x0005, 0xffd2, 0x0003, 0x0098, 0x010a,
+ 0x00f1, 0x007c, 0x002b, 0x0036, 0x006f, 0x00aa,
+ 0x00de, 0x00e1, 0x0063, 0xff78, 0xfede, 0xff57,
+ 0x00ac, 0x01b6, 0x0188, 0x006a, 0xff75, 0xff68,
+ 0x001b, 0x00f3, 0x017b, 0x0189, 0x011f, 0x006e,
+ 0xffd4, 0xff99, 0xffae, 0xffcc, 0xffdb, 0xfff6,
+ 0x001c, 0x0016, 0xffd3, 0xffa5, 0xffe8, 0x0071,
+ 0x00b3, 0x0064, 0xffd0, 0xff6d, 0xff5e, 0xff81,
+ 0xffc3, 0x001e, 0x005e, 0x0035, 0xffbf, 0xff7e,
+ 0xffc4, 0x0031, 0x0028, 0xff9f, 0xff28, 0xff31,
+ 0xff7e, 0xff9e, 0xff97, 0xffbe, 0x0016, 0x002c,
+ 0xffb3, 0xff09, 0xfeda, 0xff5c, 0x0021, 0x0096,
+ 0x0076, 0xffee, 0xff5d, 0xff2b, 0xff72, 0xffd3,
+ 0xffb5, 0xfef2, 0xfe21, 0xfe09, 0xfecb, 0xffc4,
+ 0x004b, 0x004f, 0x001d, 0xffe8, 0xffbd, 0xffc5,
+ 0x0023, 0x0093, 0x007e, 0xffbb, 0xfee7, 0xfec7,
+ 0xff4e, 0xffbd, 0xff99, 0xff43, 0xff55, 0xffc2,
+ 0xfff1, 0xff9c, 0xff37, 0xff52, 0xffe0, 0x0050,
+ 0x004c, 0x000e, 0x0015, 0x0091, 0x012e, 0x0158,
+ 0x00c3, 0xffca, 0xff46, 0xffd1, 0x010b, 0x01dc,
+ 0x018b, 0x0087, 0xffe1, 0x0009, 0x0082, 0x00a8,
+ 0x008d, 0x009e, 0x00cb, 0x008c, 0xffcc, 0xff49,
+ 0xffd0, 0x012d, 0x0256, 0x0288, 0x01f5, 0x0144,
+ 0x00c6, 0x005f, 0xffff, 0xffcb, 0xffda, 0x0003,
+ 0x0018, 0x002a, 0x0064, 0x00c4, 0x0107, 0x00e4,
+ 0x0053, 0xffa7, 0xff6b, 0xfff9, 0x0105, 0x01a3,
+ 0x0118, 0xffc3, 0xfede, 0xff37, 0x003b, 0x00a4,
+ 0xffff, 0xff23, 0xff0a, 0xff99, 0xffef, 0xffb2,
+ 0xff82, 0x000b, 0x0107, 0x0180, 0x00f8, 0xffe3,
+ 0xff0e, 0xfed5, 0xff0b, 0xff67, 0xffcb, 0x002c,
+ 0x0075, 0x007f, 0x0032, 0xff9f, 0xff11, 0xfefa,
+ 0xff80, 0x0038, 0x0076, 0x0000, 0xff5d, 0xff3f,
+ 0xffc0, 0x005b, 0x00aa, 0x00b6, 0x00a8, 0x006e,
+ 0xfffa, 0xffa6, 0xffef, 0x00ae, 0x0112, 0x0084,
+ 0xff6b, 0xfeb6, 0xfed2, 0xff46, 0xff77, 0xff60,
+ 0xff69, 0xffc3, 0x0037, 0x008f, 0x00d6, 0x012b,
+ 0x0184, 0x01b8, 0x01b6, 0x017b, 0x010d, 0x0085,
+ 0x0025, 0x0022, 0x0059, 0x0073, 0x0051, 0x0033,
+ 0x004e, 0x006f, 0x0048, 0xffef, 0xffdf, 0x005d,
+ 0x0115, 0x0175, 0x014f, 0x00ef, 0x00b1, 0x00af,
+ 0x00d4, 0x00f6, 0x00e3, 0x007c, 0xfffb, 0xffdb,
+ 0x0058, 0x00fd, 0x010c, 0x005d, 0xffa0, 0xff95,
+ 0x003c, 0x00f2, 0x012e, 0x00fc, 0x00a7, 0x0057,
+ 0x0014, 0xffff, 0x002c, 0x0072, 0x007c, 0x0029,
+ 0xffb1, 0xff5b, 0xff4b, 0xff82, 0xffe7, 0x002f,
+ 0xfffc, 0xff4b, 0xfeb4, 0xfeda, 0xff94, 0x000c,
+ 0xffd7, 0xff90, 0x0011, 0x012a, 0x01a3, 0x00b3,
+ 0xff07, 0xfe13, 0xfe8d, 0xffef, 0x0135, 0x01c1,
+ 0x0169, 0x0054, 0xff12, 0xfe8b, 0xff3c, 0x0074,
+ 0x00dc, 0x0000, 0xfef5, 0xff28, 0x00a2, 0x01ee,
+ 0x01cc, 0x009f, 0xffe2, 0x0052, 0x0104, 0x004a,
+ 0xfd6e, 0xf96a, 0xf621, 0xf4d4, 0xf53d, 0xf5fc,
+ 0xf5e8, 0xf513, 0xf485, 0xf515, 0xf693, 0xf81d,
+ 0xf914, 0xf97a, 0xf97e, 0xf8fc, 0xf7be, 0xf614,
+ 0xf4cb, 0xf476, 0xf4d1, 0xf50e, 0xf49c, 0xf386,
+ 0xf1f8, 0xef6c, 0xea6f, 0xe16f, 0xd466, 0xc651,
+ 0xbd08, 0xbeaf, 0xcdb3, 0xe612, 0xfe9a, 0x0e08,
+ 0x10c1, 0x0a7d, 0x026b, 0xfcfa, 0xf8c8, 0xf190,
+ 0xe5c3, 0xd8e7, 0xd056, 0xce55, 0xd14a, 0xd7b4,
+ 0xe33c, 0xf629, 0x0d8e, 0x1fc3, 0x2272, 0x131d,
+ 0xf990, 0xe1f6, 0xd49f, 0xd2b1, 0xd8f2, 0xe3cc,
+ 0xf090, 0xfc56, 0x03bf, 0x0493, 0xff81, 0xf7e4,
+ 0xf199, 0xeec4, 0xef29, 0xf14b, 0xf411, 0xf77c,
+ 0xfc00, 0x0169, 0x06b4, 0x0aee, 0x0def, 0x0fe9,
+ 0x108f, 0x0f61, 0x0d00, 0x0b87, 0x0caf, 0x0fa7,
+ 0x1176, 0x101d, 0x0ced, 0x0b28, 0x0c68, 0x0f02,
+ 0x1043, 0x0fa4, 0x0efe, 0x0fd9, 0x116f, 0x11ee,
+ 0x10f5, 0x0ff6, 0x1018, 0x10bf, 0x10bd, 0x1048,
+ 0x10b8, 0x1228, 0x12a0, 0x106c, 0x0ce5, 0x0ba6,
+ 0x0e7d, 0x130d, 0x1541, 0x13de, 0x11ac, 0x11f0,
+ 0x149e, 0x16c6, 0x1649, 0x1424, 0x12ee, 0x1403,
+ 0x16b9, 0x19af, 0x1bcc, 0x1c08, 0x1978, 0x1491,
+ 0x0fe1, 0x0e6d, 0x10da, 0x14b4, 0x16eb, 0x16fe,
+ 0x1778, 0x1b7c, 0x2404, 0x2f0a, 0x38b6, 0x3d59,
+ 0x3b51, 0x33f6, 0x2acd, 0x2315, 0x1df3, 0x1b23,
+ 0x1b47, 0x206d, 0x2b5f, 0x38be, 0x4243, 0x43ca,
+ 0x3ef1, 0x3920, 0x3649, 0x362d, 0x366b, 0x35c8,
+ 0x3477, 0x3245, 0x2e63, 0x2995, 0x26e1, 0x283a,
+ 0x2aca, 0x285f, 0x1e00, 0x1051, 0x0831, 0x0a7f,
+ 0x13eb, 0x1cce, 0x2040, 0x1ead, 0x1abe, 0x15b2,
+ 0x0f84, 0x0928, 0x04cc, 0x038c, 0x03f4, 0x0389,
+ 0x015b, 0xfe8b, 0xfc7b, 0xfb60, 0xfa8a, 0xf993,
+ 0xf8be, 0xf8a5, 0xf9cb, 0xfc25, 0xfe45, 0xfd67,
+ 0xf79e, 0xeebc, 0xe839, 0xe8c3, 0xef5a, 0xf5bc,
+ 0xf655, 0xf184, 0xec58, 0xea9d, 0xeb43, 0xeadf,
+ 0xe862, 0xe5fb, 0xe5a5, 0xe681, 0xe652, 0xe4ac,
+ 0xe34b, 0xe34e, 0xe35a, 0xe126, 0xdc41, 0xd686,
+ 0xd22e, 0xd052, 0xd134, 0xd4ac, 0xd960, 0xdc5c,
+ 0xdb04, 0xd60d, 0xd196, 0xd16a, 0xd537, 0xd91f,
+ 0xd9da, 0xd78d, 0xd475, 0xd1e7, 0xcfb1, 0xcdef,
+ 0xcdec, 0xd070, 0xd3ee, 0xd57a, 0xd3ab, 0xcfad,
+ 0xcb6b, 0xc782, 0xc39d, 0xc045, 0xbf04, 0xc07f,
+ 0xc352, 0xc5ae, 0xc7ad, 0xcb2a, 0xd11f, 0xd7f3,
+ 0xdce7, 0xdeb4, 0xde23, 0xdc52, 0xd95d, 0xd51c,
+ 0xd05e, 0xcc86, 0xca18, 0xc874, 0xc75e, 0xc801,
+ 0xcbb8, 0xd20d, 0xd892, 0xdcf0, 0xde87, 0xddf1,
+ 0xdbb0, 0xd820, 0xd479, 0xd298, 0xd325, 0xd462,
+ 0xd3d3, 0xd116, 0xce62, 0xcddc, 0xcf01, 0xcf75,
+ 0xce38, 0xcd33, 0xcf2b, 0xd47f, 0xda7d, 0xddb3,
+ 0xdcaa, 0xd882, 0xd3c8, 0xd112, 0xd1fe, 0xd667,
+ 0xdc2a, 0xe057, 0xe15d, 0xe031, 0xdf0e, 0xdf28,
+ 0xdfc5, 0xdf94, 0xde4e, 0xdcb7, 0xdb77, 0xda93,
+ 0xda26, 0xdaeb, 0xdd87, 0xe176, 0xe536, 0xe7ac,
+ 0xe8fe, 0xe9e5, 0xea8b, 0xea8a, 0xe9f8, 0xe9c6,
+ 0xeab9, 0xec2d, 0xec63, 0xea21, 0xe5f6, 0xe1dc,
+ 0xdfd0, 0xe0ca, 0xe49d, 0xea36, 0xefe8, 0xf3f8,
+ 0xf588, 0xf51a, 0xf40e, 0xf374, 0xf36f, 0xf3b3,
+ 0xf459, 0xf5f1, 0xf8be, 0xfc0f, 0xfe93, 0xff56,
+ 0xfe78, 0xfd15, 0xfc98, 0xfdea, 0x00db, 0x0424,
+ 0x0616, 0x05cc, 0x03e9, 0x0234, 0x023b, 0x0433,
+ 0x0714, 0x09ae, 0x0b94, 0x0d0c, 0x0e57, 0x0f4d,
+ 0x0f91, 0x0f1b, 0x0e57, 0x0ddf, 0x0e1d, 0x0f20,
+ 0x10a6, 0x1233, 0x1347, 0x139d, 0x1369, 0x1338,
+ 0x1379, 0x141e, 0x14b1, 0x14d3, 0x149e, 0x148e,
+ 0x1507, 0x15f3, 0x16dc, 0x1774, 0x1800, 0x1945,
+ 0x1bf1, 0x1fe1, 0x23e6, 0x266c, 0x2690, 0x24e8,
+ 0x2331, 0x230a, 0x24ae, 0x26db, 0x27f9, 0x2795,
+ 0x26c3, 0x2710, 0x2906, 0x2ba7, 0x2d5e, 0x2d79,
+ 0x2ce6, 0x2d5a, 0x2fc6, 0x335f, 0x3623, 0x364c,
+ 0x33a3, 0x2f8a, 0x2bed, 0x2a07, 0x29ed, 0x2b06,
+ 0x2cb8, 0x2eae, 0x309d, 0x3208, 0x3275, 0x31de,
+ 0x30bf, 0x2fa6, 0x2eb2, 0x2da5, 0x2c7e, 0x2bf4,
+ 0x2d08, 0x2ffa, 0x33b4, 0x3640, 0x361f, 0x3372,
+ 0x2fd7, 0x2d21, 0x2c07, 0x2beb, 0x2bcb, 0x2b69,
+ 0x2b7a, 0x2cd4, 0x2f6f, 0x3234, 0x33ed, 0x3451,
+ 0x3402, 0x33a4, 0x3310, 0x317c, 0x2ea7, 0x2ba3,
+ 0x2a52, 0x2be5, 0x2f99, 0x32ff, 0x33d8, 0x31f8,
+ 0x2f60, 0x2e8c, 0x3046, 0x32fc, 0x343d, 0x32eb,
+ 0x303e, 0x2ebe, 0x300a, 0x336b, 0x3677, 0x36fa,
+ 0x34be, 0x31a4, 0x300b, 0x310b, 0x33d4, 0x3673,
+ 0x3759, 0x3667, 0x34ae, 0x3367, 0x3329, 0x33b6,
+ 0x3475, 0x34e4, 0x34ac, 0x339f, 0x31cd, 0x2f80,
+ 0x2d38, 0x2b72, 0x2a82, 0x2a89, 0x2b33, 0x2ba1,
+ 0x2b18, 0x2977, 0x270d, 0x24a1, 0x2321, 0x22ed,
+ 0x23b2, 0x24a3, 0x24eb, 0x2444, 0x2300, 0x21c1,
+ 0x20e5, 0x1fe7, 0x1e06, 0x1b83, 0x199c, 0x19be,
+ 0x1c7d, 0x20ae, 0x2410, 0x24d7, 0x2299, 0x1eae,
+ 0x1b45, 0x1995, 0x1945, 0x1912, 0x17f3, 0x162b,
+ 0x14bc, 0x13f8, 0x1356, 0x120b, 0x0ff1, 0x0e18,
+ 0x0dba, 0x0f02, 0x1131, 0x12e4, 0x12f8, 0x11a8,
+ 0x0fc6, 0x0dd3, 0x0c21, 0x0a87, 0x08e1, 0x07dd,
+ 0x07fa, 0x08de, 0x097e, 0x08a6, 0x06db, 0x05ef,
+ 0x063f, 0x06a1, 0x05c3, 0x0323, 0x000b, 0xfe1c,
+ 0xfdf7, 0xffcd, 0x0213, 0x0217, 0xffd0, 0xfda2,
+ 0xfd7b, 0xff16, 0xffcc, 0xfd5d, 0xf815, 0xf238,
+ 0xef72, 0xf16f, 0xf560, 0xf880, 0xfa3c, 0xfa56,
+ 0xf9e1, 0xfa9d, 0xfc0c, 0xfbde, 0xf898, 0xf433,
+ 0xf269, 0xf390, 0xf51e, 0xf4cd, 0xf172, 0xed2f,
+ 0xeb96, 0xed09, 0xf090, 0xf538, 0xf842, 0xf7c2,
+ 0xf555, 0xf3af, 0xf2f8, 0xf0f0, 0xed68, 0xea76,
+ 0xe895, 0xe85a, 0xeaef, 0xee3b, 0xefed, 0xf127,
+ 0xf266, 0xf20a, 0xeff9, 0xee4c, 0xedf3, 0xed6f,
+ 0xec93, 0xeccf, 0xec8b, 0xe90b, 0xe39a, 0xdff8,
+ 0xe09a, 0xe510, 0xea6e, 0xee6c, 0xf0dc, 0xf1dd,
+ 0xf15f, 0xefff, 0xeebf, 0xed63, 0xea8f, 0xe645,
+ 0xe221, 0xdf77, 0xdef4, 0xe049, 0xe22e, 0xe416,
+ 0xe66b, 0xe8f9, 0xeac4, 0xeba6, 0xec91, 0xed05,
+ 0xeb33, 0xe76f, 0xe452, 0xe415, 0xe653, 0xe82c,
+ 0xe93c, 0xec81, 0xf169, 0xf3d5, 0xf2b9, 0xefd0,
+ 0xeb2e, 0xe3e4, 0xdc62, 0xd8f6, 0xd896, 0xd74e,
+ 0xd4cd, 0xd0b8, 0xca78, 0xc5e3, 0xc56e, 0xc6b1,
+ 0xc8a3, 0xcc70, 0xd1a4, 0xd5a3, 0xd785, 0xda82,
+ 0xdef9, 0xe07b, 0xde93, 0xdbb1, 0xd854, 0xd5ff,
+ 0xd4fe, 0xd45d, 0xd69b, 0xdbf0, 0xdfc5, 0xe074,
+ 0xe075, 0xe2a9, 0xe65f, 0xe818, 0xe87b, 0xe89a,
+ 0xe5ab, 0xe1a9, 0xe060, 0xe02b, 0xe103, 0xe39f,
+ 0xe52c, 0xe529, 0xe4b4, 0xe400, 0xe2e2, 0xdf0d,
+ 0xd9f5, 0xd86a, 0xd898, 0xd7e6, 0xd865, 0xdab5,
+ 0xdeab, 0xe1b4, 0xe01f, 0xde22, 0xdee0, 0xde53,
+ 0xdd0d, 0xdd1e, 0xdcea, 0xdd7d, 0xdfa4, 0xe2dd,
+ 0xe6ba, 0xe790, 0xe54a, 0xe34a, 0xe0d6, 0xe053,
+ 0xe405, 0xe61b, 0xe51a, 0xe42b, 0xe2ad, 0xe1a9,
+ 0xe16f, 0xe066, 0xe113, 0xe3c3, 0xe6c1, 0xea73,
+ 0xec69, 0xed18, 0xee60, 0xebc5, 0xe84d, 0xeae1,
+ 0xed65, 0xebce, 0xea20, 0xe748, 0xe2cc, 0xdef1,
+ 0xdc70, 0xdcac, 0xdd0e, 0xdc83, 0xe015, 0xe4db,
+ 0xe61a, 0xe730, 0xe6b7, 0xe324, 0xe1a6, 0xe27f,
+ 0xe413, 0xe5db, 0xe541, 0xe5ae, 0xe9b6, 0xecf5,
+ 0xefec, 0xf2c7, 0xf27c, 0xf246, 0xf22d, 0xefed,
+ 0xf092, 0xf328, 0xf24d, 0xf06a, 0xee3d, 0xeab4,
+ 0xe8e3, 0xe976, 0xeba8, 0xedf4, 0xed23, 0xeaf7,
+ 0xe9fa, 0xea02, 0xecbf, 0xf075, 0xf1e0, 0xf226,
+ 0xf17a, 0xf1c9, 0xf517, 0xf618, 0xf475, 0xf591,
+ 0xf748, 0xf7a9, 0xf82c, 0xf7e2, 0xf7bd, 0xf6e5,
+ 0xf45a, 0xf5e6, 0xfab2, 0xfbea, 0xfb78, 0xfa91,
+ 0xf6fe, 0xf423, 0xf379, 0xf363, 0xf45c, 0xf4f8,
+ 0xf35e, 0xef32, 0xea05, 0xe8a0, 0xea7e, 0xeb9c,
+ 0xed65, 0xeea7, 0xed5e, 0xed79, 0xee0b, 0xed2d,
+ 0xeea8, 0xefe8, 0xed37, 0xea57, 0xe910, 0xe9dc,
+ 0xecc3, 0xedd8, 0xedd4, 0xee8f, 0xec25, 0xe852,
+ 0xe8eb, 0xed3e, 0xf21c, 0xf597, 0xf7fb, 0xfa82,
+ 0xfb28, 0xfa0d, 0xf9e1, 0xf9ff, 0xfb15, 0xfd0d,
+ 0xfc43, 0xfa43, 0xf877, 0xf50d, 0xf49a, 0xf832,
+ 0xf9f6, 0xfae2, 0xfb94, 0xf9d9, 0xfade, 0xff2b,
+ 0x0110, 0x028e, 0x046b, 0x0339, 0x0172, 0x000b,
+ 0xfd21, 0xfbf6, 0xfd75, 0xfd97, 0xfb43, 0xf78d,
+ 0xf427, 0xf3aa, 0xf5e3, 0xf84c, 0xf9b5, 0xfa0b,
+ 0xf942, 0xf828, 0xf7f6, 0xf76c, 0xf47d, 0xf1b2,
+ 0xf26f, 0xf435, 0xf3bd, 0xf2d6, 0xf391, 0xf581,
+ 0xf8e8, 0xfcc2, 0xfe34, 0xfeae, 0x0042, 0xff59,
+ 0xfbb0, 0xfa1e, 0xfa0f, 0xfa53, 0xfd03, 0xff54,
+ 0xff19, 0xff48, 0xff80, 0xff39, 0x00a9, 0x028e,
+ 0x0426, 0x051e, 0x02b3, 0x0168, 0x0639, 0x0a61,
+ 0x0aec, 0x0c4c, 0x0c1b, 0x099d, 0x092f, 0x08c0,
+ 0x0880, 0x0ce7, 0x1086, 0x0e1e, 0x0a8d, 0x0791,
+ 0x03bd, 0x0234, 0x0455, 0x07fb, 0x0b58, 0x0d6b,
+ 0x0ef9, 0x0f63, 0x0d63, 0x0c76, 0x0db7, 0x0d95,
+ 0x0d10, 0x0ca2, 0x0959, 0x063b, 0x05d5, 0x04eb,
+ 0x0405, 0x04c6, 0x0593, 0x065f, 0x05fd, 0x0419,
+ 0x054e, 0x096a, 0x0bfa, 0x0d03, 0x0c87, 0x0ac7,
+ 0x0a84, 0x09e3, 0x07e9, 0x0906, 0x0b3d, 0x09bd,
+ 0x07d6, 0x0843, 0x08cc, 0x0975, 0x0b1f, 0x0cec,
+ 0x0e24, 0x0da6, 0x0b31, 0x08ec, 0x082f, 0x086f,
+ 0x09fa, 0x0dec, 0x130b, 0x1609, 0x15c2, 0x1422,
+ 0x1369, 0x14e1, 0x172b, 0x173c, 0x15d4, 0x14fd,
+ 0x1270, 0x0e53, 0x0dac, 0x0f8a, 0x0fc3, 0x1128,
+ 0x14aa, 0x14fd, 0x1302, 0x1288, 0x11ba, 0x11b3,
+ 0x14b4, 0x157c, 0x1330, 0x1450, 0x17c7, 0x182d,
+ 0x15a0, 0x1223, 0x0ffc, 0x1068, 0x10cc, 0x0ff7,
+ 0x0f8b, 0x107e, 0x130f, 0x14b7, 0x147a, 0x1743,
+ 0x1c2d, 0x1ce6, 0x1c03, 0x1cae, 0x1b46, 0x1987,
+ 0x1abe, 0x1ad8, 0x1841, 0x15c2, 0x1366, 0x116d,
+ 0x1178, 0x1444, 0x1a49, 0x2007, 0x1f89, 0x1a9c,
+ 0x17c8, 0x16fe, 0x1556, 0x149c, 0x16cc, 0x1a5a,
+ 0x1bf1, 0x185a, 0x1275, 0x1178, 0x1369, 0x114a,
+ 0x0da4, 0x0d44, 0x0f38, 0x129c, 0x14b2, 0x1247,
+ 0x0fc9, 0x1119, 0x12d4, 0x1331, 0x1396, 0x13e8,
+ 0x1313, 0x1049, 0x0d3f, 0x0d35, 0x0ff1, 0x12d8,
+ 0x146a, 0x1450, 0x1276, 0x0e85, 0x0ab8, 0x0af0,
+ 0x0df3, 0x1007, 0x0fd0, 0x0d0a, 0x0b7b, 0x0e9d,
+ 0x11e9, 0x12dd, 0x145f, 0x1605, 0x1899, 0x1ca8,
+ 0x1cf1, 0x1a5d, 0x1a5d, 0x1a98, 0x1952, 0x1844,
+ 0x1626, 0x13c9, 0x12ed, 0x12e2, 0x147b, 0x16cf,
+ 0x18da, 0x1cdf, 0x200d, 0x1f52, 0x1e35, 0x1d19,
+ 0x1c1a, 0x1e97, 0x2147, 0x212d, 0x20ac, 0x1ef4,
+ 0x1e10, 0x2144, 0x22cc, 0x2098, 0x1f48, 0x1d77,
+ 0x1a66, 0x190f, 0x1880, 0x18a2, 0x1aab, 0x1d4f,
+ 0x208b, 0x2292, 0x1f6e, 0x19a8, 0x16f2, 0x1765,
+ 0x1703, 0x152e, 0x16d9, 0x1c0f, 0x1d2a, 0x191c,
+ 0x15ab, 0x1469, 0x14b5, 0x1661, 0x17e1, 0x1828,
+ 0x16fe, 0x1528, 0x13ba, 0x12b5, 0x13ae, 0x1685,
+ 0x17c2, 0x18a7, 0x1a33, 0x1870, 0x15fd, 0x1664,
+ 0x15b2, 0x14e8, 0x154f, 0x1160, 0x0cd9, 0x0eaa,
+ 0x1212, 0x146f, 0x175f, 0x17e5, 0x1704, 0x1755,
+ 0x169b, 0x16ac, 0x192b, 0x19f6, 0x1912, 0x1854,
+ 0x16e1, 0x16f8, 0x193a, 0x1a46, 0x1a07, 0x1918,
+ 0x1686, 0x133c, 0x10f1, 0x1195, 0x144d, 0x14c6,
+ 0x1398, 0x134b, 0x11b5, 0x0fa2, 0x1003, 0x112b,
+ 0x11e3, 0x122d, 0x11d7, 0x1228, 0x115b, 0x0ead,
+ 0x0ea5, 0x104b, 0x0fec, 0x0fd1, 0x1002, 0x0f24,
+ 0x0ed5, 0x0ce6, 0x09b7, 0x0a62, 0x0c0b, 0x0b42,
+ 0x0bcf, 0x0cb0, 0x0ae3, 0x09b6, 0x0a5a, 0x0a71,
+ 0x09ca, 0x08e4, 0x0834, 0x07eb, 0x074c, 0x0769,
+ 0x0943, 0x0a4e, 0x08d5, 0x070d, 0x0738, 0x0999,
+ 0x0d76, 0x10e0, 0x12b3, 0x1477, 0x1550, 0x11c9,
+ 0x0bfa, 0x08d8, 0x08b3, 0x0a79, 0x0daa, 0x1080,
+ 0x11b7, 0x0fe5, 0x0b43, 0x085c, 0x0916, 0x0aaa,
+ 0x0b43, 0x099f, 0x0686, 0x0558, 0x056f, 0x04a9,
+ 0x04d1, 0x06da, 0x08c3, 0x085b, 0x059d, 0x03b7,
+ 0x040e, 0x04c4, 0x050a, 0x0404, 0x022a, 0x02ca,
+ 0x054b, 0x06a1, 0x0621, 0x02df, 0xfec8, 0xfdb8,
+ 0xfd50, 0xfa8b, 0xf7dc, 0xf78b, 0xf920, 0xf9a3,
+ 0xf7c3, 0xf784, 0xf996, 0xfa93, 0xfb76, 0xfc8a,
+ 0xfbc0, 0xfaaa, 0xf9c9, 0xf81e, 0xf6d0, 0xf4cc,
+ 0xf1b9, 0xf19a, 0xf55a, 0xf928, 0xf97a, 0xf6d7,
+ 0xf580, 0xf572, 0xf2dd, 0xef37, 0xedd7, 0xee4c,
+ 0xeec1, 0xeddb, 0xeca6, 0xebed, 0xe968, 0xe68b,
+ 0xe742, 0xea57, 0xed1f, 0xedfc, 0xeca7, 0xeba2,
+ 0xe9d7, 0xe5c0, 0xe4ff, 0xe81a, 0xe77e, 0xe260,
+ 0xdd70, 0xdb1a, 0xdc09, 0xdea8, 0xe1b9, 0xe4ab,
+ 0xe4c8, 0xe2c3, 0xe256, 0xe2e9, 0xe2f5, 0xe2a2,
+ 0xe171, 0xe064, 0xe07d, 0xe008, 0xde28, 0xdc78,
+ 0xdc62, 0xdc7a, 0xdb3a, 0xdac0, 0xdb53, 0xdada,
+ 0xdc16, 0xe0be, 0xe454, 0xe47d, 0xe2ac, 0xe0ec,
+ 0xe01c, 0xdd79, 0xd970, 0xd93c, 0xdb2f, 0xda18,
+ 0xd75f, 0xd637, 0xd7e3, 0xdbac, 0xdeb5, 0xe130,
+ 0xe413, 0xe484, 0xe255, 0xe076, 0xded7, 0xdca8,
+ 0xdb0c, 0xdb6d, 0xddca, 0xe083, 0xe214, 0xe0e6,
+ 0xdc32, 0xd6bb, 0xd334, 0xd2a2, 0xd637, 0xdaac,
+ 0xdb18, 0xd8df, 0xd679, 0xd3f1, 0xd1d2, 0xcfa2,
+ 0xce26, 0xcf35, 0xd10c, 0xd32a, 0xd613, 0xd5eb,
+ 0xd278, 0xd079, 0xd0b3, 0xd271, 0xd530, 0xd63a,
+ 0xd582, 0xd4bd, 0xd2df, 0xcf8d, 0xcce6, 0xcc9b,
+ 0xcdff, 0xcf53, 0xd105, 0xd338, 0xd428, 0xd4e1,
+ 0xd750, 0xda80, 0xdd47, 0xde5e, 0xdcf8, 0xda2c,
+ 0xd695, 0xd36f, 0xd1d3, 0xd09f, 0xd28d, 0xd9ea,
+ 0xdfdb, 0xe02c, 0xdeff, 0xde48, 0xdeb3, 0xe184,
+ 0xe438, 0xe420, 0xe0d4, 0xdb70, 0xd7aa, 0xd777,
+ 0xd9d2, 0xde19, 0xe180, 0xe09a, 0xdcb2, 0xd9a3,
+ 0xda09, 0xdd63, 0xe0ca, 0xe26c, 0xe1d7, 0xe006,
+ 0xded4, 0xddab, 0xdca1, 0xddc9, 0xdf6b, 0xdf10,
+ 0xdd3e, 0xdaae, 0xd9b9, 0xdad6, 0xda17, 0xd86d,
+ 0xd8bb, 0xd7fa, 0xd590, 0xd481, 0xd499, 0xd586,
+ 0xd73a, 0xd818, 0xd7e7, 0xd6d8, 0xd5b7, 0xd654,
+ 0xd79f, 0xd8c2, 0xdb5d, 0xde33, 0xdef4, 0xde64,
+ 0xddc9, 0xdd1f, 0xdc52, 0xdc99, 0xde06, 0xddba,
+ 0xdbdc, 0xdb6a, 0xdbff, 0xddba, 0xe166, 0xe45c,
+ 0xe6c6, 0xea26, 0xeb08, 0xe89c, 0xe69e, 0xe661,
+ 0xe729, 0xe6de, 0xe514, 0xe591, 0xe824, 0xe8e1,
+ 0xe824, 0xe6d3, 0xe51c, 0xe53e, 0xe61d, 0xe4a4,
+ 0xe29b, 0xe2e3, 0xe48b, 0xe557, 0xe516, 0xe469,
+ 0xe2d6, 0xe1aa, 0xe300, 0xe4e8, 0xe569, 0xe558,
+ 0xe46c, 0xe2c2, 0xe1ce, 0xe240, 0xe494, 0xe696,
+ 0xe5cc, 0xe55d, 0xe70c, 0xe825, 0xe900, 0xea3a,
+ 0xea3e, 0xe9cd, 0xe93b, 0xe7e4, 0xe76d, 0xe837,
+ 0xe977, 0xebd5, 0xeea2, 0xf000, 0xeed6, 0xeaf8,
+ 0xe6fe, 0xe70f, 0xebec, 0xf1b7, 0xf523, 0xf71b,
+ 0xf757, 0xf3a4, 0xf031, 0xf2ef, 0xf940, 0xfce9,
+ 0xfbc9, 0xf891, 0xf6b5, 0xf4c2, 0xf177, 0xf076,
+ 0xf280, 0xf5cd, 0xfa41, 0xfd42, 0xfe4c, 0x012e,
+ 0x0384, 0x00d9, 0xfc79, 0xfa4b, 0xf994, 0xf89d,
+ 0xf6b8, 0xf4c4, 0xf35d, 0xf2a4, 0xf3e1, 0xf662,
+ 0xf883, 0xfb98, 0xff52, 0x005e, 0xfe63, 0xfc8b,
+ 0xfd1a, 0xfde1, 0xfb87, 0xf7e8, 0xf5f9, 0xf574,
+ 0xf66a, 0xf783, 0xf73d, 0xf8b1, 0xfb96, 0xfb62,
+ 0xfa07, 0xfad2, 0xfc4b, 0xfec1, 0x0270, 0x0418,
+ 0x027c, 0xff60, 0xfd49, 0xfdd7, 0xffad, 0x019c,
+ 0x03fe, 0x04dc, 0x02bc, 0x00aa, 0x01c7, 0x052d,
+ 0x084e, 0x09aa, 0x08e1, 0x073a, 0x06c3, 0x0738,
+ 0x0780, 0x0788, 0x066a, 0x04d0, 0x04f8, 0x067a,
+ 0x099b, 0x0ea9, 0x110c, 0x0f30, 0x0d20, 0x0c3e,
+ 0x0cc0, 0x0e2d, 0x0d5b, 0x0ae8, 0x098f, 0x0834,
+ 0x05e9, 0x03da, 0x04d3, 0x0a57, 0x0e8d, 0x0d2b,
+ 0x0bce, 0x0d6a, 0x0d7e, 0x0b85, 0x0c4e, 0x0ffe,
+ 0x103a, 0x0b5f, 0x06ce, 0x0436, 0x03bc, 0x082a,
+ 0x0e67, 0x10bf, 0x0f8f, 0x0d17, 0x0b68, 0x0bbf,
+ 0x0cd7, 0x0e7d, 0x103d, 0x110e, 0x12cf, 0x1430,
+ 0x1217, 0x0fa4, 0x0e49, 0x0b80, 0x0945, 0x0954,
+ 0x09fb, 0x0bf7, 0x110b, 0x17b0, 0x1b6f, 0x1a93,
+ 0x196e, 0x18fa, 0x14d7, 0x0ea6, 0x0c02, 0x0dd2,
+ 0x1135, 0x11ee, 0x0fc5, 0x0f8e, 0x1133, 0x1114,
+ 0x1098, 0x10e1, 0x102b, 0x0e76, 0x0c00, 0x09de,
+ 0x09ef, 0x09a0, 0x0759, 0x06ff, 0x08f9, 0x0a22,
+ 0x0a38, 0x0982, 0x0982, 0x0c67, 0x0ed9, 0x0e38,
+ 0x0e0f, 0x0ee1, 0x0df3, 0x0c5b, 0x0b1c, 0x0997,
+ 0x0985, 0x0af9, 0x0a88, 0x0803, 0x0627, 0x04f8,
+ 0x04b9, 0x07f3, 0x0df0, 0x12be, 0x1325, 0x0eed,
+ 0x0a90, 0x09cb, 0x0b4e, 0x0d67, 0x0e30, 0x0cdf,
+ 0x0d08, 0x0e06, 0x0c23, 0x0b3d, 0x0f31, 0x15cf,
+ 0x1b7d, 0x1bfd, 0x1862, 0x1604, 0x150b, 0x1588,
+ 0x1787, 0x1701, 0x153a, 0x14b9, 0x12d8, 0x10c9,
+ 0x10e9, 0x1300, 0x1687, 0x172c, 0x14f5, 0x1413,
+ 0x111c, 0x0d7e, 0x0fa2, 0x1242, 0x10f1, 0x0e6f,
+ 0x0bc8, 0x0cb9, 0x1166, 0x1404, 0x153e, 0x1680,
+ 0x170c, 0x1750, 0x135b, 0x0d46, 0x0dab, 0x1147,
+ 0x1122, 0x0d9d, 0x094f, 0x0815, 0x097a, 0x0ac4,
+ 0x0dc8, 0x1027, 0x1010, 0x11ea, 0x131e, 0x0fe5,
+ 0x0b8b, 0x089c, 0x09af, 0x0dbe, 0x109a, 0x1465,
+ 0x16a6, 0x1216, 0x0d52, 0x0ba8, 0x0998, 0x0a0e,
+ 0x0d37, 0x0f6a, 0x103a, 0x0edc, 0x0dae, 0x0eb0,
+ 0x0e8b, 0x0e5e, 0x0fdb, 0x0fb7, 0x0db7, 0x0a3a,
+ 0x0534, 0x01b1, 0x0113, 0x03ee, 0x09f6, 0x1008,
+ 0x14bf, 0x1568, 0x1157, 0x0f87, 0x0f62, 0x0b34,
+ 0x07eb, 0x0827, 0x081b, 0x093c, 0x0b53, 0x0b53,
+ 0x0a2a, 0x0956, 0x0b00, 0x0e8a, 0x0ec0, 0x0d4b,
+ 0x0e1f, 0x0e36, 0x0dc5, 0x0ee5, 0x0e65, 0x0da5,
+ 0x1045, 0x11f9, 0x0ffe, 0x0e3b, 0x0e3a, 0x0e70,
+ 0x0e91, 0x0fe6, 0x13ca, 0x182e, 0x1992, 0x17f3,
+ 0x1466, 0x10a6, 0x1013, 0x12b3, 0x1640, 0x18cb,
+ 0x1755, 0x1379, 0x11b6, 0x11ed, 0x14ed, 0x19a4,
+ 0x1960, 0x170e, 0x1993, 0x1bb0, 0x199d, 0x1681,
+ 0x12e0, 0x10ae, 0x1173, 0x12ac, 0x1428, 0x1501,
+ 0x14c6, 0x1884, 0x1f43, 0x2110, 0x1cc7, 0x16bb,
+ 0x11ac, 0x0f19, 0x0ec6, 0x0ea7, 0x0edc, 0x122e,
+ 0x16af, 0x1699, 0x1292, 0x0fde, 0x11f9, 0x18b3,
+ 0x1d4a, 0x1c4b, 0x1b3d, 0x1a75, 0x1727, 0x1381,
+ 0x0f82, 0x0d07, 0x0fa7, 0x1347, 0x15c1, 0x1825,
+ 0x177a, 0x15f3, 0x1656, 0x156e, 0x148f, 0x1463,
+ 0x1216, 0x10e3, 0x11f6, 0x12ce, 0x154d, 0x18e7,
+ 0x1b1c, 0x1bb5, 0x18c1, 0x1343, 0x0f4f, 0x0e7d,
+ 0x1284, 0x197e, 0x1d80, 0x1dc0, 0x1c83, 0x1b08,
+ 0x1984, 0x16b6, 0x1448, 0x132b, 0x0ffc, 0x0c78,
+ 0x0c2b, 0x0d31, 0x0e4d, 0x0e2d, 0x0d0f, 0x1050,
+ 0x15bd, 0x1653, 0x1484, 0x1332, 0x110a, 0x0ece,
+ 0x0bd0, 0x0933, 0x0a65, 0x0bc3, 0x0a9e, 0x0a70,
+ 0x0b32, 0x0cd2, 0x105e, 0x11e3, 0x1038, 0x0d7b,
+ 0x07f3, 0x0090, 0xfad1, 0xf7ba, 0xf8db, 0xfbf3,
+ 0xfcff, 0xfe75, 0xffea, 0xfdb9, 0xfaca, 0xf7eb,
+ 0xf449, 0xf482, 0xf71a, 0xf785, 0xf761, 0xf421,
+ 0xec6b, 0xe94e, 0xeee8, 0xf80d, 0xfe4d, 0xfb29,
+ 0xf032, 0xe792, 0xe545, 0xe5a0, 0xe69a, 0xe8b6,
+ 0xead8, 0xea5c, 0xe735, 0xe38b, 0xe0da, 0xdfb0,
+ 0xdef0, 0xde58, 0xdf6a, 0xe0a5, 0xdfe9, 0xdda5,
+ 0xdb4d, 0xdce9, 0xe393, 0xe9db, 0xec70, 0xea1f,
+ 0xe426, 0xe211, 0xe5bc, 0xe9e6, 0xed08, 0xed39,
+ 0xea18, 0xe7cd, 0xe6b9, 0xe8c5, 0xf01b, 0xf560,
+ 0xf53e, 0xf3c1, 0xf0d6, 0xecf0, 0xe7fa, 0xe181,
+ 0xdffb, 0xe3f8, 0xe781, 0xebe7, 0xf0e0, 0xf3f1,
+ 0xf74b, 0xf91a, 0xf962, 0xfb70, 0xf9a1, 0xf3cb,
+ 0xf443, 0xfab7, 0xffdd, 0x0208, 0x0265, 0x0337,
+ 0x0368, 0x0068, 0xfebd, 0x022f, 0x07d3, 0x0ce9,
+ 0x0f73, 0x0df0, 0x0a03, 0x06bf, 0x05ba, 0x054c,
+ 0x055a, 0x08e1, 0x0c01, 0x0879, 0x0217, 0xfe22,
+ 0xfce0, 0xff4a, 0x044e, 0x092c, 0x0d32, 0x0dfb,
+ 0x0b7c, 0x0b3b, 0x0dc8, 0x0e66, 0x0cc9, 0x0b82,
+ 0x0a72, 0x07d4, 0x0464, 0x0363, 0x0451, 0x03d6,
+ 0x0342, 0x04ec, 0x064e, 0x05e2, 0x06a3, 0x0933,
+ 0x093e, 0x0606, 0x0471, 0x0472, 0x0244, 0x003f,
+ 0x0189, 0x061e, 0x0db0, 0x1236, 0x0dac, 0x05fe,
+ 0x020e, 0x00d8, 0x0144, 0x02c3, 0x0317, 0x00fc,
+ 0xfd9f, 0xfc2b, 0xfcc6, 0xfd60, 0xff4a, 0x0135,
+ 0x0103, 0x032b, 0x069d, 0x04c6, 0x00ff, 0x0126,
+ 0x0478, 0x0779, 0x05d4, 0x00ea, 0xfe46, 0xfe8b,
+ 0x02a9, 0x0985, 0x0b8d, 0x07e4, 0x0337, 0xffe6,
+ 0x015e, 0x052f, 0x0682, 0x08a9, 0x0a87, 0x0849,
+ 0x05ed, 0x0345, 0xfefe, 0xfbe3, 0xf6d6, 0xf231,
+ 0xf43b, 0xf56c, 0xf355, 0xf4cd, 0xf55d, 0xf381,
+ 0xf502, 0xf553, 0xf077, 0xe9bb, 0xe495, 0xe6b3,
+ 0xee64, 0xf20e, 0xf1ed, 0xf31e, 0xf4ba, 0xf519,
+ 0xf44d, 0xf38b, 0xf28e, 0xeee7, 0xe974, 0xe476,
+ 0xe227, 0xe529, 0xe9d8, 0xebd9, 0xec2a, 0xe987,
+ 0xe504, 0xe492, 0xe90f, 0xf01a, 0xf51d, 0xf3a1,
+ 0xf00d, 0xecb5, 0xe7ce, 0xe7f5, 0xed27, 0xedb3,
+ 0xecb8, 0xf18d, 0xf7ee, 0xf911, 0xf3cc, 0xed94,
+ 0xebbf, 0xec83, 0xecda, 0xeb1d, 0xe77c, 0xe5fc,
+ 0xe6b8, 0xe6ec, 0xe7ed, 0xe9a6, 0xeaf5, 0xec4c,
+ 0xebdb, 0xe938, 0xe5b1, 0xe1e6, 0xe0ac, 0xe18f,
+ 0xe164, 0xe310, 0xe883, 0xed28, 0xedb3, 0xec49,
+ 0xec9b, 0xecae, 0xe9a3, 0xe737, 0xe610, 0xe497,
+ 0xe707, 0xeb9b, 0xebae, 0xe8bf, 0xe63a, 0xe53f,
+ 0xe58d, 0xe545, 0xe714, 0xeba7, 0xeca6, 0xe93d,
+ 0xe4e1, 0xe218, 0xe41b, 0xe6b2, 0xe5de, 0xe9a6,
+ 0xf409, 0xfab2, 0xf8d6, 0xf2e1, 0xef24, 0xefd9,
+ 0xf1b3, 0xf1ff, 0xf084, 0xee22, 0xecc1, 0xec87,
+ 0xed1d, 0xf003, 0xf465, 0xf558, 0xf09a, 0xec6a,
+ 0xedeb, 0xeffd, 0xefb8, 0xf090, 0xefc3, 0xe9a1,
+ 0xe24a, 0xde3a, 0xde45, 0xe1c6, 0xe81f, 0xeeb1,
+ 0xefd6, 0xec7c, 0xea5c, 0xe876, 0xe771, 0xe9e8,
+ 0xe965, 0xe4be, 0xe405, 0xe66a, 0xe7bf, 0xe97c,
+ 0xebf2, 0xef0f, 0xf250, 0xf2d5, 0xf103, 0xee87,
+ 0xebe2, 0xec55, 0xf0b5, 0xf504, 0xf687, 0xf17f,
+ 0xe60a, 0xe233, 0xece6, 0xf605, 0xf597, 0xf72e,
+ 0xfb25, 0xf8e7, 0xf535, 0xf5c6, 0xf6d7, 0xf6a7,
+ 0xf646, 0xf44e, 0xf108, 0xefa6, 0xeff5, 0xeffa,
+ 0xf17e, 0xf38b, 0xf334, 0xf401, 0xf657, 0xf667,
+ 0xf50f, 0xef14, 0xe43b, 0xde22, 0xdb1c, 0xd82f,
+ 0xdd0f, 0xe3df, 0xe661, 0xed29, 0xf463, 0xf498,
+ 0xf2d7, 0xeed2, 0xe8b4, 0xe6eb, 0xe8b4, 0xeb4a,
+ 0xec8d, 0xea7b, 0xe7b6, 0xe339, 0xdc32, 0xd93a,
+ 0xdd94, 0xe807, 0xf24a, 0xf32e, 0xee43, 0xeb24,
+ 0xeacc, 0xeef1, 0xf258, 0xeec9, 0xea2d, 0xe82f,
+ 0xe9f9, 0xf04a, 0xf15e, 0xec01, 0xea77, 0xeaf8,
+ 0xeae3, 0xee7c, 0xf3a3, 0xf7c9, 0xfad8, 0xfadd,
+ 0xf832, 0xf41c, 0xf066, 0xeec3, 0xed85, 0xed00,
+ 0xee6c, 0xf132, 0xf707, 0xfdcb, 0x006b, 0xffd1,
+ 0xfdd9, 0xfc34, 0xfded, 0x02bf, 0x08fe, 0x0ba5,
+ 0x0655, 0x00db, 0x019d, 0x0343, 0x030d, 0x020f,
+ 0x006e, 0xff31, 0xfdac, 0xfe21, 0x0447, 0x0944,
+ 0x0602, 0x0154, 0x0260, 0x048f, 0x03b3, 0x0374,
+ 0x02e8, 0xfeed, 0xfe23, 0x0147, 0xffad, 0xfc97,
+ 0xfd82, 0xffff, 0x07f3, 0x12ec, 0x121b, 0x0762,
+ 0x015a, 0x00b1, 0xffb8, 0xffe9, 0x0335, 0x0650,
+ 0x05c5, 0x032b, 0x0179, 0x0039, 0xfddc, 0xfaf5,
+ 0xfa7a, 0xff95, 0x091a, 0x1085, 0x1175, 0x100b,
+ 0x10ba, 0x0f98, 0x0983, 0x02c8, 0xfe75, 0xfd0a,
+ 0x0233, 0x0dca, 0x16cd, 0x17f0, 0x1500, 0x0fce,
+ 0x085b, 0x032b, 0x02fc, 0x070e, 0x0d7e, 0x1018,
+ 0x0b2b, 0x0340, 0xfe0b, 0xfeff, 0x051e, 0x0c94,
+ 0x1507, 0x1b26, 0x1936, 0x139c, 0x10fa, 0x0f8e,
+ 0x0c5b, 0x08d3, 0x0788, 0x0581, 0xfff2, 0xfd6d,
+ 0x00c2, 0x03f9, 0x055a, 0x04bc, 0x00ce, 0xfa74,
+ 0xf41e, 0xf591, 0xfe5a, 0x00bf, 0xfe55, 0x0003,
+ 0xfdc2, 0xf3c4, 0xeb69, 0xec3f, 0xf74e, 0x02aa,
+ 0x067c, 0x077d, 0x08e0, 0x0c75, 0x10dc, 0x0f10,
+ 0x0bb8, 0x09f5, 0x0394, 0x016a, 0x05b2, 0x012d,
+ 0xf923, 0xf9de, 0xfe3b, 0x03a4, 0x095d, 0x0a72,
+ 0x0933, 0x09ba, 0x0b43, 0x0c60, 0x0d78, 0x0ddb,
+ 0x085b, 0xfed6, 0xfb76, 0xfeea, 0x031c, 0x048e,
+ 0x03a5, 0x0675, 0x0b63, 0x0a9f, 0x07bf, 0x06a5,
+ 0x05f4, 0x070b, 0x074b, 0x0501, 0x01d8, 0xfca5,
+ 0xf95e, 0xf9f6, 0xfb38, 0xfec1, 0xfdb7, 0xf55c,
+ 0xf657, 0xfe46, 0xfb7f, 0xf468, 0xf644, 0xff6b,
+ 0x057e, 0x04b7, 0x084f, 0x0f17, 0x0afa, 0x0198,
+ 0xfb2c, 0xf69c, 0xf77c, 0xfacd, 0xffe3, 0x0b64,
+ 0x11eb, 0x0f80, 0x0e17, 0x0b65, 0x080e, 0x0742,
+ 0x02fe, 0x0061, 0x0366, 0x0379, 0x00f7, 0xfdcb,
+ 0xfa56, 0xfd5d, 0x03c0, 0x068c, 0x06a4, 0x0340,
+ 0x0047, 0x01d3, 0xfffa, 0xfae0, 0xfdb7, 0x042a,
+ 0xff0b, 0xf180, 0xec88, 0xf0cc, 0xf5cc, 0xfd4f,
+ 0x0381, 0x022b, 0x00c7, 0x01c6, 0x023e, 0x0505,
+ 0x03b3, 0xfa11, 0xf36b, 0xf0d9, 0xe966, 0xe305,
+ 0xe9cb, 0xf8bc, 0x00b2, 0x0187, 0x04e4, 0x0942,
+ 0x0a01, 0x075a, 0x01e9, 0xff20, 0x0227, 0x042e,
+ 0x007f, 0xfb20, 0xfbe7, 0x0292, 0x0421, 0xfe89,
+ 0xfa9a, 0xfc03, 0x0000, 0xff6b, 0xf965, 0xf7f9,
+ 0xfc1f, 0x008e, 0x0546, 0x0527, 0xfe47, 0xf6dc,
+ 0xef48, 0xe857, 0xe50e, 0xe5f9, 0xeed8, 0xfc64,
+ 0x0407, 0x033f, 0xfeaf, 0xff2e, 0x0373, 0xff0a,
+ 0xf9a9, 0xfd51, 0xfd77, 0xf988, 0xfa27, 0xfc88,
+ 0x0256, 0x05cc, 0xfee6, 0xfbf4, 0x0001, 0xfd84,
+ 0xf715, 0xf28f, 0xf2ed, 0xf9e4, 0xfefe, 0x041b,
+ 0x0cca, 0x0c69, 0x0825, 0x0ce9, 0x0f0f, 0x08eb,
+ 0x0393, 0x008e, 0xfe24, 0xfa42, 0xf8df, 0x0341,
+ 0x1150, 0x15dc, 0x13cc, 0x0ee0, 0x087f, 0x060b,
+ 0x0846, 0x0a1a, 0x0684, 0x008f, 0x0194, 0x0821,
+ 0x0bb3, 0x0a9f, 0x05d9, 0x020b, 0x04de, 0x0802,
+ 0x04c8, 0x02c1, 0x09d4, 0x12f3, 0x117c, 0x08d0,
+ 0x0643, 0x077c, 0x055e, 0x0644, 0x0a91, 0x0a6d,
+ 0x0ab8, 0x1019, 0x1194, 0x0cbf, 0x09e1, 0x0a45,
+ 0x09a0, 0x072d, 0x03fb, 0x03af, 0x0a25, 0x12b1,
+ 0x16b5, 0x17a7, 0x17a6, 0x167a, 0x15e1, 0x1405,
+ 0x0f2a, 0x0d95, 0x0f6d, 0x0bc7, 0x0521, 0x037c,
+ 0x0334, 0x029d, 0x07f0, 0x1048, 0x1229, 0x0c6d,
+ 0x05f1, 0x0344, 0xff32, 0xf61e, 0xf113, 0xf42e,
+ 0xf989, 0x0107, 0x0744, 0x03d8, 0xfb87, 0xf4e2,
+ 0xf0af, 0xf474, 0xfb3b, 0xf802, 0xf0d3, 0xf1d7,
+ 0xfa46, 0x0252, 0x0066, 0xf815, 0xf64c, 0xf656,
+ 0xf2f3, 0xf75f, 0x01df, 0x05a0, 0x02dd, 0xfcb1,
+ 0xf500, 0xf380, 0xf8e4, 0xf9c9, 0xf214, 0xef0d,
+ 0xf6d3, 0xfb4e, 0xfa1a, 0xfe14, 0x0101, 0xfeb6,
+ 0xff7e, 0xfd26, 0xf663, 0xfa61, 0x039a, 0x039a,
+ 0x0034, 0xff40, 0xff86, 0x0184, 0x00cd, 0xfdd2,
+ 0x00af, 0x0590, 0x05fb, 0x0837, 0x0d1c, 0x0d2c,
+ 0x0b29, 0x0a81, 0x05b7, 0xffd5, 0x0031, 0x0285,
+ 0x0493, 0x08c3, 0x092e, 0x056c, 0x078b, 0x0f5c,
+ 0x128a, 0x0c91, 0x0423, 0x02f4, 0x0603, 0x0426,
+ 0x0152, 0x0430, 0x0841, 0x0adf, 0x0ffd, 0x14d1,
+ 0x1328, 0x0f89, 0x0eb6, 0x0afd, 0x0600, 0x0627,
+ 0x03be, 0xfdd7, 0x0063, 0x0654, 0x06c3, 0x0733,
+ 0x04ef, 0xfc9c, 0xf963, 0xfa04, 0xf3f8, 0xeeae,
+ 0xefe3, 0xee29, 0xeb0a, 0xefd4, 0xf759, 0xfb75,
+ 0xfeb9, 0xff59, 0xfe2d, 0x015a, 0x0328, 0xfe05,
+ 0xf9e9, 0xf91f, 0xf786, 0xf6cc, 0xf733, 0xf94f,
+ 0xffc9, 0x055b, 0x04bd, 0xfec3, 0xf317, 0xe726,
+ 0xe6a0, 0xf196, 0xfa7c, 0xf83e, 0xf0ac, 0xebc0,
+ 0xe93a, 0xece2, 0xf952, 0xffce, 0xf9f6, 0xf8db,
+ 0x01bb, 0x0798, 0x064a, 0x01b2, 0xfec3, 0x02d5,
+ 0x07fa, 0x04c2, 0xfda4, 0xfa26, 0xfc1c, 0x03e3,
+ 0x0b8a, 0x0cc7, 0x0ba3, 0x0bf8, 0x0bc8, 0x0a1e,
+ 0x07c8, 0x0814, 0x0bda, 0x0a76, 0xff91, 0xf59d,
+ 0xf70c, 0x016d, 0x0a57, 0x0c4e, 0x0bc0, 0x0d7c,
+ 0x1183, 0x16c6, 0x1981, 0x14c7, 0x0b1e, 0x055a,
+ 0x07ff, 0x0dfc, 0x0d37, 0x01ae, 0xf4e5, 0xf1c2,
+ 0xf4fd, 0xf8a8, 0xff9d, 0x08f3, 0x0f31, 0x1082,
+ 0x0bba, 0x0580, 0x03a0, 0xff50, 0xf628, 0xf263,
+ 0xf58e, 0xf8d1, 0xfa67, 0xfef8, 0x089e, 0x0c73,
+ 0x052f, 0xff68, 0xfe9e, 0xfc1d, 0xf538, 0xe721,
+ 0xdce9, 0xe3de, 0xed82, 0xee59, 0xed96, 0xeb68,
+ 0xebc8, 0xf3ac, 0xf748, 0xf2ee, 0xef6a, 0xee87,
+ 0xee7d, 0xea18, 0xdf01, 0xd6fb, 0xd90b, 0xe177,
+ 0xe745, 0xe8ec, 0xf10f, 0xfa6b, 0xf562, 0xeb76,
+ 0xe7d6, 0xe6ac, 0xeb2a, 0xf4aa, 0xfbf7, 0xffa1,
+ 0xfbcd, 0xf663, 0xfa75, 0xfd70, 0xf7be, 0xf3e7,
+ 0xf65b, 0xfca5, 0x00f5, 0x0065, 0x033b, 0x0909,
+ 0x0a97, 0x09c6, 0x07f1, 0x0a3e, 0x1183, 0x1007,
+ 0x0bce, 0x1035, 0x0d98, 0x045f, 0x0367, 0x00e7,
+ 0xf832, 0xefa5, 0xe7c1, 0xedd3, 0x03a7, 0x1258,
+ 0x1762, 0x1bf2, 0x1ceb, 0x1d7e, 0x1e47, 0x18ac,
+ 0x1194, 0x0c83, 0x07d5, 0x0885, 0x0cfe, 0x0def,
+ 0x0ab4, 0x0551, 0x032e, 0x05e6, 0x05ec, 0x0598,
+ 0x0ac8, 0x0dac, 0x0d2d, 0x10bb, 0x12af, 0x0d33,
+ 0x06c4, 0x0546, 0x08bc, 0x0ba2, 0x0926, 0x05d6,
+ 0x03fe, 0xffe3, 0xfde5, 0x0336, 0x0b83, 0x124d,
+ 0x1536, 0x13e6, 0x12fd, 0x123e, 0x0ad8, 0xfcb2,
+ 0xf029, 0xedef, 0xf6ea, 0x02d7, 0x0c45, 0x11f4,
+ 0x0e88, 0x0431, 0xfdc6, 0xf7a0, 0xeb07, 0xe5c6,
+ 0xf027, 0xfc50, 0x01d8, 0x0297, 0xffd9, 0x00c4,
+ 0x068e, 0x0665, 0x02b5, 0x0521, 0x07f9, 0x05ad,
+ 0x0104, 0xfa00, 0xf2c7, 0xed85, 0xe6d5, 0xe19a,
+ 0xe458, 0xedea, 0xfa5b, 0x03c0, 0x03ab, 0xfd9a,
+ 0xfa13, 0xfafc, 0xfc86, 0xfb9f, 0xfb02, 0xfe19,
+ 0x018c, 0x02ac, 0x02ba, 0x0096, 0xfc46, 0xf82b,
+ 0xf4f2, 0xf47f, 0xf6c0, 0xf849, 0xfa9d, 0xfd98,
+ 0xfc38, 0xf965, 0xf83e, 0xf6a0, 0xfc24, 0x0b74,
+ 0x14cf, 0x1377, 0x10f3, 0x0c14, 0x0230, 0xf75f,
+ 0xec26, 0xe5e2, 0xece4, 0xfa68, 0x03ec, 0x081f,
+ 0x04cc, 0xfcf6, 0xfd65, 0x041b, 0x031d, 0xff2c,
+ 0x0218, 0x0348, 0xfeed, 0xfdd7, 0xfddf, 0xf8de,
+ 0xf2a6, 0xeda0, 0xe93f, 0xe9e4, 0xf3cb, 0x015a,
+ 0x06f9, 0x0596, 0x05a9, 0x0346, 0xff30, 0x02b7,
+ 0x04e6, 0x007a, 0x03a2, 0x0a64, 0x07e3, 0x0256,
+ 0xfdfb, 0xfc69, 0x0450, 0x0f0f, 0x13b6, 0x13bd,
+ 0x0f31, 0x09a5, 0x0797, 0x05d4, 0x0394, 0xff17,
+ 0xf71c, 0xf4e5, 0xfa6e, 0x01a0, 0x09ef, 0x0ce5,
+ 0x072f, 0x0032, 0xf6f2, 0xf07a, 0xf897, 0x02af,
+ 0x030c, 0x0325, 0x0304, 0x0090, 0x0272, 0x02d0,
+ 0xfe79, 0x0002, 0x04b9, 0x027c, 0xfc77, 0xf64c,
+ 0xedb9, 0xe634, 0xe56d, 0xea10, 0xef92, 0xf0b8,
+ 0xebb5, 0xebce, 0xf71f, 0xfea7, 0xfe08, 0x0089,
+ 0x0232, 0xff9b, 0xffac, 0xfc5b, 0xf4de, 0xf4e8,
+ 0xf6ca, 0xf2ca, 0xf1d2, 0xf749, 0xfcb7, 0xfcc5,
+ 0xf762, 0xf1d6, 0xedd6, 0xec88, 0xf0b8, 0xf598,
+ 0xfabb, 0x033f, 0x0660, 0x0316, 0x0180, 0x00ad,
+ 0x04ae, 0x0c63, 0x088d, 0xfebd, 0xf9e8, 0xf2c1,
+ 0xf071, 0xf9ad, 0xffee, 0x072c, 0x16e8, 0x1c1b,
+ 0x1378, 0x0cf6, 0x0814, 0x0245, 0xff7d, 0xfc19,
+ 0xf760, 0xf6b3, 0xf8f2, 0xfbb3, 0x015f, 0x06bb,
+ 0x023a, 0xf5be, 0xebe3, 0xe511, 0xe2f2, 0xef46,
+ 0x01db, 0x09ff, 0x0c4c, 0x0fd3, 0x0f75, 0x0c82,
+ 0x0a56, 0x04ea, 0xfe52, 0xfc27, 0xfbe7, 0xfc60,
+ 0x0172, 0x0876, 0x0b52, 0x0ab3, 0x088a, 0x0489,
+ 0x01a7, 0x0162, 0x00cb, 0xffce, 0xfe5c, 0xf969,
+ 0xf03e, 0xe340, 0xd8a7, 0xdd49, 0xec45, 0xf09c,
+ 0xe78b, 0xdd70, 0xd874, 0xdc40, 0xe4a1, 0xe3c8,
+ 0xdbe9, 0xdba5, 0xe446, 0xf266, 0x04c5, 0x125e,
+ 0x1873, 0x1d8b, 0x1e57, 0x19a2, 0x1752, 0x1402,
+ 0x0c67, 0x06f9, 0xfdeb, 0xebb0, 0xdd06, 0xd9a9,
+ 0xdf9d, 0xef09, 0x0244, 0x0dd7, 0x0a10, 0xfd47,
+ 0xf904, 0xfb4c, 0xf5fb, 0xf2a4, 0xfa36, 0x01e7,
+ 0x06b4, 0x09e6, 0x0c34, 0x140d, 0x17d4, 0x0d20,
+ 0x023b, 0xfec6, 0xfea4, 0x0215, 0x0066, 0xf9c5,
+ 0xfcee, 0x03fe, 0x06a9, 0x0c99, 0x0ed5, 0x04fa,
+ 0xfd5b, 0x02a8, 0x0b7a, 0x0892, 0xfeea, 0x0764,
+ 0x1e3f, 0x25cb, 0x2089, 0x2035, 0x1ec3, 0x1936,
+ 0x159a, 0x0e6f, 0x0358, 0xfcfb, 0xfad9, 0xfc7d,
+ 0x04be, 0x0b8c, 0x0a4a, 0x08cb, 0x0b1e, 0x0a5a,
+ 0x0675, 0x08f0, 0x12b4, 0x1595, 0x096c, 0xfdb5,
+ 0x00d6, 0x07ab, 0x0972, 0x114e, 0x1ea5, 0x2259,
+ 0x1cd8, 0x188f, 0x1733, 0x15ee, 0x12d4, 0x0f0b,
+ 0x0e4c, 0x0ff0, 0x0f80, 0x0b3d, 0x06d8, 0x05c4,
+ 0x020d, 0xf94d, 0xf6b2, 0xfbbc, 0x0111, 0x09fc,
+ 0x12b4, 0x10de, 0x0913, 0x018c, 0xff0e, 0x025d,
+ 0xfa1e, 0xedca, 0xfd38, 0x1499, 0x12ff, 0x0d3c,
+ 0x10a0, 0x0e4f, 0x0945, 0x058a, 0xffc2, 0xfe21,
+ 0x01e2, 0x0722, 0x0a68, 0x056b, 0xfabb, 0xf06c,
+ 0xe9d2, 0xec47, 0xf257, 0xf425, 0xf3d8, 0xee61,
+ 0xe471, 0xdd70, 0xda6a, 0xe31d, 0xf395, 0xf53d,
+ 0xf28e, 0x0062, 0x0c53, 0x051e, 0xf1db, 0xe0f5,
+ 0xe185, 0xed2c, 0xf416, 0xfac7, 0x067c, 0x120a,
+ 0x13b7, 0x05eb, 0xf851, 0xf0cf, 0xe26e, 0xd9fa,
+ 0xdf3a, 0xe049, 0xe4a3, 0xf1ed, 0xf2f2, 0xe8d0,
+ 0xdf2a, 0xd8fe, 0xe0bc, 0xeee5, 0xf4f0, 0xfeb1,
+ 0x0f94, 0x1816, 0x145a, 0x0bd8, 0x06cd, 0x0300,
+ 0xfa2d, 0xf55e, 0xf909, 0xfdbf, 0x0322, 0x0388,
+ 0xfc57, 0xfb2a, 0xfc58, 0xf709, 0xfae0, 0x0844,
+ 0x0a7a, 0x01fd, 0xfa9b, 0xf5af, 0xf0cc, 0xec11,
+ 0xf20f, 0x08dc, 0x1b68, 0x19fa, 0x146d, 0x15bd,
+ 0x15ff, 0x133b, 0x104d, 0x0d11, 0x0bc0, 0x0baf,
+ 0x081d, 0x01e9, 0xff77, 0x0230, 0x01b3, 0xfc85,
+ 0xfe27, 0x03de, 0x0142, 0xfbde, 0xf95e, 0xf74a,
+ 0xfa4f, 0xfd58, 0xf676, 0xedb0, 0xe835, 0xe5c7,
+ 0xef60, 0x0041, 0x0884, 0x0897, 0x065e, 0x012a,
+ 0xfae7, 0xf735, 0xf347, 0xec1f, 0xeb84, 0xf73b,
+ 0x0051, 0xff1e, 0xfacc, 0xf316, 0xeb79, 0xeebf,
+ 0xfb65, 0x0835, 0x0f2f, 0x123a, 0x140d, 0x0b9a,
+ 0xfbe9, 0xf786, 0xf942, 0xf229, 0xe6fb, 0xe000,
+ 0xe160, 0xe96f, 0xf326, 0x01c0, 0x0d9a, 0x092d,
+ 0xff52, 0xfa58, 0xf7bd, 0xfaf1, 0xfe4a, 0xfd6c,
+ 0x046f, 0x0dc0, 0x0a50, 0x0149, 0xfc86, 0xfc8f,
+ 0xfe69, 0xfc09, 0xf617, 0xef0c, 0xe603, 0xe117,
+ 0xe1af, 0xe197, 0xe690, 0xf5e9, 0x0359, 0x02a2,
+ 0xf83f, 0xf5e2, 0x04c6, 0x130c, 0x0e3a, 0x01fd,
+ 0xfc4f, 0xf820, 0xf772, 0xfd71, 0xfc40, 0xf3bb,
+ 0xf235, 0xf48b, 0xf681, 0xfab0, 0xf9b8, 0xf591,
+ 0xfd98, 0x1347, 0x26a2, 0x253d, 0x1118, 0xfe84,
+ 0xf46b, 0xf2f2, 0xfcfd, 0x07e8, 0x0df9, 0x1336,
+ 0x139b, 0x15a9, 0x1dbe, 0x1bb4, 0x133e, 0x1289,
+ 0x1187, 0x11da, 0x1951, 0x1839, 0x0dc7, 0x08ce,
+ 0x0576, 0x01b9, 0x04fb, 0x0342, 0xf3dc, 0xeb62,
+ 0xf054, 0xf0e2, 0xf05c, 0xf458, 0xeea9, 0xe7df,
+ 0xf07a, 0xfe23, 0x0cbe, 0x1aff, 0x1a6b, 0x1211,
+ 0x0db9, 0x02a0, 0xf31d, 0xed7e, 0xed20, 0xe966,
+ 0xe650, 0xe773, 0xe8ef, 0xee45, 0xfc37, 0x035a,
+ 0xfe70, 0xfe4e, 0xfbb3, 0xeb15, 0xe096, 0xe65d,
+ 0xef5a, 0xf1b4, 0xed8c, 0xede8, 0xf1f6, 0xee11,
+ 0xede8, 0xf928, 0xff81, 0xfd60, 0xf9ea, 0xf750,
+ 0xf595, 0xf149, 0xedcc, 0xebcd, 0xe6c5, 0xe9ff,
+ 0xf366, 0xf47d, 0xf8f7, 0xfe72, 0xf702, 0xf676,
+ 0xfdff, 0xf9b7, 0xf2e0, 0xeb1b, 0xde7d, 0xddb2,
+ 0xe5ab, 0xeb49, 0xf22d, 0xf602, 0xf8af, 0xff73,
+ 0x04a5, 0x0cf8, 0x1565, 0x114c, 0x0b3f, 0x0b14,
+ 0x0b93, 0x0d57, 0x0979, 0x0039, 0xfd10, 0xfaab,
+ 0xf75c, 0xfa63, 0xfd41, 0xfb15, 0xf4c3, 0xf40d,
+ 0x0a43, 0x2507, 0x2896, 0x254b, 0x2436, 0x16a9,
+ 0x0a8c, 0x0fc7, 0x157a, 0x0e1f, 0x03f4, 0x0487,
+ 0x0f00, 0x1a68, 0x2328, 0x28b9, 0x2a15, 0x233d,
+ 0x1103, 0x00a3, 0xff8d, 0x04e9, 0x0718, 0x0619,
+ 0x02c7, 0x0117, 0xfea9, 0xfa72, 0x0044, 0x099f,
+ 0x055b, 0xff2c, 0x0242, 0x0263, 0xfb7a, 0xf402,
+ 0xf070, 0xf44b, 0xfa38, 0xfd37, 0x02e6, 0x073d,
+ 0xffe7, 0xf72d, 0xfcd2, 0x06da, 0x02a2, 0xf60d,
+ 0xf240, 0xf77f, 0xfcff, 0xfeb5, 0xfc9f, 0xfb4d,
+ 0xfc6e, 0xfb85, 0xf94f, 0xf8a2, 0xf7da, 0xf85f,
+ 0xfe5f, 0x08b4, 0x0b2e, 0xfcf3, 0xf0ba, 0xf4c6,
+ 0xf303, 0xe524, 0xe28f, 0xeb49, 0xf461, 0xfed8,
+ 0x0343, 0x0008, 0xfd6b, 0xf684, 0xea4b, 0xe05a,
+ 0xd845, 0xd45d, 0xd89d, 0xe32b, 0xf1a4, 0xfed1,
+ 0x0bff, 0x18c8, 0x12c7, 0xfd84, 0xf518, 0xf6bd,
+ 0xf2ae, 0xf0af, 0xf7bc, 0xff3f, 0xfc0a, 0xf33e,
+ 0xf395, 0xf66f, 0xf47c, 0xf7f7, 0xfcef, 0x015e,
+ 0x0f06, 0x17e6, 0x1372, 0x10c9, 0x0e5a, 0x06f6,
+ 0x00f0, 0xfc64, 0xfc0d, 0x01a8, 0x0a26, 0x14b1,
+ 0x1470, 0x08d1, 0x07e3, 0x0cbf, 0x0bfc, 0x1295,
+ 0x1b19, 0x18b8, 0x150c, 0x1385, 0x0e32, 0x0335,
+ 0xf8b6, 0xfc52, 0x071d, 0x0c63, 0x16c6, 0x2094,
+ 0x1af3, 0x140a, 0x0ecf, 0x020e, 0xfc5a, 0x026d,
+ 0x0669, 0x0497, 0xfe90, 0xfbb2, 0x000d, 0xfc4b,
+ 0xed1c, 0xe6da, 0xf0c7, 0xfbf1, 0xfc0a, 0xf7c5,
+ 0xf6ae, 0xf002, 0xe5bd, 0xe6bf, 0xed6e, 0xefe5,
+ 0xf413, 0xfb0a, 0x022b, 0x0ab8, 0x0e53, 0x06f5,
+ 0xfaa5, 0xf457, 0xf90d, 0x0256, 0x071e, 0x052e,
+ 0xff2d, 0xfa45, 0xf6e7, 0xf275, 0xf17d, 0xf2a9,
+ 0xefa4, 0xefe6, 0xf502, 0xf511, 0xf41f, 0xf48f,
+ 0xee23, 0xe50f, 0xe194, 0xe5ec, 0xef77, 0xf1f5,
+ 0xf032, 0xfbae, 0x0b3b, 0x0bad, 0xfee0, 0xeb7c,
+ 0xdad8, 0xd9a4, 0xe898, 0xff55, 0x1091, 0x1134,
+ 0x03cf, 0xf15c, 0xe5a0, 0xe690, 0xea85, 0xef87,
+ 0xf906, 0xfc91, 0xfc4f, 0x0435, 0x0be6, 0x0908,
+ 0xfd7b, 0xf316, 0xf525, 0xfaf1, 0xfc8b, 0x05c9,
+ 0x1056, 0x1032, 0x115d, 0x15af, 0x14c8, 0x11e3,
+ 0x0bac, 0x027d, 0xfe82, 0x0055, 0x0668, 0x0d05,
+ 0x0e2a, 0x0c04, 0x0ad5, 0x11d5, 0x21bc, 0x25f9,
+ 0x1ada, 0x1623, 0x1ab2, 0x2042, 0x2170, 0x13e1,
+ 0x0100, 0xfb52, 0xfb76, 0xf8f7, 0xfc0a, 0x099e,
+ 0x1b6b, 0x2338, 0x1ec0, 0x1d2f, 0x1d50, 0x10c4,
+ 0xfefa, 0xf766, 0xf7e5, 0xf989, 0xfd74, 0x0264,
+ 0x0150, 0xfd87, 0x0258, 0x0a0d, 0x0584, 0xfc53,
+ 0x0141, 0x0da0, 0x0e93, 0x07bb, 0x022e, 0xf99d,
+ 0xf413, 0xf9d2, 0xfc8c, 0xf7a5, 0xfc4d, 0x07d0,
+ 0x0b28, 0x0d2a, 0x13db, 0x14db, 0x1083, 0x0c02,
+ 0x00de, 0xf616, 0xf999, 0xfef1, 0xf92e, 0xefa6,
+ 0xe824, 0xea10, 0xf6f9, 0xfefb, 0x02e6, 0x0a1d,
+ 0x0512, 0xf5d6, 0xf082, 0xefcd, 0xe8ea, 0xdddf,
+ 0xd375, 0xd2d3, 0xddf4, 0xf085, 0x0610, 0x0cea,
+ 0x003b, 0xf5aa, 0xf3fb, 0xf39d, 0xf27e, 0xecae,
+ 0xe755, 0xeaef, 0xeed6, 0xec18, 0xe807, 0xe739,
+ 0xea2f, 0xef8e, 0xfa6f, 0x09b1, 0x1027, 0x0aa2,
+ 0x01a3, 0xfaf0, 0xfad0, 0xfb33, 0xf5f6, 0xf29a,
+ 0xef37, 0xebaa, 0xf635, 0x0777, 0x101d, 0x1330,
+ 0x0fcc, 0x09e9, 0x0ccb, 0x1154, 0x13ae, 0x1aee,
+ 0x207b, 0x1d56, 0x15c4, 0x1127, 0x125a, 0x1034,
+ 0x0b22, 0x10b5, 0x16ec, 0x0e65, 0x0613, 0x0ae4,
+ 0x0f5a, 0x0a45, 0x0721, 0x0ab1, 0x0ace, 0x0a3e,
+ 0x0dcb, 0x0a11, 0x032b, 0x0412, 0x0059, 0xf4e4,
+ 0xef26, 0xf0bb, 0xf83c, 0x009e, 0xffab, 0xfc97,
+ 0x0227, 0x0953, 0x0874, 0x0276, 0x03f8, 0x0e2e,
+ 0x11dc, 0x0a3f, 0xff93, 0xf7fb, 0xf688, 0xf8c6,
+ 0xfda5, 0x0520, 0x060c, 0x0102, 0x00c2, 0x0185,
+ 0xfe17, 0xfaaa, 0xfb19, 0x01cf, 0x0801, 0x0814,
+ 0x08b9, 0x05ea, 0xfca3, 0xfc3d, 0x04b3, 0x084c,
+ 0x0614, 0xfea9, 0xf4b3, 0xf08c, 0xf0f0, 0xf163,
+ 0xf35a, 0xf842, 0xfeef, 0x0136, 0xfa30, 0xf129,
+ 0xf11c, 0xf5bc, 0xf1e6, 0xeb44, 0xec98, 0xec9e,
+ 0xed96, 0xf8ae, 0xf890, 0xe892, 0xe3a2, 0xe746,
+ 0xe510, 0xdfdb, 0xd510, 0xcbf3, 0xd2bc, 0xe100,
+ 0xec55, 0xf2ba, 0xf492, 0xf9fc, 0x00cb, 0x019c,
+ 0x0063, 0xf9c0, 0xee90, 0xed92, 0xf298, 0xf0bd,
+ 0xe8f8, 0xdc5b, 0xd1db, 0xd800, 0xebb4, 0xfb46,
+ 0x02f3, 0x0e5c, 0x1a18, 0x1932, 0x1683, 0x1969,
+ 0x1455, 0x0e3f, 0x0fa9, 0x0801, 0xfa2c, 0xf5e2,
+ 0xf569, 0xf752, 0x015f, 0x0d74, 0x13fa, 0x102a,
+ 0x0458, 0xfa9c, 0xf710, 0xfcbe, 0x083d, 0x0938,
+ 0x019e, 0x0013, 0xffcd, 0xfaf9, 0xf6a0, 0xf803,
+ 0x0318, 0x0b0a, 0x0233, 0xf816, 0xf5db, 0xf342,
+ 0xf524, 0xf6b3, 0xee70, 0xf0f8, 0x04bb, 0x1102,
+ 0x10a0, 0x0ccc, 0x080d, 0x056f, 0x02ba, 0x0140,
+ 0x0495, 0x0139, 0xf856, 0xf9ff, 0x004c, 0x00d6,
+ 0xfd13, 0xf494, 0xedef, 0xf014, 0xf906, 0x07e7,
+ 0x1102, 0x0b0c, 0x05c1, 0x075f, 0x0654, 0x0405,
+ 0xff4b, 0xf6f9, 0xf5a1, 0xfb27, 0x003f, 0x082b,
+ 0x11d0, 0x0fbd, 0xfeeb, 0xf2eb, 0xf4d1, 0xf6b8,
+ 0xfb47, 0x0834, 0x0c0e, 0x0b0c, 0x14e2, 0x1863,
+ 0x0bd1, 0xfb20, 0xeba5, 0xe7f8, 0xf2f0, 0xfa05,
+ 0xf412, 0xe649, 0xde18, 0xe56d, 0xece1, 0xed09,
+ 0xf2c9, 0xf668, 0xf3bc, 0xfcae, 0x0b5a, 0x0dc4,
+ 0x0813, 0x0423, 0x08b7, 0x12b7, 0x1222, 0x0c4e,
+ 0x161d, 0x22e7, 0x1a9d, 0x0abe, 0x05d2, 0x03bc,
+ 0x0201, 0x04a4, 0x054b, 0x0a6a, 0x17fa, 0x1b30,
+ 0x158e, 0x1635, 0x155e, 0x1513, 0x2023, 0x27e6,
+ 0x2247, 0x1992, 0x161f, 0x1afc, 0x2020, 0x1c76,
+ 0x1726, 0x122c, 0x098c, 0x06d2, 0x0d9d, 0x134e,
+ 0x1267, 0x0e60, 0x0e53, 0x148e, 0x1b71, 0x1ae1,
+ 0x0bb4, 0xf8d3, 0xf706, 0xfc17, 0xf806, 0xfae4,
+ 0x081a, 0x0e3c, 0x12d9, 0x1b10, 0x1936, 0x100b,
+ 0x0b12, 0x09df, 0x0ef8, 0x196b, 0x1ba1, 0x11b5,
+ 0x04cd, 0xfa8f, 0xf685, 0xfa70, 0xfed1, 0xfcb1,
+ 0xf7ad, 0xf41d, 0xf2cd, 0xf5e9, 0xfb3c, 0xfcf1,
+ 0xfca0, 0x00c8, 0x0a64, 0x0f78, 0x0683, 0xfbb5,
+ 0xfe3e, 0x037d, 0x02bf, 0x059b, 0x0938, 0x02ac,
+ 0xf71d, 0xef78, 0xec94, 0xefdb, 0xfb7d, 0x0499,
+ 0xfdb5, 0xf31f, 0xf1c1, 0xec68, 0xe4b4, 0xe9a3,
+ 0xf0bc, 0xf1e1, 0xf247, 0xee2a, 0xe5c2, 0xd8f2,
+ 0xcc0f, 0xd525, 0xeb93, 0xf3d3, 0xf895, 0xfcbc,
+ 0xf101, 0xe5ac, 0xe53b, 0xe605, 0xeaf0, 0xeedc,
+ 0xebb2, 0xeb14, 0xecb0, 0xf282, 0x03ac, 0x12e4,
+ 0x1669, 0x155b, 0x139f, 0x0f9f, 0x0668, 0xfe6f,
+ 0xfd80, 0xf810, 0xf2ad, 0xfbed, 0x03fb, 0x0166,
+ 0x016f, 0x04c7, 0x0b2b, 0x149c, 0x159a, 0x1085,
+ 0x0f48, 0x106f, 0x11c4, 0x102e, 0x0c19, 0x0a20,
+ 0x0786, 0x0506, 0x02df, 0xfd77, 0x005b, 0x0b85,
+ 0x0d60, 0x0e7d, 0x16a9, 0x16c2, 0x1336, 0x1490,
+ 0x0f13, 0x00b8, 0xf1f5, 0xe932, 0xeb56, 0xf5c0,
+ 0x0505, 0x1017, 0x0c4f, 0x09c6, 0x12d4, 0x12fc,
+ 0x0987, 0x0636, 0x0829, 0x10af, 0x1a54, 0x14c7,
+ 0x06be, 0xfddd, 0xfa15, 0xfbfe, 0xfee6, 0xfbc7,
+ 0xf50d, 0xeedc, 0xef8c, 0xf6f8, 0xfa28, 0xf9ec,
+ 0xfc0f, 0xfbe5, 0xf675, 0xef4e, 0xf095, 0xfb10,
+ 0xfe86, 0xff57, 0x0a07, 0x0e5e, 0x04ad, 0xf681,
+ 0xe89f, 0xe8ae, 0xf438, 0xf7e9, 0xf7bb, 0xf1a6,
+ 0xe343, 0xe5f7, 0xf31e, 0xf412, 0xf9e7, 0x055b,
+ 0x02ae, 0xf7b7, 0xec01, 0xe40f, 0xe0be, 0xd7c0,
+ 0xd4a7, 0xe1b0, 0xed81, 0xf499, 0xf8ea, 0xf659,
+ 0xf77c, 0xf992, 0xf3b8, 0xf1c3, 0xf290, 0xeec4,
+ 0xedf0, 0xee32, 0xf03b, 0xfec1, 0x118a, 0x1835,
+ 0x1470, 0x151c, 0x1c74, 0x1c90, 0x17e6, 0x1769,
+ 0x1167, 0x06ee, 0x0335, 0x01bc, 0xff49, 0xff7a,
+ 0x0393, 0x0775, 0x04f7, 0x0aad, 0x1fa4, 0x25cb,
+ 0x1bd3, 0x2048, 0x2a4f, 0x27b9, 0x2291, 0x1f07,
+ 0x169f, 0x084a, 0xfb03, 0xf5a1, 0xf43c, 0xf666,
+ 0xfc25, 0xfd23, 0x02d7, 0x152f, 0x207a, 0x1c8e,
+ 0x0f7b, 0xfd6f, 0xf854, 0x038e, 0x0a0b, 0x07af,
+ 0x00c3, 0xf62b, 0xf507, 0xfe10, 0xff6d, 0xf902,
+ 0xf822, 0xfc76, 0xfe7e, 0x0004, 0x059b, 0x0a79,
+ 0x0a4d, 0x0a97, 0x0c24, 0x06d9, 0xfd45, 0xf9f1,
+ 0xf80d, 0xf02a, 0xec8f, 0xf298, 0xf86c, 0xf743,
+ 0xef2f, 0xeafb, 0xf3d0, 0xfb1f, 0xf75c, 0xf356,
+ 0xf2c0, 0xf883, 0x060c, 0x0bef, 0x072b, 0x0519,
+ 0x05bd, 0x03a7, 0xfeef, 0xf8b7, 0xf323, 0xefc2,
+ 0xeebc, 0xebb2, 0xeab5, 0xf992, 0x08ad, 0x0323,
+ 0xfde4, 0x02f8, 0xfe60, 0xedf8, 0xdbad, 0xd7b4,
+ 0xeb32, 0xfacb, 0xfba7, 0x0216, 0x0513, 0xfc4a,
+ 0xfbaf, 0x01f2, 0xfe9d, 0xf4b7, 0xf07a, 0xf0ed,
+ 0xeb42, 0xe760, 0xf28f, 0x0186, 0x07ca, 0x03b1,
+ 0xfe48, 0x093e, 0x170e, 0x15d2, 0x19bb, 0x216e,
+ 0x1a82, 0x1445, 0x12de, 0x0d17, 0x0a06, 0x054c,
+ 0xffc4, 0x052b, 0x0a32, 0x094a, 0x0ab7, 0x0baf,
+ 0x0ede, 0x1536, 0x1816, 0x1ce3, 0x229e, 0x207c,
+ 0x1931, 0x1070, 0x0948, 0x0023, 0xed32, 0xe26e,
+ 0xeeeb, 0xfd82, 0x02b9, 0x09ea, 0x0ea4, 0x05da,
+ 0xfbeb, 0x022f, 0x0ea0, 0x1210, 0x12db, 0x1112,
+ 0x06d1, 0x012e, 0x0340, 0xff84, 0xf9c5, 0xfae0,
+ 0xfda9, 0xfe33, 0xfffb, 0x0322, 0x020f, 0xfed3,
+ 0x00a9, 0x042a, 0x0733, 0x0a45, 0x04ac, 0xfbc2,
+ 0xfbb3, 0xf7be, 0xe98c, 0xe3f3, 0xed97, 0xfa51,
+ 0xff17, 0xfb50, 0xf88f, 0xf990, 0xf600, 0xed2f,
+ 0xe892, 0xed17, 0xf5e2, 0xfe66, 0x0742, 0x0bf9,
+ 0x0633, 0xfb40, 0xf385, 0xecba, 0xe539, 0xe662,
+ 0xece7, 0xe8fd, 0xe952, 0xfe22, 0x08ad, 0xfc9f,
+ 0xf72f, 0xf60e, 0xeed8, 0xf388, 0xfc6f, 0xf7aa,
+ 0xf4d5, 0xfb68, 0xff6c, 0xfffd, 0xfe54, 0xf821,
+ 0xf257, 0xf488, 0xfd28, 0xfd4d, 0xecec, 0xdd1e,
+ 0xdf4f, 0xee08, 0xfcbe, 0x0508, 0x02de, 0xfa88,
+ 0xf8d7, 0xfef1, 0x03a2, 0x07b8, 0x0da4, 0x120f,
+ 0x18f8, 0x235a, 0x2594, 0x1d20, 0x14ff, 0x125c,
+ 0x12e8, 0x15e9, 0x1724, 0x0f73, 0x04ea, 0x0069,
+ 0xfcc0, 0xfd39, 0x07fe, 0x0b31, 0x040b, 0x09f5,
+ 0x16cf, 0x16d0, 0x107b, 0x0825, 0xfd2d, 0xfd24,
+ 0x0818, 0x0c15, 0x06d9, 0x0347, 0x02ee, 0x0282,
+ 0x0483, 0x0a84, 0x0f1c, 0x0bf8, 0x01bb, 0xfa32,
+ 0xfc7d, 0x0386, 0x09b8, 0x0bee, 0x0518, 0xfa4d,
+ 0xf3f1, 0xee46, 0xe9bb, 0xeea4, 0xfa8d, 0x0656,
+ 0x118f, 0x18c7, 0x10d8, 0xfa7b, 0xec61, 0xf0b8,
+ 0xf6a2, 0xfa1c, 0x02c4, 0x03fd, 0xf705, 0xeca6,
+ 0xeb72, 0xebc4, 0xec17, 0xed5c, 0xf05f, 0xf789,
+ 0xfdd6, 0xfc04, 0xf5ac, 0xf123, 0xf247, 0xfc72,
+ 0x056f, 0x0299, 0x002b, 0x00f6, 0xf613, 0xe9a4,
+ 0xe9aa, 0xebad, 0xf0d5, 0xfdb7, 0x0392, 0x0452,
+ 0x0b51, 0x0d56, 0x0614, 0x014c, 0xffb0, 0xfeff,
+ 0x011b, 0x00df, 0xfadf, 0xf466, 0xf262, 0xf7a4,
+ 0x03b6, 0x0b89, 0x03e8, 0xf494, 0xeb1f, 0xe971,
+ 0xf5f2, 0x12c5, 0x225d, 0x1363, 0x04c0, 0x07ac,
+ 0x07b9, 0x0239, 0x02f9, 0x04af, 0x0797, 0x137b,
+ 0x1f93, 0x220e, 0x1e0d, 0x1849, 0x15c5, 0x19ac,
+ 0x1fba, 0x231d, 0x2201, 0x1b1a, 0x1068, 0x06f9,
+ 0x013e, 0xffee, 0x04f2, 0x0b4c, 0x0b51, 0x0cdb,
+ 0x1626, 0x1981, 0x115d, 0x067c, 0xfd8a, 0xff50,
+ 0x0de9, 0x1699, 0x0de8, 0xfc37, 0xf2b0, 0xfcc8,
+ 0x0d69, 0x1597, 0x1786, 0x0ed3, 0xffe2, 0xffb0,
+ 0x08c8, 0x08dc, 0x0151, 0xf76a, 0xf102, 0xf0cb,
+ 0xf200, 0xf796, 0xfbc2, 0xf3b5, 0xef90, 0xf7db,
+ 0xfd06, 0xff98, 0x0215, 0xfb67, 0xf547, 0xfe82,
+ 0x0d97, 0x0e4b, 0xfd24, 0xebc7, 0xe67a, 0xea4b,
+ 0xf110, 0xef2d, 0xe55b, 0xe882, 0xf72d, 0xfcdb,
+ 0xfa9b, 0xf846, 0xf2fb, 0xeb19, 0xe7c9, 0xef59,
+ 0xf9d1, 0xf7be, 0xec97, 0xe4a5, 0xe3ac, 0xeb8e,
+ 0xf217, 0xe7d3, 0xdb7b, 0xe6e4, 0xff9b, 0x08ce,
+ 0x0280, 0x000a, 0x0396, 0x05d9, 0x06cf, 0x0335,
+ 0xfb0b, 0xf608, 0xf098, 0xe968, 0xec34, 0xf4b8,
+ 0xf56f, 0xecd2, 0xdb75, 0xd355, 0xee34, 0x114d,
+ 0x1162, 0x01e4, 0x02c1, 0x0626, 0x00b4, 0xfe79,
+ 0x0187, 0x02dd, 0x00b4, 0xfeff, 0x03fd, 0x0d80,
+ 0x129d, 0x0f7b, 0x06fa, 0x0346, 0x0a5b, 0x1175,
+ 0x0f2b, 0x06eb, 0xfe61, 0xfc1b, 0x01c9, 0x065a,
+ 0x018f, 0xf5d6, 0xf326, 0x0202, 0x0e13, 0x0c32,
+ 0x0b5a, 0x095a, 0x002e, 0xff36, 0x05fa, 0x09d9,
+ 0x0daa, 0x0788, 0xf307, 0xec6e, 0xffb0, 0x1374,
+ 0x1353, 0x0325, 0xf3de, 0xf218, 0xfb35, 0x0364,
+ 0x010c, 0xf7f5, 0xf59e, 0xfb65, 0xfd46, 0xf6e8,
+ 0xf14a, 0xf117, 0xed39, 0xe602, 0xe907, 0xf04d,
+ 0xef2c, 0xf08e, 0xfaf0, 0x035d, 0x0684, 0x06d9,
+ 0x0571, 0x02a1, 0xfa05, 0xee6d, 0xe9d6, 0xec00,
+ 0xedef, 0xea95, 0xe5b4, 0xeb52, 0xf75d, 0xfa85,
+ 0xf68e, 0xf12a, 0xe858, 0xe0f0, 0xe21e, 0xec28,
+ 0xf680, 0xf5bb, 0xf0c3, 0xf33b, 0xf15b, 0xe5ff,
+ 0xe130, 0xe0be, 0xdb81, 0xe07f, 0xf020, 0xf2ba,
+ 0xf052, 0xfe4f, 0x0b0f, 0x0872, 0x06d3, 0x0567,
+ 0xfaee, 0xf16e, 0xeaf6, 0xe65a, 0xe939, 0xe6c5,
+ 0xdc29, 0xe15d, 0xf3aa, 0x0026, 0x0cb8, 0x1645,
+ 0x0eab, 0x0223, 0xfbc8, 0xf5c6, 0xf68b, 0xfefe,
+ 0xffcd, 0xfef5, 0x07bc, 0x0abe, 0x0298, 0xff0a,
+ 0xff59, 0xfaba, 0xf637, 0xf8de, 0x039a, 0x0e52,
+ 0x0d97, 0x04ff, 0x0005, 0x003b, 0xfed8, 0xf628,
+ 0xeecb, 0xf637, 0x051d, 0x0db1, 0x0e74, 0x0627,
+ 0xf74e, 0xee4b, 0xf383, 0x036e, 0x0f3d, 0x0ecb,
+ 0x0d3e, 0x0e5a, 0x0c59, 0x0f43, 0x164c, 0x0f99,
+ 0xfd6f, 0xf3d2, 0xfa44, 0x06fa, 0x0a3f, 0x0201,
+ 0xfa33, 0xf511, 0xeedb, 0xee87, 0xf896, 0x045f,
+ 0x07e3, 0x010a, 0xf771, 0xf453, 0xf5f8, 0xf801,
+ 0xfbb3, 0xfc04, 0xf858, 0x0022, 0x1097, 0x1364,
+ 0x0bc6, 0x0a3e, 0x0c04, 0x0b02, 0x0783, 0x028b,
+ 0xfe6f, 0xf8cc, 0xf236, 0xf2a5, 0xf8a7, 0xfe0f,
+ 0xfde2, 0xf09f, 0xe337, 0xec49, 0xfe8b, 0x0142,
+ 0xfc9d, 0xff73, 0x05ef, 0x0c83, 0x129e, 0x0ee8,
+ 0xff48, 0xef55, 0xe292, 0xdae9, 0xe22b, 0xf278,
+ 0x0084, 0x0df8, 0x13b3, 0x0f5c, 0x0f50, 0x0c01,
+ 0xfa8b, 0xec3b, 0xe860, 0xecd4, 0xfd9a, 0x0447,
+ 0xf357, 0xef39, 0x0461, 0x0f1b, 0x098f, 0x0a70,
+ 0x0e58, 0x0cca, 0x0f50, 0x1346, 0x0cf3, 0x03c5,
+ 0x0006, 0xfbec, 0xf8a8, 0xfb80, 0xfd53, 0xf780,
+ 0xf071, 0xf229, 0xfcbf, 0x05fd, 0x083d, 0x0896,
+ 0x0a95, 0x0ab5, 0x073c, 0x04ee, 0x0a57, 0x189c,
+ 0x245b, 0x1ff7, 0x13bd, 0x0f32, 0x0c97, 0x0857,
+ 0x0a0b, 0x0a60, 0x0794, 0x0d42, 0x10d0, 0x06a0,
+ 0xfdac, 0x02bc, 0x141a, 0x2648, 0x2c3d, 0x29d1,
+ 0x23a0, 0x14ee, 0x052b, 0xfd9d, 0xfeb3, 0x06fb,
+ 0x0b76, 0x08be, 0x0d43, 0x1a51, 0x21f3, 0x19fb,
+ 0x05cf, 0xf959, 0xfc4e, 0x0288, 0x04d3, 0xfd24,
+ 0xf15b, 0xf5d3, 0x033f, 0x0a44, 0x112c, 0x1232,
+ 0x0a45, 0x0930, 0x0ac3, 0x089d, 0x0bfe, 0x0f14,
+ 0x0cad, 0x0b70, 0x0688, 0xf86c, 0xe572, 0xd7a5,
+ 0xd961, 0xe3ec, 0xed14, 0xf59c, 0xf512, 0xe9f4,
+ 0xe768, 0xf057, 0xf7d8, 0xfd2f, 0x0470, 0x0a8e,
+ 0x07c1, 0xfa45, 0xe944, 0xdad2, 0xd902, 0xe7f7,
+ 0xf426, 0xf851, 0x0630, 0x13c4, 0x0de7, 0xfe0e,
+ 0xf16f, 0xf333, 0x0416, 0x075e, 0xfa56, 0xfeb9,
+ 0x0aea, 0x03fd, 0xff0a, 0x0879, 0x0ab1, 0x056c,
+ 0x02da, 0xfdcc, 0xf9d7, 0xfd04, 0xfe29, 0xfa9e,
+ 0xfd7a, 0x06e0, 0x07fe, 0xfc8a, 0xef1f, 0xe5df,
+ 0xe516, 0xeff9, 0xfbaa, 0x0174, 0x0765, 0x0a1c,
+ 0x055c, 0x004d, 0x01b5, 0x0b05, 0x113b, 0x0b16,
+ 0x067a, 0x096c, 0x0a31, 0x0be6, 0x0c18, 0x0433,
+ 0x02e9, 0x0dbb, 0x1706, 0x16f0, 0x0a4f, 0xfa5c,
+ 0xf8ed, 0x084e, 0x1eaf, 0x2aa4, 0x2423, 0x1bfe,
+ 0x1710, 0x0f63, 0x0c52, 0x02c4, 0xec03, 0xe4e3,
+ 0xf306, 0x033b, 0x0ecf, 0x0c0d, 0x01a1, 0x02a7,
+ 0x05d8, 0x08ef, 0x1254, 0x0e5e, 0xffc1, 0xfc20,
+ 0xf9e4, 0xf6cd, 0xfd82, 0x007f, 0xfa5d, 0xf70f,
+ 0xf796, 0xfc79, 0x0557, 0x0928, 0x07ed, 0x05b6,
+ 0xfd84, 0xf044, 0xe947, 0xebe6, 0xf0d9, 0xf480,
+ 0xf68e, 0xf46a, 0xef1e, 0xe8da, 0xe36e, 0xe5bf,
+ 0xef6b, 0xf823, 0xffa2, 0x024e, 0xf814, 0xeabd,
+ 0xe85c, 0xec05, 0xea25, 0xe452, 0xe7e8, 0xf4ab,
+ 0xf856, 0xf2c3, 0xf299, 0xf051, 0xe460, 0xe271,
+ 0xf3d1, 0x0648, 0x10b7, 0x17c3, 0x1571, 0x08bf,
+ 0x042a, 0x0b7e, 0x0c3c, 0x02b8, 0xfb07, 0xf9f5,
+ 0xfe17, 0x0376, 0x069b, 0x083d, 0x0606, 0xff32,
+ 0xface, 0xfc4d, 0x01fe, 0x05ea, 0xff06, 0xf660,
+ 0xfb44, 0x018a, 0xfb3a, 0xf190, 0xece4, 0xf320,
+ 0x0946, 0x1fe8, 0x269b, 0x2047, 0x128c, 0x06e0,
+ 0x0825, 0x0dca, 0x0c46, 0x08f6, 0x08cc, 0x0906,
+ 0x08f2, 0x08d6, 0x056a, 0xfca3, 0xf572, 0xf707,
+ 0xff3f, 0x0eac, 0x23c7, 0x2dfa, 0x28dc, 0x254a,
+ 0x23f2, 0x1779, 0x07a1, 0x0542, 0x0abe, 0x09c4,
+ 0x0714, 0x0a50, 0x0adc, 0x07bf, 0x0b9f, 0x10ef,
+ 0x0dd2, 0x088f, 0x0581, 0x0132, 0xfc90, 0xf9c8,
+ 0xf9e4, 0xfdb2, 0x0158, 0xfedf, 0xf537, 0xecf1,
+ 0xf15f, 0xfe4f, 0x0787, 0x0d3d, 0x0ccf, 0xfdf6,
+ 0xefb8, 0xf2a2, 0xf7fc, 0xf463, 0xf11d, 0xf1d8,
+ 0xf758, 0xffae, 0xff8d, 0xf85d, 0xf266, 0xec93,
+ 0xeddc, 0xf8b1, 0xfe53, 0xfc3f, 0xf821, 0xf1aa,
+ 0xeee6, 0xef30, 0xea35, 0xe643, 0xe98e, 0xec9a,
+ 0xe942, 0xe3e8, 0xe3ad, 0xe484, 0xe82f, 0xfbd7,
+ 0x0f3c, 0x0fca, 0x1229, 0x1623, 0x075a, 0xfc3d,
+ 0x065c, 0x0f6c, 0x0c08, 0x03a1, 0xfd6d, 0xfa30,
+ 0xf7b0, 0xfe6f, 0x0a26, 0x08a7, 0x03b7, 0x0615,
+ 0x0586, 0x05bc, 0x0709, 0xfe5f, 0xf3bc, 0xee50,
+ 0xeca6, 0xf3d8, 0x00c5, 0x0d85, 0x174a, 0x1802,
+ 0x15df, 0x15c9, 0x11bb, 0x127e, 0x1a22, 0x1590,
+ 0x06b8, 0x02d2, 0x0adf, 0x0cfc, 0x0590, 0x02c9,
+ 0x023e, 0xfbe3, 0xfa59, 0xfa3d, 0xf5d6, 0xfcd9,
+ 0x058b, 0x0363, 0x0ca7, 0x19d6, 0x1490, 0x13d0,
+ 0x20af, 0x2301, 0x18d9, 0x0bd5, 0xfef5, 0xf7dd,
+ 0xf864, 0x017a, 0x0f90, 0x14b0, 0x0eb1, 0x081c,
+ 0x03c9, 0x0032, 0xfd7f, 0xfa7b, 0xf729, 0xf709,
+ 0xfbcb, 0x0000, 0xffc1, 0xfe9b, 0xfc58, 0xf749,
+ 0xf70f, 0xff34, 0x060c, 0x0559, 0x0237, 0x0237,
+ 0x05d3, 0x086f, 0x00cc, 0xeec5, 0xe24e, 0xe68c,
+ 0xf541, 0x00ed, 0x00d5, 0xfada, 0xf885, 0xf7aa,
+ 0xf75f, 0xf76e, 0xf187, 0xedd9, 0xf3dd, 0xf38c,
+ 0xec66, 0xf209, 0xfbd0, 0xf219, 0xdc3a, 0xd4eb,
+ 0xe002, 0xea2f, 0xf0fc, 0x017f, 0x1258, 0x1239,
+ 0x0920, 0x04a1, 0x01cb, 0xfdf2, 0xfef7, 0x013b,
+ 0xfc76, 0xf7ea, 0xf822, 0xf491, 0xf1eb, 0xf820,
+ 0xfe98, 0x000c, 0xfd37, 0xf79b, 0xf859, 0xfe4e,
+ 0xfe93, 0xf917, 0xedc3, 0xe189, 0xe604, 0xf695,
+ 0xff34, 0x02de, 0x064b, 0x0060, 0xf6a7, 0xf620,
+ 0xfd28, 0x0773, 0x0e48, 0x05a2, 0xf5a5, 0xef84,
+ 0xedd8, 0xec17, 0xef93, 0xeffe, 0xee4f, 0xf6c5,
+ 0xfe1f, 0xf9a1, 0xf111, 0xe945, 0xec91, 0xfefd,
+ 0x0d4c, 0x1360, 0x1c98, 0x22df, 0x2046, 0x1b36,
+ 0x17a4, 0x1224, 0x0522, 0xf8ad, 0xf946, 0x011c,
+ 0x07cd, 0x0964, 0x01db, 0xfb55, 0xfbca, 0xfb14,
+ 0xfd5f, 0x03f8, 0x04b3, 0x0354, 0x0382, 0x0303,
+ 0x06bc, 0x0824, 0xff78, 0xf8de, 0xfd90, 0x0b1e,
+ 0x167e, 0x102e, 0x0161, 0xfef6, 0x0589, 0x0d03,
+ 0x115f, 0x07f3, 0xf920, 0xf95a, 0x00ed, 0xff81,
+ 0xfc35, 0xfdcb, 0xfb02, 0xf558, 0xfa79, 0x055f,
+ 0x0685, 0x0165, 0xff24, 0xfc01, 0xf536, 0xeebf,
+ 0xeb1b, 0xebf3, 0xf0d6, 0xf43d, 0xf262, 0xef76,
+ 0xf3de, 0x01a4, 0x0e0a, 0x0dc1, 0x0707, 0x08c6,
+ 0x1234, 0x1561, 0x0d32, 0x0231, 0xff23, 0x05af,
+ 0x0b9d, 0x0906, 0x043d, 0x04ee, 0x0901, 0x0cce,
+ 0x0d42, 0x07d8, 0x03d6, 0x0805, 0x0bd1, 0x0ab3,
+ 0x0c5d, 0x0c4a, 0x022e, 0xfa80, 0xff6e, 0x05bb,
+ 0x05fa, 0x03db, 0xfdde, 0xf78d, 0xff3a, 0x1221,
+ 0x1a46, 0x1151, 0x0647, 0x03de, 0x06c7, 0x07ba,
+ 0x058a, 0x0398, 0x039b, 0x0608, 0x07e3, 0x04a5,
+ 0xff2f, 0xf9d1, 0xf3dc, 0xf5c8, 0x0276, 0x0da1,
+ 0x11ea, 0x1435, 0x19db, 0x232a, 0x25e7, 0x2039,
+ 0x1aae, 0x107c, 0x04e0, 0x0680, 0x080a, 0xfe4b,
+ 0xfcef, 0x0587, 0x0738, 0x0577, 0x06cb, 0x078e,
+ 0x0752, 0x0615, 0x02c6, 0xffb9, 0xff9c, 0x00b7,
+ 0xfd6b, 0xf7a1, 0xf872, 0xfe0e, 0x0179, 0x0571,
+ 0x08e6, 0x0410, 0xfe94, 0x04f1, 0x0c7d, 0x08f4,
+ 0x0538, 0x0694, 0x01ac, 0xf7d9, 0xf68c, 0xff97,
+ 0x070c, 0x05b7, 0x01e3, 0xfc1b, 0xf1f5, 0xf199,
+ 0xfa70, 0xf685, 0xe8fc, 0xe2a4, 0xe884, 0xfba7,
+ 0x0907, 0xff99, 0xf164, 0xe6a7, 0xdcba, 0xe7ea,
+ 0x0139, 0x03a9, 0xf568, 0xf7cd, 0x0a53, 0x1498,
+ 0x0fd0, 0x086b, 0x02be, 0xfdf8, 0xfe10, 0xfe76,
+ 0xfd9e, 0x0163, 0x0195, 0xfaa5, 0xf6e9, 0xf539,
+ 0xf2fe, 0xf4b4, 0xf909, 0xfe3e, 0x028a, 0x050a,
+ 0x07c7, 0x0581, 0xfe77, 0xf9b1, 0xf365, 0xed3f,
+ 0xec28, 0xed78, 0xf9de, 0x0b9a, 0x0b24, 0x0407,
+ 0x05a0, 0x0269, 0xff33, 0x0851, 0x14b7, 0x1b88,
+ 0x14ce, 0x03d1, 0xfc44, 0xfd1f, 0xfc90, 0xfe96,
+ 0xfe0d, 0xf9a9, 0xfcc8, 0x0313, 0x074d, 0x0f47,
+ 0x1277, 0x08e3, 0x02ca, 0x0990, 0x0d4f, 0x09ab,
+ 0x0c58, 0x0e7f, 0x04e3, 0xfee6, 0x026e, 0x01a8,
+ 0xfba1, 0xf3ba, 0xeb95, 0xed6f, 0xfa76, 0x0483,
+ 0xff97, 0xf3ec, 0xf86a, 0x06d9, 0x05ad, 0xfe56,
+ 0xfda0, 0xf61f, 0xed4c, 0xf0ae, 0xf59a, 0xf630,
+ 0xf6ac, 0xf510, 0xf2c8, 0xf3d1, 0xf8e5, 0xfec7,
+ 0xfe11, 0xfa20, 0xfc96, 0xff79, 0xfa05, 0xf026,
+ 0xe6cc, 0xe0f8, 0xe2c7, 0xe899, 0xea76, 0xed6b,
+ 0xf631, 0xf349, 0xe169, 0xde90, 0xedea, 0xf272,
+ 0xe9f4, 0xe4d3, 0xeb2b, 0xfb9b, 0xfe09, 0xea56,
+ 0xe5a7, 0xf708, 0xfd23, 0xfb45, 0x0198, 0x0319,
+ 0xfd7b, 0xfab5, 0xf8de, 0xf878, 0xf803, 0xf1c0,
+ 0xeb92, 0xe762, 0xe3bc, 0xebc4, 0xfab2, 0xfd1d,
+ 0xf85d, 0xf76b, 0xf470, 0xf023, 0xef91, 0xf0f0,
+ 0xf571, 0xfb08, 0xfc6b, 0xfc27, 0xfad0, 0xf6a2,
+ 0xf2ba, 0xee78, 0xeb06, 0xedfd, 0xf33e, 0xf650,
+ 0xfa6e, 0xfef1, 0x034b, 0x0720, 0x0582, 0x0290,
+ 0x04ea, 0x0800, 0x0a5a, 0x0c4b, 0x06d9, 0xfc5b,
+ 0xf837, 0xfd37, 0x0719, 0x105e, 0x142f, 0x1134,
+ 0x06f9, 0xf721, 0xec4e, 0xf513, 0x0ce0, 0x1831,
+ 0x0de4, 0x0535, 0x08cf, 0x0c7a, 0x0b0c, 0x05fe,
+ 0xfd19, 0xf3a6, 0xf0bf, 0xfa7c, 0x08ea, 0x0c56,
+ 0x078e, 0x05b6, 0x0719, 0x09f3, 0x0b0d, 0x07c5,
+ 0x03b4, 0xfe27, 0xf6bf, 0xf11e, 0xeacb, 0xe7d0,
+ 0xf0b1, 0xfe6d, 0x0618, 0x0403, 0xfe4c, 0x024f,
+ 0x0abe, 0x0b7f, 0x0af7, 0x0705, 0xfac4, 0xf55b,
+ 0xfa92, 0x0277, 0x0abc, 0x0979, 0x0116, 0xff8d,
+ 0xfc53, 0xf40c, 0xf3df, 0xf5c9, 0xf5b1, 0x0404,
+ 0x1c0d, 0x1f3b, 0x0a35, 0xfc61, 0xfc73, 0xf7ff,
+ 0xf8ac, 0x0454, 0x05cf, 0x0571, 0x1163, 0x1577,
+ 0x0f58, 0x0c35, 0x064c, 0x02c5, 0x0af3, 0x12d1,
+ 0x11f1, 0x0c1d, 0x060f, 0x02cd, 0x0166, 0x0154,
+ 0xfee5, 0xf7dd, 0xf6d5, 0xfbd5, 0xfaa7, 0xf70f,
+ 0xf44d, 0xed1f, 0xeb68, 0xf6fe, 0x01b5, 0x0069,
+ 0xfcdc, 0xff01, 0xfc4a, 0xf536, 0xf933, 0xff57,
+ 0xfc60, 0x00c0, 0x0f92, 0x1979, 0x1d33, 0x1cfe,
+ 0x183b, 0x116b, 0x07f9, 0xfe91, 0xfa5d, 0xfaa2,
+ 0xfdf0, 0x028c, 0x0727, 0x0a5d, 0x0656, 0xfcb6,
+ 0xf6d7, 0xf6be, 0xfa20, 0xff5e, 0x0660, 0x0d38,
+ 0x0c74, 0x09bc, 0x0f5f, 0x1201, 0x0e50, 0x1056,
+ 0x1184, 0x0dfb, 0x0f4c, 0x117b, 0x11c0, 0x13a7,
+ 0x1182, 0x0b54, 0x0685, 0x0389, 0x0415, 0x0410,
+ 0xfc70, 0xf0ce, 0xe8ef, 0xe9f7, 0xf243, 0xf96d,
+ 0xfa7d, 0xf72d, 0xf96a, 0x0680, 0x1059, 0x1024,
+ 0x0fdd, 0x10e5, 0x10a0, 0x0cdb, 0x02a5, 0xfa93,
+ 0xf6a5, 0xf0e4, 0xf335, 0xfec0, 0x0328, 0xfb7d,
+ 0xed20, 0xe381, 0xe9b9, 0xfda8, 0x13c8, 0x15f6,
+ 0x048c, 0x0498, 0x11d6, 0x0cc6, 0x06be, 0x07dc,
+ 0x0076, 0xff53, 0x018a, 0xf9c2, 0xfec7, 0x0e2a,
+ 0x12ad, 0x14ea, 0x1453, 0x0ebf, 0x0db2, 0x05fb,
+ 0xf88a, 0xf64c, 0xf887, 0xfb3c, 0xff9b, 0xfc37,
+ 0xf6f1, 0xf57b, 0xf2a1, 0xf557, 0xfc57, 0xfd3b,
+ 0xfcf2, 0xfeb5, 0xffe2, 0x005e, 0xfc4e, 0xf5b6,
+ 0xf1b2, 0xf1fd, 0xfd83, 0x0d65, 0x0f6a, 0x0967,
+ 0x08bd, 0x0ac3, 0x0d71, 0x0f34, 0x0c52, 0x095a,
+ 0x068c, 0xfe39, 0xf899, 0xfdcc, 0x025a, 0x00c0,
+ 0x052c, 0x0dbf, 0x0ba8, 0x03c3, 0x02a3, 0x03bd,
+ 0x01ff, 0x02fc, 0x0610, 0x05ec, 0x08ba, 0x1377,
+ 0x1956, 0x10a6, 0x0398, 0xfe79, 0x0266, 0x0827,
+ 0x0995, 0x0ac7, 0x0e09, 0x0db5, 0x0c29, 0x0c32,
+ 0x0714, 0xff4d, 0xfd93, 0xfe3d, 0xfbdd, 0xf7e8,
+ 0xf0d0, 0xe86d, 0xebf0, 0xfb6e, 0x0322, 0xfec5,
+ 0xf83a, 0xf133, 0xf4d1, 0x09df, 0x190b, 0x1799,
+ 0x130d, 0x0dab, 0x092f, 0x0984, 0x0694, 0xfeda,
+ 0xf951, 0xfab1, 0x006b, 0xfb37, 0xea8f, 0xe0c8,
+ 0xe4d4, 0xf9d0, 0x1342, 0x13e3, 0x0968, 0x1048,
+ 0x17ee, 0x121c, 0x0788, 0xfdf5, 0xfa9a, 0xf8da,
+ 0xf7df, 0xfee6, 0xff40, 0xfa76, 0x04ec, 0x0cb5,
+ 0x0924, 0x0c93, 0x0bb4, 0x03f7, 0x03eb, 0xff1e,
+ 0xf850, 0xfddc, 0xff3d, 0xf76b, 0xf303, 0xf0a4,
+ 0xefc8, 0xf1d4, 0xf615, 0xfc3a, 0xfb1a, 0xf04f,
+ 0xe57d, 0xe409, 0xf29b, 0x00fb, 0xfbe5, 0xf392,
+ 0xf3f7, 0xf553, 0xfa89, 0xff22, 0xfdff, 0x029c,
+ 0x0928, 0x0a2e, 0x0d13, 0x0d80, 0x06b0, 0xfe6e,
+ 0xf5ff, 0xf47b, 0xfd21, 0x043b, 0x05b6, 0x00ed,
+ 0xf87d, 0xfc20, 0x0603, 0x014e, 0xfaf5, 0x04f4,
+ 0x0f1e, 0x0b01, 0x06c7, 0x10df, 0x1cf8, 0x17ae,
+ 0x07f9, 0x00ac, 0x0488, 0x0d96, 0x123b, 0x0991,
+ 0xfd61, 0xfa37, 0xfc19, 0x039e, 0x120f, 0x1605,
+ 0x079f, 0xf75e, 0xf237, 0xf62c, 0xfa96, 0xfa47,
+ 0xf5fb, 0xf04d, 0xf5b2, 0x08b7, 0x0b26, 0xf4cd,
+ 0xe88c, 0xf1a3, 0x0106, 0x1047, 0x15b8, 0x0f0d,
+ 0x0901, 0x0760, 0x07e7, 0x054d, 0xfad9, 0xf1c6,
+ 0xed58, 0xe786, 0xe13b, 0xdb69, 0xe213, 0xf946,
+ 0x0127, 0xf715, 0xfdb7, 0x0e1d, 0x10f6, 0x0cb6,
+ 0x0c5b, 0x1497, 0x1a87, 0x104c, 0xffee, 0xed98,
+ 0xdd68, 0xe485, 0xf7e2, 0x02a6, 0x0ba4, 0x09ff,
+ 0xfaec, 0xf5a0, 0xf836, 0xfb37, 0x00c6, 0xfdbb,
+ 0xfbc6, 0x06bc, 0x089f, 0xfd1e, 0xef4c, 0xdf5a,
+ 0xdfe9, 0xf642, 0x0616, 0x092a, 0x09f4, 0x062e,
+ 0xfec8, 0xf87d, 0xf6aa, 0xf871, 0xf5b0, 0xf272,
+ 0xf7b7, 0xfe9e, 0x02f0, 0x0579, 0x0042, 0xf817,
+ 0xf861, 0xfe0d, 0x03ed, 0x0a36, 0x07f2, 0xf956,
+ 0xf2ca, 0xfbe5, 0xfddd, 0xfa08, 0x05a7, 0x10dc,
+ 0x0a77, 0x0566, 0x0a53, 0x0fe8, 0x11ac, 0x0b78,
+ 0x059e, 0x0aee, 0x10b1, 0x1104, 0x0fb6, 0x09d5,
+ 0x0769, 0x0da8, 0x0fbf, 0x0d2c, 0x096e, 0xfeeb,
+ 0xf7d9, 0xfec1, 0x0bc4, 0x1537, 0x10a8, 0xffec,
+ 0xf917, 0x0331, 0x115a, 0x1721, 0x0d60, 0x01a7,
+ 0x05e0, 0x0f1b, 0x0d90, 0x01e7, 0xf521, 0xf408,
+ 0xfaca, 0xfdd2, 0x0514, 0x0d9e, 0x0731, 0xfdcd,
+ 0x017e, 0x0abb, 0x1010, 0x0bc0, 0xfd0f, 0xea99,
+ 0xd86b, 0xcf2c, 0xd927, 0xf077, 0x060d, 0x0fcc,
+ 0x11cb, 0x16a4, 0x187c, 0x1054, 0x06f6, 0x0073,
+ 0xfdee, 0x0258, 0x0655, 0x03eb, 0xf891, 0xe6a6,
+ 0xe3d3, 0xf487, 0xfdc1, 0xfa21, 0xf752, 0xf7c0,
+ 0xff24, 0x099a, 0x080b, 0xfd1f, 0xf555, 0xf2e1,
+ 0xf46c, 0xf83a, 0xfc1c, 0xfe7a, 0xfd2c, 0xf8ea,
+ 0xf56b, 0xf5bb, 0xf645, 0xef7d, 0xe739, 0xe958,
+ 0xf252, 0xf9de, 0xfd36, 0xfa67, 0xf4e4, 0xf2b2,
+ 0xf4cc, 0xf6ca, 0xf416, 0xf378, 0xf9b1, 0xfbe3,
+ 0xfa5a, 0xfc6a, 0xf8fb, 0xf201, 0xf4f6, 0xfde5,
+ 0x0992, 0x1685, 0x1677, 0x0a90, 0x0124, 0xfb86,
+ 0xfbe5, 0x03ef, 0x0896, 0x0553, 0xffaf, 0xfcb1,
+ 0x0056, 0x0442, 0x0194, 0x01ad, 0x06ac, 0x0704,
+ 0x087e, 0x0d5f, 0x04ee, 0xf0f8, 0xe6db, 0xecf4,
+ 0xfc41, 0x074c, 0x0251, 0xf8eb, 0xf897, 0xf915,
+ 0xf8aa, 0xfd4b, 0x011b, 0x0503, 0x0dd4, 0x11c4,
+ 0x0d39, 0x0864, 0x033d, 0xfb15, 0xf64a, 0xfd2a,
+ 0x0aeb, 0x0e78, 0x0464, 0xfb2e, 0xf945, 0xfbc1,
+ 0x00fe, 0x02d7, 0xfbf7, 0xf009, 0xe39a, 0xdd04,
+ 0xe80f, 0x0292, 0x1601, 0x179f, 0x15a5, 0x1a3f,
+ 0x2012, 0x2172, 0x1c65, 0x129a, 0x0ad6, 0x0ae8,
+ 0x11aa, 0x141c, 0x085a, 0xf5ff, 0xe9df, 0xe703,
+ 0xee2f, 0xf98e, 0xfb45, 0xf515, 0xf65a, 0xfeff,
+ 0x02fa, 0x03b2, 0x08eb, 0x0bf1, 0x07db, 0x08ef,
+ 0x101b, 0x0bfc, 0xfba7, 0xeefb, 0xec36, 0xf105,
+ 0xf7e0, 0xf63c, 0xecd3, 0xeaf1, 0xf267, 0xf799,
+ 0xfa29, 0xfa47, 0xf421, 0xf2d4, 0xf8c1, 0xf583,
+ 0xeebf, 0xf3f2, 0xfc7d, 0xff83, 0x00a1, 0x0143,
+ 0xfc39, 0xeeea, 0xee9b, 0x0713, 0x1553, 0x0f6c,
+ 0x1484, 0x1b3a, 0x11f8, 0x0997, 0x019a, 0xf95d,
+ 0x002a, 0x0875, 0x0749, 0x065c, 0x00ef, 0xfd51,
+ 0x0510, 0x0306, 0xf645, 0xf92b, 0x0a9f, 0x19b0,
+ 0x1e17, 0x1732, 0x0e14, 0x06ac, 0xfee7, 0xfd29,
+ 0x03e0, 0x0a11, 0x0911, 0x0707, 0x0d3b, 0x12d6,
+ 0x0ea0, 0x0ba3, 0x0b77, 0x05fd, 0x019b, 0xfff3,
+ 0xfd4d, 0xffb4, 0x0497, 0x03f3, 0xff19, 0xfadc,
+ 0xfd78, 0x0267, 0x018c, 0x062f, 0x0f3e, 0x0a77,
+ 0x02c6, 0x045d, 0xfe37, 0xef30, 0xec6e, 0xfc2c,
+ 0x0e52, 0x1353, 0x15a0, 0x1e93, 0x1d74, 0x1494,
+ 0x14ac, 0x10cb, 0x045c, 0x01e4, 0x080f, 0x0da8,
+ 0x0f5d, 0x0787, 0x01ed, 0x07fa, 0x0634, 0xfa75,
+ 0xf9b7, 0xfc93, 0xf64a, 0xf69e, 0xfeb5, 0xfe74,
+ 0x00f4, 0x0f2a, 0x14bc, 0x0c9c, 0x0530, 0x01d5,
+ 0x0123, 0xfefa, 0xf92b, 0xf848, 0xf877, 0xf075,
+ 0xeb1a, 0xee54, 0xf151, 0xf092, 0xee70, 0xf238,
+ 0xfc16, 0xffa0, 0xfc54, 0xf768, 0xefbe, 0xecca,
+ 0xf17f, 0xf65b, 0xf9ac, 0xf781, 0xf003, 0xeea4,
+ 0xf615, 0x0247, 0x0c14, 0x0a70, 0x041a, 0x008e,
+ 0xfe1e, 0xff60, 0xfc93, 0xf2ce, 0xf271, 0xf5be,
+ 0xf350, 0xfa34, 0x01ed, 0xf9f5, 0xf4a0, 0xfc1c,
+ 0x0352, 0x0794, 0x0d2b, 0x10de, 0x0c9c, 0x0524,
+ 0x037c, 0x02ba, 0x02e4, 0x0ad3, 0x0cd3, 0x025c,
+ 0xfce7, 0xfdcd, 0xf986, 0xf39f, 0xf3fb, 0xf8d7,
+ 0xf9c6, 0xf57c, 0xf5fc, 0xfd64, 0x001c, 0xf78c,
+ 0xeea9, 0xf298, 0xfb4a, 0xfc9f, 0xfac1, 0xf78f,
+ 0xf298, 0xf343, 0xf8a8, 0xfaae, 0xf7f9, 0xf615,
+ 0xf7fc, 0xf6ca, 0xf66e, 0xff8d, 0x024f, 0x00c0,
+ 0x0f30, 0x155d, 0x056f, 0xfc37, 0xf5b2, 0xec42,
+ 0xf5f7, 0x022f, 0xfe50, 0xfd54, 0xffdb, 0xfd70,
+ 0xfb1f, 0xf74b, 0xf486, 0xf3d2, 0xf061, 0xf0ee,
+ 0xf193, 0xebcb, 0xed2a, 0xf404, 0xf585, 0xf78e,
+ 0xf826, 0xf573, 0xf612, 0xf352, 0xec95, 0xe991,
+ 0xe50a, 0xe272, 0xe93c, 0xede8, 0xec21, 0xeea4,
+ 0xf673, 0xfaa6, 0xf633, 0xeea2, 0xeb7b, 0xec16,
+ 0xefae, 0xf391, 0xefe2, 0xe951, 0xea1b, 0xedc3,
+ 0xefcf, 0xf2a8, 0xf080, 0xe7b7, 0xe78f, 0xf682,
+ 0x03e9, 0x010a, 0xf4c6, 0xf26d, 0x0128, 0x0eff,
+ 0x0ac8, 0xfee3, 0xfbb7, 0x0005, 0x032f, 0xffe9,
+ 0xf86e, 0xf64b, 0xfc5e, 0x03ee, 0x09a5, 0x0c7e,
+ 0x080b, 0xfefc, 0xfcec, 0x02ff, 0x0869, 0x0c34,
+ 0x0d64, 0x0779, 0x023f, 0x046f, 0x05b9, 0x02d0,
+ 0x04ed, 0x1159, 0x1cc3, 0x1a76, 0x16fd, 0x1e0a,
+ 0x1f86, 0x1573, 0x0bb1, 0x0450, 0x01b2, 0x0623,
+ 0x0c97, 0x1183, 0x0b47, 0xfbee, 0xf809, 0xfc6e,
+ 0xfd76, 0x013f, 0x0385, 0x008f, 0xfe8c, 0xff1d,
+ 0x0c3a, 0x1bb9, 0x1597, 0x1364, 0x24f3, 0x27bc,
+ 0x1cad, 0x19cb, 0x1723, 0x13c1, 0x1256, 0x0da2,
+ 0x087e, 0x0142, 0xfb60, 0xfe0c, 0x0231, 0x0906,
+ 0x0f84, 0x0817, 0xfe0a, 0xf750, 0xeee3, 0xf4f8,
+ 0x0167, 0xfd6b, 0xf813, 0xfb5e, 0xffa9, 0x04bb,
+ 0x0424, 0xfff1, 0xff7b, 0xfe41, 0x01a0, 0x060e,
+ 0xff2c, 0xfaf5, 0xfd1c, 0xfc0b, 0x0127, 0x053b,
+ 0xfcf2, 0xf7c8, 0xf9dd, 0xfea9, 0x0676, 0x0623,
+ 0xfb2f, 0xee9b, 0xea84, 0xf890, 0x0737, 0x03f9,
+ 0xfb2b, 0xf1a7, 0xede2, 0xfeac, 0x114d, 0x17fb,
+ 0x1f13, 0x1ee2, 0x13bc, 0x0c21, 0x074f, 0x044f,
+ 0x04f9, 0x0322, 0x0152, 0x005d, 0xfd23, 0xfd39,
+ 0xfe39, 0xfd53, 0x00ea, 0x0501, 0x0733, 0x0cf7,
+ 0x121f, 0x1302, 0x0e35, 0x03f7, 0x0406, 0x0fdd,
+ 0x100a, 0x055d, 0x036d, 0x0980, 0x107d, 0x1485,
+ 0x0fb5, 0x084d, 0x05cb, 0x035e, 0x0292, 0x0483,
+ 0xff37, 0xf561, 0xf220, 0xf529, 0xf9b0, 0xf869,
+ 0xefc4, 0xe95c, 0xe6c2, 0xe991, 0xf459, 0xf516,
+ 0xeac8, 0xee4c, 0xfa89, 0x022b, 0x0d3b, 0x1762,
+ 0x1e58, 0x2aca, 0x3063, 0x2858, 0x2008, 0x1745,
+ 0x0b83, 0x0708, 0x0b36, 0x0d14, 0x07f8, 0x0431,
+ 0x04a0, 0x0097, 0xf9a0, 0xf639, 0xf33a, 0xf269,
+ 0xf929, 0x0075, 0xfe19, 0xf97e, 0x0170, 0x0a02,
+ 0x0462, 0x0265, 0x0865, 0x0839, 0x0c0b, 0x114b,
+ 0x09cc, 0x06c9, 0x0a15, 0x0591, 0x05c1, 0x060c,
+ 0xf855, 0xef0a, 0xf0a2, 0xf2f4, 0xf810, 0xfad8,
+ 0xf8a4, 0xf77f, 0xf2db, 0xeec8, 0xf433, 0xfa30,
+ 0xfc5a, 0x0074, 0x05ac, 0x08e6, 0x04ce, 0xf4f0,
+ 0xe46d, 0xe6ec, 0xfc98, 0x0d16, 0x0bfd, 0x0697,
+ 0x0403, 0x01b5, 0x01f9, 0x02ab, 0xffb8, 0xf8eb,
+ 0xee4f, 0xe7fb, 0xecca, 0xf4a5, 0xf852, 0xf82a,
+ 0xf5b6, 0xf696, 0xfe38, 0x05f7, 0x068f, 0x0599,
+ 0x0e72, 0x1a2a, 0x16e8, 0x0840, 0xffcd, 0x004f,
+ 0x005d, 0xfe14, 0x00b2, 0x06a3, 0x0708, 0x06b0,
+ 0x0be7, 0x0d6d, 0x0767, 0x00de, 0xf992, 0xf092,
+ 0xed7b, 0xf2fa, 0xf814, 0xf633, 0xf4c9, 0xfc03,
+ 0x027c, 0xfc5a, 0xf43c, 0xf7ca, 0xf92f, 0xebfb,
+ 0xe6af, 0xf93f, 0x0d1e, 0x14ed, 0x2086, 0x3042,
+ 0x33b0, 0x2d4c, 0x2718, 0x1fac, 0x1777, 0x114a,
+ 0x0d4c, 0x0e08, 0x0f53, 0x0a4a, 0x034b, 0xfbd4,
+ 0xf36f, 0xf466, 0xff8c, 0x0ab6, 0x12a2, 0x1542,
+ 0x1208, 0x08eb, 0xf9d4, 0xf293, 0xf826, 0xfc25,
+ 0x0038, 0x074d, 0x072f, 0x05ae, 0x051e, 0xfe21,
+ 0xfc31, 0x0202, 0x0493, 0x06be, 0x057e, 0xfc13,
+ 0xf427, 0xedb9, 0xe558, 0xe2a8, 0xe989, 0xf741,
+ 0x0427, 0x0a59, 0x095f, 0xfebe, 0xf48c, 0xf58b,
+ 0xf49f, 0xefd2, 0xf0d6, 0xeefc, 0xebe4, 0xf0ba,
+ 0xf780, 0xff72, 0x02ee, 0xfbf9, 0xfc74, 0x05d9,
+ 0x068b, 0x0093, 0xf73c, 0xed83, 0xed6c, 0xf241,
+ 0xf840, 0xfef6, 0xfd31, 0xfbd3, 0x0386, 0x06b5,
+ 0x0533, 0x04b1, 0x0168, 0x016e, 0x0216, 0xfb92,
+ 0xfc4e, 0x07b4, 0x0d98, 0x0e52, 0x0e42, 0x075e,
+ 0xfd29, 0xf97d, 0xfc2c, 0xff53, 0x010b, 0x0146,
+ 0xfc62, 0xf2fd, 0xf18a, 0xfe40, 0x08c7, 0x0448,
+ 0xfe7b, 0x01c0, 0x03bb, 0x0096, 0xff24, 0x01d8,
+ 0x0546, 0xfe4f, 0xeb7e, 0xe116, 0xe9f2, 0xfa74,
+ 0x043e, 0x055a, 0x0cb3, 0x1c2a, 0x1ea4, 0x17df,
+ 0x19e5, 0x196e, 0x0eab, 0x05f4, 0x0268, 0x0279,
+ 0x02e9, 0xfde6, 0xfbd8, 0x034a, 0x0aed, 0x0ca7,
+ 0x07b2, 0x0035, 0x00d6, 0x0858, 0x0e01, 0x1180,
+ 0x1159, 0x0ccc, 0x0ac2, 0x0b15, 0x07d6, 0x029b,
+ 0xfd6a, 0xf845, 0xf84d, 0xfe81, 0x03ef, 0x0684,
+ 0x0759, 0x04c6, 0x0161, 0xff7f, 0xfc61, 0xfb0b,
+ 0xfe4e, 0xfebe, 0xfa5f, 0xf9d7, 0xff58, 0x0311,
+ 0xffe6, 0xfad5, 0xfa99, 0xfce0, 0xfd4a, 0xfcbf,
+ 0xf98c, 0xf098, 0xe9d2, 0xefd2, 0xfc50, 0x036b,
+ 0x067e, 0x06eb, 0x02be, 0x02e1, 0x0a60, 0x0dc3,
+ 0x0897, 0xfdd2, 0xf492, 0xf752, 0xff29, 0xffbd,
+ 0x00c1, 0x097d, 0x1387, 0x15d6, 0x0d00, 0x03bb,
+ 0xff16, 0xf631, 0xf15f, 0xf75e, 0xfaa3, 0x0034,
+ 0x0d81, 0x0f49, 0x06e2, 0x023e, 0xfd62, 0xfd53,
+ 0x07af, 0x0f67, 0x0e2f, 0x06c1, 0xfcf9, 0xf860,
+ 0xfa47, 0x019b, 0x0a59, 0x0a63, 0x0835, 0x0ea5,
+ 0x1392, 0x0f98, 0x0590, 0xf6df, 0xeb85, 0xe778,
+ 0xe584, 0xe995, 0xf748, 0x0363, 0x0432, 0x01c9,
+ 0x06b3, 0x0be8, 0x0ffa, 0x1ef2, 0x2bd4, 0x2493,
+ 0x185f, 0x11ad, 0x083e, 0xffc4, 0xffa9, 0x05c0,
+ 0x09a4, 0x05a1, 0x0277, 0x0338, 0xfdb5, 0xf5d8,
+ 0xf3ee, 0xf49e, 0xf594, 0xf54a, 0xf4da, 0xf6ff,
+ 0xf76d, 0xf991, 0x0218, 0x048c, 0xfb8c, 0xf2d0,
+ 0xf2bb, 0xf835, 0xf8fa, 0xf5e2, 0xf7a6, 0xfa28,
+ 0xfd39, 0x04f4, 0x0762, 0x0328, 0xffb0, 0xfc31,
+ 0xfcb1, 0xfe36, 0xf5a9, 0xe9eb, 0xe382, 0xe42a,
+ 0xef1a, 0xf901, 0xf84a, 0xf429, 0xef69, 0xec85,
+ 0xecb0, 0xea3a, 0xedb5, 0xfbec, 0x0548, 0x0663,
+ 0x05e0, 0x0203, 0xfa62, 0xf217, 0xf2e4, 0x02d0,
+ 0x1032, 0x0cee, 0x041c, 0xffb4, 0xfcba, 0xf833,
+ 0xf6a4, 0xfa67, 0xfb48, 0xfab5, 0x02ad, 0x09c6,
+ 0x06a0, 0x0235, 0xfacd, 0xebf3, 0xe88d, 0xf92f,
+ 0x0808, 0x0aed, 0x0c9e, 0x0bb4, 0x04b3, 0x008e,
+ 0xfc64, 0xf397, 0xf2e9, 0xfba3, 0x02b2, 0x0987,
+ 0x0fda, 0x0e09, 0x04f5, 0xfaa8, 0xf559, 0xf973,
+ 0x01eb, 0x0421, 0xfbba, 0xece8, 0xe010, 0xe1e4,
+ 0xf46c, 0xffe2, 0xfc2e, 0x0281, 0x0fee, 0x0d9c,
+ 0x0983, 0x102e, 0x110b, 0x0777, 0xff82, 0x041f,
+ 0x1298, 0x16dc, 0x0bd9, 0x018c, 0xfee5, 0x0136,
+ 0x040d, 0x04bf, 0x0646, 0x0712, 0x04fb, 0x034f,
+ 0x0254, 0x0197, 0xfeea, 0xfc3b, 0x01dc, 0x046e,
+ 0xfa9f, 0xf7bd, 0xfcce, 0xfc46, 0xfdce, 0xfdf7,
+ 0xf488, 0xee5a, 0xef52, 0xf6d0, 0x06fd, 0x0f37,
+ 0x095e, 0x0461, 0x0272, 0x01d6, 0x061f, 0x0941,
+ 0x0534, 0xffed, 0xffd0, 0xfd90, 0xf217, 0xe9a7,
+ 0xee71, 0xf815, 0xfada, 0xf3f1, 0xf24e, 0x00dd,
+ 0x0d20, 0x0b8f, 0x0647, 0x00c4, 0xfe64, 0x00aa,
+ 0x02a1, 0x0919, 0x0e7e, 0x089b, 0x071d, 0x0e64,
+ 0x0f85, 0x0c6a, 0x0681, 0xfc8b, 0xf80a, 0xf6a7,
+ 0xf19e, 0xea74, 0xe28e, 0xe46e, 0xf33f, 0x00da,
+ 0x0a89, 0x0dce, 0x04c6, 0xfecf, 0x000f, 0xf9c4,
+ 0xf51d, 0xfb1d, 0xfcf2, 0xfab2, 0xffe4, 0x063e,
+ 0x06d8, 0x078d, 0x0bc8, 0x0f06, 0x0c84, 0x0636,
+ 0x02e6, 0x034e, 0x02a7, 0xfefb, 0xf4cb, 0xe486,
+ 0xdc62, 0xe324, 0xefb7, 0xfdbd, 0x06a0, 0x028d,
+ 0x0120, 0x0df0, 0x1602, 0x1084, 0x0c48, 0x0e03,
+ 0x10dd, 0x166c, 0x1e8c, 0x22e8, 0x20c0, 0x1cf6,
+ 0x1c3e, 0x1b71, 0x143b, 0x079d, 0xfd21, 0xfa02,
+ 0xfdd8, 0x028c, 0x030f, 0x0362, 0x04fa, 0x03c2,
+ 0x05f9, 0x0e6e, 0x11b9, 0x0d6c, 0x05b9, 0xfe98,
+ 0x02c5, 0x0b2c, 0x0730, 0x0206, 0x03e1, 0x01e6,
+ 0x013b, 0x084d, 0x0e19, 0x0e8e, 0x0a29, 0x04da,
+ 0x02fc, 0xffa7, 0xfcf0, 0xfcb2, 0xf29e, 0xe560,
+ 0xe88a, 0xf4f8, 0xfc01, 0xff59, 0x0201, 0xfd47,
+ 0xec43, 0xddd8, 0xe0eb, 0xeae3, 0xf315, 0xfc56,
+ 0x01c4, 0x055d, 0x0983, 0x0170, 0xf527, 0xfc25,
+ 0x0c51, 0x0f90, 0x0a75, 0x0640, 0xff10, 0xf4e4,
+ 0xee21, 0xeba6, 0xedd4, 0xf511, 0xf824, 0xf36e,
+ 0xf132, 0xf31e, 0xf34f, 0xf3f6, 0xf740, 0xfa51,
+ 0xfa9f, 0xfa3a, 0xfe53, 0x02f9, 0x01e9, 0x000c,
+ 0xffea, 0x009a, 0x02cb, 0xfd28, 0xef94, 0xecb3,
+ 0xf6c3, 0x009b, 0x037a, 0xfb3c, 0xef8f, 0xeff6,
+ 0xf876, 0xfa26, 0xf13d, 0xe49f, 0xdbdf, 0xd840,
+ 0xdd4c, 0xec02, 0xf477, 0xf386, 0xfd2d, 0x0e0a,
+ 0x0df8, 0xffe4, 0xfd0b, 0x0988, 0x0ed2, 0x07b1,
+ 0x06a2, 0x0981, 0x04f7, 0x0146, 0x002b, 0xfe03,
+ 0x003d, 0x011a, 0xfcc5, 0xfb77, 0xf864, 0xefac,
+ 0xeb1b, 0xeecf, 0xf8f8, 0x018d, 0x017b, 0x0037,
+ 0xfe4a, 0xf7c6, 0xf53a, 0xf23b, 0xeb35, 0xf3de,
+ 0x07f6, 0x0b96, 0xff51, 0xf3d6, 0xeec6, 0xf0e0,
+ 0xf753, 0xfada, 0xf6c3, 0xefda, 0xed82, 0xefe5,
+ 0xf77a, 0xff21, 0xfbd4, 0xf6a2, 0xf85a, 0xf3c0,
+ 0xebbf, 0xee05, 0xf2a8, 0xf117, 0xe9eb, 0xe38f,
+ 0xe89d, 0xef07, 0xec3e, 0xf010, 0xfc98, 0x02e9,
+ 0x02cd, 0xff91, 0xfd19, 0xffbd, 0x0137, 0xfffb,
+ 0xfcbd, 0xf366, 0xedba, 0xf344, 0xfacd, 0x0042,
+ 0x02ce, 0x0038, 0xfc15, 0xf885, 0xf89b, 0xfcc2,
+ 0xfd77, 0xfd9b, 0x01a5, 0x0486, 0x09c8, 0x0e1e,
+ 0x0669, 0x0249, 0x0dc0, 0x146c, 0x0f2a, 0x0c69,
+ 0x0c10, 0x0609, 0xfcb4, 0xf48a, 0xf0c2, 0xf974,
+ 0x0ea0, 0x1e74, 0x1d3d, 0x12f2, 0x0a80, 0x07a8,
+ 0x060b, 0xfffa, 0xf613, 0xeaea, 0xe96b, 0xf94a,
+ 0x0669, 0x0760, 0x0eec, 0x17e5, 0x14fb, 0x13bf,
+ 0x174d, 0x173a, 0x163e, 0x1312, 0x0ea0, 0x0b6f,
+ 0x0331, 0xffec, 0x0f00, 0x20e4, 0x23d4, 0x198e,
+ 0x0f60, 0x11d0, 0x176e, 0x0e9e, 0xfd26, 0xf47f,
+ 0xfa6c, 0x03e3, 0x04ad, 0x01f5, 0x004d, 0xf9f1,
+ 0xf561, 0xfbc3, 0x04f1, 0x0860, 0x0b44, 0x12cf,
+ 0x1559, 0x0c73, 0x04ee, 0x01b4, 0xf915, 0xf33a,
+ 0xf859, 0x000a, 0x052b, 0x0796, 0x08ed, 0x0860,
+ 0xffbc, 0xf824, 0xfd74, 0x021c, 0xf9fb, 0xeddb,
+ 0xea26, 0xee85, 0xec64, 0xe70c, 0xf200, 0x038b,
+ 0x0c1e, 0x10ab, 0x0f28, 0x0a8b, 0x07ca, 0xfb80,
+ 0xf1f9, 0xf9ae, 0xfdc5, 0x01d6, 0x1510, 0x1d80,
+ 0x1297, 0x09a6, 0x0484, 0x0219, 0x02eb, 0x002b,
+ 0xfe43, 0xfe3b, 0xfc1f, 0xfe8a, 0xffa6, 0xf8cf,
+ 0xf841, 0xffc1, 0x06d3, 0x0f85, 0x0f74, 0xff74,
+ 0xf65c, 0x0099, 0x0c83, 0x0d58, 0x077c, 0x0501,
+ 0x0d3a, 0x1c08, 0x2452, 0x1dfa, 0x0f7f, 0x06f5,
+ 0x06e1, 0x097a, 0x0edb, 0x104f, 0x04c0, 0xf786,
+ 0xf10f, 0xec09, 0xf0d9, 0xfdfb, 0xfe04, 0xfb69,
+ 0x0c83, 0x1fcf, 0x2099, 0x1554, 0x0988, 0x04c0,
+ 0x0494, 0x01b3, 0x026c, 0x0b33, 0x10f2, 0x0d80,
+ 0x06e7, 0x037c, 0x02c6, 0x0104, 0x00cf, 0x0581,
+ 0x081d, 0x02c6, 0xfd7c, 0xffeb, 0x0113, 0xf8a3,
+ 0xf12b, 0xf2b6, 0xf85c, 0x01de, 0x0cb2, 0x102d,
+ 0x0db6, 0x07ad, 0xfeec, 0xfda4, 0x01f4, 0x0047,
+ 0x040c, 0x1536, 0x1cc8, 0x1357, 0x0c90, 0x0699,
+ 0xf716, 0xed84, 0xf17e, 0xf871, 0x0252, 0x098c,
+ 0x06e8, 0x08e8, 0x0de7, 0x05a7, 0xfbf0, 0xf6cf,
+ 0xeece, 0xf3d5, 0x0689, 0x0dd2, 0x0a38, 0x07a0,
+ 0x05a8, 0x0375, 0xfd63, 0xfb34, 0x0a7e, 0x19d3,
+ 0x157d, 0x0940, 0xff5d, 0xf64e, 0xf355, 0xfa0b,
+ 0x03d9, 0x090a, 0x07f1, 0x0213, 0xfd20, 0x0203,
+ 0x0a01, 0x0761, 0xffa8, 0xf7a1, 0xef73, 0xf448,
+ 0xff24, 0xfc3a, 0xf946, 0xfe7c, 0xf8e6, 0xef1e,
+ 0xf86c, 0x103b, 0x1e5d, 0x169e, 0x0782, 0x010a,
+ 0x0139, 0x0656, 0x0a51, 0x033d, 0xfba9, 0xfbfd,
+ 0xfcfe, 0xfeab, 0xfcd4, 0xf13d, 0xe607, 0xe31a,
+ 0xea76, 0xf782, 0xfaed, 0xfdd6, 0x1042, 0x1b8a,
+ 0x1298, 0x09be, 0x05f4, 0x029d, 0x0537, 0x0b59,
+ 0x0d4c, 0x0ad6, 0x08d3, 0x076b, 0x026e, 0x017c,
+ 0x0a35, 0x0ef3, 0x0bf5, 0x0b35, 0x0d0f, 0x11c9,
+ 0x17f1, 0x159f, 0x0d27, 0x068d, 0xff7c, 0xfa72,
+ 0xfc93, 0xff7e, 0xfe29, 0xfbdc, 0xf9e7, 0xf946,
+ 0xfa53, 0xf910, 0xfcc9, 0x0d21, 0x1617, 0x0f13,
+ 0x0d39, 0x0c21, 0x00ae, 0xfd5e, 0x01f7, 0x0381,
+ 0x0aa2, 0x0e9e, 0x068b, 0xff75, 0xf96f, 0xf64a,
+ 0xfb64, 0xfa53, 0xf307, 0xee8e, 0xe980, 0xed32,
+ 0xf96b, 0xff1e, 0xff84, 0xf5d8, 0xe961, 0xf702,
+ 0x0c8e, 0x0c29, 0x084d, 0x07c6, 0xfd27, 0xf105,
+ 0xeeb2, 0xf50f, 0xfa98, 0xfaca, 0xfead, 0x024c,
+ 0xfe41, 0xfb2c, 0xf797, 0xf24f, 0xf3e6, 0xf674,
+ 0xf920, 0x030c, 0x0943, 0x01cd, 0xf301, 0xeb33,
+ 0xedd0, 0xeb07, 0xe855, 0xf6b8, 0x066d, 0x10d8,
+ 0x1c1b, 0x1688, 0x04c8, 0xfd42, 0xfbf3, 0xff72,
+ 0x03d8, 0xfcb3, 0xf6f8, 0xf9b0, 0xf8ed, 0xf5e9,
+ 0xf15c, 0xeb79, 0xe779, 0xe2f9, 0xead3, 0xfc84,
+ 0xfb7d, 0xf76e, 0x0a13, 0x1852, 0x108c, 0x071c,
+ 0x0ad3, 0x1394, 0x10d2, 0x0bcd, 0x1147, 0x0e3c,
+ 0x0348, 0x021f, 0xfed8, 0xfa87, 0x00ee, 0x03a0,
+ 0x04cc, 0x0dde, 0x0e78, 0x0843, 0x0ad0, 0x0f90,
+ 0x0cfb, 0x04a0, 0x0089, 0x03b6, 0x0196, 0xfee1,
+ 0x04a2, 0x00d1, 0xf3b3, 0xf5c7, 0x05dc, 0x1359,
+ 0x1429, 0x09e1, 0x044d, 0x0390, 0xfe42, 0x0026,
+ 0x0a57, 0x0c1b, 0x06b1, 0x00fc, 0xfde4, 0x01c2,
+ 0x00fd, 0xf45e, 0xed4d, 0xeefa, 0xec91, 0xee1a,
+ 0xfa63, 0xfd83, 0xf171, 0xef23, 0xfd1f, 0x06a7,
+ 0x07d1, 0x09aa, 0x0a6f, 0x0882, 0x03f5, 0xfdb3,
+ 0xfbf3, 0xfada, 0xf645, 0xf897, 0x0042, 0x0298,
+ 0x02e2, 0x0390, 0x00da, 0xf92e, 0xf0ab, 0xf451,
+ 0xffd2, 0xffb8, 0xfde1, 0x0836, 0x0e57, 0x0958,
+ 0x04ea, 0x02e5, 0xfd65, 0xf3ab, 0xf244, 0xfe7d,
+ 0x03cf, 0xfcab, 0xfaeb, 0xff16, 0x04a5, 0x0df8,
+ 0x12b2, 0x11cc, 0x127d, 0x0ecc, 0x0683, 0x022a,
+ 0xfd15, 0xf59b, 0xf6a2, 0xfce5, 0xf89d, 0xeaae,
+ 0xe441, 0xf07b, 0x056f, 0x0aa7, 0xffaf, 0x0058,
+ 0x0c41, 0x0c38, 0x08ec, 0x10db, 0x1825, 0x16c8,
+ 0x115f, 0x0cbd, 0x09a7, 0x03e0, 0xffab, 0x0012,
+ 0xfae2, 0xf370, 0xf3d2, 0xf6d3, 0xfaf0, 0x00fa,
+ 0x04ae, 0x0658, 0x0174, 0xfb07, 0x076a, 0x1ba4,
+ 0x19f0, 0x08a2, 0xfec1, 0xfc0a, 0xf450, 0xecb5,
+ 0xf3fd, 0x01bf, 0x04bd, 0x02ca, 0x0546, 0x047b,
+ 0xfa3c, 0xf2ca, 0xf756, 0xfa52, 0xfa87, 0x0580,
+ 0x0c32, 0x04dc, 0x00df, 0xfd0f, 0xf5aa, 0xf59f,
+ 0xf327, 0xedfd, 0xf5e6, 0x024f, 0x061c, 0xfd65,
+ 0xedd3, 0xeb4d, 0xf368, 0xfa90, 0x0824, 0x109e,
+ 0x0a71, 0x05cf, 0xff09, 0xf3b3, 0xf41c, 0xf97a,
+ 0xf921, 0xf643, 0xf1dd, 0xf140, 0xf11a, 0xec65,
+ 0xef36, 0xf5f7, 0xf4bf, 0xf34a, 0xf636, 0xff13,
+ 0x0c05, 0x0d8d, 0x06d5, 0x062d, 0x04df, 0xfeb1,
+ 0xfc61, 0x01f5, 0x08f1, 0x07a0, 0x02a1, 0x00e9,
+ 0xff72, 0x00ed, 0x0065, 0xf95e, 0xfdd1, 0x0aab,
+ 0x0dab, 0x1030, 0x1154, 0x07ba, 0x025c, 0x020d,
+ 0xfd24, 0xfa1b, 0xf555, 0xec1d, 0xebe2, 0xf7f5,
+ 0x06d0, 0x0b1d, 0x0589, 0x0bf9, 0x1d9b, 0x22e9,
+ 0x1c33, 0x15dd, 0x10ed, 0x0a95, 0x0413, 0x0665,
+ 0x0e23, 0x07fe, 0xf8e0, 0xf592, 0xf8ab, 0xf354,
+ 0xeb73, 0xec8c, 0xf2d2, 0xf57a, 0xf249, 0xe7a2,
+ 0xdff3, 0xed37, 0x0254, 0x09e5, 0x0dfa, 0x113b,
+ 0x06e8, 0xfacc, 0xfb10, 0x00eb, 0x06b3, 0x0c21,
+ 0x11bd, 0x15cb, 0x1114, 0x061b, 0xfd2f, 0xf676,
+ 0xf74c, 0x00dd, 0x0498, 0x03c3, 0x09b3, 0x0c8e,
+ 0x074b, 0x0262, 0xf7c0, 0xeaec, 0xf262, 0x0662,
+ 0x0d66, 0x0af2, 0x074a, 0xfee4, 0xfc69, 0x08c2,
+ 0x15a0, 0x166d, 0x0f4f, 0x09bc, 0x08dd, 0x069a,
+ 0x0108, 0xfe0b, 0xfe1b, 0xff98, 0x019b, 0xff8e,
+ 0xfbc8, 0xfa09, 0xf33f, 0xe93c, 0xe6ab, 0xe7e2,
+ 0xe87a, 0xf004, 0x008d, 0x10ee, 0x1699, 0x12fd,
+ 0x1132, 0x0f4b, 0x080c, 0x04d6, 0x0605, 0x02f2,
+ 0xff52, 0xfd84, 0xfd0d, 0x0063, 0x018d, 0x00a3,
+ 0x0244, 0xfe24, 0xfa93, 0x047a, 0x0ce2, 0x0b53,
+ 0x0946, 0x051f, 0xff9b, 0xf8f8, 0xec95, 0xea7a,
+ 0xf58f, 0xf438, 0xee0e, 0xfaec, 0x08c4, 0x0633,
+ 0x08a7, 0x19ac, 0x1fec, 0x1442, 0x0f66, 0x1462,
+ 0x100e, 0x0442, 0xfe0a, 0x0110, 0x0999, 0x0d52,
+ 0x0a5b, 0x072d, 0x0385, 0x01b3, 0x025a, 0xff7b,
+ 0xfb7d, 0xf5cd, 0xf0d5, 0xfe22, 0x136e, 0x1655,
+ 0x113b, 0x10d8, 0x0e99, 0x0fd6, 0x16a7, 0x17e8,
+ 0x0f8d, 0x02e7, 0x001b, 0x0987, 0x0c9e, 0x0a33,
+ 0x0dd6, 0x0c12, 0x0258, 0xfc95, 0xf935, 0xfb6b,
+ 0x05b6, 0x07c5, 0x04f9, 0x0edb, 0x15ba, 0x0acb,
+ 0x021b, 0x0599, 0x07a2, 0x0556, 0x0552, 0x0261,
+ 0xf3c1, 0xe621, 0xedc6, 0xff7b, 0x0730, 0x0c17,
+ 0x1178, 0x0ca5, 0x002b, 0xf36e, 0xee6c, 0xf724,
+ 0x002e, 0x0120, 0x01d5, 0x000e, 0xf9c5, 0xf375,
+ 0xeccc, 0xe787, 0xdf19, 0xd605, 0xe2c1, 0xfbf2,
+ 0x0307, 0xffdb, 0xfe3c, 0xf974, 0xfc6c, 0x095f,
+ 0x0d30, 0x022b, 0xf57c, 0xf357, 0xf735, 0xf5fc,
+ 0xf185, 0xef9e, 0xf3a7, 0xfc79, 0xfee0, 0xf6fa,
+ 0xec04, 0xe845, 0xf434, 0x00a6, 0xfffe, 0x006e,
+ 0xfe66, 0xf2f1, 0xf36b, 0xfad7, 0xf36a, 0xe638,
+ 0xe2d4, 0xef86, 0xfd68, 0xfa94, 0x00c8, 0x14d5,
+ 0x10a3, 0x0166, 0x021b, 0xffae, 0xf383, 0xe777,
+ 0xe2db, 0xed66, 0xf77d, 0xf9f0, 0x019a, 0x0531,
+ 0x01c1, 0x00bf, 0xfc7e, 0xfa2c, 0xf9c3, 0xf0a0,
+ 0xeeb2, 0xf5a9, 0xf362, 0xf0f8, 0xf2ec, 0xf310,
+ 0xf795, 0xfb43, 0xfbcc, 0x0102, 0x02fa, 0xfec8,
+ 0xf829, 0xec94, 0xe5ea, 0xea74, 0xf1da, 0xf830,
+ 0xf981, 0xf574, 0xf08c, 0xec66, 0xf0de, 0xf8d6,
+ 0xf519, 0xf26d, 0xfa35, 0xff47, 0x029b, 0x03c5,
+ 0xfa72, 0xf1cf, 0xf208, 0xf2e8, 0xefbe, 0xea81,
+ 0xeb71, 0xf65e, 0x0245, 0x06b8, 0x006c, 0xf41e,
+ 0xebc0, 0xe977, 0xede8, 0xf553, 0xf662, 0xf6c4,
+ 0xf908, 0xf3f6, 0xf1c5, 0xfa5e, 0xff2d, 0xfa43,
+ 0xf14c, 0xef8b, 0xfd8e, 0x0a12, 0x083a, 0x041b,
+ 0xfffa, 0xfd9f, 0x0843, 0x13f4, 0x0f96, 0x0309,
+ 0xf9de, 0xf5ad, 0xf3cc, 0xf026, 0xec74, 0xf0da,
+ 0xfe9b, 0x08e7, 0x07a7, 0x038b, 0xfe3a, 0xf213,
+ 0xec22, 0xf88e, 0x0a47, 0x126c, 0x1280, 0x1092,
+ 0x0c6b, 0x04f8, 0xfb39, 0xee4a, 0xea93, 0xfed3,
+ 0x1102, 0x0985, 0x09b2, 0x2027, 0x2854, 0x1d63,
+ 0x15ed, 0x0f64, 0x0916, 0x0a8e, 0x0ae2, 0x0485,
+ 0xfe67, 0xfd22, 0x01b1, 0x05bc, 0x03a8, 0x02dc,
+ 0x04eb, 0x0144, 0xfb9f, 0xfd78, 0x0386, 0x04a3,
+ 0xfff3, 0xfcb7, 0xfdb8, 0x00d1, 0x07d1, 0x0f17,
+ 0x0fc1, 0x1177, 0x196c, 0x1be1, 0x139f, 0x0824,
+ 0x0170, 0x0268, 0x028b, 0xfc40, 0xf781, 0xf506,
+ 0xf01b, 0xec3e, 0xeb33, 0xf032, 0xfbb8, 0x0091,
+ 0x006f, 0x092f, 0x104e, 0x0b6a, 0x03cc, 0xfcf1,
+ 0xfb26, 0x0234, 0x029e, 0xf80f, 0xf3d4, 0xfb10,
+ 0x082c, 0x1231, 0x0b26, 0xfbc6, 0xfb03, 0x00c8,
+ 0xfbfa, 0xfa6f, 0x04f5, 0x0760, 0xfd0a, 0xf7fc,
+ 0xfb8a, 0x01ea, 0x07f1, 0x04c9, 0xfc78, 0xfdcf,
+ 0x02f1, 0x0066, 0xf998, 0xf3d6, 0xf519, 0xff3e,
+ 0x098f, 0x1050, 0x1219, 0x0985, 0xfcf5, 0xf82a,
+ 0xfc44, 0x0418, 0x09e4, 0x0b6d, 0x09cf, 0x0797,
+ 0x09b0, 0x0c3e, 0x06c1, 0xfe3d, 0xf941, 0xf7e3,
+ 0xfb4a, 0xff79, 0x036a, 0x0abb, 0x0b8e, 0xff6f,
+ 0xf0be, 0xe957, 0xf15e, 0x041d, 0x0a58, 0x0232,
+ 0x0256, 0x0e99, 0x17eb, 0x193b, 0x191e, 0x198b,
+ 0x1591, 0x0cb7, 0x06b2, 0x09c2, 0x0b64, 0x0060,
+ 0xfafc, 0x05a9, 0x0b6b, 0x0af7, 0x0a69, 0x004b,
+ 0xfd6c, 0x068f, 0xfef4, 0xf180, 0xf032, 0xed6d,
+ 0xf11f, 0xfae6, 0xf641, 0xf0e9, 0xf431, 0xf72b,
+ 0xff4c, 0x04b5, 0x0549, 0x0f67, 0x139d, 0x0ab7,
+ 0x06c1, 0x04ba, 0x044a, 0x08a4, 0x0546, 0x0371,
+ 0x0a2f, 0x0503, 0xf92e, 0xfd06, 0x0b3f, 0x1170,
+ 0x0870, 0xfe12, 0x02d2, 0x0d32, 0x0cf8, 0x05cd,
+ 0x0191, 0xfe18, 0xf818, 0xf8b9, 0x013c, 0x06ba,
+ 0x09e6, 0x0ce8, 0x0a86, 0x0320, 0xfe69, 0x09be,
+ 0x1923, 0x0d15, 0xf93b, 0xfa7f, 0xfac0, 0xf88e,
+ 0x0251, 0x0771, 0x09a8, 0x0aa0, 0xfd13, 0xf637,
+ 0xf933, 0xf337, 0xfa87, 0x0c9e, 0x0b16, 0x06ed,
+ 0x09d2, 0x03ae, 0x0097, 0x0a1d, 0x13a8, 0x11c6,
+ 0x02f7, 0xfa0e, 0x01b4, 0x07b1, 0x0384, 0xfe3f,
+ 0xfd50, 0xff93, 0xfeae, 0xf910, 0xf33a, 0xf436,
+ 0x01a9, 0x09fc, 0xfba8, 0xeaf4, 0xea23, 0xf366,
+ 0x0417, 0x1322, 0x1284, 0x0905, 0x0532, 0x0889,
+ 0x0bf7, 0x0ee9, 0x158a, 0x162f, 0x083d, 0xfb53,
+ 0xfecf, 0x094d, 0x08f1, 0xfe93, 0xf888, 0xf778,
+ 0xf658, 0xf849, 0xfd93, 0x0879, 0x11cb, 0x04a5,
+ 0xf169, 0xf74a, 0x018f, 0xfb09, 0xf90b, 0x0436,
+ 0x0c88, 0x0c72, 0x0c79, 0x1064, 0x0f71, 0x0c87,
+ 0x162e, 0x1fe6, 0x15b2, 0x073d, 0x0877, 0x0d70,
+ 0x091c, 0x0587, 0x060d, 0x0170, 0xfe92, 0x00c1,
+ 0xfc33, 0xfaf7, 0x04b5, 0x029e, 0xf4b2, 0xf2b0,
+ 0xfae0, 0x0439, 0x1185, 0x1d08, 0x1caf, 0x1407,
+ 0x0f69, 0x1163, 0x11ad, 0x0dd8, 0x07cb, 0xfc7c,
+ 0xee5b, 0xeeb6, 0x060a, 0x17be, 0x0d27, 0x001c,
+ 0xfdbf, 0xf46d, 0xee9a, 0xf3dc, 0xf3e6, 0xf86b,
+ 0x0248, 0xf90f, 0xea39, 0xea2b, 0xeae3, 0xeb7a,
+ 0xf84e, 0x0896, 0x0c9f, 0x048c, 0xff24, 0x01c1,
+ 0x055b, 0x0af9, 0x0cf4, 0x00f1, 0xf6d7, 0xfe54,
+ 0x0a05, 0x08f7, 0xfbb6, 0xf124, 0xef09, 0xeb5c,
+ 0xe8ff, 0xee20, 0xf302, 0xf887, 0xfbd9, 0xf1e8,
+ 0xe848, 0xe904, 0xe82e, 0xed1b, 0x01ff, 0x1590,
+ 0x181f, 0x0fb4, 0x0e3e, 0x1437, 0x1005, 0x0e6d,
+ 0x1c3d, 0x183a, 0x038c, 0x0948, 0x1b6e, 0x19cd,
+ 0x1384, 0x1134, 0x06e9, 0xf6de, 0xec8d, 0xf1b4,
+ 0x035a, 0x1265, 0x126f, 0x004f, 0xf217, 0xf9ff,
+ 0xfbdb, 0xede9, 0xf19d, 0x0212, 0x065f, 0x0785,
+ 0x096b, 0x064a, 0x07c3, 0x100c, 0x10b3, 0x0562,
+ 0x06b0, 0x1e9f, 0x24eb, 0x0efa, 0x0551, 0x067d,
+ 0xff8a, 0xff58, 0x0009, 0xf6b3, 0xf64f, 0xfceb,
+ 0xfccf, 0xfda3, 0xfb4e, 0xed67, 0xe627, 0xf380,
+ 0x085e, 0x16eb, 0x1a31, 0x0ec8, 0x02fc, 0x092c,
+ 0x1404, 0x1329, 0x07d8, 0xf3f1, 0xee1d, 0x03bd,
+ 0x0fcf, 0x05ed, 0x029e, 0x05c2, 0x05dc, 0x049a,
+ 0xfe2e, 0xfaba, 0x0180, 0x0901, 0x0681, 0xf716,
+ 0xeefc, 0xf716, 0xf4ba, 0xed4b, 0xf53a, 0xfc1d,
+ 0x0266, 0x0cd1, 0x0859, 0x010e, 0x0414, 0x02cc,
+ 0xfee4, 0xfc91, 0x0092, 0x0d78, 0x08be, 0xf8d4,
+ 0xfc8a, 0xfdb2, 0xf306, 0xf307, 0xf144, 0xede9,
+ 0xfaad, 0xffd7, 0xef20, 0xe601, 0xf0fb, 0xf38c,
+ 0xe598, 0xeefd, 0x0fca, 0x19bf, 0x151d, 0x1726,
+ 0x0d96, 0x02ff, 0x08f5, 0x0dc2, 0x0a5e, 0x06d9,
+ 0x0e09, 0x1d90, 0x1883, 0x06bb, 0x09b3, 0x11af,
+ 0x0ce9, 0x0350, 0xf50e, 0xf0f2, 0xfe47, 0x05a5,
+ 0x0566, 0x05d9, 0xff3e, 0xfa63, 0xff03, 0xfef2,
+ 0xf852, 0xf645, 0xf8bb, 0xfb49, 0xfeed, 0x025f,
+ 0x02d2, 0x00e2, 0xfb78, 0xfbc3, 0x0d08, 0x181d,
+ 0x0c5e, 0x0461, 0x05eb, 0x0080, 0xfc52, 0xfb42,
+ 0xf4e8, 0xeee9, 0xeb9e, 0xeb74, 0xefca, 0xf670,
+ 0xfdc6, 0xfaaa, 0xf348, 0xfc50, 0x0429, 0x043f,
+ 0x0f2d, 0x0c36, 0xf9c8, 0xfd8d, 0x055a, 0x0232,
+ 0x0636, 0x00d2, 0xf424, 0xf454, 0xeeca, 0xe877,
+ 0xf199, 0xf523, 0xf251, 0xf2cd, 0xeda6, 0xebdd,
+ 0xf451, 0xfd16, 0x02e2, 0x031d, 0x00a7, 0xff99,
+ 0xfdae, 0xfedf, 0xfafc, 0xeda3, 0xedec, 0xf9d7,
+ 0xfe2b, 0xffd3, 0xfb9a, 0xf236, 0xf67c, 0x01e5,
+ 0x05a6, 0x039f, 0x01ba, 0x06ec, 0x08b6, 0x0088,
+ 0x0005, 0xffad, 0xf6aa, 0xf93a, 0x002f, 0xff65,
+ 0xffbe, 0xf97b, 0xf288, 0xf440, 0xeefd, 0xf4e5,
+ 0x1057, 0x1a8e, 0x1681, 0x18b4, 0x117f, 0x074d,
+ 0x04d0, 0x02b6, 0x0701, 0x094c, 0x0451, 0x0818,
+ 0x0800, 0xffde, 0x04e8, 0x0abc, 0x068a, 0x00ca,
+ 0xf49e, 0xede4, 0xf579, 0xf8ee, 0xfab3, 0x00f0,
+ 0x03a2, 0x072e, 0x04f4, 0xf8ec, 0xf5b7, 0xf650,
+ 0xf0e5, 0xf12c, 0xf1e4, 0xed01, 0xeafd, 0xe92e,
+ 0xe89a, 0xece3, 0xef09, 0xf262, 0xfad3, 0x01d5,
+ 0x08a2, 0x0f2b, 0x0dc5, 0x05ec, 0x012a, 0x02f6,
+ 0x079d, 0x0d32, 0x0bac, 0xfc75, 0xf66e, 0x03b2,
+ 0x05c5, 0xfa3a, 0xf69c, 0xf6ef, 0xfa0b, 0xfd5c,
+ 0xf884, 0xfd1a, 0x08a7, 0x05e1, 0x060a, 0x0cce,
+ 0x066c, 0xffed, 0xffd2, 0xfba4, 0xfb18, 0xff8c,
+ 0x0283, 0xfe72, 0xf12c, 0xf34c, 0x0832, 0x0ba6,
+ 0x00dd, 0xffe4, 0x0183, 0x01d6, 0x0086, 0xf97a,
+ 0xf591, 0xf436, 0xf28a, 0xf7c2, 0xfb86, 0xf8ff,
+ 0xf769, 0xf312, 0xf1b9, 0xfb03, 0x01f5, 0x062b,
+ 0x10e6, 0x16b2, 0x0d4c, 0xfcfc, 0xf08d, 0xe981,
+ 0xe978, 0xf8a5, 0x0c24, 0x0d4f, 0x04ac, 0x0235,
+ 0xfcda, 0xf0f2, 0xeb65, 0xf51a, 0x0915, 0x185a,
+ 0x1c42, 0x145c, 0x01dd, 0xf915, 0x042e, 0x0bab,
+ 0x06d8, 0x029a, 0x0145, 0x0531, 0x0d62, 0x0e61,
+ 0x088a, 0x0050, 0xf485, 0xeda8, 0xf5de, 0x09aa,
+ 0x15d7, 0x0a91, 0xfc80, 0x0480, 0x0f65, 0x0acf,
+ 0x04d9, 0x031e, 0x011a, 0x04a2, 0x0cbb, 0x0f51,
+ 0x0b08, 0x055f, 0x007e, 0xfb85, 0xf800, 0xf912,
+ 0xffa1, 0x0807, 0x0b8f, 0x0c4b, 0x1270, 0x196d,
+ 0x17be, 0x0f19, 0x0b50, 0x17a4, 0x245d, 0x193a,
+ 0x07d4, 0x020f, 0xf7c2, 0xf164, 0xfe80, 0x081b,
+ 0x07c3, 0x0c83, 0x0cb4, 0x0257, 0xfbb5, 0x0110,
+ 0x0b7d, 0x0c0b, 0x06a2, 0x0972, 0x0a3d, 0x0395,
+ 0xfff9, 0xf964, 0xef0a, 0xeb71, 0xeac0, 0xedaa,
+ 0xf8c4, 0x0299, 0x0509, 0x025e, 0x01d0, 0x0630,
+ 0x0248, 0xf8bd, 0xfb6b, 0x01b1, 0xff5b, 0xf963,
+ 0xf11a, 0xeb8b, 0xee5a, 0xf471, 0xfa1d, 0xf84b,
+ 0xedf0, 0xebda, 0xf55b, 0xff2b, 0x0516, 0x02c0,
+ 0xf987, 0xef37, 0xe3c4, 0xe2a4, 0xf327, 0x00ca,
+ 0x0020, 0xfe80, 0x00b3, 0xfc86, 0xeecb, 0xe3db,
+ 0xe78e, 0xf6da, 0x05f2, 0x0c07, 0x0b50, 0x07e2,
+ 0xfdcf, 0xf516, 0xfc70, 0x09df, 0x0d63, 0x08a8,
+ 0x01f1, 0xfea0, 0xfedb, 0xfdac, 0xfbb3, 0xf58c,
+ 0xe8e9, 0xe606, 0xf493, 0x0129, 0xfe14, 0xf722,
+ 0xf957, 0xfda6, 0xfc4e, 0xfbf6, 0xff21, 0x0117,
+ 0xfef0, 0xf853, 0xf541, 0xf6e4, 0xf1d8, 0xeb66,
+ 0xedae, 0xefe0, 0xed07, 0xea9f, 0xecc3, 0xf278,
+ 0xf293, 0xefca, 0xf7db, 0x0400, 0x0769, 0x04cb,
+ 0x02bf, 0x0601, 0x0a2e, 0x076f, 0x0199, 0xf960,
+ 0xec05, 0xe400, 0xec4a, 0xff3e, 0x0863, 0x00d5,
+ 0xf9cf, 0xf5c3, 0xf0cb, 0xf888, 0x043c, 0x0444,
+ 0x0558, 0x0765, 0x02ac, 0xfeee, 0xf88c, 0xefd1,
+ 0xec86, 0xe8b6, 0xea28, 0xf520, 0xfa4b, 0xf9d8,
+ 0xf90a, 0xf7d7, 0xfe1c, 0x0487, 0x0372, 0x0290,
+ 0xff52, 0xfdcd, 0x0109, 0xf888, 0xee3f, 0xf2cf,
+ 0xf772, 0xfa4e, 0x00dc, 0x01c2, 0x0011, 0xfe50,
+ 0xf84f, 0xf45e, 0xf54c, 0xfb07, 0x0278, 0x04ca,
+ 0x08b0, 0x0c0f, 0x05ef, 0x04cc, 0x0b4c, 0x0c54,
+ 0x0bc8, 0x0851, 0xfd38, 0xf237, 0xf253, 0x083a,
+ 0x1ce7, 0x1480, 0x0cca, 0x0ed2, 0x0172, 0x0224,
+ 0x19a2, 0x1c73, 0x142c, 0x165a, 0x1312, 0x0c08,
+ 0x05e5, 0xff50, 0x0270, 0x099c, 0x0cb7, 0x0b50,
+ 0x03a8, 0x066e, 0x1109, 0x0a01, 0x0288, 0x0a3e,
+ 0x0d0e, 0x0eb0, 0x15d8, 0x13da, 0x0b23, 0x041e,
+ 0x007c, 0x017a, 0xfeb4, 0xf80f, 0xf663, 0xf7ac,
+ 0xfb5b, 0x013f, 0x0371, 0xfff3, 0xf69f, 0xf08d,
+ 0xf8d4, 0x0782, 0x10cb, 0x0e94, 0x05d6, 0x09d4,
+ 0x151f, 0x142b, 0x0f02, 0x0a52, 0x01c6, 0xfa9f,
+ 0xf0d6, 0xecdb, 0xfd98, 0x0cc2, 0x0904, 0xfc0f,
+ 0xee89, 0xf143, 0x01a7, 0x06fc, 0x0991, 0x1124,
+ 0x0dbd, 0x065f, 0x0344, 0xfe3b, 0xfd75, 0x0110,
+ 0xff96, 0xf870, 0xf391, 0xfbd3, 0x0780, 0x08a2,
+ 0x0c41, 0x11fe, 0x0c78, 0x0877, 0x0b50, 0x0a4d,
+ 0x054f, 0xfcf6, 0xf68e, 0xf6d7, 0xf78a, 0xfa7e,
+ 0xfc8f, 0xf836, 0xfc4a, 0x05c9, 0x034e, 0xfce9,
+ 0xf88f, 0xf778, 0x024b, 0x0d8c, 0x0d1f, 0x07eb,
+ 0x0428, 0x0819, 0x0d55, 0x073c, 0x0424, 0x09fa,
+ 0x02ec, 0xf0e1, 0xedd9, 0xfdc3, 0x09e4, 0x0a5c,
+ 0x0fbc, 0x12a4, 0x04dd, 0x0042, 0x0ee7, 0x170c,
+ 0x15d6, 0x138f, 0x0d3a, 0x0391, 0xf827, 0xf5c8,
+ 0x03fd, 0x10db, 0x130c, 0x0ff5, 0x0991, 0x0c24,
+ 0x158c, 0x10cb, 0x05eb, 0x04eb, 0x0667, 0x0573,
+ 0x0355, 0x03a0, 0x0ac7, 0x0d72, 0x04af, 0xfcf9,
+ 0xf9f4, 0xf5c0, 0xf1fc, 0xf29a, 0xf6a9, 0xf6fb,
+ 0xf016, 0xe7fe, 0xe52b, 0xedd5, 0xfc5b, 0xfd67,
+ 0xf68b, 0xfaaf, 0x00e0, 0x04ff, 0x107c, 0x15bd,
+ 0x1066, 0x11e0, 0x14b6, 0x0db8, 0x0185, 0xf588,
+ 0xf73d, 0x05d4, 0x098c, 0x044b, 0xfec8, 0xf3aa,
+ 0xf6ba, 0x0b61, 0x10d8, 0x0bd0, 0x0eb8, 0x0e68,
+ 0x0c1c, 0x0b43, 0x045b, 0x0048, 0x0000, 0xfb8b,
+ 0xfa2d, 0xfc05, 0xfeaa, 0x06fd, 0x10cf, 0x19ea,
+ 0x1b20, 0x096d, 0xfa57, 0x0188, 0x0adf, 0x0679,
+ 0xfcfa, 0xf898, 0xf6bb, 0xf046, 0xef02, 0xf64e,
+ 0xf571, 0xf03c, 0xf18a, 0xf279, 0xf7f8, 0x04e5,
+ 0x0b1f, 0x0b8e, 0x0ce8, 0x0b07, 0x05e6, 0x0134,
+ 0xff44, 0xfff7, 0x02bc, 0x0519, 0xfa91, 0xebd5,
+ 0xf7d3, 0x0f5d, 0x0f06, 0x07d1, 0x0d57, 0x0c6a,
+ 0xff60, 0xf9b5, 0x0076, 0x061e, 0x06bc, 0x06a8,
+ 0xff80, 0xf4df, 0xf781, 0x014a, 0x0346, 0xfe97,
+ 0xf738, 0xf41f, 0xfa09, 0x01c9, 0x06e7, 0x0678,
+ 0x001c, 0xfe0e, 0xff72, 0xfc10, 0xf985, 0xfa79,
+ 0xfade, 0xfadf, 0xfa13, 0xfc1e, 0x0241, 0x0347,
+ 0xff9a, 0xff5a, 0x0047, 0xfd5b, 0xf630, 0xf064,
+ 0xf33a, 0xf977, 0xfbea, 0xff65, 0x0390, 0x02b6,
+ 0x03f4, 0x0cfd, 0x1527, 0x18fd, 0x1dbf, 0x21e8,
+ 0x1f9b, 0x1490, 0x0729, 0x00c8, 0xfb08, 0xf23e,
+ 0xf6f3, 0x0367, 0x006d, 0xf888, 0xfbe7, 0x0310,
+ 0x08c4, 0x0a17, 0x097e, 0x125f, 0x1ac8, 0x1387,
+ 0x0846, 0x04f9, 0x0522, 0x00d0, 0xf6fa, 0xf24a,
+ 0xf756, 0xfd40, 0xff8c, 0xff28, 0xff48, 0x005c,
+ 0xfaa5, 0xf34d, 0xf798, 0xfe9d, 0xfb31, 0xf280,
+ 0xeea4, 0xf300, 0xf863, 0xf601, 0xee4a, 0xe905,
+ 0xeccd, 0xf8d5, 0x02c9, 0x061c, 0x054a, 0x0337,
+ 0x058e, 0x0936, 0x04dc, 0xfd47, 0xfa74, 0xf974,
+ 0xf5f2, 0xeeaa, 0xe88f, 0xefe8, 0x031c, 0x0ad5,
+ 0x017d, 0x022b, 0x1132, 0x109e, 0xfe44, 0xf4c5,
+ 0xfabe, 0x028f, 0x0319, 0x04e5, 0x0f6b, 0x11eb,
+ 0x08d8, 0x08ea, 0x0c73, 0x0576, 0x001d, 0xff1a,
+ 0xfa94, 0xfb67, 0x0736, 0x123c, 0x0f1d, 0x00c7,
+ 0xf870, 0xf904, 0xf786, 0xf6db, 0xfbe2, 0xfcf8,
+ 0xf89a, 0xfae1, 0x0364, 0x0673, 0x039d, 0xfef4,
+ 0xf7fc, 0xf595, 0xfc79, 0x01d5, 0xfc7e, 0xf2d2,
+ 0xf151, 0xf777, 0xfa66, 0xfa33, 0xf95a, 0xf981,
+ 0x0667, 0x173f, 0x1815, 0x163c, 0x1b30, 0x1ace,
+ 0x178b, 0x11d1, 0x04ed, 0xf92a, 0xf46b, 0xfb2d,
+ 0x02f9, 0xf862, 0xee50, 0xf02c, 0xed33, 0xf8cb,
+ 0x1375, 0x1670, 0x102a, 0x142e, 0x0e18, 0x04e4,
+ 0x031a, 0x0100, 0x030d, 0x0118, 0xf884, 0xfb4a,
+ 0x0078, 0xff21, 0x0547, 0x0cf0, 0x088e, 0xfe20,
+ 0xfac7, 0xfffb, 0xfeb0, 0xf6ce, 0xf599, 0xf587,
+ 0xf511, 0xf84d, 0xf796, 0xf98c, 0x01a1, 0x023d,
+ 0x004d, 0x0134, 0xff2c, 0xfff1, 0x00c4, 0xfb92,
+ 0xfa07, 0xfda7, 0x018b, 0x03b2, 0xfea0, 0xf536,
+ 0xef7c, 0xf36b, 0x0125, 0x0928, 0x071c, 0x079f,
+ 0x09f2, 0x0b75, 0x08c6, 0xfbf4, 0xf698, 0x0070,
+ 0x0a29, 0x1630, 0x1c80, 0x0db4, 0x025a, 0x0893,
+ 0x0e37, 0x0e90, 0x082a, 0xfd2e, 0xfb0f, 0xff13,
+ 0x07ba, 0x173e, 0x1984, 0x0bc5, 0x041e, 0x02fe,
+ 0x00fe, 0x0065, 0xfe78, 0xfb31, 0xf950, 0xf82e,
+ 0xfaed, 0xfe8a, 0xfb01, 0xf61c, 0xf659, 0xf6ac,
+ 0xf802, 0xfddd, 0x0039, 0xfc32, 0xf9f8, 0xf9b5,
+ 0xf876, 0xfa3e, 0xfc1e, 0xf7e9, 0xf56a, 0xfe71,
+ 0x0c5b, 0x1071, 0x0997, 0x0564, 0x091b, 0x0caf,
+ 0x0b30, 0x0424, 0xfa0d, 0xf58d, 0xf560, 0xecd5,
+ 0xe2b6, 0xe924, 0xf77b, 0xff79, 0x076f, 0x0bf5,
+ 0x05e0, 0x0389, 0x06da, 0x058c, 0x0723, 0x0843,
+ 0xfd81, 0xf268, 0xee00, 0xee0e, 0xf4e8, 0xf741,
+ 0xf2ca, 0xf7f9, 0x00e3, 0x0020, 0xfb10, 0xf5e1,
+ 0xf364, 0xf799, 0xfc4c, 0xf9fb, 0xf53e, 0xfaf0,
+ 0x0578, 0xfe89, 0xedef, 0xec5d, 0xf5dd, 0xfd7a,
+ 0xff53, 0xfcad, 0xfe18, 0x0198, 0x00c3, 0x0097,
+ 0xffab, 0xffbb, 0x06d4, 0x0523, 0xf859, 0xfc9c,
+ 0x1092, 0x13b3, 0x07a0, 0x0b5e, 0x1459, 0x038c,
+ 0xf1b6, 0xf6b2, 0xfc23, 0x0897, 0x20e0, 0x2185,
+ 0x154f, 0x127c, 0x045b, 0xfa7e, 0x081f, 0x0e66,
+ 0x086c, 0x0583, 0xfee5, 0xf660, 0xf386, 0xfb9d,
+ 0x0cb9, 0x121d, 0x0da3, 0x10e6, 0x1275, 0x0d80,
+ 0x064d, 0xfa56, 0xf491, 0xf5a6, 0xf378, 0xf834,
+ 0x0250, 0x0585, 0x05e4, 0x0013, 0xf590, 0xf416,
+ 0xf2a0, 0xebdd, 0xefb5, 0xf853, 0xf4fc, 0xef11,
+ 0xf373, 0xf892, 0xf7fc, 0xfcb0, 0x0316, 0x00b2,
+ 0x0265, 0x0d6f, 0x16d9, 0x1e85, 0x2154, 0x1c8e,
+ 0x1350, 0xfe93, 0xebcd, 0xeec1, 0xf424, 0xf579,
+ 0x00a8, 0x07ce, 0x0786, 0x06dd, 0xf9c3, 0xee00,
+ 0xf544, 0xfeba, 0x07fd, 0x150a, 0x1759, 0x0f1e,
+ 0x0348, 0xfa17, 0xfd09, 0xfe38, 0xf763, 0xfc98,
+ 0x06f1, 0x054d, 0x011e, 0x00ed, 0x031a, 0x064e,
+ 0x0805, 0x0ed9, 0x1665, 0x0de1, 0xfd35, 0xf5ea,
+ 0xf71a, 0xf867, 0xf5a8, 0xf4d5, 0xfad1, 0x02d8,
+ 0x0c2e, 0x1281, 0x113f, 0x1019, 0x0b48, 0x028b,
+ 0x0365, 0xfcce, 0xea3e, 0xf278, 0x0cab, 0x1056,
+ 0x09e9, 0x0eb6, 0x1349, 0x078e, 0xf1c5, 0xf184,
+ 0x0668, 0x0dc4, 0x0fbb, 0x1b82, 0x1940, 0x09bc,
+ 0x01da, 0xfe1b, 0xfb45, 0xfe6e, 0x07ae, 0x0cc2,
+ 0x0031, 0xeeca, 0xea0c, 0xebe5, 0xf50b, 0x0313,
+ 0x068f, 0x0756, 0x0d36, 0x0b46, 0x0098, 0xf723,
+ 0xf705, 0xfe24, 0x027c, 0x0c9a, 0x1a79, 0x1464,
+ 0x06f3, 0x04de, 0x01ee, 0x03a1, 0x0d80, 0x0d30,
+ 0x0964, 0x0ab0, 0x0637, 0x0115, 0x0466, 0x0994,
+ 0x068c, 0xfe15, 0x0109, 0x0acf, 0x0bb7, 0x0f93,
+ 0x16f4, 0x15fe, 0x1887, 0x19d8, 0x0e74, 0x06c6,
+ 0x009a, 0xf618, 0xf94d, 0x01f5, 0x0428, 0x0bba,
+ 0x0de5, 0x012e, 0xf663, 0xf0d5, 0xf14f, 0xff37,
+ 0x0ede, 0x1485, 0x10cf, 0x0412, 0xf568, 0xeeee,
+ 0xf332, 0xfb2a, 0xf7e0, 0xeb72, 0xe8c3, 0xec5c,
+ 0xe9b2, 0xeaa2, 0xf411, 0xfc22, 0x0622, 0x1316,
+ 0x1255, 0x0511, 0xfdb8, 0xf8da, 0xece7, 0xe1e8,
+ 0xdbee, 0xddb7, 0xf05a, 0x04cf, 0x047c, 0xfcdd,
+ 0xff17, 0xfe8f, 0xf29f, 0xe5e9, 0xdfce, 0xdd80,
+ 0xdc92, 0xe3bb, 0xf527, 0x0115, 0xff2b, 0xf8fe,
+ 0xf4cf, 0xf8f0, 0x04f8, 0x0482, 0xf862, 0xfad2,
+ 0x0836, 0x0b78, 0x03d5, 0xf88e, 0xf220, 0xf40e,
+ 0xf615, 0xf8bd, 0xff31, 0xfefe, 0xf608, 0xeef2,
+ 0xed9f, 0xed1a, 0xebc6, 0xf26a, 0xfc3c, 0xf563,
+ 0xeb0b, 0xf6a2, 0x0661, 0x041e, 0xfc4c, 0xff69,
+ 0x0a34, 0x0bdc, 0x02b2, 0xff59, 0xff4b, 0xf812,
+ 0xefce, 0xe81e, 0xe39b, 0xeb15, 0xf67a, 0xfbcf,
+ 0xfc11, 0xf89d, 0xf653, 0xf451, 0xee3f, 0xec39,
+ 0xf331, 0xfe47, 0x02a6, 0xf8a1, 0xf50e, 0x0298,
+ 0x0371, 0xf598, 0xf5c9, 0x046d, 0x0f6e, 0x040c,
+ 0xeb2e, 0xed54, 0x00ab, 0xfe8d, 0xf6c9, 0xf6c9,
+ 0xf27e, 0xf4de, 0xfda4, 0xffeb, 0x01ec, 0x01ab,
+ 0xfec7, 0x011f, 0xfda2, 0xf42c, 0xf3e2, 0xf89b,
+ 0xf7ac, 0xe910, 0xd3d1, 0xd4f5, 0xea1c, 0xf3b6,
+ 0xf246, 0xf98d, 0x0a68, 0x14bf, 0x1016, 0x0b8b,
+ 0x0c3f, 0x039c, 0xf5c3, 0xecfe, 0xeb1e, 0xf73d,
+ 0x05ff, 0x03c6, 0xfb93, 0xfbcb, 0xff43, 0xffd3,
+ 0xfba7, 0xf435, 0xebcd, 0xe714, 0xee86, 0xfdfb,
+ 0x08e1, 0x0c5a, 0x0b52, 0x0afe, 0x0d21, 0x1165,
+ 0x18a0, 0x11e9, 0xfb49, 0xfb21, 0x1000, 0x11c4,
+ 0x0844, 0x063e, 0x01f0, 0xffd7, 0x07df, 0x12e6,
+ 0x1813, 0x1172, 0x0b91, 0x0fde, 0x0d21, 0xffea,
+ 0xf4c1, 0xf0e6, 0xf7f6, 0xfc3e, 0xf632, 0xfb93,
+ 0x055c, 0xff3d, 0xfe91, 0x0e25, 0x1a0a, 0x1ab1,
+ 0x1243, 0x0850, 0x0549, 0x035b, 0xff61, 0xfd17,
+ 0xfc6b, 0xfd57, 0xfc60, 0xfabc, 0xff45, 0x037b,
+ 0x028a, 0x025b, 0x005e, 0xf83a, 0xee9d, 0xee36,
+ 0xf966, 0xfe85, 0xfaa5, 0xfefa, 0x056f, 0x0812,
+ 0x122e, 0x1b3f, 0x1bcb, 0x19af, 0x0ee0, 0x02fe,
+ 0x03d4, 0x0547, 0x03bf, 0x0549, 0xff0a, 0xf13b,
+ 0xec65, 0xf7c7, 0x0ae1, 0x12f6, 0x0ebd, 0x0dc3,
+ 0x0c33, 0x0329, 0xfdd3, 0x00f1, 0x05d1, 0x0315,
+ 0xf585, 0xeb3e, 0xec9c, 0xf257, 0xfb01, 0x00fa,
+ 0xfd3a, 0xfd3f, 0x068f, 0x0b4c, 0x099a, 0x054e,
+ 0xff4c, 0xfdd9, 0xfcc6, 0xf765, 0xf9d6, 0x00ab,
+ 0xfd62, 0xfbcd, 0x05ef, 0x0b7f, 0x01fb, 0xf0ee,
+ 0xe440, 0xe4c6, 0xf533, 0x0f74, 0x1caa, 0x0e62,
+ 0x020d, 0x0e8d, 0x1916, 0x14a3, 0x15f7, 0x181c,
+ 0x074a, 0xf3a6, 0xf77b, 0x07c7, 0x0e59, 0x0fdd,
+ 0x0e74, 0x02b4, 0x00a5, 0x143c, 0x2076, 0x1963,
+ 0x11ff, 0x109a, 0x1053, 0x0b84, 0xfdc3, 0xf1ad,
+ 0xf4bc, 0xffa7, 0x018c, 0xfdbb, 0x0566, 0x10e5,
+ 0x0c02, 0x008c, 0x0273, 0x0dfa, 0x1152, 0x046a,
+ 0xf848, 0xfc9e, 0x025d, 0xfc23, 0xef53, 0xdf99,
+ 0xda22, 0xef49, 0x0e3b, 0x1865, 0x0d57, 0xfedb,
+ 0xf2f8, 0xec3a, 0xedb1, 0xef53, 0xf318, 0xffa0,
+ 0x0128, 0xf732, 0x001b, 0x1453, 0x1de4, 0x2308,
+ 0x2355, 0x1cb3, 0x11e3, 0xfed1, 0xf605, 0x01b7,
+ 0x0624, 0xfef8, 0xfa1e, 0xf4d7, 0xf889, 0x071f,
+ 0x0c79, 0x09cd, 0x0b8c, 0x0f2f, 0x0f77, 0x0b98,
+ 0x0762, 0x063f, 0x0c36, 0x16c6, 0x117e, 0x0226,
+ 0x0689, 0x0c41, 0xfb85, 0xef13, 0xf3fc, 0xfb92,
+ 0x00cc, 0x048e, 0x0daa, 0x17fb, 0x1498, 0x0a8b,
+ 0xfea3, 0xf1e9, 0xf9d6, 0x0d01, 0x0c3c, 0x0348,
+ 0x02b0, 0x0345, 0x067a, 0x09cd, 0xff05, 0xec5a,
+ 0xee57, 0x0883, 0x140d, 0x059c, 0x012f, 0x0c0f,
+ 0x1182, 0x1595, 0x19d3, 0x1379, 0x007d, 0xe8c9,
+ 0xe2b4, 0xf484, 0x0161, 0xfd7e, 0xf7d2, 0xf960,
+ 0x07dd, 0x1876, 0x12f5, 0x0318, 0x025e, 0x02d9,
+ 0xf7b1, 0xf339, 0xf4fb, 0xec2f, 0xe507, 0xec0e,
+ 0xf5f5, 0x00ac, 0x0cc7, 0x0d85, 0x04ab, 0x00cd,
+ 0x04e5, 0x0b4b, 0x0db7, 0x0b14, 0x07b2, 0x0782,
+ 0x0bec, 0x0b23, 0xff28, 0xfacb, 0x057b, 0x0bfc,
+ 0x0b0e, 0x0cae, 0x0d59, 0x0908, 0x02fd, 0xfd7c,
+ 0xf9ae, 0xfb06, 0x0232, 0x0469, 0xfcbd, 0xf8de,
+ 0xff99, 0x0bbd, 0x1749, 0x184e, 0x13c2, 0x1844,
+ 0x1a7c, 0x0e39, 0x02e7, 0x0433, 0x0903, 0x0337,
+ 0xf6f0, 0xfafe, 0x0c60, 0x0e07, 0x018e, 0xff3a,
+ 0x07aa, 0x0e12, 0x0fa8, 0x0bf1, 0x005f, 0xf2ed,
+ 0xede9, 0xf39f, 0x0146, 0x0c89, 0x083f, 0xfe1e,
+ 0xfd87, 0xfc8b, 0xf4ab, 0xf002, 0xefdc, 0xf40d,
+ 0xff1b, 0x0794, 0x0572, 0xfd28, 0xf83d, 0xfdd3,
+ 0x0596, 0x021a, 0xfb21, 0xfd9e, 0x0374, 0x0342,
+ 0xfc07, 0xeca1, 0xdc29, 0xdcd1, 0xeec5, 0xfc63,
+ 0xff89, 0x03b3, 0x0870, 0x07e8, 0x061e, 0x059f,
+ 0x06ce, 0x0c5a, 0x0e4f, 0x02ab, 0xf375, 0xefef,
+ 0xf8ba, 0x0552, 0x09eb, 0x05e5, 0x077b, 0x0b0b,
+ 0x01f5, 0xf8f7, 0xfd88, 0x02f1, 0x01b0, 0xff8e,
+ 0xfe47, 0xf9a4, 0xed75, 0xe664, 0xf414, 0x044f,
+ 0x029e, 0xff28, 0x0737, 0x0e59, 0x0d19, 0x07d4,
+ 0x0264, 0x0225, 0x096e, 0x0ebe, 0x0b9c, 0x093c,
+ 0x0c43, 0x0b9e, 0x0487, 0xfe34, 0xfe49, 0x0394,
+ 0x066c, 0x03a3, 0xfe62, 0xf751, 0xf138, 0xefb5,
+ 0xf151, 0xf64d, 0xfc76, 0xfd13, 0xfb37, 0xfff8,
+ 0x08e9, 0x0ae2, 0x0913, 0x10bb, 0x16c6, 0x0e0c,
+ 0x0860, 0x0a53, 0x07dc, 0x0b74, 0x12e4, 0x0f11,
+ 0x0d2b, 0x108a, 0x0b3d, 0x0548, 0x048c, 0x02c0,
+ 0x00e1, 0xfe56, 0xfad0, 0xf601, 0xf0f1, 0xf965,
+ 0x0ac4, 0x0d06, 0x029d, 0xfbb9, 0xff01, 0x095b,
+ 0x079e, 0xf862, 0xf3e0, 0xfc3f, 0x0339, 0x0284,
+ 0xfc88, 0xfed5, 0x080e, 0x0ad4, 0x0cb7, 0x0cfe,
+ 0x06b1, 0x052c, 0x0111, 0xf431, 0xf2ab, 0xf358,
+ 0xe1b8, 0xd65e, 0xeb6d, 0x0fc6, 0x1d42, 0x0cad,
+ 0x035d, 0x0cf8, 0x0e51, 0x0ad2, 0x100f, 0x107d,
+ 0x0c6f, 0x0bf2, 0x0501, 0xf9aa, 0xf587, 0xf574,
+ 0xf865, 0x0243, 0x0ba2, 0x0f36, 0x12f4, 0x1505,
+ 0x0dec, 0x02de, 0xfbb3, 0xf91d, 0xf8fb, 0xf43a,
+ 0xf038, 0xfc37, 0x069c, 0xfb78, 0xf484, 0xfdb2,
+ 0x00c7, 0x015a, 0x0898, 0x0a67, 0x0ae8, 0x0f8c,
+ 0x0cc7, 0x06e7, 0x0434, 0xfcc7, 0xf663, 0xf82b,
+ 0xfb51, 0xff89, 0x0486, 0x04d2, 0x00ed, 0xf77c,
+ 0xee9e, 0xf350, 0xf9e6, 0xf705, 0xfc99, 0x0bbf,
+ 0x0bf4, 0xfd56, 0xf778, 0xff97, 0x032b, 0xfc05,
+ 0xfaae, 0x0286, 0x06cc, 0x0465, 0xfe35, 0xfbae,
+ 0x0299, 0x0819, 0x0905, 0x0c83, 0x097a, 0xff13,
+ 0xfbf1, 0xfe18, 0xfdde, 0xfad6, 0xf3e4, 0xec39,
+ 0xe7e9, 0xed12, 0xffc9, 0x0e5c, 0x0ac1, 0x01d7,
+ 0xfe0f, 0xfd22, 0xf8d4, 0xf020, 0xeebc, 0xf2c0,
+ 0xf19e, 0xf48b, 0xf91d, 0xf3f7, 0xf042, 0xeecc,
+ 0xed25, 0xfa02, 0x085d, 0x0634, 0x02d3, 0x01f8,
+ 0xfc2b, 0xf5e0, 0xed28, 0xe35f, 0xdd8b, 0xdf7e,
+ 0xf7df, 0x152f, 0x119f, 0x030a, 0x06dc, 0x0776,
+ 0x026c, 0x0adf, 0x169d, 0x1ac1, 0x178b, 0x0940,
+ 0xf987, 0xf66f, 0xfc8a, 0x0143, 0xff19, 0xfd37,
+ 0x0797, 0x15f1, 0x17e6, 0x10dd, 0x0904, 0xff39,
+ 0xf5d8, 0xf1cc, 0xf5df, 0x02c8, 0x0c21, 0x06fc,
+ 0xfffe, 0xfe87, 0xf79e, 0xeed8, 0xf010, 0xfa06,
+ 0x09e1, 0x177c, 0x15c7, 0x0b74, 0x082c, 0x0996,
+ 0x0327, 0xf4b0, 0xef06, 0xf7fe, 0xfdba, 0xfb19,
+ 0xfb67, 0xfa29, 0xf184, 0xe854, 0xdf59, 0xd8e3,
+ 0xdfb0, 0xf1e4, 0x00fc, 0x0473, 0x0187, 0x02c0,
+ 0x07ae, 0x08c9, 0x05ba, 0x039b, 0x0806, 0x105e,
+ 0x102b, 0x0779, 0x018b, 0xfdc8, 0xfbcc, 0x020b,
+ 0x07ca, 0x0295, 0xfe7c, 0x0593, 0x0bd9, 0x078a,
+ 0xfe60, 0xf4c8, 0xeb5f, 0xe85e, 0xf280, 0x0697,
+ 0x142d, 0x109d, 0x0a27, 0x0712, 0xf841, 0xe83e,
+ 0xeba8, 0xf7cd, 0x05a0, 0x12ad, 0x0e36, 0x04d6,
+ 0x08ee, 0x0748, 0xfe9b, 0xff03, 0xfd48, 0xf809,
+ 0xfa8e, 0xfe97, 0x014b, 0x01dc, 0xffd5, 0x03b7,
+ 0x0094, 0xed57, 0xe8d6, 0xfe23, 0x13f6, 0x1d96,
+ 0x1c77, 0x184a, 0x14fb, 0x09b1, 0xfffc, 0x0857,
+ 0x13af, 0x13aa, 0x1058, 0x0b58, 0xff03, 0xf110,
+ 0xeffc, 0xfca3, 0x04db, 0x01d3, 0xfff3, 0x071c,
+ 0x1012, 0x099f, 0xf4a5, 0xea43, 0xef47, 0xf7a5,
+ 0x070a, 0x179e, 0x18b5, 0x0efc, 0x04c9, 0xfb49,
+ 0xf468, 0xf1c2, 0xf526, 0xfef0, 0x0bf2, 0x171b,
+ 0x16a4, 0x0d50, 0x0bc5, 0x0e31, 0x097d, 0x066d,
+ 0x0836, 0x07a0, 0x061b, 0x06ae, 0x09c0, 0x0cb6,
+ 0x098d, 0x0041, 0xf59a, 0xf405, 0x037d, 0x119d,
+ 0x0da2, 0x090e, 0x0e1c, 0x0d95, 0x050a, 0xff99,
+ 0xfed6, 0xff6a, 0x0212, 0x077e, 0x0ddc, 0x1181,
+ 0x09d5, 0xf892, 0xf661, 0x0aab, 0x1ae7, 0x1b40,
+ 0x1488, 0x0c13, 0x086b, 0x0337, 0xf3d6, 0xef78,
+ 0xfc15, 0x00b0, 0x0231, 0x0ea5, 0x1271, 0x07af,
+ 0x037f, 0x047e, 0xf998, 0xec7c, 0xeefc, 0xf568,
+ 0xf6dc, 0x022a, 0x0d88, 0x040f, 0xf60c, 0xf023,
+ 0xe8ea, 0xe69f, 0xebad, 0xebc5, 0xe957, 0xe9b3,
+ 0xecb1, 0xf62d, 0xfc45, 0xf3f1, 0xec6d, 0xeedb,
+ 0xeedf, 0xf2c6, 0x04f4, 0x0d22, 0x01a5, 0xfca0,
+ 0xf9e0, 0xeaa4, 0xe7b1, 0xf6c1, 0x00af, 0x08bf,
+ 0x12b0, 0x0f3d, 0xfa0b, 0xe1a6, 0xe02e, 0xf322,
+ 0xfa75, 0xf909, 0xf907, 0xed13, 0xe479, 0xe607,
+ 0xdc29, 0xdb15, 0xf1b6, 0x01c9, 0x06eb, 0x0b29,
+ 0x085d, 0x0134, 0xf83c, 0xf148, 0xee6f, 0xe213,
+ 0xd4ab, 0xdb07, 0xef6e, 0x059b, 0x0d2f, 0x029f,
+ 0xfe0c, 0xfc22, 0xf2ab, 0xf5b8, 0xfcd1, 0xf86a,
+ 0xf8b2, 0xfb78, 0xf949, 0xf50c, 0xe77a, 0xe173,
+ 0xf135, 0xfe27, 0x0226, 0x041c, 0xfe5b, 0xfa68,
+ 0xf9c5, 0xf4b1, 0xf2fa, 0xef0e, 0xe608, 0xe73b,
+ 0xed93, 0xf33b, 0xfe13, 0x032b, 0xfc23, 0xf04d,
+ 0xe801, 0xf0b1, 0x061d, 0x1322, 0x0fcc, 0xfccb,
+ 0xe35f, 0xd423, 0xd585, 0xe603, 0xf825, 0xfb3f,
+ 0xf5d0, 0xf41b, 0xf8a7, 0x020b, 0x05ec, 0x0215,
+ 0xfcb6, 0xf262, 0xea19, 0xecf0, 0xf4d4, 0x0273,
+ 0x0ca7, 0x033b, 0xf642, 0xf123, 0xeb80, 0xee20,
+ 0xf5dc, 0xf381, 0xf41a, 0xfc68, 0xfb84, 0xf4d2,
+ 0xf58a, 0xfdfd, 0x05c5, 0x01f6, 0xf94d, 0x0016,
+ 0x0eb1, 0x0a63, 0xfbff, 0xff01, 0x05a4, 0xf92c,
+ 0xee4a, 0xf76b, 0x079f, 0x16d7, 0x206c, 0x1a02,
+ 0x077b, 0xf72a, 0xf308, 0xfab9, 0x0318, 0x0408,
+ 0xfe0d, 0xf3e9, 0xe7c7, 0xde85, 0xe5a0, 0xfdea,
+ 0x0fe9, 0x1480, 0x18ac, 0x1b1f, 0x179f, 0x0f69,
+ 0x0223, 0xf9ac, 0xfb44, 0xf953, 0xee0a, 0xea13,
+ 0xfcf9, 0x14a5, 0x1754, 0x1346, 0x144e, 0x0c1c,
+ 0x0530, 0x07d4, 0x01b5, 0xf935, 0xf872, 0xf4d3,
+ 0xf33b, 0xf6f4, 0xf935, 0x0029, 0x0a2e, 0x11e7,
+ 0x1bc6, 0x21ba, 0x1e34, 0x13ea, 0x0790, 0x072b,
+ 0x0e7a, 0x075a, 0xf638, 0xeb20, 0xec76, 0xfc0d,
+ 0x0b1e, 0x0d45, 0x0759, 0xfab7, 0xf0fa, 0xfaf1,
+ 0x1230, 0x22f6, 0x20c1, 0x0dae, 0xf924, 0xefbf,
+ 0xf713, 0x06e1, 0x0d1f, 0x0c09, 0x0996, 0x0045,
+ 0xfd14, 0x063c, 0x0954, 0x0783, 0x0887, 0x0205,
+ 0xf6e6, 0xf792, 0x0334, 0x0593, 0xf994, 0xf6bb,
+ 0x0020, 0x02b5, 0x0192, 0xfdc1, 0xf2a3, 0xef1e,
+ 0xf1fb, 0xf25e, 0xfa30, 0x015b, 0xfeb7, 0x008f,
+ 0x0614, 0x05ea, 0x03ab, 0x054e, 0x0d09, 0x0f79,
+ 0x0c0b, 0x1455, 0x196c, 0x0ad8, 0xffea, 0x016e,
+ 0x0837, 0x14bb, 0x1add, 0x1887, 0x143f, 0x0664,
+ 0xfa20, 0xfd5a, 0x0375, 0x04ff, 0xffa9, 0xf677,
+ 0xf886, 0xfe63, 0xfddb, 0x01ee, 0x0589, 0x068f,
+ 0x15f1, 0x2930, 0x28e9, 0x1948, 0x0bf7, 0x08ad,
+ 0x0604, 0xfbe2, 0xf26b, 0xf0d8, 0xf34d, 0xf038,
+ 0xeb95, 0xf612, 0x01b2, 0xfc74, 0xff96, 0x0ea5,
+ 0x0b17, 0xfca4, 0xf79e, 0xf99b, 0x008e, 0x01dc,
+ 0xf5bc, 0xec93, 0xef50, 0xf5ba, 0xf804, 0xf504,
+ 0xf3f6, 0xf5b9, 0xfa26, 0x0a43, 0x1ae1, 0x1a0e,
+ 0x124c, 0x0d81, 0x0a51, 0x0e34, 0x1468, 0x116a,
+ 0x0653, 0xf5df, 0xe6ae, 0xe73a, 0xf4c0, 0xfd40,
+ 0xff21, 0x0431, 0x0ad4, 0x1035, 0x150c, 0x14c7,
+ 0x14d4, 0x1b85, 0x19bb, 0x0c87, 0x0618, 0x07ff,
+ 0x0adf, 0x0b2c, 0x04dd, 0x00d8, 0x0597, 0x0b62,
+ 0x10ea, 0x1335, 0x1028, 0x1295, 0x172c, 0x14f0,
+ 0x1190, 0x07da, 0xf21f, 0xdf42, 0xdb56, 0xe4b2,
+ 0xeda3, 0xea70, 0xe6ae, 0xef0b, 0xffd1, 0x0eb6,
+ 0x1109, 0x0fe5, 0x1441, 0x0e55, 0x0986, 0x1888,
+ 0x1ba6, 0x0a92, 0x0390, 0xfe3f, 0xf3d4, 0xf837,
+ 0x01d7, 0x02b9, 0x01a7, 0xfe5e, 0xf9b2, 0xf58c,
+ 0xee7a, 0xebc2, 0xf135, 0xf93c, 0x0424, 0x0d6d,
+ 0x0ce1, 0x01ad, 0xf152, 0xebe0, 0xf73b, 0x0289,
+ 0x05ae, 0x01ce, 0xf7a0, 0xf606, 0x0014, 0x03ed,
+ 0x045b, 0x0a5b, 0x0a63, 0x0463, 0x05f9, 0x0e01,
+ 0x12a9, 0x0dc9, 0x01ba, 0xf7d2, 0xf1de, 0xf023,
+ 0xf850, 0x0226, 0x021f, 0x0164, 0x0853, 0x112e,
+ 0x1759, 0x1737, 0x1212, 0x0f81, 0x0ba1, 0x03eb,
+ 0x03a7, 0x07da, 0x0594, 0x02ea, 0x0249, 0xfed2,
+ 0xfe02, 0x00ae, 0x01b3, 0x0500, 0x0c11, 0x0fca,
+ 0x0a38, 0x0063, 0x01ad, 0x0c6f, 0x11ad, 0x1718,
+ 0x1d15, 0x14aa, 0x0d32, 0x144a, 0x12ae, 0x069a,
+ 0x0360, 0x03de, 0x047f, 0x0912, 0x097a, 0x05f9,
+ 0x02b8, 0xfd6a, 0xfb04, 0xfa88, 0xf70d, 0xf7a5,
+ 0xfdba, 0x08db, 0x19b9, 0x1ec6, 0x1167, 0x035e,
+ 0xfcd1, 0xfeb8, 0x02ba, 0xf9d3, 0xed39, 0xea86,
+ 0xe983, 0xe9ff, 0xec1c, 0xeb97, 0xf883, 0x12fa,
+ 0x1fe9, 0x1c06, 0x16ac, 0x1321, 0x0d1c, 0x0600,
+ 0x02ee, 0xfa04, 0xeafa, 0xf01d, 0xfe24, 0xf7db,
+ 0xf44f, 0xfc00, 0xf71c, 0xf4db, 0xfcdd, 0xfab3,
+ 0xf925, 0x0169, 0x08ac, 0x0ff7, 0x10e5, 0x063e,
+ 0xfa6e, 0xf057, 0xf1f0, 0x032d, 0x0928, 0xfe70,
+ 0xf81f, 0xf632, 0xf40d, 0xf73d, 0xfce9, 0xfc45,
+ 0xf65a, 0xf9b4, 0x0607, 0x0858, 0x04da, 0x05ce,
+ 0xfecd, 0xf3c8, 0xf83c, 0x08b6, 0x11e9, 0x08e2,
+ 0xfd2c, 0x0174, 0x06da, 0x02f6, 0x03a7, 0x073c,
+ 0x08ad, 0x0cfb, 0x0dbc, 0x0936, 0x06b7, 0x02ed,
+ 0xfb12, 0xf679, 0xfe9f, 0x0dc8, 0x0e45, 0xff3d,
+ 0xf1e6, 0xea8c, 0xebee, 0xf36d, 0xf80b, 0x01a9,
+ 0x0c2c, 0x0872, 0x07ab, 0x1475, 0x1e7d, 0x21ab,
+ 0x1ad7, 0x0d20, 0x0c54, 0x0e6a, 0x0238, 0xfa53,
+ 0xfde6, 0xffe0, 0x0185, 0x0382, 0x0134, 0xfeb8,
+ 0xffb9, 0x0055, 0xfde4, 0x01f0, 0x0e70, 0x0cc4,
+ 0xfc39, 0xfb76, 0x0b31, 0x15d4, 0x1a27, 0x183f,
+ 0x0a37, 0xf8f9, 0xf177, 0xf1d9, 0xeed1, 0xe5a2,
+ 0xe0bf, 0xe85b, 0xf85c, 0x0742, 0x1381, 0x1fbc,
+ 0x2400, 0x1cd9, 0x138c, 0x070b, 0xf7ab, 0xf118,
+ 0xef32, 0xeaff, 0xe848, 0xe362, 0xe218, 0xeeb5,
+ 0xfcd5, 0x06ee, 0x1109, 0x127c, 0x1086, 0x1344,
+ 0x1020, 0x0aed, 0x0c4c, 0x0c36, 0x0788, 0xfc35,
+ 0xedc2, 0xebeb, 0xf17e, 0xf549, 0xfe87, 0x02bb,
+ 0xfc95, 0xfd68, 0x00a3, 0xfe22, 0xff4e, 0x0224,
+ 0x067f, 0x09bf, 0xfb18, 0xeb6b, 0xf34d, 0xfe79,
+ 0x0362, 0x0da5, 0x0f60, 0x038f, 0xfc25, 0xfc06,
+ 0xff9a, 0x061a, 0x09e9, 0x0a15, 0x07fb, 0x04e9,
+ 0x0372, 0x0067, 0xfe83, 0x00db, 0xf8a7, 0xe695,
+ 0xe23d, 0xe977, 0xec2a, 0xf011, 0xf599, 0xef49,
+ 0xe6e2, 0xf1d8, 0x0447, 0x057e, 0x009e, 0x09e8,
+ 0x1594, 0x15a1, 0x0fa0, 0x07a6, 0x0139, 0x02aa,
+ 0x0857, 0x0d26, 0x0f05, 0x0571, 0xf36f, 0xeff4,
+ 0xfe13, 0x058f, 0x0445, 0x07b4, 0x01c9, 0xef50,
+ 0xee15, 0xfb0f, 0xfa89, 0xf360, 0xf0e3, 0xeea3,
+ 0xf366, 0x0105, 0x0e0b, 0x153b, 0x0fa9, 0x0271,
+ 0xfd46, 0xfd89, 0xfc42, 0xf7e1, 0xecc1, 0xe86e,
+ 0xf522, 0xff0b, 0xff46, 0x056e, 0x0e68, 0x0e57,
+ 0x0c0b, 0x0f81, 0x0d39, 0xfd51, 0xf0d4, 0xf1d6,
+ 0xf6bc, 0xfd64, 0x00b3, 0xf86c, 0xf296, 0xf7bf,
+ 0xfe6b, 0x061d, 0x0b97, 0x0a10, 0x08e8, 0x0567,
+ 0xff9a, 0x05c3, 0x0fa6, 0x0ee5, 0x0b71, 0x05bc,
+ 0xf9d0, 0xf30a, 0xf39a, 0xf2ae, 0xf13b, 0xf037,
+ 0xed65, 0xf155, 0xfe10, 0xff8c, 0xf217, 0xedbe,
+ 0xf37b, 0xf14e, 0xee5a, 0xf582, 0xfd6a, 0xfd23,
+ 0xf6b1, 0xf47c, 0xfa16, 0xfabc, 0xf48a, 0xf462,
+ 0xfa2c, 0xfbb7, 0xf475, 0xebcd, 0xed7e, 0xf589,
+ 0xfcb4, 0x05e8, 0x0950, 0x0006, 0xf717, 0xf5a3,
+ 0xf652, 0xf8ed, 0xfefe, 0x04a0, 0x0407, 0x00d8,
+ 0x02ce, 0x025b, 0xfc5f, 0xff8b, 0x09a4, 0x0b7a,
+ 0x06e5, 0x007c, 0xfa1f, 0xfd62, 0x0af5, 0x16fe,
+ 0x1ad1, 0x1683, 0x0c43, 0x01eb, 0xfdd2, 0xfe00,
+ 0xfb80, 0xf7d2, 0xf63f, 0xf281, 0xf07c, 0xf939,
+ 0x045d, 0x0729, 0x08ab, 0x0f37, 0x15a2, 0x18f7,
+ 0x19d7, 0x1609, 0x0b08, 0xfb2f, 0xef62, 0xebd5,
+ 0xe784, 0xdfd3, 0xe12c, 0xeeb6, 0xfe55, 0x0a4d,
+ 0x114e, 0x1340, 0x1381, 0x1379, 0x110f, 0x0d1a,
+ 0x090c, 0x0011, 0xf273, 0xed20, 0xf321, 0xfb7b,
+ 0x0533, 0x0d17, 0x0dee, 0x0b51, 0x037f, 0xfd6b,
+ 0x05e8, 0x0955, 0xfcda, 0xf431, 0xebe0, 0xe831,
+ 0xfe28, 0x0f72, 0x01ad, 0xf370, 0xf72e, 0x0315,
+ 0x04a4, 0xf1d2, 0xe844, 0xf34c, 0xf50c, 0xf3a3,
+ 0xfdd1, 0x040f, 0x073c, 0x0862, 0x0435, 0x0ce9,
+ 0x1a87, 0x16f7, 0x0edd, 0x0897, 0x016e, 0x0660,
+ 0x0ff7, 0x0e27, 0x0a5a, 0x0a3d, 0x08e3, 0x0b95,
+ 0x0ffa, 0x094f, 0x018f, 0x0823, 0x0cbb, 0x0608,
+ 0x0575, 0x0893, 0x05da, 0x02dd, 0xfbc4, 0xf862,
+ 0x049d, 0x0a08, 0x06e0, 0x13de, 0x1ee4, 0x13e2,
+ 0x05b3, 0xfe34, 0xfb05, 0xfdeb, 0xfffe, 0xfb17,
+ 0xf78a, 0x00b3, 0x0dc4, 0x0e27, 0x0ce5, 0x1380,
+ 0x1355, 0x1062, 0x13b8, 0x0f20, 0x0344, 0xfca9,
+ 0xf609, 0xec14, 0xe678, 0xe9ae, 0xf16c, 0xf7e6,
+ 0x0229, 0x11b1, 0x1abd, 0x18d3, 0x10b0, 0x0a30,
+ 0x0a28, 0x05eb, 0xfa6a, 0xf5d0, 0xf47d, 0xe642,
+ 0xd0b9, 0xce5f, 0xe7fd, 0xfbdc, 0xf928, 0xff5c,
+ 0x0ddb, 0x0783, 0xfd6e, 0x0146, 0x00d0, 0xfb9c,
+ 0xfd3d, 0xfc4b, 0xf049, 0xe4d6, 0xec24, 0x02aa,
+ 0x0d3e, 0xff64, 0xec7d, 0xec5c, 0xfc76, 0x0565,
+ 0xfbc3, 0xea20, 0xe5b3, 0xf713, 0x0328, 0xf7c4,
+ 0xf00d, 0xf65a, 0xf724, 0xf412, 0xf1ca, 0xebac,
+ 0xe54c, 0xda32, 0xcfa8, 0xdbad, 0xf193, 0xf68e,
+ 0xf587, 0xfed9, 0x09dc, 0x0dbd, 0x0feb, 0x0d1f,
+ 0xf94f, 0xe812, 0xefca, 0xf69c, 0xefce, 0xf292,
+ 0xf75a, 0xf224, 0xf3bb, 0xfb9d, 0xffce, 0x01d3,
+ 0xfce5, 0xf3f9, 0xf32f, 0xf8c8, 0xf873, 0xebc0,
+ 0xe208, 0xe6b8, 0xe790, 0xe55a, 0xf174, 0xfb84,
+ 0xfbce, 0x03b3, 0x0d4c, 0x0b99, 0xff2a, 0xefaf,
+ 0xebd7, 0xef1c, 0xec49, 0xeba2, 0xf1e2, 0xfd3e,
+ 0x0960, 0x0628, 0xfd6a, 0x02da, 0x069e, 0x00b8,
+ 0xfa70, 0xf2a9, 0xeffc, 0xeee8, 0xe33f, 0xdc81,
+ 0xe033, 0xdfee, 0xdfd5, 0xe691, 0xf60d, 0x0c1d,
+ 0x179b, 0x142e, 0x0bf0, 0x06f7, 0x0c4c, 0x0b9e,
+ 0xfbd8, 0xf771, 0xfad8, 0xf426, 0xf875, 0x0802,
+ 0x098f, 0x014d, 0xfb95, 0xfc62, 0x01b9, 0x00bd,
+ 0xfbdb, 0xfbf9, 0x0141, 0x09bd, 0x08fd, 0xfd01,
+ 0xfb9e, 0x0737, 0x0d35, 0x07f3, 0x0167, 0x047a,
+ 0x086a, 0x0338, 0x03b1, 0x0e3d, 0x14ba, 0x12db,
+ 0x0a59, 0x04f7, 0x0794, 0x0330, 0xf943, 0xf67c,
+ 0xf609, 0xf8a4, 0xfc0c, 0xf445, 0xeeed, 0xf86b,
+ 0xfb92, 0xeb05, 0xda18, 0xdee7, 0xf281, 0x0159,
+ 0x0d01, 0x1a37, 0x1f8e, 0x19df, 0x10e2, 0x0c8c,
+ 0x0aea, 0x07f6, 0x0a77, 0x0af7, 0x01ab, 0x04b4,
+ 0x0fb0, 0x09d1, 0x0593, 0x093b, 0x00c8, 0xfc1f,
+ 0x01ac, 0xfed9, 0xff04, 0x0872, 0x0815, 0xfcbb,
+ 0xf287, 0xf1db, 0xf91d, 0xf9fd, 0xf47f, 0xf930,
+ 0x08a2, 0x0fa6, 0x03fc, 0xf6e3, 0xf7ac, 0xfae8,
+ 0xf9d0, 0xfd82, 0x07cf, 0x12f8, 0x17e3, 0x1573,
+ 0x129d, 0x0e50, 0x05fd, 0xffe3, 0xfcf5, 0xfbb7,
+ 0xff57, 0x04df, 0x02f3, 0xf771, 0xed42, 0xeae2,
+ 0xec2a, 0xf483, 0x0206, 0x09df, 0x1196, 0x158c,
+ 0x093f, 0x02bd, 0x0b70, 0x084e, 0xfd7f, 0xfb63,
+ 0xf59f, 0xefd0, 0xfb7e, 0x10d0, 0x1d9d, 0x1abc,
+ 0x1160, 0x0ed1, 0x0e17, 0x0969, 0x0a77, 0x1046,
+ 0x0eaa, 0x0b15, 0x11b5, 0x195d, 0x144b, 0x0a78,
+ 0x096a, 0x1176, 0x1a29, 0x1645, 0x0362, 0xf504,
+ 0xfa90, 0x0c92, 0x1bc8, 0x21b3, 0x2293, 0x201e,
+ 0x14c6, 0x04f0, 0xfc5d, 0xf8a0, 0xf11b, 0xe9fa,
+ 0xebfa, 0xf7c4, 0x0680, 0x0c55, 0x069f, 0x03f4,
+ 0x06fb, 0xfee9, 0xeca6, 0xe380, 0xecc1, 0x0187,
+ 0x0d8d, 0x0736, 0xff4e, 0xff81, 0x01b5, 0x0256,
+ 0xfaf7, 0xf07f, 0xf415, 0xff08, 0x02a3, 0x047a,
+ 0x0a20, 0x0fdb, 0x0d5b, 0x0075, 0xfb32, 0x07b6,
+ 0x1689, 0x1ab7, 0x12e1, 0x07e2, 0x0540, 0x02d3,
+ 0xfaf0, 0xfb4e, 0x01b7, 0x02f6, 0x04b2, 0x05de,
+ 0xff7b, 0xf9f2, 0xf8f2, 0xf69b, 0xf987, 0x0530,
+ 0x0c5c, 0x0d6c, 0x1225, 0x14bb, 0x104c, 0x0df0,
+ 0x0c96, 0x0707, 0x06b0, 0x10ef, 0x195a, 0x14d4,
+ 0x0e26, 0x13ba, 0x17dc, 0x0b8b, 0xfa5d, 0xec9d,
+ 0xe767, 0xf5c2, 0x0740, 0x0791, 0x0631, 0x0cd4,
+ 0x0d24, 0x0397, 0xfa82, 0xf9ce, 0xfb03, 0xf476,
+ 0xf582, 0x08e1, 0x1499, 0x0c9f, 0x0598, 0x0318,
+ 0xff27, 0x071b, 0x15dd, 0x10d0, 0x03fa, 0x0b58,
+ 0x12b7, 0x04d2, 0xfa0b, 0xfe3b, 0x012d, 0x02cc,
+ 0x0515, 0xfdb0, 0xf22d, 0xef6d, 0xf021, 0xeea7,
+ 0xf535, 0x0460, 0x09ba, 0x04c9, 0x0642, 0x05e2,
+ 0xf7ac, 0xebed, 0xe999, 0xe652, 0xe7ac, 0xf290,
+ 0xfb77, 0xff08, 0x05a0, 0x0f3a, 0x0f23, 0x036f,
+ 0xfda5, 0xfd7a, 0xf3ef, 0xf00e, 0xfed8, 0x0a54,
+ 0x0afc, 0x0cc0, 0x0afd, 0x039e, 0xff69, 0xfd65,
+ 0xf9e1, 0xf695, 0xf767, 0xfcc2, 0xfe54, 0xfa72,
+ 0xf9c5, 0xfef6, 0x0958, 0x10da, 0x09d6, 0x04b9,
+ 0x1352, 0x1d12, 0x0e4f, 0xfbf6, 0xf480, 0xee70,
+ 0xeb94, 0xf9ae, 0x0f5a, 0x138e, 0x09b9, 0x06f3,
+ 0x07ed, 0x01b5, 0xfd73, 0x025c, 0x055a, 0xff28,
+ 0xfcb0, 0x0758, 0x0c49, 0xfb25, 0xe9ad, 0xf130,
+ 0x0471, 0x0bfb, 0x0b91, 0x106e, 0x1986, 0x1e18,
+ 0x17cc, 0x0ceb, 0x09e6, 0x037c, 0xebda, 0xdbac,
+ 0xe5e4, 0xf4f1, 0xfc22, 0x0157, 0x018d, 0x0107,
+ 0x058c, 0x015c, 0xf124, 0xe67c, 0xeac5, 0xf83b,
+ 0xfda0, 0xf52f, 0xf92c, 0x0d02, 0x0ca3, 0xfcab,
+ 0xfbe0, 0xfeca, 0xfcac, 0x02b9, 0x0836, 0x07aa,
+ 0x066b, 0xfd22, 0xf6de, 0x0189, 0x0a98, 0x085f,
+ 0x020a, 0xf805, 0xf204, 0xf212, 0xeef0, 0xef78,
+ 0xf946, 0xfeea, 0xf9db, 0xf519, 0xf7bd, 0xf88a,
+ 0xf6bd, 0xfc74, 0xfde7, 0xf529, 0xf73d, 0x01ca,
+ 0x03ce, 0x022c, 0x006f, 0xfd6a, 0xfadf, 0xf5b1,
+ 0xf0d3, 0xf241, 0xfe46, 0x10ba, 0x12ee, 0x090f,
+ 0x0b83, 0x09c7, 0xfe23, 0x0134, 0x06bb, 0x027d,
+ 0xff5e, 0xf820, 0xf572, 0x00fc, 0x0974, 0x0ea4,
+ 0x10f0, 0x0b1c, 0x1213, 0x1eae, 0x174e, 0x0e9e,
+ 0x0f23, 0x09f5, 0xfff5, 0xf2d9, 0xea75, 0xf1a1,
+ 0xfbfd, 0x0361, 0x09cf, 0x0926, 0x0ae1, 0x0f58,
+ 0x0383, 0xf47d, 0xf828, 0xfe91, 0xf870, 0xf3a0,
+ 0xfa89, 0x04a7, 0x0b4d, 0x0b39, 0x00f6, 0xfb48,
+ 0x0456, 0x08bf, 0x04e6, 0x09e7, 0x1259, 0x12d0,
+ 0x0b52, 0xfd4e, 0xf130, 0xee85, 0xf733, 0x04a3,
+ 0xff42, 0xeafe, 0xebfe, 0xfd0a, 0x047b, 0x092d,
+ 0x07a3, 0xf8fb, 0xf971, 0x0978, 0x05b1, 0xfbae,
+ 0x092d, 0x1319, 0x0700, 0x0358, 0x0bed, 0x08d0,
+ 0x0231, 0x05c9, 0x0805, 0x0393, 0x019a, 0x0409,
+ 0x0678, 0x0ccb, 0x186f, 0x17cb, 0x068a, 0xfe2d,
+ 0x029e, 0xfe51, 0xf39f, 0xf10f, 0xf5c1, 0xfd2e,
+ 0xffc7, 0xf6cf, 0xf15e, 0xffb7, 0x0e8f, 0x0837,
+ 0x009a, 0x08b0, 0x0b6a, 0x0207, 0x0107, 0x08f3,
+ 0x093e, 0xff1a, 0xf64d, 0xf53a, 0xf363, 0xf388,
+ 0x02bd, 0x1134, 0x0e2a, 0x0b26, 0x0c71, 0x0316,
+ 0xfbbe, 0x015d, 0xffe1, 0xf4b4, 0xf22c, 0xf465,
+ 0xf8ad, 0x0960, 0x1498, 0x0bc4, 0x0771, 0x0de2,
+ 0x0e66, 0x0e57, 0x1177, 0x118f, 0x1168, 0x0de8,
+ 0x05a6, 0xfe5a, 0xf671, 0xf68d, 0x0369, 0x06b5,
+ 0xfb3a, 0xf47c, 0xf533, 0xf5fa, 0xf577, 0xf284,
+ 0xee94, 0xee6c, 0xeff4, 0xe9f8, 0xe62b, 0xf6a6,
+ 0x0353, 0xf648, 0xf374, 0x08da, 0x1370, 0x0e23,
+ 0x08d1, 0x0359, 0x004b, 0x0039, 0x00b7, 0x0540,
+ 0x0718, 0x014d, 0xfcd3, 0xfa41, 0xf6b1, 0xf596,
+ 0xf276, 0xe9d4, 0xe362, 0xe11c, 0xdfea, 0xe3e6,
+ 0xee29, 0xfb31, 0x0b98, 0x1761, 0x1491, 0x0da4,
+ 0x0b6f, 0x08e0, 0x087a, 0x0a5e, 0x099d, 0x0ab2,
+ 0x0b14, 0x0722, 0x081b, 0x0d8b, 0x12df, 0x199d,
+ 0x1a70, 0x13ba, 0x0beb, 0x0215, 0xfb68, 0xfbb6,
+ 0xfa79, 0xf415, 0xe9d1, 0xe46a, 0xee85, 0xfd8f,
+ 0x078e, 0x0d27, 0x084c, 0x02e8, 0x086d, 0x0aae,
+ 0x096e, 0x0bd5, 0x0741, 0x00b8, 0xff3b, 0xfb94,
+ 0xfebd, 0x0743, 0x0129, 0xf362, 0xebe3, 0xe962,
+ 0xeeef, 0xf7bf, 0xf877, 0xf408, 0xee99, 0xe876,
+ 0xe374, 0xdef6, 0xe0a7, 0xec7e, 0xf773, 0xfddb,
+ 0x06e6, 0x100d, 0x15b0, 0x1688, 0x0fb1, 0x0d5b,
+ 0x16dd, 0x1759, 0x09e9, 0x035a, 0x0534, 0x0643,
+ 0x0293, 0xf669, 0xf127, 0xfc1f, 0xffa4, 0xf66a,
+ 0xf06d, 0xeb01, 0xe754, 0xe95c, 0xe5ad, 0xe1a5,
+ 0xeaf6, 0xf711, 0xfa6b, 0xfc59, 0x05dc, 0x0db2,
+ 0x07b1, 0x01be, 0x04e4, 0x02fa, 0x0035, 0x0478,
+ 0x04bd, 0x060e, 0x0e2a, 0x0f98, 0x0b17, 0x083e,
+ 0x04b5, 0xfff0, 0xf81a, 0xf29a, 0xf69d, 0xf7a9,
+ 0xf235, 0xee6e, 0xe293, 0xd806, 0xece3, 0x0e7b,
+ 0x1535, 0x100f, 0x1b18, 0x24a5, 0x1cd3, 0x1519,
+ 0x0f11, 0xfe6f, 0xf187, 0xf47a, 0xfcca, 0x05bc,
+ 0x0e13, 0x1093, 0x0ec2, 0x0bb6, 0x08d2, 0x050f,
+ 0xfedf, 0xfd40, 0xfd89, 0xf20c, 0xe4e5, 0xe491,
+ 0xe56a, 0xe59a, 0xf35e, 0x023c, 0xfd0d, 0xf4d6,
+ 0x01d5, 0x12a0, 0x105c, 0x0741, 0x0384, 0xfec7,
+ 0xf97e, 0xf839, 0xf917, 0xfcb3, 0x0442, 0x0a24,
+ 0x08eb, 0x064d, 0x08fc, 0x0af2, 0x08be, 0x0591,
+ 0xfdb3, 0xf497, 0xf39a, 0xf517, 0xf451, 0xf649,
+ 0xf91c, 0xf639, 0xef0e, 0xf3f4, 0x0af8, 0x1864,
+ 0x11e8, 0x104f, 0x12f7, 0x0d5c, 0x0c81, 0x126f,
+ 0x147a, 0x1635, 0x18f6, 0x187e, 0x173b, 0x16ce,
+ 0x126b, 0x0814, 0x019d, 0x0241, 0xfe63, 0xf8b5,
+ 0xf7e0, 0xf198, 0xea41, 0xef65, 0xf71f, 0xf73a,
+ 0xf77e, 0xffa0, 0x08bd, 0x0684, 0xff8e, 0xfe7f,
+ 0xfdc0, 0xffbe, 0x06ea, 0x08b4, 0x0aea, 0x1384,
+ 0x1632, 0x11e4, 0x0c77, 0x08aa, 0x0989, 0x06c6,
+ 0x003c, 0xfe30, 0xf55d, 0xe5fa, 0xe067, 0xde80,
+ 0xde54, 0xeea5, 0x067a, 0x0e22, 0x05bb, 0x02e3,
+ 0x0aa0, 0x0af2, 0x04c9, 0x0608, 0x0817, 0x02f9,
+ 0xf80a, 0xeee1, 0xf56e, 0x0279, 0x0436, 0x0423,
+ 0x0909, 0x0f5b, 0x16da, 0x1310, 0x050b, 0xfe6c,
+ 0xf599, 0xe1f3, 0xd4d4, 0xd54d, 0xde99, 0xe817,
+ 0xe57b, 0xdf39, 0xe717, 0xf84c, 0x02ba, 0xffcd,
+ 0xf6c2, 0xf322, 0xf501, 0xf46d, 0xedab, 0xe3b3,
+ 0xde14, 0xe159, 0xe9a8, 0xf0e6, 0xf425, 0xf0ad,
+ 0xe99b, 0xec36, 0xf769, 0xfadf, 0xf8dd, 0xf5ef,
+ 0xeb65, 0xe8d1, 0xf712, 0xfc6a, 0xf212, 0xe933,
+ 0xe9b1, 0xf50e, 0xfe48, 0xfa91, 0xf74f, 0xf860,
+ 0xf8c2, 0xfc99, 0xfdf4, 0xfcd2, 0x0383, 0x095c,
+ 0x0674, 0x01fa, 0x01ea, 0x0790, 0x0867, 0xfe6a,
+ 0xf61a, 0xf3d8, 0xf57e, 0xf770, 0xef43, 0xea2f,
+ 0xf597, 0xf9d0, 0xf086, 0xefc7, 0xf94b, 0x015f,
+ 0xff20, 0xf5b0, 0xf437, 0xf575, 0xeea9, 0xea2e,
+ 0xed0e, 0xf6a9, 0x0545, 0x0a93, 0x07da, 0x0ab4,
+ 0x0d13, 0x0941, 0x03a1, 0xfd8d, 0xf932, 0xf34e,
+ 0xe8e1, 0xe2c8, 0xe4e3, 0xeb8c, 0xf322, 0xf879,
+ 0x01d4, 0x0fa5, 0x1500, 0x13f4, 0x12e7, 0x0c9a,
+ 0x08b7, 0x0cd7, 0x09db, 0x007c, 0xff19, 0xfed3,
+ 0xf8fd, 0xf9fa, 0x033c, 0x062c, 0x00de, 0xff71,
+ 0x05e1, 0x0b07, 0x081a, 0x029f, 0xffd6, 0xfb45,
+ 0xf639, 0xf97e, 0xff1b, 0xf906, 0xecda, 0xeaa9,
+ 0xf186, 0xf67f, 0xfa96, 0x033b, 0x0a9a, 0x0a58,
+ 0x0711, 0x078f, 0x0c41, 0x0ebb, 0x08b3, 0xff6e,
+ 0xfc2d, 0xfa9c, 0xf3ad, 0xf153, 0xfc33, 0x04ce,
+ 0xfea1, 0xf6b8, 0xf4fa, 0xf538, 0x0010, 0x127a,
+ 0x14f3, 0x0dcc, 0x1164, 0x1404, 0x10ab, 0x11ee,
+ 0x096b, 0xf793, 0xf896, 0x037f, 0x037e, 0x0415,
+ 0x05e5, 0x0214, 0x04d7, 0x0cdc, 0x0f1a, 0x09fb,
+ 0xfc67, 0xf613, 0x030a, 0x0b0b, 0x034a, 0xfc7a,
+ 0xf661, 0xf053, 0xf58c, 0xfe3c, 0xfa98, 0xf25c,
+ 0xf8ee, 0x0a68, 0x12a4, 0x107c, 0x09c5, 0xfcb9,
+ 0xf0a5, 0xe841, 0xe11a, 0xe4e9, 0xf0e4, 0xfa20,
+ 0x011d, 0x0021, 0xfcc1, 0x067b, 0x1165, 0x151f,
+ 0x16ba, 0x0f5c, 0x0909, 0x08a7, 0xf903, 0xeb75,
+ 0xf5c5, 0xf668, 0xe5d9, 0xeb42, 0x0aa8, 0x257a,
+ 0x2983, 0x1f17, 0x1abc, 0x1be1, 0x143b, 0x0a11,
+ 0x09df, 0x0eb4, 0x1227, 0x12b5, 0x0738, 0xf4d4,
+ 0xf7eb, 0x0d89, 0x1212, 0x05dc, 0x0359, 0x0ad5,
+ 0x0d6a, 0x07f6, 0x071c, 0x116d, 0x1621, 0x0ee9,
+ 0x0914, 0x063d, 0x07d0, 0x0ec0, 0x0b81, 0x019c,
+ 0x018b, 0x0059, 0xf762, 0xf2bc, 0xf29b, 0xf872,
+ 0x06d2, 0x0c28, 0x0363, 0xff3c, 0x016e, 0xfe1b,
+ 0xf5e2, 0xef61, 0xf086, 0xf6f2, 0xf377, 0xe528,
+ 0xe0af, 0xeed3, 0xfefa, 0xfde6, 0xf434, 0xfa9f,
+ 0x0afb, 0x0fc6, 0x0da8, 0x0c7f, 0x0b08, 0x0b04,
+ 0x0781, 0x0380, 0x0931, 0x0f2b, 0x1010, 0x1055,
+ 0x0a52, 0x0246, 0xfbdf, 0xf217, 0xf1cc, 0xfb02,
+ 0xfddd, 0x01bb, 0x03a5, 0xfb28, 0xfe73, 0x0bb2,
+ 0x07ed, 0xfb46, 0xf8b1, 0xff77, 0x05f9, 0x047f,
+ 0x028b, 0x0631, 0x0a48, 0x1072, 0x1276, 0x075b,
+ 0xfc7f, 0xf9df, 0xf852, 0xf787, 0xf7e3, 0xf8cf,
+ 0xfc5b, 0x0229, 0x088a, 0x0ab9, 0x0a74, 0x0ee9,
+ 0x1067, 0x0c2c, 0x0cb2, 0x0b77, 0x02ce, 0xfba9,
+ 0xf315, 0xed8b, 0xff8a, 0x1b56, 0x1be2, 0x0847,
+ 0x0202, 0x0461, 0x00b6, 0x0699, 0x1563, 0x17c0,
+ 0x11d6, 0x0d07, 0x08ab, 0x0789, 0x0196, 0xf480,
+ 0xeda1, 0xe9b6, 0xe513, 0xe9a3, 0xf4ef, 0x02c4,
+ 0x1140, 0x152c, 0x0e78, 0x0769, 0x04dc, 0x0767,
+ 0x0768, 0x0123, 0xfa75, 0xf353, 0xef95, 0xf2dd,
+ 0xf0c6, 0xe947, 0xebcb, 0xf44e, 0xf52a, 0xf13b,
+ 0xf268, 0xf6c7, 0xf78a, 0xf8bc, 0xfbe3, 0xf9cb,
+ 0xf751, 0xfc02, 0x0277, 0x0711, 0x0735, 0xfd91,
+ 0xf232, 0xf326, 0xff12, 0x0954, 0x09e0, 0x032b,
+ 0xff04, 0x0386, 0x080b, 0x0197, 0xf5f1, 0xf034,
+ 0xf34a, 0xfad5, 0xfe59, 0x023d, 0x0d66, 0x107d,
+ 0x09b4, 0x0a9d, 0x07b7, 0xf609, 0xea43, 0xed27,
+ 0xf915, 0x0a13, 0x144f, 0x172b, 0x19b0, 0x15b0,
+ 0x0fe6, 0x14a3, 0x1aaa, 0x1675, 0x0ddf, 0x08b5,
+ 0x03ee, 0xfb2a, 0xf782, 0x0047, 0x07b8, 0x018c,
+ 0xf887, 0xfb64, 0x048f, 0x0588, 0x00b4, 0xfdee,
+ 0xfa48, 0xf92b, 0xfe40, 0xff70, 0xff19, 0x07aa,
+ 0x0e76, 0x0df8, 0x10cf, 0x0c8e, 0xf63d, 0xe830,
+ 0xf6b6, 0x0eea, 0x19c1, 0x131b, 0x08b8, 0x08f2,
+ 0x098c, 0x03ed, 0x05d8, 0x0774, 0x004e, 0x0455,
+ 0x0f8e, 0x0fea, 0x100b, 0x1016, 0x0628, 0xfde6,
+ 0xf7a5, 0xeb91, 0xe8ed, 0xf735, 0x04c3, 0x04fb,
+ 0xfe37, 0xfdbe, 0x085d, 0x133e, 0x0cbe, 0xf959,
+ 0xf40f, 0xfd18, 0xfee0, 0xfbde, 0xf76d, 0xec91,
+ 0xea81, 0xf43a, 0xf74d, 0xf44c, 0xf205, 0xf0dd,
+ 0xf6a5, 0xfd4b, 0xf7e3, 0xed60, 0xeda9, 0xf868,
+ 0xfe78, 0xfd87, 0xffdc, 0xfec3, 0xf5cf, 0xf6e7,
+ 0x0387, 0x0859, 0x023a, 0xfce2, 0x0043, 0x0acb,
+ 0x121c, 0x0f4a, 0x07e0, 0x03bc, 0x01f1, 0x005d,
+ 0x014a, 0x0495, 0x0a01, 0x0d1e, 0x04a7, 0xfa95,
+ 0xfd49, 0x0474, 0x0ca2, 0x1600, 0x12bd, 0x0630,
+ 0xfca0, 0xf520, 0xf710, 0x021a, 0x071b, 0x0992,
+ 0x0e09, 0x0cb0, 0x07fc, 0x04c2, 0x0500, 0x090a,
+ 0x0ab1, 0x0d9f, 0x142c, 0x0fda, 0x0156, 0xf81c,
+ 0xf6c2, 0xfb1c, 0xff6c, 0xf9ff, 0xf3d1, 0xfe87,
+ 0x11ae, 0x177b, 0x124a, 0x0e5b, 0x065f, 0xf8cf,
+ 0xf130, 0xf238, 0xf4c6, 0xf441, 0xfa7c, 0x0de6,
+ 0x1744, 0x0f6a, 0x0d88, 0x0d4a, 0x08d4, 0x0f2e,
+ 0x11d7, 0x05d6, 0xff40, 0x01ac, 0x09be, 0x114c,
+ 0x0721, 0xf9c2, 0xfce6, 0x02e1, 0x0481, 0x00e1,
+ 0xf645, 0xf3f2, 0xfa1f, 0xf7f8, 0xeef0, 0xeec2,
+ 0x02aa, 0x1717, 0x1048, 0x0137, 0xfb7c, 0xef83,
+ 0xe8f6, 0xf5b3, 0xff67, 0x0111, 0x0697, 0x0a0a,
+ 0x09e2, 0x0c1f, 0x0c02, 0x0526, 0xfb7e, 0xf488,
+ 0xf5e8, 0xfe6c, 0xfea2, 0xf33f, 0xf26e, 0xfed1,
+ 0x036c, 0x00c8, 0x0079, 0x0223, 0x0865, 0x0c5a,
+ 0x063b, 0x0314, 0x0852, 0x0c6f, 0x11f0, 0x1c34,
+ 0x1f1e, 0x13d7, 0x061c, 0xfe39, 0xfad4, 0x0071,
+ 0x070b, 0xff55, 0xf8e5, 0xfe36, 0xfe6a, 0xfe81,
+ 0x07c9, 0x0ee8, 0x14ab, 0x162d, 0x0755, 0xf594,
+ 0xf17b, 0xf8b0, 0xffd5, 0xfb41, 0xf5f4, 0xfbad,
+ 0xfb26, 0xf19d, 0xee64, 0xec4b, 0xe801, 0xec17,
+ 0xf891, 0x0212, 0xff0b, 0xf586, 0xf06d, 0xea89,
+ 0xe4b7, 0xec7b, 0xfa7e, 0xfc5c, 0xf7a5, 0xfbcb,
+ 0x01db, 0xfe96, 0xfd21, 0x0195, 0x0162, 0x0238,
+ 0x02e3, 0xf6d7, 0xef51, 0xf987, 0x00d2, 0xff85,
+ 0x031d, 0x0a5d, 0x0d0f, 0x0c49, 0x0e58, 0x0f10,
+ 0x0622, 0xfd50, 0xfd3d, 0xfd3b, 0xfc08, 0x0169,
+ 0x0dc0, 0x1860, 0x15ab, 0x08c3, 0x003b, 0xfdb0,
+ 0xfa07, 0xf4dd, 0xf6f3, 0x066e, 0x14a6, 0x10c5,
+ 0x01c8, 0xf66c, 0xf571, 0xfaec, 0xfccb, 0xfba5,
+ 0xf9d1, 0xf3bd, 0xefb2, 0xf00b, 0xed53, 0xebe4,
+ 0xf018, 0xf70e, 0x034d, 0x100c, 0x13ce, 0x10b1,
+ 0x078f, 0xf5b1, 0xe3b7, 0xdec6, 0xe681, 0xee9f,
+ 0xf3bc, 0xfbc4, 0x01ef, 0xfe0d, 0xf79e, 0xfc3b,
+ 0x08ff, 0x0e9e, 0x0ddd, 0x11b6, 0x15b0, 0x1535,
+ 0x1194, 0x089d, 0x0483, 0x081e, 0x02f7, 0xfd00,
+ 0x0293, 0x0641, 0x0a7e, 0x13eb, 0x114b, 0x086e,
+ 0x090f, 0x0924, 0x0222, 0xfc2d, 0x000b, 0x0bc8,
+ 0x0c20, 0xfde2, 0xf57b, 0xf619, 0xf65d, 0xf617,
+ 0xf714, 0xfb83, 0x00bc, 0xffe7, 0xfc87, 0xfb7a,
+ 0xf811, 0xf1aa, 0xf24c, 0xfab6, 0xf95c, 0xf068,
+ 0xf7cd, 0x0410, 0xfcff, 0xf36b, 0xf751, 0xfe08,
+ 0xfff1, 0xfc5e, 0xfbe2, 0x02ea, 0xfefd, 0xed8d,
+ 0xe869, 0xf9d0, 0x0fa9, 0x1187, 0x0473, 0x01e2,
+ 0x00fd, 0xf608, 0xf707, 0xfd7f, 0xf43a, 0xf2aa,
+ 0x03f4, 0x0d25, 0x0856, 0x0480, 0x08e3, 0x119c,
+ 0x10a0, 0x052d, 0xffe1, 0xfe57, 0xf3a9, 0xed2e,
+ 0xf8cf, 0x051d, 0x0407, 0xfedc, 0xfb3f, 0xfa84,
+ 0xfe77, 0xff72, 0xfc0a, 0xf7ec, 0xef70, 0xec85,
+ 0xf4cf, 0xf2ed, 0xe8aa, 0xefa7, 0xfd6f, 0xfab2,
+ 0xf4bf, 0xff41, 0x0e93, 0x1160, 0x0cc2, 0x075e,
+ 0x00ac, 0xff7c, 0x0310, 0x04e8, 0x0911, 0x0955,
+ 0xff63, 0xfaa8, 0xfe8f, 0x01dc, 0x08ca, 0x11d4,
+ 0x15d1, 0x183f, 0x1a73, 0x1870, 0x0e54, 0xff6a,
+ 0xfa15, 0x0196, 0x0a62, 0x0d18, 0x09c9, 0x0ad9,
+ 0x13fa, 0x140d, 0x0a7f, 0x0aae, 0x14f7, 0x1d9a,
+ 0x1d62, 0x1356, 0x0aa3, 0x09d2, 0x090b, 0x05b4,
+ 0x06df, 0x0da0, 0x0ead, 0x069d, 0x0277, 0x02fa,
+ 0xfe78, 0xf628, 0xeabf, 0xe3f5, 0xf0bb, 0x04ab,
+ 0x0b74, 0x0806, 0x015c, 0xfd98, 0xfe27, 0xf6b3,
+ 0xe922, 0xe71e, 0xef7f, 0xf3f8, 0xf308, 0xf35f,
+ 0xf2b9, 0xef88, 0xf30b, 0xf8e6, 0xf61c, 0xf8a7,
+ 0x0872, 0x114d, 0x0ac8, 0x0271, 0x01e6, 0x0354,
+ 0xfdf4, 0xfa0f, 0xff87, 0x03d4, 0x0468, 0x085c,
+ 0x0b5d, 0x09d8, 0x094c, 0x0b1b, 0x08f2, 0x017e,
+ 0xfd4b, 0xfbdc, 0xf676, 0xf31e, 0xf397, 0xf1fb,
+ 0xf21d, 0xf60d, 0xfc32, 0x01c0, 0xfe0c, 0xf87b,
+ 0xfcb4, 0xfd53, 0xf28d, 0xe717, 0xe26d, 0xe6f6,
+ 0xea94, 0xe6bc, 0xeb32, 0xf6c9, 0xf641, 0xef6a,
+ 0xf153, 0xf782, 0xf61d, 0xf03a, 0xf2ed, 0xf6c0,
+ 0xef83, 0xeac2, 0xedbe, 0xeafe, 0xe52b, 0xe7ec,
+ 0xf2e7, 0xfab0, 0xf8f2, 0xf7f4, 0xfa15, 0xf78a,
+ 0xf649, 0xfa72, 0x034d, 0x1003, 0x1068, 0x04f5,
+ 0x01e3, 0x000d, 0xf8df, 0xf991, 0xfe48, 0x007e,
+ 0x01ea, 0xff9e, 0xfe92, 0xfe2c, 0xf7e5, 0xf688,
+ 0xfc0e, 0xfd8a, 0xfe85, 0x02c3, 0x06c5, 0x0700,
+ 0x0194, 0xfc62, 0xf565, 0xe8c0, 0xe47c, 0xea0d,
+ 0xefa9, 0xf6ca, 0xf5e3, 0xed49, 0xeea7, 0xedc0,
+ 0xe672, 0xf1b7, 0x021f, 0xff56, 0xf76f, 0xf328,
+ 0xef5b, 0xef6d, 0xf03e, 0xf363, 0xfb1f, 0xfc5d,
+ 0xf8aa, 0xf85c, 0xf2a2, 0xe98f, 0xef9f, 0xfef9,
+ 0x0070, 0xf599, 0xf0c5, 0xf4ed, 0xfa05, 0xfb5b,
+ 0xf9a0, 0xfa8d, 0xfe0c, 0x004b, 0x05e7, 0x0d2a,
+ 0x0f06, 0x0f49, 0x0c9f, 0x064b, 0x077d, 0x0882,
+ 0xff17, 0xfbe9, 0xffab, 0xf99f, 0xf3dc, 0xf9b2,
+ 0xfdd2, 0xf9fe, 0xf923, 0xfc8d, 0xf91c, 0xf3b3,
+ 0xf7da, 0xf9e1, 0xf42b, 0xf438, 0xf6c5, 0xf662,
+ 0xf8f9, 0xf902, 0xf464, 0xee8f, 0xe91e, 0xf52a,
+ 0x0cd3, 0x0e66, 0x0360, 0x035a, 0x0401, 0x0466,
+ 0x065a, 0xfeb2, 0xf974, 0xff1e, 0xff13, 0xf8cd,
+ 0xf5d7, 0xf459, 0xf4e6, 0xf8f1, 0xfe34, 0x02fb,
+ 0x0575, 0x09bb, 0x13f5, 0x19f5, 0x1389, 0x0c28,
+ 0x0afb, 0x04da, 0xfb3a, 0xfc81, 0x0418, 0x0820,
+ 0x093d, 0x070a, 0x06c0, 0x0b80, 0x0e0e, 0x0f3c,
+ 0x0b1b, 0xfd27, 0xf952, 0x020e, 0xffdc, 0xf4d0,
+ 0xf05b, 0xf6ff, 0x02ce, 0x0271, 0xf9d3, 0xfa43,
+ 0xfa2a, 0xf494, 0xf497, 0xf806, 0xfb8e, 0xfd59,
+ 0xfbb7, 0xfb74, 0xf6ba, 0xed6d, 0xec47, 0xf069,
+ 0xf923, 0x062c, 0x0818, 0x0518, 0x06f4, 0x025c,
+ 0xfc00, 0xf826, 0xf347, 0xfd3f, 0x1189, 0x1867,
+ 0x140a, 0x0c24, 0x0565, 0x05a0, 0x079b, 0x0c7f,
+ 0x137e, 0x124f, 0x116a, 0x16cc, 0x178f, 0x12b4,
+ 0x0b6d, 0x074e, 0x0b47, 0x0c9e, 0x087d, 0x0548,
+ 0x0153, 0x0073, 0x018b, 0xfe51, 0xfc97, 0xf9e7,
+ 0xf3a5, 0xf458, 0xfa55, 0x0256, 0x0c32, 0x0cef,
+ 0x066e, 0x02d3, 0x0317, 0x0738, 0x063d, 0x0048,
+ 0x044f, 0x0802, 0x0032, 0xfa8a, 0xf94f, 0xf790,
+ 0xf814, 0xfccc, 0x0584, 0x081d, 0x0446, 0x03af,
+ 0xf9d4, 0xebb5, 0xee2e, 0xedd5, 0xe80b, 0xf663,
+ 0x0611, 0x04e4, 0x0129, 0xff2a, 0x0592, 0x13b7,
+ 0x18d5, 0x1b06, 0x1e8d, 0x1bb5, 0x1d48, 0x1e95,
+ 0x11b6, 0x07a3, 0x06fc, 0x045c, 0x07bb, 0x1129,
+ 0x0f6c, 0x07d6, 0x0888, 0x07bf, 0xffbd, 0xffea,
+ 0x076a, 0x07dc, 0x059a, 0x0476, 0x0128, 0x0443,
+ 0x0d52, 0x103a, 0x0fed, 0x14c2, 0x1b2c, 0x174c,
+ 0x0536, 0xf543, 0xf6a5, 0x04d0, 0x10ce, 0x0d82,
+ 0x01c1, 0xfe44, 0xfd58, 0xf525, 0xedfa, 0xf090,
+ 0xfc69, 0x053d, 0x011e, 0xfd5b, 0x011d, 0xffd5,
+ 0xfeff, 0x0d9b, 0x2104, 0x247c, 0x159d, 0x0472,
+ 0x00a9, 0x06fb, 0x084b, 0x037e, 0x0385, 0x064f,
+ 0x0580, 0x0716, 0x0b5e, 0x0c4c, 0x0c5e, 0x0ec6,
+ 0x1441, 0x1522, 0x0a1e, 0x06fd, 0x1068, 0x088a,
+ 0xf61d, 0xf235, 0xf294, 0xf59f, 0xffba, 0xff9d,
+ 0xf7be, 0xf698, 0xf8fe, 0xfc7a, 0xfe1e, 0xfc26,
+ 0xfcfa, 0xfe36, 0xfa89, 0xf251, 0xebee, 0xf50e,
+ 0x05c4, 0x0967, 0x07eb, 0x0d62, 0x1305, 0x10d2,
+ 0x04fc, 0xfb37, 0xfaec, 0xf9f9, 0xf97d, 0xfb96,
+ 0xfb35, 0x04fd, 0x15a5, 0x14fe, 0x09c4, 0x0290,
+ 0xfbbe, 0xf8ec, 0xfdb9, 0x04dc, 0x0983, 0x0807,
+ 0x0461, 0x01fb, 0xfe0b, 0xfc38, 0xfd63, 0xfcec,
+ 0xfc40, 0xfda1, 0x03dd, 0x0b22, 0x0923, 0x069b,
+ 0x0c1c, 0x0be6, 0x04df, 0x03fb, 0x09e8, 0x1063,
+ 0x0df9, 0x02c2, 0xff04, 0x04ef, 0x08ed, 0x0898,
+ 0x0474, 0xff67, 0xfc93, 0xf5ec, 0xedd7, 0xecc8,
+ 0xeadf, 0xe7d2, 0xf34c, 0x0308, 0x0180, 0xfbb0,
+ 0x002f, 0x005d, 0xf720, 0xf330, 0xf97e, 0xff02,
+ 0xf76f, 0xedc6, 0xf76e, 0x063d, 0x0265, 0xf9ba,
+ 0x01bc, 0x17fd, 0x2842, 0x23e1, 0x1ada, 0x1a29,
+ 0x1277, 0x0627, 0x0317, 0x0024, 0xfd2c, 0x0316,
+ 0x087a, 0x08b6, 0x0711, 0x01cf, 0x01a9, 0x08be,
+ 0x0420, 0xf8bd, 0x01a5, 0x1127, 0x08c5, 0xfc3f,
+ 0x04f5, 0x0e8c, 0x099b, 0x0204, 0xff2c, 0x02b2,
+ 0x0a88, 0x1037, 0x0eb1, 0x00e2, 0xf2bb, 0xf668,
+ 0xfe6c, 0xfb7d, 0xf727, 0xf5b5, 0xf675, 0xf835,
+ 0xf413, 0xf265, 0xfa7a, 0xfbd5, 0xefb3, 0xe707,
+ 0xeeb7, 0xfc8e, 0x00d7, 0x04d3, 0x0f99, 0x0f05,
+ 0x036d, 0xfc48, 0xf50e, 0xede1, 0xf141, 0xfb3b,
+ 0x01ba, 0x038f, 0x07e1, 0x0bf3, 0x026d, 0xf49a,
+ 0xf3d4, 0xfa82, 0x0263, 0x05ab, 0xfb04, 0xf0a2,
+ 0xf367, 0xf379, 0xe976, 0xe4b2, 0xed10, 0xf571,
+ 0xf458, 0xf89d, 0x0818, 0x1047, 0x0e3b, 0x0d40,
+ 0x0df1, 0x0fff, 0x104a, 0x08fb, 0x0291, 0x0573,
+ 0x08f0, 0x02e4, 0xf756, 0xf32c, 0xf8a4, 0xfa6b,
+ 0xf33e, 0xf107, 0xfa72, 0xffed, 0xfa86, 0xf62a,
+ 0xf323, 0xef36, 0xf401, 0xfac9, 0xf99b, 0xfb29,
+ 0x008b, 0x00c5, 0xfe7a, 0xfb34, 0xf714, 0xf6e1,
+ 0xfec8, 0x103c, 0x1c75, 0x1367, 0x033d, 0xfc31,
+ 0xf7ea, 0xf389, 0xf5f9, 0xfe07, 0x0321, 0x0886,
+ 0x14eb, 0x16d9, 0x0771, 0x00cc, 0x0261, 0xfafd,
+ 0xfaa0, 0x0627, 0x0bb8, 0x0cb2, 0x0b98, 0x046d,
+ 0xfde3, 0xf9fc, 0xf4a9, 0xeeb1, 0xeec7, 0xfb82,
+ 0x0824, 0x07d1, 0x082e, 0x0f61, 0x12dd, 0x1278,
+ 0x0dfb, 0x0232, 0xf5fd, 0xf09c, 0xf34f, 0xf9ce,
+ 0xfeb8, 0x0132, 0xfcfa, 0xf21e, 0xef73, 0xfc0f,
+ 0x0a90, 0x0bf3, 0x0543, 0x07de, 0x10e7, 0x12a0,
+ 0x0f56, 0x07d7, 0xfd00, 0xfc34, 0x01a5, 0xff0c,
+ 0xfb32, 0xfbe2, 0xf88e, 0xf262, 0xf3c8, 0xfa77,
+ 0xfd05, 0x002f, 0x05fe, 0x0180, 0xf6fe, 0xf21d,
+ 0xeb52, 0xe4fa, 0xeba1, 0xfcec, 0x0e6c, 0x113f,
+ 0x0a4f, 0x1226, 0x1c52, 0x13aa, 0x0847, 0x0239,
+ 0x0158, 0x08e4, 0x0577, 0xf974, 0xfc5a, 0xfe02,
+ 0xf3e3, 0xf2cc, 0xfb09, 0x0144, 0x0177, 0xfdc4,
+ 0x022b, 0x09e3, 0x087f, 0x0595, 0x015b, 0xf5b3,
+ 0xec0c, 0xee1c, 0xfaab, 0x003e, 0xf7f3, 0xfca1,
+ 0x0ed5, 0x0fab, 0x02c9, 0xf79d, 0xf1b6, 0xfcf1,
+ 0x130d, 0x2040, 0x2182, 0x18f0, 0x1014, 0x0bf4,
+ 0xff9c, 0xf333, 0xf663, 0xfa88, 0xf79c, 0xf82b,
+ 0xfdda, 0x03ef, 0x0300, 0xf987, 0xf224, 0xf2ac,
+ 0xf8ef, 0xfc9e, 0xf88a, 0xf91a, 0xfe42, 0xf88f,
+ 0xf470, 0xfe6f, 0x0587, 0x0547, 0x0630, 0x047b,
+ 0x01e7, 0x0476, 0x0779, 0x07a9, 0x05a2, 0x00c2,
+ 0xfcac, 0xfa25, 0xf26a, 0xeabd, 0xf0e2, 0xfa80,
+ 0xf437, 0xe75d, 0xe2ce, 0xe3b6, 0xebfd, 0xfe00,
+ 0x0c11, 0x0caa, 0x05c6, 0xfed6, 0xf992, 0xf750,
+ 0xfbba, 0x01e6, 0x0061, 0xff14, 0x07b3, 0x0edd,
+ 0x0e16, 0x0e99, 0x102f, 0x0fd5, 0x12db, 0x1370,
+ 0x087f, 0xfb7b, 0xf4ef, 0xef65, 0xe872, 0xe49b,
+ 0xe9ad, 0xf546, 0xfb2b, 0xfea3, 0x080e, 0x08f0,
+ 0x0103, 0x03ca, 0x0968, 0x088f, 0x0cd7, 0x11dc,
+ 0x0ea9, 0x09a6, 0x094a, 0x0f95, 0x1078, 0x0573,
+ 0x035c, 0x0834, 0x002d, 0xfbf9, 0x04c7, 0x06a7,
+ 0x01d8, 0xff1d, 0xfdbe, 0xff45, 0xfe1a, 0xf7b4,
+ 0xf661, 0xfe6c, 0x0802, 0x07bb, 0x0599, 0x12af,
+ 0x1cb1, 0x1313, 0x0a85, 0x05a9, 0xfc1e, 0xffe9,
+ 0x1330, 0x1e81, 0x14cd, 0x00ad, 0xfb5a, 0x025e,
+ 0x0069, 0x0032, 0x05ce, 0xfd78, 0xf195, 0xf187,
+ 0xf418, 0xf45a, 0xecca, 0xdfcc, 0xe349, 0xf527,
+ 0xfde8, 0xfb75, 0xfa30, 0xfd7b, 0xfb0c, 0xefd0,
+ 0xeb0a, 0xed9f, 0xec9b, 0xeff9, 0xfb50, 0xffd5,
+ 0xf863, 0xf196, 0xf71b, 0xfebe, 0xfa83, 0xf45e,
+ 0xf0fb, 0xe8b0, 0xe326, 0xe15b, 0xdefb, 0xe82b,
+ 0xf4c7, 0xf2d0, 0xf2fb, 0x0114, 0x0c41, 0x0c4c,
+ 0x0840, 0x0815, 0x0888, 0xffbf, 0xf846, 0xff1f,
+ 0x06ba, 0x0555, 0x0255, 0xfe87, 0xf927, 0xf88c,
+ 0xfdc6, 0x02c7, 0x039b, 0x0093, 0xfb9d, 0xf8c3,
+ 0xfb2e, 0x00e7, 0x07f7, 0x0c82, 0x080e, 0xfea7,
+ 0xf788, 0xf3ec, 0xf997, 0x059d, 0x0a40, 0x0b2e,
+ 0x0f69, 0x0f62, 0x0a62, 0x03c1, 0xfaec, 0xf634,
+ 0xf930, 0x0017, 0x05c9, 0x054a, 0x05ec, 0x0d2b,
+ 0x0e18, 0x0588, 0xf96f, 0xea47, 0xe5ee, 0xefe8,
+ 0xf494, 0xf6c8, 0xfe57, 0xfd64, 0xf820, 0xfa68,
+ 0xfd16, 0xff37, 0x012e, 0xfffe, 0x0452, 0x0ad8,
+ 0x09ae, 0x06ae, 0xff35, 0xf77b, 0x0684, 0x1f1d,
+ 0x2298, 0x19c0, 0x1456, 0x1314, 0x1655, 0x13f8,
+ 0x07bf, 0xffe8, 0xfe97, 0xfc1e, 0xfb93, 0x02b8,
+ 0x0ea5, 0x1021, 0x03d4, 0x0263, 0x1177, 0x177d,
+ 0x0fa5, 0x08f1, 0x0734, 0x0726, 0x059a, 0x0446,
+ 0x03a0, 0xfcd8, 0xf86a, 0xff9c, 0x0151, 0xfc9f,
+ 0x0380, 0x0999, 0x0395, 0xffb6, 0xfc25, 0xf478,
+ 0xf604, 0xfc70, 0xfb79, 0xfd2d, 0x058e, 0x0355,
+ 0xf2f4, 0xea85, 0xf51a, 0x0122, 0x047a, 0x0b4c,
+ 0x158b, 0x141e, 0x07e6, 0xfdf9, 0xfa25, 0xf92f,
+ 0xf92b, 0xf717, 0xf058, 0xea9c, 0xee76, 0xfa4a,
+ 0x0399, 0x017f, 0xf6a2, 0xf338, 0xfefe, 0x08ad,
+ 0x044d, 0x036e, 0x0e13, 0x0cbf, 0xfb05, 0xf236,
+ 0xf5ab, 0xf988, 0xffad, 0x03e2, 0x0169, 0xfe23,
+ 0xf59c, 0xebe9, 0xef33, 0xf136, 0xea73, 0xf01f,
+ 0xfdbd, 0x01a9, 0x0086, 0xfb17, 0xf0a8, 0xe85b,
+ 0xe0f3, 0xe019, 0xecea, 0xf871, 0xfb21, 0x005c,
+ 0x07d6, 0x0828, 0x0186, 0xfa9e, 0xf6b4, 0xf570,
+ 0xf7cf, 0xfaa0, 0xf960, 0xf943, 0xfc90, 0xfe30,
+ 0xfe66, 0xfaff, 0xf0e7, 0xeb42, 0xf493, 0x02e3,
+ 0x0426, 0xfb53, 0xf99e, 0xf927, 0xf0aa, 0xf1ef,
+ 0xfe4c, 0x00a7, 0xfcb3, 0xfea3, 0x0496, 0x0ad2,
+ 0x07c3, 0xfc2f, 0xfbe9, 0x0754, 0x0ccf, 0x0972,
+ 0x0361, 0xfdc3, 0xf7bc, 0xefde, 0xeb27, 0xea03,
+ 0xe364, 0xd842, 0xd677, 0xe4d7, 0xf823, 0xffed,
+ 0xfa4e, 0xf280, 0xf3cd, 0xfd95, 0x0174, 0xfb4a,
+ 0xf7ee, 0xfa1a, 0xfa00, 0xf5df, 0xefa5, 0xec06,
+ 0xeed5, 0xf644, 0x0032, 0x0650, 0x0353, 0xfffe,
+ 0x0081, 0xfb9f, 0xf1ec, 0xed55, 0xf1c7, 0xfdb3,
+ 0x080e, 0x068a, 0xfee7, 0xfaef, 0xf551, 0xef8f,
+ 0xf918, 0x0979, 0x0aaa, 0x0668, 0x0cc7, 0x124b,
+ 0x0d02, 0x0243, 0xf6fa, 0xf03c, 0xf183, 0xf7db,
+ 0xfe0e, 0xffb3, 0xff05, 0x01e6, 0x0628, 0x070b,
+ 0x065f, 0x080d, 0x0cb1, 0x1044, 0x0dd2, 0x04e8,
+ 0xf913, 0xee7f, 0xe8f6, 0xed3c, 0xfa05, 0x0314,
+ 0x03bd, 0x04bf, 0x090c, 0x0d50, 0x0e38, 0x09b9,
+ 0x05c3, 0x021f, 0xf878, 0xf5b5, 0x000d, 0x043e,
+ 0x00fb, 0x02bb, 0x01b1, 0xf991, 0xf611, 0xfb56,
+ 0x00f2, 0xfe2e, 0xfac2, 0x0612, 0x16f2, 0x1936,
+ 0x111c, 0x0f6c, 0x1542, 0x13de, 0x0775, 0x02b1,
+ 0x0a53, 0x0c62, 0x0b02, 0x11db, 0x128c, 0x0412,
+ 0xf7a4, 0xfa84, 0x0931, 0x1241, 0x0a47, 0x0414,
+ 0x08bb, 0x03a6, 0xfb00, 0x0112, 0x04c4, 0xfe19,
+ 0xfb0d, 0xf8fd, 0xf57d, 0xf39f, 0xf17a, 0xf7bd,
+ 0x0219, 0xfe32, 0xf712, 0xfae9, 0x010c, 0x0552,
+ 0x0484, 0xfe3f, 0xf9cd, 0xedab, 0xdacd, 0xdc1f,
+ 0xef07, 0xfa46, 0xfd42, 0x00ea, 0x0397, 0xff95,
+ 0xf6e0, 0xf50c, 0xf924, 0xf933, 0xf8d9, 0xf8c3,
+ 0xf42f, 0xf659, 0x0540, 0x1065, 0x0fc5, 0x1046,
+ 0x15c4, 0x14f4, 0x10c6, 0x1405, 0x1733, 0x1307,
+ 0x0b8f, 0xff41, 0xef58, 0xe613, 0xeba6, 0xfe12,
+ 0x0a7e, 0x0a3a, 0x114d, 0x1c2e, 0x176b, 0x0f74,
+ 0x0de3, 0x09bc, 0x07f9, 0x0946, 0x05b1, 0x0324,
+ 0x03ee, 0x036b, 0x01f7, 0xffe6, 0x01db, 0x0482,
+ 0xfc29, 0xf5db, 0xfbc5, 0xfa12, 0xf212, 0xf685,
+ 0xfd2b, 0xfcb6, 0x01f8, 0x0e4b, 0x13d6, 0x0fae,
+ 0x0e67, 0x1294, 0x0f79, 0x0940, 0x0c20, 0x0e21,
+ 0x067b, 0xfa57, 0xf030, 0xf715, 0x0e95, 0x180d,
+ 0x0df1, 0x0bc8, 0x1313, 0x0e63, 0x01cf, 0x021b,
+ 0x0add, 0x0ba4, 0x0aa0, 0x0d07, 0x071b, 0xfd42,
+ 0xfe3c, 0x04fb, 0x043a, 0xfd5c, 0x0041, 0x0c2f,
+ 0x08a0, 0xf89b, 0xf587, 0xf89c, 0xf47d, 0xf2ab,
+ 0xf768, 0xff76, 0x067f, 0x0530, 0xff94, 0xfd4d,
+ 0xfda6, 0xfe38, 0xfb84, 0xf981, 0xfe53, 0x00b2,
+ 0xfc9d, 0xf9c4, 0xf4a4, 0xea91, 0xe5da, 0xed8d,
+ 0xfb79, 0x0402, 0x09e7, 0x1335, 0x121e, 0x0409,
+ 0xfe19, 0x03a3, 0x06e8, 0x07e0, 0x0f69, 0x18f5,
+ 0x16b0, 0x0f76, 0x1211, 0x1406, 0x0d85, 0x07ef,
+ 0x047a, 0x0628, 0x0fd8, 0x1697, 0x1721, 0x126f,
+ 0x04de, 0xf642, 0xeff1, 0xf4f8, 0x013e, 0x05ca,
+ 0x05a8, 0x0e25, 0x12eb, 0x0cc8, 0x079b, 0x03e1,
+ 0xfecf, 0xfa2a, 0xf70b, 0xf900, 0xfcbc, 0xffe4,
+ 0x06ed, 0x0c56, 0x0be3, 0x088a, 0x0132, 0xfc52,
+ 0xfe78, 0xfdb6, 0xf7b4, 0xf2b2, 0xef36, 0xe9ad,
+ 0xe383, 0xe84f, 0xf519, 0xf726, 0xf479, 0xfadf,
+ 0x0219, 0x0478, 0x0344, 0xff4b, 0xfcee, 0xfc84,
+ 0x0133, 0x08dd, 0x046e, 0xffa4, 0x0ee7, 0x1be5,
+ 0x139a, 0x0c28, 0x13bd, 0x18a4, 0x110e, 0x0ef2,
+ 0x1480, 0x0e2e, 0x0432, 0x0118, 0xf99c, 0xfa3b,
+ 0x0aca, 0x12f1, 0x132b, 0x1776, 0x1393, 0x0594,
+ 0xf874, 0xef84, 0xe983, 0xe6db, 0xf110, 0x0330,
+ 0x0703, 0x0304, 0x0640, 0x0776, 0x0649, 0x06ea,
+ 0x01c3, 0xfc45, 0xfd84, 0xfdbe, 0xfb2d, 0xfc82,
+ 0x011c, 0xffd0, 0xf75d, 0xf3c2, 0xf877, 0xfcf3,
+ 0xfde5, 0xffa9, 0x045f, 0x0221, 0xf5f8, 0xefe7,
+ 0xf0b3, 0xf1d1, 0xfcf2, 0x092a, 0x09d1, 0x0c0a,
+ 0x0e42, 0x0c20, 0x12f5, 0x16e7, 0x0d8d, 0x0adc,
+ 0x1028, 0x13ce, 0x1aef, 0x2084, 0x1cf1, 0x1224,
+ 0x013e, 0xf46c, 0xf6ad, 0x007d, 0x0734, 0x0ad7,
+ 0x0ba9, 0x0524, 0xfbd9, 0xfd32, 0x0722, 0x0d6e,
+ 0x0f78, 0x0e23, 0x07d5, 0x022f, 0x0193, 0x0352,
+ 0x0246, 0xfe23, 0xfc7b, 0xfab7, 0xf407, 0xf02c,
+ 0xf2d8, 0xf6cc, 0xfa11, 0xf779, 0xeded, 0xeba0,
+ 0xf6bf, 0xff3c, 0xf82f, 0xee7d, 0xf22e, 0xf6c9,
+ 0xefb3, 0xef66, 0xff0b, 0x089c, 0x0318, 0xfe0b,
+ 0xff1e, 0xfb4b, 0xed0c, 0xe284, 0xedf4, 0x04ad,
+ 0x0c70, 0x0973, 0x0d30, 0x10c1, 0x0d75, 0x0a3e,
+ 0x061e, 0xfec4, 0xf729, 0xf331, 0xf95f, 0x03b4,
+ 0x07dc, 0x0db8, 0x159e, 0x1255, 0x05a0, 0xf88c,
+ 0xf3fc, 0xfaab, 0xfa63, 0xef61, 0xf16b, 0x0031,
+ 0x05b0, 0x0156, 0x01f0, 0x0ab2, 0x0f9b, 0x0984,
+ 0xff8d, 0xf969, 0xfb9b, 0x01fd, 0xfe07, 0xf00e,
+ 0xe6d8, 0xe88a, 0xf39b, 0xff05, 0x00f2, 0xfddf,
+ 0xfce5, 0xfe70, 0x016d, 0x063f, 0x1045, 0x1776,
+ 0x10c5, 0x090d, 0x07d3, 0x0092, 0xf8de, 0xfd56,
+ 0x0758, 0x0c91, 0x085e, 0xfe60, 0xf5e9, 0xf341,
+ 0xfcac, 0x075c, 0x00af, 0xf7ba, 0xf99b, 0xf8bc,
+ 0xfa9c, 0x0550, 0x05e2, 0xfbe3, 0xf7d5, 0xfa96,
+ 0xfdbb, 0x00a4, 0x072c, 0x0c27, 0x07f7, 0x0636,
+ 0x0995, 0x0373, 0xfd73, 0x03e3, 0x0ae6, 0x0e26,
+ 0x0aa9, 0xfa8c, 0xf19d, 0xf90c, 0xf95e, 0xf342,
+ 0xf8d2, 0xfaca, 0xed96, 0xeb3e, 0xfe42, 0x0d02,
+ 0x0afd, 0x0501, 0x0155, 0xfa97, 0xf2fc, 0xf458,
+ 0xfb7b, 0xfeac, 0x0557, 0x1192, 0x1206, 0x0a11,
+ 0x0b3f, 0x0e45, 0x088e, 0x0009, 0xfd29, 0x0578,
+ 0x0f99, 0x0cc7, 0x05a2, 0x0505, 0x04e7, 0x0201,
+ 0xfadb, 0xf240, 0xf6db, 0x059b, 0x0a49, 0x0629,
+ 0x071d, 0x0c1d, 0x0dec, 0x0d24, 0x0db9, 0x0bd8,
+ 0x0203, 0xf988, 0xfc22, 0x003d, 0xfde5, 0xfd7d,
+ 0x0309, 0x073a, 0x0576, 0x0033, 0xfbf1, 0xf857,
+ 0xf2e7, 0xf13d, 0xf734, 0xfb9c, 0xf71e, 0xed47,
+ 0xe769, 0xec7f, 0xf26f, 0xed40, 0xe73e, 0xe704,
+ 0xe6d5, 0xed02, 0xf85b, 0xfd80, 0x03ed, 0x0b78,
+ 0x0709, 0x02e4, 0x0909, 0x0d79, 0x110e, 0x1431,
+ 0x0b42, 0xfc25, 0xf0fc, 0xea0f, 0xecd2, 0xf76e,
+ 0xfffb, 0x03f3, 0xfe02, 0xefe7, 0xead5, 0xef63,
+ 0xf07b, 0xef3a, 0xf01a, 0xf2d0, 0xf82d, 0xff49,
+ 0x0957, 0x1460, 0x1761, 0x1511, 0x13d0, 0x0dfd,
+ 0x0748, 0x08d7, 0x0b37, 0x071a, 0xfd8e, 0xf2c4,
+ 0xf239, 0xf8a8, 0xf6d8, 0xf6e2, 0x0061, 0x00a2,
+ 0xf920, 0xf817, 0xf590, 0xf371, 0xfb5e, 0xfd27,
+ 0xf5b6, 0xfdd1, 0x0ffc, 0x0eed, 0x02ed, 0x07af,
+ 0x13f8, 0x11e7, 0x0c55, 0x1017, 0x1122, 0x0c0f,
+ 0x0a7d, 0x08af, 0x00a6, 0xf6a7, 0xeecb, 0xed46,
+ 0xf44c, 0xfbd8, 0xfedd, 0x0404, 0x0a03, 0x063c,
+ 0xfd5e, 0xfa26, 0xf796, 0xf2b0, 0xf33f, 0xfaac,
+ 0x03fe, 0x06d1, 0x0000, 0xfc89, 0xfe7c, 0xf9cf,
+ 0xf529, 0xf5f4, 0xf38d, 0xf2dd, 0xf5e6, 0xf6bd,
+ 0xfe37, 0x09f4, 0x0c6b, 0x0c58, 0x0e1c, 0x0b11,
+ 0x05cf, 0x0023, 0xf988, 0xf395, 0xedb0, 0xecbb,
+ 0xf08d, 0xf1e7, 0xf63d, 0xfef4, 0x045d, 0x093f,
+ 0x0aac, 0x05b1, 0x0777, 0x0c76, 0x0671, 0xfec4,
+ 0xffab, 0x0369, 0x043f, 0x03a2, 0x08a7, 0x0f61,
+ 0x0ad3, 0x0212, 0x0238, 0x04f9, 0x04ed, 0x0603,
+ 0x0482, 0xfa6c, 0xeea3, 0xeb2b, 0xeda3, 0xf491,
+ 0x0356, 0x0cde, 0x081e, 0x0550, 0x0777, 0x02dd,
+ 0xff20, 0x0092, 0xfdaa, 0xfa4c, 0xfab8, 0xf902,
+ 0xf9b2, 0x00b7, 0x011e, 0xf380, 0xe5fa, 0xe6ea,
+ 0xedf9, 0xee9d, 0xf1ce, 0xfc84, 0xfd32, 0xf1bb,
+ 0xecfd, 0xee8d, 0xeaad, 0xe7d2, 0xee1e, 0xf557,
+ 0xf3f3, 0xee55, 0xee9c, 0xf304, 0xf3ec, 0xf503,
+ 0xfcb3, 0x081b, 0x0eeb, 0x0b4d, 0x0581, 0x09ab,
+ 0x10b3, 0x0f5c, 0x079a, 0xfbbc, 0xed59, 0xe226,
+ 0xe0b9, 0xeddb, 0xfefa, 0x01ba, 0xfa03, 0xf80c,
+ 0xfd7a, 0x01f1, 0x0396, 0x0933, 0x1158, 0x1319,
+ 0x113a, 0x0ccc, 0x0183, 0xfab4, 0xfd59, 0xfc70,
+ 0xf5c5, 0xf028, 0xf128, 0xf7b2, 0xf651, 0xf241,
+ 0xfe0c, 0x0c53, 0x0c08, 0x076e, 0x0827, 0x0b74,
+ 0x033d, 0xea5a, 0xdaa1, 0xdfbb, 0xe7ee, 0xf159,
+ 0xfd71, 0x0399, 0x0a3d, 0x1438, 0x161b, 0x105b,
+ 0x0bcf, 0x0a1e, 0x07e0, 0x05d9, 0x07ef, 0x08df,
+ 0x06bb, 0x098f, 0x0c2d, 0x0929, 0x091b, 0x09b3,
+ 0x0564, 0x02cf, 0x05af, 0x0c92, 0x0dc7, 0x0117,
+ 0xf907, 0x03c5, 0x10fe, 0x1629, 0x158b, 0x0fc2,
+ 0x0ced, 0x0f7e, 0x0cb1, 0x05a6, 0x0569, 0x0a83,
+ 0x0c0a, 0x0987, 0x0808, 0x07c4, 0x0656, 0x0390,
+ 0x01bf, 0x048e, 0x0866, 0x0558, 0xfd4d, 0xf676,
+ 0xf49e, 0xf886, 0xf924, 0xf391, 0xf43d, 0xfd5a,
+ 0x05f1, 0x09c0, 0x0777, 0x051b, 0x0827, 0x090f,
+ 0x01fd, 0xf488, 0xeac6, 0xf45a, 0x05f0, 0x0787,
+ 0x0226, 0x053c, 0x0bcf, 0x106f, 0x0f97, 0x0d60,
+ 0x11f5, 0x1165, 0x04e4, 0xf8d6, 0xeb38, 0xda5e,
+ 0xd3c0, 0xd934, 0xea6c, 0x0467, 0x0eda, 0x059f,
+ 0x0389, 0x0cbf, 0x129e, 0x1433, 0x128e, 0x0c9d,
+ 0x0a0a, 0x0e90, 0x0db0, 0xfedf, 0xf138, 0xf06c,
+ 0xeecc, 0xe733, 0xe7b1, 0xf02d, 0xf4bd, 0xf257,
+ 0xee12, 0xf026, 0xf694, 0xf697, 0xf285, 0xf032,
+ 0xee47, 0xf241, 0xfbd6, 0xfd96, 0xf6a7, 0xf392,
+ 0xf9eb, 0xfee1, 0xf529, 0xeb79, 0xf480, 0xfd56,
+ 0xf814, 0xf656, 0xfb36, 0xfc8b, 0xfb07, 0xf533,
+ 0xef8e, 0xf448, 0xf982, 0xf6b6, 0xf7aa, 0xfc0e,
+ 0xf7a7, 0xf033, 0xeec1, 0xef4a, 0xf4a5, 0x0282,
+ 0x09ed, 0x0500, 0x024b, 0x0271, 0xfcc8, 0xf640,
+ 0xf259, 0xf01b, 0xf38c, 0xfb5c, 0x0204, 0x062f,
+ 0x07a5, 0x06b9, 0x0245, 0xfb46, 0xf996, 0xfbe9,
+ 0xf867, 0xf332, 0xf28e, 0xee4c, 0xe518, 0xe0df,
+ 0xe18e, 0xe606, 0xf463, 0x03b3, 0x061b, 0x029e,
+ 0x002d, 0xfcc6, 0xfea9, 0x0475, 0x0221, 0xfa03,
+ 0xf6d6, 0xfbc5, 0x002d, 0xfb13, 0xf95f, 0x022c,
+ 0x00aa, 0xf59c, 0xf73e, 0x011a, 0x0575, 0x03ed,
+ 0xfdeb, 0xf30b, 0xe2a8, 0xd7be, 0xdd4e, 0xe645,
+ 0xeb3d, 0xf104, 0xf2e3, 0xfc89, 0x149d, 0x1ea1,
+ 0x1761, 0x157c, 0x16d2, 0x167b, 0x1451, 0x0f9d,
+ 0x1196, 0x1165, 0x0460, 0xfc8b, 0xfbb2, 0xf5b6,
+ 0xf16e, 0xf09b, 0xf263, 0xf7dd, 0xf787, 0xf559,
+ 0xf6bf, 0xf467, 0xf7e6, 0x014c, 0xfeb0, 0xf966,
+ 0xfa54, 0xf5cf, 0xedd3, 0xe829, 0xe76a, 0xeefc,
+ 0xf5f5, 0xfbd8, 0x048e, 0x03b1, 0xfdbd, 0x0015,
+ 0x0402, 0x0947, 0x0eef, 0x0bc2, 0x0ae4, 0x0e90,
+ 0x071d, 0xfd77, 0xfa57, 0xf249, 0xe9f7, 0xef55,
+ 0xff11, 0x098a, 0x0547, 0x0034, 0x0849, 0x0ee1,
+ 0x083f, 0x000e, 0xfa18, 0xec9c, 0xdfc1, 0xe998,
+ 0x03be, 0x12ae, 0x1596, 0x1a3c, 0x1e8e, 0x1fb4,
+ 0x1d75, 0x166c, 0x10af, 0x0d92, 0x09d1, 0x061e,
+ 0xfbe3, 0xed28, 0xeb74, 0xf807, 0x063d, 0x0b2f,
+ 0x02be, 0xfd49, 0x01d8, 0xfe6c, 0xf91a, 0x02be,
+ 0x0d3f, 0x0f76, 0x119d, 0x1131, 0x0a64, 0xfffe,
+ 0xf718, 0xf691, 0xfbea, 0x0105, 0x0592, 0x0705,
+ 0x060f, 0x082b, 0x0d01, 0x0f11, 0x06cd, 0xf93f,
+ 0xfa18, 0x089e, 0x0f89, 0x0871, 0xfd8e, 0xf837,
+ 0xf4b3, 0xec4f, 0xe961, 0xf139, 0xfb0b, 0x0785,
+ 0x0f30, 0x088b, 0x0611, 0x0ae2, 0x0557, 0x0074,
+ 0x01dc, 0xf9d7, 0xf24f, 0xf706, 0xfa0a, 0xf3c9,
+ 0xeaf5, 0xeb2a, 0xf7b0, 0x0279, 0x09fd, 0x15d7,
+ 0x1866, 0x0ecd, 0x0b10, 0x0aa8, 0x0592, 0x0555,
+ 0x0975, 0x0809, 0x04fe, 0x05f3, 0x0656, 0x0500,
+ 0x052a, 0x0299, 0xfc14, 0xfbc3, 0x03d5, 0x0b1c,
+ 0x0ba4, 0x03ca, 0xfb95, 0xfd0b, 0xfd00, 0xf132,
+ 0xea5f, 0xf6a4, 0x0a0d, 0x0fdb, 0x0880, 0x0911,
+ 0x0e08, 0x05cb, 0x0485, 0x163e, 0x1e91, 0x1b23,
+ 0x1be7, 0x1784, 0x0d79, 0x04de, 0xfab5, 0xf96c,
+ 0x0224, 0x0702, 0x0dfe, 0x1374, 0x0973, 0x026c,
+ 0x0890, 0x096d, 0x025d, 0xf74c, 0xec46, 0xf351,
+ 0x0380, 0xfed8, 0xf264, 0xfa61, 0x08c0, 0x0b77,
+ 0x0c90, 0x0bea, 0x018a, 0xfe33, 0x0ac2, 0x13ee,
+ 0x11e3, 0x0a63, 0xfdc1, 0xf28c, 0xf0f6, 0xf831,
+ 0x02a2, 0x05bd, 0x0094, 0x0132, 0x0d02, 0x1b57,
+ 0x1e59, 0x125c, 0x0bf4, 0x15d9, 0x1bd1, 0x152f,
+ 0x0edf, 0x0c15, 0x073b, 0x0079, 0xfb67, 0xf877,
+ 0xf90f, 0x0006, 0x0446, 0xfd81, 0xf513, 0xf254,
+ 0xfaf1, 0x10f1, 0x1a62, 0x0f71, 0x10ce, 0x1bb1,
+ 0x1665, 0x0fb5, 0x0eb5, 0x0082, 0xf0a0, 0xf586,
+ 0x05ad, 0x0c4c, 0x04c2, 0xfbaa, 0xfb93, 0xff1d,
+ 0x0012, 0xfdd5, 0xf481, 0xe668, 0xde07, 0xdeb1,
+ 0xe73c, 0xf5b6, 0x00fc, 0x04f8, 0x067f, 0x0541,
+ 0x051a, 0x0c16, 0x0da7, 0x032c, 0xfcc9, 0x0060,
+ 0x03d0, 0xfca4, 0xe8f4, 0xdd80, 0xeaa6, 0xfec3,
+ 0x0777, 0x0445, 0xfcbb, 0xff7f, 0x08ad, 0x0638,
+ 0x040f, 0x113c, 0x1ab2, 0x15f9, 0x11a1, 0x0f31,
+ 0x074d, 0x0109, 0x0109, 0x0027, 0xfc5d, 0xf8a5,
+ 0xfa18, 0x0559, 0x0f13, 0x0e06, 0x0aa2, 0x048f,
+ 0xfff7, 0x0b0d, 0x13ad, 0x0b32, 0x0790, 0x089e,
+ 0x00f8, 0xfd37, 0x0029, 0x0056, 0xff5a, 0x00bc,
+ 0x05ff, 0x08fe, 0x08b2, 0x0d6e, 0x087b, 0xf6e3,
+ 0xf6bd, 0x01f9, 0x031b, 0x0451, 0xffdf, 0xee65,
+ 0xe3d4, 0xe16c, 0xe059, 0xe7d8, 0xf4d1, 0x04c6,
+ 0x166b, 0x1d88, 0x1af0, 0x187a, 0x188a, 0x1c2b,
+ 0x1a66, 0x082a, 0xf249, 0xeeb8, 0xfaa0, 0x0099,
+ 0xfca7, 0xfa3d, 0xfc2d, 0x03a0, 0x0b17, 0x03a9,
+ 0xf3fa, 0xef86, 0xfc1f, 0x0abf, 0xf9b0, 0xd4f0,
+ 0xd69e, 0xf2f7, 0xfcab, 0x08e5, 0x2014, 0x2266,
+ 0x1823, 0x12ce, 0x0a2c, 0x026a, 0x01f5, 0xfe96,
+ 0xf6e7, 0xfa35, 0x0880, 0x09d3, 0xfc92, 0xf7d0,
+ 0xfadd, 0xf9d0, 0xf619, 0xf1c8, 0xf1bc, 0xf659,
+ 0xf976, 0xfe77, 0x00e6, 0xfc38, 0x00a2, 0x09ba,
+ 0x0354, 0xfac4, 0x0037, 0x0990, 0x0bdf, 0x0233,
+ 0xef17, 0xe1ef, 0xe4f7, 0xee4a, 0xef36, 0xee5b,
+ 0xfa05, 0x0923, 0x11d5, 0x1d5b, 0x275a, 0x1e4a,
+ 0x095b, 0xfd99, 0xfb28, 0xf6c3, 0xf0df, 0xee79,
+ 0xf1ae, 0xfe24, 0x110a, 0x1d47, 0x1664, 0x008d,
+ 0xf46d, 0xfa79, 0xfccf, 0xf89c, 0xfedd, 0x0801,
+ 0x0424, 0xf5cc, 0xe773, 0xe13f, 0xe3c8, 0xec49,
+ 0xf7f6, 0x01e9, 0x09b6, 0x0bc2, 0x0565, 0x02b4,
+ 0x00c3, 0xf5b8, 0xf469, 0xfe0c, 0xfd29, 0xfd11,
+ 0x0612, 0x068c, 0x0061, 0xfd5c, 0xfbbb, 0xfc5f,
+ 0xfdea, 0x0118, 0x0a61, 0x11f3, 0x0ef9, 0x077a,
+ 0x0526, 0x068c, 0x06e3, 0x08dd, 0x07c2, 0xfebe,
+ 0xf991, 0xfb10, 0x0266, 0x1361, 0x17bb, 0x07ea,
+ 0xfdc7, 0xf5ed, 0xec1b, 0xf0aa, 0xf85c, 0x00c2,
+ 0x0e27, 0x056f, 0xf5e3, 0x02a4, 0x0e2f, 0x08ec,
+ 0x0d68, 0x145c, 0x0d4d, 0x01dd, 0xf9cd, 0xf357,
+ 0xf001, 0xf646, 0xfdc8, 0xfa77, 0xfa0e, 0xfd71,
+ 0xf449, 0xed18, 0xf000, 0xedce, 0xed00, 0xf1cb,
+ 0xf036, 0xeadf, 0xea11, 0xf2e7, 0x021f, 0x0bcb,
+ 0x14ff, 0x2157, 0x2037, 0x1057, 0xff2b, 0xf2b9,
+ 0xef14, 0xf352, 0xf640, 0xf187, 0xf058, 0xff95,
+ 0x0b1d, 0x05cb, 0x0842, 0x1082, 0x0a48, 0x0556,
+ 0x08aa, 0x04e4, 0xfe94, 0x0114, 0x0b35, 0x1058,
+ 0x097a, 0x07c3, 0x0d27, 0x0851, 0x0910, 0x1b1a,
+ 0x2295, 0x1ac2, 0x1884, 0x1525, 0x0841, 0x0341,
+ 0x0479, 0xf7d0, 0xee5a, 0xfb5c, 0x041f, 0x010e,
+ 0x0862, 0x0c05, 0x0029, 0xfd4c, 0x045e, 0x0209,
+ 0xf98b, 0xf60b, 0xf8d8, 0xfb4e, 0xfa9a, 0xff3a,
+ 0x0724, 0x03fc, 0xf9eb, 0xf85e, 0xfa5b, 0xf447,
+ 0xf107, 0xfa18, 0xff5c, 0xf6b3, 0xe9f2, 0xe3ba,
+ 0xeb5c, 0xfaaa, 0x02c2, 0x05cd, 0x0a0c, 0x0b1c,
+ 0x0521, 0xf829, 0xecdb, 0xe9a4, 0xeb89, 0xf80f,
+ 0x0765, 0x0531, 0xffc7, 0x03e1, 0xff92, 0xf2c4,
+ 0xe61f, 0xdffe, 0xf075, 0x02ee, 0xf9f9, 0xef5a,
+ 0xf459, 0xf5ab, 0xf5aa, 0xfbc8, 0xfdcc, 0xfebc,
+ 0x0769, 0x0f82, 0x0ee4, 0x0b34, 0x0741, 0x01ae,
+ 0x003d, 0xffa4, 0xfaba, 0xfed2, 0x0781, 0x02a4,
+ 0xffca, 0x095c, 0x0b4f, 0x0307, 0xfa3b, 0xf0df,
+ 0xeb78, 0xeec8, 0xfa36, 0x05f7, 0x04cc, 0xfc49,
+ 0xf8e6, 0xf3b8, 0xeacf, 0xe9cb, 0xf2d5, 0xff54,
+ 0x09c7, 0x0ff6, 0x0ff7, 0x0897, 0x0185, 0x0185,
+ 0x0436, 0x0425, 0xfe08, 0xf30e, 0xe921, 0xe3f2,
+ 0xe981, 0xf493, 0xf1fb, 0xec1c, 0xfc09, 0x14e8,
+ 0x2073, 0x1f82, 0x19fb, 0x15f1, 0x0ea4, 0xff98,
+ 0xf571, 0xf115, 0xebd6, 0xf2a8, 0x0197, 0x00ee,
+ 0xf40f, 0xeb41, 0xed2b, 0xfd78, 0x105e, 0x1483,
+ 0x0c30, 0x028f, 0x0119, 0x0a94, 0x136e, 0x124a,
+ 0x0812, 0xfa3b, 0xf9e1, 0x0c8f, 0x180c, 0x1207,
+ 0x0f18, 0x0fda, 0x07a9, 0xfd79, 0xf2eb, 0xe5da,
+ 0xe8b0, 0xfabc, 0x01ca, 0x0288, 0x0b92, 0x0d96,
+ 0x0575, 0x0368, 0x0379, 0xfc85, 0xf44a, 0xf334,
+ 0xfa36, 0xfff3, 0x03fc, 0x0da8, 0x0e52, 0x0148,
+ 0x0005, 0x0666, 0xf896, 0xe077, 0xdd61, 0xf209,
+ 0xfe4a, 0xf281, 0xed58, 0xfb51, 0x054d, 0x0a76,
+ 0x0e12, 0x0771, 0xff32, 0xf77c, 0xf0fb, 0xfc1b,
+ 0x0a71, 0x068d, 0x002f, 0xfda0, 0xf7cf, 0xf467,
+ 0xf1f6, 0xf1c2, 0xf9f1, 0x0044, 0x01f1, 0x079a,
+ 0x0c75, 0x0b79, 0x097a, 0x06f6, 0xfe50, 0xefef,
+ 0xe238, 0xd4fa, 0xcd94, 0xd957, 0xeefd, 0xfe27,
+ 0x08fb, 0x0edd, 0x1032, 0x1492, 0x16c2, 0x116e,
+ 0x0959, 0x02c9, 0xfead, 0xf724, 0xf0c0, 0xf785,
+ 0x0125, 0x056e, 0x0684, 0xff15, 0xfd35, 0x06a6,
+ 0x03c4, 0xfc1e, 0xfb50, 0xf4ac, 0xf5dc, 0xfc76,
+ 0xf250, 0xf0ff, 0xfa67, 0xed73, 0xe751, 0xff61,
+ 0x0c0a, 0x0250, 0x00dd, 0x0be2, 0x11f5, 0x0eff,
+ 0x0926, 0xffef, 0xf959, 0xfc9b, 0xf9de, 0xef8f,
+ 0xf2dd, 0xfd2d, 0x033a, 0x0c95, 0x101a, 0x0429,
+ 0xf616, 0xf1eb, 0xf6cf, 0xfc6f, 0x0106, 0x0782,
+ 0x0777, 0x0506, 0x10ee, 0x1f6f, 0x1ed6, 0x1a12,
+ 0x1acf, 0x1714, 0x0dd1, 0x104c, 0x1891, 0x0b6c,
+ 0xf74b, 0xf801, 0xfaaa, 0xf072, 0xe9c1, 0xef35,
+ 0xfffe, 0x0e31, 0x0a22, 0x0113, 0xf978, 0xe7be,
+ 0xd6f7, 0xd4ec, 0xdffe, 0xf340, 0xfdb9, 0xfd59,
+ 0x07d7, 0x1547, 0x1156, 0x0a5a, 0x0b98, 0x0a72,
+ 0x08f3, 0x0c28, 0x093e, 0xfc30, 0xee7b, 0xe983,
+ 0xf2ba, 0xfe18, 0xf762, 0xebcf, 0xf471, 0x024c,
+ 0xff81, 0xf95d, 0xfdd8, 0x01e9, 0xfdba, 0xfa8c,
+ 0xfa44, 0xf4f3, 0xf446, 0x0648, 0x1cb8, 0x1fe7,
+ 0x109e, 0x0503, 0x0816, 0x090b, 0xfda3, 0xf41e,
+ 0xf384, 0xf60d, 0xf558, 0xee2a, 0xecd4, 0xf6b6,
+ 0xfbc5, 0x004c, 0x1025, 0x17d7, 0x0f8f, 0x0c50,
+ 0x0f15, 0x08d8, 0xff96, 0xfed7, 0xfafd, 0xec01,
+ 0xe92d, 0xfce3, 0x0d46, 0x0e13, 0x08a4, 0x01a5,
+ 0x02d7, 0x0c98, 0x07f1, 0xf48d, 0xecfb, 0xf34e,
+ 0xf87c, 0xfcaf, 0x00a9, 0x0034, 0x0068, 0x03a3,
+ 0x044f, 0x0305, 0x022d, 0x027e, 0x0525, 0x04d0,
+ 0x004f, 0xfc87, 0xf341, 0xe57b, 0xe277, 0xe7e9,
+ 0xed8e, 0xf9ee, 0x09f2, 0x1050, 0x0c50, 0x05c7,
+ 0x017e, 0xfdd2, 0xf93b, 0xf86e, 0xfb4a, 0xfa7d,
+ 0xf43c, 0xf059, 0xf7d0, 0x0057, 0xf543, 0xe471,
+ 0xeb9e, 0xfd1c, 0xfde3, 0xf841, 0xf75f, 0xee60,
+ 0xe0f1, 0xe46a, 0xf33e, 0xf1fb, 0xde56, 0xd5fa,
+ 0xe64a, 0xf53c, 0xf1ef, 0xefc2, 0xf96d, 0x0286,
+ 0x076b, 0x0c3c, 0x1048, 0x1240, 0x1198, 0x122c,
+ 0x13f0, 0x0af7, 0xf9df, 0xf411, 0xf8da, 0xf969,
+ 0xf74c, 0xf9a3, 0xfc7a, 0xfac8, 0xf502, 0xeee8,
+ 0xee40, 0xf18b, 0xf4a8, 0x002e, 0x12f8, 0x186e,
+ 0x11a1, 0x0ece, 0x0b13, 0x02ec, 0x00ef, 0x041f,
+ 0xff4e, 0xf07d, 0xec9d, 0xf949, 0xf842, 0xead3,
+ 0xf174, 0x03d5, 0x1259, 0x1e78, 0x14eb, 0xf756,
+ 0xe610, 0xe57f, 0xec29, 0xf360, 0xf1f3, 0xf127,
+ 0xf840, 0x0127, 0x0ca0, 0x1084, 0x07e1, 0x06df,
+ 0x0c7d, 0x08c7, 0x02b2, 0xfff4, 0xfa98, 0xf4ae,
+ 0xf6df, 0xfea1, 0xfdcd, 0xfa91, 0x021e, 0x0348,
+ 0xfa89, 0xfd3d, 0x0242, 0xfd80, 0xfad2, 0xf73d,
+ 0xeddf, 0xe77b, 0xe49c, 0xe933, 0xf890, 0x01d1,
+ 0xfe79, 0xfea5, 0x051a, 0x040d, 0xfcab, 0xfe13,
+ 0x06fa, 0x0780, 0xfeae, 0xfa0d, 0xfcec, 0xff70,
+ 0x00ef, 0x03b9, 0x00a6, 0xf374, 0xe1ca, 0xd774,
+ 0xe1be, 0xf431, 0xf4cb, 0xef6d, 0xf7d1, 0x0057,
+ 0x0255, 0x0854, 0x0f5e, 0x0c32, 0xfe7b, 0xf571,
+ 0xf6e7, 0xf582, 0xf42b, 0xfcde, 0x0782, 0x0f7c,
+ 0x107c, 0x0a35, 0x0e43, 0x15e6, 0x0e9d, 0x090b,
+ 0x0d2c, 0x0b39, 0x021f, 0xf79a, 0xf148, 0xf21f,
+ 0xf4e9, 0xfca5, 0x04e6, 0xff88, 0xf7c2, 0xfc4b,
+ 0x04d7, 0x0770, 0x03c7, 0x03ee, 0x0ba3, 0x0e59,
+ 0x08cc, 0xff3c, 0xf521, 0xf1e1, 0xee4b, 0xe7d7,
+ 0xeddd, 0xf863, 0xfbc9, 0x010c, 0x0517, 0x0517,
+ 0x05bc, 0x04f7, 0x0bd8, 0x166e, 0x13f2, 0x15b1,
+ 0x20a5, 0x19e5, 0x0950, 0x025b, 0xfca6, 0xf598,
+ 0xf39d, 0xf75e, 0xfe54, 0x03ca, 0x0658, 0x0268,
+ 0xf79d, 0xf0c5, 0xec0c, 0xe62c, 0xecfc, 0xfc81,
+ 0x0583, 0x0b9b, 0x0ef7, 0x0c53, 0x0afd, 0x0b0f,
+ 0x0aac, 0x0e5c, 0x132e, 0x15a7, 0x1548, 0x0dfa,
+ 0x07c5, 0x0dea, 0x12a6, 0x0b39, 0x0732, 0x0875,
+ 0x02de, 0x008e, 0x0869, 0x0c40, 0x07d0, 0x0278,
+ 0x02f9, 0x0914, 0x096d, 0x06ec, 0x0d51, 0x13ad,
+ 0x1481, 0x12b2, 0x07b7, 0xf993, 0xf0df, 0xec4c,
+ 0xf6ac, 0x0b6e, 0x12f7, 0x1204, 0x13c2, 0x10b7,
+ 0x09d6, 0x066c, 0x073f, 0x0922, 0x086b, 0x0568,
+ 0xfecc, 0xf8e2, 0xf999, 0xf383, 0xe97e, 0xf1c0,
+ 0xfd44, 0xfe95, 0x0997, 0x1832, 0x1b78, 0x1d28,
+ 0x197c, 0x0927, 0xf827, 0xf097, 0xf4c5, 0xfc7d,
+ 0xfda2, 0xfbbf, 0xf760, 0xf203, 0xf6e7, 0x0137,
+ 0x0667, 0x09d8, 0x0ab3, 0x086d, 0x090a, 0x0859,
+ 0x055b, 0x0b78, 0x14e4, 0x0e5e, 0xffb9, 0x0000,
+ 0x0b0e, 0x1067, 0x102c, 0x0df9, 0x070f, 0xfa2d,
+ 0xf181, 0xfa4c, 0x0631, 0x0354, 0x033a, 0x0cd0,
+ 0x0e25, 0x09cd, 0x0692, 0x02fa, 0x0310, 0xff20,
+ 0xf7de, 0xfcb2, 0x0058, 0xf8a4, 0xf80f, 0xfc96,
+ 0xfce3, 0x02f0, 0x0a73, 0x0839, 0x052a, 0x0a02,
+ 0x0f13, 0x0966, 0xfc28, 0xf4e5, 0xf780, 0xfe1b,
+ 0x062b, 0x0f18, 0x13f3, 0x1325, 0x145b, 0x18da,
+ 0x1932, 0x12bf, 0x03a3, 0xf5f7, 0xfc22, 0x0733,
+ 0x04c8, 0x049f, 0x041a, 0xf49b, 0xeafd, 0xf537,
+ 0x0378, 0x08c1, 0x062a, 0x082e, 0x0e24, 0x09b2,
+ 0xff5e, 0xf56e, 0xefd9, 0xfaf8, 0x0406, 0xf830,
+ 0xf364, 0xfeb2, 0x0352, 0x008c, 0xfdc6, 0xfd92,
+ 0x027c, 0x07a1, 0x0b25, 0x0809, 0xfac7, 0xf407,
+ 0xf62a, 0xf43e, 0xf724, 0x0040, 0xff7e, 0xfa44,
+ 0xfe85, 0x05c6, 0x0436, 0x0044, 0x0067, 0xf545,
+ 0xe624, 0xf4d3, 0x122e, 0x15b8, 0x079a, 0x0256,
+ 0x083e, 0x0c68, 0x092c, 0x0ad2, 0x0f8f, 0x04d9,
+ 0xf489, 0xf4cb, 0x025a, 0x0af1, 0x03cf, 0xf979,
+ 0xf855, 0xf3dc, 0xe9c5, 0xe90f, 0xf29c, 0xfd4c,
+ 0x0019, 0xfd5e, 0xfdf6, 0xf877, 0xf183, 0xfe50,
+ 0x0acf, 0x0425, 0x0357, 0x0d02, 0x0d8d, 0x05c7,
+ 0x0024, 0x0256, 0x056d, 0x002b, 0xfc9d, 0xff26,
+ 0xfee0, 0xfcff, 0xf9f1, 0xf4f1, 0xf187, 0xeda0,
+ 0xee9d, 0xf7b8, 0xfd1f, 0x007c, 0x0561, 0x0183,
+ 0xfad2, 0xfd50, 0x079f, 0x130d, 0x11a7, 0x0567,
+ 0x0308, 0x07f1, 0x0837, 0x0904, 0x10aa, 0x1efc,
+ 0x21c2, 0x0b9f, 0xfba1, 0x0473, 0x0c14, 0x0a13,
+ 0x07e5, 0x06ad, 0x09b2, 0x07a7, 0xfb59, 0xf88c,
+ 0xff80, 0x0045, 0xff47, 0x0175, 0x03cb, 0x02f5,
+ 0xfd77, 0xfd38, 0xfed5, 0xf4b7, 0xf03f, 0xfa63,
+ 0xfcb8, 0xf989, 0xfcf1, 0xfbd6, 0xf3d2, 0xeae3,
+ 0xe384, 0xe434, 0xe76e, 0xe4a1, 0xe3f6, 0xeda2,
+ 0x002c, 0x0c3e, 0x0319, 0xf78e, 0xfcdc, 0x03a8,
+ 0x0165, 0xfef9, 0x04c7, 0x1342, 0x1b73, 0x156e,
+ 0x0d9f, 0x0745, 0xff30, 0xf639, 0xe9e8, 0xe316,
+ 0xe94a, 0xf559, 0x07e4, 0x161e, 0x0ebd, 0x06e1,
+ 0x0c96, 0x0c83, 0x0aae, 0x108f, 0x10db, 0x0eb9,
+ 0x1419, 0x18f9, 0x17e8, 0x1042, 0x0239, 0xf5d5,
+ 0xf30a, 0xfa50, 0x032c, 0x05fe, 0x088c, 0x0dab,
+ 0x0d75, 0x0a21, 0x0abc, 0x09c1, 0x04eb, 0x0466,
+ 0x032a, 0xf8a9, 0xf46a, 0xfcfd, 0xfc9e, 0xf31e,
+ 0xf40a, 0xfac0, 0xfab7, 0xf58b, 0xf3ae, 0xf630,
+ 0xef2f, 0xe5c2, 0xf163, 0xfecf, 0xf960, 0xf5c6,
+ 0xf6b6, 0xf604, 0x026c, 0x11b9, 0x126f, 0x0dfe,
+ 0x0a8e, 0x0aa6, 0x0d37, 0x0857, 0x05c9, 0x0b2c,
+ 0x0516, 0xf63c, 0xeffb, 0xef86, 0xf323, 0xfd50,
+ 0x02a9, 0xf8b6, 0xebe9, 0xf181, 0xffad, 0xfbcf,
+ 0xed81, 0xed1d, 0xfc46, 0x0c45, 0x0d5b, 0x02d1,
+ 0x0161, 0x091e, 0x09f3, 0x0429, 0x0184, 0x072d,
+ 0x10af, 0x103d, 0x0683, 0x050d, 0x0a14, 0x042e,
+ 0xf858, 0xf524, 0xf83b, 0xff13, 0x0690, 0x054f,
+ 0x05d2, 0x0fc3, 0x0e3d, 0x0131, 0xfc43, 0xfbaa,
+ 0xfe95, 0x0997, 0x0c02, 0x0176, 0xfb71, 0xfe96,
+ 0x01ee, 0xff29, 0xfaf2, 0xfbb5, 0xfd23, 0xfe06,
+ 0xffe1, 0x007f, 0x0405, 0x0343, 0xf39c, 0xe957,
+ 0xf389, 0x0394, 0x0ee3, 0x1090, 0x0ac7, 0x099b,
+ 0x07dd, 0xff12, 0xf9ad, 0xf9f0, 0xfe7e, 0x0455,
+ 0xff75, 0xf96e, 0x029c, 0x0af3, 0x04b6, 0xfcd9,
+ 0xfd12, 0x00f3, 0xfffd, 0xf9e6, 0xf9ac, 0x0292,
+ 0x0a32, 0x082f, 0xff58, 0xfac4, 0xfdec, 0xfdd1,
+ 0xf698, 0xf2aa, 0xf4c0, 0xf64e, 0xf7a9, 0xf99b,
+ 0xf6cd, 0xf234, 0xf472, 0xf915, 0xf817, 0xf8ff,
+ 0x0298, 0x06ca, 0xfd54, 0xf7df, 0xfcf6, 0xfea1,
+ 0xfd70, 0xfe09, 0xfc04, 0xfd2a, 0x0229, 0x01b0,
+ 0xfe2f, 0xf7f1, 0xf0d7, 0xf659, 0x00e0, 0x0141,
+ 0xfef9, 0xff2b, 0xff53, 0xfd14, 0xf76a, 0xfcf6,
+ 0x0a4b, 0x0417, 0xf7d9, 0xfe58, 0x06b1, 0x07d3,
+ 0x0858, 0x01ec, 0xf913, 0xf60e, 0xf4a2, 0xf68e,
+ 0xfb3b, 0xfc1c, 0xfcaf, 0x00e6, 0x061c, 0x0882,
+ 0x0636, 0x028c, 0xfe6f, 0xf786, 0xf022, 0xeb44,
+ 0xed3b, 0xf758, 0x004e, 0x03e3, 0x05cf, 0x0528,
+ 0x0389, 0x04c5, 0x0579, 0x00de, 0xfa59, 0xfb32,
+ 0xff46, 0xf9b3, 0xf25e, 0xf203, 0xee09, 0xe788,
+ 0xe7bf, 0xed43, 0xf898, 0x0457, 0x06c7, 0x0338,
+ 0xfd5f, 0xfaac, 0x0003, 0xfe12, 0xef8f, 0xe647,
+ 0xe7a3, 0xf088, 0xfac3, 0xfa9d, 0xfa63, 0x06ff,
+ 0x127b, 0x1549, 0x14ba, 0x10b3, 0x0e4a, 0x0ddf,
+ 0x056c, 0xf7e5, 0xef10, 0xedeb, 0xf5b9, 0xff9d,
+ 0x0231, 0x01e9, 0x024e, 0xfd66, 0xf87f, 0xfbcb,
+ 0xfced, 0xf63a, 0xf167, 0xeeef, 0xefd4, 0xfb10,
+ 0x03c0, 0xff64, 0xfc5f, 0x0011, 0x0295, 0x0211,
+ 0xfdda, 0xfb42, 0xfe32, 0xfcf8, 0xf9a4, 0xfe07,
+ 0x0120, 0xfe5b, 0xff59, 0x03d4, 0x091c, 0x1169,
+ 0x160c, 0x113c, 0x0ae4, 0x08e5, 0x0564, 0xfd75,
+ 0xf573, 0xef49, 0xeef6, 0xf8bc, 0x0334, 0x05e1,
+ 0x0615, 0x059f, 0x03c0, 0x0479, 0x0432, 0xfed4,
+ 0xf7a8, 0xecd3, 0xe05b, 0xdd00, 0xe0a8, 0xe571,
+ 0xf25b, 0x0419, 0x0b2b, 0x0ab3, 0x0f1a, 0x11a3,
+ 0x07e2, 0xfb5d, 0xf7b1, 0xf612, 0xf209, 0xf814,
+ 0x0759, 0x0bb2, 0x04b4, 0x0259, 0x02ab, 0xfd5a,
+ 0xf6f8, 0xf37f, 0xf009, 0xeccb, 0xeeef, 0xf530,
+ 0xf545, 0xef55, 0xee6e, 0xf307, 0xf85a, 0xfcef,
+ 0xfbd6, 0xf717, 0xf6cd, 0xf906, 0xfd23, 0x078e,
+ 0x1009, 0x0b68, 0xff82, 0xfa10, 0xfc80, 0xfe71,
+ 0xfe9d, 0xfde5, 0xf901, 0xf5d5, 0xf9ec, 0xfbdf,
+ 0xf539, 0xec19, 0xeba5, 0xf9de, 0x0a6a, 0x0f99,
+ 0x0e14, 0x0ace, 0x0650, 0x0458, 0x02c7, 0x007a,
+ 0x006c, 0xfdff, 0xf8c4, 0xf871, 0xfbf0, 0xfaef,
+ 0xf20b, 0xeaf1, 0xf169, 0xfc86, 0x0068, 0x04a6,
+ 0x0cab, 0x10b4, 0x0f04, 0x07fc, 0xff30, 0xfda7,
+ 0x0053, 0xfb8a, 0xf212, 0xf08d, 0xf8fa, 0x04d5,
+ 0x0f35, 0x111b, 0x0954, 0x04a7, 0x0548, 0xfe8d,
+ 0xf331, 0xef21, 0xf1e1, 0xf7f4, 0x00b9, 0x0a50,
+ 0x1190, 0x10ec, 0x08c6, 0x02ba, 0x0381, 0x06f5,
+ 0x07de, 0x056a, 0x02ac, 0xfe71, 0xf5f4, 0xeee9,
+ 0xf052, 0xf827, 0xfd84, 0xfbc8, 0xf944, 0xf947,
+ 0xf6c0, 0xf385, 0xf415, 0xf585, 0xf411, 0xed4f,
+ 0xe3c7, 0xde35, 0xde82, 0xe926, 0xfdbf, 0x0ab3,
+ 0x0c3e, 0x0e50, 0x0d47, 0x0b8c, 0x137b, 0x1622,
+ 0x0b30, 0x0166, 0xf72d, 0xebaa, 0xef00, 0xfa9d,
+ 0xfd79, 0xfe16, 0x01d9, 0x0102, 0xfb45, 0xf6cd,
+ 0xf699, 0xf9df, 0xfcff, 0xfe5b, 0xffd5, 0x01ae,
+ 0x02ad, 0x0564, 0x0b4a, 0x0dc4, 0x0cab, 0x11bd,
+ 0x1661, 0x0e5b, 0x0627, 0x0808, 0x0890, 0x0395,
+ 0xfdfd, 0xfadf, 0xfe27, 0xfe90, 0xf58f, 0xf699,
+ 0x01f6, 0xfaf9, 0xe6a8, 0xe2d3, 0xef58, 0xfafc,
+ 0xffb2, 0x002a, 0x01ca, 0x03f3, 0x0221, 0x00f7,
+ 0x0405, 0x0236, 0xf877, 0xf35a, 0xfa2a, 0x045f,
+ 0x06b9, 0xff5a, 0xf98c, 0xfffb, 0x0882, 0x0564,
+ 0xfe71, 0xfe62, 0x01fc, 0x036a, 0x0195, 0x01e8,
+ 0x0585, 0x026f, 0xfafa, 0xf975, 0xf7cb, 0xf43f,
+ 0xf41a, 0xeeb8, 0xe7ae, 0xef0b, 0xfc40, 0x008c,
+ 0xfebc, 0xfb4c, 0xf75e, 0xf57c, 0xfcdb, 0x0e45,
+ 0x1630, 0x0f3b, 0x0dd3, 0x1014, 0x082e, 0xfeb5,
+ 0xf9ee, 0xf712, 0xf555, 0xf346, 0xfa9a, 0x0b77,
+ 0x0e02, 0x0387, 0x0040, 0xfcbb, 0xf201, 0xecaa,
+ 0xf18d, 0xfd37, 0x08ad, 0x0ba8, 0x0975, 0x09bc,
+ 0x0bd1, 0x0974, 0x024d, 0x0176, 0x0920, 0x0ddc,
+ 0x0e89, 0x0f04, 0x0e39, 0x0cdc, 0x04ed, 0xf572,
+ 0xf02c, 0xf9f8, 0x02a6, 0x0192, 0xfca1, 0xfde6,
+ 0x03cb, 0x03e8, 0xff5c, 0xf9a8, 0xf463, 0xf821,
+ 0xffd3, 0x001e, 0x0072, 0x037c, 0x0087, 0xf626,
+ 0xe69a, 0xdd62, 0xe534, 0xf271, 0xfb69, 0x02e7,
+ 0x084e, 0x0df0, 0x111b, 0x093b, 0xfe9d, 0xfb31,
+ 0xfbdc, 0xfe77, 0x0181, 0x059e, 0x0986, 0x03b0,
+ 0xf730, 0xed25, 0xe52b, 0xe529, 0xe81e, 0xe17c,
+ 0xe700, 0x026c, 0x10c9, 0x0a54, 0x0579, 0x027c,
+ 0xfe7a, 0xfe4c, 0xfe11, 0xfee6, 0x054d, 0x08e4,
+ 0x0173, 0xf60b, 0xf3c6, 0xfba7, 0x0248, 0x0272,
+ 0x03c1, 0x0c2a, 0x13b8, 0x0f55, 0x0146, 0xf356,
+ 0xeef7, 0xf867, 0x00e4, 0xfa9b, 0xf4e8, 0xfce9,
+ 0x04df, 0x02dc, 0x0046, 0x0642, 0x0bf8, 0x03d7,
+ 0xf7d1, 0xf586, 0xf37f, 0xf0a1, 0xf85e, 0xff1e,
+ 0xf7f5, 0xef00, 0xeba9, 0xe963, 0xed4f, 0xfa93,
+ 0x05b7, 0x0859, 0x0752, 0x0547, 0x0594, 0x0a6a,
+ 0x0a9f, 0x03cd, 0x0188, 0x03cb, 0x02bd, 0x021c,
+ 0x069b, 0x0c19, 0x0b3c, 0x034c, 0xfdea, 0xfda4,
+ 0xfafc, 0xf705, 0xf581, 0xf6be, 0xfe00, 0x05d6,
+ 0x06a5, 0x07fd, 0x0d2b, 0x0e56, 0x0ab9, 0x0471,
+ 0xfe4a, 0x017c, 0x0f2d, 0x195c, 0x13e7, 0x0561,
+ 0xffaa, 0x03f1, 0x0421, 0xffe7, 0x0032, 0x0395,
+ 0x04d7, 0x03a1, 0x02ca, 0x03ab, 0x020a, 0xfc26,
+ 0xf77b, 0xf7a2, 0xfc37, 0x0303, 0x081d, 0x0abe,
+ 0x0a45, 0x04ee, 0x0128, 0x01ee, 0xfcff, 0xf61d,
+ 0xfdf2, 0x0a4d, 0x0667, 0xfb47, 0xf559, 0xeebc,
+ 0xedcc, 0xfbb4, 0x0698, 0x023b, 0xfd70, 0xfe53,
+ 0xfa6e, 0xefc8, 0xe896, 0xef30, 0xfe8d, 0x06a3,
+ 0x09a8, 0x120d, 0x1424, 0x0b39, 0x0e5a, 0x1ff9,
+ 0x252f, 0x1a0f, 0x0f55, 0x06f8, 0x024a, 0x06f7,
+ 0x07cf, 0xfe7f, 0xfe49, 0x06b4, 0x049f, 0xff5d,
+ 0x02fa, 0x0792, 0x0a9c, 0x0da8, 0x0e24, 0x115f,
+ 0x144a, 0x0a27, 0xfc19, 0xfacd, 0xff0a, 0xfb3c,
+ 0xf419, 0xf713, 0x0227, 0x064f, 0x0455, 0x077e,
+ 0x0aa7, 0x096b, 0x0eb0, 0x18d9, 0x193d, 0x10e6,
+ 0x0a18, 0x05b7, 0x0296, 0x010e, 0xfdb5, 0xfac5,
+ 0x008e, 0x0b2e, 0x0e51, 0x08d5, 0x0281, 0xfefb,
+ 0xf9f1, 0xf0d7, 0xeefa, 0xfb47, 0x058b, 0x039e,
+ 0x0127, 0x0281, 0x01b7, 0xfeb3, 0xfab4, 0xfc79,
+ 0x0bbd, 0x19d4, 0x1773, 0x12f4, 0x17b3, 0x18ce,
+ 0x1023, 0x06f1, 0x02a3, 0x010f, 0xfe96, 0xfb67,
+ 0xfa02, 0xfa7d, 0xfd5d, 0x006f, 0xff4d, 0x0005,
+ 0x05f1, 0x0549, 0xfd65, 0xf8fa, 0xf592, 0xf0bc,
+ 0xf154, 0xf65c, 0xf776, 0xf1ca, 0xeff2, 0xfc29,
+ 0x094f, 0x0c26, 0x0ef6, 0x0fd5, 0x09c2, 0x0afa,
+ 0x0dcb, 0x017e, 0xf67d, 0xf9e7, 0xfd2c, 0xfb73,
+ 0xfbe8, 0xfeec, 0xff84, 0xf9da, 0xf58b, 0xfa14,
+ 0xff67, 0x0273, 0x05f6, 0x0205, 0xf8cf, 0xf678,
+ 0xf7a4, 0xf843, 0xfb8a, 0xfb58, 0xf601, 0xf801,
+ 0x06c9, 0x1741, 0x19ab, 0x0ed9, 0x0832, 0x091d,
+ 0x07b9, 0x0513, 0x03bd, 0x0358, 0x080a, 0x0cd1,
+ 0x0a74, 0x0597, 0x0011, 0xfbd4, 0xfde9, 0xff63,
+ 0xfdee, 0xfe74, 0xf896, 0xee65, 0xee49, 0xf307,
+ 0xf899, 0x0411, 0x0a1a, 0x0639, 0x040c, 0x035f,
+ 0x02ea, 0x0618, 0x059f, 0xffe0, 0x0012, 0x0871,
+ 0x0e24, 0x0b37, 0x09b7, 0x0fa1, 0x0fec, 0x06ea,
+ 0x0192, 0x01e8, 0x0372, 0x07a8, 0x0d6e, 0x109b,
+ 0x0ae3, 0xf955, 0xe7fb, 0xe3b0, 0xebd0, 0xfbf4,
+ 0x0d1a, 0x178e, 0x1e14, 0x2270, 0x1bcd, 0x0c28,
+ 0x0494, 0x09c8, 0x0fa5, 0x0e98, 0x09f9, 0x07ae,
+ 0x0724, 0x028f, 0xfeaa, 0x0454, 0x0b26, 0x0b35,
+ 0x0e9c, 0x18b3, 0x1d30, 0x1597, 0x09ac, 0x01de,
+ 0xf84b, 0xe920, 0xe3f3, 0xeeb8, 0xfac0, 0x021d,
+ 0x06dc, 0x0772, 0x05a7, 0x0279, 0xfd68, 0xf848,
+ 0xf394, 0xf437, 0xfbff, 0xffab, 0xfd79, 0xfe59,
+ 0xff1f, 0xfc52, 0xfbfc, 0xfed2, 0x0116, 0x02ca,
+ 0x064c, 0x0b7f, 0x0c1b, 0x03ee, 0xf816, 0xeffd,
+ 0xef70, 0xf326, 0xf2b7, 0xed35, 0xeb2e, 0xf133,
+ 0xf76d, 0xf386, 0xe9c7, 0xe660, 0xea17, 0xf016,
+ 0xf97f, 0x0719, 0x134c, 0x16cc, 0x1176, 0x0a2f,
+ 0x04c1, 0x000d, 0xfa0a, 0xf332, 0xf096, 0xf1cc,
+ 0xf0d2, 0xf01d, 0xf145, 0xf0bf, 0xf6d2, 0x06d6,
+ 0x0ed3, 0x07fa, 0x0341, 0x0a00, 0x0ffd, 0x080d,
+ 0xfa5a, 0xf7c3, 0xfd55, 0xfebe, 0xfeb3, 0x0379,
+ 0x0744, 0x047d, 0x0185, 0x02d4, 0x0089, 0xf8f0,
+ 0xf654, 0xf9ee, 0xfd5e, 0x002e, 0x0237, 0x0206,
+ 0xfe42, 0xf5db, 0xf28a, 0xfd38, 0x088c, 0x0751,
+ 0x04af, 0x0c91, 0x15ba, 0x15b0, 0x13a8, 0x13e4,
+ 0x0c4a, 0xfe51, 0xf61f, 0xf3ec, 0xf4a0, 0xf744,
+ 0xfa70, 0x026a, 0x0997, 0x06ca, 0x06f3, 0x0ce4,
+ 0x0847, 0xfffb, 0xfccd, 0xf4fe, 0xecca, 0xeb12,
+ 0xef2d, 0x013a, 0x1698, 0x177d, 0x0afa, 0x0114,
+ 0xf98a, 0xf455, 0xf22b, 0xf31f, 0xf806, 0xfbb0,
+ 0xf934, 0xf172, 0xebd7, 0xf01b, 0xf66e, 0xf7e3,
+ 0xfcf4, 0x0380, 0x01ad, 0xfbb2, 0xfa89, 0x022d,
+ 0x0ab9, 0x0884, 0x0155, 0xf9ff, 0xf157, 0xf4a5,
+ 0x0004, 0xfb3d, 0xedfb, 0xef1a, 0xfa7d, 0x011b,
+ 0x0018, 0xff8e, 0x00cb, 0xfd77, 0xfb59, 0xfe95,
+ 0x00b2, 0x0428, 0x07c8, 0x03ff, 0xfd14, 0xf4e0,
+ 0xec6a, 0xeb16, 0xec62, 0xecae, 0xef51, 0xf255,
+ 0xfd25, 0x0d00, 0x0df4, 0x0bde, 0x164c, 0x1848,
+ 0x0c93, 0x0464, 0x024b, 0x0294, 0xfe78, 0xf5a6,
+ 0xf702, 0x0095, 0x0608, 0x0a6f, 0x0c32, 0x0826,
+ 0x06c2, 0x07e8, 0x0698, 0x047d, 0xfea6, 0xf35e,
+ 0xebfa, 0xefb2, 0xf7f7, 0xfbad, 0xfc6e, 0xf87a,
+ 0xeb36, 0xe76e, 0xfb1c, 0x0be5, 0x08c5, 0x07af,
+ 0x11aa, 0x15f3, 0x1226, 0x1077, 0x0f7b, 0x0a8a,
+ 0x0383, 0xfc27, 0xf678, 0xf491, 0xf6db, 0xfe4c,
+ 0x03bd, 0xfe88, 0xf831, 0xf92b, 0xfa48, 0xfad9,
+ 0xfc54, 0xfae9, 0xfcbc, 0x018e, 0xfbc5, 0xeef4,
+ 0xe91e, 0xe9a4, 0xebdc, 0xf115, 0xf9fc, 0x028d,
+ 0x054f, 0x051b, 0x09dd, 0x0fe5, 0x0bbf, 0xfe2d,
+ 0xf375, 0xf2ec, 0xfbf5, 0x073f, 0x0795, 0xfd64,
+ 0xf889, 0xfad3, 0xfb23, 0xfa3b, 0xfa5a, 0xfbcb,
+ 0xffcd, 0x03a5, 0x0576, 0x01de, 0xf834, 0xf673,
+ 0xfbfe, 0xf5c2, 0xec20, 0xeddd, 0xefa7, 0xf2d0,
+ 0xfec7, 0x01fc, 0xfa5d, 0xf7a9, 0xf312, 0xeeb2,
+ 0xfd01, 0x0dfe, 0x0eb2, 0x0d99, 0x06a0, 0xefdc,
+ 0xe80c, 0xf793, 0xfd71, 0xf85c, 0xf8ea, 0xfc54,
+ 0x041a, 0x0bcc, 0x09c3, 0x0b87, 0x11c0, 0x0766,
+ 0xf39b, 0xe8a9, 0xe578, 0xeabb, 0xf83e, 0x01b3,
+ 0x02b4, 0x03af, 0x08b8, 0x0b7b, 0x08f3, 0x0a13,
+ 0x112c, 0x10fd, 0x074a, 0x0756, 0x1697, 0x1bc7,
+ 0x0c1b, 0xff40, 0xfed3, 0x0016, 0x05dd, 0x0c02,
+ 0x03f8, 0xf8c2, 0xf4df, 0xef0b, 0xf113, 0x04cd,
+ 0x1421, 0x1612, 0x179f, 0x147a, 0x09a3, 0x0246,
+ 0xfb4e, 0xf2d4, 0xf3a3, 0xf5f1, 0xefcc, 0xf084,
+ 0xfe7d, 0x0885, 0x058a, 0xfdf0, 0xf98b, 0xf4ec,
+ 0xef05, 0xefea, 0xf341, 0xef24, 0xec99, 0xf4af,
+ 0x002f, 0x045f, 0xfe35, 0xf99c, 0xfe41, 0x0122,
+ 0x00fc, 0x03e7, 0x05a8, 0x09d2, 0x0e60, 0x0571,
+ 0xfa6b, 0xfc28, 0xffb0, 0x0050, 0x025c, 0x0490,
+ 0x07e9, 0x09d3, 0x0a33, 0x0e71, 0x0ff1, 0x0c78,
+ 0x0ca2, 0x0ccc, 0x0a8b, 0x0b68, 0x0cae, 0x0e39,
+ 0x1053, 0x0b79, 0x042e, 0x03d3, 0x0546, 0x0425,
+ 0x03d4, 0x03c4, 0x005a, 0xfbad, 0xfa09, 0xf51b,
+ 0xe9da, 0xeb53, 0xfed8, 0x06b1, 0xf655, 0xe741,
+ 0xeba2, 0xfb3c, 0x064b, 0x0546, 0xfeac, 0xfa61,
+ 0xf509, 0xecd0, 0xe60a, 0xe01f, 0xdc4e, 0xde9d,
+ 0xe184, 0xe391, 0xed8b, 0xfa10, 0xfbbe, 0xf734,
+ 0xf6f0, 0xf8d1, 0xf916, 0xfb1f, 0x001b, 0x0612,
+ 0x0bde, 0x0a39, 0x013a, 0x0315, 0x0c63, 0x05ac,
+ 0xf995, 0xfa7d, 0xfc5d, 0xfb0d, 0xfcb3, 0xfeea,
+ 0x05da, 0x0be7, 0x087f, 0x0cca, 0x161b, 0x0db5,
+ 0x06a1, 0x141f, 0x1ceb, 0x1347, 0x0746, 0x0319,
+ 0x052f, 0x0946, 0x0d1c, 0x0f03, 0x0bbf, 0x0467,
+ 0xfd12, 0xfab7, 0x00e9, 0x078d, 0x0643, 0x02de,
+ 0x00f6, 0xfb55, 0xf1bb, 0xeb44, 0xec8d, 0xed86,
+ 0xe58b, 0xe051, 0xec25, 0xff80, 0x087e, 0x0756,
+ 0x075f, 0x085b, 0x04e9, 0x0118, 0xfc5a, 0xf3a1,
+ 0xef68, 0xee78, 0xe7d5, 0xe3c1, 0xe5ea, 0xe6e0,
+ 0xee06, 0xfd36, 0x04f4, 0x056e, 0x09a7, 0x1078,
+ 0x160c, 0x1676, 0x0baf, 0xfa1a, 0xeb52, 0xe1ee,
+ 0xdfd5, 0xe689, 0xf180, 0xfcd0, 0x0596, 0x06ae,
+ 0x021d, 0x00c2, 0x04a4, 0x068d, 0x00f3, 0xfacc,
+ 0xfdd7, 0x03ce, 0x0344, 0x004b, 0xff05, 0xfeaa,
+ 0xff43, 0xfdf0, 0xf9e5, 0xf4fa, 0xeee2, 0xee6e,
+ 0xf83c, 0xfea3, 0xf89e, 0xf0e7, 0xee98, 0xec12,
+ 0xe6b4, 0xe24f, 0xe146, 0xe5c0, 0xef2f, 0xf617,
+ 0xfb78, 0x05fa, 0x0e72, 0x12df, 0x1821, 0x1296,
+ 0x0638, 0x0714, 0x07b2, 0xfc9d, 0xf9cb, 0x0113,
+ 0x07d8, 0x0d5d, 0x0a32, 0x04c2, 0x0b93, 0x1183,
+ 0x0c7e, 0x044f, 0xf97a, 0xf07d, 0xef0b, 0xf1a5,
+ 0xfd2d, 0x0e72, 0x120c, 0x0957, 0x065d, 0x0d92,
+ 0x1444, 0x0dec, 0x01e3, 0xffb3, 0xfe30, 0xf87e,
+ 0xffa4, 0x0ace, 0x04fc, 0xfcf1, 0x0001, 0x002b,
+ 0xfbdd, 0xfc49, 0xfcdd, 0xfb71, 0xfd30, 0x0076,
+ 0x01be, 0x0044, 0xfa7e, 0xefce, 0xe598, 0xe7b5,
+ 0xf638, 0xfd3b, 0xf52c, 0xed7c, 0xebc2, 0xe931,
+ 0xe9de, 0xf29d, 0xf7a1, 0xf026, 0xeac4, 0xf498,
+ 0x00e8, 0x00e8, 0xfad6, 0xfc19, 0x0439, 0x0731,
+ 0x06a0, 0x0e28, 0x1496, 0x0dd9, 0x0316, 0xfba1,
+ 0xf8a6, 0xf850, 0xf088, 0xe8f4, 0xee3a, 0xf274,
+ 0xf245, 0xf74b, 0xf8e2, 0xf9d0, 0x013d, 0x0309,
+ 0x0424, 0x079d, 0xfce0, 0xf67e, 0x0590, 0x0a40,
+ 0xff1c, 0xfd73, 0xfb6c, 0xf0bc, 0xf132, 0xfc17,
+ 0x0096, 0xffb8, 0x008b, 0x0347, 0x0711, 0x0677,
+ 0xf9cc, 0xe9d2, 0xe831, 0xf165, 0xf734, 0xfc3e,
+ 0x04f0, 0x0a37, 0x0b12, 0x0b5d, 0x0872, 0x01da,
+ 0xf9f5, 0xf260, 0xf383, 0xff3a, 0x079f, 0x094e,
+ 0x0a6a, 0x04d7, 0xfa58, 0xfa99, 0x05af, 0x0f2b,
+ 0x0ecd, 0x03e6, 0xf9e0, 0xf6db, 0xf39a, 0xf3db,
+ 0xfe79, 0x095f, 0x0bce, 0x08f0, 0x068d, 0x077f,
+ 0x08b1, 0x089f, 0x07fb, 0x026c, 0xfc09, 0x0017,
+ 0x088d, 0x0549, 0xf698, 0xeeeb, 0xfa67, 0x09bc,
+ 0x0747, 0xf856, 0xf269, 0xfe69, 0x10db, 0x17bf,
+ 0x10b8, 0x088f, 0x04a7, 0xfe78, 0xf51b, 0xf029,
+ 0xed86, 0xe7d5, 0xe989, 0xf590, 0xfd14, 0xff18,
+ 0x010f, 0xfe5b, 0xfaab, 0xfa13, 0xfb38, 0x046e,
+ 0x0db6, 0x08af, 0x01f1, 0x0046, 0xfa7d, 0xfbfc,
+ 0x095a, 0x0d5e, 0x0494, 0xfd59, 0xfd39, 0x04ea,
+ 0x0d20, 0x0b4c, 0x04ee, 0x02ac, 0x01df, 0x006f,
+ 0xfe7a, 0xfa95, 0xf5c4, 0xf269, 0xf59b, 0xff87,
+ 0x032a, 0x0136, 0x093d, 0x104a, 0x0661, 0xfa9f,
+ 0xf5fc, 0xf194, 0xefd8, 0xefde, 0xf4f4, 0x07b3,
+ 0x1361, 0x0b2f, 0x098f, 0x10ae, 0x095e, 0xfacc,
+ 0xf54a, 0xf87b, 0xff85, 0x026f, 0x01a1, 0x0749,
+ 0x0fd9, 0x1130, 0x0ce8, 0x086b, 0x05bc, 0x04b3,
+ 0x050f, 0x0861, 0x0d2c, 0x0d89, 0x089d, 0x051b,
+ 0x0368, 0xfbaa, 0xf38e, 0xf813, 0xffa2, 0xfbb9,
+ 0xf4c1, 0xf426, 0xf5ef, 0xf7dc, 0xfbb6, 0x01b7,
+ 0x06be, 0x06d2, 0x046a, 0x0221, 0xfd72, 0xf99f,
+ 0xf9b3, 0xf5ff, 0xeeb1, 0xeff1, 0xf83f, 0xfa80,
+ 0xf700, 0xf858, 0x0076, 0x0729, 0x06a1, 0x0356,
+ 0x023c, 0xfffe, 0xfc88, 0xfcb5, 0xfdd0, 0xfb37,
+ 0xf4f0, 0xed72, 0xecf0, 0xf594, 0xfb4e, 0xfa43,
+ 0xfa52, 0xfb70, 0xf9e7, 0xf7c5, 0xf65c, 0xf46c,
+ 0xf5b5, 0x0122, 0x1051, 0x1431, 0x0d2f, 0x04a5,
+ 0xff74, 0x02c8, 0x0ae9, 0x0dd0, 0x0d14, 0x0cd0,
+ 0x0fa4, 0x18f6, 0x1fe0, 0x1c54, 0x1228, 0x03b8,
+ 0xfaa9, 0xfe7f, 0x00a6, 0xfc1e, 0xfb28, 0xfb30,
+ 0xfb6c, 0xff85, 0x04a0, 0x0fbd, 0x1ba9, 0x15bf,
+ 0x06fe, 0xff54, 0xf7ed, 0xf299, 0xf4d7, 0xf47c,
+ 0xf22d, 0xf761, 0x0153, 0x07ec, 0x01b2, 0xf28b,
+ 0xf05e, 0xfa15, 0xfc24, 0xfb48, 0xfd7b, 0xf8ec,
+ 0xf1f3, 0xf028, 0xf1d7, 0xfa68, 0x0210, 0xfdaf,
+ 0xfa98, 0xfe6c, 0xfbc2, 0xf570, 0xf406, 0xf5e5,
+ 0xfbc6, 0x043b, 0x0a16, 0x09a1, 0x0343, 0x027c,
+ 0x0a39, 0x0dae, 0x0d6d, 0x0c01, 0x03c4, 0x01b8,
+ 0x0ce4, 0x11e5, 0x0da7, 0x0e77, 0x12d6, 0x11ac,
+ 0x0bf8, 0x0a32, 0x0be2, 0x0876, 0x072c, 0x10f4,
+ 0x1909, 0x1670, 0x0f56, 0x08ba, 0x050a, 0x0152,
+ 0xfc51, 0x0034, 0x0b78, 0x0e86, 0x0964, 0x0635,
+ 0x06b9, 0x0b1f, 0x1146, 0x0f4f, 0x05ba, 0x045a,
+ 0x0c04, 0x0cdf, 0x07fc, 0x0869, 0x0982, 0x03b3,
+ 0xfb31, 0xf992, 0xff7b, 0xfee2, 0xf4b7, 0xf129,
+ 0xf7fb, 0x01f3, 0x0ce0, 0x0f18, 0x03a7, 0xf915,
+ 0xf5f1, 0xf32b, 0xf426, 0xfda3, 0x03ed, 0x00a4,
+ 0x0106, 0x0855, 0x0a83, 0x0890, 0x071a, 0x00c0,
+ 0xf770, 0xf11e, 0xf03e, 0xf7ad, 0x000f, 0x00a1,
+ 0xfd2d, 0xf761, 0xefcf, 0xed3b, 0xf5b1, 0x0c2d,
+ 0x2142, 0x1e08, 0x0de9, 0x05ec, 0x0072, 0xfaac,
+ 0xfade, 0xfd98, 0x0151, 0x0665, 0x07b0, 0x046e,
+ 0x0051, 0xfe1c, 0xfeb4, 0xff43, 0xfb6c, 0xf44b,
+ 0xf2d2, 0xf883, 0xfb59, 0xfd84, 0x0647, 0x0e0a,
+ 0x1175, 0x138b, 0x121e, 0x120a, 0x1340, 0x0acf,
+ 0xfe6e, 0xfae6, 0xfde0, 0x0107, 0x038c, 0x0a3e,
+ 0x1469, 0x15e5, 0x0ec0, 0x0ca0, 0x113a, 0x140b,
+ 0x1179, 0x0f76, 0x130b, 0x16bb, 0x19a4, 0x1e02,
+ 0x1b59, 0x1163, 0x0932, 0x02a8, 0xfc66, 0xf610,
+ 0xf17a, 0xf60e, 0xff88, 0x05d5, 0x09e8, 0x090f,
+ 0x0860, 0x0d54, 0x0834, 0xfbaf, 0xff2f, 0x09e5,
+ 0x0906, 0x0535, 0x0765, 0x0876, 0x03e8, 0x0226,
+ 0x07ca, 0x0a49, 0x04cd, 0xfdb9, 0xf9be, 0xfe8c,
+ 0x08fb, 0x09f8, 0xfefb, 0xf2c0, 0xed09, 0xee31,
+ 0xf210, 0xf7ea, 0xfc17, 0xf9be, 0xfb8a, 0x057a,
+ 0x08e6, 0x048b, 0x01b4, 0xff63, 0xf806, 0xeca8,
+ 0xebca, 0xf850, 0xfc8c, 0xf821, 0xfc74, 0x0326,
+ 0x0613, 0x0bbf, 0x10a3, 0x0ef5, 0x0748, 0x010b,
+ 0x0150, 0xfdc9, 0xf65a, 0xf57a, 0xf572, 0xf873,
+ 0x02e4, 0x0288, 0xf9a9, 0xfbfc, 0x01d9, 0x01dc,
+ 0xfef2, 0xfa5e, 0xfcba, 0x03a6, 0xff2f, 0xf448,
+ 0xef0e, 0xede1, 0xf04a, 0xf53a, 0xf99f, 0x02fc,
+ 0x1192, 0x183c, 0x13fb, 0x0fd6, 0x0ca1, 0x089d,
+ 0x0e0b, 0x1858, 0x16ed, 0x0f78, 0x0bd8, 0x0888,
+ 0x05d4, 0x0343, 0xff48, 0xfe5b, 0xff4e, 0x02e6,
+ 0x0d40, 0x14eb, 0x137a, 0x0e26, 0x05c1, 0xfb5f,
+ 0xf211, 0xed01, 0xf1b5, 0xf911, 0xf8ae, 0xf9c1,
+ 0x03fc, 0x0c8f, 0x0ae2, 0x063a, 0x0709, 0x082c,
+ 0x0826, 0x0b19, 0x02d9, 0xed20, 0xe643, 0xf334,
+ 0xfea4, 0x007b, 0xfa53, 0xf6be, 0xfd9b, 0x00d6,
+ 0xfba2, 0xf7ab, 0xf2a4, 0xee0e, 0xefc5, 0xf1ed,
+ 0xf07d, 0xebc5, 0xe71e, 0xe59f, 0xdde3, 0xd313,
+ 0xd6a4, 0xe276, 0xee27, 0xfc94, 0xfe98, 0xf113,
+ 0xead1, 0xecfd, 0xec15, 0xea79, 0xe754, 0xe4d4,
+ 0xee50, 0xfe27, 0x053c, 0x080a, 0x0fef, 0x1337,
+ 0x098c, 0xfe88, 0xf99d, 0xf3b9, 0xed25, 0xedce,
+ 0xf30d, 0xf472, 0xf6a2, 0x02fe, 0x0fb2, 0x1061,
+ 0x0c79, 0x07c5, 0xfebd, 0xf9d3, 0xfc10, 0xfe82,
+ 0x018d, 0x04b8, 0x06f7, 0x0c8e, 0x12db, 0x1371,
+ 0x0bb3, 0xff49, 0xf9b3, 0xfa75, 0xf814, 0xf877,
+ 0xff14, 0x0564, 0x0aa2, 0x06d9, 0xf806, 0xf426,
+ 0xff85, 0x0457, 0xfe3d, 0xfa48, 0xfc3f, 0xfe35,
+ 0x0062, 0x0798, 0x0dea, 0x0ff7, 0x15e0, 0x1e08,
+ 0x2417, 0x2705, 0x1b4c, 0x06d6, 0x0161, 0x03ce,
+ 0xfdab, 0xfa96, 0x0156, 0x06a5, 0x06fc, 0x0675,
+ 0x0431, 0xfe4b, 0xf9ee, 0xf9b2, 0xf5e3, 0xeee5,
+ 0xee5f, 0xf1a3, 0xf070, 0xef88, 0xf83b, 0x01f9,
+ 0xfaed, 0xee3c, 0xf300, 0xfcac, 0xfa58, 0xf7f5,
+ 0xfb99, 0xfed7, 0x0099, 0xffaa, 0xfdc7, 0xfcee,
+ 0xfa80, 0xfb44, 0x0163, 0x0627, 0x08ed, 0x07b5,
+ 0x00b1, 0xfc95, 0xfaab, 0xf427, 0xf069, 0xf3d3,
+ 0xf637, 0xf1d3, 0xe9a8, 0xe7aa, 0xee94, 0xf2a6,
+ 0xeeb8, 0xed5b, 0xf421, 0xf825, 0xf2bc, 0xefc8,
+ 0xf57d, 0xfd0e, 0x0677, 0x0d72, 0x0a0d, 0x0773,
+ 0x0af4, 0x0747, 0xfce3, 0xf4ac, 0xef5e, 0xee7a,
+ 0xf09d, 0xf230, 0xf4f9, 0xfb00, 0x03c7, 0x0838,
+ 0x0441, 0x0196, 0xff75, 0xf84b, 0xf868, 0xfd0c,
+ 0xf973, 0xfc3f, 0x0965, 0x0cf2, 0x0738, 0x04b5,
+ 0x086a, 0x0c83, 0x0633, 0xfdb3, 0x01b1, 0x0814,
+ 0x0b2a, 0x1139, 0x12c7, 0x0e32, 0x09d1, 0x0207,
+ 0xfc96, 0x0212, 0x07a7, 0x066d, 0x0781, 0x0d2a,
+ 0x0e48, 0x0961, 0x0650, 0x030f, 0xfc2e, 0xfc5b,
+ 0x03d6, 0x0688, 0x095a, 0x12ac, 0x167f, 0x0dc1,
+ 0x02e6, 0xffd9, 0xfdcd, 0xf20d, 0xe466, 0xe290,
+ 0xebc8, 0xf6e7, 0xfbce, 0xfb37, 0xfe80, 0x080c,
+ 0x108a, 0x1230, 0x10ad, 0x1392, 0x14f0, 0x0bc3,
+ 0xff9a, 0xf826, 0xf5ae, 0xf69e, 0xf0ff, 0xe6fb,
+ 0xebad, 0xfa61, 0xff67, 0xff52, 0x05c9, 0x0ba2,
+ 0x06a5, 0xfd67, 0xfa77, 0xfa45, 0xf93b, 0xfa39,
+ 0xf86d, 0xf116, 0xea4b, 0xe6da, 0xe743, 0xea28,
+ 0xed41, 0xf1d7, 0xf5fa, 0xf995, 0xfcc4, 0xf552,
+ 0xe735, 0xe412, 0xe9d9, 0xf02e, 0xf479, 0xf235,
+ 0xefe8, 0xf356, 0xf81f, 0x0013, 0x056f, 0x02d9,
+ 0x0597, 0x091e, 0xff43, 0xf59f, 0xf5ec, 0xfa18,
+ 0x00ee, 0x047d, 0x0268, 0x01d8, 0x015e, 0x0004,
+ 0xff0d, 0xf969, 0xf39a, 0xf4bf, 0xf76f, 0xf7f2,
+ 0xf818, 0xfaa5, 0x019f, 0x063b, 0x0288, 0xfaff,
+ 0xf431, 0xf26b, 0xf809, 0x0055, 0x0bd1, 0x1a24,
+ 0x1c5e, 0x100b, 0x0955, 0x0cf9, 0x0c8b, 0x054c,
+ 0xfdad, 0xf89c, 0xf82a, 0xf99f, 0xf9ec, 0xfcc2,
+ 0x00ba, 0x00da, 0xff62, 0xff18, 0x02c9, 0x0bab,
+ 0x10be, 0x0db8, 0x0b3e, 0x0d85, 0x0ff6, 0x0d95,
+ 0x0845, 0x058e, 0x01da, 0xfb4e, 0xf950, 0xf9e2,
+ 0xfa68, 0x003e, 0x0509, 0x030e, 0xff93, 0xfa65,
+ 0xfbf1, 0x0e4a, 0x1dae, 0x19c6, 0x0ed4, 0x0353,
+ 0xf5f5, 0xec46, 0xe793, 0xe65f, 0xe61a, 0xe3b2,
+ 0xe794, 0xf484, 0xfd09, 0x0047, 0x04db, 0x04ab,
+ 0x002f, 0xfd1f, 0xf657, 0xec84, 0xe899, 0xee8e,
+ 0xfc38, 0x0451, 0xffef, 0xfeb4, 0x049d, 0x0334,
+ 0xfbe9, 0xf7c7, 0xf60b, 0xf4b9, 0xf1ed, 0xef1d,
+ 0xee71, 0xea79, 0xe6b4, 0xeea4, 0xfb86, 0xff34,
+ 0xfd44, 0x0097, 0x059f, 0x0274, 0xfd0f, 0xfd20,
+ 0xfa81, 0xf532, 0xf602, 0xf614, 0xf06c, 0xf07f,
+ 0xfaa5, 0x040d, 0x059f, 0x0596, 0x074d, 0x044f,
+ 0xff4c, 0xff29, 0xfffc, 0xffeb, 0x0114, 0x039f,
+ 0x08e1, 0x0b5c, 0x068a, 0x01ab, 0xff4e, 0xfcc0,
+ 0xf993, 0xf513, 0xf563, 0xfc95, 0x02ac, 0x09f4,
+ 0x12b6, 0x1236, 0x0b1c, 0x0675, 0x0290, 0xf9da,
+ 0xedcb, 0xebba, 0xf4a2, 0xf6d8, 0xf2e3, 0xf46b,
+ 0xfca4, 0x0c74, 0x191d, 0x1710, 0x128f, 0x1125,
+ 0x0d34, 0x0b7b, 0x0c1c, 0x0e12, 0x11b3, 0x0fa0,
+ 0x0d7a, 0x10ad, 0x0efd, 0x0cb9, 0x0d9a, 0x082a,
+ 0x03a1, 0x0361, 0xfe8b, 0xfc01, 0xfcb1, 0xf750,
+ 0xf1da, 0xf12e, 0xf41d, 0xfeb9, 0x0e41, 0x19fb,
+ 0x1d37, 0x1905, 0x11e4, 0x067a, 0xf692, 0xeb29,
+ 0xe884, 0xec37, 0xf2b4, 0xf798, 0xfb5b, 0xfe5a,
+ 0xfe39, 0xfbb1, 0xf725, 0xf5b3, 0xfbad, 0xfddb,
+ 0xf8a3, 0xf643, 0xf49d, 0xf23c, 0xf5f9, 0xfaec,
+ 0xfae1, 0xf782, 0xf285, 0xef78, 0xedc3, 0xeb41,
+ 0xeb7f, 0xec15, 0xedb1, 0xf811, 0xffef, 0xf9ef,
+ 0xf554, 0xf9d2, 0xfcdc, 0xfef5, 0x0422, 0x0683,
+ 0x05a6, 0x05c9, 0x02d6, 0xfb73, 0xf92e, 0xfd68,
+ 0xfd25, 0xf898, 0xfa18, 0xff8a, 0x00f5, 0x017d,
+ 0x05ef, 0x0a57, 0x0a5f, 0x084b, 0x0783, 0x0618,
+ 0x038f, 0x06eb, 0x0eb3, 0x0ecf, 0x09b9, 0x093f,
+ 0x08a9, 0x052e, 0x0141, 0xf86a, 0xf35c, 0x0038,
+ 0x1097, 0x12d2, 0x0f45, 0x0e9e, 0x0d2b, 0x0a77,
+ 0x09e2, 0x0a05, 0x06b4, 0x0133, 0xfe63, 0xfdde,
+ 0xfc60, 0xfa8c, 0xfc04, 0x0178, 0x056f, 0x0261,
+ 0xf82e, 0xece9, 0xeb79, 0xf6ed, 0x05b0, 0x0df8,
+ 0x0c4d, 0x084d, 0x09f2, 0x0658, 0xf8f9, 0xf07b,
+ 0xecce, 0xe8af, 0xea31, 0xebf6, 0xeb20, 0xef38,
+ 0xf1e5, 0xf204, 0xf711, 0xf88d, 0xf673, 0xfcca,
+ 0x06f2, 0x0e50, 0x10f9, 0x089b, 0xfaba, 0xf2a7,
+ 0xef09, 0xed9e, 0xf14d, 0xf703, 0xf723, 0xf470,
+ 0xfaa5, 0x07a7, 0x0b5f, 0x0077, 0xf3c3, 0xf3c9,
+ 0xfba4, 0xfcf0, 0xfaec, 0xfc77, 0xfe40, 0x01c2,
+ 0x026f, 0xf738, 0xebb4, 0xead6, 0xecc5, 0xec82,
+ 0xeb67, 0xe9c1, 0xe66b, 0xe2dc, 0xe930, 0xf7e6,
+ 0xfe1e, 0xfc81, 0xfd51, 0xff7b, 0x03bf, 0x0969,
+ 0x0aed, 0x0b62, 0x0f1d, 0x123e, 0x0be9, 0xfc5f,
+ 0xf512, 0xf990, 0xfc83, 0x02c5, 0x0d08, 0x0d05,
+ 0x0c12, 0x1265, 0x1063, 0x0936, 0x0bc3, 0x120b,
+ 0x1518, 0x190c, 0x1d9c, 0x1b58, 0x114d, 0x0999,
+ 0x0727, 0x04d0, 0x056b, 0x0978, 0x0afa, 0x0843,
+ 0x0262, 0x03bf, 0x126c, 0x184b, 0x0c43, 0x08b3,
+ 0x13ae, 0x15e2, 0x0917, 0xfe81, 0x0360, 0x0ce6,
+ 0x08cb, 0xfe21, 0xfd21, 0x01f8, 0x0224, 0xfd28,
+ 0xfab4, 0xff51, 0x031b, 0x00f9, 0x0092, 0x04e7,
+ 0x06e1, 0x00a5, 0xf7a1, 0xf9a3, 0x0475, 0x0714,
+ 0x0168, 0xfcc4, 0xf6e3, 0xf1f7, 0xf622, 0xfbf3,
+ 0xf749, 0xf02b, 0xf4cb, 0xfd64, 0xfcbc, 0xfc3a,
+ 0x060d, 0x0fbd, 0x0ff8, 0x0a2b, 0x024f, 0xf8c8,
+ 0xefbb, 0xed85, 0xf13a, 0xf18b, 0xf0f8, 0xf56f,
+ 0xf797, 0xf685, 0xf93f, 0xfbe6, 0xf9b3, 0xf467,
+ 0xf036, 0xf26a, 0xf59d, 0xf306, 0xf31c, 0xf796,
+ 0xf77d, 0xf4b5, 0xef55, 0xe413, 0xe0cb, 0xed54,
+ 0xf86e, 0xf942, 0xfa11, 0xfb96, 0xf68e, 0xef67,
+ 0xee7d, 0xf4b1, 0xfafa, 0xf75e, 0xf079, 0xf6f6,
+ 0x0320, 0x0573, 0x058e, 0x0b44, 0x1082, 0x1044,
+ 0x0b5f, 0x08df, 0x09cd, 0x069b, 0x0410, 0x0672,
+ 0x0569, 0x030f, 0x022d, 0xfdec, 0xfd62, 0x01a0,
+ 0x026d, 0x0770, 0x1297, 0x1898, 0x19f1, 0x1748,
+ 0x0e68, 0x0763, 0x058d, 0x05ed, 0x0902, 0x0dde,
+ 0x153e, 0x1dc6, 0x1f01, 0x1721, 0x0b82, 0x01e9,
+ 0xffb1, 0x0124, 0x0062, 0x0095, 0x04d6, 0x0ce2,
+ 0x12ef, 0x0d62, 0x0257, 0xfdce, 0xfd4a, 0x003c,
+ 0x0617, 0x01be, 0xf3d0, 0xecd3, 0xefd6, 0xf66b,
+ 0xfce0, 0x00fe, 0x053a, 0x0970, 0x07c9, 0x0381,
+ 0x0315, 0x004d, 0xf66f, 0xf160, 0xf9da, 0x0301,
+ 0x00ff, 0xfc54, 0xfa36, 0xf414, 0xee59, 0xf013,
+ 0xf25c, 0xf1df, 0xf427, 0xf7e6, 0xf5d7, 0xece8,
+ 0xe71a, 0xea4a, 0xecce, 0xecc0, 0xf24b, 0xf4ea,
+ 0xf00f, 0xf4b3, 0x0268, 0x06a3, 0x027b, 0x0047,
+ 0xfebb, 0xfc7a, 0xfe08, 0x03aa, 0x072e, 0x072e,
+ 0x08f7, 0x0b86, 0x0a76, 0x06a6, 0x0020, 0xfac6,
+ 0xfd4c, 0xfea4, 0xf6d8, 0xf470, 0xfdc2, 0x03c1,
+ 0x0070, 0xfaa6, 0xf873, 0xff41, 0x0aa1, 0x0d87,
+ 0x08d1, 0x07a0, 0x0a4e, 0x0aea, 0x0a42, 0x0d09,
+ 0x1105, 0x0bd9, 0xfafc, 0xecc9, 0xeec4, 0xfa71,
+ 0x016a, 0x05f1, 0x0f3d, 0x1390, 0x0ccb, 0x02c3,
+ 0xf8fa, 0xf7d6, 0x055d, 0x0fce, 0x117c, 0x176d,
+ 0x1b8c, 0x1a49, 0x1aac, 0x148a, 0x0a1c, 0x06bf,
+ 0x0473, 0x0444, 0x09c9, 0x0c4c, 0x0d6b, 0x097c,
+ 0xfaba, 0xf7c4, 0x05ed, 0x0a81, 0x05b0, 0x097c,
+ 0x1265, 0x1336, 0x0a05, 0x0223, 0x019f, 0x058e,
+ 0x0dd6, 0x107c, 0x051f, 0xf9ff, 0xf745, 0xf8de,
+ 0xfe34, 0x00b5, 0x0053, 0x0398, 0x0511, 0x0686,
+ 0x0aac, 0x0653, 0xfdb5, 0xf9cc, 0xf637, 0xf6e9,
+ 0xfacc, 0xf871, 0xf63f, 0xf74a, 0xf71d, 0xfb1b,
+ 0x019c, 0x021a, 0xfdc3, 0xfb1f, 0xfea4, 0x01ee,
+ 0xfeb8, 0xfd25, 0xfc7c, 0xf326, 0xe914, 0xe9b3,
+ 0xf176, 0xf668, 0xf687, 0xf985, 0xfda3, 0xfdf8,
+ 0x02f2, 0x07f9, 0x008f, 0xf835, 0xf74d, 0xf5a8,
+ 0xf383, 0xf48d, 0xfb86, 0x0710, 0x0885, 0xffdc,
+ 0xfc87, 0xf939, 0xf0fd, 0xf321, 0xffae, 0x06b9,
+ 0x0669, 0x057b, 0x05c1, 0x060f, 0x04b0, 0x0236,
+ 0x0177, 0x03de, 0x09b5, 0x106a, 0x11f7, 0x0ea1,
+ 0x0e44, 0x12a9, 0x1458, 0x0e40, 0x0642, 0x043b,
+ 0x04d2, 0x04a0, 0x06d4, 0x06e8, 0x0468, 0x0843,
+ 0x0b3f, 0x04ff, 0xfeb6, 0xfc9a, 0x0127, 0x0d62,
+ 0x12d4, 0x1281, 0x19a1, 0x1de4, 0x1980, 0x13f8,
+ 0x0a12, 0x02ec, 0x081a, 0x0cd1, 0x0beb, 0x0d25,
+ 0x0e7f, 0x0d5c, 0x0ab2, 0x06a7, 0x02c0, 0xffd7,
+ 0x002c, 0x0374, 0x0692, 0x0d1d, 0x145b, 0x111e,
+ 0x060f, 0xfce1, 0xf780, 0xf453, 0xf2c2, 0xf65e,
+ 0xfaee, 0xf291, 0xe3b5, 0xe22d, 0xebf3, 0xf3aa,
+ 0xf82f, 0xfea1, 0x0569, 0x09a0, 0x11e6, 0x1c42,
+ 0x1835, 0x096b, 0x0076, 0xf9e5, 0xf335, 0xf628,
+ 0xfe33, 0xff81, 0xfc6f, 0xfb27, 0xfa75, 0xfa57,
+ 0xfd5c, 0x0006, 0xfef5, 0xfc95, 0xfac3, 0xfc8a,
+ 0x0094, 0xfc92, 0xf26a, 0xedeb, 0xf011, 0xf77a,
+ 0xff36, 0xfd6f, 0xf8eb, 0xf92f, 0xf4c2, 0xeca3,
+ 0xecb7, 0xf565, 0xff5a, 0x0292, 0xffb6, 0xffcb,
+ 0xff54, 0xf84e, 0xf51f, 0xf98b, 0xfa93, 0xf6a2,
+ 0xf52e, 0xf81c, 0xfb88, 0xfaa7, 0xf7b0, 0xf996,
+ 0xfd35, 0xfc02, 0xf937, 0xf6d0, 0xf3fe, 0xf640,
+ 0xffdd, 0x0bf7, 0x149f, 0x1613, 0x15cd, 0x1797,
+ 0x1438, 0x0d11, 0x08e6, 0x04f5, 0x0107, 0xfdc0,
+ 0xfade, 0xff1f, 0x05ba, 0x038c, 0xfefe, 0xfe34,
+ 0xfe54, 0xfff4, 0x030c, 0x0746, 0x0ab2, 0x0a1a,
+ 0x066e, 0xfb18, 0xeee3, 0xf82b, 0x0ad8, 0x0da2,
+ 0x0d30, 0x125d, 0x11ad, 0x0c56, 0x0675, 0x0241,
+ 0x0194, 0xfe86, 0xfcb9, 0x01af, 0x05a7, 0x0641,
+ 0x044f, 0xffe4, 0xfd5a, 0xf96c, 0xf559, 0xf640,
+ 0xf376, 0xf211, 0xfba7, 0xff30, 0xfaa2, 0xfe4f,
+ 0x028e, 0xfe78, 0xf96d, 0xf891, 0xfcdb, 0x0229,
+ 0x058b, 0x0827, 0x0583, 0xff50, 0xfbd1, 0xf882,
+ 0xf778, 0xf9f1, 0xf9a1, 0xfb2c, 0x00ee, 0x0138,
+ 0xfc83, 0xf95f, 0xf88f, 0xfa07, 0xfd86, 0x028e,
+ 0x05f8, 0x051f, 0x0356, 0xff34, 0xf72f, 0xf0b3,
+ 0xe982, 0xe3c9, 0xeaf6, 0xf5f5, 0xf89b, 0xfdb3,
+ 0x06ed, 0x0589, 0xfa79, 0xf3a9, 0xf402, 0xf45e,
+ 0xf41d, 0xf6da, 0xf888, 0xf79c, 0xfa45, 0xff6a,
+ 0x0099, 0xfdd5, 0xfaa2, 0xf96b, 0xfb2f, 0xfe4b,
+ 0xfded, 0xf7b2, 0xf0e2, 0xedd6, 0xedc5, 0xf208,
+ 0xf82a, 0xf88e, 0xf62d, 0xfb3f, 0x0677, 0x0b64,
+ 0x0669, 0x052b, 0x0e56, 0x1437, 0x0f3b, 0x08a7,
+ 0x0768, 0x0933, 0x081d, 0x0322, 0x0083, 0x0154,
+ 0x01de, 0x038d, 0x0600, 0x06d5, 0x0906, 0x0c76,
+ 0x0e09, 0x1021, 0x11ee, 0x0f9b, 0x0ce7, 0x0a81,
+ 0x0381, 0xfd38, 0xfc53, 0xf9e7, 0xf6c9, 0xf983,
+ 0xfc4f, 0xf9eb, 0xf760, 0xf733, 0xf64a, 0xf366,
+ 0xf315, 0xf98a, 0x02c1, 0x08c4, 0x08f4, 0x0502,
+ 0x0436, 0x0588, 0x0175, 0xfdf6, 0xff3e, 0xfec1,
+ 0xfe53, 0xfc6c, 0xf36e, 0xefe4, 0xf74a, 0xfcc0,
+ 0x0153, 0x098e, 0x0ce6, 0x0ae6, 0x0841, 0x0203,
+ 0xf8ba, 0xf096, 0xea67, 0xe84c, 0xec71, 0xf30a,
+ 0xf767, 0xfa5f, 0xfc5a, 0xf9e2, 0xf4d2, 0xf394,
+ 0xf562, 0xf5e1, 0xfa2f, 0x088b, 0x1387, 0x09dd,
+ 0xf786, 0xf0a2, 0xf21e, 0xf516, 0xf982, 0xfc5a,
+ 0xfe5e, 0x0009, 0xff2f, 0x0137, 0x055f, 0x055a,
+ 0x06f6, 0x09dd, 0x0665, 0x0302, 0x0235, 0xff57,
+ 0x01c0, 0x0860, 0x060d, 0xfe03, 0xf969, 0xf5d1,
+ 0xf21b, 0xf126, 0xf204, 0xf368, 0xf64d, 0xf956,
+ 0xf993, 0xf8cf, 0xf88e, 0xf7b3, 0xfda6, 0x0d17,
+ 0x15f8, 0x142e, 0x14bd, 0x146c, 0x0d12, 0x0831,
+ 0x0765, 0x04ef, 0x0126, 0xfacd, 0xf570, 0xf8cf,
+ 0x008a, 0x056f, 0x070a, 0x078a, 0x0b01, 0x0df3,
+ 0x0c30, 0x0dc6, 0x11e6, 0x10cd, 0x104e, 0x1020,
+ 0x0bd6, 0x0b56, 0x0ab2, 0x03b6, 0x021f, 0x03f3,
+ 0xffad, 0xfd12, 0xfc1c, 0xf879, 0xf947, 0xfa59,
+ 0xf5c5, 0xf4fc, 0xfa86, 0x0055, 0x0444, 0x0552,
+ 0x059d, 0x058b, 0x018a, 0xfb69, 0xf54a, 0xf10b,
+ 0xf31b, 0xf484, 0xed5a, 0xe83d, 0xec24, 0xef5d,
+ 0xeda8, 0xec02, 0xedb2, 0xf617, 0x03e6, 0x0b3a,
+ 0x0622, 0xfcf4, 0xf66d, 0xf52d, 0xfa38, 0xfcd4,
+ 0xf767, 0xf223, 0xf206, 0xf6d8, 0xff8e, 0x049c,
+ 0x0472, 0x0331, 0xfbd4, 0xf0b4, 0xf060, 0xfc3f,
+ 0x07d0, 0x0a5e, 0x0749, 0x0584, 0x0248, 0xfd50,
+ 0xfcfe, 0xfd65, 0xfc4c, 0xfd84, 0xfb0d, 0xf635,
+ 0xf768, 0xf835, 0xf6aa, 0xf886, 0xf864, 0xf713,
+ 0xfb9b, 0x00e0, 0x02da, 0x03b9, 0x035f, 0x002a,
+ 0xf8e3, 0xf5e6, 0xff3d, 0x07bd, 0x03ee, 0xfc0a,
+ 0xf6ed, 0xf52b, 0xf684, 0xf979, 0xfee4, 0x027b,
+ 0xfe2f, 0xfb49, 0x0559, 0x152b, 0x1ab2, 0x1525,
+ 0x1335, 0x15d7, 0x118e, 0x0ae7, 0x0800, 0x01d1,
+ 0xf8bd, 0xf2bc, 0xf1de, 0xf721, 0xfbc2, 0xfb63,
+ 0xfc9e, 0xff34, 0xff0f, 0xfeb8, 0xfee4, 0xffd1,
+ 0x0278, 0x059f, 0x09ad, 0x0bc6, 0x0971, 0x07ad,
+ 0x04b2, 0xfb96, 0xf496, 0xf5f6, 0xf7c8, 0xf47b,
+ 0xf2d8, 0xf5e2, 0xf2fc, 0xeb4b, 0xf127, 0x0390,
+ 0x0f12, 0x0d4e, 0x06b1, 0x0667, 0x09f9, 0x0301,
+ 0xf658, 0xf21a, 0xf28c, 0xf54b, 0xfa81, 0xf896,
+ 0xf2e4, 0xf3ab, 0xf564, 0xf44c, 0xf3b4, 0xf33e,
+ 0xf6b0, 0xffec, 0x070c, 0x08f6, 0x0804, 0x0277,
+ 0xf9af, 0xf44e, 0xf323, 0xf1d6, 0xf09a, 0xf136,
+ 0xf15a, 0xf04a, 0xefb7, 0xeef9, 0xede6, 0xec32,
+ 0xe9dc, 0xeef2, 0xfe2e, 0x06e0, 0x0181, 0xff1e,
+ 0x0484, 0x01b1, 0xf611, 0xf026, 0xf307, 0xf997,
+ 0xff5a, 0xffa0, 0xfc75, 0xfbfc, 0xfc90, 0xfa1b,
+ 0xf75c, 0xf83f, 0xfba4, 0xff2f, 0x0258, 0x0410,
+ 0x03d4, 0x0260, 0xfe56, 0xf95c, 0xfaef, 0x0381,
+ 0x095b, 0x07ed, 0x059a, 0x05e3, 0x0186, 0xf76c,
+ 0xf341, 0xf5ec, 0xf46e, 0xf02e, 0xf2dd, 0xfd36,
+ 0x0861, 0x0eb6, 0x11d0, 0x14f0, 0x158e, 0x1201,
+ 0x0bd0, 0x0480, 0xfda7, 0xf4eb, 0xebf8, 0xecfc,
+ 0xf51a, 0xf8f9, 0xfe1d, 0x098d, 0x102b, 0x0dff,
+ 0x09b3, 0x054d, 0x0424, 0x0a1c, 0x0f13, 0x0ca0,
+ 0x0b76, 0x0ee5, 0x0d71, 0x0591, 0xfece, 0xfcef,
+ 0xfea9, 0x000c, 0x0064, 0x01ca, 0x016d, 0xfd65,
+ 0xf7ed, 0xf38f, 0xf6b8, 0x0011, 0x01b9, 0xfc63,
+ 0xfd0f, 0x0075, 0xfd70, 0xf82b, 0xf5a9, 0xf1e0,
+ 0xec51, 0xec03, 0xf017, 0xf174, 0xf100, 0xefe3,
+ 0xed12, 0xed2b, 0xf1fa, 0xfb6c, 0x08ae, 0x0e83,
+ 0x0a35, 0x06c9, 0x0311, 0xfcc8, 0xfa41, 0xf703,
+ 0xef78, 0xe9ef, 0xe754, 0xe7f7, 0xebb2, 0xedad,
+ 0xee1a, 0xeb8e, 0xe666, 0xe9c6, 0xf061, 0xec35,
+ 0xec57, 0xfb8b, 0x03fb, 0xfeba, 0xfbb3, 0xf8ec,
+ 0xf044, 0xeea6, 0xf74d, 0xfcce, 0xfdf2, 0xffc6,
+ 0xfe5f, 0xfa44, 0xf8d8, 0xfae4, 0x0122, 0x0843,
+ 0x08e5, 0x062a, 0x0729, 0x08e3, 0x0794, 0x04a8,
+ 0xfe90, 0xf6f0, 0xfa0d, 0x0ab1, 0x188b, 0x1b35,
+ 0x19ae, 0x1475, 0x07c8, 0xfa1f, 0xf547, 0xf95f,
+ 0xfebb, 0x0452, 0x0cb4, 0x0fe7, 0x0a97, 0x07a0,
+ 0x0bd0, 0x12ce, 0x15b2, 0x0f8a, 0x09e2, 0x0b65,
+ 0x0907, 0x0250, 0xffca, 0xfce2, 0xf88b, 0xf843,
+ 0xf9c3, 0xfbbd, 0xff23, 0x0225, 0x04ae, 0x04b6,
+ 0x0120, 0xffc1, 0x0308, 0x0677, 0x079e, 0x0892,
+ 0x08aa, 0x0252, 0xfa62, 0xfd3a, 0x027f, 0xfaa2,
+ 0xf0ac, 0xf3fb, 0xfc43, 0xff59, 0x009a, 0x02d6,
+ 0x04da, 0x057a, 0x00f0, 0xf87c, 0xf303, 0xec8e,
+ 0xe273, 0xe318, 0xee7c, 0xf019, 0xe951, 0xed93,
+ 0xfc2a, 0x04b1, 0x020b, 0xfceb, 0xf9f2, 0xf624,
+ 0xf391, 0xf4c6, 0xf89a, 0x0251, 0x0e48, 0x1164,
+ 0x0e77, 0x0acb, 0x00e0, 0xf299, 0xe784, 0xe1b4,
+ 0xe5bf, 0xf26b, 0xf98b, 0xf7c6, 0xf714, 0xf649,
+ 0xf087, 0xed09, 0xee88, 0xf102, 0xf79c, 0xfe35,
+ 0xfb8e, 0xfa21, 0x0256, 0x0677, 0x01fb, 0xfe55,
+ 0xfabc, 0xf6f2, 0xfc03, 0x075f, 0x0bda, 0x0941,
+ 0x09b9, 0x0e50, 0x10f3, 0x0eac, 0x07f8, 0x015b,
+ 0x0065, 0x05df, 0x0d7e, 0x0f7e, 0x0aec, 0x088f,
+ 0x097d, 0x097d, 0x0b26, 0x0ced, 0x0ae7, 0x07a9,
+ 0x04ee, 0x05c5, 0x09fb, 0x08c0, 0x05b2, 0x09da,
+ 0x0c93, 0x0830, 0x0574, 0x079e, 0x089d, 0x04af,
+ 0x0299, 0x07d3, 0x0d7e, 0x1163, 0x13e8, 0x0dbd,
+ 0x017a, 0xf47c, 0xe996, 0xf077, 0x03ce, 0x07f7,
+ 0x0406, 0x08e1, 0x0aab, 0x0570, 0x0102, 0xfe20,
+ 0xffe8, 0x02e5, 0x0036, 0xff28, 0x034a, 0x0671,
+ 0x0812, 0x0782, 0x0284, 0xfd1b, 0xfad6, 0xfa12,
+ 0xf9b1, 0xfa7a, 0xfb08, 0xfaa2, 0xfa79, 0xf7ef,
+ 0xf4cf, 0xf783, 0xf980, 0xf509, 0xf1b2, 0xef79,
+ 0xec24, 0xebe3, 0xea6e, 0xe7e0, 0xeb95, 0xefee,
+ 0xf175, 0xf471, 0xf3d1, 0xeede, 0xeffc, 0xfad9,
+ 0x0652, 0x06e0, 0x02c9, 0x06b8, 0x07d5, 0xfd56,
+ 0xf600, 0xf898, 0xff03, 0x044f, 0x01ef, 0xfb9c,
+ 0xfc4b, 0xffe1, 0xfe5a, 0xfc0f, 0xfdac, 0xffcc,
+ 0x0033, 0x01e0, 0x03c0, 0x0424, 0x0865, 0x0ee6,
+ 0x10a5, 0x0f90, 0x0b2f, 0x03a6, 0x0253, 0x044e,
+ 0x0219, 0x042e, 0x0cc2, 0x136c, 0x16de, 0x16a9,
+ 0x13f2, 0x12f9, 0x1004, 0x085f, 0x014b, 0xff3a,
+ 0x0598, 0x11cc, 0x18ef, 0x1603, 0x0ddc, 0x097f,
+ 0x0e0a, 0x144d, 0x152b, 0x12f6, 0x0e71, 0x08ef,
+ 0x052d, 0xff10, 0xfaa9, 0x01fe, 0x096c, 0x057a,
+ 0x053a, 0x0d5e, 0x0d11, 0x047d, 0xff16, 0xfbe7,
+ 0xfc0a, 0x01d7, 0x0250, 0xf9ee, 0xf86f, 0x0534,
+ 0x11b9, 0x0f2c, 0x041d, 0x027a, 0x093b, 0x0858,
+ 0x0229, 0x02f1, 0x0504, 0x0369, 0x03e1, 0xfe62,
+ 0xf089, 0xf0d4, 0xff8e, 0x03ab, 0xfee1, 0xff11,
+ 0x00cc, 0x02cd, 0x0519, 0x03a4, 0x03a9, 0x0471,
+ 0xfd19, 0xf3b8, 0xf098, 0xf170, 0xf519, 0xf896,
+ 0xf9eb, 0xff72, 0x07ed, 0x0829, 0xfe33, 0xf3ca,
+ 0xf006, 0xf01b, 0xf0d9, 0xf3ce, 0xf7af, 0xfbb1,
+ 0x00c3, 0x01de, 0xfe2a, 0xfc09, 0xfb20, 0xfa3e,
+ 0xfc92, 0xffc2, 0x0008, 0xfdb2, 0xfa95, 0xfa43,
+ 0xfc90, 0xfe27, 0xfed4, 0xfc28, 0xf5b2, 0xf456,
+ 0xfaf6, 0x018b, 0x043b, 0x0530, 0x05f4, 0x0591,
+ 0x02c7, 0x01bd, 0x06df, 0x0e07, 0x127e, 0x1510,
+ 0x15e8, 0x1472, 0x104d, 0x088c, 0x0158, 0x0036,
+ 0x031b, 0x0712, 0x0b83, 0x0d77, 0x0d2a, 0x0c3a,
+ 0x07c7, 0x02c2, 0x038b, 0x072a, 0x0874, 0x05eb,
+ 0x02dc, 0x071d, 0x0d72, 0x0ade, 0x07d7, 0x0b15,
+ 0x0c95, 0x0d42, 0x0e56, 0x0a0e, 0x0563, 0x03ae,
+ 0x004d, 0xfda8, 0xfc1d, 0xf9f8, 0xfd11, 0x03be,
+ 0x04ed, 0x0018, 0xfc3b, 0xff80, 0x054e, 0x05be,
+ 0x0602, 0x08a8, 0x07d8, 0x0809, 0x0bf7, 0x0d46,
+ 0x0e2d, 0x1128, 0x0fc2, 0x0835, 0xff9c, 0xf9fd,
+ 0xf5cc, 0xf1a1, 0xf28a, 0xf7f9, 0xfbb4, 0xfe04,
+ 0xfd9e, 0xfb46, 0xff78, 0x059e, 0x044d, 0x0114,
+ 0xff51, 0xfd36, 0xfcc0, 0xf8ce, 0xed21, 0xe4c0,
+ 0xeac9, 0xf770, 0xfa06, 0xf6b9, 0xfbf4, 0x0091,
+ 0xfcc5, 0xfc0c, 0xfc76, 0xf916, 0xfa16, 0xfb69,
+ 0xf8ff, 0xfb65, 0xff33, 0xfc0c, 0xf234, 0xe68e,
+ 0xe5c4, 0xf252, 0xfc88, 0xfcce, 0xf79a, 0xf63b,
+ 0x002a, 0x0a89, 0x0971, 0x042c, 0x0386, 0x07f7,
+ 0x0a25, 0x04c8, 0x0251, 0x043e, 0xffff, 0xfd18,
+ 0xff70, 0xfdcd, 0xff04, 0x068e, 0x0aaf, 0x0bc8,
+ 0x0a55, 0x0837, 0x0cdf, 0x103b, 0x0db1, 0x0eb5,
+ 0x1054, 0x1036, 0x101a, 0x07d2, 0x0002, 0x055b,
+ 0x0a18, 0x091d, 0x09dc, 0x05dd, 0x0090, 0x0512,
+ 0x0bec, 0x0e44, 0x0ee2, 0x0e99, 0x0e7e, 0x0c45,
+ 0x0796, 0x07f1, 0x0b05, 0x0998, 0x07b6, 0x0785,
+ 0x0781, 0x09c7, 0x09da, 0x03e9, 0xfed1, 0xfcdb,
+ 0xfaba, 0xf988, 0xf899, 0xf6db, 0xf7aa, 0xf9ef,
+ 0xfa6e, 0xfb53, 0xfc67, 0xfbc2, 0xfc96, 0xfe57,
+ 0xfd47, 0xfd4b, 0x00c7, 0x0261, 0x0146, 0x01e0,
+ 0x05db, 0x0b10, 0x0c1c, 0x06e2, 0xff6e, 0xf805,
+ 0xf1af, 0xeea8, 0xeeb7, 0xf1c8, 0xf65a, 0xf9c8,
+ 0x00f2, 0x0a66, 0x078d, 0xfb1e, 0xf736, 0xfaa0,
+ 0xf9b9, 0xf70e, 0xf940, 0xfd6f, 0xfe8e, 0xfd43,
+ 0xf963, 0xf274, 0xf1d4, 0xfa9f, 0xff3b, 0xfee3,
+ 0x05b3, 0x0df6, 0x0d9a, 0x095f, 0x0497, 0xfea3,
+ 0xfb22, 0xf897, 0xf256, 0xee05, 0xf070, 0xf189,
+ 0xf094, 0xf68f, 0xfd00, 0xfc6a, 0xfd20, 0xfe0a,
+ 0xfb4d, 0xfe16, 0x02dd, 0x0348, 0x087d, 0x0e3e,
+ 0x0c73, 0x0c0c, 0x0bfb, 0x077f, 0x056f, 0x0171,
+ 0xf81b, 0xf570, 0xfc64, 0x0794, 0x1161, 0x11c3,
+ 0x0e14, 0x0ef3, 0x0cfa, 0x0613, 0x02e1, 0x04b5,
+ 0x098a, 0x0fe1, 0x14aa, 0x1678, 0x1262, 0x083a,
+ 0x0049, 0xff9d, 0x0364, 0x0777, 0x086d, 0x0834,
+ 0x0aeb, 0x0dbe, 0x0e56, 0x0e3a, 0x0996, 0xff73,
+ 0xf788, 0xf3a0, 0xf24a, 0xf7cf, 0x0171, 0x0799,
+ 0x0a36, 0x0789, 0xfdb6, 0xf497, 0xf22a, 0xf625,
+ 0xfd02, 0xfe67, 0xfade, 0xfa38, 0xf8f5, 0xf455,
+ 0xf2b8, 0xf440, 0xf467, 0xf0bd, 0xec5a, 0xeee4,
+ 0xf1eb, 0xecca, 0xecb9, 0xf6a9, 0xfd6b, 0x0174,
+ 0x041c, 0xfe4d, 0xf8f3, 0xfc2f, 0xfe51, 0xfc90,
+ 0xfc05, 0xf9b7, 0xf28c, 0xea45, 0xe600, 0xe83e,
+ 0xf0ad, 0xfaa0, 0xfd80, 0xf895, 0xf4de, 0xf2b7,
+ 0xebb9, 0xe490, 0xe65f, 0xf123, 0xfc7e, 0xfebf,
+ 0xf8a7, 0xf463, 0xf389, 0xf01e, 0xec6e, 0xecfd,
+ 0xee50, 0xef08, 0xf20b, 0xf446, 0xf421, 0xf521,
+ 0xf274, 0xeb8d, 0xef35, 0xf9e9, 0xf6b2, 0xed20,
+ 0xf0be, 0xf901, 0xfa49, 0xf863, 0xf502, 0xf528,
+ 0x0025, 0x0d88, 0x12ae, 0x11dd, 0x113e, 0x1355,
+ 0x12b7, 0x0cf6, 0x0c45, 0x107f, 0x1029, 0x0f67,
+ 0x0dae, 0x0489, 0xff52, 0x0409, 0x087c, 0x09de,
+ 0x0824, 0x0528, 0x0685, 0x0525, 0xffeb, 0x024e,
+ 0x04d7, 0x00b4, 0x0364, 0x0ccd, 0x12cd, 0x16f4,
+ 0x17db, 0x11a8, 0x081a, 0xff39, 0xf93b, 0xf62f,
+ 0xf59d, 0xf9fa, 0x00cd, 0x03e8, 0x02e2, 0x0021,
+ 0xfd35, 0xfafd, 0xf9f9, 0xfa5f, 0xfab2, 0xfca5,
+ 0x0123, 0x0034, 0xf9f2, 0xf7a2, 0xf5c4, 0xf12a,
+ 0xf185, 0xf4e1, 0xf49b, 0xf2e9, 0xf242, 0xf2e7,
+ 0xf32c, 0xefc6, 0xeb75, 0xeb60, 0xf027, 0xf7f5,
+ 0xfef7, 0x0119, 0xfd65, 0xf793, 0xf5b9, 0xf71d,
+ 0xf5fc, 0xf301, 0xf377, 0xf8b7, 0xfd51, 0xfd75,
+ 0xfdac, 0xfd1a, 0xf74e, 0xf41d, 0xf579, 0xf24b,
+ 0xee63, 0xef51, 0xf0d0, 0xf28a, 0xf405, 0xf3e0,
+ 0xf323, 0xee19, 0xe97b, 0xef55, 0xf7c3, 0xfb46,
+ 0xff3a, 0x0359, 0x0622, 0x0771, 0x03dc, 0x003f,
+ 0x0002, 0xfc01, 0xf59d, 0xf37a, 0xf441, 0xf74d,
+ 0xfc86, 0xff9e, 0xff87, 0x0024, 0x0371, 0x0493,
+ 0xfe7d, 0xf800, 0xfa23, 0xfdcc, 0xf8f4, 0xf3fd,
+ 0xf844, 0xfc7e, 0xfba2, 0xffa1, 0x0882, 0x0d4c,
+ 0x0bf4, 0x04d9, 0xfdc0, 0x00ac, 0x0b54, 0x1336,
+ 0x12cf, 0x0dde, 0x0e4f, 0x12b5, 0x1145, 0x0c96,
+ 0x08f9, 0x05e7, 0x0869, 0x0e43, 0x0ef7, 0x0d68,
+ 0x0bf1, 0x070b, 0x01ac, 0xfedc, 0xfdd4, 0x00f1,
+ 0x0940, 0x111f, 0x11eb, 0x0d47, 0x09cb, 0x0606,
+ 0xfe17, 0xf82e, 0xfa97, 0x0007, 0x01a8, 0x03da,
+ 0x0baf, 0x103b, 0x09bc, 0xffdc, 0xfaee, 0xfa4f,
+ 0xf855, 0xf1e2, 0xef98, 0xf776, 0xff02, 0xff8d,
+ 0xfd5a, 0xf9df, 0xf691, 0xf555, 0xf434, 0xf32a,
+ 0xf28e, 0xf1d6, 0xf32d, 0xf4d3, 0xf3b3, 0xf564,
+ 0xfceb, 0x012d, 0xfd3a, 0xf91e, 0xf997, 0xfae0,
+ 0xfc57, 0xfcab, 0xf903, 0xf894, 0xfed1, 0x0155,
+ 0xfdf8, 0xfc39, 0xfd30, 0xfef4, 0xfee1, 0xf9ef,
+ 0xf255, 0xed49, 0xef9c, 0xf602, 0xf5a3, 0xf166,
+ 0xf3ae, 0xf942, 0xfe23, 0x00a0, 0xfbd3, 0xf8d1,
+ 0x002e, 0x0556, 0x0314, 0x0153, 0xffa7, 0x0154,
+ 0x0aed, 0x0f8c, 0x09c9, 0x07cd, 0x0984, 0x0383,
+ 0xfe9f, 0x0616, 0x0e8b, 0x0e8e, 0x0e24, 0x1100,
+ 0x119c, 0x0fa1, 0x0dfc, 0x0b42, 0x0701, 0x05f0,
+ 0x07e2, 0x0666, 0x02c1, 0x0081, 0xfcad, 0xfbe9,
+ 0x02ea, 0x07ce, 0x0928, 0x0e7a, 0x1064, 0x0b08,
+ 0x08a4, 0x08e5, 0x04b8, 0xff82, 0x0055, 0x0670,
+ 0x0823, 0x03a0, 0x0441, 0x086e, 0x0450, 0xfe20,
+ 0x00db, 0x07d1, 0x0aaa, 0x074d, 0x0239, 0x00d5,
+ 0xff2d, 0xf9d9, 0xf782, 0xf962, 0xfa01, 0xfbec,
+ 0x0176, 0x0464, 0x0499, 0x0802, 0x08e0, 0xff3c,
+ 0xf44d, 0xf2c9, 0xf562, 0xf61a, 0xf6f3, 0xf728,
+ 0xf606, 0xf78c, 0xfa57, 0xfa1b, 0xfaee, 0xfe33,
+ 0xfb01, 0xf310, 0xf33c, 0xf79b, 0xf609, 0xf731,
+ 0xfced, 0xf80d, 0xee0d, 0xeeeb, 0xf21a, 0xf109,
+ 0xf652, 0xfec5, 0x0177, 0x028c, 0x0052, 0xf736,
+ 0xf03f, 0xedb7, 0xea64, 0xeadb, 0xf08a, 0xf2f9,
+ 0xf0f8, 0xf01a, 0xf13b, 0xf32c, 0xf726, 0xfba6,
+ 0xfb80, 0xf8a9, 0xfa0c, 0xfba8, 0xf795, 0xf442,
+ 0xf5ad, 0xf95b, 0x00c3, 0x0571, 0xfcc7, 0xf0ff,
+ 0xf0b1, 0xf78c, 0x037d, 0x16f5, 0x21cd, 0x1856,
+ 0x0adf, 0x0457, 0xfd38, 0xf909, 0x0162, 0x0e96,
+ 0x14f9, 0x15e3, 0x1669, 0x1296, 0x041c, 0xf430,
+ 0xf229, 0xf934, 0xfbce, 0xfb64, 0xfd60, 0xff2f,
+ 0xfc70, 0xf480, 0xef17, 0xf527, 0x03c9, 0x1450,
+ 0x2362, 0x2a8b, 0x262a, 0x1891, 0x0425, 0xf30d,
+ 0xf117, 0xf87b, 0x010e, 0x0e99, 0x1bc8, 0x1c4e,
+ 0x150b, 0x10cc, 0x0d06, 0x03b2, 0xf8fc, 0xf765,
+ 0x000a, 0x08a4, 0x0cf4, 0x0f32, 0x0eb0, 0x0e51,
+ 0x0dc2, 0x0513, 0xfb7b, 0xfcb3, 0xfdfb, 0xf877,
+ 0xf72d, 0xf925, 0xf6e4, 0xf4ea, 0xf499, 0xf3ae,
+ 0xf5a0, 0xf7f0, 0xf4e8, 0xf12a, 0xf203, 0xf28d,
+ 0xea80, 0xda29, 0xccce, 0xc8f5, 0xc8f7, 0xcbb8,
+ 0xd567, 0xe177, 0xeb36, 0xf397, 0xf66b, 0xf047,
+ 0xe7c4, 0xe610, 0xeeba, 0xf97a, 0xfa60, 0xf490,
+ 0xeefa, 0xe725, 0xe2a7, 0xe7b5, 0xe98f, 0xe300,
+ 0xe31d, 0xee6d, 0xfb00, 0x01c1, 0xfd6e, 0xef11,
+ 0xe345, 0xe2b1, 0xe91d, 0xeecc, 0xf20a, 0xf849,
+ 0x0383, 0x0bc8, 0x0b47, 0x04b5, 0xfcac, 0xf8e2,
+ 0xfb20, 0xfca0, 0xfc16, 0xff8d, 0x0544, 0x092d,
+ 0x0bd7, 0x0bd7, 0x0b18, 0x0c3a, 0x0a18, 0x09e7,
+ 0x167e, 0x2140, 0x1a89, 0x1252, 0x15a8, 0x199a,
+ 0x1881, 0x17cc, 0x1857, 0x1851, 0x16b0, 0x121d,
+ 0x0aeb, 0x02e6, 0xfe0b, 0x0071, 0x088a, 0x1242,
+ 0x197b, 0x1796, 0x0cb1, 0x00c5, 0xf602, 0xeecc,
+ 0xf10c, 0xf53f, 0xf4f2, 0xf9cb, 0xffc1, 0xfae4,
+ 0xf6dd, 0xf813, 0xefcd, 0xe5f8, 0xe8bf, 0xed30,
+ 0xeab6, 0xe582, 0xe139, 0xdfea, 0xdc31, 0xd744,
+ 0xdd4c, 0xe51d, 0xe334, 0xe5c1, 0xecf5, 0xeba7,
+ 0xe9e2, 0xebf7, 0xeaf0, 0xea6f, 0xebf5, 0xed37,
+ 0xf106, 0xf748, 0xfd9a, 0xfb38, 0xeaf8, 0xdf4b,
+ 0xe0f4, 0xe21d, 0xe63f, 0xf28a, 0xfa1c, 0xff0f,
+ 0x08e3, 0x0f3e, 0x1341, 0x1cc8, 0x220b, 0x1a79,
+ 0x156c, 0x1e6a, 0x245d, 0x2205, 0x2a19, 0x30d8,
+ 0x22d6, 0x1726, 0x18f1, 0x1759, 0x1929, 0x1fdf,
+ 0x17e3, 0x0cdd, 0x12dc, 0x1b76, 0x1dcd, 0x2857,
+ 0x39d2, 0x414b, 0x3ebb, 0x3d23, 0x3aaa, 0x31b9,
+ 0x27e5, 0x22d9, 0x2159, 0x24dd, 0x2f45, 0x372f,
+ 0x3520, 0x3449, 0x3a77, 0x3c89, 0x3b32, 0x3cca,
+ 0x3ce1, 0x3f7d, 0x46c2, 0x457c, 0x3bb3, 0x347b,
+ 0x2fc4, 0x2b13, 0x29a6, 0x2eab, 0x3074, 0x2617,
+ 0x231c, 0x2cfb, 0x2940, 0x1fce, 0x224a, 0x1d2b,
+ 0x15bc, 0x1e95, 0x214f, 0x19af, 0x1eac, 0x25c7,
+ 0x1eb4, 0x150d, 0x12f7, 0x11d0, 0x0dd4, 0x1138,
+ 0x1896, 0x153b, 0x13a3, 0x1963, 0x121d, 0x076f,
+ 0x0831, 0x0499, 0x0087, 0x0612, 0x0415, 0xfa4c,
+ 0xf774, 0xf8d5, 0xfa7d, 0xfabd, 0xf670, 0xf251,
+ 0xf251, 0xf45e, 0xf308, 0xea18, 0xdeac, 0xd57e,
+ 0xd1e5, 0xd8cf, 0xdced, 0xd44f, 0xd0dc, 0xd249,
+ 0xc955, 0xc804, 0xd5d9, 0xd758, 0xcdc1, 0xcdfc,
+ 0xcfa3, 0xcd14, 0xcf05, 0xcbd3, 0xc00a, 0xbcac,
+ 0xbfc2, 0xbcac, 0xb7aa, 0xb3f0, 0xb219, 0xb72d,
+ 0xbb8f, 0xb87a, 0xb86f, 0xbcf4, 0xbb7d, 0xb6a2,
+ 0xb619, 0xb7dc, 0xbbb0, 0xc151, 0xbcae, 0xb0c5,
+ 0xb501, 0xbfed, 0xb95e, 0xb5d4, 0xc0c9, 0xc0ba,
+ 0xbecc, 0xcbb4, 0xcf45, 0xc8b4, 0xcc2c, 0xcd4b,
+ 0xc805, 0xc8fe, 0xc5ef, 0xbee7, 0xc789, 0xd4e7,
+ 0xd1ed, 0xce5d, 0xd890, 0xdb10, 0xd186, 0xd57e,
+ 0xdda6, 0xd47a, 0xd26f, 0xe0fe, 0xe296, 0xdecf,
+ 0xe8eb, 0xea85, 0xe35b, 0xed87, 0xf778, 0xeeaf,
+ 0xe990, 0xeb6f, 0xea77, 0xf477, 0xff46, 0xf535,
+ 0xed1d, 0xf37a, 0xefab, 0xe30d, 0xe01e, 0xe508,
+ 0xe969, 0xe942, 0xee26, 0xfc4b, 0xfcab, 0xf281,
+ 0xf8ac, 0xfe9a, 0xf7be, 0xfce3, 0x056a, 0xf989,
+ 0xe9ab, 0xe68a, 0xe733, 0xe584, 0xeb9a, 0xfc20,
+ 0x014c, 0xf917, 0xfb4d, 0xfd4e, 0xf2e6, 0xf435,
+ 0xfb9a, 0xf666, 0xf912, 0x0032, 0xf41e, 0xeb7b,
+ 0xf32b, 0xf0c7, 0xe95d, 0xefab, 0xf33c, 0xedfd,
+ 0xefec, 0xf35f, 0xf1d8, 0xf5da, 0xf8bb, 0xf3fb,
+ 0xf7bf, 0x01b2, 0x0231, 0x01e7, 0x051d, 0xfed2,
+ 0xf450, 0xf4df, 0xfc6e, 0xffd8, 0x01a4, 0x0769,
+ 0x0b85, 0x0c22, 0x0ddf, 0x0aab, 0x0286, 0x01ae,
+ 0x04d6, 0x04d9, 0x0655, 0x07bb, 0x094b, 0x0fd9,
+ 0x106b, 0x0367, 0xf745, 0xf82b, 0x00ee, 0x0769,
+ 0x0a95, 0x0d45, 0x0c10, 0x08d9, 0x0b61, 0x1272,
+ 0x17bd, 0x13c4, 0x0865, 0x08fe, 0x157b, 0x1827,
+ 0x15e7, 0x197f, 0x1784, 0x139b, 0x17eb, 0x18a2,
+ 0x1458, 0x15a4, 0x15d3, 0x1073, 0x0e6a, 0x12ba,
+ 0x16e7, 0x0df5, 0xfbc1, 0xfcdb, 0x0bc4, 0x0984,
+ 0x0861, 0x16bf, 0x1313, 0x07d8, 0x1672, 0x24a8,
+ 0x2219, 0x2110, 0x1eba, 0x1fd6, 0x2b09, 0x2b47,
+ 0x207b, 0x1930, 0x178c, 0x224e, 0x2989, 0x1ea0,
+ 0x1f15, 0x2e04, 0x32fe, 0x3580, 0x33cd, 0x277b,
+ 0x257a, 0x2ce9, 0x317f, 0x3765, 0x374b, 0x34a1,
+ 0x3d82, 0x41a6, 0x34d5, 0x2abc, 0x3051, 0x33a4,
+ 0x2548, 0x1f4c, 0x2cb4, 0x2a02, 0x1f6d, 0x2a6b,
+ 0x2ec2, 0x2538, 0x2952, 0x2eb3, 0x2df7, 0x3469,
+ 0x3822, 0x3545, 0x34f1, 0x3654, 0x3439, 0x2c43,
+ 0x2deb, 0x3a67, 0x35c1, 0x2f1d, 0x3a90, 0x3531,
+ 0x247b, 0x286a, 0x2856, 0x20c7, 0x2663, 0x25de,
+ 0x2651, 0x3b3e, 0x4004, 0x28cd, 0x1e39, 0x2787,
+ 0x2ce0, 0x280b, 0x22a7, 0x236e, 0x2165, 0x1489,
+ 0x0cfb, 0x159d, 0x1d91, 0x1dec, 0x2193, 0x28db,
+ 0x31ad, 0x3329, 0x243a, 0x23dc, 0x3731, 0x2d0f,
+ 0x1d82, 0x3406, 0x398e, 0x22e3, 0x2440, 0x279a,
+ 0x2344, 0x3357, 0x3567, 0x2166, 0x1e92, 0x217a,
+ 0x1dfa, 0x1ce5, 0x1a6f, 0x220f, 0x2e26, 0x29e9,
+ 0x2639, 0x28cf, 0x2350, 0x1ace, 0x10c1, 0x0cf8,
+ 0x18cd, 0x2316, 0x24df, 0x1f60, 0x1690, 0x20be,
+ 0x2bd2, 0x1e4a, 0x1944, 0x1e49, 0x14f9, 0x15e0,
+ 0x2096, 0x1e26, 0x1da5, 0x216b, 0x2006, 0x1b13,
+ 0x1125, 0x165f, 0x2796, 0x1de6, 0x0ec8, 0x15ec,
+ 0x113a, 0x02ed, 0x0856, 0x0eac, 0x06b0, 0xfdfb,
+ 0xfe38, 0x03c0, 0x0184, 0xfe4c, 0x055f, 0x01d0,
+ 0xf5e2, 0x0115, 0x1227, 0x0d29, 0x07c7, 0x0b00,
+ 0x023d, 0xf62d, 0xf36b, 0xec3a, 0xea7d, 0xf931,
+ 0xf7e8, 0xe91d, 0xf1ee, 0xfd3b, 0xf8a5, 0xfd01,
+ 0xfe7d, 0xf85c, 0x0392, 0x01e2, 0xe57e, 0xe210,
+ 0xf4bc, 0xf65e, 0xef0f, 0xe986, 0xe959, 0xf371,
+ 0xf1d6, 0xe242, 0xe5a4, 0xf94f, 0xfc62, 0xeef9,
+ 0xec71, 0xf26a, 0xe7f5, 0xdd71, 0xe6eb, 0xe5d3,
+ 0xd765, 0xdb2f, 0xe1e1, 0xdc76, 0xdbab, 0xdbe2,
+ 0xda6a, 0xda15, 0xd38f, 0xd808, 0xe50a, 0xda08,
+ 0xce9f, 0xd989, 0xd8f4, 0xcf69, 0xd41b, 0xda89,
+ 0xdfb9, 0xe027, 0xd3f3, 0xcf46, 0xd234, 0xce9d,
+ 0xd03f, 0xd071, 0xc964, 0xccec, 0xca38, 0xb789,
+ 0xb64d, 0xc4fc, 0xcdb1, 0xd7c4, 0xde73, 0xd916,
+ 0xdd33, 0xeeb3, 0xef68, 0xe3b1, 0xed7f, 0xf6ec,
+ 0xe4fa, 0xe299, 0xee87, 0xdbd1, 0xd7ee, 0xf531,
+ 0xec47, 0xd171, 0xdac7, 0xe334, 0xe29c, 0xed33,
+ 0xea9c, 0xe2dd, 0xe93c, 0xe8e9, 0xe26f, 0xe22d,
+ 0xe53e, 0xeadd, 0xe9d1, 0xe847, 0xf10e, 0xef1b,
+ 0xec66, 0xfb96, 0xf50e, 0xdeb9, 0xe9b4, 0xf475,
+ 0xe27c, 0xde16, 0xe4d3, 0xdda1, 0xddab, 0xe20c,
+ 0xd71b, 0xd13e, 0xd6aa, 0xd6f5, 0xd83d, 0xd7e9,
+ 0xcea9, 0xd12e, 0xdee5, 0xe59b, 0xf23e, 0xfda2,
+ 0xeaf4, 0xd241, 0xd1df, 0xd74e, 0xd660, 0xd8c3,
+ 0xde86, 0xe010, 0xd999, 0xd503, 0xdaba, 0xdf57,
+ 0xdd6a, 0xd94f, 0xd1b3, 0xce2c, 0xd2b4, 0xd572,
+ 0xd750, 0xd9a8, 0xd7dd, 0xd588, 0xcff2, 0xc7b0,
+ 0xca79, 0xd354, 0xd1a4, 0xc64c, 0xc210, 0xcd1d,
+ 0xcff5, 0xc61f, 0xd0cd, 0xe048, 0xd9c4, 0xdb40,
+ 0xe118, 0xdb38, 0xe7a1, 0xee32, 0xd651, 0xd56f,
+ 0xe2fe, 0xd50f, 0xd16f, 0xe083, 0xde21, 0xd243,
+ 0xcb96, 0xcd4e, 0xd4be, 0xd46c, 0xd442, 0xd5b3,
+ 0xd181, 0xdbd9, 0xeb22, 0xe7f5, 0xe4ed, 0xe530,
+ 0xe479, 0xe9ad, 0xe2a1, 0xdbb4, 0xe65c, 0xdecd,
+ 0xd13c, 0xdddd, 0xe025, 0xd664, 0xe16a, 0xeafc,
+ 0xe684, 0xeb6d, 0xf893, 0xf87b, 0xef9e, 0xf90c,
+ 0x0534, 0xf9a2, 0xf3aa, 0xf787, 0xf340, 0xfddc,
+ 0x0443, 0xf630, 0xff58, 0x04da, 0xeff6, 0xfad4,
+ 0x09c3, 0xf46f, 0xf3b5, 0x0293, 0xfa0b, 0xfb88,
+ 0x0fde, 0x19b4, 0x0fe3, 0xffc0, 0x0394, 0x0d99,
+ 0x092b, 0x10e9, 0x1684, 0xffba, 0xf6d6, 0xfd57,
+ 0xf08d, 0xef07, 0xfe78, 0xf747, 0xede2, 0xf688,
+ 0xef8d, 0xe0c4, 0xea4d, 0xf0df, 0xe332, 0xe0aa,
+ 0xe6ed, 0xe44c, 0xea5c, 0xf77d, 0xf61c, 0xec08,
+ 0xe3b5, 0xddbd, 0xdbdd, 0xde80, 0xe602, 0xecac,
+ 0xeec6, 0xf152, 0xf077, 0xeb99, 0xe719, 0xdd12,
+ 0xd596, 0xda18, 0xe11b, 0xeb0a, 0xf1f9, 0xe9b6,
+ 0xe332, 0xe5ff, 0xe971, 0xf216, 0xf3e2, 0xe752,
+ 0xe213, 0xe418, 0xe140, 0xe2e8, 0xeed0, 0xf90e,
+ 0xf37d, 0xe94f, 0xeb9f, 0xea7f, 0xe58e, 0xf0d6,
+ 0xf946, 0xf216, 0xecea, 0xebf7, 0xf0eb, 0xf53e,
+ 0xe823, 0xe06c, 0xef7f, 0xfac2, 0xf7bb, 0xf1e7,
+ 0xef3d, 0xf197, 0xf60f, 0xfd28, 0x00f7, 0xfa63,
+ 0xfc96, 0x0c4f, 0x11b2, 0x0ff3, 0x16b2, 0x2080,
+ 0x26c5, 0x245a, 0x16ff, 0x0d24, 0x11b2, 0x171b,
+ 0x1451, 0x16d1, 0x19ca, 0x1276, 0x17fd, 0x2352,
+ 0x14b7, 0x0a45, 0x1708, 0x1952, 0x15f4, 0x1d51,
+ 0x2478, 0x28c8, 0x1f5a, 0x0d87, 0x1095, 0x18c1,
+ 0x121e, 0x0d0d, 0x0a79, 0x06d3, 0x0376, 0xfd60,
+ 0x029d, 0x0ee1, 0x0d90, 0x0b8f, 0x0f5f, 0x0bac,
+ 0x0622, 0x07cb, 0x1012, 0x136d, 0x06a6, 0xfb16,
+ 0xfe97, 0x0692, 0x0cef, 0x0de2, 0x0b0c, 0x0945,
+ 0x0065, 0xf332, 0xea40, 0xe7ff, 0xf4bf, 0xfc02,
+ 0xeac4, 0xe3c4, 0xf03a, 0xf6a4, 0xfeca, 0x06bc,
+ 0xffe1, 0xfbe9, 0x03dd, 0x0c68, 0x0bd5, 0xfa74,
+ 0xe9c5, 0xf10b, 0x0453, 0x0e30, 0x0b10, 0x02f9,
+ 0xfba5, 0xf82f, 0x03fe, 0x17c2, 0x18e1, 0x0f63,
+ 0x0fdc, 0x0fea, 0x08a5, 0x00cd, 0xf9d4, 0xfb6a,
+ 0x0830, 0x0d55, 0x0300, 0xfdab, 0x057b, 0x08a1,
+ 0x056a, 0x0832, 0x0ac4, 0x090d, 0x0c0c, 0x105b,
+ 0x0f23, 0x119f, 0x1ec7, 0x27d8, 0x22aa, 0x1dc6,
+ 0x1d64, 0x1b5d, 0x1ecb, 0x1f8c, 0x16ca, 0x1635,
+ 0x1a49, 0x1eb0, 0x3068, 0x3d48, 0x38bb, 0x3073,
+ 0x2465, 0x1bdf, 0x16de, 0x0bf5, 0x1231, 0x21cb,
+ 0x1e28, 0x1c1d, 0x1b12, 0x16a6, 0x29a7, 0x2f27,
+ 0x16b4, 0x1a4a, 0x26ea, 0x19f1, 0x1839, 0x1e7b,
+ 0x1aa2, 0x1c3e, 0x1b53, 0x1731, 0x195f, 0x180f,
+ 0x191d, 0x1a83, 0x119c, 0x117e, 0x169b, 0x0aea,
+ 0x02a6, 0x0e1c, 0x15db, 0x1097, 0x13bc, 0x1dc7,
+ 0x16ab, 0x0d97, 0x1529, 0x149b, 0x0b12, 0x0ab1,
+ 0x06aa, 0x01fa, 0x0649, 0x022c, 0xfaa2, 0x0005,
+ 0x0466, 0xfd26, 0xf8ff, 0x0429, 0x0fc5, 0x0e24,
+ 0x0e18, 0x1170, 0x0da0, 0x0e9b, 0x1324, 0x0d52,
+ 0x07e3, 0x0ac1, 0x07f7, 0xf4dd, 0xe5bc, 0xf5ad,
+ 0x0c16, 0x0c01, 0x08ed, 0x09f9, 0x0955, 0x0d79,
+ 0x105b, 0x1b36, 0x2eaf, 0x29dd, 0x1a44, 0x1485,
+ 0x028b, 0xf729, 0x02a5, 0x058d, 0x056e, 0x0bb2,
+ 0x06e1, 0x0517, 0x0b3b, 0x07e0, 0x0556, 0x08de,
+ 0x0641, 0x033a, 0x0c3e, 0x1834, 0x14b4, 0x0f56,
+ 0x1732, 0x130a, 0x076f, 0x125a, 0x1c1e, 0x1743,
+ 0x1e7e, 0x25be, 0x170e, 0x04ff, 0x0294, 0x0a33,
+ 0x0f1a, 0x1318, 0x1860, 0x117d, 0x0240, 0xfb2b,
+ 0xfc62, 0x046b, 0x0c3b, 0x0db3, 0x1548, 0x1ce8,
+ 0x16de, 0x1349, 0x1540, 0x107d, 0x12a2, 0x1fad,
+ 0x1d96, 0x08fb, 0xffc2, 0x0c43, 0x19ff, 0x19d8,
+ 0x0b76, 0x0035, 0x0afe, 0x1715, 0x14b3, 0x16bc,
+ 0x1243, 0x010f, 0x0118, 0x074c, 0x06cb, 0x14c1,
+ 0x1efa, 0x175f, 0x1340, 0x0f59, 0x0e1b, 0x155c,
+ 0x11a4, 0x0d77, 0x136a, 0x0de2, 0x04cf, 0x04a8,
+ 0x01e9, 0xffb8, 0x0306, 0x08cb, 0x0bf2, 0x080a,
+ 0x0b67, 0x13e2, 0x0f4a, 0x0c01, 0x0ba8, 0x01da,
+ 0x03a6, 0x0e1a, 0x090d, 0xfdde, 0xf552, 0xf493,
+ 0x00b3, 0x0b2f, 0x1280, 0x137f, 0x059e, 0x0305,
+ 0x0be5, 0x083f, 0x0c9c, 0x185b, 0x14d8, 0x12a5,
+ 0x10fe, 0x08b5, 0x0935, 0x0704, 0x0511, 0x0ef7,
+ 0x06e7, 0xfa35, 0x056d, 0x05b6, 0xfdfe, 0x0a12,
+ 0x0ed0, 0x0c81, 0x12d3, 0x0a0e, 0xfd49, 0x057b,
+ 0x11bd, 0x178d, 0x1776, 0x1224, 0x12d6, 0x1628,
+ 0x13a1, 0x0e8c, 0x08f2, 0x07b4, 0x0804, 0x07a1,
+ 0x0ffc, 0x1032, 0x0250, 0x05d6, 0x0c2c, 0xff2c,
+ 0x018e, 0x11e5, 0x0e73, 0x030e, 0xffcc, 0x0647,
+ 0x134d, 0x14a4, 0x0bd5, 0x03c1, 0xfe78, 0x0a5b,
+ 0x12f7, 0xfd61, 0xf50f, 0x0908, 0x120b, 0x187e,
+ 0x1fa9, 0x13b7, 0x0e65, 0x10b0, 0x0462, 0x06fd,
+ 0x1699, 0x1278, 0x0fb5, 0x1165, 0x077a, 0x0b79,
+ 0x0e85, 0xfb33, 0x0449, 0x1e6f, 0x0d23, 0xfd11,
+ 0x111c, 0x141d, 0x08af, 0x10ae, 0x1578, 0x0d30,
+ 0x0727, 0x04aa, 0x0555, 0x00b7, 0xf7bd, 0xfe8d,
+ 0x0b92, 0x0a9f, 0x05fb, 0x02df, 0xf845, 0xed04,
+ 0xf11c, 0xff93, 0x017d, 0xf916, 0xf95d, 0xfde8,
+ 0x034c, 0x09c2, 0x028d, 0xf6f5, 0xf776, 0xf817,
+ 0xfaa6, 0x03d4, 0x01bc, 0xf964, 0xf8f5, 0xf6e9,
+ 0xf4a7, 0xfdb3, 0x0919, 0x0625, 0xf74c, 0xefba,
+ 0xf381, 0xf4eb, 0xf212, 0xf41f, 0xfe15, 0x06a5,
+ 0x0340, 0xfae1, 0xf793, 0xf935, 0xfe30, 0x01e0,
+ 0x04e7, 0x0478, 0xf874, 0xf64b, 0x019b, 0xfa0f,
+ 0xf1d5, 0xf655, 0xe86f, 0xe57c, 0xfe29, 0x01e9,
+ 0xff06, 0x0733, 0xfb9a, 0xf2ee, 0xf703, 0xeee6,
+ 0xf561, 0x04fc, 0xfbbb, 0xf679, 0xfc9c, 0xf7b5,
+ 0xf84a, 0xff5a, 0xfa0f, 0xed5f, 0xe675, 0xedeb,
+ 0xf903, 0xf89e, 0xf4ff, 0xf37e, 0xf44e, 0xf723,
+ 0xf247, 0xef92, 0xf5bf, 0xf542, 0xf99d, 0x077a,
+ 0x02ac, 0xf1ca, 0xebd3, 0xea7f, 0xe94c, 0xeccd,
+ 0xf50d, 0xfb6b, 0xf802, 0xf2ec, 0xf2e5, 0xefb7,
+ 0xea13, 0xe740, 0xe510, 0xe1bb, 0xe05f, 0xe828,
+ 0xf535, 0xfd36, 0xfee5, 0xf77b, 0xeff8, 0xf47c,
+ 0xf495, 0xef80, 0xf322, 0xed46, 0xe0b7, 0xe48b,
+ 0xeb61, 0xed81, 0xefe0, 0xeb00, 0xe505, 0xde9a,
+ 0xd3fc, 0xd52a, 0xdec7, 0xe5a0, 0xeda2, 0xed46,
+ 0xe3dd, 0xdb84, 0xd4ed, 0xda56, 0xe252, 0xded4,
+ 0xe83e, 0xf33c, 0xe02e, 0xcee3, 0xd1f6, 0xd411,
+ 0xd96e, 0xe0fd, 0xde82, 0xd985, 0xd672, 0xd9cd,
+ 0xe390, 0xe322, 0xdc41, 0xd8e4, 0xd10a, 0xd056,
+ 0xe016, 0xe662, 0xde3f, 0xdcaa, 0xd970, 0xcf38,
+ 0xd471, 0xdf71, 0xdd4a, 0xe42b, 0xeeff, 0xe260,
+ 0xd75b, 0xdb67, 0xd7fd, 0xd870, 0xe4ac, 0xeb84,
+ 0xeb59, 0xe089, 0xd4fb, 0xdfc7, 0xec28, 0xe7bf,
+ 0xe3cf, 0xe051, 0xde8c, 0xe669, 0xe5a7, 0xdc8e,
+ 0xe08e, 0xe8b3, 0xe967, 0xedee, 0xf506, 0xf088,
+ 0xe629, 0xe11e, 0xdda9, 0xe1e0, 0xecef, 0xe572,
+ 0xd580, 0xd633, 0xd877, 0xddbe, 0xed59, 0xee0a,
+ 0xe6d0, 0xe32d, 0xd527, 0xd707, 0xeb13, 0xe70b,
+ 0xe1ab, 0xf018, 0xec8d, 0xde96, 0xe1dd, 0xe57e,
+ 0xe1ec, 0xe387, 0xed34, 0xf54e, 0xee51, 0xe039,
+ 0xd8d8, 0xd660, 0xdef1, 0xed29, 0xe734, 0xd809,
+ 0xdc17, 0xe1be, 0xd461, 0xc89e, 0xc790, 0xc627,
+ 0xce87, 0xded5, 0xe324, 0xe3dc, 0xe496, 0xe076,
+ 0xe93c, 0xf10c, 0xe838, 0xeb85, 0xebbd, 0xd83b,
+ 0xddbc, 0xedb7, 0xe091, 0xd576, 0xd6ae, 0xd8bf,
+ 0xe1a9, 0xdec5, 0xd7c1, 0xde24, 0xd799, 0xd4a7,
+ 0xe847, 0xe89e, 0xddf2, 0xe480, 0xe547, 0xe23b,
+ 0xe2c3, 0xdaac, 0xd7c2, 0xd88c, 0xd3d8, 0xd7f7,
+ 0xdd94, 0xe501, 0xf5dd, 0xf284, 0xe2a6, 0xe6d2,
+ 0xeb5a, 0xecb8, 0xf702, 0xf169, 0xe1cc, 0xe0dc,
+ 0xe2dc, 0xe35d, 0xe46e, 0xe3ec, 0xeb8b, 0xede4,
+ 0xe5ec, 0xeefd, 0xf6da, 0xe9da, 0xebd5, 0xf616,
+ 0xed78, 0xed81, 0xf6ee, 0xf5a5, 0xfbbd, 0xff8a,
+ 0xf0c2, 0xec61, 0xf561, 0xfc3d, 0x0521, 0x00e9,
+ 0xeefb, 0xe902, 0xeb2d, 0xf095, 0xf9c1, 0xf996,
+ 0xfdbe, 0x0740, 0xfa13, 0xedfb, 0xfac4, 0x0032,
+ 0xf82c, 0xf3b8, 0xf03d, 0xf2ae, 0xf780, 0xf2e9,
+ 0xf26f, 0xfa02, 0xf846, 0xeeb1, 0xebf0, 0xf137,
+ 0xf364, 0xf119, 0xf75f, 0x0462, 0x05e7, 0xfb36,
+ 0xf673, 0xf91f, 0xf3d7, 0xf010, 0xf867, 0xf4cc,
+ 0xec15, 0xf9fc, 0xfec1, 0xec27, 0xea3c, 0xf299,
+ 0xef56, 0xef5b, 0xf071, 0xefab, 0xf97b, 0x036b,
+ 0x03b1, 0xfcf5, 0xf182, 0xeef1, 0xf673, 0xf9a4,
+ 0xfab8, 0xff20, 0x01fc, 0xfe88, 0xf74f, 0xf348,
+ 0xee51, 0xebb3, 0xf772, 0xffb7, 0xfb80, 0xfb6a,
+ 0xf462, 0xe817, 0xeca8, 0xecdb, 0xe3df, 0xee40,
+ 0xfaef, 0xf86d, 0xf7e0, 0xf87d, 0xf578, 0xf30a,
+ 0xf012, 0xf159, 0xf4e2, 0xf700, 0xfc7f, 0xfa36,
+ 0xf1e3, 0xf96b, 0x0312, 0xfecd, 0x0037, 0x0731,
+ 0x0191, 0xf86e, 0xf8a7, 0xfc37, 0xfea4, 0x035a,
+ 0x080f, 0x06ed, 0x0293, 0x0066, 0x0187, 0x05ae,
+ 0x090b, 0x0723, 0xff2f, 0xf5b4, 0xf8a4, 0x08b9,
+ 0x0e5d, 0x0729, 0x07eb, 0x0c39, 0x0bcb, 0x12a1,
+ 0x1785, 0x0cfa, 0x093a, 0x1098, 0x093a, 0xfb22,
+ 0xfa57, 0x002d, 0x0777, 0x08b6, 0xfe3b, 0xfa2f,
+ 0xfdb7, 0xfca2, 0x0202, 0x0b16, 0x0e0a, 0x1279,
+ 0x0ec8, 0x0514, 0x0b47, 0x12c8, 0x10de, 0x1239,
+ 0x0ed5, 0x0c49, 0x1705, 0x1bc4, 0x15b8, 0x0ee2,
+ 0x09e5, 0x1065, 0x176c, 0x115d, 0x0c34, 0x071b,
+ 0x0145, 0x04b5, 0x05c5, 0x09ae, 0x15ca, 0x0fc9,
+ 0x0569, 0x0cfa, 0x0f4f, 0x0e7a, 0x1398, 0x0edb,
+ 0x0bc8, 0x0bf9, 0x0150, 0x028e, 0x0f11, 0x0bfb,
+ 0x0851, 0x0fab, 0x1336, 0x1375, 0x15d1, 0x170b,
+ 0x0e21, 0xfb3b, 0xf51c, 0xfe42, 0x0282, 0x0549,
+ 0x09ee, 0x0b7e, 0x13ef, 0x1d68, 0x1aef, 0x1642,
+ 0x1552, 0x1943, 0x1cb0, 0x0def, 0x0007, 0x0a31,
+ 0x0e82, 0x0747, 0x0fa7, 0x18ad, 0x17de, 0x1b29,
+ 0x1aef, 0x18ed, 0x1a1f, 0x14a1, 0x17f9, 0x2052,
+ 0x12f4, 0x0aaf, 0x10b4, 0x052d, 0xffc3, 0x0d99,
+ 0x0da4, 0x0d98, 0x19c7, 0x1ba5, 0x17aa, 0x1206,
+ 0x110a, 0x2118, 0x1eb9, 0x05de, 0x0710, 0x12d3,
+ 0x10c7, 0x1690, 0x1715, 0x08e1, 0x059c, 0x0b10,
+ 0x11e3, 0x1a07, 0x187e, 0x1400, 0x0f74, 0x045c,
+ 0x01d9, 0x0759, 0x08c4, 0x0db4, 0x1159, 0x11ae,
+ 0x1838, 0x1613, 0x0a01, 0x0627, 0x04bc, 0x075b,
+ 0x127a, 0x1337, 0x0de6, 0x0ed6, 0x0926, 0x032f,
+ 0x075b, 0x0590, 0xff92, 0x0354, 0x093e, 0x0aa7,
+ 0x09ef, 0x0997, 0x0c72, 0x0ba4, 0x03d0, 0xfe1a,
+ 0xf926, 0xf69d, 0x032c, 0x10d1, 0x0d6e, 0x07a9,
+ 0x05e8, 0x022d, 0x0861, 0x15ad, 0x17f0, 0x11fd,
+ 0x0986, 0x0344, 0x06d7, 0x08d5, 0x093d, 0x153b,
+ 0x1a13, 0x128c, 0x12ec, 0x0dd6, 0x02c2, 0x0b01,
+ 0x12ec, 0x0ba4, 0x0b22, 0x0d40, 0x0ebd, 0x185b,
+ 0x1611, 0x09b7, 0x0ac3, 0x0d39, 0x0c5d, 0x1233,
+ 0x1252, 0x0e5b, 0x10b6, 0x1040, 0x0f0e, 0x0d71,
+ 0x01ef, 0xff69, 0x0f86, 0x150d, 0x09f1, 0x09ec,
+ 0x1850, 0x1d29, 0x16d2, 0x166a, 0x12be, 0x056e,
+ 0x061d, 0x0e86, 0x0886, 0x04b7, 0x0575, 0xfd60,
+ 0x00b3, 0x0cd9, 0x0984, 0x08f3, 0x11c4, 0x0de3,
+ 0x07b5, 0x0858, 0x054d, 0x0678, 0x07ee, 0xfef7,
+ 0x0036, 0x0a0e, 0x05c0, 0x0963, 0x1e64, 0x1e3d,
+ 0x0c66, 0x0a53, 0x0c37, 0x0582, 0x04d7, 0x08a6,
+ 0x0ab5, 0x0c9c, 0x089c, 0x03bc, 0x03d0, 0xfe92,
+ 0xfa9f, 0x0249, 0x079a, 0x0a4a, 0x149b, 0x1949,
+ 0x1314, 0x0f9b, 0x0f8d, 0x0f34, 0x1033, 0x0d0c,
+ 0x0463, 0xfe1d, 0xfb31, 0xfb96, 0x0295, 0x06f8,
+ 0x044c, 0x08ed, 0x106d, 0x0e03, 0x1114, 0x1501,
+ 0x041f, 0xfa63, 0x06bd, 0x0713, 0x03fe, 0x10ef,
+ 0x1237, 0x0ba5, 0x10b3, 0x0a62, 0xfc59, 0x000e,
+ 0x0ac3, 0x1483, 0x178f, 0x0922, 0x03e6, 0x115c,
+ 0x10fa, 0x08d7, 0x0b82, 0x0aae, 0x07f6, 0x0a9f,
+ 0x0c19, 0x10ad, 0x10c4, 0x05ef, 0x0489, 0x0912,
+ 0x053b, 0x064c, 0x09c4, 0x07d1, 0x0c96, 0x12a9,
+ 0x14d8, 0x1a27, 0x1776, 0x0f49, 0x0fb3, 0x0b8b,
+ 0xffac, 0xfa52, 0xfbf8, 0x04c5, 0x0d89, 0x0a28,
+ 0x0587, 0x05f0, 0x0432, 0x0628, 0x0c1f, 0x0b83,
+ 0x0434, 0xfe6c, 0x01ea, 0x08ba, 0x071e, 0x03a8,
+ 0x0623, 0x0941, 0x07df, 0x027c, 0x021a, 0x05a1,
+ 0x0117, 0x0045, 0x09a3, 0x0ad8, 0x094a, 0x0c07,
+ 0x04dc, 0xfe0b, 0x01e6, 0x00d7, 0xfa40, 0xf6a2,
+ 0xf717, 0xfc76, 0x005c, 0x0316, 0x07d6, 0x05ac,
+ 0x0364, 0x09da, 0x0bf3, 0x09f3, 0x0972, 0x0235,
+ 0xfd12, 0x0386, 0x08dc, 0x0960, 0x0ade, 0x095e,
+ 0x0271, 0xfbbe, 0xfaed, 0xfe46, 0xfef5, 0xfdbd,
+ 0x010f, 0x0458, 0xfe98, 0xf92d, 0xff09, 0x0567,
+ 0x0875, 0x0d07, 0x0737, 0xfbbd, 0xfbca, 0xfbd9,
+ 0xfb17, 0x04a5, 0x0612, 0xffc6, 0x05ba, 0x09fd,
+ 0x0573, 0x0413, 0xff1c, 0xf759, 0xf7c7, 0xfbce,
+ 0xff01, 0xffd3, 0xfe88, 0x02ea, 0x0c13, 0x12f8,
+ 0x13d3, 0x0c33, 0x03f1, 0x0308, 0x0671, 0x0b20,
+ 0x0cec, 0x0a19, 0x05c9, 0xfea3, 0xf8ed, 0xf841,
+ 0xf640, 0xf830, 0x0062, 0x020a, 0xfeef, 0xfb2b,
+ 0xf55c, 0xf97f, 0x02bc, 0xffa4, 0xfaeb, 0xfb27,
+ 0xf5e9, 0xf4b4, 0xfcbd, 0xfd16, 0xf7f0, 0xfb8e,
+ 0xfe29, 0xf83a, 0xf91c, 0x021d, 0x0378, 0xfc7b,
+ 0xf30c, 0xeb2f, 0xeb3b, 0xec89, 0xead1, 0xf15c,
+ 0xfa40, 0xf8f6, 0xf5b7, 0xf42b, 0xf11a, 0xf2f6,
+ 0xf970, 0xfb0d, 0xf48d, 0xedaf, 0xf037, 0xf678,
+ 0xf956, 0x0109, 0x0989, 0x040a, 0xf7c7, 0xefc2,
+ 0xe820, 0xe667, 0xf21b, 0xfafb, 0xf6f8, 0xf552,
+ 0xf6f5, 0xf37c, 0xf70c, 0xffc8, 0xfd78, 0xf92c,
+ 0xf961, 0xf746, 0xf733, 0xf462, 0xeb5d, 0xea7e,
+ 0xee24, 0xf0c0, 0xfcae, 0x069f, 0x02ff, 0xff84,
+ 0xffb0, 0xfd63, 0xfb16, 0xfa1b, 0xf7c5, 0xf363,
+ 0xf4f9, 0xfd3e, 0xfcaf, 0xf8ad, 0xfe7a, 0xff5a,
+ 0xfb16, 0x00e9, 0x043f, 0xff2c, 0xff78, 0x0318,
+ 0x0412, 0x023a, 0xfc7e, 0xf97d, 0xfb24, 0xf816,
+ 0xf005, 0xed9c, 0xf44c, 0xf93a, 0xf798, 0xf8b3,
+ 0xfa2e, 0xf5b4, 0xf552, 0xfa2e, 0xf9ee, 0xf664,
+ 0xf1e3, 0xeaa7, 0xe96a, 0xf459, 0xff21, 0xff85,
+ 0xfe36, 0xfd26, 0xf5c3, 0xf6ab, 0x044a, 0x0543,
+ 0xf931, 0xf2f9, 0xf074, 0xf183, 0xf7c2, 0xf888,
+ 0xf72c, 0xfb7a, 0xfd92, 0xfbef, 0xff19, 0x050c,
+ 0x02a4, 0xf9bd, 0xf678, 0xf5fd, 0xf5c1, 0xfaa8,
+ 0xf7a3, 0xef39, 0xf8e8, 0x0555, 0x0087, 0xf926,
+ 0xf2b4, 0xee17, 0xf34f, 0xf4f7, 0xf145, 0xf26a,
+ 0xefa4, 0xeea0, 0xf6d1, 0xf8c4, 0xf8f7, 0xfd3f,
+ 0xf526, 0xea3a, 0xed01, 0xf150, 0xf2a5, 0xf48e,
+ 0xf161, 0xedff, 0xf0c0, 0xf436, 0xf644, 0xf53d,
+ 0xee5e, 0xe7b1, 0xe4af, 0xe415, 0xe925, 0xee18,
+ 0xead7, 0xeb57, 0xf549, 0xf9ec, 0xf78a, 0xf4ee,
+ 0xf031, 0xede4, 0xeef8, 0xed31, 0xf004, 0xf7b0,
+ 0xf851, 0xf7d3, 0xfa53, 0xf56a, 0xed94, 0xed28,
+ 0xf052, 0xf215, 0xf2f6, 0xf2ab, 0xef56, 0xed3a,
+ 0xf25f, 0xf67d, 0xf27a, 0xed9b, 0xe842, 0xe2ae,
+ 0xe571, 0xe9e8, 0xe969, 0xedd2, 0xf482, 0xf2ed,
+ 0xef45, 0xf04f, 0xf0e6, 0xeefd, 0xefba, 0xf13d,
+ 0xef45, 0xf232, 0xf86c, 0xf2a4, 0xec21, 0xf3b2,
+ 0xf58b, 0xe996, 0xe43d, 0xe9c0, 0xefe3, 0xf489,
+ 0xf7e4, 0xf6b5, 0xf166, 0xf0e3, 0xf50d, 0xf2ac,
+ 0xf1ab, 0xfbed, 0x0138, 0xfc5e, 0xf9dd, 0xf4e6,
+ 0xeade, 0xeb0f, 0xf527, 0xf77a, 0xf130, 0xf0b2,
+ 0xf34c, 0xee5a, 0xecab, 0xf3fa, 0xf447, 0xedee,
+ 0xed6a, 0xef7a, 0xf0e5, 0xf37f, 0xf5fa, 0xf91c,
+ 0xf994, 0xf533, 0xf3da, 0xf7d2, 0xfdf1, 0x0273,
+ 0xfd52, 0xf592, 0xf7c7, 0xf843, 0xf034, 0xee46,
+ 0xf3d9, 0xf73a, 0xf7bd, 0xf4dd, 0xeda0, 0xe7ee,
+ 0xeaa0, 0xf20c, 0xf302, 0xf05d, 0xf31c, 0xf40b,
+ 0xf24d, 0xf7b0, 0xfda6, 0xfdbe, 0xf9b3, 0xef1d,
+ 0xea2f, 0xf2ae, 0xf697, 0xf576, 0xf8c3, 0xf671,
+ 0xf281, 0xf40d, 0xf201, 0xf3a2, 0xf8e3, 0xf302,
+ 0xf12a, 0xf97b, 0xf7e1, 0xf499, 0xf9d9, 0xfc75,
+ 0xfda0, 0xfb68, 0xf2d5, 0xf219, 0xf559, 0xf24b,
+ 0xf28d, 0xf3c0, 0xf0f2, 0xf35a, 0xf5b6, 0xf2e7,
+ 0xf632, 0xfe62, 0x00ce, 0xfdf9, 0xfba7, 0xfadd,
+ 0xf7d9, 0xf3a3, 0xf2de, 0xf4e4, 0xf7ad, 0xf653,
+ 0xf034, 0xf269, 0xfb6a, 0xfa2a, 0xf363, 0xf371,
+ 0xf667, 0xf7db, 0xf96c, 0xfc17, 0xfc38, 0xf9be,
+ 0xfdff, 0x032d, 0xfe50, 0xfc89, 0x003f, 0xfe34,
+ 0xfd6b, 0xf9fa, 0xf044, 0xf410, 0xfc10, 0xf928,
+ 0xfde0, 0x0346, 0xfc46, 0xfca2, 0xfec6, 0xf7de,
+ 0xfaee, 0x0144, 0xfe12, 0xffee, 0x035d, 0xff22,
+ 0xfd82, 0xffaa, 0x0144, 0x01a5, 0xff1d, 0xfdb8,
+ 0xf9d0, 0xf00b, 0xf00a, 0xf9d4, 0xfb58, 0xf7ce,
+ 0xf894, 0xf8e3, 0xf782, 0xf998, 0xfe84, 0xffa9,
+ 0xfc47, 0xfa84, 0xfa3d, 0xfa21, 0xfbb3, 0xfad6,
+ 0xf96a, 0xfc6c, 0xfe30, 0xff8d, 0x02b0, 0xfe19,
+ 0xf5d3, 0xf48b, 0xf5c0, 0xf562, 0xf210, 0xf15a,
+ 0xfea1, 0x0827, 0xfda3, 0xf7a8, 0xfc43, 0xf9c5,
+ 0xfa5b, 0x008f, 0xfd9c, 0xfb16, 0xfed1, 0xfe0d,
+ 0xfd13, 0x0096, 0x03fe, 0x0768, 0x0901, 0x06d2,
+ 0x0264, 0xfbc3, 0xf871, 0xfce3, 0x0253, 0x0249,
+ 0xffac, 0x0292, 0x0805, 0x044f, 0xfeba, 0x00f0,
+ 0x0132, 0x0064, 0x0344, 0xfe93, 0xf798, 0xfbbd,
+ 0x0270, 0x039f, 0xff6c, 0xf778, 0xf3e8, 0xf4f0,
+ 0xf539, 0xf58a, 0xf456, 0xf4c9, 0xf8b1, 0xf78e,
+ 0xf83d, 0x0072, 0xff64, 0xf6a5, 0xf515, 0xf567,
+ 0xf675, 0xfdbd, 0x036f, 0x02ff, 0x0069, 0xfd37,
+ 0xfa1c, 0xf922, 0xfc46, 0xff3e, 0xfc94, 0xf8a4,
+ 0xf658, 0xf4dd, 0xf72b, 0xfaa1, 0xfbf6, 0xfd47,
+ 0xfb8d, 0xf553, 0xefcb, 0xefe9, 0xf625, 0xf8d3,
+ 0xf515, 0xf5ac, 0xf7e3, 0xf69f, 0xf831, 0xf920,
+ 0xf9c7, 0x0131, 0x05b2, 0x0456, 0x04a6, 0x0156,
+ 0xfb4e, 0xf9a5, 0xf868, 0xf5e0, 0xf409, 0xf518,
+ 0xf997, 0xf9f6, 0xf8d4, 0xfe46, 0x0228, 0x01a2,
+ 0x012b, 0xfe37, 0xff46, 0x067e, 0x0781, 0x038d,
+ 0x0010, 0xf924, 0xf524, 0xfa95, 0xfe87, 0xfacd,
+ 0xfc7a, 0x0691, 0x087c, 0x054b, 0x0bea, 0x11da,
+ 0x1040, 0x0e45, 0x0720, 0xff1e, 0xfe4d, 0xfb58,
+ 0xf87b, 0xfbca, 0xfe24, 0x018d, 0x06c0, 0x0a97,
+ 0x10b2, 0x1119, 0x0a5e, 0x0673, 0xfed9, 0xf8be,
+ 0xff1c, 0x00ff, 0xfc9a, 0xfea1, 0xfe95, 0xfdde,
+ 0x00c1, 0xfcab, 0xfb4b, 0x0417, 0x04ed, 0xff26,
+ 0x0236, 0x0668, 0x0186, 0xfd19, 0x009f, 0x02c9,
+ 0xfe9e, 0xfadf, 0xf9ba, 0xfc7a, 0x0441, 0x0b14,
+ 0x0dd7, 0x0a17, 0x02bf, 0x06a0, 0x0ff6, 0x0e97,
+ 0x0c0f, 0x0acd, 0x02d2, 0x014b, 0x0685, 0x03a5,
+ 0x02bc, 0x0973, 0x082f, 0x02ed, 0x085f, 0x0f3e,
+ 0x0c9d, 0x08b4, 0x066b, 0x02f5, 0x051e, 0x08e9,
+ 0x0615, 0x0570, 0x0614, 0x019d, 0x011c, 0x0076,
+ 0xf97b, 0xf98b, 0xfecf, 0xff31, 0xff20, 0xfddc,
+ 0xfbda, 0xfe90, 0x01f3, 0x0360, 0x01b2, 0xff67,
+ 0x052f, 0x08b7, 0x016a, 0xff94, 0x031d, 0x0087,
+ 0xff77, 0x02c9, 0x053c, 0x0719, 0x0602, 0x0275,
+ 0x024d, 0x0750, 0x0b14, 0x0590, 0xfff5, 0x038d,
+ 0x041b, 0x013a, 0x0558, 0x0874, 0x087d, 0x0b46,
+ 0x0afa, 0x08ae, 0x0a03, 0x0c42, 0x0bcd, 0x041c,
+ 0xfb4f, 0xfc7b, 0xff41, 0xfde4, 0xfe85, 0xfe95,
+ 0x005c, 0x0579, 0x0330, 0xff03, 0x0293, 0x04e8,
+ 0x04ed, 0x0638, 0x0259, 0xfdc1, 0xff83, 0xffdb,
+ 0xfcf1, 0xfeba, 0x02c9, 0x0308, 0x052f, 0x0b6a,
+ 0x0aad, 0x0448, 0x057c, 0x0906, 0x04ba, 0xffc2,
+ 0xfe8f, 0xfd2a, 0xfc06, 0xfb18, 0xfb63, 0xffb3,
+ 0x02c6, 0x02f6, 0x06be, 0x0ab9, 0x09d7, 0x078a,
+ 0x03ac, 0x00af, 0x0357, 0x0483, 0x0363, 0x07ae,
+ 0x0a79, 0x0821, 0x0830, 0x0764, 0x04b4, 0x05a2,
+ 0x05f3, 0x0606, 0x09de, 0x0b61, 0x0906, 0x0579,
+ 0x0322, 0x08e5, 0x0fea, 0x0c34, 0x06ac, 0x0727,
+ 0x07ea, 0x06d6, 0x0464, 0x03b4, 0x0813, 0x0b5c,
+ 0x09f4, 0x0710, 0x0363, 0x00cb, 0xfffb, 0xffc9,
+ 0x03ba, 0x0b09, 0x0f54, 0x0f3f, 0x0cd7, 0x0af3,
+ 0x0ab3, 0x097f, 0x0776, 0x06ff, 0x0877, 0x08e9,
+ 0x040a, 0xffab, 0x0354, 0x069e, 0x0576, 0x0895,
+ 0x0c9e, 0x09be, 0x04ad, 0x026d, 0x02fb, 0x03ec,
+ 0x020b, 0x0033, 0x0121, 0x01da, 0x021b, 0x036f,
+ 0x054d, 0x05f3, 0x0269, 0xff31, 0x03cc, 0x0874,
+ 0x058c, 0x0535, 0x09fd, 0x075d, 0xfe1b, 0xfade,
+ 0xfe2e, 0x0020, 0xffd0, 0x0023, 0x0023, 0x000c,
+ 0x02aa, 0x05b9, 0x0693, 0x06da, 0x04f2, 0x01fe,
+ 0x03ee, 0x05e5, 0x02d6, 0x021b, 0x044e, 0x04d2,
+ 0x05ac, 0x03e8, 0xff9e, 0x01d0, 0x05af, 0x0176,
+ 0xfbe2, 0xfc13, 0xfe7a, 0xfe6d, 0xfc87, 0xfe9e,
+ 0x0401, 0x033e, 0xfc8e, 0xf9ec, 0xfc7e, 0xfddb,
+ 0xfed2, 0x0301, 0x0523, 0x0307, 0x0323, 0x039c,
+ 0x017f, 0x0272, 0x03dd, 0x026d, 0x04bb, 0x0794,
+ 0x0446, 0x0168, 0x02e0, 0x03ed, 0x0346, 0x03cd,
+ 0x05b5, 0x059e, 0x0653, 0x0b41, 0x0b0d, 0x033c,
+ 0xff21, 0xff79, 0x00d8, 0x05f3, 0x0b1e, 0x0c28,
+ 0x09e8, 0x05f0, 0x043a, 0x02d8, 0xffbc, 0x02be,
+ 0x08ec, 0x08bb, 0x06fe, 0x06a7, 0x068a, 0x0a09,
+ 0x0b4a, 0x0776, 0x073b, 0x07e5, 0x050e, 0x048d,
+ 0x0547, 0x0544, 0x0626, 0x03a3, 0x0047, 0x017b,
+ 0x02a0, 0x04b3, 0x08c6, 0x06f4, 0x0424, 0x065f,
+ 0x04c2, 0x0151, 0x02ee, 0x03cf, 0x04e9, 0x071a,
+ 0x036b, 0x01c0, 0x07c9, 0x0b3c, 0x0c73, 0x0db6,
+ 0x0b4f, 0x0c24, 0x0d55, 0x05a8, 0x02ab, 0x0875,
+ 0x07aa, 0x048f, 0x0662, 0x067c, 0x0845, 0x0c49,
+ 0x08d7, 0x0489, 0x08de, 0x0db0, 0x0c4e, 0x0851,
+ 0x05db, 0x06fb, 0x099e, 0x085d, 0x0230, 0xfd51,
+ 0xfee7, 0x032d, 0x04ff, 0x05a4, 0x05ef, 0x046a,
+ 0x0218, 0x000c, 0x0027, 0x0427, 0x071f, 0x063c,
+ 0x078b, 0x0b81, 0x0b4c, 0x0705, 0x0407, 0x046b,
+ 0x0687, 0x0732, 0x0546, 0x0241, 0x00e6, 0x0303,
+ 0x0464, 0x016f, 0xffba, 0x018b, 0x01b4, 0x0206,
+ 0x0694, 0x0a39, 0x088a, 0x0597, 0x056c, 0x0690,
+ 0x0688, 0x04a0, 0x0150, 0xfe62, 0xfaeb, 0xf698,
+ 0xf8eb, 0x0066, 0xfff3, 0xfc2f, 0x0068, 0x04b1,
+ 0x02f1, 0xffa3, 0xfc8e, 0xfc2f, 0xfc59, 0xf9dd,
+ 0xfc0b, 0x018f, 0x029b, 0x03d9, 0x053c, 0x0231,
+ 0xfeb6, 0xf9e1, 0xf4df, 0xf6df, 0xfa70, 0xfb31,
+ 0xfd46, 0xfdc7, 0xfd6c, 0x001a, 0x0004, 0xfcd8,
+ 0xfce6, 0xff21, 0x0145, 0x032c, 0x0400, 0x03de,
+ 0x0341, 0x02ea, 0x0090, 0xfa8d, 0xf7f8, 0xfbf4,
+ 0x001d, 0x027a, 0x0389, 0x03c2, 0x05fc, 0x053c,
+ 0xfd72, 0xf99d, 0xfe7b, 0xffce, 0xf9dc, 0xf773,
+ 0xfaa2, 0xfbcf, 0xfc96, 0x00af, 0x0339, 0x039b,
+ 0x02d6, 0xfd80, 0xfaac, 0x0018, 0x01ce, 0xfab1,
+ 0xf500, 0xf4f6, 0xf5a0, 0xf46f, 0xf74c, 0x001f,
+ 0x048b, 0x04d2, 0x07f4, 0x0438, 0xfa26, 0xf98b,
+ 0xfc39, 0xf92f, 0xf872, 0xf810, 0xf599, 0xf8fa,
+ 0xfdcc, 0xfe9f, 0x006e, 0x01e4, 0x00b8, 0xfe96,
+ 0xfc4f, 0xfe91, 0x0304, 0x0293, 0x01cf, 0x0000,
+ 0xf9d5, 0xfaf7, 0x00f9, 0xff46, 0xff19, 0x02d4,
+ 0x003c, 0xfead, 0x0126, 0x0123, 0x03f3, 0x072c,
+ 0x04d5, 0x039e, 0xff8c, 0xf6b0, 0xf822, 0xfff1,
+ 0x003d, 0xfe47, 0xfd3e, 0xfc58, 0x008b, 0x04af,
+ 0x0234, 0xfd32, 0xfa35, 0xfcf3, 0x0101, 0xfd00,
+ 0xf872, 0xfa85, 0xfa9e, 0xf9b2, 0xfce0, 0xfd79,
+ 0xfaac, 0xf91f, 0xf933, 0xfb78, 0xfb24, 0xf660,
+ 0xf624, 0xf8da, 0xf79a, 0xf778, 0xf8f5, 0xf85b,
+ 0xfa1c, 0xfd5c, 0xfd04, 0xfc03, 0xfdfc, 0x0083,
+ 0xfe0a, 0xf838, 0xf831, 0xfbc9, 0xfb6e, 0xfa1e,
+ 0xf880, 0xf5e1, 0xf74c, 0xf8aa, 0xf5a5, 0xf4bd,
+ 0xf6a2, 0xf988, 0xff14, 0x01ac, 0xff03, 0xfdd3,
+ 0xff28, 0xff62, 0xfde5, 0xfbf7, 0xfa7e, 0xf9d3,
+ 0xfc2e, 0xff75, 0xfd03, 0xf854, 0xf766, 0xf6d8,
+ 0xf6e5, 0xf9dc, 0xfab7, 0xf6e2, 0xf35c, 0xf757,
+ 0xff9a, 0xfe15, 0xf5fd, 0xf6a8, 0xfaaf, 0xf8c7,
+ 0xf619, 0xf488, 0xf4a1, 0xf8e3, 0xfbcd, 0xfb45,
+ 0xfca4, 0xffd1, 0x01b1, 0x0027, 0xf95b, 0xf0e1,
+ 0xed84, 0xefcb, 0xf251, 0xf4ff, 0xfbcf, 0x00b5,
+ 0xfd74, 0xf9dd, 0xfa75, 0xfa59, 0xf975, 0xf817,
+ 0xf4fa, 0xf2f0, 0xf151, 0xef36, 0xf06e, 0xf27f,
+ 0xf315, 0xf6eb, 0xfb6a, 0xfcd4, 0xffd6, 0x02bd,
+ 0x02c7, 0x04e6, 0x0451, 0xfbb2, 0xf601, 0xf877,
+ 0xfc6e, 0xff7d, 0x0028, 0xfecf, 0xfe70, 0xfdad,
+ 0xff63, 0x035b, 0x0003, 0xfd03, 0x040f, 0x0659,
+ 0x0278, 0x0620, 0x07c3, 0x0055, 0xfb54, 0xf9a5,
+ 0xf804, 0xf90c, 0xfb6b, 0xff46, 0x03c7, 0x055e,
+ 0x0725, 0x0895, 0x05ed, 0x04e7, 0x065c, 0x0592,
+ 0x0648, 0x0769, 0x040f, 0x01f9, 0x01d1, 0xfddb,
+ 0xfb4a, 0xfd23, 0xfdeb, 0xff79, 0x02c8, 0x017e,
+ 0xfe0d, 0xfeb4, 0xff9b, 0xfd56, 0xfb84, 0xfb3f,
+ 0xfb21, 0xfd9d, 0x02a1, 0x0335, 0xfe7e, 0xfb2e,
+ 0xf8ff, 0xf715, 0xfa5d, 0xff6a, 0x0003, 0xfdc4,
+ 0xf98c, 0xf6bc, 0xf953, 0xfb83, 0xfc2d, 0xfee7,
+ 0xfe94, 0xfc4c, 0xfd91, 0xff4d, 0x023e, 0x03d7,
+ 0xfc03, 0xf55a, 0xf8f7, 0xfba3, 0xfcb9, 0x0233,
+ 0x03e7, 0x0100, 0x0175, 0x0161, 0xfe0c, 0xffba,
+ 0x06a7, 0x08e4, 0x057f, 0x03bb, 0x0425, 0x03a9,
+ 0x0316, 0x02c9, 0x019a, 0x005b, 0x017b, 0x039b,
+ 0x003c, 0xf8d6, 0xf739, 0xfa16, 0xf902, 0xf581,
+ 0xf5e7, 0xfb85, 0x0150, 0x0318, 0x03c9, 0x031d,
+ 0xfe89, 0xfbf3, 0xfcae, 0xfb49, 0xfa34, 0xfc0c,
+ 0xfecb, 0x00e1, 0xfed1, 0xfb3f, 0xfcbd, 0xfeed,
+ 0xfdad, 0xfc43, 0xfaed, 0xfa73, 0xfbb0, 0xfc47,
+ 0xfd56, 0xfdbc, 0xfa97, 0xf84d, 0xf770, 0xf5f4,
+ 0xf904, 0xfda6, 0xfcc9, 0xfce4, 0xfff2, 0xfd8a,
+ 0xf880, 0xf89f, 0xfb0d, 0xface, 0xfa21, 0xfd97,
+ 0x010f, 0xfd69, 0xf8ad, 0xf9ab, 0xfaf5, 0xfba3,
+ 0xfd6a, 0xfabb, 0xf69b, 0xf749, 0xf8d8, 0xfbfb,
+ 0x00fe, 0xff20, 0xf9a7, 0xf988, 0xfa3c, 0xf908,
+ 0xfa76, 0xfeb6, 0x0320, 0x055a, 0x0582, 0x04b3,
+ 0x00ac, 0xfb31, 0xf835, 0xf4c9, 0xf0a1, 0xefd3,
+ 0xf107, 0xf2ea, 0xf733, 0xfba8, 0xfd8e, 0x00a8,
+ 0x0662, 0x0512, 0xfbf7, 0xfa5a, 0xffb7, 0xff93,
+ 0xfe9f, 0x0186, 0x02eb, 0x0290, 0xfe68, 0xf7ad,
+ 0xf883, 0xfe86, 0x025d, 0x05da, 0x05f2, 0x01c5,
+ 0x011e, 0x021a, 0xfd57, 0xf728, 0xf9ad, 0x0158,
+ 0x0067, 0xfb0c, 0xfd47, 0xff36, 0xfc94, 0xfcba,
+ 0xfa63, 0xf53b, 0xf738, 0xfa22, 0xf78c, 0xf770,
+ 0xfb3e, 0xfdd0, 0xfdd6, 0xfc03, 0xfa68, 0xf82d,
+ 0xf2c4, 0xee35, 0xef6d, 0xf477, 0xf88a, 0xf899,
+ 0xf5ae, 0xf50c, 0xf8a3, 0xfa97, 0xf8e9, 0xf9a6,
+ 0xfb4f, 0xf7e6, 0xf4d4, 0xf74e, 0xfadc, 0xfd4d,
+ 0xfe8a, 0xfc21, 0xf7ac, 0xf5f4, 0xf7ba, 0xf98d,
+ 0xf9ff, 0xfa12, 0xf897, 0xf763, 0xfae2, 0xff29,
+ 0xff4e, 0xfe70, 0xfd50, 0xf888, 0xf31f, 0xf57f,
+ 0xfe97, 0x03b5, 0x057b, 0x08cd, 0x05da, 0xfeed,
+ 0xfdfb, 0xfb0a, 0xf5b8, 0xf93d, 0xfd96, 0xfc66,
+ 0xfc79, 0xfb67, 0xf872, 0xf733, 0xf472, 0xf357,
+ 0xf761, 0xfb35, 0xfe88, 0x00d9, 0xff50, 0x002a,
+ 0x050f, 0x0560, 0x00df, 0xfda5, 0xf954, 0xf1fe,
+ 0xf1fd, 0xfb71, 0xff3b, 0xfc1d, 0xfcb5, 0xfd6c,
+ 0xfd87, 0x0276, 0x03e8, 0xff00, 0xfca7, 0xfc29,
+ 0xfb52, 0xfbff, 0xfb2f, 0xf942, 0xf994, 0xfa80,
+ 0xfb88, 0xfe6e, 0x039c, 0x09b2, 0x0b31, 0x062b,
+ 0x027c, 0x02b1, 0xffe3, 0xfc9d, 0xff84, 0x0296,
+ 0x0449, 0x09f8, 0x0a85, 0x03b0, 0x04a1, 0x097f,
+ 0x05d9, 0x01b0, 0x01a9, 0xff8a, 0xfd4f, 0xfe09,
+ 0xff23, 0xfed9, 0xfdd8, 0xfd66, 0xfbdf, 0xf828,
+ 0xf4ca, 0xf34f, 0xf467, 0xf5db, 0xf518, 0xf5a8,
+ 0xf78e, 0xfa4e, 0x00db, 0x00e9, 0xf736, 0xf421,
+ 0xf5e4, 0xf493, 0xf8b7, 0xfd82, 0xfcc6, 0xfebc,
+ 0xfe5c, 0xf94b, 0xf9f0, 0xfbbc, 0xf9a0, 0xf76b,
+ 0xf335, 0xf01b, 0xf0c3, 0xf05b, 0xf2f4, 0xf94e,
+ 0xfa9b, 0xf936, 0xfbdd, 0x00a5, 0x02ae, 0x0015,
+ 0xfdb2, 0xfece, 0xffb6, 0x000e, 0x0122, 0x00fd,
+ 0x0033, 0x00a7, 0x01b5, 0x0023, 0xfbd7, 0xfaf1,
+ 0xfd29, 0xfda8, 0xff02, 0xffb2, 0xfd07, 0xfe26,
+ 0x0156, 0xff53, 0xfdea, 0x002c, 0x0214, 0x0465,
+ 0x0548, 0x028e, 0x0030, 0xff96, 0x000a, 0x0083,
+ 0xfd72, 0xf89c, 0xf707, 0xf838, 0xfaab, 0xfd1f,
+ 0xfda9, 0xfe89, 0x008d, 0xfff0, 0xfdaf, 0xfc5a,
+ 0xfaa2, 0xfad8, 0xfd7a, 0xfca5, 0xfa70, 0xfc7e,
+ 0xfef3, 0xfee9, 0xfde4, 0xfce5, 0xfebb, 0x0087,
+ 0xfd8e, 0xfadc, 0xf9e7, 0xf7bf, 0xf86f, 0xfaf9,
+ 0xfbdd, 0xfe97, 0x01a7, 0x0312, 0x051b, 0x0467,
+ 0x00f5, 0xfe0d, 0xfaaa, 0xfbc7, 0x017e, 0x01b1,
+ 0xff78, 0x0179, 0x03a8, 0x068c, 0x0a58, 0x0a4b,
+ 0x0929, 0x0909, 0x0766, 0x06b2, 0x082b, 0x0772,
+ 0x0186, 0xfa9c, 0xfa5e, 0xfea7, 0x00d2, 0x034f,
+ 0x0690, 0x0680, 0x070d, 0x0a51, 0x0913, 0x01bd,
+ 0xfcb3, 0xfe8e, 0x0218, 0x031b, 0x0390, 0x0442,
+ 0x0530, 0x05b2, 0x01fc, 0xfd65, 0xfed7, 0x0222,
+ 0x0328, 0x0517, 0x06be, 0x0623, 0x057e, 0x04b0,
+ 0x0330, 0x02a9, 0x038d, 0x052e, 0x06a9, 0x070a,
+ 0x05bf, 0x0405, 0x046a, 0x05c5, 0x05de, 0x0570,
+ 0x0325, 0x0028, 0x01f8, 0x055e, 0x0526, 0x04d2,
+ 0x0418, 0x00b9, 0x0010, 0x031c, 0x04a3, 0x04ad,
+ 0x069b, 0x0a28, 0x09f8, 0x04ad, 0x0192, 0x0149,
+ 0xfec3, 0xfea5, 0x031e, 0x0556, 0x04be, 0x03a9,
+ 0x025a, 0x02e1, 0x027b, 0x009d, 0x03ae, 0x068a,
+ 0x032f, 0x0392, 0x0862, 0x077d, 0x04c6, 0x0405,
+ 0x014c, 0x01b5, 0x0579, 0x039c, 0x00b9, 0x0158,
+ 0xfd1b, 0xf73c, 0xf8c2, 0xfc49, 0xfe3e, 0x00df,
+ 0x0157, 0x0166, 0x04c2, 0x0806, 0x0a1e, 0x09ac,
+ 0x03d8, 0xff56, 0xfee6, 0xfbd3, 0xf9e3, 0xfee1,
+ 0x04d7, 0x07dd, 0x07cb, 0x03ea, 0x013d, 0x02b9,
+ 0x04bd, 0x076f, 0x0b5e, 0x0bf8, 0x0886, 0x0600,
+ 0x06a6, 0x0847, 0x0844, 0x0638, 0x04d3, 0x0652,
+ 0x077e, 0x053d, 0x02e1, 0x026d, 0x01f1, 0x022d,
+ 0x02f0, 0x01d6, 0x00ef, 0x024b, 0x0305, 0x01a5,
+ 0x0025, 0xffb9, 0x00c0, 0x0454, 0x0931, 0x0b9a,
+ 0x0b60, 0x097f, 0x04ac, 0x00a7, 0x0184, 0x0261,
+ 0x00ed, 0x015d, 0x0404, 0x0705, 0x0864, 0x0613,
+ 0x03af, 0x0511, 0x07b8, 0x0794, 0x02f1, 0xfe25,
+ 0xfee6, 0x025c, 0x05ba, 0x0a76, 0x0bdf, 0x07bd,
+ 0x04c4, 0x03a5, 0x01c1, 0x0300, 0x067b, 0x0678,
+ 0x0581, 0x0638, 0x04d1, 0x02cd, 0x02ed, 0x017d,
+ 0x00c2, 0x04f4, 0x070a, 0x0448, 0x03a4, 0x0427,
+ 0x0232, 0x016f, 0x0221, 0x0025, 0xfde5, 0x019b,
+ 0x0856, 0x089b, 0x03a1, 0x01c4, 0x0369, 0x0616,
+ 0x08e0, 0x0988, 0x0885, 0x0660, 0x02ef, 0x0107,
+ 0xff9c, 0xfde3, 0xff17, 0xfdec, 0xf7f8, 0xf74c,
+ 0xfb80, 0xfd3e, 0xffc6, 0x03b0, 0x0530, 0x0665,
+ 0x0779, 0x0696, 0x060e, 0x06f4, 0x0826, 0x07e2,
+ 0x0363, 0xfd46, 0xfcc1, 0x00f3, 0x0244, 0x0101,
+ 0x01ba, 0x01dd, 0x009e, 0x0200, 0x03d2, 0x0459,
+ 0x078d, 0x0bc7, 0x0d2d, 0x0d58, 0x0c5d, 0x0898,
+ 0x04c4, 0x0444, 0x04a3, 0x027a, 0x0191, 0x044f,
+ 0x058f, 0x04d2, 0x052d, 0x042f, 0x009e, 0xfcf3,
+ 0xfc87, 0x0171, 0x06c1, 0x0954, 0x0be1, 0x0a93,
+ 0x051d, 0x039f, 0x040c, 0x0275, 0x02bd, 0x041c,
+ 0x0639, 0x0a19, 0x09fb, 0x0681, 0x0545, 0x0437,
+ 0x0207, 0xfe34, 0xf7f5, 0xf68d, 0xfbe7, 0x004f,
+ 0x0362, 0x05fc, 0x03da, 0xffa0, 0xfebe, 0x000e,
+ 0x0185, 0x0500, 0x0bb8, 0x1055, 0x0dd9, 0x0915,
+ 0x06e7, 0x05cd, 0x0570, 0x0471, 0x00a8, 0xfee8,
+ 0x0298, 0x0716, 0x0986, 0x0a7b, 0x08f8, 0x05d2,
+ 0x0474, 0x05c5, 0x0827, 0x0a23, 0x098a, 0x05c5,
+ 0x0386, 0x0549, 0x0650, 0x04e1, 0x04f4, 0x076f,
+ 0x09d8, 0x0a0a, 0x082c, 0x06ba, 0x05ec, 0x04c2,
+ 0x03d8, 0x0250, 0x016a, 0x036a, 0x03be, 0x00df,
+ 0x0054, 0x014d, 0x0090, 0xfeda, 0xfc2e, 0xfc9d,
+ 0x029b, 0x0627, 0x048f, 0x0340, 0x011c, 0xfc2f,
+ 0xf886, 0xf9ab, 0xfea4, 0x027c, 0x039e, 0x0491,
+ 0x034d, 0xffca, 0xff51, 0x003d, 0xff1d, 0xff31,
+ 0x0151, 0x0305, 0x0437, 0x0428, 0x015e, 0xfdae,
+ 0xfc52, 0xfc40, 0xfa1c, 0xf754, 0xf732, 0xfaf0,
+ 0x02fc, 0x09c3, 0x0879, 0x03db, 0x02d5, 0x0403,
+ 0x04bd, 0x0434, 0x0388, 0x0495, 0x0583, 0x0654,
+ 0x092a, 0x0a1b, 0x0715, 0x0457, 0x02fc, 0x036b,
+ 0x077d, 0x0c08, 0x0e4b, 0x0ec9, 0x0ae5, 0x03d2,
+ 0x0225, 0x069a, 0x097a, 0x0a73, 0x0d16, 0x0ecd,
+ 0x0d6f, 0x0a1e, 0x05ef, 0x04cd, 0x084a, 0x0ad8,
+ 0x0ad5, 0x0be4, 0x0d63, 0x0da6, 0x0d60, 0x0c4e,
+ 0x0aa3, 0x0853, 0x0423, 0x00b0, 0x01ec, 0x0610,
+ 0x0928, 0x0a35, 0x0980, 0x07a6, 0x0597, 0x030a,
+ 0x0100, 0x023b, 0x0459, 0x037f, 0x046e, 0x09b1,
+ 0x0b12, 0x0708, 0x050d, 0x047d, 0x01a3, 0xff2b,
+ 0xfe42, 0xfd7e, 0xfcaa, 0xfbdb, 0xfc50, 0xfc61,
+ 0xf891, 0xf4fc, 0xf522, 0xf53d, 0xf633, 0xfa01,
+ 0xfbc4, 0xfaaa, 0xf9fa, 0xf94e, 0xf98b, 0xfbca,
+ 0xfd84, 0xfe4b, 0xff63, 0xfecc, 0xfb56, 0xf954,
+ 0xfb98, 0xfd62, 0xfc35, 0xfb2a, 0xf95a, 0xf70b,
+ 0xf90e, 0xfcf5, 0xfd5a, 0xfacc, 0xf76b, 0xf5ef,
+ 0xf61c, 0xf469, 0xf387, 0xf584, 0xf631, 0xf62d,
+ 0xf7bb, 0xf8e8, 0xf915, 0xf89f, 0xf992, 0xfd74,
+ 0x0022, 0x0143, 0x0473, 0x0646, 0x037e, 0xffaa,
+ 0xfe57, 0xfef9, 0xfeac, 0xfdff, 0xfed8, 0xffd7,
+ 0x01d0, 0x03b5, 0x018a, 0x0036, 0x032e, 0x0540,
+ 0x0520, 0x00fe, 0xf942, 0xf82b, 0xfd34, 0xff05,
+ 0xff5f, 0xff60, 0xfcfb, 0xfc63, 0xfe18, 0xffc4,
+ 0x02bd, 0x05f2, 0x0795, 0x0791, 0x05ae, 0x03e1,
+ 0x0369, 0x0290, 0x010e, 0x019e, 0x0505, 0x05fb,
+ 0x02be, 0x0078, 0xfdd4, 0xf89f, 0xf66f, 0xf759,
+ 0xf84d, 0xfa7a, 0xfbac, 0xfbb2, 0xfdf6, 0x0034,
+ 0x005d, 0xfeec, 0xfc3a, 0xfb4a, 0xfb88, 0xf9e3,
+ 0xf84b, 0xf86e, 0xfa64, 0xfc49, 0xf9ca, 0xf59e,
+ 0xf470, 0xf4b0, 0xf5bb, 0xf627, 0xf540, 0xf70e,
+ 0xf8c7, 0xf6cb, 0xf674, 0xf7f5, 0xf791, 0xf6b1,
+ 0xf58f, 0xf4b6, 0xf53f, 0xf58a, 0xf685, 0xf7ed,
+ 0xf807, 0xfa1d, 0xfd03, 0xfbe6, 0xfa66, 0xfb85,
+ 0xfb6f, 0xf88e, 0xf53d, 0xf58a, 0xfa7f, 0xfd86,
+ 0xfb69, 0xfb34, 0xfed3, 0xff30, 0xfc85, 0xfc28,
+ 0xfcb9, 0xfd1a, 0xfd2f, 0xf96d, 0xf53a, 0xf5d3,
+ 0xf724, 0xf68a, 0xf4ad, 0xf232, 0xf44c, 0xf9af,
+ 0xfaeb, 0xf9cf, 0xf97a, 0xf98a, 0xfc10, 0xff34,
+ 0xffbf, 0xfde1, 0xfa41, 0xf8bf, 0xf9cb, 0xfa07,
+ 0xfdba, 0x0410, 0x0520, 0x04c7, 0x0675, 0x042a,
+ 0xff4a, 0xfd3c, 0xfd2a, 0xfcf4, 0xfd52, 0x0030,
+ 0x0264, 0xff9b, 0xfbc4, 0xfa6a, 0xfa9c, 0xfd7e,
+ 0x010c, 0x017e, 0x018f, 0x0488, 0x07e4, 0x075e,
+ 0x04b3, 0x0527, 0x06e5, 0x0793, 0x0a0f, 0x0af3,
+ 0x065b, 0x012d, 0xfe59, 0xfcfe, 0xfc8b, 0xfb3f,
+ 0xfa6e, 0xfce8, 0x0117, 0x0407, 0x04c7, 0x0556,
+ 0x06da, 0x06a0, 0x049f, 0x0353, 0x0286, 0x012b,
+ 0xfe22, 0xfb62, 0xfc35, 0xfc9e, 0xfa33, 0xf916,
+ 0xf8c6, 0xf8c7, 0xfb11, 0xfc1c, 0xfbfa, 0xfef6,
+ 0x012a, 0xfe0b, 0xf9d4, 0xf9fe, 0xfc5f, 0xfa9e,
+ 0xf58f, 0xf298, 0xf2dc, 0xf6b6, 0xfcbd, 0x00c0,
+ 0x0300, 0x0450, 0x0328, 0x019b, 0x01a9, 0x0168,
+ 0xff29, 0xfcc9, 0xfd07, 0xfc43, 0xf7c9, 0xf64d,
+ 0xf920, 0xf9bf, 0xf875, 0xf80b, 0xf850, 0xf974,
+ 0xfa47, 0xfac7, 0xfca9, 0xff21, 0x00b2, 0x0003,
+ 0xfe34, 0xfe84, 0xff34, 0xfeab, 0xfe85, 0xfd91,
+ 0xfdff, 0x0296, 0x065b, 0x0736, 0x05de, 0x0089,
+ 0xfaea, 0xf856, 0xf722, 0xf7c0, 0xf86d, 0xf7af,
+ 0xf851, 0xf7e1, 0xf49d, 0xf2f5, 0xf2da, 0xf2a3,
+ 0xf357, 0xf4ae, 0xf7b9, 0xfc37, 0xff82, 0x01e8,
+ 0x019d, 0xfcb9, 0xf8d0, 0xf8cf, 0xf95b, 0xfab0,
+ 0xfd85, 0xfeb3, 0xfdab, 0xfc50, 0xf9ee, 0xf713,
+ 0xf761, 0xfa93, 0xfd87, 0xff85, 0xff71, 0xfd80,
+ 0xfc9b, 0xfbf3, 0xfa7b, 0xfa8f, 0xfbc6, 0xfd8b,
+ 0x011a, 0x040f, 0x04b3, 0x0600, 0x093c, 0x0b04,
+ 0x0917, 0x0726, 0x0755, 0x065c, 0x0554, 0x05bb,
+ 0x02ba, 0xfd83, 0xfc0d, 0xfc09, 0xf941, 0xf619,
+ 0xf758, 0xfc36, 0xff36, 0x00eb, 0x0313, 0x0101,
+ 0xfd4b, 0xfdc3, 0xfd06, 0xf8a9, 0xf5da, 0xf448,
+ 0xf2d7, 0xf380, 0xf67a, 0xfa87, 0xfcd9, 0xfc61,
+ 0xfac0, 0xf7d2, 0xf5c9, 0xf721, 0xf7ff, 0xf6d0,
+ 0xf633, 0xf5ac, 0xf515, 0xf4d8, 0xf397, 0xf25b,
+ 0xf2e9, 0xf46f, 0xf552, 0xf4cd, 0xf4bd, 0xf73f,
+ 0xfaba, 0xfc95, 0xfcbf, 0xfda7, 0x0000, 0x00e4,
+ 0x0052, 0x0068, 0xff6e, 0xfd5e, 0xfc81, 0xfc12,
+ 0xfc41, 0xfde2, 0xfefe, 0xff43, 0xffaf, 0xffee,
+ 0xff5e, 0xfd66, 0xfcc0, 0xfffd, 0x0259, 0x0135,
+ 0x00dd, 0x0130, 0xff81, 0xfdbb, 0xfcbf, 0xfb22,
+ 0xf90b, 0xf787, 0xf8e1, 0xfd48, 0xff77, 0xfdbb,
+ 0xfcd2, 0xfc66, 0xf905, 0xf639, 0xf73b, 0xf947,
+ 0xfb3b, 0xfd4e, 0xfe49, 0xff0c, 0x0041, 0x005a,
+ 0xff4e, 0xfec0, 0xffaf, 0x007c, 0xff90, 0x0066,
+ 0x041a, 0x04bf, 0x019d, 0xffc9, 0xffb0, 0xff66,
+ 0xff17, 0x001d, 0x02d8, 0x03ed, 0x0220, 0x01c9,
+ 0x03f7, 0x05aa, 0x05db, 0x04bd, 0x02a1, 0xff1d,
+ 0xfa9e, 0xf94b, 0xfbac, 0xfc6b, 0xfaa8, 0xf9d0,
+ 0xfabf, 0xfc32, 0xfd02, 0xfdac, 0xfeaf, 0xfeda,
+ 0xfed0, 0xffce, 0x007d, 0xffb6, 0xfd8d, 0xfc29,
+ 0xfe30, 0x00f6, 0x018e, 0x0185, 0x0025, 0xfd2e,
+ 0xfc51, 0xfc28, 0xf925, 0xf75b, 0xfaca, 0xfed1,
+ 0xff31, 0xffc7, 0x0287, 0x02e0, 0x015d, 0x017a,
+ 0x00cd, 0xff91, 0xfff9, 0xfeef, 0xfd5e, 0xfe95,
+ 0xff5f, 0xfea2, 0xfe7e, 0xfea9, 0x002d, 0x0286,
+ 0x0378, 0x0507, 0x070b, 0x06f0, 0x0623, 0x04ee,
+ 0x0343, 0x0383, 0x038e, 0x0142, 0xff6f, 0xfe93,
+ 0xfecd, 0x018e, 0x03e7, 0x0434, 0x0452, 0x02d3,
+ 0x002e, 0xffc6, 0xfeef, 0xfc15, 0xfbcd, 0xfcdb,
+ 0xfbe7, 0xfd73, 0x0283, 0x05a3, 0x064c, 0x05d5,
+ 0x043b, 0x03fa, 0x047d, 0x02f3, 0x0168, 0x0123,
+ 0x0005, 0xfd45, 0xf9dd, 0xf8d3, 0xfa4a, 0xf9cb,
+ 0xf8a0, 0xf9f8, 0xfa64, 0xf97a, 0xfa26, 0xfba9,
+ 0xfe15, 0x0016, 0xff1c, 0xff2a, 0x01de, 0x027e,
+ 0x017e, 0x0143, 0x00af, 0x0032, 0x0064, 0x0147,
+ 0x0384, 0x04f2, 0x037b, 0x0106, 0xff8d, 0xfec6,
+ 0xfdc1, 0xfd62, 0xff0c, 0x00b5, 0x00cb, 0x015a,
+ 0x02db, 0x0377, 0x02b9, 0x0257, 0x039b, 0x0452,
+ 0x031e, 0x0236, 0x01d8, 0x01fc, 0x03ad, 0x047e,
+ 0x045b, 0x05ab, 0x05a9, 0x0432, 0x0502, 0x05b0,
+ 0x0446, 0x02c6, 0x0023, 0xfd1e, 0xfd23, 0xff4c,
+ 0x01b1, 0x03ed, 0x04be, 0x038b, 0x00f2, 0xfef7,
+ 0x001e, 0x036f, 0x05b0, 0x060b, 0x05d8, 0x055c,
+ 0x02c2, 0xfe63, 0xfca5, 0xffb4, 0x04c2, 0x0851,
+ 0x08b3, 0x066a, 0x034c, 0x00cc, 0xff6c, 0xfec8,
+ 0xfe9d, 0xff07, 0xff14, 0xfe00, 0xfcbb, 0xfcad,
+ 0xfe85, 0x00e3, 0x01aa, 0x0214, 0x04e8, 0x08cc,
+ 0x098e, 0x06d9, 0x047a, 0x0345, 0x0155, 0x0063,
+ 0x028a, 0x05fa, 0x0860, 0x07f3, 0x046b, 0x00c8,
+ 0xff09, 0xfef0, 0x0061, 0x01da, 0x0290, 0x03f5,
+ 0x0510, 0x0471, 0x040a, 0x04b5, 0x04a7, 0x034d,
+ 0x0250, 0x03bc, 0x06c8, 0x081a, 0x06bd, 0x0432,
+ 0x01cc, 0x0140, 0x01ca, 0x0039, 0xff06, 0x024c,
+ 0x0591, 0x04a8, 0x0386, 0x0457, 0x0552, 0x05d4,
+ 0x04d5, 0x0313, 0x02fd, 0x023b, 0xfe8f, 0xfba2,
+ 0xfbed, 0xfdef, 0x0091, 0x034a, 0x056a, 0x0764,
+ 0x098f, 0x0a17, 0x082f, 0x0715, 0x082a, 0x08ad,
+ 0x07e5, 0x0700, 0x065a, 0x0623, 0x052a, 0x03bf,
+ 0x0473, 0x05f2, 0x060c, 0x05b0, 0x0543, 0x0631,
+ 0x08d1, 0x08a5, 0x05f1, 0x0661, 0x0902, 0x086f,
+ 0x0497, 0x02fe, 0x05ef, 0x081f, 0x07f1, 0x0a8c,
+ 0x0e90, 0x0eb5, 0x0ca9, 0x0be5, 0x0c19, 0x0bb3,
+ 0x0aa4, 0x0a06, 0x093b, 0x0875, 0x0993, 0x0a49,
+ 0x082b, 0x054f, 0x0349, 0x03b1, 0x06a4, 0x0821,
+ 0x08d6, 0x0b67, 0x0baa, 0x0802, 0x0408, 0x0132,
+ 0x00d1, 0x0249, 0x02a1, 0x0332, 0x04ce, 0x0483,
+ 0x025d, 0xffb7, 0xfd77, 0xfe28, 0x01b1, 0x0542,
+ 0x065f, 0x0328, 0xfe28, 0xfbec, 0xfc58, 0xfe13,
+ 0x005b, 0x00bc, 0xff07, 0xfd9a, 0xfdb6, 0xffb9,
+ 0x01db, 0x01be, 0x013a, 0x0297, 0x0419, 0x0459,
+ 0x0539, 0x07d0, 0x088e, 0x0423, 0xfe89, 0xfd86,
+ 0x00ad, 0x04e4, 0x0802, 0x0886, 0x07b7, 0x0798,
+ 0x070c, 0x05fc, 0x0775, 0x0b94, 0x0e52, 0x0d1c,
+ 0x08d0, 0x04b9, 0x03f5, 0x04b3, 0x03bf, 0x0388,
+ 0x05e5, 0x06f9, 0x04e6, 0x01de, 0x007b, 0x02b7,
+ 0x063b, 0x0677, 0x03d0, 0x0147, 0x008a, 0x01a3,
+ 0x0214, 0x0106, 0x0104, 0x025b, 0x0263, 0xffe2,
+ 0xfe05, 0xfff6, 0x020a, 0x01c2, 0x02a3, 0x03bf,
+ 0x038c, 0x0543, 0x0601, 0x030b, 0x02ff, 0x06b9,
+ 0x0770, 0x0503, 0x03d1, 0x0484, 0x04ee, 0x047e,
+ 0x04b7, 0x0590, 0x06f7, 0x0870, 0x06aa, 0x0393,
+ 0x0446, 0x0539, 0x034f, 0x02f7, 0x04e3, 0x05aa,
+ 0x0460, 0x0243, 0x0217, 0x03d9, 0x041b, 0x035f,
+ 0x0434, 0x053a, 0x052b, 0x0620, 0x085e, 0x08e2,
+ 0x0730, 0x04e5, 0x0200, 0x0054, 0x0145, 0x01f0,
+ 0x0263, 0x0486, 0x05c1, 0x0515, 0x0472, 0x043e,
+ 0x047e, 0x03e3, 0x01f4, 0x00ed, 0x004e, 0xff7a,
+ 0xffe7, 0x00ae, 0x0222, 0x04eb, 0x0674, 0x071c,
+ 0x06de, 0x0335, 0x0042, 0x01b6, 0x0395, 0x039e,
+ 0x0216, 0xff7c, 0xfee1, 0x0106, 0x02f6, 0x0368,
+ 0x0441, 0x06d8, 0x0793, 0x043e, 0x017c, 0x0172,
+ 0x0294, 0x0521, 0x075f, 0x085b, 0x0955, 0x0750,
+ 0x025b, 0x00a1, 0x0243, 0x02bd, 0x01ad, 0x0167,
+ 0x0322, 0x046b, 0x0268, 0xff42, 0xfe24, 0xff1a,
+ 0x006f, 0xfffa, 0xfe31, 0xfde5, 0xff52, 0x00d8,
+ 0x018e, 0x00e0, 0xff59, 0xfe5e, 0xfe36, 0xfec1,
+ 0x0041, 0x01d2, 0x01de, 0x009b, 0xfefd, 0xfcad,
+ 0xf914, 0xf58f, 0xf633, 0xfcc0, 0x0463, 0x0964,
+ 0x0cc3, 0x0d61, 0x0a74, 0x06e7, 0x03b1, 0x0142,
+ 0x01c3, 0x04d3, 0x084f, 0x0a26, 0x0992, 0x08cf,
+ 0x0890, 0x075d, 0x059b, 0x03bc, 0x02d4, 0x0461,
+ 0x0630, 0x062a, 0x049e, 0x0290, 0x0337, 0x062c,
+ 0x0772, 0x092b, 0x0c9e, 0x0d37, 0x0b04, 0x0831,
+ 0x0526, 0x04db, 0x0651, 0x053d, 0x040b, 0x0563,
+ 0x06ae, 0x0640, 0x0467, 0x03a1, 0x0652, 0x087e,
+ 0x0705, 0x06a3, 0x0966, 0x0a9d, 0x084f, 0x0592,
+ 0x05e9, 0x093b, 0x0a95, 0x07c0, 0x060c, 0x07e7,
+ 0x086a, 0x0621, 0x04fb, 0x055a, 0x04c9, 0x03d0,
+ 0x03df, 0x04d3, 0x06db, 0x08d1, 0x0788, 0x0404,
+ 0x02ce, 0x03e9, 0x0465, 0x03d2, 0x0327, 0x02dc,
+ 0x01d3, 0xffb0, 0xfff6, 0x0363, 0x0532, 0x0390,
+ 0x0077, 0xfe4b, 0xffba, 0x02fb, 0x03c1, 0x02d7,
+ 0x01a0, 0xff9e, 0xfffd, 0x0457, 0x077b, 0x0623,
+ 0x0353, 0x01c8, 0x0125, 0x013c, 0x0268, 0x033a,
+ 0x021b, 0x0095, 0x00f9, 0x0177, 0xfeac, 0xfae5,
+ 0xfc20, 0x020e, 0x05b7, 0x03bc, 0xff7f, 0xfbac,
+ 0xf7c5, 0xf4b8, 0xf40d, 0xf5ab, 0xf901, 0xfb43,
+ 0xfa1f, 0xf8dc, 0xf9ff, 0xfc1a, 0xfe43, 0xfe6b,
+ 0xfc82, 0xfcd3, 0xff2e, 0x0104, 0x0307, 0x03f2,
+ 0x02ec, 0x0109, 0xfdc2, 0xfca3, 0x003d, 0x02a5,
+ 0x0119, 0xfd98, 0xf8ea, 0xf758, 0xfa58, 0xfc38,
+ 0xfbc5, 0xfc8a, 0x000a, 0x0495, 0x0511, 0x00d8,
+ 0xfe3e, 0xff64, 0x0081, 0xff84, 0xfe62, 0xff86,
+ 0x0101, 0x0046, 0xff16, 0xfebc, 0xfe88, 0xfe8c,
+ 0xfe99, 0xfec5, 0xff91, 0xffe6, 0xfe5a, 0xfc3f,
+ 0xfd29, 0x004c, 0x008c, 0xfe8e, 0xfe28, 0xfef3,
+ 0x003f, 0x00b5, 0xfee2, 0xfe96, 0x0077, 0xffc6,
+ 0xfd2d, 0xfbe1, 0xfcc7, 0x0032, 0x02d1, 0x019d,
+ 0xfefc, 0xfd06, 0xfc16, 0xfbf7, 0xfafb, 0xfa31,
+ 0xfc44, 0xff17, 0xff1b, 0xfd13, 0xfb4b, 0xfa5f,
+ 0xfb52, 0xfdd6, 0xfd66, 0xf8a3, 0xf3ca, 0xf0c3,
+ 0xf00e, 0xf260, 0xf54b, 0xf797, 0xf948, 0xf909,
+ 0xf8a3, 0xf8d7, 0xf7bc, 0xf838, 0xfb1b, 0xfb98,
+ 0xf9ca, 0xf855, 0xf6fe, 0xf629, 0xf69c, 0xf8e3,
+ 0xfc1b, 0xfd4e, 0xfc0c, 0xf8ce, 0xf458, 0xf397,
+ 0xf7b7, 0xfbe0, 0xff37, 0x01df, 0x011e, 0xfda3,
+ 0xfa3b, 0xf853, 0xf8ca, 0xfa9d, 0xfc71, 0xfee6,
+ 0x01c9, 0x0308, 0x01d2, 0xff72, 0xfce6, 0xfb7a,
+ 0xfceb, 0xfed1, 0xfdd0, 0xfc83, 0xfd11, 0xfcca,
+ 0xfaa7, 0xf7e5, 0xf631, 0xf77d, 0xf9b4, 0xf9ea,
+ 0xfaa8, 0xfd2a, 0xfda4, 0xfb70, 0xf92b, 0xf6cc,
+ 0xf462, 0xf3b9, 0xf45f, 0xf59f, 0xf811, 0xfa16,
+ 0xfa67, 0xfa23, 0xf9f9, 0xfb9a, 0xff57, 0x0148,
+ 0x0117, 0x0185, 0x0187, 0x00b3, 0xffd8, 0xfe1e,
+ 0xfd0a, 0xfd87, 0xfd71, 0xfcdd, 0xfc64, 0xfc69,
+ 0xfefe, 0x0282, 0x03f0, 0x04c0, 0x05f0, 0x06e6,
+ 0x082b, 0x08e6, 0x081f, 0x067e, 0x0440, 0x025f,
+ 0x0223, 0x02f5, 0x03c5, 0x03b9, 0x02d4, 0x0234,
+ 0x011a, 0xff12, 0xff95, 0x0379, 0x05e2, 0x04c5,
+ 0x0248, 0xfee1, 0xfb35, 0xfa02, 0xfc32, 0x003e,
+ 0x0355, 0x02f0, 0x003a, 0xfdda, 0xfcef, 0xfe70,
+ 0x00e3, 0x00d4, 0xfe72, 0xfbab, 0xf8e1, 0xf6a1,
+ 0xf589, 0xf61f, 0xf7ef, 0xf8e1, 0xf954, 0xfac0,
+ 0xfb61, 0xfae6, 0xfb49, 0xfbba, 0xfb20, 0xfab6,
+ 0xfb5c, 0xfc93, 0xfd53, 0xfd07, 0xfbee, 0xfb28,
+ 0xfc3b, 0xfe25, 0xfea8, 0xff29, 0x01dc, 0x04eb,
+ 0x0503, 0x0284, 0x010e, 0x00dd, 0xffc1, 0xffeb,
+ 0x01ca, 0x0097, 0xfcde, 0xfaed, 0xfb03, 0xfcf2,
+ 0xffcf, 0x005f, 0xfe7e, 0xfbd1, 0xf8c1, 0xf77d,
+ 0xf997, 0xfb21, 0xf7e7, 0xf335, 0xf1a8, 0xf0c9,
+ 0xefe1, 0xf3ba, 0xfa1f, 0xfc31, 0xfa7e, 0xfa2d,
+ 0xfda0, 0x01c1, 0x0260, 0x01a5, 0x0212, 0x018f,
+ 0x0074, 0xff84, 0xfe03, 0xfeaa, 0x0178, 0x032f,
+ 0x0518, 0x067b, 0x0391, 0xff5b, 0xfe49, 0xfeba,
+ 0xfe20, 0xfcf7, 0xfd4d, 0xff92, 0x0283, 0x05c8,
+ 0x07fb, 0x076e, 0x064b, 0x05bb, 0x035f, 0x0041,
+ 0xffbe, 0x00f6, 0x0109, 0xff39, 0xfc57, 0xf9ea,
+ 0xf999, 0xfb50, 0xfd65, 0xfecd, 0xff25, 0xfe0b,
+ 0xfbf2, 0xfa83, 0xfaf4, 0xfbc5, 0xfb01, 0xfa89,
+ 0xfc35, 0xfdb5, 0xfd5c, 0xfc20, 0xfb01, 0xfa55,
+ 0xf8f6, 0xf6b7, 0xf5bc, 0xf685, 0xf8fd, 0xfc83,
+ 0xfdbd, 0xfd5e, 0xfe4a, 0xfd22, 0xf8fc, 0xf6f3,
+ 0xf801, 0xf9f3, 0xfaf4, 0xfa5d, 0xfb7f, 0xff36,
+ 0x0119, 0xff4c, 0xfbaa, 0xfa34, 0xfcd5, 0xfefa,
+ 0xfee0, 0xffad, 0x0017, 0xfea8, 0xfc75, 0xfa4c,
+ 0xfc70, 0x030f, 0x065c, 0x053f, 0x0481, 0x041f,
+ 0x0294, 0xffc7, 0xfdd2, 0xffac, 0x0269, 0x01ef,
+ 0xffd6, 0xfe1d, 0xfdc6, 0x0007, 0x0376, 0x0594,
+ 0x04b5, 0x0080, 0xfb9c, 0xf86a, 0xf6d0, 0xf78e,
+ 0xfaea, 0xfcfa, 0xfab4, 0xf7a5, 0xf7ad, 0xf91c,
+ 0xfa0f, 0xfa93, 0xfaf2, 0xfc82, 0xfd9b, 0xfba0,
+ 0xfa4d, 0xfc0e, 0xfde4, 0xfeff, 0xfe31, 0xfaa1,
+ 0xf891, 0xf8c9, 0xf882, 0xf8b8, 0xf929, 0xf86c,
+ 0xf83d, 0xf95a, 0xfb82, 0xfe29, 0xff45, 0xffae,
+ 0x0141, 0x0264, 0x02a7, 0x03c4, 0x04ed, 0x0482,
+ 0x0352, 0x0238, 0x00f1, 0x019c, 0x053e, 0x06fe,
+ 0x0512, 0x0370, 0x0190, 0xfde0, 0xfc31, 0xfdd5,
+ 0xff7c, 0xff1e, 0xfcfc, 0xfaf6, 0xfb44, 0xfd82,
+ 0xfed7, 0xfedd, 0xffe0, 0x0020, 0xfe02, 0xfe15,
+ 0x0034, 0xff79, 0xfdb4, 0xfd7f, 0xfe88, 0x0044,
+ 0xfeaa, 0xfb95, 0xfeaf, 0x0351, 0x0271, 0x000c,
+ 0xfe48, 0xfc5a, 0xfbb0, 0xfb84, 0xfc6a, 0xff37,
+ 0x0041, 0xfee3, 0xfe87, 0x0008, 0x01b9, 0x0258,
+ 0x035f, 0x0503, 0x042b, 0x01eb, 0x011b, 0x0028,
+ 0xfe71, 0xfc8f, 0xfacb, 0xfc07, 0x0006, 0x0274,
+ 0x0314, 0x036c, 0x0236, 0xff87, 0xfe78, 0x003c,
+ 0x01d2, 0x0196, 0x0185, 0x01ef, 0x01f0, 0x01e8,
+ 0x0162, 0x0006, 0xfe96, 0xfdef, 0xfec3, 0xff5d,
+ 0xfe52, 0xfe10, 0xff34, 0xff47, 0xfe2c, 0xfd8b,
+ 0xfe1e, 0xfef3, 0xff23, 0x0002, 0x01fe, 0x0399,
+ 0x0467, 0x0444, 0x0363, 0x0246, 0x0084, 0xff70,
+ 0x000d, 0x0034, 0xff9b, 0xff60, 0xfe86, 0xfd19,
+ 0xfc2d, 0xfc49, 0xfdf2, 0x0026, 0x0175, 0x0158,
+ 0xffc1, 0xfe41, 0xfe29, 0xff1f, 0x0096, 0x00e8,
+ 0x0011, 0x010c, 0x03c0, 0x051e, 0x039e, 0x0031,
+ 0xfe14, 0xfe46, 0xff3b, 0x01a1, 0x0478, 0x04c9,
+ 0x0350, 0x015c, 0x006d, 0x026e, 0x03e2, 0x01bd,
+ 0xff6e, 0xff67, 0x00e5, 0x0296, 0x0321, 0x02c2,
+ 0x011b, 0xfdd6, 0xfca9, 0xffea, 0x041b, 0x059d,
+ 0x04eb, 0x0482, 0x04a1, 0x043f, 0x043c, 0x04b0,
+ 0x048b, 0x041d, 0x03b2, 0x038e, 0x039f, 0x030a,
+ 0x0294, 0x01f7, 0x0026, 0xffc7, 0x0154, 0x02e2,
+ 0x0639, 0x09d3, 0x0937, 0x067f, 0x04f3, 0x041f,
+ 0x03cc, 0x049c, 0x072e, 0x0946, 0x07c0, 0x04f5,
+ 0x02b8, 0xffc2, 0xfe30, 0xfe15, 0xfcc1, 0xfcaf,
+ 0xff3e, 0x0118, 0x00a8, 0xfe46, 0xfbb9, 0xfa92,
+ 0xf974, 0xf821, 0xf712, 0xf60c, 0xf75b, 0xfab2,
+ 0xfc23, 0xfbed, 0xfc3c, 0xfe0b, 0x01a7, 0x03c5,
+ 0x029a, 0x0116, 0x0057, 0x00d3, 0x031c, 0x0434,
+ 0x036c, 0x034c, 0x0346, 0x028d, 0x01af, 0x0073,
+ 0x000b, 0x019c, 0x03f2, 0x05b4, 0x05c8, 0x03f5,
+ 0x01ca, 0x006c, 0x0024, 0x0152, 0x0339, 0x03bb,
+ 0x028c, 0x02a6, 0x04c8, 0x05b0, 0x0480, 0x025f,
+ 0xff64, 0xfdb3, 0xfef4, 0x0181, 0x04a8, 0x072f,
+ 0x067d, 0x031e, 0xff72, 0xfd8e, 0xfdd0, 0xfd29,
+ 0xfbb1, 0xfd0c, 0xffb0, 0x0029, 0xfeca, 0xfd5c,
+ 0xfe08, 0xffd1, 0xff80, 0xfed4, 0xffd1, 0x0078,
+ 0x017c, 0x047b, 0x0757, 0x07b6, 0x053b, 0x0226,
+ 0x0152, 0x025b, 0x03f9, 0x04de, 0x0325, 0x00e7,
+ 0x0152, 0x029e, 0x02fc, 0x037a, 0x045f, 0x0588,
+ 0x0747, 0x0860, 0x06fb, 0x04d9, 0x0654, 0x0acc,
+ 0x0d10, 0x0c17, 0x0b08, 0x0b37, 0x0b84, 0x0b04,
+ 0x0a91, 0x0ab5, 0x0a7f, 0x0a81, 0x0b7d, 0x0c8e,
+ 0x0e4e, 0x1060, 0x0efc, 0x09dc, 0x0588, 0x04c1,
+ 0x06af, 0x0910, 0x0aad, 0x0bc7, 0x0b9c, 0x091e,
+ 0x0608, 0x0557, 0x072d, 0x0849, 0x065f, 0x0368,
+ 0x02d7, 0x0550, 0x0815, 0x0812, 0x057b, 0x0354,
+ 0x0334, 0x0364, 0x0231, 0x0111, 0x01f9, 0x045c,
+ 0x06c7, 0x0799, 0x063a, 0x04a1, 0x02e0, 0xff79,
+ 0xfd95, 0xff85, 0x0194, 0x0293, 0x0496, 0x0611,
+ 0x057c, 0x046f, 0x036c, 0x01c7, 0x0012, 0xffc8,
+ 0x0189, 0x0370, 0x03e3, 0x04eb, 0x0760, 0x07d2,
+ 0x047b, 0x0031, 0xfe71, 0xff41, 0xff36, 0xfd60,
+ 0xfd65, 0x0029, 0x028f, 0x034a, 0x01ff, 0xfe61,
+ 0xfae6, 0xf9b6, 0xfa79, 0xfd37, 0x00ea, 0x0251,
+ 0x0098, 0xfe21, 0xfc19, 0xfa65, 0xf9c6, 0xfa06,
+ 0xf9c2, 0xf984, 0xfa10, 0xfa46, 0xfa71, 0xfc99,
+ 0x00da, 0x0442, 0x045a, 0x03da, 0x05ac, 0x065a,
+ 0x0410, 0x02cf, 0x03ad, 0x0448, 0x03bb, 0x0300,
+ 0x041b, 0x060f, 0x05e2, 0x0507, 0x0546, 0x053a,
+ 0x04c3, 0x0421, 0x0341, 0x035e, 0x0530, 0x08f1,
+ 0x0cfd, 0x0e40, 0x0dbe, 0x0d3a, 0x0be7, 0x0a6c,
+ 0x080f, 0x03e3, 0x0162, 0x0101, 0x0049, 0x0020,
+ 0x0024, 0xffd0, 0x00bb, 0x00c2, 0xfefc, 0xff41,
+ 0x017b, 0x02db, 0x030b, 0x01fa, 0x0098, 0x0136,
+ 0x0360, 0x03e7, 0x0177, 0xfe45, 0xfc7d, 0xfc69,
+ 0xfd9f, 0xff3c, 0x0197, 0x04cd, 0x05a1, 0x0376,
+ 0x021f, 0x0270, 0x0310, 0x0370, 0x02c4, 0x01aa,
+ 0x0042, 0xfdae, 0xfc33, 0xfd3a, 0xfe8f, 0xff2b,
+ 0xff35, 0xff88, 0x00f5, 0x0163, 0x008d, 0x01f9,
+ 0x05fc, 0x0966, 0x0a44, 0x0989, 0x0a06, 0x0c12,
+ 0x0cbe, 0x0a51, 0x05f9, 0x02a7, 0x0245, 0x03d4,
+ 0x0631, 0x0933, 0x0bd7, 0x0c66, 0x09dc, 0x0555,
+ 0x0155, 0xff78, 0xffd1, 0x00f2, 0x025f, 0x058e,
+ 0x091d, 0x094d, 0x0557, 0xffe7, 0xfdca, 0x0066,
+ 0x0265, 0x0126, 0xff5d, 0xfe14, 0xfe0c, 0xff07,
+ 0xfdb4, 0xfa6f, 0xf875, 0xf852, 0xf9d4, 0xfbba,
+ 0xfc60, 0xfdca, 0x015b, 0x0430, 0x04a9, 0x04ed,
+ 0x0635, 0x071c, 0x077f, 0x07db, 0x0664, 0x02ed,
+ 0xffea, 0xfeaf, 0xfffd, 0x02aa, 0x03a9, 0x0379,
+ 0x0435, 0x0607, 0x0838, 0x0805, 0x0494, 0x01c6,
+ 0x0145, 0x01e4, 0x032c, 0x0430, 0x04be, 0x0486,
+ 0x02c3, 0x012d, 0x002d, 0xff38, 0x00cf, 0x03fa,
+ 0x055f, 0x0646, 0x06cd, 0x0544, 0x03a0, 0x03ae,
+ 0x04cc, 0x04fb, 0x0332, 0x0236, 0x02a3, 0x023c,
+ 0x02e8, 0x054c, 0x0667, 0x06ba, 0x078b, 0x0831,
+ 0x07db, 0x056b, 0x0348, 0x03c6, 0x037e, 0x0276,
+ 0x03bf, 0x04fa, 0x055c, 0x0678, 0x0669, 0x0635,
+ 0x07d8, 0x07f9, 0x059b, 0x037f, 0x0262, 0x0293,
+ 0x0392, 0x0423, 0x0517, 0x0625, 0x05b1, 0x0442,
+ 0x030a, 0x0333, 0x0477, 0x03a3, 0x0153, 0x01db,
+ 0x0433, 0x04fc, 0x04aa, 0x0465, 0x04e8, 0x05c8,
+ 0x04db, 0x0318, 0x025b, 0x00bd, 0xfeb7, 0xfefc,
+ 0xffce, 0xffbc, 0x007d, 0x01bc, 0x02c9, 0x0438,
+ 0x04fd, 0x04d5, 0x053b, 0x060e, 0x06b0, 0x06b2,
+ 0x0453, 0xffab, 0xfc4a, 0xfc6e, 0xfeb2, 0x0102,
+ 0x0266, 0x02dd, 0x0312, 0x02cd, 0x009d, 0xfd13,
+ 0xfb21, 0xfc19, 0xfe37, 0xff43, 0xff29, 0xfff5,
+ 0x023d, 0x03a2, 0x0285, 0x0013, 0xfe6f, 0xfea7,
+ 0xff53, 0xfebb, 0xfd95, 0xfbe0, 0xf89f, 0xf6da,
+ 0xf9e0, 0xfea6, 0x0079, 0xffa5, 0xffcd, 0x021a,
+ 0x02b3, 0xff0a, 0xfb1e, 0xfac3, 0xfc0a, 0xfc50,
+ 0xfc64, 0xfdb2, 0xff1a, 0xffee, 0x023c, 0x0474,
+ 0x01e5, 0xfcfd, 0xfb60, 0xfc29, 0xfce3, 0xfdf4,
+ 0xffdf, 0x028e, 0x03be, 0x0143, 0xfde3, 0xfca5,
+ 0xfd90, 0x00c2, 0x0465, 0x0551, 0x03d1, 0x0170,
+ 0xff43, 0xfec6, 0xffb3, 0x010b, 0x02be, 0x03aa,
+ 0x02b7, 0x0040, 0xfd3f, 0xfb8e, 0xfbef, 0xfd13,
+ 0xfe69, 0xff09, 0xfd67, 0xfb0c, 0xfaa7, 0xfc02,
+ 0xfd06, 0xfc38, 0xfb6b, 0xfd23, 0xff21, 0xff81,
+ 0xfffe, 0xff26, 0xfbe7, 0xfab4, 0xfbe6, 0xfbb9,
+ 0xfbd3, 0xfdd6, 0xfe4b, 0xfc01, 0xf9d2, 0xf9c1,
+ 0xfaf2, 0xfb6b, 0xfb03, 0xfa72, 0xfaa3, 0xfd85,
+ 0x010f, 0x0086, 0xfdb0, 0xfd16, 0xfe5a, 0xffd2,
+ 0x0046, 0xfe5f, 0xfc01, 0xfc4e, 0xff47, 0x02b8,
+ 0x0483, 0x0494, 0x04a3, 0x0571, 0x065d, 0x0644,
+ 0x045a, 0x0187, 0xff81, 0xfefc, 0xff82, 0xff7c,
+ 0xfd7f, 0xfa7d, 0xf996, 0xfc4a, 0xff75, 0xffa2,
+ 0xfdbc, 0xfbae, 0xfa34, 0xfa23, 0xfaa4, 0xfadd,
+ 0xfca6, 0xff91, 0xffc8, 0xfd4f, 0xfc0d, 0xfcf0,
+ 0xfdf1, 0xfe6b, 0xfe2c, 0xfc39, 0xf9ad, 0xf911,
+ 0xfb21, 0xfeb4, 0x014b, 0x01ad, 0x01e0, 0x0227,
+ 0x008a, 0xfeb7, 0xfeac, 0xfec7, 0xfebc, 0xffe9,
+ 0x014f, 0x0135, 0xffd7, 0xfef6, 0xffe5, 0x025b,
+ 0x0500, 0x0552, 0x01c0, 0xfd25, 0xfb22, 0xfb50,
+ 0xfc15, 0xfd34, 0xfe2e, 0xfea7, 0xffbf, 0x01f5,
+ 0x0323, 0x01d9, 0xffe0, 0xfe01, 0xfb59, 0xf9b8,
+ 0xfb31, 0xfe36, 0x0071, 0x00dd, 0xff8f, 0xfe52,
+ 0xff08, 0x015c, 0x034e, 0x03b4, 0x0363, 0x027f,
+ 0xff92, 0xfb4f, 0xf880, 0xf877, 0xfadb, 0xfe44,
+ 0x00c0, 0x012e, 0xff7d, 0xfd27, 0xfb60, 0xf872,
+ 0xf452, 0xf352, 0xf74c, 0xfd3f, 0x01ba, 0x032c,
+ 0x02cc, 0x0221, 0x0072, 0xfeef, 0x004b, 0x0276,
+ 0x01df, 0xffd7, 0xffb8, 0x0267, 0x05dd, 0x0742,
+ 0x05ae, 0x02c4, 0x0192, 0x0368, 0x0560, 0x04ad,
+ 0x0299, 0x0183, 0x0275, 0x0490, 0x04fd, 0x031f,
+ 0x01dc, 0x02b5, 0x04db, 0x076f, 0x088d, 0x058f,
+ 0xff5d, 0xfb05, 0xfb11, 0xfc89, 0xfd6d, 0xff65,
+ 0x0266, 0x0330, 0x005f, 0xfd6d, 0xfdab, 0xfe97,
+ 0xfd17, 0xfb0c, 0xfa05, 0xf96c, 0xfa38, 0xfbcc,
+ 0xfb2d, 0xf8cc, 0xf795, 0xf861, 0xfa34, 0xfb87,
+ 0xfb6a, 0xfac9, 0xfaa3, 0xf9de, 0xf7d5, 0xf6d3,
+ 0xf7c3, 0xf7bd, 0xf650, 0xf76c, 0xfbd6, 0xff97,
+ 0x00b6, 0x00bc, 0x0014, 0xfe1d, 0xfc8a, 0xfcb4,
+ 0xfcf2, 0xfcf9, 0xfdb7, 0xfdb2, 0xfcd6, 0xfd08,
+ 0xfcc7, 0xfa83, 0xf8cb, 0xf967, 0xfb83, 0xfe0f,
+ 0xfeb3, 0xfbf4, 0xf8ee, 0xf909, 0xfb7f, 0xfe29,
+ 0xffaf, 0x0012, 0x011b, 0x0222, 0x0018, 0xfc05,
+ 0xf908, 0xf76d, 0xf727, 0xf7ec, 0xf920, 0xfc7d,
+ 0x013f, 0x02ac, 0xffca, 0xfb6d, 0xf7ed, 0xf6d8,
+ 0xf737, 0xf6fe, 0xf6e0, 0xf7b7, 0xf7f0, 0xf646,
+ 0xf4a8, 0xf61a, 0xf976, 0xfb67, 0xfc25, 0xfd4c,
+ 0xfeee, 0x0083, 0x011b, 0x00a4, 0xfffa, 0xff5e,
+ 0xff5f, 0x0038, 0x016a, 0x0206, 0x0043, 0xfd74,
+ 0xfc83, 0xfbac, 0xfb1f, 0xfd8c, 0xff0a, 0xfdce,
+ 0xfdb1, 0xfd3d, 0xfc06, 0xfd73, 0xfeb5, 0xfdac,
+ 0xfd40, 0xfdf1, 0x0012, 0x024f, 0xffdb, 0xfa2c,
+ 0xf6ce, 0xf75e, 0xfb24, 0xfe3b, 0xfd8b, 0xfc48,
+ 0xfbfe, 0xfa6d, 0xf80e, 0xf66b, 0xf66b, 0xf89c,
+ 0xfb3e, 0xfccb, 0xfdb0, 0xfe16, 0xfd99, 0xfc25,
+ 0xfb14, 0xfc3a, 0xff29, 0x01c4, 0x01c4, 0xfef6,
+ 0xfcaf, 0xfc7a, 0xfd08, 0xfefb, 0x01e0, 0x0327,
+ 0x02ae, 0x0131, 0x0000, 0x015e, 0x033f, 0x0278,
+ 0x014f, 0x0250, 0x04a5, 0x078d, 0x0a59, 0x0b80,
+ 0x0a84, 0x07cc, 0x0321, 0xfdda, 0xfbd5, 0xfdce,
+ 0x0086, 0x02da, 0x049c, 0x0498, 0x03ac, 0x02e3,
+ 0x0272, 0x0343, 0x03cf, 0x0288, 0x0181, 0x00d5,
+ 0xfef0, 0xfd1b, 0xfc7c, 0xfd58, 0xffcd, 0x01b2,
+ 0x01eb, 0x01a7, 0x00be, 0xfee7, 0xfc9d, 0xfa1c,
+ 0xf90a, 0xfa76, 0xfc3c, 0xfcfc, 0xfe5b, 0x017f,
+ 0x0470, 0x0467, 0x025c, 0x0204, 0x03e4, 0x0499,
+ 0x02c3, 0x015a, 0x0235, 0x02df, 0x0166, 0xff36,
+ 0xfe55, 0xff0d, 0xff7b, 0xfe97, 0xfebe, 0x00de,
+ 0x0266, 0x029d, 0x023d, 0x006a, 0xfda2, 0xfbb5,
+ 0xfae4, 0xfb57, 0xfcfc, 0xfdf7, 0xfdba, 0xfdee,
+ 0xfed7, 0xff07, 0xfdd7, 0xfc7e, 0xfd00, 0xfef3,
+ 0xffdf, 0xffdf, 0x0023, 0xff4f, 0xfd0b, 0xfb4d,
+ 0xfa69, 0xfa11, 0xfae5, 0xfc47, 0xfd5e, 0xfe85,
+ 0xff2b, 0xfe06, 0xfb7f, 0xf9b8, 0xfaba, 0xfe79,
+ 0x029f, 0x0508, 0x0564, 0x0466, 0x02ec, 0x01e8,
+ 0x0192, 0x0156, 0x0164, 0x0293, 0x04a0, 0x065e,
+ 0x0740, 0x0795, 0x074a, 0x0551, 0x019f, 0xfef1,
+ 0x000c, 0x032b, 0x038d, 0x0105, 0xffb2, 0x0015,
+ 0x0039, 0x0039, 0xffb0, 0xfec8, 0xffad, 0x00bb,
+ 0xff1c, 0xfd36, 0xfd93, 0xff02, 0x0013, 0x0058,
+ 0x0089, 0x0121, 0x00e1, 0xffaa, 0xfeb4, 0xfe14,
+ 0xfde0, 0xfe5a, 0xfea4, 0xfe34, 0xfe27, 0xff30,
+ 0xff7c, 0xfde5, 0xfc85, 0xfc38, 0xfbbc, 0xfafc,
+ 0xfa1e, 0xfa3b, 0xfc60, 0xfda7, 0xfd2c, 0xfe1b,
+ 0xffd0, 0x00b0, 0x01bd, 0x01f6, 0x013b, 0x0150,
+ 0x014a, 0x009e, 0x001e, 0xff75, 0xfe80, 0xfc87,
+ 0xf9e2, 0xf9b3, 0xfbc1, 0xfd31, 0xfdef, 0xfe42,
+ 0xfe96, 0xff69, 0xfe55, 0xfab1, 0xf807, 0xf7fb,
+ 0xf8d8, 0xf913, 0xf933, 0xfa26, 0xfb21, 0xfbe5,
+ 0xfcd2, 0xfd21, 0xfd35, 0xfda5, 0xfe0f, 0xff2b,
+ 0x000b, 0xffd0, 0x011c, 0x0334, 0x02fd, 0x016b,
+ 0xfec3, 0xfbc4, 0xfc10, 0xfe79, 0x003b, 0x01ef,
+ 0x019f, 0xfe68, 0xfbdc, 0xfb19, 0xfb54, 0xfc5e,
+ 0xfde5, 0x00f2, 0x042f, 0x046e, 0x03ba, 0x03d6,
+ 0x01d9, 0xfe52, 0xfc75, 0xfc67, 0xfdd6, 0x0086,
+ 0x0297, 0x033d, 0x038b, 0x041a, 0x0490, 0x0429,
+ 0x0214, 0xff60, 0xfe52, 0xfe27, 0xfcdd, 0xfc5e,
+ 0xfe27, 0xff07, 0xfcef, 0xfa9b, 0xfb63, 0xfe9b,
+ 0x00c8, 0x0145, 0x01ed, 0x026c, 0x01c4, 0x0056,
+ 0xfed8, 0xfee3, 0x00be, 0x01ef, 0x014a, 0xffac,
+ 0xfe1d, 0xfd46, 0xfbba, 0xf906, 0xf893, 0xfae7,
+ 0xfc6d, 0xfc88, 0xfc9b, 0xfd22, 0xff38, 0x020d,
+ 0x02f6, 0x02b6, 0x02e4, 0x01c5, 0xff1f, 0xfe0e,
+ 0x000e, 0x03a3, 0x05d2, 0x04d5, 0x0355, 0x0432,
+ 0x0550, 0x04ba, 0x042e, 0x04b0, 0x05d8, 0x0747,
+ 0x07b0, 0x06c3, 0x05fb, 0x056b, 0x0486, 0x0441,
+ 0x04ca, 0x05a9, 0x07dd, 0x0a81, 0x09ff, 0x0693,
+ 0x0408, 0x03a9, 0x04af, 0x05c9, 0x0595, 0x05ab,
+ 0x07cf, 0x0a6b, 0x0ca5, 0x0e2a, 0x0d19, 0x0a91,
+ 0x091b, 0x0796, 0x04b9, 0x01c9, 0x00a9, 0x02b7,
+ 0x06be, 0x0921, 0x0762, 0x02ce, 0xffef, 0x00c6,
+ 0x0250, 0x02e6, 0x03c3, 0x04c9, 0x0578, 0x0617,
+ 0x06a2, 0x071c, 0x071d, 0x065e, 0x057e, 0x04e6,
+ 0x054e, 0x0663, 0x05a1, 0x03b4, 0x03e2, 0x04fd,
+ 0x04e4, 0x0560, 0x06c5, 0x06ce, 0x05d4, 0x05d1,
+ 0x06fe, 0x08c4, 0x0a18, 0x09a6, 0x0883, 0x087b,
+ 0x07ad, 0x0455, 0x012c, 0x0137, 0x042b, 0x0766,
+ 0x0842, 0x0729, 0x0640, 0x05ab, 0x050c, 0x0522,
+ 0x0643, 0x082f, 0x09fa, 0x09e6, 0x075a, 0x03da,
+ 0x01b6, 0x0238, 0x0459, 0x055e, 0x0446, 0x03d8,
+ 0x056b, 0x0557, 0x0286, 0x0102, 0x0122, 0x0012,
+ 0xfec4, 0xfea2, 0xfee5, 0xfff7, 0x01a2, 0x0168,
+ 0xff99, 0xff82, 0x016a, 0x0341, 0x0527, 0x07a0,
+ 0x095b, 0x097f, 0x0843, 0x0675, 0x0572, 0x0582,
+ 0x05e0, 0x05af, 0x0467, 0x0365, 0x03f5, 0x0534,
+ 0x06ec, 0x0853, 0x06d7, 0x0336, 0x001f, 0xfe2d,
+ 0xfdac, 0xfd7d, 0xfbc6, 0xfa6e, 0xfba6, 0xfea9,
+ 0x022c, 0x0433, 0x0396, 0x022a, 0x01a9, 0x01f6,
+ 0x0173, 0xfe87, 0xfb24, 0xfaab, 0xfca2, 0xfe1d,
+ 0xfdc1, 0xfcb0, 0xfc62, 0xfd59, 0xffde, 0x023a,
+ 0x019f, 0xfef7, 0xfcf6, 0xfcf5, 0xff9b, 0x0205,
+ 0x00ba, 0xfee4, 0xffea, 0x00ba, 0xff48, 0xfebd,
+ 0x00ac, 0x0213, 0x0133, 0x0021, 0x004c, 0x01b0,
+ 0x036f, 0x02ed, 0x0071, 0xff54, 0xffe7, 0x01b9,
+ 0x044b, 0x045a, 0x02ac, 0x0373, 0x057c, 0x06c4,
+ 0x088e, 0x09f4, 0x0921, 0x072c, 0x069b, 0x07e5,
+ 0x0837, 0x068e, 0x0570, 0x058b, 0x060d, 0x0693,
+ 0x05fe, 0x04de, 0x048a, 0x03c0, 0x0244, 0x021b,
+ 0x03a8, 0x059a, 0x0691, 0x05fa, 0x04a3, 0x03e0,
+ 0x0466, 0x05ce, 0x06ea, 0x06eb, 0x0682, 0x0703,
+ 0x0712, 0x04c2, 0x02af, 0x0285, 0x01cc, 0x00e8,
+ 0x012a, 0x0144, 0x0208, 0x03c6, 0x0469, 0x0422,
+ 0x02a1, 0xff4b, 0xfcf8, 0xfd3c, 0xffee, 0x0432,
+ 0x0543, 0x01a9, 0xfe47, 0xfcc5, 0xfbe8, 0xfbc6,
+ 0xfc35, 0xfdbc, 0xffac, 0xff61, 0xfdbb, 0xfcab,
+ 0xfad6, 0xf827, 0xf719, 0xf8c2, 0xfb9d, 0xfd64,
+ 0xfdd5, 0xfdfa, 0xfe1e, 0xfeb4, 0xfff2, 0x00d2,
+};
+
+int left_channel_length = sizeof(left_channel)/sizeof(left_channel[0]);
diff --git a/ecos/packages/hal/arm/edb7xxx/current/misc/short_audio_right.h b/ecos/packages/hal/arm/edb7xxx/current/misc/short_audio_right.h
new file mode 100755
index 0000000..980961d
--- /dev/null
+++ b/ecos/packages/hal/arm/edb7xxx/current/misc/short_audio_right.h
@@ -0,0 +1,5002 @@
+unsigned short right_channel[] = {
+ 0x003b, 0x000a, 0xffc7, 0xffca, 0x000a,
+ 0x0033, 0x0019, 0xfff9, 0x000f, 0x0049, 0x0064,
+ 0x0056, 0x0046, 0x0042, 0x002f, 0x0008, 0xfffc,
+ 0x0016, 0x0028, 0x0008, 0xffe2, 0xfffb, 0x003a,
+ 0x0040, 0xfff6, 0xffbe, 0xffe4, 0x0019, 0xffe4,
+ 0xff5e, 0xff33, 0xffad, 0x0040, 0x003d, 0xffbd,
+ 0xff77, 0xffbf, 0x0017, 0xfff8, 0xff88, 0xff63,
+ 0xffb7, 0x001a, 0x0035, 0x002f, 0x0056, 0x0096,
+ 0x009b, 0x005c, 0x0027, 0x002d, 0x003f, 0x001f,
+ 0xffd7, 0xff9d, 0xff91, 0xffb2, 0x0002, 0x0078,
+ 0x00c8, 0x0096, 0xfff8, 0xff88, 0xffca, 0x0085,
+ 0x0107, 0x00e8, 0x006e, 0x0014, 0x0001, 0x000c,
+ 0x0020, 0x004b, 0x0079, 0x0069, 0x0002, 0xff95,
+ 0xff88, 0xffe3, 0x0045, 0x0051, 0x0005, 0xffb4,
+ 0xffae, 0x000c, 0x009c, 0x00fe, 0x00ef, 0x0086,
+ 0x001c, 0xfff4, 0xfffc, 0xffff, 0xfff3, 0xfff4,
+ 0xfffe, 0xffeb, 0xffb8, 0xffa8, 0xffe9, 0x003f,
+ 0x003e, 0xffd6, 0xff72, 0xff79, 0xffdf, 0x0052,
+ 0x00a9, 0x00e7, 0x0105, 0x00e9, 0x00a3, 0x006b,
+ 0x0051, 0x0021, 0xffca, 0xff9c, 0xffe0, 0x004a,
+ 0x0044, 0xffbf, 0xff68, 0xffc7, 0x006c, 0x007c,
+ 0xffd4, 0xff35, 0xff3f, 0xffa8, 0xffd4, 0xffbc,
+ 0xffdd, 0x004a, 0x0078, 0x000c, 0xff79, 0xff62,
+ 0xffbc, 0xfff0, 0xffc2, 0xff98, 0xffcd, 0x001c,
+ 0x001f, 0xfff0, 0xfff7, 0x0038, 0x004d, 0x000d,
+ 0xffdd, 0x0001, 0x0027, 0xffda, 0xff4f, 0xff32,
+ 0xffb2, 0x0039, 0x0044, 0x000e, 0x0012, 0x0033,
+ 0xffe8, 0xff37, 0xfedf, 0xff5d, 0x0020, 0x003e,
+ 0xffa8, 0xff31, 0xff6f, 0xfffc, 0x0016, 0xffa3,
+ 0xff2a, 0xff0c, 0xff22, 0xff28, 0xff32, 0xff75,
+ 0xffee, 0x0068, 0x00c5, 0x00fb, 0x00ee, 0x0081,
+ 0xffea, 0xff98, 0xffc3, 0x001e, 0x0039, 0x0003,
+ 0xffcb, 0xffc0, 0xffc6, 0xffb8, 0xffa2, 0xff9f,
+ 0xff95, 0xff5f, 0xff16, 0xff11, 0xff84, 0x003f,
+ 0x00d5, 0x00ef, 0x0087, 0xfff0, 0xff9e, 0xffd6,
+ 0x0058, 0x008f, 0x0026, 0xff77, 0xff20, 0xff57,
+ 0xffbe, 0xfff0, 0xfff2, 0xffe7, 0xffb8, 0xff51,
+ 0xff10, 0xff87, 0x009e, 0x0168, 0x0118, 0x0005,
+ 0xff50, 0xff9c, 0x0077, 0x0116, 0x0130, 0x00f8,
+ 0x0097, 0x0018, 0xffb0, 0xffaa, 0xffef, 0x0007,
+ 0xffc9, 0xff9f, 0xfff7, 0x0092, 0x00dd, 0x00d2,
+ 0x00f2, 0x015d, 0x0177, 0x00d8, 0x0016, 0x0015,
+ 0x00af, 0x00d5, 0x0018, 0xff6d, 0xffdc, 0x00f6,
+ 0x0151, 0x0066, 0xff46, 0xff20, 0xffbf, 0x000a,
+ 0xffa4, 0xff45, 0xff8b, 0x0013, 0x0029, 0xffd2,
+ 0xffa6, 0xffdb, 0x0007, 0xffde, 0xff9f, 0xffa7,
+ 0xffe0, 0x0002, 0x0017, 0x0058, 0x00a8, 0x00ab,
+ 0x0062, 0x0046, 0x0094, 0x00e1, 0x00aa, 0x0025,
+ 0xfffa, 0x004d, 0x0091, 0x0067, 0x0037, 0x0094,
+ 0x0143, 0x017a, 0x00f8, 0x006d, 0x0085, 0x00fe,
+ 0x010b, 0x0074, 0xffda, 0xffdb, 0x004e, 0x009a,
+ 0x0081, 0x005b, 0x0080, 0x00d0, 0x00e0, 0x007d,
+ 0xffee, 0xffae, 0xfffc, 0x0093, 0x00e3, 0x0097,
+ 0xfffa, 0xffad, 0xfffa, 0x0084, 0x00cb, 0x00c0,
+ 0x00c0, 0x00f9, 0x012b, 0x010b, 0x00a8, 0x0047,
+ 0x0006, 0xffe8, 0x000a, 0x0086, 0x0109, 0x010a,
+ 0x0077, 0xfffe, 0x003d, 0x00f4, 0x014c, 0x00ef,
+ 0x0065, 0x0045, 0x0068, 0x005b, 0x0031, 0x006e,
+ 0x0126, 0x01b0, 0x0174, 0x00a8, 0xfff0, 0xff94,
+ 0xff81, 0xffcb, 0x00a9, 0x01d0, 0x0264, 0x01f9,
+ 0x013e, 0x012f, 0x01cb, 0x0213, 0x0168, 0x004d,
+ 0xffa1, 0xff8f, 0xffb9, 0x000e, 0x00d0, 0x01c4,
+ 0x022b, 0x01c0, 0x0141, 0x016b, 0x01d9, 0x0193,
+ 0x0096, 0x0009, 0x009c, 0x0173, 0x014a, 0x004e,
+ 0xffef, 0x00cf, 0x01cb, 0x0177, 0x000f, 0xff22,
+ 0xff85, 0x005e, 0x0072, 0xffbb, 0xff46, 0xffca,
+ 0x00e3, 0x01b3, 0x01c7, 0x013e, 0x0078, 0xffda,
+ 0xffa7, 0xffc7, 0xffd1, 0xff88, 0xff46, 0xff90,
+ 0x0054, 0x00d4, 0x007c, 0xff90, 0xfec5, 0xfe85,
+ 0xfeb8, 0xff34, 0xffe1, 0x0068, 0x0054, 0xffba,
+ 0xff84, 0x008a, 0x025e, 0x036f, 0x02ac, 0x00b4,
+ 0xff2e, 0xff09, 0xffbf, 0x0031, 0xfffe, 0xffaa,
+ 0xffc4, 0x002f, 0x0061, 0x002c, 0x000c, 0x008c,
+ 0x0173, 0x01d3, 0x0104, 0xff93, 0xfece, 0xff4f,
+ 0x0030, 0x0016, 0xfed8, 0xfdbf, 0xfdf9, 0xff2c,
+ 0xfffe, 0xffb6, 0xfee7, 0xfe77, 0xfe8f, 0xfed4,
+ 0xff28, 0xffb4, 0x0052, 0x008e, 0x0061, 0x0066,
+ 0x00f9, 0x017c, 0x00ff, 0xff91, 0xfe5a, 0xfe56,
+ 0xff4a, 0x0046, 0x00d1, 0x0124, 0x0175, 0x0195,
+ 0x014f, 0x00bd, 0x0011, 0xff66, 0xfef6, 0xff35,
+ 0x0033, 0x0122, 0x010c, 0x001c, 0xff9c, 0x004e,
+ 0x015a, 0x0141, 0xffd3, 0xfe6a, 0xfe36, 0xfef5,
+ 0xffaa, 0x0007, 0x007d, 0x0116, 0x013c, 0x00be,
+ 0x0060, 0x00e3, 0x01d7, 0x0223, 0x0179, 0x00b6,
+ 0x0099, 0x00d1, 0x00b0, 0x004e, 0x003e, 0x0060,
+ 0xffcb, 0xfe3b, 0xfcef, 0xfd76, 0xffc3, 0x0204,
+ 0x0288, 0x0162, 0x000e, 0xffcb, 0x0097, 0x019d,
+ 0x021c, 0x01e4, 0x0142, 0x00ad, 0x0065, 0x0046,
+ 0x0001, 0xff9a, 0xff75, 0xffe5, 0x00ac, 0x0139,
+ 0x0143, 0x00fd, 0x00b2, 0x0071, 0x0036, 0x002b,
+ 0x0063, 0x008e, 0x003d, 0xff87, 0xff1e, 0xff74,
+ 0x000d, 0xfffb, 0xfef8, 0xfdd6, 0xfd97, 0xfe5c,
+ 0xff59, 0xffc3, 0xff98, 0xff6b, 0xff95, 0xffc4,
+ 0xff77, 0xfec1, 0xfe6b, 0xff20, 0x0088, 0x0187,
+ 0x0176, 0x00fb, 0x0133, 0x0223, 0x027b, 0x013a,
+ 0xff28, 0xfe12, 0xfeac, 0xffc0, 0xffcc, 0xfedd,
+ 0xfe46, 0xfebd, 0xff86, 0xffa7, 0xff32, 0xfee4,
+ 0xfed9, 0xfe7e, 0xfdb5, 0xfd5a, 0xfe30, 0xffbd,
+ 0x00c5, 0x00b3, 0x000c, 0xff85, 0xff2d, 0xfeca,
+ 0xfe8d, 0xfeff, 0x004b, 0x01f7, 0x0346, 0x03a7,
+ 0x02d0, 0x00f0, 0xfef6, 0xfe17, 0xfec9, 0x002f,
+ 0x010c, 0x0112, 0x00db, 0x00b8, 0x002a, 0xfef6,
+ 0xfe12, 0xfec5, 0x00d5, 0x026e, 0x0221, 0x0083,
+ 0xff56, 0xff74, 0x003f, 0x00e7, 0x0163, 0x01e8,
+ 0x020a, 0x0130, 0xffb8, 0xfee6, 0xff82, 0x00eb,
+ 0x01ec, 0x020c, 0x01af, 0x012d, 0x0069, 0xff6e,
+ 0xfed3, 0xff20, 0xfff9, 0x006a, 0x0001, 0xff48,
+ 0xff17, 0xff99, 0x0039, 0x0058, 0xffed, 0xff70,
+ 0xff66, 0xfff6, 0x00d8, 0x0193, 0x01d5, 0x01a9,
+ 0x014c, 0x00d6, 0x0026, 0xff2f, 0xfe28, 0xfd6f,
+ 0xfd3d, 0xfd95, 0xfe5a, 0xff37, 0xff9c, 0xff27,
+ 0xfe45, 0xfe21, 0xff87, 0x01ce, 0x0305, 0x0173,
+ 0xfcf0, 0xf6eb, 0xf14f, 0xed68, 0xeb85, 0xeb33,
+ 0xeba1, 0xec04, 0xebe0, 0xeb1d, 0xe9fb, 0xe8fc,
+ 0xe8a9, 0xe929, 0xe9f2, 0xea2f, 0xe9ae, 0xe959,
+ 0xea65, 0xecfe, 0xefe4, 0xf176, 0xf0de, 0xee4b,
+ 0xea7c, 0xe65d, 0xe289, 0xde3f, 0xd6da, 0xc9bb,
+ 0xb838, 0xa99f, 0xa7bc, 0xb7a6, 0xd50e, 0xf49b,
+ 0x0b35, 0x140e, 0x1147, 0x087c, 0xfec7, 0xf69a,
+ 0xefa9, 0xe824, 0xdec2, 0xd456, 0xcbd7, 0xc8e7,
+ 0xce34, 0xdcb1, 0xf31a, 0x0d29, 0x236b, 0x2d52,
+ 0x2587, 0x0dbd, 0xeecd, 0xd472, 0xc75e, 0xc95f,
+ 0xd5dd, 0xe5d8, 0xf41f, 0xfebe, 0x054b, 0x06ef,
+ 0x02ce, 0xfa67, 0xf251, 0xef55, 0xf256, 0xf797,
+ 0xfa97, 0xfaa2, 0xfb47, 0x006a, 0x0a26, 0x1476,
+ 0x1a88, 0x1a3f, 0x1541, 0x0f64, 0x0c24, 0x0cae,
+ 0x0f7d, 0x11cb, 0x1204, 0x1147, 0x1269, 0x170a,
+ 0x1d7f, 0x21d0, 0x2123, 0x1c4e, 0x16f5, 0x1413,
+ 0x1389, 0x1306, 0x1122, 0x0f02, 0x0ecc, 0x10fe,
+ 0x13eb, 0x1601, 0x17c7, 0x1aea, 0x1f61, 0x2257,
+ 0x20aa, 0x1a79, 0x13ac, 0x10a7, 0x128e, 0x16c8,
+ 0x19ee, 0x1ad1, 0x1ab7, 0x1b40, 0x1c94, 0x1db5,
+ 0x1e0f, 0x1e33, 0x1ef1, 0x1ff9, 0x1fbd, 0x1cc4,
+ 0x1726, 0x10f5, 0x0d47, 0x0e9f, 0x1561, 0x1f14,
+ 0x2751, 0x2aad, 0x29e8, 0x2a46, 0x3167, 0x3f8a,
+ 0x4dab, 0x525f, 0x4997, 0x3849, 0x2864, 0x2120,
+ 0x22e1, 0x29d3, 0x3333, 0x3f32, 0x4e06, 0x5c7a,
+ 0x64e3, 0x63ee, 0x5c34, 0x546b, 0x51c4, 0x53d2,
+ 0x55c9, 0x535b, 0x4c78, 0x44cf, 0x4063, 0x406f,
+ 0x42d5, 0x43a9, 0x3f84, 0x35a2, 0x28f0, 0x1f08,
+ 0x1cde, 0x2316, 0x2d10, 0x33ff, 0x33a6, 0x2cb3,
+ 0x22f1, 0x19c2, 0x1273, 0x0d2c, 0x0a39, 0x098b,
+ 0x097c, 0x075e, 0x0225, 0xfc37, 0xf984, 0xfb64,
+ 0xfeac, 0xfeab, 0xfa30, 0xf502, 0xf3cd, 0xf6d5,
+ 0xf942, 0xf61d, 0xedc0, 0xe5f0, 0xe488, 0xea4a,
+ 0xf2cf, 0xf8d5, 0xfa1e, 0xf76d, 0xf214, 0xeab8,
+ 0xe271, 0xdbe5, 0xda03, 0xdd54, 0xe302, 0xe6f8,
+ 0xe71b, 0xe447, 0xe08a, 0xdcf5, 0xd94f, 0xd554,
+ 0xd19e, 0xcf10, 0xcdea, 0xcdcf, 0xce8a, 0xd02f,
+ 0xd250, 0xd383, 0xd261, 0xcf21, 0xcbbf, 0xca32,
+ 0xca8c, 0xcb42, 0xcb3a, 0xcb05, 0xcba4, 0xcc70,
+ 0xcb26, 0xc69a, 0xc10e, 0xbee0, 0xc259, 0xc8ec,
+ 0xcd02, 0xcac1, 0xc2fe, 0xb9b2, 0xb21e, 0xace7,
+ 0xa984, 0xa870, 0xab04, 0xb16e, 0xb9bf, 0xc1be,
+ 0xc94e, 0xd21f, 0xdc88, 0xe53a, 0xe6ff, 0xdf75,
+ 0xd1f1, 0xc558, 0xbeb3, 0xbdb4, 0xbe1a, 0xbc3a,
+ 0xb842, 0xb5a1, 0xb7d4, 0xbfa4, 0xca9a, 0xd45b,
+ 0xd8d5, 0xd64c, 0xce73, 0xc5a8, 0xc039, 0xbf6f,
+ 0xc0f5, 0xc168, 0xbfc5, 0xbe1c, 0xbedc, 0xc18b,
+ 0xc2ca, 0xbff3, 0xba9e, 0xb7fb, 0xbc40, 0xc662,
+ 0xd058, 0xd3cb, 0xcf03, 0xc601, 0xbf39, 0xbf1c,
+ 0xc5b3, 0xcf78, 0xd806, 0xdc82, 0xdc96, 0xd9cd,
+ 0xd629, 0xd2f1, 0xd08c, 0xcf39, 0xcf8b, 0xd1e3,
+ 0xd54f, 0xd77f, 0xd694, 0xd34d, 0xd12c, 0xd399,
+ 0xda7a, 0xe1a1, 0xe42f, 0xe0e0, 0xdb34, 0xd840,
+ 0xda38, 0xdef2, 0xe260, 0xe256, 0xdfe7, 0xdda2,
+ 0xdd0a, 0xddd4, 0xdf2c, 0xe0fc, 0xe3c3, 0xe770,
+ 0xeaf2, 0xed26, 0xee0e, 0xeef6, 0xf151, 0xf571,
+ 0xfa4f, 0xfe58, 0x0059, 0x0002, 0xfde3, 0xfb58,
+ 0xfa3c, 0xfc03, 0x0098, 0x05f2, 0x092a, 0x08a2,
+ 0x057b, 0x02f8, 0x03ff, 0x08c4, 0x0e9b, 0x122c,
+ 0x1231, 0x1061, 0x0fdc, 0x1273, 0x173b, 0x1b7b,
+ 0x1d07, 0x1be1, 0x19e2, 0x1901, 0x19ed, 0x1c26,
+ 0x1f09, 0x226c, 0x2631, 0x296d, 0x2a80, 0x2862,
+ 0x23dd, 0x1f55, 0x1d07, 0x1d58, 0x1ede, 0x2011,
+ 0x20db, 0x224f, 0x24eb, 0x274e, 0x2737, 0x23fd,
+ 0x1ff2, 0x1ee9, 0x22db, 0x29bd, 0x2eee, 0x2f21,
+ 0x2b4c, 0x27ce, 0x2879, 0x2d1c, 0x31ad, 0x31e7,
+ 0x2d13, 0x26b3, 0x23a6, 0x2671, 0x2db9, 0x35d0,
+ 0x3b9f, 0x3e81, 0x3fe5, 0x41aa, 0x44a0, 0x4809,
+ 0x4a21, 0x491d, 0x4445, 0x3ccc, 0x35ae, 0x323d,
+ 0x3403, 0x3964, 0x3e5b, 0x3f33, 0x3b2a, 0x34f2,
+ 0x3099, 0x306c, 0x3383, 0x3708, 0x38c0, 0x3898,
+ 0x381d, 0x389f, 0x3a0b, 0x3b7f, 0x3c8b, 0x3d87,
+ 0x3eb4, 0x3f31, 0x3d51, 0x384f, 0x31a5, 0x2c83,
+ 0x2b90, 0x2ed5, 0x33d8, 0x37cf, 0x39c3, 0x3ae8,
+ 0x3ce9, 0x3fc1, 0x4187, 0x4033, 0x3b6c, 0x3500,
+ 0x2fbb, 0x2d7b, 0x2e5f, 0x3168, 0x3555, 0x3918,
+ 0x3bf4, 0x3d8a, 0x3e33, 0x3edf, 0x402e, 0x41ad,
+ 0x420e, 0x405b, 0x3d27, 0x3a87, 0x3a40, 0x3be6,
+ 0x3d0a, 0x3ba9, 0x3865, 0x366f, 0x38d9, 0x3f57,
+ 0x45db, 0x47eb, 0x4476, 0x3ebc, 0x3b7a, 0x3ca7,
+ 0x3ff0, 0x413a, 0x3e60, 0x3903, 0x3501, 0x34b0,
+ 0x36d0, 0x386d, 0x37d4, 0x35d0, 0x3496, 0x3520,
+ 0x35dd, 0x34a9, 0x3144, 0x2daf, 0x2c7a, 0x2e3a,
+ 0x30ce, 0x3181, 0x2f50, 0x2b80, 0x2820, 0x25a8,
+ 0x22f9, 0x1f34, 0x1aa0, 0x16f5, 0x1645, 0x1899,
+ 0x1c4a, 0x2032, 0x23bc, 0x26b7, 0x28f2, 0x28e5,
+ 0x24ff, 0x1e51, 0x17ba, 0x13a7, 0x1254, 0x1155,
+ 0x0eaf, 0x0b6f, 0x09b8, 0x0a99, 0x0d28, 0x0e63,
+ 0x0c5e, 0x0939, 0x08df, 0x0d06, 0x13b8, 0x1865,
+ 0x1754, 0x1137, 0x0ad2, 0x082c, 0x0913, 0x0aa3,
+ 0x0a65, 0x0817, 0x05a0, 0x044d, 0x03a1, 0x02de,
+ 0x0110, 0xfe90, 0xfea3, 0x024f, 0x0603, 0x06cd,
+ 0x038d, 0xfd30, 0xf88b, 0xf8c4, 0xfb5d, 0xfd23,
+ 0xfcbf, 0xfb25, 0xfb68, 0xfda1, 0xfd92, 0xf7b5,
+ 0xecee, 0xe3b9, 0xe335, 0xebac, 0xf73c, 0xfe16,
+ 0xfb7c, 0xf369, 0xedf4, 0xee52, 0xf2e1, 0xf766,
+ 0xf7b4, 0xf51b, 0xf3e6, 0xf3f8, 0xf1ea, 0xec8c,
+ 0xe610, 0xe207, 0xe3c4, 0xebce, 0xf531, 0xf8b2,
+ 0xf2e2, 0xe720, 0xde82, 0xde46, 0xe1ad, 0xe4b2,
+ 0xe786, 0xe6f3, 0xe3b6, 0xe557, 0xeb53, 0xef70,
+ 0xf185, 0xf259, 0xf165, 0xf086, 0xefe6, 0xeeff,
+ 0xefd0, 0xf14a, 0xf073, 0xee2c, 0xeacf, 0xe42b,
+ 0xdc36, 0xd879, 0xdafa, 0xe149, 0xe813, 0xed19,
+ 0xef85, 0xeef7, 0xeb78, 0xe7eb, 0xe871, 0xec09,
+ 0xed1b, 0xe9ca, 0xe53d, 0xe0ce, 0xdbe9, 0xd993,
+ 0xdd23, 0xe37d, 0xe6d5, 0xe5f1, 0xe342, 0xe0e3,
+ 0xdec3, 0xdb44, 0xd6d7, 0xd4b3, 0xd59e, 0xd80c,
+ 0xdd3e, 0xe531, 0xeb07, 0xed89, 0xefce, 0xf04c,
+ 0xec5c, 0xe41e, 0xd746, 0xcb2b, 0xc7ac, 0xc9d7,
+ 0xcd15, 0xd16f, 0xcf5c, 0xc395, 0xbaab, 0xbb5d,
+ 0xc100, 0xc945, 0xd0e5, 0xd38d, 0xd268, 0xd06a,
+ 0xd184, 0xd750, 0xdaf8, 0xd7de, 0xd2d6, 0xd094,
+ 0xd0f9, 0xd1d3, 0xd248, 0xd37d, 0xd54c, 0xd889,
+ 0xde98, 0xe3e6, 0xe6c0, 0xea30, 0xeccf, 0xec44,
+ 0xea17, 0xe74c, 0xe575, 0xe553, 0xe552, 0xe601,
+ 0xe6ae, 0xe5ab, 0xe529, 0xe51d, 0xe3dc, 0xe0cf,
+ 0xd8a7, 0xcf54, 0xccd7, 0xcc3b, 0xcb36, 0xd1ae,
+ 0xdc1c, 0xe29a, 0xe54a, 0xe2d3, 0xdd29, 0xdb56,
+ 0xdebd, 0xe528, 0xe8d9, 0xe53a, 0xe1e3, 0xe3fb,
+ 0xe60b, 0xe786, 0xe963, 0xe899, 0xe648, 0xe348,
+ 0xdedb, 0xdc71, 0xdd50, 0xdfaf, 0xe3e4, 0xe902,
+ 0xec01, 0xebe7, 0xebba, 0xee55, 0xf11f, 0xf1ac,
+ 0xf089, 0xee05, 0xee90, 0xf31e, 0xf298, 0xedcc,
+ 0xee23, 0xf0ca, 0xf19c, 0xf385, 0xf555, 0xf47b,
+ 0xefb8, 0xe805, 0xe470, 0xe4f4, 0xe24c, 0xe02d,
+ 0xe4a7, 0xeb80, 0xef5f, 0xef6d, 0xeedc, 0xef66,
+ 0xede9, 0xed25, 0xf22f, 0xf7b2, 0xf87a, 0xf616,
+ 0xf1ec, 0xef14, 0xefda, 0xf16d, 0xf252, 0xf43f,
+ 0xf838, 0xfc3d, 0xfd96, 0xfe24, 0xfec5, 0xfc48,
+ 0xf7f7, 0xf42c, 0xf0f5, 0xefed, 0xed1a, 0xe478,
+ 0xdcff, 0xdb4a, 0xdd9f, 0xe3a2, 0xea3f, 0xf037,
+ 0xf630, 0xf704, 0xf461, 0xf5fe, 0xf8ce, 0xf7ec,
+ 0xf3e3, 0xed4c, 0xe7d8, 0xe71f, 0xeaf2, 0xf028,
+ 0xf08b, 0xeece, 0xf1ad, 0xf449, 0xf73c, 0xfe9c,
+ 0xfe88, 0xf574, 0xf028, 0xec3b, 0xe84d, 0xeadb,
+ 0xed0b, 0xe9f5, 0xe5cf, 0xe0ba, 0xdf4d, 0xe41e,
+ 0xe720, 0xe80b, 0xea33, 0xe964, 0xe6b7, 0xe644,
+ 0xe616, 0xe4bf, 0xe296, 0xdfd4, 0xdd7f, 0xdd7b,
+ 0xe23d, 0xe8e5, 0xebb1, 0xebfd, 0xebc6, 0xe948,
+ 0xe687, 0xe6e9, 0xebd3, 0xf36a, 0xf81c, 0xfab7,
+ 0xfe57, 0xfd69, 0xf6cd, 0xf053, 0xebf6, 0xef05,
+ 0xf9fb, 0xfe3d, 0xf790, 0xf0df, 0xece1, 0xeb1c,
+ 0xef22, 0xf5cd, 0xf959, 0xf99a, 0xf905, 0xf9fd,
+ 0xfcb5, 0x0036, 0x045e, 0x069f, 0x04f3, 0x00ec,
+ 0xfa56, 0xf386, 0xf3db, 0xf959, 0xfb8b, 0xfb4e,
+ 0xf9ec, 0xf3c6, 0xecbc, 0xe964, 0xe87c, 0xec97,
+ 0xf471, 0xf8f2, 0xfbdb, 0xfe33, 0xfbf4, 0xf8e0,
+ 0xf470, 0xebd1, 0xe9a6, 0xee4d, 0xedfe, 0xec9a,
+ 0xee3d, 0xef60, 0xf3bf, 0xf792, 0xf5c4, 0xf771,
+ 0xfb09, 0xfa5b, 0xfd91, 0x022d, 0xffc9, 0xfddd,
+ 0x006a, 0x037c, 0x04d3, 0x0059, 0xfa14, 0xf8d1,
+ 0xf88e, 0xfad1, 0x02e0, 0x06c8, 0x047c, 0x04a9,
+ 0x06a4, 0x07a9, 0x09e0, 0x0d27, 0x100d, 0x1170,
+ 0x10e8, 0x10d0, 0x1377, 0x1657, 0x135a, 0x0bf0,
+ 0x083c, 0x07cf, 0x08e4, 0x0f5b, 0x1429, 0x1092,
+ 0x0e74, 0x10b1, 0x104c, 0x0f91, 0x0eeb, 0x0a29,
+ 0x0650, 0x0718, 0x0774, 0x054c, 0x0360, 0x02ec,
+ 0x02ae, 0x02d8, 0x0525, 0x07be, 0x07e0, 0x05c4,
+ 0x027c, 0x00f4, 0x01d5, 0x01ca, 0x025f, 0x0401,
+ 0x02ce, 0x03f3, 0x0a6e, 0x0e37, 0x108d, 0x1557,
+ 0x1504, 0x0f9b, 0x0e1e, 0x12f8, 0x1b78, 0x2087,
+ 0x1df1, 0x1a4d, 0x17d0, 0x12e9, 0x0f22, 0x0f41,
+ 0x115f, 0x14b3, 0x1862, 0x1cdd, 0x1fbf, 0x1cd3,
+ 0x1b82, 0x21cc, 0x26d0, 0x2738, 0x277e, 0x2667,
+ 0x23b7, 0x1fda, 0x1a0b, 0x1733, 0x1799, 0x15e1,
+ 0x1554, 0x1834, 0x1941, 0x1964, 0x1c56, 0x1f70,
+ 0x2093, 0x216e, 0x20bc, 0x1c43, 0x1a9c, 0x2188,
+ 0x27b6, 0x2814, 0x2a74, 0x2b57, 0x2518, 0x219f,
+ 0x221b, 0x1e08, 0x193d, 0x1652, 0x11b4, 0x111d,
+ 0x17d9, 0x1dca, 0x1d3c, 0x1896, 0x16d2, 0x1b13,
+ 0x2015, 0x22b1, 0x22ef, 0x1e00, 0x1730, 0x15fa,
+ 0x17d1, 0x16d0, 0x14d2, 0x1530, 0x16e7, 0x177b,
+ 0x15be, 0x126e, 0x109c, 0x1305, 0x17cf, 0x1c6a,
+ 0x21d4, 0x24d7, 0x1eb3, 0x140a, 0x112b, 0x15d1,
+ 0x16df, 0x12e0, 0x119b, 0x12a1, 0x11e9, 0x1410,
+ 0x1a99, 0x1f17, 0x2055, 0x1fb8, 0x1cf8, 0x1cd1,
+ 0x2152, 0x244b, 0x21dd, 0x1aa2, 0x1296, 0x1105,
+ 0x1549, 0x1701, 0x14fc, 0x1439, 0x1597, 0x15fc,
+ 0x1411, 0x1265, 0x12a8, 0x140f, 0x17ab, 0x1c99,
+ 0x1d39, 0x18fd, 0x1602, 0x1742, 0x1b65, 0x20e6,
+ 0x2548, 0x2606, 0x249e, 0x255f, 0x29cc, 0x2ea5,
+ 0x2efa, 0x2a22, 0x25ba, 0x257a, 0x2665, 0x2525,
+ 0x2190, 0x1e0f, 0x1d76, 0x1ebc, 0x2187, 0x2735,
+ 0x29e3, 0x26f7, 0x272c, 0x2ae7, 0x2ba1, 0x2bef,
+ 0x2c6b, 0x2a80, 0x2a54, 0x2aac, 0x2664, 0x2152,
+ 0x1e63, 0x1ca6, 0x1d8f, 0x1f0b, 0x1e42, 0x1cc4,
+ 0x1b83, 0x1b88, 0x1c9c, 0x1b72, 0x18d8, 0x1722,
+ 0x14d4, 0x120b, 0x119a, 0x16f1, 0x210e, 0x25af,
+ 0x1fec, 0x18ef, 0x1797, 0x1a24, 0x1d7c, 0x1f4d,
+ 0x1e7f, 0x1a5c, 0x14cb, 0x11d6, 0x1081, 0x1119,
+ 0x1617, 0x181a, 0x146f, 0x13f7, 0x14c8, 0x12ba,
+ 0x141a, 0x187b, 0x1ca8, 0x204a, 0x1c56, 0x1268,
+ 0x0e02, 0x0f1f, 0x126e, 0x1719, 0x177f, 0x13b3,
+ 0x1054, 0x0f53, 0x13f2, 0x19cb, 0x1990, 0x1916,
+ 0x1b81, 0x1ba2, 0x1b3f, 0x1b22, 0x19a3, 0x1bb4,
+ 0x1f1f, 0x1be2, 0x16f3, 0x173c, 0x183d, 0x1757,
+ 0x1880, 0x1aaf, 0x199d, 0x167c, 0x132c, 0x0f85,
+ 0x0e0d, 0x0eca, 0x0ed9, 0x1038, 0x12a1, 0x115a,
+ 0x0ed2, 0x0f9f, 0x119d, 0x10e0, 0x0b68, 0x0497,
+ 0x027b, 0x0372, 0x0468, 0x078d, 0x0a5a, 0x08c6,
+ 0x06db, 0x0701, 0x0587, 0x033f, 0x0417, 0x05e3,
+ 0x0609, 0x07b2, 0x0b11, 0x0c29, 0x0b06, 0x093f,
+ 0x089a, 0x0b0e, 0x0b9d, 0x0770, 0x0598, 0x0731,
+ 0x093c, 0x0f22, 0x1602, 0x181c, 0x196b, 0x1aa3,
+ 0x1714, 0x0f9c, 0x06f0, 0x020d, 0x06d7, 0x1024,
+ 0x137e, 0x101f, 0x0d2f, 0x0d67, 0x0c35, 0x0acc,
+ 0x0f82, 0x1634, 0x17fe, 0x1601, 0x11c7, 0x0e1b,
+ 0x0df4, 0x0ed2, 0x103f, 0x10bf, 0x0bd6, 0x06a0,
+ 0x05ae, 0x05de, 0x08eb, 0x0c71, 0x0b34, 0x0bf8,
+ 0x0dfa, 0x0933, 0x069b, 0x0a61, 0x08c0, 0x02db,
+ 0x00e7, 0xff85, 0xfbe1, 0xf905, 0xf7ab, 0xf656,
+ 0xf563, 0xf5ed, 0xf564, 0xf242, 0xf11a, 0xf462,
+ 0xf949, 0xfc11, 0xfafb, 0xf957, 0xf80b, 0xf421,
+ 0xf2bb, 0xf5b4, 0xf4e3, 0xf28c, 0xf37e, 0xf1ef,
+ 0xef0d, 0xee37, 0xea7e, 0xe723, 0xea06, 0xedac,
+ 0xed29, 0xe9a6, 0xe738, 0xe90c, 0xe8f8, 0xe21f,
+ 0xdc58, 0xdcd7, 0xdf75, 0xe200, 0xe5f7, 0xead1,
+ 0xed58, 0xec1d, 0xe884, 0xe456, 0xe244, 0xe089,
+ 0xda35, 0xd543, 0xd79c, 0xd8e3, 0xd75d, 0xdaa7,
+ 0xdee0, 0xdde6, 0xdac0, 0xd962, 0xdb10, 0xdb7d,
+ 0xd6ee, 0xd46e, 0xd75d, 0xd922, 0xd896, 0xd803,
+ 0xd7c5, 0xda0e, 0xdc26, 0xd8a9, 0xd31e, 0xd0eb,
+ 0xd154, 0xd45b, 0xdce4, 0xe7a5, 0xea4e, 0xe3d3,
+ 0xde9f, 0xdca2, 0xd8da, 0xd6bc, 0xd9c9, 0xdd40,
+ 0xdc53, 0xd785, 0xd418, 0xd4c1, 0xd672, 0xd94b,
+ 0xddb4, 0xdee6, 0xdde7, 0xdea5, 0xdd82, 0xd927,
+ 0xd521, 0xd196, 0xcfc1, 0xd26c, 0xd6cb, 0xd857,
+ 0xd73e, 0xd6dc, 0xd7df, 0xd7b3, 0xd7b4, 0xda7e,
+ 0xdb46, 0xd5c3, 0xcf3f, 0xcdc1, 0xcf0a, 0xcd65,
+ 0xc8fe, 0xc6f4, 0xc82f, 0xc971, 0xc99c, 0xc978,
+ 0xca51, 0xcc6d, 0xcd85, 0xcd62, 0xce95, 0xd080,
+ 0xd126, 0xd167, 0xd14b, 0xce1b, 0xc7e5, 0xc3ba,
+ 0xc491, 0xc6bd, 0xc710, 0xc786, 0xc984, 0xcb7d,
+ 0xcd6e, 0xd122, 0xd5b5, 0xd82f, 0xd8c0, 0xda32,
+ 0xdcc9, 0xdd3d, 0xd837, 0xcfa2, 0xcade, 0xcd26,
+ 0xd16a, 0xd2bf, 0xd265, 0xd42a, 0xd73b, 0xd7a8,
+ 0xd7d6, 0xdbe7, 0xdf77, 0xde43, 0xdab1, 0xd6c6,
+ 0xd414, 0xd479, 0xd6e1, 0xd9d9, 0xdba3, 0xd9cc,
+ 0xd549, 0xd0b7, 0xcf1e, 0xd354, 0xd97f, 0xdbaf,
+ 0xdab7, 0xd8bb, 0xd63a, 0xd53c, 0xd698, 0xd7b6,
+ 0xd482, 0xce47, 0xcc11, 0xcd20, 0xcb54, 0xc925,
+ 0xc89d, 0xc57d, 0xbfd9, 0xbaff, 0xba02, 0xbe02,
+ 0xc1eb, 0xc448, 0xc831, 0xc9d3, 0xc8bb, 0xcb31,
+ 0xcfba, 0xd306, 0xd578, 0xd5e9, 0xd712, 0xda94,
+ 0xdb21, 0xd8d4, 0xd809, 0xd8cf, 0xda2a, 0xda18,
+ 0xd86d, 0xd79f, 0xd61e, 0xd505, 0xd87c, 0xdd14,
+ 0xe00f, 0xe314, 0xe4b5, 0xe4e0, 0xe3a9, 0xe1d2,
+ 0xe57b, 0xebb2, 0xebc6, 0xe9f0, 0xea55, 0xeaf3,
+ 0xece9, 0xecf9, 0xeaa6, 0xed9b, 0xf302, 0xf45b,
+ 0xf30c, 0xedcb, 0xe633, 0xe289, 0xe26c, 0xe44a,
+ 0xe583, 0xe269, 0xdfce, 0xdfbd, 0xdde8, 0xdcad,
+ 0xdd0c, 0xdc99, 0xdd03, 0xdcd4, 0xdb2f, 0xdb20,
+ 0xdc8b, 0xe15d, 0xe6ef, 0xe476, 0xe138, 0xe604,
+ 0xe8d1, 0xe500, 0xe054, 0xdd1d, 0xdd70, 0xdda7,
+ 0xda3b, 0xdb18, 0xe157, 0xe627, 0xe927, 0xe82b,
+ 0xe27a, 0xdd8b, 0xdad5, 0xddb0, 0xe81b, 0xef83,
+ 0xede4, 0xe8e6, 0xe5e0, 0xe6cf, 0xe7b1, 0xe76f,
+ 0xed5c, 0xf671, 0xf96d, 0xf74d, 0xf324, 0xf156,
+ 0xf577, 0xf92a, 0xfb0f, 0xff5e, 0x0174, 0x0023,
+ 0xff53, 0xfe7d, 0xff9d, 0x009c, 0xfb56, 0xf541,
+ 0xf2f4, 0xf0f1, 0xf040, 0xefef, 0xee42, 0xf045,
+ 0xf4dd, 0xf853, 0xfdba, 0x02fd, 0x0298, 0xfd2f,
+ 0xf702, 0xf5e0, 0xf95c, 0xfb78, 0xfce6, 0xfd28,
+ 0xf8fd, 0xf796, 0xfc98, 0xff47, 0xfcc9, 0xf9b2,
+ 0xfa49, 0xffa4, 0x028f, 0x0056, 0x01ef, 0x0876,
+ 0x0c59, 0x0b15, 0x0528, 0xff17, 0xff8d, 0x04f3,
+ 0x0a4e, 0x0d80, 0x0cea, 0x09f1, 0x06f1, 0x04c2,
+ 0x0588, 0x0850, 0x0a6d, 0x0cb0, 0x0cc8, 0x087c,
+ 0x059c, 0x0771, 0x0a17, 0x0a2e, 0x06bc, 0x02bf,
+ 0x02de, 0x06fb, 0x0c59, 0x0ff4, 0x0fed, 0x0f06,
+ 0x0f37, 0x0ec0, 0x0d60, 0x0ae8, 0x073d, 0x04dc,
+ 0x03a1, 0x00b0, 0xfd2f, 0xfdd5, 0x0453, 0x0b8e,
+ 0x0f30, 0x1149, 0x1028, 0x084a, 0x013c, 0x01a1,
+ 0x045a, 0x0628, 0x0795, 0x0634, 0x03e7, 0x0532,
+ 0x07fd, 0x0931, 0x0928, 0x0828, 0x063d, 0x02ff,
+ 0x0107, 0x061d, 0x0e48, 0x10c0, 0x10ff, 0x12ca,
+ 0x1233, 0x1232, 0x14fd, 0x1305, 0x0abf, 0x0263,
+ 0xfe36, 0xfff1, 0x059b, 0x0cf2, 0x142b, 0x166b,
+ 0x14f0, 0x1539, 0x150c, 0x1297, 0x1078, 0x103a,
+ 0x13cb, 0x1798, 0x157f, 0x1104, 0x0f7a, 0x12d6,
+ 0x19dc, 0x1c0c, 0x191b, 0x18ac, 0x15e1, 0x0eac,
+ 0x0aa6, 0x0701, 0x030c, 0x05fc, 0x0c02, 0x0fed,
+ 0x1222, 0x0f84, 0x0a3b, 0x0869, 0x0898, 0x080d,
+ 0x06bc, 0x05f7, 0x07b9, 0x08b9, 0x05a0, 0x02cb,
+ 0x03fb, 0x079a, 0x0bb7, 0x0f40, 0x0f95, 0x0a2e,
+ 0x0341, 0x0148, 0x035f, 0x08e1, 0x126b, 0x17c9,
+ 0x148d, 0x1044, 0x0e89, 0x0dda, 0x0dcb, 0x0bef,
+ 0x09df, 0x0afa, 0x0a9d, 0x07d3, 0x08a5, 0x0ce7,
+ 0x1355, 0x1b04, 0x1cd3, 0x1954, 0x17f1, 0x15d4,
+ 0x1258, 0x1625, 0x1fbd, 0x24b4, 0x21b6, 0x1b82,
+ 0x17a9, 0x1722, 0x19ce, 0x1fc6, 0x2370, 0x2114,
+ 0x1c66, 0x18da, 0x1926, 0x1afe, 0x17b8, 0x12cc,
+ 0x102d, 0x0c71, 0x0ccb, 0x140a, 0x196e, 0x1b13,
+ 0x19ed, 0x16d8, 0x182e, 0x1788, 0x0d01, 0x0688,
+ 0x0aee, 0x0ed2, 0x1050, 0x141a, 0x1778, 0x169f,
+ 0x1463, 0x1623, 0x17be, 0x1352, 0x0f80, 0x1029,
+ 0x0f40, 0x0bb8, 0x0976, 0x0aec, 0x0e50, 0x1085,
+ 0x1556, 0x1a60, 0x15da, 0x0fdf, 0x114e, 0x105b,
+ 0x0e2b, 0x12a8, 0x14c9, 0x1083, 0x0bfb, 0x07cf,
+ 0x076f, 0x0c8c, 0x1116, 0x1635, 0x1d7d, 0x2096,
+ 0x1df4, 0x15e3, 0x09cd, 0x04e5, 0x0c4c, 0x16fb,
+ 0x1ec3, 0x2324, 0x233f, 0x1f60, 0x1992, 0x14ed,
+ 0x1207, 0x0f74, 0x0e9c, 0x0ed5, 0x0e02, 0x0e55,
+ 0x0f8e, 0x1042, 0x1138, 0x0f50, 0x0c84, 0x0e72,
+ 0x0fe2, 0x0f41, 0x110a, 0x1118, 0x1148, 0x16df,
+ 0x1b1c, 0x1c3d, 0x1bb7, 0x15bd, 0x1137, 0x1311,
+ 0x14f3, 0x17da, 0x1bbe, 0x1ddf, 0x23b8, 0x28b3,
+ 0x2338, 0x1a08, 0x1530, 0x1534, 0x18cf, 0x1bc2,
+ 0x1ce7, 0x1ccb, 0x1a69, 0x187a, 0x177a, 0x1747,
+ 0x1a8b, 0x1b4a, 0x16d8, 0x1773, 0x1e23, 0x2343,
+ 0x24c9, 0x21a7, 0x1c2d, 0x19e3, 0x1a6c, 0x1b94,
+ 0x1c86, 0x1bd6, 0x1b21, 0x1daa, 0x21b7, 0x211f,
+ 0x1bc0, 0x188a, 0x1802, 0x16e2, 0x16d4, 0x180b,
+ 0x1b2d, 0x2151, 0x2427, 0x2217, 0x20ac, 0x1f4f,
+ 0x1e0f, 0x1e28, 0x1bef, 0x1996, 0x1aab, 0x1c2b,
+ 0x1dba, 0x1d34, 0x16a8, 0x1197, 0x1537, 0x1b03,
+ 0x1bfd, 0x1b14, 0x1c87, 0x1c42, 0x165d, 0x10b6,
+ 0x0f7a, 0x1029, 0x12ab, 0x170a, 0x1b9d, 0x211c,
+ 0x26b5, 0x2921, 0x26be, 0x217a, 0x1eb8, 0x1f90,
+ 0x1ea7, 0x1c1d, 0x1ce8, 0x1f08, 0x1f0e, 0x20d8,
+ 0x24da, 0x2336, 0x1bd7, 0x16df, 0x13dd, 0x0fab,
+ 0x0e47, 0x107e, 0x13d6, 0x17db, 0x17be, 0x11a4,
+ 0x0e9c, 0x1367, 0x1a5f, 0x1ebd, 0x2066, 0x214e,
+ 0x204f, 0x19da, 0x12e2, 0x11f4, 0x12bd, 0x141c,
+ 0x198d, 0x1bc9, 0x1819, 0x16df, 0x159f, 0x0f6b,
+ 0x09b7, 0x0559, 0x002d, 0xfb2f, 0xf520, 0xf177,
+ 0xf360, 0xf53d, 0xf525, 0xf378, 0xf099, 0xf40e,
+ 0xfab1, 0xf982, 0xf7dc, 0xfca9, 0xfeb5, 0xfbc5,
+ 0xf84e, 0xf326, 0xee3f, 0xef0f, 0xf3ce, 0xf642,
+ 0xf5fa, 0xf3c1, 0xec9c, 0xe401, 0xde25, 0xd7f9,
+ 0xd5df, 0xdb0d, 0xde15, 0xde40, 0xdf68, 0xdd4a,
+ 0xdabb, 0xdb58, 0xdbb9, 0xdc9b, 0xdd54, 0xdd52,
+ 0xdf2b, 0xdf4d, 0xdf63, 0xe3cc, 0xe67f, 0xe81f,
+ 0xeb9e, 0xecfb, 0xf11b, 0xf62e, 0xf21f, 0xec42,
+ 0xe944, 0xe48c, 0xe28a, 0xe217, 0xe1fb, 0xe857,
+ 0xed64, 0xeb59, 0xe7b6, 0xe084, 0xd92f, 0xd6f0,
+ 0xd3d3, 0xd3b5, 0xdb50, 0xe305, 0xe9c1, 0xeeda,
+ 0xf0b0, 0xf67d, 0xfd32, 0xfe7f, 0x003e, 0xfed1,
+ 0xf4c4, 0xedfb, 0xf17b, 0xf886, 0xfe4c, 0x02bd,
+ 0x0548, 0x0415, 0x0213, 0x0300, 0x0343, 0x02ae,
+ 0x049f, 0x05c3, 0x050a, 0x02ea, 0xfecd, 0x003a,
+ 0x0763, 0x0a61, 0x0c51, 0x0fec, 0x0e50, 0x0b40,
+ 0x0ab5, 0x08eb, 0x09d3, 0x0f29, 0x13ab, 0x175f,
+ 0x18d4, 0x1627, 0x14bd, 0x15d2, 0x16df, 0x19ee,
+ 0x1da5, 0x1c3f, 0x14a2, 0x0b7c, 0x05da, 0x0458,
+ 0x04f2, 0x05a6, 0x054f, 0x0543, 0x03fc, 0xff8f,
+ 0xfd8a, 0xfd00, 0xf8cb, 0xfb3a, 0x0694, 0x0a24,
+ 0x0621, 0x07d4, 0x1031, 0x1a13, 0x1d40, 0x1723,
+ 0x1236, 0x1001, 0x0bee, 0x0a86, 0x0a4c, 0x09a3,
+ 0x0e4a, 0x1142, 0x0bd9, 0x06c6, 0x0536, 0x03c9,
+ 0x01d4, 0xff49, 0x014a, 0x088e, 0x0ace, 0x0513,
+ 0xfeb8, 0xfe8f, 0x043b, 0x069e, 0x0412, 0x05a5,
+ 0x0e04, 0x1ade, 0x25b9, 0x2575, 0x1f9f, 0x1bc3,
+ 0x1545, 0x1027, 0x12bc, 0x1618, 0x1850, 0x1ba1,
+ 0x1a4c, 0x1304, 0x0b1b, 0x0495, 0xfd78, 0xf4b7,
+ 0xf004, 0xf197, 0xf02c, 0xea5b, 0xe8e6, 0xea5e,
+ 0xe8c5, 0xe780, 0xea89, 0xecbf, 0xe953, 0xe6d5,
+ 0xeacf, 0xef87, 0xf1fa, 0xf2d5, 0xf07c, 0xf0e7,
+ 0xf78e, 0xfabb, 0xf895, 0xf79a, 0xf580, 0xef47,
+ 0xe79b, 0xe2cf, 0xe427, 0xe6ce, 0xe517, 0xe1d4,
+ 0xdfa4, 0xe0eb, 0xe617, 0xe63b, 0xe082, 0xdfed,
+ 0xe503, 0xe954, 0xe992, 0xe382, 0xdc50, 0xd995,
+ 0xd819, 0xd83f, 0xdcef, 0xe379, 0xe953, 0xe97a,
+ 0xe11d, 0xda36, 0xdb39, 0xdec5, 0xe26e, 0xe524,
+ 0xe3d7, 0xe1a5, 0xe1f2, 0xe253, 0xe1a1, 0xe0c5,
+ 0xe0c8, 0xe3c8, 0xe756, 0xe564, 0xddb3, 0xd39f,
+ 0xccaf, 0xd1bf, 0xde0a, 0xe1b7, 0xde5a, 0xdcaf,
+ 0xd967, 0xd65d, 0xd71a, 0xd590, 0xd406, 0xd615,
+ 0xd623, 0xd7fc, 0xde20, 0xdf1f, 0xdbbd, 0xd8ad,
+ 0xd578, 0xd96d, 0xe4b9, 0xec9d, 0xf231, 0xf713,
+ 0xf510, 0xf03c, 0xede0, 0xea1a, 0xe72a, 0xeaf3,
+ 0xf18e, 0xf41e, 0xf29f, 0xf0c3, 0xefac, 0xeefb,
+ 0xf00d, 0xf2b1, 0xf39a, 0xf107, 0xebf8, 0xe74a,
+ 0xe716, 0xec26, 0xf3f2, 0xfbca, 0xfdd2, 0xf77d,
+ 0xf276, 0xf4db, 0xf82e, 0xf97f, 0xf983, 0xf562,
+ 0xeef0, 0xe95b, 0xe2ba, 0xdb3e, 0xd6ed, 0xdaf4,
+ 0xe661, 0xee90, 0xf0b8, 0xf21a, 0xef28, 0xe70b,
+ 0xdfce, 0xd829, 0xd0d7, 0xd0f2, 0xd94d, 0xe46a,
+ 0xeb50, 0xec77, 0xed04, 0xee99, 0xf0de, 0xf264,
+ 0xef37, 0xeb5c, 0xeaba, 0xe9ca, 0xea16, 0xeaa2,
+ 0xe755, 0xe497, 0xe1a5, 0xdde4, 0xe124, 0xe62c,
+ 0xe78f, 0xebaf, 0xede4, 0xea21, 0xe64c, 0xe2c9,
+ 0xe3ae, 0xe9da, 0xeb4d, 0xeae4, 0xed83, 0xecb3,
+ 0xe8d2, 0xe309, 0xdb76, 0xd9c6, 0xdec9, 0xe74d,
+ 0xf139, 0xf423, 0xf022, 0xebb9, 0xe5d7, 0xe0e6,
+ 0xddb1, 0xd764, 0xd12a, 0xcf44, 0xd5ea, 0xe62a,
+ 0xee5e, 0xe5cf, 0xdc4c, 0xd81a, 0xd696, 0xd9ae,
+ 0xdc32, 0xdab3, 0xd8f1, 0xd5ff, 0xd212, 0xd01a,
+ 0xce8e, 0xcdb5, 0xd337, 0xdf96, 0xe5dc, 0xdd49,
+ 0xd2d2, 0xd177, 0xd432, 0xd9cd, 0xe1bb, 0xe536,
+ 0xe4b6, 0xe2a0, 0xde5d, 0xdced, 0xdf4b, 0xe096,
+ 0xe39a, 0xeb34, 0xf1e8, 0xf39e, 0xf1ff, 0xf1cf,
+ 0xf502, 0xf5ea, 0xf369, 0xf4b3, 0xf6f4, 0xf33f,
+ 0xefa6, 0xef2b, 0xec3d, 0xea35, 0xedc6, 0xf331,
+ 0xf683, 0xf5ac, 0xf45e, 0xf8ce, 0xfec3, 0x006f,
+ 0xfd81, 0xf665, 0xf303, 0xf81c, 0xfc16, 0xfb84,
+ 0xfc8b, 0xffcc, 0x00f6, 0xfb6a, 0xf41c, 0xf65e,
+ 0xfe9e, 0x027f, 0x0268, 0x02c6, 0x03c8, 0x0066,
+ 0xfbce, 0x0048, 0x02fe, 0xf93e, 0xf3bb, 0xf6b4,
+ 0xf774, 0xfad8, 0x002f, 0x0211, 0x071b, 0x0bcc,
+ 0x0886, 0x0167, 0xf7c6, 0xed8c, 0xe8d8, 0xec44,
+ 0xf864, 0x03c4, 0x0428, 0x002a, 0xfbb2, 0xf3c2,
+ 0xef3d, 0xf34b, 0xfc26, 0x03c5, 0x071f, 0x0ca8,
+ 0x13a2, 0x0f93, 0x061e, 0x05b8, 0x099b, 0x0982,
+ 0x06cd, 0x052e, 0x071f, 0x06ea, 0xfda6, 0xf4a1,
+ 0xf81d, 0x02c9, 0x09ad, 0x0c08, 0x0cf8, 0x0cc3,
+ 0x0b6f, 0x08bf, 0x0548, 0x0393, 0x03de, 0x0522,
+ 0x07a2, 0x0be8, 0x12d0, 0x18ce, 0x196c, 0x1816,
+ 0x145e, 0x0b28, 0x0706, 0x0c3f, 0x0e6d, 0x0bf5,
+ 0x0af1, 0x0990, 0x08b8, 0x08e3, 0x04d5, 0xff60,
+ 0xfe96, 0xfebd, 0xfbe7, 0xfa39, 0xfcac, 0x00a1,
+ 0x04cd, 0x07d9, 0x0412, 0xfa6b, 0xf627, 0xfbb4,
+ 0x02fa, 0x058e, 0x0531, 0x049a, 0x05a0, 0x0c29,
+ 0x1551, 0x156b, 0x0a19, 0xfe37, 0xf944, 0xf800,
+ 0xf371, 0xeb27, 0xe536, 0xe5e6, 0xecb7, 0xf3d4,
+ 0xf741, 0xfbe1, 0x026f, 0x06e7, 0x0c6f, 0x1095,
+ 0x0b6a, 0x007e, 0xf68c, 0xf266, 0xf706, 0xfcb1,
+ 0xff45, 0x03a3, 0x06e8, 0x0705, 0x080f, 0x08e8,
+ 0x0917, 0x0a59, 0x0c48, 0x0e34, 0x0c01, 0x066c,
+ 0x050b, 0x0619, 0x03b1, 0xfda7, 0xf711, 0xf6e2,
+ 0xfc67, 0xffb1, 0x0133, 0x01ac, 0x02b4, 0x08db,
+ 0x0a58, 0x03a4, 0x02d2, 0x0548, 0x034f, 0x0283,
+ 0xfef1, 0xf744, 0xf62d, 0xf928, 0xfbd8, 0x032f,
+ 0x09fd, 0x0828, 0x01f4, 0xfe6d, 0xfd31, 0xfa4f,
+ 0xf7c5, 0xf96a, 0xfd20, 0x009e, 0x0241, 0x0079,
+ 0xfe90, 0xfdd2, 0xfc51, 0xfc96, 0x00fb, 0x07ae,
+ 0x0d31, 0x0e8c, 0x0af6, 0x0227, 0xfa3c, 0xfd82,
+ 0x05db, 0x0507, 0xfd2a, 0xf74a, 0xf50e, 0xf47e,
+ 0xf5db, 0xfb1d, 0xff53, 0xfe4b, 0xff58, 0x03a4,
+ 0x050a, 0x0338, 0xf8fe, 0xe6d5, 0xdf03, 0xe685,
+ 0xef64, 0xf241, 0xeff6, 0xed25, 0xedd5, 0xefd5,
+ 0xf190, 0xf27b, 0xf27a, 0xf46d, 0xf618, 0xf5a0,
+ 0xf7be, 0xf9b0, 0xf596, 0xedb5, 0xe4e2, 0xdf32,
+ 0xe153, 0xe7a7, 0xec56, 0xef9c, 0xf5ec, 0xfefc,
+ 0x037c, 0x05f4, 0x0e02, 0x12ae, 0x0d6a, 0x089d,
+ 0x07b4, 0x062f, 0x04fb, 0x031d, 0xfddc, 0xf94e,
+ 0xfd12, 0x09a4, 0x15d5, 0x1c75, 0x1f5a, 0x1ce4,
+ 0x1725, 0x1497, 0x1192, 0x09a4, 0x0222, 0xffaf,
+ 0x0476, 0x0f8c, 0x1626, 0x1036, 0x0664, 0x0412,
+ 0x05dd, 0x04be, 0x0672, 0x0e62, 0x105f, 0x06af,
+ 0xfcb4, 0xfb8f, 0x0178, 0x0780, 0x0868, 0x06c7,
+ 0x064f, 0x03ce, 0xfe26, 0xfbe7, 0x00b1, 0x0693,
+ 0x07a8, 0x06d8, 0x0661, 0x016d, 0xf7f9, 0xf009,
+ 0xea80, 0xe84e, 0xee98, 0xf91e, 0xfbf3, 0xf793,
+ 0xf7bb, 0xfea7, 0x034e, 0x02d8, 0x0472, 0x0aef,
+ 0x0f03, 0x0c34, 0x0863, 0x0796, 0x058e, 0x016e,
+ 0x0050, 0x0347, 0x0635, 0x0504, 0xff5b, 0xf934,
+ 0xf633, 0xf933, 0x03db, 0x0ebf, 0x0f9c, 0x08c6,
+ 0x02d1, 0xff55, 0xfc09, 0xfb40, 0x0159, 0x0917,
+ 0x0920, 0x0620, 0x085e, 0x0bcf, 0x0c2e, 0x0990,
+ 0x0541, 0x0739, 0x0edd, 0x0d22, 0x0185, 0xf8e4,
+ 0xf636, 0xf8eb, 0xfe8d, 0x00a6, 0x0392, 0x0a7f,
+ 0x0c57, 0x0c5c, 0x119a, 0x10c4, 0x06b3, 0xfef4,
+ 0xfb57, 0xfd7e, 0x0898, 0x1143, 0x10cf, 0x0ea6,
+ 0x0b11, 0x04bd, 0x0320, 0x07d8, 0x0d4d, 0x11c1,
+ 0x156b, 0x17c0, 0x18e0, 0x1718, 0x10fa, 0x0baf,
+ 0x0bdd, 0x0cfa, 0x0bbf, 0x0ad7, 0x09c2, 0x07ad,
+ 0x054d, 0x0325, 0x083e, 0x14ff, 0x19e0, 0x1374,
+ 0x0d79, 0x0898, 0x00a8, 0xf883, 0xf255, 0xef27,
+ 0xf0a4, 0xf6db, 0xfdf9, 0x000c, 0xff03, 0xff9d,
+ 0xff72, 0xfebc, 0xfe17, 0xfab4, 0xfb5a, 0x018a,
+ 0x0135, 0xfd38, 0xfe8d, 0xfe43, 0xfa0c, 0xf84d,
+ 0xfa3e, 0x000b, 0x0491, 0x0252, 0x01de, 0x0654,
+ 0x0696, 0x045d, 0x039e, 0xffdd, 0xfc33, 0xfc0c,
+ 0xfab5, 0xfa5d, 0xfbd0, 0xf7fd, 0xf335, 0xf3f7,
+ 0xf684, 0xfe45, 0x0c7a, 0x130f, 0x0e91, 0x098b,
+ 0x0747, 0x07ae, 0x0af2, 0x0c26, 0x0779, 0xfff0,
+ 0xfcc0, 0x0078, 0x04e9, 0x04e8, 0x00fe, 0xfcf6,
+ 0xfd56, 0xff4b, 0xfc5a, 0xf598, 0xef84, 0xecb3,
+ 0xec67, 0xeb82, 0xe9a0, 0xe622, 0xe47b, 0xed9e,
+ 0xfabd, 0xfed8, 0xff62, 0x0241, 0x065b, 0x0c5f,
+ 0x0ef1, 0x0df0, 0x0dd5, 0x06a5, 0xfa68, 0xf4ea,
+ 0xf246, 0xf3ba, 0x00d6, 0x0e28, 0x0f56, 0x0552,
+ 0xf7c4, 0xf43a, 0xfd04, 0x02e2, 0xfcb4, 0xf38d,
+ 0xf3ed, 0xf9bc, 0xfc38, 0x003a, 0x0402, 0xff51,
+ 0xfa50, 0xfbd7, 0xfeb6, 0xff8b, 0xfc02, 0xf96b,
+ 0x0029, 0x081c, 0x0831, 0x0590, 0x073f, 0x0e01,
+ 0x12c6, 0x11a9, 0x0ecc, 0x0849, 0xfe14, 0xf8f6,
+ 0xfb1a, 0x01ba, 0x08d4, 0x0c39, 0x0e89, 0x0d08,
+ 0x048a, 0x0008, 0x0134, 0x00ce, 0x032f, 0x06dd,
+ 0x04df, 0x0237, 0x04d8, 0x0c4d, 0x1128, 0x0be5,
+ 0x04f5, 0x0618, 0x0b06, 0x0b68, 0x0049, 0xf12b,
+ 0xef21, 0xf576, 0xf6e0, 0xf7c9, 0xff97, 0x0baf,
+ 0x0fb1, 0x0373, 0xf4f1, 0xf175, 0xf1fd, 0xf002,
+ 0xec9b, 0xe8c1, 0xe6a1, 0xe863, 0xee73, 0xf4dd,
+ 0xf68f, 0xf59e, 0xf46b, 0xf392, 0xf5f7, 0xf7b6,
+ 0xf5a9, 0xf684, 0xf8f3, 0xf58f, 0xef81, 0xea70,
+ 0xe397, 0xdcd2, 0xde14, 0xe8e1, 0xf268, 0xf28d,
+ 0xee52, 0xece8, 0xefcb, 0xf2e2, 0xf1f8, 0xf040,
+ 0xef60, 0xecc4, 0xee2d, 0xf745, 0xffe9, 0x03c6,
+ 0x0301, 0xfc46, 0xf4e3, 0xf39d, 0xfa0c, 0x092d,
+ 0x18df, 0x1988, 0x0c88, 0x0263, 0x02b1, 0x07f9,
+ 0x08e6, 0x03a8, 0x01b2, 0x0634, 0x0938, 0x0837,
+ 0x0481, 0xfea2, 0xfcec, 0x020f, 0x07a6, 0x0a43,
+ 0x0ba0, 0x0cc6, 0x0b8f, 0x0753, 0x0444, 0xff7f,
+ 0xf4b0, 0xeea4, 0xf40b, 0xfde6, 0x0a2f, 0x1864,
+ 0x232a, 0x2453, 0x196f, 0x0f2c, 0x0e54, 0x0bd2,
+ 0x0720, 0x0619, 0x0324, 0x0483, 0x0f4e, 0x16e6,
+ 0x17a7, 0x1317, 0x0c81, 0x0fcb, 0x15c7, 0x128d,
+ 0x0f6e, 0x0b29, 0x00f3, 0xfeb4, 0x058b, 0x0a68,
+ 0x0c18, 0x0a72, 0x07e7, 0x08b6, 0x0910, 0x0595,
+ 0x001c, 0xfd6e, 0xff72, 0xff72, 0xfc22, 0xfb88,
+ 0xfeca, 0x0758, 0x1106, 0x10d9, 0x0a12, 0x02cd,
+ 0xf58e, 0xe772, 0xe751, 0xf4eb, 0x0365, 0x0b76,
+ 0x0e1d, 0x0ca8, 0x096a, 0x061d, 0xff29, 0xf940,
+ 0xfd35, 0x021c, 0xff4a, 0xfa2b, 0xf328, 0xe977,
+ 0xe21f, 0xe08f, 0xe90e, 0xf6b6, 0xfc1f, 0xfafc,
+ 0xfac1, 0xfb27, 0xfeba, 0x025b, 0xfd18, 0xf5a0,
+ 0xf9e8, 0x090c, 0x1581, 0x1736, 0x13a9, 0x0dda,
+ 0x039b, 0xfd3d, 0xfe66, 0xfc75, 0xf96f, 0xfec0,
+ 0x0494, 0x03cc, 0x02d5, 0x034d, 0x026d, 0x0230,
+ 0x01cb, 0xff38, 0xfeff, 0x04c5, 0x0bf5, 0x0cc7,
+ 0x0616, 0xfe1f, 0xf655, 0xec26, 0xe661, 0xebb7,
+ 0xf4b7, 0xf9c0, 0xfe4d, 0x04b7, 0x0828, 0x07bd,
+ 0x075d, 0x04b1, 0xfeba, 0xfe08, 0x0353, 0x0581,
+ 0x046c, 0x046e, 0x03c5, 0x0190, 0x0009, 0xfe07,
+ 0xf949, 0xf869, 0x016f, 0x0992, 0x08c1, 0x060d,
+ 0x010a, 0xf6c2, 0xee72, 0xeb16, 0xecd7, 0xf18b,
+ 0xf198, 0xf20d, 0xf805, 0xfb65, 0xffe0, 0x0802,
+ 0x07ec, 0x0414, 0x053d, 0x0363, 0xfda2, 0xfc1e,
+ 0xff88, 0xff9c, 0xf59d, 0xee32, 0xf66e, 0x022e,
+ 0x05d5, 0x04f2, 0x0452, 0x0605, 0x04b5, 0xfed8,
+ 0xfe9b, 0x034a, 0x03ff, 0xfddc, 0xf133, 0xeba3,
+ 0xf736, 0x0282, 0x02b7, 0x0210, 0x0468, 0x07e8,
+ 0x0ad2, 0x0829, 0xfe9b, 0xf28c, 0xeaad, 0xe66f,
+ 0xe119, 0xe580, 0xf893, 0x051e, 0x0445, 0x03f9,
+ 0x0318, 0xfd6b, 0xfa69, 0xfb74, 0xfeca, 0x0623,
+ 0x0c57, 0x0cd6, 0x0a53, 0xff5b, 0xe92d, 0xdda6,
+ 0xea5f, 0xfa34, 0xfc53, 0xf80c, 0xf4d5, 0xf400,
+ 0xf2d3, 0xeb6c, 0xe043, 0xdb01, 0xe08f, 0xebcd,
+ 0xf34a, 0xf6e4, 0xfa29, 0xf787, 0xed39, 0xe535,
+ 0xe5fb, 0xea37, 0xebfb, 0xef50, 0xf50d, 0xf68a,
+ 0xf8a9, 0x00c3, 0x062c, 0x05a4, 0x0303, 0x0229,
+ 0x07a5, 0x0c01, 0x08b4, 0x0546, 0x02f3, 0x025d,
+ 0x05c4, 0x0406, 0x0225, 0x09ee, 0x0c48, 0x05b3,
+ 0x0464, 0x05ca, 0x03eb, 0x00bf, 0x01f6, 0x0ba2,
+ 0x0f40, 0x0681, 0x0213, 0xfefc, 0xf65a, 0xf796,
+ 0xff13, 0xfdca, 0xfcfd, 0x02b0, 0x0478, 0x0148,
+ 0x01fb, 0x05ce, 0x0343, 0xfb56, 0xf47c, 0xec54,
+ 0xe545, 0xe6ad, 0xedeb, 0xf5f3, 0xfce8, 0x0391,
+ 0x0a41, 0x08bb, 0x0019, 0xfede, 0x0379, 0x0500,
+ 0x0480, 0xfe4c, 0xefde, 0xe2f6, 0xe154, 0xe9f6,
+ 0xf08c, 0xf228, 0xfa18, 0x0128, 0xf8ee, 0xebd5,
+ 0xe361, 0xd9d2, 0xd01a, 0xca94, 0xcb37, 0xd974,
+ 0xf73e, 0x11cc, 0x12fc, 0x0560, 0x04e9, 0x0b2a,
+ 0x0484, 0x00ac, 0x0d62, 0x1518, 0x0cd3, 0x03c0,
+ 0xff3f, 0xfc38, 0xfebf, 0x04d0, 0x0564, 0xfe22,
+ 0xf625, 0xf95e, 0x059e, 0x088d, 0x0097, 0xfb2e,
+ 0xf9aa, 0xf896, 0xf4c9, 0xec8b, 0xea46, 0xf1c6,
+ 0xf8d8, 0xfb7f, 0xf9d0, 0xfa10, 0x00d1, 0xfd06,
+ 0xf1aa, 0xfd36, 0x14b7, 0x19ad, 0x14bc, 0x13a4,
+ 0x116a, 0x0921, 0xfcd1, 0xf7aa, 0xfaf2, 0xfd1c,
+ 0x06c3, 0x18d3, 0x1b07, 0x097b, 0xf6de, 0xf068,
+ 0xfd1a, 0x13f5, 0x2385, 0x28e8, 0x2461, 0x167b,
+ 0x0ae8, 0x092d, 0x0de4, 0x134a, 0x14fc, 0x1583,
+ 0x1475, 0x0afc, 0x03d8, 0x0f10, 0x2056, 0x23dd,
+ 0x18ea, 0x06e0, 0xf8cc, 0xf9d6, 0x0671, 0x0fe8,
+ 0x0cd4, 0x03d6, 0x0322, 0x09ee, 0x10b4, 0x19c9,
+ 0x1f02, 0x169e, 0x0b94, 0x07d1, 0x0502, 0x007a,
+ 0xfdbb, 0xffad, 0x0403, 0x03f3, 0x0430, 0x0a46,
+ 0x0c48, 0x08cf, 0x08c7, 0x0a9d, 0x0c48, 0x0d3d,
+ 0x07b6, 0xfd5b, 0xf7c7, 0xfc9f, 0x0478, 0x0205,
+ 0xf9b3, 0xf4cd, 0xec9d, 0xdf6d, 0xd36b, 0xd0ef,
+ 0xe4cd, 0xfdf9, 0x0301, 0x0c81, 0x26d4, 0x2a44,
+ 0x1278, 0x011a, 0xf864, 0xf285, 0xfb89, 0x0c02,
+ 0x09b5, 0xf62c, 0xecc2, 0xf28d, 0xf9ce, 0x00c0,
+ 0x02c7, 0xfcf5, 0xfd08, 0xfef4, 0xf6d9, 0xf1d8,
+ 0xf144, 0xea8b, 0xe779, 0xe70b, 0xdf96, 0xdd93,
+ 0xe58b, 0xeeb3, 0xf84f, 0xfac9, 0xf2f3, 0xee55,
+ 0xeda9, 0xeab6, 0xed89, 0xfa14, 0x06a7, 0x0a8b,
+ 0x08e6, 0x08eb, 0x05c4, 0xfbde, 0xf484, 0xf1c1,
+ 0xf159, 0xf716, 0xfd9c, 0xfe3e, 0xfbab, 0xf63a,
+ 0xf1c0, 0xf320, 0xf3bf, 0xf423, 0xfd05, 0x089f,
+ 0x0bea, 0x0607, 0xfea9, 0xfd8c, 0xfebd, 0xfe4b,
+ 0x0229, 0x07b9, 0x0983, 0x0ca8, 0x0ff4, 0x0e39,
+ 0x0a99, 0x06ab, 0x0448, 0x05ba, 0x0452, 0xfc05,
+ 0xf1f1, 0xee39, 0xf71c, 0x0224, 0x0222, 0x0153,
+ 0x0362, 0xf97d, 0xe9a8, 0xe2bc, 0xe15a, 0xe5e2,
+ 0xf2ae, 0xfe01, 0x04f6, 0x07d8, 0x0027, 0xf5e1,
+ 0xf94e, 0x07fc, 0x1562, 0x1c3f, 0x19b2, 0x0883,
+ 0xefdd, 0xe5cd, 0xec72, 0xefe2, 0xf29e, 0x0082,
+ 0x09ac, 0x00e7, 0xefae, 0xdcb1, 0xce17, 0xd29e,
+ 0xec89, 0x0317, 0xfe90, 0xf229, 0xfb42, 0x06e2,
+ 0x02fd, 0x0a1c, 0x1fa3, 0x25cd, 0x1fa8, 0x1f65,
+ 0x1b0e, 0x0a58, 0xfd75, 0xfcc8, 0xf946, 0xef00,
+ 0xee16, 0xf52f, 0xf6e7, 0xf74f, 0xf9dc, 0xfa80,
+ 0xfe50, 0x0494, 0x0351, 0xfb68, 0xf508, 0xf421,
+ 0xf387, 0xed6b, 0xec5d, 0xf25a, 0xeb2e, 0xe02b,
+ 0xedbf, 0x02ef, 0x06ab, 0x0656, 0x07ce, 0x00a8,
+ 0xf7a7, 0xf5e0, 0xf9d1, 0xfe7f, 0xfece, 0xff85,
+ 0xffd0, 0xf2a6, 0xe2a0, 0xe1bc, 0xe679, 0xea41,
+ 0xeef0, 0xeeca, 0xf1e5, 0xfcaf, 0xfe03, 0xf80e,
+ 0xfbe7, 0x03e2, 0x0252, 0xf8ff, 0xf5ba, 0xfbec,
+ 0xfbe1, 0xf61a, 0xff8f, 0x14bd, 0x1ceb, 0x11c6,
+ 0x0340, 0xfe55, 0xffd1, 0x03a2, 0x07d9, 0x020a,
+ 0xf3c0, 0xedb4, 0xf2a7, 0xf9ad, 0xfbbd, 0xf9a1,
+ 0xff29, 0x0a8a, 0x0d16, 0x0a10, 0x073a, 0x0183,
+ 0xff22, 0x008e, 0xfda4, 0xfd34, 0x0663, 0x0eb2,
+ 0x0dae, 0x0b1e, 0x0e71, 0x10e1, 0x0cd3, 0x05d3,
+ 0xfd08, 0xf675, 0xf988, 0x01df, 0x04dc, 0xffed,
+ 0xfb31, 0xfb39, 0xf302, 0xe0b3, 0xdcea, 0xed7d,
+ 0xf995, 0xf628, 0xf72c, 0x0a50, 0x1842, 0x10b0,
+ 0x0959, 0x070a, 0xfd2d, 0xf977, 0xfe13, 0xf9cf,
+ 0xf49b, 0xf815, 0xfb2c, 0xf8a0, 0xf095, 0xe7f0,
+ 0xe6fc, 0xf265, 0x06b2, 0x0f2b, 0x02ba, 0xf70e,
+ 0xf368, 0xef27, 0xed6f, 0xe9bf, 0xe024, 0xd9d0,
+ 0xd663, 0xd5aa, 0xdcda, 0xe7f3, 0xf308, 0xf80e,
+ 0xf599, 0xf860, 0xf9da, 0xece7, 0xe545, 0xf06e,
+ 0xfc96, 0xfe53, 0xfc7e, 0xfcbe, 0xf9b2, 0xf213,
+ 0xf0cb, 0xf765, 0x008f, 0x0c40, 0x12c0, 0x0e17,
+ 0x02f2, 0xf4fe, 0xeb62, 0xe985, 0xea60, 0xeee6,
+ 0xf404, 0xf832, 0x044d, 0x0f6f, 0x1035, 0x1299,
+ 0x15dc, 0x1320, 0x0e47, 0x07ed, 0x084c, 0x0d7b,
+ 0x03f1, 0xfb15, 0x07c8, 0x1213, 0x0c67, 0x045e,
+ 0xfcd1, 0xf9b8, 0x01f3, 0x0f99, 0x1a2f, 0x1d23,
+ 0x1976, 0x12c3, 0x0a9e, 0x0694, 0x063a, 0x033b,
+ 0x0457, 0x0aeb, 0x08c9, 0xfece, 0xfbe9, 0x046a,
+ 0x0e2b, 0x0cc5, 0x054c, 0x076c, 0x12de, 0x1bd4,
+ 0x1975, 0x09d4, 0xf683, 0xe9bd, 0xe386, 0xe026,
+ 0xdbc3, 0xd5a5, 0xd0f6, 0xd1b4, 0xe16b, 0xfd7d,
+ 0x0a54, 0x03e2, 0x091b, 0x19fb, 0x1b3d, 0x1284,
+ 0x1101, 0x0edb, 0x0835, 0x0808, 0x0cfd, 0x0b24,
+ 0x0368, 0x0297, 0x08dc, 0x093e, 0x064c, 0x0bc1,
+ 0x12bd, 0x129d, 0x11b8, 0x0fc3, 0x0433, 0xf466,
+ 0xee3b, 0xf09c, 0xf009, 0xee40, 0xf1b2, 0xf49c,
+ 0xf61e, 0xfa29, 0xf965, 0xf427, 0xf4d6, 0xf887,
+ 0xf863, 0xf3a1, 0xea8e, 0xe208, 0xdbd8, 0xd90a,
+ 0xe376, 0xf4fd, 0xf737, 0xe991, 0xdd5d, 0xdc04,
+ 0xe5a5, 0xf5b2, 0x0691, 0x0f3b, 0x0780, 0xf94a,
+ 0xf22b, 0xee8e, 0xedc4, 0xf4f1, 0xf9e1, 0xf431,
+ 0xefe4, 0xf50a, 0xfa2f, 0xfb44, 0xffe1, 0x0597,
+ 0x03c0, 0xfef0, 0xfc1b, 0xf602, 0xee5d, 0xeeb8,
+ 0xf8cf, 0x0426, 0x073b, 0x037d, 0x01a6, 0x03c3,
+ 0x0977, 0x12b3, 0x174a, 0x1321, 0x0fb4, 0x0f98,
+ 0x0940, 0xfe15, 0xfb2c, 0x0131, 0x04b8, 0x0204,
+ 0xfc43, 0xf6ad, 0xf6b8, 0xfa47, 0xf68c, 0xeed7,
+ 0xf195, 0xfb33, 0xfce5, 0xfc40, 0x07b7, 0x1570,
+ 0x163c, 0x0e88, 0xfc1e, 0xdcdb, 0xcd75, 0xdb70,
+ 0xea4d, 0xead8, 0xe727, 0xebf7, 0x00cb, 0x0d0a,
+ 0xf966, 0xe9eb, 0xf9b1, 0x089f, 0x0708, 0x0632,
+ 0x0642, 0xfdf4, 0xef9d, 0xe57f, 0xe792, 0xf215,
+ 0xfbdb, 0xfafe, 0xef46, 0xed42, 0xf95a, 0xff16,
+ 0xffe4, 0x017c, 0xf6d6, 0xe9ba, 0xed3b, 0xf66b,
+ 0xf774, 0xf42f, 0xf712, 0x0213, 0x06e8, 0x025e,
+ 0x005c, 0xfb54, 0xeeb1, 0xe793, 0xe72a, 0xea49,
+ 0xf62c, 0x0059, 0xfbeb, 0xf464, 0xf5c8, 0xfa89,
+ 0xff50, 0x0750, 0x0f27, 0x122f, 0x0f9a, 0x0723,
+ 0xff3b, 0xfade, 0xf23d, 0xee34, 0xfe04, 0x12f7,
+ 0x1d31, 0x2444, 0x2937, 0x23cd, 0x1653, 0x0b63,
+ 0x09ce, 0x094d, 0x0026, 0xf81b, 0xfb79, 0x0339,
+ 0x0643, 0x0424, 0x01fd, 0x02fc, 0x057b, 0x0c1d,
+ 0x1b76, 0x2a80, 0x293b, 0x1a47, 0x103d, 0x0e42,
+ 0x0856, 0xfd90, 0xf4fd, 0xf274, 0xf726, 0xfeff,
+ 0x080a, 0x123b, 0x1769, 0x1a6d, 0x209d, 0x1cb3,
+ 0x08f8, 0xf6a7, 0xf329, 0xfc9c, 0x0625, 0x066c,
+ 0x0590, 0x0ac7, 0x0e96, 0x0ab6, 0x0492, 0x0586,
+ 0x0b27, 0x0985, 0xff0e, 0xf4e3, 0xeffd, 0xeaa1,
+ 0xe3e5, 0xecd4, 0x0246, 0x0634, 0x00cd, 0x0ff2,
+ 0x2555, 0x28dc, 0x1fc9, 0x1416, 0x09a9, 0x02a0,
+ 0x01db, 0x06a8, 0x07af, 0x0713, 0x0ec0, 0x178b,
+ 0x182a, 0x0e81, 0xfc0a, 0xee29, 0xecb2, 0xf355,
+ 0xfeff, 0x0630, 0x044b, 0xff4a, 0xf53d, 0xeaf6,
+ 0xe9e2, 0xecd3, 0xf0fe, 0xf2e2, 0xefd8, 0xf49e,
+ 0xfc0f, 0xfa6c, 0xfd71, 0x013a, 0xf97b, 0xf5d3,
+ 0xf803, 0xf6b8, 0xf89c, 0xfb7b, 0xff5d, 0x0992,
+ 0x0b4a, 0xfe29, 0xedf2, 0xe211, 0xe486, 0xf38c,
+ 0xfbf6, 0xfb5d, 0xfbb0, 0xff0a, 0x03f6, 0x05d8,
+ 0x057d, 0x0aa1, 0x0eed, 0x07e6, 0x0117, 0x0851,
+ 0x1310, 0x1430, 0x0d2c, 0xfded, 0xebba, 0xe5f0,
+ 0xeba4, 0xf590, 0x0390, 0x09d1, 0x062b, 0x093e,
+ 0x1015, 0x0fca, 0x0939, 0xfc37, 0xf59e, 0x0142,
+ 0x0df9, 0x120c, 0x1358, 0x0b4c, 0xfd5c, 0xfa7d,
+ 0x023b, 0x080b, 0x0320, 0xfaaf, 0x015d, 0x0e45,
+ 0x0941, 0xfafa, 0xf4f0, 0xf718, 0xff6e, 0x0160,
+ 0xf956, 0x0327, 0x1ac5, 0x1a3f, 0x0a95, 0x0568,
+ 0x01a9, 0xfa34, 0xed1a, 0xd4f4, 0xcc88, 0xe884,
+ 0x0aaf, 0x13c9, 0x1054, 0x1b7e, 0x2978, 0x1d52,
+ 0x0911, 0x012c, 0xf155, 0xe1c4, 0xebcf, 0xf9a4,
+ 0xf955, 0xf9ae, 0xfdde, 0xfee8, 0xfb29, 0xf8e7,
+ 0x04c7, 0x18ad, 0x2139, 0x1d78, 0x1659, 0x0d4c,
+ 0x0221, 0xf975, 0xf7aa, 0xf9d8, 0xfbba, 0xfbc2,
+ 0xf95b, 0xf877, 0xf769, 0xee5f, 0xe32b, 0xde3a,
+ 0xdbff, 0xdbaf, 0xe0f6, 0xea32, 0xf026, 0xefdb,
+ 0xf2d8, 0xfd26, 0x06a1, 0x09cf, 0x0191, 0xf49a,
+ 0xf3bc, 0xf87c, 0xfbe3, 0x0610, 0x0ab8, 0x0324,
+ 0xfcfb, 0xf3c1, 0xe756, 0xe2d1, 0xdfc2, 0xe2e6,
+ 0xf321, 0xf9e9, 0xefed, 0xe71a, 0xe47c, 0xe45a,
+ 0xe3e0, 0xe2b3, 0xe3da, 0xe788, 0xf299, 0x0353,
+ 0x05de, 0xf7f1, 0xed93, 0xecba, 0xeff8, 0xf5aa,
+ 0xfbae, 0x0006, 0x035c, 0x067b, 0x0969, 0x0c2d,
+ 0x0abe, 0x003c, 0xf6bf, 0xfbf8, 0x0a97, 0x1523,
+ 0x1057, 0xfd3f, 0xf21b, 0xf659, 0xf95a, 0xf7d5,
+ 0xf4d0, 0xefba, 0xee09, 0xed3d, 0xee59, 0xf90f,
+ 0x0037, 0xff81, 0x0656, 0x0ab6, 0x0145, 0xf97c,
+ 0xf4d5, 0xe967, 0xe5cf, 0xfa10, 0x0fcc, 0x083e,
+ 0xf8da, 0x04cb, 0x1489, 0x0c8f, 0x0587, 0x0e32,
+ 0x1515, 0x1534, 0x0f67, 0x0123, 0xf9a7, 0x02d7,
+ 0x0baf, 0x0955, 0x016c, 0xfd39, 0x0b46, 0x2193,
+ 0x2060, 0x129e, 0x119c, 0x0cb1, 0x00b7, 0x0375,
+ 0x0c9b, 0x0d16, 0x0610, 0xf87d, 0xefc8, 0xf785,
+ 0x0695, 0x0cd2, 0x0387, 0xf7f0, 0xf8a7, 0xfe07,
+ 0x0273, 0x059b, 0xffdf, 0xf9fa, 0xfd1b, 0xff0f,
+ 0x0193, 0x0752, 0x05fb, 0x0485, 0x085e, 0x0523,
+ 0x024f, 0x0dbd, 0x16dc, 0x0f98, 0x08ef, 0x0d64,
+ 0x0f16, 0x09be, 0x0466, 0xffbe, 0x0324, 0x0ebe,
+ 0x10d0, 0x0bb2, 0x0a45, 0x04b2, 0xfee6, 0xfe92,
+ 0xf6d2, 0xedb4, 0xf2f6, 0xff18, 0x093b, 0x0cfe,
+ 0x03ae, 0xf469, 0xecd8, 0xf236, 0x0132, 0x0dae,
+ 0x104d, 0x0ccb, 0x0542, 0xfd9f, 0xfd4f, 0x01b0,
+ 0x0380, 0x047e, 0x0aa2, 0x1560, 0x1d07, 0x1b11,
+ 0x107c, 0x0583, 0x0348, 0x090b, 0x0e23, 0x0fdf,
+ 0x0e5e, 0x0469, 0xf4d6, 0xedd6, 0xf138, 0xf151,
+ 0xecba, 0xf09e, 0xfb2a, 0xfd76, 0xf913, 0xf3b5,
+ 0xe889, 0xead4, 0x0ea9, 0x2bd5, 0x2257, 0x190d,
+ 0x1ea0, 0x121a, 0xfe05, 0x0035, 0x0f56, 0x1eb1,
+ 0x29d0, 0x262f, 0x17bf, 0x0c44, 0x07dc, 0x0aa5,
+ 0x1082, 0x1141, 0x0e74, 0x0f65, 0x0de5, 0x0039,
+ 0xf091, 0xeae7, 0xecb2, 0xfb5d, 0x173e, 0x24f7,
+ 0x1685, 0x005d, 0xf503, 0xf373, 0xf2f1, 0xf3be,
+ 0xfc29, 0x03ce, 0xff76, 0xf215, 0xe150, 0xd5e2,
+ 0xd71c, 0xdee5, 0xe83c, 0xeffe, 0xf0a8, 0xef8a,
+ 0xecba, 0xe218, 0xdd7c, 0xe59f, 0xea22, 0xe892,
+ 0xe96f, 0xed5e, 0xf636, 0x002d, 0x023f, 0xfecd,
+ 0xfd1d, 0x0024, 0x05be, 0x0766, 0x04ae, 0x0150,
+ 0xfc90, 0xf863, 0xf754, 0xf6bb, 0xf574, 0xf1d7,
+ 0xecd8, 0xef75, 0xf6df, 0xf737, 0xf956, 0x083f,
+ 0x1389, 0x0bd1, 0xfb79, 0xf100, 0xedec, 0xed48,
+ 0xeb6c, 0xe8e8, 0xeb92, 0xf88a, 0x07f3, 0x0c2c,
+ 0x0867, 0x0835, 0x0a06, 0x0c1b, 0x13c8, 0x199e,
+ 0x12c1, 0x078a, 0x014d, 0xfb5a, 0xf6f1, 0xfb6d,
+ 0x0389, 0x0748, 0x0875, 0x096b, 0x0b42, 0x0f7c,
+ 0x0f8a, 0xff51, 0xdf84, 0xc668, 0xc749, 0xd9a3,
+ 0xf0ce, 0x09cc, 0x1521, 0x1307, 0x23e5, 0x4012,
+ 0x3b04, 0x1e52, 0x118b, 0x12d9, 0x156e, 0x1cc4,
+ 0x23ca, 0x1fa6, 0x0d91, 0xf614, 0xee33, 0xfbaf,
+ 0x07d1, 0x0815, 0x08e1, 0x0bf9, 0x0c71, 0x0f30,
+ 0x1176, 0x07d7, 0xf52a, 0xe742, 0xe387, 0xe493,
+ 0xe381, 0xdf5f, 0xdef7, 0xe805, 0xf446, 0xfbc4,
+ 0x0159, 0x02cc, 0xf7f6, 0xec68, 0xf186, 0x00c1,
+ 0x0a4d, 0x0747, 0xf8ab, 0xeb02, 0xeb6a, 0xf21f,
+ 0xefdc, 0xebea, 0xf68e, 0x072e, 0x09f0, 0xfc9d,
+ 0xec45, 0xeb75, 0xf919, 0xfae7, 0xf33b, 0xf93b,
+ 0xfeee, 0xfba1, 0x04a9, 0x1180, 0x1322, 0x1706,
+ 0x18f3, 0x1166, 0x11d6, 0x169b, 0x0fe4, 0x0ba4,
+ 0x12f9, 0x148d, 0x093c, 0xfc6f, 0xf386, 0xee29,
+ 0xf4eb, 0x09d2, 0x197b, 0x18eb, 0x159b, 0x1444,
+ 0x0929, 0xf883, 0xf480, 0xfc99, 0x000a, 0xfa67,
+ 0xf846, 0x0309, 0x10a5, 0x107e, 0x0659, 0x01f6,
+ 0x02ff, 0xff47, 0xf827, 0xf6d7, 0xfcff, 0x0640,
+ 0x100b, 0x135a, 0x0bd8, 0x04f1, 0x03c4, 0x01ce,
+ 0x0124, 0xfc49, 0xe97f, 0xd7ab, 0xd67e, 0xe5ab,
+ 0xfdb8, 0x07ca, 0x0155, 0x0c22, 0x258a, 0x2543,
+ 0x0d7a, 0x01c0, 0x0815, 0x0e80, 0x1356, 0x1b61,
+ 0x1b8b, 0x1302, 0x10a4, 0x15b6, 0x1b2a, 0x18c6,
+ 0x0bb5, 0x04a9, 0x06c9, 0x02bc, 0xfda8, 0xfd53,
+ 0xfde5, 0x02da, 0x027e, 0xf682, 0xeba0, 0xe191,
+ 0xda37, 0xdd0f, 0xe013, 0xe48c, 0xec3f, 0xe6f3,
+ 0xde70, 0xe2fc, 0xea0e, 0xf02e, 0xf84d, 0xffc3,
+ 0x0533, 0x03b3, 0x042c, 0x10f8, 0x187b, 0x1220,
+ 0x0b04, 0x092e, 0x0b58, 0x0886, 0xff5e, 0xfa54,
+ 0xf435, 0xf1f9, 0x00a4, 0x0618, 0xf6ab, 0xf06e,
+ 0xf519, 0xf5af, 0xf94d, 0x0176, 0x0474, 0x0071,
+ 0x01f9, 0x113c, 0x1bbe, 0x1a19, 0x1f6a, 0x268d,
+ 0x1f0f, 0x149f, 0x11e8, 0x0f2c, 0x08ed, 0x067e,
+ 0x09cc, 0x08d0, 0x031c, 0x0262, 0x0403, 0x03cb,
+ 0x0098, 0xf36c, 0xe453, 0xe431, 0xee5f, 0xf67a,
+ 0xf84d, 0xf3dd, 0xf2b1, 0xfbe9, 0x03ce, 0x01eb,
+ 0x01ce, 0x0776, 0x0552, 0xfd28, 0xfe67, 0x04fc,
+ 0x0632, 0x07c8, 0x0eb1, 0x12c5, 0x0b55, 0xfd42,
+ 0xf64b, 0xf2ce, 0xe178, 0xcf00, 0xddf6, 0x04d9,
+ 0x15ee, 0x0fc1, 0x16f0, 0x2ae8, 0x2dc8, 0x1c9f,
+ 0x0ef7, 0x10f8, 0x1650, 0x17c2, 0x1950, 0x124d,
+ 0x06ef, 0x0a92, 0x13ed, 0x17c6, 0x16f1, 0x090e,
+ 0x0222, 0x0f35, 0x0a9c, 0xf945, 0xfc26, 0xfcaf,
+ 0xf5b2, 0xfc9d, 0x0167, 0xfe2e, 0xfae8, 0xf354,
+ 0xf671, 0xff5d, 0xf0b5, 0xdd56, 0xe192, 0xee39,
+ 0xf19f, 0xebef, 0xe56b, 0xe5e3, 0xeca3, 0xf770,
+ 0x0107, 0x0340, 0x0433, 0x0e61, 0x1f93, 0x22c7,
+ 0x0f83, 0x0120, 0x00a3, 0xfa8e, 0xf507, 0xf5b0,
+ 0xf18a, 0xf42e, 0x0062, 0x0131, 0xf6ce, 0xee74,
+ 0xebdd, 0xea6f, 0xe53e, 0xe893, 0xf950, 0x01e7,
+ 0xfb22, 0xf37f, 0xf826, 0x0b45, 0x1a4e, 0x1c33,
+ 0x1fbd, 0x20bd, 0x16cf, 0x1104, 0x0eff, 0x04c1,
+ 0xfdc5, 0x0552, 0x125e, 0x198b, 0x191c, 0x1567,
+ 0x0dec, 0xfd6d, 0xea26, 0xe3c5, 0xec72, 0xf76b,
+ 0xfc87, 0xfbc1, 0xf9d9, 0xfc9b, 0xfc6c, 0xf2ea,
+ 0xee16, 0xeccf, 0xdef8, 0xd766, 0xe7a1, 0xf401,
+ 0xf48b, 0x043e, 0x1944, 0x1926, 0x0ef8, 0x0236,
+ 0xea72, 0xd7b9, 0xd79f, 0xe4c9, 0x0048, 0x18a5,
+ 0x16a7, 0x0d2c, 0x0c9a, 0x0995, 0x0560, 0x0601,
+ 0x0c24, 0x1672, 0x18b4, 0x1299, 0x07f1, 0xf3b2,
+ 0xecd6, 0xfeb4, 0x0948, 0x0a00, 0x0ed7, 0x0be9,
+ 0x07d3, 0x0972, 0x0128, 0xf7de, 0xfc3a, 0x0595,
+ 0x0b5c, 0x085f, 0x019f, 0x01a8, 0x019f, 0xffe3,
+ 0x04f4, 0x05c7, 0xf8a1, 0xef12, 0xf77d, 0x00ba,
+ 0xf93e, 0xedd9, 0xe972, 0xe9e7, 0xf619, 0x04d0,
+ 0x03ae, 0xff7a, 0x03d1, 0x07c2, 0x09e8, 0x0b2b,
+ 0x0bb6, 0x0e5b, 0x0ef4, 0x0d1e, 0x0c0e, 0x094f,
+ 0x050f, 0x018c, 0x0364, 0x0a2b, 0x083b, 0xfcbf,
+ 0xf293, 0xebb0, 0xebd6, 0xef2f, 0xedd4, 0xef5f,
+ 0xf01a, 0xed25, 0xf884, 0x0a74, 0x126d, 0x1abb,
+ 0x2263, 0x2255, 0x1e08, 0x12c8, 0x0947, 0x0930,
+ 0x0a47, 0x14ef, 0x276a, 0x27f7, 0x1d6e, 0x1c5c,
+ 0x188b, 0x07d0, 0xfd05, 0x0370, 0x05df, 0xfb95,
+ 0xfe02, 0x0dee, 0x13ca, 0x1091, 0x08c5, 0xfd74,
+ 0xfe85, 0x0c23, 0x1043, 0x004a, 0xecf0, 0xee61,
+ 0xfc08, 0x025c, 0x0a0a, 0x1044, 0x0225, 0xea55,
+ 0xde5f, 0xe553, 0xf9e2, 0x0a0a, 0x0dfd, 0x0f36,
+ 0x155a, 0x1f38, 0x1fd8, 0x149d, 0x10a6, 0x1738,
+ 0x1c2e, 0x1c04, 0x11f5, 0x0000, 0xf1f0, 0xeb91,
+ 0xf175, 0x02f9, 0x0c6e, 0x0306, 0xf4cd, 0xf321,
+ 0xfe2e, 0x07c1, 0x05db, 0xf8ae, 0xec3a, 0xedbe,
+ 0xf1eb, 0xed06, 0xec5f, 0xf451, 0xfe93, 0x08d6,
+ 0x0666, 0xf91c, 0xf457, 0xf41b, 0xf311, 0xfb9e,
+ 0x05de, 0x025c, 0xf438, 0xe8de, 0xe98a, 0xef3a,
+ 0xef36, 0xf065, 0xf9a4, 0xfcbe, 0xeefd, 0xe759,
+ 0xf700, 0xfed1, 0xf0fa, 0xf0a9, 0xfd26, 0xf72f,
+ 0xedb1, 0xf939, 0x09eb, 0x081a, 0xf5e4, 0xeb45,
+ 0xf1f6, 0xf6d1, 0xf17d, 0xed87, 0xedcd, 0xf017,
+ 0xf6da, 0xfec4, 0xfdb8, 0xf0e6, 0xe3a0, 0xe2f0,
+ 0xf235, 0x08aa, 0x12c0, 0x0964, 0x0059, 0x05f4,
+ 0x0dc0, 0x095a, 0xfc96, 0xf2d0, 0xf2e2, 0xfec5,
+ 0x0c23, 0x0a6a, 0xfce9, 0xf010, 0xe679, 0xe708,
+ 0xf122, 0xf7e1, 0xff98, 0x07d8, 0x01f6, 0xfdc7,
+ 0x09b5, 0x0a4f, 0xf4b6, 0xe381, 0xe41c, 0xee78,
+ 0xfbb5, 0x0437, 0xf97d, 0xdeb8, 0xd31b, 0xe2d2,
+ 0xf86f, 0x0474, 0x0258, 0xfa63, 0x0579, 0x1cc8,
+ 0x1c55, 0x0783, 0xfd51, 0x0101, 0x03d0, 0x023e,
+ 0x009e, 0xff1f, 0x003e, 0x0a50, 0x13fe, 0x0df9,
+ 0xfe6d, 0xf1e6, 0xe9d3, 0xe541, 0xe341, 0xe732,
+ 0xf37d, 0xfb1e, 0xf930, 0xfbf6, 0xff9a, 0xf4b0,
+ 0xe599, 0xe3a8, 0xed62, 0xf816, 0xf7e5, 0xec30,
+ 0xe401, 0xe3ad, 0xe335, 0xe50c, 0xec3c, 0xf290,
+ 0xf49c, 0xf2b9, 0xf10a, 0xf318, 0xf298, 0xf08f,
+ 0xf4f7, 0xf652, 0xee51, 0xe706, 0xdf5b, 0xd7c4,
+ 0xdde6, 0xeceb, 0xf6b0, 0xfa52, 0xf389, 0xe394,
+ 0xdc4f, 0xe088, 0xe568, 0xeeae, 0xfdab, 0x0532,
+ 0x0322, 0xff67, 0xf8c3, 0xee28, 0xe4ca, 0xde75,
+ 0xdeb9, 0xeaa3, 0xf8b4, 0xf9dc, 0xf413, 0xfa8f,
+ 0x0bac, 0x1222, 0x075d, 0xf766, 0xedae, 0xef66,
+ 0xf77d, 0x0181, 0x1242, 0x1d75, 0x148b, 0x0a6d,
+ 0x0713, 0xf81c, 0xe717, 0xe6a7, 0xf048, 0xfe9c,
+ 0x0998, 0x037a, 0xf491, 0xebc5, 0xea9e, 0xed4c,
+ 0xef53, 0xf60a, 0x034c, 0x0627, 0xff1d, 0xfcc2,
+ 0xf1f8, 0xd678, 0xc584, 0xd283, 0xef59, 0x04ed,
+ 0x0f6c, 0x1910, 0x1db7, 0x14fe, 0x0b92, 0x0eb1,
+ 0x18a2, 0x1d28, 0x1872, 0x14a5, 0x1727, 0x1691,
+ 0x1611, 0x1cbe, 0x19b4, 0x08c6, 0x00d6, 0x0362,
+ 0x01d9, 0x0048, 0x06c0, 0x123d, 0x15fc, 0x08a7,
+ 0xfbd4, 0xfdfe, 0xfbff, 0xf03b, 0xf0e4, 0x0335,
+ 0x16a1, 0x187e, 0x0999, 0x004b, 0xfde3, 0xf4d6,
+ 0xefd5, 0xf714, 0x0267, 0x0b38, 0x0989, 0x0557,
+ 0x0add, 0x099f, 0xfcfa, 0xf652, 0xf55b, 0xf7ac,
+ 0xfc76, 0xfcfe, 0xfd0c, 0xf85a, 0xf235, 0x0117,
+ 0x0e10, 0xfcea, 0xef33, 0xf5ad, 0xffe6, 0x0c0a,
+ 0x0b2e, 0xfd5e, 0x0199, 0x0cdb, 0x06af, 0x00c6,
+ 0x079e, 0x0eec, 0x0b7a, 0x03a8, 0x0993, 0x1329,
+ 0x0b81, 0x0122, 0xffc5, 0xfc14, 0xf7e9, 0xfa72,
+ 0xfefb, 0x0086, 0x022a, 0x08a8, 0x0c59, 0x0814,
+ 0x0496, 0x004f, 0xfd35, 0x08f2, 0x1585, 0x1648,
+ 0x21b5, 0x3553, 0x3103, 0x1972, 0x0b50, 0x07f7,
+ 0x0108, 0xfa48, 0xfe33, 0x0716, 0x0f24, 0x1771,
+ 0x171d, 0x09dd, 0xfc65, 0xf84e, 0xfc06, 0x007f,
+ 0x00af, 0xfcbb, 0xf491, 0xf164, 0xfb14, 0xfc86,
+ 0xeefd, 0xf2ad, 0x03d2, 0xffae, 0xf971, 0x1107,
+ 0x2aed, 0x28f4, 0x1b47, 0x14e5, 0x120b, 0x0cbd,
+ 0x0759, 0x052f, 0x049a, 0x05bd, 0x0d2c, 0x15ea,
+ 0x12c4, 0x01c4, 0xee3e, 0xe5b1, 0xee15, 0x001f,
+ 0x0f2f, 0x13a6, 0x0e25, 0x0564, 0xfaff, 0xecc9,
+ 0xe151, 0xdf5c, 0xe595, 0xf172, 0xff80, 0x08a4,
+ 0x01fa, 0xed10, 0xe389, 0xec62, 0xf1a2, 0xf895,
+ 0x0d04, 0x1763, 0x11be, 0x0f04, 0x0adf, 0x00c3,
+ 0xf9d5, 0xf33a, 0xed48, 0xf43d, 0x0793, 0x1466,
+ 0x0ca4, 0xfdd6, 0xfaae, 0xfe4d, 0x030a, 0x06a9,
+ 0xfbda, 0xe975, 0xe9fa, 0xfe19, 0x112e, 0x16a8,
+ 0x1016, 0x0411, 0xf1ce, 0xde48, 0xd9c9, 0xe444,
+ 0xf596, 0x0ebb, 0x225a, 0x2176, 0x164d, 0x078f,
+ 0xf233, 0xe2b1, 0xe3a6, 0xf04e, 0x0389, 0x12e2,
+ 0x0f11, 0xfa2d, 0xe794, 0xe52f, 0xeec1, 0xfb3b,
+ 0x0c67, 0x2256, 0x3343, 0x37e6, 0x2c15, 0x146d,
+ 0x0116, 0xf564, 0xeebc, 0xf392, 0xf697, 0xec59,
+ 0xf093, 0x09b3, 0x15e8, 0x12cb, 0x137d, 0x1000,
+ 0xfef7, 0xee9e, 0xf366, 0x0838, 0x0d0b, 0x0166,
+ 0x05be, 0x1062, 0x0448, 0xf162, 0xec81, 0xf088,
+ 0xfacc, 0x0998, 0x1a8b, 0x2f89, 0x3a49, 0x29f0,
+ 0x099a, 0xef28, 0xe54c, 0xed3c, 0x00bf, 0x1105,
+ 0x0c06, 0xf707, 0xf06e, 0xfce4, 0x0241, 0xfa47,
+ 0xf40e, 0xf687, 0xfc2f, 0xfdae, 0xfdd7, 0xfef7,
+ 0xf93b, 0xeec2, 0xe98d, 0xe9f7, 0xe999, 0xe2aa,
+ 0xe232, 0xf88c, 0x0e8f, 0x0dc8, 0x0571, 0xfbcd,
+ 0xf04a, 0xf0d0, 0xfe53, 0x125e, 0x22fb, 0x1f89,
+ 0x105d, 0x0343, 0xf58c, 0xefcb, 0xf3db, 0xf876,
+ 0x009a, 0x03bb, 0x00a8, 0x0bc1, 0x16d7, 0x096a,
+ 0xf2fb, 0xec7c, 0xfe82, 0x10db, 0x07bb, 0xfde4,
+ 0x06bf, 0x06a5, 0xff73, 0x0368, 0x06cf, 0x0247,
+ 0xf879, 0xf005, 0xf610, 0x03a5, 0x0763, 0xff89,
+ 0xf72e, 0xfcba, 0x095e, 0x092d, 0xfda7, 0xf180,
+ 0xed30, 0xf646, 0x035b, 0x09e9, 0x0294, 0xf09f,
+ 0xef83, 0xff36, 0x0544, 0x0e77, 0x2331, 0x2975,
+ 0x1f7b, 0x12c6, 0x0a1e, 0x07f3, 0xfb81, 0xeb24,
+ 0xf5a3, 0x094a, 0x0992, 0x048c, 0x0287, 0xfc17,
+ 0xf5ec, 0xfb04, 0x0b55, 0x0fa6, 0x02de, 0x0884,
+ 0x1dd2, 0x1a06, 0x09da, 0x0b79, 0x0fa7, 0x0f30,
+ 0x165f, 0x1a8d, 0x1823, 0x1d85, 0x1f70, 0x112f,
+ 0x04cf, 0x042e, 0x089d, 0x10ca, 0x129f, 0x033c,
+ 0xf12a, 0xf0a2, 0xffc6, 0x0ea0, 0x131f, 0x0a78,
+ 0xf84a, 0xee14, 0xf0c1, 0xecd1, 0xe62b, 0xee33,
+ 0xf7d0, 0xfc11, 0x0402, 0x05c0, 0xffc3, 0xff49,
+ 0xfd9f, 0xf3e9, 0xed18, 0xec7d, 0xe7f9, 0xdf2c,
+ 0xe10a, 0xf03a, 0x0149, 0x101f, 0x1292, 0x04ba,
+ 0xfddd, 0x016b, 0x00d1, 0x05a2, 0x0b4a, 0xff9a,
+ 0xf4be, 0xfbb5, 0x072f, 0x0de3, 0x0d48, 0x0264,
+ 0xf326, 0xed0e, 0xf92e, 0x0a42, 0x0abe, 0xff72,
+ 0xfafc, 0x01f4, 0x0eb2, 0x17fb, 0x1339, 0x0131,
+ 0xf4c0, 0xf7c9, 0xf97b, 0xf4c7, 0xf7fc, 0xfb3b,
+ 0xf518, 0xf652, 0x0111, 0x0642, 0x0b5d, 0x1606,
+ 0x1406, 0x0099, 0xf402, 0xf52f, 0xf33f, 0xef37,
+ 0xf0cf, 0xf292, 0xf6fd, 0xff0b, 0x0122, 0x0066,
+ 0x03c2, 0x0aee, 0x1587, 0x1be9, 0x1b25, 0x1a3f,
+ 0x14fa, 0x0746, 0xf860, 0xec53, 0xe4e7, 0xe43a,
+ 0xed8f, 0xfcd9, 0xfd65, 0xf212, 0xf796, 0x02e7,
+ 0xfaa9, 0xf289, 0xfb7f, 0x024d, 0xfeb5, 0x0055,
+ 0x08d0, 0x0986, 0x0848, 0x1233, 0x1910, 0x1539,
+ 0x1619, 0x197f, 0x1714, 0x1998, 0x2246, 0x235f,
+ 0x1ea2, 0x2171, 0x2645, 0x1e47, 0x0ea1, 0xfefa,
+ 0xf3eb, 0xfcce, 0x0b67, 0x0208, 0xf20e, 0xeb1f,
+ 0xe211, 0xe65d, 0xfc54, 0x0cfb, 0x1a2c, 0x1d7f,
+ 0x097b, 0xfc6a, 0x00ff, 0xf6d6, 0xe3b9, 0xe360,
+ 0xe9fe, 0xe710, 0xeaa5, 0xfdc4, 0x07c0, 0xfce5,
+ 0xf2ec, 0xf3dc, 0xf681, 0xf65b, 0xf343, 0xf35e,
+ 0xf9db, 0xff4f, 0x0452, 0x07da, 0x0182, 0xf75a,
+ 0xec67, 0xe0d3, 0xe879, 0xfda2, 0xfe85, 0xf4a0,
+ 0xfbd7, 0x0601, 0x00b5, 0xf749, 0xf352, 0xef1c,
+ 0xeba1, 0xeff1, 0xf26f, 0xe748, 0xdc14, 0xdff9,
+ 0xeade, 0xf333, 0xfcd7, 0x0878, 0x07da, 0xf466,
+ 0xe51b, 0xec93, 0xfa8e, 0xfbc3, 0xf0a9, 0xe32c,
+ 0xdfd4, 0xe840, 0xf281, 0xfb8b, 0x04fd, 0x0be8,
+ 0x0952, 0xfbc8, 0xf338, 0xf84a, 0xfe80, 0x049a,
+ 0x0a45, 0x03ac, 0xfa9d, 0xf2be, 0xdd47, 0xd307,
+ 0xe6a6, 0xf266, 0xf062, 0x0144, 0x16fb, 0x155d,
+ 0x09cc, 0x0710, 0x099e, 0x0c04, 0x103f, 0x0fe2,
+ 0x07a3, 0x0b0b, 0x1c66, 0x204a, 0x14f1, 0x0b0e,
+ 0xffeb, 0xf431, 0xf35f, 0xfc67, 0x025a, 0x0039,
+ 0x04f2, 0x1264, 0x0f0e, 0x00c4, 0x03be, 0x08e1,
+ 0xfef6, 0xfa12, 0xfb90, 0xf19c, 0xe764, 0xec83,
+ 0xf46d, 0xf47a, 0xf4f8, 0xf3a1, 0xe849, 0xe33e,
+ 0xedcd, 0xf38a, 0xf1f5, 0xf8db, 0x0246, 0x084f,
+ 0x100a, 0x103a, 0x05b8, 0xff40, 0x005b, 0x067a,
+ 0x138d, 0x201e, 0x24bd, 0x1fe8, 0x0e6f, 0xfca5,
+ 0xfeac, 0x0d8e, 0x135e, 0x0a77, 0xfed8, 0xfb8f,
+ 0xfa7f, 0xf764, 0xfc4a, 0x0430, 0x03f6, 0x043f,
+ 0x094e, 0x0d6d, 0x0d4d, 0x051b, 0x009b, 0x09d6,
+ 0x0ea3, 0x0a02, 0x0529, 0xf6e8, 0xe85e, 0xf162,
+ 0x0802, 0x18db, 0x1e9d, 0x1757, 0x0c59, 0x0688,
+ 0x0052, 0xf803, 0xf2b0, 0xf198, 0xf57b, 0xff92,
+ 0x0a42, 0x0dfd, 0x1005, 0x14da, 0x11bb, 0x07b9,
+ 0x0510, 0x0af4, 0x1724, 0x244c, 0x2309, 0x1339,
+ 0x0514, 0x00d8, 0xfe8a, 0xf571, 0xf687, 0x0ae6,
+ 0x1569, 0x15fa, 0x2561, 0x2940, 0x10db, 0x045b,
+ 0x0cbf, 0x0f4c, 0x0eba, 0x1303, 0x133d, 0x131e,
+ 0x1931, 0x1b2d, 0x17c0, 0x1894, 0x17e1, 0x14a8,
+ 0x1900, 0x1619, 0xffd5, 0xee96, 0xf2e2, 0xffc5,
+ 0x037e, 0xfa97, 0xf62d, 0xfe26, 0x05f2, 0x0d25,
+ 0x15fe, 0x1554, 0x0875, 0xf868, 0xef95, 0xede3,
+ 0xec66, 0xf219, 0xf8fb, 0xef71, 0xeb3d, 0xfa2f,
+ 0xfe9a, 0xf5d8, 0xf14c, 0xeca3, 0xed48, 0xfd28,
+ 0x115a, 0x1857, 0x0abd, 0xfa54, 0xfa15, 0xff80,
+ 0xffd9, 0xfd1a, 0xfbac, 0x0329, 0x0a20, 0x061c,
+ 0x04ad, 0x0594, 0xfc6e, 0xf193, 0xef3a, 0xf51f,
+ 0xfa37, 0xf872, 0xff27, 0x0e0e, 0x0ffd, 0x0dd4,
+ 0x126f, 0x0d74, 0xfc10, 0xebf9, 0xe959, 0xf5da,
+ 0xff21, 0xfecb, 0x0345, 0x0975, 0x02d8, 0xf1a4,
+ 0xe9e5, 0xf481, 0xf815, 0xeebe, 0xf7bb, 0x0965,
+ 0x05c7, 0xfa7e, 0xf018, 0xe08f, 0xdd92, 0xeda1,
+ 0x0286, 0x123d, 0x121c, 0x0794, 0x02ad, 0xfe6c,
+ 0xf910, 0xfa96, 0xfcb1, 0xfed3, 0x03c6, 0x0133,
+ 0xfa48, 0xf9c9, 0xff8b, 0x0cd0, 0x157b, 0x0da0,
+ 0x0d96, 0x1c47, 0x1819, 0x030a, 0x0014, 0x12b2,
+ 0x274b, 0x2ed2, 0x201a, 0x0087, 0xe8d7, 0xed82,
+ 0x01a7, 0x0c98, 0x106b, 0x1541, 0x1627, 0x1492,
+ 0x119a, 0x0724, 0xf8fd, 0xf134, 0xf1ff, 0xf028,
+ 0xe444, 0xe0b3, 0xf054, 0xfe8a, 0xfccf, 0xeeda,
+ 0xe058, 0xdd2a, 0xddf6, 0xe0b0, 0xf14c, 0xfc94,
+ 0xf04a, 0xe04e, 0xd589, 0xceff, 0xd501, 0xdd36,
+ 0xe02a, 0xe71f, 0xee87, 0xf466, 0xfaf4, 0xf97d,
+ 0xf17a, 0xe758, 0xdb19, 0xdbe0, 0xe973, 0xed52,
+ 0xecfe, 0xf76c, 0xff19, 0xfc4e, 0xf9e2, 0xf728,
+ 0xf082, 0xed5e, 0xecf3, 0xec15, 0xf393, 0xfd22,
+ 0xf9c1, 0xf702, 0xfcb2, 0xf4b6, 0xe207, 0xe0c5,
+ 0xf056, 0xfda2, 0x007a, 0xf84b, 0xed5f, 0xeb66,
+ 0xee15, 0xeb1b, 0xe977, 0xf279, 0xfdfb, 0x04e6,
+ 0x0759, 0xff86, 0xf0fa, 0xea1d, 0xec38, 0xf10c,
+ 0xf213, 0xeacc, 0xe97f, 0xf704, 0x00af, 0x0176,
+ 0x02fb, 0xfb7a, 0xeaf7, 0xe671, 0xef9f, 0xfb74,
+ 0x0734, 0x0cfe, 0x07f7, 0xfb8d, 0xec47, 0xe16a,
+ 0xe0f2, 0xed85, 0x041f, 0x0d26, 0x00b5, 0x032d,
+ 0x141a, 0x0543, 0xe84d, 0xecda, 0xfe66, 0x01f6,
+ 0x089c, 0x144a, 0x10ea, 0x015c, 0xfd29, 0x070a,
+ 0x09be, 0x06f2, 0x0c1c, 0x0d6b, 0x0d18, 0x17a7,
+ 0x168b, 0x0354, 0xfa69, 0xfc9a, 0xf954, 0xf255,
+ 0xf3f8, 0x0638, 0x16ca, 0x10dd, 0x0375, 0xffc5,
+ 0x0754, 0x1697, 0x19cb, 0x0ede, 0x0d7b, 0x0fc0,
+ 0x09ab, 0x0a80, 0x103c, 0x0a2d, 0xfdd2, 0xf933,
+ 0xfd81, 0x0103, 0x05a6, 0x152e, 0x1cec, 0x0e4d,
+ 0x070e, 0x141e, 0x17af, 0x09d3, 0x029c, 0x083c,
+ 0x0991, 0x03d6, 0x057c, 0x0fad, 0x1b16, 0x22c3,
+ 0x1ce4, 0x10af, 0x0e94, 0x0a85, 0xfd30, 0xf5b6,
+ 0xf128, 0xedd5, 0xf8fd, 0x0776, 0x0cf0, 0x1503,
+ 0x1d34, 0x18e4, 0x0c48, 0x00ae, 0x002f, 0x0e1c,
+ 0x1850, 0x118f, 0x04c5, 0xfc29, 0xf745, 0xf507,
+ 0xf4c6, 0xf9f5, 0x0493, 0x060e, 0xfbfa, 0xf86a,
+ 0xfa5e, 0xf5a1, 0xf366, 0xfa33, 0x03da, 0x0dff,
+ 0x0ef4, 0x0530, 0x04b3, 0x0c98, 0x0970, 0xfc45,
+ 0xee1f, 0xe698, 0xecac, 0xf4b2, 0xf117, 0xea70,
+ 0xf1b2, 0x084c, 0x137a, 0x077c, 0x097e, 0x20b6,
+ 0x21f9, 0x101e, 0x0a33, 0x090f, 0x096b, 0x109e,
+ 0x0eaa, 0x0269, 0xf927, 0xf657, 0xfe42, 0x0780,
+ 0x0787, 0x0c0d, 0x1217, 0x0e37, 0x110e, 0x17fb,
+ 0x0fd4, 0x058e, 0x033a, 0xff79, 0xf9f1, 0xf4ff,
+ 0xf276, 0xf282, 0xf584, 0x0488, 0x134b, 0x0ff4,
+ 0x0c2e, 0x09c5, 0xf997, 0xedd0, 0xeab3, 0xe978,
+ 0xfafc, 0x0974, 0xfb5d, 0xf4da, 0x0183, 0x061c,
+ 0x0458, 0x0311, 0x02ac, 0x0466, 0xff7d, 0xfd2b,
+ 0x0492, 0x01e3, 0xf9b7, 0xf684, 0xe7d4, 0xdb3f,
+ 0xebae, 0x029b, 0x0158, 0xf490, 0xf8d9, 0x0abf,
+ 0x10d6, 0x0a5d, 0x04bb, 0x019a, 0x0357, 0x0620,
+ 0x035d, 0x04af, 0x0a12, 0x07a7, 0x02d0, 0x0377,
+ 0x079d, 0x0c79, 0x0f5d, 0x11be, 0x1161, 0x0932,
+ 0x0217, 0xfec9, 0xf5fa, 0xf325, 0x01ea, 0x0e9a,
+ 0x0c2a, 0x090a, 0x07e3, 0xfc68, 0xee5d, 0xe884,
+ 0xe308, 0xe241, 0xedb9, 0xf429, 0xf086, 0xf2ab,
+ 0xf9ad, 0xfa72, 0xf4fe, 0xf736, 0x061f, 0x0742,
+ 0xf2c0, 0xe8b8, 0xee20, 0xedfa, 0xe6d6, 0xe35e,
+ 0xef69, 0x045c, 0x14aa, 0x2de9, 0x42b0, 0x3270,
+ 0x1f7f, 0x2426, 0x1b9a, 0x05f6, 0xfea0, 0xffdc,
+ 0x0399, 0x05fa, 0x05c4, 0x0f5c, 0x17a0, 0x10fa,
+ 0x0d78, 0x1223, 0x124b, 0x0fbd, 0x0f9e, 0x107e,
+ 0x0f3d, 0x0aee, 0x00f2, 0xec04, 0xde09, 0xee88,
+ 0x0857, 0x0cc6, 0x0285, 0xfa8b, 0xfc70, 0x058e,
+ 0x068e, 0xfa45, 0xeffa, 0xf23f, 0xf9e1, 0xff37,
+ 0x037a, 0x0390, 0xfd53, 0xf9a5, 0xfc08, 0x0230,
+ 0x0845, 0x0491, 0xfe83, 0x0423, 0x09c5, 0x07fd,
+ 0x06b1, 0x064c, 0x0ce8, 0x1a29, 0x1c52, 0x13af,
+ 0x0c10, 0x07f2, 0x0846, 0x0889, 0x07e1, 0x08e5,
+ 0x0584, 0x0470, 0x09b6, 0x0549, 0xfbb6, 0xf6a3,
+ 0xeeff, 0xf018, 0xfee3, 0x07a5, 0x0333, 0xf4ea,
+ 0xee33, 0xfd67, 0x0583, 0xfbf5, 0xfa68, 0xf818,
+ 0xf04e, 0xf51f, 0xf959, 0xfb92, 0x09f4, 0x0eb8,
+ 0x0367, 0xf9ca, 0xefd7, 0xeb6a, 0xf1a5, 0xf54f,
+ 0xf985, 0xfd32, 0xf471, 0xeda8, 0xf2a3, 0xfab8,
+ 0x06b2, 0x0da2, 0x05c9, 0xffe8, 0x0341, 0x0131,
+ 0xf47c, 0xe45b, 0xd8d3, 0xd50d, 0xde8f, 0xfa1a,
+ 0x106b, 0x0ec2, 0x1132, 0x224d, 0x2548, 0x1f27,
+ 0x2170, 0x1c62, 0x0fca, 0x0c84, 0x0c0a, 0x061a,
+ 0xfc8d, 0xf346, 0xf460, 0xfd1f, 0x0038, 0x00a2,
+ 0x05fd, 0x0dc8, 0x0eed, 0x0455, 0xf9ab, 0xf688,
+ 0xf6db, 0xfe51, 0x0457, 0x00b5, 0x06c3, 0x0ecb,
+ 0x00bb, 0xf20f, 0xf226, 0xf774, 0x0569, 0x0c7b,
+ 0x0129, 0xfcc6, 0xfd85, 0xf468, 0xefed, 0xef2d,
+ 0xeba5, 0xefe5, 0xf74a, 0xfc6b, 0x0147, 0x004a,
+ 0xfccb, 0xf544, 0xe506, 0xdf64, 0xe9c2, 0xf338,
+ 0xfaaf, 0x01f5, 0x0989, 0x128d, 0x1128, 0x0743,
+ 0xfeda, 0xf28f, 0xed65, 0xfa45, 0x0a29, 0x174a,
+ 0x1828, 0x014e, 0xef86, 0xf279, 0xf398, 0xf41f,
+ 0xfcb1, 0x067d, 0x159d, 0x1fe2, 0x12b5, 0xfe9f,
+ 0xf6ab, 0xf825, 0xffb6, 0x0451, 0x02f3, 0x0af7,
+ 0x1b2d, 0x1e91, 0x0fbc, 0xfe3f, 0xfb03, 0x0208,
+ 0x0294, 0x0092, 0x0532, 0x039e, 0xf6d6, 0xee36,
+ 0xf058, 0xf81f, 0xfec1, 0x0022, 0x00e2, 0x0084,
+ 0xf6dc, 0xecb8, 0xf09b, 0xfa7c, 0xff03, 0x029f,
+ 0xffd8, 0xe72f, 0xcd44, 0xda77, 0x0282, 0x17c8,
+ 0x1583, 0x1596, 0x1e4e, 0x1b49, 0x0226, 0xed83,
+ 0xee4b, 0xf5bd, 0x0799, 0x1f4f, 0x1bf8, 0x0cc6,
+ 0x0c00, 0x01a7, 0xf738, 0x0adc, 0x1cc1, 0x15cb,
+ 0x0db6, 0x0ce9, 0x0d6b, 0x0c00, 0x0871, 0x0964,
+ 0x0894, 0x0184, 0x01bd, 0x063c, 0x03c7, 0xffd7,
+ 0xffc7, 0x043f, 0x06a3, 0x0218, 0x0343, 0x04dc,
+ 0xf6c3, 0xef43, 0xff7e, 0x10dc, 0x147e, 0x0d39,
+ 0xffa8, 0xf40f, 0xf012, 0xf4ab, 0xfbfc, 0xffd9,
+ 0x0416, 0x02ab, 0xf499, 0xebd5, 0xf227, 0xfb2a,
+ 0xff9b, 0xfe0b, 0xfc25, 0x01d6, 0x0c19, 0x19a6,
+ 0x2404, 0x1fb2, 0x15cd, 0x0bea, 0xff09, 0xfb88,
+ 0xfb51, 0xf5e4, 0x007a, 0x0cfa, 0x011d, 0xfc26,
+ 0x05ff, 0xfd32, 0xef13, 0xf342, 0x000f, 0x1161,
+ 0x1e13, 0x19a8, 0x12d0, 0x11b5, 0x0be7, 0x05cd,
+ 0x0a63, 0x177b, 0x1f96, 0x1846, 0x0afd, 0x02b6,
+ 0xf9cf, 0xec09, 0xdc19, 0xd226, 0xd9bf, 0xec38,
+ 0xfa9e, 0x01da, 0xfba6, 0xe998, 0xdd1a, 0xd81c,
+ 0xd925, 0xe7cb, 0xf754, 0xf9ca, 0xf566, 0xec5b,
+ 0xe16d, 0xde71, 0xea25, 0x04c6, 0x12a3, 0x001a,
+ 0xf67b, 0x0840, 0x0991, 0xf928, 0xf7fe, 0xfe84,
+ 0x0917, 0x21fc, 0x2e51, 0x1727, 0xf6d1, 0xe936,
+ 0xe80c, 0xe925, 0xefa1, 0xf744, 0xfa06, 0xfd95,
+ 0x0093, 0xff88, 0x0348, 0x0cc4, 0x1484, 0x1766,
+ 0x12ff, 0x0c76, 0x0789, 0xfdea, 0xf4a6, 0xf3da,
+ 0xf843, 0xfe53, 0xfc01, 0xf0d7, 0xf18c, 0xfac0,
+ 0xfa7e, 0xf925, 0xfa4a, 0xf5ed, 0xf174, 0xeee5,
+ 0xf0f3, 0x01eb, 0x17b8, 0x1f86, 0x19c8, 0x0f07,
+ 0x016e, 0xf1d2, 0xec28, 0xf94c, 0x0833, 0x0ab3,
+ 0x0a35, 0x0ccc, 0x0ffb, 0x0ec8, 0x03c5, 0xf9cd,
+ 0xfd12, 0x05b5, 0x09ca, 0x05b2, 0xfc53, 0xf7ea,
+ 0xf62c, 0xecb7, 0xe03d, 0xdfb1, 0xf29f, 0x09b7,
+ 0x1264, 0x14fd, 0x13fb, 0x0457, 0xf8b1, 0xfffa,
+ 0x06c6, 0x066d, 0x070b, 0x0833, 0x0b29, 0x0dd5,
+ 0x0e88, 0x0f6d, 0x07e1, 0xfb43, 0xf85f, 0xf5d8,
+ 0xec09, 0xe55a, 0xe400, 0xe95a, 0xf0db, 0xee37,
+ 0xeda1, 0xf7f1, 0xfcb2, 0xfe25, 0x04ce, 0x07db,
+ 0x0a33, 0x0e90, 0x0b5c, 0x0110, 0xee62, 0xd499,
+ 0xca8e, 0xdb9b, 0xf68f, 0x0696, 0x08fb, 0x0f4f,
+ 0x192a, 0x113a, 0x041c, 0x0850, 0x1101, 0x1a04,
+ 0x2b78, 0x3129, 0x1dc2, 0x052f, 0xf5dd, 0xed38,
+ 0xef45, 0x016a, 0x105c, 0x0857, 0xff3f, 0x0a07,
+ 0x149d, 0x1351, 0x1153, 0x1047, 0x0f39, 0x0ca2,
+ 0x06e5, 0x0844, 0x0be4, 0x0352, 0xfcec, 0x00f3,
+ 0xff3b, 0xfa0a, 0xf994, 0xf9b5, 0xffa7, 0x0760,
+ 0xff96, 0xf1d1, 0xf508, 0x0837, 0x1771, 0x1373,
+ 0x0855, 0x0c75, 0x162e, 0x12d3, 0x0bc8, 0x0919,
+ 0x0414, 0x01da, 0x093d, 0x0e5c, 0x0607, 0xfb21,
+ 0xff33, 0x0c8b, 0x0fc9, 0x0b65, 0x0ddd, 0x12a3,
+ 0x0f1d, 0x07bb, 0x0352, 0xfc92, 0xef37, 0xe8d9,
+ 0xf2b2, 0xfbab, 0xfb39, 0xfff5, 0x0654, 0x003f,
+ 0xfa5c, 0x0346, 0x106c, 0x1177, 0x037f, 0xf3ba,
+ 0xf046, 0xf762, 0x023d, 0x0d31, 0x10d3, 0x095e,
+ 0xfe60, 0xfae2, 0xff5c, 0xff5f, 0xf6d4, 0xed0a,
+ 0xe379, 0xdfd5, 0xe7f9, 0xef74, 0xf2d7, 0xfb92,
+ 0x0055, 0xfa51, 0xf6d5, 0xff02, 0x0f8b, 0x150f,
+ 0x0087, 0xe8fd, 0xe45e, 0xe672, 0xe48b, 0xe33e,
+ 0xef54, 0x0940, 0x10e1, 0x03c1, 0x0a45, 0x18ba,
+ 0x0cc0, 0xffdf, 0x0729, 0x0e6b, 0x0fb8, 0x112c,
+ 0x0e98, 0x048f, 0xf764, 0xf049, 0xef77, 0xf17a,
+ 0xfa40, 0x0013, 0xf8ae, 0xf127, 0xefb1, 0xf205,
+ 0xfc74, 0x05c6, 0x071b, 0x062d, 0xfca0, 0xee8c,
+ 0xef06, 0xfa84, 0x0491, 0x081f, 0x0116, 0xf6b8,
+ 0xedd3, 0xe2e9, 0xdfc5, 0xe86f, 0xef06, 0xecc3,
+ 0xe5cf, 0xe580, 0xf14a, 0xf9ae, 0xf841, 0xfa06,
+ 0x0179, 0x0982, 0x0c91, 0x050c, 0xfd42, 0xfc68,
+ 0xf697, 0xec37, 0xea41, 0xf03f, 0xf633, 0xf633,
+ 0xef8b, 0xe923, 0xe5e5, 0xe097, 0xdb81, 0xe2e3,
+ 0xf1c5, 0xf1ae, 0xe849, 0xea4d, 0xea07, 0xdecf,
+ 0xdca9, 0xdfee, 0xe049, 0xeaa6, 0xf3bf, 0xef91,
+ 0xf289, 0xfc6d, 0xfa91, 0xf21d, 0xed05, 0xf070,
+ 0xfdbc, 0x0687, 0x03e1, 0xfdba, 0xf3f9, 0xe7bb,
+ 0xe25f, 0xe791, 0xf3ac, 0xfeb6, 0x0177, 0xf841,
+ 0xe6ec, 0xdfb8, 0xe7be, 0xed06, 0xf055, 0xfa6e,
+ 0xfe93, 0xfb69, 0xfa9c, 0xf808, 0xf685, 0xfbf5,
+ 0x018e, 0x019b, 0xf536, 0xe11f, 0xe1ed, 0xfb79,
+ 0x0b39, 0x0385, 0x0007, 0x1368, 0x257b, 0x230c,
+ 0x1e59, 0x1c20, 0x13bc, 0x1320, 0x1791, 0x1073,
+ 0x0a82, 0x0d54, 0x0efc, 0x0c8c, 0x018d, 0xf7c5,
+ 0xfe6f, 0x06b7, 0x0925, 0x0ce8, 0x0738, 0xfef1,
+ 0x0580, 0x0a60, 0x0231, 0xfb66, 0xff26, 0x0bf6,
+ 0x1646, 0x1742, 0x1513, 0x0b7b, 0xfb8b, 0xf5c4,
+ 0xf744, 0xf569, 0xf3ea, 0xf401, 0xf49f, 0xf606,
+ 0xf928, 0x020a, 0x0a8a, 0x0e6a, 0x1683, 0x1f10,
+ 0x207d, 0x1c75, 0x11ae, 0x0caf, 0x1620, 0x19ad,
+ 0x16b4, 0x19fc, 0x154d, 0x0b92, 0x0d85, 0x0f87,
+ 0x0f4d, 0x1242, 0x08bf, 0xfa83, 0xff39, 0x0bc7,
+ 0x0f3b, 0x0ca4, 0x06c1, 0xff05, 0xfc51, 0x0425,
+ 0x0d4a, 0x0a5d, 0x08f6, 0x150d, 0x18a9, 0x111e,
+ 0x1555, 0x1c0a, 0x15c5, 0x0de2, 0x0a2e, 0x0a97,
+ 0x0fe5, 0x0fc9, 0x0ad3, 0x09d0, 0x0743, 0x0837,
+ 0x188a, 0x278d, 0x2055, 0x0a90, 0xfaf2, 0xfc10,
+ 0x0753, 0x0e67, 0x0a38, 0x0233, 0x0258, 0x05cc,
+ 0x04b6, 0x0771, 0x0a22, 0x02cd, 0xfd4b, 0xfb6b,
+ 0xf4f5, 0xee67, 0xe1cd, 0xda37, 0xf1e9, 0x04c3,
+ 0xf31d, 0xf060, 0x0fb5, 0x21ca, 0x1c2c, 0x1617,
+ 0x170f, 0x182b, 0x1000, 0x05e7, 0x03e6, 0x04cf,
+ 0x0a79, 0x10ef, 0x0820, 0xf743, 0xecea, 0xeb8e,
+ 0xf51d, 0xfc4e, 0xf736, 0xf728, 0xfed1, 0xff98,
+ 0xfc0c, 0xf89b, 0xf51f, 0xf7f3, 0x017a, 0x0a57,
+ 0x0d08, 0x0b05, 0x0a7e, 0x08bf, 0x022e, 0xfd4a,
+ 0xf9b2, 0xf60e, 0xfa99, 0x0112, 0xfe36, 0xfd75,
+ 0x058f, 0x08ab, 0x05de, 0x085b, 0x0b94, 0x07a3,
+ 0xff02, 0xf264, 0xe790, 0xec0f, 0xfd5f, 0x0c84,
+ 0x1244, 0x0fc0, 0x0d32, 0x0d0d, 0x0635, 0xfe2d,
+ 0x00f4, 0x04d4, 0x00a7, 0xfb2c, 0xfaa9, 0x00ce,
+ 0x0545, 0x003b, 0xfd51, 0x00ee, 0x005f, 0x0065,
+ 0x062c, 0x0978, 0x0a7f, 0x06df, 0xf905, 0xf1b1,
+ 0xf9ac, 0xfd9e, 0xfb5f, 0x022b, 0x0c8f, 0x1046,
+ 0x10db, 0x1008, 0x0da4, 0x0c4d, 0x0af8, 0x0897,
+ 0x063d, 0x050a, 0x0697, 0x072f, 0x01ce, 0xf85a,
+ 0xed80, 0xe81d, 0xf0e3, 0xff5d, 0x0705, 0x067e,
+ 0xfaa7, 0xeb6d, 0xec36, 0xf562, 0xf56f, 0xf302,
+ 0xed20, 0xdb79, 0xd678, 0xed0b, 0xfd0d, 0xf9dd,
+ 0x047d, 0x1b14, 0x1c5f, 0x1057, 0x0e96, 0x1050,
+ 0x0e8c, 0x101b, 0x13d7, 0x124b, 0x0a62, 0x0341,
+ 0x0066, 0xf97c, 0xeb40, 0xe344, 0xedd4, 0xfea1,
+ 0xff7a, 0xf931, 0x001f, 0x09d9, 0x0bb2, 0x081a,
+ 0xfa17, 0xf1f8, 0x0110, 0x0d2b, 0x08d7, 0x0540,
+ 0x0473, 0x08a2, 0x0ebf, 0x0617, 0xfe1b, 0x050f,
+ 0x036b, 0xf95b, 0xfb71, 0x02e8, 0x04ff, 0xfff6,
+ 0xf620, 0xf55f, 0xff18, 0x00b3, 0xf7ab, 0xf86b,
+ 0x0989, 0x1575, 0x1329, 0x14fc, 0x1c7c, 0x19d0,
+ 0x0f6d, 0x07c2, 0x03f5, 0x0190, 0x00a8, 0x042d,
+ 0x07c6, 0x0443, 0xfc36, 0xf463, 0xf3ab, 0xfc76,
+ 0x0208, 0x0369, 0x0a64, 0x0e49, 0x069e, 0xf70c,
+ 0xea00, 0xf1e9, 0x06b5, 0x0e25, 0x0db2, 0x0e37,
+ 0x0a53, 0x0a5a, 0x0d7b, 0x0aa6, 0x099f, 0x0b82,
+ 0x0ee4, 0x1707, 0x1658, 0x09f2, 0x0000, 0xf822,
+ 0xf3b0, 0xf335, 0xeb4d, 0xe530, 0xe8f6, 0xe655,
+ 0xe264, 0xeb90, 0xf608, 0xfce1, 0x045d, 0x01b8,
+ 0xf483, 0xece1, 0xef24, 0xf384, 0xf139, 0xe4d4,
+ 0xde9d, 0xf2c6, 0x0ea6, 0x0f4d, 0x02fc, 0x09b3,
+ 0x110b, 0x06f4, 0x07d7, 0x164d, 0x1334, 0x0733,
+ 0x0351, 0xf7f3, 0xeb34, 0xf193, 0x005c, 0x0d02,
+ 0x1117, 0x00e2, 0xf400, 0x0170, 0x0eb9, 0x0c63,
+ 0x0744, 0x0009, 0xfc34, 0x04bf, 0x0fe8, 0x1350,
+ 0x0a1b, 0xf8d2, 0xeec4, 0xea6a, 0xe7be, 0xf3bd,
+ 0x0a37, 0x1695, 0x0edb, 0xf6dd, 0xe553, 0xe86b,
+ 0xf0a7, 0xf8b0, 0x04e9, 0x08a7, 0x02a3, 0x003c,
+ 0x0167, 0x023c, 0x030b, 0x04ca, 0x0cd0, 0x1981,
+ 0x1da3, 0x13c6, 0x0696, 0x0081, 0xff61, 0x007f,
+ 0x028f, 0xfae1, 0xebf7, 0xeaa5, 0xf44f, 0xf7d7,
+ 0xfc74, 0x099e, 0x129f, 0x1394, 0x1536, 0x1662,
+ 0x0fbd, 0x029d, 0xf780, 0xf48e, 0xf97a, 0x0117,
+ 0x049e, 0x0101, 0xfb4a, 0xf992, 0xfa88, 0xfd2d,
+ 0x0562, 0x10aa, 0x1469, 0x0b85, 0x01b3, 0x0520,
+ 0x09b9, 0x01ca, 0x0081, 0x0ae4, 0x08ad, 0xff19,
+ 0xfd8c, 0xf892, 0xf188, 0xf175, 0xeeff, 0xed7a,
+ 0xf609, 0xfd98, 0xfb12, 0xf165, 0xe8b4, 0xeb2a,
+ 0xf607, 0xfb3e, 0xf479, 0xe8d7, 0xe349, 0xea81,
+ 0x009a, 0x1289, 0x0a05, 0x05d9, 0x1fdf, 0x2a3e,
+ 0x14b6, 0x06c4, 0xfffc, 0xfc69, 0x102e, 0x2271,
+ 0x1918, 0x0c3b, 0x0d5c, 0x15b2, 0x18ca, 0x119e,
+ 0x12f9, 0x2303, 0x29d5, 0x20ce, 0x112a, 0xfce1,
+ 0xf20f, 0xfecb, 0x0fc2, 0x0b1f, 0xf8ba, 0xecda,
+ 0xeb56, 0xf3c4, 0x00b7, 0x04af, 0x030a, 0x077c,
+ 0x0ee3, 0x0fee, 0x0287, 0xf1f2, 0xf779, 0x06d2,
+ 0x042a, 0xfb5a, 0xfef4, 0x0acb, 0x1307, 0x0e5e,
+ 0x0486, 0x005a, 0xfeb4, 0x001e, 0x0189, 0xfd1e,
+ 0xf9cc, 0xf25d, 0xe4f5, 0xe762, 0xf43a, 0xf53a,
+ 0xef6e, 0xec41, 0xf613, 0x0ee6, 0x1a81, 0x124c,
+ 0x0c6e, 0x095a, 0x08df, 0x1022, 0x1307, 0x1177,
+ 0x127f, 0x0c4f, 0xfe56, 0xf3b2, 0xf24c, 0xfb90,
+ 0x05d2, 0x0a04, 0x0dbd, 0x0aaf, 0xfc66, 0xf909,
+ 0x08eb, 0x12da, 0x0c95, 0x0579, 0x0261, 0x016e,
+ 0x051c, 0x05ff, 0x02ef, 0x066b, 0x0760, 0xfe46,
+ 0xfbac, 0xff31, 0xfa08, 0xf375, 0xf67a, 0xfefd,
+ 0x0173, 0xf642, 0xea19, 0xea88, 0xeb52, 0xe38e,
+ 0xdf07, 0xe0ce, 0xdd7c, 0xd7aa, 0xe53c, 0x04e8,
+ 0x110d, 0x021d, 0xfd70, 0x05de, 0xfc6d, 0xeb50,
+ 0xf098, 0x0293, 0x0b4d, 0x0b6d, 0x0732, 0x005c,
+ 0xfe66, 0x0189, 0x03f7, 0x0793, 0x0842, 0xfaeb,
+ 0xeb96, 0xecff, 0xef37, 0xe37b, 0xe072, 0xee96,
+ 0xfac9, 0x02cf, 0x03ff, 0xf52f, 0xeb69, 0xf4fb,
+ 0xfea0, 0x03d5, 0x0a68, 0x07e3, 0xfb45, 0xf1d3,
+ 0xf353, 0xfbf6, 0x012f, 0xff46, 0xf7a2, 0xf0b0,
+ 0xf510, 0xfae7, 0xfa51, 0x019d, 0x069e, 0x00c6,
+ 0x0979, 0x166f, 0x1008, 0x0aa5, 0x0923, 0xff8b,
+ 0xfd93, 0x0229, 0x016d, 0xfff1, 0xfa7a, 0xf1b4,
+ 0xec72, 0xec40, 0xf93a, 0x07f7, 0x0658, 0x0446,
+ 0x05a1, 0xfe98, 0xfe45, 0x07a3, 0x0be3, 0x0d36,
+ 0x0c63, 0x0970, 0x0862, 0x0416, 0x0080, 0x0245,
+ 0x03e5, 0x0b10, 0x113f, 0x05ea, 0xfad6, 0xff5e,
+ 0x0190, 0xfa29, 0xf33d, 0xf23c, 0xf8cc, 0x022b,
+ 0x060b, 0x0327, 0xfe45, 0xfaef, 0xf992, 0xfdcf,
+ 0x0898, 0x0cff, 0x00eb, 0xefed, 0xed18, 0xf659,
+ 0xf725, 0xef77, 0xf041, 0xf373, 0xeee4, 0xec0e,
+ 0xecb3, 0xeaba, 0xebff, 0xf94b, 0x0d1c, 0x1178,
+ 0x04b3, 0x03f6, 0x0d15, 0x05fa, 0xfc8a, 0x0298,
+ 0x0c46, 0x173e, 0x21b4, 0x1c24, 0x0a84, 0xfd5a,
+ 0xfa66, 0x01b2, 0x09a7, 0x053f, 0xf673, 0xe814,
+ 0xe761, 0xfb53, 0x0f46, 0x0cab, 0x02c1, 0x0338,
+ 0x019b, 0xf896, 0xf432, 0xf6d2, 0xfd30, 0x030c,
+ 0x02f7, 0x01c9, 0x026a, 0x0306, 0x0b4b, 0x15c6,
+ 0x12a6, 0x0a98, 0x06b7, 0x0144, 0xffb7, 0x00ea,
+ 0xfc21, 0xfde4, 0x0869, 0x0dde, 0x165e, 0x1f7c,
+ 0x1562, 0x08a6, 0x0c25, 0x0d45, 0x059c, 0x0100,
+ 0xffff, 0x0387, 0x08b3, 0x0821, 0x0650, 0x0238,
+ 0xfb99, 0x013d, 0x0c07, 0x0913, 0x0362, 0x077f,
+ 0x0d9e, 0x0d2e, 0x06b3, 0x05aa, 0x0bb8, 0x0b51,
+ 0x0640, 0x027c, 0x008d, 0x09f7, 0x12a1, 0x0775,
+ 0xfbc1, 0xf989, 0xf552, 0xfbbc, 0x0d43, 0x10fb,
+ 0x06ca, 0xfe5a, 0xfdd7, 0x037a, 0x0676, 0x0417,
+ 0xfe99, 0xf688, 0xf23f, 0xf231, 0xf35f, 0xf9cc,
+ 0xfea4, 0xfbf0, 0xfa28, 0xf7c4, 0xeef1, 0xe340,
+ 0xdb20, 0xe0a2, 0xeef4, 0xf38a, 0xed25, 0xdf68,
+ 0xcee6, 0xcf73, 0xe438, 0xf8c0, 0x0169, 0x0322,
+ 0x09d9, 0x0e4f, 0x0018, 0xf282, 0xf7d1, 0xff3d,
+ 0x04f8, 0x0dfe, 0x0f99, 0x0b78, 0x094e, 0x07bb,
+ 0x0708, 0x02cb, 0xfa5b, 0xf63c, 0xf58b, 0xf453,
+ 0xf295, 0xf38a, 0xfce5, 0x0158, 0xf5fa, 0xeefb,
+ 0xf0bd, 0xec76, 0xeaa1, 0xee6b, 0xeca1, 0xeb38,
+ 0xefea, 0xf855, 0x04b7, 0x0bce, 0x09f7, 0x0b8b,
+ 0x0d67, 0x01cd, 0xf376, 0xf4e6, 0xfb0e, 0xf53c,
+ 0xf0da, 0xf5a8, 0xf34b, 0xedc0, 0xf205, 0xf640,
+ 0xf8ce, 0x014f, 0x0788, 0x0589, 0xfbfe, 0xecce,
+ 0xe32d, 0xe26a, 0xe632, 0xf0eb, 0xfa02, 0xf85b,
+ 0xf3ec, 0xef3b, 0xeda5, 0xf548, 0xf721, 0xf26a,
+ 0xfb15, 0x0275, 0xf79e, 0xeea4, 0xebcf, 0xe25b,
+ 0xdd0d, 0xe829, 0xfc49, 0x0810, 0x0393, 0xfdd1,
+ 0xfc9d, 0xf360, 0xea40, 0xed25, 0xf286, 0xf5ed,
+ 0xf6f2, 0xf3f4, 0xf4d2, 0xf6ac, 0xf17c, 0xec1a,
+ 0xe96a, 0xed8c, 0xfdf5, 0x05ee, 0xfba9, 0xf657,
+ 0xf6ea, 0xee34, 0xe723, 0xeb09, 0xf028, 0xf1c0,
+ 0xf158, 0xf010, 0xef70, 0xe9b8, 0xd9b7, 0xd0cd,
+ 0xe4fb, 0x0613, 0x0fa3, 0x037e, 0x0243, 0x1013,
+ 0x1186, 0x03a7, 0x03ab, 0x14d8, 0x1c96, 0x19ef,
+ 0x1ad9, 0x1543, 0x05a9, 0x007c, 0x090a, 0x0fa3,
+ 0x1381, 0x1686, 0x0cca, 0xfbaf, 0xfa95, 0x070f,
+ 0x0dd9, 0x0dd4, 0x0d4f, 0x0dfc, 0x0d13, 0x025e,
+ 0xf44a, 0xf3a3, 0xfb92, 0xfe60, 0xfcaf, 0xfa57,
+ 0xfa51, 0x0382, 0x1696, 0x240c, 0x1cbb, 0x0a89,
+ 0x0056, 0x0067, 0x040f, 0x0386, 0x008c, 0x0763,
+ 0x10f3, 0x1207, 0x16fc, 0x1f5d, 0x1d65, 0x1559,
+ 0x09b2, 0xfcff, 0xfc66, 0x0448, 0x08c2, 0x058a,
+ 0xf921, 0xf1e9, 0xf983, 0x022f, 0x0832, 0x0be3,
+ 0x05a1, 0x02a4, 0x0dcb, 0x1512, 0x111c, 0x10a6,
+ 0x16f5, 0x1669, 0x0b6e, 0x0521, 0x0747, 0x0390,
+ 0xfba7, 0x020e, 0x17bf, 0x2460, 0x1ab2, 0x0f1b,
+ 0x0dc8, 0x084e, 0x013d, 0x04aa, 0x094a, 0x0a0c,
+ 0x0c41, 0x0dde, 0x0fa9, 0x13ad, 0x14c2, 0x1125,
+ 0x0dbb, 0x1026, 0x177d, 0x19e4, 0x0e2c, 0xf7a5,
+ 0xe919, 0xecb0, 0xf34c, 0xf608, 0xff18, 0x0c47,
+ 0x153c, 0x12d0, 0xfeeb, 0xe6f9, 0xdcbe, 0xe361,
+ 0xf38f, 0xf628, 0xed52, 0xff5d, 0x1c8a, 0x16bd,
+ 0x0863, 0x132f, 0x1dff, 0x1d35, 0x1bc3, 0x10bb,
+ 0xfc89, 0xf328, 0xfb1d, 0x0a53, 0x1228, 0x0dc5,
+ 0x0afa, 0x0fd7, 0x10c1, 0x100e, 0x1369, 0x0982,
+ 0xf215, 0xe9a7, 0xf18c, 0xf398, 0xedf5, 0xea00,
+ 0xedc5, 0xfa99, 0x034f, 0xff05, 0xfb06, 0xfe8a,
+ 0xff00, 0xfc86, 0x0143, 0x0845, 0x07e5, 0x01eb,
+ 0xf8f2, 0xf3d7, 0xfcee, 0x0a4a, 0x0c4c, 0x07c6,
+ 0x052e, 0x0503, 0x055c, 0x0470, 0x04b7, 0x0450,
+ 0x006e, 0x01b7, 0x07a5, 0x09bf, 0x0bd6, 0x0b31,
+ 0x0450, 0x01fd, 0x015d, 0xfd0a, 0xff0d, 0x028d,
+ 0x0035, 0x0203, 0x06a3, 0x0862, 0x0f7f, 0x1a60,
+ 0x1ac5, 0x10d4, 0x0d51, 0x1339, 0x11b8, 0x09b8,
+ 0x0b48, 0x10e6, 0x0d0b, 0x0289, 0xfe5d, 0x078a,
+ 0x10e6, 0x0e4a, 0x06bb, 0xfe1d, 0xf9b9, 0xff90,
+ 0xff5f, 0xf74a, 0xfa3f, 0xfe3f, 0xfad3, 0xff86,
+ 0x059b, 0x01d3, 0xfda0, 0xfa10, 0xf8be, 0x0126,
+ 0x0863, 0x05c1, 0x010b, 0xfcde, 0xfa66, 0xfe20,
+ 0x032c, 0x0058, 0xf3db, 0xe92e, 0xecd8, 0xf082,
+ 0xe621, 0xeac0, 0x09cd, 0x12d7, 0xf8c4, 0xeffb,
+ 0x070c, 0x1788, 0x147e, 0x0fde, 0x0f79, 0x0c19,
+ 0x0754, 0x0818, 0x0cb5, 0x10b6, 0x0f5f, 0x076c,
+ 0x067a, 0x10fb, 0x1a9a, 0x2373, 0x2463, 0x0eba,
+ 0xf688, 0xee2f, 0xeb83, 0xed56, 0xefff, 0xedb2,
+ 0xf25f, 0xf8e1, 0xf6ed, 0xf584, 0xf0c1, 0xede5,
+ 0xff80, 0x10e7, 0x0e51, 0x089a, 0x063c, 0x044d,
+ 0x060a, 0x0750, 0x060e, 0x0390, 0x0139, 0x0451,
+ 0x0b39, 0x120b, 0x1538, 0x0d9c, 0x0278, 0x000a,
+ 0x0490, 0x0ab7, 0x0a3e, 0x032d, 0x0357, 0x0881,
+ 0x0660, 0xfbe3, 0xf214, 0xf8c8, 0x055a, 0xff91,
+ 0xfae7, 0x07e3, 0x110f, 0x11ce, 0x0dfd, 0x0476,
+ 0x02ae, 0x06d2, 0x0764, 0x07cd, 0x03cb, 0x053e,
+ 0x139f, 0x140b, 0x0799, 0x0369, 0xff0e, 0x0036,
+ 0x0a6d, 0x0625, 0xfc21, 0xfbbd, 0xf770, 0xf2a0,
+ 0xf652, 0xfe3d, 0x0752, 0x04a9, 0xf6e4, 0xf30c,
+ 0xf8fd, 0x0176, 0x0b3a, 0x0d15, 0x0818, 0xfed7,
+ 0xf0ca, 0xf00b, 0xfce1, 0xfe17, 0xf4cf, 0xef23,
+ 0xe95f, 0xdeca, 0xd8f5, 0xe4db, 0xf0a0, 0xe55e,
+ 0xe54e, 0x0680, 0x16cc, 0x051a, 0xfa8d, 0xfcd7,
+ 0xfd1c, 0x0274, 0x0942, 0x0785, 0x0534, 0x07ee,
+ 0x0d0f, 0x14e6, 0x18a5, 0x0f44, 0x0371, 0x03b4,
+ 0x08c8, 0x0a0f, 0x0b86, 0x0854, 0xfa74, 0xee2a,
+ 0xec24, 0xedc5, 0xf0e7, 0xf5bf, 0xf442, 0xecdb,
+ 0xee52, 0xfb04, 0x035f, 0x03a8, 0x0718, 0x0d14,
+ 0x0a6c, 0xffda, 0xf97e, 0xfc7f, 0x02c1, 0x071f,
+ 0x0788, 0x02f5, 0x002a, 0x01e1, 0xfd72, 0xf3d5,
+ 0xf3b8, 0xfefb, 0x0aec, 0x0b15, 0xff9e, 0xfe2c,
+ 0x0aa4, 0x09c7, 0xf8b1, 0xf08d, 0xf3b9, 0xf5b1,
+ 0xfcc5, 0x0e15, 0x1604, 0x0b2e, 0x02b3, 0x0419,
+ 0x056f, 0x0c04, 0x126b, 0x0895, 0xfb1b, 0xf624,
+ 0xf608, 0xfc59, 0xfa2c, 0xe98b, 0xea50, 0xfbf0,
+ 0xfee8, 0xfaa5, 0xfdfd, 0x0160, 0x0062, 0xf83a,
+ 0xf167, 0xfa2e, 0x038e, 0xfdc8, 0xf5b7, 0xf80f,
+ 0x0643, 0x16b7, 0x1815, 0x0b92, 0x01d6, 0x0199,
+ 0x0496, 0x02d1, 0xfe03, 0xf86f, 0xf02e, 0xefa1,
+ 0xfb37, 0x03a7, 0x0186, 0xf347, 0xd9f8, 0xc466,
+ 0xbbd4, 0xca65, 0xf1a1, 0x06bf, 0x0065, 0x1093,
+ 0x290c, 0x20e1, 0x1b74, 0x26f0, 0x206b, 0x16ef,
+ 0x21cb, 0x28ae, 0x1d4c, 0x107b, 0x1093, 0x17a2,
+ 0x1b50, 0x1fdd, 0x248b, 0x22b6, 0x1cc4, 0x0daa,
+ 0xfad1, 0xf6ef, 0xf6ae, 0xf312, 0xfba6, 0x01d0,
+ 0xfc6b, 0xfeb3, 0x00fc, 0xf9c5, 0xf535, 0xf32c,
+ 0xf420, 0xf73a, 0xf42c, 0xf628, 0xfd4d, 0xf9a5,
+ 0xf6c9, 0xfd88, 0x0513, 0x0cd0, 0x0bbd, 0xff74,
+ 0xfa2d, 0xfca4, 0xfd60, 0xfdae, 0x0149, 0x0c0a,
+ 0x133b, 0x0c5e, 0x0654, 0x06b8, 0x03f1, 0xfe0e,
+ 0xf67a, 0xf55e, 0xfd65, 0xfebd, 0xfdb2, 0x037f,
+ 0x0325, 0xfe4b, 0xfb8b, 0xf680, 0xf50e, 0xf597,
+ 0xf67f, 0x0141, 0x07ec, 0x0160, 0xff6f, 0x059f,
+ 0x0eb7, 0x127f, 0x07e4, 0x01e8, 0x0630, 0xff08,
+ 0xf5d1, 0xf81e, 0xfb88, 0xfe3c, 0xfe0c, 0xfcd0,
+ 0x04fc, 0x098f, 0x00f8, 0xf8ba, 0xf5eb, 0xfa6e,
+ 0x0325, 0x02ed, 0xfe42, 0xffd2, 0x05db, 0x09cc,
+ 0x02e4, 0xf936, 0xfac4, 0xfd99, 0xfb88, 0xf9ab,
+ 0xf5a0, 0xf423, 0xf408, 0xe79e, 0xd4c4, 0xd00f,
+ 0xe475, 0xfc12, 0xf2ec, 0xe305, 0xf71e, 0x0a96,
+ 0xfef8, 0xfa59, 0x09ae, 0x127f, 0x1004, 0x0d69,
+ 0x0d01, 0x0bc5, 0x0c00, 0x0b3c, 0x01f3, 0x010e,
+ 0x15e6, 0x258f, 0x2088, 0x1475, 0x08e1, 0x0500,
+ 0x0729, 0x0366, 0x028c, 0x0718, 0x01ad, 0xf975,
+ 0xf6c1, 0xf145, 0xecdd, 0xec08, 0xeaf2, 0xf04c,
+ 0xf6a7, 0xf1f4, 0xe9c8, 0xe569, 0xe640, 0xef54,
+ 0xf6ce, 0xf7fc, 0xfe4c, 0x04f1, 0x0216, 0x002c,
+ 0x028b, 0x00e6, 0xff98, 0x04d6, 0x0d81, 0x13e4,
+ 0x1133, 0x0697, 0xfdab, 0xf87e, 0xf611, 0xfc43,
+ 0x0a08, 0x1053, 0x0717, 0xfbf5, 0xfc67, 0x01bc,
+ 0x02c0, 0x00cd, 0xfb85, 0xf1d5, 0xeccf, 0xf2bc,
+ 0xf919, 0xfa06, 0x014e, 0x0fb9, 0x191d, 0x1aeb,
+ 0x115a, 0x0066, 0xfd54, 0x0254, 0xfc72, 0xfaa0,
+ 0x03d4, 0x06d9, 0x0501, 0x04ed, 0x0537, 0x091c,
+ 0x0bf0, 0x08a1, 0x0556, 0x026c, 0xfb89, 0xf0c0,
+ 0xe787, 0xe880, 0xf18b, 0xfa7c, 0x0171, 0x057d,
+ 0x0794, 0x055d, 0xfb4a, 0xf4d5, 0xf676, 0xf63c,
+ 0xf769, 0xf920, 0xf0ca, 0xe853, 0xef7e, 0x02d7,
+ 0x0c26, 0xff91, 0xfc31, 0x103c, 0x15a8, 0x0d16,
+ 0x14c2, 0x16c4, 0x0774, 0x06f4, 0x139a, 0x151c,
+ 0x0fba, 0x0cc3, 0x09a7, 0x07c3, 0x0b43, 0x0ee9,
+ 0x0c8a, 0x0b07, 0x0d94, 0x0c5f, 0x0b77, 0x1218,
+ 0x1535, 0x0b0c, 0xfcf2, 0xf6d8, 0xf751, 0xf99a,
+ 0xff24, 0x0208, 0xf87d, 0xe9ff, 0xe3fc, 0xe8f6,
+ 0xf557, 0x003f, 0x0338, 0x039a, 0x05d8, 0x07d4,
+ 0x0974, 0x0b1c, 0x0ab5, 0x0806, 0x085c, 0x0efc,
+ 0x121d, 0x09b7, 0x0118, 0x0207, 0x068b, 0x0cc5,
+ 0x1405, 0x0f5c, 0xffa5, 0xf9b1, 0x0088, 0x074d,
+ 0x0ba2, 0x0b21, 0x041d, 0x047d, 0x111c, 0x1871,
+ 0x136a, 0x0ee0, 0x0db3, 0x0544, 0xfad3, 0xfe5d,
+ 0x0b10, 0x1122, 0x0e61, 0x09c7, 0x09a3, 0x0a64,
+ 0x042f, 0xfd80, 0xfbb1, 0xf863, 0xf858, 0x010d,
+ 0x07f4, 0x06fb, 0x01ed, 0xfd7c, 0xff02, 0x0723,
+ 0x113a, 0x13d0, 0x05bd, 0xf10d, 0xe978, 0xef9e,
+ 0xf73b, 0xfd51, 0x0522, 0x0993, 0x06dc, 0x0369,
+ 0xfc57, 0xef44, 0xea46, 0xeb28, 0xe6bf, 0xe66f,
+ 0xe75b, 0xdbb2, 0xd101, 0xda74, 0xf0e7, 0xfb76,
+ 0xfa9d, 0x0c11, 0x1f0e, 0x0feb, 0x015b, 0x09c6,
+ 0x045a, 0xf5f4, 0xfa72, 0x067a, 0x0f0a, 0x13df,
+ 0x144e, 0x114a, 0x0768, 0x000f, 0x017c, 0x0236,
+ 0x083e, 0x096e, 0xf35d, 0xe92a, 0xf98c, 0xfccd,
+ 0xf1a0, 0xe7f7, 0xd889, 0xd093, 0xda1f, 0xe5a3,
+ 0xecb4, 0xebbd, 0xe087, 0xda7a, 0xe325, 0xed54,
+ 0xee7b, 0xf340, 0x0113, 0x0613, 0x035e, 0x0397,
+ 0xfbf0, 0xf265, 0xf4b5, 0xf559, 0xf247, 0xf474,
+ 0xf467, 0xf3dd, 0xf64e, 0xf17e, 0xe7e2, 0xe4d6,
+ 0xe964, 0xeb97, 0xe291, 0xdb87, 0xe41b, 0xef6d,
+ 0xf417, 0xf5c9, 0xf25d, 0xed60, 0xeea1, 0xeec9,
+ 0xe74c, 0xe5d9, 0xf17c, 0xf929, 0xfa0e, 0x0102,
+ 0x018d, 0xf23a, 0xe4f5, 0xdf90, 0xe021, 0xe933,
+ 0xed17, 0xe6bb, 0xe500, 0xea25, 0xef5b, 0xf212,
+ 0xf3a7, 0xf7fd, 0xf9d9, 0xf6c9, 0xf608, 0xf25e,
+ 0xe76e, 0xdf8c, 0xe026, 0xe8aa, 0xf43b, 0xfd4f,
+ 0x06e4, 0x0947, 0xfbcf, 0xf262, 0xfba8, 0x0750,
+ 0x0357, 0xefb1, 0xddfe, 0xdde0, 0xe639, 0xe3fe,
+ 0xd917, 0xdfe1, 0xfed9, 0x0fa3, 0x03eb, 0x037c,
+ 0x17e0, 0x1b18, 0x0776, 0xfef9, 0x0ae0, 0x1510,
+ 0x171e, 0x17a7, 0x1282, 0x0e3b, 0x120f, 0x0ec2,
+ 0x05f6, 0x0660, 0x07dc, 0x0c0f, 0x19e2, 0x1a06,
+ 0x049a, 0xf44b, 0xf500, 0xfd87, 0x058d, 0x073e,
+ 0xff81, 0xf575, 0xf7ec, 0x05fc, 0x0d30, 0x06d3,
+ 0xfab9, 0xf2a8, 0xf604, 0xfe56, 0x0266, 0x08a0,
+ 0x1250, 0x1343, 0x0cfd, 0x0c55, 0x0f89, 0x10cd,
+ 0x1446, 0x14ba, 0x0d21, 0x0c70, 0x14fc, 0x1919,
+ 0x1836, 0x0f5d, 0x0129, 0x0207, 0x0d60, 0x11b9,
+ 0x13b3, 0x13dc, 0x11a2, 0x13a8, 0x127a, 0x0be2,
+ 0x0611, 0xfdc0, 0xf9b2, 0x0068, 0x04b8, 0xfd5f,
+ 0xefd2, 0xe957, 0xed41, 0xf0aa, 0xf714, 0x0393,
+ 0x09bb, 0x0ce9, 0x0d19, 0x02f7, 0x050c, 0x1884,
+ 0x1cf0, 0x1087, 0x0ccf, 0x1578, 0x1b99, 0x1979,
+ 0x16fe, 0x13bd, 0x10f7, 0x159f, 0x10a2, 0xff24,
+ 0xf91d, 0xf763, 0xf682, 0x03f8, 0x0b4c, 0x093d,
+ 0x0e01, 0x0882, 0xffc4, 0x06b6, 0x08e6, 0x03db,
+ 0xfdba, 0xf053, 0xf1a1, 0xfd0b, 0xef69, 0xdf16,
+ 0xf182, 0x15aa, 0x247e, 0x1796, 0x12fb, 0x1b6a,
+ 0x0c3d, 0xf812, 0x026c, 0x0d86, 0x03c1, 0xfc61,
+ 0xfcd6, 0xf991, 0xfad4, 0x0a7e, 0x1671, 0x1180,
+ 0x0edf, 0x1336, 0x0edf, 0x0418, 0xf650, 0xeb9a,
+ 0xf6fa, 0x0f0c, 0x197f, 0x159d, 0x0cfa, 0x0673,
+ 0x057e, 0x045f, 0x005f, 0xfd56, 0xfe18, 0xff06,
+ 0xf63a, 0xe91b, 0xe8dd, 0xf3d7, 0xfd23, 0xfe13,
+ 0xf731, 0xf492, 0xfec4, 0x0ba8, 0x0f38, 0x0754,
+ 0xf774, 0xec4f, 0xf54b, 0x0a09, 0x1465, 0x14a3,
+ 0x0f59, 0x008f, 0xf9c2, 0x0547, 0x0df0, 0x0c75,
+ 0x07b2, 0x021e, 0x0313, 0x0632, 0x06b9, 0x0b49,
+ 0x0974, 0x002e, 0x0126, 0x070d, 0x0a8e, 0x098d,
+ 0xfb08, 0xf1b5, 0xfc2f, 0x0402, 0x0286, 0x018f,
+ 0x0273, 0x04fe, 0x01ff, 0x01fe, 0x1250, 0x19ee,
+ 0x0fb5, 0x0fef, 0x170f, 0x0f92, 0x014d, 0xfe3e,
+ 0x073b, 0x0b41, 0x030f, 0xfb3d, 0xfbfa, 0x048a,
+ 0x0b8b, 0x064f, 0xfc28, 0xf5d2, 0xf3fa, 0xf645,
+ 0xf599, 0xf5dc, 0xfcbd, 0x004b, 0x0763, 0x10ad,
+ 0x05e4, 0xf951, 0xf8d9, 0xecd7, 0xe6c9, 0xfb10,
+ 0x0b2d, 0x0d03, 0x0f2a, 0x1090, 0x0e5c, 0x0882,
+ 0x0560, 0x09d1, 0x0db7, 0x1145, 0x1142, 0x03c7,
+ 0xf8f1, 0xfd1b, 0x046d, 0x0a35, 0x0b4e, 0x04df,
+ 0x001a, 0x02a6, 0x0a30, 0x0ae9, 0xfe38, 0xfb95,
+ 0x0eac, 0x19fe, 0x0bdb, 0xf85c, 0xf302, 0xf166,
+ 0xe879, 0xe81e, 0xf356, 0xfa75, 0xfde0, 0xf7c0,
+ 0xe5db, 0xe2cf, 0xefe1, 0xf80c, 0xfd9a, 0xfe27,
+ 0xfa99, 0x06e5, 0x15c1, 0x0e57, 0x03ed, 0x07bd,
+ 0x09e8, 0x0798, 0x0f4c, 0x18d9, 0x11e9, 0x006b,
+ 0xf552, 0xfa4a, 0x0bca, 0x155c, 0x1111, 0x0cec,
+ 0x0899, 0x0633, 0x0d50, 0x0e0d, 0x01f7, 0xf602,
+ 0xecf2, 0xeffa, 0x026f, 0x101f, 0x13d6, 0x109f,
+ 0x0492, 0x0120, 0x0a2c, 0x0a6b, 0x0544, 0x079a,
+ 0x0888, 0x03d8, 0x0273, 0x0645, 0x0655, 0xff81,
+ 0xfcf7, 0x027f, 0x095d, 0x11b8, 0x1362, 0x053d,
+ 0xfa8a, 0xfc9f, 0xf935, 0xf6cd, 0x0143, 0x038f,
+ 0xfccc, 0x0182, 0x0559, 0xfb35, 0xf09a, 0xf08e,
+ 0xfcd8, 0x04ee, 0xfab7, 0xf85d, 0x0810, 0x0c04,
+ 0xfe75, 0xea50, 0xdca1, 0xebcf, 0xff5a, 0xf0b1,
+ 0xe3bb, 0xfcdb, 0x1539, 0x0bd4, 0xfef1, 0x0927,
+ 0x1157, 0x0b8c, 0x0e94, 0x0ec3, 0xfd18, 0xf544,
+ 0xfa95, 0xfc95, 0x0402, 0x0c55, 0x0a6a, 0x05f9,
+ 0x0144, 0xff4f, 0x0147, 0xfd26, 0xf8b1, 0xfc95,
+ 0xffec, 0xfc15, 0xf686, 0xfd8d, 0x0c41, 0x077a,
+ 0xf611, 0xf1fb, 0xf45b, 0xef9f, 0xe4c5, 0xe025,
+ 0xeecc, 0xff82, 0x01bd, 0x0266, 0xff36, 0xf43c,
+ 0xf93d, 0x1112, 0x1fcc, 0x1873, 0x0b17, 0x0a38,
+ 0x0db8, 0x0777, 0xfeab, 0xfbce, 0xfdc7, 0x0110,
+ 0x0504, 0x0e08, 0x1238, 0x0696, 0xfd7f, 0x01f0,
+ 0x06dc, 0x0a37, 0x0aaf, 0xff46, 0xf031, 0xed6a,
+ 0xf929, 0x07a7, 0x0b72, 0x06bd, 0x0404, 0x01b3,
+ 0xfc25, 0xfc2f, 0x03a7, 0x030c, 0xf6eb, 0xed4d,
+ 0xef1d, 0xfe4d, 0x0b61, 0x0178, 0xf333, 0xf796,
+ 0xff5c, 0x0261, 0x0793, 0x0a07, 0x0612, 0xfdc6,
+ 0xfa8a, 0x0277, 0x068f, 0x00d5, 0xf84a, 0xeedd,
+ 0xee54, 0xf3ac, 0xf84a, 0x0842, 0x1185, 0x0713,
+ 0x064b, 0x074f, 0xffdc, 0x094d, 0x0e55, 0xfd40,
+ 0xf2c3, 0xf411, 0x08a0, 0x276f, 0x1e93, 0x0763,
+ 0x1513, 0x21e2, 0x1608, 0x0de7, 0x0c84, 0x08d7,
+ 0x052a, 0x08d0, 0x129b, 0x112a, 0x0572, 0xff09,
+ 0x026a, 0x0d37, 0x0cf2, 0x0181, 0x045a, 0x070a,
+ 0xff33, 0x03a5, 0x02e9, 0xf25e, 0xee41, 0xf0b8,
+ 0xf1fa, 0xfb58, 0xfc7a, 0xf5ee, 0xf9a4, 0xffc5,
+ 0xffac, 0xf59f, 0xe6e4, 0xeacc, 0xfbe3, 0xfff6,
+ 0xfc10, 0xffa5, 0x086c, 0x10ce, 0x19c4, 0x1f3b,
+ 0x1888, 0x0ef3, 0x0bec, 0x05fc, 0x0276, 0x0909,
+ 0x0a0d, 0x0267, 0xfb98, 0xf9a6, 0x016b, 0x0860,
+ 0x0720, 0x0afe, 0x0ef3, 0x0a31, 0x0882, 0x0b66,
+ 0x0ef9, 0x0f9b, 0x0377, 0xf624, 0xf58a, 0xf87e,
+ 0xfe3d, 0x065d, 0x0335, 0xf82b, 0xf40e, 0xfb43,
+ 0x0350, 0xf93a, 0xe72e, 0xeaca, 0xf7bb, 0xf6b3,
+ 0xfbc5, 0x0e5b, 0x104a, 0x04d2, 0x0800, 0x107d,
+ 0x107c, 0x0f81, 0x0799, 0xf908, 0xf56a, 0xfa0c,
+ 0x0087, 0x07a3, 0xfed2, 0xecf3, 0xee36, 0xfae7,
+ 0xffd7, 0x00f2, 0x0207, 0x00d4, 0xfb38, 0xf326,
+ 0xf3c1, 0xfe23, 0x0400, 0xfd29, 0xedaf, 0xe041,
+ 0xde8b, 0xee23, 0x07f8, 0x0e2a, 0xfbc7, 0xfa54,
+ 0x0bb5, 0x0996, 0xffbb, 0x0348, 0x0208, 0xffbd,
+ 0x095e, 0x0bd4, 0x0500, 0x045c, 0x02f8, 0xfede,
+ 0x0404, 0x0dd1, 0x0f95, 0x0c7d, 0x0fef, 0x10d4,
+ 0xfdef, 0xecc6, 0xf8c1, 0x0984, 0x06d3, 0x03e5,
+ 0x09bc, 0x0622, 0xf920, 0xf75f, 0x0015, 0xff7d,
+ 0xf92c, 0xf8d6, 0xf540, 0xefce, 0xf0a1, 0xef08,
+ 0xf273, 0x033c, 0x0d7c, 0x0e71, 0x0eb3, 0x0498,
+ 0xf8d2, 0xf9a5, 0xfc64, 0xfa5d, 0xf31d, 0xebcf,
+ 0xf198, 0xf4d1, 0xead3, 0xf33c, 0x0a4f, 0x09cf,
+ 0xfe52, 0x0086, 0x03a5, 0x0217, 0x0101, 0xfbf7,
+ 0xf803, 0xfa25, 0xfbe9, 0x0121, 0x0bb9, 0x0d99,
+ 0x0613, 0x0239, 0x0375, 0x0570, 0x059b, 0x03cd,
+ 0x058c, 0x07c3, 0x0042, 0xf588, 0xf5bd, 0xfe4e,
+ 0x0316, 0x03b6, 0x05cd, 0x0370, 0xfe6d, 0x0529,
+ 0x0b88, 0x00d0, 0xf7fa, 0xfa3b, 0xf8cd, 0xf5e9,
+ 0xf632, 0xf61f, 0xfa4c, 0xfe7d, 0xfc9d, 0xff19,
+ 0x0355, 0xfadd, 0xf00f, 0xf333, 0xf9c1, 0xf74a,
+ 0xf4d1, 0xf75d, 0xf1f0, 0xdd81, 0xcc6f, 0xdb3a,
+ 0xff34, 0x0b13, 0x017b, 0x08cf, 0x1519, 0x0e64,
+ 0x092c, 0x128f, 0x1975, 0x13ac, 0x0c74, 0x11a3,
+ 0x19e1, 0x174d, 0x10e8, 0x0cc8, 0x0ac5, 0x0a8e,
+ 0x0877, 0x0cd5, 0x159a, 0x0c27, 0xfbaf, 0xfb3f,
+ 0xfe32, 0x002d, 0x08f9, 0x0b78, 0x048c, 0x04c0,
+ 0x0dff, 0x0d1b, 0xf9b5, 0xece4, 0xf5a5, 0xfde5,
+ 0xfbba, 0xf7c8, 0xf2df, 0xf481, 0x01f2, 0x0fbb,
+ 0x1613, 0x14cb, 0x0db1, 0x0576, 0x02ee, 0x0a9c,
+ 0x0cae, 0xfb88, 0xf118, 0xfd90, 0x0786, 0x0612,
+ 0x0760, 0x0933, 0x089c, 0x0e59, 0x158c, 0x131b,
+ 0x10ba, 0x1703, 0x17b3, 0x0ca6, 0x0124, 0xfdf6,
+ 0x09a2, 0x1ae3, 0x1b05, 0x0cba, 0x0439, 0x0909,
+ 0x117e, 0x0b1d, 0xfc0b, 0xf80f, 0xf527, 0xf1d3,
+ 0xfe85, 0x06b2, 0xf8a8, 0xee21, 0xf566, 0xff3a,
+ 0xff2e, 0xfadb, 0xfbe3, 0xfa4a, 0xf58a, 0xfde8,
+ 0x0b13, 0x0b69, 0x00d5, 0xf0d9, 0xe9c4, 0xf47e,
+ 0xfe02, 0xfe4c, 0x0087, 0x04d0, 0x0790, 0x0607,
+ 0x00d3, 0xfee2, 0xf973, 0xee78, 0xeeb0, 0xf383,
+ 0xec46, 0xe343, 0xdcfb, 0xd83a, 0xe84f, 0x06c1,
+ 0x0d77, 0xffe5, 0x022d, 0x1370, 0x1aee, 0x17b7,
+ 0x12c7, 0x07ea, 0xfc37, 0x01a2, 0x0eec, 0x0b96,
+ 0xff84, 0xf9d5, 0xf69e, 0xf81a, 0xfb19, 0xf68a,
+ 0xf704, 0xfc1e, 0xf573, 0xec96, 0xe8b9, 0xea85,
+ 0xfda3, 0x09d8, 0xf477, 0xe096, 0xe957, 0xf6c7,
+ 0xf44a, 0xe557, 0xdad9, 0xe14a, 0xefc0, 0xf5c9,
+ 0xf0f3, 0xf0a9, 0xf828, 0xf4cb, 0xecd1, 0xf072,
+ 0xf469, 0xf9e3, 0x03bf, 0xfd59, 0xed9c, 0xe829,
+ 0xe8e2, 0xece6, 0xed4b, 0xeb70, 0xf725, 0xfeeb,
+ 0xf62e, 0xf2d2, 0xf07c, 0xe7d1, 0xe982, 0xf38d,
+ 0xff8a, 0x07c5, 0xfe19, 0xf05f, 0xf1b2, 0xfae1,
+ 0x02b3, 0x005b, 0xf5e5, 0xf14c, 0xf08c, 0xf10b,
+ 0xee38, 0xdd1b, 0xd1f2, 0xd9e2, 0xde7e, 0xde7d,
+ 0xde86, 0xd873, 0xdd26, 0xec5c, 0xefe9, 0xee9a,
+ 0xf02d, 0xf14f, 0xf693, 0xf6f0, 0xee4d, 0xecc4,
+ 0xf26b, 0xf68c, 0xf9ad, 0xfc4e, 0x0277, 0x0902,
+ 0x047c, 0xfc1a, 0xfd89, 0x02e0, 0x0067, 0xfaa2,
+ 0xfca7, 0xfc91, 0xefde, 0xe9d0, 0xef7e, 0xeafe,
+ 0xdf5f, 0xdafb, 0xe079, 0xf8c9, 0x156e, 0x19cb,
+ 0x1a25, 0x2c03, 0x3033, 0x1965, 0x0707, 0x07b3,
+ 0x0f76, 0x182c, 0x206e, 0x1d0a, 0x0b50, 0x01e1,
+ 0x07a3, 0x043e, 0xf7e2, 0xf824, 0xfeca, 0xff03,
+ 0xfde5, 0x0081, 0x04f6, 0x021d, 0xf8c7, 0xfb27,
+ 0x04e3, 0x0481, 0x04dd, 0x0dbd, 0x1300, 0x10ae,
+ 0x08ee, 0x0504, 0x0c3e, 0x106c, 0x118d, 0x1e71,
+ 0x259e, 0x1710, 0x079f, 0x05ec, 0x07e5, 0x0527,
+ 0x03b3, 0x0720, 0x053b, 0xffe2, 0x03a9, 0x0a30,
+ 0x0bb4, 0x0a05, 0x048a, 0x0329, 0x06a1, 0x03c0,
+ 0x0434, 0x0df4, 0x1292, 0x164e, 0x1ff0, 0x2239,
+ 0x1a95, 0x1404, 0x1676, 0x1eec, 0x1ca2, 0x0bbe,
+ 0xfdf3, 0xfb12, 0xf837, 0xecb9, 0xe284, 0xe48d,
+ 0xe862, 0xe745, 0xe872, 0xec8e, 0xf532, 0xfbc9,
+ 0xf497, 0xf72b, 0x0faa, 0x1945, 0x1068, 0x11d1,
+ 0x13d7, 0x0b6e, 0x053c, 0x0250, 0x0297, 0x088c,
+ 0x0b71, 0x0a49, 0x08dd, 0x01eb, 0xf9e5, 0xfc67,
+ 0x03a1, 0x02fb, 0xfd89, 0xf987, 0xf300, 0xecd5,
+ 0xef67, 0xf55d, 0xf943, 0xfdfa, 0xfedf, 0xf71e,
+ 0xeb7d, 0xe74e, 0xf8e7, 0x1667, 0x2156, 0x1d54,
+ 0x1fa7, 0x198c, 0x0157, 0xf5db, 0x048e, 0x133b,
+ 0x1314, 0x1000, 0x0f0b, 0x06f6, 0xf7f6, 0xee7e,
+ 0xf264, 0x0087, 0x0c4f, 0x0d7f, 0x0c05, 0x0b34,
+ 0x0343, 0xf959, 0xf8dd, 0x048e, 0x18fc, 0x2537,
+ 0x201a, 0x1bd9, 0x1b90, 0x1076, 0x03b1, 0xfe84,
+ 0xf98d, 0xfa22, 0x04dc, 0x0f13, 0x1180, 0x0964,
+ 0xfbed, 0xf4ff, 0xf2c6, 0xf146, 0xf672, 0xfd67,
+ 0xfd00, 0xfb6b, 0xffcf, 0x0606, 0x078a, 0x032c,
+ 0xfccb, 0xf826, 0xf635, 0xf8bf, 0x02d4, 0x105c,
+ 0x14ad, 0x0ce8, 0x07a4, 0x0e77, 0x1756, 0x1596,
+ 0x0ce6, 0x090f, 0x0bd3, 0x0fba, 0x1063, 0x0968,
+ 0xfceb, 0xf504, 0xf6b2, 0xfe11, 0x039e, 0x02cf,
+ 0xff8e, 0xff34, 0x00c8, 0x0067, 0xfe2a, 0xff0a,
+ 0x0314, 0x0610, 0x084b, 0x07f7, 0x04c9, 0x03df,
+ 0x006e, 0xf8e2, 0xf850, 0xfcf9, 0x005e, 0x0318,
+ 0x005e, 0xfb12, 0xf796, 0xeff2, 0xeea5, 0xfdae,
+ 0x0e6f, 0x1451, 0x07c0, 0xf28f, 0xf3a6, 0x0060,
+ 0xfa76, 0xf3f4, 0xfb96, 0xffd8, 0xf97c, 0xe9d8,
+ 0xe0ba, 0xf1f6, 0x062f, 0x07f5, 0x1055, 0x22ce,
+ 0x1fed, 0x0d76, 0x0d8c, 0x1b69, 0x1ad8, 0x10b8,
+ 0x0abc, 0xff9a, 0xf603, 0x005a, 0x1047, 0x1157,
+ 0x04c3, 0xf28f, 0xec7b, 0xfb97, 0x083c, 0x038f,
+ 0xfc89, 0xfd44, 0x0714, 0x1373, 0x10a8, 0x07b6,
+ 0x0d9d, 0x0d54, 0xf866, 0xed16, 0xf6f7, 0x0580,
+ 0x0d79, 0x03d3, 0xf081, 0xec07, 0xf455, 0xfa08,
+ 0xf9d9, 0xf667, 0xf6ce, 0xfa35, 0xf8f8, 0xf67c,
+ 0xf885, 0x0002, 0x04d0, 0xfe0d, 0xfc92, 0x0905,
+ 0x0c81, 0x0521, 0x0191, 0x02b5, 0x0a78, 0x10a7,
+ 0x0e3d, 0x0f3a, 0x1017, 0x103e, 0x1c14, 0x1e76,
+ 0x0c05, 0x0096, 0x016b, 0x0304, 0x0487, 0x0560,
+ 0x0da5, 0x195e, 0x13d2, 0x0512, 0x00ac, 0xfebf,
+ 0xf3fe, 0xeb59, 0xf206, 0xfbaa, 0xfcd0, 0x0205,
+ 0x0a81, 0x0ee7, 0x169f, 0x15fb, 0x04fe, 0xf990,
+ 0xfa54, 0x0103, 0x0919, 0x0523, 0xfb69, 0xfa5b,
+ 0xfa82, 0xfa6c, 0xfc98, 0xfe17, 0x063f, 0x0df6,
+ 0x0557, 0xf859, 0xf5fa, 0xfac4, 0xfe4b, 0xf83d,
+ 0xeb57, 0xe45d, 0xe3db, 0xe064, 0xdf6b, 0xed3a,
+ 0xfa20, 0xf5fe, 0xf9a0, 0x1034, 0x1da1, 0x1ad1,
+ 0x1542, 0x107d, 0x1133, 0x16f5, 0x17e1, 0x0fbf,
+ 0x01ff, 0xf755, 0xf467, 0xf81f, 0x017f, 0x071b,
+ 0x03df, 0x012a, 0x02b0, 0x081c, 0x0cc8, 0x072e,
+ 0x019a, 0x06e8, 0x0e89, 0x1529, 0x1527, 0x093b,
+ 0x00ca, 0x035f, 0x0c03, 0x1825, 0x1b37, 0x0f10,
+ 0xfc32, 0xec8c, 0xedfa, 0xfadf, 0xfe18, 0xf924,
+ 0xf1a0, 0xe8c0, 0xe67d, 0xe6ca, 0xeb2b, 0xf9f0,
+ 0xfe20, 0xf264, 0xef42, 0xf6db, 0xfd40, 0xff4d,
+ 0xfd8a, 0xfb72, 0xf4ce, 0xec84, 0xf27a, 0xfcd8,
+ 0xfd04, 0x00bd, 0x08cf, 0x0767, 0x02d4, 0x0104,
+ 0xff87, 0x027a, 0x03bc, 0xfce8, 0xfcd9, 0x030f,
+ 0xfe5a, 0xf9c9, 0xfd81, 0xf9e6, 0xf593, 0xf88f,
+ 0xf799, 0xf9b6, 0x01fa, 0x04db, 0x0602, 0x0474,
+ 0x053e, 0x13c5, 0x14e7, 0x0097, 0xf872, 0xf8dc,
+ 0xf4aa, 0xf329, 0xf0e6, 0xf914, 0x08a2, 0xff2a,
+ 0xee96, 0xf2f0, 0xfbbf, 0x06f9, 0x11f4, 0x0b84,
+ 0x0251, 0x01f3, 0x0244, 0x05da, 0x0647, 0xfc30,
+ 0xf35f, 0xefd1, 0xecb2, 0xf054, 0x01f6, 0x1134,
+ 0x09c0, 0x0244, 0x1148, 0x1b62, 0x13ba, 0x0f7c,
+ 0x10df, 0x122f, 0x157d, 0x1835, 0x18be, 0x1408,
+ 0x0a8e, 0x06ce, 0x07c3, 0x0191, 0xf7ce, 0xfb8d,
+ 0x0a4f, 0x0c93, 0x03e4, 0x01e6, 0xfec5, 0xf75a,
+ 0xf950, 0x02a7, 0x0b15, 0x0abe, 0xfecc, 0xf7e0,
+ 0xfb8a, 0xfe03, 0xfd31, 0xfab0, 0xfe3c, 0x0949,
+ 0x092d, 0x03b4, 0x0a25, 0x098d, 0xf887, 0xecd7,
+ 0xeeb2, 0xf5aa, 0xfc4b, 0x03a7, 0x093c, 0x06ea,
+ 0x06de, 0x1003, 0x1518, 0x13fd, 0x103d, 0x0584,
+ 0xfa12, 0xf3ba, 0xf43e, 0x0192, 0x1257, 0x16e8,
+ 0x100a, 0x0983, 0x0e40, 0x15f6, 0x1292, 0x0d56,
+ 0x0c67, 0x06b4, 0xfdb9, 0xf461, 0xea86, 0xe9ad,
+ 0xf33d, 0xf801, 0xf2f6, 0xf248, 0xfa91, 0xfe96,
+ 0xf9be, 0xf3a1, 0xf648, 0x0525, 0x1032, 0x0ecf,
+ 0x0b24, 0x0660, 0x05e7, 0x08a4, 0xfd66, 0xf952,
+ 0x06da, 0xfbee, 0xe46b, 0xe661, 0xec27, 0xef74,
+ 0xf6bb, 0xed3d, 0xe42e, 0xee1e, 0xf242, 0xeec9,
+ 0xec8f, 0xe4c6, 0xe2da, 0xeb9b, 0xedfd, 0xe8a3,
+ 0xe811, 0xee20, 0xf675, 0x00f1, 0x0674, 0x06a0,
+ 0x1340, 0x19ca, 0x02f7, 0xfee2, 0x1da4, 0x25cb,
+ 0x167d, 0x122c, 0x12a0, 0x137d, 0x1140, 0x05cf,
+ 0x0203, 0x06a1, 0x020f, 0xf828, 0xf904, 0x06e7,
+ 0x0e47, 0x0907, 0x082e, 0x066e, 0x0269, 0x0e7b,
+ 0x19c0, 0x133f, 0x0b48, 0x0541, 0x01a3, 0x04df,
+ 0x05f1, 0x0745, 0x0989, 0x0104, 0xf570, 0xf27a,
+ 0xf5a3, 0xf5fc, 0xeb05, 0xe161, 0xe537, 0xea84,
+ 0xef7e, 0xf700, 0xf792, 0xf5c2, 0xf8c7, 0xfb15,
+ 0xfd06, 0x0216, 0x07d4, 0x083e, 0x008f, 0xf8c4,
+ 0xf997, 0x00c3, 0x026c, 0xfe50, 0x0753, 0x141c,
+ 0x0a6d, 0x009f, 0x0d51, 0x1b49, 0x1e14, 0x1315,
+ 0xfe66, 0xf8d9, 0xff10, 0xfd30, 0xfa6b, 0xf651,
+ 0xefd3, 0xf49b, 0xfb52, 0xff2c, 0x0b92, 0x0a90,
+ 0xf1ba, 0xeab6, 0x00cc, 0x0e7b, 0x0c23, 0x07fd,
+ 0xfa55, 0xeb05, 0xf0ef, 0xff73, 0x05e8, 0x0a57,
+ 0x085a, 0xff5b, 0xfcf4, 0xfe4a, 0xfa79, 0xf4f0,
+ 0xf5a4, 0xfda8, 0x00df, 0xfe23, 0x0254, 0x0647,
+ 0xff6a, 0xf861, 0xf8b5, 0xf885, 0xee6d, 0xe1b2,
+ 0xe43c, 0xf3f5, 0xfeb1, 0xfdac, 0x0104, 0x15c2,
+ 0x1dda, 0x0889, 0x0298, 0x16a6, 0x1cac, 0x13fd,
+ 0x10a6, 0x125e, 0x101c, 0x06b8, 0x090a, 0x1449,
+ 0x0c11, 0x02ff, 0x0a42, 0x08cc, 0x00ac, 0xfc95,
+ 0xf81d, 0xf976, 0xfab5, 0xfe0d, 0x0ac0, 0x0672,
+ 0xf701, 0xfb6a, 0x04b9, 0x0819, 0x090f, 0x0416,
+ 0x08ba, 0x0f18, 0x0303, 0xfa61, 0xfb49, 0xf63d,
+ 0xf3bc, 0xfa86, 0x07eb, 0x10c4, 0x0e75, 0x127e,
+ 0x154b, 0x08dd, 0x065e, 0x0c59, 0x0993, 0x0c5f,
+ 0x11f4, 0x103e, 0x08be, 0xf5c0, 0xe947, 0xf253,
+ 0xff1b, 0x0923, 0x0caf, 0x0baf, 0x15be, 0x179c,
+ 0x0977, 0x0b9f, 0x14e9, 0x0d26, 0x0411, 0x06e6,
+ 0x11e9, 0x179b, 0x0e64, 0x04bf, 0x02f5, 0x04a6,
+ 0x0a04, 0x0c61, 0x0c15, 0x0c32, 0x0377, 0xfabf,
+ 0xfcf4, 0xfd81, 0xf96d, 0xf551, 0xee4c, 0xe88f,
+ 0xeaa2, 0xf6dc, 0x073c, 0x0cf2, 0x0330, 0xf17a,
+ 0xe65f, 0xed4a, 0xfb8b, 0x03df, 0x06e4, 0x059c,
+ 0x0181, 0xf8db, 0xf0a5, 0xf728, 0xfe1a, 0xf58f,
+ 0xeed0, 0xea38, 0xdca0, 0xcf5f, 0xc837, 0xd521,
+ 0xfa06, 0x0b0e, 0xf95a, 0xf03b, 0xfe8a, 0x0c27,
+ 0x0e72, 0x0e45, 0x11a9, 0x1416, 0x13c9, 0x11ba,
+ 0x0c5e, 0x06de, 0x00d8, 0xfa9c, 0xfe07, 0x05fb,
+ 0x0243, 0xf54b, 0xeecb, 0xf5f0, 0xfc4f, 0xf368,
+ 0xe841, 0xe9cc, 0xf253, 0xf458, 0xec85, 0xeb43,
+ 0xf39d, 0xf40d, 0xf3e1, 0xfab2, 0xf8ac, 0xf0fd,
+ 0xeee8, 0xf42e, 0xff6a, 0xfc35, 0xeb11, 0xe923,
+ 0xec47, 0xe313, 0xdf83, 0xe920, 0xf904, 0x0715,
+ 0x089d, 0x0175, 0xf758, 0xed89, 0xeb8c, 0xea75,
+ 0xe76f, 0xe96f, 0xe85a, 0xe528, 0xea75, 0xf5e7,
+ 0x05ba, 0x0e97, 0x0460, 0xf72a, 0xf303, 0xf290,
+ 0xf299, 0xf02c, 0xf01e, 0xf34a, 0xef1d, 0xe991,
+ 0xeaa2, 0xec1b, 0xeb77, 0xe93d, 0xee69, 0xfd62,
+ 0xfe1c, 0xebec, 0xdec2, 0xe250, 0xf13e, 0xf66e,
+ 0xe9b0, 0xe083, 0xdf7b, 0xe2ef, 0xef0f, 0xf2bd,
+ 0xec4c, 0xec96, 0xebbb, 0xec5d, 0xf5ba, 0xf9fd,
+ 0xff3c, 0x06dd, 0xfe80, 0xf180, 0xef86, 0xf808,
+ 0x0622, 0x03c0, 0xf688, 0xfd63, 0x070b, 0xfc6b,
+ 0xec74, 0xdf2c, 0xd618, 0xd686, 0xe22f, 0xf901,
+ 0x0702, 0x02fb, 0x06d6, 0x108e, 0x0e29, 0x1271,
+ 0x1e23, 0x172f, 0x0b0b, 0x141a, 0x25b2, 0x2790,
+ 0x184e, 0x074b, 0x0356, 0x0e4a, 0x161d, 0x0a76,
+ 0xfd39, 0x03c9, 0x0d35, 0x0896, 0xfd94, 0xf13f,
+ 0xef76, 0xff30, 0x02e9, 0xf2b7, 0xf04e, 0xfc00,
+ 0x0113, 0x0257, 0xff98, 0xfc93, 0x0405, 0x0a77,
+ 0x0c91, 0x147e, 0x18fa, 0x1480, 0x0b8a, 0x025f,
+ 0x04d3, 0x0adb, 0x077c, 0x09e4, 0x113e, 0x108f,
+ 0x1096, 0x0eda, 0x062b, 0x0274, 0x050a, 0x0a82,
+ 0x0d14, 0x0607, 0x042c, 0x0a3a, 0x084c, 0x070d,
+ 0x0e37, 0x14ba, 0x1bfb, 0x233f, 0x227f, 0x1900,
+ 0x0e27, 0x0ac5, 0x0c09, 0x0ebe, 0x10f6, 0x0714,
+ 0xfe70, 0x07dd, 0x08fc, 0xfb5c, 0xf97a, 0xfefc,
+ 0xfc26, 0xf190, 0xec23, 0xf81d, 0x021d, 0xfc33,
+ 0xf6ab, 0xf45e, 0xf99e, 0x07c6, 0x09c0, 0x08b9,
+ 0x0e5e, 0x0892, 0x07f0, 0x1571, 0x1818, 0x11a6,
+ 0x04ac, 0xf40e, 0xf039, 0xe9bf, 0xe605, 0x025d,
+ 0x1d26, 0x15df, 0x000e, 0xecab, 0xe869, 0xeeac,
+ 0xed4f, 0xeb00, 0xea5a, 0xecc4, 0xf8fd, 0xfb97,
+ 0xfac3, 0x0df8, 0x1bec, 0x1c90, 0x276d, 0x2e5d,
+ 0x1f19, 0x08ed, 0x051a, 0x126e, 0x1562, 0x1363,
+ 0x178d, 0x0ba0, 0x00da, 0x0b02, 0x09f3, 0x01cb,
+ 0x0486, 0x0048, 0xfc1b, 0xfcf8, 0xfb2f, 0x0a1d,
+ 0x1c98, 0x1891, 0x121b, 0x0e79, 0x065b, 0x054e,
+ 0x05c9, 0x0478, 0x07a9, 0x0895, 0x0b23, 0x1094,
+ 0x0f9e, 0x0e84, 0x0a9c, 0xfcc0, 0xf086, 0xec60,
+ 0xf783, 0x0d4b, 0x0a96, 0xf418, 0xf35b, 0x0076,
+ 0x00fc, 0xfe7b, 0x0507, 0x0d1d, 0x0aae, 0xfe9f,
+ 0xf43c, 0xee4e, 0xf023, 0xffbe, 0x10e6, 0x1787,
+ 0x160f, 0x0dc6, 0x0917, 0x11bc, 0x1792, 0x11d7,
+ 0x0abf, 0xfff3, 0xf46b, 0xf6db, 0x0159, 0x0a03,
+ 0x1278, 0x1330, 0x0823, 0xfe83, 0xff72, 0x0306,
+ 0xfe53, 0xfaae, 0x03d2, 0x0a3f, 0x042b, 0xfd56,
+ 0xfa21, 0xfdaf, 0x06ef, 0x0a85, 0x0c36, 0x0d4c,
+ 0x0638, 0x01c2, 0x023e, 0x01f1, 0x063d, 0x02e0,
+ 0xf7fd, 0xfb75, 0xfffb, 0xfc6c, 0x002e, 0x0240,
+ 0x0127, 0x0307, 0xfd3e, 0xfd6f, 0x0345, 0xf26b,
+ 0xde0a, 0xe106, 0xf2ce, 0x0600, 0x0387, 0xf9d3,
+ 0x118b, 0x246a, 0x107e, 0x0913, 0x1b51, 0x20ac,
+ 0x1826, 0x1337, 0x13d8, 0x0f15, 0x0075, 0xfa49,
+ 0x03ee, 0x0db0, 0x0d89, 0x06e5, 0x042f, 0x024e,
+ 0xf7be, 0xf07b, 0xf26d, 0xf54f, 0xf729, 0xef83,
+ 0xe74f, 0xf2ed, 0xfe7c, 0xfec6, 0x0829, 0x128f,
+ 0x0fd9, 0x070f, 0x0040, 0x0343, 0x04bc, 0xfb58,
+ 0xfb56, 0x02d2, 0x04d1, 0x0a29, 0x09b2, 0xffbb,
+ 0xfd4b, 0xfad7, 0xf7cc, 0x042e, 0x1492, 0x1943,
+ 0x12b2, 0x0b62, 0x0e07, 0x0aed, 0xf862, 0xeca5,
+ 0xf1c3, 0x01ee, 0x1281, 0x1474, 0x0fb3, 0x108c,
+ 0x10dc, 0x0c71, 0x04c6, 0x07fd, 0x17e1, 0x14a0,
+ 0x037e, 0x056e, 0x0e2e, 0x0fbd, 0x0d47, 0x05a8,
+ 0x06c4, 0x0a0b, 0xfff4, 0xfdc6, 0x0026, 0xf8b4,
+ 0xfb25, 0xfc37, 0xf145, 0xf3c6, 0xf6d4, 0xf179,
+ 0xff0e, 0x10fc, 0x10fd, 0x0db6, 0x0bdc, 0x05cc,
+ 0xfd2f, 0xf945, 0xfe92, 0xfef2, 0xf580, 0xef69,
+ 0xef00, 0xf409, 0xf569, 0xea50, 0xea8d, 0xfa42,
+ 0xfe19, 0xf877, 0xf172, 0xe5d1, 0xdd8f, 0xd76b,
+ 0xda34, 0xf2e1, 0x0462, 0xfc65, 0xfb3c, 0x0df0,
+ 0x1f09, 0x23be, 0x2036, 0x162c, 0x088e, 0x04c0,
+ 0x09d5, 0x0681, 0x0141, 0x0535, 0x0655, 0xffa1,
+ 0xf76e, 0xf647, 0x0234, 0x0c58, 0x0a42, 0x02f9,
+ 0xf535, 0xeb3a, 0xf34f, 0xfbaf, 0xf787, 0xf2c5,
+ 0xf5a7, 0xff02, 0x0256, 0xfbd8, 0xfe65, 0x09d5,
+ 0x08fe, 0xfcaa, 0xf84c, 0x0019, 0xfe76, 0xed88,
+ 0xea6f, 0xf9f8, 0x02bd, 0x01c8, 0x0024, 0x0129,
+ 0x0644, 0x070a, 0x0338, 0x05ae, 0x0a9a, 0x0899,
+ 0x0163, 0x010f, 0x0bbf, 0x0d67, 0x0218, 0x010a,
+ 0x0794, 0x09b0, 0x0f99, 0x125e, 0x090d, 0x03b4,
+ 0x0882, 0x0f35, 0x16f8, 0x18b9, 0x0b3c, 0xfc01,
+ 0xfb12, 0xfe6a, 0xfca4, 0x00d5, 0x0b59, 0x0c64,
+ 0x023d, 0xfbc5, 0xfeea, 0xfac3, 0xe893, 0xe0c1,
+ 0xe80f, 0xeb0b, 0xf05d, 0xfe6d, 0x06e8, 0x0b31,
+ 0x0eef, 0x0869, 0xf78e, 0xe6cd, 0xe48d, 0xf3b9,
+ 0x00f6, 0x01cf, 0xfcad, 0xf51b, 0xee69, 0xebc6,
+ 0xf1ae, 0x0284, 0x110d, 0x1556, 0x174a, 0x1785,
+ 0x0fbf, 0xfd4c, 0xec4a, 0xee38, 0xf676, 0xf902,
+ 0x01d3, 0x0440, 0xfd32, 0x0e47, 0x2815, 0x2376,
+ 0x15b4, 0x15dc, 0x1461, 0x0db1, 0x0e8f, 0x169a,
+ 0x1938, 0x14bc, 0x1077, 0x06d1, 0xf991, 0xf6a4,
+ 0xf6b5, 0xf532, 0xff34, 0x0ba6, 0x08a1, 0xf797,
+ 0xe2b8, 0xdab3, 0xe427, 0xed20, 0xeee7, 0xf116,
+ 0xf637, 0xfd69, 0xffbb, 0xfc56, 0x0045, 0x0909,
+ 0x088c, 0x0372, 0x0468, 0x09cd, 0x0a07, 0xffdf,
+ 0xf8ad, 0x006f, 0x09bc, 0x0acd, 0x0c42, 0x0ed7,
+ 0x0e26, 0x0c4f, 0x09e9, 0x0790, 0x0335, 0xfa94,
+ 0xf9e2, 0x058a, 0x0b7e, 0x080c, 0x0b3e, 0x16e9,
+ 0x1c87, 0x15df, 0x1026, 0x1442, 0x1566, 0x0c21,
+ 0x015d, 0xfb45, 0xf936, 0xf748, 0xf9a2, 0x067e,
+ 0x0dd8, 0x07d4, 0x05ad, 0x054f, 0xfe04, 0xf8ab,
+ 0xf593, 0xf4f9, 0xf754, 0xf22e, 0xee0b, 0xef48,
+ 0xe626, 0xe3c5, 0xf94d, 0x0aaf, 0x0834, 0xfeea,
+ 0xf924, 0xfa1f, 0xfbff, 0xfe44, 0x0360, 0xff65,
+ 0xf33d, 0xece8, 0xed00, 0xf0fb, 0xf23b, 0xf016,
+ 0xf9d7, 0x048f, 0xf90a, 0xe39d, 0xd745, 0xd7f7,
+ 0xdea1, 0xdc76, 0xdc1b, 0xedc5, 0xff0e, 0x041a,
+ 0x0723, 0x0dee, 0x1b0d, 0x224b, 0x19de, 0x15d5,
+ 0x171a, 0x0a17, 0xfdf8, 0xffc9, 0xfdb6, 0xf7a2,
+ 0xfa36, 0xff22, 0x00a6, 0x058c, 0x11a5, 0x1bfc,
+ 0x17d4, 0x0a9e, 0x03ab, 0x0064, 0xf936, 0xf56e,
+ 0xfc0b, 0x06e6, 0x093a, 0x01d5, 0x0099, 0x0891,
+ 0x0b08, 0x073d, 0x063e, 0x0af7, 0x11ef, 0x0df8,
+ 0xfe69, 0xf40c, 0xf157, 0xf47d, 0xfc6d, 0xf883,
+ 0xeb7f, 0xeb67, 0xf4fb, 0xfae5, 0xf9c5, 0xf715,
+ 0xfccd, 0xff67, 0xf5ef, 0xf4c6, 0xfe95, 0x043e,
+ 0x0438, 0xffbb, 0xffdd, 0x05ae, 0x00d0, 0xf973,
+ 0xfb31, 0xfe55, 0x0591, 0x088f, 0xfdf5, 0xf885,
+ 0xf93a, 0xf896, 0xfce5, 0xfa5a, 0xf5e6, 0x0246,
+ 0x0c6b, 0x0ca9, 0x101b, 0x0d2f, 0x03d1, 0xfcf2,
+ 0xf5a5, 0xf48a, 0xfaae, 0xfe9f, 0x002a, 0x00c7,
+ 0x02e1, 0x03b3, 0x00b0, 0x058b, 0x0bf2, 0x0600,
+ 0xfe22, 0xf4b4, 0xe7b1, 0xe3db, 0xe523, 0xe82f,
+ 0xedaf, 0xedbb, 0xf5ea, 0x0761, 0x0966, 0x00fa,
+ 0xf60c, 0xe7ad, 0xe62b, 0xe9b4, 0xe86a, 0xf311,
+ 0xf863, 0xe4c4, 0xd8ac, 0xec2b, 0x0a57, 0x14ea,
+ 0x1331, 0x21a8, 0x2cc8, 0x195b, 0x02c0, 0xfc67,
+ 0xfb58, 0xff44, 0x0819, 0x0cf2, 0x083d, 0x047b,
+ 0x114a, 0x1ee5, 0x1c0f, 0x161a, 0x10e6, 0x0a6f,
+ 0x08c6, 0x0725, 0x0732, 0x06ec, 0xfb7e, 0xf808,
+ 0x05c8, 0x0c36, 0x0824, 0x0000, 0xf680, 0xfd2e,
+ 0x0fdc, 0x183f, 0x14b1, 0x0aa8, 0x008d, 0xfab7,
+ 0xf458, 0xf2f6, 0xfd4f, 0x0a96, 0x0f9a, 0x078a,
+ 0xfe4b, 0x00ca, 0x037d, 0x01aa, 0x078a, 0x1371,
+ 0x1dd5, 0x218c, 0x1acb, 0x11c5, 0x0955, 0xfc56,
+ 0xf470, 0xfa84, 0x06f9, 0x108a, 0x13b0, 0x1249,
+ 0x1014, 0x0e61, 0x0e8f, 0x1216, 0x174e, 0x1868,
+ 0x13b2, 0x0fa7, 0x0ae3, 0x00cc, 0xfbe8, 0x0208,
+ 0x090c, 0x0a98, 0x0673, 0x03f6, 0x0eac, 0x1b03,
+ 0x14a2, 0x0687, 0x0227, 0xfea2, 0xf814, 0xface,
+ 0x043b, 0x0ba8, 0x0f79, 0x08be, 0xfd1a, 0xf988,
+ 0xf44a, 0xebba, 0xea60, 0xe79b, 0xe89e, 0xf7cb,
+ 0xff2a, 0xfd42, 0x0424, 0x02b8, 0xf1b9, 0xe910,
+ 0xed24, 0xf0c2, 0xec23, 0xe244, 0xde4b, 0xdef5,
+ 0xdbb8, 0xda6f, 0xe652, 0xfa5e, 0x0251, 0x0161,
+ 0x0f9c, 0x1d2a, 0x0e04, 0xf69e, 0xefda, 0xf584,
+ 0xfcac, 0xfce0, 0xfd30, 0x059d, 0x0a80, 0x0aaa,
+ 0x0deb, 0x0dd9, 0x05a1, 0xf54b, 0xe673, 0xe9c1,
+ 0xf1fa, 0xec09, 0xe78c, 0xee79, 0xf25d, 0xed9e,
+ 0xeb3e, 0xf406, 0xf97b, 0xee89, 0xeb6d, 0xfbd5,
+ 0xff48, 0xec5f, 0xe03f, 0xe2bd, 0xe395, 0xe3fb,
+ 0xf241, 0x0637, 0x07bb, 0xf531, 0xe26f, 0xdc12,
+ 0xdf8c, 0xe221, 0xe1d0, 0xe9f4, 0xf772, 0xfa75,
+ 0xf959, 0x0078, 0x052f, 0x0019, 0xfae9, 0xfa1e,
+ 0xf954, 0xf474, 0xefca, 0xf328, 0xf6f6, 0xf5f4,
+ 0xfb79, 0x00f1, 0xf969, 0xf3b2, 0xf8b9, 0xfc73,
+ 0xf9cf, 0xf23d, 0xe914, 0xe1e7, 0xde96, 0xe703,
+ 0xf701, 0xfe41, 0x0274, 0x0cc7, 0x0f65, 0xffb7,
+ 0xe742, 0xd81b, 0xd568, 0xd149, 0xcd86, 0xd68e,
+ 0xe793, 0xf1bd, 0xeb2c, 0xe3eb, 0xf4af, 0x0843,
+ 0x050b, 0x0213, 0x0a4b, 0x0624, 0xee0f, 0xd1ed,
+ 0xc4da, 0xc9d2, 0xd547, 0xe196, 0xe907, 0xeaa2,
+ 0xf228, 0xfcd4, 0xff67, 0xfc6b, 0xf943, 0xfa9a,
+ 0x00b4, 0x0a01, 0x1829, 0x1ba7, 0x0d5c, 0x04e5,
+ 0x0400, 0xff75, 0x023e, 0x058c, 0xfca6, 0xf80b,
+ 0xff9e, 0x089f, 0x0c72, 0x0aee, 0x0c98, 0x1632,
+ 0x1fd4, 0x200b, 0x14f8, 0x0c1c, 0x0fc4, 0x1524,
+ 0x0e9f, 0xf62a, 0xdc1f, 0xdd3f, 0xec2b, 0xf009,
+ 0xf608, 0x018d, 0x0585, 0x0223, 0xf8dd, 0xf5fe,
+ 0xff1e, 0x00b3, 0x005c, 0x0deb, 0x1a6b, 0x1d81,
+ 0x1817, 0x0993, 0x0459, 0x10e3, 0x1d4a, 0x1bb9,
+ 0x0f5a, 0x0877, 0x0aa8, 0x07d0, 0x0170, 0x00e3,
+ 0x08ff, 0x188e, 0x1c39, 0x0c2d, 0x000b, 0x02cc,
+ 0x1026, 0x22ea, 0x2d36, 0x2ced, 0x26b6, 0x17f6,
+ 0x0c1a, 0x0b6e, 0x0c1d, 0x0b2e, 0x06d2, 0xfcc2,
+ 0xf77b, 0xfb35, 0xfde5, 0xf726, 0xeebc, 0xf8c7,
+ 0x1334, 0x26fd, 0x2bdc, 0x2159, 0x09b3, 0xf47a,
+ 0xe7f2, 0xde20, 0xdbb7, 0xe5de, 0xf2a8, 0xf635,
+ 0xf598, 0xfd9d, 0x0934, 0x0e39, 0x154b, 0x2258,
+ 0x24d5, 0x16d6, 0x062a, 0xf87a, 0xec25, 0xe7a3,
+ 0xe961, 0xe978, 0xebe0, 0xed0b, 0xe67d, 0xe743,
+ 0xf27a, 0xf832, 0xfb5a, 0xff03, 0xf984, 0xf4ce,
+ 0x0046, 0x0e7a, 0x0b12, 0x045f, 0x1398, 0x2520,
+ 0x1e62, 0x12d3, 0x0db2, 0x005e, 0xf661, 0xfd22,
+ 0x05ce, 0x09b2, 0x104e, 0x1676, 0x137d, 0x0e63,
+ 0x14c7, 0x1dba, 0x1c02, 0x1891, 0x16d0, 0x0d18,
+ 0xfd73, 0xf426, 0xfa69, 0x0977, 0x13e4, 0x1ab8,
+ 0x1c8d, 0x18e4, 0x1d01, 0x1e17, 0x0ff1, 0x0cb0,
+ 0x1412, 0x095a, 0xf746, 0xed0c, 0xe480, 0xe401,
+ 0xeb18, 0xee82, 0xf295, 0xf8bb, 0xfd04, 0x03d1,
+ 0x0a41, 0x0ae9, 0x09e2, 0x0994, 0x0baa, 0x1129,
+ 0x11b3, 0x0877, 0xfd5b, 0xf5ff, 0xf13c, 0xf08d,
+ 0xf3f1, 0xf56b, 0xf629, 0xfccb, 0x0439, 0x06f9,
+ 0x0a60, 0x0df6, 0x0ec3, 0x12a9, 0x18d4, 0x1994,
+ 0x137f, 0x0639, 0xf5f2, 0xecc8, 0xeb16, 0xeef0,
+ 0xfb77, 0x0557, 0xfe53, 0xf3f6, 0xfb86, 0x0dc0,
+ 0x1626, 0x1573, 0x188d, 0x1f4d, 0x240c, 0x245b,
+ 0x1c8f, 0x100e, 0x054d, 0xfa0a, 0xef87, 0xeba1,
+ 0xed95, 0xf3a5, 0xfa39, 0xfda7, 0x012f, 0x00de,
+ 0xf989, 0xfae5, 0x062c, 0x0562, 0xfaba, 0xf97e,
+ 0xfa81, 0xeec6, 0xdcfc, 0xd03c, 0xd109, 0xe6eb,
+ 0xffa1, 0x0370, 0x04fe, 0x172d, 0x1fab, 0x0f53,
+ 0x00dd, 0x04e5, 0x0b99, 0x09e8, 0x0b28, 0x0e61,
+ 0x02f8, 0xf373, 0xf2c9, 0xfa14, 0x0315, 0x0b28,
+ 0x0b3f, 0x0aa0, 0x0e37, 0x117c, 0x1604, 0x182b,
+ 0x1a29, 0x211b, 0x1cc7, 0x0fee, 0x0e01, 0x096a,
+ 0xfdd7, 0xfc6d, 0xfaf6, 0xf1be, 0xec0b, 0xe829,
+ 0xe61e, 0xec44, 0xf623, 0xfeea, 0x0796, 0x0e9f,
+ 0x0a05, 0xfb2a, 0xf97b, 0x03c4, 0x028c, 0xfb50,
+ 0xf8f5, 0xfb59, 0x06af, 0x0e5e, 0x0b53, 0x0b39,
+ 0x07fb, 0x0162, 0x091e, 0x159a, 0x1919, 0x129c,
+ 0x01d4, 0xfa71, 0x01a4, 0x00d9, 0xfe87, 0x04a0,
+ 0x03b4, 0xfe4d, 0xfc41, 0xf90b, 0xfd51, 0x0d3c,
+ 0x173b, 0x0f96, 0x0641, 0x1049, 0x1fa4, 0x2014,
+ 0x1a63, 0x0c9b, 0xf6f1, 0xf803, 0x09f8, 0x0978,
+ 0xfe20, 0xf864, 0xf582, 0xf9f8, 0x01ca, 0x0413,
+ 0x055f, 0x0168, 0xf32e, 0xe72b, 0xe582, 0xeb3d,
+ 0xf30d, 0xf949, 0x01d1, 0x0cd7, 0x11bd, 0x0e9f,
+ 0x0b22, 0x0cd0, 0x0aab, 0xfc3b, 0xf210, 0xf3a9,
+ 0xecac, 0xdb1d, 0xcc77, 0xcb12, 0xea83, 0x1746,
+ 0x1c53, 0x0a7a, 0x1338, 0x21bb, 0x13ee, 0xfdda,
+ 0xf832, 0xfa4d, 0xf8f6, 0xfbe3, 0x017e, 0xff45,
+ 0x0217, 0x0e3b, 0x10ea, 0x1087, 0x15dc, 0x1127,
+ 0x0784, 0x07ee, 0x064e, 0xf4e8, 0xddc4, 0xdba8,
+ 0xf375, 0x0641, 0x0900, 0x0bc5, 0x0e20, 0x0c3e,
+ 0x0a35, 0x06bc, 0x0171, 0xf8b2, 0xeda3, 0xe8ce,
+ 0xea3a, 0xeec1, 0xf5d0, 0xffad, 0x1072, 0x1887,
+ 0x0a00, 0x0249, 0x1030, 0x1a6b, 0x1ab6, 0x17b2,
+ 0x10c2, 0x0c8e, 0x0c94, 0x0c52, 0x07bb, 0xfc9b,
+ 0xf8e7, 0x00b3, 0x0319, 0x020f, 0x04ce, 0x02b3,
+ 0xfcac, 0xfb48, 0x01cb, 0x0b47, 0x0c76, 0x0918,
+ 0x0b5a, 0x0ffa, 0x116c, 0x0839, 0xf5ee, 0xec84,
+ 0xee37, 0xf2d9, 0xfbae, 0x04ed, 0x0ac6, 0x080b,
+ 0xf636, 0xe591, 0xe59b, 0xf0c8, 0xfcda, 0xf798,
+ 0xe4bb, 0xe3a4, 0xf14e, 0xfadf, 0x0110, 0xfbd1,
+ 0xf206, 0xfa43, 0x07c5, 0x0b68, 0x105f, 0x18ce,
+ 0x1b82, 0x1409, 0x0bc1, 0x11ff, 0x1fec, 0x25f1,
+ 0x200b, 0x0e1c, 0xfd9b, 0xfa68, 0xf718, 0xed1a,
+ 0xe6e3, 0xe40c, 0xe249, 0xed7b, 0x080c, 0x1a4b,
+ 0x1c5d, 0x256d, 0x2d72, 0x1af5, 0x049e, 0xff2d,
+ 0xfae9, 0xf871, 0xfc27, 0xf957, 0xf37e, 0xf43c,
+ 0xf8ed, 0x004a, 0x0974, 0x1242, 0x194e, 0x1b5e,
+ 0x1821, 0x0f5f, 0xfdc1, 0xe62a, 0xd7e2, 0xdf3a,
+ 0xeb66, 0xe825, 0xe6cb, 0xf3b5, 0xfa4e, 0xf77b,
+ 0xf6f0, 0xf46a, 0xf62c, 0x06b2, 0x1509, 0x179f,
+ 0x1fd6, 0x2985, 0x1da1, 0x08fa, 0x04a0, 0x06c2,
+ 0x02fd, 0xff1c, 0xfc7c, 0xfa5f, 0xf64e, 0xf034,
+ 0xf7a2, 0x0ca8, 0x1a6e, 0x1f7a, 0x21d5, 0x20a4,
+ 0x2316, 0x24b6, 0x176e, 0x0498, 0xfb95, 0xf709,
+ 0xef14, 0xeb19, 0xf01e, 0xf56c, 0xfd5e, 0x0ede,
+ 0x18b6, 0x1296, 0x0d96, 0x0ae3, 0x02ff, 0xfce5,
+ 0xfb63, 0xfca4, 0xff16, 0xf876, 0xe607, 0xd6b7,
+ 0xd438, 0xd9fd, 0xe522, 0xf358, 0xfb2e, 0xfd22,
+ 0xffb3, 0xfd25, 0xfa96, 0x02b9, 0x0966, 0x0bd0,
+ 0x12bf, 0x1337, 0x0ae4, 0xff62, 0xeb63, 0xde1d,
+ 0xe205, 0xe32b, 0xe35a, 0xeea4, 0xf5f4, 0xf19f,
+ 0xe8ed, 0xdfca, 0xdea9, 0xe8fb, 0xf423, 0xf523,
+ 0xe9b2, 0xd9a9, 0xd41d, 0xe2f8, 0xf663, 0xf844,
+ 0xf8b1, 0x0618, 0x096b, 0x06ca, 0x13f0, 0x1bca,
+ 0x14ab, 0x1592, 0x1a51, 0x142a, 0x0a15, 0x0428,
+ 0x042c, 0x06f0, 0x0844, 0x0c80, 0x1294, 0x0c58,
+ 0xf894, 0xee92, 0xfa1b, 0x092f, 0x12bb, 0x1adb,
+ 0x1944, 0x10fc, 0x0d19, 0x062a, 0xff12, 0xff38,
+ 0xfc38, 0xfd19, 0x0881, 0x09f0, 0x029f, 0x018c,
+ 0x00fc, 0x01b9, 0x0282, 0xfa91, 0xfa38, 0x030c,
+ 0xf7c3, 0xe1a0, 0xdd9a, 0xe1c9, 0xe438, 0xec2d,
+ 0xf45e, 0xfce9, 0x07ff, 0x0571, 0xf958, 0xf7df,
+ 0xf82b, 0xf3b3, 0xf6d1, 0xfaed, 0xf6ac, 0xf1f1,
+ 0xefd7, 0xf1f2, 0xfe72, 0x0fe5, 0x164d, 0x0d75,
+ 0x06c6, 0x0aa6, 0x0bd7, 0x0a8e, 0x0b63, 0x02b8,
+ 0xf4ba, 0xecb2, 0xe541, 0xe285, 0xea19, 0xf2a3,
+ 0xfc94, 0x0901, 0x0b30, 0x03e5, 0x0367, 0x09bf,
+ 0x06d5, 0xfd12, 0xfc46, 0xfed3, 0xfbc4, 0xf6f7,
+ 0xedb5, 0xe4c8, 0xe545, 0xe8d9, 0xf1cd, 0xfde5,
+ 0xfbdb, 0xf613, 0xf817, 0xf45a, 0xed20, 0xe6da,
+ 0xdfb6, 0xe7a1, 0xfc73, 0x0635, 0xfd4d, 0xe833,
+ 0xdd02, 0xed18, 0x0698, 0x1452, 0x1241, 0x0876,
+ 0x06f6, 0x0a39, 0x0be9, 0x14f6, 0x184f, 0x0e9a,
+ 0x0fac, 0x1855, 0x14a2, 0x0bb4, 0x078b, 0x0a12,
+ 0x0efc, 0x0b42, 0x0342, 0xfe4b, 0xf5cb, 0xefd5,
+ 0xf810, 0x026e, 0x02bd, 0x0260, 0x0392, 0x00b7,
+ 0x06f3, 0x14dd, 0x1398, 0x0eb8, 0x1458, 0x1268,
+ 0x1023, 0x1796, 0x1185, 0x038d, 0x03a9, 0x0948,
+ 0x0d2c, 0x0db1, 0x08dc, 0x05a9, 0x0078, 0xfb82,
+ 0x0389, 0x0d67, 0x142e, 0x236b, 0x2bc6, 0x2029,
+ 0x13a8, 0x1199, 0x0f69, 0x094e, 0x0a01, 0x10d6,
+ 0x1355, 0x1756, 0x1e7e, 0x1f6a, 0x1ea9, 0x1a55,
+ 0x0e20, 0x0977, 0x0b5e, 0x0793, 0x044c, 0x01f9,
+ 0xfe90, 0xfe64, 0xfcd7, 0xfaa3, 0xf8e1, 0xf3c1,
+ 0xf704, 0x04b5, 0x0ad7, 0x02cc, 0xf5c6, 0xf638,
+ 0x00de, 0xfbad, 0xf59a, 0x043f, 0x0d55, 0x092a,
+ 0x0644, 0x0094, 0x01d2, 0x0ad7, 0x0494, 0xf792,
+ 0xf4dd, 0xf777, 0xfe74, 0x02cf, 0xfd7f, 0xf8cc,
+ 0xf562, 0xee3a, 0xe6b2, 0xe079, 0xe5f6, 0xfa5e,
+ 0x03cf, 0xf752, 0xeb21, 0xe881, 0xe398, 0xdcd5,
+ 0xe251, 0xf65a, 0x05df, 0xfd66, 0xed16, 0xf822,
+ 0x10c0, 0x0ec5, 0xffe4, 0x0101, 0x05d0, 0x0676,
+ 0x0ad9, 0x0a4f, 0xfe4b, 0xf1da, 0xf1a9, 0xfb39,
+ 0xfd34, 0xf613, 0xf41b, 0xf455, 0xf0d4, 0xee5d,
+ 0xea0e, 0xea42, 0xfded, 0x115f, 0x0cb6, 0x07a8,
+ 0x10cd, 0x0cba, 0xfe97, 0x0042, 0x00e7, 0xf326,
+ 0xec30, 0xeef6, 0xf077, 0xeede, 0xea2e, 0xea99,
+ 0xecbf, 0xe52f, 0xe5b8, 0xf570, 0xfddc, 0xfe80,
+ 0xff29, 0xfe85, 0x0349, 0x0414, 0xf640, 0xecd6,
+ 0xee4d, 0xebb7, 0xe58b, 0xe556, 0xebbd, 0xf006,
+ 0xeeb9, 0xf0f4, 0xf665, 0xf734, 0xf584, 0xf33c,
+ 0xf1f2, 0xf127, 0xe88b, 0xde2d, 0xdd39, 0xddbb,
+ 0xdc8f, 0xe0c0, 0xe7a4, 0xede8, 0xf3fb, 0xf84e,
+ 0xfafd, 0xfb2b, 0xf53f, 0xe9ac, 0xe444, 0xefa0,
+ 0xfbf6, 0xf691, 0xed83, 0xf127, 0xfa49, 0xffc6,
+ 0xfede, 0xfbfc, 0x010d, 0x0913, 0x074d, 0xff02,
+ 0xf599, 0xe8bc, 0xdf1b, 0xdfc2, 0xe34f, 0xe476,
+ 0xe4bc, 0xe4f5, 0xebce, 0xf8b4, 0xfe71, 0xfd90,
+ 0xfb27, 0xf36e, 0xef4b, 0xf20b, 0xe8fc, 0xd62c,
+ 0xd697, 0xf11a, 0x03a1, 0xf55c, 0xe84c, 0xfb50,
+ 0x0cc0, 0x06bd, 0x0435, 0x0bf8, 0x0d9a, 0x08f0,
+ 0x068b, 0x07f2, 0x06d8, 0x0372, 0x0507, 0x0705,
+ 0x01bd, 0xf406, 0xe21c, 0xdaaa, 0xdf92, 0xe65e,
+ 0xf69c, 0x0e62, 0x17dc, 0x134d, 0x1335, 0x200a,
+ 0x2ac7, 0x1e57, 0x0a2f, 0x034e, 0xfdd7, 0xf886,
+ 0xfa5a, 0xfa87, 0xfbb9, 0xff19, 0xfea5, 0x02a6,
+ 0x08ac, 0x0c0f, 0x13ce, 0x1385, 0x0ae5, 0x0f47,
+ 0x1601, 0x1485, 0x1953, 0x1daa, 0x176c, 0x1074,
+ 0x08a5, 0xfe1b, 0xfe3b, 0x0c77, 0x170c, 0x143f,
+ 0x0f44, 0x0d32, 0x0bb3, 0x0f54, 0x106d, 0x04dc,
+ 0xf907, 0xf933, 0x01a7, 0x05ba, 0xff94, 0xfcfb,
+ 0xfdc1, 0xf594, 0xf61e, 0x0186, 0xfb45, 0xf042,
+ 0xfa0b, 0x05e1, 0x0468, 0x0215, 0x03b2, 0xff2a,
+ 0xf678, 0xfac9, 0x060a, 0x054b, 0x0384, 0x090d,
+ 0x09f6, 0x0904, 0x0715, 0xfca4, 0xf5b5, 0xfa27,
+ 0xfca7, 0xf6fa, 0xf2c2, 0xf4a3, 0xefb8, 0xe11b,
+ 0xdbc4, 0xe055, 0xe1ce, 0xe7b0, 0xf7c5, 0x05f0,
+ 0x065c, 0xfbb5, 0xf667, 0xf707, 0xf03f, 0xed89,
+ 0xfc65, 0x0e37, 0x1479, 0x1393, 0x1a77, 0x264a,
+ 0x1e80, 0x0b67, 0x0a3b, 0x0fdb, 0x0dd5, 0x1094,
+ 0x14b2, 0x10f1, 0x0ffc, 0x17a6, 0x1f92, 0x1ee0,
+ 0x14e0, 0x0cc8, 0x1143, 0x1ac4, 0x188e, 0x109e,
+ 0x153a, 0x1970, 0x0fae, 0x0eb2, 0x1973, 0x1acc,
+ 0x1d95, 0x25ea, 0x1a9e, 0x0388, 0xf93d, 0xf7b5,
+ 0xfba5, 0x00ae, 0xf61e, 0xe95b, 0xef2e, 0xf42c,
+ 0xebb1, 0xe4fc, 0xe4fd, 0xf00c, 0x07e4, 0x17ee,
+ 0x1b6f, 0x2150, 0x2499, 0x1e04, 0x1344, 0x0799,
+ 0x01ba, 0x05b9, 0x0b55, 0x0ebd, 0x1395, 0x182c,
+ 0x13e9, 0x08d7, 0x0950, 0x154b, 0x1a63, 0x1891,
+ 0x14a4, 0x10a1, 0x13ac, 0x1091, 0x00ef, 0xfcca,
+ 0xff58, 0xf451, 0xedcf, 0xf802, 0x01c7, 0x04c7,
+ 0x0830, 0x0cdd, 0x0f33, 0x13e6, 0x1aae, 0x15ce,
+ 0x0d78, 0x0ece, 0x09f2, 0x008a, 0xfc91, 0xee91,
+ 0xe116, 0xe2c9, 0xe1b9, 0xe386, 0xee91, 0xf1dc,
+ 0xf5da, 0xf80a, 0xe87c, 0xdfc5, 0xe87c, 0xf0ef,
+ 0xfaeb, 0x0314, 0x04f6, 0x097c, 0x0caa, 0x0baa,
+ 0x0379, 0xf056, 0xe969, 0xf249, 0xef8e, 0xe774,
+ 0xf031, 0x08a5, 0x1c4d, 0x1872, 0x157f, 0x273d,
+ 0x28e3, 0x1426, 0x0a8b, 0x0547, 0xf88d, 0xf10e,
+ 0xef7c, 0xee9e, 0xee63, 0xf2d7, 0x000a, 0x0d4d,
+ 0x1464, 0x16dd, 0x1409, 0x0f55, 0x078c, 0x0023,
+ 0x06ce, 0x1089, 0x10ee, 0x113b, 0x0c8f, 0x03f8,
+ 0x010f, 0xf7b7, 0xf337, 0x03de, 0x0c54, 0x0601,
+ 0x066f, 0x046d, 0xfc65, 0xf6de, 0xed72, 0xe695,
+ 0xec5e, 0xf9ae, 0x0c13, 0x1b20, 0x1d42, 0x1d9b,
+ 0x2611, 0x2b9c, 0x22aa, 0x144a, 0x0f9c, 0x120f,
+ 0x11bb, 0x0aef, 0x015e, 0xfdb5, 0xfb62, 0xf67d,
+ 0xfd27, 0x09bf, 0x0da0, 0x131c, 0x1661, 0x0ba1,
+ 0x0291, 0x00e9, 0xfea3, 0xff07, 0xfe6e, 0xfaac,
+ 0xfd84, 0x0687, 0x0da9, 0x0eb6, 0x0a3a, 0xfffb,
+ 0xf0e1, 0xf182, 0x08b0, 0x15ca, 0x124d, 0x128e,
+ 0x0e71, 0x04d2, 0x03fe, 0x03f0, 0x0071, 0xfe71,
+ 0xf893, 0xf15b, 0xede2, 0xea2d, 0xe34c, 0xd905,
+ 0xd31d, 0xd79f, 0xe2ab, 0xf48c, 0x00f4, 0xf844,
+ 0xf01e, 0xf96d, 0x0163, 0x018c, 0x0185, 0xffae,
+ 0xfbc7, 0xf6b8, 0xf125, 0xea7a, 0xde2a, 0xd266,
+ 0xd39c, 0xe449, 0xf9a0, 0x0025, 0xfdf1, 0x0af2,
+ 0x173a, 0x10f0, 0x100b, 0x14e8, 0x0a05, 0x0089,
+ 0x07b6, 0x0ada, 0xff90, 0xf6a0, 0xfc59, 0x0645,
+ 0x0a10, 0x0ba1, 0x04fc, 0xf5f5, 0xf70d, 0x063f,
+ 0x0cd6, 0x1449, 0x1db8, 0x1492, 0x0501, 0xfc14,
+ 0xee17, 0xe77e, 0xf4d2, 0x0061, 0x00df, 0x0089,
+ 0x00d8, 0x004d, 0xfbe2, 0xf6a7, 0xfe1d, 0x0c95,
+ 0x0e8b, 0x0617, 0x04bb, 0x1096, 0x1b62, 0x1848,
+ 0x10d4, 0x0fb9, 0x1251, 0x107a, 0x0335, 0xf8c7,
+ 0xfece, 0x01f0, 0xfdd5, 0x0054, 0xfe2c, 0xfc40,
+ 0x07ea, 0x0727, 0xf73c, 0xf415, 0xf7de, 0xf947,
+ 0xfa12, 0xf2a0, 0xedf9, 0xf6ee, 0xfeab, 0xfdb0,
+ 0xf879, 0xf867, 0x00fb, 0xffa3, 0xf38e, 0xf05c,
+ 0xf025, 0xee91, 0xf498, 0xf9e5, 0xfe73, 0x0e1b,
+ 0x1f5c, 0x23de, 0x1f42, 0x1db0, 0x1dbe, 0x12d4,
+ 0x04ca, 0xff18, 0xf81c, 0xf059, 0xeeeb, 0xf06c,
+ 0xf93f, 0x04fb, 0x06fd, 0x07da, 0x0bfa, 0x0ec1,
+ 0x16a8, 0x1c73, 0x1569, 0x0cbd, 0x0800, 0x0190,
+ 0xfa08, 0xf431, 0xf03d, 0xe875, 0xdb1b, 0xd320,
+ 0xd92f, 0xed60, 0xfeb0, 0xf6c0, 0xe991, 0xf4d5,
+ 0x048d, 0x054a, 0x0253, 0xfd39, 0xf682, 0xf88b,
+ 0xff3b, 0xfef7, 0xf863, 0xf767, 0x0055, 0x05e5,
+ 0x0273, 0xfef9, 0xfd92, 0xfd43, 0xfd4f, 0xfc2e,
+ 0x023c, 0x0ecb, 0x117a, 0x0cac, 0x0bce, 0x0723,
+ 0xfc0d, 0xf6f5, 0xfa12, 0x0015, 0x0653, 0x078b,
+ 0x0581, 0x0602, 0x020e, 0xfd43, 0x08ba, 0x1692,
+ 0x1359, 0x1232, 0x1b4f, 0x1a26, 0x10cd, 0x0d93,
+ 0x0cfc, 0x0b31, 0x09a7, 0x09be, 0x0e68, 0x115b,
+ 0x0845, 0xfc54, 0xfd52, 0x0304, 0x01ce, 0x038c,
+ 0x07ee, 0x0477, 0x03ec, 0x082c, 0x0561, 0x0317,
+ 0xff7d, 0xf688, 0xfdc2, 0x099a, 0xff98, 0xfb5d,
+ 0x0aff, 0x0f95, 0x04c1, 0xfa91, 0xf57b, 0xf4ef,
+ 0xf352, 0xf252, 0xf37a, 0xeeab, 0xedbe, 0xfa04,
+ 0x05c2, 0x0c5f, 0x0cc5, 0x00f2, 0xf518, 0xf1e1,
+ 0xf0d7, 0xf1ea, 0xf065, 0xe1f7, 0xcb6b, 0xbeb0,
+ 0xc883, 0xdcae, 0xe89e, 0xf3e8, 0x069f, 0x13b7,
+ 0x1133, 0x0313, 0xf5db, 0xf03c, 0xeecc, 0xf734,
+ 0x06f7, 0x0868, 0xfed9, 0xfb8d, 0xf431, 0xe35a,
+ 0xdb20, 0xe4c2, 0xfa77, 0x0ea6, 0x1328, 0x0dd8,
+ 0x1305, 0x215c, 0x1ec6, 0x09a2, 0x0553, 0x1a58,
+ 0x26e9, 0x214c, 0x1f58, 0x22a0, 0x1e2f, 0x158d,
+ 0x0cd6, 0xfdca, 0xf05d, 0xf5d0, 0x06cf, 0x0ce8,
+ 0x069f, 0x0363, 0x04bd, 0xfdc9, 0xeee6, 0xe470,
+ 0xdebc, 0xdb1b, 0xdde2, 0xe2db, 0xe5f0, 0xed16,
+ 0xf499, 0xf3af, 0xf15d, 0xf69c, 0xfac3, 0xf71d,
+ 0xfd70, 0x14ed, 0x2110, 0x172c, 0x0c70, 0x03ab,
+ 0xf9e3, 0xfb28, 0x0348, 0x060d, 0x0640, 0x0721,
+ 0x0754, 0x0333, 0xfa35, 0xf66b, 0xfae4, 0x0148,
+ 0x081c, 0x0a17, 0x0727, 0x0c02, 0x1473, 0x1059,
+ 0x05c6, 0x041c, 0x0559, 0xfd4c, 0xf9c9, 0x063f,
+ 0x0b58, 0x01cb, 0xfc91, 0xf1ba, 0xdf0d, 0xe3a3,
+ 0xf626, 0xf60a, 0xee09, 0xecef, 0xecb8, 0xee29,
+ 0xf075, 0xf021, 0xf1d9, 0xf6c0, 0xfc94, 0xff53,
+ 0xfb3d, 0xf9b7, 0xfa97, 0xeb5f, 0xd874, 0xe04e,
+ 0xf43f, 0xf7ef, 0xf6b2, 0xff5d, 0x06ca, 0x04de,
+ 0x009c, 0xfe20, 0xf697, 0xe9c8, 0xe848, 0xf486,
+ 0xfb9f, 0xfd0a, 0x00d4, 0xfdd8, 0xf71a, 0xf403,
+ 0xe6db, 0xd96c, 0xe889, 0x030e, 0x09a9, 0x07a2,
+ 0x0e26, 0x123c, 0x0a6b, 0x0819, 0x1948, 0x2365,
+ 0x11cf, 0x05b8, 0x10e8, 0x11b7, 0x040d, 0x04d5,
+ 0x0abf, 0x03c3, 0xff63, 0x01bb, 0xfe06, 0x0014,
+ 0x1296, 0x2055, 0x1c68, 0x1641, 0x15ef, 0x127a,
+ 0x0806, 0xfb11, 0xf0b5, 0xed8a, 0xf37e, 0xfd94,
+ 0x0191, 0x0030, 0x07aa, 0x13e2, 0x11b0, 0x0a23,
+ 0x0e04, 0x0f69, 0x05cc, 0x004e, 0x03ff, 0x0a8b,
+ 0x0da3, 0x08f8, 0x0435, 0x049a, 0x0520, 0x0ac2,
+ 0x14d0, 0x12e4, 0x0920, 0x0912, 0x0d8d, 0x0a22,
+ 0x01fa, 0xfee9, 0x0538, 0x0d24, 0x09e7, 0xfee0,
+ 0xfde0, 0x07e4, 0x0af9, 0x06f0, 0x0986, 0x0ab8,
+ 0x0126, 0xfc17, 0x00e5, 0x01c3, 0x0133, 0x085a,
+ 0x0d2e, 0x085d, 0x0049, 0xf603, 0xee4a, 0xf37c,
+ 0xfac9, 0xf787, 0xf553, 0xfa95, 0x00bd, 0x023b,
+ 0xf5be, 0xe483, 0xe2ab, 0xe484, 0xe379, 0xef7c,
+ 0xf7a8, 0xeb2a, 0xe373, 0xe906, 0xeb6a, 0xeca4,
+ 0xf1de, 0xf46a, 0xf04a, 0xebab, 0xee3f, 0xee87,
+ 0xe527, 0xe478, 0xf244, 0xfb1a, 0xfaf9, 0xfb21,
+ 0xf69b, 0xe46f, 0xd358, 0xddc4, 0xf7e3, 0xfe17,
+ 0xf3f5, 0xefc1, 0xf14a, 0xf8d7, 0x0611, 0x08e2,
+ 0xffa0, 0xfc39, 0x0300, 0x0786, 0x0485, 0xff92,
+ 0xf85d, 0xefd3, 0xf1f6, 0xfacc, 0xfa2a, 0xf5c8,
+ 0xf4fd, 0xf25f, 0xf5c2, 0x039d, 0x0cc6, 0x0b42,
+ 0x03a2, 0xf780, 0xec40, 0xe75e, 0xe992, 0xecf0,
+ 0xe8df, 0xe83f, 0xf566, 0xfd0f, 0xfc54, 0x0573,
+ 0x077b, 0xf539, 0xec5e, 0xf394, 0xf279, 0xea3c,
+ 0xe95b, 0xee99, 0xf439, 0xfaae, 0x006f, 0xfa08,
+ 0xe97b, 0xe528, 0xed0d, 0xf0cd, 0xf3ef, 0xf6cb,
+ 0xf2af, 0xf0ad, 0xf279, 0xef76, 0xec7b, 0xee64,
+ 0xef36, 0xeacc, 0xe911, 0xf42f, 0xff15, 0xf8cc,
+ 0xeeab, 0xef35, 0xf396, 0xf5e8, 0xfa13, 0x04f3,
+ 0x0da1, 0x0a80, 0x089f, 0x08de, 0xfe32, 0xf71a,
+ 0xf569, 0xea11, 0xeb4c, 0xfd25, 0xfff3, 0xfdff,
+ 0x058e, 0x00c2, 0xf39a, 0xf0d9, 0xf2f0, 0xf564,
+ 0xf855, 0xfa89, 0xff80, 0x041f, 0x0445, 0x01ac,
+ 0xf96b, 0xecc0, 0xe7cd, 0xf002, 0xf8f8, 0xf768,
+ 0xf6e1, 0xff9a, 0x0327, 0xff9a, 0xfde9, 0xf886,
+ 0xf39c, 0xf7b6, 0xf4e8, 0xe6fc, 0xe74d, 0xfb1c,
+ 0x05fc, 0xf745, 0xe468, 0xe957, 0xff9b, 0x0f38,
+ 0x15d8, 0x1d5e, 0x23eb, 0x26ac, 0x2760, 0x1ee9,
+ 0x0ed8, 0x0d4e, 0x1aa2, 0x1cfa, 0x1599, 0x16ee,
+ 0x18c0, 0x1115, 0x0c9b, 0x0eda, 0x0dde, 0x0f48,
+ 0x1872, 0x1b7e, 0x17ab, 0x189a, 0x136e, 0x00c0,
+ 0xf322, 0xf471, 0xfdfc, 0x07ae, 0x0cd6, 0x1098,
+ 0x0ca7, 0xfaa6, 0xf25b, 0xfd18, 0x0298, 0x037e,
+ 0x09bf, 0x0932, 0x08d0, 0x1560, 0x1e20, 0x1a95,
+ 0x151c, 0x0e0b, 0x04ee, 0x005f, 0xffa4, 0xfe86,
+ 0xfe5e, 0xfe1d, 0xfa17, 0xf552, 0xf105, 0xeb74,
+ 0xed0c, 0xf6ed, 0xfafe, 0xf8f8, 0xf812, 0xf3b5,
+ 0xeefa, 0xf3e6, 0xfbbd, 0xfae7, 0xfa66, 0x0836,
+ 0x169b, 0x1625, 0x1583, 0x1874, 0x1223, 0x0b16,
+ 0x02b0, 0xecb8, 0xdb67, 0xdaf6, 0xe0ce, 0xed9f,
+ 0xf7f1, 0xf0d1, 0xe5d6, 0xe3a1, 0xe8d7, 0xf4ea,
+ 0xffe1, 0x04af, 0x037f, 0xfbcc, 0xfaf4, 0x01da,
+ 0xfe87, 0xfd20, 0x0a03, 0x0b1f, 0xfc54, 0xf81c,
+ 0xfd55, 0xfd5c, 0xfe90, 0x0839, 0x12d5, 0x164f,
+ 0x126d, 0x0b87, 0x0803, 0x05e1, 0xf99b, 0xebe7,
+ 0xf591, 0x0c4d, 0x0ee2, 0x01b4, 0x00e0, 0x0d1e,
+ 0x1565, 0x186f, 0x1f18, 0x269e, 0x24d1, 0x19f2,
+ 0x0e20, 0x0686, 0x077c, 0x0ef9, 0x0f0e, 0x0436,
+ 0xfbbc, 0xf9a0, 0xfa51, 0x001d, 0x0658, 0x0562,
+ 0x01e3, 0x0257, 0x04e3, 0x01af, 0xf8d9, 0xfa84,
+ 0x0807, 0x0d69, 0x0a98, 0x0d16, 0x1043, 0x0b42,
+ 0x026c, 0x00f6, 0x05b0, 0x03bf, 0x0127, 0x069f,
+ 0x0769, 0x0735, 0x10aa, 0x1367, 0x0d0c, 0x0b9b,
+ 0x0a97, 0x09f8, 0x0da9, 0x0c1f, 0x0378, 0xf7fb,
+ 0xed70, 0xea2a, 0xec72, 0xf63e, 0x06ed, 0x0b67,
+ 0x055a, 0x08ac, 0x106c, 0x1370, 0x1233, 0x0c19,
+ 0x0782, 0x025d, 0xf590, 0xed22, 0xf078, 0xf7b7,
+ 0xfc3d, 0xf9cb, 0xf850, 0xfead, 0x01c9, 0x00d0,
+ 0x02e4, 0x0212, 0xfb7d, 0xf404, 0xf2db, 0xf5ae,
+ 0xeb85, 0xe06d, 0xef32, 0x02c6, 0x03d9, 0x0281,
+ 0x0583, 0x04f2, 0xffae, 0xfa97, 0x006d, 0x0adc,
+ 0x0ab5, 0x07de, 0x0573, 0xfa69, 0xecdb, 0xe4a6,
+ 0xe7b6, 0xf6d1, 0xfeb8, 0xfa48, 0xf99e, 0xfc1a,
+ 0xfac9, 0xf7ef, 0xf7cf, 0xff5b, 0x056a, 0xfc79,
+ 0xebc7, 0xdefa, 0xdcfe, 0xe944, 0xf8ca, 0x0398,
+ 0x0cb5, 0x138e, 0x1bae, 0x2594, 0x2796, 0x22c2,
+ 0x1b04, 0x12ad, 0x1872, 0x2840, 0x273e, 0x184d,
+ 0x10e6, 0x0cb4, 0x0500, 0x05cc, 0x0bf2, 0x059f,
+ 0xfa9c, 0xfb75, 0x00ee, 0x04f9, 0x098d, 0x07a9,
+ 0x0107, 0xfbfa, 0xf5cc, 0xf883, 0x0840, 0x0e91,
+ 0x0878, 0x0a89, 0x124f, 0x0dca, 0xfdd8, 0xf6bd,
+ 0x01c7, 0x0e8a, 0x1362, 0x1836, 0x1b6d, 0x1a6d,
+ 0x1b6f, 0x1c27, 0x19aa, 0x16d6, 0x1069, 0x061b,
+ 0xfef1, 0xfc75, 0xfb15, 0xf9a6, 0xfb33, 0xfd1b,
+ 0xf65e, 0xf1d6, 0x0244, 0x1584, 0x1175, 0x0541,
+ 0x0581, 0x0783, 0xfd54, 0xec36, 0xe3b3, 0xeaaa,
+ 0xf402, 0xf4cc, 0xf711, 0x017c, 0x0936, 0x050a,
+ 0xf9f5, 0xf5fa, 0xfb1c, 0xfae7, 0xf5ad, 0xf80c,
+ 0xfd4f, 0xfe04, 0xfbe1, 0xf658, 0xefcc, 0xe8b0,
+ 0xe3a5, 0xf0cb, 0x08a4, 0x1193, 0x1429, 0x1906,
+ 0x11c6, 0x088c, 0x0a77, 0x0a0c, 0x03c6, 0xff56,
+ 0xff05, 0x030c, 0x0385, 0xfdeb, 0xf91a, 0xf387,
+ 0xf075, 0xf575, 0xfc28, 0x0484, 0x09b0, 0xfe1b,
+ 0xefce, 0xede1, 0xe7ed, 0xda36, 0xda96, 0xef8c,
+ 0x059c, 0x0ce0, 0x10ad, 0x1c55, 0x2141, 0x171c,
+ 0x0af4, 0x08f6, 0x14ab, 0x2491, 0x29e2, 0x2382,
+ 0x17fb, 0x0df1, 0x0994, 0x072b, 0x0348, 0xfa00,
+ 0xed27, 0xefef, 0xff51, 0xff54, 0xf92c, 0x0311,
+ 0x0e5a, 0x0e32, 0x0893, 0x03e8, 0x0997, 0x10a9,
+ 0x0620, 0xfb03, 0x042a, 0x1182, 0x14a9, 0x1115,
+ 0x05fe, 0xf597, 0xe9f7, 0xe8f4, 0xf0cd, 0xf825,
+ 0xf953, 0xfb01, 0xfb99, 0xf218, 0xea51, 0xf13c,
+ 0xf937, 0xf900, 0xfbd0, 0x04a1, 0x0976, 0x052d,
+ 0xfda5, 0xfed6, 0x0d10, 0x1ed1, 0x25a1, 0x1d8e,
+ 0x17ba, 0x204a, 0x2420, 0x15a6, 0x0622, 0x015d,
+ 0xffd8, 0xfac0, 0xf38a, 0xf39a, 0xfcdf, 0x0131,
+ 0xfd81, 0xfe45, 0x0120, 0xf9b9, 0xed11, 0xe98a,
+ 0xefb1, 0xf645, 0xf92c, 0xf7aa, 0xf23a, 0xedb1,
+ 0xeb44, 0xe735, 0xe446, 0xe855, 0xf0ea, 0xf694,
+ 0xf82b, 0xfab7, 0xfdde, 0xfdc8, 0xfcbb, 0xfb54,
+ 0xf7b7, 0xf71d, 0xf9a4, 0xf688, 0xf039, 0xf136,
+ 0xf7ed, 0xfa9a, 0xf96e, 0xfce0, 0x0223, 0x003d,
+ 0xfc66, 0xfd8a, 0x0088, 0x0351, 0xfea6, 0xef0b,
+ 0xecad, 0x03ec, 0x165e, 0x157e, 0x197f, 0x270f,
+ 0x28ca, 0x1f21, 0x1ad9, 0x19e6, 0x1599, 0x1942,
+ 0x2744, 0x2c04, 0x2219, 0x176a, 0x0fb7, 0x089c,
+ 0x04b6, 0x020b, 0xfba3, 0xf23c, 0xefff, 0xffd8,
+ 0x16d3, 0x20f7, 0x2010, 0x1913, 0x07ec, 0xf65a,
+ 0xf1bf, 0xf89a, 0x0122, 0x01c9, 0x0189, 0x0ac4,
+ 0x0c10, 0xfd26, 0xf612, 0xfb01, 0xfb7e, 0xf8e5,
+ 0xf83c, 0xf794, 0xf7a0, 0xf610, 0xef85, 0xe8a7,
+ 0xebb1, 0xf66a, 0xf621, 0xec93, 0xef92, 0xfa41,
+ 0xfc26, 0xf84e, 0xf266, 0xecf3, 0xefee, 0xfc04,
+ 0x09e5, 0x0da7, 0x054a, 0xfcee, 0xf46d, 0xed74,
+ 0xf568, 0xff30, 0xfcde, 0xfbba, 0xf843, 0xed32,
+ 0xecef, 0xf564, 0xf816, 0xf79f, 0xf4fa, 0xf345,
+ 0xf63a, 0xf582, 0xf4b1, 0xfbe9, 0x00b2, 0xfebd,
+ 0xfeae, 0x0259, 0x0555, 0x030e, 0xfd42, 0xf991,
+ 0xf58e, 0xee36, 0xe96f, 0xee06, 0xf8e4, 0xfea3,
+ 0xfe0e, 0xfe54, 0xfc34, 0xf663, 0xf3a2, 0xf4bf,
+ 0xfb72, 0x0439, 0x0137, 0xf7ef, 0xf7f4, 0xfc5c,
+ 0xff2b, 0x0328, 0x0523, 0x0325, 0xfe5a, 0xf5ef,
+ 0xece4, 0xe4e5, 0xde93, 0xe47d, 0xf9fe, 0x0c23,
+ 0x0eeb, 0x0ea0, 0x1377, 0x15f2, 0x12e1, 0x1024,
+ 0x1385, 0x1aa3, 0x1b27, 0x13e4, 0x0d2c, 0x0798,
+ 0x01af, 0xfe8b, 0x0146, 0x0b1b, 0x1103, 0x0873,
+ 0xfde1, 0xfb91, 0xfd89, 0x0642, 0x10e4, 0x0c9f,
+ 0xfa4d, 0xec4b, 0xeba2, 0xeca8, 0xe79e, 0xe98b,
+ 0xf34f, 0xf7d3, 0xf9ba, 0xf861, 0xef14, 0xe8ea,
+ 0xe9b0, 0xef0c, 0xf8fd, 0xfcd4, 0xfdbf, 0x03c9,
+ 0x01e5, 0xfe83, 0x048b, 0x00b5, 0xf647, 0xf572,
+ 0xf103, 0xeaad, 0xf10d, 0xf759, 0xf06c, 0xe6fa,
+ 0xece3, 0xfabf, 0xf8dd, 0xf2c9, 0xf678, 0xf243,
+ 0xf1b1, 0x033b, 0x078d, 0xfab7, 0xf677, 0xf7e2,
+ 0xfa23, 0xfc40, 0xf810, 0xf734, 0xfad5, 0xfb0f,
+ 0xfffa, 0x0566, 0x012f, 0xfd20, 0xfb38, 0xf5e4,
+ 0xf29c, 0xf2c9, 0xf2a1, 0xf1f8, 0xf2d7, 0xf636,
+ 0xf842, 0xfa4e, 0xff8d, 0x0037, 0xfb8a, 0xf65c,
+ 0xedce, 0xec62, 0xfa14, 0x03a4, 0x029a, 0x05bb,
+ 0x0d0d, 0x10a7, 0x0f6d, 0x0a0a, 0x0344, 0xfd32,
+ 0xf933, 0xfa2a, 0xffae, 0x05ed, 0x070f, 0x0263,
+ 0x0148, 0x042e, 0x01f2, 0xfd66, 0xf86b, 0xee1f,
+ 0xee29, 0x06fe, 0x1c29, 0x13ce, 0x0b5f, 0x1bd3,
+ 0x2831, 0x2133, 0x207c, 0x27d9, 0x255c, 0x20f3,
+ 0x23f1, 0x259e, 0x2147, 0x1a96, 0x17d2, 0x1beb,
+ 0x219d, 0x2509, 0x21b7, 0x111f, 0x000b, 0x02a8,
+ 0x0f60, 0x10f0, 0x0ce9, 0x11c0, 0x1911, 0x1782,
+ 0x0e10, 0x01df, 0xfa92, 0xfbbc, 0xfafc, 0xf542,
+ 0xf50b, 0xf885, 0xf951, 0xfbb6, 0x0077, 0x06e4,
+ 0x10bc, 0x16de, 0x1474, 0x0e00, 0x0461, 0xfa06,
+ 0xf513, 0xf01e, 0xe45c, 0xdf3a, 0xebd5, 0xf607,
+ 0xf1dc, 0xfa36, 0x147b, 0x1e56, 0x12bd, 0x0843,
+ 0x0152, 0xfc99, 0xff51, 0x02a5, 0xfd94, 0xf34b,
+ 0xf01d, 0xf71a, 0xf8e8, 0xf3ae, 0xf7d1, 0x0103,
+ 0x00d2, 0xfbb1, 0xf965, 0xf98f, 0xfa18, 0xf8cb,
+ 0xf3ee, 0xec4c, 0xe97e, 0xecea, 0xe8c5, 0xe038,
+ 0xe7a6, 0xf9bb, 0x0206, 0xfd10, 0xf302, 0xec3a,
+ 0xe90e, 0xe9b3, 0xf4d0, 0xffa0, 0xfb32, 0xf355,
+ 0xf190, 0xf04e, 0xf1a8, 0xf637, 0xf724, 0xefb2,
+ 0xe322, 0xe0ba, 0xea32, 0xf023, 0xf5ff, 0x00d2,
+ 0x04a0, 0x0211, 0xff3e, 0xfb0a, 0xf8b6, 0xf617,
+ 0xf20c, 0xee49, 0xe033, 0xd31c, 0xe3f6, 0x0442,
+ 0x1343, 0x119b, 0x10fc, 0x1916, 0x1ba1, 0x0fc8,
+ 0x09d9, 0x0bfc, 0x06f7, 0x088a, 0x12de, 0x0ee8,
+ 0x018b, 0xf8ac, 0xf08a, 0xe9a6, 0xe5d7, 0xe63b,
+ 0xeba4, 0xe9c6, 0xde8a, 0xdb0e, 0xe360, 0xeeec,
+ 0xf787, 0xfaa8, 0xfc28, 0xfa64, 0xf0a7, 0xe85d,
+ 0xe7cb, 0xeaf7, 0xf1d0, 0xf5ae, 0xf19d, 0xf26f,
+ 0xfaef, 0xfeb6, 0xfc2d, 0xf857, 0xf6ff, 0xf6c1,
+ 0xee6f, 0xe6c5, 0xf101, 0xfb50, 0xeee2, 0xdbdc,
+ 0xd83b, 0xe0a1, 0xe742, 0xeade, 0xf695, 0x049f,
+ 0x0548, 0xff94, 0xf999, 0xefda, 0xeecc, 0xf464,
+ 0xefd4, 0xeb5f, 0xe912, 0xdd09, 0xdd5e, 0xf28d,
+ 0xfd3a, 0xf932, 0xf61f, 0xf222, 0xf142, 0xf8bf,
+ 0xfefa, 0xff4b, 0xfc18, 0xf596, 0xed08, 0xe58b,
+ 0xe1c0, 0xe0f5, 0xe56e, 0xf42a, 0x0473, 0x0b16,
+ 0x0b0b, 0x06ad, 0xfe34, 0xf5ff, 0xf056, 0xf1b3,
+ 0xfa9b, 0x025a, 0x0480, 0xfc3e, 0xed2d, 0xede7,
+ 0xfd6f, 0x0541, 0x099d, 0x1045, 0x0fbd, 0x0f43,
+ 0x133a, 0x11c5, 0x0e95, 0x0ba5, 0x0204, 0xfb28,
+ 0x0389, 0x1442, 0x1be3, 0x12ab, 0x0480, 0xf94b,
+ 0xea25, 0xe26d, 0xf319, 0x07dc, 0x0b9f, 0x10e8,
+ 0x22af, 0x2b71, 0x2634, 0x2748, 0x3080, 0x332f,
+ 0x3021, 0x2ef1, 0x2a4e, 0x1b73, 0x090a, 0xfe93,
+ 0xfbe7, 0xf70d, 0xee1e, 0xeb2c, 0xf445, 0x0392,
+ 0x0efb, 0x1070, 0x0c8c, 0x0bda, 0x081d, 0xf9a9,
+ 0xed4d, 0xe84e, 0xdf18, 0xd8c3, 0xddfa, 0xe139,
+ 0xe120, 0xe67e, 0xed21, 0xf448, 0xf8c2, 0xf6ba,
+ 0xffe1, 0x1257, 0x0ff3, 0x00bd, 0xfffc, 0x02a0,
+ 0xf9fb, 0xf1a2, 0xf033, 0xee5b, 0xee54, 0xf860,
+ 0x02b7, 0x0224, 0xfe68, 0xf759, 0xec1e, 0xf152,
+ 0x02b4, 0x032d, 0xf904, 0xf71e, 0xf8b9, 0xf999,
+ 0xf990, 0xfad4, 0x05e1, 0x11f5, 0x118e, 0x0d47,
+ 0x0949, 0x00bd, 0xfe79, 0x06a5, 0x0949, 0x02ff,
+ 0xfedc, 0xfc86, 0xf7cd, 0xf5fe, 0xf97d, 0xfe6e,
+ 0x0337, 0x06c3, 0x09ae, 0x0e8e, 0x1055, 0x07f9,
+ 0xfc09, 0xfadc, 0x04b6, 0x0a7f, 0x0a3a, 0x0f8f,
+ 0x13bb, 0x0b3b, 0x00b3, 0xfddd, 0xff50, 0x027c,
+ 0x06b7, 0x0e83, 0x17e2, 0x19a0, 0x1744, 0x1553,
+ 0x0d83, 0x0868, 0x0e59, 0x1054, 0x08ff, 0x0589,
+ 0x07c7, 0x031c, 0xf38a, 0xe6b5, 0xe29e, 0xe504,
+ 0xfb46, 0x1cb6, 0x2775, 0x2625, 0x3017, 0x33ef,
+ 0x2b67, 0x2007, 0x0e98, 0x00bf, 0xfc32, 0xf56d,
+ 0xf0b4, 0xf0e4, 0xeff8, 0xf446, 0xf997, 0xf85a,
+ 0xfcf9, 0x096d, 0x1477, 0x1ef3, 0x25ad, 0x22a8,
+ 0x1643, 0x04a5, 0xf938, 0xf79f, 0xf673, 0xf6bc,
+ 0xfddf, 0x055e, 0x0930, 0x0da1, 0x1015, 0x07a0,
+ 0xfa0b, 0xf6d0, 0xfb29, 0xfe57, 0x0657, 0x1207,
+ 0x143f, 0x0be8, 0x030b, 0xfd94, 0xf892, 0xfb53,
+ 0x0e1d, 0x1b7b, 0x109b, 0x029f, 0xfdfa, 0xf452,
+ 0xe9dd, 0xed0f, 0xf98a, 0x0600, 0x109b, 0x17a3,
+ 0x1562, 0x0bec, 0x0570, 0xffdf, 0xf875, 0xf955,
+ 0xff77, 0xfff2, 0xff37, 0x015e, 0x040f, 0x0545,
+ 0x017a, 0xf9f1, 0xf0c8, 0xea40, 0xf2dd, 0x04d9,
+ 0x0ae5, 0x05c0, 0x0262, 0x0427, 0x0667, 0x0134,
+ 0xf810, 0xf358, 0xf24e, 0xf8ca, 0x02ab, 0xfee4,
+ 0xf580, 0xf695, 0xf8dc, 0xf947, 0x012e, 0x0a27,
+ 0x0ad8, 0x07f1, 0x0930, 0x0ed9, 0x123c, 0x0d5f,
+ 0x0420, 0x0349, 0x0c24, 0x106f, 0x0fb5, 0x1138,
+ 0x0ddb, 0x0865, 0x075c, 0xffd7, 0xfb15, 0x0796,
+ 0x0c17, 0xfe95, 0xf7cf, 0xf8e6, 0x001d, 0x1aad,
+ 0x330f, 0x2f76, 0x243c, 0x210e, 0x1816, 0x0a6a,
+ 0x0469, 0x0298, 0x0050, 0xff9d, 0xfe89, 0xfcc9,
+ 0xfd7e, 0xfe97, 0xff16, 0x01f5, 0x02d1, 0xfcd2,
+ 0xf739, 0xf53e, 0xf04f, 0xed12, 0xf116, 0xf181,
+ 0xeca7, 0xee86, 0xf7c1, 0x03d6, 0x0d9a, 0x0c58,
+ 0x0363, 0xf8b0, 0xedd8, 0xef44, 0xfbff, 0x010d,
+ 0x015e, 0x08f7, 0x1610, 0x2518, 0x292c, 0x1845,
+ 0x03b8, 0xfc94, 0x005f, 0x0671, 0x0780, 0x05d9,
+ 0x030b, 0xf73a, 0xe9bc, 0xeb51, 0xf7c1, 0x0246,
+ 0x09da, 0x115c, 0x1800, 0x1d99, 0x2170, 0x1e42,
+ 0x1587, 0x0e82, 0x06af, 0xfe93, 0xfce2, 0xff2e,
+ 0x0755, 0x1489, 0x1630, 0x0a39, 0xfa9d, 0xef76,
+ 0xf77c, 0x067a, 0x0365, 0x002f, 0x0861, 0x04c3,
+ 0xf5ac, 0xea8b, 0xe6c4, 0xeb67, 0xef74, 0xeeaa,
+ 0xf41a, 0x008a, 0x0d98, 0x1635, 0x1545, 0x0ca0,
+ 0xfd11, 0xeceb, 0xea7b, 0xf2fb, 0xfe32, 0x05d7,
+ 0xfc84, 0xebe3, 0xe733, 0xead6, 0xf661, 0x046e,
+ 0x0546, 0x02eb, 0x0616, 0x05ba, 0x0027, 0xef07,
+ 0xdca3, 0xe40f, 0xf375, 0xf4ea, 0xfa82, 0x0114,
+ 0xfb53, 0xf6fc, 0xf6b7, 0xf92b, 0x062d, 0x0cab,
+ 0x0152, 0x00fc, 0x1510, 0x19e2, 0x0641, 0xfc58,
+ 0x00c4, 0xfc61, 0xf82e, 0x0091, 0x0612, 0x054b,
+ 0x058a, 0x0146, 0xf99f, 0xf6e8, 0xf7c8, 0xf866,
+ 0xf940, 0xfd4c, 0x0474, 0x06ef, 0x0279, 0x0346,
+ 0x0cf0, 0x1005, 0x09cb, 0x0801, 0x068f, 0xfd0f,
+ 0xf5f2, 0xf480, 0xf507, 0xfbac, 0x0114, 0xfd43,
+ 0xf9f1, 0xfccd, 0x01f9, 0x02e1, 0xfaba, 0xf422,
+ 0xf6fe, 0xf92c, 0xf79e, 0xf604, 0xf23c, 0xf130,
+ 0xf9ef, 0x05c8, 0x09da, 0x0a0f, 0x1203, 0x1b4a,
+ 0x1888, 0x0f7c, 0x0c08, 0x0fb9, 0x0df6, 0xfac7,
+ 0xea50, 0xf07a, 0xf99e, 0xfa30, 0xfb66, 0xf86b,
+ 0xf363, 0xf6a0, 0xfa61, 0xf9ed, 0xfcdd, 0x056e,
+ 0x0ce0, 0x0a0b, 0x01db, 0x0064, 0x041a, 0x0856,
+ 0x097f, 0x06a9, 0x097b, 0x0ed4, 0x0d8f, 0x1166,
+ 0x1bb6, 0x1cd4, 0x1467, 0x0973, 0x020b, 0x017c,
+ 0x016f, 0x0185, 0x0295, 0x0005, 0x001f, 0x0361,
+ 0x04be, 0x0bd0, 0x1205, 0x11f0, 0x1e4a, 0x2dc6,
+ 0x297e, 0x1efa, 0x1473, 0x04c4, 0x0319, 0x0d7c,
+ 0x0a83, 0x05e3, 0x12d9, 0x1d07, 0x124f, 0xffcd,
+ 0xf179, 0xe7e6, 0xe969, 0xf853, 0x056d, 0x02ed,
+ 0xf914, 0xf5d5, 0xf194, 0xe5f9, 0xe69f, 0xf1e8,
+ 0xeaf7, 0xdfba, 0xee88, 0x01ae, 0x017b, 0xfd82,
+ 0xff6a, 0x0154, 0x02ed, 0x035f, 0xff6e, 0xf98f,
+ 0xf8c1, 0xfe57, 0x0315, 0x044a, 0x048f, 0x0215,
+ 0xfac7, 0xef94, 0xe553, 0xe2d0, 0xe472, 0xe2a3,
+ 0xddf3, 0xd789, 0xd569, 0xdf25, 0xe9d5, 0xed02,
+ 0xf542, 0x04f5, 0x0e7e, 0x0ed8, 0x0ba0, 0x05b9,
+ 0xfc49, 0xf4e8, 0xf72b, 0xfe9a, 0x02a4, 0x0435,
+ 0x02ae, 0xff01, 0x0440, 0x0e66, 0x0c0f, 0x020a,
+ 0xfcbb, 0xf64e, 0xef6e, 0xf232, 0xf41d, 0xe955,
+ 0xe297, 0xed74, 0xfc13, 0x03e6, 0x0a6b, 0x1209,
+ 0x174a, 0x164a, 0x1068, 0x0f2d, 0x118e, 0x0c86,
+ 0x06e2, 0x0c46, 0x133b, 0x0e04, 0xfe6d, 0xf513,
+ 0xfcd9, 0x06d2, 0x077e, 0x07f9, 0x04e0, 0xfb16,
+ 0xfa18, 0xfc6b, 0xf2a4, 0xe797, 0xe3d3, 0xe50c,
+ 0xec49, 0xf19c, 0xf39d, 0xfb6a, 0x0079, 0xfd51,
+ 0xfd93, 0x027a, 0x0a8d, 0x1596, 0x14ef, 0x05a1,
+ 0xf924, 0xf4c6, 0xf3b6, 0xf8a1, 0x04b0, 0x0ef1,
+ 0x0e24, 0x0519, 0xfae7, 0xf0b7, 0xeab8, 0xeaef,
+ 0xe626, 0xd630, 0xc83d, 0xcf50, 0xe863, 0xf6bd,
+ 0xf5ca, 0xffb2, 0x0f5f, 0x1105, 0x0fb3, 0x0e28,
+ 0x06dc, 0x0bd1, 0x1a49, 0x1a96, 0x10b1, 0x067e,
+ 0x009c, 0x0987, 0x1525, 0x1123, 0x05d0, 0xfc88,
+ 0xf96b, 0x00f4, 0x071e, 0x01ad, 0xf7fd, 0xef75,
+ 0xe826, 0xe2ce, 0xe358, 0xee6d, 0xfcd9, 0x0510,
+ 0x06b3, 0x02c6, 0x0064, 0x0383, 0x0358, 0x0243,
+ 0x05b1, 0x0542, 0x0053, 0xf794, 0xea19, 0xe8fb,
+ 0xf60b, 0xfa0e, 0xf3e9, 0xf008, 0xec73, 0xe993,
+ 0xef8c, 0xfc26, 0xfe8e, 0xf28c, 0xead6, 0xe86d,
+ 0xde15, 0xd991, 0xe6c2, 0xf6a3, 0xfda2, 0xfb41,
+ 0xf624, 0xf60a, 0xf6f3, 0xfa6f, 0x05ee, 0x0d72,
+ 0x0b15, 0x0862, 0x085d, 0x0a22, 0x0a7c, 0x05b9,
+ 0x01e1, 0x01e4, 0x01b9, 0x0279, 0x03cd, 0x00a9,
+ 0xf9a4, 0xf7de, 0xfd94, 0xfc4b, 0xf2e6, 0xf525,
+ 0x0250, 0x0907, 0x0513, 0xfb97, 0xf901, 0x0292,
+ 0x08fc, 0x06c2, 0x0538, 0x046a, 0x010c, 0xfbd7,
+ 0xfa0e, 0xfd15, 0xf76a, 0xea1b, 0xe692, 0xe791,
+ 0xe712, 0xed69, 0xf3ee, 0xf77f, 0xfd14, 0xfaa8,
+ 0xf3a8, 0xf373, 0xedff, 0xe47d, 0xe7e0, 0xeee5,
+ 0xecd9, 0xe7af, 0xe69f, 0xf1c5, 0x0635, 0x0f10,
+ 0x09ec, 0x08aa, 0x0da0, 0x1292, 0x183f, 0x1c14,
+ 0x1d11, 0x1f7f, 0x200b, 0x19f1, 0x10b7, 0x0a81,
+ 0x0c5c, 0x13db, 0x180f, 0x1770, 0x1563, 0x113f,
+ 0x0945, 0x025d, 0x0988, 0x1a96, 0x1c7a, 0x11c4,
+ 0x123e, 0x1a28, 0x1d92, 0x1be0, 0x1282, 0x0ade,
+ 0x0ec3, 0x1244, 0x0fa6, 0x0d55, 0x0aad, 0x0667,
+ 0xff64, 0xf578, 0xef6e, 0xf290, 0xff1a, 0x0ae6,
+ 0x0a55, 0x0870, 0x0d84, 0x0d84, 0x098e, 0x0702,
+ 0x025e, 0x049d, 0x0d45, 0x0e2a, 0x0cdd, 0x0ce0,
+ 0x0609, 0xfff2, 0xff34, 0xfcc4, 0xfb89, 0xfc7e,
+ 0xf99c, 0xf5f5, 0xf72e, 0xf9dd, 0xf75b, 0xf454,
+ 0xfc0a, 0x07ef, 0x0905, 0x029b, 0xff5a, 0x0019,
+ 0x00b5, 0xff5a, 0xfbc0, 0xf35d, 0xebf4, 0xf141,
+ 0xf906, 0xf5f3, 0xf73a, 0x025a, 0x04c4, 0xfe0d,
+ 0xfac0, 0xfb35, 0xf9df, 0xefbd, 0xe08d, 0xdd4a,
+ 0xe514, 0xe71b, 0xe22d, 0xdee8, 0xdf51, 0xe256,
+ 0xe50f, 0xe55b, 0xe846, 0xefca, 0xf0ee, 0xe766,
+ 0xdf0e, 0xdc71, 0xdff2, 0xee8e, 0xf62b, 0xe7f8,
+ 0xe34b, 0xf678, 0xfff5, 0xf765, 0xf216, 0xf41d,
+ 0xf63b, 0xef26, 0xde00, 0xd4d7, 0xdead, 0xf3ae,
+ 0x01dc, 0xfc4a, 0xf5ff, 0x003c, 0x0646, 0x0293,
+ 0x055f, 0x0760, 0x0633, 0x0c8c, 0x0e80, 0x0295,
+ 0xf88f, 0xfe83, 0x0cbb, 0x0f68, 0x0901, 0x0af9,
+ 0x0b63, 0x0035, 0xfb87, 0x020b, 0x064b, 0x04fc,
+ 0xffea, 0xfa19, 0xf43b, 0xe891, 0xdbd9, 0xd809,
+ 0xd994, 0xdc1e, 0xe095, 0xe1f9, 0xdd4d, 0xd96d,
+ 0xddd3, 0xece8, 0xfd68, 0xfd60, 0xf1cd, 0xf42c,
+ 0x01fa, 0x055d, 0x0034, 0xfdcd, 0xfc9a, 0xf705,
+ 0xf0a9, 0xf726, 0x03f4, 0x0325, 0xffd5, 0x00da,
+ 0xf639, 0xed94, 0xef3d, 0xe762, 0xe3b0, 0xf0ab,
+ 0xf9b4, 0x0174, 0x0d38, 0x1158, 0x1610, 0x1c59,
+ 0x17c6, 0x0f02, 0x09d9, 0x0ca6, 0x15eb, 0x1530,
+ 0x0e7b, 0x10c9, 0x14c2, 0x1820, 0x2175, 0x2e8e,
+ 0x371f, 0x2d48, 0x19a0, 0x1299, 0x0c6d, 0xfe44,
+ 0xf9fc, 0xfb69, 0xf54b, 0xec1f, 0xe657, 0xeaff,
+ 0xf5a0, 0xf66b, 0xef5d, 0xeadc, 0xe84e, 0xe1c3,
+ 0xda07, 0xe1e6, 0xf55f, 0xf964, 0xf1e7, 0xf4c0,
+ 0xff03, 0x03ae, 0xfe37, 0xf990, 0x00ea, 0x08fa,
+ 0x0b5e, 0x0d1f, 0x07dc, 0xfc4d, 0xf042, 0xe324,
+ 0xdd6f, 0xde6a, 0xdd8f, 0xe133, 0xe5ab, 0xe606,
+ 0xeebc, 0xfbc6, 0x014f, 0x033c, 0x06ea, 0x129e,
+ 0x20ed, 0x213a, 0x1806, 0x11ac, 0x1254, 0x1836,
+ 0x12b9, 0x04dc, 0x0801, 0x1425, 0x144d, 0x0a14,
+ 0xfd6a, 0xf8fa, 0xfab8, 0xfa36, 0x036b, 0x0f28,
+ 0x072b, 0xfa93, 0xf851, 0xf956, 0xfe5f, 0x034a,
+ 0x0508, 0x097c, 0x0b3e, 0x0d19, 0x1425, 0x11a3,
+ 0x0a04, 0x0d7c, 0x0ef9, 0x054b, 0xfce0, 0xf98c,
+ 0xf683, 0xf322, 0xf09c, 0xeeea, 0xf17f, 0xfbcd,
+ 0x03f2, 0x02e3, 0x010c, 0xfef1, 0xfb4f, 0xfcbf,
+ 0xfc80, 0xf5ce, 0xf250, 0xf318, 0xf3ec, 0xf0ad,
+ 0xeb79, 0xf68f, 0x0c5a, 0x124c, 0x11f0, 0x1663,
+ 0x0d87, 0xfdd3, 0xfa6e, 0xfca2, 0x0103, 0x096c,
+ 0x0b7d, 0x06a6, 0x05a0, 0x09d8, 0x0bf8, 0x0648,
+ 0xfcfd, 0xf687, 0xf054, 0xed0b, 0xf44a, 0xfb97,
+ 0xf724, 0xf051, 0xed9e, 0xed1b, 0xf5f0, 0x0481,
+ 0x0756, 0x01b3, 0x036a, 0x0a56, 0x091d, 0xfcce,
+ 0xf5ad, 0x00f6, 0x1149, 0x170f, 0x135a, 0x0b08,
+ 0x0684, 0x0774, 0x0436, 0x018f, 0x04f2, 0x0229,
+ 0xfafb, 0xfbbc, 0xffd1, 0x0175, 0x025f, 0x0145,
+ 0xfd2f, 0xfb1f, 0x023f, 0x0ab3, 0x04d4, 0xfa23,
+ 0xfae5, 0x01b2, 0x0ac9, 0x171b, 0x1d72, 0x1a7d,
+ 0x17e6, 0x1e50, 0x252a, 0x1db6, 0x14e6, 0x1959,
+ 0x1bfc, 0x1b15, 0x1f1f, 0x197e, 0x0d01, 0x0bcf,
+ 0x0c20, 0x0624, 0x029a, 0xff7f, 0xf854, 0xf135,
+ 0xf27d, 0xfd73, 0x04d0, 0x081e, 0x12ab, 0x19a7,
+ 0x135c, 0x0cf8, 0x0fa8, 0x165e, 0x13d5, 0x05b6,
+ 0xfe70, 0x00a9, 0x00e2, 0x0585, 0x0e4c, 0x1210,
+ 0x1788, 0x1d55, 0x1b90, 0x188e, 0x13b1, 0x0b09,
+ 0x087e, 0x0a21, 0x0a93, 0x10e1, 0x1b06, 0x1cad,
+ 0x127a, 0x056d, 0x027f, 0x0939, 0x0a2c, 0x01b6,
+ 0xff2a, 0x05a0, 0x0433, 0xfaef, 0xf957, 0xfae3,
+ 0xfb5a, 0x042b, 0x0bbc, 0x094a, 0x06ca, 0x010c,
+ 0xf95e, 0xfa65, 0xf38c, 0xe119, 0xdb1d, 0xdb3f,
+ 0xd801, 0xe225, 0xf3b5, 0xfd16, 0x01c3, 0x007a,
+ 0xfe0b, 0x02fd, 0x01be, 0xf87a, 0xf5fb, 0xf36d,
+ 0xebee, 0xebf4, 0xf3f2, 0xfd55, 0x0392, 0x00e6,
+ 0xfd33, 0x0204, 0x054d, 0x00ef, 0x0033, 0x0569,
+ 0x04af, 0xfeac, 0xfef1, 0xfeba, 0xf4da, 0xf421,
+ 0x0568, 0x0f75, 0x0b64, 0x0ddd, 0x15af, 0x1411,
+ 0x0fb9, 0x102b, 0x0a3f, 0xfbb2, 0xf1e5, 0xef34,
+ 0xef30, 0xf2fd, 0xf49b, 0xf07d, 0xf0f7, 0xf8fb,
+ 0x04b7, 0x1370, 0x1b10, 0x1643, 0x126c, 0x167c,
+ 0x1b5d, 0x1aae, 0x15a3, 0x160b, 0x1cc8, 0x1ba7,
+ 0x107b, 0x0915, 0x0c5e, 0x1304, 0x1231, 0x0bed,
+ 0x08ff, 0x0698, 0x038b, 0x084f, 0x1130, 0x1046,
+ 0x0504, 0xfd23, 0x002c, 0x0618, 0x066a, 0x0005,
+ 0xf58d, 0xf0e1, 0xf57f, 0xf9d2, 0xfd35, 0x0148,
+ 0x010e, 0x03c7, 0x0b61, 0x09b5, 0x0127, 0xfca0,
+ 0xf9fb, 0xf848, 0xf916, 0xfbc7, 0xfbbc, 0xeef5,
+ 0xdf05, 0xe0df, 0xec9f, 0xf3ba, 0xfb1c, 0x0450,
+ 0x0c79, 0x1374, 0x15d7, 0x15b0, 0x1550, 0x0ff5,
+ 0x0a22, 0x0a07, 0x0595, 0xf7a3, 0xf18c, 0xfd98,
+ 0x0882, 0x04e4, 0x0041, 0x0002, 0xfee5, 0x01f9,
+ 0x05d2, 0x0348, 0x0167, 0xfe23, 0xf5d9, 0xf477,
+ 0xf635, 0xf048, 0xee6e, 0xf487, 0xf659, 0xf5af,
+ 0xf7d0, 0xf86b, 0xf97d, 0xfdd3, 0xfb34, 0xed24,
+ 0xe262, 0xe4a5, 0xec33, 0xf174, 0xf19b, 0xeeb0,
+ 0xf19a, 0xf934, 0xfdd9, 0x0315, 0x0732, 0x02d0,
+ 0xfd29, 0xfaa8, 0xf54e, 0xef68, 0xec56, 0xeaa0,
+ 0xeaf7, 0xeafe, 0xea35, 0xed5c, 0xf290, 0xf676,
+ 0xfa65, 0xfc6a, 0xfa4e, 0xf4ad, 0xed80, 0xec80,
+ 0xf484, 0xf891, 0xf2d9, 0xf48c, 0x057f, 0x1086,
+ 0x0d49, 0x12ba, 0x23a0, 0x23ee, 0x0fd7, 0xffc1,
+ 0xfc74, 0xfe04, 0x01c7, 0x077f, 0x0a74, 0x08b5,
+ 0x0652, 0x06a1, 0x0a88, 0x105a, 0x122b, 0x0fd0,
+ 0x10b2, 0x126e, 0x0d06, 0x054f, 0x0246, 0xff25,
+ 0xf9db, 0xfca5, 0x0aef, 0x1779, 0x1b88, 0x1e86,
+ 0x1ff1, 0x1ba9, 0x17ff, 0x1532, 0x0ec4, 0x0e4b,
+ 0x18e5, 0x1f1e, 0x17a6, 0x0f06, 0x0e93, 0x0cc0,
+ 0x04c8, 0x003d, 0xff98, 0xfed7, 0x01e4, 0x010b,
+ 0xf62f, 0xf2af, 0xfa5d, 0xfd5c, 0xfe3b, 0x0023,
+ 0xf64f, 0xe4e7, 0xdcbe, 0xdf55, 0xe58b, 0xe9cc,
+ 0xead1, 0xed5a, 0xf237, 0xf4fe, 0xf5e2, 0xf85a,
+ 0xfcf6, 0x00bd, 0x016a, 0xfebe, 0xf68d, 0xeb45,
+ 0xe6d3, 0xea0e, 0xecb1, 0xee70, 0xf43d, 0xfe7c,
+ 0x066f, 0x02b9, 0xf7d0, 0xf2de, 0xf236, 0xf07d,
+ 0xf437, 0xfe8d, 0x07e6, 0x0d6b, 0x0e7b, 0x0bba,
+ 0x0acb, 0x1034, 0x19be, 0x1ed9, 0x19d7, 0x122b,
+ 0x1024, 0x0ed4, 0x0a05, 0x08fd, 0x0f70, 0x166c,
+ 0x19d0, 0x1aec, 0x1821, 0x12cd, 0x0ff4, 0x0c6a,
+ 0x077c, 0x0911, 0x0bd8, 0x05e4, 0xff9d, 0xffb0,
+ 0x002c, 0xff3d, 0xfb64, 0xf27c, 0xea5b, 0xe587,
+ 0xe25d, 0xe523, 0xeee3, 0xfb58, 0x067f, 0x0898,
+ 0x01d9, 0x01e3, 0x0cb9, 0x1194, 0x08fd, 0xff42,
+ 0xfe16, 0x0230, 0x048f, 0x0243, 0xff50, 0xfef0,
+ 0xfafc, 0xf398, 0xf4c6, 0xfb3e, 0xf973, 0xf5c1,
+ 0xf8c9, 0xf8d8, 0xf16f, 0xe884, 0xdd9c, 0xd77f,
+ 0xe952, 0x0c14, 0x1bed, 0x1153, 0x05a5, 0xfeb6,
+ 0xf667, 0xf446, 0xf1a0, 0xe280, 0xd693, 0xd689,
+ 0xd558, 0xd7d3, 0xeadc, 0x03bd, 0x0d8d, 0x01c1,
+ 0xf09c, 0xec66, 0xefc1, 0xf069, 0xf0f9, 0xf367,
+ 0xf9ca, 0x0421, 0x08d2, 0x0901, 0x0e62, 0x12fc,
+ 0x1046, 0x0ae4, 0x0556, 0x03b0, 0x07f6, 0x0761,
+ 0xfc48, 0xf250, 0xf5e3, 0xff26, 0xf9f0, 0xf103,
+ 0x0333, 0x200a, 0x2296, 0x1750, 0x1422, 0x0f67,
+ 0x070c, 0x03e7, 0x0107, 0xfc40, 0xfcec, 0x0185,
+ 0x031d, 0x048f, 0x07b9, 0x0241, 0xf863, 0xfb5a,
+ 0xfeea, 0xf63f, 0xf6bb, 0xfe86, 0xf5b3, 0xec2a,
+ 0xf486, 0x0069, 0x0796, 0x0a0e, 0x07b3, 0x080a,
+ 0x073b, 0x00a0, 0x0059, 0x070c, 0x0a71, 0x09d5,
+ 0x087b, 0x0e1e, 0x188a, 0x15bb, 0x0b4c, 0x0cf5,
+ 0x1324, 0x1255, 0x0e31, 0x0983, 0x0871, 0x0b08,
+ 0x08f1, 0x0369, 0x009d, 0x0063, 0x0163, 0xfe60,
+ 0xf5de, 0xf371, 0xfc65, 0x07bc, 0x0ee0, 0x140b,
+ 0x1a4a, 0x1c4e, 0x1546, 0x0dbb, 0x0b21, 0x086d,
+ 0x06a3, 0x04f2, 0xfd36, 0xf7b3, 0xfc07, 0xfe78,
+ 0xf8a4, 0xf322, 0xf258, 0xf3cb, 0xf492, 0xf1f1,
+ 0xebbc, 0xe7a6, 0xea1f, 0xe8c3, 0xd9a2, 0xcc3e,
+ 0xcfdf, 0xda82, 0xe34e, 0xeb05, 0xee95, 0xf0f9,
+ 0xf57d, 0xf474, 0xefe1, 0xf2f6, 0xf8ad, 0xf4c0,
+ 0xec28, 0xed57, 0xf542, 0xf4a1, 0xf027, 0xf5f5,
+ 0xfd65, 0xfa2d, 0xf27e, 0xec3d, 0xe87e, 0xec55,
+ 0xf380, 0xf386, 0xf3ad, 0xfcc5, 0x002e, 0xf7be,
+ 0xf3ca, 0xf31e, 0xecd4, 0xec79, 0xf16a, 0xf00a,
+ 0xf346, 0x00c5, 0x0950, 0x0605, 0xfce2, 0xf7d8,
+ 0xf8d6, 0xf93a, 0xfef8, 0x0a09, 0x09e4, 0x03dc,
+ 0x0117, 0xf7bc, 0xf1c8, 0xfc51, 0x08f4, 0x0d97,
+ 0x095c, 0x02d5, 0x0bf6, 0x1992, 0x13c3, 0x0a82,
+ 0x0e83, 0x10bf, 0x07c1, 0xff06, 0x044a, 0x0f59,
+ 0x0ce3, 0x066d, 0x0ad1, 0x0c38, 0x04ad, 0x003a,
+ 0x00e9, 0x04ae, 0x08c4, 0x0564, 0xfc91, 0xfa70,
+ 0x0232, 0x0576, 0xfad3, 0xf2ee, 0xf7ae, 0xf896,
+ 0xf29d, 0xf367, 0xf905, 0xfac5, 0xf7e8, 0xf3f5,
+ 0xf352, 0xf3f9, 0xf6e5, 0x059d, 0x155c, 0x1008,
+ 0x0022, 0xfa43, 0xf6c5, 0xefec, 0xf351, 0x014b,
+ 0x0abe, 0x0912, 0xff3c, 0xf4c3, 0xf11b, 0xf3d1,
+ 0xfa76, 0x0393, 0x0a20, 0x0dad, 0x1146, 0x10c6,
+ 0x0b20, 0x07c8, 0x06cf, 0x0179, 0xfa68, 0xfa07,
+ 0xff57, 0x0340, 0x0465, 0x0591, 0x080e, 0x0789,
+ 0xfd9a, 0xf1e8, 0xf11e, 0xf44c, 0xf2f2, 0xf5ed,
+ 0x0043, 0x06c4, 0x0537, 0x0581, 0x0be7, 0x0cda,
+ 0x092c, 0x0e54, 0x12e5, 0x0efa, 0x0ff5, 0x0faa,
+ 0x0653, 0x0609, 0x0d52, 0x0b94, 0x059c, 0x00c7,
+ 0xff1f, 0x0676, 0x0f31, 0x1024, 0x0a9e, 0x01e1,
+ 0xfb38, 0xf51d, 0xeacb, 0xe2be, 0xe19b, 0xe778,
+ 0xf3d4, 0xfd60, 0x0206, 0x0600, 0x02e1, 0xfe5b,
+ 0x0495, 0x0a49, 0x078b, 0x0720, 0x0b64, 0x0dda,
+ 0x0e44, 0x1159, 0x14b2, 0x0f56, 0x05b8, 0x01a0,
+ 0xff07, 0xfc65, 0xfe04, 0x005d, 0xfe05, 0xf4f9,
+ 0xedb9, 0xf245, 0xf657, 0xf1e4, 0xf0fb, 0xf022,
+ 0xec71, 0xf647, 0x07ed, 0x0e0e, 0x0a7a, 0x047d,
+ 0x023f, 0x05f9, 0x04b4, 0xfe07, 0xf977, 0xf350,
+ 0xf6b9, 0x0c9a, 0x152d, 0x0205, 0xf1b4, 0xee0d,
+ 0xef59, 0xfb4f, 0x0630, 0x035e, 0xfd25, 0xeec2,
+ 0xd965, 0xd9e1, 0xeac3, 0xf058, 0xf125, 0xf367,
+ 0xecc0, 0xe274, 0xdeae, 0xe011, 0xe125, 0xe1ae,
+ 0xe6af, 0xeb41, 0xe75b, 0xddde, 0xd384, 0xd2c1,
+ 0xde97, 0xe449, 0xe53d, 0xf07d, 0xf879, 0xf6b5,
+ 0xf5af, 0xf106, 0xe954, 0xe51b, 0xe503, 0xf06a,
+ 0xff18, 0xff80, 0xf99a, 0xf674, 0xf618, 0xfb03,
+ 0xfcf9, 0xfbc8, 0x0055, 0xfdee, 0xef23, 0xe895,
+ 0xf38b, 0x047f, 0x0ed7, 0x1262, 0x1455, 0x121b,
+ 0x0cf4, 0x08ab, 0x0270, 0xff3e, 0x0252, 0x04db,
+ 0x04a1, 0xfedf, 0xf9f6, 0x017a, 0x065f, 0x0265,
+ 0x06ff, 0x0d51, 0x0d39, 0x0e91, 0x0ac1, 0x0395,
+ 0x01b8, 0xff88, 0x0001, 0xffb9, 0xf8b6, 0xfcf7,
+ 0x068a, 0x0160, 0xfa23, 0xf42b, 0xefe6, 0xfb6a,
+ 0x01c7, 0xf7af, 0xf815, 0xfc6b, 0xf577, 0xf308,
+ 0xf84b, 0x003a, 0x0943, 0x0c9e, 0x104d, 0x11b0,
+ 0x0221, 0xf0fb, 0xf083, 0xf90d, 0x01fc, 0x0388,
+ 0xfc6f, 0xf958, 0xfc92, 0xfede, 0xfd84, 0xf8db,
+ 0xf6d2, 0xf819, 0xf63c, 0xf55a, 0xfaec, 0x0234,
+ 0x04f0, 0x0077, 0xfa77, 0xfaeb, 0x0145, 0x0819,
+ 0x0760, 0xfe91, 0xf849, 0xf420, 0xed89, 0xec94,
+ 0xf347, 0xfd28, 0x0679, 0x053c, 0xfd79, 0xfd73,
+ 0xfc1b, 0xf07e, 0xe935, 0xe9c1, 0xe40c, 0xdb42,
+ 0xdf60, 0xec88, 0xf5aa, 0xfbe1, 0xfc1a, 0xef14,
+ 0xe193, 0xe26d, 0xf17d, 0x0515, 0x0c14, 0x06df,
+ 0x0690, 0x0af2, 0x1054, 0x176b, 0x1a05, 0x1d75,
+ 0x1f3e, 0x10aa, 0x05d8, 0x0f18, 0x1436, 0x0d35,
+ 0x03c3, 0xfa05, 0xf978, 0x01f9, 0x0899, 0x0c78,
+ 0x0dce, 0x1078, 0x11b8, 0x0565, 0xfa7a, 0xfd6c,
+ 0xf995, 0xef19, 0xf388, 0x0589, 0x11be, 0x0ae4,
+ 0xff75, 0x0006, 0x00c1, 0x006b, 0x0613, 0x096b,
+ 0x1060, 0x16be, 0x0c5e, 0x0770, 0x0d77, 0x0601,
+ 0x0304, 0x10f2, 0x15f6, 0x0f4b, 0x07a2, 0x020c,
+ 0x013b, 0xff9b, 0x02c1, 0x0f06, 0x132f, 0x12c3,
+ 0x1ad3, 0x203b, 0x1d1c, 0x13ea, 0x0b69, 0x123b,
+ 0x1e06, 0x1c4e, 0x136d, 0x0a32, 0x05c5, 0x0987,
+ 0x09be, 0x0647, 0x075f, 0x0a0a, 0x11c1, 0x187a,
+ 0x0d6e, 0x00d4, 0x0643, 0x0c33, 0x0909, 0x0bba,
+ 0x12a6, 0x1071, 0x0b48, 0x0c85, 0x0bb0, 0x0421,
+ 0xfe47, 0xfc16, 0xfa04, 0xf872, 0xf645, 0xf05e,
+ 0xe98c, 0xed10, 0xff83, 0x119d, 0x1482, 0x0d49,
+ 0x05bf, 0xfe8f, 0xf8d9, 0xf9af, 0xfc1a, 0xf958,
+ 0xf9c0, 0xfb25, 0xf078, 0xe9f9, 0xf609, 0x0066,
+ 0x0398, 0x0cc6, 0x1428, 0x0e75, 0x0110, 0xf932,
+ 0xfed6, 0x0907, 0x0bb5, 0x0698, 0x00d2, 0x03da,
+ 0x0b8c, 0x0c6b, 0x0b17, 0x09b3, 0x02b5, 0xfe22,
+ 0x0101, 0x0304, 0xfec1, 0xfaa0, 0x03bb, 0x1153,
+ 0x111b, 0x118b, 0x1cb5, 0x2083, 0x1b5f, 0x1487,
+ 0x0d79, 0x0e3a, 0x0ebe, 0x05e4, 0x023b, 0x031b,
+ 0xfe46, 0x0042, 0x0cbf, 0x138b, 0x10c7, 0x0d20,
+ 0x08ae, 0xffc8, 0xfce9, 0x0513, 0x0695, 0xfebc,
+ 0x001f, 0x0a99, 0x0f00, 0x09f4, 0x065d, 0x09a1,
+ 0x05fd, 0xf95e, 0xf5ba, 0xf909, 0xf723, 0xf364,
+ 0xf106, 0xf2da, 0xfa24, 0xfe3d, 0xfc19, 0xf3f7,
+ 0xe8bd, 0xe9ba, 0xf391, 0xf201, 0xec20, 0xeef9,
+ 0xf2bd, 0xf488, 0xf4d5, 0xef2d, 0xebd9, 0xf097,
+ 0xf367, 0xf64d, 0x00cd, 0x08e9, 0x0d2a, 0x1789,
+ 0x2029, 0x2106, 0x2068, 0x1893, 0x09f6, 0x03b7,
+ 0x061e, 0x0a73, 0x0ed6, 0x0c9e, 0x0425, 0xff01,
+ 0xfeb1, 0xfb0f, 0xf0ec, 0xed67, 0xf6e9, 0x0029,
+ 0x08ef, 0x144a, 0x1136, 0x00b7, 0xf731, 0xf89c,
+ 0x0076, 0x061e, 0x01d3, 0xfca5, 0xfbb8, 0xfa63,
+ 0xf9ea, 0xf8fa, 0xfaa0, 0x080c, 0x17ed, 0x18b6,
+ 0x08c8, 0xf636, 0xeff2, 0xf217, 0xf3d3, 0xf928,
+ 0xfeb6, 0xffd2, 0x03c4, 0x057f, 0xfd69, 0xf640,
+ 0xf2ed, 0xeb9d, 0xe78c, 0xf0e4, 0xfea2, 0x0344,
+ 0x02c1, 0x05c3, 0x0646, 0xfed5, 0xf848, 0xf87e,
+ 0xf9f3, 0xfb5d, 0x0103, 0x0624, 0x070d, 0x0ac9,
+ 0x0c94, 0x03f1, 0xfdee, 0x0054, 0x0045, 0x0231,
+ 0x0b4e, 0x11cc, 0x1334, 0x1097, 0x0571, 0xf692,
+ 0xf0b1, 0xf855, 0x052c, 0x0d8b, 0x132c, 0x1ac3,
+ 0x1d3c, 0x11ec, 0x0518, 0x0722, 0x0a3b, 0x0118,
+ 0xfbe3, 0xfdae, 0xfc79, 0xff62, 0x03bf, 0x0381,
+ 0x09bf, 0x10af, 0x0cd4, 0x082d, 0x08c2, 0x0dff,
+ 0x124d, 0x0907, 0xfd39, 0xffeb, 0x077d, 0x0a9a,
+ 0x07ff, 0x01e3, 0x03c2, 0x07ac, 0xff31, 0xf5ba,
+ 0xf524, 0xf3ce, 0xef11, 0xee58, 0xf149, 0xeeec,
+ 0xeab3, 0xf103, 0xf94e, 0xf750, 0xf0da, 0xe701,
+ 0xd9f5, 0xd368, 0xd601, 0xe053, 0xe9c4, 0xe3fb,
+ 0xdae9, 0xe22f, 0xeecf, 0xf0c7, 0xeb55, 0xe988,
+ 0xf098, 0xf7c8, 0xf76a, 0xf645, 0xfa18, 0x00f7,
+ 0x0777, 0x0982, 0x057b, 0xfe27, 0xfa52, 0xfc99,
+ 0xfb6e, 0xf364, 0xef02, 0xf02c, 0xf143, 0xf458,
+ 0xfa9b, 0xff52, 0xfe34, 0xf6af, 0xf0e6, 0xf85a,
+ 0x0b5f, 0x1a19, 0x196a, 0x11dd, 0x1226, 0x15e8,
+ 0x118d, 0x0dd4, 0x14c4, 0x1a64, 0x16c0, 0x106b,
+ 0x074a, 0xfe80, 0x01c9, 0x0c4d, 0x12b3, 0x177e,
+ 0x19a3, 0x1494, 0x0fe3, 0x0fe4, 0x0f7a, 0x0ead,
+ 0x0aec, 0xfd31, 0xf15a, 0xf8f9, 0x0700, 0x0699,
+ 0x01a0, 0x0649, 0x09f3, 0x0363, 0xfd9c, 0xffd3,
+ 0x0188, 0x021b, 0x0a54, 0x11e6, 0x0e89, 0x0b97,
+ 0x0d9b, 0x09fd, 0x020b, 0xfc4d, 0xfb65, 0x046e,
+ 0x11dc, 0x15f0, 0x0f83, 0x04e9, 0xf8cb, 0xed35,
+ 0xe89e, 0xf2b9, 0x059e, 0x0ef7, 0x098a, 0x01db,
+ 0xfca1, 0xf22a, 0xe875, 0xee60, 0xfb8d, 0x0042,
+ 0x0038, 0xff9d, 0xfefd, 0x0447, 0x0a38, 0x06b0,
+ 0xfd0c, 0xf662, 0xf980, 0x0138, 0x006c, 0xfabd,
+ 0xf815, 0xf154, 0xe577, 0xdfaf, 0xe698, 0xf663,
+ 0x0448, 0x0b89, 0x0e32, 0x0a8b, 0x01b0, 0xf927,
+ 0xf4b3, 0xf6e3, 0xfabe, 0xfb03, 0xfc99, 0xffbc,
+ 0x012f, 0x03c6, 0x0528, 0x036b, 0x02c0, 0x0130,
+ 0xfe59, 0xff75, 0x0462, 0x0bdc, 0x10fa, 0x0a49,
+ 0xfed5, 0x009f, 0x1042, 0x1d69, 0x1925, 0x05ba,
+ 0xf933, 0xfdad, 0xfffa, 0xf7a8, 0xf4cf, 0xf9e0,
+ 0xfecb, 0x0427, 0x03a5, 0xfd60, 0x0117, 0x09ad,
+ 0x0724, 0xfe62, 0xf751, 0xf459, 0xf6c1, 0xfba4,
+ 0x0552, 0x0ed8, 0x0816, 0xf806, 0xf318, 0xfbd0,
+ 0x0b64, 0x1758, 0x16ff, 0x10c4, 0x0cbd, 0x087d,
+ 0x0156, 0xfd81, 0x02d3, 0x0907, 0x0a92, 0x0d42,
+ 0x0df5, 0x0a17, 0x053d, 0xfcc1, 0xf97f, 0x0228,
+ 0x06d6, 0x06d0, 0x0a88, 0x0a88, 0x0a7f, 0x0b48,
+ 0xfea2, 0xec92, 0xe641, 0xee8b, 0xff04, 0x031b,
+ 0xf4db, 0xe753, 0xdf89, 0xdce6, 0xe386, 0xe890,
+ 0xe789, 0xeb32, 0xf507, 0xfc73, 0xfa97, 0xf6fc,
+ 0xfb0f, 0xfb49, 0xf37d, 0xf088, 0xf044, 0xef65,
+ 0xf6f7, 0x042c, 0x07b9, 0xfa1b, 0xe8f5, 0xe4cb,
+ 0xe756, 0xec9e, 0xfb94, 0x0951, 0x0bb7, 0x0ac9,
+ 0x0bcd, 0x0d81, 0x0a93, 0x0291, 0xff29, 0xff91,
+ 0xff73, 0xffe8, 0xfba4, 0xfc7e, 0x0bab, 0x0f7b,
+ 0x03e4, 0x04ad, 0x0bde, 0x0d9c, 0x1799, 0x238b,
+ 0x207a, 0x15ba, 0x0cd3, 0x0523, 0x0240, 0x06aa,
+ 0x0952, 0x03be, 0xfefe, 0x00d6, 0x0086, 0xf953,
+ 0xf108, 0xee40, 0xf268, 0xf83c, 0xfa87, 0xf7e9,
+ 0xf2c9, 0xf47a, 0xfe1a, 0xffac, 0xf5b0, 0xf232,
+ 0xfa7b, 0x0254, 0x07b9, 0x0bd6, 0x036f, 0xf11e,
+ 0xea51, 0xf11a, 0xf718, 0xfb03, 0xff82, 0x003a,
+ 0xfd51, 0xfd85, 0x03b3, 0x0958, 0x07f7, 0x010a,
+ 0xf9ec, 0xf92d, 0xfe45, 0x0156, 0x0430, 0x09c4,
+ 0x0c9b, 0x0ddb, 0x0cc0, 0x0532, 0x004b, 0x0107,
+ 0x017f, 0x03bb, 0x00ce, 0xf42c, 0xee4b, 0xf56b,
+ 0x00fc, 0x09e6, 0x07c0, 0xff03, 0xfaa1, 0xf802,
+ 0xf766, 0xf87c, 0xf13f, 0xe71a, 0xe6ef, 0xeb85,
+ 0xe937, 0xdfe8, 0xdcc9, 0xe6b9, 0xf24f, 0xf87a,
+ 0xfb74, 0xfc4e, 0x013c, 0x084f, 0x02e6, 0xf237,
+ 0xe564, 0xe2af, 0xe5e5, 0xea1b, 0xf275, 0xfd52,
+ 0xfd15, 0xf3ce, 0xefa3, 0xef32, 0xf176, 0xfb17,
+ 0x0107, 0xfd53, 0xfeef, 0x06ef, 0x0747, 0x0553,
+ 0x07ed, 0x0182, 0xf3c9, 0xf1fb, 0xf91a, 0xff17,
+ 0x08b8, 0x1081, 0x0a6c, 0xffe7, 0xfdda, 0xfab2,
+ 0xefb2, 0xefa4, 0xffe2, 0x07c5, 0x023a, 0x005a,
+ 0x0355, 0x0676, 0x07a0, 0x0419, 0x04f3, 0x0c6c,
+ 0x1021, 0x139e, 0x18c8, 0x1712, 0x1150, 0x0bef,
+ 0x0824, 0x0710, 0x01d4, 0xff18, 0x0af8, 0x1282,
+ 0x06bd, 0xf91b, 0xf473, 0xf325, 0xf31c, 0xf7bd,
+ 0x0145, 0x04d7, 0xfde7, 0xfaa0, 0x006f, 0x0470,
+ 0x0127, 0xfbab, 0xfc36, 0x0190, 0x02ed, 0x03ef,
+ 0x0d28, 0x1832, 0x179f, 0x0a55, 0xffcc, 0xff25,
+ 0xfd56, 0xfc4a, 0x0312, 0x03dc, 0xfd49, 0xfefe,
+ 0x0275, 0x0016, 0x037e, 0x0bda, 0x1050, 0x147c,
+ 0x1827, 0x179f, 0x18ed, 0x1d00, 0x1b08, 0x1097,
+ 0x0326, 0xfadd, 0xfad7, 0xf9ac, 0xf55b, 0xf8f5,
+ 0xfd3b, 0xf69b, 0xf418, 0xfc90, 0x01e0, 0x039a,
+ 0x03ce, 0xfd2e, 0xf8d1, 0xfa75, 0xf435, 0xe731,
+ 0xe118, 0xe1ff, 0xe025, 0xd59e, 0xc816, 0xc365,
+ 0xc933, 0xd293, 0xdc9d, 0xe7bd, 0xf1be, 0xf755,
+ 0xf9b4, 0xfc7e, 0x013f, 0x079a, 0x0946, 0x01ce,
+ 0xfc11, 0xfd8a, 0xfa52, 0xf1a9, 0xebef, 0xe78e,
+ 0xe9f9, 0xf8c5, 0x0318, 0xffb7, 0xfbeb, 0xfabd,
+ 0xf5f7, 0xf0c9, 0xedb6, 0xee58, 0xf7bf, 0x051a,
+ 0x0d63, 0x11f2, 0x15d3, 0x17c6, 0x164c, 0x0ffe,
+ 0x07f9, 0x036c, 0x0048, 0xfd1d, 0x00a1, 0x0b5a,
+ 0x0f16, 0x031f, 0xf4ef, 0xf1e0, 0xf432, 0xf651,
+ 0xf7c5, 0xf577, 0xf769, 0x00a8, 0xfe14, 0xf169,
+ 0xf265, 0xfa35, 0xf86a, 0xf850, 0x00bc, 0x0614,
+ 0x04a4, 0xff8c, 0xf611, 0xeeb7, 0xf4ed, 0x004e,
+ 0xfd54, 0xf268, 0xf334, 0xfaf1, 0xfaca, 0xf55b,
+ 0xf4ba, 0xf83e, 0xf82f, 0xf532, 0xf40d, 0xf3bb,
+ 0xf849, 0x0370, 0x07fe, 0x035f, 0x0017, 0xfc5b,
+ 0xf566, 0xefd4, 0xed09, 0xf158, 0xfbf2, 0xff55,
+ 0xf896, 0xf047, 0xe90d, 0xe64c, 0xeceb, 0xf87f,
+ 0x00a1, 0x013b, 0xfb32, 0xf699, 0xfbf3, 0x057c,
+ 0x07fe, 0x0477, 0xfd73, 0xf39a, 0xf224, 0xfbf4,
+ 0x0243, 0xfee0, 0xf665, 0xee87, 0xecca, 0xeabd,
+ 0xe3fb, 0xe67a, 0xf22a, 0xf52c, 0xf4b5, 0x0167,
+ 0x1026, 0x0ef7, 0x09e7, 0x1274, 0x1bfa, 0x139c,
+ 0xfe67, 0xecd1, 0xe852, 0xec94, 0xee2a, 0xebdf,
+ 0xee26, 0xf886, 0x0414, 0x09ee, 0x0cdf, 0x0a51,
+ 0xfd88, 0xf459, 0xf46b, 0xf494, 0xfc9a, 0x0b12,
+ 0x0e40, 0x0bbd, 0x0ac7, 0x065b, 0x039a, 0x02fc,
+ 0x0445, 0x0ad0, 0x0a2d, 0x03bb, 0x0499, 0x012a,
+ 0xf81b, 0xf7f9, 0xf8fd, 0xf2f4, 0xef26, 0xf85e,
+ 0x0962, 0x0c3f, 0x0542, 0x08ff, 0x0a3d, 0x00c5,
+ 0xfb8b, 0xfd18, 0x071e, 0x0f8e, 0x03e3, 0xf5b4,
+ 0xf30c, 0xf2fc, 0xfe4b, 0x1191, 0x1c32, 0x1ff5,
+ 0x1715, 0x05ee, 0x02af, 0x0786, 0x0bb0, 0x116c,
+ 0x0e80, 0x0951, 0x0c57, 0x0bb9, 0x08a4, 0x094a,
+ 0x0503, 0xfb82, 0xf237, 0xedc4, 0xf1e7, 0xf952,
+ 0x0066, 0x0323, 0xfb6c, 0xf279, 0xf02f, 0xec97,
+ 0xe483, 0xe3b0, 0xf56d, 0x087c, 0x0483, 0xf7cd,
+ 0xf249, 0xec55, 0xebe9, 0xf2e1, 0xf43e, 0xf470,
+ 0xf89a, 0xfdb7, 0x0733, 0x121a, 0x1890, 0x16d3,
+ 0x0b0c, 0x030f, 0x05c7, 0x06cf, 0x032f, 0xfe8c,
+ 0xfae8, 0xfd01, 0x03b5, 0x0c0f, 0x1090, 0x0d93,
+ 0x0de2, 0x0f8a, 0x09d4, 0x0c33, 0x17af, 0x1ab9,
+ 0x1769, 0x0cff, 0xf8b7, 0xeb92, 0xee88, 0xfc6a,
+ 0x0b80, 0x1178, 0x164b, 0x2079, 0x249a, 0x2043,
+ 0x177e, 0x100b, 0x13a2, 0x16e0, 0x0df0, 0x0983,
+ 0x0e7e, 0x0d64, 0x09a8, 0x0d73, 0x0f6a, 0x0aa5,
+ 0x0adc, 0x0fd0, 0x10ca, 0x109d, 0x0cb5, 0x03b9,
+ 0x0169, 0x01e7, 0x0137, 0x0ab1, 0x12de, 0x0f69,
+ 0x0e7f, 0x08c6, 0xf682, 0xf06c, 0xfd2c, 0x0625,
+ 0x009b, 0xf6dd, 0xf5ad, 0xf82d, 0xf2ae, 0xe90a,
+ 0xe7b9, 0xf205, 0xf8d2, 0xf5c0, 0xfcab, 0x084d,
+ 0x034f, 0x01d0, 0x0ce8, 0x0a86, 0xff4b, 0xfc7f,
+ 0xff2f, 0x0644, 0x09a0, 0x05d3, 0x0c2a, 0x18da,
+ 0x183f, 0x0f41, 0x0a40, 0x06ba, 0xfb7f, 0xebfd,
+ 0xe964, 0xf129, 0xf129, 0xed4a, 0xed7c, 0xeb74,
+ 0xed30, 0xfade, 0x071b, 0x0afa, 0x1263, 0x1bfb,
+ 0x1ab3, 0x1305, 0x1284, 0x197c, 0x1e8f, 0x1c3b,
+ 0x1624, 0x12e9, 0x1598, 0x1c45, 0x1ee8, 0x1a84,
+ 0x15db, 0x104a, 0x06cc, 0x0094, 0xfe06, 0xf73b,
+ 0xf04b, 0xf716, 0x0b2f, 0x14c9, 0x0ad9, 0x04ad,
+ 0x07de, 0x04e1, 0x014d, 0x0432, 0x04e9, 0x01c5,
+ 0xfd6a, 0xf9ce, 0xf9c1, 0xf793, 0xed9c, 0xe1f8,
+ 0xdf80, 0xe730, 0xeeb4, 0xf5b8, 0x007d, 0x0344,
+ 0xf964, 0xef96, 0xef8b, 0xfc3b, 0x0d61, 0x1771,
+ 0x1953, 0x1442, 0x1321, 0x1b30, 0x17eb, 0x0cf7,
+ 0x10e4, 0x17ac, 0x189b, 0x19b0, 0x1210, 0x07a9,
+ 0x02e9, 0xfe30, 0x0776, 0x1c3e, 0x1e78, 0x1349,
+ 0x0d73, 0x074d, 0xff52, 0xfd6c, 0x02a8, 0x098e,
+ 0x1279, 0x1fee, 0x2238, 0x144d, 0x0af2, 0x0725,
+ 0x0349, 0x05e1, 0x04ff, 0x02e9, 0x0ca8, 0x0e93,
+ 0x0427, 0x0460, 0x0b0b, 0x100c, 0x1723, 0x17ad,
+ 0x12a5, 0x129e, 0x11e4, 0x0d75, 0x1125, 0x1ef4,
+ 0x26df, 0x20f1, 0x1741, 0x0f07, 0x067e, 0xff43,
+ 0xf8c2, 0xf309, 0xee70, 0xecb1, 0xf615, 0x0333,
+ 0x0417, 0xfef2, 0xfa86, 0xf554, 0xf282, 0xec92,
+ 0xe4a5, 0xe56c, 0xe8eb, 0xec66, 0xef5e, 0xe70a,
+ 0xe0a1, 0xe8b8, 0xef4e, 0xf3fe, 0xf87d, 0xef15,
+ 0xe500, 0xea4d, 0xf296, 0xf573, 0xf1a0, 0xe898,
+ 0xe720, 0xef08, 0xf4bf, 0xf6b4, 0xfb85, 0x0444,
+ 0x098a, 0x07ac, 0x04bf, 0x00f6, 0xf797, 0xefcf,
+ 0xf5c0, 0x0706, 0x11db, 0x0a60, 0xf9d7, 0xf182,
+ 0xf6cd, 0x016e, 0x0a2f, 0x10cd, 0x1154, 0x0c27,
+ 0x0e25, 0x18c6, 0x1eb9, 0x1b87, 0x15b7, 0x13fe,
+ 0x1374, 0x0c37, 0x034d, 0xffed, 0xfc09, 0xf3e2,
+ 0xef1c, 0xf432, 0xfa0d, 0xf6dc, 0xf7ad, 0xfe79,
+ 0xf7ee, 0xf230, 0xffcc, 0x076a, 0xffb2, 0xfbd9,
+ 0xf906, 0xf1fa, 0xee6c, 0xeeec, 0xf286, 0xf60d,
+ 0xf613, 0xf921, 0xfecc, 0xfef9, 0xfa08, 0xf497,
+ 0xf43b, 0xf82c, 0xf7a7, 0xf4b7, 0xf575, 0xf76b,
+ 0xfa34, 0xfd09, 0x0096, 0x088d, 0x0924, 0xfd1f,
+ 0xf9ac, 0x044b, 0x0f5a, 0x173c, 0x13fd, 0x03e7,
+ 0xfc4e, 0x012f, 0x0191, 0xfaf9, 0xf369, 0xefde,
+ 0xf1a2, 0xf05c, 0xedd8, 0xf49d, 0x0038, 0x07f9,
+ 0x07d6, 0xff4e, 0xf7a8, 0xf478, 0xf13f, 0xf13b,
+ 0xf61a, 0xfbcf, 0xfb04, 0xf0e3, 0xf022, 0xfc44,
+ 0xfcc3, 0xf8cd, 0xff4d, 0xfff0, 0xffd8, 0x0b6b,
+ 0x1154, 0x0dc0, 0x0835, 0x0139, 0x0050, 0x00ec,
+ 0xfe88, 0x0348, 0x0891, 0x0a2d, 0x0d4e, 0x07b3,
+ 0x017f, 0x0827, 0x0b2d, 0x0a10, 0x0f9e, 0x1217,
+ 0x11d1, 0x129b, 0x101a, 0x102c, 0x1211, 0x1104,
+ 0x0f19, 0x06d9, 0xfbf8, 0xf72b, 0xf2aa, 0xf225,
+ 0xfb07, 0x050f, 0x0d53, 0x0d36, 0x019c, 0xfa6e,
+ 0xfabf, 0xfb3a, 0xfd69, 0xfd21, 0xfac6, 0xfc73,
+ 0xfd09, 0xfc55, 0xfd9b, 0xfd70, 0xfe70, 0x00b9,
+ 0x007b, 0x027c, 0x07a1, 0x09b6, 0x06f7, 0x064a,
+ 0x101a, 0x1a5a, 0x1711, 0x0eb3, 0x0a9a, 0x0a23,
+ 0x0b16, 0x066e, 0x01ca, 0x07f9, 0x0d48, 0x0a9b,
+ 0x0972, 0x0ada, 0x0cd0, 0x0c49, 0x051c, 0x016b,
+ 0x0870, 0x0fa4, 0x0e4a, 0x07f6, 0x068e, 0x0b77,
+ 0x0f30, 0x109b, 0x0caa, 0x01b8, 0xfd2b, 0xff69,
+ 0xfb42, 0xf632, 0xf6d5, 0xf6a9, 0xf361, 0xec48,
+ 0xe376, 0xe1cc, 0xe6c4, 0xe8f1, 0xe659, 0xe41b,
+ 0xe3be, 0xe5e6, 0xefb2, 0xf962, 0xf5be, 0xf22a,
+ 0xf9e8, 0xfdf9, 0xfdc4, 0x03a7, 0x08b2, 0x0721,
+ 0xffc6, 0xf74d, 0xf6a6, 0xf815, 0xf7ed, 0x0175,
+ 0x0df1, 0x10d4, 0x0f55, 0x0c0f, 0x0954, 0x0b5d,
+ 0x0c53, 0x0aa3, 0x05dc, 0xfa18, 0xf0d7, 0xf055,
+ 0xf3e7, 0xfb08, 0xfc45, 0xf2e7, 0xf187, 0xfc44,
+ 0x049e, 0x0ade, 0x13e2, 0x1a55, 0x1885, 0x1132,
+ 0x0cff, 0x094c, 0xfc97, 0xf01e, 0xf3aa, 0xffb0,
+ 0x0177, 0xfc65, 0xffd6, 0x0368, 0xfb51, 0xf59c,
+ 0xf97b, 0xfe22, 0x030a, 0x0658, 0x0655, 0x0634,
+ 0x0074, 0xf98b, 0xfc66, 0xff14, 0xfeb3, 0x057f,
+ 0x0cd9, 0x0ce7, 0x0776, 0x0277, 0x0766, 0x0ba5,
+ 0x010c, 0xf813, 0xfb22, 0xfd4e, 0xf9bf, 0xf4da,
+ 0xf41e, 0xf65e, 0xf25d, 0xec05, 0xea8c, 0xea9b,
+ 0xee48, 0xf37e, 0xf2b9, 0xf0bc, 0xefb6, 0xef9a,
+ 0xf594, 0xfa67, 0xfa15, 0xfdbc, 0x01d0, 0xff46,
+ 0xfa7a, 0xf93e, 0xfdd2, 0xff2d, 0xf535, 0xebe4,
+ 0xee6f, 0xf979, 0x0350, 0x031a, 0xff79, 0xff8d,
+ 0xf98f, 0xef51, 0xed7e, 0xf325, 0xfb16, 0xfd2f,
+ 0xf4ba, 0xee93, 0xef85, 0xef2d, 0xef83, 0xf4f5,
+ 0x00c6, 0x0e8b, 0x1003, 0x06d7, 0x0090, 0xfc9f,
+ 0xfc47, 0x0117, 0x0373, 0x08cd, 0x1316, 0x132b,
+ 0x0b48, 0x06f6, 0x0575, 0x0805, 0x0c5d, 0x0d36,
+ 0x0ec9, 0x0cc2, 0xff6e, 0xf07a, 0xea07, 0xed48,
+ 0xf5be, 0xf8ed, 0xf6d2, 0xf6a5, 0xf7cf, 0xfc5d,
+ 0x02bb, 0xffd5, 0xf7a2, 0xf713, 0xfac3, 0xf881,
+ 0xf2a8, 0xf612, 0x027e, 0x076f, 0x03ac, 0x0273,
+ 0x017b, 0xfbbf, 0xf58d, 0xf7cf, 0x0568, 0x1102,
+ 0x127e, 0x0fca, 0x07fa, 0x00fd, 0x04c7, 0x07d6,
+ 0x0666, 0x08bb, 0x07ce, 0x06c6, 0x0f54, 0x173d,
+ 0x1a1c, 0x185f, 0x0c59, 0xffa1, 0xfa69, 0xf902,
+ 0xfd68, 0x01f0, 0xffab, 0xfe31, 0xff64, 0x0039,
+ 0x0138, 0x0182, 0x05c9, 0x0c3c, 0x0b1c, 0x078e,
+ 0x054d, 0xff87, 0xfbc9, 0xfaf2, 0xf9a5, 0xffee,
+ 0x0b24, 0x0dd9, 0x0a3c, 0x0834, 0x0422, 0xfc25,
+ 0xfa3a, 0xfee8, 0xfcfd, 0xf6e2, 0xf58b, 0xf453,
+ 0xf3ff, 0xf541, 0xf278, 0xf477, 0xfbd1, 0xf9eb,
+ 0xf542, 0xf62c, 0xf305, 0xec46, 0xeb7d, 0xf45b,
+ 0xffcd, 0xfba9, 0xe81d, 0xda89, 0xd7c4, 0xd89b,
+ 0xddeb, 0xe573, 0xe7ff, 0xe337, 0xd872, 0xcdfb,
+ 0xd0c2, 0xe382, 0xf58c, 0xfd8b, 0x01b1, 0x00d4,
+ 0xfc20, 0xfd90, 0x01a7, 0x0407, 0x09bb, 0x0d04,
+ 0x0868, 0x034b, 0x02d5, 0x05b8, 0x0580, 0xfe88,
+ 0xfa12, 0xff77, 0x08c9, 0x0caa, 0x0c4e, 0x118b,
+ 0x1502, 0x0a6a, 0x02a4, 0x080a, 0x09c6, 0x0807,
+ 0x0cb0, 0x113a, 0x12bd, 0x10fb, 0x093f, 0x03d2,
+ 0x02c5, 0xfc90, 0xf802, 0x01b2, 0x0f13, 0x1230,
+ 0x115c, 0x1230, 0x0fad, 0x0b84, 0x091c, 0x0813,
+ 0x0a85, 0x0bff, 0x0884, 0x052c, 0xff6c, 0xf746,
+ 0xf6b8, 0xfa07, 0xfaba, 0xfa8c, 0xf39e, 0xe702,
+ 0xe0c4, 0xe261, 0xe7dd, 0xed16, 0xeff8, 0xf63d,
+ 0xfba2, 0xf594, 0xebf9, 0xeb0b, 0xf25a, 0xfbba,
+ 0xff89, 0xfc44, 0xf85e, 0xf6ce, 0xf70b, 0xfccd,
+ 0x080b, 0x0a5c, 0xfc70, 0xefe8, 0xef0d, 0xf1a1,
+ 0xf938, 0x0575, 0x08bd, 0x0265, 0xfc5f, 0xfbd0,
+ 0x0246, 0x0916, 0x09f9, 0x09d3, 0x0b0a, 0x08ab,
+ 0x0156, 0xf97b, 0xf3e7, 0xf091, 0xf2c8, 0xf83e,
+ 0xf694, 0xefb6, 0xec99, 0xeeb5, 0xf50e, 0xf6fa,
+ 0xef8f, 0xeb7d, 0xec81, 0xea11, 0xe905, 0xe9c5,
+ 0xe96e, 0xeee8, 0xf6eb, 0xf8f0, 0xf71c, 0xf3e9,
+ 0xf121, 0xf141, 0xf5bf, 0x001d, 0x0928, 0x093e,
+ 0x04d8, 0xff63, 0xf85b, 0xf1c8, 0xee20, 0xef2d,
+ 0xef56, 0xeb9d, 0xee02, 0xf3ca, 0xf2ad, 0xf4b1,
+ 0x00af, 0x0ee6, 0x1a91, 0x1c62, 0x157a, 0x1509,
+ 0x1847, 0x145c, 0x11ba, 0x142c, 0x127c, 0x0c65,
+ 0x0510, 0xfcf4, 0xf979, 0xfca0, 0x0411, 0x10f2,
+ 0x1bde, 0x185e, 0x0944, 0xf7dc, 0xeda7, 0xf783,
+ 0x0d41, 0x162b, 0x1024, 0x0777, 0xffbb, 0xfd1f,
+ 0x035e, 0x0bd4, 0x0e20, 0x0ac1, 0x0586, 0xfdfe,
+ 0xf99f, 0x00a8, 0x08c1, 0x051b, 0xfd15, 0xfa6f,
+ 0xfce2, 0x0013, 0x0336, 0x08de, 0x0975, 0x024d,
+ 0xff99, 0xfb58, 0xf073, 0xf3a6, 0x002a, 0xfef4,
+ 0xf781, 0xf276, 0xee05, 0xf0ad, 0xf54c, 0xf29e,
+ 0xf07a, 0xf5bd, 0xfcd0, 0xfc35, 0xf3f9, 0xedd1,
+ 0xedd0, 0xf4e6, 0xffdc, 0x0494, 0x03ec, 0x00cf,
+ 0xfab9, 0xfac0, 0xfa8e, 0xf025, 0xece5, 0xf11d,
+ 0xee2b, 0xef64, 0xf315, 0xeb3b, 0xe75c, 0xf3f8,
+ 0x0404, 0x07e9, 0xffd7, 0xfc3a, 0xfceb, 0xf6d5,
+ 0xf45f, 0xf61c, 0xf2dd, 0xf70f, 0x025e, 0x066a,
+ 0x0494, 0xfeec, 0xfbea, 0x00c9, 0x03df, 0x0b8b,
+ 0x1872, 0x12c0, 0x048b, 0x0322, 0x00d2, 0xfbb3,
+ 0xfb56, 0xf5f8, 0xf26f, 0xfae8, 0x0295, 0x044f,
+ 0x06ed, 0x0bc7, 0x1057, 0x0f79, 0x0af1, 0x0aa3,
+ 0x0b50, 0x082a, 0x0688, 0x06b4, 0x02e3, 0xfdfd,
+ 0xfdf4, 0x018e, 0x0710, 0x0c06, 0x09ec, 0x02f6,
+ 0xfed5, 0xfe2e, 0x02f2, 0x09ab, 0x0673, 0xffb5,
+ 0x002a, 0xfec6, 0xfa93, 0xfca3, 0x01dc, 0x060b,
+ 0x0442, 0xf9af, 0xf488, 0xf948, 0xfa26, 0xf7c6,
+ 0xfa0d, 0xfe64, 0x0019, 0xfc69, 0xf7b9, 0xf715,
+ 0xf73b, 0xfc12, 0x0647, 0x06dd, 0xfe5e, 0xfa5c,
+ 0xfaef, 0xfb00, 0xf53b, 0xecbf, 0xed73, 0xee3c,
+ 0xe770, 0xe9b7, 0xf1fe, 0xf400, 0xf62f, 0xf362,
+ 0xedff, 0xf751, 0xfed1, 0xf836, 0xf99e, 0xffdd,
+ 0xf7c7, 0xe93f, 0xe724, 0xfd48, 0x1a75, 0x1bc3,
+ 0x06c4, 0xfa63, 0xfd3d, 0x05b9, 0x094d, 0x07b1,
+ 0x08ad, 0x070c, 0x026d, 0x05af, 0x0b0a, 0x0db7,
+ 0x1553, 0x1c6c, 0x19ab, 0x0ccf, 0xfb92, 0xf5b2,
+ 0xffca, 0x0827, 0x07cc, 0x09db, 0x1084, 0x12e0,
+ 0x113c, 0x1377, 0x17ba, 0x192a, 0x179e, 0x1000,
+ 0x0690, 0x0522, 0x06b2, 0x04ea, 0x0442, 0x0478,
+ 0xffd7, 0xf563, 0xecec, 0xede3, 0xf50d, 0x0096,
+ 0x0bc2, 0x09f6, 0x03fb, 0x0772, 0x0ae9, 0x0e81,
+ 0x1724, 0x1955, 0x1541, 0x116d, 0x0eb9, 0x107d,
+ 0x0ade, 0xfcde, 0x00c4, 0x1076, 0x1237, 0x0ae2,
+ 0x039e, 0x007c, 0x053c, 0x0902, 0x0a03, 0x0b59,
+ 0x0a20, 0x0c9c, 0x0ec7, 0x05dc, 0xfe3e, 0xff51,
+ 0x048f, 0x0f1a, 0x14ea, 0x14fa, 0x1e2b, 0x23f2,
+ 0x1638, 0x0524, 0x0100, 0x08bd, 0x117f, 0x0dc1,
+ 0xfe9e, 0xf3d5, 0xf83c, 0x021a, 0xffd3, 0xf81f,
+ 0xfbec, 0x04f4, 0x069b, 0x01e5, 0xfd4d, 0xfb8f,
+ 0xf98b, 0xf7f3, 0xfa0c, 0xfcde, 0x0113, 0x06c7,
+ 0x0767, 0x04fd, 0x02b3, 0xfe4c, 0xfb46, 0xf975,
+ 0xf809, 0xfc26, 0xffb9, 0xfe7f, 0x0163, 0x0685,
+ 0x05d4, 0x00b0, 0xfbc3, 0xf960, 0xf3c0, 0xe87f,
+ 0xe1c5, 0xe0a3, 0xe1bb, 0xea8f, 0xf557, 0xf703,
+ 0xf347, 0xf134, 0xf156, 0xf092, 0xf0a6, 0xf654,
+ 0xfb27, 0xfbf8, 0x0098, 0x04d4, 0x022a, 0xfd26,
+ 0xf9d0, 0xfe7c, 0x08d5, 0x0982, 0x0201, 0xfe59,
+ 0x00ac, 0x07de, 0x0b2e, 0x055f, 0x0270, 0x0679,
+ 0x0bdb, 0x12b2, 0x152d, 0x0d7c, 0x04ea, 0x0542,
+ 0x092a, 0x08e3, 0x0d4c, 0x1ac9, 0x21a0, 0x2202,
+ 0x2753, 0x2796, 0x1f71, 0x18f0, 0x1325, 0x1230,
+ 0x18b8, 0x19df, 0x14ee, 0x0fba, 0x05b3, 0xf978,
+ 0xf221, 0xf315, 0xfdde, 0x0803, 0x0757, 0x030b,
+ 0x02c5, 0x041e, 0x04a8, 0x04d3, 0x0218, 0xfa43,
+ 0xf467, 0xf55e, 0xf730, 0xf91a, 0xfe7f, 0x040f,
+ 0x05fd, 0x0429, 0x0463, 0x07e7, 0x032c, 0xfa46,
+ 0xfc49, 0x018c, 0x02f8, 0x05e0, 0x0508, 0x0078,
+ 0xff33, 0xff02, 0x0360, 0x0c2e, 0x0bf1, 0x0281,
+ 0xfa5e, 0xf931, 0xffda, 0x05b2, 0x06dd, 0x09ef,
+ 0x0bb6, 0x05e7, 0xfba9, 0xf5f3, 0xfd1d, 0x06b3,
+ 0x0467, 0x031f, 0x0bee, 0x0ea8, 0x050b, 0xfb6e,
+ 0xfc0e, 0x0490, 0x0a85, 0x0b4d, 0x088a, 0x0269,
+ 0x018e, 0x0650, 0x04ac, 0x0168, 0x0476, 0x0574,
+ 0x00e3, 0xf9f3, 0xf508, 0xfa58, 0x0299, 0x0017,
+ 0xf8b9, 0xf274, 0xee35, 0xf644, 0x04ce, 0x06be,
+ 0x00e0, 0xfefe, 0xfe8c, 0xfee3, 0xff9d, 0x0044,
+ 0x049a, 0x0471, 0xfd46, 0xfef0, 0x029f, 0xfc82,
+ 0x0337, 0x1776, 0x1834, 0x09cb, 0x03f3, 0x0218,
+ 0x0136, 0x07e4, 0x0f4c, 0x10ad, 0x0e30, 0x092e,
+ 0x02d4, 0xfcf8, 0xfa8e, 0xffcc, 0x097d, 0x0e9e,
+ 0x0eba, 0x0efd, 0x0b2b, 0xff75, 0xf6f8, 0xf819,
+ 0xf9e9, 0xf8ea, 0xf5b9, 0xec63, 0xe476, 0xeafc,
+ 0xfbb4, 0x0771, 0x063a, 0xfebf, 0xfa23, 0xf475,
+ 0xf0d5, 0xfe09, 0x0f7a, 0x0d83, 0x037e, 0x0199,
+ 0x011c, 0x00bc, 0x031a, 0x02f0, 0x036f, 0x0541,
+ 0xfdf5, 0xf18f, 0xebb6, 0xecd8, 0xf4c4, 0xfcb1,
+ 0xfb6c, 0xfe7e, 0x0915, 0x0139, 0xee08, 0xf09a,
+ 0xfd86, 0xfc06, 0xf759, 0xf9ef, 0xfd24, 0xfdec,
+ 0xf976, 0xf344, 0xf637, 0xfd5c, 0xffac, 0x02bf,
+ 0x061f, 0x021d, 0xfcd8, 0xfe46, 0xfef0, 0xf7d7,
+ 0xf3c0, 0xfc6a, 0x0514, 0x034f, 0x030c, 0x099d,
+ 0x0cec, 0x0c7e, 0x0d82, 0x0c8d, 0x0709, 0x0292,
+ 0x03c8, 0x0686, 0x081e, 0x0bff, 0x0cb2, 0x0529,
+ 0x00e8, 0x045f, 0x0535, 0x016c, 0xfce3, 0xf969,
+ 0xf947, 0xfa43, 0xfaeb, 0xfd9a, 0x0059, 0x016d,
+ 0x0099, 0xfebf, 0x0293, 0x0805, 0x0142, 0xf79e,
+ 0x003f, 0x157e, 0x2141, 0x1efd, 0x1a91, 0x17db,
+ 0x13ed, 0x1291, 0x1228, 0x0b26, 0x02b2, 0x012e,
+ 0x0465, 0x0527, 0xff71, 0xfb24, 0xfed6, 0xfef1,
+ 0xf425, 0xe979, 0xec1e, 0xfd5e, 0x0a9c, 0x06a1,
+ 0x0181, 0x028e, 0xfcdf, 0xf5c8, 0xf8de, 0xfe1f,
+ 0xfceb, 0xfabd, 0x011d, 0x0c15, 0x0e29, 0x07f5,
+ 0x01c5, 0xfc99, 0xf788, 0xeefb, 0xe60c, 0xe89b,
+ 0xf16b, 0xf6ce, 0xfda1, 0xfd76, 0xea89, 0xd53c,
+ 0xce5c, 0xd2d9, 0xde7a, 0xed9d, 0xf9d2, 0x01fd,
+ 0x0709, 0x06d6, 0x0559, 0x0980, 0x0ba0, 0x039b,
+ 0xfec5, 0x0749, 0x1222, 0x14b2, 0x0f93, 0x0a73,
+ 0x0966, 0x0453, 0xfa48, 0xf482, 0xf0d8, 0xee18,
+ 0xf0dc, 0xef4d, 0xe538, 0xe354, 0xed9b, 0xf342,
+ 0xee64, 0xeccd, 0xf835, 0x07bd, 0x0f99, 0x10b5,
+ 0x11d9, 0x12d6, 0x0be9, 0xfc0b, 0xed80, 0xe749,
+ 0xe957, 0xf01d, 0xf6a3, 0x0057, 0x0dd3, 0x0f8d,
+ 0x020b, 0xf623, 0xf1c3, 0xf171, 0xf6f6, 0xfbf3,
+ 0xf47b, 0xe75c, 0xe613, 0xee64, 0xf09a, 0xeb4d,
+ 0xe764, 0xe9a1, 0xf2ae, 0xfd3f, 0x0316, 0x0579,
+ 0x082c, 0x0c9e, 0x10b6, 0x14a3, 0x1eba, 0x29ab,
+ 0x29ab, 0x2487, 0x1ece, 0x13dd, 0x0b9b, 0x0932,
+ 0x036e, 0xfd62, 0xfc1a, 0xf99e, 0xf167, 0xe730,
+ 0xe894, 0xf8fb, 0x0483, 0x030e, 0x019a, 0x0434,
+ 0x06c0, 0x08d7, 0x0bf8, 0x0fa9, 0x0e66, 0x0b09,
+ 0x0de4, 0x0e91, 0x0a50, 0x1118, 0x1f97, 0x251e,
+ 0x2219, 0x1884, 0x09d6, 0x03e5, 0x0825, 0x0586,
+ 0xfbfb, 0xfc3b, 0x0427, 0x03d2, 0xfb2f, 0xf2c3,
+ 0xee6a, 0xf33a, 0xfc46, 0xfb09, 0xf3cb, 0xf311,
+ 0xf354, 0xf06c, 0xf374, 0xfde4, 0x064a, 0x054a,
+ 0xfea1, 0xff5f, 0x0969, 0x1004, 0x0fac, 0x0d17,
+ 0x0722, 0xffc2, 0xfb50, 0xf59e, 0xec0c, 0xe579,
+ 0xe73d, 0xec6e, 0xeeb6, 0xf25b, 0xf77e, 0xf214,
+ 0xe5a7, 0xdf28, 0xd9d3, 0xd65a, 0xdd72, 0xe370,
+ 0xe12a, 0xe16e, 0xe455, 0xe66c, 0xe9f7, 0xed86,
+ 0xf4ea, 0x004d, 0x04f1, 0x04a3, 0x0721, 0x09ad,
+ 0x0a6c, 0x078e, 0x0058, 0xfbf1, 0xfa79, 0xf876,
+ 0xfb96, 0x01a4, 0x003f, 0xf9e4, 0xf77b, 0xf860,
+ 0xf623, 0xf050, 0xeee2, 0xf781, 0x0475, 0x0b7a,
+ 0x0b6a, 0x0a38, 0x097a, 0x0b53, 0x11d4, 0x13de,
+ 0x0ec1, 0x0cde, 0x0ab6, 0x01bb, 0xfd90, 0x0547,
+ 0x124d, 0x1a5f, 0x12c6, 0x03c0, 0x036d, 0x10f5,
+ 0x1b96, 0x1ef2, 0x1e16, 0x18df, 0x0e14, 0x019e,
+ 0xfbbf, 0xfdd9, 0x037d, 0x08fb, 0x0925, 0x0320,
+ 0xf9f2, 0xec88, 0xe0a5, 0xe15b, 0xecf4, 0xf9ab,
+ 0xfe9f, 0xfb27, 0xfcca, 0x057f, 0x076d, 0x0640,
+ 0x0796, 0xffb2, 0xf267, 0xed8b, 0xec79, 0xec61,
+ 0xf369, 0xfc85, 0xfc0c, 0xef9f, 0xe361, 0xe39b,
+ 0xed20, 0xf923, 0x0258, 0x02da, 0xffda, 0xfd6c,
+ 0xf8e1, 0xfa74, 0x005c, 0xfd22, 0xfa7f, 0x0043,
+ 0x02fe, 0x04af, 0x06ff, 0x00a8, 0xf87a, 0xf73b,
+ 0xf9d5, 0xfeed, 0x02b8, 0x01cb, 0xff3e, 0xfe24,
+ 0x00e6, 0x015b, 0xf8ea, 0xf237, 0xf1a3, 0xef98,
+ 0xee5e, 0xee77, 0xf0f2, 0xfc64, 0x0487, 0xfea1,
+ 0xf507, 0xe9d5, 0xdc6c, 0xd6a0, 0xdcca, 0xecbf,
+ 0xf8d0, 0xf42b, 0xecb3, 0xebdc, 0xea60, 0xef06,
+ 0xfb25, 0x0253, 0x0533, 0x0586, 0x01c6, 0xfe39,
+ 0xfa19, 0xf852, 0xfd0d, 0xff19, 0xfe0a, 0x029d,
+ 0x0a02, 0x0ff7, 0x1057, 0x089a, 0x0123, 0xfb52,
+ 0xf5ae, 0xfade, 0x04bb, 0x0084, 0xf80d, 0xfd6d,
+ 0x05ef, 0x0286, 0xfa90, 0xf55c, 0xef6c, 0xeffa,
+ 0xfc07, 0x03b9, 0x01cd, 0x00ff, 0xfec1, 0xfa36,
+ 0x0071, 0x0dd6, 0x0e0e, 0x0109, 0xfb6d, 0x0281,
+ 0x0b8b, 0x1517, 0x1b71, 0x148d, 0x07e0, 0xfe81,
+ 0xf485, 0xeea8, 0xf0ce, 0xf09e, 0xe9cf, 0xe38e,
+ 0xe563, 0xece5, 0xf0a1, 0xf31c, 0xf7b6, 0xf6e5,
+ 0xf4ac, 0xf655, 0xf31d, 0xecf4, 0xebf3, 0xeed7,
+ 0xf735, 0x0262, 0x0591, 0xfecd, 0xf42d, 0xecd3,
+ 0xeb6d, 0xec86, 0xeea0, 0xedcb, 0xeac2, 0xf3df,
+ 0x030e, 0x0180, 0xf744, 0xf386, 0xed28, 0xe5d7,
+ 0xeb4b, 0xf4b2, 0xf3d3, 0xf282, 0xfdf5, 0x0be3,
+ 0x0e7f, 0x0b0d, 0x08e5, 0x0914, 0x0e54, 0x1372,
+ 0x11a9, 0x0f3f, 0x0c56, 0x0364, 0x000f, 0x0488,
+ 0xfc0b, 0xec7e, 0xf0df, 0xfef3, 0xfee6, 0xf9ce,
+ 0xfcd3, 0x022b, 0x0244, 0xfc66, 0xf803, 0xf92a,
+ 0xfce5, 0x08a7, 0x15b9, 0x10a6, 0x088b, 0x1075,
+ 0x159c, 0x1448, 0x1b48, 0x1e74, 0x1541, 0x0d2b,
+ 0x0afb, 0x0b14, 0x09a4, 0x0480, 0x0132, 0x02aa,
+ 0x04cc, 0x022a, 0xf833, 0xefef, 0xf0f2, 0xf508,
+ 0xf9a0, 0xfe87, 0xffbe, 0x02cb, 0x0aa9, 0x0e4d,
+ 0x0b64, 0x0715, 0x0505, 0x0381, 0xfb3c, 0xf242,
+ 0xf5fc, 0xfbea, 0xf4c5, 0xe860, 0xdf9e, 0xda8b,
+ 0xdd8c, 0xe795, 0xedfa, 0xeec2, 0xf004, 0xf1d6,
+ 0xf3b8, 0xf8a4, 0xfbd5, 0xf68b, 0xef38, 0xed5c,
+ 0xec76, 0xed1f, 0xf803, 0x04b8, 0x0489, 0x0028,
+ 0x01d5, 0x0286, 0x02d4, 0x0618, 0x020e, 0xf47f,
+ 0xe9c1, 0xeeae, 0x02f3, 0x0e86, 0x0549, 0xfd04,
+ 0xfe58, 0xff30, 0xff87, 0xfd60, 0xfb55, 0xffd4,
+ 0xfb43, 0xeafb, 0xe80c, 0xf49c, 0x001f, 0x0639,
+ 0x0a82, 0x1020, 0x0deb, 0xfef3, 0xf414, 0xefcc,
+ 0xe96d, 0xe8e4, 0xec8a, 0xf178, 0x00e1, 0x0e46,
+ 0x1161, 0x17c4, 0x19f1, 0x131e, 0x128b, 0x1404,
+ 0x1566, 0x2078, 0x2744, 0x1e5a, 0x1296, 0x10b6,
+ 0x1af9, 0x2095, 0x15b3, 0x10e7, 0x1aa1, 0x1dfd,
+ 0x1aaa, 0x1522, 0x04d3, 0xf5ca, 0xf711, 0x0022,
+ 0x0a95, 0x1710, 0x1f4c, 0x1e6e, 0x18d9, 0x18fb,
+ 0x20a4, 0x2267, 0x1877, 0x0a9d, 0xfc8d, 0xf3e9,
+ 0xf7ff, 0x0005, 0x022f, 0x0354, 0x0492, 0x014c,
+ 0xfd85, 0xfb98, 0xf4e6, 0xecda, 0xf2f6, 0x0631,
+ 0x1562, 0x200b, 0x2d1a, 0x3048, 0x2496, 0x1ba3,
+ 0x1b24, 0x1960, 0x13c4, 0x095c, 0xfa7b, 0xf2b1,
+ 0xf961, 0x03fe, 0x055d, 0xff09, 0xfc6a, 0x0191,
+ 0x07c5, 0x0a42, 0x0a8a, 0x08ef, 0x0534, 0x017a,
+ 0xfa4d, 0xec8e, 0xe64e, 0xf2a0, 0x0124, 0x030b,
+ 0x018e, 0x0525, 0x0b33, 0x11d8, 0x15b4, 0x10ca,
+ 0x05ab, 0x0078, 0x03de, 0x01a1, 0xf61c, 0xefad,
+ 0xeed0, 0xeaf9, 0xeb13, 0xef2a, 0xebf5, 0xe7f8,
+ 0xe6e0, 0xdcb4, 0xd5fd, 0xe2f8, 0xee56, 0xee2b,
+ 0xf39e, 0xf78e, 0xf06e, 0xec7b, 0xec09, 0xea9f,
+ 0xf1de, 0xfc83, 0xfed1, 0xfd99, 0x02a7, 0x1067,
+ 0x191f, 0x13b1, 0x0fc4, 0x10bb, 0x0c44, 0x0683,
+ 0xfb8a, 0xed0d, 0xf125, 0x0059, 0x0960, 0x1510,
+ 0x1cd8, 0x1658, 0x0eb4, 0x0b42, 0x0b21, 0x0aea,
+ 0x02dd, 0xfe63, 0xfb6f, 0xeac8, 0xeb32, 0x0b8d,
+ 0x1ef7, 0x1c99, 0x1e43, 0x1c46, 0x1310, 0x124e,
+ 0x1553, 0x1177, 0x08a7, 0xfbc2, 0xecc2, 0xe650,
+ 0xee9f, 0xfaa8, 0xfafb, 0xf0a7, 0xeb8d, 0xf2bd,
+ 0xf8d8, 0xf488, 0xeeb9, 0xef77, 0xfa4d, 0x0857,
+ 0x058d, 0xfc82, 0x08e1, 0x17e5, 0x0f10, 0xfd09,
+ 0xf6d8, 0x021b, 0x0e05, 0x058d, 0xf967, 0xf8aa,
+ 0xf5ef, 0xf6f1, 0x0020, 0x020b, 0x02a0, 0x038d,
+ 0xf594, 0xe63c, 0xe8e6, 0xf461, 0xf7be, 0xf124,
+ 0xf47b, 0x0754, 0x0e84, 0x05e3, 0x0325, 0x056b,
+ 0x04b6, 0x0397, 0x013a, 0xfca7, 0xf6f6, 0xf334,
+ 0xf3d0, 0xf1f3, 0xea87, 0xe298, 0xdbe6, 0xdb76,
+ 0xe20a, 0xe78e, 0xf041, 0xfd60, 0x00c7, 0xfe86,
+ 0x0215, 0xff5b, 0xf2ca, 0xf220, 0x04b4, 0x1656,
+ 0x1514, 0x08e1, 0x0643, 0x0c73, 0x0eb6, 0x1171,
+ 0x12d6, 0x06cc, 0xfd00, 0x027a, 0x0538, 0x03c2,
+ 0x05f5, 0x00da, 0xfad9, 0xfe82, 0x024c, 0x0a83,
+ 0x15f6, 0x13c3, 0x1081, 0x15be, 0x13d9, 0x11de,
+ 0x1709, 0x14ae, 0x0ec8, 0x107f, 0x13c7, 0x11d9,
+ 0x0acf, 0x05c3, 0x0343, 0xfb12, 0xf8e2, 0x076a,
+ 0x1396, 0x1489, 0x169e, 0x19b0, 0x16d8, 0x1061,
+ 0x0a35, 0x044d, 0x00b5, 0x0573, 0x0f19, 0x12c4,
+ 0x0fcc, 0x09b2, 0x0296, 0x00cf, 0x04e5, 0x0960,
+ 0x0c09, 0x0a1a, 0x03d7, 0xfe87, 0xfab3, 0xf786,
+ 0xf7a2, 0xf8f5, 0xf5ec, 0xf1f1, 0xf2d4, 0xf2a4,
+ 0xf09f, 0xf630, 0xfdb3, 0x0101, 0x0645, 0x0459,
+ 0xf56c, 0xec31, 0xf049, 0xf959, 0x0167, 0x04ca,
+ 0x061c, 0x0418, 0xfd04, 0xfae4, 0xfb3e, 0xf8b3,
+ 0xf938, 0xf212, 0xe7b1, 0xf3f6, 0x05b7, 0x089f,
+ 0x0d44, 0x0fa2, 0x0741, 0x0112, 0xf57f, 0xdd13,
+ 0xcb69, 0xccd7, 0xdc1d, 0xf00d, 0x0154, 0x0849,
+ 0x03b7, 0x0377, 0x077b, 0xff0c, 0xf69c, 0xf753,
+ 0xf61b, 0xfca4, 0x0764, 0x03ed, 0x0227, 0x094b,
+ 0x0937, 0x04fe, 0x0608, 0x122b, 0x209a, 0x1b7d,
+ 0x107c, 0x0e2d, 0x0338, 0xfc7f, 0x0918, 0x10ad,
+ 0x0ee7, 0x0df8, 0x0aaa, 0x0c4e, 0x124d, 0x1002,
+ 0x089b, 0x067b, 0x0e83, 0x16a0, 0x12fb, 0x0d48,
+ 0x0948, 0x04d5, 0x0a32, 0x10af, 0x0ebe, 0x0d42,
+ 0x0485, 0xfbbc, 0x0baa, 0x1c51, 0x101c, 0xfb77,
+ 0xf486, 0xfa51, 0x04ba, 0x0a7c, 0x0646, 0xfbe4,
+ 0xf7ac, 0xf69f, 0xee16, 0xf216, 0x07da, 0x0ce9,
+ 0x00e7, 0xfcc7, 0xfdb6, 0xfe29, 0xfc8d, 0xf5a8,
+ 0xf35f, 0xf7ed, 0xf9f1, 0xf987, 0xf914, 0xf717,
+ 0xf45d, 0xf8e1, 0x0473, 0x0300, 0xf695, 0xf56f,
+ 0xf7c4, 0xf7db, 0xffac, 0x0207, 0xfbcf, 0xf981,
+ 0xf4e8, 0xf3b6, 0xffff, 0x0a0f, 0x0964, 0x027d,
+ 0xf9df, 0xf60b, 0xf564, 0xfa1c, 0x0304, 0x00de,
+ 0xff88, 0x0d3d, 0x1154, 0x076b, 0x05a1, 0x07b6,
+ 0x02e9, 0xfbf4, 0xf9aa, 0xfc5d, 0xfd5d, 0xfd2f,
+ 0xfe70, 0xfe3f, 0x00ac, 0x018b, 0xfbbd, 0xfd39,
+ 0x027a, 0x0065, 0x0405, 0x08ea, 0x0222, 0xff69,
+ 0x068b, 0x0b3d, 0x09da, 0x0137, 0xf4aa, 0xed65,
+ 0xf0ba, 0xfc49, 0x0699, 0x0f18, 0x166b, 0x1153,
+ 0x05f6, 0x0207, 0xfff3, 0x0056, 0x0371, 0xfc33,
+ 0xee79, 0xe7cb, 0xe9f8, 0xee07, 0xecb6, 0xecec,
+ 0xefc1, 0xed29, 0xf428, 0x02c5, 0xfe20, 0xf4eb,
+ 0xfb3e, 0x0037, 0xfd9b, 0xfa3f, 0xf91a, 0xfa93,
+ 0xf7e3, 0xf881, 0x020f, 0x048c, 0x00da, 0xfb11,
+ 0xf229, 0xfb6c, 0x0d66, 0x0aaf, 0x074f, 0x0d5c,
+ 0x0afb, 0x0d28, 0x18dd, 0x1bfb, 0x1675, 0x0d37,
+ 0x0518, 0x04ac, 0x062d, 0x04b1, 0x006c, 0xfbef,
+ 0xfd95, 0x013f, 0x01a7, 0x03fe, 0x0ab2, 0x10f2,
+ 0x0e62, 0x0925, 0x0b8d, 0x0651, 0xfe73, 0x0abd,
+ 0x1094, 0x0346, 0x02eb, 0x087f, 0x0404, 0xff4e,
+ 0xf734, 0xf515, 0xfeb4, 0xfcee, 0xf746, 0xfbfc,
+ 0xfd2f, 0xff2b, 0x0562, 0x0611, 0x078f, 0x095d,
+ 0x0898, 0x0941, 0x0674, 0x0ada, 0x16ed, 0x0e3d,
+ 0xfa25, 0xf22b, 0xecae, 0xeb79, 0xf15b, 0xf0e6,
+ 0xf0a4, 0xf687, 0xfc2e, 0x0399, 0x05b4, 0xfc2c,
+ 0xf512, 0xf82c, 0xfc24, 0xf80f, 0xf0c9, 0xedd8,
+ 0xe872, 0xe029, 0xdbc1, 0xd54a, 0xd294, 0xdc8c,
+ 0xe416, 0xe708, 0xefc7, 0xf49d, 0xf2ef, 0xf4d5,
+ 0xf9b3, 0x00bd, 0x081d, 0x084d, 0x0487, 0x04be,
+ 0x04a1, 0xfdaa, 0xf7a7, 0xfa20, 0xfbc3, 0xf978,
+ 0xfb58, 0xfe33, 0x0029, 0x037f, 0x01d9, 0xff12,
+ 0x0080, 0xfda7, 0xf98d, 0xf989, 0xf747, 0xf696,
+ 0xfa32, 0xfd8e, 0x0380, 0x0648, 0x0030, 0xfb88,
+ 0xf994, 0xf7e7, 0xfb91, 0xff77, 0x03f6, 0x108c,
+ 0x1901, 0x1519, 0x10ce, 0x0f0b, 0x093e, 0x0103,
+ 0xfd22, 0xfe5d, 0xfc24, 0xf5c5, 0xf40b, 0xf36d,
+ 0xf1ef, 0xfa2a, 0x057f, 0x05a1, 0x01c0, 0x00c6,
+ 0xfe90, 0xfdb3, 0x008d, 0x0458, 0x0868, 0x0a42,
+ 0x0a76, 0x0d9c, 0x0ee0, 0x08b9, 0x00f1, 0xfc3c,
+ 0xf889, 0xf7e7, 0x00d3, 0x0aa2, 0x0127, 0xee01,
+ 0xed3e, 0xf7b7, 0xfad6, 0xffe6, 0x0b3e, 0x0fb0,
+ 0x0b42, 0x093d, 0x100f, 0x15f9, 0x10ec, 0x07f2,
+ 0xffc3, 0xf910, 0xfc29, 0x0305, 0x0286, 0x0287,
+ 0x0641, 0x0909, 0x0dd0, 0x129a, 0x1126, 0x067c,
+ 0xf88b, 0xfa6a, 0x089f, 0x0747, 0xf958, 0xf300,
+ 0xf1d7, 0xf284, 0xf616, 0xf602, 0xf2c4, 0xef62,
+ 0xe918, 0xe84e, 0xf73e, 0x0758, 0x06f4, 0xff61,
+ 0xfb28, 0xf6dc, 0xf781, 0xfd62, 0xfe6c, 0x0022,
+ 0x0215, 0xfa41, 0xf748, 0xfec7, 0xff43, 0xfd84,
+ 0x029c, 0x07bd, 0x0c2b, 0x0b55, 0x04ff, 0x085f,
+ 0x1173, 0x1340, 0x120a, 0x0e9f, 0x0874, 0x03ac,
+ 0xfb42, 0xf01c, 0xec64, 0xf121, 0xf9de, 0xff94,
+ 0xfe3c, 0xff30, 0x0711, 0x0beb, 0x0ad2, 0x0c29,
+ 0x0fd0, 0x0ae1, 0xfc7f, 0xf0a7, 0xee36, 0xf5cc,
+ 0x049d, 0x1105, 0x153f, 0x12d1, 0x0bb6, 0x04d5,
+ 0x0120, 0xfe5e, 0xfbfa, 0xf8cf, 0xf4f4, 0xf3fb,
+ 0xf5c8, 0xfa81, 0x0139, 0x0280, 0xfebe, 0xfa91,
+ 0xf25c, 0xed41, 0xf73d, 0x02b1, 0x002b, 0xfa54,
+ 0xf8a3, 0xf57f, 0xf578, 0xf82c, 0xf1bc, 0xeaee,
+ 0xefca, 0xf3a8, 0xf1a5, 0xf177, 0xf1b1, 0xf6a1,
+ 0x0093, 0xffe8, 0xf517, 0xebeb, 0xe4e4, 0xdf6a,
+ 0xda41, 0xda2b, 0xe8dc, 0xf7d6, 0xf84d, 0xf827,
+ 0xfc3f, 0xfbfc, 0xfbb4, 0xfd3b, 0xfc36, 0xfc3d,
+ 0x0054, 0x03f8, 0x02e6, 0x01b7, 0x0443, 0x0305,
+ 0xfe78, 0xfffa, 0x041b, 0x0668, 0x06e3, 0x011a,
+ 0xfba6, 0xffbc, 0x048d, 0x0277, 0xfeae, 0xff3d,
+ 0x031f, 0x02ed, 0x00fe, 0x05f7, 0x0ab1, 0x0969,
+ 0x0a24, 0x0a12, 0x0260, 0xfd38, 0x031f, 0x0be2,
+ 0x0f9a, 0x0eeb, 0x0864, 0xffbb, 0x026d, 0x0abe,
+ 0x05b0, 0xfad1, 0xf762, 0xf3f6, 0xf065, 0xf392,
+ 0xf862, 0xfccd, 0x0288, 0x03a3, 0xff1d, 0xfd58,
+ 0x019a, 0x057a, 0x0624, 0x09d7, 0x10d2, 0x1441,
+ 0x1222, 0x0a54, 0x025d, 0x0370, 0x067d, 0x027b,
+ 0xffba, 0x0143, 0x0108, 0x00de, 0x0215, 0x021c,
+ 0xff3f, 0xf56e, 0xeaee, 0xedab, 0xf671, 0xf7e3,
+ 0xfc8d, 0x0a4d, 0x0fbf, 0x0946, 0x0576, 0x04f1,
+ 0x017d, 0xfd7f, 0xf9a8, 0xf656, 0xf64b, 0xf697,
+ 0xf6b6, 0xfa2f, 0xfaf7, 0xf3c5, 0xed75, 0xeeda,
+ 0xf201, 0xf297, 0xf42f, 0xf813, 0xfdbd, 0x05c1,
+ 0x08fe, 0x0294, 0xfc6b, 0xf9e9, 0xf3f2, 0xee7d,
+ 0xee86, 0xf050, 0xf4ed, 0xfbc6, 0xfebc, 0xff5e,
+ 0xff85, 0xfb49, 0xf485, 0xefd7, 0xecf2, 0xec76,
+ 0xf16b, 0xf948, 0xfc47, 0xfb07, 0xfeb5, 0x0514,
+ 0x02b0, 0xfb8e, 0xfd43, 0x036c, 0x00fd, 0xfc04,
+ 0xfeab, 0x014e, 0x0099, 0x0405, 0x077b, 0x0711,
+ 0x077e, 0x04e0, 0x0061, 0x0362, 0x05f5, 0x0041,
+ 0xfa9f, 0xf6db, 0xf50b, 0xf9b0, 0xfcc2, 0xf87d,
+ 0xf2ec, 0xeb20, 0xe21c, 0xe073, 0xe4e1, 0xedc3,
+ 0xfd11, 0x05ef, 0xffdd, 0xf98a, 0xfa64, 0xfc4a,
+ 0x03e5, 0x10a2, 0x13e5, 0x10d5, 0x1391, 0x14d8,
+ 0x0f26, 0x0b8f, 0x0f46, 0x179f, 0x1c61, 0x1931,
+ 0x15b9, 0x127f, 0x09fd, 0x03a6, 0x036b, 0x026e,
+ 0xff32, 0xfd04, 0x01c8, 0x0c26, 0x0f60, 0x0e1f,
+ 0x11fa, 0x129f, 0x0f6f, 0x118b, 0x1256, 0x0bfd,
+ 0x039a, 0xfdd2, 0xfd12, 0xfcc8, 0xfb1c, 0xfe94,
+ 0x020b, 0xfe13, 0xfa21, 0xfc3d, 0x01a1, 0x03b9,
+ 0x0082, 0x00e0, 0x0432, 0x00f2, 0xfcd3, 0xfe49,
+ 0x019f, 0x03f6, 0x01af, 0xff12, 0x015b, 0xfddc,
+ 0xf7e8, 0x00a4, 0x0d2f, 0x0e51, 0x0dac, 0x0f2f,
+ 0x0917, 0xfca3, 0xf604, 0xf6a0, 0xf3fd, 0xf023,
+ 0xf275, 0xf186, 0xea15, 0xe8d0, 0xed9f, 0xee20,
+ 0xe8be, 0xe322, 0xe2f5, 0xe5ff, 0xe656, 0xe53f,
+ 0xe5c8, 0xe7b5, 0xea32, 0xed5a, 0xf345, 0xfa90,
+ 0xfde2, 0xfb5a, 0xf603, 0xf513, 0xf6c8, 0xefd9,
+ 0xec94, 0xfeff, 0x0ff2, 0x08ca, 0xfb84, 0xf5e9,
+ 0xf14f, 0xeda3, 0xee30, 0xf06b, 0xf211, 0xf438,
+ 0xf822, 0xfc61, 0x0081, 0x0421, 0x03b2, 0xff15,
+ 0xfa43, 0xf969, 0xfcf1, 0xfc5b, 0xf6cf, 0xf737,
+ 0xf9fa, 0xf8b9, 0xfb87, 0x0059, 0x0117, 0x038f,
+ 0x04af, 0xffb1, 0xfbac, 0xf733, 0xedcf, 0xe934,
+ 0xf084, 0xfa9d, 0xfcca, 0xfc7f, 0x002f, 0xfe01,
+ 0xf6c9, 0xf834, 0xfb65, 0xf8ec, 0xfa7b, 0xfda9,
+ 0xfc8f, 0xff99, 0x07b4, 0x0c7f, 0x0ab6, 0x0454,
+ 0xffac, 0xffc2, 0x022d, 0x05f2, 0x0801, 0x083a,
+ 0x0b8f, 0x0ce0, 0x0663, 0xfec2, 0xf9b9, 0xf723,
+ 0xf984, 0xfbfc, 0xf968, 0xf5da, 0xf32b, 0xf38c,
+ 0xfcf0, 0x07ba, 0x08ed, 0x09d1, 0x110a, 0x1213,
+ 0x0a20, 0x0327, 0x0167, 0x075d, 0x0e07, 0x07eb,
+ 0xfda2, 0xfb08, 0xf90b, 0xf9c8, 0x0295, 0x06ea,
+ 0x0264, 0xfe6c, 0xff1e, 0x04aa, 0x0b39, 0x0eb0,
+ 0x1015, 0x0ef9, 0x0ea8, 0x10a1, 0x0ad4, 0xfeb1,
+ 0xf85c, 0xf8a2, 0xfda2, 0x00f1, 0xfbca, 0xfc16,
+ 0x060b, 0x07f3, 0x046b, 0x062a, 0x0731, 0x0677,
+ 0x03bd, 0xfb3c, 0xf76f, 0xfdc4, 0x0212, 0xfed0,
+ 0xf913, 0xf592, 0xf66b, 0xfaee, 0x00f3, 0x048c,
+ 0x04ee, 0x06ba, 0x08e2, 0x08cf, 0x0a9d, 0x0c21,
+ 0x0540, 0xf82b, 0xf0f3, 0xf61c, 0xfd57, 0xfcc2,
+ 0xfd43, 0x0374, 0x0408, 0xfa5b, 0xed40, 0xea31,
+ 0xf8af, 0x0548, 0xff9e, 0xfa2e, 0x0148, 0x0645,
+ 0x04ba, 0x0656, 0x0ac5, 0x09e3, 0x008c, 0xf3cb,
+ 0xebaf, 0xec1c, 0xf376, 0xfc5d, 0x019f, 0x03d2,
+ 0x060e, 0x0548, 0xfced, 0xf39b, 0xf48b, 0xfda2,
+ 0x041a, 0x0394, 0xfe8f, 0xfac6, 0xfbc3, 0xfcc4,
+ 0xf9e4, 0xf7d3, 0xf834, 0xf588, 0xf1a2, 0xf5c7,
+ 0x0048, 0x0700, 0x09e0, 0x0d89, 0x0eea, 0x0aea,
+ 0x04f7, 0x0260, 0x0245, 0xfe5c, 0xf907, 0xf888,
+ 0xf86b, 0xf6f1, 0xf82a, 0xf7ae, 0xf29c, 0xec0f,
+ 0xe6b9, 0xe89b, 0xeedb, 0xf0ad, 0xf496, 0xfc18,
+ 0xfcf5, 0xfcf3, 0x016a, 0x01cb, 0xfff7, 0x0231,
+ 0x0630, 0x09cc, 0x0a2a, 0x0695, 0x045f, 0x067f,
+ 0x0a7d, 0x0a88, 0x0768, 0x0816, 0x0807, 0x05b0,
+ 0x0a7c, 0x0d41, 0x0539, 0x01fa, 0x06e1, 0x0afa,
+ 0x10fa, 0x15bb, 0x13e4, 0x1066, 0x0b56, 0x036a,
+ 0xfbe8, 0xf76f, 0xfa18, 0xff9a, 0x00b0, 0x043a,
+ 0x0b77, 0x0d77, 0x0cc1, 0x0b38, 0x037c, 0xf9b8,
+ 0xf550, 0xf637, 0xf99b, 0xfde1, 0x0170, 0x0059,
+ 0xfbec, 0xfb96, 0xfebf, 0x011f, 0x033e, 0x059e,
+ 0x0a29, 0x0d80, 0x09d3, 0x07f9, 0x0a90, 0x0702,
+ 0x039f, 0x059e, 0x02e2, 0xfddd, 0xfab3, 0xf8ab,
+ 0x009e, 0x0c23, 0x0d25, 0x0c40, 0x0d61, 0x0afd,
+ 0x0b63, 0x0d6f, 0x09eb, 0x05bc, 0x05ef, 0x09a4,
+ 0x0914, 0xfdf8, 0xf51d, 0xf81e, 0xfd7e, 0xff32,
+ 0xfcc4, 0xf9e0, 0xfd28, 0xfd4b, 0xf362, 0xedbe,
+ 0xf2f7, 0xfcee, 0x0781, 0x0e8b, 0x1443, 0x1b28,
+ 0x1c72, 0x17b1, 0x1180, 0x09d1, 0x0391, 0x01a2,
+ 0x0364, 0x07b6, 0x0a4e, 0x08d5, 0x04a2, 0x0068,
+ 0x00e2, 0x0241, 0xff58, 0x00a6, 0x0790, 0x0a5f,
+ 0x0a54, 0x0b00, 0x0a8a, 0x09ed, 0x0943, 0x0857,
+ 0x070d, 0x03f7, 0x03fe, 0x0978, 0x0c32, 0x082e,
+ 0x00df, 0xf9bd, 0xf333, 0xeb98, 0xe874, 0xee4e,
+ 0xf2d8, 0xf021, 0xef12, 0xf392, 0xf86d, 0xfbb6,
+ 0xffda, 0x039a, 0x0358, 0xff2e, 0xf655, 0xeba7,
+ 0xe96e, 0xed75, 0xee8c, 0xf211, 0xfae4, 0x0222,
+ 0x07ba, 0x0de1, 0x111b, 0x090c, 0xf6af, 0xee8a,
+ 0xf627, 0xfc70, 0x00ea, 0x060d, 0x0127, 0xf6e9,
+ 0xf0a1, 0xebe5, 0xe9cd, 0xead2, 0xed74, 0xf1c0,
+ 0xf44f, 0xfa52, 0x0732, 0x0cf0, 0x0afd, 0x0fb8,
+ 0x17cb, 0x1955, 0x15f7, 0x137d, 0x1623, 0x1cd7,
+ 0x2180, 0x1f84, 0x1a77, 0x19a9, 0x184d, 0x0f8e,
+ 0x0850, 0x0a07, 0x11ee, 0x1b8a, 0x1d94, 0x150e,
+ 0x0d19, 0x0c79, 0x1004, 0x12b0, 0x121c, 0x10ec,
+ 0x10d1, 0x10fa, 0x11c9, 0x129a, 0x1238, 0x0ec4,
+ 0x089d, 0x03ec, 0xff6e, 0xfd4a, 0x0778, 0x1778,
+ 0x1ec9, 0x1f57, 0x1fd7, 0x20e5, 0x1d4a, 0x1398,
+ 0x0ee4, 0x0e12, 0x06bf, 0x01fb, 0x0363, 0x02c5,
+ 0x0505, 0x077e, 0x028c, 0xff58, 0xfec7, 0xfa24,
+ 0xf6a3, 0xf666, 0xf638, 0xf52d, 0xf5b7, 0xfd2e,
+ 0x056c, 0x0712, 0x0a80, 0x1153, 0x1397, 0x119e,
+ 0x0d93, 0x0757, 0xfca0, 0xee2b, 0xe696, 0xe9ff,
+ 0xf48e, 0x01f5, 0x0645, 0x0214, 0x01cc, 0xff8c,
+ 0xf8f3, 0xf772, 0xf628, 0xf2d6, 0xf255, 0xf133,
+ 0xf138, 0xf474, 0xf716, 0xfb16, 0xfefe, 0xffba,
+ 0xffc7, 0xff8b, 0x0304, 0x08d8, 0x066f, 0x0269,
+ 0x064d, 0x090b, 0x05ba, 0x0121, 0x0058, 0x041f,
+ 0x039c, 0xfdfa, 0xfbe4, 0xfb3c, 0xf8c3, 0xf637,
+ 0xf2ed, 0xf147, 0xf3ca, 0xfb58, 0x0605, 0x0979,
+ 0x0421, 0xff95, 0xfb91, 0xf4af, 0xeed4, 0xefc4,
+ 0xf6c6, 0xf90f, 0xf662, 0xf857, 0xf95b, 0xf72f,
+ 0xf8e5, 0xf808, 0xf3a2, 0xf4ed, 0xf9dc, 0xffdf,
+ 0x0634, 0x0a05, 0x0e79, 0x11f4, 0x10c2, 0x0e9c,
+ 0x0c1e, 0x0b8d, 0x0d1d, 0x0709, 0xfd49, 0xfabd,
+ 0xf8cc, 0xf348, 0xf136, 0xf20f, 0xf085, 0xf190,
+ 0xfccf, 0x07b1, 0x06a3, 0x04c5, 0x0877, 0x0ab4,
+ 0x0c78, 0x0c39, 0x052e, 0xfaab, 0xf34e, 0xf8f7,
+ 0x0547, 0x04bf, 0x0047, 0x0494, 0x0757, 0x0970,
+ 0x0df4, 0x0dc2, 0x0afb, 0x0580, 0x0131, 0x0702,
+ 0x0990, 0x03ca, 0x023e, 0xfcf6, 0xf18d, 0xed75,
+ 0xedc3, 0xee12, 0xee46, 0xebe2, 0xeeae, 0xf74b,
+ 0xfbe4, 0xfc2c, 0xf97f, 0xf84d, 0xfe23, 0x0367,
+ 0x0387, 0x00f0, 0xfd36, 0xff30, 0x0314, 0xffaa,
+ 0xfe66, 0x0451, 0x0883, 0x0872, 0x04d8, 0x011c,
+ 0xfef1, 0xf893, 0xf3be, 0xf689, 0xf623, 0xf2fd,
+ 0xf707, 0xfc82, 0xfecb, 0x023c, 0x03ac, 0xff6d,
+ 0xfc10, 0xfe26, 0xffa1, 0xfc06, 0xf816, 0xf91e,
+ 0x0067, 0x0a5c, 0x0f6e, 0x0dca, 0x09fb, 0x06e9,
+ 0x045a, 0x0147, 0x01f4, 0x098f, 0x0eea, 0x0e16,
+ 0x0ee5, 0x0edf, 0x082a, 0x0102, 0xfe88, 0xff7d,
+ 0x0159, 0xff38, 0xf739, 0xedf1, 0xe871, 0xea16,
+ 0xf3f6, 0xfe59, 0xfed6, 0xfbe1, 0xfea4, 0xfd1a,
+ 0xf73e, 0xfb88, 0x00fb, 0xfc8c, 0xf92c, 0xf8c5,
+ 0xf79e, 0xfb26, 0x00c3, 0x0403, 0x0472, 0xff8d,
+ 0xfbb8, 0xfc94, 0xfb06, 0xf9a7, 0xf932, 0xf143,
+ 0xe5fb, 0xde36, 0xdaa5, 0xdef6, 0xe628, 0xe82d,
+ 0xeb0d, 0xf25a, 0xf67a, 0xf446, 0xf2a8, 0xf826,
+ 0xfc14, 0xf36f, 0xeb92, 0xf317, 0xfb59, 0xf95f,
+ 0xfc32, 0x04f6, 0x0197, 0xf7db, 0xf737, 0xf7b9,
+ 0xf7c2, 0x01a6, 0x0aeb, 0x0ab1, 0x0b42, 0x0db6,
+ 0x0f21, 0x132d, 0x161e, 0x13fc, 0x0d5c, 0x0578,
+ 0x053c, 0x0765, 0x009d, 0xfc0e, 0xff15, 0xfffa,
+ 0x01db, 0x00f7, 0xf69a, 0xf686, 0x04b5, 0x0944,
+ 0x0714, 0x0ebc, 0x162b, 0x10c3, 0x0779, 0x060b,
+ 0x0828, 0x050e, 0xfefa, 0xfab7, 0xfa9b, 0xfe4f,
+ 0xfdbf, 0xf92c, 0xfabc, 0xfdd8, 0xfca7, 0xffd6,
+ 0x07c8, 0x0a73, 0x05b6, 0x0123, 0x029a, 0x039a,
+ 0xfdaf, 0xf573, 0xf004, 0xf3a3, 0xfea9, 0x00d1,
+ 0xfb4a, 0xf9c2, 0xf7cd, 0xfa70, 0x061b, 0x090a,
+ 0x03bb, 0x02ea, 0x0013, 0xfe6f, 0x065e, 0x0acd,
+ 0x0501, 0x015a, 0x0702, 0x0da4, 0x0d44, 0x0d3e,
+ 0x0ea1, 0x0723, 0xfee8, 0xff3a, 0x0098, 0x02a7,
+ 0x05b6, 0x0723, 0x0bc9, 0x0be7, 0x01e2, 0xfd8b,
+ 0x0081, 0x00b4, 0xff17, 0xf98d, 0xf4b2, 0xfa1e,
+ 0xfd4b, 0xf49d, 0xebf3, 0xe9b1, 0xecf4, 0xf584,
+ 0xfd15, 0xfea7, 0xfd12, 0xfb6e, 0xfa09, 0xfb6f,
+ 0x0148, 0x0392, 0xfd8c, 0xfaff, 0x0411, 0x0e90,
+ 0x0d47, 0x0175, 0xf896, 0xf5ea, 0xf188, 0xef9a,
+ 0xf596, 0xfb50, 0xfdc5, 0xfe33, 0xf746, 0xeddc,
+ 0xf040, 0xfc7b, 0x0231, 0xfe80, 0xfc8f, 0xfb6f,
+ 0xf519, 0xf103, 0xf135, 0xf000, 0xf158, 0xf3a8,
+ 0xf051, 0xeffd, 0xf823, 0xfec8, 0xfffd, 0x00a6,
+ 0x0147, 0xffcd, 0x0038, 0x0700, 0x0c5d, 0x0718,
+ 0xfba2, 0xf28d, 0xf146, 0xf8cb, 0x015c, 0x0433,
+ 0x02dc, 0x029c, 0x074a, 0x08e0, 0xfede, 0xf697,
+ 0xfb58, 0x030c, 0x086a, 0x0c71, 0x07cc, 0xfa99,
+ 0xef97, 0xeb9d, 0xeb4a, 0xe897, 0xe44e, 0xe790,
+ 0xf3cf, 0xffce, 0x0475, 0x0327, 0x02da, 0x0251,
+ 0xfb9a, 0xf99e, 0x04ad, 0x0def, 0x0f75, 0x1009,
+ 0x0cd9, 0x0a47, 0x0d7e, 0x0b7d, 0x0862, 0x0fcd,
+ 0x15c2, 0x1532, 0x1619, 0x1437, 0x1229, 0x16ce,
+ 0x1837, 0x1385, 0x1163, 0x117d, 0x0f4a, 0x0766,
+ 0xff2e, 0x0276, 0x08d3, 0x059b, 0x03a6, 0x0684,
+ 0x034c, 0xffab, 0x00cf, 0xf9f8, 0xea9e, 0xe214,
+ 0xe36a, 0xe835, 0xecd8, 0xebb8, 0xe5a1, 0xe404,
+ 0xe5ad, 0xe7ed, 0xf074, 0xf776, 0xf638, 0xfa7f,
+ 0x0659, 0x0e44, 0x0f86, 0x0645, 0xf820, 0xf640,
+ 0xfb83, 0xfc8f, 0xffc4, 0x047a, 0x03f4, 0xff9d,
+ 0xf9a4, 0xf8a8, 0xfd6b, 0xfadc, 0xf467, 0xf8d0,
+ 0xffac, 0xfd51, 0xfb45, 0xfded, 0xf9d1, 0xf1c5,
+ 0xf5e9, 0xff8b, 0xfcbe, 0xf4d0, 0xf4d4, 0xf71f,
+ 0xf6aa, 0xf849, 0xfd56, 0xff66, 0xfb1f, 0xf89e,
+ 0xfb27, 0xfa4e, 0xf65b, 0xf352, 0xeda5, 0xe9f1,
+ 0xee90, 0xf49e, 0xf69b, 0xf7d7, 0xfc8d, 0x0270,
+ 0xfff2, 0xf64f, 0xf13e, 0xee1f, 0xe5fe, 0xe1a8,
+ 0xe8ce, 0xf3fc, 0xf9aa, 0xfa82, 0xfba2, 0xfcec,
+ 0xfd27, 0xfd25, 0xfb16, 0xf588, 0xef58, 0xee03,
+ 0xf325, 0xf789, 0xf6ec, 0xf45b, 0xeffd, 0xed3a,
+ 0xf177, 0xf8bd, 0xffc8, 0x037f, 0xfd22, 0xf2f9,
+ 0xf041, 0xf67d, 0x02b0, 0x0aa2, 0x0a4f, 0x0a73,
+ 0x0827, 0x0397, 0x0917, 0x0f25, 0x0c6e, 0x0ffb,
+ 0x18e1, 0x1932, 0x160c, 0x1595, 0x10eb, 0x057a,
+ 0xfdeb, 0xff9d, 0xff24, 0xfb1e, 0xfd5e, 0x0061,
+ 0x003b, 0x002f, 0xfae3, 0xf7e7, 0x0239, 0x0b35,
+ 0x08c7, 0x048d, 0x05a1, 0x0c22, 0x0f8e, 0x09c2,
+ 0x0408, 0x03f3, 0x062c, 0x0ac2, 0x108b, 0x12f8,
+ 0x0e48, 0x0656, 0x0414, 0x036a, 0xfeb0, 0xfcd6,
+ 0xfc6d, 0xf885, 0xf6ed, 0xf937, 0xfef0, 0x0792,
+ 0x0b8d, 0x0b2e, 0x0942, 0x00b2, 0xf779, 0xf66f,
+ 0xf869, 0xfa24, 0xfe2c, 0x0399, 0x099c, 0x1207,
+ 0x1a90, 0x198e, 0x0fc6, 0x0af2, 0x0904, 0x01e9,
+ 0xfe8a, 0x00e1, 0x0044, 0xfddb, 0xfbdc, 0xf94e,
+ 0xf601, 0xf072, 0xeb79, 0xe909, 0xe8f6, 0xef3e,
+ 0xf4c2, 0xf03a, 0xeca9, 0xf099, 0xf409, 0xf80a,
+ 0xfe9e, 0xff95, 0xf840, 0xf076, 0xed75, 0xebb5,
+ 0xea1e, 0xebe7, 0xecf9, 0xeaf4, 0xebf1, 0xf018,
+ 0xf339, 0xf539, 0xf60c, 0xf518, 0xf38e, 0xf675,
+ 0xfedc, 0x022e, 0xfe26, 0xfe2c, 0x04a0, 0x0d82,
+ 0x1597, 0x1471, 0x0828, 0xfa8a, 0xf504, 0xf81d,
+ 0xfba1, 0xfe70, 0x04a1, 0x060b, 0xffe7, 0xfc22,
+ 0xfc1e, 0xfdeb, 0xffa4, 0xfd6b, 0xfdff, 0x0192,
+ 0xfe25, 0xfc25, 0x01f5, 0x021b, 0xfb2a, 0xf87f,
+ 0xfd45, 0x0493, 0x06ce, 0x0426, 0x006e, 0xf885,
+ 0xefb2, 0xed57, 0xefda, 0xf567, 0xf984, 0xf65d,
+ 0xf4c0, 0xfd28, 0x08ba, 0x0fa1, 0x0fa3, 0x0b65,
+ 0x06f3, 0x01ff, 0x004b, 0x065e, 0x0c98, 0x0d65,
+ 0x0c85, 0x093e, 0x0377, 0xffd6, 0xfbd5, 0xf515,
+ 0xf1b1, 0xf1ec, 0xf101, 0xf34f, 0xfacc, 0xfea1,
+ 0xfed5, 0x042e, 0x0a93, 0x09a9, 0x0529, 0x0014,
+ 0xf977, 0xf606, 0xf3c1, 0xecc6, 0xecc2, 0xf967,
+ 0xff91, 0xfab9, 0xfae1, 0x0053, 0x030b, 0x034c,
+ 0x01aa, 0x015f, 0x048f, 0x0613, 0x05e6, 0x0748,
+ 0x089a, 0x0929, 0x0722, 0x003f, 0xf847, 0xf2fb,
+ 0xf1cd, 0xf59f, 0xfbce, 0x0103, 0x0321, 0x01b6,
+ 0xfe84, 0xf9e9, 0xf603, 0xf51b, 0xf3b6, 0xf26a,
+ 0xf3f8, 0xf46d, 0xf5d9, 0xfba8, 0xfcdc, 0xf5ec,
+ 0xf12c, 0xf59c, 0xff6e, 0x08a0, 0x106d, 0x116e,
+ 0x0664, 0xffab, 0x0903, 0x11ef, 0x1140, 0x0d5a,
+ 0x0817, 0x0604, 0x0947, 0x0b0a, 0x0973, 0x05e7,
+ 0x016f, 0xfc1f, 0xf2bc, 0xebd0, 0xeed2, 0xf3ad,
+ 0xf735, 0xfbd1, 0xfa84, 0xf521, 0xf522, 0xf8b7,
+ 0xfd9a, 0x0615, 0x0d6e, 0x0ca8, 0x06d6, 0x0406,
+ 0x028d, 0xfd75, 0xf94d, 0xfa54, 0xfd1b, 0xfb5e,
+ 0xf400, 0xf144, 0xf5b9, 0xf5cb, 0xf423, 0xf905,
+ 0xfd3b, 0xfdcf, 0xfea6, 0xfe56, 0xfbf6, 0xf636,
+ 0xf0f7, 0xf530, 0xfbcf, 0xf93b, 0xf2e4, 0xf0b1,
+ 0xf232, 0xf555, 0xfae8, 0x00e0, 0xff16, 0xfaa4,
+ 0x010e, 0x0aa3, 0x0ccd, 0x0b9b, 0x06fd, 0x023e,
+ 0x0477, 0x060b, 0x015d, 0xfc2f, 0xfa58, 0xfbfc,
+ 0xfc5d, 0xfd5d, 0x0906, 0x1658, 0x1779, 0x1398,
+ 0x0f64, 0x075e, 0x003a, 0xfda6, 0xfdc9, 0xfe34,
+ 0xfd4f, 0xfebe, 0x048d, 0x0ab8, 0x0eea, 0x107f,
+ 0x1023, 0x0e89, 0x08fe, 0x045d, 0x09fc, 0x126a,
+ 0x116f, 0x0cc2, 0x0aa7, 0x03dd, 0xf9eb, 0xf8ae,
+ 0xfe19, 0x029e, 0x07a1, 0x0b56, 0x0bd2, 0x0bed,
+ 0x0863, 0x0272, 0x0362, 0x09a4, 0x0ee3, 0x1290,
+ 0x14a9, 0x1751, 0x1ae2, 0x1c64, 0x1de3, 0x1fd5,
+ 0x1e02, 0x18d6, 0x140d, 0x11c1, 0x1004, 0x0c93,
+ 0x0a54, 0x0822, 0x01aa, 0xfa7c, 0xf53a, 0xf01c,
+ 0xeb68, 0xe8a2, 0xecf1, 0xf749, 0xfd38, 0x00a2,
+ 0x0672, 0x072b, 0x0480, 0x071e, 0x0d1c, 0x12e9,
+ 0x16c6, 0x1811, 0x1850, 0x15c2, 0x1095, 0x0baa,
+ 0x091f, 0x0ba7, 0x0b01, 0x00fe, 0xfc66, 0xffb2,
+ 0xfdba, 0xfc79, 0x0170, 0x02b9, 0xfef3, 0xfa2e,
+ 0xf4ab, 0xee86, 0xe8b3, 0xe80a, 0xec2f, 0xeff5,
+ 0xf774, 0x0198, 0x05a6, 0x0774, 0x09c1, 0x0450,
+ 0xf7fa, 0xf0fc, 0xf5d8, 0xfe11, 0x0171, 0x053c,
+ 0x0987, 0x08ba, 0x0730, 0x0484, 0xfd16, 0xf80d,
+ 0xf810, 0xfa85, 0xfe25, 0xfd77, 0xfaea, 0xfb61,
+ 0xf8f6, 0xf6c9, 0xfaf2, 0xfbc4, 0xf5d9, 0xf1cc,
+ 0xf326, 0xf829, 0xfb8b, 0xfc03, 0xfe0c, 0xfd73,
+ 0xf69e, 0xf0e6, 0xeeb9, 0xeea4, 0xf32f, 0xf8f9,
+ 0xf970, 0xf747, 0xfa3f, 0x017e, 0x03af, 0xfef2,
+ 0xfb1d, 0xfdae, 0x070c, 0x0ff9, 0x0e9c, 0x08ff,
+ 0x0b14, 0x0e6f, 0x0777, 0xfbb2, 0xf7e4, 0xfd60,
+ 0x0504, 0x0b0f, 0x0caa, 0x07ec, 0x036a, 0x0440,
+ 0x0768, 0x0c6e, 0x10fd, 0x0d6e, 0x02d7, 0xf953,
+ 0xf64f, 0xfaf6, 0x00f3, 0x030b, 0x03d5, 0x0285,
+ 0xfec2, 0xfe19, 0xfe89, 0xfc6a, 0xfd97, 0x0383,
+ 0x07c8, 0x0788, 0x04db, 0x036c, 0x0405, 0x04ca,
+ 0x05e2, 0x07cf, 0x0b73, 0x0fe2, 0x10c0, 0x115f,
+ 0x152f, 0x13f0, 0x0f70, 0x1178, 0x139e, 0x1195,
+ 0x116b, 0x10e3, 0x102c, 0x13f6, 0x15a4, 0x0fe1,
+ 0x07b2, 0x0334, 0x04f9, 0x07d0, 0x06a3, 0x0489,
+ 0x02ad, 0x0175, 0x03fc, 0x06e9, 0x06cb, 0x066f,
+ 0x070d, 0x0934, 0x0ce5, 0x0dde, 0x0acf, 0x0867,
+ 0x0842, 0x06a8, 0x058d, 0x0a4d, 0x0cd7, 0x0456,
+ 0xfa92, 0xf833, 0xf8d5, 0xf943, 0xfa38, 0xfe0e,
+ 0x037c, 0x03e3, 0x01a9, 0x0244, 0x01dc, 0xffb1,
+ 0xfc4f, 0xf5a3, 0xf1ef, 0xf3bb, 0xf43c, 0xf33f,
+ 0xf35a, 0xf4fe, 0xf961, 0xfdde, 0xfe8a, 0xf94f,
+ 0xf22c, 0xf413, 0xfcd7, 0x01fd, 0x061e, 0x0872,
+ 0x03dc, 0x0147, 0x0504, 0x0897, 0x0b40, 0x0c6f,
+ 0x0afa, 0x0979, 0x0836, 0x07bf, 0x077d, 0x03bc,
+ 0xff8b, 0x006f, 0x0447, 0x05db, 0x0480, 0x03c8,
+ 0x01d8, 0xfa9a, 0xf407, 0xf295, 0xf3cb, 0xf8b2,
+ 0xfcf8, 0xfa5c, 0xf80a, 0xfa6d, 0xfa91, 0xf651,
+ 0xf2e0, 0xf55b, 0xfba6, 0xfec5, 0x0057, 0x04a7,
+ 0x07d5, 0x0860, 0x0a64, 0x0e4e, 0x0fa0, 0x0adb,
+ 0x039e, 0xff66, 0xfd8b, 0xfd7c, 0x00a2, 0x03ab,
+ 0x0413, 0x05c4, 0x0a3f, 0x0e9e, 0x1428, 0x1a36,
+ 0x19ad, 0x148b, 0x10a6, 0x09cc, 0x0401, 0x0841,
+ 0x0d98, 0x0c63, 0x09c4, 0x0712, 0x0522, 0x03ef,
+ 0x00c0, 0x0062, 0x03b7, 0x04a5, 0x0354, 0xff4b,
+ 0xfa39, 0xf9ac, 0xf9e8, 0xfc2d, 0x04f4, 0x0887,
+ 0x03ca, 0x005d, 0xfc4c, 0xfabb, 0x0242, 0x06ad,
+ 0x00c4, 0xfab2, 0xfa55, 0xfd59, 0xffb3, 0x0168,
+ 0x0584, 0x081a, 0x0687, 0x047b, 0xfef4, 0xf622,
+ 0xf718, 0x0371, 0x0c4b, 0x0d40, 0x0d06, 0x0b31,
+ 0x0745, 0x07d7, 0x0cc5, 0x0ff4, 0x10a4, 0x0ee7,
+ 0x09fb, 0x058e, 0x0512, 0x0665, 0x0638, 0x063c,
+ 0x077e, 0x0638, 0x05ae, 0x0a73, 0x0c7d, 0x0964,
+ 0x0803, 0x0618, 0x02b3, 0x00b8, 0xfd1a, 0xfbdf,
+ 0xffc0, 0x0010, 0x0001, 0x05f1, 0x0925, 0x06ec,
+ 0x045c, 0xffe6, 0xf8ad, 0xf286, 0xf301, 0xf8ec,
+ 0xf990, 0xf580, 0xf5da, 0xf81a, 0xf99b, 0xfa3d,
+ 0xf57b, 0xefb4, 0xee38, 0xee17, 0xf1de, 0xf943,
+ 0xfdfa, 0x0173, 0x01aa, 0xfb93, 0xf83e, 0xf936,
+ 0xf84e, 0xf949, 0xfbb2, 0xf833, 0xf045, 0xe994,
+ 0xe8af, 0xee80, 0xf3b3, 0xf3c9, 0xf211, 0xf081,
+ 0xefe9, 0xf036, 0xee2c, 0xe9b5, 0xe775, 0xea9b,
+ 0xf10a, 0xf48e, 0xf23d, 0xeddb, 0xecab, 0xf0c0,
+ 0xf778, 0xfd38, 0x00e2, 0x0041, 0xfafc, 0xf6a7,
+ 0xf76c, 0xfe9e, 0x0935, 0x0b15, 0x01f7, 0xfc92,
+ 0xfe4f, 0xff53, 0xff51, 0xfbf2, 0xf3f3, 0xf045,
+ 0xf23a, 0xf64d, 0xfde0, 0x00c6, 0xfa8f, 0xf715,
+ 0xf89e, 0xfa66, 0xfde5, 0xfd2f, 0xf7dd, 0xf952,
+ 0xfd55, 0xfbd2, 0xfa76, 0xf9ee, 0xf9c2, 0xfe54,
+ 0x02dd, 0x049f, 0x06db, 0x043b, 0xfaff, 0xf2ed,
+ 0xf106, 0xf77e, 0xff7c, 0xfe7b, 0xfc8a, 0x017b,
+ 0x035c, 0x0294, 0x0692, 0x0671, 0xffaf, 0xfe51,
+ 0x0389, 0x09cb, 0x0f5b, 0x10d5, 0x0f09, 0x0d28,
+ 0x0852, 0x0100, 0xfc14, 0xfa75, 0xfae4, 0xfb14,
+ 0xfc5a, 0x0281, 0x0786, 0x0504, 0xfe89, 0xf86c,
+ 0xf742, 0xf7e0, 0xee7c, 0xe0a4, 0xdc86, 0xe2bd,
+ 0xee43, 0xf1f0, 0xe9a5, 0xea98, 0xf4dc, 0xf6af,
+ 0xfa1a, 0x0394, 0x07ff, 0x0d8a, 0x1311, 0x112a,
+ 0x11c1, 0x1332, 0x0ce1, 0x0630, 0x01e5, 0xfe65,
+ 0xfe48, 0xffb0, 0x0242, 0x0458, 0x01d4, 0xff0f,
+ 0xfdf9, 0xfb59, 0xf7f8, 0xf3d1, 0xf0bf, 0xf182,
+ 0xf3f3, 0xf64a, 0xf4af, 0xf089, 0xf42e, 0xfc2c,
+ 0xff48, 0xff5b, 0xfc47, 0xf736, 0xf1bf, 0xe96a,
+ 0xe855, 0xf180, 0xf693, 0xf97c, 0xfef5, 0xff78,
+ 0xfc57, 0xf671, 0xefbd, 0xefa6, 0xecc4, 0xe709,
+ 0xf194, 0x03e7, 0x098e, 0x0460, 0xfbf9, 0xf74d,
+ 0xf8f9, 0xfb65, 0xfdfd, 0x0158, 0x044e, 0x06fb,
+ 0x04c2, 0xfe68, 0xf89f, 0xf1e9, 0xef56, 0xf3af,
+ 0xf928, 0x02ee, 0x0c15, 0x06a3, 0xfae4, 0xf5ff,
+ 0xf67e, 0xf8d6, 0xf6f4, 0xefda, 0xed3f, 0xf21a,
+ 0xf90c, 0xfd83, 0xff1b, 0x00ad, 0x0186, 0x0368,
+ 0x0959, 0x0c66, 0x0a76, 0x0852, 0x04db, 0x049f,
+ 0x0aa3, 0x0ef8, 0x0fad, 0x0a0a, 0xfdfe, 0xfb44,
+ 0x00d6, 0x007d, 0x00fa, 0x049c, 0x0396, 0x05d3,
+ 0x0df5, 0x11ed, 0x0ef7, 0x05d0, 0xfaae, 0xf594,
+ 0xf91d, 0x02da, 0x09a7, 0x0862, 0x0779, 0x0762,
+ 0x0360, 0x011a, 0xff6d, 0xfca2, 0xffc5, 0x01da,
+ 0xfd7a, 0xfee5, 0x0434, 0x012c, 0xfa60, 0xf98c,
+ 0x0011, 0x0719, 0x0786, 0x0519, 0x03bc, 0x01e7,
+ 0x029d, 0x056a, 0x0555, 0x04d7, 0x0715, 0x0ac5,
+ 0x0ee7, 0x1223, 0x126b, 0x0cf1, 0x0389, 0xfdee,
+ 0xfe5e, 0x03c7, 0x0c32, 0x0fcb, 0x0f07, 0x0f8e,
+ 0x0c3d, 0x0462, 0xfc4a, 0xf392, 0xf113, 0xf7ba,
+ 0x0204, 0x0f31, 0x1233, 0x0107, 0xf0ee, 0xef2a,
+ 0xf381, 0xfc05, 0x05e9, 0x0e7c, 0x1619, 0x1533,
+ 0x0de5, 0x0787, 0xfc83, 0xf050, 0xed19, 0xf070,
+ 0xf559, 0xf615, 0xf1de, 0xf071, 0xf042, 0xeff7,
+ 0xf53d, 0xfb11, 0xfcaf, 0xfd5d, 0xfe64, 0xfff8,
+ 0xfd2b, 0xf5c4, 0xf3d8, 0xf4c7, 0xf345, 0xf367,
+ 0xf1db, 0xf239, 0xfbba, 0x00c3, 0xfa4e, 0xf2ea,
+ 0xf094, 0xf4a3, 0xf76b, 0xf43c, 0xf6cf, 0xfd16,
+ 0xfcae, 0xfad2, 0xf82f, 0xf4e5, 0xf754, 0xfbcc,
+ 0x0278, 0x088f, 0x009c, 0xf698, 0xf765, 0xf29d,
+ 0xeb58, 0xf143, 0xf881, 0xfa46, 0xfe74, 0x03da,
+ 0x09f6, 0x0f29, 0x0c04, 0x0299, 0xfad7, 0xfb57,
+ 0x043e, 0x0837, 0x0428, 0x04f4, 0x0870, 0x093f,
+ 0x0fda, 0x1763, 0x1500, 0x0f96, 0x0b7f, 0x07b4,
+ 0x09d3, 0x0e47, 0x0e2e, 0x0c0d, 0x0511, 0xfb92,
+ 0xfeba, 0x0b6b, 0x119d, 0x11f2, 0x0fe7, 0x06f5,
+ 0xfb38, 0xf587, 0xf454, 0xf25a, 0xef8a, 0xea87,
+ 0xe2dc, 0xe21e, 0xec03, 0xf404, 0xf57e, 0xf6e4,
+ 0xf574, 0xf00e, 0xeed1, 0xf042, 0xf01c, 0xf334,
+ 0xf86f, 0xfb1c, 0xfa49, 0xf0a0, 0xe416, 0xe297,
+ 0xe472, 0xe77e, 0xf860, 0x06a0, 0x03e2, 0x0194,
+ 0xff4b, 0xf4e3, 0xee9f, 0xeec6, 0xf4db, 0x00c2,
+ 0x01c3, 0xf970, 0xf760, 0xfb2c, 0x0653, 0x0d15,
+ 0xfc56, 0xe6b2, 0xe034, 0xe8b0, 0x03fa, 0x2020,
+ 0x2593, 0x178b, 0xf761, 0xd18b, 0xc238, 0xcd7e,
+ 0xeded, 0x1670, 0x2afb, 0x294f, 0x1b8f, 0x0158,
+ 0xe696, 0xd1fa, 0xc2fb, 0xc4c6, 0xd504, 0xe85b,
+ 0xf658, 0xefe4, 0xdb0d, 0xccfc, 0xcbe6, 0xdf3e,
+ 0x041f, 0x23c8, 0x32a2, 0x2cc5, 0x1642, 0x0078,
+ 0xef14, 0xe463, 0xedf2, 0x09df, 0x2afa, 0x3e2a,
+ 0x3520, 0x2470, 0x1e24, 0x12f1, 0x002d, 0xf09d,
+ 0xe235, 0xdb41, 0xe721, 0xfdf0, 0x11c0, 0x1c9b,
+ 0x1a6a, 0x0e52, 0x0461, 0xfc70, 0xf1ee, 0xf0c9,
+ 0xf77b, 0xf712, 0xf8a1, 0xfcd2, 0xf338, 0xe8f1,
+ 0xe99c, 0xe918, 0xe719, 0xdfc3, 0xcfa1, 0xccf6,
+ 0xd9cf, 0xdca4, 0xce7a, 0xb9cd, 0xaf7c, 0xb633,
+ 0xbe64, 0xc5bb, 0xd685, 0xe8c3, 0xf46e, 0xfb22,
+ 0xfe5c, 0x00b6, 0xff01, 0xfccc, 0x051b, 0x0b24,
+ 0x012a, 0xf2e0, 0xe940, 0xe99b, 0xf4a8, 0xf696,
+ 0xeb11, 0xe4f4, 0xe888, 0xf607, 0x0e62, 0x21dd,
+ 0x2237, 0x0a57, 0xe29c, 0xcb7a, 0xd242, 0xe164,
+ 0xf20c, 0x07ea, 0x155e, 0x137a, 0x0e40, 0x0e11,
+ 0x0947, 0xf8a1, 0xee6e, 0xf66b, 0x0401, 0x1626,
+ 0x2c57, 0x35fd, 0x3328, 0x29ac, 0x174a, 0x0b72,
+ 0x1137, 0x1f25, 0x30ec, 0x3d3d, 0x39ab, 0x3168,
+ 0x28a3, 0x177f, 0x0852, 0x063f, 0x0cd2, 0x19e1,
+ 0x2ad0, 0x339a, 0x2c94, 0x1cb9, 0x12b6, 0x15df,
+ 0x1e24, 0x22c0, 0x25d7, 0x2506, 0x1ac7, 0x0d45,
+ 0xffa0, 0xf3fd, 0xf4b4, 0xfbe5, 0x03f1, 0x136b,
+ 0x1586, 0x0029, 0xf09c, 0xea64, 0xe772, 0xf04a,
+ 0xf1d8, 0xe8b0, 0xe7bc, 0xe13c, 0xd9c6, 0xe440,
+ 0xed60, 0xf1dc, 0xf578, 0xe990, 0xdfde, 0xe08b,
+ 0xdbf1, 0xdd2d, 0xdd0b, 0xd436, 0xdabc, 0xe11b,
+ 0xe18c, 0xf744, 0x0017, 0xeb4b, 0xe21c, 0xd808,
+ 0xc141, 0xbb5e, 0xbd72, 0xc483, 0xde0e, 0xf1b4,
+ 0xfcc8, 0x09eb, 0x0498, 0x0299, 0x2436, 0x3f1a,
+ 0x376c, 0x3034, 0x31d6, 0x2a0b, 0x260b, 0x2f31,
+ 0x2cc1, 0x1920, 0x102b, 0x188d, 0x2307, 0x2ebb,
+ 0x339d, 0x2175, 0x1054, 0x19e2, 0x23dc, 0x2718,
+ 0x4158, 0x5fe4, 0x613e, 0x57cb, 0x5360, 0x4cfb,
+ 0x490e, 0x4942, 0x45b5, 0x3bcf, 0x3594, 0x401e,
+ 0x4f9f, 0x566f, 0x5abf, 0x54ba, 0x4869, 0x4ce2,
+ 0x53c6, 0x5639, 0x6450, 0x64ff, 0x5264, 0x4cc6,
+ 0x49c4, 0x4027, 0x3e43, 0x37be, 0x3077, 0x35a1,
+ 0x320f, 0x2a1f, 0x3583, 0x43fa, 0x4277, 0x35f6,
+ 0x28ac, 0x2227, 0x1e95, 0x1d15, 0x2603, 0x33a6,
+ 0x3c79, 0x41c7, 0x426a, 0x3c76, 0x3350, 0x2a63,
+ 0x231e, 0x1bed, 0x1256, 0x0945, 0x088e, 0x1094,
+ 0x1606, 0x13d4, 0x0e9e, 0x07ae, 0x02e8, 0x041c,
+ 0x0203, 0xf97d, 0xf8c9, 0x002a, 0xfcab, 0xef16,
+ 0xe5d0, 0xdc85, 0xd832, 0xe59f, 0xef4f, 0xed59,
+ 0xf35c, 0xf085, 0xdf49, 0xdc59, 0xdadc, 0xd120,
+ 0xd564, 0xd91c, 0xd4a0, 0xd916, 0xd4e0, 0xc7c0,
+ 0xca97, 0xd02c, 0xcfb7, 0xd1b9, 0xcc43, 0xc190,
+ 0xbbfc, 0xb66d, 0xae2d, 0xa1f1, 0x9819, 0x9de8,
+ 0xae1c, 0xbe53, 0xc4f1, 0xbba4, 0xb55a, 0xb218,
+ 0x9bdb, 0x8d64, 0x9973, 0x9962, 0x8c8e, 0x8f1c,
+ 0x90a0, 0x8c72, 0x941d, 0x9989, 0x988f, 0xa07b,
+ 0xa526, 0xa264, 0xa7b6, 0xac4f, 0xabc0, 0xb3ba,
+ 0xba65, 0xb67b, 0xb5af, 0xb53a, 0xaf18, 0xb80f,
+ 0xcb14, 0xc066, 0xa6e5, 0xac92, 0xb746, 0xad44,
+ 0xb5ec, 0xc84d, 0xbe90, 0xb884, 0xc3ff, 0xc2a1,
+ 0xbdf1, 0xc72e, 0xd719, 0xe088, 0xdba0, 0xdb68,
+ 0xdeb1, 0xd208, 0xd348, 0xe09e, 0xd7aa, 0xdc6a,
+ 0xf250, 0xf0c1, 0xf6b9, 0x0535, 0xf59b, 0xea3b,
+ 0xf4bb, 0xf98c, 0xfb5e, 0xfe44, 0x00f9, 0xfcd1,
+ 0xee67, 0xf5dc, 0x046e, 0xf207, 0xe9cc, 0xf966,
+ 0xf206, 0xe5a7, 0xe808, 0xdef8, 0xd1c7, 0xda37,
+ 0xf25a, 0xfab8, 0xf15b, 0xf67d, 0xf8c9, 0xe74a,
+ 0xec88, 0x01a5, 0x046c, 0x0507, 0x029a, 0xf8ac,
+ 0xf9a3, 0xfe69, 0x0313, 0x09fb, 0x0bd8, 0x0f96,
+ 0x0bfc, 0xff2f, 0x028c, 0x07c5, 0x006c, 0xf95f,
+ 0xed72, 0xeecf, 0x05b9, 0x0b08, 0x0249, 0xfdfe,
+ 0xf361, 0xeb50, 0xe819, 0xeda8, 0x0445, 0x0844,
+ 0xff0e, 0x111b, 0x1dbc, 0x1248, 0x0e5d, 0x1163,
+ 0x16ed, 0x21f5, 0x2bbc, 0x31c9, 0x2df4, 0x2b7c,
+ 0x2dec, 0x2376, 0x1feb, 0x1bda, 0x00fc, 0x0687,
+ 0x1d75, 0x07fa, 0x0572, 0x1e67, 0x0e91, 0x050c,
+ 0x16dd, 0x13e5, 0x12bc, 0x195a, 0x14f7, 0x19e0,
+ 0x1cc5, 0x18ce, 0x23f3, 0x2cdf, 0x2e94, 0x35d5,
+ 0x37e5, 0x3145, 0x2208, 0x1800, 0x1fb2, 0x19a9,
+ 0x0f75, 0x244d, 0x2b74, 0x146b, 0x0cf2, 0x0715,
+ 0xf4f7, 0xf2f5, 0xf260, 0xe84c, 0xf117, 0x0199,
+ 0x046c, 0x0d5b, 0x1646, 0x07a8, 0xff48, 0x0b53,
+ 0x0d1b, 0x10c6, 0x1c3c, 0x10f6, 0x0f6a, 0x25f1,
+ 0x1a60, 0x06a4, 0x1db7, 0x3234, 0x3813, 0x46e2,
+ 0x40e3, 0x2fcc, 0x36b9, 0x3db3, 0x41d9, 0x52cf,
+ 0x527f, 0x46bf, 0x4ef6, 0x486a, 0x2bdc, 0x2e54,
+ 0x3d59, 0x3372, 0x2eac, 0x2d5a, 0x23ce, 0x3319,
+ 0x4222, 0x362b, 0x3bcb, 0x4a65, 0x4ac4, 0x5678,
+ 0x546f, 0x4124, 0x49e3, 0x4ded, 0x3fef, 0x4133,
+ 0x2dab, 0x155f, 0x2e3d, 0x3c71, 0x3209, 0x45b3,
+ 0x4894, 0x2cb7, 0x3138, 0x39ad, 0x2a5d, 0x2c74,
+ 0x2eec, 0x1f32, 0x2881, 0x427d, 0x3ca9, 0x247a,
+ 0x24f8, 0x368b, 0x2f27, 0x1abc, 0x2328, 0x2714,
+ 0x0f6e, 0x1536, 0x27a3, 0x1710, 0x1e85, 0x3c70,
+ 0x309f, 0x31d7, 0x48b6, 0x2b02, 0x1518, 0x2e13,
+ 0x2776, 0x1c38, 0x394d, 0x4405, 0x3752, 0x306e,
+ 0x286e, 0x2c89, 0x3769, 0x351b, 0x2adb, 0x18c0,
+ 0x1815, 0x2bf7, 0x1a8a, 0xfb77, 0x07f0, 0x1a37,
+ 0x2102, 0x2a3a, 0x2109, 0x187d, 0x1c5a, 0x0d33,
+ 0x01ce, 0x114c, 0x2430, 0x301a, 0x25ad, 0x11cd,
+ 0x2255, 0x35ad, 0x2338, 0x153e, 0x1224, 0xffb4,
+ 0xfc51, 0x154d, 0x255e, 0x1faf, 0x1a24, 0x1e6b,
+ 0x19b0, 0x0949, 0x0acc, 0x1dd2, 0x2566, 0x1c91,
+ 0x08ed, 0xf7bd, 0xfb54, 0x04ac, 0x09f0, 0x182a,
+ 0x1665, 0xfc93, 0xf7fe, 0x023f, 0x00bf, 0x086b,
+ 0x0632, 0xeb2e, 0xef41, 0x05f9, 0xff6c, 0x0641,
+ 0x1baa, 0x0c1d, 0xfb7d, 0xfe52, 0xebf4, 0xdc7b,
+ 0xea68, 0xf0d2, 0xe7ec, 0xe3a5, 0xe407, 0xe7a2,
+ 0xe867, 0xdfcf, 0xdc33, 0xe7ce, 0xec6e, 0xd47d,
+ 0xbee8, 0xd4c9, 0xf9a8, 0xfba1, 0xe764, 0xe69e,
+ 0xf94c, 0xfca4, 0xef99, 0xf4ee, 0x0a10, 0x13ad,
+ 0x0f84, 0x043f, 0x0105, 0x0696, 0xf77d, 0xeac7,
+ 0x01c5, 0x0626, 0xef7e, 0xff54, 0x121e, 0xf824,
+ 0xefd3, 0xfcbf, 0xe6a6, 0xd79f, 0xe967, 0xe61b,
+ 0xdc78, 0xe4d0, 0xdb1d, 0xd788, 0xe756, 0xd41b,
+ 0xc421, 0xda60, 0xd057, 0xbec7, 0xd6df, 0xd33e,
+ 0xc047, 0xd518, 0xd124, 0xb133, 0xb532, 0xb722,
+ 0x9d53, 0x97ed, 0xaacb, 0xb613, 0xbaab, 0xc96b,
+ 0xcefc, 0xc092, 0xca0b, 0xd97c, 0xc18d, 0xc4ba,
+ 0xeb6c, 0xe062, 0xcea8, 0xe64e, 0xe816, 0xdca9,
+ 0xe7aa, 0xe409, 0xd21b, 0xd02d, 0xdc4a, 0xea2c,
+ 0xee1e, 0xf00e, 0xf100, 0xe1ce, 0xd997, 0xdfbe,
+ 0xdd2b, 0xe5d6, 0xf67d, 0xf043, 0xf44a, 0x0ac8,
+ 0x00f5, 0xebdd, 0xfe97, 0x0e3b, 0xeea0, 0xdd52,
+ 0xf702, 0xf502, 0xe198, 0xf8dd, 0x071e, 0xf0ef,
+ 0xe851, 0xdee5, 0xcb50, 0xd119, 0xe041, 0xe3cc,
+ 0xde9c, 0xd2ea, 0xd3d9, 0xd8a1, 0xd34c, 0xdf10,
+ 0xf38f, 0xf1ef, 0xde9e, 0xcd7c, 0xdb23, 0xf2b0,
+ 0xeaa5, 0xecd1, 0xffb9, 0xee27, 0xda76, 0xdf6f,
+ 0xdd18, 0xddb1, 0xd9e7, 0xc66e, 0xc7e9, 0xd094,
+ 0xc99d, 0xcc65, 0xd4d6, 0xd67a, 0xce18, 0xb858,
+ 0xb043, 0xb325, 0xaf57, 0xb867, 0xb95e, 0xa792,
+ 0xa9de, 0xab4b, 0xa2b9, 0xb181, 0xbd7c, 0xc974,
+ 0xe6ac, 0xda9a, 0xbf4d, 0xe012, 0xfb1e, 0xdaf4,
+ 0xc3cd, 0xcf83, 0xd1bb, 0xc3f1, 0xc509, 0xd0b1,
+ 0xca3a, 0xbf63, 0xc8d4, 0xd7e7, 0xd9f0, 0xd039,
+ 0xc685, 0xbf31, 0xb59d, 0xbaf3, 0xccb2, 0xceaf,
+ 0xcf97, 0xdac6, 0xdb48, 0xd8d9, 0xdcb8, 0xe352,
+ 0xe717, 0xd82e, 0xd7cc, 0xf1cb, 0xe3dd, 0xcf1a,
+ 0xecd9, 0xee7e, 0xd3a6, 0xe7bf, 0xf94e, 0xeaf9,
+ 0xe68e, 0xe4d9, 0xe890, 0xf1bc, 0xea5a, 0xf036,
+ 0x00f8, 0xf741, 0xf2d7, 0x025c, 0x05cd, 0x03f7,
+ 0x0d36, 0x1a03, 0x1787, 0x05af, 0x0711, 0x14ca,
+ 0x0f18, 0x140d, 0x2eed, 0x3407, 0x215e, 0x16bd,
+ 0x1a23, 0x19cf, 0x104d, 0x0b46, 0x0255, 0xf83e,
+ 0x0272, 0xfc6b, 0xe22d, 0xef37, 0xfe2b, 0xea2e,
+ 0xed9c, 0xf133, 0xd510, 0xdb43, 0xf0cf, 0xe6a0,
+ 0xf07b, 0xfe9f, 0xdd37, 0xc94f, 0xe3eb, 0xf3e3,
+ 0xeafa, 0xe4b5, 0xe329, 0xdee0, 0xe20f, 0xf44d,
+ 0xfed6, 0xf4ff, 0xed92, 0xe6f7, 0xd25e, 0xc9dc,
+ 0xd39e, 0xcf77, 0xcb52, 0xe1c1, 0xf418, 0xf0f4,
+ 0xee38, 0xe5ac, 0xd4d2, 0xdb5c, 0xeeb5, 0xe76b,
+ 0xd3ed, 0xcf40, 0xcf88, 0xd1a9, 0xd887, 0xd9a1,
+ 0xdefb, 0xe9f2, 0xde55, 0xd434, 0xeb24, 0xf11f,
+ 0xe110, 0xf163, 0xfa60, 0xddca, 0xd75d, 0xdd03,
+ 0xcefe, 0xd2df, 0xdfed, 0xe547, 0xfbf9, 0x04b2,
+ 0xf36b, 0xf2fb, 0xf006, 0xe23a, 0xee78, 0xf920,
+ 0xeb1d, 0xe3da, 0xe62a, 0xe98a, 0xefab, 0xf5a2,
+ 0x0818, 0x2170, 0x23e0, 0x1185, 0x073b, 0x1773,
+ 0x2ab8, 0x21eb, 0x1b3b, 0x2548, 0x1bd1, 0x1599,
+ 0x2946, 0x27ed, 0x1800, 0x2196, 0x2e73, 0x30d5,
+ 0x388e, 0x4502, 0x50d8, 0x4b6f, 0x2d42, 0x1628,
+ 0x19b0, 0x2516, 0x1f4e, 0x0cd7, 0x0ed6, 0x182c,
+ 0x055d, 0xfe2a, 0x14e8, 0x157e, 0x1248, 0x2c03,
+ 0x30fc, 0x2035, 0x226b, 0x2304, 0x1c94, 0x15dc,
+ 0xfb79, 0xf7b2, 0x1e83, 0x2232, 0x0693, 0x0ba1,
+ 0x1041, 0x015e, 0xfe96, 0xf109, 0xde0b, 0xf0e3,
+ 0x0399, 0xf00a, 0xde7e, 0xea5c, 0x0136, 0x09d8,
+ 0x0172, 0xfb85, 0xfd71, 0x0abd, 0x255d, 0x2850,
+ 0x08de, 0xecbc, 0xdcf7, 0xe215, 0x0091, 0x08a0,
+ 0xf9c4, 0xfae1, 0xf38d, 0xe9fa, 0x0413, 0x15d1,
+ 0x0881, 0x04f8, 0x06a1, 0xffee, 0xf4f7, 0xdf91,
+ 0xdc1f, 0xf721, 0x087d, 0x0bff, 0x0c4b, 0x02a2,
+ 0xff92, 0xfd2b, 0xefaa, 0xf569, 0x02ee, 0xfefa,
+ 0x094a, 0x1f2e, 0x28bb, 0x3775, 0x3e53, 0x3112,
+ 0x2bdb, 0x211c, 0x103a, 0x2567, 0x3d71, 0x25f8,
+ 0x0edd, 0x199d, 0x2a85, 0x3cb1, 0x54fa, 0x631b,
+ 0x5d6f, 0x4a69, 0x34f6, 0x1d57, 0x06cd, 0x07a7,
+ 0x19c1, 0x1e8e, 0x1e04, 0x1dbc, 0x119c, 0x18ce,
+ 0x34d6, 0x3397, 0x292c, 0x2bc3, 0x120a, 0xf9c7,
+ 0x08bf, 0x0bd0, 0x0893, 0x1fc9, 0x2723, 0x1e89,
+ 0x1fef, 0x1ae9, 0x1c30, 0x1d2c, 0x0b79, 0x0f19,
+ 0x0daa, 0xe7a3, 0xf099, 0x17af, 0x069b, 0xfe38,
+ 0x1d6d, 0x177b, 0xfbb9, 0xfb8f, 0x0b83, 0x17ed,
+ 0x0dfe, 0xfb45, 0xfe36, 0x0754, 0x0a41, 0x0c8f,
+ 0x0a1a, 0x0a79, 0x0582, 0xf15c, 0xed0e, 0xfe71,
+ 0x07ee, 0x06f6, 0x0941, 0x0e87, 0x07f0, 0x0006,
+ 0x10ac, 0x1bf9, 0x1756, 0x2743, 0x222d, 0xf937,
+ 0xfebf, 0x1f8d, 0x1c06, 0x12a3, 0x0a8d, 0x0115,
+ 0x0dbd, 0x1196, 0x0e32, 0x1eb9, 0x1497, 0xf509,
+ 0xf127, 0xef9a, 0xeeb6, 0x01c2, 0x0b42, 0x0e23,
+ 0x128a, 0x070a, 0x05e6, 0x147d, 0x0f33, 0xfe94,
+ 0xf60e, 0xf6f1, 0x0009, 0x0549, 0x0d3b, 0x17ac,
+ 0x0e22, 0x0921, 0x19f5, 0x2043, 0x2121, 0x2663,
+ 0x24d3, 0x34b2, 0x49d7, 0x37f9, 0x1548, 0xfce0,
+ 0xf5c4, 0x0fa5, 0x28a9, 0x2527, 0x1a11, 0xf96c,
+ 0xcf01, 0xd582, 0xf85f, 0x0b78, 0x1a95, 0x2586,
+ 0x2101, 0x101f, 0x0317, 0x1102, 0x1e04, 0x1445,
+ 0x1e38, 0x28aa, 0x0798, 0xee40, 0xf532, 0xfbcf,
+ 0x018e, 0xfe80, 0xfd69, 0x1e0b, 0x3a8d, 0x3ded,
+ 0x4130, 0x2a77, 0x062f, 0x0827, 0x0d18, 0x01fc,
+ 0x0ef5, 0x1efa, 0x189e, 0x101f, 0x065a, 0x04f1,
+ 0x16b5, 0x1aed, 0x107c, 0x1745, 0x1d29, 0x1033,
+ 0x089b, 0x06f2, 0xffa8, 0x0457, 0x14eb, 0x1d7d,
+ 0x21df, 0x2792, 0x29c7, 0x2669, 0x17a7, 0x0679,
+ 0x002d, 0xff02, 0x0a3a, 0x1609, 0xfbfc, 0xe1c8,
+ 0xf48f, 0x067e, 0x12d0, 0x33a0, 0x310a, 0x0b55,
+ 0x0a74, 0x15b1, 0x0b7b, 0x12af, 0x223f, 0x2089,
+ 0x2298, 0x1e77, 0x0810, 0xfed2, 0x03ea, 0x084f,
+ 0x1125, 0x0ef2, 0x03ec, 0x0a37, 0x0ec0, 0x0c18,
+ 0x1afe, 0x1f74, 0x0fd8, 0x0eac, 0x06f4, 0xecb3,
+ 0xe7dd, 0xf838, 0x069b, 0x0380, 0xee18, 0xf295,
+ 0x0ebf, 0x0f2e, 0x067d, 0x0663, 0xfade, 0xf63c,
+ 0xfab0, 0x0190, 0x1676, 0x1865, 0x100b, 0x2797,
+ 0x2bba, 0x1422, 0x1eef, 0x2bf0, 0x191a, 0x0640,
+ 0x017d, 0x13a9, 0x2156, 0x054a, 0xea16, 0xe7bf,
+ 0xeef4, 0x01cc, 0xfae4, 0xe0a4, 0xf12e, 0x0a86,
+ 0x0da1, 0x13f8, 0x09b4, 0x06dd, 0x20b4, 0x15ed,
+ 0x0978, 0x3129, 0x3ed1, 0x3273, 0x38e7, 0x2015,
+ 0x0744, 0x1a98, 0x0f3a, 0xfd4e, 0x278f, 0x3722,
+ 0x11ed, 0x1058, 0x1dc3, 0x0ad7, 0x0332, 0x1096,
+ 0x110a, 0x093f, 0x0a05, 0x12a7, 0x10f8, 0xf813,
+ 0xe333, 0xe8e4, 0xf522, 0xf673, 0xf13f, 0xeb88,
+ 0xe0eb, 0xd874, 0xec57, 0x011d, 0xee3b, 0xe9f4,
+ 0x0815, 0x0a35, 0x01be, 0x03c0, 0xec99, 0xe05e,
+ 0xec48, 0xe921, 0xfb7b, 0x1a72, 0x0f7d, 0x0432,
+ 0x006e, 0xe858, 0xe81b, 0xfc61, 0x02f4, 0x033a,
+ 0xf16d, 0xe650, 0xf6cd, 0xf167, 0xec88, 0x0576,
+ 0x079e, 0x0572, 0x11f7, 0x02c7, 0xfe8c, 0x15d8,
+ 0x154f, 0x1186, 0x08f5, 0xdb68, 0xc57a, 0xdb29,
+ 0xe1de, 0xe262, 0xedd9, 0xe4b7, 0xdad6, 0xf830,
+ 0x178a, 0x143b, 0x0d49, 0x0c4a, 0x0367, 0x03a4,
+ 0x01ff, 0xf668, 0xfc7c, 0xf29e, 0xce85, 0xd1ad,
+ 0xe255, 0xd7fb, 0xe1bf, 0xef4b, 0xdbdb, 0xcd9f,
+ 0xd2d0, 0xdde9, 0xdf23, 0xceb2, 0xd2a5, 0xe793,
+ 0xef9b, 0x024f, 0x0aa1, 0xfac2, 0x06ee, 0x11fd,
+ 0x021a, 0x03ef, 0xfa2d, 0xe0f6, 0xe7af, 0xe814,
+ 0xe443, 0xfe75, 0x02e6, 0xfb59, 0x0c2d, 0x0a7d,
+ 0x0019, 0xfe26, 0xeac3, 0xe6c3, 0xefd2, 0xe309,
+ 0xe987, 0xfc22, 0xf4bc, 0xf826, 0xffed, 0xf385,
+ 0xf361, 0xf1b3, 0xe3b8, 0xec63, 0xf1be, 0xe3d7,
+ 0xe829, 0xf28c, 0xf7cb, 0x06fc, 0x073b, 0xfaa2,
+ 0xfb1b, 0xf131, 0xdfb1, 0xe3da, 0xea69, 0xea60,
+ 0xeb51, 0xd9b2, 0xbb04, 0xa8a7, 0xaaca, 0xc094,
+ 0xcdf1, 0xcd95, 0xe07e, 0xe7b8, 0xcb93, 0xc6f6,
+ 0xd7a7, 0xd529, 0xdae7, 0xe710, 0xde0d, 0xd419,
+ 0xd270, 0xda1e, 0xeb12, 0xeaa0, 0xe105, 0xdcc9,
+ 0xd200, 0xdba6, 0xf07c, 0xddf6, 0xc96e, 0xcbe9,
+ 0xc008, 0xc195, 0xd74c, 0xcd10, 0xc075, 0xd030,
+ 0xd073, 0xc23b, 0xc026, 0xbdbc, 0xbe70, 0xce62,
+ 0xe074, 0xe635, 0xd76c, 0xc26d, 0xc972, 0xe3e8,
+ 0xeaea, 0xe145, 0xdb75, 0xdc30, 0xeb12, 0xfa4f,
+ 0xede4, 0xe1cf, 0xed04, 0xeb51, 0xe1b5, 0xeb52,
+ 0xe7d8, 0xd35a, 0xcd4c, 0xc2a0, 0xb579, 0xc86c,
+ 0xd844, 0xc448, 0xb625, 0xbbd7, 0xc3ab, 0xe060,
+ 0x06d0, 0x05cf, 0xe5e7, 0xcacf, 0xbeb6, 0xc824,
+ 0xce45, 0xbfc7, 0xcaf9, 0xe638, 0xdb12, 0xd52e,
+ 0xec32, 0xe41b, 0xd268, 0xe727, 0xf9ab, 0xefba,
+ 0xdc4e, 0xc6f1, 0xb92b, 0xbf62, 0xd436, 0xda12,
+ 0xc812, 0xc81b, 0xd817, 0xcd77, 0xbe9f, 0xbac0,
+ 0xac64, 0xad31, 0xc143, 0xcc1b, 0xdcde, 0xee3f,
+ 0xf34d, 0x0603, 0x0e41, 0xf404, 0xe672, 0xe9f9,
+ 0xe303, 0xe47b, 0xe92f, 0xd4a3, 0xb6ed, 0xaa04,
+ 0xb38f, 0xcaa3, 0xd777, 0xd495, 0xd144, 0xc9c9,
+ 0xbe59, 0xc4f4, 0xd733, 0xe12d, 0xead6, 0xeea3,
+ 0xe4b5, 0xe1fc, 0xde02, 0xcee0, 0xd08f, 0xd53f,
+ 0xcdc5, 0xdaef, 0xed01, 0xeaa9, 0xe5f8, 0xd64c,
+ 0xcaa6, 0xde6d, 0xe4a7, 0xdbb0, 0xe9ba, 0xe894,
+ 0xd502, 0xd7f8, 0xd67a, 0xc683, 0xc95c, 0xdaa4,
+ 0xe497, 0xdf0e, 0xdcda, 0xe8d7, 0xe3f6, 0xdb93,
+ 0xe90f, 0xe21e, 0xd18d, 0xe31e, 0xf3a0, 0xf887,
+ 0x0001, 0xf1b0, 0xe634, 0xf361, 0xf873, 0xffc1,
+ 0x095f, 0xf4a5, 0xdfff, 0xe226, 0xe685, 0xecf1,
+ 0xe8c2, 0xe277, 0xfe27, 0x100c, 0xfd12, 0x016a,
+ 0x0c3e, 0xf2cb, 0xeb3b, 0xfa52, 0xf167, 0xee24,
+ 0xf78b, 0xf2bb, 0x0190, 0x1808, 0x03a4, 0xf050,
+ 0xfb15, 0xf8c6, 0xf04c, 0xf8d4, 0x012f, 0xff8d,
+ 0xf410, 0xf075, 0xfee4, 0xfb6e, 0xecc4, 0xfa3b,
+ 0x0277, 0xf563, 0x0266, 0x1bd1, 0x12f8, 0xfeed,
+ 0xff76, 0xfaa4, 0xe23f, 0xd9bd, 0xe4ed, 0xebdc,
+ 0xfbb7, 0x078f, 0xf15d, 0xde54, 0xe45c, 0xef57,
+ 0x002a, 0x01e6, 0xf410, 0xfc09, 0xfa24, 0xe49f,
+ 0xea73, 0xe6bd, 0xced9, 0xe1ce, 0xfeb4, 0xfe90,
+ 0x0245, 0xfc11, 0xe90a, 0xeb1b, 0xeac8, 0xddba,
+ 0xe5a6, 0xfcd4, 0x09be, 0x081c, 0x00d4, 0xf97e,
+ 0xedea, 0xe78c, 0xeb24, 0xea51, 0xedbb, 0xfa6a,
+ 0xf6e7, 0xe1cb, 0xd78c, 0xe570, 0xf46c, 0xf470,
+ 0x043d, 0x1bcf, 0x0e16, 0xfcf0, 0x0283, 0xfb82,
+ 0xfac1, 0x0781, 0xfd74, 0xf964, 0x0066, 0xef1e,
+ 0xeb67, 0xf8ae, 0xeac4, 0xe209, 0xea9b, 0xe815,
+ 0xf461, 0x0860, 0x00f6, 0xfc38, 0x02fc, 0x0195,
+ 0x126b, 0x2bdc, 0x1ede, 0x0832, 0x145d, 0x22bf,
+ 0x1186, 0xf9c4, 0xf71d, 0x0388, 0x0d17, 0x09bf,
+ 0xfe99, 0xf978, 0x0145, 0x0ece, 0x1281, 0x0cc2,
+ 0x0e2e, 0x1033, 0x0494, 0xfc47, 0x01b6, 0x07b2,
+ 0x0f01, 0x1b95, 0x21e9, 0x1c2f, 0x136e, 0x0fdb,
+ 0x0984, 0xffe7, 0x0557, 0x0d37, 0x00d2, 0xf653,
+ 0xf756, 0xf60c, 0xff78, 0x0cbf, 0x0c0c, 0x1028,
+ 0x0f31, 0xfbfb, 0xfd96, 0x0c81, 0x07f5, 0x0b2f,
+ 0x106e, 0xfe84, 0xf918, 0xfc63, 0xf12d, 0xff0f,
+ 0x1440, 0x066b, 0x0a9b, 0x2315, 0x1561, 0x0aad,
+ 0x1da3, 0x165d, 0xfedb, 0xfa0d, 0xf957, 0x0529,
+ 0x1bb1, 0x18e9, 0x0beb, 0x161e, 0x298e, 0x2e3c,
+ 0x216f, 0x1914, 0x2698, 0x2e68, 0x184b, 0x0147,
+ 0x0505, 0x0f95, 0x0bb4, 0x0c6b, 0x1b92, 0x20b9,
+ 0x1dd7, 0x233c, 0x1f8d, 0x0de5, 0x06d5, 0x1836,
+ 0x3175, 0x29ef, 0x0d46, 0x1321, 0x2310, 0x17f7,
+ 0x1311, 0x1068, 0x044b, 0x0cff, 0x14f2, 0x0dbf,
+ 0x114a, 0x1168, 0x1bb7, 0x3527, 0x206a, 0x0022,
+ 0x0b6e, 0x0c7d, 0x0d48, 0x28ec, 0x201a, 0x0395,
+ 0x0784, 0x108e, 0x1672, 0x14f2, 0x0996, 0x1399,
+ 0x15f9, 0x056a, 0x1397, 0x1e1d, 0x0c07, 0x0c36,
+ 0x129b, 0x18ff, 0x2e23, 0x2ada, 0x15b8, 0x0cd1,
+ 0x027e, 0x059a, 0x14d5, 0x192f, 0x1e10, 0x1158,
+ 0xfd7f, 0x1081, 0x1a80, 0x08e6, 0x0e17, 0x0c71,
+ 0xff7f, 0x0c72, 0x0c68, 0x0156, 0x0760, 0xfd11,
+ 0xf333, 0xf840, 0xf186, 0x06e4, 0x2d1e, 0x23eb,
+ 0x15d8, 0x16ac, 0x03cd, 0x0366, 0x14fe, 0x0ec0,
+ 0x07c1, 0xfe7f, 0xed92, 0xf9dc, 0x0689, 0xfd66,
+ 0x0a83, 0x1817, 0x06fc, 0xfdce, 0xfc1e, 0xf63e,
+ 0x0ad9, 0x22d7, 0x1957, 0x11b5, 0x1f6a, 0x294c,
+ 0x2cb4, 0x2b08, 0x1dfa, 0x1249, 0x0ef2, 0x1219,
+ 0x203b, 0x29f1, 0x2096, 0x17e1, 0x1a85, 0x1a23,
+ 0x0fcf, 0xfe0e, 0xf5a2, 0x08e9, 0x1f94, 0x194b,
+ 0x0d8a, 0x1e48, 0x3875, 0x3b90, 0x2e49, 0x20c1,
+ 0x0fff, 0x037a, 0x0699, 0x0ac1, 0x088e, 0x09cb,
+ 0x06f2, 0xfe6b, 0xfe90, 0x015c, 0x018f, 0x0805,
+ 0x0ba2, 0x073c, 0x0439, 0xff38, 0x00d1, 0x1003,
+ 0x1011, 0x06d1, 0x133c, 0x16b6, 0x09e9, 0x1c38,
+ 0x3275, 0x2699, 0x2428, 0x2d67, 0x2021, 0x15ec,
+ 0x18fd, 0x171b, 0x1741, 0x0ff7, 0x027e, 0x0776,
+ 0x0780, 0xf984, 0xfe00, 0x02ea, 0xfae9, 0x02f1,
+ 0x0ca4, 0x0a98, 0x1300, 0x19ff, 0x17d0, 0x1e70,
+ 0x1d18, 0x09dc, 0xfd4d, 0xf910, 0xf5ea, 0xfb98,
+ 0x0360, 0x053a, 0x083e, 0x0a97, 0x0dab, 0x2140,
+ 0x3181, 0x1a43, 0xfdac, 0x069c, 0x0fa0, 0x0599,
+ 0x0ace, 0x1231, 0x07fc, 0x055a, 0x088f, 0x05a1,
+ 0x0b3f, 0x1775, 0x2460, 0x2a4f, 0x14e8, 0x0189,
+ 0x1219, 0x1eb2, 0x1617, 0x17ae, 0x1930, 0x10d6,
+ 0x1685, 0x238e, 0x25e0, 0x1f67, 0x113f, 0x0c16,
+ 0x1b47, 0x21f2, 0x1682, 0x0eee, 0x0631, 0xfa0c,
+ 0x017f, 0x14e1, 0x1dde, 0x22c9, 0x24d7, 0x1b64,
+ 0x0fe7, 0x05c6, 0xf74c, 0xf379, 0x03bc, 0x10c1,
+ 0x0a5d, 0x005b, 0xff74, 0x011e, 0x0471, 0x0a6c,
+ 0x04b6, 0xf0e0, 0xe713, 0xf2d1, 0x009b, 0xfd83,
+ 0xf092, 0xed66, 0xf8a2, 0x051b, 0x07be, 0x05b3,
+ 0x081e, 0x0863, 0x0211, 0xffb5, 0x00b0, 0x024a,
+ 0x08a5, 0x0404, 0xf5c3, 0xfcbd, 0x0dd3, 0x0fba,
+ 0x0e90, 0x0ba6, 0x0502, 0x08a2, 0x0af7, 0x026f,
+ 0xfab0, 0xf577, 0xfbbe, 0x0e38, 0x1665, 0x137a,
+ 0x0b46, 0x01e2, 0x086d, 0x0de9, 0x029d, 0x024c,
+ 0x083a, 0x02f2, 0x027d, 0x023e, 0xff1d, 0x0503,
+ 0x05b2, 0x03c6, 0x078c, 0xfddb, 0xf0a8, 0xede0,
+ 0xf028, 0x05dc, 0x1e5b, 0x1d29, 0x197b, 0x17df,
+ 0x0d37, 0x0a15, 0x08f3, 0x0786, 0x0e92, 0x094a,
+ 0xfe32, 0xfe68, 0xfc66, 0x0337, 0x0cd6, 0xff7c,
+ 0xfa12, 0x033f, 0xffe5, 0xffc7, 0xfa86, 0xed2e,
+ 0x009c, 0x1324, 0xfff7, 0xf68e, 0xfc2b, 0xfd74,
+ 0x0995, 0x10c2, 0x112a, 0x1c76, 0x161f, 0x0055,
+ 0xfbce, 0xfa51, 0xf735, 0xfe31, 0x034b, 0x0835,
+ 0x0920, 0xf5fc, 0xeba0, 0xffa5, 0x0a89, 0xfa33,
+ 0xf1ab, 0xf7b2, 0xf421, 0xf3a5, 0x00ac, 0x026b,
+ 0x042d, 0x11da, 0x0858, 0xf959, 0x08d8, 0x1112,
+ 0x0833, 0x06fa, 0xf920, 0xe4aa, 0xe0fb, 0xde1d,
+ 0xe4de, 0xf8ff, 0xf95e, 0xf1cb, 0xf679, 0xf80c,
+ 0xf9f5, 0xfe28, 0xff24, 0x0659, 0x055e, 0xf9b7,
+ 0x0015, 0x0a56, 0x0848, 0x1178, 0x1a93, 0x09f4,
+ 0xf1ba, 0xe4c5, 0xe266, 0xe937, 0xf26b, 0xf50c,
+ 0xf2d2, 0xf3b4, 0xf47e, 0xf246, 0xf92f, 0x002a,
+ 0xf502, 0xebd2, 0xed1b, 0xe4df, 0xdba5, 0xd9ab,
+ 0xd578, 0xd5fd, 0xd945, 0xddc3, 0xef3f, 0xf6d8,
+ 0xeba7, 0xf142, 0xfc15, 0xefb6, 0xe693, 0xec53,
+ 0xefcc, 0xf4d7, 0xf8fe, 0xf16d, 0xed33, 0xf991,
+ 0x0283, 0xf7fa, 0xf32d, 0x017e, 0x035d, 0xf93c,
+ 0x01b4, 0x0c21, 0x0577, 0xff6b, 0xff44, 0x01bc,
+ 0x00a7, 0xed7f, 0xdd32, 0xe89e, 0xf622, 0xf4f5,
+ 0xf9a3, 0x084a, 0x0cfd, 0x01c6, 0xfb38, 0xff5c,
+ 0xf65d, 0xe4be, 0xe2ac, 0xe584, 0xe814, 0xf5f9,
+ 0xffb9, 0x01e3, 0x0ba4, 0x0ad6, 0xfd48, 0x05e0,
+ 0x16b7, 0x0b24, 0xf941, 0xf66d, 0xf0c6, 0xece2,
+ 0xf3d3, 0xf695, 0xfd8f, 0x0a9d, 0x0213, 0xf5a5,
+ 0xfdd3, 0xfbbe, 0xed07, 0xeba9, 0xebfd, 0xefb2,
+ 0x0143, 0x0691, 0xfd8d, 0xfdfd, 0x01a6, 0xfe20,
+ 0xf4d1, 0xe86a, 0xe3ff, 0xe953, 0xee63, 0xf15b,
+ 0xf33d, 0xf37d, 0xf32f, 0xf80a, 0x041b, 0x0781,
+ 0xff09, 0xfaec, 0xf5e5, 0xef1c, 0xf393, 0xf2da,
+ 0xe7b1, 0xe606, 0xe721, 0xe928, 0xf555, 0xf99e,
+ 0xf36f, 0xf060, 0xe9b6, 0xe2cd, 0xe0d0, 0xdc8d,
+ 0xdc02, 0xda2d, 0xd1d2, 0xdb7d, 0xf4ec, 0x01df,
+ 0x01b3, 0xfa07, 0xf0e6, 0xef82, 0xeac0, 0xe60c,
+ 0xf2c0, 0xfdca, 0xf8b8, 0xf303, 0xea3d, 0xdbd1,
+ 0xd8c2, 0xdf96, 0xe6a6, 0xef8f, 0xefc0, 0xe0b1,
+ 0xd7b2, 0xe06e, 0xea95, 0xed23, 0xeeea, 0xee4c,
+ 0xe50f, 0xdc11, 0xdc33, 0xdcc2, 0xdbd0, 0xe0b5,
+ 0xdfbd, 0xd5d7, 0xd913, 0xe4cf, 0xe6e8, 0xeb2c,
+ 0xf29c, 0xefab, 0xf03b, 0xfb5f, 0xfccb, 0xf182,
+ 0xedc8, 0xf36b, 0xe906, 0xd1be, 0xd110, 0xde3e,
+ 0xe333, 0xf309, 0x0235, 0xfae9, 0xfb3c, 0x0030,
+ 0xf0b4, 0xeb63, 0xf87d, 0xfb6c, 0xf827, 0xf5cb,
+ 0xf254, 0xed23, 0xe1bb, 0xe47c, 0xf730, 0xf4c1,
+ 0xe97a, 0xef4d, 0xef36, 0xe7b9, 0xe7fc, 0xe78d,
+ 0xe8b6, 0xe979, 0xdff6, 0xd730, 0xd281, 0xd2c2,
+ 0xe14e, 0xed92, 0xec17, 0xedc1, 0xf63c, 0xffb0,
+ 0x048f, 0xfa82, 0xedcc, 0xf0f5, 0xf5cb, 0xecbf,
+ 0xe5d9, 0xee71, 0xf1ba, 0xe382, 0xddbf, 0xe3fc,
+ 0xdec7, 0xde01, 0xef05, 0xf375, 0xec47, 0xf45b,
+ 0xfdbc, 0xfaed, 0xf94b, 0xf9c8, 0xfc11, 0x0052,
+ 0xf65a, 0xe54a, 0xe58c, 0xef39, 0xf37c, 0xf162,
+ 0xea41, 0xec20, 0xf4cd, 0xefea, 0xecc0, 0xf707,
+ 0xf799, 0xf028, 0xeca1, 0xe846, 0xe908, 0xeb25,
+ 0xeb9d, 0xf7e2, 0xfbea, 0xee01, 0xf0e7, 0xfb2f,
+ 0xf224, 0xec26, 0xedcb, 0xe729, 0xe5fd, 0xebfb,
+ 0xe44e, 0xd56d, 0xda65, 0xeecf, 0xf4e0, 0xf2c4,
+ 0xfeeb, 0x08bf, 0x01cc, 0xf448, 0xe6b8, 0xe5b2,
+ 0xefb4, 0xeba2, 0xde49, 0xdc7a, 0xe09c, 0xe034,
+ 0xdcf3, 0xde68, 0xe3a5, 0xe571, 0xeb5e, 0xf56a,
+ 0xf9f2, 0x0251, 0x0872, 0xfef5, 0xf949, 0xf8f3,
+ 0xf101, 0xefc4, 0xedb7, 0xde58, 0xdd7a, 0xee44,
+ 0xf63f, 0xf9c5, 0x0240, 0x0492, 0x0034, 0xfe9b,
+ 0xf885, 0xebb9, 0xee09, 0xf977, 0xf3b7, 0xef6a,
+ 0xf843, 0xf503, 0xef4d, 0xf4e3, 0xf282, 0xebda,
+ 0xeb3c, 0xe85e, 0xe5c4, 0xe702, 0xeeff, 0xfa6f,
+ 0xf44a, 0xe81b, 0xeeaa, 0xf37c, 0xf030, 0xf94d,
+ 0x0065, 0xf7fa, 0xf289, 0xf786, 0xfc6e, 0xfc89,
+ 0xfe4b, 0x0315, 0x003d, 0xf7be, 0xf776, 0xfed7,
+ 0x02f1, 0xfdae, 0xf5b9, 0xf729, 0xfc6f, 0xf70e,
+ 0xef02, 0xf8fb, 0x0a8e, 0x0739, 0xffb1, 0x0db0,
+ 0x150a, 0x0a69, 0x0759, 0x0416, 0xfd39, 0x01a4,
+ 0x0171, 0xfdba, 0x0731, 0x0b7f, 0x06d3, 0x046e,
+ 0xfe6a, 0xfaf0, 0xf58d, 0xe91f, 0xf352, 0x0971,
+ 0x04c9, 0xf803, 0xf725, 0xf685, 0xf2b6, 0xebad,
+ 0xee2e, 0xfe27, 0x0041, 0xf91a, 0xf7e3, 0xea66,
+ 0xdfa3, 0xeb57, 0xefa1, 0xe6ad, 0xe26c, 0xdfd0,
+ 0xe470, 0xedbc, 0xebeb, 0xeaa6, 0xf300, 0xfb8a,
+ 0x005e, 0xfd3d, 0xfa63, 0xff56, 0xf87e, 0xe947,
+ 0xe74f, 0xe5dd, 0xe316, 0xf13a, 0x013d, 0x03ca,
+ 0x00e7, 0xf6c6, 0xebd5, 0xf32d, 0x001e, 0xf9ba,
+ 0xece9, 0xef4c, 0xf5d2, 0xf653, 0xfa03, 0xfe2d,
+ 0x00fb, 0x0952, 0x085d, 0xf97f, 0xf643, 0x018d,
+ 0x0b3a, 0x0f1b, 0x0ad5, 0x0460, 0x0283, 0xfeb2,
+ 0xfbc5, 0xfd9a, 0xfeeb, 0x0260, 0x0222, 0xfb05,
+ 0xfd66, 0x0068, 0xf609, 0xf245, 0xf397, 0xeafb,
+ 0xed4f, 0xfb88, 0xfa40, 0xf381, 0xf85a, 0xf9e9,
+ 0xf4a1, 0xf2a4, 0xef13, 0xee54, 0xfa09, 0x0052,
+ 0xf9d4, 0xf919, 0xf85c, 0xf014, 0xf1a9, 0xf5ed,
+ 0xefc1, 0xf103, 0xf9f2, 0xfae6, 0xfb1c, 0xfed5,
+ 0x017b, 0x05c0, 0x089d, 0x07b4, 0x0652, 0x01f6,
+ 0xfea7, 0x035a, 0x055d, 0xfd85, 0xf99c, 0xffab,
+ 0x06be, 0x0d17, 0x0f9b, 0x0866, 0x0083, 0xf99b,
+ 0xefb1, 0xf451, 0x04d0, 0x0909, 0x0876, 0x076a,
+ 0xfd34, 0xf77b, 0xf066, 0xe1b3, 0xea16, 0xfc61,
+ 0xf7c9, 0xf7e0, 0x0353, 0xfcc9, 0xf40e, 0xf943,
+ 0xf9f7, 0xf460, 0xf187, 0xefe7, 0xf221, 0xf9f3,
+ 0xfe8a, 0xfabf, 0xf35a, 0xeb0a, 0xe881, 0xf512,
+ 0x01c5, 0x02be, 0x06bd, 0x0608, 0xf68e, 0xf078,
+ 0xefbe, 0xe439, 0xe522, 0xef35, 0xeed1, 0xfd21,
+ 0x167c, 0x11f0, 0xfe65, 0xfd77, 0x0553, 0x09b6,
+ 0x0a98, 0x0883, 0x0d48, 0x12bb, 0x0896, 0x0142,
+ 0x0789, 0x011b, 0xf308, 0xf4bf, 0xf7bb, 0xf572,
+ 0xf7d5, 0xf430, 0xf006, 0xfcd5, 0x0a43, 0x08a8,
+ 0x0384, 0x04e6, 0x0868, 0x0485, 0xff04, 0x032c,
+ 0x03c5, 0xf94b, 0xf796, 0xff9b, 0x0043, 0x0116,
+ 0x0914, 0x08df, 0x0664, 0x0f73, 0x0f24, 0x050c,
+ 0x0a4b, 0x0c1d, 0x03ea, 0x0f4c, 0x193a, 0x0f15,
+ 0x0fae, 0x14eb, 0x0d6d, 0x0913, 0x0666, 0x002d,
+ 0xf9ab, 0xf2a4, 0xf9ba, 0x0633, 0x0021, 0xf710,
+ 0xf4c9, 0xf725, 0x04ee, 0x05fa, 0xf649, 0xfa22,
+ 0x085e, 0x0945, 0x0427, 0xfa02, 0xf1c7, 0xf681,
+ 0xfd3f, 0xfd25, 0xfb1b, 0xff73, 0x047b, 0xff56,
+ 0x0056, 0x0727, 0xfab7, 0xeef7, 0xf8da, 0x03b5,
+ 0x0919, 0x0c41, 0x0c19, 0x0bff, 0x0676, 0x039d,
+ 0x09af, 0x0715, 0x0308, 0x06b6, 0x0539, 0x0677,
+ 0x0938, 0x01b5, 0xfe35, 0xfeff, 0xfcd3, 0xfd9a,
+ 0xfded, 0x043d, 0x0ccf, 0x0505, 0xfe1f, 0xfee1,
+ 0xf9fb, 0xfe28, 0x052e, 0x01cc, 0x0503, 0x07f8,
+ 0x035b, 0x0428, 0x09e0, 0x1828, 0x1f40, 0x0e9a,
+ 0x08ac, 0x0dec, 0x024c, 0xfa6b, 0xfb78, 0xff59,
+ 0x0e6b, 0x1158, 0x0c89, 0x155e, 0x1212, 0x0a11,
+ 0x11bd, 0x137c, 0x17ef, 0x2585, 0x2698, 0x2456,
+ 0x20a0, 0x17f3, 0x1844, 0x1150, 0x01f4, 0x0729,
+ 0x15fc, 0x1951, 0x1348, 0x0e58, 0x11f5, 0x0df8,
+ 0x03a0, 0x0a7d, 0x144d, 0x146b, 0x1474, 0x123d,
+ 0x141c, 0x1364, 0x02f5, 0xf95c, 0xf81d, 0xf3c2,
+ 0xf8f9, 0xfb0b, 0xf8fc, 0x0323, 0x029e, 0xfe5b,
+ 0x0976, 0x04d9, 0xf8ef, 0xfd7b, 0xf8c0, 0xedda,
+ 0xef6b, 0xf46a, 0xfa05, 0xf890, 0xf0aa, 0xf0bf,
+ 0xf39f, 0xfcac, 0x0970, 0x07a0, 0x0a35, 0x13ff,
+ 0x0a6c, 0xff96, 0xfdd6, 0xf796, 0xf910, 0xfc53,
+ 0xfb02, 0x07b5, 0x1008, 0x0623, 0x02b1, 0x0148,
+ 0xf6c0, 0xf3e1, 0xfaa2, 0xfffb, 0x03c4, 0x0706,
+ 0x0822, 0x0b5e, 0x1352, 0x1386, 0x09c3, 0x03f9,
+ 0xfe23, 0xfa38, 0x0501, 0x0a84, 0x00ee, 0xfc39,
+ 0xfa11, 0xf8d1, 0x0006, 0x0314, 0x022a, 0x05b4,
+ 0x0670, 0x05f5, 0x0298, 0xf99a, 0xf9cf, 0xfe7b,
+ 0xfce9, 0x027a, 0x0a9d, 0x0811, 0x0775, 0x0e3a,
+ 0x1077, 0x098c, 0xff80, 0xfc31, 0x006e, 0x0406,
+ 0x03f0, 0x00d3, 0xfb29, 0xf5c2, 0xf343, 0xf331,
+ 0xf53b, 0xfc45, 0x057e, 0x0a15, 0x0b0d, 0x0891,
+ 0x04d0, 0x075e, 0x09a8, 0x097b, 0x0f27, 0x0fca,
+ 0x0ce0, 0x151d, 0x17c2, 0x1082, 0x0d88, 0x03b2,
+ 0xfae1, 0x03d3, 0x0d72, 0x15b1, 0x1e79, 0x1a25,
+ 0x159f, 0x1210, 0x04a4, 0x0314, 0x0959, 0x06a8,
+ 0x09f5, 0x08be, 0xff5e, 0x06e4, 0x0d58, 0x0b2a,
+ 0x1504, 0x15ce, 0x0e2b, 0x14e7, 0x1075, 0x014b,
+ 0x029c, 0x049e, 0x0350, 0x0926, 0x0845, 0x0184,
+ 0xfd13, 0xf89f, 0xf96c, 0xff10, 0x061b, 0x0862,
+ 0xfa99, 0xedec, 0xf274, 0xf84d, 0xf9d4, 0xf3db,
+ 0xe3f9, 0xe2af, 0xf14d, 0xfacd, 0x026b, 0x0310,
+ 0xf878, 0xf57b, 0xf5d4, 0xf236, 0xf7c5, 0xfdd0,
+ 0xfd17, 0x0302, 0x0a1f, 0x0a6e, 0x0a41, 0x06ca,
+ 0x010a, 0x00d3, 0xff58, 0xf9c3, 0xf90c, 0xf985,
+ 0xf9d9, 0x04ef, 0x0f11, 0x0a1f, 0x090b, 0x10e0,
+ 0x1292, 0x15c4, 0x18ed, 0x1032, 0x0c5b, 0x11b7,
+ 0x129d, 0x1541, 0x162e, 0x0f38, 0x0e40, 0x0b3b,
+ 0xfb32, 0xf4fb, 0x0135, 0x0c26, 0x0c7b, 0x0912,
+ 0x07ad, 0x0467, 0xffb6, 0x01e1, 0x06af, 0x051b,
+ 0x00f8, 0x02eb, 0x0a09, 0x0b5b, 0x097d, 0x0cec,
+ 0x08cb, 0xfe0c, 0xfcdb, 0xfa51, 0xf5c6, 0xfd20,
+ 0x01a0, 0x0034, 0x049d, 0x03c5, 0x0017, 0x040f,
+ 0x0377, 0xfd03, 0xf948, 0xf8a6, 0xfe76, 0x07d0,
+ 0x0d6d, 0x0dde, 0x0bca, 0x0edd, 0x0e48, 0xfc1a,
+ 0xebf3, 0xefe0, 0xfc0d, 0x047a, 0x062d, 0x070c,
+ 0x0810, 0xfbaa, 0xe9e3, 0xe796, 0xef4b, 0xf4f4,
+ 0xf64b, 0xf445, 0xf171, 0xef8e, 0xf5ca, 0x0041,
+ 0xfe0a, 0xf548, 0xf0bb, 0xf0d6, 0xfe44, 0x0a45,
+ 0x0127, 0xf51e, 0xee2b, 0xe527, 0xe087, 0xe1ad,
+ 0xee4c, 0x014a, 0x0606, 0x09f9, 0x0f51, 0xff5a,
+ 0xf1c2, 0xf4b5, 0xf3ca, 0xf6a6, 0xfb56, 0xfa52,
+ 0x0093, 0xfd65, 0xf189, 0xf8b2, 0xfddd, 0xf8af,
+ 0xfa7a, 0xf597, 0xf70d, 0x09a3, 0x0c3c, 0x0865,
+ 0x0b1c, 0xfd69, 0xf68b, 0x05ac, 0x0a7a, 0x0904,
+ 0x0c48, 0x08cc, 0x0736, 0x06b6, 0x0136, 0x077d,
+ 0x1274, 0x1149, 0x0fc1, 0x0df8, 0x04fc, 0x047a,
+ 0x0db6, 0x0d99, 0x0326, 0xfb37, 0xfcfa, 0x06f5,
+ 0x0e25, 0x0a35, 0x006a, 0xfa7a, 0xfca0, 0xffad,
+ 0xf8c6, 0xed61, 0xe9b3, 0xeeff, 0xfad1, 0x0686,
+ 0x09d5, 0x05ae, 0xfd9f, 0xfb59, 0x0535, 0x084f,
+ 0xfdc6, 0xf7cf, 0xf544, 0xf2d8, 0xf8ce, 0xfbae,
+ 0xf58c, 0xf11e, 0xebea, 0xe5e6, 0xe57c, 0xead3,
+ 0xf782, 0x00cc, 0xfbc0, 0xf3d3, 0xed54, 0xe754,
+ 0xeb2c, 0xf48d, 0xfd0b, 0x054c, 0x0500, 0xfff7,
+ 0x024f, 0x0688, 0x0628, 0x02b0, 0x0013, 0xffe0,
+ 0xfb05, 0xf478, 0xf19f, 0xeab7, 0xe899, 0xf07f,
+ 0xee7d, 0xe8fe, 0xeda8, 0xedf5, 0xeeae, 0xf8fc,
+ 0xfc2b, 0xf9de, 0xfadd, 0xf496, 0xe9ca, 0xe669,
+ 0xec3f, 0xf972, 0x0197, 0xfa6f, 0xf120, 0xf347,
+ 0xf8d5, 0xf760, 0xf423, 0xf0e4, 0xe810, 0xe6bc,
+ 0xf531, 0x004f, 0x02c0, 0x048a, 0x01ce, 0xfdc4,
+ 0xf818, 0xe94f, 0xdfef, 0xe374, 0xe99e, 0xf6b8,
+ 0x0412, 0x00d1, 0xf982, 0xfa28, 0xfa69, 0xf7db,
+ 0xf44d, 0xf29d, 0xf699, 0xfcaa, 0x0265, 0x068e,
+ 0x077d, 0x0804, 0x032f, 0xf874, 0xf6ce, 0xfdab,
+ 0x0357, 0x0a67, 0x0c40, 0x01d7, 0xf5ac, 0xedab,
+ 0xec01, 0xf49d, 0xfd24, 0xfe44, 0xff5f, 0xfe08,
+ 0xf7f2, 0xfa84, 0x0035, 0xf5e4, 0xed0c, 0xfa2a,
+ 0x064e, 0x06da, 0x0e5f, 0x14ae, 0x0a80, 0xfc53,
+ 0xf55a, 0xf5a7, 0xf9a0, 0xfb2f, 0xfd31, 0x01a8,
+ 0x0343, 0x0292, 0x0038, 0xfcf4, 0xfc9d, 0xfbea,
+ 0xfaec, 0xfd27, 0xfd03, 0xfb5a, 0xfddf, 0xffc0,
+ 0xfd52, 0xfab1, 0xfc0e, 0xfd88, 0xfb28, 0xfd77,
+ 0x01a1, 0xfe7b, 0x01cf, 0x0943, 0x032e, 0xfd67,
+ 0xfcfa, 0xf80f, 0xfacc, 0xffaa, 0xfa3a, 0xf848,
+ 0xf6e1, 0xf1ee, 0xf55e, 0xf707, 0xf705, 0x0173,
+ 0x0353, 0xf9f1, 0xfb3f, 0x0032, 0xfcd6, 0xfa82,
+ 0xfdb0, 0xfc60, 0xf575, 0xf9b4, 0x05fe, 0x0a3e,
+ 0x1069, 0x1267, 0x009a, 0xf83d, 0x00c7, 0xfd42,
+ 0xf9f9, 0x0315, 0x0489, 0x00e6, 0xffdf, 0xf859,
+ 0xf141, 0xf7ee, 0x019f, 0xfba7, 0xf106, 0xf50b,
+ 0xf9b9, 0xf8b7, 0x0192, 0x078a, 0x007f, 0xff99,
+ 0x03d5, 0x00cd, 0xfc36, 0xfb03, 0xfb4f, 0xfa21,
+ 0xf83f, 0xf85b, 0xf636, 0xf513, 0xfaa2, 0xfccf,
+ 0xf93e, 0xf57b, 0xed3b, 0xe630, 0xe9c4, 0xef47,
+ 0xef52, 0xf0cf, 0xf69a, 0xf6a5, 0xf0ac, 0xf1d0,
+ 0xf6a4, 0xf92c, 0xffd0, 0x01ce, 0xfbf4, 0xfcb4,
+ 0xffee, 0x00e0, 0x0448, 0x04d4, 0x0683, 0x07df,
+ 0xfcf4, 0xf69a, 0xfe7b, 0x0274, 0x0067, 0xf98d,
+ 0xeef4, 0xef74, 0xf7d0, 0xfce2, 0x0035, 0x010c,
+ 0x051a, 0x0c19, 0x06d5, 0xfab8, 0xf723, 0xfb6d,
+ 0x0141, 0x041b, 0x0739, 0x0768, 0xfc10, 0xf668,
+ 0xfe27, 0xff98, 0xfd5e, 0xfcbc, 0xf60b, 0xf449,
+ 0xf6e2, 0xf2ef, 0xf520, 0xfc48, 0xf99e, 0xf46d,
+ 0xf336, 0xf340, 0xf4dd, 0xf60c, 0xf74b, 0xf918,
+ 0xf6d1, 0xf1c9, 0xf121, 0xf641, 0xfa23, 0xfaa2,
+ 0xfdb3, 0x0243, 0x03ef, 0xfeb3, 0xf3f1, 0xf718,
+ 0x0460, 0xffeb, 0xfa9c, 0x0767, 0x0c45, 0x043e,
+ 0xf982, 0xeaf1, 0xe8d4, 0xf174, 0xf447, 0xfa77,
+ 0xfc06, 0xf118, 0xf117, 0xf2fc, 0xe835, 0xebd2,
+ 0xfc84, 0xfe3f, 0xf8c1, 0xfabf, 0xfad6, 0xf443,
+ 0xf3ba, 0xfb3c, 0xfcd5, 0xfa0b, 0xfa04, 0xf625,
+ 0xf1a2, 0xf378, 0xf6e2, 0xfa6d, 0xfad7, 0xf572,
+ 0xf0f7, 0xec8e, 0xe82c, 0xe959, 0xeb0a, 0xeded,
+ 0xf524, 0xf57b, 0xf146, 0xf6c8, 0xfff4, 0xffe6,
+ 0xfa9f, 0xf8d0, 0xf4d5, 0xec58, 0xedc8, 0xf5be,
+ 0xf498, 0xf2fb, 0xf562, 0xf2ad, 0xf025, 0xf036,
+ 0xf0a6, 0xf4df, 0xf4db, 0xf029, 0xf2c4, 0xf925,
+ 0x00cb, 0x06c0, 0xfd5c, 0xf153, 0xf108, 0xead9,
+ 0xe60e, 0xf795, 0x05d0, 0x003f, 0xfd2b, 0xfa66,
+ 0xeee5, 0xec73, 0xefe9, 0xed6d, 0xf4dc, 0x02a2,
+ 0x03ad, 0x0119, 0xff5c, 0xfa35, 0xfad1, 0xfa86,
+ 0xf2c8, 0xf0eb, 0xf1a7, 0xf191, 0xfa82, 0x01bb,
+ 0x00fc, 0x0498, 0x07f0, 0x02e6, 0xfaf7, 0xf452,
+ 0xf032, 0xef33, 0xf502, 0xfdc8, 0xfa73, 0xf432,
+ 0xfa7b, 0xfd48, 0xfa06, 0xfee1, 0xffe5, 0xf9cf,
+ 0xfb4e, 0xfebb, 0xff70, 0x03c9, 0x058e, 0x00bf,
+ 0xfc41, 0xfb01, 0xfcf0, 0x01da, 0x07e8, 0x0a4c,
+ 0x0508, 0x003b, 0x0313, 0x0347, 0xfdc6, 0xfda7,
+ 0xff7d, 0xfed0, 0x05d5, 0x0c27, 0x03f2, 0xfec5,
+ 0x031c, 0xfe82, 0xf8e3, 0xff81, 0x04b9, 0x0634,
+ 0x0c50, 0x0fe2, 0x0de0, 0x0c57, 0x0acc, 0x05ff,
+ 0xff6e, 0xfdb8, 0x0186, 0x02d7, 0x0106, 0xfebe,
+ 0xf9e4, 0xf671, 0xfa75, 0x0353, 0x0788, 0x0187,
+ 0xfa70, 0xf883, 0xf51f, 0xf2e5, 0xf6a8, 0xfc12,
+ 0x0382, 0x05bb, 0xfb4e, 0xf673, 0xfbd6, 0xf6f0,
+ 0xee49, 0xf1f8, 0xf626, 0xf528, 0xf843, 0xfbf8,
+ 0xfc6d, 0xfc9b, 0xf82f, 0xf257, 0xf6ba, 0xfff8,
+ 0x037f, 0x0205, 0xfc9c, 0xf78c, 0xf75c, 0xf8ae,
+ 0xfcc1, 0x0069, 0xfbe3, 0xfa46, 0xfd97, 0xf6ff,
+ 0xf189, 0xf81d, 0xfd07, 0xffa8, 0x0241, 0xfd19,
+ 0xf852, 0xf9ed, 0xf9f9, 0xf925, 0xf92d, 0xf7c5,
+ 0xf80b, 0xf9f2, 0xfa09, 0xf9fd, 0xfcb3, 0xff36,
+ 0xfc33, 0xf5bd, 0xefc6, 0xeb1f, 0xebf5, 0xf130,
+ 0xf641, 0xfcbe, 0xff59, 0xfc17, 0xfd04, 0xfd50,
+ 0xf5ef, 0xf14e, 0xf3f9, 0xfab1, 0xfff4, 0xfc32,
+ 0xf652, 0xf510, 0xf362, 0xf28d, 0xf230, 0xf20e,
+ 0xf697, 0xf63b, 0xf252, 0xf97f, 0xff5a, 0xfcd5,
+ 0xff98, 0x0208, 0x02ba, 0x0ae5, 0x102f, 0x104b,
+ 0x0fda, 0x05b4, 0xf987, 0xf5ed, 0xf447, 0xfa40,
+ 0x03bf, 0xfd6d, 0xf627, 0xfcf3, 0x0098, 0x01d3,
+ 0x0783, 0x0556, 0x0258, 0x04c0, 0xff1b, 0xfe53,
+ 0x0875, 0x01d0, 0xf3f0, 0xf955, 0x01f8, 0x030b,
+ 0x0428, 0x0220, 0xffd4, 0xfe77, 0xfb27, 0xfe8d,
+ 0x02fc, 0x0050, 0x005d, 0xff7b, 0xfb56, 0xfc8d,
+ 0xfa2e, 0xf726, 0xff74, 0x04ef, 0x0473, 0x06b4,
+ 0x0506, 0x02e2, 0x0277, 0xfda0, 0xfe37, 0x01d1,
+ 0xfdde, 0xfc8c, 0xfd65, 0xfa0e, 0xf985, 0xf8b5,
+ 0xf7ac, 0xfbf1, 0xfd4b, 0xfcdb, 0xfe03, 0xf983,
+ 0xf664, 0xf67c, 0xf0b1, 0xee0a, 0xf19c, 0xf53f,
+ 0xfe07, 0x0321, 0xfdb5, 0x0025, 0x0a2e, 0x0a90,
+ 0x055b, 0x0393, 0x047d, 0x0478, 0x0057, 0xfecc,
+ 0x03f7, 0x04bc, 0xffda, 0xfffd, 0x01c0, 0xfd96,
+ 0xf8b5, 0xf8d3, 0xfbfe, 0xfdbe, 0xfcf0, 0xfe51,
+ 0x021a, 0x029e, 0x0456, 0x0b3f, 0x0ca7, 0x07cf,
+ 0x072f, 0x06ec, 0x05a0, 0x0c0c, 0x10e8, 0x09a3,
+ 0x02bb, 0x01a3, 0xfd53, 0xf7dd, 0xf631, 0xf82d,
+ 0x01d3, 0x0d8e, 0x0eb9, 0x09f6, 0x0864, 0x0a09,
+ 0x0e26, 0x0c2f, 0x01f4, 0x0048, 0x0561, 0x0454,
+ 0x075c, 0x0cfe, 0x08ad, 0x074a, 0x0b02, 0x0814,
+ 0x0948, 0x0e06, 0x09fa, 0x0acf, 0x123a, 0x0cf9,
+ 0x01c6, 0x000d, 0x0387, 0x064b, 0x086f, 0x0b79,
+ 0x1093, 0x1435, 0x128a, 0x0e1c, 0x0ab5, 0x0526,
+ 0xfda6, 0xff4d, 0x0875, 0x0cb4, 0x1019, 0x1481,
+ 0x1207, 0x0fd3, 0x121c, 0x1326, 0x17e8, 0x1dbc,
+ 0x1be3, 0x18b1, 0x1506, 0x0d71, 0x08a5, 0x0597,
+ 0x0130, 0xff9e, 0x003b, 0x0346, 0x06dc, 0x05ef,
+ 0x0577, 0x03ba, 0xfd3e, 0xffab, 0x0631, 0xfed5,
+ 0xf56e, 0xf4d6, 0xf47e, 0xf645, 0xfc22, 0xff09,
+ 0xfdd0, 0xfa40, 0xf70b, 0xf60e, 0xf6c9, 0xf9cc,
+ 0xf994, 0xf6d6, 0xfc1d, 0xffe0, 0xfa79, 0xfbd6,
+ 0xffda, 0xfa82, 0xf84c, 0xf8be, 0xf365, 0xf47d,
+ 0xfc8b, 0xff28, 0xfe2c, 0xfd44, 0xfc10, 0xfb94,
+ 0xfc9e, 0x0127, 0x03f9, 0x002f, 0xfeae, 0x0017,
+ 0xfa88, 0xf238, 0xf067, 0xf497, 0xfa5c, 0xff7e,
+ 0x049b, 0x057d, 0x0100, 0x02c9, 0x08c7, 0x0505,
+ 0xff7e, 0x02bc, 0x078f, 0x0a08, 0x08de, 0x045b,
+ 0x0650, 0x0d3f, 0x0e89, 0x0d98, 0x0de2, 0x0ce6,
+ 0x0e3f, 0x1052, 0x0dd7, 0x0ace, 0x08a9, 0x0553,
+ 0x048b, 0x05e0, 0x05cf, 0x072f, 0x0ad2, 0x0db8,
+ 0x0ff5, 0x137c, 0x1941, 0x1cc8, 0x19db, 0x1646,
+ 0x145d, 0x0fe0, 0x0d48, 0x0dd4, 0x0b6d, 0x0b16,
+ 0x0f45, 0x0f5f, 0x0c38, 0x09f1, 0x0704, 0x0662,
+ 0x08e0, 0x0b5f, 0x0f43, 0x131f, 0x1373, 0x11f6,
+ 0x1007, 0x0c9d, 0x06e3, 0x0106, 0xfe7e, 0xfc0f,
+ 0xf99c, 0xfe46, 0x04aa, 0x04b6, 0x052a, 0x0814,
+ 0x0905, 0x0a4b, 0x08b1, 0xffb9, 0xf751, 0xf4e2,
+ 0xf4e3, 0xf533, 0xf4e6, 0xf40f, 0xf4e7, 0xf82a,
+ 0xfc52, 0xfdf1, 0xfc7a, 0xfd8b, 0x0094, 0xfd0e,
+ 0xf5b1, 0xf50a, 0xf99c, 0xfd11, 0xfe26, 0xfa70,
+ 0xf4c8, 0xf506, 0xf830, 0xf99b, 0xfb6e, 0xfaa8,
+ 0xf947, 0xfff1, 0x0720, 0x0692, 0x05ff, 0x05a8,
+ 0x01c9, 0x0281, 0x0966, 0x0e45, 0x0da4, 0x0814,
+ 0x039d, 0x0659, 0x0a72, 0x0946, 0x0552, 0x02c9,
+ 0x0465, 0x089b, 0x0a66, 0x0964, 0x06aa, 0x017f,
+ 0xfc6a, 0xfa5c, 0xfb5c, 0xfd39, 0xfd40, 0xfdf6,
+ 0x0133, 0x0237, 0x01e2, 0x0325, 0x01e4, 0x0094,
+ 0x014c, 0xfbef, 0xf7c8, 0x0178, 0x0aac, 0x07d0,
+ 0x04a3, 0x0405, 0x0105, 0x0153, 0x0547, 0x0602,
+ 0x055f, 0x064b, 0x0585, 0x036b, 0x0414, 0x05a1,
+ 0x0225, 0xfad8, 0xf8a8, 0xff0b, 0x05c9, 0x0536,
+ 0x02d0, 0x08ed, 0x141d, 0x1758, 0x12e6, 0x1291,
+ 0x17f4, 0x1c4f, 0x1c78, 0x1786, 0x123a, 0x12f4,
+ 0x1499, 0x142b, 0x171c, 0x17b3, 0x116c, 0x0e45,
+ 0x0f86, 0x106a, 0x130b, 0x1398, 0x1162, 0x13f0,
+ 0x1634, 0x1371, 0x12e9, 0x11f2, 0x0bd4, 0x08a6,
+ 0x09ba, 0x06e8, 0x0035, 0xfc1b, 0xfd18, 0x00fd,
+ 0x065b, 0x0cc3, 0x113b, 0x117e, 0x0ea4, 0x0c88,
+ 0x0f8a, 0x1341, 0x1004, 0x0b11, 0x0a70, 0x0972,
+ 0x084c, 0x0abd, 0x0bd4, 0x0918, 0x0739, 0x05d4,
+ 0x017f, 0xfd4d, 0xfdd0, 0x016c, 0x04b0, 0x074a,
+ 0x08de, 0x08af, 0x073f, 0x0386, 0xfdb5, 0xfa92,
+ 0xfc78, 0xff84, 0x000e, 0xff3b, 0x0027, 0x0318,
+ 0x0485, 0x0085, 0xf8e6, 0xf5e0, 0xf8b2, 0xf8fb,
+ 0xf72a, 0xf867, 0xf754, 0xf37e, 0xf424, 0xf6e2,
+ 0xf9d1, 0xfd5d, 0xfa1f, 0xf452, 0xf51a, 0xf2bb,
+ 0xed2b, 0xf16f, 0xf627, 0xf344, 0xf46f, 0xf766,
+ 0xf369, 0xefb8, 0xf1c1, 0xf4f4, 0xf32b, 0xee27,
+ 0xf236, 0xfe68, 0x0314, 0xff92, 0xfc71, 0xfb5b,
+ 0xfbc5, 0xfaac, 0xf8b2, 0xf9b1, 0xf83f, 0xf457,
+ 0xf635, 0xf93e, 0xf990, 0xfc6a, 0xfc51, 0xf42a,
+ 0xed32, 0xec8b, 0xed5f, 0xed2e, 0xedb1, 0xef2c,
+ 0xf16f, 0xf5f9, 0xf9b1, 0xfa2f, 0xfdb8, 0x035f,
+ 0x0509, 0x0826, 0x0bdb, 0x07a6, 0x024e, 0x0061,
+ 0xfb49, 0xf86a, 0xfc7c, 0xfd3f, 0xf87b, 0xf5a9,
+ 0xf426, 0xf264, 0xf4be, 0xf910, 0xf8ce, 0xf6fa,
+ 0xf920, 0xfda8, 0x009a, 0xfedd, 0xfd74, 0x040e,
+ 0x0873, 0x0254, 0xfebd, 0xffb6, 0xfb8c, 0xf810,
+ 0xf913, 0xf7d0, 0xf450, 0xf2ba, 0xf6e4, 0xffe5,
+ 0x0483, 0x0274, 0xffb0, 0xff84, 0x032f, 0x06d8,
+ 0x05f7, 0x02ff, 0x000a, 0xfe77, 0xfe04, 0xfac5,
+ 0xf807, 0xf872, 0xf71a, 0xf5eb, 0xf5d5, 0xf3d5,
+ 0xf54f, 0xf8a6, 0xf6cd, 0xf588, 0xf7ec, 0xfa82,
+ 0xfd86, 0xfe11, 0xfb48, 0xf808, 0xf3fd, 0xf292,
+ 0xf367, 0xf043, 0xece1, 0xec67, 0xec72, 0xef4f,
+ 0xf12f, 0xed81, 0xea8c, 0xe9de, 0xe9a2, 0xece0,
+ 0xf17c, 0xf2fc, 0xf0fc, 0xee73, 0xf033, 0xf387,
+ 0xf2d1, 0xf08f, 0xf001, 0xf27e, 0xf5f3, 0xf3d2,
+ 0xefde, 0xf19d, 0xf3e2, 0xf2ac, 0xf132, 0xf195,
+ 0xf552, 0xf8d6, 0xf8c1, 0xfa34, 0xfd67, 0xfd8d,
+ 0xfd27, 0xfdf7, 0xfca9, 0xfa19, 0xfb4a, 0xffb4,
+ 0x004f, 0xfd41, 0xfcd7, 0xfd67, 0xfdf6, 0x01e2,
+ 0x02f9, 0xfc8c, 0xf68b, 0xf58a, 0xf5e2, 0xf62d,
+ 0xf9ef, 0x014a, 0x039d, 0xfdde, 0xf902, 0xf8fb,
+ 0xfad4, 0xfd60, 0xfe65, 0xfcc2, 0xfaa6, 0xfa35,
+ 0xfd6e, 0x035d, 0x095a, 0x0d1f, 0x0abc, 0x0734,
+ 0x0bc3, 0x0f3e, 0x086d, 0x0235, 0x01a7, 0x018f,
+ 0x04b7, 0x0b3b, 0x0f09, 0x0f04, 0x0aa6, 0x0482,
+ 0x0392, 0x0490, 0x01d8, 0x0112, 0x0443, 0x06dc,
+ 0x09f0, 0x0c63, 0x0a09, 0x06c9, 0x0532, 0x01f0,
+ 0xff49, 0xff82, 0xff27, 0xfebd, 0x002a, 0x0166,
+ 0x02ef, 0x04f6, 0x0443, 0x0363, 0x05e0, 0x05cc,
+ 0x0043, 0xfc2a, 0xfa9c, 0xf7c0, 0xf70b, 0xfa6a,
+ 0xfc7e, 0xfc8a, 0xff37, 0x03ce, 0x0433, 0x00ec,
+ 0x01a8, 0x03da, 0xff8c, 0xfb19, 0xfbab, 0xfa50,
+ 0xf86c, 0xf98a, 0xf81b, 0xf701, 0xfb19, 0xfceb,
+ 0xfa97, 0xfaa3, 0xfbe2, 0xfb22, 0xfb6b, 0xfe68,
+ 0x0051, 0xfe76, 0xfab4, 0xf6ec, 0xf459, 0xf46b,
+ 0xf572, 0xf597, 0xf64e, 0xf96b, 0xfe6d, 0x00a5,
+ 0xfdde, 0xfadb, 0xf854, 0xf4e6, 0xf4cb, 0xf68f,
+ 0xf576, 0xf521, 0xf8f4, 0xfd46, 0xfb16, 0xf25a,
+ 0xee40, 0xf01a, 0xefcb, 0xf243, 0xf931, 0xfbb5,
+ 0xfc54, 0xfd7e, 0xfa53, 0xf671, 0xf4f7, 0xf49c,
+ 0xf691, 0xf87f, 0xfa79, 0xfe4f, 0xfdab, 0xf88f,
+ 0xf63e, 0xf55c, 0xf3a2, 0xf353, 0xf62b, 0xfce9,
+ 0x0234, 0x006b, 0xfc65, 0xfafb, 0xf957, 0xf6a5,
+ 0xf72e, 0xfb10, 0xfd1f, 0xfcca, 0xfbf7, 0xf9d7,
+ 0xf8ce, 0xf8ec, 0xf6fc, 0xf7b8, 0xfc21, 0xfddc,
+ 0xfdff, 0xfb7c, 0xf4d6, 0xf49f, 0xfaba, 0xfa89,
+ 0xf5ca, 0xf4aa, 0xf776, 0xfbfd, 0x00a5, 0x0473,
+ 0x0334, 0xfae4, 0xf515, 0xf748, 0xf96a, 0xf55c,
+ 0xeea8, 0xecde, 0xef7f, 0xef87, 0xefdc, 0xf3c3,
+ 0xf583, 0xf587, 0xf553, 0xf31a, 0xf41d, 0xf873,
+ 0xf96c, 0xf73f, 0xf31f, 0xef85, 0xeef6, 0xecf7,
+ 0xece7, 0xf38d, 0xf6ea, 0xf5c8, 0xf87c, 0xf9f4,
+ 0xf823, 0xfa49, 0xfc80, 0xf84a, 0xf310, 0xf2dc,
+ 0xf579, 0xf70d, 0xf661, 0xf361, 0xf12d, 0xf1d0,
+ 0xf052, 0xed81, 0xf1ff, 0xfa8f, 0xfc19, 0xf6ba,
+ 0xf344, 0xf587, 0xf803, 0xf7b6, 0xf958, 0xfc71,
+ 0xfd6a, 0xfe8c, 0xffe6, 0xffdb, 0x00b1, 0x0130,
+ 0xfc94, 0xf3e0, 0xefbc, 0xf3eb, 0xf761, 0xf65c,
+ 0xf76e, 0xfa1e, 0xfcaf, 0xff82, 0xfc7a, 0xf6a8,
+ 0xf79e, 0xfa84, 0xfb1d, 0xfe25, 0x0213, 0x02df,
+ 0x0104, 0xfff4, 0x022c, 0x031d, 0x00e8, 0x00e5,
+ 0x021a, 0x0213, 0x03d9, 0x0655, 0x05ef, 0x0248,
+ 0xfe02, 0xfd15, 0xfdfe, 0xfe1e, 0x003e, 0x0250,
+ 0xffed, 0xfe68, 0x0387, 0x0a88, 0x0be4, 0x08c4,
+ 0x06c8, 0x05d5, 0x05cf, 0x0888, 0x09cf, 0x07d2,
+ 0x05bb, 0x01b5, 0xfd1d, 0xfe0b, 0x028b, 0x0642,
+ 0x0805, 0x0631, 0x033d, 0x02a4, 0x006e, 0xf97a,
+ 0xf484, 0xf7c6, 0xfd7c, 0xff24, 0xff6e, 0xff5b,
+ 0xfdbf, 0xfdfc, 0xffc5, 0x0007, 0xff73, 0xfe62,
+ 0xfe71, 0x001a, 0x0014, 0x0161, 0x0637, 0x087c,
+ 0x07f0, 0x0567, 0xfd26, 0xf5bb, 0xf4d2, 0xf314,
+ 0xeff0, 0xf1b8, 0xf5bf, 0xf805, 0xf9fa, 0xfbd8,
+ 0xfc25, 0xfb63, 0xfbe2, 0xff33, 0x047d, 0x0914,
+ 0x0a59, 0x0824, 0x04a2, 0x01ff, 0x00e7, 0x008f,
+ 0x0111, 0x02ec, 0x042e, 0x038d, 0x0247, 0x01b1,
+ 0x02d7, 0x03c8, 0x018e, 0xff56, 0x002e, 0x00e0,
+ 0xfe75, 0xf8e0, 0xf42f, 0xf613, 0xfab1, 0xfa5d,
+ 0xf79b, 0xf817, 0xfb6b, 0xfdfb, 0xfdb9, 0xfd32,
+ 0xfd75, 0xf9d9, 0xf321, 0xf1cc, 0xf7c1, 0xfbfa,
+ 0xf7e7, 0xf365, 0xf8cc, 0x0102, 0xff56, 0xf7a2,
+ 0xf4e9, 0xf914, 0xff5b, 0x01d1, 0xff53, 0xfd3d,
+ 0xfcc5, 0xfa85, 0xf8ab, 0xf9a4, 0xfb69, 0xfe39,
+ 0x0140, 0x01eb, 0x027c, 0x0252, 0xfe49, 0xfb7b,
+ 0xfc56, 0xfcd8, 0xff5c, 0x0333, 0x0123, 0xfd36,
+ 0xfeaf, 0x00ec, 0x000e, 0xffff, 0x0360, 0x091e,
+ 0x0e6f, 0x0f7e, 0x09e6, 0x00f9, 0xfca8, 0xff2d,
+ 0x0269, 0x0356, 0x04f7, 0x0789, 0x0800, 0x06b3,
+ 0x0629, 0x0675, 0x06c9, 0x0626, 0x02f8, 0x0033,
+ 0x02c8, 0x0931, 0x0f4b, 0x12af, 0x1188, 0x0e45,
+ 0x0b4d, 0x05df, 0x0080, 0x0177, 0x050c, 0x058d,
+ 0x056d, 0x0600, 0x0477, 0x00f5, 0xfe4d, 0xff1e,
+ 0x0393, 0x06fb, 0x05c4, 0x02a1, 0xff54, 0xfb1f,
+ 0xf967, 0xfc64, 0x004b, 0x02f6, 0x0443, 0x0214,
+ 0xfd23, 0xf98d, 0xf954, 0xfae7, 0xfbaf, 0xfd81,
+ 0x04a3, 0x0cf5, 0x0c83, 0x0221, 0xf78a, 0xf517,
+ 0xf870, 0xfbbf, 0x000a, 0x0535, 0x0448, 0xfcb1,
+ 0xf689, 0xf518, 0xf54a, 0xf4e4, 0xf4da, 0xf81b,
+ 0xfe73, 0x0328, 0x047c, 0x0597, 0x0877, 0x0b2f,
+ 0x09e1, 0x0556, 0x04fb, 0x09e0, 0x0b90, 0x08f8,
+ 0x088f, 0x083d, 0x0192, 0xf6dd, 0xef17, 0xed94,
+ 0xf1bc, 0xf768, 0xf9ce, 0xfaf0, 0xff61, 0x0363,
+ 0x0336, 0x0331, 0x041d, 0x034b, 0x01e5, 0xfe82,
+ 0xf9ca, 0xf9c6, 0xfc40, 0xfe89, 0x05ef, 0x0e9e,
+ 0x1122, 0x1172, 0x1136, 0x0cbb, 0x0703, 0x0585,
+ 0x088a, 0x0a32, 0x05d0, 0x01b5, 0x046f, 0x08eb,
+ 0x09c6, 0x099f, 0x0c2d, 0x1017, 0x10e3, 0x0ebf,
+ 0x0f2c, 0x133b, 0x13d8, 0x0cd7, 0x0791, 0x0d6c,
+ 0x15c2, 0x14e8, 0x0f0e, 0x0cce, 0x0da4, 0x0d27,
+ 0x0d71, 0x1263, 0x1527, 0x1048, 0x0b47, 0x09bd,
+ 0x0a74, 0x1007, 0x14b5, 0x11bf, 0x0d72, 0x0c0a,
+ 0x0bf5, 0x0d7b, 0x0d8d, 0x0ab8, 0x099c, 0x0c45,
+ 0x109a, 0x1291, 0x111a, 0x10dc, 0x12a0, 0x1340,
+ 0x11ad, 0x0c55, 0x05e4, 0x042a, 0x05f2, 0x080f,
+ 0x090e, 0x080b, 0x0815, 0x083c, 0x043e, 0x0017,
+ 0xff49, 0x002b, 0x01a9, 0xffeb, 0xfc06, 0xfd01,
+ 0x0047, 0x020b, 0x04c1, 0x055b, 0x018f, 0xfeaa,
+ 0x00b5, 0x06f5, 0x0b33, 0x09f0, 0x08e1, 0x09d5,
+ 0x0b1c, 0x0ee2, 0x111a, 0x0d0b, 0x0661, 0xfed2,
+ 0xf8a0, 0xf95a, 0xfee6, 0x0393, 0x045d, 0x00e6,
+ 0xfe42, 0xfe55, 0xfd96, 0xfdbd, 0x004a, 0x025a,
+ 0x03b2, 0x033a, 0xff33, 0xfb5c, 0xfb93, 0xff58,
+ 0x035b, 0x0496, 0x0484, 0x059a, 0x0688, 0x0532,
+ 0x0283, 0x021e, 0x0385, 0x01ef, 0xff29, 0xff37,
+ 0xff91, 0xfe98, 0xfd19, 0xfc68, 0xffd3, 0x03c4,
+ 0x01d2, 0xfde6, 0xfd0c, 0xfee6, 0x0235, 0x0306,
+ 0x0077, 0xff05, 0xff53, 0xfffb, 0xffb4, 0xfe6d,
+ 0x02a2, 0x0c69, 0x0fe7, 0x09e7, 0x032e, 0x0337,
+ 0x0905, 0x0b07, 0x07a2, 0x080f, 0x0a4b, 0x06b6,
+ 0x00c0, 0xfc90, 0xfb61, 0xff78, 0x05ea, 0x0a98,
+ 0x0da7, 0x0e46, 0x0af5, 0x0585, 0x03d1, 0x090e,
+ 0x0e13, 0x0d75, 0x0d3e, 0x0f65, 0x0f41, 0x0f77,
+ 0x126c, 0x129d, 0x0fe1, 0x0f1a, 0x0cca, 0x050a,
+ 0xfeb1, 0xff34, 0x0274, 0x0424, 0x0408, 0x03b6,
+ 0x04ca, 0x048d, 0xff60, 0xf9b1, 0xfaf3, 0x01c6,
+ 0x0694, 0x063c, 0x0267, 0xfe1d, 0xfea3, 0x0413,
+ 0x0689, 0x0487, 0x021e, 0xfe03, 0xf9fc, 0xfa51,
+ 0xfb99, 0xfcb6, 0x0030, 0x0249, 0x013f, 0x0065,
+ 0x0032, 0x004f, 0x006c, 0x006e, 0x021f, 0x029a,
+ 0xfdd0, 0xf837, 0xf6e4, 0xf92f, 0xfd3d, 0xffbb,
+ 0xfe3e, 0xfb85, 0xfaa4, 0xfc2c, 0xffca, 0x027d,
+ 0x01f8, 0x0143, 0x0177, 0xffa0, 0xfd85, 0xfdf2,
+ 0xffc3, 0x03d5, 0x07a6, 0x056a, 0x0158, 0xff04,
+ 0xf994, 0xf4a9, 0xf598, 0xf820, 0xfbee, 0x012d,
+ 0x0253, 0x015a, 0x02bb, 0x036f, 0x0184, 0xfee0,
+ 0xfdcf, 0xfe43, 0xfd49, 0xfc7a, 0xffb3, 0x0546,
+ 0x0b1f, 0x0fe7, 0x116d, 0x10ca, 0x0ee6, 0x0b81,
+ 0x08c2, 0x0716, 0x06bd, 0x098b, 0x0c6e, 0x0b9d,
+ 0x0977, 0x09f2, 0x0d3f, 0x0fc6, 0x10c0, 0x1381,
+ 0x161c, 0x14ec, 0x1301, 0x1284, 0x117e, 0x0f16,
+ 0x0bdc, 0x0b2d, 0x0ffc, 0x159c, 0x166b, 0x1458,
+ 0x12f1, 0x125a, 0x1324, 0x14fd, 0x1316, 0x0c42,
+ 0x0701, 0x0665, 0x079c, 0x0931, 0x0af7, 0x0d86,
+ 0x10fd, 0x1216, 0x102e, 0x0f6e, 0x111b, 0x1241,
+ 0x1046, 0x0d5c, 0x0e7c, 0x11bc, 0x1048, 0x0aa8,
+ 0x07af, 0x08cc, 0x0783, 0x0275, 0x026d, 0x0924,
+ 0x0d38, 0x0ade, 0x067d, 0x0546, 0x07ae, 0x074b,
+ 0x02f4, 0x0223, 0x065d, 0x0b16, 0x0c2e, 0x0637,
+ 0xfc52, 0xf549, 0xf360, 0xf794, 0x0062, 0x07ad,
+ 0x0999, 0x0684, 0x024a, 0x0167, 0x02ff, 0x04cf,
+ 0x0611, 0x046f, 0x00f6, 0xffc3, 0x0069, 0x002e,
+ 0xfdd2, 0xfa3d, 0xf90d, 0xfbca, 0xffb1, 0x01d9,
+ 0x010a, 0xfe50, 0xfcc1, 0xfe0b, 0xfffd, 0xff81,
+ 0xfde9, 0xfecb, 0x0247, 0x0622, 0x0702, 0x021f,
+ 0xfb0e, 0xf7ac, 0xf713, 0xf505, 0xf24d, 0xf39b,
+ 0xf7c9, 0xf7eb, 0xf4ae, 0xf4c5, 0xf83e, 0xfbb2,
+ 0xfd9a, 0xfce7, 0xfb5a, 0xfb11, 0xfb77, 0xfcc9,
+ 0xfecf, 0xffc3, 0xff0b, 0xfd1c, 0xfc92, 0xffdf,
+ 0x0456, 0x0599, 0x0138, 0xf935, 0xf57b, 0xf8ba,
+ 0xfbfc, 0xfc46, 0xfda4, 0x02d0, 0x09c1, 0x0c13,
+ 0x0766, 0x0272, 0x0147, 0x003a, 0xfd4c, 0xf9b5,
+ 0xf740, 0xf8e9, 0xfcdf, 0xfd14, 0xfc1a, 0xff67,
+ 0x0157, 0xfe49, 0xfcd3, 0xfdc1, 0xfce9, 0xfb3c,
+ 0xf952, 0xf80f, 0xfaa6, 0xff59, 0x01fc, 0x01c3,
+ 0x00e1, 0x0223, 0x02fc, 0x004d, 0xfd7b, 0xfb29,
+ 0xf7cf, 0xf65f, 0xf5fd, 0xf46e, 0xf42e, 0xf494,
+ 0xf4b5, 0xf686, 0xf7ab, 0xf642, 0xf4a6, 0xf42d,
+ 0xf4e4, 0xf581, 0xf5d9, 0xf738, 0xf678, 0xf205,
+ 0xee90, 0xef08, 0xf286, 0xf3c6, 0xeee2, 0xeb6c,
+ 0xece5, 0xeaf0, 0xe6e7, 0xe897, 0xec9a, 0xed6a,
+ 0xec67, 0xed27, 0xf0af, 0xf516, 0xfa60, 0xff96,
+ 0xff6b, 0xf930, 0xf186, 0xec98, 0xedf7, 0xf3bd,
+ 0xf7bc, 0xf8f4, 0xf9b8, 0xf955, 0xf494, 0xed0b,
+ 0xeb83, 0xf1b0, 0xf76b, 0xfa20, 0xfb8b, 0xfb34,
+ 0xf97c, 0xf595, 0xf191, 0xf41c, 0xfaae, 0xfcd1,
+ 0xfb4a, 0xfb0e, 0xfc65, 0xfc3e, 0xf8ab, 0xf41a,
+ 0xf162, 0xf088, 0xf17e, 0xf460, 0xf94c, 0xff7b,
+ 0x031c, 0x0201, 0xfe49, 0xf9da, 0xf523, 0xf144,
+ 0xf12f, 0xf6f8, 0xfef1, 0x033a, 0x0283, 0xff22,
+ 0xfc7d, 0xfc89, 0xfd5a, 0xfd39, 0xfebb, 0x0356,
+ 0x05fc, 0x0318, 0xff37, 0xfd46, 0xfc00, 0xfd80,
+ 0x00aa, 0x0114, 0x025e, 0x05d7, 0x04cb, 0x0126,
+ 0x0117, 0x0272, 0x03a2, 0x0503, 0x038b, 0x0119,
+ 0x02e9, 0x06be, 0x0897, 0x09d2, 0x0aef, 0x0984,
+ 0x0537, 0x0006, 0xfcb9, 0xfcf0, 0xfe27, 0xfd69,
+ 0xfcb9, 0xff74, 0x04d7, 0x08ab, 0x08ed, 0x08b5,
+ 0x09c7, 0x095d, 0x05ae, 0x003e, 0xfdcc, 0x0199,
+ 0x060b, 0x05b7, 0x041f, 0x0344, 0x011b, 0xfdc9,
+ 0xfaab, 0xfb19, 0xff9a, 0x01a5, 0xff98, 0xfd6f,
+ 0xfb13, 0xf975, 0xf9d3, 0xf8a1, 0xf6a2, 0xf7f9,
+ 0xfadb, 0xfb86, 0xf8d7, 0xf489, 0xf210, 0xf200,
+ 0xf418, 0xf91b, 0xfe0b, 0xff96, 0xfe4b, 0xfaca,
+ 0xf681, 0xf430, 0xf3cd, 0xf362, 0xf2d1, 0xf4dc,
+ 0xf9da, 0xfb7b, 0xf73b, 0xf317, 0xf116, 0xf001,
+ 0xf319, 0xf975, 0xfc8f, 0xfb75, 0xfab8, 0xfcdf,
+ 0xff75, 0xff3c, 0xfd49, 0xfaee, 0xf8b5, 0xfadb,
+ 0x0233, 0x08c5, 0x09f6, 0x0458, 0xfbc2, 0xf822,
+ 0xf8d1, 0xf794, 0xf603, 0xf8f4, 0xfeee, 0x0055,
+ 0xfa2e, 0xf5c0, 0xf831, 0xfa3c, 0xf9be, 0xf9a6,
+ 0xf9ad, 0xfcc6, 0x0280, 0x0402, 0x02e3, 0x040d,
+ 0x0432, 0x0187, 0x0039, 0x01a5, 0x02be, 0x0309,
+ 0x0585, 0x097b, 0x0b9d, 0x0aba, 0x05c9, 0xffbf,
+ 0xff56, 0x03e9, 0x0715, 0x05a2, 0x0230, 0x02f4,
+ 0x0696, 0x0644, 0x04c5, 0x05e3, 0x054f, 0x02a5,
+ 0x019e, 0x033d, 0x067e, 0x0705, 0x0266, 0xfd09,
+ 0xfaa2, 0xfac8, 0xfbfb, 0xfe14, 0x01c1, 0x0465,
+ 0x030b, 0xfe38, 0xf759, 0xf2a9, 0xf367, 0xf5ee,
+ 0xf807, 0xfa4f, 0xfb58, 0xfbbf, 0xfb27, 0xf73e,
+ 0xf2b5, 0xf015, 0xef43, 0xf09c, 0xf0ae, 0xee75,
+ 0xef47, 0xf222, 0xf245, 0xf1e5, 0xf302, 0xf339,
+ 0xf307, 0xf517, 0xf7b4, 0xf7ad, 0xf5d3, 0xf3e1,
+ 0xf33e, 0xf463, 0xf2dd, 0xed3d, 0xe946, 0xe8b8,
+ 0xea77, 0xedee, 0xef48, 0xeff0, 0xf431, 0xf7c0,
+ 0xf882, 0xfa93, 0xfd24, 0xfd0b, 0xfa4c, 0xf803,
+ 0xf7f9, 0xf6a8, 0xf45d, 0xf52b, 0xf746, 0xf9b7,
+ 0xfba2, 0xf83e, 0xf32f, 0xf255, 0xf375, 0xf6d1,
+ 0xfc81, 0xff64, 0xff18, 0xfdfe, 0xfc12, 0xf9bb,
+ 0xf8a2, 0xfaf7, 0xfed0, 0x001a, 0xfffc, 0x0075,
+ 0x0256, 0x04b1, 0x020a, 0xfb7d, 0xf704, 0xf303,
+ 0xf00f, 0xf0bf, 0xf2a8, 0xf809, 0xff23, 0xff52,
+ 0xfc30, 0xfb55, 0xf9be, 0xf825, 0xf7f3, 0xf990,
+ 0xfe52, 0x01b8, 0x0275, 0x03ca, 0x02fe, 0x0033,
+ 0xfe81, 0xfcc0, 0xfbe5, 0xfb0a, 0xf86d, 0xf8d8,
+ 0xfc22, 0xfdd1, 0xfe45, 0xfc93, 0xfb00, 0xff0d,
+ 0x052c, 0x08b9, 0x09b1, 0x07c3, 0x0670, 0x0715,
+ 0x04e0, 0x0132, 0x007c, 0x0188, 0x02ff, 0x049c,
+ 0x05ff, 0x07ab, 0x0797, 0x04a0, 0x041e, 0x08a2,
+ 0x0b8d, 0x0992, 0x07cd, 0x071f, 0x050e, 0x0493,
+ 0x0590, 0x03ba, 0x01a8, 0x039d, 0x0820, 0x0b5a,
+ 0x09cf, 0x0469, 0xfeff, 0xfaa5, 0xf8ee, 0xfacf,
+ 0xfd2e, 0x0013, 0x04c9, 0x076b, 0x0732, 0x07a2,
+ 0x065c, 0x00b0, 0xfce8, 0xffa4, 0x03f9, 0x064a,
+ 0x0741, 0x0572, 0x0157, 0xfdee, 0xfb8c, 0xfadf,
+ 0xfbc8, 0xfc1f, 0xfe08, 0x0294, 0x049a, 0x024e,
+ 0xff60, 0xfe94, 0xff88, 0xfff3, 0x00b6, 0x0376,
+ 0x04cb, 0x032f, 0x0146, 0xfee7, 0xfb8e, 0xf93e,
+ 0xf933, 0xfaed, 0xfc35, 0xfbd1, 0xfc3f, 0xff4b,
+ 0x019a, 0xfe2c, 0xf6a2, 0xf35b, 0xf7bd, 0xfe7b,
+ 0x0299, 0x03cb, 0x03cc, 0x0422, 0x04c7, 0x0283,
+ 0xfaa8, 0xf2b6, 0xf17e, 0xf438, 0xf761, 0xfb14,
+ 0xfc04, 0xf9cb, 0xf8b4, 0xfa1c, 0xfe11, 0x01c9,
+ 0x0161, 0x0009, 0x002f, 0x0014, 0x014b, 0x034d,
+ 0x0409, 0x0523, 0x055f, 0x03d4, 0x02de, 0x00b8,
+ 0xfe1d, 0x00cb, 0x0778, 0x0c34, 0x0d13, 0x0b39,
+ 0x0848, 0x041f, 0xfe89, 0xfa2f, 0xf994, 0xfc0e,
+ 0xfed6, 0x006f, 0x0137, 0x00f6, 0x00a7, 0x0120,
+ 0x00a1, 0xfff3, 0xff61, 0xfca2, 0xfbad, 0xfed6,
+ 0x0038, 0xffc3, 0x00c5, 0x01e0, 0x044f, 0x0803,
+ 0x0941, 0x08ba, 0x06da, 0x03c2, 0x046e, 0x0863,
+ 0x097a, 0x0828, 0x084b, 0x0945, 0x0865, 0x05e2,
+ 0x037d, 0x008c, 0xff05, 0x03af, 0x09f8, 0x09ce,
+ 0x069c, 0x05f6, 0x06b8, 0x0828, 0x0855, 0x0465,
+ 0x013f, 0x0341, 0x062a, 0x06dc, 0x04b3, 0xff0e,
+ 0xfa0a, 0xf808, 0xf66e, 0xf5bd, 0xf714, 0xf9db,
+ 0xfcff, 0xfd37, 0xfd3e, 0x01a3, 0x034d, 0xfed2,
+ 0xfc2a, 0xfea8, 0x04ba, 0x087e, 0x0393, 0xfe33,
+ 0xff5e, 0xff4f, 0xfbd1, 0xf9a3, 0xfa4e, 0xfe2a,
+ 0x01a4, 0x02dc, 0x0410, 0x0333, 0x009f, 0xfe83,
+ 0xfb40, 0xfa65, 0xfd0c, 0xfe52, 0x0103, 0x0687,
+ 0x0a9d, 0x0ccc, 0x0b9e, 0x08f6, 0x07be, 0x0214,
+ 0xfb14, 0xfaf3, 0xfc1a, 0xfd9c, 0x01ff, 0x0099,
+ 0xfa4d, 0xf830, 0xf8df, 0xfa69, 0xfe0a, 0x0322,
+ 0x0855, 0x09ac, 0x06a4, 0x0303, 0xff34, 0xfcea,
+ 0xfdfc, 0xfefb, 0xfe8c, 0xfe36, 0xfe72, 0xfe9e,
+ 0xfcd6, 0xfabe, 0xfb7d, 0xfd82, 0xff93, 0x0175,
+ 0x0230, 0x02fa, 0x0300, 0x00f0, 0xffb2, 0x005b,
+ 0x01a6, 0x0245, 0x022b, 0x060b, 0x0cea, 0x0d47,
+ 0x073f, 0x0395, 0x0501, 0x0746, 0x058b, 0x02bd,
+ 0x0547, 0x0b0f, 0x0f2e, 0x0f09, 0x09a6, 0x053a,
+ 0x06e5, 0x09e5, 0x09f4, 0x08d8, 0x0af0, 0x1160,
+ 0x163d, 0x1679, 0x156d, 0x145d, 0x13e5, 0x1489,
+ 0x1490, 0x14ea, 0x169f, 0x169f, 0x12f5, 0x0f10,
+ 0x1092, 0x14f2, 0x1466, 0x11d8, 0x1342, 0x1542,
+ 0x154f, 0x13ff, 0x1041, 0x0c06, 0x0a7f, 0x0c09,
+ 0x0e9e, 0x0efe, 0x0e22, 0x0ecf, 0x0ef2, 0x0d0a,
+ 0x0a6f, 0x07a9, 0x05ea, 0x05c4, 0x05b8, 0x0538,
+ 0x056e, 0x0738, 0x0914, 0x0a4f, 0x0c6c, 0x0cc6,
+ 0x089f, 0x0442, 0x0379, 0x05a3, 0x083a, 0x0900,
+ 0x0a95, 0x0d5e, 0x0c60, 0x0a01, 0x08f7, 0x03cb,
+ 0xfe02, 0x00a6, 0x072e, 0x09c9, 0x0a06, 0x0aac,
+ 0x0a53, 0x06ec, 0x0148, 0xfd44, 0xfdb6, 0x0069,
+ 0x024a, 0x0543, 0x0989, 0x0a4e, 0x077e, 0x0368,
+ 0xfd38, 0xf85d, 0xf80d, 0xf8d6, 0xfa1e, 0xfcd6,
+ 0xfcf5, 0xf9a2, 0xf77f, 0xf7ad, 0xf60c, 0xf1bd,
+ 0xefad, 0xf0a6, 0xf184, 0xf398, 0xf669, 0xf636,
+ 0xf565, 0xf821, 0xfd2d, 0x0080, 0x0000, 0xfe78,
+ 0xfe6a, 0xfe7d, 0xfe25, 0xfca5, 0xfad9, 0xfcb1,
+ 0xffdf, 0x00f7, 0x02dd, 0x03bf, 0x0152, 0x015a,
+ 0x045c, 0x0596, 0x05e9, 0x05e8, 0x0492, 0x04b7,
+ 0x0762, 0x09ca, 0x0b67, 0x0cb3, 0x0c56, 0x0b85,
+ 0x0bc7, 0x095d, 0x0427, 0x024e, 0x034a, 0x02e5,
+ 0x025f, 0x0212, 0x00b9, 0x0058, 0x02a9, 0x0527,
+ 0x034d, 0xffd7, 0x02e5, 0x097b, 0x0adf, 0x0837,
+ 0x05bf, 0x04a2, 0x03e0, 0x00ab, 0xfd81, 0xfd8f,
+ 0xfdd4, 0xfee1, 0x01e4, 0x01d7, 0xfe3f, 0xfb64,
+ 0xfb33, 0xfe07, 0x016d, 0x02be, 0x01f2, 0x000d,
+ 0x0006, 0x0163, 0x0022, 0xfd92, 0xfabb, 0xf7a1,
+ 0xf967, 0xfe64, 0xff41, 0xfde1, 0xfe67, 0x007f,
+ 0x02b6, 0x020d, 0xff96, 0xffc8, 0x01ff, 0x037c,
+ 0x02ed, 0x00fc, 0x0023, 0xfe0b, 0xf7dd, 0xf311,
+ 0xf447, 0xf8f9, 0xfdc7, 0x01ac, 0x04a6, 0x04cd,
+ 0x0128, 0xfdf8, 0xfddf, 0xfe9b, 0xff49, 0x0082,
+ 0x018c, 0x012c, 0x0002, 0xffc4, 0xfdd7, 0xf892,
+ 0xf74d, 0xfd33, 0x01d5, 0x016b, 0x0013, 0xfe7b,
+ 0xfc3b, 0xfc01, 0xfced, 0xfc47, 0xfd4e, 0x01b7,
+ 0x03ab, 0x0162, 0xff2a, 0xfe60, 0xff78, 0x02f4,
+ 0x06c3, 0x0a21, 0x0d3c, 0x0ef5, 0x0e8f, 0x0bb1,
+ 0x08a9, 0x0842, 0x082a, 0x06cc, 0x0671, 0x07db,
+ 0x0a56, 0x0bd1, 0x0bc9, 0x0dfe, 0x1191, 0x11be,
+ 0x0f02, 0x0bd9, 0x0b5b, 0x0ec2, 0x0f99, 0x0be3,
+ 0x0abb, 0x0cdc, 0x0d98, 0x0c73, 0x0b69, 0x0c62,
+ 0x0e3c, 0x0e6b, 0x0eda, 0x113e, 0x130a, 0x1227,
+ 0x0f1f, 0x0cc4, 0x0c77, 0x0b95, 0x0a45, 0x0c21,
+ 0x0faa, 0x100c, 0x0d78, 0x0b0f, 0x08b7, 0x074d,
+ 0x0ab9, 0x0f80, 0x0dc6, 0x085b, 0x0654, 0x06fc,
+ 0x076b, 0x06a3, 0x04b2, 0x0421, 0x0672, 0x0980,
+ 0x0b71, 0x0c48, 0x0c0a, 0x0aa8, 0x0990, 0x0a0e,
+ 0x0b0a, 0x0c49, 0x0eb2, 0x1001, 0x0da7, 0x08c5,
+ 0x0305, 0xfd05, 0xf883, 0xf7e2, 0xfab5, 0xfda4,
+ 0xfecb, 0xfeda, 0xfe6f, 0xfd01, 0xfa61, 0xf938,
+ 0xfb65, 0xfdfa, 0xff08, 0xfe10, 0xf9be, 0xf75f,
+ 0xfb6f, 0xfe41, 0xfbd2, 0xf9ef, 0xf9fc, 0xfb4f,
+ 0xfe9b, 0x0035, 0xfdd6, 0xf9e3, 0xf6cd, 0xf767,
+ 0xfc5d, 0x01fe, 0x0557, 0x0602, 0x04d2, 0x0376,
+ 0x02fb, 0x0325, 0x0328, 0x02e9, 0x02c0, 0x01fe,
+ 0x00b8, 0x0054, 0x0095, 0x00a5, 0x01c0, 0x056b,
+ 0x09e0, 0x0b4e, 0x099f, 0x0700, 0x041e, 0x0428,
+ 0x0850, 0x09af, 0x05e8, 0x02f6, 0x01e2, 0x0073,
+ 0x00ed, 0x03e2, 0x04f5, 0x024f, 0xffe6, 0x0013,
+ 0x0067, 0x00ed, 0x035b, 0x04e3, 0x0367, 0x00c2,
+ 0xff06, 0xffba, 0x01d8, 0x0333, 0x0577, 0x0857,
+ 0x071f, 0x0228, 0xfe02, 0xfc68, 0xfd3c, 0xfe77,
+ 0xfdea, 0xfdd9, 0xfed3, 0xfd58, 0xfbbd, 0xfdac,
+ 0xfe80, 0xfbb7, 0xf9b4, 0xfa29, 0xfcee, 0x00b0,
+ 0x00b4, 0xfe16, 0xfe43, 0xff63, 0xfe3c, 0xfcc4,
+ 0xfc61, 0xfbe2, 0xf99c, 0xf768, 0xf989, 0xfd08,
+ 0xfbe4, 0xf8bd, 0xf7e6, 0xf809, 0xf844, 0xfa33,
+ 0xfe47, 0x028e, 0x0448, 0x02e6, 0x004d, 0xfe0d,
+ 0xfc17, 0xf9eb, 0xf78f, 0xf545, 0xf478, 0xf617,
+ 0xf69e, 0xf374, 0xf061, 0xeefa, 0xec06, 0xe982,
+ 0xec8d, 0xf27f, 0xf4e4, 0xf383, 0xf128, 0xef96,
+ 0xf111, 0xf2a6, 0xef1a, 0xebb1, 0xee2c, 0xf18f,
+ 0xf2e6, 0xf373, 0xf2a3, 0xf2b0, 0xf50f, 0xf805,
+ 0xfbb2, 0xfe3f, 0xfd80, 0xfb8a, 0xf9c6, 0xf9fc,
+ 0xfd28, 0xfeff, 0xfd35, 0xf963, 0xf6e9, 0xfab6,
+ 0x0172, 0x0420, 0x050f, 0x0607, 0x0512, 0x034c,
+ 0x0009, 0xfcd4, 0xfe15, 0xffd7, 0xfd7e, 0xf981,
+ 0xf6eb, 0xf89d, 0xfd61, 0xffba, 0x004d, 0x02dd,
+ 0x07c2, 0x0cd9, 0x0d32, 0x08b1, 0x05b4, 0x0438,
+ 0x0134, 0x0040, 0x02ac, 0x03fe, 0x04a2, 0x08ce,
+ 0x0e44, 0x105c, 0x0f44, 0x0b4a, 0x06d2, 0x07cb,
+ 0x0b5f, 0x0abd, 0x0798, 0x043a, 0x026e, 0x0613,
+ 0x0ade, 0x09ef, 0x04c2, 0xfffd, 0xffdc, 0x0458,
+ 0x085b, 0x0abc, 0x0c31, 0x0bf8, 0x0bb2, 0x0af9,
+ 0x094a, 0x0955, 0x08dd, 0x06e5, 0x0937, 0x0e4b,
+ 0x0ec1, 0x0a4b, 0x0541, 0x035d, 0x0508, 0x06ff,
+ 0x07ac, 0x0816, 0x08e7, 0x093b, 0x076d, 0x046e,
+ 0x0206, 0xff58, 0xfd0e, 0xfcee, 0xfd07, 0xfc23,
+ 0xfd48, 0x00fb, 0x02b6, 0x00e9, 0xff4c, 0xfef7,
+ 0xfda6, 0xfae3, 0xf89d, 0xfa5f, 0xff35, 0xff94,
+ 0xfaf0, 0xf8b2, 0xf9f3, 0xfac6, 0xf98c, 0xf81c,
+ 0xf9fc, 0xfc7b, 0xfaa1, 0xf8c6, 0xfaf5, 0xfd27,
+ 0xfd49, 0xfc77, 0xfbc2, 0xfd56, 0x005d, 0x017a,
+ 0x0002, 0xfc7e, 0xf911, 0xfa95, 0x0023, 0x0217,
+ 0xff7e, 0xfe70, 0x0010, 0x0288, 0x0505, 0x04ae,
+ 0x0220, 0x002e, 0xfcb0, 0xf930, 0xf9f7, 0xfb8a,
+ 0xfc14, 0xfda8, 0xfdd7, 0xfd8e, 0x00ae, 0x045b,
+ 0x04ba, 0x01b2, 0xfd8e, 0xfbca, 0xfc83, 0xfdde,
+ 0xfe93, 0xfcd3, 0xfa61, 0xfa70, 0xfcb5, 0x005d,
+ 0x02c6, 0x01f6, 0x0117, 0x0030, 0xfcfe, 0xf9b9,
+ 0xf6ed, 0xf483, 0xf4e9, 0xf739, 0xfa47, 0xfe65,
+ 0x010a, 0x00f1, 0xff5d, 0xfd99, 0xfc9a, 0xfa51,
+ 0xf622, 0xf3d6, 0xf422, 0xf561, 0xf681, 0xf5fa,
+ 0xf5ca, 0xf6a0, 0xf3ee, 0xef5e, 0xef7d, 0xf3d9,
+ 0xf789, 0xf7f8, 0xf6a0, 0xf5b3, 0xf459, 0xf32d,
+ 0xf40e, 0xf55c, 0xf676, 0xf807, 0xf8ff, 0xf9c4,
+ 0xf950, 0xf62d, 0xf54f, 0xf8a9, 0xfa78, 0xf9e8,
+ 0xfa3e, 0xfb4a, 0xfc60, 0xfbd0, 0xf732, 0xf0bc,
+ 0xeb86, 0xe7da, 0xe79f, 0xecf1, 0xf4d9, 0xf924,
+ 0xf793, 0xf4e6, 0xf52e, 0xf621, 0xf630, 0xf63e,
+ 0xf4b7, 0xf211, 0xf152, 0xf1bf, 0xf304, 0xf618,
+ 0xf799, 0xf666, 0xf6bd, 0xf908, 0xfa4a, 0xf9dd,
+ 0xf87d, 0xf77b, 0xf7b0, 0xf85e, 0xf905, 0xf937,
+ 0xf85e, 0xf72c, 0xf6bd, 0xf7c2, 0xfa7b, 0xfdcd,
+ 0xff56, 0xfd49, 0xf94d, 0xf7c5, 0xf9b9, 0xfb65,
+ 0xfa27, 0xf853, 0xfa39, 0xffd0, 0x0420, 0x0450,
+ 0x02da, 0x0265, 0x01c3, 0xff98, 0xfe10, 0xff0f,
+ 0x017a, 0x03ec, 0x0528, 0x04fb, 0x048f, 0x0349,
+ 0x01f2, 0x0406, 0x07b7, 0x0888, 0x0670, 0x01f7,
+ 0xfc34, 0xf8c3, 0xf877, 0xfa90, 0xff51, 0x041f,
+ 0x05c7, 0x045b, 0x0173, 0xff6b, 0xff0f, 0xfe03,
+ 0xfbe0, 0xfb7c, 0xfde6, 0x01c2, 0x0550, 0x0739,
+ 0x077d, 0x063d, 0x0306, 0xffb8, 0xfea3, 0xfdf0,
+ 0xfbdf, 0xfab4, 0xfc38, 0xff90, 0x01de, 0x003e,
+ 0xfcd2, 0xfb86, 0xfc01, 0xfd3a, 0xfe91, 0xff14,
+ 0xffec, 0xffbb, 0xfbdd, 0xf87c, 0xf8fb, 0xfaa9,
+ 0xfcd0, 0xff6f, 0x00d6, 0x0172, 0x0187, 0x0108,
+ 0x00c0, 0xffd3, 0xff47, 0x0169, 0x03e9, 0x04a1,
+ 0x04f2, 0x05b2, 0x0707, 0x07b5, 0x068a, 0x05d9,
+ 0x0637, 0x04bf, 0x0211, 0x0196, 0x035a, 0x035f,
+ 0xff9d, 0xfd3a, 0x0100, 0x06f5, 0x097d, 0x08cf,
+ 0x0847, 0x0a3c, 0x0cf4, 0x0c9a, 0x096f, 0x076f,
+ 0x08b3, 0x0b41, 0x0b7a, 0x0830, 0x046d, 0x041b,
+ 0x05ce, 0x043d, 0xffb6, 0xfd4b, 0xfe38, 0x00ce,
+ 0x0383, 0x05b9, 0x0985, 0x0dd2, 0x0dbc, 0x0ac0,
+ 0x08d8, 0x06bb, 0x041f, 0x0293, 0x024e, 0x03de,
+ 0x0589, 0x05b8, 0x0660, 0x0661, 0x049d, 0x047e,
+ 0x0530, 0x051d, 0x0778, 0x09a8, 0x06ec, 0x035c,
+ 0x0257, 0x00fb, 0xfe92, 0xfcdf, 0xfc84, 0xfda9,
+ 0xff4b, 0xfffd, 0x0093, 0x018b, 0x0051, 0xfcfc,
+ 0xfc17, 0xfe9c, 0x01b7, 0x0409, 0x038a, 0xff8e,
+ 0xfc19, 0xfb03, 0xf9f9, 0xf8c5, 0xf95d, 0xfc10,
+ 0xfe13, 0xfcb5, 0xf9af, 0xf829, 0xf89e, 0xf998,
+ 0xf95c, 0xf909, 0xfaa7, 0xfc1e, 0xfc24, 0xfc7a,
+ 0xfbf4, 0xf9e3, 0xf976, 0xfb3c, 0xfc17, 0xfa32,
+ 0xf6cf, 0xf4ec, 0xf532, 0xf53a, 0xf4b3, 0xf653,
+ 0xfa15, 0xfbf0, 0xfa85, 0xf840, 0xf5b8, 0xf2dd,
+ 0xf1dc, 0xf45f, 0xf983, 0xfd14, 0xfbe8, 0xf9af,
+ 0xf9fe, 0xfb00, 0xfaf5, 0xf98c, 0xf85e, 0xf973,
+ 0xf9d8, 0xf8dc, 0xfac5, 0xfd1d, 0xfbce, 0xf9e4,
+ 0xf966, 0xfa07, 0xfc37, 0xfe33, 0xfef0, 0xff0a,
+ 0xfd9c, 0xfb2d, 0xfa6d, 0xfbab, 0xfbb0, 0xf91b,
+ 0xf7cb, 0xf938, 0xfa4d, 0xfae2, 0xfaea, 0xf942,
+ 0xf8e6, 0xfab0, 0xfc21, 0xfdc3, 0xfe1a, 0xfafb,
+ 0xf81c, 0xf779, 0xf6ae, 0xf5cb, 0xf6d0, 0xfa54,
+ 0xfde1, 0xfe4b, 0xfcbf, 0xfba2, 0xfa20, 0xf750,
+ 0xf53f, 0xf7ed, 0xff48, 0x046f, 0x0387, 0x011e,
+ 0x01a6, 0x03a8, 0x033d, 0x001c, 0xfe33, 0xffcd,
+ 0x0343, 0x05d5, 0x061b, 0x052d, 0x045b, 0x0313,
+ 0x0170, 0x0115, 0x0290, 0x03cc, 0x0246, 0x000b,
+ 0x0202, 0x0755, 0x09e5, 0x0765, 0x02ed, 0xffb1,
+ 0xff24, 0x0134, 0x03ca, 0x0512, 0x04ca, 0x0290,
+ 0xff82, 0xfdad, 0xfc41, 0xfa6a, 0xf8f0, 0xf769,
+ 0xf6c2, 0xf848, 0xf9ce, 0xfa39, 0xfb38, 0xfd63,
+ 0xff5f, 0xfe91, 0xfb24, 0xf8d5, 0xf884, 0xf903,
+ 0xfa11, 0xfb0e, 0xfd93, 0x01a2, 0x00d9, 0xf9fc,
+ 0xf5f8, 0xfa4d, 0x0156, 0x02b9, 0xffb9, 0xffb8,
+ 0x02a7, 0x0474, 0x057a, 0x0668, 0x06bf, 0x05b3,
+ 0x0241, 0xffd0, 0x018e, 0x03e4, 0x049a, 0x0551,
+ 0x0527, 0x047e, 0x06e5, 0x0c13, 0x106e, 0x1259,
+ 0x1110, 0x0ca7, 0x08ec, 0x08bd, 0x09a3, 0x09a1,
+ 0x0a09, 0x0b8f, 0x0ddf, 0x0fc9, 0x0f9a, 0x0e59,
+ 0x0e3a, 0x0f19, 0x0f98, 0x0dfa, 0x09de, 0x06e5,
+ 0x085b, 0x0bf4, 0x0ddb, 0x0de5, 0x0d78, 0x0dda,
+ 0x1035, 0x124e, 0x10e6, 0x0d3b, 0x0994, 0x0751,
+ 0x0861, 0x0b9c, 0x0e48, 0x0f25, 0x0c67, 0x07d5,
+ 0x05fc, 0x064f, 0x0768, 0x09d8, 0x0c17, 0x0dc5,
+ 0x0f27, 0x0ece, 0x0d45, 0x0b7a, 0x0a2d, 0x0a94,
+ 0x0ada, 0x0af3, 0x0ca2, 0x0c32, 0x08ec, 0x07d5,
+ 0x0900, 0x0a9c, 0x0c40, 0x0bfe, 0x0a1d, 0x0820,
+ 0x06c4, 0x0720, 0x06c5, 0x045f, 0x03d4, 0x058d,
+ 0x07aa, 0x0a13, 0x0a41, 0x07bd, 0x0543, 0x0325,
+ 0x0346, 0x0729, 0x09fb, 0x08a9, 0x05b6, 0x03a7,
+ 0x033b, 0x0212, 0xfe53, 0xfc20, 0xfdb1, 0xfe7f,
+ 0xfd88, 0xfe87, 0x00cf, 0x011d, 0xff0c, 0xfbc2,
+ 0xf9e0, 0xfb91, 0xfe42, 0xfebc, 0xfe4d, 0xfefa,
+ 0xff5b, 0xfd2a, 0xfaa0, 0xfb94, 0xfe51, 0x0025,
+ 0x015e, 0x008f, 0xfe1f, 0xfd80, 0xfdcb, 0xfd47,
+ 0xfd23, 0xfe0e, 0x00bb, 0x02a8, 0x0094, 0xff62,
+ 0x0222, 0x03bd, 0x029f, 0x0061, 0xfe0e, 0xfee6,
+ 0x0295, 0x05cd, 0x0830, 0x0866, 0x05ad, 0x031d,
+ 0x020e, 0x01a4, 0x015d, 0x00e4, 0x00f3, 0x019e,
+ 0x0233, 0x02e8, 0x02cf, 0x0148, 0x00ab, 0x0367,
+ 0x08aa, 0x0b6e, 0x0846, 0x03ef, 0x0373, 0x0433,
+ 0x02ce, 0x00a2, 0x0045, 0x0257, 0x04a2, 0x03d0,
+ 0x00c1, 0x0065, 0x026f, 0x01e4, 0x0000, 0x0080,
+ 0x01d8, 0x0256, 0x012e, 0xfe60, 0xfe27, 0x00d3,
+ 0x0156, 0xfffc, 0xff1d, 0xfe1f, 0xfd26, 0xfbd4,
+ 0xfaa6, 0xfc1b, 0xff00, 0x0041, 0xffa0, 0xfeee,
+ 0x0099, 0x0355, 0x02ab, 0xfea3, 0xfc67, 0xfff6,
+ 0x0587, 0x0558, 0x00c7, 0xfe80, 0xfec2, 0xffca,
+ 0x0071, 0xff38, 0xfe4f, 0xff46, 0x008f, 0x01e1,
+ 0x0244, 0x022f, 0x0406, 0x05df, 0x074d, 0x0a81,
+ 0x0b79, 0x0878, 0x0603, 0x03db, 0x016d, 0x012d,
+ 0x000f, 0xfc86, 0xfc98, 0x00c9, 0x02ba, 0x022f,
+ 0x02e7, 0x035e, 0x01e1, 0x00eb, 0x0151, 0x028d,
+ 0x04f0, 0x0607, 0x0452, 0x0242, 0x007f, 0xff8d,
+ 0x013a, 0x02b0, 0x01f6, 0x03c1, 0x0985, 0x0e44,
+ 0x0e86, 0x0a1e, 0x033a, 0xfe1e, 0xfdca, 0x0297,
+ 0x0a75, 0x10a8, 0x11cb, 0x0f5a, 0x0c9c, 0x0ae3,
+};
+
+int right_channel_length = sizeof(right_channel)/sizeof(right_channel[0]);
diff --git a/ecos/packages/hal/arm/edb7xxx/current/src/banner.xpm b/ecos/packages/hal/arm/edb7xxx/current/src/banner.xpm
new file mode 100644
index 0000000..5f4242e
--- /dev/null
+++ b/ecos/packages/hal/arm/edb7xxx/current/src/banner.xpm
@@ -0,0 +1,182 @@
+#ifdef CYGSEM_EDB7XXX_LCD_COMM_PORTRAIT_MODE
+/* XPM */
+static char * banner_xpm[] = {
+"240 39 65 1",
+" c None",
+". c #020206",
+"+ c #FAFAFA",
+"@ c #E61606",
+"# c #C2C0C1",
+"$ c #EAE5E7",
+"% c #BB0F06",
+"& c #949394",
+"* c #F1B8C0",
+"= c #6C686A",
+"- c #710206",
+"; c #F3A19B",
+"> c #404043",
+", c #B9B7B8",
+"' c #EC8F9A",
+") c #353536",
+"! c #EA6C6F",
+"~ c #29282B",
+"{ c #E85A5C",
+"] c #E27A7A",
+"^ c #300507",
+"/ c #1D1C1D",
+"( c #626262",
+"_ c #E74844",
+": c #141415",
+"< c #E2554D",
+"[ c #C6C6C6",
+"} c #5B595C",
+"| c #E6342D",
+"1 c #9B9B9B",
+"2 c #7C0806",
+"3 c #060606",
+"4 c #737072",
+"5 c #C20E06",
+"6 c #DEDEDE",
+"7 c #E23734",
+"8 c #EEEAEA",
+"9 c #F4C0C3",
+"0 c #820807",
+"a c #505050",
+"b c #FEFEFA",
+"c c #CA1206",
+"d c #A7A6A7",
+"e c #7F7E7F",
+"f c #E62419",
+"g c #950E07",
+"h c #F6C6CA",
+"i c #550206",
+"j c #0F0E0F",
+"k c #CE1206",
+"l c #F4F2F1",
+"m c #1C0206",
+"n c #CBCACB",
+"o c #4B4A4B",
+"p c #E2322E",
+"q c #A90B06",
+"r c #888888",
+"s c #B0B0B0",
+"t c #EEAFB6",
+"u c #F8D4D4",
+"v c #FAE1E3",
+"w c #DB1506",
+"x c #D3D2D2",
+"y c #430306",
+"z c #DF9D9B",
+"................................................................................................................................................................................................................................................",
+".................................................................................................................................bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb...",
+".................................................................................................................................bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb...",
+"333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb...",
+"..........3/~~~~~//3.............................................................................................................+++++++++++++++++++++++866xxxxxxxxxxxxxxxxxxxxxxxxxx$++++uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuvvb++++++++++++++...",
+"......../a&d,##sn,d&a/...........................................................................................................bbbbbbbbbbbbbbbbbbbbb8d4~/3........................3ebbbb@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@pp<tvbbbbbbbbbbbbb...",
+"......j}sseo)//:~)}e#sa3.........................................................................................................bbbbbbbbbbbbbbbbbbbbnaj3.3.........................3ebbbb@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@f_;bbbbbbbbbbb+...",
+"33333/d,=:3.333..3.3:=,d:33333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333bbbbbbbbbbbbbbbbbbl1~.3.333333333333333333333333333.ebb+b@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@f'lbbbbbbbbbb...",
+"...3>,1~.3m^^mj^^^^.33~1s)...................................................j33.................................................+++++++++++++++++bs/..........:::..................3e+bbb@w@@@@@@@@@ff@@@@@@@@@@@@@@@@@@@@@@@@@@f'l+++++++b+...",
+"...o#4j..mqg5g0qi^^im..j4,~................................................~}eo~.................................................bbbbbbbbbbbbbbbbb8~3.......jorsds&(:.............:>>dbbbb@@@@@@@@@{';tt;<f@@@@@@@@@w_];z!<f@@@@@@pubbbbbbbbb...",
+"..j,e:3.30wk@wqwq^^q^33.34#j..............................................3/dl$s>3j~3............................................bbbbbbbbbbbbbbbbbr...3.3.3),8+bbb+l6=3........3:rx8$lb+bb@@@w@wf_9l+bbbb89{fw@w@w@|'$l++lvu!f@@@@@!+bbbbb+b+...",
+"3:11:3...q-i025kqqq%q..33:&&:333333333333333333333333333333333333333333333.:dbb8)j4#)33333333333333333333333:33333333333333333333bbbbbbbbbbbbbbbb8)..3.3.:=$bbbbbbb++l&:3333333}6bbbbb+b+b@@@@@@!vbbbb++bbbb!f@@@@ftb+bbb+b+'f@@@@@@vbbbbbbbb...",
+".a[:..3..cy.j^2kcq@cqy..3.~#o.............................................3~d++$).eba....................../4/3..................+++++++++++++++b,/3.....}$+++++b+bbbblr.....3axbbbbbbbbbb@w@@@{8b++bbbbbbbbl]f@@@{lb++bbbbv_w@@@@@@;++++b+b+...",
+"/d4...3..wg22k0@wwwwwg.3.3.4&:..................3..3.......3............333/db+xa.4+(:.3..........3j:3...3.&x(j..................bbbbbbbbbbbbbbbb1j.....36bbblda~)ex+bbl)....3$b++bl*''t$b@@@@7ub+bbu'''u+b++l_@@f'bbbv!_{;'@@w@@@@@!bbbbbbbb...",
+"od~.yyqqmqqw@5wk5qkq@0m....~s>...............3)~)/:oo~j.j:)a>o~.......j~oo))dbb$)jel}/:>>~j....3:/))))33.~~s6a~//................bbbbbbbbbbbbbbbb&3.3.33rbbb6>.3.33/s+bbsj..3rbbb+v!w@w@pt@@@f'bbbb;f@@@@'8bbbt@w@hbbbtf@@wf@@@@w@@@!bbb+b+b+...",
+"e&j^%w%@-mi-qk5wk@wk5cy....jre333333333333333~d#d>=x6r::)e,666#a:333:/r[6x#4sbb6)3e+a>r#n,=/33:34&,n[&)::e&6ld1&o3333333333333333bbbbbbbbbbbbbb+be33.3.:nbb+e///////}bbb6)33/n+bb8!f@@@@@fw@@p*+bb*f@w@@@f'lbbbf@@u+bb$z7f@@@@@@@@@@!bbbbbbbb...",
+"s(.^ww55k33mm^-wqwq@kc--y...=d.............33)8b6d6++d/)dlb+++b6}..3~,lbbbb$6bb$)34+enlxnl$e~.j>$8xn6l,)3#$ll8$l=................+++++++++++++b+be....3o6+bb6xxnxxxx6+bbb4..>$bbbhf@@w@@@@@@@_lb+8<@@@@@@@_ubb+_@@;+bb++v*!@@@@@@@w@{b+b+b+b+...",
+"6>3m-qwwqk-^m..0www5q%%w%g3.)[...............>8++8+b+&/,bb8,d6+b8o3/,bbb866bb+b$)jrl$,>33~nla..)r~3.jel&:j:d$o/~:................bbbbbbbbbbbbbbbbe.....}8bbbbb+b+b++bb+blr..(8++b'w@@@w@@@@@@<b+b*f@@@@@w@@9++b!w@{8++b++bbu_@@@@@@@!bbbbbbbb...",
+"x~..^-wk5wc%qyy^5k5@@5ck%k-.~x:..............)$+bb$d&a=8b8e/j>xbbd:(lbb$(>o,b+b$).eb#~.333(8s...3....:un~..s6a.3.................bbbbbbbbbbbbbbbbe333.3}8b++666x666xx6x6x43.}8b+b'@@@@@@@@w@@{bbb*p@w@@@@@@hbbb]@@@!*bbb+b+bu|@@@@@@{b+b+b+b+...",
+"[/3.3mq@kwqkwc5%qkk%kq5wwwg3/x)3333333333333.)8bbl(/j3[b+,~/3:1bb8:1bb84.3.>xb+6o34le.....~xx/3..3/j:j,8)33d$}j.33333333333333333bbbbbbbbbbbb+bbbe33...a8+b+o~))~~)))))))/..}8bbbz@@@@@@@@@@@<bb+u7@@@@@@@fhbbb{@@@@|{'8bbbbb{@@@@@@!bbbbbbbb...",
+"n/.....y2ww@q5kqw@qwk@w@qk^3~x~..............)8+b,/..j$bbx,s#,nbbb)nbb6).33/db+$)jrb}..3.3~#$.3./)a&s[68).3d6o...................+++++++++++b++bbe..3.3)xbbbr3..3...33jj:/33)xb+bup@@@@@@@@@@7ubbb]@@@@@@@!vb+b7@@@@@@@f]lbbb'@@w@w@!b+b+b+b+...",
+"n~..333o4-qc5@5w55wk5k5wq2m.~x:............3.)$b+&:..)+b+bbbbb++bb>6+b,/3..~db+$)3e8}.3.33/,l..3en8$6n86)..s$o...................bbbbbbbbbbbbbb+b&3....:sbbb6}3.3..)r&&re/..:sbb++zf@@@@f!@@@ftbb+v_@@@@@7hbbbv@@@f_7@@@|u++bz@@@@@@!bbbbbbbb...",
+"x)..../dl(myg@kq@kk5qw5q0m.3)x.............3.)$bb&:..~bb+ll8blll88o6bbs/.3.~dbb$)3r+}...../,6..(lxe))),8).3d8}...................bbbbbbbbbbbbbb++&:.3...>++b+6&):/en++b+r33..>bb+b+h_fw_'$@@@@!vbb+u'p@|!ubbbb]@@@<vu_f@!lbbb!@@@@@@{b+b+b+b+...",
+",oj//~:ellxe3mi0qq%%%q-^....as333333333333..3)$+b&:3.3lbb&:)ooaao>~x++6).../,bl$)3ela....3~[6j>xn>33..s8)..d6o3333333333333333333bbbbbbbbbb+bbbbbs:..3..31++bb+l8l+bbbbn3....3rlbbbb+ll+bb@@@@ftbbb+l+lllb+b+t|@@f*+++llb+b+l_@@@@@@;bbbbbbbb...",
+"&r}s#x=/ebb+=~~/>~))~:3.33.3ee...............)$+b1/333nbbx).:33:..:dbb843j:o6bb6)3eb}...../#6j=8&...j3#8)..s6o...................+++++++++b++bbbb6)..3333/s++bbbbbb++bx>....3./&lbb+bb++bb@@@w@fh+bb++bb+b+b97@w@_bb++bbbbbl'f@w@@@whb+b+b+b+...",
+"axx++b81&bb+8n#[xnxxn:.3..3/d>...........3..3)$bb&:..3=bbl,4a>a4e/.=8bb8e}e#bbb$)34+}.33..~#$3=l1:333/l$>..d$}3..................bbbbbbbbbbbb+bbbb=.......~1b+bb+b+bb,>j3.33.../(6+b+bbbbb@@@@@@7;lbbb+bbb+*_@@@@p'8bb++b++'p@@@@@@|bbbbbbbbb...",
+"~#bbbbb+++bbbbb6r&xb[....33=s/...........3.33)8bb1j3../s+bb+l8ll8)./,bbb+ll+l+b$)3e+}...3./,$.o6n>/))dl8)33&le):3................bbbbbbbbbbbb++bbb6j..333..jas68886n4:..3..3..333/a&dnb+b+@@@@@w@f_*v8v88h!f@@@@@@@|!thuu'7@@@@@@@@9bb+b+b+b+...",
+".(8b+bb+b+b+b++n=}6+&.:~>~),a.3333333333..3.3)8b+&j...3~dl+++bbblo33)xlbb+bxs8b$).ela..3..~#l..el61s6618)3.)$xd,a3333333333333333bbbbbbbb+bbbbb+b++e:.......3.~}((~:..3.....33...3...rbb+b@@w@@@@@@@|_<_7@@w@@@@@@@@@@@@@@@@@@@w@f!v+bbbbbbbb...",
+"3/dbb+bbbbbbbb+bl8bx)je#xxnd:...............3~d,,(..3.33~(sn6xxs4/333)e#6xs>od#d~.as).....:e1.3/en6x,a~,~..3=n$6}................+++++++b++bbbbbbbb843..3.....3...3...........3...3..ebbbb@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@{vb+b+b+b+b+...",
+".3~8+bbbb+b+bbbbbb8()#8bbb8:...........3....33:::3.3.....j:////:33....3////33:::333:j3.....::...j///j3j/3.333///j................bbbbbbbbbb+bbb+bbbb8&:3..33........3.3.33...3...3...ebbbb@@@@@@@@@@@@@@@@@@@@@@@@@w@@@@@@@@@@@f{lbbbbbbbbbbb...",
+".33a$b+bbbbbbb++bb#}xbbbb6>............3.33.333333...3....3.33.3..3........3.....33...3.33..3....3.3...33........................bbbbbbbbbb++bbbb++bbb#(>:33....3.3...3..3....3...3.3eb++b@@w@@@@@@@@@@@@@@w@@@@@@@@@w@@@@@wf|!*l+bb+b+b+b+b+...",
+".3.j}6b+b+b++bbbbb68bbbbnoj.3333333333..3.......3...3..3...........3333......333.....3.3...3.....33.....3..33.3.33333333333333333bbbbbb+bbbbb+b++bbb++bl6dd&1&1&1&&&1&&&&&11&&&11&&1&n+bbb;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;t*lbbb+bbbbbbbbbb...",
+"....3>xlbbbb+bb++b+b++l[)33..................3....3..3..3....3.33......3...3.....33......3..333.....3.3..3..3....................+++++b++bbbbbbbbb+bbbb+b+bbb+bbbbb+bbbbb++bbb+bbb+bbbbbb+bbbb+b+b++bbb++++++++++++bbbbbbbb+b+b+bb+b+b+b+b+b+...",
+".3...3:exlbbbbbbb+bblne:33...........3....33.....3.....3..3...3.......3.33.....33..3...........3...3.3..3.....3..................bbbbbbbb+bbb+bbbbbbbbbbbb+bbbb+b+bbb+bb+bbbb+bbb+bbbbbb+bbb+bbbb+bb+bbbbbbbb++b+bbbb++bbbbbbbbbbbbbbbbbbbbbb...",
+".3.3.33.)=s6++bbbb6d4~33.............3.33..3.333...3....3.33....3........3..........3.33..3......3....3..........................bbbbbbbb++bbbb++bbb++b+bbbbbbbbb+b+b++bbb+bbb+bbb++b++bbbbbbbbbbbbb+bbbbbbbbbbbbb+bbbb+bbbbbbb+bb+b+b+b+b+b+...",
+".................................................................................................................................bbbb+bbbbb+b++bbb++bbbbbbb+b+b+bbbbbbbbbbb+bbb+bbbb+bbbbb+b+b+bbb+bb+++b+b+bbbb+bb+bb+b+bb+b+bb+bbbbbbbbbbbb...",
+".................................................................................................................................++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++...",
+"................................................................................................................................................................................................................................................"};
+#else
+/* XPM */
+static char * banner_xpm[] = {
+"320 54 17 1",
+" c None",
+". c #030305",
+"+ c #949394",
+"@ c #CFC9CD",
+"# c #525052",
+"$ c #B7B6B8",
+"% c #E2515E",
+"& c #FDFDFB",
+"* c #737073",
+"= c #820204",
+"- c #E33533",
+"; c #343232",
+"> c #E895AE",
+", c #E51604",
+"' c #E67284",
+") c #EABAD4",
+"! c #D8D7D9",
+"............................................................................................................................................................................&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"............................................................................................................................................................................&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"............................................................................................................................................................................&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"............................................................................................................................................................................&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"............................................................................................................................................................................&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"............................................................................................................................................................................&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"............................................................................................................................................................................&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"............................................................................................................................................................................&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"............................................................................................................................................................................&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"..............*+@&&&&&&$+*..................................................................................................................................................&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&+#;;...................................&&&&&&,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,--%>&&&&&&&&&&&&&&&&&&&&&&&&",
+"...........#$&&@+*##;#++@&&$#...............................................................................................................................................&&&&&&&&&&&&&&&&&&&&&&&&&&&&&#........................................&&&&&&,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,'&&&&&&&&&&&&&&&&&&&&&&",
+".........#$&$*...........;#!&$;.............................................................................................................................................&&&&&&&&&&&&&&&&&&&&&&&&&&&+..........................................&&&&&&,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,>&&&&&&&&&&&&&&&&&&&&",
+"........+&$#................#$&+............................................................................................................................................&&&&&&&&&&&&&&&&&&&&&&&&&&#...........................................&&&&&&,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,'&&&&&&&&&&&&&&&&&&&",
+"......;!&*....................*&@...........................................................................................................................................&&&&&&&&&&&&&&&&&&&&&&&&&#............................................&&&&&&,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,'&&&&&&&&&&&&&&&&&&",
+".....;!@;.....====;.=====......;!@;....................................................................;.;..................................................................&&&&&&&&&&&&&&&&&&&&&&&&+...............;;;;..........................&&&&&&,,,,,,,,,,,,,,,---,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,>&&&&&&&&&&&&&&&&&",
+"....;&@......,,=,,=,,=...==......!!.................................................................;#!$*#..................................................................&&&&&&&&&&&&&&&&&&&&&&&!.............#+&&&&&&@*...................;***&&&&&&,,,,,,,,,,,,')&&&&&&>-,,,,,,,,,,,,,,%>!&&)>'-,,,,,,,,,,&&&&&&&&&&&&&&&&&",
+"....@@;.....=,,,,,,=,,=..=,.......!!.................................................................#&&&&+;...;............................................................&&&&&&&&&&&&&&&&&&&&&&&#...........;@&&&&&&&&&&&+...............*&&&&&&&&&&&,,,,,,,,,,'&&&&&&&&&&&)-,,,,,,,,,,-)&&&&&&&&&)-,,,,,,,,'&&&&&&&&&&&&&&&&",
+"...$&;......====,=,,,====,==......;!+................................................................#&&&&@..;>+;...........................................................&&&&&&&&&&&&&&&&&&&&&&&...........*&&&&&&&&&&&&&&$............#&&&&&&&&&&&&&,,,,,,,,,)&&&&&&&&&&&&&&%,,,,,,,,-&&&&&&&&&&&&%,,,,,,,,,&&&&&&&&&&&&&&&&",
+"..#&;.......,=.....=,,,,,,,,.......*&#...............................................................#&&&&@...&&*...............................;...........................&&&&&&&&&&&&&&&&&&&&&&+..........+&&&&&&&&&&&&&&&&@..........#&&&&&&&&&&&&&&,,,,,,,,)&&&&&&&&&&&&&&&&',,,,,,,)&&&&&&&&&&&!,,,,,,,,,,>&&&&&&&&&&&&&&&",
+"..!$........,=...;==,=,=,=,==.......$$..............................................................;#&&&&@...&&*..............................#$*..........................&&&&&&&&&&&&&&&&&&&&&&#.........#&&&&&&&&&&&&&&&&&&$........#&&&&&&&&&&&&&&&,,,,,,,)&&&&&&&&&&&&&&&&&&%,,,,,%&&&&&&&&&&&&-,,,,,,,,,,'&&&&&&&&&&&&&&&",
+".*&;........,,===,,=,,,,,,,,,.......;&#..............................................................#&&&&$;..!&*;...................;.........!&+;.........................&&&&&&&&&&&&&&&&&&&&&&;.........&&&&&&&*;...#$&&&&&&#.......&&&&&&&&!'''>!&&,,,,,,'&&&&&&&)'''>&&&&&&&&,,,,,'&&&&&)-,,%)),,,,,,,,,,,-&&&&&&&&&&&&&&&",
+".@+.....===.,=,,,,=,,=,=,=,,=........$$.......................;.;.;.;.;......;.;.;..............;.;.;#&&&&@..;!&*.;.;.;..........;.;.;.;....;.;!&+.;.;......................&&&&&&&&&&&&&&&&&&&&&&;........+&&&&&@........#&&&&&!......+&&&&&&&',,,,,,'&,,,,,,&&&&&&&-,,,,,,>&&&&&&',,,,)&&&&&%,,,,,-,,,,,,,,,,,-&&&&&&&&&&&&&&&",
+";&#..=,,,,,..=,=,,,,,,,,,=,,,=.......#&;.....................#***;.;+$$#;..;.#+$$@+*..........#+$$$*.#&&&&@...!&*.;;*++#;.......;.#*++*;.;..;;;!&+;;;;......................&&&&&&&&&&&&&&&&&&&&&&.........&&&&&!..........+&&&&&#.....&&&&&&&-,,,,,,,,%,,,,,%&&&&&&-,,,,,,,,'&&&&&&,,,,)&&&&&>,,,,,,,,,,,,,,,,,-&&&&&&&&&&&&&&&",
+"*&...,=,=,,=...===,=,=,,,,,=,=........!*.....................!&&&*;@&&&*..;#@&&&&&&&$;.....;.$&&&&&&!*&&&&@..;&&*.$!&&&&$#....;.+!&&&&&!*..;$!&&&&!&&!......................&&&&&&&&&&&&&&&&&&&&&&........#&&&&&*;;;;;;;;;;#&&&&&+....#&&&&&&',,,,,,,,,,,,,,,>&&&&&%,,,,,,,,,,)&&&&&-,,,)&&&&&&!'-,,,,,,,,,,,,,,-&&&&&&&&&&&&&&&",
+"$$...,,,,=,,.......=,,=,=,,,,====.....@$.....................!&&&+!&&&&+;.*!&&&&&&&&&!.....;!&&&&&&&&!&&&&@...!&*!&&!$!&&&;;...*&&!@$@!&&*..$&!&&!&!&!......................&&&&&&&&&&&&&&&&&&&&&&........+&&&&&&&&&&&&&&&&&&&&&&&....+&&&&&&,,,,,,,,,,,,,,,,&&&&&!,,,,,,,,,,,%&&&&&',,,'&&&&&&&&&)',,,,,,,,,,,,-&&&&&&&&&&&&&&&",
+"&+...==,,,,=,=......=,,,,=,=,=,,=,....*!.....................!&&&!&&&&&*.#&&&&&!!&&&&&@....!&&&&&&&&&&&&&&@..;!&!&$;...#!&!....#@*....;@&&...;.!&+.;;;......................&&&&&&&&&&&&&&&&&&&&&&........$&&&&&&&&&&&&&&&&&&&&&&&....$&&&&&),,,,,,,,,,,,,,,,&&&&&',,,,,,,,,,,,&&&&&',,,-&&&&&&&&&&&&-,,,,,,,,,,-&&&&&&&&&&&&&&&",
+"&#....==,=,,,,,==....,=,,,,,=,=,,,,...#&.....................!&&&&&&&!&*.@&&&&*;.;@&&&&#;.+&&&&&@+*+&&&&&&@...&&&+......*&&*............!&+....!&+..........................&&&&&&&&&&&&&&&&&&&&&&........$&&&&&&&&&&&&&&&&&&&&&&&....$&&&&&),,,,,,,,,,,,,,,-&&&&&',,,,,,,,,,,,&&&&&),,,,%&&&&&&&&&&&&-,,,,,,,,,-&&&&&&&&&&&&&&&",
+"&;.....=,,,=,=,,,===.=,,=,,,,,,,=,==..#&;....................@&&&&&@*;;.*&&&&*.....&&&&$..&&&&&$....#&&&&&@...&&!........@&$...........;)&$....&&+..........................&&&&&&&&&&&&&&&&&&&&&&........$&&&&&$$$$$$$$$$$$$$$$$$....$&&&&&),,,,,,,,,,,,,,,,&&&&&',,,,,,,,,,,,&&&&&>,,,,,->&&&&&&&&&&&,,,,,,,,,-&&&&&&&&&&&&&&&",
+"&;......=,,,,,=,,,,,,,=,,,=,=,=,,,,=..;&#....................!&&&&!.....@&&&!;.;.;.$&&&&.#&&&&!;.....+&&&&$;..!&+........+&@;......;.;..+&!....!&+;.........................&&&&&&&&&&&&&&&&&&&&&&........+&&&&&;.....................$&&&&&!,,,,,,,,,,,,,,,,&&&&&),,,,,,,,,,,-&&&&&',,,,,,,,%>&&&&&&&&-,,,,,,,,-&&&&&&&&&&&&&&&",
+"&;........==,,,,=,=,=,,,=,,,,,,,=,,...#&;....................!&&&&*.....!&&&!+$+$$+@&&&&.+&&&&$......#&&&&@..;&&*........+&!.....;.;*+$$@&@....!&+..........................&&&&&&&&&&&&&&&&&&&&&&........*&&&&&+................;....*&&&&&&-,,,,,,,,,,,,,,,)&&&&&-,,,,,,,,,,>&&&&&%,,,,,,,,,,,'&&&&&&',,,,,,,,-&&&&&&&&&&&&&&&",
+"&#.........==,=,,,,,,=,,,=,=,=,,=,=...#&;....................@&&&&#....;&&&&&&&&&&&&&&&&;$&&&&+......#&&&&@...!&*........*&&....;*@&&&&&&&!....!&+..........................&&&&&&&&&&&&&&&&&&&&&&........;&&&&&&;.........;;;;;;;....;&&&&&&!,,,,,,,,,-,,,,,'&&&&&),,,,,,,,,-&&&&&&,,,,,,,,,,,,,>&&&&&',,,,,,,,-&&&&&&&&&&&&&&&",
+"&;.......;&@.==,=,,=,,,=,,,,,,,,,=....#&.....................!&&&!;....#&&&&&&&&&&&&&&&&.@&&&&#.....;#&&&&@..;!&*........*&!....$&&!!$++@&@....&&+..........................&&&&&&&&&&&&&&&&&&&&&&;........$&&&&&&;.......@&&&&&&;.....$&&&&&&),,,,,,,-!,,,,,-&&&&&&>,,,,,,,-&&&&&&>,,,,,')-,,,,,>&&&&&',,,,,,,,-&&&&&&&&&&&&&&&",
+"&*.......*&&$...=,,,=,,,,=,=,=,==.....*&.....................@&&&&;....;&&&&&!&!&&!&&!&!;$&&&&*......#&&&&@...&&*........*&!...$&&+;....+&!....!&$..........................&&&&&&&&&&&&&&&&&&&&&&;........;&&&&&&&$#;.;+&&&&&&&+......;&&&&&&&&'-,,%>&&,,,,,,>&&&&&&&'-,-%>&&&&&&&-,,,,-&&&'-,,'&&&&&&-,,,,,,,,-&&&&&&&&&&&&&&&",
+"@+.......;&&&@&;...==,=,,,,,,==.......+$.....................!&&&&;.....&&&&$..########;.$&&&&$......*&&&&@..;!&*........+&!.;#&&*......+&!....!&+..........................&&&&&&&&&&&&&&&&&&&&&&#.........+&&&&&&&&&&&&&&&&&&!........*&&&&&&&&&&&&&&&,,,,,,-&&&&&&&&&&&&&&&&&&&',,,,,>&&&&&&&&&&&&&&,,,,,,,,,'&&&&&&&&&&&&&&&",
+"+!.#*++$;.;&&&&&;.....................!*.....................@&&&&;;....!&&&&............*&&&&!......+&&&&@...&&*........*&!..$&!.......+&!....!&+..........................&&&&&&&&&&&&&&&&&&&&&&+..........@&&&&&&&&&&&&&&&&&;.........+&&&&&&&&&&&&&&,,,,,,,-&&&&&&&&&&&&&&&&&),,,,,-&&&&&&&&&&&&&&',,,,,,,,,>&&&&&&&&&&&&&&&",
+"#&#+&&&&&;.;&&&&!+;##*+#*+#*;........;&;.....................!&&&&;.....+&&&&)..;.;.;.....&&&&&$.;.;#&&&&&@...&&*........+&!.;)&$.....;.@&@....&&+..........................&&&&&&&&&&&&&&&&&&&&&&&...........@&&&&&&&&&&&&&&&;...........+&&&&&&&&&&&&&,,,,,,,,%&&&&&&&&&&&&&&&),,,,,,'&&&&&&&&&&&&&>,,,,,,,,,,&&&&&&&&&&&&&&&&",
+".!&&&&&&&&$@&&&&&&&&&&&&&&&&.........+@......................@&&&&;......&&&&&!+*##*+!+...$&&&&&)+*$!&&&&&@...!&*........*&!..@&);.....;&&!....!&+;.........................&&&&&&&&&&&&&&&&&&&&&&&#...........+&&&&&&&&&&&&$;.............;$&&&&&&&&&&&,,,,,,,,,-)&&&&&&&&&&&&',,,,,,,,-)&&&&&&&&&&',,,,,,,,,,%&&&&&&&&&&&&&&&&",
+".+&&&&&&&&&&&&&&&&&&&*$+@&&$........;&*......................!&&&&;......*&&&&&&&&&&&&!...;&&&&&&&&&&&&&&&@...&&*........*&!..+&&;;.;.;!&&!....@&@.;........................&&&&&&&&&&&&&&&&&&&&&&&!............;+&&&&&&&&@#.................;*$$$&&&&&&,,,,,,,,,,,%)&&&&&&&&>-,,,,,,,,,,,-')!&&&)',,,,,,,,,,,,&&&&&&&&&&&&&&&&&",
+"..&&&&&&&&&&&&&&&&&&!;..$&&+........+!.......................!&&&&;.......+&&&&&&&&&&&&....*&&&&&&&&&!@&&&!...&&*........+&&...!&&+#*+&&$&!....*&&+*+*......................&&&&&&&&&&&&&&&&&&&&&&&&*..............#++++#;........................&&&&&&,,,,,,,,,,,,,-%''''%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,'&&&&&&&&&&&&&&&&&",
+"..*&&&&&&&&&&&&&&&&&&&!!&&&;..**+*+*&#.......................!&&&!;........*!&&&&&&&&&@;....*!&&&&&&!;$&&&@...!&*........*&!...#!&&&&&&+.&!.....$&&&&!......................&&&&&&&&&&&&&&&&&&&&&&&&&#............................................&&&&&&,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,%&&&&&&&&&&&&&&&&&&",
+"...$&&&&&&&&&&&&&&&&&&&&&&*..;&&&&&&$........................*++++...........*+$@@$$+#........*$@@$*..#+++*...*+;........;+*....;+@!@$#..++......+@!!+......................&&&&&&&&&&&&&&&&&&&&&&&&&&;...........................................&&&&&&,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,%&&&&&&&&&&&&&&&&&&&",
+"...;&&&&&&&&&&&&&&&&&&&&&$.;@&&&&&&&........................................................................................................................................&&&&&&&&&&&&&&&&&&&&&&&&&&&*..........................................&&&&&&,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,'&&&&&&&&&&&&&&&&&&&&",
+"....;&&&&&&&&&&&&&&&&&&&&;.&&&&&&&&;........................................................................................................................................&&&&&&&&&&&&&&&&&&&&&&&&&&&&@;........................................&&&&&&,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,%!&&&&&&&&&&&&&&&&&&&&&",
+".....*&&&&&&&&&&&&&&&&&&$+&&&&&&&&;.........................................................................................................................................&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&!+;;....................................&&&&&&,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,--'!&&&&&&&&&&&&&&&&&&&&&&&",
+"......;&&&&&&&&&&&&&&&&&&&&&&&&&!;..........................................................................................................................................&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+".......;@&&&&&&&&&&&&&&&&&&&&&&$;...........................................................................................................................................&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+".........*&&&&&&&&&&&&&&&&&&&&*.............................................................................................................................................&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"...........+!&&&&&&&&&&&&&&!*...............................................................................................................................................&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+".............#+@&&&&&&&&!+;.................................................................................................................................................&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+".................;####;.....................................................................................................................................................&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"............................................................................................................................................................................&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"............................................................................................................................................................................&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"................................................................................................................................................................................................................................................................................................................................"};
+#endif
diff --git a/ecos/packages/hal/arm/edb7xxx/current/src/edb7xxx_misc.c b/ecos/packages/hal/arm/edb7xxx/current/src/edb7xxx_misc.c
new file mode 100644
index 0000000..f622e55
--- /dev/null
+++ b/ecos/packages/hal/arm/edb7xxx/current/src/edb7xxx_misc.c
@@ -0,0 +1,578 @@
+//==========================================================================
+//
+// edb7xxx_misc.c
+//
+// HAL misc board support code for ARM EDB7XXX-1
+//
+//==========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//==========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): gthomas
+// Contributors: gthomas
+// Date: 1999-02-20
+// 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_edb7xxx.h> // Hardware definitions
+#include <cyg/hal/hal_if.h> // calling interface API
+
+// #define CYGHWR_HAL_ARM_EDB7XXX_BATLOW
+#ifdef CYGHWR_HAL_ARM_EDB7XXX_BATLOW
+#include <cyg/hal/hal_intr.h> // HAL interrupt macros
+#include <cyg/hal/drv_api.h> // HAL ISR support
+static cyg_interrupt batlow_interrupt;
+static cyg_handle_t batlow_interrupt_handle;
+#endif
+
+#if (CYGHWR_HAL_ARM_EDB7XXX_PROCESSOR_CLOCK == 18432)
+#define CPU_CLOCK 0
+#elif (CYGHWR_HAL_ARM_EDB7XXX_PROCESSOR_CLOCK == 36864)
+#define CPU_CLOCK 1
+#elif (CYGHWR_HAL_ARM_EDB7XXX_PROCESSOR_CLOCK == 49152)
+#define CPU_CLOCK 2
+#elif (CYGHWR_HAL_ARM_EDB7XXX_PROCESSOR_CLOCK == 73728)
+#define CPU_CLOCK 3
+#elif (CYGHWR_HAL_ARM_EDB7XXX_PROCESSOR_CLOCK == 90317)
+#define CPU_CLOCK 3 // Yes, the same
+#define CPU_CLOCK_90MHZ
+#else
+#error Invalid CPU clock frequency
+#endif
+
+static cyg_uint32 _period;
+void dram_delay_loop(void);
+
+// Use Timer/Counter #2 for system clock
+
+void hal_clock_initialize(cyg_uint32 period)
+{
+ volatile cyg_uint32 *syscon1 = (volatile cyg_uint32 *)SYSCON1;
+ volatile cyg_uint32 *tc2d = (volatile cyg_uint32 *)TC2D;
+ // Set timer to 512KHz, prescale mode
+ *syscon1 = (*syscon1 & ~(SYSCON1_TC2M|SYSCON1_TC2S)) | SYSCON1_TC2S | SYSCON1_TC2M;
+ // Initialize counter
+ *tc2d = period;
+ _period = period;
+}
+
+// This routine is called during a clock interrupt.
+
+static void __inline__
+enable_FIQ(void)
+{
+ asm volatile ("mrs r0,cpsr;"
+ "bic r0,r0,#0x40;"
+ "msr cpsr,r0");
+}
+
+#ifdef CYGHWR_HAL_ARM_EDB7XXX_SOFTWARE_DRAM_REFRESH
+#define DRAM_START 0x00000000
+#define DRAM_END 0x01000000
+#define DRAM_ROW_SIZE 0x00000400
+#define DRAM_REFRESH (((DRAM_END-DRAM_START)/DRAM_ROW_SIZE)+99)/100
+
+static void
+do_DRAM_refresh(void)
+{
+ static cyg_uint32 *row_ptr;
+ volatile cyg_uint32 val;
+ int i;
+ for (i = 0; i < DRAM_REFRESH; i++) {
+ val = *row_ptr;
+ row_ptr += DRAM_ROW_SIZE / sizeof(*row_ptr);
+ if (row_ptr >= (cyg_uint32 *)DRAM_END) row_ptr = (cyg_uint32 *)DRAM_START;
+ }
+}
+#endif // CYGHWR_HAL_ARM_EDB7XXX_SOFTWARE_DRAM_REFRESH
+
+void hal_clock_reset(cyg_uint32 vector, cyg_uint32 period)
+{
+ volatile cyg_uint32 *tc2d = (volatile cyg_uint32 *)TC2D;
+ if (period != _period) {
+ *tc2d = period;
+ _period = period;
+ }
+#if !defined(__EDB7312)
+#ifndef CYGPKG_HAL_ARM_EDB7209
+// EP7209 has no DRAM/controller, thus no problem
+ enable_FIQ(); // Should be safe here
+#ifdef CYGHWR_HAL_ARM_EDB7XXX_SOFTWARE_DRAM_REFRESH
+ do_DRAM_refresh();
+#else
+ dram_delay_loop();
+#endif
+#endif
+#endif // !defined(__EDB7312)
+}
+
+// Read the current value of the clock, returning the number of hardware "ticks"
+// that have occurred (i.e. how far away the current value is from the start)
+
+void hal_clock_read(cyg_uint32 *pvalue)
+{
+ volatile cyg_int32 *tc2d = (volatile cyg_int32 *)TC2D;
+ static cyg_int32 clock_val;
+ clock_val = *tc2d & 0x0000FFFF; // Register has only 16 bits
+ if (clock_val & 0x00008000) clock_val |= 0xFFFF8000; // Extend sign bit
+ *pvalue = (cyg_uint32)(_period - clock_val); // 'clock_val' counts down and wraps
+}
+
+// Delay for some number of useconds. Assume that the system clock
+// has been set up to run at 512KHz (default).
+void hal_delay_us(int us)
+{
+ volatile cyg_int32 *tc2d = (volatile cyg_int32 *)TC2D;
+ cyg_int32 val, prev;
+ while (us >= 2) {
+ prev = *tc2d & 0x0000FFFF; // Register has only 16 bits
+ if (prev & 0x00008000) prev |= 0xFFFF8000; // Extend sign bit
+ while (true) {
+ val = *tc2d & 0x0000FFFF; // Register has only 16 bits
+ if (val & 0x00008000) {
+ val |= 0xFFFF8000; // Extend sign bit
+ *tc2d = _period; // Need to reset counter
+ }
+ if (val != prev) {
+ break; // At least 2us have passed
+ }
+ }
+ us -= 2;
+ }
+}
+
+void
+dram_delay_loop(void)
+{
+ // Temporary fix for DRAM starvation problem
+ if (CYGHWR_HAL_ARM_EDB7XXX_PROCESSOR_CLOCK > 37000) {
+ int i;
+ for (i = 0; i < (CYGHWR_HAL_ARM_EDB7XXX_PROCESSOR_CLOCK*2)/24; i++) ; // approx 300 us
+ }
+}
+
+// These tables map the various [soft] interrupt numbers onto the hardware
+
+static cyg_uint32 hal_interrupt_bitmap[] = {
+ 0, // CYGNUM_HAL_INTERRUPT_unused 0
+ INTSR1_EXTFIQ, // CYGNUM_HAL_INTERRUPT_EXTFIQ 1
+ INTSR1_BLINT, // CYGNUM_HAL_INTERRUPT_BLINT 2
+ INTSR1_WEINT, // CYGNUM_HAL_INTERRUPT_WEINT 3
+ INTSR1_MCINT, // CYGNUM_HAL_INTERRUPT_MCINT 4
+ INTSR1_CSINT, // CYGNUM_HAL_INTERRUPT_CSINT 5
+ INTSR1_EINT1, // CYGNUM_HAL_INTERRUPT_EINT1 6
+ INTSR1_EINT2, // CYGNUM_HAL_INTERRUPT_EINT2 7
+ INTSR1_EINT3, // CYGNUM_HAL_INTERRUPT_EINT3 8
+ INTSR1_TC1OI, // CYGNUM_HAL_INTERRUPT_TC1OI 9
+ INTSR1_TC2OI, // CYGNUM_HAL_INTERRUPT_TC2OI 10
+ INTSR1_RTCMI, // CYGNUM_HAL_INTERRUPT_RTCMI 11
+ INTSR1_TINT, // CYGNUM_HAL_INTERRUPT_TINT 12
+ INTSR1_UTXINT1, // CYGNUM_HAL_INTERRUPT_UTXINT1 13
+ INTSR1_URXINT1, // CYGNUM_HAL_INTERRUPT_URXINT1 14
+ INTSR1_UMSINT, // CYGNUM_HAL_INTERRUPT_UMSINT 15
+ INTSR1_SSEOTI, // CYGNUM_HAL_INTERRUPT_SSEOTI 16
+ INTSR2_KBDINT, // CYGNUM_HAL_INTERRUPT_KBDINT 17
+ INTSR2_SS2RX, // CYGNUM_HAL_INTERRUPT_SS2RX 18
+ INTSR2_SS2TX, // CYGNUM_HAL_INTERRUPT_SS2TX 19
+ INTSR2_UTXINT2, // CYGNUM_HAL_INTERRUPT_UTXINT2 20
+ INTSR2_URXINT2, // CYGNUM_HAL_INTERRUPT_URXINT2 21
+#if defined(__EDB7211)
+ INTSR3_MCPINT // CYGNUM_HAL_INTERRUPT_MCPINT 22
+#endif
+#if defined(__EDB7209)
+ INTSR3_I2SINT // CYGNUM_HAL_INTERRUPT_I2SINT 22
+#endif
+#if defined(__EDB7312)
+ INTSR3_DAIINT // CYGNUM_HAL_INTERRUPT_DAIINT 22
+#endif
+};
+
+static cyg_uint32 hal_interrupt_mask_regmap[] = {
+ 0, // CYGNUM_HAL_INTERRUPT_unused 0
+ INTMR1, // CYGNUM_HAL_INTERRUPT_EXTFIQ 1
+ INTMR1, // CYGNUM_HAL_INTERRUPT_BLINT 2
+ INTMR1, // CYGNUM_HAL_INTERRUPT_WEINT 3
+ INTMR1, // CYGNUM_HAL_INTERRUPT_MCINT 4
+ INTMR1, // CYGNUM_HAL_INTERRUPT_CSINT 5
+ INTMR1, // CYGNUM_HAL_INTERRUPT_EINT1 6
+ INTMR1, // CYGNUM_HAL_INTERRUPT_EINT2 7
+ INTMR1, // CYGNUM_HAL_INTERRUPT_EINT3 8
+ INTMR1, // CYGNUM_HAL_INTERRUPT_TC1OI 9
+ INTMR1, // CYGNUM_HAL_INTERRUPT_TC2OI 10
+ INTMR1, // CYGNUM_HAL_INTERRUPT_RTCMI 11
+ INTMR1, // CYGNUM_HAL_INTERRUPT_TINT 12
+ INTMR1, // CYGNUM_HAL_INTERRUPT_UTXINT1 13
+ INTMR1, // CYGNUM_HAL_INTERRUPT_URXINT1 14
+ INTMR1, // CYGNUM_HAL_INTERRUPT_UMSINT 15
+ INTMR1, // CYGNUM_HAL_INTERRUPT_SSEOTI 16
+ INTMR2, // CYGNUM_HAL_INTERRUPT_KBDINT 17
+ INTMR2, // CYGNUM_HAL_INTERRUPT_SS2RX 18
+ INTMR2, // CYGNUM_HAL_INTERRUPT_SS2TX 19
+ INTMR2, // CYGNUM_HAL_INTERRUPT_UTXINT2 20
+ INTMR2, // CYGNUM_HAL_INTERRUPT_URXINT2 21
+#if defined(__EDB7211)
+ INTMR3, // CYGNUM_HAL_INTERRUPT_MCPINT 22
+#endif
+#if defined(__EDB7209)
+ INTMR3, // CYGNUM_HAL_INTERRUPT_I2SINT 22
+#endif
+#if defined(__EDB7312)
+ INTMR3, // CYGNUM_HAL_INTERRUPT_DAIINT 22
+#endif
+};
+
+static cyg_uint32 hal_interrupt_clear_map[] = {
+ 0, // CYGNUM_HAL_INTERRUPT_unused 0
+ 0, // CYGNUM_HAL_INTERRUPT_EXTFIQ 1
+ BLEOI, // CYGNUM_HAL_INTERRUPT_BLINT 2
+ TEOI, // CYGNUM_HAL_INTERRUPT_WEINT 3
+ MCEOI, // CYGNUM_HAL_INTERRUPT_MCINT 4
+ COEOI, // CYGNUM_HAL_INTERRUPT_CSINT 5
+ 0, // CYGNUM_HAL_INTERRUPT_EINT1 6
+ 0, // CYGNUM_HAL_INTERRUPT_EINT2 7
+ 0, // CYGNUM_HAL_INTERRUPT_EINT3 8
+ TC1EOI, // CYGNUM_HAL_INTERRUPT_TC1OI 9
+ TC2EOI, // CYGNUM_HAL_INTERRUPT_TC2OI 10
+ RTCEOI, // CYGNUM_HAL_INTERRUPT_RTCMI 11
+ TEOI, // CYGNUM_HAL_INTERRUPT_TINT 12
+ 0, // CYGNUM_HAL_INTERRUPT_UTXINT1 13
+ 0, // CYGNUM_HAL_INTERRUPT_URXINT1 14
+ UMSEOI, // CYGNUM_HAL_INTERRUPT_UMSINT 15
+ 0, // CYGNUM_HAL_INTERRUPT_SSEOTI 16
+ KBDEOI, // CYGNUM_HAL_INTERRUPT_KBDINT 17
+ 0, // CYGNUM_HAL_INTERRUPT_SS2RX 18
+ 0, // CYGNUM_HAL_INTERRUPT_SS2TX 19
+ 0, // CYGNUM_HAL_INTERRUPT_UTXINT2 20
+ 0, // CYGNUM_HAL_INTERRUPT_URXINT2 21
+#if defined(__EDB7211)
+ 0, // CYGNUM_HAL_INTERRUPT_MCPINT 22
+#endif
+#if defined(__EDB7209)
+ 0, // CYGNUM_HAL_INTERRUPT_I2SINT 22
+#endif
+#if defined(__EDB7312)
+ 0, // CYGNUM_HAL_INTERRUPT_DAIINT 22
+#endif
+};
+
+static struct regmap {
+ int first_int, last_int;
+ cyg_uint32 stat_reg, mask_reg;
+} hal_interrupt_status_regmap[] = {
+ { CYGNUM_HAL_INTERRUPT_EXTFIQ, CYGNUM_HAL_INTERRUPT_MCINT, INTSR1, INTMR1},
+#if defined(__EDB7211)
+ { CYGNUM_HAL_INTERRUPT_MCPINT, CYGNUM_HAL_INTERRUPT_MCPINT, INTSR3, INTMR3},
+#endif
+#if defined(__EDB7209)
+ { CYGNUM_HAL_INTERRUPT_I2SINT, CYGNUM_HAL_INTERRUPT_I2SINT, INTSR3, INTMR3},
+#endif
+#if defined(__EDB7312)
+ { CYGNUM_HAL_INTERRUPT_DAIINT, CYGNUM_HAL_INTERRUPT_DAIINT, INTSR3, INTMR3},
+#endif
+ { CYGNUM_HAL_INTERRUPT_CSINT, CYGNUM_HAL_INTERRUPT_SSEOTI, INTSR1, INTMR1},
+ { CYGNUM_HAL_INTERRUPT_KBDINT, CYGNUM_HAL_INTERRUPT_URXINT2, INTSR2, INTMR2},
+ { 0, 0, 0, 0 }
+};
+
+#ifdef CYGHWR_HAL_ARM_EDB7XXX_BATLOW
+// This ISR is called when the battery low interrupt occurs
+int
+cyg_hal_batlow_isr(cyg_vector_t vector, cyg_addrword_t data, HAL_SavedRegisters *regs)
+{
+ diag_printf("Battery low\n");
+ cyg_drv_interrupt_mask(CYGNUM_HAL_INTERRUPT_BLINT);
+ // Presumably, one would leave this masked until the battery changed
+ cyg_drv_interrupt_acknowledge(CYGNUM_HAL_INTERRUPT_BLINT);
+ return 0; // No need to run DSR
+}
+#endif
+
+//
+// Early stage hardware initialization
+// Some initialization has already been done before we get here. For now
+// just set up the interrupt environment.
+
+void hal_hardware_init(void)
+{
+ volatile cyg_uint32 *icr;
+ int vector;
+
+ // Clear and initialize instruction cache
+ HAL_ICACHE_INVALIDATE_ALL();
+ HAL_ICACHE_ENABLE();
+
+ // Any hardware/platform initialization that needs to be done.
+ *(volatile cyg_uint32 *)INTMR1 = 0;
+ *(volatile cyg_uint32 *)INTMR2 = 0;
+#if !defined(__CL7111)
+ *(volatile cyg_uint32 *)INTMR3 = 0;
+#endif
+#if !defined(__CL7111) && !defined(__EDB7312)
+ *(volatile cyg_uint8 *)SYSCON3 = SYSCON3_CLKCTL(CPU_CLOCK);
+#endif
+
+#if 0
+ diag_printf("IMR1: %04x, IMR2: %04x\n",
+ *(volatile cyg_uint32 *)INTMR1,
+ *(volatile cyg_uint32 *)INTMR2);
+ diag_printf("Memcfg1: %08x, Memcfg2: %08x, DRAM refresh: %08x\n",
+ *(volatile cyg_uint32 *)MEMCFG1,
+ *(volatile cyg_uint32 *)MEMCFG2,
+ *(volatile cyg_uint8 *)DRFPR);
+#endif
+#define MEMCFG_BUS_WIDTH(n) (n<<0)
+#define MEMCFG_BUS_WIDTH_32 (0<<0)
+#define MEMCFG_BUS_WIDTH_16 (1<<0)
+#define MEMCFG_BUS_WIDTH_8 (2<<0)
+#define MEMCFG_WAIT_STATES(n) (n<<2) // 0 is max, 15 min
+#define MEMCFG_SQAEN (1<<6)
+#define MEMCFG_CLKENB (1<<7)
+
+// These need to be checked/improved
+#define CS0_CONFIG MEMCFG_BUS_WIDTH_32 | MEMCFG_WAIT_STATES(3) | MEMCFG_SQAEN
+#define CS1_CONFIG MEMCFG_BUS_WIDTH_32 | MEMCFG_WAIT_STATES(4)
+#define CS2_CONFIG MEMCFG_BUS_WIDTH_32 | MEMCFG_WAIT_STATES(0)
+#define CS3_CONFIG MEMCFG_BUS_WIDTH_32 | MEMCFG_WAIT_STATES(0)
+#define CS4_CONFIG MEMCFG_BUS_WIDTH_32 | MEMCFG_WAIT_STATES(0)
+#define CS5_CONFIG MEMCFG_BUS_WIDTH_32 | MEMCFG_WAIT_STATES(0)
+#define CS6_CONFIG MEMCFG_BUS_WIDTH_32 | MEMCFG_WAIT_STATES(0)
+#define CS7_CONFIG MEMCFG_BUS_WIDTH_32 | MEMCFG_WAIT_STATES(0)
+
+#if defined(__EDB7209)
+ *(volatile cyg_uint32 *)MEMCFG1 =
+ (CS0_CONFIG << 0) | // FLASH rom
+ (CS1_CONFIG << 8) | // NAND flash
+ (CS2_CONFIG << 16) | // Ethernet
+ (CS3_CONFIG << 24); // Parallel printer, keyboard, touch panel
+ *(volatile cyg_uint32 *)MEMCFG2 =
+ (CS4_CONFIG << 0) | // USB
+ (CS5_CONFIG << 8) | // Expansion
+ (CS6_CONFIG << 16) | // Local SRAM
+ (CS7_CONFIG << 24); // Boot ROM
+ // This value came from Cirrus, but doesn't match the recommendations above?
+ *(volatile cyg_uint32 *)MEMCFG1 = 0x3C001814;
+ // Set up GPIO lines
+ *(volatile cyg_uint8 *)PADDR = 0x00; // Keyboard data 0-7 input
+ *(volatile cyg_uint8 *)PBDDR = 0xFA; // 0 - I/O on J22
+ // 1 - RTS on UART1
+ // 2 - Ring on UART1
+ // 3 - SSI header, Pin 13
+ // 4 - NAND Command Latch Enable
+ // 5 - NAND Address Latch Enable
+ // 6 - On-board NAND Select (active low)
+ // 7 - SmartMedia Card Enable (active low)
+ *(volatile cyg_uint8 *)PBDR = 0xC0; // Everything off
+ *(volatile cyg_uint8 *)PDDDR = 0x40; // 0 - Diagnostic LED control
+ // 1 - Enable DC-DC converter for LCD
+ // 2 - Enable LCD
+ // 3 - ENable LCD Backlight
+ // 4 - CS4342 I2C Data
+ // 5 - CS4342 I2C Clock
+ // 6 - SmartMedia Presence indicator
+ // 7 - I/O on J22
+ *(volatile cyg_uint8 *)PDDR = 0x00; // Everything off
+ *(volatile cyg_uint8 *)PEDDR = 0x05; // 0 - Codec or ADC/DAC
+ // 1 - I/O on JP38 (0 when inserted)
+ // 2 - Enable touch panel
+ *(volatile cyg_uint8 *)PEDR = 0x01; // Enable audio (not CODEC)
+ // Initialize system control
+ *(volatile cyg_uint32 *)SYSCON2 = SYSCON2_KBWEN;
+#endif
+
+#if defined(__EDB7312)
+ *(volatile cyg_uint32 *)MEMCFG1 = 0x1F101710;
+ *(volatile cyg_uint32 *)MEMCFG2 = 0x00001F93;
+ // Set up GPIO lines
+ *(volatile cyg_uint8 *)PADDR = 0x00; // Keyboard data 0-7 input
+ *(volatile cyg_uint8 *)PBDDR = 0xF2;
+ *(volatile cyg_uint8 *)PDDDR = 0x2F;
+ *(volatile cyg_uint8 *)PDDDR = 0x10; // Directions are inverted!
+ *(volatile cyg_uint8 *)PDDR = 0x00; // Everything off
+ *(volatile cyg_uint8 *)PEDDR = 0x01;
+ // Initialize system control
+ *(volatile cyg_uint32 *)SYSCON1 = 0x00040100;
+ *(volatile cyg_uint32 *)SYSCON2 = 0x00000102;
+
+#ifdef CPU_CLOCK_90MHZ
+ // We must slow down the RAM timings compared to default by adding
+ // wait states or it does not work.
+ // Slow them all down to Random=5, Seq=3 waitstates by replacing
+ // that field throughout the default value copied from above:
+ *(volatile cyg_uint32 *)MEMCFG1 = (0x1F101710 & ~0x3c3c3c3c) | 0x0c0c0c0c;
+ *(volatile cyg_uint32 *)MEMCFG2 = (0x00001F93 & ~0x00003c3c) | 0x00000c0c;
+#endif // CPU_CLOCK_90MHZ
+
+ *(volatile cyg_uint32 *)SYSCON3 = 0x00000208 | SYSCON3_CLKCTL(CPU_CLOCK);
+
+#ifdef CPU_CLOCK_90MHZ
+ // Let the clock change settle before hitting the PLL multiplier
+ // register to change up by a further 22.5%
+ asm volatile( "nop;nop;nop;nop;nop;nop;nop;nop;");
+ *(volatile cyg_uint32 *)EP7312_PLL_MR = EP7312_PLL_MR_FOR_90MHz;
+ asm volatile( "nop;nop;nop;nop;nop;nop;nop;nop;");
+#endif // CPU_CLOCK_90MHZ
+
+#endif
+ // Reset all interrupt masks (disable all interrupt sources)
+ for (vector = CYGNUM_HAL_ISR_MIN; vector < CYGNUM_HAL_ISR_COUNT; vector++) {
+ icr = (volatile cyg_uint32 *)hal_interrupt_clear_map[vector];
+ if (icr) *icr = 0; // Just a write clears the latch
+ }
+#ifndef __EDB7312
+ // Turn on the DIAG LED to let the world know the board is alive
+ *(volatile unsigned char *)LEDFLSH = LEDFLSH_ENABLE|LEDFLSH_DUTY(16)|LEDFLSH_PERIOD(1);
+#endif
+#ifdef CYGHWR_HAL_ARM_EDB7XXX_BATLOW
+ cyg_drv_interrupt_create(CYGNUM_HAL_INTERRUPT_BLINT,
+ 99, // Priority - what goes here?
+ 0, // Data item passed to interrupt handler
+ cyg_hal_batlow_isr,
+ 0,
+ &batlow_interrupt_handle,
+ &batlow_interrupt);
+ cyg_drv_interrupt_attach(batlow_interrupt_handle);
+ cyg_drv_interrupt_unmask(CYGNUM_HAL_INTERRUPT_BLINT);
+#endif
+
+ // Initialize real-time clock (for delays, etc, even if kernel doesn't use it)
+ hal_clock_initialize(CYGNUM_HAL_RTC_PERIOD);
+
+ // Set up eCos/ROM interfaces
+ hal_if_init();
+
+#ifdef CYGSEM_EDB7XXX_LCD_COMM
+ // Initialize I/O channel
+ lcd_comm_init();
+#endif
+}
+
+//
+// This routine is called to respond to a hardware interrupt (IRQ). It
+// should interrogate the hardware and return the IRQ vector number.
+
+// This code is a little convoluted to keep it general while still avoiding
+// reading the hardware a lot, since the interrupt status is split across
+// three separate registers.
+
+int hal_spurious_ints;
+
+int hal_IRQ_handler(void)
+{
+ struct regmap *map = hal_interrupt_status_regmap;
+ cyg_uint32 stat;
+ int vector;
+ while (map->first_int) {
+ stat = *(volatile cyg_uint32 *)map->stat_reg & *(volatile cyg_uint32 *)map->mask_reg;
+ for (vector = map->first_int; vector <= map->last_int; vector++) {
+ if (stat & hal_interrupt_bitmap[vector]) return vector;
+ }
+ map++; // Next interrupt status register
+ }
+ hal_spurious_ints++;
+ return CYGNUM_HAL_INTERRUPT_NONE; // This shouldn't happen!
+}
+
+//
+// Interrupt control
+//
+
+void hal_interrupt_mask(int vector)
+{
+ volatile cyg_uint32 *imr;
+ imr = (volatile cyg_uint32 *)hal_interrupt_mask_regmap[vector];
+ *imr &= ~hal_interrupt_bitmap[vector];
+}
+
+void hal_interrupt_unmask(int vector)
+{
+ volatile cyg_uint32 *imr;
+ imr = (volatile cyg_uint32 *)hal_interrupt_mask_regmap[vector];
+ *imr |= hal_interrupt_bitmap[vector];
+}
+
+void hal_interrupt_acknowledge(int vector)
+{
+ // Some interrupt sources have a register for this.
+ volatile cyg_uint8 *icr;
+ icr = (volatile cyg_uint8 *)hal_interrupt_clear_map[vector];
+ if (icr) {
+ *icr = 0; // Any data clears interrupt
+ }
+}
+
+void hal_interrupt_configure(int vector, int level, int up)
+{
+ // No interrupts are configurable on this hardware
+}
+
+void hal_interrupt_set_level(int vector, int level)
+{
+ // No interrupts are configurable on this hardware
+}
+
+#define _CYGHWR_LAYOUT_ONLY
+#include <cyg/hal/hal_platform_setup.h>
+
+unsigned long
+_edb7xxx_physical_address(unsigned long addr)
+{
+ unsigned long res;
+
+ if (addr < DRAM_LA_END) {
+ res = addr + DRAM_PA;
+ } else {
+ res = addr | 0xC0000000;
+ }
+ return res;
+}
+
+/*------------------------------------------------------------------------*/
+// EOF hal_misc.c
diff --git a/ecos/packages/hal/arm/edb7xxx/current/src/font.h b/ecos/packages/hal/arm/edb7xxx/current/src/font.h
new file mode 100644
index 0000000..0323ad6
--- /dev/null
+++ b/ecos/packages/hal/arm/edb7xxx/current/src/font.h
@@ -0,0 +1,159 @@
+//==========================================================================
+//
+// font.h
+//
+// LCD display font
+//
+//==========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//==========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): gthomas
+// Contributors: gthomas
+// Date: 2001-02-25
+// Description: Simple LCD font
+//####DESCRIPTIONEND####
+
+#ifndef _LCD_FONT_H_
+#define _LCD_FONT_H_
+
+// 8x8 Font - from Helios
+
+#define FIRST_CHAR 0x20
+#define LAST_CHAR 0x7F
+#define FONT_HEIGHT 8
+#define FONT_WIDTH 8
+#define CURSOR_ON 0x7F
+#define CURSOR_OFF 0x20
+static char font_table[LAST_CHAR-FIRST_CHAR+1][8] =
+{
+ { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, /* */
+ { 0x18, 0x18, 0x18, 0x18, 0x18, 0x00, 0x18, 0x00 }, /* ! */
+ { 0x36, 0x36, 0x36, 0x00, 0x00, 0x00, 0x00, 0x00 }, /* " */
+ { 0x6C, 0x6C, 0xFE, 0x6C, 0xFE, 0x6C, 0x6C, 0x00 }, /* # */
+ { 0x30, 0xFC, 0x16, 0x7C, 0xD0, 0x7E, 0x18, 0x00 }, /* $ */
+ { 0x06, 0x66, 0x30, 0x18, 0x0C, 0x66, 0x60, 0x00 }, /* % */
+ { 0x1C, 0x36, 0x36, 0x1C, 0xB6, 0x66, 0xDC, 0x00 }, /* & */
+ { 0x18, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00 }, /* ' */
+ { 0x30, 0x18, 0x0C, 0x0C, 0x0C, 0x18, 0x30, 0x00 }, /* ( */
+ { 0x0C, 0x18, 0x30, 0x30, 0x30, 0x18, 0x0C, 0x00 }, /* ) */
+ { 0x00, 0x18, 0x7E, 0x3C, 0x7E, 0x18, 0x00, 0x00 }, /* * */
+ { 0x00, 0x18, 0x18, 0x7E, 0x18, 0x18, 0x00, 0x00 }, /* + */
+ { 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x0C }, /* , */
+ { 0x00, 0x00, 0x00, 0x7E, 0x00, 0x00, 0x00, 0x00 }, /* - */
+ { 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x00 }, /* . */
+ { 0x00, 0x60, 0x30, 0x18, 0x0C, 0x06, 0x00, 0x00 }, /* / */
+ { 0x3C, 0x66, 0x76, 0x7E, 0x6E, 0x66, 0x3C, 0x00 }, /* 0 */
+ { 0x18, 0x1C, 0x18, 0x18, 0x18, 0x18, 0x7E, 0x00 }, /* 1 */
+ { 0x3C, 0x66, 0x60, 0x30, 0x18, 0x0C, 0x7E, 0x00 }, /* 2 */
+ { 0x3C, 0x66, 0x60, 0x38, 0x60, 0x66, 0x3C, 0x00 }, /* 3 */
+ { 0x30, 0x38, 0x3C, 0x36, 0x7E, 0x30, 0x30, 0x00 }, /* 4 */
+ { 0x7E, 0x06, 0x3E, 0x60, 0x60, 0x66, 0x3C, 0x00 }, /* 5 */
+ { 0x38, 0x0C, 0x06, 0x3E, 0x66, 0x66, 0x3C, 0x00 }, /* 6 */
+ { 0x7E, 0x60, 0x30, 0x18, 0x0C, 0x0C, 0x0C, 0x00 }, /* 7 */
+ { 0x3C, 0x66, 0x66, 0x3C, 0x66, 0x66, 0x3C, 0x00 }, /* 8 */
+ { 0x3C, 0x66, 0x66, 0x7C, 0x60, 0x30, 0x1C, 0x00 }, /* 9 */
+ { 0x00, 0x00, 0x18, 0x18, 0x00, 0x18, 0x18, 0x00 }, /* : */
+ { 0x00, 0x00, 0x18, 0x18, 0x00, 0x18, 0x18, 0x0C }, /* ; */
+ { 0x30, 0x18, 0x0C, 0x06, 0x0C, 0x18, 0x30, 0x00 }, /* < */
+ { 0x00, 0x00, 0x7E, 0x00, 0x7E, 0x00, 0x00, 0x00 }, /* = */
+ { 0x0C, 0x18, 0x30, 0x60, 0x30, 0x18, 0x0C, 0x00 }, /* > */
+ { 0x3C, 0x66, 0x30, 0x18, 0x18, 0x00, 0x18, 0x00 }, /* ? */
+ { 0x3C, 0x66, 0x76, 0x56, 0x76, 0x06, 0x3C, 0x00 }, /* @ */
+ { 0x3C, 0x66, 0x66, 0x7E, 0x66, 0x66, 0x66, 0x00 }, /* A */
+ { 0x3E, 0x66, 0x66, 0x3E, 0x66, 0x66, 0x3E, 0x00 }, /* B */
+ { 0x3C, 0x66, 0x06, 0x06, 0x06, 0x66, 0x3C, 0x00 }, /* C */
+ { 0x1E, 0x36, 0x66, 0x66, 0x66, 0x36, 0x1E, 0x00 }, /* D */
+ { 0x7E, 0x06, 0x06, 0x3E, 0x06, 0x06, 0x7E, 0x00 }, /* E */
+ { 0x7E, 0x06, 0x06, 0x3E, 0x06, 0x06, 0x06, 0x00 }, /* F */
+ { 0x3C, 0x66, 0x06, 0x76, 0x66, 0x66, 0x3C, 0x00 }, /* G */
+ { 0x66, 0x66, 0x66, 0x7E, 0x66, 0x66, 0x66, 0x00 }, /* H */
+ { 0x7E, 0x18, 0x18, 0x18, 0x18, 0x18, 0x7E, 0x00 }, /* I */
+ { 0x7C, 0x30, 0x30, 0x30, 0x30, 0x36, 0x1C, 0x00 }, /* J */
+ { 0x66, 0x36, 0x1E, 0x0E, 0x1E, 0x36, 0x66, 0x00 }, /* K */
+ { 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x7E, 0x00 }, /* L */
+ { 0xC6, 0xEE, 0xFE, 0xD6, 0xD6, 0xC6, 0xC6, 0x00 }, /* M */
+ { 0x66, 0x66, 0x6E, 0x7E, 0x76, 0x66, 0x66, 0x00 }, /* N */
+ { 0x3C, 0x66, 0x66, 0x66, 0x66, 0x66, 0x3C, 0x00 }, /* O */
+ { 0x3E, 0x66, 0x66, 0x3E, 0x06, 0x06, 0x06, 0x00 }, /* P */
+ { 0x3C, 0x66, 0x66, 0x66, 0x56, 0x36, 0x6C, 0x00 }, /* Q */
+ { 0x3E, 0x66, 0x66, 0x3E, 0x36, 0x66, 0x66, 0x00 }, /* R */
+ { 0x3C, 0x66, 0x06, 0x3C, 0x60, 0x66, 0x3C, 0x00 }, /* S */
+ { 0x7E, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x00 }, /* T */
+ { 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x3C, 0x00 }, /* U */
+ { 0x66, 0x66, 0x66, 0x66, 0x66, 0x3C, 0x18, 0x00 }, /* V */
+ { 0xC6, 0xC6, 0xD6, 0xD6, 0xFE, 0xEE, 0xC6, 0x00 }, /* W */
+ { 0x66, 0x66, 0x3C, 0x18, 0x3C, 0x66, 0x66, 0x00 }, /* X */
+ { 0x66, 0x66, 0x66, 0x3C, 0x18, 0x18, 0x18, 0x00 }, /* Y */
+ { 0x7E, 0x60, 0x30, 0x18, 0x0C, 0x06, 0x7E, 0x00 }, /* Z */
+ { 0x3E, 0x06, 0x06, 0x06, 0x06, 0x06, 0x3E, 0x00 }, /* [ */
+ { 0x00, 0x06, 0x0C, 0x18, 0x30, 0x60, 0x00, 0x00 }, /* \ */
+ { 0x7C, 0x60, 0x60, 0x60, 0x60, 0x60, 0x7C, 0x00 }, /* ] */
+ { 0x3C, 0x66, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, /* ^ */
+ { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF }, /* _ */
+ { 0x0C, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, /* ` */
+ { 0x00, 0x00, 0x3C, 0x60, 0x7C, 0x66, 0x7C, 0x00 }, /* a */
+ { 0x06, 0x06, 0x3E, 0x66, 0x66, 0x66, 0x3E, 0x00 }, /* b */
+ { 0x00, 0x00, 0x3C, 0x66, 0x06, 0x66, 0x3C, 0x00 }, /* c */
+ { 0x60, 0x60, 0x7C, 0x66, 0x66, 0x66, 0x7C, 0x00 }, /* d */
+ { 0x00, 0x00, 0x3C, 0x66, 0x7E, 0x06, 0x3C, 0x00 }, /* e */
+ { 0x38, 0x0C, 0x0C, 0x3E, 0x0C, 0x0C, 0x0C, 0x00 }, /* f */
+ { 0x00, 0x00, 0x7C, 0x66, 0x66, 0x7C, 0x60, 0x3C }, /* g */
+ { 0x06, 0x06, 0x3E, 0x66, 0x66, 0x66, 0x66, 0x00 }, /* h */
+ { 0x18, 0x00, 0x1C, 0x18, 0x18, 0x18, 0x3C, 0x00 }, /* i */
+ { 0x18, 0x00, 0x1C, 0x18, 0x18, 0x18, 0x18, 0x0E }, /* j */
+ { 0x06, 0x06, 0x66, 0x36, 0x1E, 0x36, 0x66, 0x00 }, /* k */
+ { 0x1C, 0x18, 0x18, 0x18, 0x18, 0x18, 0x3C, 0x00 }, /* l */
+ { 0x00, 0x00, 0x6C, 0xFE, 0xD6, 0xD6, 0xC6, 0x00 }, /* m */
+ { 0x00, 0x00, 0x3E, 0x66, 0x66, 0x66, 0x66, 0x00 }, /* n */
+ { 0x00, 0x00, 0x3C, 0x66, 0x66, 0x66, 0x3C, 0x00 }, /* o */
+ { 0x00, 0x00, 0x3E, 0x66, 0x66, 0x3E, 0x06, 0x06 }, /* p */
+ { 0x00, 0x00, 0x7C, 0x66, 0x66, 0x7C, 0x60, 0xE0 }, /* q */
+ { 0x00, 0x00, 0x36, 0x6E, 0x06, 0x06, 0x06, 0x00 }, /* r */
+ { 0x00, 0x00, 0x7C, 0x06, 0x3C, 0x60, 0x3E, 0x00 }, /* s */
+ { 0x0C, 0x0C, 0x3E, 0x0C, 0x0C, 0x0C, 0x38, 0x00 }, /* t */
+ { 0x00, 0x00, 0x66, 0x66, 0x66, 0x66, 0x7C, 0x00 }, /* u */
+ { 0x00, 0x00, 0x66, 0x66, 0x66, 0x3C, 0x18, 0x00 }, /* v */
+ { 0x00, 0x00, 0xC6, 0xD6, 0xD6, 0xFE, 0x6C, 0x00 }, /* w */
+ { 0x00, 0x00, 0x66, 0x3C, 0x18, 0x3C, 0x66, 0x00 }, /* x */
+ { 0x00, 0x00, 0x66, 0x66, 0x66, 0x7C, 0x60, 0x3C }, /* y */
+ { 0x00, 0x00, 0x7E, 0x30, 0x18, 0x0C, 0x7E, 0x00 }, /* z */
+ { 0x30, 0x18, 0x18, 0x0E, 0x18, 0x18, 0x30, 0x00 }, /* { */
+ { 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x00 }, /* | */
+ { 0x0C, 0x18, 0x18, 0x70, 0x18, 0x18, 0x0C, 0x00 }, /* } */
+ { 0x8C, 0xD6, 0x62, 0x00, 0x00, 0x00, 0x00, 0x00 }, /* ~ */
+ { 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF } /* Block cursor */
+};
+
+#endif // _LCD_FONT_H_
diff --git a/ecos/packages/hal/arm/edb7xxx/current/src/hal_diag.c b/ecos/packages/hal/arm/edb7xxx/current/src/hal_diag.c
new file mode 100644
index 0000000..ba009ce
--- /dev/null
+++ b/ecos/packages/hal/arm/edb7xxx/current/src/hal_diag.c
@@ -0,0 +1,552 @@
+/*=============================================================================
+//
+// hal_diag.c
+//
+// HAL diagnostic output code
+//
+//=============================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): nickg, gthomas
+// Contributors:nickg, gthomas
+// Date: 1998-03-02
+// Purpose: HAL diagnostic output
+// Description: Implementations of HAL diagnostic output support.
+//
+//####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_arch.h> // basic machine info
+#include <cyg/hal/hal_intr.h> // interrupt macros
+#include <cyg/hal/hal_io.h> // IO macros
+#include <cyg/hal/hal_if.h> // calling interface API
+#include <cyg/hal/hal_misc.h> // helper functions
+#include <cyg/hal/hal_diag.h>
+#include <cyg/hal/drv_api.h>
+#include <cyg/hal/hal_edb7xxx.h> // Hardware definitions
+
+//-----------------------------------------------------------------------------
+
+struct edb_serial {
+ volatile cyg_uint32 ctrl;
+ cyg_uint32 pad004_040[16-1];
+ volatile cyg_uint32 stat;
+ cyg_uint32 pad044_37c[208-1];
+ union {
+ volatile cyg_uint8 write;
+ volatile cyg_uint32 read; // Need to read 32 bits
+ } data;
+ cyg_uint32 pad384_3BC[16-1];
+ volatile cyg_uint32 blcr;
+};
+
+//-----------------------------------------------------------------------------
+typedef struct {
+ volatile struct edb_serial* base;
+ cyg_int32 msec_timeout;
+ int isr_vector;
+ int baud_rate;
+} channel_data_t;
+
+//-----------------------------------------------------------------------------
+
+static void
+cyg_hal_plf_serial_init_channel(channel_data_t* __ch_data)
+{
+ channel_data_t* chan = (channel_data_t*)__ch_data;
+
+ // Enable port
+ chan->base->ctrl |= SYSCON1_UART1EN;
+ // Configure
+ chan->base->blcr = UART_BITRATE(chan->baud_rate) |
+ UBLCR_FIFOEN | UBLCR_WRDLEN8;
+}
+
+
+// Call this delay function when polling for serial access - otherwise
+// the CPU will keep the memory bus busy and thus prevent DRAM refresh
+// (and the resulting memory corruption).
+externC void dram_delay_loop(void);
+
+void
+cyg_hal_plf_serial_putc(void *__ch_data, char c)
+{
+ channel_data_t* chan = (channel_data_t*)__ch_data;
+
+ CYGARC_HAL_SAVE_GP();
+
+ // Wait for Tx FIFO not full
+ while ((chan->base->stat & SYSFLG1_UTXFF1) != 0) ;
+
+ chan->base->data.write = c;
+
+ CYGARC_HAL_RESTORE_GP();
+}
+
+static cyg_bool
+cyg_hal_plf_serial_getc_nonblock(void* __ch_data, cyg_uint8* ch)
+{
+ channel_data_t* chan = (channel_data_t*)__ch_data;
+
+ if ((chan->base->stat & SYSFLG1_URXFE1) != 0)
+ return false;
+
+ *ch = (cyg_uint8)(chan->base->data.read & 0xFF);
+
+ return true;
+}
+
+cyg_uint8
+cyg_hal_plf_serial_getc(void* __ch_data)
+{
+ cyg_uint8 ch;
+ int delay_timer = 0;
+
+ CYGARC_HAL_SAVE_GP();
+
+ while(!cyg_hal_plf_serial_getc_nonblock(__ch_data, &ch)) {
+ CYGACC_CALL_IF_DELAY_US(50); // A reasonable time
+ // Only delay every 10ms or so
+ if (++delay_timer == 10*20) {
+ dram_delay_loop();
+ delay_timer = 0;
+ }
+ }
+
+ CYGARC_HAL_RESTORE_GP();
+ return ch;
+}
+
+static channel_data_t edb_ser_channels[2] = {
+ {(volatile struct edb_serial*)SYSCON1, 1000, CYGNUM_HAL_INTERRUPT_URXINT1, CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_BAUD},
+ {(volatile struct edb_serial*)SYSCON2, 1000, CYGNUM_HAL_INTERRUPT_URXINT2, CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_BAUD}
+};
+
+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;
+ int ret = 0;
+ va_list ap;
+
+ CYGARC_HAL_SAVE_GP();
+ va_start(ap, __func);
+
+ switch (__func) {
+ case __COMMCTL_GETBAUD:
+ ret = chan->baud_rate;
+ break;
+ case __COMMCTL_SETBAUD:
+ chan->baud_rate = va_arg(ap, cyg_int32);
+ // Should we verify this value here?
+ cyg_hal_plf_serial_init_channel(chan);
+ ret = 0;
+ break;
+
+ case __COMMCTL_IRQ_ENABLE:
+ irq_state = 1;
+ HAL_INTERRUPT_UNMASK(chan->isr_vector);
+ break;
+ case __COMMCTL_IRQ_DISABLE:
+ ret = irq_state;
+ irq_state = 0;
+ 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;
+ }
+
+ va_end(ap);
+ 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;
+ channel_data_t* chan = (channel_data_t*)__ch_data;
+ char c;
+ CYGARC_HAL_SAVE_GP();
+
+ cyg_drv_interrupt_acknowledge(chan->isr_vector);
+
+ *__ctrlc = 0;
+ if ((chan->base->stat & SYSFLG1_URXFE1) == 0) {
+ c = (cyg_uint8)(chan->base->data.read & 0xFF);
+ 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(edb_ser_channels[0].isr_vector);
+ HAL_INTERRUPT_MASK(edb_ser_channels[1].isr_vector);
+
+ // Init channels
+ cyg_hal_plf_serial_init_channel(&edb_ser_channels[0]);
+ cyg_hal_plf_serial_init_channel(&edb_ser_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, &edb_ser_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, &edb_ser_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();
+}
+
+//=============================================================================
+// Compatibility with older stubs
+//=============================================================================
+
+#ifndef CYGSEM_HAL_VIRTUAL_VECTOR_DIAG
+
+#ifdef CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS
+#include <cyg/hal/hal_stub.h> // cyg_hal_gdb_interrupt
+#endif
+
+// Assumption: all diagnostic output must be GDB packetized unless this is a ROM (i.e.
+// totally stand-alone) system.
+
+#ifdef CYGSEM_HAL_ROM_MONITOR
+#define CYG_HAL_STARTUP_ROM
+#undef CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS
+#endif
+
+#if defined(CYG_HAL_STARTUP_ROM) && !defined(CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS)
+#define HAL_DIAG_USES_HARDWARE
+#else
+#if !defined(CYGDBG_HAL_DIAG_TO_DEBUG_CHAN)
+#define HAL_DIAG_USES_HARDWARE
+#elif CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL != CYGNUM_HAL_VIRTUAL_VECTOR_DEBUG_CHANNEL
+#define HAL_DIAG_USES_HARDWARE
+#endif
+#endif
+
+#if CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL == 0
+# define __BASE ((volatile struct edb_serial*)SYSCON1)
+# define __IRQ CYGNUM_HAL_INTERRUPT_URXINT1
+#else
+# define __BASE ((volatile struct edb_serial*)SYSCON2)
+# define __IRQ CYGNUM_HAL_INTERRUPT_URXINT2
+#endif
+
+static channel_data_t edb_ser_channel = {
+ __BASE, 0, 0
+};
+
+/*---------------------------------------------------------------------------*/
+// EDB7XXX Serial Port (UARTx) for Debug
+
+// Actually send character down the wire
+static void
+hal_diag_write_char_serial(char c)
+{
+ cyg_hal_plf_serial_putc(&edb_ser_channel, c);
+}
+
+static bool
+hal_diag_read_serial(char *c)
+{
+ long timeout = 1000000000; // A long time...
+
+ while (! cyg_hal_plf_serial_getc_nonblock(&edb_ser_channel, c) )
+ if (--timeout == 0) return false;
+
+ return true;
+}
+
+#ifdef HAL_DIAG_USES_HARDWARE
+
+void hal_diag_init(void)
+{
+ static int init = 0;
+#ifndef CYG_HAL_STARTUP_ROM
+ char *msg = "\n\rRAM EDB7XXX eCos\n\r";
+#endif
+ if (init++) return;
+
+ cyg_hal_plf_serial_init_channel(&edb_ser_channel);
+
+#ifndef CYG_HAL_STARTUP_ROM
+ while (*msg) hal_diag_write_char(*msg++);
+#endif
+}
+
+#ifdef DEBUG_DIAG
+#ifndef CYG_HAL_STARTUP_ROM
+#define DIAG_BUFSIZE 2048
+static char diag_buffer[DIAG_BUFSIZE];
+static int diag_bp = 0;
+#endif
+#endif
+
+void hal_diag_write_char(char c)
+{
+ hal_diag_init();
+#ifdef DEBUG_DIAG
+#ifndef CYG_HAL_STARTUP_ROM
+ diag_buffer[diag_bp++] = c;
+ if (diag_bp == sizeof(diag_buffer)) diag_bp = 0;
+#endif
+#endif
+ hal_diag_write_char_serial(c);
+}
+
+void hal_diag_read_char(char *c)
+{
+ while (!hal_diag_read_serial(c)) ;
+}
+
+#else // HAL_DIAG relies on GDB
+
+// Initialize diag port
+void hal_diag_init(void)
+{
+ // Assume port is already setup
+ if (0) cyg_hal_plf_serial_init_channel(&edb_ser_channel);
+}
+
+void
+hal_diag_read_char(char *c)
+{
+ while (!hal_diag_read_serial(c)) ;
+}
+
+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;
+
+ hal_diag_write_char_serial('$');
+ hal_diag_write_char_serial('O');
+ csum += 'O';
+ for( i = 0; i < pos; i++ )
+ {
+ char ch = line[i];
+ char h = hex[(ch>>4)&0xF];
+ char l = hex[ch&0xF];
+ hal_diag_write_char_serial(h);
+ hal_diag_write_char_serial(l);
+ csum += h;
+ csum += l;
+ }
+ hal_diag_write_char_serial('#');
+ hal_diag_write_char_serial(hex[(csum>>4)&0xF]);
+ hal_diag_write_char_serial(hex[csum&0xF]);
+
+ // Wait for the ACK character '+' from GDB here and handle
+ // receiving a ^C instead. This is the reason for this clause
+ // being a loop.
+ if (!hal_diag_read_serial(&c1))
+ continue; // No response - try sending packet again
+
+ if( c1 == '+' )
+ break; // a good acknowledge
+
+#ifdef CYGDBG_HAL_DEBUG_GDB_BREAK_SUPPORT
+ cyg_drv_interrupt_acknowledge(__IRQ);
+ if( c1 == 3 ) {
+ // Ctrl-C: breakpoint.
+ cyg_hal_gdb_interrupt (__builtin_return_address(0));
+ break;
+ }
+#endif
+ // 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
+
+ }
+}
+#endif
+
+#endif // !CYGSEM_HAL_VIRTUAL_VECTOR_DIAG
+
+/*---------------------------------------------------------------------------*/
+/* End of hal_diag.c */
diff --git a/ecos/packages/hal/arm/edb7xxx/current/src/lcd_support.c b/ecos/packages/hal/arm/edb7xxx/current/src/lcd_support.c
new file mode 100644
index 0000000..e34d074
--- /dev/null
+++ b/ecos/packages/hal/arm/edb7xxx/current/src/lcd_support.c
@@ -0,0 +1,1380 @@
+//==========================================================================
+//
+// lcd_support.c
+//
+// Cirrus Logic EDB7XXX - LCD support routines
+//
+//==========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//==========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): gthomas
+// Contributors: gthomas
+// Date: 2001-09-29
+// Description: Simple LCD support
+//####DESCRIPTIONEND####
+
+#include <pkgconf/hal.h>
+
+#include <cyg/infra/diag.h>
+#include <cyg/hal/hal_io.h> // IO macros
+#include <cyg/hal/hal_if.h> // Virtual vector support
+#include <cyg/hal/hal_arch.h> // Register state info
+#include <cyg/hal/hal_intr.h> // HAL interrupt macros
+
+#include <cyg/hal/hal_edb7xxx.h> // Board definitions
+#include <cyg/hal/lcd_support.h>
+#include <cyg/hal/hal_cache.h>
+
+#ifdef CYGPKG_ISOINFRA
+# include <pkgconf/isoinfra.h>
+# ifdef CYGINT_ISO_STDIO_FORMATTED_IO
+# include <stdio.h> // sscanf
+# endif
+#endif
+
+#ifndef FALSE
+#define FALSE 0
+#define TRUE 1
+#endif
+
+#ifdef CYGOPT_EDB7XXX_LCD_COMM_LOGO
+#include "banner.xpm"
+#endif
+#include "font.h"
+
+// Physical dimensions of LCD display
+#define DISPLAY_WIDTH 320
+#define DISPLAY_HEIGHT 240
+
+// Logical layout
+#ifdef CYGSEM_EDB7XXX_LCD_COMM_PORTRAIT_MODE
+#define LCD_WIDTH 240
+#define LCD_HEIGHT 320
+#else
+#define LCD_WIDTH 320
+#define LCD_HEIGHT 240
+#endif
+#define LCD_DEPTH 16
+
+#define USE_RGB565
+#ifdef USE_RGB565
+#define RGB_RED(x) (((x)&0x1F)<<11)
+#define RGB_GREEN(x) (((x)&0x3F)<<5)
+#define RGB_BLUE(x) ((x)&0x1F)
+#else
+#define RGB_RED(x) (((x)&0x0F)<<12)
+#define RGB_GREEN(x) (((x)&0x0F)<<7)
+#define RGB_BLUE(x) (((x)&0x0F)<<1)
+#endif
+
+// Physical screen info
+//static int lcd_depth = LCD_DEPTH; // Should be 1, 2, or 4
+static int lcd_bpp;
+static int lcd_width = LCD_WIDTH;
+static int lcd_height = LCD_HEIGHT;
+
+// Virtual screen info
+static int curX = 0; // Last used position
+static int curY = 0;
+//static int width = LCD_WIDTH / (FONT_WIDTH*NIBBLES_PER_PIXEL);
+//static int height = LCD_HEIGHT / (FONT_HEIGHT*SCREEN_SCALE);
+
+static int fg = RGB_RED(15) | RGB_GREEN(63) | RGB_BLUE(8);
+static int bg = RGB_RED(0) | RGB_GREEN(0) | RGB_BLUE(15/*31*/);
+
+#define SCREEN_PAN 20
+#define SCREEN_WIDTH 80
+#define SCREEN_HEIGHT (LCD_HEIGHT/FONT_HEIGHT)
+#define VISIBLE_SCREEN_WIDTH (LCD_WIDTH/FONT_WIDTH)
+#define VISIBLE_SCREEN_HEIGHT (LCD_HEIGHT/FONT_HEIGHT)
+static char screen[SCREEN_HEIGHT][SCREEN_WIDTH];
+static int screen_start = 0;
+static int screen_height = SCREEN_HEIGHT;
+static int screen_width = SCREEN_WIDTH;
+static int screen_pan = 0;
+
+static bool cursor_enable = true;
+
+// Functions
+static void lcd_drawc(cyg_int8 c, int x, int y);
+
+// Note: val is a 16 bit, RGB565 value which must be mapped
+// onto a 12 bit value.
+#define RED(v) ((v>>12) & 0x0F)
+#define GREEN(v) ((v>>7) & 0x0F)
+#define BLUE(v) ((v>>1) & 0x0F)
+#ifdef CYGSEM_EDB7XXX_LCD_COMM_PORTRAIT_MODE
+// Translate coordinates, rotating clockwise 90 degrees
+static void
+set_pixel(int row, int col, unsigned short val)
+{
+// fp->pixels[col][(DISPLAY_WIDTH-1)-row] = val;
+ int _row = (240-1) - col;
+ int _col = row;
+ unsigned char *pxptr = (unsigned char *)(0xC0000000 + (_row * 480) + ((_col * 3) / 2));
+
+ if ((row >= LCD_HEIGHT) || (col >= LCD_WIDTH)) return;
+ if (0)
+ {
+ int old = start_console();
+ diag_printf("row=%d/%d, col=%d/%d, pxptr = %p\n", row, _row, col, _col, pxptr);
+ end_console(old);
+ }
+ if ((row % 2) == 0) {
+ // Even row
+ *pxptr++ = RED(val) | (GREEN(val) << 4);
+ *pxptr = (*pxptr & 0xF0) | BLUE(val);
+ } else {
+ // Odd row
+ *pxptr = (*pxptr & 0x0F) | (RED(val) << 4);
+ *++pxptr = GREEN(val) | (BLUE(val) << 4);
+ }
+}
+#else
+static void
+set_pixel(int row, int col, unsigned short val)
+{
+ int vpx = (row * 320) + col; // Virtual pixel address
+ int rem = (vpx * 3) % 2;
+ unsigned char *pxptr = (unsigned char *)(0xC0000000 + ((vpx * 3) / 2));
+
+ if ((row >= LCD_HEIGHT) || (col >= LCD_WIDTH)) return;
+ if (rem) {
+ *pxptr = (*pxptr & 0x0F) | (RED(val) << 4);
+ *++pxptr = GREEN(val) | (BLUE(val) << 4);
+ } else {
+ *pxptr++ = RED(val) | (GREEN(val) << 4);
+ *pxptr = (*pxptr & 0xF0) | BLUE(val);
+ }
+}
+#endif
+
+static int
+_hexdigit(char c)
+{
+ if ((c >= '0') && (c <= '9')) {
+ return c - '0';
+ } else
+ if ((c >= 'A') && (c <= 'F')) {
+ return (c - 'A') + 0x0A;
+ } else
+ if ((c >= 'a') && (c <= 'f')) {
+ return (c - 'a') + 0x0a;
+ }
+}
+
+static int
+_hex(char *cp)
+{
+ return (_hexdigit(*cp)<<4) | _hexdigit(*(cp+1));
+}
+
+static unsigned short
+parse_color(char *cp)
+{
+ int red, green, blue;
+
+ while (*cp && (*cp != 'c')) cp++;
+ if (cp) {
+ cp += 2;
+ if (*cp == '#') {
+ red = _hex(cp+1);
+ green = _hex(cp+3);
+ blue = _hex(cp+5);
+#ifdef USE_RGB565
+ return RGB_RED(red>>3) | RGB_GREEN(green>>2) | RGB_BLUE(blue>>3);
+#else
+ return RGB_RED(red>>3) | RGB_GREEN(green>>3) | RGB_BLUE(blue>>3);
+#endif
+ } else {
+ // Should be "None"
+ return 0xFFFF;
+ }
+ } else {
+ return 0xFFFF;
+ }
+}
+
+#ifndef CYGINT_ISO_STDIO_FORMATTED_IO
+static int
+get_int(char **_cp)
+{
+ char *cp = *_cp;
+ char c;
+ int val = 0;
+
+ while ((c = *cp++) && (c != ' ')) {
+ if ((c >= '0') && (c <= '9')) {
+ val = val * 10 + (c - '0');
+ } else {
+ return -1;
+ }
+ }
+ *_cp = cp;
+ return val;
+}
+#endif
+
+#ifdef CYGOPT_EDB7XXX_LCD_COMM_LOGO
+int
+show_xpm(char *xpm[], int screen_pos)
+{
+ int i, row, col, offset;
+ char *cp;
+ int nrows, ncols, nclrs;
+ unsigned short colors[256]; // Mapped by character index
+
+ cp = xpm[0];
+#ifdef CYGINT_ISO_STDIO_FORMATTED_IO
+ if (sscanf(cp, "%d %d %d", &ncols, &nrows, &nclrs) != 3) {
+#else
+ if (((ncols = get_int(&cp)) < 0) ||
+ ((nrows = get_int(&cp)) < 0) ||
+ ((nclrs = get_int(&cp)) < 0)) {
+
+#endif
+ diag_printf("Can't parse XPM data, sorry\n");
+ return 0;
+ }
+ // printf("%d rows, %d cols, %d colors\n", nrows, ncols, nclrs);
+
+ for (i = 0; i < 256; i++) {
+ colors[i] = 0x0000;
+ }
+ for (i = 0; i < nclrs; i++) {
+ cp = xpm[i+1];
+ colors[(unsigned int)*cp] = parse_color(&cp[1]);
+ // printf("Color[%c] = %x\n", *cp, colors[(unsigned int)*cp]);
+ }
+
+#ifdef CYGOPT_EDB7XXX_LCD_COMM_LOGO_TOP
+ offset = screen_pos;
+#else
+ offset = screen_pos-nrows;
+#endif
+ for (row = 0; row < nrows; row++) {
+ cp = xpm[nclrs+1+row];
+ for (col = 0; col < ncols; col++) {
+ set_pixel(row+offset, col, colors[(unsigned int)*cp++]);
+ }
+ }
+#ifdef CYGOPT_EDB7XXX_LCD_COMM_LOGO_TOP
+ screen_start = (nrows + (FONT_HEIGHT-1))/FONT_HEIGHT;
+ return offset+nrows;
+#else
+ screen_height = offset / FONT_HEIGHT;
+ return offset;
+#endif
+}
+#endif
+
+// Control state of LCD display
+
+#define LCD_DCDC 0x02
+#define LCD_ENABLE 0x04
+#define LCD_BACKLIGHT 0x08
+#define LCD_INIT (LCD_DCDC|LCD_ENABLE|LCD_BACKLIGHT)
+
+void
+lcd_on(bool enable)
+{
+ static bool enabled = true;
+
+ if (enable) {
+ if (!enabled) {
+ *(volatile cyg_uint8 *)PDDR |= (LCD_ENABLE|LCD_BACKLIGHT);
+ *(volatile cyg_uint32 *)SYSCON1 |= SYSCON1_LCDEN;
+ }
+ enabled = true;
+ } else {
+ if (enabled) {
+ *(volatile cyg_uint32 *)SYSCON1 &= ~SYSCON1_LCDEN;
+ *(volatile cyg_uint8 *)PDDR &= ~(LCD_ENABLE|LCD_BACKLIGHT);
+ }
+ enabled = false;
+ }
+}
+
+// Initialize LCD hardware
+
+void
+lcd_init(int depth)
+{
+ // Hardwired for EDB7312
+ *(volatile cyg_uint32 *)LCDCON = 0xE60F7C1F;
+ *(volatile cyg_uint32 *)PALLSW = 0x76543210;
+ *(volatile cyg_uint32 *)PALMSW = 0xFEDCBA98;
+ *(volatile cyg_uint8 *)PDDR |= LCD_INIT; // Enable video + backlight + DC-DC converter
+ *(volatile cyg_uint8 *)FRBADDR = 0x0C; // Highest order nibble of LCD frame address
+ *(volatile cyg_uint32 *)PMPCON = 0x800; // 96KHz, 50%
+ lcd_on(true);
+ lcd_clear();
+}
+
+// Get information about the frame buffer
+int
+lcd_getinfo(struct lcd_info *info)
+{
+#if 0 // this is all wrong
+ if (lcd_bpp == 0) {
+ return 0; // LCD not initialized
+ }
+ info->width = DISPLAY_WIDTH;
+ info->height = DISPLAY_HEIGHT;
+ info->bpp = lcd_bpp;
+ info->fb = 0xC0000000;
+ info->rlen = DISPLAY_WIDTH * 2;
+ info->type = FB_TRUE_RGB565;
+ return 1; // Information valid
+#else
+ return 0;
+#endif
+}
+
+// Clear screen
+void
+lcd_clear(void)
+{
+ int row, col;
+ int pos;
+
+#ifndef USE_RGB565
+ int val;
+ for (row = 0; row < lcd_height; row++) {
+ for (col = 0; col < lcd_width; col++) {
+ set_pixel(row, col, RGB_RED(31));
+ }
+ }
+ CYGACC_CALL_IF_DELAY_US(10000000);
+
+ for (row = 0; row < lcd_height; row++) {
+ for (col = 0; col < lcd_width; col++) {
+ set_pixel(row, col, RGB_GREEN(31));
+ }
+ }
+ CYGACC_CALL_IF_DELAY_US(10000000);
+ val = 0;
+ for (pos = 0; pos < 16; pos++) {
+ val = (1<<pos);
+ diag_printf("Set pixel to 0x%04x\n", val);
+ for (row = 0; row < lcd_height; row++) {
+ for (col = 0; col < lcd_width; col++) {
+ set_pixel(row, col, val);
+ }
+ }
+ CYGACC_CALL_IF_DELAY_US(100000);
+ }
+ val = 0;
+ for (pos = 8; pos < 16; pos++) {
+ val |= (1<<pos);
+ diag_printf("Set pixel to 0x%04x\n", val);
+ for (row = 0; row < lcd_height; row++) {
+ for (col = 0; col < lcd_width; col++) {
+ set_pixel(row, col, val);
+ }
+ }
+ CYGACC_CALL_IF_DELAY_US(100000);
+ }
+
+ for (row = 0; row < lcd_height; row++) {
+ for (col = 0; col < lcd_width; col++) {
+ set_pixel(row, col, RGB_BLUE(31));
+ }
+ }
+ CYGACC_CALL_IF_DELAY_US(100000);
+#endif // RGB565
+
+ for (row = 0; row < lcd_height; row++) {
+ for (col = 0; col < lcd_width; col++) {
+ set_pixel(row, col, bg);
+ }
+ }
+ for (row = 0; row < screen_height; row++) {
+ for (col = 0; col < screen_width; col++) {
+ screen[row][col] = ' ';
+ }
+ }
+#ifdef CYGOPT_EDB7XXX_LCD_COMM_LOGO
+ // Note: Row 0 seems to wrap incorrectly
+#ifdef CYGOPT_EDB7XXX_LCD_COMM_LOGO_TOP
+ pos = 0;
+#else
+ pos = (LCD_HEIGHT-1);
+#endif
+ show_xpm(banner_xpm, pos);
+#endif // CYGOPT_EDB7XXX_LCD_COMM_LOGO
+ curX = 0; curY = screen_start;
+ if (cursor_enable) {
+ lcd_drawc(CURSOR_ON, curX-screen_pan, curY);
+ }
+}
+
+// Position cursor
+void
+lcd_moveto(int X, int Y)
+{
+ if (cursor_enable) {
+ lcd_drawc(screen[curY][curX], curX-screen_pan, curY);
+ }
+ if (X < 0) X = 0;
+ if (X >= screen_width) X = screen_width-1;
+ curX = X;
+ if (Y < screen_start) Y = screen_start;
+ if (Y >= screen_height) Y = screen_height-1;
+ curY = Y;
+ if (cursor_enable) {
+ lcd_drawc(CURSOR_ON, curX-screen_pan, curY);
+ }
+}
+
+// Render a character at position (X,Y) with current background/foreground
+static void
+lcd_drawc(cyg_int8 c, int x, int y)
+{
+ cyg_uint8 bits;
+ int l, p;
+
+ if ((x < 0) || (x >= VISIBLE_SCREEN_WIDTH) ||
+ (y < 0) || (y >= screen_height)) return;
+ for (l = 0; l < FONT_HEIGHT; l++) {
+ bits = font_table[c-FIRST_CHAR][l];
+ for (p = 0; p < FONT_WIDTH; p++) {
+ if (bits & 0x01) {
+ set_pixel(y*FONT_HEIGHT+l, x*FONT_WIDTH + p, fg);
+ } else {
+ set_pixel(y*FONT_HEIGHT+l, x*FONT_WIDTH + p, bg);
+ }
+ bits >>= 1;
+ }
+ }
+}
+
+static void
+lcd_refresh(void)
+{
+ int row, col;
+
+ for (row = screen_start; row < screen_height; row++) {
+ for (col = 0; col < VISIBLE_SCREEN_WIDTH; col++) {
+ if ((col+screen_pan) < screen_width) {
+ lcd_drawc(screen[row][col+screen_pan], col, row);
+ } else {
+ lcd_drawc(' ', col, row);
+ }
+ }
+ }
+ if (cursor_enable) {
+ lcd_drawc(CURSOR_ON, curX-screen_pan, curY);
+ }
+}
+
+static void
+lcd_scroll(void)
+{
+ int row, col;
+ cyg_uint8 *c1, *c2;
+
+ // First scroll up the virtual screen
+ for (row = (screen_start+1); row < screen_height; row++) {
+ c1 = &screen[row-1][0];
+ c2 = &screen[row][0];
+ for (col = 0; col < screen_width; col++) {
+ *c1++ = *c2++;
+ }
+ }
+ c1 = &screen[screen_height-1][0];
+ for (col = 0; col < screen_width; col++) {
+ *c1++ = 0x20;
+ }
+ lcd_refresh();
+}
+
+// Draw one character at the current position
+void
+lcd_putc(cyg_int8 c)
+{
+ if (cursor_enable) {
+ lcd_drawc(screen[curY][curX], curX-screen_pan, curY);
+ }
+ switch (c) {
+ case '\r':
+ curX = 0;
+ break;
+ case '\n':
+ curY++;
+ break;
+ case '\b':
+ curX--;
+ if (curX < 0) {
+ curY--;
+ if (curY < 0) curY = 0;
+ curX = screen_width-1;
+ }
+ break;
+ default:
+ if (((cyg_uint8)c < FIRST_CHAR) || ((cyg_uint8)c > LAST_CHAR)) c = '.';
+ screen[curY][curX] = c;
+ lcd_drawc(c, curX-screen_pan, curY);
+ curX++;
+ if (curX == screen_width) {
+ curY++;
+ curX = 0;
+ }
+ }
+ if (curY >= screen_height) {
+ lcd_scroll();
+ curY = (screen_height-1);
+ }
+ if (cursor_enable) {
+ lcd_drawc(CURSOR_ON, curX-screen_pan, curY);
+ }
+}
+
+// Basic LCD 'printf()' support
+
+#include <stdarg.h>
+
+#define is_digit(c) ((c >= '0') && (c <= '9'))
+
+static int
+_cvt(unsigned long val, char *buf, long radix, char *digits)
+{
+ char temp[80];
+ char *cp = temp;
+ int length = 0;
+ if (val == 0) {
+ /* Special case */
+ *cp++ = '0';
+ } else {
+ while (val) {
+ *cp++ = digits[val % radix];
+ val /= radix;
+ }
+ }
+ while (cp != temp) {
+ *buf++ = *--cp;
+ length++;
+ }
+ *buf = '\0';
+ return (length);
+}
+
+static int
+lcd_vprintf(void (*putc)(cyg_int8), const char *fmt0, va_list ap)
+{
+ char c, sign, *cp;
+ int left_prec, right_prec, zero_fill, length, pad, pad_on_right;
+ char buf[32];
+ long val;
+ while ((c = *fmt0++)) {
+ cp = buf;
+ length = 0;
+ if (c == '%') {
+ c = *fmt0++;
+ left_prec = right_prec = pad_on_right = 0;
+ if (c == '-') {
+ c = *fmt0++;
+ pad_on_right++;
+ }
+ if (c == '0') {
+ zero_fill = TRUE;
+ c = *fmt0++;
+ } else {
+ zero_fill = FALSE;
+ }
+ while (is_digit(c)) {
+ left_prec = (left_prec * 10) + (c - '0');
+ c = *fmt0++;
+ }
+ if (c == '.') {
+ c = *fmt0++;
+ zero_fill++;
+ while (is_digit(c)) {
+ right_prec = (right_prec * 10) + (c - '0');
+ c = *fmt0++;
+ }
+ } else {
+ right_prec = left_prec;
+ }
+ sign = '\0';
+ switch (c) {
+ case 'd':
+ case 'x':
+ case 'X':
+ val = va_arg(ap, long);
+ switch (c) {
+ case 'd':
+ if (val < 0) {
+ sign = '-';
+ val = -val;
+ }
+ length = _cvt(val, buf, 10, "0123456789");
+ break;
+ case 'x':
+ length = _cvt(val, buf, 16, "0123456789abcdef");
+ break;
+ case 'X':
+ length = _cvt(val, buf, 16, "0123456789ABCDEF");
+ break;
+ }
+ break;
+ case 's':
+ cp = va_arg(ap, char *);
+ length = strlen(cp);
+ break;
+ case 'c':
+ c = va_arg(ap, long /*char*/);
+ (*putc)(c);
+ continue;
+ default:
+ (*putc)('?');
+ }
+ pad = left_prec - length;
+ if (sign != '\0') {
+ pad--;
+ }
+ if (zero_fill) {
+ c = '0';
+ if (sign != '\0') {
+ (*putc)(sign);
+ sign = '\0';
+ }
+ } else {
+ c = ' ';
+ }
+ if (!pad_on_right) {
+ while (pad-- > 0) {
+ (*putc)(c);
+ }
+ }
+ if (sign != '\0') {
+ (*putc)(sign);
+ }
+ while (length-- > 0) {
+ (*putc)(c = *cp++);
+ if (c == '\n') {
+ (*putc)('\r');
+ }
+ }
+ if (pad_on_right) {
+ while (pad-- > 0) {
+ (*putc)(' ');
+ }
+ }
+ } else {
+ (*putc)(c);
+ if (c == '\n') {
+ (*putc)('\r');
+ }
+ }
+ }
+}
+
+int
+_lcd_printf(char const *fmt, ...)
+{
+ int ret;
+ va_list ap;
+
+ va_start(ap, fmt);
+ ret = lcd_vprintf(lcd_putc, fmt, ap);
+ va_end(ap);
+ return (ret);
+}
+
+void
+lcd_setbg(int red, int green, int blue)
+{
+ bg = RGB_RED(red) | RGB_GREEN(green) | RGB_BLUE(blue);
+}
+
+void
+lcd_setfg(int red, int green, int blue)
+{
+ fg = RGB_RED(red) | RGB_GREEN(green) | RGB_BLUE(blue);
+}
+
+#ifdef CYGSEM_EDB7XXX_LCD_COMM
+
+//
+// Support LCD/keyboard (PS2) as a virtual I/O channel
+// Adapted from i386/pcmb_screen.c
+//
+
+static int _timeout = 500;
+
+//-----------------------------------------------------------------------------
+// Keyboard definitions
+
+#define KBDATAPORT 0x40010000 // data I/O port
+#define KBCMDPORT 0x40010001 // command port (write)
+#define KBSTATPORT 0x40010001 // status port (read)
+#define KBINRDY 0x01
+#define KBOUTRDY 0x02
+#define KBTXTO 0x40 // Transmit timeout - nothing there
+#define KBTEST 0xAB
+
+// Scan codes
+
+#define LSHIFT 0x2a
+#define RSHIFT 0x36
+#define CTRL 0x1d
+#define ALT 0x38
+#define CAPS 0x3a
+#define NUMS 0x45
+
+#define BREAK 0x80
+
+// Bits for KBFlags
+
+#define KBNormal 0x0000
+#define KBShift 0x0001
+#define KBCtrl 0x0002
+#define KBAlt 0x0004
+#define KBIndex 0x0007 // mask for the above
+
+#define KBExtend 0x0010
+#define KBAck 0x0020
+#define KBResend 0x0040
+#define KBShiftL (0x0080 | KBShift)
+#define KBShiftR (0x0100 | KBShift)
+#define KBCtrlL (0x0200 | KBCtrl)
+#define KBCtrlR (0x0400 | KBCtrl)
+#define KBAltL (0x0800 | KBAlt)
+#define KBAltR (0x1000 | KBAlt)
+#define KBCapsLock 0x2000
+#define KBNumLock 0x4000
+
+#define KBArrowUp 0x48
+#define KBArrowRight 0x4D
+#define KBArrowLeft 0x4B
+#define KBArrowDown 0x50
+
+//-----------------------------------------------------------------------------
+// Keyboard Variables
+
+static int KBFlags = 0;
+
+static CYG_BYTE KBPending = 0xFF;
+
+static CYG_BYTE KBScanTable[128][4] = {
+// Normal Shift Control Alt
+// 0x00
+ { 0xFF, 0xFF, 0xFF, 0xFF, },
+ { 0x1b, 0x1b, 0x1b, 0xFF, },
+ { '1', '!', 0xFF, 0xFF, },
+ { '2', '"', 0xFF, 0xFF, },
+ { '3', '#', 0xFF, 0xFF, },
+ { '4', '$', 0xFF, 0xFF, },
+ { '5', '%', 0xFF, 0xFF, },
+ { '6', '^', 0xFF, 0xFF, },
+ { '7', '&', 0xFF, 0xFF, },
+ { '8', '*', 0xFF, 0xFF, },
+ { '9', '(', 0xFF, 0xFF, },
+ { '0', ')', 0xFF, 0xFF, },
+ { '-', '_', 0xFF, 0xFF, },
+ { '=', '+', 0xFF, 0xFF, },
+ { '\b', '\b', 0xFF, 0xFF, },
+ { '\t', '\t', 0xFF, 0xFF, },
+// 0x10
+ { 'q', 'Q', 0x11, 0xFF, },
+ { 'w', 'W', 0x17, 0xFF, },
+ { 'e', 'E', 0x05, 0xFF, },
+ { 'r', 'R', 0x12, 0xFF, },
+ { 't', 'T', 0x14, 0xFF, },
+ { 'y', 'Y', 0x19, 0xFF, },
+ { 'u', 'U', 0x15, 0xFF, },
+ { 'i', 'I', 0x09, 0xFF, },
+ { 'o', 'O', 0x0F, 0xFF, },
+ { 'p', 'P', 0x10, 0xFF, },
+ { '[', '{', 0x1b, 0xFF, },
+ { ']', '}', 0x1d, 0xFF, },
+ { '\r', '\r', '\n', 0xFF, },
+ { 0xFF, 0xFF, 0xFF, 0xFF, },
+ { 'a', 'A', 0x01, 0xFF, },
+ { 's', 'S', 0x13, 0xFF, },
+// 0x20
+ { 'd', 'D', 0x04, 0xFF, },
+ { 'f', 'F', 0x06, 0xFF, },
+ { 'g', 'G', 0x07, 0xFF, },
+ { 'h', 'H', 0x08, 0xFF, },
+ { 'j', 'J', 0x0a, 0xFF, },
+ { 'k', 'K', 0x0b, 0xFF, },
+ { 'l', 'L', 0x0c, 0xFF, },
+ { ';', ':', 0xFF, 0xFF, },
+ { 0x27, '@', 0xFF, 0xFF, },
+ { '#', '~', 0xFF, 0xFF, },
+ { '`', '~', 0xFF, 0xFF, },
+ { '\\', '|', 0x1C, 0xFF, },
+ { 'z', 'Z', 0x1A, 0xFF, },
+ { 'x', 'X', 0x18, 0xFF, },
+ { 'c', 'C', 0x03, 0xFF, },
+ { 'v', 'V', 0x16, 0xFF, },
+// 0x30
+ { 'b', 'B', 0x02, 0xFF, },
+ { 'n', 'N', 0x0E, 0xFF, },
+ { 'm', 'M', 0x0D, 0xFF, },
+ { ',', '<', 0xFF, 0xFF, },
+ { '.', '>', 0xFF, 0xFF, },
+ { '/', '?', 0xFF, 0xFF, },
+ { 0xFF, 0xFF, 0xFF, 0xFF, },
+ { 0xFF, 0xFF, 0xFF, 0xFF, },
+ { 0xFF, 0xFF, 0xFF, 0xFF, },
+ { ' ', ' ', ' ', ' ', },
+ { 0xFF, 0xFF, 0xFF, 0xFF, },
+ { 0xF1, 0xE1, 0xFF, 0xFF, },
+ { 0xF2, 0xE2, 0xFF, 0xFF, },
+ { 0xF3, 0xE3, 0xFF, 0xFF, },
+ { 0xF4, 0xE4, 0xFF, 0xFF, },
+ { 0xF5, 0xE5, 0xFF, 0xFF, },
+// 0x40
+ { 0xFF, 0xFF, 0xFF, 0xFF, },
+ { 0xFF, 0xFF, 0xFF, 0xFF, },
+ { 0xFF, 0xFF, 0xFF, 0xFF, },
+ { 0xFF, 0xFF, 0xFF, 0xFF, },
+ { 0xFF, 0xFF, 0xFF, 0xFF, },
+ { 0xFF, 0xFF, 0xFF, 0xFF, },
+ { 0xFF, 0xFF, 0xFF, 0xFF, },
+ { 0xFF, 0xFF, 0xFF, 0xFF, },
+
+ { 0x15, 0x15, 0x15, 0x15, },
+ { 0x10, 0x10, 0x10, 0x10, },
+ { 0xFF, 0xFF, 0xFF, 0xFF, },
+ { 0xFF, 0xFF, 0xFF, 0xFF, },
+ { 0xFF, 0xFF, 0xFF, 0xFF, },
+ { 0xFF, 0xFF, 0xFF, 0xFF, },
+ { 0xFF, 0xFF, 0xFF, 0xFF, },
+ { 0xFF, 0xFF, 0xFF, 0xFF, },
+// 0x50
+ { 0x04, 0x04, 0x04, 0x04, },
+ { 0x0e, 0x0e, 0x0e, 0x0e, },
+ { 0xFF, 0xFF, 0xFF, 0xFF, },
+ { 0xFF, 0xFF, 0xFF, 0xFF, },
+ { 0xFF, 0xFF, 0xFF, 0xFF, },
+ { 0xFF, 0xFF, 0xFF, 0xFF, },
+ { 0xFF, 0xFF, 0xFF, 0xFF, },
+ { 0xFF, 0xFF, 0xFF, 0xFF, },
+ { 0xFF, 0xFF, 0xFF, 0xFF, },
+ { 0xFF, 0xFF, 0xFF, 0xFF, },
+ { 0xFF, 0xFF, 0xFF, 0xFF, },
+ { 0xFF, 0xFF, 0xFF, 0xFF, },
+ { 0xFF, 0xFF, 0xFF, 0xFF, },
+ { 0xFF, 0xFF, 0xFF, 0xFF, },
+ { 0xFF, 0xFF, 0xFF, 0xFF, },
+ { 0xFF, 0xFF, 0xFF, 0xFF, },
+// 0x60
+ { 0xFF, 0xFF, 0xFF, 0xFF, },
+ { 0xFF, 0xFF, 0xFF, 0xFF, },
+ { 0xFF, 0xFF, 0xFF, 0xFF, },
+ { 0xFF, 0xFF, 0xFF, 0xFF, },
+ { 0xFF, 0xFF, 0xFF, 0xFF, },
+ { 0xFF, 0xFF, 0xFF, 0xFF, },
+ { 0xFF, 0xFF, 0xFF, 0xFF, },
+ { 0xFF, 0xFF, 0xFF, 0xFF, },
+ { 0xFF, 0xFF, 0xFF, 0xFF, },
+ { 0xFF, 0xFF, 0xFF, 0xFF, },
+ { 0xFF, 0xFF, 0xFF, 0xFF, },
+ { 0xFF, 0xFF, 0xFF, 0xFF, },
+ { 0xFF, 0xFF, 0xFF, 0xFF, },
+ { 0xFF, 0xFF, 0xFF, 0xFF, },
+ { 0xFF, 0xFF, 0xFF, 0xFF, },
+ { 0xFF, 0xFF, 0xFF, 0xFF, },
+// 0x70
+ { 0xFF, 0xFF, 0xFF, 0xFF, },
+ { 0xFF, 0xFF, 0xFF, 0xFF, },
+ { 0xFF, 0xFF, 0xFF, 0xFF, },
+ { 0xFF, 0xFF, 0xFF, 0xFF, },
+ { 0xFF, 0xFF, 0xFF, 0xFF, },
+ { 0xFF, 0xFF, 0xFF, 0xFF, },
+ { 0xFF, 0xFF, 0xFF, 0xFF, },
+ { 0xFF, 0xFF, 0xFF, 0xFF, },
+ { 0xFF, 0xFF, 0xFF, 0xFF, },
+ { 0xFF, 0xFF, 0xFF, 0xFF, },
+ { 0xFF, 0xFF, 0xFF, 0xFF, },
+ { 0xFF, 0xFF, 0xFF, 0xFF, },
+ { 0xFF, 0xFF, 0xFF, 0xFF, },
+ { 0xFF, 0xFF, 0xFF, 0xFF, },
+ { 0xFF, 0xFF, 0xFF, 0xFF, },
+ { 0xFF, 0xFF, 0xFF, 0xFF, },
+};
+
+static int KBIndexTab[8] = { 0, 1, 2, 2, 3, 3, 3, 3 };
+
+//-----------------------------------------------------------------------------
+
+static __inline__ cyg_uint8
+inb(cyg_uint32 port)
+{
+ cyg_uint8 val;
+ HAL_READ_UINT8(port, val);
+ return val;
+}
+
+static __inline__
+outb(cyg_uint32 port, cyg_uint8 val)
+{
+ HAL_WRITE_UINT8(port, val);
+}
+
+static cyg_bool
+KeyboardInit(void)
+{
+ unsigned char c, s;
+ int i;
+
+ /* flush input queue */
+ while ((inb(KBSTATPORT) & KBINRDY)) {
+ (void)inb(KBDATAPORT);
+ }
+
+ /* Send self-test - controller local */
+ while (inb(KBSTATPORT) & KBOUTRDY) ;
+ outb(KBCMDPORT,0xAA);
+ while ((inb(KBSTATPORT) & KBINRDY) == 0) ; /* wait input ready */
+ if ((c = inb(KBDATAPORT)) != 0x55) {
+#ifdef DEBUG_KBD_INIT
+ diag_printf("Keyboard self test failed - result: %x\n", c);
+#endif
+ return false;
+ }
+
+ /* Enable interrupts and keyboard controller */
+ while (inb(KBSTATPORT) & KBOUTRDY) ;
+ outb(KBCMDPORT,0x60);
+ while (inb(KBSTATPORT) & KBOUTRDY) ;
+ outb(KBCMDPORT,0x45);
+ CYGACC_CALL_IF_DELAY_US(10000); // 10ms
+
+ while (inb(KBSTATPORT) & KBOUTRDY) ;
+ outb(KBCMDPORT,0xAE); // Enable keyboard
+
+ /* See if a keyboard is connected */
+ while (inb(KBSTATPORT) & KBOUTRDY) ;
+ outb(KBDATAPORT,0xFF);
+ while (((s = inb(KBSTATPORT)) & (KBINRDY|KBTXTO)) == 0) ; /* wait input ready */
+ if ((s & KBTXTO) || ((c = inb(KBDATAPORT)) != 0xFA)) {
+#ifdef DEBUG_KBD_INIT
+ diag_printf("Keyboard reset failed - no ACK: %x, stat: %x\n", c, s);
+#endif
+ return false;
+ }
+ while (((s = inb(KBSTATPORT)) & KBINRDY) == 0) ; /* wait input ready */
+ if ((s & KBTXTO) || ((c = inb(KBDATAPORT)) != 0xAA)) {
+#ifdef DEBUG_KBD_INIT
+ diag_printf("Keyboard reset failed - bad code: %x, stat: %x\n", c, s);
+#endif
+ return false;
+ }
+
+ // Set scan mode
+ while (inb(KBSTATPORT) & KBOUTRDY) ;
+ outb(KBCMDPORT,0x20);
+ while ((inb(KBSTATPORT) & KBINRDY) == 0) ; /* wait input ready */
+ if (! (inb(KBDATAPORT) & 0x40)) {
+ /*
+ * Quote from PS/2 System Reference Manual:
+ *
+ * "Address hex 0060 and address hex 0064 should be
+ * written only when the input-buffer-full bit and
+ * output-buffer-full bit in the Controller Status
+ * register are set 0." (KBINRDY and KBOUTRDY)
+ */
+
+ while (inb(KBSTATPORT) & (KBINRDY | KBOUTRDY)) ;
+ outb(KBDATAPORT,0xF0);
+ while (inb(KBSTATPORT) & (KBINRDY | KBOUTRDY)) ;
+ outb(KBDATAPORT,0x01);
+ }
+
+ KBFlags = 0;
+ return true;
+} /* KeyboardInit */
+
+//-----------------------------------------------------------------------------
+
+static CYG_BYTE
+KeyboardAscii(CYG_BYTE scancode)
+{
+ CYG_BYTE ascii = 0xFF;
+
+ // Start by handling all shift/ctl keys:
+
+ switch( scancode ) {
+ case 0xe0:
+ KBFlags |= KBExtend;
+ return 0xFF;
+
+ case 0xfa:
+ KBFlags |= KBAck;
+ return 0xFF;
+
+ case 0xfe:
+ KBFlags |= KBResend;
+ return 0xFF;
+
+ case LSHIFT:
+ KBFlags |= KBShiftL;
+ return 0xFF;
+
+ case LSHIFT | BREAK:
+ KBFlags &= ~KBShiftL;
+ return 0xFF;
+
+ case RSHIFT:
+ KBFlags |= KBShiftR;
+ return 0xFF;
+
+ case RSHIFT | BREAK:
+ KBFlags &= ~KBShiftR;
+ return 0xFF;
+
+ case CTRL:
+ if( KBFlags & KBExtend )
+ {
+ KBFlags |= KBCtrlR;
+ KBFlags &= ~KBExtend;
+ }
+ else KBFlags |= KBCtrlL;
+ return 0xFF;
+
+ case CTRL | BREAK:
+ if( KBFlags & KBExtend )
+ {
+ KBFlags &= ~KBCtrlR;
+ KBFlags &= ~KBExtend;
+ }
+ else KBFlags &= ~KBCtrlL;
+ return 0xFF;
+
+
+ case ALT:
+ if( KBFlags & KBExtend )
+ {
+ KBFlags |= KBAltR;
+ KBFlags &= ~KBExtend;
+ }
+ else KBFlags |= KBAltL;
+ return 0xFF;
+
+ case ALT | BREAK:
+ if( KBFlags & KBExtend )
+ {
+ KBFlags &= ~KBAltR;
+ KBFlags &= ~KBExtend;
+ }
+ else KBFlags &= ~KBAltL;
+ return 0xFF;
+
+ case CAPS:
+ KBFlags ^= KBCapsLock;
+ case CAPS | BREAK:
+ return 0xFF;
+
+ case NUMS:
+ KBFlags ^= KBNumLock;
+ case NUMS | BREAK:
+ return 0xFF;
+
+ case KBArrowUp:
+ case KBArrowDown:
+ screen_pan = 0;
+ lcd_refresh();
+ break;
+ case KBArrowLeft:
+ screen_pan -= SCREEN_PAN;
+ if (screen_pan < 0) screen_pan = 0;
+ lcd_refresh();
+ break;
+ case KBArrowRight:
+ screen_pan += SCREEN_PAN;
+ if (screen_pan > (SCREEN_WIDTH-SCREEN_PAN)) screen_pan = SCREEN_WIDTH-SCREEN_PAN;
+ lcd_refresh();
+ break;
+
+ }
+
+ // Clear Extend flag if set
+ KBFlags &= ~KBExtend;
+
+ // Ignore all other BREAK codes
+ if( scancode & 0x80 ) return 0xFF;
+
+ // Here the scancode is for something we can turn
+ // into an ASCII value
+
+ ascii = KBScanTable[scancode & 0x7F][KBIndexTab[KBFlags & KBIndex]];
+
+ return ascii;
+
+} /* KeyboardAscii */
+
+//-----------------------------------------------------------------------------
+
+static int
+KeyboardTest(void)
+{
+ // If there is a pending character, return True
+ if( KBPending != 0xFF ) return true;
+
+ // If there is something waiting at the port, get it
+ for(;;) {
+ CYG_BYTE stat, code;
+ CYG_BYTE c;
+
+ HAL_READ_UINT8( KBSTATPORT, stat );
+
+ if( (stat & KBINRDY) == 0 )
+ break;
+
+ HAL_READ_UINT8( KBDATAPORT, code );
+
+ // Translate to ASCII
+ c = KeyboardAscii(code);
+
+ // if it is a real ASCII char, save it and
+ // return True.
+ if( c != 0xFF ) {
+ KBPending = c;
+ return true;
+ }
+ }
+
+ // Otherwise return False
+ return false;
+
+} /* KeyboardTest */
+
+static cyg_bool
+lcd_comm_getc_nonblock(void* __ch_data, cyg_uint8* ch)
+{
+ if( !KeyboardTest() )
+ return false;
+ *ch = KBPending;
+ KBPending = 0xFF;
+ return true;
+}
+
+static cyg_uint8
+lcd_comm_getc(void* __ch_data)
+{
+ cyg_uint8 ch;
+
+ while (!lcd_comm_getc_nonblock(__ch_data, &ch)) ;
+ return ch;
+}
+
+static void
+lcd_comm_putc(void* __ch_data, cyg_uint8 c)
+{
+ lcd_putc(c);
+}
+
+static void
+lcd_comm_write(void* __ch_data, const cyg_uint8* __buf, cyg_uint32 __len)
+{
+#if 0
+ CYGARC_HAL_SAVE_GP();
+
+ while(__len-- > 0)
+ lcd_comm_putc(__ch_data, *__buf++);
+
+ CYGARC_HAL_RESTORE_GP();
+#endif
+}
+
+static void
+lcd_comm_read(void* __ch_data, cyg_uint8* __buf, cyg_uint32 __len)
+{
+#if 0
+ CYGARC_HAL_SAVE_GP();
+
+ while(__len-- > 0)
+ *__buf++ = lcd_comm_getc(__ch_data);
+
+ CYGARC_HAL_RESTORE_GP();
+#endif
+}
+
+static cyg_bool
+lcd_comm_getc_timeout(void* __ch_data, cyg_uint8* ch)
+{
+ int delay_count;
+ cyg_bool res;
+
+ delay_count = _timeout * 10; // delay in .1 ms steps
+ for(;;) {
+ res = lcd_comm_getc_nonblock(__ch_data, ch);
+ if (res || 0 == delay_count--)
+ break;
+ CYGACC_CALL_IF_DELAY_US(100);
+ }
+ return res;
+}
+
+static int
+lcd_comm_control(void *__ch_data, __comm_control_cmd_t __func, ...)
+{
+ static int vector = 0;
+ int ret = -1;
+ static int irq_state = 0;
+
+ CYGARC_HAL_SAVE_GP();
+
+ switch (__func) {
+ case __COMMCTL_IRQ_ENABLE:
+ ret = irq_state;
+ irq_state = 1;
+ break;
+ case __COMMCTL_IRQ_DISABLE:
+ ret = irq_state;
+ irq_state = 0;
+ break;
+ case __COMMCTL_DBG_ISR_VECTOR:
+ ret = vector;
+ break;
+ case __COMMCTL_SET_TIMEOUT:
+ {
+ va_list ap;
+
+ va_start(ap, __func);
+
+ ret = _timeout;
+ _timeout = va_arg(ap, cyg_uint32);
+
+ va_end(ap);
+ break;
+ }
+ case __COMMCTL_FLUSH_OUTPUT:
+ ret = 0;
+ break;
+ default:
+ break;
+ }
+ CYGARC_HAL_RESTORE_GP();
+ return ret;
+}
+
+static int
+lcd_comm_isr(void *__ch_data, int* __ctrlc,
+ CYG_ADDRWORD __vector, CYG_ADDRWORD __data)
+{
+#if 0
+ char ch;
+
+ cyg_drv_interrupt_acknowledge(__vector);
+ *__ctrlc = 0;
+ if (lcd_comm_getc_nonblock(__ch_data, &ch)) {
+ if (ch == 0x03) {
+ *__ctrlc = 1;
+ }
+ }
+ return CYG_ISR_HANDLED;
+#endif
+}
+
+#define LCD_COMM_CHANNEL 2
+
+void
+lcd_comm_init(void)
+{
+ static int init = 0;
+
+ if (!init) {
+ hal_virtual_comm_table_t* comm;
+ int cur = CYGACC_CALL_IF_SET_CONSOLE_COMM(CYGNUM_CALL_IF_SET_COMM_ID_QUERY_CURRENT);
+
+ init = 1;
+ lcd_on(false);
+ if (!KeyboardInit()) {
+ // No keyboard - no LCD display
+ return;
+ }
+ // Initialize screen
+ cursor_enable = true;
+ lcd_init(16);
+
+ // Setup procs in the vector table
+ CYGACC_CALL_IF_SET_CONSOLE_COMM(LCD_COMM_CHANNEL);
+ comm = CYGACC_CALL_IF_CONSOLE_PROCS();
+ //CYGACC_COMM_IF_CH_DATA_SET(*comm, chan);
+ CYGACC_COMM_IF_WRITE_SET(*comm, lcd_comm_write);
+ CYGACC_COMM_IF_READ_SET(*comm, lcd_comm_read);
+ CYGACC_COMM_IF_PUTC_SET(*comm, lcd_comm_putc);
+ CYGACC_COMM_IF_GETC_SET(*comm, lcd_comm_getc);
+ CYGACC_COMM_IF_CONTROL_SET(*comm, lcd_comm_control);
+ CYGACC_COMM_IF_DBG_ISR_SET(*comm, lcd_comm_isr);
+ CYGACC_COMM_IF_GETC_TIMEOUT_SET(*comm, lcd_comm_getc_timeout);
+
+ // Restore original console
+ CYGACC_CALL_IF_SET_CONSOLE_COMM(cur);
+ }
+}
+
+#ifdef CYGPKG_REDBOOT
+#include <redboot.h>
+
+// Get here when RedBoot is idle. If it's been long enough, then
+// dim the LCD. The problem is - how to determine other activities
+// so that this doesn't get in the way. In the default case, this will
+// be called from RedBoot every 10ms (CYGNUM_REDBOOT_CLI_IDLE_TIMEOUT)
+
+#define MAX_IDLE_TIME (30*100)
+
+static void
+idle(bool is_idle)
+{
+ static int idle_time = 0;
+ static bool was_idled = false;
+ int cur = CYGACC_CALL_IF_SET_CONSOLE_COMM(CYGNUM_CALL_IF_SET_COMM_ID_QUERY_CURRENT);
+
+ if (is_idle) {
+ if (!was_idled) {
+ if (++idle_time == MAX_IDLE_TIME) {
+ was_idled = true;
+ lcd_on(false);
+ }
+ }
+ } else {
+ idle_time = 0;
+ if (was_idled) {
+ was_idled = false;
+ lcd_on(cur == LCD_COMM_CHANNEL);
+ }
+ }
+}
+
+RedBoot_idle(idle, RedBoot_AFTER_NETIO);
+#endif
+#endif
diff --git a/ecos/packages/hal/arm/edb7xxx/current/support/Makefile b/ecos/packages/hal/arm/edb7xxx/current/support/Makefile
new file mode 100644
index 0000000..2d8f6e7
--- /dev/null
+++ b/ecos/packages/hal/arm/edb7xxx/current/support/Makefile
@@ -0,0 +1,15 @@
+#
+# eCos support tools for Cirrus Logic EDB7xxx eval boards
+#
+
+CFLAGS += -D__LINUX -O2
+
+DL_FILES = dl_edb7xxx.o io.o
+ALL := dl_edb7xxx
+
+
+all: $(ALL)
+
+dl_edb7xxx: $(DL_FILES)
+ $(CC) -o $@ $(DL_FILES)
+
diff --git a/ecos/packages/hal/arm/edb7xxx/current/support/bootcode.h b/ecos/packages/hal/arm/edb7xxx/current/support/bootcode.h
new file mode 100644
index 0000000..38560dc
--- /dev/null
+++ b/ecos/packages/hal/arm/edb7xxx/current/support/bootcode.h
@@ -0,0 +1,131 @@
+// THIS IS A GENERATED FILE...DO NOT EDIT!
+char pcBoot[2048] = {
+ 20, 208, 159, 229, 1, 0, 160, 227, 203, 0, 0, 235, 180, 0, 0, 235,
+ 2, 1, 160, 227, 64, 8, 128, 229, 252, 255, 255, 234, 0, 8, 0, 16,
+ 2, 1, 160, 227, 4, 0, 45, 229, 0, 0, 157, 229, 64, 1, 144, 229,
+ 1, 5, 16, 227, 3, 0, 0, 10, 0, 0, 157, 229, 64, 1, 144, 229,
+ 1, 5, 16, 227, 251, 255, 255, 26, 0, 0, 157, 229, 128, 4, 144, 229,
+255, 0, 0, 226, 4, 208, 141, 226, 14, 240, 160, 225, 255, 0, 0, 226,
+ 2, 17, 160, 227, 4, 16, 45, 229, 0, 16, 157, 229, 64, 17, 145, 229,
+ 2, 5, 17, 227, 3, 0, 0, 10, 0, 16, 157, 229, 64, 17, 145, 229,
+ 2, 5, 17, 227, 251, 255, 255, 26, 0, 16, 157, 229, 4, 208, 141, 226,
+128, 4, 161, 229, 14, 240, 160, 225, 13, 192, 160, 225, 0, 216, 45, 233,
+ 4, 176, 76, 226, 2, 1, 160, 227, 4, 0, 45, 229, 219, 255, 255, 235,
+ 48, 0, 64, 226, 5, 0, 80, 227, 0, 241, 143, 144, 23, 0, 0, 234,
+ 6, 0, 0, 234, 8, 0, 0, 234, 10, 0, 0, 234, 12, 0, 0, 234,
+ 14, 0, 0, 234, 7, 8, 160, 227, 1, 0, 128, 226, 13, 0, 0, 234,
+ 23, 0, 160, 227, 7, 8, 128, 226, 10, 0, 0, 234, 11, 0, 160, 227,
+ 7, 8, 128, 226, 7, 0, 0, 234, 7, 0, 160, 227, 7, 8, 128, 226,
+ 4, 0, 0, 234, 5, 0, 160, 227, 7, 8, 128, 226, 1, 0, 0, 234,
+ 7, 8, 160, 227, 3, 0, 128, 226, 0, 16, 157, 229, 192, 4, 161, 229,
+190, 255, 255, 235, 45, 0, 80, 227, 252, 255, 255, 26, 0, 168, 27, 233,
+ 13, 192, 160, 225, 0, 216, 45, 233, 4, 176, 76, 226, 183, 255, 255, 235,
+ 0, 16, 160, 225, 181, 255, 255, 235, 0, 20, 129, 225, 179, 255, 255, 235,
+ 0, 24, 129, 225, 177, 255, 255, 235, 0, 12, 129, 225, 0, 32, 144, 229,
+255, 0, 2, 226, 188, 255, 255, 235, 255, 48, 160, 227, 34, 4, 3, 224,
+185, 255, 255, 235, 34, 8, 3, 224, 183, 255, 255, 235, 34, 12, 160, 225,
+ 0, 104, 27, 233, 180, 255, 255, 234, 13, 192, 160, 225, 0, 216, 45, 233,
+ 4, 176, 76, 226, 161, 255, 255, 235, 0, 16, 160, 225, 159, 255, 255, 235,
+ 0, 20, 129, 225, 157, 255, 255, 235, 0, 24, 129, 225, 155, 255, 255, 235,
+ 0, 28, 129, 225, 153, 255, 255, 235, 0, 32, 160, 225, 151, 255, 255, 235,
+ 0, 36, 130, 225, 149, 255, 255, 235, 0, 40, 130, 225, 147, 255, 255, 235,
+ 0, 12, 130, 225, 0, 0, 129, 229, 0, 168, 27, 233, 13, 192, 160, 225,
+240, 223, 45, 233, 4, 176, 76, 226, 8, 208, 77, 226, 3, 129, 160, 227,
+138, 255, 255, 235, 0, 16, 160, 225, 136, 255, 255, 235, 0, 20, 129, 225,
+134, 255, 255, 235, 0, 24, 129, 225, 132, 255, 255, 235, 0, 28, 129, 225,
+130, 255, 255, 235, 0, 32, 160, 225, 128, 255, 255, 235, 0, 36, 130, 225,
+126, 255, 255, 235, 0, 40, 130, 225, 124, 255, 255, 235, 0, 76, 130, 225,
+ 0, 32, 160, 227, 0, 0, 84, 227, 4, 0, 0, 154, 119, 255, 255, 235,
+ 2, 0, 200, 231, 1, 32, 130, 226, 4, 0, 82, 225, 250, 255, 255, 58,
+ 15, 34, 1, 226, 7, 114, 98, 226, 15, 98, 193, 227, 92, 0, 0, 235,
+ 0, 80, 160, 225, 0, 0, 80, 227, 15, 0, 0, 154, 4, 144, 134, 224,
+ 1, 0, 69, 226, 0, 160, 160, 225, 13, 32, 160, 225, 4, 16, 141, 226,
+ 85, 0, 0, 235, 4, 16, 157, 229, 1, 0, 89, 225, 3, 0, 0, 58,
+ 7, 0, 160, 225, 137, 0, 0, 235, 48, 0, 133, 226, 110, 255, 255, 235,
+ 10, 80, 160, 225, 0, 0, 90, 227, 240, 255, 255, 138, 0, 80, 160, 227,
+ 0, 0, 84, 227, 9, 0, 0, 154, 5, 32, 136, 224, 5, 16, 134, 224,
+ 7, 0, 160, 225, 1, 59, 160, 227, 147, 0, 0, 235, 44, 0, 160, 227,
+ 97, 255, 255, 235, 1, 91, 133, 226, 4, 0, 85, 225, 245, 255, 255, 58,
+240, 175, 27, 233, 13, 192, 160, 225, 0, 216, 45, 233, 4, 176, 76, 226,
+ 63, 0, 160, 227, 88, 255, 255, 235, 72, 255, 255, 235, 66, 0, 80, 227,
+ 7, 0, 0, 10, 70, 0, 80, 227, 9, 0, 0, 10, 82, 0, 80, 227,
+ 5, 0, 0, 10, 87, 0, 80, 227, 244, 255, 255, 26, 153, 255, 255, 235,
+242, 255, 255, 234, 91, 255, 255, 235, 240, 255, 255, 234, 127, 255, 255, 235,
+238, 255, 255, 234, 168, 255, 255, 235, 236, 255, 255, 234, 2, 17, 160, 227,
+ 0, 32, 160, 227, 2, 49, 160, 227, 1, 58, 131, 226, 128, 34, 129, 229,
+128, 34, 131, 229, 128, 35, 129, 229, 192, 35, 129, 229, 128, 192, 160, 227,
+ 2, 201, 140, 226, 128, 193, 129, 229, 129, 192, 160, 227, 0, 0, 80, 227,
+ 64, 39, 129, 229, 0, 194, 129, 229, 2, 5, 160, 3, 0, 1, 145, 21,
+255, 4, 192, 19, 127, 8, 192, 19, 254, 12, 192, 19, 255, 0, 192, 19,
+ 0, 1, 129, 229, 5, 0, 160, 227, 0, 1, 163, 229, 64, 32, 193, 229,
+254, 0, 160, 227, 65, 0, 193, 229, 67, 32, 193, 229, 15, 0, 160, 227,
+192, 0, 193, 229, 1, 32, 193, 5, 1, 0, 209, 21, 4, 0, 0, 18,
+ 1, 0, 193, 21, 3, 32, 193, 229, 2, 0, 160, 227, 128, 0, 193, 229,
+ 14, 240, 160, 225, 71, 0, 160, 227, 14, 240, 160, 225, 0, 0, 80, 227,
+ 1, 0, 0, 186, 71, 0, 80, 227, 1, 0, 0, 186, 0, 0, 160, 227,
+ 14, 240, 160, 225, 8, 0, 80, 227, 0, 7, 160, 177, 0, 0, 129, 181,
+ 1, 9, 160, 179, 4, 0, 0, 186, 242, 56, 160, 227, 255, 52, 131, 226,
+128, 8, 131, 224, 0, 0, 129, 229, 2, 8, 160, 227, 0, 0, 130, 229,
+ 1, 0, 160, 227, 14, 240, 160, 225, 4, 0, 45, 229, 128, 16, 160, 227,
+ 2, 21, 129, 226, 0, 0, 157, 229, 0, 0, 144, 229, 255, 4, 192, 227,
+127, 8, 192, 227, 255, 12, 192, 227, 127, 0, 192, 227, 1, 0, 80, 225,
+247, 255, 255, 26, 80, 16, 160, 227, 5, 22, 129, 226, 0, 0, 157, 229,
+ 4, 208, 141, 226, 0, 16, 128, 229, 14, 240, 160, 225, 13, 192, 160, 225,
+ 48, 216, 45, 233, 4, 176, 76, 226, 0, 64, 160, 225, 8, 208, 77, 226,
+ 0, 80, 160, 227, 210, 255, 255, 235, 0, 0, 80, 227, 10, 0, 0, 218,
+ 13, 32, 160, 225, 4, 16, 141, 226, 5, 0, 160, 225, 206, 255, 255, 235,
+ 4, 0, 160, 225, 4, 16, 157, 229, 4, 0, 0, 235, 1, 80, 133, 226,
+199, 255, 255, 235, 5, 0, 80, 225, 244, 255, 255, 202, 48, 168, 27, 233,
+ 13, 192, 160, 225, 0, 216, 45, 233, 4, 176, 76, 226, 4, 0, 45, 229,
+ 0, 0, 81, 227, 15, 0, 0, 186, 2, 5, 81, 227, 13, 0, 0, 170,
+ 32, 48, 160, 227, 2, 54, 131, 226, 65, 17, 160, 225, 0, 32, 157, 229,
+ 1, 49, 130, 231, 208, 32, 160, 227, 13, 38, 130, 226, 0, 48, 157, 229,
+ 1, 33, 131, 231, 199, 255, 255, 235, 255, 0, 160, 227, 255, 8, 128, 226,
+ 0, 16, 157, 229, 0, 0, 129, 229, 0, 168, 27, 233, 13, 192, 160, 225,
+240, 216, 45, 233, 4, 176, 76, 226, 0, 80, 160, 225, 1, 64, 160, 225,
+ 4, 0, 45, 229, 0, 0, 84, 227, 4, 0, 0, 186, 2, 5, 84, 227,
+ 2, 0, 0, 170, 3, 0, 132, 224, 2, 5, 80, 227, 0, 0, 0, 218,
+240, 168, 27, 233, 0, 96, 160, 227, 0, 0, 83, 227, 13, 0, 0, 218,
+ 64, 112, 160, 227, 1, 117, 135, 226, 0, 0, 157, 229, 0, 112, 128, 229,
+ 6, 16, 146, 231, 6, 0, 132, 224, 64, 193, 160, 225, 0, 0, 157, 229,
+ 12, 17, 128, 231, 5, 0, 160, 225, 166, 255, 255, 235, 4, 96, 134, 226,
+ 3, 0, 86, 225, 243, 255, 255, 186, 255, 16, 160, 227, 255, 24, 129, 226,
+ 0, 0, 157, 229, 0, 16, 128, 229, 232, 255, 255, 234, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+};
diff --git a/ecos/packages/hal/arm/edb7xxx/current/support/dl_edb7xxx.c b/ecos/packages/hal/arm/edb7xxx/current/support/dl_edb7xxx.c
new file mode 100644
index 0000000..c5a163a
--- /dev/null
+++ b/ecos/packages/hal/arm/edb7xxx/current/support/dl_edb7xxx.c
@@ -0,0 +1,438 @@
+//****************************************************************************
+//
+// DOWNLOAD.C - Automates the download of code into the flash on the
+// Cirrus Logic EDB7XXX boards.
+//
+// Copyright (c) 1999 Cirrus Logic, Inc.
+//
+// Adapted for Linux by Red Hat, Inc.
+// Renamed 'dl_edb7xxx' to indicate support for all Cirrus Logic eval boards.
+//
+//****************************************************************************
+#include <stdio.h>
+#include "bootcode.h"
+
+#ifndef _WIN32
+#define CHAR_READY_IS_RELIABLE
+#endif
+
+#define DEFAULT_PORT "/dev/ttyS0"
+extern char _ReceiveChar(long);
+extern void _SendChar(long, char);
+extern void _SetBaud(long, long);
+extern int _CharRead(long port);
+extern void _WaitForOutputReady(long port);
+extern long _OpenPort(char *);
+extern int _CharReady(long port);
+
+#define ReceiveChar _ReceiveChar
+#define SendChar _SendChar
+#define SetBaud _SetBaud
+#define CharRead _CharRead
+#define WaitForOutputEmpty _WaitForOutputEmpty
+#define OpenPort _OpenPort
+#define CharReady _CharReady
+
+//****************************************************************************
+//
+// WaitFor waits until a specific character is read from the comm port.
+//
+//****************************************************************************
+void
+WaitFor(long lPort, char cWaitChar)
+{
+ char cChar;
+
+ //
+ // Wait until we read a specific character from the comm port.
+ //
+ while(1)
+ {
+ //
+ // Read a character.
+ //
+ cChar = ReceiveChar(lPort);
+
+ //
+ // Stop waiting if we received the character.
+ //
+ if(cChar == cWaitChar)
+ {
+ break;
+ }
+ }
+}
+
+//****************************************************************************
+//
+// This program waits for the '<' character from the boot ROM, sends the boot
+// code, waits for the '>' from the boot ROM, waits for the '?' from the boot
+// code, changes the serial port rate (preferably to 115200), downloads the
+// user data file, and then prints out progress status as the boot code writes
+// the user data file to the flash.
+//
+//****************************************************************************
+void
+main(int argc, char *argv[])
+{
+ long lPort;
+ long lRate = 38400;
+ long lFileSize, lIdx;
+ char cChar, cFirstChar, *pcFile, cRateChar;
+ FILE *pFile;
+
+ //
+ // Make sure that a filename was specified.
+ //
+ if(argc < 2)
+ {
+ fprintf(stderr, "Usage: %s <filename> {<baud rate> {<comm port>}}\n", argv[0]);
+ return;
+ }
+
+ //
+ // If a baud rate was specified, then read it and make sure it is valid.
+ //
+ if(argc > 2)
+ {
+ lRate = atoi(argv[2]);
+ if((lRate != 9600) && (lRate != 19200) && (lRate != 28800) &&
+ (lRate != 38400) && (lRate != 57600) && (lRate != 115200))
+ {
+ fprintf(stderr, "Invalid baud rate: %d(%s).\n", lRate, argv[2]);
+ return;
+ }
+ }
+
+ //
+ // If a comm port was specified, then read it and make sure it is valid.
+ //
+ if(argc > 3)
+ {
+ lPort = OpenPort(argv[3]);
+ if (lPort < 0)
+ {
+ fprintf(stderr, "Can't open port: %s\n", argv[3]);
+ return;
+ }
+ } else
+ {
+ lPort = OpenPort(DEFAULT_PORT);
+ if (lPort < 0)
+ {
+ fprintf(stderr, "Can't open port: %s\n", DEFAULT_PORT);
+ return;
+ }
+ }
+
+ //
+ // Open the file to be downloaded.
+ //
+ pFile = fopen(argv[1], "rb");
+ if(!pFile)
+ {
+ fprintf(stderr, "Could not open file '%s'.\n", argv[1]);
+ return;
+ }
+
+ //
+ // Get the size of the file.
+ //
+ fseek(pFile, 0, SEEK_END);
+ lFileSize = ftell(pFile);
+ fseek(pFile, 0, SEEK_SET);
+
+ //
+ // Allocate memory to hold the file contents.
+ //
+ pcFile = (char *)malloc(lFileSize);
+ if(!pcFile)
+ {
+ fprintf(stderr, "Failed to allocate memory for the file.\n");
+ return;
+ }
+
+ //
+ // Read the contents of the file into memory.
+ //
+ if(fread(pcFile, 1, lFileSize, pFile) != lFileSize)
+ {
+ fprintf(stderr, "Failed to read file '%s'.\n", argv[1]);
+ return;
+ }
+
+ //
+ // Close the file.
+ //
+ fclose(pFile);
+
+ //
+ // Get the baud rate divisor for the given baud rate.
+ //
+ SetBaud(lPort, 9600);
+ switch(lRate)
+ {
+ case 9600:
+ {
+ cRateChar = '0';
+ break;
+ }
+
+ case 19200:
+ {
+ cRateChar = '1';
+ break;
+ }
+
+ case 28800:
+ {
+ cRateChar = '2';
+ break;
+ }
+
+ case 38400:
+ {
+ cRateChar = '3';
+ break;
+ }
+
+ case 57600:
+ {
+ cRateChar = '4';
+ break;
+ }
+
+ case 115200:
+ {
+ cRateChar = '5';
+ break;
+ }
+ }
+
+ //
+ // Empty out the input queue.
+ //
+#ifdef CHAR_READY_IS_RELIABLE
+ while(CharReady(lPort))
+ {
+ cChar = ReceiveChar(lPort);
+ }
+#endif
+
+ //
+ // Tell the user to reset the board.
+ //
+ fprintf(stderr, "Waiting for the board to wakeup...");
+
+ //
+ // Wait until we read a '<' from the comm port.
+ //
+ WaitFor(lPort, '<');
+
+ //
+ // Tell the user that we are downloading the boot code.
+ //
+ fprintf(stderr, "\nDownloading boot code...( 0%%)");
+
+ //
+ // Write the boot code to the comm port.
+ //
+ for(lIdx = 0; lIdx < 2048; lIdx++)
+ {
+ //
+ // Write this character.
+ //
+ SendChar(lPort, pcBoot[lIdx]);
+
+ //
+ // Periodically print out our progress.
+ //
+ if((lIdx & 127) == 127)
+ {
+ fprintf(stderr, "\b\b\b\b\b%3d%%)", ((lIdx + 1) * 100) / 2048);
+ }
+ }
+
+ //
+ // Wait until we read a '>' from the comm port.
+ //
+ WaitFor(lPort, '>');
+
+ //
+ // Wait until we read a '?' from the comm port.
+ //
+ WaitFor(lPort, '?');
+
+ //
+ // Tell the boot code to switch to the desired baud rate.
+ //
+ SendChar(lPort, 'B');
+ SendChar(lPort, cRateChar);
+
+ //
+ // Wait until the output buffer is empty.
+ //
+ WaitForOutputEmpty();
+
+ //
+ // Switch our baud rate to the desired rate.
+ //
+ SetBaud(lPort, lRate);
+
+ //
+ // Send a '-' character until we receive back a '?' character.
+ //
+ while(1)
+ {
+ //
+ // Send a '-' character.
+ //
+ SendChar(lPort, '-');
+
+ //
+ // Wait a little bit.
+ //
+ for(lIdx = 0; lIdx < 1024 * 1024; lIdx++)
+ {
+ }
+
+ //
+ // See if there is a character waiting to be read.
+ //
+#ifdef CHAR_READY_IS_RELIABLE
+ if(CharReady(lPort))
+#else
+ if (1)
+#endif
+ {
+ //
+ // Read the character.
+ //
+ cChar = ReceiveChar(lPort);
+
+ //
+ // Quit waiting if this is a '?'.
+ //
+ if(cChar == '?')
+ {
+ break;
+ }
+ }
+ }
+
+ //
+ // Empty out the input queue.
+ //
+#ifdef CHAR_READY_IS_RELIABLE
+ while(CharReady(lPort))
+ {
+ cChar = ReceiveChar(lPort);
+ }
+#endif
+
+ //
+ // Send the program flash command.
+ //
+ SendChar(lPort, 'F');
+
+ //
+ // We always program the flash at location 0.
+ //
+ SendChar(lPort, 0);
+ SendChar(lPort, 0);
+ SendChar(lPort, 0);
+ SendChar(lPort, 0);
+
+ //
+ // Send the length of the data file.
+ //
+ SendChar(lPort, (char)(lFileSize & 0xFF));
+ SendChar(lPort, (char)((lFileSize >> 8) & 0xFF));
+ SendChar(lPort, (char)((lFileSize >> 16) & 0xFF));
+ SendChar(lPort, (char)((lFileSize >> 24) & 0xFF));
+
+ //
+ // Tell the user that we are downloading the file data.
+ //
+ fprintf(stderr, "\nDownloading file data...( 0%%)");
+
+ //
+ // Send the actual data in the file.
+ //
+ for(lIdx = 0; lIdx < lFileSize; lIdx++)
+ {
+ //
+ // Send this byte.
+ //
+ SendChar(lPort, pcFile[lIdx]);
+
+ //
+ // Periodically print out our progress.
+ //
+ if((lIdx & 127) == 127)
+ {
+ fprintf(stderr, "\b\b\b\b\b%3d%%)", ((lIdx + 1) * 100) / lFileSize);
+ }
+ }
+
+ //
+ // Tell the user that we are erasing the flash.
+ //
+ fprintf(stderr, "\nErasing the flash...( 0%%)");
+
+ //
+ // Wait until the flash has been erased.
+ //
+ cFirstChar = cChar = ReceiveChar(lPort);
+ while(cChar != '1')
+ {
+ //
+ // Print out our progress.
+ //
+ fprintf(stderr, "\b\b\b\b\b%3d%%)",
+ ((cFirstChar - cChar + 1) * 100) / (cFirstChar - '0'));
+ fprintf(stderr, "%c\n", cChar);
+
+ //
+ // Read a character from the boot code.
+ //
+ cChar = ReceiveChar(lPort);
+ }
+
+ //
+ // Tell the user that we are programming the flash.
+ //
+ fprintf(stderr, "\nProgramming the flash...( 0%%)");
+
+ //
+ // Wait until the flash has been programmed.
+ //
+ lIdx = 0;
+ while(1)
+ {
+ //
+ // Read a character from the boot code.
+ //
+ cChar = ReceiveChar(lPort);
+
+ //
+ // If the character is a '?', then we are done.
+ //
+ if(cChar == '?')
+ {
+ break;
+ }
+
+ //
+ // Print out our progress.
+ //
+ fprintf(stderr, "\b\b\b\b\b%3d%%)",
+ (++lIdx * 100) / ((lFileSize + 1023) / 1024));
+ }
+
+ //
+ // Tell the user we are done.
+ //
+ fprintf(stderr, "\nSuccessfully downloaded '%s'.\n", argv[1]);
+}
+
diff --git a/ecos/packages/hal/arm/edb7xxx/current/support/io.c b/ecos/packages/hal/arm/edb7xxx/current/support/io.c
new file mode 100644
index 0000000..7ec68c9
--- /dev/null
+++ b/ecos/packages/hal/arm/edb7xxx/current/support/io.c
@@ -0,0 +1,172 @@
+//==========================================================================
+//
+// io.c
+//
+// Linux I/O support for Cirrus Logic EDB7xxx eval board tools
+//
+//==========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//==========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): gthomas
+// Contributors: gthomas
+// Date: 1999-06-16
+// Description: Linux I/O support for Cirrus Logic EDB7xxx FLASH tools
+//####DESCRIPTIONEND####
+
+//
+// io.c - I/O functions
+//
+
+#include <stdio.h>
+#include <sys/ioctl.h>
+#include <fcntl.h>
+#include <termios.h>
+#include <errno.h>
+
+char _ReceiveChar(long port)
+{
+ char buf;
+ int res;
+ // Port is in non-blocking mode, this needs to have a loop
+ do {
+ res = read(port, &buf, 1);
+ } while (res < 0);
+// printf("Read: %c\n", buf);
+ return buf;
+}
+
+static void
+uspin(int len)
+{
+ volatile int cnt;
+ while (--len >= 0) {
+ for (cnt = 1; cnt < 2000; cnt++) ;
+ }
+}
+
+void _SendChar(long port, char ch)
+{
+ char buf = ch;
+ write(port, &buf, 1);
+// printf("Send: %x\n", ch);
+// usleep(100);
+ uspin(100);
+}
+
+void _SetBaud(long port, long reqRate)
+{
+ struct termios buf;
+ int rate;
+
+ // Get original configuration
+ if (tcgetattr(port, &buf)) {
+ fprintf(stderr, "Can't get port config\n");
+ return;
+ }
+
+ // Reset to raw.
+ buf.c_iflag &= ~(IGNBRK|BRKINT|PARMRK|ISTRIP
+ |INLCR|IGNCR|ICRNL|IXON);
+ buf.c_oflag &= ~OPOST;
+ buf.c_lflag &= ~(ECHO|ECHONL|ICANON|ISIG|IEXTEN);
+ buf.c_cflag &= ~(CSIZE|PARENB);
+ buf.c_cflag |= CS8;
+
+ // Set baud rate.
+ switch (reqRate) {
+ case 9600:
+ rate = B9600;
+ break;
+ case 38400:
+ rate = B38400;
+ break;
+ case 57600:
+ rate = B57600;
+ break;
+ case 115200:
+ rate = B115200;
+ break;
+ }
+ cfsetispeed(&buf, rate);
+ cfsetospeed(&buf, rate);
+
+ // Set data bits.
+ buf.c_cflag &= ~CSIZE;
+ buf.c_cflag |= CS8;
+
+ // Set stop bits.
+ buf.c_cflag &= ~CSTOPB; // One stop
+
+ // Set parity.
+ buf.c_cflag &= ~(PARENB | PARODD); // no parity.
+
+ // Set the new settings
+ if (tcsetattr(port, TCSADRAIN, &buf)) {
+ fprintf(stderr, "Error: tcsetattr\n");
+ return;
+ }
+
+ tcdrain(port);
+ usleep(1000000/10*2);
+ sleep(2);
+}
+
+int _CharReady(long port)
+{
+#ifdef __CYGWIN__
+ // Windows doesn't support the below ioctl
+ return 1;
+#else
+ int n, res;
+ res = ioctl(port, FIONREAD, &n);
+ if (res < 0) {
+ fprintf(stderr, "I/O error: %s\n", strerror(errno));
+ exit(1);
+ }
+ return n; // Non-zero if characters ready to read
+#endif
+}
+
+void _WaitForOutputEmpty(long port)
+{
+ usleep(2000000);
+}
+
+long _OpenPort(char *name)
+{
+ int fd;
+ fd = open(name, O_RDWR|O_NONBLOCK);
+ return fd;
+}
diff --git a/ecos/packages/hal/arm/edb7xxx/current/tests/dram_test.c b/ecos/packages/hal/arm/edb7xxx/current/tests/dram_test.c
new file mode 100644
index 0000000..f13655b
--- /dev/null
+++ b/ecos/packages/hal/arm/edb7xxx/current/tests/dram_test.c
@@ -0,0 +1,347 @@
+//==========================================================================
+//
+// dram_test.c
+//
+// eCos generic DRAM test code
+//
+//==========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//==========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): gthomas
+// Contributors: gthomas
+// Date: 1999-10-22
+// Description: Tool used to test DRAM on eval boards
+//####DESCRIPTIONEND####
+
+#include <pkgconf/system.h>
+#include <cyg/infra/testcase.h>
+
+#ifdef CYGPKG_KERNEL
+
+#include <pkgconf/kernel.h> // Configuration header
+
+#ifdef CYGFUN_KERNEL_API_C
+
+#include <cyg/kernel/kapi.h>
+#include <cyg/infra/diag.h>
+
+#include <cyg/hal/hal_arch.h>
+#include CYGHWR_MEMORY_LAYOUT_H // Memory layout
+
+#ifndef FALSE
+#define FALSE 0
+#define TRUE 1
+#endif
+
+#define STACK_SIZE CYGNUM_HAL_STACK_SIZE_MINIMUM
+static char stack[STACK_SIZE];
+static cyg_thread thread_data;
+static cyg_handle_t thread_handle;
+
+extern char __bss_end;
+int total_errors;
+int run_errors;
+int error_count;
+
+#define MAX_ERRORS 5
+#define NUM_RUNS 4
+#define REFRESH_TIME 5
+
+int decay_time[] = { 50, 100, 200, 500, 1000 };
+#define NUM_DECAY sizeof(decay_time)/sizeof(decay_time[0])
+
+// FUNCTIONS
+
+static void
+new_test(void)
+{
+ error_count = 0;
+}
+
+static void
+report_error(void *addr, cyg_uint32 actual, cyg_uint32 expected)
+{
+ total_errors++;
+ run_errors++;
+ if (++error_count > MAX_ERRORS) return;
+ diag_printf(" 0x%08x: expected - 0x%08x, actual - 0x%08x\n",
+ addr, expected, actual);
+}
+
+// Fill longwords with their own address and verify
+
+static void
+addr_test(cyg_uint32 start, cyg_uint32 end)
+{
+ cyg_uint32 *mp;
+
+ new_test();
+ diag_printf("-- Address test\n");
+ for (mp = (cyg_uint32 *)start; mp < (cyg_uint32 *)end; mp++) {
+ *mp = (cyg_uint32)mp;
+ }
+ for (mp = (cyg_uint32 *)start; mp < (cyg_uint32 *)end; mp++) {
+ if (*mp != (cyg_uint32)mp) {
+ report_error(mp, *mp, (cyg_uint32)mp);
+ }
+ }
+}
+
+// Fill longwords with zeros
+
+static void
+zeros_test(cyg_uint32 start, cyg_uint32 end)
+{
+ cyg_uint32 *mp;
+
+ new_test();
+ diag_printf("-- Zeros test\n");
+ for (mp = (cyg_uint32 *)start; mp < (cyg_uint32 *)end; mp++) {
+ *mp = (cyg_uint32)0;
+ }
+ for (mp = (cyg_uint32 *)start; mp < (cyg_uint32 *)end; mp++) {
+ if (*mp != (cyg_uint32)0) {
+ report_error(mp, *mp, (cyg_uint32)0);
+ }
+ }
+}
+
+// Fill longwords with all ones
+
+static void
+ones_test(cyg_uint32 start, cyg_uint32 end)
+{
+ cyg_uint32 *mp;
+
+ new_test();
+ diag_printf("-- Ones test\n");
+ for (mp = (cyg_uint32 *)start; mp < (cyg_uint32 *)end; mp++) {
+ *mp = (cyg_uint32)0xFFFFFFFF;
+ }
+ for (mp = (cyg_uint32 *)start; mp < (cyg_uint32 *)end; mp++) {
+ if (*mp != (cyg_uint32)0xFFFFFFFF) {
+ report_error(mp, *mp, (cyg_uint32)0xFFFFFFFF);
+ }
+ }
+}
+
+// Fill longwords with a "walking" bit
+
+static void
+walking_bit_test(cyg_uint32 start, cyg_uint32 end)
+{
+ cyg_uint32 *mp;
+ cyg_uint32 bit;
+
+ new_test();
+ diag_printf("-- Walking test\n");
+ bit = 1;
+ for (mp = (cyg_uint32 *)start; mp < (cyg_uint32 *)end; mp++) {
+ *mp = (cyg_uint32)bit;
+ bit <<= 1;
+ if (bit == 0) bit = 1;
+ }
+ bit = 1;
+ for (mp = (cyg_uint32 *)start; mp < (cyg_uint32 *)end; mp++) {
+ if (*mp != (cyg_uint32)bit) {
+ report_error(mp, *mp, (cyg_uint32)bit);
+ }
+ bit <<= 1;
+ if (bit == 0) bit = 1;
+ }
+}
+
+// Fill longwords with an alternating pattern
+
+static void
+pattern_test(cyg_uint32 start, cyg_uint32 end)
+{
+ cyg_uint32 *mp;
+ cyg_uint32 pat;
+
+ new_test();
+ diag_printf("-- Pattern test\n");
+ pat = 0x55555555;
+ for (mp = (cyg_uint32 *)start; mp < (cyg_uint32 *)end; mp++) {
+ *mp = (cyg_uint32)pat;
+ }
+ for (mp = (cyg_uint32 *)start; mp < (cyg_uint32 *)end; mp++) {
+ if (*mp != (cyg_uint32)pat) {
+ report_error(mp, *mp, (cyg_uint32)pat);
+ }
+ }
+ pat = 0xAAAAAAAA;
+ for (mp = (cyg_uint32 *)start; mp < (cyg_uint32 *)end; mp++) {
+ *mp = (cyg_uint32)pat;
+ }
+ for (mp = (cyg_uint32 *)start; mp < (cyg_uint32 *)end; mp++) {
+ if (*mp != (cyg_uint32)pat) {
+ report_error(mp, *mp, (cyg_uint32)pat);
+ }
+ }
+}
+
+// Verify if refresh works
+
+static void
+refresh_test(cyg_uint32 start, cyg_uint32 end)
+{
+ cyg_uint32 *mp;
+ cyg_uint32 pat;
+
+ new_test();
+ diag_printf("-- Refresh test\n");
+ pat = 0x55555555;
+ for (mp = (cyg_uint32 *)start; mp < (cyg_uint32 *)end; mp++) {
+ *mp = (cyg_uint32)pat;
+ }
+ cyg_thread_delay(REFRESH_TIME*100);
+ for (mp = (cyg_uint32 *)start; mp < (cyg_uint32 *)end; mp++) {
+ if (*mp != (cyg_uint32)pat) {
+ report_error(mp, *mp, (cyg_uint32)pat);
+ }
+ }
+ pat = 0xAAAAAAAA;
+ for (mp = (cyg_uint32 *)start; mp < (cyg_uint32 *)end; mp++) {
+ *mp = (cyg_uint32)pat;
+ }
+ cyg_thread_delay(REFRESH_TIME*100);
+ for (mp = (cyg_uint32 *)start; mp < (cyg_uint32 *)end; mp++) {
+ if (*mp != (cyg_uint32)pat) {
+ report_error(mp, *mp, (cyg_uint32)pat);
+ }
+ }
+}
+
+// See how long we can "sleep" before refresh fails
+
+static void
+decay_test(cyg_uint32 start, cyg_uint32 end)
+{
+ cyg_uint32 *mp;
+ cyg_uint32 pat;
+ int i;
+
+ diag_printf("-- Decay test\n");
+ for (i = 0; i < NUM_DECAY; i++) {
+ diag_printf(" ... %d.%02d sec delay\n", decay_time[i]/100, decay_time[i]%100);
+ new_test();
+ pat = 0x55555555;
+ for (mp = (cyg_uint32 *)start; mp < (cyg_uint32 *)end; mp++) {
+ *mp = (cyg_uint32)pat;
+ }
+ cyg_thread_delay(decay_time[i]);
+ for (mp = (cyg_uint32 *)start; mp < (cyg_uint32 *)end; mp++) {
+ if (*mp != (cyg_uint32)pat) {
+ report_error(mp, *mp, (cyg_uint32)pat);
+ }
+ }
+ pat = 0xAAAAAAAA;
+ for (mp = (cyg_uint32 *)start; mp < (cyg_uint32 *)end; mp++) {
+ *mp = (cyg_uint32)pat;
+ }
+ cyg_thread_delay(decay_time[i]);
+ for (mp = (cyg_uint32 *)start; mp < (cyg_uint32 *)end; mp++) {
+ if (*mp != (cyg_uint32)pat) {
+ report_error(mp, *mp, (cyg_uint32)pat);
+ }
+ }
+ diag_printf(" ... %d errors\n", error_count);
+ }
+}
+
+
+static void
+dram_exercise(cyg_addrword_t p)
+{
+ cyg_uint32 start_DRAM, end_DRAM;
+ int i;
+
+ CYG_TEST_INIT();
+
+ end_DRAM = CYGMEM_REGION_ram+CYGMEM_REGION_ram_SIZE;
+ start_DRAM = ((cyg_uint32)&__bss_end + 0x00000FFF) & 0xFFFFF000;
+ diag_printf("DRAM test - start: 0x%08x, end: 0x%08x\n", start_DRAM, end_DRAM);
+
+ for (i = 0; i < NUM_RUNS; i++) {
+ diag_printf("\n*** Start run #%d of %d\n", i+1, NUM_RUNS);
+ run_errors = 0;
+ addr_test(start_DRAM, end_DRAM);
+ ones_test(start_DRAM, end_DRAM);
+ zeros_test(start_DRAM, end_DRAM);
+ walking_bit_test(start_DRAM, end_DRAM);
+ pattern_test(start_DRAM, end_DRAM);
+ refresh_test(start_DRAM, end_DRAM);
+ decay_test(start_DRAM, end_DRAM);
+ diag_printf("\n*** End run, %d errors, %d total errors\n", run_errors, total_errors);
+ }
+
+ CYG_TEST_PASS_FINISH("DRAM testing complete");
+}
+
+externC void
+cyg_start( void )
+{
+ // Create a main thread, so we can run the scheduler and have time 'pass'
+ cyg_thread_create(10, // Priority - just a number
+ dram_exercise, // entry
+ 0, // entry parameter
+ "DRAM test", // Name
+ &stack[0], // Stack
+ STACK_SIZE, // Size
+ &thread_handle, // Handle
+ &thread_data // Thread data structure
+ );
+ cyg_thread_resume(thread_handle); // Start it
+ cyg_scheduler_start();
+} // cyg_package_start()
+
+#else /* def CYGFUN_KERNEL_API_C */
+# define NA_MSG "Kernel C API layer disabled"
+#endif
+
+#else /* def CYGPKG_KERNEL */
+# define NA_MSG "No kernel"
+#endif
+
+
+#ifdef NA_MSG
+externC void
+cyg_start( void )
+{
+ CYG_TEST_INIT();
+ CYG_TEST_NA(NA_MSG);
+}
+#endif
diff --git a/ecos/packages/hal/arm/gps4020/current/ChangeLog b/ecos/packages/hal/arm/gps4020/current/ChangeLog
new file mode 100644
index 0000000..0156fd6
--- /dev/null
+++ b/ecos/packages/hal/arm/gps4020/current/ChangeLog
@@ -0,0 +1,67 @@
+2009-01-31 Bart Veer <bartv@ecoscentric.com>
+
+ * cdl/hal_arm_gps4020.cdl: update compiler flags for gcc 4.x
+
+2009-01-24 Bart Veer <bartv@ecoscentric.com>
+
+ * cdl/hal_arm_gps4020.cdl: switch from arm-elf-gcc to
+ arm-eabi-gcc.
+
+2004-04-22 Jani Monoses <jani@iv.ro>
+
+ * cdl/hal_arm_gps4020.cdl :
+ Invoke tail with stricter syntax that works in latest coreutils.
+
+2003-12-05 Andrew Lunn <andrew.lunn@ascom.ch>
+
+ * include/hal_diag.h: hal_delay_us() is a C function.
+
+2003-11-10 Gary Thomas <gary@mlbassoc.com>
+
+ * support/download/tty.c:
+ * support/download/gps4020_start.S:
+ * support/download/gps4020_download.c:
+ * support/download/download_bin.py:
+ * support/download/download.py:
+ * support/download/arm.ld:
+ * support/download/Makefile:
+ * src/hal_diag.c:
+ * src/gps4020_misc.c:
+ * misc/redboot_ROM.ecm:
+ * misc/redboot_RAM.ecm:
+ * include/pkgconf/mlt_arm_gps4020_rom.ldi:
+ * include/pkgconf/mlt_arm_gps4020_rom.h:
+ * include/pkgconf/mlt_arm_gps4020_ram.ldi:
+ * include/pkgconf/mlt_arm_gps4020_ram.h:
+ * include/plf_stub.h:
+ * include/plf_io.h:
+ * include/hal_platform_setup.h:
+ * include/hal_platform_ints.h:
+ * include/hal_diag.h:
+ * include/hal_cache.h:
+ * include/gps4020.h:
+ * cdl/hal_arm_gps4020.cdl: New package - support for GPS-4020
+
+//===========================================================================
+// ####GPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 2 or (at your option) any
+// later version.
+//
+// This program is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the
+// Free Software Foundation, Inc., 51 Franklin Street,
+// Fifth Floor, Boston, MA 02110-1301, USA.
+// -------------------------------------------
+// ####GPLCOPYRIGHTEND####
+//===========================================================================
diff --git a/ecos/packages/hal/arm/gps4020/current/cdl/hal_arm_gps4020.cdl b/ecos/packages/hal/arm/gps4020/current/cdl/hal_arm_gps4020.cdl
new file mode 100644
index 0000000..2445145
--- /dev/null
+++ b/ecos/packages/hal/arm/gps4020/current/cdl/hal_arm_gps4020.cdl
@@ -0,0 +1,331 @@
+# ====================================================================
+#
+# hal_arm_gps4020.cdl
+#
+# GPS4020 board HAL package configuration data
+#
+# ====================================================================
+## ####ECOSGPLCOPYRIGHTBEGIN####
+## -------------------------------------------
+## This file is part of eCos, the Embedded Configurable Operating System.
+## Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
+##
+## eCos is free software; you can redistribute it and/or modify it under
+## the terms of the GNU General Public License as published by the Free
+## Software Foundation; either version 2 or (at your option) any later
+## version.
+##
+## eCos is distributed in the hope that it will be useful, but WITHOUT
+## ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+## FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+## for more details.
+##
+## You should have received a copy of the GNU General Public License
+## along with eCos; if not, write to the Free Software Foundation, Inc.,
+## 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+##
+## As a special exception, if other files instantiate templates or use
+## macros or inline functions from this file, or you compile this file
+## and link it with other works to produce a work based on this file,
+## this file does not by itself cause the resulting work to be covered by
+## the GNU General Public License. However the source code for this file
+## must still be made available in accordance with section (3) of the GNU
+## General Public License v2.
+##
+## This exception does not invalidate any other reasons why a work based
+## on this file might be covered by the GNU General Public License.
+## -------------------------------------------
+## ####ECOSGPLCOPYRIGHTEND####
+# ====================================================================
+######DESCRIPTIONBEGIN####
+#
+# Author(s): bartv
+# Original data: gthomas
+# Contributors:
+# Date: 1999-06-13
+#
+#####DESCRIPTIONEND####
+#
+# ====================================================================
+
+cdl_package CYGPKG_HAL_ARM_GPS4020 {
+ display "GPS4020 evaluation board"
+ parent CYGPKG_HAL_ARM
+ define_header hal_arm_gps4020.h
+ include_dir cyg/hal
+ hardware
+ description "
+ The gps4020 HAL package provides the support needed to run
+ eCos on a ARM GPS4020-1 eval board."
+
+ compile hal_diag.c gps4020_misc.c
+
+ implements CYGINT_HAL_DEBUG_GDB_STUBS
+ implements CYGINT_HAL_DEBUG_GDB_STUBS_BREAK
+ implements CYGINT_HAL_VIRTUAL_VECTOR_SUPPORT
+ implements CYGINT_HAL_ARM_ARCH_ARM7
+ implements CYGINT_HAL_TESTS_NO_CACHES
+
+ define_proc {
+ puts $::cdl_system_header "#define CYGBLD_HAL_TARGET_H <pkgconf/hal_arm.h>"
+ puts $::cdl_system_header "#define CYGBLD_HAL_PLATFORM_H <pkgconf/hal_arm_gps4020.h>"
+ puts $::cdl_header "#define CYGPRI_KERNEL_TESTS_DHRYSTONE_PASSES 100000"
+ puts $::cdl_header "#define HAL_PLATFORM_CPU \"ARM7TDMI\""
+ puts $::cdl_header "#define HAL_PLATFORM_BOARD \"GPS-4020\""
+ 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 GPS4020-1 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 onboard
+ debug software such as Angel or eCos GDB stubs. Select 'rom'
+ when building a stand-alone application which will be put
+ into ROM."
+ }
+
+ 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"
+ active_if CYGPRI_HAL_VIRTUAL_VECTOR_DEBUG_CHANNEL_CONFIGURABLE
+ flavor data
+ legal_values 0 to CYGNUM_HAL_VIRTUAL_VECTOR_COMM_CHANNELS-1
+ default_value 0
+ description "
+ The GPS4020 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"
+ active_if CYGPRI_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_CONFIGURABLE
+ flavor data
+ legal_values 0 to CYGNUM_HAL_VIRTUAL_VECTOR_COMM_CHANNELS-1
+ default_value 0
+ description "
+ The GPS4020 board has only one serial port. This option
+ chooses which port will be used for diagnostic output."
+ }
+
+ # 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
+ default_value 1000000000
+ }
+ cdl_option CYGNUM_HAL_RTC_DENOMINATOR {
+ display "Real-time clock denominator"
+ flavor data
+ default_value 100
+ }
+ cdl_option CYGNUM_HAL_RTC_PERIOD {
+ display "Real-time clock period"
+ flavor data
+ default_value ((CYGNUM_HAL_RTC_NUMERATOR/1000)/CYGNUM_HAL_RTC_DENOMINATOR)
+ }
+ }
+
+ 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 { "arm-eabi"}
+ 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 { CYGBLD_GLOBAL_WARNFLAGS . CYGBLD_ARCH_CFLAGS .
+ "-mcpu=arm7tdmi -g -O2 -ffunction-sections -fdata-sections -fno-rtti -fno-exceptions " }
+ 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 { CYGBLD_ARCH_LDFLAGS . "-mcpu=arm7tdmi -Wl,--gc-sections -Wl,-static -g -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 CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS
+ requires ! CYGBLD_BUILD_COMMON_GDB_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. This is a bit convoluted as it involves prepending
+ the image with a special header used by the GPS4020 firmware
+ to keep track of multiple ROM images. This header includes
+ a checksum making it necessary to build twice."
+
+ make -priority 320 {
+ <PREFIX>/bin/gdb_module.bin : <PACKAGE>/src/gdb_module.c
+ @sh -c "mkdir -p src $(dir $@)"
+ # First build version with no checksum.
+ $(CC) -c $(INCLUDE_PATH) -Wp,-MD,deps.tmp -I$(dir $<) $(CFLAGS) -o src/gdb_module_ncs.o $<
+ $(CC) $(LDFLAGS) -L$(PREFIX)/lib -Ttarget.ld -o src/gdb_module_ncs.tmp src/gdb_module_ncs.o
+ $(OBJCOPY) --strip-debug --change-addresses=0xFBFF4000 src/gdb_module_ncs.tmp src/gdb_module_ncs.img
+ $(OBJCOPY) -O binary src/gdb_module_ncs.img src/gdb_module_ncs.bin
+ @rm src/gdb_module_ncs.tmp src/gdb_module_ncs.img
+ # Prepare dependency file
+ @echo $@ ": \\" > $(notdir $@).deps
+ @echo $(wildcard $(PREFIX)/lib/*) " \\" >> $(notdir $@).deps
+ @tail -n +2 deps.tmp >> $(notdir $@).deps
+ @echo >> $(notdir $@).deps
+ @rm deps.tmp
+ # Then build version with checksum from previously built image.
+ @cp $(dir $<)flash_cksum.tcl src/
+ $(CC) -c -DCHECKSUM=`src/flash_cksum.tcl src/gdb_module_ncs.bin` $(INCLUDE_PATH) -I$(dir $<) $(CFLAGS) -o src/gdb_module.o $<
+ $(CC) $(LDFLAGS) -L$(PREFIX)/lib -Ttarget.ld -o src/gdb_module.tmp src/gdb_module.o
+ $(OBJCOPY) --strip-debug --change-addresses=0xFBFF4000 src/gdb_module.tmp $(@:.bin=.img)
+ $(OBJCOPY) -O binary $(@:.bin=.img) src/gdb_module.bin
+ uuencode src/gdb_module.bin gdb_module.bin | tr '`' ' ' > $(@:.bin=.img.UU)
+ @rm src/gdb_module.tmp src/gdb_module_ncs.bin
+ @mv src/gdb_module.bin $@
+ }
+ }
+ }
+
+ 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 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 CYGHWR_MEMORY_LAYOUT {
+ display "Memory layout"
+ flavor data
+ no_define
+ calculated { CYG_HAL_STARTUP == "RAM" ? "arm_gps4020_ram" : \
+ CYG_HAL_STARTUP == "ROM" ? "arm_gps4020_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_gps4020_ram.ldi>" : \
+ CYG_HAL_STARTUP == "ROM" ? "<pkgconf/mlt_arm_gps4020_rom.ldi>" : \
+ "<pkgconf/BAD>" }
+ }
+
+ 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_gps4020_ram.h>" : \
+ CYG_HAL_STARTUP == "ROM" ? "<pkgconf/mlt_arm_gps4020_rom.h>" : \
+ "<pkxgconf/BAD>" }
+ }
+ }
+
+ cdl_component CYGPKG_REDBOOT_HAL_OPTIONS {
+ display "Redboot HAL options"
+ flavor none
+ no_define
+ parent CYGPKG_REDBOOT
+ active_if CYGPKG_REDBOOT
+ description "
+ This option lists the target's requirements for a valid Redboot
+ configuration."
+
+ # The backup image is not needed, since ROMRAM is the normal
+ # RedBoot startup type.
+ requires {!CYGPKG_REDBOOT_FLASH || CYGOPT_REDBOOT_FIS_REDBOOT_BACKUP == 0}
+
+ # RedBoot details
+ requires { !CYGBLD_BUILD_REDBOOT_WITH_EXEC }
+
+ 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 the various relocated SREC images needed
+ for flash updating."
+
+ make -priority 325 {
+ <PREFIX>/bin/redboot.bin : <PREFIX>/bin/redboot.elf
+ $(OBJCOPY) -O srec $< $(@:.bin=.srec)
+ $(OBJCOPY) -O binary $< $@
+ }
+ }
+ }
+
+}
diff --git a/ecos/packages/hal/arm/gps4020/current/include/gps4020.h b/ecos/packages/hal/arm/gps4020/current/include/gps4020.h
new file mode 100644
index 0000000..5438a8d
--- /dev/null
+++ b/ecos/packages/hal/arm/gps4020/current/include/gps4020.h
@@ -0,0 +1,175 @@
+//==========================================================================
+//
+// gps4020.h
+//
+// GPS-4020 Platform specific registers, etc
+//
+//==========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 2003 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//==========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): gthomas
+// Contributors: gthomas
+// Date: 2003-10-01
+// Purpose: Platform specific registers, etc
+// Description:
+//
+//####DESCRIPTIONEND####
+//
+//========================================================================*/
+
+#ifndef _GPS4020_H_
+#define _GPS4020_H_
+
+#define GPS4020_WATCHDOG 0xE0004000
+#define GPS4020_INTC 0xE0006000
+#define GPS4020_TC1 0xE000E000
+#define GPS4020_TC2 0xE000F000
+#define GPS4020_UART1 0xE0018000
+#define GPS4020_UART2 0xE0019000
+
+#ifndef __ASSEMBLER__
+struct _gps4020_watchdog {
+ unsigned long control;
+ unsigned long period;
+ unsigned long current; // Only accessible in TEST mode
+ unsigned long reset;
+};
+#endif
+#define GPS4020_WATCHDOG_RESET 0xECD9F7BD
+
+#ifndef __ASSEMBLER__
+struct _gps4020_uart {
+ unsigned char control;
+ unsigned char _fill0[3];
+ unsigned char mode;
+ unsigned char _fill1[3];
+ unsigned char baud;
+ unsigned char _fill2[3];
+ unsigned char status;
+ unsigned char _fill3[3];
+ unsigned char TxRx;
+ unsigned char _fill4[3];
+ unsigned char modem_control;
+ unsigned char _fill5[3+8];
+ unsigned char modem_status;
+ unsigned char _fill6[3];
+};
+#endif
+
+// Serial control
+#define SCR_MIE 0x80 // Modem interrupt enable
+#define SCR_EIE 0x40 // Error interrupt enable
+#define SCR_TIE 0x20 // Transmit interrupt enable
+#define SCR_RIE 0x10 // Receive interrupt enable
+#define SCR_FCT 0x08 // Flow type 0=>software, 1=>hardware
+#define SCR_CLK 0x04 // Clock source 0=internal, 1=external
+#define SCR_TEN 0x02 // Transmitter enabled
+#define SCR_REN 0x01 // Receiver enabled
+// Serial mode
+#define SMR_DIV(x) ((x)<<4) // Clock divisor
+#define SMR_STOP 0x08 // Stop bits 0=>one, 1=>two
+#define SMR_STOP_1 0x00
+#define SMR_STOP_2 0x08
+#define SMR_PARITY 0x04 // Parity mode 0=>even, 1=odd
+#define SMR_PARITY_EVEN 0x00
+#define SMR_PARITY_ODD 0x04
+#define SMR_PARITY_ON 0x02 // Parity checked
+#define SMR_PARITY_OFF 0x00
+#define SMR_LENGTH 0x01 // Character length
+#define SMR_LENGTH_8 0x00
+#define SMR_LENGTH_7 0x01
+// Serial status
+#define SSR_MSS 0x80 // Modem status has changed
+#define SSR_OE 0x40 // Overrun error
+#define SSR_FE 0x20 // Framing error
+#define SSR_PE 0x10 // Parity error
+#define SSR_TxActive 0x08 // Transmitter is active
+#define SSR_RxActive 0x04 // Receiver is active
+#define SSR_TxEmpty 0x02 // Tx buffer is empty
+#define SSR_RxFull 0x01 // Rx buffer contains data
+// Modem control
+#define SMR_CFG 0x08 // Configuration 0=>normal, 1=>null
+#define SMR_MSU 0x04 // Modem status update 1=>enable
+#define SMR_DTR 0x02 // Assert DTR
+#define SMR_RTS 0x01 // Assert RTS
+
+#ifndef __ASSEMBLER__
+struct _gps4020_timer {
+ struct {
+ unsigned long control;
+ unsigned long reload;
+ unsigned long current;
+ unsigned long _reserved[5];
+ } tc[2];
+};
+#endif
+
+// Timer/counter control
+#define TC_CTL_IE (1<<22) // Interrupt enable
+#define TC_CTL_OS (1<<21) // Overflow (count through 0)
+#define TC_CTL_MODE (3<<19) // Timer/counter mode
+#define TC_CTL_MODE_HALT (0<<19)
+#define TC_CTL_MODE_FREE (1<<19)
+#define TC_CTL_MODE_RELOAD (2<<19)
+#define TC_CTL_MODE_PWM (3<<19)
+#define TC_CTL_SCR (1<<18) // Software control request
+#define TC_CTL_SCR_HALT (0<<18)
+#define TC_CTL_SCR_COUNT (1<<18)
+#define TC_CTL_HEP (1<<17) // Hardware enable polarity
+#define TC_CTL_STAT (1<<16) // Current status
+
+#define TC_CLOCK_BASE 20 // Assumes 20MHz system clock
+
+#ifndef __ASSEMBLER__
+struct _gps4020_intc {
+ unsigned long sources; // Active interrupt sources
+ unsigned long polarity; // 0=>active low
+ unsigned long active;
+ unsigned long trigger; // 0=>level, 1=>edge
+ unsigned long reset; // reset edge triggers
+ unsigned long enable; // 1=>enable
+ unsigned long status; // masked (active and enabled)
+ unsigned long type; // 0=>IRQ, 1=>FIQ
+ unsigned long FIQ_status;
+ unsigned long IRQ_status;
+ unsigned long FIQ_encoded;
+ unsigned long IRQ_encoded;
+};
+#endif
+
+#ifndef __ASSEMBLER__
+externC void _gps4020_watchdog(bool is_idle);
+#endif
+#endif // _GPS4020_H_
diff --git a/ecos/packages/hal/arm/gps4020/current/include/hal_cache.h b/ecos/packages/hal/arm/gps4020/current/include/hal_cache.h
new file mode 100644
index 0000000..5143162
--- /dev/null
+++ b/ecos/packages/hal/arm/gps4020/current/include/hal_cache.h
@@ -0,0 +1,191 @@
+#ifndef CYGONCE_HAL_CACHE_H
+#define CYGONCE_HAL_CACHE_H
+
+//=============================================================================
+//
+// hal_cache.h
+//
+// HAL cache control API
+//
+//=============================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): nickg, gthomas
+// Contributors: nickg, gthomas
+// Date: 1998-09-28
+// 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 <cyg/infra/cyg_type.h>
+
+//-----------------------------------------------------------------------------
+// Cache dimensions
+
+// Data cache
+//#define HAL_DCACHE_SIZE 0 // Size of data cache in bytes
+//#define HAL_DCACHE_LINE_SIZE 0 // Size of a data cache line
+//#define HAL_DCACHE_WAYS 0 // Associativity of the cache
+
+// Instruction cache
+//#define HAL_ICACHE_SIZE 0 // Size of cache in bytes
+//#define HAL_ICACHE_LINE_SIZE 0 // Size of a cache line
+//#define HAL_ICACHE_WAYS 0 // 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
+#define HAL_DCACHE_ENABLE()
+
+// Disable the data cache
+#define HAL_DCACHE_DISABLE()
+
+// Invalidate the entire cache
+#define HAL_DCACHE_INVALIDATE_ALL()
+
+// Synchronize the contents of the cache with memory.
+#define HAL_DCACHE_SYNC()
+
+// Purge contents of data cache
+#define HAL_DCACHE_PURGE_ALL()
+
+// Query the state of the data cache (does not affect the caching)
+#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 (does not affect the caching)
+#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_HAL_CACHE_H
+// End of hal_cache.h
diff --git a/ecos/packages/hal/arm/gps4020/current/include/hal_diag.h b/ecos/packages/hal/arm/gps4020/current/include/hal_diag.h
new file mode 100644
index 0000000..1fd0a4c
--- /dev/null
+++ b/ecos/packages/hal/arm/gps4020/current/include/hal_diag.h
@@ -0,0 +1,72 @@
+#ifndef CYGONCE_HAL_DIAG_H
+#define CYGONCE_HAL_DIAG_H
+
+/*=============================================================================
+//
+// hal_diag.h
+//
+// HAL Support for Kernel Diagnostic Routines
+//
+//=============================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): nickg, gthomas
+// Contributors: nickg, gthomas
+// Date: 1998-09-11
+// 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>
+
+#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_)
+
+// Not the best place for this, but ...
+externC void hal_delay_us(cyg_int32 usecs);
+#define HAL_DELAY_US(n) hal_delay_us(n);
+
+/*---------------------------------------------------------------------------*/
+/* end of hal_diag.h */
+#endif /* CYGONCE_HAL_DIAG_H */
diff --git a/ecos/packages/hal/arm/gps4020/current/include/hal_platform_ints.h b/ecos/packages/hal/arm/gps4020/current/include/hal_platform_ints.h
new file mode 100644
index 0000000..b5dde4a
--- /dev/null
+++ b/ecos/packages/hal/arm/gps4020/current/include/hal_platform_ints.h
@@ -0,0 +1,93 @@
+#ifndef CYGONCE_HAL_PLATFORM_INTS_H
+#define CYGONCE_HAL_PLATFORM_INTS_H
+//==========================================================================
+//
+// hal_platform_ints.h
+//
+// HAL Interrupt and clock assignments for AEB-1
+//
+//==========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//==========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): gthomas
+// Contributors: gthomas
+// Date: 1999-02-20
+// Purpose: Define Interrupt support
+// Description: The interrupt specifics for the GPS4020 board/platform are
+// defined here.
+//
+// Usage: #include <cyg/hal/hal_platform_ints.h>
+// ...
+//
+//
+//####DESCRIPTIONEND####
+//
+//==========================================================================
+
+#define CYGNUM_HAL_INTERRUPT_WATCHDOG 0
+#define CYGNUM_HAL_INTERRUPT_CORR_ACCUM 1
+#define CYGNUM_HAL_INTERRUPT_CORR_MEAS 2
+#define CYGNUM_HAL_INTERRUPT_DMAC 3
+#define CYGNUM_HAL_INTERRUPT_PCL 4
+#define CYGNUM_HAL_INTERRUPT_TIC1A 6
+#define CYGNUM_HAL_INTERRUPT_TIC1B 7
+#define CYGNUM_HAL_INTERRUPT_RF_PLL_LOCK 8
+#define CYGNUM_HAL_INTERRUPT_BSIO 13
+#define CYGNUM_HAL_INTERRUPT_UART1_ERR 14
+#define CYGNUM_HAL_INTERRUPT_UART1_RX 15
+#define CYGNUM_HAL_INTERRUPT_UART1_TX 16
+#define CYGNUM_HAL_INTERRUPT_TIC2A 18
+#define CYGNUM_HAL_INTERRUPT_TIC2B 19
+#define CYGNUM_HAL_INTERRUPT_EXT 20
+#define CYGNUM_HAL_INTERRUPT_UART2_ERR 26
+#define CYGNUM_HAL_INTERRUPT_UART2_RX 27
+#define CYGNUM_HAL_INTERRUPT_UART2_TX 28
+
+#define CYGNUM_HAL_ISR_MIN 0
+#define CYGNUM_HAL_ISR_MAX 28
+#define CYGNUM_HAL_ISR_COUNT 29
+
+// The vector used by the Real time clock
+#define CYGNUM_HAL_INTERRUPT_RTC CYGNUM_HAL_INTERRUPT_TIC1A
+
+
+//----------------------------------------------------------------------------
+// Reset.
+extern void hal_gps4020_reset(void);
+#define HAL_PLATFORM_RESET() hal_gps4020_reset()
+
+#define HAL_PLATFORM_RESET_ENTRY 0x60000000
+
+#endif // CYGONCE_HAL_PLATFORM_INTS_H
diff --git a/ecos/packages/hal/arm/gps4020/current/include/hal_platform_setup.h b/ecos/packages/hal/arm/gps4020/current/include/hal_platform_setup.h
new file mode 100644
index 0000000..2eea10a
--- /dev/null
+++ b/ecos/packages/hal/arm/gps4020/current/include/hal_platform_setup.h
@@ -0,0 +1,121 @@
+#ifndef CYGONCE_HAL_PLATFORM_SETUP_H
+#define CYGONCE_HAL_PLATFORM_SETUP_H
+
+/*=============================================================================
+//
+// hal_platform_setup.h
+//
+// Platform specific support for HAL (assembly code)
+//
+//=============================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): gthomas
+// Contributors: gthomas
+// Date: 1999-04-13
+// Purpose: GPS4020 platform specific support routines
+// Description:
+// Usage: #include <cyg/hal/hal_platform_setup.h>
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================*/
+
+#define CYGSEM_HAL_ROM_RESET_USES_JUMP
+
+ .equ MPC_BASE_ADDRESS, 0xE0008000
+ .equ MPC_AREA1_CONFIG, 0x00000000
+ .equ MPC_AREA2_CONFIG, 0x00000004
+ .equ MPC_AREA3_CONFIG, 0x00000008
+ .equ MPC_AREA4_CONFIG, 0x0000000C
+
+ .equ GPIO_BASE_ADDRESS, 0xE0005000
+ .equ GPIO_DIRECTION_REG_OFFSET,0x00000000
+ .equ GPIO_READ_REG_OFFSET, 0x00000004
+ .equ GPIO_WRITE_REG_OFFSET, 0x00000008
+
+ .equ SYSTEM_CONFIG, 0xE0002004
+
+ .macro gps4020_setup
+
+// make GPIO[0..7] outputs - note: GPIO4 is used for Rx on UART1!
+ ldr r3,=GPIO_BASE_ADDRESS
+ ldr r0, [r3,#GPIO_DIRECTION_REG_OFFSET]
+ and r0, r0, #0b00010000 @ 0 = output, 1 = input
+ str r0, [r3,#GPIO_DIRECTION_REG_OFFSET]
+ mov r0,#0
+ str r0,[r3,#GPIO_WRITE_REG_OFFSET]
+
+ ldr r1,=MPC_BASE_ADDRESS
+ ldr r2,=0x4400002D // 0x6xxxxxxx, 16bit R/W RAM
+ str r2,[r1,#MPC_AREA1_CONFIG]
+
+ ldr r1,=MPC_BASE_ADDRESS
+ ldr r2,=0x00000069 // 0x2xxxxxxx, 16bit R/W RAM
+ str r2,[r1,#MPC_AREA2_CONFIG]
+
+ ldr r2,[r1,#MPC_AREA3_CONFIG]
+ ldr r2,=0x00000021 // 0x4xxxxxxx, 16bit peripheral
+ str r2,[r1,#MPC_AREA3_CONFIG]
+
+ ldr r2,[r1,#MPC_AREA4_CONFIG]
+ ldr r2,=0x0000006E // 0x0xxxxxxx, 32bit memory
+ str r2,[r1,#MPC_AREA4_CONFIG]
+
+ ldr r1,=SYSTEM_CONFIG // Swap memory regions 0x0XXXXXXX, 0x6XXXXXXX
+ ldr r2,[r1]
+ orr r2,r2,#1
+ mov r0,#1
+ str r0,[r3,#GPIO_WRITE_REG_OFFSET]
+ ldr r4,=10f // Change address space
+ str r2,[r1]
+
+ mov pc,r4
+ mov pc,r4
+ mov pc,r4
+10:
+ mov r0,#2
+ str r0,[r3,#GPIO_WRITE_REG_OFFSET]
+ .endm
+
+#ifdef CYG_HAL_STARTUP_ROM
+#define PLATFORM_SETUP1 gps4020_setup
+#else
+#define PLATFORM_SETUP1
+#endif
+
+/*---------------------------------------------------------------------------*/
+/* end of hal_platform_setup.h */
+#endif /* CYGONCE_HAL_PLATFORM_SETUP_H */
diff --git a/ecos/packages/hal/arm/gps4020/current/include/pkgconf/mlt_arm_gps4020_ram.h b/ecos/packages/hal/arm/gps4020/current/include/pkgconf/mlt_arm_gps4020_ram.h
new file mode 100644
index 0000000..0b08f5c
--- /dev/null
+++ b/ecos/packages/hal/arm/gps4020/current/include/pkgconf/mlt_arm_gps4020_ram.h
@@ -0,0 +1,20 @@
+// eCos memory layout - Fri Oct 20 05:43:59 2000
+
+// This is a generated file - do not edit
+
+#ifndef __ASSEMBLER__
+#include <cyg/infra/cyg_type.h>
+#include <stddef.h>
+
+#endif
+#define CYGMEM_REGION_sram (0)
+#define CYGMEM_REGION_sram_SIZE (0x2000)
+#define CYGMEM_REGION_ram_ATTR (CYGMEM_REGION_ATTR_R | CYGMEM_REGION_ATTR_W)
+#define CYGMEM_REGION_ram (0x20000000)
+#define CYGMEM_REGION_ram_SIZE (0x40000)
+#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 (0x20040000 - (size_t) CYG_LABEL_NAME (__heap1))
diff --git a/ecos/packages/hal/arm/gps4020/current/include/pkgconf/mlt_arm_gps4020_ram.ldi b/ecos/packages/hal/arm/gps4020/current/include/pkgconf/mlt_arm_gps4020_ram.ldi
new file mode 100644
index 0000000..648e9d2
--- /dev/null
+++ b/ecos/packages/hal/arm/gps4020/current/include/pkgconf/mlt_arm_gps4020_ram.ldi
@@ -0,0 +1,28 @@
+// eCos memory layout - Fri Oct 20 05:43:59 2000
+
+// This is a generated file - do not edit
+
+#include <cyg/infra/cyg_type.inc>
+
+MEMORY
+{
+ sram : ORIGIN = 0, LENGTH = 0x2000
+ ram : ORIGIN = 0x20000000, LENGTH = 0x40000
+}
+
+SECTIONS
+{
+ SECTIONS_BEGIN
+ SECTION_fixed_vectors (sram, 0x20, LMA_EQ_VMA)
+ SECTION_rom_vectors (ram, 0x20008000, 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)
+ CYG_LABEL_DEFN(__heap1) = ALIGN (0x8);
+ SECTIONS_END
+}
diff --git a/ecos/packages/hal/arm/gps4020/current/include/pkgconf/mlt_arm_gps4020_rom.h b/ecos/packages/hal/arm/gps4020/current/include/pkgconf/mlt_arm_gps4020_rom.h
new file mode 100644
index 0000000..eef6316
--- /dev/null
+++ b/ecos/packages/hal/arm/gps4020/current/include/pkgconf/mlt_arm_gps4020_rom.h
@@ -0,0 +1,23 @@
+// eCos memory layout - Fri Oct 20 05:43:59 2000
+
+// This is a generated file - do not edit
+
+#ifndef __ASSEMBLER__
+#include <cyg/infra/cyg_type.h>
+#include <stddef.h>
+
+#endif
+#define CYGMEM_REGION_sram (0)
+#define CYGMEM_REGION_sram_SIZE (0x2000)
+#define CYGMEM_REGION_ram_ATTR (CYGMEM_REGION_ATTR_R | CYGMEM_REGION_ATTR_W)
+#define CYGMEM_REGION_ram (0x20000000)
+#define CYGMEM_REGION_ram_SIZE (0x40000)
+#define CYGMEM_REGION_ram_ATTR (CYGMEM_REGION_ATTR_R | CYGMEM_REGION_ATTR_W)
+#define CYGMEM_REGION_rom (0x60000000)
+#define CYGMEM_REGION_rom_SIZE (0x40000)
+#define CYGMEM_REGION_rom_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 (0x20040000 - (size_t) CYG_LABEL_NAME (__heap1))
diff --git a/ecos/packages/hal/arm/gps4020/current/include/pkgconf/mlt_arm_gps4020_rom.ldi b/ecos/packages/hal/arm/gps4020/current/include/pkgconf/mlt_arm_gps4020_rom.ldi
new file mode 100644
index 0000000..60babb8
--- /dev/null
+++ b/ecos/packages/hal/arm/gps4020/current/include/pkgconf/mlt_arm_gps4020_rom.ldi
@@ -0,0 +1,29 @@
+// eCos memory layout - Fri Oct 20 05:43:59 2000
+
+// This is a generated file - do not edit
+
+#include <cyg/infra/cyg_type.inc>
+
+MEMORY
+{
+ sram : ORIGIN = 0, LENGTH = 0x2000
+ ram : ORIGIN = 0x20000000, LENGTH = 0x40000
+ rom : ORIGIN = 0x60000000, LENGTH = 0x40000
+}
+
+SECTIONS
+{
+ SECTIONS_BEGIN
+ SECTION_fixed_vectors (sram, 0x20, LMA_EQ_VMA)
+ SECTION_rom_vectors (rom, 0x60000000, 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_data (ram, 0x20000000, FOLLOWING (.gcc_except_table))
+ SECTION_bss (ram, ALIGN (0x4), LMA_EQ_VMA)
+ CYG_LABEL_DEFN(__heap1) = ALIGN (0x8);
+ SECTIONS_END
+}
diff --git a/ecos/packages/hal/arm/gps4020/current/include/plf_io.h b/ecos/packages/hal/arm/gps4020/current/include/plf_io.h
new file mode 100644
index 0000000..4cd6cf1
--- /dev/null
+++ b/ecos/packages/hal/arm/gps4020/current/include/plf_io.h
@@ -0,0 +1,57 @@
+#ifndef CYGONCE_HAL_ARM_AEB_PLF_IO_H
+#define CYGONCE_HAL_ARM_AEB_PLF_IO_H
+
+/*=============================================================================
+//
+// plf_io.h
+//
+// Platform specific support (register layout, etc)
+//
+//=============================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jskov
+// Contributors: jskov
+// Date: 2002-01-28
+// Purpose: Platform specific support routines
+// Description:
+// Usage: #include <cyg/hal/hal_io.h>
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================*/
+
+#endif // CYGONCE_HAL_ARM_AEB_PLF_IO_H
+// EOF plf_io.h
diff --git a/ecos/packages/hal/arm/gps4020/current/include/plf_stub.h b/ecos/packages/hal/arm/gps4020/current/include/plf_stub.h
new file mode 100644
index 0000000..805e2da
--- /dev/null
+++ b/ecos/packages/hal/arm/gps4020/current/include/plf_stub.h
@@ -0,0 +1,83 @@
+#ifndef CYGONCE_HAL_PLF_STUB_H
+#define CYGONCE_HAL_PLF_STUB_H
+
+//=============================================================================
+//
+// plf_stub.h
+//
+// Platform header for GDB stub support.
+//
+//=============================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jskov
+// Contributors:jskov, gthomas
+// Date: 1999-02-15
+// Purpose: Platform HAL stub support for ARM/AEB 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/arm_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.
+#define HAL_STUB_PLATFORM_INIT() CYG_EMPTY_STATEMENT
+
+#endif // ifdef CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS
+
+//-----------------------------------------------------------------------------
+#endif // CYGONCE_HAL_PLF_STUB_H
+// End of plf_stub.h
diff --git a/ecos/packages/hal/arm/gps4020/current/misc/redboot_RAM.ecm b/ecos/packages/hal/arm/gps4020/current/misc/redboot_RAM.ecm
new file mode 100644
index 0000000..566d4c9
--- /dev/null
+++ b/ecos/packages/hal/arm/gps4020/current/misc/redboot_RAM.ecm
@@ -0,0 +1,96 @@
+cdl_savefile_version 1;
+cdl_savefile_command cdl_savefile_version {};
+cdl_savefile_command cdl_savefile_command {};
+cdl_savefile_command cdl_configuration { description hardware template package };
+cdl_savefile_command cdl_package { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_component { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_option { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_interface { value_source user_value wizard_value inferred_value };
+
+cdl_configuration eCos {
+ description "" ;
+ hardware gps4020 ;
+ template redboot ;
+ package -hardware CYGPKG_HAL_ARM current ;
+ package -hardware CYGPKG_HAL_ARM_GPS4020 current ;
+ package -hardware CYGPKG_DEVS_FLASH_ATMEL_AT49XXXX current ;
+ package -hardware CYGPKG_DEVS_FLASH_GPS4020 current ;
+ package -template CYGPKG_HAL current ;
+ package -template CYGPKG_INFRA current ;
+ package -template CYGPKG_REDBOOT current ;
+ package -template CYGPKG_ISOINFRA current ;
+ package -template CYGPKG_LIBC_STRING current ;
+ package -template CYGPKG_NS_DNS current ;
+ package -template CYGPKG_CRC current ;
+ package CYGPKG_IO_FLASH current ;
+};
+
+cdl_option CYGFUN_LIBC_STRING_BSD_FUNCS {
+ inferred_value 0
+};
+
+cdl_option CYGNUM_HAL_COMMON_INTERRUPTS_STACK_SIZE {
+ user_value 4096
+};
+
+cdl_option CYGDBG_HAL_COMMON_INTERRUPTS_SAVE_MINIMUM_CONTEXT {
+ user_value 0
+};
+
+cdl_option CYGDBG_HAL_COMMON_CONTEXT_SAVE_MINIMUM {
+ inferred_value 0
+};
+
+cdl_option CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS {
+ inferred_value 1
+};
+
+cdl_option CYGSEM_HAL_USE_ROM_MONITOR {
+ inferred_value 0 0
+};
+
+cdl_component CYGBLD_BUILD_REDBOOT {
+ user_value 1
+};
+
+cdl_option CYGBLD_BUILD_REDBOOT_WITH_EXEC {
+ inferred_value 0
+};
+
+cdl_option CYGOPT_REDBOOT_FIS {
+ user_value 0
+};
+
+cdl_component CYGSEM_REDBOOT_FLASH_CONFIG {
+ user_value 0
+};
+
+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_BSD_FUNCS_HEADER {
+ inferred_value 1 <cyg/libc/string/bsdstring.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_DNS_HEADER {
+ inferred_value 1 <cyg/ns/dns/dns.h>
+};
+
+cdl_option CYGPKG_NS_DNS_BUILD {
+ inferred_value 0
+};
+
+
diff --git a/ecos/packages/hal/arm/gps4020/current/misc/redboot_ROM.ecm b/ecos/packages/hal/arm/gps4020/current/misc/redboot_ROM.ecm
new file mode 100644
index 0000000..7c16392
--- /dev/null
+++ b/ecos/packages/hal/arm/gps4020/current/misc/redboot_ROM.ecm
@@ -0,0 +1,104 @@
+cdl_savefile_version 1;
+cdl_savefile_command cdl_savefile_version {};
+cdl_savefile_command cdl_savefile_command {};
+cdl_savefile_command cdl_configuration { description hardware template package };
+cdl_savefile_command cdl_package { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_component { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_option { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_interface { value_source user_value wizard_value inferred_value };
+
+cdl_configuration eCos {
+ description "" ;
+ hardware gps4020 ;
+ template redboot ;
+ package -hardware CYGPKG_HAL_ARM current ;
+ package -hardware CYGPKG_HAL_ARM_GPS4020 current ;
+ package -hardware CYGPKG_DEVS_FLASH_ATMEL_AT49XXXX current ;
+ package -hardware CYGPKG_DEVS_FLASH_GPS4020 current ;
+ package -template CYGPKG_HAL current ;
+ package -template CYGPKG_INFRA current ;
+ package -template CYGPKG_REDBOOT current ;
+ package -template CYGPKG_ISOINFRA current ;
+ package -template CYGPKG_LIBC_STRING current ;
+ package -template CYGPKG_NS_DNS current ;
+ package -template CYGPKG_CRC current ;
+ package CYGPKG_IO_FLASH current ;
+};
+
+cdl_option CYGFUN_LIBC_STRING_BSD_FUNCS {
+ inferred_value 0
+};
+
+cdl_option CYGNUM_HAL_COMMON_INTERRUPTS_STACK_SIZE {
+ user_value 4096
+};
+
+cdl_option CYGDBG_HAL_COMMON_INTERRUPTS_SAVE_MINIMUM_CONTEXT {
+ user_value 0
+};
+
+cdl_option CYGDBG_HAL_COMMON_CONTEXT_SAVE_MINIMUM {
+ inferred_value 0
+};
+
+cdl_option CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS {
+ inferred_value 1
+};
+
+cdl_option CYGSEM_HAL_ROM_MONITOR {
+ inferred_value 1
+};
+
+cdl_option CYGSEM_HAL_USE_ROM_MONITOR {
+ inferred_value 0 0
+};
+
+cdl_component CYG_HAL_STARTUP {
+ user_value ROM
+};
+
+cdl_component CYGBLD_BUILD_REDBOOT {
+ user_value 1
+};
+
+cdl_option CYGBLD_BUILD_REDBOOT_WITH_EXEC {
+ inferred_value 0
+};
+
+cdl_option CYGOPT_REDBOOT_FIS {
+ user_value 0
+};
+
+cdl_component CYGSEM_REDBOOT_FLASH_CONFIG {
+ user_value 0
+};
+
+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_BSD_FUNCS_HEADER {
+ inferred_value 1 <cyg/libc/string/bsdstring.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_DNS_HEADER {
+ inferred_value 1 <cyg/ns/dns/dns.h>
+};
+
+cdl_option CYGPKG_NS_DNS_BUILD {
+ inferred_value 0
+};
+
+
diff --git a/ecos/packages/hal/arm/gps4020/current/src/gps4020_misc.c b/ecos/packages/hal/arm/gps4020/current/src/gps4020_misc.c
new file mode 100644
index 0000000..cbe627e
--- /dev/null
+++ b/ecos/packages/hal/arm/gps4020/current/src/gps4020_misc.c
@@ -0,0 +1,209 @@
+//==========================================================================
+//
+// gps4020_misc.c
+//
+// HAL misc board support code for ARM GPS4020-1
+//
+//==========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//==========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): gthomas
+// Contributors: gthomas
+// Date: 1999-02-20
+// Purpose: HAL board support
+// Description: Implementations of HAL board interfaces
+//
+//####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_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> // necessary?
+#include <cyg/hal/hal_cache.h>
+#include <cyg/hal/hal_if.h> // calling interface
+#include <cyg/hal/hal_misc.h> // helper functions
+#ifdef CYGDBG_HAL_DEBUG_GDB_BREAK_SUPPORT
+#include <cyg/hal/drv_api.h> // HAL ISR support
+#endif
+
+#include <cyg/hal/gps4020.h>
+
+static cyg_uint32 _period;
+
+void hal_clock_initialize(cyg_uint32 period)
+{
+ volatile struct _gps4020_timer *tc = (volatile struct _gps4020_timer *)GPS4020_TC1;
+
+ // Start timer in "reload" mode to set counter value
+ tc->tc[0].control = TC_CTL_SCR_HALT; // Disable timer
+ tc->tc[0].reload = period;
+ tc->tc[0].control = TC_CTL_IE | TC_CTL_SCR_COUNT | TC_CTL_MODE_RELOAD | TC_CTL_HEP | TC_CLOCK_BASE;
+ _period = period;
+}
+
+void hal_clock_reset(cyg_uint32 vector, cyg_uint32 period)
+{
+ hal_clock_initialize(period);
+ _gps4020_watchdog(false);
+}
+
+void hal_clock_read(cyg_uint32 *pvalue)
+{
+ volatile struct _gps4020_timer *tc = (volatile struct _gps4020_timer *)GPS4020_TC1;
+ *pvalue = _period - tc->tc[0].current;
+}
+
+//
+// Delay for some number of micro-seconds
+// Use timer #2 of TC2
+//
+void hal_delay_us(cyg_int32 usecs)
+{
+ volatile struct _gps4020_timer *tc = (volatile struct _gps4020_timer *)GPS4020_TC2;
+ unsigned long val1, val2;
+ int timeout;
+
+ // Start timer in "reload" mode to set counter value
+ tc->tc[1].control = TC_CTL_SCR_HALT; // Disable timer
+ tc->tc[1].reload = usecs;
+ tc->tc[1].control = TC_CTL_SCR_COUNT | TC_CTL_MODE_RELOAD | TC_CTL_HEP | TC_CLOCK_BASE;
+ timeout = 10;
+ val1 = tc->tc[1].current;
+ while ((tc->tc[1].control & TC_CTL_OS) == 0) {
+ if (--timeout == 0) {
+ val2 = tc->tc[1].current;
+ if (val1 == val2) {
+ // Timer is stuck - use a cruder method!
+ while (--usecs > 0) ;
+ return;
+ }
+ }
+ }
+}
+
+void hal_hardware_init(void)
+{
+ volatile struct _gps4020_intc *intc = (volatile struct _gps4020_intc *)GPS4020_INTC;
+
+ // Clear and reset all interrupt sources
+ intc->enable = 0;
+ // 3322 2222 2222 1111 1111 1100 0000 0000
+ // 1098 7654 3210 9876 5432 1098 7654 3210
+ intc->polarity = 0x1C01E01F; // 0001 1100 0000 0001 1110 0000 0001 1111;
+ intc->trigger = 0x000C00C0; // 0000 0000 0000 1100 0000 0000 1100 0000;
+ // Set up eCos/ROM interfaces
+ hal_if_init();
+}
+
+//
+// This routine is called to respond to a hardware interrupt (IRQ). It
+// should interrogate the hardware and return the IRQ vector number.
+
+int hal_IRQ_handler(void)
+{
+ volatile struct _gps4020_intc *intc = (volatile struct _gps4020_intc *)GPS4020_INTC;
+ int vec = (intc->IRQ_encoded >> 2);
+ return vec;
+}
+
+//
+// Interrupt control
+//
+
+void hal_interrupt_mask(int vector)
+{
+ volatile struct _gps4020_intc *intc = (volatile struct _gps4020_intc *)GPS4020_INTC;
+ intc->enable &= ~(1<<vector);
+}
+
+void hal_interrupt_unmask(int vector)
+{
+ volatile struct _gps4020_intc *intc = (volatile struct _gps4020_intc *)GPS4020_INTC;
+ intc->enable |= (1<<vector);
+}
+
+void hal_interrupt_acknowledge(int vector)
+{
+ volatile struct _gps4020_intc *intc = (volatile struct _gps4020_intc *)GPS4020_INTC;
+ intc->reset = (1<<vector);
+}
+
+void hal_interrupt_configure(int vector, int level, int up)
+{
+// diag_printf("%s(%d,%d,%d)\n", __PRETTY_FUNCTION__, vector, level, up);
+}
+
+void hal_interrupt_set_level(int vector, int level)
+{
+// diag_printf("%s(%d,%d)\n", __PRETTY_FUNCTION__, vector, level);
+}
+
+//-----------------------------------------------------------------------------
+// Reset board
+
+void
+hal_gps4020_reset(void)
+{
+ volatile struct _gps4020_watchdog *wdg = (volatile struct _gps4020_watchdog *)GPS4020_WATCHDOG;
+
+ wdg->period = 1; // Almost as fast as possible
+ wdg->reset = GPS4020_WATCHDOG_RESET;
+ // Wait for it...
+ for(;;);
+}
+
+// Watchdog support
+void
+_gps4020_watchdog(bool is_idle)
+{
+ volatile struct _gps4020_watchdog *wdg = (volatile struct _gps4020_watchdog *)GPS4020_WATCHDOG;
+ wdg->reset = GPS4020_WATCHDOG_RESET;
+}
+
+#ifdef CYGPKG_REDBOOT
+#include <redboot.h>
+RedBoot_idle(_gps4020_watchdog, RedBoot_AFTER_NETIO);
+#endif
+
+/*------------------------------------------------------------------------*/
+// EOF hal_misc.c
diff --git a/ecos/packages/hal/arm/gps4020/current/src/hal_diag.c b/ecos/packages/hal/arm/gps4020/current/src/hal_diag.c
new file mode 100644
index 0000000..93316e6
--- /dev/null
+++ b/ecos/packages/hal/arm/gps4020/current/src/hal_diag.c
@@ -0,0 +1,253 @@
+/*=============================================================================
+//
+// hal_diag.c
+//
+// HAL diagnostic output code
+//
+//=============================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): nickg, gthomas
+// Contributors:nickg, gthomas
+// Date: 1998-03-02
+// Purpose: HAL diagnostic output
+// Description: Implementations of HAL diagnostic output support.
+//
+//####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> // 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
+
+#include <cyg/hal/gps4020.h>
+
+//-----------------------------------------------------------------------------
+typedef struct {
+ volatile struct _gps4020_uart *base;
+ cyg_int32 msec_timeout;
+ int isr_vector;
+ int int_state;
+} channel_data_t;
+
+static channel_data_t serial_channels[] = {
+ { (volatile struct _gps4020_uart *)GPS4020_UART1, 1000, CYGNUM_HAL_INTERRUPT_UART1_RX, 0 },
+};
+
+//-----------------------------------------------------------------------------
+
+static void
+cyg_hal_plf_serial_init_channel(void* __ch_data)
+{
+ volatile struct _gps4020_uart *uart = ((channel_data_t*)__ch_data)->base;
+ uart->mode = SMR_STOP_1 | SMR_PARITY_OFF | SMR_LENGTH_8;
+ uart->baud = 0x15; // FIXME - Magic for 57600
+ uart->modem_control = SMR_DTR | SMR_RTS;
+ uart->control = SCR_TEN | SCR_REN;
+}
+
+void
+cyg_hal_plf_serial_putc(void *__ch_data, char c)
+{
+ volatile struct _gps4020_uart *uart = ((channel_data_t*)__ch_data)->base;
+ // Wait for space for character
+ do {
+ } while ((uart->status & SSR_TxEmpty) == 0);
+ uart->TxRx = c;
+}
+
+static cyg_bool
+cyg_hal_plf_serial_getc_nonblock(void *__ch_data, cyg_uint8 *ch)
+{
+ volatile struct _gps4020_uart *uart = ((channel_data_t*)__ch_data)->base;
+ if ((uart->status & SSR_RxFull) == 0) {
+ return false;
+ }
+ *ch = uart->TxRx;
+ return true;
+}
+
+cyg_uint8
+cyg_hal_plf_serial_getc(void* __ch_data)
+{
+ cyg_uint8 ch;
+
+ while(!cyg_hal_plf_serial_getc_nonblock(__ch_data, &ch));
+
+ return ch;
+}
+
+static void
+cyg_hal_plf_serial_write(void* __ch_data, const cyg_uint8* __buf,
+ cyg_uint32 __len)
+{
+ while(__len-- > 0)
+ cyg_hal_plf_serial_putc(__ch_data, *__buf++);
+}
+
+static void
+cyg_hal_plf_serial_read(void* __ch_data, cyg_uint8* __buf, cyg_uint32 __len)
+{
+ while(__len-- > 0)
+ *__buf++ = cyg_hal_plf_serial_getc(__ch_data);
+}
+
+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;
+
+ 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);
+ }
+
+ return res;
+}
+
+static int
+cyg_hal_plf_serial_control(void *__ch_data, __comm_control_cmd_t __func, ...)
+{
+ channel_data_t* chan = (channel_data_t*)__ch_data;
+ volatile struct _gps4020_uart *uart = ((channel_data_t*)__ch_data)->base;
+ int ret = 0;
+
+ switch (__func) {
+ case __COMMCTL_IRQ_ENABLE:
+ chan->int_state = 1;
+ uart->control |= SCR_RIE;
+ HAL_INTERRUPT_UNMASK(chan->isr_vector);
+ break;
+ case __COMMCTL_IRQ_DISABLE:
+ ret = chan->int_state;
+ chan->int_state = 0;
+ uart->control &= ~SCR_RIE;
+ 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;
+ }
+ return ret;
+}
+
+static int
+cyg_hal_plf_serial_isr(void *__ch_data, int* __ctrlc,
+ CYG_ADDRWORD __vector, CYG_ADDRWORD __data)
+{
+ int res = 0;
+ channel_data_t* chan = (channel_data_t*)__ch_data;
+ volatile struct _gps4020_uart *uart = ((channel_data_t*)__ch_data)->base;
+ char c;
+
+ cyg_drv_interrupt_acknowledge(chan->isr_vector);
+ *__ctrlc = 0;
+ if ((uart->status & SSR_RxFull) != 0) {
+ c = uart->TxRx;
+ if (cyg_hal_is_break(&c, 1))
+ *__ctrlc = 1;
+ res = CYG_ISR_HANDLED;
+ }
+ 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);
+
+ // Init channel
+ cyg_hal_plf_serial_init_channel(&serial_channels[0]);
+
+ // 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, &serial_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);
+
+ // 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();
+}
diff --git a/ecos/packages/hal/arm/gps4020/current/support/download/Makefile b/ecos/packages/hal/arm/gps4020/current/support/download/Makefile
new file mode 100644
index 0000000..1879f0a
--- /dev/null
+++ b/ecos/packages/hal/arm/gps4020/current/support/download/Makefile
@@ -0,0 +1,77 @@
+#########################################################################
+# #
+# Template Makefile for Assembly Language Programs #
+# #
+#########################################################################
+
+# Author: John Zaitseff <J.Zaitseff@unsw.edu.au>, Modified by
+# Andrew Greenberg (andrew@uad.com)
+# Date: 18th August, 2003
+# Version: 1.0
+
+# Please note that every line that is indented (or, in the language of
+# Makefiles, the command part of the rules) is done so with TAB
+# characters, NOT with spaces. This is important and a subtle trap for
+# the unwary!
+
+ALL = gps4020_download
+all: $(ALL)
+
+GPS4020_DOWNLOAD_FILES = gps4020_start.o gps4020_download.o tty.o
+gps4020_download: $(GPS4020_DOWNLOAD_FILES)
+ $(CC) $(LDFLAGS) -Tarm.ld -o $@ $(GPS4020_DOWNLOAD_FILES)
+ $(OC) $(OCFLAGS) $@ $@.bin
+ $(SIZE) $@
+
+clean:
+ rm -f $(ALL) *.o *~
+
+# The following variables and implicit rules are required for the GNU
+# Assembler for ARM. You probably do not need to modify anything here.
+
+AS = arm-elf-as
+SIZE = arm-elf-size
+LD = arm-elf-ld
+CC = arm-elf-gcc
+OC = arm-elf-objcopy
+
+# ADG: we don't need debugging info: removed "ASFLAGS = --gdwarf2"
+ASFLAGS =
+LDFLAGS = -nostdlib -Wl,-static -Wl,-Map,$@.map
+OCFLAGS = --output-target binary
+LOADLIBES =
+LDLIBS =
+CFLAGS = -O2 -msoft-float
+
+.SUFFIXES:
+
+# Assemble ARM assembly language source (.s) to an object file (.o) using as.
+# eg: "arm-elf-as -marm7tdmi gps4020_download.s -o gps4020_download.o"
+
+%.o: %.s
+ $(AS) -marm7tdmi $(ASFLAGS) $< -o $@
+
+%.o: %.S
+ $(CC) -c -marm7tdmi $(ASFLAGS) $< -o $@
+
+# Link object file (.0) into an ARM executable (.elf), using ld.
+# eg: "arm-elf-ld -o gps4020_download.o gps4020_download.elf"
+
+%.elf: %.o
+ $(LD) $(LDFLAGS) $< $(LOADLIBES) $(LDLIBS) -o $@
+
+# "Copy" ELF file (.elf) into a binary file for execution using objcopy.
+# eg: "arm-elf-objcopy --output-target binary gps4020_download.elf gps4020_download.bin"
+
+%.bin: %.elf
+ $(OC) $(OCFLAGS) $< $@
+
+# Compile "C" code
+%.o: %.c
+ $(CC) $(CFLAGS) -c -o $@ $<
+
+# Miscellaneous rules
+
+.PHONY: all clean
+.DEFAULT:
+.SUFFIXES:
diff --git a/ecos/packages/hal/arm/gps4020/current/support/download/arm.ld b/ecos/packages/hal/arm/gps4020/current/support/download/arm.ld
new file mode 100644
index 0000000..293324c
--- /dev/null
+++ b/ecos/packages/hal/arm/gps4020/current/support/download/arm.ld
@@ -0,0 +1,21 @@
+ENTRY(start)
+
+MEMORY
+{
+ ram : ORIGIN = 0x0, LENGTH = 0x2000
+}
+
+SECTIONS
+{
+ .text 0x00000000 : { _stext = .; *(.text*) *(.gnu.warning) *(.gnu.linkonce.t.*) *(.init) *(.glue_7) *(.glue_7t) } > ram _etext = .; PROVIDE (etext = .);
+ .fini ALIGN (0x4) : { . = .; *(.fini) } > ram
+ .rodata1 ALIGN (0x8) : { . = .; *(.rodata1*) } > ram
+ .rodata ALIGN (0x8) : { . = .; *(.rodata*) } > ram
+ .fixup ALIGN (0x4) : { __FIXUP_START__ = ABSOLUTE(.); *(.fixup) __FIXUP_END__ = ABSOLUTE(.);} > ram
+ .gcc_except_table ALIGN (0x1) : { __EXCEPT_START__ = ABSOLUTE(.); *(.gcc_except_table) __EXCEPT_END__ = ABSOLUTE(.);} > ram
+ .data ALIGN (0x8) : { __ram_data_start = ABSOLUTE(.); *(.data*) __GOT1_START__ = ABSOLUTE(.); *(.got1) __GOT1_END__ = ABSOLUTE(.); . = ALIGN(8); __CTOR_LIST__ = ABSOLUTE(.); KEEP(*(SORT(.ctors*))) __CTOR_END__ = ABSOLUTE(.); __DTOR_LIST__ = ABSOLUTE(.); KEEP(*(SORT(.dtors*))) __DTOR_END__ = ABSOLUTE(.); . = ALIGN(8); KEEP(*( SORT (.ecos.table.*))) ; . = ALIGN(4); *( .2ram.*) ; __GOT2_START__ = ABSOLUTE(.); *(.got2) __GOT2_END__ = ABSOLUTE(.); __GOT_START = ABSOLUTE(.); _GLOBAL_OFFSET_TABLE_ = ABSOLUTE(. + 32768); _SDA_BASE_ = ABSOLUTE(.); *(.got.plt) *(.got) __GOT_END__ = ABSOLUTE(.); *(.dynamic) *(.eh_frame) __SDATA_START__ = ABSOLUTE(.); *(.sdata) *(.sdata.*) __SDATA2_START__ = ABSOLUTE(.); *(.sdata2*) } > ram __rom_data_start = LOADADDR(.data); __ram_data_end = .; PROVIDE(__ram_data_end = .); _edata = .; PROVIDE (edata = .);
+ .sbss ALIGN (0x4) : { __sbss_start = ABSOLUTE (.); __SBSS_START__ = ABSOLUTE(.); *(.sbss.*) __SBSS_END__ = ABSOLUTE(.); __SBSSx_START__ = ABSOLUTE(.); *(.sbss*) __SBSSx_END__ = ABSOLUTE(.); *(.scommon*) __sbss_end = ABSOLUTE (.); } > ram
+ .bss ALIGN (0x10) : { __bss_start = ABSOLUTE (.); . = .; *(.dynbss*) *(.bss*) *(COMMON) __bss_end = ABSOLUTE (.); } > ram
+ __heap1 = ALIGN (0x8);
+ . = ALIGN(4); _end = .; PROVIDE (end = .);
+}
diff --git a/ecos/packages/hal/arm/gps4020/current/support/download/download.py b/ecos/packages/hal/arm/gps4020/current/support/download/download.py
new file mode 100644
index 0000000..87d28f5
--- /dev/null
+++ b/ecos/packages/hal/arm/gps4020/current/support/download/download.py
@@ -0,0 +1,126 @@
+#! /usr/bin/env python
+
+#
+# Copyright (C) 2003, MLB Associates
+#
+
+# This program is used to read a Motorola S-record file and
+# download it using the GDB protocol.
+
+import os, string, sys, time
+
+trace = open("/tmp/download.trace", "w")
+
+#
+# Use up some time
+#
+def spin():
+ j = 0
+ for i in range(0,200):
+ j = j + 1
+
+#
+# Compute the checksum for a string
+#
+def cksum(str):
+# sys.stderr.write("cksum %s\n" % str)
+ sum = 0
+ cs = str[1:]
+ while cs:
+ sum = sum + ord(cs[:1])
+ cs = cs[1:]
+ return sum & 0xFF
+
+#
+# Send a string via the GDB protocol. Note: this routine
+# computes and adds the checksum before starting.
+#
+def send(str):
+ str = str + "#%02x" % cksum(str)
+# trace.write("ready to send: %s\n" % str)
+# trace.flush()
+ while 1:
+ s = str
+ while s:
+ os.write(1, s[:1])
+ spin()
+ # time.sleep(0.001)
+ s = s[1:]
+ c = os.read(0, 1)
+ if c <> '+':
+ trace.write("~ACK: %c\n" % c)
+ trace.write("sent: %s\n" % str)
+ trace.flush()
+ continue
+ res = ''
+ while 1:
+ c = os.read(0, 1)
+ if c == '#': break
+ res = res + c
+ # trace.write("ACK: %c, res: %s\n" % (c, res))
+ # trace.flush()
+ # trace.write("res = %s\n" % res)
+ # trace.flush()
+ csum = cksum(res)
+ cs = os.read(0, 1)
+ cs = cs + os.read(0, 1)
+ sum = string.atoi(cs, 16)
+ if csum <> sum:
+ os.write(1, '-')
+ trace.write("RES = %s, sum: %x/%x\n" % (res, csum, sum))
+ trace.write("sent: %s\n" % str)
+ trace.flush()
+ continue
+ os.write(1, '+')
+ trace.flush()
+ return
+
+#
+# Process a stream of S-records, supplied by 'readline()'
+#
+def download(readline):
+ # send("$Hc-1")
+ # send("$Hg0")
+ last_addr = 0
+ while 1:
+ line = readline()
+ if not line: break
+ if line[0] <> 'S':
+ raise ("Invalid input:" + line)
+ if line[1] in "123":
+ len = string.atoi(line[2:4],16)
+ an = ord(line[1]) - ord('1') + 2
+ ae = 4 + (an*2)
+ addr = string.atoi(line[4:ae],16)
+ #print "len = %d, addr = 0x%x " % (len, addr)
+ len = len - (an+1)
+ line = line[ae:]
+ out = "$M%x,%x:" % (addr, len)
+ for i in range(0,len):
+ val = string.atoi(line[:2],16)
+ #print "val = 0x%x" % val
+ line = line[2:]
+ out = out + "%02x" % val
+ if (addr - last_addr) >= 0x400:
+ last_addr = addr
+ sys.stderr.write("0x%x\n" % addr)
+ send(out)
+ elif line[1] in "789":
+ len = string.atoi(line[2:4],16)
+ eos = 10
+ if line[1] == '7':
+ eos = 12
+ addr = string.atoi(line[4:12],16)
+ #print "len = %d, addr = 0x%x " % (len, addr)
+ len = len - 4
+ line = line[eos:]
+ out = "$P40=%08x" % addr
+ sys.stderr.write("Set PC = 0x%x\n" % addr)
+ send(out)
+ # This command starts the program
+ send("$c#63")
+
+if __name__ == '__main__': # testing
+ import sys
+ if len(sys.argv) > 1: download(open(sys.argv[1]).readline)
+ else: download(sys.stdin.readline)
diff --git a/ecos/packages/hal/arm/gps4020/current/support/download/download_bin.py b/ecos/packages/hal/arm/gps4020/current/support/download/download_bin.py
new file mode 100644
index 0000000..8aad936
--- /dev/null
+++ b/ecos/packages/hal/arm/gps4020/current/support/download/download_bin.py
@@ -0,0 +1,50 @@
+#! /usr/bin/env python
+
+#
+# Copyright (C) 2003, MLB Associates
+#
+
+# This program is used to download a binary file, using the
+# raw [minimal] protocol used by the hardware bootstrap on
+# the GPS-4020
+
+import os, string, sys, time
+
+#
+# Use up some time
+#
+def spin():
+ j = 0
+ for i in range(0,2000):
+ j = j + 1
+
+#
+# Send a string via the RAW protocol.
+#
+def send(str):
+ while 1:
+ s = str
+ while s:
+ c = s[:1]
+ os.write(1, c)
+ spin()
+ # time.sleep(0.001)
+ s = s[1:]
+ return
+
+#
+# Process a stream of S-records, supplied by 'read()'
+#
+def download(read):
+ line = read(16384)
+ if not line: return
+ length = len(line)
+ # Build up a length descriptor, in big-endian layout
+ data_length = chr(length >> 16) + chr((length >> 8) & 0xFF) + chr(length & 0xFF)
+ send(data_length)
+ send(line)
+
+if __name__ == '__main__': # testing
+ import sys
+ if len(sys.argv) > 1: download(open(sys.argv[1],'rb').read)
+ else: download(sys.stdin.read)
diff --git a/ecos/packages/hal/arm/gps4020/current/support/download/gps4020_download.c b/ecos/packages/hal/arm/gps4020/current/support/download/gps4020_download.c
new file mode 100644
index 0000000..983a21b
--- /dev/null
+++ b/ecos/packages/hal/arm/gps4020/current/support/download/gps4020_download.c
@@ -0,0 +1,184 @@
+//-------------------------------------------------------------------
+//
+// gps4020_download.c
+//
+//-------------------------------------------------------------------
+//
+// Copyright (C) 2003, MLB Associates.
+//
+// Routine to download code into main [external] SRAM and then
+// execute it.
+//
+//-------------------------------------------------------------------
+
+//#define DEBUG_DOWNLOAD
+
+extern void tty_init(void);
+extern unsigned char tty_getc(int chan);
+extern void tty_putc(int chan, char c);
+extern void tty_puts(int chan, char *c);
+extern void tty_puthex(int chan, unsigned long val, int width);
+
+typedef int bool;
+#define false 0
+#define true 1
+
+// Validate a hex character
+__inline__ static bool
+_is_hex(char c)
+{
+ return (((c >= '0') && (c <= '9')) ||
+ ((c >= 'A') && (c <= 'F')) ||
+ ((c >= 'a') && (c <= 'f')));
+}
+
+// Convert a single hex nibble
+__inline__ static int
+_from_hex(char c)
+{
+ int ret = 0;
+
+ if ((c >= '0') && (c <= '9')) {
+ ret = (c - '0');
+ } else if ((c >= 'a') && (c <= 'f')) {
+ ret = (c - 'a' + 0x0a);
+ } else if ((c >= 'A') && (c <= 'F')) {
+ ret = (c - 'A' + 0x0A);
+ }
+ return ret;
+}
+
+
+//
+// Process the next hex value from a string
+//
+unsigned long
+_hex(char **_cp)
+{
+ unsigned long val;
+ unsigned char *cp = *_cp;
+
+ val = 0;
+ while (_is_hex(*cp)) {
+ val = (val << 4) | _from_hex(*cp++);
+ }
+ *_cp = cp;
+ return val;
+}
+
+//
+// Simple GDB protocol handler
+// Only three commands are handled:
+// $M<loc>,<len>:<data...>#<cksum>
+// $M20000000,10:0e0000ea18f09fe518f09fe518f09fe5#59
+// $P<reg>=<val>#<cksum>
+// $c#<cksum>
+// <cksum> is a simple accumulation of all of the ASCII
+// characters following the "$"
+
+static char
+_getc(void)
+{
+ char c;
+ c = tty_getc(0);
+#ifdef DEBUG_DOWNLOAD
+ tty_putc(1, c);
+#endif
+ return c;
+}
+
+void
+GDB_protocol(void)
+{
+ char c;
+ unsigned char cksum, _cksum;
+ unsigned char line[64];
+ char *cp;
+ bool eol, ok;
+ unsigned char *loc;
+ unsigned long len;
+ unsigned char val;
+ void (*entry_address)(void);
+
+ while (true) {
+ // Wait for a '$'
+ do {
+ c = _getc();
+ // HACK - '>>' indicates to jump to FLASH/ROM
+ if (c == '>') {
+ c = _getc();
+ if (c == '>') {
+ entry_address = (void *)0x60000000;
+ (*entry_address)();
+ }
+ }
+ } while (c != '$');
+ cksum = 0;
+ eol = false;
+ cp = line;
+ while (!eol) {
+ c = _getc();
+ if (c != '#') {
+ cksum += c;
+ *cp++ = c;
+ *cp = '\0';
+ } else {
+ c = _getc();
+ _cksum = _from_hex(c) << 4;
+ c = _getc();
+ _cksum |= _from_hex(c);
+ ok = (cksum == _cksum);
+ tty_putc(0, ok ? '+' : '-');
+ eol = true;
+ }
+ }
+#ifdef DEBUG_DOWNLOAD
+ tty_puts(1, ok ? " = OK\n" : " = BAD\n");
+#endif
+ if (ok) {
+ // Empty "OK" message
+ tty_puts(0, "#00");
+ // Process command
+ cp = line;
+ switch (*cp++) {
+ case 'M':
+ loc = (unsigned char *)_hex(&cp);
+ if (*cp++ != ',') continue;
+ len = _hex(&cp);
+ if (*cp++ != ':') continue;
+ while (len-- > 0) {
+ val = _from_hex(*cp++) << 4;
+ val |= _from_hex(*cp++);
+ *loc++ = val;
+ }
+ break;
+ case 'P':
+ // Ignore register #
+ cp += 2;
+ if (*cp++ != '=') continue;
+ entry_address = (void *)_hex(&cp);
+ break;
+ case 'c':
+ (*entry_address)();
+ break;
+ default:
+ tty_puts(0, "** unknown command: $");
+ tty_puts(0, line);
+ }
+ }
+ }
+}
+
+int
+main(void)
+{
+ tty_init();
+ // Change 0x6XXXXXXX to use external ROM
+ *(volatile short *)0x4010100C |= (1<<9);
+ tty_puts(0, "Ready to download >>");
+#ifdef DEBUG_DOWNLOAD
+ tty_puts(1, "... GDB data:\n");
+#endif
+ GDB_protocol();
+ return 0; // Never happens!
+}
diff --git a/ecos/packages/hal/arm/gps4020/current/support/download/gps4020_start.S b/ecos/packages/hal/arm/gps4020/current/support/download/gps4020_start.S
new file mode 100644
index 0000000..f3e7c99
--- /dev/null
+++ b/ecos/packages/hal/arm/gps4020/current/support/download/gps4020_start.S
@@ -0,0 +1,216 @@
+//-------------------------------------------------------------------
+//
+// gp4020_start.S
+//
+//-------------------------------------------------------------------
+//
+// Copyright (C) 2003, MLB Associates.
+//
+// This file contains basic startup code for the GPS4020 platform.
+// After initialization, it will call a single "C" function 'main()'
+//
+// Note: this program assumes that it has been downloaded into the
+// on-chip SRAM via the BOOTSTRAP mechanism, so on-chip SRAM is
+// located at address 0x00000000 and external ROM/FLASH is at
+// address 0x60000000
+//
+
+ .macro lab,lbl
+.\lbl: .long \lbl
+ .endm
+
+ .macro blr
+ mov pc,lr
+ .endm
+
+ .equ MPC_BASE_ADDRESS, 0xE0008000
+ .equ MPC_AREA1_CONFIG, 0x00000000
+ .equ MPC_AREA2_CONFIG, 0x00000004
+ .equ MPC_AREA3_CONFIG, 0x00000008
+ .equ MPC_AREA4_CONFIG, 0x0000000C
+ .equ GPIO_BASE_ADDRESS, 0xE0005000
+ .equ GPIO_DIRECTION_REG_OFFSET,0x00000000
+ .equ GPIO_READ_REG_OFFSET, 0x00000004
+ .equ GPIO_WRITE_REG_OFFSET, 0x00000008
+ .equ UART1_BASE_ADDRESS, 0xE0018000
+ .equ UART_TXBUF, 0x00000010
+ .equ UART_STATUS, 0x0000000C
+ .equ UART_STATUS_TXEMPTY, 0x00000002
+
+ .text
+ .global __exception_handlers
+__exception_handlers:
+ b reset // 0x00
+ ldr pc,.undefined_instruction // 0x04
+ ldr pc,.software_interrupt // 0x08 start && software int
+ ldr pc,.abort_prefetch // 0x0C
+ ldr pc,.abort_data // 0x10
+ .word 0 // unused
+ ldr pc,.IRQ // 0x18
+ ldr pc,.FIQ // 0x1C
+
+ .global vectors
+vectors:
+ .long reset // 0x20
+ lab undefined_instruction // 0x24
+ lab software_interrupt // 0x28
+ lab abort_prefetch // 0x2C
+ lab abort_data // 0x30
+ .word 0 // 0x34
+ lab IRQ // 0x38
+ lab FIQ // 0x3C
+
+ .arm @ AKA ".code32"
+ .align 2 @ Align code on 2^2 = 4 byte intervals
+
+ .global start
+start:
+reset:
+
+/*--------------------------------------------------------------------------*/
+// Setup the GPIO and the ARM registers
+
+// make GPIO[0..7] outputs - note: GPIO4 is used for Rx on UART1!
+
+ ldr r1,=GPIO_BASE_ADDRESS
+ ldr r0, [r1,#GPIO_DIRECTION_REG_OFFSET]
+ and r0, r0, #0b00010000 @ 0 = output, 1 = input
+ str r0, [r1,#GPIO_DIRECTION_REG_OFFSET] @ Store value (DON'T use strb)
+
+ ldr r1,=MPC_BASE_ADDRESS
+ ldr r2,=0xFF00002D // 0x6xxxxxxx, 16bit R/W RAM
+ str r2,[r1,#MPC_AREA1_CONFIG]
+
+ ldr r1,=MPC_BASE_ADDRESS
+ ldr r2,=0x00000069 // 0x2xxxxxxx, 16bit R/W RAM
+ str r2,[r1,#MPC_AREA2_CONFIG]
+
+ ldr r2,[r1,#MPC_AREA3_CONFIG]
+ ldr r2,=0x00000021 // 0x4xxxxxxx, 16bit peripheral
+ str r2,[r1,#MPC_AREA3_CONFIG]
+
+ ldr r2,[r1,#MPC_AREA4_CONFIG]
+ ldr r2,=0x0000006E // 0x0xxxxxxx, 32bit memory
+ str r2,[r1,#MPC_AREA4_CONFIG]
+
+ ldr sp,=_stack
+ bl main
+
+10: ldr r1,=GPIO_BASE_ADDRESS
+ mov r0,#0
+ str r0, [r1,#GPIO_WRITE_REG_OFFSET]
+ b 10b
+
+//
+// Exception handlers
+//
+undefined_instruction: // 0x24
+ mov r0,#0x24
+ b exception
+software_interrupt: // 0x28
+ mov r0,#0x28
+ b exception
+abort_prefetch: // 0x2C
+ mov r0,#0x2C
+ b exception
+abort_data: // 0x30
+ mov r0,#0x30
+ b exception
+IRQ: // 0x38
+ mov r0,#0x38
+ b exception
+FIQ: // 0x3C
+ mov r0,#0x3C
+ b exception
+
+exception:
+ mov r8,lr // Location of failure
+ mov r9,r0
+00:
+ ldr r1,=GPIO_BASE_ADDRESS
+ str r9, [r1,#GPIO_WRITE_REG_OFFSET]
+ ldr r3,=0x100000
+10: nop
+ sub r3,r3,#1
+ cmp r3,#0
+ bne 10b
+ str r3,[r1,#GPIO_WRITE_REG_OFFSET]
+ ldr r3,=0x80000
+20: nop
+ sub r3,r3,#1
+ cmp r3,#0
+ bne 20b
+
+ ldr r1,=msg
+ bl _puts
+ mov r1,r8,lsr #24
+ bl _puthex
+ mov r1,r8,lsr #16
+ bl _puthex
+ mov r1,r8,lsr #8
+ bl _puthex
+ mov r1,r8
+ bl _puthex
+ mov r0,#'\n'
+ bl _putc
+ mov r0,#'\r'
+ bl _putc
+ b 00b
+
+//
+// Write the character in r0
+//
+_putc:
+ ldr r2,=UART1_BASE_ADDRESS
+10: ldrb r3,[r2,#UART_STATUS]
+ and r3,r3,#UART_STATUS_TXEMPTY
+ cmp r3,#0
+ beq 10b
+ strb r0,[r2,#UART_TXBUF]
+ blr
+
+//
+// Write the string pointed to by r1
+//
+_puts:
+ mov r7,lr
+10: ldrb r0,[r1],#1
+ cmp r0,#0
+ moveq pc,r7
+ bl _putc
+ b 10b
+
+//
+// Print the byte in r1 in hex
+//
+_puthex:
+ mov r7,lr
+ mov r2,r1,lsr #4
+ and r2,r2,#0x0F
+ cmp r2,#0x0A
+ addge r2,r2,#'A'-'0'-0x0A
+ add r0,r2,#'0'
+ bl _putc
+ and r2,r1,#0x0F
+ cmp r2,#0x0A
+ addge r2,r2,#'A'-'0'-0x0A
+ add r0,r2,#'0'
+ bl _putc
+ mov lr,r7
+ blr
+
+msg: .string "PC=0x"
+
+ .section ".data"
+ .align 2
+_leds: .long 0x77
+
+ .section ".bss"
+_stack_base:
+ .rept 512
+ .byte 0
+ .endr
+ .balign 16
+_stack:
+
+ .end
diff --git a/ecos/packages/hal/arm/gps4020/current/support/download/tty.c b/ecos/packages/hal/arm/gps4020/current/support/download/tty.c
new file mode 100644
index 0000000..9fe0110
--- /dev/null
+++ b/ecos/packages/hal/arm/gps4020/current/support/download/tty.c
@@ -0,0 +1,204 @@
+//
+// TTY support code
+//
+
+struct uart {
+ unsigned char control;
+ unsigned char _fill0[3];
+ unsigned char mode;
+ unsigned char _fill1[3];
+ unsigned char baud;
+ unsigned char _fill2[3];
+ unsigned char status;
+ unsigned char _fill3[3];
+ unsigned char TxRx;
+ unsigned char _fill4[3];
+ unsigned char modem_control;
+ unsigned char _fill5[3+8];
+ unsigned char modem_status;
+ unsigned char _fill6[3];
+};
+
+// Serial control
+#define SCR_MIE 0x80 // Modem interrupt enable
+#define SCR_EIE 0x40 // Error interrupt enable
+#define SCR_TIE 0x20 // Transmit interrupt enable
+#define SCR_RIE 0x10 // Receive interrupt enable
+#define SCR_FCT 0x08 // Flow type 0=>software, 1=>hardware
+#define SCR_CLK 0x04 // Clock source 0=internal, 1=external
+#define SCR_TEN 0x02 // Transmitter enabled
+#define SCR_REN 0x01 // Receiver enabled
+// Serial mode
+#define SMR_DIV(x) ((x)<<4) // Clock divisor
+#define SMR_STOP 0x08 // Stop bits 0=>one, 1=>two
+#define SMR_STOP_1 0x00
+#define SMR_STOP_2 0x08
+#define SMR_PARITY 0x04 // Parity mode 0=>even, 1=odd
+#define SMR_PARITY_EVEN 0x00
+#define SMR_PARITY_ODD 0x04
+#define SMR_PARITY_ON 0x02 // Parity checked
+#define SMR_PARITY_OFF 0x00
+#define SMR_LENGTH 0x01 // Character length
+#define SMR_LENGTH_8 0x00
+#define SMR_LENGTH_7 0x01
+// Serial status
+#define SSR_MSS 0x80 // Modem status has changed
+#define SSR_OE 0x40 // Overrun error
+#define SSR_FE 0x20 // Framing error
+#define SSR_PE 0x10 // Parity error
+#define SSR_TxActive 0x08 // Transmitter is active
+#define SSR_RxActive 0x04 // Receiver is active
+#define SSR_TxEmpty 0x02 // Tx buffer is empty
+#define SSR_RxFull 0x01 // Rx buffer contains data
+// Modem control
+#define SMR_CFG 0x08 // Configuration 0=>normal, 1=>null
+#define SMR_MSU 0x04 // Modem status update 1=>enable
+#define SMR_DTR 0x02 // Assert DTR
+#define SMR_RTS 0x01 // Assert RTS
+
+#define GP4020_UART1 0xE0018000
+#define GP4020_UART2 0xE0019000
+
+//
+// Initialize a TTY port
+//
+static void
+_tty_init(volatile struct uart *uart)
+{
+ uart->mode = SMR_STOP_1 | SMR_PARITY_OFF | SMR_LENGTH_8;
+ uart->baud = 0x15; // Magic for 57600
+ uart->modem_control = SMR_DTR | SMR_RTS;
+ uart->control = SCR_TEN | SCR_REN;
+}
+
+//
+// Output a character to a TTY port
+//
+static void
+_tty_putc(volatile struct uart *uart, char c)
+{
+ // Wait for space for character
+ do {
+ } while ((uart->status & SSR_TxEmpty) == 0);
+ uart->TxRx = c;
+}
+
+//
+// Read a character from a TTY port
+//
+static char
+_tty_getc(volatile struct uart *uart)
+{
+ do {
+#if 0
+ if ((uart->status & 0xF0) != 0) {
+ tty_puts("\nErr = ");
+ tty_puthex(uart->TxRx, 2);
+ }
+#endif
+ } while ((uart->status & SSR_RxFull) == 0);
+ return uart->TxRx;
+}
+
+//
+// Initialize the TTY ports
+//
+volatile struct uart *uarts[] = {
+ (volatile struct uart *)GP4020_UART1,
+ (volatile struct uart *)GP4020_UART2
+};
+
+void
+tty_init(void)
+{
+
+#if 0
+ tty_puts("\nUart: ");
+ tty_puthex(uart->control, 2);
+ tty_puts(", ");
+ tty_puthex(uart->mode, 2);
+ tty_puts(", ");
+ tty_puthex(uart->baud, 2);
+ tty_puts(", ");
+ tty_puthex(uart->TxRx, 2);
+ tty_puts("\n");
+ tty_puts("\nStat at "); tty_puthex(&uart->status, 8); tty_puts("\n");
+#endif
+ _tty_init(uarts[0]);
+ _tty_init(uarts[1]);
+}
+
+//
+// Write a character to the selected TTY
+//
+void
+tty_putc(int chan, char c)
+{
+ _tty_putc(uarts[chan], c);
+}
+
+//
+// Read a character from the selected TTY
+//
+char
+tty_getc(int chan)
+{
+ return _tty_getc(uarts[chan]);
+}
+
+//
+// Display a string on the selected TTY
+//
+void
+tty_puts(int chan, char *s)
+{
+ char c;
+
+ while ((c = *s++) != '\0') {
+ if (c == '\n') {
+ tty_putc(chan, '\r');
+ }
+ tty_putc(chan, c);
+ }
+}
+
+//
+// Read characters into a buffer, terminated by a '\n' character
+// Note: the '\n' character is not stored
+//
+int
+tty_getline(int chan, char *buf)
+{
+ char c;
+ int len = 0;
+
+ while (((c = tty_getc(chan)) != '\n') && (c != '\r')) {
+ tty_putc(chan, c);
+ *buf++ = c;
+ len++;
+ }
+ *buf = '\0';
+ return len;
+}
+
+//
+// Display a number in hex
+//
+void
+tty_puthex(int chan, unsigned long val, int length)
+{
+ char hex[] = "0123456789ABCDEF";
+ char str[16];
+ char *s = &str[length+3];
+ int i;
+
+ *--s = '\0';
+ for (i = 0; i < length; i++) {
+ *--s = hex[(val & 0x0F)];
+ val >>= 4;
+ }
+ *--s = 'x';
+ *--s = '0';
+ tty_puts(chan, s);
+}
+
diff --git a/ecos/packages/hal/arm/integrator/current/ChangeLog b/ecos/packages/hal/arm/integrator/current/ChangeLog
new file mode 100644
index 0000000..5f00303
--- /dev/null
+++ b/ecos/packages/hal/arm/integrator/current/ChangeLog
@@ -0,0 +1,146 @@
+2009-01-31 Bart Veer <bartv@ecoscentric.com>
+
+ * cdl/hal_arm_integrator.cdl: update compiler flags for gcc 4.x
+
+2009-01-24 Bart Veer <bartv@ecoscentric.com>
+
+ * cdl/hal_arm_integrator.cdl: switch from arm-elf-gcc to
+ arm-eabi-gcc.
+
+2004-04-22 Jani Monoses <jani@iv.ro>
+
+ * cdl/hal_arm_integrator.cdl :
+ Invoke tail with stricter syntax that works in latest coreutils.
+
+2003-12-05 Andrew Lunn <andrew.lunn@ascom.ch>
+
+ * include/hal_platform_ints.h: hal_delay_us() is a C function.
+
+2003-09-21 Gary Thomas <gary@mlbassoc.com>
+
+ * misc/redboot_ROMRAM.ecm: Adjust for changes in RedBoot
+ template - DNS now must be enabled manually.
+
+2003-07-18 Nick Garnett <nickg@balti.calivar.com>
+
+ * cdl/hal_arm_integrator.cdl:
+ Changed values for CYGNUM_HAL_RTC_NUMERATOR,
+ CYGNUM_HAL_RTC_DENOMINATOR and CYGNUM_HAL_RTC_PERIOD to
+ "default_value" from "calculated". This makes it easier
+ to change these values globally.
+
+2003-04-11 Bart Veer <bartv@ecoscentric.com>
+
+ * cdl/hal_arm_integrator.cdl: thumb is not supported so the
+ reference to thumb-elf was spurious.
+
+2002-05-27 Jesper Skov <jskov@redhat.com>
+
+ * cdl/hal_arm_integrator.cdl: Don't run cache tests.
+
+2002-05-07 Gary Thomas <gthomas@redhat.com>
+
+ * cdl/hal_arm_integrator.cdl:
+ Standardize CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_DEFAULT usage.
+
+2002-03-19 Nick Garnett <nickg@redhat.com>
+
+ * include/plf_io.h: Added volatiles to PCI config accesses. These
+ should have been noticed ages ago!
+
+2002-03-14 Nick Garnett <nickg@redhat.com>
+
+ * include/plf_stub.h: Added data access check macros
+ CYG_HAL_STUB_PERMIT_DATA_READ() and
+ CYG_HAL_STUB_PERMIT_DATA_WRITE() for use by GDB stubs.
+
+ * cdl/hal_arm_integrator.cdl: Added -fno-schedule-insns to ARM7
+ compile line option. There seem to be some issues in the ethernet
+ driver when scheduling instructions.
+
+2002-03-08 Nick Garnett <nickg@redhat.com>
+
+ * src/integrator_misc.c (cyg_plf_pci_init): Only actually init PCI
+ bridge for non-RAM configurations. Reinitializing during RAM
+ startup kills any PCI devices. This is particularly a problem if
+ we are debugging via the ethernet.
+
+2002-03-07 Jesper Skov <jskov@redhat.com>
+
+ * misc/redboot_ROMRAM.ecm: Added zlib.
+
+ * cdl/hal_arm_integrator.cdl: Require more flash for the RedBoot
+ image, but remove the backup image to compensate.
+
+2002-03-06 Nick Garnett <nickg@redhat.com>
+
+ * src/integrator_misc.c:
+ Added hal_delay_us() and initialized clock in plf_hardware_init()
+ to make it work in RedBoot.
+ Moved PCI initialization from macro to cyg_plf_pci_init().
+
+ * src/hal_diag.c: Fixed ISR to operate correctly. Removed legacy
+ code.
+
+ * misc/redboot_ROMRAM.ecm: Added this file to support ROMRAM
+ startup redboot.
+
+ * include/pkgconf/mlt_arm_integrator_ram.ldi:
+ * include/pkgconf/mlt_arm_integrator_ram.h:
+ * include/pkgconf/mlt_arm_integrator_rom.ldi:
+ * include/pkgconf/mlt_arm_integrator_rom.h:
+ * include/pkgconf/mlt_arm_integrator_romram.ldi:
+ * include/pkgconf/mlt_arm_integrator_romram.h:
+ Added ROMRAM startup files. Fixed up ROM and RAM files to reflect
+ use of PCI window.
+ Note: MLT files not updated!
+
+ * include/plf_io.h: Moved contents of HAL_PCI_INIT() out to
+ src/integrator_misc.c. Added CYGARC_PHYSICAL_ADDRESS(). Fixed 32
+ bit PCI config accesses to use two 16 bit accesses - the stright
+ 32 bit accesses do not seem to work.
+
+ * include/hal_platform_setup.h: Added support for ROMRAM startup.
+ Tidied up a bit.
+
+ * include/hal_platform_ints.h: Added HAL_DELAY_US() and
+ implemented HAL_PLATFORM_RESET().
+
+ * include/hal_integrator.h: Move HAL_FLASH_WRITE_ENABLE() and
+ HAL_FLASH_WRITE_DISABLE() out to integrator FLASH device driver.
+
+ * cdl/hal_arm_integrator.cdl:
+ Added support for ARM7 and ARM9 variants. Generally tidied up.
+
+2002-01-28 Jesper Skov <jskov@redhat.com>
+
+ * cdl/hal_arm_integrator.cdl: Removed explicit declaration of
+ plf_io.h
+
+2001-10-30 Philippe Robin <Philippe.Robin@arm.com>
+
+ * Initial version of integrator package.
+
+//===========================================================================
+// ####GPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 2 or (at your option) any
+// later version.
+//
+// This program is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the
+// Free Software Foundation, Inc., 51 Franklin Street,
+// Fifth Floor, Boston, MA 02110-1301, USA.
+// -------------------------------------------
+// ####GPLCOPYRIGHTEND####
+//===========================================================================
diff --git a/ecos/packages/hal/arm/integrator/current/cdl/hal_arm_integrator.cdl b/ecos/packages/hal/arm/integrator/current/cdl/hal_arm_integrator.cdl
new file mode 100644
index 0000000..d7f0dc4
--- /dev/null
+++ b/ecos/packages/hal/arm/integrator/current/cdl/hal_arm_integrator.cdl
@@ -0,0 +1,470 @@
+# ====================================================================
+#
+# hal_arm_integrator.cdl
+#
+# INTEGRATOR board HAL package configuration data
+#
+# ====================================================================
+## ####ECOSGPLCOPYRIGHTBEGIN####
+## -------------------------------------------
+## This file is part of eCos, the Embedded Configurable Operating System.
+## Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+##
+## eCos is free software; you can redistribute it and/or modify it under
+## the terms of the GNU General Public License as published by the Free
+## Software Foundation; either version 2 or (at your option) any later
+## version.
+##
+## eCos is distributed in the hope that it will be useful, but WITHOUT
+## ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+## FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+## for more details.
+##
+## You should have received a copy of the GNU General Public License
+## along with eCos; if not, write to the Free Software Foundation, Inc.,
+## 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+##
+## As a special exception, if other files instantiate templates or use
+## macros or inline functions from this file, or you compile this file
+## and link it with other works to produce a work based on this file,
+## this file does not by itself cause the resulting work to be covered by
+## the GNU General Public License. However the source code for this file
+## must still be made available in accordance with section (3) of the GNU
+## General Public License v2.
+##
+## This exception does not invalidate any other reasons why a work based
+## on this file might be covered by the GNU General Public License.
+## -------------------------------------------
+## ####ECOSGPLCOPYRIGHTEND####
+# ====================================================================
+######DESCRIPTIONBEGIN####
+#
+# Author(s): David A Rusling
+# Original data: gthomas
+# Contributors: Philippe Robin
+# Date: November 7, 2000
+#
+#####DESCRIPTIONEND####
+#
+# ====================================================================
+
+cdl_package CYGPKG_HAL_ARM_INTEGRATOR {
+ display "ARM INTEGRATOR evaluation board"
+ parent CYGPKG_HAL_ARM
+ define_header hal_arm_integrator.h
+ include_dir cyg/hal
+ hardware
+ description "
+ The integrator HAL package provides the support needed to run
+ eCos on an ARM INTEGRATOR evaluation board."
+
+ compile hal_diag.c integrator_misc.c
+
+ implements CYGINT_HAL_DEBUG_GDB_STUBS
+ implements CYGINT_HAL_DEBUG_GDB_STUBS_BREAK
+ implements CYGINT_HAL_VIRTUAL_VECTOR_SUPPORT
+ implements CYGINT_HAL_TESTS_NO_CACHES
+
+ define_proc {
+ puts $::cdl_system_header "#define CYGBLD_HAL_TARGET_H <pkgconf/hal_arm.h>"
+ puts $::cdl_system_header "#define CYGBLD_HAL_PLATFORM_H <pkgconf/hal_arm_integrator.h>"
+ puts $::cdl_header ""
+ puts $::cdl_header "#define HAL_PLATFORM_BOARD \"INTEGRATOR\""
+ puts $::cdl_header "#define HAL_PLATFORM_EXTRA \"\""
+ puts $::cdl_header ""
+ }
+
+ cdl_component CYGPKG_HAL_ARM_INTEGRATOR_ARM7 {
+ display "ARM 7 specialization"
+ active_if !CYGPKG_HAL_ARM_ARM9
+ calculated !CYGPKG_HAL_ARM_ARM9
+
+ implements CYGINT_HAL_ARM_ARCH_ARM7
+
+ define_proc {
+ puts $::cdl_header "#define HAL_PLATFORM_CPU \"ARM 7TDMI\""
+ }
+ }
+
+ cdl_component CYGPKG_HAL_ARM_INTEGRATOR_ARM9 {
+ display "ARM 9 specialization"
+ active_if CYGPKG_HAL_ARM_ARM9
+ calculated CYGPKG_HAL_ARM_ARM9
+
+ requires CYGPKG_HAL_ARM_ARM9_ARM966E
+
+ define_proc {
+ puts $::cdl_header "#define HAL_PLATFORM_CPU \"ARM 9\""
+ }
+
+ }
+
+ 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 INTEGRATOR 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 onboard
+ debug software such as Angel or eCos GDB stubs. Select 'rom'
+ when building a stand-alone application which will be put
+ into ROM."
+
+ }
+
+ cdl_option CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_DEFAULT {
+ display "Default console channel."
+ flavor data
+ calculated 0
+ }
+
+ 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 controls the baud rate used for the GDB connection."
+ }
+
+ cdl_option CYGHWR_HAL_ARM_INTEGRATOR_DIAG_LEDS {
+ display "Enable use of PPx LEDs"
+ default_value 1
+ description "
+ Enabling this option causes eCos to flash the LEDs during
+ early board initialization. See vectors.S for
+ details. Before calling cyg_start, PP0 is switched on,
+ PP1-3 are switched off. The application code can use the
+ function hal_diag_led() to control the LEDs after this
+ point."
+ }
+
+ 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"
+ active_if CYGPRI_HAL_VIRTUAL_VECTOR_DEBUG_CHANNEL_CONFIGURABLE
+ flavor data
+ legal_values 0 to CYGNUM_HAL_VIRTUAL_VECTOR_COMM_CHANNELS-1
+ default_value 0
+ description "
+ The INTEGRATOR 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"
+ active_if CYGPRI_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_CONFIGURABLE
+ flavor data
+ legal_values 0 to CYGNUM_HAL_VIRTUAL_VECTOR_COMM_CHANNELS-1
+ default_value CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_DEFAULT
+ description "
+ The INTEGRATOR board has two serial ports. This option
+ chooses which port will be used for diagnostic output."
+ }
+
+ # 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
+ default_value 1000000000
+ }
+ cdl_option CYGNUM_HAL_RTC_DENOMINATOR {
+ display "Real-time clock denominator"
+ flavor data
+ default_value 100
+ }
+ cdl_option CYGNUM_HAL_RTC_PERIOD {
+ display "Real-time clock period"
+ flavor data
+ default_value 12500
+ }
+ }
+
+ 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 { "arm-eabi"}
+ 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 { CYGBLD_GLOBAL_WARNFLAGS . CYGBLD_ARCH_CFLAGS .
+ (CYGPKG_HAL_ARM_INTEGRATOR_ARM9 ? "-mcpu=arm9" : "-mcpu=arm7tdmi -fno-schedule-insns") .
+ " -g -O2 -ffunction-sections -fdata-sections -fno-rtti -fno-exceptions "
+ }
+
+ 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 { CYGBLD_ARCH_LDFLAGS .
+ (CYGPKG_HAL_ARM_INTEGRATOR_ARM9 ? "-mcpu=arm9" : "-mcpu=arm7tdmi") .
+ " -Wl,-Map,map -g -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 CYGBLD_BUILD_COMMON_GDB_STUBS
+ requires { CYG_HAL_STARTUP != "RAM" }
+ requires CYGSEM_HAL_ROM_MONITOR
+ 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 address of the ELF headers in the image are
+ adjusted to ensure loading at an address in memory used
+ by the flash tool."
+
+ make -priority 320 {
+ <PREFIX>/bin/gdb_module.bin : <PREFIX>/bin/gdb_module.img
+ @mv $< $(<:.img=.elf)
+ $(OBJCOPY) --strip-debug --change-addresses=0xFC060000 $(<:.img=.elf) $<
+ $(OBJCOPY) -O binary $(<:.img=.elf) $@
+ }
+ }
+
+ cdl_option CYGBLD_BUILD_FLASH_TOOL {
+ display "Build flash programming tool"
+ default_value 0
+ requires { CYG_HAL_STARTUP == "RAM" }
+ requires CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL == 1
+ requires CYGPKG_LIBC
+ requires CYGPKG_KERNEL
+ no_define
+ description "This option enables the building of the flash programming tool for copying the GDB stubs into flash memory."
+ make -priority 320 {
+ <PREFIX>/bin/prog_flash.img : <PACKAGE>/src/prog_flash.c
+ @sh -c "mkdir -p src $(dir $@)"
+ $(CC) -c $(INCLUDE_PATH) -Wp,-MD,deps.tmp -I$(dir $<) $(CFLAGS) -o src/prog_flash.o $<
+ @echo $@ ": \\" > $(notdir $@).deps
+ @echo $(wildcard $(PREFIX)/lib/*) " \\" >> $(notdir $@).deps
+ @tail -n +2 deps.tmp >> $(notdir $@).deps
+ @echo >> $(notdir $@).deps
+ @rm deps.tmp
+ $(CC) $(LDFLAGS) -L$(PREFIX)/lib -Ttarget.ld -o $@ src/prog_flash.o
+ }
+ }
+
+ cdl_option CYGBLD_BUILD_FLASH_TOOL_BE {
+ display "Build flash programming tool for BE images on LE boards"
+ default_value 0
+ requires { CYG_HAL_STARTUP == "RAM" }
+ requires CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL == 1
+ requires CYGPKG_LIBC
+ requires CYGPKG_KERNEL
+ no_define
+ description "This option enables the building of the flash
+ programming tool for copying the GDB stubs
+ into flash memory. The tool built by enabling
+ this option must be used when programming BE
+ images on LE boards."
+ make -priority 320 {
+ <PREFIX>/bin/prog_flash_BE_image_LE_system.img : <PACKAGE>/src/prog_flash.c
+ @sh -c "mkdir -p src $(dir $@)"
+ $(CC) -DBE_IMAGE -c $(INCLUDE_PATH) -Wp,-MD,deps.tmp -I$(dir $<) $(CFLAGS) -o src/prog_flash_be.o $<
+ @echo $@ ": \\" > $(notdir $@).deps
+ @echo $(wildcard $(PREFIX)/lib/*) " \\" >> $(notdir $@).deps
+ @tail -n +2 deps.tmp >> $(notdir $@).deps
+ @echo >> $(notdir $@).deps
+ @rm deps.tmp
+ $(CC) $(LDFLAGS) -L$(PREFIX)/lib -Ttarget.ld -o $@ src/prog_flash_be.o
+ }
+ }
+ }
+
+ cdl_component CYGHWR_MEMORY_LAYOUT {
+ display "Memory layout"
+ flavor data
+ no_define
+ calculated { CYG_HAL_STARTUP == "RAM" ? "arm_integrator_ram" : \
+ CYG_HAL_STARTUP == "ROMRAM" ? "arm_integrator_romram" : \
+ "arm_integrator_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_integrator_ram.ldi>" : \
+ CYG_HAL_STARTUP == "ROMRAM" ? "<pkgconf/mlt_arm_integrator_romram.ldi>" : \
+ "<pkgconf/mlt_arm_integrator_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_integrator_ram.h>" : \
+ CYG_HAL_STARTUP == "ROMRAM" ? "<pkgconf/mlt_arm_integrator_romram.h>" : \
+ "<pkgconf/mlt_arm_integrator_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 != "RAM" }
+ 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_component CYGPKG_CYGMON_HAL_OPTIONS {
+ display "CygMon HAL options"
+ flavor none
+ no_define
+ parent CYGPKG_CYGMON
+ active_if CYGPKG_CYGMON
+ description "
+ This option also lists the target's requirements for a valid CygMon
+ configuration."
+
+ cdl_option CYGBLD_BUILD_CYGMON_BIN {
+ display "Build CygMon ROM binary image"
+ active_if CYGBLD_BUILD_CYGMON
+ default_value 1
+ no_define
+ description "This option enables the conversion of the CygMon ELF
+ image to a binary image suitable for ROM programming."
+
+ make -priority 325 {
+ <PREFIX>/bin/cygmon.bin : <PREFIX>/bin/cygmon.elf
+ $(OBJCOPY) --strip-debug --change-addresses=0xFC060000 $< $(@:.bin=.img)
+ $(OBJCOPY) -O srec $< $(@:.bin=.srec)
+ $(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_REDBOOT_HAL_OPTIONS {
+ display "Redboot HAL options"
+ flavor none
+ no_define
+ parent CYGPKG_REDBOOT
+ active_if CYGPKG_REDBOOT
+ description "
+ This option lists the target's requirements for a valid Redboot
+ configuration."
+
+ requires { !CYGPKG_REDBOOT_FLASH || (CYGBLD_REDBOOT_MIN_IMAGE_SIZE == 0x40000) }
+ requires { !CYGOPT_REDBOOT_FIS_REDBOOT_BACKUP }
+
+ cdl_option CYGBLD_BUILD_REDBOOT_BIN_ROM {
+ display "Build Redboot ROM startup ROM binary image"
+ active_if { CYGBLD_BUILD_REDBOOT && CYG_HAL_STARTUP == "ROM" }
+ default_value 1
+ no_define
+ description "This option enables the conversion of the Redboot ELF
+ image to S-Record and 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 --gap-fill 0 $< $(@:.bin=.srec)
+ $(OBJCOPY) -O binary $< $@
+ }
+ }
+
+ cdl_option CYGBLD_BUILD_REDBOOT_BIN_ROMRAM {
+ display "Build Redboot ROMRAM startup ROM binary image"
+ active_if { CYGBLD_BUILD_REDBOOT && CYG_HAL_STARTUP == "ROMRAM" }
+ default_value 1
+ no_define
+ description "This option enables the conversion of the Redboot ELF
+ image to S-Record and binary images suitable for ROM
+ programming."
+
+ make -priority 325 {
+ <PREFIX>/bin/redboot.bin : <PREFIX>/bin/redboot.elf
+ $(OBJCOPY) --strip-debug $< $(@:.bin=.img)
+ $(OBJCOPY) -O srec --adjust-vma 0x24000000 --gap-fill 0 $< $(@:.bin=.srec)
+ $(OBJCOPY) -O binary $< $@
+ }
+ }
+
+
+ }
+}
diff --git a/ecos/packages/hal/arm/integrator/current/include/hal_cache.h b/ecos/packages/hal/arm/integrator/current/include/hal_cache.h
new file mode 100644
index 0000000..f688485
--- /dev/null
+++ b/ecos/packages/hal/arm/integrator/current/include/hal_cache.h
@@ -0,0 +1,182 @@
+#ifndef CYGONCE_HAL_CACHE_H
+#define CYGONCE_HAL_CACHE_H
+
+//=============================================================================
+//
+// hal_cache.h
+//
+// HAL cache control API
+//
+//=============================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): David A Rusling
+// Contributors: Philippe Robin
+// Date: November 7, 2000
+// 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 <cyg/infra/cyg_type.h>
+
+//-----------------------------------------------------------------------------
+// Cache dimensions
+
+// Data cache
+#define HAL_DCACHE_SIZE 0 // Size of data cache in bytes
+#define HAL_DCACHE_LINE_SIZE 0 // Size of a data cache line
+#define HAL_DCACHE_WAYS 0 // Associativity of the cache
+
+// Instruction cache
+#define HAL_ICACHE_SIZE 0 // Size of cache in bytes
+#define HAL_ICACHE_LINE_SIZE 0 // Size of a cache line
+#define HAL_ICACHE_WAYS 0 // 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
+#define HAL_DCACHE_ENABLE()
+
+// Disable the data cache
+#define HAL_DCACHE_DISABLE()
+
+// Invalidate the entire cache
+#define HAL_DCACHE_INVALIDATE_ALL()
+
+// 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_) 0
+
+// Purge contents of data cache
+#define HAL_DCACHE_PURGE_ALL()
+
+// 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()
+
+// 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
diff --git a/ecos/packages/hal/arm/integrator/current/include/hal_diag.h b/ecos/packages/hal/arm/integrator/current/include/hal_diag.h
new file mode 100644
index 0000000..8dad31d
--- /dev/null
+++ b/ecos/packages/hal/arm/integrator/current/include/hal_diag.h
@@ -0,0 +1,94 @@
+#ifndef CYGONCE_HAL_DIAG_H
+#define CYGONCE_HAL_DIAG_H
+
+/*=============================================================================
+//
+// hal_diag.h
+//
+// HAL Support for Kernel Diagnostic Routines
+//
+//=============================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): David A Rusling
+// Contributors: Philippe Robin
+// Date: November 7, 2000
+// 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
+
+/*---------------------------------------------------------------------------*/
+// LED
+
+externC void hal_diag_led(int n);
+
+/*---------------------------------------------------------------------------*/
+/* end of hal_diag.h */
+#endif /* CYGONCE_HAL_DIAG_H */
diff --git a/ecos/packages/hal/arm/integrator/current/include/hal_integrator.h b/ecos/packages/hal/arm/integrator/current/include/hal_integrator.h
new file mode 100644
index 0000000..430e0fb
--- /dev/null
+++ b/ecos/packages/hal/arm/integrator/current/include/hal_integrator.h
@@ -0,0 +1,405 @@
+#ifndef CYGONCE_HAL_INTEGRATOR_H
+#define CYGONCE_HAL_INTEGRATOR_H
+
+/*=============================================================================
+//
+// hal_integrator.h
+//
+// HAL Description of INTEGRATOR board
+//
+//=============================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): Philippe Robin
+// Contributors:
+// Date: November 7, 2000
+// Purpose:
+// Description:
+// Usage: #include <cyg/hal/hal_integrator.h>
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================*/
+
+
+#define INTEGRATOR_HDR_BASE 0x10000000
+#define INTEGRATOR_HDR_CTRL_OFFSET 0x0C
+#define INTEGRATOR_HDR_CTRL_REMAP 0x04
+
+#define INTEGRATOR_BOOT_ROM_BASE 0x20000000
+#define INTEGRATOR_HDR0_SDRAM_BASE 0x80000000
+
+#define INTEGRATOR_DBG_ALPHA_OFFSET 0x00
+#define INTEGRATOR_DBG_LEDS_OFFSET 0x04
+#define INTEGRATOR_DBG_SWITCH_OFFSET 0x08
+
+#define INTEGRATOR_DBG_BASE 0x1A000000
+#define INTEGRATOR_DBG_ALPHA (INTEGRATOR_DBG_BASE + INTEGRATOR_DBG_ALPHA_OFFSET)
+#define INTEGRATOR_DBG_LEDS (INTEGRATOR_DBG_BASE + INTEGRATOR_DBG_LEDS_OFFSET)
+#define INTEGRATOR_DBG_SWITCH (INTEGRATOR_DBG_BASE + INTEGRATOR_DBG_SWITCH_OFFSET)
+
+#define INTEGRATOR_UART0_BASE 0x16000000 /* UART 0 */
+#define INTEGRATOR_UART1_BASE 0x17000000 /* UART 1 */
+
+#define INTEGRATOR_IRQCONT_BASE 0x14000000
+
+#define INTEGRATOR_IRQSTATUS 0x00
+#define INTEGRATOR_IRQRAWSTATUS 0x04
+#define INTEGRATOR_IRQENABLE 0x08
+#define INTEGRATOR_IRQENABLESET 0x08
+#define INTEGRATOR_IRQENABLECLEAR 0x0C
+
+#define INTEGRATOR_IRQSOFT 0x10
+#define INTEGRATOR_IRQSOFTSET 0x10
+#define INTEGRATOR_IRQSOFTCLEAR 0x14
+
+#define INTEGRATOR_FIQSTATUS 0x20
+#define INTEGRATOR_FIQRAWSTATUS 0x24
+#define INTEGRATOR_FIQENABLE 0x28
+#define INTEGRATOR_FIQENABLESET 0x28
+#define INTEGRATOR_FIQENABLECLEAR 0x2C
+
+#define INTEGRATOR_IRQCONT_IRQSTATUS (INTEGRATOR_IRQCONT_BASE + INTEGRATOR_IRQSTATUS)
+#define INTEGRATOR_IRQCONT_IRQRAWSTATUS (INTEGRATOR_IRQCONT_BASE + INTEGRATOR_IRQRAWSTATUS)
+#define INTEGRATOR_IRQCONT_IRQENABLE (INTEGRATOR_IRQCONT_BASE + INTEGRATOR_IRQENABLE)
+#define INTEGRATOR_IRQCONT_IRQENABLESET (INTEGRATOR_IRQCONT_BASE + INTEGRATOR_IRQENABLESET)
+#define INTEGRATOR_IRQCONT_IRQENABLECLEAR (INTEGRATOR_IRQCONT_BASE + INTEGRATOR_IRQENABLECLEAR)
+#define INTEGRATOR_IRQCONT_IRQSOFT (INTEGRATOR_IRQCONT_BASE + INTEGRATOR_IRQSOFT)
+#define INTEGRATOR_IRQCONT_IRQSOFTSET (INTEGRATOR_IRQCONT_BASE + INTEGRATOR_IRQSOFTSET)
+#define INTEGRATOR_IRQCONT_IRQSOFTCLEAR (INTEGRATOR_IRQCONT_BASE + INTEGRATOR_IRQSOFTCLEAR)
+#define INTEGRATOR_IRQCONT_FIQSTATUS (INTEGRATOR_IRQCONT_BASE + INTEGRATOR_FIQSTATUS)
+#define INTEGRATOR_IRQCONT_FIQRAWSTATUS (INTEGRATOR_IRQCONT_BASE + INTEGRATOR_FIQRAWSTATUS)
+#define INTEGRATOR_IRQCONT_FIQENABLE (INTEGRATOR_IRQCONT_BASE + INTEGRATOR_FIQENABLE)
+#define INTEGRATOR_IRQCONT_FIQENABLESET (INTEGRATOR_IRQCONT_BASE + INTEGRATOR_FIQENABLESET)
+#define INTEGRATOR_IRQCONT_FIQENABLECLEAR (INTEGRATOR_IRQCONT_BASE + INTEGRATOR_FIQENABLECLEAR)
+#define INTEGRATOR_IRQCONT_FIQSOFT (INTEGRATOR_IRQCONT_BASE + INTEGRATOR_FIQSOFT)
+
+// Interrupt controller registers
+#define CYG_DEVICE_ICTL_BASE INTEGRATOR_IRQCONT_BASE
+#define CYG_DEVICE_IRQ_Status \
+ ((volatile cyg_uint32 *) (CYG_DEVICE_ICTL_BASE + INTEGRATOR_IRQSTATUS))
+ // Current status, read only
+#define CYG_DEVICE_IRQ_Enable \
+ ((volatile cyg_uint32 *) (CYG_DEVICE_ICTL_BASE + INTEGRATOR_IRQENABLE))
+ // Enable status, read only
+#define CYG_DEVICE_IRQ_EnableSet \
+ ((volatile cyg_uint32 *) (CYG_DEVICE_ICTL_BASE + INTEGRATOR_IRQENABLESET))
+ // Enable (1's only), write only
+#define CYG_DEVICE_IRQ_EnableClear \
+ ((volatile cyg_uint32 *) (CYG_DEVICE_ICTL_BASE + INTEGRATOR_IRQENABLECLEAR))
+ // Disable (1's only), write only
+
+// Timer registers
+#define INTEGRATOR_CT_BASE 0x13000000 /* Counter/Timers */
+
+#define INTEGRATOR_TIMER0_BASE INTEGRATOR_CT_BASE
+#define INTEGRATOR_TIMER1_BASE (INTEGRATOR_CT_BASE + 0x100)
+#define INTEGRATOR_TIMER2_BASE (INTEGRATOR_CT_BASE + 0x200)
+
+#define CYG_DEVICE_TIMER_BASE INTEGRATOR_TIMER2_BASE
+
+#define CYG_DEVICE_TIMER_LOAD \
+ ((volatile cyg_uint32 *) (CYG_DEVICE_TIMER_BASE + 0x00))
+ // Load value, read/write
+#define CYG_DEVICE_TIMER_CURRENT \
+ ((volatile cyg_uint32 *) (CYG_DEVICE_TIMER_BASE + 0x04))
+ // Current value, read
+#define CYG_DEVICE_TIMER_CONTROL \
+ ((volatile cyg_uint32 *) (CYG_DEVICE_TIMER_BASE + 0x08))
+ // Control register, read/write
+#define CYG_DEVICE_TIMER_CLEAR \
+ ((volatile cyg_uint32 *) (CYG_DEVICE_TIMER_BASE + 0x0C))
+ // Clears interrrupt, write only
+
+// Clock/timer control register
+#define CTL_ENABLE 0x80 // Bit 7: 1 - counter enabled
+#define CTL_DISABLE 0x00 // 0 - counter disabled
+#define CTL_FREERUN 0x00 // Bit 6: 0 - free running counter
+#define CTL_PERIODIC 0x40 // 1 - periodic timer mode
+#define CTL_SCALE_1 0x00 // Bits 32: 00 - Scale clock by 1
+#define CTL_SCALE_16 0x04 // 01 - Scale by 16
+#define CTL_SCALE_256 0x08 // 10 - Scale by 256
+ // 12.8us/tick
+/*-------------------------------------------------------------------------------
+ * From AMBA UART (PL010) Block Specification (ARM-0001-CUST-DSPC-A03)
+ * -------------------------------------------------------------------------------
+ * UART Register Offsets.
+ */
+#define AMBA_UARTDR 0x00 /* Data read or written from the interface. */
+#define AMBA_UARTRSR 0x04 /* Receive status register (Read). */
+#define AMBA_UARTECR 0x04 /* Error clear register (Write). */
+#define AMBA_UARTLCR_H 0x08 /* Line control register, high byte. */
+#define AMBA_UARTLCR_M 0x0C /* Line control register, middle byte. */
+#define AMBA_UARTLCR_L 0x10 /* Line control register, low byte. */
+#define AMBA_UARTCR 0x14 /* Control register. */
+#define AMBA_UARTFR 0x18 /* Flag register (Read only). */
+#define AMBA_UARTIIR 0x1C /* Interrupt indentification register (Read). */
+#define AMBA_UARTICR 0x1C /* Interrupt clear register (Write). */
+#define AMBA_UARTILPR 0x20 /* IrDA low power counter register. */
+
+#define AMBA_UARTRSR_OE 0x08
+#define AMBA_UARTRSR_BE 0x04
+#define AMBA_UARTRSR_PE 0x02
+#define AMBA_UARTRSR_FE 0x01
+
+#define AMBA_UARTFR_TXFF 0x20
+#define AMBA_UARTFR_RXFE 0x10
+#define AMBA_UARTFR_BUSY 0x08
+#define AMBA_UARTFR_TMSK (AMBA_UARTFR_TXFF + AMBA_UARTFR_BUSY)
+
+#define AMBA_UARTCR_RTIE 0x40
+#define AMBA_UARTCR_TIE 0x20
+#define AMBA_UARTCR_RIE 0x10
+#define AMBA_UARTCR_MSIE 0x08
+#define AMBA_UARTCR_IIRLP 0x04
+#define AMBA_UARTCR_SIREN 0x02
+#define AMBA_UARTCR_UARTEN 0x01
+
+#define AMBA_UARTLCR_H_WLEN_8 0x60
+#define AMBA_UARTLCR_H_WLEN_7 0x40
+#define AMBA_UARTLCR_H_WLEN_6 0x20
+#define AMBA_UARTLCR_H_WLEN_5 0x00
+#define AMBA_UARTLCR_H_FEN 0x10
+#define AMBA_UARTLCR_H_STP2 0x08
+#define AMBA_UARTLCR_H_EPS 0x04
+#define AMBA_UARTLCR_H_PEN 0x02
+#define AMBA_UARTLCR_H_BRK 0x01
+
+#define AMBA_UARTIIR_RTIS 0x08
+#define AMBA_UARTIIR_TIS 0x04
+#define AMBA_UARTIIR_RIS 0x02
+#define AMBA_UARTIIR_MIS 0x01
+
+#define ARM_BAUD_460800 1
+#define ARM_BAUD_230400 3
+#define ARM_BAUD_115200 7
+#define ARM_BAUD_57600 15
+#define ARM_BAUD_38400 23
+#define ARM_BAUD_19200 47
+#define ARM_BAUD_14400 63
+#define ARM_BAUD_9600 95
+#define ARM_BAUD_4800 191
+#define ARM_BAUD_2400 383
+#define ARM_BAUD_1200 767
+
+// PCI Base area
+#define INTEGRATOR_PCI_BASE 0x40000000
+#define INTEGRATOR_PCI_SIZE 0x3FFFFFFF
+
+// memory map as seen by the CPU on the local bus
+#define CPU_PCI_IO_ADRS 0x60000000 // PCI I/O space base
+#define CPU_PCI_IO_SIZE 0x10000
+
+#define CPU_PCI_CNFG_ADRS 0x61000000 // PCI config space
+#define CPU_PCI_CNFG_SIZE 0x1000000
+
+#define PCI_MEM_BASE 0x40000000 // 512M to xxx
+// unused 256M from A0000000-AFFFFFFF might be used for I2O ???
+#define PCI_IO_BASE 0x60000000 // 16M to xxx
+// unused (128-16)M from B1000000-B7FFFFFF
+#define PCI_CONFIG_BASE 0x61000000 // 16M to xxx
+// unused ((128-16)M - 64K) from XXX
+
+#define PCI_V3_BASE 0x62000000
+
+// V3 PCI bridge controller
+#define V3_BASE 0x62000000 // V360EPC registers
+
+#define V3_PCI_VENDOR 0x00000000
+#define V3_PCI_DEVICE 0x00000002
+#define V3_PCI_CMD 0x00000004
+#define V3_PCI_STAT 0x00000006
+#define V3_PCI_CC_REV 0x00000008
+#define V3_PCI_HDR_CF 0x0000000C
+#define V3_PCI_IO_BASE 0x00000010
+#define V3_PCI_BASE0 0x00000014
+#define V3_PCI_BASE1 0x00000018
+#define V3_PCI_SUB_VENDOR 0x0000002C
+#define V3_PCI_SUB_ID 0x0000002E
+#define V3_PCI_ROM 0x00000030
+#define V3_PCI_BPARAM 0x0000003C
+#define V3_PCI_MAP0 0x00000040
+#define V3_PCI_MAP1 0x00000044
+#define V3_PCI_INT_STAT 0x00000048
+#define V3_PCI_INT_CFG 0x0000004C
+#define V3_LB_BASE0 0x00000054
+#define V3_LB_BASE1 0x00000058
+#define V3_LB_MAP0 0x0000005E
+#define V3_LB_MAP1 0x00000062
+#define V3_LB_BASE2 0x00000064
+#define V3_LB_MAP2 0x00000066
+#define V3_LB_SIZE 0x00000068
+#define V3_LB_IO_BASE 0x0000006E
+#define V3_FIFO_CFG 0x00000070
+#define V3_FIFO_PRIORITY 0x00000072
+#define V3_FIFO_STAT 0x00000074
+#define V3_LB_ISTAT 0x00000076
+#define V3_LB_IMASK 0x00000077
+#define V3_SYSTEM 0x00000078
+#define V3_LB_CFG 0x0000007A
+#define V3_PCI_CFG 0x0000007C
+#define V3_DMA_PCI_ADR0 0x00000080
+#define V3_DMA_PCI_ADR1 0x00000090
+#define V3_DMA_LOCAL_ADR0 0x00000084
+#define V3_DMA_LOCAL_ADR1 0x00000094
+#define V3_DMA_LENGTH0 0x00000088
+#define V3_DMA_LENGTH1 0x00000098
+#define V3_DMA_CSR0 0x0000008B
+#define V3_DMA_CSR1 0x0000009B
+#define V3_DMA_CTLB_ADR0 0x0000008C
+#define V3_DMA_CTLB_ADR1 0x0000009C
+#define V3_DMA_DELAY 0x000000E0
+#define V3_MAIL_DATA 0x000000C0
+#define V3_PCI_MAIL_IEWR 0x000000D0
+#define V3_PCI_MAIL_IERD 0x000000D2
+#define V3_LB_MAIL_IEWR 0x000000D4
+#define V3_LB_MAIL_IERD 0x000000D6
+#define V3_MAIL_WR_STAT 0x000000D8
+#define V3_MAIL_RD_STAT 0x000000DA
+#define V3_QBA_MAP 0x000000DC
+
+// SYSTEM register bits
+#define V3_SYSTEM_M_RST_OUT (1 << 15)
+#define V3_SYSTEM_M_LOCK (1 << 14)
+
+// PCI_CFG bits
+#define V3_PCI_CFG_M_RETRY_EN (1 << 10)
+#define V3_PCI_CFG_M_AD_LOW1 (1 << 9)
+#define V3_PCI_CFG_M_AD_LOW0 (1 << 8)
+
+// PCI MAP register bits (PCI -> Local bus)
+#define V3_PCI_MAP_M_MAP_ADR 0xFFF00000
+#define V3_PCI_MAP_M_RD_POST_INH (1 << 15)
+#define V3_PCI_MAP_M_ROM_SIZE (1 << 11 | 1 << 10)
+#define V3_PCI_MAP_M_SWAP (1 << 9 | 1 << 8)
+#define V3_PCI_MAP_M_ADR_SIZE 0x000000F0
+#define V3_PCI_MAP_M_REG_EN (1 << 1)
+#define V3_PCI_MAP_M_ENABLE (1 << 0)
+
+// 9 => 512M window size
+#define V3_PCI_MAP_M_ADR_SIZE_512M 0x00000090
+
+// A => 1024M window size
+#define V3_PCI_MAP_M_ADR_SIZE_1024M 0x000000A0
+
+// LB_BASE register bits (Local bus -> PCI)
+#define V3_LB_BASE_M_MAP_ADR 0xFFF00000
+#define V3_LB_BASE_M_SWAP (1 << 8 | 1 << 9)
+#define V3_LB_BASE_M_ADR_SIZE 0x000000F0
+#define V3_LB_BASE_M_PREFETCH (1 << 3)
+#define V3_LB_BASE_M_ENABLE (1 << 0)
+
+// PCI COMMAND REGISTER bits
+#define V3_COMMAND_M_FBB_EN (1 << 9)
+#define V3_COMMAND_M_SERR_EN (1 << 8)
+#define V3_COMMAND_M_PAR_EN (1 << 6)
+#define V3_COMMAND_M_MASTER_EN (1 << 2)
+#define V3_COMMAND_M_MEM_EN (1 << 1)
+#define V3_COMMAND_M_IO_EN (1 << 0)
+
+#define INTEGRATOR_SC_BASE 0x11000000
+#define INTEGRATOR_SC_PCIENABLE_OFFSET 0x18
+#define INTEGRATOR_SC_PCIENABLE \
+ (INTEGRATOR_SC_BASE + INTEGRATOR_SC_PCIENABLE_OFFSET)
+
+
+
+#define SZ_256M 0x10000000
+
+// Integrator EBI register definitions
+
+#define INTEGRATOR_EBI_BASE 0x12000000
+
+#define INTEGRATOR_EBI_CSR0_OFFSET 0x00
+#define INTEGRATOR_EBI_CSR1_OFFSET 0x04
+#define INTEGRATOR_EBI_CSR2_OFFSET 0x08
+#define INTEGRATOR_EBI_CSR3_OFFSET 0x0C
+#define INTEGRATOR_EBI_LOCK_OFFSET 0x20
+
+#define INTEGRATOR_EBI_CSR0 (INTEGRATOR_EBI_BASE + INTEGRATOR_EBI_CSR0_OFFSET)
+#define INTEGRATOR_EBI_CSR1 (INTEGRATOR_EBI_BASE + INTEGRATOR_EBI_CSR1_OFFSET)
+#define INTEGRATOR_EBI_CSR2 (INTEGRATOR_EBI_BASE + INTEGRATOR_EBI_CSR2_OFFSET)
+#define INTEGRATOR_EBI_CSR3 (INTEGRATOR_EBI_BASE + INTEGRATOR_EBI_CSR3_OFFSET)
+#define INTEGRATOR_EBI_LOCK (INTEGRATOR_EBI_BASE + INTEGRATOR_EBI_LOCK_OFFSET)
+
+#define INTEGRATOR_EBI_8_BIT 0x00
+#define INTEGRATOR_EBI_16_BIT 0x01
+#define INTEGRATOR_EBI_32_BIT 0x02
+#define INTEGRATOR_EBI_WRITE_ENABLE 0x04
+#define INTEGRATOR_EBI_SYNC 0x08
+#define INTEGRATOR_EBI_WS_2 0x00
+#define INTEGRATOR_EBI_WS_3 0x10
+#define INTEGRATOR_EBI_WS_4 0x20
+#define INTEGRATOR_EBI_WS_5 0x30
+#define INTEGRATOR_EBI_WS_6 0x40
+#define INTEGRATOR_EBI_WS_7 0x50
+#define INTEGRATOR_EBI_WS_8 0x60
+#define INTEGRATOR_EBI_WS_9 0x70
+#define INTEGRATOR_EBI_WS_10 0x80
+#define INTEGRATOR_EBI_WS_11 0x90
+#define INTEGRATOR_EBI_WS_12 0xA0
+#define INTEGRATOR_EBI_WS_13 0xB0
+#define INTEGRATOR_EBI_WS_14 0xC0
+#define INTEGRATOR_EBI_WS_15 0xD0
+#define INTEGRATOR_EBI_WS_16 0xE0
+#define INTEGRATOR_EBI_WS_17 0xF0
+
+#define FL_SC_CONTROL 0x06 // Enable Flash Write and Vpp
+
+/*
+ * System Controller
+ *
+ */
+#define INTEGRATOR_SC_ID_OFFSET 0x00
+#define INTEGRATOR_SC_OSC_OFFSET 0x04
+#define INTEGRATOR_SC_CTRLS_OFFSET 0x08
+#define INTEGRATOR_SC_CTRLC_OFFSET 0x0C
+#define INTEGRATOR_SC_DEC_OFFSET 0x10
+#define INTEGRATOR_SC_ARB_OFFSET 0x14
+#define INTEGRATOR_SC_PCIENABLE_OFFSET 0x18
+#define INTEGRATOR_SC_LOCK_OFFSET 0x1C
+
+#define INTEGRATOR_SC_BASE 0x11000000
+#define INTEGRATOR_SC_ID (INTEGRATOR_SC_BASE + INTEGRATOR_SC_ID_OFFSET)
+#define INTEGRATOR_SC_OSC (INTEGRATOR_SC_BASE + INTEGRATOR_SC_OSC_OFFSET)
+#define INTEGRATOR_SC_CTRLS (INTEGRATOR_SC_BASE + INTEGRATOR_SC_CTRLS_OFFSET)
+#define INTEGRATOR_SC_CTRLC (INTEGRATOR_SC_BASE + INTEGRATOR_SC_CTRLC_OFFSET)
+#define INTEGRATOR_SC_DEC (INTEGRATOR_SC_BASE + INTEGRATOR_SC_DEC_OFFSET)
+#define INTEGRATOR_SC_ARB (INTEGRATOR_SC_BASE + INTEGRATOR_SC_ARB_OFFSET)
+#define INTEGRATOR_SC_PCIENABLE (INTEGRATOR_SC_BASE + INTEGRATOR_SC_PCIENABLE_OFFSET)
+#define INTEGRATOR_SC_LOCK (INTEGRATOR_SC_BASE + INTEGRATOR_SC_LOCK_OFFSET)
+
+#endif //CYGONCE_HAL_INTEGRATOR_H
+
diff --git a/ecos/packages/hal/arm/integrator/current/include/hal_platform_ints.h b/ecos/packages/hal/arm/integrator/current/include/hal_platform_ints.h
new file mode 100644
index 0000000..a2ac429
--- /dev/null
+++ b/ecos/packages/hal/arm/integrator/current/include/hal_platform_ints.h
@@ -0,0 +1,109 @@
+#ifndef CYGONCE_HAL_PLATFORM_INTS_H
+#define CYGONCE_HAL_PLATFORM_INTS_H
+//==========================================================================
+//
+// hal_platform_ints.h
+//
+// HAL Interrupt and clock support
+//
+//==========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//==========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): David A Rusling
+// Contributors: Philippe Robin
+// Date: November 7, 2000
+// Purpose: Define Interrupt support
+// Description: The interrupt details for the INTEGRATOR are defined here.
+// Usage:
+// #include <cyg/hal/hal_platform_ints.h>
+// ...
+//
+//
+//####DESCRIPTIONEND####
+//
+//==========================================================================
+
+#define CYGNUM_HAL_INTERRUPT_SOFTINT 0
+#define CYGNUM_HAL_INTERRUPT_UARTINT0 1
+#define CYGNUM_HAL_INTERRUPT_UARTINT1 2
+#define CYGNUM_HAL_INTERRUPT_KMIINT0 3
+#define CYGNUM_HAL_INTERRUPT_KMIINT1 4
+#define CYGNUM_HAL_INTERRUPT_TIMERINT0 5
+#define CYGNUM_HAL_INTERRUPT_TIMERINT1 6
+#define CYGNUM_HAL_INTERRUPT_TIMERINT2 7
+#define CYGNUM_HAL_INTERRUPT_RTCINT 8
+#define CYGNUM_HAL_INTERRUPT_EXPINT0 9
+#define CYGNUM_HAL_INTERRUPT_EXPINT1 10
+#define CYGNUM_HAL_INTERRUPT_EXPINT2 11
+#define CYGNUM_HAL_INTERRUPT_EXPINT3 12
+#define CYGNUM_HAL_INTERRUPT_PCIINT0 13
+#define CYGNUM_HAL_INTERRUPT_PCIINT1 14
+#define CYGNUM_HAL_INTERRUPT_PCIINT2 15
+#define CYGNUM_HAL_INTERRUPT_PCIINT3 16
+#define CYGNUM_HAL_INTERRUPT_V3INT 17
+#define CYGNUM_HAL_INTERRUPT_CPINT0 18
+#define CYGNUM_HAL_INTERRUPT_CPINT1 19
+#define CYGNUM_HAL_INTERRUPT_LBUSTIMEOUT 20
+#define CYGNUM_HAL_INTERRUPT_APCINT 21
+#define CYGNUM_HAL_INTERRUPT_CM_SOFTINT 24
+#define CYGNUM_HAL_INTERRUPT_CM_COMMRX 25
+#define CYGNUM_HAL_INTERRUPT_CM_COMMTX 26
+
+#define CYGNUM_HAL_ISR_MIN 0
+#define CYGNUM_HAL_ISR_MAX 26
+#define CYGNUM_HAL_ISR_COUNT 27
+
+// The vector used by the Real time clock
+#define CYGNUM_HAL_INTERRUPT_RTC CYGNUM_HAL_INTERRUPT_TIMERINT2
+
+//----------------------------------------------------------------------------
+// Microsecond delay support.
+
+externC void hal_delay_us(cyg_uint32 usecs);
+#define HAL_DELAY_US(n) hal_delay_us(n);
+
+//----------------------------------------------------------------------------
+// Reset.
+
+#define HAL_PLATFORM_RESET() \
+{ \
+ HAL_WRITE_UINT8( INTEGRATOR_SC_CTRLS , 1 ); \
+}
+
+#define HAL_PLATFORM_RESET_ENTRY 0x24000000
+
+//----------------------------------------------------------------------------
+
+#endif // CYGONCE_HAL_PLATFORM_INTS_H
diff --git a/ecos/packages/hal/arm/integrator/current/include/hal_platform_setup.h b/ecos/packages/hal/arm/integrator/current/include/hal_platform_setup.h
new file mode 100644
index 0000000..249d70b
--- /dev/null
+++ b/ecos/packages/hal/arm/integrator/current/include/hal_platform_setup.h
@@ -0,0 +1,136 @@
+#ifndef CYGONCE_HAL_PLATFORM_SETUP_H
+#define CYGONCE_HAL_PLATFORM_SETUP_H
+
+/*=============================================================================
+//
+// hal_platform_setup.h
+//
+// Platform specific support for HAL (assembly code)
+//
+//=============================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): David A Rusling
+// Contributors: Philippe Robin
+// Date: November 7, 2000
+// Purpose: ARM INTEGRATOR platform specific support routines
+// Description:
+// Usage: #include <cyg/hal/hal_platform_setup.h>
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================*/
+
+#include <cyg/hal/hal_integrator.h>
+
+#ifdef CYG_HAL_STARTUP_ROMRAM
+#define CYGSEM_HAL_ROM_RESET_USES_JUMP
+#endif
+
+// Define macro used to diddle the LEDs during early initialization.
+// Can use r0+r1. Argument in \x.
+// Control the LEDs PP0-PP3. This requires the jumpers on pins 9-16 to
+// be set on LK11 in order to be visible. Otherwise the parallel port
+// data pins are diddled instead.
+
+
+#ifdef CYGHWR_HAL_ARM_INTEGRATOR_DIAG_LEDS
+#define CYGHWR_LED_MACRO \
+ mov r1, #(15 & (\x)) ;\
+ ldr r0,=INTEGRATOR_DBG_BASE ;\
+ strb r1, [r0, #INTEGRATOR_DBG_LEDS_OFFSET] ;
+#endif
+
+#define PLATFORM_SETUP1 platform_setup1
+
+ .macro platform_setup1
+#ifdef CYG_HAL_STARTUP_ROMRAM
+ // This warps execution away from location 0+x to 0x24000000+x
+ // so that we can turn the FLASH remapping off.
+ orr pc,pc,#0x24000000
+ nop
+ nop
+ nop
+ nop
+#endif
+ ldr r0,=INTEGRATOR_DBG_BASE
+ ldr r1,=0
+ strb r1, [r0, #INTEGRATOR_DBG_LEDS_OFFSET]
+ ldr r0, =INTEGRATOR_HDR_BASE
+ ldr r1, [r0, #INTEGRATOR_HDR_CTRL_OFFSET]
+ orr r1, r1, #INTEGRATOR_HDR_CTRL_REMAP
+ str r1, [r0, #INTEGRATOR_HDR_CTRL_OFFSET]
+ ldr r1, =INTEGRATOR_IRQCONT_BASE
+ ldr r0, =0xFFFFFFFF
+ str r0, [r1, #INTEGRATOR_IRQENABLECLEAR]
+ str r0, [r1, #INTEGRATOR_FIQENABLECLEAR]
+ ldr r0,=INTEGRATOR_DBG_BASE
+ ldr r1,=0xF
+ strb r1, [r0, #INTEGRATOR_DBG_LEDS_OFFSET]
+
+ LED 7
+#ifdef CYG_HAL_STARTUP_ROMRAM
+#if 0
+ // Compute [logical] base address of this image in ROM
+ bl 10f
+10: mov r9,lr // R9 = ROM address of 10:
+ ldr r8,=10b // R8 = RAM address of 10:
+ sub r9,r9,r8 // R9 = ROM-RAM
+ ldr r0,=__exception_handlers // R0 = RAM address of __exception_handlers
+ add r0,r0,r9 // R0 = ROM address of __exception_handlers
+#endif
+
+ ldr r0,=0x24000000
+ ldr r1,=__exception_handlers // ram base & length
+ ldr r2,=__rom_data_end
+20: ldr r3,[r0],#4
+ str r3,[r1],#4
+ cmp r1,r2
+ bne 20b
+ ldr r0,=30f
+ mov pc,r0
+ nop
+ nop
+ nop
+ nop
+30:
+#endif
+ LED 6
+
+ .endm
+
+/*---------------------------------------------------------------------------*/
+/* end of hal_platform_setup.h */
+#endif /* CYGONCE_HAL_PLATFORM_SETUP_H */
diff --git a/ecos/packages/hal/arm/integrator/current/include/pkgconf/mlt_arm_integrator_ram.h b/ecos/packages/hal/arm/integrator/current/include/pkgconf/mlt_arm_integrator_ram.h
new file mode 100644
index 0000000..c31cd05
--- /dev/null
+++ b/ecos/packages/hal/arm/integrator/current/include/pkgconf/mlt_arm_integrator_ram.h
@@ -0,0 +1,21 @@
+// eCos memory layout - Tue Feb 29 14:11:30 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 (0x01000000)
+#define CYGMEM_REGION_ram_ATTR (CYGMEM_REGION_ATTR_R | CYGMEM_REGION_ATTR_W)
+extern char CYG_LABEL_NAME (_reserved) [];
+#ifndef __ASSEMBLER__
+extern char CYG_LABEL_NAME (__heap1) [];
+#endif
+#define CYGMEM_SECTION_heap1 (CYG_LABEL_NAME (__heap1))
+#define CYGMEM_SECTION_heap1_SIZE (0xf00000 - (size_t) CYG_LABEL_NAME (__heap1))
+#ifndef __ASSEMBLER__
+extern char CYG_LABEL_NAME (__pci_window) [];
+#endif
+#define CYGMEM_SECTION_pci_window (CYG_LABEL_NAME (__pci_window))
+#define CYGMEM_SECTION_pci_window_SIZE (0x100000)
diff --git a/ecos/packages/hal/arm/integrator/current/include/pkgconf/mlt_arm_integrator_ram.ldi b/ecos/packages/hal/arm/integrator/current/include/pkgconf/mlt_arm_integrator_ram.ldi
new file mode 100644
index 0000000..b83690b
--- /dev/null
+++ b/ecos/packages/hal/arm/integrator/current/include/pkgconf/mlt_arm_integrator_ram.ldi
@@ -0,0 +1,30 @@
+// eCos memory layout - Tue Feb 29 14:11:30 2000
+
+// This is a generated file - do not edit
+
+#include <cyg/infra/cyg_type.inc>
+
+MEMORY
+{
+ ram : ORIGIN = 0, LENGTH = 0x01000000
+}
+
+SECTIONS
+{
+ SECTIONS_BEGIN
+ SECTION_fixed_vectors (ram, 0x20, LMA_EQ_VMA)
+ SECTION_rom_vectors (ram, 0x40000, LMA_EQ_VMA)
+ SECTION_RELOCS (ram, ALIGN (0x1), 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_got (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)
+ CYG_LABEL_DEFN(__heap1) = ALIGN (0x8);
+ CYG_LABEL_DEFN(__pci_window) = 0xf00000; . = CYG_LABEL_DEFN(__pci_window) + 0x100000;
+ SECTIONS_END
+}
diff --git a/ecos/packages/hal/arm/integrator/current/include/pkgconf/mlt_arm_integrator_ram.mlt b/ecos/packages/hal/arm/integrator/current/include/pkgconf/mlt_arm_integrator_ram.mlt
new file mode 100644
index 0000000..77484c7
--- /dev/null
+++ b/ecos/packages/hal/arm/integrator/current/include/pkgconf/mlt_arm_integrator_ram.mlt
@@ -0,0 +1,12 @@
+version 0
+region ram 0 01000000 0 !
+section reserved 8000 1 0 0 1 1 1 1 0 0 rom_vectors rom_vectors !
+section rom_vectors 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 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 !
diff --git a/ecos/packages/hal/arm/integrator/current/include/pkgconf/mlt_arm_integrator_rom.h b/ecos/packages/hal/arm/integrator/current/include/pkgconf/mlt_arm_integrator_rom.h
new file mode 100644
index 0000000..b8a3ec7
--- /dev/null
+++ b/ecos/packages/hal/arm/integrator/current/include/pkgconf/mlt_arm_integrator_rom.h
@@ -0,0 +1,24 @@
+// eCos memory layout - Tue Feb 29 14:25:49 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 (0x01000000)
+#define CYGMEM_REGION_ram_ATTR (CYGMEM_REGION_ATTR_R | CYGMEM_REGION_ATTR_W)
+#define CYGMEM_REGION_rom (0x24000000)
+#define CYGMEM_REGION_rom_SIZE (0x02000000)
+#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 (0xf00000 - (size_t) CYG_LABEL_NAME (__heap1))
+#ifndef __ASSEMBLER__
+extern char CYG_LABEL_NAME (__pci_window) [];
+#endif
+#define CYGMEM_SECTION_pci_window (CYG_LABEL_NAME (__pci_window))
+#define CYGMEM_SECTION_pci_window_SIZE (0x100000)
+
diff --git a/ecos/packages/hal/arm/integrator/current/include/pkgconf/mlt_arm_integrator_rom.ldi b/ecos/packages/hal/arm/integrator/current/include/pkgconf/mlt_arm_integrator_rom.ldi
new file mode 100644
index 0000000..4680d79
--- /dev/null
+++ b/ecos/packages/hal/arm/integrator/current/include/pkgconf/mlt_arm_integrator_rom.ldi
@@ -0,0 +1,30 @@
+// eCos memory layout - Tue Feb 29 14:25:49 2000
+
+// This is a generated file - do not edit
+
+#include <cyg/infra/cyg_type.inc>
+
+MEMORY
+{
+ ram : ORIGIN = 0, LENGTH = 0x01000000
+ rom : ORIGIN = 0x24000000, LENGTH = 0x02000000
+}
+
+SECTIONS
+{
+ SECTIONS_BEGIN
+ SECTION_rom_vectors (rom, 0x24000000, 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_got (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, ALIGN (0x4), FOLLOWING (.gcc_except_table))
+ SECTION_bss (ram, ALIGN (0x4), LMA_EQ_VMA)
+ CYG_LABEL_DEFN(__heap1) = ALIGN (0x8);
+ CYG_LABEL_DEFN(__pci_window) = 0xf00000; . = CYG_LABEL_DEFN(__pci_window) + 0x100000;
+ SECTIONS_END
+}
diff --git a/ecos/packages/hal/arm/integrator/current/include/pkgconf/mlt_arm_integrator_rom.mlt b/ecos/packages/hal/arm/integrator/current/include/pkgconf/mlt_arm_integrator_rom.mlt
new file mode 100644
index 0000000..5b516aa
--- /dev/null
+++ b/ecos/packages/hal/arm/integrator/current/include/pkgconf/mlt_arm_integrator_rom.mlt
@@ -0,0 +1,13 @@
+version 0
+region ram 0 01000000 0 !
+region rom 24000000 02000000 1 !
+section reserved 800 1 0 0 1 1 1 0 0 0 data !
+section data 0 4 1 1 0 1 0 0 bss !
+section bss 0 4 0 1 0 0 0 0 !
+section rom_vectors 0 1 0 1 1 1 1 1 24000000 02000000 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 !
diff --git a/ecos/packages/hal/arm/integrator/current/include/pkgconf/mlt_arm_integrator_romram.h b/ecos/packages/hal/arm/integrator/current/include/pkgconf/mlt_arm_integrator_romram.h
new file mode 100644
index 0000000..c31cd05
--- /dev/null
+++ b/ecos/packages/hal/arm/integrator/current/include/pkgconf/mlt_arm_integrator_romram.h
@@ -0,0 +1,21 @@
+// eCos memory layout - Tue Feb 29 14:11:30 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 (0x01000000)
+#define CYGMEM_REGION_ram_ATTR (CYGMEM_REGION_ATTR_R | CYGMEM_REGION_ATTR_W)
+extern char CYG_LABEL_NAME (_reserved) [];
+#ifndef __ASSEMBLER__
+extern char CYG_LABEL_NAME (__heap1) [];
+#endif
+#define CYGMEM_SECTION_heap1 (CYG_LABEL_NAME (__heap1))
+#define CYGMEM_SECTION_heap1_SIZE (0xf00000 - (size_t) CYG_LABEL_NAME (__heap1))
+#ifndef __ASSEMBLER__
+extern char CYG_LABEL_NAME (__pci_window) [];
+#endif
+#define CYGMEM_SECTION_pci_window (CYG_LABEL_NAME (__pci_window))
+#define CYGMEM_SECTION_pci_window_SIZE (0x100000)
diff --git a/ecos/packages/hal/arm/integrator/current/include/pkgconf/mlt_arm_integrator_romram.ldi b/ecos/packages/hal/arm/integrator/current/include/pkgconf/mlt_arm_integrator_romram.ldi
new file mode 100644
index 0000000..5a6680c
--- /dev/null
+++ b/ecos/packages/hal/arm/integrator/current/include/pkgconf/mlt_arm_integrator_romram.ldi
@@ -0,0 +1,30 @@
+// eCos memory layout - Tue Feb 29 14:11:30 2000
+
+// This is a generated file - do not edit
+
+#include <cyg/infra/cyg_type.inc>
+
+MEMORY
+{
+ ram : ORIGIN = 0, LENGTH = 0x01000000
+}
+
+SECTIONS
+{
+ SECTIONS_BEGIN
+ SECTION_rom_vectors (ram, 0x00000000, LMA_EQ_VMA)
+ SECTION_fixed_vectors (ram, 0x00000020, LMA_EQ_VMA)
+ SECTION_RELOCS (ram, ALIGN (0x1), 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_got (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)
+ CYG_LABEL_DEFN(__heap1) = ALIGN (0x8);
+ CYG_LABEL_DEFN(__pci_window) = 0xf00000; . = CYG_LABEL_DEFN(__pci_window) + 0x100000;
+ SECTIONS_END
+}
diff --git a/ecos/packages/hal/arm/integrator/current/include/plf_io.h b/ecos/packages/hal/arm/integrator/current/include/plf_io.h
new file mode 100644
index 0000000..e36c58c
--- /dev/null
+++ b/ecos/packages/hal/arm/integrator/current/include/plf_io.h
@@ -0,0 +1,250 @@
+#ifndef CYGONCE_PLF_IO_H
+#define CYGONCE_PLF_IO_H
+
+//=============================================================================
+//
+// plf_io.h
+//
+// Platform specific IO support
+//
+//=============================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): Philippe Robin
+// Contributors: David A Rusling
+// Date: November 7, 2000
+// Purpose: Integrator PCI IO support macros
+// Description:
+// Usage: #include <cyg/hal/plf_io.h>
+//
+//####DESCRIPTIONEND####
+//
+//=============================================================================
+
+#include <pkgconf/hal_arm_integrator.h>
+
+#include <cyg/hal/hal_integrator.h>
+
+#include <cyg/hal/hal_platform_ints.h> // Interrupt vectors
+
+__externC void cyg_plf_pci_init(void);
+
+// Initialization of the PCI bus.
+#define HAL_PCI_INIT() cyg_plf_pci_init()
+
+
+// V3 access routines
+#define _V3Write16(o,v) (*(volatile cyg_uint16 *)(PCI_V3_BASE + (cyg_uint32)(o)) \
+ = (cyg_uint16)(v))
+#define _V3Read16(o) (*(volatile cyg_uint16 *)(PCI_V3_BASE + (cyg_uint32)(o)))
+
+#define _V3Write32(o,v) (*(volatile cyg_uint32 *)(PCI_V3_BASE + (cyg_uint32)(o)) \
+ = (cyg_uint32)(v))
+#define _V3Read32(o) (*(volatile cyg_uint32 *)(PCI_V3_BASE + (cyg_uint32)(o)))
+
+// _V3OpenConfigWindow - open V3 configuration window
+#define _V3OpenConfigWindow() \
+ { \
+ /* Set up base0 to see all 512Mbytes of memory space (not */ \
+ /* prefetchable), this frees up base1 for re-use by configuration*/ \
+ /* memory */ \
+ \
+ _V3Write32 (V3_LB_BASE0, ((INTEGRATOR_PCI_BASE & 0xFFF00000) | \
+ 0x90 | V3_LB_BASE_M_ENABLE)); \
+ /* Set up base1 to point into configuration space, note that MAP1 */ \
+ /* register is set up by pciMakeConfigAddress(). */ \
+ \
+ _V3Write32 (V3_LB_BASE1, ((CPU_PCI_CNFG_ADRS & 0xFFF00000) | \
+ 0x40 | V3_LB_BASE_M_ENABLE)); \
+ }
+
+// _V3CloseConfigWindow - close V3 configuration window
+#define _V3CloseConfigWindow() \
+ { \
+ /* Reassign base1 for use by prefetchable PCI memory */ \
+ _V3Write32 (V3_LB_BASE1, (((INTEGRATOR_PCI_BASE + SZ_256M) & 0xFFF00000) \
+ | 0x84 | V3_LB_BASE_M_ENABLE)); \
+ _V3Write16 (V3_LB_MAP1, \
+ (((INTEGRATOR_PCI_BASE + SZ_256M) & 0xFFF00000) >> 16) | 0x0006); \
+ \
+ /* And shrink base0 back to a 256M window (NOTE: MAP0 already correct) */ \
+ \
+ _V3Write32 (V3_LB_BASE0, ((INTEGRATOR_PCI_BASE & 0xFFF00000) | \
+ 0x80 | V3_LB_BASE_M_ENABLE)); \
+ }
+
+// Compute address necessary to access PCI config space for the given
+// bus and device.
+#define HAL_PCI_CONFIG_ADDRESS( __bus, __devfn, __offset ) \
+ ({ \
+ cyg_uint32 __address, __devicebit; \
+ cyg_uint16 __mapaddress; \
+ cyg_uint32 __dev = CYG_PCI_DEV_GET_DEV(__devfn); /* FIXME to check!! (slot?) */ \
+ \
+ if (__bus == 0) { \
+ /* local bus segment so need a type 0 config cycle */ \
+ /* build the PCI configuration "address" with one-hot in A31-A11 */ \
+ __address = PCI_CONFIG_BASE; \
+ __address |= ((__devfn & 0x07) << 8); \
+ __address |= __offset & 0xFF; \
+ __mapaddress = 0x000A; /* 101=>config cycle, 0=>A1=A0=0 */ \
+ __devicebit = (1 << (__dev + 11)); \
+ \
+ if ((__devicebit & 0xFF000000) != 0) { \
+ /* high order bits are handled by the MAP register */ \
+ __mapaddress |= (__devicebit >> 16); \
+ } else { \
+ /* low order bits handled directly in the address */ \
+ __address |= __devicebit; \
+ } \
+ } else { /* bus !=0 */ \
+ /* not the local bus segment so need a type 1 config cycle */ \
+ /* A31-A24 are don't care (so clear to 0) */ \
+ __mapaddress = 0x000B; /* 101=>config cycle, 1=>A1&A0 from PCI_CFG */ \
+ __address = PCI_CONFIG_BASE; \
+ __address |= ((__bus & 0xFF) << 16); /* bits 23..16 = bus number */ \
+ __address |= ((__dev & 0x1F) << 11); /* bits 15..11 = device number */ \
+ __address |= ((__devfn & 0x07) << 8); /* bits 10..8 = function number*/ \
+ __address |= __offset & 0xFF; /* bits 7..0 = register number*/ \
+ } \
+ _V3Write16(V3_LB_MAP1, __mapaddress); \
+ \
+ __address; \
+ })
+
+// Read a value from the PCI configuration space of the appropriate
+// size at an address composed from the bus, devfn and offset.
+#define HAL_PCI_CFG_READ_UINT8( __bus, __devfn, __offset, __val ) \
+ { \
+ _V3OpenConfigWindow(); \
+ __val = *(volatile cyg_uint8 *)HAL_PCI_CONFIG_ADDRESS(__bus, __devfn, __offset); \
+ _V3CloseConfigWindow(); \
+ }
+
+#define HAL_PCI_CFG_READ_UINT16( __bus, __devfn, __offset, __val ) \
+ { \
+ _V3OpenConfigWindow(); \
+ __val = *(volatile cyg_uint16 *)HAL_PCI_CONFIG_ADDRESS(__bus, __devfn, __offset); \
+ _V3CloseConfigWindow(); \
+ }
+
+#define HAL_PCI_CFG_READ_UINT32( __bus, __devfn, __offset, __val ) \
+ { \
+ _V3OpenConfigWindow(); \
+ __val = *(volatile cyg_uint16 *)HAL_PCI_CONFIG_ADDRESS(__bus, __devfn, __offset); \
+ __val |= (*(volatile cyg_uint16 *)HAL_PCI_CONFIG_ADDRESS(__bus, __devfn, (__offset+2)))<<16; \
+ _V3CloseConfigWindow(); \
+ }
+
+// Write a value to the PCI configuration space of the appropriate
+// size at an address composed from the bus, devfn and offset.
+#define HAL_PCI_CFG_WRITE_UINT8( __bus, __devfn, __offset, __val ) \
+ { \
+ _V3OpenConfigWindow(); \
+ *(volatile cyg_uint8 *)HAL_PCI_CONFIG_ADDRESS(__bus, __devfn, __offset) = __val; \
+ _V3CloseConfigWindow(); \
+ }
+
+#define HAL_PCI_CFG_WRITE_UINT16( __bus, __devfn, __offset, __val ) \
+ { \
+ _V3OpenConfigWindow(); \
+ *(volatile cyg_uint16 *)HAL_PCI_CONFIG_ADDRESS(__bus, __devfn, __offset) = __val; \
+ _V3CloseConfigWindow(); \
+ }
+
+#define HAL_PCI_CFG_WRITE_UINT32( __bus, __devfn, __offset, __val ) \
+ { \
+ _V3OpenConfigWindow(); \
+ *(volatile cyg_uint16 *)HAL_PCI_CONFIG_ADDRESS((__bus), (__devfn), (__offset)) = ((__val) & 0xFFFF); \
+ *(volatile cyg_uint16 *)HAL_PCI_CONFIG_ADDRESS((__bus), (__devfn), ((__offset)+2)) = (((__val)>>16) & 0xFFFF); \
+ _V3CloseConfigWindow(); \
+ }
+
+//-----------------------------------------------------------------------------
+// Resources
+
+// Map PCI device resources starting from these addresses in PCI space.
+#define HAL_PCI_ALLOC_BASE_MEMORY 0
+#define HAL_PCI_ALLOC_BASE_IO 0x4000
+
+// This is where the PCI spaces are mapped in the CPU's address space.
+#define HAL_PCI_PHYSICAL_MEMORY_BASE (PCI_MEM_BASE)
+#define HAL_PCI_PHYSICAL_IO_BASE (PCI_IO_BASE)
+
+// Translate the PCI interrupt requested by the device (INTA#, INTB#,
+// INTC# or INTD#) to the associated CPU interrupt (i.e., HAL vector).
+#define INTA CYGNUM_HAL_INTERRUPT_PCIINT0
+#define INTB CYGNUM_HAL_INTERRUPT_PCIINT1
+#define INTC CYGNUM_HAL_INTERRUPT_PCIINT2
+#define INTD CYGNUM_HAL_INTERRUPT_PCIINT3
+
+#define HAL_PCI_TRANSLATE_INTERRUPT( __bus, __devfn, __vec, __valid) \
+ CYG_MACRO_START \
+ cyg_uint8 __req; \
+ cyg_uint32 __dev; \
+ /* DANGER! For now this is the SDM interrupt table... */ \
+ static const cyg_uint8 irq_tab[12][4] = { \
+ /* INTA INTB INTC INTD */ \
+ {INTA, INTB, INTC, INTD}, /* idsel 20, slot 9 */ \
+ {INTB, INTC, INTD, INTA}, /* idsel 21, slot 10 */ \
+ {INTC, INTD, INTA, INTB}, /* idsel 22, slot 11 */ \
+ {INTD, INTA, INTB, INTC}, /* idsel 23, slot 12 */ \
+ {INTA, INTB, INTC, INTD}, /* idsel 24, slot 13 */ \
+ {INTB, INTC, INTD, INTA}, /* idsel 25, slot 14 */ \
+ {INTC, INTD, INTA, INTB}, /* idsel 26, slot 15 */ \
+ {INTD, INTA, INTB, INTC}, /* idsel 27, slot 16 */ \
+ {INTA, INTB, INTC, INTD}, /* idsel 28, slot 17 */ \
+ {INTB, INTC, INTD, INTA}, /* idsel 29, slot 18 */ \
+ {INTC, INTD, INTA, INTB}, /* idsel 30, slot 19 */ \
+ {INTD, INTA, INTB, INTC} /* idsel 31, slot 20 */ \
+ }; \
+ HAL_PCI_CFG_READ_UINT8(__bus, __devfn, CYG_PCI_CFG_INT_PIN, __req); \
+ __dev = CYG_PCI_DEV_GET_DEV(__devfn); /* FIXME to check!! (slot?)*/ \
+ \
+ /* if PIN = 0, default to A */ \
+ if (__req == 0) \
+ __req = 1; \
+ \
+ __vec = irq_tab[__dev - 9][__req - 1]; \
+ __valid = true; \
+ CYG_MACRO_END
+
+//-----------------------------------------------------------------------------
+
+#define CYGARC_PHYSICAL_ADDRESS(x) (x)
+
+//-----------------------------------------------------------------------------
+// end of plf_io.h
+#endif // CYGONCE_PLF_IO_H
diff --git a/ecos/packages/hal/arm/integrator/current/include/plf_stub.h b/ecos/packages/hal/arm/integrator/current/include/plf_stub.h
new file mode 100644
index 0000000..e2e7817
--- /dev/null
+++ b/ecos/packages/hal/arm/integrator/current/include/plf_stub.h
@@ -0,0 +1,100 @@
+#ifndef CYGONCE_HAL_PLF_STUB_H
+#define CYGONCE_HAL_PLF_STUB_H
+
+//=============================================================================
+//
+// plf_stub.h
+//
+// Platform header for GDB stub support.
+//
+//=============================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): David A Rusling
+// Contributors:Philippe Robin
+// Date: November 7, 2000
+// Purpose: Platform HAL stub support for ARM INTEGRATOR boards.
+// Usage: #include <cyg/hal/plf_stub.h>
+//
+//####DESCRIPTIONEND####
+//
+//=============================================================================
+
+#include <pkgconf/hal.h>
+#include <pkgconf/hal_arm_integrator.h>
+
+#ifdef CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS
+
+#include <cyg/infra/cyg_type.h> // CYG_UNUSED_PARAM
+
+#include <cyg/hal/arm_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.
+
+#define HAL_STUB_PLATFORM_INIT() CYG_EMPTY_STATEMENT
+
+//----------------------------------------------------------------------------
+// Memory access checks.
+
+// Addresses in the range 0x30000000-0x3fffffff cause the CPU to just
+// hang - no timeout, no exception. These macros allow GDB to avoid
+// making accidental accesses to this area.
+
+#define CYG_HAL_STUB_PERMIT_DATA_READ(_addr_, _count_) \
+( ((CYG_ADDRESS)(_addr_) > 0x3fffffff) || ((((CYG_ADDRESS)(_addr_))+(_count_))< 0x30000000) )
+
+#define CYG_HAL_STUB_PERMIT_DATA_WRITE(_addr_, __count_) \
+ CYG_HAL_STUB_PERMIT_DATA_READ(_addr_, _count_)
+
+
+#endif // ifdef CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS
+
+//-----------------------------------------------------------------------------
+#endif // CYGONCE_HAL_PLF_STUB_H
+// End of plf_stub.h
diff --git a/ecos/packages/hal/arm/integrator/current/misc/redboot_RAM.ecm b/ecos/packages/hal/arm/integrator/current/misc/redboot_RAM.ecm
new file mode 100644
index 0000000..8057418
--- /dev/null
+++ b/ecos/packages/hal/arm/integrator/current/misc/redboot_RAM.ecm
@@ -0,0 +1,59 @@
+cdl_savefile_version 1;
+cdl_savefile_command cdl_savefile_version {};
+cdl_savefile_command cdl_savefile_command {};
+cdl_savefile_command cdl_configuration { description hardware template package };
+cdl_savefile_command cdl_package { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_component { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_option { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_interface { value_source user_value wizard_value inferred_value };
+
+cdl_configuration eCos {
+ description "" ;
+ hardware integrator ;
+ template redboot ;
+ package CYGPKG_IO_FLASH current ;
+ package CYGPKG_IO_ETH_DRIVERS current ;
+};
+
+cdl_option CYGBLD_BUILD_GDB_STUBS {
+ user_value 0
+};
+
+cdl_option CYGDBG_HAL_COMMON_INTERRUPTS_SAVE_MINIMUM_CONTEXT {
+ user_value 0
+};
+
+cdl_option CYGDBG_HAL_COMMON_CONTEXT_SAVE_MINIMUM {
+ inferred_value 0
+};
+
+cdl_option CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS {
+ inferred_value 1
+};
+
+cdl_option CYGDBG_HAL_DEBUG_GDB_BREAK_SUPPORT {
+ inferred_value 1
+};
+
+cdl_option CYGDBG_HAL_DEBUG_GDB_CTRLC_SUPPORT {
+ inferred_value 0
+};
+
+cdl_option CYGSEM_HAL_USE_ROM_MONITOR {
+ inferred_value 0 0
+};
+
+cdl_component CYG_HAL_STARTUP {
+ user_value RAM
+};
+
+cdl_component CYGBLD_BUILD_REDBOOT {
+ user_value 1
+};
+
+cdl_option CYGSEM_REDBOOT_BSP_SYSCALLS {
+ inferred_value 1
+};
+
+
+
diff --git a/ecos/packages/hal/arm/integrator/current/misc/redboot_ROM.ecm b/ecos/packages/hal/arm/integrator/current/misc/redboot_ROM.ecm
new file mode 100644
index 0000000..28223ec
--- /dev/null
+++ b/ecos/packages/hal/arm/integrator/current/misc/redboot_ROM.ecm
@@ -0,0 +1,63 @@
+cdl_savefile_version 1;
+cdl_savefile_command cdl_savefile_version {};
+cdl_savefile_command cdl_savefile_command {};
+cdl_savefile_command cdl_configuration { description hardware template package };
+cdl_savefile_command cdl_package { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_component { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_option { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_interface { value_source user_value wizard_value inferred_value };
+
+cdl_configuration eCos {
+ description "" ;
+ hardware integrator ;
+ template redboot ;
+ package CYGPKG_IO_FLASH current ;
+ package CYGPKG_IO_ETH_DRIVERS current ;
+};
+
+cdl_option CYGBLD_BUILD_GDB_STUBS {
+ user_value 0
+};
+
+cdl_option CYGDBG_HAL_COMMON_INTERRUPTS_SAVE_MINIMUM_CONTEXT {
+ user_value 0
+};
+
+cdl_option CYGDBG_HAL_COMMON_CONTEXT_SAVE_MINIMUM {
+ inferred_value 0
+};
+
+cdl_option CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS {
+ inferred_value 1
+};
+
+cdl_option CYGDBG_HAL_DEBUG_GDB_BREAK_SUPPORT {
+ inferred_value 1
+};
+
+cdl_option CYGDBG_HAL_DEBUG_GDB_CTRLC_SUPPORT {
+ inferred_value 0
+};
+
+cdl_option CYGSEM_HAL_ROM_MONITOR {
+ user_value 1
+};
+
+cdl_option CYGSEM_HAL_USE_ROM_MONITOR {
+ inferred_value 0 0
+};
+
+cdl_component CYG_HAL_STARTUP {
+ user_value ROM
+};
+
+cdl_component CYGBLD_BUILD_REDBOOT {
+ user_value 1
+};
+
+cdl_option CYGSEM_REDBOOT_BSP_SYSCALLS {
+ inferred_value 1
+};
+
+
+
diff --git a/ecos/packages/hal/arm/integrator/current/misc/redboot_ROMRAM.ecm b/ecos/packages/hal/arm/integrator/current/misc/redboot_ROMRAM.ecm
new file mode 100644
index 0000000..f4bf373
--- /dev/null
+++ b/ecos/packages/hal/arm/integrator/current/misc/redboot_ROMRAM.ecm
@@ -0,0 +1,112 @@
+cdl_savefile_version 1;
+cdl_savefile_command cdl_savefile_version {};
+cdl_savefile_command cdl_savefile_command {};
+cdl_savefile_command cdl_configuration { description hardware template package };
+cdl_savefile_command cdl_package { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_component { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_option { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_interface { value_source user_value wizard_value inferred_value };
+
+cdl_configuration eCos {
+ description "" ;
+ hardware integrator ;
+ template redboot ;
+ package -template CYGPKG_HAL current ;
+ package -template CYGPKG_INFRA current ;
+ package -template CYGPKG_REDBOOT current ;
+ package -template CYGPKG_ISOINFRA current ;
+ package -template CYGPKG_LIBC_STRING current ;
+ package CYGPKG_NS_DNS current ;
+ package CYGPKG_IO_FLASH current ;
+ package CYGPKG_IO_ETH_DRIVERS current ;
+ package CYGPKG_MEMALLOC current ;
+ package CYGPKG_COMPRESS_ZLIB current ;
+};
+
+cdl_option CYGBLD_BUILD_GDB_STUBS {
+ user_value 0
+};
+
+cdl_option CYGFUN_LIBC_STRING_BSD_FUNCS {
+ inferred_value 0
+};
+
+cdl_option CYGNUM_HAL_COMMON_INTERRUPTS_STACK_SIZE {
+ user_value 4096
+};
+
+cdl_option CYGDBG_HAL_COMMON_INTERRUPTS_SAVE_MINIMUM_CONTEXT {
+ user_value 0
+};
+
+cdl_option CYGDBG_HAL_COMMON_CONTEXT_SAVE_MINIMUM {
+ inferred_value 0
+};
+
+cdl_option CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS {
+ inferred_value 1
+};
+
+cdl_option CYGDBG_HAL_DEBUG_GDB_BREAK_SUPPORT {
+ inferred_value 1
+};
+
+cdl_option CYGDBG_HAL_DEBUG_GDB_CTRLC_SUPPORT {
+ inferred_value 0
+};
+
+cdl_option CYGSEM_HAL_ROM_MONITOR {
+ user_value 1
+};
+
+cdl_option CYGSEM_HAL_USE_ROM_MONITOR {
+ inferred_value 0 0
+};
+
+cdl_component CYG_HAL_STARTUP {
+ user_value ROMRAM
+};
+
+cdl_component CYGBLD_BUILD_REDBOOT {
+ user_value 1
+};
+
+cdl_option CYGBLD_REDBOOT_MIN_IMAGE_SIZE {
+ inferred_value 0x00040000
+};
+
+cdl_option CYGOPT_REDBOOT_FIS_REDBOOT_BACKUP {
+ inferred_value 0
+};
+
+cdl_component CYGSEM_REDBOOT_BSP_SYSCALLS {
+ inferred_value 1
+};
+
+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_BSD_FUNCS_HEADER {
+ inferred_value 1 <cyg/libc/string/bsdstring.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_DNS_HEADER {
+ inferred_value 1 <cyg/ns/dns/dns.h>
+};
+
+cdl_option CYGPKG_NS_DNS_BUILD {
+ inferred_value 0
+};
diff --git a/ecos/packages/hal/arm/integrator/current/src/Notes_GDB_stub b/ecos/packages/hal/arm/integrator/current/src/Notes_GDB_stub
new file mode 100644
index 0000000..b5bf03a
--- /dev/null
+++ b/ecos/packages/hal/arm/integrator/current/src/Notes_GDB_stub
@@ -0,0 +1,64 @@
+===========================================================================
+## ####ECOSGPLCOPYRIGHTBEGIN####
+## -------------------------------------------
+## This file is part of eCos, the Embedded Configurable Operating System.
+## Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+##
+## eCos is free software; you can redistribute it and/or modify it under
+## the terms of the GNU General Public License as published by the Free
+## Software Foundation; either version 2 or (at your option) any later
+## version.
+##
+## eCos is distributed in the hope that it will be useful, but WITHOUT
+## ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+## FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+## for more details.
+##
+## You should have received a copy of the GNU General Public License
+## along with eCos; if not, write to the Free Software Foundation, Inc.,
+## 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+##
+## As a special exception, if other files instantiate templates or use
+## macros or inline functions from this file, or you compile this file
+## and link it with other works to produce a work based on this file,
+## this file does not by itself cause the resulting work to be covered by
+## the GNU General Public License. However the source code for this file
+## must still be made available in accordance with section (3) of the GNU
+## General Public License v2.
+##
+## This exception does not invalidate any other reasons why a work based
+## on this file might be covered by the GNU General Public License.
+## -------------------------------------------
+## ####ECOSGPLCOPYRIGHTEND####
+===========================================================================
+
+How to build and install the GDB module on ARM Integrator
+
+Make GDB module
+~~~~~~~~~~~~~~~
+Configure and build using the 'stubs' template for the PID
+target. These are the necessary CLI instructions. It can also be done
+from the Configtool by selecting the appropriate templates.
+
+ % cd /tmp
+ % mkdir stubs
+ % cd stubs
+ % ecosconfig new integrator stubs
+ % ecosconfig tree
+ % make
+
+This will install some files in ./install/bin:
+
+ gdb_module.elf: The built stubs image
+ gdb_module.bin: The image converted to binary (suitable for burning to ROM)
+ gdb_module.img: The relocated ELF image (suitable for FLASH writing, see below)
+
+
+Prepare board for eCos
+~~~~~~~~~~~~~~~~~~~~~~
+
+Program FLASH
+~~~~~~~~~~~~~
+The GDB module can be programmed into the begining of the user flash using an ARM debugger
+connected to the board either via Angel or Multi-ICE.
+
diff --git a/ecos/packages/hal/arm/integrator/current/src/flash.c b/ecos/packages/hal/arm/integrator/current/src/flash.c
new file mode 100644
index 0000000..edd69fd
--- /dev/null
+++ b/ecos/packages/hal/arm/integrator/current/src/flash.c
@@ -0,0 +1,677 @@
+//==========================================================================
+//
+// flash.c
+//
+// ARM INTEGRATOR A/P FLASH program tool
+//
+//==========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//==========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): gthomas
+// Contributors: Philippe Robin
+// Date: November 7, 2000
+// Description: Tool used to program onboard FLASH image
+//####DESCRIPTIONEND####
+
+//
+// This program will program the FLASH on INTEGRATOR A/P board
+//
+
+#include <pkgconf/libc.h> // Configuration header
+
+#include <cyg/kernel/kapi.h>
+#include <stdlib.h>
+#include <ctype.h>
+#include <cyg/infra/testcase.h>
+#include <sys/cstartup.h>
+
+#ifndef FALSE
+#define FALSE 0
+#define TRUE 1
+#endif
+
+#define PROGRAM_COMMAND 0x00100010
+#define PROGRAM_VERIFY 0x00D000D0
+#define READ_STATUS 0x70707070
+#define SR_MASK 0x00800080
+#define READ_ARRAY 0x00FF00FF
+#define BLOCK_ERASE 0x00200020
+#define BLOCK_WRITE_MODE 0x00E800E8
+#define BLOCK_LOCK_BITS 0x00600060
+#define CFI_QUERY_OFFS 0x00000055
+#define CFI_QUERY_COMMAND 0x00980098
+#define CFI_DATA_OFFS 0x00000020
+#define SYS_INFO_SIZE_OFF 0x00000027
+#define SYS_INFO_WB_OFF 0x0000002A
+#define SYS_ERASE_SIZE_OFF 0x0000002F
+#define STATUS_READY_MASK 0x00800080
+#define BANK_BOUNDARY 0x0001FFFF
+#define STATUS_ERROR 0x00100010
+#define MAX_WRITE_BUFF 0xF
+
+// Integrator EBI register definitions
+
+#define INTEGRATOR_EBI_BASE 0x12000000
+
+#define INTEGRATOR_EBI_CSR0_OFFSET 0x00
+#define INTEGRATOR_EBI_CSR1_OFFSET 0x04
+#define INTEGRATOR_EBI_CSR2_OFFSET 0x08
+#define INTEGRATOR_EBI_CSR3_OFFSET 0x0C
+#define INTEGRATOR_EBI_LOCK_OFFSET 0x20
+
+#define INTEGRATOR_EBI_CSR0 (INTEGRATOR_EBI_BASE + INTEGRATOR_EBI_CSR0_OFFSET)
+#define INTEGRATOR_EBI_CSR1 (INTEGRATOR_EBI_BASE + INTEGRATOR_EBI_CSR1_OFFSET)
+#define INTEGRATOR_EBI_CSR2 (INTEGRATOR_EBI_BASE + INTEGRATOR_EBI_CSR2_OFFSET)
+#define INTEGRATOR_EBI_CSR3 (INTEGRATOR_EBI_BASE + INTEGRATOR_EBI_CSR3_OFFSET)
+#define INTEGRATOR_EBI_LOCK (INTEGRATOR_EBI_BASE + INTEGRATOR_EBI_LOCK_OFFSET)
+
+#define INTEGRATOR_EBI_8_BIT 0x00
+#define INTEGRATOR_EBI_16_BIT 0x01
+#define INTEGRATOR_EBI_32_BIT 0x02
+#define INTEGRATOR_EBI_WRITE_ENABLE 0x04
+#define INTEGRATOR_EBI_SYNC 0x08
+#define INTEGRATOR_EBI_WS_2 0x00
+#define INTEGRATOR_EBI_WS_3 0x10
+#define INTEGRATOR_EBI_WS_4 0x20
+#define INTEGRATOR_EBI_WS_5 0x30
+#define INTEGRATOR_EBI_WS_6 0x40
+#define INTEGRATOR_EBI_WS_7 0x50
+#define INTEGRATOR_EBI_WS_8 0x60
+#define INTEGRATOR_EBI_WS_9 0x70
+#define INTEGRATOR_EBI_WS_10 0x80
+#define INTEGRATOR_EBI_WS_11 0x90
+#define INTEGRATOR_EBI_WS_12 0xA0
+#define INTEGRATOR_EBI_WS_13 0xB0
+#define INTEGRATOR_EBI_WS_14 0xC0
+#define INTEGRATOR_EBI_WS_15 0xD0
+#define INTEGRATOR_EBI_WS_16 0xE0
+#define INTEGRATOR_EBI_WS_17 0xF0
+
+#define FL_SC_CONTROL 0x06 // Enable Flash Write and Vpp
+
+
+#define INVALID_FTYPE 0x00000000
+#define UNKNOWN_FTYPE 0xFFFFFFFF
+#define ATMEL_FTYPE 0x00000001
+#define INTEL_FTYPE 0x00000002
+
+#define FLASH_TYPE_MASK (ATMEL_FTYPE | INTEL_FTYPE)
+
+// On Some platforms Boot and program flash may be part of the same device
+#define INTEGRATED_FTYPE 0x80000000
+#define BOOT_FTYPE 0x40000000
+#define APP_FTYPE 0x20000000
+
+#define FLASH_USAGE_MASK (BOOT_FTYPE | APP_FTYPE)
+
+#define DEFAULT_FLASH_MASK 0xFFFFFFF8
+#define FLASH_BLOCK_SIZE 0x00020000 // 128Kb
+#define EPROM_BASE 0x20000000
+#define EPROM_SIZE 0x00080000 // 512Kb
+#define FLASH_BASE 0x24000000
+#define FLASH_SIZE 0x02000000 // 32Mb
+
+typedef int flashWrite(char *address, unsignedint data, char *flash);
+typedef int flashWriteBlock(char *address, unsigned int *data, unsigned int size, char *flash);
+typedef int flashRead(char *address, unsigned int *value);
+typedef int flashReadBlock(char *address, unsigned int *data, unsigned int size);
+typedef int flashErase(char *address, unsigned size, char *flash);
+typedef int flashInit(char *address, char *flash);
+typedef int flashClose(char *address, char *flash);
+
+typedef struct flashType {
+ char *base; // Base Address of flash
+ char *physicalBase; // before mem initialisation
+ unsigned int size; // Size of flash, in bytes
+ unsigned int type; // Atmel / Intel (CFI) / Unknown
+ unsigned int writeSize; // Size of physical block
+ unsigned int eraseSize; // Size of block erase
+ unsigned int logicalSize; // Size of logical block
+ flashWrite *write; // Write one word
+ flashWriteBlock *writeBlock;// Write a block of writeSize bytes
+ flashRead *read; // Read one word
+ flashReadBlock *readBlock; // Read a block of writeSize bytes
+ flashErase *erase; // Erase a block of eraseSize bytes
+ flashInit *init; // Lock a flash device
+ flashClose *close; // Unlock a flash device
+ char *ident; // identification string
+ struct flashType *next; // Pointer to next flash device
+} tFlash;
+
+tFlash Integrator_Flash[2] = {
+ {
+ (char *)EPROM_BASE, // Base Address of flash
+ (char *)EPROM_BASE, // Physical Address of flash
+ EPROM_SIZE, // Size of flash, in bytes (512K)
+ BOOT_FTYPE | ATMEL_FTYPE,// Flash type
+ FLASH_BLOCK_SIZE, // Size of physical block
+ FLASH_BLOCK_SIZE, // Size of block erase
+ FLASH_BLOCK_SIZE, // Size of logical block
+ ATMEL_Write_Word, // Write one word
+ ATMEL_Write_Block, // Write a block of WriteSize
+ ATMEL_Read_Word,
+ ATMEL_Read_Block,
+ ATMEL_Erase_Block,
+ 0, // Lock a flash device
+ 0, // Unlock a flash device
+ "Atmel", // Null terminated Info string
+ (tFlash *)&Integrator_Flash[1] // Pointer to next tFlash struct
+ },
+ {
+ (char *)FLASH_BASE, // Base Address of flash
+ (char *)FLASH_BASE, // Physical Address of flash
+ FLASH_SIZE, // Size of flash, in bytes
+ APP_FTYPE | INTEL_FTYPE,// Flash type
+ FLASH_BLOCK_SIZE, // Size of physical block
+ FLASH_BLOCK_SIZE, // Size of block erase
+ FLASH_BLOCK_SIZE, // Size of logical block
+ CFI_Write_Word, // Write one word
+ CFI_Write_Block, // Write a block of writeSize bytes
+ CFI_Read_Word, // Read one word
+ CFI_Read_Block, // Read a block of writeSize bytes
+ CFI_Erase_Block, // Erase a block of eraseSize bytes
+ 0, // Lock a flash device
+ 0, // Unlock a flash device
+ "Intel 28F320S3", // Null terminated Info string
+ 0 // Pointer to next tFlash struct
+ }
+};
+
+#define SYNC_COUNT 63
+
+extern void diag_printf(const char *, ...);
+int identify_FLASH(void);
+void write_sector(int, char *);
+bool load_srecords(char (*readc)(), CYG_ADDRESS *start, int *size);
+
+char dbuf[256];
+char *raw = (char *)0x10000;
+char *flash_buffer = (char *)0x30000;
+int pos, len;
+
+// FUNCTIONS
+
+externC void
+cyg_package_start( void )
+{
+#ifdef CYGPKG_LIBC
+ cyg_iso_c_start();
+#else
+ (void)main(0, NULL);
+#endif
+} // cyg_package_start()
+
+char nextch(void)
+{
+ return (raw[pos++]);
+}
+
+int
+main( int argc, char *argv[] )
+{
+ int i, j, size;
+ CYG_ADDRESS entry;
+ char c;
+
+ diag_printf("FLASH here!\n");
+
+ CFI_Identify_Flash(Integrator_Flash[1]);
+
+ while (identify_FLASH() == 0) {
+ diag_printf("... Please change FLASH jumper - hit C/R to continue:");
+ do {
+ hal_diag_read_char(&c);
+ } while ((c != '\r') && (c != '\n'));
+ diag_printf("\n");
+ }
+ restart:
+ diag_printf("Ready file - hit C/R to continue:");
+ while (TRUE) {
+ hal_diag_read_char(&c);
+ if (c == '>') break;
+ }
+ i = 0; j = 0;
+ while (1) {
+ hal_diag_read_char(&c);
+ if (c == '!') {
+ diag_printf("... Reset\n");
+ goto restart;
+ }
+ raw[i++] = c;
+ if (++j == SYNC_COUNT) {
+ hal_diag_write_char(c);
+ j = 0;
+ }
+ if (c == ':') break;
+ }
+ diag_printf("\n");
+ pos = 0; len = i;
+ if (load_srecords(nextch, &entry, &size)) {
+ diag_printf("Read %x bytes, entry: %x\n", size, entry);
+ dump_buf(flash_buffer, 128);
+ diag_printf("\nData loaded - hit '!' to continue:");
+ while (TRUE) {
+ hal_diag_read_char(&c);
+ if (c == '!') break;
+ }
+ diag_printf("\n");
+ diag_printf("...Programming FLASH\n");
+ pos = 0; i = 0;
+ while (pos < size) {
+ write_sector(i++, flash_buffer+pos);
+ pos += 256;
+ }
+ } else {
+ // Display buffer around failure
+ dump_buf(&raw[pos-32], 64);
+ }
+ diag_printf("All done!\n");
+ while (1) ;
+}
+
+int
+CFI_Identify_Flash(tFlash * flash)
+{
+ int offset = CFI_DATA_OFFS;
+
+ // CFI query to check for CFI string "QRY"
+ // Write 0x98 to address flash + 55
+ *(unsigned int *)(flash->base + CFI_QUERY_OFFS) = CFI_QUERY_COMMAND;
+
+ if ( *(flash->base + offset) == 'Q') {
+ int temp = 0;
+ offset += 2;
+
+ if ( *(flash->base+ offset) == 'R') {
+ temp = *(flash->base+ SYS_INFO_SIZE_OFF); // read block size
+ flash->size = 2 ^ temp;
+ temp = *(flash->base+ SYS_ERASE_SIZE_OFF); // Read Erase Regions
+ temp += ( *(flash->base+ SYS_ERASE_SIZE_OFF + 1) << 4);
+
+ flash->eraseSize = temp * 256;
+ // Read Max write Buffer (logical Block size)
+ } else
+ return FALSE;
+ }
+
+ // Reset for Read operation
+ *(unsigned int *)(flash->base) = READ_ARRAY;
+
+ return TRUE;
+}
+
+// Adapted from ARM sample code
+#define SEQ_ADD1 0x5555
+#define SEQ_ADD2 0xAAAA
+#define START_CMD1 0xAA
+#define START_CMD2 0x55
+#define ID_CMD 0x90
+#define PROG_CMD 0xA0
+#define STOP_CMD 0xF0
+
+#define MAN_ATMEL 0x1F
+#define ATMEL_AT29C040_ID 0X5B
+#define ATMEL_AT29C040A_ID 0XA4
+#define ATMEL_AT29C1024_ID 0X25
+#define ATMEL_SECTOR_SIZE 256
+#define ATMEL_MAX_SECTORS 2048
+
+int manuf_code, device_code, sector_size, max_no_of_sectors, word_mode;
+volatile char *FLASH = (volatile char *)0x24000000;
+
+int
+identify_FLASH(void )
+{
+ // enable write to the Flash
+ flashWriteEnable();
+
+ // Enter Software Product Identification Mode
+ FLASH[SEQ_ADD1] = START_CMD1;
+ FLASH[SEQ_ADD2] = START_CMD2;
+ FLASH[SEQ_ADD1] = ID_CMD;
+
+ // Wait at least 10ms
+ cyg_thread_delay(2);
+
+ // Read Manufacturer and device code from the device
+ manuf_code = FLASH[0];
+ device_code = FLASH[1];
+
+ diag_printf("manuf: %x, device: %x\n", manuf_code, device_code);
+
+ // Exit Software Product Identification Mode
+ FLASH[SEQ_ADD1] = START_CMD1;
+ FLASH[SEQ_ADD2] = START_CMD2;
+ FLASH[SEQ_ADD1] = STOP_CMD;
+
+ // Wait at least 10ms
+ cyg_thread_delay(5)
+
+ // disble write to the Flash
+ flashWriteDisable();;
+
+ if (manuf_code != MAN_ATMEL) {
+ diag_printf ( "Error: Wrong Manufaturer: %02x\n",manuf_code );
+ return (0);
+ }
+
+ switch (device_code) {
+ case ATMEL_AT29C040A_ID:
+ diag_printf ("AT29C040A recognised\n");
+ sector_size = ATMEL_SECTOR_SIZE;
+ max_no_of_sectors = ATMEL_MAX_SECTORS;
+ word_mode = FALSE;
+ break;
+ case ATMEL_AT29C1024_ID:
+ diag_printf ("AT29C1024 recognised\n");
+ sector_size = ATMEL_SECTOR_SIZE;
+ max_no_of_sectors = ATMEL_MAX_SECTORS;
+ word_mode = TRUE;
+ break;
+ default :
+ diag_printf ( "Error: Unsupported device: %02x\n", device_code);
+ return (0);
+ }
+ return (1);
+}
+
+void
+write_sector(int num, char *buf)
+{
+ int i, cnt;
+ volatile char *wrt = (volatile int *)&FLASH[num*sector_size];
+
+// diag_printf("Writing to %08x\n", wrt);
+ // Enter Program Mode
+ FLASH[SEQ_ADD1] = START_CMD1;
+ FLASH[SEQ_ADD2] = START_CMD2;
+ FLASH[SEQ_ADD1] = PROG_CMD;
+
+ // Note: write bytes as longs regardless of bus width
+ for (i = 0; i < sector_size; i++) {
+ wrt[i] = buf[i];
+ }
+
+ // Wait for sector to program
+ cnt = 0;
+ i = sector_size - 1;
+ while (wrt[i] != buf[i]) {
+ if (cnt++ > 0x01000000) break;
+ }
+// diag_printf("Out - i: %d, wrt[i] = %08X.%08X, buf[i] = %08X, count = %x\n", i, &wrt[i], wrt[i], buf[i], cnt);
+
+ // Verify
+ for (i = 0; i < sector_size; i++) {
+ for (cnt = 0; cnt < 10; cnt++) {
+ if (*wrt == *buf) break;
+ cyg_thread_delay(1);
+ }
+ if (cnt == 10) {
+ diag_printf("Can't program at 0x%08X: %02X not %02X\n", wrt, *wrt, *buf);
+ }
+ wrt++; buf++;
+ }
+}
+
+void
+flashWriteEnable(void)
+{
+ volatile unsigned int *ebi_csr1 = (volatile unsigned int *)INTEGRATOR_EBI_CSR1;
+
+ // allow write access to EBI_CSR1 area (Flash)
+
+ *ebi_csr1 |= INTEGRATOR_EBI_WRITE_ENABLE;
+
+ if (!(*ebi_csr1 & INTEGRATOR_EBI_WRITE_ENABLE)) {
+ *(volatile unsigned int *)INTEGRATOR_EBI_LOCK = 0xA05F;
+ *ebi_csr1 |= INTEGRATOR_EBI_WRITE_ENABLE;
+ *(volatile unsigned int *)INTEGRATOR_EBI_LOCK = 0;
+ }
+
+ /* Enable Vpp and allow write access to Flash in system controller */
+
+ *(volatile unsigned int *)INTEGRATOR_SC_CTRLS = FL_SC_CONTROL;
+}
+
+//
+// flashWriteDisable: disable write access to the Flash memory
+//
+
+void
+flashWriteDisable(void)
+{
+ volatile unsigned int *ebi_csr1 = (volatile unsigned int *)INTEGRATOR_EBI_CSR1;
+
+ // disable write access to EBI_CSR1 area (Flash)
+
+ *ebi_csr1 &= ~INTEGRATOR_EBI_WRITE_ENABLE;
+
+ if (*ebi_csr1 & INTEGRATOR_EBI_WRITE_ENABLE) {
+ *(volatile unsigned int *)INTEGRATOR_EBI_LOCK = 0xA05F;
+ *ebi_csr1 &= ~INTEGRATOR_EBI_WRITE_ENABLE;
+ *(volatile unsigned int *)INTEGRATOR_EBI_LOCK = 1;
+ }
+
+ // Disable Vpp and disable write access to Flash in system controller
+
+ *(volatile unsigned int *)INTEGRATOR_SC_CTRLS = 0;
+}
+
+// S-record download code - viciously 'adapted' from "kernel/src/sload/sload.c"
+
+/*---------------------------------------------------------------------------*/
+/*
+//
+// An srecord looks like this:
+//
+// byte count-+ address
+// start ---+ | | data +- checksum
+// | | | |
+// S01000006F6B692D746573742E73726563E4
+// S315000448600000000000000000FC00005900000000E9
+// S31A0004000023C1400037DE00F023604000377B009020825000348D
+// S30B0004485A0000000000004E
+// S70500040000F6
+//
+// S<type><length><address><data><checksum>
+//
+// Where
+// - length (2 characters)
+// is the number of bytes following upto the checksum. Note that
+// this is not the number of chars following, since it takes two
+// chars to represent a byte.
+// - type (2 characters)
+// is one of:
+// 0) header record
+// 1) two byte address data record
+// 2) three byte address data record
+// 3) four byte address data record
+// 5) record containing the number of S1, S2, or S3 records
+// 7) four byte address termination record
+// 8) three byte address termination record
+// 9) two byte address termination record
+//
+// - address (4, 6, or 8 characters)
+// is the start address of the data following, or in the case of
+// a termination record, the start address of the image
+// - data (0-2n characters)
+// is the data.
+// - checksum (2 characters)
+// is the sum of all the raw byte data in the record, from the length
+// upwards, modulo 256 and subtracted from 255.
+//
+// Useful S-records for testing purposes:
+// Start record:
+// S00B0000737461303030447563
+// This sets the default address to be 0x02005000:
+// S31A020050002700801481C4E0B0A15000000100000091D02000018F
+// S31A0200501500000001000000010000002700801881C4E2E4A150C1
+// S311020080A42407070A090B0A0781050000E1
+// Termination record:
+// S70502005000A8
+//
+*/
+
+#define S0 0
+#define S1 1
+#define S2 2
+#define S3 3
+#define S5 5
+#define S7 7
+#define S8 8
+#define S9 9
+
+/*---------------------------------------------------------------------------*/
+
+int hex2digit(char c)
+{
+ if( c & 0x40 ) c += 9;;
+ return c &0x0f;
+
+// return ( c <= '9' ? c - '0' :
+// c <= 'Z' ? c - 'A' + 10 :
+// c - 'a' + 10);
+}
+
+/*---------------------------------------------------------------------------*/
+
+bool load_srecords(char (*readc)(),
+ CYG_ADDRESS *start,
+ int *size)
+{
+ CYG_ADDRESS addr, load_addr;
+ int addrsize;
+ int length;
+ int i;
+ cyg_uint8 chksum, ochksum;
+ cyg_uint8 val;
+ cyg_uint8 *tdata;
+ char s;
+ char type;
+ char len0;
+ char len1;
+ bool first = true;
+
+
+ do {
+ // Skip whitespace characters until we find something that
+ // might be an 'S'.
+ do {
+ s = readc();
+ } while( s == '\r' || s == '\n' || s == ' ');
+
+ // Check that this is an S record
+ if( s != 'S' ) {
+ diag_printf("Invalid 'S' record\n");
+ return false;
+ }
+
+ // First 4 bytes are standard S + type + len
+ type = readc();
+ len0 = readc();
+ len1 = readc();
+
+ // decode the type
+ type = hex2digit(type);
+
+ // determine address size
+ switch (type) {
+ case S0: // start records have no address
+ addrsize = 0;
+ break;
+ case S1: // two byte address
+ case S9:
+ addrsize = 4;
+ break;
+ case S2: // 3 byte address
+ case S8:
+ addrsize = 6;
+ break;
+ case S3: // 4 byte address
+ case S7:
+ addrsize = 8;
+ break;
+ }
+
+ length = hex2digit (len0) << 4;
+ length |= hex2digit (len1);
+ chksum = length;
+
+ // read the address
+ addr = 0;
+ for (i = 0; i < addrsize; i++) {
+ val = hex2digit(readc());
+ addr = (addr << 4) | val;
+ }
+
+ // calculate the checksum, which is done by the byte, not the digit
+ for (i = 0; i < addrsize*4; i += 8) {
+ chksum += ((addr >> i) & 0xff);
+ }
+
+ // decide where to load this data
+ if (first && (type != S0)) {
+ load_addr = addr;
+ first = false;
+ }
+
+ // read the data and put it directly into memory where it belongs
+ tdata = (cyg_uint8 *)((addr - load_addr) + flash_buffer);
+ if (type < S7) {
+ *size = (addr - load_addr);
+ }
+ val = 0;
+ for (i = 0; i < ((length - 1) * 2) - addrsize; i += 2 ) {
+ val = hex2digit (readc()) << 4;
+ val |= hex2digit (readc());
+ chksum += val;
+ if( type != S0 ) *tdata++ = val;
+ if (type < S7) *size = *size + 1;
+ }
+
+ // now get the old checksum
+ ochksum = hex2digit(readc()) << 4;
+ ochksum |= hex2digit(readc());
+ chksum = ~chksum;
+ if (chksum != ochksum) {
+ diag_printf("Bad checksum - addr: %x\n", addr);
+ return false;
+ }
+
+ } while( type < S7 );
+
+ *start = addr;
+ return true;
+}
diff --git a/ecos/packages/hal/arm/integrator/current/src/hal_diag.c b/ecos/packages/hal/arm/integrator/current/src/hal_diag.c
new file mode 100644
index 0000000..8a82fad
--- /dev/null
+++ b/ecos/packages/hal/arm/integrator/current/src/hal_diag.c
@@ -0,0 +1,455 @@
+/*=============================================================================
+//
+// hal_diag.c
+//
+// HAL diagnostic output code
+//
+//=============================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): David A Rusling
+// Contributors: Philippe Robin
+// Date: November 7, 2000
+// Purpose: HAL diagnostic output
+// Description: Implementations of HAL diagnostic output support.
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================*/
+
+#include <pkgconf/hal.h>
+#include <pkgconf/hal_arm_integrator.h> // board specifics
+
+#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> // basic machine info
+#include <cyg/hal/hal_intr.h> // interrupt macros
+#include <cyg/hal/hal_io.h> // IO macros
+#include <cyg/hal/hal_if.h> // interface API
+#include <cyg/hal/hal_misc.h> // Helper functions
+#include <cyg/hal/hal_diag.h>
+#include <cyg/hal/drv_api.h>
+#include <cyg/hal/hal_integrator.h> // Hardware definitions
+
+
+/*---------------------------------------------------------------------------*/
+void abcd(void);
+
+/* Codes for ASCI characters 32-127 */
+unsigned int char_codes[] = {
+ 0x0000, 0x2400, 0x0044, 0x7E12, 0x25DA, 0x4848, 0x2580, 0x0400,
+ 0x0072, 0x001E, 0x7F80, 0x2580, 0x4000, 0x0180, 0x0000, 0x4800,
+ 0x007E, 0x080C, 0x01B6, 0x011E, 0x01CC, 0x01DA, 0x01FA, 0x2802,
+ 0x01FE, 0x01CE, 0x2400, 0x4400, 0x1800, 0x0190, 0x4200, 0x01A6,
+ 0x217E, 0x01EE, 0x251E, 0x0072, 0x241E, 0x00F2, 0x00E2, 0x017A,
+ 0x01EC, 0x2412, 0x001C, 0x18E0, 0x0070, 0x0A6C, 0x126C, 0x007E,
+ 0x01E6, 0x107E, 0x11E6, 0x01DA, 0x2402, 0x007C, 0x4860, 0x506C,
+ 0x5A00, 0x2A00, 0x4812, 0x0072, 0x1200, 0x001E, 0x0046, 0x0010,
+ 0x0200, 0x01BE, 0x01F8, 0x01B0, 0x01BC, 0x01F6, 0x2980, 0x01DE,
+ 0x01E8, 0x2000, 0x001C, 0x3500, 0x2400, 0x21A8, 0x01A8, 0x01B8,
+ 0x01E6, 0x01CE, 0x01A0, 0x01DA, 0x00F0, 0x0038, 0x4020, 0x5028,
+ 0x5A00, 0x030C, 0x4190, 0x2480, 0x2400, 0x2500, 0x0640, 0x0000
+};
+
+/* Codes for hexadecimal characters */
+unsigned int hex_codes[] = {
+ 0x007E, 0x080C, 0x01B6, 0x011E, 0x01CC, 0x01DA, 0x01FA, 0x2802,
+ 0x01FE, 0x01CE, 0x01EE, 0x01F8, 0x0072, 0x01BC, 0x00F2, 0x00E2
+};
+
+void hal_diag_alpha_led_char(char c1, char c2);
+
+
+// AMBA uart access macros
+#define GET_STATUS(p) (IO_READ((p) + AMBA_UARTFR))
+#define GET_CHAR(p) (IO_READ((p) + AMBA_UARTDR))
+#define PUT_CHAR(p, c) (IO_WRITE(((p) + AMBA_UARTDR), (c)))
+#define IO_READ(p) ((*(volatile unsigned int *)(p)) & 0xFF)
+#define IO_WRITE(p, c) (*(unsigned int *)(p) = (c))
+#define RX_DATA(s) (((s) & AMBA_UARTFR_RXFE) == 0)
+#define TX_READY(s) (((s) & AMBA_UARTFR_TXFF) == 0)
+#define TX_EMPTY(p) ((GET_STATUS(p) & AMBA_UARTFR_TMSK) == 0)
+#define RX_EMPTY(p) ((GET_STATUS(p) & AMBA_UARTFR_RXFE) == 0)
+// Define the serial registers.
+
+//-----------------------------------------------------------------------------
+typedef struct {
+ cyg_uint8* base;
+ cyg_int32 msec_timeout;
+ int isr_vector;
+} channel_data_t;
+
+//-----------------------------------------------------------------------------
+
+#if (CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_BAUD == 9600)
+#define ARM_INTEGRATOR_BAUD_DIVISOR ARM_BAUD_9600
+#elif (CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_BAUD == 19200)
+#define ARM_INTEGRATOR_BAUD_DIVISOR ARM_BAUD_9600
+#elif (CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_BAUD == 38400)
+#define ARM_INTEGRATOR_BAUD_DIVISOR ARM_BAUD_38400
+#elif (CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_BAUD == 57600)
+#define ARM_INTEGRATOR_BAUD_DIVISOR ARM_BAUD_57600
+#elif (CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_BAUD == 115200)
+#define ARM_INTEGRATOR_BAUD_DIVISOR ARM_BAUD_115200
+#endif
+
+static void
+cyg_hal_plf_serial_init_channel(void* __ch_data)
+{
+ cyg_uint8* base = ((channel_data_t*)__ch_data)->base;
+
+ // first, disable everything
+ IO_WRITE(base + AMBA_UARTCR, 0x0);
+
+ // Set baud rate CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_BAUD
+ IO_WRITE(base + AMBA_UARTLCR_M, ((ARM_INTEGRATOR_BAUD_DIVISOR & 0xf00) >> 8));
+ IO_WRITE(base + AMBA_UARTLCR_L, (ARM_INTEGRATOR_BAUD_DIVISOR & 0xff));
+
+ // ----------v----------v----------v----------v----------
+ // NOTE: MUST BE WRITTEN LAST (AFTER UARTLCR_M & UARTLCR_L)
+ // ----------^----------^----------^----------^----------
+ // set the UART to be 8 bits, 1 stop bit, no parity, fifo enabled
+ IO_WRITE(base + AMBA_UARTLCR_H, (AMBA_UARTLCR_H_WLEN_8 | AMBA_UARTLCR_H_FEN));
+
+ // finally, enable the uart
+ IO_WRITE(base + AMBA_UARTCR, AMBA_UARTCR_UARTEN);
+
+}
+
+void
+cyg_hal_plf_serial_putc(void *__ch_data, char c)
+{
+ channel_data_t* chan = (channel_data_t*)__ch_data;
+ cyg_uint8* base = chan->base;
+ cyg_uint32 status;
+ CYGARC_HAL_SAVE_GP();
+
+ do {
+ status = GET_STATUS(base);
+ } while (!TX_READY(status)); // wait until ready
+
+ PUT_CHAR(base, c);
+
+ if (c == '\n') {
+ do {
+ status = GET_STATUS(base);
+ } while (!TX_READY(status)); // wait until ready
+
+ PUT_CHAR(base, '\r');
+ }
+
+ 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_uint32 status ;
+ long timeout = 100; // A long time...
+
+ do {
+ status = GET_STATUS(base);
+ if (--timeout == 0) return false ;
+ } while (!RX_DATA(status)); // wait until ready
+
+ *ch = GET_CHAR(base);
+
+ 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 channel_data_t integrator_ser_channels[2] = {
+ { (cyg_uint8*)0x16000000, 1000, CYGNUM_HAL_INTERRUPT_UARTINT0 },
+ { (cyg_uint8*)0x17000000, 1000, CYGNUM_HAL_INTERRUPT_UARTINT1 }
+};
+
+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;
+ int ret = 0;
+ cyg_uint8 status;
+ CYGARC_HAL_SAVE_GP();
+
+ switch (__func) {
+ case __COMMCTL_IRQ_ENABLE:
+ irq_state = 1;
+ // Ensure that only Receive ints are generated.
+ status = IO_READ(chan->base + AMBA_UARTCR);
+
+ status |= (AMBA_UARTCR_RTIE | AMBA_UARTCR_RIE);
+ HAL_WRITE_UINT32(chan->base + AMBA_UARTCR, status);
+
+ HAL_INTERRUPT_UNMASK(chan->isr_vector);
+ break;
+ case __COMMCTL_IRQ_DISABLE:
+ ret = irq_state;
+ irq_state = 0;
+
+ status = IO_READ(chan->base + AMBA_UARTCR);
+ status &= ~(AMBA_UARTCR_RTIE | AMBA_UARTCR_TIE | AMBA_UARTCR_RIE | AMBA_UARTCR_MSIE);
+ HAL_WRITE_UINT32(chan->base + AMBA_UARTCR, status);
+
+ 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;
+ channel_data_t* chan = (channel_data_t*)__ch_data;
+ char c;
+ cyg_uint32 status;
+ CYGARC_HAL_SAVE_GP();
+
+ cyg_drv_interrupt_acknowledge(chan->isr_vector);
+
+ *__ctrlc = 0;
+ status = GET_STATUS(chan->base);
+
+ if ( RX_DATA(status) ) {
+ c = GET_CHAR(chan->base);
+
+ 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(integrator_ser_channels[0].isr_vector);
+ HAL_INTERRUPT_MASK(integrator_ser_channels[1].isr_vector);
+
+ // Init channels
+ cyg_hal_plf_serial_init_channel(&integrator_ser_channels[0]);
+ cyg_hal_plf_serial_init_channel(&integrator_ser_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, &integrator_ser_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, &integrator_ser_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();
+
+#ifdef CYGDBG_HAL_DEBUG_GDB_BREAK_SUPPORT2
+ cyg_hal_gdb_isr_attach(); // FIXME, hack to get CTRLC working
+#endif
+}
+
+#endif // CYGSEM_HAL_VIRTUAL_VECTOR_DIAG || CYGPRI_HAL_IMPLEMENTS_IF_SERVICES
+
+/*---------------------------------------------------------------------------*/
+
+#ifdef CYGHWR_HAL_ARM_INTEGRATOR_DIAG_LEDS
+
+void
+hal_diag_led(int n)
+{
+ volatile unsigned int *leds = (unsigned int *)INTEGRATOR_DBG_LEDS ;
+
+ *leds |= (n & 0xF) ;
+}
+void
+hal_diag_alpha_led(unsigned int val)
+{
+ volatile unsigned int *led = (unsigned int *)INTEGRATOR_DBG_BASE;
+
+ while (*led & 0x01) ;
+
+ *led = val;
+}
+
+void
+hal_diag_alpha_led_char(char c1, char c2)
+{
+ volatile unsigned int *led = (unsigned int *)INTEGRATOR_DBG_BASE;
+ unsigned int current;
+
+ current = *led;
+ if (c1) {
+ if (c1 < 32 || c1 > 127) c1=32;
+ if (c1 >= 'a' && c1 < 'z') c1 -= 32;
+
+ current &= ~(0x00007FFE << 14);
+ current |= (char_codes[c1-32] << 14);
+ }
+
+ if (c2) {
+ if (c2 < 32 || c2 > 127) c2 = 32;
+ if (c2 >= 'a' && c2 <= 'z') c2 -= 32;
+
+ current &= ~(0x00007FFE);
+ current |= char_codes[c2-32];
+ }
+
+ hal_diag_alpha_led(current);
+
+}
+
+#endif // CYGHWR_HAL_ARM_INTEGRATOR_DIAG_LEDS
+
+/*---------------------------------------------------------------------------*/
+/* End of hal_diag.c */
diff --git a/ecos/packages/hal/arm/integrator/current/src/integrator_misc.c b/ecos/packages/hal/arm/integrator/current/src/integrator_misc.c
new file mode 100644
index 0000000..e103f0b
--- /dev/null
+++ b/ecos/packages/hal/arm/integrator/current/src/integrator_misc.c
@@ -0,0 +1,367 @@
+//==========================================================================
+//
+// integrator_misc.c
+//
+// HAL misc board support code for ARM INTEGRATOR7
+//
+//==========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//==========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): David A Rusling
+// Contributors: Philippe Robin
+// Date: November 7, 2000
+// Purpose: HAL board support
+// Description: Implementations of HAL board interfaces
+//
+//####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_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> // necessary?
+#include <cyg/hal/hal_integrator.h>
+
+/*------------------------------------------------------------------------*/
+// On-board timer
+/*------------------------------------------------------------------------*/
+
+// forward declarations
+void hal_if_init(void);
+
+// declarations
+static cyg_uint32 _period;
+
+void hal_clock_initialize(cyg_uint32 period)
+{
+ //diag_init(); diag_printf("%s(%d)\n", __PRETTY_FUNCTION__, period);
+ //diag_printf("psr = %x\n", psr());
+ HAL_WRITE_UINT32(CYG_DEVICE_TIMER_CONTROL, CTL_DISABLE); // Turn off
+ HAL_WRITE_UINT32(CYG_DEVICE_TIMER_LOAD, period);
+ HAL_WRITE_UINT32(CYG_DEVICE_TIMER_CONTROL,
+ CTL_ENABLE | CTL_PERIODIC | CTL_SCALE_16);
+ _period = period;
+}
+
+void hal_clock_reset(cyg_uint32 vector, cyg_uint32 period)
+{
+ //diag_init(); diag_printf("%s\n", __PRETTY_FUNCTION__);
+ HAL_WRITE_UINT32(CYG_DEVICE_TIMER_CLEAR, 0);
+ _period = period;
+}
+
+void hal_clock_read(cyg_uint32 *pvalue)
+{
+ cyg_uint32 value;
+// diag_init(); diag_printf("%s\n", __PRETTY_FUNCTION__);
+ HAL_READ_UINT32(CYG_DEVICE_TIMER_CURRENT, value);
+ value &= 0xFFFF;
+ *pvalue = _period - (value & 0xFFFF); // Note: counter is only 16 bits
+ // and decreases
+}
+
+// Delay for some usecs.
+void hal_delay_us(cyg_uint32 delay)
+{
+#if 0
+ int i;
+ for( i = 0; i < delay; i++ );
+
+#else
+ cyg_uint32 now, last, diff, ticks;
+
+ // The timer actually runs at 1.25 ticks per micrsecond.
+ // Adjust the supplied delay to compensate.
+
+ delay *= 4;
+ delay /= 5;
+
+ hal_clock_read(&last);
+ diff = ticks = 0;
+
+ while (delay > ticks) {
+ hal_clock_read(&now);
+
+ // Cope with wrap-around of timer
+ if (now < last)
+ diff = ((_period - last) + now);
+ else
+ diff = (now - last);
+
+ last = now;
+
+ ticks += diff;
+ }
+#endif
+}
+
+
+#if defined(CYGPKG_HAL_ARM_INTEGRATOR_ARM7)
+void hal_hardware_init(void)
+#elif defined(CYGPKG_HAL_ARM_INTEGRATOR_ARM9)
+void plf_hardware_init(void)
+#endif
+{
+ // Any hardware/platform initialization that needs to be done.
+
+ // Clear all interrupt sources
+ HAL_WRITE_UINT32(CYG_DEVICE_IRQ_EnableClear, 0xFFFF);
+
+#ifndef CYGFUN_HAL_COMMON_KERNEL_SUPPORT
+ HAL_CLOCK_INITIALIZE( CYGNUM_HAL_RTC_PERIOD );
+#endif
+
+ // FIXME: The line with the thumb check is a hack, allowing
+ // the farm to run test. Problem is that virtual vector table
+ // API needs to be ARM/Thumb consistent. Will fix later.
+#if !defined(__thumb__) && !defined(CYGPKG_HAL_ARM_INTEGRATOR_ARM9)
+ // Set up eCos/ROM interfaces
+ hal_if_init();
+#endif
+}
+
+//
+// This routine is called to respond to a hardware interrupt (IRQ). It
+// should interrogate the hardware and return the IRQ vector number.
+
+int hal_IRQ_handler(void)
+{
+ // Do hardware-level IRQ handling
+ int irq_status, vector;
+ HAL_READ_UINT32(CYG_DEVICE_IRQ_Status, irq_status);
+ //diag_init(); diag_printf("IRQ status: 0x%x\n", irq_status);
+ for (vector = 1; vector <= 16; vector++) {
+ if (irq_status & (1<<vector)) return vector;
+ }
+ return -1 ; // This shouldn't happen!
+}
+
+//
+// Interrupt control
+//
+
+void hal_interrupt_mask(int vector)
+{
+ //diag_init(); diag_printf("hal_interrupt_mask(%d)\n", vector);
+ HAL_WRITE_UINT32(CYG_DEVICE_IRQ_EnableClear, 1<<vector);
+}
+
+#if 0
+void hal_interrupt_status(void)
+{
+ int irq_status, irq_enable, timer_status, timer_value, timer_load;
+ HAL_READ_UINT32(CYG_DEVICE_IRQ_Status, irq_status);
+ HAL_READ_UINT32(CYG_DEVICE_IRQ_Enable, irq_enable);
+ HAL_READ_UINT32(CYG_DEVICE_TIMER_LOAD, timer_load);
+ HAL_READ_UINT32(CYG_DEVICE_TIMER_CURRENT, timer_value);
+ HAL_READ_UINT32(CYG_DEVICE_TIMER_CONTROL, timer_status);
+ diag_printf("Interrupt: IRQ: %x.%x, TIMER: %x.%x.%x, psr: %x\n",
+ irq_status, irq_enable, timer_status, timer_value,
+ timer_load, psr());
+}
+#endif
+
+void hal_interrupt_unmask(int vector)
+{
+ //diag_init(); diag_printf("hal_interrupt_unmask(%d)\n", vector);
+ HAL_WRITE_UINT32(CYG_DEVICE_IRQ_EnableSet, 1<<vector);
+}
+
+void hal_interrupt_acknowledge(int vector)
+{
+ //diag_init(); diag_printf("%s(%d)\n", __PRETTY_FUNCTION__, vector);
+}
+
+void hal_interrupt_configure(int vector, int level, int up)
+{
+ //diag_init(); diag_printf("%s(%d,%d,%d)\n", __PRETTY_FUNCTION__, vector, level, up);
+}
+
+void hal_interrupt_set_level(int vector, int level)
+{
+ //diag_init(); diag_printf("%s(%d,%d)\n", __PRETTY_FUNCTION__, vector, level);
+}
+
+void hal_show_IRQ(int vector, int data, int handler)
+{
+ // diag_printf("IRQ - vector: %x, data: %x, handler: %x\n", vector, data, handler);
+}
+
+/*---------------------------------------------------------------------------*/
+
+__externC void cyg_plf_pci_init(void)
+{
+ // Only do this for non-RAM startups. If we do it during RAM
+ // startup and we are using the ethernet for debugging, this kills
+ // the ethernet controller.
+#ifndef CYG_HAL_STARTUP_RAM
+
+ volatile int i, j;
+
+ /* setting this register will take the V3 out of reset */
+
+ *(volatile cyg_uint32 *)(INTEGRATOR_SC_PCIENABLE) = 1;
+
+ /* wait a few usecs to settle the device and the PCI bus */
+
+ for (i = 0; i < 100 ; i++)
+ j = i + 1;
+
+ /* Now write the Base I/O Address Word to V3_BASE + 0x6C */
+
+ *(volatile cyg_uint16 *)(V3_BASE + V3_LB_IO_BASE) = (cyg_uint16)(V3_BASE >> 16);
+
+ do {
+ *(volatile cyg_uint8 *)(V3_BASE + V3_MAIL_DATA) = 0xAA;
+ *(volatile cyg_uint8 *)(V3_BASE + V3_MAIL_DATA + 4) = 0x55;
+ } while (*(volatile cyg_uint8 *)(V3_BASE + V3_MAIL_DATA) != 0xAA ||
+ *(volatile cyg_uint8 *)(V3_BASE + V3_MAIL_DATA + 4) != 0x55);
+
+ /* Make sure that V3 register access is not locked, if it is, unlock it */
+
+ if ((*(volatile cyg_uint16 *)(V3_BASE + V3_SYSTEM) & V3_SYSTEM_M_LOCK)
+ == V3_SYSTEM_M_LOCK)
+ *(volatile cyg_uint16 *)(V3_BASE + V3_SYSTEM) = 0xA05F;
+
+ /* Ensure that the slave accesses from PCI are disabled while we */
+ /* setup windows */
+
+ *(volatile cyg_uint16 *)(V3_BASE + V3_PCI_CMD) &=
+ ~(V3_COMMAND_M_MEM_EN | V3_COMMAND_M_IO_EN);
+
+ /* Clear RST_OUT to 0; keep the PCI bus in reset until we've finished */
+
+ *(volatile cyg_uint16 *)(V3_BASE + V3_SYSTEM) &= ~V3_SYSTEM_M_RST_OUT;
+
+ /* Make all accesses from PCI space retry until we're ready for them */
+
+ *(volatile cyg_uint16 *)(V3_BASE + V3_PCI_CFG) |= V3_PCI_CFG_M_RETRY_EN;
+
+ /* Set up any V3 PCI Configuration Registers that we absolutely have to */
+ /* LB_CFG controls Local Bus protocol. */
+ /* Enable LocalBus byte strobes for READ accesses too. */
+ /* set bit 7 BE_IMODE and bit 6 BE_OMODE */
+
+ *(volatile cyg_uint16 *)(V3_BASE + V3_LB_CFG) |= 0x0C0;
+
+ /* PCI_CMD controls overall PCI operation. */
+ /* Enable PCI bus master. */
+
+ *(volatile cyg_uint16 *)(V3_BASE + V3_PCI_CMD) |= 0x04;
+
+ /* PCI_MAP0 controls where the PCI to CPU memory window is on Local Bus*/
+
+ *(volatile cyg_uint32 *)(V3_BASE + V3_PCI_MAP0) = (INTEGRATOR_BOOT_ROM_BASE) |
+ (V3_PCI_MAP_M_ADR_SIZE_512M |
+ V3_PCI_MAP_M_REG_EN |
+ V3_PCI_MAP_M_ENABLE);
+
+ /* PCI_BASE0 is the PCI address of the start of the window */
+
+ *(volatile cyg_uint32 *)(V3_BASE + V3_PCI_BASE0) = INTEGRATOR_BOOT_ROM_BASE;
+
+ /* PCI_MAP1 is LOCAL address of the start of the window */
+
+ *(volatile cyg_uint32 *)(V3_BASE + V3_PCI_MAP1) = (INTEGRATOR_HDR0_SDRAM_BASE) |
+ (V3_PCI_MAP_M_ADR_SIZE_1024M | V3_PCI_MAP_M_REG_EN |
+ V3_PCI_MAP_M_ENABLE);
+
+ /* PCI_BASE1 is the PCI address of the start of the window */
+
+ *(volatile cyg_uint32 *)(V3_BASE + V3_PCI_BASE1) = INTEGRATOR_HDR0_SDRAM_BASE;
+
+ /* Set up the windows from local bus memory into PCI configuration, */
+ /* I/O and Memory. */
+ /* PCI I/O, LB_BASE2 and LB_MAP2 are used exclusively for this. */
+
+ *(volatile cyg_uint16 *)(V3_BASE +V3_LB_BASE2) =
+ ((CPU_PCI_IO_ADRS >> 24) << 8) | V3_LB_BASE_M_ENABLE;
+ *(volatile cyg_uint16 *)(V3_BASE + V3_LB_MAP2) = 0;
+
+ /* PCI Configuration, use LB_BASE1/LB_MAP1. */
+
+ /* PCI Memory use LB_BASE0/LB_MAP0 and LB_BASE1/LB_MAP1 */
+ /* Map first 256Mbytes as non-prefetchable via BASE0/MAP0 */
+ /* (INTEGRATOR_PCI_BASE == PCI_MEM_BASE) */
+
+ *(volatile cyg_uint32 *)(V3_BASE + V3_LB_BASE0) =
+ INTEGRATOR_PCI_BASE | (0x80 | V3_LB_BASE_M_ENABLE);
+
+ *(volatile cyg_uint16 *)(V3_BASE + V3_LB_MAP0) =
+ ((INTEGRATOR_PCI_BASE >> 20) << 0x4) | 0x0006;
+
+ /* Map second 256 Mbytes as prefetchable via BASE1/MAP1 */
+
+ *(volatile cyg_uint32 *)(V3_BASE + V3_LB_BASE1) =
+ INTEGRATOR_PCI_BASE | (0x84 | V3_LB_BASE_M_ENABLE);
+
+ *(volatile cyg_uint16 *)(V3_BASE + V3_LB_MAP1) =
+ (((INTEGRATOR_PCI_BASE + SZ_256M) >> 20) << 4) | 0x0006;
+
+ /* Allow accesses to PCI Configuration space */
+ /* and set up A1, A0 for type 1 config cycles */
+
+ *(volatile cyg_uint16 *)(V3_BASE + V3_PCI_CFG) =
+ ((*(volatile cyg_uint16 *)(V3_BASE + V3_PCI_CFG)) &
+ ~(V3_PCI_CFG_M_RETRY_EN | V3_PCI_CFG_M_AD_LOW1) ) |
+ V3_PCI_CFG_M_AD_LOW0;
+
+ /* now we can allow in PCI MEMORY accesses */
+
+ *(volatile cyg_uint16 *)(V3_BASE + V3_PCI_CMD) =
+ (*(volatile cyg_uint16 *)(V3_BASE + V3_PCI_CMD)) | V3_COMMAND_M_MEM_EN;
+
+ /* Set RST_OUT to take the PCI bus is out of reset, PCI devices can */
+ /* initialise and lock the V3 system register so that no one else */
+ /* can play with it */
+
+ *(volatile cyg_uint16 *)(V3_BASE + V3_SYSTEM) =
+ (*(volatile cyg_uint16 *)(V3_BASE + V3_SYSTEM)) | V3_SYSTEM_M_RST_OUT;
+
+ *(volatile cyg_uint16 *)(V3_BASE + V3_SYSTEM) =
+ (*(volatile cyg_uint16 *)(V3_BASE + V3_SYSTEM)) | V3_SYSTEM_M_LOCK;
+
+#endif
+}
+
+/*---------------------------------------------------------------------------*/
+/* End of hal_misc.c */
diff --git a/ecos/packages/hal/arm/integrator/current/src/prog_flash.c b/ecos/packages/hal/arm/integrator/current/src/prog_flash.c
new file mode 100644
index 0000000..4e1d10a
--- /dev/null
+++ b/ecos/packages/hal/arm/integrator/current/src/prog_flash.c
@@ -0,0 +1,300 @@
+//==========================================================================
+//
+// prog_flash.c
+//
+// ARM INTEGRATOR eval board FLASH program tool
+//
+//==========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//==========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): gthomas
+// Contributors: Philippe Robin
+// Date: November 7, 2000
+// Description: Tool used to program onboard FLASH image
+//####DESCRIPTIONEND####
+
+//
+// This program will program the FLASH on the PID board
+// It is similar to 'flash' (which also downloads S records) but it always
+// programs from a fixed buffer. This is sufficient to load/update the GDB
+// stubs on the board.
+//
+
+#include <pkgconf/libc.h> // Configuration header
+
+#include <cyg/kernel/kapi.h>
+#include <stdlib.h>
+#include <ctype.h>
+#include <cyg/infra/testcase.h>
+#include <sys/cstartup.h>
+#include <cyg/hal/hal_integrator.h>
+
+#ifndef FALSE
+#define FALSE 0
+#define TRUE 1
+#endif
+
+
+#define INVALID_FTYPE 0x00000000
+#define UNKNOWN_FTYPE 0xFFFFFFFF
+#define ATMEL_FTYPE 0x00000001
+#define INTEL_FTYPE 0x00000002
+
+#define FLASH_TYPE_MASK (ATMEL_FTYPE | INTEL_FTYPE)
+
+// On Some platforms Boot and program flash may be part of the same device
+#define INTEGRATED_FTYPE 0x80000000
+#define BOOT_FTYPE 0x40000000
+#define APP_FTYPE 0x20000000
+
+#define FLASH_USAGE_MASK (BOOT_FTYPE | APP_FTYPE)
+
+#define DEFAULT_FLASH_MASK 0xFFFFFFF8
+#define FLASH_BLOCK_SIZE 0x00020000 // 128Kb
+#define EPROM_BASE 0x20000000
+#define EPROM_SIZE 0x00080000 // 512Kb
+#define FLASH_BASE 0x24000000
+#define FLASH_SIZE 0x02000000 // 32Mb
+
+typedef struct flashType {
+ char *base; // Base Address of flash
+ char *physicalBase; // before mem initialisation
+ unsigned int size; // Size of flash, in bytes
+ unsigned int type; // Atmel / Intel (CFI) / Unknown
+ unsigned int writeSize; // Size of physical block
+ unsigned int eraseSize; // Size of block erase
+ unsigned int logicalSize; // Size of logical block
+ char *ident; // identification string
+} tFlash;
+
+tFlash Integrator_Flash[2] =
+{
+ {
+ (char *)EPROM_BASE, // Base Address of flash
+ (char *)EPROM_BASE, // Physical Address of flash
+ EPROM_SIZE, // Size of flash, in bytes (512K)
+ BOOT_FTYPE | ATMEL_FTYPE, // Flash type
+ FLASH_BLOCK_SIZE, // Size of physical block
+ FLASH_BLOCK_SIZE, // Size of block erase
+ FLASH_BLOCK_SIZE, // Size of logical block
+ "Atmel", // Null terminated Info string
+ },
+ {
+ (char *)FLASH_BASE, // Base Address of flash
+ (char *)FLASH_BASE, // Physical Address of flash
+ FLASH_SIZE, // Size of flash, in bytes
+ APP_FTYPE | INTEL_FTYPE, // Flash type
+ FLASH_BLOCK_SIZE, // Size of physical block
+ FLASH_BLOCK_SIZE, // Size of block erase
+ FLASH_BLOCK_SIZE, // Size of logical block
+ "Intel 28F320S3", // Null terminated Info string
+ }
+};
+
+
+extern void diag_printf(const char *, ...);
+int identify_FLASH(void);
+void write_sector(int, char *);
+
+char *flash_buffer = (char *)0x60000;
+char *flash_buffer_end = (char *)0x80000;
+
+#ifdef BE_IMAGE
+#define BUF(x) buf[x^3]
+#else
+#define BUF(x) buf[x]
+#endif
+
+// FUNCTIONS
+
+externC void
+cyg_package_start( void )
+{
+#ifdef CYGPKG_LIBC
+ cyg_iso_c_start();
+#else
+ (void)main(0, NULL);
+#endif
+} // cyg_package_start()
+
+int
+main( int argc, char *argv[] )
+{
+ int i;
+
+ diag_printf("FLASH here!\n");
+ while (identify_FLASH() == 0) {
+ diag_printf("... Please change FLASH jumper\n");
+ cyg_thread_delay(5*100);
+ }
+ diag_printf("About to program FLASH using data at %x..%x\n", flash_buffer, flash_buffer_end);
+ diag_printf("*** Press RESET now to abort!\n");
+ cyg_thread_delay(5*100);
+ diag_printf("\n");
+ diag_printf("...Programming FLASH\n");
+
+ i = 0;
+ while (flash_buffer < flash_buffer_end) {
+ write_sector(i++, flash_buffer);
+ flash_buffer += 256;
+ }
+ diag_printf("All done!\n");
+ while (1) ;
+}
+
+// Adapted from ARM sample code
+#define SEQ_ADD1 0x5555
+#define SEQ_ADD2 0x2aaa
+#define START_CMD1 0xaaaaaaaa
+#define START_CMD2 0x55555555
+#define ID_CMD 0x90909090
+#define PROG_CMD 0xA0
+#define STOP_CMD 0xf0f0f0f0
+
+#define MAN_ATMEL 0x1F
+#define ATMEL_AT29C040_ID 0X5B
+#define ATMEL_AT29C040A_ID 0XA4
+#define ATMEL_AT29C1024_ID 0X25
+#define ATMEL_SECTOR_SIZE 256
+#define ATMEL_MAX_SECTORS 2048
+
+#define MAN_INTEL 0xB0
+#define INTEL_28F320S3_ID 0xD4
+
+int manuf_code, device_code;
+int sector_size, max_no_of_sectors, word_mode;
+volatile unsigned int *FLASH = (volatile unsigned int *)0x24000000;
+
+int
+identify_FLASH(void )
+{
+ unsigned int *ptr = (unsigned int *)FLASH;
+
+ HAL_FLASH_WRITE_ENABLE();
+
+ // Enter Software Product Identification Mode
+ FLASH[SEQ_ADD1] = START_CMD1;
+ FLASH[SEQ_ADD2] = START_CMD2;
+ FLASH[SEQ_ADD1] = ID_CMD;
+
+ // Wait at least 10ms
+ cyg_thread_delay(4);
+
+ // Read Manufacturer and device code from the device
+ manuf_code = *ptr++ & 0xff;
+ device_code = *ptr & 0xff;
+
+ diag_printf("manuf: 0x%x, device: 0x%x\n", manuf_code, device_code);
+
+ // Exit Software Product Identification Mode
+ FLASH[SEQ_ADD1] = START_CMD1;
+ FLASH[SEQ_ADD2] = START_CMD2;
+ FLASH[SEQ_ADD1] = STOP_CMD;
+
+ // Wait at least 10ms
+ cyg_thread_delay(5);
+
+ HAL_FLASH_WRITE_DISABLE();
+
+ if (manuf_code != MAN_ATMEL || manuf_code != MAN_INTEL) {
+ diag_printf ( "Error: Wrong Manufaturer: %02x\n", manuf_code );
+ return (0);
+ }
+
+ switch (device_code) {
+ case ATMEL_AT29C040A_ID:
+ diag_printf ("AT29C040A recognised\n");
+ sector_size = ATMEL_SECTOR_SIZE;
+ max_no_of_sectors = ATMEL_MAX_SECTORS;
+ word_mode = FALSE;
+ break;
+
+ case ATMEL_AT29C1024_ID:
+ diag_printf ("AT29C1024 recognised\n");
+ sector_size = ATMEL_SECTOR_SIZE;
+ max_no_of_sectors = ATMEL_MAX_SECTORS;
+ word_mode = TRUE;
+ break;
+
+ case INTEL_28F320S3_ID:
+ diag_printf ("INTEL_28F320S3 recognised\n");
+ sector_size = FLASH_BLOCK_SIZE;
+ // max_no_of_sectors = ATMEL_MAX_SECTORS;
+ word_mode = TRUE;
+ break;
+
+ default :
+ diag_printf ( "Error: Unsupported device: %02x\n", device_code);
+ return (0);
+ }
+ return (1);
+}
+
+void
+write_sector(int num, char *buf)
+{
+ int i, cnt;
+ volatile char *wrt = (volatile char *)&FLASH[num*sector_size];
+
+// diag_printf("Writing to %08x\n", wrt);
+ // Enter Program Mode
+ FLASH[SEQ_ADD1] = START_CMD1;
+ FLASH[SEQ_ADD2] = START_CMD2;
+ FLASH[SEQ_ADD1] = PROG_CMD;
+
+ // Note: write bytes as longs regardless of bus width
+ for (i = 0; i < sector_size; i++) {
+ wrt[i] = BUF(i);
+ }
+
+ // Wait for sector to program
+ cnt = 0;
+ i = sector_size - 1;
+ while (wrt[i] != BUF(i)) {
+ if (cnt++ > 0x01000000) break;
+ }
+// diag_printf("Out - i: %d, wrt[i] = %08X.%08X, BUF(i) = %08X, count = %x\n", i, &wrt[i], wrt[i], BUF(i), cnt);
+
+ // Verify
+ for (i = 0; i < sector_size; i++) {
+ for (cnt = 0; cnt < 10; cnt++) {
+ if (wrt[i] == BUF(i)) break;
+ cyg_thread_delay(1);
+ }
+ if (cnt == 10) {
+ diag_printf("Can't program at 0x%08X: %02X not %02X\n", wrt, *wrt, BUF(0));
+ }
+ }
+}
diff --git a/ecos/packages/hal/arm/lpc24xx/ea2468/current/ChangeLog b/ecos/packages/hal/arm/lpc24xx/ea2468/current/ChangeLog
new file mode 100755
index 0000000..2add443
--- /dev/null
+++ b/ecos/packages/hal/arm/lpc24xx/ea2468/current/ChangeLog
@@ -0,0 +1,91 @@
+2012-04-23 Nick Garnett <nickg@ecoscentric.com>
+
+ * include/pkgconf/mlt_arm_lpc24xx_ea2468_rom.ldi:
+ * include/pkgconf/mlt_arm_lpc24xx_ea2468_ram.ldi: Relocate fixed
+ vectors to 0x40000020. Previously, the HAL_VSR_GET/SET macros
+ accessed the wrong locations and didn't have any effect; now both
+ hardware and software have the same idea of where the VSR table
+ is.
+ NOTE: that this renders RAM applications built with this layout
+ incompatible with RedBoot built with the old layout. A new RedBoot
+ needs to be installed.
+
+ * cdl/hal_arm_lpc24xx_ea2468.cdl:
+ * tests/fiq.c: Add FIQ test program.
+
+2009-01-31 Bart Veer <bartv@ecoscentric.com>
+
+ * cdl/hal_arm_lpc24xx_ea2468.cdl: update compiler flags for gcc 4.x
+
+2009-01-24 Bart Veer <bartv@ecoscentric.com>
+
+ * cdl/hal_arm_lpc24xx_ea2468.cdl: switch from arm-elf-gcc to
+ arm-eabi-gcc. Remove -mno-short-load-words.
+
+2008-11-01 Uwe Kindler <uwe_kindler@web.de>
+
+ * cdl/hal_arm_lpc24xx_ea2468.cdl: Fixed typo
+ * include/pkgconf/mlt_arm_lpc24xx_ea2468_ram.h: Reserve 1 MB of
+ SDRAM for RedBoot.
+ * include/pkgconf/mlt_arm_lpc24xx_ea2468_ram.ldi: Reserve 1 MB of
+ SDRAM for RedBoot
+ * src/platform_i2c.c: Compile only if I2C channel 0 is supported
+
+2008-09-18 Uwe Kindler <uwe_kindler@web.de>
+
+ * cdl/hal_arm_lpc2xxx_ea2468.cdl: Added compile platform_i2c.c and
+ CYGPKG_HAL_ARM_LPC24XX_EA2468_TESTS for building I2C test
+ * include/plf_io.h: Exported I2C devices and bus via macro
+ HAL_I2C_EXPORTED_DEVICES, Added I2C related defines, Added
+ functions declarations hal_lpc_eeprom_write() and
+ hal_lpc_eeprom_read() for I2C EEPROM access
+ * src/ea2468_misc.c: Replaced CYGARC_HAL_LPC24XX_SET_PIN_FUN() macro
+ calls with hal_set_pin_function() calls
+ * src/platform_i2c.c: New file adds I2C bus support for I2C bus 0 and
+ adds support for I2C EEPROM
+ * tests/i2c_eeprom: Simple I2C EEPROM read/write test case
+
+2008-09-11 Uwe Kindler <uwe_kindler@web.de>
+
+ * cdl/hal_arm_lpc2xxx_ea2468.cdl: Added constraint for
+ CYGHWR_DEVS_ETH_PHY_KSZ8001 if ethernet packages is active
+
+2008-07-21 Uwe Kindler <uwe_kindler@web.de>
+
+ * src/ea2468_misc.c: Added hal_lpc_can_init() to initialize CAN
+ channels
+ * include/plf_io.h: Added HAL_LPC2XXX_INIT_CAN() macro for CAN channel
+ initialisation
+
+2008-07-06 Uwe Kindler <uwe_kindler@web.de>
+
+ * Initial release of Embedded Artists LPC2468 OEM board package
+ * cdl/hal_arm_lpc2xxx_ea2468.cdl
+ * include/plf_io.h
+ * include/hal_platform_setup.h
+ * src/ea2468_misc
+
+# ====================================================================
+## ####GPLCOPYRIGHTBEGIN####
+## -------------------------------------------
+## This file is part of eCos, the Embedded Configurable Operating System.
+## Copyright (C) 2008 Free Software Foundation, Inc.
+##
+## This program is free software; you can redistribute it and/or modify
+## it under the terms of the GNU General Public License as published by
+## the Free Software Foundation; either version 2 or (at your option) any
+## later version.
+##
+## This program is distributed in the hope that it will be useful, but
+## WITHOUT ANY WARRANTY; without even the implied warranty of
+## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+## General Public License for more details.
+##
+## You should have received a copy of the GNU General Public License
+## along with this program; if not, write to the
+## Free Software Foundation, Inc., 51 Franklin Street,
+## Fifth Floor, Boston, MA 02110-1301, USA.
+## -------------------------------------------
+## ####GPLCOPYRIGHTEND####
+# ====================================================================
+
diff --git a/ecos/packages/hal/arm/lpc24xx/ea2468/current/cdl/hal_arm_lpc24xx_ea2468.cdl b/ecos/packages/hal/arm/lpc24xx/ea2468/current/cdl/hal_arm_lpc24xx_ea2468.cdl
new file mode 100755
index 0000000..d1af566
--- /dev/null
+++ b/ecos/packages/hal/arm/lpc24xx/ea2468/current/cdl/hal_arm_lpc24xx_ea2468.cdl
@@ -0,0 +1,341 @@
+# ====================================================================
+#
+# hal_arm_lpc24xx_ea2468.cdl
+#
+# Embedded Artists LPC2468 OEM Board HAL package configuration data
+#
+# ====================================================================
+## ####ECOSGPLCOPYRIGHTBEGIN####
+## -------------------------------------------
+## This file is part of eCos, the Embedded Configurable Operating System.
+## Copyright (C) 1998, 1999, 2000, 2001, 2002, 2008 Free Software Foundation, Inc.
+##
+## eCos is free software; you can redistribute it and/or modify it under
+## the terms of the GNU General Public License as published by the Free
+## Software Foundation; either version 2 or (at your option) any later
+## version.
+##
+## eCos is distributed in the hope that it will be useful, but WITHOUT
+## ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+## FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+## for more details.
+##
+## You should have received a copy of the GNU General Public License
+## along with eCos; if not, write to the Free Software Foundation, Inc.,
+## 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+##
+## As a special exception, if other files instantiate templates or use
+## macros or inline functions from this file, or you compile this file
+## and link it with other works to produce a work based on this file,
+## this file does not by itself cause the resulting work to be covered by
+## the GNU General Public License. However the source code for this file
+## must still be made available in accordance with section (3) of the GNU
+## General Public License v2.
+##
+## This exception does not invalidate any other reasons why a work based
+## on this file might be covered by the GNU General Public License.
+## -------------------------------------------
+## ####ECOSGPLCOPYRIGHTEND####
+# ====================================================================
+######DESCRIPTIONBEGIN####
+#
+# Author(s): Uwe Kindler
+# Contributors: Uwe Kindler
+# Date: 2008-07-06
+#
+#####DESCRIPTIONEND####
+#
+# ====================================================================
+
+cdl_package CYGPKG_HAL_ARM_LPC24XX_EA2468 {
+ display "Embedded Artists LPC2468 OEM Board board HAL"
+ parent CYGPKG_HAL_ARM_LPC24XX
+ define_header hal_arm_lpc24xx_ea2468.h
+ include_dir cyg/hal
+ hardware
+ implements CYGINT_DEVS_CAN_LPC2XXX_CAN0
+ implements CYGINT_DEVS_CAN_LPC2XXX_CAN1
+ implements CYGINT_IO_SERIAL_LPC24XX_UART0
+ implements CYGINT_IO_SERIAL_LPC24XX_UART1
+ description "
+ The LPC2468 OEM HAL package provides the support needed to run
+ eCos on Embedded Artists LPC2468 OEM 16/32 boards."
+
+ compile ea2468_misc.c platform_i2c.c
+
+ requires { CYGHWR_HAL_ARM_LPC24XX == "LPC2468" }
+ requires { is_active(CYGPKG_DEVS_ETH_PHY) implies
+ (1 == CYGHWR_DEVS_ETH_PHY_KSZ8001) }
+
+ 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_lpc24xx.h>"
+ puts $::cdl_system_header "#define CYGBLD_HAL_PLATFORM_H <pkgconf/hal_arm_lpc24xx_ea2468.h>"
+ puts $::cdl_header "#define HAL_PLATFORM_CPU \"ARM7TDMI-S\""
+ puts $::cdl_header "#define HAL_PLATFORM_BOARD \"Embedded Artists LPC2468 OEM Board\""
+ puts $::cdl_header "#define HAL_PLATFORM_EXTRA \"\""
+ }
+
+ cdl_option CYGNUM_HAL_ARM_LPC24XX_XTAL_FREQ {
+ display "CPU xtal frequency"
+ parent CYGNUM_HAL_ARM_LPC24XX_CLOCKING
+ flavor data
+ default_value {12000000}
+ }
+
+ cdl_option CYGNUM_HAL_ARM_LPC24XX_MAX_CLOCK_SPEED {
+ display "Max. CPU clock speed"
+ parent CYGNUM_HAL_ARM_LPC24XX_CLOCKING
+ flavor data
+ calculated {57600000}
+ requires CYGNUM_HAL_ARM_LPC24XX_CLOCK_SPEED <= 57600000
+ description "
+ Due to a silicon errata, the highest internal core
+ clock frequency (at the time of writing this document)
+ is 57.6 MHz. This corresponds to an internal PLL
+ frequency of 288 MHz that is divided by 6 to get a 48
+ MHz clock for the core and the USB interface."
+ }
+
+ cdl_component CYG_HAL_STARTUP {
+ display "Startup type"
+ flavor data
+ default_value {"ROM"}
+ legal_values {"RAM" "ROM"}
+ no_define
+ define -file system.h CYG_HAL_STARTUP
+ description "
+ Choose RAM or ROM startup type. Typically ROM startup is used for
+ building RedBoot. RedBoot runs from internal on chip flash of
+ LPC24xx. Use RAM startup for building eCos applications.
+ RedBoot manages the external on board flash devices. It copies
+ the eCos application image from FLASH to on board SDRAM
+ and then starts the eCos application."
+ }
+
+ cdl_option CYGNUM_HAL_VIRTUAL_VECTOR_COMM_CHANNELS {
+ display "Number of communication channels on the board"
+ flavor data
+ calculated 2
+ description "
+ Channel 0: UART0, Channel 1: UART1"
+ }
+
+ cdl_option CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_DEFAULT {
+ display "Default console channel."
+ active_if CYGPRI_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_CONFIGURABLE
+ flavor data
+ calculated 0
+ }
+
+ cdl_option CYGNUM_HAL_VIRTUAL_VECTOR_DEBUG_CHANNEL {
+ display "Debug serial port"
+ active_if CYGPRI_HAL_VIRTUAL_VECTOR_DEBUG_CHANNEL_CONFIGURABLE
+ flavor data
+ legal_values 0 to CYGNUM_HAL_VIRTUAL_VECTOR_COMM_CHANNELS-1
+ default_value 0
+ description "
+ The LPC2468 OEM board has two serial channels. The first
+ channel, UART0, is routed to an USB-to-serial bridge and
+ the second channel, UART1, is available on the Sub-D9
+ RS232 connector. This option chooses which channel will be
+ used to connect to a host running GDB."
+ }
+
+ cdl_option CYGNUM_HAL_VIRTUAL_VECTOR_DEBUG_CHANNEL_BAUD {
+ display "GDB serial port baud rate"
+ flavor data
+ legal_values 9600 19200 38400 57600 115200
+ default_value 38400
+ description "
+ This option controls the baud rate used for the GDB
+ connection."
+ }
+
+ cdl_option CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL {
+ display "Diagnostic serial port"
+ active_if CYGPRI_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_CONFIGURABLE
+ flavor data
+ legal_values 0 to CYGNUM_HAL_VIRTUAL_VECTOR_COMM_CHANNELS-1
+ default_value 0
+ description "
+ The LPC2468 OEM board has two serial ports. This option
+ chooses which port will be used for diagnostic output."
+ }
+
+ cdl_option CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_BAUD {
+ display "Diagnostic serial port baud rate"
+ flavor data
+ legal_values 9600 19200 38400 57600 115200
+ default_value 38400
+ description "
+ This option selects the baud rate used for the diagnostic port."
+ }
+
+ cdl_option CYGHWR_HAL_ARM_LPC24XX_EA2468_DATA_BUS_WIDTH {
+ display "Data bus width"
+ flavor data
+ default_value { 16 }
+ legal_values { 16 32 }
+ description "
+ The LPC2468 OEM board is sold in two different data bus
+ versions - a 16-bit version and a 32-bit version."
+ }
+
+
+ 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 { "arm-eabi"}
+ 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 { CYGBLD_GLOBAL_WARNFLAGS . CYGBLD_ARCH_CFLAGS .
+ "-mcpu=arm7tdmi -g -O2 -ffunction-sections -fdata-sections -fno-rtti -fno-exceptions " }
+ 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 { CYGBLD_ARCH_LDFLAGS . "-mcpu=arm7tdmi -Wl,--gc-sections -Wl,-static -g -nostdlib" }
+ description "
+ This option controls the global linker flags. Individual
+ packages may define options which override these global
+ flags."
+ }
+ }
+
+ 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 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_REDBOOT_HAL_OPTIONS {
+ display "Redboot HAL options"
+ flavor none
+ no_define
+ parent CYGPKG_REDBOOT
+ active_if CYGPKG_REDBOOT
+ description "
+ This option lists the target's requirements for a valid
+ Redboot configuration."
+
+ cdl_option CYGBLD_BUILD_REDBOOT_BIN {
+ display "Build Redboot ROM binary image"
+ active_if CYGBLD_BUILD_REDBOOT
+ requires { !CYGBLD_BUILD_REDBOOT_WITH_EXEC }
+ 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 ihex $< $(@:.bin=.hex)
+ $(OBJCOPY) -O binary $< $@
+ }
+
+ }
+ }
+
+
+ cdl_component CYGHWR_MEMORY_LAYOUT {
+ display "Memory layout"
+ flavor data
+ no_define
+ calculated { (CYG_HAL_STARTUP == "RAM") ? "arm_lpc24xx_ea2468_ram" :
+ "arm_lpc24xx_ea2468_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_lpc24xx_ea2468_ram.ldi>" :
+ "<pkgconf/mlt_arm_lpc24xx_ea2468_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_lpc24xx_ea2468_ram.h>" :
+ "<pkgconf/mlt_arm_lpc24xx_ea2468_rom.h>" }
+ }
+ }
+
+ cdl_option CYGPKG_HAL_ARM_LPC24XX_EA2468_TESTS_EXTRAS {
+ display "EA2468 extra tests"
+ default_value 0
+ description "Enable hand-run tests for EA2468 board."
+ }
+
+ cdl_option CYGPKG_HAL_ARM_LPC24XX_EA2468_TESTS {
+ display "Tests for LPC2468 OEM board HAL"
+ flavor data
+ no_define
+ calculated { "tests/i2c_eeprom" . (CYGPKG_HAL_ARM_LPC24XX_EA2468_TESTS_EXTRAS ? " tests/fiq" : "") }
+ description "
+ This option specifies the set of tests for the EA2468
+ OEM board HAL."
+ }
+
+}
diff --git a/ecos/packages/hal/arm/lpc24xx/ea2468/current/include/hal_platform_setup.h b/ecos/packages/hal/arm/lpc24xx/ea2468/current/include/hal_platform_setup.h
new file mode 100755
index 0000000..05118fb
--- /dev/null
+++ b/ecos/packages/hal/arm/lpc24xx/ea2468/current/include/hal_platform_setup.h
@@ -0,0 +1,123 @@
+#ifndef CYGONCE_HAL_PLATFORM_SETUP_H
+#define CYGONCE_HAL_PLATFORM_SETUP_H
+/*=============================================================================
+//
+// hal_platform_setup.h
+//
+// Platform specific support for HAL (assembly code)
+//
+//=============================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002, 2008 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): Uwe Kindler
+// Contributors: Uwe Kindler
+// Date: 2008-06-05
+// Purpose: EA LPC2468 OEM platform specific support routines
+// Description:
+// Usage: #include <cyg/hal/hal_platform_setup.h>
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================*/
+#include <pkgconf/system.h>
+#include <cyg/hal/var_io.h>
+
+
+//
+// The minimum initialisation code - we simply setup a valid C stack in
+// internal SRAM and do any further initialisation in C code
+//
+#if defined(CYG_HAL_STARTUP_ROM)
+.macro _setup
+ //
+ // While setting the stack pointer please note that the
+ // Flash programming routines use a
+ // section of the on-chip SRAM. In-System Programming (ISP) uses
+ // the top 256 bytes and In-Application Programming (IAP) uses the
+ // top 128 bytes of the on-chip SRAM. The application stack should
+ // not overlap this area.
+ //
+ ldr r2,=0x4000ffff // ram end
+ sub sp,r2,#0xff
+
+ //
+ // now map the vector table to internal flash - normally this should be
+ // the default value after boot - but we go the save way here and force
+ // the mapping to internal flash (the value for
+ // CYGARC_HAL_LPC24XX_REG_MEMMAP is 1)
+ //
+ ldr r0,=CYGARC_HAL_LPC24XX_REG_SCB_BASE
+ mov r1,#1
+ str r1, [r0,#CYGARC_HAL_LPC24XX_REG_MEMMAP]
+
+ //
+ // Now its is save to copy the first 64 bytes of flash to RAM
+ //
+ mov r0,#0
+ mov r1,#0x40000000
+ mov r2,#0x40
+1:
+ ldr r3,[r0,#4]!
+ str r3,[r1,#4]!
+ cmps r0,r2
+ bne 1b
+
+ //
+ // Now we can map the vector table to internal SRAM because the SRAM no
+ // contains a copy of the vector table from flash (the value for
+ // CYGARC_HAL_LPC24XX_REG_MEMMAP is 2 = SRAM)
+ //
+ ldr r0,=CYGARC_HAL_LPC24XX_REG_SCB_BASE
+ mov r1,#2 // User RAM Mode. Interrupt
+ // vectors are re-mapped to Static RAM.
+ str r1, [r0,#CYGARC_HAL_LPC24XX_REG_MEMMAP]
+
+ //
+ // now we have a valid stack and we can jump into the beautiful
+ // world of C and do any further initialisation in C code
+ //
+ bl hal_plf_startup
+.endm
+#define CYGSEM_HAL_ROM_RESET_USES_JUMP
+#else
+.macro _setup
+.endm
+#endif
+
+#define PLATFORM_SETUP1 _setup
+
+//-----------------------------------------------------------------------------
+// end of hal_platform_setup.h
+#endif // CYGONCE_HAL_PLATFORM_SETUP_H
diff --git a/ecos/packages/hal/arm/lpc24xx/ea2468/current/include/pkgconf/mlt_arm_lpc24xx_ea2468_ram.h b/ecos/packages/hal/arm/lpc24xx/ea2468/current/include/pkgconf/mlt_arm_lpc24xx_ea2468_ram.h
new file mode 100755
index 0000000..d3686b3
--- /dev/null
+++ b/ecos/packages/hal/arm/lpc24xx/ea2468/current/include/pkgconf/mlt_arm_lpc24xx_ea2468_ram.h
@@ -0,0 +1,21 @@
+#ifndef __ASSEMBLER__
+#include <cyg/infra/cyg_type.h>
+#include <stddef.h>
+
+#endif
+
+#define CYGMEM_REGION_sram (0x40000000)
+#define CYGMEM_REGION_sram_SIZE (0x00100000)
+#define CYGMEM_REGION_sram_ATTR (CYGMEM_REGION_ATTR_R | CYGMEM_REGION_ATTR_W)
+
+#define CYGMEM_REGION_ram (0xA0100000)
+#define CYGMEM_REGION_ram_SIZE (0x01F00000)
+#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 (0xA2000000 - (size_t) CYG_LABEL_NAME (__heap1))
+
diff --git a/ecos/packages/hal/arm/lpc24xx/ea2468/current/include/pkgconf/mlt_arm_lpc24xx_ea2468_ram.ldi b/ecos/packages/hal/arm/lpc24xx/ea2468/current/include/pkgconf/mlt_arm_lpc24xx_ea2468_ram.ldi
new file mode 100755
index 0000000..14694c8
--- /dev/null
+++ b/ecos/packages/hal/arm/lpc24xx/ea2468/current/include/pkgconf/mlt_arm_lpc24xx_ea2468_ram.ldi
@@ -0,0 +1,26 @@
+#include <cyg/infra/cyg_type.inc>
+#include <pkgconf/hal_arm_lpc24xx_ea2468.h>
+
+MEMORY
+{
+ sram : ORIGIN = 0x40000000, LENGTH = 0x10000
+ ram : ORIGIN = 0xA0100000, LENGTH = 0x1F00000
+}
+
+SECTIONS
+{
+ SECTIONS_BEGIN
+ SECTION_fixed_vectors (sram, 0x40000020, LMA_EQ_VMA)
+ SECTION_rom_vectors (ram, 0xA0100000, 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)
+ CYG_LABEL_DEFN(__heap1) = ALIGN (0x8);
+ SECTIONS_END
+}
+
diff --git a/ecos/packages/hal/arm/lpc24xx/ea2468/current/include/pkgconf/mlt_arm_lpc24xx_ea2468_rom.h b/ecos/packages/hal/arm/lpc24xx/ea2468/current/include/pkgconf/mlt_arm_lpc24xx_ea2468_rom.h
new file mode 100755
index 0000000..b087b73
--- /dev/null
+++ b/ecos/packages/hal/arm/lpc24xx/ea2468/current/include/pkgconf/mlt_arm_lpc24xx_ea2468_rom.h
@@ -0,0 +1,28 @@
+// eCos memory layout - Wed Apr 11 13:49:55 2001
+
+// This is a generated file - do not edit
+
+#ifndef __ASSEMBLER__
+#include <cyg/infra/cyg_type.h>
+#include <stddef.h>
+
+#endif
+#define CYGMEM_REGION_sram (0x40000000)
+#define CYGMEM_REGION_sram_SIZE (0x00010000)
+#define CYGMEM_REGION_sram_ATTR (CYGMEM_REGION_ATTR_R | CYGMEM_REGION_ATTR_W)
+
+#define CYGMEM_REGION_ram (0xA0000000)
+#define CYGMEM_REGION_ram_SIZE (0x02000000)
+#define CYGMEM_REGION_ram_ATTR (CYGMEM_REGION_ATTR_R | CYGMEM_REGION_ATTR_W)
+
+#define CYGMEM_REGION_rom (0x00000000)
+#define CYGMEM_REGION_rom_SIZE (0x00080000)
+#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 (0xA2000000 - (size_t) CYG_LABEL_NAME (__heap1))
+
diff --git a/ecos/packages/hal/arm/lpc24xx/ea2468/current/include/pkgconf/mlt_arm_lpc24xx_ea2468_rom.ldi b/ecos/packages/hal/arm/lpc24xx/ea2468/current/include/pkgconf/mlt_arm_lpc24xx_ea2468_rom.ldi
new file mode 100755
index 0000000..78f5238
--- /dev/null
+++ b/ecos/packages/hal/arm/lpc24xx/ea2468/current/include/pkgconf/mlt_arm_lpc24xx_ea2468_rom.ldi
@@ -0,0 +1,27 @@
+#include <cyg/infra/cyg_type.inc>
+#include <pkgconf/hal_arm_lpc24xx_ea2468.h>
+
+MEMORY
+{
+ rom : ORIGIN = 0x00000000, LENGTH = 0x80000
+ sram : ORIGIN = 0x40000000, LENGTH = 0x10000
+ ram : ORIGIN = 0xA0000000, LENGTH = 0x2000000
+}
+
+SECTIONS
+{
+ SECTIONS_BEGIN
+ SECTION_rom_vectors (rom, 0x00000000, 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 (sram, 0x40000020, LMA_EQ_VMA)
+ SECTION_data (ram, 0xA0000000, FOLLOWING (.gcc_except_table))
+ SECTION_bss (ram, ALIGN (0x4), LMA_EQ_VMA)
+ CYG_LABEL_DEFN(__heap1) = ALIGN (0x8);
+ SECTIONS_END
+}
+
diff --git a/ecos/packages/hal/arm/lpc24xx/ea2468/current/include/plf_io.h b/ecos/packages/hal/arm/lpc24xx/ea2468/current/include/plf_io.h
new file mode 100755
index 0000000..1dd81a9
--- /dev/null
+++ b/ecos/packages/hal/arm/lpc24xx/ea2468/current/include/plf_io.h
@@ -0,0 +1,126 @@
+#ifndef CYGONCE_HAL_PLF_IO_H
+#define CYGONCE_HAL_PLF_IO_H
+//=============================================================================
+//
+// plf_io.h
+//
+// Embedded Artists LPC2468 OEM board specific registers
+//
+//=============================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002, 2008 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): Uwe Kindler
+// Contributors:
+// Date: 2008-07-06
+// Purpose: EA LPC2468 oem board specific registers
+// Description:
+// Usage: #include <cyg/hal/plf_io.h>
+//
+//####DESCRIPTIONEND####
+//
+//=============================================================================
+// On-chip device base addresses
+
+
+// ----------------------------------------------------------------------------
+// exported I2C devices on OEM board
+//
+#define HAL_I2C_EXPORTED_DEVICES \
+ extern cyg_i2c_device i2c_cat24c256_eeprom; \
+ extern cyg_i2c_bus hal_ea2468_i2c0_bus;
+
+
+//----------------------------------------------------------------------
+// The platform needs this initialization during the
+// hal_hardware_init() function in the varient HAL.
+#ifndef __ASSEMBLER__
+extern void hal_plf_hardware_init(void);
+#define HAL_PLF_HARDWARE_INIT() \
+ hal_plf_hardware_init()
+
+//-----------------------------------------------------------------------------
+// LPX24xx variant specific initialisation of CAN channels
+// This function configures the pin functions for CAN use
+//-----------------------------------------------------------------------------
+#ifdef CYGPKG_DEVS_CAN_LPC2XXX
+externC void hal_lpc_can_init(cyg_uint8 can_chan_no);
+#define HAL_LPC2XXX_INIT_CAN(_can_chan_no_) hal_lpc_can_init(_can_chan_no_)
+#endif // CYGPKG_DEVS_CAN_LPC2XXX
+
+
+// ----------------------------------------------------------------------------
+// I2C support. The LPC2468 OEM board supports up to 3 I2C busses. Only the
+// I2C bus 0 is used on the board. The other I2C busses are available via
+// the expansion connector. If only the first bus is used, the I2C driver
+// will be optimized for a single I2C bus
+#ifdef CYGPKG_DEVS_I2C_ARM_LPC2XXX
+# define HAL_LPC2XXX_I2C_SINGLETON_BASE CYGARC_HAL_LPC24XX_REG_I2C0_BASE
+# define HAL_LPC2XXX_I2C_SINGLETON_ISRVEC CYGNUM_HAL_INTERRUPT_I2C
+# define HAL_LPC2XXX_I2C_SINGLETON_CLK CYGNUM_HAL_ARM_LPC24XX_I2C0_CLK
+# define HAL_LPC2XXX_I2C_SINGLETON_ISRPRI CYGNUM_HAL_ARM_LPC24XX_I2C0_INT_PRIO
+# define HAL_LPC2XXX_I2C_SINGLETON_BUS_FREQ CYGNUM_HAL_ARM_LPC24XX_I2C0_BUS_FREQ
+
+
+//-----------------------------------------------------------------------------
+// Write data to eeprom (page write)
+// If the call is blocking (blocking == true) then the function will poll
+// the device if it is busy writing. If it is non blocking then the function
+// immediately return 0 if the device is busy
+// Function returns number of bytes written to device
+//-----------------------------------------------------------------------------
+externC cyg_uint32 hal_lpc_eeprom_write(cyg_uint16 addr,
+ cyg_uint8 *pdata,
+ cyg_uint16 size,
+ cyg_bool blocking);
+
+
+//-----------------------------------------------------------------------------
+// Read data from eeprom (selcetive, sequencial read)
+// If the call is blocking (blocking == true) then the function will poll
+// the device if it is busy writing. If it is non blocking then the function
+// immediately return 0 if the device is busy
+// Function returns number of bytes read from device
+//-----------------------------------------------------------------------------
+externC cyg_uint32 hal_lpc_eeprom_read(cyg_uint16 addr,
+ cyg_uint8 *pdata,
+ cyg_uint16 size,
+ cyg_bool blocking);
+#endif // CYGPKG_DEVS_I2C_ARM_LPC2XXX
+#endif //__ASSEMBLER__
+
+//-----------------------------------------------------------------------------
+// end of plf_io.h
+#endif // CYGONCE_HAL_PLF_IO_H
+
diff --git a/ecos/packages/hal/arm/lpc24xx/ea2468/current/src/ea2468_misc.c b/ecos/packages/hal/arm/lpc24xx/ea2468/current/src/ea2468_misc.c
new file mode 100755
index 0000000..6848665
--- /dev/null
+++ b/ecos/packages/hal/arm/lpc24xx/ea2468/current/src/ea2468_misc.c
@@ -0,0 +1,458 @@
+/*==========================================================================
+//
+// ea2468_misc.c
+//
+// HAL misc board support code for EA LPC2468 OEM board
+//
+//==========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002, 2008 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//==========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): Uwe Kindler
+// Contributors: Uwe Kindler
+// Date: 2008-06-15
+// Purpose: HAL board support
+// Description: Implementations of HAL board interfaces
+//
+//####DESCRIPTIONEND####
+//
+//========================================================================*/
+
+
+//===========================================================================
+// INCLUDES
+//===========================================================================
+#include <pkgconf/hal.h>
+#include <pkgconf/hal_arm_lpc24xx_ea2468.h>
+#include <cyg/hal/hal_diag.h>
+#include <cyg/hal/hal_io.h> // IO macros
+
+#include <cyg/infra/cyg_type.h> // base types
+#include <cyg/infra/cyg_ass.h> // assertion macros
+#include <cyg/hal/var_io.h>
+#include <cyg/hal/plf_io.h>
+#include <pkgconf/hal.h>
+
+#include <cyg/hal/hal_arch.h>
+#include <cyg/hal/hal_intr.h>
+
+#ifdef CYGPKG_REDBOOT
+#include <redboot.h>
+#endif
+
+
+//===========================================================================
+// DEFINES
+//===========================================================================
+#define SCB_BASE CYGARC_HAL_LPC24XX_REG_SCB_BASE
+#define EMC_BASE CYGARC_HAL_LPC24XX_REG_EMC_BASE
+#define PIN_BASE CYGARC_HAL_LPC24XX_REG_PIN_BASE
+#define IO_BASE CYGARC_HAL_LPC24XX_REG_IO_BASE
+#define FIO_BASE CYGARC_HAL_LPC24XX_REG_FIO_BASE
+#define SDRAM_BASE 0xA0000000
+
+extern void cyg_hal_plf_serial_init(void);
+
+
+//===========================================================================
+// Initialize communication channels
+//===========================================================================
+void cyg_hal_plf_comms_init(void)
+{
+ static int initialized = 0;
+
+ if (initialized)
+ return;
+ initialized = 1;
+
+ cyg_hal_plf_serial_init();
+}
+
+
+//===========================================================================
+// Finalize hardware initialisation of platform
+//===========================================================================
+void hal_plf_hardware_init(void)
+{
+
+}
+
+
+//===========================================================================
+// hal_gpio_init
+//===========================================================================
+void hal_gpio_init(void)
+{
+ //
+ // Enable UART0 pins
+ //
+ HAL_WRITE_UINT32(PIN_BASE + CYGARC_HAL_LPC24XX_REG_PINSEL0, 0x00000050);
+ HAL_WRITE_UINT32(PIN_BASE + CYGARC_HAL_LPC24XX_REG_PINSEL1, 0);
+ HAL_WRITE_UINT32(PIN_BASE + CYGARC_HAL_LPC24XX_REG_PINSEL2, 0);
+ HAL_WRITE_UINT32(PIN_BASE + CYGARC_HAL_LPC24XX_REG_PINSEL3, 0);
+ HAL_WRITE_UINT32(PIN_BASE + CYGARC_HAL_LPC24XX_REG_PINSEL4, 0);
+ HAL_WRITE_UINT32(PIN_BASE + CYGARC_HAL_LPC24XX_REG_PINSEL5, 0);
+ HAL_WRITE_UINT32(PIN_BASE + CYGARC_HAL_LPC24XX_REG_PINSEL6, 0);
+ HAL_WRITE_UINT32(PIN_BASE + CYGARC_HAL_LPC24XX_REG_PINSEL7, 0x30003fff);
+ HAL_WRITE_UINT32(PIN_BASE + CYGARC_HAL_LPC24XX_REG_PINSEL8, 0);
+ HAL_WRITE_UINT32(PIN_BASE + CYGARC_HAL_LPC24XX_REG_PINSEL9, 0);
+ HAL_WRITE_UINT32(PIN_BASE + CYGARC_HAL_LPC24XX_REG_PINSEL10,0);
+
+ HAL_WRITE_UINT32(IO_BASE + CYGARC_HAL_LPC24XX_REG_IO0DIR, 0);
+ HAL_WRITE_UINT32(IO_BASE + CYGARC_HAL_LPC24XX_REG_IO1DIR, 0);
+ HAL_WRITE_UINT32(IO_BASE + CYGARC_HAL_LPC24XX_REG_IO0SET, 0xffffffff);
+ HAL_WRITE_UINT32(IO_BASE + CYGARC_HAL_LPC24XX_REG_IO1SET, 0xffffffff);
+
+ HAL_WRITE_UINT32(FIO_BASE + CYGARC_HAL_LPC24XX_REG_FIO0DIR, 0);
+ HAL_WRITE_UINT32(FIO_BASE + CYGARC_HAL_LPC24XX_REG_FIO1DIR, 0);
+ HAL_WRITE_UINT32(FIO_BASE + CYGARC_HAL_LPC24XX_REG_FIO2DIR, 0);
+ HAL_WRITE_UINT32(FIO_BASE + CYGARC_HAL_LPC24XX_REG_FIO3DIR, 0);
+ HAL_WRITE_UINT32(FIO_BASE + CYGARC_HAL_LPC24XX_REG_FIO4DIR, 0);
+
+ HAL_WRITE_UINT32(FIO_BASE + CYGARC_HAL_LPC24XX_REG_FIO0SET, 0xffffffff);
+ HAL_WRITE_UINT32(FIO_BASE + CYGARC_HAL_LPC24XX_REG_FIO1SET, 0xffffffff);
+ HAL_WRITE_UINT32(FIO_BASE + CYGARC_HAL_LPC24XX_REG_FIO2SET, 0xffffffff);
+ HAL_WRITE_UINT32(FIO_BASE + CYGARC_HAL_LPC24XX_REG_FIO3SET, 0xffffffff);
+ HAL_WRITE_UINT32(FIO_BASE + CYGARC_HAL_LPC24XX_REG_FIO4SET, 0xffffffff);
+}
+
+
+//===========================================================================
+// hal_pll_init - initialize pll and all clocks
+//===========================================================================
+void hal_pll_init(void)
+{
+ cyg_uint32 regval;
+
+ HAL_READ_UINT32(SCB_BASE + CYGARC_HAL_LPC24XX_REG_PLLSTAT, regval);
+ if (regval & CYGARC_HAL_LPC24XX_REG_PLLSTAT_PLLC)
+ {
+ //
+ // Enable PLL, disconnected
+ //
+ HAL_WRITE_UINT32(SCB_BASE + CYGARC_HAL_LPC24XX_REG_PLLCON,
+ CYGARC_HAL_LPC24XX_REG_PLLCON_PLLE);
+ HAL_WRITE_UINT32(SCB_BASE + CYGARC_HAL_LPC24XX_REG_PLLFEED, 0xaa);
+ HAL_WRITE_UINT32(SCB_BASE + CYGARC_HAL_LPC24XX_REG_PLLFEED, 0x55);
+ }
+
+ //
+ // Disable PLL, disconnected
+ //
+ HAL_WRITE_UINT32(SCB_BASE + CYGARC_HAL_LPC24XX_REG_PLLCON, 0x00);
+ HAL_WRITE_UINT32(SCB_BASE + CYGARC_HAL_LPC24XX_REG_PLLFEED, 0xaa);
+ HAL_WRITE_UINT32(SCB_BASE + CYGARC_HAL_LPC24XX_REG_PLLFEED, 0x55);
+
+ //
+ // Enables main oscillator and wait until it is usable
+ //
+ HAL_WRITE_UINT32(SCB_BASE + CYGARC_HAL_LPC24XX_REG_SCS,
+ CYGARC_HAL_LPC24XX_REG_SCS_OSCEN);
+ do
+ {
+ HAL_READ_UINT32(SCB_BASE + CYGARC_HAL_LPC24XX_REG_SCS, regval);
+ } while (!(regval & CYGARC_HAL_LPC24XX_REG_SCS_OSCSTAT));
+
+ //
+ // select main OSC, 12MHz, as the PLL clock source
+ //
+ HAL_WRITE_UINT32(SCB_BASE + CYGARC_HAL_LPC24XX_REG_CLKSRCSEL,
+ CYGARC_HAL_LPC24XX_REG_CLKSRCSEL_MAIN);
+
+ //
+ // Configure PLL multiplier and pre divider according to
+ // configuration values
+ //
+ regval = ((CYGNUM_HAL_ARM_LPC24XX_PLL_MUL - 1) |
+ (CYGNUM_HAL_ARM_LPC24XX_PLL_DIV - 1) << 16);
+ HAL_WRITE_UINT32(SCB_BASE + CYGARC_HAL_LPC24XX_REG_PLLCFG, regval);
+ HAL_WRITE_UINT32(SCB_BASE + CYGARC_HAL_LPC24XX_REG_PLLFEED, 0xaa);
+ HAL_WRITE_UINT32(SCB_BASE + CYGARC_HAL_LPC24XX_REG_PLLFEED, 0x55);
+
+ //
+ // Enable PLL, disconnected
+ //
+ HAL_WRITE_UINT32(SCB_BASE + CYGARC_HAL_LPC24XX_REG_PLLCON,
+ CYGARC_HAL_LPC24XX_REG_PLLCON_PLLE);
+ HAL_WRITE_UINT32(SCB_BASE + CYGARC_HAL_LPC24XX_REG_PLLFEED, 0xaa);
+ HAL_WRITE_UINT32(SCB_BASE + CYGARC_HAL_LPC24XX_REG_PLLFEED, 0x55);
+
+ //
+ // Set CPU clock divider
+ //
+ HAL_WRITE_UINT32(SCB_BASE + CYGARC_HAL_LPC24XX_REG_CCLKCFG,
+ CYGNUM_HAL_ARM_LPC24XX_CPU_CLK_DIV - 1);
+
+ //
+ // Set USB clock divider
+ //
+ HAL_WRITE_UINT32(SCB_BASE + CYGARC_HAL_LPC24XX_REG_CCLKCFG,
+ CYGNUM_HAL_ARM_LPC24XX_USB_CLK_DIV - 1);
+
+ //
+ // Check lock bit status
+ //
+ do
+ {
+ HAL_READ_UINT32(SCB_BASE + CYGARC_HAL_LPC24XX_REG_PLLSTAT, regval);
+ } while(!(regval & CYGARC_HAL_LPC24XX_REG_PLLSTAT_PLOCK));
+
+ //
+ // Enable PLL and connect
+ //
+ HAL_WRITE_UINT32(SCB_BASE + CYGARC_HAL_LPC24XX_REG_PLLCON,
+ CYGARC_HAL_LPC24XX_REG_PLLCON_PLLE |
+ CYGARC_HAL_LPC24XX_REG_PLLCON_PLLC);
+ HAL_WRITE_UINT32(SCB_BASE + CYGARC_HAL_LPC24XX_REG_PLLFEED, 0xaa);
+ HAL_WRITE_UINT32(SCB_BASE + CYGARC_HAL_LPC24XX_REG_PLLFEED, 0x55);
+
+ //
+ // Check connect bit status
+ //
+ do
+ {
+ HAL_READ_UINT32(SCB_BASE + CYGARC_HAL_LPC24XX_REG_PLLSTAT, regval);
+ } while(!(regval & CYGARC_HAL_LPC24XX_REG_PLLSTAT_PLLC));
+
+ //
+ // entry for JTAG debugger- enable this while loop as a stop for
+ // the JTAG debugger - the JTAG debugger only works after the PLL is
+ // initialized properly
+ //
+ /*while (1)
+ {
+ }*/
+}
+
+
+//===========================================================================
+// hal_mem_init - initialize external memory interface
+//===========================================================================
+void hal_mem_init(void)
+{
+ volatile unsigned int i;
+ volatile unsigned int dummy;
+ volatile cyg_uint32 regval;
+
+ //
+ // Enable external memory interface
+ //
+ HAL_WRITE_UINT32(EMC_BASE + CYGARC_HAL_LPC24XX_REG_EMC_CTRL,
+ CYGARC_HAL_LPC24XX_REG_EMC_CTRL_EN);
+ hal_lpc_set_power(CYNUM_HAL_LPC24XX_PCONP_EMC, 1);
+
+ //
+ // Setup pin functions
+ //
+ HAL_WRITE_UINT32(PIN_BASE + CYGARC_HAL_LPC24XX_REG_PINSEL4, 0x50000000);
+#if defined(CYGHWR_HAL_ARM_LPC24XX_EA2468_DATA_BUS_WIDTH_32)
+ HAL_WRITE_UINT32(PIN_BASE + CYGARC_HAL_LPC24XX_REG_PINSEL5, 0x55010115);
+ HAL_WRITE_UINT32(PIN_BASE + CYGARC_HAL_LPC24XX_REG_PINSEL7, 0x55555555);
+#else
+ HAL_WRITE_UINT32(PIN_BASE + CYGARC_HAL_LPC24XX_REG_PINSEL5, 0x05050555);
+#endif
+ HAL_WRITE_UINT32(PIN_BASE + CYGARC_HAL_LPC24XX_REG_PINSEL6, 0x55555555);
+ HAL_WRITE_UINT32(PIN_BASE + CYGARC_HAL_LPC24XX_REG_PINSEL8, 0x55555555);
+ HAL_WRITE_UINT32(PIN_BASE + CYGARC_HAL_LPC24XX_REG_PINSEL9, 0x50555555);
+
+#if defined(CYGHWR_HAL_ARM_LPC24XX_EA2468_DATA_BUS_WIDTH_32)
+ HAL_WRITE_UINT32(EMC_BASE + CYGARC_HAL_LPC24XX_REG_EMCD_RP, 1);
+ HAL_WRITE_UINT32(EMC_BASE + CYGARC_HAL_LPC24XX_REG_EMCD_RAS, 3);
+ HAL_WRITE_UINT32(EMC_BASE + CYGARC_HAL_LPC24XX_REG_EMCD_SREX, 5);
+ HAL_WRITE_UINT32(EMC_BASE + CYGARC_HAL_LPC24XX_REG_EMCD_APR, 1);
+ HAL_WRITE_UINT32(EMC_BASE + CYGARC_HAL_LPC24XX_REG_EMCD_DAL, 5);
+ HAL_WRITE_UINT32(EMC_BASE + CYGARC_HAL_LPC24XX_REG_EMCD_WR, 1);
+ HAL_WRITE_UINT32(EMC_BASE + CYGARC_HAL_LPC24XX_REG_EMCD_RC, 5);
+ HAL_WRITE_UINT32(EMC_BASE + CYGARC_HAL_LPC24XX_REG_EMCD_RFC, 5);
+ HAL_WRITE_UINT32(EMC_BASE + CYGARC_HAL_LPC24XX_REG_EMCD_XSR, 5);
+ HAL_WRITE_UINT32(EMC_BASE + CYGARC_HAL_LPC24XX_REG_EMCD_RRD, 1);
+ HAL_WRITE_UINT32(EMC_BASE + CYGARC_HAL_LPC24XX_REG_EMCD_MRD, 1);
+ HAL_WRITE_UINT32(EMC_BASE + CYGARC_HAL_LPC24XX_REG_EMCD_RDCFG, 1);
+ HAL_WRITE_UINT32(EMC_BASE + CYGARC_HAL_LPC24XX_REG_EMCD_RASCAS0,
+ 0x00000202);
+ HAL_WRITE_UINT32(EMC_BASE + CYGARC_HAL_LPC24XX_REG_EMCD_CONFIG0,
+ 0x00005480);
+#else
+ HAL_WRITE_UINT32(EMC_BASE + CYGARC_HAL_LPC24XX_REG_EMCD_RP, 2);
+ HAL_WRITE_UINT32(EMC_BASE + CYGARC_HAL_LPC24XX_REG_EMCD_RAS, 3);
+ HAL_WRITE_UINT32(EMC_BASE + CYGARC_HAL_LPC24XX_REG_EMCD_SREX, 7);
+ HAL_WRITE_UINT32(EMC_BASE + CYGARC_HAL_LPC24XX_REG_EMCD_APR, 2);
+ HAL_WRITE_UINT32(EMC_BASE + CYGARC_HAL_LPC24XX_REG_EMCD_DAL, 5);
+ HAL_WRITE_UINT32(EMC_BASE + CYGARC_HAL_LPC24XX_REG_EMCD_WR, 1);
+ HAL_WRITE_UINT32(EMC_BASE + CYGARC_HAL_LPC24XX_REG_EMCD_RC, 5);
+ HAL_WRITE_UINT32(EMC_BASE + CYGARC_HAL_LPC24XX_REG_EMCD_RFC, 5);
+ HAL_WRITE_UINT32(EMC_BASE + CYGARC_HAL_LPC24XX_REG_EMCD_XSR, 7);
+ HAL_WRITE_UINT32(EMC_BASE + CYGARC_HAL_LPC24XX_REG_EMCD_RRD, 1);
+ HAL_WRITE_UINT32(EMC_BASE + CYGARC_HAL_LPC24XX_REG_EMCD_MRD, 2);
+ HAL_WRITE_UINT32(EMC_BASE + CYGARC_HAL_LPC24XX_REG_EMCD_RDCFG, 1);
+ HAL_WRITE_UINT32(EMC_BASE + CYGARC_HAL_LPC24XX_REG_EMCD_RASCAS0,
+ 0x00000303);
+ HAL_WRITE_UINT32(EMC_BASE + CYGARC_HAL_LPC24XX_REG_EMCD_CONFIG0,
+ 0x00000680);
+#endif
+
+ //
+ // Wait 100 ms and then send command: NOP
+ //
+ HAL_DELAY_US(100000);
+ HAL_WRITE_UINT32(EMC_BASE + CYGARC_HAL_LPC24XX_REG_EMCD_CONTROL,
+ 0x00000183);
+
+ //
+ // wait 200 ms and then send command: PRECHARGE-ALL, shortest
+ // possible refresh period
+ //
+ HAL_DELAY_US(200000);
+ HAL_WRITE_UINT32(EMC_BASE + CYGARC_HAL_LPC24XX_REG_EMCD_CONTROL,
+ 0x00000103);
+ HAL_WRITE_UINT32(EMC_BASE + CYGARC_HAL_LPC24XX_REG_EMCD_REFRESH,
+ 0x00000002);
+
+ //
+ // wait 128 ABH clock cycles
+ //
+ for(i = 0; i < 64; i++)
+ {
+ asm volatile(" nop");
+ }
+
+ //
+ // Set correct refresh period and the send command MODE
+ //
+ HAL_WRITE_UINT32(EMC_BASE + CYGARC_HAL_LPC24XX_REG_EMCD_REFRESH, 28);
+ HAL_WRITE_UINT32(EMC_BASE + CYGARC_HAL_LPC24XX_REG_EMCD_CONTROL,
+ 0x00000083);
+
+ //
+ // Set mode register in SDRAM
+ //
+#if defined(CYGHWR_HAL_ARM_LPC24XX_EA2468_DATA_BUS_WIDTH_32)
+ dummy = *((volatile unsigned int*)(SDRAM_BASE | (0x22 << 11)));
+#else
+ dummy = *((volatile unsigned int*)(SDRAM_BASE | (0x33 << 12)));
+#endif
+
+ //
+ //Send command: NORMAL, enable buffer and wait for 1 second
+ //
+ HAL_WRITE_UINT32(EMC_BASE + CYGARC_HAL_LPC24XX_REG_EMCD_CONTROL,
+ 0x00000000);
+ HAL_READ_UINT32(EMC_BASE + CYGARC_HAL_LPC24XX_REG_EMCD_CONFIG0, regval);
+ HAL_WRITE_UINT32(EMC_BASE + CYGARC_HAL_LPC24XX_REG_EMCD_CONFIG0,
+ regval | 0x00080000);
+ HAL_DELAY_US(1000);
+
+ HAL_WRITE_UINT32(EMC_BASE + CYGARC_HAL_LPC24XX_REG_EMCS_WAITW_EN0, 0x2);
+ HAL_WRITE_UINT32(EMC_BASE + CYGARC_HAL_LPC24XX_REG_EMCS_WAITO_EN0, 0x2);
+ HAL_WRITE_UINT32(EMC_BASE + CYGARC_HAL_LPC24XX_REG_EMCS_WAITRD0, 0x1f);
+ HAL_WRITE_UINT32(EMC_BASE + CYGARC_HAL_LPC24XX_REG_EMCS_WAITPAGE0, 0x1f);
+ HAL_WRITE_UINT32(EMC_BASE + CYGARC_HAL_LPC24XX_REG_EMCS_WAITWR0, 0x1f);
+ HAL_WRITE_UINT32(EMC_BASE + CYGARC_HAL_LPC24XX_REG_EMCS_WAITTURN0, 0xf);
+ HAL_WRITE_UINT32(EMC_BASE + CYGARC_HAL_LPC24XX_REG_EMCS_CONFIG0,
+ 0x00000081);
+
+ HAL_WRITE_UINT32(EMC_BASE + CYGARC_HAL_LPC24XX_REG_EMCS_WAITW_EN1, 0x2);
+ HAL_WRITE_UINT32(EMC_BASE + CYGARC_HAL_LPC24XX_REG_EMCS_WAITO_EN1, 0x2);
+ HAL_WRITE_UINT32(EMC_BASE + CYGARC_HAL_LPC24XX_REG_EMCS_WAITRD1, 0x8);
+ HAL_WRITE_UINT32(EMC_BASE + CYGARC_HAL_LPC24XX_REG_EMCS_WAITPAGE1, 0x1f);
+ HAL_WRITE_UINT32(EMC_BASE + CYGARC_HAL_LPC24XX_REG_EMCS_WAITWR1, 0x8);
+ HAL_WRITE_UINT32(EMC_BASE + CYGARC_HAL_LPC24XX_REG_EMCS_WAITTURN1, 0xf);
+ HAL_WRITE_UINT32(EMC_BASE + CYGARC_HAL_LPC24XX_REG_EMCS_CONFIG1,
+ 0x00000080);
+}
+
+
+//===========================================================================
+// hal_plf_startup
+//===========================================================================
+void hal_plf_startup(void)
+{
+ hal_pll_init();
+
+ //
+ // Set clock speed of all peripherals to reset value (CPU speed / 4)
+ //
+ HAL_WRITE_UINT32(SCB_BASE + CYGARC_HAL_LPC24XX_REG_PCLKSEL0, 0x00000000);
+ HAL_WRITE_UINT32(SCB_BASE + CYGARC_HAL_LPC24XX_REG_PCLKSEL1, 0x00000000);
+
+ //
+ // Setup memory acceleration module
+ //
+ HAL_WRITE_UINT32(SCB_BASE + CYGARC_HAL_LPC24XX_REG_MAMCR, 0);
+ HAL_WRITE_UINT32(SCB_BASE + CYGARC_HAL_LPC24XX_REG_MAMTIM, 4);
+
+ hal_gpio_init();
+ HAL_DELAY_US(20000);
+ hal_mem_init();
+}
+
+
+//===========================================================================
+// hal_lpc2xxx_set_leds
+//===========================================================================
+void hal_lpc24xx_set_leds (int mask)
+{
+ //
+ // implement function for setting diagnostic leds
+ //
+}
+
+
+#ifdef CYGPKG_DEVS_CAN_LPC2XXX
+//===========================================================================
+// Configure CAN pins
+//===========================================================================
+void hal_lpc_can_init(cyg_uint8 can_chan_no)
+{
+ CYG_ASSERT(can_chan_no < 2, "CAN channel number out of bounds");
+
+ switch (can_chan_no)
+ {
+ case 0:
+ hal_set_pin_function(0, 0, 1); // RD1
+ hal_set_pin_function(0, 1, 1); // TD1
+ hal_lpc_set_power(CYNUM_HAL_LPC24XX_PCONP_CAN1, 1);
+ break;
+
+ case 1:
+ hal_set_pin_function(0, 4, 2); // RD2
+ hal_set_pin_function(0, 5, 2); // TD2
+ hal_lpc_set_power(CYNUM_HAL_LPC24XX_PCONP_CAN2, 1);
+ break;
+ }
+}
+#endif // #ifdef CYGPKG_DEVS_CAN_LPC2XXX
+
+//--------------------------------------------------------------------------
+// EOF ea2468_misc.c
diff --git a/ecos/packages/hal/arm/lpc24xx/ea2468/current/src/platform_i2c.c b/ecos/packages/hal/arm/lpc24xx/ea2468/current/src/platform_i2c.c
new file mode 100644
index 0000000..8874a5e
--- /dev/null
+++ b/ecos/packages/hal/arm/lpc24xx/ea2468/current/src/platform_i2c.c
@@ -0,0 +1,243 @@
+//==========================================================================
+//
+// platform_i2c.c
+//
+// Optional I2C support for LPC2468
+//
+//==========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 2008 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//==========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): Uwe Kindler <uwe_kindler@web.de>
+// Contributors:
+// Date: 2008-09-11
+// Purpose:
+// Description:
+//
+//####DESCRIPTIONEND####
+//
+//==========================================================================
+
+
+//=============================================================================
+// INCLUDES
+//=============================================================================
+#include <pkgconf/system.h>
+#include <cyg/infra/cyg_type.h>
+#include <cyg/hal/hal_io.h>
+#include <cyg/infra/cyg_ass.h>
+#include <cyg/hal/hal_endian.h>
+
+
+#ifdef CYGHWR_HAL_ARM_LPC24XX_I2C0_SUPP
+#include <cyg/io/i2c.h>
+#include <cyg/io/i2c_lpc2xxx.h>
+//=============================================================================
+// Setup I2C bus 0
+//=============================================================================
+static void ea2468_i2c0_init(struct cyg_i2c_bus* bus)
+{
+ //
+ // The LPC24xx variant sets up the I2C0 clock and powers up the I2C0
+ // on-chip peripheral. We only need to setup the pins here and
+ // leave the I2C driver to take care of the rest.
+ //
+ hal_set_pin_function(0, 27, 1); // SDA0
+ hal_set_pin_function(0, 28, 1); // SCL0
+ cyg_lpc2xxx_i2c_init(bus);
+}
+
+
+//-----------------------------------------------------------------------------
+// I2C bus 0
+//
+CYG_LPC2XXX_I2C_BUS(hal_ea2468_i2c0_bus,
+ &ea2468_i2c0_init,
+ CYGARC_HAL_LPC24XX_REG_I2C0_BASE,
+ CYGNUM_HAL_INTERRUPT_I2C,
+ CYGNUM_HAL_ARM_LPC24XX_I2C0_INT_PRIO,
+ CYGNUM_HAL_ARM_LPC24XX_I2C0_CLK,
+ CYGNUM_HAL_ARM_LPC24XX_I2C0_BUS_FREQ);
+
+
+//-----------------------------------------------------------------------------
+// 256-Kb I2C CMOS Serial EEPROM
+//
+CYG_I2C_DEVICE(i2c_cat24c256_eeprom,
+ &hal_ea2468_i2c0_bus,
+ 0x50,
+ 0,
+ CYG_I2C_DEFAULT_DELAY);
+
+
+//===========================================================================
+// Check if device is busy - Acknowledge polling can be used to determine
+// if the CAT24C256 is busy writing or is ready to accept commands.
+// Polling is implemented by interrogating the device with a Selective Read
+// command (see READ OPERATIONS). The CAT24C256 will not acknowledge the
+// Slave address, as long as internal Write is in progress.
+//===========================================================================
+static bool cat24c256_is_busy(void)
+{
+ cyg_uint16 addr = 0;
+ cyg_uint32 result;
+
+ cyg_i2c_transaction_begin(&i2c_cat24c256_eeprom);
+ result = cyg_i2c_transaction_tx(&i2c_cat24c256_eeprom,
+ true, (cyg_uint8*)&addr, 2, true);
+ cyg_i2c_transaction_end(&i2c_cat24c256_eeprom);
+
+ return (result != 2);
+}
+
+
+//===========================================================================
+// Write up to 64 bytes of data - one single write cycle
+//===========================================================================
+static cyg_uint32 cat24c256_do_write_cyle(cyg_uint16 addr,
+ cyg_uint8 *pdata,
+ cyg_uint8 size)
+{
+ cyg_uint32 result;
+
+ cyg_i2c_transaction_begin(&i2c_cat24c256_eeprom);
+ addr = CYG_CPU_TO_BE16(addr);
+ result = cyg_i2c_transaction_tx(&i2c_cat24c256_eeprom,
+ true, (cyg_uint8*)&addr, 2, false);
+ if (result)
+ {
+ result = cyg_i2c_transaction_tx(&i2c_cat24c256_eeprom,
+ false, pdata, size, true);
+ }
+ cyg_i2c_transaction_end(&i2c_cat24c256_eeprom);
+
+ return result;
+}
+
+
+//===========================================================================
+// Write data to eeprom (page write)
+// If the call is blocking (blocking == true) then the function will poll
+// the device if it is busy writing. If it is non blocking then the function
+// immediately return 0 if the device is busy
+//===========================================================================
+cyg_uint32 hal_lpc_eeprom_write(cyg_uint16 addr,
+ cyg_uint8 *pdata,
+ cyg_uint16 size,
+ cyg_bool blocking)
+{
+ cyg_uint32 result;
+ cyg_uint16 wsize;
+ cyg_uint16 datasize = size;
+
+ CYG_ASSERT(addr < 0x8000, "Address out of range");
+ CYG_ASSERT(pdata, "Invalid data pointer");
+ CYG_ASSERT((size <= 0x8000) && (size > 0), "Invalid data size");
+ CYG_ASSERT((addr + size) < 0x8000,
+ "Attempt to write data beyond end of memory.");
+
+
+ do
+ {
+ if (cat24c256_is_busy())
+ {
+ if (blocking)
+ {
+ while (cat24c256_is_busy()) {};
+ }
+ else
+ {
+ return 0;
+ }
+ } // if (cat24c256_is_busy())
+ wsize = (datasize > 64) ? 64 : datasize;
+ result = cat24c256_do_write_cyle(addr, pdata, wsize);
+ datasize -= result;
+ addr += wsize;
+ pdata += wsize;
+ } while (datasize && (result == wsize));
+
+ return size - datasize;
+}
+
+
+//===========================================================================
+// Read data from eeprom (selective, sequential read)
+// If the call is blocking (blocking == true) then the function will poll
+// the device if it is busy writing. If it is non blocking then the function
+// immediately return 0 if the device is busy
+//===========================================================================
+cyg_uint32 hal_lpc_eeprom_read(cyg_uint16 addr,
+ cyg_uint8 *pdata,
+ cyg_uint16 size,
+ cyg_bool blocking)
+{
+ cyg_uint32 result;
+
+ CYG_ASSERT(addr < 0x8000, "Address out of range");
+ CYG_ASSERT(pdata, "Invalid data pointer");
+ CYG_ASSERT((size <= 64) && (size > 0), "Invalid data size");
+ CYG_ASSERT((addr + size) < 0x8000,
+ "Attempt to read data beyond end of memory.");
+
+ if (cat24c256_is_busy())
+ {
+ if (blocking)
+ {
+ while (cat24c256_is_busy());
+ }
+ else
+ {
+ return 0;
+ }
+ }
+
+ cyg_i2c_transaction_begin(&i2c_cat24c256_eeprom);
+ addr = CYG_CPU_TO_BE16(addr);
+ result = cyg_i2c_transaction_tx(&i2c_cat24c256_eeprom,
+ true, (cyg_uint8*)&addr, 2, false);
+ if (result)
+ {
+ result = cyg_i2c_transaction_rx(&i2c_cat24c256_eeprom,
+ true, pdata, size, true, true);
+ }
+ cyg_i2c_transaction_end(&i2c_cat24c256_eeprom);
+
+ return result;
+}
+#endif // #ifdef CYGHWR_HAL_ARM_LPC24XX_I2C0_SUPP
+
+//-----------------------------------------------------------------------------
+// EOF platform_i2c.c
+
diff --git a/ecos/packages/hal/arm/lpc24xx/ea2468/current/tests/fiq.c b/ecos/packages/hal/arm/lpc24xx/ea2468/current/tests/fiq.c
new file mode 100644
index 0000000..f94da9f
--- /dev/null
+++ b/ecos/packages/hal/arm/lpc24xx/ea2468/current/tests/fiq.c
@@ -0,0 +1,182 @@
+//==========================================================================
+//
+// fiq.c
+//
+// FIQ interrupt test
+//
+//==========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002, 2012 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//==========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): nickg
+// Date: 2012-04-20
+// Purpose:
+// Description: FIQ test
+//
+//####DESCRIPTIONEND####
+//
+//==========================================================================
+
+#include <pkgconf/system.h>
+#include <pkgconf/hal.h>
+
+#include <cyg/infra/cyg_type.h>
+#include <cyg/infra/diag.h>
+
+#include <cyg/hal/hal_arch.h>
+#include <cyg/hal/hal_intr.h>
+
+#include <cyg/infra/testcase.h>
+
+#include <cyg/kernel/kapi.h>
+
+//==========================================================================
+
+volatile int fiq_count = 0;
+
+void __attribute__ ((interrupt ("FIQ"))) fiq_vsr( void )
+{
+ fiq_count++;
+
+ // Clear interrupt
+ HAL_INTERRUPT_ACKNOWLEDGE( CYGNUM_HAL_INTERRUPT_EINT0 );
+}
+
+//==========================================================================
+
+void fiq_test(CYG_ADDRWORD p)
+{
+ volatile int fiq_count0 = 0;
+ volatile int fiq_count1 = 0;
+ volatile cyg_uint32 val1 = 0;
+ cyg_uint32 pinsel = CYGARC_HAL_LPC24XX_REG_PIN_BASE;
+ cyg_uint32 pinsel4;
+ cyg_uint32 vic = CYGARC_HAL_LPC24XX_REG_VIC_BASE;
+ cyg_uint32 intsel;
+ cyg_uint32 gpio = CYGARC_HAL_LPC24XX_REG_FIO_BASE;
+
+ // Configure P2.10 as EINT0
+ HAL_READ_UINT32( pinsel+CYGARC_HAL_LPC24XX_REG_PINSEL4, pinsel4 );
+ pinsel4 &= ~(3<<20);
+ pinsel4 |= (1<<20);
+ HAL_WRITE_UINT32( pinsel+CYGARC_HAL_LPC24XX_REG_PINSEL4, pinsel4 );
+
+ // Configure EINT0 line for falling edge detection
+ HAL_INTERRUPT_CONFIGURE( CYGNUM_HAL_INTERRUPT_EINT0, false, false );
+
+#if 1
+ // Route EINT0 to FIQ input
+ HAL_READ_UINT32( vic+CYGARC_HAL_LPC24XX_REG_VICINTSELECT, intsel );
+ intsel |= (1<<CYGNUM_HAL_INTERRUPT_EINT0);
+ HAL_WRITE_UINT32( vic+CYGARC_HAL_LPC24XX_REG_VICINTSELECT, intsel );
+#endif
+
+ // Install and unmask FIQ VSR
+ HAL_VSR_SET( CYGNUM_HAL_VECTOR_FIQ, fiq_vsr, NULL );
+ HAL_INTERRUPT_UNMASK( CYGNUM_HAL_INTERRUPT_EINT0 );
+
+ CYG_TEST_INFO("FIQ test starting");
+
+ // Enable FIQs
+ HAL_ENABLE_FIQ();
+
+ while(fiq_count1 < 20)
+ {
+ cyg_uint32 val;
+ cyg_uint8 pin;
+
+ HAL_READ_UINT8( gpio+CYGARC_HAL_LPC24XX_REG_FIO2PIN+1, pin );
+ val = 1&(pin>>2);
+
+ if( val != val1 )
+ {
+ cyg_uint32 qf;
+ HAL_QUERY_FIQ( qf );
+ //diag_printf("P2.10 %d fiq_count %d qf %08x\n", val, fiq_count, qf );
+ val1 = val;
+ }
+
+
+ if( fiq_count0 != fiq_count )
+ {
+ int dbcount = 10000;
+ int i = dbcount;
+
+ // Crude debouncing: loop here while fiq_count is
+ // changing, only continue when it has been stable for
+ // dbcount loops.
+ while( i-- )
+ {
+ if( fiq_count0 != fiq_count )
+ {
+ fiq_count0 = fiq_count;
+ i = dbcount;
+ }
+ }
+
+ fiq_count1++;
+ diag_printf("FIQ count %3d debounced %2d\n", fiq_count, fiq_count1 );
+ }
+ }
+
+ CYG_TEST_PASS_FINISH("fiq");
+}
+
+//==========================================================================
+
+#define STACK_SIZE CYGNUM_HAL_STACK_SIZE_TYPICAL
+static char stack[STACK_SIZE];
+static cyg_thread thread_data;
+static cyg_handle_t thread_handle;
+
+void
+cyg_start(void)
+{
+ CYG_TEST_INIT();
+
+ cyg_thread_create(10, // Priority - just a number
+ fiq_test, // entry
+ 0, // entry parameter
+ "FIQ test", // Name
+ &stack[0], // Stack
+ STACK_SIZE, // Size
+ &thread_handle, // Handle
+ &thread_data // Thread data structure
+ );
+ cyg_thread_resume(thread_handle); /* Start it */
+ cyg_scheduler_start();
+}
+
+//==========================================================================
+// EOF
diff --git a/ecos/packages/hal/arm/lpc24xx/ea2468/current/tests/i2c_eeprom.c b/ecos/packages/hal/arm/lpc24xx/ea2468/current/tests/i2c_eeprom.c
new file mode 100644
index 0000000..b3c01ca
--- /dev/null
+++ b/ecos/packages/hal/arm/lpc24xx/ea2468/current/tests/i2c_eeprom.c
@@ -0,0 +1,181 @@
+//==========================================================================
+//
+// ea2468_i2c_test.c
+//
+// Simple I2C test of I2C eeprom on LPC2468 OEM board
+//
+//==========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//==========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): Uwe Kindler
+// Contributors:
+// Date: 2008-09-16
+// Description: Simple I2C read/write test of I2C eeprom
+//####DESCRIPTIONEND####
+
+
+//===========================================================================
+// INCLUDES
+//===========================================================================
+#include <pkgconf/system.h>
+
+#include <cyg/infra/testcase.h> // test macros
+#include <cyg/infra/cyg_ass.h> // assertion macros
+#include <cyg/infra/diag.h>
+#include <cyg/hal/hal_diag.h>
+#include <cyg/hal/hal_io.h>
+
+// Package requirements
+#if defined(CYGHWR_HAL_ARM_LPC24XX_I2C0_SUPP) && defined(CYGPKG_KERNEL)
+
+#include <pkgconf/kernel.h>
+#include <cyg/io/io.h>
+#include <cyg/io/i2c.h>
+
+// Package option requirements
+#if defined(CYGFUN_KERNEL_API_C)
+
+#include <cyg/hal/hal_arch.h> // CYGNUM_HAL_STACK_SIZE_TYPICAL
+#include <cyg/kernel/kapi.h>
+
+
+//===========================================================================
+// DATA TYPES
+//===========================================================================
+typedef struct st_thread_data
+{
+ cyg_thread obj;
+ long stack[CYGNUM_HAL_STACK_SIZE_TYPICAL];
+ cyg_handle_t hdl;
+} thread_data_t;
+
+
+//===========================================================================
+// LOCAL DATA
+//===========================================================================
+#define EEPROM_SIZE 0x8000
+cyg_thread_entry_t i2c0_thread;
+thread_data_t i2c0_thread_data;
+static cyg_uint8 write_buf[EEPROM_SIZE];
+static cyg_uint8 read_buf[EEPROM_SIZE];
+
+//===========================================================================
+// I2C THREAD
+//===========================================================================
+void i2c0_thread(cyg_addrword_t data)
+{
+ cyg_uint16 i;
+ cyg_uint32 result;
+
+ diag_printf("I2C EEPROM read/write test at %d bit/s\n",
+ CYGNUM_HAL_ARM_LPC24XX_I2C0_BUS_FREQ);
+ diag_printf("Initialising write buffer\n");
+ for (i = 0; i < EEPROM_SIZE; ++i)
+ {
+ write_buf[i] = (i & 0xFF);
+ }
+
+ diag_printf("Writing 32768 bytes to I2C EEPROM...\n");
+ result = hal_lpc_eeprom_write(0, write_buf, EEPROM_SIZE, true);
+ if (result != (EEPROM_SIZE))
+ {
+ CYG_TEST_FAIL_FINISH("Error writing to EEPROM");
+ }
+
+ diag_printf("Reading 32768 bytes from I2C EEPROM...\n");
+ result = hal_lpc_eeprom_read(0, read_buf, EEPROM_SIZE, true);
+ if (result != EEPROM_SIZE)
+ {
+ CYG_TEST_FAIL_FINISH("Error reading from EEPROM");
+ }
+
+ for (i = 0; i < EEPROM_SIZE; ++i)
+ {
+ if (write_buf[i] != read_buf[i])
+ {
+ diag_printf("Buffers don't match - write_buf[%d]=0x%02X, "
+ "read_buf[%d]=0x%02X\n",
+ i, write_buf[i], i, read_buf[i]);
+ CYG_TEST_FAIL_FINISH("Buffers don't match");
+ }
+ }
+
+ CYG_TEST_PASS_FINISH("I2C EEPROM read/write test OK");
+}
+
+
+void
+cyg_start(void)
+{
+ CYG_TEST_INIT();
+
+ //
+ // create the threads that access the CAN device driver
+ //
+ cyg_thread_create(4, i2c0_thread,
+ (cyg_addrword_t) 0,
+ "i2c0_thread",
+ (void *) i2c0_thread_data.stack,
+ 1024 * sizeof(long),
+ &i2c0_thread_data.hdl,
+ &i2c0_thread_data.obj);
+
+ cyg_thread_resume(i2c0_thread_data.hdl);
+
+ cyg_scheduler_start();
+}
+
+#else // CYGFUN_KERNEL_API_C
+#define N_A_MSG "Needs kernel C API"
+#endif
+
+#else // CYGPKG_IO_CAN && CYGPKG_KERNEL
+#define N_A_MSG "Needs LPC2xxx I2C support and Kernel"
+#endif
+
+#ifdef N_A_MSG
+void
+cyg_start( void )
+{
+ CYG_TEST_INIT();
+ CYG_TEST_NA( N_A_MSG);
+}
+#endif // N_A_MSG
+
+// EOF can_tx.c
+
+//---------------------------------------------------------------------------
+// eof i2c_test.c
+
diff --git a/ecos/packages/hal/arm/lpc24xx/var/current/ChangeLog b/ecos/packages/hal/arm/lpc24xx/var/current/ChangeLog
new file mode 100755
index 0000000..de26a69
--- /dev/null
+++ b/ecos/packages/hal/arm/lpc24xx/var/current/ChangeLog
@@ -0,0 +1,88 @@
+2009-07-09 John Dallaway <john@dallaway.org.uk>
+
+ * include/var_io.h: Fix CYGARC_HAL_LPC24XX_REG_FIO3DIR definition
+ (reported by Bessemer).
+
+2008-11-01 Uwe Kindler <uwe_kindler@web.de>
+
+ * cdl/hal_arm_lpc24xx.cdl: Added configuration options for ADC
+ clock and RTC clock
+ * include/lpc24xx_misc.h Added macros CYG_HAL_ARM_LPC24XX_PCLK() and
+ CYG_HAL_ARM_LPC24XX_SET_POWER() for configuring on-chip peripherals
+ Added CYG_HAL_ARM_LPC24XX_PIN_CFG() for configuration of pin function
+ * src/lpc24xx_misc.c: Changed function hal_delay_us() to use the same
+ timer (timer 0) like the eCos realtime clock. This safes one timer
+ peripheral for application use.
+ Fixed wrong clock divider table in hal_lpc_set_pclk(). Added ADC and
+ RTC clock divider configuration and power on.
+
+2008-09-18 Uwe Kindler <uwe_kindler@web.de>
+
+ * cdl/hal_arm_lpc24xx.cdl: Added I2C configuration options for
+ interrupt priority, peripheral clock divider and I2C bus
+ frequency
+ * include/lpc24xx_misc.h: Added function hal_lpc_set_power() and
+ peripheral identifiers for enabling peripheral modules in a
+ common way
+ * include/var_io.h: Removed CYGARC_HAL_LPC24XX_SET_PIN_FUN()
+ * src/lpc24xx_misc.c: Bugfix in hal_lpc_get_pclk(), Added function
+ hal_lpc_set_power(), Added hal_set_pin_function(), Added
+ peripheral clock divider configuration for I2C modules in
+ hal_hardware_init()
+
+2008-09-11 Uwe Kindler <uwe_kindler@web.de>
+
+ * include/var_io.h: Added CYGARC_HAL_LPC2XXX_REG_EMAC_BASE to support
+ LPC2xxx ethernet driver
+
+2008-07-21 Uwe Kindler <uwe_kindler@web.de>
+
+ * src/lpc2xxx_misc.c: Added hal_lpc_can_init() to initialize CAN
+ channels
+ * cdl/hal_arm_lpc24xx.cdl: Added a number of CYGHWR_HAL_ARM_LPC2XXX_xxx
+ options for device driver compatibility reasons. Some LPC2xxx device
+ drivers rely on these definitions. Moved some configuration options
+ to make configuration more intuitive in configuration tool. Added
+ CYGNUM_HAL_ARM_LPC2XXX_CAN_CLK option for configuration of CAN
+ peripheral clock.
+ * include/var_io.h: Added macro CYGARC_HAL_LPC24XX_SET_PIN_FUN()
+ * src/lpc2xxx_misc.c: Added function hal_lpc_set_pclk() to set
+ peripheral clocks easily. Initialize peripheral clocks in
+ hal_hardware_init() according to configuration.
+
+2008-07-06 Uwe Kindler <uwe_kindler@web.de>
+
+ * Initial release of LPC24xx variant support (based on LPX2xxx variant)
+ * src/hal_diag.c:
+ * src/lpc2xxx_misc.c:
+ * include/plf_stub.h:
+ * include/var_io.h:
+ * include/var_arch.h:
+ * include/hal_var_ints.h:
+ * include/hal_diag.h:
+ * include/hal_cache.h:
+ * cdl/hal_arm_lpc24xx.cdl: New port - based on LPX2xxx variant.
+
+//===========================================================================
+// ####GPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002, 2004, 2008, 2009 Free Software Foundation, Inc.
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 2 or (at your option) any
+// later version.
+//
+// This program is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the
+// Free Software Foundation, Inc., 51 Franklin Street,
+// Fifth Floor, Boston, MA 02110-1301, USA.
+// -------------------------------------------
+// ####GPLCOPYRIGHTEND####
+//===========================================================================
diff --git a/ecos/packages/hal/arm/lpc24xx/var/current/cdl/hal_arm_lpc24xx.cdl b/ecos/packages/hal/arm/lpc24xx/var/current/cdl/hal_arm_lpc24xx.cdl
new file mode 100755
index 0000000..4e343c3
--- /dev/null
+++ b/ecos/packages/hal/arm/lpc24xx/var/current/cdl/hal_arm_lpc24xx.cdl
@@ -0,0 +1,429 @@
+# ====================================================================
+#
+# hal_arm_lpc24xx.cdl
+#
+# NXP LPC24XX HAL package configuration data
+#
+# ====================================================================
+## ####ECOSGPLCOPYRIGHTBEGIN####
+## -------------------------------------------
+## This file is part of eCos, the Embedded Configurable Operating System.
+## Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
+##
+## eCos is free software; you can redistribute it and/or modify it under
+## the terms of the GNU General Public License as published by the Free
+## Software Foundation; either version 2 or (at your option) any later
+## version.
+##
+## eCos is distributed in the hope that it will be useful, but WITHOUT
+## ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+## FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+## for more details.
+##
+## You should have received a copy of the GNU General Public License
+## along with eCos; if not, write to the Free Software Foundation, Inc.,
+## 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+##
+## As a special exception, if other files instantiate templates or use
+## macros or inline functions from this file, or you compile this file
+## and link it with other works to produce a work based on this file,
+## this file does not by itself cause the resulting work to be covered by
+## the GNU General Public License. However the source code for this file
+## must still be made available in accordance with section (3) of the GNU
+## General Public License v2.
+##
+## This exception does not invalidate any other reasons why a work based
+## on this file might be covered by the GNU General Public License.
+## -------------------------------------------
+## ####ECOSGPLCOPYRIGHTEND####
+# ====================================================================
+######DESCRIPTIONBEGIN####
+#
+# Author(s): Uwe Kindler
+# Contributors: gthomas, tkoeller, tdrury, nickg
+# Date: 2008-07-05
+#
+#####DESCRIPTIONEND####
+#
+# ====================================================================
+
+cdl_package CYGPKG_HAL_ARM_LPC24XX {
+ display "NXP LPC24XX variant HAL"
+ parent CYGPKG_HAL_ARM
+ define_header hal_arm_lpc24xx.h
+ include_dir cyg/hal
+ hardware
+ description "
+ The LPC24XX HAL package provides the support needed to run
+ eCos on NXP LPC24XX based targets."
+
+ compile hal_diag.c lpc24xx_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_COMM_BAUD_SUPPORT
+ implements CYGINT_HAL_ARM_ARCH_ARM7
+ implements CYGINT_HAL_ARM_THUMB_ARCH
+
+ # Let the architectural HAL see this variant's files
+ define_proc {
+ puts $::cdl_header "#define CYGBLD_HAL_VAR_INTS_H <cyg/hal/hal_var_ints.h>"
+ puts $::cdl_system_header "#define CYGBLD_HAL_ARM_VAR_IO_H"
+ puts $::cdl_system_header "#define CYGBLD_HAL_ARM_VAR_ARCH_H"
+ }
+
+ cdl_component CYGHWR_HAL_ARM_LPC24XX {
+ display "LPC24XX variant used"
+ flavor data
+ default_value { "LPC246x" }
+ legal_values { "LPC246x" "LPC2458" "LPC2460" "LPC2468" "LPC2470"
+ "LPC2478"}
+ description "
+ The LPC24XX microcontroller family has several variants,
+ the main differences being the amount of on-chip RAM,
+ flash and peripherals. This option allows the platform
+ HALs to select the specific microcontroller being used."
+
+ cdl_option CYGHWR_HAL_ARM_LPC24XX_FAMILY {
+ display "LPC24XX variant family"
+ flavor data
+ calculated {
+ is_substr(CYGHWR_HAL_ARM_LPC24XX, "LPC246") ?
+ "LPC246X" : "LPC24XX"
+ }
+ description "
+ This specifies the family that the processor
+ belongs to. This is useful as it defines certain common
+ characteristics which affect which features should be
+ available in the HAL."
+ }
+ }
+
+ # This is going to get really messy before long as the number of parts
+ # explodes. Its useful to know the actual part in use, but its just as
+ # useful to know which family it belongs to. LPC210x shouldn't really
+ # be in the list of devices, but will probably break something if removed.
+ cdl_component CYGHWR_HAL_ARM_LPC2XXX {
+ display "LPC2XXX variant used"
+ flavor data
+ calculated CYGHWR_HAL_ARM_LPC24XX
+ description "
+ This option is only here for compatibility reasons because some of
+ the LPC2XXX device drivers rely on these definitions. If this
+ is defined here, the LPC24XX variant can use the LPC2XXX device
+ drivers for on-chip peripherals."
+
+ cdl_option CYGHWR_HAL_ARM_LPC2XXX_FAMILY {
+ display "LPC2XXX variant family"
+ flavor data
+ calculated CYGHWR_HAL_ARM_LPC24XX_FAMILY
+ description "
+ This option is only here for compatibility reasons
+ because some of the LPC2XXX device drivers rely on
+ these definitions. If this is defined here, the
+ LPC24XX variant can use the LPC2XXX device drivers
+ for on-chip peripherals."
+ }
+
+ cdl_option CYGHWR_HAL_ARM_LPC2XXX_VARIANT_VERSION {
+ display "LPC2XXX variant version"
+ flavor data
+ calculated {
+ is_substr(CYGHWR_HAL_ARM_LPC2XXX, "LPC21") ? 1 :
+ is_substr(CYGHWR_HAL_ARM_LPC2XXX, "LPC22") ? 2 :
+ is_substr(CYGHWR_HAL_ARM_LPC2XXX, "LPC24") ? 4 : 0
+ }
+ description "
+ This specifies the variant version that the processor
+ belongs to. Some common characteristics may be
+ different in newer LPC2xxx versions. I.e. the LPC24xx variants
+ are significant different from former LPC2xxx variants."
+ }
+ }
+
+ # Important! Be very careful changing this value. That will always
+ # enter the LPC24XX bootloader after reset and consequently will
+ # never run your code. You must know what you are doing. Look at
+ # arch. vectors.S for details.
+ cdl_option CYGNUM_HAL_ARM_VECTOR_0x14 {
+ display "ARM vector at 0x14"
+ flavor data
+ default_value 0xB4405F62
+ legal_values 0 to 0xFFFFFFFF
+ description "
+ In order to detect if a valid program is present, every
+ user program must have a program signature. This signature
+ is a word-wide number that is stored in the unused
+ location in the ARM7 vector table at 0x00000014. The
+ program signature is the two's compliment of the checksum
+ of the ARM vector table."
+ }
+
+ cdl_component CYGNUM_HAL_ARM_LPC24XX_CLOCKING {
+ display "Clocking"
+ flavor none
+
+ cdl_option CYGNUM_HAL_ARM_LPC24XX_PLL_MUL {
+ display "PLL multiplier"
+ flavor data
+ legal_values 6 to 32767
+ default_value { 12 }
+ }
+
+ cdl_option CYGNUM_HAL_ARM_LPC24XX_PLL_DIV {
+ display "PLL divider"
+ flavor data
+ legal_values 1 to 32
+ default_value { 1 }
+ }
+
+ cdl_option CYGNUM_HAL_ARM_LPC24XX_PLL_OUTPUT {
+ display "PLL output (MHz)"
+ flavor data
+ legal_values 275000000 to 290000000
+ calculated { 2 * CYGNUM_HAL_ARM_LPC24XX_PLL_MUL *
+ CYGNUM_HAL_ARM_LPC24XX_XTAL_FREQ /
+ CYGNUM_HAL_ARM_LPC24XX_PLL_DIV}
+ description "
+ Normally the PLL output must be in the range of 275 MHz to
+ 550 MHz Because of a chip errata the maximum output of the CCO
+ within the PLL block is limited to 290 MHz."
+ }
+
+ cdl_component CYGNUM_HAL_ARM_LPC24XX_CLOCK_SPEED {
+ display "CPU clock speed"
+ flavor data
+ calculated { 2 * CYGNUM_HAL_ARM_LPC24XX_PLL_MUL *
+ CYGNUM_HAL_ARM_LPC24XX_XTAL_FREQ /
+ CYGNUM_HAL_ARM_LPC24XX_PLL_DIV /
+ CYGNUM_HAL_ARM_LPC24XX_CPU_CLK_DIV}
+ description "
+ The core CPU clock speed is the PLL output divided by the
+ CPU clock divider"
+
+ cdl_option CYGNUM_HAL_ARM_LPC24XX_CPU_CLK_DIV {
+ display "CPU clock divider"
+ flavor data
+ legal_values 6 to 256
+ default_value { 6 }
+ description "
+ The CPU clock divider controls the division of the PLL
+ output before it is used by the CPU. When the PLL is
+ bypassed, the division may be by 1. When the PLL is
+ running, the output must be divided in order to bring the
+ CPU clock frequency (CCLK) within operating limits. An 8
+ bit divider allows a range of options, including slowing
+ CPU operation to a low rate for temporary power savings
+ without turning off the PLL. Only even values
+ (2, 4, 6, ..., 256) are supported and can be used.
+ Warning: Using an odd value (1, 3, 5, ..., 255) when
+ setting this option may result in incorrect operation of
+ the device."
+ }
+ }
+
+
+ cdl_component CYGNUM_HAL_ARM_LPC24XX_USB_CLOCK_SPEED {
+ display "USB clock speed"
+ flavor data
+ calculated { 2 * CYGNUM_HAL_ARM_LPC24XX_PLL_MUL *
+ CYGNUM_HAL_ARM_LPC24XX_XTAL_FREQ /
+ CYGNUM_HAL_ARM_LPC24XX_PLL_DIV /
+ CYGNUM_HAL_ARM_LPC24XX_USB_CLK_DIV}
+ description "
+ The USB clock speed is the PLL output divided by the
+ USB clock divider"
+
+ cdl_option CYGNUM_HAL_ARM_LPC24XX_USB_CLK_DIV {
+ display "USB clock divider"
+ flavor data
+ legal_values 1 to 8
+ default_value { 6 }
+ description "
+ This divider controls the division of the PLL
+ output before it is used by the USB block. If the
+ PLL is bypassed, the division may be by 1. In that
+ case, the PLL input frequency must be 48 MHz, with
+ a 500 ppm tolerance. When the PLL is running, the
+ output must be divided in order to bring the USB
+ clock frequency to 48 MHz with a 50% duty cycle. A
+ 4-bit divider allows obtaining the correct USB
+ clock from any even multiple of 48 MHz (i.e. any
+ mutliple of 96 MHz) within the PLL operating
+ range."
+ }
+ }
+
+ cdl_component CYGNUM_HAL_ARM_LPC2XXX_CAN_CLK {
+ display "CAN clock speed"
+ flavor data
+ calculated { CYGNUM_HAL_ARM_LPC24XX_CLOCK_SPEED /
+ CYGNUM_HAL_ARM_LPC24XX_CAN_CLK_DIV}
+ description "
+ The CAN clock speed is the CPU clock output divided by the
+ CAN clock divider"
+
+ cdl_option CYGNUM_HAL_ARM_LPC24XX_CAN_CLK_DIV {
+ display "CAN clock divider"
+ flavor data
+ legal_values { 1 2 4 6 }
+ default_value { 1 }
+ description "
+ This divider selects the peripheral clock for both CAN
+ channels. The divider divides the CPU clock to get the
+ clock for the CAN peripherals."
+ }
+ }
+
+ cdl_component CYGNUM_HAL_ARM_LPC24XX_RTC_CLK {
+ display "RTC clock speed"
+ flavor data
+ calculated { CYGNUM_HAL_ARM_LPC24XX_CLOCK_SPEED /
+ CYGNUM_HAL_ARM_LPC24XX_RTC_CLK_DIV}
+ description "
+ The RTC clock speed is the CPU clock output divided by the
+ RTC clock divider"
+
+ cdl_option CYGNUM_HAL_ARM_LPC24XX_RTC_CLK_DIV {
+ display "RTC clock divider"
+ flavor data
+ legal_values { 2 4 8 }
+ default_value { 2 }
+ description "
+ This divider selects the peripheral clock for on-chip
+ RTC if no external 32.768 kHz crystal clock for the
+ on-chip real-time clock peripheral unit is provided."
+ }
+ }
+
+ cdl_component CYGNUM_HAL_ARM_LPC24XX_ADC_CLK {
+ display "ADC clock speed"
+ flavor data
+ calculated { CYGNUM_HAL_ARM_LPC24XX_CLOCK_SPEED /
+ CYGNUM_HAL_ARM_LPC24XX_ADC_CLK_DIV}
+ description "
+ The ADC clock speed is the CPU clock output divided by the
+ ADC clock divider"
+
+ cdl_option CYGNUM_HAL_ARM_LPC24XX_ADC_CLK_DIV {
+ display "ADC clock divider"
+ flavor data
+ legal_values { 1 2 4 8 }
+ default_value { 1 }
+ description "
+ This divider selects the peripheral clock for on-chip
+ ADC. The ADC clock is the input clock of the ADC
+ peripheral."
+ }
+ }
+
+ for { set ::channel 0 } { $::channel < 3 } { incr ::channel } {
+ cdl_component CYGNUM_HAL_ARM_LPC24XX_I2C[set ::channel]_CLK {
+ display "I2C channel [set ::channel] clock speed"
+ flavor data
+ calculated CYGNUM_HAL_ARM_LPC24XX_CLOCK_SPEED / \
+ CYGNUM_HAL_ARM_LPC24XX_I2C[set ::channel]_CLK_DIV
+ description "
+ The I2C clock speed is the CPU clock output divided by the
+ I2C clock divider"
+
+ cdl_option CYGNUM_HAL_ARM_LPC24XX_I2C[set ::channel]_CLK_DIV {
+ display "I2C channel [set ::channel] clock divider"
+ flavor data
+ legal_values { 1 2 4 8 }
+ default_value { 1 }
+ description "
+ This divider selects the peripheral clock for I2C
+ channel [set ::channel]. The divider divides the CPU
+ clock to get the clock for the I2C peripheral."
+ }
+ }
+ }
+ }
+
+ for { set ::channel 0 } { $::channel < 3 } { incr ::channel } {
+ cdl_component CYGHWR_HAL_ARM_LPC24XX_I2C[set ::channel]_SUPP {
+ display "I2C channel [set ::channel] configuration"
+ parent CYGPKG_DEVS_I2C_ARM_LPC2XXX
+ active_if CYGPKG_DEVS_I2C_ARM_LPC2XXX
+ flavor bool
+ default_value [set ::channel] == 0
+ description "
+ I2C channel [set ::channel] configuration data."
+
+ cdl_option CYGNUM_HAL_ARM_LPC24XX_I2C[set ::channel]_INT_PRIO {
+ display "I2C channel [set ::channel] interrupt priority"
+ flavor data
+ legal_values 0 to 15
+ default_value 15
+ description "
+ There are 16 priority levels, corresponding to the
+ values 0 through 15 decimal, of which 15 is the
+ lowest priority. The reset value of these
+ interrupt priority registers defaults all
+ interrupts to the lowest priority 15, allowing a
+ single write to elevate the priority of an
+ individual interrupt."
+ }
+
+ cdl_option CYGNUM_HAL_ARM_LPC24XX_I2C[set ::channel]_BUS_FREQ {
+ display "I2C channel [set ::channel] bus frequency (Hz)"
+ flavor data
+ legal_values {100000 400000}
+ default_value 100000
+ description "
+ This option selects the data rate for the I2C bus."
+ }
+ }
+ }
+
+ 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
+ default_value 1000000000
+ }
+ cdl_option CYGNUM_HAL_RTC_DENOMINATOR {
+ display "Real-time clock denominator"
+ flavor data
+ default_value 100
+ }
+ cdl_option CYGNUM_HAL_RTC_PERIOD {
+ display "Real-time clock period"
+ flavor data
+ default_value { ((CYGNUM_HAL_ARM_LPC24XX_CLOCK_SPEED) /
+ CYGNUM_HAL_RTC_DENOMINATOR) }
+ }
+ }
+
+ cdl_option CYGHWR_HAL_ARM_LPC24XX_IDLE_PWRSAVE {
+ display "Stop clock in idle loop to save power"
+ flavor bool
+ default_value { is_active(CYGPKG_REDBOOT) ? 0 : 1 }
+ description "
+ Select this option when it is desired to save power by
+ stopping the processor clock in the idle loop. This is
+ controlled by the PCON register. Generally this is a good
+ thing, but it may be necessary to disable this when
+ debugging via JTAG, as stopping the clock can prevent the
+ debugger getting control of the system."
+ }
+
+ cdl_option CYGNUM_HAL_KERNEL_COUNTERS_CLOCK_ISR_DEFAULT_PRIORITY {
+ display "Default priority for system clock interrupts"
+ flavor data
+ legal_values { 0 to 15 }
+ default_value 15
+ description "
+ There are 16 priority levels, corresponding to the values 0 through
+ 15 decimal, of which 15 is the lowest priority. The reset value of
+ these interrupt priority registers defaults all interrupts to the
+ lowest priority, allowing a single write to elevate the priority
+ of an individual interrupt."
+ }
+
+}
diff --git a/ecos/packages/hal/arm/lpc24xx/var/current/include/hal_cache.h b/ecos/packages/hal/arm/lpc24xx/var/current/include/hal_cache.h
new file mode 100755
index 0000000..30e8ff3
--- /dev/null
+++ b/ecos/packages/hal/arm/lpc24xx/var/current/include/hal_cache.h
@@ -0,0 +1,109 @@
+#ifndef CYGONCE_HAL_CACHE_H
+#define CYGONCE_HAL_CACHE_H
+
+//=============================================================================
+//
+// hal_cache.h
+//
+// HAL cache control API
+//
+//=============================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002, 2004 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jani
+// Contributors:
+// Date: 2004-09-08
+// 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 <cyg/infra/cyg_type.h>
+
+//-----------------------------------------------------------------------------
+// Global control of data cache
+
+// Enable the data cache
+#define HAL_DCACHE_ENABLE()
+
+// Disable the data cache
+#define HAL_DCACHE_DISABLE()
+
+// Invalidate the entire cache
+#define HAL_DCACHE_INVALIDATE_ALL()
+
+// Synchronize the contents of the cache with memory.
+#define HAL_DCACHE_SYNC()
+
+// Purge contents of data cache
+#define HAL_DCACHE_PURGE_ALL()
+
+// Query the state of the data cache (does not affect the caching)
+#define HAL_DCACHE_IS_ENABLED(_state_) \
+ CYG_MACRO_START \
+ (_state_) = 0; \
+ CYG_MACRO_END
+
+//-----------------------------------------------------------------------------
+// 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 (does not affect the caching)
+#define HAL_ICACHE_IS_ENABLED(_state_) \
+ CYG_MACRO_START \
+ (_state_) = 0; \
+ CYG_MACRO_END
+
+//-----------------------------------------------------------------------------
+#endif // ifndef CYGONCE_HAL_CACHE_H
+// End of hal_cache.h
diff --git a/ecos/packages/hal/arm/lpc24xx/var/current/include/hal_diag.h b/ecos/packages/hal/arm/lpc24xx/var/current/include/hal_diag.h
new file mode 100755
index 0000000..3834ed5
--- /dev/null
+++ b/ecos/packages/hal/arm/lpc24xx/var/current/include/hal_diag.h
@@ -0,0 +1,78 @@
+#ifndef CYGONCE_HAL_DIAG_H
+#define CYGONCE_HAL_DIAG_H
+//=============================================================================
+//
+// hal_diag.h
+//
+// HAL Support for Kernel Diagnostic Routines
+//
+//=============================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002, 2004 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jskov
+// Contributors:jskov, gthomas, tkoeller
+// Date: 2001-07-12
+// 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>
+
+#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_)
+
+//-----------------------------------------------------------------------------
+// LED
+externC void hal_diag_led(int mask);
+externC void hal_lpc24xx_set_leds(int mask);
+
+//-----------------------------------------------------------------------------
+// delay
+
+externC void hal_delay_us(cyg_int32 usecs);
+#define HAL_DELAY_US(n) hal_delay_us(n);
+
+//-----------------------------------------------------------------------------
+// end of hal_diag.h
+#endif // CYGONCE_HAL_DIAG_H
diff --git a/ecos/packages/hal/arm/lpc24xx/var/current/include/hal_var_ints.h b/ecos/packages/hal/arm/lpc24xx/var/current/include/hal_var_ints.h
new file mode 100755
index 0000000..db15498
--- /dev/null
+++ b/ecos/packages/hal/arm/lpc24xx/var/current/include/hal_var_ints.h
@@ -0,0 +1,117 @@
+#ifndef CYGONCE_HAL_VAR_INTS_H
+#define CYGONCE_HAL_VAR_INTS_H
+//==========================================================================
+//
+// hal_var_ints.h
+//
+// HAL Interrupt and clock support
+//
+//==========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002, 2004 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//==========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): Uwe Kindler
+// Contributors:
+// Date: 2008-07-05
+// Purpose: Define Interrupt support
+// Description: The interrupt details for the LPC24XX are defined here.
+// Usage:
+// #include <pkgconf/system.h>
+// #include CYGBLD_HAL_VARIANT_H
+// #include CYGBLD_HAL_VAR_INTS_H
+//
+// ...
+//
+//
+//####DESCRIPTIONEND####
+//
+//==========================================================================
+
+
+#define CYGNUM_HAL_INTERRUPT_WD 0
+#define CYGNUM_HAL_INTERRUPT_SOFT 1
+#define CYGNUM_HAL_INTERRUPT_DCC_RX 2
+#define CYGNUM_HAL_INTERRUPT_DCC_TX 3
+#define CYGNUM_HAL_INTERRUPT_TIMER0 4
+#define CYGNUM_HAL_INTERRUPT_TIMER1 5
+#define CYGNUM_HAL_INTERRUPT_UART0 6
+#define CYGNUM_HAL_INTERRUPT_UART1 7
+#define CYGNUM_HAL_INTERRUPT_PWM0 8
+#define CYGNUM_HAL_INTERRUPT_I2C 9
+#define CYGNUM_HAL_INTERRUPT_SPI0 10
+#define CYGNUM_HAL_INTERRUPT_SPI1 11
+#define CYGNUM_HAL_INTERRUPT_PLL 12
+#define CYGNUM_HAL_INTERRUPT_RTCDEV 13 // actual RTC device not the
+ // eCos 'real time clock'
+ // interrupt. The latter is on
+ // TIMER0.
+#define CYGNUM_HAL_INTERRUPT_EINT0 14
+#define CYGNUM_HAL_INTERRUPT_EINT1 15
+#define CYGNUM_HAL_INTERRUPT_EINT2 16
+#define CYGNUM_HAL_INTERRUPT_EINT3 17
+#define CYGNUM_HAL_INTERRUPT_AD 18
+#define CYGNUM_HAL_INTERRUPT_I2C1 19
+#define CYGNUM_HAL_INTERRUPT_BOD 20
+#define CYGNUM_HAL_INTERRUPT_ETH 21
+#define CYGNUM_HAL_INTERRUPT_USB 22
+#define CYGNUM_HAL_INTERRUPT_CAN 23
+#define CYGNUM_HAL_INTERRUPT_SD_MMC 24
+#define CYGNUM_HAL_INTERRUPT_DMA 25
+#define CYGNUM_HAL_INTERRUPT_TIMER2 26
+#define CYGNUM_HAL_INTERRUPT_TIMER3 27
+#define CYGNUM_HAL_INTERRUPT_UART2 28
+#define CYGNUM_HAL_INTERRUPT_UART3 29
+#define CYGNUM_HAL_INTERRUPT_I2C2 30
+#define CYGNUM_HAL_INTERRUPT_I2S 31
+
+
+#define CYGNUM_HAL_ISR_MIN 0
+#define CYGNUM_HAL_ISR_MAX (31)
+
+#define CYGNUM_HAL_ISR_COUNT (CYGNUM_HAL_ISR_MAX+1)
+
+/* use non-vectored interrupts in kernel tests intr0/kintr0 */
+#define HAL_INTR_TEST_PRIO_A 16
+#define HAL_INTR_TEST_PRIO_B 16
+#define HAL_INTR_TEST_PRIO_C 16
+
+//The vector used by the Real time clock
+#define CYGNUM_HAL_INTERRUPT_RTC CYGNUM_HAL_INTERRUPT_TIMER0
+
+// Other entries here moved to variant specific include file
+// This is included here to avoid breaking anything
+#include <cyg/hal/lpc24xx_misc.h>
+
+//---------------------------------------------------------------------------
+#endif // CYGONCE_HAL_VAR_INTS_H
diff --git a/ecos/packages/hal/arm/lpc24xx/var/current/include/lpc24xx_misc.h b/ecos/packages/hal/arm/lpc24xx/var/current/include/lpc24xx_misc.h
new file mode 100755
index 0000000..3f3f28f
--- /dev/null
+++ b/ecos/packages/hal/arm/lpc24xx/var/current/include/lpc24xx_misc.h
@@ -0,0 +1,171 @@
+#ifndef CYGONCE_HAL_ARM_LPC24XX_VAR_LPC24XX_MISC_H
+#define CYGONCE_HAL_ARM_LPC24XX_VAR_LPC24XX_MISC_H
+//=============================================================================
+//
+// lpc24xx_misc.h
+//
+// HAL misc variant support code for NCP LPC24xx header file
+//
+//=============================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 2006 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): andyj
+// Contributors: jani
+// Date: 2006-02-04
+// Purpose: LPC2XXX specific miscellaneous support header file
+// Description:
+// Usage: #include <cyg/hal/lpc24xx_misc.h>
+//
+//####DESCRIPTIONEND####
+//
+//=============================================================================
+
+//-----------------------------------------------------------------------------
+// Function to obtain the current processor clock settings
+// Use PCLK identifiers below
+//
+externC cyg_uint32 hal_lpc_get_pclk(cyg_uint32 pclk_id);
+#define CYG_HAL_ARM_LPC24XX_PCLK(_pclkid_) hal_lpc_get_pclk(_pclkid_)
+
+//
+// Identifiers for peripheral clock. Use these identifiers with the function
+// hal_get_pclk()
+//
+#define CYNUM_HAL_LPC24XX_PCLK_WDT 0
+#define CYNUM_HAL_LPC24XX_PCLK_TIMER0 1
+#define CYNUM_HAL_LPC24XX_PCLK_TIMER1 2
+#define CYNUM_HAL_LPC24XX_PCLK_UART0 3
+#define CYNUM_HAL_LPC24XX_PCLK_UART1 4
+#define CYNUM_HAL_LPC24XX_PCLK_PWM0 5
+#define CYNUM_HAL_LPC24XX_PCLK_PWM1 6
+#define CYNUM_HAL_LPC24XX_PCLK_I2C0 7
+#define CYNUM_HAL_LPC24XX_PCLK_SPI 8
+#define CYNUM_HAL_LPC24XX_PCLK_RTC 9
+#define CYNUM_HAL_LPC24XX_PCLK_SSP1 10
+#define CYNUM_HAL_LPC24XX_PCLK_DAC 11
+#define CYNUM_HAL_LPC24XX_PCLK_ADC 12
+#define CYNUM_HAL_LPC24XX_PCLK_CAN1 13
+#define CYNUM_HAL_LPC24XX_PCLK_CAN2 14
+#define CYNUM_HAL_LPC24XX_PCLK_ACF 15
+#define CYNUM_HAL_LPC24XX_PCLK_BATRAM 16
+#define CYNUM_HAL_LPC24XX_PCLK_GPIO 17
+#define CYNUM_HAL_LPC24XX_PCLK_PCB 18
+#define CYNUM_HAL_LPC24XX_PCLK_I2C1 19
+#define CYNUM_HAL_LPC24XX_PCLK_SSP0 21
+#define CYNUM_HAL_LPC24XX_PCLK_TIMER2 22
+#define CYNUM_HAL_LPC24XX_PCLK_TIMER3 23
+#define CYNUM_HAL_LPC24XX_PCLK_UART2 24
+#define CYNUM_HAL_LPC24XX_PCLK_UART3 25
+#define CYNUM_HAL_LPC24XX_PCLK_I2C2 26
+#define CYNUM_HAL_LPC24XX_PCLK_I2S 27
+#define CYNUM_HAL_LPC24XX_PCLK_MCI 28
+#define CYNUM_HAL_LPC24XX_PCLK_SYSCON 30
+
+
+//-----------------------------------------------------------------------------
+// Function to enable/disable power for certain peripheral
+// Use PCONP identifiers from below
+//
+externC void hal_lpc_set_power(cyg_uint8 pconp_id, int on);
+#define CYG_HAL_ARM_LPC24XX_SET_POWER(_pconp_id_, _on_) \
+ hal_lpc_set_power((_pconp_id_), (_on_))
+
+
+//
+// Identifiers for power control
+// hal_get_pclk()
+//
+#define CYNUM_HAL_LPC24XX_PCONP_TIMER0 1
+#define CYNUM_HAL_LPC24XX_PCONP_TIMER1 2
+#define CYNUM_HAL_LPC24XX_PCONP_UART0 3
+#define CYNUM_HAL_LPC24XX_PCONP_UART1 4
+#define CYNUM_HAL_LPC24XX_PCONP_PWM0 5
+#define CYNUM_HAL_LPC24XX_PCONP_PWM1 6
+#define CYNUM_HAL_LPC24XX_PCONP_I2C0 7
+#define CYNUM_HAL_LPC24XX_PCONP_SPI 8
+#define CYNUM_HAL_LPC24XX_PCONP_RTC 9
+#define CYNUM_HAL_LPC24XX_PCONP_SSP1 10
+#define CYNUM_HAL_LPC24XX_PCONP_EMC 11
+#define CYNUM_HAL_LPC24XX_PCONP_ADC 12
+#define CYNUM_HAL_LPC24XX_PCONP_CAN1 13
+#define CYNUM_HAL_LPC24XX_PCONP_CAN2 14
+#define CYNUM_HAL_LPC24XX_PCONP_I2C1 19
+#define CYNUM_HAL_LPC24XX_PCONP_LCD 20
+#define CYNUM_HAL_LPC24XX_PCONP_SSP0 21
+#define CYNUM_HAL_LPC24XX_PCONP_TIMER2 22
+#define CYNUM_HAL_LPC24XX_PCONP_TIMER3 23
+#define CYNUM_HAL_LPC24XX_PCONP_UART2 24
+#define CYNUM_HAL_LPC24XX_PCONP_UART3 25
+#define CYNUM_HAL_LPC24XX_PCONP_I2C2 26
+#define CYNUM_HAL_LPC24XX_PCONP_I2S 27
+#define CYNUM_HAL_LPC24XX_PCONP_SDC 28
+#define CYNUM_HAL_LPC24XX_PCONP_GPDMA 29
+#define CYNUM_HAL_LPC24XX_PCONP_ENET 30
+#define CYNUM_HAL_LPC24XX_PCONP_USB 31
+
+
+//-----------------------------------------------------------------------------
+// Configure pin function
+//
+externC void hal_set_pin_function(cyg_uint8 port, cyg_uint8 pin,
+ cyg_uint8 function);
+#define CYG_HAL_ARM_LPC24XX_PIN_CFG(_port_, _pin_, _func_) \
+ hal_set_pin_function((_port_), (_pin_), (_func_))
+
+
+//-----------------------------------------------------------------------------
+// Macros to derive the baudrate divider values for the internal UARTs
+// The LPC24xx family supports different baudrate clocks for each single
+// UART. So we need a way to calculate the baudrate for each single UART
+// Now we rely on the fact that we use the same baudrate clock for all
+// UARTs and we query only UART0
+//-----------------------------------------------------------------------------
+#define CYG_HAL_ARM_LPC2XXX_BAUD_GENERATOR(baud) \
+ (CYG_HAL_ARM_LPC24XX_PCLK(CYNUM_HAL_LPC24XX_PCLK_UART0)/((baud)*16))
+#define CYG_HAL_ARM_LPC24XX_BAUD_GENERATOR(_pclkid_, baud) \
+ (CYG_HAL_ARM_LPC24XX_PCLK(_pclkid_)/((baud)*16))
+
+
+//-----------------------------------------------------------------------------
+// LPX24xx platform reset (watchdog resets the board)
+//-----------------------------------------------------------------------------
+externC void hal_lpc_watchdog_reset(void);
+
+#define HAL_PLATFORM_RESET() hal_lpc_watchdog_reset()
+#define HAL_PLATFORM_RESET_ENTRY 0
+
+//-----------------------------------------------------------------------------
+// end of lpc24xx_misc.h
+#endif // CYGONCE_HAL_ARM_LPC24XX_VAR_LPC24XX_MISC_H
diff --git a/ecos/packages/hal/arm/lpc24xx/var/current/include/plf_stub.h b/ecos/packages/hal/arm/lpc24xx/var/current/include/plf_stub.h
new file mode 100755
index 0000000..d85c046
--- /dev/null
+++ b/ecos/packages/hal/arm/lpc24xx/var/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.
+//
+//=============================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002, 2004 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jani
+// Contributors:jskov, gthomas
+// Date: 2004-10-5
+// Purpose: Platform HAL stub support for LPC2XXX based boards.
+// Usage: #include <cyg/hal/plf_stub.h>
+//
+//####DESCRIPTIONEND####
+//
+//=============================================================================
+
+#include <pkgconf/hal.h>
+#include CYGBLD_HAL_PLATFORM_H
+
+#ifdef CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS
+
+#include <cyg/infra/cyg_type.h> // CYG_UNUSED_PARAM
+
+#include <cyg/hal/arm_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.
+#define HAL_STUB_PLATFORM_INIT() CYG_EMPTY_STATEMENT
+
+#endif // ifdef CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS
+
+//-----------------------------------------------------------------------------
+#endif // CYGONCE_HAL_PLF_STUB_H
+// End of plf_stub.h
diff --git a/ecos/packages/hal/arm/lpc24xx/var/current/include/var_arch.h b/ecos/packages/hal/arm/lpc24xx/var/current/include/var_arch.h
new file mode 100755
index 0000000..ce872f1
--- /dev/null
+++ b/ecos/packages/hal/arm/lpc24xx/var/current/include/var_arch.h
@@ -0,0 +1,80 @@
+#ifndef CYGONCE_HAL_VAR_ARCH_H
+#define CYGONCE_HAL_VAR_ARCH_H
+//=============================================================================
+//
+// var_arch.h
+//
+// LPC24XX variant architecture overrides
+//
+//=============================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 2003, 2004 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): Uwe Kindler
+// Contributors: jlarmour,Daniel Neri
+// Date: 2008-07-06
+// Purpose: LPC24XX variant architecture overrides
+// Description:
+// Usage: #include <cyg/hal/hal_arch.h>
+//
+//####DESCRIPTIONEND####
+//
+//=============================================================================
+
+#include <pkgconf/hal.h>
+#include <cyg/hal/hal_io.h>
+#include <cyg/infra/cyg_type.h>
+
+//--------------------------------------------------------------------------
+// Idle thread code.
+// This macro is called in the idle thread loop, and gives the HAL the
+// chance to insert code. Typical idle thread behaviour might be to halt the
+// processor. These implementations halt the system core clock.
+
+#ifdef CYGHWR_HAL_ARM_LPC24XX_IDLE_PWRSAVE
+#ifndef HAL_IDLE_THREAD_ACTION
+
+#define HAL_IDLE_THREAD_ACTION(_count_) \
+CYG_MACRO_START \
+HAL_WRITE_UINT32(CYGARC_HAL_LPC24XX_REG_SCB_BASE + \
+ CYGARC_HAL_LPC24XX_REG_PCON, \
+ CYGARC_HAL_LPC24XX_REG_PCON_IDL); \
+CYG_MACRO_END
+
+#endif // HAL_IDLE_THREAD_ACTION
+#endif // CYGHWR_HAL_ARM_LPC24XX_IDLE_MODE
+
+//-----------------------------------------------------------------------------
+// end of var_arch.h
+#endif // CYGONCE_HAL_VAR_ARCH_H
diff --git a/ecos/packages/hal/arm/lpc24xx/var/current/include/var_io.h b/ecos/packages/hal/arm/lpc24xx/var/current/include/var_io.h
new file mode 100755
index 0000000..87486ef
--- /dev/null
+++ b/ecos/packages/hal/arm/lpc24xx/var/current/include/var_io.h
@@ -0,0 +1,846 @@
+#ifndef CYGONCE_HAL_VAR_IO_H
+#define CYGONCE_HAL_VAR_IO_H
+//=============================================================================
+//
+// var_io.h
+//
+// Variant specific registers
+//
+//=============================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 2004, 2009 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): Uwe Kindler
+// Contributors:
+// Date: 2008-07-05
+// Purpose: NXP LPC24xx variant specific registers
+// Description:
+// Usage: #include <cyg/hal/var_io.h>
+//
+//####DESCRIPTIONEND####
+//
+//=============================================================================
+
+#include <pkgconf/hal_arm_lpc24xx.h> // variant chip model selection.
+#include <cyg/hal/plf_io.h>
+
+//=============================================================================
+// Watchdog (WD)
+#define CYGARC_HAL_LPC24XX_REG_WD_BASE 0xE0000000
+
+// Registers are offsets from base of this subsystem
+#define CYGARC_HAL_LPC24XX_REG_WDMOD 0x0000
+#define CYGARC_HAL_LPC24XX_REG_WDMOD_WDEN (1<<0)
+#define CYGARC_HAL_LPC24XX_REG_WDMOD_WDRESET (1<<1)
+#define CYGARC_HAL_LPC24XX_REG_WDMOD_WDTOF (1<<2)
+#define CYGARC_HAL_LPC24XX_REG_WDMOD_WDINT (1<<3)
+#define CYGARC_HAL_LPC24XX_REG_WDTC 0x0004
+#define CYGARC_HAL_LPC24XX_REG_WDFEED 0x0008
+#define CYGARC_HAL_LPC24XX_REG_WDFEED_MAGIC1 0xAA
+#define CYGARC_HAL_LPC24XX_REG_WDFEED_MAGIC2 0x55
+#define CYGARC_HAL_LPC24XX_REG_WDTV 0x000C
+
+
+//=============================================================================
+// Timers (Tx)
+
+#define CYGARC_HAL_LPC24XX_REG_TIMER0_BASE 0xE0004000
+#define CYGARC_HAL_LPC24XX_REG_TIMER1_BASE 0xE0008000
+#define CYGARC_HAL_LPC24XX_REG_TIMER2_BASE 0xE0070000
+#define CYGARC_HAL_LPC24XX_REG_TIMER3_BASE 0xE0074000
+
+// Registers are offsets from base for each timer
+#define CYGARC_HAL_LPC24XX_REG_TxIR 0x0000
+#define CYGARC_HAL_LPC24XX_REG_TxIR_MR0 (1<<0)
+#define CYGARC_HAL_LPC24XX_REG_TxIR_MR1 (1<<1)
+#define CYGARC_HAL_LPC24XX_REG_TxIR_MR2 (1<<2)
+#define CYGARC_HAL_LPC24XX_REG_TxIR_MR3 (1<<3)
+#define CYGARC_HAL_LPC24XX_REG_TxIR_CR0 (1<<4)
+#define CYGARC_HAL_LPC24XX_REG_TxIR_CR1 (1<<5)
+#define CYGARC_HAL_LPC24XX_REG_TxIR_CR2 (1<<6)
+#define CYGARC_HAL_LPC24XX_REG_TxIR_CR3 (1<<7)
+#define CYGARC_HAL_LPC24XX_REG_TxTCR 0x0004
+#define CYGARC_HAL_LPC24XX_REG_TxTCR_CTR_ENABLE (1<<0)
+#define CYGARC_HAL_LPC24XX_REG_TxTCR_CTR_RESET (1<<1)
+#define CYGARC_HAL_LPC24XX_REG_TxTC 0x0008
+#define CYGARC_HAL_LPC24XX_REG_TxPR 0x000C
+#define CYGARC_HAL_LPC24XX_REG_TxPC 0x0010
+#define CYGARC_HAL_LPC24XX_REG_TxMCR 0x0014
+#define CYGARC_HAL_LPC24XX_REG_TxMCR_MR0_INT (1<<0)
+#define CYGARC_HAL_LPC24XX_REG_TxMCR_MR0_RESET (1<<1)
+#define CYGARC_HAL_LPC24XX_REG_TxMCR_MR0_STOP (1<<2)
+#define CYGARC_HAL_LPC24XX_REG_TxMCR_MR1_INT (1<<3)
+#define CYGARC_HAL_LPC24XX_REG_TxMCR_MR1_RESET (1<<4)
+#define CYGARC_HAL_LPC24XX_REG_TxMCR_MR1_STOP (1<<5)
+#define CYGARC_HAL_LPC24XX_REG_TxMCR_MR2_INT (1<<6)
+#define CYGARC_HAL_LPC24XX_REG_TxMCR_MR2_RESET (1<<7)
+#define CYGARC_HAL_LPC24XX_REG_TxMCR_MR2_STOP (1<<8)
+#define CYGARC_HAL_LPC24XX_REG_TxMCR_MR3_INT (1<<9)
+#define CYGARC_HAL_LPC24XX_REG_TxMCR_MR3_RESET (1<<10)
+#define CYGARC_HAL_LPC24XX_REG_TxMCR_MR3_STOP (1<<11)
+#define CYGARC_HAL_LPC24XX_REG_TxMR0 0x0018
+#define CYGARC_HAL_LPC24XX_REG_TxMR1 0x001C
+#define CYGARC_HAL_LPC24XX_REG_TxMR2 0x0020
+#define CYGARC_HAL_LPC24XX_REG_TxMR3 0x0024
+#define CYGARC_HAL_LPC24XX_REG_TxCCR 0x0028
+#define CYGARC_HAL_LPC24XX_REG_TxCCR_INT_CR0_RISE (1<<0)
+#define CYGARC_HAL_LPC24XX_REG_TxCCR_INT_CR0_FALL (1<<1)
+#define CYGARC_HAL_LPC24XX_REG_TxCCR_INT_CR0 (1<<2)
+#define CYGARC_HAL_LPC24XX_REG_TxCCR_INT_CR1_RISE (1<<3)
+#define CYGARC_HAL_LPC24XX_REG_TxCCR_INT_CR1_FALL (1<<4)
+#define CYGARC_HAL_LPC24XX_REG_TxCCR_INT_CR1 (1<<5)
+#define CYGARC_HAL_LPC24XX_REG_TxCCR_INT_CR2_RISE (1<<6)
+#define CYGARC_HAL_LPC24XX_REG_TxCCR_INT_CR2_FALL (1<<7)
+#define CYGARC_HAL_LPC24XX_REG_TxCCR_INT_CR2 (1<<8)
+#define CYGARC_HAL_LPC24XX_REG_TxCCR_INT_CR3_RISE (1<<9)
+#define CYGARC_HAL_LPC24XX_REG_TxCCR_INT_CR3_FALL (1<<10)
+#define CYGARC_HAL_LPC24XX_REG_TxCCR_INT_CR3 (1<<11)
+#define CYGARC_HAL_LPC24XX_REG_TxCR0 0x002C
+#define CYGARC_HAL_LPC24XX_REG_TxCR1 0x0030
+#define CYGARC_HAL_LPC24XX_REG_TxCR2 0x0034
+#define CYGARC_HAL_LPC24XX_REG_TxCR3 0x0038
+#define CYGARC_HAL_LPC24XX_REG_TxEMR 0x003C
+#define CYGARC_HAL_LPC24XX_REG_TxEMR_EM0 (1<<0)
+#define CYGARC_HAL_LPC24XX_REG_TxEMR_EM1 (1<<1)
+#define CYGARC_HAL_LPC24XX_REG_TxEMR_EM2 (1<<2)
+#define CYGARC_HAL_LPC24XX_REG_TxEMR_EM3 (1<<3)
+
+//=============================================================================
+// UARTs (Ux)
+
+#define CYGARC_HAL_LPC24XX_REG_UART0_BASE 0xE000C000
+#define CYGARC_HAL_LPC24XX_REG_UART1_BASE 0xE0010000
+#define CYGARC_HAL_LPC24XX_REG_UART2_BASE 0xE0078000
+#define CYGARC_HAL_LPC24XX_REG_UART3_BASE 0xE007C000
+
+// Registers are offsets from base for each UART
+#define CYGARC_HAL_LPC24XX_REG_UxRBR 0x0000 // DLAB=0 read
+#define CYGARC_HAL_LPC24XX_REG_UxTHR 0x0000 // DLAB=0 write
+#define CYGARC_HAL_LPC24XX_REG_UxDLL 0x0000 // DLAB=1 r/w
+#define CYGARC_HAL_LPC24XX_REG_UxIER 0x0004 // DLAB=0
+#define CYGARC_HAL_LPC24XX_REG_UxIER_RXDATA_INT (1<<0)
+#define CYGARC_HAL_LPC24XX_REG_UxIER_THRE_INT (1<<1)
+#define CYGARC_HAL_LPC24XX_REG_UxIER_RXLS_INT (1<<2)
+#define CYGARC_HAL_LPC24XX_REG_U1IER_RXMS_INT (1<<3) // U1 only
+#define CYGARC_HAL_LPC24XX_REG_UxDLM 0x0004 // DLAB=1
+
+#define CYGARC_HAL_LPC24XX_REG_UxIIR 0x0008 // read
+#define CYGARC_HAL_LPC24XX_REG_UxIIR_IIR0 (1<<0)
+#define CYGARC_HAL_LPC24XX_REG_UxIIR_IIR1 (1<<1)
+#define CYGARC_HAL_LPC24XX_REG_UxIIR_IIR2 (1<<2)
+#define CYGARC_HAL_LPC24XX_REG_UxIIR_IIR3 (1<<3)
+#define CYGARC_HAL_LPC24XX_REG_UxIIR_FIFOS (0xB0)
+
+#define CYGARC_HAL_LPC24XX_REG_UxFCR 0x0008 // write
+#define CYGARC_HAL_LPC24XX_REG_UxFCR_FIFO_ENA (1<<0)
+#define CYGARC_HAL_LPC24XX_REG_UxFCR_RX_FIFO_RESET (1<<1)
+#define CYGARC_HAL_LPC24XX_REG_UxFCR_TX_FIFO_RESET (1<<2)
+#define CYGARC_HAL_LPC24XX_REG_UxFCR_RX_TRIGGER_0 (0x00)
+#define CYGARC_HAL_LPC24XX_REG_UxFCR_RX_TRIGGER_1 (0x40)
+#define CYGARC_HAL_LPC24XX_REG_UxFCR_RX_TRIGGER_2 (0x80)
+#define CYGARC_HAL_LPC24XX_REG_UxFCR_RX_TRIGGER_3 (0xB0)
+
+#define CYGARC_HAL_LPC24XX_REG_UxLCR 0x000C
+#define CYGARC_HAL_LPC24XX_REG_UxLCR_WORD_LENGTH_5 (0x00)
+#define CYGARC_HAL_LPC24XX_REG_UxLCR_WORD_LENGTH_6 (0x01)
+#define CYGARC_HAL_LPC24XX_REG_UxLCR_WORD_LENGTH_7 (0x02)
+#define CYGARC_HAL_LPC24XX_REG_UxLCR_WORD_LENGTH_8 (0x03)
+#define CYGARC_HAL_LPC24XX_REG_UxLCR_STOP_1 (0x00)
+#define CYGARC_HAL_LPC24XX_REG_UxLCR_STOP_2 (0x04)
+#define CYGARC_HAL_LPC24XX_REG_UxLCR_PARITY_ENA (0x08)
+#define CYGARC_HAL_LPC24XX_REG_UxLCR_PARITY_ODD (0x00)
+#define CYGARC_HAL_LPC24XX_REG_UxLCR_PARITY_EVEN (0x10)
+#define CYGARC_HAL_LPC24XX_REG_UxLCR_PARITY_ONE (0x20)
+#define CYGARC_HAL_LPC24XX_REG_UxLCR_PARITY_ZERO (0x30)
+#define CYGARC_HAL_LPC24XX_REG_UxLCR_BREAK_ENA (0x40)
+#define CYGARC_HAL_LPC24XX_REG_UxLCR_DLAB (0x80)
+
+
+// Modem Control Register is UART1 only
+#define CYGARC_HAL_LPC24XX_REG_U1MCR 0x0010
+#define CYGARC_HAL_LPC24XX_REG_U1MCR_DTR (1<<0)
+#define CYGARC_HAL_LPC24XX_REG_U1MCR_RTS (1<<1)
+#define CYGARC_HAL_LPC24XX_REG_U1MCR_LOOPBACK (1<<4)
+
+#define CYGARC_HAL_LPC24XX_REG_UxLSR 0x0014
+#define CYGARC_HAL_LPC24XX_REG_UxLSR_RDR (1<<0)
+#define CYGARC_HAL_LPC24XX_REG_UxLSR_OE (1<<1)
+#define CYGARC_HAL_LPC24XX_REG_UxLSR_PE (1<<2)
+#define CYGARC_HAL_LPC24XX_REG_UxLSR_FE (1<<3)
+#define CYGARC_HAL_LPC24XX_REG_UxLSR_BI (1<<4)
+#define CYGARC_HAL_LPC24XX_REG_UxLSR_THRE (1<<5)
+#define CYGARC_HAL_LPC24XX_REG_UxLSR_TEMT (1<<6)
+#define CYGARC_HAL_LPC24XX_REG_UxLSR_RX_FIFO_ERR (1<<7)
+
+// Modem Status Register is UART1 only
+#define CYGARC_HAL_LPC24XX_REG_U1MSR 0x0018
+#define CYGARC_HAL_LPC24XX_REG_U1MSR_DCTS (1<<0)
+#define CYGARC_HAL_LPC24XX_REG_U1MSR_DDSR (1<<1)
+#define CYGARC_HAL_LPC24XX_REG_U1MSR_RI_FALL (1<<2)
+#define CYGARC_HAL_LPC24XX_REG_U1MSR_DDCD (1<<3)
+#define CYGARC_HAL_LPC24XX_REG_U1MSR_CTS (1<<4)
+#define CYGARC_HAL_LPC24XX_REG_U1MSR_DSR (1<<5)
+#define CYGARC_HAL_LPC24XX_REG_U1MSR_RI (1<<6)
+#define CYGARC_HAL_LPC24XX_REG_U1MSR_DCD (1<<7)
+
+#define CYGARC_HAL_LPC24XX_REG_UxSCR 0x001C
+#define CYGARC_HAL_LPC24XX_REG_UxACR 0x0020
+#define CYGARC_HAL_LPC24XX_REG_U3ICR 0x0024
+#define CYGARC_HAL_LPC24XX_REG_UxFDR 0x0028
+#define CYCARC_HAL_LPC24XX_REG_UxTER 0x0030
+
+
+//=============================================================================
+// Pulse Width Modulator (PWM)
+
+#define CYGARC_HAL_LPC24XX_REG_PWM0_BASE 0xE0014000
+#define CYGARC_HAL_LPC24XX_REG_PWM1_BASE 0xE0018000
+
+
+// Registers are offsets from base of this subsystem
+#define CYGARC_HAL_LPC24XX_REG_PWMIR 0x0000
+#define CYGARC_HAL_LPC24XX_REG_PWMIR_MR0_INT (1<<0)
+#define CYGARC_HAL_LPC24XX_REG_PWMIR_MR1_INT (1<<1)
+#define CYGARC_HAL_LPC24XX_REG_PWMIR_MR2_INT (1<<2)
+#define CYGARC_HAL_LPC24XX_REG_PWMIR_MR3_INT (1<<3)
+#define CYGARC_HAL_LPC24XX_REG_PWMIR_MR4_INT (1<<8)
+#define CYGARC_HAL_LPC24XX_REG_PWMIR_MR5_INT (1<<9)
+#define CYGARC_HAL_LPC24XX_REG_PWMIR_MR6_INT (1<<10)
+#define CYGARC_HAL_LPC24XX_REG_PWMTCR 0x0004
+#define CYGARC_HAL_LPC24XX_REG_PWMTCR_CTR_ENA (1<<0)
+#define CYGARC_HAL_LPC24XX_REG_PWMTCR_CTR_RESET (1<<1)
+#define CYGARC_HAL_LPC24XX_REG_PWMTCR_PWM_ENA (1<<3)
+#define CYGARC_HAL_LPC24XX_REG_PWMTC 0x0008
+#define CYGARC_HAL_LPC24XX_REG_PWMPR 0x000C
+#define CYGARC_HAL_LPC24XX_REG_PWMPC 0x0010
+#define CYGARC_HAL_LPC24XX_REG_PWMMCR 0x0014
+#define CYGARC_HAL_LPC24XX_REG_PWMMCR_MR0_INT (1<<0)
+#define CYGARC_HAL_LPC24XX_REG_PWMMCR_MR0_RESET (1<<1)
+#define CYGARC_HAL_LPC24XX_REG_PWMMCR_MR0_STOP (1<<2)
+#define CYGARC_HAL_LPC24XX_REG_PWMMCR_MR1_INT (1<<3)
+#define CYGARC_HAL_LPC24XX_REG_PWMMCR_MR1_RESET (1<<4)
+#define CYGARC_HAL_LPC24XX_REG_PWMMCR_MR1_STOP (1<<5)
+#define CYGARC_HAL_LPC24XX_REG_PWMMCR_MR2_INT (1<<6)
+#define CYGARC_HAL_LPC24XX_REG_PWMMCR_MR2_RESET (1<<7)
+#define CYGARC_HAL_LPC24XX_REG_PWMMCR_MR2_STOP (1<<8)
+#define CYGARC_HAL_LPC24XX_REG_PWMMCR_MR3_INT (1<<9)
+#define CYGARC_HAL_LPC24XX_REG_PWMMCR_MR3_RESET (1<<10)
+#define CYGARC_HAL_LPC24XX_REG_PWMMCR_MR3_STOP (1<<11)
+#define CYGARC_HAL_LPC24XX_REG_PWMMCR_MR4_INT (1<<12)
+#define CYGARC_HAL_LPC24XX_REG_PWMMCR_MR4_RESET (1<<13)
+#define CYGARC_HAL_LPC24XX_REG_PWMMCR_MR4_STOP (1<<14)
+#define CYGARC_HAL_LPC24XX_REG_PWMMCR_MR5_INT (1<<15)
+#define CYGARC_HAL_LPC24XX_REG_PWMMCR_MR5_RESET (1<<16)
+#define CYGARC_HAL_LPC24XX_REG_PWMMCR_MR5_STOP (1<<17)
+#define CYGARC_HAL_LPC24XX_REG_PWMMCR_MR6_INT (1<<18)
+#define CYGARC_HAL_LPC24XX_REG_PWMMCR_MR6_RESET (1<<19)
+#define CYGARC_HAL_LPC24XX_REG_PWMMCR_MR6_STOP (1<<20)
+#define CYGARC_HAL_LPC24XX_REG_PWMMR0 0x0018
+#define CYGARC_HAL_LPC24XX_REG_PWMMR1 0x001C
+#define CYGARC_HAL_LPC24XX_REG_PWMMR2 0x0020
+#define CYGARC_HAL_LPC24XX_REG_PWMMR3 0x0024
+#define CYGARC_HAL_LPC24XX_REG_PWMMR4 0x0040
+#define CYGARC_HAL_LPC24XX_REG_PWMMR5 0x0044
+#define CYGARC_HAL_LPC24XX_REG_PWMMR6 0x0048
+#define CYGARC_HAL_LPC24XX_REG_PWMMPCR 0x004C
+#define CYGARC_HAL_LPC24XX_REG_PWMMPCR_SEL1 (1<<1)
+#define CYGARC_HAL_LPC24XX_REG_PWMMPCR_SEL2 (1<<2)
+#define CYGARC_HAL_LPC24XX_REG_PWMMPCR_SEL3 (1<<3)
+#define CYGARC_HAL_LPC24XX_REG_PWMMPCR_SEL4 (1<<4)
+#define CYGARC_HAL_LPC24XX_REG_PWMMPCR_SEL5 (1<<5)
+#define CYGARC_HAL_LPC24XX_REG_PWMMPCR_SEL6 (1<<6)
+#define CYGARC_HAL_LPC24XX_REG_PWMMPCR_ENA1 (1<<9)
+#define CYGARC_HAL_LPC24XX_REG_PWMMPCR_ENA2 (1<<10)
+#define CYGARC_HAL_LPC24XX_REG_PWMMPCR_ENA3 (1<<11)
+#define CYGARC_HAL_LPC24XX_REG_PWMMPCR_ENA4 (1<<12)
+#define CYGARC_HAL_LPC24XX_REG_PWMMPCR_ENA5 (1<<13)
+#define CYGARC_HAL_LPC24XX_REG_PWMMPCR_ENA6 (1<<14)
+#define CYGARC_HAL_LPC24XX_REG_PWMLER 0x0050
+#define CYGARC_HAL_LPC24XX_REG_PWMLER_M0_ENA (1<<0)
+#define CYGARC_HAL_LPC24XX_REG_PWMLER_M1_ENA (1<<1)
+#define CYGARC_HAL_LPC24XX_REG_PWMLER_M2_ENA (1<<2)
+#define CYGARC_HAL_LPC24XX_REG_PWMLER_M3_ENA (1<<3)
+#define CYGARC_HAL_LPC24XX_REG_PWMLER_M4_ENA (1<<4)
+#define CYGARC_HAL_LPC24XX_REG_PWMLER_M5_ENA (1<<5)
+#define CYGARC_HAL_LPC24XX_REG_PWMLER_M6_ENA (1<<6)
+
+#define CYGARC_HAL_LPC24XX_REG_PWMCTCR 0x0070
+
+//=============================================================================
+// I2C (I2)
+
+#define CYGARC_HAL_LPC24XX_REG_I2C0_BASE 0xE001C000
+#define CYGARC_HAL_LPC24XX_REG_I2C1_BASE 0xE005C000
+#define CYGARC_HAL_LPC24XX_REG_I2C2_BASE 0xE0080000
+
+
+// Registers are offsets from base of this subsystem
+#define CYGARC_HAL_LPC24XX_REG_I2CONSET 0x0000
+#define CYGARC_HAL_LPC24XX_REG_I2CONSET_AA (1<<2)
+#define CYGARC_HAL_LPC24XX_REG_I2CONSET_SI (1<<3)
+#define CYGARC_HAL_LPC24XX_REG_I2CONSET_STO (1<<4)
+#define CYGARC_HAL_LPC24XX_REG_I2CONSET_STA (1<<5)
+#define CYGARC_HAL_LPC24XX_REG_I2CONSET_I2EN (1<<6)
+#define CYGARC_HAL_LPC24XX_REG_I2STAT 0x0004
+#define CYGARC_HAL_LPC24XX_REG_I2STAT_SHIFT 3
+#define CYGARC_HAL_LPC24XX_REG_I2DAT 0x0008
+#define CYGARC_HAL_LPC24XX_REG_I2ADR 0x000C
+#define CYGARC_HAL_LPC24XX_REG_I2ADR_GC (1<<0)
+#define CYGARC_HAL_LPC24XX_REG_I2SCLH 0x0010
+#define CYGARC_HAL_LPC24XX_REG_I2SCLL 0x0014
+#define CYGARC_HAL_LPC24XX_REG_I2CONCLR 0x0018
+#define CYGARC_HAL_LPC24XX_REG_I2CONCLR_AAC (1<<2)
+#define CYGARC_HAL_LPC24XX_REG_I2CONCLR_SIC (1<<3)
+#define CYGARC_HAL_LPC24XX_REG_I2CONCLR_STAC (1<<5)
+#define CYGARC_HAL_LPC24XX_REG_I2CONCLR_I2ENC (1<<6)
+
+//=============================================================================
+// SPI (S)
+
+#define CYGARC_HAL_LPC24XX_REG_SPI0_BASE 0xE0020000
+#define CYGARC_HAL_LPC24XX_REG_SPI1_BASE 0xE0030000
+
+// Registers are offsets from base of this subsystem
+#define CYGARC_HAL_LPC24XX_REG_SPI_SPCR 0x0000
+#define CYGARC_HAL_LPC24XX_REG_SPI_SPCR_CPHA (1<<3)
+#define CYGARC_HAL_LPC24XX_REG_SPI_SPCR_CPOL (1<<4)
+#define CYGARC_HAL_LPC24XX_REG_SPI_SPCR_MSTR (1<<5)
+#define CYGARC_HAL_LPC24XX_REG_SPI_SPCR_LSBF (1<<6)
+#define CYGARC_HAL_LPC24XX_REG_SPI_SPCR_SPIE (1<<7)
+#define CYGARC_HAL_LPC24XX_REG_SPI_SPSR 0x0004
+#define CYGARC_HAL_LPC24XX_REG_SPI_SPSR_ABRT (1<<3)
+#define CYGARC_HAL_LPC24XX_REG_SPI_SPSR_MODF (1<<4)
+#define CYGARC_HAL_LPC24XX_REG_SPI_SPSR_ROVR (1<<5)
+#define CYGARC_HAL_LPC24XX_REG_SPI_SPSR_WCOL (1<<6)
+#define CYGARC_HAL_LPC24XX_REG_SPI_SPSR_SPIF (1<<7)
+#define CYGARC_HAL_LPC24XX_REG_SPI_SPDR 0x0008
+#define CYGARC_HAL_LPC24XX_REG_SPI_SPCCR 0x000C
+#define CYGARC_HAL_LPC24XX_REG_SPI_SPINT 0x001C
+
+
+//=============================================================================
+// RTC
+
+#define CYGARC_HAL_LPC24XX_REG_RTC_BASE 0xE0024000
+#define CYGARC_HAL_LPC2XXX_REG_RTC_BASE 0xE0024000
+
+
+// Registers are offsets from base of this subsystem
+
+#define CYGARC_HAL_LPC24XX_REG_RTC_ILR 0x0000
+#define CYGARC_HAL_LPC24XX_REG_RTC_ILR_CIF (1<<0)
+#define CYGARC_HAL_LPC24XX_REG_RTC_ILR_ALF (1<<1)
+#define CYGARC_HAL_LPC24XX_REG_RTC_CTC 0x0004
+#define CYGARC_HAL_LPC24XX_REG_RTC_CCR 0x0008
+#define CYGARC_HAL_LPC24XX_REG_RTC_CCR_CLKEN (1<<0)
+#define CYGARC_HAL_LPC24XX_REG_RTC_CCR_CTCRST (1<<1)
+#define CYGARC_HAL_LPC24XX_REG_RTC_CIIR 0x000C
+#define CYGARC_HAL_LPC24XX_REG_RTC_AMR 0x0010
+#define CYGARC_HAL_LPC24XX_REG_RTC_CTIME0 0x0014
+#define CYGARC_HAL_LPC24XX_REG_RTC_CTIME1 0x0018
+#define CYGARC_HAL_LPC24XX_REG_RTC_CTIME2 0x001C
+#define CYGARC_HAL_LPC24XX_REG_RTC_SEC 0x0020
+#define CYGARC_HAL_LPC24XX_REG_RTC_MIN 0x0024
+#define CYGARC_HAL_LPC24XX_REG_RTC_HOUR 0x0028
+#define CYGARC_HAL_LPC24XX_REG_RTC_DOM 0x002C
+#define CYGARC_HAL_LPC24XX_REG_RTC_DOW 0x0030
+#define CYGARC_HAL_LPC24XX_REG_RTC_DOY 0x0034
+#define CYGARC_HAL_LPC24XX_REG_RTC_MONTH 0x0038
+#define CYGARC_HAL_LPC24XX_REG_RTC_YEAR 0x003C
+#define CYGARC_HAL_LPC24XX_REG_RTC_ALSEC 0x0060
+#define CYGARC_HAL_LPC24XX_REG_RTC_ALMIN 0x0064
+#define CYGARC_HAL_LPC24XX_REG_RTC_ALHOUR 0x0068
+#define CYGARC_HAL_LPC24XX_REG_RTC_ALDOM 0x006C
+#define CYGARC_HAL_LPC24XX_REG_RTC_ALDOW 0x0070
+#define CYGARC_HAL_LPC24XX_REG_RTC_ALDOY 0x0074
+#define CYGARC_HAL_LPC24XX_REG_RTC_ALMON 0x0078
+#define CYGARC_HAL_LPC24XX_REG_RTC_ALYEAR 0x007C
+#define CYGARC_HAL_LPC24XX_REG_RTC_PREINT 0x0080
+#define CYGARC_HAL_LPC24XX_REG_RTC_PREFRAC 0x0084
+
+//=============================================================================
+// GPIO (IO)
+
+#define CYGARC_HAL_LPC24XX_REG_IO_BASE 0xE0028000
+#define CYGARC_HAL_LPC24XX_REG_FIO_BASE 0x3FFFC000
+
+// Registers are offsets from base of this subsystem
+#define CYGARC_HAL_LPC24XX_REG_IO0PIN 0x000
+#define CYGARC_HAL_LPC24XX_REG_IO0SET 0x004
+#define CYGARC_HAL_LPC24XX_REG_IO0DIR 0x008
+#define CYGARC_HAL_LPC24XX_REG_IO0CLR 0x00C
+
+#define CYGARC_HAL_LPC24XX_REG_IO1PIN 0x010
+#define CYGARC_HAL_LPC24XX_REG_IO1SET 0x014
+#define CYGARC_HAL_LPC24XX_REG_IO1DIR 0x018
+#define CYGARC_HAL_LPC24XX_REG_IO1CLR 0x01C
+
+#define CYGARC_HAL_LPC24XX_REG_FIO0DIR 0x0000
+#define CYGARC_HAL_LPC24XX_REG_FIO1DIR 0x0020
+#define CYGARC_HAL_LPC24XX_REG_FIO2DIR 0x0040
+#define CYGARC_HAL_LPC24XX_REG_FIO3DIR 0x0060
+#define CYGARC_HAL_LPC24XX_REG_FIO4DIR 0x0080
+
+#define CYGARC_HAL_LPC24XX_REG_FIO0SET 0x0018
+#define CYGARC_HAL_LPC24XX_REG_FIO1SET 0x0038
+#define CYGARC_HAL_LPC24XX_REG_FIO2SET 0x0058
+#define CYGARC_HAL_LPC24XX_REG_FIO3SET 0x0078
+#define CYGARC_HAL_LPC24XX_REG_FIO4SET 0x0098
+
+#define CYGARC_HAL_LPC24XX_REG_FIO0CLR 0x001C
+#define CYGARC_HAL_LPC24XX_REG_FIO1CLR 0x003C
+#define CYGARC_HAL_LPC24XX_REG_FIO2CLR 0x005C
+#define CYGARC_HAL_LPC24XX_REG_FIO3CLR 0x007C
+#define CYGARC_HAL_LPC24XX_REG_FIO4CLR 0x009C
+
+#define CYGARC_HAL_LPC24XX_REG_FIO0PIN 0x0014
+#define CYGARC_HAL_LPC24XX_REG_FIO1PIN 0x0034
+#define CYGARC_HAL_LPC24XX_REG_FIO2PIN 0x0054
+#define CYGARC_HAL_LPC24XX_REG_FIO3PIN 0x0074
+#define CYGARC_HAL_LPC24XX_REG_FIO4PIN 0x0094
+
+#define CYGARC_HAL_LPC24XX_REG_FIO0MASK 0x0010
+#define CYGARC_HAL_LPC24XX_REG_FIO1MASK 0x0030
+#define CYGARC_HAL_LPC24XX_REG_FIO2MASK 0x0050
+#define CYGARC_HAL_LPC24XX_REG_FIO3MASK 0x0070
+#define CYGARC_HAL_LPC24XX_REG_FIO4MASK 0x0090
+
+
+
+//=============================================================================
+// Pin Connect Block (PIN)
+
+#define CYGARC_HAL_LPC24XX_REG_PIN_BASE 0xE002C000
+
+#define CYGARC_HAL_LPC24XX_REG_PINSEL0 0x000
+#define CYGARC_HAL_LPC24XX_REG_PINSEL1 0x004
+#define CYGARC_HAL_LPC24XX_REG_PINSEL2 0x008
+#define CYGARC_HAL_LPC24XX_REG_PINSEL3 0x00C
+#define CYGARC_HAL_LPC24XX_REG_PINSEL4 0x010
+#define CYGARC_HAL_LPC24XX_REG_PINSEL5 0x014
+#define CYGARC_HAL_LPC24XX_REG_PINSEL6 0x018
+#define CYGARC_HAL_LPC24XX_REG_PINSEL7 0x01C
+#define CYGARC_HAL_LPC24XX_REG_PINSEL8 0x020
+#define CYGARC_HAL_LPC24XX_REG_PINSEL9 0x024
+#define CYGARC_HAL_LPC24XX_REG_PINSEL10 0x028
+#define CYGARC_HAL_LPC24XX_REG_PINSEL11 0x02C
+
+#define CYGARC_HAL_LPC24XX_REG_PINMODE0 0x040
+#define CYGARC_HAL_LPC24XX_REG_PINMODE1 0x044
+#define CYGARC_HAL_LPC24XX_REG_PINMODE2 0x048
+#define CYGARC_HAL_LPC24XX_REG_PINMODE3 0x04C
+#define CYGARC_HAL_LPC24XX_REG_PINMODE4 0x050
+#define CYGARC_HAL_LPC24XX_REG_PINMODE5 0x054
+#define CYGARC_HAL_LPC24XX_REG_PINMODE6 0x058
+#define CYGARC_HAL_LPC24XX_REG_PINMODE7 0x05C
+#define CYGARC_HAL_LPC24XX_REG_PINMODE8 0x060
+#define CYGARC_HAL_LPC24XX_REG_PINMODE9 0x064
+
+
+//=============================================================================
+// SSP - Synchronous Serial Port
+#define CYGARC_HAL_LPC24XX_REG_SSP0_BASE 0xE0068000
+#define CYGARC_HAL_LPC24XX_REG_SSP1_BASE 0xE0030000
+
+#define CYGARC_HAL_LPC24XX_REG_SSP_CR0 0x0000
+#define CYGARC_HAL_LPC24XX_REG_SSP_CR1 0x0004
+#define CYGARC_HAL_LPC24XX_REG_SSP_DR 0x0008
+#define CYGARC_HAL_LPC24XX_REG_SSP_SR 0x000C
+#define CYGARC_HAL_LPC24XX_REG_SSP_CPSR 0x0010
+#define CYGARC_HAL_LPC24XX_REG_SSP_IMSC 0x0014
+#define CYGARC_HAL_LPC24XX_REG_SSP_RIS 0x0018
+#define CYGARC_HAL_LPC24XX_REG_SSP_MIS 0x001C
+#define CYGARC_HAL_LPC24XX_REG_SSP_ICR 0x0020
+#define CYGARC_HAL_LPC24XX_REG_SSP_DMACR 0x0024
+
+
+//=============================================================================
+// ADC (AD)
+#define CYGARC_HAL_LPC24XX_REG_AD_BASE 0xE0034000
+#define CYGARC_HAL_LPC2XXX_REG_AD_BASE CYGARC_HAL_LPC24XX_REG_AD_BASE
+
+// Registers are offsets from base of this subsystem
+#define CYGARC_HAL_LPC24XX_REG_ADCR 0x0000
+#define CYGARC_HAL_LPC24XX_REG_ADCR_BURST (1<<16)
+#define CYGARC_HAL_LPC24XX_REG_ADCR_PDN (1<<21)
+#define CYGARC_HAL_LPC24XX_REG_ADCR_EDGE (1<<27)
+#define CYGARC_HAL_LPC24XX_REG_ADGDR 0x0004
+#define CYGARC_HAL_LPC24XX_REG_ADSTAT 0x0030
+#define CYGARC_HAL_LPC24XX_REG_ADINTEN 0x000C
+#define CYGARC_HAL_LPC24XX_REG_ADDR0 0x0010
+#define CYGARC_HAL_LPC24XX_REG_ADDR1 0x0018
+#define CYGARC_HAL_LPC24XX_REG_ADDR2 0x0018
+#define CYGARC_HAL_LPC24XX_REG_ADDR3 0x001C
+#define CYGARC_HAL_LPC24XX_REG_ADDR4 0x0020
+#define CYGARC_HAL_LPC24XX_REG_ADDR5 0x0024
+#define CYGARC_HAL_LPC24XX_REG_ADDR6 0x0028
+#define CYGARC_HAL_LPC24XX_REG_ADDR7 0x002C
+
+
+//=============================================================================
+// CAN
+#define CYGARC_HAL_LPC24XX_REG_CAN_ACCFILT_RAM 0xE0038000
+#define CYGARC_HAL_LPC24XX_REG_CAN_ACCFILT_BASE 0xE003C000
+#define CYGARC_HAL_LPC24XX_REG_CAN_ACCFILT_AFMR 0x0000
+#define CYGARC_HAL_LPC24XX_REG_CAN_ACCFILT_SFF_sa 0x0004
+#define CYGARC_HAL_LPC24XX_REG_CAN_ACCFILT_SFF_GRP_sa 0x0008
+#define CYGARC_HAL_LPC24XX_REG_CAN_ACCFILT_EFF_sa 0x000C
+#define CYGARC_HAL_LPC24XX_REG_CAN_ACCFILT_EFF_GRP_sa 0x0010
+#define CYGARC_HAL_LPC24XX_REG_CAN_ACCFILT_END 0x0014
+
+#define CYGARC_HAL_LPC24XX_REG_CAN_COMMON_BASE 0xE0040000
+#define CYGARC_HAL_LPC24XX_REG_CAN_TxSR 0x0000
+#define CYGARC_HAL_LPC24XX_REG_CAN_RxSR 0x0004
+#define CYGARC_HAL_LPC24XX_REG_CAN_MSR 0x0008
+
+#define CYGARC_HAL_LPC24XX_REG_CAN0_BASE 0xE0044000
+#define CYGARC_HAL_LPC24XX_REG_CAN1_BASE 0xE0048000
+#define CYCARC_HAL_LPC24XX_REG_CANx_MOD 0x0000
+#define CYCARC_HAL_LPC24XX_REG_CANx_CMR 0x0000
+#define CYCARC_HAL_LPC24XX_REG_CANx_GSR 0x0000
+#define CYCARC_HAL_LPC24XX_REG_CANx_ICR 0x0000
+#define CYCARC_HAL_LPC24XX_REG_CANx_IER 0x0000
+#define CYCARC_HAL_LPC24XX_REG_CANx_BTR 0x0000
+#define CYCARC_HAL_LPC24XX_REG_CANx_EWL 0x0000
+#define CYCARC_HAL_LPC24XX_REG_CANx_SR 0x0000
+#define CYCARC_HAL_LPC24XX_REG_CANx_RFS 0x0000
+#define CYCARC_HAL_LPC24XX_REG_CANx_RID 0x0000
+#define CYCARC_HAL_LPC24XX_REG_CANx_RDA 0x0000
+#define CYCARC_HAL_LPC24XX_REG_CANx_RDB 0x0000
+#define CYCARC_HAL_LPC24XX_REG_CANx_RFI1 0x0000
+#define CYCARC_HAL_LPC24XX_REG_CANx_TID1 0x0000
+#define CYCARC_HAL_LPC24XX_REG_CANx_TDA1 0x0000
+#define CYCARC_HAL_LPC24XX_REG_CANx_TDB1 0x0000
+#define CYCARC_HAL_LPC24XX_REG_CANx_RFI2 0x0000
+#define CYCARC_HAL_LPC24XX_REG_CANx_TID2 0x0000
+#define CYCARC_HAL_LPC24XX_REG_CANx_TDA2 0x0000
+#define CYCARC_HAL_LPC24XX_REG_CANx_TDB2 0x0000
+#define CYCARC_HAL_LPC24XX_REG_CANx_RFI3 0x0000
+#define CYCARC_HAL_LPC24XX_REG_CANx_TID3 0x0000
+#define CYCARC_HAL_LPC24XX_REG_CANx_TDA3 0x0000
+#define CYCARC_HAL_LPC24XX_REG_CANx_TDB3 0x0000
+
+
+//=============================================================================
+// DAC
+#define CYGARC_HAL_LPC24XX_REG_DAC_BASE 0xE006C000
+
+
+//=============================================================================
+// Battery RAM
+#define CYGARC_HAL_LPC24XX_REG_BATTERY_RAM 0xE0084000
+
+
+//=============================================================================
+// I2S
+#define CYGARC_HAL_LPC24XX_REG_I2S_BASE 0xE0088000
+
+#define CYGARC_HAL_LPC24XX_REG_I2S_DAO 0x0000
+#define CYGARC_HAL_LPC24XX_REG_I2S_DAI 0x0004
+#define CYGARC_HAL_LPC24XX_REG_I2S_TXFIFO 0x0008
+#define CYGARC_HAL_LPC24XX_REG_I2S_RXFIFO 0x000C
+#define CYGARC_HAL_LPC24XX_REG_I2S_STATE 0x0010
+#define CYGARC_HAL_LPC24XX_REG_I2S_DMA1 0x0014
+#define CYGARC_HAL_LPC24XX_REG_I2S_DMA2 0x0018
+#define CYGARC_HAL_LPC24XX_REG_I2S_IRQ 0x001C
+#define CYGARC_HAL_LPC24XX_REG_I2S_TXRATE 0x0020
+#define CYGARC_HAL_LPC24XX_REG_I2S_RXRATE 0x0024
+
+
+
+//=============================================================================
+// SD/MMC Card Interface
+#define CYGARC_HAL_LPC24XX_REG_SD_MMC_BASE 0xE008C000
+
+
+//=============================================================================
+// System Control Block
+
+#define CYGARC_HAL_LPC24XX_REG_SCB_BASE 0xE01FC000
+
+// Registers are offsets from base of this subsystem
+
+// Memory accelerator module
+#define CYGARC_HAL_LPC24XX_REG_MAMCR 0x0000
+#define CYGARC_HAL_LPC24XX_REG_MAMCR_DISABLED 0x00
+#define CYGARC_HAL_LPC24XX_REG_MAMCR_PARTIAL 0x01
+#define CYGARC_HAL_LPC24XX_REG_MAMCR_FULL 0x02
+#define CYGARC_HAL_LPC24XX_REG_MAMTIM 0x0004
+
+// Memory mapping control
+#define CYGARC_HAL_LPC24XX_REG_MEMMAP 0x0040
+
+// PLL
+#define CYGARC_HAL_LPC24XX_REG_PLLCON 0x0080
+#define CYGARC_HAL_LPC24XX_REG_PLLCON_PLLE (1<<0)
+#define CYGARC_HAL_LPC24XX_REG_PLLCON_PLLC (1<<1)
+#define CYGARC_HAL_LPC24XX_REG_PLLCFG 0x0084
+#define CYGARC_HAL_LPC24XX_REG_PLLSTAT 0x0088
+#define CYGARC_HAL_LPC24XX_REG_PLLSTAT_PLLE (1<<24)
+#define CYGARC_HAL_LPC24XX_REG_PLLSTAT_PLLC (1<<25)
+#define CYGARC_HAL_LPC24XX_REG_PLLSTAT_PLOCK (1<<26)
+#define CYGARC_HAL_LPC24XX_REG_PLLFEED 0x008C
+
+// Power Control
+#define CYGARC_HAL_LPC24XX_REG_PCON 0x00C0
+#define CYGARC_HAL_LPC24XX_REG_PCON_IDL (1<<0)
+#define CYGARC_HAL_LPC24XX_REG_PCON_PD (1<<1)
+#define CYGARC_HAL_LPC24XX_REG_PCONP 0x00C4
+#define CYGARC_HAL_LPC24XX_REG_PCONP_TIM0 (1<<1)
+#define CYGARC_HAL_LPC24XX_REG_PCONP_TIM1 (1<<2)
+#define CYGARC_HAL_LPC24XX_REG_PCONP_URT0 (1<<3)
+#define CYGARC_HAL_LPC24XX_REG_PCONP_URT1 (1<<4)
+#define CYGARC_HAL_LPC24XX_REG_PCONP_PWM0 (1<<5)
+#define CYGARC_HAL_LPC24XX_REG_PCONP_PWM1 (1<<6)
+#define CYGARC_HAL_LPC24XX_REG_PCONP_I2C0 (1<<7)
+#define CYGARC_HAL_LPC24XX_REG_PCONP_SPI (1<<8)
+#define CYGARC_HAL_LPC24XX_REG_PCONP_RTC (1<<9)
+#define CYGARC_HAL_LPC24XX_REG_PCONP_SSP1 (1<<10)
+#define CYGARC_HAL_LPC24XX_REG_PCONP_EMC (1<<11)
+#define CYGARC_HAL_LPC24XX_REG_PCONP_AD (1<<12)
+#define CYGARC_HAL_LPC24XX_REG_PCONP_CAN1 (1<<13)
+#define CYGARC_HAL_LPC24XX_REG_PCONP_CAN2 (1<<14)
+#define CYGARC_HAL_LPC24XX_REG_PCONP_I2C1 (1<<19)
+#define CYGARC_HAL_LPC24XX_REG_PCONP_LCD (1<<20)
+#define CYGARC_HAL_LPC24XX_REG_PCONP_SSP0 (1<<21)
+#define CYGARC_HAL_LPC24XX_REG_PCONP_TIM2 (1<<22)
+#define CYGARC_HAL_LPC24XX_REG_PCONP_TIM3 (1<<23)
+#define CYGARC_HAL_LPC24XX_REG_PCONP_URT2 (1<<24)
+#define CYGARC_HAL_LPC24XX_REG_PCONP_URT3 (1<<25)
+#define CYGARC_HAL_LPC24XX_REG_PCONP_I2C2 (1<<26)
+#define CYGARC_HAL_LPC24XX_REG_PCONP_I2S (1<<27)
+#define CYGARC_HAL_LPC24XX_REG_PCONP_SD (1<<28)
+#define CYGARC_HAL_LPC24XX_REG_PCONP_DMA (1<<29)
+#define CYGARC_HAL_LPC24XX_REG_PCONP_ENET (1<<30)
+#define CYGARC_HAL_LPC24XX_REG_PCONP_USB (1<<31)
+
+// External interrupt inputs
+#define CYGARC_HAL_LPC24XX_REG_EXTINT 0x0140
+#define CYGARC_HAL_LPC24XX_REG_EXTMODE 0x0148
+#define CYGARC_HAL_LPC24XX_REG_EXTPOLAR 0x014C
+
+#define CYGARC_HAL_LPC24XX_REG_EXTxxx_INT0 (1<<0)
+#define CYGARC_HAL_LPC24XX_REG_EXTxxx_INT1 (1<<1)
+#define CYGARC_HAL_LPC24XX_REG_EXTxxx_INT2 (1<<2)
+#define CYGARC_HAL_LPC24XX_REG_EXTxxx_INT3 (1<<3)
+
+// Reset source identification register
+#define CYGARC_HAL_LPC24XX_REG_RSID 0x0180
+#define CYGARC_HAL_LPC24XX_REG_RSID_POR (1<<0)
+#define CYGARC_HAL_LPC24XX_REG_RSID_EXTR (1<<1)
+#define CYGARC_HAL_LPC24XX_REG_RSID_WDTR (1<<2)
+#define CYGARC_HAL_LPC24XX_REG_RSID_BODR (1<<3)
+
+// System control and status register
+#define CYGARC_HAL_LPC24XX_REG_SCS 0x01A0
+#define CYGARC_HAL_LPC24XX_REG_SCS_OSCEN 0x20
+#define CYGARC_HAL_LPC24XX_REG_SCS_OSCSTAT 0x40
+
+// Clock source selection register
+#define CYGARC_HAL_LPC24XX_REG_CLKSRCSEL 0x010C
+#define CYGARC_HAL_LPC24XX_REG_CLKSRCSEL_IRC 0x00
+#define CYGARC_HAL_LPC24XX_REG_CLKSRCSEL_MAIN 0x01
+#define CYGARC_HAL_LPC24XX_REG_CLKSRCSEL_RTC 0x10
+
+#define CYGARC_HAL_LPC24XX_REG_CCLKCFG 0x0104
+#define CYGARC_HAL_LPC24XX_REG_USBCLKCFG 0x0108
+#define CYGARC_HAL_LPC24XX_REG_IRCTRIM 0x01A4
+#define CYGARC_HAL_LPC24XX_REG_PCLKSEL0 0x01A8
+#define CYGARC_HAL_LPC24XX_REG_PCLKSEL1 0x01AC
+#define CYGARC_HAL_LPC24XX_REG_INTWAKE 0x0144
+
+
+//=============================================================================
+// External Memory Controller
+#define CYGARC_HAL_LPC24XX_REG_EMC_BASE 0xFFE08000
+
+#define CYGARC_HAL_LPC24XX_REG_EMC_CTRL 0x0000
+#define CYGARC_HAL_LPC24XX_REG_EMC_CTRL_EN (1 << 0)
+#define CYGARC_HAL_LPC24XX_REG_EMC_CTRL_ADDRMIRR (1 << 1)
+#define CYGARC_HAL_LPC24XX_REG_EMC_CTRL_LOWPOW (1 << 2)
+#define CYGARC_HAL_LPC24XX_REG_EMC_STATUS 0x0004
+#define CYGARC_HAL_LPC24XX_REG_EMC_CONFIG 0x0008
+#define CYGARC_HAL_LPC24XX_REG_EMCD_CONTROL 0x0020
+#define CYGARC_HAL_LPC24XX_REG_EMCD_REFRESH 0x0024
+#define CYGARC_HAL_LPC24XX_REG_EMCD_RDCFG 0x0028
+#define CYGARC_HAL_LPC24XX_REG_EMCD_RP 0x0030
+#define CYGARC_HAL_LPC24XX_REG_EMCD_RAS 0x0034
+#define CYGARC_HAL_LPC24XX_REG_EMCD_SREX 0x0038
+#define CYGARC_HAL_LPC24XX_REG_EMCD_APR 0x003C
+#define CYGARC_HAL_LPC24XX_REG_EMCD_DAL 0x0040
+#define CYGARC_HAL_LPC24XX_REG_EMCD_WR 0x0044
+#define CYGARC_HAL_LPC24XX_REG_EMCD_RC 0x0048
+#define CYGARC_HAL_LPC24XX_REG_EMCD_RFC 0x004C
+#define CYGARC_HAL_LPC24XX_REG_EMCD_XSR 0x0050
+#define CYGARC_HAL_LPC24XX_REG_EMCD_RRD 0x0054
+#define CYGARC_HAL_LPC24XX_REG_EMCD_MRD 0x0058
+#define CYGARC_HAL_LPC24XX_REG_EMCS_EXT_WAIT 0x0080
+
+#define CYGARC_HAL_LPC24XX_REG_EMCD_CONFIG0 0x0100
+#define CYGARC_HAL_LPC24XX_REG_EMCD_RASCAS0 0x0104
+#define CYGARC_HAL_LPC24XX_REG_EMCD_CONFIG1 0x0120
+#define CYGARC_HAL_LPC24XX_REG_EMCD_RASCAS1 0x0124
+#define CYGARC_HAL_LPC24XX_REG_EMCD_CONFIG2 0x0140
+#define CYGARC_HAL_LPC24XX_REG_EMCD_RASCAS2 0x0144
+#define CYGARC_HAL_LPC24XX_REG_EMCD_CONFIG3 0x0160
+#define CYGARC_HAL_LPC24XX_REG_EMCD_RASCAS3 0x0164
+
+#define CYGARC_HAL_LPC24XX_REG_EMCS_CONFIG0 0x0200
+#define CYGARC_HAL_LPC24XX_REG_EMCS_WAITW_EN0 0x0204
+#define CYGARC_HAL_LPC24XX_REG_EMCS_WAITO_EN0 0x0208
+#define CYGARC_HAL_LPC24XX_REG_EMCS_WAITRD0 0x020C
+#define CYGARC_HAL_LPC24XX_REG_EMCS_WAITPAGE0 0x0210
+#define CYGARC_HAL_LPC24XX_REG_EMCS_WAITWR0 0x0214
+#define CYGARC_HAL_LPC24XX_REG_EMCS_WAITTURN0 0x0218
+
+#define CYGARC_HAL_LPC24XX_REG_EMCS_CONFIG1 0x0220
+#define CYGARC_HAL_LPC24XX_REG_EMCS_WAITW_EN1 0x0224
+#define CYGARC_HAL_LPC24XX_REG_EMCS_WAITO_EN1 0x0228
+#define CYGARC_HAL_LPC24XX_REG_EMCS_WAITRD1 0x022C
+#define CYGARC_HAL_LPC24XX_REG_EMCS_WAITPAGE1 0x0230
+#define CYGARC_HAL_LPC24XX_REG_EMCS_WAITWR1 0x0234
+#define CYGARC_HAL_LPC24XX_REG_EMCS_WAITTURN1 0x0238
+
+#define CYGARC_HAL_LPC24XX_REG_EMCS_CONFIG2 0x0240
+#define CYGARC_HAL_LPC24XX_REG_EMCS_WAITW_EN2 0x0244
+#define CYGARC_HAL_LPC24XX_REG_EMCS_WAITO_EN2 0x0248
+#define CYGARC_HAL_LPC24XX_REG_EMCS_WAITRD2 0x024C
+#define CYGARC_HAL_LPC24XX_REG_EMCS_WAITPAGE2 0x0250
+#define CYGARC_HAL_LPC24XX_REG_EMCS_WAITWR2 0x0254
+#define CYGARC_HAL_LPC24XX_REG_EMCS_WAITTURN2 0x0258
+
+#define CYGARC_HAL_LPC24XX_REG_EMCS_CONFIG3 0x0260
+#define CYGARC_HAL_LPC24XX_REG_EMCS_WAITW_EN3 0x0264
+#define CYGARC_HAL_LPC24XX_REG_EMCS_WAITO_EN3 0x0268
+#define CYGARC_HAL_LPC24XX_REG_EMCS_WAITRD3 0x026C
+#define CYGARC_HAL_LPC24XX_REG_EMCS_WAITPAGE3 0x0270
+#define CYGARC_HAL_LPC24XX_REG_EMCS_WAITWR3 0x0274
+#define CYGARC_HAL_LPC24XX_REG_EMCS_WAITTURN3 0x0278
+
+
+//=============================================================================
+// Vectored Interrupt Controller (VIC)
+
+#define CYGARC_HAL_LPC24XX_REG_VIC_BASE 0xFFFFF000
+
+// Registers are offsets from base of this subsystem
+
+#define CYGARC_HAL_LPC24XX_REG_VICIRQSTAT 0x000
+#define CYGARC_HAL_LPC24XX_REG_VICFIQSTAT 0x004
+#define CYGARC_HAL_LPC24XX_REG_VICRAWINTR 0x008
+#define CYGARC_HAL_LPC24XX_REG_VICINTSELECT 0x00C
+#define CYGARC_HAL_LPC24XX_REG_VICINTENABLE 0x010
+#define CYGARC_HAL_LPC24XX_REG_VICINTENCLEAR 0x014
+#define CYGARC_HAL_LPC24XX_REG_VICSOFTINT 0x018
+#define CYGARC_HAL_LPC24XX_REG_VICSOFTINTCLEAR 0x01C
+#define CYGARC_HAL_LPC24XX_REG_VICPROTECTION 0x020
+#define CYGARC_HAL_LPC24XX_REG_VICSWPRIOMASK 0x020
+
+#define CYGARC_HAL_LPC24XX_REG_VICVECTADDR0 0x100
+#define CYGARC_HAL_LPC24XX_REG_VICVECTADDR1 0x104
+#define CYGARC_HAL_LPC24XX_REG_VICVECTADDR2 0x108
+#define CYGARC_HAL_LPC24XX_REG_VICVECTADDR3 0x10C
+#define CYGARC_HAL_LPC24XX_REG_VICVECTADDR4 0x110
+#define CYGARC_HAL_LPC24XX_REG_VICVECTADDR5 0x114
+#define CYGARC_HAL_LPC24XX_REG_VICVECTADDR6 0x118
+#define CYGARC_HAL_LPC24XX_REG_VICVECTADDR7 0x11C
+#define CYGARC_HAL_LPC24XX_REG_VICVECTADDR8 0x120
+#define CYGARC_HAL_LPC24XX_REG_VICVECTADDR9 0x124
+#define CYGARC_HAL_LPC24XX_REG_VICVECTADDR10 0x128
+#define CYGARC_HAL_LPC24XX_REG_VICVECTADDR11 0x12C
+#define CYGARC_HAL_LPC24XX_REG_VICVECTADDR12 0x130
+#define CYGARC_HAL_LPC24XX_REG_VICVECTADDR13 0x134
+#define CYGARC_HAL_LPC24XX_REG_VICVECTADDR14 0x138
+#define CYGARC_HAL_LPC24XX_REG_VICVECTADDR15 0x13C
+#define CYGARC_HAL_LPC24XX_REG_VICVECTADDR16 0x140
+#define CYGARC_HAL_LPC24XX_REG_VICVECTADDR17 0x144
+#define CYGARC_HAL_LPC24XX_REG_VICVECTADDR18 0x148
+#define CYGARC_HAL_LPC24XX_REG_VICVECTADDR19 0x14C
+#define CYGARC_HAL_LPC24XX_REG_VICVECTADDR20 0x150
+#define CYGARC_HAL_LPC24XX_REG_VICVECTADDR21 0x154
+#define CYGARC_HAL_LPC24XX_REG_VICVECTADDR22 0x158
+#define CYGARC_HAL_LPC24XX_REG_VICVECTADDR23 0x15C
+#define CYGARC_HAL_LPC24XX_REG_VICVECTADDR24 0x160
+#define CYGARC_HAL_LPC24XX_REG_VICVECTADDR25 0x164
+#define CYGARC_HAL_LPC24XX_REG_VICVECTADDR26 0x168
+#define CYGARC_HAL_LPC24XX_REG_VICVECTADDR27 0x16C
+#define CYGARC_HAL_LPC24XX_REG_VICVECTADDR28 0x170
+#define CYGARC_HAL_LPC24XX_REG_VICVECTADDR29 0x174
+#define CYGARC_HAL_LPC24XX_REG_VICVECTADDR30 0x178
+#define CYGARC_HAL_LPC24XX_REG_VICVECTADDR31 0x17C
+
+#define CYGARC_HAL_LPC24XX_REG_VICVECTPRIO0 0x200
+#define CYGARC_HAL_LPC24XX_REG_VICVECTPRIO1 0x204
+#define CYGARC_HAL_LPC24XX_REG_VICVECTPRIO2 0x208
+#define CYGARC_HAL_LPC24XX_REG_VICVECTPRIO3 0x20C
+#define CYGARC_HAL_LPC24XX_REG_VICVECTPRIO4 0x210
+#define CYGARC_HAL_LPC24XX_REG_VICVECTPRIO5 0x214
+#define CYGARC_HAL_LPC24XX_REG_VICVECTPRIO6 0x218
+#define CYGARC_HAL_LPC24XX_REG_VICVECTPRIO7 0x21C
+#define CYGARC_HAL_LPC24XX_REG_VICVECTPRIO8 0x220
+#define CYGARC_HAL_LPC24XX_REG_VICVECTPRIO9 0x224
+#define CYGARC_HAL_LPC24XX_REG_VICVECTPRIO10 0x228
+#define CYGARC_HAL_LPC24XX_REG_VICVECTPRIO11 0x22C
+#define CYGARC_HAL_LPC24XX_REG_VICVECTPRIO12 0x230
+#define CYGARC_HAL_LPC24XX_REG_VICVECTPRIO13 0x234
+#define CYGARC_HAL_LPC24XX_REG_VICVECTPRIO14 0x238
+#define CYGARC_HAL_LPC24XX_REG_VICVECTPRIO15 0x23C
+#define CYGARC_HAL_LPC24XX_REG_VICVECTPRIO16 0x240
+#define CYGARC_HAL_LPC24XX_REG_VICVECTPRIO17 0x244
+#define CYGARC_HAL_LPC24XX_REG_VICVECTPRIO18 0x248
+#define CYGARC_HAL_LPC24XX_REG_VICVECTPRIO19 0x24C
+#define CYGARC_HAL_LPC24XX_REG_VICVECTPRIO20 0x250
+#define CYGARC_HAL_LPC24XX_REG_VICVECTPRIO21 0x254
+#define CYGARC_HAL_LPC24XX_REG_VICVECTPRIO22 0x258
+#define CYGARC_HAL_LPC24XX_REG_VICVECTPRIO23 0x25C
+#define CYGARC_HAL_LPC24XX_REG_VICVECTPRIO24 0x260
+#define CYGARC_HAL_LPC24XX_REG_VICVECTPRIO25 0x264
+#define CYGARC_HAL_LPC24XX_REG_VICVECTPRIO26 0x268
+#define CYGARC_HAL_LPC24XX_REG_VICVECTPRIO27 0x26C
+#define CYGARC_HAL_LPC24XX_REG_VICVECTPRIO28 0x270
+#define CYGARC_HAL_LPC24XX_REG_VICVECTPRIO29 0x274
+#define CYGARC_HAL_LPC24XX_REG_VICVECTPRIO30 0x278
+#define CYGARC_HAL_LPC24XX_REG_VICVECTPRIO31 0x27C
+
+
+#define CYGARC_HAL_LPC24XX_REG_VICVECTADDR 0xF00
+
+
+//=============================================================================
+// Ethernet (EMAC)
+#define CYGARC_HAL_LPC2XXX_REG_EMAC_BASE 0xFFE00000
+
+//-----------------------------------------------------------------------------
+// end of var_io.h
+#endif // CYGONCE_HAL_VAR_IO_H
diff --git a/ecos/packages/hal/arm/lpc24xx/var/current/src/hal_diag.c b/ecos/packages/hal/arm/lpc24xx/var/current/src/hal_diag.c
new file mode 100755
index 0000000..d62c038
--- /dev/null
+++ b/ecos/packages/hal/arm/lpc24xx/var/current/src/hal_diag.c
@@ -0,0 +1,391 @@
+/*=============================================================================
+//
+// hal_diag.c
+//
+// HAL diagnostic output code
+//
+//=============================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002, 2004 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jani
+// Contributors:jskov, gthomas
+// Date: 2001-07-12
+// Purpose: HAL diagnostic output
+// Description: Implementations of HAL diagnostic output support.
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================*/
+
+
+//===========================================================================
+// INCLUDES
+//===========================================================================
+#include <pkgconf/hal.h>
+#include CYGBLD_HAL_PLATFORM_H
+
+#include <cyg/infra/cyg_type.h> // base types
+
+#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
+#include <cyg/hal/hal_diag.h>
+
+#include <cyg/hal/var_io.h> // USART registers
+#include <cyg/hal/lpc24xx_misc.h> // peripheral identifiers
+
+
+//===========================================================================
+// DATA TYPES
+//===========================================================================-
+typedef struct
+{
+ cyg_uint8* base;
+ cyg_int32 msec_timeout;
+ int isr_vector;
+ int baud_rate;
+ cyg_uint8 periph_id;
+} channel_data_t;
+
+
+//
+// Diagnostic serial channel data
+//
+static channel_data_t lpc2xxx_ser_channels[2] =
+{
+ { (cyg_uint8*)CYGARC_HAL_LPC24XX_REG_UART0_BASE,
+ 1000,
+ CYGNUM_HAL_INTERRUPT_UART0,
+ CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_BAUD,
+ CYNUM_HAL_LPC24XX_PCLK_UART0},
+
+ { (cyg_uint8*)CYGARC_HAL_LPC24XX_REG_UART1_BASE,
+ 1000,
+ CYGNUM_HAL_INTERRUPT_UART1,
+ CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_BAUD,
+ CYNUM_HAL_LPC24XX_PCLK_UART1}
+};
+
+
+//===========================================================================
+// Initialize diagnostic serial channel
+//===========================================================================
+static void cyg_hal_plf_serial_init_channel(void* __ch_data)
+{
+ channel_data_t* chan = (channel_data_t*)__ch_data;
+ cyg_uint8* base = chan->base;
+ cyg_uint16 divider = CYG_HAL_ARM_LPC24XX_BAUD_GENERATOR(chan->periph_id,
+ chan->baud_rate);
+ // Set baudrate
+ HAL_WRITE_UINT32(base + CYGARC_HAL_LPC24XX_REG_UxLCR,
+ CYGARC_HAL_LPC24XX_REG_UxLCR_DLAB);
+ HAL_WRITE_UINT32(base + CYGARC_HAL_LPC24XX_REG_UxDLM, divider >> 8);
+ HAL_WRITE_UINT32(base + CYGARC_HAL_LPC24XX_REG_UxDLL, divider & 0xFF);
+
+ // 8-1-no parity.
+ HAL_WRITE_UINT32(base + CYGARC_HAL_LPC24XX_REG_UxLCR,
+ CYGARC_HAL_LPC24XX_REG_UxLCR_WORD_LENGTH_8 |
+ CYGARC_HAL_LPC24XX_REG_UxLCR_STOP_1);
+
+ // Reset and enable FIFO
+ HAL_WRITE_UINT32(base + CYGARC_HAL_LPC24XX_REG_UxFCR,
+ CYGARC_HAL_LPC24XX_REG_UxFCR_FIFO_ENA |
+ CYGARC_HAL_LPC24XX_REG_UxFCR_RX_FIFO_RESET |
+ CYGARC_HAL_LPC24XX_REG_UxFCR_TX_FIFO_RESET);
+}
+
+
+//===========================================================================
+// Write single character
+//===========================================================================
+void cyg_hal_plf_serial_putc(void *__ch_data, char c)
+{
+ cyg_uint8* base = ((channel_data_t*)__ch_data)->base;
+ cyg_uint8 stat;
+ CYGARC_HAL_SAVE_GP();
+
+ do {
+ HAL_READ_UINT32(base + CYGARC_HAL_LPC24XX_REG_UxLSR, stat);
+ } while ((stat & CYGARC_HAL_LPC24XX_REG_UxLSR_THRE) == 0);
+
+ HAL_WRITE_UINT32(base + CYGARC_HAL_LPC24XX_REG_UxTHR, c);
+
+ CYGARC_HAL_RESTORE_GP();
+}
+
+
+//===========================================================================
+// Read single character non blocking
+//===========================================================================
+static cyg_bool cyg_hal_plf_serial_getc_nonblock(void* __ch_data, cyg_uint8* ch)
+{
+ channel_data_t* chan = (channel_data_t*)__ch_data;
+ cyg_uint8* base = chan->base;
+ cyg_uint8 stat;
+
+ HAL_READ_UINT32(base + CYGARC_HAL_LPC24XX_REG_UxLSR, stat);
+ if ((stat & CYGARC_HAL_LPC24XX_REG_UxLSR_RDR) == 0)
+ return false;
+
+ HAL_READ_UINT32(base + CYGARC_HAL_LPC24XX_REG_UxRBR, *ch);
+
+ return true;
+}
+
+
+//===========================================================================
+// Read single character blocking
+//===========================================================================
+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;
+}
+
+
+//===========================================================================
+// Write data buffer via serial line
+//===========================================================================
+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();
+}
+
+
+//===========================================================================
+// Read data buffer
+//===========================================================================
+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();
+}
+
+
+//===========================================================================
+// Read single character with timeout
+//===========================================================================
+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;
+}
+
+
+//===========================================================================
+// Control serial channel configuration
+//===========================================================================
+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* base = ((channel_data_t*)__ch_data)->base;
+ int ret = 0;
+ va_list ap;
+
+ CYGARC_HAL_SAVE_GP();
+ va_start(ap, __func);
+
+ switch (__func) {
+ case __COMMCTL_GETBAUD:
+ ret = chan->baud_rate;
+ break;
+ case __COMMCTL_SETBAUD:
+ chan->baud_rate = va_arg(ap, cyg_int32);
+ // Should we verify this value here?
+ cyg_hal_plf_serial_init_channel(chan);
+ ret = 0;
+ break;
+ case __COMMCTL_IRQ_ENABLE:
+ irq_state = 1;
+ HAL_INTERRUPT_ACKNOWLEDGE(chan->isr_vector);
+ HAL_INTERRUPT_UNMASK(chan->isr_vector);
+ HAL_WRITE_UINT32(base+CYGARC_HAL_LPC24XX_REG_UxIER,
+ CYGARC_HAL_LPC24XX_REG_UxIER_RXDATA_INT);
+ break;
+ case __COMMCTL_IRQ_DISABLE:
+ ret = irq_state;
+ irq_state = 0;
+ HAL_INTERRUPT_MASK(chan->isr_vector);
+ HAL_WRITE_UINT32(base+CYGARC_HAL_LPC24XX_REG_UxIER, 0);
+ break;
+ case __COMMCTL_DBG_ISR_VECTOR:
+ ret = chan->isr_vector;
+ break;
+ case __COMMCTL_SET_TIMEOUT:
+ ret = chan->msec_timeout;
+ chan->msec_timeout = va_arg(ap, cyg_uint32);
+ default:
+ break;
+ }
+
+ va_end(ap);
+ CYGARC_HAL_RESTORE_GP();
+ return ret;
+}
+
+
+//===========================================================================
+// Serial channel ISR
+//===========================================================================
+static int cyg_hal_plf_serial_isr(void *__ch_data, int* __ctrlc,
+ CYG_ADDRWORD __vector, CYG_ADDRWORD __data)
+{
+ int res = 0;
+ channel_data_t* chan = (channel_data_t*)__ch_data;
+ cyg_uint8 c;
+ cyg_uint8 iir;
+
+ CYGARC_HAL_SAVE_GP();
+
+ *__ctrlc = 0;
+
+ HAL_READ_UINT32(chan->base + CYGARC_HAL_LPC24XX_REG_UxIIR, iir);
+
+ if((iir & (CYGARC_HAL_LPC24XX_REG_UxIIR_IIR0 |
+ CYGARC_HAL_LPC24XX_REG_UxIIR_IIR1 |
+ CYGARC_HAL_LPC24XX_REG_UxIIR_IIR2))
+ == CYGARC_HAL_LPC24XX_REG_UxIIR_IIR2)
+ {
+ // Rx data available or character timeout
+ // Read data in order to clear interrupt
+ HAL_READ_UINT32(chan->base + CYGARC_HAL_LPC24XX_REG_UxRBR, c);
+ if( cyg_hal_is_break( &c , 1 ) ) *__ctrlc = 1;
+
+ res = CYG_ISR_HANDLED;
+ }
+
+ HAL_INTERRUPT_ACKNOWLEDGE(chan->isr_vector);
+
+ CYGARC_HAL_RESTORE_GP();
+ return res;
+}
+
+
+//===========================================================================
+// Initialize serial channel
+//===========================================================================
+void cyg_hal_plf_serial_init(void)
+{
+ hal_virtual_comm_table_t* comm;
+ int cur;
+
+ cur =
+ CYGACC_CALL_IF_SET_CONSOLE_COMM(CYGNUM_CALL_IF_SET_COMM_ID_QUERY_CURRENT);
+
+ // Init channels
+ cyg_hal_plf_serial_init_channel(&lpc2xxx_ser_channels[0]);
+#if CYGNUM_HAL_VIRTUAL_VECTOR_COMM_CHANNELS > 1
+ cyg_hal_plf_serial_init_channel(&lpc2xxx_ser_channels[1]);
+#endif
+
+ // 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, &lpc2xxx_ser_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);
+
+#if CYGNUM_HAL_VIRTUAL_VECTOR_COMM_CHANNELS > 1
+ // Set channel 1
+ CYGACC_CALL_IF_SET_CONSOLE_COMM(1);
+ comm = CYGACC_CALL_IF_CONSOLE_PROCS();
+ CYGACC_COMM_IF_CH_DATA_SET(*comm, &lpc2xxx_ser_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);
+#endif
+
+ // Restore original console
+ CYGACC_CALL_IF_SET_CONSOLE_COMM(cur);
+}
+
+
+//===========================================================================
+// Set diagnostic led
+//===========================================================================
+void hal_diag_led(int mask)
+{
+ hal_lpc24xx_set_leds(mask);
+}
+
+//-----------------------------------------------------------------------------
+// End of hal_diag.c
diff --git a/ecos/packages/hal/arm/lpc24xx/var/current/src/lpc24xx_misc.c b/ecos/packages/hal/arm/lpc24xx/var/current/src/lpc24xx_misc.c
new file mode 100755
index 0000000..0507291
--- /dev/null
+++ b/ecos/packages/hal/arm/lpc24xx/var/current/src/lpc24xx_misc.c
@@ -0,0 +1,613 @@
+/*==========================================================================
+//
+// lpc24xx_misc.c
+//
+// HAL misc variant support code for NXP LPC24xx
+//
+//==========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//==========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): Uwe Kindler
+// Contributors: gthomas, jskov, nickg, tkoeller
+// Date: 2008-07-06
+// Purpose: Prozessor support
+// Description: Implementations of LPC24xx processor support
+//
+//####DESCRIPTIONEND####
+//
+//========================================================================*/
+
+
+//===========================================================================
+// INCLUDES
+//===========================================================================
+#include <pkgconf/hal.h>
+#include <pkgconf/hal_arm_lpc24xx.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> // necessary?
+#include <cyg/hal/hal_cache.h>
+#include <cyg/hal/hal_if.h> // calling interface
+#include <cyg/hal/hal_misc.h> // helper functions
+#ifdef CYGDBG_HAL_DEBUG_GDB_BREAK_SUPPORT
+#include <cyg/hal/drv_api.h> // HAL ISR support
+#endif
+#include <cyg/hal/var_io.h> // platform registers
+
+#include <cyg/infra/diag.h> // For diagnostic printing
+
+
+static cyg_uint32 clock_period = 0;
+
+
+//===========================================================================
+// Get peripheral clock for a certain peripheral
+//===========================================================================
+cyg_uint32 hal_lpc_get_pclk(cyg_uint32 pclk_id)
+{
+ static const cyg_uint8 divider_tbl[4] =
+ {
+ 4, 1, 2, 8
+ };
+ cyg_uint32 pclkselreg;
+ cyg_uint32 regval;
+ cyg_uint8 divider;
+
+ CYG_ASSERT(pclk_id >= CYNUM_HAL_LPC24XX_PCLK_WDT &&
+ pclk_id <= CYNUM_HAL_LPC24XX_PCLK_SYSCON,
+ "Invalid peripheral clock ID");
+
+ //
+ // decide if we need PCLKSEL0 or PCLKSEL1
+ //
+ pclkselreg = ((pclk_id <= CYNUM_HAL_LPC24XX_PCLK_ACF) ?
+ CYGARC_HAL_LPC24XX_REG_PCLKSEL0 :
+ CYGARC_HAL_LPC24XX_REG_PCLKSEL1);
+ HAL_READ_UINT32(CYGARC_HAL_LPC24XX_REG_SCB_BASE + pclkselreg, regval);
+ regval = (regval >> ((pclk_id & 0xF) << 1)) & 0x03;
+ divider = divider_tbl[regval];
+ if ((8 == divider) && (pclk_id >= CYNUM_HAL_LPC24XX_PCLK_CAN1)
+ && (pclk_id <= CYNUM_HAL_LPC24XX_PCLK_ACF))
+ {
+ divider = 6;
+ }
+ return CYGNUM_HAL_ARM_LPC24XX_CLOCK_SPEED / divider;
+}
+
+
+//===========================================================================
+// Set peripheral clock
+//===========================================================================
+void hal_lpc_set_pclk(cyg_uint32 peripheral_id, cyg_uint8 divider)
+{
+ static const cyg_uint8 clock_tbl[5] =
+ {
+ 0x01, // divider 1
+ 0x02, // divider 2
+ 0x00, // divider 4
+ 0x03, // divider 6
+ 0x03 // divider 8
+ };
+ cyg_uint32 clock;
+ cyg_uint32 pclkselreg;
+ cyg_uint32 regval;
+
+ CYG_ASSERT(peripheral_id >= CYNUM_HAL_LPC24XX_PCLK_WDT &&
+ peripheral_id <= CYNUM_HAL_LPC24XX_PCLK_SYSCON,
+ "Invalid peripheral clock ID");
+ CYG_ASSERT(divider <= 8, "Wrong peripheral clock divider value");
+ //
+ // decide if we need PCLKSEL0 or PCLKSEL1
+ //
+ pclkselreg = (peripheral_id <= CYNUM_HAL_LPC24XX_PCLK_ACF) ?
+ CYGARC_HAL_LPC24XX_REG_PCLKSEL0 :
+ CYGARC_HAL_LPC24XX_REG_PCLKSEL1;
+ HAL_READ_UINT32(CYGARC_HAL_LPC24XX_REG_SCB_BASE + pclkselreg, regval);
+ clock = clock_tbl[divider >> 1];
+ regval &= ~(0x03 << ((peripheral_id & 0xF) << 1));
+ regval |= (clock << ((peripheral_id & 0xF) << 1));
+ HAL_WRITE_UINT32(CYGARC_HAL_LPC24XX_REG_SCB_BASE + pclkselreg, regval);
+}
+
+
+//===========================================================================
+// Enable/Disable power for certain peripheral
+//===========================================================================
+void hal_lpc_set_power(cyg_uint8 pconp_id, int on)
+{
+ cyg_uint32 regval;
+
+ CYG_ASSERT(pconp_id >= CYNUM_HAL_LPC24XX_PCONP_TIMER0 &&
+ pconp_id <= CYNUM_HAL_LPC24XX_PCONP_USB,
+ "Invalid peripheral power ID");
+ HAL_READ_UINT32(CYGARC_HAL_LPC24XX_REG_SCB_BASE +
+ CYGARC_HAL_LPC24XX_REG_PCONP, regval);
+ if (on)
+ {
+ regval |= (0x01 << pconp_id);
+ }
+ else
+ {
+ regval &= ~(0x01 << pconp_id);
+ }
+
+ HAL_WRITE_UINT32(CYGARC_HAL_LPC24XX_REG_SCB_BASE +
+ CYGARC_HAL_LPC24XX_REG_PCONP, regval);
+}
+
+
+//===========================================================================
+// Set pin function
+//===========================================================================
+void hal_set_pin_function(cyg_uint8 port, cyg_uint8 pin, cyg_uint8 function)
+{
+ CYG_ASSERT(port <= 4, "Port value out of bounds");
+ CYG_ASSERT(pin <= 31, "Pin value out of bounds");
+ CYG_ASSERT(function <= 3, "Invalid function value");
+
+ cyg_uint32 regval;
+ cyg_uint8 pinsel_reg = port << 1;
+ pinsel_reg += (pin > 15) ? 1 :0;
+ pinsel_reg <<= 2;
+ HAL_READ_UINT32(CYGARC_HAL_LPC24XX_REG_PIN_BASE + pinsel_reg, regval);
+ regval &= ~(0x03 << ((pin & 0xF) << 1));
+ regval |= (function << ((pin & 0xF) << 1));
+ HAL_WRITE_UINT32(CYGARC_HAL_LPC24XX_REG_PIN_BASE + pinsel_reg, regval);
+}
+
+
+//===========================================================================
+// Start clock of RTC timer
+//===========================================================================
+void hal_start_clock_tmr(cyg_uint32 period)
+{
+ if (clock_period == period)
+ {
+ return;
+ }
+
+
+ cyg_uint32 tmr_period = period / (CYGNUM_HAL_ARM_LPC24XX_CLOCK_SPEED /
+ hal_lpc_get_pclk(CYNUM_HAL_LPC24XX_PCLK_TIMER0));
+
+ //
+ // Execute the following steps only if counter is not running yet
+ //
+ if (!clock_period)
+ {
+ //
+ // Disable and reset counter, set prescale register to 0 and
+ // Set up match register
+ //
+ HAL_WRITE_UINT32(CYGARC_HAL_LPC24XX_REG_TIMER0_BASE +
+ CYGARC_HAL_LPC24XX_REG_TxTCR, 2);
+ HAL_WRITE_UINT32(CYGARC_HAL_LPC24XX_REG_TIMER0_BASE +
+ CYGARC_HAL_LPC24XX_REG_TxPR, 0);
+ }
+
+ HAL_WRITE_UINT32(CYGARC_HAL_LPC24XX_REG_TIMER0_BASE +
+ CYGARC_HAL_LPC24XX_REG_TxMR0, tmr_period);
+ //
+ // Reset on match and Enable counter - interrupts are disabled
+ //
+ HAL_WRITE_UINT32(CYGARC_HAL_LPC24XX_REG_TIMER0_BASE +
+ CYGARC_HAL_LPC24XX_REG_TxMCR,
+ CYGARC_HAL_LPC24XX_REG_TxMCR_MR0_RESET);
+ HAL_WRITE_UINT32(CYGARC_HAL_LPC24XX_REG_TIMER0_BASE +
+ CYGARC_HAL_LPC24XX_REG_TxTCR, 1);
+}
+
+
+//===========================================================================
+// initialize timer 0 as eCos realtime clock source
+//===========================================================================
+void hal_clock_initialize(cyg_uint32 period)
+{
+ hal_start_clock_tmr(period);
+
+ //
+ // Reset and generate interrupt on match
+ //
+ HAL_WRITE_UINT32(CYGARC_HAL_LPC24XX_REG_TIMER0_BASE +
+ CYGARC_HAL_LPC24XX_REG_TxMCR,
+ CYGARC_HAL_LPC24XX_REG_TxMCR_MR0_INT |
+ CYGARC_HAL_LPC24XX_REG_TxMCR_MR0_RESET);
+}
+
+
+//===========================================================================
+// Reset clock
+//===========================================================================
+void hal_clock_reset(cyg_uint32 vector, cyg_uint32 period)
+{
+ HAL_WRITE_UINT32(CYGARC_HAL_LPC24XX_REG_TIMER0_BASE +
+ CYGARC_HAL_LPC24XX_REG_TxIR,
+ CYGARC_HAL_LPC24XX_REG_TxIR_MR0); // Clear interrupt
+
+ if (period != clock_period)
+ {
+ hal_clock_initialize(period);
+ }
+ clock_period = period;
+}
+
+
+//===========================================================================
+// Read clock value
+//===========================================================================
+void hal_clock_read(cyg_uint32 *pvalue)
+{
+ CYG_ADDRESS timer = CYGARC_HAL_LPC24XX_REG_TIMER0_BASE;
+ cyg_uint32 val;
+
+ HAL_READ_UINT32(timer + CYGARC_HAL_LPC24XX_REG_TxTC, val);
+ *pvalue = val;
+}
+
+
+//===========================================================================
+// Delay for maximum 1000 micorseconds
+//===========================================================================
+static void delay_max1000_us(cyg_uint32 usecs)
+{
+ cyg_uint32 ticks;
+ cyg_uint32 start_counter;
+ cyg_uint32 target_counter;
+ cyg_uint32 counter;
+ cyg_uint32 tmr_period;
+
+
+ CYG_ASSERT((usecs <= 1000) && (usecs > 0), "Invalid usecs value");
+ HAL_READ_UINT32(CYGARC_HAL_LPC24XX_REG_TIMER0_BASE +
+ CYGARC_HAL_LPC24XX_REG_TxTC, start_counter);
+
+ HAL_READ_UINT32(CYGARC_HAL_LPC24XX_REG_TIMER0_BASE +
+ CYGARC_HAL_LPC24XX_REG_TxMR0, tmr_period);
+
+ //
+ // If timer 0 match period is not initialized, then this is the
+ // first time that someone uses the timer and we need to initialize it
+ //
+ if (!tmr_period)
+ {
+ hal_start_clock_tmr(CYGNUM_HAL_RTC_PERIOD);
+ HAL_READ_UINT32(CYGARC_HAL_LPC24XX_REG_TIMER0_BASE +
+ CYGARC_HAL_LPC24XX_REG_TxMR0, tmr_period);
+ }
+
+ // Calculate how many timer ticks the required number of
+ // microseconds equate to. We do this calculation in 64 bit
+ // arithmetic to avoid overflow.
+ ticks = (((cyg_uint64)usecs) *
+ ((cyg_uint64)hal_lpc_get_pclk(CYNUM_HAL_LPC24XX_PCLK_TIMER0))) /
+ 1000000LL;
+
+ target_counter = (start_counter + ticks) % tmr_period;
+
+ if (target_counter > start_counter)
+ {
+ do
+ {
+ HAL_READ_UINT32(CYGARC_HAL_LPC24XX_REG_TIMER0_BASE +
+ CYGARC_HAL_LPC24XX_REG_TxTC, counter);
+ } while ((counter >= start_counter) && (counter < target_counter));
+ }
+ else
+ {
+ do
+ {
+ HAL_READ_UINT32(CYGARC_HAL_LPC24XX_REG_TIMER0_BASE +
+ CYGARC_HAL_LPC24XX_REG_TxTC, counter);
+ } while ((counter >= start_counter) || (counter < target_counter));
+ } // if (target_counter > start_counter)
+}
+
+
+//===========================================================================
+// Delay for a certain numbr of microseconds
+//===========================================================================
+void hal_delay_us(cyg_int32 usecs)
+{
+ cyg_uint16 delay_duration = usecs % 1000;
+ delay_duration = (delay_duration != 0) ? delay_duration : 1000;
+
+ do
+ {
+ delay_max1000_us(delay_duration);
+ usecs -= delay_duration;
+ delay_duration = 1000;
+ } while (usecs > 0);
+}
+
+
+//===========================================================================
+// Perform variant setup. This optionally calls into the platform
+// HAL if it has defined HAL_PLF_HARDWARE_INIT.
+//===========================================================================
+void hal_hardware_init(void)
+{
+ cyg_uint32 i;
+
+ //
+ // Setup peripheral clocks here according to configuration
+ //
+ hal_lpc_set_pclk(CYNUM_HAL_LPC24XX_PCLK_CAN1,
+ CYGNUM_HAL_ARM_LPC24XX_CAN_CLK_DIV);
+ hal_lpc_set_pclk(CYNUM_HAL_LPC24XX_PCLK_CAN2,
+ CYGNUM_HAL_ARM_LPC24XX_CAN_CLK_DIV);
+ hal_lpc_set_pclk(CYNUM_HAL_LPC24XX_PCLK_ACF,
+ CYGNUM_HAL_ARM_LPC24XX_CAN_CLK_DIV);
+ hal_lpc_set_pclk(CYNUM_HAL_LPC24XX_PCLK_I2C0,
+ CYGNUM_HAL_ARM_LPC24XX_I2C0_CLK_DIV);
+ hal_lpc_set_pclk(CYNUM_HAL_LPC24XX_PCLK_I2C1,
+ CYGNUM_HAL_ARM_LPC24XX_I2C1_CLK_DIV);
+ hal_lpc_set_pclk(CYNUM_HAL_LPC24XX_PCLK_I2C2,
+ CYGNUM_HAL_ARM_LPC24XX_I2C2_CLK_DIV);
+ hal_lpc_set_pclk(CYNUM_HAL_LPC24XX_PCLK_RTC,
+ CYGNUM_HAL_ARM_LPC24XX_RTC_CLK_DIV);
+ hal_lpc_set_pclk(CYNUM_HAL_LPC24XX_PCLK_ADC,
+ CYGNUM_HAL_ARM_LPC24XX_ADC_CLK_DIV);
+
+ //
+ // Enable power for all used on-chip peripherals
+ //
+#ifdef CYGHWR_HAL_ARM_LPC24XX_I2C0_SUPP
+ hal_lpc_set_power(CYNUM_HAL_LPC24XX_PCONP_I2C0, 1);
+#else
+ hal_lpc_set_power(CYNUM_HAL_LPC24XX_PCONP_I2C0, 0);
+#endif // CYGHWR_HAL_ARM_LPC24XX_I2C0_SUPP
+
+#ifdef CYGHWR_HAL_ARM_LPC24XX_I2C1_SUPP
+ hal_lpc_set_power(CYNUM_HAL_LPC24XX_PCONP_I2C1, 1);
+#else
+ hal_lpc_set_power(CYNUM_HAL_LPC24XX_PCONP_I2C1, 0);
+#endif // CYGHWR_HAL_ARM_LPC24XX_I2C0_SUPP
+
+#ifdef CYGHWR_HAL_ARM_LPC24XX_I2C2_SUPP
+ hal_lpc_set_power(CYNUM_HAL_LPC24XX_PCONP_I2C2, 1);
+#else
+ hal_lpc_set_power(CYNUM_HAL_LPC24XX_PCONP_I2C2, 0);
+#endif // CYGHWR_HAL_ARM_LPC24XX_I2C0_SUPP
+
+#ifdef CYGPKG_DEVICES_WALLCLOCK_ARM_LPC2XXX
+ hal_lpc_set_power(CYNUM_HAL_LPC24XX_PCONP_RTC, 1);
+#else
+ hal_lpc_set_power(CYNUM_HAL_LPC24XX_PCONP_RTC, 0);
+#endif // CYGPKG_DEVICES_WALLCLOCK_ARM_LPC2XXX
+
+#ifdef CYGPKG_DEVS_ADC_ARM_LPC24XX
+ hal_lpc_set_power(CYNUM_HAL_LPC24XX_PCONP_ADC, 1);
+ hal_lpc_set_power(CYNUM_HAL_LPC24XX_PCONP_TIMER1, 1);
+#else
+ hal_lpc_set_power(CYNUM_HAL_LPC24XX_PCONP_ADC, 0);
+#endif // CYGPKG_DEVS_ADC_ARM_LPC24XX
+
+ //
+ // Fill vector address registers with interrupt number. If an interrupt
+ // occurs we can simply read the interrupt number from the vector
+ // address register later
+ //
+ cyg_uint32 addr = CYGARC_HAL_LPC24XX_REG_VIC_BASE +
+ CYGARC_HAL_LPC24XX_REG_VICVECTADDR0;
+ for (i = 0; i < 32; ++i)
+ {
+ HAL_WRITE_UINT32(addr, i);
+ addr += 4;
+ }
+#ifdef HAL_PLF_HARDWARE_INIT
+ // Perform any platform specific initializations
+ HAL_PLF_HARDWARE_INIT();
+#endif
+
+ // Set up eCos/ROM interfaces
+ hal_if_init();
+}
+
+
+//===========================================================================
+// This routine is called to respond to a hardware interrupt (IRQ). It
+// should interrogate the hardware and return the IRQ vector number.
+//===========================================================================
+int hal_IRQ_handler(void)
+{
+ cyg_uint32 irq_num;
+
+ HAL_READ_UINT32(CYGARC_HAL_LPC24XX_REG_VIC_BASE +
+ CYGARC_HAL_LPC24XX_REG_VICVECTADDR, irq_num);
+
+ return (irq_num);
+}
+
+
+//===========================================================================
+// Block the interrupt associated with the vector
+//===========================================================================
+void hal_interrupt_mask(int vector)
+{
+ CYG_ASSERT(vector <= CYGNUM_HAL_ISR_MAX &&
+ vector >= CYGNUM_HAL_ISR_MIN , "Invalid vector");
+
+ HAL_WRITE_UINT32(CYGARC_HAL_LPC24XX_REG_VIC_BASE +
+ CYGARC_HAL_LPC24XX_REG_VICINTENCLEAR, 1 << vector);
+}
+
+
+//===========================================================================
+// Unblock the interrupt associated with the vector
+//===========================================================================
+void hal_interrupt_unmask(int vector)
+{
+ CYG_ASSERT(vector <= CYGNUM_HAL_ISR_MAX &&
+ vector >= CYGNUM_HAL_ISR_MIN , "Invalid vector");
+
+ HAL_WRITE_UINT32(CYGARC_HAL_LPC24XX_REG_VIC_BASE +
+ CYGARC_HAL_LPC24XX_REG_VICINTENABLE, 1 << vector);
+}
+
+
+//===========================================================================
+// Acknowledge the interrupt associated with the vector. This
+// clears the interrupt but may result in another interrupt being
+// delivered
+//===========================================================================
+void hal_interrupt_acknowledge(int vector)
+{
+
+ // External interrupts have to be cleared from the EXTINT register
+ if (vector >= CYGNUM_HAL_INTERRUPT_EINT0 &&
+ vector <= CYGNUM_HAL_INTERRUPT_EINT3)
+ {
+ // Map int vector to corresponding bit (0..3)
+ vector = 1 << (vector - CYGNUM_HAL_INTERRUPT_EINT0);
+
+ // Clear the external interrupt
+ HAL_WRITE_UINT32(CYGARC_HAL_LPC24XX_REG_SCB_BASE +
+ CYGARC_HAL_LPC24XX_REG_EXTINT, vector);
+ }
+
+ //
+ // Write any value to vector address register to
+ // acknowledge the interrupt
+ //
+ HAL_WRITE_UINT32(CYGARC_HAL_LPC24XX_REG_VIC_BASE +
+ CYGARC_HAL_LPC24XX_REG_VICVECTADDR, 0xFFFFFFFF);
+}
+
+
+//===========================================================================
+// This provides control over how an interrupt signal is detected.
+// Options are between level or edge sensitive (level) and high/low
+// level or rising/falling edge triggered (up).
+//===========================================================================
+void hal_interrupt_configure(int vector, int level, int up)
+{
+ cyg_uint32 regval;
+
+ // Only external interrupts are configurable
+ CYG_ASSERT(vector <= CYGNUM_HAL_INTERRUPT_EINT3 &&
+ vector >= CYGNUM_HAL_INTERRUPT_EINT0 , "Invalid vector");
+
+ // Map int vector to corresponding bit (0..3)
+ vector = 1 << (vector - CYGNUM_HAL_INTERRUPT_EINT0);
+
+ // Read current mode and update for level (0) or edge detection (1)
+ HAL_READ_UINT32(CYGARC_HAL_LPC24XX_REG_SCB_BASE +
+ CYGARC_HAL_LPC24XX_REG_EXTMODE, regval);
+ if (level)
+ {
+ regval &= ~vector;
+ }
+ else
+ {
+ regval |= vector;
+ }
+ HAL_WRITE_UINT32(CYGARC_HAL_LPC24XX_REG_SCB_BASE +
+ CYGARC_HAL_LPC24XX_REG_EXTMODE, regval);
+
+ // Read current polarity and update for trigger level or edge
+ // level: high (1), low (0) edge: rising (1), falling (0)
+ HAL_READ_UINT32(CYGARC_HAL_LPC24XX_REG_SCB_BASE +
+ CYGARC_HAL_LPC24XX_REG_EXTPOLAR, regval);
+ if (up)
+ {
+ regval |= vector;
+ }
+ else
+ {
+ regval &= ~vector;
+ }
+ HAL_WRITE_UINT32(CYGARC_HAL_LPC24XX_REG_SCB_BASE +
+ CYGARC_HAL_LPC24XX_REG_EXTPOLAR, regval);
+
+ // Clear any spurious interrupt that might have been generated
+ HAL_WRITE_UINT32(CYGARC_HAL_LPC24XX_REG_SCB_BASE +
+ CYGARC_HAL_LPC24XX_REG_EXTINT, vector);
+}
+
+
+//===========================================================================
+// These selects select a priority level for the 32 vectored IRQs.
+// There are 16 priority levels, corresponding to the values 0
+// through 15 decimal, of which 15 is the lowest priority.
+// The reset value of these registers defaults all interrupt to the
+// lowest priority, allowing a single write to elevate the priority
+// of an individual interrupt.
+//===========================================================================
+void hal_interrupt_set_level(int vector, int level)
+{
+ CYG_ASSERT(vector <= CYGNUM_HAL_ISR_MAX &&
+ vector >= CYGNUM_HAL_ISR_MIN , "Invalid vector");
+ CYG_ASSERT(level >= 0 && level <= 15, "Invalid level");
+
+ cyg_uint32 prioreg_addr = CYGARC_HAL_LPC24XX_REG_VIC_BASE +
+ CYGARC_HAL_LPC24XX_REG_VICVECTPRIO0 +
+ (vector << 2);
+ HAL_WRITE_UINT32(prioreg_addr, level & 0xF);
+}
+
+
+//===========================================================================
+// Use the watchdog to generate a reset
+//===========================================================================
+void hal_lpc_watchdog_reset(void)
+{
+ HAL_WRITE_UINT32(CYGARC_HAL_LPC24XX_REG_WD_BASE +
+ CYGARC_HAL_LPC24XX_REG_WDTC, 0xFF);
+ HAL_WRITE_UINT32(CYGARC_HAL_LPC24XX_REG_WD_BASE +
+ CYGARC_HAL_LPC24XX_REG_WDMOD,
+ CYGARC_HAL_LPC24XX_REG_WDMOD_WDEN |
+ CYGARC_HAL_LPC24XX_REG_WDMOD_WDRESET);
+
+ // feed WD with the two magic values
+ HAL_WRITE_UINT32(CYGARC_HAL_LPC24XX_REG_WD_BASE +
+ CYGARC_HAL_LPC24XX_REG_WDFEED,
+ CYGARC_HAL_LPC24XX_REG_WDFEED_MAGIC1);
+ HAL_WRITE_UINT32(CYGARC_HAL_LPC24XX_REG_WD_BASE +
+ CYGARC_HAL_LPC24XX_REG_WDFEED,
+ CYGARC_HAL_LPC24XX_REG_WDFEED_MAGIC2);
+
+ while(1)
+ continue;
+}
+
+
+//--------------------------------------------------------------------------
+// EOF lpc24xx_misc.c
diff --git a/ecos/packages/hal/arm/lpc2xxx/lpcmt/current/ChangeLog b/ecos/packages/hal/arm/lpc2xxx/lpcmt/current/ChangeLog
new file mode 100644
index 0000000..37f7107
--- /dev/null
+++ b/ecos/packages/hal/arm/lpc2xxx/lpcmt/current/ChangeLog
@@ -0,0 +1,44 @@
+2009-01-31 Bart Veer <bartv@ecoscentric.com>
+
+ * cdl/hal_arm_lpc2xxx_lpcmt.cdl: update compiler flags for gcc 4.x
+
+2009-01-24 Bart Veer <bartv@ecoscentric.com>
+
+ * cdl/hal_arm_lpc2xxx_lpcmt.cdl: switch from arm-elf-gcc to
+ arm-eabi-gcc. Remove -mno-short-load-words.
+
+2004-11-19 Jani Monoses <jani@iv.ro>
+
+ * cdl/hal_arm_lpc2xxx_lpcmt.cdl:
+ * include/plf_io.h:
+ * include/hal_platform_setup.h:
+ * include/pkgconf/mlt_arm_lpc2xxx_lpcmt_rom.ldi:
+ * include/pkgconf/mlt_arm_lpc2xxx_lpcmt_rom.h:
+ * include/pkgconf/mlt_arm_lpc2xxx_lpcmt_ram.ldi:
+ * include/pkgconf/mlt_arm_lpc2xxx_lpcmt_ram.h:
+ * src/lpcmt_misc.c:
+ New HAL platform added to support the Olimex LPC-MT board.
+
+//===========================================================================
+// ####GPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 2 or (at your option) any
+// later version.
+//
+// This program is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the
+// Free Software Foundation, Inc., 51 Franklin Street,
+// Fifth Floor, Boston, MA 02110-1301, USA.
+// -------------------------------------------
+// ####GPLCOPYRIGHTEND####
+//===========================================================================
diff --git a/ecos/packages/hal/arm/lpc2xxx/lpcmt/current/cdl/hal_arm_lpc2xxx_lpcmt.cdl b/ecos/packages/hal/arm/lpc2xxx/lpcmt/current/cdl/hal_arm_lpc2xxx_lpcmt.cdl
new file mode 100644
index 0000000..42f69f6
--- /dev/null
+++ b/ecos/packages/hal/arm/lpc2xxx/lpcmt/current/cdl/hal_arm_lpc2xxx_lpcmt.cdl
@@ -0,0 +1,278 @@
+# ====================================================================
+#
+# hal_arm_lpc2xxx_lpcmt.cdl
+#
+# ARM LPC2XXX LPCMT HAL package configuration data
+#
+# ====================================================================
+## ####ECOSGPLCOPYRIGHTBEGIN####
+## -------------------------------------------
+## This file is part of eCos, the Embedded Configurable Operating System.
+## Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
+##
+## eCos is free software; you can redistribute it and/or modify it under
+## the terms of the GNU General Public License as published by the Free
+## Software Foundation; either version 2 or (at your option) any later
+## version.
+##
+## eCos is distributed in the hope that it will be useful, but WITHOUT
+## ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+## FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+## for more details.
+##
+## You should have received a copy of the GNU General Public License
+## along with eCos; if not, write to the Free Software Foundation, Inc.,
+## 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+##
+## As a special exception, if other files instantiate templates or use
+## macros or inline functions from this file, or you compile this file
+## and link it with other works to produce a work based on this file,
+## this file does not by itself cause the resulting work to be covered by
+## the GNU General Public License. However the source code for this file
+## must still be made available in accordance with section (3) of the GNU
+## General Public License v2.
+##
+## This exception does not invalidate any other reasons why a work based
+## on this file might be covered by the GNU General Public License.
+## -------------------------------------------
+## ####ECOSGPLCOPYRIGHTEND####
+# ====================================================================
+######DESCRIPTIONBEGIN####
+#
+# Author(s): jani
+# Contributors: gthomas, tkoeller, nickg
+# Date: 2004-10-14
+#
+#####DESCRIPTIONEND####
+#
+# ====================================================================
+
+cdl_package CYGPKG_HAL_ARM_LPC2XXX_LPCMT {
+ display "Olimex LPCMT eval board HAL"
+ parent CYGPKG_HAL_ARM_LPC2XXX
+ define_header hal_arm_lpc2xxx_lpcmt.h
+ include_dir cyg/hal
+ hardware
+ description "
+ The LPCMT HAL package provides the support needed to run
+ eCos on an Olimex LPCMT eval board."
+
+ compile lpcmt_misc.c
+
+ requires { CYGHWR_HAL_ARM_LPC2XXX == "LPC210x" }
+
+ 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_lpc2xxx.h>"
+ puts $::cdl_system_header "#define CYGBLD_HAL_PLATFORM_H <pkgconf/hal_arm_lpc2xxx_lpcmt.h>"
+ puts $::cdl_system_header "#define CYGBLD_HAL_ARM_VAR_IO_H"
+ puts $::cdl_header "#define HAL_PLATFORM_CPU \"ARM7TDMI-S\""
+ puts $::cdl_header "#define HAL_PLATFORM_BOARD \"Olimex LPC2XXX/LPCMT\""
+ puts $::cdl_header "#define HAL_PLATFORM_EXTRA \"\""
+ }
+
+ cdl_component CYG_HAL_STARTUP {
+ display "Startup type"
+ flavor data
+ default_value {"ROM"}
+ legal_values {"ROM" "RAM"}
+ no_define
+ define -file system.h CYG_HAL_STARTUP
+ description "
+ Chose ROM or RAM startup type."
+ }
+
+ 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"
+ active_if CYGPRI_HAL_VIRTUAL_VECTOR_DEBUG_CHANNEL_CONFIGURABLE
+ flavor data
+ legal_values 0 to CYGNUM_HAL_VIRTUAL_VECTOR_COMM_CHANNELS-1
+ default_value 0
+ description "
+ The LPCMT board has one serial port."
+ }
+
+ cdl_option CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL {
+ display "Diagnostic serial port"
+ active_if CYGPRI_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_CONFIGURABLE
+ flavor data
+ legal_values 0 to CYGNUM_HAL_VIRTUAL_VECTOR_COMM_CHANNELS-1
+ default_value 0
+ description "
+ The LPCMT board has one serial port."
+ }
+
+ cdl_option CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_BAUD {
+ display "Diagnostic serial port baud rate"
+ flavor data
+ legal_values 9600 19200 38400 57600 115200
+ default_value 38400
+ description "
+ This option selects the baud rate used for the diagnostic port."
+ }
+
+ cdl_option CYGNUM_HAL_VIRTUAL_VECTOR_DEBUG_CHANNEL_BAUD {
+ display "GDB serial port baud rate"
+ flavor data
+ legal_values 9600 19200 38400 57600 115200
+ default_value 38400
+ description "
+ This option controls the baud rate used for the GDB connection."
+ }
+
+ # Real-time clock/counter specifics
+ cdl_option CYGNUM_HAL_ARM_LPC2XXX_XTAL_FREQ {
+ display "CPU clock speed"
+ flavor data
+ default_value {14745600}
+ }
+
+ cdl_option CYGNUM_HAL_ARM_LPC2XXX_PLL_MUL {
+ display "CPU clock speed"
+ flavor data
+ default_value {4}
+ }
+
+ cdl_option CYGNUM_HAL_ARM_LPC2XXX_CLOCK_SPEED {
+ display "CPU clock speed"
+ flavor data
+ calculated { CYGNUM_HAL_ARM_LPC2XXX_PLL_MUL * CYGNUM_HAL_ARM_LPC2XXX_XTAL_FREQ }
+ }
+
+ 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 { "arm-eabi"}
+ 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 { CYGBLD_GLOBAL_WARNFLAGS . CYGBLD_ARCH_CFLAGS .
+ "-mcpu=arm7tdmi -g -O2 -ffunction-sections -fdata-sections -fno-rtti -fno-exceptions " }
+ 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 { CYGBLD_ARCH_LDFLAGS . "-mcpu=arm7tdmi -Wl,--gc-sections -Wl,-static -g -nostdlib" }
+ description "
+ This option controls the global linker flags. Individual
+ packages may define options which override these global flags."
+ }
+ }
+
+ 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" || CYG_HAL_STARTUP == "ROMRAM" }
+ 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 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_REDBOOT_HAL_OPTIONS {
+ display "Redboot HAL options"
+ flavor none
+ no_define
+ parent CYGPKG_REDBOOT
+ active_if CYGPKG_REDBOOT
+ description "
+ This option lists the target's requirements for a valid Redboot
+ configuration."
+
+ 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 $< $@
+ }
+
+ }
+ }
+
+ cdl_component CYGHWR_MEMORY_LAYOUT {
+ display "Memory layout"
+ flavor data
+ no_define
+ calculated { (CYG_HAL_STARTUP == "RAM") ? "arm_lpc2xxx_lpcmt_ram":
+ "arm_lpc2xxx_lpcmt_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_lpc2xxx_lpcmt_ram.ldi>":
+ "<pkgconf/mlt_arm_lpc2xxx_lpcmt_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_lpc2xxx_lpcmt_ram.h>":
+ "<pkgconf/mlt_arm_lpc2xxx_lpcmt_rom.h>"}
+ }
+ }
+}
diff --git a/ecos/packages/hal/arm/lpc2xxx/lpcmt/current/include/hal_platform_setup.h b/ecos/packages/hal/arm/lpc2xxx/lpcmt/current/include/hal_platform_setup.h
new file mode 100644
index 0000000..c5db19b
--- /dev/null
+++ b/ecos/packages/hal/arm/lpc2xxx/lpcmt/current/include/hal_platform_setup.h
@@ -0,0 +1,160 @@
+#ifndef CYGONCE_HAL_PLATFORM_SETUP_H
+#define CYGONCE_HAL_PLATFORM_SETUP_H
+
+/*=============================================================================
+//
+// hal_platform_setup.h
+//
+// Platform specific support for HAL (assembly code)
+//
+//=============================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jani
+// Contributors:
+// Date: 2004-09-12
+// Purpose: LPC2XXX/LPCMT platform specific support routines
+// Description:
+// Usage: #include <cyg/hal/hal_platform_setup.h>
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================*/
+
+#include <pkgconf/system.h>
+#include <cyg/hal/var_io.h>
+
+//===========================================================================*/
+
+ .macro _led_init
+ ldr r0,=CYGARC_HAL_LPC2XXX_REG_IO_BASE
+ ldr r1,=(1<<12) // GPIO0 pin 12 is LED output
+ str r1,[r0,#CYGARC_HAL_LPC2XXX_REG_IODIR]
+ .endm
+
+ .macro _led x
+ ldr r0,=CYGARC_HAL_LPC2XXX_REG_IO_BASE
+ ldr r1,=(1<<12)
+ str r1,[r0,#CYGARC_HAL_LPC2XXX_REG_IOCLR]
+ ldr r1,=((\x & 1)<<12)
+ str r1,[r0,#CYGARC_HAL_LPC2XXX_REG_IOSET]
+ .endm
+
+ .macro _pll_init
+ ldr r0,=CYGARC_HAL_LPC2XXX_REG_SCB_BASE
+
+ mov r2,#0xAA
+ mov r3,#0x55
+
+ mov r1,#1 // enable PLL
+ str r1,[r0,#CYGARC_HAL_LPC2XXX_REG_PLLCON]
+
+ mov r1,#(0x20 | (CYGNUM_HAL_ARM_LPC2XXX_PLL_MUL - 1))
+ str r1,[r0,#CYGARC_HAL_LPC2XXX_REG_PLLCFG]
+
+ str r2,[r0,#CYGARC_HAL_LPC2XXX_REG_PLLFEED] // update PLL registers
+ str r3,[r0,#CYGARC_HAL_LPC2XXX_REG_PLLFEED]
+
+1:
+ ldr r1,[r0,#CYGARC_HAL_LPC2XXX_REG_PLLSTAT] // wait for it to lock
+ ands r1,r1,#(1<<10)
+ beq 1b
+
+ mov r1,#3 // connect PLL
+ str r1,[r0,#CYGARC_HAL_LPC2XXX_REG_PLLCON]
+
+ str r2,[r0,#CYGARC_HAL_LPC2XXX_REG_PLLFEED] // update PLL registers
+ str r3,[r0,#CYGARC_HAL_LPC2XXX_REG_PLLFEED]
+
+ .endm
+
+ .macro _mem_init
+ mov r0,#0 // copy first 64 bytes of flash to RAM
+ mov r1,#0x40000000
+ mov r2,#0x40
+1:
+ ldr r3,[r0,#4]!
+ str r3,[r1,#4]!
+ cmps r0,r2
+ bne 1b
+
+ ldr r0,=CYGARC_HAL_LPC2XXX_REG_SCB_BASE
+ mov r1,#2
+ str r1, [r0,#CYGARC_HAL_LPC2XXX_REG_MEMMAP] // int vectors mapped to RAM
+ mov r1,#4
+ str r1,[r0,#CYGARC_HAL_LPC2XXX_REG_MAMTIM] // flash timings
+ mov r1,#2
+ str r1,[r0,#CYGARC_HAL_LPC2XXX_REG_MAMCR] // enable full MAM
+ .endm
+
+ .macro _gpio_init
+ ldr r0,=CYGARC_HAL_LPC2XXX_REG_PIN_BASE // enable RX and TX on UART0
+ ldr r1,=0x00000005
+ str r1,[r0,#CYGARC_HAL_LPC2XXX_REG_PINSEL0]
+ .endm
+
+#define CYGHWR_LED_MACRO _led \x
+
+//===========================================================================*/
+
+#if defined(CYG_HAL_STARTUP_ROM)
+
+ .macro _setup
+
+ _pll_init
+
+ _mem_init
+
+ _gpio_init
+
+ _led_init
+
+ .endm
+
+#define CYGSEM_HAL_ROM_RESET_USES_JUMP
+
+#else
+
+ .macro _setup
+ .endm
+
+#endif
+
+#define PLATFORM_SETUP1 _setup
+
+
+//-----------------------------------------------------------------------------
+// end of hal_platform_setup.h
+#endif // CYGONCE_HAL_PLATFORM_SETUP_H
diff --git a/ecos/packages/hal/arm/lpc2xxx/lpcmt/current/include/pkgconf/mlt_arm_lpc2xxx_lpcmt_ram.h b/ecos/packages/hal/arm/lpc2xxx/lpcmt/current/include/pkgconf/mlt_arm_lpc2xxx_lpcmt_ram.h
new file mode 100644
index 0000000..e83e534
--- /dev/null
+++ b/ecos/packages/hal/arm/lpc2xxx/lpcmt/current/include/pkgconf/mlt_arm_lpc2xxx_lpcmt_ram.h
@@ -0,0 +1,17 @@
+// eCos memory layout - Wed Apr 11 13:49:55 2001
+
+// This is a generated file - do not edit
+
+#ifndef __ASSEMBLER__
+#include <cyg/infra/cyg_type.h>
+#include <stddef.h>
+
+#endif
+#define CYGMEM_REGION_ram (0x40000000)
+#define CYGMEM_REGION_ram_SIZE (0x00010000)
+#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 (0x40010000 - (size_t) CYG_LABEL_NAME (__heap1))
diff --git a/ecos/packages/hal/arm/lpc2xxx/lpcmt/current/include/pkgconf/mlt_arm_lpc2xxx_lpcmt_ram.ldi b/ecos/packages/hal/arm/lpc2xxx/lpcmt/current/include/pkgconf/mlt_arm_lpc2xxx_lpcmt_ram.ldi
new file mode 100644
index 0000000..a4c050e
--- /dev/null
+++ b/ecos/packages/hal/arm/lpc2xxx/lpcmt/current/include/pkgconf/mlt_arm_lpc2xxx_lpcmt_ram.ldi
@@ -0,0 +1,27 @@
+// eCos memory layout - Wed Apr 11 13:49:55 2001
+
+// This is a generated file - do not edit
+
+#include <cyg/infra/cyg_type.inc>
+
+MEMORY
+{
+ ram : ORIGIN = 0x40000000, LENGTH = 0x10000
+}
+
+SECTIONS
+{
+ SECTIONS_BEGIN
+ SECTION_fixed_vectors (ram, 0x40000400, LMA_EQ_VMA)
+ SECTION_rom_vectors (ram, 0x40006000, 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), FOLLOWING(.gcc_except_table))
+ SECTION_bss (ram, ALIGN (0x4), LMA_EQ_VMA)
+ CYG_LABEL_DEFN(__heap1) = ALIGN (0x8);
+ SECTIONS_END
+}
diff --git a/ecos/packages/hal/arm/lpc2xxx/lpcmt/current/include/pkgconf/mlt_arm_lpc2xxx_lpcmt_rom.h b/ecos/packages/hal/arm/lpc2xxx/lpcmt/current/include/pkgconf/mlt_arm_lpc2xxx_lpcmt_rom.h
new file mode 100644
index 0000000..b670924
--- /dev/null
+++ b/ecos/packages/hal/arm/lpc2xxx/lpcmt/current/include/pkgconf/mlt_arm_lpc2xxx_lpcmt_rom.h
@@ -0,0 +1,20 @@
+// eCos memory layout - Wed Apr 11 13:49:55 2001
+
+// This is a generated file - do not edit
+
+#ifndef __ASSEMBLER__
+#include <cyg/infra/cyg_type.h>
+#include <stddef.h>
+
+#endif
+#define CYGMEM_REGION_ram (0x40000000)
+#define CYGMEM_REGION_ram_SIZE (0x00010000)
+#define CYGMEM_REGION_ram_ATTR (CYGMEM_REGION_ATTR_R | CYGMEM_REGION_ATTR_W)
+#define CYGMEM_REGION_rom (0x00000000)
+#define CYGMEM_REGION_rom_SIZE (0x00020000)
+#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 (0x40010000 - (size_t) CYG_LABEL_NAME (__heap1))
diff --git a/ecos/packages/hal/arm/lpc2xxx/lpcmt/current/include/pkgconf/mlt_arm_lpc2xxx_lpcmt_rom.ldi b/ecos/packages/hal/arm/lpc2xxx/lpcmt/current/include/pkgconf/mlt_arm_lpc2xxx_lpcmt_rom.ldi
new file mode 100644
index 0000000..823e0b1
--- /dev/null
+++ b/ecos/packages/hal/arm/lpc2xxx/lpcmt/current/include/pkgconf/mlt_arm_lpc2xxx_lpcmt_rom.ldi
@@ -0,0 +1,28 @@
+// eCos memory layout - Wed Apr 11 13:49:55 2001
+
+// This is a generated file - do not edit
+
+#include <cyg/infra/cyg_type.inc>
+
+MEMORY
+{
+ ram : ORIGIN = 0x40000000, LENGTH = 0x10000
+ rom : ORIGIN = 0x00000000, LENGTH = 0x20000
+}
+
+SECTIONS
+{
+ SECTIONS_BEGIN
+ SECTION_rom_vectors (rom, 0x00000000, LMA_EQ_VMA)
+ SECTION_text (rom, ALIGN (0x1), 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, 0x40000400, LMA_EQ_VMA)
+ SECTION_data (ram, ALIGN(0x4), FOLLOWING(.gcc_except_table))
+ SECTION_bss (ram, ALIGN (0x4), LMA_EQ_VMA)
+ CYG_LABEL_DEFN(__heap1) = ALIGN (0x8);
+ SECTIONS_END
+}
diff --git a/ecos/packages/hal/arm/lpc2xxx/lpcmt/current/include/plf_io.h b/ecos/packages/hal/arm/lpc2xxx/lpcmt/current/include/plf_io.h
new file mode 100644
index 0000000..22a9163
--- /dev/null
+++ b/ecos/packages/hal/arm/lpc2xxx/lpcmt/current/include/plf_io.h
@@ -0,0 +1,59 @@
+#ifndef CYGONCE_HAL_PLF_IO_H
+#define CYGONCE_HAL_PLF_IO_H
+//=============================================================================
+//
+// plf_io.h
+//
+// MCB2100 board specific registers
+//
+//=============================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jani
+// Contributors:
+// Date: 2004-09-12
+// Purpose: Olimex LPCMT board specific registers
+// Description:
+// Usage: #include <cyg/hal/plf_io.h>
+//
+//####DESCRIPTIONEND####
+//
+//=============================================================================
+// On-chip device base addresses
+
+
+//-----------------------------------------------------------------------------
+// end of plf_io.h
+#endif // CYGONCE_HAL_PLF_IO_H
diff --git a/ecos/packages/hal/arm/lpc2xxx/lpcmt/current/src/lpcmt_misc.c b/ecos/packages/hal/arm/lpc2xxx/lpcmt/current/src/lpcmt_misc.c
new file mode 100644
index 0000000..733b5ba
--- /dev/null
+++ b/ecos/packages/hal/arm/lpc2xxx/lpcmt/current/src/lpcmt_misc.c
@@ -0,0 +1,81 @@
+/*==========================================================================
+//
+// lpc_misc.c
+//
+// HAL misc board support code for Olimex LPCMT
+//
+//==========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//==========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jani
+// Contributors:
+// Date: 2004-09-12
+// Purpose: HAL board support
+// Description: Implementations of HAL board interfaces
+//
+//####DESCRIPTIONEND####
+//
+//========================================================================*/
+#include <pkgconf/hal.h>
+#include <cyg/hal/hal_io.h> // IO macros
+
+#include <cyg/infra/cyg_type.h> // base types
+#include <cyg/hal/var_io.h>
+
+extern void cyg_hal_plf_serial_init(void);
+// Low bit of mask determines the on/off status of the LED.
+// 0 means ON and 1 is OFF!
+void hal_lpc2xxx_set_leds(int mask)
+{
+ HAL_WRITE_UINT32(CYGARC_HAL_LPC2XXX_REG_IO_BASE +
+ CYGARC_HAL_LPC2XXX_REG_IOSET, (1<<12));
+ if (mask & 1)
+ HAL_WRITE_UINT32(CYGARC_HAL_LPC2XXX_REG_IO_BASE +
+ CYGARC_HAL_LPC2XXX_REG_IOCLR, (1<<12));
+}
+
+void
+cyg_hal_plf_comms_init(void)
+{
+ static int initialized = 0;
+
+ if (initialized)
+ return;
+ initialized = 1;
+
+ cyg_hal_plf_serial_init();
+}
+//--------------------------------------------------------------------------
+// EOF lpcmt_misc.c
diff --git a/ecos/packages/hal/arm/lpc2xxx/mcb2100/current/ChangeLog b/ecos/packages/hal/arm/lpc2xxx/mcb2100/current/ChangeLog
new file mode 100644
index 0000000..a710847
--- /dev/null
+++ b/ecos/packages/hal/arm/lpc2xxx/mcb2100/current/ChangeLog
@@ -0,0 +1,58 @@
+2009-01-31 Bart Veer <bartv@ecoscentric.com>
+
+ * cdl/hal_arm_lpc2xxx_mcb2100.cdl: update compiler flags for gcc 4.x
+
+2009-01-24 Bart Veer <bartv@ecoscentric.com>
+
+ * cdl/hal_arm_lpc2xxx_mcb2100.cdl: switch from arm-elf-gcc to
+ arm-eabi-gcc. Remove -mno-short-load-words.
+
+2004-11-19 Jani Monoses <jani@iv.ro>
+
+ * cdl/hal_arm_lpc2xxx_mcb2100.cdl:
+ * include/hal_platform_setup.h:
+ Make PLL multiplier value configurable.
+
+2004-11-19 Jani Monoses <jani@iv.ro>
+
+ * include/hal_platform_setup.h:
+ Fix previous fix. LDR needs its operand prefixed with = not #.
+
+2004-11-15 Jani Monoses <jani@iv.ro>
+
+ * include/hal_platform_setup.h:
+ Fix build in THUMB mode by using ldr instead of mov.
+
+2004-09-12 Jani Monoses <jani@iv.ro>
+
+ * cdl/hal_arm_lpc2xxx_mcb2100.cdl:
+ * include/plf_io.h:
+ * include/hal_platform_setup.h:
+ * include/pkgconf/mlt_arm_lpc2xxx_mcb2100_rom.ldi:
+ * include/pkgconf/mlt_arm_lpc2xxx_mcb2100_rom.h:
+ * src/mcb2100_misc.c:
+ New HAL added to support the Keil MCB2100 board.
+
+//===========================================================================
+// ####GPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 2 or (at your option) any
+// later version.
+//
+// This program is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the
+// Free Software Foundation, Inc., 51 Franklin Street,
+// Fifth Floor, Boston, MA 02110-1301, USA.
+// -------------------------------------------
+// ####GPLCOPYRIGHTEND####
+//===========================================================================
diff --git a/ecos/packages/hal/arm/lpc2xxx/mcb2100/current/cdl/hal_arm_lpc2xxx_mcb2100.cdl b/ecos/packages/hal/arm/lpc2xxx/mcb2100/current/cdl/hal_arm_lpc2xxx_mcb2100.cdl
new file mode 100644
index 0000000..03d769b
--- /dev/null
+++ b/ecos/packages/hal/arm/lpc2xxx/mcb2100/current/cdl/hal_arm_lpc2xxx_mcb2100.cdl
@@ -0,0 +1,278 @@
+# ====================================================================
+#
+# hal_arm_lpc2xxx_mcb2100.cdl
+#
+# ARM LPC2XXX MCB2100 HAL package configuration data
+#
+# ====================================================================
+## ####ECOSGPLCOPYRIGHTBEGIN####
+## -------------------------------------------
+## This file is part of eCos, the Embedded Configurable Operating System.
+## Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
+##
+## eCos is free software; you can redistribute it and/or modify it under
+## the terms of the GNU General Public License as published by the Free
+## Software Foundation; either version 2 or (at your option) any later
+## version.
+##
+## eCos is distributed in the hope that it will be useful, but WITHOUT
+## ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+## FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+## for more details.
+##
+## You should have received a copy of the GNU General Public License
+## along with eCos; if not, write to the Free Software Foundation, Inc.,
+## 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+##
+## As a special exception, if other files instantiate templates or use
+## macros or inline functions from this file, or you compile this file
+## and link it with other works to produce a work based on this file,
+## this file does not by itself cause the resulting work to be covered by
+## the GNU General Public License. However the source code for this file
+## must still be made available in accordance with section (3) of the GNU
+## General Public License v2.
+##
+## This exception does not invalidate any other reasons why a work based
+## on this file might be covered by the GNU General Public License.
+## -------------------------------------------
+## ####ECOSGPLCOPYRIGHTEND####
+# ====================================================================
+######DESCRIPTIONBEGIN####
+#
+# Author(s): jani
+# Contributors: gthomas, tkoeller, nickg
+# Date: 2004-10-4
+#
+#####DESCRIPTIONEND####
+#
+# ====================================================================
+
+cdl_package CYGPKG_HAL_ARM_LPC2XXX_MCB2100 {
+ display "Keil MCB2100 eval board HAL"
+ parent CYGPKG_HAL_ARM_LPC2XXX
+ define_header hal_arm_lpc2xxx_mcb2100.h
+ include_dir cyg/hal
+ hardware
+ description "
+ The MCB2100 HAL package provides the support needed to run
+ eCos on an Keil MCB2100 eval board."
+
+ compile mcb2100_misc.c
+
+ requires { CYGHWR_HAL_ARM_LPC2XXX == "LPC2129" }
+
+ 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_lpc2xxx.h>"
+ puts $::cdl_system_header "#define CYGBLD_HAL_PLATFORM_H <pkgconf/hal_arm_lpc2xxx_mcb2100.h>"
+ puts $::cdl_system_header "#define CYGBLD_HAL_ARM_VAR_IO_H"
+ puts $::cdl_header "#define HAL_PLATFORM_CPU \"ARM7TDMI-S\""
+ puts $::cdl_header "#define HAL_PLATFORM_BOARD \"Keil LPC2XXX/MCB2100\""
+ puts $::cdl_header "#define HAL_PLATFORM_EXTRA \"\""
+ }
+
+ cdl_component CYG_HAL_STARTUP {
+ display "Startup type"
+ flavor data
+ default_value {"ROM"}
+ legal_values {"ROM"}
+ no_define
+ define -file system.h CYG_HAL_STARTUP
+ description "
+ Only ROM startup allowed because of limited amount of RAM."
+ }
+
+ 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"
+ active_if CYGPRI_HAL_VIRTUAL_VECTOR_DEBUG_CHANNEL_CONFIGURABLE
+ flavor data
+ legal_values 0 to CYGNUM_HAL_VIRTUAL_VECTOR_COMM_CHANNELS-1
+ default_value 0
+ description "
+ The MCB2100 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"
+ active_if CYGPRI_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_CONFIGURABLE
+ flavor data
+ legal_values 0 to CYGNUM_HAL_VIRTUAL_VECTOR_COMM_CHANNELS-1
+ default_value 0
+ description "
+ The MCB2100 board has two serial ports. This option
+ chooses which port will be used for diagnostic output."
+ }
+
+ cdl_option CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_BAUD {
+ display "Diagnostic serial port baud rate"
+ flavor data
+ legal_values 9600 19200 38400 57600 115200
+ default_value 38400
+ description "
+ This option selects the baud rate used for the diagnostic port."
+ }
+
+ cdl_option CYGNUM_HAL_VIRTUAL_VECTOR_DEBUG_CHANNEL_BAUD {
+ display "GDB serial port baud rate"
+ flavor data
+ legal_values 9600 19200 38400 57600 115200
+ default_value 38400
+ description "
+ This option controls the baud rate used for the GDB connection."
+ }
+
+ # Real-time clock/counter specifics
+ cdl_option CYGNUM_HAL_ARM_LPC2XXX_XTAL_FREQ {
+ display "CPU clock speed"
+ flavor data
+ default_value {12000000}
+ }
+
+ cdl_option CYGNUM_HAL_ARM_LPC2XXX_PLL_MUL {
+ display "CPU clock speed"
+ flavor data
+ default_value {5}
+ }
+
+ cdl_option CYGNUM_HAL_ARM_LPC2XXX_CLOCK_SPEED {
+ display "CPU clock speed"
+ flavor data
+ calculated { CYGNUM_HAL_ARM_LPC2XXX_PLL_MUL * CYGNUM_HAL_ARM_LPC2XXX_XTAL_FREQ }
+ }
+
+ 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 { "arm-eabi"}
+ 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 { CYGBLD_GLOBAL_WARNFLAGS . CYGBLD_ARCH_CFLAGS .
+ "-mcpu=arm7tdmi -g -O2 -ffunction-sections -fdata-sections -fno-rtti -fno-exceptions " }
+ 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 { CYGBLD_ARCH_LDFLAGS . "-mcpu=arm7tdmi -Wl,--gc-sections -Wl,-static -g -nostdlib" }
+ description "
+ This option controls the global linker flags. Individual
+ packages may define options which override these global flags."
+ }
+ }
+
+ 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" || CYG_HAL_STARTUP == "ROMRAM" }
+ 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 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_REDBOOT_HAL_OPTIONS {
+ display "Redboot HAL options"
+ flavor none
+ no_define
+ parent CYGPKG_REDBOOT
+ active_if CYGPKG_REDBOOT
+ description "
+ This option lists the target's requirements for a valid Redboot
+ configuration."
+
+ 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 $< $@
+ }
+
+ }
+ }
+
+ cdl_component CYGHWR_MEMORY_LAYOUT {
+ display "Memory layout"
+ flavor data
+ no_define
+ calculated { "arm_lpc2xxx_mcb2100_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 { "<pkgconf/mlt_arm_lpc2xxx_mcb2100_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 { "<pkgconf/mlt_arm_lpc2xxx_mcb2100_rom.h>" }
+ }
+ }
+}
diff --git a/ecos/packages/hal/arm/lpc2xxx/mcb2100/current/include/hal_platform_setup.h b/ecos/packages/hal/arm/lpc2xxx/mcb2100/current/include/hal_platform_setup.h
new file mode 100644
index 0000000..1c4d12a
--- /dev/null
+++ b/ecos/packages/hal/arm/lpc2xxx/mcb2100/current/include/hal_platform_setup.h
@@ -0,0 +1,162 @@
+#ifndef CYGONCE_HAL_PLATFORM_SETUP_H
+#define CYGONCE_HAL_PLATFORM_SETUP_H
+
+/*=============================================================================
+//
+// hal_platform_setup.h
+//
+// Platform specific support for HAL (assembly code)
+//
+//=============================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jani
+// Contributors:
+// Date: 2004-09-12
+// Purpose: LPC2XXX/MCB2100 platform specific support routines
+// Description:
+// Usage: #include <cyg/hal/hal_platform_setup.h>
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================*/
+
+#include <pkgconf/system.h>
+#include <cyg/hal/var_io.h>
+
+//===========================================================================*/
+
+ .macro _led_init
+ ldr r0,=CYGARC_HAL_LPC2XXX_REG_IO_BASE
+ ldr r1,=0x00FF0000 //GPIO1 pins 16..23 outputs
+ str r1,[r0,#CYGARC_HAL_LPC2XXX_REG_IO1DIR]
+ .endm
+
+ .macro _led x
+ ldr r0,=CYGARC_HAL_LPC2XXX_REG_IO_BASE
+ ldr r1,=0x00FF0000
+ str r1,[r0,#CYGARC_HAL_LPC2XXX_REG_IO1CLR]
+ ldr r1,=(\x<<16)
+ str r1,[r0,#CYGARC_HAL_LPC2XXX_REG_IO1SET]
+ .endm
+
+ .macro _pll_init
+ ldr r0,=CYGARC_HAL_LPC2XXX_REG_SCB_BASE
+
+ mov r2,#0xAA
+ mov r3,#0x55
+
+ mov r1,#1 // enable PLL
+ str r1,[r0,#CYGARC_HAL_LPC2XXX_REG_PLLCON]
+
+ mov r1,#(0x20 | (CYGNUM_HAL_ARM_LPC2XXX_PLL_MUL - 1))
+ str r1,[r0,#CYGARC_HAL_LPC2XXX_REG_PLLCFG]
+
+ str r2,[r0,#CYGARC_HAL_LPC2XXX_REG_PLLFEED] // update PLL registers
+ str r3,[r0,#CYGARC_HAL_LPC2XXX_REG_PLLFEED]
+
+1:
+ ldr r1,[r0,#CYGARC_HAL_LPC2XXX_REG_PLLSTAT] // wait for it to lock
+ ands r1,r1,#(1<<10)
+ beq 1b
+
+ mov r1,#3 // connect PLL
+ str r1,[r0,#CYGARC_HAL_LPC2XXX_REG_PLLCON]
+
+ str r2,[r0,#CYGARC_HAL_LPC2XXX_REG_PLLFEED] // update PLL registers
+ str r3,[r0,#CYGARC_HAL_LPC2XXX_REG_PLLFEED]
+
+ .endm
+
+ .macro _mem_init
+ mov r0,#0 // copy first 64 bytes of flash to RAM
+ mov r1,#0x40000000
+ mov r2,#0x40
+1:
+ ldr r3,[r0,#4]!
+ str r3,[r1,#4]!
+ cmps r0,r2
+ bne 1b
+
+ ldr r0,=CYGARC_HAL_LPC2XXX_REG_SCB_BASE
+ mov r1,#2
+ // interrupt vector table is mapped to flash (1) or RAM(2)
+ str r1, [r0,#CYGARC_HAL_LPC2XXX_REG_MEMMAP]
+ mov r1,#4
+ str r1,[r0,#CYGARC_HAL_LPC2XXX_REG_MAMTIM] // flash timings
+ mov r1,#2
+ str r1,[r0,#CYGARC_HAL_LPC2XXX_REG_MAMCR] // enable full MAM
+ .endm
+
+ .macro _gpio_init
+ //enable RX and TX on both UARTs, EINT1
+ ldr r0,=CYGARC_HAL_LPC2XXX_REG_PIN_BASE
+ ldr r1,=0x20050005
+ str r1,[r0,#CYGARC_HAL_LPC2XXX_REG_PINSEL0]
+ .endm
+
+#define CYGHWR_LED_MACRO _led \x
+
+//===========================================================================*/
+
+#if defined(CYG_HAL_STARTUP_ROM)
+
+
+ .macro _setup
+
+ _pll_init
+
+ _mem_init
+
+ _gpio_init
+
+ _led_init
+
+ .endm
+
+#define CYGSEM_HAL_ROM_RESET_USES_JUMP
+
+#else
+
+ .macro _setup
+ .endm
+
+#endif
+
+#define PLATFORM_SETUP1 _setup
+
+//-----------------------------------------------------------------------------
+// end of hal_platform_setup.h
+#endif // CYGONCE_HAL_PLATFORM_SETUP_H
diff --git a/ecos/packages/hal/arm/lpc2xxx/mcb2100/current/include/pkgconf/mlt_arm_lpc2xxx_mcb2100_rom.h b/ecos/packages/hal/arm/lpc2xxx/mcb2100/current/include/pkgconf/mlt_arm_lpc2xxx_mcb2100_rom.h
new file mode 100644
index 0000000..2e5c91d
--- /dev/null
+++ b/ecos/packages/hal/arm/lpc2xxx/mcb2100/current/include/pkgconf/mlt_arm_lpc2xxx_mcb2100_rom.h
@@ -0,0 +1,20 @@
+// eCos memory layout - Wed Apr 11 13:49:55 2001
+
+// This is a generated file - do not edit
+
+#ifndef __ASSEMBLER__
+#include <cyg/infra/cyg_type.h>
+#include <stddef.h>
+
+#endif
+#define CYGMEM_REGION_ram (0x40000000)
+#define CYGMEM_REGION_ram_SIZE (0x00004000)
+#define CYGMEM_REGION_ram_ATTR (CYGMEM_REGION_ATTR_R | CYGMEM_REGION_ATTR_W)
+#define CYGMEM_REGION_rom (0x00000000)
+#define CYGMEM_REGION_rom_SIZE (0x00040000)
+#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 (0x40004000 - (size_t) CYG_LABEL_NAME (__heap1))
diff --git a/ecos/packages/hal/arm/lpc2xxx/mcb2100/current/include/pkgconf/mlt_arm_lpc2xxx_mcb2100_rom.ldi b/ecos/packages/hal/arm/lpc2xxx/mcb2100/current/include/pkgconf/mlt_arm_lpc2xxx_mcb2100_rom.ldi
new file mode 100644
index 0000000..6a30021
--- /dev/null
+++ b/ecos/packages/hal/arm/lpc2xxx/mcb2100/current/include/pkgconf/mlt_arm_lpc2xxx_mcb2100_rom.ldi
@@ -0,0 +1,28 @@
+// eCos memory layout - Wed Apr 11 13:49:55 2001
+
+// This is a generated file - do not edit
+
+#include <cyg/infra/cyg_type.inc>
+
+MEMORY
+{
+ ram : ORIGIN = 0x40000000, LENGTH = 0x4000
+ rom : ORIGIN = 0x00000000, LENGTH = 0x40000
+}
+
+SECTIONS
+{
+ SECTIONS_BEGIN
+ SECTION_rom_vectors (rom, 0x00000000, LMA_EQ_VMA)
+ SECTION_text (rom, ALIGN (0x1), 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, 0x40000400, LMA_EQ_VMA)
+ SECTION_data (ram, ALIGN(0x4), FOLLOWING(.gcc_except_table))
+ SECTION_bss (ram, ALIGN (0x4), LMA_EQ_VMA)
+ CYG_LABEL_DEFN(__heap1) = ALIGN (0x8);
+ SECTIONS_END
+}
diff --git a/ecos/packages/hal/arm/lpc2xxx/mcb2100/current/include/plf_io.h b/ecos/packages/hal/arm/lpc2xxx/mcb2100/current/include/plf_io.h
new file mode 100644
index 0000000..cf500c9
--- /dev/null
+++ b/ecos/packages/hal/arm/lpc2xxx/mcb2100/current/include/plf_io.h
@@ -0,0 +1,59 @@
+#ifndef CYGONCE_HAL_PLF_IO_H
+#define CYGONCE_HAL_PLF_IO_H
+//=============================================================================
+//
+// plf_io.h
+//
+// MCB2100 board specific registers
+//
+//=============================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jani
+// Contributors:
+// Date: 2004-09-12
+// Purpose: Keil MCB2100 board specific registers
+// Description:
+// Usage: #include <cyg/hal/plf_io.h>
+//
+//####DESCRIPTIONEND####
+//
+//=============================================================================
+// On-chip device base addresses
+
+
+//-----------------------------------------------------------------------------
+// end of plf_io.h
+#endif // CYGONCE_HAL_PLF_IO_H
diff --git a/ecos/packages/hal/arm/lpc2xxx/mcb2100/current/src/mcb2100_misc.c b/ecos/packages/hal/arm/lpc2xxx/mcb2100/current/src/mcb2100_misc.c
new file mode 100644
index 0000000..3b8050d
--- /dev/null
+++ b/ecos/packages/hal/arm/lpc2xxx/mcb2100/current/src/mcb2100_misc.c
@@ -0,0 +1,79 @@
+/*==========================================================================
+//
+// lpc_misc.c
+//
+// HAL misc board support code for Keil MCB2100
+//
+//==========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//==========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jani
+// Contributors:
+// Date: 2004-09-12
+// Purpose: HAL board support
+// Description: Implementations of HAL board interfaces
+//
+//####DESCRIPTIONEND####
+//
+//========================================================================*/
+#include <pkgconf/hal.h>
+#include <cyg/hal/hal_io.h> // IO macros
+
+#include <cyg/infra/cyg_type.h> // base types
+#include <cyg/hal/var_io.h>
+
+extern void cyg_hal_plf_serial_init(void);
+//Display the low byte of mask on the 8 leds of the MCB21000 board
+void hal_lpc2xxx_set_leds(int mask)
+{
+ HAL_WRITE_UINT32(CYGARC_HAL_LPC2XXX_REG_IO_BASE +
+ CYGARC_HAL_LPC2XXX_REG_IO1CLR, 0x00FF0000);
+ HAL_WRITE_UINT32(CYGARC_HAL_LPC2XXX_REG_IO_BASE +
+ CYGARC_HAL_LPC2XXX_REG_IO1SET, (mask & 0xFF) << 16);
+}
+
+void
+cyg_hal_plf_comms_init(void)
+{
+ static int initialized = 0;
+
+ if (initialized)
+ return;
+ initialized = 1;
+
+ cyg_hal_plf_serial_init();
+}
+//--------------------------------------------------------------------------
+// EOF mcb2100_misc.c
diff --git a/ecos/packages/hal/arm/lpc2xxx/olpce2294/current/ChangeLog b/ecos/packages/hal/arm/lpc2xxx/olpce2294/current/ChangeLog
new file mode 100644
index 0000000..05f0869
--- /dev/null
+++ b/ecos/packages/hal/arm/lpc2xxx/olpce2294/current/ChangeLog
@@ -0,0 +1,71 @@
+2013-05-13 Uwe Kindler <uwe_kindler@web.de>
+
+ * cdl/hal_arm_lpc2xxx_olpce2294.cdl: Add support for all 4 CAN
+ interfaces.
+
+2012-03-07 Sergei Gavrikov <sergei.gavrikov@gmail.com>
+
+ * include/hal_platform_setup.h: Fix assembler warning (s suffix on
+ comparison instruction is deprecated), s/cmps/cmp/.
+
+2009-02-02 Sergei Gavrikov <sergei.gavrikov@gmail.com>
+
+ * cdl/hal_arm_lpc2xxx_olpce2294.cdl: Expanded a list the legal baud
+ rates for both diagnostic and debug channels (upon 230400 bps).
+ * include/hal_platform_setup.h, include/plf_io.h: Extra tabs expanded.
+ * include/hal_platform_setup.h: Fixed a comment about JTAG pinouts.
+
+2009-01-31 Bart Veer <bartv@ecoscentric.com>
+
+ * cdl/hal_arm_lpc2xxx_olpce2294.cdl: update compiler flags for gcc 4.x
+
+2008-12-03 Sergei Gavrikov <sergei.gavrikov@gmail.com>
+
+ * misc/redboot_*.ecm: Rebuilt since target uses flash_olpcx2294_v2
+ driver.
+
+2008-11-23 Sergei Gavrikov <sergei.gavrikov@gmail.com>
+
+ * include/plf_io.h: Useless and not-portable IO macros removed.
+ * src/olpce2294_misc.c: LCD driver reworked with a use eCos I/O
+ macros.
+
+2008-08-31 Sergei Gavrikov <sergei.gavrikov@gmail.com>
+
+ * LPC-E2294 development board package
+ * cdl/hal_arm_lpc2xxx_olpce2294.cdl
+ * include/hal_platform_setup.h
+ * include/pkgconf/mlt_arm_lpc2xxx_olpce2294_ram.h
+ * include/pkgconf/mlt_arm_lpc2xxx_olpce2294_ram.ldi
+ * include/pkgconf/mlt_arm_lpc2xxx_olpce2294_rom.h
+ * include/pkgconf/mlt_arm_lpc2xxx_olpce2294_rom.ldi
+ * include/plf_io.h
+ * misc/redboot_ROM.ecm
+ * src/btn_drv.c
+ * src/olpce2294_misc.c
+ * src/redboot_cmds.c
+
+//===========================================================================
+// ####GPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 2008 Free Software Foundation, Inc.
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 2 or (at your option) any
+// later version.
+//
+// This program is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the
+// Free Software Foundation, Inc., 51 Franklin Street,
+// Fifth Floor, Boston, MA 02110-1301, USA.
+// -------------------------------------------
+// ####GPLCOPYRIGHTEND####
+//===========================================================================
+
diff --git a/ecos/packages/hal/arm/lpc2xxx/olpce2294/current/cdl/hal_arm_lpc2xxx_olpce2294.cdl b/ecos/packages/hal/arm/lpc2xxx/olpce2294/current/cdl/hal_arm_lpc2xxx_olpce2294.cdl
new file mode 100644
index 0000000..76fdbfa
--- /dev/null
+++ b/ecos/packages/hal/arm/lpc2xxx/olpce2294/current/cdl/hal_arm_lpc2xxx_olpce2294.cdl
@@ -0,0 +1,306 @@
+# ====================================================================
+#
+# hal_arm_lpc2xxx_olpce2294.cdl
+#
+# ARM LPC2XXX OLPCE2294 development board package configuration
+# data
+#
+# ====================================================================
+## ####ECOSGPLCOPYRIGHTBEGIN####
+## -------------------------------------------
+## This file is part of eCos, the Embedded Configurable Operating System.
+## Copyright (C) 1998, 1999, 2000, 2001, 2002, 2008 Free Software Foundation, Inc.
+##
+## eCos is free software; you can redistribute it and/or modify it under
+## the terms of the GNU General Public License as published by the Free
+## Software Foundation; either version 2 or (at your option) any later
+## version.
+##
+## eCos is distributed in the hope that it will be useful, but WITHOUT
+## ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+## FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+## for more details.
+##
+## You should have received a copy of the GNU General Public License
+## along with eCos; if not, write to the Free Software Foundation, Inc.,
+## 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+##
+## As a special exception, if other files instantiate templates or use
+## macros or inline functions from this file, or you compile this file
+## and link it with other works to produce a work based on this file,
+## this file does not by itself cause the resulting work to be covered by
+## the GNU General Public License. However the source code for this file
+## must still be made available in accordance with section (3) of the GNU
+## General Public License v2.
+##
+## This exception does not invalidate any other reasons why a work based
+## on this file might be covered by the GNU General Public License.
+## -------------------------------------------
+## ####ECOSGPLCOPYRIGHTEND####
+# ====================================================================
+######DESCRIPTIONBEGIN####
+#
+# Author(s): Sergei Gavrikov
+# Contributors: Sergei Gavrikov
+# Date: 2008-08-31
+#
+#####DESCRIPTIONEND####
+#
+# ====================================================================
+
+cdl_package CYGPKG_HAL_ARM_LPC2XXX_OLPCE2294 {
+ display "Olimex LPC-E2294 development board HAL"
+ parent CYGPKG_HAL_ARM_LPC2XXX
+ define_header hal_arm_lpc2xxx_olpce2294.h
+ include_dir cyg/hal
+ hardware
+ implements CYGINT_DEVS_CAN_LPC2XXX_CAN0
+ implements CYGINT_DEVS_CAN_LPC2XXX_CAN1
+ implements CYGINT_DEVS_CAN_LPC2XXX_CAN2
+ implements CYGINT_DEVS_CAN_LPC2XXX_CAN3
+ description "
+ The OLPCE2294 HAL package provides the support needed to run
+ eCos on Olimex LPC-E2294 development board."
+
+ compile olpce2294_misc.c
+
+ requires { CYGHWR_HAL_ARM_LPC2XXX == "LPC2294" }
+
+ 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_lpc2xxx.h>"
+ puts $::cdl_system_header "#define CYGBLD_HAL_PLATFORM_H <pkgconf/hal_arm_lpc2xxx_olpce2294.h>"
+ puts $::cdl_header "#define HAL_PLATFORM_CPU \"ARM7TDMI-S\""
+ puts $::cdl_header "#define HAL_PLATFORM_BOARD \"Olimex LPC-E2294 development board\""
+ 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 "Choose RAM or ROM startup type."
+ }
+
+ cdl_option CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_DEFAULT {
+ display "Default console channel."
+ flavor data
+ calculated 0
+ }
+
+ cdl_option CYGNUM_HAL_VIRTUAL_VECTOR_COMM_CHANNELS {
+ display "Number of communication channels on the board"
+ flavor data
+ calculated 3
+ description "
+ Channel 0: UART0, Channel 1: UART1, Channel 2: LCD."
+ }
+
+ cdl_option CYGNUM_HAL_VIRTUAL_VECTOR_DEBUG_CHANNEL {
+ display "Debug serial port"
+ active_if CYGPRI_HAL_VIRTUAL_VECTOR_DEBUG_CHANNEL_CONFIGURABLE
+ flavor data
+ legal_values 0 to 1
+ default_value 0
+ description "
+ Olimex LPC-E2294 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"
+ active_if CYGPRI_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_CONFIGURABLE
+ flavor data
+ legal_values 0 to CYGNUM_HAL_VIRTUAL_VECTOR_COMM_CHANNELS-1
+ default_value CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_DEFAULT
+ description "
+ Olimex LPC-E2294 board has two serial ports and a LCD. This
+ option chooses which port will be used for diagnostic
+ output."
+ }
+
+ cdl_option CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_BAUD {
+ display "Diagnostic serial port baud rate"
+ flavor data
+ legal_values 9600 19200 38400 57600 115200 230400
+ default_value 38400
+ description "
+ This option selects the baud rate used for the diagnostic
+ port."
+ }
+
+ cdl_option CYGNUM_HAL_VIRTUAL_VECTOR_DEBUG_CHANNEL_BAUD {
+ display "GDB serial port baud rate"
+ flavor data
+ legal_values 9600 19200 38400 57600 115200 230400
+ default_value 38400
+ description "
+ This option controls the baud rate used for the GDB
+ connection."
+ }
+
+ # Real-time clock/counter specifics
+ cdl_option CYGNUM_HAL_ARM_LPC2XXX_XTAL_FREQ {
+ display "CPU xtal frequency"
+ flavor data
+ default_value {14745600}
+ }
+
+ cdl_option CYGNUM_HAL_ARM_LPC2XXX_PLL_MUL {
+ display "CPU PLL multiplier"
+ flavor data
+ default_value {4}
+ }
+
+ cdl_option CYGNUM_HAL_ARM_LPC2XXX_CLOCK_SPEED {
+ display "CPU clock speed"
+ flavor data
+ calculated { CYGNUM_HAL_ARM_LPC2XXX_PLL_MUL *
+ CYGNUM_HAL_ARM_LPC2XXX_XTAL_FREQ }
+ }
+
+ 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 { "arm-eabi" }
+ 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 { CYGBLD_GLOBAL_WARNFLAGS . CYGBLD_ARCH_CFLAGS .
+ "-mcpu=arm7tdmi -g -O2 -ffunction-sections -fdata-sections -fno-rtti -fno-exceptions" }
+ 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 { CYGBLD_ARCH_LDFLAGS . "-mcpu=arm7tdmi -Wl,--gc-sections -Wl,-static -g -nostdlib" }
+ description "
+ This option controls the global linker flags. Individual
+ packages may define options which override these global
+ flags."
+ }
+ }
+
+ 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 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_REDBOOT_HAL_OPTIONS {
+ display "Redboot HAL options"
+ flavor none
+ no_define
+ parent CYGPKG_REDBOOT
+ active_if CYGPKG_REDBOOT
+ description "
+ This option lists the target's requirements for a valid
+ Redboot configuration."
+
+ cdl_option CYGBLD_BUILD_REDBOOT_BIN {
+ display "Build Redboot ROM binary image"
+ active_if CYGBLD_BUILD_REDBOOT
+ requires { !CYGBLD_BUILD_REDBOOT_WITH_EXEC }
+ default_value 1
+ no_define
+ description "
+ This option enables the conversion of the Redboot ELF
+ image to a binary image suitable for ROM programming."
+
+ compile -library=libextras.a redboot_cmds.c
+
+ make -priority 325 {
+ <PREFIX>/bin/redboot.bin : <PREFIX>/bin/redboot.elf
+ $(OBJCOPY) --strip-debug $< $(@:.bin=.img)
+ $(OBJCOPY) -O srec $< $(@:.bin=.srec)
+ $(OBJCOPY) -O ihex $< $(@:.bin=.hex)
+ $(OBJCOPY) -O binary $< $@
+ }
+
+ }
+ }
+
+ cdl_component CYGHWR_MEMORY_LAYOUT {
+ display "Memory layout"
+ flavor data
+ no_define
+ calculated { (CYG_HAL_STARTUP == "RAM") ? "arm_lpc2xxx_olpce2294_ram" :
+ "arm_lpc2xxx_olpce2294_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_lpc2xxx_olpce2294_ram.ldi>" :
+ "<pkgconf/mlt_arm_lpc2xxx_olpce2294_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_lpc2xxx_olpce2294_ram.h>" :
+ "<pkgconf/mlt_arm_lpc2xxx_olpce2294_rom.h>" }
+ }
+ }
+}
+
diff --git a/ecos/packages/hal/arm/lpc2xxx/olpce2294/current/include/hal_platform_setup.h b/ecos/packages/hal/arm/lpc2xxx/olpce2294/current/include/hal_platform_setup.h
new file mode 100644
index 0000000..324d6c2
--- /dev/null
+++ b/ecos/packages/hal/arm/lpc2xxx/olpce2294/current/include/hal_platform_setup.h
@@ -0,0 +1,231 @@
+#ifndef CYGONCE_HAL_PLATFORM_SETUP_H
+#define CYGONCE_HAL_PLATFORM_SETUP_H
+/*=============================================================================
+//
+// hal_platform_setup.h
+//
+// Platform specific support for HAL (assembly code)
+//
+//=============================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002, 2008 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): Sergei Gavrikov
+// Contributors: Sergei Gavrikov
+// Date: 2008-08-31
+// Purpose: Olimex LPC-E2294 platform specific support routines
+// Description:
+// Usage: #include <cyg/hal/hal_platform_setup.h>
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================*/
+
+#include <pkgconf/system.h>
+#include <cyg/hal/var_io.h>
+
+ // There are no diagnostic leds on the board, but there is a LCD there
+ // with BACKLIGHT feature. No way to display some info on LCD here, but
+ // we can drive by BACKLIGHT put to a cathode a static signal.
+
+ .macro _led_init
+ ldr r0,=CYGARC_HAL_LPC2XXX_REG_IO_BASE
+ ldr r1,[r0,#CYGARC_HAL_LPC2XXX_REG_IO0DIR]
+ orr r1,r1,#(1<<10)
+ str r1,[r0,#CYGARC_HAL_LPC2XXX_REG_IO0DIR]
+
+ .endm // _led_init
+
+ .macro _led x
+ ldr r0,=CYGARC_HAL_LPC2XXX_REG_IO_BASE
+ ldr r1,=(1<<10)
+ str r1,[r0,#CYGARC_HAL_LPC2XXX_REG_IO0CLR]
+ ldr r1,=((\x & 1)<<10)
+ str r1,[r0,#CYGARC_HAL_LPC2XXX_REG_IO0SET]
+
+ .endm // _led
+
+ .macro _pll_init
+ ldr r0,=CYGARC_HAL_LPC2XXX_REG_SCB_BASE
+
+ mov r2,#0xAA
+ mov r3,#0x55
+
+ // enable PLL
+ mov r1,#1
+ str r1,[r0,#CYGARC_HAL_LPC2XXX_REG_PLLCON]
+
+ mov r1,#(0x20 | (CYGNUM_HAL_ARM_LPC2XXX_PLL_MUL - 1))
+ str r1,[r0,#CYGARC_HAL_LPC2XXX_REG_PLLCFG]
+
+ // update PLL registers
+ str r2,[r0,#CYGARC_HAL_LPC2XXX_REG_PLLFEED]
+ str r3,[r0,#CYGARC_HAL_LPC2XXX_REG_PLLFEED]
+
+ // wait for it to lock
+1:
+ ldr r1,[r0,#CYGARC_HAL_LPC2XXX_REG_PLLSTAT]
+ ands r1,r1,#(1<<10)
+ beq 1b
+
+ // connect PLL
+ mov r1,#3
+ str r1,[r0,#CYGARC_HAL_LPC2XXX_REG_PLLCON]
+
+ // update PLL registers
+ str r2,[r0,#CYGARC_HAL_LPC2XXX_REG_PLLFEED]
+ str r3,[r0,#CYGARC_HAL_LPC2XXX_REG_PLLFEED]
+
+ .endm // _pll_init
+
+ .macro _mem_init
+ // copy first 64 bytes from ROM to on-chip RAM
+ mov r0,#0
+ mov r1,#0x40000000
+ mov r2,#0x40
+1:
+ ldr r3,[r0,#4]!
+ str r3,[r1,#4]!
+ cmp r0,r2
+ bne 1b
+
+ ldr r0,=CYGARC_HAL_LPC2XXX_REG_SCB_BASE
+ mov r1,#2 // interrupt vector table is mapped to RAM
+ str r1, [r0,#CYGARC_HAL_LPC2XXX_REG_MEMMAP]
+
+ // flash timings
+ mov r1,#4
+ str r1,[r0,#CYGARC_HAL_LPC2XXX_REG_MAMTIM]
+ mov r1,#2 // 2, full MAM
+ str r1,[r0,#CYGARC_HAL_LPC2XXX_REG_MAMCR]
+
+ // External memory interface depends on the bank width (32, 16 or 8 bit
+ // selected via MW bits in corresponding BCFG register). Furthermore,
+ // choice of the memory chip(s) will require an adequate setup of RBLE
+ // bit in BCFG register, too. RBLE = 0 in case of 8-bit based external
+ // memories, while memory chips capable of accepting 16 or 32 bit wide
+ // data will work with RBLE = 1.
+ //
+ // BANK0: 4M FLASH
+ // TE28F320C3BD70 (1024Kx32 x 1, 70nS)
+ ldr r0,=CYGARC_HAL_LPC2XXX_REG_BCFG0
+ ldr r1,= (0x3 << 0) /* IDCY=3, idle timing */\
+ | (0x4 << 5) /* WST1=4, read timing */\
+ | (0x1 << 10) /* RBLE=1 */\
+ | (0x6 << 11) /* WST2=6, write timing */\
+ | (0x1 << 28) /* MW=1, 16-bits */
+ str r1,[r0]
+
+ // BANK1: 1M RAM
+ // K6R4016V1D (512Kx16 x 2, 10nS)
+ ldr r0,=CYGARC_HAL_LPC2XXX_REG_BCFG1
+ // Warning: changed these timings, you can fall dramatically the eCos
+ // kernel performance. Check it then using the eCos 'tm_basic' test.
+ ldr r1,= (0x0 << 0) /* IDCY=0, idle cycles */\
+ | (0x0 << 5) /* WST1=0, read timing */\
+ | (0x1 << 10) /* RBLE=1 */\
+ | (0x0 << 11) /* WST2=0, write timing */\
+ | (0x2 << 28) /* MW=2, 32-bits */
+ str r1,[r0]
+
+ // BANK2: Ethernet
+ // CS8900A (8-bit, no interrupt driven mode)
+ ldr r0,=CYGARC_HAL_LPC2XXX_REG_BCFG2
+ ldr r1,= (0x1 << 0) /* IDCY=1, idle cycles */\
+ | (0x8 << 5) /* WST1=8, read timing */\
+ | (0x1 << 10) /* RBLE=1 */\
+ | (0x6 << 11) /* WST2=6, write timing */\
+ | (0x0 << 28) /* MW=0, 8-bits */
+ str r1,[r0]
+
+ .endm // _mem_init
+
+ .macro _gpio_init
+ ldr r0,=CYGARC_HAL_LPC2XXX_REG_PIN_BASE
+
+ // Configure P0.15:0 as PIO, but UART0, UART1, EINT2 ('B1' button)
+ ldr r1,= (0x1 << 0) /* P0.0 as TxD0 */\
+ | (0x1 << 2) /* P0.1 as RxD0 */\
+ | (0x1 << 16) /* P0.1 as TxD1 */\
+ | (0x1 << 18) /* P0.1 as RxD1 */\
+ | (0x2 << 30) /* P0.15 as EINT2 */
+ str r1,[r0,#CYGARC_HAL_LPC2XXX_REG_PINSEL0]
+
+ // Configure P0.30:16 as PIO, but EINT0 ('B2' button)
+ ldr r1,= (0x1 << 0) /* P0.16 as EINT0 */
+ str r1,[r0,#CYGARC_HAL_LPC2XXX_REG_PINSEL1]
+
+ // GPIO P1.25:16, P3.24 are used as PIO
+ ldr r1,= (0x1 << 2) /* P1.31:26 Debug port */\
+ | (0x2 << 4) /* D31:0,CS0,OE,BLS0-3 */\
+ | (0x1 << 8) /* WE enabled */\
+ | (0x1 << 11) /* CS1 enabled */\
+ | (0x1 << 14) /* CS2 enabled */\
+ | (0x1 << 23) /* A0 enabled */\
+ | (0x1 << 24) /* A1 enabled */\
+ | (0x7 << 25) /* A23:2 enabled */
+ str r1,[r0,#CYGARC_HAL_LPC2XXX_REG_PINSEL2]
+
+ .endm // _gpio_init
+
+#define CYGHWR_LED_MACRO _led \x
+
+#if defined(CYG_HAL_STARTUP_ROM)
+
+ .macro _setup
+
+ _pll_init
+
+ _mem_init
+
+ _gpio_init
+
+ _led_init
+
+ .endm
+
+#define CYGSEM_HAL_ROM_RESET_USES_JUMP
+
+#else
+
+ .macro _setup
+
+ .endm
+
+#endif // CYG_HAL_STARTUP_ROM
+
+#define PLATFORM_SETUP1 _setup
+
+#endif // CYGONCE_HAL_PLATFORM_SETUP_H
+
diff --git a/ecos/packages/hal/arm/lpc2xxx/olpce2294/current/include/pkgconf/mlt_arm_lpc2xxx_olpce2294_ram.h b/ecos/packages/hal/arm/lpc2xxx/olpce2294/current/include/pkgconf/mlt_arm_lpc2xxx_olpce2294_ram.h
new file mode 100644
index 0000000..4c7100c
--- /dev/null
+++ b/ecos/packages/hal/arm/lpc2xxx/olpce2294/current/include/pkgconf/mlt_arm_lpc2xxx_olpce2294_ram.h
@@ -0,0 +1,19 @@
+#ifndef __ASSEMBLER__
+#include <cyg/infra/cyg_type.h>
+#include <stddef.h>
+
+#endif
+
+#define CYGMEM_REGION_ram (0x81000000)
+#define CYGMEM_REGION_ram_SIZE (0x00100000)
+#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 (0x81100000 - (size_t) CYG_LABEL_NAME (__heap1))
+
diff --git a/ecos/packages/hal/arm/lpc2xxx/olpce2294/current/include/pkgconf/mlt_arm_lpc2xxx_olpce2294_ram.ldi b/ecos/packages/hal/arm/lpc2xxx/olpce2294/current/include/pkgconf/mlt_arm_lpc2xxx_olpce2294_ram.ldi
new file mode 100644
index 0000000..b5cc243
--- /dev/null
+++ b/ecos/packages/hal/arm/lpc2xxx/olpce2294/current/include/pkgconf/mlt_arm_lpc2xxx_olpce2294_ram.ldi
@@ -0,0 +1,25 @@
+#include <cyg/infra/cyg_type.inc>
+
+MEMORY
+{
+ ram0 : ORIGIN = 0x40000000, LENGTH = 0x4000
+ ram : ORIGIN = 0x81000000, LENGTH = 0x100000
+}
+
+SECTIONS
+{
+ SECTIONS_BEGIN
+ SECTION_fixed_vectors (ram0, 0x40000020, LMA_EQ_VMA)
+ SECTION_rom_vectors (ram, 0x81010000, 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)
+ CYG_LABEL_DEFN(__heap1) = ALIGN (0x8);
+ SECTIONS_END
+}
+
diff --git a/ecos/packages/hal/arm/lpc2xxx/olpce2294/current/include/pkgconf/mlt_arm_lpc2xxx_olpce2294_rom.h b/ecos/packages/hal/arm/lpc2xxx/olpce2294/current/include/pkgconf/mlt_arm_lpc2xxx_olpce2294_rom.h
new file mode 100644
index 0000000..d32182f
--- /dev/null
+++ b/ecos/packages/hal/arm/lpc2xxx/olpce2294/current/include/pkgconf/mlt_arm_lpc2xxx_olpce2294_rom.h
@@ -0,0 +1,22 @@
+#ifndef __ASSEMBLER__
+#include <cyg/infra/cyg_type.h>
+#include <stddef.h>
+
+#endif
+
+#define CYGMEM_REGION_rom (0x00000000)
+#define CYGMEM_REGION_rom_SIZE (0x00040000)
+#define CYGMEM_REGION_rom_ATTR (CYGMEM_REGION_ATTR_R)
+#define CYGMEM_REGION_ram (0x81000000)
+#define CYGMEM_REGION_ram_SIZE (0x00100000)
+#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 (0x81100000 - (size_t) CYG_LABEL_NAME (__heap1))
+
diff --git a/ecos/packages/hal/arm/lpc2xxx/olpce2294/current/include/pkgconf/mlt_arm_lpc2xxx_olpce2294_rom.ldi b/ecos/packages/hal/arm/lpc2xxx/olpce2294/current/include/pkgconf/mlt_arm_lpc2xxx_olpce2294_rom.ldi
new file mode 100644
index 0000000..ffcdf58
--- /dev/null
+++ b/ecos/packages/hal/arm/lpc2xxx/olpce2294/current/include/pkgconf/mlt_arm_lpc2xxx_olpce2294_rom.ldi
@@ -0,0 +1,26 @@
+#include <cyg/infra/cyg_type.inc>
+
+MEMORY
+{
+ ram0 : ORIGIN = 0x40000000, LENGTH = 0x4000
+ ram : ORIGIN = 0x81000000, LENGTH = 0x100000
+ rom : ORIGIN = 0x00000000, LENGTH = 0x40000
+}
+
+SECTIONS
+{
+ SECTIONS_BEGIN
+ SECTION_rom_vectors (rom, 0x00000000, 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 (ram0, 0x40000020, LMA_EQ_VMA)
+ SECTION_data (ram, 0x81000000, FOLLOWING (.gcc_except_table))
+ SECTION_bss (ram, ALIGN (0x4), LMA_EQ_VMA)
+ CYG_LABEL_DEFN(__heap1) = ALIGN (0x8);
+ SECTIONS_END
+}
+
diff --git a/ecos/packages/hal/arm/lpc2xxx/olpce2294/current/include/plf_io.h b/ecos/packages/hal/arm/lpc2xxx/olpce2294/current/include/plf_io.h
new file mode 100644
index 0000000..1b4e2f4
--- /dev/null
+++ b/ecos/packages/hal/arm/lpc2xxx/olpce2294/current/include/plf_io.h
@@ -0,0 +1,66 @@
+#ifndef CYGONCE_HAL_PLF_IO_H
+#define CYGONCE_HAL_PLF_IO_H
+//=============================================================================
+//
+// plf_io.h
+//
+// Olimex LPC-E2294 board specific registers
+//
+//=============================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002, 2008 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): Sergei Gavrikov
+// Contributors: Sergei Gavrikov
+// Date: 2008-08-31
+// Purpose: Olimex LPC-E2294 board specific registers
+// Description:
+// Usage: #include <cyg/hal/plf_io.h>
+//
+//####DESCRIPTIONEND####
+//
+//=============================================================================
+// On-chip device base addresses
+
+#ifndef __ASSEMBLER__
+extern void hal_plf_hardware_init(void);
+#define HAL_PLF_HARDWARE_INIT() \
+ hal_plf_hardware_init()
+
+#endif // __ASSEMBLER__
+
+//-----------------------------------------------------------------------------
+// end of plf_io.h
+#endif // CYGONCE_HAL_PLF_IO_H
+
diff --git a/ecos/packages/hal/arm/lpc2xxx/olpce2294/current/misc/redboot_RAM.ecm b/ecos/packages/hal/arm/lpc2xxx/olpce2294/current/misc/redboot_RAM.ecm
new file mode 100644
index 0000000..3fb7d10
--- /dev/null
+++ b/ecos/packages/hal/arm/lpc2xxx/olpce2294/current/misc/redboot_RAM.ecm
@@ -0,0 +1,108 @@
+cdl_savefile_version 1;
+cdl_savefile_command cdl_savefile_version {};
+cdl_savefile_command cdl_savefile_command {};
+cdl_savefile_command cdl_configuration { description hardware template package };
+cdl_savefile_command cdl_package { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_component { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_option { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_interface { value_source user_value wizard_value inferred_value };
+
+cdl_configuration eCos {
+ description "" ;
+ hardware olpce2294 ;
+ template redboot ;
+ package -hardware CYGPKG_HAL_ARM current ;
+ package -hardware CYGPKG_HAL_ARM_LPC2XXX current ;
+ package -hardware CYGPKG_HAL_ARM_LPC2XXX_OLPCE2294 current ;
+ package -hardware CYGPKG_DEVS_FLASH_STRATA_V2 current ;
+ package -hardware CYGPKG_DEVS_FLASH_ARM_OLPCX2294_V2 current ;
+ package -hardware CYGPKG_DEVS_ETH_CL_CS8900A current ;
+ package -hardware CYGPKG_DEVS_ETH_ARM_OLPCE2294 current ;
+ package -hardware CYGPKG_IO_SERIAL_GENERIC_16X5X current ;
+ package -hardware CYGPKG_IO_SERIAL_ARM_LPC2XXX current ;
+ package -hardware CYGPKG_DEVICES_WATCHDOG_ARM_LPC2XXX current ;
+ package -template CYGPKG_HAL current ;
+ package -template CYGPKG_INFRA current ;
+ package -template CYGPKG_REDBOOT current ;
+ package -template CYGPKG_ISOINFRA current ;
+ package -template CYGPKG_LIBC_STRING current ;
+ package -template CYGPKG_CRC current ;
+ package CYGPKG_IO_ETH_DRIVERS current ;
+ package CYGPKG_NS_DNS current ;
+ package CYGPKG_COMPRESS_ZLIB current ;
+ package CYGPKG_IO_FLASH current ;
+};
+
+cdl_option CYGFUN_LIBC_STRING_BSD_FUNCS {
+ inferred_value 0
+};
+
+cdl_option CYGIMP_DEVS_ETH_CL_CS8900A_DATABUS_8BIT {
+ inferred_value 1
+};
+
+cdl_option CYGIMP_HAL_COMMON_INTERRUPTS_USE_INTERRUPT_STACK {
+ inferred_value 0
+};
+
+cdl_option CYGNUM_HAL_COMMON_INTERRUPTS_STACK_SIZE {
+ user_value 4096
+};
+
+cdl_option CYGDBG_HAL_COMMON_INTERRUPTS_SAVE_MINIMUM_CONTEXT {
+ user_value 0
+};
+
+cdl_option CYGDBG_HAL_COMMON_CONTEXT_SAVE_MINIMUM {
+ inferred_value 0
+};
+
+cdl_option CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS {
+ inferred_value 1
+};
+
+cdl_option CYGSEM_HAL_USE_ROM_MONITOR {
+ inferred_value 0 0
+};
+
+cdl_component CYGHWR_HAL_ARM_LPC2XXX {
+ inferred_value LPC2294
+};
+
+cdl_component CYGBLD_BUILD_REDBOOT {
+ user_value 1
+};
+
+cdl_option CYGBLD_BUILD_REDBOOT_WITH_EXEC {
+ inferred_value 0
+};
+
+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_BSD_FUNCS_HEADER {
+ inferred_value 1 <cyg/libc/string/bsdstring.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_DNS_HEADER {
+ inferred_value 1 <cyg/ns/dns/dns.h>
+};
+
+cdl_option CYGPKG_NS_DNS_BUILD {
+ inferred_value 0
+};
+
+
diff --git a/ecos/packages/hal/arm/lpc2xxx/olpce2294/current/misc/redboot_ROM.ecm b/ecos/packages/hal/arm/lpc2xxx/olpce2294/current/misc/redboot_ROM.ecm
new file mode 100644
index 0000000..806371a
--- /dev/null
+++ b/ecos/packages/hal/arm/lpc2xxx/olpce2294/current/misc/redboot_ROM.ecm
@@ -0,0 +1,116 @@
+cdl_savefile_version 1;
+cdl_savefile_command cdl_savefile_version {};
+cdl_savefile_command cdl_savefile_command {};
+cdl_savefile_command cdl_configuration { description hardware template package };
+cdl_savefile_command cdl_package { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_component { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_option { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_interface { value_source user_value wizard_value inferred_value };
+
+cdl_configuration eCos {
+ description "" ;
+ hardware olpce2294 ;
+ template redboot ;
+ package -hardware CYGPKG_HAL_ARM current ;
+ package -hardware CYGPKG_HAL_ARM_LPC2XXX current ;
+ package -hardware CYGPKG_HAL_ARM_LPC2XXX_OLPCE2294 current ;
+ package -hardware CYGPKG_DEVS_FLASH_STRATA_V2 current ;
+ package -hardware CYGPKG_DEVS_FLASH_ARM_OLPCX2294_V2 current ;
+ package -hardware CYGPKG_DEVS_ETH_CL_CS8900A current ;
+ package -hardware CYGPKG_DEVS_ETH_ARM_OLPCE2294 current ;
+ package -hardware CYGPKG_IO_SERIAL_GENERIC_16X5X current ;
+ package -hardware CYGPKG_IO_SERIAL_ARM_LPC2XXX current ;
+ package -hardware CYGPKG_DEVICES_WATCHDOG_ARM_LPC2XXX current ;
+ package -template CYGPKG_HAL current ;
+ package -template CYGPKG_INFRA current ;
+ package -template CYGPKG_REDBOOT current ;
+ package -template CYGPKG_ISOINFRA current ;
+ package -template CYGPKG_LIBC_STRING current ;
+ package -template CYGPKG_CRC current ;
+ package CYGPKG_IO_ETH_DRIVERS current ;
+ package CYGPKG_NS_DNS current ;
+ package CYGPKG_COMPRESS_ZLIB current ;
+ package CYGPKG_IO_FLASH current ;
+};
+
+cdl_option CYGFUN_LIBC_STRING_BSD_FUNCS {
+ inferred_value 0
+};
+
+cdl_option CYGIMP_DEVS_ETH_CL_CS8900A_DATABUS_8BIT {
+ inferred_value 1
+};
+
+cdl_option CYGIMP_HAL_COMMON_INTERRUPTS_USE_INTERRUPT_STACK {
+ inferred_value 0
+};
+
+cdl_option CYGNUM_HAL_COMMON_INTERRUPTS_STACK_SIZE {
+ user_value 4096
+};
+
+cdl_option CYGDBG_HAL_COMMON_INTERRUPTS_SAVE_MINIMUM_CONTEXT {
+ user_value 0
+};
+
+cdl_option CYGDBG_HAL_COMMON_CONTEXT_SAVE_MINIMUM {
+ inferred_value 0
+};
+
+cdl_option CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS {
+ inferred_value 1
+};
+
+cdl_option CYGSEM_HAL_ROM_MONITOR {
+ inferred_value 1
+};
+
+cdl_option CYGSEM_HAL_USE_ROM_MONITOR {
+ inferred_value 0 0
+};
+
+cdl_component CYGHWR_HAL_ARM_LPC2XXX {
+ inferred_value LPC2294
+};
+
+cdl_component CYG_HAL_STARTUP {
+ inferred_value ROM
+};
+
+cdl_component CYGBLD_BUILD_REDBOOT {
+ user_value 1
+};
+
+cdl_option CYGBLD_BUILD_REDBOOT_WITH_EXEC {
+ inferred_value 0
+};
+
+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_BSD_FUNCS_HEADER {
+ inferred_value 1 <cyg/libc/string/bsdstring.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_DNS_HEADER {
+ inferred_value 1 <cyg/ns/dns/dns.h>
+};
+
+cdl_option CYGPKG_NS_DNS_BUILD {
+ inferred_value 0
+};
+
+
diff --git a/ecos/packages/hal/arm/lpc2xxx/olpce2294/current/misc/redboot_ROM_minimal.ecm b/ecos/packages/hal/arm/lpc2xxx/olpce2294/current/misc/redboot_ROM_minimal.ecm
new file mode 100644
index 0000000..36dda75
--- /dev/null
+++ b/ecos/packages/hal/arm/lpc2xxx/olpce2294/current/misc/redboot_ROM_minimal.ecm
@@ -0,0 +1,100 @@
+cdl_savefile_version 1;
+cdl_savefile_command cdl_savefile_version {};
+cdl_savefile_command cdl_savefile_command {};
+cdl_savefile_command cdl_configuration { description hardware template package };
+cdl_savefile_command cdl_package { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_component { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_option { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_interface { value_source user_value wizard_value inferred_value };
+
+cdl_configuration eCos {
+ description "" ;
+ hardware olpce2294 ;
+ template redboot ;
+ package -hardware CYGPKG_HAL_ARM current ;
+ package -hardware CYGPKG_HAL_ARM_LPC2XXX current ;
+ package -hardware CYGPKG_HAL_ARM_LPC2XXX_OLPCE2294 current ;
+ package -hardware CYGPKG_DEVS_FLASH_STRATA_V2 current ;
+ package -hardware CYGPKG_DEVS_FLASH_ARM_OLPCX2294_V2 current ;
+ package -hardware CYGPKG_DEVS_ETH_CL_CS8900A current ;
+ package -hardware CYGPKG_DEVS_ETH_ARM_OLPCE2294 current ;
+ package -hardware CYGPKG_IO_SERIAL_GENERIC_16X5X current ;
+ package -hardware CYGPKG_IO_SERIAL_ARM_LPC2XXX current ;
+ package -hardware CYGPKG_DEVICES_WATCHDOG_ARM_LPC2XXX current ;
+ package -template CYGPKG_HAL current ;
+ package -template CYGPKG_INFRA current ;
+ package -template CYGPKG_REDBOOT current ;
+ package -template CYGPKG_ISOINFRA current ;
+ package -template CYGPKG_LIBC_STRING current ;
+ package -template CYGPKG_CRC current ;
+};
+
+cdl_option CYGFUN_LIBC_STRING_BSD_FUNCS {
+ inferred_value 0
+};
+
+cdl_option CYGIMP_HAL_COMMON_INTERRUPTS_USE_INTERRUPT_STACK {
+ inferred_value 0
+};
+
+cdl_option CYGNUM_HAL_COMMON_INTERRUPTS_STACK_SIZE {
+ user_value 4096
+};
+
+cdl_option CYGDBG_HAL_COMMON_INTERRUPTS_SAVE_MINIMUM_CONTEXT {
+ user_value 0
+};
+
+cdl_option CYGDBG_HAL_COMMON_CONTEXT_SAVE_MINIMUM {
+ inferred_value 0
+};
+
+cdl_option CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS {
+ inferred_value 1
+};
+
+cdl_option CYGSEM_HAL_ROM_MONITOR {
+ inferred_value 1
+};
+
+cdl_option CYGSEM_HAL_USE_ROM_MONITOR {
+ inferred_value 0 0
+};
+
+cdl_component CYGHWR_HAL_ARM_LPC2XXX {
+ inferred_value LPC2294
+};
+
+cdl_component CYG_HAL_STARTUP {
+ inferred_value ROM
+};
+
+cdl_component CYGBLD_BUILD_REDBOOT {
+ user_value 1
+};
+
+cdl_option CYGBLD_BUILD_REDBOOT_WITH_EXEC {
+ inferred_value 0
+};
+
+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_BSD_FUNCS_HEADER {
+ inferred_value 1 <cyg/libc/string/bsdstring.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>
+};
+
+
diff --git a/ecos/packages/hal/arm/lpc2xxx/olpce2294/current/src/olpce2294_misc.c b/ecos/packages/hal/arm/lpc2xxx/olpce2294/current/src/olpce2294_misc.c
new file mode 100644
index 0000000..f5646e2
--- /dev/null
+++ b/ecos/packages/hal/arm/lpc2xxx/olpce2294/current/src/olpce2294_misc.c
@@ -0,0 +1,636 @@
+//==========================================================================
+//
+// olpce2294_misc.c
+//
+// HAL misc board support code for Olimex LPC-E2294 development board
+//
+//==========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002, 2008 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//==========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): Sergei Gavrikov
+// Contributors: Sergei Gavrikov
+// Date: 2008-08-31
+// Purpose: HAL board support
+// Description: Implementations of HAL board interfaces
+//
+//####DESCRIPTIONEND####
+//
+//========================================================================*/
+
+#include <pkgconf/hal.h>
+#include <cyg/hal/hal_io.h> // IO macros
+#include <cyg/infra/cyg_type.h> // base types
+
+#include <cyg/hal/var_io.h>
+#include <cyg/hal/plf_io.h>
+
+#include <cyg/hal/hal_intr.h> // Interrupt macros
+#include <cyg/hal/hal_arch.h> // SAVE/RESTORE GP
+#include <cyg/hal/hal_if.h>
+#include <cyg/hal/hal_diag.h> // HAL_DELAY_US
+
+extern void cyg_hal_plf_serial_init (void);
+
+static void cyg_hal_plf_lcd_init (void);
+
+// There are no diagnostic leds on the board, but there is a LCD there with a
+// BACKLIGHT feature. So, we can drive by BACKLIGHT put on a cathode a static
+// signal.
+
+inline static void
+_fake_led (bool state)
+{
+ HAL_WRITE_UINT32 (CYGARC_HAL_LPC2XXX_REG_IO_BASE +
+ CYGARC_HAL_LPC2XXX_REG_IO0CLR, (1 << 10));
+ if (state) {
+ HAL_WRITE_UINT32 (CYGARC_HAL_LPC2XXX_REG_IO_BASE +
+ CYGARC_HAL_LPC2XXX_REG_IO0SET, (1 << 10));
+ }
+}
+
+//--------------------------------------------------------------------------
+// hal_lpc2xxx_set_leds --
+//
+void
+hal_lpc2xxx_set_leds (int mask)
+{
+ _fake_led (mask & 1);
+}
+
+//--------------------------------------------------------------------------
+// cyg_hal_plf_comms_init --
+//
+void
+cyg_hal_plf_comms_init (void)
+{
+ static int initialized = 0;
+
+ if (initialized)
+ return;
+ initialized = 1;
+
+ cyg_hal_plf_serial_init ();
+ cyg_hal_plf_lcd_init ();
+}
+
+//--------------------------------------------------------------------------
+// LCD driver (It is based on powerpc/cogent code)
+//
+// Olimex LPC-E2294 development board has a LCD 16x2 display (GDM1602K) with
+// a built-in controller (KS0066U). The controller is the Hitachi HD44780
+// compliant chip. Note: the LCD is driven in a 4-bit mode.
+//--------------------------------------------------------------------------
+
+#define LCD_BASE (void *)NULL
+
+#define LCD_DATA 0x00 // read/write lcd data
+#define LCD_STAT 0x08 // read lcd busy status
+#define LCD_CMD 0x08 // write lcd command
+
+// status register bit definitions
+#define LCD_STAT_BUSY 0x80 // 1 = display busy
+#define LCD_STAT_ADD 0x7F // bits 0-6 return current display address
+
+// command register definitions
+#define LCD_CMD_RST 0x01 // clear entire display and reset display address
+#define LCD_CMD_HOME 0x02 // reset display address and reset any shifting
+#define LCD_CMD_ECL 0x04 // move cursor left one position on next write
+#define LCD_CMD_ESL 0x05 // shift display left one position on next write
+#define LCD_CMD_ECR 0x06 // move cursor right one position on next write
+#define LCD_CMD_ESR 0x07 // shift display right one position on next write
+#define LCD_CMD_DOFF 0x08 // display off, cursor off, blinking off
+#define LCD_CMD_BL 0x09 // blink character at current cursor position
+#define LCD_CMD_CUR 0x0A // enable cursor on
+#define LCD_CMD_DON 0x0C // turn display on
+#define LCD_CMD_CL 0x10 // move cursor left one position
+#define LCD_CMD_SL 0x14 // shift display left one position
+#define LCD_CMD_CR 0x18 // move cursor right one position
+#define LCD_CMD_SR 0x1C // shift display right one position
+#define LCD_CMD_MODE 0x28 // sets 4 bits, 2 lines, 5x8 characters
+#define LCD_CMD_ACG 0x40 // bits 0-5 sets the character generator address
+#define LCD_CMD_ADD 0x80 // bits 0-6 sets the display data addr to line 1 +
+
+// LCD status values
+#define LCD_OK 0x00
+#define LCD_ERR 0x01
+
+#define LCD_LINE0 0x00 // DRAM address from 0x00 to 0x0f
+#define LCD_LINE1 0x40 // DRAM address from 0x40 to 0x4f
+#define LCD_LINE_LENGTH 16
+
+static char lcd_line0[LCD_LINE_LENGTH + 1];
+static char lcd_line1[LCD_LINE_LENGTH + 1];
+static char *lcd_line[2] = { lcd_line0, lcd_line1 };
+
+static int lcd_curline = 0;
+static int lcd_linepos = 0;
+
+// the LCD controller <--> MPU interface
+#define MPU_DB 0x000000f0 // DB7...DB4 wired to P0.7...P0.4
+#define MPU_RS 0x10000000 // RS wired to P0.28
+#define MPU_EN 0x20000000 // EN wired to P0.29
+#define MPU_RW 0x40000000 // RW wired to P0.30
+#define MPU_XX 0x700000f0 // all MPU lines
+
+// LCD DARKLIGHT cathode
+#define DARKLIGHT 0x00000020 // P0.10
+
+// Bus timing characteristics for Hitachi HD44780 compliant chips (when Vcc =
+// 4.5 to 5.5 V):
+// tcycE - enable cycle time, min 500 ns
+// tPWEH - enable pulse width (high level), min 230 ns
+// tAS - address setup time (RS, R/W to E), min 40 ns
+// tAH - address hold time, min 10 ns
+// tDDR - data delay time (read operations), max 160 ns
+// tDSW - data setup time (write operations), min 80 ns
+
+#define LCD_DELAY_US(_us_) HAL_DELAY_US (_us_)
+
+// It should overrite the data delay time, i.e. be grater than 160 ns.
+// WARNING: be careful with the delay value, more shorter delay would
+// occur a dead loop when the BF (busy flag) is checked.
+#define LCD_NANO_DELAY() \
+ CYG_MACRO_START \
+ int i; \
+ for (i = 0; i < 1; i++); \
+ CYG_MACRO_END
+
+// It should overwrite the tPWEH (enable pulse width)
+#define LCD_MICRO_DELAY() \
+ CYG_MACRO_START \
+ int i; \
+ for (i = 0; i < 3; i++); \
+ CYG_MACRO_END
+
+// Set RS, R/W to read data
+#define LCD_RS_READ_DATA() \
+ CYG_MACRO_START \
+ cyg_uint32 _t_; \
+ HAL_READ_UINT32(CYGARC_HAL_LPC2XXX_REG_IO_BASE + \
+ CYGARC_HAL_LPC2XXX_REG_IO0SET, _t_); \
+ _t_ |= MPU_RW | MPU_RS; \
+ HAL_WRITE_UINT32(CYGARC_HAL_LPC2XXX_REG_IO_BASE + \
+ CYGARC_HAL_LPC2XXX_REG_IO0SET, _t_); \
+ CYG_MACRO_END
+
+// Set RS, R/W to read a busy flag and address counter
+#define LCD_RS_READ_STAT() \
+ CYG_MACRO_START \
+ cyg_uint32 _t_; \
+ HAL_READ_UINT32(CYGARC_HAL_LPC2XXX_REG_IO_BASE + \
+ CYGARC_HAL_LPC2XXX_REG_IO0SET, _t_); \
+ _t_ |= MPU_RW; \
+ HAL_WRITE_UINT32(CYGARC_HAL_LPC2XXX_REG_IO_BASE + \
+ CYGARC_HAL_LPC2XXX_REG_IO0SET, _t_); \
+ HAL_READ_UINT32(CYGARC_HAL_LPC2XXX_REG_IO_BASE + \
+ CYGARC_HAL_LPC2XXX_REG_IO0CLR, _t_); \
+ _t_ |= MPU_RS; \
+ HAL_WRITE_UINT32(CYGARC_HAL_LPC2XXX_REG_IO_BASE + \
+ CYGARC_HAL_LPC2XXX_REG_IO0CLR, _t_); \
+ CYG_MACRO_END
+
+// Set RS, R/W to write data
+#define LCD_RS_WRITE_DATA() \
+ CYG_MACRO_START \
+ cyg_uint32 _t_; \
+ HAL_READ_UINT32(CYGARC_HAL_LPC2XXX_REG_IO_BASE + \
+ CYGARC_HAL_LPC2XXX_REG_IO0CLR, _t_); \
+ _t_ |= MPU_RW; \
+ HAL_WRITE_UINT32(CYGARC_HAL_LPC2XXX_REG_IO_BASE + \
+ CYGARC_HAL_LPC2XXX_REG_IO0CLR, _t_); \
+ HAL_READ_UINT32(CYGARC_HAL_LPC2XXX_REG_IO_BASE + \
+ CYGARC_HAL_LPC2XXX_REG_IO0SET, _t_); \
+ _t_ |= MPU_RS; \
+ HAL_WRITE_UINT32(CYGARC_HAL_LPC2XXX_REG_IO_BASE + \
+ CYGARC_HAL_LPC2XXX_REG_IO0SET, _t_); \
+ CYG_MACRO_END
+
+// Set RS, R/W to write an instruction
+#define LCD_RS_WRITE_CMD() \
+ CYG_MACRO_START \
+ cyg_uint32 _t_; \
+ HAL_READ_UINT32(CYGARC_HAL_LPC2XXX_REG_IO_BASE + \
+ CYGARC_HAL_LPC2XXX_REG_IO0CLR, _t_); \
+ _t_ |= MPU_RW | MPU_RS; \
+ HAL_WRITE_UINT32(CYGARC_HAL_LPC2XXX_REG_IO_BASE + \
+ CYGARC_HAL_LPC2XXX_REG_IO0CLR, _t_); \
+ CYG_MACRO_END
+
+#define LCD_ENABLE_HIGH() \
+ CYG_MACRO_START \
+ cyg_uint32 _t_; \
+ HAL_READ_UINT32(CYGARC_HAL_LPC2XXX_REG_IO_BASE + \
+ CYGARC_HAL_LPC2XXX_REG_IO0SET, _t_); \
+ _t_ |= MPU_EN; \
+ HAL_WRITE_UINT32(CYGARC_HAL_LPC2XXX_REG_IO_BASE + \
+ CYGARC_HAL_LPC2XXX_REG_IO0SET, _t_); \
+ CYG_MACRO_END
+
+#define LCD_ENABLE_LOW() \
+ CYG_MACRO_START \
+ cyg_uint32 _t_; \
+ HAL_READ_UINT32(CYGARC_HAL_LPC2XXX_REG_IO_BASE + \
+ CYGARC_HAL_LPC2XXX_REG_IO0CLR, _t_); \
+ _t_ |= MPU_EN; \
+ HAL_WRITE_UINT32(CYGARC_HAL_LPC2XXX_REG_IO_BASE + \
+ CYGARC_HAL_LPC2XXX_REG_IO0CLR, _t_); \
+ CYG_MACRO_END
+
+// High-level enable pulse
+#define LCD_ENABLE_PULSE() \
+ CYG_MACRO_START \
+ LCD_ENABLE_HIGH (); \
+ LCD_MICRO_DELAY (); \
+ LCD_ENABLE_LOW (); \
+ LCD_MICRO_DELAY (); \
+ CYG_MACRO_END
+
+// Read a nibble of data from LCD controller
+#define LCD_READ_NIBBLE( _n_) \
+ CYG_MACRO_START \
+ cyg_uint32 _t_; \
+ HAL_READ_UINT32(CYGARC_HAL_LPC2XXX_REG_IO_BASE + \
+ CYGARC_HAL_LPC2XXX_REG_IO0DIR, _t_); \
+ _t_ &= ~MPU_DB; \
+ HAL_WRITE_UINT32(CYGARC_HAL_LPC2XXX_REG_IO_BASE + \
+ CYGARC_HAL_LPC2XXX_REG_IO0DIR, _t_); \
+ HAL_READ_UINT32(CYGARC_HAL_LPC2XXX_REG_IO_BASE + \
+ CYGARC_HAL_LPC2XXX_REG_IO0PIN, _t_); \
+ _n_ = (_t_ & MPU_DB) >> 4; _n_ &= 0x0f; \
+ CYG_MACRO_END
+
+// Write a nibble of data to LCD controller
+#define LCD_WRITE_NIBBLE( _n_) \
+ CYG_MACRO_START \
+ cyg_uint32 _t_; \
+ HAL_READ_UINT32(CYGARC_HAL_LPC2XXX_REG_IO_BASE + \
+ CYGARC_HAL_LPC2XXX_REG_IO0DIR, _t_); \
+ _t_ |= MPU_DB; \
+ HAL_WRITE_UINT32(CYGARC_HAL_LPC2XXX_REG_IO_BASE + \
+ CYGARC_HAL_LPC2XXX_REG_IO0DIR, _t_); \
+ HAL_READ_UINT32(CYGARC_HAL_LPC2XXX_REG_IO_BASE + \
+ CYGARC_HAL_LPC2XXX_REG_IO0CLR, _t_); \
+ _t_ |= MPU_DB; \
+ HAL_WRITE_UINT32(CYGARC_HAL_LPC2XXX_REG_IO_BASE + \
+ CYGARC_HAL_LPC2XXX_REG_IO0CLR, _t_); \
+ HAL_READ_UINT32(CYGARC_HAL_LPC2XXX_REG_IO_BASE + \
+ CYGARC_HAL_LPC2XXX_REG_IO0SET, _t_); \
+ _t_ |= ((_n_) & 0x0f) << 4; \
+ HAL_WRITE_UINT32(CYGARC_HAL_LPC2XXX_REG_IO_BASE + \
+ CYGARC_HAL_LPC2XXX_REG_IO0SET, _t_); \
+ CYG_MACRO_END
+
+// Drop LCD on POTS
+#define LCD_DROP_ON_POTS( _n_) \
+ CYG_MACRO_START \
+ cyg_uint32 _t_; \
+ HAL_READ_UINT32(CYGARC_HAL_LPC2XXX_REG_IO_BASE + \
+ CYGARC_HAL_LPC2XXX_REG_IO0DIR, _t_); \
+ _t_ |= MPU_XX; \
+ HAL_WRITE_UINT32(CYGARC_HAL_LPC2XXX_REG_IO_BASE + \
+ CYGARC_HAL_LPC2XXX_REG_IO0DIR, _t_); \
+ HAL_READ_UINT32(CYGARC_HAL_LPC2XXX_REG_IO_BASE + \
+ CYGARC_HAL_LPC2XXX_REG_IO0CLR, _t_); \
+ _t_ |= MPU_XX; \
+ HAL_WRITE_UINT32(CYGARC_HAL_LPC2XXX_REG_IO_BASE + \
+ CYGARC_HAL_LPC2XXX_REG_IO0CLR, _t_); \
+ CYG_MACRO_END
+
+//--------------------------------------------------------------------------
+// _lcd_read --
+//
+static void
+_lcd_read (int sel, cyg_uint8 * dat)
+{
+ cyg_uint8 n;
+
+ if (sel == LCD_DATA)
+ LCD_RS_READ_DATA ();
+ else
+ LCD_RS_READ_STAT ();
+
+ // read D7-D4 nibble
+ LCD_ENABLE_HIGH ();
+ LCD_NANO_DELAY ();
+ LCD_READ_NIBBLE (n);
+ *dat = n << 4;
+ LCD_MICRO_DELAY ();
+ LCD_ENABLE_LOW ();
+ LCD_MICRO_DELAY ();
+
+ // read D3-D0 nibble
+ LCD_ENABLE_HIGH ();
+ LCD_NANO_DELAY ();
+ LCD_READ_NIBBLE (n);
+ *dat |= n;
+ LCD_MICRO_DELAY ();
+ LCD_ENABLE_LOW ();
+ LCD_MICRO_DELAY ();
+}
+
+//--------------------------------------------------------------------------
+// _lcd_write --
+//
+static void
+_lcd_write (int sel, cyg_uint8 dat)
+{
+ if (sel == LCD_DATA)
+ LCD_RS_WRITE_DATA ();
+ else
+ LCD_RS_WRITE_CMD ();
+
+ // write D7-D4 nibble
+ LCD_WRITE_NIBBLE ((dat >> 4) & 15);
+ LCD_ENABLE_HIGH ();
+ LCD_MICRO_DELAY ();
+ LCD_ENABLE_LOW ();
+ LCD_MICRO_DELAY ();
+
+ // write D3-D0 nibble
+ LCD_WRITE_NIBBLE (dat & 15);
+ LCD_ENABLE_HIGH ();
+ LCD_MICRO_DELAY ();
+ LCD_ENABLE_LOW ();
+ LCD_MICRO_DELAY ();
+}
+
+#define LCD_READ( _register_, _data_) \
+ _lcd_read(_register_, &(_data_))
+
+#define LCD_WRITE( _register_, _data_) \
+ _lcd_write(_register_, _data_)
+
+#ifdef CYG_HAL_STARTUP_ROM
+//--------------------------------------------------------------------------
+// _lcd_pots_init --
+//
+// This routine is an early LCD intitializing on power-on event (from KS0066U
+// flow diagram).
+//
+static void
+_lcd_pots_init (void)
+{
+
+ // around power on
+ LCD_DROP_ON_POTS ();
+
+ // wait for more than 30 ms after Vdd rises to 4.5 V
+ LCD_DELAY_US (32000);
+
+ // at first, point on a using of 4-bit mode
+ LCD_WRITE_NIBBLE (2);
+ LCD_ENABLE_PULSE ();
+
+ LCD_WRITE_NIBBLE (2);
+ LCD_ENABLE_PULSE ();
+ LCD_WRITE_NIBBLE (8);
+ LCD_ENABLE_PULSE ();
+
+ // wait for more than 39 us
+ LCD_DELAY_US (40);
+
+ // BF (busy flag) can be checked
+}
+#endif
+
+// The portion of a code below is a bit adopted the LCD driver code for a
+// PowerPC Cogent board.
+
+static void lcd_dis (int add, char *s, cyg_uint8 * base);
+
+//--------------------------------------------------------------------------
+// init_lcd_channel --
+//
+static void
+init_lcd_channel (cyg_uint8 * base)
+{
+ cyg_uint8 stat;
+ int i;
+
+#ifdef CYG_HAL_STARTUP_ROM
+ _lcd_pots_init ();
+#endif
+
+ // Wait for not busy
+ do {
+ LCD_READ (LCD_STAT, stat);
+ } while (stat & LCD_STAT_BUSY);
+
+ // Configure the LCD for 4 bits/char, 2 lines and 5x8 dot matrix
+ LCD_WRITE (LCD_CMD, LCD_CMD_MODE);
+
+ // Wait for not busy
+ do {
+ LCD_READ (LCD_STAT, stat);
+ } while (stat & LCD_STAT_BUSY);
+
+ // Turn the LCD display on
+ LCD_WRITE (LCD_CMD, LCD_CMD_DON);
+
+ lcd_curline = 0;
+ lcd_linepos = 0;
+
+ for (i = 0; i < LCD_LINE_LENGTH; i++)
+ lcd_line[0][i] = lcd_line[1][i] = ' ';
+
+ lcd_line[0][LCD_LINE_LENGTH] = lcd_line[1][LCD_LINE_LENGTH] = 0;
+
+ lcd_dis (LCD_LINE0, lcd_line[0], base);
+ lcd_dis (LCD_LINE1, lcd_line[1], base);
+}
+
+//--------------------------------------------------------------------------
+// lcd_dis --
+//
+// This routine writes the string to the LCD display after setting the address
+// to add.
+//
+static void
+lcd_dis (int add, char *s, cyg_uint8 * base)
+{
+ cyg_uint8 stat;
+ int i;
+
+ // Wait for not busy
+ do {
+ LCD_READ (LCD_STAT, stat);
+ } while (stat & LCD_STAT_BUSY);
+
+ // Write the address
+ LCD_WRITE (LCD_CMD, (LCD_CMD_ADD + add));
+
+ // Write the string out to the display stopping when we reach 0
+ for (i = 0; *s != '\0'; i++) {
+ // Wait for not busy
+ do {
+ LCD_READ (LCD_STAT, stat);
+ } while (stat & LCD_STAT_BUSY);
+
+ // Write the data
+ LCD_WRITE (LCD_DATA, *s++);
+ }
+}
+
+//--------------------------------------------------------------------------
+// cyg_hal_plf_lcd_putc --
+//
+void
+cyg_hal_plf_lcd_putc (void *__ch_data, cyg_uint8 c)
+{
+ cyg_uint8 *base = (cyg_uint8 *) __ch_data;
+ unsigned long __state;
+ int i;
+
+ // Ignore CR
+ if (c == '\r')
+ return;
+
+ CYGARC_HAL_SAVE_GP ();
+ HAL_DISABLE_INTERRUPTS (__state);
+
+ if (c == '\n') {
+ lcd_dis (LCD_LINE0, &lcd_line[lcd_curline ^ 1][0], base);
+ lcd_dis (LCD_LINE1, &lcd_line[lcd_curline][0], base);
+
+ // Do a line feed
+ lcd_curline ^= 1;
+ lcd_linepos = 0;
+
+ for (i = 0; i < LCD_LINE_LENGTH; i++)
+ lcd_line[lcd_curline][i] = ' ';
+
+ goto _exit_putc;
+ }
+
+ // Only allow to be output if there is room on the LCD line
+ if (lcd_linepos < LCD_LINE_LENGTH)
+ lcd_line[lcd_curline][lcd_linepos++] = c;
+
+_exit_putc:
+ HAL_RESTORE_INTERRUPTS (__state);
+ CYGARC_HAL_RESTORE_GP ();
+}
+
+//--------------------------------------------------------------------------
+// cyg_hal_plf_lcd_getc --
+//
+cyg_uint8
+cyg_hal_plf_lcd_getc (void *__ch_data)
+{
+ return 0;
+}
+
+//--------------------------------------------------------------------------
+// cyg_hal_plf_lcd_write --
+//
+static void
+cyg_hal_plf_lcd_write (void *__ch_data, const cyg_uint8 * __buf,
+ cyg_uint32 __len)
+{
+ CYGARC_HAL_SAVE_GP ();
+
+ while (__len-- > 0)
+ cyg_hal_plf_lcd_putc (__ch_data, *__buf++);
+
+ CYGARC_HAL_RESTORE_GP ();
+}
+
+//--------------------------------------------------------------------------
+// cyg_hal_plf_lcd_read --
+//
+static void
+cyg_hal_plf_lcd_read (void *__ch_data, cyg_uint8 * __buf, cyg_uint32 __len)
+{
+ CYGARC_HAL_SAVE_GP ();
+
+ while (__len-- > 0)
+ *__buf++ = cyg_hal_plf_lcd_getc (__ch_data);
+
+ CYGARC_HAL_RESTORE_GP ();
+}
+
+//--------------------------------------------------------------------------
+// cyg_hal_plf_lcd_control --
+//
+static int
+cyg_hal_plf_lcd_control (void *__ch_data, __comm_control_cmd_t __func, ...)
+{
+ return 0;
+}
+
+//--------------------------------------------------------------------------
+// cyg_hal_plf_lcd_init --
+//
+static void
+cyg_hal_plf_lcd_init (void)
+{
+ hal_virtual_comm_table_t *comm;
+ int cur =
+ CYGACC_CALL_IF_SET_CONSOLE_COMM
+ (CYGNUM_CALL_IF_SET_COMM_ID_QUERY_CURRENT);
+
+ // Init channel
+ init_lcd_channel ((cyg_uint8 *) NULL);
+
+ // Setup procs in the vector table
+
+ // Set channel 2
+ CYGACC_CALL_IF_SET_CONSOLE_COMM (2);
+ comm = CYGACC_CALL_IF_CONSOLE_PROCS ();
+ CYGACC_COMM_IF_CH_DATA_SET (*comm, LCD_BASE);
+ CYGACC_COMM_IF_WRITE_SET (*comm, cyg_hal_plf_lcd_write);
+ CYGACC_COMM_IF_READ_SET (*comm, cyg_hal_plf_lcd_read);
+ CYGACC_COMM_IF_PUTC_SET (*comm, cyg_hal_plf_lcd_putc);
+ CYGACC_COMM_IF_GETC_SET (*comm, cyg_hal_plf_lcd_getc);
+ CYGACC_COMM_IF_CONTROL_SET (*comm, cyg_hal_plf_lcd_control);
+
+ // Restore original console
+ CYGACC_CALL_IF_SET_CONSOLE_COMM (cur);
+}
+
+#ifdef HAL_PLF_HARDWARE_INIT
+//--------------------------------------------------------------------------
+// hal_plf_hardware_init --
+//
+void
+hal_plf_hardware_init (void)
+{
+ // Cyrrently, it does nothing
+}
+#endif // HAL_PLF_HARDWARE_INIT
+
+// indent: --indent-level4 -br -nut; vim: expandtab tabstop=4 shiftwidth=4
+//--------------------------------------------------------------------------
+// EOF olpce2294_misc.c
diff --git a/ecos/packages/hal/arm/lpc2xxx/olpce2294/current/src/redboot_cmds.c b/ecos/packages/hal/arm/lpc2xxx/olpce2294/current/src/redboot_cmds.c
new file mode 100644
index 0000000..aa98206
--- /dev/null
+++ b/ecos/packages/hal/arm/lpc2xxx/olpce2294/current/src/redboot_cmds.c
@@ -0,0 +1,178 @@
+//==========================================================================
+//
+// redboot_cmds.c
+//
+// OLPCE2294 [platform] specific RedBoot commands
+//
+//==========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002, 2008 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//==========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): Sergei Gavrikov
+// Contributors: Sergei Gavrikov
+// Date: 2008-08-31
+// Purpose:
+// Description:
+//
+// This code is part of RedBoot (tm).
+//
+//####DESCRIPTIONEND####
+//
+//========================================================================*/
+
+#include <redboot.h>
+
+#include <cyg/hal/hal_diag.h>
+
+// CLI functions
+local_cmd_entry ("clear", "Clean up LCD entires", "", lcd_clear, LCD_cmds);
+
+local_cmd_entry ("dark", "Turn LCD lighting off", "", lcd_dark, LCD_cmds);
+
+local_cmd_entry ("echo",
+ "Output the args. If -n is specified, the trailing newline is suppressed.",
+ "-n [arg ...]", lcd_echo, LCD_cmds);
+
+local_cmd_entry ("light", "Turn LCD lighting on", "", lcd_light, LCD_cmds);
+
+CYG_HAL_TABLE_BEGIN (__LCD_cmds_TAB__, LCD_cmds);
+CYG_HAL_TABLE_END (__LCD_cmds_TAB_END__, LCD_cmds);
+
+extern struct cmd __LCD_cmds_TAB__[], __LCD_cmds_TAB_END__;
+
+static cmd_fun do_lcd;
+RedBoot_nested_cmd ("lcd",
+ "Manage LCD display",
+ "{cmds}",
+ do_lcd, __LCD_cmds_TAB__, &__LCD_cmds_TAB_END__);
+
+//--------------------------------------------------------------------------
+// lcd_usage --
+//
+static void
+lcd_usage (char *why)
+{
+ diag_printf ("*** invalid 'lcd' command: %s\n", why);
+ cmd_usage (__LCD_cmds_TAB__, &__LCD_cmds_TAB_END__, "lcd ");
+}
+
+//--------------------------------------------------------------------------
+// do_lcd --
+//
+static void
+do_lcd (int argc, char *argv[])
+{
+ struct cmd *cmd;
+
+ if (argc < 2) {
+ lcd_usage ("too few arguments");
+ return;
+ }
+ if ((cmd = cmd_search (__LCD_cmds_TAB__, &__LCD_cmds_TAB_END__,
+ argv[1])) != (struct cmd *) 0) {
+ (cmd->fun) (argc, argv);
+ return;
+ }
+ lcd_usage ("unrecognized command");
+}
+
+//--------------------------------------------------------------------------
+// lcd_echo --
+//
+static void
+lcd_echo (int argc, char *argv[])
+{
+ bool newline;
+ int cur =
+ CYGACC_CALL_IF_SET_CONSOLE_COMM
+ (CYGNUM_CALL_IF_SET_COMM_ID_QUERY_CURRENT);
+ CYGACC_CALL_IF_SET_CONSOLE_COMM (2);
+
+ newline = true;
+ if (argc > 2) {
+ int i = 2;
+ if (strncmp (&argv[i][0], "-n", 2) == 0) {
+ newline = false;
+ i++;
+ }
+ for (; i < argc; i++) {
+ diag_write_string (&argv[i][0]);
+ if ((argc - i) > 1)
+ diag_write_char (' ');
+ }
+ }
+ if (newline)
+ diag_write_char ('\n');
+
+ CYGACC_CALL_IF_SET_CONSOLE_COMM (cur);
+ return;
+}
+
+//--------------------------------------------------------------------------
+// lcd_clear --
+//
+static void
+lcd_clear (int argc, char *argv[])
+{
+ // It clears a LCD screen. It doesn't touch a LCD controller, just a
+ // scrolling.
+ redboot_exec ("lcd", "echo", 0);
+ redboot_exec ("lcd", "echo", 0);
+ redboot_exec ("lcd", "echo", 0);
+ return;
+}
+
+//--------------------------------------------------------------------------
+// lcd_dark --
+//
+static void
+lcd_dark (int argc, char *argv[])
+{
+ hal_diag_led (0);
+ return;
+}
+
+//--------------------------------------------------------------------------
+// lcd_light --
+//
+static void
+lcd_light (int argc, char *argv[])
+{
+ hal_diag_led (1);
+ return;
+}
+
+// indent: --indent-level4 -br -nut; vim: expandtab tabstop=4 shiftwidth=4
+//--------------------------------------------------------------------------
+// EOF redboot_cmds.c
diff --git a/ecos/packages/hal/arm/lpc2xxx/olpch2294/current/ChangeLog b/ecos/packages/hal/arm/lpc2xxx/olpch2294/current/ChangeLog
new file mode 100644
index 0000000..aec8b2f
--- /dev/null
+++ b/ecos/packages/hal/arm/lpc2xxx/olpch2294/current/ChangeLog
@@ -0,0 +1,63 @@
+2012-03-07 Sergei Gavrikov <sergei.gavrikov@gmail.com>
+
+ * include/hal_platform_setup.h: Fix assembler warning (s suffix on
+ comparison instruction is deprecated), s/cmps/cmp/.
+
+2009-02-02 Sergei Gavrikov <sergei.gavrikov@gmail.com>
+
+ * cdl/hal_arm_lpc2xxx_olpch2294.cdl: Expanded a list the legal baud
+ rates for both diagnostic and debug channels (upon 230400 bps).
+ * include/hal_platform_setup.h: Fixed a comment about JTAG pinouts.
+ * src/olpch2294_misc.c: 1) hal_plf_hardware_init(): masked interrupts
+ on UART1; 2) Removed odd _impure_ptr stub.
+
+2009-01-31 Bart Veer <bartv@ecoscentric.com>
+
+ * cdl/hal_arm_lpc2xxx_olpch2294.cdl: update compiler flags for gcc 4.x
+
+2008-12-03 Sergei Gavrikov <sergei.gavrikov@gmail.com>
+
+ * misc/redboot_*.ecm: Rebuilt since target uses flash_olpcx2294_v2
+ driver.
+
+2008-08-31 Sergei Gavrikov <sergei.gavrikov@gmail.com>
+
+ * LPC-H2294 header board package
+ * cdl/hal_arm_lpc2xxx_olpch2294.cdl
+ * include/hal_platform_setup.h
+ * include/pkgconf/mlt_arm_lpc2xxx_olpch2294_ram.h
+ * include/pkgconf/mlt_arm_lpc2xxx_olpch2294_ram.ldi
+ * include/pkgconf/mlt_arm_lpc2xxx_olpch2294_rom.h
+ * include/pkgconf/mlt_arm_lpc2xxx_olpch2294_rom.ldi
+ * include/pkgconf/mlt_arm_lpc2xxx_olpch2294_romram.h
+ * include/pkgconf/mlt_arm_lpc2xxx_olpch2294_romram.ldi
+ * include/plf_io.h
+ * misc/redboot_ROM.ecm
+ * src/olpch2294_misc.c
+ * src/redboot_cmds.c
+
+//===========================================================================
+// ####GPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 2008 Free Software Foundation, Inc.
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 2 or (at your option) any
+// later version.
+//
+// This program is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the
+// Free Software Foundation, Inc., 51 Franklin Street,
+// Fifth Floor, Boston, MA 02110-1301, USA.
+// -------------------------------------------
+// ####GPLCOPYRIGHTEND####
+//===========================================================================
+
+
diff --git a/ecos/packages/hal/arm/lpc2xxx/olpch2294/current/cdl/hal_arm_lpc2xxx_olpch2294.cdl b/ecos/packages/hal/arm/lpc2xxx/olpch2294/current/cdl/hal_arm_lpc2xxx_olpch2294.cdl
new file mode 100644
index 0000000..9408a14
--- /dev/null
+++ b/ecos/packages/hal/arm/lpc2xxx/olpch2294/current/cdl/hal_arm_lpc2xxx_olpch2294.cdl
@@ -0,0 +1,299 @@
+# ====================================================================
+#
+# hal_arm_lpc2xxx_olpch2294.cdl
+#
+# ARM LPC2XXX OLPCH2294 header board package configuration data
+#
+# ====================================================================
+## ####ECOSGPLCOPYRIGHTBEGIN####
+## -------------------------------------------
+## This file is part of eCos, the Embedded Configurable Operating System.
+## Copyright (C) 1998, 1999, 2000, 2001, 2002, 2008 Free Software Foundation, Inc.
+##
+## eCos is free software; you can redistribute it and/or modify it under
+## the terms of the GNU General Public License as published by the Free
+## Software Foundation; either version 2 or (at your option) any later
+## version.
+##
+## eCos is distributed in the hope that it will be useful, but WITHOUT
+## ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+## FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+## for more details.
+##
+## You should have received a copy of the GNU General Public License
+## along with eCos; if not, write to the Free Software Foundation, Inc.,
+## 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+##
+## As a special exception, if other files instantiate templates or use
+## macros or inline functions from this file, or you compile this file
+## and link it with other works to produce a work based on this file,
+## this file does not by itself cause the resulting work to be covered by
+## the GNU General Public License. However the source code for this file
+## must still be made available in accordance with section (3) of the GNU
+## General Public License v2.
+##
+## This exception does not invalidate any other reasons why a work based
+## on this file might be covered by the GNU General Public License.
+## -------------------------------------------
+## ####ECOSGPLCOPYRIGHTEND####
+# ====================================================================
+######DESCRIPTIONBEGIN####
+#
+# Author(s): Sergei Gavrikov
+# Contributors: Sergei Gavrikov
+# Date: 2008-08-31
+#
+#####DESCRIPTIONEND####
+#
+# ====================================================================
+
+cdl_package CYGPKG_HAL_ARM_LPC2XXX_OLPCH2294 {
+ display "Olimex LPC-H2294 header board HAL"
+ parent CYGPKG_HAL_ARM_LPC2XXX
+ define_header hal_arm_lpc2xxx_olpch2294.h
+ include_dir cyg/hal
+ hardware
+ description "
+ The OLPCH2294 HAL package provides the support needed to run
+ eCos on Olimex LPC-H2294 header board."
+
+ compile olpch2294_misc.c
+
+ requires { CYGHWR_HAL_ARM_LPC2XXX == "LPC2294" }
+
+ 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_lpc2xxx.h>"
+ puts $::cdl_system_header "#define CYGBLD_HAL_PLATFORM_H <pkgconf/hal_arm_lpc2xxx_olpch2294.h>"
+ puts $::cdl_header "#define HAL_PLATFORM_CPU \"ARM7TDMI-S\""
+ puts $::cdl_header "#define HAL_PLATFORM_BOARD \"Olimex LPC-H2294 header board\""
+ puts $::cdl_header "#define HAL_PLATFORM_EXTRA \"\""
+ }
+
+ cdl_component CYG_HAL_STARTUP {
+ display "Startup type"
+ flavor data
+ default_value {"RAM"}
+ legal_values {"RAM" "ROM" "ROMRAM"}
+ no_define
+ define -file system.h CYG_HAL_STARTUP
+ description "Choose RAM, ROM or ROMRAM startup type."
+ }
+
+ cdl_option CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_DEFAULT {
+ display "Default console channel."
+ flavor data
+ calculated 0
+ }
+
+ 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"
+ active_if CYGPRI_HAL_VIRTUAL_VECTOR_DEBUG_CHANNEL_CONFIGURABLE
+ flavor data
+ legal_values 0 to CYGNUM_HAL_VIRTUAL_VECTOR_COMM_CHANNELS-1
+ default_value 0
+ description "
+ There is one USB connector on the board."
+ }
+
+ cdl_option CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL {
+ display "Diagnostic serial port"
+ active_if CYGPRI_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_CONFIGURABLE
+ flavor data
+ legal_values 0 to CYGNUM_HAL_VIRTUAL_VECTOR_COMM_CHANNELS-1
+ default_value CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_DEFAULT
+ description "
+ There is one USB connector on the board."
+ }
+
+ cdl_option CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_BAUD {
+ display "Diagnostic serial port baud rate"
+ flavor data
+ legal_values 9600 19200 38400 57600 115200 230400
+ default_value 38400
+ description "
+ This option selects the baud rate used for the diagnostic
+ port."
+ }
+
+ cdl_option CYGNUM_HAL_VIRTUAL_VECTOR_DEBUG_CHANNEL_BAUD {
+ display "GDB serial port baud rate"
+ flavor data
+ legal_values 9600 19200 38400 57600 115200 230400
+ default_value 38400
+ description "
+ This option controls the baud rate used for the GDB
+ connection."
+ }
+
+ # Real-time clock/counter specifics
+ cdl_option CYGNUM_HAL_ARM_LPC2XXX_XTAL_FREQ {
+ display "CPU xtal frequency"
+ flavor data
+ default_value {14745600}
+ }
+
+ cdl_option CYGNUM_HAL_ARM_LPC2XXX_PLL_MUL {
+ display "CPU PLL multiplier"
+ flavor data
+ default_value {4}
+ }
+
+ cdl_option CYGNUM_HAL_ARM_LPC2XXX_CLOCK_SPEED {
+ display "CPU clock speed"
+ flavor data
+ calculated { CYGNUM_HAL_ARM_LPC2XXX_PLL_MUL *
+ CYGNUM_HAL_ARM_LPC2XXX_XTAL_FREQ }
+ }
+
+ 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 { "arm-eabi" }
+ 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 { CYGBLD_GLOBAL_WARNFLAGS . CYGBLD_ARCH_CFLAGS .
+ "-mcpu=arm7tdmi -g -O2 -ffunction-sections -fdata-sections -fno-rtti -fno-exceptions" }
+ 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 { CYGBLD_ARCH_LDFLAGS . "-mcpu=arm7tdmi -Wl,--gc-sections -Wl,-static -g -nostdlib" }
+ description "
+ This option controls the global linker flags. Individual
+ packages may define options which override these global
+ flags."
+ }
+ }
+
+ 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" ||
+ CYG_HAL_STARTUP == "ROMRAM" }
+ 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 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_REDBOOT_HAL_OPTIONS {
+ display "Redboot HAL options"
+ flavor none
+ no_define
+ parent CYGPKG_REDBOOT
+ active_if CYGPKG_REDBOOT
+ description "
+ This option lists the target's requirements for a valid
+ Redboot configuration."
+
+ cdl_option CYGBLD_BUILD_REDBOOT_BIN {
+ display "Build Redboot ROM binary image"
+ active_if CYGBLD_BUILD_REDBOOT
+ requires { !CYGBLD_BUILD_REDBOOT_WITH_EXEC }
+ default_value 1
+ no_define
+ description "
+ This option enables the conversion of the Redboot ELF
+ image to a binary image suitable for ROM programming."
+
+ compile -library=libextras.a redboot_cmds.c
+
+ make -priority 325 {
+ <PREFIX>/bin/redboot.bin : <PREFIX>/bin/redboot.elf
+ $(OBJCOPY) --strip-debug $< $(@:.bin=.img)
+ $(OBJCOPY) -O srec $< $(@:.bin=.srec)
+ $(OBJCOPY) -O ihex $< $(@:.bin=.hex)
+ $(OBJCOPY) -O binary $< $@
+ }
+
+ }
+ }
+
+ cdl_component CYGHWR_MEMORY_LAYOUT {
+ display "Memory layout"
+ flavor data
+ no_define
+ calculated { (CYG_HAL_STARTUP == "RAM") ? "arm_lpc2xxx_olpch2294_ram" :
+ "arm_lpc2xxx_olpch2294_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_lpc2xxx_olpch2294_ram.ldi>" :
+ (CYG_HAL_STARTUP == "ROMRAM") ?
+ "<pkgconf/mlt_arm_lpc2xxx_olpch2294_romram.ldi>" :
+ "<pkgconf/mlt_arm_lpc2xxx_olpch2294_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_lpc2xxx_olpch2294_ram.h>" :
+ (CYG_HAL_STARTUP == "ROMRAM") ?
+ "<pkgconf/mlt_arm_lpc2xxx_olpch2294_romram.h>" :
+ "<pkgconf/mlt_arm_lpc2xxx_olpch2294_rom.h>" }
+ }
+ }
+}
+
diff --git a/ecos/packages/hal/arm/lpc2xxx/olpch2294/current/include/hal_platform_setup.h b/ecos/packages/hal/arm/lpc2xxx/olpch2294/current/include/hal_platform_setup.h
new file mode 100644
index 0000000..0649e19
--- /dev/null
+++ b/ecos/packages/hal/arm/lpc2xxx/olpch2294/current/include/hal_platform_setup.h
@@ -0,0 +1,237 @@
+#ifndef CYGONCE_HAL_PLATFORM_SETUP_H
+#define CYGONCE_HAL_PLATFORM_SETUP_H
+
+/*=============================================================================
+//
+// hal_platform_setup.h
+//
+// Platform specific support for HAL (assembly code)
+//
+//=============================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002, 2008 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): Sergei Gavrikov
+// Contributors: Sergei Gavrikov
+// Date: 2008-08-31
+// Purpose: LPC-H2294 platform specific support routines
+// Description:
+// Usage: #include <cyg/hal/hal_platform_setup.h>
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================*/
+
+#include <pkgconf/system.h>
+#include CYGHWR_MEMORY_LAYOUT_H
+#include <cyg/hal/var_io.h>
+
+ // There is one LED on the board.
+ // |P0.30 470 Om LED
+ // |------\/\/\/-----|<|-----> 3.3 V
+ // |
+ .macro _led_init
+ ldr r0,=CYGARC_HAL_LPC2XXX_REG_IO_BASE
+ ldr r1,[r0,#CYGARC_HAL_LPC2XXX_REG_IO0DIR]
+ orr r1,r1,#(1<<30)
+ str r1,[r0,#CYGARC_HAL_LPC2XXX_REG_IO0DIR]
+
+ .endm // _led_init
+
+ .macro _led x
+ ldr r0,=CYGARC_HAL_LPC2XXX_REG_IO_BASE
+ ldr r1,=(1<<30)
+ str r1,[r0,#CYGARC_HAL_LPC2XXX_REG_IO0SET]
+ ldr r1,=((\x & 1)<<30)
+ str r1,[r0,#CYGARC_HAL_LPC2XXX_REG_IO0CLR]
+
+ .endm // _led
+
+ .macro _pll_init
+ ldr r0,=CYGARC_HAL_LPC2XXX_REG_SCB_BASE
+
+ mov r2,#0xAA
+ mov r3,#0x55
+
+ // enable PLL
+ mov r1,#1
+ str r1,[r0,#CYGARC_HAL_LPC2XXX_REG_PLLCON]
+
+ mov r1,#(0x20 | (CYGNUM_HAL_ARM_LPC2XXX_PLL_MUL - 1))
+ str r1,[r0,#CYGARC_HAL_LPC2XXX_REG_PLLCFG]
+
+ // update PLL registers
+ str r2,[r0,#CYGARC_HAL_LPC2XXX_REG_PLLFEED]
+ str r3,[r0,#CYGARC_HAL_LPC2XXX_REG_PLLFEED]
+
+ // wait for it to lock
+1:
+ ldr r1,[r0,#CYGARC_HAL_LPC2XXX_REG_PLLSTAT]
+ ands r1,r1,#(1<<10)
+ beq 1b
+
+ // connect PLL
+ mov r1,#3
+ str r1,[r0,#CYGARC_HAL_LPC2XXX_REG_PLLCON]
+ // update PLL registers
+ str r2,[r0,#CYGARC_HAL_LPC2XXX_REG_PLLFEED]
+ str r3,[r0,#CYGARC_HAL_LPC2XXX_REG_PLLFEED]
+
+ .endm // _pll_init
+
+ .macro _mem_init
+ // copy first 64 bytes from ROM to on-chip RAM
+ mov r0,#0
+ mov r1,#0x40000000
+ mov r2,#0x40
+1:
+ ldr r3,[r0,#4]!
+ str r3,[r1,#4]!
+ cmp r0,r2
+ bne 1b
+
+ ldr r0,=CYGARC_HAL_LPC2XXX_REG_SCB_BASE
+ mov r1,#2 // interrupt vector table is mapped to RAM
+ str r1, [r0,#CYGARC_HAL_LPC2XXX_REG_MEMMAP]
+
+ // flash timings
+ mov r1,#4
+ str r1,[r0,#CYGARC_HAL_LPC2XXX_REG_MAMTIM]
+ mov r1,#2 // 2, full MAM
+ str r1,[r0,#CYGARC_HAL_LPC2XXX_REG_MAMCR]
+
+ // External memory interface depends on the bank width (32, 16 or 8 bit
+ // selected via MW bits in corresponding BCFG register). Furthermore,
+ // choice of the memory chip(s) will require an adequate setup of RBLE
+ // bit in BCFG register, too. RBLE = 0 in case of 8-bit based external
+ // memories, while memory chips capable of accepting 16 or 32 bit wide
+ // data will work with RBLE = 1.
+ //
+ // BANK0: 4M FLASH
+ // TE28F320C3BD70 (1024Kx32 x 1, 70nS)
+ ldr r0,=CYGARC_HAL_LPC2XXX_REG_BCFG0
+ ldr r1,= (0x3 << 0) /* IDCY=3, idle timing */\
+ | (0x4 << 5) /* WST1=4, read timing */\
+ | (0x1 << 10) /* RBLE=1 */\
+ | (0x6 << 11) /* WST2=6, write timing */\
+ | (0x1 << 28) /* MW=1, 16-bits */
+ str r1,[r0]
+
+ // BANK1: 1M RAM
+ // IDT71V416L (512Kx16 x 2, 12nS)
+ ldr r0,=CYGARC_HAL_LPC2XXX_REG_BCFG1
+ // Warning: changed these timings, you can fall dramatically the eCos
+ // kernel performance. Check it then using the eCos 'tm_basic' test.
+ ldr r1,= (0x0 << 0) /* IDCY=0, idle cycles */\
+ | (0x0 << 5) /* WST1=0, read timing */\
+ | (0x1 << 10) /* RBLE=1 */\
+ | (0x0 << 11) /* WST2=0, write timing */\
+ | (0x2 << 28) /* MW=2, 32-bits */
+ str r1,[r0]
+
+ .endm // _mem_init
+
+ .macro _gpio_init
+ ldr r0,=CYGARC_HAL_LPC2XXX_REG_PIN_BASE
+
+ // Configure P0.15:0 as PIO, but UART0
+ ldr r1,= (0x1 << 0) /* P0.0 as TxD0 */\
+ | (0x1 << 2) /* P0.1 as RxD0 */
+ str r1,[r0,#CYGARC_HAL_LPC2XXX_REG_PINSEL0]
+
+ // Configure P0.30:16 as PIO
+ ldr r1,=0
+ str r1,[r0,#CYGARC_HAL_LPC2XXX_REG_PINSEL1]
+
+ // GPIO P1.25:16, P3.0, P3.25:24 are used as PIO
+ ldr r1,= (0x1 << 2) /* P1.31:26 Debug port */\
+ | (0x2 << 4) /* D31:0,CS0,OE,BLS0-3 */\
+ | (0x1 << 8) /* WE enabled */\
+ | (0x1 << 11) /* CS1 enabled */\
+ | (0x1 << 24) /* A1 enabled */\
+ | (0x7 << 25) /* A23:2 enabled */
+ str r1,[r0,#CYGARC_HAL_LPC2XXX_REG_PINSEL2]
+
+ .endm // _gpio_init
+
+ .macro _relocate
+ // Relocate ROM/FLASH to RAM
+ ldr r0,= -8192
+ and r0,r0,pc
+ ldr r1,=(CYGMEM_REGION_ram)
+ ldr r2,=(CYGMEM_REGION_ram+0x3E000)
+10: ldr r3,[r0],#4
+ str r3,[r1],#4
+ cmp r1,r2
+ bne 10b
+ ldr r0,=20f
+ mov pc,r0
+20:
+ .endm // relocate
+
+#define CYGHWR_LED_MACRO _led \x
+
+#if defined(CYG_HAL_STARTUP_ROM) || defined(CYG_HAL_STARTUP_ROMRAM)
+
+ .macro _setup
+
+ _pll_init
+
+ _mem_init
+
+ _gpio_init
+
+#if defined(CYG_HAL_STARTUP_ROMRAM)
+ _relocate
+#endif
+ _led_init
+
+ .endm
+
+
+#define CYGSEM_HAL_ROM_RESET_USES_JUMP
+
+#else
+
+ .macro _setup
+
+ .endm
+
+#endif // CYG_HAL_STARTUP_ROM
+
+#define PLATFORM_SETUP1 _setup
+
+//-----------------------------------------------------------------------------
+// end of hal_platform_setup.h
+#endif // CYGONCE_HAL_PLATFORM_SETUP_H
diff --git a/ecos/packages/hal/arm/lpc2xxx/olpch2294/current/include/pkgconf/mlt_arm_lpc2xxx_olpch2294_ram.h b/ecos/packages/hal/arm/lpc2xxx/olpch2294/current/include/pkgconf/mlt_arm_lpc2xxx_olpch2294_ram.h
new file mode 100644
index 0000000..37e9356
--- /dev/null
+++ b/ecos/packages/hal/arm/lpc2xxx/olpch2294/current/include/pkgconf/mlt_arm_lpc2xxx_olpch2294_ram.h
@@ -0,0 +1,22 @@
+#ifndef __ASSEMBLER__
+#include <cyg/infra/cyg_type.h>
+#include <stddef.h>
+
+#endif
+
+#define CYGMEM_REGION_sram (0x40000000)
+#define CYGMEM_REGION_sram_SIZE (0x00004000)
+#define CYGMEM_REGION_sram_ATTR (CYGMEM_REGION_ATTR_R | CYGMEM_REGION_ATTR_W)
+#define CYGMEM_REGION_ram (0x81000000)
+#define CYGMEM_REGION_ram_SIZE (0x00100000)
+#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 (0x81100000 - (size_t) CYG_LABEL_NAME (__heap1))
+
diff --git a/ecos/packages/hal/arm/lpc2xxx/olpch2294/current/include/pkgconf/mlt_arm_lpc2xxx_olpch2294_ram.ldi b/ecos/packages/hal/arm/lpc2xxx/olpch2294/current/include/pkgconf/mlt_arm_lpc2xxx_olpch2294_ram.ldi
new file mode 100644
index 0000000..70cb1f8
--- /dev/null
+++ b/ecos/packages/hal/arm/lpc2xxx/olpch2294/current/include/pkgconf/mlt_arm_lpc2xxx_olpch2294_ram.ldi
@@ -0,0 +1,25 @@
+#include <cyg/infra/cyg_type.inc>
+
+MEMORY
+{
+ sram : ORIGIN = 0x40000000, LENGTH = 0x4000
+ ram : ORIGIN = 0x81000000, LENGTH = 0x100000
+}
+
+SECTIONS
+{
+ SECTIONS_BEGIN
+ SECTION_fixed_vectors (sram, 0x40000020, LMA_EQ_VMA)
+ SECTION_rom_vectors (ram, 0x81008000, 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)
+ CYG_LABEL_DEFN(__heap1) = ALIGN (0x8);
+ SECTIONS_END
+}
+
diff --git a/ecos/packages/hal/arm/lpc2xxx/olpch2294/current/include/pkgconf/mlt_arm_lpc2xxx_olpch2294_rom.h b/ecos/packages/hal/arm/lpc2xxx/olpch2294/current/include/pkgconf/mlt_arm_lpc2xxx_olpch2294_rom.h
new file mode 100644
index 0000000..28ef240
--- /dev/null
+++ b/ecos/packages/hal/arm/lpc2xxx/olpch2294/current/include/pkgconf/mlt_arm_lpc2xxx_olpch2294_rom.h
@@ -0,0 +1,25 @@
+#ifndef __ASSEMBLER__
+#include <cyg/infra/cyg_type.h>
+#include <stddef.h>
+
+#endif
+
+#define CYGMEM_REGION_rom (0x00000000)
+#define CYGMEM_REGION_rom_SIZE (0x00040000)
+#define CYGMEM_REGION_rom_ATTR (CYGMEM_REGION_ATTR_R)
+#define CYGMEM_REGION_sram (0x40000000)
+#define CYGMEM_REGION_sram_SIZE (0x00004000)
+#define CYGMEM_REGION_sram_ATTR (CYGMEM_REGION_ATTR_R | CYGMEM_REGION_ATTR_W)
+#define CYGMEM_REGION_ram (0x81000000)
+#define CYGMEM_REGION_ram_SIZE (0x00100000)
+#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 (0x81100000 - (size_t) CYG_LABEL_NAME (__heap1))
+
diff --git a/ecos/packages/hal/arm/lpc2xxx/olpch2294/current/include/pkgconf/mlt_arm_lpc2xxx_olpch2294_rom.ldi b/ecos/packages/hal/arm/lpc2xxx/olpch2294/current/include/pkgconf/mlt_arm_lpc2xxx_olpch2294_rom.ldi
new file mode 100644
index 0000000..5cc0442
--- /dev/null
+++ b/ecos/packages/hal/arm/lpc2xxx/olpch2294/current/include/pkgconf/mlt_arm_lpc2xxx_olpch2294_rom.ldi
@@ -0,0 +1,26 @@
+#include <cyg/infra/cyg_type.inc>
+
+MEMORY
+{
+ sram : ORIGIN = 0x40000000, LENGTH = 0x4000
+ ram : ORIGIN = 0x81000000, LENGTH = 0x100000
+ rom : ORIGIN = 0x00000000, LENGTH = 0x40000
+}
+
+SECTIONS
+{
+ SECTIONS_BEGIN
+ SECTION_rom_vectors (rom, 0x00000000, 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 (sram, 0x40000020, LMA_EQ_VMA)
+ SECTION_data (ram, 0x81000000, FOLLOWING (.gcc_except_table))
+ SECTION_bss (ram, ALIGN (0x4), LMA_EQ_VMA)
+ CYG_LABEL_DEFN(__heap1) = ALIGN (0x8);
+ SECTIONS_END
+}
+
diff --git a/ecos/packages/hal/arm/lpc2xxx/olpch2294/current/include/pkgconf/mlt_arm_lpc2xxx_olpch2294_romram.h b/ecos/packages/hal/arm/lpc2xxx/olpch2294/current/include/pkgconf/mlt_arm_lpc2xxx_olpch2294_romram.h
new file mode 100644
index 0000000..28ef240
--- /dev/null
+++ b/ecos/packages/hal/arm/lpc2xxx/olpch2294/current/include/pkgconf/mlt_arm_lpc2xxx_olpch2294_romram.h
@@ -0,0 +1,25 @@
+#ifndef __ASSEMBLER__
+#include <cyg/infra/cyg_type.h>
+#include <stddef.h>
+
+#endif
+
+#define CYGMEM_REGION_rom (0x00000000)
+#define CYGMEM_REGION_rom_SIZE (0x00040000)
+#define CYGMEM_REGION_rom_ATTR (CYGMEM_REGION_ATTR_R)
+#define CYGMEM_REGION_sram (0x40000000)
+#define CYGMEM_REGION_sram_SIZE (0x00004000)
+#define CYGMEM_REGION_sram_ATTR (CYGMEM_REGION_ATTR_R | CYGMEM_REGION_ATTR_W)
+#define CYGMEM_REGION_ram (0x81000000)
+#define CYGMEM_REGION_ram_SIZE (0x00100000)
+#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 (0x81100000 - (size_t) CYG_LABEL_NAME (__heap1))
+
diff --git a/ecos/packages/hal/arm/lpc2xxx/olpch2294/current/include/pkgconf/mlt_arm_lpc2xxx_olpch2294_romram.ldi b/ecos/packages/hal/arm/lpc2xxx/olpch2294/current/include/pkgconf/mlt_arm_lpc2xxx_olpch2294_romram.ldi
new file mode 100644
index 0000000..e9ee648
--- /dev/null
+++ b/ecos/packages/hal/arm/lpc2xxx/olpch2294/current/include/pkgconf/mlt_arm_lpc2xxx_olpch2294_romram.ldi
@@ -0,0 +1,25 @@
+#include <cyg/infra/cyg_type.inc>
+
+MEMORY
+{
+ sram : ORIGIN = 0x40000000, LENGTH = 0x4000
+ ram : ORIGIN = 0x81000000, LENGTH = 0x100000
+}
+
+SECTIONS
+{
+ SECTIONS_BEGIN
+ SECTION_fixed_vectors (sram, 0x40000020, LMA_EQ_VMA)
+ SECTION_rom_vectors (ram, 0x81000000, 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)
+ CYG_LABEL_DEFN(__heap1) = ALIGN (0x8);
+ SECTIONS_END
+}
+
diff --git a/ecos/packages/hal/arm/lpc2xxx/olpch2294/current/include/plf_io.h b/ecos/packages/hal/arm/lpc2xxx/olpch2294/current/include/plf_io.h
new file mode 100644
index 0000000..936d32b
--- /dev/null
+++ b/ecos/packages/hal/arm/lpc2xxx/olpch2294/current/include/plf_io.h
@@ -0,0 +1,67 @@
+#ifndef CYGONCE_HAL_PLF_IO_H
+#define CYGONCE_HAL_PLF_IO_H
+//=============================================================================
+//
+// plf_io.h
+//
+// Olimex LPC-H2294 board specific registers
+//
+//=============================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002, 2008 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): Sergei Gavrikov
+// Contributors: Sergei Gavrikov
+// Date: 2008-08-31
+// Purpose: Olimex LPC-H2294 board specific registers
+// Description:
+// Usage: #include <cyg/hal/plf_io.h>
+//
+//####DESCRIPTIONEND####
+//
+//=============================================================================
+// On-chip device base addresses
+
+#ifndef __ASSEMBLER__
+
+extern void hal_plf_hardware_init (void);
+#define HAL_PLF_HARDWARE_INIT() \
+ hal_plf_hardware_init()
+
+#endif // __ASSEMBLER__
+
+#endif // CYGONCE_HAL_PLF_IO_H
+//-----------------------------------------------------------------------------
+// end of plf_io.h
+
diff --git a/ecos/packages/hal/arm/lpc2xxx/olpch2294/current/misc/redboot_RAM.ecm b/ecos/packages/hal/arm/lpc2xxx/olpch2294/current/misc/redboot_RAM.ecm
new file mode 100644
index 0000000..f5c88fc
--- /dev/null
+++ b/ecos/packages/hal/arm/lpc2xxx/olpch2294/current/misc/redboot_RAM.ecm
@@ -0,0 +1,91 @@
+cdl_savefile_version 1;
+cdl_savefile_command cdl_savefile_version {};
+cdl_savefile_command cdl_savefile_command {};
+cdl_savefile_command cdl_configuration { description hardware template package };
+cdl_savefile_command cdl_package { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_component { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_option { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_interface { value_source user_value wizard_value inferred_value };
+
+cdl_configuration eCos {
+ description "" ;
+ hardware olpch2294 ;
+ template redboot ;
+ package -hardware CYGPKG_HAL_ARM current ;
+ package -hardware CYGPKG_HAL_ARM_LPC2XXX current ;
+ package -hardware CYGPKG_HAL_ARM_LPC2XXX_OLPCH2294 current ;
+ package -hardware CYGPKG_DEVS_FLASH_STRATA_V2 current ;
+ package -hardware CYGPKG_DEVS_FLASH_ARM_OLPCX2294_V2 current ;
+ package -hardware CYGPKG_IO_SERIAL_GENERIC_16X5X current ;
+ package -hardware CYGPKG_IO_SERIAL_ARM_LPC2XXX current ;
+ package -hardware CYGPKG_DEVICES_WATCHDOG_ARM_LPC2XXX current ;
+ package -template CYGPKG_HAL current ;
+ package -template CYGPKG_INFRA current ;
+ package -template CYGPKG_REDBOOT current ;
+ package -template CYGPKG_ISOINFRA current ;
+ package -template CYGPKG_LIBC_STRING current ;
+ package -template CYGPKG_CRC current ;
+ package CYGPKG_IO_FLASH current ;
+};
+
+cdl_option CYGFUN_LIBC_STRING_BSD_FUNCS {
+ inferred_value 0
+};
+
+cdl_option CYGIMP_HAL_COMMON_INTERRUPTS_USE_INTERRUPT_STACK {
+ inferred_value 0
+};
+
+cdl_option CYGNUM_HAL_COMMON_INTERRUPTS_STACK_SIZE {
+ user_value 4096
+};
+
+cdl_option CYGDBG_HAL_COMMON_INTERRUPTS_SAVE_MINIMUM_CONTEXT {
+ user_value 0
+};
+
+cdl_option CYGDBG_HAL_COMMON_CONTEXT_SAVE_MINIMUM {
+ inferred_value 0
+};
+
+cdl_option CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS {
+ inferred_value 1
+};
+
+cdl_option CYGSEM_HAL_USE_ROM_MONITOR {
+ inferred_value 0 0
+};
+
+cdl_component CYGHWR_HAL_ARM_LPC2XXX {
+ inferred_value LPC2294
+};
+
+cdl_component CYGBLD_BUILD_REDBOOT {
+ user_value 1
+};
+
+cdl_option CYGBLD_BUILD_REDBOOT_WITH_EXEC {
+ inferred_value 0
+};
+
+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_BSD_FUNCS_HEADER {
+ inferred_value 1 <cyg/libc/string/bsdstring.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>
+};
+
+
diff --git a/ecos/packages/hal/arm/lpc2xxx/olpch2294/current/misc/redboot_ROM.ecm b/ecos/packages/hal/arm/lpc2xxx/olpch2294/current/misc/redboot_ROM.ecm
new file mode 100644
index 0000000..dafb868
--- /dev/null
+++ b/ecos/packages/hal/arm/lpc2xxx/olpch2294/current/misc/redboot_ROM.ecm
@@ -0,0 +1,99 @@
+cdl_savefile_version 1;
+cdl_savefile_command cdl_savefile_version {};
+cdl_savefile_command cdl_savefile_command {};
+cdl_savefile_command cdl_configuration { description hardware template package };
+cdl_savefile_command cdl_package { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_component { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_option { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_interface { value_source user_value wizard_value inferred_value };
+
+cdl_configuration eCos {
+ description "" ;
+ hardware olpch2294 ;
+ template redboot ;
+ package -hardware CYGPKG_HAL_ARM current ;
+ package -hardware CYGPKG_HAL_ARM_LPC2XXX current ;
+ package -hardware CYGPKG_HAL_ARM_LPC2XXX_OLPCH2294 current ;
+ package -hardware CYGPKG_DEVS_FLASH_STRATA_V2 current ;
+ package -hardware CYGPKG_DEVS_FLASH_ARM_OLPCX2294_V2 current ;
+ package -hardware CYGPKG_IO_SERIAL_GENERIC_16X5X current ;
+ package -hardware CYGPKG_IO_SERIAL_ARM_LPC2XXX current ;
+ package -hardware CYGPKG_DEVICES_WATCHDOG_ARM_LPC2XXX current ;
+ package -template CYGPKG_HAL current ;
+ package -template CYGPKG_INFRA current ;
+ package -template CYGPKG_REDBOOT current ;
+ package -template CYGPKG_ISOINFRA current ;
+ package -template CYGPKG_LIBC_STRING current ;
+ package -template CYGPKG_CRC current ;
+ package CYGPKG_IO_FLASH current ;
+};
+
+cdl_option CYGFUN_LIBC_STRING_BSD_FUNCS {
+ inferred_value 0
+};
+
+cdl_option CYGIMP_HAL_COMMON_INTERRUPTS_USE_INTERRUPT_STACK {
+ inferred_value 0
+};
+
+cdl_option CYGNUM_HAL_COMMON_INTERRUPTS_STACK_SIZE {
+ user_value 4096
+};
+
+cdl_option CYGDBG_HAL_COMMON_INTERRUPTS_SAVE_MINIMUM_CONTEXT {
+ user_value 0
+};
+
+cdl_option CYGDBG_HAL_COMMON_CONTEXT_SAVE_MINIMUM {
+ inferred_value 0
+};
+
+cdl_option CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS {
+ inferred_value 1
+};
+
+cdl_option CYGSEM_HAL_ROM_MONITOR {
+ inferred_value 1
+};
+
+cdl_option CYGSEM_HAL_USE_ROM_MONITOR {
+ inferred_value 0 0
+};
+
+cdl_component CYGHWR_HAL_ARM_LPC2XXX {
+ inferred_value LPC2294
+};
+
+cdl_component CYG_HAL_STARTUP {
+ inferred_value ROM
+};
+
+cdl_component CYGBLD_BUILD_REDBOOT {
+ user_value 1
+};
+
+cdl_option CYGBLD_BUILD_REDBOOT_WITH_EXEC {
+ inferred_value 0
+};
+
+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_BSD_FUNCS_HEADER {
+ inferred_value 1 <cyg/libc/string/bsdstring.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>
+};
+
+
diff --git a/ecos/packages/hal/arm/lpc2xxx/olpch2294/current/misc/redboot_ROM_minimal.ecm b/ecos/packages/hal/arm/lpc2xxx/olpch2294/current/misc/redboot_ROM_minimal.ecm
new file mode 100644
index 0000000..ad2e61f
--- /dev/null
+++ b/ecos/packages/hal/arm/lpc2xxx/olpch2294/current/misc/redboot_ROM_minimal.ecm
@@ -0,0 +1,98 @@
+cdl_savefile_version 1;
+cdl_savefile_command cdl_savefile_version {};
+cdl_savefile_command cdl_savefile_command {};
+cdl_savefile_command cdl_configuration { description hardware template package };
+cdl_savefile_command cdl_package { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_component { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_option { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_interface { value_source user_value wizard_value inferred_value };
+
+cdl_configuration eCos {
+ description "" ;
+ hardware olpch2294 ;
+ template redboot ;
+ package -hardware CYGPKG_HAL_ARM current ;
+ package -hardware CYGPKG_HAL_ARM_LPC2XXX current ;
+ package -hardware CYGPKG_HAL_ARM_LPC2XXX_OLPCH2294 current ;
+ package -hardware CYGPKG_DEVS_FLASH_STRATA_V2 current ;
+ package -hardware CYGPKG_DEVS_FLASH_ARM_OLPCX2294_V2 current ;
+ package -hardware CYGPKG_IO_SERIAL_GENERIC_16X5X current ;
+ package -hardware CYGPKG_IO_SERIAL_ARM_LPC2XXX current ;
+ package -hardware CYGPKG_DEVICES_WATCHDOG_ARM_LPC2XXX current ;
+ package -template CYGPKG_HAL current ;
+ package -template CYGPKG_INFRA current ;
+ package -template CYGPKG_REDBOOT current ;
+ package -template CYGPKG_ISOINFRA current ;
+ package -template CYGPKG_LIBC_STRING current ;
+ package -template CYGPKG_CRC current ;
+};
+
+cdl_option CYGFUN_LIBC_STRING_BSD_FUNCS {
+ inferred_value 0
+};
+
+cdl_option CYGIMP_HAL_COMMON_INTERRUPTS_USE_INTERRUPT_STACK {
+ inferred_value 0
+};
+
+cdl_option CYGNUM_HAL_COMMON_INTERRUPTS_STACK_SIZE {
+ user_value 4096
+};
+
+cdl_option CYGDBG_HAL_COMMON_INTERRUPTS_SAVE_MINIMUM_CONTEXT {
+ user_value 0
+};
+
+cdl_option CYGDBG_HAL_COMMON_CONTEXT_SAVE_MINIMUM {
+ inferred_value 0
+};
+
+cdl_option CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS {
+ inferred_value 1
+};
+
+cdl_option CYGSEM_HAL_ROM_MONITOR {
+ inferred_value 1
+};
+
+cdl_option CYGSEM_HAL_USE_ROM_MONITOR {
+ inferred_value 0 0
+};
+
+cdl_component CYGHWR_HAL_ARM_LPC2XXX {
+ inferred_value LPC2294
+};
+
+cdl_component CYG_HAL_STARTUP {
+ inferred_value ROM
+};
+
+cdl_component CYGBLD_BUILD_REDBOOT {
+ user_value 1
+};
+
+cdl_option CYGBLD_BUILD_REDBOOT_WITH_EXEC {
+ inferred_value 0
+};
+
+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_BSD_FUNCS_HEADER {
+ inferred_value 1 <cyg/libc/string/bsdstring.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>
+};
+
+
diff --git a/ecos/packages/hal/arm/lpc2xxx/olpch2294/current/src/olpch2294_misc.c b/ecos/packages/hal/arm/lpc2xxx/olpch2294/current/src/olpch2294_misc.c
new file mode 100644
index 0000000..ac8e09b
--- /dev/null
+++ b/ecos/packages/hal/arm/lpc2xxx/olpch2294/current/src/olpch2294_misc.c
@@ -0,0 +1,111 @@
+//==========================================================================
+//
+// olpch2294_misc.c
+//
+// HAL misc board support code for Olimex LPC-H2294 header board
+//
+//==========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002, 2008 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//==========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): Sergei Gavrikov
+// Contributors: Sergei Gavrikov
+// Date: 2008-08-31
+// Purpose: HAL board support
+// Description: Implementations of HAL board interfaces
+//
+//####DESCRIPTIONEND####
+//
+//========================================================================*/
+
+#include <pkgconf/hal.h>
+#include <cyg/hal/hal_io.h> // IO macros
+#include <cyg/hal/hal_intr.h>
+
+#include <cyg/infra/cyg_type.h> // base types
+#include <cyg/hal/var_io.h>
+
+extern void cyg_hal_plf_serial_init (void);
+
+// There is alone diagnostic LED on the board.
+static __inline__ void
+_led (bool state)
+{
+ HAL_WRITE_UINT32 (CYGARC_HAL_LPC2XXX_REG_IO_BASE +
+ CYGARC_HAL_LPC2XXX_REG_IO0SET, (1 << 30));
+ if (state)
+ HAL_WRITE_UINT32 (CYGARC_HAL_LPC2XXX_REG_IO_BASE +
+ CYGARC_HAL_LPC2XXX_REG_IO0CLR, (1 << 30));
+}
+
+//--------------------------------------------------------------------------
+// hal_lpc2xxx_set_leds --
+//
+void
+hal_lpc2xxx_set_leds (int mask)
+{
+ _led (mask & 1);
+}
+
+//--------------------------------------------------------------------------
+// cyg_hal_plf_comms_init --
+//
+void
+cyg_hal_plf_comms_init (void)
+{
+ static int initialized = 0;
+
+ if (initialized)
+ return;
+ initialized = 1;
+
+ cyg_hal_plf_serial_init ();
+}
+
+#ifdef HAL_PLF_HARDWARE_INIT
+//--------------------------------------------------------------------------
+// hal_plf_hardware_init --
+//
+void
+hal_plf_hardware_init (void)
+{
+ // Platform HAL does not use the second LPC2XXX UART. To be sure that we
+ // won't meet any spurios interrupts on UART1 anymore, mask that vector.
+ HAL_INTERRUPT_MASK(CYGNUM_HAL_INTERRUPT_UART1);
+}
+#endif // HAL_PLF_HARDWARE_INIT
+
+// indent: --indent-level4 -br -nut; vim: expandtab tabstop=4 shiftwidth=4
+//--------------------------------------------------------------------------
+// EOF olpch2294_misc.c
diff --git a/ecos/packages/hal/arm/lpc2xxx/olpch2294/current/src/redboot_cmds.c b/ecos/packages/hal/arm/lpc2xxx/olpch2294/current/src/redboot_cmds.c
new file mode 100644
index 0000000..5e14e21
--- /dev/null
+++ b/ecos/packages/hal/arm/lpc2xxx/olpch2294/current/src/redboot_cmds.c
@@ -0,0 +1,115 @@
+//==========================================================================
+//
+// redboot_cmds.c
+//
+// OLPCH2294 [platform] specific RedBoot commands
+//
+//==========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002, 2008 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//==========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): Sergei Gavrikov
+// Contributors: Sergei Gavrikov
+// Date: 2008-08-31
+// Purpose:
+// Description:
+//
+// This code is part of RedBoot (tm).
+//
+//####DESCRIPTIONEND####
+//
+//========================================================================*/
+
+#include <cyg/hal/hal_diag.h>
+#include <redboot.h>
+
+// CLI functions
+static void do_echo (int argc, char *argv[]);
+RedBoot_cmd ("echo",
+ "Outputs the args. If -n is specified, the trailing newline is suppressed.",
+ "-n [arg ...]", do_echo);
+
+static void do_led (int argc, char *argv[]);
+RedBoot_cmd ("led", "Manage diagnostic led(s)", "[-m mask]", do_led);
+
+//--------------------------------------------------------------------------
+// do_echo --
+//
+static void
+do_echo (int argc, char *argv[])
+{
+ bool newline = true;
+ if (argc > 1) {
+ int i = 1;
+ if (strncmp (&argv[i][0], "-n", 2) == 0) {
+ newline = false;
+ i++;
+ }
+ for (; i < argc; i++) {
+ diag_write_string (&argv[i][0]);
+ if ((argc - i) > 1)
+ diag_write_char (' ');
+ }
+ }
+ if (newline)
+ diag_write_char ('\n');
+ return;
+}
+
+//--------------------------------------------------------------------------
+// do_led --
+//
+static void
+do_led (int argc, char *argv[])
+{
+ struct option_info opts[1];
+ unsigned long mask;
+ bool mask_set;
+
+ init_opts (&opts[0], 'm', true, OPTION_ARG_TYPE_NUM,
+ &mask, &mask_set, "mask");
+ if (!scan_opts (argc, argv, 1, opts, 1, 0, 0, "")) {
+ return;
+ }
+ if (!mask_set) {
+ diag_printf ("led what <mask>?\n");
+ return;
+ }
+ hal_lpc2xxx_set_leds (mask);
+ return;
+}
+
+// indent: --indent-level4 -br -nut; vim: expandtab tabstop=4 shiftwidth=4
+//--------------------------------------------------------------------------
+// EOF redboot_cmds.c
diff --git a/ecos/packages/hal/arm/lpc2xxx/olpcl2294/current/ChangeLog b/ecos/packages/hal/arm/lpc2xxx/olpcl2294/current/ChangeLog
new file mode 100644
index 0000000..cb42e54
--- /dev/null
+++ b/ecos/packages/hal/arm/lpc2xxx/olpcl2294/current/ChangeLog
@@ -0,0 +1,74 @@
+2013-09-11 Uwe Kindler <uwe_kindler@web.de>
+
+ * cdl/hal_arm_lpc2xxx_olpcl2294.cdl: Add support for CAN interface 0.
+
+2012-03-07 Sergei Gavrikov <sergei.gavrikov@gmail.com>
+
+ * include/hal_platform_setup.h: Fix assembler warning (s suffix on
+ comparison instruction is deprecated), s/cmps/cmp/.
+
+2010-11-03 JF Argentino <jf.argentino@osean.fr>
+2010-11-24 Sergei Gavrikov <sergei.gavrikov@gmail.com>
+
+ * cdl/hal_arm_lpc2xxx_olpcl2294.cdl: Add support for LPC-L2294-8M
+ board: new CDL component CYGHWR_HAL_ARM_LPC2XXX_OLPCL2294_VARIANT
+ with CDL option CYGHWR_HAL_ARM_LPC2XXX_OLPCL2294_RAMSIZE.
+ * include/hal_platform_setup.h: Add support for LPC-L2294-8M board.
+ * include/pkgconf/mlt_arm_lpc2xxx_olpcl2294_{rom,ram}.{h,ldi}: Define
+ RAM size with new CDL option.
+
+2009-02-02 Sergei Gavrikov <sergei.gavrikov@gmail.com>
+
+ * cdl/hal_arm_lpc2xxx_olpcl2294.cdl: Expanded a list the legal baud
+ rates for both diagnostic and debug channels (upon 230400b bps).
+ * include/hal_platform_setup.h, include/plf_io.h: Extra tabs expanded.
+ * include/hal_platform_setup.h: Fixed a comment about JTAG pinouts.
+ * src/olpcl2294_misc.c: Removed odd _impure_ptr stub.
+
+2009-01-31 Bart Veer <bartv@ecoscentric.com>
+
+ * cdl/hal_arm_lpc2xxx_olpcl2294.cdl: update compiler flags for gcc 4.x
+
+2008-12-03 Sergei Gavrikov <sergei.gavrikov@gmail.com>
+
+ * misc/redboot_*.ecm: Rebuilt since target uses flash_olpcx2294_v2
+ driver.
+
+2008-08-31 Sergei Gavrikov <sergei.gavrikov@gmail.com>
+
+ * LPC-L2294 development board package
+ * cdl/hal_arm_lpc2xxx_olpcl2294.cdl
+ * include/hal_platform_setup.h
+ * include/pkgconf/mlt_arm_lpc2xxx_olpcl2294_ram.h
+ * include/pkgconf/mlt_arm_lpc2xxx_olpcl2294_ram.ldi
+ * include/pkgconf/mlt_arm_lpc2xxx_olpcl2294_rom.h
+ * include/pkgconf/mlt_arm_lpc2xxx_olpcl2294_rom.ldi
+ * include/plf_io.h
+ * misc/redboot_ROM.ecm
+ * src/olpcl2294_misc.c
+ * src/redboot_cmds.c
+
+//===========================================================================
+// ####GPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 2008 Free Software Foundation, Inc.
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 2 or (at your option) any
+// later version.
+//
+// This program is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the
+// Free Software Foundation, Inc., 51 Franklin Street,
+// Fifth Floor, Boston, MA 02110-1301, USA.
+// -------------------------------------------
+// ####GPLCOPYRIGHTEND####
+//===========================================================================
+
diff --git a/ecos/packages/hal/arm/lpc2xxx/olpcl2294/current/cdl/hal_arm_lpc2xxx_olpcl2294.cdl b/ecos/packages/hal/arm/lpc2xxx/olpcl2294/current/cdl/hal_arm_lpc2xxx_olpcl2294.cdl
new file mode 100644
index 0000000..3f313f7
--- /dev/null
+++ b/ecos/packages/hal/arm/lpc2xxx/olpcl2294/current/cdl/hal_arm_lpc2xxx_olpcl2294.cdl
@@ -0,0 +1,315 @@
+# ====================================================================
+#
+# hal_arm_lpc2xxx_olpcl2294.cdl
+#
+# ARM LPC2XXX OLPCL2294 development board package configuration
+# data, for both 1MB and 8MB of external RAM
+#
+# ====================================================================
+## ####ECOSGPLCOPYRIGHTBEGIN####
+## -------------------------------------------
+## This file is part of eCos, the Embedded Configurable Operating System.
+## Copyright (C) 1998, 1999, 2000, 2001, 2002, 2008 Free Software Foundation, Inc.
+##
+## eCos is free software; you can redistribute it and/or modify it under
+## the terms of the GNU General Public License as published by the Free
+## Software Foundation; either version 2 or (at your option) any later
+## version.
+##
+## eCos is distributed in the hope that it will be useful, but WITHOUT
+## ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+## FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+## for more details.
+##
+## You should have received a copy of the GNU General Public License
+## along with eCos; if not, write to the Free Software Foundation, Inc.,
+## 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+##
+## As a special exception, if other files instantiate templates or use
+## macros or inline functions from this file, or you compile this file
+## and link it with other works to produce a work based on this file,
+## this file does not by itself cause the resulting work to be covered by
+## the GNU General Public License. However the source code for this file
+## must still be made available in accordance with section (3) of the GNU
+## General Public License v2.
+##
+## This exception does not invalidate any other reasons why a work based
+## on this file might be covered by the GNU General Public License.
+## -------------------------------------------
+## ####ECOSGPLCOPYRIGHTEND####
+# ====================================================================
+######DESCRIPTIONBEGIN####
+#
+# Author(s): Sergei Gavrikov
+# Contributors: Sergei Gavrikov
+# Date: 2008-08-31
+#
+#####DESCRIPTIONEND####
+#
+# ====================================================================
+
+cdl_package CYGPKG_HAL_ARM_LPC2XXX_OLPCL2294 {
+ display "Olimex LPC-L2294 development board HAL"
+ parent CYGPKG_HAL_ARM_LPC2XXX
+ define_header hal_arm_lpc2xxx_olpcl2294.h
+ include_dir cyg/hal
+ hardware
+ implements CYGINT_DEVS_CAN_LPC2XXX_CAN0
+ description "
+ The OLPCL2294 HAL package provides the support needed to run
+ eCos on Olimex LPC-L2294-1MB or LPC-L2294-8MB development board."
+
+ compile olpcl2294_misc.c
+
+ requires { CYGHWR_HAL_ARM_LPC2XXX == "LPC2294" }
+
+ 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_lpc2xxx.h>"
+ puts $::cdl_system_header "#define CYGBLD_HAL_PLATFORM_H <pkgconf/hal_arm_lpc2xxx_olpcl2294.h>"
+ puts $::cdl_header "#define HAL_PLATFORM_CPU \"ARM7TDMI-S\""
+ puts $::cdl_header "#define HAL_PLATFORM_BOARD \"Olimex LPC-L2294 development board\""
+ puts $::cdl_header "#define HAL_PLATFORM_EXTRA \"\""
+ }
+
+ cdl_component CYGHWR_HAL_ARM_LPC2XXX_OLPCL2294_VARIANT {
+ display "OLPCL2294 variant used"
+ flavor data
+ default_value { "OLPCL2294_1M" }
+ legal_values { "OLPCL2294_1M" "OLPCL2294_8M" }
+ define -file system.h CYGHWR_OLIMEX_BOARD
+ description "Choose the OLIMEX LPC-L2294 board variant"
+
+ cdl_option CYGHWR_HAL_ARM_LPC2XXX_OLPCL2294_RAMSIZE {
+ display "External RAM size"
+ flavor data
+ calculated { is_substr(CYGHWR_HAL_ARM_LPC2XXX_OLPCL2294_VARIANT, "1M") ?
+ 0x100000 : 0x800000 }
+ description "The installed RAM size depends on the board variant"
+ }
+ }
+
+ 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 "Choose RAM or ROM startup type."
+ }
+
+ cdl_option CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_DEFAULT {
+ display "Default console channel."
+ flavor data
+ calculated 0
+ }
+
+ 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"
+ active_if CYGPRI_HAL_VIRTUAL_VECTOR_DEBUG_CHANNEL_CONFIGURABLE
+ flavor data
+ legal_values 0 to CYGNUM_HAL_VIRTUAL_VECTOR_COMM_CHANNELS-1
+ default_value 0
+ description "
+ There is one serial connector on the board."
+ }
+
+ cdl_option CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL {
+ display "Diagnostic serial port"
+ active_if CYGPRI_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_CONFIGURABLE
+ flavor data
+ legal_values 0 to CYGNUM_HAL_VIRTUAL_VECTOR_COMM_CHANNELS-1
+ default_value CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_DEFAULT
+ description "
+ There is one serial connector on the board."
+ }
+
+ cdl_option CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_BAUD {
+ display "Diagnostic serial port baud rate"
+ flavor data
+ legal_values 9600 19200 38400 57600 115200 230400
+ default_value 38400
+ description "
+ This option selects the baud rate used for the diagnostic
+ port."
+ }
+
+ cdl_option CYGNUM_HAL_VIRTUAL_VECTOR_DEBUG_CHANNEL_BAUD {
+ display "GDB serial port baud rate"
+ flavor data
+ legal_values 9600 19200 38400 57600 115200 230400
+ default_value 38400
+ description "
+ This option controls the baud rate used for the GDB
+ connection."
+ }
+
+ # Real-time clock/counter specifics
+ cdl_option CYGNUM_HAL_ARM_LPC2XXX_XTAL_FREQ {
+ display "CPU xtal frequency"
+ flavor data
+ default_value {14745600}
+ }
+
+ cdl_option CYGNUM_HAL_ARM_LPC2XXX_PLL_MUL {
+ display "CPU PLL multiplier"
+ flavor data
+ default_value {4}
+ }
+
+ cdl_option CYGNUM_HAL_ARM_LPC2XXX_CLOCK_SPEED {
+ display "CPU clock speed"
+ flavor data
+ calculated { CYGNUM_HAL_ARM_LPC2XXX_PLL_MUL *
+ CYGNUM_HAL_ARM_LPC2XXX_XTAL_FREQ }
+ }
+
+ 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 { "arm-eabi" }
+ 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 { CYGBLD_GLOBAL_WARNFLAGS . CYGBLD_ARCH_CFLAGS .
+ "-mcpu=arm7tdmi -g -O2 -ffunction-sections -fdata-sections -fno-rtti -fno-exceptions" }
+ 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 { CYGBLD_ARCH_LDFLAGS . "-mcpu=arm7tdmi -Wl,--gc-sections -Wl,-static -g -nostdlib" }
+ description "
+ This option controls the global linker flags. Individual
+ packages may define options which override these global
+ flags."
+ }
+ }
+
+ 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 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_REDBOOT_HAL_OPTIONS {
+ display "Redboot HAL options"
+ flavor none
+ no_define
+ parent CYGPKG_REDBOOT
+ active_if CYGPKG_REDBOOT
+ description "
+ This option lists the target's requirements for a valid
+ Redboot configuration."
+
+ cdl_option CYGBLD_BUILD_REDBOOT_BIN {
+ display "Build Redboot ROM binary image"
+ active_if CYGBLD_BUILD_REDBOOT
+ requires { !CYGBLD_BUILD_REDBOOT_WITH_EXEC }
+ default_value 1
+ no_define
+ description "
+ This option enables the conversion of the Redboot ELF
+ image to a binary image suitable for ROM programming."
+
+ compile -library=libextras.a redboot_cmds.c
+
+ compile -library=libextras.a redboot_cmds.c
+
+ make -priority 325 {
+ <PREFIX>/bin/redboot.bin : <PREFIX>/bin/redboot.elf
+ $(OBJCOPY) --strip-debug $< $(@:.bin=.img)
+ $(OBJCOPY) -O srec $< $(@:.bin=.srec)
+ $(OBJCOPY) -O ihex $< $(@:.bin=.hex)
+ $(OBJCOPY) -O binary $< $@
+ }
+
+ }
+ }
+
+ cdl_component CYGHWR_MEMORY_LAYOUT {
+ display "Memory layout"
+ flavor data
+ no_define
+ calculated { (CYG_HAL_STARTUP == "RAM") ? "arm_lpc2xxx_olpcl2294_ram" :
+ "arm_lpc2xxx_olpcl2294_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_lpc2xxx_olpcl2294_ram.ldi>" :
+ "<pkgconf/mlt_arm_lpc2xxx_olpcl2294_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_lpc2xxx_olpcl2294_ram.h>" :
+ "<pkgconf/mlt_arm_lpc2xxx_olpcl2294_rom.h>" }
+ }
+ }
+}
+
diff --git a/ecos/packages/hal/arm/lpc2xxx/olpcl2294/current/include/hal_platform_setup.h b/ecos/packages/hal/arm/lpc2xxx/olpcl2294/current/include/hal_platform_setup.h
new file mode 100644
index 0000000..392755f
--- /dev/null
+++ b/ecos/packages/hal/arm/lpc2xxx/olpcl2294/current/include/hal_platform_setup.h
@@ -0,0 +1,243 @@
+#ifndef CYGONCE_HAL_PLATFORM_SETUP_H
+#define CYGONCE_HAL_PLATFORM_SETUP_H
+/*=============================================================================
+//
+// hal_platform_setup.h
+//
+// Platform specific support for HAL (assembly code)
+//
+//=============================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002, 2008 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): Sergei Gavrikov
+// Contributors: Sergei Gavrikov
+// Date: 2008-08-31
+// Purpose: Olimex LPC-L2294-1MB platform specific support routines
+// Description:
+// Usage: #include <cyg/hal/hal_platform_setup.h>
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================*/
+
+#include <pkgconf/system.h>
+#include <pkgconf/hal.h>
+#include <cyg/hal/var_io.h>
+
+ // There is one only diagnostic led marked STAT on the board
+ // |P1.23 330 Om LED
+ // |------\/\/\/-----|<|-----> 3.3 V
+ // |
+
+ .macro _led_init
+ ldr r0,=CYGARC_HAL_LPC2XXX_REG_IO_BASE
+ ldr r1,[r0,#CYGARC_HAL_LPC2XXX_REG_IO1DIR]
+ orr r1,r1,#(1<<23)
+ str r1,[r0,#CYGARC_HAL_LPC2XXX_REG_IO1DIR]
+
+ .endm // _led_init
+
+ .macro _led x
+ ldr r0,=CYGARC_HAL_LPC2XXX_REG_IO_BASE
+ ldr r1,=(1<<23)
+ str r1,[r0,#CYGARC_HAL_LPC2XXX_REG_IO1SET]
+ ldr r1,=((\x & 1)<<23)
+ str r1,[r0,#CYGARC_HAL_LPC2XXX_REG_IO1CLR]
+
+ .endm // _led
+
+ .macro _pll_init
+ ldr r0,=CYGARC_HAL_LPC2XXX_REG_SCB_BASE
+
+ mov r2,#0xAA
+ mov r3,#0x55
+
+ // enable PLL
+ mov r1,#1
+ str r1,[r0,#CYGARC_HAL_LPC2XXX_REG_PLLCON]
+
+ mov r1,#(0x20 | (CYGNUM_HAL_ARM_LPC2XXX_PLL_MUL - 1))
+ str r1,[r0,#CYGARC_HAL_LPC2XXX_REG_PLLCFG]
+
+ // update PLL registers
+ str r2,[r0,#CYGARC_HAL_LPC2XXX_REG_PLLFEED]
+ str r3,[r0,#CYGARC_HAL_LPC2XXX_REG_PLLFEED]
+
+ // wait for it to lock
+1:
+ ldr r1,[r0,#CYGARC_HAL_LPC2XXX_REG_PLLSTAT]
+ ands r1,r1,#(1<<10)
+ beq 1b
+
+ // connect PLL
+ mov r1,#3
+ str r1,[r0,#CYGARC_HAL_LPC2XXX_REG_PLLCON]
+
+ // update PLL registers
+ str r2,[r0,#CYGARC_HAL_LPC2XXX_REG_PLLFEED]
+ str r3,[r0,#CYGARC_HAL_LPC2XXX_REG_PLLFEED]
+
+ .endm // _pll_init
+
+ .macro _mem_init
+ // copy first 64 bytes from ROM to on-chip RAM
+ mov r0,#0
+ mov r1,#0x40000000
+ mov r2,#0x40
+1:
+ ldr r3,[r0,#4]!
+ str r3,[r1,#4]!
+ cmp r0,r2
+ bne 1b
+
+ ldr r0,=CYGARC_HAL_LPC2XXX_REG_SCB_BASE
+ mov r1,#2 // interrupt vector table is mapped to RAM
+ str r1, [r0,#CYGARC_HAL_LPC2XXX_REG_MEMMAP]
+ // flash timings
+ mov r1,#4
+ str r1,[r0,#CYGARC_HAL_LPC2XXX_REG_MAMTIM]
+ mov r1,#2 // 2, full MAM
+ str r1,[r0,#CYGARC_HAL_LPC2XXX_REG_MAMCR]
+
+ // External memory interface depends on the bank width (32, 16 or 8 bit
+ // selected via MW bits in corresponding BCFG register). Furthermore,
+ // choice of the memory chip(s) will require an adequate setup of RBLE
+ // bit in BCFG register, too. RBLE = 0 in case of 8-bit based external
+ // memories, while memory chips capable of accepting 16 or 32 bit wide
+ // data will work with RBLE = 1.
+ //
+ // BANK0: FLASH memory
+ // -TE28F160C3BD70 (1024Kx16 x 1 = 2MB, 70nS) for 1MB RAM version
+ // -TE28F320C3BD70 (2048Kx16 x 1 = 4MB, 70ns) for 8MB RAM version
+ ldr r0,=CYGARC_HAL_LPC2XXX_REG_BCFG0
+ ldr r1,= (0x3 << 0) /* IDCY=3, idle timing */\
+ | (0x4 << 5) /* WST1=4, read timing */\
+ | (0x1 << 10) /* RBLE=1 */\
+ | (0x6 << 11) /* WST2=6, write timing */\
+ | (0x1 << 28) /* MW=1, 16-bits */
+ str r1,[r0]
+
+ // BANK1: external RAM
+ // Warning: changed these timings, you can fall dramatically the eCos
+ // kernel performance. Check it then using the eCos 'tm_basic' test.
+ // TODO A way to make the timing value dependent of CCLK
+ ldr r0,=CYGARC_HAL_LPC2XXX_REG_BCFG1
+#if defined (CYGHWR_OLIMEX_BOARD_OLPCL2294_1M)
+ // 1MB version uses K6R4016V1D (512Kx16 x 2, 10nS)
+ ldr r1,= (0x0 << 0) /* IDCY=0, idle cycles */\
+ | (0x0 << 5) /* WST1=0, read timing */\
+ | (0x1 << 10) /* RBLE=1 */\
+ | (0x0 << 11) /* WST2=0, write timing */\
+ | (0x2 << 28) /* MW=2, 32-bits */
+#elif defined (CYGHWR_OLIMEX_BOARD_OLPCL2294_8M)
+ // 8MB version uses a K1S321611C (2048Kx16 x 2, 70ns)
+ ldr r1,= (0x3 << 0) /* IDCY=3, idle cycles TODO */\
+ | (0x4 << 5) /* WST1=4, read timing */\
+ | (0x1 << 10) /* RBLE=1 */\
+ | (0x4 << 11) /* WST2=4, write timing */\
+ | (0x2 << 28) /* MW=2, 32-bits */
+#else
+#error Board not supported, OLIMEX LPC-L2294 1M or 8M only for now.
+#endif
+ str r1,[r0]
+
+ // BANK2: Ethernet
+ // CS8900A (16-bit, an interrupt driven mode)
+ ldr r0,=CYGARC_HAL_LPC2XXX_REG_BCFG2
+ ldr r1,= (0x1 << 0) /* IDCY=1, idle cycles */\
+ | (0x8 << 5) /* WST1=8, read timing */\
+ | (0x1 << 10) /* RBLE=1 */\
+ | (0x6 << 11) /* WST2=6, write timing */\
+ | (0x1 << 28) /* MW=1, 16-bits */
+ str r1,[r0]
+
+ .endm // _mem_init
+
+ .macro _gpio_init
+ ldr r0,=CYGARC_HAL_LPC2XXX_REG_PIN_BASE
+
+ // Configure P0.15:0 as PIO, but UART0, EINT2
+ ldr r1,= (0x1 << 0) /* P0.0 as TxD0 */\
+ | (0x1 << 2) /* P0.1 as RxD0 */\
+ | (0x2 << 30) /* P0.1 as EINT2(CL/IRQ)*/
+ str r1,[r0,#CYGARC_HAL_LPC2XXX_REG_PINSEL0]
+
+ // Configure P0.30:16 as PIO, but EINT0 ('BUT' button)
+ ldr r1,= (0x1 << 0) /* P0.16 as EINT0 */
+ str r1,[r0,#CYGARC_HAL_LPC2XXX_REG_PINSEL1]
+
+ // GPIO P1.25:16, P3.24 are used as PIO
+ ldr r1,= (0x1 << 2) /* P1.31:26 Debug port */\
+ | (0x2 << 4) /* D31:0,CS0,OE,BLS0-3 */\
+ | (0x1 << 8) /* WE enabled */\
+ | (0x1 << 11) /* CS1 enabled */\
+ | (0x1 << 14) /* CS2 enabled */\
+ | (0x1 << 23) /* A0 enabled */\
+ | (0x1 << 24) /* A1 enabled */\
+ | (0x7 << 25) /* A23:2 enabled */
+ str r1,[r0,#CYGARC_HAL_LPC2XXX_REG_PINSEL2]
+
+ .endm // _gpio_init
+
+#define CYGHWR_LED_MACRO _led \x
+
+#if defined(CYG_HAL_STARTUP_ROM)
+
+ .macro _setup
+
+ _pll_init
+
+ _mem_init
+
+ _gpio_init
+
+ _led_init
+
+ .endm
+
+#define CYGSEM_HAL_ROM_RESET_USES_JUMP
+
+#else
+
+ .macro _setup
+
+ .endm
+
+#endif // CYG_HAL_STARTUP_ROM
+
+#define PLATFORM_SETUP1 _setup
+
+#endif // CYGONCE_HAL_PLATFORM_SETUP_H
+
diff --git a/ecos/packages/hal/arm/lpc2xxx/olpcl2294/current/include/pkgconf/mlt_arm_lpc2xxx_olpcl2294_ram.h b/ecos/packages/hal/arm/lpc2xxx/olpcl2294/current/include/pkgconf/mlt_arm_lpc2xxx_olpcl2294_ram.h
new file mode 100644
index 0000000..791dee0
--- /dev/null
+++ b/ecos/packages/hal/arm/lpc2xxx/olpcl2294/current/include/pkgconf/mlt_arm_lpc2xxx_olpcl2294_ram.h
@@ -0,0 +1,19 @@
+#ifndef __ASSEMBLER__
+#include <cyg/infra/cyg_type.h>
+#include <stddef.h>
+
+#endif
+
+#define CYGMEM_REGION_ram (0x81000000)
+#define CYGMEM_REGION_ram_SIZE (CYGHWR_HAL_ARM_LPC2XXX_OLPCL2294_RAMSIZE)
+#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 (CYGMEM_REGION_ram + CYGMEM_REGION_ram_SIZE - (size_t) CYG_LABEL_NAME (__heap1))
+
diff --git a/ecos/packages/hal/arm/lpc2xxx/olpcl2294/current/include/pkgconf/mlt_arm_lpc2xxx_olpcl2294_ram.ldi b/ecos/packages/hal/arm/lpc2xxx/olpcl2294/current/include/pkgconf/mlt_arm_lpc2xxx_olpcl2294_ram.ldi
new file mode 100644
index 0000000..1e63b24
--- /dev/null
+++ b/ecos/packages/hal/arm/lpc2xxx/olpcl2294/current/include/pkgconf/mlt_arm_lpc2xxx_olpcl2294_ram.ldi
@@ -0,0 +1,25 @@
+#include <cyg/infra/cyg_type.inc>
+
+MEMORY
+{
+ ram0 : ORIGIN = 0x40000000, LENGTH = 0x4000
+ ram : ORIGIN = 0x81000000, LENGTH = CYGHWR_HAL_ARM_LPC2XXX_OLPCL2294_RAMSIZE
+}
+
+SECTIONS
+{
+ SECTIONS_BEGIN
+ SECTION_fixed_vectors (ram0, 0x40000020, LMA_EQ_VMA)
+ SECTION_rom_vectors (ram, 0x81010000, 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)
+ CYG_LABEL_DEFN(__heap1) = ALIGN (0x8);
+ SECTIONS_END
+}
+
diff --git a/ecos/packages/hal/arm/lpc2xxx/olpcl2294/current/include/pkgconf/mlt_arm_lpc2xxx_olpcl2294_rom.h b/ecos/packages/hal/arm/lpc2xxx/olpcl2294/current/include/pkgconf/mlt_arm_lpc2xxx_olpcl2294_rom.h
new file mode 100644
index 0000000..68ba959
--- /dev/null
+++ b/ecos/packages/hal/arm/lpc2xxx/olpcl2294/current/include/pkgconf/mlt_arm_lpc2xxx_olpcl2294_rom.h
@@ -0,0 +1,22 @@
+#ifndef __ASSEMBLER__
+#include <cyg/infra/cyg_type.h>
+#include <stddef.h>
+
+#endif
+
+#define CYGMEM_REGION_rom (0x00000000)
+#define CYGMEM_REGION_rom_SIZE (0x00040000)
+#define CYGMEM_REGION_rom_ATTR (CYGMEM_REGION_ATTR_R)
+#define CYGMEM_REGION_ram (0x81000000)
+#define CYGMEM_REGION_ram_SIZE (CYGHWR_HAL_ARM_LPC2XXX_OLPCL2294_RAMSIZE)
+#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 (CYGMEM_REGION_ram + CYGMEM_REGION_ram_SIZE - (size_t) CYG_LABEL_NAME (__heap1))
+
diff --git a/ecos/packages/hal/arm/lpc2xxx/olpcl2294/current/include/pkgconf/mlt_arm_lpc2xxx_olpcl2294_rom.ldi b/ecos/packages/hal/arm/lpc2xxx/olpcl2294/current/include/pkgconf/mlt_arm_lpc2xxx_olpcl2294_rom.ldi
new file mode 100644
index 0000000..8d5e254
--- /dev/null
+++ b/ecos/packages/hal/arm/lpc2xxx/olpcl2294/current/include/pkgconf/mlt_arm_lpc2xxx_olpcl2294_rom.ldi
@@ -0,0 +1,26 @@
+#include <cyg/infra/cyg_type.inc>
+
+MEMORY
+{
+ ram0 : ORIGIN = 0x40000000, LENGTH = 0x4000
+ ram : ORIGIN = 0x81000000, LENGTH = CYGHWR_HAL_ARM_LPC2XXX_OLPCL2294_RAMSIZE
+ rom : ORIGIN = 0x00000000, LENGTH = 0x40000
+}
+
+SECTIONS
+{
+ SECTIONS_BEGIN
+ SECTION_rom_vectors (rom, 0x00000000, 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 (ram0, 0x40000020, LMA_EQ_VMA)
+ SECTION_data (ram, 0x81000000, FOLLOWING (.gcc_except_table))
+ SECTION_bss (ram, ALIGN (0x4), LMA_EQ_VMA)
+ CYG_LABEL_DEFN(__heap1) = ALIGN (0x8);
+ SECTIONS_END
+}
+
diff --git a/ecos/packages/hal/arm/lpc2xxx/olpcl2294/current/include/plf_io.h b/ecos/packages/hal/arm/lpc2xxx/olpcl2294/current/include/plf_io.h
new file mode 100644
index 0000000..6d84ced
--- /dev/null
+++ b/ecos/packages/hal/arm/lpc2xxx/olpcl2294/current/include/plf_io.h
@@ -0,0 +1,66 @@
+#ifndef CYGONCE_HAL_PLF_IO_H
+#define CYGONCE_HAL_PLF_IO_H
+//=============================================================================
+//
+// plf_io.h
+//
+// Olimex LPC-L2294-1MB board specific registers
+//
+//=============================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002, 2008 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): Sergei Gavrikov
+// Contributors: Sergei Gavrikov
+// Date: 2008-08-31
+// Purpose: Olimex LPC-L2294-1MB board specific registers
+// Description:
+// Usage: #include <cyg/hal/plf_io.h>
+//
+//####DESCRIPTIONEND####
+//
+//=============================================================================
+// On-chip device base addresses
+
+#ifndef __ASSEMBLER__
+extern void hal_plf_hardware_init(void);
+#define HAL_PLF_HARDWARE_INIT() \
+ hal_plf_hardware_init()
+
+#endif // __ASSEMBLER__
+
+//-----------------------------------------------------------------------------
+// end of plf_io.h
+#endif // CYGONCE_HAL_PLF_IO_H
+
diff --git a/ecos/packages/hal/arm/lpc2xxx/olpcl2294/current/misc/redboot_RAM.ecm b/ecos/packages/hal/arm/lpc2xxx/olpcl2294/current/misc/redboot_RAM.ecm
new file mode 100644
index 0000000..458b23e
--- /dev/null
+++ b/ecos/packages/hal/arm/lpc2xxx/olpcl2294/current/misc/redboot_RAM.ecm
@@ -0,0 +1,104 @@
+cdl_savefile_version 1;
+cdl_savefile_command cdl_savefile_version {};
+cdl_savefile_command cdl_savefile_command {};
+cdl_savefile_command cdl_configuration { description hardware template package };
+cdl_savefile_command cdl_package { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_component { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_option { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_interface { value_source user_value wizard_value inferred_value };
+
+cdl_configuration eCos {
+ description "" ;
+ hardware olpcl2294 ;
+ template redboot ;
+ package -hardware CYGPKG_HAL_ARM current ;
+ package -hardware CYGPKG_HAL_ARM_LPC2XXX current ;
+ package -hardware CYGPKG_HAL_ARM_LPC2XXX_OLPCL2294 current ;
+ package -hardware CYGPKG_DEVS_FLASH_STRATA_V2 current ;
+ package -hardware CYGPKG_DEVS_FLASH_ARM_OLPCX2294_V2 current ;
+ package -hardware CYGPKG_DEVS_ETH_CL_CS8900A current ;
+ package -hardware CYGPKG_DEVS_ETH_ARM_OLPCL2294 current ;
+ package -hardware CYGPKG_IO_SERIAL_GENERIC_16X5X current ;
+ package -hardware CYGPKG_IO_SERIAL_ARM_LPC2XXX current ;
+ package -hardware CYGPKG_DEVICES_WATCHDOG_ARM_LPC2XXX current ;
+ package -template CYGPKG_HAL current ;
+ package -template CYGPKG_INFRA current ;
+ package -template CYGPKG_REDBOOT current ;
+ package -template CYGPKG_ISOINFRA current ;
+ package -template CYGPKG_LIBC_STRING current ;
+ package -template CYGPKG_CRC current ;
+ package CYGPKG_IO_ETH_DRIVERS current ;
+ package CYGPKG_NS_DNS current ;
+ package CYGPKG_COMPRESS_ZLIB current ;
+ package CYGPKG_IO_FLASH current ;
+};
+
+cdl_option CYGFUN_LIBC_STRING_BSD_FUNCS {
+ inferred_value 0
+};
+
+cdl_option CYGIMP_HAL_COMMON_INTERRUPTS_USE_INTERRUPT_STACK {
+ inferred_value 0
+};
+
+cdl_option CYGNUM_HAL_COMMON_INTERRUPTS_STACK_SIZE {
+ user_value 4096
+};
+
+cdl_option CYGDBG_HAL_COMMON_INTERRUPTS_SAVE_MINIMUM_CONTEXT {
+ user_value 0
+};
+
+cdl_option CYGDBG_HAL_COMMON_CONTEXT_SAVE_MINIMUM {
+ inferred_value 0
+};
+
+cdl_option CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS {
+ inferred_value 1
+};
+
+cdl_option CYGSEM_HAL_USE_ROM_MONITOR {
+ inferred_value 0 0
+};
+
+cdl_component CYGHWR_HAL_ARM_LPC2XXX {
+ inferred_value LPC2294
+};
+
+cdl_component CYGBLD_BUILD_REDBOOT {
+ user_value 1
+};
+
+cdl_option CYGBLD_BUILD_REDBOOT_WITH_EXEC {
+ inferred_value 0
+};
+
+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_BSD_FUNCS_HEADER {
+ inferred_value 1 <cyg/libc/string/bsdstring.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_DNS_HEADER {
+ inferred_value 1 <cyg/ns/dns/dns.h>
+};
+
+cdl_option CYGPKG_NS_DNS_BUILD {
+ inferred_value 0
+};
+
+
diff --git a/ecos/packages/hal/arm/lpc2xxx/olpcl2294/current/misc/redboot_ROM.ecm b/ecos/packages/hal/arm/lpc2xxx/olpcl2294/current/misc/redboot_ROM.ecm
new file mode 100644
index 0000000..73bbb3f
--- /dev/null
+++ b/ecos/packages/hal/arm/lpc2xxx/olpcl2294/current/misc/redboot_ROM.ecm
@@ -0,0 +1,112 @@
+cdl_savefile_version 1;
+cdl_savefile_command cdl_savefile_version {};
+cdl_savefile_command cdl_savefile_command {};
+cdl_savefile_command cdl_configuration { description hardware template package };
+cdl_savefile_command cdl_package { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_component { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_option { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_interface { value_source user_value wizard_value inferred_value };
+
+cdl_configuration eCos {
+ description "" ;
+ hardware olpcl2294 ;
+ template redboot ;
+ package -hardware CYGPKG_HAL_ARM current ;
+ package -hardware CYGPKG_HAL_ARM_LPC2XXX current ;
+ package -hardware CYGPKG_HAL_ARM_LPC2XXX_OLPCL2294 current ;
+ package -hardware CYGPKG_DEVS_FLASH_STRATA_V2 current ;
+ package -hardware CYGPKG_DEVS_FLASH_ARM_OLPCX2294_V2 current ;
+ package -hardware CYGPKG_DEVS_ETH_CL_CS8900A current ;
+ package -hardware CYGPKG_DEVS_ETH_ARM_OLPCL2294 current ;
+ package -hardware CYGPKG_IO_SERIAL_GENERIC_16X5X current ;
+ package -hardware CYGPKG_IO_SERIAL_ARM_LPC2XXX current ;
+ package -hardware CYGPKG_DEVICES_WATCHDOG_ARM_LPC2XXX current ;
+ package -template CYGPKG_HAL current ;
+ package -template CYGPKG_INFRA current ;
+ package -template CYGPKG_REDBOOT current ;
+ package -template CYGPKG_ISOINFRA current ;
+ package -template CYGPKG_LIBC_STRING current ;
+ package -template CYGPKG_CRC current ;
+ package CYGPKG_IO_ETH_DRIVERS current ;
+ package CYGPKG_NS_DNS current ;
+ package CYGPKG_COMPRESS_ZLIB current ;
+ package CYGPKG_IO_FLASH current ;
+};
+
+cdl_option CYGFUN_LIBC_STRING_BSD_FUNCS {
+ inferred_value 0
+};
+
+cdl_option CYGIMP_HAL_COMMON_INTERRUPTS_USE_INTERRUPT_STACK {
+ inferred_value 0
+};
+
+cdl_option CYGNUM_HAL_COMMON_INTERRUPTS_STACK_SIZE {
+ user_value 4096
+};
+
+cdl_option CYGDBG_HAL_COMMON_INTERRUPTS_SAVE_MINIMUM_CONTEXT {
+ user_value 0
+};
+
+cdl_option CYGDBG_HAL_COMMON_CONTEXT_SAVE_MINIMUM {
+ inferred_value 0
+};
+
+cdl_option CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS {
+ inferred_value 1
+};
+
+cdl_option CYGSEM_HAL_ROM_MONITOR {
+ inferred_value 1
+};
+
+cdl_option CYGSEM_HAL_USE_ROM_MONITOR {
+ inferred_value 0 0
+};
+
+cdl_component CYGHWR_HAL_ARM_LPC2XXX {
+ inferred_value LPC2294
+};
+
+cdl_component CYG_HAL_STARTUP {
+ inferred_value ROM
+};
+
+cdl_component CYGBLD_BUILD_REDBOOT {
+ user_value 1
+};
+
+cdl_option CYGBLD_BUILD_REDBOOT_WITH_EXEC {
+ inferred_value 0
+};
+
+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_BSD_FUNCS_HEADER {
+ inferred_value 1 <cyg/libc/string/bsdstring.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_DNS_HEADER {
+ inferred_value 1 <cyg/ns/dns/dns.h>
+};
+
+cdl_option CYGPKG_NS_DNS_BUILD {
+ inferred_value 0
+};
+
+
diff --git a/ecos/packages/hal/arm/lpc2xxx/olpcl2294/current/misc/redboot_ROM_minimal.ecm b/ecos/packages/hal/arm/lpc2xxx/olpcl2294/current/misc/redboot_ROM_minimal.ecm
new file mode 100644
index 0000000..8f5fe84
--- /dev/null
+++ b/ecos/packages/hal/arm/lpc2xxx/olpcl2294/current/misc/redboot_ROM_minimal.ecm
@@ -0,0 +1,100 @@
+cdl_savefile_version 1;
+cdl_savefile_command cdl_savefile_version {};
+cdl_savefile_command cdl_savefile_command {};
+cdl_savefile_command cdl_configuration { description hardware template package };
+cdl_savefile_command cdl_package { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_component { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_option { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_interface { value_source user_value wizard_value inferred_value };
+
+cdl_configuration eCos {
+ description "" ;
+ hardware olpcl2294 ;
+ template redboot ;
+ package -hardware CYGPKG_HAL_ARM current ;
+ package -hardware CYGPKG_HAL_ARM_LPC2XXX current ;
+ package -hardware CYGPKG_HAL_ARM_LPC2XXX_OLPCL2294 current ;
+ package -hardware CYGPKG_DEVS_FLASH_STRATA_V2 current ;
+ package -hardware CYGPKG_DEVS_FLASH_ARM_OLPCX2294_V2 current ;
+ package -hardware CYGPKG_DEVS_ETH_CL_CS8900A current ;
+ package -hardware CYGPKG_DEVS_ETH_ARM_OLPCL2294 current ;
+ package -hardware CYGPKG_IO_SERIAL_GENERIC_16X5X current ;
+ package -hardware CYGPKG_IO_SERIAL_ARM_LPC2XXX current ;
+ package -hardware CYGPKG_DEVICES_WATCHDOG_ARM_LPC2XXX current ;
+ package -template CYGPKG_HAL current ;
+ package -template CYGPKG_INFRA current ;
+ package -template CYGPKG_REDBOOT current ;
+ package -template CYGPKG_ISOINFRA current ;
+ package -template CYGPKG_LIBC_STRING current ;
+ package -template CYGPKG_CRC current ;
+};
+
+cdl_option CYGFUN_LIBC_STRING_BSD_FUNCS {
+ inferred_value 0
+};
+
+cdl_option CYGIMP_HAL_COMMON_INTERRUPTS_USE_INTERRUPT_STACK {
+ inferred_value 0
+};
+
+cdl_option CYGNUM_HAL_COMMON_INTERRUPTS_STACK_SIZE {
+ user_value 4096
+};
+
+cdl_option CYGDBG_HAL_COMMON_INTERRUPTS_SAVE_MINIMUM_CONTEXT {
+ user_value 0
+};
+
+cdl_option CYGDBG_HAL_COMMON_CONTEXT_SAVE_MINIMUM {
+ inferred_value 0
+};
+
+cdl_option CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS {
+ inferred_value 1
+};
+
+cdl_option CYGSEM_HAL_ROM_MONITOR {
+ inferred_value 1
+};
+
+cdl_option CYGSEM_HAL_USE_ROM_MONITOR {
+ inferred_value 0 0
+};
+
+cdl_component CYGHWR_HAL_ARM_LPC2XXX {
+ inferred_value LPC2294
+};
+
+cdl_component CYG_HAL_STARTUP {
+ inferred_value ROM
+};
+
+cdl_component CYGBLD_BUILD_REDBOOT {
+ user_value 1
+};
+
+cdl_option CYGBLD_BUILD_REDBOOT_WITH_EXEC {
+ inferred_value 0
+};
+
+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_BSD_FUNCS_HEADER {
+ inferred_value 1 <cyg/libc/string/bsdstring.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>
+};
+
+
diff --git a/ecos/packages/hal/arm/lpc2xxx/olpcl2294/current/src/olpcl2294_misc.c b/ecos/packages/hal/arm/lpc2xxx/olpcl2294/current/src/olpcl2294_misc.c
new file mode 100644
index 0000000..2369720
--- /dev/null
+++ b/ecos/packages/hal/arm/lpc2xxx/olpcl2294/current/src/olpcl2294_misc.c
@@ -0,0 +1,109 @@
+//==========================================================================
+//
+// olpcl2294_misc.c
+//
+// HAL misc board support code for Olimex LPC-L2294-1MB development
+// board
+//
+//==========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002, 2008 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//==========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): Sergei Gavrikov
+// Contributors: Sergei Gavrikov
+// Date: 2008-08-31
+// Purpose: HAL board support
+// Description: Implementations of HAL board interfaces
+//
+//####DESCRIPTIONEND####
+//
+//========================================================================*/
+
+#include <pkgconf/hal.h>
+#include <cyg/hal/hal_io.h> // IO macros
+#include <cyg/hal/hal_arch.h> // Register state info
+
+#include <cyg/infra/cyg_type.h> // base types
+#include <cyg/hal/var_io.h>
+
+#include <cyg/hal/hal_var_ints.h>
+#include <cyg/hal/drv_api.h>
+
+extern void cyg_hal_plf_serial_init (void);
+
+//--------------------------------------------------------------------------
+// hal_lpc2xxx_set_leds --
+//
+// There is one diagnostic LED marked 'STAT' on the board
+//
+void
+hal_lpc2xxx_set_leds (int mask)
+{
+ HAL_WRITE_UINT32 (CYGARC_HAL_LPC2XXX_REG_IO_BASE +
+ CYGARC_HAL_LPC2XXX_REG_IO1SET, (1 << 23));
+ if (mask & 1)
+ HAL_WRITE_UINT32 (CYGARC_HAL_LPC2XXX_REG_IO_BASE +
+ CYGARC_HAL_LPC2XXX_REG_IO1CLR, (1 << 23));
+}
+
+//--------------------------------------------------------------------------
+// cyg_hal_plf_comms_init --
+//
+void
+cyg_hal_plf_comms_init (void)
+{
+ static int initialized = 0;
+
+ if (initialized)
+ return;
+ initialized = 1;
+
+ cyg_hal_plf_serial_init ();
+}
+
+#ifdef HAL_PLF_HARDWARE_INIT
+//--------------------------------------------------------------------------
+// hal_plf_hardware_init --
+//
+void
+hal_plf_hardware_init (void)
+{
+ // configure IRQ level from CL CS8900A
+ cyg_drv_interrupt_configure (CYGNUM_HAL_INTERRUPT_EINT2, 0, 1);
+}
+#endif // HAL_PLF_HARDWARE_INIT
+
+// indent: --indent-level4 -br -nut; vim: expandtab tabstop=4 shiftwidth=4
+//--------------------------------------------------------------------------
+// EOF olpcl2294_misc.c
diff --git a/ecos/packages/hal/arm/lpc2xxx/olpcl2294/current/src/redboot_cmds.c b/ecos/packages/hal/arm/lpc2xxx/olpcl2294/current/src/redboot_cmds.c
new file mode 100644
index 0000000..6325059
--- /dev/null
+++ b/ecos/packages/hal/arm/lpc2xxx/olpcl2294/current/src/redboot_cmds.c
@@ -0,0 +1,115 @@
+//==========================================================================
+//
+// redboot_cmds.c
+//
+// OLPCL2294 [platform] specific RedBoot commands
+//
+//==========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002, 2008 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//==========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): Sergei Gavrikov
+// Contributors: Sergei Gavrikov
+// Date: 2008-08-31
+// Purpose:
+// Description:
+//
+// This code is part of RedBoot (tm).
+//
+//####DESCRIPTIONEND####
+//
+//========================================================================*/
+
+#include <cyg/hal/hal_diag.h>
+#include <redboot.h>
+
+// CLI functions
+static void do_echo (int argc, char *argv[]);
+RedBoot_cmd ("echo",
+ "Outputs the args. If -n is specified, the trailing newline is suppressed.",
+ "-n [arg ...]", do_echo);
+
+static void do_led (int argc, char *argv[]);
+RedBoot_cmd ("led", "Manage diagnostic led(s)", "[-m mask]", do_led);
+
+//--------------------------------------------------------------------------
+// do_echo --
+//
+static void
+do_echo (int argc, char *argv[])
+{
+ bool newline = true;
+ if (argc > 1) {
+ int i = 1;
+ if (strncmp (&argv[i][0], "-n", 2) == 0) {
+ newline = false;
+ i++;
+ }
+ for (; i < argc; i++) {
+ diag_write_string (&argv[i][0]);
+ if ((argc - i) > 1)
+ diag_write_char (' ');
+ }
+ }
+ if (newline)
+ diag_write_char ('\n');
+ return;
+}
+
+//--------------------------------------------------------------------------
+// do_led --
+//
+static void
+do_led (int argc, char *argv[])
+{
+ struct option_info opts[1];
+ unsigned long mask;
+ bool mask_set;
+
+ init_opts (&opts[0], 'm', true, OPTION_ARG_TYPE_NUM,
+ &mask, &mask_set, "mask");
+ if (!scan_opts (argc, argv, 1, opts, 1, 0, 0, "")) {
+ return;
+ }
+ if (!mask_set) {
+ diag_printf ("led what <mask>?\n");
+ return;
+ }
+ hal_lpc2xxx_set_leds (mask);
+ return;
+}
+
+// indent: --indent-level4 -br -nut; vim: expandtab tabstop=4 shiftwidth=4
+//--------------------------------------------------------------------------
+// EOF redboot_cmds.c
diff --git a/ecos/packages/hal/arm/lpc2xxx/p2106/current/ChangeLog b/ecos/packages/hal/arm/lpc2xxx/p2106/current/ChangeLog
new file mode 100644
index 0000000..acd9f53
--- /dev/null
+++ b/ecos/packages/hal/arm/lpc2xxx/p2106/current/ChangeLog
@@ -0,0 +1,61 @@
+2009-01-31 Bart Veer <bartv@ecoscentric.com>
+
+ * cdl/hal_arm_lpc2xxx_p2106.cdl: update compiler flags for gcc 4.x
+
+2009-01-24 Bart Veer <bartv@ecoscentric.com>
+
+ * cdl/hal_arm_lpc2xxx_p2106.cdl: switch from arm-elf-gcc to
+ arm-eabi-gcc. Remove -mno-short-load-words.
+
+2004-11-19 Jani Monoses <jani@iv.ro>
+
+ * cdl/hal_arm_lpc2xxx_p2106.cdl:
+ * include/hal_platform_setup.h:
+ Make PLL multiplier value configurable.
+
+2004-11-15 Jani Monoses <jani@iv.ro>
+
+ * include/hal_platform_setup.h:
+ Use ldr instead of mov so it builds in THUMB mode.
+ * include/pkgconf/mlt_arm_lpc2xxx_p2106_ram.ldi:
+ Fix RAM startup.
+ * cdl/hal_arm_lpc2xxx_p2106.cdl:
+ * src/p2106_misc.c:
+ s/Keil/Olimex/
+
+
+2004-10-8 Jani Monoses <jani@iv.ro>
+
+ * cdl/hal_arm_lpc2xxx_p2106.cdl:
+ * include/plf_io.h:
+ * include/hal_platform_setup.h:
+ * include/pkgconf/mlt_arm_lpc2xxx_p2106_rom.ldi:
+ * include/pkgconf/mlt_arm_lpc2xxx_p2106_rom.h:
+ * include/pkgconf/mlt_arm_lpc2xxx_p2106_ram.ldi:
+ * include/pkgconf/mlt_arm_lpc2xxx_p2106_ram.h:
+ * src/p2106_misc.c:
+ New HAL platform added to support the Olimex LPC-P2106 board.
+
+//===========================================================================
+// ####GPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 2 or (at your option) any
+// later version.
+//
+// This program is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the
+// Free Software Foundation, Inc., 51 Franklin Street,
+// Fifth Floor, Boston, MA 02110-1301, USA.
+// -------------------------------------------
+// ####GPLCOPYRIGHTEND####
+//===========================================================================
diff --git a/ecos/packages/hal/arm/lpc2xxx/p2106/current/cdl/hal_arm_lpc2xxx_p2106.cdl b/ecos/packages/hal/arm/lpc2xxx/p2106/current/cdl/hal_arm_lpc2xxx_p2106.cdl
new file mode 100644
index 0000000..ee334cc
--- /dev/null
+++ b/ecos/packages/hal/arm/lpc2xxx/p2106/current/cdl/hal_arm_lpc2xxx_p2106.cdl
@@ -0,0 +1,280 @@
+# ====================================================================
+#
+# hal_arm_lpc2xxx_p2106.cdl
+#
+# ARM LPC2XXX P2106 HAL package configuration data
+#
+# ====================================================================
+## ####ECOSGPLCOPYRIGHTBEGIN####
+## -------------------------------------------
+## This file is part of eCos, the Embedded Configurable Operating System.
+## Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
+##
+## eCos is free software; you can redistribute it and/or modify it under
+## the terms of the GNU General Public License as published by the Free
+## Software Foundation; either version 2 or (at your option) any later
+## version.
+##
+## eCos is distributed in the hope that it will be useful, but WITHOUT
+## ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+## FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+## for more details.
+##
+## You should have received a copy of the GNU General Public License
+## along with eCos; if not, write to the Free Software Foundation, Inc.,
+## 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+##
+## As a special exception, if other files instantiate templates or use
+## macros or inline functions from this file, or you compile this file
+## and link it with other works to produce a work based on this file,
+## this file does not by itself cause the resulting work to be covered by
+## the GNU General Public License. However the source code for this file
+## must still be made available in accordance with section (3) of the GNU
+## General Public License v2.
+##
+## This exception does not invalidate any other reasons why a work based
+## on this file might be covered by the GNU General Public License.
+## -------------------------------------------
+## ####ECOSGPLCOPYRIGHTEND####
+# ====================================================================
+######DESCRIPTIONBEGIN####
+#
+# Author(s): jani
+# Contributors: gthomas, tkoeller, nickg
+# Date: 2004-10-4
+#
+#####DESCRIPTIONEND####
+#
+# ====================================================================
+
+cdl_package CYGPKG_HAL_ARM_LPC2XXX_P2106 {
+ display "Olimex P2106 eval board HAL"
+ parent CYGPKG_HAL_ARM_LPC2XXX
+ define_header hal_arm_lpc2xxx_p2106.h
+ include_dir cyg/hal
+ hardware
+ description "
+ The P2106 HAL package provides the support needed to run
+ eCos on an Olimex P2106 eval board."
+
+ compile p2106_misc.c
+
+ requires { CYGHWR_HAL_ARM_LPC2XXX == "LPC210x" }
+
+ 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_lpc2xxx.h>"
+ puts $::cdl_system_header "#define CYGBLD_HAL_PLATFORM_H <pkgconf/hal_arm_lpc2xxx_p2106.h>"
+ puts $::cdl_system_header "#define CYGBLD_HAL_ARM_VAR_IO_H"
+ puts $::cdl_header "#define HAL_PLATFORM_CPU \"ARM7TDMI-S\""
+ puts $::cdl_header "#define HAL_PLATFORM_BOARD \"Olimex LPC2XXX/P2106\""
+ puts $::cdl_header "#define HAL_PLATFORM_EXTRA \"\""
+ }
+
+ cdl_component CYG_HAL_STARTUP {
+ display "Startup type"
+ flavor data
+ default_value {"ROM"}
+ legal_values {"ROM" "RAM"}
+ no_define
+ define -file system.h CYG_HAL_STARTUP
+ description "
+ Choose ROM or RAM startup type."
+ }
+
+ 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"
+ active_if CYGPRI_HAL_VIRTUAL_VECTOR_DEBUG_CHANNEL_CONFIGURABLE
+ flavor data
+ legal_values 0 to CYGNUM_HAL_VIRTUAL_VECTOR_COMM_CHANNELS-1
+ default_value 0
+ description "
+ The P2106 board has one serial port."
+ }
+
+ cdl_option CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL {
+ display "Diagnostic serial port"
+ active_if CYGPRI_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_CONFIGURABLE
+ flavor data
+ legal_values 0 to CYGNUM_HAL_VIRTUAL_VECTOR_COMM_CHANNELS-1
+ default_value 0
+ description "
+ The P2106 board has one serial port."
+ }
+
+ cdl_option CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_BAUD {
+ display "Diagnostic serial port baud rate"
+ flavor data
+ legal_values 9600 19200 38400 57600 115200
+ default_value 38400
+ description "
+ This option selects the baud rate used for the diagnostic port."
+ }
+
+ cdl_option CYGNUM_HAL_VIRTUAL_VECTOR_DEBUG_CHANNEL_BAUD {
+ display "GDB serial port baud rate"
+ flavor data
+ legal_values 9600 19200 38400 57600 115200
+ default_value 38400
+ description "
+ This option controls the baud rate used for the GDB connection."
+ }
+
+ # Real-time clock/counter specifics
+ cdl_option CYGNUM_HAL_ARM_LPC2XXX_XTAL_FREQ {
+ display "CPU clock speed"
+ flavor data
+ default_value {14745600}
+ }
+
+ cdl_option CYGNUM_HAL_ARM_LPC2XXX_PLL_MUL {
+ display "CPU clock speed"
+ flavor data
+ default_value {4}
+ }
+
+ cdl_option CYGNUM_HAL_ARM_LPC2XXX_CLOCK_SPEED {
+ display "CPU clock speed"
+ flavor data
+ calculated { CYGNUM_HAL_ARM_LPC2XXX_PLL_MUL * CYGNUM_HAL_ARM_LPC2XXX_XTAL_FREQ }
+ }
+
+ 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 { "arm-eabi"}
+ 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 { CYGBLD_GLOBAL_WARNFLAGS . CYGBLD_ARCH_CFLAGS .
+ "-mcpu=arm7tdmi -g -O2 -ffunction-sections -fdata-sections -fno-rtti -fno-exceptions " }
+ 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 { CYGBLD_ARCH_LDFLAGS . "-mcpu=arm7tdmi -Wl,--gc-sections -Wl,-static -g -nostdlib" }
+ description "
+ This option controls the global linker flags. Individual
+ packages may define options which override these global flags."
+ }
+ }
+
+ 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" || CYG_HAL_STARTUP == "ROMRAM" }
+ 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 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_REDBOOT_HAL_OPTIONS {
+ display "Redboot HAL options"
+ flavor none
+ no_define
+ parent CYGPKG_REDBOOT
+ active_if CYGPKG_REDBOOT
+ description "
+ This option lists the target's requirements for a valid Redboot
+ configuration."
+
+ 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 $< $@
+ }
+
+ }
+ }
+
+ cdl_component CYGHWR_MEMORY_LAYOUT {
+ display "Memory layout"
+ flavor data
+ no_define
+ calculated { (CYG_HAL_STARTUP == "RAM") ? "arm_lpc2xxx_p2106_ram":
+ "arm_lpc2xxx_p2106_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_lpc2xxx_p2106_ram.ldi>":
+ "<pkgconf/mlt_arm_lpc2xxx_p2106_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_lpc2xxx_p2106_ram.h>":
+ "<pkgconf/mlt_arm_lpc2xxx_p2106_rom.h>"}
+ }
+ }
+
+}
diff --git a/ecos/packages/hal/arm/lpc2xxx/p2106/current/include/hal_platform_setup.h b/ecos/packages/hal/arm/lpc2xxx/p2106/current/include/hal_platform_setup.h
new file mode 100644
index 0000000..a5bb7bb
--- /dev/null
+++ b/ecos/packages/hal/arm/lpc2xxx/p2106/current/include/hal_platform_setup.h
@@ -0,0 +1,161 @@
+#ifndef CYGONCE_HAL_PLATFORM_SETUP_H
+#define CYGONCE_HAL_PLATFORM_SETUP_H
+
+/*=============================================================================
+//
+// hal_platform_setup.h
+//
+// Platform specific support for HAL (assembly code)
+//
+//=============================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jani
+// Contributors:
+// Date: 2004-09-12
+// Purpose: LPC2XXX/P2106 platform specific support routines
+// Description:
+// Usage: #include <cyg/hal/hal_platform_setup.h>
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================*/
+
+#include <pkgconf/system.h>
+#include <cyg/hal/var_io.h>
+
+//===========================================================================*/
+
+ .macro _led_init
+ ldr r0,=CYGARC_HAL_LPC2XXX_REG_IO_BASE
+ ldr r1,=(1<<7) // GPIO0 pins 7 is LED output
+ str r1,[r0,#CYGARC_HAL_LPC2XXX_REG_IODIR]
+ .endm
+
+ .macro _led x
+ ldr r0,=CYGARC_HAL_LPC2XXX_REG_IO_BASE
+ ldr r1,=(1<<7)
+ str r1,[r0,#CYGARC_HAL_LPC2XXX_REG_IOCLR]
+ ldr r1,=((\x & 1)<<7)
+ str r1,[r0,#CYGARC_HAL_LPC2XXX_REG_IOSET]
+ .endm
+
+ .macro _pll_init
+ ldr r0,=CYGARC_HAL_LPC2XXX_REG_SCB_BASE
+
+ mov r2,#0xAA
+ mov r3,#0x55
+
+ mov r1,#1 // enable PLL
+ str r1,[r0,#CYGARC_HAL_LPC2XXX_REG_PLLCON]
+
+ mov r1,#(0x20 | (CYGNUM_HAL_ARM_LPC2XXX_PLL_MUL - 1))
+ str r1,[r0,#CYGARC_HAL_LPC2XXX_REG_PLLCFG]
+
+ str r2,[r0,#CYGARC_HAL_LPC2XXX_REG_PLLFEED] // update PLL registers
+ str r3,[r0,#CYGARC_HAL_LPC2XXX_REG_PLLFEED]
+
+1:
+ ldr r1,[r0,#CYGARC_HAL_LPC2XXX_REG_PLLSTAT] // wait for it to lock
+ ands r1,r1,#(1<<10)
+ beq 1b
+
+ mov r1,#3 // connect PLL
+ str r1,[r0,#CYGARC_HAL_LPC2XXX_REG_PLLCON]
+
+ str r2,[r0,#CYGARC_HAL_LPC2XXX_REG_PLLFEED] // update PLL registers
+ str r3,[r0,#CYGARC_HAL_LPC2XXX_REG_PLLFEED]
+
+ .endm
+
+ .macro _mem_init
+ mov r0,#0 // copy first 64 bytes of flash to RAM
+ mov r1,#0x40000000
+ mov r2,#0x40
+1:
+ ldr r3,[r0,#4]!
+ str r3,[r1,#4]!
+ cmps r0,r2
+ bne 1b
+
+ ldr r0,=CYGARC_HAL_LPC2XXX_REG_SCB_BASE
+ mov r1,#2
+ // interrupt vector table is mapped to flash (1) or RAM(2)
+ str r1, [r0,#CYGARC_HAL_LPC2XXX_REG_MEMMAP]
+ mov r1,#4
+ str r1,[r0,#CYGARC_HAL_LPC2XXX_REG_MAMTIM] // flash timings
+ mov r1,#2
+ str r1,[r0,#CYGARC_HAL_LPC2XXX_REG_MAMCR] // enable full MAM
+ .endm
+
+ .macro _gpio_init
+ // enable RX and TX on UART0 and the button
+ ldr r0,=CYGARC_HAL_LPC2XXX_REG_PIN_BASE
+ ldr r1,=0x80000005
+ str r1,[r0,#CYGARC_HAL_LPC2XXX_REG_PINSEL0]
+ .endm
+
+#define CYGHWR_LED_MACRO _led \x
+
+//===========================================================================*/
+
+#if defined(CYG_HAL_STARTUP_ROM)
+
+ .macro _setup
+
+ _pll_init
+
+ _mem_init
+
+ _gpio_init
+
+ _led_init
+
+ .endm
+
+#define CYGSEM_HAL_ROM_RESET_USES_JUMP
+
+#else
+
+ .macro _setup
+ .endm
+
+#endif
+
+#define PLATFORM_SETUP1 _setup
+
+//-----------------------------------------------------------------------------
+// end of hal_platform_setup.h
+#endif // CYGONCE_HAL_PLATFORM_SETUP_H
diff --git a/ecos/packages/hal/arm/lpc2xxx/p2106/current/include/pkgconf/mlt_arm_lpc2xxx_p2106_ram.h b/ecos/packages/hal/arm/lpc2xxx/p2106/current/include/pkgconf/mlt_arm_lpc2xxx_p2106_ram.h
new file mode 100644
index 0000000..e83e534
--- /dev/null
+++ b/ecos/packages/hal/arm/lpc2xxx/p2106/current/include/pkgconf/mlt_arm_lpc2xxx_p2106_ram.h
@@ -0,0 +1,17 @@
+// eCos memory layout - Wed Apr 11 13:49:55 2001
+
+// This is a generated file - do not edit
+
+#ifndef __ASSEMBLER__
+#include <cyg/infra/cyg_type.h>
+#include <stddef.h>
+
+#endif
+#define CYGMEM_REGION_ram (0x40000000)
+#define CYGMEM_REGION_ram_SIZE (0x00010000)
+#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 (0x40010000 - (size_t) CYG_LABEL_NAME (__heap1))
diff --git a/ecos/packages/hal/arm/lpc2xxx/p2106/current/include/pkgconf/mlt_arm_lpc2xxx_p2106_ram.ldi b/ecos/packages/hal/arm/lpc2xxx/p2106/current/include/pkgconf/mlt_arm_lpc2xxx_p2106_ram.ldi
new file mode 100644
index 0000000..a4c050e
--- /dev/null
+++ b/ecos/packages/hal/arm/lpc2xxx/p2106/current/include/pkgconf/mlt_arm_lpc2xxx_p2106_ram.ldi
@@ -0,0 +1,27 @@
+// eCos memory layout - Wed Apr 11 13:49:55 2001
+
+// This is a generated file - do not edit
+
+#include <cyg/infra/cyg_type.inc>
+
+MEMORY
+{
+ ram : ORIGIN = 0x40000000, LENGTH = 0x10000
+}
+
+SECTIONS
+{
+ SECTIONS_BEGIN
+ SECTION_fixed_vectors (ram, 0x40000400, LMA_EQ_VMA)
+ SECTION_rom_vectors (ram, 0x40006000, 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), FOLLOWING(.gcc_except_table))
+ SECTION_bss (ram, ALIGN (0x4), LMA_EQ_VMA)
+ CYG_LABEL_DEFN(__heap1) = ALIGN (0x8);
+ SECTIONS_END
+}
diff --git a/ecos/packages/hal/arm/lpc2xxx/p2106/current/include/pkgconf/mlt_arm_lpc2xxx_p2106_rom.h b/ecos/packages/hal/arm/lpc2xxx/p2106/current/include/pkgconf/mlt_arm_lpc2xxx_p2106_rom.h
new file mode 100644
index 0000000..b670924
--- /dev/null
+++ b/ecos/packages/hal/arm/lpc2xxx/p2106/current/include/pkgconf/mlt_arm_lpc2xxx_p2106_rom.h
@@ -0,0 +1,20 @@
+// eCos memory layout - Wed Apr 11 13:49:55 2001
+
+// This is a generated file - do not edit
+
+#ifndef __ASSEMBLER__
+#include <cyg/infra/cyg_type.h>
+#include <stddef.h>
+
+#endif
+#define CYGMEM_REGION_ram (0x40000000)
+#define CYGMEM_REGION_ram_SIZE (0x00010000)
+#define CYGMEM_REGION_ram_ATTR (CYGMEM_REGION_ATTR_R | CYGMEM_REGION_ATTR_W)
+#define CYGMEM_REGION_rom (0x00000000)
+#define CYGMEM_REGION_rom_SIZE (0x00020000)
+#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 (0x40010000 - (size_t) CYG_LABEL_NAME (__heap1))
diff --git a/ecos/packages/hal/arm/lpc2xxx/p2106/current/include/pkgconf/mlt_arm_lpc2xxx_p2106_rom.ldi b/ecos/packages/hal/arm/lpc2xxx/p2106/current/include/pkgconf/mlt_arm_lpc2xxx_p2106_rom.ldi
new file mode 100644
index 0000000..823e0b1
--- /dev/null
+++ b/ecos/packages/hal/arm/lpc2xxx/p2106/current/include/pkgconf/mlt_arm_lpc2xxx_p2106_rom.ldi
@@ -0,0 +1,28 @@
+// eCos memory layout - Wed Apr 11 13:49:55 2001
+
+// This is a generated file - do not edit
+
+#include <cyg/infra/cyg_type.inc>
+
+MEMORY
+{
+ ram : ORIGIN = 0x40000000, LENGTH = 0x10000
+ rom : ORIGIN = 0x00000000, LENGTH = 0x20000
+}
+
+SECTIONS
+{
+ SECTIONS_BEGIN
+ SECTION_rom_vectors (rom, 0x00000000, LMA_EQ_VMA)
+ SECTION_text (rom, ALIGN (0x1), 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, 0x40000400, LMA_EQ_VMA)
+ SECTION_data (ram, ALIGN(0x4), FOLLOWING(.gcc_except_table))
+ SECTION_bss (ram, ALIGN (0x4), LMA_EQ_VMA)
+ CYG_LABEL_DEFN(__heap1) = ALIGN (0x8);
+ SECTIONS_END
+}
diff --git a/ecos/packages/hal/arm/lpc2xxx/p2106/current/include/plf_io.h b/ecos/packages/hal/arm/lpc2xxx/p2106/current/include/plf_io.h
new file mode 100644
index 0000000..942697d
--- /dev/null
+++ b/ecos/packages/hal/arm/lpc2xxx/p2106/current/include/plf_io.h
@@ -0,0 +1,59 @@
+#ifndef CYGONCE_HAL_PLF_IO_H
+#define CYGONCE_HAL_PLF_IO_H
+//=============================================================================
+//
+// plf_io.h
+//
+// MCB2100 board specific registers
+//
+//=============================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jani
+// Contributors:
+// Date: 2004-09-12
+// Purpose: Olimex P2106 board specific registers
+// Description:
+// Usage: #include <cyg/hal/plf_io.h>
+//
+//####DESCRIPTIONEND####
+//
+//=============================================================================
+// On-chip device base addresses
+
+
+//-----------------------------------------------------------------------------
+// end of plf_io.h
+#endif // CYGONCE_HAL_PLF_IO_H
diff --git a/ecos/packages/hal/arm/lpc2xxx/p2106/current/src/p2106_misc.c b/ecos/packages/hal/arm/lpc2xxx/p2106/current/src/p2106_misc.c
new file mode 100644
index 0000000..9200590
--- /dev/null
+++ b/ecos/packages/hal/arm/lpc2xxx/p2106/current/src/p2106_misc.c
@@ -0,0 +1,81 @@
+/*==========================================================================
+//
+// lpc_misc.c
+//
+// HAL misc board support code for Olimex P2106
+//
+//==========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//==========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jani
+// Contributors:
+// Date: 2004-09-12
+// Purpose: HAL board support
+// Description: Implementations of HAL board interfaces
+//
+//####DESCRIPTIONEND####
+//
+//========================================================================*/
+#include <pkgconf/hal.h>
+#include <cyg/hal/hal_io.h> // IO macros
+
+#include <cyg/infra/cyg_type.h> // base types
+#include <cyg/hal/var_io.h>
+
+extern void cyg_hal_plf_serial_init(void);
+// Low bit of mask determines the on/off status of the LED. 0 means ON
+// and 1 is OFF!
+void hal_lpc2xxx_set_leds(int mask)
+{
+ HAL_WRITE_UINT32(CYGARC_HAL_LPC2XXX_REG_IO_BASE +
+ CYGARC_HAL_LPC2XXX_REG_IOSET, (1<<7));
+ if (mask & 1)
+ HAL_WRITE_UINT32(CYGARC_HAL_LPC2XXX_REG_IO_BASE +
+ CYGARC_HAL_LPC2XXX_REG_IOCLR, (1<<7));
+}
+
+void
+cyg_hal_plf_comms_init(void)
+{
+ static int initialized = 0;
+
+ if (initialized)
+ return;
+ initialized = 1;
+
+ cyg_hal_plf_serial_init();
+}
+//--------------------------------------------------------------------------
+// EOF p2106_misc.c
diff --git a/ecos/packages/hal/arm/lpc2xxx/phycore229x/current/ChangeLog b/ecos/packages/hal/arm/lpc2xxx/phycore229x/current/ChangeLog
new file mode 100755
index 0000000..f2cf798
--- /dev/null
+++ b/ecos/packages/hal/arm/lpc2xxx/phycore229x/current/ChangeLog
@@ -0,0 +1,42 @@
+2009-01-31 Bart Veer <bartv@ecoscentric.com>
+
+ * cdl/hal_arm_lpc2xxx_phycore229x.cdl: update compiler flags for gcc 4.x
+
+2009-01-24 Bart Veer <bartv@ecoscentric.com>
+
+ * cdl/hal_arm_lpc2xxx_phycore229x.cdl: switch from arm-elf-gcc to
+ arm-eabi-gcc. Remove -mno-short-load-words.
+
+2008-01-04 Uwe Kindler <uwe_kindler@web.de>
+
+ * cdl/hal_arm_lpc2xxx_phycore229x.cdl
+ * include/plf_io.h
+ * include/hal_platform_setup.h
+ * src/phycore229x_misc:
+ Initial release of phyCORE-LPC229x development board package
+
+
+# ====================================================================
+## ####GPLCOPYRIGHTBEGIN####
+## -------------------------------------------
+## This file is part of eCos, the Embedded Configurable Operating System.
+## Copyright (C) 2008 Free Software Foundation, Inc.
+##
+## This program is free software; you can redistribute it and/or modify
+## it under the terms of the GNU General Public License as published by
+## the Free Software Foundation; either version 2 or (at your option) any
+## later version.
+##
+## This program is distributed in the hope that it will be useful, but
+## WITHOUT ANY WARRANTY; without even the implied warranty of
+## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+## General Public License for more details.
+##
+## You should have received a copy of the GNU General Public License
+## along with this program; if not, write to the
+## Free Software Foundation, Inc., 51 Franklin Street,
+## Fifth Floor, Boston, MA 02110-1301, USA.
+## -------------------------------------------
+## ####GPLCOPYRIGHTEND####
+# ====================================================================
+
diff --git a/ecos/packages/hal/arm/lpc2xxx/phycore229x/current/cdl/hal_arm_lpc2xxx_phycore229x.cdl b/ecos/packages/hal/arm/lpc2xxx/phycore229x/current/cdl/hal_arm_lpc2xxx_phycore229x.cdl
new file mode 100755
index 0000000..84223f7
--- /dev/null
+++ b/ecos/packages/hal/arm/lpc2xxx/phycore229x/current/cdl/hal_arm_lpc2xxx_phycore229x.cdl
@@ -0,0 +1,425 @@
+# ====================================================================
+#
+# hal_arm_lpc2xxx_phycore229x.cdl
+#
+# Phytec phyCORE-LPC2292/94 HAL package configuration data
+#
+# ====================================================================
+## ####ECOSGPLCOPYRIGHTBEGIN####
+## -------------------------------------------
+## This file is part of eCos, the Embedded Configurable Operating System.
+## Copyright (C) 1998, 1999, 2000, 2001, 2002, 2008 Free Software Foundation, Inc.
+##
+## eCos is free software; you can redistribute it and/or modify it under
+## the terms of the GNU General Public License as published by the Free
+## Software Foundation; either version 2 or (at your option) any later
+## version.
+##
+## eCos is distributed in the hope that it will be useful, but WITHOUT
+## ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+## FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+## for more details.
+##
+## You should have received a copy of the GNU General Public License
+## along with eCos; if not, write to the Free Software Foundation, Inc.,
+## 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+##
+## As a special exception, if other files instantiate templates or use
+## macros or inline functions from this file, or you compile this file
+## and link it with other works to produce a work based on this file,
+## this file does not by itself cause the resulting work to be covered by
+## the GNU General Public License. However the source code for this file
+## must still be made available in accordance with section (3) of the GNU
+## General Public License v2.
+##
+## This exception does not invalidate any other reasons why a work based
+## on this file might be covered by the GNU General Public License.
+## -------------------------------------------
+## ####ECOSGPLCOPYRIGHTEND####
+# ====================================================================
+######DESCRIPTIONBEGIN####
+#
+# Author(s): Uwe Kindler
+# Contributors: Uwe Kindler
+# Date: 2007-11-20
+#
+#####DESCRIPTIONEND####
+#
+# ====================================================================
+
+cdl_package CYGPKG_HAL_ARM_LPC2XXX_PHYCORE229X {
+ display "Phytec phyCORE-LPC2292/94 development board HAL"
+ parent CYGPKG_HAL_ARM_LPC2XXX
+ define_header hal_arm_lpc2xxx_phycore229x.h
+ include_dir cyg/hal
+ hardware
+ implements CYGINT_DEVS_CAN_LPC2XXX_CAN0
+ implements CYGINT_DEVS_CAN_LPC2XXX_CAN1
+ description "
+ The phyCORE-229x HAL package provides the support needed to run
+ eCos on Phytec phyCORE-LPC2292/94 development board."
+
+ compile phycore229x_misc.c
+
+ requires { CYGHWR_HAL_ARM_LPC2XXX == "LPC2292" || CYGHWR_HAL_ARM_LPC2XXX == "LPC2294" }
+
+ 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_lpc2xxx.h>"
+ puts $::cdl_system_header "#define CYGBLD_HAL_PLATFORM_H <pkgconf/hal_arm_lpc2xxx_phycore229x.h>"
+ puts $::cdl_header "#define HAL_PLATFORM_CPU \"ARM7TDMI-S\""
+ puts $::cdl_header "#define HAL_PLATFORM_BOARD \"Phytec phyCORE-LPC2292/94\""
+ puts $::cdl_header "#define HAL_PLATFORM_EXTRA \"\""
+ }
+
+ cdl_component CYG_HAL_STARTUP {
+ display "Startup type"
+ flavor data
+ default_value {"ROM"}
+ legal_values {"RAM" "ROM"}
+ no_define
+ define -file system.h CYG_HAL_STARTUP
+ description "
+ Choose RAM or ROM startup type. Typically ROM startup is used for
+ building RedBoot. RedBoot runs from internal on chip flash of
+ LPC229x. Use RAM startup for building eCos applications.
+ RedBoot manages the external on board flash devices. It copies
+ the eCos application image from FLASH to phyCORE on board SRAM
+ and then starts the eCos application."
+ }
+
+ cdl_option CYGNUM_HAL_VIRTUAL_VECTOR_COMM_CHANNELS {
+ display "Number of communication channels on the board"
+ flavor data
+ calculated 2
+ description "
+ Channel 0: UART0, Channel 1: UART1"
+ }
+
+
+ cdl_option CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_DEFAULT {
+ display "Default console channel."
+ active_if CYGPRI_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_CONFIGURABLE
+ flavor data
+ calculated 0
+ }
+
+ cdl_option CYGNUM_HAL_VIRTUAL_VECTOR_DEBUG_CHANNEL {
+ display "Debug serial port"
+ active_if CYGPRI_HAL_VIRTUAL_VECTOR_DEBUG_CHANNEL_CONFIGURABLE
+ flavor data
+ legal_values 0 to CYGNUM_HAL_VIRTUAL_VECTOR_COMM_CHANNELS-1
+ default_value 0
+ description "
+ Phytec phyCORE-LPC2292/94 board has two serial channels. This option
+ chooses which channel will be used to connect to a host
+ running GDB."
+ }
+
+ cdl_option CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL {
+ display "Diagnostic serial port"
+ active_if CYGPRI_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_CONFIGURABLE
+ flavor data
+ legal_values 0 to CYGNUM_HAL_VIRTUAL_VECTOR_COMM_CHANNELS-1
+ default_value 0
+ description "
+ The phyCORE-LPC2292/94 board has two serial ports. This option
+ chooses which port will be used for diagnostic output."
+ }
+
+ cdl_option CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_BAUD {
+ display "Diagnostic serial port baud rate"
+ flavor data
+ legal_values 9600 19200 38400 57600 115200
+ default_value 38400
+ description "
+ This option selects the baud rate used for the diagnostic port."
+ }
+
+ cdl_option CYGNUM_HAL_VIRTUAL_VECTOR_DEBUG_CHANNEL_BAUD {
+ display "GDB serial port baud rate"
+ flavor data
+ legal_values 9600 19200 38400 57600 115200
+ default_value 38400
+ description "
+ This option controls the baud rate used for the GDB
+ connection."
+ }
+
+ cdl_component CYGHWR_HAL_ARM_PHYCORE229X_MEMCFG {
+ display "Memory configuration"
+ flavor none
+ description "
+ Configuration options for FLASH and SRAM memory of phyCORE
+ board."
+
+ cdl_option CYGHWR_HAL_ARM_PHYCORE229X_FLASH {
+ display "Flash configuration"
+ flavor data
+ legal_values { "AM29DL800" "AM29LV800" "AM29LV160" "AM29LV320" }
+ default_value { "AM29LV800" }
+ description "
+ Select the type of FLASH device that is fitted on the phyCORE
+ board."
+ }
+
+ cdl_option CYGHWR_HAL_ARM_PHYCORE229X_FLASH_DEVICE_SIZE {
+ display "FLASH device size"
+ flavor data
+ calculated { CYGHWR_HAL_ARM_PHYCORE229X_FLASH == "AM29DL800" ?
+ 0x100000 :
+ CYGHWR_HAL_ARM_PHYCORE229X_FLASH == "AM29LV800" ?
+ 0x100000 :
+ CYGHWR_HAL_ARM_PHYCORE229X_FLASH == "AM29LV160" ?
+ 0x200000 :
+ CYGHWR_HAL_ARM_PHYCORE229X_FLASH == "AM29LV320" ?
+ 0x400000 : 0x000 }
+ description "
+ Size of one single flash device."
+ }
+
+ cdl_option CYGHWR_HAL_ARM_PHYCORE229X_FLASH_CNT {
+ display "Number of flash devices"
+ flavor data
+ legal_values { 0 2 4 }
+ default_value { 2 }
+ description "
+ This option defines the number of flash devices
+ fitted. The board supports two 16-bit data bus width
+ Flash devices in parallel connected to a 32-bit data
+ bus on the LPC2292/94. Flash devices are always fitted
+ in pairs and there is space for up to 4 devices."
+ }
+
+ cdl_option CYGHWR_HAL_ARM_PHYCORE229X_FLASH_SIZE {
+ display "FLASH size"
+ flavor data
+ calculated { CYGHWR_HAL_ARM_PHYCORE229X_FLASH_DEVICE_SIZE *
+ CYGHWR_HAL_ARM_PHYCORE229X_FLASH_CNT }
+ description "
+ This option defines the size of the onboard FLASH.
+ The board can be fitted with 0, 2 or 4 FLASH devices of
+ 1MB, 2MB or 4MB."
+ }
+
+ cdl_option CYGHWR_HAL_ARM_PHYCORE229X_SRAM_SIZE {
+ display "SRAM size"
+ flavor data
+ legal_values { 0x100000 0x200000 0x400000 0x800000 }
+ default_value 0x100000
+ description "
+ This option defines the size of the onboard SRAM.
+ The board can be fittet with 2 or 4 SRAM devices of
+ 512KB, 1MB or 2MB."
+ }
+ }
+
+ cdl_component CYGHWR_HAL_ARM_PHYCORE229X_ETH {
+ display "Ethernet options"
+ flavor none
+ description "
+ Configuration options for on board SMSC LAN91C111 ethernet
+ chip."
+
+
+ cdl_option CYGHWR_HAL_ARM_PHYCORE229X_ETH_EINT {
+ display "Ethernet controller interrupt"
+ flavor data
+ legal_values { 0 1 }
+ default_value { 0 }
+ description "
+ Jumper J501 selects, which of the microcontroller external
+ interrupts (EINT) connects with the interrupt output(LAN_IRQ)
+ of the Ethernet controller. This configuration option should
+ match the actual jumper settings. The LAN chip may use EINT0
+ or EINT1."
+ }
+
+ cdl_option CYGHWR_HAL_ARM_PHYCORE229X_ETH_INT_PRIO {
+ display "Ethernet interrupt priority"
+ flavor data
+ legal_values { 0 to 16 }
+ default_value { 15 }
+ description "
+ Interrupt priority of ethernet interrupt. The LPC2xxx
+ eCos HAL supports up to 17 interrupt levels.
+ Interrupt levels 0 - 15 are vectored IRQs. Vectored
+ IRQs have a higher priority then non vectored IRQs and
+ they are processed faster. Non vectored IRQs are all
+ chained together into one single slot and the ISR need
+ to find out which interrupt occured. The default value
+ for the ethernt interrupt is 15. This is the lowest
+ vectored IRQ priority. That ensures that the ethernet
+ interrupt is processed fast while it has still a lower
+ priority than any other verctored interrupt."
+ }
+
+ cdl_option CYGHWR_HAL_ARM_PHYCORE229X_ETH_MEM_AREA {
+ display "Ethernet controller memory area"
+ flavor data
+ legal_values { 0x82000000 0x83000000 }
+ default_value { 0x82000000 }
+ description "
+ Access to the optional Ethernet controller can be established
+ via /CS2 (addr. 0x82000000) or /CS3 (addr. 0x83000000)
+ configurable with Jumper J502. The default configuration
+ allows access via /CS2."
+ }
+ }
+
+ # Real-time clock/counter specifics
+ cdl_option CYGNUM_HAL_ARM_LPC2XXX_XTAL_FREQ {
+ display "CPU xtal frequency"
+ flavor data
+ default_value {10000000}
+ }
+
+ cdl_option CYGNUM_HAL_ARM_LPC2XXX_PLL_MUL {
+ display "CPU PLL multiplier"
+ flavor data
+ default_value {6}
+ }
+
+ cdl_option CYGNUM_HAL_ARM_LPC2XXX_CLOCK_SPEED {
+ display "CPU clock speed"
+ flavor data
+ calculated { CYGNUM_HAL_ARM_LPC2XXX_PLL_MUL *
+ CYGNUM_HAL_ARM_LPC2XXX_XTAL_FREQ }
+ }
+
+ 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 { "arm-eabi"}
+ 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 { CYGBLD_GLOBAL_WARNFLAGS . CYGBLD_ARCH_CFLAGS .
+ "-mcpu=arm7tdmi -g -O2 -ffunction-sections -fdata-sections -fno-rtti -fno-exceptions " }
+ 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 { CYGBLD_ARCH_LDFLAGS . "-mcpu=arm7tdmi -Wl,--gc-sections -Wl,-static -g -nostdlib" }
+ description "
+ This option controls the global linker flags. Individual
+ packages may define options which override these global
+ flags."
+ }
+ }
+
+ 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 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_REDBOOT_HAL_OPTIONS {
+ display "Redboot HAL options"
+ flavor none
+ no_define
+ parent CYGPKG_REDBOOT
+ active_if CYGPKG_REDBOOT
+ description "
+ This option lists the target's requirements for a valid
+ Redboot configuration."
+
+ cdl_option CYGBLD_BUILD_REDBOOT_BIN {
+ display "Build Redboot ROM binary image"
+ active_if CYGBLD_BUILD_REDBOOT
+ requires { !CYGBLD_BUILD_REDBOOT_WITH_EXEC }
+ 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 ihex $< $(@:.bin=.hex)
+ $(OBJCOPY) -O binary $< $@
+ }
+
+ }
+ }
+
+ cdl_component CYGHWR_MEMORY_LAYOUT {
+ display "Memory layout"
+ flavor data
+ no_define
+ calculated { (CYG_HAL_STARTUP == "RAM") ? "arm_lpc2xxx_phycore229x_ram" :
+ "arm_lpc2xxx_phycore229x_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_lpc2xxx_phycore229x_ram.ldi>" :
+ "<pkgconf/mlt_arm_lpc2xxx_phycore229x_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_lpc2xxx_phycore229x_ram.h>" :
+ "<pkgconf/mlt_arm_lpc2xxx_phycore229x_rom.h>" }
+ }
+ }
+}
diff --git a/ecos/packages/hal/arm/lpc2xxx/phycore229x/current/include/hal_platform_setup.h b/ecos/packages/hal/arm/lpc2xxx/phycore229x/current/include/hal_platform_setup.h
new file mode 100755
index 0000000..656cd16
--- /dev/null
+++ b/ecos/packages/hal/arm/lpc2xxx/phycore229x/current/include/hal_platform_setup.h
@@ -0,0 +1,263 @@
+#ifndef CYGONCE_HAL_PLATFORM_SETUP_H
+#define CYGONCE_HAL_PLATFORM_SETUP_H
+/*=============================================================================
+//
+// hal_platform_setup.h
+//
+// Platform specific support for HAL (assembly code)
+//
+//=============================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002, 2008 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): Uwe Kindler
+// Contributors: Uwe Kindler
+// Date: 2007-12-02
+// Purpose: phyCORE-LPC229x platform specific support routines
+// Description:
+// Usage: #include <cyg/hal/hal_platform_setup.h>
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================*/
+#include <pkgconf/system.h>
+#include <cyg/hal/var_io.h>
+
+//===========================================================================*/
+
+#define LINES (0xFE<<16)
+#define LINE (1<<16)
+.macro _line_init
+ // set to GPIO
+ ldr r0,=CYGARC_HAL_LPC2XXX_REG_PIN_BASE
+ ldr r1,[r0,#CYGARC_HAL_LPC2XXX_REG_PINSEL2]
+ bic r1, r1, #8
+ str r1,[r0,#CYGARC_HAL_LPC2XXX_REG_PINSEL2]
+ // set to output
+ ldr r0,=CYGARC_HAL_LPC2XXX_REG_IO_BASE
+ ldr r1,[r0,#CYGARC_HAL_LPC2XXX_REG_IO1DIR]
+ orr r1,r1,#LINE
+ str r1,[r0,#CYGARC_HAL_LPC2XXX_REG_IO1DIR]
+ // turn ON
+ ldr r1,[r0,#CYGARC_HAL_LPC2XXX_REG_IO1PIN]
+ bic r1,r1,#LINES
+ orr r1,r1,#LINE
+ str r1,[r0,#CYGARC_HAL_LPC2XXX_REG_IO1PIN]
+.endm
+
+//----------------------------------------------------------------------------
+// The phyCORE Carrier Board HD200 offers a programmable LED at
+// D3 for user implementations. This LED can be connected to port pin
+// P0.8 (TxD1) of the phyCORE-LPC2292/94 which is available via
+// signal GPIO0 (JP17 = closed). A low-level at port pin P0.8 causes the
+// LED to illuminate, LED D3 remains off when writing a high-level to
+// P0.8.
+//
+.macro _led_init
+ ldr r0,=CYGARC_HAL_LPC2XXX_REG_IO_BASE
+ ldr r1,=(1<<8) // GPIO0 pins 8 is LED output
+ str r1,[r0,#CYGARC_HAL_LPC2XXX_REG_IO0DIR]
+.endm
+
+.macro _led x
+ ldr r0,=CYGARC_HAL_LPC2XXX_REG_IO_BASE
+ ldr r1,=(1<<8)
+ str r1,[r0,#CYGARC_HAL_LPC2XXX_REG_IO0CLR]
+ ldr r1,=((\x & 1)<<8)
+ str r1,[r0,#CYGARC_HAL_LPC2XXX_REG_IO0SET]
+.endm
+#define CYGHWR_LED_MACRO _led \x
+
+
+//----------------------------------------------------------------------------
+// PLL initialisation
+//
+.macro _pll_init
+ ldr r0,=CYGARC_HAL_LPC2XXX_REG_SCB_BASE
+
+ mov r2,#0xAA
+ mov r3,#0x55
+
+ mov r1,#(0x20 | (CYGNUM_HAL_ARM_LPC2XXX_PLL_MUL - 1))
+ // load the PLL configuration register
+ str r1,[r0,#CYGARC_HAL_LPC2XXX_REG_PLLCFG]
+
+ mov r1,#1
+ str r1,[r0,#CYGARC_HAL_LPC2XXX_REG_PLLCON] // enable PLL
+
+ // perform validation sequence 0XAA followed by 0x55
+ str r2,[r0,#CYGARC_HAL_LPC2XXX_REG_PLLFEED]
+ str r3,[r0,#CYGARC_HAL_LPC2XXX_REG_PLLFEED]
+
+1:
+ ldr r1,[r0,#CYGARC_HAL_LPC2XXX_REG_PLLSTAT] // wait for it to lock
+ ands r1,r1,#(1<<10)
+ beq 1b
+
+ mov r1,#3 // connect PLL
+ str r1,[r0,#CYGARC_HAL_LPC2XXX_REG_PLLCON]
+
+ // perform validation sequence 0XAA followed by 0x55
+ str r2,[r0,#CYGARC_HAL_LPC2XXX_REG_PLLFEED]
+ str r3,[r0,#CYGARC_HAL_LPC2XXX_REG_PLLFEED]
+.endm
+
+
+//----------------------------------------------------------------------------
+// External memory and bus initialisation
+//
+.macro _mem_init
+ //
+ // first map the vector table to internal flash - normally this should be
+ // the default value after boot - but we go the safe way here and force
+ // the mapping to internal flash (the value for
+ // CYGARC_HAL_LPC2XXX_REG_MEMMAP is 1)
+ //
+ ldr r0,=CYGARC_HAL_LPC2XXX_REG_SCB_BASE
+ mov r1,#1
+ str r1, [r0,#CYGARC_HAL_LPC2XXX_REG_MEMMAP]
+
+ //
+ // Now its is save to copy the first 64 bytes of flash to RAM
+ //
+ mov r0,#0
+ mov r1,#0x40000000
+ mov r2,#0x40
+1:
+ ldr r3,[r0,#4]!
+ str r3,[r1,#4]!
+ cmps r0,r2
+ bne 1b
+
+ //
+ // Now we can map the vector table to internal SRAM because the SRAM no
+ // contains a copy of the vector tablefrom flash (the value for
+ // CYGARC_HAL_LPC2XXX_REG_MEMMAP is 2 = SRAM)
+ //
+ ldr r0,=CYGARC_HAL_LPC2XXX_REG_SCB_BASE
+ // User RAM Mode. Interrupt vectors are re-mapped to Static RAM.
+ mov r1,#2
+ str r1, [r0,#CYGARC_HAL_LPC2XXX_REG_MEMMAP]
+ // 4 processor clocks fetch cycle
+ mov r1,#4
+ str r1,[r0,#CYGARC_HAL_LPC2XXX_REG_MAMTIM] // flash timings
+ mov r1,#2
+ str r1,[r0,#CYGARC_HAL_LPC2XXX_REG_MAMCR] // enable full MAM
+
+ //
+ // Set-up external memory - the main task here is to setup the
+ // wait states for the external memory properly
+ //
+ // Bank Configuration Registers 0-3 (BCFG0-3)
+ // [0..3] IDCY: Min. number of idle Cycles <0-15>
+ // [4] Reserved
+ // [5..9] WST1: Wait States 1 <0-31>
+ // [10] RBLE: Read Byte Lane Enable
+ // [11..15] WST2: Wait States 2 <0-31>
+ // [16..23] Reserved
+ // [26] WP: Write Protect
+ // [27] BM: Burst ROM
+ // [28..29] MW: Memory Width <0=8-bit,1=16-bit,2=32-bit,3=Reserved>
+ // [30..31] Reserved
+ //
+
+ // enable external parallel bus signals
+ ldr r0,=CYGARC_HAL_LPC2XXX_REG_PIN_BASE
+ // A0..1 enabled, CS0..3, OE, WE, BLS0..3, D0..31, A2..23, JTAG Pins
+ ldr r1,=0x0FE149E4
+ str r1,[r0,#CYGARC_HAL_LPC2XXX_REG_PINSEL2]
+
+ // setup external FLASH wait states
+ ldr r0,=CYGARC_HAL_LPC2XXX_REG_BCFG0
+ ldr r1,=0x20003CE3
+ str r1, [r0]
+
+ // setup external SRAM wait states
+ ldr r0,=CYGARC_HAL_LPC2XXX_REG_BCFG1
+ ldr r1,=0x020002483
+ str r1, [r0]
+
+ // setup Ethernet chip wait states for /CS2 and /CS3
+ ldr r0,=CYGARC_HAL_LPC2XXX_REG_BCFG2
+ ldr r1,=0x020000C23
+ str r1, [r0]
+ ldr r0,=CYGARC_HAL_LPC2XXX_REG_BCFG3
+ ldr r1,=0x020000C23
+ str r1, [r0]
+.endm
+
+.macro _gpio_init
+ // enable RX and TX on UART0 and UART1
+ ldr r0,=CYGARC_HAL_LPC2XXX_REG_PIN_BASE
+ ldr r1,=0x00050005
+ str r1,[r0,#CYGARC_HAL_LPC2XXX_REG_PINSEL0]
+
+ // set pin function to EINT0
+ ldr r0,=CYGARC_HAL_LPC2XXX_REG_PIN_BASE
+ ldr r1,=0x00000001
+ str r1,[r0,#CYGARC_HAL_LPC2XXX_REG_PINSEL1]
+.endm
+
+.macro _block
+ ldr r0,=CYGARC_HAL_LPC2XXX_REG_IO_BASE
+ ldr r1,=(1<<8)
+ str r1,[r0,#CYGARC_HAL_LPC2XXX_REG_IO0CLR]
+2:
+ nop
+ b 2
+.endm
+#define PLATFORM_BLOCK _block
+//===========================================================================*/
+
+#if defined(CYG_HAL_STARTUP_ROM)
+.macro _setup
+ _line_init
+ _led_init
+ _led 1
+ _pll_init
+ _mem_init
+ _gpio_init
+.endm
+#define CYGSEM_HAL_ROM_RESET_USES_JUMP
+#else
+ .macro _setup
+
+ .endm
+#endif
+
+#define PLATFORM_SETUP1 _setup
+
+//-----------------------------------------------------------------------------
+// end of hal_platform_setup.h
+#endif // CYGONCE_HAL_PLATFORM_SETUP_H
diff --git a/ecos/packages/hal/arm/lpc2xxx/phycore229x/current/include/pkgconf/mlt_arm_lpc2xxx_phycore229x_ram.h b/ecos/packages/hal/arm/lpc2xxx/phycore229x/current/include/pkgconf/mlt_arm_lpc2xxx_phycore229x_ram.h
new file mode 100755
index 0000000..80ab082
--- /dev/null
+++ b/ecos/packages/hal/arm/lpc2xxx/phycore229x/current/include/pkgconf/mlt_arm_lpc2xxx_phycore229x_ram.h
@@ -0,0 +1,21 @@
+#ifndef __ASSEMBLER__
+#include <cyg/infra/cyg_type.h>
+#include <stddef.h>
+
+#endif
+
+#define CYGMEM_REGION_sram (0x40000000)
+#define CYGMEM_REGION_sram_SIZE (0x00004000)
+#define CYGMEM_REGION_sram_ATTR (CYGMEM_REGION_ATTR_R | CYGMEM_REGION_ATTR_W)
+
+#define CYGMEM_REGION_ram (0x81000000)
+#define CYGMEM_REGION_ram_SIZE (0x00100000)
+#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 (0x81100000 - (size_t) CYG_LABEL_NAME (__heap1))
+
diff --git a/ecos/packages/hal/arm/lpc2xxx/phycore229x/current/include/pkgconf/mlt_arm_lpc2xxx_phycore229x_ram.ldi b/ecos/packages/hal/arm/lpc2xxx/phycore229x/current/include/pkgconf/mlt_arm_lpc2xxx_phycore229x_ram.ldi
new file mode 100755
index 0000000..6b02bdb
--- /dev/null
+++ b/ecos/packages/hal/arm/lpc2xxx/phycore229x/current/include/pkgconf/mlt_arm_lpc2xxx_phycore229x_ram.ldi
@@ -0,0 +1,26 @@
+#include <cyg/infra/cyg_type.inc>
+#include <pkgconf/hal_arm_lpc2xxx_phycore229x.h>
+
+MEMORY
+{
+ sram : ORIGIN = 0x40000000, LENGTH = 0x4000
+ ram : ORIGIN = 0x81000000, LENGTH = CYGHWR_HAL_ARM_PHYCORE229X_SRAM_SIZE
+}
+
+SECTIONS
+{
+ SECTIONS_BEGIN
+ SECTION_fixed_vectors (sram, 0x40000400, LMA_EQ_VMA)
+ SECTION_rom_vectors (ram, 0x81010000, 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)
+ CYG_LABEL_DEFN(__heap1) = ALIGN (0x8);
+ SECTIONS_END
+}
+
diff --git a/ecos/packages/hal/arm/lpc2xxx/phycore229x/current/include/pkgconf/mlt_arm_lpc2xxx_phycore229x_rom.h b/ecos/packages/hal/arm/lpc2xxx/phycore229x/current/include/pkgconf/mlt_arm_lpc2xxx_phycore229x_rom.h
new file mode 100755
index 0000000..cd634ad
--- /dev/null
+++ b/ecos/packages/hal/arm/lpc2xxx/phycore229x/current/include/pkgconf/mlt_arm_lpc2xxx_phycore229x_rom.h
@@ -0,0 +1,31 @@
+// eCos memory layout - Wed Apr 11 13:49:55 2001
+
+// This is a generated file - do not edit
+
+#ifndef __ASSEMBLER__
+#include <cyg/infra/cyg_type.h>
+#include <stddef.h>
+
+#endif
+#define CYGMEM_REGION_sram (0x40000000)
+#define CYGMEM_REGION_sram_SIZE (0x00004000)
+#define CYGMEM_REGION_sram_ATTR (CYGMEM_REGION_ATTR_R | CYGMEM_REGION_ATTR_W)
+
+#define CYGMEM_REGION_ram (0x81000000)
+#define CYGMEM_REGION_ram_SIZE (CYGHWR_HAL_ARM_PHYCORE229X_SRAM_SIZE)
+#define CYGMEM_REGION_ram_ATTR (CYGMEM_REGION_ATTR_R | CYGMEM_REGION_ATTR_W)
+
+#define CYGMEM_REGION_rom (0x00000000)
+#define CYGMEM_REGION_rom_SIZE (0x00040000)
+#define CYGMEM_REGION_rom_ATTR (CYGMEM_REGION_ATTR_R)
+
+#define CYGMEM_REGION_flash (0x80000000)
+#define CYGMEM_REGION_flash_SIZE (CYGHWR_HAL_ARM_PHYCORE229X_FLASH_SIZE)
+#define CYGMEM_REGION_flash_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 (0x81000000 + CYGHWR_HAL_ARM_PHYCORE229X_SRAM_SIZE - (size_t) CYG_LABEL_NAME (__heap1))
+
diff --git a/ecos/packages/hal/arm/lpc2xxx/phycore229x/current/include/pkgconf/mlt_arm_lpc2xxx_phycore229x_rom.ldi b/ecos/packages/hal/arm/lpc2xxx/phycore229x/current/include/pkgconf/mlt_arm_lpc2xxx_phycore229x_rom.ldi
new file mode 100755
index 0000000..2128c6e
--- /dev/null
+++ b/ecos/packages/hal/arm/lpc2xxx/phycore229x/current/include/pkgconf/mlt_arm_lpc2xxx_phycore229x_rom.ldi
@@ -0,0 +1,27 @@
+#include <cyg/infra/cyg_type.inc>
+#include <pkgconf/hal_arm_lpc2xxx_phycore229x.h>
+
+MEMORY
+{
+ rom : ORIGIN = 0x00000000, LENGTH = 0x40000
+ sram : ORIGIN = 0x40000000, LENGTH = 0x4000
+ ram : ORIGIN = 0x81000000, LENGTH = CYGHWR_HAL_ARM_PHYCORE229X_SRAM_SIZE
+}
+
+SECTIONS
+{
+ SECTIONS_BEGIN
+ SECTION_rom_vectors (rom, 0x00000000, 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 (sram, 0x40000400, LMA_EQ_VMA)
+ SECTION_data (ram, 0x81000000, FOLLOWING (.gcc_except_table))
+ SECTION_bss (ram, ALIGN (0x4), LMA_EQ_VMA)
+ CYG_LABEL_DEFN(__heap1) = ALIGN (0x8);
+ SECTIONS_END
+}
+
diff --git a/ecos/packages/hal/arm/lpc2xxx/phycore229x/current/include/plf_io.h b/ecos/packages/hal/arm/lpc2xxx/phycore229x/current/include/plf_io.h
new file mode 100755
index 0000000..2a53613
--- /dev/null
+++ b/ecos/packages/hal/arm/lpc2xxx/phycore229x/current/include/plf_io.h
@@ -0,0 +1,69 @@
+#ifndef CYGONCE_HAL_PLF_IO_H
+#define CYGONCE_HAL_PLF_IO_H
+//=============================================================================
+//
+// plf_io.h
+//
+// Phytec phyCORE-LPC2292/94 board specific registers
+//
+//=============================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002, 2008 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): Uwe Kindler
+// Contributors: Sergei Gavrikov
+// Date: 2007-11-20
+// Purpose: Phytec phyCORE-LPC2292/94 board specific registers
+// Description:
+// Usage: #include <cyg/hal/plf_io.h>
+//
+//####DESCRIPTIONEND####
+//
+//=============================================================================
+// On-chip device base addresses
+
+
+//----------------------------------------------------------------------
+// The platform needs this initialization during the
+// hal_hardware_init() function in the varient HAL.
+#ifndef __ASSEMBLER__
+extern void hal_plf_hardware_init(void);
+#define HAL_PLF_HARDWARE_INIT() \
+ hal_plf_hardware_init()
+#endif //__ASSEMBLER__
+
+//-----------------------------------------------------------------------------
+// end of plf_io.h
+#endif // CYGONCE_HAL_PLF_IO_H
+
diff --git a/ecos/packages/hal/arm/lpc2xxx/phycore229x/current/src/phycore229x_misc.c b/ecos/packages/hal/arm/lpc2xxx/phycore229x/current/src/phycore229x_misc.c
new file mode 100755
index 0000000..6f8d147
--- /dev/null
+++ b/ecos/packages/hal/arm/lpc2xxx/phycore229x/current/src/phycore229x_misc.c
@@ -0,0 +1,139 @@
+/*==========================================================================
+//
+// phycore_misc.c
+//
+// HAL misc board support code for Phytec phyCORE-LPC2292/94
+//
+//==========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002, 2008 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//==========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): Uwe Kindler
+// Contributors: Uwe Kindler
+// Date: 2007-11-20
+// Purpose: HAL board support
+// Description: Implementations of HAL board interfaces
+//
+//####DESCRIPTIONEND####
+//
+//========================================================================*/
+#include <pkgconf/hal.h>
+#include <pkgconf/hal_arm_lpc2xxx_phycore229x.h>
+#include <cyg/hal/hal_io.h> // IO macros
+
+#include <cyg/infra/cyg_type.h> // base types
+#include <cyg/hal/var_io.h>
+#include <cyg/hal/plf_io.h>
+#include <pkgconf/hal.h>
+
+#include <cyg/hal/hal_arch.h>
+#include <cyg/hal/hal_intr.h>
+
+#ifdef CYGPKG_REDBOOT
+#include <redboot.h>
+#endif
+
+extern void cyg_hal_plf_serial_init(void);
+
+void cyg_hal_plf_comms_init(void)
+{
+ static int initialized = 0;
+
+ if (initialized)
+ return;
+ initialized = 1;
+
+ cyg_hal_plf_serial_init();
+}
+
+//--------------------------------------------------------------------------
+// hal_plf_hardware_init
+//
+void hal_plf_hardware_init(void)
+{
+#if defined(CYG_HAL_STARTUP_ROM) && defined(CYGPKG_DEVS_ETH_ARM_PHYCORE229X)
+ cyg_uint32 regval;
+
+ //
+ // Configures the LAN IRQ
+ // The interrupt is being used as active high edge triggered.
+ // IMPORTANT: We execute this step only for ROM startup. If this is done
+ // for RAM startup then wrong values are stored in EXTMODE and EXTPOLAR
+ // register because of a bug in LPC229x hardware.
+ //
+ HAL_INTERRUPT_CONFIGURE(CYGHWR_HAL_ARM_PHYCORE229X_ETH_EINT + // the configured external interrupt
+ CYGNUM_HAL_INTERRUPT_EINT0, // the first external interrupt
+ 0, // level = 0 - edge triggered
+ 1); // up = 1 - rising edge
+
+ //
+ // Set pin function of P0.16 to EINT0 or P0.14 to EINT1 for ethernet interrupt
+ //
+#if CYGHWR_HAL_ARM_PHYCORE229X_ETH_EINT == 0
+ HAL_READ_UINT32(CYGARC_HAL_LPC2XXX_REG_PIN_BASE +
+ CYGARC_HAL_LPC2XXX_REG_PINSEL1, regval);
+ regval |= 0x01;
+ HAL_WRITE_UINT32(CYGARC_HAL_LPC2XXX_REG_PIN_BASE +
+ CYGARC_HAL_LPC2XXX_REG_PINSEL1, regval);
+#elif CYGHWR_HAL_ARM_PHYCORE229X_ETH_EINT == 1
+ HAL_READ_UINT32(CYGARC_HAL_LPC2XXX_REG_PIN_BASE +
+ CYGARC_HAL_LPC2XXX_REG_PINSEL0, regval);
+ regval |= (0x10 << 28);
+ HAL_WRITE_UINT32(CYGARC_HAL_LPC2XXX_REG_PIN_BASE +
+ CYGARC_HAL_LPC2XXX_REG_PINSEL0, regval);
+#else
+#error "Invalid CYGHWR_HAL_ARM_PHYCORE229X_ETH_EINT value"
+#endif
+#endif // #if defined(CYG_HAL_STARTUP_ROM) && defined(CYGPKG_DEVS_ETH_ARM_PHYCORE229X)
+}
+
+//--------------------------------------------------------------------------
+// hal_lpc2xxx_set_leds
+//
+void hal_lpc2xxx_set_leds (int mask)
+{
+ //
+ // implement function for setting diagnostic leds
+ //
+}
+
+//--------------------------------------------------------------------------
+// EOF phycore_misc.c
+
+
+
+
+
+
+
diff --git a/ecos/packages/hal/arm/lpc2xxx/var/current/ChangeLog b/ecos/packages/hal/arm/lpc2xxx/var/current/ChangeLog
new file mode 100644
index 0000000..beca645
--- /dev/null
+++ b/ecos/packages/hal/arm/lpc2xxx/var/current/ChangeLog
@@ -0,0 +1,145 @@
+2012-03-13 Sergei Gavrikov <sergei.gavrikov@gmail.com>
+
+ * src/lpc2xxx_misc.c: Fix compiler warning about variable that is set
+ but not used.
+
+2009-06-10 Sergei Gavrikov <sergei.gavrikov@gmail.com>
+
+ * src/hal_diag.c: workaround for a suppressing a compiler warning,
+ cyg_hal_plf_serial_isr(): cyg_hal_is_break() claims ptr on signed
+ char as argument 1: fixed.
+
+2009-01-15 Sergei Gavrikov <sergei.gavrikov@gmail.com>
+
+ * include/lpc2xxx_iap.h, src/lpc2xxx_iap.c, tests/iap_test.c: New
+ files: support for IAP (In Application Programming) interface and
+ small test case for hal_lpc2xxx_iap_call().
+ * cdl/hal_arm_lpc2xxx.cdl: CYGINT_HAL_ARM_LPC2XXX_IAP_CALL interface
+ and CYGPKG_HAL_ARM_LPC2XXX_TESTS option added.
+
+2008-12-02 Sergei Gavrikov <sergei.gavrikov@gmail.com>
+ Andrew Lunn <andrew@lunn.ch>
+
+ * include/var_io.h: Memory access macros added.
+
+2008-07-21 Uwe Kindler <uwe_kindler@web.de>
+
+ * cdl/hal_arm_lpc2xxx.cdl: Added option
+ CYGHWR_HAL_ARM_LPC2XXX_VARIANT_VERSION to identify the variant version
+ because some on-chip peripherals changed slightly in newer veriants.
+ CYGNUM_HAL_ARM_LPC2XXX_PCLK is the pre calculated peripheral clock
+ value. CYGNUM_HAL_ARM_LPC2XXX_XCLK is the pre calculated XCLK
+ value.
+ * include/lpc2xxx_misc.h: Added HAL_LPC2XXX_INIT_CAN() macro fo
+ initialisation of CAN channels (required by CAN driver). Added
+ CYGNUM_HAL_ARM_LPC2XXX_CAN_CLK to define the CAN peripheral clock
+ for CAN driver.
+ * include/lpc2xxx_misc.c: Removed functions hal_lpc_get_cclk()
+ hal_lpc_get_pclk() and hal_lpc_get_xclk() because they are not
+ required and all clock values (CCLK, PCLK and XCLK) are
+ configuration values and pre calculated in CDL file.
+ Added hal_lpc_can_init() function for initialisation of CAN
+ channels.
+
+2008-05-23 Alexey Shusharin <mrfinch@mail.ru>
+
+ * cdl/hal_arm_lpc2xxx.cdl: add suffix option to denote
+ different versions of LPC2XXX
+
+2007-08-23 Hans Rosenfeld <rosenfeld@grumpf.hope-2000.org>
+
+ * include/hal_var_ints.h: use interrupt priority 16 for
+ kernel test intr0/kintr0 interrupts
+
+2007-08-17 Hans Rosenfeld <rosenfeld@grumpf.hope-2000.org>
+
+ * cdl/hal_arm_lpc2xxx.cdl: added VIC component to support
+ configuration of individual interrupt priorities
+
+2007-07-10 Uwe Kindler <uwe_kindler@web.de>
+
+ * cdl/hal_arm_lpc2xxx.cdl: Added option
+ CYGNUM_HAL_KERNEL_COUNTERS_CLOCK_ISR_DEFAULT_PRIORITY for
+ configuration of priority of system clock interrupts.
+
+ * src/lpc2xxx_misc.c: Added support for vectored interrupt
+ controller and up to 17 interrupt priorities. This improves
+ interrupt processing time and makes processing of vectored
+ interrupts more determenistic because no for loop is required
+ for detection of interrupt source.
+
+2007-06-04 Alexey Shusharin <mrfinch@mail.ru>
+
+ * src/hal_diag.c (cyg_hal_plf_serial_isr): Fixed issue with UART
+ ISR handling. Old handler doesn't read the UxIIR register in order
+ to clear the interrupt flag. The resulted in endless interrupts
+ and the DSR never got to run.
+
+2006-02-03 Sergei Gavrikov <sg@sgs.gomel.by>
+
+ * cdl/hal_arm_lpc2xxx.cdl: Added CYGNUM_HAL_ARM_VECTOR_0x14. That
+ gives us a chance to correct a LPC2XXX program signature (ARM
+ unused vector at 0x14). The program signature is the two's
+ compliment of the checksum of the ARM7 vector table. Note:
+ you can quite overwrite that CDL value in your plf. startup
+ code (hal_platform_setup.h).
+
+2006-05-08 Andy Jackson <andy@grapevinetech.co.uk>
+
+ * src/lpc2xxx_misc.c: Fixed issue with VPBDIV initialisation on
+ non lpc22xx parts code.
+
+2006-05-08 Sergei Gavrikov <sg@belvok.com>
+
+ * src/lpc2xxx.misc (hal_hardware_init): Call HAL_PLF_HARDWARE_INIT
+ for any platform specific initialization.
+
+2006-05-07 Andy Jackson <andy@grapevinetech.co.uk>
+
+ * cdl/hal_arm_lpc2xxx.cdl: Added CYGHWR_HAL_ARM_LPC2XXX_FAMILY,
+ CYGNUM_HAL_ARM_LPC2XXX_VPBDIV, CYGNUM_HAL_ARM_LPC2XXX_XCLKDIV
+ and CYGHWR_HAL_ARM_LPC2XXX_IDLE_PWRSAVE. Changed
+ CYGHWR_HAL_ARM_LPC2XXX_EXTINT_ERRATA to a bool.
+ * include/hal_var_ints.h: Removed lpc2xxx misc functions and
+ added an include for lpc2xxx_misc.h to avoid breaking things.
+ * include/lpc2xxx_misc.h: New header file for all the lpc2xxx
+ miscellaneous functions.
+ * include/var_arch.h: Made idle powerdown CDL controlled.
+ * include/var_io.h: Changed to use family CDL variables.
+ * src/lpc2xxx_misc.c: Changes to interrupt and VPBDIV code.
+
+2004-09-12 Jani Monoses <jani@iv.ro>
+
+ * src/hal_diag.c:
+ * src/lpc2xxx_misc.c:
+ * include/plf_stub.h:
+ * include/var_io.h:
+ * include/var_arch.h:
+ * include/hal_var_ints.h:
+ * include/hal_diag.h:
+ * include/hal_cache.h:
+ * cdl/hal_arm_lpc2xxx.cdl: New port - based on AT91 variant.
+
+//===========================================================================
+// ####GPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002, 2004 Free Software Foundation, Inc.
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 2 or (at your option) any
+// later version.
+//
+// This program is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the
+// Free Software Foundation, Inc., 51 Franklin Street,
+// Fifth Floor, Boston, MA 02110-1301, USA.
+// -------------------------------------------
+// ####GPLCOPYRIGHTEND####
+//===========================================================================
diff --git a/ecos/packages/hal/arm/lpc2xxx/var/current/cdl/hal_arm_lpc2xxx.cdl b/ecos/packages/hal/arm/lpc2xxx/var/current/cdl/hal_arm_lpc2xxx.cdl
new file mode 100644
index 0000000..0aa77b8
--- /dev/null
+++ b/ecos/packages/hal/arm/lpc2xxx/var/current/cdl/hal_arm_lpc2xxx.cdl
@@ -0,0 +1,355 @@
+# ====================================================================
+#
+# hal_arm_lpc2xxx.cdl
+#
+# Philips LPC2XXX HAL package configuration data
+#
+# ====================================================================
+## ####ECOSGPLCOPYRIGHTBEGIN####
+## -------------------------------------------
+## This file is part of eCos, the Embedded Configurable Operating System.
+## Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
+##
+## eCos is free software; you can redistribute it and/or modify it under
+## the terms of the GNU General Public License as published by the Free
+## Software Foundation; either version 2 or (at your option) any later
+## version.
+##
+## eCos is distributed in the hope that it will be useful, but WITHOUT
+## ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+## FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+## for more details.
+##
+## You should have received a copy of the GNU General Public License
+## along with eCos; if not, write to the Free Software Foundation, Inc.,
+## 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+##
+## As a special exception, if other files instantiate templates or use
+## macros or inline functions from this file, or you compile this file
+## and link it with other works to produce a work based on this file,
+## this file does not by itself cause the resulting work to be covered by
+## the GNU General Public License. However the source code for this file
+## must still be made available in accordance with section (3) of the GNU
+## General Public License v2.
+##
+## This exception does not invalidate any other reasons why a work based
+## on this file might be covered by the GNU General Public License.
+## -------------------------------------------
+## ####ECOSGPLCOPYRIGHTEND####
+# ====================================================================
+######DESCRIPTIONBEGIN####
+#
+# Author(s): jani
+# Contributors: gthomas, tkoeller, tdrury, nickg
+# Date: 2001-07-12
+#
+#####DESCRIPTIONEND####
+#
+# ====================================================================
+
+cdl_package CYGPKG_HAL_ARM_LPC2XXX {
+ display "Philips LPC2XXX variant HAL"
+ parent CYGPKG_HAL_ARM
+ define_header hal_arm_lpc2xxx.h
+ include_dir cyg/hal
+ hardware
+ description "
+ The LPC2XXX HAL package provides the support needed to run
+ eCos on Philips LPC2XXX based targets."
+
+ compile hal_diag.c lpc2xxx_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_COMM_BAUD_SUPPORT
+ implements CYGINT_HAL_ARM_ARCH_ARM7
+ implements CYGINT_HAL_ARM_THUMB_ARCH
+
+ # Let the architectural HAL see this variant's files
+ define_proc {
+ puts $::cdl_header "#define CYGBLD_HAL_VAR_INTS_H <cyg/hal/hal_var_ints.h>"
+ puts $::cdl_system_header "#define CYGBLD_HAL_ARM_VAR_IO_H"
+ puts $::cdl_system_header "#define CYGBLD_HAL_ARM_VAR_ARCH_H"
+ }
+
+ # This is going to get really messy before long as the number of parts
+ # explodes. Its useful to know the actual part in use, but its just as
+ # useful to know which family it belongs to. LPC210x shouldn't really
+ # be in the list of devices, but will probably break something if removed.
+ cdl_component CYGHWR_HAL_ARM_LPC2XXX {
+ display "LPC2XXX variant used"
+ flavor data
+ default_value { "LPC210x" }
+ legal_values { "LPC210x"
+ "LPC2101" "LPC2102" "LPC2103" "LPC2104" "LPC2105" "LPC2106"
+ "LPC2114" "LPC2119" "LPC2124" "LPC2129" "LPC2131" "LPC2132"
+ "LPC2134" "LPC2136" "LPC2138" "LPC2141" "LPC2142" "LPC2144"
+ "LPC2146" "LPC2148" "LPC2194" "LPC2210" "LPC2212" "LPC2214"
+ "LPC2220" "LPC2290" "LPC2292" "LPC2294" }
+ description "
+ The LPC2XXX microcontroller family has several variants,
+ the main differences being the amount of on-chip RAM,
+ flash and peripherals. This option allows the platform
+ HALs to select the specific microcontroller being used."
+
+ cdl_option CYGHWR_HAL_ARM_LPC2XXX_FAMILY {
+ display "LPC2XXX variant family"
+ flavor data
+ calculated {
+ is_substr(CYGHWR_HAL_ARM_LPC2XXX, "LPC22") ? "LPC22XX" :
+ is_substr(CYGHWR_HAL_ARM_LPC2XXX, "LPC213") ? "LPC213X" :
+ is_substr(CYGHWR_HAL_ARM_LPC2XXX, "LPC214") ? "LPC214X" :
+ is_substr(CYGHWR_HAL_ARM_LPC2XXX, "LPC210") ? "LPC210X" :
+ "LPC21XX"
+ }
+ description "
+ This specifies the family that the processor
+ belongs to. This is useful as it defines certain common
+ characteristics (e.g lpc22xx has the external bus and
+ lpc214x has USB) which affect which features should be
+ available in the HAL."
+ }
+
+ cdl_option CYGHWR_HAL_ARM_LPC2XXX_VARIANT_VERSION {
+ display "LPC2XXX variant version"
+ flavor data
+ calculated {
+ is_substr(CYGHWR_HAL_ARM_LPC2XXX, "LPC21") ? 1 :
+ is_substr(CYGHWR_HAL_ARM_LPC2XXX, "LPC22") ? 2 :
+ is_substr(CYGHWR_HAL_ARM_LPC2XXX, "LPC24") ? 4 : 0
+ }
+ description "
+ This specifies the variant version that the processor
+ belongs to. Some common characteristics may be
+ different in newer LPC2xxx versions. I.e. the LPC24xx variants
+ are significant different from former LPC2xxx variants."
+ }
+
+ cdl_option CYGHWR_HAL_ARM_LPC2XXX_SUFFIX {
+ display "Suffix of LPC2XXX device"
+ flavor data
+ legal_values { "no_suffix" "00" "01" }
+ default_value { "no_suffix" }
+ description "
+ This option sets the version number of LPC2XXX microcontroller.
+ To denote different version of LPC2XXX the following suffixes
+ are used: no suffix, /00, /01. All /01 version contain
+ enhanced features."
+ }
+ }
+
+ # Important! Be very careful changing this value. That will always
+ # enter the LPC2XXX bootloader after reset and consequently will
+ # never run your code. You must know what you are doing. Look at
+ # arch. vectors.S for details.
+ cdl_option CYGNUM_HAL_ARM_VECTOR_0x14 {
+ display "ARM vector at 0x14"
+ flavor data
+ default_value 0xB4405F62
+ legal_values 0 to 0xFFFFFFFF
+ description "
+ In order to detect if a valid program is present, every
+ user program must have a program signature. This signature
+ is a word-wide number that is stored in the unused
+ location in the ARM7 vector table at 0x00000014. The
+ program signature is the two's compliment of the checksum
+ of the ARM vector table."
+ }
+
+ cdl_component CYGNUM_HAL_ARM_LPC2XXX_VPBDIV {
+ display "VPB clock divisor"
+ flavor data
+ legal_values { 4 2 1 }
+ default_value { 4 }
+ description "
+ The VPB Divider determines the relationship between the
+ processor clock (cclk) and the clock used by peripheral
+ devices (pclk). The VPB Divider serves two purposes.
+ The first is to provides peripherals with desired pclk
+ via VPB bus so that they can operate at the speed chosen for the ARM
+ processor. In order to achieve this, the VPB bus may be slowed down
+ to one half or one fourth of the processor clock rate.
+ Because the VPB bus must work properly at power up (and its timing
+ cannot be altered if it does not work since the VPB divider control
+ registers reside on the VPB bus), the default condition at reset is
+ for the VPB bus to run at one quarter speed. The second purpose of
+ the VPB Divider is to allow power savings when an application
+ does not require any peripherals to run at the full processor rate.
+ This option sets the divisor for the VPB clock relative to
+ the processor clock. 4 means that the VPB clock runs at
+ one fourth the processor clock, 2 means that it runs at
+ one half of the processor clock and 1 means that it is the
+ same as the processor clock."
+
+ cdl_option CYGNUM_HAL_ARM_LPC2XXX_PCLK {
+ display "Peripheral clock"
+ flavor data
+ calculated {CYGNUM_HAL_ARM_LPC2XXX_CLOCK_SPEED / CYGNUM_HAL_ARM_LPC2XXX_VPBDIV}
+ description "
+ The peripheral clock is the clock derived from the processor clock
+ speed divided by the VPB clock divisor."
+ }
+ }
+
+ cdl_component CYGNUM_HAL_ARM_LPC2XXX_XCLKDIV {
+ display "XCLK clock divisor"
+ flavor data
+ legal_values { 4 2 1 }
+ default_value { 4 }
+ active_if { CYGHWR_HAL_ARM_LPC2XXX_FAMILY == "LPC22XX" }
+ description "
+ This option sets the divisor for the XCLK clock relative
+ to the processor clock. 4 means that the XCLK clock runs
+ at one fourth the processor clock, 2 means that it runs at
+ one half of the processor clock and 1 means that it is the
+ same as the processor clock."
+
+ cdl_option CYGNUM_HAL_ARM_LPC2XXX_XCLK {
+ display "Clock on XCLK pin"
+ flavor data
+ calculated {CYGNUM_HAL_ARM_LPC2XXX_CLOCK_SPEED / CYGNUM_HAL_ARM_LPC2XXX_VPBDIV}
+ description "
+ This option controls the clock that can be driven onto the
+ A23/XCLK pin"
+ }
+ }
+
+ 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
+ default_value 1000000000
+ }
+ cdl_option CYGNUM_HAL_RTC_DENOMINATOR {
+ display "Real-time clock denominator"
+ flavor data
+ default_value 100
+ }
+ cdl_option CYGNUM_HAL_RTC_PERIOD {
+ display "Real-time clock period"
+ flavor data
+ default_value { ((CYGNUM_HAL_ARM_LPC2XXX_CLOCK_SPEED) /
+ CYGNUM_HAL_RTC_DENOMINATOR) }
+ }
+ }
+
+ # Enable this by default, as I believe it won't affect parts that
+ # don't have the problem (other than slowing them down slightly)
+ # but causes a lock-up on those that do...
+ cdl_option CYGHWR_HAL_ARM_LPC2XXX_EXTINT_ERRATA {
+ display "EXTINT.1 errata workaround"
+ flavor bool
+ default_value 1
+ description "
+
+ On some chips writing to the EXTPOLAR or EXTMODE registers
+ while VPBDIV is non-zero can corrupt the latter. Also
+ reading them will yield incorrect values. Enable this
+ option to work around the problem."
+ }
+
+ cdl_option CYGHWR_HAL_ARM_LPC2XXX_IDLE_PWRSAVE {
+ display "Stop clock in idle loop to save power"
+ flavor bool
+ default_value { is_active(CYGPKG_REDBOOT) ? 0 : 1 }
+ description "
+ Select this option when it is desired to save power by
+ stoping the processor clock in the idle loop. This is
+ controlled by the PCON register. Generally this is a good
+ thing, but it may be necessary to disable this when
+ debugging via JTAG, as stopping the clock can prevent the
+ debugger getting control of the system."
+ }
+
+ cdl_option CYGNUM_HAL_KERNEL_COUNTERS_CLOCK_ISR_DEFAULT_PRIORITY {
+ display "Default priority for system clock interrupts"
+ flavor data
+ legal_values { 0 to 16 }
+ default_value 0
+ description "
+ The LPC2xxx eCos HAL supports up to 17 interrupt levels.
+ Interrupt levels 0 - 15 are vectored IRQs. Vectored IRQs
+ have a higher priority then non vectored IRQs and they
+ are processed faster. Non vectored IRQs are all chained together
+ into one single slot and the ISR need to find out which interrupt
+ occured. The default value for the system clock interrupts is 0 -
+ this is the highest priority IRQ."
+ }
+
+ cdl_interface CYGINT_HAL_ARM_LPC2XXX_IAP_CALL {
+ display "Interface to manage IAP call"
+ }
+
+ cdl_component CYGBLD_BUILD_HAL_LPC2XXX_WITH_IAP_CALL {
+ display "IAP (In Application Programming) interface"
+ flavor bool
+ default_value 1
+ compile lpc2xxx_iap.c
+ implements CYGINT_HAL_ARM_LPC2XXX_IAP_CALL
+
+ cdl_option CYGNUM_HAL_ARM_LPC2XXX_IAP_CALL_SAFE {
+ display "Disable interrupts during IAP call"
+ flavor bool
+ default_value 1
+ description "
+ In most cases IAP calls uses itself to manage on-chip
+ flash memory. LPC2XXX on-chip flash memory is not
+ accessible during erase and write operations. The
+ user should either disable interrupts, or ensure that
+ user interrupt vectors are active in RAM and that
+ the interrupt handlers reside in RAM, before making a
+ flash erase/write IAP call. The IAP code does not use
+ or disable interrupts. This option disable interrupts
+ by default during IAP call (for safety)."
+ }
+
+ cdl_option CYGFUN_HAL_ARM_LPC2XXX_IAP_CALL_WRAP {
+ display "Wrap for IAP call enabled"
+ flavor bool
+ active_if { CYGDAT_HAL_ARM_LPC2XXX_IAP_PRE_CALL || \
+ CYGDAT_HAL_ARM_LPC2XXX_IAP_POST_CALL }
+ calculated 1
+ description "
+ This option controls whether IAP call will be wrapped by
+ custom helpers. E.g., IAP flash programming call takes
+ ~ 1 ms per 512 byte line. Single sector or full chip
+ erase takes 400 mS. This can be quite enougth to fire a
+ hardware watchdog. You still can manage it using own pre-
+ and (or) post-calls."
+ }
+
+ # void (*precall)(void)
+ cdl_option CYGDAT_HAL_ARM_LPC2XXX_IAP_PRE_CALL {
+ display "Use custom IAP pre-call"
+ flavor booldata
+ default_value 0
+ description "
+ If enabled, this option will tell IAP call to use the
+ value of this option as a custom pre-call."
+ }
+
+ # void (*postcall)(void)
+ cdl_option CYGDAT_HAL_ARM_LPC2XXX_IAP_POST_CALL {
+ display "Use custom IAP post-call"
+ flavor booldata
+ default_value 0
+ description "
+ If enabled, this option will tell IAP call to use the
+ value of this option as a custom post-call."
+ }
+ }
+
+ cdl_option CYGPKG_HAL_ARM_LPC2XXX_TESTS {
+ display "LPC2XXX HAL tests"
+ flavor data
+ no_define
+ calculated { "tests/iap_test" }
+ description "
+ This option specifies the set of tests for the LPC2XXX HAL."
+ }
+
+}
diff --git a/ecos/packages/hal/arm/lpc2xxx/var/current/include/hal_cache.h b/ecos/packages/hal/arm/lpc2xxx/var/current/include/hal_cache.h
new file mode 100644
index 0000000..30e8ff3
--- /dev/null
+++ b/ecos/packages/hal/arm/lpc2xxx/var/current/include/hal_cache.h
@@ -0,0 +1,109 @@
+#ifndef CYGONCE_HAL_CACHE_H
+#define CYGONCE_HAL_CACHE_H
+
+//=============================================================================
+//
+// hal_cache.h
+//
+// HAL cache control API
+//
+//=============================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002, 2004 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jani
+// Contributors:
+// Date: 2004-09-08
+// 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 <cyg/infra/cyg_type.h>
+
+//-----------------------------------------------------------------------------
+// Global control of data cache
+
+// Enable the data cache
+#define HAL_DCACHE_ENABLE()
+
+// Disable the data cache
+#define HAL_DCACHE_DISABLE()
+
+// Invalidate the entire cache
+#define HAL_DCACHE_INVALIDATE_ALL()
+
+// Synchronize the contents of the cache with memory.
+#define HAL_DCACHE_SYNC()
+
+// Purge contents of data cache
+#define HAL_DCACHE_PURGE_ALL()
+
+// Query the state of the data cache (does not affect the caching)
+#define HAL_DCACHE_IS_ENABLED(_state_) \
+ CYG_MACRO_START \
+ (_state_) = 0; \
+ CYG_MACRO_END
+
+//-----------------------------------------------------------------------------
+// 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 (does not affect the caching)
+#define HAL_ICACHE_IS_ENABLED(_state_) \
+ CYG_MACRO_START \
+ (_state_) = 0; \
+ CYG_MACRO_END
+
+//-----------------------------------------------------------------------------
+#endif // ifndef CYGONCE_HAL_CACHE_H
+// End of hal_cache.h
diff --git a/ecos/packages/hal/arm/lpc2xxx/var/current/include/hal_diag.h b/ecos/packages/hal/arm/lpc2xxx/var/current/include/hal_diag.h
new file mode 100644
index 0000000..e205a04
--- /dev/null
+++ b/ecos/packages/hal/arm/lpc2xxx/var/current/include/hal_diag.h
@@ -0,0 +1,85 @@
+#ifndef CYGONCE_HAL_DIAG_H
+#define CYGONCE_HAL_DIAG_H
+
+//=============================================================================
+//
+// hal_diag.h
+//
+// HAL Support for Kernel Diagnostic Routines
+//
+//=============================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002, 2004 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jskov
+// Contributors:jskov, gthomas, tkoeller
+// Date: 2001-07-12
+// 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>
+
+#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_)
+
+//-----------------------------------------------------------------------------
+// LED
+externC void hal_diag_led(int mask);
+
+externC void hal_lpc2xxx_set_leds(int mask);
+
+//-----------------------------------------------------------------------------
+// delay
+
+externC void hal_delay_us(cyg_int32 usecs);
+#define HAL_DELAY_US(n) hal_delay_us(n);
+
+//-----------------------------------------------------------------------------
+// reset
+
+extern void hal_lpc2xxx_reset_cpu(void);
+
+//-----------------------------------------------------------------------------
+// end of hal_diag.h
+#endif // CYGONCE_HAL_DIAG_H
diff --git a/ecos/packages/hal/arm/lpc2xxx/var/current/include/hal_var_ints.h b/ecos/packages/hal/arm/lpc2xxx/var/current/include/hal_var_ints.h
new file mode 100644
index 0000000..fab47e8
--- /dev/null
+++ b/ecos/packages/hal/arm/lpc2xxx/var/current/include/hal_var_ints.h
@@ -0,0 +1,111 @@
+#ifndef CYGONCE_HAL_VAR_INTS_H
+#define CYGONCE_HAL_VAR_INTS_H
+//==========================================================================
+//
+// hal_var_ints.h
+//
+// HAL Interrupt and clock support
+//
+//==========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002, 2004 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//==========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jani
+// Contributors:
+// Date: 2004-09-12
+// Purpose: Define Interrupt support
+// Description: The interrupt details for the LPC2XXX are defined here.
+// Usage:
+// #include <pkgconf/system.h>
+// #include CYGBLD_HAL_VARIANT_H
+// #include CYGBLD_HAL_VAR_INTS_H
+//
+// ...
+//
+//
+//####DESCRIPTIONEND####
+//
+//==========================================================================
+
+
+#define CYGNUM_HAL_INTERRUPT_WD 0
+#define CYGNUM_HAL_INTERRUPT_SOFT 1
+#define CYGNUM_HAL_INTERRUPT_DCC_RX 2
+#define CYGNUM_HAL_INTERRUPT_DCC_TX 3
+#define CYGNUM_HAL_INTERRUPT_TIMER0 4
+#define CYGNUM_HAL_INTERRUPT_TIMER1 5
+#define CYGNUM_HAL_INTERRUPT_UART0 6
+#define CYGNUM_HAL_INTERRUPT_UART1 7
+#define CYGNUM_HAL_INTERRUPT_PWM0 8
+#define CYGNUM_HAL_INTERRUPT_I2C 9
+#define CYGNUM_HAL_INTERRUPT_SPI0 10
+#define CYGNUM_HAL_INTERRUPT_SPI1 11
+#define CYGNUM_HAL_INTERRUPT_PLL 12
+#define CYGNUM_HAL_INTERRUPT_RTCDEV 13 // actual RTC device not the
+ // eCos 'real time clock'
+ // interrupt. The latter is on
+ // TIMER0.
+#define CYGNUM_HAL_INTERRUPT_EINT0 14
+#define CYGNUM_HAL_INTERRUPT_EINT1 15
+#define CYGNUM_HAL_INTERRUPT_EINT2 16
+#define CYGNUM_HAL_INTERRUPT_EINT3 17
+#define CYGNUM_HAL_INTERRUPT_AD 18
+#define CYGNUM_HAL_INTERRUPT_CAN 19
+#define CYGNUM_HAL_INTERRUPT_CAN1_TX 20
+#define CYGNUM_HAL_INTERRUPT_CAN2_TX 21
+#define CYGNUM_HAL_INTERRUPT_CAN3_TX 22
+#define CYGNUM_HAL_INTERRUPT_CAN4_TX 23
+#define CYGNUM_HAL_INTERRUPT_CAN1_RX 26
+#define CYGNUM_HAL_INTERRUPT_CAN2_RX 27
+#define CYGNUM_HAL_INTERRUPT_CAN3_RX 28
+#define CYGNUM_HAL_INTERRUPT_CAN4_RX 29
+
+#define CYGNUM_HAL_ISR_MIN 0
+#define CYGNUM_HAL_ISR_MAX (31)
+
+#define CYGNUM_HAL_ISR_COUNT (CYGNUM_HAL_ISR_MAX+1)
+
+/* use non-vectored interrupts in kernel tests intr0/kintr0 */
+#define HAL_INTR_TEST_PRIO_A 16
+#define HAL_INTR_TEST_PRIO_B 16
+#define HAL_INTR_TEST_PRIO_C 16
+
+//The vector used by the Real time clock
+#define CYGNUM_HAL_INTERRUPT_RTC CYGNUM_HAL_INTERRUPT_TIMER0
+
+// Other entries here moved to variant specific include file
+// This is included here to avoid breaking anything
+#include <cyg/hal/lpc2xxx_misc.h>
+
+#endif // CYGONCE_HAL_VAR_INTS_H
diff --git a/ecos/packages/hal/arm/lpc2xxx/var/current/include/lpc2xxx_iap.h b/ecos/packages/hal/arm/lpc2xxx/var/current/include/lpc2xxx_iap.h
new file mode 100644
index 0000000..4500d4d
--- /dev/null
+++ b/ecos/packages/hal/arm/lpc2xxx/var/current/include/lpc2xxx_iap.h
@@ -0,0 +1,104 @@
+#ifndef CYGONCE_LPC2XXX_IAP_H
+#define CYGONCE_LPC2XXX_IAP_H
+//==========================================================================
+//
+// lpc2xxx_iap.h
+//
+// LPC2XXX IAP (In Application Programming) interface
+//
+//==========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002, 2006 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//==========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): Sergei Gavrikov
+// Contributors: Sergei Gavrikov
+// Date: 2007-09-20
+// Purpose:
+// Description:
+// Usage: #include <cyg/hal/lpc2xxx_iap.h>
+//
+//####DESCRIPTIONEND####
+//
+//==========================================================================
+
+#include <cyg/infra/cyg_type.h>
+
+//----------------------------------------------------------------------------
+// The LPC2XXX IAP entry point is at 0x7FFFFFF0 if you wish to call the IAP
+// functions from a THUMB function or at 0x7FFFFFF1 if you wish to call from
+// an ARM function.
+
+#define HAL_LPC2XXX_IAP_ENTRY_THUMB 0x7FFFFFF0u
+#define HAL_LPC2XXX_IAP_ENTRY_ARM 0x7FFFFFF1u
+
+#ifndef HAL_LPC2XXX_IAP_ENTRY_DEFAULT
+# define HAL_LPC2XXX_IAP_ENTRY_DEFAULT HAL_LPC2XXX_IAP_ENTRY_ARM
+#endif
+
+// LPC2XXX IAP return code
+#define HAL_LPC2XXX_IAP_RETURN_CMD_SUCCESS 0
+#define HAL_LPC2XXX_IAP_RETURN_INVALID_COMMAND 1
+#define HAL_LPC2XXX_IAP_RETURN_SRC_ADDR_ERROR 2
+#define HAL_LPC2XXX_IAP_RETURN_DST_ADDR_ERROR 3
+#define HAL_LPC2XXX_IAP_RETURN_SRC_ADDR_NOT_MAPPED 4
+#define HAL_LPC2XXX_IAP_RETURN_DST_ADDR_NOT_MAPPED 5
+#define HAL_LPC2XXX_IAP_RETURN_COUNT_ERROR 6
+#define HAL_LPC2XXX_IAP_RETURN_INVALID_SECTOR 7
+#define HAL_LPC2XXX_IAP_RETURN_SECTOR_NOT_BLANK 8
+#define HAL_LPC2XXX_IAP_RETURN_SECTOR_NOT_PREPARED 9
+#define HAL_LPC2XXX_IAP_RETURN_COMPARE_ERROR 10
+#define HAL_LPC2XXX_IAP_RETURN_BUSY 11
+#define HAL_LPC2XXX_IAP_RETURN_PARAM_ERROR 12
+#define HAL_LPC2XXX_IAP_RETURN_ADDR_ERROR 13
+#define HAL_LPC2XXX_IAP_RETURN_ADDR_NOT_MAPPED 14
+#define HAL_LPC2XXX_IAP_RETURN_CMD_LOCKED 15
+#define HAL_LPC2XXX_IAP_RETURN_INVALID_CODE 16
+#define HAL_LPC2XXX_IAP_RETURN_INVALID_BAUD_RATE 17
+#define HAL_LPC2XXX_IAP_RETURN_INVALID_STOP_BIT 18
+
+// LPC2XXX IAP commands
+#define HAL_LPC2XXX_IAP_COMMAND_PREPARE_SECTORS 50
+#define HAL_LPC2XXX_IAP_COMMAND_COPY_RAM_TO_FLASH 51
+#define HAL_LPC2XXX_IAP_COMMAND_ERASE_SECTORS 52
+#define HAL_LPC2XXX_IAP_COMMAND_BLANK_CHECK_SECTORS 53
+#define HAL_LPC2XXX_IAP_COMMAND_READ_PART_ID 54
+#define HAL_LPC2XXX_IAP_COMMAND_READ_BOOT_CODE_VERSION 55
+#define HAL_LPC2XXX_IAP_COMMAND_COMPARE 56
+
+cyg_uint32
+hal_lpc2xxx_iap_call (cyg_uint32 cmd, cyg_uint32 par0, cyg_uint32 par1,
+ cyg_uint32 par2, cyg_uint32 par3, cyg_uint32 * ret);
+
+#endif//CYGONCE_LPC2XXX_IAP_H
+// EOF lpc2xxx_iap.h
diff --git a/ecos/packages/hal/arm/lpc2xxx/var/current/include/lpc2xxx_misc.h b/ecos/packages/hal/arm/lpc2xxx/var/current/include/lpc2xxx_misc.h
new file mode 100644
index 0000000..e037be4
--- /dev/null
+++ b/ecos/packages/hal/arm/lpc2xxx/var/current/include/lpc2xxx_misc.h
@@ -0,0 +1,81 @@
+#ifndef CYGONCE_HAL_ARM_LPC2XXX_VAR_LPC2XXX_MISC_H
+#define CYGONCE_HAL_ARM_LPC2XXX_VAR_LPC2XXX_MISC_H
+//=============================================================================
+//
+// lpc2xxx_misc.h
+//
+// HAL misc variant support code for Philips LPC2xxx header file
+//
+//=============================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 2006 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): andyj
+// Contributors: jani
+// Date: 2006-02-04
+// Purpose: LPC2XXX specific miscellaneous support header file
+// Description:
+// Usage: #include <cyg/hal/lpc2xxx_misc.h>
+//
+//####DESCRIPTIONEND####
+//
+//=============================================================================
+
+//-----------------------------------------------------------------------------
+// Macros to derive the baudrate divider values for the internal UARTs
+//-----------------------------------------------------------------------------
+#define CYG_HAL_ARM_LPC2XXX_BAUD_GENERATOR(baud) \
+ (CYGNUM_HAL_ARM_LPC2XXX_PCLK/((baud)*16))
+
+//-----------------------------------------------------------------------------
+// LPX2xxx varaint specific initialisatio of CAN channels
+// This function configures the pin functions for CAN use
+//-----------------------------------------------------------------------------
+#ifdef CYGPKG_DEVS_CAN_LPC2XXX
+externC void hal_lpc_can_init(cyg_uint8 can_chan_no);
+#define HAL_LPC2XXX_INIT_CAN(_can_chan_no_) hal_lpc_can_init(_can_chan_no_)
+#define CYGNUM_HAL_ARM_LPC2XXX_CAN_CLK CYGNUM_HAL_ARM_LPC2XXX_PCLK
+#endif // CYGPKG_DEVS_CAN_LPC2XXX
+
+//-----------------------------------------------------------------------------
+// LPX2xxx watchdog support
+//-----------------------------------------------------------------------------
+externC void hal_lpc_watchdog_reset(void);
+
+#define HAL_PLATFORM_RESET() hal_lpc_watchdog_reset()
+#define HAL_PLATFORM_RESET_ENTRY 0
+
+//-----------------------------------------------------------------------------
+// end of lpc2xxx_misc.h
+#endif // CYGONCE_HAL_ARM_LPC2XXX_VAR_LPC2XXX_MISC_H
diff --git a/ecos/packages/hal/arm/lpc2xxx/var/current/include/plf_stub.h b/ecos/packages/hal/arm/lpc2xxx/var/current/include/plf_stub.h
new file mode 100644
index 0000000..d85c046
--- /dev/null
+++ b/ecos/packages/hal/arm/lpc2xxx/var/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.
+//
+//=============================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002, 2004 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jani
+// Contributors:jskov, gthomas
+// Date: 2004-10-5
+// Purpose: Platform HAL stub support for LPC2XXX based boards.
+// Usage: #include <cyg/hal/plf_stub.h>
+//
+//####DESCRIPTIONEND####
+//
+//=============================================================================
+
+#include <pkgconf/hal.h>
+#include CYGBLD_HAL_PLATFORM_H
+
+#ifdef CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS
+
+#include <cyg/infra/cyg_type.h> // CYG_UNUSED_PARAM
+
+#include <cyg/hal/arm_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.
+#define HAL_STUB_PLATFORM_INIT() CYG_EMPTY_STATEMENT
+
+#endif // ifdef CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS
+
+//-----------------------------------------------------------------------------
+#endif // CYGONCE_HAL_PLF_STUB_H
+// End of plf_stub.h
diff --git a/ecos/packages/hal/arm/lpc2xxx/var/current/include/var_arch.h b/ecos/packages/hal/arm/lpc2xxx/var/current/include/var_arch.h
new file mode 100644
index 0000000..f659e8b
--- /dev/null
+++ b/ecos/packages/hal/arm/lpc2xxx/var/current/include/var_arch.h
@@ -0,0 +1,80 @@
+#ifndef CYGONCE_HAL_VAR_ARCH_H
+#define CYGONCE_HAL_VAR_ARCH_H
+//=============================================================================
+//
+// var_arch.h
+//
+// LPC2XXX variant architecture overrides
+//
+//=============================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 2003, 2004 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jani
+// Contributors: jlarmour,Daniel Neri
+// Date: 2004-10-05
+// Purpose: LPC2XXX variant architecture overrides
+// Description:
+// Usage: #include <cyg/hal/hal_arch.h>
+//
+//####DESCRIPTIONEND####
+//
+//=============================================================================
+
+#include <pkgconf/hal.h>
+#include <cyg/hal/hal_io.h>
+//--------------------------------------------------------------------------
+// Idle thread code.
+// This macro is called in the idle thread loop, and gives the HAL the
+// chance to insert code. Typical idle thread behaviour might be to halt the
+// processor. These implementations halt the system core clock.
+
+#ifdef CYGHWR_HAL_ARM_LPC2XXX_IDLE_PWRSAVE
+
+#ifndef HAL_IDLE_THREAD_ACTION
+
+#define HAL_IDLE_THREAD_ACTION(_count_) \
+CYG_MACRO_START \
+HAL_WRITE_UINT32(CYGARC_HAL_LPC2XXX_REG_SCB_BASE + \
+ CYGARC_HAL_LPC2XXX_REG_PCON, \
+ CYGARC_HAL_LPC2XXX_REG_PCON_IDL); \
+CYG_MACRO_END
+
+#endif // HAL_IDLE_THREAD_ACTION
+
+#endif // CYGHWR_HAL_ARM_LPC2XXX_IDLE_MODE
+
+//-----------------------------------------------------------------------------
+// end of var_arch.h
+#endif // CYGONCE_HAL_VAR_ARCH_H
diff --git a/ecos/packages/hal/arm/lpc2xxx/var/current/include/var_io.h b/ecos/packages/hal/arm/lpc2xxx/var/current/include/var_io.h
new file mode 100644
index 0000000..36baa7e
--- /dev/null
+++ b/ecos/packages/hal/arm/lpc2xxx/var/current/include/var_io.h
@@ -0,0 +1,588 @@
+#ifndef CYGONCE_HAL_VAR_IO_H
+#define CYGONCE_HAL_VAR_IO_H
+//=============================================================================
+//
+// var_io.h
+//
+// Variant specific registers
+//
+//=============================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 2004 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jlarmour
+// Contributors:
+// Date: 2004-07-23
+// Purpose: Philips LPC2xxx variant specific registers
+// Description:
+// Usage: #include <cyg/hal/var_io.h>
+//
+//####DESCRIPTIONEND####
+//
+//=============================================================================
+
+#include <pkgconf/hal_arm_lpc2xxx.h> // variant chip model selection.
+#include <cyg/hal/plf_io.h>
+
+//=============================================================================
+// Memory access macros
+
+#ifndef CYGARC_CACHED_ADDRESS
+# define CYGARC_CACHED_ADDRESS(x) (x)
+#endif
+#ifndef CYGARC_UNCACHED_ADDRESS
+# define CYGARC_UNCACHED_ADDRESS(x) (x)
+#endif
+#ifndef CYGARC_PHYSICAL_ADDRESS
+# define CYGARC_PHYSICAL_ADDRESS(x) (x)
+#endif
+#ifndef CYGARC_VIRTUAL_ADDRESS
+# define CYGARC_VIRTUAL_ADDRESS(x) (x)
+#endif
+
+//=============================================================================
+// Watchdog (WD)
+
+#define CYGARC_HAL_LPC2XXX_REG_WD_BASE 0xE0000000
+
+// Registers are offsets from base of this subsystem
+#define CYGARC_HAL_LPC2XXX_REG_WDMOD 0x0000
+#define CYGARC_HAL_LPC2XXX_REG_WDMOD_WDEN (1<<0)
+#define CYGARC_HAL_LPC2XXX_REG_WDMOD_WDRESET (1<<1)
+#define CYGARC_HAL_LPC2XXX_REG_WDMOD_WDTOF (1<<2)
+#define CYGARC_HAL_LPC2XXX_REG_WDMOD_WDINT (1<<3)
+#define CYGARC_HAL_LPC2XXX_REG_WDTC 0x0004
+#define CYGARC_HAL_LPC2XXX_REG_WDFEED 0x0008
+#define CYGARC_HAL_LPC2XXX_REG_WDFEED_MAGIC1 0xAA
+#define CYGARC_HAL_LPC2XXX_REG_WDFEED_MAGIC2 0x55
+#define CYGARC_HAL_LPC2XXX_REG_WDTV 0x000C
+
+//=============================================================================
+// Timers (Tx)
+
+#define CYGARC_HAL_LPC2XXX_REG_TIMER0_BASE 0xE0004000
+#define CYGARC_HAL_LPC2XXX_REG_TIMER1_BASE 0xE0008000
+
+// Registers are offsets from base for each timer
+#define CYGARC_HAL_LPC2XXX_REG_TxIR 0x0000
+#define CYGARC_HAL_LPC2XXX_REG_TxIR_MR0 (1<<0)
+#define CYGARC_HAL_LPC2XXX_REG_TxIR_MR1 (1<<1)
+#define CYGARC_HAL_LPC2XXX_REG_TxIR_MR2 (1<<2)
+#define CYGARC_HAL_LPC2XXX_REG_TxIR_MR3 (1<<3)
+#define CYGARC_HAL_LPC2XXX_REG_TxIR_CR0 (1<<4)
+#define CYGARC_HAL_LPC2XXX_REG_TxIR_CR1 (1<<5)
+#define CYGARC_HAL_LPC2XXX_REG_TxIR_CR2 (1<<6)
+#define CYGARC_HAL_LPC2XXX_REG_TxIR_CR3 (1<<7)
+#define CYGARC_HAL_LPC2XXX_REG_TxTCR 0x0004
+#define CYGARC_HAL_LPC2XXX_REG_TxTCR_CTR_ENABLE (1<<0)
+#define CYGARC_HAL_LPC2XXX_REG_TxTCR_CTR_RESET (1<<1)
+#define CYGARC_HAL_LPC2XXX_REG_TxTC 0x0008
+#define CYGARC_HAL_LPC2XXX_REG_TxPR 0x000C
+#define CYGARC_HAL_LPC2XXX_REG_TxPC 0x0010
+#define CYGARC_HAL_LPC2XXX_REG_TxMCR 0x0014
+#define CYGARC_HAL_LPC2XXX_REG_TxMCR_MR0_INT (1<<0)
+#define CYGARC_HAL_LPC2XXX_REG_TxMCR_MR0_RESET (1<<1)
+#define CYGARC_HAL_LPC2XXX_REG_TxMCR_MR0_STOP (1<<2)
+#define CYGARC_HAL_LPC2XXX_REG_TxMCR_MR1_INT (1<<3)
+#define CYGARC_HAL_LPC2XXX_REG_TxMCR_MR1_RESET (1<<4)
+#define CYGARC_HAL_LPC2XXX_REG_TxMCR_MR1_STOP (1<<5)
+#define CYGARC_HAL_LPC2XXX_REG_TxMCR_MR2_INT (1<<6)
+#define CYGARC_HAL_LPC2XXX_REG_TxMCR_MR2_RESET (1<<7)
+#define CYGARC_HAL_LPC2XXX_REG_TxMCR_MR2_STOP (1<<8)
+#define CYGARC_HAL_LPC2XXX_REG_TxMCR_MR3_INT (1<<9)
+#define CYGARC_HAL_LPC2XXX_REG_TxMCR_MR3_RESET (1<<10)
+#define CYGARC_HAL_LPC2XXX_REG_TxMCR_MR3_STOP (1<<11)
+#define CYGARC_HAL_LPC2XXX_REG_TxMR0 0x0018
+#define CYGARC_HAL_LPC2XXX_REG_TxMR1 0x001C
+#define CYGARC_HAL_LPC2XXX_REG_TxMR2 0x0020
+#define CYGARC_HAL_LPC2XXX_REG_TxMR3 0x0024
+#define CYGARC_HAL_LPC2XXX_REG_TxCCR 0x0028
+#define CYGARC_HAL_LPC2XXX_REG_TxCCR_INT_CR0_RISE (1<<0)
+#define CYGARC_HAL_LPC2XXX_REG_TxCCR_INT_CR0_FALL (1<<1)
+#define CYGARC_HAL_LPC2XXX_REG_TxCCR_INT_CR0 (1<<2)
+#define CYGARC_HAL_LPC2XXX_REG_TxCCR_INT_CR1_RISE (1<<3)
+#define CYGARC_HAL_LPC2XXX_REG_TxCCR_INT_CR1_FALL (1<<4)
+#define CYGARC_HAL_LPC2XXX_REG_TxCCR_INT_CR1 (1<<5)
+#define CYGARC_HAL_LPC2XXX_REG_TxCCR_INT_CR2_RISE (1<<6)
+#define CYGARC_HAL_LPC2XXX_REG_TxCCR_INT_CR2_FALL (1<<7)
+#define CYGARC_HAL_LPC2XXX_REG_TxCCR_INT_CR2 (1<<8)
+#define CYGARC_HAL_LPC2XXX_REG_TxCCR_INT_CR3_RISE (1<<9)
+#define CYGARC_HAL_LPC2XXX_REG_TxCCR_INT_CR3_FALL (1<<10)
+#define CYGARC_HAL_LPC2XXX_REG_TxCCR_INT_CR3 (1<<11)
+#define CYGARC_HAL_LPC2XXX_REG_TxCR0 0x002C
+#define CYGARC_HAL_LPC2XXX_REG_TxCR1 0x0030
+#define CYGARC_HAL_LPC2XXX_REG_TxCR2 0x0034
+#define CYGARC_HAL_LPC2XXX_REG_TxCR3 0x0038
+#define CYGARC_HAL_LPC2XXX_REG_TxEMR 0x003C
+#define CYGARC_HAL_LPC2XXX_REG_TxEMR_EM0 (1<<0)
+#define CYGARC_HAL_LPC2XXX_REG_TxEMR_EM1 (1<<1)
+#define CYGARC_HAL_LPC2XXX_REG_TxEMR_EM2 (1<<2)
+#define CYGARC_HAL_LPC2XXX_REG_TxEMR_EM3 (1<<3)
+
+//=============================================================================
+// UARTs (Ux)
+
+#define CYGARC_HAL_LPC2XXX_REG_UART0_BASE 0xE000C000
+#define CYGARC_HAL_LPC2XXX_REG_UART1_BASE 0xE0010000
+
+// Registers are offsets from base for each UART
+#define CYGARC_HAL_LPC2XXX_REG_UxRBR 0x0000 // DLAB=0 read
+#define CYGARC_HAL_LPC2XXX_REG_UxTHR 0x0000 // DLAB=0 write
+#define CYGARC_HAL_LPC2XXX_REG_UxDLL 0x0000 // DLAB=1 r/w
+#define CYGARC_HAL_LPC2XXX_REG_UxIER 0x0004 // DLAB=0
+#define CYGARC_HAL_LPC2XXX_REG_UxIER_RXDATA_INT (1<<0)
+#define CYGARC_HAL_LPC2XXX_REG_UxIER_THRE_INT (1<<1)
+#define CYGARC_HAL_LPC2XXX_REG_UxIER_RXLS_INT (1<<2)
+#define CYGARC_HAL_LPC2XXX_REG_U1IER_RXMS_INT (1<<3) // U1 only
+#define CYGARC_HAL_LPC2XXX_REG_UxDLM 0x0004 // DLAB=1
+
+#define CYGARC_HAL_LPC2XXX_REG_UxIIR 0x0008 // read
+#define CYGARC_HAL_LPC2XXX_REG_UxIIR_IIR0 (1<<0)
+#define CYGARC_HAL_LPC2XXX_REG_UxIIR_IIR1 (1<<1)
+#define CYGARC_HAL_LPC2XXX_REG_UxIIR_IIR2 (1<<2)
+#define CYGARC_HAL_LPC2XXX_REG_UxIIR_IIR3 (1<<3)
+#define CYGARC_HAL_LPC2XXX_REG_UxIIR_FIFOS (0xB0)
+
+#define CYGARC_HAL_LPC2XXX_REG_UxFCR 0x0008 // write
+#define CYGARC_HAL_LPC2XXX_REG_UxFCR_FIFO_ENA (1<<0)
+#define CYGARC_HAL_LPC2XXX_REG_UxFCR_RX_FIFO_RESET (1<<1)
+#define CYGARC_HAL_LPC2XXX_REG_UxFCR_TX_FIFO_RESET (1<<2)
+#define CYGARC_HAL_LPC2XXX_REG_UxFCR_RX_TRIGGER_0 (0x00)
+#define CYGARC_HAL_LPC2XXX_REG_UxFCR_RX_TRIGGER_1 (0x40)
+#define CYGARC_HAL_LPC2XXX_REG_UxFCR_RX_TRIGGER_2 (0x80)
+#define CYGARC_HAL_LPC2XXX_REG_UxFCR_RX_TRIGGER_3 (0xB0)
+
+#define CYGARC_HAL_LPC2XXX_REG_UxLCR 0x000C
+#define CYGARC_HAL_LPC2XXX_REG_UxLCR_WORD_LENGTH_5 (0x00)
+#define CYGARC_HAL_LPC2XXX_REG_UxLCR_WORD_LENGTH_6 (0x01)
+#define CYGARC_HAL_LPC2XXX_REG_UxLCR_WORD_LENGTH_7 (0x02)
+#define CYGARC_HAL_LPC2XXX_REG_UxLCR_WORD_LENGTH_8 (0x03)
+#define CYGARC_HAL_LPC2XXX_REG_UxLCR_STOP_1 (0x00)
+#define CYGARC_HAL_LPC2XXX_REG_UxLCR_STOP_2 (0x04)
+#define CYGARC_HAL_LPC2XXX_REG_UxLCR_PARITY_ENA (0x08)
+#define CYGARC_HAL_LPC2XXX_REG_UxLCR_PARITY_ODD (0x00)
+#define CYGARC_HAL_LPC2XXX_REG_UxLCR_PARITY_EVEN (0x10)
+#define CYGARC_HAL_LPC2XXX_REG_UxLCR_PARITY_ONE (0x20)
+#define CYGARC_HAL_LPC2XXX_REG_UxLCR_PARITY_ZERO (0x30)
+#define CYGARC_HAL_LPC2XXX_REG_UxLCR_BREAK_ENA (0x40)
+#define CYGARC_HAL_LPC2XXX_REG_UxLCR_DLAB (0x80)
+
+
+// Modem Control Register is UART1 only
+#define CYGARC_HAL_LPC2XXX_REG_U1MCR 0x0010
+#define CYGARC_HAL_LPC2XXX_REG_U1MCR_DTR (1<<0)
+#define CYGARC_HAL_LPC2XXX_REG_U1MCR_RTS (1<<1)
+#define CYGARC_HAL_LPC2XXX_REG_U1MCR_LOOPBACK (1<<4)
+
+#define CYGARC_HAL_LPC2XXX_REG_UxLSR 0x0014
+#define CYGARC_HAL_LPC2XXX_REG_UxLSR_RDR (1<<0)
+#define CYGARC_HAL_LPC2XXX_REG_UxLSR_OE (1<<1)
+#define CYGARC_HAL_LPC2XXX_REG_UxLSR_PE (1<<2)
+#define CYGARC_HAL_LPC2XXX_REG_UxLSR_FE (1<<3)
+#define CYGARC_HAL_LPC2XXX_REG_UxLSR_BI (1<<4)
+#define CYGARC_HAL_LPC2XXX_REG_UxLSR_THRE (1<<5)
+#define CYGARC_HAL_LPC2XXX_REG_UxLSR_TEMT (1<<6)
+#define CYGARC_HAL_LPC2XXX_REG_UxLSR_RX_FIFO_ERR (1<<7)
+
+// Modem Status Register is UART1 only
+#define CYGARC_HAL_LPC2XXX_REG_U1MSR 0x0018
+#define CYGARC_HAL_LPC2XXX_REG_U1MSR_DCTS (1<<0)
+#define CYGARC_HAL_LPC2XXX_REG_U1MSR_DDSR (1<<1)
+#define CYGARC_HAL_LPC2XXX_REG_U1MSR_RI_FALL (1<<2)
+#define CYGARC_HAL_LPC2XXX_REG_U1MSR_DDCD (1<<3)
+#define CYGARC_HAL_LPC2XXX_REG_U1MSR_CTS (1<<4)
+#define CYGARC_HAL_LPC2XXX_REG_U1MSR_DSR (1<<5)
+#define CYGARC_HAL_LPC2XXX_REG_U1MSR_RI (1<<6)
+#define CYGARC_HAL_LPC2XXX_REG_U1MSR_DCD (1<<7)
+
+#define CYGARC_HAL_LPC2XXX_REG_UxSCR 0x001C
+
+//=============================================================================
+// Pulse Width Modulator (PWM)
+
+#define CYGARC_HAL_LPC2XXX_REG_PWM_BASE 0xE0014000
+
+// Registers are offsets from base of this subsystem
+#define CYGARC_HAL_LPC2XXX_REG_PWMIR 0x0000
+#define CYGARC_HAL_LPC2XXX_REG_PWMIR_MR0_INT (1<<0)
+#define CYGARC_HAL_LPC2XXX_REG_PWMIR_MR1_INT (1<<1)
+#define CYGARC_HAL_LPC2XXX_REG_PWMIR_MR2_INT (1<<2)
+#define CYGARC_HAL_LPC2XXX_REG_PWMIR_MR3_INT (1<<3)
+#define CYGARC_HAL_LPC2XXX_REG_PWMIR_MR4_INT (1<<8)
+#define CYGARC_HAL_LPC2XXX_REG_PWMIR_MR5_INT (1<<9)
+#define CYGARC_HAL_LPC2XXX_REG_PWMIR_MR6_INT (1<<10)
+#define CYGARC_HAL_LPC2XXX_REG_PWMTCR 0x0004
+#define CYGARC_HAL_LPC2XXX_REG_PWMTCR_CTR_ENA (1<<0)
+#define CYGARC_HAL_LPC2XXX_REG_PWMTCR_CTR_RESET (1<<1)
+#define CYGARC_HAL_LPC2XXX_REG_PWMTCR_PWM_ENA (1<<3)
+#define CYGARC_HAL_LPC2XXX_REG_PWMTC 0x0008
+#define CYGARC_HAL_LPC2XXX_REG_PWMPR 0x000C
+#define CYGARC_HAL_LPC2XXX_REG_PWMPC 0x0010
+#define CYGARC_HAL_LPC2XXX_REG_PWMMCR 0x0014
+#define CYGARC_HAL_LPC2XXX_REG_PWMMCR_MR0_INT (1<<0)
+#define CYGARC_HAL_LPC2XXX_REG_PWMMCR_MR0_RESET (1<<1)
+#define CYGARC_HAL_LPC2XXX_REG_PWMMCR_MR0_STOP (1<<2)
+#define CYGARC_HAL_LPC2XXX_REG_PWMMCR_MR1_INT (1<<3)
+#define CYGARC_HAL_LPC2XXX_REG_PWMMCR_MR1_RESET (1<<4)
+#define CYGARC_HAL_LPC2XXX_REG_PWMMCR_MR1_STOP (1<<5)
+#define CYGARC_HAL_LPC2XXX_REG_PWMMCR_MR2_INT (1<<6)
+#define CYGARC_HAL_LPC2XXX_REG_PWMMCR_MR2_RESET (1<<7)
+#define CYGARC_HAL_LPC2XXX_REG_PWMMCR_MR2_STOP (1<<8)
+#define CYGARC_HAL_LPC2XXX_REG_PWMMCR_MR3_INT (1<<9)
+#define CYGARC_HAL_LPC2XXX_REG_PWMMCR_MR3_RESET (1<<10)
+#define CYGARC_HAL_LPC2XXX_REG_PWMMCR_MR3_STOP (1<<11)
+#define CYGARC_HAL_LPC2XXX_REG_PWMMCR_MR4_INT (1<<12)
+#define CYGARC_HAL_LPC2XXX_REG_PWMMCR_MR4_RESET (1<<13)
+#define CYGARC_HAL_LPC2XXX_REG_PWMMCR_MR4_STOP (1<<14)
+#define CYGARC_HAL_LPC2XXX_REG_PWMMCR_MR5_INT (1<<15)
+#define CYGARC_HAL_LPC2XXX_REG_PWMMCR_MR5_RESET (1<<16)
+#define CYGARC_HAL_LPC2XXX_REG_PWMMCR_MR5_STOP (1<<17)
+#define CYGARC_HAL_LPC2XXX_REG_PWMMCR_MR6_INT (1<<18)
+#define CYGARC_HAL_LPC2XXX_REG_PWMMCR_MR6_RESET (1<<19)
+#define CYGARC_HAL_LPC2XXX_REG_PWMMCR_MR6_STOP (1<<20)
+#define CYGARC_HAL_LPC2XXX_REG_PWMMR0 0x0018
+#define CYGARC_HAL_LPC2XXX_REG_PWMMR1 0x001C
+#define CYGARC_HAL_LPC2XXX_REG_PWMMR2 0x0020
+#define CYGARC_HAL_LPC2XXX_REG_PWMMR3 0x0024
+#define CYGARC_HAL_LPC2XXX_REG_PWMMR4 0x0040
+#define CYGARC_HAL_LPC2XXX_REG_PWMMR5 0x0044
+#define CYGARC_HAL_LPC2XXX_REG_PWMMR6 0x0048
+#define CYGARC_HAL_LPC2XXX_REG_PWMMPCR 0x004C
+#define CYGARC_HAL_LPC2XXX_REG_PWMMPCR_SEL1 (1<<1)
+#define CYGARC_HAL_LPC2XXX_REG_PWMMPCR_SEL2 (1<<2)
+#define CYGARC_HAL_LPC2XXX_REG_PWMMPCR_SEL3 (1<<3)
+#define CYGARC_HAL_LPC2XXX_REG_PWMMPCR_SEL4 (1<<4)
+#define CYGARC_HAL_LPC2XXX_REG_PWMMPCR_SEL5 (1<<5)
+#define CYGARC_HAL_LPC2XXX_REG_PWMMPCR_SEL6 (1<<6)
+#define CYGARC_HAL_LPC2XXX_REG_PWMMPCR_ENA1 (1<<9)
+#define CYGARC_HAL_LPC2XXX_REG_PWMMPCR_ENA2 (1<<10)
+#define CYGARC_HAL_LPC2XXX_REG_PWMMPCR_ENA3 (1<<11)
+#define CYGARC_HAL_LPC2XXX_REG_PWMMPCR_ENA4 (1<<12)
+#define CYGARC_HAL_LPC2XXX_REG_PWMMPCR_ENA5 (1<<13)
+#define CYGARC_HAL_LPC2XXX_REG_PWMMPCR_ENA6 (1<<14)
+#define CYGARC_HAL_LPC2XXX_REG_PWMLER 0x0050
+#define CYGARC_HAL_LPC2XXX_REG_PWMLER_M0_ENA (1<<0)
+#define CYGARC_HAL_LPC2XXX_REG_PWMLER_M1_ENA (1<<1)
+#define CYGARC_HAL_LPC2XXX_REG_PWMLER_M2_ENA (1<<2)
+#define CYGARC_HAL_LPC2XXX_REG_PWMLER_M3_ENA (1<<3)
+#define CYGARC_HAL_LPC2XXX_REG_PWMLER_M4_ENA (1<<4)
+#define CYGARC_HAL_LPC2XXX_REG_PWMLER_M5_ENA (1<<5)
+#define CYGARC_HAL_LPC2XXX_REG_PWMLER_M6_ENA (1<<6)
+
+//=============================================================================
+// I2C (I2)
+
+#define CYGARC_HAL_LPC2XXX_REG_I2_BASE 0xE001C000
+
+// Registers are offsets from base of this subsystem
+#define CYGARC_HAL_LPC2XXX_REG_I2CONSET 0x0000
+#define CYGARC_HAL_LPC2XXX_REG_I2CONSET_AA (1<<2)
+#define CYGARC_HAL_LPC2XXX_REG_I2CONSET_SI (1<<3)
+#define CYGARC_HAL_LPC2XXX_REG_I2CONSET_STO (1<<4)
+#define CYGARC_HAL_LPC2XXX_REG_I2CONSET_STA (1<<5)
+#define CYGARC_HAL_LPC2XXX_REG_I2CONSET_I2EN (1<<6)
+#define CYGARC_HAL_LPC2XXX_REG_I2STAT 0x0004
+#define CYGARC_HAL_LPC2XXX_REG_I2STAT_SHIFT 3
+#define CYGARC_HAL_LPC2XXX_REG_I2DAT 0x0008
+#define CYGARC_HAL_LPC2XXX_REG_I2ADR 0x000C
+#define CYGARC_HAL_LPC2XXX_REG_I2ADR_GC (1<<0)
+#define CYGARC_HAL_LPC2XXX_REG_I2SCLH 0x0010
+#define CYGARC_HAL_LPC2XXX_REG_I2SCLL 0x0014
+#define CYGARC_HAL_LPC2XXX_REG_I2CONCLR 0x0018
+#define CYGARC_HAL_LPC2XXX_REG_I2CONCLR_AAC (1<<2)
+#define CYGARC_HAL_LPC2XXX_REG_I2CONCLR_SIC (1<<3)
+#define CYGARC_HAL_LPC2XXX_REG_I2CONCLR_STAC (1<<5)
+#define CYGARC_HAL_LPC2XXX_REG_I2CONCLR_I2ENC (1<<6)
+
+//=============================================================================
+// SPI (S)
+
+#define CYGARC_HAL_LPC2XXX_REG_SPI0_BASE 0xE0020000
+#define CYGARC_HAL_LPC2XXX_REG_SPI1_BASE 0xE0030000
+
+// Registers are offsets from base of this subsystem
+#define CYGARC_HAL_LPC2XXX_REG_SPI_SPCR 0x0000
+#define CYGARC_HAL_LPC2XXX_REG_SPI_SPCR_CPHA (1<<3)
+#define CYGARC_HAL_LPC2XXX_REG_SPI_SPCR_CPOL (1<<4)
+#define CYGARC_HAL_LPC2XXX_REG_SPI_SPCR_MSTR (1<<5)
+#define CYGARC_HAL_LPC2XXX_REG_SPI_SPCR_LSBF (1<<6)
+#define CYGARC_HAL_LPC2XXX_REG_SPI_SPCR_SPIE (1<<7)
+#define CYGARC_HAL_LPC2XXX_REG_SPI_SPSR 0x0004
+#define CYGARC_HAL_LPC2XXX_REG_SPI_SPSR_ABRT (1<<3)
+#define CYGARC_HAL_LPC2XXX_REG_SPI_SPSR_MODF (1<<4)
+#define CYGARC_HAL_LPC2XXX_REG_SPI_SPSR_ROVR (1<<5)
+#define CYGARC_HAL_LPC2XXX_REG_SPI_SPSR_WCOL (1<<6)
+#define CYGARC_HAL_LPC2XXX_REG_SPI_SPSR_SPIF (1<<7)
+#define CYGARC_HAL_LPC2XXX_REG_SPI_SPDR 0x0008
+#define CYGARC_HAL_LPC2XXX_REG_SPI_SPCCR 0x000C
+#define CYGARC_HAL_LPC2XXX_REG_SPI_SPINT 0x001C
+
+
+//=============================================================================
+// RTC
+
+#define CYGARC_HAL_LPC2XXX_REG_RTC_BASE 0xE0024000
+
+// Registers are offsets from base of this subsystem
+
+#define CYGARC_HAL_LPC2XXX_REG_RTC_ILR 0x0000
+#define CYGARC_HAL_LPC2XXX_REG_RTC_ILR_CIF (1<<0)
+#define CYGARC_HAL_LPC2XXX_REG_RTC_ILR_ALF (1<<1)
+#define CYGARC_HAL_LPC2XXX_REG_RTC_CTC 0x0004
+#define CYGARC_HAL_LPC2XXX_REG_RTC_CCR 0x0008
+#define CYGARC_HAL_LPC2XXX_REG_RTC_CCR_CLKEN (1<<0)
+#define CYGARC_HAL_LPC2XXX_REG_RTC_CCR_CTCRST (1<<1)
+#define CYGARC_HAL_LPC2XXX_REG_RTC_CIIR 0x000C
+#define CYGARC_HAL_LPC2XXX_REG_RTC_AMR 0x0010
+#define CYGARC_HAL_LPC2XXX_REG_RTC_CTIME0 0x0014
+#define CYGARC_HAL_LPC2XXX_REG_RTC_CTIME1 0x0018
+#define CYGARC_HAL_LPC2XXX_REG_RTC_CTIME2 0x001C
+#define CYGARC_HAL_LPC2XXX_REG_RTC_SEC 0x0020
+#define CYGARC_HAL_LPC2XXX_REG_RTC_MIN 0x0024
+#define CYGARC_HAL_LPC2XXX_REG_RTC_HOUR 0x0028
+#define CYGARC_HAL_LPC2XXX_REG_RTC_DOM 0x002C
+#define CYGARC_HAL_LPC2XXX_REG_RTC_DOW 0x0030
+#define CYGARC_HAL_LPC2XXX_REG_RTC_DOY 0x0034
+#define CYGARC_HAL_LPC2XXX_REG_RTC_MONTH 0x0038
+#define CYGARC_HAL_LPC2XXX_REG_RTC_YEAR 0x003C
+#define CYGARC_HAL_LPC2XXX_REG_RTC_ALSEC 0x0060
+#define CYGARC_HAL_LPC2XXX_REG_RTC_ALMIN 0x0064
+#define CYGARC_HAL_LPC2XXX_REG_RTC_ALHOUR 0x0068
+#define CYGARC_HAL_LPC2XXX_REG_RTC_ALDOM 0x006C
+#define CYGARC_HAL_LPC2XXX_REG_RTC_ALDOW 0x0070
+#define CYGARC_HAL_LPC2XXX_REG_RTC_ALDOY 0x0074
+#define CYGARC_HAL_LPC2XXX_REG_RTC_ALMON 0x0078
+#define CYGARC_HAL_LPC2XXX_REG_RTC_ALYEAR 0x007C
+#define CYGARC_HAL_LPC2XXX_REG_RTC_PREINT 0x0080
+#define CYGARC_HAL_LPC2XXX_REG_RTC_PREFRAC 0x0084
+
+//=============================================================================
+// GPIO (IO)
+
+#define CYGARC_HAL_LPC2XXX_REG_IO_BASE 0xE0028000
+
+#if defined(CYGHWR_HAL_ARM_LPC2XXX_FAMILY_LPC210X)
+
+// Registers are offsets from base of this subsystem
+#define CYGARC_HAL_LPC2XXX_REG_IOPIN 0x000
+#define CYGARC_HAL_LPC2XXX_REG_IOSET 0x004
+#define CYGARC_HAL_LPC2XXX_REG_IODIR 0x008
+#define CYGARC_HAL_LPC2XXX_REG_IOCLR 0x00C
+
+#else
+
+// Registers are offsets from base of this subsystem
+#define CYGARC_HAL_LPC2XXX_REG_IO0PIN 0x000
+#define CYGARC_HAL_LPC2XXX_REG_IO0SET 0x004
+#define CYGARC_HAL_LPC2XXX_REG_IO0DIR 0x008
+#define CYGARC_HAL_LPC2XXX_REG_IO0CLR 0x00C
+
+#define CYGARC_HAL_LPC2XXX_REG_IO1PIN 0x010
+#define CYGARC_HAL_LPC2XXX_REG_IO1SET 0x014
+#define CYGARC_HAL_LPC2XXX_REG_IO1DIR 0x018
+#define CYGARC_HAL_LPC2XXX_REG_IO1CLR 0x01C
+
+#define CYGARC_HAL_LPC2XXX_REG_IO2PIN 0x020
+#define CYGARC_HAL_LPC2XXX_REG_IO2SET 0x024
+#define CYGARC_HAL_LPC2XXX_REG_IO2DIR 0x028
+#define CYGARC_HAL_LPC2XXX_REG_IO2CLR 0x02C
+
+#define CYGARC_HAL_LPC2XXX_REG_IO3PIN 0x030
+#define CYGARC_HAL_LPC2XXX_REG_IO3SET 0x034
+#define CYGARC_HAL_LPC2XXX_REG_IO3DIR 0x038
+#define CYGARC_HAL_LPC2XXX_REG_IO3CLR 0x03C
+
+#endif
+
+//=============================================================================
+// Pin Connect Block (PIN)
+
+#define CYGARC_HAL_LPC2XXX_REG_PIN_BASE 0xE002C000
+
+// Registers are offsets from base of this subsystem
+#define CYGARC_HAL_LPC2XXX_REG_PINSEL0 0x000
+#define CYGARC_HAL_LPC2XXX_REG_PINSEL1 0x004
+#define CYGARC_HAL_LPC2XXX_REG_PINSEL2 0x014
+
+//=============================================================================
+// ADC (AD)
+
+#define CYGARC_HAL_LPC2XXX_REG_AD_BASE 0xE0034000
+
+// Registers are offsets from base of this subsystem
+#define CYGARC_HAL_LPC2XXX_REG_ADCR 0x0000
+#define CYGARC_HAL_LPC2XXX_REG_ADCR_BURST (1<<16)
+#define CYGARC_HAL_LPC2XXX_REG_ADCR_PDN (1<<21)
+#define CYGARC_HAL_LPC2XXX_REG_ADCR_EDGE (1<<27)
+#define CYGARC_HAL_LPC2XXX_REG_ADDR 0x0004
+#define CYGARC_HAL_LPC2XXX_REG_ADDR_OVERRUN (1<<30)
+#define CYGARC_HAL_LPC2XXX_REG_ADDR_DONE (1<<31)
+
+//=============================================================================
+// System Control Block
+
+#define CYGARC_HAL_LPC2XXX_REG_SCB_BASE 0xE01FC000
+
+// Registers are offsets from base of this subsystem
+
+// Memory accelerator module
+#define CYGARC_HAL_LPC2XXX_REG_MAMCR 0x0000
+#define CYGARC_HAL_LPC2XXX_REG_MAMCR_DISABLED 0x00
+#define CYGARC_HAL_LPC2XXX_REG_MAMCR_PARTIAL 0x01
+#define CYGARC_HAL_LPC2XXX_REG_MAMCR_FULL 0x02
+#define CYGARC_HAL_LPC2XXX_REG_MAMTIM 0x0004
+
+// Memory mapping control
+#define CYGARC_HAL_LPC2XXX_REG_MEMMAP 0x0040
+
+// PLL
+#define CYGARC_HAL_LPC2XXX_REG_PLLCON 0x0080
+#define CYGARC_HAL_LPC2XXX_REG_PLLCON_PLLE (1<<0)
+#define CYGARC_HAL_LPC2XXX_REG_PLLCON_PLLC (1<<1)
+#define CYGARC_HAL_LPC2XXX_REG_PLLCFG 0x0084
+#define CYGARC_HAL_LPC2XXX_REG_PLLSTAT 0x0088
+#define CYGARC_HAL_LPC2XXX_REG_PLLSTAT_PLLE 0x100 // (1<<8)
+#define CYGARC_HAL_LPC2XXX_REG_PLLSTAT_PLLC 0x200 // (1<<9)
+#define CYGARC_HAL_LPC2XXX_REG_PLLSTAT_PLOCK 0x400 // (1<<10)
+#define CYGARC_HAL_LPC2XXX_REG_PLLFEED 0x008C
+
+// Power Control
+#define CYGARC_HAL_LPC2XXX_REG_PCON 0x00C0
+#define CYGARC_HAL_LPC2XXX_REG_PCON_IDL (1<<0)
+#define CYGARC_HAL_LPC2XXX_REG_PCON_PD (1<<1)
+#define CYGARC_HAL_LPC2XXX_REG_PCONP 0x00C4
+#define CYGARC_HAL_LPC2XXX_REG_PCONP_TIM0 (1<<1)
+#define CYGARC_HAL_LPC2XXX_REG_PCONP_TIM1 (1<<2)
+#define CYGARC_HAL_LPC2XXX_REG_PCONP_URT0 (1<<3)
+#define CYGARC_HAL_LPC2XXX_REG_PCONP_URT1 (1<<4)
+#define CYGARC_HAL_LPC2XXX_REG_PCONP_PWM0 (1<<5)
+#define CYGARC_HAL_LPC2XXX_REG_PCONP_I2C (1<<7)
+#define CYGARC_HAL_LPC2XXX_REG_PCONP_SPI0 (1<<8)
+#define CYGARC_HAL_LPC2XXX_REG_PCONP_RTC (1<<9)
+#define CYGARC_HAL_LPC2XXX_REG_PCONP_SPI1 (1<<10)
+#define CYGARC_HAL_LPC2XXX_REG_PCONP_AD (1<<12)
+
+// VPB Divider
+#define CYGARC_HAL_LPC2XXX_REG_VPBDIV 0x0100
+
+// External interrupt inputs
+#define CYGARC_HAL_LPC2XXX_REG_EXTINT 0x0140
+#define CYGARC_HAL_LPC2XXX_REG_EXTWAKE 0x0144
+#define CYGARC_HAL_LPC2XXX_REG_EXTMODE 0x0148
+#define CYGARC_HAL_LPC2XXX_REG_EXTPOLAR 0x014C
+
+#define CYGARC_HAL_LPC2XXX_REG_EXTxxx_INT0 (1<<0)
+#define CYGARC_HAL_LPC2XXX_REG_EXTxxx_INT1 (1<<1)
+#define CYGARC_HAL_LPC2XXX_REG_EXTxxx_INT2 (1<<2)
+#define CYGARC_HAL_LPC2XXX_REG_EXTxxx_INT3 (1<<3)
+
+
+//=============================================================================
+// External Memory Controller
+
+#if defined(CYGHWR_HAL_ARM_LPC2XXX_FAMILY_LPC22XX)
+
+#define CYGARC_HAL_LPC2XXX_REG_BCFG0 0xFFE00000
+#define CYGARC_HAL_LPC2XXX_REG_BCFG1 0xFFE00004
+#define CYGARC_HAL_LPC2XXX_REG_BCFG2 0xFFE00008
+#define CYGARC_HAL_LPC2XXX_REG_BCFG3 0xFFE0000C
+
+#define CYGARC_HAL_LPC2XXX_REG_BCFGx_RBLE (1<<10)
+#define CYGARC_HAL_LPC2XXX_REG_BCFGx_BUSERR (1<<24)
+#define CYGARC_HAL_LPC2XXX_REG_BCFGx_WPERR (1<<25)
+#define CYGARC_HAL_LPC2XXX_REG_BCFGx_WP (1<<26)
+#define CYGARC_HAL_LPC2XXX_REG_BCFGx_BM (1<<27)
+#define CYGARC_HAL_LPC2XXX_REG_BCFGx_MW_8BIT (0x00000000)
+#define CYGARC_HAL_LPC2XXX_REG_BCFGx_MW_16BIT (0x10000000)
+#define CYGARC_HAL_LPC2XXX_REG_BCFGx_MW_32BIT (0x20000000)
+
+#endif
+
+//=============================================================================
+// Vectored Interrupt Controller (VIC)
+
+#define CYGARC_HAL_LPC2XXX_REG_VIC_BASE 0xFFFFF000
+
+// Registers are offsets from base of this subsystem
+
+#define CYGARC_HAL_LPC2XXX_REG_VICIRQSTAT 0x0000
+#define CYGARC_HAL_LPC2XXX_REG_VICFIQSTAT 0x0004
+#define CYGARC_HAL_LPC2XXX_REG_VICRAWINTR 0x0008
+#define CYGARC_HAL_LPC2XXX_REG_VICINTSELECT 0x000C
+#define CYGARC_HAL_LPC2XXX_REG_VICINTENABLE 0x0010
+#define CYGARC_HAL_LPC2XXX_REG_VICINTENCLEAR 0x0014
+#define CYGARC_HAL_LPC2XXX_REG_VICSOFTINT 0x0018
+#define CYGARC_HAL_LPC2XXX_REG_VICSOFTINTCLEAR 0x001C
+#define CYGARC_HAL_LPC2XXX_REG_VICPROTECTION 0x0020
+#define CYGARC_HAL_LPC2XXX_REG_VICVECTADDR 0x0030
+#define CYGARC_HAL_LPC2XXX_REG_VICDEFVECTADDR 0x0034
+
+#define CYGARC_HAL_LPC2XXX_REG_VICVECTADDR0 0x0100
+#define CYGARC_HAL_LPC2XXX_REG_VICVECTADDR1 0x0104
+#define CYGARC_HAL_LPC2XXX_REG_VICVECTADDR2 0x0108
+#define CYGARC_HAL_LPC2XXX_REG_VICVECTADDR3 0x010C
+#define CYGARC_HAL_LPC2XXX_REG_VICVECTADDR4 0x0110
+#define CYGARC_HAL_LPC2XXX_REG_VICVECTADDR5 0x0114
+#define CYGARC_HAL_LPC2XXX_REG_VICVECTADDR6 0x0118
+#define CYGARC_HAL_LPC2XXX_REG_VICVECTADDR7 0x011C
+#define CYGARC_HAL_LPC2XXX_REG_VICVECTADDR8 0x0120
+#define CYGARC_HAL_LPC2XXX_REG_VICVECTADDR9 0x0124
+#define CYGARC_HAL_LPC2XXX_REG_VICVECTADDR10 0x0128
+#define CYGARC_HAL_LPC2XXX_REG_VICVECTADDR11 0x012C
+#define CYGARC_HAL_LPC2XXX_REG_VICVECTADDR12 0x0130
+#define CYGARC_HAL_LPC2XXX_REG_VICVECTADDR13 0x0134
+#define CYGARC_HAL_LPC2XXX_REG_VICVECTADDR14 0x0138
+#define CYGARC_HAL_LPC2XXX_REG_VICVECTADDR15 0x013C
+
+#define CYGARC_HAL_LPC2XXX_REG_VICVECTCNTL0 0x0200
+#define CYGARC_HAL_LPC2XXX_REG_VICVECTCNTL1 0x0204
+#define CYGARC_HAL_LPC2XXX_REG_VICVECTCNTL2 0x0208
+#define CYGARC_HAL_LPC2XXX_REG_VICVECTCNTL3 0x020C
+#define CYGARC_HAL_LPC2XXX_REG_VICVECTCNTL4 0x0210
+#define CYGARC_HAL_LPC2XXX_REG_VICVECTCNTL5 0x0214
+#define CYGARC_HAL_LPC2XXX_REG_VICVECTCNTL6 0x0218
+#define CYGARC_HAL_LPC2XXX_REG_VICVECTCNTL7 0x021C
+#define CYGARC_HAL_LPC2XXX_REG_VICVECTCNTL8 0x0220
+#define CYGARC_HAL_LPC2XXX_REG_VICVECTCNTL9 0x0224
+#define CYGARC_HAL_LPC2XXX_REG_VICVECTCNTL10 0x0228
+#define CYGARC_HAL_LPC2XXX_REG_VICVECTCNTL11 0x022C
+#define CYGARC_HAL_LPC2XXX_REG_VICVECTCNTL12 0x0230
+#define CYGARC_HAL_LPC2XXX_REG_VICVECTCNTL13 0x0234
+#define CYGARC_HAL_LPC2XXX_REG_VICVECTCNTL14 0x0238
+#define CYGARC_HAL_LPC2XXX_REG_VICVECTCNTL15 0x023C
+
+
+//-----------------------------------------------------------------------------
+// end of var_io.h
+#endif // CYGONCE_HAL_VAR_IO_H
diff --git a/ecos/packages/hal/arm/lpc2xxx/var/current/src/hal_diag.c b/ecos/packages/hal/arm/lpc2xxx/var/current/src/hal_diag.c
new file mode 100644
index 0000000..af42d61
--- /dev/null
+++ b/ecos/packages/hal/arm/lpc2xxx/var/current/src/hal_diag.c
@@ -0,0 +1,333 @@
+/*=============================================================================
+//
+// hal_diag.c
+//
+// HAL diagnostic output code
+//
+//=============================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002, 2004 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jani
+// Contributors:jskov, gthomas
+// Date: 2001-07-12
+// Purpose: HAL diagnostic output
+// Description: Implementations of HAL diagnostic output support.
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================*/
+
+#include <pkgconf/hal.h>
+#include CYGBLD_HAL_PLATFORM_H
+
+#include <cyg/infra/cyg_type.h> // base types
+
+#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
+#include <cyg/hal/hal_diag.h>
+
+#include <cyg/hal/var_io.h> // USART registers
+
+//-----------------------------------------------------------------------------
+typedef struct {
+ cyg_uint8* base;
+ cyg_int32 msec_timeout;
+ int isr_vector;
+ int baud_rate;
+} channel_data_t;
+
+//-----------------------------------------------------------------------------
+static void
+cyg_hal_plf_serial_init_channel(void* __ch_data)
+{
+ channel_data_t* chan = (channel_data_t*)__ch_data;
+ cyg_uint8* base = chan->base;
+ cyg_uint16 divider = CYG_HAL_ARM_LPC2XXX_BAUD_GENERATOR(chan->baud_rate);
+ // Set baudrate
+ HAL_WRITE_UINT32(base+CYGARC_HAL_LPC2XXX_REG_UxLCR,
+ CYGARC_HAL_LPC2XXX_REG_UxLCR_DLAB);
+ HAL_WRITE_UINT32(base+CYGARC_HAL_LPC2XXX_REG_UxDLM, divider >> 8);
+ HAL_WRITE_UINT32(base+CYGARC_HAL_LPC2XXX_REG_UxDLL, divider & 0xFF);
+
+ // 8-1-no parity.
+ HAL_WRITE_UINT32(base+CYGARC_HAL_LPC2XXX_REG_UxLCR,
+ CYGARC_HAL_LPC2XXX_REG_UxLCR_WORD_LENGTH_8 |
+ CYGARC_HAL_LPC2XXX_REG_UxLCR_STOP_1);
+
+ // Reset and enable FIFO
+ HAL_WRITE_UINT32(base+CYGARC_HAL_LPC2XXX_REG_UxFCR,
+ CYGARC_HAL_LPC2XXX_REG_UxFCR_FIFO_ENA |
+ CYGARC_HAL_LPC2XXX_REG_UxFCR_RX_FIFO_RESET |
+ CYGARC_HAL_LPC2XXX_REG_UxFCR_TX_FIFO_RESET);
+}
+
+void
+cyg_hal_plf_serial_putc(void *__ch_data, char c)
+{
+ cyg_uint8* base = ((channel_data_t*)__ch_data)->base;
+ cyg_uint8 stat;
+ CYGARC_HAL_SAVE_GP();
+
+ do {
+ HAL_READ_UINT32(base+CYGARC_HAL_LPC2XXX_REG_UxLSR, stat);
+ } while ((stat & CYGARC_HAL_LPC2XXX_REG_UxLSR_THRE) == 0);
+
+ HAL_WRITE_UINT32(base+CYGARC_HAL_LPC2XXX_REG_UxTHR, c);
+
+ CYGARC_HAL_RESTORE_GP();
+}
+
+static cyg_bool
+cyg_hal_plf_serial_getc_nonblock(void* __ch_data, cyg_uint8* ch)
+{
+ channel_data_t* chan = (channel_data_t*)__ch_data;
+ cyg_uint8* base = chan->base;
+ cyg_uint8 stat;
+
+ HAL_READ_UINT32(base+CYGARC_HAL_LPC2XXX_REG_UxLSR, stat);
+ if ((stat & CYGARC_HAL_LPC2XXX_REG_UxLSR_RDR) == 0)
+ return false;
+
+ HAL_READ_UINT32(base+CYGARC_HAL_LPC2XXX_REG_UxRBR, *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;
+}
+
+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* base = ((channel_data_t*)__ch_data)->base;
+ int ret = 0;
+ va_list ap;
+
+ CYGARC_HAL_SAVE_GP();
+ va_start(ap, __func);
+
+ switch (__func) {
+ case __COMMCTL_GETBAUD:
+ ret = chan->baud_rate;
+ break;
+ case __COMMCTL_SETBAUD:
+ chan->baud_rate = va_arg(ap, cyg_int32);
+ // Should we verify this value here?
+ cyg_hal_plf_serial_init_channel(chan);
+ ret = 0;
+ break;
+ case __COMMCTL_IRQ_ENABLE:
+ irq_state = 1;
+ HAL_INTERRUPT_ACKNOWLEDGE(chan->isr_vector);
+ HAL_INTERRUPT_UNMASK(chan->isr_vector);
+ HAL_WRITE_UINT32(base+CYGARC_HAL_LPC2XXX_REG_UxIER,
+ CYGARC_HAL_LPC2XXX_REG_UxIER_RXDATA_INT);
+ break;
+ case __COMMCTL_IRQ_DISABLE:
+ ret = irq_state;
+ irq_state = 0;
+ HAL_INTERRUPT_MASK(chan->isr_vector);
+ HAL_WRITE_UINT32(base+CYGARC_HAL_LPC2XXX_REG_UxIER, 0);
+ break;
+ case __COMMCTL_DBG_ISR_VECTOR:
+ ret = chan->isr_vector;
+ break;
+ case __COMMCTL_SET_TIMEOUT:
+ ret = chan->msec_timeout;
+ chan->msec_timeout = va_arg(ap, cyg_uint32);
+ default:
+ break;
+ }
+
+ va_end(ap);
+ 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;
+ channel_data_t* chan = (channel_data_t*)__ch_data;
+ cyg_uint8 c;
+ cyg_uint8 iir;
+
+ CYGARC_HAL_SAVE_GP();
+
+ *__ctrlc = 0;
+
+ HAL_READ_UINT32(chan->base + CYGARC_HAL_LPC2XXX_REG_UxIIR, iir);
+
+ if((iir & (CYGARC_HAL_LPC2XXX_REG_UxIIR_IIR0 | CYGARC_HAL_LPC2XXX_REG_UxIIR_IIR1 |
+ CYGARC_HAL_LPC2XXX_REG_UxIIR_IIR2)) == CYGARC_HAL_LPC2XXX_REG_UxIIR_IIR2)
+ {
+ // Rx data available or character timeout
+ // Read data in order to clear interrupt
+ HAL_READ_UINT32(chan->base+CYGARC_HAL_LPC2XXX_REG_UxRBR, c);
+ if( cyg_hal_is_break( (char *) &c , 1 ) ) *__ctrlc = 1;
+
+ res = CYG_ISR_HANDLED;
+ }
+
+ HAL_INTERRUPT_ACKNOWLEDGE(chan->isr_vector);
+
+ CYGARC_HAL_RESTORE_GP();
+ return res;
+}
+
+static channel_data_t lpc2xxx_ser_channels[2] = {
+ { (cyg_uint8*)CYGARC_HAL_LPC2XXX_REG_UART0_BASE, 1000,
+ CYGNUM_HAL_INTERRUPT_UART0,
+ CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_BAUD},
+ { (cyg_uint8*)CYGARC_HAL_LPC2XXX_REG_UART1_BASE, 1000,
+ CYGNUM_HAL_INTERRUPT_UART1,
+ CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_BAUD}
+};
+
+void
+cyg_hal_plf_serial_init(void)
+{
+ hal_virtual_comm_table_t* comm;
+ int cur;
+
+ cur = CYGACC_CALL_IF_SET_CONSOLE_COMM(CYGNUM_CALL_IF_SET_COMM_ID_QUERY_CURRENT);
+
+ // Init channels
+ cyg_hal_plf_serial_init_channel(&lpc2xxx_ser_channels[0]);
+#if CYGNUM_HAL_VIRTUAL_VECTOR_COMM_CHANNELS > 1
+ cyg_hal_plf_serial_init_channel(&lpc2xxx_ser_channels[1]);
+#endif
+
+ // 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, &lpc2xxx_ser_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);
+
+#if CYGNUM_HAL_VIRTUAL_VECTOR_COMM_CHANNELS > 1
+ // Set channel 1
+ CYGACC_CALL_IF_SET_CONSOLE_COMM(1);
+ comm = CYGACC_CALL_IF_CONSOLE_PROCS();
+ CYGACC_COMM_IF_CH_DATA_SET(*comm, &lpc2xxx_ser_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);
+#endif
+
+ // Restore original console
+ CYGACC_CALL_IF_SET_CONSOLE_COMM(cur);
+}
+
+void
+hal_diag_led(int mask)
+{
+ hal_lpc2xxx_set_leds(mask);
+}
+
+//-----------------------------------------------------------------------------
+// End of hal_diag.c
diff --git a/ecos/packages/hal/arm/lpc2xxx/var/current/src/lpc2xxx_iap.c b/ecos/packages/hal/arm/lpc2xxx/var/current/src/lpc2xxx_iap.c
new file mode 100644
index 0000000..21cc3a5
--- /dev/null
+++ b/ecos/packages/hal/arm/lpc2xxx/var/current/src/lpc2xxx_iap.c
@@ -0,0 +1,172 @@
+//==========================================================================
+//
+// lpc2xxx_iap.c
+//
+// LPC2XXX IAP (In Application Programming) interface
+//
+//==========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002, 2006 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//==========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): Sergei Gavrikov
+// Contributors: Sergei Gavrikov
+// Date: 2007-09-20
+// Purpose:
+// Description:
+//
+//####DESCRIPTIONEND####
+//
+//==========================================================================
+
+#include <pkgconf/hal_arm_lpc2xxx.h>
+#include <cyg/hal/hal_intr.h>
+
+#include <cyg/hal/lpc2xxx_iap.h>
+
+// ----------------------------------------------------------------------------
+// In most cases NXP IAP (In Appplication Programming) interface uses itself to
+// manage on-chip flash memory. Two simple examples are provided the below as
+// commented out C code sniplets just to demo how to use the IAP call there.
+// ----------------------------------------------------------------------------
+#if 0
+void
+iap_call_demo1 (void *data) // Read part id
+{
+ flash_data_t *id = (flash_data_t *) data;
+
+ hal_lpc2xxx_iap_call (HAL_LPC2XXX_IAP_COMMAND_READ_PART_ID, 0, 0, 0, 0,
+ (cyg_uint32 *) id);
+ // ...
+}
+
+void
+iap_call_demo2 (void) // Format sectors 7, 8 of on-chip flash
+{
+ int rc;
+
+ rc = hal_lpc2xxx_iap_call (HAL_LPC2XXX_IAP_COMMAND_PREPARE_SECTORS,
+ 7, 8, 0, 0, 0);
+ if (rc != HAL_LPC2XXX_IAP_RETURN_CMD_SUCCESS) {
+ // ...
+ }
+ rc = hal_lpc2xxx_iap_call (HAL_LPC2XXX_IAP_COMMAND_ERASE_SECTORS, 7,
+ 8, CYGNUM_HAL_ARM_LPC2XXX_CLOCK_SPEED / 1000,
+ 0, 0);
+ if (rc != HAL_LPC2XXX_IAP_RETURN_CMD_SUCCESS) {
+ // ...
+ }
+}
+#endif
+// ----------------------------------------------------------------------------
+
+typedef void (*lpc_iap_entry_t) (cyg_uint32[], cyg_uint32[]);
+
+static lpc_iap_entry_t lpc_iap_entry =
+ (lpc_iap_entry_t) HAL_LPC2XXX_IAP_ENTRY_DEFAULT;
+
+
+static void (*precall) (void) = NULL;
+static void (*postcall) (void) = NULL;
+
+static int initialized = 0;
+
+static void
+hal_lpc2xxx_iap_init (void) {
+#ifdef CYGFUN_HAL_ARM_LPC2XXX_IAP_CALL_WRAP
+# ifdef CYGDAT_HAL_ARM_LPC2XXX_IAP_PRE_CALL
+ if (!precall) {
+ precall = CYGDAT_HAL_ARM_LPC2XXX_IAP_PRE_CALL;
+ }
+# endif
+# ifdef CYGDAT_HAL_ARM_LPC2XXX_IAP_POST_CALL
+ if (!postcall) {
+ postcall = CYGDAT_HAL_ARM_LPC2XXX_IAP_POST_CALL;
+ }
+# endif
+#endif
+ initialized = 1;
+}
+
+// ----------------------------------------------------------------------------
+// hal_lpc2xxx_iap_call --
+//
+// Arguments: 'cmd' - code of NXP IAP command, 'par0'...'par3' - parameters,
+// and the last argument 'ret' is a pointer on an array of cyg_uint32 values
+// (at the least room for two elemets in the array must be reserved) for the
+// returned data.
+//
+// Returns 0 (HAL_LPC2XXX_IAP_RETURN_CMD_SUCCESS) on success, otherwise error
+// code (see <cyg/hal/lpc2xxx_iap.h> for details).
+//
+cyg_uint32
+hal_lpc2xxx_iap_call (cyg_uint32 cmd, cyg_uint32 par0, cyg_uint32 par1,
+ cyg_uint32 par2, cyg_uint32 par3, cyg_uint32 * ret)
+{
+ cyg_uint32 command[5] = { cmd, par0, par1, par2, par3 };
+ cyg_uint32 results[2];
+
+#ifdef CYGNUM_HAL_ARM_LPC2XXX_IAP_CALL_SAFE
+ cyg_uint32 oldints;
+#endif
+
+ if (!initialized)
+ hal_lpc2xxx_iap_init ();
+
+ if (precall)
+ precall ();
+
+#ifdef CYGNUM_HAL_ARM_LPC2XXX_IAP_CALL_SAFE
+ HAL_DISABLE_INTERRUPTS (oldints);
+#endif
+
+ lpc_iap_entry (command, results);
+
+#ifdef CYGNUM_HAL_ARM_LPC2XXX_IAP_CALL_SAFE
+ HAL_RESTORE_INTERRUPTS (oldints);
+#endif
+
+ if (postcall)
+ postcall ();
+
+ if (ret != NULL) {
+ ret[0] = results[0]; // return code
+ ret[1] = results[1]; // fill in data
+ }
+
+ return results[0];
+}
+
+// indent: -i4 -br -nut -di16 -ce; vim: expandtab tabstop=4 shiftwidth=4:
+//--------------------------------------------------------------------------
+// EOF lpc2xxx_iap.c
diff --git a/ecos/packages/hal/arm/lpc2xxx/var/current/src/lpc2xxx_misc.c b/ecos/packages/hal/arm/lpc2xxx/var/current/src/lpc2xxx_misc.c
new file mode 100644
index 0000000..532e024
--- /dev/null
+++ b/ecos/packages/hal/arm/lpc2xxx/var/current/src/lpc2xxx_misc.c
@@ -0,0 +1,513 @@
+/*==========================================================================
+//
+// lpc2xxx_misc.c
+//
+// HAL misc variant support code for Philips LPC2xxx
+//
+//==========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//==========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jani
+// Contributors: gthomas, jskov, nickg, tkoeller
+// Date: 2001-07-12
+// Purpose: HAL board support
+// Description: Implementations of HAL board interfaces
+//
+//####DESCRIPTIONEND####
+//
+//========================================================================*/
+
+#include <pkgconf/hal.h>
+#include <pkgconf/hal_arm_lpc2xxx.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> // necessary?
+#include <cyg/hal/hal_cache.h>
+#include <cyg/hal/hal_if.h> // calling interface
+#include <cyg/hal/hal_misc.h> // helper functions
+#ifdef CYGDBG_HAL_DEBUG_GDB_BREAK_SUPPORT
+#include <cyg/hal/drv_api.h> // HAL ISR support
+#endif
+#include <cyg/hal/var_io.h> // platform registers
+
+#include <cyg/infra/diag.h> // For diagnostic printing
+
+
+// -------------------------------------------------------------------------
+// eCos clock support
+// Use TIMER0
+static cyg_uint32 _period;
+
+void hal_clock_initialize(cyg_uint32 period)
+{
+ CYG_ADDRESS timer = CYGARC_HAL_LPC2XXX_REG_TIMER0_BASE;
+
+ period = period / (CYGNUM_HAL_ARM_LPC2XXX_CLOCK_SPEED / CYGNUM_HAL_ARM_LPC2XXX_PCLK);
+
+ // Disable and reset counter
+ HAL_WRITE_UINT32(timer+CYGARC_HAL_LPC2XXX_REG_TxTCR, 2);
+
+ // set prescale register to 0
+ HAL_WRITE_UINT32(timer+CYGARC_HAL_LPC2XXX_REG_TxPR, 0);
+
+ // Set up match register
+ HAL_WRITE_UINT32(timer+CYGARC_HAL_LPC2XXX_REG_TxMR0, period);
+
+ // Reset and generate interrupt on match
+ HAL_WRITE_UINT32(timer+CYGARC_HAL_LPC2XXX_REG_TxMCR,
+ CYGARC_HAL_LPC2XXX_REG_TxMCR_MR0_INT |
+ CYGARC_HAL_LPC2XXX_REG_TxMCR_MR0_RESET);
+
+ // Enable counter
+ HAL_WRITE_UINT32(timer+CYGARC_HAL_LPC2XXX_REG_TxTCR, 1);
+}
+
+void hal_clock_reset(cyg_uint32 vector, cyg_uint32 period)
+{
+ CYG_ADDRESS timer = CYGARC_HAL_LPC2XXX_REG_TIMER0_BASE;
+
+ HAL_WRITE_UINT32(timer+CYGARC_HAL_LPC2XXX_REG_TxIR,
+ CYGARC_HAL_LPC2XXX_REG_TxIR_MR0); // Clear interrupt
+
+ if (period != _period) {
+ hal_clock_initialize(period);
+ }
+ _period = period;
+
+}
+
+void hal_clock_read(cyg_uint32 *pvalue)
+{
+ CYG_ADDRESS timer = CYGARC_HAL_LPC2XXX_REG_TIMER0_BASE;
+ cyg_uint32 val;
+
+ HAL_READ_UINT32(timer+CYGARC_HAL_LPC2XXX_REG_TxTC, val);
+ *pvalue = val;
+}
+
+// -------------------------------------------------------------------------
+//
+// Delay for some number of micro-seconds
+// use TIMER1
+//
+void hal_delay_us(cyg_int32 usecs)
+{
+ CYG_ADDRESS timer = CYGARC_HAL_LPC2XXX_REG_TIMER1_BASE;
+ cyg_uint32 stat;
+ cyg_uint64 ticks;
+
+ // Calculate how many timer ticks the required number of
+ // microseconds equate to. We do this calculation in 64 bit
+ // arithmetic to avoid overflow.
+ ticks = CYGNUM_HAL_ARM_LPC2XXX_PCLK;
+ ticks = (((cyg_uint64)usecs) * (ticks))/1000000LL;
+
+ // Disable and reset counter
+ HAL_WRITE_UINT32(timer+CYGARC_HAL_LPC2XXX_REG_TxTCR, 2);
+
+ // Stop on match
+ HAL_WRITE_UINT32(timer+CYGARC_HAL_LPC2XXX_REG_TxMR0, ticks);
+ HAL_WRITE_UINT32(timer+CYGARC_HAL_LPC2XXX_REG_TxMCR,
+ CYGARC_HAL_LPC2XXX_REG_TxMCR_MR0_STOP |
+ CYGARC_HAL_LPC2XXX_REG_TxMCR_MR0_RESET);
+
+ //set prescale register to 0
+ HAL_WRITE_UINT32(timer+CYGARC_HAL_LPC2XXX_REG_TxPR, 0);
+
+ // Enable counter
+ HAL_WRITE_UINT32(timer+CYGARC_HAL_LPC2XXX_REG_TxTCR, 1);
+
+ // Wait for the match
+ do {
+ HAL_READ_UINT32(timer+CYGARC_HAL_LPC2XXX_REG_TxTC, stat);
+ } while (stat < ticks);
+}
+
+// -------------------------------------------------------------------------
+// Hardware init
+
+// Return value of VPBDIV register. According to errata doc
+// we need to read twice consecutively to get correct value
+cyg_uint32 lpc_get_vpbdiv(void)
+{
+ cyg_uint32 vpbdiv_reg;
+
+ HAL_READ_UINT32(CYGARC_HAL_LPC2XXX_REG_SCB_BASE +
+ CYGARC_HAL_LPC2XXX_REG_VPBDIV, vpbdiv_reg);
+ HAL_READ_UINT32(CYGARC_HAL_LPC2XXX_REG_SCB_BASE +
+ CYGARC_HAL_LPC2XXX_REG_VPBDIV, vpbdiv_reg);
+
+ return (vpbdiv_reg);
+}
+
+// Set the VPBDIV register. The vpb bits are 1:0 and the xclk bits are 5:4. The
+// mapping of values passed to this routine to field values is:
+// 4 = divide by 4 (register bits 00)
+// 2 = divide by 2 (register bits 10)
+// 1 = divide by 1 (register bits 01)
+// This routine assumes that only these values can occur. As they are
+// generated in the CDL hopefully this should be the case. Fortunately
+// writing 11 merely causes the previous value to be retained.
+void lpc_set_vpbdiv(int vpbdiv, int xclkdiv)
+{
+ CYG_ASSERT(((vpbdiv & 0x3) != 3) && ((xclkdiv & 0x3) != 3),
+ "illegal VPBDIV register value");
+
+ // Update VPBDIV register
+#ifdef CYGHWR_HAL_ARM_LPC2XXX_FAMILY_LPC22XX
+ HAL_WRITE_UINT32(CYGARC_HAL_LPC2XXX_REG_SCB_BASE +
+ CYGARC_HAL_LPC2XXX_REG_VPBDIV,
+ ((xclkdiv & 0x3) << 4) | (vpbdiv & 0x3));
+#else
+ HAL_WRITE_UINT32(CYGARC_HAL_LPC2XXX_REG_SCB_BASE +
+ CYGARC_HAL_LPC2XXX_REG_VPBDIV, vpbdiv & 0x3);
+#endif
+}
+
+// Perform variant setup. This optionally calls into the platform
+// HAL if it has defined HAL_PLF_HARDWARE_INIT.
+void hal_hardware_init(void)
+{
+#ifdef CYGHWR_HAL_ARM_LPC2XXX_FAMILY_LPC22XX
+ lpc_set_vpbdiv(CYGNUM_HAL_ARM_LPC2XXX_VPBDIV,
+ CYGNUM_HAL_ARM_LPC2XXX_XCLKDIV);
+#else
+ lpc_set_vpbdiv(CYGNUM_HAL_ARM_LPC2XXX_VPBDIV, 1);
+#endif
+
+ //
+ // 0xFFFFFFFF indicates that this is a non vectored ISR
+ // This is the default setting for all interrupts
+ //
+ HAL_WRITE_UINT32(CYGARC_HAL_LPC2XXX_REG_VIC_BASE +
+ CYGARC_HAL_LPC2XXX_REG_VICDEFVECTADDR, 0xFFFFFFFF);
+
+#ifdef HAL_PLF_HARDWARE_INIT
+ // Perform any platform specific initializations
+ HAL_PLF_HARDWARE_INIT();
+#endif
+
+ // Set up eCos/ROM interfaces
+ hal_if_init();
+}
+
+// -------------------------------------------------------------------------
+// This routine is called to respond to a hardware interrupt (IRQ). It
+// should interrogate the hardware and return the IRQ vector number.
+int hal_IRQ_handler(void)
+{
+ cyg_uint32 irq_num;
+
+ HAL_READ_UINT32(CYGARC_HAL_LPC2XXX_REG_VIC_BASE +
+ CYGARC_HAL_LPC2XXX_REG_VICVECTADDR, irq_num);
+ //
+ // if this is a non vectored ISR then we need to find out which interrupt
+ // caused the IRQ
+ //
+ if (0xFFFFFFFF == irq_num)
+ {
+ cyg_uint32 irq_stat;
+
+ // Find out which interrupt caused the IRQ. This picks the lowest
+ // if there are more than 1.
+ HAL_READ_UINT32(CYGARC_HAL_LPC2XXX_REG_VIC_BASE +
+ CYGARC_HAL_LPC2XXX_REG_VICIRQSTAT, irq_stat);
+ irq_num = 0;
+ while (!(irq_stat & 0x01))
+ {
+ irq_stat >>= 1;
+ irq_num++;
+ }
+
+ // If not a valid interrrupt source, treat as spurious interrupt
+ if (irq_num < CYGNUM_HAL_ISR_MIN || irq_num > CYGNUM_HAL_ISR_MAX)
+ {
+ irq_num = CYGNUM_HAL_INTERRUPT_NONE;
+ }
+ } // if (0xFFFFFFFF == irq_num)
+
+ return (irq_num);
+}
+
+// -------------------------------------------------------------------------
+// Interrupt control
+//
+
+// Block the the interrupt associated with the vector
+void hal_interrupt_mask(int vector)
+{
+ CYG_ASSERT(vector <= CYGNUM_HAL_ISR_MAX &&
+ vector >= CYGNUM_HAL_ISR_MIN , "Invalid vector");
+
+ HAL_WRITE_UINT32(CYGARC_HAL_LPC2XXX_REG_VIC_BASE +
+ CYGARC_HAL_LPC2XXX_REG_VICINTENCLEAR, 1 << vector);
+}
+
+// Unblock the the interrupt associated with the vector
+void hal_interrupt_unmask(int vector)
+{
+ CYG_ASSERT(vector <= CYGNUM_HAL_ISR_MAX &&
+ vector >= CYGNUM_HAL_ISR_MIN , "Invalid vector");
+
+ HAL_WRITE_UINT32(CYGARC_HAL_LPC2XXX_REG_VIC_BASE +
+ CYGARC_HAL_LPC2XXX_REG_VICINTENABLE, 1 << vector);
+}
+
+// Acknowledge the the interrupt associated with the vector. This
+// clears the interrupt but may result in another interrupt being
+// delivered
+void hal_interrupt_acknowledge(int vector)
+{
+
+ // External interrupts have to be cleared from the EXTINT register
+ if (vector >= CYGNUM_HAL_INTERRUPT_EINT0 &&
+ vector <= CYGNUM_HAL_INTERRUPT_EINT3)
+ {
+ // Map int vector to corresponding bit (0..3)
+ vector = 1 << (vector - CYGNUM_HAL_INTERRUPT_EINT0);
+
+ // Clear the external interrupt
+ HAL_WRITE_UINT32(CYGARC_HAL_LPC2XXX_REG_SCB_BASE +
+ CYGARC_HAL_LPC2XXX_REG_EXTINT, vector);
+ }
+
+ // Acknowledge interrupt in the VIC
+ HAL_WRITE_UINT32(CYGARC_HAL_LPC2XXX_REG_VIC_BASE +
+ CYGARC_HAL_LPC2XXX_REG_VICVECTADDR, 0);
+}
+
+// This provides control over how an interrupt signal is detected.
+// Options are between level or edge sensitive (level) and high/low
+// level or rising/falling edge triggered (up).
+//
+// This should be simple, but unfortunately on some processor revisions,
+// it trips up on two errata issues (for the LPC2294 Rev.A these are
+// EXTINT.1 and VPBDIV.1) and so on these devices a somewhat convoluted
+// sequence in order to work properly. There is nothing in the errata
+// sequence that won't work on a processor without these issues.
+void hal_interrupt_configure(int vector, int level, int up)
+{
+ cyg_uint32 regval, saved_vpbdiv;
+
+ // Only external interrupts are configurable
+ CYG_ASSERT(vector <= CYGNUM_HAL_INTERRUPT_EINT3 &&
+ vector >= CYGNUM_HAL_INTERRUPT_EINT0 , "Invalid vector");
+
+ // Map int vector to corresponding bit (0..3)
+ vector = 1 << (vector - CYGNUM_HAL_INTERRUPT_EINT0);
+
+#ifdef CYGHWR_HAL_ARM_LPC2XXX_EXTINT_ERRATA
+ // From discussions with the Philips applications engineers on the
+ // Yahoo LPC2000 forum, it appears that in order up change both
+ // EXTMODE and EXTPOLAR, the operations have to be performed in
+ // two passes as follows:
+ // old=VPBDIV (x2),
+ // VPBDIV=0, EXTMODE=n, VPBDIV=n, VPBDIV=0, EXTPOLAR=y, VPBDIV=y
+ // VPCDIV=old
+
+ // Save current VPBDIV register settings
+ saved_vpbdiv = lpc_get_vpbdiv();
+
+ // Clear VPBDIV register
+ HAL_WRITE_UINT32(CYGARC_HAL_LPC2XXX_REG_SCB_BASE +
+ CYGARC_HAL_LPC2XXX_REG_VPBDIV, 0);
+
+ // Read current mode and update for level (0) or edge detection (1)
+ HAL_READ_UINT32(CYGARC_HAL_LPC2XXX_REG_SCB_BASE +
+ CYGARC_HAL_LPC2XXX_REG_EXTMODE, regval);
+ if (level)
+ regval &= ~vector;
+ else
+ regval |= vector;
+ HAL_WRITE_UINT32(CYGARC_HAL_LPC2XXX_REG_SCB_BASE +
+ CYGARC_HAL_LPC2XXX_REG_EXTMODE, regval);
+
+ // Set VPBDIV register to same value as mode
+ HAL_WRITE_UINT32(CYGARC_HAL_LPC2XXX_REG_SCB_BASE +
+ CYGARC_HAL_LPC2XXX_REG_VPBDIV, regval);
+
+ // Clear VPBDIV register
+ HAL_WRITE_UINT32(CYGARC_HAL_LPC2XXX_REG_SCB_BASE +
+ CYGARC_HAL_LPC2XXX_REG_VPBDIV, 0);
+
+ // Read current polarity and update for trigger level or edge
+ // level: high (1), low (0) edge: rising (1), falling (0)
+ HAL_READ_UINT32(CYGARC_HAL_LPC2XXX_REG_SCB_BASE +
+ CYGARC_HAL_LPC2XXX_REG_EXTPOLAR, regval);
+ if (up)
+ regval |= vector;
+ else
+ regval &= ~vector;
+ HAL_WRITE_UINT32(CYGARC_HAL_LPC2XXX_REG_SCB_BASE +
+ CYGARC_HAL_LPC2XXX_REG_EXTPOLAR, regval);
+
+ // Set VPBDIV register to same value as mode
+ HAL_WRITE_UINT32(CYGARC_HAL_LPC2XXX_REG_SCB_BASE +
+ CYGARC_HAL_LPC2XXX_REG_VPBDIV, regval);
+
+ // Restore saved VPBDIV register
+ HAL_WRITE_UINT32(CYGARC_HAL_LPC2XXX_REG_SCB_BASE +
+ CYGARC_HAL_LPC2XXX_REG_VPBDIV, saved_vpbdiv);
+#else
+ // Read current mode and update for level (0) or edge detection (1)
+ HAL_READ_UINT32(CYGARC_HAL_LPC2XXX_REG_SCB_BASE +
+ CYGARC_HAL_LPC2XXX_REG_EXTMODE, regval);
+ if (level)
+ regval &= ~vector;
+ else
+ regval |= vector;
+ HAL_WRITE_UINT32(CYGARC_HAL_LPC2XXX_REG_SCB_BASE +
+ CYGARC_HAL_LPC2XXX_REG_EXTMODE, regval);
+
+ // Read current polarity and update for trigger level or edge
+ // level: high (1), low (0) edge: rising (1), falling (0)
+ HAL_READ_UINT32(CYGARC_HAL_LPC2XXX_REG_SCB_BASE +
+ CYGARC_HAL_LPC2XXX_REG_EXTPOLAR, regval);
+ if (up)
+ regval |= vector;
+ else
+ regval &= ~vector;
+ HAL_WRITE_UINT32(CYGARC_HAL_LPC2XXX_REG_SCB_BASE +
+ CYGARC_HAL_LPC2XXX_REG_EXTPOLAR, regval);
+#endif
+ // Clear any spurious interrupt that might have been generated
+ HAL_WRITE_UINT32(CYGARC_HAL_LPC2XXX_REG_SCB_BASE +
+ CYGARC_HAL_LPC2XXX_REG_EXTINT, vector);
+}
+
+//
+// We support up to 17 interrupt levels
+// Interrupts 0 - 15 are vectored interrupt requests. Vectored IRQs have
+// the higher priority then non vectored IRQs, but only 16 of the 32 requests
+// can be assigned to this category. Any of the 32 requests can be assigned
+// to any of the 16 vectored IRQ slots, among which slot 0 has the highest
+// priority and slot 15 has the lowest. Priority 16 indicates a non vectored
+// IRQ.
+//
+void hal_interrupt_set_level(int vector, int level)
+{
+ CYG_ASSERT(vector <= CYGNUM_HAL_ISR_MAX &&
+ vector >= CYGNUM_HAL_ISR_MIN , "Invalid vector");
+ CYG_ASSERT(level >= 0 && level <= 16, "Invalid level");
+
+ //
+ // If level is < 16 then this is a vectored ISR and we try to write
+ // the vector number of this ISR in the right slot of the vectored
+ // interrupt controller
+ //
+ if (level < 16)
+ {
+ cyg_uint32 addr_offset = level << 2;
+ cyg_uint32 reg_val CYGBLD_ATTRIB_UNUSED;
+
+ HAL_READ_UINT32(CYGARC_HAL_LPC2XXX_REG_VIC_BASE +
+ CYGARC_HAL_LPC2XXX_REG_VICVECTCNTL0 +
+ addr_offset, reg_val);
+ CYG_ASSERT((reg_val == 0) || (reg_val == (vector | 0x20)),
+ "Priority already used by another vector");
+ HAL_WRITE_UINT32(CYGARC_HAL_LPC2XXX_REG_VIC_BASE +
+ CYGARC_HAL_LPC2XXX_REG_VICVECTCNTL0 +
+ addr_offset, vector | 0x20);
+ //
+ // We do not store the adress of the ISR here but we store the
+ // vector number The hal_IRQ_handler then can faster determine
+ // the right vector number
+ //
+ HAL_WRITE_UINT32(CYGARC_HAL_LPC2XXX_REG_VIC_BASE +
+ CYGARC_HAL_LPC2XXX_REG_VICVECTADDR0 +
+ addr_offset, vector);
+ }
+}
+
+// Use the watchdog to generate a reset
+void hal_lpc_watchdog_reset(void)
+{
+ HAL_WRITE_UINT32(CYGARC_HAL_LPC2XXX_REG_WD_BASE +
+ CYGARC_HAL_LPC2XXX_REG_WDTC, 0xFF);
+ HAL_WRITE_UINT32(CYGARC_HAL_LPC2XXX_REG_WD_BASE +
+ CYGARC_HAL_LPC2XXX_REG_WDMOD,
+ CYGARC_HAL_LPC2XXX_REG_WDMOD_WDEN |
+ CYGARC_HAL_LPC2XXX_REG_WDMOD_WDRESET);
+
+ // feed WD with the two magic values
+ HAL_WRITE_UINT32(CYGARC_HAL_LPC2XXX_REG_WD_BASE +
+ CYGARC_HAL_LPC2XXX_REG_WDFEED,
+ CYGARC_HAL_LPC2XXX_REG_WDFEED_MAGIC1);
+ HAL_WRITE_UINT32(CYGARC_HAL_LPC2XXX_REG_WD_BASE +
+ CYGARC_HAL_LPC2XXX_REG_WDFEED,
+ CYGARC_HAL_LPC2XXX_REG_WDFEED_MAGIC2);
+
+ while(1)
+ continue;
+}
+
+#ifdef CYGPKG_DEVS_CAN_LPC2XXX
+//===========================================================================
+// Do varianat specific CAN initialisation
+//===========================================================================
+void hal_lpc_can_init(cyg_uint8 can_chan_no)
+{
+ typedef struct
+ {
+ cyg_uint32 pin_mask;
+ cyg_uint16 reg;
+ } canpincfg;
+
+ static const canpincfg canpincfg_tbl[] =
+ {
+ {0x00040000L, CYGARC_HAL_LPC2XXX_REG_PINSEL1},
+ {0x00014000L, CYGARC_HAL_LPC2XXX_REG_PINSEL1},
+ {0x00001800L, CYGARC_HAL_LPC2XXX_REG_PINSEL1},
+ {0x0F000000L, CYGARC_HAL_LPC2XXX_REG_PINSEL0},
+ };
+
+ CYG_ASSERT(can_chan_no < 4, "CAN channel number out of bounds");
+ canpincfg *pincfg = (canpincfg *)&canpincfg_tbl[can_chan_no];
+ cyg_uint32 regval;
+
+ HAL_READ_UINT32(CYGARC_HAL_LPC2XXX_REG_PIN_BASE + pincfg->reg, regval);
+ regval |= pincfg->pin_mask;
+ HAL_WRITE_UINT32(CYGARC_HAL_LPC2XXX_REG_PIN_BASE + pincfg->reg, regval);
+}
+#endif // CYGPKG_DEVS_CAN_LPC2XXX
+
+//--------------------------------------------------------------------------
+// EOF lpc_misc.c
diff --git a/ecos/packages/hal/arm/lpc2xxx/var/current/tests/iap_test.c b/ecos/packages/hal/arm/lpc2xxx/var/current/tests/iap_test.c
new file mode 100644
index 0000000..3b19f2f
--- /dev/null
+++ b/ecos/packages/hal/arm/lpc2xxx/var/current/tests/iap_test.c
@@ -0,0 +1,133 @@
+//==========================================================================
+//
+// iap_test.c
+//
+// IAP test for ARM LPC2XXX platforms
+//
+//==========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002, 2006 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//==========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): Sergei Gavrikov
+// Contributors: Sergei Gavrikov
+// Date: 2007-09-20
+// Purpose:
+// Description: Basic test for IAP (In Application Programming) interface
+//
+//####DESCRIPTIONEND####
+//
+//==========================================================================
+
+#include <pkgconf/hal_arm_lpc2xxx.h>
+
+#include <cyg/infra/cyg_type.h>
+#include <cyg/infra/testcase.h>
+#include <cyg/infra/diag.h>
+
+#if defined(CYGBLD_BUILD_HAL_LPC2XXX_WITH_IAP_CALL) \
+ && (CYGINT_HAL_ARM_LPC2XXX_IAP_CALL == 1)
+
+#include <cyg/hal/lpc2xxx_iap.h>
+
+typedef struct {
+ cyg_uint32 id;
+ char part[8];
+} lpc_part_id_info_t;
+
+static lpc_part_id_info_t known_parts[] = {
+ {0xFFF0FF12, "LPC2104"}, {0xFFF0FF22, "LPC2105"}, {0xFFF0FF32, "LPC2106"},
+ {0x0101FF12, "LPC2114"}, {0x0201FF12, "LPC2119"}, {0x0101FF13, "LPC2124"},
+ {0x0201FF13, "LPC2129"}, {0x0301FF13, "LPC2194"}, {0x0401FF12, "LPC2212"},
+ {0x0601FF13, "LPC2214"}, {0x0401FF13, "LPC2292"}, {0x0501FF13, "LPC2294"},
+ {0x0002FF11, "LPC2132"}, {0x0002FF12, "LPC2134"}, {0x0002FF23, "LPC2136"},
+ {0x0002FF25, "LPC2138"}
+};
+
+static cyg_uint32 data[2];
+
+static int
+read_part_id (void *data)
+{
+ cyg_uint32 *id = (cyg_uint32 *) data;
+ return hal_lpc2xxx_iap_call (HAL_LPC2XXX_IAP_COMMAND_READ_PART_ID, 0, 0,
+ 0, 0, (cyg_uint32 *) id);
+}
+
+void
+cyg_start (void)
+{
+ int i, rc;
+ cyg_uint32 device_id;
+ char *part = "unknow";
+
+ CYG_TEST_INIT ();
+ CYG_TEST_INFO ("Starting LPC2XXX IAP test");
+
+ // The simplest way to test IAP call is just to read NXP Device ID with it.
+ // The Device ID is a unique number for every LPC2XXX chip. So, here we use
+ // IAP command HAL_LPC2XXX_IAP_COMMAND_READ_PART_ID to get the number.
+ rc = read_part_id (data);
+ CYG_TEST_CHECK (rc == HAL_LPC2XXX_IAP_RETURN_CMD_SUCCESS,
+ "Read of Device ID failed");
+
+ device_id = data[1];
+
+ for (i = 0; i < CYG_NELEM (known_parts); i++) {
+ if (device_id == known_parts[i].id) {
+ part = known_parts[i].part;
+ break;
+ }
+ }
+
+ diag_printf ("INFO:<LPC2XXX device id 0x%08x>\n", device_id);
+ diag_printf ("INFO:<LPC2XXX part %s>\n", part);
+
+ CYG_TEST_PASS ("LPC2XXX IAP test OK");
+
+ CYG_TEST_EXIT ("Done");
+}
+#else
+void
+cyg_start (void)
+{
+ CYG_TEST_INIT ();
+ CYG_TEST_INFO ("LPC2XXX IAP test require:\n"
+ "CYGINT_HAL_ARM_LPC2XXX_IAP_CALL");
+ CYG_TEST_NA ("LPC2XXX IAP test requirements");
+}
+#endif
+
+// indent: -i4 -br -nut -di16 -ce; vim: expandtab tabstop=4 shiftwidth=4:
+//--------------------------------------------------------------------------
+// EOF iap_test.c
diff --git a/ecos/packages/hal/arm/mac7100/mac7100evb/current/ChangeLog b/ecos/packages/hal/arm/mac7100/mac7100evb/current/ChangeLog
new file mode 100644
index 0000000..ac65fe3
--- /dev/null
+++ b/ecos/packages/hal/arm/mac7100/mac7100evb/current/ChangeLog
@@ -0,0 +1,46 @@
+2009-01-31 Bart Veer <bartv@ecoscentric.com>
+
+ * cdl/hal_arm_mac7100_mac7100evb.cdl: update compiler flags for gcc 4.x
+
+2009-01-24 Bart Veer <bartv@ecoscentric.com>
+
+ * cdl/hal_arm_mac7100_mac7100evb.cdl: switch from arm-elf-gcc to
+ arm-eabi-gcc. Remove -mno-short-load-words.
+
+2006-06-08 Ilija Koco <ilijak@siva.com.mk>
+
+ * cdl/hal_arm_mac7100_mac7100evb.cdl:
+ * include/plf_io.h:
+ * include/hal_platform_ints.h:
+ * include/hal_platform_setup.h:
+ * include/mac7100evb_misc.h:
+ * include/pkgconf/mlt_arm_mac7100_mac7100evb_rom.ldi:
+ * include/pkgconf/mlt_arm_mac7100_mac7100evb_rom.h:
+ * src/mac7100evb_misc.c:
+ New HAL added to support the Freescale MAC7100 board.
+ Adapted from MACE1
+
+
+//===========================================================================
+// ####GPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 2 or (at your option) any
+// later version.
+//
+// This program is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the
+// Free Software Foundation, Inc., 51 Franklin Street,
+// Fifth Floor, Boston, MA 02110-1301, USA.
+// -------------------------------------------
+// ####GPLCOPYRIGHTEND####
+//===========================================================================
diff --git a/ecos/packages/hal/arm/mac7100/mac7100evb/current/cdl/hal_arm_mac7100_mac7100evb.cdl b/ecos/packages/hal/arm/mac7100/mac7100evb/current/cdl/hal_arm_mac7100_mac7100evb.cdl
new file mode 100644
index 0000000..1080ca0
--- /dev/null
+++ b/ecos/packages/hal/arm/mac7100/mac7100evb/current/cdl/hal_arm_mac7100_mac7100evb.cdl
@@ -0,0 +1,379 @@
+
+# ====================================================================
+#
+# hal_arm_mac7100_mac7100evb.cdl
+#
+# ARM MAC7100 MAC7100EVB HAL package configuration data
+#
+# ====================================================================
+## ####ECOSGPLCOPYRIGHTBEGIN####
+## -------------------------------------------
+## This file is part of eCos, the Embedded Configurable Operating System.
+## Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2006 Free Software Foundation, Inc.
+##
+## eCos is free software; you can redistribute it and/or modify it under
+## the terms of the GNU General Public License as published by the Free
+## Software Foundation; either version 2 or (at your option) any later
+## version.
+##
+## eCos is distributed in the hope that it will be useful, but WITHOUT
+## ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+## FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+## for more details.
+##
+## You should have received a copy of the GNU General Public License
+## along with eCos; if not, write to the Free Software Foundation, Inc.,
+## 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+##
+## As a special exception, if other files instantiate templates or use
+## macros or inline functions from this file, or you compile this file
+## and link it with other works to produce a work based on this file,
+## this file does not by itself cause the resulting work to be covered by
+## the GNU General Public License. However the source code for this file
+## must still be made available in accordance with section (3) of the GNU
+## General Public License v2.
+##
+## This exception does not invalidate any other reasons why a work based
+## on this file might be covered by the GNU General Public License.
+## -------------------------------------------
+## ####ECOSGPLCOPYRIGHTEND####
+# ====================================================================
+######DESCRIPTIONBEGIN####
+#
+# Author(s): Ilija Koco <ilijak@siva.com.mk>
+# Contributors:
+# Date: 2006-06-07
+#
+#####DESCRIPTIONEND####
+#
+# ====================================================================
+
+cdl_package CYGPKG_HAL_ARM_MAC7100_MAC7100EVB {
+ display "MAC7100EVB evaluation board HAL"
+ parent CYGPKG_HAL_ARM_MAC7100
+ define_header hal_arm_mac7100_mac7100evb.h
+ include_dir cyg/hal
+ hardware
+ description "
+ The MAC7100EVB HAL package provides the support needed to run
+ eCos on the Freescale MAC7100EVB eval board."
+
+ compile mac7100evb_misc.c
+
+ requires { CYGHWR_HAL_ARM_MAC7100 == "MAC7111" }
+ requires { CYGNUM_PIT_CHAN_CLOCK_PRIORITY ==
+ CYGNUM_KERNEL_COUNTERS_CLOCK_ISR_PRIORITY }
+
+ 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_mac7100.h>"
+ puts $::cdl_system_header "#define CYGBLD_HAL_PLATFORM_H <pkgconf/hal_arm_mac7100_mac7100evb.h>"
+ puts $::cdl_header "#define HAL_PLATFORM_CPU \"ARM7TDMI\""
+ puts $::cdl_header "#define HAL_PLATFORM_BOARD \"Freescale MAC7100/MAC7100EVB\""
+ puts $::cdl_header "#define HAL_PLATFORM_EXTRA \"\""
+ }
+
+ cdl_component CYG_PIT_CLOCKS {
+ display "Real time clock configuration."
+ flavor none
+ description "
+ Periodic Interrupt Timer Module - PIT comprise of 11 timer
+ channels. RTI channel (PIT0) as well as PIT1 .. PIT4 can
+ generate interrupts and are eligible for the real time
+ clock."
+
+ cdl_option CYGNUM_PIT_CHAN_CLOCK {
+ display "System CLOCK device"
+ flavor data
+ legal_values 0 to 4
+ default_value 3
+ requires {CYGNUM_PIT_CHAN_CLOCK != CYGNUM_PIT_CHAN_US}
+ description "
+ RTI (PIT0) and PIT1 .. PIT4 can be used for real time
+ clock. RTI is clocked by oscillator clock while
+ channels 1 to 4 by 1/2 system clock frequency.
+ Selection of RTI vs PIT1 .. PIT4 affects Real-time
+ clock period (see Real-time clock constants). NOTE:
+ Real time clock channel must not be the same as US
+ delay channel.
+ "
+ }
+
+ cdl_option CYGNUM_PIT_CHAN_CLOCK_PRIORITY {
+ display "System clock's INTC priority"
+ flavor data
+ legal_values 0 to 15
+ default_value 12
+ description "
+ INTC has 16 interrupt levels: 0 (lowest) to 15 (highest).
+ "
+ }
+
+ cdl_option CYGNUM_PIT_CHAN_US {
+ display "PIT channel for us delay"
+ flavor data
+ legal_values 0 to 4
+ default_value 0
+ requires {CYGNUM_PIT_CHAN_CLOCK != CYGNUM_PIT_CHAN_US}
+ description "
+ RTI is clocked by oscillator while channels PIT1
+ .. PIT4 by half system clock frequency, hence RTI
+ should allow for larger maximal period. NOTE: US
+ delay channel must not be the same as real time clock
+ channel.
+ "
+ }
+ }
+
+ 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
+ default_value 1000000000
+ }
+ cdl_option CYGNUM_HAL_RTC_DENOMINATOR {
+ display "Real-time clock denominator"
+ flavor data
+ default_value 100
+ }
+ cdl_option CYGNUM_HAL_RTC_PERIOD {
+ display "Real-time clock period"
+ flavor data
+ default_value (CYGNUM_PIT_CHAN_CLOCK !=0 ? \
+ (CYGNUM_HAL_ARM_MAC7100_CLOCK_SPEED / 2 / CYGNUM_HAL_RTC_DENOMINATOR - 1) : \
+ (CYGNUM_HAL_ARM_MAC7100_Q_FREQ / CYGNUM_HAL_RTC_DENOMINATOR - 1))
+ }
+ }
+
+ cdl_component CYG_HAL_STARTUP {
+ display "Startup type"
+ flavor data
+ calculated {"ROM"}
+ no_define
+ define -file system.h CYG_HAL_STARTUP
+ description "
+ Current MAC7100EVB port supports only ROM startup type."
+ }
+
+ # Real-time clock/counter specifics
+
+ cdl_component CYG_HAL_MAC7100_OSC {
+ display "System Clocks Module"
+ flavor none
+
+ cdl_option CYGNUM_HAL_ARM_MAC7100_F_OSC {
+ display "FOSC - Oscillator clock"
+ flavor data
+ default_value 8000000
+ }
+
+ cdl_option CYGNUM_HAL_ARM_MAC7100_FDIV {
+ display "FDIV - Frequency divider for PLL"
+ flavor booldata
+ legal_values 0 to 16
+ default_value 2
+ description "
+ If enabled (FDIV != 0),
+ you set divider for PLL.
+ Then REFDV is calculated as REFDV=FDIV-1;
+ If disabled (FDIV == 0),
+ REFDV is calculated from FOSC so that referent frequency
+ for PLL is 500kHz.
+ SYNR is then derived from desired CPU clock, FOSC and REFDV.
+ "
+ }
+ }
+
+ cdl_option CYGNUM_HAL_ARM_MAC7100_CLOCK_SPEED {
+ display "CPU clock - PLL frequency"
+ flavor data
+ default_value 48000000
+ }
+
+ cdl_option CYGNUM_HAL_VIRTUAL_VECTOR_COMM_CHANNELS {
+ display "Number of communication channels on the board"
+ flavor data
+ legal_values 0 1 2
+ default_value 2
+ }
+
+ cdl_option CYGNUM_HAL_VIRTUAL_VECTOR_DEBUG_CHANNEL {
+ display "Debug serial port"
+ active_if CYGPRI_HAL_VIRTUAL_VECTOR_DEBUG_CHANNEL_CONFIGURABLE
+ flavor data
+ legal_values 0 to CYGNUM_HAL_VIRTUAL_VECTOR_COMM_CHANNELS-1
+ default_value 0
+ description "
+ The MAC7100 MAC7100EVB 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"
+ active_if CYGPRI_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_CONFIGURABLE
+ flavor data
+ legal_values 0 to CYGNUM_HAL_VIRTUAL_VECTOR_COMM_CHANNELS-1
+ default_value 0
+ description "
+ The MAC7100 MAC7100EVB board has two serial ports. This option
+ chooses which port will be used for diagnostic output."
+ }
+
+ cdl_option CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_BAUD {
+ display "Diagnostic serial port baud rate"
+ flavor data
+ legal_values 9600 19200 38400
+ default_value 38400
+ description "
+ This option selects the baud rate used for the diagnostic port."
+ }
+
+ cdl_option CYGNUM_HAL_VIRTUAL_VECTOR_DEBUG_CHANNEL_BAUD {
+ display "GDB serial port baud rate"
+ flavor data
+ legal_values 9600 19200 38400
+ default_value 38400
+ description "
+ This option controls the baud rate used for the GDB connection."
+ }
+
+ 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" ||
+ CYG_HAL_STARTUP == "ROMRAM" }
+ 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 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_REDBOOT_HAL_OPTIONS {
+ display "Redboot HAL options"
+ flavor none
+ no_define
+ parent CYGPKG_REDBOOT
+ active_if CYGPKG_REDBOOT
+ description "
+ This option lists the target's requirements for a valid Redboot
+ configuration."
+
+ 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 $< $@
+ }
+
+ }
+ }
+
+ 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 { "arm-eabi"}
+ 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 { CYGBLD_GLOBAL_WARNFLAGS . CYGBLD_ARCH_CFLAGS .
+ "-mcpu=arm7tdmi -gdwarf-2 -O2 -ffunction-sections -fdata-sections -fno-rtti -fno-exceptions " }
+ 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 { CYGBLD_ARCH_LDFLAGS . "-mcpu=arm7tdmi -Wl,--gc-sections -Wl,-static -gdwarf-2 -nostdlib" }
+ description "
+ This option controls the global linker flags. Individual
+ packages may define options which override these global flags."
+ }
+ }
+
+ cdl_component CYGHWR_MEMORY_LAYOUT {
+ display "Memory layout"
+ flavor data
+ no_define
+ calculated { (CYG_HAL_STARTUP == "RAM") ? "arm_mac7100_mac7100evb_ram" :
+ (CYG_HAL_STARTUP == "ROMRAM") ? "arm_mac7100_mac7100evb_romram" :
+ "arm_mac7100_mac7100evb_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_mac7100_mac7100evb_ram.ldi>" :
+ (CYG_HAL_STARTUP == "ROMRAM") ? "<pkgconf/mlt_arm_mac7100_mac7100evb_romram.ldi>" :
+ "<pkgconf/mlt_arm_mac7100_mac7100evb_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_mac7100_mac7100evb_ram.h>" :
+ (CYG_HAL_STARTUP == "ROMRAM") ? "<pkgconf/mlt_arm_mac7100_mac7100evb_romram.h>" :
+ "<pkgconf/mlt_arm_mac7100_mac7100evb_rom.h>" }
+ }
+ }
+}
diff --git a/ecos/packages/hal/arm/mac7100/mac7100evb/current/include/hal_platform_ints.h b/ecos/packages/hal/arm/mac7100/mac7100evb/current/include/hal_platform_ints.h
new file mode 100644
index 0000000..6620f8c
--- /dev/null
+++ b/ecos/packages/hal/arm/mac7100/mac7100evb/current/include/hal_platform_ints.h
@@ -0,0 +1,144 @@
+#ifndef CYGONCE_HAL_PLATFORM_INTS_H
+#define CYGONCE_HAL_PLATFORM_INTS_H
+//==========================================================================
+//
+// hal_platform_ints.h
+//
+// HAL Interrupt and clock assignments for MAC7100EVB
+//
+//==========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//==========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): Ilija Koco <ilijak@siva.com.mk>
+// Contributors:
+// Date: 2006-06-07
+// Purpose: Define Interrupt support
+// Description: The interrupt specifics for the MAC7100EVB board/platform
+// are defined here.
+//
+// Usage: #include <cyg/hal/hal_platform_ints.h>
+// ...
+//
+//
+//####DESCRIPTIONEND####
+//
+//==========================================================================
+
+#define CYGNUM_HAL_ISR_MIN 0
+#define CYGNUM_HAL_ISR_MAX 63
+#define CYGNUM_HAL_ISR_COUNT (CYGNUM_HAL_ISR_MAX + 1)
+
+// INTC levels
+
+#define MAC7100_EDMA0_LEVEL (0)
+#define MAC7100_EDMA1_LEVEL (0)
+#define MAC7100_EDMA2_LEVEL (0)
+#define MAC7100_EDMA3_LEVEL (0)
+#define MAC7100_EDMA4_LEVEL (0)
+#define MAC7100_EDMA5_LEVEL (0)
+#define MAC7100_EDMA6_LEVEL (0)
+#define MAC7100_EDMA7_LEVEL (0)
+#define MAC7100_EDMA8_LEVEL (0)
+#define MAC7100_EDMA9_LEVEL (0)
+#define MAC7100_EDMA10_LEVEL (0)
+#define MAC7100_EDMA11_LEVEL (0)
+#define MAC7100_EDMA12_LEVEL (0)
+#define MAC7100_EDMA13_LEVEL (0)
+#define MAC7100_EDMA14_LEVEL (0)
+#define MAC7100_EDMA15_LEVEL (0)
+#define MAC7100_EDMA_Error_LEVEL (0)
+#define MAC7100_MCM_SWT_LEVEL (0)
+#define MAC7100_CRG_LEVEL (0)
+#define MAC7100_PIT1_LEVEL (9)
+#define MAC7100_PIT2_LEVEL (9)
+#define MAC7100_PIT3_LEVEL (10)
+#define MAC7100_PIT4_RTI_LEVEL (9)
+#define MAC7100_VREG_LEVEL (4)
+#define MAC7100_CAN_A_MB_LEVEL (4)
+#define MAC7100_CAN_A_MB14_LEVEL (4)
+#define MAC7100_CAN_A_Error_LEVEL (4)
+#define MAC7100_CAN_B_MB_LEVEL (4)
+#define MAC7100_CAN_B_MB14_LEVEL (4)
+#define MAC7100_CAN_B_Error_LEVEL (4)
+#define MAC7100_CAN_C_MB_LEVEL (4)
+#define MAC7100_CAN_C_MB14_LEVEL (4)
+#define MAC7100_CAN_C_Error_LEVEL (4)
+#define MAC7100_CAN_D_MB_LEVEL (4)
+#define MAC7100_CAN_D_MB14_LEVEL (4)
+#define MAC7100_CAN_D_Error_LEVEL (4)
+#define MAC7100_I2C_LEVEL (4)
+#define MAC7100_DSPI_A_LEVEL (5)
+#define MAC7100_DSPI_B_LEVEL (5)
+#define MAC7100_ESCI_A_LEVEL (8)
+#define MAC7100_ESCI_B_LEVEL (8)
+#define MAC7100_ESCI_C_LEVEL (8)
+#define MAC7100_ESCI_D_LEVEL (8)
+#define MAC7100_EMIOS0_LEVEL (7)
+#define MAC7100_EMIOS1_LEVEL (7)
+#define MAC7100_EMIOS2_LEVEL (7)
+#define MAC7100_EMIOS3_LEVEL (7)
+#define MAC7100_EMIOS4_LEVEL (7)
+#define MAC7100_EMIOS5_LEVEL (7)
+#define MAC7100_EMIOS6_LEVEL (7)
+#define MAC7100_EMIOS7_LEVEL (7)
+#define MAC7100_EMIOS8_LEVEL (7)
+#define MAC7100_EMIOS9_LEVEL (7)
+#define MAC7100_EMIOS10_LEVEL (7)
+#define MAC7100_EMIOS11_LEVEL (7)
+#define MAC7100_EMIOS12_LEVEL (7)
+#define MAC7100_EMIOS13_LEVEL (7)
+#define MAC7100_EMIOS14_LEVEL (7)
+#define MAC7100_EMIOS15_LEVEL (7)
+#define MAC7100_ATD_LEVEL (11)
+#define MAC7100_CFM_LEVEL (7)
+#define MAC7100_PIM_LEVEL (11)
+#define MAC7100_IRQ_LEVEL (12)
+#define MAC7100_XIRQ_LEVEL (12)
+
+// The vector used by the Real time clock
+#if CYGNUM_PIT_CHAN_CLOCK==0
+#define CYGNUM_HAL_INTERRUPT_RTC MAC7100_PIT4_RTI_IV
+#else
+#define CYGNUM_HAL_INTERRUPT_RTC (MAC7100_PIT1_IV+CYGNUM_PIT_CHAN_CLOCK-1)
+#endif
+
+//----------------------------------------------------------------------------
+// Reset.
+__externC void hal_mac7100_reset_cpu(void);
+#define HAL_PLATFORM_RESET() hal_mac7100_reset_cpu()
+
+#define HAL_PLATFORM_RESET_ENTRY 0x01000000
+
+#endif // CYGONCE_HAL_PLATFORM_INTS_H
diff --git a/ecos/packages/hal/arm/mac7100/mac7100evb/current/include/hal_platform_setup.h b/ecos/packages/hal/arm/mac7100/mac7100evb/current/include/hal_platform_setup.h
new file mode 100644
index 0000000..46a1d72
--- /dev/null
+++ b/ecos/packages/hal/arm/mac7100/mac7100evb/current/include/hal_platform_setup.h
@@ -0,0 +1,133 @@
+#ifndef CYGONCE_HAL_PLATFORM_SETUP_H
+#define CYGONCE_HAL_PLATFORM_SETUP_H
+
+//=============================================================================
+//
+// hal_platform_setup.h
+//
+// Platform specific support for HAL (assembly code)
+//
+//=============================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2006 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): Ilija Koco <ilijak@siva.com.mk>
+// Contributors:
+// Date: 2006-06-07
+// Purpose: MAC7100EVB platform specific support routines
+// Description:
+// Usage: #include <cyg/hal/hal_platform_setup.h>
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+#include <cyg/hal/var_io.h>
+#include <cyg/hal/hal_var_setup.h>
+//===========================================================================
+
+ .macro _led y
+ ldr r0,=MAC7100_PIM_PORTDATA(MAC7100_PORT_F_OFFSET)
+ ldrh r1,[r0]
+ and r1,r1,#0x00ff
+ orr r1,r1,#(((~\y)&0xff)<<8)
+ strh r1,[r0]
+ .endm
+
+
+// Initialize LED PORT
+// Set appropriate peripheral pins
+ .macro _led_init
+ _led 0 // Set initial LED state.
+ mov r1, #MAC7100_PIM_DDR // Pin setting: Output+Low
+ ldr r0,=MAC7100_PIM_CONFIG(MAC7100_PORT_F_OFFSET, 8) // LED pin cfg
+ strh r1,[r0],#2 // LED: LSB ...
+ strh r1,[r0],#2
+ strh r1,[r0],#2
+ strh r1,[r0],#2
+ strh r1,[r0],#2
+ strh r1,[r0],#2
+ strh r1,[r0],#2
+ strh r1,[r0],#2 // LED: ... MSB
+ .endm
+
+
+// Clock initilalization
+ .macro _pclock_init
+ _mac7100_setpll
+ .endm
+
+// Memory re-mapping
+ .macro _memory_remap
+ _mac7100_remap_single_chip
+ .endm
+
+
+// Initialize paralel port
+ .macro _pio_init
+ .endm
+
+
+#define CYGHWR_LED_MACRO _led \x
+
+//===========================================================================
+
+#if defined(CYG_HAL_STARTUP_ROM) || defined(CYG_HAL_STARTUP_ROMRAM)
+
+ .macro _setup
+ ldr r0,=VAE_MAC7100_FlashSecurity
+ _led_init
+ _memory_remap
+ _pclock_init
+ _pio_init
+ .endm
+
+#define CYGSEM_HAL_ROM_RESET_USES_JUMP
+
+#else
+
+ .macro _setup
+ _led_init
+ _led 16
+ _pclock_init
+ _pio_init
+ .endm
+
+#endif
+
+#define PLATFORM_SETUP1 _setup
+
+//-----------------------------------------------------------------------------
+// end of hal_platform_setup.h
+#endif // CYGONCE_HAL_PLATFORM_SETUP_H
diff --git a/ecos/packages/hal/arm/mac7100/mac7100evb/current/include/mac7100evb_misc.h b/ecos/packages/hal/arm/mac7100/mac7100evb/current/include/mac7100evb_misc.h
new file mode 100644
index 0000000..db2c28b
--- /dev/null
+++ b/ecos/packages/hal/arm/mac7100/mac7100evb/current/include/mac7100evb_misc.h
@@ -0,0 +1,67 @@
+#ifndef CYGONCE_HAL_MAC7100EVB_MISC_H
+#define CYGONCE_HAL_MAC7100EVB_MISC_H
+//=============================================================================
+//
+// mac7100evb_misc.h
+//
+// MAC7100EVB board specific functions
+//
+//=============================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2006 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): Ilija Koco <ilijak@siva.com.mk>
+// Contributors:
+// Date: 2006-05-07
+// Purpose: MAC7100EVB board specific registers
+// Description:
+// Usage: #include <cyg/hal/mac7100evb_misc.h>
+//
+//####DESCRIPTIONEND####
+//
+//=============================================================================
+
+void hal_mac7100evb_set_leds(int);
+void hal_mac7100evb_led_on(int);
+void hal_mac7100evb_led_off(int);
+int hal_mac7100evb_get_leds(void);
+
+#define HAL_MAC7100_SET_LEDS(x) hal_mac7100evb_set_leds(x)
+#define HAL_MAC7100_LED_ON(x) hal_mac7100evb_led_on(x)
+#define HAL_MAC7100_LED_OFF(x) hal_mac7100evb_led_off(x)
+#define HAL_MAC7100_GET_LEDS(x) hal_mac7100evb_get_leds(x)
+
+//-----------------------------------------------------------------------------
+// end of mac7100evb_misc.h
+#endif // CYGONCE_HAL_MAC7100EVB_MISC_H
diff --git a/ecos/packages/hal/arm/mac7100/mac7100evb/current/include/pkgconf/mlt_arm_mac7100_mac7100evb_rom.h b/ecos/packages/hal/arm/mac7100/mac7100evb/current/include/pkgconf/mlt_arm_mac7100_mac7100evb_rom.h
new file mode 100644
index 0000000..7cc23f8
--- /dev/null
+++ b/ecos/packages/hal/arm/mac7100/mac7100evb/current/include/pkgconf/mlt_arm_mac7100_mac7100evb_rom.h
@@ -0,0 +1,24 @@
+// eCos memory layout - Wed Apr 11 13:49:55 2001
+
+// This is a generated file - do not edit
+
+#ifndef __ASSEMBLER__
+#include <cyg/infra/cyg_type.h>
+#include <stddef.h>
+
+#endif
+// Initially RAM is at 0x40000000 but we ramap to 0x0
+#define CYGMEM_REGION_ram (0x00000000)
+#define CYGMEM_REGION_ram_SIZE (0x00008000)
+#define CYGMEM_REGION_ram_ATTR (CYGMEM_REGION_ATTR_R | CYGMEM_REGION_ATTR_W)
+#define CYGMEM_REGION_rom (0x20000000)
+#define CYGMEM_REGION_rom_SIZE (0x80000)
+#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 \
+ ((CYGMEM_REGION_ram+CYGMEM_REGION_ram_SIZE) - \
+ (size_t) CYG_LABEL_NAME (__heap1))
+
diff --git a/ecos/packages/hal/arm/mac7100/mac7100evb/current/include/pkgconf/mlt_arm_mac7100_mac7100evb_rom.ldi b/ecos/packages/hal/arm/mac7100/mac7100evb/current/include/pkgconf/mlt_arm_mac7100_mac7100evb_rom.ldi
new file mode 100644
index 0000000..2abf974
--- /dev/null
+++ b/ecos/packages/hal/arm/mac7100/mac7100evb/current/include/pkgconf/mlt_arm_mac7100_mac7100evb_rom.ldi
@@ -0,0 +1,39 @@
+// eCos memory layout - Wed Apr 11 13:49:55 2001
+
+// This is a generated file - do not edit
+
+#include <cyg/infra/cyg_type.inc>
+
+MEMORY
+{
+ ram : ORIGIN = 0x00000000, LENGTH = 0x8000
+ rom : ORIGIN = 0x20000000, LENGTH = 0x80000
+}
+
+SECTIONS
+{
+ SECTIONS_BEGIN
+ SECTION_rom_vectors (rom, 0x20000000, LMA_EQ_VMA)
+
+// MAC7100 Flash Security
+// Following section is manually added to address MAC7100 flash security area
+// It should actually be something like this
+// SECTION_sgfm_config (rom, 0x20000400, LMA_EQ_VMA)
+
+ .mac7100_flash_security 0x20000400 : { KEEP (*(.mac7100_flash_security))} > rom
+
+// END MAC7100 Flash Security
+
+ SECTION_text (rom, ALIGN (0x1), 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, 0x00000020, LMA_EQ_VMA)
+ SECTION_data (ram, ALIGN(0x4), FOLLOWING(.gcc_except_table))
+ SECTION_bss (ram, ALIGN (0x4), LMA_EQ_VMA)
+ CYG_LABEL_DEFN(__heap1) = ALIGN (0x8);
+ SECTIONS_END
+}
diff --git a/ecos/packages/hal/arm/mac7100/mac7100evb/current/include/plf_io.h b/ecos/packages/hal/arm/mac7100/mac7100evb/current/include/plf_io.h
new file mode 100644
index 0000000..711ba44
--- /dev/null
+++ b/ecos/packages/hal/arm/mac7100/mac7100evb/current/include/plf_io.h
@@ -0,0 +1,60 @@
+#ifndef CYGONCE_HAL_PLF_IO_H
+#define CYGONCE_HAL_PLF_IO_H
+//=============================================================================
+//
+// plf_io.h
+//
+// MAC7100EVB board specific registers
+//
+//=============================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2006 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): Ilija Koco <ilijak@siva.com.mk>
+// Contributors:
+// Date: 2006-06-07
+// Purpose: MAC7100EVB board specific registers
+// Description:
+// Usage: #include <cyg/hal/plf_io.h>
+//
+//####DESCRIPTIONEND####
+//
+//=============================================================================
+// On-chip device base addresses
+
+#define CYGARC_PHYSICAL_ADDRESS(_x_)
+
+#endif // CYGONCE_HAL_PLF_IO_H
+//-----------------------------------------------------------------------------
+// end of plf_io.h
diff --git a/ecos/packages/hal/arm/mac7100/mac7100evb/current/src/mac7100evb_misc.c b/ecos/packages/hal/arm/mac7100/mac7100evb/current/src/mac7100evb_misc.c
new file mode 100644
index 0000000..37a5a9e
--- /dev/null
+++ b/ecos/packages/hal/arm/mac7100/mac7100evb/current/src/mac7100evb_misc.c
@@ -0,0 +1,102 @@
+//==========================================================================
+//
+// mac7100evb_misc.c
+//
+// HAL misc board support code for MAC7100EVB board
+//
+//==========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2006 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//==========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): Ilija Koco <ilijak@siva.com.mk>
+// Contributors:
+// Date: 2006-06-07
+// Purpose: HAL board support
+// Description: Implementations of HAL board interfaces
+//
+//####DESCRIPTIONEND####
+//
+//========================================================================*/
+
+#include <pkgconf/hal.h>
+
+#include <cyg/infra/cyg_type.h> // base types
+#include <cyg/hal/hal_io.h> // low level i/o
+#include <cyg/hal/var_io.h> // common registers
+#include <cyg/hal/plf_io.h> // platform registers
+#include <cyg/hal/mac7100evb_misc.h> // mac7100evb misc functions
+
+void
+hal_mac7100evb_set_leds(int val)
+{
+ HAL_WRITE_UINT16(MAC7100_PIM_PORTDATA(MAC7100_PORT_F_OFFSET),
+ ~((val<<8)&0xff00)); // turn all LEDs off
+}
+
+void
+hal_mac7100evb_led_on(int val)
+{
+ cyg_uint16 leds;
+
+ // read old LED state
+ HAL_READ_UINT16(MAC7100_PIM_PORTDATA(MAC7100_PORT_F_OFFSET), leds);
+ leds&=~(1<<(8+val));
+ // Write new state
+ HAL_WRITE_UINT16(MAC7100_PIM_PORTDATA(MAC7100_PORT_F_OFFSET), leds);
+}
+
+void
+hal_mac7100evb_led_off(int val)
+{
+ cyg_uint16 leds;
+
+ // read old LED state
+ HAL_READ_UINT16(MAC7100_PIM_PORTDATA(MAC7100_PORT_F_OFFSET), leds);
+ leds|=1<<(8+val);
+ // Write new state
+ HAL_WRITE_UINT16(MAC7100_PIM_PORTDATA(MAC7100_PORT_F_OFFSET), leds);
+}
+
+int
+hal_mac7100evb_get_leds(void)
+{
+ cyg_uint16 leds = 0;
+
+ // read old LED state
+ HAL_READ_UINT16(MAC7100_PIM_PORTDATA(MAC7100_PORT_F_OFFSET), leds);
+ return ~(leds>>8&0xFF);
+}
+
+//--------------------------------------------------------------------------
+// EOF mac7100evb_misc.c
diff --git a/ecos/packages/hal/arm/mac7100/mace1/current/ChangeLog b/ecos/packages/hal/arm/mac7100/mace1/current/ChangeLog
new file mode 100644
index 0000000..9f5caf8
--- /dev/null
+++ b/ecos/packages/hal/arm/mac7100/mace1/current/ChangeLog
@@ -0,0 +1,52 @@
+2009-01-31 Bart Veer <bartv@ecoscentric.com>
+
+ * cdl/hal_arm_mac7100_mace1.cdl: update compiler flags for gcc 4.x
+
+2009-01-24 Bart Veer <bartv@ecoscentric.com>
+
+ * cdl/hal_arm_mac7100_mace1.cdl: switch from arm-elf-gcc to
+ arm-eabi-gcc. Remove -mno-short-load-words.
+
+2006-06-08 Ilija Koco <ilijak@siva.com.mk>
+
+ * include/hal_platform_setup.h: PLL clock and memory remap
+ moved to hal_var_setup.h
+ * include/mace1_misc.h: LED macros added
+
+2006-05-24 Ilija Koco <ilijak@siva.com.mk>
+
+ * cdl/hal_arm_mac7100_mace1.cdl:
+ * include/plf_io.h:
+ * include/hal_platform_ints.h:
+ * include/hal_platform_setup.h:
+ * include/mace1_misc.h:
+ * include/pkgconf/mlt_arm_mac7100_mace1_rom.ldi:
+ * include/pkgconf/mlt_arm_mac7100_mace1_rom.h:
+ * src/mace1_misc.c:
+ New HAL added to support the SIvA MACE1 board. Adapted from the
+ EB55 by Nick Garnett
+
+
+//===========================================================================
+// ####GPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 2 or (at your option) any
+// later version.
+//
+// This program is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the
+// Free Software Foundation, Inc., 51 Franklin Street,
+// Fifth Floor, Boston, MA 02110-1301, USA.
+// -------------------------------------------
+// ####GPLCOPYRIGHTEND####
+//===========================================================================
diff --git a/ecos/packages/hal/arm/mac7100/mace1/current/cdl/hal_arm_mac7100_mace1.cdl b/ecos/packages/hal/arm/mac7100/mace1/current/cdl/hal_arm_mac7100_mace1.cdl
new file mode 100644
index 0000000..184c87b
--- /dev/null
+++ b/ecos/packages/hal/arm/mac7100/mace1/current/cdl/hal_arm_mac7100_mace1.cdl
@@ -0,0 +1,379 @@
+
+# ====================================================================
+#
+# hal_arm_mac7100_mace1.cdl
+#
+# ARM MAC7100 MACE1 HAL package configuration data
+#
+# ====================================================================
+## ####ECOSGPLCOPYRIGHTBEGIN####
+## -------------------------------------------
+## This file is part of eCos, the Embedded Configurable Operating System.
+## Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2006 Free Software Foundation, Inc.
+##
+## eCos is free software; you can redistribute it and/or modify it under
+## the terms of the GNU General Public License as published by the Free
+## Software Foundation; either version 2 or (at your option) any later
+## version.
+##
+## eCos is distributed in the hope that it will be useful, but WITHOUT
+## ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+## FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+## for more details.
+##
+## You should have received a copy of the GNU General Public License
+## along with eCos; if not, write to the Free Software Foundation, Inc.,
+## 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+##
+## As a special exception, if other files instantiate templates or use
+## macros or inline functions from this file, or you compile this file
+## and link it with other works to produce a work based on this file,
+## this file does not by itself cause the resulting work to be covered by
+## the GNU General Public License. However the source code for this file
+## must still be made available in accordance with section (3) of the GNU
+## General Public License v2.
+##
+## This exception does not invalidate any other reasons why a work based
+## on this file might be covered by the GNU General Public License.
+## -------------------------------------------
+## ####ECOSGPLCOPYRIGHTEND####
+# ====================================================================
+######DESCRIPTIONBEGIN####
+#
+# Author(s): Ilija Koco <ilijak@siva.com.mk>
+# Contributors:
+# Date: 2006-04-12
+#
+#####DESCRIPTIONEND####
+#
+# ====================================================================
+
+cdl_package CYGPKG_HAL_ARM_MAC7100_MACE1 {
+ display "MACE1 - MAC7100 eval board HAL"
+ parent CYGPKG_HAL_ARM_MAC7100
+ define_header hal_arm_mac7100_mace1.h
+ include_dir cyg/hal
+ hardware
+ description "
+ The MACE1 HAL package provides the support needed to run
+ eCos on an MACE1 - MAC7100 eval board."
+
+ compile mace1_misc.c
+
+ requires { CYGHWR_HAL_ARM_MAC7100 == "MAC7121" }
+ requires { CYGNUM_PIT_CHAN_CLOCK_PRIORITY ==
+ CYGNUM_KERNEL_COUNTERS_CLOCK_ISR_PRIORITY }
+
+ 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_mac7100.h>"
+ puts $::cdl_system_header "#define CYGBLD_HAL_PLATFORM_H <pkgconf/hal_arm_mac7100_mace1.h>"
+ puts $::cdl_header "#define HAL_PLATFORM_CPU \"ARM7TDMI\""
+ puts $::cdl_header "#define HAL_PLATFORM_BOARD \"Freescale MAC7100/MACE1\""
+ puts $::cdl_header "#define HAL_PLATFORM_EXTRA \"\""
+ }
+
+ cdl_component CYG_PIT_CLOCKS {
+ display "Real time clock configuration."
+ flavor none
+ description "
+ Periodic Interrupt Timer Module - PIT comprizes 11 timer
+ channels. RTI channel (PIT0) as well as PIT1 .. PIT4 can
+ generate interrupts and are eligible for the real time
+ clock. "
+
+ cdl_option CYGNUM_PIT_CHAN_CLOCK {
+ display "System CLOCK device"
+ flavor data
+ legal_values 0 to 4
+ default_value 3
+ requires {CYGNUM_PIT_CHAN_CLOCK != CYGNUM_PIT_CHAN_US}
+ description "
+ RTI (PIT0) and PIT1 .. PIT4 can be used for ral time
+ clock. RTI is clocked by oscillator clock while
+ channels 1 to 4 by 1/2 system clock frequency.
+ Selection of RTI vs PIT1 .. PIT4 affects Real-time
+ clock period (see Real-time clock constants). NOTE:
+ Real time clock channel must not be the same as US
+ delay channel.
+ "
+ }
+
+ cdl_option CYGNUM_PIT_CHAN_CLOCK_PRIORITY {
+ display "System clock's INTC priority"
+ flavor data
+ legal_values 0 to 15
+ default_value 12
+ description "
+ INTC has 16 interrupt levels: 0 (lowest) to 15 (highest).
+ "
+ }
+
+ cdl_option CYGNUM_PIT_CHAN_US {
+ display "PIT channel for us delay"
+ flavor data
+ legal_values 0 to 4
+ default_value 0
+ requires {CYGNUM_PIT_CHAN_CLOCK != CYGNUM_PIT_CHAN_US}
+ description "
+ RTI is clocked by oscillator while channels PIT1
+ .. PIT4 by half system clock frequency, hence RTI
+ should allow for larger maximal period. NOTE: US
+ delay channel must not be the same as real time clock
+ channel.
+ "
+ }
+ }
+
+ 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
+ default_value 1000000000
+ }
+ cdl_option CYGNUM_HAL_RTC_DENOMINATOR {
+ display "Real-time clock denominator"
+ flavor data
+ default_value 100
+ }
+ cdl_option CYGNUM_HAL_RTC_PERIOD {
+ display "Real-time clock period"
+ flavor data
+ default_value (CYGNUM_PIT_CHAN_CLOCK !=0 ? \
+ (CYGNUM_HAL_ARM_MAC7100_CLOCK_SPEED / 2 / CYGNUM_HAL_RTC_DENOMINATOR - 1) : \
+ (CYGNUM_HAL_ARM_MAC7100_Q_FREQ / CYGNUM_HAL_RTC_DENOMINATOR - 1))
+ }
+ }
+
+ cdl_component CYG_HAL_STARTUP {
+ display "Startup type"
+ flavor data
+ calculated {"ROM"}
+ no_define
+ define -file system.h CYG_HAL_STARTUP
+ description "
+ Current MACE1 port supports only ROM startup type."
+ }
+
+ # Real-time clock/counter specifics
+
+ cdl_component CYG_HAL_MAC7100_OSC {
+ display "System Clocks Module"
+ flavor none
+
+ cdl_option CYGNUM_HAL_ARM_MAC7100_F_OSC {
+ display "FOSC - Oscillator clock"
+ flavor data
+ default_value 8000000
+ }
+
+ cdl_option CYGNUM_HAL_ARM_MAC7100_FDIV {
+ display "FDIV - Frequency divider for PLL"
+ flavor booldata
+ legal_values 0 to 16
+ default_value 2
+ description "
+ If enabled (FDIV != 0),
+ you set divider for PLL.
+ Then REFDV is calculated as REFDV=FDIV-1;
+ If disabled (FDIV == 0),
+ REFDV is calculated from FOSC so that referent frequency
+ for PLL is 500kHz.
+ SYNR is then derived from desired CPU clock, FOSC and REFDV.
+ "
+ }
+ }
+
+ cdl_option CYGNUM_HAL_ARM_MAC7100_CLOCK_SPEED {
+ display "CPU clock - PLL frequency"
+ flavor data
+ default_value 48000000
+ }
+
+ cdl_option CYGNUM_HAL_VIRTUAL_VECTOR_COMM_CHANNELS {
+ display "Number of communication channels on the board"
+ flavor data
+ legal_values 0 1 2
+ default_value 2
+ }
+
+ cdl_option CYGNUM_HAL_VIRTUAL_VECTOR_DEBUG_CHANNEL {
+ display "Debug serial port"
+ active_if CYGPRI_HAL_VIRTUAL_VECTOR_DEBUG_CHANNEL_CONFIGURABLE
+ flavor data
+ legal_values 0 to CYGNUM_HAL_VIRTUAL_VECTOR_COMM_CHANNELS-1
+ default_value 0
+ description "
+ The MAC7100 MACE1 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"
+ active_if CYGPRI_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_CONFIGURABLE
+ flavor data
+ legal_values 0 to CYGNUM_HAL_VIRTUAL_VECTOR_COMM_CHANNELS-1
+ default_value 0
+ description "
+ The MAC7100 MACE1 board has two serial ports. This option
+ chooses which port will be used for diagnostic output."
+ }
+
+ cdl_option CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_BAUD {
+ display "Diagnostic serial port baud rate"
+ flavor data
+ legal_values 9600 19200 38400
+ default_value 38400
+ description "
+ This option selects the baud rate used for the diagnostic port."
+ }
+
+ cdl_option CYGNUM_HAL_VIRTUAL_VECTOR_DEBUG_CHANNEL_BAUD {
+ display "GDB serial port baud rate"
+ flavor data
+ legal_values 9600 19200 38400
+ default_value 38400
+ description "
+ This option controls the baud rate used for the GDB connection."
+ }
+
+ 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" ||
+ CYG_HAL_STARTUP == "ROMRAM" }
+ 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 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_REDBOOT_HAL_OPTIONS {
+ display "Redboot HAL options"
+ flavor none
+ no_define
+ parent CYGPKG_REDBOOT
+ active_if CYGPKG_REDBOOT
+ description "
+ This option lists the target's requirements for a valid Redboot
+ configuration."
+
+ 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 $< $@
+ }
+
+ }
+ }
+
+ 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 { "arm-eabi"}
+ 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 { CYGBLD_GLOBAL_WARNFLAGS . CYGBLD_ARCH_CFLAGS .
+ "-mcpu=arm7tdmi -gdwarf-2 -O2 -ffunction-sections -fdata-sections -fno-rtti -fno-exceptions " }
+ 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 { CYGBLD_ARCH_LDFLAGS . "-mcpu=arm7tdmi -Wl,--gc-sections -Wl,-static -gdwarf-2 -nostdlib" }
+ description "
+ This option controls the global linker flags. Individual
+ packages may define options which override these global flags."
+ }
+ }
+
+ cdl_component CYGHWR_MEMORY_LAYOUT {
+ display "Memory layout"
+ flavor data
+ no_define
+ calculated { (CYG_HAL_STARTUP == "RAM") ? "arm_mac7100_mace1_ram" :
+ (CYG_HAL_STARTUP == "ROMRAM") ? "arm_mac7100_mace1_romram" :
+ "arm_mac7100_mace1_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_mac7100_mace1_ram.ldi>" :
+ (CYG_HAL_STARTUP == "ROMRAM") ? "<pkgconf/mlt_arm_mac7100_mace1_romram.ldi>" :
+ "<pkgconf/mlt_arm_mac7100_mace1_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_mac7100_mace1_ram.h>" :
+ (CYG_HAL_STARTUP == "ROMRAM") ? "<pkgconf/mlt_arm_mac7100_mace1_romram.h>" :
+ "<pkgconf/mlt_arm_mac7100_mace1_rom.h>" }
+ }
+ }
+}
diff --git a/ecos/packages/hal/arm/mac7100/mace1/current/include/hal_platform_ints.h b/ecos/packages/hal/arm/mac7100/mace1/current/include/hal_platform_ints.h
new file mode 100644
index 0000000..5226dbe
--- /dev/null
+++ b/ecos/packages/hal/arm/mac7100/mace1/current/include/hal_platform_ints.h
@@ -0,0 +1,144 @@
+#ifndef CYGONCE_HAL_PLATFORM_INTS_H
+#define CYGONCE_HAL_PLATFORM_INTS_H
+//==========================================================================
+//
+// hal_platform_ints.h
+//
+// HAL Interrupt and clock assignments for MAC7100/MACE1
+//
+//==========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//==========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): Ilija Koco <ilijak@siva.com.mk>
+// Contributors:
+// Date: 2006-04-13
+// Purpose: Define Interrupt support
+// Description: The interrupt specifics for the MAC7100/MACE1 board/platform
+// are defined here.
+//
+// Usage: #include <cyg/hal/hal_platform_ints.h>
+// ...
+//
+//
+//####DESCRIPTIONEND####
+//
+//==========================================================================
+
+#define CYGNUM_HAL_ISR_MIN 0
+#define CYGNUM_HAL_ISR_MAX 63
+#define CYGNUM_HAL_ISR_COUNT (CYGNUM_HAL_ISR_MAX + 1)
+
+// INTC levels
+
+#define MAC7100_EDMA0_LEVEL (0)
+#define MAC7100_EDMA1_LEVEL (0)
+#define MAC7100_EDMA2_LEVEL (0)
+#define MAC7100_EDMA3_LEVEL (0)
+#define MAC7100_EDMA4_LEVEL (0)
+#define MAC7100_EDMA5_LEVEL (0)
+#define MAC7100_EDMA6_LEVEL (0)
+#define MAC7100_EDMA7_LEVEL (0)
+#define MAC7100_EDMA8_LEVEL (0)
+#define MAC7100_EDMA9_LEVEL (0)
+#define MAC7100_EDMA10_LEVEL (0)
+#define MAC7100_EDMA11_LEVEL (0)
+#define MAC7100_EDMA12_LEVEL (0)
+#define MAC7100_EDMA13_LEVEL (0)
+#define MAC7100_EDMA14_LEVEL (0)
+#define MAC7100_EDMA15_LEVEL (0)
+#define MAC7100_EDMA_Error_LEVEL (0)
+#define MAC7100_MCM_SWT_LEVEL (0)
+#define MAC7100_CRG_LEVEL (0)
+#define MAC7100_PIT1_LEVEL (9)
+#define MAC7100_PIT2_LEVEL (9)
+#define MAC7100_PIT3_LEVEL (10)
+#define MAC7100_PIT4_RTI_LEVEL (9)
+#define MAC7100_VREG_LEVEL (4)
+#define MAC7100_CAN_A_MB_LEVEL (4)
+#define MAC7100_CAN_A_MB14_LEVEL (4)
+#define MAC7100_CAN_A_Error_LEVEL (4)
+#define MAC7100_CAN_B_MB_LEVEL (4)
+#define MAC7100_CAN_B_MB14_LEVEL (4)
+#define MAC7100_CAN_B_Error_LEVEL (4)
+#define MAC7100_CAN_C_MB_LEVEL (4)
+#define MAC7100_CAN_C_MB14_LEVEL (4)
+#define MAC7100_CAN_C_Error_LEVEL (4)
+#define MAC7100_CAN_D_MB_LEVEL (4)
+#define MAC7100_CAN_D_MB14_LEVEL (4)
+#define MAC7100_CAN_D_Error_LEVEL (4)
+#define MAC7100_I2C_LEVEL (4)
+#define MAC7100_DSPI_A_LEVEL (5)
+#define MAC7100_DSPI_B_LEVEL (5)
+#define MAC7100_ESCI_A_LEVEL (8)
+#define MAC7100_ESCI_B_LEVEL (8)
+#define MAC7100_ESCI_C_LEVEL (8)
+#define MAC7100_ESCI_D_LEVEL (8)
+#define MAC7100_EMIOS0_LEVEL (7)
+#define MAC7100_EMIOS1_LEVEL (7)
+#define MAC7100_EMIOS2_LEVEL (7)
+#define MAC7100_EMIOS3_LEVEL (7)
+#define MAC7100_EMIOS4_LEVEL (7)
+#define MAC7100_EMIOS5_LEVEL (7)
+#define MAC7100_EMIOS6_LEVEL (7)
+#define MAC7100_EMIOS7_LEVEL (7)
+#define MAC7100_EMIOS8_LEVEL (7)
+#define MAC7100_EMIOS9_LEVEL (7)
+#define MAC7100_EMIOS10_LEVEL (7)
+#define MAC7100_EMIOS11_LEVEL (7)
+#define MAC7100_EMIOS12_LEVEL (7)
+#define MAC7100_EMIOS13_LEVEL (7)
+#define MAC7100_EMIOS14_LEVEL (7)
+#define MAC7100_EMIOS15_LEVEL (7)
+#define MAC7100_ATD_LEVEL (11)
+#define MAC7100_CFM_LEVEL (7)
+#define MAC7100_PIM_LEVEL (11)
+#define MAC7100_IRQ_LEVEL (12)
+#define MAC7100_XIRQ_LEVEL (12)
+
+// The vector used by the Real time clock
+#if CYGNUM_PIT_CHAN_CLOCK==0
+#define CYGNUM_HAL_INTERRUPT_RTC MAC7100_PIT4_RTI_IV
+#else
+#define CYGNUM_HAL_INTERRUPT_RTC (MAC7100_PIT1_IV+CYGNUM_PIT_CHAN_CLOCK-1)
+#endif
+
+//----------------------------------------------------------------------------
+// Reset.
+__externC void hal_mac7100_reset_cpu(void);
+#define HAL_PLATFORM_RESET() hal_mac7100_reset_cpu()
+
+#define HAL_PLATFORM_RESET_ENTRY 0x01000000
+
+#endif // CYGONCE_HAL_PLATFORM_INTS_H
diff --git a/ecos/packages/hal/arm/mac7100/mace1/current/include/hal_platform_setup.h b/ecos/packages/hal/arm/mac7100/mace1/current/include/hal_platform_setup.h
new file mode 100644
index 0000000..5942992
--- /dev/null
+++ b/ecos/packages/hal/arm/mac7100/mace1/current/include/hal_platform_setup.h
@@ -0,0 +1,133 @@
+#ifndef CYGONCE_HAL_PLATFORM_SETUP_H
+#define CYGONCE_HAL_PLATFORM_SETUP_H
+
+//=============================================================================
+//
+// hal_platform_setup.h
+//
+// Platform specific support for HAL (assembly code)
+//
+//=============================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2006 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): Ilija Koco <ilijak@siva.com.mk>
+// Contributors:
+// Date: 2006-03-12
+// Purpose: MAC7100/MACE1 platform specific support routines
+// Description:
+// Usage: #include <cyg/hal/hal_platform_setup.h>
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+#include <cyg/hal/var_io.h>
+#include <cyg/hal/hal_var_setup.h>
+//===========================================================================
+
+ .macro _led y
+ ldr r0,=MAC7100_PIM_PORTDATA(MAC7100_PORT_A_OFFSET)
+ ldrh r1,[r0]
+ and r1,r1,#0x00ff
+ add r1,r1,#(\y<<8)
+ strh r1,[r0]
+ .endm
+
+
+// Initialize LED PORT
+// Set appropriate peripheral pins
+ .macro _led_init
+ mov r1, #MAC7100_PIM_DDR // Pin setting: Output+Low
+ ldr r0,=MAC7100_PIM_CONFIG(MAC7100_PORT_A_OFFSET, 8) // LED pin cfg
+ strh r1,[r0],#2 // LED: LSB ...
+ strh r1,[r0],#2
+ strh r1,[r0],#2
+ strh r1,[r0],#2
+ strh r1,[r0],#2
+ strh r1,[r0],#2
+ strh r1,[r0],#2
+ strh r1,[r0],#2 // LED: MSB ...
+ _led 0 // Set initial LED state.
+ .endm
+
+
+// Clock initilalization
+ .macro _pclock_init
+ _mac7100_setpll
+ .endm
+
+// Memory re-mapping
+ .macro _memory_remap
+ _mac7100_remap_single_chip
+ .endm
+
+
+// Initialize paralel port
+ .macro _pio_init
+ .endm
+
+
+#define CYGHWR_LED_MACRO _led \x
+
+//===========================================================================
+
+#if defined(CYG_HAL_STARTUP_ROM) || defined(CYG_HAL_STARTUP_ROMRAM)
+
+ .macro _setup
+ ldr r0,=VAE_MAC7100_FlashSecurity
+ _led_init
+ _memory_remap
+ _pclock_init
+ _pio_init
+ .endm
+
+#define CYGSEM_HAL_ROM_RESET_USES_JUMP
+
+#else
+
+ .macro _setup
+ _led_init
+ _led 16
+ _pclock_init
+ _pio_init
+ .endm
+
+#endif
+
+#define PLATFORM_SETUP1 _setup
+
+//-----------------------------------------------------------------------------
+// end of hal_platform_setup.h
+#endif // CYGONCE_HAL_PLATFORM_SETUP_H
diff --git a/ecos/packages/hal/arm/mac7100/mace1/current/include/mace1_misc.h b/ecos/packages/hal/arm/mac7100/mace1/current/include/mace1_misc.h
new file mode 100644
index 0000000..df94452
--- /dev/null
+++ b/ecos/packages/hal/arm/mac7100/mace1/current/include/mace1_misc.h
@@ -0,0 +1,68 @@
+#ifndef CYGONCE_HAL_MACE1_MISC_H
+#define CYGONCE_HAL_MACE1_MISC_H
+//=============================================================================
+//
+// mace1_misc.h
+//
+// MACE1 board specific functions
+//
+//=============================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2006 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): Ilija Koco <ilijak@siva.com.mk>
+// Contributors:
+// Date: 2006-02-03
+// Purpose: MACE1 board specific registers
+// Description:
+// Usage: #include <cyg/hal/mece1_misc.h>
+//
+//####DESCRIPTIONEND####
+//
+//=============================================================================
+
+void hal_mace1_set_leds(int);
+void hal_mace1_led_on(int);
+void hal_mace1_led_off(int);
+int hal_mace1_get_leds(void);
+
+#define HAL_MAC7100_SET_LEDS(x) hal_mace1_set_leds(x)
+#define HAL_MAC7100_LED_ON(x) hal_mace1_led_on(x)
+#define HAL_MAC7100_LED_OFF(x) hal_mace1_led_off(x)
+#define HAL_MAC7100_GET_LEDS(x) hal_mace1_get_leds(x)
+
+
+//-----------------------------------------------------------------------------
+// end of mace1_misc.h
+#endif // CYGONCE_HAL_MACE1_MISC_H
diff --git a/ecos/packages/hal/arm/mac7100/mace1/current/include/pkgconf/mlt_arm_mac7100_mace1_rom.h b/ecos/packages/hal/arm/mac7100/mace1/current/include/pkgconf/mlt_arm_mac7100_mace1_rom.h
new file mode 100644
index 0000000..7cc23f8
--- /dev/null
+++ b/ecos/packages/hal/arm/mac7100/mace1/current/include/pkgconf/mlt_arm_mac7100_mace1_rom.h
@@ -0,0 +1,24 @@
+// eCos memory layout - Wed Apr 11 13:49:55 2001
+
+// This is a generated file - do not edit
+
+#ifndef __ASSEMBLER__
+#include <cyg/infra/cyg_type.h>
+#include <stddef.h>
+
+#endif
+// Initially RAM is at 0x40000000 but we ramap to 0x0
+#define CYGMEM_REGION_ram (0x00000000)
+#define CYGMEM_REGION_ram_SIZE (0x00008000)
+#define CYGMEM_REGION_ram_ATTR (CYGMEM_REGION_ATTR_R | CYGMEM_REGION_ATTR_W)
+#define CYGMEM_REGION_rom (0x20000000)
+#define CYGMEM_REGION_rom_SIZE (0x80000)
+#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 \
+ ((CYGMEM_REGION_ram+CYGMEM_REGION_ram_SIZE) - \
+ (size_t) CYG_LABEL_NAME (__heap1))
+
diff --git a/ecos/packages/hal/arm/mac7100/mace1/current/include/pkgconf/mlt_arm_mac7100_mace1_rom.ldi b/ecos/packages/hal/arm/mac7100/mace1/current/include/pkgconf/mlt_arm_mac7100_mace1_rom.ldi
new file mode 100644
index 0000000..2abf974
--- /dev/null
+++ b/ecos/packages/hal/arm/mac7100/mace1/current/include/pkgconf/mlt_arm_mac7100_mace1_rom.ldi
@@ -0,0 +1,39 @@
+// eCos memory layout - Wed Apr 11 13:49:55 2001
+
+// This is a generated file - do not edit
+
+#include <cyg/infra/cyg_type.inc>
+
+MEMORY
+{
+ ram : ORIGIN = 0x00000000, LENGTH = 0x8000
+ rom : ORIGIN = 0x20000000, LENGTH = 0x80000
+}
+
+SECTIONS
+{
+ SECTIONS_BEGIN
+ SECTION_rom_vectors (rom, 0x20000000, LMA_EQ_VMA)
+
+// MAC7100 Flash Security
+// Following section is manually added to address MAC7100 flash security area
+// It should actually be something like this
+// SECTION_sgfm_config (rom, 0x20000400, LMA_EQ_VMA)
+
+ .mac7100_flash_security 0x20000400 : { KEEP (*(.mac7100_flash_security))} > rom
+
+// END MAC7100 Flash Security
+
+ SECTION_text (rom, ALIGN (0x1), 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, 0x00000020, LMA_EQ_VMA)
+ SECTION_data (ram, ALIGN(0x4), FOLLOWING(.gcc_except_table))
+ SECTION_bss (ram, ALIGN (0x4), LMA_EQ_VMA)
+ CYG_LABEL_DEFN(__heap1) = ALIGN (0x8);
+ SECTIONS_END
+}
diff --git a/ecos/packages/hal/arm/mac7100/mace1/current/include/plf_io.h b/ecos/packages/hal/arm/mac7100/mace1/current/include/plf_io.h
new file mode 100644
index 0000000..821cb63
--- /dev/null
+++ b/ecos/packages/hal/arm/mac7100/mace1/current/include/plf_io.h
@@ -0,0 +1,60 @@
+#ifndef CYGONCE_HAL_PLF_IO_H
+#define CYGONCE_HAL_PLF_IO_H
+//=============================================================================
+//
+// plf_io.h
+//
+// MACE1 board specific registers
+//
+//=============================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2006 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): Ilija Koco <ilijak@siva.com.mk>
+// Contributors:
+// Date: 2006-02-03
+// Purpose: MACE1 board specific registers
+// Description:
+// Usage: #include <cyg/hal/plf_io.h>
+//
+//####DESCRIPTIONEND####
+//
+//=============================================================================
+// On-chip device base addresses
+
+#define CYGARC_PHYSICAL_ADDRESS(_x_)
+
+#endif // CYGONCE_HAL_PLF_IO_H
+//-----------------------------------------------------------------------------
+// end of plf_io.h
diff --git a/ecos/packages/hal/arm/mac7100/mace1/current/src/mace1_misc.c b/ecos/packages/hal/arm/mac7100/mace1/current/src/mace1_misc.c
new file mode 100644
index 0000000..ddb0c20
--- /dev/null
+++ b/ecos/packages/hal/arm/mac7100/mace1/current/src/mace1_misc.c
@@ -0,0 +1,102 @@
+//==========================================================================
+//
+// mace1_misc.c
+//
+// HAL misc board support code for MACE1 board
+//
+//==========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2006 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//==========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): Ilija Koco <ilijak@siva.com.mk>
+// Contributors:
+// Date: 2006-04-12
+// Purpose: HAL board support
+// Description: Implementations of HAL board interfaces
+//
+//####DESCRIPTIONEND####
+//
+//========================================================================*/
+
+#include <pkgconf/hal.h>
+
+#include <cyg/infra/cyg_type.h> // base types
+#include <cyg/hal/hal_io.h> // low level i/o
+#include <cyg/hal/var_io.h> // common registers
+#include <cyg/hal/plf_io.h> // platform registers
+#include <cyg/hal/mace1_misc.h> // mace1 misc functions
+
+void
+hal_mace1_set_leds(int val)
+{
+ HAL_WRITE_UINT16(MAC7100_PIM_PORTDATA(MAC7100_PORT_A_OFFSET),
+ ((val<<8)&0xff00)); // turn all LEDs off
+}
+
+void
+hal_mace1_led_on(int val)
+{
+ cyg_uint16 leds;
+
+ // read old LED state
+ HAL_READ_UINT16(MAC7100_PIM_PORTDATA(MAC7100_PORT_A_OFFSET), leds);
+ leds|=1<<(8+val);
+ // Write new state
+ HAL_WRITE_UINT16(MAC7100_PIM_PORTDATA(MAC7100_PORT_A_OFFSET), leds);
+}
+
+void
+hal_mace1_led_off(int val)
+{
+ cyg_uint16 leds;
+
+ // read old LED state
+ HAL_READ_UINT16(MAC7100_PIM_PORTDATA(MAC7100_PORT_A_OFFSET), leds);
+ leds&=~(1<<(8+val));
+ // Write new state
+ HAL_WRITE_UINT16(MAC7100_PIM_PORTDATA(MAC7100_PORT_A_OFFSET), leds);
+}
+
+int
+hal_mace1_get_leds(void)
+{
+ cyg_uint16 leds = 0;
+
+ // read old LED state
+ HAL_READ_UINT16(MAC7100_PIM_PORTDATA(MAC7100_PORT_A_OFFSET), leds);
+ return (leds>>8)&0xFF;
+}
+
+//--------------------------------------------------------------------------
+// EOF mace1_misc.c
diff --git a/ecos/packages/hal/arm/mac7100/var/current/ChangeLog b/ecos/packages/hal/arm/mac7100/var/current/ChangeLog
new file mode 100644
index 0000000..5953a2b
--- /dev/null
+++ b/ecos/packages/hal/arm/mac7100/var/current/ChangeLog
@@ -0,0 +1,57 @@
+2009-03-19 Ilija Kocho <ilijak@siva.com.mk>
+
+ * src/hal_diag.c: fixed gcc 4.3.2 warning
+
+2007-01-10 Ilija Koco <ilijak@siva.com.mk>
+
+ * hal_arm_mac7100.cdl: added property
+ "requires CYGPKG_IO_SERIAL_FREESCALE_ESCI_H"
+
+2006-08-08 Ilija Koco <ilijak@siva.com.mk>
+
+ * var_io.h: Freescale eSCI platform dependent clock related macros
+ moved here from ser_esci.h
+
+2006-06-08 Ilija Koco <ilijak@siva.com.mk>
+
+ * hal_var_setup.h: (new) Assembly macros shared between targets.
+ * cdl/hal_arm_mac7100.cdl: some defaults changed in favour of
+ MAC7100EVB
+
+2006-05-24 Ilija Koco <ilijak@siva.com.mk>
+
+ * cdl/hal_arm_mac7100.cdl:
+ * include/hal_cache.h:
+ * include/hal_diag.h:
+ * include/mac7100_misc.h:
+ * include/plf_stub.h: unchanged from AT91
+ * include/var_arch.h:
+ * include/var_io.h:
+ * src/flash_security.S:
+ * src/hal_diag.c:
+ * src/mac7100_misc.c
+ New variant port - based on at91 variant by Gary Thomas
+
+//===========================================================================
+// ####GPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002, 2009 Free Software Foundation, Inc.
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 2 or (at your option) any
+// later version.
+//
+// This program is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the
+// Free Software Foundation, Inc., 51 Franklin Street,
+// Fifth Floor, Boston, MA 02110-1301, USA.
+// -------------------------------------------
+// ####GPLCOPYRIGHTEND####
+//===========================================================================
diff --git a/ecos/packages/hal/arm/mac7100/var/current/cdl/hal_arm_mac7100.cdl b/ecos/packages/hal/arm/mac7100/var/current/cdl/hal_arm_mac7100.cdl
new file mode 100644
index 0000000..841cc3c
--- /dev/null
+++ b/ecos/packages/hal/arm/mac7100/var/current/cdl/hal_arm_mac7100.cdl
@@ -0,0 +1,128 @@
+# ====================================================================
+#
+# hal_arm_mac7100.cdl
+#
+# Freescale MAC7100 HAL package configuration data
+#
+# ====================================================================
+## ####ECOSGPLCOPYRIGHTBEGIN####
+## -------------------------------------------
+## This file is part of eCos, the Embedded Configurable Operating System.
+## Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2006 Free Software Foundation, Inc.
+##
+## eCos is free software; you can redistribute it and/or modify it under
+## the terms of the GNU General Public License as published by the Free
+## Software Foundation; either version 2 or (at your option) any later
+## version.
+##
+## eCos is distributed in the hope that it will be useful, but WITHOUT
+## ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+## FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+## for more details.
+##
+## You should have received a copy of the GNU General Public License
+## along with eCos; if not, write to the Free Software Foundation, Inc.,
+## 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+##
+## As a special exception, if other files instantiate templates or use
+## macros or inline functions from this file, or you compile this file
+## and link it with other works to produce a work based on this file,
+## this file does not by itself cause the resulting work to be covered by
+## the GNU General Public License. However the source code for this file
+## must still be made available in accordance with section (3) of the GNU
+## General Public License v2.
+##
+## This exception does not invalidate any other reasons why a work based
+## on this file might be covered by the GNU General Public License.
+## -------------------------------------------
+## ####ECOSGPLCOPYRIGHTEND####
+# ====================================================================
+######DESCRIPTIONBEGIN####
+#
+# Author(s): Ilija Koco <ilijak@siva.com.mk>
+# Contributors:
+# Date: 2006-02-03
+#
+#####DESCRIPTIONEND####
+#
+# ====================================================================
+
+cdl_package CYGPKG_HAL_ARM_MAC7100 {
+ display "Freescale MAC7100 variant HAL"
+ parent CYGPKG_HAL_ARM
+ define_header hal_arm_mac7100.h
+ include_dir cyg/hal
+ hardware
+ description "
+ The MAC7100 HAL package provides the support needed to run
+ eCos on Freescale MAC7100 based targets."
+
+ compile flash_security.S hal_diag.c mac7100_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_COMM_BAUD_SUPPORT
+ implements CYGINT_HAL_ARM_ARCH_ARM7
+ implements CYGINT_HAL_ARM_THUMB_ARCH
+ implements CYGINT_HAL_ARM_BIGENDIAN
+
+ requires CYGHWR_HAL_ARM_BIGENDIAN == 1
+
+ requires CYGPKG_IO_SERIAL_FREESCALE_ESCI_H
+
+ # Let the architectural HAL see this variant's files
+ define_proc {
+ puts $::cdl_system_header "#define CYGBLD_HAL_ARM_VAR_IO_H"
+ puts $::cdl_system_header "#define CYGBLD_HAL_ARM_VAR_ARCH_H"
+ }
+
+ cdl_option CYGHWR_HAL_ARM_MAC7100 {
+ display "MAC7100 variant used"
+ flavor data
+ default_value {"MAC7111"}
+ legal_values {"MAC7111" "MAC7121" "MAC7116" }
+ description "
+ The MAC7100 microcontroller family has several variants,
+ the main differences being the amount of on-chip SRAM,
+ peripherals and their layout. This option allows the
+ platform HALs to select the specific microcontroller being
+ used."
+ }
+
+ cdl_option CYGHWR_HAL_ARM_MAC7100_FIQ {
+ display "handle FIQ as an IRQ"
+ flavor bool
+ default_value 0
+ description "
+ Enable this option if you need to handle FIQ interrupts in the
+ normal way, i.e. a FIQ interrupt will be treated as a normal IRQ
+ using the highest priority
+ "
+ }
+
+ cdl_option CYGHWR_HAL_ARM_MAC7100_INTC_FIQDEF {
+ display "Set FIQDEF"
+ flavor data
+ default_value CYGHWR_HAL_ARM_MAC7100_FIQ ? 14 : 16
+ legal_values 0 to 32
+ description "
+ Set maximum level that shall be routed to IRQ.
+ "
+ }
+
+ cdl_option CYGHWR_HAL_ARM_MAC7100_INTC_EMASK {
+ display "enable INTC to automatically handle CLMASK"
+ flavor data
+ default_value 0x20
+ legal_values 0x00 0x20
+ description "
+ Enable this option if you need INTC to automatically mask
+ lower level IRQ.
+
+ - 0x00 - disable
+ - 0x20 - enable
+
+ "
+ }
+}
diff --git a/ecos/packages/hal/arm/mac7100/var/current/include/hal_cache.h b/ecos/packages/hal/arm/mac7100/var/current/include/hal_cache.h
new file mode 100644
index 0000000..846abee
--- /dev/null
+++ b/ecos/packages/hal/arm/mac7100/var/current/include/hal_cache.h
@@ -0,0 +1,191 @@
+#ifndef CYGONCE_HAL_CACHE_H
+#define CYGONCE_HAL_CACHE_H
+
+//=============================================================================
+//
+// hal_cache.h
+//
+// HAL cache control API
+//
+//=============================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): nickg, gthomas
+// Contributors: nickg, gthomas
+// Date: 1998-09-28
+// 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 <cyg/infra/cyg_type.h>
+
+//-----------------------------------------------------------------------------
+// Cache dimensions
+
+// Data cache
+//#define HAL_DCACHE_SIZE 0 // Size of data cache in bytes
+//#define HAL_DCACHE_LINE_SIZE 0 // Size of a data cache line
+//#define HAL_DCACHE_WAYS 0 // Associativity of the cache
+
+// Instruction cache
+//#define HAL_ICACHE_SIZE 0 // Size of cache in bytes
+//#define HAL_ICACHE_LINE_SIZE 0 // Size of a cache line
+//#define HAL_ICACHE_WAYS 0 // 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
+#define HAL_DCACHE_ENABLE()
+
+// Disable the data cache
+#define HAL_DCACHE_DISABLE()
+
+// Invalidate the entire cache
+#define HAL_DCACHE_INVALIDATE_ALL()
+
+// Synchronize the contents of the cache with memory.
+#define HAL_DCACHE_SYNC()
+
+// Purge contents of data cache
+#define HAL_DCACHE_PURGE_ALL()
+
+// Query the state of the data cache (does not affect the caching)
+#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 (does not affect the caching)
+#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_HAL_CACHE_H
+// End of hal_cache.h
diff --git a/ecos/packages/hal/arm/mac7100/var/current/include/hal_diag.h b/ecos/packages/hal/arm/mac7100/var/current/include/hal_diag.h
new file mode 100644
index 0000000..ba9c69c
--- /dev/null
+++ b/ecos/packages/hal/arm/mac7100/var/current/include/hal_diag.h
@@ -0,0 +1,83 @@
+#ifndef CYGONCE_HAL_DIAG_H
+#define CYGONCE_HAL_DIAG_H
+
+//=============================================================================
+//
+// hal_diag.h
+//
+// HAL Support for Kernel Diagnostic Routines
+//
+//=============================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jskov
+// Contributors:jskov, gthomas, tkoeller, ilijak
+// Date: 2001-07-12
+// 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>
+
+#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_)
+
+//-----------------------------------------------------------------------------
+// LED
+externC void hal_diag_led(int mask);
+
+//-----------------------------------------------------------------------------
+// delay
+
+externC void hal_delay_us(cyg_int32 usecs);
+#define HAL_DELAY_US(n) hal_delay_us(n);
+
+//-----------------------------------------------------------------------------
+// reset
+
+extern void hal_mac7100_reset_cpu(void);
+
+//-----------------------------------------------------------------------------
+// end of hal_diag.h
+#endif // CYGONCE_HAL_DIAG_H
diff --git a/ecos/packages/hal/arm/mac7100/var/current/include/hal_var_setup.h b/ecos/packages/hal/arm/mac7100/var/current/include/hal_var_setup.h
new file mode 100644
index 0000000..6d92dd9
--- /dev/null
+++ b/ecos/packages/hal/arm/mac7100/var/current/include/hal_var_setup.h
@@ -0,0 +1,140 @@
+#ifndef CYGONCE_HAL_VAR_SETUP_H
+#define CYGONCE_HAL_VAR_SETUP_H
+
+//=============================================================================
+//
+// hal_var_setup.h
+//
+// Variant specific support for HAL (assembly code)
+//
+//=============================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2006 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): Ilija Koco <ilijak@siva.com.mk>
+// Contributors:
+// Date: 2006-06-05
+// Purpose: MAC7100 variant specific support routines
+// Description:
+// Usage: in <cyg/hal/hal_platform_serup.h> include following:
+// #include <cyg/hal/hal_var_setup.h>
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+// Clock initilalization
+// Initialize PLL
+#if defined(CYGNUM_HAL_ARM_MAC7100_FDIV) // Divider set by user.
+# define MAC7100_CRG_REFDV_VAL (CYGNUM_HAL_ARM_MAC7100_FDIV-1)
+#else // Divider calculated.
+ //NOTE: works for f_osc <= 8MHz
+# define MAC7100_CRG_REFDV_VAL (((CYGNUM_HAL_ARM_MAC7100_F_OSC/500000) - 1) & 0x0F) // 15 (1)
+#endif
+#define MAC7100_CRG_SYNR_VAL (CYGNUM_HAL_ARM_MAC7100_CLOCK_SPEED / 2 / \
+ (CYGNUM_HAL_ARM_MAC7100_F_OSC / (MAC7100_CRG_REFDV_VAL+1))-1) // 47 (5)
+
+#define MAC7100_CRG_PLLCTL_VAL \
+ (MAC7100_CRG_CME|MAC7100_CRG_PLLON|MAC7100_CRG_AUTO| \
+ MAC7100_CRG_ACQ|MAC7100_CRG_SCME)
+#define MAC7100_CRG_CLKSEL_VAL (MAC7100_CRG_PLLSEL)
+
+ .macro _mac7100_setpll
+ ldr r2,=MAC7100_CRG_BASE
+ mov r3,#0
+ // Disable clock interrupts
+ strb r3,[r2,#(MAC7100_CRG_CRGINT-MAC7100_CRG_BASE)]
+ // DeSelect PLL clock
+ mov r3,#MAC7100_CRG_REFDV_VAL
+ // Reference Divider reg.
+ strb r3,[r2,#(MAC7100_CRG_REFDV-MAC7100_CRG_BASE)]
+ mov r3,#MAC7100_CRG_SYNR_VAL
+ // Synthesizer register
+ strb r3,[r2,#(MAC7100_CRG_SYNR-MAC7100_CRG_BASE)]
+ mov r3,#MAC7100_CRG_PLLCTL_VAL
+ // PLL control register
+ strb r3,[r2,#(MAC7100_CRG_PLLCTL-MAC7100_CRG_BASE)]
+ // Wait PLL lock <-----------------------------------<
+1: ldrb r3,[r2,#(MAC7100_CRG_CRGFLG-MAC7100_CRG_BASE)]
+ tst r3,#MAC7100_CRG_LOCK
+ bne 2f // PLL locked, GO ON ---------->>
+ b 1b // Still waiting for PLL lock ------------>
+2: mov r3,#MAC7100_CRG_CLKSEL_VAL // <<-------<<
+ // Select PLL clock
+ strb r3,[r2,#(MAC7100_CRG_CLKSEL-MAC7100_CRG_BASE)]
+ mov r3,#0
+ strb r3,[r2,#(MAC7100_CRG_BDMCTL-MAC7100_CRG_BASE)] // Set CRG BDMCTL
+ mov r3,r3
+ .endm
+
+// Memory re-mapping for single chip configuration
+// Re-map internal memory so that vectors can reside in RAM.
+// RAM base 0x00000000 (as well as 0x40000000)
+// Flash base 0x20000000
+ .macro _mac7100_remap_single_chip
+ _led 1
+ ldr r1, _mac7100_teleport
+ ldr r0, [r1] //AAMR Register
+
+ mvn r4, #0xf0000000 // 1.Copy telepoter to RAM
+ ldr r2, _mac7100_teleport+4 // TelePorter
+ ldr r3, _mac7100_teleport+8 // TelePort (TelePorter end)
+ and r2,r2,r4
+ and r3,r3,r4
+ mov r4, #0x40000000 // RAM address
+1: // Copy teleporter: // copying teleporter <---<
+ ldr r5,[r2],#4
+ str r5,[r4],#4
+ cmp r2,r3
+ bne 1b // Copy teleporter -------->
+ ldr r3,_mac7100_teleport+12
+ mov pc,#0x40000000 // 2.Jump to _mac7100_teleporter in RAM
+_mac7100_teleporter:
+ bic r0,r0,#0x000000ff // 3.Re-map memory
+ orr r0,r0,#0x8b // Flash -> 0x20000000
+ str r0,[r1] // RAM -> 0x00000000 and 0x40000000
+ mov pc,r3 // 4.Teleport back to Flash
+_mac7100_teleport:
+ .long MAC7100_MCM_AAMR
+ .long _mac7100_teleporter
+ .long _mac7100_teleport
+ .long _mac7100_teleport_return
+_mac7100_teleport_return:
+ .endm
+
+// End memory re-mapping for single chip configuration
+
+//-----------------------------------------------------------------------------
+// end of hal_var_setup.h
+#endif // CYGONCE_HAL_VAR_SETUP_H
diff --git a/ecos/packages/hal/arm/mac7100/var/current/include/mac7100_misc.h b/ecos/packages/hal/arm/mac7100/var/current/include/mac7100_misc.h
new file mode 100644
index 0000000..49f9489
--- /dev/null
+++ b/ecos/packages/hal/arm/mac7100/var/current/include/mac7100_misc.h
@@ -0,0 +1,64 @@
+#ifndef CYGONCE_HAL_MAC7100_MISC_H
+#define CYGONCE_HAL_MAC7100_MISC_H
+//=============================================================================
+//
+// mac7100_misc.h
+//
+// Variant specific functions
+//
+//=============================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 2006 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): Ilija Koco <ilijak@siva.com.mk>
+// Contributors:
+// Date: 2006-02-03
+// Purpose: MAC7100 specific hal functions
+// Description:
+// Usage: #include <cyg/hal/mac7100_misc.h>
+//
+//####DESCRIPTIONEND####
+//
+//=============================================================================
+
+// *********************************************************************
+//
+// ESCI Module
+//
+// *********************************************************************
+
+externC void hal_mac7100_esci_pins(cyg_uint32 i_esci);
+
+#endif // CYGONCE_HAL_MAC7100_MISC_H
+// end of mac7100_misc.h
diff --git a/ecos/packages/hal/arm/mac7100/var/current/include/plf_stub.h b/ecos/packages/hal/arm/mac7100/var/current/include/plf_stub.h
new file mode 100644
index 0000000..0f2663f
--- /dev/null
+++ b/ecos/packages/hal/arm/mac7100/var/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.
+//
+//=============================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jskov
+// Contributors:jskov, gthomas
+// Date: 2001-07-12
+// Purpose: Platform HAL stub support for MAC7100 based boards.
+// Usage: #include <cyg/hal/plf_stub.h>
+//
+//####DESCRIPTIONEND####
+//
+//=============================================================================
+
+#include <pkgconf/hal.h>
+#include CYGBLD_HAL_PLATFORM_H
+
+#ifdef CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS
+
+#include <cyg/infra/cyg_type.h> // CYG_UNUSED_PARAM
+
+#include <cyg/hal/arm_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.
+#define HAL_STUB_PLATFORM_INIT() CYG_EMPTY_STATEMENT
+
+#endif // ifdef CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS
+
+//-----------------------------------------------------------------------------
+#endif // CYGONCE_HAL_PLF_STUB_H
+// End of plf_stub.h
diff --git a/ecos/packages/hal/arm/mac7100/var/current/include/var_arch.h b/ecos/packages/hal/arm/mac7100/var/current/include/var_arch.h
new file mode 100644
index 0000000..b926e0f
--- /dev/null
+++ b/ecos/packages/hal/arm/mac7100/var/current/include/var_arch.h
@@ -0,0 +1,72 @@
+#ifndef CYGONCE_HAL_VAR_ARCH_H
+#define CYGONCE_HAL_VAR_ARCH_H
+//=============================================================================
+//
+// var_arch.h
+//
+// MAC7100 variant architecture overrides
+//
+//=============================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 2003 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): Ilija Koco <ilijak@siva.com.mk>
+// Contributors:
+// Date: 2006-02-03
+// Purpose: MAC7100 variant architecture overrides
+// Description:
+// Usage: #include <cyg/hal/hal_arch.h>
+//
+//####DESCRIPTIONEND####
+//
+//=============================================================================
+
+#include <pkgconf/hal.h>
+#include <cyg/hal/hal_io.h>
+
+//--------------------------------------------------------------------------
+// Idle thread code.
+// This macro is called in the idle thread loop, and gives the HAL the
+// chance to insert code. Typical idle thread behaviour might be to halt the
+// processor. These implementations halt the system core clock.
+
+#ifndef HAL_IDLE_THREAD_ACTION
+
+// No idle action
+
+#endif
+
+#endif // CYGONCE_HAL_VAR_ARCH_H
+//-----------------------------------------------------------------------------
+// end of var_arch.h
diff --git a/ecos/packages/hal/arm/mac7100/var/current/include/var_io.h b/ecos/packages/hal/arm/mac7100/var/current/include/var_io.h
new file mode 100644
index 0000000..2af750d
--- /dev/null
+++ b/ecos/packages/hal/arm/mac7100/var/current/include/var_io.h
@@ -0,0 +1,471 @@
+#ifndef CYGONCE_HAL_VAR_IO_H
+#define CYGONCE_HAL_VAR_IO_H
+//=============================================================================
+//
+// var_io.h
+//
+// Variant specific registers
+//
+//=============================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002, 2006 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): Ilija Koco <ilijak@siva.com.mk>
+// Contributors:
+// Date: 2006-02-03
+// Purpose: MAC7100 variant specific registers
+// Description: based on freescale's mac7100.h
+// Usage: #include <cyg/hal/var_io.h>
+//
+//####DESCRIPTIONEND####
+//
+//=============================================================================
+
+#include <cyg/hal/plf_io.h>
+
+#if !defined HAL_IO_MACROS_NO_ADDRESS_MUNGING
+#define HAL_IO_MACROS_NO_ADDRESS_MUNGING 1
+#endif // HAL_IO_MACROS_NO_ADDRESS_MUNGING
+
+// *********************************************************************
+//
+// INTC Module
+//
+// *********************************************************************
+
+// Interrupt Controller Definitions
+#define MAC7100_INTC_BASE (0xFC048000)
+
+#define MAC7100_IPRH_OFFSET (0x0000)
+#define MAC7100_IPRL_OFFSET (0x0004)
+#define MAC7100_IMRH_OFFSET (0x0008)
+#define MAC7100_IMRL_OFFSET (0x000C)
+#define MAC7100_INTFRCH_OFFSET (0x0010)
+#define MAC7100_INTFRCL_OFFSET (0x0014)
+#define MAC7100_ICONFIG_OFFSET (0x001B)
+#define MAC7100_SIMR_OFFSET (0x001C)
+#define MAC7100_CIMR_OFFSET (0x001D)
+#define MAC7100_CLMASK_OFFSET (0x001E) // CLMASK - Current Level Mask Register
+#define MAC7100_SLMASK_OFFSET (0x001F) // SLMASK - Saved Level Mask Register
+#define MAC7100_ICR_OFFSET (0x0040)
+#define MAC7100_IRQIACK_OFFSET (0x00EC)
+#define MAC7100_FIQIACK_OFFSET (0x00F0)
+
+#define MAC7100_INTC_IPRH(intc_base) (intc_base + MAC7100_IPRH_OFFSET)
+#define MAC7100_INTC_IPRL(intc_base) (intc_base + MAC7100_IPRL_OFFSET)
+#define MAC7100_INTC_IMRH(intc_base) (intc_base + MAC7100_IMRH_OFFSET)
+#define MAC7100_INTC_IMRL(intc_base) (intc_base + MAC7100_IMRL_OFFSET)
+#define MAC7100_INTC_INTFRC(intc_base) (intc_base + MAC7100_INTFRCH_OFFSET)
+#define MAC7100_INTC_INTFRCH(intc_base) (intc_base + MAC7100_INTFRCH_OFFSET)
+#define MAC7100_INTC_INTFRCL(intc_base) (intc_base + MAC7100_INTFRCL_OFFSET)
+#define MAC7100_INTC_ICONFIG(intc_base) (intc_base + MAC7100_ICONFIG_OFFSET)
+#define MAC7100_INTC_IRQIACK(intc_base) (intc_base + MAC7100_IRQIACK_OFFSET)
+#define MAC7100_INTC_FIQIACK(intc_base) (intc_base + MAC7100_FIQIACK_OFFSET)
+#define MAC7100_INTC_ICR(intc_base,src) (intc_base + MAC7100_ICR_OFFSET + src)
+#define MAC7100_INTC_SIMR(intc_base) (intc_base + MAC7100_SIMR_OFFSET)
+#define MAC7100_INTC_CIMR(intc_base) (intc_base + MAC7100_CIMR_OFFSET)
+#define MAC7100_INTC_CLMASK(intc_base) (intc_base + MAC7100_CLMASK_OFFSET)
+#define MAC7100_INTC_SLMASK(intc_base) (intc_base + MAC7100_SLMASK_OFFSET)
+
+#define MAC7100_INTC_INT_LEVEL(lev) (lev)
+
+// hardware interrupt source vector numbers
+#define MAC7100_EDMA0_IV (0)
+#define MAC7100_EDMA1_IV (1)
+#define MAC7100_EDMA2_IV (2)
+#define MAC7100_EDMA3_IV (3)
+#define MAC7100_EDMA4_IV (4)
+#define MAC7100_EDMA5_IV (5)
+#define MAC7100_EDMA6_IV (6)
+#define MAC7100_EDMA7_IV (7)
+#define MAC7100_EDMA8_IV (8)
+#define MAC7100_EDMA9_IV (9)
+#define MAC7100_EDMA10_IV (10)
+#define MAC7100_EDMA11_IV (11)
+#define MAC7100_EDMA12_IV (12)
+#define MAC7100_EDMA13_IV (13)
+#define MAC7100_EDMA14_IV (14)
+#define MAC7100_EDMA15_IV (15)
+#define MAC7100_EDMA_Error_IV (16)
+#define MAC7100_MCM_SWT_IV (17)
+#define MAC7100_CRG_IV (18)
+#define MAC7100_PIT1_IV (19)
+#define MAC7100_PIT2_IV (20)
+#define MAC7100_PIT3_IV (21)
+#define MAC7100_PIT4_RTI_IV (22)
+#define MAC7100_VREG_IV (23)
+#define MAC7100_CAN_A_MB_IV (24)
+#define MAC7100_CAN_A_MB14_IV (25)
+#define MAC7100_CAN_A_Error_IV (26)
+#define MAC7100_CAN_B_MB_IV (27)
+#define MAC7100_CAN_B_MB14_IV (28)
+#define MAC7100_CAN_B_Error_IV (29)
+#define MAC7100_CAN_C_MB_IV (30)
+#define MAC7100_CAN_C_MB14_IV (31)
+#define MAC7100_CAN_C_Error_IV (32)
+#define MAC7100_CAN_D_MB_IV (33)
+#define MAC7100_CAN_D_MB14_IV (34)
+#define MAC7100_CAN_D_Error_IV (35)
+#define MAC7100_I2C_IV (36)
+#define MAC7100_DSPI_A_IV (37)
+#define MAC7100_DSPI_B_IV (38)
+#define MAC7100_ESCI_A_IV (39)
+#define MAC7100_ESCI_B_IV (40)
+#define MAC7100_ESCI_C_IV (41)
+#define MAC7100_ESCI_D_IV (42)
+#define MAC7100_EMIOS0_IV (43)
+#define MAC7100_EMIOS1_IV (44)
+#define MAC7100_EMIOS2_IV (45)
+#define MAC7100_EMIOS3_IV (46)
+#define MAC7100_EMIOS4_IV (47)
+#define MAC7100_EMIOS5_IV (48)
+#define MAC7100_EMIOS6_IV (49)
+#define MAC7100_EMIOS7_IV (50)
+#define MAC7100_EMIOS8_IV (51)
+#define MAC7100_EMIOS9_IV (52)
+#define MAC7100_EMIOS10_IV (53)
+#define MAC7100_EMIOS11_IV (54)
+#define MAC7100_EMIOS12_IV (55)
+#define MAC7100_EMIOS13_IV (56)
+#define MAC7100_EMIOS14_IV (57)
+#define MAC7100_EMIOS15_IV (58)
+#define MAC7100_ATD_IV (59)
+#define MAC7100_CFM_IV (60)
+#define MAC7100_PIM_IV (61)
+#define MAC7100_IRQ_IV (62)
+#define MAC7100_XIRQ_IV (63)
+
+#define MAC7100_IRQ_SPURIOUS (-1)
+
+// *******************************************************************
+//
+// eSCI Module
+// Note: eSCI definitions are in cyg/devs/ser_esci.h
+// *******************************************************************
+#define CYGADDR_IO_SERIAL_FREESCALE_ESCI_A_BASE 0xFC0C4000
+#define CYGNUM_IO_SERIAL_FREESCALE_ESCI_A_INT_VECTOR MAC7100_ESCI_A_IV
+
+#define CYGADDR_IO_SERIAL_FREESCALE_ESCI_B_BASE 0xFC0C8000
+#define CYGNUM_IO_SERIAL_FREESCALE_ESCI_B_INT_VECTOR MAC7100_ESCI_B_IV
+
+#define CYGADDR_IO_SERIAL_FREESCALE_ESCI_C_BASE 0xFC0CC000
+#define CYGNUM_IO_SERIAL_FREESCALE_ESCI_C_INT_VECTOR MAC7100_ESCI_C_IV
+
+#define CYGADDR_IO_SERIAL_FREESCALE_ESCI_D_BASE 0xFC0D0000
+#define CYGNUM_IO_SERIAL_FREESCALE_ESCI_D_INT_VECTOR MAC7100_ESCI_D_IV
+
+#define CYGNUM_DEV_SER_FREESCALE_ESCI_SYSTEM_CLOCK \
+ (CYGNUM_HAL_ARM_MAC7100_CLOCK_SPEED/2)
+#define FREESCALE_ESCI_BAUD(baud_rate) \
+ ((CYGNUM_DEV_SER_FREESCALE_ESCI_SYSTEM_CLOCK)/(baud_rate*16))
+
+
+// *********************************************************************
+//
+// PIT Module
+//
+// *********************************************************************
+
+// Periodic Interrupt Timer Module Definitions
+
+#define MAC7100_PIT_BASE (0xFC08C000)
+#define MAC7100_TLVAL0_OFFSET (0x0000)
+#define MAC7100_TVAL0_OFFSET (0x0080)
+
+#define MAC7100_PIT_TLVAL(pit_base,chan) \
+ (pit_base + MAC7100_TLVAL0_OFFSET + (4 * chan))
+#define MAC7100_PIT_TVAL(pit_base,chan) \
+ (pit_base + MAC7100_TVAL0_OFFSET + (4 * chan))
+
+#define MAC7100_PITFLG_OFFSET (0x0100)
+#define MAC7100_PITINTEN_OFFSET (0x0104)
+#define MAC7100_PITINTSEL_OFFSET (0x0108)
+#define MAC7100_PITEN_OFFSET (0x010C)
+#define MAC7100_PITCTRL_OFFSET (0x0110)
+
+#define MAC7100_PIT_FLAG_RTIF (0x00000001)
+#define MAC7100_PIT_FLAG_TIF(chan) (0x00000001 << chan)
+#define MAC7100_PIT_INTSEL_ISEL(chan) (0x00000001 << chan)
+#define MAC7100_PIT_INTEN_RTIE (0x00000001)
+#define MAC7100_PIT_INTEN_TIE(chan) (0x00000001 << chan)
+
+#define MAC7100_PIT_EN_RTIEN (0x00000001)
+#define MAC7100_PIT_EN_PEN(chan) (0x00000001 << chan)
+
+#define MAC7100_PIT_FLG(pit_base) (pit_base + MAC7100_PITFLG_OFFSET)
+#define MAC7100_PIT_INTEN(pit_base) (pit_base + MAC7100_PITINTEN_OFFSET)
+#define MAC7100_PIT_INTSEL(pit_base) (pit_base + MAC7100_PITINTSEL_OFFSET)
+#define MAC7100_PIT_EN(pit_base) (pit_base + MAC7100_PITEN_OFFSET)
+
+#define MAC7100_PIT_CTRL(pit_base) (pit_base + MAC7100_PITCTRL_OFFSET)
+#define MAC7100_PIT_MDIS (0x01000000)
+
+
+// *********************************************************************
+//
+// PIM Module
+//
+// *********************************************************************/
+
+#define MAC7100_PIM_BASE (0xFC0E8000)
+
+#define MAC7100_PORT_A_OFFSET (0x000)
+#define MAC7100_PORT_B_OFFSET (0x040)
+#define MAC7100_PORT_C_OFFSET (0x080)
+#define MAC7100_PORT_D_OFFSET (0x0C0)
+#define MAC7100_PORT_E_OFFSET (0x100)
+#define MAC7100_PORT_F_OFFSET (0x140)
+#define MAC7100_PORT_G_OFFSET (0x180)
+#define MAC7100_PORT_H_OFFSET (0x1C0)
+#define MAC7100_PORT_I_OFFSET (0x200)
+
+// PORT Pin Configuration Registers
+#define MAC7100_PIM_CONFIG(port,pin) (MAC7100_PIM_BASE+port+((pin)*2))
+// Port Wide Interrupt Flag Register
+#define MAC7100_PIM_PORTIFR(port) (MAC7100_PIM_BASE+port+0x20)
+// Port Wide Data Read/Write Register
+#define MAC7100_PIM_PORTDATA(port) (MAC7100_PIM_BASE+port+0x24)
+// Port Wide Input Register
+#define MAC7100_PIM_PORTIR(port) (MAC7100_PIM_BASE+port+0x26)
+// Port Pin Data Registers
+#define MAC7100_PIM_DATA(port,pin) (MAC7100_PIM_BASE+port+0x28+pin)
+
+// Global Interrupt Status Register
+#define MAC7100_PIM_GLBLINT (MAC7100_PIM_BASE+0x03C0)
+// PIM Configuration Register
+#define MAC7100_PIM_PIMCONFIG (MAC7100_PIM_BASE+0x03C2)
+// TDI Pin Configuration Register
+#define MAC7100_PIM_CONFIG_TDI (MAC7100_PIM_BASE+0x03C4)
+// TDO Pin Configuration Register
+#define MAC7100_PIM_CONFIG_TDO (MAC7100_PIM_BASE+0x03C6)
+// TMS Pin Configuration Register
+#define MAC7100_PIM_CONFIG_TMS (MAC7100_PIM_BASE+0x03C8)
+// TCK Pin Configuration Register
+#define MAC7100_PIM_CONFIG_TCK (MAC7100_PIM_BASE+0x03CA)
+// TA Pin Configuration Register
+#define MAC7100_PIM_CONFIG_TA (MAC7100_PIM_BASE+0x03CC)
+
+// Bit definitions and macros for PIM_PA_CONFIGn
+// Pin Interrupt Flag Register
+#define MAC7100_PIM_PIFR (0x0001)
+// Pin Interrupt Enable Register
+#define MAC7100_PIM_PIER (0x0002)
+// Pull-up/down Enable Register
+#define MAC7100_PIM_PULL(x) (((x)&0x0003)<<2)
+// Reduced Drive Strength Register
+#define MAC7100_PIM_RDR (0x0010)
+// Open Drain Enable Register
+#define MAC7100_PIM_ODER (0x0020)
+// Data Direction Register
+#define MAC7100_PIM_DDR (0x0040)
+#define MAC7100_PIM_MODE (0x0080)
+#define MAC7100_PIM_MODE_PERIPHERAL MAC7100_PIM_MODE
+
+// Bit definitions and macros for PIM_GLBLINT
+// Interrupt Pending
+#define MAC7100_PIM_INT_PENDING(x) (((x)&0x01FF)<<0)
+
+// Bit definitions and macros for PIM_PIMCONFIG
+// Clock Enable for the EIM module
+#define MAC7100_PIM_PORTHSEL (0x0001)
+// Port H Select
+#define MAC7100_PIM_EIMCLKEN (0x0002)
+
+#define MAC7100_PIM_PORT32IR(port32ir) (MAC7100_PIM_BASE+0x03E0+port32ir)
+
+#define MAC7100_PIM_PORT32IR_AB (0x00)
+#define MAC7100_PIM_PORT32IR_CD (0x04)
+#define MAC7100_PIM_PORT32IR_EF (0x08)
+#define MAC7100_PIM_PORT32IR_GH (0x0C)
+#define MAC7100_PIM_PORT32IR_BC (0x10)
+#define MAC7100_PIM_PORT32IR_DE (0x14)
+#define MAC7100_PIM_PORT32IR_FG (0x18)
+#define MAC7100_PIM_PORT32IR_HI (0x1C)
+
+
+// ********************************************************************
+//
+// CRG Module
+//
+// ********************************************************************
+
+// Register read/write macros
+#define MAC7100_CRG_BASE 0xFC088000 // SYNR - Synthesizer Register
+#define MAC7100_CRG_SYNR 0xFC088000 // SYNR - Synthesizer Register
+#define MAC7100_CRG_REFDV 0xFC088001 // REFDV - Reference Divider Register
+#define MAC7100_CRG_CTFLG 0xFC088002 // CTFLG - Test Flags Register (reserved)
+#define MAC7100_CRG_CRGFLG 0xFC088003 // CRGFLG - Flags Register
+#define MAC7100_CRG_CRGINT 0xFC088004 // CRGINT - Interrupt Enable Register
+#define MAC7100_CRG_CLKSEL 0xFC088005 // CLKSEL - Clock Select Register
+#define MAC7100_CRG_PLLCTL 0xFC088006 // PLLCTL - PLL Control Register
+#define MAC7100_CRG_SDMCTL 0xFC088007 // SDMCTL - STOP/DOZE Control Register
+#define MAC7100_CRG_BDMCTL 0xFC088008 // BDMCTL - BDM Control Register
+#define MAC7100_CRG_FORBYP 0xFC088009 // FORBYP - Force and Bypass Test
+#define MAC7100_CRG_CTCTL 0xFC08800A // CTCTL - Test Control Register (resvd)
+
+// Bit definitions and macros for CRG_SYNR
+#define MAC7100_CRG_SYN(x) (((x)&0x3F)<<0) // Synthesizer Count value
+
+// Bit definitions and macros for CRG_REFDV
+#define MAC7100_CRG_REFD(x) (((x)&0x0F)<<0) //Reference divider
+
+// Bit definitions and macros for CRG_CRGFLG
+#define MAC7100_CRG_SCM (0x01) //Self Clock Mode Status
+#define MAC7100_CRG_SCMIF (0x02) //Self Clock Mode Interrupt Flag
+#define MAC7100_CRG_TRACK (0x04) //Track Status
+#define MAC7100_CRG_LOCK (0x08) //Lock Status
+#define MAC7100_CRG_LOCKIF (0x10) //PLL Lock Interrupt Flag
+#define MAC7100_CRG_LVRF (0x20) //Low Voltage Reset Flag
+#define MAC7100_CRG_PORF (0x40) //Power on Reset Flag
+#define MAC7100_CRG_STPEF (0x80) //Stop Entry Flag
+
+// Bit definitions and macros for CRG_CRGINT
+#define MAC7100_CRG_SCMIE (0x02) //Self Clock Mode Interrupt Enable
+#define MAC7100_CRG_LOCKIE (0x10) //Lock Interrupt Enable
+
+// Bit definitions and macros for CRG_CLKSEL
+#define MAC7100_CRG_SWTDOZE (0x01) //SWT stops in Doze Mode
+#define MAC7100_CRG_RTIDOZE (0x02) /* RTI stops in Doze Mode */
+#define MAC7100_CRG_PLLDOZE (0x08) /* PLL stops in Doze Mode */
+#define MAC7100_CRG_DOZE_ROA (0x10) /* Reduced Osc Amp in Doze Mode */
+#define MAC7100_CRG_PSTP (0x40) /* Pseudo Stop */
+#define MAC7100_CRG_PLLSEL (0x80) /* PLL Select */
+
+// Bit definitions and macros for CRG_PLLCTL
+#define MAC7100_CRG_SCME (0x01) //Self Clock Mode Enable
+#define MAC7100_CRG_PWE (0x02) //SWT Enable during Pseudo Stop
+#define MAC7100_CRG_PRE (0x04) //RTI Enable during Pseudo Stop
+#define MAC7100_CRG_FSTWKP (0x08) //Fast Wake-up from Full Stop Bit
+#define MAC7100_CRG_ACQ (0x10) //Acquisition
+#define MAC7100_CRG_AUTO (0x20) //Automatic Bandwidth Control
+#define MAC7100_CRG_PLLON (0x40) //Phase Lock Loop On
+#define MAC7100_CRG_CME (0x80) //Clock Monitor Enable
+
+// Bit definitions and macros for CRG_SDMCTL
+#define MAC7100_CRG_STOP (0x01) //STOP mode
+#define MAC7100_CRG_DOZE (0x02) //DOZE mode
+
+// Bit definitions and macros for CRG_BDMCTL
+#define MAC7100_CRG_RSBCK (0x40) //SWT & RTI stop in Active BDM mode
+
+
+// *********************************************************************
+//
+// MCM Module
+//
+// *********************************************************************
+
+// Register read/write macros
+#define MAC7100_MCM_PCT 0xFC040000 //
+#define MAC7100_MCM_REV 0xFC040002 //
+#define MAC7100_MCM_AMC 0xFC040004 //
+#define MAC7100_MCM_ASC 0xFC040006 //
+#define MAC7100_MCM_IMC 0xFC040008 //
+// MRSR - Miscellaneous Reset Status Register
+#define MAC7100_MCM_MRSR 0xFC04000F
+// MWCR - Miscellaneous Wakeup Control Register
+#define MAC7100_MCM_MWCR 0xFC040013
+// MSWTCR - Miscellaneous Software Watchdog Timer Control Register
+#define MAC7100_MCM_MSWTCR 0xFC040016
+// MSWTSR - Miscellaneous Software Watchdog Timer Service Register
+#define MAC7100_MCM_MSWTSR 0xFC04001B
+// MSWTIR - Miscellaneous Software Watchdog Timer Interrupt Register
+#define MAC7100_MCM_MSWTIR 0xFC04001F
+// AAMR - AXBS Address Map Register
+#define MAC7100_MCM_AAMR 0xFC040020
+// CFADR - Core Fault Address Register
+#define MAC7100_MCM_CFADR 0xFC040070
+// CFLOC - Core Fault Location Register
+#define MAC7100_MCM_CFLOC 0xFC040076
+// CFATR - Core Fault Attributes Register
+#define MAC7100_MCM_CFATR 0xFC040077
+// CFDTR - Core Fault Data Register
+#define MAC7100_MCM_CFDTR 0xFC04007C
+
+// Bit definitions and macros for MCM_AMC
+
+// AXBS Master Configuration
+#define MAC7100_MCM_AXMC(x) (((x)&0x00FF)<<0)
+
+// Bit definitions and macros for MCM_ASC
+// AXBS Slave Configuration
+#define MAC7100_MCM_AXSC(x) (((x)&0x00FF)<<0)
+#define MAC7100_MCM_DP64 (0x8000) // 64-bit Datapath
+
+// Bit definitions and macros for MCM_MRSR
+#define MAC7100_MCM_SWTR (0x20) // Watchdog Timer Reset
+#define MAC7100_MCM_DIR (0x40) // Device Input Reset
+#define MAC7100_MCM_POR (0x80) // Power-On Reset
+
+// Bit definitions and macros for MCM_MWCR
+#define MAC7100_MCM_PRILVL(x) (((x)&0x0F)<<0) // Interrupt Priority Level
+#define MAC7100_MCM_ENBWCR (0x80) // Enable WCR
+
+// Bit definitions and macros for MCM_MSWTCR
+#define MAC7100_MCM_SWT(x) (((x)&0x001F)<<0) // Watchdog Time-Out Period
+#define MAC7100_MCM_SWRI(x) (((x)&0x0003)<<5) // Watchdog Reset/Interrupt
+#define MAC7100_MCM_SWE (0x0080) // Watchdog Enable
+#define MAC7100_MCM_SWRWH (0x0100) // Watchdog Run While Halted
+#define MAC7100_MCM_SWCIN16 (0x0200) // Force SWT CarryIn16
+#define MAC7100_MCM_RO (0x8000) // Read-Only
+
+// Bit definitions and macros for MCM_MSWTIR
+#define MAC7100_MCM_SWTIC (0x01) // Watchdog Interrupt Flag
+
+// Bit definitions and macros for MCM_AAMR
+
+
+// Address 0 Slave Number
+#define MAC7100_MCM_ASLAVE(adr_reg,sl_n) (((sl_n)&0x00000007)<<(adr_reg*4)
+// Enable Address Region 0
+#define MAC7100_MCM_EA(adr_reg) (0x00000008<<(adr_reg*4))
+
+// Bit definitions and macros for MCM_CFLOC
+#define MAC7100_MCM_LOCALERR (0x80) // Bus Error Indicator
+
+// Bit definitions and macros for MCM_CFATR
+// Protection fault type
+#define MAC7100_MCM_PROTECTION(x) (((x)&0x0F)<<0)
+// 8-16-32-64-bit core access
+#define MAC7100_MCM_SIZE(x) (((x)&0x07)<<4)
+// Core read/write access
+#define MAC7100_MCM_WRITE (0x80)
+
+//=============================================================================
+// FIQ interrupt vector which is shared by all HAL variants.
+
+#define CYGNUM_HAL_INTERRUPT_FIQ 0
+#endif // CYGONCE_HAL_VAR_IO_H
+//-----------------------------------------------------------------------------
+// end of var_io.h
diff --git a/ecos/packages/hal/arm/mac7100/var/current/src/flash_security.S b/ecos/packages/hal/arm/mac7100/var/current/src/flash_security.S
new file mode 100644
index 0000000..f84ff2a
--- /dev/null
+++ b/ecos/packages/hal/arm/mac7100/var/current/src/flash_security.S
@@ -0,0 +1,78 @@
+/*==========================================================================
+//
+// flash_security.S
+//
+// MAC7100 Flash security area
+//
+//==========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 2006 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//==========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): Ilija Koco <ilijak@siva.com.mk>
+// Contributors:
+// Date: 2006-04-11
+// Purpose: HAL board support
+// Description: MAC7100 Flash security area.
+//
+//####DESCRIPTIONEND####
+//
+//========================================================================*/
+
+/////////////////////////////////////////////////////////////////////////////
+// This section contains Common Flash Module (CFM) configuration field
+// For detail description see Common Flash Module (CFM) chapter
+// @ MAC7100 Microcontroller Familly Reference Manual
+//
+// Deafault factorry setting:
+// 0xffffffff for All words except Flash Security Word
+// 0xfffffffe for Flash Security Word
+/////////////////////////////////////////////////////////////////////////////
+
+ .section ".mac7100_flash_security", "a"
+ .code 32
+ .global VAE_MAC7100_FlashSecurity
+VAE_MAC7100_FlashSecurity:
+ .long 0xffffffff // Backdoor Comparison Key bit 63-32
+ .long 0xffffffff // Backdoor Comparison key bit 31-0
+ .long 0xffffffff // Program FLASH protection Bytes
+ .long 0xffffffff // Program FLASH SUPV Access Bytes
+ .long 0xffffffff // Program FLASH DATA Access Bytes
+ .long 0xfffffffe // Flash Security Word
+ .long 0xffffffff // Data FLASH protection, SUPV access, DATA access
+
+ .long 0xe0f00420 // Just a placeholder (round to 0x420)
+ .end
+
+//--------------------------------------------------------------------------
+// EOF flash_security.S
diff --git a/ecos/packages/hal/arm/mac7100/var/current/src/hal_diag.c b/ecos/packages/hal/arm/mac7100/var/current/src/hal_diag.c
new file mode 100644
index 0000000..5c03ef3
--- /dev/null
+++ b/ecos/packages/hal/arm/mac7100/var/current/src/hal_diag.c
@@ -0,0 +1,387 @@
+/*=============================================================================
+//
+// hal_diag.c
+//
+// HAL diagnostic output code
+//
+//=============================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002, 2009 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): Ilija Koco <ilijak@siva.com.mk>
+// Contributors:
+// Date: 2006-04-15
+// Purpose: HAL diagnostic output
+// Description: Implementations of HAL diagnostic output support.
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+ */
+
+#include <pkgconf/hal.h>
+#include CYGBLD_HAL_PLATFORM_H
+
+#include <cyg/infra/cyg_type.h> // base types
+
+#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
+#include <cyg/hal/hal_diag.h>
+
+#include <cyg/hal/var_io.h> //
+#include <cyg/devs/ser_esci.h> // ESCI registers
+
+//-----------------------------------------------------------------------------
+typedef struct {
+ void *base;
+ cyg_int32 msec_timeout;
+ int isr_vector;
+ int isr_level;
+ int baud_rate;
+} channel_data_t;
+
+
+
+//-----------------------------------------------------------------------------
+
+void
+cyg_hal_plf_serial_putc(void *__ch_data, char c);
+
+
+static void
+cyg_hal_plf_serial_init_channel(void* __ch_data)
+{
+
+ channel_data_t* chan = (channel_data_t*)__ch_data;
+ cyg_uint8 *esci_base = chan->base;
+
+
+ // Reset device
+ // 8-1-no parity.
+
+ HAL_WRITE_UINT8(FREESCALE_ESCI_CR3(esci_base), 0);
+ HAL_WRITE_UINT16(FREESCALE_ESCI_LINCTRL(esci_base), 0);
+ HAL_WRITE_UINT16(FREESCALE_ESCI_BD(esci_base),
+ FREESCALE_ESCI_BAUD(chan->baud_rate));
+
+ // Enable RX and TX
+ HAL_WRITE_UINT16(FREESCALE_ESCI_CR12(esci_base), (FREESCALE_ESCI_CR12_TE |
+ FREESCALE_ESCI_CR12_RE));
+}
+
+void
+cyg_hal_plf_serial_putc(void* __ch_data, char ch_out)
+{
+ channel_data_t* chan = (channel_data_t*)__ch_data;
+ CYG_ADDRESS esci_base = (CYG_ADDRESS) chan->base;
+ cyg_uint16 esci_sr;
+
+ CYGARC_HAL_SAVE_GP();
+
+ do {
+ HAL_READ_UINT16(FREESCALE_ESCI_SR(esci_base), esci_sr);
+ } while (!(esci_sr & FREESCALE_ESCI_SR_TDRE));
+
+ HAL_WRITE_UINT16(FREESCALE_ESCI_SR(esci_base), FREESCALE_ESCI_SR_TDRE);
+ HAL_WRITE_UINT8(FREESCALE_ESCI_DRL(esci_base), ch_out);
+
+ CYGARC_HAL_RESTORE_GP();
+}
+
+static cyg_bool
+cyg_hal_plf_serial_getc_nonblock(void* __ch_data, cyg_uint8* p_ch_in)
+{
+ channel_data_t* chan = (channel_data_t*)__ch_data;
+ CYG_ADDRESS esci_base = (CYG_ADDRESS) chan->base;
+ cyg_uint16 esci_sr;
+ cyg_uint8 ch_in;
+
+ HAL_READ_UINT16(FREESCALE_ESCI_SR(esci_base), esci_sr);
+ if (!(esci_sr & FREESCALE_ESCI_SR_RDRF))
+ return false;
+
+ HAL_READ_UINT8(FREESCALE_ESCI_DRL(esci_base), ch_in);
+ HAL_WRITE_UINT16(FREESCALE_ESCI_SR(esci_base), FREESCALE_ESCI_SR_RDRF);
+ *p_ch_in = ch_in;
+
+ 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;
+}
+
+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* p_ch_in)
+{
+ int delay_count;
+ cyg_bool res;
+ CYGARC_HAL_SAVE_GP();
+
+ // delay in .1 ms steps
+ delay_count = ((channel_data_t*)__ch_data)->msec_timeout * 10;
+
+ for(;;) {
+ res = cyg_hal_plf_serial_getc_nonblock(__ch_data, p_ch_in);
+ 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* base = ((channel_data_t*)__ch_data)->base;
+ cyg_uint16 ser_port_reg;
+ int ret = 0;
+ va_list ap;
+
+ CYGARC_HAL_SAVE_GP();
+ va_start(ap, __func);
+
+ switch (__func) {
+ case __COMMCTL_GETBAUD:
+ ret = chan->baud_rate;
+ break;
+ case __COMMCTL_SETBAUD:
+ chan->baud_rate = va_arg(ap, cyg_int32);
+ // Should we verify this value here?
+ cyg_hal_plf_serial_init_channel(chan);
+ ret = 0;
+ break;
+ case __COMMCTL_IRQ_ENABLE:
+ irq_state = 1;
+ HAL_INTERRUPT_ACKNOWLEDGE(chan->isr_vector);
+ HAL_INTERRUPT_UNMASK(chan->isr_vector);
+
+ HAL_READ_UINT16(FREESCALE_ESCI_CR12(base), ser_port_reg);
+ ser_port_reg |= FREESCALE_ESCI_CR12_RIE;
+ HAL_WRITE_UINT16(FREESCALE_ESCI_CR12(base), ser_port_reg);
+
+ break;
+ case __COMMCTL_IRQ_DISABLE:
+ ret = irq_state;
+ irq_state = 0;
+ HAL_INTERRUPT_MASK(chan->isr_vector);
+
+ HAL_READ_UINT16(FREESCALE_ESCI_CR12(base), ser_port_reg);
+ ser_port_reg &= ~(cyg_uint16)FREESCALE_ESCI_CR12_RIE;
+ HAL_WRITE_UINT16(FREESCALE_ESCI_CR12(base), ser_port_reg);
+ break;
+ case __COMMCTL_DBG_ISR_VECTOR:
+ ret = chan->isr_vector;
+ break;
+ case __COMMCTL_SET_TIMEOUT:
+ ret = chan->msec_timeout;
+ chan->msec_timeout = va_arg(ap, cyg_uint32);
+ default:
+ break;
+ }
+
+ va_end(ap);
+ CYGARC_HAL_RESTORE_GP();
+ return ret;
+}
+
+static int
+cyg_hal_plf_serial_isr(void *__ch_data, int* __ctrlc,
+ CYG_ADDRWORD __vector, CYG_ADDRWORD __data)
+{
+
+ channel_data_t* chan = (channel_data_t*)__ch_data;
+ CYG_ADDRESS esci_base = (CYG_ADDRESS) chan->base;
+ cyg_uint16 esci_sr;
+ int res = 0;
+ cyg_uint8 ch_in;
+ CYGARC_HAL_SAVE_GP();
+
+ *__ctrlc = 0;
+
+ HAL_READ_UINT16(FREESCALE_ESCI_SR(esci_base), esci_sr);
+ if (esci_sr & FREESCALE_ESCI_SR_RDRF){
+ HAL_READ_UINT8(FREESCALE_ESCI_DRL(esci_base), ch_in);
+ if( cyg_hal_is_break( (char *) &ch_in , 1 ) )
+ *__ctrlc = 1;
+
+ res = CYG_ISR_HANDLED;
+ HAL_WRITE_UINT16(FREESCALE_ESCI_SR(esci_base), FREESCALE_ESCI_SR_RDRF);
+ }
+
+ HAL_INTERRUPT_ACKNOWLEDGE(chan->isr_vector);
+
+ CYGARC_HAL_RESTORE_GP();
+ return res;
+}
+
+static channel_data_t mac7100_ser_channels[4] = {
+ { (cyg_uint16*)FREESCALE_ESCI_A_BASE, 1000, MAC7100_ESCI_A_IV,
+ MAC7100_ESCI_A_LEVEL, CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_BAUD},
+ { (cyg_uint16*)FREESCALE_ESCI_B_BASE, 1000, MAC7100_ESCI_B_IV,
+ MAC7100_ESCI_B_LEVEL, CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_BAUD},
+ { (cyg_uint16*)FREESCALE_ESCI_C_BASE, 1000, MAC7100_ESCI_C_IV,
+ MAC7100_ESCI_C_LEVEL, CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_BAUD},
+ { (cyg_uint16*)FREESCALE_ESCI_D_BASE, 1000, MAC7100_ESCI_D_IV,
+ MAC7100_ESCI_D_LEVEL, CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_BAUD},
+};
+
+static void
+cyg_hal_plf_serial_init(void)
+{
+ hal_virtual_comm_table_t* comm;
+ int cur;
+
+ cur = CYGACC_CALL_IF_SET_CONSOLE_COMM(CYGNUM_CALL_IF_SET_COMM_ID_QUERY_CURRENT);
+
+ // Init channels
+ cyg_hal_plf_serial_init_channel(&mac7100_ser_channels[0]);
+#if CYGNUM_HAL_VIRTUAL_VECTOR_COMM_CHANNELS > 1
+ cyg_hal_plf_serial_init_channel(&mac7100_ser_channels[1]);
+#endif
+#if CYGNUM_HAL_VIRTUAL_VECTOR_COMM_CHANNELS > 2
+ cyg_hal_plf_serial_init_channel(&mac7100_ser_channels[2]);
+#endif
+#if CYGNUM_HAL_VIRTUAL_VECTOR_COMM_CHANNELS > 3
+ cyg_hal_plf_serial_init_channel(&mac7100_ser_channels[3]);
+#endif
+ // 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, &mac7100_ser_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);
+
+#if CYGNUM_HAL_VIRTUAL_VECTOR_COMM_CHANNELS > 1
+ // Set channel 1
+ CYGACC_CALL_IF_SET_CONSOLE_COMM(1);
+ comm = CYGACC_CALL_IF_CONSOLE_PROCS();
+ CYGACC_COMM_IF_CH_DATA_SET(*comm, &mac7100_ser_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);
+#endif
+#if CYGNUM_HAL_VIRTUAL_VECTOR_COMM_CHANNELS > 2
+ CYGACC_CALL_IF_SET_CONSOLE_COMM(2);
+ comm = CYGACC_CALL_IF_CONSOLE_PROCS();
+ CYGACC_COMM_IF_CH_DATA_SET(*comm, &mac7100_ser_channels[2]);
+ 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);
+#endif
+#if CYGNUM_HAL_VIRTUAL_VECTOR_COMM_CHANNELS > 3
+ CYGACC_CALL_IF_SET_CONSOLE_COMM(3);
+ comm = CYGACC_CALL_IF_CONSOLE_PROCS();
+ CYGACC_COMM_IF_CH_DATA_SET(*comm, &mac7100_ser_channels[3]);
+ 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);
+#endif
+
+ // 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();
+}
+
+//-----------------------------------------------------------------------------
+// End of hal_diag.c
diff --git a/ecos/packages/hal/arm/mac7100/var/current/src/mac7100_misc.c b/ecos/packages/hal/arm/mac7100/var/current/src/mac7100_misc.c
new file mode 100644
index 0000000..f22dcb0
--- /dev/null
+++ b/ecos/packages/hal/arm/mac7100/var/current/src/mac7100_misc.c
@@ -0,0 +1,341 @@
+/*==========================================================================
+//
+// mac7100_misc.c
+//
+// HAL misc board support code for Freescale MAC7100
+//
+//==========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2006 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//==========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): Ilija Koco <ilijak@siva.com.mk>
+// Contributors:
+// Date: 2006-04-12
+// Purpose: HAL board support
+// Description: Implementations of HAL board interfaces
+//
+//####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_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> // necessary?
+#include <cyg/hal/hal_cache.h>
+#include <cyg/hal/hal_if.h> // calling interface
+#include <cyg/hal/hal_misc.h> // helper functions
+#ifdef CYGDBG_HAL_DEBUG_GDB_BREAK_SUPPORT
+#include <cyg/hal/drv_api.h> // HAL ISR support
+#endif
+#include <cyg/hal/var_io.h> // platform registers
+#include <cyg/devs/ser_esci.h> // ESCI registers
+#include <pkgconf/io_serial_freescale_esci.h>
+
+// -------------------------------------------------------------------------
+// Clock support
+
+static cyg_uint32 _period;
+
+void hal_clock_initialize(cyg_uint32 period)
+{
+ CYG_ADDRESS pit_base = MAC7100_PIT_BASE;
+ cyg_uint32 pit_en;
+
+ CYG_ASSERT(period < 0x10000, "Invalid clock period");
+
+ // Disable counter
+ HAL_READ_UINT32(MAC7100_PIT_EN(pit_base), pit_en);
+ pit_en &= ~MAC7100_PIT_EN_PEN(CYGNUM_PIT_CHAN_CLOCK);
+ HAL_WRITE_UINT32(MAC7100_PIT_EN(pit_base), pit_en);
+
+ // Set registers
+ _period=period;
+ HAL_WRITE_UINT32(MAC7100_PIT_TLVAL(pit_base, CYGNUM_PIT_CHAN_CLOCK),
+ period);
+
+ // Start timer
+ pit_en |= MAC7100_PIT_EN_PEN(CYGNUM_PIT_CHAN_CLOCK);
+ HAL_WRITE_UINT32(MAC7100_PIT_EN(pit_base), pit_en);
+
+ // Enable timer interrupt
+ HAL_READ_UINT32(MAC7100_PIT_INTEN(pit_base), pit_en);
+ pit_en |= MAC7100_PIT_EN_PEN(CYGNUM_PIT_CHAN_CLOCK);
+ HAL_WRITE_UINT32(MAC7100_PIT_INTEN(pit_base), pit_en);
+
+ HAL_READ_UINT32(MAC7100_PIT_INTSEL(pit_base), pit_en);
+ pit_en |= MAC7100_PIT_EN_PEN(CYGNUM_PIT_CHAN_CLOCK);
+ HAL_WRITE_UINT32(MAC7100_PIT_INTSEL(pit_base), pit_en);
+}
+
+void hal_clock_reset(cyg_uint32 vector, cyg_uint32 period)
+{
+ HAL_WRITE_UINT32(MAC7100_PIT_FLG(MAC7100_PIT_BASE),
+ MAC7100_PIT_FLAG_TIF(CYGNUM_PIT_CHAN_CLOCK));
+}
+
+
+void hal_clock_read(cyg_uint32 *pvalue)
+{
+ cyg_uint32 val;
+
+ HAL_READ_UINT32(MAC7100_PIT_TLVAL(MAC7100_PIT_BASE,CYGNUM_PIT_CHAN_CLOCK),
+ val);
+ *pvalue = _period-val;
+}
+
+// -------------------------------------------------------------------------
+//
+// Delay for some number of micro-seconds
+//
+
+#if CYGNUM_PIT_CHAN_US!=0
+#define CYGNUM_1_US (CYGNUM_HAL_ARM_MAC7100_CLOCK_SPEED/2000000)
+#else
+#define CYGNUM_1_US (CYGNUM_HAL_ARM_MAC7100_F_OSC/1000000)
+#endif
+
+void hal_delay_us(cyg_int32 usecs)
+{
+ CYG_ADDRESS pit_base = MAC7100_PIT_BASE;
+ cyg_uint32 pit_en;
+
+
+ // Clear flag
+ HAL_WRITE_UINT32(MAC7100_PIT_FLG(pit_base),
+ MAC7100_PIT_FLAG_TIF(CYGNUM_PIT_CHAN_US));
+
+ // Set timer
+ HAL_WRITE_UINT32(MAC7100_PIT_TLVAL(pit_base, CYGNUM_PIT_CHAN_US),
+ usecs*CYGNUM_1_US-1);
+ HAL_READ_UINT32(MAC7100_PIT_EN(pit_base), pit_en);
+ pit_en |= MAC7100_PIT_EN_PEN(CYGNUM_PIT_CHAN_US);
+ HAL_WRITE_UINT32(MAC7100_PIT_EN(pit_base), pit_en);
+
+ do {
+ HAL_READ_UINT32(MAC7100_PIT_FLG(pit_base), pit_en);
+ }while (!(pit_en & MAC7100_PIT_FLAG_TIF(CYGNUM_PIT_CHAN_US)));
+
+ // Disable counter
+ HAL_READ_UINT32(MAC7100_PIT_EN(pit_base), pit_en);
+ pit_en &= ~MAC7100_PIT_EN_PEN(CYGNUM_PIT_CHAN_US);
+ HAL_WRITE_UINT32(MAC7100_PIT_EN(pit_base), pit_en);
+}
+
+
+// -------------------------------------------------------------------------
+// Hardware init
+
+void hal_intc_init(void);
+void hal_pit_init(void);
+static void hal_mac7100_esci_pins(cyg_uint32);
+void hal_hardware_init(void)
+{
+ // Reset all interrupts
+ //
+
+ // Flush internal priority level stack
+ //
+
+ // Set up eCos/ROM interfaces
+#if (defined CYGPKG_IO_SERIAL_FREESCALE_ESCI_A) || \
+ (CYGNUM_HAL_VIRTUAL_VECTOR_COMM_CHANNELS > 0)
+ hal_mac7100_esci_pins(FREESCALE_ESCI_A_I);
+#endif
+#if (defined CYGPKG_IO_SERIAL_FREESCALE_ESCI_B) || \
+ (CYGNUM_HAL_VIRTUAL_VECTOR_COMM_CHANNELS > 1)
+ hal_mac7100_esci_pins(FREESCALE_ESCI_B_I);
+#endif
+#if defined CYGPKG_IO_SERIAL_FREESCALE_ESCI_C
+ hal_mac7100_esci_pins(FREESCALE_ESCI_C_I);
+#endif
+#if defined CYGPKG_IO_SERIAL_FREESCALE_ESCI_D
+ hal_mac7100_esci_pins(FREESCALE_ESCI_D_I);
+#endif
+
+ hal_intc_init(); // Initialize interrupt controller
+ hal_pit_init(); // Initilaize CLOCK for channels 1..10
+ hal_if_init();
+}
+
+void hal_pit_init(void)
+{
+ cyg_uint32 pit_ctrl;
+
+ CYG_ADDRESS pit_base=MAC7100_PIT_BASE;
+
+ HAL_READ_UINT32(MAC7100_PIT_CTRL(pit_base), pit_ctrl);
+ pit_ctrl &= ~MAC7100_PIT_MDIS;
+ HAL_WRITE_UINT32(MAC7100_PIT_CTRL(pit_base), pit_ctrl);
+}
+
+
+// -------------------------------------------------------------------------
+// This routine is called to respond to a hardware interrupt (IRQ). It
+// should interrogate the hardware and return the IRQ vector number.
+
+typedef struct ClSlMask_T {
+ cyg_uint8 ClMask;
+ cyg_uint8 SlMask;
+} ClSlMask_T;
+
+static ClSlMask_T ClSlMasks[CYGNUM_HAL_ISR_COUNT];
+
+void hal_intc_init(void)
+{
+ cyg_uint8 iconfig;
+ CYG_ADDRESS intc_base=MAC7100_INTC_BASE;
+
+ iconfig = (CYGHWR_HAL_ARM_MAC7100_INTC_FIQDEF |
+ CYGHWR_HAL_ARM_MAC7100_INTC_EMASK);
+ HAL_WRITE_UINT8(MAC7100_INTC_ICONFIG(intc_base), iconfig);
+}
+
+int hal_IRQ_handler(void)
+{
+ CYG_ADDRESS intc_base=MAC7100_INTC_BASE;
+ cyg_int8 irq_num;
+ ClSlMask_T clslmask;
+
+ HAL_READ_UINT8(MAC7100_INTC_CLMASK(intc_base), clslmask.ClMask);
+ HAL_READ_UINT8(MAC7100_INTC_SLMASK(intc_base), clslmask.SlMask);
+#ifdef CYGHWR_HAL_ARM_MAC7100_FIQ
+ HAL_READ_UINT8(MAC7100_FIQIACK(intc_base), irq_num);
+ if((irq_num-=CYGNUM_HAL_ISR_COUNT)<0){
+#endif //CYGHWR_HAL_ARM_MAC7100_FIQ
+ HAL_READ_UINT8(MAC7100_INTC_IRQIACK(intc_base), irq_num);
+ if((irq_num-=CYGNUM_HAL_ISR_COUNT)<0){
+ irq_num=CYGNUM_HAL_INTERRUPT_NONE;
+ }else{
+ ClSlMasks[irq_num]=clslmask;
+ }
+ return irq_num;
+#ifdef CYGHWR_HAL_ARM_MAC7100_FIQ
+ }
+#endif // CYGHWR_HAL_ARM_MAC7100_FIQ
+}
+
+// -------------------------------------------------------------------------
+// Interrupt control
+//
+
+void hal_interrupt_mask(int vector)
+{
+ CYG_ASSERT(vector <= CYGNUM_HAL_ISR_MAX &&
+ vector >= CYGNUM_HAL_ISR_MIN , "Invalid vector");
+
+ HAL_WRITE_UINT8(MAC7100_INTC_SIMR(MAC7100_INTC_BASE), vector);
+}
+
+void hal_interrupt_unmask(int vector)
+{
+ CYG_ASSERT(vector <= CYGNUM_HAL_ISR_MAX &&
+ vector >= CYGNUM_HAL_ISR_MIN , "Invalid vector");
+
+ HAL_WRITE_UINT8(MAC7100_INTC_CIMR(MAC7100_INTC_BASE), vector);
+}
+
+void hal_interrupt_acknowledge(int vector)
+{
+ // ?? No check for valid vector here! Spurious interrupts
+ // ?? must be acknowledged, too.
+
+ if(vector>=0)
+ HAL_WRITE_UINT8(MAC7100_INTC_CLMASK(MAC7100_INTC_BASE),
+ ClSlMasks[vector].ClMask);
+}
+
+void hal_interrupt_configure(int vector, int level, int up)
+{
+ // TO DO
+}
+
+void hal_interrupt_set_level(int vector, int level)
+{
+ CYG_ASSERT(vector <= CYGNUM_HAL_ISR_MAX &&
+ vector >= CYGNUM_HAL_ISR_MIN , "Invalid vector");
+ CYG_ASSERT(level >=0 level <= 15, "Invalid level");
+
+ HAL_WRITE_UINT8(MAC7100_INTC_ICR(MAC7100_INTC_BASE,vector),
+ MAC7100_INTC_INT_LEVEL(level));
+}
+
+void hal_show_IRQ(int vector, int data, int handler)
+{
+// UNDEFINED(__FUNCTION__); // FIXME
+}
+
+
+void hal_mac7100_reset_cpu(void)
+{
+ // TO DO use watchdog to reset cpu
+}
+
+// Set ESCI channel pins in perpheral mode
+
+void
+hal_mac7100_esci_pins(cyg_uint32 i_esci){
+ cyg_uint16 *p_pim_config=0;
+
+ switch(i_esci){
+ case FREESCALE_ESCI_A_I:
+ p_pim_config=
+ (cyg_uint16 *)MAC7100_PIM_CONFIG(MAC7100_PORT_G_OFFSET,2);
+ break;
+ case FREESCALE_ESCI_B_I:
+ p_pim_config=(cyg_uint16 *)MAC7100_PIM_CONFIG(MAC7100_PORT_G_OFFSET,0);
+ break;
+ case FREESCALE_ESCI_C_I:
+ p_pim_config=
+ (cyg_uint16 *)MAC7100_PIM_CONFIG(MAC7100_PORT_G_OFFSET,14);
+ break;
+ case FREESCALE_ESCI_D_I:
+ p_pim_config=
+ (cyg_uint16 *)MAC7100_PIM_CONFIG(MAC7100_PORT_G_OFFSET,15);
+ break;
+ }
+ HAL_WRITE_UINT16(p_pim_config++, MAC7100_PIM_MODE_PERIPHERAL);
+ HAL_WRITE_UINT16(p_pim_config, MAC7100_PIM_MODE_PERIPHERAL);
+}
+
+
+//--------------------------------------------------------------------------
+// EOF mac7100_misc.c
diff --git a/ecos/packages/hal/arm/pid/current/ChangeLog b/ecos/packages/hal/arm/pid/current/ChangeLog
new file mode 100644
index 0000000..89023e6
--- /dev/null
+++ b/ecos/packages/hal/arm/pid/current/ChangeLog
@@ -0,0 +1,873 @@
+2009-01-31 Bart Veer <bartv@ecoscentric.com>
+
+ * cdl/hal_arm_pid.cdl: update compiler flags for gcc 4.x
+
+2009-01-24 Bart Veer <bartv@ecoscentric.com>
+
+ * cdl/hal_arm_pid.cdl: switch from arm-elf-gcc to
+ arm-eabi-gcc.
+
+2004-04-22 Jani Monoses <jani@iv.ro>
+
+ * cdl/hal_arm_pid.cdl :
+ Invoke tail with stricter syntax that works in latest coreutils.
+
+2003-12-05 Andrew Lunn <andrew.lunn@ascom.ch>
+
+ * include/hal_diag.h: hal_delay_us() is a C function.
+
+2003-07-18 Nick Garnett <nickg@balti.calivar.com>
+
+ * cdl/hal_arm_pid.cdl:
+ Changed values for CYGNUM_HAL_RTC_NUMERATOR,
+ CYGNUM_HAL_RTC_DENOMINATOR and CYGNUM_HAL_RTC_PERIOD to
+ "default_value" from "calculated". This makes it easier
+ to change these values globally.
+
+2003-04-30 Jonathan Larmour <jifl@eCosCentric.com>
+
+ * cdl/hal_arm_pid.cdl: Make CYGBLD_GLOBAL_LDFLAGS depend on
+ CYGBLD_ARM_ENABLE_THUMB_INTERWORK instead of also
+ CYGSEM_HAL_ROM_MONITOR, redundantly.
+
+2003-04-11 Bart Veer <bartv@ecoscentric.com>
+
+ * cdl/hal_arm_pid.cdl: building for thumb now involves arm-elf-gcc
+ -mthumb, not thumb-elf-gcc
+
+2003-02-05 Nick Garnett <nickg@calivar.com>
+
+ * include/plf_io.h (CYGARC_PHYSICAL_ADDRESS): Added this
+ definition to keep redboot_linux_exec.c happy.
+
+2002-05-23 Jesper Skov <jskov@redhat.com>
+
+ * cdl/hal_arm_pid.cdl: Don't run cache tests.
+
+2002-05-13 Jesper Skov <jskov@redhat.com>
+
+ * cdl/hal_arm_pid.cdl: Removed implemntation of
+ CYGINT_HAL_VIRTUAL_VECTOR_SUPPORT_NOT_GUARANTEED.
+
+2002-05-07 Gary Thomas <gthomas@redhat.com>
+
+ * cdl/hal_arm_pid.cdl:
+ Standardize CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_DEFAULT usage.
+
+2002-04-24 Jesper Skov <jskov@redhat.com>
+
+ * cdl/hal_arm_pid.cdl: CYGPRI_KERNEL_TESTS_DHRYSTONE_PASSES defined.
+
+2002-01-28 Jesper Skov <jskov@redhat.com>
+
+ * include/plf_io.h: Added.
+
+2001-06-08 Jonathan Larmour <jlarmour@redhat.com>
+
+ * include/hal_cache.h: Correctly indicate absence of cache.
+
+2001-04-16 Gary Thomas <gthomas@redhat.com>
+
+ * cdl/hal_arm_pid.cdl: Add CDL to describe CPU family.
+
+2001-04-13 Gary Thomas <gthomas@redhat.com>
+
+ * include/hal_platform_setup.h (PLATFORM_SETUP1): Ensure running
+ in proper address space (in ROM startup mode).
+
+2001-03-08 Jesper Skov <jskov@redhat.com>
+
+ * cdl/hal_arm_pid.cdl: Does not guarantee virtual vector support.
+
+2001-02-27 Jesper Skov <jskov@redhat.com>
+
+ * include/hal_cache.h: Added HAL_DCACHE_IS_ENABLED and
+ HAL_ICACHE_IS_ENABLED.
+
+2001-02-24 Gary Thomas <gthomas@redhat.com>
+
+ * cdl/hal_arm_pid.cdl: Add CYGSEM_HAL_ARM_PID_ANGEL_BOOT so
+ startup code only includes this cruft when necessary.
+
+2001-02-22 Jesper Skov <jskov@redhat.com>
+
+ * include/hal_diag.h: Added delay function [yes, this is a bad
+ location]. It uses Timer1 for delays.
+
+ * cdl/hal_arm_pid.cdl: Added RedBoot options.
+
+ * src/pid_misc.c (hal_delay_us): Added.
+
+2001-02-20 Jesper Skov <jskov@redhat.com>
+
+ * cdl/hal_arm_pid.cdl: Also enable -mthumb-interwork when building
+ ROM monitors (or calls from Thumb code would die on return).
+ Reworked a bit.
+
+2001-02-13 Gary Thomas <gthomas@redhat.com>
+
+ * src/pid_misc.c (hal_IRQ_handler):
+ Return CYGNUM_HAL_INTERRUPT_NONE for spurious interrupts.
+
+2001-02-08 Jesper Skov <jskov@redhat.com>
+
+ * src/hal_diag.c: Replace CYGSEM_HAL_DIAG_MANGLER_None with
+ CYGDBG_HAL_DIAG_TO_DEBUG_CHAN.
+
+ * cdl/hal_arm_pid.cdl: Respect channel configuration constraints.
+
+ * src/pid_misc.c (hal_hardware_init): Safe to call hal_if_init in
+ thumb mode now.
+
+2001-01-31 Jesper Skov <jskov@redhat.com>
+
+ * src/hal_diag.c: Replaced CYGDBG_HAL_DIAG_DISABLE_GDB_PROTOCOL
+ with CYGSEM_HAL_DIAG_MANGLER_None
+
+2001-01-26 Jesper Skov <jskov@redhat.com>
+
+ * src/hal_diag.c: Removed CYGSEM_HAL_VIRTUAL_VECTOR_DIAG check.
+ * include/plf_stub.h: Moved reset macro to
+ * include/hal_platform_ints.h: this file.
+
+2000-10-20 Jonathan Larmour <jlarmour@redhat.com>
+
+ * include/pkgconf/mlt_arm_pid_ram.h:
+ * include/pkgconf/mlt_arm_pid_rom.h:
+ * include/pkgconf/mlt_arm_pid_ram.ldi:
+ * include/pkgconf/mlt_arm_pid_rom.ldi:
+ Regenerate
+
+2000-07-25 Jonathan Larmour <jlarmour@redhat.co.uk>
+
+ * include/pkgconf/mlt_arm_pid_ram.h:
+ * include/pkgconf/mlt_arm_pid_ram.ldi:
+ * include/pkgconf/mlt_arm_pid_ram.mlt:
+ * include/pkgconf/mlt_arm_pid_rom.h:
+ * include/pkgconf/mlt_arm_pid_rom.ldi:
+ * include/pkgconf/mlt_arm_pid_rom.mlt:
+ Add heap1 section to allow malloc to use it
+
+2000-07-22 Jonathan Larmour <jlarmour@redhat.co.uk>
+
+ * cdl/hal_arm_pid.cdl: Fix comments about number of ports in
+ CYGNUM_HAL_VIRTUAL_VECTOR_DEBUG_CHANNEL and
+ CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL
+
+2000-07-17 Jesper Skov <jskov@redhat.com>
+
+ * src/pid_misc.c (hal_hardware_init): Hack to allow thumb tests to
+ run in farm until vector table Thumb/ARM API is fixed.
+
+2000-07-07 Jesper Skov <jskov@redhat.com>
+
+ * cdl/hal_arm_pid.cdl: CygMon changed to use virtual vectors.
+
+2000-07-05 Jesper Skov <jskov@redhat.com>
+
+ * src/hal_diag.c:
+ * cdl/hal_arm_pid.cdl:
+ Clean up channel options.
+
+2000-07-04 Jesper Skov <jskov@redhat.com>
+
+ * cdl/hal_arm_pid.cdl:
+ * include/hal_diag.h:
+ * include/plf_stub.h:
+ * src/hal_diag.c:
+ * src/pid_misc.c:
+ * src/plf_stub.c: [deleted]
+ Changed to use virtual vector table.
+
+2000-06-18 Gary Thomas <gthomas@redhat.com>
+
+ * include/pkgconf/mlt_arm_pid9_ram.ldi:
+ * include/pkgconf/mlt_arm_pid9_ram.mlt:
+ * include/pkgconf/mlt_arm_pid9_rom.ldi:
+ * include/pkgconf/mlt_arm_pid9_rom.mlt:
+ * include/pkgconf/mlt_arm_pidBE_ram.ldi:
+ * include/pkgconf/mlt_arm_pidBE_ram.mlt:
+ * include/pkgconf/mlt_arm_pidBE_rom.ldi:
+ * include/pkgconf/mlt_arm_pidBE_rom.mlt:
+ * include/pkgconf/mlt_arm_pidTBE_ram.ldi:
+ * include/pkgconf/mlt_arm_pidTBE_ram.mlt:
+ * include/pkgconf/mlt_arm_pidTBE_rom.ldi:
+ * include/pkgconf/mlt_arm_pidTBE_rom.mlt:
+ * include/pkgconf/mlt_arm_pidT_ram.ldi:
+ * include/pkgconf/mlt_arm_pidT_ram.mlt:
+ * include/pkgconf/mlt_arm_pidT_rom.ldi:
+ * include/pkgconf/mlt_arm_pidT_rom.mlt:
+ * include/pkgconf/mlt_arm_pid_ram.ldi:
+ * include/pkgconf/mlt_arm_pid_ram.mlt:
+ * include/pkgconf/mlt_arm_pid_rom.ldi:
+ * include/pkgconf/mlt_arm_pid_rom.mlt:
+ Incorporate new fixed vectors (used on all ARM platforms).
+
+2000-03-24 Jesper Skov <jskov@redhat.com>
+
+ * src/hal_diag.c (hal_diag_write_char): Fix compiler warning.
+
+2000-02-29 Jonathan Larmour <jlarmour@redhat.co.uk>
+
+ * include/pkgconf/mlt_arm_pid_ram.h:
+ * include/pkgconf/mlt_arm_pid_ram.ldi:
+ * include/pkgconf/mlt_arm_pid_ram.mlt:
+ * include/pkgconf/mlt_arm_pid_rom.h:
+ * include/pkgconf/mlt_arm_pid_rom.ldi:
+ * include/pkgconf/mlt_arm_pid_rom.mlt:
+ Align all sections on word boundaries
+
+2000-02-18 Jonathan Larmour <jlarmour@redhat.co.uk>
+
+ * cdl/hal_arm_pid.cdl (CYGBLD_BUILD_GDB_STUBS): When
+ building stubs, define every dependency required here rather than
+ in the template
+
+2000-02-15 Jesper Skov <jskov@redhat.com>
+
+ * cdl/hal_arm_pid.cdl: Remove stubs startup type.
+
+2000-02-10 Jesper Skov <jskov@redhat.com>
+
+ * include/plf_stub.h:
+ HAL_STUB_PLATFORM_STUBS_INIT->HAL_STUB_PLATFORM_INIT
+
+ * misc/STUBS_config:
+ * include/pkgconf/hal_arm_pid.h:
+ Removed stubs as a legal startup type.
+
+2000-02-09 Jesper Skov <jskov@redhat.com>
+
+ * cdl/hal_arm_pid.cdl: Added remaining build dependencies.
+
+2000-02-07 Jesper Skov <jskov@redhat.com>
+
+ * cdl/hal_arm_pid.cdl: Use cpu option when linking.
+
+2000-02-03 Jesper Skov <jskov@redhat.com>
+
+ * cdl/hal_arm_pid.cdl: Implements stubs.
+
+2000-02-01 Jesper Skov <jskov@redhat.com>
+
+ * include/plf_stub.h: Changes due to STUBS startup removal.
+
+2000-01-28 Jesper Skov <jskov@redhat.com>
+
+ * cdl/hal_arm_pid.cdl: Moved files from misc to src dir. Use
+ common stub code. Got rid of stubs startup type.
+
+ * include/pkgconf/mlt_arm_pid9_ram.h:
+ * include/pkgconf/mlt_arm_pid9_ram.ldi:
+ * include/pkgconf/mlt_arm_pid9_ram.mlt:
+ * include/pkgconf/mlt_arm_pid9_rom.h:
+ * include/pkgconf/mlt_arm_pid9_rom.ldi:
+ * include/pkgconf/mlt_arm_pid9_rom.mlt:
+ * include/pkgconf/mlt_arm_pid9_stubs.h:
+ * include/pkgconf/mlt_arm_pid9_stubs.ldi:
+ * include/pkgconf/mlt_arm_pid9_stubs.mlt:
+ * include/pkgconf/mlt_arm_pidBE_ram.h:
+ * include/pkgconf/mlt_arm_pidBE_ram.ldi:
+ * include/pkgconf/mlt_arm_pidBE_ram.mlt:
+ * include/pkgconf/mlt_arm_pidBE_rom.h:
+ * include/pkgconf/mlt_arm_pidBE_rom.ldi:
+ * include/pkgconf/mlt_arm_pidBE_rom.mlt:
+ * include/pkgconf/mlt_arm_pidBE_stubs.h:
+ * include/pkgconf/mlt_arm_pidBE_stubs.ldi:
+ * include/pkgconf/mlt_arm_pidBE_stubs.mlt:
+ * include/pkgconf/mlt_arm_pidTBE_ram.h:
+ * include/pkgconf/mlt_arm_pidTBE_ram.ldi:
+ * include/pkgconf/mlt_arm_pidTBE_ram.mlt:
+ * include/pkgconf/mlt_arm_pidTBE_rom.h:
+ * include/pkgconf/mlt_arm_pidTBE_rom.ldi:
+ * include/pkgconf/mlt_arm_pidTBE_rom.mlt:
+ * include/pkgconf/mlt_arm_pidT_ram.h:
+ * include/pkgconf/mlt_arm_pidT_ram.ldi:
+ * include/pkgconf/mlt_arm_pidT_ram.mlt:
+ * include/pkgconf/mlt_arm_pidT_rom.h:
+ * include/pkgconf/mlt_arm_pidT_rom.ldi:
+ * include/pkgconf/mlt_arm_pidT_rom.mlt:
+ * include/pkgconf/mlt_arm_pid_ram.h:
+ * include/pkgconf/mlt_arm_pid_ram.ldi:
+ * include/pkgconf/mlt_arm_pid_ram.mlt:
+ * include/pkgconf/mlt_arm_pid_rom.h:
+ * include/pkgconf/mlt_arm_pid_rom.ldi:
+ * include/pkgconf/mlt_arm_pid_rom.mlt:
+ * include/pkgconf/mlt_arm_pid_stubs.h:
+ * include/pkgconf/mlt_arm_pid_stubs.ldi:
+ * include/pkgconf/mlt_arm_pid_stubs.mlt:
+ Increase memory reserved for stub to 32kB.
+
+2000-01-28 Jesper Skov <jskov@redhat.com>
+
+ * cdl/hal_arm_pid.cdl: Corrected build runes. Changed description.
+
+2000-01-27 Jesper Skov <jskov@redhat.com>
+
+ * cdl/hal_arm_pid.cdl (CYGBLD_CYGMON_TARGET_REQUIREMENTS):
+ Improved serial expression.
+ Moved options into a CygMon HAL component.
+
+2000-01-26 Jonathan Larmour <jlarmour@redhat.co.uk>
+
+ * cdl/hal_arm_pid.cdl (CYGBLD_CYGMON_TARGET_REQUIREMENTS): Only
+ activate when CYGPKG_CYGMON enabled
+
+2000-01-26 Jesper Skov <jskov@cygnus.co.uk>
+
+ * cdl/hal_arm_pid.cdl: Added rule for flash tool BE.
+ Fix display string.
+ Added CygMon options.
+
+2000-01-24 Jesper Skov <jskov@cygnus.co.uk>
+
+ * cdl/hal_arm_pid.cdl: Add stubs build rule.
+
+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.
+
+1999-12-22 John Dallaway <jld@cygnus.co.uk>
+
+ * cdl/hal_arm_pid.cdl:
+
+ Add the -mbig-endian and -mthumb-interwork ARCHFLAGS to
+ the LDFLAGS as appropriate.
+
+1999-12-20 Gary Thomas <gthomas@cygnus.co.uk>
+
+ * cdl/hal_arm_pid.cdl: Add -Wl for linker options
+
+1999-12-16 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * cdl/hal_arm_pid.cdl: Add support for pidT and pidTBE targets
+
+1999-12-15 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * misc/STUBS_config: updated patch due to hal.h changes
+
+1999-12-14 John Dallaway <jld@cygnus.co.uk>
+
+ * cdl/hal_arm_pid.cdl:
+
+ Relocate the GDB stubs elf image file.
+
+1999-12-13 John Dallaway <jld@cygnus.co.uk>
+
+ * cdl/hal_arm_pid.cdl:
+
+ Install both the elf and raw binary versions of the
+ GDB stubs image.
+
+1999-12-10 John Dallaway <jld@cygnus.co.uk>
+
+ * cdl/hal_arm_pid.cdl:
+
+ Add custom rules to build GDB stubs and the flash
+ programming tool.
+
+1999-12-09 John Dallaway <jld@cygnus.co.uk>
+
+ * cdl/hal_arm_pid.cdl:
+
+ Modify testing parameters according to
+ CYGHWR_HAL_ARM_BIGENDIAN.
+
+1999-12-09 John Dallaway <jld@cygnus.co.uk>
+
+ * cdl/hal_arm_pid.cdl: Add SID execution flags option.
+
+1999-12-07 Gary Thomas <gthomas@cygnus.co.uk>
+
+ * cdl/hal_arm_pid.cdl: Add descriptive strings used by CygMon.
+
+1999-12-07 Jesper Skov <jskov@cygnus.co.uk>
+
+ * cdl/hal_arm_pid.cdl: Adjust CFLAGS according to CPU family.
+
+1999-12-06 Gary Thomas <gthomas@cygnus.co.uk>
+
+ * include/pkgconf/hal_arm_pid.h (HAL_PLATFORM_BOARD):
+ (HAL_PLATFORM_CPU):
+ (HAL_PLATFORM_EXTRA): Add - used by CygMon.
+
+ * misc/prog_flash.c: Increase flash image size (needed to
+ build CygMon image).
+
+1999-11-25 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/pkgconf/mlt_arm_pidTBE_stubs.h,
+ include/pkfconf/mlt_arm_pidT_stubs.h:
+ Delete - we don't have stubs startup for thumb mode
+
+ * include/pkgconf/hal_arm_pid.h:
+ Allow selection of big-endian mode
+ Allow selection of thumb mode
+ Allow selection of thumb big-endian mode
+
+ * src/hal_diag.c: Conditionalize def of diag_buffer for only when it's
+ explicitly wanted and someone hacks the code
+ (hal_diag_write_char): Likewise
+
+1999-11-25 Gary Thomas <gthomas@cygnus.co.uk>
+
+ * include/pkgconf/mlt_arm_pidT_rom.h:
+ * include/pkgconf/mlt_arm_pidT_ram.h:
+ * include/pkgconf/mlt_arm_pidTBE_rom.h:
+ * include/pkgconf/mlt_arm_pidTBE_ram.h:
+ * include/pkgconf/mlt_arm_pid_ram.h:
+ * include/pkgconf/mlt_arm_pid_rom.h:
+ * include/pkgconf/mlt_arm_pidBE_rom.h:
+ * include/pkgconf/mlt_arm_pidBE_ram.h: Update 'do not edit' strings.
+
+ * include/pkgconf/mlt_arm_pidTBE_stubs.h:
+ * include/pkgconf/mlt_arm_pidT_stubs.h:
+ * include/pkgconf/mlt_arm_pid_stubs.h:
+ * include/pkgconf/mlt_arm_pidBE_stubs.h:
+ * include/pkgconf/mlt_arm_pid9_stubs.h:
+ * include/pkgconf/mlt_arm_pid9_rom.h:
+ * include/pkgconf/mlt_arm_pid9_ram.h: New file(s).
+
+1999-11-09 Gary Thomas <gthomas@cygnus.co.uk>
+
+ * include/pkgconf/mlt_arm_pidBE_ram.h:
+ * include/pkgconf/mlt_arm_pidBE_rom.h:
+ * include/pkgconf/mlt_arm_pidTBE_ram.h:
+ * include/pkgconf/mlt_arm_pidTBE_rom.h:
+ * include/pkgconf/mlt_arm_pidT_ram.h:
+ * include/pkgconf/mlt_arm_pidT_rom.h:
+ * include/pkgconf/mlt_arm_pid_ram.h:
+ * include/pkgconf/mlt_arm_pid_rom.h: New file(s).
+
+ * include/pkgconf/mlt_arm_pidBE_ram.ldi:
+ * include/pkgconf/mlt_arm_pidBE_ram.mlt:
+ * include/pkgconf/mlt_arm_pidBE_rom.ldi:
+ * include/pkgconf/mlt_arm_pidBE_rom.mlt:
+ * include/pkgconf/mlt_arm_pidTBE_ram.ldi:
+ * include/pkgconf/mlt_arm_pidTBE_ram.mlt:
+ * include/pkgconf/mlt_arm_pidTBE_rom.ldi:
+ * include/pkgconf/mlt_arm_pidTBE_rom.mlt:
+ * include/pkgconf/mlt_arm_pidT_ram.ldi:
+ * include/pkgconf/mlt_arm_pidT_ram.mlt:
+ * include/pkgconf/mlt_arm_pidT_rom.ldi:
+ * include/pkgconf/mlt_arm_pidT_rom.mlt:
+ * include/pkgconf/mlt_arm_pid_ram.ldi:
+ * include/pkgconf/mlt_arm_pid_ram.mlt:
+ * include/pkgconf/mlt_arm_pid_rom.ldi:
+ * include/pkgconf/mlt_arm_pid_rom.mlt: Update with correct memory layout.
+
+ * src/hal_diag.c: Honor GDB_DISABLE option.
+
+1999-11-01 Jesper Skov <jskov@cygnus.co.uk>
+
+ * cdl/hal_arm_pid.cdl: Remove define_proc comments.
+
+1999-10-29 Jesper Skov <jskov@cygnus.co.uk>
+
+ * misc/PKGconf.mak: Also generate stripped .img files.
+
+1999-10-29 Jesper Skov <jskov@cygnus.co.uk>
+
+ * include/plf_stub.h (HAL_STUB_PLATFORM_RESET): Call stub entry on
+ GDB kill. But only do it for stubs startup.
+
+1999-10-28 Jesper Skov <jskov@cygnus.co.uk>
+
+ * misc/PKGconf.mak: Don't strip symbols when making .img.
+
+1999-10-27 Jesper Skov <jskov@cygnus.co.uk>
+
+ * include/pkgconf/mlt_arm_pid9_stubs.ldi:
+ * include/pkgconf/mlt_arm_pid9_stubs.mlt:
+ Added some linker files.
+
+ * misc/Notes:
+ * misc/STUBS_config:
+ Updated.
+
+ * src/hal_diag.c: Fixed conditional include.
+
+1999-10-26 Hugo Tyson <hmt@cygnus.co.uk>
+
+ * src/hal_diag.c (hal_diag_write_char): Use new macro
+ CYG_HAL_GDB_ENTER_CRITICAL_IO_REGION and its mate to control
+ stepping through gdb $O packet output.
+
+1999-10-26 Jesper Skov <jskov@cygnus.co.uk>
+ * include/hal_platform_setup.h (CYGHWR_LED_MACRO): define.
+ * cdl/hal_arm_pid.cdl:
+ * include/pkgconf/hal_arm_pid.h:
+ * src/hal_diag.c:
+ * include/hal_diag.h:
+ Added CDL for CYGHWR_HAL_ARM_PID_DIAG_LEDS.
+
+1999-10-26 John Dallaway <jld@cygnus.co.uk>
+
+ * cdl/hal_arm_pid.cdl:
+
+ Rename CYGBLD_GLOBAL_PREFIX to
+ CYGBLD_GLOBAL_COMMAND_PREFIX
+
+1999-10-26 Jesper Skov <jskov@cygnus.co.uk>
+ * include/pkgconf/mlt_arm_pidTBE_ram.ldi:
+ * include/pkgconf/mlt_arm_pidTBE_ram.mlt:
+ * include/pkgconf/mlt_arm_pidTBE_rom.ldi:
+ * include/pkgconf/mlt_arm_pidTBE_rom.mlt:
+ * include/pkgconf/mlt_arm_pidBE_ram.ldi:
+ * include/pkgconf/mlt_arm_pidBE_ram.mlt:
+ * include/pkgconf/mlt_arm_pidBE_rom.ldi:
+ * include/pkgconf/mlt_arm_pidBE_rom.mlt:
+ * include/pkgconf/mlt_arm_pidBE_stubs.ldi:
+ * include/pkgconf/mlt_arm_pidBE_stubs.mlt:
+ * include/pkgconf/mlt_arm_pid9_ram.ldi:
+ * include/pkgconf/mlt_arm_pid9_ram.mlt:
+ * include/pkgconf/mlt_arm_pid9_rom.ldi:
+ * include/pkgconf/mlt_arm_pid9_rom.mlt:
+ Added some linker files.
+
+1999-10-25 Jesper Skov <jskov@cygnus.co.uk>
+
+ * misc/STUBS_config: Updated.
+ * src/hal_diag.c (hal_diag_led): Added LED diag.
+ * misc/prog_flash.c: Fixed compiler warning.
+
+ * misc/prog_flash.c:
+ * misc/PKGconf.mak:
+ Add support for programming BE images on LE system.
+
+1999-10-20 Simon FitzMaurice <sdf@cygnus.co.uk>
+ * cdl/hal_arm_aeb.cdl:
+
+ Remove -Wl options from compiler flags
+
+1999-10-19 John Dallaway <jld@cygnus.co.uk>
+
+ * cdl/hal_arm_pid.cdl:
+
+ Define cdl_options for the memory layout linker script
+ fragment and the memory layout header file.
+
+1999-10-19 Jesper Skov <jskov@cygnus.co.uk>
+
+ * include/pkgconf/hal_arm_pid.h: Added ARM9 options.
+
+1999-10-18 John Dallaway <jld@cygnus.co.uk>
+
+ * cdl/hal_arm_pid.cdl:
+
+ Define CYGTST_TESTING_IDENTIFIER as a functions of
+ CYGHWR_THUMB.
+
+1999-10-18 John Dallaway <jld@cygnus.co.uk>
+
+ * cdl/hal_arm_pid.cdl:
+
+ Define CYGBLD_GLOBAL_PREFIX and CYGBLD_GLOBAL_CFLAGS as
+ functions of CYGHWR_THUMB.
+
+1999-10-18 John Dallaway <jld@cygnus.co.uk>
+
+ * cdl/hal_arm_pid.cdl:
+ Update CYGBLD_GLOBAL_CFLAGS. Define CYG_HAL_ARM_PID.
+ Reparent global build flags.
+
+1999-10-15 John Dallaway <jld@cygnus.co.uk>
+
+ * cdl/hal_arm_pid.cdl:
+ Define CYGBLD_GLOBAL_CFLAGS and CYGBLD_GLOBAL_LDFLAGS.
+
+1999-10-15 Gary Thomas <gthomas@cygnus.co.uk>
+
+ * src/hal_diag.c: Force diag channel to be "raw" if it is
+ not the same as the GDB port (RAM based applications only).
+
+1999-10-06 John Dallaway <jld@cygnus.co.uk>
+
+ * cdl/hal_arm_pid.cdl:
+ Define CYGTST_TESTING_IDENTIFIER.
+
+1999-09-16 Jesper Skov <jskov@cygnus.co.uk>
+
+ * include/pkgconf/hal_arm_pid.h:
+ Removed arm/thumb options [defined by platform template].
+
+ Added ldi/mdi files for pidT.
+
+1999-09-09 Jesper Skov <jskov@cygnus.co.uk>
+
+ * include/pkgconf/hal_arm_pid.h:
+ Added thumb option.
+
+1999-08-16 John Dallaway <jld@cygnus.co.uk>
+
+ * include/pkgconf/hal_arm_pid.h:
+
+ Proper case various display strings.
+
+1999-08-12 John Dallaway <jld@cygnus.co.uk>
+
+ * cdl/hal_arm_pid.cdl:
+ Define CYG_HAL_STARTUP and CYGHWR_MEMORY_LAYOUT.
+
+1999-05-24 Gary Thomas <gthomas@cygnus.co.uk>
+
+ * src/hal_diag.c: Clean up direct hardware access code.
+
+1999-05-20 Gary Thomas <gthomas@cygnus.co.uk>
+
+ * include/pkgconf/hal_arm_pid.h: Move RTC setup here.
+
+1999-04-13 Gary Thomas <gthomas@cygnus.co.uk>
+
+ * include/hal_platform_setup.h: New file
+
+1999-04-08 John Dallaway <jld@cygnus.co.uk>
+
+ * include/pkgconf/*.ldi: Revised SECTION_* macro arguments to
+ avoid padded output sections (PR 19787)
+
+1999-03-23 Gary Thomas <gthomas@cygnus.co.uk>
+
+ * src/hal_diag.c (hal_diag_write_char): Make GDB 'O' transaction run
+ with interrupts disabled.
+
+1999-03-17 Gary Thomas <gthomas@cygnus.co.uk>
+
+ * src/hal_diag.c (hal_diag_write_char): Don't disable all interrupts,
+ just the ones from the diag serial port.
+
+1999-03-16 Gary Thomas <gthomas@cygnus.co.uk>
+
+ * include/plf_stub.h:
+ * src/plf_stub.c:
+ * src/hal_diag.c: Add suport for GDB break.
+
+1999-03-12 Gary Thomas <gthomas@cygnus.co.uk>
+
+ * include/hal_cache.h (HAL_DCACHE_PURGE_ALL): Add macro.
+
+1999-03-04 John Dallaway <jld@cygnus.co.uk>
+
+ * include/pkgconf/*.ldi: give all LDI files unique names so
+ that they can co-exist in an eCos build tree (PR 19184)
+ * include/pkgconf/*.mlt: give all MLT files unique names so
+ that they can co-exist in an eCos build tree (PR 19184)
+
+1999-02-20 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/hal_platform_ints.h:
+ Reorganise vector/interrupt/exception names according to purpose
+ QA improvements
+
+ * src/pid_misc.c:
+ Change interrupt names due to above
+ QA improvements
+
+
+1999-02-16 Jesper Skov <jskov@cygnus.co.uk>
+
+ * src/hal_diag.c (hal_diag_write_char): Changed
+ __output_gdb_string to hal_output_gdb_string.
+
+ * include/hal_stub.h: [removed]
+ * include/plf_stub.h: [added]
+ * src/hal_stub.c: [removed]
+ * src/plf_stub.c: [added]
+ * src/PKGconf.mak:
+ Changed hal_stub to plf_stub. Moved generic HAL stub code to
+ common/.../hal_stub.c.
+
+1999-02-16 Gary Thomas <gthomas@cygnus.co.uk>
+
+ * include/hal_platform_ints.h: Some interrupt assignments were wrong.
+
+1999-02-08 John Dallaway <jld@cygnus.co.uk>
+
+ * include/pkgconf/*.mlt: New memory layout save files
+
+1999-02-05 John Dallaway <jld@cygnus.co.uk>
+
+ * include/pkgconf/*.ldi: Remove LMA_EQ_VMA macro definition.
+
+1999-01-27 Gary Thomas <gthomas@cygnus.co.uk>
+
+ * misc/PKGconf.mak: Fix for building on Win/NT. Also create raw binary
+ file suitable for putting into EPROM.
+
+1999-01-26 Hugo Tyson <hmt@masala.cygnus.co.uk>
+
+ * include/pkgconf/stubs.ldi:
+ * include/pkgconf/ram.ldi:
+ * include/pkgconf/rom.ldi:
+ Add copyright notice. (Though these files will later be generated
+ by a tool and so not copyright, these default setups are.)
+
+1999-01-26 Gary Thomas <gthomas@cygnus.co.uk>
+
+ * include/pkgconf/hal_arm_pid.h: Fix option descriptions.
+
+1999-01-25 Gary Thomas <gthomas@cygnus.co.uk>
+
+ * include/pkgconf/hal_arm_pid.h:
+ * src/hal_stub.c: Add serial port parameterization (CDL)
+ (serial_init): Remove 'dummy' call which fixed a GCC bug. Note:
+ is this bug still lurking out there?
+
+1999-01-25 Jesper Skov <jskov@cygnus.co.uk>
+
+ * src/hal_diag.c: Removed HAL_IO_BARRIER macros. Not necessary on
+ ARM.
+
+1999-01-19 Gary Thomas <gthomas@cygnus.co.uk>
+
+ * misc/PKGconf.mak: Fix for new startup types (STUBS).
+
+ * include/pkgconf/rom.ldi: Modified for new layouts.
+
+ * include/pkgconf/stubs.ldi: New File.
+
+ * src/hal_stub.c: Reorg - move common routines to "arch" directory.
+
+1999-01-18 Gary Thomas <gthomas@cygnus.co.uk>
+
+ * include/pkgconf/rom.ldi: Add configurations for GDB stubs/normal ROM.
+
+1999-01-15 Gary Thomas <gthomas@cygnus.co.uk>
+
+ * misc/Notes: New file.
+
+ * include/pkgconf/rom.ldi: Reorg GDB stubs memory use.
+
+ * misc/gdb_module.c:
+ * misc/prog_flash.c: New program(s).
+
+ * src/hal_stub.c:
+ * src/hal_diag.c: Reduce/remove trace buffers (debug only)
+
+ * include/hal_diag.h: Add prototype for 'hal_diag_read_char()'
+
+1999-01-14 Gary Thomas <gthomas@cygnus.co.uk>
+
+ * include/pkgconf/hal_arm_pid.h: Change diag port to match GDB port.
+
+ * misc/PKGconf.mak: Change 'TESTS' to 'PROGS' due to
+ changes in "makrules.prv".
+
+ * include/pkgconf/rom.ldi:
+ * include/pkgconf/ram.ldi: New files.
+
+ * src/PKGconf.mak: Change to MLT script linking.
+
+1999-01-08 Gary Thomas <gthomas@cygnus.co.uk>
+
+ * include/pkgconf/hal_arm_pid.h:
+ * src/hal_diag.c: Make diagnostic port configurable.
+
+1998-12-22 Gary Thomas <gthomas@cygnus.co.uk>
+
+ * include/hal_cache.h: New [moved] file
+
+1998-12-20 Gary Thomas <gthomas@cygnus.co.uk>
+
+ * src/hal_stub.c (cyg_hal_gdb_isr): Remove unused '__set_mem_fault'
+
+1998-12-16 Gary Thomas <gthomas@cygnus.co.uk>
+
+ * include/hal_platform_ints.h: New file.
+
+1998-12-15 Gary Thomas <gthomas@cygnus.co.uk>
+
+ * include/pkgconf/hal_arm_pid.h: Fix comment.
+
+ * src/hal_diag.c: Changes for kernel-less configuration.
+
+ * src/pid_misc.c: Renamed from 'hal_misc.c'
+
+ * src/PKGconf.mak (COMPILE): Rename 'hal_misc.c' to 'pid_misc.c'
+ to avoid confusion with "arch/current/src/hal_misc.c" which is
+ a truly platform independent file.
+
+1998-12-10 Gary Thomas <gthomas@cygnus.co.uk>
+
+ * src/hal_misc.c (dump_frame): Change in parameter type for
+ caused problems with adding pointers -> huge dumps!
+
+1998-12-09 Gary Thomas <gthomas@cygnus.co.uk>
+
+ * src/hal_misc.c (exception_handler_returned): Change exception
+ [debug] functions to have proper type for 'register frame' param.
+
+1998-12-03 Gary Thomas <gthomas@cygnus.co.uk>
+
+ * tests/flash.c:
+ * tests/dl.c (SYNC_COUNT): Update download for improved performance
+ now that target FIFO is working.
+
+ * src/hal_stub.c (serial_init): Work around compiler code generation
+ bug (was quietly writing over location 0x4!)
+
+1998-12-02 Gary Thomas <gthomas@cygnus.co.uk>
+
+ * include/pkgconf/hal_arm_pid.h: New file
+
+ * src/hal_misc.c (exception_handler_returned): Make quiet in GDB version
+
+1998-12-01 Gary Thomas <gthomas@cygnus.co.uk>
+
+ * src/hal_stub.c (serial_init): Enable serial FIFO!
+
+ * src/hal_diag.c (hal_diag_init): Enable serial FIFO!
+ Don't try to support diag via GDB port (yet).
+
+1998-11-26 Gary Thomas <gthomas@cygnus.co.uk>
+
+ * src/hal_diag.c (hal_diag_write_char): Allow separate debug output
+ even when GDB stubs are included. Remove this later - FIXME!
+
+ * src/hal_stub.c:
+ * include/hal_stub.h: New files, GDB stub support
+
+ * src/PKGconf.mak (COMPILE): Add hal_stub.c
+
+1998-11-18 Gary Thomas <gthomas@cygnus.co.uk>
+
+ * tests/flash.c:
+ * tests/dl.c:
+ * tests/PKGconf.mak: Set of programs which will download and program
+ the FLASH on the PID7 eval board.
+
+ * src/hal_misc.c: Add clock latency support.
+
+ * src/pid.ld: Rework memory layout. Fix DWARF2 debugging stuff.
+
+
+//===========================================================================
+// ####GPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 2 or (at your option) any
+// later version.
+//
+// This program is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the
+// Free Software Foundation, Inc., 51 Franklin Street,
+// Fifth Floor, Boston, MA 02110-1301, USA.
+// -------------------------------------------
+// ####GPLCOPYRIGHTEND####
+//===========================================================================
diff --git a/ecos/packages/hal/arm/pid/current/cdl/hal_arm_pid.cdl b/ecos/packages/hal/arm/pid/current/cdl/hal_arm_pid.cdl
new file mode 100644
index 0000000..4ff3a94
--- /dev/null
+++ b/ecos/packages/hal/arm/pid/current/cdl/hal_arm_pid.cdl
@@ -0,0 +1,456 @@
+# ====================================================================
+#
+# hal_arm_pid.cdl
+#
+# PID board HAL package configuration data
+#
+# ====================================================================
+## ####ECOSGPLCOPYRIGHTBEGIN####
+## -------------------------------------------
+## This file is part of eCos, the Embedded Configurable Operating System.
+## Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+##
+## eCos is free software; you can redistribute it and/or modify it under
+## the terms of the GNU General Public License as published by the Free
+## Software Foundation; either version 2 or (at your option) any later
+## version.
+##
+## eCos is distributed in the hope that it will be useful, but WITHOUT
+## ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+## FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+## for more details.
+##
+## You should have received a copy of the GNU General Public License
+## along with eCos; if not, write to the Free Software Foundation, Inc.,
+## 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+##
+## As a special exception, if other files instantiate templates or use
+## macros or inline functions from this file, or you compile this file
+## and link it with other works to produce a work based on this file,
+## this file does not by itself cause the resulting work to be covered by
+## the GNU General Public License. However the source code for this file
+## must still be made available in accordance with section (3) of the GNU
+## General Public License v2.
+##
+## This exception does not invalidate any other reasons why a work based
+## on this file might be covered by the GNU General Public License.
+## -------------------------------------------
+## ####ECOSGPLCOPYRIGHTEND####
+# ====================================================================
+######DESCRIPTIONBEGIN####
+#
+# Author(s): bartv
+# Original data: gthomas
+# Contributors:
+# Date: 1999-06-13
+#
+#####DESCRIPTIONEND####
+#
+# ====================================================================
+
+cdl_package CYGPKG_HAL_ARM_PID {
+ display "ARM PID evaluation board"
+ parent CYGPKG_HAL_ARM
+ define_header hal_arm_pid.h
+ include_dir cyg/hal
+ hardware
+ description "
+ The pid HAL package provides the support needed to run
+ eCos on an ARM PID evaluation board."
+
+ compile hal_diag.c pid_misc.c
+
+ implements CYGINT_HAL_DEBUG_GDB_STUBS
+ implements CYGINT_HAL_DEBUG_GDB_STUBS_BREAK
+ implements CYGINT_HAL_VIRTUAL_VECTOR_SUPPORT
+ implements CYGINT_HAL_ARM_THUMB_ARCH
+ implements CYGINT_HAL_ARM_BIGENDIAN
+ implements CYGINT_HAL_ARM_ARCH_ARM7
+ implements CYGINT_HAL_ARM_ARCH_ARM9
+ implements CYGINT_HAL_TESTS_NO_CACHES
+
+ define_proc {
+ puts $::cdl_system_header "#define CYGBLD_HAL_TARGET_H <pkgconf/hal_arm.h>"
+ puts $::cdl_system_header "#define CYGBLD_HAL_PLATFORM_H <pkgconf/hal_arm_pid.h>"
+ puts $::cdl_header ""
+ puts $::cdl_header "#define HAL_PLATFORM_CPU \"ARM 7TDMI\""
+ puts $::cdl_header "#define HAL_PLATFORM_BOARD \"PID\""
+ puts $::cdl_header "#define HAL_PLATFORM_EXTRA \"\""
+ puts $::cdl_header ""
+
+ puts $::cdl_header "#define CYGPRI_KERNEL_TESTS_DHRYSTONE_PASSES 100000"
+ }
+
+
+ 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 PID 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 onboard
+ debug software such as Angel or eCos GDB stubs. Select 'rom'
+ when building a stand-alone application which will be put
+ into ROM."
+
+ }
+
+ 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 controls the baud rate used for the GDB connection."
+ }
+
+ cdl_option CYGSEM_HAL_ARM_PID_ANGEL_BOOT {
+ display "Support startup from Angel"
+ default_value 0
+ description "
+ The Angel monitor can be used for some simple initial bootstrap
+ operations. However, since Angel starts applications in user
+ mode, the eCos startup code must jump through certain hoops
+ to get started."
+ }
+
+ cdl_option CYGHWR_HAL_ARM_PID_DIAG_LEDS {
+ display "Enable use of PPx LEDs"
+ default_value 0
+ description "
+ The PID board has four LEDs labelled PP0-PP3. These can be
+ controlled by eCos if jumpers 9-16 on LK11 are
+ shorted. Note that this prevents the parallel port from
+ being used. See the PID board manual for details.
+
+ Enabling this option causes eCos to flash the LEDs during
+ early board initialization. See vectors.S for
+ details. Before calling cyg_start, PP0 is switched on,
+ PP1-3 are switched off. The application code can use the
+ function hal_diag_led() to control the LEDs after this
+ point."
+ }
+
+
+ cdl_option CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_DEFAULT {
+ display "Default console channel."
+ flavor data
+ calculated 0
+ }
+
+ 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"
+ active_if CYGPRI_HAL_VIRTUAL_VECTOR_DEBUG_CHANNEL_CONFIGURABLE
+ flavor data
+ legal_values 0 to CYGNUM_HAL_VIRTUAL_VECTOR_COMM_CHANNELS-1
+ default_value 0
+ description "
+ The PID 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"
+ active_if CYGPRI_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_CONFIGURABLE
+ flavor data
+ legal_values 0 to CYGNUM_HAL_VIRTUAL_VECTOR_COMM_CHANNELS-1
+ default_value CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_DEFAULT
+ description "
+ The PID board has two serial ports. This option
+ chooses which port will be used for diagnostic output."
+ }
+
+ # 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
+ default_value 1000000000
+ }
+ cdl_option CYGNUM_HAL_RTC_DENOMINATOR {
+ display "Real-time clock denominator"
+ flavor data
+ default_value 100
+ }
+ cdl_option CYGNUM_HAL_RTC_PERIOD {
+ display "Real-time clock period"
+ flavor data
+ default_value 12500
+ }
+ }
+
+ 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 { "arm-eabi"}
+ 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 { CYGBLD_GLOBAL_WARNFLAGS . CYGBLD_ARCH_CFLAGS .
+ (CYGHWR_HAL_ARM_CPU_FAMILY == "ARM9" ? "-mcpu=arm9 " : "-mcpu=arm7tdmi ") .
+ " -g -O2 -ffunction-sections -fdata-sections -fno-rtti -fno-exceptions " }
+ 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 { CYGBLD_ARCH_LDFLAGS . (CYGHWR_HAL_ARM_CPU_FAMILY == "ARM9" ? "-mcpu=arm9 " : "-mcpu=arm7tdmi ") .
+ "-g -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 CYGBLD_BUILD_COMMON_GDB_STUBS
+ requires { CYG_HAL_STARTUP == "ROM" }
+ requires CYGSEM_HAL_ROM_MONITOR
+ 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 address of the ELF headers in the image are
+ adjusted to ensure loading at an address in memory used
+ by the flash tool."
+
+ make -priority 320 {
+ <PREFIX>/bin/gdb_module.bin : <PREFIX>/bin/gdb_module.img
+ @mv $< $(<:.img=.elf)
+ $(OBJCOPY) --strip-debug --change-addresses=0xFC060000 $(<:.img=.elf) $<
+ $(OBJCOPY) -O binary $(<:.img=.elf) $@
+ }
+ }
+
+ cdl_option CYGBLD_BUILD_FLASH_TOOL {
+ display "Build flash programming tool"
+ default_value 0
+ requires { CYG_HAL_STARTUP == "RAM" }
+ requires CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL == 1
+ requires CYGPKG_LIBC
+ requires CYGPKG_KERNEL
+ no_define
+ description "This option enables the building of the flash programming tool for copying the GDB stubs into flash memory."
+ make -priority 320 {
+ <PREFIX>/bin/prog_flash.img : <PACKAGE>/src/prog_flash.c
+ @sh -c "mkdir -p src $(dir $@)"
+ $(CC) -c $(INCLUDE_PATH) -Wp,-MD,deps.tmp -I$(dir $<) $(CFLAGS) -o src/prog_flash.o $<
+ @echo $@ ": \\" > $(notdir $@).deps
+ @echo $(wildcard $(PREFIX)/lib/*) " \\" >> $(notdir $@).deps
+ @tail -n +2 deps.tmp >> $(notdir $@).deps
+ @echo >> $(notdir $@).deps
+ @rm deps.tmp
+ $(CC) $(LDFLAGS) -L$(PREFIX)/lib -Ttarget.ld -o $@ src/prog_flash.o
+ }
+ }
+
+ cdl_option CYGBLD_BUILD_FLASH_TOOL_BE {
+ display "Build flash programming tool for BE images on LE boards"
+ default_value 0
+ requires { CYG_HAL_STARTUP == "RAM" }
+ requires CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL == 1
+ requires CYGPKG_LIBC
+ requires CYGPKG_KERNEL
+ no_define
+ description "This option enables the building of the flash
+ programming tool for copying the GDB stubs
+ into flash memory. The tool built by enabling
+ this option must be used when programming BE
+ images on LE boards."
+ make -priority 320 {
+ <PREFIX>/bin/prog_flash_BE_image_LE_system.img : <PACKAGE>/src/prog_flash.c
+ @sh -c "mkdir -p src $(dir $@)"
+ $(CC) -DBE_IMAGE -c $(INCLUDE_PATH) -Wp,-MD,deps.tmp -I$(dir $<) $(CFLAGS) -o src/prog_flash_be.o $<
+ @echo $@ ": \\" > $(notdir $@).deps
+ @echo $(wildcard $(PREFIX)/lib/*) " \\" >> $(notdir $@).deps
+ @tail -n +2 deps.tmp >> $(notdir $@).deps
+ @echo >> $(notdir $@).deps
+ @rm deps.tmp
+ $(CC) $(LDFLAGS) -L$(PREFIX)/lib -Ttarget.ld -o $@ src/prog_flash_be.o
+ }
+ }
+ }
+
+ cdl_component CYGHWR_MEMORY_LAYOUT {
+ display "Memory layout"
+ flavor data
+ no_define
+ calculated { CYG_HAL_STARTUP == "RAM" ? "arm_pid_ram" : \
+ "arm_pid_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_pid_ram.ldi>" : \
+ "<pkgconf/mlt_arm_pid_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_pid_ram.h>" : \
+ "<pkgconf/mlt_arm_pid_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_component CYGPKG_CYGMON_HAL_OPTIONS {
+ display "CygMon HAL options"
+ flavor none
+ no_define
+ parent CYGPKG_CYGMON
+ active_if CYGPKG_CYGMON
+ description "
+ This option also lists the target's requirements for a valid CygMon
+ configuration."
+
+
+ cdl_option CYGBLD_BUILD_CYGMON_BIN {
+ display "Build CygMon ROM binary image"
+ active_if CYGBLD_BUILD_CYGMON
+ default_value 1
+ no_define
+ description "This option enables the conversion of the CygMon ELF
+ image to a binary image suitable for ROM programming."
+
+ make -priority 325 {
+ <PREFIX>/bin/cygmon.bin : <PREFIX>/bin/cygmon.elf
+ $(OBJCOPY) --strip-debug --change-addresses=0xFC060000 $< $(@:.bin=.img)
+ $(OBJCOPY) -O srec $< $(@:.bin=.srec)
+ $(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."
+ }
+
+ # custom rule to create a shell script to execute SID
+ make {
+ <PREFIX>/runsid : <PREFIX>/include/pkgconf/hal_arm_pid.h
+ @echo "arm-elf-sid CYGTST_SID_FLAGS \$$@" > $(notdir $@).tmp
+ $(CC) -E -P -c -xc -undef -imacros $< -o $@ $(notdir $@).tmp
+ @rm $(notdir $@).tmp
+ }
+
+ cdl_option CYGTST_SID_FLAGS {
+ display "SID execution flags"
+ flavor data
+ default_value { CYGHWR_HAL_ARM_BIGENDIAN ? "--board=pid7t -EB" : "--board=pid7t -EL" }
+ }
+
+ cdl_component CYGPKG_REDBOOT_HAL_OPTIONS {
+ display "Redboot HAL options"
+ flavor none
+ no_define
+ parent CYGPKG_REDBOOT
+ active_if CYGPKG_REDBOOT
+ description "
+ This option lists the target's requirements for a valid Redboot
+ configuration."
+
+ 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 $< $@
+ }
+ }
+ }
+}
diff --git a/ecos/packages/hal/arm/pid/current/include/hal_cache.h b/ecos/packages/hal/arm/pid/current/include/hal_cache.h
new file mode 100644
index 0000000..846abee
--- /dev/null
+++ b/ecos/packages/hal/arm/pid/current/include/hal_cache.h
@@ -0,0 +1,191 @@
+#ifndef CYGONCE_HAL_CACHE_H
+#define CYGONCE_HAL_CACHE_H
+
+//=============================================================================
+//
+// hal_cache.h
+//
+// HAL cache control API
+//
+//=============================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): nickg, gthomas
+// Contributors: nickg, gthomas
+// Date: 1998-09-28
+// 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 <cyg/infra/cyg_type.h>
+
+//-----------------------------------------------------------------------------
+// Cache dimensions
+
+// Data cache
+//#define HAL_DCACHE_SIZE 0 // Size of data cache in bytes
+//#define HAL_DCACHE_LINE_SIZE 0 // Size of a data cache line
+//#define HAL_DCACHE_WAYS 0 // Associativity of the cache
+
+// Instruction cache
+//#define HAL_ICACHE_SIZE 0 // Size of cache in bytes
+//#define HAL_ICACHE_LINE_SIZE 0 // Size of a cache line
+//#define HAL_ICACHE_WAYS 0 // 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
+#define HAL_DCACHE_ENABLE()
+
+// Disable the data cache
+#define HAL_DCACHE_DISABLE()
+
+// Invalidate the entire cache
+#define HAL_DCACHE_INVALIDATE_ALL()
+
+// Synchronize the contents of the cache with memory.
+#define HAL_DCACHE_SYNC()
+
+// Purge contents of data cache
+#define HAL_DCACHE_PURGE_ALL()
+
+// Query the state of the data cache (does not affect the caching)
+#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 (does not affect the caching)
+#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_HAL_CACHE_H
+// End of hal_cache.h
diff --git a/ecos/packages/hal/arm/pid/current/include/hal_diag.h b/ecos/packages/hal/arm/pid/current/include/hal_diag.h
new file mode 100644
index 0000000..00a0b57
--- /dev/null
+++ b/ecos/packages/hal/arm/pid/current/include/hal_diag.h
@@ -0,0 +1,100 @@
+#ifndef CYGONCE_HAL_DIAG_H
+#define CYGONCE_HAL_DIAG_H
+
+/*=============================================================================
+//
+// hal_diag.h
+//
+// HAL Support for Kernel Diagnostic Routines
+//
+//=============================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): nickg, gthomas
+// Contributors: nickg, gthomas
+// Date: 1998-09-11
+// 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
+
+/*---------------------------------------------------------------------------*/
+// LED
+
+externC void hal_diag_led(int n);
+
+/*---------------------------------------------------------------------------*/
+// delay
+
+externC void hal_delay_us(cyg_int32 usecs);
+#define HAL_DELAY_US(n) hal_delay_us(n);
+
+/*---------------------------------------------------------------------------*/
+/* end of hal_diag.h */
+#endif /* CYGONCE_HAL_DIAG_H */
diff --git a/ecos/packages/hal/arm/pid/current/include/hal_platform_ints.h b/ecos/packages/hal/arm/pid/current/include/hal_platform_ints.h
new file mode 100644
index 0000000..744691b
--- /dev/null
+++ b/ecos/packages/hal/arm/pid/current/include/hal_platform_ints.h
@@ -0,0 +1,91 @@
+#ifndef CYGONCE_HAL_PLATFORM_INTS_H
+#define CYGONCE_HAL_PLATFORM_INTS_H
+//==========================================================================
+//
+// hal_platform_ints.h
+//
+// HAL Interrupt and clock support
+//
+//==========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//==========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): gthomas
+// Contributors: gthomas
+// Date: 1999-02-20
+// Purpose: Define Interrupt support
+// Description: The interrupt details for the PID are defined here.
+// Usage:
+// #include <cyg/hal/hal_platform_ints.h>
+// ...
+//
+//
+//####DESCRIPTIONEND####
+//
+//==========================================================================
+
+#define CYGNUM_HAL_INTERRUPT_unused 0
+#define CYGNUM_HAL_INTERRUPT_PROGRAMMED_INTERRUPT 1
+#define CYGNUM_HAL_INTERRUPT_DEBUG_Rx 2
+#define CYGNUM_HAL_INTERRUPT_DEBUG_Tx 3
+#define CYGNUM_HAL_INTERRUPT_TIMER1 4
+#define CYGNUM_HAL_INTERRUPT_TIMER2 5
+#define CYGNUM_HAL_INTERRUPT_PC_SLOTA 6
+#define CYGNUM_HAL_INTERRUPT_PC_SLOTB 7
+#define CYGNUM_HAL_INTERRUPT_SERIALA 8
+#define CYGNUM_HAL_INTERRUPT_SERIALB 9
+#define CYGNUM_HAL_INTERRUPT_PARALLEL_PORT 10
+#define CYGNUM_HAL_INTERRUPT_ASB0 11
+#define CYGNUM_HAL_INTERRUPT_ASB1 12
+#define CYGNUM_HAL_INTERRUPT_APB0 13
+#define CYGNUM_HAL_INTERRUPT_APB1 14
+#define CYGNUM_HAL_INTERRUPT_APB2 15
+#define CYGNUM_HAL_INTERRUPT_EXTERNAL_FIQ 16
+
+#define CYGNUM_HAL_ISR_MIN 0
+#define CYGNUM_HAL_ISR_MAX 16
+#define CYGNUM_HAL_ISR_COUNT 17
+
+// The vector used by the Real time clock
+#define CYGNUM_HAL_INTERRUPT_RTC CYGNUM_HAL_INTERRUPT_TIMER2
+
+
+//----------------------------------------------------------------------------
+// Reset.
+
+#define HAL_PLATFORM_RESET() CYG_EMPTY_STATEMENT
+
+#define HAL_PLATFORM_RESET_ENTRY 0x4000000
+
+#endif // CYGONCE_HAL_PLATFORM_INTS_H
diff --git a/ecos/packages/hal/arm/pid/current/include/hal_platform_setup.h b/ecos/packages/hal/arm/pid/current/include/hal_platform_setup.h
new file mode 100644
index 0000000..266b165
--- /dev/null
+++ b/ecos/packages/hal/arm/pid/current/include/hal_platform_setup.h
@@ -0,0 +1,79 @@
+#ifndef CYGONCE_HAL_PLATFORM_SETUP_H
+#define CYGONCE_HAL_PLATFORM_SETUP_H
+
+/*=============================================================================
+//
+// hal_platform_setup.h
+//
+// Platform specific support for HAL (assembly code)
+//
+//=============================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): gthomas
+// Contributors: gthomas
+// Date: 1999-04-13
+// Purpose: ARM/PID platform specific support routines
+// Description:
+// Usage: #include <cyg/hal/hal_platform_setup.h>
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================*/
+
+
+// Define macro used to diddle the LEDs during early initialization.
+// Can use r0+r1. Argument in \x.
+// Control the LEDs PP0-PP3. This requires the jumpers on pins 9-16 to
+// be set on LK11 in order to be visible. Otherwise the parallel port
+// data pins are diddled instead.
+#ifdef CYGHWR_HAL_ARM_PID_DIAG_LEDS
+#define CYGHWR_LED_MACRO \
+ ldr r0,=0x0d800040 ;\
+ mov r1, #((15 & (\x)) << 4) ;\
+ strb r1, [r0] ;
+#endif
+
+#define MEM_RESET 0x0B000020 // Write to this location to enable RAM
+
+#define PLATFORM_SETUP1 \
+ ldr r0,=10f ;\
+ mov pc,r0 ;\
+10: ldr r0,=MEM_RESET /* enable RAM */ ;\
+ str r0,[r0]
+
+/*---------------------------------------------------------------------------*/
+/* end of hal_platform_setup.h */
+#endif /* CYGONCE_HAL_PLATFORM_SETUP_H */
diff --git a/ecos/packages/hal/arm/pid/current/include/pkgconf/mlt_arm_pid_ram.h b/ecos/packages/hal/arm/pid/current/include/pkgconf/mlt_arm_pid_ram.h
new file mode 100644
index 0000000..a873fc2
--- /dev/null
+++ b/ecos/packages/hal/arm/pid/current/include/pkgconf/mlt_arm_pid_ram.h
@@ -0,0 +1,17 @@
+// eCos memory layout - Fri Oct 20 05:31:09 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 (0)
+#define CYGMEM_REGION_ram_SIZE (0x80000)
+#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 (0x80000 - (size_t) CYG_LABEL_NAME (__heap1))
diff --git a/ecos/packages/hal/arm/pid/current/include/pkgconf/mlt_arm_pid_ram.ldi b/ecos/packages/hal/arm/pid/current/include/pkgconf/mlt_arm_pid_ram.ldi
new file mode 100644
index 0000000..e8e2ea1
--- /dev/null
+++ b/ecos/packages/hal/arm/pid/current/include/pkgconf/mlt_arm_pid_ram.ldi
@@ -0,0 +1,27 @@
+// eCos memory layout - Fri Oct 20 05:31:09 2000
+
+// This is a generated file - do not edit
+
+#include <cyg/infra/cyg_type.inc>
+
+MEMORY
+{
+ ram : ORIGIN = 0, LENGTH = 0x80000
+}
+
+SECTIONS
+{
+ SECTIONS_BEGIN
+ SECTION_fixed_vectors (ram, 0x20, LMA_EQ_VMA)
+ SECTION_rom_vectors (ram, 0x8000, 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)
+ CYG_LABEL_DEFN(__heap1) = ALIGN (0x8);
+ SECTIONS_END
+}
diff --git a/ecos/packages/hal/arm/pid/current/include/pkgconf/mlt_arm_pid_ram.mlt b/ecos/packages/hal/arm/pid/current/include/pkgconf/mlt_arm_pid_ram.mlt
new file mode 100644
index 0000000..70e01f4
--- /dev/null
+++ b/ecos/packages/hal/arm/pid/current/include/pkgconf/mlt_arm_pid_ram.mlt
@@ -0,0 +1,13 @@
+version 0
+region ram 0 80000 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 8000 8000 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 1 0 1 heap1 heap1 !
+section heap1 0 8 0 0 0 0 0 0 !
diff --git a/ecos/packages/hal/arm/pid/current/include/pkgconf/mlt_arm_pid_rom.h b/ecos/packages/hal/arm/pid/current/include/pkgconf/mlt_arm_pid_rom.h
new file mode 100644
index 0000000..ffc7eed
--- /dev/null
+++ b/ecos/packages/hal/arm/pid/current/include/pkgconf/mlt_arm_pid_rom.h
@@ -0,0 +1,20 @@
+// eCos memory layout - Fri Oct 20 05:30: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 (0)
+#define CYGMEM_REGION_ram_SIZE (0x80000)
+#define CYGMEM_REGION_ram_ATTR (CYGMEM_REGION_ATTR_R | CYGMEM_REGION_ATTR_W)
+#define CYGMEM_REGION_rom (0x4000000)
+#define CYGMEM_REGION_rom_SIZE (0x80000)
+#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 (0x80000 - (size_t) CYG_LABEL_NAME (__heap1))
diff --git a/ecos/packages/hal/arm/pid/current/include/pkgconf/mlt_arm_pid_rom.ldi b/ecos/packages/hal/arm/pid/current/include/pkgconf/mlt_arm_pid_rom.ldi
new file mode 100644
index 0000000..4b53a3e
--- /dev/null
+++ b/ecos/packages/hal/arm/pid/current/include/pkgconf/mlt_arm_pid_rom.ldi
@@ -0,0 +1,28 @@
+// eCos memory layout - Fri Oct 20 05:30:30 2000
+
+// This is a generated file - do not edit
+
+#include <cyg/infra/cyg_type.inc>
+
+MEMORY
+{
+ ram : ORIGIN = 0, LENGTH = 0x80000
+ rom : ORIGIN = 0x4000000, LENGTH = 0x80000
+}
+
+SECTIONS
+{
+ SECTIONS_BEGIN
+ SECTION_rom_vectors (rom, 0x4000000, 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, 0x800, FOLLOWING (.gcc_except_table))
+ SECTION_bss (ram, ALIGN (0x4), LMA_EQ_VMA)
+ CYG_LABEL_DEFN(__heap1) = ALIGN (0x8);
+ SECTIONS_END
+}
diff --git a/ecos/packages/hal/arm/pid/current/include/pkgconf/mlt_arm_pid_rom.mlt b/ecos/packages/hal/arm/pid/current/include/pkgconf/mlt_arm_pid_rom.mlt
new file mode 100644
index 0000000..1341210
--- /dev/null
+++ b/ecos/packages/hal/arm/pid/current/include/pkgconf/mlt_arm_pid_rom.mlt
@@ -0,0 +1,14 @@
+version 0
+region ram 0 80000 0 !
+region rom 4000000 80000 1 !
+section fixed_vectors 0 1 0 1 1 0 1 0 20 20 !
+section data 0 1 1 1 1 1 0 0 800 bss !
+section bss 0 4 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 4000000 4000000 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 !
diff --git a/ecos/packages/hal/arm/pid/current/include/plf_io.h b/ecos/packages/hal/arm/pid/current/include/plf_io.h
new file mode 100644
index 0000000..a706165
--- /dev/null
+++ b/ecos/packages/hal/arm/pid/current/include/plf_io.h
@@ -0,0 +1,63 @@
+#ifndef CYGONCE_HAL_ARM_PID_PLF_IO_H
+#define CYGONCE_HAL_ARM_PID_PLF_IO_H
+
+/*=============================================================================
+//
+// plf_io.h
+//
+// Platform specific support (register layout, etc)
+//
+//=============================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jskov
+// Contributors: jskov
+// Date: 2002-01-28
+// Purpose: Platform specific support routines
+// Description:
+// Usage: #include <cyg/hal/hal_io.h>
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================*/
+
+//-----------------------------------------------------------------------------
+// Memory map is 1-1
+
+#define CYGARC_PHYSICAL_ADDRESS(_x_) (_x_)
+
+//-----------------------------------------------------------------------------
+#endif // CYGONCE_HAL_ARM_PID_PLF_IO_H
+// EOF plf_io.h
diff --git a/ecos/packages/hal/arm/pid/current/include/plf_stub.h b/ecos/packages/hal/arm/pid/current/include/plf_stub.h
new file mode 100644
index 0000000..1d1e955
--- /dev/null
+++ b/ecos/packages/hal/arm/pid/current/include/plf_stub.h
@@ -0,0 +1,84 @@
+#ifndef CYGONCE_HAL_PLF_STUB_H
+#define CYGONCE_HAL_PLF_STUB_H
+
+//=============================================================================
+//
+// plf_stub.h
+//
+// Platform header for GDB stub support.
+//
+//=============================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jskov
+// Contributors:jskov
+// Date: 1999-02-15
+// Purpose: Platform HAL stub support for ARM/PID boards.
+// Usage: #include <cyg/hal/plf_stub.h>
+//
+//####DESCRIPTIONEND####
+//
+//=============================================================================
+
+#include <pkgconf/hal.h>
+#include <pkgconf/hal_arm_pid.h>
+
+#ifdef CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS
+
+#include <cyg/infra/cyg_type.h> // CYG_UNUSED_PARAM
+
+#include <cyg/hal/arm_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.
+#define HAL_STUB_PLATFORM_INIT() CYG_EMPTY_STATEMENT
+
+#endif // ifdef CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS
+//-----------------------------------------------------------------------------
+#endif // CYGONCE_HAL_PLF_STUB_H
+// End of plf_stub.h
diff --git a/ecos/packages/hal/arm/pid/current/misc/dl.c b/ecos/packages/hal/arm/pid/current/misc/dl.c
new file mode 100644
index 0000000..600e0e4
--- /dev/null
+++ b/ecos/packages/hal/arm/pid/current/misc/dl.c
@@ -0,0 +1,89 @@
+//==========================================================================
+//
+// dl.c
+//
+// ARM PID7 eval board FLASH program tool
+//
+//==========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//==========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): gthomas
+// Contributors: gthomas
+// Date: 1998-11-18
+// Description: Tool used for simple handshake downloads.
+//####DESCRIPTIONEND####
+
+#include <stdio.h>
+
+#define SYNC_COUNT 63
+
+int
+main(int argc, char *argv[])
+{
+ int c, count, j;
+ char cout, cin;
+ FILE *in, *log;
+ if ((in = fopen(argv[1], "r")) == (FILE *)NULL) {
+ fprintf(stderr, "Can't open '%s'\n", argv[1]);
+ exit(1);
+ }
+ if ((log = fopen("/tmp/dl.log", "w")) == (FILE *)NULL) {
+ fprintf(stderr, "Can't open log file\n");
+ exit(1);
+ }
+ fprintf(stderr, "Downloading '%s'\n", argv[1]);
+ count = 0; j = 0;
+ write(1, ">", 1); // Magic start
+ while ((c = fgetc(in)) != EOF) {
+ cout = c;
+ write(1, &cout, 1);
+ if (++j == SYNC_COUNT) {
+ read(0, &cin, 1);
+ if (cin != cout) {
+ fprintf(stderr, "Sync problem - in: %x, out: %x, byte: %x\n", cin, cout, count);
+ fprintf(log, "Sync problem - in: %x, out: %x, byte: %x\n", cin, cout, count);
+ fflush(log);
+ break;
+ }
+ j = 0;
+ }
+ count++;
+ if ((count % 256) == 255) fprintf(stderr, "%08X\n", count);
+ }
+ sleep(2);
+ write(1, ":", 1);
+ fclose(log);
+ exit(0);
+}
diff --git a/ecos/packages/hal/arm/pid/current/misc/redboot_RAM-BE.ecm b/ecos/packages/hal/arm/pid/current/misc/redboot_RAM-BE.ecm
new file mode 100644
index 0000000..09a9768
--- /dev/null
+++ b/ecos/packages/hal/arm/pid/current/misc/redboot_RAM-BE.ecm
@@ -0,0 +1,54 @@
+cdl_savefile_version 1;
+cdl_savefile_command cdl_savefile_version {};
+cdl_savefile_command cdl_savefile_command {};
+cdl_savefile_command cdl_configuration { description hardware template package };
+cdl_savefile_command cdl_package { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_component { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_option { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_interface { value_source user_value wizard_value inferred_value };
+
+cdl_configuration eCos {
+ description "" ;
+ hardware pid ;
+ template redboot ;
+ package -hardware CYGPKG_HAL_ARM current ;
+ package -hardware CYGPKG_HAL_ARM_PID current ;
+ package -hardware CYGPKG_IO_SERIAL_GENERIC_16X5X current ;
+ package -hardware CYGPKG_IO_SERIAL_ARM_PID current ;
+ package -hardware CYGPKG_DEVS_FLASH_ARM_PID current ;
+ package -hardware CYGPKG_DEVS_FLASH_ATMEL_AT29CXXXX current ;
+ package -template CYGPKG_HAL current ;
+ package -template CYGPKG_INFRA current ;
+ package -template CYGPKG_REDBOOT current ;
+ package CYGPKG_IO_FLASH current ;
+};
+
+cdl_option CYGBLD_BUILD_GDB_STUBS {
+ user_value 0
+};
+
+cdl_option CYGDBG_HAL_COMMON_INTERRUPTS_SAVE_MINIMUM_CONTEXT {
+ user_value 0
+};
+
+cdl_option CYGDBG_HAL_COMMON_CONTEXT_SAVE_MINIMUM {
+ inferred_value 0
+};
+
+cdl_option CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS {
+ inferred_value 1
+};
+
+cdl_option CYGSEM_HAL_USE_ROM_MONITOR {
+ inferred_value 0 0
+};
+
+cdl_option CYGHWR_HAL_ARM_BIGENDIAN {
+ user_value 1
+};
+
+cdl_component CYGBLD_BUILD_REDBOOT {
+ user_value 1
+};
+
+
diff --git a/ecos/packages/hal/arm/pid/current/misc/redboot_RAM.ecm b/ecos/packages/hal/arm/pid/current/misc/redboot_RAM.ecm
new file mode 100644
index 0000000..5da083f
--- /dev/null
+++ b/ecos/packages/hal/arm/pid/current/misc/redboot_RAM.ecm
@@ -0,0 +1,50 @@
+cdl_savefile_version 1;
+cdl_savefile_command cdl_savefile_version {};
+cdl_savefile_command cdl_savefile_command {};
+cdl_savefile_command cdl_configuration { description hardware template package };
+cdl_savefile_command cdl_package { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_component { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_option { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_interface { value_source user_value wizard_value inferred_value };
+
+cdl_configuration eCos {
+ description "" ;
+ hardware pid ;
+ template redboot ;
+ package -hardware CYGPKG_HAL_ARM current ;
+ package -hardware CYGPKG_HAL_ARM_PID current ;
+ package -hardware CYGPKG_IO_SERIAL_GENERIC_16X5X current ;
+ package -hardware CYGPKG_IO_SERIAL_ARM_PID current ;
+ package -hardware CYGPKG_DEVS_FLASH_ARM_PID current ;
+ package -hardware CYGPKG_DEVS_FLASH_ATMEL_AT29CXXXX current ;
+ package -template CYGPKG_HAL current ;
+ package -template CYGPKG_INFRA current ;
+ package -template CYGPKG_REDBOOT current ;
+ package CYGPKG_IO_FLASH current ;
+};
+
+cdl_option CYGBLD_BUILD_GDB_STUBS {
+ user_value 0
+};
+
+cdl_option CYGDBG_HAL_COMMON_INTERRUPTS_SAVE_MINIMUM_CONTEXT {
+ user_value 0
+};
+
+cdl_option CYGDBG_HAL_COMMON_CONTEXT_SAVE_MINIMUM {
+ inferred_value 0
+};
+
+cdl_option CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS {
+ inferred_value 1
+};
+
+cdl_option CYGSEM_HAL_USE_ROM_MONITOR {
+ inferred_value 0 0
+};
+
+cdl_component CYGBLD_BUILD_REDBOOT {
+ user_value 1
+};
+
+
diff --git a/ecos/packages/hal/arm/pid/current/misc/redboot_ROM-BE.ecm b/ecos/packages/hal/arm/pid/current/misc/redboot_ROM-BE.ecm
new file mode 100644
index 0000000..dc7ad5e
--- /dev/null
+++ b/ecos/packages/hal/arm/pid/current/misc/redboot_ROM-BE.ecm
@@ -0,0 +1,62 @@
+cdl_savefile_version 1;
+cdl_savefile_command cdl_savefile_version {};
+cdl_savefile_command cdl_savefile_command {};
+cdl_savefile_command cdl_configuration { description hardware template package };
+cdl_savefile_command cdl_package { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_component { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_option { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_interface { value_source user_value wizard_value inferred_value };
+
+cdl_configuration eCos {
+ description "" ;
+ hardware pid ;
+ template redboot ;
+ package -hardware CYGPKG_HAL_ARM current ;
+ package -hardware CYGPKG_HAL_ARM_PID current ;
+ package -hardware CYGPKG_IO_SERIAL_GENERIC_16X5X current ;
+ package -hardware CYGPKG_IO_SERIAL_ARM_PID current ;
+ package -hardware CYGPKG_DEVS_FLASH_ARM_PID current ;
+ package -hardware CYGPKG_DEVS_FLASH_ATMEL_AT29CXXXX current ;
+ package -template CYGPKG_HAL current ;
+ package -template CYGPKG_INFRA current ;
+ package -template CYGPKG_REDBOOT current ;
+ package CYGPKG_IO_FLASH current ;
+};
+
+cdl_option CYGBLD_BUILD_GDB_STUBS {
+ user_value 0
+};
+
+cdl_option CYGDBG_HAL_COMMON_INTERRUPTS_SAVE_MINIMUM_CONTEXT {
+ user_value 0
+};
+
+cdl_option CYGDBG_HAL_COMMON_CONTEXT_SAVE_MINIMUM {
+ inferred_value 0
+};
+
+cdl_option CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS {
+ inferred_value 1
+};
+
+cdl_option CYGSEM_HAL_ROM_MONITOR {
+ inferred_value 1
+};
+
+cdl_option CYGSEM_HAL_USE_ROM_MONITOR {
+ inferred_value 0 0
+};
+
+cdl_option CYGHWR_HAL_ARM_BIGENDIAN {
+ user_value 1
+};
+
+cdl_component CYG_HAL_STARTUP {
+ user_value ROM
+};
+
+cdl_component CYGBLD_BUILD_REDBOOT {
+ user_value 1
+};
+
+
diff --git a/ecos/packages/hal/arm/pid/current/misc/redboot_ROM.ecm b/ecos/packages/hal/arm/pid/current/misc/redboot_ROM.ecm
new file mode 100644
index 0000000..1b10991
--- /dev/null
+++ b/ecos/packages/hal/arm/pid/current/misc/redboot_ROM.ecm
@@ -0,0 +1,58 @@
+cdl_savefile_version 1;
+cdl_savefile_command cdl_savefile_version {};
+cdl_savefile_command cdl_savefile_command {};
+cdl_savefile_command cdl_configuration { description hardware template package };
+cdl_savefile_command cdl_package { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_component { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_option { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_interface { value_source user_value wizard_value inferred_value };
+
+cdl_configuration eCos {
+ description "" ;
+ hardware pid ;
+ template redboot ;
+ package -hardware CYGPKG_HAL_ARM current ;
+ package -hardware CYGPKG_HAL_ARM_PID current ;
+ package -hardware CYGPKG_IO_SERIAL_GENERIC_16X5X current ;
+ package -hardware CYGPKG_IO_SERIAL_ARM_PID current ;
+ package -hardware CYGPKG_DEVS_FLASH_ARM_PID current ;
+ package -hardware CYGPKG_DEVS_FLASH_ATMEL_AT29CXXXX current ;
+ package -template CYGPKG_HAL current ;
+ package -template CYGPKG_INFRA current ;
+ package -template CYGPKG_REDBOOT current ;
+ package CYGPKG_IO_FLASH current ;
+};
+
+cdl_option CYGBLD_BUILD_GDB_STUBS {
+ user_value 0
+};
+
+cdl_option CYGDBG_HAL_COMMON_INTERRUPTS_SAVE_MINIMUM_CONTEXT {
+ user_value 0
+};
+
+cdl_option CYGDBG_HAL_COMMON_CONTEXT_SAVE_MINIMUM {
+ inferred_value 0
+};
+
+cdl_option CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS {
+ inferred_value 1
+};
+
+cdl_option CYGSEM_HAL_ROM_MONITOR {
+ inferred_value 1
+};
+
+cdl_option CYGSEM_HAL_USE_ROM_MONITOR {
+ inferred_value 0 0
+};
+
+cdl_component CYG_HAL_STARTUP {
+ user_value ROM
+};
+
+cdl_component CYGBLD_BUILD_REDBOOT {
+ user_value 1
+};
+
+
diff --git a/ecos/packages/hal/arm/pid/current/src/Notes_GDB_stub b/ecos/packages/hal/arm/pid/current/src/Notes_GDB_stub
new file mode 100644
index 0000000..235803c
--- /dev/null
+++ b/ecos/packages/hal/arm/pid/current/src/Notes_GDB_stub
@@ -0,0 +1,194 @@
+===========================================================================
+## ####ECOSGPLCOPYRIGHTBEGIN####
+## -------------------------------------------
+## This file is part of eCos, the Embedded Configurable Operating System.
+## Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+##
+## eCos is free software; you can redistribute it and/or modify it under
+## the terms of the GNU General Public License as published by the Free
+## Software Foundation; either version 2 or (at your option) any later
+## version.
+##
+## eCos is distributed in the hope that it will be useful, but WITHOUT
+## ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+## FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+## for more details.
+##
+## You should have received a copy of the GNU General Public License
+## along with eCos; if not, write to the Free Software Foundation, Inc.,
+## 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+##
+## As a special exception, if other files instantiate templates or use
+## macros or inline functions from this file, or you compile this file
+## and link it with other works to produce a work based on this file,
+## this file does not by itself cause the resulting work to be covered by
+## the GNU General Public License. However the source code for this file
+## must still be made available in accordance with section (3) of the GNU
+## General Public License v2.
+##
+## This exception does not invalidate any other reasons why a work based
+## on this file might be covered by the GNU General Public License.
+## -------------------------------------------
+## ####ECOSGPLCOPYRIGHTEND####
+===========================================================================
+
+27 Oct 1999, revised on 2000.01.28
+
+How to build and install the GDB module on the PID
+
+Make GDB module
+~~~~~~~~~~~~~~~
+Configure and build using the 'stubs' template for the PID
+target. These are the necessary CLI instructions. It can also be done
+from the Configtool by selecting the appropriate templates.
+
+ % cd /tmp
+ % mkdir stubs
+ % cd stubs
+ % ecosconfig new pid stubs
+ % ecosconfig tree
+ % make
+
+This will install some files in ./install/bin:
+
+ cygmon.elf: The built stubs image
+ cygmon.bin: The image converted to binary (suitable for burning to ROM)
+ cygmon.img: The relocated ELF image (suitable for FLASH writing, see below)
+
+
+Make FLASH tool
+~~~~~~~~~~~~~~~
+
+Again, these are the necessary CLI instructions. It can also be done
+from the Configtool by selecting the appropriate templates, and
+enabling the option.
+
+ % cd /tmp
+ % mkdir pid-flash
+ % cd pid-flash
+ % ecosconfig new pid
+ % <edit ecos.ecc, enabling the CYGBLD_BUILD_FLASH_TOOL option:>
+ --- ecos.ecc.orig Fri Jan 28 11:21:43 2000
+ +++ ecos.ecc Fri Jan 28 11:22:01 2000
+ @@ -150,7 +150,7 @@
+ cdl_option CYGBLD_BUILD_FLASH_TOOL {
+ # Flavor: bool
+ # No user value, uncomment the following line to provide one.
+ - # user_value 0
+ + user_value 1
+ # value_source default
+ # Default value: 0
+ # Requires: CYG_HAL_STARTUP == "RAM"
+ % ecosconfig resolve
+ % ecosconfig tree
+ % make
+
+The flash tool is installed in ./install/bin
+
+
+Prepare board for eCos
+~~~~~~~~~~~~~~~~~~~~~~
+ 1. Set jumper 7-8 on LK6 [using the Angle code in the 16 bit EPROM]
+ 2. Set jumper 5-6 on LK6 [select 8bit ROM mode]
+ 3. Set jumper LK18 [ROM remap - this is also required for eCos]
+ 4. Set S1 to 0-0-1-1 [20MHz operation]
+
+
+Program FLASH
+~~~~~~~~~~~~~
+ 1. Download the image onto the PID board:
+ % cd /tmp
+ % arm-elf-gdb -nw stubs/install/bin/gdb_image.img
+
+ (gdb) target rdi s=<serial device>
+ Angel Debug Monitor V1.04 (Advanced RISC Machines SDT 2.11a) for PID
+ Built with Serial(x1), Parallel, DCC
+ Rebuilt on Apr 7 1998 at 22:20:43
+ Serial Rate: 9600
+ Connected to ARM RDI target.
+ (gdb) load
+ Loading section .rom_vectors, size 0x60 lma 0x60000
+ Loading section .text, size 0xeea8 lma 0x60060
+ Loading section .rodata, size 0x304c lma 0x6ef08
+ Loading section .data, size 0x7f8 lma 0x71f54
+ Start address 0x60060 , load size 75596
+ Transfer rate: 5548 bits/sec.
+ (gdb) quit
+
+ This will download the stubs onto the board at 0x60000..0x80000
+
+ Use /dev/ttyS0, COM1 or similar for the <serial device> name.
+
+ 2. Now download the FLASH programmer tool
+ % arm-elf-gdb -nw pid-flash/install/bin/prog_flash.img
+
+ (gdb) target rdi s=<serial device>
+ Angel Debug Monitor V1.04 (Advanced RISC Machines SDT 2.11a) for PID
+ Built with Serial(x1), Parallel, DCC
+ Rebuilt on Apr 7 1998 at 22:20:43
+ Serial Rate: 9600
+ Connected to ARM RDI target.
+ (gdb) load
+ Loading section .rom_vectors, size 0x60 lma 0x4000
+ Loading section .text, size 0x4964 lma 0x4060
+ Loading section .rodata, size 0x384 lma 0x89c4
+ Loading section .data, size 0x28c lma 0x8d48
+ Start address 0x4060 , load size 20436
+ Transfer rate: 5449 bits/sec.
+ (gdb) cont
+
+ 3. The FLASH tool will output some text on the board serial port B at
+ 38400 baud:
+
+ ARM eCos
+ FLASH here!
+ manuf: 8, device: 40
+ Error: Wrong Manufaturer: 08
+ ... Please change FLASH jumper
+
+ 4. This text is repeated until you remove the jumper 7-8 on LK6. Then
+ the output should be:
+
+ manuf: 1F, device: A4
+ AT29C040A recognised
+ About to program FLASH using data at 60000..80000
+ *** Press RESET now to abort!
+
+ 5. You have about 10 seconds to abort the operation by pressing
+ reset. After this timeout, the FLASH programming happens:
+
+ ...Programming FLASH
+ All done!
+
+ 6. Quit/kill the GDB process which will hang.
+
+ 7. Next time you reset the board, the stub will be in control, communicating
+ on serial port A at 38400 baud. See documentation for further details
+ on how to connect with GDB.
+
+
+
+Big-Endian operation
+~~~~~~~~~~~~~~~~~~~~
+
+ 1) If the board is to be used in big-endian mode, the stub should be
+ configured for platform 'pidbe' instead of 'pid'.
+
+ 2a) If a big-endian rom controller is installed on the board, the
+ programming of a new stub into flash is covered in the ARM PID
+ manual.
+
+ 2b) If a big-endian rom controller is _not_ used, this is what you
+ must do:
+
+ 1) Follow the above instructions (including jumper settings) ,
+ but instead of building and using the 'prog_flash' FLASH
+ tool, use the 'prog_flash_BE_image_LE_system' FLASH tool
+ (build it by enabling CYGBLD_BUILD_FLASH_TOOL_BE)
+
+ 2) Instead of resetting the board after the FLASH has been
+ programmed, switch off the power and enable jumper LK4.
+
+ If you have to re-program the FLASH later, you can follow the
+ steps above again, but also disable jumper LK4 when changing the
+ other jumpers.
diff --git a/ecos/packages/hal/arm/pid/current/src/flash.c b/ecos/packages/hal/arm/pid/current/src/flash.c
new file mode 100644
index 0000000..bfce916
--- /dev/null
+++ b/ecos/packages/hal/arm/pid/current/src/flash.c
@@ -0,0 +1,445 @@
+//==========================================================================
+//
+// flash.c
+//
+// ARM PID7 eval board FLASH program tool
+//
+//==========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//==========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): gthomas
+// Contributors: gthomas
+// Date: 1998-11-18
+// Description: Tool used to program onboard FLASH image
+//####DESCRIPTIONEND####
+
+//
+// This program will program the FLASH on the PID board
+//
+
+#include <pkgconf/libc.h> // Configuration header
+
+#include <cyg/kernel/kapi.h>
+#include <stdlib.h>
+#include <ctype.h>
+#include <cyg/infra/testcase.h>
+#include <sys/cstartup.h>
+
+#ifndef FALSE
+#define FALSE 0
+#define TRUE 1
+#endif
+
+#define SYNC_COUNT 63
+
+extern void diag_printf(const char *, ...);
+int identify_FLASH(void);
+void write_sector(int, char *);
+bool load_srecords(char (*readc)(), CYG_ADDRESS *start, int *size);
+
+char dbuf[256];
+char *raw = (char *)0x10000;
+char *flash_buffer = (char *)0x30000;
+int pos, len;
+
+// FUNCTIONS
+
+externC void
+cyg_package_start( void )
+{
+#ifdef CYGPKG_LIBC
+ cyg_iso_c_start();
+#else
+ (void)main(0, NULL);
+#endif
+} // cyg_package_start()
+
+char nextch(void)
+{
+ return (raw[pos++]);
+}
+
+int
+main( int argc, char *argv[] )
+{
+ int i, j, size;
+ CYG_ADDRESS entry;
+ char c;
+ diag_printf("FLASH here!\n");
+ while (identify_FLASH() == 0) {
+ diag_printf("... Please change FLASH jumper - hit C/R to continue:");
+ do {
+ hal_diag_read_char(&c);
+ } while ((c != '\r') && (c != '\n'));
+ diag_printf("\n");
+ }
+ restart:
+ diag_printf("Ready file - hit C/R to continue:");
+ while (TRUE) {
+ hal_diag_read_char(&c);
+ if (c == '>') break;
+ }
+ i = 0; j = 0;
+ while (1) {
+ hal_diag_read_char(&c);
+ if (c == '!') {
+ diag_printf("... Reset\n");
+ goto restart;
+ }
+ raw[i++] = c;
+ if (++j == SYNC_COUNT) {
+ hal_diag_write_char(c);
+ j = 0;
+ }
+ if (c == ':') break;
+ }
+ diag_printf("\n");
+ pos = 0; len = i;
+ if (load_srecords(nextch, &entry, &size)) {
+ diag_printf("Read %x bytes, entry: %x\n", size, entry);
+ dump_buf(flash_buffer, 128);
+ diag_printf("\nData loaded - hit '!' to continue:");
+ while (TRUE) {
+ hal_diag_read_char(&c);
+ if (c == '!') break;
+ }
+ diag_printf("\n");
+ diag_printf("...Programming FLASH\n");
+ pos = 0; i = 0;
+ while (pos < size) {
+ write_sector(i++, flash_buffer+pos);
+ pos += 256;
+ }
+ } else {
+ // Display buffer around failure
+ dump_buf(&raw[pos-32], 64);
+ }
+ diag_printf("All done!\n");
+ while (1) ;
+}
+
+// Adapted from ARM sample code
+#define SEQ_ADD1 0x5555
+#define SEQ_ADD2 0xAAAA
+#define START_CMD1 0xAA
+#define START_CMD2 0x55
+#define ID_CMD 0x90
+#define PROG_CMD 0xA0
+#define STOP_CMD 0xF0
+
+#define MAN_ATMEL 0x1F
+#define ATMEL_AT29C040_ID 0X5B
+#define ATMEL_AT29C040A_ID 0XA4
+#define ATMEL_AT29C1024_ID 0X25
+#define ATMEL_SECTOR_SIZE 256
+#define ATMEL_MAX_SECTORS 2048
+
+int manuf_code, device_code, sector_size, max_no_of_sectors, word_mode;
+volatile char *FLASH = (volatile char *)0x04000000;
+
+int
+identify_FLASH(void )
+{
+ // Enter Software Product Identification Mode
+ FLASH[SEQ_ADD1] = START_CMD1;
+ FLASH[SEQ_ADD2] = START_CMD2;
+ FLASH[SEQ_ADD1] = ID_CMD;
+
+ // Wait at least 10ms
+ cyg_thread_delay(2);
+
+ // Read Manufacturer and device code from the device
+ manuf_code = FLASH[0];
+ device_code = FLASH[1];
+
+ diag_printf("manuf: %x, device: %x\n", manuf_code, device_code);
+
+ // Exit Software Product Identification Mode
+ FLASH[SEQ_ADD1] = START_CMD1;
+ FLASH[SEQ_ADD2] = START_CMD2;
+ FLASH[SEQ_ADD1] = STOP_CMD;
+
+ // Wait at least 10ms
+ cyg_thread_delay(5);
+
+ if (manuf_code != MAN_ATMEL) {
+ diag_printf ( "Error: Wrong Manufaturer: %02x\n",manuf_code );
+ return (0);
+ }
+
+ switch (device_code) {
+ case ATMEL_AT29C040A_ID:
+ diag_printf ("AT29C040A recognised\n");
+ sector_size = ATMEL_SECTOR_SIZE;
+ max_no_of_sectors = ATMEL_MAX_SECTORS;
+ word_mode = FALSE;
+ break;
+ case ATMEL_AT29C1024_ID:
+ diag_printf ("AT29C1024 recognised\n");
+ sector_size = ATMEL_SECTOR_SIZE;
+ max_no_of_sectors = ATMEL_MAX_SECTORS;
+ word_mode = TRUE;
+ break;
+ default :
+ diag_printf ( "Error: Unsupported device: %02x\n", device_code);
+ return (0);
+ }
+ return (1);
+}
+
+void
+write_sector(int num, char *buf)
+{
+ int i, cnt;
+ volatile char *wrt = (volatile int *)&FLASH[num*sector_size];
+
+// diag_printf("Writing to %08x\n", wrt);
+ // Enter Program Mode
+ FLASH[SEQ_ADD1] = START_CMD1;
+ FLASH[SEQ_ADD2] = START_CMD2;
+ FLASH[SEQ_ADD1] = PROG_CMD;
+
+ // Note: write bytes as longs regardless of bus width
+ for (i = 0; i < sector_size; i++) {
+ wrt[i] = buf[i];
+ }
+
+ // Wait for sector to program
+ cnt = 0;
+ i = sector_size - 1;
+ while (wrt[i] != buf[i]) {
+ if (cnt++ > 0x01000000) break;
+ }
+// diag_printf("Out - i: %d, wrt[i] = %08X.%08X, buf[i] = %08X, count = %x\n", i, &wrt[i], wrt[i], buf[i], cnt);
+
+ // Verify
+ for (i = 0; i < sector_size; i++) {
+ for (cnt = 0; cnt < 10; cnt++) {
+ if (*wrt == *buf) break;
+ cyg_thread_delay(1);
+ }
+ if (cnt == 10) {
+ diag_printf("Can't program at 0x%08X: %02X not %02X\n", wrt, *wrt, *buf);
+ }
+ wrt++; buf++;
+ }
+}
+
+// S-record download code - viciously 'adapted' from "kernel/src/sload/sload.c"
+
+/*---------------------------------------------------------------------------*/
+/*
+//
+// An srecord looks like this:
+//
+// byte count-+ address
+// start ---+ | | data +- checksum
+// | | | |
+// S01000006F6B692D746573742E73726563E4
+// S315000448600000000000000000FC00005900000000E9
+// S31A0004000023C1400037DE00F023604000377B009020825000348D
+// S30B0004485A0000000000004E
+// S70500040000F6
+//
+// S<type><length><address><data><checksum>
+//
+// Where
+// - length (2 characters)
+// is the number of bytes following upto the checksum. Note that
+// this is not the number of chars following, since it takes two
+// chars to represent a byte.
+// - type (2 characters)
+// is one of:
+// 0) header record
+// 1) two byte address data record
+// 2) three byte address data record
+// 3) four byte address data record
+// 5) record containing the number of S1, S2, or S3 records
+// 7) four byte address termination record
+// 8) three byte address termination record
+// 9) two byte address termination record
+//
+// - address (4, 6, or 8 characters)
+// is the start address of the data following, or in the case of
+// a termination record, the start address of the image
+// - data (0-2n characters)
+// is the data.
+// - checksum (2 characters)
+// is the sum of all the raw byte data in the record, from the length
+// upwards, modulo 256 and subtracted from 255.
+//
+// Useful S-records for testing purposes:
+// Start record:
+// S00B0000737461303030447563
+// This sets the default address to be 0x02005000:
+// S31A020050002700801481C4E0B0A15000000100000091D02000018F
+// S31A0200501500000001000000010000002700801881C4E2E4A150C1
+// S311020080A42407070A090B0A0781050000E1
+// Termination record:
+// S70502005000A8
+//
+*/
+
+#define S0 0
+#define S1 1
+#define S2 2
+#define S3 3
+#define S5 5
+#define S7 7
+#define S8 8
+#define S9 9
+
+/*---------------------------------------------------------------------------*/
+
+int hex2digit(char c)
+{
+ if( c & 0x40 ) c += 9;;
+ return c &0x0f;
+
+// return ( c <= '9' ? c - '0' :
+// c <= 'Z' ? c - 'A' + 10 :
+// c - 'a' + 10);
+}
+
+/*---------------------------------------------------------------------------*/
+
+bool load_srecords(char (*readc)(),
+ CYG_ADDRESS *start,
+ int *size)
+{
+ CYG_ADDRESS addr, load_addr;
+ int addrsize;
+ int length;
+ int i;
+ cyg_uint8 chksum, ochksum;
+ cyg_uint8 val;
+ cyg_uint8 *tdata;
+ char s;
+ char type;
+ char len0;
+ char len1;
+ bool first = true;
+
+
+ do {
+ // Skip whitespace characters until we find something that
+ // might be an 'S'.
+ do {
+ s = readc();
+ } while( s == '\r' || s == '\n' || s == ' ');
+
+ // Check that this is an S record
+ if( s != 'S' ) {
+ diag_printf("Invalid 'S' record\n");
+ return false;
+ }
+
+ // First 4 bytes are standard S + type + len
+ type = readc();
+ len0 = readc();
+ len1 = readc();
+
+ // decode the type
+ type = hex2digit(type);
+
+ // determine address size
+ switch (type) {
+ case S0: // start records have no address
+ addrsize = 0;
+ break;
+ case S1: // two byte address
+ case S9:
+ addrsize = 4;
+ break;
+ case S2: // 3 byte address
+ case S8:
+ addrsize = 6;
+ break;
+ case S3: // 4 byte address
+ case S7:
+ addrsize = 8;
+ break;
+ }
+
+ length = hex2digit (len0) << 4;
+ length |= hex2digit (len1);
+ chksum = length;
+
+ // read the address
+ addr = 0;
+ for (i = 0; i < addrsize; i++) {
+ val = hex2digit(readc());
+ addr = (addr << 4) | val;
+ }
+
+ // calculate the checksum, which is done by the byte, not the digit
+ for (i = 0; i < addrsize*4; i += 8) {
+ chksum += ((addr >> i) & 0xff);
+ }
+
+ // decide where to load this data
+ if (first && (type != S0)) {
+ load_addr = addr;
+ first = false;
+ }
+
+ // read the data and put it directly into memory where it belongs
+ tdata = (cyg_uint8 *)((addr - load_addr) + flash_buffer);
+ if (type < S7) {
+ *size = (addr - load_addr);
+ }
+ val = 0;
+ for (i = 0; i < ((length - 1) * 2) - addrsize; i += 2 ) {
+ val = hex2digit (readc()) << 4;
+ val |= hex2digit (readc());
+ chksum += val;
+ if( type != S0 ) *tdata++ = val;
+ if (type < S7) *size = *size + 1;
+ }
+
+ // now get the old checksum
+ ochksum = hex2digit(readc()) << 4;
+ ochksum |= hex2digit(readc());
+ chksum = ~chksum;
+ if (chksum != ochksum) {
+ diag_printf("Bad checksum - addr: %x\n", addr);
+ return false;
+ }
+
+ } while( type < S7 );
+
+ *start = addr;
+ return true;
+}
diff --git a/ecos/packages/hal/arm/pid/current/src/hal_diag.c b/ecos/packages/hal/arm/pid/current/src/hal_diag.c
new file mode 100644
index 0000000..753ba26
--- /dev/null
+++ b/ecos/packages/hal/arm/pid/current/src/hal_diag.c
@@ -0,0 +1,608 @@
+/*=============================================================================
+//
+// hal_diag.c
+//
+// HAL diagnostic output code
+//
+//=============================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): nickg, gthomas
+// Contributors:nickg, gthomas
+// Date: 1998-03-02
+// Purpose: HAL diagnostic output
+// Description: Implementations of HAL diagnostic output support.
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================*/
+
+#include <pkgconf/hal.h>
+#include <pkgconf/hal_arm_pid.h> // board specifics
+
+#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> // basic machine info
+#include <cyg/hal/hal_intr.h> // interrupt macros
+#include <cyg/hal/hal_io.h> // IO macros
+#include <cyg/hal/hal_diag.h>
+#include <cyg/hal/drv_api.h>
+#include <cyg/hal/hal_if.h> // interface API
+#include <cyg/hal/hal_misc.h> // Helper functions
+
+/*---------------------------------------------------------------------------*/
+/* From serial_16550.h */
+#if CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_BAUD==9600
+#define CYG_DEVICE_SERIAL_BAUD_MSB 0x00
+#define CYG_DEVICE_SERIAL_BAUD_LSB 0x0C
+#endif
+#if CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_BAUD==19200
+#define CYG_DEVICE_SERIAL_BAUD_MSB 0x00
+#define CYG_DEVICE_SERIAL_BAUD_LSB 0x06
+#endif
+#if CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_BAUD==38400
+#define CYG_DEVICE_SERIAL_BAUD_MSB 0x00
+#define CYG_DEVICE_SERIAL_BAUD_LSB 0x03
+#endif
+#if CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_BAUD==115200
+#define CYG_DEVICE_SERIAL_BAUD_MSB 0x00
+#define CYG_DEVICE_SERIAL_BAUD_LSB 0x01
+#endif
+
+#ifndef CYG_DEVICE_SERIAL_BAUD_MSB
+#error Missing/incorrect serial baud rate defined - CDL error?
+#endif
+
+// Define the serial registers.
+#define CYG_DEV_RBR 0x00 // receiver buffer register, read, dlab = 0
+#define CYG_DEV_THR 0x00 // transmitter holding register, write, dlab = 0
+#define CYG_DEV_DLL 0x00 // divisor latch (LS), read/write, dlab = 1
+#define CYG_DEV_IER 0x04 // interrupt enable register, read/write, dlab = 0
+#define CYG_DEV_DLM 0x04 // divisor latch (MS), read/write, dlab = 1
+#define CYG_DEV_IIR 0x08 // interrupt identification register, read, dlab = 0
+#define CYG_DEV_FCR 0x08 // fifo control register, write, dlab = 0
+#define CYG_DEV_LCR 0x0C // line control register, read/write
+#define CYG_DEV_MCR 0x10 // modem control register, read/write
+#define CYG_DEV_LSR 0x14 // line status register, read
+#define CYG_DEV_MSR 0x18 // modem status register, read
+
+// Interrupt Enable Register
+#define SIO_IER_RCV 0x01
+#define SIO_IER_XMT 0x02
+#define SIO_IER_LS 0x04
+#define SIO_IER_MS 0x08
+
+// The line status register bits.
+#define SIO_LSR_DR 0x01 // data ready
+#define SIO_LSR_OE 0x02 // overrun error
+#define SIO_LSR_PE 0x04 // parity error
+#define SIO_LSR_FE 0x08 // framing error
+#define SIO_LSR_BI 0x10 // break interrupt
+#define SIO_LSR_THRE 0x20 // transmitter holding register empty
+#define SIO_LSR_TEMT 0x40 // transmitter register empty
+#define SIO_LSR_ERR 0x80 // any error condition
+
+// The modem status register bits.
+#define SIO_MSR_DCTS 0x01 // delta clear to send
+#define SIO_MSR_DDSR 0x02 // delta data set ready
+#define SIO_MSR_TERI 0x04 // trailing edge ring indicator
+#define SIO_MSR_DDCD 0x08 // delta data carrier detect
+#define SIO_MSR_CTS 0x10 // clear to send
+#define SIO_MSR_DSR 0x20 // data set ready
+#define SIO_MSR_RI 0x40 // ring indicator
+#define SIO_MSR_DCD 0x80 // data carrier detect
+
+// The line control register bits.
+#define SIO_LCR_WLS0 0x01 // word length select bit 0
+#define SIO_LCR_WLS1 0x02 // word length select bit 1
+#define SIO_LCR_STB 0x04 // number of stop bits
+#define SIO_LCR_PEN 0x08 // parity enable
+#define SIO_LCR_EPS 0x10 // even parity select
+#define SIO_LCR_SP 0x20 // stick parity
+#define SIO_LCR_SB 0x40 // set break
+#define SIO_LCR_DLAB 0x80 // divisor latch access bit
+
+// Modem Control Register
+#define SIO_MCR_DTR 0x01
+#define SIO_MCR_RTS 0x02
+#define SIO_MCR_INT 0x08 // Enable interrupts
+
+//-----------------------------------------------------------------------------
+typedef struct {
+ cyg_uint8* base;
+ cyg_int32 msec_timeout;
+ int isr_vector;
+} channel_data_t;
+
+//-----------------------------------------------------------------------------
+
+static void
+cyg_hal_plf_serial_init_channel(void* __ch_data)
+{
+ cyg_uint8* base = ((channel_data_t*)__ch_data)->base;
+ cyg_uint8 lcr;
+
+ // 8-1-no parity.
+ HAL_WRITE_UINT8(base+CYG_DEV_LCR, SIO_LCR_WLS0 | SIO_LCR_WLS1);
+
+ HAL_READ_UINT8(base+CYG_DEV_LCR, lcr);
+ lcr |= SIO_LCR_DLAB;
+ HAL_WRITE_UINT8(base+CYG_DEV_LCR, lcr);
+ HAL_WRITE_UINT8(base+CYG_DEV_DLL, CYG_DEVICE_SERIAL_BAUD_LSB);
+ HAL_WRITE_UINT8(base+CYG_DEV_DLM, CYG_DEVICE_SERIAL_BAUD_MSB);
+ lcr &= ~SIO_LCR_DLAB;
+ HAL_WRITE_UINT8(base+CYG_DEV_LCR, lcr);
+ HAL_WRITE_UINT8(base+CYG_DEV_FCR, 0x07); // Enable & clear FIFO
+}
+
+void
+cyg_hal_plf_serial_putc(void *__ch_data, char c)
+{
+ cyg_uint8* base = ((channel_data_t*)__ch_data)->base;
+ cyg_uint8 lsr;
+ CYGARC_HAL_SAVE_GP();
+
+ do {
+ HAL_READ_UINT8(base+CYG_DEV_LSR, lsr);
+ } while ((lsr & SIO_LSR_THRE) == 0);
+
+ HAL_WRITE_UINT8(base+CYG_DEV_THR, c);
+
+ 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_DEV_LSR, lsr);
+ if ((lsr & SIO_LSR_DR) == 0)
+ return false;
+
+ HAL_READ_UINT8(base+CYG_DEV_RBR, *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;
+}
+
+static channel_data_t pid_ser_channels[2] = {
+ { (cyg_uint8*)0x0D800000, 1000, CYGNUM_HAL_INTERRUPT_SERIALA },
+ { (cyg_uint8*)0x0D800020, 1000, CYGNUM_HAL_INTERRUPT_SERIALB }
+};
+
+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;
+ int ret = 0;
+ CYGARC_HAL_SAVE_GP();
+
+ switch (__func) {
+ case __COMMCTL_IRQ_ENABLE:
+ irq_state = 1;
+
+ HAL_WRITE_UINT8(chan->base+CYG_DEV_IER, SIO_IER_RCV);
+ HAL_WRITE_UINT8(chan->base+CYG_DEV_MCR, SIO_MCR_INT|SIO_MCR_DTR|SIO_MCR_RTS);
+
+ HAL_INTERRUPT_UNMASK(chan->isr_vector);
+ break;
+ case __COMMCTL_IRQ_DISABLE:
+ ret = irq_state;
+ irq_state = 0;
+
+ HAL_WRITE_UINT8(chan->base+CYG_DEV_IER, 0);
+
+ 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;
+ channel_data_t* chan = (channel_data_t*)__ch_data;
+ char c;
+ cyg_uint8 lsr;
+ CYGARC_HAL_SAVE_GP();
+
+ cyg_drv_interrupt_acknowledge(chan->isr_vector);
+
+ *__ctrlc = 0;
+ HAL_READ_UINT8(chan->base+CYG_DEV_LSR, lsr);
+ if ( (lsr & SIO_LSR_DR) != 0 ) {
+
+ HAL_READ_UINT8(chan->base+CYG_DEV_RBR, 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(pid_ser_channels[0].isr_vector);
+ HAL_INTERRUPT_MASK(pid_ser_channels[1].isr_vector);
+
+ // Init channels
+ cyg_hal_plf_serial_init_channel(&pid_ser_channels[0]);
+ cyg_hal_plf_serial_init_channel(&pid_ser_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, &pid_ser_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, &pid_ser_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();
+}
+
+/*---------------------------------------------------------------------------*/
+
+#ifdef CYGHWR_HAL_ARM_PID_DIAG_LEDS
+// Control the LEDs PP0-PP3. This requires the jumpers on pins 9-16 to
+// be set on LK11, thus preventing the use of the parallel port.
+
+#define CYG_DEVICE_PARALLEL_DATA 0x0d800040
+
+void
+hal_diag_led(int n)
+{
+ HAL_WRITE_UINT8(CYG_DEVICE_PARALLEL_DATA, (n & 0xf) << 4);
+}
+#endif // CYGHWR_HAL_ARM_PID_DIAG_LEDS
+
+
+//=============================================================================
+// Compatibility with older stubs
+//=============================================================================
+
+#ifndef CYGSEM_HAL_VIRTUAL_VECTOR_DIAG
+
+#ifdef CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS
+#include <cyg/hal/hal_stub.h> // cyg_hal_gdb_interrupt
+#endif
+
+#if CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL==0
+// This is the base address of the A-channel
+#define CYG_DEV_SERIAL_BASE 0x0D800000
+#define CYG_DEVICE_SERIAL_INT CYGNUM_HAL_INTERRUPT_SERIALA
+#else
+// This is the base address of the B-channel
+#define CYG_DEV_SERIAL_BASE 0x0D800020
+#define CYG_DEVICE_SERIAL_INT CYGNUM_HAL_INTERRUPT_SERIALB
+#endif
+
+static channel_data_t pid_ser_channel = {
+ (cyg_uint8*)CYG_DEV_SERIAL_BASE, 0, 0
+};
+
+// Assumption: all diagnostic output must be GDB packetized unless this is a ROM (i.e.
+// totally stand-alone) system.
+
+#if defined(CYG_HAL_STARTUP_ROM) || !defined(CYGDBG_HAL_DIAG_TO_DEBUG_CHAN)
+#define HAL_DIAG_USES_HARDWARE
+#endif
+
+#ifndef HAL_DIAG_USES_HARDWARE
+#if (CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL != CYGNUM_HAL_VIRTUAL_VECTOR_DEBUG_CHANNEL)
+#define HAL_DIAG_USES_HARDWARE
+#endif
+#endif
+
+#ifdef HAL_DIAG_USES_HARDWARE
+
+void hal_diag_init(void)
+{
+ static int init = 0;
+ char *msg = "\n\rARM eCos\n\r";
+
+ if (init++) return;
+
+ cyg_hal_plf_serial_init_channel(&pid_ser_channel);
+
+ while (*msg) cyg_hal_plf_serial_putc(&pid_ser_channel, *msg++);
+}
+
+#ifdef DEBUG_DIAG
+#if defined(CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS)
+#define DIAG_BUFSIZE 32
+#else
+#define DIAG_BUFSIZE 2048
+#endif
+static char diag_buffer[DIAG_BUFSIZE];
+static int diag_bp = 0;
+#endif
+
+void hal_diag_write_char(char c)
+{
+ hal_diag_init();
+
+ cyg_hal_plf_serial_putc(&pid_ser_channel, c);
+
+#ifdef DEBUG_DIAG
+ diag_buffer[diag_bp++] = c;
+ if (diag_bp == DIAG_BUFSIZE) diag_bp = 0;
+#endif
+}
+
+void hal_diag_read_char(char *c)
+{
+ *c = cyg_hal_plf_serial_getc(&pid_ser_channel);
+}
+
+#else // HAL_DIAG relies on GDB
+
+// Initialize diag port - assume GDB channel is already set up
+void hal_diag_init(void)
+{
+ if (0) cyg_hal_plf_serial_init_channel(&pid_ser_channel); // avoid warning
+}
+
+// Actually send character down the wire
+static void
+hal_diag_write_char_serial(char c)
+{
+ hal_diag_init();
+
+ cyg_hal_plf_serial_putc(&pid_ser_channel, c);
+}
+
+static bool
+hal_diag_read_serial(char *c)
+{
+ long timeout = 1000000000; // A long time...
+ while (!cyg_hal_plf_serial_getc_nonblock(&pid_ser_channel, c))
+ if (0 == --timeout) return false;
+
+ return true;
+}
+
+void
+hal_diag_read_char(char *c)
+{
+ while (!hal_diag_read_serial(c)) ;
+}
+
+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;
+
+ hal_diag_write_char_serial('$');
+ hal_diag_write_char_serial('O');
+ csum += 'O';
+ for( i = 0; i < pos; i++ )
+ {
+ char ch = line[i];
+ char h = hex[(ch>>4)&0xF];
+ char l = hex[ch&0xF];
+ hal_diag_write_char_serial(h);
+ hal_diag_write_char_serial(l);
+ csum += h;
+ csum += l;
+ }
+ hal_diag_write_char_serial('#');
+ hal_diag_write_char_serial(hex[(csum>>4)&0xF]);
+ hal_diag_write_char_serial(hex[csum&0xF]);
+
+ // Wait for the ACK character '+' from GDB here and handle
+ // receiving a ^C instead. This is the reason for this clause
+ // being a loop.
+ if (!hal_diag_read_serial(&c1))
+ continue; // No response - try sending packet again
+
+ if( c1 == '+' )
+ break; // a good acknowledge
+
+#ifdef CYGDBG_HAL_DEBUG_GDB_BREAK_SUPPORT
+ cyg_drv_interrupt_acknowledge(CYG_DEVICE_SERIAL_INT);
+ if( c1 == 3 ) {
+ // Ctrl-C: breakpoint.
+ cyg_hal_gdb_interrupt ((target_register_t)__builtin_return_address(0));
+ break;
+ }
+#endif
+ // 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
+
+ }
+}
+#endif
+
+#endif // CYGSEM_HAL_VIRTUAL_VECTOR_DIAG
+
+/*---------------------------------------------------------------------------*/
+/* End of hal_diag.c */
diff --git a/ecos/packages/hal/arm/pid/current/src/pid_misc.c b/ecos/packages/hal/arm/pid/current/src/pid_misc.c
new file mode 100644
index 0000000..aca2ed7
--- /dev/null
+++ b/ecos/packages/hal/arm/pid/current/src/pid_misc.c
@@ -0,0 +1,254 @@
+//==========================================================================
+//
+// pid_misc.c
+//
+// HAL misc board support code for ARM PID7
+//
+//==========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//==========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): gthomas
+// Contributors: gthomas
+// Date: 1999-02-20
+// Purpose: HAL board support
+// Description: Implementations of HAL board interfaces
+//
+//####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_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> // necessary?
+#include <cyg/hal/hal_if.h> // calling interface
+
+/*------------------------------------------------------------------------*/
+// On-board timer
+/*------------------------------------------------------------------------*/
+
+// Timer registers
+#define CYG_DEVICE_TIMER1_BASE 0x0A800020
+#define CYG_DEVICE_TIMER1_LOAD \
+ ((volatile cyg_uint32 *) (CYG_DEVICE_TIMER1_BASE + 0x00))
+ // Load value, read/write
+#define CYG_DEVICE_TIMER1_CURRENT \
+ ((volatile cyg_uint32 *) (CYG_DEVICE_TIMER1_BASE + 0x04))
+ // Current value, read
+#define CYG_DEVICE_TIMER1_CONTROL \
+ ((volatile cyg_uint32 *) (CYG_DEVICE_TIMER1_BASE + 0x08))
+ // Control register, read/write
+#define CYG_DEVICE_TIMER1_CLEAR \
+ ((volatile cyg_uint32 *) (CYG_DEVICE_TIMER1_BASE + 0x0C))
+ // Clears interrrupt, write only
+
+#define CYG_DEVICE_TIMER_BASE 0x0A800020
+#define CYG_DEVICE_TIMER_LOAD \
+ ((volatile cyg_uint32 *) (CYG_DEVICE_TIMER_BASE + 0x00))
+ // Load value, read/write
+#define CYG_DEVICE_TIMER_CURRENT \
+ ((volatile cyg_uint32 *) (CYG_DEVICE_TIMER_BASE + 0x04))
+ // Current value, read
+#define CYG_DEVICE_TIMER_CONTROL \
+ ((volatile cyg_uint32 *) (CYG_DEVICE_TIMER_BASE + 0x08))
+ // Control register, read/write
+#define CYG_DEVICE_TIMER_CLEAR \
+ ((volatile cyg_uint32 *) (CYG_DEVICE_TIMER_BASE + 0x0C))
+ // Clears interrrupt, write only
+
+// Clock/timer control register
+#define CTL_ENABLE 0x80 // Bit 7: 1 - counter enabled
+#define CTL_DISABLE 0x00 // 0 - counter disabled
+#define CTL_FREERUN 0x00 // Bit 6: 0 - free running counter
+#define CTL_PERIODIC 0x40 // 1 - periodic timer mode
+#define CTL_SCALE_1 0x00 // Bits 32: 00 - Scale clock by 1
+#define CTL_SCALE_16 0x04 // 01 - Scale by 16
+#define CTL_SCALE_256 0x08 // 10 - Scale by 256
+ // 12.8us/tick
+
+// Interrupt controller registers
+#define CYG_DEVICE_ICTL_BASE 0x0A000000
+#define CYG_DEVICE_IRQ_Status \
+ ((volatile cyg_uint32 *) (CYG_DEVICE_ICTL_BASE + 0x00))
+ // Current status, read only
+#define CYG_DEVICE_IRQ_Enable \
+ ((volatile cyg_uint32 *) (CYG_DEVICE_ICTL_BASE + 0x08))
+ // Enable status, read only
+#define CYG_DEVICE_IRQ_EnableSet \
+ ((volatile cyg_uint32 *) (CYG_DEVICE_ICTL_BASE + 0x08))
+ // Enable (1's only), write only
+#define CYG_DEVICE_IRQ_EnableClear \
+ ((volatile cyg_uint32 *) (CYG_DEVICE_ICTL_BASE + 0x0C))
+ // Disable (1's only), write only
+
+static cyg_uint32 _period;
+
+void hal_clock_initialize(cyg_uint32 period)
+{
+ //diag_init(); diag_printf("%s(%d)\n", __PRETTY_FUNCTION__, period);
+ //diag_printf("psr = %x\n", psr());
+ HAL_WRITE_UINT32(CYG_DEVICE_TIMER_CONTROL, CTL_DISABLE); // Turn off
+ HAL_WRITE_UINT32(CYG_DEVICE_TIMER_LOAD, period);
+ HAL_WRITE_UINT32(CYG_DEVICE_TIMER_CONTROL,
+ CTL_ENABLE | CTL_PERIODIC | CTL_SCALE_16);
+ _period = period;
+}
+
+void hal_clock_reset(cyg_uint32 vector, cyg_uint32 period)
+{
+ //diag_init(); diag_printf("%s\n", __PRETTY_FUNCTION__);
+ HAL_WRITE_UINT32(CYG_DEVICE_TIMER_CLEAR, 0);
+ _period = period;
+}
+
+void hal_clock_read(cyg_uint32 *pvalue)
+{
+ cyg_uint32 value;
+// diag_init(); diag_printf("%s\n", __PRETTY_FUNCTION__);
+ HAL_READ_UINT32(CYG_DEVICE_TIMER_CURRENT, value);
+ value &= 0xFFFF;
+ *pvalue = _period - (value & 0xFFFF); // Note: counter is only 16 bits
+ // and decreases
+}
+
+// -------------------------------------------------------------------------
+//
+// Delay for some number of micro-seconds
+//
+void hal_delay_us(cyg_int32 usecs)
+{
+ cyg_uint32 value;
+ cyg_uint64 ticks = ((usecs*CYGNUM_HAL_RTC_PERIOD*CYGNUM_HAL_RTC_DENOMINATOR)/1000000);
+
+ HAL_WRITE_UINT32(CYG_DEVICE_TIMER1_CONTROL, CTL_DISABLE); // Turn off
+ HAL_WRITE_UINT32(CYG_DEVICE_TIMER1_LOAD, ticks);
+ HAL_WRITE_UINT32(CYG_DEVICE_TIMER1_CONTROL,
+ CTL_ENABLE | CTL_FREERUN | CTL_SCALE_16);
+
+ // Wait for timer to underflow
+ do {
+ HAL_READ_UINT32(CYG_DEVICE_TIMER_CURRENT, value);
+ value &= 0xFFFF;
+ } while (value < 0x7fff);
+
+ HAL_WRITE_UINT32(CYG_DEVICE_TIMER1_CONTROL, CTL_DISABLE); // Turn off
+}
+
+// -------------------------------------------------------------------------
+
+void hal_hardware_init(void)
+{
+ // Any hardware/platform initialization that needs to be done.
+ HAL_WRITE_UINT32(CYG_DEVICE_IRQ_EnableClear, 0xFFFF); // Clear all
+ // interrupt sources
+ // Set up eCos/ROM interfaces
+ hal_if_init();
+}
+
+//
+// This routine is called to respond to a hardware interrupt (IRQ). It
+// should interrogate the hardware and return the IRQ vector number.
+
+int hal_IRQ_handler(void)
+{
+ // Do hardware-level IRQ handling
+ int irq_status, vector;
+ HAL_READ_UINT32(CYG_DEVICE_IRQ_Status, irq_status);
+ //diag_init(); diag_printf("%s, status: %x\n", __PRETTY_FUNCTION__, irq_status);
+ for (vector = 1; vector < 16; vector++) {
+ if (irq_status & (1<<vector)) return vector;
+ }
+ return CYGNUM_HAL_INTERRUPT_NONE; // This shouldn't happen!
+}
+
+//
+// Interrupt control
+//
+
+void hal_interrupt_mask(int vector)
+{
+ //diag_init(); diag_printf("%s(%d)\n", __PRETTY_FUNCTION__, vector);
+ HAL_WRITE_UINT32(CYG_DEVICE_IRQ_EnableClear, 1<<vector);
+}
+
+#if 0
+void hal_interrupt_status(void)
+{
+ int irq_status, irq_enable, timer_status, timer_value, timer_load;
+ HAL_READ_UINT32(CYG_DEVICE_IRQ_Status, irq_status);
+ HAL_READ_UINT32(CYG_DEVICE_IRQ_Enable, irq_enable);
+ HAL_READ_UINT32(CYG_DEVICE_TIMER_LOAD, timer_load);
+ HAL_READ_UINT32(CYG_DEVICE_TIMER_CURRENT, timer_value);
+ HAL_READ_UINT32(CYG_DEVICE_TIMER_CONTROL, timer_status);
+ diag_printf("Interrupt: IRQ: %x.%x, TIMER: %x.%x.%x, psr: %x\n",
+ irq_status, irq_enable, timer_status, timer_value,
+ timer_load, psr());
+}
+#endif
+
+void hal_interrupt_unmask(int vector)
+{
+ //diag_init(); diag_printf("%s(%d)\n", __PRETTY_FUNCTION__, vector);
+ HAL_WRITE_UINT32(CYG_DEVICE_IRQ_EnableSet, 1<<vector);
+}
+
+void hal_interrupt_acknowledge(int vector)
+{
+ //diag_init(); diag_printf("%s(%d)\n", __PRETTY_FUNCTION__, vector);
+}
+
+void hal_interrupt_configure(int vector, int level, int up)
+{
+ //diag_init(); diag_printf("%s(%d,%d,%d)\n", __PRETTY_FUNCTION__, vector, level, up);
+}
+
+void hal_interrupt_set_level(int vector, int level)
+{
+ //diag_init(); diag_printf("%s(%d,%d)\n", __PRETTY_FUNCTION__, vector, level);
+}
+
+void hal_show_IRQ(int vector, int data, int handler)
+{
+ // diag_printf("IRQ - vector: %x, data: %x, handler: %x\n", vector, data, handler);
+}
+
+/*---------------------------------------------------------------------------*/
+/* End of hal_misc.c */
diff --git a/ecos/packages/hal/arm/pid/current/src/prog_flash.c b/ecos/packages/hal/arm/pid/current/src/prog_flash.c
new file mode 100644
index 0000000..18e5617
--- /dev/null
+++ b/ecos/packages/hal/arm/pid/current/src/prog_flash.c
@@ -0,0 +1,222 @@
+//==========================================================================
+//
+// prog_flash.c
+//
+// ARM PID7 eval board FLASH program tool
+//
+//==========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//==========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): gthomas
+// Contributors: gthomas
+// Date: 1998-11-18
+// Description: Tool used to program onboard FLASH image
+//####DESCRIPTIONEND####
+
+//
+// This program will program the FLASH on the PID board
+// It is similar to 'flash' (which also downloads S records) but it always
+// programs from a fixed buffer. This is sufficient to load/update the GDB
+// stubs on the board.
+//
+
+#include <pkgconf/libc.h> // Configuration header
+
+#include <cyg/kernel/kapi.h>
+#include <stdlib.h>
+#include <ctype.h>
+#include <cyg/infra/testcase.h>
+#include <sys/cstartup.h>
+
+#ifndef FALSE
+#define FALSE 0
+#define TRUE 1
+#endif
+
+extern void diag_printf(const char *, ...);
+int identify_FLASH(void);
+void write_sector(int, char *);
+
+char *flash_buffer = (char *)0x60000;
+char *flash_buffer_end = (char *)0x80000;
+
+#ifdef BE_IMAGE
+#define BUF(x) buf[x^3]
+#else
+#define BUF(x) buf[x]
+#endif
+
+// FUNCTIONS
+
+externC void
+cyg_package_start( void )
+{
+#ifdef CYGPKG_LIBC
+ cyg_iso_c_start();
+#else
+ (void)main(0, NULL);
+#endif
+} // cyg_package_start()
+
+int
+main( int argc, char *argv[] )
+{
+ int i;
+
+ diag_printf("FLASH here!\n");
+ while (identify_FLASH() == 0) {
+ diag_printf("... Please change FLASH jumper\n");
+ cyg_thread_delay(5*100);
+ }
+ diag_printf("About to program FLASH using data at %x..%x\n", flash_buffer, flash_buffer_end);
+ diag_printf("*** Press RESET now to abort!\n");
+ cyg_thread_delay(5*100);
+ diag_printf("\n");
+ diag_printf("...Programming FLASH\n");
+
+ i = 0;
+ while (flash_buffer < flash_buffer_end) {
+ write_sector(i++, flash_buffer);
+ flash_buffer += 256;
+ }
+ diag_printf("All done!\n");
+ while (1) ;
+}
+
+// Adapted from ARM sample code
+#define SEQ_ADD1 0x5555
+#define SEQ_ADD2 0xAAAA
+#define START_CMD1 0xAA
+#define START_CMD2 0x55
+#define ID_CMD 0x90
+#define PROG_CMD 0xA0
+#define STOP_CMD 0xF0
+
+#define MAN_ATMEL 0x1F
+#define ATMEL_AT29C040_ID 0X5B
+#define ATMEL_AT29C040A_ID 0XA4
+#define ATMEL_AT29C1024_ID 0X25
+#define ATMEL_SECTOR_SIZE 256
+#define ATMEL_MAX_SECTORS 2048
+
+int manuf_code, device_code, sector_size, max_no_of_sectors, word_mode;
+volatile char *FLASH = (volatile char *)0x04000000;
+
+int
+identify_FLASH(void )
+{
+ // Enter Software Product Identification Mode
+ FLASH[SEQ_ADD1] = START_CMD1;
+ FLASH[SEQ_ADD2] = START_CMD2;
+ FLASH[SEQ_ADD1] = ID_CMD;
+
+ // Wait at least 10ms
+ cyg_thread_delay(2);
+
+ // Read Manufacturer and device code from the device
+ manuf_code = FLASH[0];
+ device_code = FLASH[1];
+
+ diag_printf("manuf: %x, device: %x\n", manuf_code, device_code);
+
+ // Exit Software Product Identification Mode
+ FLASH[SEQ_ADD1] = START_CMD1;
+ FLASH[SEQ_ADD2] = START_CMD2;
+ FLASH[SEQ_ADD1] = STOP_CMD;
+
+ // Wait at least 10ms
+ cyg_thread_delay(5);
+
+ if (manuf_code != MAN_ATMEL) {
+ diag_printf ( "Error: Wrong Manufaturer: %02x\n",manuf_code );
+ return (0);
+ }
+
+ switch (device_code) {
+ case ATMEL_AT29C040A_ID:
+ diag_printf ("AT29C040A recognised\n");
+ sector_size = ATMEL_SECTOR_SIZE;
+ max_no_of_sectors = ATMEL_MAX_SECTORS;
+ word_mode = FALSE;
+ break;
+ case ATMEL_AT29C1024_ID:
+ diag_printf ("AT29C1024 recognised\n");
+ sector_size = ATMEL_SECTOR_SIZE;
+ max_no_of_sectors = ATMEL_MAX_SECTORS;
+ word_mode = TRUE;
+ break;
+ default :
+ diag_printf ( "Error: Unsupported device: %02x\n", device_code);
+ return (0);
+ }
+ return (1);
+}
+
+void
+write_sector(int num, char *buf)
+{
+ int i, cnt;
+ volatile char *wrt = (volatile char *)&FLASH[num*sector_size];
+
+// diag_printf("Writing to %08x\n", wrt);
+ // Enter Program Mode
+ FLASH[SEQ_ADD1] = START_CMD1;
+ FLASH[SEQ_ADD2] = START_CMD2;
+ FLASH[SEQ_ADD1] = PROG_CMD;
+
+ // Note: write bytes as longs regardless of bus width
+ for (i = 0; i < sector_size; i++) {
+ wrt[i] = BUF(i);
+ }
+
+ // Wait for sector to program
+ cnt = 0;
+ i = sector_size - 1;
+ while (wrt[i] != BUF(i)) {
+ if (cnt++ > 0x01000000) break;
+ }
+// diag_printf("Out - i: %d, wrt[i] = %08X.%08X, BUF(i) = %08X, count = %x\n", i, &wrt[i], wrt[i], BUF(i), cnt);
+
+ // Verify
+ for (i = 0; i < sector_size; i++) {
+ for (cnt = 0; cnt < 10; cnt++) {
+ if (wrt[i] == BUF(i)) break;
+ cyg_thread_delay(1);
+ }
+ if (cnt == 10) {
+ diag_printf("Can't program at 0x%08X: %02X not %02X\n", wrt, *wrt, BUF(0));
+ }
+ }
+}
diff --git a/ecos/packages/hal/arm/sa11x0/assabet/current/ChangeLog b/ecos/packages/hal/arm/sa11x0/assabet/current/ChangeLog
new file mode 100644
index 0000000..72b2f1e
--- /dev/null
+++ b/ecos/packages/hal/arm/sa11x0/assabet/current/ChangeLog
@@ -0,0 +1,351 @@
+2009-01-31 Bart Veer <bartv@ecoscentric.com>
+
+ * cdl/hal_arm_sa11x0_assabet.cdl: update compiler flags for
+ recent gcc
+
+2003-09-21 Gary Thomas <gary@mlbassoc.com>
+
+ * misc/redboot_RAM.ecm:
+ * misc/redboot_ROM.ecm: Adjust for changes in RedBoot
+ template - DNS now must be enabled manually.
+
+2003-02-13 Patrick Doyle <wpd@delcomsys.com>
+ * src/assabet_misc.c: Replaced explicit prototype of memset with
+ #include <string.h>.
+
+2002-08-12 Mark Salter <msalter@redhat.com>
+
+ * misc/redboot_ROM.ecm: Remove CYGSEM_REDBOOT_ARM_LINUX_BOOT.
+ * misc/redboot_RAM.ecm: Ditto.
+
+2002-05-14 Jesper Skov <jskov@redhat.com>
+
+ * src/assabet_misc.c: Fixed warning.
+
+2002-05-07 Gary Thomas <gthomas@redhat.com>
+
+ * cdl/hal_arm_sa11x0_assabet.cdl:
+ Standardize CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_DEFAULT usage.
+
+
+2002-03-05 Jesper Skov <jskov@redhat.com>
+
+ * misc/redboot_RAM.ecm: Updated. Added zlib+dns packages.
+ * misc/redboot_ROM.ecm: Same.
+
+2002-01-28 Jesper Skov <jskov@redhat.com>
+
+ * include/plf_io.h: Added.
+
+2001-10-20 Nicolas Pitre <nico@cam.org>
+
+ * include/hal_platform_setup.h: Wake up from deep sleep mode.
+
+2001-07-28 Stefan Eletzhofer <schuehle@t-online.de>
+
+ * include/hal_platform_setup.h:
+ * cdl/hal_arm_sa11x0_assabet.cdl: Support additional timing setup
+ when Neponset board is available.
+
+2001-06-21 Jonathan Larmour <jlarmour@redhat.com>
+
+ * images/redboot*: Remove. Don't bloat repository with things already
+ on the web.
+
+2001-04-27 Jonathan Larmour <jlarmour@redhat.com>
+
+ * cdl/hal_arm_sa11x0_assabet.cdl: Remove redundant -Wl,-N from link
+ flags
+
+2001-04-09 Jonathan Larmour <jlarmour@redhat.com>
+
+ * src/lcd_support.c: Frame pointer was right before.
+
+2001-03-08 Jesper Skov <jskov@redhat.com>
+
+ * cdl/hal_arm_sa11x0_assabet.cdl: Removed
+ CYGINT_HAL_VIRTUAL_VECTOR_SUPPORT_GUARANTEED which is now the
+ default.
+
+2001-02-24 Gary Thomas <gthomas@redhat.com>
+
+ * src/lcd_support.c: Make check for sscanf() consistent.
+
+ * cdl/hal_arm_sa11x0_assabet.cdl:
+ Define machine type for Linux bootstrap.
+
+ * src/redboot_linux_exec.c:
+ Removed - now handled by SA11x0 variant code.
+
+2001-02-23 Gary Thomas <gthomas@redhat.com>
+
+ * misc/redboot_RAM.ecm: Renamed from redboot_RAM.cfg
+
+ * misc/redboot_ROM.ecm: Renamed from redboot_ROM.cfg
+
+2001-02-22 Gary Thomas <gthomas@redhat.com>
+
+ * src/redboot_linux_exec.c: Add new tagged parameter support for
+ latest Linux kernel.
+
+2001-02-20 Gary Thomas <gthomas@redhat.com>
+
+ * cdl/hal_arm_sa11x0_assabet.cdl: Change Linux boot support.
+
+ * src/redboot_linux_exec.c: New file - replaces redboot_cmds.c
+ Supports booting Linux kernel, including image relocation and
+ passing additional info to kernel such as ramdisk size/location.
+
+ * src/redboot_cmds.c: Depreciated.
+
+2001-02-20 Jonathan Larmour <jlarmour@redhat.com>
+
+ * src/lcd_support.c: Warning cleanup.
+ Access frame buffer through volatile correctly.
+ Use isoinfra to identify presence of sscanf
+
+2001-02-20 Gary Thomas <gthomas@redhat.com>
+
+ * cdl/hal_arm_sa11x0_assabet.cdl: Use new CDL to control
+ available serial ports - CYGHWR_HAL_ARM_SA11X0_UART1.
+
+2001-02-08 Jesper Skov <jskov@redhat.com>
+
+ * cdl/hal_arm_sa11x0_assabet.cdl: Respect channel configuration
+ constraints.
+
+2001-02-02 Gary Thomas <gthomas@redhat.com>
+
+ * src/lcd_support.c: Fix for building standalone (no "C" library).
+
+2001-01-05 Hugo Tyson <hmt@redhat.com>
+
+ * include/plf_mmap.h: New file. Statically defined macros for
+ translation from virtual to physical and back, and to get an
+ uncached address for a normally-cached object. HAL_MM_PAGESIZE()
+ HAL_VIRT_TO_PHYS_ADDRESS() HAL_PHYS_TO_VIRT_ADDRESS()
+ HAL_VIRT_TO_UNCACHED_ADDRESS(). This included by the variant
+ hal's hal_cache.h for convenience and proximity to other memory
+ and cache features.
+
+2000-12-13 Hugo Tyson <hmt@redhat.com>
+
+ * src/assabet_misc.c: Use <cyg/hal/hal_mm.h> from the variant HAL
+ for definitions of all MM tables and so on.
+
+ * include/hal_platform_ints.h: Removed; it was the same in all
+ platforms so is now in the common variant hal, "hal_var_ints.h"
+ and accessible as CYGBLD_HAL_VAR_INTS_H <cyg/hal/hal_var_ints.h>
+
+2000-12-08 Jonathan Larmour <jlarmour@redhat.com>
+
+ * cdl/hal_arm_sa11x0_assabet.cdl: Build redboot_cmds.c in the
+ right place.
+
+2000-11-30 Gary Thomas <gthomas@redhat.com>
+
+ * src/redboot_cmds.c (do_exec): Use new _GETS_xxx return codes.
+
+2000-11-28 Drew Moseley <dmoseley@redhat.com>
+
+ * misc/redboot_RAM.cfg: Implement CYGSEM_REDBOOT_BSP_SYSCALLS.
+ * misc/redboot_ROM.cfg: Ditto.
+
+ * src/assabet_misc.c (assabet_program_new_stack): New function
+ for switching to an application stack when running a program under
+ a ROM monitor.
+
+ * cdl/hal_arm_sa11x0_assabet.cdl: Define HAL_ARCH_PROGRAM_NEW_STACK.
+
+2000-10-20 Jonathan Larmour <jlarmour@redhat.com>
+
+ * include/pkgconf/mlt_arm_sa11x0_assabet_ram.mlt:
+ * include/pkgconf/mlt_arm_sa11x0_assabet_rom.mlt:
+ Add heap1 section
+
+ * include/pkgconf/mlt_arm_sa11x0_assabet_ram.h:
+ * include/pkgconf/mlt_arm_sa11x0_assabet_rom.h:
+ * include/pkgconf/mlt_arm_sa11x0_assabet_ram.ldi:
+ * include/pkgconf/mlt_arm_sa11x0_assabet_rom.ldi:
+ Regenerate
+
+2000-10-17 Gary Thomas <gthomas@redhat.com>
+
+ * include/hal_platform_setup.h: Don't initialize "static" control
+ registers - power up value works and the values used kill latest boards.
+
+2000-10-09 Gary Thomas <gthomas@redhat.com>
+
+ * src/lcd_support.c: Fix compile error if no kernel present.
+
+2000-09-17 Gary Thomas <gthomas@redhat.com>
+
+ * misc/lcd_test.c: Add simple "glass tty" driver for LCD.
+
+ * cdl/hal_arm_sa11x0_assabet.cdl: Add platform/cpu identification strings.
+
+2000-09-14 Gary Thomas <gthomas@redhat.com>
+
+ * src/assabet_misc.c: Set up for LCD - configure [pin] signals.
+
+ * misc/lcd_test.c: Adding more glitz, turn on light, etc.
+
+ * include/assabet.h: LCD pixel size was wrong in docs(?)
+
+2000-09-13 Gary Thomas <gthomas@redhat.com>
+
+ * misc/redboot.xpm: New file.
+
+ * misc/lcd_test.c: Update LCD demo - add RedBoot splash.
+
+2000-09-10 Gary Thomas <gthomas@redhat.com>
+
+ * misc/redhat.xpm:
+ * misc/escw.xpm:
+ * misc/eCos.xpm:
+ * misc/lcd_test.c: Simple test of LCD.
+
+ * include/assabet.h: Add more BCR defines (cosmetic).
+
+ * src/redboot_cmds.c:
+ * cdl/hal_arm_sa11x0_assabet.cdl: Add RedBoot command to execute
+ code with MMU off (for booting Linux).
+
+2000-08-28 Gary Thomas <gthomas@redhat.com>
+
+ * cdl/hal_arm_sa11x0_assabet.cdl: Define default console [even
+ though there is no real choice]. This is required to support
+ network debug connections.
+
+2000-08-25 Jonathan Larmour <jlarmour@redhat.co.uk>
+
+ * misc/cf_test.c: Delete. Not needed any more.
+
+2000-08-24 Gary Thomas <gthomas@redhat.com>
+
+ * include/pkgconf/mlt_arm_sa11x0_assabet_ram.mlt:
+ * include/pkgconf/mlt_arm_sa11x0_assabet_ram.ldi: Expand reserved space.
+
+ * src/assabet_misc.c (hal_mmu_init): Increase ROM space to 32M.
+
+2000-07-14 Gary Thomas <gthomas@redhat.com>
+
+ * cdl/hal_arm_sa11x0_assabet.cdl: Add rules for building RedBoot.
+
+2000-07-05 Jesper Skov <jskov@redhat.com>
+
+ * cdl/hal_arm_sa11x0_assabet.cdl: Cleanup channel options.
+
+2000-06-27 Jesper Skov <jskov@redhat.com>
+
+ * cdl/hal_arm_sa11x0_assabet.cdl: Changed PORT values.
+
+2000-06-26 Jesper Skov <jskov@redhat.com>
+
+ * include/hal_platform_ints.h: Removed Ctrl-c handling.
+
+ * cdl/hal_arm_sa11x0_assabet.cdl: Removed ROM_DEBUG_CHANNEL option.
+
+2000-06-19 Gary Thomas <gthomas@redhat.com>
+
+ * cdl/hal_arm_sa11x0_assabet.cdl: Adding virtual vector support.
+
+ * include/assabet.h: Adding LCD registers. Update BCR register.
+
+ * include/hal_platform_ints.h: Changes for virtual vector support.
+
+ * include/hal_platform_setup.h: Updated vectors - fixed stuff
+ now handled elsewhere.
+
+ * misc/cf_test.c: New program to experiment with Compact Flash
+ interface(s).
+
+ * src/assabet_misc.c (plf_hardware_init): Added new function
+ to perform platform specific initializations.
+
+2000-06-18 Gary Thomas <gthomas@redhat.com>
+
+ * include/pkgconf/mlt_arm_sa11x0_assabet_ram.mlt:
+ * include/pkgconf/mlt_arm_sa11x0_assabet_rom.ldi:
+ * include/pkgconf/mlt_arm_sa11x0_assabet_ram.ldi:
+ * include/pkgconf/mlt_arm_sa11x0_assabet_rom.mlt:
+ Incorporate new fixed vectors (used on all ARM platforms).
+
+2000-06-05 Gary Thomas <gthomas@redhat.com>
+
+ * src/assabet_misc.c (assabet_BCR): New function used to
+ safely manipulate the board control register (write only).
+
+ * include/assabet.h: Flush out board control register.
+
+ * include/hal_platform_ints.h: Add missing GPIO interrupts.
+
+2000-06-04 Gary Thomas <gthomas@redhat.com>
+
+ * include/hal_platform_setup.h:
+ * src/assabet_misc.c: 'sa1100' stuff renamed to 'sa11x0'.
+
+ * include/hal_platform_setup.h: Set power supply to full on. Move
+ board control stuff to <hal/assabet.h>. Also define "fixed" vectors
+ which will contain board control shadow and other items potentially
+ shared by stubs, CygMon, etc.
+
+ * cdl/hal_arm_sa11x0_assabet.cdl: Update build options for GDB stubs.
+ Necessary when 'fixed_vectors' are present.
+
+ * include/pkgconf/mlt_arm_sa11x0_assabet_rom.mlt:
+ * include/pkgconf/mlt_arm_sa11x0_assabet_rom.h:
+ * include/pkgconf/mlt_arm_sa11x0_assabet_rom.ldi:
+ * include/pkgconf/mlt_arm_sa11x0_assabet_ram.mlt:
+ * include/pkgconf/mlt_arm_sa11x0_assabet_ram.h:
+ * include/pkgconf/mlt_arm_sa11x0_assabet_ram.ldi: Improve layout to
+ match real hardware. Add 'fixed_vectors' at 0x40.
+
+2000-06-01 Gary Thomas <gthomas@redhat.com>
+
+ * cdl/hal_arm_sa11x0_assabet.cdl:
+ * include/hal_platform_setup.h: Add ROM startup code.
+
+ * src/assabet_misc.c: New file.
+
+2000-05-12 John Dallaway <jld@redhat.com>
+
+ * cdl/hal_arm_sa11x0_assabet.cdl:
+
+ Fix calculation of CYGHWR_MEMORY_LAYOUT.
+
+2000-05-10 Gary Thomas <gthomas@redhat.com>
+
+ * current/include/pkgconf/mlt_arm_sa11x0_assabet_ram.mlt:
+ * current/include/pkgconf/mlt_arm_sa11x0_assabet_rom.h:
+ * current/include/pkgconf/mlt_arm_sa11x0_assabet_rom.ldi:
+ * current/include/pkgconf/mlt_arm_sa11x0_assabet_ram.h:
+ * current/include/pkgconf/mlt_arm_sa11x0_assabet_ram.ldi:
+ * current/include/pkgconf/mlt_arm_sa11x0_assabet_rom.mlt:
+ * current/include/hal_platform_ints.h:
+ * current/include/hal_platform_setup.h:
+ * current/cdl/hal_arm_sa11x0_assabet.cdl: New file(s).
+
+//===========================================================================
+// ####GPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 2 or (at your option) any
+// later version.
+//
+// This program is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the
+// Free Software Foundation, Inc., 51 Franklin Street,
+// Fifth Floor, Boston, MA 02110-1301, USA.
+// -------------------------------------------
+// ####GPLCOPYRIGHTEND####
+//===========================================================================
diff --git a/ecos/packages/hal/arm/sa11x0/assabet/current/cdl/hal_arm_sa11x0_assabet.cdl b/ecos/packages/hal/arm/sa11x0/assabet/current/cdl/hal_arm_sa11x0_assabet.cdl
new file mode 100644
index 0000000..5d25dc1
--- /dev/null
+++ b/ecos/packages/hal/arm/sa11x0/assabet/current/cdl/hal_arm_sa11x0_assabet.cdl
@@ -0,0 +1,364 @@
+# ====================================================================
+#
+# hal_arm_sa11x0_assabet.cdl
+#
+# ARM SA1110/Assabet platform HAL package configuration data
+#
+# ====================================================================
+## ####ECOSGPLCOPYRIGHTBEGIN####
+## -------------------------------------------
+## This file is part of eCos, the Embedded Configurable Operating System.
+## Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+##
+## eCos is free software; you can redistribute it and/or modify it under
+## the terms of the GNU General Public License as published by the Free
+## Software Foundation; either version 2 or (at your option) any later
+## version.
+##
+## eCos is distributed in the hope that it will be useful, but WITHOUT
+## ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+## FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+## for more details.
+##
+## You should have received a copy of the GNU General Public License
+## along with eCos; if not, write to the Free Software Foundation, Inc.,
+## 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+##
+## As a special exception, if other files instantiate templates or use
+## macros or inline functions from this file, or you compile this file
+## and link it with other works to produce a work based on this file,
+## this file does not by itself cause the resulting work to be covered by
+## the GNU General Public License. However the source code for this file
+## must still be made available in accordance with section (3) of the GNU
+## General Public License v2.
+##
+## This exception does not invalidate any other reasons why a work based
+## on this file might be covered by the GNU General Public License.
+## -------------------------------------------
+## ####ECOSGPLCOPYRIGHTEND####
+# ====================================================================
+######DESCRIPTIONBEGIN####
+#
+# Author(s): gthomas
+# Original data: gthomas
+# Contributors:
+# Date: 2000-05-08
+#
+#####DESCRIPTIONEND####
+#
+# ====================================================================
+cdl_package CYGPKG_HAL_ARM_SA11X0_ASSABET {
+ display "ARM SA1110/Assabet evaluation board"
+ parent CYGPKG_HAL_ARM_SA11X0
+ hardware
+ include_dir cyg/hal
+ define_header hal_arm_sa11x0_assabet.h
+ description "
+ This HAL platform package provides generic
+ support for the Intel StrongARM SA1110 based evalation board,
+ known as 'assabet'."
+
+ compile assabet_misc.c lcd_support.c
+
+ implements CYGINT_HAL_DEBUG_GDB_STUBS
+ implements CYGINT_HAL_DEBUG_GDB_STUBS_BREAK
+ implements CYGINT_HAL_VIRTUAL_VECTOR_SUPPORT
+
+ implements CYGHWR_HAL_ARM_SA11X0_UART1
+
+ 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_assabet.h>"
+ puts $::cdl_header "#define HAL_PLATFORM_CPU \"StrongARM 1110\""
+ puts $::cdl_header "#define HAL_PLATFORM_BOARD \"Assabet development system\""
+ puts $::cdl_header "#define HAL_PLATFORM_EXTRA \"\""
+ puts $::cdl_header "#define HAL_PLATFORM_MACHINE_TYPE 25"
+ puts $::cdl_header "#define HAL_ARCH_PROGRAM_NEW_STACK assabet_program_new_stack"
+ }
+
+ 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 Assabet 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 1
+ }
+
+ cdl_option CYGNUM_HAL_VIRTUAL_VECTOR_DEBUG_CHANNEL {
+ display "Debug serial port"
+ active_if CYGPRI_HAL_VIRTUAL_VECTOR_DEBUG_CHANNEL_CONFIGURABLE
+ flavor data
+ legal_values 0 to CYGNUM_HAL_VIRTUAL_VECTOR_COMM_CHANNELS-1
+ default_value 0
+ description "
+ The assabet 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_DEFAULT {
+ display "Default console channel."
+ flavor data
+ legal_values 0 to CYGNUM_HAL_VIRTUAL_VECTOR_COMM_CHANNELS-1
+ calculated 0
+ }
+
+ cdl_option CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL {
+ display "Diagnostic serial port"
+ active_if CYGPRI_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_CONFIGURABLE
+ flavor data
+ legal_values 0 to CYGNUM_HAL_VIRTUAL_VECTOR_COMM_CHANNELS-1
+ default_value CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_DEFAULT
+ description "
+ The assabet board has only one serial port. 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 { CYGBLD_GLOBAL_WARNFLAGS . CYGBLD_ARCH_CFLAGS .
+ "-mcpu=strongarm1100 -g -O2 -ffunction-sections -fdata-sections -fno-rtti -fno-exceptions " }
+ 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 { CYGBLD_ARCH_LDFLAGS . "-mcpu=strongarm1100 -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) --remove-section=.fixed_vectors -O binary $< $@
+ }
+ }
+ }
+
+ cdl_component CYGPKG_HAL_ARM_SA11X0_ASSABET_OPTIONS {
+ display "StrongARM SA1110/ASSABET 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 CYGSEM_HAL_ARM_SA11X0_ASSABET_NEPONSET_TIMINGS {
+ display "Enable special timings for Neponset board"
+ flavor bool
+ default_value 0
+ description "
+ Enable this option to force initialization of memory timing
+ parameters suitable for use with the Neponset expansion board.
+ This is optional as it does not work for some versions of
+ Assabet without the board plugged in."
+ }
+
+ cdl_option CYGPKG_HAL_ARM_SA11X0_ASSABET_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 Assabet HAL. These flags are used in addition
+ to the set of global flags."
+ }
+
+ cdl_option CYGPKG_HAL_ARM_SA11X0_ASSABET_CFLAGS_REMOVE {
+ display "Suppressed compiler flags"
+ flavor data
+ no_define
+ default_value { "" }
+ description "
+ This option modifies the set of compiler flags for
+ building the StrongARM Assabet HAL. These flags are removed from
+ the set of global flags if present."
+ }
+
+ cdl_option CYGPKG_HAL_ARM_SA11X0_ASSABET_TESTS {
+ display "StrongARM SA1110/Assabet tests"
+ flavor data
+ no_define
+# calculated { "tests/dram-test" }
+ calculated { "" }
+ description "
+ This option specifies the set of tests for the StrongARM Assabet HAL."
+ }
+ }
+
+ cdl_component CYGHWR_MEMORY_LAYOUT {
+ display "Memory layout"
+ flavor data
+ no_define
+ calculated { CYG_HAL_STARTUP == "RAM" ? "arm_sa11x0_assabet_ram" : \
+ "arm_sa11x0_assabet_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_assabet_ram.ldi>" : \
+ "<pkgconf/mlt_arm_sa11x0_assabet_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_assabet_ram.h>" : \
+ "<pkgconf/mlt_arm_sa11x0_assabet_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 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_REDBOOT_HAL_OPTIONS {
+ display "Redboot HAL options"
+ flavor none
+ no_define
+ parent CYGPKG_REDBOOT
+ active_if CYGPKG_REDBOOT
+ description "
+ This option lists the target's requirements for a valid Redboot
+ configuration."
+
+ 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 $< $@
+ }
+ }
+ }
+
+}
diff --git a/ecos/packages/hal/arm/sa11x0/assabet/current/include/assabet.h b/ecos/packages/hal/arm/sa11x0/assabet/current/include/assabet.h
new file mode 100644
index 0000000..35a6272
--- /dev/null
+++ b/ecos/packages/hal/arm/sa11x0/assabet/current/include/assabet.h
@@ -0,0 +1,153 @@
+#ifndef CYGONCE_ASSABET_H
+#define CYGONCE_ASSABET_H
+
+/*=============================================================================
+//
+// assabet.h
+//
+// Platform specific support (register layout, etc)
+//
+//=============================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): gthomas
+// Contributors: gthomas
+// Date: 2000-05-08
+// Purpose: Intel SA1110/Assabet platform specific support routines
+// Description:
+// Usage: #include <cyg/hal/assabet.h>
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================*/
+
+
+#ifndef __ASSEMBLER__
+//
+// Board Control Register
+// Note: This register is write-only. Thus a shadow copy is provided so that
+// it may be safely updated/shared by multiple threads.
+//
+extern unsigned long _assabet_BCR; // Shadow copy
+
+extern void assabet_BCR(unsigned long mask, unsigned long value);
+
+//
+// Board Configuration data - read at RESET
+//
+extern unsigned long _assabet_CFG;
+#endif
+
+//
+// Signal assertion levels
+//
+#define SA1110_LOGIC_ONE(m) (m & 0xFFFFFFFF)
+#define SA1110_LOGIC_ZERO(m) (m & 0x00000000)
+
+//
+// SA1110/Assabet Board Control Register
+//
+#define SA1110_BOARD_CONTROL REG32_PTR(0x12000000)
+#define SA1110_BCR_MIN 0x00A014E4 // Reset state
+
+#define SA1110_BCR_CF_POWER 0x00000001 // 1 = CompactFlash power on
+#define SA1110_BCR_CF_POWER_ON SA1110_LOGIC_ONE(SA1110_BCR_CF_POWER)
+#define SA1110_BCR_CF_POWER_OFF SA1110_LOGIC_ZERO(SA1110_BCR_CF_POWER)
+#define SA1110_BCR_CF_RESET 0x00000002 // 1 = CompactFlash reset
+#define SA1110_BCR_CF_RESET_ENABLE SA1110_LOGIC_ONE(SA1110_BCR_CF_RESET)
+#define SA1110_BCR_CF_RESET_DISABLE SA1110_LOGIC_ZERO(SA1110_BCR_CF_RESET)
+#define SA1110_BCR_SOFT_RESET 0x00000004 // 0 = resets UCB1300, ADI7171, UDA1341
+#define SA1110_BCR_IRDA_FREQ 0x00000008 // 0 = SIR, 1 = MIR/FIR
+#define SA1110_BCR_IRDA_MD 0x00000030 // IrDA Mode & range
+#define SA1110_BCR_IRDA_MD_MAX 0x00000000 // Max range and power
+#define SA1110_BCR_IRDA_MD_OFF 0x00000010 // Shutdown
+#define SA1110_BCR_IRDA_MD_23 0x00000020 // 2/3 power
+#define SA1110_BCR_IRDA_MD_13 0x00000030 // 1/3 power
+#define SA1110_BCR_STEREO_LB 0x00000040 // 1 = Stereo loopback on
+#define SA1110_BCR_CF_BUS 0x00000080 // 0 = CompactFlash bus on
+#define SA1110_BCR_CF_BUS_ON SA1110_LOGIC_ZERO(SA1110_BCR_CF_BUS)
+#define SA1110_BCR_CF_BUS_OFF SA1110_LOGIC_ONE(SA1110_BCR_CF_BUS)
+#define SA1110_BCR_AUDIO_ON 0x00000100 // 1 = UDA1341, MIC, DAA power on
+#define SA1110_BCR_BACKLIGHT 0x00000200 // 1 = LCD backlight on
+#define SA1110_BCR_LCD_BPP 0x00000400 // 1 = 16 RGB, 0 = 12 RGB
+#define SA1110_BCR_LCD_16BPP SA1110_LOGIC_ONE(SA1110_BCR_LCD_BPP)
+#define SA1110_BCR_LCD_12BPP SA1110_LOGIC_ZERO(SA1110_BCR_LCD_BPP)
+#define SA1110_BCR_LCD 0x00000800 // 1 = LCD panel and controller on
+#define SA1110_BCR_LCD_ON SA1110_LOGIC_ONE(SA1110_BCR_LCD)
+#define SA1110_BCR_LCD_OFF SA1110_LOGIC_ZERO(SA1110_BCR_LCD)
+#define SA1110_BCR_RS232_ENABLE 0x00001000 // 1 = Enable RD232 signals
+#define SA1110_BCR_RED_LED 0x00002000 // 0 = Red LED on
+#define SA1110_BCR_RED_LED_ON SA1110_LOGIC_ZERO(SA1110_BCR_RED_LED)
+#define SA1110_BCR_RED_LED_OFF SA1110_LOGIC_ONE(SA1110_BCR_RED_LED)
+#define SA1110_BCR_GREEN_LED 0x00004000 // 0 = Green LED on
+#define SA1110_BCR_GREEN_LED_ON SA1110_LOGIC_ZERO(SA1110_BCR_GREEN_LED)
+#define SA1110_BCR_GREEN_LED_OFF SA1110_LOGIC_ONE(SA1110_BCR_GREEN_LED)
+#define SA1110_BCR_MOTOR 0x00008000 // 1 = Vibrator motor on
+#define SA1110_BCR_MOTOR_ON SA1110_LOGIC_ONE(SA1110_BCR_MOTOR)
+#define SA1110_BCR_MOTOR_OFF SA1110_LOGIC_ZERO(SA1110_BCR_MOTOR)
+#define SA1110_BCR_COM_DTR 0x00010000 // COM port Data Terminal Ready
+#define SA1110_BCR_COM_RTS 0x00020000 // COM port Request To Send
+#define SA1110_BCR_RADIO_WAKE 0x00040000 // 1 = Wake up CPU with radio
+#define SA1110_BCR_MUTE 0x00200000 // 1 = Audio muted
+
+//
+// Special purpose GPIO interrupt mappings
+//
+#define SA1110_CF_IRQ CYGNUM_HAL_INTERRUPT_GPIO21
+#define SA1110_CF_DETECT CYGNUM_HAL_INTERRUPT_GPIO22
+
+//
+// GPIO layout
+//
+#define SA1110_GPIO_CF_DETECT 0x00400000 // 0 = Compact Flash detect
+#define SA1110_GPIO_CF_PRESENT SA1110_LOGIC_ZERO(SA1110_GPIO_CF_DETECT)
+#define SA1110_GPIO_CF_ABSENT SA1110_LOGIC_ONE(SA1110_GPIO_CF_DETECT)
+
+//
+// LCD Controller
+//
+#define SA1110_LCCR0 SA11X0_REGISTER(0x30100000)
+#define SA1110_LCSR SA11X0_REGISTER(0x30100004)
+#define SA1110_DBAR1 SA11X0_REGISTER(0x30100010)
+#define SA1110_DCAR1 SA11X0_REGISTER(0x30100014)
+#define SA1110_DBAR2 SA11X0_REGISTER(0x30100018)
+#define SA1110_DCAR2 SA11X0_REGISTER(0x3010001C)
+#define SA1110_LCCR1 SA11X0_REGISTER(0x30100020)
+#define SA1110_LCCR2 SA11X0_REGISTER(0x30100024)
+#define SA1110_LCCR3 SA11X0_REGISTER(0x30100028)
+
+/*---------------------------------------------------------------------------*/
+/* end of assabet.h */
+#endif /* CYGONCE_ASSABET_H */
diff --git a/ecos/packages/hal/arm/sa11x0/assabet/current/include/hal_platform_setup.h b/ecos/packages/hal/arm/sa11x0/assabet/current/include/hal_platform_setup.h
new file mode 100644
index 0000000..59fe4ac
--- /dev/null
+++ b/ecos/packages/hal/arm/sa11x0/assabet/current/include/hal_platform_setup.h
@@ -0,0 +1,294 @@
+#ifndef CYGONCE_HAL_PLATFORM_SETUP_H
+#define CYGONCE_HAL_PLATFORM_SETUP_H
+
+/*=============================================================================
+//
+// hal_platform_setup.h
+//
+// Platform specific support for HAL (assembly code)
+//
+//=============================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): gthomas
+// Contributors: gthomas
+// Date: 2000-05-08
+// Purpose: Intel SA1110/Assabet platform specific support routines
+// Description:
+// Usage: #include <cyg/hal/hal_platform_setup.h>
+// Only used by "vectors.S"
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================*/
+
+#include <pkgconf/system.h> // System-wide configuration info
+#include CYGBLD_HAL_VARIANT_H // Variant (SA11x0) specific configuration
+#include CYGBLD_HAL_PLATFORM_H // Platform specific configuration
+#include <cyg/hal/hal_sa11x0.h> // Variant specific hardware definitions
+#include <cyg/hal/hal_mmu.h> // MMU definitions
+#include <cyg/hal/assabet.h> // Platform specific hardware 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 macro represents the initial startup code for the platform
+ .macro _platform_setup1
+
+ // Turn off LEDs
+ ldr r1,=SA1110_BOARD_CONTROL
+ ldr r2,=SA1110_BCR_MIN
+ orr r2,r2,#SA1110_BCR_RED_LED
+ orr r2,r2,#SA1110_BCR_GREEN_LED
+ str r2,[r1]
+
+ // Set up GPIO to read hardware configuration
+ ldr r1,=SA11X0_GPIO_PIN_DIRECTION
+ ldr r2,=0x0807A7FC
+ str r2,[r1]
+ ldr r3,=SA11X0_GPIO_PIN_OUTPUT_SET
+ ldr r2,=0x2FC // Bits 2..9
+ str r2,[r3] // Requests hardware configuration
+ ldr r2,=0x0807A400 // Reconfigure 2..9 as inputs
+ str r2,[r1]
+ ldr r3,=SA11X0_GPIO_PIN_LEVEL
+ mov r2,#100
+10: ldr r9,[r3] // Read multiple times to settle
+ subs r2,r2,#1
+ bne 10b
+ ldr r2,=0x0807A7FC // Restore proper pin configuration
+ str r2,[r1]
+ ldr r3,=SA11X0_GPIO_PIN_OUTPUT_SET
+ ldr r2,=0x10000 // Enable high power mode
+ str r2,[r3]
+
+ // Disable clock switching
+ mcr p15,0,r0,\
+ SA11X0_TEST_CLOCK_AND_IDLE_REGISTER,\
+ SA11X0_DISABLE_CLOCK_SWITCHING_RM,\
+ SA11X0_DISABLE_CLOCK_SWITCHING_OPCODE
+
+ // Set up processor clock
+ ldr r1,=SA11X0_PWR_MGR_PLL_CONFIG
+ ldr r2,=SA11X0_PLL_CLOCK
+ str r2,[r1]
+
+ // Turn clock switching back on
+ mcr p15,0,r0,\
+ SA11X0_TEST_CLOCK_AND_IDLE_REGISTER,\
+ SA11X0_ENABLE_CLOCK_SWITCHING_RM,\
+ SA11X0_ENABLE_CLOCK_SWITCHING_OPCODE
+ nop
+ nop
+
+ // Turn on Red LED
+ ldr r1,=SA1110_BOARD_CONTROL
+ ldr r2,=SA1110_BCR_MIN
+ bic r2,r2,#SA1110_BCR_RED_LED
+ orr r2,r2,#SA1110_BCR_GREEN_LED
+ str r2,[r1]
+
+ // Pause
+ ldr r1,=100000
+10: sub r1,r1,#1
+ cmp r1,#0
+ bne 10b
+
+ // Initialize DRAM controller
+ ldr r1,=dram_table
+ ldr r2,=__exception_handlers
+ sub r1,r1,r2
+ ldr r2,[r1],#4 // First control register
+10: ldr r3,[r1],#4
+ str r3,[r2]
+ ldr r2,[r1],#4 // Next control register
+ cmp r2,#0
+ bne 10b
+
+ ldr r1,=SA1110_BOARD_CONTROL
+ ldr r2,=SA1110_BCR_MIN
+ orr r2,r2,#SA1110_BCR_RED_LED
+ bic r2,r2,#SA1110_BCR_GREEN_LED
+ str r2,[r1]
+
+ // Enable UART
+ ldr r1,=SA1110_GPCLK_CONTROL_0
+ ldr r2,=SA1110_GPCLK_SUS_UART
+ str r2,[r1]
+
+ // Release DRAM hold (set by RESET)
+ ldr r1,=SA11X0_PWR_MGR_SLEEP_STATUS
+ ldr r2,=SA11X0_DRAM_CONTROL_HOLD
+ str r2,[r1]
+
+ // Perform 8 reads from unmapped/unenabled DRAM
+ ldr r1,=SA11X0_RAM_BANK0_BASE
+ ldr r2,[r1]
+ ldr r2,[r1]
+ ldr r2,[r1]
+ ldr r2,[r1]
+ ldr r2,[r1]
+ ldr r2,[r1]
+ ldr r2,[r1]
+ ldr r2,[r1]
+
+ // Enable DRAM controller
+ ldr r1,=SA11X0_DRAM_CONFIGURATION
+ ldr r2,=0x72547255
+ str r2,[r1]
+
+ b 19f
+
+// DRAM controller initialization
+dram_table:
+ .word SA11X0_DRAM0_CAS_0, 0xAAAAAA7F
+ .word SA11X0_DRAM0_CAS_1, 0xAAAAAAAA
+ .word SA11X0_DRAM0_CAS_2, 0xAAAAAAAA
+#ifdef CYGSEM_HAL_ARM_SA11X0_ASSABET_NEPONSET_TIMINGS
+ .word SA11X0_STATIC_CONTROL_0, 0x4B384370
+ .word SA11X0_STATIC_CONTROL_1, 0x22212419
+#endif
+ .word SA11X0_EXP_BUS_CONFIGURATION, 0x994A994A
+ .word SA11X0_REFRESH_CONFIGURATION, 0x49FC0327
+ .word SA11X0_DRAM2_CAS_0, 0xAAAAAA7F
+ .word SA11X0_DRAM2_CAS_1, 0xAAAAAAAA
+ .word SA11X0_DRAM2_CAS_2, 0xAAAAAAAA
+#ifdef CYGSEM_HAL_ARM_SA11X0_ASSABET_NEPONSET_TIMINGS
+ .word SA11X0_STATIC_CONTROL_2, 0x42196669
+#endif
+ .word SA11X0_SMROM_CONFIGURATION, 0xAFCCAFCC
+ .word SA11X0_DRAM_CONFIGURATION, 0x72547254 // Disabled
+ .word 0, 0
+19:
+
+ // Wakeup from deep sleep mode
+ ldr r1,=SA11X0_RESET_STATUS
+ ldr r2,[r1]
+ cmp r2,#SA11X0_SLEEP_MODE_RESET
+ bne 45f
+ ldr r1,=SA11X0_PWR_MGR_SCRATCHPAD
+ ldr r1,[r1]
+ mov pc,r1
+ nop
+45: nop
+
+ // Release peripheral hold (set by RESET)
+ ldr r1,=SA11X0_PWR_MGR_SLEEP_STATUS
+ ldr r2,=SA11X0_PERIPHERAL_CONTROL_HOLD
+ str r2,[r1]
+
+ // 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
+
+ // Turn on green LED
+ ldr r1,=SA1110_BOARD_CONTROL
+ ldr r2,=SA1110_BCR_MIN
+ orr r2,r2,#SA1110_BCR_RED_LED
+ bic r2,r2,#SA1110_BCR_GREEN_LED
+ str r2,[r1]
+
+ // 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:
+
+ // Turn on both LEDs
+ ldr r1,=SA1110_BOARD_CONTROL
+ ldr r2,=SA1110_BCR_MIN
+ bic r2,r2,#SA1110_BCR_RED_LED
+ bic r2,r2,#SA1110_BCR_GREEN_LED
+ str r2,[r1]
+
+ // Save shadow copy of BCR, also hardware configuration
+ ldr r1,=_assabet_BCR
+ str r2,[r1]
+ ldr r1,=_assabet_CFG
+ str r9,[r1] // Saved far above...
+ .endm
+
+#else // defined(CYG_HAL_STARTUP_ROM)
+#define PLATFORM_SETUP1
+#endif
+
+#define PLATFORM_VECTORS _platform_vectors
+ .macro _platform_vectors
+ .globl _assabet_BCR, _assabet_CFG
+_assabet_BCR: .long 0 // Board Control register shadow
+_assabet_CFG: .long 0 // Board Configuration (read at RESET)
+ .endm
+
+/*---------------------------------------------------------------------------*/
+/* end of hal_platform_setup.h */
+#endif /* CYGONCE_HAL_PLATFORM_SETUP_H */
diff --git a/ecos/packages/hal/arm/sa11x0/assabet/current/include/pkgconf/mlt_arm_sa11x0_assabet_ram.h b/ecos/packages/hal/arm/sa11x0/assabet/current/include/pkgconf/mlt_arm_sa11x0_assabet_ram.h
new file mode 100644
index 0000000..290a952
--- /dev/null
+++ b/ecos/packages/hal/arm/sa11x0/assabet/current/include/pkgconf/mlt_arm_sa11x0_assabet_ram.h
@@ -0,0 +1,17 @@
+// eCos memory layout - Fri Oct 20 05:56:24 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 (0)
+#define CYGMEM_REGION_ram_SIZE (0x2000000)
+#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 (0x2000000 - (size_t) CYG_LABEL_NAME (__heap1))
diff --git a/ecos/packages/hal/arm/sa11x0/assabet/current/include/pkgconf/mlt_arm_sa11x0_assabet_ram.ldi b/ecos/packages/hal/arm/sa11x0/assabet/current/include/pkgconf/mlt_arm_sa11x0_assabet_ram.ldi
new file mode 100644
index 0000000..9b0b11c
--- /dev/null
+++ b/ecos/packages/hal/arm/sa11x0/assabet/current/include/pkgconf/mlt_arm_sa11x0_assabet_ram.ldi
@@ -0,0 +1,27 @@
+// eCos memory layout - Fri Oct 20 05:56:24 2000
+
+// This is a generated file - do not edit
+
+#include <cyg/infra/cyg_type.inc>
+
+MEMORY
+{
+ ram : ORIGIN = 0, LENGTH = 0x2000000
+}
+
+SECTIONS
+{
+ SECTIONS_BEGIN
+ SECTION_fixed_vectors (ram, 0x20, LMA_EQ_VMA)
+ SECTION_rom_vectors (ram, 0x20000, 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)
+ CYG_LABEL_DEFN(__heap1) = ALIGN (0x8);
+ SECTIONS_END
+}
diff --git a/ecos/packages/hal/arm/sa11x0/assabet/current/include/pkgconf/mlt_arm_sa11x0_assabet_ram.mlt b/ecos/packages/hal/arm/sa11x0/assabet/current/include/pkgconf/mlt_arm_sa11x0_assabet_ram.mlt
new file mode 100644
index 0000000..3504c74
--- /dev/null
+++ b/ecos/packages/hal/arm/sa11x0/assabet/current/include/pkgconf/mlt_arm_sa11x0_assabet_ram.mlt
@@ -0,0 +1,13 @@
+version 0
+region ram 0 2000000 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 20000 20000 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 1 0 1 heap1 heap1 !
+section heap1 0 8 0 0 0 0 0 0 !
diff --git a/ecos/packages/hal/arm/sa11x0/assabet/current/include/pkgconf/mlt_arm_sa11x0_assabet_rom.h b/ecos/packages/hal/arm/sa11x0/assabet/current/include/pkgconf/mlt_arm_sa11x0_assabet_rom.h
new file mode 100644
index 0000000..73d0a70
--- /dev/null
+++ b/ecos/packages/hal/arm/sa11x0/assabet/current/include/pkgconf/mlt_arm_sa11x0_assabet_rom.h
@@ -0,0 +1,20 @@
+// eCos memory layout - Fri Oct 20 05:56:55 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 (0)
+#define CYGMEM_REGION_ram_SIZE (0x2000000)
+#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)
+#ifndef __ASSEMBLER__
+extern char CYG_LABEL_NAME (__heap1) [];
+#endif
+#define CYGMEM_SECTION_heap1 (CYG_LABEL_NAME (__heap1))
+#define CYGMEM_SECTION_heap1_SIZE (0x2000000 - (size_t) CYG_LABEL_NAME (__heap1))
diff --git a/ecos/packages/hal/arm/sa11x0/assabet/current/include/pkgconf/mlt_arm_sa11x0_assabet_rom.ldi b/ecos/packages/hal/arm/sa11x0/assabet/current/include/pkgconf/mlt_arm_sa11x0_assabet_rom.ldi
new file mode 100644
index 0000000..596987d
--- /dev/null
+++ b/ecos/packages/hal/arm/sa11x0/assabet/current/include/pkgconf/mlt_arm_sa11x0_assabet_rom.ldi
@@ -0,0 +1,28 @@
+// eCos memory layout - Fri Oct 20 05:56:55 2000
+
+// This is a generated file - do not edit
+
+#include <cyg/infra/cyg_type.inc>
+
+MEMORY
+{
+ ram : ORIGIN = 0, LENGTH = 0x2000000
+ 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)
+ CYG_LABEL_DEFN(__heap1) = ALIGN (0x8);
+ SECTIONS_END
+}
diff --git a/ecos/packages/hal/arm/sa11x0/assabet/current/include/pkgconf/mlt_arm_sa11x0_assabet_rom.mlt b/ecos/packages/hal/arm/sa11x0/assabet/current/include/pkgconf/mlt_arm_sa11x0_assabet_rom.mlt
new file mode 100644
index 0000000..45640e6
--- /dev/null
+++ b/ecos/packages/hal/arm/sa11x0/assabet/current/include/pkgconf/mlt_arm_sa11x0_assabet_rom.mlt
@@ -0,0 +1,14 @@
+version 0
+region ram 0 2000000 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 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 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 !
diff --git a/ecos/packages/hal/arm/sa11x0/assabet/current/include/plf_io.h b/ecos/packages/hal/arm/sa11x0/assabet/current/include/plf_io.h
new file mode 100644
index 0000000..226b965
--- /dev/null
+++ b/ecos/packages/hal/arm/sa11x0/assabet/current/include/plf_io.h
@@ -0,0 +1,59 @@
+#ifndef CYGONCE_HAL_ARM_SA11X0_ASSABET_PLF_IO_H
+#define CYGONCE_HAL_ARM_SA11X0_ASSABET_PLF_IO_H
+
+/*=============================================================================
+//
+// plf_io.h
+//
+// Platform specific support (register layout, etc)
+//
+//=============================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jskov
+// Contributors: jskov
+// Date: 2002-01-28
+// Purpose: Platform specific support routines
+// Description:
+// Usage: #include <cyg/hal/hal_io.h>
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================*/
+
+#include <cyg/hal/assabet.h>
+
+#endif // CYGONCE_HAL_ARM_SA11X0_ASSABET_PLF_IO_H
+// EOF plf_io.h
diff --git a/ecos/packages/hal/arm/sa11x0/assabet/current/include/plf_mmap.h b/ecos/packages/hal/arm/sa11x0/assabet/current/include/plf_mmap.h
new file mode 100644
index 0000000..548804d
--- /dev/null
+++ b/ecos/packages/hal/arm/sa11x0/assabet/current/include/plf_mmap.h
@@ -0,0 +1,131 @@
+#ifndef CYGONCE_HAL_SA11X0_PLATFORM_PLF_MMAP_H
+#define CYGONCE_HAL_SA11X0_PLATFORM_PLF_MMAP_H
+/*=============================================================================
+//
+// plf_mmap.h
+//
+// Platform specific memory map support
+//
+//=============================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): hmt
+// Contributors: hmt
+// Date: 2001-01-04
+// Purpose: Intel SA11x0 series platform-specific memory mapping macros
+// Description: Macros to convert a cached, virtual address to
+// 1) an uncached adddress for the same memory (if available)
+// 2) the equivalent physical address for giving to external
+// hardware eg. DMA engines.
+//
+// NB: this mapping is expressed here statically, independent
+// of the actual mapping installed in the MMAP table. So if
+// someone changes that, or its initialisation is changed,
+// then this module must change. This is intended to be
+// efficient at a cost of generality. It is also intended to
+// be called with constants (such as &my_struct) as input
+// args, so that all the work can be done at compile time,
+// with optimization on.
+//
+// Usage: #include <cyg/hal/hal_cache.h>
+// (which includes this file itself)
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================*/
+
+#include <cyg/hal/hal_misc.h>
+
+// Get the pagesize for a particular virtual address:
+
+// This does not depend on the vaddr.
+#define HAL_MM_PAGESIZE( vaddr, pagesize ) CYG_MACRO_START \
+ (pagesize) = SZ_1M; \
+CYG_MACRO_END
+
+// Get the physical address from a virtual address:
+
+// Only RAM and ROM are mapped; we just pass through all other values,
+// rather than detecting nonexistent areas here.
+
+#define HAL_VIRT_TO_PHYS_ADDRESS( vaddr, paddr ) CYG_MACRO_START \
+ cyg_uint32 _v_ = (cyg_uint32)(vaddr); \
+ if ( 32 * SZ_1M > _v_ ) /* 32Mb of SDRAM Bank 0 from 0-32Mb */ \
+ _v_ += 0xc00u * SZ_1M; \
+ else if ( 0x500u * SZ_1M > _v_ ) /* Space between RAM and mapped ROM */\
+ /* no change */ ; \
+ else if ( 0x520u * SZ_1M > _v_ ) /* Mapped boot ROM size 32Mb */ \
+ _v_ -= 0x500u * SZ_1M; \
+ else /* Rest of it */ \
+ /* no change */ ; \
+ (paddr) = _v_; \
+CYG_MACRO_END
+
+// Get the virtual address for a physical address:
+
+// Only RAM and ROM are mapped; we just pass through all other values,
+// rather than detecting nonexistent areas here.
+
+#define HAL_PHYS_TO_VIRT_ADDRESS( paddr, vaddr ) CYG_MACRO_START \
+ cyg_uint32 _p_ = (cyg_uint32)(paddr); \
+ if ( 32 * SZ_1M > _p_ ) /* 32Mb Boot ROM mapped to 0x500Mb */ \
+ _p_ += 0x500u * SZ_1M; \
+ else if ( 0xc00u * SZ_1M > _p_ ) /* Space between ROM and SDRAM */ \
+ /* no change */ ; \
+ else if ( 0xc20u * SZ_1M > _p_ ) /* Raw RAM size 32Mb */ \
+ _p_ -= 0xc00u * SZ_1M; \
+ else /* Rest of it */ \
+ /* no change */ ; \
+ (vaddr) = _p_ ; \
+CYG_MACRO_END
+
+// Get a non-cacheable address for accessing the same store as a virtual
+// (assumed cachable) address:
+
+// Only RAM is mapped: ROM is only available cachable, everything else is
+// not cachable anyway.
+
+#define HAL_VIRT_TO_UNCACHED_ADDRESS( vaddr, uaddr ) CYG_MACRO_START \
+ cyg_uint32 _v_ = (cyg_uint32)(vaddr); \
+ if ( 32 * SZ_1M > _v_ ) /* 32Mb of SDRAM Bank 0 from 0-32Mb */ \
+ _v_ += 0xc00u * SZ_1M; \
+ else /* Everything else is already uncacheable or is ROM */ \
+ /* no change */ ; \
+ (uaddr) = _v_ ; \
+CYG_MACRO_END
+
+//---------------------------------------------------------------------------
+#endif // CYGONCE_HAL_SA11X0_PLATFORM_PLF_MMAP_H
+// EOF plf_mmap.h
diff --git a/ecos/packages/hal/arm/sa11x0/assabet/current/misc/eCos.xpm b/ecos/packages/hal/arm/sa11x0/assabet/current/misc/eCos.xpm
new file mode 100644
index 0000000..a481c3c
--- /dev/null
+++ b/ecos/packages/hal/arm/sa11x0/assabet/current/misc/eCos.xpm
@@ -0,0 +1,254 @@
+/* XPM */
+static char * eCos_xpm[] = {
+"320 240 11 1",
+" c None",
+". c #FFFFFF",
+"+ c #C7C7C7",
+"@ c #AAAAAA",
+"# c #727272",
+"$ c #555555",
+"% c #1D1D1D",
+"& c #000000",
+"* c #393939",
+"= c #8E8E8E",
+"- c #E3E3E3",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"......................................................................................................................................+@#$$$%&&&$$$#@+..........................................................................................................................................................................",
+"..................................................................................................................................+#*&&&&&&&&&&&&&&&&&&$=-......................................................................................................................................................................",
+"...............................................................................................................................-#%&&&&&&&&&&&&&&&&&&&&&&&&*@....................................................................................................................................................................",
+".............................................................................................................................+*&&&&&&&&&&&&&&&&&&&&&&&&&&&&&%=..................................................................................................................................................................",
+"...........................................................................................................................+*&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&*-................................................................................................................................................................",
+".........................................................................................................................-*&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&@...............................................................................................................................................................",
+"........................................................................................................................=&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$..............................................................................................................................................................",
+"......................................................................................................................-*&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$.............................................................................................................................................................",
+".....................................................................................................................@%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$............................................................................................................................................................",
+"....................................................................................................................@&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&@...........................................................................................................................................................",
+"...................................................................................................................#&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&-..........................................................................................................................................................",
+"..................................................................................................................$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&*..........................................................................................................................................................",
+".................................................................................................................$&&&&&&&&&&&&&&&&&&&&&&&&&$$*&&&&&&&&&&&&&&&&&&&&&&&&+.........................................................................................................................................................",
+"................................................................................................................@&&&&&&&&&&&&&&&&&&&&*#@........+=%&&&&&&&&&&&&&&&&&&&$.........................................................................................................................................................",
+"...............................................................................................................@&&&&&&&&&&&&&&&&&&&#-..............+*&&&&&&&&&&&&&&&&&&.........................................................................................................................................................",
+"..............................................................................................................+&&&&&&&&&&&&&&&&&&#-..................#&&&&&&&&&&&&&&&&&@........................................................................................................................................................",
+".............................................................................................................-%&&&&&&&&&&&&&&&&%+.....................@&&&&&&&&&&&&&&&&$........................................................................................................................................................",
+".............................................................................................................$&&&&&&&&&&&&&&&&*-.......................#&&&&&&&&&&&&&&&*........................................................................................................................................................",
+"............................................................................................................@&&&&&&&&&&&&&&&&$..........................%&&&&&&&&&&&&&&&........................................................................................................................................................",
+"..................................................................@@@$$$$@@@...............................-%&&&&&&&&&&&&&&&$...........................=&&&&&&&&&&&&&&&.............................@@@#$$$$@@@...............................................+@@=$$$$#@@+.....................................................",
+".............................................................-@$%&&&&&&&&&&&&%#+...........................#&&&&&&&&&&&&&&&%.............................&&&&&&&&&&&&&&&........................-=$%&&&&&&&&&&&&&%#@......................................-=$%&&&&&&&&&&&&&&%$@.................................................",
+"...........................................................=*&&&&&&&&&&&&&&&&&&&%=........................+&&&&&&&&&&&&&&&%-.............................*&&&&&&&&&&&&&&.....................-#%&&&&&&&&&&&&&&&&&&&&%#-................................-=*&&&&&&&&&&&&&&&&&&&&&&#+..............................................",
+"........................................................-#&&&&&&&&&&&&&&&&&&&&&&&&%=......................*&&&&&&&&&&&&&&&@..............................$&&&&&&&&&&&&&&...................+*&&&&&&&&&&&&&&&&&&&&&&&&&&#.............................-#&&&&&&&&&&&&&&&&&&&&&&&&&&&$-............................................",
+".......................................................#&&&&&&&&&&&&&&&&&&&&&&&&&&&&$-...................+&&&&&&&&&&&&&&&#...............................#&&&&&&&&&&&&&&.................-*&&&&&&&&&&&&&&&&&&&&&&&&&&&&&%+..........................=&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&@...........................................",
+".....................................................+%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&%-..................*&&&&&&&&&&&&&&%................................@&&&&&&&&&&&&&%................#&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&@.......................-*&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&@..........................................",
+"....................................................=&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&%-................+&&&&&&&&&&&&&&&=................................@&&&&&&&&&&&&&$..............-*&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&@.....................-%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&@.........................................",
+"...................................................$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&*................$&&&&&&&&&&&&&&*.............................................................@%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&@...................-%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&+........................................",
+"..................................................$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&#..............-&&&&&&&&&&&&&&&+............................................................@&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&-.................-%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&*........................................",
+".................................................$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&+.............=&&&&&&&&&&&&&&*............................................................@&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&*.................%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&+.......................................",
+"................................................=&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&*.............%&&&&&&&&&&&&&&@...........................................................@&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&=...............#&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$.......................................",
+"...............................................+&&&&&&&&&&&&&&&&&&&%$$%&&&&&&&&&&&&&&&&&&&+...........+&&&&&&&&&&&&&&%...........................................................-&&&&&&&&&&&&&&&&&&&&%$$%&&&&&&&&&&&&&&&&&&&&%..............+&&&&&&&&&&&&&&&&&&&$$$*&&&&&&&&&&&&&&&&&&&&.......................................",
+"..............................................-%&&&&&&&&&&&&&&&%#+......@*&&&&&&&&&&&&&&&&$...........#&&&&&&&&&&&&&&=..........................................................-%&&&&&&&&&&&&&&&&&$@......@$&&&&&&&&&&&&&&&&&&@.............*&&&&&&&&&&&&&&&#@........@$&&&&&&&&&&&&&&&&-......................................",
+"..............................................#&&&&&&&&&&&&&&&=...........+%&&&&&&&&&&&&&&&...........%&&&&&&&&&&&&&&-..........................................................$&&&&&&&&&&&&&&&&$-..........+%&&&&&&&&&&&&&&&&$............+&&&&&&&&&&&&&&$-............-%&&&&&&&&&&&&&&@......................................",
+".............................................+&&&&&&&&&&&&&&%-.............-%&&&&&&&&&&&&&&@.........+&&&&&&&&&&&&&&*..........................................................@&&&&&&&&&&&&&&&&@.............-%&&&&&&&&&&&&&&&&............*&&&&&&&&&&&&&*...............-%&&&&&&&&&&&&&@......................................",
+".............................................*&&&&&&&&&&&&&%-...............=&&&&&&&&&&&&&&$.........=&&&&&&&&&&&&&&=..........................................................%&&&&&&&&&&&&&&%+...............-&&&&&&&&&&&&&&&&+..........-&&&&&&&&&&&&&&+................#&&&&&&&&&&&&&@......................................",
+"............................................=&&&&&&&&&&&&&%-.................%&&&&&&&&&&&&&%.........$&&&&&&&&&&&&&&-.........................................................#&&&&&&&&&&&&&&&-.................=&&&&&&&&&&&&&&&@..........@&&&&&&&&&&&&&&.................@&&&&&&&&&&&&&@......................................",
+"............................................%&&&&&&&&&&&&&+..................#&&&&&&&&&&&&&&.........&&&&&&&&&&&&&&%.........................................................-&&&&&&&&&&&&&&&@...................&&&&&&&&&&&&&&&#..........$&&&&&&&&&&&&&&.................@&&&&&&&&&&&&&.......................................",
+"...........................................=&&&&&&&&&&&&&$...................@&&&&&&&&&&&&&&........+&&&&&&&&&&&&&&$.........................................................#&&&&&&&&&&&&&&#....................$&&&&&&&&&&&&&&$..........*&&&&&&&&&&&&&&=................=$$$$$$$$$$$$$.......................................",
+"...........................................*&&&&&&&&&&&&&+...................+&&&&&&&&&&&&&&@.......@&&&&&&&&&&&&&&@........................................................-&&&&&&&&&&&&&&%.....................@&&&&&&&&&&&&&&$..........&&&&&&&&&&&&&&&&#-...................................................................",
+"..........................................+&&&&&&&&&&&&&*.....................&&&&&&&&&&&&&&@.......$&&&&&&&&&&&&&&+........................................................=&&&&&&&&&&&&&&+.....................+&&&&&&&&&&&&&&$..........&&&&&&&&&&&&&&&&&&#+.................................................................",
+"..........................................$&&&&&&&&&&&&&=.....................&&&&&&&&&&&&&&+.......*&&&&&&&&&&&&&&.........................................................%&&&&&&&&&&&&&*.......................&&&&&&&&&&&&&&$..........&&&&&&&&&&&&&&&&&&&&%$@..............................................................",
+"..........................................&&&&&&&&&&&&&&-.....................&&&&&&&&&&&&&&........&&&&&&&&&&&&&&*........................................................+&&&&&&&&&&&&&&+.......................&&&&&&&&&&&&&&$..........%&&&&&&&&&&&&&&&&&&&&&&&*=-..........................................................",
+".........................................@&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&........&&&&&&&&&&&&&&$........................................................#&&&&&&&&&&&&&*........................&&&&&&&&&&&&&&$..........$&&&&&&&&&&&&&&&&&&&&&&&&&&%#@.......................................................",
+".........................................$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&.......@&&&&&&&&&&&&&&$........................................................%&&&&&&&&&&&&&=........................&&&&&&&&&&&&&&@..........+&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$@....................................................",
+".........................................&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&%.......@&&&&&&&&&&&&&&=.......................................................+&&&&&&&&&&&&&&-........................&&&&&&&&&&&&&&@...........*&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&#+.................................................",
+"........................................+&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$.......@&&&&&&&&&&&&&&@.......................................................=&&&&&&&&&&&&&*........................+&&&&&&&&&&&&&&+...........+&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&*-...............................................",
+"........................................=&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&#.......#&&&&&&&&&&&&&&@.......................................................$&&&&&&&&&&&&&#........................@&&&&&&&&&&&&&&.............@&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&=..............................................",
+"........................................$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&@.......$&&&&&&&&&&&&&&@.......................................................&&&&&&&&&&&&&&@........................@&&&&&&&&&&&&&%..............@&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$.............................................",
+"........................................&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&-.......$&&&&&&&&&&&&&&@......................................................+&&&&&&&&&&&&&&-........................$&&&&&&&&&&&&&$...............-%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$............................................",
+"........................................&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&........$&&&&&&&&&&&&&&@.................................+$$$$$$$$$$$$$$......@&&&&&&&&&&&&&&.........................%&&&&&&&&&&&&&@.................=%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&#...........................................",
+".......................................@&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$........$&&&&&&&&&&&&&&@.................................*&&&&&&&&&&&&&$......#&&&&&&&&&&&&&%........................-&&&&&&&&&&&&&&-...................=%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&-..........................................",
+".......................................@&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@........$&&&&&&&&&&&&&&$................................-&&&&&&&&&&&&&&@......$&&&&&&&&&&&&&$........................@&&&&&&&&&&&&&%......................@$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&#..........................................",
+".......................................=&&&&&&&&&&&&&&.............................................$&&&&&&&&&&&&&&$................................#&&&&&&&&&&&&&&-......$&&&&&&&&&&&&&$........................*&&&&&&&&&&&&&#.........................@$&&&&&&&&&&&&&&&&&&&&&&&&&&&&..........................................",
+".......................................$&&&&&&&&&&&&&&.............................................$&&&&&&&&&&&&&&%...............................-&&&&&&&&&&&&&&$.......&&&&&&&&&&&&&&$.......................-&&&&&&&&&&&&&&+............................@$&&&&&&&&&&&&&&&&&&&&&&&&&-.........................................",
+".......................................$&&&&&&&&&&&&&&.............................................=&&&&&&&&&&&&&&&-..............................#&&&&&&&&&&&&&&@.......&&&&&&&&&&&&&&$.......................#&&&&&&&&&&&&&%................................+#%&&&&&&&&&&&&&&&&&&&&&@.........................................",
+".......................................$&&&&&&&&&&&&&&.............................................@&&&&&&&&&&&&&&&=.............................+&&&&&&&&&&&&&&%........&&&&&&&&&&&&&&$......................-&&&&&&&&&&&&&&#...................................+#%&&&&&&&&&&&&&&&&&&@.........................................",
+".......................................$&&&&&&&&&&&&&&.............................................+&&&&&&&&&&&&&&&%............................-%&&&&&&&&&&&&&&=........&&&&&&&&&&&&&&%......................#&&&&&&&&&&&&&&-......................................@*&&&&&&&&&&&&&&&&@.........................................",
+".......................................$&&&&&&&&&&&&&&..............................................&&&&&&&&&&&&&&&&=...........................$&&&&&&&&&&&&&&%.........&&&&&&&&&&&&&&&.....................-&&&&&&&&&&&&&&$.........................................=&&&&&&&&&&&&&&&@.........................................",
+".......................................$&&&&&&&&&&&&&&+.............................................*&&&&&&&&&&&&&&&%-.........................$&&&&&&&&&&&&&&&=.........&&&&&&&&&&&&&&&@....................*&&&&&&&&&&&&&&+.......-@@@@@@@@@@@@@+....................#&&&&&&&&&&&&&&-.........................................",
+".......................................@&&&&&&&&&&&&&&=...................*&&&&&&&&&&&&&-...........=&&&&&&&&&&&&&&&&$.......................-*&&&&&&&&&&&&&&&%..........%&&&&&&&&&&&&&&$...................#&&&&&&&&&&&&&&*........@&&&&&&&&&&&&&$....................@&&&&&&&&&&&&&&..........................................",
+".......................................@&&&&&&&&&&&&&&%..................=&&&&&&&&&&&&&#............+&&&&&&&&&&&&&&&&&$.....................+%&&&&&&&&&&&&&&&&@..........$&&&&&&&&&&&&&&&-.................@&&&&&&&&&&&&&&&+........$&&&&&&&&&&&&&%....................@&&&&&&&&&&&&&*..........................................",
+"........................................&&&&&&&&&&&&&&&=................@&&&&&&&&&&&&&%-.............*&&&&&&&&&&&&&&&&&*-.................-$&&&&&&&&&&&&&&&&&$...........#&&&&&&&&&&&&&&&*................@&&&&&&&&&&&&&&&#.........$&&&&&&&&&&&&&&+...................*&&&&&&&&&&&&&=..........................................",
+"........................................*&&&&&&&&&&&&&&&+..............@&&&&&&&&&&&&&&=..............=&&&&&&&&&&&&&&&&&&&#-.............+$&&&&&&&&&&&&&&&&&&%-...........@&&&&&&&&&&&&&&&&$..............$&&&&&&&&&&&&&&&%-.........$&&&&&&&&&&&&&&%-.................#&&&&&&&&&&&&&&-..........................................",
+"........................................=&&&&&&&&&&&&&&&&@...........-*&&&&&&&&&&&&&&$................%&&&&&&&&&&&&&&&&&&&&*=@-....-@=$&&&&&&&&&&&&&&&&&&&&&+.............&&&&&&&&&&&&&&&&&$-..........+%&&&&&&&&&&&&&&&&@..........=&&&&&&&&&&&&&&&%+..............-$&&&&&&&&&&&&&&*...........................................",
+"........................................-&&&&&&&&&&&&&&&&&*@.......@*&&&&&&&&&&&&&&&%-................=&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&@..............$&&&&&&&&&&&&&&&&&%=-......@*&&&&&&&&&&&&&&&&&#...........@&&&&&&&&&&&&&&&&&*=-........-@$&&&&&&&&&&&&&&&&+...........................................",
+".........................................#&&&&&&&&&&&&&&&&&&&*$$$%&&&&&&&&&&&&&&&&&&@..................*&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&=...............+&&&&&&&&&&&&&&&&&&&&%$$$%&&&&&&&&&&&&&&&&&&&*.............&&&&&&&&&&&&&&&&&&&&&*$$$$*&&&&&&&&&&&&&&&&&&&*............................................",
+".........................................-&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&@...................-&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$.................*&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&%-.............#&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&-............................................",
+"..........................................#&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&@.....................@&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&=..................-&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&%-..............-&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&@.............................................",
+"...........................................%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&@.......................#&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&@....................=&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&%-................#&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&@..............................................",
+"...........................................-%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&@.........................$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&%-......................$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$-..................*&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&@...............................................",
+"............................................-%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&%+...........................@&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&#.........................$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&#....................-%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&@................................................",
+".............................................-%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$-.............................+%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&*+...........................$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&%+......................-%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&*-.................................................",
+"..............................................-*&&&&&&&&&&&&&&&&&&&&&&&&&&&%@................................-#&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&%=..............................=&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&#..........................$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&%=...................................................",
+"................................................=%&&&&&&&&&&&&&&&&&&&&&&&%=....................................-$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&*@.................................-*&&&&&&&&&&&&&&&&&&&&&&&&&&#-............................+*&&&&&&&&&&&&&&&&&&&&&&&&&&&&%=-....................................................",
+".................................................-#%&&&&&&&&&&&&&&&&&&&*@........................................-#%&&&&&&&&&&&&&&&&&&&&&&&*#-.....................................+$&&&&&&&&&&&&&&&&&&&&&*=.................................+*&&&&&&&&&&&&&&&&&&&&&&&&$@.......................................................",
+"....................................................@$&&&&&&&&&&&&&%$@-.............................................+=$&&&&&&&&&&&&&&&&*$@-..........................................-@$&&&&&&&&&&&&&&&$=-.....................................-=$&&&&&&&&&&&&&&&&&*#@..........................................................",
+".......................................................-@@$$$$$#@@......................................................-@@=$$$$$$#@@+...................................................-@@#$$$$$=@@...............................................@@=$$$$$$$=@@-..............................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................"};
diff --git a/ecos/packages/hal/arm/sa11x0/assabet/current/misc/eCos2.xpm b/ecos/packages/hal/arm/sa11x0/assabet/current/misc/eCos2.xpm
new file mode 100644
index 0000000..2699ff9
--- /dev/null
+++ b/ecos/packages/hal/arm/sa11x0/assabet/current/misc/eCos2.xpm
@@ -0,0 +1,260 @@
+/* XPM */
+static char * eCos2_xpm[] = {
+"320 240 17 1",
+" c None",
+". c #020204",
+"+ c #909091",
+"@ c #D2D2D2",
+"# c #535352",
+"$ c #EC9199",
+"% c #E84F4D",
+"& c #F4B2B4",
+"* c #ED6B65",
+"= c #FEFEFC",
+"- c #EA1A05",
+"; c #323232",
+"> c #B1B1B1",
+", c #747474",
+"' c #F4D1DA",
+") c #E7362D",
+"! c #171717",
+".==============================================================================================================================================================================================================================================================================================================================.",
+".==============================================================================================================================================================================================================================================================================================================================.",
+".==============================================================================================================================================================================================================================================================================================================================.",
+".==============================================================================================================================================================================================================================================================================================================================.",
+".==============================================================================================================================================================================================================================================================================================================================.",
+".==============================================================================================================================================================================================================================================================================================================================.",
+".==============================================================================================================================================================================================================================================================================================================================.",
+".==============================================================================================================================================================================================================================================================================================================================.",
+".==============================================================================================================================================================================================================================================================================================================================.",
+".==============================================================================================================================================================================================================================================================================================================================.",
+".==============================================================================================================================================================================================================================================================================================================================.",
+".==============================================================================================================================================================================================================================================================================================================================.",
+".==============================================================================================================================================================================================================================================================================================================================.",
+".==============================================================================================================================================================================================================================================================================================================================.",
+".==============================================================================================================================================================================================================================================================================================================================.",
+".==============================================================================================================================================================================================================================================================================================================================.",
+".==============================================================================================================================================================================================================================================================================================================================.",
+".==============================================================================================================================================================================================================================================================================================================================.",
+".==============================================================================================================================================================================================================================================================================================================================.",
+".==============================================================================================================================================================================================================================================================================================================================.",
+".==============================================================================================================================================================================================================================================================================================================================.",
+".==============================================================================================================================================================================================================================================================================================================================.",
+".==============================================================================================================================================================================================================================================================================================================================.",
+".==============================================================================================================================================================================================================================================================================================================================.",
+".==============================================================================================================================================================================================================================================================================================================================.",
+".==============================================================================================================================================================================================================================================================================================================================.",
+".==============================================================================================================================================================================================================================================================================================================================.",
+".==============================================================================================================================================================================================================================================================================================================================.",
+".==============================================================================================================================================================================================================================================================================================================================.",
+".==============================================================================================================================================================================================================================================================================================================================.",
+".==============================================================================================================================================================================================================================================================================================================================.",
+".==============================================================================================================================================================================================================================================================================================================================.",
+".==============================================================================================================================================================================================================================================================================================================================.",
+".==============================================================================================================================================================================================================================================================================================================================.",
+".==============================================================================================================================================================================================================================================================================================================================.",
+".==============================================================================================================================================================================================================================================================================================================================.",
+".==============================================================================================================================================================================================================================================================================================================================.",
+".==============================================================================================================================================================================================================================================================================================================================.",
+".==============================================================================================================================================================================================================================================================================================================================.",
+".==============================================================================================================================================================================================================================================================================================================================.",
+".==============================================================================================================================================================================================================================================================================================================================.",
+".==============================================================================================================================================================================================================================================================================================================================.",
+".==============================================================================================================================================================================================================================================================================================================================.",
+".==============================================================================================================================================================================================================================================================================================================================.",
+".==============================================================================================================================================================================================================================================================================================================================.",
+".==============================================================================================================================================================================================================================================================================================================================.",
+".==============================================================================================================================================================================================================================================================================================================================.",
+".==============================================================================================================================================================================================================================================================================================================================.",
+".==============================================================================================================================================================================================================================================================================================================================.",
+".==============================================================================================================================================================================================================================================================================================================================.",
+".==============================================================================================================================================================================================================================================================================================================================.",
+".==============================================================================================================================================================================================================================================================================================================================.",
+".==============================================================================================================================================================================================================================================================================================================================.",
+".==============================================================================================================================================================================================================================================================================================================================.",
+".==============================================================================================================================================================================================================================================================================================================================.",
+".==============================================================================================================================================================================================================================================================================================================================.",
+".==============================================================================================================================================================================================================================================================================================================================.",
+".==============================================================================================================================================================================================================================================================================================================================.",
+".==============================================================================================================================================================================================================================================================================================================================.",
+".==============================================================================================================================================================================================================================================================================================================================.",
+".==============================================================================================================================================================================================================================================================================================================================.",
+".==============================================================================================================================================================================================================================================================================================================================.",
+".==============================================================================================================================================================================================================================================================================================================================.",
+".==============================================================================================================================================================================================================================================================================================================================.",
+".==============================================================================================================================================================================================================================================================================================================================.",
+".==============================================================================================================================================================================================================================================================================================================================.",
+".======================@@@@@@>@>@>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>@@================''&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&'&'&'&''''==================.",
+".===================='=@>>>+++,,,+,########################################################################################################+@================'$************************************************************************************************************************************$*$*$$$&&&''================.",
+".=====================@>>,,###;#;;;!.......................................................................................................#>================&*----------------------------------------------------------------------------------------------------------------------------------))))))%%%*$$''================.",
+".================@@>>++,,##;;;;;;;!........................................................................................................#>================&*------------------------------------------------------------------------------------------------------------------------------------)))))))%**$$&&'''===========.",
+".=============='@>+,,##;;;;!!!!.!!!........................................................................................................#>================&*------------------------------------------------------------------------------------------------------------------------------------)---)-)))%%***$$&'==========.",
+".===============>+,;!......................................................................................................................#>================&%-------------------------------------------------------------------------------------------------------------------------------------------------)%*$'==========.",
+".==========@@@>>,,;;!......................................................................................................................#>================&*-------------------------------------------------------------------------------------------------------------------------------------------------))%*$$&''======.",
+".==========@>+,##;!!.......................................................................................................................#>================&%--------------------------------------------------------------------------------------------------------------------------------------------------))%%*$$&''====.",
+".=========@>>,#!!..........................................................................................................................#>================&*-------------------------------------------------------------------------------------------------------------------------------------------------------)*$&'====.",
+".=======@@>+##;.!..........................................................................................................................#>================&%-------------------------------------------------------------------------------------------------------------------------------------------------------)%*$&''==.",
+".======@>+,#;;!............................................................................................................................#>================&*--------------------------------------------------------------------------------------------------------------------------------------------------------))%$$&'=.",
+".======@+,;!...............................................................................................................................#>================&%----------------------------------------------------------------------------------------------------------------------------------------------------------)%*&'=.",
+".====@@+,;;!...............................................................................................................................#>================&*-----------------------------------------------------------------------------------------------------------------------------------------------------------)%*&'.",
+".===@>+,#!!!...............................................................................................................................#>================&%-----------------------------------------------------------------------------------------------------------------------------------------------------------))%*$.",
+".===@+#;;..................................................................................................................................#>================&*-------------------------------------------------------------------------------------------------------------------------------------------------------------)%*.",
+".='@>+;;!..........................................!.!!!!!!!!..............................................................................#>================&%-------------------------------------------------------------------------------------------------------------------------------------------------------------))%.",
+".=@>+#!!..........................................!!!!;!;!!!!!.............................................................................#>================&*----------------------------------------------))))))----------------------------------------------------------------------------------------------------------)).",
+".@>+,;............................................!;;;;;;#;;;!!............................................................................#>================&%---------------------------------------------))))))))-----------------------------------------------------------------------------------------------------------.",
+".@>,#!...................................!!;;;;####,,,++,+,,,,####;;;;!!.........................................................!!!;!;!;!;,>================&*------------------------------------)))%%%*****$*$$*$*%*%%%)))-----------------------------------------------))))%%%%*%*%%%%))))))------------------------------.",
+".>,;;!..................................!;;##,,+>>>>>>@>>@>@>>>>+++,##;!!!......................................................!!;;#######,@================&%----------------------------------))%**$$&&&&&&'&&&&&&&&&&$$*%%)-------------------------------------------)%%%$*$$$&&&&&&$$$$**%%))----------------------------.",
+".+#!!...................................!;,,++>@@================@@>+,#;!!.....................................................!!;##,,,,,,,+@================&*----------------------------------)%*$$&''================'&$*%%)-----------------------------------------))%*$$&&''=====''&&$&$**%)----------------------------.",
+".,#!................................!;;;,,++>>@@==================@@>>+,##;;!!...........................................!!;;;##,,,+>++++>+@@================&%------------------------------))%%*$$&'''=================''&&$**%%))----------------------------------))%%$$$&'''''======'@'@&&&$$$**%%))----------------------.",
+".#;!..............................!!;;,++>@@@'===================='@@@@>>+,#;!.........................................!.!;#,,>>>>@>@@@@@@@@=================&*----------------------------)%%*$&&&'''===================='''''&$$*%)---------------------------------%*$$&'''''=========='''=''''&&&$$*%-)--------------------.",
+".#!...............................!;;,+@@================================@>+#;.........................................!!;#,+@@==============================&%----------------------------)%$&'===============================''&$*))-------------------------------)%$&''========================='@&$*))--------------------.",
+".;!.............................!;;,,>>=@=============================='=@@>+#;;!...................................!!;##,+>>@===============================&*--------------------------)%*$$&'================================''&$$*))---------------------------)%*$&@'===========================''$*%)--------------------.",
+".!.............................!;#,+>@@==================================='@>+,#;!!.................................;;#+>>>@'@===============================&%-------------------------)%$$'''===================================''&$*))-------------------------)%$&''===============================&$%)--------------------.",
+"...............................;;,>@=========================================>>,#!.................................!;#+>=====================================&*-------------------------%$&''========================================'$%))------------------------)*&==================================&$%%)-------------------.",
+"............................!!;#,+@@=========================================@>>,#;;.............................!;;,,>@=====================================&%----------------------))%*&''========================================='&$*%)---------------------)%*$&==================================&*))--------------------.",
+"............................!;#+>@@===========================================@@>+,;!...........................!;;,+@@@=====================================&*----------------------)*$&''===========================================''$$%%)-------------------)*$&@================================'@&*)---------------------.",
+"............................;#+>@===============================================@@+#!!..........................!##+@========================================&%----------------------)$&'==============================================='&*%)-------------------%$&''================================''$%----------------------.",
+"..........................!!#+>@@===============================================@@>,#;!.......................!!;,+>@========================================&*--------------------)%*&'@===============================================''&*%-------------------*$@'================================''$*%----------------------.",
+".........................!;;,>@'==================================================@>,#;......................!;;,+@@=========================================&%-------------------)*$&&='================================================''&*))---------------))*&'================================='$*%)----------------------.",
+".........................!##+@====================================================@@>,;......................!;#+@===========================================&*-------------------%$&''===================================================='$%)---------------)%$'=================================='$))-----------------------.",
+".........................;,+>@=================@@>@>>>>>>>>>>>>@@'@==============='@@+#!!....................;#,>@====================='='''''''''''''=======&%------------------)*$@'===================='''''''''''''===================='$$*)-------------)%%$'=============='=''&&&$&&&&&''''='=$*))-----------------------.",
+".......................!!#,@@================@@@+++,,#########,+>>@@===============@@>,;;!.................!!#,>@======================''&&$&$$$&&&&''''=====&*----------------))%$&===================='''&$$$$$&$&&&''===================='&$%-------------)%*$'==============''&$*********$$'''''$*-------------------------.",
+"........................!#>@==================@+,#;;!........!;#,+@@'================@>##!..................!,>'======================''&$$*******$$$'''=====&%----------------)%*$&===================''&$$********$$&'======================&%-------------)**&'==============@&$%-------))%*$&@&&$%-------------------------.",
+"......................!;#,>=============='=@>++,#;;!!!.......!!;#,,+>@@==============@>+#;................!;;,>====================''&&$$*%%%%%%%%***$$&&''==&*----------------)*$''================'''&$$**%%%%%%%%***$&&''==================&*)------------)*$&'============='&$*%--------))%*$$$$%)-------------------------.",
+"......................!#,>>==============@@>+##;!;!!..........!!!;##,+>@=============@@>,;................;#,+@==================='&$**%%%))))))))))%%%*$$''=&%----------------%$''================='&***%%)))))))))))%%**$&''================'$%%-----------%*&''============='&*%)---------))))%%%))-------------------------.",
+"......................;#+@@==============@@+#!!!...................;##+@===============@+#................;,+@@==================='$*%)----------------)%*$'=&*----------------*&===================&*%)-----------------%*$&'================'&**)----------%$&@==============&$%))---------------)---------------------------.",
+"......................#+>@@=============@>+,;!.....................!;#,>@@============'=>#!!..............;+>@@================''&$*%%-----------------))%*&&$%----------------*&================'@&$*-)-----------------)%*$&''=============='&&*)----------%$&''============='$*%)-------------------------------------------.",
+"......................;+'=============@=>+#;;.......................!!#,>@'=============>,;!!...........!!#+@=================='$**%))------------------))%*$*)--------------)%*&================'$*%)--------------------))%$$&'==============''$%----------%$&@=============='&**)-------------------------------------------.",
+"......................#>===============@+#!!..........................;#+>@=============>+#;!...........!!,>===================&*)------------------------)%%%--------------)%%$'================&*)))----------------------)%*&'================&%----------%$&''============='@$*)-------------------------------------------.",
+"....................!!,>=============@@>+#;!!!!!!!!!!!!!!!!!!!!!!!!!!!;#,>@=============@+,#!..........!!;,>=================''$*)-------------------------)))--------------)%*$'=============''&$%--------------------------)%$&'===============&*----------)$&'===============''$*%%))---------------------------------------.",
+"...................!!;,>=============@>+,#;;;!;!;!;!;!;!;!;!;!;!;!;!;;;#,+@=============@>,#;...........;;+>================''$*%---------------------------)---------------)*$&'============='&$*%-------------------------)-)*&''==============&*)---------%$@''============='=''&$**%%)-------------------------------------.",
+"...................!;#+>=============@>,##;;#;;;#;;;#;;;#;;;#;;;#;;#;;###,@=============@@+,;..........!;#+@================'$*%)-------------------------------------------)*$@'============='$%%)----------------------------%$&''============='*%)--------%*&'==================''&$*%))------------------------------------.",
+"...................;;,+@=============@>>+++,,++,,++,,++,,++,,++,,+,,+,,,+>@============='@>,;..........!##+@================'$%))-------------------------------------------%$&'==============&*))-----------------------------)*$''============='$%%--------%*&''=================='@&$$$**%%%))------------------------------.",
+"...................;#,>@==============@@@>@>@>>@>>@>@>>@>>>@>>>@>@>@>@>@@@===============@@+#..........;#,>@================&*))--------------------------------------------%&'='===========''&*)------------------------------)%*$'============='$*%)-------)*$&'=================='''''&&&$$**%))----------------------------.",
+"...................;#+>@===================================================================+#..........;#+>@================&*----------------------------------------------*&=============='@$%-------------------------------))%$'============='&*%)-------)**&'========================='@&$$*%-----------------------------.",
+"...................;,+>@===================================================================+#..........;,+>@==============='&%----------------------------------------------*&=============''&$%--------------------------------))*&============='&**)-------)%%$'=========================='@'&$$**))-------------------------.",
+"...................;,>@@===================================================================>#..........;,>@'==============''$%----------------------------------------------*&============='&$*)---------------------------------)*&============='&*%)--------)%$&============================''''&&$%)------------------------.",
+"...................;+>@====================================================================>#..........;+>@=============='''$%----------------------------------------------%&============='&$%)----------------------------------*&============='&**)----------*&==================================&*%)-----------------------.",
+"...................;+>@@===================================================================>#..........;,@@@==============@&*%----------------------------------------------*&============='&*%)----------------------------------*&=============@&$*)----------%$''================================@&**)----------------------.",
+"...................;+>@====================================================================>#..........#,>@==============''@$%---------------------------------------------)*&============='$**)----------------------------------*&=============''$*%----------%*$&'==============================='''$*)---------------------.",
+"...................;,@@@===================================================================>#..........#,@@'=============''&$)---------------------------------------------)*&============='$*%)----------------------------------*&==============@&$)----------))%$'==================================&$))--------------------.",
+"...................#,>@================@=@='=@=@=@=@='=@='=@=@=@='=@='=@='=@='=@='=@=@=@=@'+#..........;,@@==============='&$%--------------------------------------------)-*'============='$*%)----------------------------------*&=============''&$%-----------)%*$&'''=============================='$$%)-------------------.",
+"...................;+>@@==============@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@+#..........#,>@@============='@&$)----------------------------------------------*&============='$*%-----------------------------------*&==============&&*)-------------%%*$$&''============================''&$%-------------------.",
+"...................;+>@==============@@@>>@>>@>@>>@>>@>@>>@>>@>@>@>@>@>@>@>@>@>@>@>>@>>@>@>,;..........;+>@==============='&$%----------------------------------------------*&============='$*%)----------------------------------%&============='&&*%--------------))%*$&'===============================$*-------------------.",
+"...................;,>@@=============@>+++,+,,,,+,+,+,,,+,+,+,,,,,+,,,+,,,+,,,+,,,+,,+,+,,+#;..........#,>@@============='@&$)----------------------------------------------*&============='&$*)----------------------------------*&=============@&$*)----------------)%*$$&&&'''''=======================&*-------------------.",
+"...................;,+>@=============@+###;;#;#;#;;#;#;#;;;#;#;##;;#;#;#;#;#;#;#;#;#;;#;#;;;!..........;,>@===============''$%----------------------------------------------*&============='@$*%---------------------------------)*&============='&$%)---------------)-))%%**$$&&'''======================&*)------------------.",
+"...................;#+>@=============>,;!!.............................................................;,>@@==============@'$%----------------------------------------------*&============='@&$)---------------------------------)*&============='&**)----------------------))%*$$''======================&$))-----------------.",
+"...................;#+>@=============@+#;!................................................!............;,+>@==============''&%----------------------------------------------%&'=============''$%-------------------------------))%$'============='$*%)-----------------------))%**$$&&'''================='$%))----------------.",
+"...................;#,>@=============@>,#;...............................................!!!...........;#+>@================&*)---------------------------------------------%$''==============&*-------------------------------)%*$'============='$*%-------------------------))))%%**$&''================&$%%-----------------.",
+"...................!#,>@=============@>+,;...............................................!!!!..........;#,>@================&$))--------------------------------------------%$&''=============&*-------------------------------)*$&'============='$%%)-------------------------------)%*&'================'$*%)----------------.",
+"...................!;#+@==============@>,#!...........................!.!!!!!!!!!!!!!!!!!;;!!..........!;#+@================'$*%)-------------------------------------------%*&''============='$%%----------------------------)%$&''=============&$))--------------------------------)%%$&''=============='&*%)----------------.",
+"...................!;;,>==============@=+,;!!.......................!.!!;!;!;!;!;!;!;!;;;;;!!..........!;;,>================''$*%-------------------------------------------)*$&'============='&$*)---------------------------)*$'===============&*)----------------------------------))*$&''============='$*%)----------------.",
+"....................!;,>================>,;;!.......................!!;;;#;;;#;;;#;;#;;;;;;;!...........!;,>=================@'$%---------------------------)---------------)%$&'============='@&$)--------------------------))$'================&*-------------------------------------)*$&'============='&$%)----------------.",
+"....................!!#>@===============@>,#;!.....................;;##,,+,+,,++,,+,,+++,#;!!...........!!#>=================''&*%)-----------------------)%*%)-------------)%%$'==============''$*%)-----------------------%**$'==============''&%--------------))))%))----------------)*$&'============='&*%)----------------.",
+".....................!#+@@=============='@>+#;!!..................!;,+>>>>@>@>>@>@>@>>>>+#;!!.............#+@@================='$$*)---------------------)%*$*)--------------))$&================'$*%)--------------------))%$&'==============='&$%--------------%%**$*)----------------)*$&'============='&$%)----------------.",
+"......................;+>@@================>,;;!.................!!#+@@=================>,;!..............;,>@@=================@&*%---------------------)*$'$%---------------)*&================'&&*)--------------------))$&================''$*)-------------)%$$&&$%)---------------%*$&'============='$**)----------------.",
+"......................;#+@@=============='=@>+##;;!!!!!.....!!;;;##+>'@================@+#!!..............;,+@@================='@&$%%)))-----------)))%**$''$%----------------%&''===============''$$%%))------------)))%*$$@================'&**)-------------%*&&&@&$*%%)))--------))%$&''============='$*%-----------------.",
+"......................;##+@================@@>>+,##;;!!!..!!;;##,+>>@================@@>,#................!##+@=================='''&$*%%))-------))%%*$$&''=&*----------------%$&''=============='''&&$*%%))------)))%%*$$&'================='$%)--------------*$'''=''&$*%%))-------)%$&'==============='$%%-----------------.",
+"......................!;;+>===================@@>+,##;;!!.!;;#,+>@===================@>+#;................!;;+>======================'$$*%))------)%**$&'====&%----------------)*$&'===================@$*%%))-----))%**$&'===================&*)-------------)-*&=======@$$*%))-----)%*$'================'*))-----------------.",
+"......................!!;#>@===================@@>++,,,,###,,++>@@===================>+,;;................!!;#>@@====================''$$$$***%****$$&&@=====&*----------------)%*&'==================='&&$$$*******$*$&&@'=================''$%--------------)%$'=======''$$$$*******$$''================&*))-----------------.",
+".......................!!#+>@@================'=@@@@@@>>>>>>@@@@@@================='=>,;;!.................!!;,+@@===================='''&'&&&&&&'&&''''=====&%-----------------))$&===================='''&'&&&&&&&&'''''=================''&*%-------------)%*$'========'''''&&&&&&&'''=================&*-------------------.",
+".........................;#+@@=====================================================@@>#!!....................;#,>@===========================================&*-----------------)-*&======================================================='&**)-------------)*$&'========================================&*-------------------.",
+".........................!#,+>====================================================@>>,;!.....................!;#,>@'=========================================&%-------------------%*&''==================================================='&$*))-------------%$&''=====================================''@$%-------------------.",
+".........................!!;,>@@==================================================@+,#;.......................!!#+@@@========================================&*-------------------)%*&'==================================================''&*))--------------%$'=======================================''$*%-------------------.",
+"............................;+@@================================================@=>,;!!.........................;,+@@========================================&%--------------------))*&==================================================@&*%---------------)*&========================================'&$%)-------------------.",
+"............................;#+>@@=============================================@@>,#!!..........................!##+>@=======================================&*---------------------)%$''==============================================''&$*)--------------))$&======================================''&$%))-------------------.",
+"............................;;#+>@@============================================@>,#;.!..........................!;;#+>@@=====================================&%----------------------)**&'============================================''$*%)--------------))%$'======================================'&$*))--------------------.",
+".............................!!#+@@===========================================@>,;;!...............................;#+>@=====================================&*----------------------))%$&===========================================''@$%----------------)%*$'====================================='&$%)----------------------.",
+".!............................!;,+>>@@=====================================@@>>+#;!................................!;#,>>@@'=================================&%-----------------------))**&'''=====================================''&$**)----------------))%*$&'''===============================''&$*%)----------------------.",
+".!!............................!;;,+>@@===================================@@>+,#;!!................................!;;##++>@@================================&*------------------------))**$&''===================================''&$*%))-----------------))%*$$&''=============================''&**))-----------------------.",
+".;!...............................;#+>@===================================@>+#!!......................................!;;,+@@'===============================&%---------------------------)%$@''=================================='&**)-----------------------)%*$@''============================'$$%)-------------------------.",
+".#;...............................!;,,+>@@@===========================@@>>++#;!!......................................!!;##,+>>@@@@@=@=@='===================&*---------------------------)%**&&'''==========================''''&$**))------------------------)%*$$&&'''''='============='''''&&$**))-------------------------.",
+".,;...............................!!;##,++>@@=======================@@@>+,#;;!!.........................................!!;###,,+>>>@@@@@@@@=================&%----------------------------))%**$&&''=======================''&$$**%))--------------------------))%%***$&&''''''========='''&$$**%%))--------------------------.",
+".+#...................................!!#,+@@=======================@@+,#;!.................................................!!;##,++>>>>>>@@@================&*-------------------------------))%*$&@'======================'&$*%------------------------------------))**$&&@'''=======''@'$$*%)-------------------------------.",
+".>#;!.................................!!;#,,+>>>>@@@@@@@@@@@@@@@@>>>++,#;;!..................................................!!;;###,,,++,,>@================&%--------------------------------)%**$$&&'&'''''''''''''''&&&&$$*%)-------------------------------------)%%***$$$$&&&&&&&&&$$**%))-------------------------------.",
+".>+#;!.................................!!!;;##,,++>>>>>>>>>>>>+++,,###;!!!...................................................!.!!;;;;;#;;#;+>================&*---------------------------------)))%%***$$$$&&&&&&&&&$$$$***%))))--------------------------------------))%%%%%%*%******%%%%%)))--------------------------------.",
+".@+,#;........................................!;##,++++++++++,,##;;!.......................................................................#>================&%----------------------------------------)%%***********$**%))----------------------------------------------------------------------------------------------------.",
+".@@+,;!!......................................!;;##############;;!!!.......................................................................#>================&*----------------------------------------)))%%**%**%**%%%)))----------------------------------------------------------------------------------------------------).",
+".=@@+,;!!......................................!!!;;;;;;;;;;;;!;!!!........................................................................#>================&%------------------------------------------))))))))))))))))----------------------------------------------------------------------------------------------------)).",
+".===@+#;!..................................................................................................................................#>================&*-------------------------------------------------------------------------------------------------------------------------------------------------------------)%%.",
+".===@>,,;!.................................................................................................................................#>================&%-------------------------------------------------------------------------------------------------------------------------------------------------------------%*$.",
+".==='@>+#;!!...............................................................................................................................#>================&*-----------------------------------------------------------------------------------------------------------------------------------------------------------)%*$'.",
+".======>,;;!...............................................................................................................................#>================&%----------------------------------------------------------------------------------------------------------------------------------------------------------)%%$'=.",
+".======@>,#;;!.............................................................................................................................#>================&*---------------------------------------------------------------------------------------------------------------------------------------------------------)%*$&'=.",
+".======@@@+,#;!............................................................................................................................#>================&%-------------------------------------------------------------------------------------------------------------------------------------------------------))%*$''==.",
+".=========@>,#!............................................................................................................................#>================&*-------------------------------------------------------------------------------------------------------------------------------------------------------)%*&'====.",
+".=========@>++##;!!........................................................................................................................#>================&%----------------------------------------------------------------------------------------------------------------------------------------------------))%*$$&'====.",
+".==========@@>>+,#;!!......................................................................................................................#>================&*--------------------------------------------------------------------------------------------------------------------------------------------------))%$$$&''=====.",
+".=============@@+,;;!......................................................................................................................#>================&%-------------------------------------------------------------------------------------------------------------------------------------------------))%*&''========.",
+".=============@@>>,,##;;;!!!!.!............................................................................................................#>================&*--------------------------------------------------------------------------------------------------------------------------------------------)))%%**$$''=========.",
+".===============@@>>+++,##;!;!!!...........................................................................................................#>================&%-----------------------------------------------------------------------------------------------------------------------------------------)))%%**$$&''''=========.",
+".====================@@++,#;;;!!!..........................................................................................................#>================&*---------------------------------------------------------------------------------------------------------------------------------------))))%*$$&@'==============.",
+".===================@=@@>>++,,,,###########################################################################################################+@================'$*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%******$$$&&'='==============.",
+".=====================@@@@@>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>@================''&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&'''''================.",
+".==============================================================================================================================================================================================================================================================================================================================.",
+".==============================================================================================================================================================================================================================================================================================================================.",
+".==============================================================================================================================================================================================================================================================================================================================.",
+".==============================================================================================================================================================================================================================================================================================================================.",
+".==============================================================================================================================================================================================================================================================================================================================.",
+".==============================================================================================================================================================================================================================================================================================================================.",
+".==============================================================================================================================================================================================================================================================================================================================.",
+".==============================================================================================================================================================================================================================================================================================================================.",
+".==============================================================================================================================================================================================================================================================================================================================.",
+".==============================================================================================================================================================================================================================================================================================================================.",
+".==============================================================================================================================================================================================================================================================================================================================.",
+".==============================================================================================================================================================================================================================================================================================================================.",
+".==============================================================================================================================================================================================================================================================================================================================.",
+".==============================================================================================================================================================================================================================================================================================================================.",
+".==============================================================================================================================================================================================================================================================================================================================.",
+".==============================================================================================================================================================================================================================================================================================================================.",
+".==============================================================================================================================================================================================================================================================================================================================.",
+".==============================================================================================================================================================================================================================================================================================================================.",
+".==============================================================================================================================================================================================================================================================================================================================.",
+".==============================================================================================================================================================================================================================================================================================================================.",
+".==============================================================================================================================================================================================================================================================================================================================.",
+".==============================================================================================================================================================================================================================================================================================================================.",
+".==============================================================================================================================================================================================================================================================================================================================.",
+".==============================================================================================================================================================================================================================================================================================================================.",
+".==============================================================================================================================================================================================================================================================================================================================.",
+".==============================================================================================================================================================================================================================================================================================================================.",
+".==============================================================================================================================================================================================================================================================================================================================.",
+".==============================================================================================================================================================================================================================================================================================================================.",
+".==============================================================================================================================================================================================================================================================================================================================.",
+".==============================================================================================================================================================================================================================================================================================================================.",
+".==============================================================================================================================================================================================================================================================================================================================.",
+".==============================================================================================================================================================================================================================================================================================================================.",
+".==============================================================================================================================================================================================================================================================================================================================.",
+".==============================================================================================================================================================================================================================================================================================================================.",
+".==============================================================================================================================================================================================================================================================================================================================.",
+".==============================================================================================================================================================================================================================================================================================================================.",
+".==============================================================================================================================================================================================================================================================================================================================.",
+".==============================================================================================================================================================================================================================================================================================================================.",
+".==============================================================================================================================================================================================================================================================================================================================.",
+".==============================================================================================================================================================================================================================================================================================================================.",
+".==============================================================================================================================================================================================================================================================================================================================.",
+".==============================================================================================================================================================================================================================================================================================================================.",
+".==============================================================================================================================================================================================================================================================================================================================.",
+".==============================================================================================================================================================================================================================================================================================================================.",
+".==============================================================================================================================================================================================================================================================================================================================.",
+".==============================================================================================================================================================================================================================================================================================================================.",
+".==============================================================================================================================================================================================================================================================================================================================.",
+".==============================================================================================================================================================================================================================================================================================================================.",
+".==============================================================================================================================================================================================================================================================================================================================.",
+".==============================================================================================================================================================================================================================================================================================================================.",
+".==============================================================================================================================================================================================================================================================================================================================.",
+".==============================================================================================================================================================================================================================================================================================================================.",
+".==============================================================================================================================================================================================================================================================================================================================.",
+".==============================================================================================================================================================================================================================================================================================================================.",
+".==============================================================================================================================================================================================================================================================================================================================.",
+".==============================================================================================================================================================================================================================================================================================================================.",
+".==============================================================================================================================================================================================================================================================================================================================.",
+".==============================================================================================================================================================================================================================================================================================================================.",
+".==============================================================================================================================================================================================================================================================================================================================.",
+".==============================================================================================================================================================================================================================================================================================================================.",
+".==============================================================================================================================================================================================================================================================================================================================.",
+".==============================================================================================================================================================================================================================================================================================================================.",
+".==============================================================================================================================================================================================================================================================================================================================.",
+".==============================================================================================================================================================================================================================================================================================================================.",
+".==============================================================================================================================================================================================================================================================================================================================.",
+".==============================================================================================================================================================================================================================================================================================================================.",
+".==============================================================================================================================================================================================================================================================================================================================."};
diff --git a/ecos/packages/hal/arm/sa11x0/assabet/current/misc/escw.xpm b/ecos/packages/hal/arm/sa11x0/assabet/current/misc/escw.xpm
new file mode 100644
index 0000000..3436500
--- /dev/null
+++ b/ecos/packages/hal/arm/sa11x0/assabet/current/misc/escw.xpm
@@ -0,0 +1,264 @@
+/* XPM */
+static char * escw_xpm[] = {
+"320 240 21 1",
+" c None",
+". c #28CAE0",
+"+ c #6F8695",
+"@ c #3FB3C7",
+"# c #579DAE",
+"$ c #FF0000",
+"% c #E61619",
+"& c #9E5A64",
+"* c #CE2D32",
+"= c #B7434A",
+"- c #87707C",
+"; c #FFFFFF",
+"> c #C7C7C7",
+", c #AAAAAA",
+"' c #727272",
+") c #555555",
+"! c #1D1D1D",
+"~ c #000000",
+"{ c #393939",
+"] c #8E8E8E",
+"^ c #E3E3E3",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"....................+++++++++++++++++++++++++@......................................................................#+++++++#........................#++++++++@................@++++++++#.......................................................................................................................................",
+"....................$$$$$$$$$$$$$$$$$$$$$$$$$$%&@...................................................................$$$$$$$$&........................*$$$$$$$$#................&$$$$$$$$&.......................................................................................................................................",
+"...................+$$$$$$$$$$$$$$$$$$$$$$$$$$$$$+.................................................................@$$$$$$$$+........................$$$$$$$$$.................=$$$$$$$$+.......................................................................................................................................",
+"...................&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$+................................................................+$$$$$$$$........................#$$$$$$$$*.................$$$$$$$$$@.......................................................................................................................................",
+"...................=$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$+...............................................................&$$$$$$$%........................-$$$$$$$$=................@$$$$$$$$$..........................................$$$$$$$$&.....................................................................................",
+"...................$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%...............................................................=$$$$$$$=........................=$$$$$$$$+................+$$$$$$$$=.........................................+$$$$$$$$+.....................................................................................",
+"..................@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$-..............................................................$$$$$$$$-........................%$$$$$$$$@................=$$$$$$$$&.........................................+$$$$$$$$@.....................................................................................",
+"..................+$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$=.............................................................#$$$$$$$$#........................$$$$$$$$$.................*$$$$$$$$+.........................................=$$$$$$$$......................................................................................",
+"..................=$$$$$$$$+............+&$$$$$$$$$$$.............................................................+$$$$$$$$........................+$$$$$$$$=.................$$$$$$$$$..........................................*$$$$$$$=......................................................................................",
+"..................*$$$$$$$$#..............@%$$$$$$$$$.............................................................=$$$$$$$*........................&$$$$$$$$&................#$$$$$$$$%..........................................$$$$$$$$-......................................................................................",
+"..................$$$$$$$$$................#$$$$$$$$$.............................................................*$$$$$$$=........................=$$$$$$$$+................-$$$$$$$$=.........................................#$$$$$$$$+......................................................................................",
+".................#$$$$$$$$=.................*$$$$$$$%...............#++==-+#.........................@++==++......$$$$$$$$+........................$$$$$$$$$.................=$$$$$$$$-..............@++-===-++.................+$$$$$$$$.......................................................................................",
+".................-$$$$$$$$&.................=$$$$$$$=............+=$$$$$$$$$$=#....................-*$$$$$$$$&@..+$$$$$$$$@.......................@$$$$$$$$%.................%$$$$$$$$#...........+=$$$$$$$$$$$$*-..........#+++*$$$$$$$$++++@..................................................................................",
+".................=$$$$$$$$+.................*$$$$$$$-.........@&$$$$$$$$$$$$$$$=@................-%$$$$$$$$$$$%@.-$$$$$$$$........................+$$$$$$$$=.................$$$$$$$$$..........-%$$$$$$$$$$$$$$$$%+........$$$$$$$$$$$$$$$$$+..................................................................................",
+".................%$$$$$$$$@................@$$$$$$$$@........+%$$$$$$$$$$$$$$$$$%@.............@*$$$$$$$$$$$$$$%@=$$$$$$$=........................=$$$$$$$$-................+$$$$$$$$*........@*$$$$$$$$$$$$$$$$$$$$+......#$$$$$$$$$$$$$$$$$@..................................................................................",
+".................$$$$$$$$$.................&$$$$$$$=........=$$$$$$$$$$$$$$$$$$$$%@...........#%$$$$$$$$$$$$$$$$&%$$$$$$$&........................*$$$$$$$$#................&$$$$$$$$=.......@%$$$$$$$$$$$$$$$$$$$$$$@.....+$$$$$$$$$$$$$$$$$...................................................................................",
+"................+$$$$$$$$=................#$$$$$$$$#.......=$$$$$$$$$$$$$$$$$$$$$$*..........+$$$$$$$$$$$$$$$$$$$$$$$$$$$+........................$$$$$$$$$.................=$$$$$$$$+.......%$$$$$$$$$$$$$$$$$$$$$$$&.....=$$$$$$$$$$$$$$$$=...................................................................................",
+"................-$$$$$$$$&...............@%$$$$$$$&.......-$$$$$$$$$$$$$$$$$$$$$$$$+........@$$$$$$$$$$$$$$$$$$$$$$$$$$$$@.......................#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@......&$$$$$$$$$$$$$$$$$$$$$$$$%.....*$$$$$$$$$$$$$$$$-...................................................................................",
+"................=$$$$$$$$+..............-%$$$$$$$*.......#$$$$$$$$$%&+@@+=$$$$$$$$$*........%$$$$$$$$$%-#.+&$$$$$$$$$$$$%........................-$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$......@$$$$$$$$$*++..#+*$$$$$$$$$.....++++$$$$$$$$*++++@...................................................................................",
+"................$$$$$$$$$-++++++++++++=%$$$$$$$$%@.......%$$$$$$$$&.......+$$$$$$$$$#......&$$$$$$$$$&......@%$$$$$$$$$$=........................=$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$=......&$$$$$$$$+........%$$$$$$$$........#$$$$$$$$+........................................................................................",
+"...............@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$=@.......&$$$$$$$$+.........&$$$$$$$$-.....@$$$$$$$$$+........+$$$$$$$$$$-........................%$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&......%$$$$$$$+.........=$$$$$$$*........+$$$$$$$$@........................................................................................",
+"...............+$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$-........@$$$$$$$$=..........@$$$$$$$$=.....*$$$$$$$$-..........*$$$$$$$$$+........................$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$+.....#$$$$$$$*..........*$$$$$$$=........=$$$$$$$$.........................................................................................",
+"...............&$$$$$$$$$$$$$$$$$$$$$$$$$$$$&@.........&$$$$$$$%............%$$$$$$$=....#$$$$$$$$*...........&$$$$$$$$$........................+$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$......#=======+.........@$$$$$$$$+........%$$$$$$$=.........................................................................................",
+"...............*$$$$$$$$$$$$$$$$$$$$$$$$$$$&@..........%$$$$$$$&............=$$$$$$$=....&$$$$$$$$@...........+$$$$$$$$*........................-$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%.......................@%$$$$$$$$#........$$$$$$$$&.........................................................................................",
+"...............$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&........+$$$$$$$$@............=$$$$$$$=....$$$$$$$$=............+$$$$$$$$=........................=$$$$$$$$&++++++++++++++++&$$$$$$$$=....................++=$$$$$$$$$$........+$$$$$$$$+.........................................................................................",
+"..............#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$=.......=$$$$$$$$$$$$$$$$$$$$$$$$$$$$$=...+$$$$$$$$#............+$$$$$$$$+........................$$$$$$$$$.................=$$$$$$$$-.............@+-=*$$$$$$$$$$$$$$*........-$$$$$$$$@.........................................................................................",
+"..............+$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$+......$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$=...=$$$$$$$%.............+$$$$$$$$#.......................@$$$$$$$$*.................%$$$$$$$$#..........#=%$$$$$$$$$$$$$$$$$$$=........=$$$$$$$%..........................................................................................",
+"..............=$$$$$$$$+............+*$$$$$$$$$=.....+$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$+...$$$$$$$$&.............+$$$$$$$$........................+$$$$$$$$=.................$$$$$$$$$.........+%$$$$$$$$$$$$$$$$$$$$$$+........%$$$$$$$=..........................................................................................",
+"..............%$$$$$$$$@..............=$$$$$$$$=.....-$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#..#$$$$$$$$+.............=$$$$$$$=........................&$$$$$$$$+................+$$$$$$$$*.......@=$$$$$$$$$$$$$$$$$$$$$$$$@........$$$$$$$$-..........................................................................................",
+"..............$$$$$$$$$...............@$$$$$$$$=.....=$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$...+$$$$$$$$#.............*$$$$$$$&........................*$$$$$$$$#................-$$$$$$$$=......@%$$$$$$$$$$$$$$*&&$$$$$$$$........+$$$$$$$$+..........................................................................................",
+".............+$$$$$$$$=................$$$$$$$$&.....*$$$$$$$$=====================&...-$$$$$$$$.............@$$$$$$$$+........................$$$$$$$$$.................=$$$$$$$$+......%$$$$$$$$$%=-+@...&$$$$$$$=........-$$$$$$$$...........................................................................................",
+".............-$$$$$$$$&...............#$$$$$$$$+.....$$$$$$$$%.........................=$$$$$$$$.............-$$$$$$$$@.......................#$$$$$$$$*.................%$$$$$$$$@.....=$$$$$$$$*#........*$$$$$$$&........=$$$$$$$*...........................................................................................",
+".............=$$$$$$$$+...............-$$$$$$$$+.....$$$$$$$$=.........................=$$$$$$$$.............*$$$$$$$%........................+$$$$$$$$&................@$$$$$$$$$.....#$$$$$$$$=.........@$$$$$$$$+........%$$$$$$$=...........................................................................................",
+".............$$$$$$$$$................=$$$$$$$$......$$$$$$$$=.........................=$$$$$$$$............#$$$$$$$$=........................=$$$$$$$$+................+$$$$$$$$=.....*$$$$$$$*..........-$$$$$$$$@........$$$$$$$$+...........................................................................................",
+"............@$$$$$$$$%................$$$$$$$$$......$$$$$$$$=.........................=$$$$$$$$+...........%$$$$$$$$-........................%$$$$$$$$@................&$$$$$$$$&....@$$$$$$$$#..........%$$$$$$$%........+$$$$$$$$#...........................................................................................",
+"............+$$$$$$$$=...............#$$$$$$$$=......%$$$$$$$$...........@========@....&$$$$$$$$&..........=$$$$$$$$$+........................$$$$$$$$$.................=$$$$$$$$+....+$$$$$$$$..........-$$$$$$$$=........&$$$$$$$$............................................................................................",
+"............&$$$$$$$$-...............&$$$$$$$$&......=$$$$$$$$-..........=$$$$$$$*.....+$$$$$$$$%@........+$$$$$$$$$$........................+$$$$$$$$=.................$$$$$$$$$.....=$$$$$$$$.........@$$$$$$$$$-........=$$$$$$$=............................................................................................",
+"............*$$$$$$$$+...............=$$$$$$$$+......+$$$$$$$$$+.......@=$$$$$$$$@.....#$$$$$$$$$=.......=$$$$$$$$$$*........................-$$$$$$$$&................@$$$$$$$$%.....=$$$$$$$$-.......#%$$$$$$$$$+........$$$$$$$$-............................................................................................",
+"............$$$$$$$$$................$$$$$$$$$#.......$$$$$$$$$$&#...#&$$$$$$$$$-.......%$$$$$$$$$*#..@-%$$$$$$$$$$$=........................=$$$$$$$$+................+$$$$$$$$=.....=$$$$$$$$$-@...+&$$$$$$$$$$$........@$$$$$$$$=............................................................................................",
+"...........#$$$$$$$$*...............@$$$$$$$$$........&$$$$$$$$$$$$$$$$$$$$$$$$=........&$$$$$$$$$$$$$$$$$$$$$$$$$$$+........................$$$$$$$$$.................=$$$$$$$$-.....-$$$$$$$$$$$$$$$$$$$$$$$$$$%........+$$$$$$$$$%==-........................................................................................",
+"...........+$$$$$$$$=...............+$$$$$$$$$.........%$$$$$$$$$$$$$$$$$$$$$$=.........@$$$$$$$$$$$$$$$$$$$$$$$$$$$#.......................@$$$$$$$$%.................*$$$$$$$$+.....#$$$$$$$$$$$$$$$$$$$$$$$$$$=........+$$$$$$$$$$$$&........................................................................................",
+"...........=$$$$$$$$+...............+$$$$$$$$$@........@$$$$$$$$$$$$$$$$$$$$$=...........-$$$$$$$$$$$$$$$$$=$$$$$$$$........................+$$$$$$$$=.................$$$$$$$$$.......*$$$$$$$$$$$$$$$$*%$$$$$$$*........+$$$$$$$$$$$$+........................................................................................",
+"...........%$$$$$$$$#...............+$$$$$$$$$=.........#%$$$$$$$$$$$$$$$$$$+.............=$$$$$$$$$$$$$$$+=$$$$$$$=........................&$$$$$$$$-................#$$$$$$$$*.......@$$$$$$$$$$$$$$$=.$$$$$$$$$+........$$$$$$$$$$$$@........................................................................................",
+"...........$$$$$$$$$................@$$$$$$$$$*..........@*$$$$$$$$$$$$$$$&@...............=$$$$$$$$$$$$%@.%$$$$$$$&........................*$$$$$$$$+................-$$$$$$$$=........+$$$$$$$$$$$$%+..%$$$$$$$$*........&$$$$$$$$$$$.........................................................................................",
+"..........@+++++++++.................+++++++++#............#*$$$$$$$$$$%&@..................+%$$$$$$$$%-...++++++++@........................+++++++++.................#++++++++@.........@*$$$$$$$$%&@...#++++++++#.........&$$$$$$$$$=.........................................................................................",
+".............................................................@+&====&+@.......................#-====-#.....................................................................................@+====&+..........................@+=====&+@.........................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+".................................................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;..............",
+".................................................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;..............",
+".................................................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;..............",
+".................................................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;>,')))!~~~)))',>;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;..............",
+".................................................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;>'{~~~~~~~~~~~~~~~~~~)]^;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;..............",
+".................................................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;^'!~~~~~~~~~~~~~~~~~~~~~~~~{,;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;..............",
+".................................................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;>{~~~~~~~~~~~~~~~~~~~~~~~~~~~~~!];;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;..............",
+".................................................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;>{~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~{^;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;..............",
+".................................................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;^{~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;..............",
+".................................................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~);;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;..............",
+".................................................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;^{~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~);;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;..............",
+".................................................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;,!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~);;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;..............",
+".................................................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;..............",
+".................................................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;'~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;..............",
+".................................................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;)~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~{;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;..............",
+".................................................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;)~~~~~~~~~~~~~~~~~~~~~~~~~)){~~~~~~~~~~~~~~~~~~~~~~~~>;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;..............",
+".................................................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;,~~~~~~~~~~~~~~~~~~~~{',;;;;;;;;>]!~~~~~~~~~~~~~~~~~~~);;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;..............",
+".................................................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;,~~~~~~~~~~~~~~~~~~~'^;;;;;;;;;;;;;;>{~~~~~~~~~~~~~~~~~~;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;..............",
+".................................................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;>~~~~~~~~~~~~~~~~~~'^;;;;;;;;;;;;;;;;;;'~~~~~~~~~~~~~~~~~,;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;..............",
+".................................................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;^!~~~~~~~~~~~~~~~~!>;;;;;;;;;;;;;;;;;;;;;,~~~~~~~~~~~~~~~~);;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;..............",
+".................................................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;)~~~~~~~~~~~~~~~~{^;;;;;;;;;;;;;;;;;;;;;;;'~~~~~~~~~~~~~~~{;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;..............",
+".................................................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;,~~~~~~~~~~~~~~~~);;;;;;;;;;;;;;;;;;;;;;;;;;!~~~~~~~~~~~~~~~;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;..............",
+".................................................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;,,,)))),,,;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;^!~~~~~~~~~~~~~~~);;;;;;;;;;;;;;;;;;;;;;;;;;;]~~~~~~~~~~~~~~~;;;;;;;;;;;;;;;;;;;;;;;;;;;;;,,,')))),,,;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;>,,]))))',,>;;;;;;;;;;;;;;;;;;;;;;;;..............",
+".................................................;;;;;;;;;;;;;;;;;;;;;;;;;;;^,)!~~~~~~~~~~~~!'>;;;;;;;;;;;;;;;;;;;;;;;;;;;'~~~~~~~~~~~~~~~!;;;;;;;;;;;;;;;;;;;;;;;;;;;;;~~~~~~~~~~~~~~~;;;;;;;;;;;;;;;;;;;;;;;;^])!~~~~~~~~~~~~~!',;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;^])!~~~~~~~~~~~~~~!),;;;;;;;;;;;;;;;;;;;;..............",
+".................................................;;;;;;;;;;;;;;;;;;;;;;;;;]{~~~~~~~~~~~~~~~~~~~!];;;;;;;;;;;;;;;;;;;;;;;;>~~~~~~~~~~~~~~~!^;;;;;;;;;;;;;;;;;;;;;;;;;;;;;{~~~~~~~~~~~~~~;;;;;;;;;;;;;;;;;;;;;^'!~~~~~~~~~~~~~~~~~~~~!'^;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;^]{~~~~~~~~~~~~~~~~~~~~~~'>;;;;;;;;;;;;;;;;;..............",
+".................................................;;;;;;;;;;;;;;;;;;;;;;^'~~~~~~~~~~~~~~~~~~~~~~~~!];;;;;;;;;;;;;;;;;;;;;;{~~~~~~~~~~~~~~~,;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;)~~~~~~~~~~~~~~;;;;;;;;;;;;;;;;;;;>{~~~~~~~~~~~~~~~~~~~~~~~~~~';;;;;;;;;;;;;;;;;;;;;;;;;;;;;^'~~~~~~~~~~~~~~~~~~~~~~~~~~~)^;;;;;;;;;;;;;;;..............",
+".................................................;;;;;;;;;;;;;;;;;;;;;'~~~~~~~~~~~~~~~~~~~~~~~~~~~~)^;;;;;;;;;;;;;;;;;;;>~~~~~~~~~~~~~~~';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;'~~~~~~~~~~~~~~;;;;;;;;;;;;;;;;;^{~~~~~~~~~~~~~~~~~~~~~~~~~~~~~!>;;;;;;;;;;;;;;;;;;;;;;;;;;]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,;;;;;;;;;;;;;;..............",
+".................................................;;;;;;;;;;;;;;;;;;;>!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~!^;;;;;;;;;;;;;;;;;;{~~~~~~~~~~~~~~!;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;,~~~~~~~~~~~~~!;;;;;;;;;;;;;;;;'~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,;;;;;;;;;;;;;;;;;;;;;;;^{~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,;;;;;;;;;;;;;..............",
+".................................................;;;;;;;;;;;;;;;;;;]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~!^;;;;;;;;;;;;;;;;>~~~~~~~~~~~~~~~];;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;,~~~~~~~~~~~~~);;;;;;;;;;;;;;^{~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,;;;;;;;;;;;;;;;;;;;;;^!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,;;;;;;;;;;;;..............",
+".................................................;;;;;;;;;;;;;;;;;)~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~{;;;;;;;;;;;;;;;;)~~~~~~~~~~~~~~{;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;,!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,;;;;;;;;;;;;;;;;;;;^!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~>;;;;;;;;;;;..............",
+".................................................;;;;;;;;;;;;;;;;)~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~';;;;;;;;;;;;;;^~~~~~~~~~~~~~~~>;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^;;;;;;;;;;;;;;;;;^!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~{;;;;;;;;;;;..............",
+".................................................;;;;;;;;;;;;;;;)~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~>;;;;;;;;;;;;;]~~~~~~~~~~~~~~{;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~{;;;;;;;;;;;;;;;;;!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~>;;;;;;;;;;..............",
+".................................................;;;;;;;;;;;;;;]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~{;;;;;;;;;;;;;!~~~~~~~~~~~~~~,;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~];;;;;;;;;;;;;;;'~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~);;;;;;;;;;..............",
+".................................................;;;;;;;;;;;;;>~~~~~~~~~~~~~~~~~~~!))!~~~~~~~~~~~~~~~~~~~>;;;;;;;;;;;>~~~~~~~~~~~~~~!;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;^~~~~~~~~~~~~~~~~~~~~!))!~~~~~~~~~~~~~~~~~~~~!;;;;;;;;;;;;;;>~~~~~~~~~~~~~~~~~~~))){~~~~~~~~~~~~~~~~~~~~;;;;;;;;;;..............",
+".................................................;;;;;;;;;;;;^!~~~~~~~~~~~~~~~!'>;;;;;;,{~~~~~~~~~~~~~~~~);;;;;;;;;;;'~~~~~~~~~~~~~~];;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;^!~~~~~~~~~~~~~~~~~),;;;;;;,)~~~~~~~~~~~~~~~~~~,;;;;;;;;;;;;;{~~~~~~~~~~~~~~~',;;;;;;;;,)~~~~~~~~~~~~~~~~^;;;;;;;;;..............",
+".................................................;;;;;;;;;;;;'~~~~~~~~~~~~~~~];;;;;;;;;;;>!~~~~~~~~~~~~~~~;;;;;;;;;;;!~~~~~~~~~~~~~~^;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;)~~~~~~~~~~~~~~~~)^;;;;;;;;;;>!~~~~~~~~~~~~~~~~);;;;;;;;;;;;>~~~~~~~~~~~~~~)^;;;;;;;;;;;;^!~~~~~~~~~~~~~~,;;;;;;;;;..............",
+".................................................;;;;;;;;;;;>~~~~~~~~~~~~~~!^;;;;;;;;;;;;;^!~~~~~~~~~~~~~~,;;;;;;;;;>~~~~~~~~~~~~~~{;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;,~~~~~~~~~~~~~~~~,;;;;;;;;;;;;;^!~~~~~~~~~~~~~~~~;;;;;;;;;;;;{~~~~~~~~~~~~~{;;;;;;;;;;;;;;;^!~~~~~~~~~~~~~,;;;;;;;;;..............",
+".................................................;;;;;;;;;;;{~~~~~~~~~~~~~!^;;;;;;;;;;;;;;;]~~~~~~~~~~~~~~);;;;;;;;;]~~~~~~~~~~~~~~];;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;!~~~~~~~~~~~~~~!>;;;;;;;;;;;;;;;^~~~~~~~~~~~~~~~~>;;;;;;;;;;^~~~~~~~~~~~~~~>;;;;;;;;;;;;;;;;'~~~~~~~~~~~~~,;;;;;;;;;..............",
+".................................................;;;;;;;;;;]~~~~~~~~~~~~~!^;;;;;;;;;;;;;;;;;!~~~~~~~~~~~~~!;;;;;;;;;)~~~~~~~~~~~~~~^;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;'~~~~~~~~~~~~~~~^;;;;;;;;;;;;;;;;;]~~~~~~~~~~~~~~~,;;;;;;;;;;,~~~~~~~~~~~~~~;;;;;;;;;;;;;;;;;,~~~~~~~~~~~~~,;;;;;;;;;..............",
+".................................................;;;;;;;;;;!~~~~~~~~~~~~~>;;;;;;;;;;;;;;;;;;'~~~~~~~~~~~~~~;;;;;;;;;~~~~~~~~~~~~~~!;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;^~~~~~~~~~~~~~~~,;;;;;;;;;;;;;;;;;;;~~~~~~~~~~~~~~~';;;;;;;;;;)~~~~~~~~~~~~~~;;;;;;;;;;;;;;;;;,~~~~~~~~~~~~~;;;;;;;;;;..............",
+".................................................;;;;;;;;;]~~~~~~~~~~~~~);;;;;;;;;;;;;;;;;;;,~~~~~~~~~~~~~~;;;;;;;;>~~~~~~~~~~~~~~);;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;'~~~~~~~~~~~~~~';;;;;;;;;;;;;;;;;;;;)~~~~~~~~~~~~~~);;;;;;;;;;{~~~~~~~~~~~~~~];;;;;;;;;;;;;;;;])))))))))))));;;;;;;;;;..............",
+".................................................;;;;;;;;;{~~~~~~~~~~~~~>;;;;;;;;;;;;;;;;;;;>~~~~~~~~~~~~~~,;;;;;;;,~~~~~~~~~~~~~~,;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;^~~~~~~~~~~~~~~!;;;;;;;;;;;;;;;;;;;;;,~~~~~~~~~~~~~~);;;;;;;;;;~~~~~~~~~~~~~~~~'^;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;..............",
+".................................................;;;;;;;;>~~~~~~~~~~~~~{;;;;;;;;;;;;;;;;;;;;;~~~~~~~~~~~~~~,;;;;;;;)~~~~~~~~~~~~~~>;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;]~~~~~~~~~~~~~~>;;;;;;;;;;;;;;;;;;;;;>~~~~~~~~~~~~~~);;;;;;;;;;~~~~~~~~~~~~~~~~~~'>;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;..............",
+".................................................;;;;;;;;)~~~~~~~~~~~~~];;;;;;;;;;;;;;;;;;;;;~~~~~~~~~~~~~~>;;;;;;;{~~~~~~~~~~~~~~;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;!~~~~~~~~~~~~~{;;;;;;;;;;;;;;;;;;;;;;;~~~~~~~~~~~~~~);;;;;;;;;;~~~~~~~~~~~~~~~~~~~~!),;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;..............",
+".................................................;;;;;;;;~~~~~~~~~~~~~~^;;;;;;;;;;;;;;;;;;;;;~~~~~~~~~~~~~~;;;;;;;;~~~~~~~~~~~~~~{;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;>~~~~~~~~~~~~~~>;;;;;;;;;;;;;;;;;;;;;;;~~~~~~~~~~~~~~);;;;;;;;;;!~~~~~~~~~~~~~~~~~~~~~~~{]^;;;;;;;;;;;;;;;;;;;;;;;;;;;;;..............",
+".................................................;;;;;;;,~~~~~~~~~~~~~~))))))))))))))))))))))~~~~~~~~~~~~~~;;;;;;;;~~~~~~~~~~~~~~);;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;'~~~~~~~~~~~~~{;;;;;;;;;;;;;;;;;;;;;;;;~~~~~~~~~~~~~~);;;;;;;;;;)~~~~~~~~~~~~~~~~~~~~~~~~~~!',;;;;;;;;;;;;;;;;;;;;;;;;;;..............",
+".................................................;;;;;;;)~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~;;;;;;;,~~~~~~~~~~~~~~);;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;!~~~~~~~~~~~~~];;;;;;;;;;;;;;;;;;;;;;;;~~~~~~~~~~~~~~,;;;;;;;;;;>~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~),;;;;;;;;;;;;;;;;;;;;;;;..............",
+".................................................;;;;;;;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~!;;;;;;;,~~~~~~~~~~~~~~];;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;>~~~~~~~~~~~~~~^;;;;;;;;;;;;;;;;;;;;;;;;~~~~~~~~~~~~~~,;;;;;;;;;;;{~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~'>;;;;;;;;;;;;;;;;;;;;..............",
+".................................................;;;;;;>~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~);;;;;;;,~~~~~~~~~~~~~~,;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;]~~~~~~~~~~~~~{;;;;;;;;;;;;;;;;;;;;;;;;>~~~~~~~~~~~~~~>;;;;;;;;;;;>~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~{^;;;;;;;;;;;;;;;;;;..............",
+".................................................;;;;;;]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~';;;;;;;'~~~~~~~~~~~~~~,;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;)~~~~~~~~~~~~~';;;;;;;;;;;;;;;;;;;;;;;;,~~~~~~~~~~~~~~;;;;;;;;;;;;;,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~];;;;;;;;;;;;;;;;;..............",
+".................................................;;;;;;)~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,;;;;;;;)~~~~~~~~~~~~~~,;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;~~~~~~~~~~~~~~,;;;;;;;;;;;;;;;;;;;;;;;;,~~~~~~~~~~~~~!;;;;;;;;;;;;;;,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~);;;;;;;;;;;;;;;;..............",
+".................................................;;;;;;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^;;;;;;;)~~~~~~~~~~~~~~,;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;>~~~~~~~~~~~~~~^;;;;;;;;;;;;;;;;;;;;;;;;)~~~~~~~~~~~~~);;;;;;;;;;;;;;;^!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~);;;;;;;;;;;;;;;..............",
+".................................................;;;;;;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~;;;;;;;;)~~~~~~~~~~~~~~,;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;>))))))))))))));;;;;;,~~~~~~~~~~~~~~;;;;;;;;;;;;;;;;;;;;;;;;;!~~~~~~~~~~~~~,;;;;;;;;;;;;;;;;;]!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~';;;;;;;;;;;;;;..............",
+".................................................;;;;;,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~);;;;;;;;)~~~~~~~~~~~~~~,;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;{~~~~~~~~~~~~~);;;;;;'~~~~~~~~~~~~~!;;;;;;;;;;;;;;;;;;;;;;;;^~~~~~~~~~~~~~~^;;;;;;;;;;;;;;;;;;;]!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^;;;;;;;;;;;;;..............",
+".................................................;;;;;,~~~~~~~~~~~~~~)))))))))))))))))))))))))))))))))))),;;;;;;;;)~~~~~~~~~~~~~~);;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;^~~~~~~~~~~~~~~,;;;;;;)~~~~~~~~~~~~~);;;;;;;;;;;;;;;;;;;;;;;;,~~~~~~~~~~~~~!;;;;;;;;;;;;;;;;;;;;;;,)~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~';;;;;;;;;;;;;..............",
+".................................................;;;;;]~~~~~~~~~~~~~~;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;)~~~~~~~~~~~~~~);;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;'~~~~~~~~~~~~~~^;;;;;;)~~~~~~~~~~~~~);;;;;;;;;;;;;;;;;;;;;;;;{~~~~~~~~~~~~~';;;;;;;;;;;;;;;;;;;;;;;;;,)~~~~~~~~~~~~~~~~~~~~~~~~~~~~;;;;;;;;;;;;;..............",
+".................................................;;;;;)~~~~~~~~~~~~~~;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;)~~~~~~~~~~~~~~!;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;^~~~~~~~~~~~~~~);;;;;;;~~~~~~~~~~~~~~);;;;;;;;;;;;;;;;;;;;;;;^~~~~~~~~~~~~~~>;;;;;;;;;;;;;;;;;;;;;;;;;;;;,)~~~~~~~~~~~~~~~~~~~~~~~~~^;;;;;;;;;;;;..............",
+".................................................;;;;;)~~~~~~~~~~~~~~;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;]~~~~~~~~~~~~~~~^;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;'~~~~~~~~~~~~~~,;;;;;;;~~~~~~~~~~~~~~);;;;;;;;;;;;;;;;;;;;;;;'~~~~~~~~~~~~~!;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;>'!~~~~~~~~~~~~~~~~~~~~~,;;;;;;;;;;;;..............",
+".................................................;;;;;)~~~~~~~~~~~~~~;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;,~~~~~~~~~~~~~~~];;;;;;;;;;;;;;;;;;;;;;;;;;;;;>~~~~~~~~~~~~~~!;;;;;;;;~~~~~~~~~~~~~~);;;;;;;;;;;;;;;;;;;;;;^~~~~~~~~~~~~~~';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;>'!~~~~~~~~~~~~~~~~~~,;;;;;;;;;;;;..............",
+".................................................;;;;;)~~~~~~~~~~~~~~;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;>~~~~~~~~~~~~~~~!;;;;;;;;;;;;;;;;;;;;;;;;;;;;^!~~~~~~~~~~~~~~];;;;;;;;~~~~~~~~~~~~~~!;;;;;;;;;;;;;;;;;;;;;;'~~~~~~~~~~~~~~^;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;,{~~~~~~~~~~~~~~~~,;;;;;;;;;;;;..............",
+".................................................;;;;;)~~~~~~~~~~~~~~;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;~~~~~~~~~~~~~~~~];;;;;;;;;;;;;;;;;;;;;;;;;;;)~~~~~~~~~~~~~~!;;;;;;;;;~~~~~~~~~~~~~~~;;;;;;;;;;;;;;;;;;;;;^~~~~~~~~~~~~~~);;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;]~~~~~~~~~~~~~~~,;;;;;;;;;;;;..............",
+".................................................;;;;;)~~~~~~~~~~~~~~>;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;{~~~~~~~~~~~~~~~!^;;;;;;;;;;;;;;;;;;;;;;;;;)~~~~~~~~~~~~~~~];;;;;;;;;~~~~~~~~~~~~~~~,;;;;;;;;;;;;;;;;;;;;{~~~~~~~~~~~~~~>;;;;;;;^,,,,,,,,,,,,,>;;;;;;;;;;;;;;;;;;;;'~~~~~~~~~~~~~~^;;;;;;;;;;;;..............",
+".................................................;;;;;,~~~~~~~~~~~~~~];;;;;;;;;;;;;;;;;;;{~~~~~~~~~~~~~^;;;;;;;;;;;]~~~~~~~~~~~~~~~~);;;;;;;;;;;;;;;;;;;;;;;^{~~~~~~~~~~~~~~~!;;;;;;;;;;!~~~~~~~~~~~~~~);;;;;;;;;;;;;;;;;;;'~~~~~~~~~~~~~~{;;;;;;;;,~~~~~~~~~~~~~);;;;;;;;;;;;;;;;;;;;,~~~~~~~~~~~~~~;;;;;;;;;;;;;..............",
+".................................................;;;;;,~~~~~~~~~~~~~~!;;;;;;;;;;;;;;;;;;]~~~~~~~~~~~~~';;;;;;;;;;;;>~~~~~~~~~~~~~~~~~);;;;;;;;;;;;;;;;;;;;;>!~~~~~~~~~~~~~~~~,;;;;;;;;;;)~~~~~~~~~~~~~~~^;;;;;;;;;;;;;;;;;,~~~~~~~~~~~~~~~>;;;;;;;;)~~~~~~~~~~~~~!;;;;;;;;;;;;;;;;;;;;,~~~~~~~~~~~~~{;;;;;;;;;;;;;..............",
+".................................................;;;;;;~~~~~~~~~~~~~~~];;;;;;;;;;;;;;;;,~~~~~~~~~~~~~!^;;;;;;;;;;;;;{~~~~~~~~~~~~~~~~~{^;;;;;;;;;;;;;;;;;^)~~~~~~~~~~~~~~~~~);;;;;;;;;;;'~~~~~~~~~~~~~~~{;;;;;;;;;;;;;;;;,~~~~~~~~~~~~~~~';;;;;;;;;)~~~~~~~~~~~~~~>;;;;;;;;;;;;;;;;;;;{~~~~~~~~~~~~~];;;;;;;;;;;;;..............",
+".................................................;;;;;;{~~~~~~~~~~~~~~~>;;;;;;;;;;;;;;,~~~~~~~~~~~~~~];;;;;;;;;;;;;;]~~~~~~~~~~~~~~~~~~~'^;;;;;;;;;;;;;>)~~~~~~~~~~~~~~~~~~!^;;;;;;;;;;;,~~~~~~~~~~~~~~~~);;;;;;;;;;;;;;)~~~~~~~~~~~~~~~!^;;;;;;;;;)~~~~~~~~~~~~~~!^;;;;;;;;;;;;;;;;;'~~~~~~~~~~~~~~^;;;;;;;;;;;;;..............",
+".................................................;;;;;;]~~~~~~~~~~~~~~~~,;;;;;;;;;;;^{~~~~~~~~~~~~~~);;;;;;;;;;;;;;;;!~~~~~~~~~~~~~~~~~~~~{],^;;;;^,])~~~~~~~~~~~~~~~~~~~~~>;;;;;;;;;;;;;~~~~~~~~~~~~~~~~~)^;;;;;;;;;;>!~~~~~~~~~~~~~~~~,;;;;;;;;;;]~~~~~~~~~~~~~~~!>;;;;;;;;;;;;;;^)~~~~~~~~~~~~~~{;;;;;;;;;;;;;;..............",
+".................................................;;;;;;^~~~~~~~~~~~~~~~~~{,;;;;;;;,{~~~~~~~~~~~~~~~!^;;;;;;;;;;;;;;;;]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,;;;;;;;;;;;;;;)~~~~~~~~~~~~~~~~~!]^;;;;;;,{~~~~~~~~~~~~~~~~~';;;;;;;;;;;,~~~~~~~~~~~~~~~~~{]^;;;;;;;;^,)~~~~~~~~~~~~~~~~>;;;;;;;;;;;;;;..............",
+".................................................;;;;;;;'~~~~~~~~~~~~~~~~~~~{)))!~~~~~~~~~~~~~~~~~~,;;;;;;;;;;;;;;;;;;{~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~];;;;;;;;;;;;;;;>~~~~~~~~~~~~~~~~~~~~!)))!~~~~~~~~~~~~~~~~~~~{;;;;;;;;;;;;;~~~~~~~~~~~~~~~~~~~~~{)))){~~~~~~~~~~~~~~~~~~~{;;;;;;;;;;;;;;;..............",
+".................................................;;;;;;;^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,;;;;;;;;;;;;;;;;;;;^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~);;;;;;;;;;;;;;;;;{~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~!^;;;;;;;;;;;;;'~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^;;;;;;;;;;;;;;;..............",
+".................................................;;;;;;;;'~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,;;;;;;;;;;;;;;;;;;;;;,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~];;;;;;;;;;;;;;;;;;^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~!^;;;;;;;;;;;;;;^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,;;;;;;;;;;;;;;;;..............",
+".................................................;;;;;;;;;!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,;;;;;;;;;;;;;;;;;;;;;;;'~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,;;;;;;;;;;;;;;;;;;;;]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~!^;;;;;;;;;;;;;;;;'~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,;;;;;;;;;;;;;;;;;..............",
+".................................................;;;;;;;;;^!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,;;;;;;;;;;;;;;;;;;;;;;;;;)~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~!^;;;;;;;;;;;;;;;;;;;;;;)~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~)^;;;;;;;;;;;;;;;;;;{~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,;;;;;;;;;;;;;;;;;;..............",
+".................................................;;;;;;;;;;^!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~!>;;;;;;;;;;;;;;;;;;;;;;;;;;;,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~';;;;;;;;;;;;;;;;;;;;;;;;;)~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~';;;;;;;;;;;;;;;;;;;;^!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,;;;;;;;;;;;;;;;;;;;..............",
+".................................................;;;;;;;;;;;^!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~)^;;;;;;;;;;;;;;;;;;;;;;;;;;;;;>!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~{>;;;;;;;;;;;;;;;;;;;;;;;;;;;)~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~!>;;;;;;;;;;;;;;;;;;;;;;^!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~{^;;;;;;;;;;;;;;;;;;;;..............",
+".................................................;;;;;;;;;;;;^{~~~~~~~~~~~~~~~~~~~~~~~~~~~!,;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;^'~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~!];;;;;;;;;;;;;;;;;;;;;;;;;;;;;;]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~';;;;;;;;;;;;;;;;;;;;;;;;;;)~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~!];;;;;;;;;;;;;;;;;;;;;;..............",
+".................................................;;;;;;;;;;;;;;]!~~~~~~~~~~~~~~~~~~~~~~~!];;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;^)~~~~~~~~~~~~~~~~~~~~~~~~~~~~~{,;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;^{~~~~~~~~~~~~~~~~~~~~~~~~~~'^;;;;;;;;;;;;;;;;;;;;;;;;;;;;>{~~~~~~~~~~~~~~~~~~~~~~~~~~~~!]^;;;;;;;;;;;;;;;;;;;;;;;..............",
+".................................................;;;;;;;;;;;;;;;^'!~~~~~~~~~~~~~~~~~~~{,;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;^'!~~~~~~~~~~~~~~~~~~~~~~~{'^;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;>)~~~~~~~~~~~~~~~~~~~~~{];;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;>{~~~~~~~~~~~~~~~~~~~~~~~~),;;;;;;;;;;;;;;;;;;;;;;;;;;..............",
+".................................................;;;;;;;;;;;;;;;;;;,)~~~~~~~~~~~~~!),^;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;>])~~~~~~~~~~~~~~~~{),^;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;^,)~~~~~~~~~~~~~~~)]^;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;^])~~~~~~~~~~~~~~~~~{',;;;;;;;;;;;;;;;;;;;;;;;;;;;;;..............",
+".................................................;;;;;;;;;;;;;;;;;;;;;^,,)))))',,;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;^,,]))))))',,>;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;^,,')))))],,;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;,,])))))))],,^;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;..............",
+".................................................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;..............",
+".................................................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;..............",
+".................................................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;..............",
+".................................................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;..............",
+".................................................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;..............",
+".................................................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;..............",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"....................+++++++++++++++++++++++++@......................................................................#+++++++#........................#++++++++@................@++++++++#.......................................................................................................................................",
+"....................$$$$$$$$$$$$$$$$$$$$$$$$$$%&@...................................................................$$$$$$$$&........................*$$$$$$$$#................&$$$$$$$$&.......................................................................................................................................",
+"...................+$$$$$$$$$$$$$$$$$$$$$$$$$$$$$+.................................................................@$$$$$$$$+........................$$$$$$$$$.................=$$$$$$$$+.......................................................................................................................................",
+"...................&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$+................................................................+$$$$$$$$........................#$$$$$$$$*.................$$$$$$$$$@.......................................................................................................................................",
+"...................=$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$+...............................................................&$$$$$$$%........................-$$$$$$$$=................@$$$$$$$$$..........................................$$$$$$$$&.....................................................................................",
+"...................$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%...............................................................=$$$$$$$=........................=$$$$$$$$+................+$$$$$$$$=.........................................+$$$$$$$$+.....................................................................................",
+"..................@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$-..............................................................$$$$$$$$-........................%$$$$$$$$@................=$$$$$$$$&.........................................+$$$$$$$$@.....................................................................................",
+"..................+$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$=.............................................................#$$$$$$$$#........................$$$$$$$$$.................*$$$$$$$$+.........................................=$$$$$$$$......................................................................................",
+"..................=$$$$$$$$+............+&$$$$$$$$$$$.............................................................+$$$$$$$$........................+$$$$$$$$=.................$$$$$$$$$..........................................*$$$$$$$=......................................................................................",
+"..................*$$$$$$$$#..............@%$$$$$$$$$.............................................................=$$$$$$$*........................&$$$$$$$$&................#$$$$$$$$%..........................................$$$$$$$$-......................................................................................",
+"..................$$$$$$$$$................#$$$$$$$$$.............................................................*$$$$$$$=........................=$$$$$$$$+................-$$$$$$$$=.........................................#$$$$$$$$+......................................................................................",
+".................#$$$$$$$$=.................*$$$$$$$%...............#++==-+#.........................@++==++......$$$$$$$$+........................$$$$$$$$$.................=$$$$$$$$-..............@++-===-++.................+$$$$$$$$.......................................................................................",
+".................-$$$$$$$$&.................=$$$$$$$=............+=$$$$$$$$$$=#....................-*$$$$$$$$&@..+$$$$$$$$@.......................@$$$$$$$$%.................%$$$$$$$$#...........+=$$$$$$$$$$$$*-..........#+++*$$$$$$$$++++@..................................................................................",
+".................=$$$$$$$$+.................*$$$$$$$-.........@&$$$$$$$$$$$$$$$=@................-%$$$$$$$$$$$%@.-$$$$$$$$........................+$$$$$$$$=.................$$$$$$$$$..........-%$$$$$$$$$$$$$$$$%+........$$$$$$$$$$$$$$$$$+..................................................................................",
+".................%$$$$$$$$@................@$$$$$$$$@........+%$$$$$$$$$$$$$$$$$%@.............@*$$$$$$$$$$$$$$%@=$$$$$$$=........................=$$$$$$$$-................+$$$$$$$$*........@*$$$$$$$$$$$$$$$$$$$$+......#$$$$$$$$$$$$$$$$$@..................................................................................",
+".................$$$$$$$$$.................&$$$$$$$=........=$$$$$$$$$$$$$$$$$$$$%@...........#%$$$$$$$$$$$$$$$$&%$$$$$$$&........................*$$$$$$$$#................&$$$$$$$$=.......@%$$$$$$$$$$$$$$$$$$$$$$@.....+$$$$$$$$$$$$$$$$$...................................................................................",
+"................+$$$$$$$$=................#$$$$$$$$#.......=$$$$$$$$$$$$$$$$$$$$$$*..........+$$$$$$$$$$$$$$$$$$$$$$$$$$$+........................$$$$$$$$$.................=$$$$$$$$+.......%$$$$$$$$$$$$$$$$$$$$$$$&.....=$$$$$$$$$$$$$$$$=...................................................................................",
+"................-$$$$$$$$&...............@%$$$$$$$&.......-$$$$$$$$$$$$$$$$$$$$$$$$+........@$$$$$$$$$$$$$$$$$$$$$$$$$$$$@.......................#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@......&$$$$$$$$$$$$$$$$$$$$$$$$%.....*$$$$$$$$$$$$$$$$-...................................................................................",
+"................=$$$$$$$$+..............-%$$$$$$$*.......#$$$$$$$$$%&+@@+=$$$$$$$$$*........%$$$$$$$$$%-#.+&$$$$$$$$$$$$%........................-$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$......@$$$$$$$$$*++..#+*$$$$$$$$$.....++++$$$$$$$$*++++@...................................................................................",
+"................$$$$$$$$$-++++++++++++=%$$$$$$$$%@.......%$$$$$$$$&.......+$$$$$$$$$#......&$$$$$$$$$&......@%$$$$$$$$$$=........................=$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$=......&$$$$$$$$+........%$$$$$$$$........#$$$$$$$$+........................................................................................",
+"...............@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$=@.......&$$$$$$$$+.........&$$$$$$$$-.....@$$$$$$$$$+........+$$$$$$$$$$-........................%$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&......%$$$$$$$+.........=$$$$$$$*........+$$$$$$$$@........................................................................................",
+"...............+$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$-........@$$$$$$$$=..........@$$$$$$$$=.....*$$$$$$$$-..........*$$$$$$$$$+........................$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$+.....#$$$$$$$*..........*$$$$$$$=........=$$$$$$$$.........................................................................................",
+"...............&$$$$$$$$$$$$$$$$$$$$$$$$$$$$&@.........&$$$$$$$%............%$$$$$$$=....#$$$$$$$$*...........&$$$$$$$$$........................+$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$......#=======+.........@$$$$$$$$+........%$$$$$$$=.........................................................................................",
+"...............*$$$$$$$$$$$$$$$$$$$$$$$$$$$&@..........%$$$$$$$&............=$$$$$$$=....&$$$$$$$$@...........+$$$$$$$$*........................-$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%.......................@%$$$$$$$$#........$$$$$$$$&.........................................................................................",
+"...............$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&........+$$$$$$$$@............=$$$$$$$=....$$$$$$$$=............+$$$$$$$$=........................=$$$$$$$$&++++++++++++++++&$$$$$$$$=....................++=$$$$$$$$$$........+$$$$$$$$+.........................................................................................",
+"..............#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$=.......=$$$$$$$$$$$$$$$$$$$$$$$$$$$$$=...+$$$$$$$$#............+$$$$$$$$+........................$$$$$$$$$.................=$$$$$$$$-.............@+-=*$$$$$$$$$$$$$$*........-$$$$$$$$@.........................................................................................",
+"..............+$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$+......$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$=...=$$$$$$$%.............+$$$$$$$$#.......................@$$$$$$$$*.................%$$$$$$$$#..........#=%$$$$$$$$$$$$$$$$$$$=........=$$$$$$$%..........................................................................................",
+"..............=$$$$$$$$+............+*$$$$$$$$$=.....+$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$+...$$$$$$$$&.............+$$$$$$$$........................+$$$$$$$$=.................$$$$$$$$$.........+%$$$$$$$$$$$$$$$$$$$$$$+........%$$$$$$$=..........................................................................................",
+"..............%$$$$$$$$@..............=$$$$$$$$=.....-$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#..#$$$$$$$$+.............=$$$$$$$=........................&$$$$$$$$+................+$$$$$$$$*.......@=$$$$$$$$$$$$$$$$$$$$$$$$@........$$$$$$$$-..........................................................................................",
+"..............$$$$$$$$$...............@$$$$$$$$=.....=$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$...+$$$$$$$$#.............*$$$$$$$&........................*$$$$$$$$#................-$$$$$$$$=......@%$$$$$$$$$$$$$$*&&$$$$$$$$........+$$$$$$$$+..........................................................................................",
+".............+$$$$$$$$=................$$$$$$$$&.....*$$$$$$$$=====================&...-$$$$$$$$.............@$$$$$$$$+........................$$$$$$$$$.................=$$$$$$$$+......%$$$$$$$$$%=-+@...&$$$$$$$=........-$$$$$$$$...........................................................................................",
+".............-$$$$$$$$&...............#$$$$$$$$+.....$$$$$$$$%.........................=$$$$$$$$.............-$$$$$$$$@.......................#$$$$$$$$*.................%$$$$$$$$@.....=$$$$$$$$*#........*$$$$$$$&........=$$$$$$$*...........................................................................................",
+".............=$$$$$$$$+...............-$$$$$$$$+.....$$$$$$$$=.........................=$$$$$$$$.............*$$$$$$$%........................+$$$$$$$$&................@$$$$$$$$$.....#$$$$$$$$=.........@$$$$$$$$+........%$$$$$$$=...........................................................................................",
+".............$$$$$$$$$................=$$$$$$$$......$$$$$$$$=.........................=$$$$$$$$............#$$$$$$$$=........................=$$$$$$$$+................+$$$$$$$$=.....*$$$$$$$*..........-$$$$$$$$@........$$$$$$$$+...........................................................................................",
+"............@$$$$$$$$%................$$$$$$$$$......$$$$$$$$=.........................=$$$$$$$$+...........%$$$$$$$$-........................%$$$$$$$$@................&$$$$$$$$&....@$$$$$$$$#..........%$$$$$$$%........+$$$$$$$$#...........................................................................................",
+"............+$$$$$$$$=...............#$$$$$$$$=......%$$$$$$$$...........@========@....&$$$$$$$$&..........=$$$$$$$$$+........................$$$$$$$$$.................=$$$$$$$$+....+$$$$$$$$..........-$$$$$$$$=........&$$$$$$$$............................................................................................",
+"............&$$$$$$$$-...............&$$$$$$$$&......=$$$$$$$$-..........=$$$$$$$*.....+$$$$$$$$%@........+$$$$$$$$$$........................+$$$$$$$$=.................$$$$$$$$$.....=$$$$$$$$.........@$$$$$$$$$-........=$$$$$$$=............................................................................................",
+"............*$$$$$$$$+...............=$$$$$$$$+......+$$$$$$$$$+.......@=$$$$$$$$@.....#$$$$$$$$$=.......=$$$$$$$$$$*........................-$$$$$$$$&................@$$$$$$$$%.....=$$$$$$$$-.......#%$$$$$$$$$+........$$$$$$$$-............................................................................................",
+"............$$$$$$$$$................$$$$$$$$$#.......$$$$$$$$$$&#...#&$$$$$$$$$-.......%$$$$$$$$$*#..@-%$$$$$$$$$$$=........................=$$$$$$$$+................+$$$$$$$$=.....=$$$$$$$$$-@...+&$$$$$$$$$$$........@$$$$$$$$=............................................................................................",
+"...........#$$$$$$$$*...............@$$$$$$$$$........&$$$$$$$$$$$$$$$$$$$$$$$$=........&$$$$$$$$$$$$$$$$$$$$$$$$$$$+........................$$$$$$$$$.................=$$$$$$$$-.....-$$$$$$$$$$$$$$$$$$$$$$$$$$%........+$$$$$$$$$%==-........................................................................................",
+"...........+$$$$$$$$=...............+$$$$$$$$$.........%$$$$$$$$$$$$$$$$$$$$$$=.........@$$$$$$$$$$$$$$$$$$$$$$$$$$$#.......................@$$$$$$$$%.................*$$$$$$$$+.....#$$$$$$$$$$$$$$$$$$$$$$$$$$=........+$$$$$$$$$$$$&........................................................................................",
+"...........=$$$$$$$$+...............+$$$$$$$$$@........@$$$$$$$$$$$$$$$$$$$$$=...........-$$$$$$$$$$$$$$$$$=$$$$$$$$........................+$$$$$$$$=.................$$$$$$$$$.......*$$$$$$$$$$$$$$$$*%$$$$$$$*........+$$$$$$$$$$$$+........................................................................................",
+"...........%$$$$$$$$#...............+$$$$$$$$$=.........#%$$$$$$$$$$$$$$$$$$+.............=$$$$$$$$$$$$$$$+=$$$$$$$=........................&$$$$$$$$-................#$$$$$$$$*.......@$$$$$$$$$$$$$$$=.$$$$$$$$$+........$$$$$$$$$$$$@........................................................................................",
+"...........$$$$$$$$$................@$$$$$$$$$*..........@*$$$$$$$$$$$$$$$&@...............=$$$$$$$$$$$$%@.%$$$$$$$&........................*$$$$$$$$+................-$$$$$$$$=........+$$$$$$$$$$$$%+..%$$$$$$$$*........&$$$$$$$$$$$.........................................................................................",
+"..........@+++++++++.................+++++++++#............#*$$$$$$$$$$%&@..................+%$$$$$$$$%-...++++++++@........................+++++++++.................#++++++++@.........@*$$$$$$$$%&@...#++++++++#.........&$$$$$$$$$=.........................................................................................",
+".............................................................@+&====&+@.......................#-====-#.....................................................................................@+====&+..........................@+=====&+@.........................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................"};
diff --git a/ecos/packages/hal/arm/sa11x0/assabet/current/misc/lcd_test.c b/ecos/packages/hal/arm/sa11x0/assabet/current/misc/lcd_test.c
new file mode 100644
index 0000000..367ac97
--- /dev/null
+++ b/ecos/packages/hal/arm/sa11x0/assabet/current/misc/lcd_test.c
@@ -0,0 +1,344 @@
+//==========================================================================
+//
+// lcd_test.c
+//
+// SA1110/Assabet - Compact Flash test
+//
+//==========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//==========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): gthomas
+// Contributors: gthomas
+// Date: 2000-06-05
+// Description: Tool used to test LCD stuff
+//####DESCRIPTIONEND####
+
+#include <pkgconf/kernel.h> // Configuration header
+#include <cyg/kernel/kapi.h>
+#include <cyg/infra/diag.h>
+
+#include <cyg/hal/hal_io.h> // IO macros
+#include <cyg/hal/hal_arch.h> // Register state info
+#include <cyg/hal/hal_intr.h> // HAL interrupt macros
+
+#include <cyg/hal/hal_sa11x0.h> // Board definitions
+#include <cyg/hal/assabet.h>
+#include <cyg/hal/hal_cache.h>
+
+#include "eCos.xpm"
+#include "eCos2.xpm"
+#include "redhat.xpm"
+#include "redhat2.xpm"
+#include "redboot.xpm"
+#include "escw.xpm"
+#include "logo.xpm"
+
+#ifndef FALSE
+#define FALSE 0
+#define TRUE 1
+#endif
+
+#define STACK_SIZE 4096
+static char stack[STACK_SIZE];
+static cyg_thread thread_data;
+static cyg_handle_t thread_handle;
+
+// FUNCTIONS
+
+static void
+cyg_test_exit(void)
+{
+ while (TRUE) ;
+}
+
+static void
+lcd_test(cyg_addrword_t p)
+{
+ int i, pix, row, col;
+ int on;
+
+ diag_printf("LCD test here\n");
+
+ lcd_init(16);
+#if 0
+ for (i = 0; i < 16; i++) {
+ on = true;
+ diag_printf("Fill with 0x%x\n", i);
+ for (row = 0; row < 240; row++) {
+ for (col = 0; col < 320/2; col++) {
+ if (on) {
+ fp->pixels[row][col] = RGB_RED(i)|RGB_GREEN(i)|RGB_BLUE(i);
+ } else {
+ fp->pixels[row][col] = 0xFFFF;
+ }
+ }
+ for (col = 320/2; col < 320; col++) {
+ if (!on) {
+ fp->pixels[row][col] = RGB_RED(i)|RGB_GREEN(i)|RGB_BLUE(i);
+ } else {
+ fp->pixels[row][col] = 0xFFFF;
+ }
+ }
+ if ((row & 0x0F) == 0x0F) {
+ if (on) {
+ on = false;
+ } else {
+ on = true;
+ }
+ }
+ }
+ cyg_thread_delay(100);
+ }
+#endif
+#if 0
+ for (i = 0; i < 4; i++) {
+ for (row = 0; row < 240; row++) {
+ for (col = 0; col < 320; col++) {
+ switch (row/40) {
+ case 0:
+ pix = col / 20; // 0..15
+ fp->pixels[row][col] = RGB_RED(pix);
+ break;
+ case 1:
+ pix = col / 10; // 0..31
+ fp->pixels[row][col] = RGB_GREEN(pix);
+ break;
+ case 2:
+ pix = col / 20; // 0..15
+ fp->pixels[row][col] = RGB_BLUE(pix);
+ break;
+ case 3:
+ pix = col / 20; // 0..15
+ fp->pixels[row][col] = RGB_BLUE(pix) | RGB_GREEN(pix);
+ break;
+ case 4:
+ pix = col / 20; // 0..15
+ fp->pixels[row][col] = RGB_BLUE(15) | RGB_GREEN(pix);
+ break;
+ case 5:
+ fp->pixels[row][col] = 0xFFFF;
+ break;
+ }
+ }
+ }
+ cyg_thread_delay(100);
+#if 0
+ for (row = 0; row < 240; row++) {
+ for (col = 0; col < 320; col++) {
+ pix = col / 20; // 0..15
+ switch (row/60) {
+ case 0:
+ fp->pixels[row][col] = RGB_RED(pix);
+ break;
+ case 1:
+ fp->pixels[row][col] = RGB_GREEN(pix);
+ break;
+ case 2:
+ fp->pixels[row][col] = RGB_BLUE(pix);
+ break;
+ case 3:
+ fp->pixels[row][col] = 0xFFFF;
+ break;
+ }
+ }
+ }
+ cyg_thread_delay(100);
+#endif
+#if 0
+ on = true;
+ for (row = 0; row < 240; row++) {
+ for (col = 0; col < 320/2; col++) {
+ if (on) {
+ fp->pixels[row][col] = RGB_GREEN(15);
+ } else {
+ fp->pixels[row][col] = RGB_BLUE(8);
+ }
+ }
+ for (col = 320/2; col < 320; col++) {
+ if (!on) {
+ fp->pixels[row][col] = RGB_GREEN(15);
+ } else {
+ fp->pixels[row][col] = RGB_BLUE(8);
+ }
+ }
+ if ((row & 0x0F) == 0x0F) {
+ if (on) {
+ on = false;
+ } else {
+ on = true;
+ }
+ }
+ }
+#endif
+ }
+#endif
+#if 0
+ for (row = 0; row < 240; row++) {
+ for (col = 0; col < 320; col++) {
+ if (col == 59) {
+ fp->pixels[row][col] = 0x0000;
+ } else {
+ fp->pixels[row][col] = 0xFFFF;
+ }
+ }
+ }
+ cyg_thread_delay(100);
+#endif
+#if 0
+ for (i = 0; i < 16; i++) {
+ diag_printf("Value 0x%04x\n", (1<<i));
+ for (row = 0; row < 240; row++) {
+ for (col = 0; col < 320; col++) {
+ fp->pixels[row][col] = (1<<i);
+ }
+ }
+ cyg_thread_delay(500);
+ }
+#endif
+#if 0
+ for (i = 0; i < 32; i++) {
+ diag_printf("Red at %d\n", i);
+ for (row = 0; row < 240; row++) {
+ for (col = 0; col < 320; col++) {
+ fp->pixels[row][col] = RGB_RED(i);
+ }
+ }
+ cyg_thread_delay(100);
+ }
+#endif
+#if 0
+ for (i = 0; i < 64; i++) {
+ diag_printf("Green at %d\n", i);
+ for (row = 0; row < 240; row++) {
+ for (col = 0; col < 320; col++) {
+ fp->pixels[row][col] = RGB_GREEN(i);
+ }
+ }
+ cyg_thread_delay(100);
+ }
+#endif
+#if 0
+ for (i = 0; i < 32; i++) {
+ diag_printf("BLUE at %d\n", i);
+ for (row = 0; row < 240; row++) {
+ for (col = 0; col < 320; col++) {
+ fp->pixels[row][col] = RGB_BLUE(i);
+ }
+ }
+ cyg_thread_delay(100);
+ }
+#endif
+
+ while (true) {
+ for (i = 0; i < 1; i++) {
+ show_xpm(redboot_xpm);
+ cyg_thread_delay(15);
+ show_xpm(eCos_xpm);
+ cyg_thread_delay(25);
+ show_xpm(redboot_xpm);
+ cyg_thread_delay(15);
+ show_xpm(redhat_xpm);
+ cyg_thread_delay(25);
+ show_xpm(redboot_xpm);
+ cyg_thread_delay(25);
+ show_xpm(redboot_xpm);
+ cyg_thread_delay(15);
+ show_xpm(escw_xpm);
+ cyg_thread_delay(25);
+ show_xpm(redboot_xpm);
+ cyg_thread_delay(15);
+ show_xpm(eCos2_xpm);
+ cyg_thread_delay(25);
+ show_xpm(redboot_xpm);
+ cyg_thread_delay(15);
+ show_xpm(redhat2_xpm);
+ cyg_thread_delay(25);
+ show_xpm(logo_xpm);
+ cyg_thread_delay(25);
+ show_xpm(redboot_xpm);
+ cyg_thread_delay(50);
+ }
+
+#if 0
+ // This doesn't seem to do anything on my unit
+ assabet_BCR(SA1110_BCR_MOTOR, SA1110_BCR_MOTOR_ON);
+ cyg_thread_delay(2*100);
+ assabet_BCR(SA1110_BCR_MOTOR, SA1110_BCR_MOTOR_OFF);
+#endif
+
+ show_xpm(redboot_xpm);
+ cyg_thread_delay(15);
+ lcd_clear();
+ lcd_printf("\n\n**** Hello world!\n");
+ cyg_thread_delay(5);
+ for (i = 0; i < 64; i++) {
+ lcd_printf("... testing line #%d\n", i);
+ }
+ cyg_thread_delay(50);
+
+ show_xpm(redboot_xpm);
+ cyg_thread_delay(15);
+ set_bg(0,0,0);
+ set_fg(31,63,0);
+ lcd_clear();
+ for (i = 0; i < 32; i++) {
+ lcd_printf("... testing line #%d\n", i);
+ }
+ cyg_thread_delay(50);
+ } // while
+
+ lcd_clear();
+ lcd_printf("*****");
+ cyg_thread_delay(200);
+
+ cyg_test_exit();
+}
+
+externC void
+cyg_start( void )
+{
+ // Create a main thread, so we can run the scheduler and have time 'pass'
+ cyg_thread_create(10, // Priority - just a number
+ lcd_test, // entry
+ 0, // entry parameter
+ "LCD test", // Name
+ &stack[0], // Stack
+ STACK_SIZE, // Size
+ &thread_handle, // Handle
+ &thread_data // Thread data structure
+ );
+ cyg_thread_resume(thread_handle); // Start it
+ cyg_scheduler_start();
+} // cyg_package_start()
diff --git a/ecos/packages/hal/arm/sa11x0/assabet/current/misc/logo.xpm b/ecos/packages/hal/arm/sa11x0/assabet/current/misc/logo.xpm
new file mode 100644
index 0000000..269626b
--- /dev/null
+++ b/ecos/packages/hal/arm/sa11x0/assabet/current/misc/logo.xpm
@@ -0,0 +1,260 @@
+/* XPM */
+static char * logo_xpm[] = {
+"320 240 17 1",
+" c None",
+". c #030305",
+"+ c #949394",
+"@ c #D3D0D3",
+"# c #525051",
+"$ c #B7B6B8",
+"% c #E2515E",
+"& c #FEFEFC",
+"* c #820204",
+"= c #737073",
+"- c #E33533",
+"; c #343232",
+"> c #E895AE",
+", c #E51604",
+"' c #E67284",
+") c #EABAD4",
+"! c #2C1416",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"................................................................................................................................................................................................................................................................................................................................",
+".................................*..............................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"..................................!...................................................................................................................................&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"..................................!...................................................................................................................................&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"......................................................................................................................................................................&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"......................................................................................................................................................................&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"......................................................................................................................................................................&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"......................................................................................................................................................................&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"......................................................................................................................................................................&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"......................................................................................................................................................................&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"......................................................................................................................................................................&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"......................................................................................................................................................................&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"......................................................................................................................................................................&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"......................................................................................................................................................................&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+".....................!=+@&&&&&&$+=!...................................................................................................................................&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"...................#$&&$+=#;##=+@&&$#.................................................................................................................................&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+".................;$&$=!..........!#@&$;...............................................................................................................................&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"...............!+&$#................#$&+..............................................................................................................................&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&+=;#...................................&&&&&&,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,-%%>&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"..............;@&=....................=&@!............................................................................................................................&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&#........................................&&&&&&,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,'&&&&&&&&&&&&&&&&&&&&&&&&&&",
+".............;&$;.....****!!*****!.....;$@;..................................................................!!!!!!...................................................&&&&&&&&&&&&&&&&&&&&&&&&&&&&&+!.........................................&&&&&&,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,>&&&&&&&&&&&&&&&&&&&&&&&&",
+"............;@@!.....*,,,*,*,*...**.....!@@!.................................................................#@@=#!...................................................&&&&&&&&&&&&&&&&&&&&&&&&&&&&=...........................................&&&&&&,,,-,,-,,-,,-,,-,,-,,-,,-,,-,,-,,-,,-,,-,,-,,,,,,,,,'&&&&&&&&&&&&&&&&&&&&&&&",
+"...........!@@!.....*,,*,,,,,**..*,......!@@.................................................................#&&&&+!.!!!!.............................................&&&&&&&&&&&&&&&&&&&&&&&&&&&#............................................&&&&&&,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,-,,,,,,,'&&&&&&&&&&&&&&&&&&&&&&",
+"...........$&;......***,,,*,,,****,*......;&+...............................................................!#&&&&@..!$+!.............................................&&&&&&&&&&&&&&&&&&&&&&&&&&+...............;;;;..........................&&&&&&-,,,,,,,,,,,,,,--%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,>&&&&&&&&&&&&&&&&&&&&&",
+"..........#&;.......,*.....*,*,,,,,*.......=&;...............................................................#&&&&$!..&&=!.............................!!!............&&&&&&&&&&&&&&&&&&&&&&&&&@!............#+&&&&&&@=!..................;===&&&&&&,,,,-,,,-,,,')&&&&&&>%,,,-,,,-,,,-,,'>@&&))'-,,,-,,,,,,&&&&&&&&&&&&&&&&&&&&&",
+"..........@$........,*...!**,,*,*,,,*.......$$..............................................................!#&&&&@..!@&=.............................!#$=............&&&&&&&&&&&&&&&&&&&&&&&&&=...........;@&&&&&&&&&&&+..............!=&&&&&&&&&&&,,,,,,,,,-'&&&&&&&&&&&)%,,,,,,,,,,-)&&&&&&&&&)%,,,,,,,,'&&&&&&&&&&&&&&&&&&&&",
+".........=&;.......!*,**,*,,*,,,,,*,,.......;&#..........................!...!..........!....................#&&&&$!..&&=!...!..............!!!........@&+!!..........&&&&&&&&&&&&&&&&&&&&&&&&&...........=&&&&&&&&&&&&&&$!...........#&&&&&&&&&&&&&,,-,,,,,,)&&&&&&&&&&&&&&%,,,,,-,,-&&&&&&&&&&&&%,,,,,,,,,&&&&&&&&&&&&&&&&&&&&",
+".........@+....!***!,*,,,*,,,,,*,,,*,!.......$$......................!!!!!!!!!!!...!.!!!!!!............!!!!!!#&&&&@..!@&=!!!!!!!.......!.!!!.!!!!...!!!@&+!!!!........&&&&&&&&&&&&&&&&&&&&&&&&+..........+&&&&&&&&&&&&&&&&@!.........#&&&&&&&&&&&&&&,,,,-,,,)&&&&&&&&&&&&&&&&'-,,,,,,)&&&&&&&&&&&@,,,,-,,,,,>&&&&&&&&&&&&&&&&&&&",
+"........;&#..*,*,,,..*,*,,,*,*,,,*,,,*.......#&;.....................#===;!!+$$#!..!!#+$$$+#!........!#+$$$=!#&&&&$!..&&=!!;=+=#!!.....!!!#=++=;.!.!!#!&&+;;;;!.......&&&&&&&&&&&&&&&&&&&&&&&&=.........#&&&&&&&&&&&&&&&&&&$........#&&&&&&&&&&&&&&&,,,,,,,)&&&&&&&&&&&&&&&&&&%,,,,,%&&&&&&&&&&&&-,-,,,,,,,,'&&&&&&&&&&&&&&&&&&&",
+"........=&...,,,,*,*...**,,,,,*,,,,*,*........&=....................!@&&&=;@&&&+.!!#@&&&&&&&$;.....!!$&&&&&&@=@&&&@..!@&=!$&&&&&$#!...!!+@&&&&&@=!.!$&@&&&@&&@........&&&&&&&&&&&&&&&&&&&&&&&&;........!&&&&&&&=;...#$&&&&&&#......!&&&&&&&&@'''>@&&,,,,,,'&&&&&&&)'''>&&&&&&&&,,,,,'&&&&&)-,,%)),,,,,,,,-,,-&&&&&&&&&&&&&&&&&&&",
+"........$$...,*,,,,*!......*,,,*,*,,,****.....$$.....................@&&&+@&&&&=!!#&&&&&&&&&&@!....;@&&&&&&&&&&&&&$!..&&#@&&@$@&&@#!...=&&@@$$&&&=!.$&@&&&@&&@........&&&&&&&&&&&&&&&&&&&&&&&&;........+&&&&&@!.......#&&&&&@......+&&&&&&&',,,,,,'&,,,,-,&&&&&&&-,,,,,,>&&&&&&',-,,)&&&&&%,,,,,-,,,,,-,,,,,%&&&&&&&&&&&&&&&&&&&",
+"........&=...**,*,,,,*......*,,,,,,*,*,*,,....+@.....................@&&&@&&&&&+!;&&&&&@@&&&&&@....@&&&&&&&&&&&&&&@...&&@&$!...#&&@....#@=....!$&@..!;.@&+.;!;........&&&&&&&&&&&&&&&&&&&&&&&&.........&&&&&@!.........+&&&&&#....!&&&&&&&-,,,,,,,,',,,,,%&&&&&&-,,,,,,,,'&&&&&&,,,,)&&&&&>,,,,,,,,,,,,,,,,,-&&&&&&&&&&&&&&&&&&&",
+".......;&#....*,,,*,*,,**....*,*,*,,,*,,,*,...#&.....................@&&&&&&&@&=!@&&&&=!.;@&&&&#!.+&&&&&@==$@&&&&&$!..@&&+......#&&=!...........&&+....&&+!...........&&&&&&&&&&&&&&&&&&&&&&&&........#&&&&&=;;;;#;;;#;#&&&&&+....#&&&&&&',,,,,,,,,,,,,,,>&&&&&%,,,,,,,,,,)&&&&&-,,,)&&&&&&@'-,,,,-,,,,,,,,,%&&&&&&&&&&&&&&&&&&&",
+".......;&#.....*,,,,*,,*,,**!*,,,,*,,,*,,,,*..;&;....................@&&&&&@=;;.#&&&&=!....&&&&$.!@&&&&$....#&&&&&@..!&&@........@&$.........!.!$&$....@&+............&&&&&&&&&&&&&&&&&&&&&&&&........+&&&&&&&&&&&&&&&&&&&&&&&....+&&&&&&,,,,,,,,,,,-,,,,&&&&&@,,,,,,,,,,,%&&&&&>,,,'&&&&&&&&&)',,,,,,,,-,,,-&&&&&&&&&&&&&&&&&&&",
+".......#&;......**,,,,*,,*,,,*,,*,,,*,,,*,**..#&;....................@&&&&@.....@&&&@!!!!!!$&&&@!#&&&&@;.....+&&&&$!..@&+!.......+&@!.....!!!!!!+&@....&&+!...........&&&&&&&&&&&&&&&&&&&&&&&&........$&&&&&&&&&&&&&&&&&&&&&&&....$&&&&&),,,,-,,,,,,,,,-,&&&&&',,,,,,,,,,,,&&&&&',,-,&&&&&&&&&&&&-,-,,-,,,,,%&&&&&&&&&&&&&&&&&&&",
+".......;&;........**,,,,,,*,,*,,,*,,,*,,,,,...#&#....................@&&&&=.....@&&&@++$+$+@&&&&!+&&&&$.....!#&&&&@..!&&=........+&@....!!!;=+$$@&@....@&+............&&&&&&&&&&&&&&&&&&&&&&&&........$&&&&&&&&&&&&&&&&&&&&&&&....$&&&&&),,,,,,-,,,,,,,,-&&&&&'-,,-,,-,,,,,&&&&&),,,,%&&&&&&&&&&&&-,,,,,,,,,-&&&&&&&&&&&&&&&&&&&",
+".......#&;.........*,*,*,,,,,,,*,,,*,,,*,**...;&;....................@&&&&;!...;&&&&&&&&&&&&&&&&!$&&&&=!.....#&&&&$!..@&=!.......=&&....!=@&&&&&&&@....&&+!...........&&&&&&&&&&&&&&&&&&&&&&&&........$&&&&&$$@$$$@$$$@$$$$$$$....$&&&&&),-,,,,,,,,,-,,,,&&&&&',,,,,,,,,,,,&&&&&>,,,,,->&&&&&&&&&&&,,,,,,-,,-&&&&&&&&&&&&&&&&&&&",
+".......;&#.......;@@!**,*,*,*,,,*,,,*,,,,*....#&.....................@&&&&;....#&&&&&&&&&&&&&&&&!$&&&&#......#&&&&@..!&&=........=&@...!+&&&@$++$&@....@&+............&&&&&&&&&&&&&&&&&&&&&&&&........+&&&&&;.....................$&&&&&@,,,,,,,-,,,,,,,,&&&&&),,,,,,,,-,,-&&&&&'-,,,,,,,%>&&&&&&&&%,,,,,,,,-&&&&&&&&&&&&&&&&&&&",
+"........&=.......+&&$...*,,,,,*,,,*,,,*,*.....=&.....................@&&&&!!...;&&&&&@&@&&@&&@&@;$&&&&=......#&&&&$!..@&=!.......=&&.!.$&&+!....+&@....@&+!...........&&&&&&&&&&&&&&&&&&&&&&&&........=&&&&&+................!....=&&&&&&-,,,-,,,,,,,,,,,)&&&&&-,,,,-,,,,,>&&&&&%,,,-,,,,,,,'&&&&&&',,-,,,,,%&&&&&&&&&&&&&&&&&&&",
+"........@+.......;&&&@&;...**,,*,,,*,**.......+$.....................@&&&&;.....&&&&$.!;#######;!+&&&&$.....!#&&&&@..!&&=.......!=&@.!#&&=.....!+&@....@&+............&&&&&&&&&&&&&&&&&&&&&&&&........;&&&&&&;........!;;#;;#;....;&&&&&&@,,,,,,,,,-,,,,,'&&&&&)-,,,,,,,,-&&&&&&,,,,,,,,,,,,,>&&&&&',,,,,,,,-&&&&&&&&&&&&&&&&&&&",
+"........+@.#=++$;.;&&&&@;.......!.!...........@=.....................@&&&&;!....@&&&&............=&&&&@..!..!+&&&&$!..@&=!.......=&&.!$&@.......+&@....&&+!...........&&&&&&&&&&&&&&&&&&&&&&&&;........$&&&&&&;......!@&&&&&&;.....$&&&&&&),,,,,,--@,,-,,-&&&&&&>,,,,,,,%&&&&&&>,,,,,>)-,,,,,>&&&&&',,,,-,,,%&&&&&&&&&&&&&&&&&&&",
+"........#&#+&&&&&;.;&&&&&+;#;+=#==#=;........;&;.....................$&&&&;.....+&&&&).!!!!!!!...!&&&&&+.!!!#@&&&&@..!&&=.......!=&@.!@&$.....!!$&@....@&+............&&&&&&&&&&&&&&&&&&&&&&&&;........#&&&&&&&$#;.;+&&&&&&&+......#&&&&&&&&'%,,%>&&,,,,,,>&&&&&&&'%,-%>&&&&&&&-,-,,,&&&'%,,'&&&&&&%,,,,,,,,-&&&&&&&&&&&&&&&&&&&",
+".........@&&&&&&&&$@&&&&&&&&&&&&&&&&.........+@......................@&&&@;!....!&&&&&@+=##=+@+...$&&&&&@+=$&&&&&&$...@&=!.......=&&..@&@!..!.!;&&@....@&+!...........&&&&&&&&&&&&&&&&&&&&&&&&#.........+&&&&&&&&&&&&&&&&&&@!.......=&&&&&&&&&&&&&&&,,,,,,-&&&&&&&&&&&&&&&&&&&',,,,,>&&&&&&&&&&&&&&,,,-,,,,,'&&&&&&&&&&&&&&&&&&&",
+".........+&&&&&&&&&&&&&&&&&&&+$+@&&$........;&=......................@&&&&;......=&&&&&&&&&&&&@...;&&&&&&&&&&&&&&&@...&&=........=&@..+&&#!!!!!@&&@....$&@!!!.........&&&&&&&&&&&&&&&&&&&&&&&&+..........@&&&&&&&&&&&&&&&&&;.........+&&&&&&&&&&&&&&,,,,,,,-&&&&&&&&&&&&&&&&&),,,,,-&&&&&&&&&&&&&&',,,,,-,,,>&&&&&&&&&&&&&&&&&&&",
+".........!&&&&&&&&&&&&&&&&&&@;..$&&+........+@.......................@&&&&;.......+&&&&&&&&&&&&....=&&&&&&&&&@@&&&@...&&=........+&&...@&&===$&&$&@....=&&$=+=........&&&&&&&&&&&&&&&&&&&&&&&&&..........!@&&&&&&&&&&&&&&&;...........+&&&&&&&&&&&&&,,-,,,,,%&&&&&&&&&&&&&&&),,,,,,'&&&&&&&&&&&&&>,,,,,,,,,,&&&&&&&&&&&&&&&&&&&&",
+"..........=&&&&&&&&&&&&&&&&&&&@@&&&;..#+=+==&#.......................@&&&&;........=@&&&&&&&&&@!....=@&&&&&&@!$&&&@...@&=........=&@...#@&&&&&&+.&&.....$&&&&@........&&&&&&&&&&&&&&&&&&&&&&&&&#...........+&&&&&&&&&&&&$!.............#$&&&&&&&&&&&,,,,,,,,,-)&&&&&&&&&&&&>,,,-,,,,-)&&&&&&&&&&',,,,,,,,,,%&&&&&&&&&&&&&&&&&&&&",
+"...........$&&&&&&&&&&&&&&&&&&&&&&=..#&&&&&&$........................=+++=!..........=+$@$$$+#........=$@@$=..#+++=...=+;........;+=....;+@@@+#..+=.....!+$@@+........&&&&&&&&&&&&&&&&&&&&&&&&&@............!+&&&&&&&&@#.................;=$$$&&&&&&,,,,,,,,,,,%)&&&&&&&&>,,,,,,,,,,,,-')@&&&)',,,-,,,,,-,,&&&&&&&&&&&&&&&&&&&&&",
+"...........;&&&&&&&&&&&&&&&&&&&&&$.;$&&&&&&&!.........................................................................................................................&&&&&&&&&&&&&&&&&&&&&&&&&&=..............#++++#;........................&&&&&&,,,,,,,,,,,,,-%''''%,,,,,,,,,,,,,,,,,,,,,,,,,,,,-,,,,,'&&&&&&&&&&&&&&&&&&&&&",
+"............;&&&&&&&&&&&&&&&&&&&&;!&&&&&&&&;..........................................................................................................................&&&&&&&&&&&&&&&&&&&&&&&&&&&#............................................&&&&&&,,-,,,,,,,,,,,,,-,,,,,,,-,,,-,,,,,,,,,,,,,,,,,,,,,,,,'&&&&&&&&&&&&&&&&&&&&&&",
+".............=&&&&&&&&&&&&&&&&&&$+&&&&&&&@;...........................................................................................................................&&&&&&&&&&&&&&&&&&&&&&&&&&&&;...........................................&&&&&&,,,,-,,,-,,,,,,,,,,,,,,,,,,,,-,,-,,,,,,,,,,,-,,,,,,,%&&&&&&&&&&&&&&&&&&&&&&&",
+"..............;&&&&&&&&&&&&&&&&&&&&&&&&&&;............................................................................................................................&&&&&&&&&&&&&&&&&&&&&&&&&&&&&=..........................................&&&&&&,,,,,,,,,,,,,-,,,,,,-,,,,,,,,,,,,,,-,,,-,,,,,,,-,,-'&&&&&&&&&&&&&&&&&&&&&&&&",
+"...............;@&&&&&&&&&&&&&&&&&&&&&&$!.............................................................................................................................&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&@;........................................&&&&&&,,,,,,,,,-,,,,,,-,,,,,,,-,,,,,,,,,,,,,,,,-,,,,,,,%)&&&&&&&&&&&&&&&&&&&&&&&&&",
+".................=&&&&&&&&&&&&&&&&&&&&#...............................................................................................................................&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&@+;;....................................&&&&&&,,,,-,,,,,,,,,,,,,,,,-,,,,,,,-,,,,,,-,,,,,,,-,%'@&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"..................!+@&&&&&&&&&&&&&&@=!................................................................................................................................&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+".....................#+@&&&&&&&&@+;...................................................................................................................................&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+".........................;#;##;.......................................................................................................................................&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"......................................................................................................................................................................&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"......................................................................................................................................................................&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"......................................................................................................................................................................&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"......................................................................................................................................................................&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"......................................................................................................................................................................&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"......................................................................................................................................................................&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"......................................................................................................................................................................&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"......................................................................................................................................................................&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"......................................................................................................................................................................&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"......................................................................................................................................................................&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"......................................................................................................................................................................&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"......................................................................................................................................................................&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&..........................................................................................................................................................",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&"};
diff --git a/ecos/packages/hal/arm/sa11x0/assabet/current/misc/redboot.xpm b/ecos/packages/hal/arm/sa11x0/assabet/current/misc/redboot.xpm
new file mode 100644
index 0000000..a84e138
--- /dev/null
+++ b/ecos/packages/hal/arm/sa11x0/assabet/current/misc/redboot.xpm
@@ -0,0 +1,254 @@
+/* XPM */
+static char * redboot_xpm[] = {
+"320 240 11 1",
+" c None",
+". c #FFFF00",
+"+ c #FFAA00",
+"@ c #FFE300",
+"# c #FFC700",
+"$ c #FF0000",
+"% c #FF1D00",
+"& c #FF7200",
+"* c #FF5500",
+"= c #FF3900",
+"- c #FF8E00",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+".......................................................................+++++++++++++++++++++++++@......................................................................#+++++++#........@++++++++++++++++++++++.................................................................................................................",
+".......................................................................$$$$$$$$$$$$$$$$$$$$$$$$$$%&@...................................................................$$$$$$$$&........*$$$$$$$$$$$$$$$$$$$$$$$%*#.............................................................................................................",
+"......................................................................+$$$$$$$$$$$$$$$$$$$$$$$$$$$$$+.................................................................@$$$$$$$$+........%$$$$$$$$$$$$$$$$$$$$$$$$$$=@...........................................................................................................",
+"......................................................................&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$+................................................................+$$$$$$$$.........$$$$$$$$$$$$$$$$$$$$$$$$$$$$$+..........................................................................................................",
+"......................................................................*$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$+...............................................................&$$$$$$$%........+$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@.....................................................................................*$$$$$$$%...........",
+"......................................................................$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%...............................................................*$$$$$$$*........-$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$=.....................................................................................$$$$$$$$*...........",
+".....................................................................@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$-..............................................................$$$$$$$$-........*$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#....................................................................................$$$$$$$$-...........",
+".....................................................................+$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$*.............................................................#$$$$$$$$#........%$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$*...................................................................................+$$$$$$$$+...........",
+".....................................................................*$$$$$$$$+............+&$$$$$$$$$$$.............................................................+$$$$$$$$........@$$$$$$$$=............+=$$$$$$$$$%...................................................................................-$$$$$$$$............",
+".....................................................................=$$$$$$$$#..............@%$$$$$$$$$.............................................................*$$$$$$$=........+$$$$$$$$*..............-$$$$$$$$$...................................................................................*$$$$$$$=............",
+".....................................................................$$$$$$$$$................#$$$$$$$$$.............................................................=$$$$$$$*........&$$$$$$$$+...............%$$$$$$$$...................................................................................%$$$$$$$*............",
+"....................................................................#$$$$$$$$*.................=$$$$$$$%...............#++**-+#.........................@++**++......$$$$$$$$+........*$$$$$$$$#...............*$$$$$$$$..................@++&**++@............................#++**&++....................$$$$$$$$+............",
+"....................................................................-$$$$$$$$&.................*$$$$$$$*............+*$$$$$$$$$$*#....................-=$$$$$$$$&@..+$$$$$$$$@........$$$$$$$$$................*$$$$$$$*...............+*$$$$$$$$$$%&@.....................@-=$$$$$$$$$$=-............@+++&$$$$$$$$&+++#........",
+"....................................................................*$$$$$$$$+.................=$$$$$$$-.........@&$$$$$$$$$$$$$$$*@................-%$$$$$$$$$$$%@.-$$$$$$$$........#$$$$$$$$=................$$$$$$$$-.............-%$$$$$$$$$$$$$$$&..................@&$$$$$$$$$$$$$$$%+..........*$$$$$$$$$$$$$$$$*........",
+"....................................................................%$$$$$$$$@................@$$$$$$$$@........+%$$$$$$$$$$$$$$$$$%@.............@=$$$$$$$$$$$$$$%@*$$$$$$$*........+$$$$$$$$&...............-$$$$$$$$@...........#%$$$$$$$$$$$$$$$$$$%@...............-$$$$$$$$$$$$$$$$$$$*.........%$$$$$$$$$$$$$$$$-........",
+"....................................................................$$$$$$$$$.................&$$$$$$$*........*$$$$$$$$$$$$$$$$$$$$%@...........#%$$$$$$$$$$$$$$$$&%$$$$$$$&........*$$$$$$$$+..............@$$$$$$$$&...........-$$$$$$$$$$$$$$$$$$$$$%@............@*$$$$$$$$$$$$$$$$$$$$$*........$$$$$$$$$$$$$$$$$+........",
+"...................................................................+$$$$$$$$*................#$$$$$$$$#.......*$$$$$$$$$$$$$$$$$$$$$$=..........+$$$$$$$$$$$$$$$$$$$$$$$$$$$+........=$$$$$$$$@.............@%$$$$$$$%@..........*$$$$$$$$$$$$$$$$$$$$$$$=...........@%$$$$$$$$$$$$$$$$$$$$$$$-......+$$$$$$$$$$$$$$$$$.........",
+"...................................................................-$$$$$$$$&...............@%$$$$$$$&.......-$$$$$$$$$$$$$$$$$$$$$$$$+........@$$$$$$$$$$$$$$$$$$$$$$$$$$$$@........$$$$$$$$$............#&$$$$$$$$$#..........&$$$$$$$$$$$$$$$$$$$$$$$$$-..........%$$$$$$$$$$$$$$$$$$$$$$$$$@.....-$$$$$$$$$$$$$$$$=.........",
+"...................................................................*$$$$$$$$+..............-%$$$$$$$=.......#$$$$$$$$$%&+@@+*$$$$$$$$$=........%$$$$$$$$$%-#.+&$$$$$$$$$$$$%........+$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$+..........+$$$$$$$$$$&+@@+&$$$$$$$$$$=.........*$$$$$$$$$%-+.#+=$$$$$$$$$$-.....#+++=$$$$$$$$++++#.........",
+"...................................................................$$$$$$$$$-++++++++++++*%$$$$$$$$%@.......%$$$$$$$$&.......+$$$$$$$$$#......&$$$$$$$$$&......@%$$$$$$$$$$*........-$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%+..........@$$$$$$$$$=@......@%$$$$$$$$$@.......-$$$$$$$$$&.......+$$$$$$$$$=.........%$$$$$$$*..............",
+"..................................................................@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$*@.......&$$$$$$$$+.........&$$$$$$$$-.....@$$$$$$$$$+........+$$$$$$$$$$-........*$$$$$$$$$$$$$$$$$$$$$$$$$$$$=@...........=$$$$$$$$*.........#$$$$$$$$$+......@$$$$$$$$$+.........&$$$$$$$$$.........$$$$$$$$-..............",
+"..................................................................+$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$-........@$$$$$$$$*..........@$$$$$$$$*.....=$$$$$$$$-..........=$$$$$$$$$+........%$$$$$$$$$$$$$$$$$$$$$$$$$$$$*...........#$$$$$$$$*...........*$$$$$$$$*......&$$$$$$$$+...........$$$$$$$$$+.......+$$$$$$$$+..............",
+"..................................................................&$$$$$$$$$$$$$$$$$$$$$$$$$$$$&@.........&$$$$$$$%............%$$$$$$$*....#$$$$$$$$=...........&$$$$$$$$$........@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$*..........=$$$$$$$%@...........+$$$$$$$$*.....@$$$$$$$$*............*$$$$$$$$+.......&$$$$$$$$...............",
+"..................................................................=$$$$$$$$$$$$$$$$$$$$$$$$$$$&@..........%$$$$$$$&............*$$$$$$$*....&$$$$$$$$@...........+$$$$$$$$=........+$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&........#$$$$$$$$-.............$$$$$$$$*.....&$$$$$$$$@............+$$$$$$$$+.......*$$$$$$$%...............",
+"..................................................................$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&........+$$$$$$$$@............*$$$$$$$*....$$$$$$$$*............+$$$$$$$$*........&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#.......&$$$$$$$%..............$$$$$$$$*.....%$$$$$$$&.............+$$$$$$$$+.......$$$$$$$$*...............",
+".................................................................#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$*.......*$$$$$$$$$$$$$$$$$$$$$$$$$$$$$*...+$$$$$$$$#............+$$$$$$$$+........*$$$$$$$$&++++++++++++*$$$$$$$$$$=.......$$$$$$$$-..............$$$$$$$$*....+$$$$$$$$@.............+$$$$$$$$+......@$$$$$$$$-...............",
+".................................................................+$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$+......$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$*...*$$$$$$$%.............+$$$$$$$$#........$$$$$$$$$..............@*$$$$$$$$$......+$$$$$$$$@..............$$$$$$$$+....*$$$$$$$=..............+$$$$$$$$.......+$$$$$$$$#...............",
+".................................................................*$$$$$$$$+............+=$$$$$$$$$*.....+$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$+...$$$$$$$$&.............+$$$$$$$$........@$$$$$$$$=................%$$$$$$$$+.....&$$$$$$$%..............@$$$$$$$$+....%$$$$$$$&..............-$$$$$$$$.......&$$$$$$$$................",
+".................................................................%$$$$$$$$@..............*$$$$$$$$*.....-$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#..#$$$$$$$$+.............*$$$$$$$*........+$$$$$$$$*................-$$$$$$$$+.....=$$$$$$$*..............+$$$$$$$$@...@$$$$$$$$+..............*$$$$$$$=.......*$$$$$$$=................",
+".................................................................$$$$$$$$$...............@$$$$$$$$*.....*$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$...+$$$$$$$$#.............=$$$$$$$&........*$$$$$$$$+................+$$$$$$$$+.....$$$$$$$$&..............&$$$$$$$%....+$$$$$$$$#..............%$$$$$$$&.......$$$$$$$$*................",
+"................................................................+$$$$$$$$*................$$$$$$$$&.....=$$$$$$$$*********************&...-$$$$$$$$.............@$$$$$$$$+........=$$$$$$$$#................+$$$$$$$$+.....$$$$$$$$+..............=$$$$$$$*....+$$$$$$$$..............@$$$$$$$$+......@$$$$$$$$+................",
+"................................................................-$$$$$$$$&...............#$$$$$$$$+.....$$$$$$$$%.........................*$$$$$$$$.............-$$$$$$$$@........$$$$$$$$$.................*$$$$$$$$.....+$$$$$$$$+.............@$$$$$$$$+....*$$$$$$$$..............-$$$$$$$$.......+$$$$$$$$@................",
+"................................................................*$$$$$$$$+...............-$$$$$$$$+.....$$$$$$$$*.........................*$$$$$$$$.............=$$$$$$$%........#$$$$$$$$=................@$$$$$$$$=.....+$$$$$$$$+.............&$$$$$$$$.....*$$$$$$$$..............%$$$$$$$*.......&$$$$$$$$.................",
+"................................................................$$$$$$$$$................*$$$$$$$$......$$$$$$$$*.........................*$$$$$$$$............#$$$$$$$$*........-$$$$$$$$*................&$$$$$$$$-.....+$$$$$$$$+............@%$$$$$$$&.....*$$$$$$$$.............+$$$$$$$$#.......*$$$$$$$*.................",
+"...............................................................@$$$$$$$$%................$$$$$$$$$......$$$$$$$$*.........................*$$$$$$$$+...........%$$$$$$$$-........*$$$$$$$$+...............+$$$$$$$$$@.....+$$$$$$$$*............&$$$$$$$$@.....*$$$$$$$$+............%$$$$$$$=........$$$$$$$$&.................",
+"...............................................................+$$$$$$$$*...............#$$$$$$$$*......%$$$$$$$$...........@********@....&$$$$$$$$&..........*$$$$$$$$$+........%$$$$$$$$#..............+$$$$$$$$$&......+$$$$$$$$%...........+$$$$$$$$*......*$$$$$$$$&...........*$$$$$$$$+.......#$$$$$$$$+.................",
+"...............................................................&$$$$$$$$-...............&$$$$$$$$&......*$$$$$$$$-..........*$$$$$$$=.....+$$$$$$$$%@........+$$$$$$$$$$.........$$$$$$$$$............@+=$$$$$$$$$%@.......$$$$$$$$$-.........+$$$$$$$$$@......+$$$$$$$$$@.........*$$$$$$$$=........+$$$$$$$$..................",
+"...............................................................=$$$$$$$$+...............*$$$$$$$$+......+$$$$$$$$$+.......@*$$$$$$$$@.....#$$$$$$$$$*.......*$$$$$$$$$$=........+$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$+........%$$$$$$$$$+.......-$$$$$$$$$-.......#$$$$$$$$$%@......@*$$$$$$$$$@........*$$$$$$$=..................",
+"...............................................................$$$$$$$$$................$$$$$$$$$#.......$$$$$$$$$$&#...#&$$$$$$$$$-.......%$$$$$$$$$=#..@-%$$$$$$$$$$$*........&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&.........&$$$$$$$$$$&#...+=$$$$$$$$$=.........%$$$$$$$$$%-@..@-%$$$$$$$$$-.........=$$$$$$$%@.................",
+"..............................................................#$$$$$$$$=...............@$$$$$$$$$........&$$$$$$$$$$$$$$$$$$$$$$$$*........&$$$$$$$$$$$$$$$$$$$$$$$$$$$+........*$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$*..........@$$$$$$$$$$$$$$$$$$$$$$$$$%@.........-$$$$$$$$$$$$$$$$$$$$$$$$$*..........$$$$$$$$$$***..............",
+"..............................................................+$$$$$$$$*...............+$$$$$$$$$.........%$$$$$$$$$$$$$$$$$$$$$$*.........@$$$$$$$$$$$$$$$$$$$$$$$$$$$#........$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$-............&$$$$$$$$$$$$$$$$$$$$$$$%@...........%$$$$$$$$$$$$$$$$$$$$$$$*...........$$$$$$$$$$$$%..............",
+"..............................................................*$$$$$$$$+...............+$$$$$$$$$@........@$$$$$$$$$$$$$$$$$$$$$*...........-$$$$$$$$$$$$$$$$$*$$$$$$$$........@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%#..............*$$$$$$$$$$$$$$$$$$$$$=@............@%$$$$$$$$$$$$$$$$$$$$$&............$$$$$$$$$$$$*..............",
+"..............................................................%$$$$$$$$#...............+$$$$$$$$$*.........#%$$$$$$$$$$$$$$$$$$+.............*$$$$$$$$$$$$$$$+*$$$$$$$*........+$$$$$$$$$$$$$$$$$$$$$$$$$$$%-................@=$$$$$$$$$$$$$$$$$$$&...............+%$$$$$$$$$$$$$$$$$$%+.............*$$$$$$$$$$$-..............",
+"..............................................................$$$$$$$$$................@$$$$$$$$$=..........@=$$$$$$$$$$$$$$$&@...............*$$$$$$$$$$$$%@.%$$$$$$$&........&$$$$$$$$$$$$$$$$$$$$$$$$=&#....................&$$$$$$$$$$$$$$$$=#.................@=$$$$$$$$$$$$$$$$&@..............#$$$$$$$$$$$+..............",
+".............................................................@+++++++++.................+++++++++#............#=$$$$$$$$$$%&@..................+%$$$$$$$$%-...++++++++@........#++++++++++++++++++++++@.........................@&%$$$$$$$$$$%&#.....................#*$$$$$$$$$$$=-@.................+%$$$$$$$$$...............",
+"................................................................................................................@+&****&+@.......................#-****-#..........................................................................#+******+#...........................+-*****&+@......................+&*****+#...............",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................+++++++++++++++++++++++++@......................................................................#+++++++#........@++++++++++++++++++++++........................................................................................................................................................................",
+"................$$$$$$$$$$$$$$$$$$$$$$$$$$%&@...................................................................$$$$$$$$&........*$$$$$$$$$$$$$$$$$$$$$$$%*#....................................................................................................................................................................",
+"...............+$$$$$$$$$$$$$$$$$$$$$$$$$$$$$+.................................................................@$$$$$$$$+........%$$$$$$$$$$$$$$$$$$$$$$$$$$=@..................................................................................................................................................................",
+"...............&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$+................................................................+$$$$$$$$.........$$$$$$$$$$$$$$$$$$$$$$$$$$$$$+.................................................................................................................................................................",
+"...............*$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$+...............................................................&$$$$$$$%........+$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@.....................................................................................*$$$$$$$%..................................................................",
+"...............$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%...............................................................*$$$$$$$*........-$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$=.....................................................................................$$$$$$$$*..................................................................",
+"..............@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$-..............................................................$$$$$$$$-........*$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#....................................................................................$$$$$$$$-..................................................................",
+"..............+$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$*.............................................................#$$$$$$$$#........%$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$*...................................................................................+$$$$$$$$+..................................................................",
+"..............*$$$$$$$$+............+&$$$$$$$$$$$.............................................................+$$$$$$$$........@$$$$$$$$=............+=$$$$$$$$$%...................................................................................-$$$$$$$$...................................................................",
+"..............=$$$$$$$$#..............@%$$$$$$$$$.............................................................*$$$$$$$=........+$$$$$$$$*..............-$$$$$$$$$...................................................................................*$$$$$$$=...................................................................",
+"..............$$$$$$$$$................#$$$$$$$$$.............................................................=$$$$$$$*........&$$$$$$$$+...............%$$$$$$$$...................................................................................%$$$$$$$*...................................................................",
+".............#$$$$$$$$*.................=$$$$$$$%...............#++**-+#.........................@++**++......$$$$$$$$+........*$$$$$$$$#...............*$$$$$$$$..................@++&**++@............................#++**&++....................$$$$$$$$+...................................................................",
+".............-$$$$$$$$&.................*$$$$$$$*............+*$$$$$$$$$$*#....................-=$$$$$$$$&@..+$$$$$$$$@........$$$$$$$$$................*$$$$$$$*...............+*$$$$$$$$$$%&@.....................@-=$$$$$$$$$$=-............@+++&$$$$$$$$&+++#...............................................................",
+".............*$$$$$$$$+.................=$$$$$$$-.........@&$$$$$$$$$$$$$$$*@................-%$$$$$$$$$$$%@.-$$$$$$$$........#$$$$$$$$=................$$$$$$$$-.............-%$$$$$$$$$$$$$$$&..................@&$$$$$$$$$$$$$$$%+..........*$$$$$$$$$$$$$$$$*...............................................................",
+".............%$$$$$$$$@................@$$$$$$$$@........+%$$$$$$$$$$$$$$$$$%@.............@=$$$$$$$$$$$$$$%@*$$$$$$$*........+$$$$$$$$&...............-$$$$$$$$@...........#%$$$$$$$$$$$$$$$$$$%@...............-$$$$$$$$$$$$$$$$$$$*.........%$$$$$$$$$$$$$$$$-...............................................................",
+".............$$$$$$$$$.................&$$$$$$$*........*$$$$$$$$$$$$$$$$$$$$%@...........#%$$$$$$$$$$$$$$$$&%$$$$$$$&........*$$$$$$$$+..............@$$$$$$$$&...........-$$$$$$$$$$$$$$$$$$$$$%@............@*$$$$$$$$$$$$$$$$$$$$$*........$$$$$$$$$$$$$$$$$+...............................................................",
+"............+$$$$$$$$*................#$$$$$$$$#.......*$$$$$$$$$$$$$$$$$$$$$$=..........+$$$$$$$$$$$$$$$$$$$$$$$$$$$+........=$$$$$$$$@.............@%$$$$$$$%@..........*$$$$$$$$$$$$$$$$$$$$$$$=...........@%$$$$$$$$$$$$$$$$$$$$$$$-......+$$$$$$$$$$$$$$$$$................................................................",
+"............-$$$$$$$$&...............@%$$$$$$$&.......-$$$$$$$$$$$$$$$$$$$$$$$$+........@$$$$$$$$$$$$$$$$$$$$$$$$$$$$@........$$$$$$$$$............#&$$$$$$$$$#..........&$$$$$$$$$$$$$$$$$$$$$$$$$-..........%$$$$$$$$$$$$$$$$$$$$$$$$$@.....-$$$$$$$$$$$$$$$$=................................................................",
+"............*$$$$$$$$+..............-%$$$$$$$=.......#$$$$$$$$$%&+@@+*$$$$$$$$$=........%$$$$$$$$$%-#.+&$$$$$$$$$$$$%........+$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$+..........+$$$$$$$$$$&+@@+&$$$$$$$$$$=.........*$$$$$$$$$%-+.#+=$$$$$$$$$$-.....#+++=$$$$$$$$++++#................................................................",
+"............$$$$$$$$$-++++++++++++*%$$$$$$$$%@.......%$$$$$$$$&.......+$$$$$$$$$#......&$$$$$$$$$&......@%$$$$$$$$$$*........-$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%+..........@$$$$$$$$$=@......@%$$$$$$$$$@.......-$$$$$$$$$&.......+$$$$$$$$$=.........%$$$$$$$*.....................................................................",
+"...........@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$*@.......&$$$$$$$$+.........&$$$$$$$$-.....@$$$$$$$$$+........+$$$$$$$$$$-........*$$$$$$$$$$$$$$$$$$$$$$$$$$$$=@...........=$$$$$$$$*.........#$$$$$$$$$+......@$$$$$$$$$+.........&$$$$$$$$$.........$$$$$$$$-.....................................................................",
+"...........+$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$-........@$$$$$$$$*..........@$$$$$$$$*.....=$$$$$$$$-..........=$$$$$$$$$+........%$$$$$$$$$$$$$$$$$$$$$$$$$$$$*...........#$$$$$$$$*...........*$$$$$$$$*......&$$$$$$$$+...........$$$$$$$$$+.......+$$$$$$$$+.....................................................................",
+"...........&$$$$$$$$$$$$$$$$$$$$$$$$$$$$&@.........&$$$$$$$%............%$$$$$$$*....#$$$$$$$$=...........&$$$$$$$$$........@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$*..........=$$$$$$$%@...........+$$$$$$$$*.....@$$$$$$$$*............*$$$$$$$$+.......&$$$$$$$$......................................................................",
+"...........=$$$$$$$$$$$$$$$$$$$$$$$$$$$&@..........%$$$$$$$&............*$$$$$$$*....&$$$$$$$$@...........+$$$$$$$$=........+$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&........#$$$$$$$$-.............$$$$$$$$*.....&$$$$$$$$@............+$$$$$$$$+.......*$$$$$$$%......................................................................",
+"...........$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&........+$$$$$$$$@............*$$$$$$$*....$$$$$$$$*............+$$$$$$$$*........&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#.......&$$$$$$$%..............$$$$$$$$*.....%$$$$$$$&.............+$$$$$$$$+.......$$$$$$$$*......................................................................",
+"..........#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$*.......*$$$$$$$$$$$$$$$$$$$$$$$$$$$$$*...+$$$$$$$$#............+$$$$$$$$+........*$$$$$$$$&++++++++++++*$$$$$$$$$$=.......$$$$$$$$-..............$$$$$$$$*....+$$$$$$$$@.............+$$$$$$$$+......@$$$$$$$$-......................................................................",
+"..........+$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$+......$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$*...*$$$$$$$%.............+$$$$$$$$#........$$$$$$$$$..............@*$$$$$$$$$......+$$$$$$$$@..............$$$$$$$$+....*$$$$$$$=..............+$$$$$$$$.......+$$$$$$$$#......................................................................",
+"..........*$$$$$$$$+............+=$$$$$$$$$*.....+$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$+...$$$$$$$$&.............+$$$$$$$$........@$$$$$$$$=................%$$$$$$$$+.....&$$$$$$$%..............@$$$$$$$$+....%$$$$$$$&..............-$$$$$$$$.......&$$$$$$$$.......................................................................",
+"..........%$$$$$$$$@..............*$$$$$$$$*.....-$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#..#$$$$$$$$+.............*$$$$$$$*........+$$$$$$$$*................-$$$$$$$$+.....=$$$$$$$*..............+$$$$$$$$@...@$$$$$$$$+..............*$$$$$$$=.......*$$$$$$$=.......................................................................",
+"..........$$$$$$$$$...............@$$$$$$$$*.....*$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$...+$$$$$$$$#.............=$$$$$$$&........*$$$$$$$$+................+$$$$$$$$+.....$$$$$$$$&..............&$$$$$$$%....+$$$$$$$$#..............%$$$$$$$&.......$$$$$$$$*.......................................................................",
+".........+$$$$$$$$*................$$$$$$$$&.....=$$$$$$$$*********************&...-$$$$$$$$.............@$$$$$$$$+........=$$$$$$$$#................+$$$$$$$$+.....$$$$$$$$+..............=$$$$$$$*....+$$$$$$$$..............@$$$$$$$$+......@$$$$$$$$+.......................................................................",
+".........-$$$$$$$$&...............#$$$$$$$$+.....$$$$$$$$%.........................*$$$$$$$$.............-$$$$$$$$@........$$$$$$$$$.................*$$$$$$$$.....+$$$$$$$$+.............@$$$$$$$$+....*$$$$$$$$..............-$$$$$$$$.......+$$$$$$$$@.......................................................................",
+".........*$$$$$$$$+...............-$$$$$$$$+.....$$$$$$$$*.........................*$$$$$$$$.............=$$$$$$$%........#$$$$$$$$=................@$$$$$$$$=.....+$$$$$$$$+.............&$$$$$$$$.....*$$$$$$$$..............%$$$$$$$*.......&$$$$$$$$........................................................................",
+".........$$$$$$$$$................*$$$$$$$$......$$$$$$$$*.........................*$$$$$$$$............#$$$$$$$$*........-$$$$$$$$*................&$$$$$$$$-.....+$$$$$$$$+............@%$$$$$$$&.....*$$$$$$$$.............+$$$$$$$$#.......*$$$$$$$*........................................................................",
+"........@$$$$$$$$%................$$$$$$$$$......$$$$$$$$*.........................*$$$$$$$$+...........%$$$$$$$$-........*$$$$$$$$+...............+$$$$$$$$$@.....+$$$$$$$$*............&$$$$$$$$@.....*$$$$$$$$+............%$$$$$$$=........$$$$$$$$&........................................................................",
+"........+$$$$$$$$*...............#$$$$$$$$*......%$$$$$$$$...........@********@....&$$$$$$$$&..........*$$$$$$$$$+........%$$$$$$$$#..............+$$$$$$$$$&......+$$$$$$$$%...........+$$$$$$$$*......*$$$$$$$$&...........*$$$$$$$$+.......#$$$$$$$$+........................................................................",
+"........&$$$$$$$$-...............&$$$$$$$$&......*$$$$$$$$-..........*$$$$$$$=.....+$$$$$$$$%@........+$$$$$$$$$$.........$$$$$$$$$............@+=$$$$$$$$$%@.......$$$$$$$$$-.........+$$$$$$$$$@......+$$$$$$$$$@.........*$$$$$$$$=........+$$$$$$$$.........................................................................",
+"........=$$$$$$$$+...............*$$$$$$$$+......+$$$$$$$$$+.......@*$$$$$$$$@.....#$$$$$$$$$*.......*$$$$$$$$$$=........+$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$+........%$$$$$$$$$+.......-$$$$$$$$$-.......#$$$$$$$$$%@......@*$$$$$$$$$@........*$$$$$$$=.........................................................................",
+"........$$$$$$$$$................$$$$$$$$$#.......$$$$$$$$$$&#...#&$$$$$$$$$-.......%$$$$$$$$$=#..@-%$$$$$$$$$$$*........&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&.........&$$$$$$$$$$&#...+=$$$$$$$$$=.........%$$$$$$$$$%-@..@-%$$$$$$$$$-.........=$$$$$$$%@........................................................................",
+".......#$$$$$$$$=...............@$$$$$$$$$........&$$$$$$$$$$$$$$$$$$$$$$$$*........&$$$$$$$$$$$$$$$$$$$$$$$$$$$+........*$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$*..........@$$$$$$$$$$$$$$$$$$$$$$$$$%@.........-$$$$$$$$$$$$$$$$$$$$$$$$$*..........$$$$$$$$$$***.....................................................................",
+".......+$$$$$$$$*...............+$$$$$$$$$.........%$$$$$$$$$$$$$$$$$$$$$$*.........@$$$$$$$$$$$$$$$$$$$$$$$$$$$#........$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$-............&$$$$$$$$$$$$$$$$$$$$$$$%@...........%$$$$$$$$$$$$$$$$$$$$$$$*...........$$$$$$$$$$$$%.....................................................................",
+".......*$$$$$$$$+...............+$$$$$$$$$@........@$$$$$$$$$$$$$$$$$$$$$*...........-$$$$$$$$$$$$$$$$$*$$$$$$$$........@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%#..............*$$$$$$$$$$$$$$$$$$$$$=@............@%$$$$$$$$$$$$$$$$$$$$$&............$$$$$$$$$$$$*.....................................................................",
+".......%$$$$$$$$#...............+$$$$$$$$$*.........#%$$$$$$$$$$$$$$$$$$+.............*$$$$$$$$$$$$$$$+*$$$$$$$*........+$$$$$$$$$$$$$$$$$$$$$$$$$$$%-................@=$$$$$$$$$$$$$$$$$$$&...............+%$$$$$$$$$$$$$$$$$$%+.............*$$$$$$$$$$$-.....................................................................",
+".......$$$$$$$$$................@$$$$$$$$$=..........@=$$$$$$$$$$$$$$$&@...............*$$$$$$$$$$$$%@.%$$$$$$$&........&$$$$$$$$$$$$$$$$$$$$$$$$=&#....................&$$$$$$$$$$$$$$$$=#.................@=$$$$$$$$$$$$$$$$&@..............#$$$$$$$$$$$+.....................................................................",
+"......@+++++++++.................+++++++++#............#=$$$$$$$$$$%&@..................+%$$$$$$$$%-...++++++++@........#++++++++++++++++++++++@.........................@&%$$$$$$$$$$%&#.....................#*$$$$$$$$$$$=-@.................+%$$$$$$$$$......................................................................",
+".........................................................@+&****&+@.......................#-****-#..........................................................................#+******+#...........................+-*****&+@......................+&*****+#......................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+".................................................................+++++++++++++++++++++++++@......................................................................#+++++++#........@++++++++++++++++++++++.......................................................................................................................",
+".................................................................$$$$$$$$$$$$$$$$$$$$$$$$$$%&@...................................................................$$$$$$$$&........*$$$$$$$$$$$$$$$$$$$$$$$%*#...................................................................................................................",
+"................................................................+$$$$$$$$$$$$$$$$$$$$$$$$$$$$$+.................................................................@$$$$$$$$+........%$$$$$$$$$$$$$$$$$$$$$$$$$$=@.................................................................................................................",
+"................................................................&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$+................................................................+$$$$$$$$.........$$$$$$$$$$$$$$$$$$$$$$$$$$$$$+................................................................................................................",
+"................................................................*$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$+...............................................................&$$$$$$$%........+$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@.....................................................................................*$$$$$$$%.................",
+"................................................................$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%...............................................................*$$$$$$$*........-$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$=.....................................................................................$$$$$$$$*.................",
+"...............................................................@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$-..............................................................$$$$$$$$-........*$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#....................................................................................$$$$$$$$-.................",
+"...............................................................+$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$*.............................................................#$$$$$$$$#........%$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$*...................................................................................+$$$$$$$$+.................",
+"...............................................................*$$$$$$$$+............+&$$$$$$$$$$$.............................................................+$$$$$$$$........@$$$$$$$$=............+=$$$$$$$$$%...................................................................................-$$$$$$$$..................",
+"...............................................................=$$$$$$$$#..............@%$$$$$$$$$.............................................................*$$$$$$$=........+$$$$$$$$*..............-$$$$$$$$$...................................................................................*$$$$$$$=..................",
+"...............................................................$$$$$$$$$................#$$$$$$$$$.............................................................=$$$$$$$*........&$$$$$$$$+...............%$$$$$$$$...................................................................................%$$$$$$$*..................",
+"..............................................................#$$$$$$$$*.................=$$$$$$$%...............#++**-+#.........................@++**++......$$$$$$$$+........*$$$$$$$$#...............*$$$$$$$$..................@++&**++@............................#++**&++....................$$$$$$$$+..................",
+"..............................................................-$$$$$$$$&.................*$$$$$$$*............+*$$$$$$$$$$*#....................-=$$$$$$$$&@..+$$$$$$$$@........$$$$$$$$$................*$$$$$$$*...............+*$$$$$$$$$$%&@.....................@-=$$$$$$$$$$=-............@+++&$$$$$$$$&+++#..............",
+"..............................................................*$$$$$$$$+.................=$$$$$$$-.........@&$$$$$$$$$$$$$$$*@................-%$$$$$$$$$$$%@.-$$$$$$$$........#$$$$$$$$=................$$$$$$$$-.............-%$$$$$$$$$$$$$$$&..................@&$$$$$$$$$$$$$$$%+..........*$$$$$$$$$$$$$$$$*..............",
+"..............................................................%$$$$$$$$@................@$$$$$$$$@........+%$$$$$$$$$$$$$$$$$%@.............@=$$$$$$$$$$$$$$%@*$$$$$$$*........+$$$$$$$$&...............-$$$$$$$$@...........#%$$$$$$$$$$$$$$$$$$%@...............-$$$$$$$$$$$$$$$$$$$*.........%$$$$$$$$$$$$$$$$-..............",
+"..............................................................$$$$$$$$$.................&$$$$$$$*........*$$$$$$$$$$$$$$$$$$$$%@...........#%$$$$$$$$$$$$$$$$&%$$$$$$$&........*$$$$$$$$+..............@$$$$$$$$&...........-$$$$$$$$$$$$$$$$$$$$$%@............@*$$$$$$$$$$$$$$$$$$$$$*........$$$$$$$$$$$$$$$$$+..............",
+".............................................................+$$$$$$$$*................#$$$$$$$$#.......*$$$$$$$$$$$$$$$$$$$$$$=..........+$$$$$$$$$$$$$$$$$$$$$$$$$$$+........=$$$$$$$$@.............@%$$$$$$$%@..........*$$$$$$$$$$$$$$$$$$$$$$$=...........@%$$$$$$$$$$$$$$$$$$$$$$$-......+$$$$$$$$$$$$$$$$$...............",
+".............................................................-$$$$$$$$&...............@%$$$$$$$&.......-$$$$$$$$$$$$$$$$$$$$$$$$+........@$$$$$$$$$$$$$$$$$$$$$$$$$$$$@........$$$$$$$$$............#&$$$$$$$$$#..........&$$$$$$$$$$$$$$$$$$$$$$$$$-..........%$$$$$$$$$$$$$$$$$$$$$$$$$@.....-$$$$$$$$$$$$$$$$=...............",
+".............................................................*$$$$$$$$+..............-%$$$$$$$=.......#$$$$$$$$$%&+@@+*$$$$$$$$$=........%$$$$$$$$$%-#.+&$$$$$$$$$$$$%........+$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$+..........+$$$$$$$$$$&+@@+&$$$$$$$$$$=.........*$$$$$$$$$%-+.#+=$$$$$$$$$$-.....#+++=$$$$$$$$++++#...............",
+".............................................................$$$$$$$$$-++++++++++++*%$$$$$$$$%@.......%$$$$$$$$&.......+$$$$$$$$$#......&$$$$$$$$$&......@%$$$$$$$$$$*........-$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%+..........@$$$$$$$$$=@......@%$$$$$$$$$@.......-$$$$$$$$$&.......+$$$$$$$$$=.........%$$$$$$$*....................",
+"............................................................@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$*@.......&$$$$$$$$+.........&$$$$$$$$-.....@$$$$$$$$$+........+$$$$$$$$$$-........*$$$$$$$$$$$$$$$$$$$$$$$$$$$$=@...........=$$$$$$$$*.........#$$$$$$$$$+......@$$$$$$$$$+.........&$$$$$$$$$.........$$$$$$$$-....................",
+"............................................................+$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$-........@$$$$$$$$*..........@$$$$$$$$*.....=$$$$$$$$-..........=$$$$$$$$$+........%$$$$$$$$$$$$$$$$$$$$$$$$$$$$*...........#$$$$$$$$*...........*$$$$$$$$*......&$$$$$$$$+...........$$$$$$$$$+.......+$$$$$$$$+....................",
+"............................................................&$$$$$$$$$$$$$$$$$$$$$$$$$$$$&@.........&$$$$$$$%............%$$$$$$$*....#$$$$$$$$=...........&$$$$$$$$$........@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$*..........=$$$$$$$%@...........+$$$$$$$$*.....@$$$$$$$$*............*$$$$$$$$+.......&$$$$$$$$.....................",
+"............................................................=$$$$$$$$$$$$$$$$$$$$$$$$$$$&@..........%$$$$$$$&............*$$$$$$$*....&$$$$$$$$@...........+$$$$$$$$=........+$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&........#$$$$$$$$-.............$$$$$$$$*.....&$$$$$$$$@............+$$$$$$$$+.......*$$$$$$$%.....................",
+"............................................................$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&........+$$$$$$$$@............*$$$$$$$*....$$$$$$$$*............+$$$$$$$$*........&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#.......&$$$$$$$%..............$$$$$$$$*.....%$$$$$$$&.............+$$$$$$$$+.......$$$$$$$$*.....................",
+"...........................................................#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$*.......*$$$$$$$$$$$$$$$$$$$$$$$$$$$$$*...+$$$$$$$$#............+$$$$$$$$+........*$$$$$$$$&++++++++++++*$$$$$$$$$$=.......$$$$$$$$-..............$$$$$$$$*....+$$$$$$$$@.............+$$$$$$$$+......@$$$$$$$$-.....................",
+"...........................................................+$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$+......$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$*...*$$$$$$$%.............+$$$$$$$$#........$$$$$$$$$..............@*$$$$$$$$$......+$$$$$$$$@..............$$$$$$$$+....*$$$$$$$=..............+$$$$$$$$.......+$$$$$$$$#.....................",
+"...........................................................*$$$$$$$$+............+=$$$$$$$$$*.....+$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$+...$$$$$$$$&.............+$$$$$$$$........@$$$$$$$$=................%$$$$$$$$+.....&$$$$$$$%..............@$$$$$$$$+....%$$$$$$$&..............-$$$$$$$$.......&$$$$$$$$......................",
+"...........................................................%$$$$$$$$@..............*$$$$$$$$*.....-$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#..#$$$$$$$$+.............*$$$$$$$*........+$$$$$$$$*................-$$$$$$$$+.....=$$$$$$$*..............+$$$$$$$$@...@$$$$$$$$+..............*$$$$$$$=.......*$$$$$$$=......................",
+"...........................................................$$$$$$$$$...............@$$$$$$$$*.....*$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$...+$$$$$$$$#.............=$$$$$$$&........*$$$$$$$$+................+$$$$$$$$+.....$$$$$$$$&..............&$$$$$$$%....+$$$$$$$$#..............%$$$$$$$&.......$$$$$$$$*......................",
+"..........................................................+$$$$$$$$*................$$$$$$$$&.....=$$$$$$$$*********************&...-$$$$$$$$.............@$$$$$$$$+........=$$$$$$$$#................+$$$$$$$$+.....$$$$$$$$+..............=$$$$$$$*....+$$$$$$$$..............@$$$$$$$$+......@$$$$$$$$+......................",
+"..........................................................-$$$$$$$$&...............#$$$$$$$$+.....$$$$$$$$%.........................*$$$$$$$$.............-$$$$$$$$@........$$$$$$$$$.................*$$$$$$$$.....+$$$$$$$$+.............@$$$$$$$$+....*$$$$$$$$..............-$$$$$$$$.......+$$$$$$$$@......................",
+"..........................................................*$$$$$$$$+...............-$$$$$$$$+.....$$$$$$$$*.........................*$$$$$$$$.............=$$$$$$$%........#$$$$$$$$=................@$$$$$$$$=.....+$$$$$$$$+.............&$$$$$$$$.....*$$$$$$$$..............%$$$$$$$*.......&$$$$$$$$.......................",
+"..........................................................$$$$$$$$$................*$$$$$$$$......$$$$$$$$*.........................*$$$$$$$$............#$$$$$$$$*........-$$$$$$$$*................&$$$$$$$$-.....+$$$$$$$$+............@%$$$$$$$&.....*$$$$$$$$.............+$$$$$$$$#.......*$$$$$$$*.......................",
+".........................................................@$$$$$$$$%................$$$$$$$$$......$$$$$$$$*.........................*$$$$$$$$+...........%$$$$$$$$-........*$$$$$$$$+...............+$$$$$$$$$@.....+$$$$$$$$*............&$$$$$$$$@.....*$$$$$$$$+............%$$$$$$$=........$$$$$$$$&.......................",
+".........................................................+$$$$$$$$*...............#$$$$$$$$*......%$$$$$$$$...........@********@....&$$$$$$$$&..........*$$$$$$$$$+........%$$$$$$$$#..............+$$$$$$$$$&......+$$$$$$$$%...........+$$$$$$$$*......*$$$$$$$$&...........*$$$$$$$$+.......#$$$$$$$$+.......................",
+".........................................................&$$$$$$$$-...............&$$$$$$$$&......*$$$$$$$$-..........*$$$$$$$=.....+$$$$$$$$%@........+$$$$$$$$$$.........$$$$$$$$$............@+=$$$$$$$$$%@.......$$$$$$$$$-.........+$$$$$$$$$@......+$$$$$$$$$@.........*$$$$$$$$=........+$$$$$$$$........................",
+".........................................................=$$$$$$$$+...............*$$$$$$$$+......+$$$$$$$$$+.......@*$$$$$$$$@.....#$$$$$$$$$*.......*$$$$$$$$$$=........+$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$+........%$$$$$$$$$+.......-$$$$$$$$$-.......#$$$$$$$$$%@......@*$$$$$$$$$@........*$$$$$$$=........................",
+".........................................................$$$$$$$$$................$$$$$$$$$#.......$$$$$$$$$$&#...#&$$$$$$$$$-.......%$$$$$$$$$=#..@-%$$$$$$$$$$$*........&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&.........&$$$$$$$$$$&#...+=$$$$$$$$$=.........%$$$$$$$$$%-@..@-%$$$$$$$$$-.........=$$$$$$$%@.......................",
+"........................................................#$$$$$$$$=...............@$$$$$$$$$........&$$$$$$$$$$$$$$$$$$$$$$$$*........&$$$$$$$$$$$$$$$$$$$$$$$$$$$+........*$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$*..........@$$$$$$$$$$$$$$$$$$$$$$$$$%@.........-$$$$$$$$$$$$$$$$$$$$$$$$$*..........$$$$$$$$$$***....................",
+"........................................................+$$$$$$$$*...............+$$$$$$$$$.........%$$$$$$$$$$$$$$$$$$$$$$*.........@$$$$$$$$$$$$$$$$$$$$$$$$$$$#........$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$-............&$$$$$$$$$$$$$$$$$$$$$$$%@...........%$$$$$$$$$$$$$$$$$$$$$$$*...........$$$$$$$$$$$$%....................",
+"........................................................*$$$$$$$$+...............+$$$$$$$$$@........@$$$$$$$$$$$$$$$$$$$$$*...........-$$$$$$$$$$$$$$$$$*$$$$$$$$........@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%#..............*$$$$$$$$$$$$$$$$$$$$$=@............@%$$$$$$$$$$$$$$$$$$$$$&............$$$$$$$$$$$$*....................",
+"........................................................%$$$$$$$$#...............+$$$$$$$$$*.........#%$$$$$$$$$$$$$$$$$$+.............*$$$$$$$$$$$$$$$+*$$$$$$$*........+$$$$$$$$$$$$$$$$$$$$$$$$$$$%-................@=$$$$$$$$$$$$$$$$$$$&...............+%$$$$$$$$$$$$$$$$$$%+.............*$$$$$$$$$$$-....................",
+"........................................................$$$$$$$$$................@$$$$$$$$$=..........@=$$$$$$$$$$$$$$$&@...............*$$$$$$$$$$$$%@.%$$$$$$$&........&$$$$$$$$$$$$$$$$$$$$$$$$=&#....................&$$$$$$$$$$$$$$$$=#.................@=$$$$$$$$$$$$$$$$&@..............#$$$$$$$$$$$+....................",
+".......................................................@+++++++++.................+++++++++#............#=$$$$$$$$$$%&@..................+%$$$$$$$$%-...++++++++@........#++++++++++++++++++++++@.........................@&%$$$$$$$$$$%&#.....................#*$$$$$$$$$$$=-@.................+%$$$$$$$$$.....................",
+"..........................................................................................................@+&****&+@.......................#-****-#..........................................................................#+******+#...........................+-*****&+@......................+&*****+#.....................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................"};
diff --git a/ecos/packages/hal/arm/sa11x0/assabet/current/misc/redboot_RAM.ecm b/ecos/packages/hal/arm/sa11x0/assabet/current/misc/redboot_RAM.ecm
new file mode 100644
index 0000000..8920420
--- /dev/null
+++ b/ecos/packages/hal/arm/sa11x0/assabet/current/misc/redboot_RAM.ecm
@@ -0,0 +1,128 @@
+cdl_savefile_version 1;
+cdl_savefile_command cdl_savefile_version {};
+cdl_savefile_command cdl_savefile_command {};
+cdl_savefile_command cdl_configuration { description hardware template package };
+cdl_savefile_command cdl_package { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_component { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_option { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_interface { value_source user_value wizard_value inferred_value };
+
+cdl_configuration eCos {
+ description "" ;
+ hardware assabet ;
+ template redboot ;
+ package -hardware CYGPKG_HAL_ARM current ;
+ package -hardware CYGPKG_HAL_ARM_SA11X0 current ;
+ package -hardware CYGPKG_HAL_ARM_SA11X0_ASSABET current ;
+ package -hardware CYGPKG_IO_SERIAL_ARM_SA11X0 current ;
+ package -hardware CYGPKG_DEVS_PCMCIA_ASSABET current ;
+ package -hardware CYGPKG_DEVS_FLASH_STRATA current ;
+ package -hardware CYGPKG_DEVS_FLASH_ASSABET current ;
+ package -hardware CYGPKG_IO_USB current ;
+ package -hardware CYGPKG_IO_USB_SLAVE current ;
+ package -hardware CYGPKG_DEVS_USB_SA11X0 current ;
+ package -hardware CYGPKG_DEVICES_WATCHDOG_ARM_SA11X0 current ;
+ package -hardware CYGPKG_DEVS_ETH_CF current ;
+ package -hardware CYGPKG_DEVS_ETH_NS_DP83902A current ;
+ package -template CYGPKG_HAL current ;
+ package -template CYGPKG_INFRA current ;
+ package -template CYGPKG_REDBOOT current ;
+ package -template CYGPKG_ISOINFRA current ;
+ package -template CYGPKG_LIBC_STRING current ;
+ package CYGPKG_NS_DNS current ;
+ package CYGPKG_IO_PCMCIA current ;
+ package CYGPKG_IO_FLASH current ;
+ package CYGPKG_IO_ETH_DRIVERS current ;
+ package CYGPKG_MEMALLOC current ;
+ package CYGPKG_COMPRESS_ZLIB current ;
+};
+
+cdl_option CYGBLD_BUILD_GDB_STUBS {
+ user_value 0
+};
+
+cdl_option CYGFUN_LIBC_STRING_BSD_FUNCS {
+ inferred_value 0
+};
+
+cdl_option CYGNUM_HAL_COMMON_INTERRUPTS_STACK_SIZE {
+ user_value 4096
+};
+
+cdl_option CYGDBG_HAL_COMMON_INTERRUPTS_SAVE_MINIMUM_CONTEXT {
+ user_value 0
+};
+
+cdl_option CYGDBG_HAL_COMMON_CONTEXT_SAVE_MINIMUM {
+ inferred_value 0
+};
+
+cdl_option CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS {
+ inferred_value 1
+};
+
+cdl_option CYGDBG_HAL_DEBUG_GDB_BREAK_SUPPORT {
+ inferred_value 1
+};
+
+cdl_option CYGDBG_HAL_DEBUG_GDB_CTRLC_SUPPORT {
+ inferred_value 0
+};
+
+cdl_option CYGSEM_HAL_USE_ROM_MONITOR {
+ inferred_value 0 0
+};
+
+cdl_component CYG_HAL_STARTUP {
+ user_value RAM
+};
+
+cdl_component CYGBLD_BUILD_REDBOOT {
+ user_value 1
+};
+
+cdl_component CYGPKG_REDBOOT_NETWORKING {
+ user_value 1
+};
+
+cdl_component CYGSEM_REDBOOT_FLASH_CONFIG {
+ user_value 1
+};
+
+cdl_component CYGSEM_REDBOOT_BSP_SYSCALLS {
+ inferred_value 1
+};
+
+cdl_option CYGHWR_REDBOOT_ARM_LINUX_EXEC_ADDRESS_DEFAULT {
+ inferred_value 0xC0008000
+};
+
+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_BSD_FUNCS_HEADER {
+ inferred_value 1 <cyg/libc/string/bsdstring.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_DNS_HEADER {
+ inferred_value 1 <cyg/ns/dns/dns.h>
+};
+
+cdl_option CYGPKG_NS_DNS_BUILD {
+ inferred_value 0
+};
+
+
diff --git a/ecos/packages/hal/arm/sa11x0/assabet/current/misc/redboot_ROM.ecm b/ecos/packages/hal/arm/sa11x0/assabet/current/misc/redboot_ROM.ecm
new file mode 100644
index 0000000..71a5bf6
--- /dev/null
+++ b/ecos/packages/hal/arm/sa11x0/assabet/current/misc/redboot_ROM.ecm
@@ -0,0 +1,128 @@
+cdl_savefile_version 1;
+cdl_savefile_command cdl_savefile_version {};
+cdl_savefile_command cdl_savefile_command {};
+cdl_savefile_command cdl_configuration { description hardware template package };
+cdl_savefile_command cdl_package { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_component { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_option { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_interface { value_source user_value wizard_value inferred_value };
+
+cdl_configuration eCos {
+ description "" ;
+ hardware assabet ;
+ template redboot ;
+ package -hardware CYGPKG_HAL_ARM current ;
+ package -hardware CYGPKG_HAL_ARM_SA11X0 current ;
+ package -hardware CYGPKG_HAL_ARM_SA11X0_ASSABET current ;
+ package -hardware CYGPKG_IO_SERIAL_ARM_SA11X0 current ;
+ package -hardware CYGPKG_DEVS_PCMCIA_ASSABET current ;
+ package -hardware CYGPKG_DEVS_FLASH_STRATA current ;
+ package -hardware CYGPKG_DEVS_FLASH_ASSABET current ;
+ package -hardware CYGPKG_IO_USB current ;
+ package -hardware CYGPKG_IO_USB_SLAVE current ;
+ package -hardware CYGPKG_DEVS_USB_SA11X0 current ;
+ package -hardware CYGPKG_DEVICES_WATCHDOG_ARM_SA11X0 current ;
+ package -hardware CYGPKG_DEVS_ETH_CF current ;
+ package -hardware CYGPKG_DEVS_ETH_NS_DP83902A current ;
+ package -template CYGPKG_HAL current ;
+ package -template CYGPKG_INFRA current ;
+ package -template CYGPKG_REDBOOT current ;
+ package -template CYGPKG_ISOINFRA current ;
+ package -template CYGPKG_LIBC_STRING current ;
+ package CYGPKG_NS_DNS current ;
+ package CYGPKG_IO_PCMCIA current ;
+ package CYGPKG_IO_FLASH current ;
+ package CYGPKG_IO_ETH_DRIVERS current ;
+ package CYGPKG_MEMALLOC current ;
+ package CYGPKG_COMPRESS_ZLIB current ;
+};
+
+cdl_option CYGBLD_BUILD_GDB_STUBS {
+ user_value 0
+};
+
+cdl_option CYGFUN_LIBC_STRING_BSD_FUNCS {
+ inferred_value 0
+};
+
+cdl_option CYGNUM_HAL_COMMON_INTERRUPTS_STACK_SIZE {
+ user_value 4096
+};
+
+cdl_option CYGDBG_HAL_COMMON_INTERRUPTS_SAVE_MINIMUM_CONTEXT {
+ user_value 0
+};
+
+cdl_option CYGDBG_HAL_COMMON_CONTEXT_SAVE_MINIMUM {
+ inferred_value 0
+};
+
+cdl_option CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS {
+ inferred_value 1
+};
+
+cdl_option CYGDBG_HAL_DEBUG_GDB_BREAK_SUPPORT {
+ inferred_value 1
+};
+
+cdl_option CYGDBG_HAL_DEBUG_GDB_CTRLC_SUPPORT {
+ inferred_value 0
+};
+
+cdl_option CYGSEM_HAL_ROM_MONITOR {
+ user_value 1
+};
+
+cdl_option CYGSEM_HAL_USE_ROM_MONITOR {
+ inferred_value 0 0
+};
+
+cdl_component CYG_HAL_STARTUP {
+ user_value ROM
+};
+
+cdl_component CYGBLD_BUILD_REDBOOT {
+ user_value 1
+};
+
+cdl_component CYGPKG_REDBOOT_NETWORKING {
+ user_value 1
+};
+
+cdl_component CYGSEM_REDBOOT_FLASH_CONFIG {
+ user_value 1
+};
+
+cdl_option CYGHWR_REDBOOT_ARM_LINUX_EXEC_ADDRESS_DEFAULT {
+ inferred_value 0xC0008000
+};
+
+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_BSD_FUNCS_HEADER {
+ inferred_value 1 <cyg/libc/string/bsdstring.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_DNS_HEADER {
+ inferred_value 1 <cyg/ns/dns/dns.h>
+};
+
+cdl_option CYGPKG_NS_DNS_BUILD {
+ inferred_value 0
+};
+
+
diff --git a/ecos/packages/hal/arm/sa11x0/assabet/current/misc/redhat.xpm b/ecos/packages/hal/arm/sa11x0/assabet/current/misc/redhat.xpm
new file mode 100644
index 0000000..6f09fec
--- /dev/null
+++ b/ecos/packages/hal/arm/sa11x0/assabet/current/misc/redhat.xpm
@@ -0,0 +1,254 @@
+/* XPM */
+static char * redhat_xpm[] = {
+"320 240 11 1",
+" c None",
+". c #FFFFFF",
+"+ c #FFAAAA",
+"@ c #FFE3E3",
+"# c #FFC7C7",
+"$ c #FF0000",
+"% c #FF1D1D",
+"& c #FF7272",
+"* c #FF3939",
+"= c #FF5555",
+"- c #FF8E8E",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"......................+++++++++++++++++++++++++@......................................................................#+++++++#........................#++++++++@................@++++++++#.....................................................................................................................................",
+"......................$$$$$$$$$$$$$$$$$$$$$$$$$$%&@...................................................................$$$$$$$$&........................*$$$$$$$$#................&$$$$$$$$&.....................................................................................................................................",
+".....................+$$$$$$$$$$$$$$$$$$$$$$$$$$$$$+.................................................................@$$$$$$$$+........................$$$$$$$$$.................=$$$$$$$$+.....................................................................................................................................",
+".....................&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$+................................................................+$$$$$$$$........................#$$$$$$$$*.................$$$$$$$$$@.....................................................................................................................................",
+".....................=$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$+...............................................................&$$$$$$$%........................-$$$$$$$$=................@$$$$$$$$$..........................................$$$$$$$$&...................................................................................",
+".....................$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%...............................................................=$$$$$$$=........................=$$$$$$$$+................+$$$$$$$$=.........................................+$$$$$$$$+...................................................................................",
+"....................@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$-..............................................................$$$$$$$$-........................%$$$$$$$$@................=$$$$$$$$&.........................................+$$$$$$$$@...................................................................................",
+"....................+$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$=.............................................................#$$$$$$$$#........................$$$$$$$$$.................*$$$$$$$$+.........................................=$$$$$$$$....................................................................................",
+"....................=$$$$$$$$+............+&$$$$$$$$$$$.............................................................+$$$$$$$$........................+$$$$$$$$=.................$$$$$$$$$..........................................*$$$$$$$=....................................................................................",
+"....................*$$$$$$$$#..............@%$$$$$$$$$.............................................................=$$$$$$$*........................&$$$$$$$$&................#$$$$$$$$%..........................................$$$$$$$$-....................................................................................",
+"....................$$$$$$$$$................#$$$$$$$$$.............................................................*$$$$$$$=........................=$$$$$$$$+................-$$$$$$$$=.........................................#$$$$$$$$+....................................................................................",
+"...................#$$$$$$$$=.................*$$$$$$$%...............#++==-+#.........................@++==++......$$$$$$$$+........................$$$$$$$$$.................=$$$$$$$$-..............@++-===-++.................+$$$$$$$$.....................................................................................",
+"...................-$$$$$$$$&.................=$$$$$$$=............+=$$$$$$$$$$=#....................-*$$$$$$$$&@..+$$$$$$$$@.......................@$$$$$$$$%.................%$$$$$$$$#...........+=$$$$$$$$$$$$*-..........#+++*$$$$$$$$++++@................................................................................",
+"...................=$$$$$$$$+.................*$$$$$$$-.........@&$$$$$$$$$$$$$$$=@................-%$$$$$$$$$$$%@.-$$$$$$$$........................+$$$$$$$$=.................$$$$$$$$$..........-%$$$$$$$$$$$$$$$$%+........$$$$$$$$$$$$$$$$$+................................................................................",
+"...................%$$$$$$$$@................@$$$$$$$$@........+%$$$$$$$$$$$$$$$$$%@.............@*$$$$$$$$$$$$$$%@=$$$$$$$=........................=$$$$$$$$-................+$$$$$$$$*........@*$$$$$$$$$$$$$$$$$$$$+......#$$$$$$$$$$$$$$$$$@................................................................................",
+"...................$$$$$$$$$.................&$$$$$$$=........=$$$$$$$$$$$$$$$$$$$$%@...........#%$$$$$$$$$$$$$$$$&%$$$$$$$&........................*$$$$$$$$#................&$$$$$$$$=.......@%$$$$$$$$$$$$$$$$$$$$$$@.....+$$$$$$$$$$$$$$$$$.................................................................................",
+"..................+$$$$$$$$=................#$$$$$$$$#.......=$$$$$$$$$$$$$$$$$$$$$$*..........+$$$$$$$$$$$$$$$$$$$$$$$$$$$+........................$$$$$$$$$.................=$$$$$$$$+.......%$$$$$$$$$$$$$$$$$$$$$$$&.....=$$$$$$$$$$$$$$$$=.................................................................................",
+"..................-$$$$$$$$&...............@%$$$$$$$&.......-$$$$$$$$$$$$$$$$$$$$$$$$+........@$$$$$$$$$$$$$$$$$$$$$$$$$$$$@.......................#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@......&$$$$$$$$$$$$$$$$$$$$$$$$%.....*$$$$$$$$$$$$$$$$-.................................................................................",
+"..................=$$$$$$$$+..............-%$$$$$$$*.......#$$$$$$$$$%&+@@+=$$$$$$$$$*........%$$$$$$$$$%-#.+&$$$$$$$$$$$$%........................-$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$......@$$$$$$$$$*++..#+*$$$$$$$$$.....++++$$$$$$$$*++++@.................................................................................",
+"..................$$$$$$$$$-++++++++++++=%$$$$$$$$%@.......%$$$$$$$$&.......+$$$$$$$$$#......&$$$$$$$$$&......@%$$$$$$$$$$=........................=$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$=......&$$$$$$$$+........%$$$$$$$$........#$$$$$$$$+......................................................................................",
+".................@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$=@.......&$$$$$$$$+.........&$$$$$$$$-.....@$$$$$$$$$+........+$$$$$$$$$$-........................%$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&......%$$$$$$$+.........=$$$$$$$*........+$$$$$$$$@......................................................................................",
+".................+$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$-........@$$$$$$$$=..........@$$$$$$$$=.....*$$$$$$$$-..........*$$$$$$$$$+........................$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$+.....#$$$$$$$*..........*$$$$$$$=........=$$$$$$$$.......................................................................................",
+".................&$$$$$$$$$$$$$$$$$$$$$$$$$$$$&@.........&$$$$$$$%............%$$$$$$$=....#$$$$$$$$*...........&$$$$$$$$$........................+$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$......#=======+.........@$$$$$$$$+........%$$$$$$$=.......................................................................................",
+".................*$$$$$$$$$$$$$$$$$$$$$$$$$$$&@..........%$$$$$$$&............=$$$$$$$=....&$$$$$$$$@...........+$$$$$$$$*........................-$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%.......................@%$$$$$$$$#........$$$$$$$$&.......................................................................................",
+".................$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&........+$$$$$$$$@............=$$$$$$$=....$$$$$$$$=............+$$$$$$$$=........................=$$$$$$$$&++++++++++++++++&$$$$$$$$=....................++=$$$$$$$$$$........+$$$$$$$$+.......................................................................................",
+"................#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$=.......=$$$$$$$$$$$$$$$$$$$$$$$$$$$$$=...+$$$$$$$$#............+$$$$$$$$+........................$$$$$$$$$.................=$$$$$$$$-.............@+-=*$$$$$$$$$$$$$$*........-$$$$$$$$@.......................................................................................",
+"................+$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$+......$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$=...=$$$$$$$%.............+$$$$$$$$#.......................@$$$$$$$$*.................%$$$$$$$$#..........#=%$$$$$$$$$$$$$$$$$$$=........=$$$$$$$%........................................................................................",
+"................=$$$$$$$$+............+*$$$$$$$$$=.....+$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$+...$$$$$$$$&.............+$$$$$$$$........................+$$$$$$$$=.................$$$$$$$$$.........+%$$$$$$$$$$$$$$$$$$$$$$+........%$$$$$$$=........................................................................................",
+"................%$$$$$$$$@..............=$$$$$$$$=.....-$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#..#$$$$$$$$+.............=$$$$$$$=........................&$$$$$$$$+................+$$$$$$$$*.......@=$$$$$$$$$$$$$$$$$$$$$$$$@........$$$$$$$$-........................................................................................",
+"................$$$$$$$$$...............@$$$$$$$$=.....=$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$...+$$$$$$$$#.............*$$$$$$$&........................*$$$$$$$$#................-$$$$$$$$=......@%$$$$$$$$$$$$$$*&&$$$$$$$$........+$$$$$$$$+........................................................................................",
+"...............+$$$$$$$$=................$$$$$$$$&.....*$$$$$$$$=====================&...-$$$$$$$$.............@$$$$$$$$+........................$$$$$$$$$.................=$$$$$$$$+......%$$$$$$$$$%=-+@...&$$$$$$$=........-$$$$$$$$.........................................................................................",
+"...............-$$$$$$$$&...............#$$$$$$$$+.....$$$$$$$$%.........................=$$$$$$$$.............-$$$$$$$$@.......................#$$$$$$$$*.................%$$$$$$$$@.....=$$$$$$$$*#........*$$$$$$$&........=$$$$$$$*.........................................................................................",
+"...............=$$$$$$$$+...............-$$$$$$$$+.....$$$$$$$$=.........................=$$$$$$$$.............*$$$$$$$%........................+$$$$$$$$&................@$$$$$$$$$.....#$$$$$$$$=.........@$$$$$$$$+........%$$$$$$$=.........................................................................................",
+"...............$$$$$$$$$................=$$$$$$$$......$$$$$$$$=.........................=$$$$$$$$............#$$$$$$$$=........................=$$$$$$$$+................+$$$$$$$$=.....*$$$$$$$*..........-$$$$$$$$@........$$$$$$$$+.........................................................................................",
+"..............@$$$$$$$$%................$$$$$$$$$......$$$$$$$$=.........................=$$$$$$$$+...........%$$$$$$$$-........................%$$$$$$$$@................&$$$$$$$$&....@$$$$$$$$#..........%$$$$$$$%........+$$$$$$$$#.........................................................................................",
+"..............+$$$$$$$$=...............#$$$$$$$$=......%$$$$$$$$...........@========@....&$$$$$$$$&..........=$$$$$$$$$+........................$$$$$$$$$.................=$$$$$$$$+....+$$$$$$$$..........-$$$$$$$$=........&$$$$$$$$..........................................................................................",
+"..............&$$$$$$$$-...............&$$$$$$$$&......=$$$$$$$$-..........=$$$$$$$*.....+$$$$$$$$%@........+$$$$$$$$$$........................+$$$$$$$$=.................$$$$$$$$$.....=$$$$$$$$.........@$$$$$$$$$-........=$$$$$$$=..........................................................................................",
+"..............*$$$$$$$$+...............=$$$$$$$$+......+$$$$$$$$$+.......@=$$$$$$$$@.....#$$$$$$$$$=.......=$$$$$$$$$$*........................-$$$$$$$$&................@$$$$$$$$%.....=$$$$$$$$-.......#%$$$$$$$$$+........$$$$$$$$-..........................................................................................",
+"..............$$$$$$$$$................$$$$$$$$$#.......$$$$$$$$$$&#...#&$$$$$$$$$-.......%$$$$$$$$$*#..@-%$$$$$$$$$$$=........................=$$$$$$$$+................+$$$$$$$$=.....=$$$$$$$$$-@...+&$$$$$$$$$$$........@$$$$$$$$=..........................................................................................",
+".............#$$$$$$$$*...............@$$$$$$$$$........&$$$$$$$$$$$$$$$$$$$$$$$$=........&$$$$$$$$$$$$$$$$$$$$$$$$$$$+........................$$$$$$$$$.................=$$$$$$$$-.....-$$$$$$$$$$$$$$$$$$$$$$$$$$%........+$$$$$$$$$%==-......................................................................................",
+".............+$$$$$$$$=...............+$$$$$$$$$.........%$$$$$$$$$$$$$$$$$$$$$$=.........@$$$$$$$$$$$$$$$$$$$$$$$$$$$#.......................@$$$$$$$$%.................*$$$$$$$$+.....#$$$$$$$$$$$$$$$$$$$$$$$$$$=........+$$$$$$$$$$$$&......................................................................................",
+".............=$$$$$$$$+...............+$$$$$$$$$@........@$$$$$$$$$$$$$$$$$$$$$=...........-$$$$$$$$$$$$$$$$$=$$$$$$$$........................+$$$$$$$$=.................$$$$$$$$$.......*$$$$$$$$$$$$$$$$*%$$$$$$$*........+$$$$$$$$$$$$+......................................................................................",
+".............%$$$$$$$$#...............+$$$$$$$$$=.........#%$$$$$$$$$$$$$$$$$$+.............=$$$$$$$$$$$$$$$+=$$$$$$$=........................&$$$$$$$$-................#$$$$$$$$*.......@$$$$$$$$$$$$$$$=.$$$$$$$$$+........$$$$$$$$$$$$@......................................................................................",
+".............$$$$$$$$$................@$$$$$$$$$*..........@*$$$$$$$$$$$$$$$&@...............=$$$$$$$$$$$$%@.%$$$$$$$&........................*$$$$$$$$+................-$$$$$$$$=........+$$$$$$$$$$$$%+..%$$$$$$$$*........&$$$$$$$$$$$.......................................................................................",
+"............@+++++++++.................+++++++++#............#*$$$$$$$$$$%&@..................+%$$$$$$$$%-...++++++++@........................+++++++++.................#++++++++@.........@*$$$$$$$$%&@...#++++++++#.........&$$$$$$$$$=.......................................................................................",
+"...............................................................@+&====&+@.......................#-====-#.....................................................................................@+====&+..........................@+=====&+@.......................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+".......................................................................................+++++++++++++++++++++++++@......................................................................#+++++++#........................#++++++++@................@++++++++#....................................................................",
+".......................................................................................$$$$$$$$$$$$$$$$$$$$$$$$$$%&@...................................................................$$$$$$$$&........................*$$$$$$$$#................&$$$$$$$$&....................................................................",
+"......................................................................................+$$$$$$$$$$$$$$$$$$$$$$$$$$$$$+.................................................................@$$$$$$$$+........................$$$$$$$$$.................=$$$$$$$$+....................................................................",
+"......................................................................................&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$+................................................................+$$$$$$$$........................#$$$$$$$$*.................$$$$$$$$$@....................................................................",
+"......................................................................................=$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$+...............................................................&$$$$$$$%........................-$$$$$$$$=................@$$$$$$$$$..........................................$$$$$$$$&..................",
+"......................................................................................$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%...............................................................=$$$$$$$=........................=$$$$$$$$+................+$$$$$$$$=.........................................+$$$$$$$$+..................",
+".....................................................................................@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$-..............................................................$$$$$$$$-........................%$$$$$$$$@................=$$$$$$$$&.........................................+$$$$$$$$@..................",
+".....................................................................................+$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$=.............................................................#$$$$$$$$#........................$$$$$$$$$.................*$$$$$$$$+.........................................=$$$$$$$$...................",
+".....................................................................................=$$$$$$$$+............+&$$$$$$$$$$$.............................................................+$$$$$$$$........................+$$$$$$$$=.................$$$$$$$$$..........................................*$$$$$$$=...................",
+".....................................................................................*$$$$$$$$#..............@%$$$$$$$$$.............................................................=$$$$$$$*........................&$$$$$$$$&................#$$$$$$$$%..........................................$$$$$$$$-...................",
+".....................................................................................$$$$$$$$$................#$$$$$$$$$.............................................................*$$$$$$$=........................=$$$$$$$$+................-$$$$$$$$=.........................................#$$$$$$$$+...................",
+"....................................................................................#$$$$$$$$=.................*$$$$$$$%...............#++==-+#.........................@++==++......$$$$$$$$+........................$$$$$$$$$.................=$$$$$$$$-..............@++-===-++.................+$$$$$$$$....................",
+"....................................................................................-$$$$$$$$&.................=$$$$$$$=............+=$$$$$$$$$$=#....................-*$$$$$$$$&@..+$$$$$$$$@.......................@$$$$$$$$%.................%$$$$$$$$#...........+=$$$$$$$$$$$$*-..........#+++*$$$$$$$$++++@...............",
+"....................................................................................=$$$$$$$$+.................*$$$$$$$-.........@&$$$$$$$$$$$$$$$=@................-%$$$$$$$$$$$%@.-$$$$$$$$........................+$$$$$$$$=.................$$$$$$$$$..........-%$$$$$$$$$$$$$$$$%+........$$$$$$$$$$$$$$$$$+...............",
+"....................................................................................%$$$$$$$$@................@$$$$$$$$@........+%$$$$$$$$$$$$$$$$$%@.............@*$$$$$$$$$$$$$$%@=$$$$$$$=........................=$$$$$$$$-................+$$$$$$$$*........@*$$$$$$$$$$$$$$$$$$$$+......#$$$$$$$$$$$$$$$$$@...............",
+"....................................................................................$$$$$$$$$.................&$$$$$$$=........=$$$$$$$$$$$$$$$$$$$$%@...........#%$$$$$$$$$$$$$$$$&%$$$$$$$&........................*$$$$$$$$#................&$$$$$$$$=.......@%$$$$$$$$$$$$$$$$$$$$$$@.....+$$$$$$$$$$$$$$$$$................",
+"...................................................................................+$$$$$$$$=................#$$$$$$$$#.......=$$$$$$$$$$$$$$$$$$$$$$*..........+$$$$$$$$$$$$$$$$$$$$$$$$$$$+........................$$$$$$$$$.................=$$$$$$$$+.......%$$$$$$$$$$$$$$$$$$$$$$$&.....=$$$$$$$$$$$$$$$$=................",
+"...................................................................................-$$$$$$$$&...............@%$$$$$$$&.......-$$$$$$$$$$$$$$$$$$$$$$$$+........@$$$$$$$$$$$$$$$$$$$$$$$$$$$$@.......................#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@......&$$$$$$$$$$$$$$$$$$$$$$$$%.....*$$$$$$$$$$$$$$$$-................",
+"...................................................................................=$$$$$$$$+..............-%$$$$$$$*.......#$$$$$$$$$%&+@@+=$$$$$$$$$*........%$$$$$$$$$%-#.+&$$$$$$$$$$$$%........................-$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$......@$$$$$$$$$*++..#+*$$$$$$$$$.....++++$$$$$$$$*++++@................",
+"...................................................................................$$$$$$$$$-++++++++++++=%$$$$$$$$%@.......%$$$$$$$$&.......+$$$$$$$$$#......&$$$$$$$$$&......@%$$$$$$$$$$=........................=$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$=......&$$$$$$$$+........%$$$$$$$$........#$$$$$$$$+.....................",
+"..................................................................................@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$=@.......&$$$$$$$$+.........&$$$$$$$$-.....@$$$$$$$$$+........+$$$$$$$$$$-........................%$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&......%$$$$$$$+.........=$$$$$$$*........+$$$$$$$$@.....................",
+"..................................................................................+$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$-........@$$$$$$$$=..........@$$$$$$$$=.....*$$$$$$$$-..........*$$$$$$$$$+........................$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$+.....#$$$$$$$*..........*$$$$$$$=........=$$$$$$$$......................",
+"..................................................................................&$$$$$$$$$$$$$$$$$$$$$$$$$$$$&@.........&$$$$$$$%............%$$$$$$$=....#$$$$$$$$*...........&$$$$$$$$$........................+$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$......#=======+.........@$$$$$$$$+........%$$$$$$$=......................",
+"..................................................................................*$$$$$$$$$$$$$$$$$$$$$$$$$$$&@..........%$$$$$$$&............=$$$$$$$=....&$$$$$$$$@...........+$$$$$$$$*........................-$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%.......................@%$$$$$$$$#........$$$$$$$$&......................",
+"..................................................................................$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&........+$$$$$$$$@............=$$$$$$$=....$$$$$$$$=............+$$$$$$$$=........................=$$$$$$$$&++++++++++++++++&$$$$$$$$=....................++=$$$$$$$$$$........+$$$$$$$$+......................",
+".................................................................................#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$=.......=$$$$$$$$$$$$$$$$$$$$$$$$$$$$$=...+$$$$$$$$#............+$$$$$$$$+........................$$$$$$$$$.................=$$$$$$$$-.............@+-=*$$$$$$$$$$$$$$*........-$$$$$$$$@......................",
+".................................................................................+$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$+......$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$=...=$$$$$$$%.............+$$$$$$$$#.......................@$$$$$$$$*.................%$$$$$$$$#..........#=%$$$$$$$$$$$$$$$$$$$=........=$$$$$$$%.......................",
+".................................................................................=$$$$$$$$+............+*$$$$$$$$$=.....+$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$+...$$$$$$$$&.............+$$$$$$$$........................+$$$$$$$$=.................$$$$$$$$$.........+%$$$$$$$$$$$$$$$$$$$$$$+........%$$$$$$$=.......................",
+".................................................................................%$$$$$$$$@..............=$$$$$$$$=.....-$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#..#$$$$$$$$+.............=$$$$$$$=........................&$$$$$$$$+................+$$$$$$$$*.......@=$$$$$$$$$$$$$$$$$$$$$$$$@........$$$$$$$$-.......................",
+".................................................................................$$$$$$$$$...............@$$$$$$$$=.....=$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$...+$$$$$$$$#.............*$$$$$$$&........................*$$$$$$$$#................-$$$$$$$$=......@%$$$$$$$$$$$$$$*&&$$$$$$$$........+$$$$$$$$+.......................",
+"................................................................................+$$$$$$$$=................$$$$$$$$&.....*$$$$$$$$=====================&...-$$$$$$$$.............@$$$$$$$$+........................$$$$$$$$$.................=$$$$$$$$+......%$$$$$$$$$%=-+@...&$$$$$$$=........-$$$$$$$$........................",
+"................................................................................-$$$$$$$$&...............#$$$$$$$$+.....$$$$$$$$%.........................=$$$$$$$$.............-$$$$$$$$@.......................#$$$$$$$$*.................%$$$$$$$$@.....=$$$$$$$$*#........*$$$$$$$&........=$$$$$$$*........................",
+"................................................................................=$$$$$$$$+...............-$$$$$$$$+.....$$$$$$$$=.........................=$$$$$$$$.............*$$$$$$$%........................+$$$$$$$$&................@$$$$$$$$$.....#$$$$$$$$=.........@$$$$$$$$+........%$$$$$$$=........................",
+"................................................................................$$$$$$$$$................=$$$$$$$$......$$$$$$$$=.........................=$$$$$$$$............#$$$$$$$$=........................=$$$$$$$$+................+$$$$$$$$=.....*$$$$$$$*..........-$$$$$$$$@........$$$$$$$$+........................",
+"...............................................................................@$$$$$$$$%................$$$$$$$$$......$$$$$$$$=.........................=$$$$$$$$+...........%$$$$$$$$-........................%$$$$$$$$@................&$$$$$$$$&....@$$$$$$$$#..........%$$$$$$$%........+$$$$$$$$#........................",
+"...............................................................................+$$$$$$$$=...............#$$$$$$$$=......%$$$$$$$$...........@========@....&$$$$$$$$&..........=$$$$$$$$$+........................$$$$$$$$$.................=$$$$$$$$+....+$$$$$$$$..........-$$$$$$$$=........&$$$$$$$$.........................",
+"...............................................................................&$$$$$$$$-...............&$$$$$$$$&......=$$$$$$$$-..........=$$$$$$$*.....+$$$$$$$$%@........+$$$$$$$$$$........................+$$$$$$$$=.................$$$$$$$$$.....=$$$$$$$$.........@$$$$$$$$$-........=$$$$$$$=.........................",
+"...............................................................................*$$$$$$$$+...............=$$$$$$$$+......+$$$$$$$$$+.......@=$$$$$$$$@.....#$$$$$$$$$=.......=$$$$$$$$$$*........................-$$$$$$$$&................@$$$$$$$$%.....=$$$$$$$$-.......#%$$$$$$$$$+........$$$$$$$$-.........................",
+"...............................................................................$$$$$$$$$................$$$$$$$$$#.......$$$$$$$$$$&#...#&$$$$$$$$$-.......%$$$$$$$$$*#..@-%$$$$$$$$$$$=........................=$$$$$$$$+................+$$$$$$$$=.....=$$$$$$$$$-@...+&$$$$$$$$$$$........@$$$$$$$$=.........................",
+"..............................................................................#$$$$$$$$*...............@$$$$$$$$$........&$$$$$$$$$$$$$$$$$$$$$$$$=........&$$$$$$$$$$$$$$$$$$$$$$$$$$$+........................$$$$$$$$$.................=$$$$$$$$-.....-$$$$$$$$$$$$$$$$$$$$$$$$$$%........+$$$$$$$$$%==-.....................",
+"..............................................................................+$$$$$$$$=...............+$$$$$$$$$.........%$$$$$$$$$$$$$$$$$$$$$$=.........@$$$$$$$$$$$$$$$$$$$$$$$$$$$#.......................@$$$$$$$$%.................*$$$$$$$$+.....#$$$$$$$$$$$$$$$$$$$$$$$$$$=........+$$$$$$$$$$$$&.....................",
+"..............................................................................=$$$$$$$$+...............+$$$$$$$$$@........@$$$$$$$$$$$$$$$$$$$$$=...........-$$$$$$$$$$$$$$$$$=$$$$$$$$........................+$$$$$$$$=.................$$$$$$$$$.......*$$$$$$$$$$$$$$$$*%$$$$$$$*........+$$$$$$$$$$$$+.....................",
+"..............................................................................%$$$$$$$$#...............+$$$$$$$$$=.........#%$$$$$$$$$$$$$$$$$$+.............=$$$$$$$$$$$$$$$+=$$$$$$$=........................&$$$$$$$$-................#$$$$$$$$*.......@$$$$$$$$$$$$$$$=.$$$$$$$$$+........$$$$$$$$$$$$@.....................",
+"..............................................................................$$$$$$$$$................@$$$$$$$$$*..........@*$$$$$$$$$$$$$$$&@...............=$$$$$$$$$$$$%@.%$$$$$$$&........................*$$$$$$$$+................-$$$$$$$$=........+$$$$$$$$$$$$%+..%$$$$$$$$*........&$$$$$$$$$$$......................",
+".............................................................................@+++++++++.................+++++++++#............#*$$$$$$$$$$%&@..................+%$$$$$$$$%-...++++++++@........................+++++++++.................#++++++++@.........@*$$$$$$$$%&@...#++++++++#.........&$$$$$$$$$=......................",
+"................................................................................................................................@+&====&+@.......................#-====-#.....................................................................................@+====&+..........................@+=====&+@......................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"...........................+++++++++++++++++++++++++@......................................................................#+++++++#........................#++++++++@................@++++++++#................................................................................................................................",
+"...........................$$$$$$$$$$$$$$$$$$$$$$$$$$%&@...................................................................$$$$$$$$&........................*$$$$$$$$#................&$$$$$$$$&................................................................................................................................",
+"..........................+$$$$$$$$$$$$$$$$$$$$$$$$$$$$$+.................................................................@$$$$$$$$+........................$$$$$$$$$.................=$$$$$$$$+................................................................................................................................",
+"..........................&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$+................................................................+$$$$$$$$........................#$$$$$$$$*.................$$$$$$$$$@................................................................................................................................",
+"..........................=$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$+...............................................................&$$$$$$$%........................-$$$$$$$$=................@$$$$$$$$$..........................................$$$$$$$$&..............................................................................",
+"..........................$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%...............................................................=$$$$$$$=........................=$$$$$$$$+................+$$$$$$$$=.........................................+$$$$$$$$+..............................................................................",
+".........................@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$-..............................................................$$$$$$$$-........................%$$$$$$$$@................=$$$$$$$$&.........................................+$$$$$$$$@..............................................................................",
+".........................+$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$=.............................................................#$$$$$$$$#........................$$$$$$$$$.................*$$$$$$$$+.........................................=$$$$$$$$...............................................................................",
+".........................=$$$$$$$$+............+&$$$$$$$$$$$.............................................................+$$$$$$$$........................+$$$$$$$$=.................$$$$$$$$$..........................................*$$$$$$$=...............................................................................",
+".........................*$$$$$$$$#..............@%$$$$$$$$$.............................................................=$$$$$$$*........................&$$$$$$$$&................#$$$$$$$$%..........................................$$$$$$$$-...............................................................................",
+".........................$$$$$$$$$................#$$$$$$$$$.............................................................*$$$$$$$=........................=$$$$$$$$+................-$$$$$$$$=.........................................#$$$$$$$$+...............................................................................",
+"........................#$$$$$$$$=.................*$$$$$$$%...............#++==-+#.........................@++==++......$$$$$$$$+........................$$$$$$$$$.................=$$$$$$$$-..............@++-===-++.................+$$$$$$$$................................................................................",
+"........................-$$$$$$$$&.................=$$$$$$$=............+=$$$$$$$$$$=#....................-*$$$$$$$$&@..+$$$$$$$$@.......................@$$$$$$$$%.................%$$$$$$$$#...........+=$$$$$$$$$$$$*-..........#+++*$$$$$$$$++++@...........................................................................",
+"........................=$$$$$$$$+.................*$$$$$$$-.........@&$$$$$$$$$$$$$$$=@................-%$$$$$$$$$$$%@.-$$$$$$$$........................+$$$$$$$$=.................$$$$$$$$$..........-%$$$$$$$$$$$$$$$$%+........$$$$$$$$$$$$$$$$$+...........................................................................",
+"........................%$$$$$$$$@................@$$$$$$$$@........+%$$$$$$$$$$$$$$$$$%@.............@*$$$$$$$$$$$$$$%@=$$$$$$$=........................=$$$$$$$$-................+$$$$$$$$*........@*$$$$$$$$$$$$$$$$$$$$+......#$$$$$$$$$$$$$$$$$@...........................................................................",
+"........................$$$$$$$$$.................&$$$$$$$=........=$$$$$$$$$$$$$$$$$$$$%@...........#%$$$$$$$$$$$$$$$$&%$$$$$$$&........................*$$$$$$$$#................&$$$$$$$$=.......@%$$$$$$$$$$$$$$$$$$$$$$@.....+$$$$$$$$$$$$$$$$$............................................................................",
+".......................+$$$$$$$$=................#$$$$$$$$#.......=$$$$$$$$$$$$$$$$$$$$$$*..........+$$$$$$$$$$$$$$$$$$$$$$$$$$$+........................$$$$$$$$$.................=$$$$$$$$+.......%$$$$$$$$$$$$$$$$$$$$$$$&.....=$$$$$$$$$$$$$$$$=............................................................................",
+".......................-$$$$$$$$&...............@%$$$$$$$&.......-$$$$$$$$$$$$$$$$$$$$$$$$+........@$$$$$$$$$$$$$$$$$$$$$$$$$$$$@.......................#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@......&$$$$$$$$$$$$$$$$$$$$$$$$%.....*$$$$$$$$$$$$$$$$-............................................................................",
+".......................=$$$$$$$$+..............-%$$$$$$$*.......#$$$$$$$$$%&+@@+=$$$$$$$$$*........%$$$$$$$$$%-#.+&$$$$$$$$$$$$%........................-$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$......@$$$$$$$$$*++..#+*$$$$$$$$$.....++++$$$$$$$$*++++@............................................................................",
+".......................$$$$$$$$$-++++++++++++=%$$$$$$$$%@.......%$$$$$$$$&.......+$$$$$$$$$#......&$$$$$$$$$&......@%$$$$$$$$$$=........................=$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$=......&$$$$$$$$+........%$$$$$$$$........#$$$$$$$$+.................................................................................",
+"......................@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$=@.......&$$$$$$$$+.........&$$$$$$$$-.....@$$$$$$$$$+........+$$$$$$$$$$-........................%$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&......%$$$$$$$+.........=$$$$$$$*........+$$$$$$$$@.................................................................................",
+"......................+$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$-........@$$$$$$$$=..........@$$$$$$$$=.....*$$$$$$$$-..........*$$$$$$$$$+........................$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$+.....#$$$$$$$*..........*$$$$$$$=........=$$$$$$$$..................................................................................",
+"......................&$$$$$$$$$$$$$$$$$$$$$$$$$$$$&@.........&$$$$$$$%............%$$$$$$$=....#$$$$$$$$*...........&$$$$$$$$$........................+$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$......#=======+.........@$$$$$$$$+........%$$$$$$$=..................................................................................",
+"......................*$$$$$$$$$$$$$$$$$$$$$$$$$$$&@..........%$$$$$$$&............=$$$$$$$=....&$$$$$$$$@...........+$$$$$$$$*........................-$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%.......................@%$$$$$$$$#........$$$$$$$$&..................................................................................",
+"......................$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&........+$$$$$$$$@............=$$$$$$$=....$$$$$$$$=............+$$$$$$$$=........................=$$$$$$$$&++++++++++++++++&$$$$$$$$=....................++=$$$$$$$$$$........+$$$$$$$$+..................................................................................",
+".....................#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$=.......=$$$$$$$$$$$$$$$$$$$$$$$$$$$$$=...+$$$$$$$$#............+$$$$$$$$+........................$$$$$$$$$.................=$$$$$$$$-.............@+-=*$$$$$$$$$$$$$$*........-$$$$$$$$@..................................................................................",
+".....................+$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$+......$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$=...=$$$$$$$%.............+$$$$$$$$#.......................@$$$$$$$$*.................%$$$$$$$$#..........#=%$$$$$$$$$$$$$$$$$$$=........=$$$$$$$%...................................................................................",
+".....................=$$$$$$$$+............+*$$$$$$$$$=.....+$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$+...$$$$$$$$&.............+$$$$$$$$........................+$$$$$$$$=.................$$$$$$$$$.........+%$$$$$$$$$$$$$$$$$$$$$$+........%$$$$$$$=...................................................................................",
+".....................%$$$$$$$$@..............=$$$$$$$$=.....-$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#..#$$$$$$$$+.............=$$$$$$$=........................&$$$$$$$$+................+$$$$$$$$*.......@=$$$$$$$$$$$$$$$$$$$$$$$$@........$$$$$$$$-...................................................................................",
+".....................$$$$$$$$$...............@$$$$$$$$=.....=$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$...+$$$$$$$$#.............*$$$$$$$&........................*$$$$$$$$#................-$$$$$$$$=......@%$$$$$$$$$$$$$$*&&$$$$$$$$........+$$$$$$$$+...................................................................................",
+"....................+$$$$$$$$=................$$$$$$$$&.....*$$$$$$$$=====================&...-$$$$$$$$.............@$$$$$$$$+........................$$$$$$$$$.................=$$$$$$$$+......%$$$$$$$$$%=-+@...&$$$$$$$=........-$$$$$$$$....................................................................................",
+"....................-$$$$$$$$&...............#$$$$$$$$+.....$$$$$$$$%.........................=$$$$$$$$.............-$$$$$$$$@.......................#$$$$$$$$*.................%$$$$$$$$@.....=$$$$$$$$*#........*$$$$$$$&........=$$$$$$$*....................................................................................",
+"....................=$$$$$$$$+...............-$$$$$$$$+.....$$$$$$$$=.........................=$$$$$$$$.............*$$$$$$$%........................+$$$$$$$$&................@$$$$$$$$$.....#$$$$$$$$=.........@$$$$$$$$+........%$$$$$$$=....................................................................................",
+"....................$$$$$$$$$................=$$$$$$$$......$$$$$$$$=.........................=$$$$$$$$............#$$$$$$$$=........................=$$$$$$$$+................+$$$$$$$$=.....*$$$$$$$*..........-$$$$$$$$@........$$$$$$$$+....................................................................................",
+"...................@$$$$$$$$%................$$$$$$$$$......$$$$$$$$=.........................=$$$$$$$$+...........%$$$$$$$$-........................%$$$$$$$$@................&$$$$$$$$&....@$$$$$$$$#..........%$$$$$$$%........+$$$$$$$$#....................................................................................",
+"...................+$$$$$$$$=...............#$$$$$$$$=......%$$$$$$$$...........@========@....&$$$$$$$$&..........=$$$$$$$$$+........................$$$$$$$$$.................=$$$$$$$$+....+$$$$$$$$..........-$$$$$$$$=........&$$$$$$$$.....................................................................................",
+"...................&$$$$$$$$-...............&$$$$$$$$&......=$$$$$$$$-..........=$$$$$$$*.....+$$$$$$$$%@........+$$$$$$$$$$........................+$$$$$$$$=.................$$$$$$$$$.....=$$$$$$$$.........@$$$$$$$$$-........=$$$$$$$=.....................................................................................",
+"...................*$$$$$$$$+...............=$$$$$$$$+......+$$$$$$$$$+.......@=$$$$$$$$@.....#$$$$$$$$$=.......=$$$$$$$$$$*........................-$$$$$$$$&................@$$$$$$$$%.....=$$$$$$$$-.......#%$$$$$$$$$+........$$$$$$$$-.....................................................................................",
+"...................$$$$$$$$$................$$$$$$$$$#.......$$$$$$$$$$&#...#&$$$$$$$$$-.......%$$$$$$$$$*#..@-%$$$$$$$$$$$=........................=$$$$$$$$+................+$$$$$$$$=.....=$$$$$$$$$-@...+&$$$$$$$$$$$........@$$$$$$$$=.....................................................................................",
+"..................#$$$$$$$$*...............@$$$$$$$$$........&$$$$$$$$$$$$$$$$$$$$$$$$=........&$$$$$$$$$$$$$$$$$$$$$$$$$$$+........................$$$$$$$$$.................=$$$$$$$$-.....-$$$$$$$$$$$$$$$$$$$$$$$$$$%........+$$$$$$$$$%==-.................................................................................",
+"..................+$$$$$$$$=...............+$$$$$$$$$.........%$$$$$$$$$$$$$$$$$$$$$$=.........@$$$$$$$$$$$$$$$$$$$$$$$$$$$#.......................@$$$$$$$$%.................*$$$$$$$$+.....#$$$$$$$$$$$$$$$$$$$$$$$$$$=........+$$$$$$$$$$$$&.................................................................................",
+"..................=$$$$$$$$+...............+$$$$$$$$$@........@$$$$$$$$$$$$$$$$$$$$$=...........-$$$$$$$$$$$$$$$$$=$$$$$$$$........................+$$$$$$$$=.................$$$$$$$$$.......*$$$$$$$$$$$$$$$$*%$$$$$$$*........+$$$$$$$$$$$$+.................................................................................",
+"..................%$$$$$$$$#...............+$$$$$$$$$=.........#%$$$$$$$$$$$$$$$$$$+.............=$$$$$$$$$$$$$$$+=$$$$$$$=........................&$$$$$$$$-................#$$$$$$$$*.......@$$$$$$$$$$$$$$$=.$$$$$$$$$+........$$$$$$$$$$$$@.................................................................................",
+"..................$$$$$$$$$................@$$$$$$$$$*..........@*$$$$$$$$$$$$$$$&@...............=$$$$$$$$$$$$%@.%$$$$$$$&........................*$$$$$$$$+................-$$$$$$$$=........+$$$$$$$$$$$$%+..%$$$$$$$$*........&$$$$$$$$$$$..................................................................................",
+".................@+++++++++.................+++++++++#............#*$$$$$$$$$$%&@..................+%$$$$$$$$%-...++++++++@........................+++++++++.................#++++++++@.........@*$$$$$$$$%&@...#++++++++#.........&$$$$$$$$$=..................................................................................",
+"....................................................................@+&====&+@.......................#-====-#.....................................................................................@+====&+..........................@+=====&+@..................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................"};
diff --git a/ecos/packages/hal/arm/sa11x0/assabet/current/misc/redhat2.xpm b/ecos/packages/hal/arm/sa11x0/assabet/current/misc/redhat2.xpm
new file mode 100644
index 0000000..c66ea31
--- /dev/null
+++ b/ecos/packages/hal/arm/sa11x0/assabet/current/misc/redhat2.xpm
@@ -0,0 +1,260 @@
+/* XPM */
+static char * redhat2_xpm[] = {
+"320 240 17 1",
+" c None",
+". c #020204",
+"+ c #939192",
+"@ c #4A4849",
+"# c #810404",
+"$ c #2A272A",
+"% c #726F72",
+"& c #D1D0D1",
+"* c #4D0304",
+"= c #B2B0B1",
+"- c #8E3A34",
+"; c #FAF9F8",
+"> c #C90204",
+", c #8C797D",
+"' c #3C383B",
+") c #1A1919",
+"! c #5B585B",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................$$@@!%%,,,,,,,,,,,%!!@'').......................................................................................................................................................................................................................................................................",
+"..............................))'%,+=&&;;;;;;;;;;;&==+,%')).....................................................................................................................................................................................................................................................................",
+"..........................))'!%++======&==+==+===&=======,%!'$..................................................................................................................................................................................................................................................................",
+"..........................$@,&&;;;&==+,%!@@'@@'@!,+==&;;;;&=,@$.................................................................................................................................................................................................................................................................",
+"......................))'!,======+%%!!@'$$)$$)$$'@@@!!%++=&&=+,!')..............................................................................................................................................................................................................................................................",
+"......................)@,&&;&&+%'))...................)$'%+&;;;=%$).............................................................................................................................................................................................................................................................",
+"....................$!%=====%!@$$.......................$'@!++===+%@$...........................................................................................................................................................................................................................................................",
+"..................))!+&;&=,@$...............................$@,&&;&=@...........................................................................................................................................................................................................................................................",
+".................)@%+&==+%'$)...............................))@!+==&+%'.........................................................................................................................................................................................................................................................",
+"................)$,&&;=%'.......................................'%=;&&%)).......................................................................................................................................................................................................................................................",
+"...............)!+=&=+!')........*******..)..*********..........)'!+=&+%@)......................................................................................................................................)..)..)..)......................................................................................................",
+"..............)$+;&&,').........*#######*)))*#########*)).........)$%&&&,$)...................................................................................................................................))))))))))))).....................................................................................................",
+".............)!+=&=%@)........**##>#>#>######>##**********.........)@%+&=,@...................................................................................................................................)'!%%%!@'')).*....................................................................................................",
+"............)$+;&&%)..........#>>>>>>>>>>>>>>>>#*.....*###*.........))%&&&,))...............................................................................................................................))'@+&&&++!@'))......*..*...........................................................................................",
+"............@,=&=%@).........*#>>>>>>>>>>>>>>>>##*....*##>*...........@%=&=%'.................................................................................................................................$@+&&;&==+,!$).....).).)..........................................................................................",
+"..........))%&&&%)..........*#>>>>>>>>>>>>>>>>>>##*...*##>*...........))%&&&%.................................................................................................................................'!=;;;;;;;&+!)).*.*)))))).........................................................................................",
+"..........'%+&=,@)..........*##>#>>>>>>>>>>>>>>>>#****##>>#*............@%=&+@$...............................................................................................................................'!=;;;;;;;&=!..*.)'!!!')*.........................................................................................",
+"..........!&&;+$)...........*#####>>>>>>>>>>>>>>>#####>>>>>#*...........)$+;&+@.............................................................................................................................))$@+;;;;;;;&&%...))!===!).*........................................................................................",
+"........)),&=+!)............*>##***#####*##>>>>>>#>#>#>>>>>#*............)!==&%$)............................................................................................................................)$!=;;;;;;;&&!)...)%&&&,@$).............................................................*).........................",
+"........)@=;=@$.............*>>#*....)....*#>>>>>>>>>>>>>>>>#.............$%=;='$.............................................................................................................................$@=;;;;;;;&&%))...%;;;=%')).........................................................*.))))).......................",
+"........@+=&,)).............*>##*....).).**##>>>>>>>>>>>>>>>#*............)'+&=,'............................................................................................................................)$!+;;;;;;;&&!....*,;;;=%'*.........................................................))$@!!'$*......................",
+"........%&&&!...............#>>#*.....))*###>>>>>>>>>>>>>>>>>#*.............!=&=!...........................................................................................................................))'@=;;;;;;;&&%...)),&;;=%'*.........................................................)'!,=+%'.......................",
+"......)'+;=%'...............#>>##*****###>#>>>>>>>>>>>>>>>>>>#*.............'%=&+))..........................................................................................................................)$!=;;;;;;;&&!)...),;;;=%'.........................................)................)@+=&=,@)......................",
+"......'!=;+$).............))*>>>####>>>>>>>>>>>>>>>>>>>>>>>>>>#.............)'+;+@$................................................*.*..*.*..*.*..*.*............*.*..*.*..............................*..*..*$@=;;;;;;;&&%))...,&;;=%@))*.*.*..*.*....................*..*.*.))))).*........*.*.*%&;;&=!)$)).*.................",
+"......@+=&%)........******))#>>>>#>#>>>>>>>>>>>>>>>>>>>>>>>>>>*..............),&=,'.............................................)*.).).).).)).).)).)...........*).).)).).)..........................)..).).)).'!+;;;;;;;&&!....),;;;=%@)).).).)).).)...................).).).)))))).)........).).)%&;;&+!)))).).................",
+"......%&=+!.......))*#####*)#>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>#)).............%=&=!..........................................*)))))))))))))))))))))))*......*.))))))))))))).*...................*.))))))))))))'@=;;;;;;;&&%..*.)+&;;=%@)))))))))))))).*.............*.*)))))))))))))))).....)))))),&;;&+!))))))))...............",
+".....),;=%'....***#*##>#>##)**#>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>#*..............',=&,)..........................................)'@@@@@@$$))))'@!%!%@$)......).)$'@!!%%%%!!!'$$..................))$'!!%%%%!!@$)'!+;;;;;;;&&!)...),;;;=%'))))$'@@!@@@')).)...........).)))$''@@!@!@'$$)))*...*.)$$$),;;;&+!))$$$$$)...............",
+"....)'+;+@$...*#>>>>>>>>>>#)).*#>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>#*.............$@=;+')........................................*$!%%%%%%@$)))$!,====,@')).*.*)))'!,+===&=&=+,!')).*.............*)$@%+======+,@)'!=;;;;;;;&&%))...,&;;=%@)))$'!,,+,,%!'))))........*.)))))'!%,,++,,!@$)))))..*)$$@$),&;;&=!)$'''''$)).............",
+"....$!=;+))...*#>>>>>>>>>>#*...***#>>#>>>>>>>>>>>>>>>>>>>>>>>>>#*.............))+;+!$.........................................!+======,!'$@,+&&&&&=!'*.).))'@%+==&&&&;&&&&==,%').*..........))'!,+=&&&;&&&&=+,%!=;;;;;;;&&!....),;;;=%@)'%,+==&&=&=+,%@'*........)))'@%%+===&=&===+,!@$)*.).'%,++,=;;;&&+,++++++@...............",
+"....@,=;%.....#>>>>>>>>>>>>#*.....*###>>>>>>>>>>>>>>>>>>>>>>>>##*...............%;=%'........................................*%&;;;;;;=,@$,&;;;;;;&,@.))))'@,&&;;;;;;;;;;;;;&=%$).........))))%=&;;;;;;;;;;;;&=%=;;;;;;;&&%....),&;;=%@)!=&;;;;;;;;;&&,!$.*......)))!+=&&;;;;;;;;;;&=%'..*))%=&;;;;;;;;;;;&;;;;&%...............",
+"....@+=&%.....*>>>>>>>>>>>>#*......****####>>>>>>>>>>>>>>>>>>>>#******..........%&=+@.........................................%&;;;;;;&+,,=;;;;;;;=+@*))$'%+&&;;;;;;;;;;;;;;;&=,@..........$@,=&&;;;;;;;;;;;;;&=&;;;;;;;&&!)...),;;;=%%%=&&;&;&;&;;;;&=+%$)*......$@,&&;;;&;&&;&;;;;&=,'$).)!=&;&&;;;;;;&;;&;&;&,...............",
+"....%=&=!.....#>>>>>>>>>>>>>#))...........*#>>>>>>>>>>>>>>>>>>########*.........!===!.........................................%&;;;;;;&+=&&;;;;;;;=,@)))@!=;;;;;;;;;;;;;;;;;;;;&,)).......)',&;;;;;;;;;;;;;;;;;;;;;;;;;;&&%)....,&;;=!+&;;;;&&&&&&&;;;;;+@$))*....'%=;;;;&&&&=&&&&;;;;=%@).*!=&;;;;;;;;;&;&;;;;&%...............",
+"....%&&+!.....*>>>>>>>>>>>>>>***...........*##>>>>>>>>>>>>>>>>>##>#>#>#**.......!==&%.........................................,&;;;;;;&=&;;;;;;;;;&,!))$%=&;;;;;;;;;;;;;;;;;;;;;=%'*......@,=;;;;;;;;;;;;;;;;;;;;;;;;;;;&&%.....,;;;&=&;&&=+,%!!%%+=&;;;=+@)......$!=&&=+,%!!!!%,,=&;;&=!)..'%%,,%=;;;&&=%,,,+,+'...............",
+"....,;&,@.....*#>>>>>>>>>>>>>>>#*...........*#>>>>>>>>>>>>>>>>>##>>>>>>>*.......'+=&%.........................................%&;;;;;;;;;;;;;;;;;;=+@)$@+&;;;;;;;;;;&&;;;;;;;;;;&&!.....*.%&&;;;;;;;;;;;;;;;;;;;;;;;;;;;&&!...)),;&;;&;;&=%)).....'!=&;;;&%......*$@,&+%'.......)),&&;;;%*...)$$).,&;;&+!.)$$$$$)...............",
+"...)+;=!'......*##>>>>>>>>>>>>>###****.......*#>>>>>>>>>>>>>>>>#>>>>>>>>##*.....'!=;%.........................................%&;;;;;;;;;;;;;;;;;;=,@)@+&;;;;;;;&=+,%%%+=;;;;;;;;&,')).*$@+;;;;;;;;;;;&&=&&&;;;;;;;;;;;;&&%....)%;;;;;&&+!')......)$%=&;;&+'$.....)$@!!')........)'%=;;;+'$..).)..,&;;&+!*).))).................",
+"..)'+;='$.......*#>>>>>>>>>>>>>>>>####*.......#>>>>>>>>>>>>>>>>>>>>>>>>>>>*.....$'=;,.........................................%&;;;;;;;;;;;;;;;;&;=%@)%&;;;;;;;;&,@)).)',&;;;;;;;;=!')).@,&;;;;;;;;;&&=,,%,==;;;;;;;;;;;&&%))...,&;;;;&+!...........$!=;;;=%@)).....................,&;;&,'*......,&;;&+!)......................",
+"..)'+;='$........*#>>>>>>>>>>>>>>>>>#>#*****..*>>>>>>>>>>>>>>>>>>>>>>>>>>>#*....$@+;+)........................................%&&;;;;;;;;;;;&=++++%'''+&;;;;;;&=,'$...))@%=;;;;;;;&,@.*)%=&;;;;;;;;&=%!@''@!,+&;;;;;;;;;;=%....),;;;;;+!$...........)',;;;&,@......................*%&;;&+!.......%;;;&+!.......................",
+"..$@=;+@$.........*#>>>>>>>>>>>>>>>>>>>>>###*)*#>>>>>>>>>>>>>>>>>>>>>>>>>>>#*...)@=;+$).......................................%&;;;;;;;;;;&&+!@$''$.'%=;;;;;;;=,@..*..*..),;;;;;;;&=!..),;;;;;;;;;&=!.......'!+;;;;;;;;;&&!...)),&;;;&%...............%&&;&=!.............*.*.*.*.))%&&;&=!.......%&;;&+@.......................",
+"..)@+;+')..........**>>>>>>>>>>>>>>>>>>>>#>>####>>>>>>>>>>>>>>>>>>>>>>>>>>>#*...$'=;+@).......................................%&&;;;;;;;;;=%!'$)))).@+&;;;;;;;+@$)).)).)))%&;;;;;;;&%)$'+;;;;;;;;;=%'.......)$,=;;;;;;;;&&%....),;;;&=!...............!=;;;=%)...........).).).).)))!=&;;&%.......%;;;&+!)......................",
+"..$@=;+$)...........*#>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>##*...$'=;+@$.......................................%&;;;;;;;;;&%.........!&&;;;;;;&,)))))))))))!=&;;;;;;;,)'@=;;;;;;;;;,)).........@+&;;;;;;;&&%))...,&;;&+!)).............!+&;;&%)..........*)))))))))))!+&;&&%.......%&;;&+!)......................",
+"..)@+;+')............**##>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>#*....$@+;=').......................................%&&;;;;;;;&=@.........%&;;;;;;;&=!!!!!!!!!!!+=;;;;;;;&,)@%=;;;;;;;;&%..........)'%=;;;;;;;&&!)...),;;;=,@...............@+&;;&%)........)))))$'@@!!!!%+=&;;&%.......%;;;&+!.......................",
+"..$@=;+$)...............*#>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>#.....)@=;=@$.......................................%&;;;;;;;;=%'........*%;;;;;;;;&==+===========;;;;;;;;+)!+&;;;;;;;&=!..........)'!=;;;;;;;&&!..*.)+&;;=%'..............*@,=;;;%........)))))$'!%,+==+==&;;;&%.......%&;;&+@.......................",
+"..)@+;=')................*##>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>#*.....$'+;+').......................................%&;;;;;;;;=@$).......),;;;;;;;;;&&&&&&&&&&&&&;;;;;;;;;,)!=&;;;;;;;&+!..........)'!=;;;;;;;;=%)...),;;;=%'...............'+=;;&%.......))$'!%,+===&&&&&&;;;&&%.......%&;;&+!.......................",
+"..$@=;+@$.................*#>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>#*.....$@=;+$).......................................!&;;;;;;;;+'$)......)$,;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+)%=&;;;;;;;&,!)).........$@=;;;;;;;&&%))...%&;;=%@)).............',=;;;,......*.)'%+&&;;;;;;;;;;;;;;&%.......,&;;&+!)).....................",
+"..)'+;=')..............)@%,,-##>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>**......$'=;+)........................................%&&;;;;;;;+'$)......)'+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;,)%=;;;;;;;;=%'...........'!+;;;;;;;&&!....),;;;=%'...............@,&;;&,......)'%,=&&;;&;&&&&&&&&;;&&%.......%;;;&+!.......................",
+"..)'+;=@$.............)',;&&%)*###>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>##*.......)@+;,.........................................%&;;;;;;;;+')......*$@=;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+)%&&;;;;;;;=!$.........))'@=;;;;;;;&&%..*))+&;;=%'...............',=;;;%.....))!=&;;;;;&&&===++=&&;;&%.......%&;;&+@.......................",
+"...)+;=!$.............$!=;;&=%'*****#>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>#*........'%=;,.........................................%&;;;;;;;;+').......$@+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;%)%=;;;;;;;;=!'...........'@=;;;;;;;&&!)....,;;;=%@...............@,=;;&,....*$%+&;;&&=+,%%!!@@@%=&;;&!.......%&;;&+!.......................",
+"....,;=%'.............@,=;;;&=!.....*#>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>##*.........',=;%.........................................!&;;;;;;;;+'$)).....)@+;;;;;;;;;;;&;&;;;;;;;;;;;;;;;;&,)%&&;;;;;;;=,'...........$!+;;;;;;;&&%))...,&;;=%@)).............'+=;;&,.*.*.!=&;;;&+!)).......@+&;&&%.......,&;;&+!)).....................",
+"....%;=,@.............$!=;;;;&=!%%@))**####>>>>>>>>>>>>>>>>>>>>>>>##**..........@+=&%.........................................%&&;;;;;;;,').......))+;;;;;;;;&=%,,++++++++++++++++++!)!=&;;;;;;;&+@...........'!=;;;;;;;&&!....),;;;=%'...............',=;;;%..))',&;;&=+@')........!+&;;&%.......%;;;&+!.......................",
+"....!&=+@.............)$+;;;;;;&&;+$).....*###>>>>>>>>>>>>>>>>####*.............!+==!.........................................%&;;;;;;;;+').........%;;;;;;;&=!.))$'@@!!@!@@@!@!!@@'$)!=&;;;;;;;&=!.........))'!=;;;;;;;&&%..*))+&;;=%'...............@,&;&;%*))'!=;;;=%'.........))@+&;;&%.......%&;;&+@.......................",
+"....!==&!.))''@'@@!!')))!+&;;;;&;;=+@).....*****############*#****..............!&=+@.........................................%&;;;;;;;;+'$.........%;;;;;;;;&,..))))$$$$$$$$$$$$$))).!+&;;;;;;;&&%..........)@,=;;;;;;;&&!)....,;;;=%'...............@%=;;&,..)@+&;;&+@)..........)@+&;&&%.......%;;;&+!.......................",
+"....!+&&%.)@!+,,++==%$).$@+;;;;;;;;;+').............))))))......................%&=%'.........................................!&;;;;;;;;+$$)).......%&;;;;;;;;,.*.......*.*.*.........',=;;;;;;;;&%*.*..*.*.)$!+&;;;;;;;&&%))...,&;;=%@)).............',&;;;%*.*!=&;;&%.............@+&;;&%.......%&;;&+!)).....................",
+"....'%=;,$@%+&=&&&&&&+@))$!+&;;;;;;;=+%'')$)$)''@'')'@@@@'''$).................),;+!$.........................................%&&;;;;;;;+').........!&&;;;;;;;=!'..)..).).).).).......$@=;;;;;;;;;=@$.*.).).$',&&;;;;;;;&&!...).,;;;=%'...............@,=;;&,..)%&&;&&%*..........))!=&;;&!.......%;;;&+!.......................",
+"....$'=;=@%+&;;;;;;;;;+$).$@=;;;;;;;;;=,!@@@@@!,+,!@!%%+!'!%@$)...............)'+;+$).........................................%&;;;;;;;;+').........@=&;;;;;;;&&!*)))))))))))))))......),;;;;;;;;;&=!.))))))$!+;;;;;;;;;;=%...))+&;;=%'...............',=;;;%*.)%&;;&=!........*))))%=&;&&%.......%&;;&+!.......................",
+"....))+;===&;;;;;;;;;;&+%!%,&;;;;;;;;;&&=+=+=+=&=&=====&====%)................$%=&+)..........................................%&&;;;;;;;+'$.........$!=;;;;;;;;&=%!!@''''''@@!!,!@$....)%&;;;;;;;;;&+%!@@@!!,=&;;;;;;;;;&&!.....,;;;=%@...............@,=;;&%..)!&&;;=%).........))$,&;;;&%.......,&;;&+!*......................",
+"......%&;;;;;;;;;;;;;;;;&&=&;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;,.................@+=&!...........................................%&;;;;;;;;+$$)).......)),;;;;;;;;;;&=+,%!!!!!%,+=&=+!.....!&&;;;;;;;;;&&=,,%+=&&;;;;;;;;;;&&%.....,&;;=%@)).............'+=;;;%*..!&;;&&%).*.*.*.*)))'+;;;;&%.......%&;;&+!)).*...................",
+"......!=&;;;;;;;;;;;;;;;;&;&;;;;;;;;;;;;;;;;;;&&&&&&&;;;;;;&%................)%&=+!...........................................%&;;;;;;;;+')..........)!=&;;;;;;;;;&&===+=====&&;&=!.....'%=;;;;;;;;;;&&&==&&&;;;;;;;;;;;;&!.....,;;;=%'...............',=;;&%...!=&;;&+')).).).).)!,=;;;&&%.......%&&;&=%)).)...................",
+"......@,&;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;=,======;;;;;=!...............)'+;=!'...........................................%&;;;;;;;;+')...........@,&;;;;;;;;;;;;;;;;;;;;;;;;&%.....$'+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&&%.....,&;;=%'...............'+=;;;%..*!+&;;;+@'))))))))),&;;;;;&%.......!=;;&&%)))))).................",
+"......$@=;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&=!!!!@+&&;;;&=!...............'!=;+')...........................................,&;;;;;;;;+$)...........)@,&&;;;;;;;;;;;;;;;;;;;;;;&,.....))!=&;;;;;;;;;;;;;;;;;;;;&;;;;;;;&%.....,;;;=%'...............@,=;;&,...$!=;;;&+,@@''@@%%+=;&;;;;&%.......@+&;;&=!@@@@@'$...............",
+".......),;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&,')...!&&;;;&+@...............@==&%.............................................%&;;;;;;;;+').............!+&;;;;;;;;;;;;;;;;;;;;;;;,.......'%=;;;;;;;;;;;;;;;;;;&&&;;;;;;;&%*....%;;;=,'...............'+=;;;%*....%&;;;;=+,!!%++&;;;&&&;;;%.......'%=;;;&=+%,,,,'...............",
+".......)!=&;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&+,%%%=&;;;;=%'...)'''@'@'@''',&=+@.............................................%&;;;;;;;;+').............$@,=&;;;;;;;;;;;;;;;;;;;;&,)......)'%=&;;;;;;;;;;;;;;;=+==&;;;;;&&%.....%;;;=%'...............',=;;&%.....!+&;;;&&====&&&;&&+!=;;&%.......)'+&;;&&&==&==!...............",
+"........'%=;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&&&;;;;;;+$)...$%%,,+,,,+%%=;=@$.............................................%&;;;;;;;;+$)...............'%+&;;;;;;;;;;;;;;;;;;;&%$).......'%=&;;;;;;;;;;;;;&,$%=&;;;;;;&%.....%&;;=%'...............',=;;;%.....$!+&;;;;;;;;;;;;&=!.%;;;%.........!&&;;;;;;;;&%...............",
+"........)'+&;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&=%)..)$!==&=&=&=&=&&&,)).............................................!+=&&&&===%$)...............)'@%+=&&&;&;&;&;&&&&=+,%')........)'@%+&&&;;;&;&&=+%')@,=&&&&&=+!.....!===+@$...............$!+&==@.....)$!+=&&;&;;&;&==%@$.!===!.........'%+&&;&;;&&&!...............",
+"..........!&&;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;=!'...)@+;;;;;;;;;;;;=!...............................................'%,+++++++@)....................'!+===&&&&&=&=++%!$...............@++&=&&&&=+,'...$@%++++++%'.....@,++!$)...............)'!+,,'.......)'!==&&&&&==%@$...@+,,@..........)!+=&&&&&=+@...............",
+"..........'%=;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&+'$)'%,=&;;;;;;;;;;;=%'...............................................)'@@@@@!@'$)....................)''!!%!%!%!%!!!@'$)...............$'!!%%%!%!!')...)$'@@'@@@').....)''@')................))'@@')........)'@!%%%%%!!@$)...)@@'$..........)$@!%%%%%!@$...............",
+"..........)'+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;=!.)$,&&;;;;;;;;;;;;;,)..................................................................................................................................................................................................................................................",
+"...........)!+&;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;=%@.@+=;;;;;;;;;;;;;=+@)..................................................................................................................................................................................................................................................",
+"............)$+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+'$),;;;;;;;;;;;;;;;+$)...................................................................................................................................................................................................................................................",
+".............)%=&;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&+!%+=;;;;;;;;;;;;;&+@)....................................................................................................................................................................................................................................................",
+"..............'%=;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&==+&;;;;;;;;;;;;;;;+$).....................................................................................................................................................................................................................................................",
+"..............)'%+&;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&&&&;;;;;;;;;;;;;=+@)......................................................................................................................................................................................................................................................",
+"................)$+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+$).......................................................................................................................................................................................................................................................",
+".................)@+=;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&=,@)).......................................................................................................................................................................................................................................................",
+"..................)'%&;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&=%)..........................................................................................................................................................................................................................................................",
+"...................)'!+=&;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&=+%')..........................................................................................................................................................................................................................................................",
+"......................'%=;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;=%$.............................................................................................................................................................................................................................................................",
+"......................)'!,=&&;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&==,!').............................................................................................................................................................................................................................................................",
+"........................))@,=&;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&=%@)................................................................................................................................................................................................................................................................",
+"..........................$@!%+==&&;;;;;;;;;;;;;;;;;;;&&=+,%@'))................................................................................................................................................................................................................................................................",
+"..............................)@%+=&;;;;;;;;;;;;;;;;&&=+%').....................................................................................................................................................................................................................................................................",
+"..............................)$'@!!%,++===+====+++,,%!!$)......................................................................................................................................................................................................................................................................",
+"......................................)$''@@'''@'').............................................................................................................................................................................................................................................................................",
+".......................................))$)$$$$$))..............................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................"};
diff --git a/ecos/packages/hal/arm/sa11x0/assabet/current/src/assabet_misc.c b/ecos/packages/hal/arm/sa11x0/assabet/current/src/assabet_misc.c
new file mode 100644
index 0000000..cb06e5e
--- /dev/null
+++ b/ecos/packages/hal/arm/sa11x0/assabet/current/src/assabet_misc.c
@@ -0,0 +1,163 @@
+//==========================================================================
+//
+// assabet_misc.c
+//
+// HAL misc board support code for StrongARM SA1110/Assabet
+//
+//==========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//==========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): gthomas
+// Contributors: hmt
+// 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/assabet.h> // Platform specifics
+
+#include <cyg/infra/diag.h> // diag_printf
+
+// All the MM table layout is here:
+#include <cyg/hal/hal_mm.h>
+
+#include <string.h> // memset
+
+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_DACR_DEFAULT;
+ 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, 32, 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, 128, ARM_UNCACHEABLE, ARM_UNBUFFERABLE, ARM_ACCESS_PERM_RW_RW); /* Ethernet Adaptor */
+ 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 Socket A */
+ X_ARM_MMU_SECTION(0x300, 0x300, 512, ARM_UNCACHEABLE, ARM_UNBUFFERABLE, ARM_ACCESS_PERM_RW_RW); /* PCMCIA Sockets B */
+ X_ARM_MMU_SECTION(0x400, 0x400, 128, ARM_UNCACHEABLE, ARM_UNBUFFERABLE, ARM_ACCESS_PERM_RW_RW); /* SA1111 Daughter card */
+ X_ARM_MMU_SECTION(0x480, 0x480, 128, ARM_UNCACHEABLE, ARM_UNBUFFERABLE, ARM_ACCESS_PERM_RW_RW); /* Video Controller Daughter card */
+ X_ARM_MMU_SECTION(0x800, 0x800, 0x400, ARM_UNCACHEABLE, ARM_UNBUFFERABLE, ARM_ACCESS_PERM_RW_RW); /* StrongARM(R) Registers */
+ X_ARM_MMU_SECTION(0xC00, 0, 32, ARM_CACHEABLE, ARM_BUFFERABLE, ARM_ACCESS_PERM_RW_RW); /* DRAM Bank 0 */
+ X_ARM_MMU_SECTION(0xC00, 0xC00, 32, ARM_UNCACHEABLE, 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 */
+
+}
+
+//
+// Board control register support
+// Update the board control register (write only). Only the bits
+// specified by 'mask' are changed to 'value'.
+//
+
+void
+assabet_BCR(unsigned long mask, unsigned long value)
+{
+ _assabet_BCR = (_assabet_BCR & ~mask) | (mask & value);
+ *SA1110_BOARD_CONTROL = _assabet_BCR;
+}
+
+//
+// Platform specific initialization
+//
+
+void
+plf_hardware_init(void)
+{
+ // Force "alternate" use of GPIO pins used for LCD screen
+ *SA11X0_GPIO_ALTERNATE_FUNCTION |= 0x000003FC; // Bits 2..9
+ *SA11X0_GPIO_PIN_DIRECTION |= 0x000003FC; // Bits 2..9
+ *SA11X0_GPIO_PIN_OUTPUT_CLEAR = 0x000003FC; // Bits 2..9
+}
+
+#include CYGHWR_MEMORY_LAYOUT_H
+typedef void code_fun(void);
+void assabet_program_new_stack(void *func)
+{
+ register CYG_ADDRESS stack_ptr asm("sp");
+ register CYG_ADDRESS old_stack asm("r4");
+ register code_fun *new_func asm("r0");
+ old_stack = stack_ptr;
+ stack_ptr = CYGMEM_REGION_ram + CYGMEM_REGION_ram_SIZE - sizeof(CYG_ADDRESS);
+ new_func = (code_fun*)func;
+ new_func();
+ stack_ptr = old_stack;
+ return;
+}
+
+// ------------------------------------------------------------------------
+// EOF assabet_misc.c
diff --git a/ecos/packages/hal/arm/sa11x0/assabet/current/src/banner.xpm b/ecos/packages/hal/arm/sa11x0/assabet/current/src/banner.xpm
new file mode 100644
index 0000000..b8b1f92
--- /dev/null
+++ b/ecos/packages/hal/arm/sa11x0/assabet/current/src/banner.xpm
@@ -0,0 +1,74 @@
+/* XPM */
+static char * banner_xpm[] = {
+"320 54 17 1",
+" c None",
+". c #030305",
+"+ c #949394",
+"@ c #CFC9CD",
+"# c #525052",
+"$ c #B7B6B8",
+"% c #E2515E",
+"& c #FDFDFB",
+"* c #737073",
+"= c #820204",
+"- c #E33533",
+"; c #343232",
+"> c #E895AE",
+", c #E51604",
+"' c #E67284",
+") c #EABAD4",
+"! c #D8D7D9",
+"............................................................................................................................................................................&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"............................................................................................................................................................................&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"............................................................................................................................................................................&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"............................................................................................................................................................................&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"............................................................................................................................................................................&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"............................................................................................................................................................................&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"............................................................................................................................................................................&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"............................................................................................................................................................................&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"............................................................................................................................................................................&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"..............*+@&&&&&&$+*..................................................................................................................................................&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&+#;;...................................&&&&&&,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,--%>&&&&&&&&&&&&&&&&&&&&&&&&",
+"...........#$&&@+*##;#++@&&$#...............................................................................................................................................&&&&&&&&&&&&&&&&&&&&&&&&&&&&&#........................................&&&&&&,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,'&&&&&&&&&&&&&&&&&&&&&&",
+".........#$&$*...........;#!&$;.............................................................................................................................................&&&&&&&&&&&&&&&&&&&&&&&&&&&+..........................................&&&&&&,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,>&&&&&&&&&&&&&&&&&&&&",
+"........+&$#................#$&+............................................................................................................................................&&&&&&&&&&&&&&&&&&&&&&&&&&#...........................................&&&&&&,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,'&&&&&&&&&&&&&&&&&&&",
+"......;!&*....................*&@...........................................................................................................................................&&&&&&&&&&&&&&&&&&&&&&&&&#............................................&&&&&&,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,'&&&&&&&&&&&&&&&&&&",
+".....;!@;.....====;.=====......;!@;....................................................................;.;..................................................................&&&&&&&&&&&&&&&&&&&&&&&&+...............;;;;..........................&&&&&&,,,,,,,,,,,,,,,---,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,>&&&&&&&&&&&&&&&&&",
+"....;&@......,,=,,=,,=...==......!!.................................................................;#!$*#..................................................................&&&&&&&&&&&&&&&&&&&&&&&!.............#+&&&&&&@*...................;***&&&&&&,,,,,,,,,,,,')&&&&&&>-,,,,,,,,,,,,,,%>!&&)>'-,,,,,,,,,,&&&&&&&&&&&&&&&&&",
+"....@@;.....=,,,,,,=,,=..=,.......!!.................................................................#&&&&+;...;............................................................&&&&&&&&&&&&&&&&&&&&&&&#...........;@&&&&&&&&&&&+...............*&&&&&&&&&&&,,,,,,,,,,'&&&&&&&&&&&)-,,,,,,,,,,-)&&&&&&&&&)-,,,,,,,,'&&&&&&&&&&&&&&&&",
+"...$&;......====,=,,,====,==......;!+................................................................#&&&&@..;>+;...........................................................&&&&&&&&&&&&&&&&&&&&&&&...........*&&&&&&&&&&&&&&$............#&&&&&&&&&&&&&,,,,,,,,,)&&&&&&&&&&&&&&%,,,,,,,,-&&&&&&&&&&&&%,,,,,,,,,&&&&&&&&&&&&&&&&",
+"..#&;.......,=.....=,,,,,,,,.......*&#...............................................................#&&&&@...&&*...............................;...........................&&&&&&&&&&&&&&&&&&&&&&+..........+&&&&&&&&&&&&&&&&@..........#&&&&&&&&&&&&&&,,,,,,,,)&&&&&&&&&&&&&&&&',,,,,,,)&&&&&&&&&&&!,,,,,,,,,,>&&&&&&&&&&&&&&&",
+"..!$........,=...;==,=,=,=,==.......$$..............................................................;#&&&&@...&&*..............................#$*..........................&&&&&&&&&&&&&&&&&&&&&&#.........#&&&&&&&&&&&&&&&&&&$........#&&&&&&&&&&&&&&&,,,,,,,)&&&&&&&&&&&&&&&&&&%,,,,,%&&&&&&&&&&&&-,,,,,,,,,,'&&&&&&&&&&&&&&&",
+".*&;........,,===,,=,,,,,,,,,.......;&#..............................................................#&&&&$;..!&*;...................;.........!&+;.........................&&&&&&&&&&&&&&&&&&&&&&;.........&&&&&&&*;...#$&&&&&&#.......&&&&&&&&!'''>!&&,,,,,,'&&&&&&&)'''>&&&&&&&&,,,,,'&&&&&)-,,%)),,,,,,,,,,,-&&&&&&&&&&&&&&&",
+".@+.....===.,=,,,,=,,=,=,=,,=........$$.......................;.;.;.;.;......;.;.;..............;.;.;#&&&&@..;!&*.;.;.;..........;.;.;.;....;.;!&+.;.;......................&&&&&&&&&&&&&&&&&&&&&&;........+&&&&&@........#&&&&&!......+&&&&&&&',,,,,,'&,,,,,,&&&&&&&-,,,,,,>&&&&&&',,,,)&&&&&%,,,,,-,,,,,,,,,,,-&&&&&&&&&&&&&&&",
+";&#..=,,,,,..=,=,,,,,,,,,=,,,=.......#&;.....................#***;.;+$$#;..;.#+$$@+*..........#+$$$*.#&&&&@...!&*.;;*++#;.......;.#*++*;.;..;;;!&+;;;;......................&&&&&&&&&&&&&&&&&&&&&&.........&&&&&!..........+&&&&&#.....&&&&&&&-,,,,,,,,%,,,,,%&&&&&&-,,,,,,,,'&&&&&&,,,,)&&&&&>,,,,,,,,,,,,,,,,,-&&&&&&&&&&&&&&&",
+"*&...,=,=,,=...===,=,=,,,,,=,=........!*.....................!&&&*;@&&&*..;#@&&&&&&&$;.....;.$&&&&&&!*&&&&@..;&&*.$!&&&&$#....;.+!&&&&&!*..;$!&&&&!&&!......................&&&&&&&&&&&&&&&&&&&&&&........#&&&&&*;;;;;;;;;;#&&&&&+....#&&&&&&',,,,,,,,,,,,,,,>&&&&&%,,,,,,,,,,)&&&&&-,,,)&&&&&&!'-,,,,,,,,,,,,,,-&&&&&&&&&&&&&&&",
+"$$...,,,,=,,.......=,,=,=,,,,====.....@$.....................!&&&+!&&&&+;.*!&&&&&&&&&!.....;!&&&&&&&&!&&&&@...!&*!&&!$!&&&;;...*&&!@$@!&&*..$&!&&!&!&!......................&&&&&&&&&&&&&&&&&&&&&&........+&&&&&&&&&&&&&&&&&&&&&&&....+&&&&&&,,,,,,,,,,,,,,,,&&&&&!,,,,,,,,,,,%&&&&&',,,'&&&&&&&&&)',,,,,,,,,,,,-&&&&&&&&&&&&&&&",
+"&+...==,,,,=,=......=,,,,=,=,=,,=,....*!.....................!&&&!&&&&&*.#&&&&&!!&&&&&@....!&&&&&&&&&&&&&&@..;!&!&$;...#!&!....#@*....;@&&...;.!&+.;;;......................&&&&&&&&&&&&&&&&&&&&&&........$&&&&&&&&&&&&&&&&&&&&&&&....$&&&&&),,,,,,,,,,,,,,,,&&&&&',,,,,,,,,,,,&&&&&',,,-&&&&&&&&&&&&-,,,,,,,,,,-&&&&&&&&&&&&&&&",
+"&#....==,=,,,,,==....,=,,,,,=,=,,,,...#&.....................!&&&&&&&!&*.@&&&&*;.;@&&&&#;.+&&&&&@+*+&&&&&&@...&&&+......*&&*............!&+....!&+..........................&&&&&&&&&&&&&&&&&&&&&&........$&&&&&&&&&&&&&&&&&&&&&&&....$&&&&&),,,,,,,,,,,,,,,-&&&&&',,,,,,,,,,,,&&&&&),,,,%&&&&&&&&&&&&-,,,,,,,,,-&&&&&&&&&&&&&&&",
+"&;.....=,,,=,=,,,===.=,,=,,,,,,,=,==..#&;....................@&&&&&@*;;.*&&&&*.....&&&&$..&&&&&$....#&&&&&@...&&!........@&$...........;)&$....&&+..........................&&&&&&&&&&&&&&&&&&&&&&........$&&&&&$$$$$$$$$$$$$$$$$$....$&&&&&),,,,,,,,,,,,,,,,&&&&&',,,,,,,,,,,,&&&&&>,,,,,->&&&&&&&&&&&,,,,,,,,,-&&&&&&&&&&&&&&&",
+"&;......=,,,,,=,,,,,,,=,,,=,=,=,,,,=..;&#....................!&&&&!.....@&&&!;.;.;.$&&&&.#&&&&!;.....+&&&&$;..!&+........+&@;......;.;..+&!....!&+;.........................&&&&&&&&&&&&&&&&&&&&&&........+&&&&&;.....................$&&&&&!,,,,,,,,,,,,,,,,&&&&&),,,,,,,,,,,-&&&&&',,,,,,,,%>&&&&&&&&-,,,,,,,,-&&&&&&&&&&&&&&&",
+"&;........==,,,,=,=,=,,,=,,,,,,,=,,...#&;....................!&&&&*.....!&&&!+$+$$+@&&&&.+&&&&$......#&&&&@..;&&*........+&!.....;.;*+$$@&@....!&+..........................&&&&&&&&&&&&&&&&&&&&&&........*&&&&&+................;....*&&&&&&-,,,,,,,,,,,,,,,)&&&&&-,,,,,,,,,,>&&&&&%,,,,,,,,,,,'&&&&&&',,,,,,,,-&&&&&&&&&&&&&&&",
+"&#.........==,=,,,,,,=,,,=,=,=,,=,=...#&;....................@&&&&#....;&&&&&&&&&&&&&&&&;$&&&&+......#&&&&@...!&*........*&&....;*@&&&&&&&!....!&+..........................&&&&&&&&&&&&&&&&&&&&&&........;&&&&&&;.........;;;;;;;....;&&&&&&!,,,,,,,,,-,,,,,'&&&&&),,,,,,,,,-&&&&&&,,,,,,,,,,,,,>&&&&&',,,,,,,,-&&&&&&&&&&&&&&&",
+"&;.......;&@.==,=,,=,,,=,,,,,,,,,=....#&.....................!&&&!;....#&&&&&&&&&&&&&&&&.@&&&&#.....;#&&&&@..;!&*........*&!....$&&!!$++@&@....&&+..........................&&&&&&&&&&&&&&&&&&&&&&;........$&&&&&&;.......@&&&&&&;.....$&&&&&&),,,,,,,-!,,,,,-&&&&&&>,,,,,,,-&&&&&&>,,,,,')-,,,,,>&&&&&',,,,,,,,-&&&&&&&&&&&&&&&",
+"&*.......*&&$...=,,,=,,,,=,=,=,==.....*&.....................@&&&&;....;&&&&&!&!&&!&&!&!;$&&&&*......#&&&&@...&&*........*&!...$&&+;....+&!....!&$..........................&&&&&&&&&&&&&&&&&&&&&&;........;&&&&&&&$#;.;+&&&&&&&+......;&&&&&&&&'-,,%>&&,,,,,,>&&&&&&&'-,-%>&&&&&&&-,,,,-&&&'-,,'&&&&&&-,,,,,,,,-&&&&&&&&&&&&&&&",
+"@+.......;&&&@&;...==,=,,,,,,==.......+$.....................!&&&&;.....&&&&$..########;.$&&&&$......*&&&&@..;!&*........+&!.;#&&*......+&!....!&+..........................&&&&&&&&&&&&&&&&&&&&&&#.........+&&&&&&&&&&&&&&&&&&!........*&&&&&&&&&&&&&&&,,,,,,-&&&&&&&&&&&&&&&&&&&',,,,,>&&&&&&&&&&&&&&,,,,,,,,,'&&&&&&&&&&&&&&&",
+"+!.#*++$;.;&&&&&;.....................!*.....................@&&&&;;....!&&&&............*&&&&!......+&&&&@...&&*........*&!..$&!.......+&!....!&+..........................&&&&&&&&&&&&&&&&&&&&&&+..........@&&&&&&&&&&&&&&&&&;.........+&&&&&&&&&&&&&&,,,,,,,-&&&&&&&&&&&&&&&&&),,,,,-&&&&&&&&&&&&&&',,,,,,,,,>&&&&&&&&&&&&&&&",
+"#&#+&&&&&;.;&&&&!+;##*+#*+#*;........;&;.....................!&&&&;.....+&&&&)..;.;.;.....&&&&&$.;.;#&&&&&@...&&*........+&!.;)&$.....;.@&@....&&+..........................&&&&&&&&&&&&&&&&&&&&&&&...........@&&&&&&&&&&&&&&&;...........+&&&&&&&&&&&&&,,,,,,,,%&&&&&&&&&&&&&&&),,,,,,'&&&&&&&&&&&&&>,,,,,,,,,,&&&&&&&&&&&&&&&&",
+".!&&&&&&&&$@&&&&&&&&&&&&&&&&.........+@......................@&&&&;......&&&&&!+*##*+!+...$&&&&&)+*$!&&&&&@...!&*........*&!..@&);.....;&&!....!&+;.........................&&&&&&&&&&&&&&&&&&&&&&&#...........+&&&&&&&&&&&&$;.............;$&&&&&&&&&&&,,,,,,,,,-)&&&&&&&&&&&&',,,,,,,,-)&&&&&&&&&&',,,,,,,,,,%&&&&&&&&&&&&&&&&",
+".+&&&&&&&&&&&&&&&&&&&*$+@&&$........;&*......................!&&&&;......*&&&&&&&&&&&&!...;&&&&&&&&&&&&&&&@...&&*........*&!..+&&;;.;.;!&&!....@&@.;........................&&&&&&&&&&&&&&&&&&&&&&&!............;+&&&&&&&&@#.................;*$$$&&&&&&,,,,,,,,,,,%)&&&&&&&&>-,,,,,,,,,,,-')!&&&)',,,,,,,,,,,,&&&&&&&&&&&&&&&&&",
+"..&&&&&&&&&&&&&&&&&&!;..$&&+........+!.......................!&&&&;.......+&&&&&&&&&&&&....*&&&&&&&&&!@&&&!...&&*........+&&...!&&+#*+&&$&!....*&&+*+*......................&&&&&&&&&&&&&&&&&&&&&&&&*..............#++++#;........................&&&&&&,,,,,,,,,,,,,-%''''%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,'&&&&&&&&&&&&&&&&&",
+"..*&&&&&&&&&&&&&&&&&&&!!&&&;..**+*+*&#.......................!&&&!;........*!&&&&&&&&&@;....*!&&&&&&!;$&&&@...!&*........*&!...#!&&&&&&+.&!.....$&&&&!......................&&&&&&&&&&&&&&&&&&&&&&&&&#............................................&&&&&&,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,%&&&&&&&&&&&&&&&&&&",
+"...$&&&&&&&&&&&&&&&&&&&&&&*..;&&&&&&$........................*++++...........*+$@@$$+#........*$@@$*..#+++*...*+;........;+*....;+@!@$#..++......+@!!+......................&&&&&&&&&&&&&&&&&&&&&&&&&&;...........................................&&&&&&,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,%&&&&&&&&&&&&&&&&&&&",
+"...;&&&&&&&&&&&&&&&&&&&&&$.;@&&&&&&&........................................................................................................................................&&&&&&&&&&&&&&&&&&&&&&&&&&&*..........................................&&&&&&,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,'&&&&&&&&&&&&&&&&&&&&",
+"....;&&&&&&&&&&&&&&&&&&&&;.&&&&&&&&;........................................................................................................................................&&&&&&&&&&&&&&&&&&&&&&&&&&&&@;........................................&&&&&&,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,%!&&&&&&&&&&&&&&&&&&&&&",
+".....*&&&&&&&&&&&&&&&&&&$+&&&&&&&&;.........................................................................................................................................&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&!+;;....................................&&&&&&,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,--'!&&&&&&&&&&&&&&&&&&&&&&&",
+"......;&&&&&&&&&&&&&&&&&&&&&&&&&!;..........................................................................................................................................&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+".......;@&&&&&&&&&&&&&&&&&&&&&&$;...........................................................................................................................................&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+".........*&&&&&&&&&&&&&&&&&&&&*.............................................................................................................................................&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"...........+!&&&&&&&&&&&&&&!*...............................................................................................................................................&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+".............#+@&&&&&&&&!+;.................................................................................................................................................&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+".................;####;.....................................................................................................................................................&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"............................................................................................................................................................................&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"............................................................................................................................................................................&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"............................................................................................................................................................................&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"................................................................................................................................................................................................................................................................................................................................"};
diff --git a/ecos/packages/hal/arm/sa11x0/assabet/current/src/lcd_support.c b/ecos/packages/hal/arm/sa11x0/assabet/current/src/lcd_support.c
new file mode 100644
index 0000000..b55efe8
--- /dev/null
+++ b/ecos/packages/hal/arm/sa11x0/assabet/current/src/lcd_support.c
@@ -0,0 +1,632 @@
+//==========================================================================
+//
+// lcd_support.c
+//
+// SA1110/Assabet - LCD support routines
+//
+//==========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//==========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): gthomas
+// Contributors: gthomas
+// Date: 2000-06-05
+// Description: Tool used to test LCD stuff
+//####DESCRIPTIONEND####
+
+#include <pkgconf/system.h>
+
+#include <cyg/infra/diag.h>
+#include <cyg/hal/hal_io.h> // IO macros
+#include <cyg/hal/hal_arch.h> // Register state info
+#include <cyg/hal/hal_intr.h> // HAL interrupt macros
+
+#include <cyg/hal/hal_sa11x0.h> // Board definitions
+#include <cyg/hal/assabet.h>
+#include <cyg/hal/hal_cache.h>
+
+#ifdef CYGPKG_ISOINFRA
+# include <pkgconf/isoinfra.h>
+# ifdef CYGINT_ISO_STDIO_FORMATTED_IO
+# include <stdio.h> // sscanf
+# endif
+#endif
+
+#include "banner.xpm"
+
+#ifndef FALSE
+#define FALSE 0
+#define TRUE 1
+#endif
+
+static struct lcd_frame {
+ unsigned short palette[16];
+ unsigned short pixels[240][320];
+ unsigned char pad[256];
+} lcd_frame_buffer;
+
+#define RGB_RED(x) (((x)&0x1F)<<11)
+#define RGB_GREEN(x) (((x)&0x3F)<<5)
+#define RGB_BLUE(x) ((x)&0x1F)
+
+static volatile struct lcd_frame *fp;
+
+static int
+_hexdigit(char c)
+{
+ if ((c >= '0') && (c <= '9')) {
+ return c - '0';
+ } else
+ if ((c >= 'A') && (c <= 'F')) {
+ return (c - 'A') + 0x0A;
+ } else
+ if ((c >= 'a') && (c <= 'f')) {
+ return (c - 'a') + 0x0a;
+ }
+}
+
+static int
+_hex(char *cp)
+{
+ return (_hexdigit(*cp)<<4) | _hexdigit(*(cp+1));
+}
+
+static unsigned short
+parse_color(char *cp)
+{
+ int red, green, blue;
+
+ if (*cp == '#') {
+ red = _hex(cp+1);
+ green = _hex(cp+3);
+ blue = _hex(cp+5);
+ return RGB_RED(red>>3) | RGB_GREEN(green>>2) | RGB_BLUE(blue>>3);
+ } else {
+ // Should be "None"
+ return 0xFFFF;
+ }
+}
+
+#ifndef CYGINT_ISO_STDIO_FORMATTED_IO
+static int
+get_int(char **_cp)
+{
+ char *cp = *_cp;
+ char c;
+ int val = 0;
+
+ while ((c = *cp++) && (c != ' ')) {
+ if ((c >= '0') && (c <= '9')) {
+ val = val * 10 + (c - '0');
+ } else {
+ return -1;
+ }
+ }
+ *_cp = cp;
+ return val;
+}
+#endif
+
+void
+show_xpm(char *xpm[])
+{
+ int i, row, col;
+ char *cp;
+ int nrows, ncols, nclrs;
+ unsigned short colors[256]; // Mapped by character index
+
+ cp = xpm[0];
+#ifdef CYGINT_ISO_STDIO_FORMATTED_IO
+ if (sscanf(cp, "%d %d %d", &ncols, &nrows, &nclrs) != 3) {
+#else
+ if (((ncols = get_int(&cp)) < 0) ||
+ ((nrows = get_int(&cp)) < 0) ||
+ ((nclrs = get_int(&cp)) < 0)) {
+#endif
+ diag_printf("Can't parse XPM data, sorry\n");
+ return;
+ }
+ // diag_printf("%d rows, %d cols, %d colors\n", nrows, ncols, nclrs);
+
+ for (i = 0; i < 256; i++) {
+ colors[i] = 0x0000;
+ }
+ for (i = 0; i < nclrs; i++) {
+ cp = xpm[i+1];
+ colors[(unsigned int)*cp] = parse_color(&cp[4]);
+// printf("Color[%c] = %x\n", *cp, colors[(unsigned int)*cp]);
+ }
+
+ for (row = 0; row < nrows; row++) {
+ cp = xpm[nclrs+1+row];
+ for (col = 0; col < ncols; col++) {
+ fp->pixels[row][col] = colors[(unsigned int)*cp++];
+ }
+ }
+ // cyg_thread_delay(100);
+}
+
+// 8x8 Font - from Helios
+
+#define FIRST_CHAR 0x20
+#define LAST_CHAR 0x7E
+#define FONT_HEIGHT 8
+#define FONT_WIDTH 8
+#define CURSOR_ON 0x5F
+#define CURSOR_OFF 0x20
+static const char font_table[LAST_CHAR-FIRST_CHAR+1][8] =
+{
+ { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, /* */
+ { 0x18, 0x18, 0x18, 0x18, 0x18, 0x00, 0x18, 0x00 }, /* ! */
+ { 0x36, 0x36, 0x36, 0x00, 0x00, 0x00, 0x00, 0x00 }, /* " */
+ { 0x6C, 0x6C, 0xFE, 0x6C, 0xFE, 0x6C, 0x6C, 0x00 }, /* # */
+ { 0x30, 0xFC, 0x16, 0x7C, 0xD0, 0x7E, 0x18, 0x00 }, /* $ */
+ { 0x06, 0x66, 0x30, 0x18, 0x0C, 0x66, 0x60, 0x00 }, /* % */
+ { 0x1C, 0x36, 0x36, 0x1C, 0xB6, 0x66, 0xDC, 0x00 }, /* & */
+ { 0x18, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00 }, /* ' */
+ { 0x30, 0x18, 0x0C, 0x0C, 0x0C, 0x18, 0x30, 0x00 }, /* ( */
+ { 0x0C, 0x18, 0x30, 0x30, 0x30, 0x18, 0x0C, 0x00 }, /* ) */
+ { 0x00, 0x18, 0x7E, 0x3C, 0x7E, 0x18, 0x00, 0x00 }, /* * */
+ { 0x00, 0x18, 0x18, 0x7E, 0x18, 0x18, 0x00, 0x00 }, /* + */
+ { 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x0C }, /* , */
+ { 0x00, 0x00, 0x00, 0x7E, 0x00, 0x00, 0x00, 0x00 }, /* - */
+ { 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x00 }, /* . */
+ { 0x00, 0x60, 0x30, 0x18, 0x0C, 0x06, 0x00, 0x00 }, /* / */
+ { 0x3C, 0x66, 0x76, 0x7E, 0x6E, 0x66, 0x3C, 0x00 }, /* 0 */
+ { 0x18, 0x1C, 0x18, 0x18, 0x18, 0x18, 0x7E, 0x00 }, /* 1 */
+ { 0x3C, 0x66, 0x60, 0x30, 0x18, 0x0C, 0x7E, 0x00 }, /* 2 */
+ { 0x3C, 0x66, 0x60, 0x38, 0x60, 0x66, 0x3C, 0x00 }, /* 3 */
+ { 0x30, 0x38, 0x3C, 0x36, 0x7E, 0x30, 0x30, 0x00 }, /* 4 */
+ { 0x7E, 0x06, 0x3E, 0x60, 0x60, 0x66, 0x3C, 0x00 }, /* 5 */
+ { 0x38, 0x0C, 0x06, 0x3E, 0x66, 0x66, 0x3C, 0x00 }, /* 6 */
+ { 0x7E, 0x60, 0x30, 0x18, 0x0C, 0x0C, 0x0C, 0x00 }, /* 7 */
+ { 0x3C, 0x66, 0x66, 0x3C, 0x66, 0x66, 0x3C, 0x00 }, /* 8 */
+ { 0x3C, 0x66, 0x66, 0x7C, 0x60, 0x30, 0x1C, 0x00 }, /* 9 */
+ { 0x00, 0x00, 0x18, 0x18, 0x00, 0x18, 0x18, 0x00 }, /* : */
+ { 0x00, 0x00, 0x18, 0x18, 0x00, 0x18, 0x18, 0x0C }, /* ; */
+ { 0x30, 0x18, 0x0C, 0x06, 0x0C, 0x18, 0x30, 0x00 }, /* < */
+ { 0x00, 0x00, 0x7E, 0x00, 0x7E, 0x00, 0x00, 0x00 }, /* = */
+ { 0x0C, 0x18, 0x30, 0x60, 0x30, 0x18, 0x0C, 0x00 }, /* > */
+ { 0x3C, 0x66, 0x30, 0x18, 0x18, 0x00, 0x18, 0x00 }, /* ? */
+ { 0x3C, 0x66, 0x76, 0x56, 0x76, 0x06, 0x3C, 0x00 }, /* @ */
+ { 0x3C, 0x66, 0x66, 0x7E, 0x66, 0x66, 0x66, 0x00 }, /* A */
+ { 0x3E, 0x66, 0x66, 0x3E, 0x66, 0x66, 0x3E, 0x00 }, /* B */
+ { 0x3C, 0x66, 0x06, 0x06, 0x06, 0x66, 0x3C, 0x00 }, /* C */
+ { 0x1E, 0x36, 0x66, 0x66, 0x66, 0x36, 0x1E, 0x00 }, /* D */
+ { 0x7E, 0x06, 0x06, 0x3E, 0x06, 0x06, 0x7E, 0x00 }, /* E */
+ { 0x7E, 0x06, 0x06, 0x3E, 0x06, 0x06, 0x06, 0x00 }, /* F */
+ { 0x3C, 0x66, 0x06, 0x76, 0x66, 0x66, 0x3C, 0x00 }, /* G */
+ { 0x66, 0x66, 0x66, 0x7E, 0x66, 0x66, 0x66, 0x00 }, /* H */
+ { 0x7E, 0x18, 0x18, 0x18, 0x18, 0x18, 0x7E, 0x00 }, /* I */
+ { 0x7C, 0x30, 0x30, 0x30, 0x30, 0x36, 0x1C, 0x00 }, /* J */
+ { 0x66, 0x36, 0x1E, 0x0E, 0x1E, 0x36, 0x66, 0x00 }, /* K */
+ { 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x7E, 0x00 }, /* L */
+ { 0xC6, 0xEE, 0xFE, 0xD6, 0xD6, 0xC6, 0xC6, 0x00 }, /* M */
+ { 0x66, 0x66, 0x6E, 0x7E, 0x76, 0x66, 0x66, 0x00 }, /* N */
+ { 0x3C, 0x66, 0x66, 0x66, 0x66, 0x66, 0x3C, 0x00 }, /* O */
+ { 0x3E, 0x66, 0x66, 0x3E, 0x06, 0x06, 0x06, 0x00 }, /* P */
+ { 0x3C, 0x66, 0x66, 0x66, 0x56, 0x36, 0x6C, 0x00 }, /* Q */
+ { 0x3E, 0x66, 0x66, 0x3E, 0x36, 0x66, 0x66, 0x00 }, /* R */
+ { 0x3C, 0x66, 0x06, 0x3C, 0x60, 0x66, 0x3C, 0x00 }, /* S */
+ { 0x7E, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x00 }, /* T */
+ { 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x3C, 0x00 }, /* U */
+ { 0x66, 0x66, 0x66, 0x66, 0x66, 0x3C, 0x18, 0x00 }, /* V */
+ { 0xC6, 0xC6, 0xD6, 0xD6, 0xFE, 0xEE, 0xC6, 0x00 }, /* W */
+ { 0x66, 0x66, 0x3C, 0x18, 0x3C, 0x66, 0x66, 0x00 }, /* X */
+ { 0x66, 0x66, 0x66, 0x3C, 0x18, 0x18, 0x18, 0x00 }, /* Y */
+ { 0x7E, 0x60, 0x30, 0x18, 0x0C, 0x06, 0x7E, 0x00 }, /* Z */
+ { 0x3E, 0x06, 0x06, 0x06, 0x06, 0x06, 0x3E, 0x00 }, /* [ */
+ { 0x00, 0x06, 0x0C, 0x18, 0x30, 0x60, 0x00, 0x00 }, /* \ */
+ { 0x7C, 0x60, 0x60, 0x60, 0x60, 0x60, 0x7C, 0x00 }, /* ] */
+ { 0x3C, 0x66, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, /* ^ */
+ { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF }, /* _ */
+ { 0x0C, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, /* ` */
+ { 0x00, 0x00, 0x3C, 0x60, 0x7C, 0x66, 0x7C, 0x00 }, /* a */
+ { 0x06, 0x06, 0x3E, 0x66, 0x66, 0x66, 0x3E, 0x00 }, /* b */
+ { 0x00, 0x00, 0x3C, 0x66, 0x06, 0x66, 0x3C, 0x00 }, /* c */
+ { 0x60, 0x60, 0x7C, 0x66, 0x66, 0x66, 0x7C, 0x00 }, /* d */
+ { 0x00, 0x00, 0x3C, 0x66, 0x7E, 0x06, 0x3C, 0x00 }, /* e */
+ { 0x38, 0x0C, 0x0C, 0x3E, 0x0C, 0x0C, 0x0C, 0x00 }, /* f */
+ { 0x00, 0x00, 0x7C, 0x66, 0x66, 0x7C, 0x60, 0x3C }, /* g */
+ { 0x06, 0x06, 0x3E, 0x66, 0x66, 0x66, 0x66, 0x00 }, /* h */
+ { 0x18, 0x00, 0x1C, 0x18, 0x18, 0x18, 0x3C, 0x00 }, /* i */
+ { 0x18, 0x00, 0x1C, 0x18, 0x18, 0x18, 0x18, 0x0E }, /* j */
+ { 0x06, 0x06, 0x66, 0x36, 0x1E, 0x36, 0x66, 0x00 }, /* k */
+ { 0x1C, 0x18, 0x18, 0x18, 0x18, 0x18, 0x3C, 0x00 }, /* l */
+ { 0x00, 0x00, 0x6C, 0xFE, 0xD6, 0xD6, 0xC6, 0x00 }, /* m */
+ { 0x00, 0x00, 0x3E, 0x66, 0x66, 0x66, 0x66, 0x00 }, /* n */
+ { 0x00, 0x00, 0x3C, 0x66, 0x66, 0x66, 0x3C, 0x00 }, /* o */
+ { 0x00, 0x00, 0x3E, 0x66, 0x66, 0x3E, 0x06, 0x06 }, /* p */
+ { 0x00, 0x00, 0x7C, 0x66, 0x66, 0x7C, 0x60, 0xE0 }, /* q */
+ { 0x00, 0x00, 0x36, 0x6E, 0x06, 0x06, 0x06, 0x00 }, /* r */
+ { 0x00, 0x00, 0x7C, 0x06, 0x3C, 0x60, 0x3E, 0x00 }, /* s */
+ { 0x0C, 0x0C, 0x3E, 0x0C, 0x0C, 0x0C, 0x38, 0x00 }, /* t */
+ { 0x00, 0x00, 0x66, 0x66, 0x66, 0x66, 0x7C, 0x00 }, /* u */
+ { 0x00, 0x00, 0x66, 0x66, 0x66, 0x3C, 0x18, 0x00 }, /* v */
+ { 0x00, 0x00, 0xC6, 0xD6, 0xD6, 0xFE, 0x6C, 0x00 }, /* w */
+ { 0x00, 0x00, 0x66, 0x3C, 0x18, 0x3C, 0x66, 0x00 }, /* x */
+ { 0x00, 0x00, 0x66, 0x66, 0x66, 0x7C, 0x60, 0x3C }, /* y */
+ { 0x00, 0x00, 0x7E, 0x30, 0x18, 0x0C, 0x7E, 0x00 }, /* z */
+ { 0x30, 0x18, 0x18, 0x0E, 0x18, 0x18, 0x30, 0x00 }, /* { */
+ { 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x00 }, /* | */
+ { 0x0C, 0x18, 0x18, 0x70, 0x18, 0x18, 0x0C, 0x00 }, /* } */
+ { 0x8C, 0xD6, 0x62, 0x00, 0x00, 0x00, 0x00, 0x00 } /* ~ */
+};
+
+#define LCD_WIDTH 320
+#define LCD_HEIGHT 240
+#define LCD_DEPTH 16
+
+// This can be 1 or 2
+#define SCREEN_SCALE 2
+#define NIBBLES_PER_PIXEL (1*SCREEN_SCALE)
+#define PIXELS_PER_BYTE (2/NIBBLES_PER_PIXEL)
+#define PIXEL_MASK ((1<<PIXELS_PER_BYTE)-1)
+
+// Physical screen info
+//static int lcd_depth = LCD_DEPTH; // Should be 1, 2, or 4
+static int lcd_width = LCD_WIDTH;
+static int lcd_height = LCD_HEIGHT;
+
+// Virtual screen info
+static int curX = 0; // Last used position
+static int curY = 0;
+//static int width = LCD_WIDTH / (FONT_WIDTH*NIBBLES_PER_PIXEL);
+//static int height = LCD_HEIGHT / (FONT_HEIGHT*SCREEN_SCALE);
+static int fg = RGB_RED(0) | RGB_GREEN(0) | RGB_BLUE(0);
+static int bg = RGB_RED(31) | RGB_GREEN(63) | RGB_BLUE(31);
+#define SCREEN_WIDTH (LCD_WIDTH/FONT_WIDTH)
+#define SCREEN_HEIGHT (LCD_HEIGHT/FONT_HEIGHT)
+static char screen[SCREEN_HEIGHT][SCREEN_WIDTH];
+#define SCREEN_START 7
+
+// Functions
+static void lcd_drawc(cyg_int8 c, int x, int y);
+
+void
+lcd_init(int depth)
+{
+ // Currently only color/16bpp supported
+
+ unsigned long _fp;
+
+ // Frame buffer must be aligned on a 16 byte boundary
+ _fp = (((unsigned long)&lcd_frame_buffer) + 15) & ~15;
+ fp = (struct lcd_frame *)(_fp + SA11X0_RAM_BANK0_BASE);
+ // Enable LCD in 320x240 16bpp
+ *SA1110_DBAR1 = (unsigned long)&(fp->palette);
+ *SA1110_LCCR1 = 0x1D1D0930;
+ *SA1110_LCCR2 = 0xEF;
+ *SA1110_LCCR3 = 0x0c;
+ fp->palette[0] = 0x2000; // Tell controller 16 bits
+// *SA1110_LCCR0 = 0xBB; // B&W
+ *SA1110_LCCR0 = 0xB9; // Color
+// assabet_BCR(SA1110_BCR_LCD_BPP, SA1110_BCR_LCD_12BPP);
+ assabet_BCR(SA1110_BCR_LCD_BPP, SA1110_BCR_LCD_16BPP);
+ assabet_BCR(SA1110_BCR_LCD, SA1110_BCR_LCD_ON);
+ assabet_BCR(SA1110_BCR_BACKLIGHT, SA1110_BCR_BACKLIGHT);
+}
+
+// Clear screen
+void
+lcd_clear(void)
+{
+ int row, col;
+ for (row = 0; row < lcd_height; row++) {
+ for (col = 0; col < lcd_width; col++) {
+ fp->pixels[row][col] = bg;
+ }
+ }
+ for (row = 0; row < SCREEN_HEIGHT; row++) {
+ for (col = 0; col < SCREEN_WIDTH; col++) {
+ screen[row][col] = ' ';
+ }
+ }
+ // Note: Row 0 seems to wrap incorrectly
+ curX = 0; curY = SCREEN_START;
+ lcd_drawc(CURSOR_ON, curX, curY);
+ show_xpm(banner_xpm);
+}
+
+// Position cursor
+void
+lcd_moveto(int X, int Y)
+{
+ lcd_drawc(CURSOR_OFF, curX, curY);
+ if (X < 0) X = 0;
+ if (X >= SCREEN_WIDTH) X = SCREEN_WIDTH-1;
+ curX = X;
+ if (Y < SCREEN_START) Y = SCREEN_START;
+ if (Y >= SCREEN_HEIGHT) Y = SCREEN_HEIGHT-1;
+ curY = Y;
+ lcd_drawc(CURSOR_ON, curX, curY);
+}
+
+// Render a character at position (X,Y) with current background/foreground
+static void
+lcd_drawc(cyg_int8 c, int x, int y)
+{
+ // Currently hard-coded for 16bpp
+ cyg_uint8 bits;
+ cyg_uint16 *pixels;
+ int l, p;
+
+ screen[curY][curX] = c;
+ for (l = 0; l < FONT_HEIGHT; l++) {
+ bits = font_table[c-FIRST_CHAR][l];
+ pixels = &fp->pixels[curY*FONT_HEIGHT+l][curX*FONT_WIDTH];
+ for (p = 0; p < 8; p++) {
+ if (bits & 0x01) {
+ *pixels++ = fg;
+ } else {
+ *pixels++ = bg;
+ }
+ bits >>= 1;
+ }
+ }
+}
+
+static void
+lcd_scroll(void)
+{
+ int row, col;
+ cyg_uint8 *c1, *c2;
+ cyg_uint16 *p1, *p2;
+
+ // First scroll up the virtual screen
+ for (row = SCREEN_START; row < SCREEN_HEIGHT; row++) {
+ c1 = &screen[row-1][0];
+ c2 = &screen[row][0];
+ for (col = 0; col < SCREEN_WIDTH; col++) {
+ *c1++ = *c2++;
+ }
+ }
+ c1 = &screen[SCREEN_HEIGHT-1][0];
+ for (col = 0; col < SCREEN_WIDTH; col++) {
+ *c1++ = 0x20;
+ }
+ // Now the physical screen
+ for (row = FONT_HEIGHT*(SCREEN_START+1); row < LCD_HEIGHT; row++) {
+ p1 = &fp->pixels[row-FONT_HEIGHT][0];
+ p2 = &fp->pixels[row][0];
+ for (col = 0; col < LCD_WIDTH; col++) {
+ *p1++ = *p2++;
+ }
+ }
+ for (row = LCD_HEIGHT-FONT_HEIGHT; row < LCD_HEIGHT; row++) {
+ p1 = &fp->pixels[row][0];
+ for (col = 0; col < LCD_WIDTH; col++) {
+ *p1++ = bg;
+ }
+ }
+}
+
+// Draw one character at the current position
+void
+lcd_putc(cyg_int8 c)
+{
+ lcd_drawc(CURSOR_OFF, curX, curY);
+ switch (c) {
+ case '\r':
+ curX = 0;
+ break;
+ case '\n':
+ curY++;
+ if (curY == SCREEN_HEIGHT) {
+ lcd_scroll();
+ curY--;
+ }
+ break;
+ case '\b':
+ curX--;
+ if (curX < 0) {
+ curY--;
+ if (curY < 0) curY = 0;
+ curX = SCREEN_WIDTH-1;
+ }
+ break;
+ default:
+ lcd_drawc(c, curX, curY);
+ curX++;
+ if (curX == SCREEN_WIDTH) {
+ curY++;
+ curX = 0;
+ }
+ }
+ lcd_drawc(CURSOR_ON, curX, curY);
+}
+
+// Basic LCD 'printf()' support
+
+#include <stdarg.h>
+
+#define is_digit(c) ((c >= '0') && (c <= '9'))
+
+static int
+_cvt(unsigned long val, char *buf, long radix, char *digits)
+{
+ char temp[80];
+ char *cp = temp;
+ int length = 0;
+ if (val == 0) {
+ /* Special case */
+ *cp++ = '0';
+ } else {
+ while (val) {
+ *cp++ = digits[val % radix];
+ val /= radix;
+ }
+ }
+ while (cp != temp) {
+ *buf++ = *--cp;
+ length++;
+ }
+ *buf = '\0';
+ return (length);
+}
+
+int
+lcd_vprintf(void (*putc)(cyg_int8), const char *fmt0, va_list ap)
+{
+ char c, sign, *cp;
+ int left_prec, right_prec, zero_fill, length, pad, pad_on_right;
+ char buf[32];
+ long val;
+ while ((c = *fmt0++)) {
+ cp = buf;
+ length = 0;
+ if (c == '%') {
+ c = *fmt0++;
+ left_prec = right_prec = pad_on_right = 0;
+ if (c == '-') {
+ c = *fmt0++;
+ pad_on_right++;
+ }
+ if (c == '0') {
+ zero_fill = TRUE;
+ c = *fmt0++;
+ } else {
+ zero_fill = FALSE;
+ }
+ while (is_digit(c)) {
+ left_prec = (left_prec * 10) + (c - '0');
+ c = *fmt0++;
+ }
+ if (c == '.') {
+ c = *fmt0++;
+ zero_fill++;
+ while (is_digit(c)) {
+ right_prec = (right_prec * 10) + (c - '0');
+ c = *fmt0++;
+ }
+ } else {
+ right_prec = left_prec;
+ }
+ sign = '\0';
+ switch (c) {
+ case 'd':
+ case 'x':
+ case 'X':
+ val = va_arg(ap, long);
+ switch (c) {
+ case 'd':
+ if (val < 0) {
+ sign = '-';
+ val = -val;
+ }
+ length = _cvt(val, buf, 10, "0123456789");
+ break;
+ case 'x':
+ length = _cvt(val, buf, 16, "0123456789abcdef");
+ break;
+ case 'X':
+ length = _cvt(val, buf, 16, "0123456789ABCDEF");
+ break;
+ }
+ break;
+ case 's':
+ cp = va_arg(ap, char *);
+ length = strlen(cp);
+ break;
+ case 'c':
+ c = va_arg(ap, long /*char*/);
+ (*putc)(c);
+ continue;
+ default:
+ (*putc)('?');
+ }
+ pad = left_prec - length;
+ if (sign != '\0') {
+ pad--;
+ }
+ if (zero_fill) {
+ c = '0';
+ if (sign != '\0') {
+ (*putc)(sign);
+ sign = '\0';
+ }
+ } else {
+ c = ' ';
+ }
+ if (!pad_on_right) {
+ while (pad-- > 0) {
+ (*putc)(c);
+ }
+ }
+ if (sign != '\0') {
+ (*putc)(sign);
+ }
+ while (length-- > 0) {
+ (*putc)(c = *cp++);
+ if (c == '\n') {
+ (*putc)('\r');
+ }
+ }
+ if (pad_on_right) {
+ while (pad-- > 0) {
+ (*putc)(' ');
+ }
+ }
+ } else {
+ (*putc)(c);
+ if (c == '\n') {
+ (*putc)('\r');
+ }
+ }
+ }
+}
+
+int
+lcd_printf(char const *fmt, ...)
+{
+ int ret;
+ va_list ap;
+
+ va_start(ap, fmt);
+ ret = lcd_vprintf(lcd_putc, fmt, ap);
+ va_end(ap);
+ return (ret);
+}
+
+void
+set_bg(int red, int green, int blue)
+{
+ bg = RGB_RED(red) | RGB_GREEN(green) | RGB_BLUE(blue);
+}
+
+void
+set_fg(int red, int green, int blue)
+{
+ fg = RGB_RED(red) | RGB_GREEN(green) | RGB_BLUE(blue);
+}
diff --git a/ecos/packages/hal/arm/sa11x0/assabet/current/support/README b/ecos/packages/hal/arm/sa11x0/assabet/current/support/README
new file mode 100644
index 0000000..b4785e9
--- /dev/null
+++ b/ecos/packages/hal/arm/sa11x0/assabet/current/support/README
@@ -0,0 +1,6 @@
+This directory contains programs/files obtained from the Intel
+developer's website - http://developer.intel.com/
+
+SA1110Jflash.tgz - A set of tools for updating the flash devices
+ on the Assabet board in place using a parallel
+ port on either Linux or Windows. \ No newline at end of file
diff --git a/ecos/packages/hal/arm/sa11x0/assabet/current/support/SA1110Jflash.tgz b/ecos/packages/hal/arm/sa11x0/assabet/current/support/SA1110Jflash.tgz
new file mode 100644
index 0000000..33d735a
--- /dev/null
+++ b/ecos/packages/hal/arm/sa11x0/assabet/current/support/SA1110Jflash.tgz
Binary files differ
diff --git a/ecos/packages/hal/arm/sa11x0/brutus/current/ChangeLog b/ecos/packages/hal/arm/sa11x0/brutus/current/ChangeLog
new file mode 100644
index 0000000..1bc6567
--- /dev/null
+++ b/ecos/packages/hal/arm/sa11x0/brutus/current/ChangeLog
@@ -0,0 +1,186 @@
+2009-01-31 Bart Veer <bartv@ecoscentric.com>
+
+ * cdl/hal_arm_sa11x0_brutus.cdl: update compiler flags for
+ recent gcc
+
+2003-02-13 Patrick Doyle <wpd@delcomsys.com>
+ * src/brutus_misc.c: Replaced explicit prototype of memset with
+ #include <string.h>.
+
+2002-05-14 Jesper Skov <jskov@redhat.com>
+
+ * src/brutus_misc.c (hal_mmu_init): Fixed warning.
+
+2002-01-28 Jesper Skov <jskov@redhat.com>
+
+ * include/plf_io.h: Added.
+
+2001-08-15 Gary Thomas <gthomas@redhat.com>
+
+ * include/plf_mmap.h (HAL_VIRT_TO_PHYS_ADDRESS):
+ (HAL_PHYS_TO_VIRT_ADDRESS):
+ (HAL_VIRT_TO_UNCACHED_ADDRESS): Fix these macros - they didn't
+ handle the holes in DRAM properly.
+
+2001-03-08 Jesper Skov <jskov@redhat.com>
+
+ * cdl/hal_arm_sa11x0_brutus.cdl: Removed
+ CYGINT_HAL_VIRTUAL_VECTOR_SUPPORT_GUARANTEED which is now the
+ default.
+
+2001-02-23 Gary Thomas <gthomas@redhat.com>
+
+ * misc/redboot_ROM.ecm: Renamed from redboot_ROM.cfg
+
+ * misc/redboot_RAM.ecm: Renamed from redboot_RAM.cfg
+
+2001-02-20 Gary Thomas <gthomas@redhat.com>
+
+ * cdl/hal_arm_sa11x0_brutus.cdl: New CDL describing serial
+ ports - CYGHWR_HAL_ARM_SA11X0_UART1,3.
+
+2001-02-08 Jesper Skov <jskov@redhat.com>
+
+ * cdl/hal_arm_sa11x0_brutus.cdl: Respect channel configuration
+ constraints.
+
+2001-01-05 Hugo Tyson <hmt@redhat.com>
+
+ * include/plf_mmap.h: New file. Statically defined macros for
+ translation from virtual to physical and back, and to get an
+ uncached address for a normally-cached object. HAL_MM_PAGESIZE()
+ HAL_VIRT_TO_PHYS_ADDRESS() HAL_PHYS_TO_VIRT_ADDRESS()
+ HAL_VIRT_TO_UNCACHED_ADDRESS(). This included by the variant
+ hal's hal_cache.h for convenience and proximity to other memory
+ and cache features.
+
+2000-12-13 Hugo Tyson <hmt@redhat.com>
+
+ * src/brutus_misc.c: Use <cyg/hal/hal_mm.h> from the variant HAL
+ for definitions of all MM tables and so on.
+
+ * include/hal_platform_ints.h: Removed; it was the same in all
+ platforms so is now in the common variant hal, "hal_var_ints.h"
+ and accessible as CYGBLD_HAL_VAR_INTS_H <cyg/hal/hal_var_ints.h>
+
+2000-11-28 Drew Moseley <dmoseley@redhat.com>
+
+ * misc/redboot_RAM.cfg: Implement CYGSEM_REDBOOT_BSP_SYSCALLS.
+ * misc/redboot_ROM.cfg: Ditto.
+
+ * src/brutus_misc.c (brutus_program_new_stack): New function
+ for switching to an application stack when running a program under
+ a ROM monitor.
+
+ * cdl/hal_arm_sa11x0_brutus.cdl: Define HAL_ARCH_PROGRAM_NEW_STACK.
+
+2000-11-25 Jonathan Larmour <jlarmour@redhat.com>
+
+ * misc/redboot_RAM.cfg: Added new import file for redboot
+ * misc/redboot_ROM.cfg: Ditto
+
+2000-11-10 Gary Thomas <gthomas@redhat.com>
+
+ * cdl/hal_arm_sa11x0_brutus.cdl: Add RedBoot configuration.
+
+2000-10-20 Jonathan Larmour <jlarmour@redhat.com>
+
+ * include/pkgconf/mlt_arm_sa11x0_brutus_ram.mlt:
+ * include/pkgconf/mlt_arm_sa11x0_brutus_rom.mlt:
+ Add heap1 section
+
+ * include/pkgconf/mlt_arm_sa11x0_brutus_ram.h:
+ * include/pkgconf/mlt_arm_sa11x0_brutus_rom.h:
+ * include/pkgconf/mlt_arm_sa11x0_brutus_ram.ldi:
+ * include/pkgconf/mlt_arm_sa11x0_brutus_rom.ldi:
+ Regenerate
+
+2000-09-17 Gary Thomas <gthomas@redhat.com>
+
+ * cdl/hal_arm_sa11x0_brutus.cdl: Add platform/cpu identification strings.
+
+2000-07-05 Jesper Skov <jskov@redhat.com>
+
+ * cdl/hal_arm_sa11x0_brutus.cdl: Cleanup channel options.
+
+2000-06-26 Jesper Skov <jskov@redhat.com>
+
+ * include/hal_platform_ints.h: Removed Ctrl-c handling.
+
+ * cdl/hal_arm_sa11x0_brutus.cdl: Removed ROM_DEBUG_CHANNEL option.
+
+2000-06-19 Gary Thomas <gthomas@redhat.com>
+
+ * src/brutus_misc.c: Define proper MMU initialization.
+
+ * include/hal_platform_setup.h: Rework MMU initialization to
+ be closer to other SA1xx platforms (Assabet, EBSA285)
+
+2000-06-18 Gary Thomas <gthomas@redhat.com>
+
+ * include/pkgconf/mlt_arm_sa11x0_brutus_rom.ldi:
+ * include/pkgconf/mlt_arm_sa11x0_brutus_rom.mlt:
+ * include/pkgconf/mlt_arm_sa11x0_brutus_ram.mlt:
+ * include/pkgconf/mlt_arm_sa11x0_brutus_ram.ldi:
+ Incorporate new fixed vectors (used on all ARM platforms).
+
+2000-06-08 Gary Thomas <gthomas@redhat.com>
+
+ * include/hal_platform_setup.h: Adding ROM startup support.
+
+2000-06-05 Gary Thomas <gthomas@redhat.com>
+
+ * cdl/hal_arm_sa11x0_brutus.cdl: Default serial port is 0
+ (maps to UART 3 on J23).
+
+ * include/hal_platform_ints.h: Add missing GPIO interrupts.
+
+2000-06-04 Gary Thomas <gthomas@redhat.com>
+
+ * include/hal_platform_setup.h: 'sa1100' stuff renamed to 'sa11x0'.
+
+2000-06-01 Gary Thomas <gthomas@redhat.com>
+
+ * cdl/hal_arm_sa11x0_brutus.cdl: Adding ROM startup support.
+
+2000-05-12 John Dallaway <jld@redhat.com>
+
+ * cdl/hal_arm_sa11x0_brutus.cdl:
+
+ Fix calculation of CYGHWR_MEMORY_LAYOUT.
+
+2000-05-10 Gary Thomas <gthomas@redhat.com>
+
+ * current/include/pkgconf/mlt_arm_sa11x0_brutus_rom.h:
+ * current/include/pkgconf/mlt_arm_sa11x0_brutus_rom.ldi:
+ * current/include/pkgconf/mlt_arm_sa11x0_brutus_rom.mlt:
+ * current/include/pkgconf/mlt_arm_sa11x0_brutus_ram.mlt:
+ * current/include/pkgconf/mlt_arm_sa11x0_brutus_ram.h:
+ * current/include/pkgconf/mlt_arm_sa11x0_brutus_ram.ldi:
+ * current/include/hal_platform_ints.h:
+ * current/include/hal_platform_setup.h:
+ * current/cdl/hal_arm_sa11x0_brutus.cdl: New file(s).
+
+//===========================================================================
+// ####GPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 2 or (at your option) any
+// later version.
+//
+// This program is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the
+// Free Software Foundation, Inc., 51 Franklin Street,
+// Fifth Floor, Boston, MA 02110-1301, USA.
+// -------------------------------------------
+// ####GPLCOPYRIGHTEND####
+//===========================================================================
diff --git a/ecos/packages/hal/arm/sa11x0/brutus/current/cdl/hal_arm_sa11x0_brutus.cdl b/ecos/packages/hal/arm/sa11x0/brutus/current/cdl/hal_arm_sa11x0_brutus.cdl
new file mode 100644
index 0000000..f6e9c15
--- /dev/null
+++ b/ecos/packages/hal/arm/sa11x0/brutus/current/cdl/hal_arm_sa11x0_brutus.cdl
@@ -0,0 +1,349 @@
+# ====================================================================
+#
+# hal_arm_sa11x0_brutus.cdl
+#
+# ARM SA1100/Brutus platform HAL package configuration data
+#
+# ====================================================================
+## ####ECOSGPLCOPYRIGHTBEGIN####
+## -------------------------------------------
+## This file is part of eCos, the Embedded Configurable Operating System.
+## Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+##
+## eCos is free software; you can redistribute it and/or modify it under
+## the terms of the GNU General Public License as published by the Free
+## Software Foundation; either version 2 or (at your option) any later
+## version.
+##
+## eCos is distributed in the hope that it will be useful, but WITHOUT
+## ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+## FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+## for more details.
+##
+## You should have received a copy of the GNU General Public License
+## along with eCos; if not, write to the Free Software Foundation, Inc.,
+## 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+##
+## As a special exception, if other files instantiate templates or use
+## macros or inline functions from this file, or you compile this file
+## and link it with other works to produce a work based on this file,
+## this file does not by itself cause the resulting work to be covered by
+## the GNU General Public License. However the source code for this file
+## must still be made available in accordance with section (3) of the GNU
+## General Public License v2.
+##
+## This exception does not invalidate any other reasons why a work based
+## on this file might be covered by the GNU General Public License.
+## -------------------------------------------
+## ####ECOSGPLCOPYRIGHTEND####
+# ====================================================================
+######DESCRIPTIONBEGIN####
+#
+# Author(s): gthomas
+# Original data: gthomas
+# Contributors:
+# Date: 2000-05-08
+#
+#####DESCRIPTIONEND####
+#
+# ====================================================================
+cdl_package CYGPKG_HAL_ARM_SA11X0_BRUTUS {
+ display "ARM SA1100/Brutus evaluation board"
+ parent CYGPKG_HAL_ARM_SA11X0
+ hardware
+ include_dir cyg/hal
+ define_header hal_arm_sa11x0_brutus.h
+ description "
+ This HAL platform package provides generic
+ support for the Intel StrongARM SA1100 based evalation board,
+ known as 'brutus'."
+
+ compile brutus_misc.c
+
+ implements CYGINT_HAL_DEBUG_GDB_STUBS
+ implements CYGINT_HAL_DEBUG_GDB_STUBS_BREAK
+ implements CYGINT_HAL_VIRTUAL_VECTOR_SUPPORT
+
+ implements CYGHWR_HAL_ARM_SA11X0_UART1
+ implements CYGHWR_HAL_ARM_SA11X0_UART3
+
+ 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_brutus.h>"
+ puts $::cdl_header "#define HAL_PLATFORM_CPU \"StrongARM 1100\""
+ puts $::cdl_header "#define HAL_PLATFORM_BOARD \"Brutus development system\""
+ puts $::cdl_header "#define HAL_PLATFORM_EXTRA \"\""
+ puts $::cdl_header "#define HAL_ARCH_PROGRAM_NEW_STACK brutus_program_new_stack"
+ }
+
+ 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 Brutus 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_DEBUG_CHANNEL {
+ display "Debug serial port"
+ active_if CYGPRI_HAL_VIRTUAL_VECTOR_DEBUG_CHANNEL_CONFIGURABLE
+ flavor data
+ legal_values 0 to CYGNUM_HAL_VIRTUAL_VECTOR_COMM_CHANNELS-1
+ default_value 1
+ description "
+ The brutus 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"
+ active_if CYGPRI_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_CONFIGURABLE
+ flavor data
+ legal_values 0 to CYGNUM_HAL_VIRTUAL_VECTOR_COMM_CHANNELS-1
+ default_value 1
+ description "
+ The brutus 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 { CYGBLD_GLOBAL_WARNFLAGS . CYGBLD_ARCH_CFLAGS .
+ "-mcpu=strongarm1100 -g -O2 -ffunction-sections -fdata-sections -fno-rtti -fno-exceptions " }
+ 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 { CYGBLD_ARCH_LDFLAGS . "-mcpu=strongarm1100 -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_BRUTUS_OPTIONS {
+ display "StrongARM SA1100/BRUTUS 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_BRUTUS_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 Brutus HAL. These flags are used in addition
+ to the set of global flags."
+ }
+
+ cdl_option CYGPKG_HAL_ARM_SA11X0_BRUTUS_CFLAGS_REMOVE {
+ display "Suppressed compiler flags"
+ flavor data
+ no_define
+ default_value { "" }
+ description "
+ This option modifies the set of compiler flags for
+ building the StrongARM Brutus HAL. These flags are removed from
+ the set of global flags if present."
+ }
+
+ cdl_option CYGPKG_HAL_ARM_SA11X0_BRUTUS_TESTS {
+ display "StrongARM SA1100/Brutus tests"
+ flavor data
+ no_define
+# calculated { "tests/dram-test" }
+ calculated { "" }
+ description "
+ This option specifies the set of tests for the StrongARM Brutus HAL."
+ }
+ }
+
+ cdl_component CYGHWR_MEMORY_LAYOUT {
+ display "Memory layout"
+ flavor data
+ no_define
+ calculated { CYG_HAL_STARTUP == "RAM" ? "arm_sa11x0_brutus_ram" : \
+ "arm_sa11x0_brutus_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_brutus_ram.ldi>" : \
+ "<pkgconf/mlt_arm_sa11x0_brutus_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_brutus_ram.h>" : \
+ "<pkgconf/mlt_arm_sa11x0_brutus_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_component CYGPKG_REDBOOT_HAL_OPTIONS {
+ display "Redboot HAL options"
+ flavor none
+ no_define
+ parent CYGPKG_REDBOOT
+ active_if CYGPKG_REDBOOT
+ description "
+ This option lists the target's requirements for a valid Redboot
+ configuration."
+
+# compile -library=libextras.a redboot_cmds.c
+
+ 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 $< $@
+ }
+ }
+ }
+}
diff --git a/ecos/packages/hal/arm/sa11x0/brutus/current/include/brutus.h b/ecos/packages/hal/arm/sa11x0/brutus/current/include/brutus.h
new file mode 100644
index 0000000..f1e0dce
--- /dev/null
+++ b/ecos/packages/hal/arm/sa11x0/brutus/current/include/brutus.h
@@ -0,0 +1,58 @@
+#ifndef CYGONCE_BRUTUS_H
+#define CYGONCE_BRUTUS_H
+
+/*=============================================================================
+//
+// brutus.h
+//
+// Platform specific support (registers, etc)
+//
+//=============================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): gthomas
+// Contributors: gthomas
+// Date: 2000-05-08
+// Purpose: Intel SA1110/Brutus platform specific support routines
+// Description:
+// Usage: #include <cyg/hal/brutus.h>
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================*/
+
+/*---------------------------------------------------------------------------*/
+/* end of brutus.h */
+#endif /* CYGONCE_BRUTUS_H */
diff --git a/ecos/packages/hal/arm/sa11x0/brutus/current/include/hal_platform_setup.h b/ecos/packages/hal/arm/sa11x0/brutus/current/include/hal_platform_setup.h
new file mode 100644
index 0000000..82e2ce5
--- /dev/null
+++ b/ecos/packages/hal/arm/sa11x0/brutus/current/include/hal_platform_setup.h
@@ -0,0 +1,371 @@
+#ifndef CYGONCE_HAL_PLATFORM_SETUP_H
+#define CYGONCE_HAL_PLATFORM_SETUP_H
+
+/*=============================================================================
+//
+// hal_platform_setup.h
+//
+// Platform specific support for HAL (assembly code)
+//
+//=============================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): gthomas
+// Contributors: gthomas
+// Travis C. Furrer <furrer@mit.edu>
+// Date: 2000-05-08
+// Purpose: Intel SA1110/Assabet 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
+
+// Initialize HEX display.
+#define MCP_STAT (SA11X0_MCP_STATUS-SA11X0_MCP_CONTROL_0)
+#define MCP_CTRL0 (SA11X0_MCP_CONTROL_0-SA11X0_MCP_CONTROL_0)
+#define MCP_DATA2 (SA11X0_MCP_DATA_2-SA11X0_MCP_CONTROL_0)
+ .macro _init_HEX_DISPLAY
+ ldr r1, =SA11X0_MCP_CONTROL_0
+ ldr r2, =0xFFFFFFFF
+ str r2, [r1, #MCP_STAT]
+ ldr r2, =0x801F
+ orr r2, r2, #(3 << 16)
+ str r2, [r1, #MCP_DATA2]
+ ldr r2, =0x50000
+ str r2, [r1, #MCP_CTRL0]
+ .endm
+
+// Display value on hex LED display
+ .macro _set_LEDS,val
+ mov r0,#\val
+ orr r0,r0,#(1<<16)
+ ldr r1,=SA11X0_MCP_DATA_2
+ str r0,[r1]
+ .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)
+//
+// Note: This code has hardcoded values (taken from the uHAL
+// code for brutus provided at the Intel StrongARM
+// website) that are specific to the memory devices
+// used on the Brutus board.
+//
+// Brutus memory is as follows:
+// ROM 256K (assuming 32 bit accesses)
+// Flash 256K (assuming 32 bit accesses)
+// SRAM 512K
+// DRAM 16M (4M per bank)
+//
+// 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.
+//
+//
+// FIXME: Values for Brutus SRAM (NOT yet supported) are:
+// MDCAS0 = 0xCCCCCCCF
+// MDCAS1 = 0xFFFFFFFC
+// MDCAS2 = 0xFFFFFFFF
+// MDCNFG = 0 //DRAM not enabled
+//
+//
+// Configure Bank 0 (ROM) and Bank 1 (Flash) in MSC0 as
+// follows:
+//
+// Bank 0:
+// ROM type = Nonburst ROM or Flash EPROM
+// ROM bus width = as specified on ROM_SEL pin (s11)
+// ROM delay first access = 17 MCLK cycles
+// ROM delay next access = 0 (unused)
+// ROM recovery time = 2 MCLK cycles
+//
+// Bank 1:
+// ROM type = Nonburst ROM or SRAM
+// ROM bus width = 32 bits
+// ROM delay first access = 17 MCLK cycles
+// ROM delay next access = 20 MCLK cycles
+// ROM recovery time = 1 MCLK cycles
+//
+//
+// Configure Bank 2 (SRAM) and Bank 3 (External Register)
+// in MSC1 as follows:
+//
+// Bank 2:
+// ROM type = Nonburst ROM or SRAM
+// ROM bus width = 32 bits
+// ROM delay first access = 4 MCLK cycles
+// ROM delay next access = 2 MCLK cycles
+// ROM recovery time = 2 MCLK cycles
+//
+// Bank 3:
+// ROM type = Nonburst ROM or SRAM
+// ROM bus width = 32 bits
+// ROM delay first access = 5 MCLK cycles
+// ROM delay next access = 3 MCLK cycles
+// ROM recovery time = 4 MCLK cycles
+//
+//
+// Enable DRAM banks 0-3 and configure for:
+// 12 row address bits (brutus has 12x8 DRAMs)
+// CAS waveform shifted on DCLK
+// RAS precharges for 4 MCLK cycles
+// RAS asserts for 6 MCLK cycles during CBR
+// Data latched 3 DCLK cycles after CAS
+// 0x400 * 4 = 4096 MCLK cycles between refreshes
+//
+#define MDCFG (SA11X0_DRAM_CONFIGURATION-SA11X0_DRAM_CONFIGURATION)
+#define MDCAS0 (SA11X0_DRAM0_CAS_0-SA11X0_DRAM_CONFIGURATION)
+#define MDCAS1 (SA11X0_DRAM0_CAS_1-SA11X0_DRAM_CONFIGURATION)
+#define MDCAS2 (SA11X0_DRAM0_CAS_2-SA11X0_DRAM_CONFIGURATION)
+#define MSCTL0 (SA11X0_STATIC_CONTROL_0-SA11X0_DRAM_CONFIGURATION)
+#define MSCTL1 (SA11X0_STATIC_CONTROL_1-SA11X0_DRAM_CONFIGURATION)
+ .macro _init_MEM_INTERFACES
+ /* Do nothing if DRAM already configured */
+ ldr r1,=SA11X0_DRAM_CONFIGURATION
+ ldr r1,[r1]
+ ands r1,r1,#0xF
+ bne 2003f
+ /* Configure Memory */
+ /* Configure Waveform Registers */
+ ldr r1,=SA11X0_DRAM_CONFIGURATION
+ ldr r0,=0x83C1E01F
+ str r0,[r1,#MDCAS0]
+ ldr r0,=0x3C1E0F07
+ str r0,[r1,#MDCAS1]
+ ldr r0,=0xFFFFF078
+ str r0,[r1,#MDCAS2]
+ /* Configure Static Memory Regs */
+ /* FIXME: I think this is right? See note on page 10-11. */
+ /* Value from uHAL was actually 13812080 */
+ ldr r0,=0x13802080
+ ldr r2,[r1,#MSCTL0]
+ and r2,r2,#4 /* Extract the ROM_SEL (s11) value */
+ orr r0,r0,r2 /* Merge in the ROM_SEL value */
+ str r0,[r1,#MSCTL0]
+ /* FIXME: I think this is right? See note on page 10-11. */
+ /* Value from uHAL was actually 42210119 */
+ ldr r0,=0x42200118
+ str r0,[r1,#MSCTL1]
+ /* FIXME: According to the SA11X0 Manual, we need to force */
+ /* a certain number of refreshes here by doing reads */
+ /* to the disabled banks. However, the uHAL code */
+ /* doesn't seem to do this, so we skip it here too */
+ /* for now. */
+ /* Configure DRAM Registers */
+ ldr r0,=0x0801A9BF
+ str r0,[r1,#MDCFG]
+ /* Wait for DRAM to be ready for use (as in uHAL code) */
+ /* FIXME: why do we need to do this? */
+ mov r0,#0x200
+2002: subs r0,r0,#1
+ bne 2002b
+2003:
+ .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(15)
+
+ _init_PERIPHERAL_PINS
+ _set_LEDS(13)
+
+ _set_CLOCK_FREQUENCY
+ _enable_CLOCK_SWITCHING
+ _set_LEDS(12)
+
+ _init_MEM_INTERFACES
+ _set_LEDS(11)
+
+ // 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(9)
+ // 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(8)
+
+ .endm
+
+#else // STARTUP_ROM
+#define PLATFORM_SETUP1
+#endif
+
+/*---------------------------------------------------------------------------*/
+/* end of hal_platform_setup.h */
+#endif /* CYGONCE_HAL_PLATFORM_SETUP_H */
diff --git a/ecos/packages/hal/arm/sa11x0/brutus/current/include/pkgconf/mlt_arm_sa11x0_brutus_ram.h b/ecos/packages/hal/arm/sa11x0/brutus/current/include/pkgconf/mlt_arm_sa11x0_brutus_ram.h
new file mode 100644
index 0000000..cc0e139
--- /dev/null
+++ b/ecos/packages/hal/arm/sa11x0/brutus/current/include/pkgconf/mlt_arm_sa11x0_brutus_ram.h
@@ -0,0 +1,17 @@
+// eCos memory layout - Fri Oct 20 05:47:38 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 (0)
+#define CYGMEM_REGION_ram_SIZE (0xbfffff)
+#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 (0xbfffff - (size_t) CYG_LABEL_NAME (__heap1))
diff --git a/ecos/packages/hal/arm/sa11x0/brutus/current/include/pkgconf/mlt_arm_sa11x0_brutus_ram.ldi b/ecos/packages/hal/arm/sa11x0/brutus/current/include/pkgconf/mlt_arm_sa11x0_brutus_ram.ldi
new file mode 100644
index 0000000..e9e918f
--- /dev/null
+++ b/ecos/packages/hal/arm/sa11x0/brutus/current/include/pkgconf/mlt_arm_sa11x0_brutus_ram.ldi
@@ -0,0 +1,27 @@
+// eCos memory layout - Fri Oct 20 05:47:38 2000
+
+// This is a generated file - do not edit
+
+#include <cyg/infra/cyg_type.inc>
+
+MEMORY
+{
+ ram : ORIGIN = 0, LENGTH = 0xbfffff
+}
+
+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)
+ CYG_LABEL_DEFN(__heap1) = ALIGN (0x8);
+ SECTIONS_END
+}
diff --git a/ecos/packages/hal/arm/sa11x0/brutus/current/include/pkgconf/mlt_arm_sa11x0_brutus_ram.mlt b/ecos/packages/hal/arm/sa11x0/brutus/current/include/pkgconf/mlt_arm_sa11x0_brutus_ram.mlt
new file mode 100644
index 0000000..b3ce363
--- /dev/null
+++ b/ecos/packages/hal/arm/sa11x0/brutus/current/include/pkgconf/mlt_arm_sa11x0_brutus_ram.mlt
@@ -0,0 +1,13 @@
+version 0
+region ram 0 bfffff 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 1 0 1 heap1 heap1 !
+section heap1 0 8 0 0 0 0 0 0 !
diff --git a/ecos/packages/hal/arm/sa11x0/brutus/current/include/pkgconf/mlt_arm_sa11x0_brutus_rom.h b/ecos/packages/hal/arm/sa11x0/brutus/current/include/pkgconf/mlt_arm_sa11x0_brutus_rom.h
new file mode 100644
index 0000000..47a205e
--- /dev/null
+++ b/ecos/packages/hal/arm/sa11x0/brutus/current/include/pkgconf/mlt_arm_sa11x0_brutus_rom.h
@@ -0,0 +1,20 @@
+// eCos memory layout - Fri Oct 20 05:48:15 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 (0)
+#define CYGMEM_REGION_ram_SIZE (0xbfffff)
+#define CYGMEM_REGION_ram_ATTR (CYGMEM_REGION_ATTR_R | CYGMEM_REGION_ATTR_W)
+#define CYGMEM_REGION_rom (0x40000000)
+#define CYGMEM_REGION_rom_SIZE (0x40000)
+#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 (0xbfffff - (size_t) CYG_LABEL_NAME (__heap1))
diff --git a/ecos/packages/hal/arm/sa11x0/brutus/current/include/pkgconf/mlt_arm_sa11x0_brutus_rom.ldi b/ecos/packages/hal/arm/sa11x0/brutus/current/include/pkgconf/mlt_arm_sa11x0_brutus_rom.ldi
new file mode 100644
index 0000000..d31fc6b
--- /dev/null
+++ b/ecos/packages/hal/arm/sa11x0/brutus/current/include/pkgconf/mlt_arm_sa11x0_brutus_rom.ldi
@@ -0,0 +1,28 @@
+// eCos memory layout - Fri Oct 20 05:48:15 2000
+
+// This is a generated file - do not edit
+
+#include <cyg/infra/cyg_type.inc>
+
+MEMORY
+{
+ ram : ORIGIN = 0, LENGTH = 0xbfffff
+ rom : ORIGIN = 0x40000000, LENGTH = 0x40000
+}
+
+SECTIONS
+{
+ SECTIONS_BEGIN
+ SECTION_rom_vectors (rom, 0x40000000, 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)
+ CYG_LABEL_DEFN(__heap1) = ALIGN (0x8);
+ SECTIONS_END
+}
diff --git a/ecos/packages/hal/arm/sa11x0/brutus/current/include/pkgconf/mlt_arm_sa11x0_brutus_rom.mlt b/ecos/packages/hal/arm/sa11x0/brutus/current/include/pkgconf/mlt_arm_sa11x0_brutus_rom.mlt
new file mode 100644
index 0000000..b2e59da
--- /dev/null
+++ b/ecos/packages/hal/arm/sa11x0/brutus/current/include/pkgconf/mlt_arm_sa11x0_brutus_rom.mlt
@@ -0,0 +1,14 @@
+version 0
+region ram 0 bfffff 0 !
+region rom 40000000 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 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 40000000 40000000 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 !
diff --git a/ecos/packages/hal/arm/sa11x0/brutus/current/include/plf_io.h b/ecos/packages/hal/arm/sa11x0/brutus/current/include/plf_io.h
new file mode 100644
index 0000000..f5c953d
--- /dev/null
+++ b/ecos/packages/hal/arm/sa11x0/brutus/current/include/plf_io.h
@@ -0,0 +1,59 @@
+#ifndef CYGONCE_HAL_ARM_SA11X0_BRUTUS_PLF_IO_H
+#define CYGONCE_HAL_ARM_SA11X0_BRUTUS_PLF_IO_H
+
+/*=============================================================================
+//
+// plf_io.h
+//
+// Platform specific support (register layout, etc)
+//
+//=============================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jskov
+// Contributors: jskov
+// Date: 2002-01-28
+// Purpose: Platform specific support routines
+// Description:
+// Usage: #include <cyg/hal/hal_io.h>
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================*/
+
+#include <cyg/hal/brutus.h>
+
+#endif // CYGONCE_HAL_ARM_SA11X0_BRUTUS_PLF_IO_H
+// EOF plf_io.h
diff --git a/ecos/packages/hal/arm/sa11x0/brutus/current/include/plf_mmap.h b/ecos/packages/hal/arm/sa11x0/brutus/current/include/plf_mmap.h
new file mode 100644
index 0000000..71cc0c5
--- /dev/null
+++ b/ecos/packages/hal/arm/sa11x0/brutus/current/include/plf_mmap.h
@@ -0,0 +1,155 @@
+#ifndef CYGONCE_HAL_SA11X0_PLATFORM_PLF_MMAP_H
+#define CYGONCE_HAL_SA11X0_PLATFORM_PLF_MMAP_H
+/*=============================================================================
+//
+// plf_mmap.h
+//
+// Platform specific memory map support
+//
+//=============================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): hmt
+// Contributors: hmt
+// Date: 2001-01-04
+// Purpose: Intel SA11x0 series platform-specific memory mapping macros
+// Description: Macros to convert a cached, virtual address to
+// 1) an uncached adddress for the same memory (if available)
+// 2) the equivalent physical address for giving to external
+// hardware eg. DMA engines.
+//
+// NB: this mapping is expressed here statically, independent
+// of the actual mapping installed in the MMAP table. So if
+// someone changes that, or its initialisation is changed,
+// then this module must change. This is intended to be
+// efficient at a cost of generality. It is also intended to
+// be called with constants (such as &my_struct) as input
+// args, so that all the work can be done at compile time,
+// with optimization on.
+//
+// Usage: #include <cyg/hal/hal_cache.h>
+// (which includes this file itself)
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================*/
+
+#include <cyg/hal/hal_misc.h>
+
+// Get the pagesize for a particular virtual address:
+
+// This does not depend on the vaddr.
+#define HAL_MM_PAGESIZE( vaddr, pagesize ) CYG_MACRO_START \
+ (pagesize) = SZ_1M; \
+CYG_MACRO_END
+
+// Get the physical address from a virtual address:
+
+// Only RAM and ROM are mapped; we just pass through all other values,
+// rather than detecting nonexistent areas here.
+
+#define HAL_VIRT_TO_PHYS_ADDRESS( vaddr, paddr ) CYG_MACRO_START \
+ cyg_uint32 _v_ = (cyg_uint32)(vaddr); \
+ if ( 4 * SZ_1M > _v_ ) /* 4Mb of SDRAM Bank 0 from 0-4Mb */ \
+ _v_ += 0xc00u * SZ_1M; \
+ if ( 8 * SZ_1M > _v_ ) /* 4Mb of SDRAM Bank 1 from 4-8Mb */ \
+ _v_ += (0xc80u * SZ_1M) - (4 * SZ_1M); \
+ if ( 12 * SZ_1M > _v_ ) /* 4Mb of SDRAM Bank 2 from 8-12Mb */ \
+ _v_ += (0xd00u * SZ_1M) - (8 * SZ_1M); \
+ if ( 16 * SZ_1M > _v_ ) /* 4Mb of SDRAM Bank 3 from 12-16M */ \
+ _v_ += (0xd80u * SZ_1M) - (12 * SZ_1M); \
+ else if ( 0x400u * SZ_1M > _v_ ) /* Space between RAM and mapped ROM */\
+ /* no change */ ; \
+ else if ( 0x401u * SZ_1M > _v_ ) /* Mapped boot ROM size 1Mb */ \
+ _v_ -= 0x400u * SZ_1M; \
+ else /* Rest of it */ \
+ /* no change */ ; \
+ (paddr) = _v_; \
+CYG_MACRO_END
+
+// Get the virtual address for a physical address:
+
+// Only RAM and ROM are mapped; we just pass through all other values,
+// rather than detecting nonexistent areas here.
+
+#define HAL_PHYS_TO_VIRT_ADDRESS( paddr, vaddr ) CYG_MACRO_START \
+ cyg_uint32 _p_ = (cyg_uint32)(paddr); \
+ if ( 1 * SZ_1M > _p_ ) /* 1Mb Boot ROM mapped to 0x400Mb */ \
+ _p_ += 0x400u * SZ_1M; \
+ else if ( 0xc00u * SZ_1M > _p_ ) /* Space between ROM and SDRAM */ \
+ /* no change */ ; \
+ else if ( 0xc04u * SZ_1M > _p_ ) /* Raw RAM bank 0, 4Mb at 0xc00 */ \
+ _p_ -= 0xc00u * SZ_1M; \
+ else if ( 0xc80u * SZ_1M > _p_ ) /* Space between SDRAM banks */ \
+ /* no change */ ; \
+ else if ( 0xc84u * SZ_1M > _p_ ) /* Raw RAM bank 1, 4Mb at 0xc80 */ \
+ _p_ -= (0xc80u * SZ_1M) - (4 * SZ_1M); \
+ else if ( 0xd00u * SZ_1M > _p_ ) /* Space between SDRAM banks */ \
+ /* no change */ ; \
+ else if ( 0xd04u * SZ_1M > _p_ ) /* Raw RAM bank 2, 4Mb at 0xd00 */ \
+ _p_ -= (0xd00u * SZ_1M) - (8 * SZ_1M); \
+ else if ( 0xd80u * SZ_1M > _p_ ) /* Space between SDRAM banks */ \
+ /* no change */ ; \
+ else if ( 0xd84u * SZ_1M > _p_ ) /* Raw RAM bank 3, 4Mb at 0xd80 */ \
+ _p_ -= (0xd80u * SZ_1M) - (12 * SZ_1M); \
+ else /* Rest of it */ \
+ /* no change */ ; \
+ (vaddr) = _p_ ; \
+CYG_MACRO_END
+
+// Get a non-cacheable address for accessing the same store as a virtual
+// (assumed cachable) address:
+
+// Only RAM is mapped: ROM is only available cachable, everything else is
+// not cachable anyway.
+
+#define HAL_VIRT_TO_UNCACHED_ADDRESS( vaddr, uaddr ) CYG_MACRO_START \
+ cyg_uint32 _v_ = (cyg_uint32)(vaddr); \
+ if ( 4 * SZ_1M > _v_ ) /* 4Mb of SDRAM Bank 0 from 0-4Mb */ \
+ _v_ += 0xc00u * SZ_1M; \
+ if ( 8 * SZ_1M > _v_ ) /* 4Mb of SDRAM Bank 1 from 4-8Mb */ \
+ _v_ += (0xc80u * SZ_1M) - (4 * SZ_1M); \
+ if ( 12 * SZ_1M > _v_ ) /* 4Mb of SDRAM Bank 2 from 8-12Mb */ \
+ _v_ += (0xd00u * SZ_1M) - (8 * SZ_1M); \
+ if ( 16 * SZ_1M > _v_ ) /* 4Mb of SDRAM Bank 3 from 12-16M */ \
+ _v_ += (0xd80u * SZ_1M) - (12 * SZ_1M); \
+ else /* Everything else is already uncacheable or is ROM */ \
+ /* no change */ ; \
+ (uaddr) = _v_ ; \
+CYG_MACRO_END
+
+//---------------------------------------------------------------------------
+#endif // CYGONCE_HAL_SA11X0_PLATFORM_PLF_MMAP_H
+// EOF plf_mmap.h
diff --git a/ecos/packages/hal/arm/sa11x0/brutus/current/misc/redboot_RAM.ecm b/ecos/packages/hal/arm/sa11x0/brutus/current/misc/redboot_RAM.ecm
new file mode 100644
index 0000000..320c28f
--- /dev/null
+++ b/ecos/packages/hal/arm/sa11x0/brutus/current/misc/redboot_RAM.ecm
@@ -0,0 +1,61 @@
+cdl_savefile_version 1;
+cdl_savefile_command cdl_savefile_version {};
+cdl_savefile_command cdl_savefile_command {};
+cdl_savefile_command cdl_configuration { description hardware template package };
+cdl_savefile_command cdl_package { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_component { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_option { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_interface { value_source user_value wizard_value inferred_value };
+
+cdl_configuration eCos {
+ description "" ;
+ hardware brutus ;
+ template redboot ;
+ package -hardware CYGPKG_HAL_ARM current ;
+ package -hardware CYGPKG_HAL_ARM_SA11X0 current ;
+ package -hardware CYGPKG_HAL_ARM_SA11X0_BRUTUS current ;
+ package -hardware CYGPKG_IO_SERIAL_ARM_SA11X0 current ;
+ package -template CYGPKG_HAL current ;
+ package -template CYGPKG_INFRA current ;
+ package -template CYGPKG_REDBOOT current ;
+};
+
+cdl_option CYGBLD_BUILD_GDB_STUBS {
+ user_value 0
+};
+
+cdl_option CYGDBG_HAL_COMMON_INTERRUPTS_SAVE_MINIMUM_CONTEXT {
+ user_value 0
+};
+
+cdl_option CYGDBG_HAL_COMMON_CONTEXT_SAVE_MINIMUM {
+ inferred_value 0
+};
+
+cdl_option CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS {
+ inferred_value 1
+};
+
+cdl_option CYGDBG_HAL_DEBUG_GDB_BREAK_SUPPORT {
+ inferred_value 1
+};
+
+cdl_option CYGDBG_HAL_DEBUG_GDB_CTRLC_SUPPORT {
+ inferred_value 0
+};
+
+cdl_option CYGSEM_HAL_USE_ROM_MONITOR {
+ inferred_value 0 0
+};
+
+cdl_component CYG_HAL_STARTUP {
+ user_value RAM
+};
+
+cdl_option CYGBLD_BUILD_REDBOOT {
+ user_value 1
+};
+
+cdl_option CYGSEM_REDBOOT_BSP_SYSCALLS {
+ inferred_value 1
+};
diff --git a/ecos/packages/hal/arm/sa11x0/brutus/current/misc/redboot_ROM.ecm b/ecos/packages/hal/arm/sa11x0/brutus/current/misc/redboot_ROM.ecm
new file mode 100644
index 0000000..62ba205
--- /dev/null
+++ b/ecos/packages/hal/arm/sa11x0/brutus/current/misc/redboot_ROM.ecm
@@ -0,0 +1,65 @@
+cdl_savefile_version 1;
+cdl_savefile_command cdl_savefile_version {};
+cdl_savefile_command cdl_savefile_command {};
+cdl_savefile_command cdl_configuration { description hardware template package };
+cdl_savefile_command cdl_package { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_component { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_option { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_interface { value_source user_value wizard_value inferred_value };
+
+cdl_configuration eCos {
+ description "" ;
+ hardware brutus ;
+ template redboot ;
+ package -hardware CYGPKG_HAL_ARM current ;
+ package -hardware CYGPKG_HAL_ARM_SA11X0 current ;
+ package -hardware CYGPKG_HAL_ARM_SA11X0_BRUTUS current ;
+ package -hardware CYGPKG_IO_SERIAL_ARM_SA11X0 current ;
+ package -template CYGPKG_HAL current ;
+ package -template CYGPKG_INFRA current ;
+ package -template CYGPKG_REDBOOT current ;
+};
+
+cdl_option CYGBLD_BUILD_GDB_STUBS {
+ user_value 0
+};
+
+cdl_option CYGDBG_HAL_COMMON_INTERRUPTS_SAVE_MINIMUM_CONTEXT {
+ user_value 0
+};
+
+cdl_option CYGDBG_HAL_COMMON_CONTEXT_SAVE_MINIMUM {
+ inferred_value 0
+};
+
+cdl_option CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS {
+ inferred_value 1
+};
+
+cdl_option CYGDBG_HAL_DEBUG_GDB_BREAK_SUPPORT {
+ inferred_value 1
+};
+
+cdl_option CYGDBG_HAL_DEBUG_GDB_CTRLC_SUPPORT {
+ inferred_value 0
+};
+
+cdl_option CYGSEM_HAL_ROM_MONITOR {
+ user_value 1
+};
+
+cdl_option CYGSEM_HAL_USE_ROM_MONITOR {
+ inferred_value 0 0
+};
+
+cdl_component CYG_HAL_STARTUP {
+ user_value ROM
+};
+
+cdl_option CYGBLD_BUILD_REDBOOT {
+ user_value 1
+};
+
+cdl_option CYGSEM_REDBOOT_BSP_SYSCALLS {
+ inferred_value 1
+};
diff --git a/ecos/packages/hal/arm/sa11x0/brutus/current/src/brutus_misc.c b/ecos/packages/hal/arm/sa11x0/brutus/current/src/brutus_misc.c
new file mode 100644
index 0000000..ad5abd1
--- /dev/null
+++ b/ecos/packages/hal/arm/sa11x0/brutus/current/src/brutus_misc.c
@@ -0,0 +1,142 @@
+//==========================================================================
+//
+// brutus_misc.c
+//
+// HAL misc board support code for StrongARM SA1110/Brutus
+//
+//==========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//==========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): gthomas
+// Contributors: hmt
+// 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/brutus.h> // Platform specifics
+
+#include <cyg/infra/diag.h> // diag_printf
+
+// All the MM table layout is here:
+#include <cyg/hal/hal_mm.h>
+
+#include <string.h> // memset
+
+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_DACR_DEFAULT;
+ 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, 0x400, 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, 1, ARM_CACHEABLE, ARM_UNBUFFERABLE, ARM_ACCESS_PERM_RW_RW); /* Static RAM - 512K */
+ X_ARM_MMU_SECTION(0x180, 0x180, 1, ARM_UNCACHEABLE, ARM_UNBUFFERABLE, ARM_ACCESS_PERM_RW_RW); /* Static select 3 */
+ X_ARM_MMU_SECTION(0x200, 0x200, 256, ARM_UNCACHEABLE, ARM_UNBUFFERABLE, ARM_ACCESS_PERM_RW_RW); /* PCMCIA Socket 0 */
+ X_ARM_MMU_SECTION(0x300, 0x300, 256, ARM_UNCACHEABLE, ARM_UNBUFFERABLE, ARM_ACCESS_PERM_RW_RW); /* PCMCIA Sockets 1 */
+ X_ARM_MMU_SECTION(0x800, 0x800, 0x400, ARM_UNCACHEABLE, ARM_UNBUFFERABLE, ARM_ACCESS_PERM_RW_RW); /* StrongARM(R) Registers */
+ X_ARM_MMU_SECTION(0xC00, 0x000, 4, ARM_CACHEABLE, ARM_BUFFERABLE, ARM_ACCESS_PERM_RW_RW); /* DRAM Bank 0 */
+ X_ARM_MMU_SECTION(0xC80, 0x004, 4, ARM_CACHEABLE, ARM_BUFFERABLE, ARM_ACCESS_PERM_RW_RW); /* DRAM Bank 1 */
+ X_ARM_MMU_SECTION(0xD00, 0x008, 4, ARM_CACHEABLE, ARM_BUFFERABLE, ARM_ACCESS_PERM_RW_RW); /* DRAM Bank 2 */
+ X_ARM_MMU_SECTION(0xD80, 0x00C, 4, ARM_CACHEABLE, ARM_BUFFERABLE, ARM_ACCESS_PERM_RW_RW); /* DRAM Bank 3 */
+ X_ARM_MMU_SECTION(0xC00, 0xC00, 256, ARM_UNCACHEABLE, ARM_BUFFERABLE, ARM_ACCESS_PERM_RW_RW); /* DRAM Banks - raw access */
+ X_ARM_MMU_SECTION(0xE00, 0xE00, 128, ARM_CACHEABLE, ARM_BUFFERABLE, ARM_ACCESS_PERM_RW_RW); /* Zeros (Cache Clean) Bank */
+
+}
+
+//
+// Platform specific initialization
+//
+
+void
+plf_hardware_init(void)
+{
+}
+
+#include CYGHWR_MEMORY_LAYOUT_H
+typedef void code_fun(void);
+void brutus_program_new_stack(void *func)
+{
+ register CYG_ADDRESS stack_ptr asm("sp");
+ register CYG_ADDRESS old_stack asm("r4");
+ register code_fun *new_func asm("r0");
+ old_stack = stack_ptr;
+ stack_ptr = CYGMEM_REGION_ram + CYGMEM_REGION_ram_SIZE - sizeof(CYG_ADDRESS);
+ new_func = (code_fun*)func;
+ new_func();
+ stack_ptr = old_stack;
+ return;
+}
+
+// ------------------------------------------------------------------------
+// EOF brutus_misc.c
diff --git a/ecos/packages/hal/arm/sa11x0/cerf/current/ChangeLog b/ecos/packages/hal/arm/sa11x0/cerf/current/ChangeLog
new file mode 100644
index 0000000..cb30ab1
--- /dev/null
+++ b/ecos/packages/hal/arm/sa11x0/cerf/current/ChangeLog
@@ -0,0 +1,90 @@
+2009-01-31 Bart Veer <bartv@ecoscentric.com>
+
+ * cdl/hal_arm_sa11x0_cerf.cdl: update compiler flags for
+ recent gcc
+
+2003-11-01 Gary Thomas <gary@mlbassoc.com>
+
+ * cdl/hal_arm_sa11x0_cerf.cdl: Make port 1 (uart3) be default
+ console/debug channel. This is because the CerfCube only has
+ uart3 [physically] exposed, while the CerfBoard has uart1 as well.
+
+2003-09-21 Gary Thomas <gary@mlbassoc.com>
+
+ * misc/redboot_RAM.ecm:
+ * misc/redboot_ROM.ecm: Adjust for changes in RedBoot
+ template - DNS now must be enabled manually.
+
+2003-02-13 Patrick Doyle <wpd@delcomsys.com>
+ * src/cerf_misc.c: Replaced explicit prototype of memset with
+ #include <string.h>.
+
+2002-08-12 Mark Salter <msalter@redhat.com>
+
+ * misc/redboot_ROM.ecm: Remove CYGSEM_REDBOOT_ARM_LINUX_BOOT.
+ * misc/redboot_RAM.ecm: Ditto.
+
+2002-05-14 Jesper Skov <jskov@redhat.com>
+
+ * src/cerf_misc.c (hal_mmu_init): Fixed warning.
+
+2002-05-07 Gary Thomas <gthomas@redhat.com>
+
+ * cdl/hal_arm_sa11x0_cerf.cdl:
+ Standardize CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_DEFAULT usage.
+
+2002-05-01 Gary Thomas <gthomas@redhat.com>
+
+ * include/plf_mmap.h: Fix mapping macros (I/O region).
+
+2002-04-16 Gary Thomas <gthomas@redhat.com>
+
+ * src/cerf_misc.c (hal_mmu_init): Add unmapped DRAM.
+
+2002-02-05 Gary Thomas <gthomas@redhat.com>
+
+ * misc/redboot_ROM.ecm:
+ * misc/redboot_RAM.ecm: Update with ZLIB, latest template.
+
+ * cdl/hal_arm_sa11x0_cerf.cdl: Add product info for RedBoot.
+
+2002-02-04 Gary Thomas <gthomas@redhat.com>
+
+ * src/cerf_misc.c:
+ * misc/redboot_ROM.ecm:
+ * misc/redboot_RAM.ecm:
+ * include/pkgconf/mlt_arm_sa11x0_cerf_rom.mlt:
+ * include/pkgconf/mlt_arm_sa11x0_cerf_rom.ldi:
+ * include/pkgconf/mlt_arm_sa11x0_cerf_rom.h:
+ * include/pkgconf/mlt_arm_sa11x0_cerf_ram.mlt:
+ * include/pkgconf/mlt_arm_sa11x0_cerf_ram.ldi:
+ * include/pkgconf/mlt_arm_sa11x0_cerf_ram.h:
+ * include/plf_mmap.h:
+ * include/plf_io.h:
+ * include/hal_platform_setup.h:
+ * include/cerf.h:
+ * cdl/hal_arm_sa11x0_cerf.cdl: New file(s) - port to Intrinsyc CerfCube.
+
+//===========================================================================
+// ####GPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 2 or (at your option) any
+// later version.
+//
+// This program is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the
+// Free Software Foundation, Inc., 51 Franklin Street,
+// Fifth Floor, Boston, MA 02110-1301, USA.
+// -------------------------------------------
+// ####GPLCOPYRIGHTEND####
+//===========================================================================
diff --git a/ecos/packages/hal/arm/sa11x0/cerf/current/cdl/hal_arm_sa11x0_cerf.cdl b/ecos/packages/hal/arm/sa11x0/cerf/current/cdl/hal_arm_sa11x0_cerf.cdl
new file mode 100644
index 0000000..ab69704
--- /dev/null
+++ b/ecos/packages/hal/arm/sa11x0/cerf/current/cdl/hal_arm_sa11x0_cerf.cdl
@@ -0,0 +1,373 @@
+# ====================================================================
+#
+# hal_arm_sa11x0_cerf.cdl
+#
+# ARM SA1110/Cerf platform HAL package configuration data
+#
+# ====================================================================
+## ####ECOSGPLCOPYRIGHTBEGIN####
+## -------------------------------------------
+## This file is part of eCos, the Embedded Configurable Operating System.
+## Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+##
+## eCos is free software; you can redistribute it and/or modify it under
+## the terms of the GNU General Public License as published by the Free
+## Software Foundation; either version 2 or (at your option) any later
+## version.
+##
+## eCos is distributed in the hope that it will be useful, but WITHOUT
+## ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+## FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+## for more details.
+##
+## You should have received a copy of the GNU General Public License
+## along with eCos; if not, write to the Free Software Foundation, Inc.,
+## 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+##
+## As a special exception, if other files instantiate templates or use
+## macros or inline functions from this file, or you compile this file
+## and link it with other works to produce a work based on this file,
+## this file does not by itself cause the resulting work to be covered by
+## the GNU General Public License. However the source code for this file
+## must still be made available in accordance with section (3) of the GNU
+## General Public License v2.
+##
+## This exception does not invalidate any other reasons why a work based
+## on this file might be covered by the GNU General Public License.
+## -------------------------------------------
+## ####ECOSGPLCOPYRIGHTEND####
+# ====================================================================
+######DESCRIPTIONBEGIN####
+#
+# Author(s): gthomas
+# Original data: gthomas
+# Contributors:
+# Date: 2000-05-08
+#
+#####DESCRIPTIONEND####
+#
+# ====================================================================
+cdl_package CYGPKG_HAL_ARM_SA11X0_CERF {
+ display "ARM SA1110/Cerf evaluation board"
+ parent CYGPKG_HAL_ARM_SA11X0
+ hardware
+ include_dir cyg/hal
+ define_header hal_arm_sa11x0_cerf.h
+ description "
+ This HAL platform package provides generic
+ support for the Intel StrongARM SA1110 based evalation board,
+ known as 'cerf'."
+
+ compile cerf_misc.c
+
+ implements CYGINT_HAL_DEBUG_GDB_STUBS
+ implements CYGINT_HAL_DEBUG_GDB_STUBS_BREAK
+ implements CYGINT_HAL_VIRTUAL_VECTOR_SUPPORT
+
+ implements CYGHWR_HAL_ARM_SA11X0_UART1
+ implements CYGHWR_HAL_ARM_SA11X0_UART3
+
+ 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_cerf.h>"
+ puts $::cdl_header "#define HAL_PLATFORM_CPU \"StrongARM 1110\""
+ puts $::cdl_header "#define HAL_PLATFORM_BOARD \"Intrinsyc CerfCube\""
+ puts $::cdl_header "#define HAL_PLATFORM_EXTRA \"\""
+ puts $::cdl_header "#define HAL_PLATFORM_MACHINE_TYPE 31"
+ }
+
+ cdl_option CYGHWR_HAL_ARM_SA11X0_PROCESSOR_CLOCK_OVERRIDE_DEFAULT {
+ display "Processor clock rate"
+ calculated 191700
+ flavor data
+ description "The Cerf is optimal at this speed. Caution - selecting
+ higher speeds may be unreliable."
+ }
+
+ 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 Cerf 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_DEBUG_CHANNEL {
+ display "Debug serial port"
+ active_if CYGPRI_HAL_VIRTUAL_VECTOR_DEBUG_CHANNEL_CONFIGURABLE
+ flavor data
+ legal_values 0 to CYGNUM_HAL_VIRTUAL_VECTOR_COMM_CHANNELS-1
+ default_value CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_DEFAULT
+ description "
+ The cerf board has 3 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_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_CONSOLE_CHANNEL {
+ display "Diagnostic serial port"
+ active_if CYGPRI_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_CONFIGURABLE
+ flavor data
+ legal_values 0 to CYGNUM_HAL_VIRTUAL_VECTOR_COMM_CHANNELS-1
+ default_value CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_DEFAULT
+ description "
+ The cerf board has 3 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 { CYGBLD_GLOBAL_WARNFLAGS . CYGBLD_ARCH_CFLAGS .
+ "-mcpu=strongarm1100 -g -O2 -ffunction-sections -fdata-sections -fno-rtti -fno-exceptions " }
+ 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 { CYGBLD_ARCH_LDFLAGS . "-mcpu=strongarm1100 -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) --remove-section=.fixed_vectors -O binary $< $@
+ }
+ }
+ }
+
+ cdl_component CYGPKG_HAL_ARM_SA11X0_CERF_OPTIONS {
+ display "StrongARM SA1110/CERF 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 CYGSEM_HAL_ARM_SA11X0_CERF_NEPONSET_TIMINGS {
+ display "Enable special timings for Neponset board"
+ flavor bool
+ default_value 0
+ description "
+ Enable this option to force initialization of memory timing
+ parameters suitable for use with the Neponset expansion board.
+ This is optional as it does not work for some versions of
+ Cerf without the board plugged in."
+ }
+
+ cdl_option CYGPKG_HAL_ARM_SA11X0_CERF_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 Cerf HAL. These flags are used in addition
+ to the set of global flags."
+ }
+
+ cdl_option CYGPKG_HAL_ARM_SA11X0_CERF_CFLAGS_REMOVE {
+ display "Suppressed compiler flags"
+ flavor data
+ no_define
+ default_value { "" }
+ description "
+ This option modifies the set of compiler flags for
+ building the StrongARM Cerf HAL. These flags are removed from
+ the set of global flags if present."
+ }
+
+ cdl_option CYGPKG_HAL_ARM_SA11X0_CERF_TESTS {
+ display "StrongARM SA1110/Cerf tests"
+ flavor data
+ no_define
+# calculated { "tests/dram-test" }
+ calculated { "" }
+ description "
+ This option specifies the set of tests for the StrongARM Cerf HAL."
+ }
+ }
+
+ cdl_component CYGHWR_MEMORY_LAYOUT {
+ display "Memory layout"
+ flavor data
+ no_define
+ calculated { CYG_HAL_STARTUP == "RAM" ? "arm_sa11x0_cerf_ram" : \
+ "arm_sa11x0_cerf_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_cerf_ram.ldi>" : \
+ "<pkgconf/mlt_arm_sa11x0_cerf_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_cerf_ram.h>" : \
+ "<pkgconf/mlt_arm_sa11x0_cerf_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 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_REDBOOT_HAL_OPTIONS {
+ display "Redboot HAL options"
+ flavor none
+ no_define
+ parent CYGPKG_REDBOOT
+ active_if CYGPKG_REDBOOT
+ description "
+ This option lists the target's requirements for a valid Redboot
+ configuration."
+
+ 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 $< $@
+ }
+ }
+ }
+
+}
diff --git a/ecos/packages/hal/arm/sa11x0/cerf/current/include/cerf.h b/ecos/packages/hal/arm/sa11x0/cerf/current/include/cerf.h
new file mode 100644
index 0000000..b48f02b
--- /dev/null
+++ b/ecos/packages/hal/arm/sa11x0/cerf/current/include/cerf.h
@@ -0,0 +1,151 @@
+#ifndef CYGONCE_CERF_H
+#define CYGONCE_CERF_H
+
+/*=============================================================================
+//
+// cerf.h
+//
+// Platform specific support (register layout, etc)
+//
+//=============================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): gthomas
+// Contributors: gthomas
+// Date: 2000-05-08
+// Purpose: Intel SA1110/Cerf platform specific support routines
+// Description:
+// Usage: #include <cyg/hal/cerf.h>
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================*/
+
+
+#ifndef __ASSEMBLER__
+//
+// Board Control Register
+// Note: This register is write-only. Thus a shadow copy is provided so that
+// it may be safely updated/shared by multiple threads.
+//
+extern unsigned long _cerf_BCR; // Shadow copy
+
+extern void cerf_BCR(unsigned long mask, unsigned long value);
+
+#endif
+
+//
+// Signal assertion levels
+//
+#define SA1110_LOGIC_ONE(m) (m & 0xFFFFFFFF)
+#define SA1110_LOGIC_ZERO(m) (m & 0x00000000)
+
+//
+// SA1110/Cerf Board Control Register
+//
+#define SA1110_BOARD_CONTROL REG32_PTR(0x10000000)
+#define SA1110_BCR_MIN 0x00000000 // Reset state
+
+#define SA1110_BCR_CF_POWER 0x00000000 // 1 = CompactFlash power on (##### NA ######)
+#define SA1110_BCR_CF_POWER_ON SA1110_LOGIC_ONE(SA1110_BCR_CF_POWER)
+#define SA1110_BCR_CF_POWER_OFF SA1110_LOGIC_ZERO(SA1110_BCR_CF_POWER)
+#define SA1110_BCR_CF_RESET 0x00000000 // 1 = CompactFlash reset (##### NA #####)
+#define SA1110_BCR_CF_RESET_ENABLE SA1110_LOGIC_ONE(SA1110_BCR_CF_RESET)
+#define SA1110_BCR_CF_RESET_DISABLE SA1110_LOGIC_ZERO(SA1110_BCR_CF_RESET)
+#define SA1110_BCR_SOFT_RESET 0x00000004 // 0 = resets UCB1300, ADI7171, UDA1341
+#define SA1110_BCR_IRDA_FREQ 0x00000008 // 0 = SIR, 1 = MIR/FIR
+#define SA1110_BCR_IRDA_MD 0x00000030 // IrDA Mode & range
+#define SA1110_BCR_IRDA_MD_MAX 0x00000000 // Max range and power
+#define SA1110_BCR_IRDA_MD_OFF 0x00000010 // Shutdown
+#define SA1110_BCR_IRDA_MD_23 0x00000020 // 2/3 power
+#define SA1110_BCR_IRDA_MD_13 0x00000030 // 1/3 power
+#define SA1110_BCR_STEREO_LB 0x00000040 // 1 = Stereo loopback on
+#define SA1110_BCR_CF_BUS 0x00000000 // 0 = CompactFlash bus on (##### NA #####)
+#define SA1110_BCR_CF_BUS_ON SA1110_LOGIC_ZERO(SA1110_BCR_CF_BUS)
+#define SA1110_BCR_CF_BUS_OFF SA1110_LOGIC_ONE(SA1110_BCR_CF_BUS)
+#define SA1110_BCR_AUDIO_ON 0x00000100 // 1 = UDA1341, MIC, DAA power on
+#define SA1110_BCR_BACKLIGHT 0x00000200 // 1 = LCD backlight on
+#define SA1110_BCR_LCD_BPP 0x00000400 // 1 = 16 RGB, 0 = 12 RGB
+#define SA1110_BCR_LCD_16BPP SA1110_LOGIC_ONE(SA1110_BCR_LCD_BPP)
+#define SA1110_BCR_LCD_12BPP SA1110_LOGIC_ZERO(SA1110_BCR_LCD_BPP)
+#define SA1110_BCR_LCD 0x00000800 // 1 = LCD panel and controller on
+#define SA1110_BCR_LCD_ON SA1110_LOGIC_ONE(SA1110_BCR_LCD)
+#define SA1110_BCR_LCD_OFF SA1110_LOGIC_ZERO(SA1110_BCR_LCD)
+#define SA1110_BCR_RS232_ENABLE 0x00001000 // 1 = Enable RD232 signals
+#define SA1110_BCR_RED_LED 0x00000001 // 0 = Red LED on
+#define SA1110_BCR_RED_LED_ON SA1110_LOGIC_ZERO(SA1110_BCR_RED_LED)
+#define SA1110_BCR_RED_LED_OFF SA1110_LOGIC_ONE(SA1110_BCR_RED_LED)
+#define SA1110_BCR_GREEN_LED 0x00000002 // 0 = Green LED on
+#define SA1110_BCR_GREEN_LED_ON SA1110_LOGIC_ZERO(SA1110_BCR_GREEN_LED)
+#define SA1110_BCR_GREEN_LED_OFF SA1110_LOGIC_ONE(SA1110_BCR_GREEN_LED)
+#define SA1110_BCR_MOTOR 0x00000004 // 1 = Vibrator motor on
+#define SA1110_BCR_MOTOR_ON SA1110_LOGIC_ONE(SA1110_BCR_MOTOR)
+#define SA1110_BCR_MOTOR_OFF SA1110_LOGIC_ZERO(SA1110_BCR_MOTOR)
+#define SA1110_BCR_COM_DTR 0x00010000 // COM port Data Terminal Ready
+#define SA1110_BCR_COM_RTS 0x00020000 // COM port Request To Send
+#define SA1110_BCR_RADIO_WAKE 0x00040000 // 1 = Wake up CPU with radio
+#define SA1110_BCR_MUTE 0x00200000 // 1 = Audio muted
+
+#define SA1110_BCR_ETH_SLEEP (1 << 27) // Output pin to put Crystal LAN in sleep mode.
+
+//
+// Special purpose GPIO interrupt mappings
+//
+#define SA1110_CF_IRQ CYGNUM_HAL_INTERRUPT_GPIO22
+#define SA1110_CF_DETECT CYGNUM_HAL_INTERRUPT_GPIO23
+#define SA1110_IRQ_GPIO_ETH CYGNUM_HAL_INTERRUPT_GPIO26
+//
+// GPIO layout
+//
+#define SA1110_GPIO_CF_DETECT 0x00800000 // 0 = Compact Flash detect
+#define SA1110_GPIO_CF_PRESENT SA1110_LOGIC_ZERO(SA1110_GPIO_CF_DETECT)
+//#define SA1110_GPIO_CF_ABSENT SA1110_LOGIC_ONE(SA1110_GPIO_CF_DETECT)
+
+//
+// LCD Controller
+//
+#define SA1110_LCCR0 SA11X0_REGISTER(0x30100000)
+#define SA1110_LCSR SA11X0_REGISTER(0x30100004)
+#define SA1110_DBAR1 SA11X0_REGISTER(0x30100010)
+#define SA1110_DCAR1 SA11X0_REGISTER(0x30100014)
+#define SA1110_DBAR2 SA11X0_REGISTER(0x30100018)
+#define SA1110_DCAR2 SA11X0_REGISTER(0x3010001C)
+#define SA1110_LCCR1 SA11X0_REGISTER(0x30100020)
+#define SA1110_LCCR2 SA11X0_REGISTER(0x30100024)
+#define SA1110_LCCR3 SA11X0_REGISTER(0x30100028)
+
+/*---------------------------------------------------------------------------*/
+/* end of cerf.h */
+#endif /* CYGONCE_CERF_H */
diff --git a/ecos/packages/hal/arm/sa11x0/cerf/current/include/hal_platform_setup.h b/ecos/packages/hal/arm/sa11x0/cerf/current/include/hal_platform_setup.h
new file mode 100644
index 0000000..d139b65
--- /dev/null
+++ b/ecos/packages/hal/arm/sa11x0/cerf/current/include/hal_platform_setup.h
@@ -0,0 +1,322 @@
+#ifndef CYGONCE_HAL_PLATFORM_SETUP_H
+#define CYGONCE_HAL_PLATFORM_SETUP_H
+
+/*=============================================================================
+//
+// hal_platform_setup.h
+//
+// Platform specific support for HAL (assembly code)
+//
+//=============================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): gthomas
+// Contributors: gthomas
+// Date: 2000-05-08
+// Purpose: Intel SA1110/Assabet platform specific support routines
+// Description:
+// Usage: #include <cyg/hal/hal_platform_setup.h>
+// Only used by "vectors.S"
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================*/
+
+#include <pkgconf/system.h> // System-wide configuration info
+#include CYGBLD_HAL_VARIANT_H // Variant (SA11x0) specific configuration
+#include CYGBLD_HAL_PLATFORM_H // Platform specific configuration
+#include <cyg/hal/hal_sa11x0.h> // Variant specific hardware definitions
+#include <cyg/hal/hal_mmu.h> // MMU definitions
+#include <cyg/hal/cerf.h> // Platform specific hardware 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
+
+#define CAS0_WAVEFORM_VALUE 0xAAAAAA9F
+#define CAS1_WAVEFORM_VALUE 0xAAAAAAAA
+#define CAS2_WAVEFORM_VALUE 0xAAAAAAAA
+
+#define MSC0VALUE 0xFFFCFFFC
+#define MSC1VALUE 0xFFFFFFFF
+#define MSC2VALUE 0xFFFFFFFF
+
+#define DRAM_CONFIG_VALUE 0x72547254
+#define RFSH_CONFIG_VALUE 0x003002D1
+
+// Macros that handle the red debug LED wired to GPIO-1
+
+ .macro _LED_ON,led
+ ldr r1,=SA11X0_GPIO_PIN_OUTPUT_SET
+ mov r0,#(1<<\led)
+ str r0,[r1]
+ // Delay
+ ldr r1,=10000
+10: sub r1,r1,#1
+ cmp r1,#0
+ bne 10b
+ .endm
+
+ .macro _LED_OFF,led
+ ldr r1,=SA11X0_GPIO_PIN_OUTPUT_CLEAR
+ mov r0,#(1<<\led)
+ str r0,[r1]
+ // Delay
+ ldr r1,=10000
+10: sub r1,r1,#1
+ cmp r1,#0
+ bne 10b
+ .endm
+
+// This macro represents the initial startup code for the platform
+ .macro _platform_setup1
+
+ // Disable all interrupts (ICMR not specified on power-up)
+ ldr r1,=SA11X0_ICMR
+ mov r0,#0
+ str r0,[r1]
+
+ // Initialize the CPU.
+ mov r0, #0x0 // Get a zero to turn things off
+ mcr p15, 0, r0, c1, c0, 0 // MMU off
+ mcr p15, 0, r0, c8, c7, 0 // Flush TLB
+ mcr p15, 0, r0, c7, c7, 0 // Flush caches
+ nop
+ nop
+ nop
+ nop
+
+ // Disable IRQs and FIQs
+ mov r0, #(CPSR_IRQ_DISABLE | \
+ CPSR_FIQ_DISABLE | \
+ CPSR_SUPERVISOR_MODE)
+ msr cpsr, r0
+
+ // Set up GPIOs (LED1 off)
+ ldr r1,=SA11X0_GPIO_PIN_DIRECTION
+ ldr r2,=0x0320000f // Set LT1348,DREN,RXEN,CF and LEDs to be output
+ str r2,[r1]
+ ldr r3,=SA11X0_GPIO_PIN_OUTPUT_SET
+ ldr r2,=0x0300000f // Set the LT1348,DREN,RXEN and LEDs to 1.
+ str r2,[r3]
+ ldr r3,=SA11X0_GPIO_PIN_OUTPUT_CLEAR
+ ldr r2,=0x0020000f // Set CF reset,LEDS OFF
+ str r2,[r3]
+
+ // Turn on LED 0
+ _LED_ON 0
+
+ // Disable clock switching
+ mcr p15,0,r0,\
+ SA11X0_TEST_CLOCK_AND_IDLE_REGISTER,\
+ SA11X0_DISABLE_CLOCK_SWITCHING_RM,\
+ SA11X0_DISABLE_CLOCK_SWITCHING_OPCODE
+
+ // Set up processor clock
+ ldr r1,=SA11X0_PWR_MGR_PLL_CONFIG
+ ldr r2,=SA11X0_PLL_CLOCK
+ str r2,[r1]
+
+ // Turn clock switching back on
+ mcr p15,0,r0,\
+ SA11X0_TEST_CLOCK_AND_IDLE_REGISTER,\
+ SA11X0_ENABLE_CLOCK_SWITCHING_RM,\
+ SA11X0_ENABLE_CLOCK_SWITCHING_OPCODE
+ nop
+ nop
+
+ // Let the PLL settle down
+ ldr r1,=20000
+10: sub r1,r1,#1
+ cmp r1,#0
+ bne 10b
+
+ // Turn on LED 1
+ _LED_ON 1
+
+ // Initialize DRAM controller
+ ldr r1,=dram_table
+ ldr r2,=__exception_handlers
+ sub r1,r1,r2
+ ldr r2,[r1],#4 // First control register
+10: ldr r3,[r1],#4
+ str r3,[r2]
+ ldr r2,[r1],#4 // Next control register
+ cmp r2,#0
+ bne 10b
+
+ // Turn on LED 2
+ _LED_ON 2
+
+ // Enable UART
+ ldr r1,=SA1110_GPCLK_CONTROL_0
+ ldr r2,=SA1110_GPCLK_SUS_UART
+ str r2,[r1]
+
+ // Release DRAM hold (set by RESET)
+ ldr r1,=SA11X0_PWR_MGR_SLEEP_STATUS
+ ldr r2,=SA11X0_DRAM_CONTROL_HOLD
+ str r2,[r1]
+
+ // Perform 8 reads from unmapped/unenabled DRAM
+ ldr r1,=SA11X0_RAM_BANK0_BASE
+ ldr r2,[r1]
+ ldr r2,[r1]
+ ldr r2,[r1]
+ ldr r2,[r1]
+ ldr r2,[r1]
+ ldr r2,[r1]
+ ldr r2,[r1]
+ ldr r2,[r1]
+
+ // Enable DRAM bank 0
+ ldr r1,=SA11X0_DRAM_CONFIGURATION
+ ldr r2,=DRAM_CONFIG_VALUE
+ ldr r3,=0x00030003
+ orr r2, r2, r3
+ str r2,[r1]
+
+ // Wait for the DRAM to come up.
+ mov r1, #0x400
+0: subs r1, r1, #1
+ bne 0b
+
+ // Turn on LED 3
+ _LED_ON 3
+
+ b 19f
+
+// DRAM controller initialization
+dram_table:
+ .word SA11X0_DRAM0_CAS_0, CAS0_WAVEFORM_VALUE
+ .word SA11X0_DRAM0_CAS_1, CAS1_WAVEFORM_VALUE
+ .word SA11X0_DRAM0_CAS_2, CAS2_WAVEFORM_VALUE
+ .word SA11X0_DRAM2_CAS_0, CAS0_WAVEFORM_VALUE
+ .word SA11X0_DRAM2_CAS_1, CAS1_WAVEFORM_VALUE
+ .word SA11X0_DRAM2_CAS_2, CAS2_WAVEFORM_VALUE
+ .word SA11X0_REFRESH_CONFIGURATION, RFSH_CONFIG_VALUE
+ .word SA11X0_DRAM_CONFIGURATION, DRAM_CONFIG_VALUE
+ .word SA11X0_STATIC_CONTROL_0, MSC0VALUE
+ .word SA11X0_STATIC_CONTROL_1, MSC1VALUE
+ .word SA11X0_STATIC_CONTROL_2, MSC2VALUE
+ .word 0, 0
+
+19:
+ // Wakeup from deep sleep mode
+ ldr r1,=SA11X0_RESET_STATUS
+ ldr r2,[r1]
+ cmp r2,#SA11X0_SLEEP_MODE_RESET
+ bne 45f
+ ldr r1,=SA11X0_PWR_MGR_SCRATCHPAD
+ ldr r1,[r1]
+ mov pc,r1
+ nop
+45: nop
+
+ // Release peripheral hold (set by RESET)
+ ldr r1,=SA11X0_PWR_MGR_SLEEP_STATUS
+ ldr r2,=SA11X0_PERIPHERAL_CONTROL_HOLD
+ str r2,[r1]
+
+ // 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
+
+ // Turn OFF LED 0
+ _LED_OFF 0
+
+ // 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:
+ // Turn OFF LED 1
+ _LED_OFF 1
+
+ // Save shadow copy of BCR, also hardware configuration
+ ldr r1,=_cerf_BCR
+ str r2,[r1]
+ .endm
+
+#else // defined(CYG_HAL_STARTUP_ROM)
+#define PLATFORM_SETUP1
+#endif
+
+#define PLATFORM_VECTORS _platform_vectors
+ .macro _platform_vectors
+ .globl _cerf_BCR
+_cerf_BCR: .long 0 // Board Control register shadow
+ .endm
+
+/*---------------------------------------------------------------------------*/
+/* end of hal_platform_setup.h */
+#endif /* CYGONCE_HAL_PLATFORM_SETUP_H */
diff --git a/ecos/packages/hal/arm/sa11x0/cerf/current/include/pkgconf/mlt_arm_sa11x0_cerf_ram.h b/ecos/packages/hal/arm/sa11x0/cerf/current/include/pkgconf/mlt_arm_sa11x0_cerf_ram.h
new file mode 100644
index 0000000..290a952
--- /dev/null
+++ b/ecos/packages/hal/arm/sa11x0/cerf/current/include/pkgconf/mlt_arm_sa11x0_cerf_ram.h
@@ -0,0 +1,17 @@
+// eCos memory layout - Fri Oct 20 05:56:24 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 (0)
+#define CYGMEM_REGION_ram_SIZE (0x2000000)
+#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 (0x2000000 - (size_t) CYG_LABEL_NAME (__heap1))
diff --git a/ecos/packages/hal/arm/sa11x0/cerf/current/include/pkgconf/mlt_arm_sa11x0_cerf_ram.ldi b/ecos/packages/hal/arm/sa11x0/cerf/current/include/pkgconf/mlt_arm_sa11x0_cerf_ram.ldi
new file mode 100644
index 0000000..9b0b11c
--- /dev/null
+++ b/ecos/packages/hal/arm/sa11x0/cerf/current/include/pkgconf/mlt_arm_sa11x0_cerf_ram.ldi
@@ -0,0 +1,27 @@
+// eCos memory layout - Fri Oct 20 05:56:24 2000
+
+// This is a generated file - do not edit
+
+#include <cyg/infra/cyg_type.inc>
+
+MEMORY
+{
+ ram : ORIGIN = 0, LENGTH = 0x2000000
+}
+
+SECTIONS
+{
+ SECTIONS_BEGIN
+ SECTION_fixed_vectors (ram, 0x20, LMA_EQ_VMA)
+ SECTION_rom_vectors (ram, 0x20000, 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)
+ CYG_LABEL_DEFN(__heap1) = ALIGN (0x8);
+ SECTIONS_END
+}
diff --git a/ecos/packages/hal/arm/sa11x0/cerf/current/include/pkgconf/mlt_arm_sa11x0_cerf_ram.mlt b/ecos/packages/hal/arm/sa11x0/cerf/current/include/pkgconf/mlt_arm_sa11x0_cerf_ram.mlt
new file mode 100644
index 0000000..3504c74
--- /dev/null
+++ b/ecos/packages/hal/arm/sa11x0/cerf/current/include/pkgconf/mlt_arm_sa11x0_cerf_ram.mlt
@@ -0,0 +1,13 @@
+version 0
+region ram 0 2000000 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 20000 20000 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 1 0 1 heap1 heap1 !
+section heap1 0 8 0 0 0 0 0 0 !
diff --git a/ecos/packages/hal/arm/sa11x0/cerf/current/include/pkgconf/mlt_arm_sa11x0_cerf_rom.h b/ecos/packages/hal/arm/sa11x0/cerf/current/include/pkgconf/mlt_arm_sa11x0_cerf_rom.h
new file mode 100644
index 0000000..03e8e08
--- /dev/null
+++ b/ecos/packages/hal/arm/sa11x0/cerf/current/include/pkgconf/mlt_arm_sa11x0_cerf_rom.h
@@ -0,0 +1,20 @@
+// eCos memory layout - Fri Oct 20 05:56:55 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 (0)
+#define CYGMEM_REGION_ram_SIZE (0x2000000)
+#define CYGMEM_REGION_ram_ATTR (CYGMEM_REGION_ATTR_R | CYGMEM_REGION_ATTR_W)
+#define CYGMEM_REGION_rom (0x50000000)
+#define CYGMEM_REGION_rom_SIZE (0x1000000)
+#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 (0x2000000 - (size_t) CYG_LABEL_NAME (__heap1))
diff --git a/ecos/packages/hal/arm/sa11x0/cerf/current/include/pkgconf/mlt_arm_sa11x0_cerf_rom.ldi b/ecos/packages/hal/arm/sa11x0/cerf/current/include/pkgconf/mlt_arm_sa11x0_cerf_rom.ldi
new file mode 100644
index 0000000..877ef97
--- /dev/null
+++ b/ecos/packages/hal/arm/sa11x0/cerf/current/include/pkgconf/mlt_arm_sa11x0_cerf_rom.ldi
@@ -0,0 +1,28 @@
+// eCos memory layout - Fri Oct 20 05:56:55 2000
+
+// This is a generated file - do not edit
+
+#include <cyg/infra/cyg_type.inc>
+
+MEMORY
+{
+ ram : ORIGIN = 0, LENGTH = 0x2000000
+ rom : ORIGIN = 0x50000000, LENGTH = 0x1000000
+}
+
+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)
+ CYG_LABEL_DEFN(__heap1) = ALIGN (0x8);
+ SECTIONS_END
+}
diff --git a/ecos/packages/hal/arm/sa11x0/cerf/current/include/pkgconf/mlt_arm_sa11x0_cerf_rom.mlt b/ecos/packages/hal/arm/sa11x0/cerf/current/include/pkgconf/mlt_arm_sa11x0_cerf_rom.mlt
new file mode 100644
index 0000000..bc744fd
--- /dev/null
+++ b/ecos/packages/hal/arm/sa11x0/cerf/current/include/pkgconf/mlt_arm_sa11x0_cerf_rom.mlt
@@ -0,0 +1,14 @@
+version 0
+region ram 0 2000000 0 !
+region rom 50000000 1000000 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 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 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 !
diff --git a/ecos/packages/hal/arm/sa11x0/cerf/current/include/plf_io.h b/ecos/packages/hal/arm/sa11x0/cerf/current/include/plf_io.h
new file mode 100644
index 0000000..80a81e1
--- /dev/null
+++ b/ecos/packages/hal/arm/sa11x0/cerf/current/include/plf_io.h
@@ -0,0 +1,59 @@
+#ifndef CYGONCE_HAL_ARM_SA11X0_CERF_PLF_IO_H
+#define CYGONCE_HAL_ARM_SA11X0_CERF_PLF_IO_H
+
+/*=============================================================================
+//
+// plf_io.h
+//
+// Platform specific support (register layout, etc)
+//
+//=============================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jskov
+// Contributors: jskov
+// Date: 2002-01-28
+// Purpose: Platform specific support routines
+// Description:
+// Usage: #include <cyg/hal/hal_io.h>
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================*/
+
+#include <cyg/hal/cerf.h>
+
+#endif // CYGONCE_HAL_ARM_SA11X0_CERF_PLF_IO_H
+// EOF plf_io.h
diff --git a/ecos/packages/hal/arm/sa11x0/cerf/current/include/plf_mmap.h b/ecos/packages/hal/arm/sa11x0/cerf/current/include/plf_mmap.h
new file mode 100644
index 0000000..427e49e
--- /dev/null
+++ b/ecos/packages/hal/arm/sa11x0/cerf/current/include/plf_mmap.h
@@ -0,0 +1,139 @@
+#ifndef CYGONCE_HAL_SA11X0_PLATFORM_PLF_MMAP_H
+#define CYGONCE_HAL_SA11X0_PLATFORM_PLF_MMAP_H
+/*=============================================================================
+//
+// plf_mmap.h
+//
+// Platform specific memory map support
+//
+//=============================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): hmt
+// Contributors: hmt
+// Date: 2001-01-04
+// Purpose: Intel SA11x0 series platform-specific memory mapping macros
+// Description: Macros to convert a cached, virtual address to
+// 1) an uncached adddress for the same memory (if available)
+// 2) the equivalent physical address for giving to external
+// hardware eg. DMA engines.
+//
+// NB: this mapping is expressed here statically, independent
+// of the actual mapping installed in the MMAP table. So if
+// someone changes that, or its initialisation is changed,
+// then this module must change. This is intended to be
+// efficient at a cost of generality. It is also intended to
+// be called with constants (such as &my_struct) as input
+// args, so that all the work can be done at compile time,
+// with optimization on.
+//
+// Usage: #include <cyg/hal/hal_cache.h>
+// (which includes this file itself)
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================*/
+
+#include <cyg/hal/hal_misc.h>
+
+// Get the pagesize for a particular virtual address:
+
+// This does not depend on the vaddr.
+#define HAL_MM_PAGESIZE( vaddr, pagesize ) CYG_MACRO_START \
+ (pagesize) = SZ_1M; \
+CYG_MACRO_END
+
+// Get the physical address from a virtual address:
+
+// Only RAM and ROM are mapped; we just pass through all other values,
+// rather than detecting nonexistent areas here.
+
+#define HAL_VIRT_TO_PHYS_ADDRESS( vaddr, paddr ) CYG_MACRO_START \
+ cyg_uint32 _v_ = (cyg_uint32)(vaddr); \
+ if ( 32 * SZ_1M > _v_ ) /* 32Mb of SDRAM Bank 0 from 0-32Mb */ \
+ _v_ += 0xc00u * SZ_1M; \
+ else if ( 0x500u * SZ_1M > _v_ ) /* Space between RAM and mapped ROM */\
+ /* no change */ ; \
+ else if ( 0x520u * SZ_1M > _v_ ) /* Mapped boot ROM size 32Mb */ \
+ _v_ -= 0x500u * SZ_1M; \
+ else if ( 0xf00u * SZ_1M > _v_ ) /* Space between ROM and mapped I/O */\
+ /* no change */ ; \
+ else if ( 0xf10u * SZ_1M > _v_ ) /* Mapped I/O size 16Mb */ \
+ _v_ = (_v_ - 0xf00u * SZ_1M) + (0x080u * SZ_1M); \
+ else /* Rest of it */ \
+ /* no change */ ; \
+ (paddr) = _v_; \
+CYG_MACRO_END
+
+// Get the virtual address for a physical address:
+
+// Only RAM and ROM are mapped; we just pass through all other values,
+// rather than detecting nonexistent areas here.
+
+#define HAL_PHYS_TO_VIRT_ADDRESS( paddr, vaddr ) CYG_MACRO_START \
+ cyg_uint32 _p_ = (cyg_uint32)(paddr); \
+ if ( 32 * SZ_1M > _p_ ) /* 32Mb Boot ROM mapped to 0x500Mb */ \
+ _p_ += 0x500u * SZ_1M; \
+ else if ( 0x080u * SZ_1M > _p_ ) /* Space between ROM and I/O */ \
+ /* no change */ ; \
+ else if ( 0x090u * SZ_1M > _p_ ) /* I/O size 16Mb */ \
+ _p_ = (_p_ - 0x080u * SZ_1M) + (0xf00u * SZ_1M); \
+ else if ( 0xc00u * SZ_1M > _p_ ) /* Space between I/O and SDRAM */ \
+ /* no change */ ; \
+ else if ( 0xc20u * SZ_1M > _p_ ) /* Raw RAM size 32Mb */ \
+ _p_ -= 0xc00u * SZ_1M; \
+ else /* Rest of it */ \
+ /* no change */ ; \
+ (vaddr) = _p_ ; \
+CYG_MACRO_END
+
+// Get a non-cacheable address for accessing the same store as a virtual
+// (assumed cachable) address:
+
+// Only RAM is mapped: ROM is only available cachable, everything else is
+// not cachable anyway.
+
+#define HAL_VIRT_TO_UNCACHED_ADDRESS( vaddr, uaddr ) CYG_MACRO_START \
+ cyg_uint32 _v_ = (cyg_uint32)(vaddr); \
+ if ( 32 * SZ_1M > _v_ ) /* 32Mb of SDRAM Bank 0 from 0-32Mb */ \
+ _v_ += 0xc00u * SZ_1M; \
+ else /* Everything else is already uncacheable or is ROM */ \
+ /* no change */ ; \
+ (uaddr) = _v_ ; \
+CYG_MACRO_END
+
+//---------------------------------------------------------------------------
+#endif // CYGONCE_HAL_SA11X0_PLATFORM_PLF_MMAP_H
+// EOF plf_mmap.h
diff --git a/ecos/packages/hal/arm/sa11x0/cerf/current/misc/redboot_RAM.ecm b/ecos/packages/hal/arm/sa11x0/cerf/current/misc/redboot_RAM.ecm
new file mode 100644
index 0000000..1fffcea
--- /dev/null
+++ b/ecos/packages/hal/arm/sa11x0/cerf/current/misc/redboot_RAM.ecm
@@ -0,0 +1,132 @@
+cdl_savefile_version 1;
+cdl_savefile_command cdl_savefile_version {};
+cdl_savefile_command cdl_savefile_command {};
+cdl_savefile_command cdl_configuration { description hardware template package };
+cdl_savefile_command cdl_package { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_component { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_option { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_interface { value_source user_value wizard_value inferred_value };
+
+cdl_configuration eCos {
+ description "" ;
+ hardware cerf ;
+ template redboot ;
+ package -hardware CYGPKG_HAL_ARM current ;
+ package -hardware CYGPKG_HAL_ARM_SA11X0 current ;
+ package -hardware CYGPKG_HAL_ARM_SA11X0_CERF current ;
+ package -hardware CYGPKG_IO_SERIAL_ARM_SA11X0 current ;
+ package -hardware CYGPKG_DEVS_PCMCIA_CERF current ;
+ package -hardware CYGPKG_DEVS_FLASH_STRATA current ;
+ package -hardware CYGPKG_DEVS_FLASH_CERF current ;
+ package -hardware CYGPKG_IO_USB current ;
+ package -hardware CYGPKG_IO_USB_SLAVE current ;
+ package -hardware CYGPKG_DEVS_USB_SA11X0 current ;
+ package -hardware CYGPKG_DEVICES_WATCHDOG_ARM_SA11X0 current ;
+ package -hardware CYGPKG_DEVS_ETH_CF current ;
+ package -hardware CYGPKG_DEVS_ETH_ARM_CERF current ;
+ package -hardware CYGPKG_DEVS_ETH_CL_CS8900A current ;
+ package -template CYGPKG_HAL current ;
+ package -template CYGPKG_INFRA current ;
+ package -template CYGPKG_REDBOOT current ;
+ package -template CYGPKG_ISOINFRA current ;
+ package -template CYGPKG_LIBC_STRING current ;
+ package -template CYGPKG_CRC current ;
+ package CYGPKG_NS_DNS current ;
+ package CYGPKG_IO_FLASH current ;
+ package CYGPKG_IO_ETH_DRIVERS current ;
+ package CYGPKG_COMPRESS_ZLIB current ;
+};
+
+cdl_option CYGBLD_BUILD_GDB_STUBS {
+ user_value 0
+};
+
+cdl_option CYGFUN_LIBC_STRING_BSD_FUNCS {
+ inferred_value 0
+};
+
+cdl_option CYGNUM_HAL_COMMON_INTERRUPTS_STACK_SIZE {
+ user_value 4096
+};
+
+cdl_option CYGDBG_HAL_COMMON_INTERRUPTS_SAVE_MINIMUM_CONTEXT {
+ user_value 0
+};
+
+cdl_option CYGDBG_HAL_COMMON_CONTEXT_SAVE_MINIMUM {
+ inferred_value 0
+};
+
+cdl_option CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS {
+ inferred_value 1
+};
+
+cdl_option CYGDBG_HAL_DEBUG_GDB_BREAK_SUPPORT {
+ inferred_value 1
+};
+
+cdl_option CYGDBG_HAL_DEBUG_GDB_CTRLC_SUPPORT {
+ inferred_value 0
+};
+
+cdl_option CYGSEM_HAL_USE_ROM_MONITOR {
+ inferred_value 0 0
+};
+
+cdl_component CYG_HAL_STARTUP {
+ user_value RAM
+};
+
+cdl_component CYGBLD_BUILD_REDBOOT {
+ user_value 1
+};
+
+cdl_component CYGPKG_REDBOOT_NETWORKING {
+ user_value 1
+};
+
+cdl_option CYGBLD_REDBOOT_MIN_IMAGE_SIZE {
+ user_value 0x00040000
+};
+
+cdl_component CYGSEM_REDBOOT_FLASH_CONFIG {
+ user_value 1
+};
+
+cdl_component CYGSEM_REDBOOT_BSP_SYSCALLS {
+ inferred_value 1
+};
+
+cdl_option CYGHWR_REDBOOT_ARM_LINUX_EXEC_ADDRESS_DEFAULT {
+ inferred_value 0xC0008000
+};
+
+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_BSD_FUNCS_HEADER {
+ inferred_value 1 <cyg/libc/string/bsdstring.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_DNS_HEADER {
+ inferred_value 1 <cyg/ns/dns/dns.h>
+};
+
+cdl_option CYGPKG_NS_DNS_BUILD {
+ inferred_value 0
+};
+
+
diff --git a/ecos/packages/hal/arm/sa11x0/cerf/current/misc/redboot_ROM.ecm b/ecos/packages/hal/arm/sa11x0/cerf/current/misc/redboot_ROM.ecm
new file mode 100644
index 0000000..03a09eb
--- /dev/null
+++ b/ecos/packages/hal/arm/sa11x0/cerf/current/misc/redboot_ROM.ecm
@@ -0,0 +1,132 @@
+cdl_savefile_version 1;
+cdl_savefile_command cdl_savefile_version {};
+cdl_savefile_command cdl_savefile_command {};
+cdl_savefile_command cdl_configuration { description hardware template package };
+cdl_savefile_command cdl_package { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_component { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_option { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_interface { value_source user_value wizard_value inferred_value };
+
+cdl_configuration eCos {
+ description "" ;
+ hardware cerf ;
+ template redboot ;
+ package -hardware CYGPKG_HAL_ARM current ;
+ package -hardware CYGPKG_HAL_ARM_SA11X0 current ;
+ package -hardware CYGPKG_HAL_ARM_SA11X0_CERF current ;
+ package -hardware CYGPKG_IO_SERIAL_ARM_SA11X0 current ;
+ package -hardware CYGPKG_DEVS_PCMCIA_CERF current ;
+ package -hardware CYGPKG_DEVS_FLASH_STRATA current ;
+ package -hardware CYGPKG_DEVS_FLASH_CERF current ;
+ package -hardware CYGPKG_IO_USB current ;
+ package -hardware CYGPKG_IO_USB_SLAVE current ;
+ package -hardware CYGPKG_DEVS_USB_SA11X0 current ;
+ package -hardware CYGPKG_DEVICES_WATCHDOG_ARM_SA11X0 current ;
+ package -hardware CYGPKG_DEVS_ETH_CF current ;
+ package -hardware CYGPKG_DEVS_ETH_ARM_CERF current ;
+ package -hardware CYGPKG_DEVS_ETH_CL_CS8900A current ;
+ package -template CYGPKG_HAL current ;
+ package -template CYGPKG_INFRA current ;
+ package -template CYGPKG_REDBOOT current ;
+ package -template CYGPKG_ISOINFRA current ;
+ package -template CYGPKG_LIBC_STRING current ;
+ package -template CYGPKG_CRC current ;
+ package CYGPKG_NS_DNS current ;
+ package CYGPKG_IO_FLASH current ;
+ package CYGPKG_IO_ETH_DRIVERS current ;
+ package CYGPKG_COMPRESS_ZLIB current ;
+};
+
+cdl_option CYGBLD_BUILD_GDB_STUBS {
+ user_value 0
+};
+
+cdl_option CYGFUN_LIBC_STRING_BSD_FUNCS {
+ inferred_value 0
+};
+
+cdl_option CYGNUM_HAL_COMMON_INTERRUPTS_STACK_SIZE {
+ user_value 4096
+};
+
+cdl_option CYGDBG_HAL_COMMON_INTERRUPTS_SAVE_MINIMUM_CONTEXT {
+ user_value 0
+};
+
+cdl_option CYGDBG_HAL_COMMON_CONTEXT_SAVE_MINIMUM {
+ inferred_value 0
+};
+
+cdl_option CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS {
+ inferred_value 1
+};
+
+cdl_option CYGDBG_HAL_DEBUG_GDB_BREAK_SUPPORT {
+ inferred_value 1
+};
+
+cdl_option CYGDBG_HAL_DEBUG_GDB_CTRLC_SUPPORT {
+ inferred_value 0
+};
+
+cdl_option CYGSEM_HAL_ROM_MONITOR {
+ user_value 1
+};
+
+cdl_option CYGSEM_HAL_USE_ROM_MONITOR {
+ inferred_value 0 0
+};
+
+cdl_component CYG_HAL_STARTUP {
+ user_value ROM
+};
+
+cdl_component CYGBLD_BUILD_REDBOOT {
+ user_value 1
+};
+
+cdl_component CYGPKG_REDBOOT_NETWORKING {
+ user_value 1
+};
+
+cdl_option CYGBLD_REDBOOT_MIN_IMAGE_SIZE {
+ user_value 0x00040000
+};
+
+cdl_component CYGSEM_REDBOOT_FLASH_CONFIG {
+ user_value 1
+};
+
+cdl_option CYGHWR_REDBOOT_ARM_LINUX_EXEC_ADDRESS_DEFAULT {
+ inferred_value 0xC0008000
+};
+
+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_BSD_FUNCS_HEADER {
+ inferred_value 1 <cyg/libc/string/bsdstring.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_DNS_HEADER {
+ inferred_value 1 <cyg/ns/dns/dns.h>
+};
+
+cdl_option CYGPKG_NS_DNS_BUILD {
+ inferred_value 0
+};
+
+
diff --git a/ecos/packages/hal/arm/sa11x0/cerf/current/src/cerf_misc.c b/ecos/packages/hal/arm/sa11x0/cerf/current/src/cerf_misc.c
new file mode 100644
index 0000000..7adda56
--- /dev/null
+++ b/ecos/packages/hal/arm/sa11x0/cerf/current/src/cerf_misc.c
@@ -0,0 +1,171 @@
+//==========================================================================
+//
+// cerf_misc.c
+//
+// HAL misc board support code for StrongARM SA1110/Cerf
+//
+//==========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//==========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): gthomas
+// Contributors: hmt
+// 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/cerf.h> // Platform specifics
+
+#include <cyg/infra/diag.h> // diag_printf
+
+// All the MM table layout is here:
+#include <cyg/hal/hal_mm.h>
+
+#include <string.h> // memset
+
+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_DACR_DEFAULT;
+ 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, 16, ARM_CACHEABLE, ARM_BUFFERABLE, ARM_ACCESS_PERM_RW_RW); /* Boot flash ROMspace */
+ X_ARM_MMU_SECTION(0x080, 0xf00, 16, ARM_UNCACHEABLE, ARM_UNBUFFERABLE, ARM_ACCESS_PERM_RW_RW); /* Ethernet Adaptor */
+ X_ARM_MMU_SECTION(0x100, 0x100, 128, ARM_UNCACHEABLE, ARM_UNBUFFERABLE, ARM_ACCESS_PERM_RW_RW); /* Board Registers */
+ X_ARM_MMU_SECTION(0x200, 0x200, 512, ARM_UNCACHEABLE, ARM_UNBUFFERABLE, ARM_ACCESS_PERM_RW_RW); /* PCMCIA Socket A */
+ X_ARM_MMU_SECTION(0x300, 0x300, 512, ARM_UNCACHEABLE, ARM_UNBUFFERABLE, ARM_ACCESS_PERM_RW_RW); /* PCMCIA Sockets B */
+ X_ARM_MMU_SECTION(0x800, 0x800, 0x400, ARM_UNCACHEABLE, ARM_UNBUFFERABLE, ARM_ACCESS_PERM_RW_RW); /* StrongARM(R) Registers */
+ X_ARM_MMU_SECTION(0xC00, 0x000, 32, ARM_CACHEABLE, ARM_BUFFERABLE, ARM_ACCESS_PERM_RW_RW); /* DRAM Bank 0 */
+ X_ARM_MMU_SECTION(0xC00, 0xC00, 32, ARM_UNCACHEABLE, 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 */
+
+}
+
+//
+// Board control register support
+// Update the board control register (write only). Only the bits
+// specified by 'mask' are changed to 'value'.
+//
+
+void
+cerf_BCR(unsigned long mask, unsigned long value)
+{
+ _cerf_BCR = (_cerf_BCR & ~mask) | (mask & value);
+ *SA1110_BOARD_CONTROL = _cerf_BCR;
+}
+
+//
+// Platform specific initialization
+//
+
+void
+plf_hardware_init(void)
+{
+#if 0 // Is this correct?
+ // Force "alternate" use of GPIO pins used for LCD screen
+ *SA11X0_GPIO_ALTERNATE_FUNCTION |= 0x080003FC; // Bits 2..9
+ *SA11X0_GPIO_PIN_DIRECTION |= 0x080003FC; // Bits 2..9
+ *SA11X0_GPIO_PIN_OUTPUT_CLEAR = 0x080003FC; // Bits 2..9
+#else
+ // Force "alternate" use of GPIO pins
+ *SA11X0_GPIO_ALTERNATE_FUNCTION = 0x08000000;
+ *SA11X0_GPIO_PIN_DIRECTION = 0x0B20000F;
+#endif
+ *SA11X0_GPIO_PIN_OUTPUT_SET = 0x08000000; // CRYSTAL WAKEUP(GPIO27)
+
+ // Toggle A0 connected to the SBHE line on the Crystal chip.
+ *(char*)(0x20000000) = 1;
+ *(char*)(0x20000001) = 2;
+ *(char*)(0x20000000) = 3;
+ *(char*)(0x20000001) = 0;
+
+ // Configure the ethernet GPIO interrupt to the rising-edge
+ HAL_INTERRUPT_CONFIGURE(SA1110_IRQ_GPIO_ETH, 0, 1);
+}
+
+#include CYGHWR_MEMORY_LAYOUT_H
+typedef void code_fun(void);
+void cerf_program_new_stack(void *func)
+{
+ register CYG_ADDRESS stack_ptr asm("sp");
+ register CYG_ADDRESS old_stack asm("r4");
+ register code_fun *new_func asm("r0");
+ old_stack = stack_ptr;
+ stack_ptr = CYGMEM_REGION_ram + CYGMEM_REGION_ram_SIZE - sizeof(CYG_ADDRESS);
+ new_func = (code_fun*)func;
+ new_func();
+ stack_ptr = old_stack;
+ return;
+}
+
+// ------------------------------------------------------------------------
+// EOF cerf_misc.c
diff --git a/ecos/packages/hal/arm/sa11x0/cerfpda/current/ChangeLog b/ecos/packages/hal/arm/sa11x0/cerfpda/current/ChangeLog
new file mode 100644
index 0000000..7381284
--- /dev/null
+++ b/ecos/packages/hal/arm/sa11x0/cerfpda/current/ChangeLog
@@ -0,0 +1,86 @@
+2009-01-31 Bart Veer <bartv@ecoscentric.com>
+
+ * cdl/hal_arm_sa11x0_cerfpda.cdl: update compiler flags for
+ recent gcc
+
+2003-11-19 Jani Monoses <jani@iv.ro>
+
+ * src/cerfpda_misc.c: Map DRAM as cacheable, it increases performance.
+ * include/plf_mmap.h: Delete duplicate HAL_PHYS_TO_VIRT_ADDRESS
+ definition.
+
+2003-02-13 Patrick Doyle <wpd@delcomsys.com>
+ * src/cerfpda_misc.c: Replaced explicit prototype of memset with
+ #include <string.h>.
+
+2002-05-14 Jesper Skov <jskov@redhat.com>
+
+ * src/cerfpda_misc.c: Fixed warning.
+
+2002-05-07 Gary Thomas <gthomas@redhat.com>
+
+ * cdl/hal_arm_sa11x0_cerfpda.cdl:
+ Standardize CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_DEFAULT usage.
+
+2002-05-01 Gary Thomas <gthomas@redhat.com>
+
+ * include/plf_mmap.h: Fix mapping macros (I/O region).
+
+2002-04-16 Gary Thomas <gthomas@redhat.com>
+
+ * src/cerfpda_misc.c (hal_mmu_init): Add unmapped DRAM.
+
+2002-02-05 Gary Thomas <gthomas@redhat.com>
+
+ * cdl/hal_arm_sa11x0_cerfpda.cdl: Add product info for RedBoot.
+
+2002-02-04 Gary Thomas <gthomas@redhat.com>
+
+ * src/lcd_support.c:
+ * src/cerfpda_misc.c:
+ * src/banner.xpm:
+ * misc/redhat2.xpm:
+ * misc/redhat.xpm:
+ * misc/redboot_ROM.ecm:
+ * misc/redboot_RAM.ecm:
+ * misc/redboot.xpm:
+ * misc/logo.xpm:
+ * misc/lcd_test.c:
+ * misc/escw.xpm:
+ * misc/eCos2.xpm:
+ * misc/eCos.xpm:
+ * include/pkgconf/mlt_arm_sa11x0_cerfpda_rom.mlt:
+ * include/pkgconf/mlt_arm_sa11x0_cerfpda_rom.ldi:
+ * include/pkgconf/mlt_arm_sa11x0_cerfpda_rom.h:
+ * include/pkgconf/mlt_arm_sa11x0_cerfpda_ram.mlt:
+ * include/pkgconf/mlt_arm_sa11x0_cerfpda_ram.ldi:
+ * include/pkgconf/mlt_arm_sa11x0_cerfpda_ram.h:
+ * include/plf_mmap.h:
+ * include/plf_io.h:
+ * include/hal_platform_setup.h:
+ * include/cerfpda.h:
+ * cdl/hal_arm_sa11x0_cerfpda.cdl: New file(s) - port to CerfPDA.
+
+//===========================================================================
+// ####GPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 2 or (at your option) any
+// later version.
+//
+// This program is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the
+// Free Software Foundation, Inc., 51 Franklin Street,
+// Fifth Floor, Boston, MA 02110-1301, USA.
+// -------------------------------------------
+// ####GPLCOPYRIGHTEND####
+//===========================================================================
diff --git a/ecos/packages/hal/arm/sa11x0/cerfpda/current/cdl/hal_arm_sa11x0_cerfpda.cdl b/ecos/packages/hal/arm/sa11x0/cerfpda/current/cdl/hal_arm_sa11x0_cerfpda.cdl
new file mode 100644
index 0000000..6381c95
--- /dev/null
+++ b/ecos/packages/hal/arm/sa11x0/cerfpda/current/cdl/hal_arm_sa11x0_cerfpda.cdl
@@ -0,0 +1,372 @@
+# ====================================================================
+#
+# hal_arm_sa11x0_cerfpda.cdl
+#
+# ARM SA1110/Cerf platform HAL package configuration data
+#
+# ====================================================================
+## ####ECOSGPLCOPYRIGHTBEGIN####
+## -------------------------------------------
+## This file is part of eCos, the Embedded Configurable Operating System.
+## Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+##
+## eCos is free software; you can redistribute it and/or modify it under
+## the terms of the GNU General Public License as published by the Free
+## Software Foundation; either version 2 or (at your option) any later
+## version.
+##
+## eCos is distributed in the hope that it will be useful, but WITHOUT
+## ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+## FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+## for more details.
+##
+## You should have received a copy of the GNU General Public License
+## along with eCos; if not, write to the Free Software Foundation, Inc.,
+## 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+##
+## As a special exception, if other files instantiate templates or use
+## macros or inline functions from this file, or you compile this file
+## and link it with other works to produce a work based on this file,
+## this file does not by itself cause the resulting work to be covered by
+## the GNU General Public License. However the source code for this file
+## must still be made available in accordance with section (3) of the GNU
+## General Public License v2.
+##
+## This exception does not invalidate any other reasons why a work based
+## on this file might be covered by the GNU General Public License.
+## -------------------------------------------
+## ####ECOSGPLCOPYRIGHTEND####
+# ====================================================================
+######DESCRIPTIONBEGIN####
+#
+# Author(s): gthomas
+# Original data: gthomas
+# Contributors:
+# Date: 2000-05-08
+#
+#####DESCRIPTIONEND####
+#
+# ====================================================================
+cdl_package CYGPKG_HAL_ARM_SA11X0_CERFPDA {
+ display "ARM SA1110/Cerf evaluation board"
+ parent CYGPKG_HAL_ARM_SA11X0
+ hardware
+ include_dir cyg/hal
+ define_header hal_arm_sa11x0_cerfpda.h
+ description "
+ This HAL platform package provides generic
+ support for the Intel StrongARM SA1110 based evalation board,
+ known as 'cerfpda'."
+
+ compile cerfpda_misc.c lcd_support.c
+
+ implements CYGINT_HAL_DEBUG_GDB_STUBS
+ implements CYGINT_HAL_DEBUG_GDB_STUBS_BREAK
+ implements CYGINT_HAL_VIRTUAL_VECTOR_SUPPORT
+
+ implements CYGHWR_HAL_ARM_SA11X0_UART3
+
+ 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_cerfpda.h>"
+ puts $::cdl_header "#define HAL_PLATFORM_CPU \"StrongARM 1110\""
+ puts $::cdl_header "#define HAL_PLATFORM_BOARD \"Intrinsyc CerfPDA\""
+ puts $::cdl_header "#define HAL_PLATFORM_EXTRA \"\""
+ puts $::cdl_header "#define HAL_PLATFORM_MACHINE_TYPE 31"
+ }
+
+ cdl_option CYGHWR_HAL_ARM_SA11X0_PROCESSOR_CLOCK_OVERRIDE_DEFAULT {
+ display "Processor clock rate"
+ calculated 191700
+ flavor data
+ description "The Cerf is optimal at this speed. Caution - selecting
+ higher speeds may be unreliable."
+ }
+
+ 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 Cerf 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_DEBUG_CHANNEL {
+ display "Debug serial port"
+ active_if CYGPRI_HAL_VIRTUAL_VECTOR_DEBUG_CHANNEL_CONFIGURABLE
+ flavor data
+ legal_values 0 to CYGNUM_HAL_VIRTUAL_VECTOR_COMM_CHANNELS-1
+ default_value 0
+ description "
+ The cerfpda board has 3 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_DEFAULT {
+ display "Default console channel."
+ flavor data
+ legal_values 0 to CYGNUM_HAL_VIRTUAL_VECTOR_COMM_CHANNELS-1
+ calculated 0
+ }
+
+ cdl_option CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL {
+ display "Diagnostic serial port"
+ active_if CYGPRI_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_CONFIGURABLE
+ flavor data
+ legal_values 0 to CYGNUM_HAL_VIRTUAL_VECTOR_COMM_CHANNELS-1
+ default_value CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_DEFAULT
+ description "
+ The cerfpda board has 3 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 { CYGBLD_GLOBAL_WARNFLAGS . CYGBLD_ARCH_CFLAGS .
+ "-mcpu=strongarm1100 -g -O2 -ffunction-sections -fdata-sections -fno-rtti -fno-exceptions " }
+ 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 { CYGBLD_ARCH_LDFLAGS . "-mcpu=strongarm1100 -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) --remove-section=.fixed_vectors -O binary $< $@
+ }
+ }
+ }
+
+ cdl_component CYGPKG_HAL_ARM_SA11X0_CERFPDA_OPTIONS {
+ display "StrongARM SA1110/CERFPDA 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 CYGSEM_HAL_ARM_SA11X0_CERFPDA_NEPONSET_TIMINGS {
+ display "Enable special timings for Neponset board"
+ flavor bool
+ default_value 0
+ description "
+ Enable this option to force initialization of memory timing
+ parameters suitable for use with the Neponset expansion board.
+ This is optional as it does not work for some versions of
+ Cerf without the board plugged in."
+ }
+
+ cdl_option CYGPKG_HAL_ARM_SA11X0_CERFPDA_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 Cerf HAL. These flags are used in addition
+ to the set of global flags."
+ }
+
+ cdl_option CYGPKG_HAL_ARM_SA11X0_CERFPDA_CFLAGS_REMOVE {
+ display "Suppressed compiler flags"
+ flavor data
+ no_define
+ default_value { "" }
+ description "
+ This option modifies the set of compiler flags for
+ building the StrongARM Cerf HAL. These flags are removed from
+ the set of global flags if present."
+ }
+
+ cdl_option CYGPKG_HAL_ARM_SA11X0_CERFPDA_TESTS {
+ display "StrongARM SA1110/CerfPda tests"
+ flavor data
+ no_define
+# calculated { "tests/dram-test" }
+ calculated { "" }
+ description "
+ This option specifies the set of tests for the StrongARM Cerf HAL."
+ }
+ }
+
+ cdl_component CYGHWR_MEMORY_LAYOUT {
+ display "Memory layout"
+ flavor data
+ no_define
+ calculated { CYG_HAL_STARTUP == "RAM" ? "arm_sa11x0_cerfpda_ram" : \
+ "arm_sa11x0_cerfpda_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_cerfpda_ram.ldi>" : \
+ "<pkgconf/mlt_arm_sa11x0_cerfpda_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_cerfpda_ram.h>" : \
+ "<pkgconf/mlt_arm_sa11x0_cerfpda_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 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_REDBOOT_HAL_OPTIONS {
+ display "Redboot HAL options"
+ flavor none
+ no_define
+ parent CYGPKG_REDBOOT
+ active_if CYGPKG_REDBOOT
+ description "
+ This option lists the target's requirements for a valid Redboot
+ configuration."
+
+ 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 $< $@
+ }
+ }
+ }
+
+}
diff --git a/ecos/packages/hal/arm/sa11x0/cerfpda/current/include/cerfpda.h b/ecos/packages/hal/arm/sa11x0/cerfpda/current/include/cerfpda.h
new file mode 100644
index 0000000..7aa5c5c
--- /dev/null
+++ b/ecos/packages/hal/arm/sa11x0/cerfpda/current/include/cerfpda.h
@@ -0,0 +1,152 @@
+#ifndef CYGONCE_CERF_H
+#define CYGONCE_CERF_H
+
+/*=============================================================================
+//
+// cerfpda.h
+//
+// Platform specific support (register layout, etc)
+//
+//=============================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): gthomas
+// Contributors: gthomas
+// Date: 2000-05-08
+// Purpose: Intel SA1110/Assabet platform specific support routines
+// Description:
+// Usage: #include <cyg/hal/cerfpda.h>
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================*/
+
+
+#ifndef __ASSEMBLER__
+//
+// Board Control Register
+// Note: This register is write-only. Thus a shadow copy is provided so that
+// it may be safely updated/shared by multiple threads.
+//
+extern unsigned long _cerfpda_BCR; // Shadow copy
+
+extern void cerfpda_BCR(unsigned long mask, unsigned long value);
+
+#endif
+
+//
+// Signal assertion levels
+//
+#define SA1110_LOGIC_ONE(m) (m & 0xFFFFFFFF)
+#define SA1110_LOGIC_ZERO(m) (m & 0x00000000)
+
+//
+// SA1110/Cerf Board Control Register
+//
+#define SA1110_BOARD_CONTROL REG32_PTR(0x10000000)
+#define SA1110_BCR_MIN 0x00000000 // Reset state
+
+#define SA1110_BCR_CF_POWER 0x00000000 // 1 = CompactFlash power on (##### NA ######)
+#define SA1110_BCR_CF_POWER_ON SA1110_LOGIC_ONE(SA1110_BCR_CF_POWER)
+#define SA1110_BCR_CF_POWER_OFF SA1110_LOGIC_ZERO(SA1110_BCR_CF_POWER)
+#define SA1110_BCR_CF_RESET 0x00000000 // 1 = CompactFlash reset (##### NA #####)
+#define SA1110_BCR_CF_RESET_ENABLE SA1110_LOGIC_ONE(SA1110_BCR_CF_RESET)
+#define SA1110_BCR_CF_RESET_DISABLE SA1110_LOGIC_ZERO(SA1110_BCR_CF_RESET)
+#define SA1110_BCR_SOFT_RESET 0x00000004 // 0 = resets UCB1300, ADI7171, UDA1341
+#define SA1110_BCR_IRDA_FREQ 0x00000008 // 0 = SIR, 1 = MIR/FIR
+#define SA1110_BCR_IRDA_MD 0x00000030 // IrDA Mode & range
+#define SA1110_BCR_IRDA_MD_MAX 0x00000000 // Max range and power
+#define SA1110_BCR_IRDA_MD_OFF 0x00000010 // Shutdown
+#define SA1110_BCR_IRDA_MD_23 0x00000020 // 2/3 power
+#define SA1110_BCR_IRDA_MD_13 0x00000030 // 1/3 power
+#define SA1110_BCR_STEREO_LB 0x00000040 // 1 = Stereo loopback on
+#define SA1110_BCR_CF_BUS 0x00000000 // 0 = CompactFlash bus on (##### NA #####)
+#define SA1110_BCR_CF_BUS_ON SA1110_LOGIC_ZERO(SA1110_BCR_CF_BUS)
+#define SA1110_BCR_CF_BUS_OFF SA1110_LOGIC_ONE(SA1110_BCR_CF_BUS)
+#define SA1110_BCR_AUDIO_ON 0x00000100 // 1 = UDA1341, MIC, DAA power on
+#define SA1110_BCR_BACKLIGHT 0x00000200 // 1 = LCD backlight on
+#define SA1110_BCR_LCD_BPP 0x00000400 // 1 = 16 RGB, 0 = 12 RGB
+#define SA1110_BCR_LCD_16BPP SA1110_LOGIC_ONE(SA1110_BCR_LCD_BPP)
+#define SA1110_BCR_LCD_12BPP SA1110_LOGIC_ZERO(SA1110_BCR_LCD_BPP)
+#define SA1110_BCR_LCD 0x00000800 // 1 = LCD panel and controller on
+#define SA1110_BCR_LCD_ON SA1110_LOGIC_ONE(SA1110_BCR_LCD)
+#define SA1110_BCR_LCD_OFF SA1110_LOGIC_ZERO(SA1110_BCR_LCD)
+#define SA1110_BCR_RS232_ENABLE 0x00001000 // 1 = Enable RS232 signals
+#define SA1110_BCR_RED_LED 0x00000001 // 0 = Red LED on
+#define SA1110_BCR_RED_LED_ON SA1110_LOGIC_ZERO(SA1110_BCR_RED_LED)
+#define SA1110_BCR_RED_LED_OFF SA1110_LOGIC_ONE(SA1110_BCR_RED_LED)
+#define SA1110_BCR_GREEN_LED 0x00000002 // 0 = Green LED on
+#define SA1110_BCR_GREEN_LED_ON SA1110_LOGIC_ZERO(SA1110_BCR_GREEN_LED)
+#define SA1110_BCR_GREEN_LED_OFF SA1110_LOGIC_ONE(SA1110_BCR_GREEN_LED)
+#define SA1110_BCR_MOTOR 0x00000004 // 1 = Vibrator motor on
+#define SA1110_BCR_MOTOR_ON SA1110_LOGIC_ONE(SA1110_BCR_MOTOR)
+#define SA1110_BCR_MOTOR_OFF SA1110_LOGIC_ZERO(SA1110_BCR_MOTOR)
+#define SA1110_BCR_COM_DTR 0x00010000 // COM port Data Terminal Ready
+#define SA1110_BCR_COM_RTS 0x00020000 // COM port Request To Send
+#define SA1110_BCR_RADIO_WAKE 0x00040000 // 1 = Wake up CPU with radio
+#define SA1110_BCR_MUTE 0x00200000 // 1 = Audio muted
+
+#define SA1110_BCR_ETH_SLEEP (1 << 27) // Output pin to put Crystal LAN in sleep mode.
+
+//
+// Special purpose GPIO interrupt mappings
+//
+#define SA1110_CF_IRQ CYGNUM_HAL_INTERRUPT_GPIO22
+#define SA1110_CF_DETECT CYGNUM_HAL_INTERRUPT_GPIO23
+#define SA1110_IRQ_GPIO_ETH CYGNUM_HAL_INTERRUPT_GPIO26
+#define SA1110_IRQ_GPIO_16X5X CYGNUM_HAL_INTERRUPT_GPIO3
+//
+// GPIO layout
+//
+#define SA1110_GPIO_CF_DETECT 0x00800000 // 0 = Compact Flash detect
+#define SA1110_GPIO_CF_PRESENT SA1110_LOGIC_ZERO(SA1110_GPIO_CF_DETECT)
+//#define SA1110_GPIO_CF_ABSENT SA1110_LOGIC_ONE(SA1110_GPIO_CF_DETECT)
+
+//
+// LCD Controller
+//
+#define SA1110_LCCR0 SA11X0_REGISTER(0x30100000)
+#define SA1110_LCSR SA11X0_REGISTER(0x30100004)
+#define SA1110_DBAR1 SA11X0_REGISTER(0x30100010)
+#define SA1110_DCAR1 SA11X0_REGISTER(0x30100014)
+#define SA1110_DBAR2 SA11X0_REGISTER(0x30100018)
+#define SA1110_DCAR2 SA11X0_REGISTER(0x3010001C)
+#define SA1110_LCCR1 SA11X0_REGISTER(0x30100020)
+#define SA1110_LCCR2 SA11X0_REGISTER(0x30100024)
+#define SA1110_LCCR3 SA11X0_REGISTER(0x30100028)
+
+/*---------------------------------------------------------------------------*/
+/* end of cerfpda.h */
+#endif /* CYGONCE_CERF_H */
diff --git a/ecos/packages/hal/arm/sa11x0/cerfpda/current/include/hal_platform_setup.h b/ecos/packages/hal/arm/sa11x0/cerfpda/current/include/hal_platform_setup.h
new file mode 100644
index 0000000..5071bc7
--- /dev/null
+++ b/ecos/packages/hal/arm/sa11x0/cerfpda/current/include/hal_platform_setup.h
@@ -0,0 +1,323 @@
+#ifndef CYGONCE_HAL_PLATFORM_SETUP_H
+#define CYGONCE_HAL_PLATFORM_SETUP_H
+
+/*=============================================================================
+//
+// hal_platform_setup.h
+//
+// Platform specific support for HAL (assembly code)
+//
+//=============================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): gthomas
+// Contributors: gthomas
+// Date: 2000-05-08
+// Purpose: Intel SA1110/Assabet platform specific support routines
+// Description:
+// Usage: #include <cyg/hal/hal_platform_setup.h>
+// Only used by "vectors.S"
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================*/
+
+#include <pkgconf/system.h> // System-wide configuration info
+#include CYGBLD_HAL_VARIANT_H // Variant (SA11x0) specific configuration
+#include CYGBLD_HAL_PLATFORM_H // Platform specific configuration
+#include <cyg/hal/hal_sa11x0.h> // Variant specific hardware definitions
+#include <cyg/hal/hal_mmu.h> // MMU definitions
+#include <cyg/hal/cerfpda.h> // Platform specific hardware 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
+
+
+#define CAS0_WAVEFORM_VALUE 0xAAAAAA9F
+#define CAS1_WAVEFORM_VALUE 0xAAAAAAAA
+#define CAS2_WAVEFORM_VALUE 0xAAAAAAAA
+
+#define MSC0VALUE 0xFFFCFFF8
+#define MSC1VALUE 0xFFFFFFFF
+#define MSC2VALUE 0xFFFFFFFF
+
+#define DRAM_CONFIG_VALUE 0x72647264
+#define RFSH_CONFIG_VALUE 0x00300161
+
+// Macros that handle the red debug LED wired to GPIO-1
+
+ .macro _LED_ON,led
+ ldr r1,=SA11X0_GPIO_PIN_OUTPUT_SET
+ mov r0,#(1<<\led)
+ str r0,[r1]
+ // Delay
+ ldr r1,=10000
+10: sub r1,r1,#1
+ cmp r1,#0
+ bne 10b
+ .endm
+
+ .macro _LED_OFF,led
+ ldr r1,=SA11X0_GPIO_PIN_OUTPUT_CLEAR
+ mov r0,#(1<<\led)
+ str r0,[r1]
+ // Delay
+ ldr r1,=10000
+10: sub r1,r1,#1
+ cmp r1,#0
+ bne 10b
+ .endm
+
+// This macro represents the initial startup code for the platform
+ .macro _platform_setup1
+
+ // Disable all interrupts (ICMR not specified on power-up)
+ ldr r1,=SA11X0_ICMR
+ mov r0,#0
+ str r0,[r1]
+
+ // Initialize the CPU.
+ mov r0, #0x0 // Get a zero to turn things off
+ mcr p15, 0, r0, c1, c0, 0 // MMU off
+ mcr p15, 0, r0, c8, c7, 0 // Flush TLB
+ mcr p15, 0, r0, c7, c7, 0 // Flush caches
+ nop
+ nop
+ nop
+ nop
+
+ // Disable IRQs and FIQs
+ mov r0, #(CPSR_IRQ_DISABLE | \
+ CPSR_FIQ_DISABLE | \
+ CPSR_SUPERVISOR_MODE)
+ msr cpsr, r0
+
+ // Set up GPIOs (LED1 off)
+ ldr r1,=SA11X0_GPIO_PIN_DIRECTION
+ ldr r2,=0x0320000f // Set LT1348,DREN,RXEN,CF and LEDs to be output
+ str r2,[r1]
+ ldr r3,=SA11X0_GPIO_PIN_OUTPUT_SET
+ ldr r2,=0x0300000f // Set the LT1348,DREN,RXEN and LEDs to 1.
+ str r2,[r3]
+ ldr r3,=SA11X0_GPIO_PIN_OUTPUT_CLEAR
+ ldr r2,=0x0020000f // Set CF reset,LEDS OFF
+ str r2,[r3]
+
+ // Turn on LED 0
+ _LED_ON 0
+
+ // Disable clock switching
+ mcr p15,0,r0,\
+ SA11X0_TEST_CLOCK_AND_IDLE_REGISTER,\
+ SA11X0_DISABLE_CLOCK_SWITCHING_RM,\
+ SA11X0_DISABLE_CLOCK_SWITCHING_OPCODE
+
+ // Set up processor clock
+ ldr r1,=SA11X0_PWR_MGR_PLL_CONFIG
+ ldr r2,=SA11X0_PLL_CLOCK
+ str r2,[r1]
+
+ // Turn clock switching back on
+ mcr p15,0,r0,\
+ SA11X0_TEST_CLOCK_AND_IDLE_REGISTER,\
+ SA11X0_ENABLE_CLOCK_SWITCHING_RM,\
+ SA11X0_ENABLE_CLOCK_SWITCHING_OPCODE
+ nop
+ nop
+
+ // Let the PLL settle down
+ ldr r1,=20000
+10: sub r1,r1,#1
+ cmp r1,#0
+ bne 10b
+
+ // Turn on LED 1
+ _LED_ON 1
+
+ // Initialize DRAM controller
+ ldr r1,=dram_table
+ ldr r2,=__exception_handlers
+ sub r1,r1,r2
+ ldr r2,[r1],#4 // First control register
+10: ldr r3,[r1],#4
+ str r3,[r2]
+ ldr r2,[r1],#4 // Next control register
+ cmp r2,#0
+ bne 10b
+
+ // Turn on LED 2
+ _LED_ON 2
+
+ // Enable UART
+ ldr r1,=SA1110_GPCLK_CONTROL_0
+ ldr r2,=SA1110_GPCLK_SUS_UART
+ str r2,[r1]
+
+ // Release DRAM hold (set by RESET)
+ ldr r1,=SA11X0_PWR_MGR_SLEEP_STATUS
+ ldr r2,=SA11X0_DRAM_CONTROL_HOLD
+ str r2,[r1]
+
+ // Perform 8 reads from unmapped/unenabled DRAM
+ ldr r1,=SA11X0_RAM_BANK0_BASE
+ ldr r2,[r1]
+ ldr r2,[r1]
+ ldr r2,[r1]
+ ldr r2,[r1]
+ ldr r2,[r1]
+ ldr r2,[r1]
+ ldr r2,[r1]
+ ldr r2,[r1]
+
+ // Enable DRAM bank 0
+ ldr r1,=SA11X0_DRAM_CONFIGURATION
+ ldr r2,=DRAM_CONFIG_VALUE
+ ldr r3,=0x00030003
+ orr r2, r2, r3
+ str r2,[r1]
+
+ // Wait for the DRAM to come up.
+ mov r1, #0x400
+0: subs r1, r1, #1
+ bne 0b
+
+ // Turn on LED 3
+ _LED_ON 3
+
+ b 19f
+
+// DRAM controller initialization
+dram_table:
+ .word SA11X0_DRAM0_CAS_0, CAS0_WAVEFORM_VALUE
+ .word SA11X0_DRAM0_CAS_1, CAS1_WAVEFORM_VALUE
+ .word SA11X0_DRAM0_CAS_2, CAS2_WAVEFORM_VALUE
+ .word SA11X0_DRAM2_CAS_0, CAS0_WAVEFORM_VALUE
+ .word SA11X0_DRAM2_CAS_1, CAS1_WAVEFORM_VALUE
+ .word SA11X0_DRAM2_CAS_2, CAS2_WAVEFORM_VALUE
+ .word SA11X0_REFRESH_CONFIGURATION, RFSH_CONFIG_VALUE
+ .word SA11X0_DRAM_CONFIGURATION, DRAM_CONFIG_VALUE
+ .word SA11X0_STATIC_CONTROL_0, MSC0VALUE
+ .word SA11X0_STATIC_CONTROL_1, MSC1VALUE
+ .word SA11X0_STATIC_CONTROL_2, MSC2VALUE
+ .word 0, 0
+
+19:
+ // Wakeup from deep sleep mode
+ ldr r1,=SA11X0_RESET_STATUS
+ ldr r2,[r1]
+ cmp r2,#SA11X0_SLEEP_MODE_RESET
+ bne 45f
+ ldr r1,=SA11X0_PWR_MGR_SCRATCHPAD
+ ldr r1,[r1]
+ mov pc,r1
+ nop
+45: nop
+
+ // Release peripheral hold (set by RESET)
+ ldr r1,=SA11X0_PWR_MGR_SLEEP_STATUS
+ ldr r2,=SA11X0_PERIPHERAL_CONTROL_HOLD
+ str r2,[r1]
+
+ // 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
+
+ // Turn OFF LED 0
+ _LED_OFF 0
+
+ // 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:
+ // Turn OFF LED 1
+ _LED_OFF 1
+
+ // Save shadow copy of BCR, also hardware configuration
+ ldr r1,=_cerfpda_BCR
+ str r2,[r1]
+ .endm
+
+#else // defined(CYG_HAL_STARTUP_ROM)
+#define PLATFORM_SETUP1
+#endif
+
+#define PLATFORM_VECTORS _platform_vectors
+ .macro _platform_vectors
+ .globl _cerfpda_BCR
+_cerfpda_BCR: .long 0 // Board Control register shadow
+ .endm
+
+/*---------------------------------------------------------------------------*/
+/* end of hal_platform_setup.h */
+#endif /* CYGONCE_HAL_PLATFORM_SETUP_H */
diff --git a/ecos/packages/hal/arm/sa11x0/cerfpda/current/include/pkgconf/mlt_arm_sa11x0_cerfpda_ram.h b/ecos/packages/hal/arm/sa11x0/cerfpda/current/include/pkgconf/mlt_arm_sa11x0_cerfpda_ram.h
new file mode 100644
index 0000000..1b05943
--- /dev/null
+++ b/ecos/packages/hal/arm/sa11x0/cerfpda/current/include/pkgconf/mlt_arm_sa11x0_cerfpda_ram.h
@@ -0,0 +1,17 @@
+// eCos memory layout - Fri Oct 20 05:56:24 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 (0)
+#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 (__heap1) [];
+#endif
+#define CYGMEM_SECTION_heap1 (CYG_LABEL_NAME (__heap1))
+#define CYGMEM_SECTION_heap1_SIZE (0x4000000 - (size_t) CYG_LABEL_NAME (__heap1))
diff --git a/ecos/packages/hal/arm/sa11x0/cerfpda/current/include/pkgconf/mlt_arm_sa11x0_cerfpda_ram.ldi b/ecos/packages/hal/arm/sa11x0/cerfpda/current/include/pkgconf/mlt_arm_sa11x0_cerfpda_ram.ldi
new file mode 100644
index 0000000..5d91029
--- /dev/null
+++ b/ecos/packages/hal/arm/sa11x0/cerfpda/current/include/pkgconf/mlt_arm_sa11x0_cerfpda_ram.ldi
@@ -0,0 +1,27 @@
+// eCos memory layout - Fri Oct 20 05:56:24 2000
+
+// This is a generated file - do not edit
+
+#include <cyg/infra/cyg_type.inc>
+
+MEMORY
+{
+ ram : ORIGIN = 0, LENGTH = 0x4000000
+}
+
+SECTIONS
+{
+ SECTIONS_BEGIN
+ SECTION_fixed_vectors (ram, 0x20, LMA_EQ_VMA)
+ SECTION_rom_vectors (ram, 0x20000, 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)
+ CYG_LABEL_DEFN(__heap1) = ALIGN (0x8);
+ SECTIONS_END
+}
diff --git a/ecos/packages/hal/arm/sa11x0/cerfpda/current/include/pkgconf/mlt_arm_sa11x0_cerfpda_ram.mlt b/ecos/packages/hal/arm/sa11x0/cerfpda/current/include/pkgconf/mlt_arm_sa11x0_cerfpda_ram.mlt
new file mode 100644
index 0000000..bd0cf57
--- /dev/null
+++ b/ecos/packages/hal/arm/sa11x0/cerfpda/current/include/pkgconf/mlt_arm_sa11x0_cerfpda_ram.mlt
@@ -0,0 +1,13 @@
+version 0
+region ram 0 4000000 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 20000 20000 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 1 0 1 heap1 heap1 !
+section heap1 0 8 0 0 0 0 0 0 !
diff --git a/ecos/packages/hal/arm/sa11x0/cerfpda/current/include/pkgconf/mlt_arm_sa11x0_cerfpda_rom.h b/ecos/packages/hal/arm/sa11x0/cerfpda/current/include/pkgconf/mlt_arm_sa11x0_cerfpda_rom.h
new file mode 100644
index 0000000..b37bd7a
--- /dev/null
+++ b/ecos/packages/hal/arm/sa11x0/cerfpda/current/include/pkgconf/mlt_arm_sa11x0_cerfpda_rom.h
@@ -0,0 +1,20 @@
+// eCos memory layout - Fri Oct 20 05:56:55 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 (0)
+#define CYGMEM_REGION_ram_SIZE (0x4000000)
+#define CYGMEM_REGION_ram_ATTR (CYGMEM_REGION_ATTR_R | CYGMEM_REGION_ATTR_W)
+#define CYGMEM_REGION_rom (0x50000000)
+#define CYGMEM_REGION_rom_SIZE (0x2000000)
+#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 (0x4000000 - (size_t) CYG_LABEL_NAME (__heap1))
diff --git a/ecos/packages/hal/arm/sa11x0/cerfpda/current/include/pkgconf/mlt_arm_sa11x0_cerfpda_rom.ldi b/ecos/packages/hal/arm/sa11x0/cerfpda/current/include/pkgconf/mlt_arm_sa11x0_cerfpda_rom.ldi
new file mode 100644
index 0000000..58913f8
--- /dev/null
+++ b/ecos/packages/hal/arm/sa11x0/cerfpda/current/include/pkgconf/mlt_arm_sa11x0_cerfpda_rom.ldi
@@ -0,0 +1,28 @@
+// eCos memory layout - Fri Oct 20 05:56:55 2000
+
+// This is a generated file - do not edit
+
+#include <cyg/infra/cyg_type.inc>
+
+MEMORY
+{
+ ram : ORIGIN = 0, LENGTH = 0x4000000
+ rom : ORIGIN = 0x50000000, LENGTH = 0x2000000
+}
+
+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)
+ CYG_LABEL_DEFN(__heap1) = ALIGN (0x8);
+ SECTIONS_END
+}
diff --git a/ecos/packages/hal/arm/sa11x0/cerfpda/current/include/pkgconf/mlt_arm_sa11x0_cerfpda_rom.mlt b/ecos/packages/hal/arm/sa11x0/cerfpda/current/include/pkgconf/mlt_arm_sa11x0_cerfpda_rom.mlt
new file mode 100644
index 0000000..e061d06
--- /dev/null
+++ b/ecos/packages/hal/arm/sa11x0/cerfpda/current/include/pkgconf/mlt_arm_sa11x0_cerfpda_rom.mlt
@@ -0,0 +1,14 @@
+version 0
+region ram 0 4000000 0 !
+region rom 50000000 2000000 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 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 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 !
diff --git a/ecos/packages/hal/arm/sa11x0/cerfpda/current/include/plf_io.h b/ecos/packages/hal/arm/sa11x0/cerfpda/current/include/plf_io.h
new file mode 100644
index 0000000..3928f85
--- /dev/null
+++ b/ecos/packages/hal/arm/sa11x0/cerfpda/current/include/plf_io.h
@@ -0,0 +1,59 @@
+#ifndef CYGONCE_HAL_ARM_SA11X0_CERFPDA_PLF_IO_H
+#define CYGONCE_HAL_ARM_SA11X0_CERFPDA_PLF_IO_H
+
+/*=============================================================================
+//
+// plf_io.h
+//
+// Platform specific support (register layout, etc)
+//
+//=============================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jskov
+// Contributors: jskov
+// Date: 2002-01-28
+// Purpose: Platform specific support routines
+// Description:
+// Usage: #include <cyg/hal/hal_io.h>
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================*/
+
+#include <cyg/hal/cerfpda.h>
+
+#endif // CYGONCE_HAL_ARM_SA11X0_CERFPDA_PLF_IO_H
+// EOF plf_io.h
diff --git a/ecos/packages/hal/arm/sa11x0/cerfpda/current/include/plf_mmap.h b/ecos/packages/hal/arm/sa11x0/cerfpda/current/include/plf_mmap.h
new file mode 100644
index 0000000..884d691
--- /dev/null
+++ b/ecos/packages/hal/arm/sa11x0/cerfpda/current/include/plf_mmap.h
@@ -0,0 +1,138 @@
+#ifndef CYGONCE_HAL_SA11X0_PLATFORM_PLF_MMAP_H
+#define CYGONCE_HAL_SA11X0_PLATFORM_PLF_MMAP_H
+/*=============================================================================
+//
+// plf_mmap.h
+//
+// Platform specific memory map support
+//
+//=============================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): hmt
+// Contributors: hmt
+// Date: 2001-01-04
+// Purpose: Intel SA11x0 series platform-specific memory mapping macros
+// Description: Macros to convert a cached, virtual address to
+// 1) an uncached adddress for the same memory (if available)
+// 2) the equivalent physical address for giving to external
+// hardware eg. DMA engines.
+//
+// NB: this mapping is expressed here statically, independent
+// of the actual mapping installed in the MMAP table. So if
+// someone changes that, or its initialisation is changed,
+// then this module must change. This is intended to be
+// efficient at a cost of generality. It is also intended to
+// be called with constants (such as &my_struct) as input
+// args, so that all the work can be done at compile time,
+// with optimization on.
+//
+// Usage: #include <cyg/hal/hal_cache.h>
+// (which includes this file itself)
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================*/
+
+#include <cyg/hal/hal_misc.h>
+
+// Get the pagesize for a particular virtual address:
+
+// This does not depend on the vaddr.
+#define HAL_MM_PAGESIZE( vaddr, pagesize ) CYG_MACRO_START \
+ (pagesize) = SZ_1M; \
+CYG_MACRO_END
+// Get the physical address from a virtual address:
+
+// Only RAM and ROM are mapped; we just pass through all other values,
+// rather than detecting nonexistent areas here.
+
+#define HAL_VIRT_TO_PHYS_ADDRESS( vaddr, paddr ) CYG_MACRO_START \
+ cyg_uint32 _v_ = (cyg_uint32)(vaddr); \
+ if ( 32 * SZ_1M > _v_ ) /* 32Mb of SDRAM Bank 0 from 0-32Mb */ \
+ _v_ += 0xc00u * SZ_1M; \
+ else if ( 0x500u * SZ_1M > _v_ ) /* Space between RAM and mapped ROM */\
+ /* no change */ ; \
+ else if ( 0x520u * SZ_1M > _v_ ) /* Mapped boot ROM size 32Mb */ \
+ _v_ -= 0x500u * SZ_1M; \
+ else if ( 0xf00u * SZ_1M > _v_ ) /* Space between ROM and mapped I/O */\
+ /* no change */ ; \
+ else if ( 0xf10u * SZ_1M > _v_ ) /* Mapped I/O size 16Mb */ \
+ _v_ = (_v_ - 0xf00u * SZ_1M) + (0x080u * SZ_1M); \
+ else /* Rest of it */ \
+ /* no change */ ; \
+ (paddr) = _v_; \
+CYG_MACRO_END
+
+// Get the virtual address for a physical address:
+
+// Only RAM and ROM are mapped; we just pass through all other values,
+// rather than detecting nonexistent areas here.
+
+#define HAL_PHYS_TO_VIRT_ADDRESS( paddr, vaddr ) CYG_MACRO_START \
+ cyg_uint32 _p_ = (cyg_uint32)(paddr); \
+ if ( 32 * SZ_1M > _p_ ) /* 32Mb Boot ROM mapped to 0x500Mb */ \
+ _p_ += 0x500u * SZ_1M; \
+ else if ( 0x080u * SZ_1M > _p_ ) /* Space between ROM and I/O */ \
+ /* no change */ ; \
+ else if ( 0x090u * SZ_1M > _p_ ) /* I/O size 16Mb */ \
+ _p_ = (_p_ - 0x080u * SZ_1M) + (0xf00u * SZ_1M); \
+ else if ( 0xc00u * SZ_1M > _p_ ) /* Space between I/O and SDRAM */ \
+ /* no change */ ; \
+ else if ( 0xc20u * SZ_1M > _p_ ) /* Raw RAM size 32Mb */ \
+ _p_ -= 0xc00u * SZ_1M; \
+ else /* Rest of it */ \
+ /* no change */ ; \
+ (vaddr) = _p_ ; \
+CYG_MACRO_END
+
+
+// Get a non-cacheable address for accessing the same store as a virtual
+// (assumed cachable) address:
+
+// Only RAM is mapped: ROM is only available cachable, everything else is
+// not cachable anyway.
+
+#define HAL_VIRT_TO_UNCACHED_ADDRESS( vaddr, uaddr ) CYG_MACRO_START \
+ cyg_uint32 _v_ = (cyg_uint32)(vaddr); \
+ if ( 32 * SZ_1M > _v_ ) /* 32Mb of SDRAM Bank 0 from 0-32Mb */ \
+ _v_ += 0xc00u * SZ_1M; \
+ else /* Everything else is already uncacheable or is ROM */ \
+ /* no change */ ; \
+ (uaddr) = _v_ ; \
+CYG_MACRO_END
+//---------------------------------------------------------------------------
+#endif // CYGONCE_HAL_SA11X0_PLATFORM_PLF_MMAP_H
+// EOF plf_mmap.h
diff --git a/ecos/packages/hal/arm/sa11x0/cerfpda/current/misc/eCos.xpm b/ecos/packages/hal/arm/sa11x0/cerfpda/current/misc/eCos.xpm
new file mode 100644
index 0000000..a481c3c
--- /dev/null
+++ b/ecos/packages/hal/arm/sa11x0/cerfpda/current/misc/eCos.xpm
@@ -0,0 +1,254 @@
+/* XPM */
+static char * eCos_xpm[] = {
+"320 240 11 1",
+" c None",
+". c #FFFFFF",
+"+ c #C7C7C7",
+"@ c #AAAAAA",
+"# c #727272",
+"$ c #555555",
+"% c #1D1D1D",
+"& c #000000",
+"* c #393939",
+"= c #8E8E8E",
+"- c #E3E3E3",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"......................................................................................................................................+@#$$$%&&&$$$#@+..........................................................................................................................................................................",
+"..................................................................................................................................+#*&&&&&&&&&&&&&&&&&&$=-......................................................................................................................................................................",
+"...............................................................................................................................-#%&&&&&&&&&&&&&&&&&&&&&&&&*@....................................................................................................................................................................",
+".............................................................................................................................+*&&&&&&&&&&&&&&&&&&&&&&&&&&&&&%=..................................................................................................................................................................",
+"...........................................................................................................................+*&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&*-................................................................................................................................................................",
+".........................................................................................................................-*&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&@...............................................................................................................................................................",
+"........................................................................................................................=&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$..............................................................................................................................................................",
+"......................................................................................................................-*&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$.............................................................................................................................................................",
+".....................................................................................................................@%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$............................................................................................................................................................",
+"....................................................................................................................@&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&@...........................................................................................................................................................",
+"...................................................................................................................#&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&-..........................................................................................................................................................",
+"..................................................................................................................$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&*..........................................................................................................................................................",
+".................................................................................................................$&&&&&&&&&&&&&&&&&&&&&&&&&$$*&&&&&&&&&&&&&&&&&&&&&&&&+.........................................................................................................................................................",
+"................................................................................................................@&&&&&&&&&&&&&&&&&&&&*#@........+=%&&&&&&&&&&&&&&&&&&&$.........................................................................................................................................................",
+"...............................................................................................................@&&&&&&&&&&&&&&&&&&&#-..............+*&&&&&&&&&&&&&&&&&&.........................................................................................................................................................",
+"..............................................................................................................+&&&&&&&&&&&&&&&&&&#-..................#&&&&&&&&&&&&&&&&&@........................................................................................................................................................",
+".............................................................................................................-%&&&&&&&&&&&&&&&&%+.....................@&&&&&&&&&&&&&&&&$........................................................................................................................................................",
+".............................................................................................................$&&&&&&&&&&&&&&&&*-.......................#&&&&&&&&&&&&&&&*........................................................................................................................................................",
+"............................................................................................................@&&&&&&&&&&&&&&&&$..........................%&&&&&&&&&&&&&&&........................................................................................................................................................",
+"..................................................................@@@$$$$@@@...............................-%&&&&&&&&&&&&&&&$...........................=&&&&&&&&&&&&&&&.............................@@@#$$$$@@@...............................................+@@=$$$$#@@+.....................................................",
+".............................................................-@$%&&&&&&&&&&&&%#+...........................#&&&&&&&&&&&&&&&%.............................&&&&&&&&&&&&&&&........................-=$%&&&&&&&&&&&&&%#@......................................-=$%&&&&&&&&&&&&&&%$@.................................................",
+"...........................................................=*&&&&&&&&&&&&&&&&&&&%=........................+&&&&&&&&&&&&&&&%-.............................*&&&&&&&&&&&&&&.....................-#%&&&&&&&&&&&&&&&&&&&&%#-................................-=*&&&&&&&&&&&&&&&&&&&&&&#+..............................................",
+"........................................................-#&&&&&&&&&&&&&&&&&&&&&&&&%=......................*&&&&&&&&&&&&&&&@..............................$&&&&&&&&&&&&&&...................+*&&&&&&&&&&&&&&&&&&&&&&&&&&#.............................-#&&&&&&&&&&&&&&&&&&&&&&&&&&&$-............................................",
+".......................................................#&&&&&&&&&&&&&&&&&&&&&&&&&&&&$-...................+&&&&&&&&&&&&&&&#...............................#&&&&&&&&&&&&&&.................-*&&&&&&&&&&&&&&&&&&&&&&&&&&&&&%+..........................=&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&@...........................................",
+".....................................................+%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&%-..................*&&&&&&&&&&&&&&%................................@&&&&&&&&&&&&&%................#&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&@.......................-*&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&@..........................................",
+"....................................................=&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&%-................+&&&&&&&&&&&&&&&=................................@&&&&&&&&&&&&&$..............-*&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&@.....................-%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&@.........................................",
+"...................................................$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&*................$&&&&&&&&&&&&&&*.............................................................@%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&@...................-%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&+........................................",
+"..................................................$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&#..............-&&&&&&&&&&&&&&&+............................................................@&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&-.................-%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&*........................................",
+".................................................$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&+.............=&&&&&&&&&&&&&&*............................................................@&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&*.................%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&+.......................................",
+"................................................=&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&*.............%&&&&&&&&&&&&&&@...........................................................@&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&=...............#&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$.......................................",
+"...............................................+&&&&&&&&&&&&&&&&&&&%$$%&&&&&&&&&&&&&&&&&&&+...........+&&&&&&&&&&&&&&%...........................................................-&&&&&&&&&&&&&&&&&&&&%$$%&&&&&&&&&&&&&&&&&&&&%..............+&&&&&&&&&&&&&&&&&&&$$$*&&&&&&&&&&&&&&&&&&&&.......................................",
+"..............................................-%&&&&&&&&&&&&&&&%#+......@*&&&&&&&&&&&&&&&&$...........#&&&&&&&&&&&&&&=..........................................................-%&&&&&&&&&&&&&&&&&$@......@$&&&&&&&&&&&&&&&&&&@.............*&&&&&&&&&&&&&&&#@........@$&&&&&&&&&&&&&&&&-......................................",
+"..............................................#&&&&&&&&&&&&&&&=...........+%&&&&&&&&&&&&&&&...........%&&&&&&&&&&&&&&-..........................................................$&&&&&&&&&&&&&&&&$-..........+%&&&&&&&&&&&&&&&&$............+&&&&&&&&&&&&&&$-............-%&&&&&&&&&&&&&&@......................................",
+".............................................+&&&&&&&&&&&&&&%-.............-%&&&&&&&&&&&&&&@.........+&&&&&&&&&&&&&&*..........................................................@&&&&&&&&&&&&&&&&@.............-%&&&&&&&&&&&&&&&&............*&&&&&&&&&&&&&*...............-%&&&&&&&&&&&&&@......................................",
+".............................................*&&&&&&&&&&&&&%-...............=&&&&&&&&&&&&&&$.........=&&&&&&&&&&&&&&=..........................................................%&&&&&&&&&&&&&&%+...............-&&&&&&&&&&&&&&&&+..........-&&&&&&&&&&&&&&+................#&&&&&&&&&&&&&@......................................",
+"............................................=&&&&&&&&&&&&&%-.................%&&&&&&&&&&&&&%.........$&&&&&&&&&&&&&&-.........................................................#&&&&&&&&&&&&&&&-.................=&&&&&&&&&&&&&&&@..........@&&&&&&&&&&&&&&.................@&&&&&&&&&&&&&@......................................",
+"............................................%&&&&&&&&&&&&&+..................#&&&&&&&&&&&&&&.........&&&&&&&&&&&&&&%.........................................................-&&&&&&&&&&&&&&&@...................&&&&&&&&&&&&&&&#..........$&&&&&&&&&&&&&&.................@&&&&&&&&&&&&&.......................................",
+"...........................................=&&&&&&&&&&&&&$...................@&&&&&&&&&&&&&&........+&&&&&&&&&&&&&&$.........................................................#&&&&&&&&&&&&&&#....................$&&&&&&&&&&&&&&$..........*&&&&&&&&&&&&&&=................=$$$$$$$$$$$$$.......................................",
+"...........................................*&&&&&&&&&&&&&+...................+&&&&&&&&&&&&&&@.......@&&&&&&&&&&&&&&@........................................................-&&&&&&&&&&&&&&%.....................@&&&&&&&&&&&&&&$..........&&&&&&&&&&&&&&&&#-...................................................................",
+"..........................................+&&&&&&&&&&&&&*.....................&&&&&&&&&&&&&&@.......$&&&&&&&&&&&&&&+........................................................=&&&&&&&&&&&&&&+.....................+&&&&&&&&&&&&&&$..........&&&&&&&&&&&&&&&&&&#+.................................................................",
+"..........................................$&&&&&&&&&&&&&=.....................&&&&&&&&&&&&&&+.......*&&&&&&&&&&&&&&.........................................................%&&&&&&&&&&&&&*.......................&&&&&&&&&&&&&&$..........&&&&&&&&&&&&&&&&&&&&%$@..............................................................",
+"..........................................&&&&&&&&&&&&&&-.....................&&&&&&&&&&&&&&........&&&&&&&&&&&&&&*........................................................+&&&&&&&&&&&&&&+.......................&&&&&&&&&&&&&&$..........%&&&&&&&&&&&&&&&&&&&&&&&*=-..........................................................",
+".........................................@&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&........&&&&&&&&&&&&&&$........................................................#&&&&&&&&&&&&&*........................&&&&&&&&&&&&&&$..........$&&&&&&&&&&&&&&&&&&&&&&&&&&%#@.......................................................",
+".........................................$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&.......@&&&&&&&&&&&&&&$........................................................%&&&&&&&&&&&&&=........................&&&&&&&&&&&&&&@..........+&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$@....................................................",
+".........................................&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&%.......@&&&&&&&&&&&&&&=.......................................................+&&&&&&&&&&&&&&-........................&&&&&&&&&&&&&&@...........*&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&#+.................................................",
+"........................................+&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$.......@&&&&&&&&&&&&&&@.......................................................=&&&&&&&&&&&&&*........................+&&&&&&&&&&&&&&+...........+&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&*-...............................................",
+"........................................=&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&#.......#&&&&&&&&&&&&&&@.......................................................$&&&&&&&&&&&&&#........................@&&&&&&&&&&&&&&.............@&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&=..............................................",
+"........................................$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&@.......$&&&&&&&&&&&&&&@.......................................................&&&&&&&&&&&&&&@........................@&&&&&&&&&&&&&%..............@&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$.............................................",
+"........................................&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&-.......$&&&&&&&&&&&&&&@......................................................+&&&&&&&&&&&&&&-........................$&&&&&&&&&&&&&$...............-%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$............................................",
+"........................................&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&........$&&&&&&&&&&&&&&@.................................+$$$$$$$$$$$$$$......@&&&&&&&&&&&&&&.........................%&&&&&&&&&&&&&@.................=%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&#...........................................",
+".......................................@&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$........$&&&&&&&&&&&&&&@.................................*&&&&&&&&&&&&&$......#&&&&&&&&&&&&&%........................-&&&&&&&&&&&&&&-...................=%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&-..........................................",
+".......................................@&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@........$&&&&&&&&&&&&&&$................................-&&&&&&&&&&&&&&@......$&&&&&&&&&&&&&$........................@&&&&&&&&&&&&&%......................@$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&#..........................................",
+".......................................=&&&&&&&&&&&&&&.............................................$&&&&&&&&&&&&&&$................................#&&&&&&&&&&&&&&-......$&&&&&&&&&&&&&$........................*&&&&&&&&&&&&&#.........................@$&&&&&&&&&&&&&&&&&&&&&&&&&&&&..........................................",
+".......................................$&&&&&&&&&&&&&&.............................................$&&&&&&&&&&&&&&%...............................-&&&&&&&&&&&&&&$.......&&&&&&&&&&&&&&$.......................-&&&&&&&&&&&&&&+............................@$&&&&&&&&&&&&&&&&&&&&&&&&&-.........................................",
+".......................................$&&&&&&&&&&&&&&.............................................=&&&&&&&&&&&&&&&-..............................#&&&&&&&&&&&&&&@.......&&&&&&&&&&&&&&$.......................#&&&&&&&&&&&&&%................................+#%&&&&&&&&&&&&&&&&&&&&&@.........................................",
+".......................................$&&&&&&&&&&&&&&.............................................@&&&&&&&&&&&&&&&=.............................+&&&&&&&&&&&&&&%........&&&&&&&&&&&&&&$......................-&&&&&&&&&&&&&&#...................................+#%&&&&&&&&&&&&&&&&&&@.........................................",
+".......................................$&&&&&&&&&&&&&&.............................................+&&&&&&&&&&&&&&&%............................-%&&&&&&&&&&&&&&=........&&&&&&&&&&&&&&%......................#&&&&&&&&&&&&&&-......................................@*&&&&&&&&&&&&&&&&@.........................................",
+".......................................$&&&&&&&&&&&&&&..............................................&&&&&&&&&&&&&&&&=...........................$&&&&&&&&&&&&&&%.........&&&&&&&&&&&&&&&.....................-&&&&&&&&&&&&&&$.........................................=&&&&&&&&&&&&&&&@.........................................",
+".......................................$&&&&&&&&&&&&&&+.............................................*&&&&&&&&&&&&&&&%-.........................$&&&&&&&&&&&&&&&=.........&&&&&&&&&&&&&&&@....................*&&&&&&&&&&&&&&+.......-@@@@@@@@@@@@@+....................#&&&&&&&&&&&&&&-.........................................",
+".......................................@&&&&&&&&&&&&&&=...................*&&&&&&&&&&&&&-...........=&&&&&&&&&&&&&&&&$.......................-*&&&&&&&&&&&&&&&%..........%&&&&&&&&&&&&&&$...................#&&&&&&&&&&&&&&*........@&&&&&&&&&&&&&$....................@&&&&&&&&&&&&&&..........................................",
+".......................................@&&&&&&&&&&&&&&%..................=&&&&&&&&&&&&&#............+&&&&&&&&&&&&&&&&&$.....................+%&&&&&&&&&&&&&&&&@..........$&&&&&&&&&&&&&&&-.................@&&&&&&&&&&&&&&&+........$&&&&&&&&&&&&&%....................@&&&&&&&&&&&&&*..........................................",
+"........................................&&&&&&&&&&&&&&&=................@&&&&&&&&&&&&&%-.............*&&&&&&&&&&&&&&&&&*-.................-$&&&&&&&&&&&&&&&&&$...........#&&&&&&&&&&&&&&&*................@&&&&&&&&&&&&&&&#.........$&&&&&&&&&&&&&&+...................*&&&&&&&&&&&&&=..........................................",
+"........................................*&&&&&&&&&&&&&&&+..............@&&&&&&&&&&&&&&=..............=&&&&&&&&&&&&&&&&&&&#-.............+$&&&&&&&&&&&&&&&&&&%-...........@&&&&&&&&&&&&&&&&$..............$&&&&&&&&&&&&&&&%-.........$&&&&&&&&&&&&&&%-.................#&&&&&&&&&&&&&&-..........................................",
+"........................................=&&&&&&&&&&&&&&&&@...........-*&&&&&&&&&&&&&&$................%&&&&&&&&&&&&&&&&&&&&*=@-....-@=$&&&&&&&&&&&&&&&&&&&&&+.............&&&&&&&&&&&&&&&&&$-..........+%&&&&&&&&&&&&&&&&@..........=&&&&&&&&&&&&&&&%+..............-$&&&&&&&&&&&&&&*...........................................",
+"........................................-&&&&&&&&&&&&&&&&&*@.......@*&&&&&&&&&&&&&&&%-................=&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&@..............$&&&&&&&&&&&&&&&&&%=-......@*&&&&&&&&&&&&&&&&&#...........@&&&&&&&&&&&&&&&&&*=-........-@$&&&&&&&&&&&&&&&&+...........................................",
+".........................................#&&&&&&&&&&&&&&&&&&&*$$$%&&&&&&&&&&&&&&&&&&@..................*&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&=...............+&&&&&&&&&&&&&&&&&&&&%$$$%&&&&&&&&&&&&&&&&&&&*.............&&&&&&&&&&&&&&&&&&&&&*$$$$*&&&&&&&&&&&&&&&&&&&*............................................",
+".........................................-&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&@...................-&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$.................*&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&%-.............#&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&-............................................",
+"..........................................#&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&@.....................@&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&=..................-&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&%-..............-&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&@.............................................",
+"...........................................%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&@.......................#&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&@....................=&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&%-................#&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&@..............................................",
+"...........................................-%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&@.........................$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&%-......................$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$-..................*&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&@...............................................",
+"............................................-%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&%+...........................@&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&#.........................$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&#....................-%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&@................................................",
+".............................................-%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$-.............................+%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&*+...........................$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&%+......................-%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&*-.................................................",
+"..............................................-*&&&&&&&&&&&&&&&&&&&&&&&&&&&%@................................-#&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&%=..............................=&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&#..........................$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&%=...................................................",
+"................................................=%&&&&&&&&&&&&&&&&&&&&&&&%=....................................-$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&*@.................................-*&&&&&&&&&&&&&&&&&&&&&&&&&&#-............................+*&&&&&&&&&&&&&&&&&&&&&&&&&&&&%=-....................................................",
+".................................................-#%&&&&&&&&&&&&&&&&&&&*@........................................-#%&&&&&&&&&&&&&&&&&&&&&&&*#-.....................................+$&&&&&&&&&&&&&&&&&&&&&*=.................................+*&&&&&&&&&&&&&&&&&&&&&&&&$@.......................................................",
+"....................................................@$&&&&&&&&&&&&&%$@-.............................................+=$&&&&&&&&&&&&&&&&*$@-..........................................-@$&&&&&&&&&&&&&&&$=-.....................................-=$&&&&&&&&&&&&&&&&&*#@..........................................................",
+".......................................................-@@$$$$$#@@......................................................-@@=$$$$$$#@@+...................................................-@@#$$$$$=@@...............................................@@=$$$$$$$=@@-..............................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................"};
diff --git a/ecos/packages/hal/arm/sa11x0/cerfpda/current/misc/eCos2.xpm b/ecos/packages/hal/arm/sa11x0/cerfpda/current/misc/eCos2.xpm
new file mode 100644
index 0000000..2699ff9
--- /dev/null
+++ b/ecos/packages/hal/arm/sa11x0/cerfpda/current/misc/eCos2.xpm
@@ -0,0 +1,260 @@
+/* XPM */
+static char * eCos2_xpm[] = {
+"320 240 17 1",
+" c None",
+". c #020204",
+"+ c #909091",
+"@ c #D2D2D2",
+"# c #535352",
+"$ c #EC9199",
+"% c #E84F4D",
+"& c #F4B2B4",
+"* c #ED6B65",
+"= c #FEFEFC",
+"- c #EA1A05",
+"; c #323232",
+"> c #B1B1B1",
+", c #747474",
+"' c #F4D1DA",
+") c #E7362D",
+"! c #171717",
+".==============================================================================================================================================================================================================================================================================================================================.",
+".==============================================================================================================================================================================================================================================================================================================================.",
+".==============================================================================================================================================================================================================================================================================================================================.",
+".==============================================================================================================================================================================================================================================================================================================================.",
+".==============================================================================================================================================================================================================================================================================================================================.",
+".==============================================================================================================================================================================================================================================================================================================================.",
+".==============================================================================================================================================================================================================================================================================================================================.",
+".==============================================================================================================================================================================================================================================================================================================================.",
+".==============================================================================================================================================================================================================================================================================================================================.",
+".==============================================================================================================================================================================================================================================================================================================================.",
+".==============================================================================================================================================================================================================================================================================================================================.",
+".==============================================================================================================================================================================================================================================================================================================================.",
+".==============================================================================================================================================================================================================================================================================================================================.",
+".==============================================================================================================================================================================================================================================================================================================================.",
+".==============================================================================================================================================================================================================================================================================================================================.",
+".==============================================================================================================================================================================================================================================================================================================================.",
+".==============================================================================================================================================================================================================================================================================================================================.",
+".==============================================================================================================================================================================================================================================================================================================================.",
+".==============================================================================================================================================================================================================================================================================================================================.",
+".==============================================================================================================================================================================================================================================================================================================================.",
+".==============================================================================================================================================================================================================================================================================================================================.",
+".==============================================================================================================================================================================================================================================================================================================================.",
+".==============================================================================================================================================================================================================================================================================================================================.",
+".==============================================================================================================================================================================================================================================================================================================================.",
+".==============================================================================================================================================================================================================================================================================================================================.",
+".==============================================================================================================================================================================================================================================================================================================================.",
+".==============================================================================================================================================================================================================================================================================================================================.",
+".==============================================================================================================================================================================================================================================================================================================================.",
+".==============================================================================================================================================================================================================================================================================================================================.",
+".==============================================================================================================================================================================================================================================================================================================================.",
+".==============================================================================================================================================================================================================================================================================================================================.",
+".==============================================================================================================================================================================================================================================================================================================================.",
+".==============================================================================================================================================================================================================================================================================================================================.",
+".==============================================================================================================================================================================================================================================================================================================================.",
+".==============================================================================================================================================================================================================================================================================================================================.",
+".==============================================================================================================================================================================================================================================================================================================================.",
+".==============================================================================================================================================================================================================================================================================================================================.",
+".==============================================================================================================================================================================================================================================================================================================================.",
+".==============================================================================================================================================================================================================================================================================================================================.",
+".==============================================================================================================================================================================================================================================================================================================================.",
+".==============================================================================================================================================================================================================================================================================================================================.",
+".==============================================================================================================================================================================================================================================================================================================================.",
+".==============================================================================================================================================================================================================================================================================================================================.",
+".==============================================================================================================================================================================================================================================================================================================================.",
+".==============================================================================================================================================================================================================================================================================================================================.",
+".==============================================================================================================================================================================================================================================================================================================================.",
+".==============================================================================================================================================================================================================================================================================================================================.",
+".==============================================================================================================================================================================================================================================================================================================================.",
+".==============================================================================================================================================================================================================================================================================================================================.",
+".==============================================================================================================================================================================================================================================================================================================================.",
+".==============================================================================================================================================================================================================================================================================================================================.",
+".==============================================================================================================================================================================================================================================================================================================================.",
+".==============================================================================================================================================================================================================================================================================================================================.",
+".==============================================================================================================================================================================================================================================================================================================================.",
+".==============================================================================================================================================================================================================================================================================================================================.",
+".==============================================================================================================================================================================================================================================================================================================================.",
+".==============================================================================================================================================================================================================================================================================================================================.",
+".==============================================================================================================================================================================================================================================================================================================================.",
+".==============================================================================================================================================================================================================================================================================================================================.",
+".==============================================================================================================================================================================================================================================================================================================================.",
+".==============================================================================================================================================================================================================================================================================================================================.",
+".==============================================================================================================================================================================================================================================================================================================================.",
+".==============================================================================================================================================================================================================================================================================================================================.",
+".==============================================================================================================================================================================================================================================================================================================================.",
+".==============================================================================================================================================================================================================================================================================================================================.",
+".==============================================================================================================================================================================================================================================================================================================================.",
+".======================@@@@@@>@>@>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>@@================''&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&'&'&'&''''==================.",
+".===================='=@>>>+++,,,+,########################################################################################################+@================'$************************************************************************************************************************************$*$*$$$&&&''================.",
+".=====================@>>,,###;#;;;!.......................................................................................................#>================&*----------------------------------------------------------------------------------------------------------------------------------))))))%%%*$$''================.",
+".================@@>>++,,##;;;;;;;!........................................................................................................#>================&*------------------------------------------------------------------------------------------------------------------------------------)))))))%**$$&&'''===========.",
+".=============='@>+,,##;;;;!!!!.!!!........................................................................................................#>================&*------------------------------------------------------------------------------------------------------------------------------------)---)-)))%%***$$&'==========.",
+".===============>+,;!......................................................................................................................#>================&%-------------------------------------------------------------------------------------------------------------------------------------------------)%*$'==========.",
+".==========@@@>>,,;;!......................................................................................................................#>================&*-------------------------------------------------------------------------------------------------------------------------------------------------))%*$$&''======.",
+".==========@>+,##;!!.......................................................................................................................#>================&%--------------------------------------------------------------------------------------------------------------------------------------------------))%%*$$&''====.",
+".=========@>>,#!!..........................................................................................................................#>================&*-------------------------------------------------------------------------------------------------------------------------------------------------------)*$&'====.",
+".=======@@>+##;.!..........................................................................................................................#>================&%-------------------------------------------------------------------------------------------------------------------------------------------------------)%*$&''==.",
+".======@>+,#;;!............................................................................................................................#>================&*--------------------------------------------------------------------------------------------------------------------------------------------------------))%$$&'=.",
+".======@+,;!...............................................................................................................................#>================&%----------------------------------------------------------------------------------------------------------------------------------------------------------)%*&'=.",
+".====@@+,;;!...............................................................................................................................#>================&*-----------------------------------------------------------------------------------------------------------------------------------------------------------)%*&'.",
+".===@>+,#!!!...............................................................................................................................#>================&%-----------------------------------------------------------------------------------------------------------------------------------------------------------))%*$.",
+".===@+#;;..................................................................................................................................#>================&*-------------------------------------------------------------------------------------------------------------------------------------------------------------)%*.",
+".='@>+;;!..........................................!.!!!!!!!!..............................................................................#>================&%-------------------------------------------------------------------------------------------------------------------------------------------------------------))%.",
+".=@>+#!!..........................................!!!!;!;!!!!!.............................................................................#>================&*----------------------------------------------))))))----------------------------------------------------------------------------------------------------------)).",
+".@>+,;............................................!;;;;;;#;;;!!............................................................................#>================&%---------------------------------------------))))))))-----------------------------------------------------------------------------------------------------------.",
+".@>,#!...................................!!;;;;####,,,++,+,,,,####;;;;!!.........................................................!!!;!;!;!;,>================&*------------------------------------)))%%%*****$*$$*$*%*%%%)))-----------------------------------------------))))%%%%*%*%%%%))))))------------------------------.",
+".>,;;!..................................!;;##,,+>>>>>>@>>@>@>>>>+++,##;!!!......................................................!!;;#######,@================&%----------------------------------))%**$$&&&&&&'&&&&&&&&&&$$*%%)-------------------------------------------)%%%$*$$$&&&&&&$$$$**%%))----------------------------.",
+".+#!!...................................!;,,++>@@================@@>+,#;!!.....................................................!!;##,,,,,,,+@================&*----------------------------------)%*$$&''================'&$*%%)-----------------------------------------))%*$$&&''=====''&&$&$**%)----------------------------.",
+".,#!................................!;;;,,++>>@@==================@@>>+,##;;!!...........................................!!;;;##,,,+>++++>+@@================&%------------------------------))%%*$$&'''=================''&&$**%%))----------------------------------))%%$$$&'''''======'@'@&&&$$$**%%))----------------------.",
+".#;!..............................!!;;,++>@@@'===================='@@@@>>+,#;!.........................................!.!;#,,>>>>@>@@@@@@@@=================&*----------------------------)%%*$&&&'''===================='''''&$$*%)---------------------------------%*$$&'''''=========='''=''''&&&$$*%-)--------------------.",
+".#!...............................!;;,+@@================================@>+#;.........................................!!;#,+@@==============================&%----------------------------)%$&'===============================''&$*))-------------------------------)%$&''========================='@&$*))--------------------.",
+".;!.............................!;;,,>>=@=============================='=@@>+#;;!...................................!!;##,+>>@===============================&*--------------------------)%*$$&'================================''&$$*))---------------------------)%*$&@'===========================''$*%)--------------------.",
+".!.............................!;#,+>@@==================================='@>+,#;!!.................................;;#+>>>@'@===============================&%-------------------------)%$$'''===================================''&$*))-------------------------)%$&''===============================&$%)--------------------.",
+"...............................;;,>@=========================================>>,#!.................................!;#+>=====================================&*-------------------------%$&''========================================'$%))------------------------)*&==================================&$%%)-------------------.",
+"............................!!;#,+@@=========================================@>>,#;;.............................!;;,,>@=====================================&%----------------------))%*&''========================================='&$*%)---------------------)%*$&==================================&*))--------------------.",
+"............................!;#+>@@===========================================@@>+,;!...........................!;;,+@@@=====================================&*----------------------)*$&''===========================================''$$%%)-------------------)*$&@================================'@&*)---------------------.",
+"............................;#+>@===============================================@@+#!!..........................!##+@========================================&%----------------------)$&'==============================================='&*%)-------------------%$&''================================''$%----------------------.",
+"..........................!!#+>@@===============================================@@>,#;!.......................!!;,+>@========================================&*--------------------)%*&'@===============================================''&*%-------------------*$@'================================''$*%----------------------.",
+".........................!;;,>@'==================================================@>,#;......................!;;,+@@=========================================&%-------------------)*$&&='================================================''&*))---------------))*&'================================='$*%)----------------------.",
+".........................!##+@====================================================@@>,;......................!;#+@===========================================&*-------------------%$&''===================================================='$%)---------------)%$'=================================='$))-----------------------.",
+".........................;,+>@=================@@>@>>>>>>>>>>>>@@'@==============='@@+#!!....................;#,>@====================='='''''''''''''=======&%------------------)*$@'===================='''''''''''''===================='$$*)-------------)%%$'=============='=''&&&$&&&&&''''='=$*))-----------------------.",
+".......................!!#,@@================@@@+++,,#########,+>>@@===============@@>,;;!.................!!#,>@======================''&&$&$$$&&&&''''=====&*----------------))%$&===================='''&$$$$$&$&&&''===================='&$%-------------)%*$'==============''&$*********$$'''''$*-------------------------.",
+"........................!#>@==================@+,#;;!........!;#,+@@'================@>##!..................!,>'======================''&$$*******$$$'''=====&%----------------)%*$&===================''&$$********$$&'======================&%-------------)**&'==============@&$%-------))%*$&@&&$%-------------------------.",
+"......................!;#,>=============='=@>++,#;;!!!.......!!;#,,+>@@==============@>+#;................!;;,>====================''&&$$*%%%%%%%%***$$&&''==&*----------------)*$''================'''&$$**%%%%%%%%***$&&''==================&*)------------)*$&'============='&$*%--------))%*$$$$%)-------------------------.",
+"......................!#,>>==============@@>+##;!;!!..........!!!;##,+>@=============@@>,;................;#,+@==================='&$**%%%))))))))))%%%*$$''=&%----------------%$''================='&***%%)))))))))))%%**$&''================'$%%-----------%*&''============='&*%)---------))))%%%))-------------------------.",
+"......................;#+@@==============@@+#!!!...................;##+@===============@+#................;,+@@==================='$*%)----------------)%*$'=&*----------------*&===================&*%)-----------------%*$&'================'&**)----------%$&@==============&$%))---------------)---------------------------.",
+"......................#+>@@=============@>+,;!.....................!;#,>@@============'=>#!!..............;+>@@================''&$*%%-----------------))%*&&$%----------------*&================'@&$*-)-----------------)%*$&''=============='&&*)----------%$&''============='$*%)-------------------------------------------.",
+"......................;+'=============@=>+#;;.......................!!#,>@'=============>,;!!...........!!#+@=================='$**%))------------------))%*$*)--------------)%*&================'$*%)--------------------))%$$&'==============''$%----------%$&@=============='&**)-------------------------------------------.",
+"......................#>===============@+#!!..........................;#+>@=============>+#;!...........!!,>===================&*)------------------------)%%%--------------)%%$'================&*)))----------------------)%*&'================&%----------%$&''============='@$*)-------------------------------------------.",
+"....................!!,>=============@@>+#;!!!!!!!!!!!!!!!!!!!!!!!!!!!;#,>@=============@+,#!..........!!;,>=================''$*)-------------------------)))--------------)%*$'=============''&$%--------------------------)%$&'===============&*----------)$&'===============''$*%%))---------------------------------------.",
+"...................!!;,>=============@>+,#;;;!;!;!;!;!;!;!;!;!;!;!;!;;;#,+@=============@>,#;...........;;+>================''$*%---------------------------)---------------)*$&'============='&$*%-------------------------)-)*&''==============&*)---------%$@''============='=''&$**%%)-------------------------------------.",
+"...................!;#+>=============@>,##;;#;;;#;;;#;;;#;;;#;;;#;;#;;###,@=============@@+,;..........!;#+@================'$*%)-------------------------------------------)*$@'============='$%%)----------------------------%$&''============='*%)--------%*&'==================''&$*%))------------------------------------.",
+"...................;;,+@=============@>>+++,,++,,++,,++,,++,,++,,+,,+,,,+>@============='@>,;..........!##+@================'$%))-------------------------------------------%$&'==============&*))-----------------------------)*$''============='$%%--------%*&''=================='@&$$$**%%%))------------------------------.",
+"...................;#,>@==============@@@>@>@>>@>>@>@>>@>>>@>>>@>@>@>@>@@@===============@@+#..........;#,>@================&*))--------------------------------------------%&'='===========''&*)------------------------------)%*$'============='$*%)-------)*$&'=================='''''&&&$$**%))----------------------------.",
+"...................;#+>@===================================================================+#..........;#+>@================&*----------------------------------------------*&=============='@$%-------------------------------))%$'============='&*%)-------)**&'========================='@&$$*%-----------------------------.",
+"...................;,+>@===================================================================+#..........;,+>@==============='&%----------------------------------------------*&=============''&$%--------------------------------))*&============='&**)-------)%%$'=========================='@'&$$**))-------------------------.",
+"...................;,>@@===================================================================>#..........;,>@'==============''$%----------------------------------------------*&============='&$*)---------------------------------)*&============='&*%)--------)%$&============================''''&&$%)------------------------.",
+"...................;+>@====================================================================>#..........;+>@=============='''$%----------------------------------------------%&============='&$%)----------------------------------*&============='&**)----------*&==================================&*%)-----------------------.",
+"...................;+>@@===================================================================>#..........;,@@@==============@&*%----------------------------------------------*&============='&*%)----------------------------------*&=============@&$*)----------%$''================================@&**)----------------------.",
+"...................;+>@====================================================================>#..........#,>@==============''@$%---------------------------------------------)*&============='$**)----------------------------------*&=============''$*%----------%*$&'==============================='''$*)---------------------.",
+"...................;,@@@===================================================================>#..........#,@@'=============''&$)---------------------------------------------)*&============='$*%)----------------------------------*&==============@&$)----------))%$'==================================&$))--------------------.",
+"...................#,>@================@=@='=@=@=@=@='=@='=@=@=@='=@='=@='=@='=@='=@=@=@=@'+#..........;,@@==============='&$%--------------------------------------------)-*'============='$*%)----------------------------------*&=============''&$%-----------)%*$&'''=============================='$$%)-------------------.",
+"...................;+>@@==============@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@+#..........#,>@@============='@&$)----------------------------------------------*&============='$*%-----------------------------------*&==============&&*)-------------%%*$$&''============================''&$%-------------------.",
+"...................;+>@==============@@@>>@>>@>@>>@>>@>@>>@>>@>@>@>@>@>@>@>@>@>@>@>>@>>@>@>,;..........;+>@==============='&$%----------------------------------------------*&============='$*%)----------------------------------%&============='&&*%--------------))%*$&'===============================$*-------------------.",
+"...................;,>@@=============@>+++,+,,,,+,+,+,,,+,+,+,,,,,+,,,+,,,+,,,+,,,+,,+,+,,+#;..........#,>@@============='@&$)----------------------------------------------*&============='&$*)----------------------------------*&=============@&$*)----------------)%*$$&&&'''''=======================&*-------------------.",
+"...................;,+>@=============@+###;;#;#;#;;#;#;#;;;#;#;##;;#;#;#;#;#;#;#;#;#;;#;#;;;!..........;,>@===============''$%----------------------------------------------*&============='@$*%---------------------------------)*&============='&$%)---------------)-))%%**$$&&'''======================&*)------------------.",
+"...................;#+>@=============>,;!!.............................................................;,>@@==============@'$%----------------------------------------------*&============='@&$)---------------------------------)*&============='&**)----------------------))%*$$''======================&$))-----------------.",
+"...................;#+>@=============@+#;!................................................!............;,+>@==============''&%----------------------------------------------%&'=============''$%-------------------------------))%$'============='$*%)-----------------------))%**$$&&'''================='$%))----------------.",
+"...................;#,>@=============@>,#;...............................................!!!...........;#+>@================&*)---------------------------------------------%$''==============&*-------------------------------)%*$'============='$*%-------------------------))))%%**$&''================&$%%-----------------.",
+"...................!#,>@=============@>+,;...............................................!!!!..........;#,>@================&$))--------------------------------------------%$&''=============&*-------------------------------)*$&'============='$%%)-------------------------------)%*&'================'$*%)----------------.",
+"...................!;#+@==============@>,#!...........................!.!!!!!!!!!!!!!!!!!;;!!..........!;#+@================'$*%)-------------------------------------------%*&''============='$%%----------------------------)%$&''=============&$))--------------------------------)%%$&''=============='&*%)----------------.",
+"...................!;;,>==============@=+,;!!.......................!.!!;!;!;!;!;!;!;!;;;;;!!..........!;;,>================''$*%-------------------------------------------)*$&'============='&$*)---------------------------)*$'===============&*)----------------------------------))*$&''============='$*%)----------------.",
+"....................!;,>================>,;;!.......................!!;;;#;;;#;;;#;;#;;;;;;;!...........!;,>=================@'$%---------------------------)---------------)%$&'============='@&$)--------------------------))$'================&*-------------------------------------)*$&'============='&$%)----------------.",
+"....................!!#>@===============@>,#;!.....................;;##,,+,+,,++,,+,,+++,#;!!...........!!#>=================''&*%)-----------------------)%*%)-------------)%%$'==============''$*%)-----------------------%**$'==============''&%--------------))))%))----------------)*$&'============='&*%)----------------.",
+".....................!#+@@=============='@>+#;!!..................!;,+>>>>@>@>>@>@>@>>>>+#;!!.............#+@@================='$$*)---------------------)%*$*)--------------))$&================'$*%)--------------------))%$&'==============='&$%--------------%%**$*)----------------)*$&'============='&$%)----------------.",
+"......................;+>@@================>,;;!.................!!#+@@=================>,;!..............;,>@@=================@&*%---------------------)*$'$%---------------)*&================'&&*)--------------------))$&================''$*)-------------)%$$&&$%)---------------%*$&'============='$**)----------------.",
+"......................;#+@@=============='=@>+##;;!!!!!.....!!;;;##+>'@================@+#!!..............;,+@@================='@&$%%)))-----------)))%**$''$%----------------%&''===============''$$%%))------------)))%*$$@================'&**)-------------%*&&&@&$*%%)))--------))%$&''============='$*%-----------------.",
+"......................;##+@================@@>>+,##;;!!!..!!;;##,+>>@================@@>,#................!##+@=================='''&$*%%))-------))%%*$$&''=&*----------------%$&''=============='''&&$*%%))------)))%%*$$&'================='$%)--------------*$'''=''&$*%%))-------)%$&'==============='$%%-----------------.",
+"......................!;;+>===================@@>+,##;;!!.!;;#,+>@===================@>+#;................!;;+>======================'$$*%))------)%**$&'====&%----------------)*$&'===================@$*%%))-----))%**$&'===================&*)-------------)-*&=======@$$*%))-----)%*$'================'*))-----------------.",
+"......................!!;#>@===================@@>++,,,,###,,++>@@===================>+,;;................!!;#>@@====================''$$$$***%****$$&&@=====&*----------------)%*&'==================='&&$$$*******$*$&&@'=================''$%--------------)%$'=======''$$$$*******$$''================&*))-----------------.",
+".......................!!#+>@@================'=@@@@@@>>>>>>@@@@@@================='=>,;;!.................!!;,+@@===================='''&'&&&&&&'&&''''=====&%-----------------))$&===================='''&'&&&&&&&&'''''=================''&*%-------------)%*$'========'''''&&&&&&&'''=================&*-------------------.",
+".........................;#+@@=====================================================@@>#!!....................;#,>@===========================================&*-----------------)-*&======================================================='&**)-------------)*$&'========================================&*-------------------.",
+".........................!#,+>====================================================@>>,;!.....................!;#,>@'=========================================&%-------------------%*&''==================================================='&$*))-------------%$&''=====================================''@$%-------------------.",
+".........................!!;,>@@==================================================@+,#;.......................!!#+@@@========================================&*-------------------)%*&'==================================================''&*))--------------%$'=======================================''$*%-------------------.",
+"............................;+@@================================================@=>,;!!.........................;,+@@========================================&%--------------------))*&==================================================@&*%---------------)*&========================================'&$%)-------------------.",
+"............................;#+>@@=============================================@@>,#!!..........................!##+>@=======================================&*---------------------)%$''==============================================''&$*)--------------))$&======================================''&$%))-------------------.",
+"............................;;#+>@@============================================@>,#;.!..........................!;;#+>@@=====================================&%----------------------)**&'============================================''$*%)--------------))%$'======================================'&$*))--------------------.",
+".............................!!#+@@===========================================@>,;;!...............................;#+>@=====================================&*----------------------))%$&===========================================''@$%----------------)%*$'====================================='&$%)----------------------.",
+".!............................!;,+>>@@=====================================@@>>+#;!................................!;#,>>@@'=================================&%-----------------------))**&'''=====================================''&$**)----------------))%*$&'''===============================''&$*%)----------------------.",
+".!!............................!;;,+>@@===================================@@>+,#;!!................................!;;##++>@@================================&*------------------------))**$&''===================================''&$*%))-----------------))%*$$&''=============================''&**))-----------------------.",
+".;!...............................;#+>@===================================@>+#!!......................................!;;,+@@'===============================&%---------------------------)%$@''=================================='&**)-----------------------)%*$@''============================'$$%)-------------------------.",
+".#;...............................!;,,+>@@@===========================@@>>++#;!!......................................!!;##,+>>@@@@@=@=@='===================&*---------------------------)%**&&'''==========================''''&$**))------------------------)%*$$&&'''''='============='''''&&$**))-------------------------.",
+".,;...............................!!;##,++>@@=======================@@@>+,#;;!!.........................................!!;###,,+>>>@@@@@@@@=================&%----------------------------))%**$&&''=======================''&$$**%))--------------------------))%%***$&&''''''========='''&$$**%%))--------------------------.",
+".+#...................................!!#,+@@=======================@@+,#;!.................................................!!;##,++>>>>>>@@@================&*-------------------------------))%*$&@'======================'&$*%------------------------------------))**$&&@'''=======''@'$$*%)-------------------------------.",
+".>#;!.................................!!;#,,+>>>>@@@@@@@@@@@@@@@@>>>++,#;;!..................................................!!;;###,,,++,,>@================&%--------------------------------)%**$$&&'&'''''''''''''''&&&&$$*%)-------------------------------------)%%***$$$$&&&&&&&&&$$**%))-------------------------------.",
+".>+#;!.................................!!!;;##,,++>>>>>>>>>>>>+++,,###;!!!...................................................!.!!;;;;;#;;#;+>================&*---------------------------------)))%%***$$$$&&&&&&&&&$$$$***%))))--------------------------------------))%%%%%%*%******%%%%%)))--------------------------------.",
+".@+,#;........................................!;##,++++++++++,,##;;!.......................................................................#>================&%----------------------------------------)%%***********$**%))----------------------------------------------------------------------------------------------------.",
+".@@+,;!!......................................!;;##############;;!!!.......................................................................#>================&*----------------------------------------)))%%**%**%**%%%)))----------------------------------------------------------------------------------------------------).",
+".=@@+,;!!......................................!!!;;;;;;;;;;;;!;!!!........................................................................#>================&%------------------------------------------))))))))))))))))----------------------------------------------------------------------------------------------------)).",
+".===@+#;!..................................................................................................................................#>================&*-------------------------------------------------------------------------------------------------------------------------------------------------------------)%%.",
+".===@>,,;!.................................................................................................................................#>================&%-------------------------------------------------------------------------------------------------------------------------------------------------------------%*$.",
+".==='@>+#;!!...............................................................................................................................#>================&*-----------------------------------------------------------------------------------------------------------------------------------------------------------)%*$'.",
+".======>,;;!...............................................................................................................................#>================&%----------------------------------------------------------------------------------------------------------------------------------------------------------)%%$'=.",
+".======@>,#;;!.............................................................................................................................#>================&*---------------------------------------------------------------------------------------------------------------------------------------------------------)%*$&'=.",
+".======@@@+,#;!............................................................................................................................#>================&%-------------------------------------------------------------------------------------------------------------------------------------------------------))%*$''==.",
+".=========@>,#!............................................................................................................................#>================&*-------------------------------------------------------------------------------------------------------------------------------------------------------)%*&'====.",
+".=========@>++##;!!........................................................................................................................#>================&%----------------------------------------------------------------------------------------------------------------------------------------------------))%*$$&'====.",
+".==========@@>>+,#;!!......................................................................................................................#>================&*--------------------------------------------------------------------------------------------------------------------------------------------------))%$$$&''=====.",
+".=============@@+,;;!......................................................................................................................#>================&%-------------------------------------------------------------------------------------------------------------------------------------------------))%*&''========.",
+".=============@@>>,,##;;;!!!!.!............................................................................................................#>================&*--------------------------------------------------------------------------------------------------------------------------------------------)))%%**$$''=========.",
+".===============@@>>+++,##;!;!!!...........................................................................................................#>================&%-----------------------------------------------------------------------------------------------------------------------------------------)))%%**$$&''''=========.",
+".====================@@++,#;;;!!!..........................................................................................................#>================&*---------------------------------------------------------------------------------------------------------------------------------------))))%*$$&@'==============.",
+".===================@=@@>>++,,,,###########################################################################################################+@================'$*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%******$$$&&'='==============.",
+".=====================@@@@@>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>@================''&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&'''''================.",
+".==============================================================================================================================================================================================================================================================================================================================.",
+".==============================================================================================================================================================================================================================================================================================================================.",
+".==============================================================================================================================================================================================================================================================================================================================.",
+".==============================================================================================================================================================================================================================================================================================================================.",
+".==============================================================================================================================================================================================================================================================================================================================.",
+".==============================================================================================================================================================================================================================================================================================================================.",
+".==============================================================================================================================================================================================================================================================================================================================.",
+".==============================================================================================================================================================================================================================================================================================================================.",
+".==============================================================================================================================================================================================================================================================================================================================.",
+".==============================================================================================================================================================================================================================================================================================================================.",
+".==============================================================================================================================================================================================================================================================================================================================.",
+".==============================================================================================================================================================================================================================================================================================================================.",
+".==============================================================================================================================================================================================================================================================================================================================.",
+".==============================================================================================================================================================================================================================================================================================================================.",
+".==============================================================================================================================================================================================================================================================================================================================.",
+".==============================================================================================================================================================================================================================================================================================================================.",
+".==============================================================================================================================================================================================================================================================================================================================.",
+".==============================================================================================================================================================================================================================================================================================================================.",
+".==============================================================================================================================================================================================================================================================================================================================.",
+".==============================================================================================================================================================================================================================================================================================================================.",
+".==============================================================================================================================================================================================================================================================================================================================.",
+".==============================================================================================================================================================================================================================================================================================================================.",
+".==============================================================================================================================================================================================================================================================================================================================.",
+".==============================================================================================================================================================================================================================================================================================================================.",
+".==============================================================================================================================================================================================================================================================================================================================.",
+".==============================================================================================================================================================================================================================================================================================================================.",
+".==============================================================================================================================================================================================================================================================================================================================.",
+".==============================================================================================================================================================================================================================================================================================================================.",
+".==============================================================================================================================================================================================================================================================================================================================.",
+".==============================================================================================================================================================================================================================================================================================================================.",
+".==============================================================================================================================================================================================================================================================================================================================.",
+".==============================================================================================================================================================================================================================================================================================================================.",
+".==============================================================================================================================================================================================================================================================================================================================.",
+".==============================================================================================================================================================================================================================================================================================================================.",
+".==============================================================================================================================================================================================================================================================================================================================.",
+".==============================================================================================================================================================================================================================================================================================================================.",
+".==============================================================================================================================================================================================================================================================================================================================.",
+".==============================================================================================================================================================================================================================================================================================================================.",
+".==============================================================================================================================================================================================================================================================================================================================.",
+".==============================================================================================================================================================================================================================================================================================================================.",
+".==============================================================================================================================================================================================================================================================================================================================.",
+".==============================================================================================================================================================================================================================================================================================================================.",
+".==============================================================================================================================================================================================================================================================================================================================.",
+".==============================================================================================================================================================================================================================================================================================================================.",
+".==============================================================================================================================================================================================================================================================================================================================.",
+".==============================================================================================================================================================================================================================================================================================================================.",
+".==============================================================================================================================================================================================================================================================================================================================.",
+".==============================================================================================================================================================================================================================================================================================================================.",
+".==============================================================================================================================================================================================================================================================================================================================.",
+".==============================================================================================================================================================================================================================================================================================================================.",
+".==============================================================================================================================================================================================================================================================================================================================.",
+".==============================================================================================================================================================================================================================================================================================================================.",
+".==============================================================================================================================================================================================================================================================================================================================.",
+".==============================================================================================================================================================================================================================================================================================================================.",
+".==============================================================================================================================================================================================================================================================================================================================.",
+".==============================================================================================================================================================================================================================================================================================================================.",
+".==============================================================================================================================================================================================================================================================================================================================.",
+".==============================================================================================================================================================================================================================================================================================================================.",
+".==============================================================================================================================================================================================================================================================================================================================.",
+".==============================================================================================================================================================================================================================================================================================================================.",
+".==============================================================================================================================================================================================================================================================================================================================.",
+".==============================================================================================================================================================================================================================================================================================================================.",
+".==============================================================================================================================================================================================================================================================================================================================.",
+".==============================================================================================================================================================================================================================================================================================================================.",
+".==============================================================================================================================================================================================================================================================================================================================.",
+".==============================================================================================================================================================================================================================================================================================================================.",
+".==============================================================================================================================================================================================================================================================================================================================."};
diff --git a/ecos/packages/hal/arm/sa11x0/cerfpda/current/misc/escw.xpm b/ecos/packages/hal/arm/sa11x0/cerfpda/current/misc/escw.xpm
new file mode 100644
index 0000000..3436500
--- /dev/null
+++ b/ecos/packages/hal/arm/sa11x0/cerfpda/current/misc/escw.xpm
@@ -0,0 +1,264 @@
+/* XPM */
+static char * escw_xpm[] = {
+"320 240 21 1",
+" c None",
+". c #28CAE0",
+"+ c #6F8695",
+"@ c #3FB3C7",
+"# c #579DAE",
+"$ c #FF0000",
+"% c #E61619",
+"& c #9E5A64",
+"* c #CE2D32",
+"= c #B7434A",
+"- c #87707C",
+"; c #FFFFFF",
+"> c #C7C7C7",
+", c #AAAAAA",
+"' c #727272",
+") c #555555",
+"! c #1D1D1D",
+"~ c #000000",
+"{ c #393939",
+"] c #8E8E8E",
+"^ c #E3E3E3",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"....................+++++++++++++++++++++++++@......................................................................#+++++++#........................#++++++++@................@++++++++#.......................................................................................................................................",
+"....................$$$$$$$$$$$$$$$$$$$$$$$$$$%&@...................................................................$$$$$$$$&........................*$$$$$$$$#................&$$$$$$$$&.......................................................................................................................................",
+"...................+$$$$$$$$$$$$$$$$$$$$$$$$$$$$$+.................................................................@$$$$$$$$+........................$$$$$$$$$.................=$$$$$$$$+.......................................................................................................................................",
+"...................&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$+................................................................+$$$$$$$$........................#$$$$$$$$*.................$$$$$$$$$@.......................................................................................................................................",
+"...................=$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$+...............................................................&$$$$$$$%........................-$$$$$$$$=................@$$$$$$$$$..........................................$$$$$$$$&.....................................................................................",
+"...................$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%...............................................................=$$$$$$$=........................=$$$$$$$$+................+$$$$$$$$=.........................................+$$$$$$$$+.....................................................................................",
+"..................@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$-..............................................................$$$$$$$$-........................%$$$$$$$$@................=$$$$$$$$&.........................................+$$$$$$$$@.....................................................................................",
+"..................+$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$=.............................................................#$$$$$$$$#........................$$$$$$$$$.................*$$$$$$$$+.........................................=$$$$$$$$......................................................................................",
+"..................=$$$$$$$$+............+&$$$$$$$$$$$.............................................................+$$$$$$$$........................+$$$$$$$$=.................$$$$$$$$$..........................................*$$$$$$$=......................................................................................",
+"..................*$$$$$$$$#..............@%$$$$$$$$$.............................................................=$$$$$$$*........................&$$$$$$$$&................#$$$$$$$$%..........................................$$$$$$$$-......................................................................................",
+"..................$$$$$$$$$................#$$$$$$$$$.............................................................*$$$$$$$=........................=$$$$$$$$+................-$$$$$$$$=.........................................#$$$$$$$$+......................................................................................",
+".................#$$$$$$$$=.................*$$$$$$$%...............#++==-+#.........................@++==++......$$$$$$$$+........................$$$$$$$$$.................=$$$$$$$$-..............@++-===-++.................+$$$$$$$$.......................................................................................",
+".................-$$$$$$$$&.................=$$$$$$$=............+=$$$$$$$$$$=#....................-*$$$$$$$$&@..+$$$$$$$$@.......................@$$$$$$$$%.................%$$$$$$$$#...........+=$$$$$$$$$$$$*-..........#+++*$$$$$$$$++++@..................................................................................",
+".................=$$$$$$$$+.................*$$$$$$$-.........@&$$$$$$$$$$$$$$$=@................-%$$$$$$$$$$$%@.-$$$$$$$$........................+$$$$$$$$=.................$$$$$$$$$..........-%$$$$$$$$$$$$$$$$%+........$$$$$$$$$$$$$$$$$+..................................................................................",
+".................%$$$$$$$$@................@$$$$$$$$@........+%$$$$$$$$$$$$$$$$$%@.............@*$$$$$$$$$$$$$$%@=$$$$$$$=........................=$$$$$$$$-................+$$$$$$$$*........@*$$$$$$$$$$$$$$$$$$$$+......#$$$$$$$$$$$$$$$$$@..................................................................................",
+".................$$$$$$$$$.................&$$$$$$$=........=$$$$$$$$$$$$$$$$$$$$%@...........#%$$$$$$$$$$$$$$$$&%$$$$$$$&........................*$$$$$$$$#................&$$$$$$$$=.......@%$$$$$$$$$$$$$$$$$$$$$$@.....+$$$$$$$$$$$$$$$$$...................................................................................",
+"................+$$$$$$$$=................#$$$$$$$$#.......=$$$$$$$$$$$$$$$$$$$$$$*..........+$$$$$$$$$$$$$$$$$$$$$$$$$$$+........................$$$$$$$$$.................=$$$$$$$$+.......%$$$$$$$$$$$$$$$$$$$$$$$&.....=$$$$$$$$$$$$$$$$=...................................................................................",
+"................-$$$$$$$$&...............@%$$$$$$$&.......-$$$$$$$$$$$$$$$$$$$$$$$$+........@$$$$$$$$$$$$$$$$$$$$$$$$$$$$@.......................#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@......&$$$$$$$$$$$$$$$$$$$$$$$$%.....*$$$$$$$$$$$$$$$$-...................................................................................",
+"................=$$$$$$$$+..............-%$$$$$$$*.......#$$$$$$$$$%&+@@+=$$$$$$$$$*........%$$$$$$$$$%-#.+&$$$$$$$$$$$$%........................-$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$......@$$$$$$$$$*++..#+*$$$$$$$$$.....++++$$$$$$$$*++++@...................................................................................",
+"................$$$$$$$$$-++++++++++++=%$$$$$$$$%@.......%$$$$$$$$&.......+$$$$$$$$$#......&$$$$$$$$$&......@%$$$$$$$$$$=........................=$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$=......&$$$$$$$$+........%$$$$$$$$........#$$$$$$$$+........................................................................................",
+"...............@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$=@.......&$$$$$$$$+.........&$$$$$$$$-.....@$$$$$$$$$+........+$$$$$$$$$$-........................%$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&......%$$$$$$$+.........=$$$$$$$*........+$$$$$$$$@........................................................................................",
+"...............+$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$-........@$$$$$$$$=..........@$$$$$$$$=.....*$$$$$$$$-..........*$$$$$$$$$+........................$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$+.....#$$$$$$$*..........*$$$$$$$=........=$$$$$$$$.........................................................................................",
+"...............&$$$$$$$$$$$$$$$$$$$$$$$$$$$$&@.........&$$$$$$$%............%$$$$$$$=....#$$$$$$$$*...........&$$$$$$$$$........................+$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$......#=======+.........@$$$$$$$$+........%$$$$$$$=.........................................................................................",
+"...............*$$$$$$$$$$$$$$$$$$$$$$$$$$$&@..........%$$$$$$$&............=$$$$$$$=....&$$$$$$$$@...........+$$$$$$$$*........................-$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%.......................@%$$$$$$$$#........$$$$$$$$&.........................................................................................",
+"...............$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&........+$$$$$$$$@............=$$$$$$$=....$$$$$$$$=............+$$$$$$$$=........................=$$$$$$$$&++++++++++++++++&$$$$$$$$=....................++=$$$$$$$$$$........+$$$$$$$$+.........................................................................................",
+"..............#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$=.......=$$$$$$$$$$$$$$$$$$$$$$$$$$$$$=...+$$$$$$$$#............+$$$$$$$$+........................$$$$$$$$$.................=$$$$$$$$-.............@+-=*$$$$$$$$$$$$$$*........-$$$$$$$$@.........................................................................................",
+"..............+$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$+......$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$=...=$$$$$$$%.............+$$$$$$$$#.......................@$$$$$$$$*.................%$$$$$$$$#..........#=%$$$$$$$$$$$$$$$$$$$=........=$$$$$$$%..........................................................................................",
+"..............=$$$$$$$$+............+*$$$$$$$$$=.....+$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$+...$$$$$$$$&.............+$$$$$$$$........................+$$$$$$$$=.................$$$$$$$$$.........+%$$$$$$$$$$$$$$$$$$$$$$+........%$$$$$$$=..........................................................................................",
+"..............%$$$$$$$$@..............=$$$$$$$$=.....-$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#..#$$$$$$$$+.............=$$$$$$$=........................&$$$$$$$$+................+$$$$$$$$*.......@=$$$$$$$$$$$$$$$$$$$$$$$$@........$$$$$$$$-..........................................................................................",
+"..............$$$$$$$$$...............@$$$$$$$$=.....=$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$...+$$$$$$$$#.............*$$$$$$$&........................*$$$$$$$$#................-$$$$$$$$=......@%$$$$$$$$$$$$$$*&&$$$$$$$$........+$$$$$$$$+..........................................................................................",
+".............+$$$$$$$$=................$$$$$$$$&.....*$$$$$$$$=====================&...-$$$$$$$$.............@$$$$$$$$+........................$$$$$$$$$.................=$$$$$$$$+......%$$$$$$$$$%=-+@...&$$$$$$$=........-$$$$$$$$...........................................................................................",
+".............-$$$$$$$$&...............#$$$$$$$$+.....$$$$$$$$%.........................=$$$$$$$$.............-$$$$$$$$@.......................#$$$$$$$$*.................%$$$$$$$$@.....=$$$$$$$$*#........*$$$$$$$&........=$$$$$$$*...........................................................................................",
+".............=$$$$$$$$+...............-$$$$$$$$+.....$$$$$$$$=.........................=$$$$$$$$.............*$$$$$$$%........................+$$$$$$$$&................@$$$$$$$$$.....#$$$$$$$$=.........@$$$$$$$$+........%$$$$$$$=...........................................................................................",
+".............$$$$$$$$$................=$$$$$$$$......$$$$$$$$=.........................=$$$$$$$$............#$$$$$$$$=........................=$$$$$$$$+................+$$$$$$$$=.....*$$$$$$$*..........-$$$$$$$$@........$$$$$$$$+...........................................................................................",
+"............@$$$$$$$$%................$$$$$$$$$......$$$$$$$$=.........................=$$$$$$$$+...........%$$$$$$$$-........................%$$$$$$$$@................&$$$$$$$$&....@$$$$$$$$#..........%$$$$$$$%........+$$$$$$$$#...........................................................................................",
+"............+$$$$$$$$=...............#$$$$$$$$=......%$$$$$$$$...........@========@....&$$$$$$$$&..........=$$$$$$$$$+........................$$$$$$$$$.................=$$$$$$$$+....+$$$$$$$$..........-$$$$$$$$=........&$$$$$$$$............................................................................................",
+"............&$$$$$$$$-...............&$$$$$$$$&......=$$$$$$$$-..........=$$$$$$$*.....+$$$$$$$$%@........+$$$$$$$$$$........................+$$$$$$$$=.................$$$$$$$$$.....=$$$$$$$$.........@$$$$$$$$$-........=$$$$$$$=............................................................................................",
+"............*$$$$$$$$+...............=$$$$$$$$+......+$$$$$$$$$+.......@=$$$$$$$$@.....#$$$$$$$$$=.......=$$$$$$$$$$*........................-$$$$$$$$&................@$$$$$$$$%.....=$$$$$$$$-.......#%$$$$$$$$$+........$$$$$$$$-............................................................................................",
+"............$$$$$$$$$................$$$$$$$$$#.......$$$$$$$$$$&#...#&$$$$$$$$$-.......%$$$$$$$$$*#..@-%$$$$$$$$$$$=........................=$$$$$$$$+................+$$$$$$$$=.....=$$$$$$$$$-@...+&$$$$$$$$$$$........@$$$$$$$$=............................................................................................",
+"...........#$$$$$$$$*...............@$$$$$$$$$........&$$$$$$$$$$$$$$$$$$$$$$$$=........&$$$$$$$$$$$$$$$$$$$$$$$$$$$+........................$$$$$$$$$.................=$$$$$$$$-.....-$$$$$$$$$$$$$$$$$$$$$$$$$$%........+$$$$$$$$$%==-........................................................................................",
+"...........+$$$$$$$$=...............+$$$$$$$$$.........%$$$$$$$$$$$$$$$$$$$$$$=.........@$$$$$$$$$$$$$$$$$$$$$$$$$$$#.......................@$$$$$$$$%.................*$$$$$$$$+.....#$$$$$$$$$$$$$$$$$$$$$$$$$$=........+$$$$$$$$$$$$&........................................................................................",
+"...........=$$$$$$$$+...............+$$$$$$$$$@........@$$$$$$$$$$$$$$$$$$$$$=...........-$$$$$$$$$$$$$$$$$=$$$$$$$$........................+$$$$$$$$=.................$$$$$$$$$.......*$$$$$$$$$$$$$$$$*%$$$$$$$*........+$$$$$$$$$$$$+........................................................................................",
+"...........%$$$$$$$$#...............+$$$$$$$$$=.........#%$$$$$$$$$$$$$$$$$$+.............=$$$$$$$$$$$$$$$+=$$$$$$$=........................&$$$$$$$$-................#$$$$$$$$*.......@$$$$$$$$$$$$$$$=.$$$$$$$$$+........$$$$$$$$$$$$@........................................................................................",
+"...........$$$$$$$$$................@$$$$$$$$$*..........@*$$$$$$$$$$$$$$$&@...............=$$$$$$$$$$$$%@.%$$$$$$$&........................*$$$$$$$$+................-$$$$$$$$=........+$$$$$$$$$$$$%+..%$$$$$$$$*........&$$$$$$$$$$$.........................................................................................",
+"..........@+++++++++.................+++++++++#............#*$$$$$$$$$$%&@..................+%$$$$$$$$%-...++++++++@........................+++++++++.................#++++++++@.........@*$$$$$$$$%&@...#++++++++#.........&$$$$$$$$$=.........................................................................................",
+".............................................................@+&====&+@.......................#-====-#.....................................................................................@+====&+..........................@+=====&+@.........................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+".................................................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;..............",
+".................................................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;..............",
+".................................................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;..............",
+".................................................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;>,')))!~~~)))',>;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;..............",
+".................................................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;>'{~~~~~~~~~~~~~~~~~~)]^;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;..............",
+".................................................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;^'!~~~~~~~~~~~~~~~~~~~~~~~~{,;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;..............",
+".................................................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;>{~~~~~~~~~~~~~~~~~~~~~~~~~~~~~!];;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;..............",
+".................................................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;>{~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~{^;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;..............",
+".................................................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;^{~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;..............",
+".................................................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~);;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;..............",
+".................................................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;^{~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~);;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;..............",
+".................................................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;,!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~);;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;..............",
+".................................................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;..............",
+".................................................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;'~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;..............",
+".................................................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;)~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~{;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;..............",
+".................................................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;)~~~~~~~~~~~~~~~~~~~~~~~~~)){~~~~~~~~~~~~~~~~~~~~~~~~>;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;..............",
+".................................................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;,~~~~~~~~~~~~~~~~~~~~{',;;;;;;;;>]!~~~~~~~~~~~~~~~~~~~);;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;..............",
+".................................................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;,~~~~~~~~~~~~~~~~~~~'^;;;;;;;;;;;;;;>{~~~~~~~~~~~~~~~~~~;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;..............",
+".................................................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;>~~~~~~~~~~~~~~~~~~'^;;;;;;;;;;;;;;;;;;'~~~~~~~~~~~~~~~~~,;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;..............",
+".................................................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;^!~~~~~~~~~~~~~~~~!>;;;;;;;;;;;;;;;;;;;;;,~~~~~~~~~~~~~~~~);;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;..............",
+".................................................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;)~~~~~~~~~~~~~~~~{^;;;;;;;;;;;;;;;;;;;;;;;'~~~~~~~~~~~~~~~{;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;..............",
+".................................................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;,~~~~~~~~~~~~~~~~);;;;;;;;;;;;;;;;;;;;;;;;;;!~~~~~~~~~~~~~~~;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;..............",
+".................................................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;,,,)))),,,;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;^!~~~~~~~~~~~~~~~);;;;;;;;;;;;;;;;;;;;;;;;;;;]~~~~~~~~~~~~~~~;;;;;;;;;;;;;;;;;;;;;;;;;;;;;,,,')))),,,;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;>,,]))))',,>;;;;;;;;;;;;;;;;;;;;;;;;..............",
+".................................................;;;;;;;;;;;;;;;;;;;;;;;;;;;^,)!~~~~~~~~~~~~!'>;;;;;;;;;;;;;;;;;;;;;;;;;;;'~~~~~~~~~~~~~~~!;;;;;;;;;;;;;;;;;;;;;;;;;;;;;~~~~~~~~~~~~~~~;;;;;;;;;;;;;;;;;;;;;;;;^])!~~~~~~~~~~~~~!',;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;^])!~~~~~~~~~~~~~~!),;;;;;;;;;;;;;;;;;;;;..............",
+".................................................;;;;;;;;;;;;;;;;;;;;;;;;;]{~~~~~~~~~~~~~~~~~~~!];;;;;;;;;;;;;;;;;;;;;;;;>~~~~~~~~~~~~~~~!^;;;;;;;;;;;;;;;;;;;;;;;;;;;;;{~~~~~~~~~~~~~~;;;;;;;;;;;;;;;;;;;;;^'!~~~~~~~~~~~~~~~~~~~~!'^;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;^]{~~~~~~~~~~~~~~~~~~~~~~'>;;;;;;;;;;;;;;;;;..............",
+".................................................;;;;;;;;;;;;;;;;;;;;;;^'~~~~~~~~~~~~~~~~~~~~~~~~!];;;;;;;;;;;;;;;;;;;;;;{~~~~~~~~~~~~~~~,;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;)~~~~~~~~~~~~~~;;;;;;;;;;;;;;;;;;;>{~~~~~~~~~~~~~~~~~~~~~~~~~~';;;;;;;;;;;;;;;;;;;;;;;;;;;;;^'~~~~~~~~~~~~~~~~~~~~~~~~~~~)^;;;;;;;;;;;;;;;..............",
+".................................................;;;;;;;;;;;;;;;;;;;;;'~~~~~~~~~~~~~~~~~~~~~~~~~~~~)^;;;;;;;;;;;;;;;;;;;>~~~~~~~~~~~~~~~';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;'~~~~~~~~~~~~~~;;;;;;;;;;;;;;;;;^{~~~~~~~~~~~~~~~~~~~~~~~~~~~~~!>;;;;;;;;;;;;;;;;;;;;;;;;;;]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,;;;;;;;;;;;;;;..............",
+".................................................;;;;;;;;;;;;;;;;;;;>!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~!^;;;;;;;;;;;;;;;;;;{~~~~~~~~~~~~~~!;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;,~~~~~~~~~~~~~!;;;;;;;;;;;;;;;;'~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,;;;;;;;;;;;;;;;;;;;;;;;^{~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,;;;;;;;;;;;;;..............",
+".................................................;;;;;;;;;;;;;;;;;;]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~!^;;;;;;;;;;;;;;;;>~~~~~~~~~~~~~~~];;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;,~~~~~~~~~~~~~);;;;;;;;;;;;;;^{~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,;;;;;;;;;;;;;;;;;;;;;^!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,;;;;;;;;;;;;..............",
+".................................................;;;;;;;;;;;;;;;;;)~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~{;;;;;;;;;;;;;;;;)~~~~~~~~~~~~~~{;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;,!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,;;;;;;;;;;;;;;;;;;;^!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~>;;;;;;;;;;;..............",
+".................................................;;;;;;;;;;;;;;;;)~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~';;;;;;;;;;;;;;^~~~~~~~~~~~~~~~>;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^;;;;;;;;;;;;;;;;;^!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~{;;;;;;;;;;;..............",
+".................................................;;;;;;;;;;;;;;;)~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~>;;;;;;;;;;;;;]~~~~~~~~~~~~~~{;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~{;;;;;;;;;;;;;;;;;!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~>;;;;;;;;;;..............",
+".................................................;;;;;;;;;;;;;;]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~{;;;;;;;;;;;;;!~~~~~~~~~~~~~~,;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~];;;;;;;;;;;;;;;'~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~);;;;;;;;;;..............",
+".................................................;;;;;;;;;;;;;>~~~~~~~~~~~~~~~~~~~!))!~~~~~~~~~~~~~~~~~~~>;;;;;;;;;;;>~~~~~~~~~~~~~~!;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;^~~~~~~~~~~~~~~~~~~~~!))!~~~~~~~~~~~~~~~~~~~~!;;;;;;;;;;;;;;>~~~~~~~~~~~~~~~~~~~))){~~~~~~~~~~~~~~~~~~~~;;;;;;;;;;..............",
+".................................................;;;;;;;;;;;;^!~~~~~~~~~~~~~~~!'>;;;;;;,{~~~~~~~~~~~~~~~~);;;;;;;;;;;'~~~~~~~~~~~~~~];;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;^!~~~~~~~~~~~~~~~~~),;;;;;;,)~~~~~~~~~~~~~~~~~~,;;;;;;;;;;;;;{~~~~~~~~~~~~~~~',;;;;;;;;,)~~~~~~~~~~~~~~~~^;;;;;;;;;..............",
+".................................................;;;;;;;;;;;;'~~~~~~~~~~~~~~~];;;;;;;;;;;>!~~~~~~~~~~~~~~~;;;;;;;;;;;!~~~~~~~~~~~~~~^;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;)~~~~~~~~~~~~~~~~)^;;;;;;;;;;>!~~~~~~~~~~~~~~~~);;;;;;;;;;;;>~~~~~~~~~~~~~~)^;;;;;;;;;;;;^!~~~~~~~~~~~~~~,;;;;;;;;;..............",
+".................................................;;;;;;;;;;;>~~~~~~~~~~~~~~!^;;;;;;;;;;;;;^!~~~~~~~~~~~~~~,;;;;;;;;;>~~~~~~~~~~~~~~{;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;,~~~~~~~~~~~~~~~~,;;;;;;;;;;;;;^!~~~~~~~~~~~~~~~~;;;;;;;;;;;;{~~~~~~~~~~~~~{;;;;;;;;;;;;;;;^!~~~~~~~~~~~~~,;;;;;;;;;..............",
+".................................................;;;;;;;;;;;{~~~~~~~~~~~~~!^;;;;;;;;;;;;;;;]~~~~~~~~~~~~~~);;;;;;;;;]~~~~~~~~~~~~~~];;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;!~~~~~~~~~~~~~~!>;;;;;;;;;;;;;;;^~~~~~~~~~~~~~~~~>;;;;;;;;;;^~~~~~~~~~~~~~~>;;;;;;;;;;;;;;;;'~~~~~~~~~~~~~,;;;;;;;;;..............",
+".................................................;;;;;;;;;;]~~~~~~~~~~~~~!^;;;;;;;;;;;;;;;;;!~~~~~~~~~~~~~!;;;;;;;;;)~~~~~~~~~~~~~~^;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;'~~~~~~~~~~~~~~~^;;;;;;;;;;;;;;;;;]~~~~~~~~~~~~~~~,;;;;;;;;;;,~~~~~~~~~~~~~~;;;;;;;;;;;;;;;;;,~~~~~~~~~~~~~,;;;;;;;;;..............",
+".................................................;;;;;;;;;;!~~~~~~~~~~~~~>;;;;;;;;;;;;;;;;;;'~~~~~~~~~~~~~~;;;;;;;;;~~~~~~~~~~~~~~!;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;^~~~~~~~~~~~~~~~,;;;;;;;;;;;;;;;;;;;~~~~~~~~~~~~~~~';;;;;;;;;;)~~~~~~~~~~~~~~;;;;;;;;;;;;;;;;;,~~~~~~~~~~~~~;;;;;;;;;;..............",
+".................................................;;;;;;;;;]~~~~~~~~~~~~~);;;;;;;;;;;;;;;;;;;,~~~~~~~~~~~~~~;;;;;;;;>~~~~~~~~~~~~~~);;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;'~~~~~~~~~~~~~~';;;;;;;;;;;;;;;;;;;;)~~~~~~~~~~~~~~);;;;;;;;;;{~~~~~~~~~~~~~~];;;;;;;;;;;;;;;;])))))))))))));;;;;;;;;;..............",
+".................................................;;;;;;;;;{~~~~~~~~~~~~~>;;;;;;;;;;;;;;;;;;;>~~~~~~~~~~~~~~,;;;;;;;,~~~~~~~~~~~~~~,;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;^~~~~~~~~~~~~~~!;;;;;;;;;;;;;;;;;;;;;,~~~~~~~~~~~~~~);;;;;;;;;;~~~~~~~~~~~~~~~~'^;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;..............",
+".................................................;;;;;;;;>~~~~~~~~~~~~~{;;;;;;;;;;;;;;;;;;;;;~~~~~~~~~~~~~~,;;;;;;;)~~~~~~~~~~~~~~>;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;]~~~~~~~~~~~~~~>;;;;;;;;;;;;;;;;;;;;;>~~~~~~~~~~~~~~);;;;;;;;;;~~~~~~~~~~~~~~~~~~'>;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;..............",
+".................................................;;;;;;;;)~~~~~~~~~~~~~];;;;;;;;;;;;;;;;;;;;;~~~~~~~~~~~~~~>;;;;;;;{~~~~~~~~~~~~~~;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;!~~~~~~~~~~~~~{;;;;;;;;;;;;;;;;;;;;;;;~~~~~~~~~~~~~~);;;;;;;;;;~~~~~~~~~~~~~~~~~~~~!),;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;..............",
+".................................................;;;;;;;;~~~~~~~~~~~~~~^;;;;;;;;;;;;;;;;;;;;;~~~~~~~~~~~~~~;;;;;;;;~~~~~~~~~~~~~~{;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;>~~~~~~~~~~~~~~>;;;;;;;;;;;;;;;;;;;;;;;~~~~~~~~~~~~~~);;;;;;;;;;!~~~~~~~~~~~~~~~~~~~~~~~{]^;;;;;;;;;;;;;;;;;;;;;;;;;;;;;..............",
+".................................................;;;;;;;,~~~~~~~~~~~~~~))))))))))))))))))))))~~~~~~~~~~~~~~;;;;;;;;~~~~~~~~~~~~~~);;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;'~~~~~~~~~~~~~{;;;;;;;;;;;;;;;;;;;;;;;;~~~~~~~~~~~~~~);;;;;;;;;;)~~~~~~~~~~~~~~~~~~~~~~~~~~!',;;;;;;;;;;;;;;;;;;;;;;;;;;..............",
+".................................................;;;;;;;)~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~;;;;;;;,~~~~~~~~~~~~~~);;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;!~~~~~~~~~~~~~];;;;;;;;;;;;;;;;;;;;;;;;~~~~~~~~~~~~~~,;;;;;;;;;;>~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~),;;;;;;;;;;;;;;;;;;;;;;;..............",
+".................................................;;;;;;;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~!;;;;;;;,~~~~~~~~~~~~~~];;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;>~~~~~~~~~~~~~~^;;;;;;;;;;;;;;;;;;;;;;;;~~~~~~~~~~~~~~,;;;;;;;;;;;{~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~'>;;;;;;;;;;;;;;;;;;;;..............",
+".................................................;;;;;;>~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~);;;;;;;,~~~~~~~~~~~~~~,;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;]~~~~~~~~~~~~~{;;;;;;;;;;;;;;;;;;;;;;;;>~~~~~~~~~~~~~~>;;;;;;;;;;;>~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~{^;;;;;;;;;;;;;;;;;;..............",
+".................................................;;;;;;]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~';;;;;;;'~~~~~~~~~~~~~~,;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;)~~~~~~~~~~~~~';;;;;;;;;;;;;;;;;;;;;;;;,~~~~~~~~~~~~~~;;;;;;;;;;;;;,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~];;;;;;;;;;;;;;;;;..............",
+".................................................;;;;;;)~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,;;;;;;;)~~~~~~~~~~~~~~,;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;~~~~~~~~~~~~~~,;;;;;;;;;;;;;;;;;;;;;;;;,~~~~~~~~~~~~~!;;;;;;;;;;;;;;,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~);;;;;;;;;;;;;;;;..............",
+".................................................;;;;;;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^;;;;;;;)~~~~~~~~~~~~~~,;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;>~~~~~~~~~~~~~~^;;;;;;;;;;;;;;;;;;;;;;;;)~~~~~~~~~~~~~);;;;;;;;;;;;;;;^!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~);;;;;;;;;;;;;;;..............",
+".................................................;;;;;;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~;;;;;;;;)~~~~~~~~~~~~~~,;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;>))))))))))))));;;;;;,~~~~~~~~~~~~~~;;;;;;;;;;;;;;;;;;;;;;;;;!~~~~~~~~~~~~~,;;;;;;;;;;;;;;;;;]!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~';;;;;;;;;;;;;;..............",
+".................................................;;;;;,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~);;;;;;;;)~~~~~~~~~~~~~~,;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;{~~~~~~~~~~~~~);;;;;;'~~~~~~~~~~~~~!;;;;;;;;;;;;;;;;;;;;;;;;^~~~~~~~~~~~~~~^;;;;;;;;;;;;;;;;;;;]!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^;;;;;;;;;;;;;..............",
+".................................................;;;;;,~~~~~~~~~~~~~~)))))))))))))))))))))))))))))))))))),;;;;;;;;)~~~~~~~~~~~~~~);;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;^~~~~~~~~~~~~~~,;;;;;;)~~~~~~~~~~~~~);;;;;;;;;;;;;;;;;;;;;;;;,~~~~~~~~~~~~~!;;;;;;;;;;;;;;;;;;;;;;,)~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~';;;;;;;;;;;;;..............",
+".................................................;;;;;]~~~~~~~~~~~~~~;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;)~~~~~~~~~~~~~~);;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;'~~~~~~~~~~~~~~^;;;;;;)~~~~~~~~~~~~~);;;;;;;;;;;;;;;;;;;;;;;;{~~~~~~~~~~~~~';;;;;;;;;;;;;;;;;;;;;;;;;,)~~~~~~~~~~~~~~~~~~~~~~~~~~~~;;;;;;;;;;;;;..............",
+".................................................;;;;;)~~~~~~~~~~~~~~;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;)~~~~~~~~~~~~~~!;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;^~~~~~~~~~~~~~~);;;;;;;~~~~~~~~~~~~~~);;;;;;;;;;;;;;;;;;;;;;;^~~~~~~~~~~~~~~>;;;;;;;;;;;;;;;;;;;;;;;;;;;;,)~~~~~~~~~~~~~~~~~~~~~~~~~^;;;;;;;;;;;;..............",
+".................................................;;;;;)~~~~~~~~~~~~~~;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;]~~~~~~~~~~~~~~~^;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;'~~~~~~~~~~~~~~,;;;;;;;~~~~~~~~~~~~~~);;;;;;;;;;;;;;;;;;;;;;;'~~~~~~~~~~~~~!;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;>'!~~~~~~~~~~~~~~~~~~~~~,;;;;;;;;;;;;..............",
+".................................................;;;;;)~~~~~~~~~~~~~~;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;,~~~~~~~~~~~~~~~];;;;;;;;;;;;;;;;;;;;;;;;;;;;;>~~~~~~~~~~~~~~!;;;;;;;;~~~~~~~~~~~~~~);;;;;;;;;;;;;;;;;;;;;;^~~~~~~~~~~~~~~';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;>'!~~~~~~~~~~~~~~~~~~,;;;;;;;;;;;;..............",
+".................................................;;;;;)~~~~~~~~~~~~~~;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;>~~~~~~~~~~~~~~~!;;;;;;;;;;;;;;;;;;;;;;;;;;;;^!~~~~~~~~~~~~~~];;;;;;;;~~~~~~~~~~~~~~!;;;;;;;;;;;;;;;;;;;;;;'~~~~~~~~~~~~~~^;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;,{~~~~~~~~~~~~~~~~,;;;;;;;;;;;;..............",
+".................................................;;;;;)~~~~~~~~~~~~~~;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;~~~~~~~~~~~~~~~~];;;;;;;;;;;;;;;;;;;;;;;;;;;)~~~~~~~~~~~~~~!;;;;;;;;;~~~~~~~~~~~~~~~;;;;;;;;;;;;;;;;;;;;;^~~~~~~~~~~~~~~);;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;]~~~~~~~~~~~~~~~,;;;;;;;;;;;;..............",
+".................................................;;;;;)~~~~~~~~~~~~~~>;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;{~~~~~~~~~~~~~~~!^;;;;;;;;;;;;;;;;;;;;;;;;;)~~~~~~~~~~~~~~~];;;;;;;;;~~~~~~~~~~~~~~~,;;;;;;;;;;;;;;;;;;;;{~~~~~~~~~~~~~~>;;;;;;;^,,,,,,,,,,,,,>;;;;;;;;;;;;;;;;;;;;'~~~~~~~~~~~~~~^;;;;;;;;;;;;..............",
+".................................................;;;;;,~~~~~~~~~~~~~~];;;;;;;;;;;;;;;;;;;{~~~~~~~~~~~~~^;;;;;;;;;;;]~~~~~~~~~~~~~~~~);;;;;;;;;;;;;;;;;;;;;;;^{~~~~~~~~~~~~~~~!;;;;;;;;;;!~~~~~~~~~~~~~~);;;;;;;;;;;;;;;;;;;'~~~~~~~~~~~~~~{;;;;;;;;,~~~~~~~~~~~~~);;;;;;;;;;;;;;;;;;;;,~~~~~~~~~~~~~~;;;;;;;;;;;;;..............",
+".................................................;;;;;,~~~~~~~~~~~~~~!;;;;;;;;;;;;;;;;;;]~~~~~~~~~~~~~';;;;;;;;;;;;>~~~~~~~~~~~~~~~~~);;;;;;;;;;;;;;;;;;;;;>!~~~~~~~~~~~~~~~~,;;;;;;;;;;)~~~~~~~~~~~~~~~^;;;;;;;;;;;;;;;;;,~~~~~~~~~~~~~~~>;;;;;;;;)~~~~~~~~~~~~~!;;;;;;;;;;;;;;;;;;;;,~~~~~~~~~~~~~{;;;;;;;;;;;;;..............",
+".................................................;;;;;;~~~~~~~~~~~~~~~];;;;;;;;;;;;;;;;,~~~~~~~~~~~~~!^;;;;;;;;;;;;;{~~~~~~~~~~~~~~~~~{^;;;;;;;;;;;;;;;;;^)~~~~~~~~~~~~~~~~~);;;;;;;;;;;'~~~~~~~~~~~~~~~{;;;;;;;;;;;;;;;;,~~~~~~~~~~~~~~~';;;;;;;;;)~~~~~~~~~~~~~~>;;;;;;;;;;;;;;;;;;;{~~~~~~~~~~~~~];;;;;;;;;;;;;..............",
+".................................................;;;;;;{~~~~~~~~~~~~~~~>;;;;;;;;;;;;;;,~~~~~~~~~~~~~~];;;;;;;;;;;;;;]~~~~~~~~~~~~~~~~~~~'^;;;;;;;;;;;;;>)~~~~~~~~~~~~~~~~~~!^;;;;;;;;;;;,~~~~~~~~~~~~~~~~);;;;;;;;;;;;;;)~~~~~~~~~~~~~~~!^;;;;;;;;;)~~~~~~~~~~~~~~!^;;;;;;;;;;;;;;;;;'~~~~~~~~~~~~~~^;;;;;;;;;;;;;..............",
+".................................................;;;;;;]~~~~~~~~~~~~~~~~,;;;;;;;;;;;^{~~~~~~~~~~~~~~);;;;;;;;;;;;;;;;!~~~~~~~~~~~~~~~~~~~~{],^;;;;^,])~~~~~~~~~~~~~~~~~~~~~>;;;;;;;;;;;;;~~~~~~~~~~~~~~~~~)^;;;;;;;;;;>!~~~~~~~~~~~~~~~~,;;;;;;;;;;]~~~~~~~~~~~~~~~!>;;;;;;;;;;;;;;^)~~~~~~~~~~~~~~{;;;;;;;;;;;;;;..............",
+".................................................;;;;;;^~~~~~~~~~~~~~~~~~{,;;;;;;;,{~~~~~~~~~~~~~~~!^;;;;;;;;;;;;;;;;]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,;;;;;;;;;;;;;;)~~~~~~~~~~~~~~~~~!]^;;;;;;,{~~~~~~~~~~~~~~~~~';;;;;;;;;;;,~~~~~~~~~~~~~~~~~{]^;;;;;;;;^,)~~~~~~~~~~~~~~~~>;;;;;;;;;;;;;;..............",
+".................................................;;;;;;;'~~~~~~~~~~~~~~~~~~~{)))!~~~~~~~~~~~~~~~~~~,;;;;;;;;;;;;;;;;;;{~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~];;;;;;;;;;;;;;;>~~~~~~~~~~~~~~~~~~~~!)))!~~~~~~~~~~~~~~~~~~~{;;;;;;;;;;;;;~~~~~~~~~~~~~~~~~~~~~{)))){~~~~~~~~~~~~~~~~~~~{;;;;;;;;;;;;;;;..............",
+".................................................;;;;;;;^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,;;;;;;;;;;;;;;;;;;;^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~);;;;;;;;;;;;;;;;;{~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~!^;;;;;;;;;;;;;'~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^;;;;;;;;;;;;;;;..............",
+".................................................;;;;;;;;'~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,;;;;;;;;;;;;;;;;;;;;;,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~];;;;;;;;;;;;;;;;;;^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~!^;;;;;;;;;;;;;;^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,;;;;;;;;;;;;;;;;..............",
+".................................................;;;;;;;;;!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,;;;;;;;;;;;;;;;;;;;;;;;'~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,;;;;;;;;;;;;;;;;;;;;]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~!^;;;;;;;;;;;;;;;;'~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,;;;;;;;;;;;;;;;;;..............",
+".................................................;;;;;;;;;^!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,;;;;;;;;;;;;;;;;;;;;;;;;;)~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~!^;;;;;;;;;;;;;;;;;;;;;;)~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~)^;;;;;;;;;;;;;;;;;;{~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,;;;;;;;;;;;;;;;;;;..............",
+".................................................;;;;;;;;;;^!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~!>;;;;;;;;;;;;;;;;;;;;;;;;;;;,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~';;;;;;;;;;;;;;;;;;;;;;;;;)~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~';;;;;;;;;;;;;;;;;;;;^!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,;;;;;;;;;;;;;;;;;;;..............",
+".................................................;;;;;;;;;;;^!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~)^;;;;;;;;;;;;;;;;;;;;;;;;;;;;;>!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~{>;;;;;;;;;;;;;;;;;;;;;;;;;;;)~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~!>;;;;;;;;;;;;;;;;;;;;;;^!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~{^;;;;;;;;;;;;;;;;;;;;..............",
+".................................................;;;;;;;;;;;;^{~~~~~~~~~~~~~~~~~~~~~~~~~~~!,;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;^'~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~!];;;;;;;;;;;;;;;;;;;;;;;;;;;;;;]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~';;;;;;;;;;;;;;;;;;;;;;;;;;)~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~!];;;;;;;;;;;;;;;;;;;;;;..............",
+".................................................;;;;;;;;;;;;;;]!~~~~~~~~~~~~~~~~~~~~~~~!];;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;^)~~~~~~~~~~~~~~~~~~~~~~~~~~~~~{,;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;^{~~~~~~~~~~~~~~~~~~~~~~~~~~'^;;;;;;;;;;;;;;;;;;;;;;;;;;;;>{~~~~~~~~~~~~~~~~~~~~~~~~~~~~!]^;;;;;;;;;;;;;;;;;;;;;;;..............",
+".................................................;;;;;;;;;;;;;;;^'!~~~~~~~~~~~~~~~~~~~{,;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;^'!~~~~~~~~~~~~~~~~~~~~~~~{'^;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;>)~~~~~~~~~~~~~~~~~~~~~{];;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;>{~~~~~~~~~~~~~~~~~~~~~~~~),;;;;;;;;;;;;;;;;;;;;;;;;;;..............",
+".................................................;;;;;;;;;;;;;;;;;;,)~~~~~~~~~~~~~!),^;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;>])~~~~~~~~~~~~~~~~{),^;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;^,)~~~~~~~~~~~~~~~)]^;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;^])~~~~~~~~~~~~~~~~~{',;;;;;;;;;;;;;;;;;;;;;;;;;;;;;..............",
+".................................................;;;;;;;;;;;;;;;;;;;;;^,,)))))',,;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;^,,]))))))',,>;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;^,,')))))],,;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;,,])))))))],,^;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;..............",
+".................................................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;..............",
+".................................................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;..............",
+".................................................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;..............",
+".................................................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;..............",
+".................................................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;..............",
+".................................................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;..............",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"....................+++++++++++++++++++++++++@......................................................................#+++++++#........................#++++++++@................@++++++++#.......................................................................................................................................",
+"....................$$$$$$$$$$$$$$$$$$$$$$$$$$%&@...................................................................$$$$$$$$&........................*$$$$$$$$#................&$$$$$$$$&.......................................................................................................................................",
+"...................+$$$$$$$$$$$$$$$$$$$$$$$$$$$$$+.................................................................@$$$$$$$$+........................$$$$$$$$$.................=$$$$$$$$+.......................................................................................................................................",
+"...................&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$+................................................................+$$$$$$$$........................#$$$$$$$$*.................$$$$$$$$$@.......................................................................................................................................",
+"...................=$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$+...............................................................&$$$$$$$%........................-$$$$$$$$=................@$$$$$$$$$..........................................$$$$$$$$&.....................................................................................",
+"...................$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%...............................................................=$$$$$$$=........................=$$$$$$$$+................+$$$$$$$$=.........................................+$$$$$$$$+.....................................................................................",
+"..................@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$-..............................................................$$$$$$$$-........................%$$$$$$$$@................=$$$$$$$$&.........................................+$$$$$$$$@.....................................................................................",
+"..................+$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$=.............................................................#$$$$$$$$#........................$$$$$$$$$.................*$$$$$$$$+.........................................=$$$$$$$$......................................................................................",
+"..................=$$$$$$$$+............+&$$$$$$$$$$$.............................................................+$$$$$$$$........................+$$$$$$$$=.................$$$$$$$$$..........................................*$$$$$$$=......................................................................................",
+"..................*$$$$$$$$#..............@%$$$$$$$$$.............................................................=$$$$$$$*........................&$$$$$$$$&................#$$$$$$$$%..........................................$$$$$$$$-......................................................................................",
+"..................$$$$$$$$$................#$$$$$$$$$.............................................................*$$$$$$$=........................=$$$$$$$$+................-$$$$$$$$=.........................................#$$$$$$$$+......................................................................................",
+".................#$$$$$$$$=.................*$$$$$$$%...............#++==-+#.........................@++==++......$$$$$$$$+........................$$$$$$$$$.................=$$$$$$$$-..............@++-===-++.................+$$$$$$$$.......................................................................................",
+".................-$$$$$$$$&.................=$$$$$$$=............+=$$$$$$$$$$=#....................-*$$$$$$$$&@..+$$$$$$$$@.......................@$$$$$$$$%.................%$$$$$$$$#...........+=$$$$$$$$$$$$*-..........#+++*$$$$$$$$++++@..................................................................................",
+".................=$$$$$$$$+.................*$$$$$$$-.........@&$$$$$$$$$$$$$$$=@................-%$$$$$$$$$$$%@.-$$$$$$$$........................+$$$$$$$$=.................$$$$$$$$$..........-%$$$$$$$$$$$$$$$$%+........$$$$$$$$$$$$$$$$$+..................................................................................",
+".................%$$$$$$$$@................@$$$$$$$$@........+%$$$$$$$$$$$$$$$$$%@.............@*$$$$$$$$$$$$$$%@=$$$$$$$=........................=$$$$$$$$-................+$$$$$$$$*........@*$$$$$$$$$$$$$$$$$$$$+......#$$$$$$$$$$$$$$$$$@..................................................................................",
+".................$$$$$$$$$.................&$$$$$$$=........=$$$$$$$$$$$$$$$$$$$$%@...........#%$$$$$$$$$$$$$$$$&%$$$$$$$&........................*$$$$$$$$#................&$$$$$$$$=.......@%$$$$$$$$$$$$$$$$$$$$$$@.....+$$$$$$$$$$$$$$$$$...................................................................................",
+"................+$$$$$$$$=................#$$$$$$$$#.......=$$$$$$$$$$$$$$$$$$$$$$*..........+$$$$$$$$$$$$$$$$$$$$$$$$$$$+........................$$$$$$$$$.................=$$$$$$$$+.......%$$$$$$$$$$$$$$$$$$$$$$$&.....=$$$$$$$$$$$$$$$$=...................................................................................",
+"................-$$$$$$$$&...............@%$$$$$$$&.......-$$$$$$$$$$$$$$$$$$$$$$$$+........@$$$$$$$$$$$$$$$$$$$$$$$$$$$$@.......................#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@......&$$$$$$$$$$$$$$$$$$$$$$$$%.....*$$$$$$$$$$$$$$$$-...................................................................................",
+"................=$$$$$$$$+..............-%$$$$$$$*.......#$$$$$$$$$%&+@@+=$$$$$$$$$*........%$$$$$$$$$%-#.+&$$$$$$$$$$$$%........................-$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$......@$$$$$$$$$*++..#+*$$$$$$$$$.....++++$$$$$$$$*++++@...................................................................................",
+"................$$$$$$$$$-++++++++++++=%$$$$$$$$%@.......%$$$$$$$$&.......+$$$$$$$$$#......&$$$$$$$$$&......@%$$$$$$$$$$=........................=$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$=......&$$$$$$$$+........%$$$$$$$$........#$$$$$$$$+........................................................................................",
+"...............@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$=@.......&$$$$$$$$+.........&$$$$$$$$-.....@$$$$$$$$$+........+$$$$$$$$$$-........................%$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&......%$$$$$$$+.........=$$$$$$$*........+$$$$$$$$@........................................................................................",
+"...............+$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$-........@$$$$$$$$=..........@$$$$$$$$=.....*$$$$$$$$-..........*$$$$$$$$$+........................$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$+.....#$$$$$$$*..........*$$$$$$$=........=$$$$$$$$.........................................................................................",
+"...............&$$$$$$$$$$$$$$$$$$$$$$$$$$$$&@.........&$$$$$$$%............%$$$$$$$=....#$$$$$$$$*...........&$$$$$$$$$........................+$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$......#=======+.........@$$$$$$$$+........%$$$$$$$=.........................................................................................",
+"...............*$$$$$$$$$$$$$$$$$$$$$$$$$$$&@..........%$$$$$$$&............=$$$$$$$=....&$$$$$$$$@...........+$$$$$$$$*........................-$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%.......................@%$$$$$$$$#........$$$$$$$$&.........................................................................................",
+"...............$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&........+$$$$$$$$@............=$$$$$$$=....$$$$$$$$=............+$$$$$$$$=........................=$$$$$$$$&++++++++++++++++&$$$$$$$$=....................++=$$$$$$$$$$........+$$$$$$$$+.........................................................................................",
+"..............#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$=.......=$$$$$$$$$$$$$$$$$$$$$$$$$$$$$=...+$$$$$$$$#............+$$$$$$$$+........................$$$$$$$$$.................=$$$$$$$$-.............@+-=*$$$$$$$$$$$$$$*........-$$$$$$$$@.........................................................................................",
+"..............+$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$+......$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$=...=$$$$$$$%.............+$$$$$$$$#.......................@$$$$$$$$*.................%$$$$$$$$#..........#=%$$$$$$$$$$$$$$$$$$$=........=$$$$$$$%..........................................................................................",
+"..............=$$$$$$$$+............+*$$$$$$$$$=.....+$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$+...$$$$$$$$&.............+$$$$$$$$........................+$$$$$$$$=.................$$$$$$$$$.........+%$$$$$$$$$$$$$$$$$$$$$$+........%$$$$$$$=..........................................................................................",
+"..............%$$$$$$$$@..............=$$$$$$$$=.....-$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#..#$$$$$$$$+.............=$$$$$$$=........................&$$$$$$$$+................+$$$$$$$$*.......@=$$$$$$$$$$$$$$$$$$$$$$$$@........$$$$$$$$-..........................................................................................",
+"..............$$$$$$$$$...............@$$$$$$$$=.....=$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$...+$$$$$$$$#.............*$$$$$$$&........................*$$$$$$$$#................-$$$$$$$$=......@%$$$$$$$$$$$$$$*&&$$$$$$$$........+$$$$$$$$+..........................................................................................",
+".............+$$$$$$$$=................$$$$$$$$&.....*$$$$$$$$=====================&...-$$$$$$$$.............@$$$$$$$$+........................$$$$$$$$$.................=$$$$$$$$+......%$$$$$$$$$%=-+@...&$$$$$$$=........-$$$$$$$$...........................................................................................",
+".............-$$$$$$$$&...............#$$$$$$$$+.....$$$$$$$$%.........................=$$$$$$$$.............-$$$$$$$$@.......................#$$$$$$$$*.................%$$$$$$$$@.....=$$$$$$$$*#........*$$$$$$$&........=$$$$$$$*...........................................................................................",
+".............=$$$$$$$$+...............-$$$$$$$$+.....$$$$$$$$=.........................=$$$$$$$$.............*$$$$$$$%........................+$$$$$$$$&................@$$$$$$$$$.....#$$$$$$$$=.........@$$$$$$$$+........%$$$$$$$=...........................................................................................",
+".............$$$$$$$$$................=$$$$$$$$......$$$$$$$$=.........................=$$$$$$$$............#$$$$$$$$=........................=$$$$$$$$+................+$$$$$$$$=.....*$$$$$$$*..........-$$$$$$$$@........$$$$$$$$+...........................................................................................",
+"............@$$$$$$$$%................$$$$$$$$$......$$$$$$$$=.........................=$$$$$$$$+...........%$$$$$$$$-........................%$$$$$$$$@................&$$$$$$$$&....@$$$$$$$$#..........%$$$$$$$%........+$$$$$$$$#...........................................................................................",
+"............+$$$$$$$$=...............#$$$$$$$$=......%$$$$$$$$...........@========@....&$$$$$$$$&..........=$$$$$$$$$+........................$$$$$$$$$.................=$$$$$$$$+....+$$$$$$$$..........-$$$$$$$$=........&$$$$$$$$............................................................................................",
+"............&$$$$$$$$-...............&$$$$$$$$&......=$$$$$$$$-..........=$$$$$$$*.....+$$$$$$$$%@........+$$$$$$$$$$........................+$$$$$$$$=.................$$$$$$$$$.....=$$$$$$$$.........@$$$$$$$$$-........=$$$$$$$=............................................................................................",
+"............*$$$$$$$$+...............=$$$$$$$$+......+$$$$$$$$$+.......@=$$$$$$$$@.....#$$$$$$$$$=.......=$$$$$$$$$$*........................-$$$$$$$$&................@$$$$$$$$%.....=$$$$$$$$-.......#%$$$$$$$$$+........$$$$$$$$-............................................................................................",
+"............$$$$$$$$$................$$$$$$$$$#.......$$$$$$$$$$&#...#&$$$$$$$$$-.......%$$$$$$$$$*#..@-%$$$$$$$$$$$=........................=$$$$$$$$+................+$$$$$$$$=.....=$$$$$$$$$-@...+&$$$$$$$$$$$........@$$$$$$$$=............................................................................................",
+"...........#$$$$$$$$*...............@$$$$$$$$$........&$$$$$$$$$$$$$$$$$$$$$$$$=........&$$$$$$$$$$$$$$$$$$$$$$$$$$$+........................$$$$$$$$$.................=$$$$$$$$-.....-$$$$$$$$$$$$$$$$$$$$$$$$$$%........+$$$$$$$$$%==-........................................................................................",
+"...........+$$$$$$$$=...............+$$$$$$$$$.........%$$$$$$$$$$$$$$$$$$$$$$=.........@$$$$$$$$$$$$$$$$$$$$$$$$$$$#.......................@$$$$$$$$%.................*$$$$$$$$+.....#$$$$$$$$$$$$$$$$$$$$$$$$$$=........+$$$$$$$$$$$$&........................................................................................",
+"...........=$$$$$$$$+...............+$$$$$$$$$@........@$$$$$$$$$$$$$$$$$$$$$=...........-$$$$$$$$$$$$$$$$$=$$$$$$$$........................+$$$$$$$$=.................$$$$$$$$$.......*$$$$$$$$$$$$$$$$*%$$$$$$$*........+$$$$$$$$$$$$+........................................................................................",
+"...........%$$$$$$$$#...............+$$$$$$$$$=.........#%$$$$$$$$$$$$$$$$$$+.............=$$$$$$$$$$$$$$$+=$$$$$$$=........................&$$$$$$$$-................#$$$$$$$$*.......@$$$$$$$$$$$$$$$=.$$$$$$$$$+........$$$$$$$$$$$$@........................................................................................",
+"...........$$$$$$$$$................@$$$$$$$$$*..........@*$$$$$$$$$$$$$$$&@...............=$$$$$$$$$$$$%@.%$$$$$$$&........................*$$$$$$$$+................-$$$$$$$$=........+$$$$$$$$$$$$%+..%$$$$$$$$*........&$$$$$$$$$$$.........................................................................................",
+"..........@+++++++++.................+++++++++#............#*$$$$$$$$$$%&@..................+%$$$$$$$$%-...++++++++@........................+++++++++.................#++++++++@.........@*$$$$$$$$%&@...#++++++++#.........&$$$$$$$$$=.........................................................................................",
+".............................................................@+&====&+@.......................#-====-#.....................................................................................@+====&+..........................@+=====&+@.........................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................"};
diff --git a/ecos/packages/hal/arm/sa11x0/cerfpda/current/misc/lcd_test.c b/ecos/packages/hal/arm/sa11x0/cerfpda/current/misc/lcd_test.c
new file mode 100644
index 0000000..adfe4b5
--- /dev/null
+++ b/ecos/packages/hal/arm/sa11x0/cerfpda/current/misc/lcd_test.c
@@ -0,0 +1,344 @@
+//==========================================================================
+//
+// lcd_test.c
+//
+// SA1110/CerfCube - LCD test
+//
+//==========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//==========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): gthomas
+// Contributors: gthomas
+// Date: 2000-06-05
+// Description: Tool used to test LCD stuff
+//####DESCRIPTIONEND####
+
+#include <pkgconf/kernel.h> // Configuration header
+#include <cyg/kernel/kapi.h>
+#include <cyg/infra/diag.h>
+
+#include <cyg/hal/hal_io.h> // IO macros
+#include <cyg/hal/hal_arch.h> // Register state info
+#include <cyg/hal/hal_intr.h> // HAL interrupt macros
+
+#include <cyg/hal/hal_sa11x0.h> // Board definitions
+#include <cyg/hal/cerf.h>
+#include <cyg/hal/hal_cache.h>
+
+#include "eCos.xpm"
+#include "eCos2.xpm"
+#include "redhat.xpm"
+#include "redhat2.xpm"
+#include "redboot.xpm"
+#include "escw.xpm"
+#include "logo.xpm"
+
+#ifndef FALSE
+#define FALSE 0
+#define TRUE 1
+#endif
+
+#define STACK_SIZE 4096
+static char stack[STACK_SIZE];
+static cyg_thread thread_data;
+static cyg_handle_t thread_handle;
+
+// FUNCTIONS
+
+static void
+cyg_test_exit(void)
+{
+ while (TRUE) ;
+}
+
+static void
+lcd_test(cyg_addrword_t p)
+{
+ int i, pix, row, col;
+ int on;
+
+ diag_printf("LCD test here\n");
+
+ lcd_init(16);
+#if 0
+ for (i = 0; i < 16; i++) {
+ on = true;
+ diag_printf("Fill with 0x%x\n", i);
+ for (row = 0; row < 240; row++) {
+ for (col = 0; col < 320/2; col++) {
+ if (on) {
+ fp->pixels[row][col] = RGB_RED(i)|RGB_GREEN(i)|RGB_BLUE(i);
+ } else {
+ fp->pixels[row][col] = 0xFFFF;
+ }
+ }
+ for (col = 320/2; col < 320; col++) {
+ if (!on) {
+ fp->pixels[row][col] = RGB_RED(i)|RGB_GREEN(i)|RGB_BLUE(i);
+ } else {
+ fp->pixels[row][col] = 0xFFFF;
+ }
+ }
+ if ((row & 0x0F) == 0x0F) {
+ if (on) {
+ on = false;
+ } else {
+ on = true;
+ }
+ }
+ }
+ cyg_thread_delay(100);
+ }
+#endif
+#if 0
+ for (i = 0; i < 4; i++) {
+ for (row = 0; row < 240; row++) {
+ for (col = 0; col < 320; col++) {
+ switch (row/40) {
+ case 0:
+ pix = col / 20; // 0..15
+ fp->pixels[row][col] = RGB_RED(pix);
+ break;
+ case 1:
+ pix = col / 10; // 0..31
+ fp->pixels[row][col] = RGB_GREEN(pix);
+ break;
+ case 2:
+ pix = col / 20; // 0..15
+ fp->pixels[row][col] = RGB_BLUE(pix);
+ break;
+ case 3:
+ pix = col / 20; // 0..15
+ fp->pixels[row][col] = RGB_BLUE(pix) | RGB_GREEN(pix);
+ break;
+ case 4:
+ pix = col / 20; // 0..15
+ fp->pixels[row][col] = RGB_BLUE(15) | RGB_GREEN(pix);
+ break;
+ case 5:
+ fp->pixels[row][col] = 0xFFFF;
+ break;
+ }
+ }
+ }
+ cyg_thread_delay(100);
+#if 0
+ for (row = 0; row < 240; row++) {
+ for (col = 0; col < 320; col++) {
+ pix = col / 20; // 0..15
+ switch (row/60) {
+ case 0:
+ fp->pixels[row][col] = RGB_RED(pix);
+ break;
+ case 1:
+ fp->pixels[row][col] = RGB_GREEN(pix);
+ break;
+ case 2:
+ fp->pixels[row][col] = RGB_BLUE(pix);
+ break;
+ case 3:
+ fp->pixels[row][col] = 0xFFFF;
+ break;
+ }
+ }
+ }
+ cyg_thread_delay(100);
+#endif
+#if 0
+ on = true;
+ for (row = 0; row < 240; row++) {
+ for (col = 0; col < 320/2; col++) {
+ if (on) {
+ fp->pixels[row][col] = RGB_GREEN(15);
+ } else {
+ fp->pixels[row][col] = RGB_BLUE(8);
+ }
+ }
+ for (col = 320/2; col < 320; col++) {
+ if (!on) {
+ fp->pixels[row][col] = RGB_GREEN(15);
+ } else {
+ fp->pixels[row][col] = RGB_BLUE(8);
+ }
+ }
+ if ((row & 0x0F) == 0x0F) {
+ if (on) {
+ on = false;
+ } else {
+ on = true;
+ }
+ }
+ }
+#endif
+ }
+#endif
+#if 0
+ for (row = 0; row < 240; row++) {
+ for (col = 0; col < 320; col++) {
+ if (col == 59) {
+ fp->pixels[row][col] = 0x0000;
+ } else {
+ fp->pixels[row][col] = 0xFFFF;
+ }
+ }
+ }
+ cyg_thread_delay(100);
+#endif
+#if 0
+ for (i = 0; i < 16; i++) {
+ diag_printf("Value 0x%04x\n", (1<<i));
+ for (row = 0; row < 240; row++) {
+ for (col = 0; col < 320; col++) {
+ fp->pixels[row][col] = (1<<i);
+ }
+ }
+ cyg_thread_delay(500);
+ }
+#endif
+#if 0
+ for (i = 0; i < 32; i++) {
+ diag_printf("Red at %d\n", i);
+ for (row = 0; row < 240; row++) {
+ for (col = 0; col < 320; col++) {
+ fp->pixels[row][col] = RGB_RED(i);
+ }
+ }
+ cyg_thread_delay(100);
+ }
+#endif
+#if 0
+ for (i = 0; i < 64; i++) {
+ diag_printf("Green at %d\n", i);
+ for (row = 0; row < 240; row++) {
+ for (col = 0; col < 320; col++) {
+ fp->pixels[row][col] = RGB_GREEN(i);
+ }
+ }
+ cyg_thread_delay(100);
+ }
+#endif
+#if 0
+ for (i = 0; i < 32; i++) {
+ diag_printf("BLUE at %d\n", i);
+ for (row = 0; row < 240; row++) {
+ for (col = 0; col < 320; col++) {
+ fp->pixels[row][col] = RGB_BLUE(i);
+ }
+ }
+ cyg_thread_delay(100);
+ }
+#endif
+
+ while (true) {
+ for (i = 0; i < 1; i++) {
+ show_xpm(redboot_xpm);
+ cyg_thread_delay(15);
+ show_xpm(eCos_xpm);
+ cyg_thread_delay(25);
+ show_xpm(redboot_xpm);
+ cyg_thread_delay(15);
+ show_xpm(redhat_xpm);
+ cyg_thread_delay(25);
+ show_xpm(redboot_xpm);
+ cyg_thread_delay(25);
+ show_xpm(redboot_xpm);
+ cyg_thread_delay(15);
+ show_xpm(escw_xpm);
+ cyg_thread_delay(25);
+ show_xpm(redboot_xpm);
+ cyg_thread_delay(15);
+ show_xpm(eCos2_xpm);
+ cyg_thread_delay(25);
+ show_xpm(redboot_xpm);
+ cyg_thread_delay(15);
+ show_xpm(redhat2_xpm);
+ cyg_thread_delay(25);
+ show_xpm(logo_xpm);
+ cyg_thread_delay(25);
+ show_xpm(redboot_xpm);
+ cyg_thread_delay(50);
+ }
+
+#if 0
+ // This doesn't seem to do anything on my unit
+ cerf_BCR(SA1110_BCR_MOTOR, SA1110_BCR_MOTOR_ON);
+ cyg_thread_delay(2*100);
+ cerf_BCR(SA1110_BCR_MOTOR, SA1110_BCR_MOTOR_OFF);
+#endif
+
+ show_xpm(redboot_xpm);
+ cyg_thread_delay(15);
+ lcd_clear();
+ lcd_printf("\n\n**** Hello world!\n");
+ cyg_thread_delay(5);
+ for (i = 0; i < 64; i++) {
+ lcd_printf("... testing line #%d\n", i);
+ }
+ cyg_thread_delay(50);
+
+ show_xpm(redboot_xpm);
+ cyg_thread_delay(15);
+ set_bg(0,0,0);
+ set_fg(31,63,0);
+ lcd_clear();
+ for (i = 0; i < 32; i++) {
+ lcd_printf("... testing line #%d\n", i);
+ }
+ cyg_thread_delay(50);
+ } // while
+
+ lcd_clear();
+ lcd_printf("*****");
+ cyg_thread_delay(200);
+
+ cyg_test_exit();
+}
+
+externC void
+cyg_start( void )
+{
+ // Create a main thread, so we can run the scheduler and have time 'pass'
+ cyg_thread_create(10, // Priority - just a number
+ lcd_test, // entry
+ 0, // entry parameter
+ "LCD test", // Name
+ &stack[0], // Stack
+ STACK_SIZE, // Size
+ &thread_handle, // Handle
+ &thread_data // Thread data structure
+ );
+ cyg_thread_resume(thread_handle); // Start it
+ cyg_scheduler_start();
+} // cyg_package_start()
diff --git a/ecos/packages/hal/arm/sa11x0/cerfpda/current/misc/logo.xpm b/ecos/packages/hal/arm/sa11x0/cerfpda/current/misc/logo.xpm
new file mode 100644
index 0000000..269626b
--- /dev/null
+++ b/ecos/packages/hal/arm/sa11x0/cerfpda/current/misc/logo.xpm
@@ -0,0 +1,260 @@
+/* XPM */
+static char * logo_xpm[] = {
+"320 240 17 1",
+" c None",
+". c #030305",
+"+ c #949394",
+"@ c #D3D0D3",
+"# c #525051",
+"$ c #B7B6B8",
+"% c #E2515E",
+"& c #FEFEFC",
+"* c #820204",
+"= c #737073",
+"- c #E33533",
+"; c #343232",
+"> c #E895AE",
+", c #E51604",
+"' c #E67284",
+") c #EABAD4",
+"! c #2C1416",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"................................................................................................................................................................................................................................................................................................................................",
+".................................*..............................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"..................................!...................................................................................................................................&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"..................................!...................................................................................................................................&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"......................................................................................................................................................................&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"......................................................................................................................................................................&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"......................................................................................................................................................................&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"......................................................................................................................................................................&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"......................................................................................................................................................................&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"......................................................................................................................................................................&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"......................................................................................................................................................................&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"......................................................................................................................................................................&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"......................................................................................................................................................................&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"......................................................................................................................................................................&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+".....................!=+@&&&&&&$+=!...................................................................................................................................&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"...................#$&&$+=#;##=+@&&$#.................................................................................................................................&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+".................;$&$=!..........!#@&$;...............................................................................................................................&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"...............!+&$#................#$&+..............................................................................................................................&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&+=;#...................................&&&&&&,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,-%%>&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"..............;@&=....................=&@!............................................................................................................................&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&#........................................&&&&&&,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,'&&&&&&&&&&&&&&&&&&&&&&&&&&",
+".............;&$;.....****!!*****!.....;$@;..................................................................!!!!!!...................................................&&&&&&&&&&&&&&&&&&&&&&&&&&&&&+!.........................................&&&&&&,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,>&&&&&&&&&&&&&&&&&&&&&&&&",
+"............;@@!.....*,,,*,*,*...**.....!@@!.................................................................#@@=#!...................................................&&&&&&&&&&&&&&&&&&&&&&&&&&&&=...........................................&&&&&&,,,-,,-,,-,,-,,-,,-,,-,,-,,-,,-,,-,,-,,-,,-,,,,,,,,,'&&&&&&&&&&&&&&&&&&&&&&&",
+"...........!@@!.....*,,*,,,,,**..*,......!@@.................................................................#&&&&+!.!!!!.............................................&&&&&&&&&&&&&&&&&&&&&&&&&&&#............................................&&&&&&,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,-,,,,,,,'&&&&&&&&&&&&&&&&&&&&&&",
+"...........$&;......***,,,*,,,****,*......;&+...............................................................!#&&&&@..!$+!.............................................&&&&&&&&&&&&&&&&&&&&&&&&&&+...............;;;;..........................&&&&&&-,,,,,,,,,,,,,,--%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,>&&&&&&&&&&&&&&&&&&&&&",
+"..........#&;.......,*.....*,*,,,,,*.......=&;...............................................................#&&&&$!..&&=!.............................!!!............&&&&&&&&&&&&&&&&&&&&&&&&&@!............#+&&&&&&@=!..................;===&&&&&&,,,,-,,,-,,,')&&&&&&>%,,,-,,,-,,,-,,'>@&&))'-,,,-,,,,,,&&&&&&&&&&&&&&&&&&&&&",
+"..........@$........,*...!**,,*,*,,,*.......$$..............................................................!#&&&&@..!@&=.............................!#$=............&&&&&&&&&&&&&&&&&&&&&&&&&=...........;@&&&&&&&&&&&+..............!=&&&&&&&&&&&,,,,,,,,,-'&&&&&&&&&&&)%,,,,,,,,,,-)&&&&&&&&&)%,,,,,,,,'&&&&&&&&&&&&&&&&&&&&",
+".........=&;.......!*,**,*,,*,,,,,*,,.......;&#..........................!...!..........!....................#&&&&$!..&&=!...!..............!!!........@&+!!..........&&&&&&&&&&&&&&&&&&&&&&&&&...........=&&&&&&&&&&&&&&$!...........#&&&&&&&&&&&&&,,-,,,,,,)&&&&&&&&&&&&&&%,,,,,-,,-&&&&&&&&&&&&%,,,,,,,,,&&&&&&&&&&&&&&&&&&&&",
+".........@+....!***!,*,,,*,,,,,*,,,*,!.......$$......................!!!!!!!!!!!...!.!!!!!!............!!!!!!#&&&&@..!@&=!!!!!!!.......!.!!!.!!!!...!!!@&+!!!!........&&&&&&&&&&&&&&&&&&&&&&&&+..........+&&&&&&&&&&&&&&&&@!.........#&&&&&&&&&&&&&&,,,,-,,,)&&&&&&&&&&&&&&&&'-,,,,,,)&&&&&&&&&&&@,,,,-,,,,,>&&&&&&&&&&&&&&&&&&&",
+"........;&#..*,*,,,..*,*,,,*,*,,,*,,,*.......#&;.....................#===;!!+$$#!..!!#+$$$+#!........!#+$$$=!#&&&&$!..&&=!!;=+=#!!.....!!!#=++=;.!.!!#!&&+;;;;!.......&&&&&&&&&&&&&&&&&&&&&&&&=.........#&&&&&&&&&&&&&&&&&&$........#&&&&&&&&&&&&&&&,,,,,,,)&&&&&&&&&&&&&&&&&&%,,,,,%&&&&&&&&&&&&-,-,,,,,,,,'&&&&&&&&&&&&&&&&&&&",
+"........=&...,,,,*,*...**,,,,,*,,,,*,*........&=....................!@&&&=;@&&&+.!!#@&&&&&&&$;.....!!$&&&&&&@=@&&&@..!@&=!$&&&&&$#!...!!+@&&&&&@=!.!$&@&&&@&&@........&&&&&&&&&&&&&&&&&&&&&&&&;........!&&&&&&&=;...#$&&&&&&#......!&&&&&&&&@'''>@&&,,,,,,'&&&&&&&)'''>&&&&&&&&,,,,,'&&&&&)-,,%)),,,,,,,,-,,-&&&&&&&&&&&&&&&&&&&",
+"........$$...,*,,,,*!......*,,,*,*,,,****.....$$.....................@&&&+@&&&&=!!#&&&&&&&&&&@!....;@&&&&&&&&&&&&&$!..&&#@&&@$@&&@#!...=&&@@$$&&&=!.$&@&&&@&&@........&&&&&&&&&&&&&&&&&&&&&&&&;........+&&&&&@!.......#&&&&&@......+&&&&&&&',,,,,,'&,,,,-,&&&&&&&-,,,,,,>&&&&&&',-,,)&&&&&%,,,,,-,,,,,-,,,,,%&&&&&&&&&&&&&&&&&&&",
+"........&=...**,*,,,,*......*,,,,,,*,*,*,,....+@.....................@&&&@&&&&&+!;&&&&&@@&&&&&@....@&&&&&&&&&&&&&&@...&&@&$!...#&&@....#@=....!$&@..!;.@&+.;!;........&&&&&&&&&&&&&&&&&&&&&&&&.........&&&&&@!.........+&&&&&#....!&&&&&&&-,,,,,,,,',,,,,%&&&&&&-,,,,,,,,'&&&&&&,,,,)&&&&&>,,,,,,,,,,,,,,,,,-&&&&&&&&&&&&&&&&&&&",
+".......;&#....*,,,*,*,,**....*,*,*,,,*,,,*,...#&.....................@&&&&&&&@&=!@&&&&=!.;@&&&&#!.+&&&&&@==$@&&&&&$!..@&&+......#&&=!...........&&+....&&+!...........&&&&&&&&&&&&&&&&&&&&&&&&........#&&&&&=;;;;#;;;#;#&&&&&+....#&&&&&&',,,,,,,,,,,,,,,>&&&&&%,,,,,,,,,,)&&&&&-,,,)&&&&&&@'-,,,,-,,,,,,,,,%&&&&&&&&&&&&&&&&&&&",
+".......;&#.....*,,,,*,,*,,**!*,,,,*,,,*,,,,*..;&;....................@&&&&&@=;;.#&&&&=!....&&&&$.!@&&&&$....#&&&&&@..!&&@........@&$.........!.!$&$....@&+............&&&&&&&&&&&&&&&&&&&&&&&&........+&&&&&&&&&&&&&&&&&&&&&&&....+&&&&&&,,,,,,,,,,,-,,,,&&&&&@,,,,,,,,,,,%&&&&&>,,,'&&&&&&&&&)',,,,,,,,-,,,-&&&&&&&&&&&&&&&&&&&",
+".......#&;......**,,,,*,,*,,,*,,*,,,*,,,*,**..#&;....................@&&&&@.....@&&&@!!!!!!$&&&@!#&&&&@;.....+&&&&$!..@&+!.......+&@!.....!!!!!!+&@....&&+!...........&&&&&&&&&&&&&&&&&&&&&&&&........$&&&&&&&&&&&&&&&&&&&&&&&....$&&&&&),,,,-,,,,,,,,,-,&&&&&',,,,,,,,,,,,&&&&&',,-,&&&&&&&&&&&&-,-,,-,,,,,%&&&&&&&&&&&&&&&&&&&",
+".......;&;........**,,,,,,*,,*,,,*,,,*,,,,,...#&#....................@&&&&=.....@&&&@++$+$+@&&&&!+&&&&$.....!#&&&&@..!&&=........+&@....!!!;=+$$@&@....@&+............&&&&&&&&&&&&&&&&&&&&&&&&........$&&&&&&&&&&&&&&&&&&&&&&&....$&&&&&),,,,,,-,,,,,,,,-&&&&&'-,,-,,-,,,,,&&&&&),,,,%&&&&&&&&&&&&-,,,,,,,,,-&&&&&&&&&&&&&&&&&&&",
+".......#&;.........*,*,*,,,,,,,*,,,*,,,*,**...;&;....................@&&&&;!...;&&&&&&&&&&&&&&&&!$&&&&=!.....#&&&&$!..@&=!.......=&&....!=@&&&&&&&@....&&+!...........&&&&&&&&&&&&&&&&&&&&&&&&........$&&&&&$$@$$$@$$$@$$$$$$$....$&&&&&),-,,,,,,,,,-,,,,&&&&&',,,,,,,,,,,,&&&&&>,,,,,->&&&&&&&&&&&,,,,,,-,,-&&&&&&&&&&&&&&&&&&&",
+".......;&#.......;@@!**,*,*,*,,,*,,,*,,,,*....#&.....................@&&&&;....#&&&&&&&&&&&&&&&&!$&&&&#......#&&&&@..!&&=........=&@...!+&&&@$++$&@....@&+............&&&&&&&&&&&&&&&&&&&&&&&&........+&&&&&;.....................$&&&&&@,,,,,,,-,,,,,,,,&&&&&),,,,,,,,-,,-&&&&&'-,,,,,,,%>&&&&&&&&%,,,,,,,,-&&&&&&&&&&&&&&&&&&&",
+"........&=.......+&&$...*,,,,,*,,,*,,,*,*.....=&.....................@&&&&!!...;&&&&&@&@&&@&&@&@;$&&&&=......#&&&&$!..@&=!.......=&&.!.$&&+!....+&@....@&+!...........&&&&&&&&&&&&&&&&&&&&&&&&........=&&&&&+................!....=&&&&&&-,,,-,,,,,,,,,,,)&&&&&-,,,,-,,,,,>&&&&&%,,,-,,,,,,,'&&&&&&',,-,,,,,%&&&&&&&&&&&&&&&&&&&",
+"........@+.......;&&&@&;...**,,*,,,*,**.......+$.....................@&&&&;.....&&&&$.!;#######;!+&&&&$.....!#&&&&@..!&&=.......!=&@.!#&&=.....!+&@....@&+............&&&&&&&&&&&&&&&&&&&&&&&&........;&&&&&&;........!;;#;;#;....;&&&&&&@,,,,,,,,,-,,,,,'&&&&&)-,,,,,,,,-&&&&&&,,,,,,,,,,,,,>&&&&&',,,,,,,,-&&&&&&&&&&&&&&&&&&&",
+"........+@.#=++$;.;&&&&@;.......!.!...........@=.....................@&&&&;!....@&&&&............=&&&&@..!..!+&&&&$!..@&=!.......=&&.!$&@.......+&@....&&+!...........&&&&&&&&&&&&&&&&&&&&&&&&;........$&&&&&&;......!@&&&&&&;.....$&&&&&&),,,,,,--@,,-,,-&&&&&&>,,,,,,,%&&&&&&>,,,,,>)-,,,,,>&&&&&',,,,-,,,%&&&&&&&&&&&&&&&&&&&",
+"........#&#+&&&&&;.;&&&&&+;#;+=#==#=;........;&;.....................$&&&&;.....+&&&&).!!!!!!!...!&&&&&+.!!!#@&&&&@..!&&=.......!=&@.!@&$.....!!$&@....@&+............&&&&&&&&&&&&&&&&&&&&&&&&;........#&&&&&&&$#;.;+&&&&&&&+......#&&&&&&&&'%,,%>&&,,,,,,>&&&&&&&'%,-%>&&&&&&&-,-,,,&&&'%,,'&&&&&&%,,,,,,,,-&&&&&&&&&&&&&&&&&&&",
+".........@&&&&&&&&$@&&&&&&&&&&&&&&&&.........+@......................@&&&@;!....!&&&&&@+=##=+@+...$&&&&&@+=$&&&&&&$...@&=!.......=&&..@&@!..!.!;&&@....@&+!...........&&&&&&&&&&&&&&&&&&&&&&&&#.........+&&&&&&&&&&&&&&&&&&@!.......=&&&&&&&&&&&&&&&,,,,,,-&&&&&&&&&&&&&&&&&&&',,,,,>&&&&&&&&&&&&&&,,,-,,,,,'&&&&&&&&&&&&&&&&&&&",
+".........+&&&&&&&&&&&&&&&&&&&+$+@&&$........;&=......................@&&&&;......=&&&&&&&&&&&&@...;&&&&&&&&&&&&&&&@...&&=........=&@..+&&#!!!!!@&&@....$&@!!!.........&&&&&&&&&&&&&&&&&&&&&&&&+..........@&&&&&&&&&&&&&&&&&;.........+&&&&&&&&&&&&&&,,,,,,,-&&&&&&&&&&&&&&&&&),,,,,-&&&&&&&&&&&&&&',,,,,-,,,>&&&&&&&&&&&&&&&&&&&",
+".........!&&&&&&&&&&&&&&&&&&@;..$&&+........+@.......................@&&&&;.......+&&&&&&&&&&&&....=&&&&&&&&&@@&&&@...&&=........+&&...@&&===$&&$&@....=&&$=+=........&&&&&&&&&&&&&&&&&&&&&&&&&..........!@&&&&&&&&&&&&&&&;...........+&&&&&&&&&&&&&,,-,,,,,%&&&&&&&&&&&&&&&),,,,,,'&&&&&&&&&&&&&>,,,,,,,,,,&&&&&&&&&&&&&&&&&&&&",
+"..........=&&&&&&&&&&&&&&&&&&&@@&&&;..#+=+==&#.......................@&&&&;........=@&&&&&&&&&@!....=@&&&&&&@!$&&&@...@&=........=&@...#@&&&&&&+.&&.....$&&&&@........&&&&&&&&&&&&&&&&&&&&&&&&&#...........+&&&&&&&&&&&&$!.............#$&&&&&&&&&&&,,,,,,,,,-)&&&&&&&&&&&&>,,,-,,,,-)&&&&&&&&&&',,,,,,,,,,%&&&&&&&&&&&&&&&&&&&&",
+"...........$&&&&&&&&&&&&&&&&&&&&&&=..#&&&&&&$........................=+++=!..........=+$@$$$+#........=$@@$=..#+++=...=+;........;+=....;+@@@+#..+=.....!+$@@+........&&&&&&&&&&&&&&&&&&&&&&&&&@............!+&&&&&&&&@#.................;=$$$&&&&&&,,,,,,,,,,,%)&&&&&&&&>,,,,,,,,,,,,-')@&&&)',,,-,,,,,-,,&&&&&&&&&&&&&&&&&&&&&",
+"...........;&&&&&&&&&&&&&&&&&&&&&$.;$&&&&&&&!.........................................................................................................................&&&&&&&&&&&&&&&&&&&&&&&&&&=..............#++++#;........................&&&&&&,,,,,,,,,,,,,-%''''%,,,,,,,,,,,,,,,,,,,,,,,,,,,,-,,,,,'&&&&&&&&&&&&&&&&&&&&&",
+"............;&&&&&&&&&&&&&&&&&&&&;!&&&&&&&&;..........................................................................................................................&&&&&&&&&&&&&&&&&&&&&&&&&&&#............................................&&&&&&,,-,,,,,,,,,,,,,-,,,,,,,-,,,-,,,,,,,,,,,,,,,,,,,,,,,,'&&&&&&&&&&&&&&&&&&&&&&",
+".............=&&&&&&&&&&&&&&&&&&$+&&&&&&&@;...........................................................................................................................&&&&&&&&&&&&&&&&&&&&&&&&&&&&;...........................................&&&&&&,,,,-,,,-,,,,,,,,,,,,,,,,,,,,-,,-,,,,,,,,,,,-,,,,,,,%&&&&&&&&&&&&&&&&&&&&&&&",
+"..............;&&&&&&&&&&&&&&&&&&&&&&&&&&;............................................................................................................................&&&&&&&&&&&&&&&&&&&&&&&&&&&&&=..........................................&&&&&&,,,,,,,,,,,,,-,,,,,,-,,,,,,,,,,,,,,-,,,-,,,,,,,-,,-'&&&&&&&&&&&&&&&&&&&&&&&&",
+"...............;@&&&&&&&&&&&&&&&&&&&&&&$!.............................................................................................................................&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&@;........................................&&&&&&,,,,,,,,,-,,,,,,-,,,,,,,-,,,,,,,,,,,,,,,,-,,,,,,,%)&&&&&&&&&&&&&&&&&&&&&&&&&",
+".................=&&&&&&&&&&&&&&&&&&&&#...............................................................................................................................&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&@+;;....................................&&&&&&,,,,-,,,,,,,,,,,,,,,,-,,,,,,,-,,,,,,-,,,,,,,-,%'@&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"..................!+@&&&&&&&&&&&&&&@=!................................................................................................................................&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+".....................#+@&&&&&&&&@+;...................................................................................................................................&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+".........................;#;##;.......................................................................................................................................&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"......................................................................................................................................................................&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"......................................................................................................................................................................&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"......................................................................................................................................................................&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"......................................................................................................................................................................&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"......................................................................................................................................................................&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"......................................................................................................................................................................&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"......................................................................................................................................................................&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"......................................................................................................................................................................&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"......................................................................................................................................................................&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"......................................................................................................................................................................&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"......................................................................................................................................................................&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"......................................................................................................................................................................&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&..........................................................................................................................................................",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&"};
diff --git a/ecos/packages/hal/arm/sa11x0/cerfpda/current/misc/redboot.xpm b/ecos/packages/hal/arm/sa11x0/cerfpda/current/misc/redboot.xpm
new file mode 100644
index 0000000..a84e138
--- /dev/null
+++ b/ecos/packages/hal/arm/sa11x0/cerfpda/current/misc/redboot.xpm
@@ -0,0 +1,254 @@
+/* XPM */
+static char * redboot_xpm[] = {
+"320 240 11 1",
+" c None",
+". c #FFFF00",
+"+ c #FFAA00",
+"@ c #FFE300",
+"# c #FFC700",
+"$ c #FF0000",
+"% c #FF1D00",
+"& c #FF7200",
+"* c #FF5500",
+"= c #FF3900",
+"- c #FF8E00",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+".......................................................................+++++++++++++++++++++++++@......................................................................#+++++++#........@++++++++++++++++++++++.................................................................................................................",
+".......................................................................$$$$$$$$$$$$$$$$$$$$$$$$$$%&@...................................................................$$$$$$$$&........*$$$$$$$$$$$$$$$$$$$$$$$%*#.............................................................................................................",
+"......................................................................+$$$$$$$$$$$$$$$$$$$$$$$$$$$$$+.................................................................@$$$$$$$$+........%$$$$$$$$$$$$$$$$$$$$$$$$$$=@...........................................................................................................",
+"......................................................................&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$+................................................................+$$$$$$$$.........$$$$$$$$$$$$$$$$$$$$$$$$$$$$$+..........................................................................................................",
+"......................................................................*$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$+...............................................................&$$$$$$$%........+$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@.....................................................................................*$$$$$$$%...........",
+"......................................................................$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%...............................................................*$$$$$$$*........-$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$=.....................................................................................$$$$$$$$*...........",
+".....................................................................@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$-..............................................................$$$$$$$$-........*$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#....................................................................................$$$$$$$$-...........",
+".....................................................................+$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$*.............................................................#$$$$$$$$#........%$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$*...................................................................................+$$$$$$$$+...........",
+".....................................................................*$$$$$$$$+............+&$$$$$$$$$$$.............................................................+$$$$$$$$........@$$$$$$$$=............+=$$$$$$$$$%...................................................................................-$$$$$$$$............",
+".....................................................................=$$$$$$$$#..............@%$$$$$$$$$.............................................................*$$$$$$$=........+$$$$$$$$*..............-$$$$$$$$$...................................................................................*$$$$$$$=............",
+".....................................................................$$$$$$$$$................#$$$$$$$$$.............................................................=$$$$$$$*........&$$$$$$$$+...............%$$$$$$$$...................................................................................%$$$$$$$*............",
+"....................................................................#$$$$$$$$*.................=$$$$$$$%...............#++**-+#.........................@++**++......$$$$$$$$+........*$$$$$$$$#...............*$$$$$$$$..................@++&**++@............................#++**&++....................$$$$$$$$+............",
+"....................................................................-$$$$$$$$&.................*$$$$$$$*............+*$$$$$$$$$$*#....................-=$$$$$$$$&@..+$$$$$$$$@........$$$$$$$$$................*$$$$$$$*...............+*$$$$$$$$$$%&@.....................@-=$$$$$$$$$$=-............@+++&$$$$$$$$&+++#........",
+"....................................................................*$$$$$$$$+.................=$$$$$$$-.........@&$$$$$$$$$$$$$$$*@................-%$$$$$$$$$$$%@.-$$$$$$$$........#$$$$$$$$=................$$$$$$$$-.............-%$$$$$$$$$$$$$$$&..................@&$$$$$$$$$$$$$$$%+..........*$$$$$$$$$$$$$$$$*........",
+"....................................................................%$$$$$$$$@................@$$$$$$$$@........+%$$$$$$$$$$$$$$$$$%@.............@=$$$$$$$$$$$$$$%@*$$$$$$$*........+$$$$$$$$&...............-$$$$$$$$@...........#%$$$$$$$$$$$$$$$$$$%@...............-$$$$$$$$$$$$$$$$$$$*.........%$$$$$$$$$$$$$$$$-........",
+"....................................................................$$$$$$$$$.................&$$$$$$$*........*$$$$$$$$$$$$$$$$$$$$%@...........#%$$$$$$$$$$$$$$$$&%$$$$$$$&........*$$$$$$$$+..............@$$$$$$$$&...........-$$$$$$$$$$$$$$$$$$$$$%@............@*$$$$$$$$$$$$$$$$$$$$$*........$$$$$$$$$$$$$$$$$+........",
+"...................................................................+$$$$$$$$*................#$$$$$$$$#.......*$$$$$$$$$$$$$$$$$$$$$$=..........+$$$$$$$$$$$$$$$$$$$$$$$$$$$+........=$$$$$$$$@.............@%$$$$$$$%@..........*$$$$$$$$$$$$$$$$$$$$$$$=...........@%$$$$$$$$$$$$$$$$$$$$$$$-......+$$$$$$$$$$$$$$$$$.........",
+"...................................................................-$$$$$$$$&...............@%$$$$$$$&.......-$$$$$$$$$$$$$$$$$$$$$$$$+........@$$$$$$$$$$$$$$$$$$$$$$$$$$$$@........$$$$$$$$$............#&$$$$$$$$$#..........&$$$$$$$$$$$$$$$$$$$$$$$$$-..........%$$$$$$$$$$$$$$$$$$$$$$$$$@.....-$$$$$$$$$$$$$$$$=.........",
+"...................................................................*$$$$$$$$+..............-%$$$$$$$=.......#$$$$$$$$$%&+@@+*$$$$$$$$$=........%$$$$$$$$$%-#.+&$$$$$$$$$$$$%........+$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$+..........+$$$$$$$$$$&+@@+&$$$$$$$$$$=.........*$$$$$$$$$%-+.#+=$$$$$$$$$$-.....#+++=$$$$$$$$++++#.........",
+"...................................................................$$$$$$$$$-++++++++++++*%$$$$$$$$%@.......%$$$$$$$$&.......+$$$$$$$$$#......&$$$$$$$$$&......@%$$$$$$$$$$*........-$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%+..........@$$$$$$$$$=@......@%$$$$$$$$$@.......-$$$$$$$$$&.......+$$$$$$$$$=.........%$$$$$$$*..............",
+"..................................................................@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$*@.......&$$$$$$$$+.........&$$$$$$$$-.....@$$$$$$$$$+........+$$$$$$$$$$-........*$$$$$$$$$$$$$$$$$$$$$$$$$$$$=@...........=$$$$$$$$*.........#$$$$$$$$$+......@$$$$$$$$$+.........&$$$$$$$$$.........$$$$$$$$-..............",
+"..................................................................+$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$-........@$$$$$$$$*..........@$$$$$$$$*.....=$$$$$$$$-..........=$$$$$$$$$+........%$$$$$$$$$$$$$$$$$$$$$$$$$$$$*...........#$$$$$$$$*...........*$$$$$$$$*......&$$$$$$$$+...........$$$$$$$$$+.......+$$$$$$$$+..............",
+"..................................................................&$$$$$$$$$$$$$$$$$$$$$$$$$$$$&@.........&$$$$$$$%............%$$$$$$$*....#$$$$$$$$=...........&$$$$$$$$$........@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$*..........=$$$$$$$%@...........+$$$$$$$$*.....@$$$$$$$$*............*$$$$$$$$+.......&$$$$$$$$...............",
+"..................................................................=$$$$$$$$$$$$$$$$$$$$$$$$$$$&@..........%$$$$$$$&............*$$$$$$$*....&$$$$$$$$@...........+$$$$$$$$=........+$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&........#$$$$$$$$-.............$$$$$$$$*.....&$$$$$$$$@............+$$$$$$$$+.......*$$$$$$$%...............",
+"..................................................................$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&........+$$$$$$$$@............*$$$$$$$*....$$$$$$$$*............+$$$$$$$$*........&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#.......&$$$$$$$%..............$$$$$$$$*.....%$$$$$$$&.............+$$$$$$$$+.......$$$$$$$$*...............",
+".................................................................#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$*.......*$$$$$$$$$$$$$$$$$$$$$$$$$$$$$*...+$$$$$$$$#............+$$$$$$$$+........*$$$$$$$$&++++++++++++*$$$$$$$$$$=.......$$$$$$$$-..............$$$$$$$$*....+$$$$$$$$@.............+$$$$$$$$+......@$$$$$$$$-...............",
+".................................................................+$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$+......$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$*...*$$$$$$$%.............+$$$$$$$$#........$$$$$$$$$..............@*$$$$$$$$$......+$$$$$$$$@..............$$$$$$$$+....*$$$$$$$=..............+$$$$$$$$.......+$$$$$$$$#...............",
+".................................................................*$$$$$$$$+............+=$$$$$$$$$*.....+$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$+...$$$$$$$$&.............+$$$$$$$$........@$$$$$$$$=................%$$$$$$$$+.....&$$$$$$$%..............@$$$$$$$$+....%$$$$$$$&..............-$$$$$$$$.......&$$$$$$$$................",
+".................................................................%$$$$$$$$@..............*$$$$$$$$*.....-$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#..#$$$$$$$$+.............*$$$$$$$*........+$$$$$$$$*................-$$$$$$$$+.....=$$$$$$$*..............+$$$$$$$$@...@$$$$$$$$+..............*$$$$$$$=.......*$$$$$$$=................",
+".................................................................$$$$$$$$$...............@$$$$$$$$*.....*$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$...+$$$$$$$$#.............=$$$$$$$&........*$$$$$$$$+................+$$$$$$$$+.....$$$$$$$$&..............&$$$$$$$%....+$$$$$$$$#..............%$$$$$$$&.......$$$$$$$$*................",
+"................................................................+$$$$$$$$*................$$$$$$$$&.....=$$$$$$$$*********************&...-$$$$$$$$.............@$$$$$$$$+........=$$$$$$$$#................+$$$$$$$$+.....$$$$$$$$+..............=$$$$$$$*....+$$$$$$$$..............@$$$$$$$$+......@$$$$$$$$+................",
+"................................................................-$$$$$$$$&...............#$$$$$$$$+.....$$$$$$$$%.........................*$$$$$$$$.............-$$$$$$$$@........$$$$$$$$$.................*$$$$$$$$.....+$$$$$$$$+.............@$$$$$$$$+....*$$$$$$$$..............-$$$$$$$$.......+$$$$$$$$@................",
+"................................................................*$$$$$$$$+...............-$$$$$$$$+.....$$$$$$$$*.........................*$$$$$$$$.............=$$$$$$$%........#$$$$$$$$=................@$$$$$$$$=.....+$$$$$$$$+.............&$$$$$$$$.....*$$$$$$$$..............%$$$$$$$*.......&$$$$$$$$.................",
+"................................................................$$$$$$$$$................*$$$$$$$$......$$$$$$$$*.........................*$$$$$$$$............#$$$$$$$$*........-$$$$$$$$*................&$$$$$$$$-.....+$$$$$$$$+............@%$$$$$$$&.....*$$$$$$$$.............+$$$$$$$$#.......*$$$$$$$*.................",
+"...............................................................@$$$$$$$$%................$$$$$$$$$......$$$$$$$$*.........................*$$$$$$$$+...........%$$$$$$$$-........*$$$$$$$$+...............+$$$$$$$$$@.....+$$$$$$$$*............&$$$$$$$$@.....*$$$$$$$$+............%$$$$$$$=........$$$$$$$$&.................",
+"...............................................................+$$$$$$$$*...............#$$$$$$$$*......%$$$$$$$$...........@********@....&$$$$$$$$&..........*$$$$$$$$$+........%$$$$$$$$#..............+$$$$$$$$$&......+$$$$$$$$%...........+$$$$$$$$*......*$$$$$$$$&...........*$$$$$$$$+.......#$$$$$$$$+.................",
+"...............................................................&$$$$$$$$-...............&$$$$$$$$&......*$$$$$$$$-..........*$$$$$$$=.....+$$$$$$$$%@........+$$$$$$$$$$.........$$$$$$$$$............@+=$$$$$$$$$%@.......$$$$$$$$$-.........+$$$$$$$$$@......+$$$$$$$$$@.........*$$$$$$$$=........+$$$$$$$$..................",
+"...............................................................=$$$$$$$$+...............*$$$$$$$$+......+$$$$$$$$$+.......@*$$$$$$$$@.....#$$$$$$$$$*.......*$$$$$$$$$$=........+$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$+........%$$$$$$$$$+.......-$$$$$$$$$-.......#$$$$$$$$$%@......@*$$$$$$$$$@........*$$$$$$$=..................",
+"...............................................................$$$$$$$$$................$$$$$$$$$#.......$$$$$$$$$$&#...#&$$$$$$$$$-.......%$$$$$$$$$=#..@-%$$$$$$$$$$$*........&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&.........&$$$$$$$$$$&#...+=$$$$$$$$$=.........%$$$$$$$$$%-@..@-%$$$$$$$$$-.........=$$$$$$$%@.................",
+"..............................................................#$$$$$$$$=...............@$$$$$$$$$........&$$$$$$$$$$$$$$$$$$$$$$$$*........&$$$$$$$$$$$$$$$$$$$$$$$$$$$+........*$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$*..........@$$$$$$$$$$$$$$$$$$$$$$$$$%@.........-$$$$$$$$$$$$$$$$$$$$$$$$$*..........$$$$$$$$$$***..............",
+"..............................................................+$$$$$$$$*...............+$$$$$$$$$.........%$$$$$$$$$$$$$$$$$$$$$$*.........@$$$$$$$$$$$$$$$$$$$$$$$$$$$#........$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$-............&$$$$$$$$$$$$$$$$$$$$$$$%@...........%$$$$$$$$$$$$$$$$$$$$$$$*...........$$$$$$$$$$$$%..............",
+"..............................................................*$$$$$$$$+...............+$$$$$$$$$@........@$$$$$$$$$$$$$$$$$$$$$*...........-$$$$$$$$$$$$$$$$$*$$$$$$$$........@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%#..............*$$$$$$$$$$$$$$$$$$$$$=@............@%$$$$$$$$$$$$$$$$$$$$$&............$$$$$$$$$$$$*..............",
+"..............................................................%$$$$$$$$#...............+$$$$$$$$$*.........#%$$$$$$$$$$$$$$$$$$+.............*$$$$$$$$$$$$$$$+*$$$$$$$*........+$$$$$$$$$$$$$$$$$$$$$$$$$$$%-................@=$$$$$$$$$$$$$$$$$$$&...............+%$$$$$$$$$$$$$$$$$$%+.............*$$$$$$$$$$$-..............",
+"..............................................................$$$$$$$$$................@$$$$$$$$$=..........@=$$$$$$$$$$$$$$$&@...............*$$$$$$$$$$$$%@.%$$$$$$$&........&$$$$$$$$$$$$$$$$$$$$$$$$=&#....................&$$$$$$$$$$$$$$$$=#.................@=$$$$$$$$$$$$$$$$&@..............#$$$$$$$$$$$+..............",
+".............................................................@+++++++++.................+++++++++#............#=$$$$$$$$$$%&@..................+%$$$$$$$$%-...++++++++@........#++++++++++++++++++++++@.........................@&%$$$$$$$$$$%&#.....................#*$$$$$$$$$$$=-@.................+%$$$$$$$$$...............",
+"................................................................................................................@+&****&+@.......................#-****-#..........................................................................#+******+#...........................+-*****&+@......................+&*****+#...............",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................+++++++++++++++++++++++++@......................................................................#+++++++#........@++++++++++++++++++++++........................................................................................................................................................................",
+"................$$$$$$$$$$$$$$$$$$$$$$$$$$%&@...................................................................$$$$$$$$&........*$$$$$$$$$$$$$$$$$$$$$$$%*#....................................................................................................................................................................",
+"...............+$$$$$$$$$$$$$$$$$$$$$$$$$$$$$+.................................................................@$$$$$$$$+........%$$$$$$$$$$$$$$$$$$$$$$$$$$=@..................................................................................................................................................................",
+"...............&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$+................................................................+$$$$$$$$.........$$$$$$$$$$$$$$$$$$$$$$$$$$$$$+.................................................................................................................................................................",
+"...............*$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$+...............................................................&$$$$$$$%........+$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@.....................................................................................*$$$$$$$%..................................................................",
+"...............$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%...............................................................*$$$$$$$*........-$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$=.....................................................................................$$$$$$$$*..................................................................",
+"..............@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$-..............................................................$$$$$$$$-........*$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#....................................................................................$$$$$$$$-..................................................................",
+"..............+$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$*.............................................................#$$$$$$$$#........%$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$*...................................................................................+$$$$$$$$+..................................................................",
+"..............*$$$$$$$$+............+&$$$$$$$$$$$.............................................................+$$$$$$$$........@$$$$$$$$=............+=$$$$$$$$$%...................................................................................-$$$$$$$$...................................................................",
+"..............=$$$$$$$$#..............@%$$$$$$$$$.............................................................*$$$$$$$=........+$$$$$$$$*..............-$$$$$$$$$...................................................................................*$$$$$$$=...................................................................",
+"..............$$$$$$$$$................#$$$$$$$$$.............................................................=$$$$$$$*........&$$$$$$$$+...............%$$$$$$$$...................................................................................%$$$$$$$*...................................................................",
+".............#$$$$$$$$*.................=$$$$$$$%...............#++**-+#.........................@++**++......$$$$$$$$+........*$$$$$$$$#...............*$$$$$$$$..................@++&**++@............................#++**&++....................$$$$$$$$+...................................................................",
+".............-$$$$$$$$&.................*$$$$$$$*............+*$$$$$$$$$$*#....................-=$$$$$$$$&@..+$$$$$$$$@........$$$$$$$$$................*$$$$$$$*...............+*$$$$$$$$$$%&@.....................@-=$$$$$$$$$$=-............@+++&$$$$$$$$&+++#...............................................................",
+".............*$$$$$$$$+.................=$$$$$$$-.........@&$$$$$$$$$$$$$$$*@................-%$$$$$$$$$$$%@.-$$$$$$$$........#$$$$$$$$=................$$$$$$$$-.............-%$$$$$$$$$$$$$$$&..................@&$$$$$$$$$$$$$$$%+..........*$$$$$$$$$$$$$$$$*...............................................................",
+".............%$$$$$$$$@................@$$$$$$$$@........+%$$$$$$$$$$$$$$$$$%@.............@=$$$$$$$$$$$$$$%@*$$$$$$$*........+$$$$$$$$&...............-$$$$$$$$@...........#%$$$$$$$$$$$$$$$$$$%@...............-$$$$$$$$$$$$$$$$$$$*.........%$$$$$$$$$$$$$$$$-...............................................................",
+".............$$$$$$$$$.................&$$$$$$$*........*$$$$$$$$$$$$$$$$$$$$%@...........#%$$$$$$$$$$$$$$$$&%$$$$$$$&........*$$$$$$$$+..............@$$$$$$$$&...........-$$$$$$$$$$$$$$$$$$$$$%@............@*$$$$$$$$$$$$$$$$$$$$$*........$$$$$$$$$$$$$$$$$+...............................................................",
+"............+$$$$$$$$*................#$$$$$$$$#.......*$$$$$$$$$$$$$$$$$$$$$$=..........+$$$$$$$$$$$$$$$$$$$$$$$$$$$+........=$$$$$$$$@.............@%$$$$$$$%@..........*$$$$$$$$$$$$$$$$$$$$$$$=...........@%$$$$$$$$$$$$$$$$$$$$$$$-......+$$$$$$$$$$$$$$$$$................................................................",
+"............-$$$$$$$$&...............@%$$$$$$$&.......-$$$$$$$$$$$$$$$$$$$$$$$$+........@$$$$$$$$$$$$$$$$$$$$$$$$$$$$@........$$$$$$$$$............#&$$$$$$$$$#..........&$$$$$$$$$$$$$$$$$$$$$$$$$-..........%$$$$$$$$$$$$$$$$$$$$$$$$$@.....-$$$$$$$$$$$$$$$$=................................................................",
+"............*$$$$$$$$+..............-%$$$$$$$=.......#$$$$$$$$$%&+@@+*$$$$$$$$$=........%$$$$$$$$$%-#.+&$$$$$$$$$$$$%........+$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$+..........+$$$$$$$$$$&+@@+&$$$$$$$$$$=.........*$$$$$$$$$%-+.#+=$$$$$$$$$$-.....#+++=$$$$$$$$++++#................................................................",
+"............$$$$$$$$$-++++++++++++*%$$$$$$$$%@.......%$$$$$$$$&.......+$$$$$$$$$#......&$$$$$$$$$&......@%$$$$$$$$$$*........-$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%+..........@$$$$$$$$$=@......@%$$$$$$$$$@.......-$$$$$$$$$&.......+$$$$$$$$$=.........%$$$$$$$*.....................................................................",
+"...........@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$*@.......&$$$$$$$$+.........&$$$$$$$$-.....@$$$$$$$$$+........+$$$$$$$$$$-........*$$$$$$$$$$$$$$$$$$$$$$$$$$$$=@...........=$$$$$$$$*.........#$$$$$$$$$+......@$$$$$$$$$+.........&$$$$$$$$$.........$$$$$$$$-.....................................................................",
+"...........+$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$-........@$$$$$$$$*..........@$$$$$$$$*.....=$$$$$$$$-..........=$$$$$$$$$+........%$$$$$$$$$$$$$$$$$$$$$$$$$$$$*...........#$$$$$$$$*...........*$$$$$$$$*......&$$$$$$$$+...........$$$$$$$$$+.......+$$$$$$$$+.....................................................................",
+"...........&$$$$$$$$$$$$$$$$$$$$$$$$$$$$&@.........&$$$$$$$%............%$$$$$$$*....#$$$$$$$$=...........&$$$$$$$$$........@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$*..........=$$$$$$$%@...........+$$$$$$$$*.....@$$$$$$$$*............*$$$$$$$$+.......&$$$$$$$$......................................................................",
+"...........=$$$$$$$$$$$$$$$$$$$$$$$$$$$&@..........%$$$$$$$&............*$$$$$$$*....&$$$$$$$$@...........+$$$$$$$$=........+$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&........#$$$$$$$$-.............$$$$$$$$*.....&$$$$$$$$@............+$$$$$$$$+.......*$$$$$$$%......................................................................",
+"...........$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&........+$$$$$$$$@............*$$$$$$$*....$$$$$$$$*............+$$$$$$$$*........&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#.......&$$$$$$$%..............$$$$$$$$*.....%$$$$$$$&.............+$$$$$$$$+.......$$$$$$$$*......................................................................",
+"..........#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$*.......*$$$$$$$$$$$$$$$$$$$$$$$$$$$$$*...+$$$$$$$$#............+$$$$$$$$+........*$$$$$$$$&++++++++++++*$$$$$$$$$$=.......$$$$$$$$-..............$$$$$$$$*....+$$$$$$$$@.............+$$$$$$$$+......@$$$$$$$$-......................................................................",
+"..........+$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$+......$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$*...*$$$$$$$%.............+$$$$$$$$#........$$$$$$$$$..............@*$$$$$$$$$......+$$$$$$$$@..............$$$$$$$$+....*$$$$$$$=..............+$$$$$$$$.......+$$$$$$$$#......................................................................",
+"..........*$$$$$$$$+............+=$$$$$$$$$*.....+$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$+...$$$$$$$$&.............+$$$$$$$$........@$$$$$$$$=................%$$$$$$$$+.....&$$$$$$$%..............@$$$$$$$$+....%$$$$$$$&..............-$$$$$$$$.......&$$$$$$$$.......................................................................",
+"..........%$$$$$$$$@..............*$$$$$$$$*.....-$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#..#$$$$$$$$+.............*$$$$$$$*........+$$$$$$$$*................-$$$$$$$$+.....=$$$$$$$*..............+$$$$$$$$@...@$$$$$$$$+..............*$$$$$$$=.......*$$$$$$$=.......................................................................",
+"..........$$$$$$$$$...............@$$$$$$$$*.....*$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$...+$$$$$$$$#.............=$$$$$$$&........*$$$$$$$$+................+$$$$$$$$+.....$$$$$$$$&..............&$$$$$$$%....+$$$$$$$$#..............%$$$$$$$&.......$$$$$$$$*.......................................................................",
+".........+$$$$$$$$*................$$$$$$$$&.....=$$$$$$$$*********************&...-$$$$$$$$.............@$$$$$$$$+........=$$$$$$$$#................+$$$$$$$$+.....$$$$$$$$+..............=$$$$$$$*....+$$$$$$$$..............@$$$$$$$$+......@$$$$$$$$+.......................................................................",
+".........-$$$$$$$$&...............#$$$$$$$$+.....$$$$$$$$%.........................*$$$$$$$$.............-$$$$$$$$@........$$$$$$$$$.................*$$$$$$$$.....+$$$$$$$$+.............@$$$$$$$$+....*$$$$$$$$..............-$$$$$$$$.......+$$$$$$$$@.......................................................................",
+".........*$$$$$$$$+...............-$$$$$$$$+.....$$$$$$$$*.........................*$$$$$$$$.............=$$$$$$$%........#$$$$$$$$=................@$$$$$$$$=.....+$$$$$$$$+.............&$$$$$$$$.....*$$$$$$$$..............%$$$$$$$*.......&$$$$$$$$........................................................................",
+".........$$$$$$$$$................*$$$$$$$$......$$$$$$$$*.........................*$$$$$$$$............#$$$$$$$$*........-$$$$$$$$*................&$$$$$$$$-.....+$$$$$$$$+............@%$$$$$$$&.....*$$$$$$$$.............+$$$$$$$$#.......*$$$$$$$*........................................................................",
+"........@$$$$$$$$%................$$$$$$$$$......$$$$$$$$*.........................*$$$$$$$$+...........%$$$$$$$$-........*$$$$$$$$+...............+$$$$$$$$$@.....+$$$$$$$$*............&$$$$$$$$@.....*$$$$$$$$+............%$$$$$$$=........$$$$$$$$&........................................................................",
+"........+$$$$$$$$*...............#$$$$$$$$*......%$$$$$$$$...........@********@....&$$$$$$$$&..........*$$$$$$$$$+........%$$$$$$$$#..............+$$$$$$$$$&......+$$$$$$$$%...........+$$$$$$$$*......*$$$$$$$$&...........*$$$$$$$$+.......#$$$$$$$$+........................................................................",
+"........&$$$$$$$$-...............&$$$$$$$$&......*$$$$$$$$-..........*$$$$$$$=.....+$$$$$$$$%@........+$$$$$$$$$$.........$$$$$$$$$............@+=$$$$$$$$$%@.......$$$$$$$$$-.........+$$$$$$$$$@......+$$$$$$$$$@.........*$$$$$$$$=........+$$$$$$$$.........................................................................",
+"........=$$$$$$$$+...............*$$$$$$$$+......+$$$$$$$$$+.......@*$$$$$$$$@.....#$$$$$$$$$*.......*$$$$$$$$$$=........+$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$+........%$$$$$$$$$+.......-$$$$$$$$$-.......#$$$$$$$$$%@......@*$$$$$$$$$@........*$$$$$$$=.........................................................................",
+"........$$$$$$$$$................$$$$$$$$$#.......$$$$$$$$$$&#...#&$$$$$$$$$-.......%$$$$$$$$$=#..@-%$$$$$$$$$$$*........&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&.........&$$$$$$$$$$&#...+=$$$$$$$$$=.........%$$$$$$$$$%-@..@-%$$$$$$$$$-.........=$$$$$$$%@........................................................................",
+".......#$$$$$$$$=...............@$$$$$$$$$........&$$$$$$$$$$$$$$$$$$$$$$$$*........&$$$$$$$$$$$$$$$$$$$$$$$$$$$+........*$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$*..........@$$$$$$$$$$$$$$$$$$$$$$$$$%@.........-$$$$$$$$$$$$$$$$$$$$$$$$$*..........$$$$$$$$$$***.....................................................................",
+".......+$$$$$$$$*...............+$$$$$$$$$.........%$$$$$$$$$$$$$$$$$$$$$$*.........@$$$$$$$$$$$$$$$$$$$$$$$$$$$#........$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$-............&$$$$$$$$$$$$$$$$$$$$$$$%@...........%$$$$$$$$$$$$$$$$$$$$$$$*...........$$$$$$$$$$$$%.....................................................................",
+".......*$$$$$$$$+...............+$$$$$$$$$@........@$$$$$$$$$$$$$$$$$$$$$*...........-$$$$$$$$$$$$$$$$$*$$$$$$$$........@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%#..............*$$$$$$$$$$$$$$$$$$$$$=@............@%$$$$$$$$$$$$$$$$$$$$$&............$$$$$$$$$$$$*.....................................................................",
+".......%$$$$$$$$#...............+$$$$$$$$$*.........#%$$$$$$$$$$$$$$$$$$+.............*$$$$$$$$$$$$$$$+*$$$$$$$*........+$$$$$$$$$$$$$$$$$$$$$$$$$$$%-................@=$$$$$$$$$$$$$$$$$$$&...............+%$$$$$$$$$$$$$$$$$$%+.............*$$$$$$$$$$$-.....................................................................",
+".......$$$$$$$$$................@$$$$$$$$$=..........@=$$$$$$$$$$$$$$$&@...............*$$$$$$$$$$$$%@.%$$$$$$$&........&$$$$$$$$$$$$$$$$$$$$$$$$=&#....................&$$$$$$$$$$$$$$$$=#.................@=$$$$$$$$$$$$$$$$&@..............#$$$$$$$$$$$+.....................................................................",
+"......@+++++++++.................+++++++++#............#=$$$$$$$$$$%&@..................+%$$$$$$$$%-...++++++++@........#++++++++++++++++++++++@.........................@&%$$$$$$$$$$%&#.....................#*$$$$$$$$$$$=-@.................+%$$$$$$$$$......................................................................",
+".........................................................@+&****&+@.......................#-****-#..........................................................................#+******+#...........................+-*****&+@......................+&*****+#......................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+".................................................................+++++++++++++++++++++++++@......................................................................#+++++++#........@++++++++++++++++++++++.......................................................................................................................",
+".................................................................$$$$$$$$$$$$$$$$$$$$$$$$$$%&@...................................................................$$$$$$$$&........*$$$$$$$$$$$$$$$$$$$$$$$%*#...................................................................................................................",
+"................................................................+$$$$$$$$$$$$$$$$$$$$$$$$$$$$$+.................................................................@$$$$$$$$+........%$$$$$$$$$$$$$$$$$$$$$$$$$$=@.................................................................................................................",
+"................................................................&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$+................................................................+$$$$$$$$.........$$$$$$$$$$$$$$$$$$$$$$$$$$$$$+................................................................................................................",
+"................................................................*$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$+...............................................................&$$$$$$$%........+$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@.....................................................................................*$$$$$$$%.................",
+"................................................................$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%...............................................................*$$$$$$$*........-$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$=.....................................................................................$$$$$$$$*.................",
+"...............................................................@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$-..............................................................$$$$$$$$-........*$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#....................................................................................$$$$$$$$-.................",
+"...............................................................+$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$*.............................................................#$$$$$$$$#........%$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$*...................................................................................+$$$$$$$$+.................",
+"...............................................................*$$$$$$$$+............+&$$$$$$$$$$$.............................................................+$$$$$$$$........@$$$$$$$$=............+=$$$$$$$$$%...................................................................................-$$$$$$$$..................",
+"...............................................................=$$$$$$$$#..............@%$$$$$$$$$.............................................................*$$$$$$$=........+$$$$$$$$*..............-$$$$$$$$$...................................................................................*$$$$$$$=..................",
+"...............................................................$$$$$$$$$................#$$$$$$$$$.............................................................=$$$$$$$*........&$$$$$$$$+...............%$$$$$$$$...................................................................................%$$$$$$$*..................",
+"..............................................................#$$$$$$$$*.................=$$$$$$$%...............#++**-+#.........................@++**++......$$$$$$$$+........*$$$$$$$$#...............*$$$$$$$$..................@++&**++@............................#++**&++....................$$$$$$$$+..................",
+"..............................................................-$$$$$$$$&.................*$$$$$$$*............+*$$$$$$$$$$*#....................-=$$$$$$$$&@..+$$$$$$$$@........$$$$$$$$$................*$$$$$$$*...............+*$$$$$$$$$$%&@.....................@-=$$$$$$$$$$=-............@+++&$$$$$$$$&+++#..............",
+"..............................................................*$$$$$$$$+.................=$$$$$$$-.........@&$$$$$$$$$$$$$$$*@................-%$$$$$$$$$$$%@.-$$$$$$$$........#$$$$$$$$=................$$$$$$$$-.............-%$$$$$$$$$$$$$$$&..................@&$$$$$$$$$$$$$$$%+..........*$$$$$$$$$$$$$$$$*..............",
+"..............................................................%$$$$$$$$@................@$$$$$$$$@........+%$$$$$$$$$$$$$$$$$%@.............@=$$$$$$$$$$$$$$%@*$$$$$$$*........+$$$$$$$$&...............-$$$$$$$$@...........#%$$$$$$$$$$$$$$$$$$%@...............-$$$$$$$$$$$$$$$$$$$*.........%$$$$$$$$$$$$$$$$-..............",
+"..............................................................$$$$$$$$$.................&$$$$$$$*........*$$$$$$$$$$$$$$$$$$$$%@...........#%$$$$$$$$$$$$$$$$&%$$$$$$$&........*$$$$$$$$+..............@$$$$$$$$&...........-$$$$$$$$$$$$$$$$$$$$$%@............@*$$$$$$$$$$$$$$$$$$$$$*........$$$$$$$$$$$$$$$$$+..............",
+".............................................................+$$$$$$$$*................#$$$$$$$$#.......*$$$$$$$$$$$$$$$$$$$$$$=..........+$$$$$$$$$$$$$$$$$$$$$$$$$$$+........=$$$$$$$$@.............@%$$$$$$$%@..........*$$$$$$$$$$$$$$$$$$$$$$$=...........@%$$$$$$$$$$$$$$$$$$$$$$$-......+$$$$$$$$$$$$$$$$$...............",
+".............................................................-$$$$$$$$&...............@%$$$$$$$&.......-$$$$$$$$$$$$$$$$$$$$$$$$+........@$$$$$$$$$$$$$$$$$$$$$$$$$$$$@........$$$$$$$$$............#&$$$$$$$$$#..........&$$$$$$$$$$$$$$$$$$$$$$$$$-..........%$$$$$$$$$$$$$$$$$$$$$$$$$@.....-$$$$$$$$$$$$$$$$=...............",
+".............................................................*$$$$$$$$+..............-%$$$$$$$=.......#$$$$$$$$$%&+@@+*$$$$$$$$$=........%$$$$$$$$$%-#.+&$$$$$$$$$$$$%........+$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$+..........+$$$$$$$$$$&+@@+&$$$$$$$$$$=.........*$$$$$$$$$%-+.#+=$$$$$$$$$$-.....#+++=$$$$$$$$++++#...............",
+".............................................................$$$$$$$$$-++++++++++++*%$$$$$$$$%@.......%$$$$$$$$&.......+$$$$$$$$$#......&$$$$$$$$$&......@%$$$$$$$$$$*........-$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%+..........@$$$$$$$$$=@......@%$$$$$$$$$@.......-$$$$$$$$$&.......+$$$$$$$$$=.........%$$$$$$$*....................",
+"............................................................@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$*@.......&$$$$$$$$+.........&$$$$$$$$-.....@$$$$$$$$$+........+$$$$$$$$$$-........*$$$$$$$$$$$$$$$$$$$$$$$$$$$$=@...........=$$$$$$$$*.........#$$$$$$$$$+......@$$$$$$$$$+.........&$$$$$$$$$.........$$$$$$$$-....................",
+"............................................................+$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$-........@$$$$$$$$*..........@$$$$$$$$*.....=$$$$$$$$-..........=$$$$$$$$$+........%$$$$$$$$$$$$$$$$$$$$$$$$$$$$*...........#$$$$$$$$*...........*$$$$$$$$*......&$$$$$$$$+...........$$$$$$$$$+.......+$$$$$$$$+....................",
+"............................................................&$$$$$$$$$$$$$$$$$$$$$$$$$$$$&@.........&$$$$$$$%............%$$$$$$$*....#$$$$$$$$=...........&$$$$$$$$$........@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$*..........=$$$$$$$%@...........+$$$$$$$$*.....@$$$$$$$$*............*$$$$$$$$+.......&$$$$$$$$.....................",
+"............................................................=$$$$$$$$$$$$$$$$$$$$$$$$$$$&@..........%$$$$$$$&............*$$$$$$$*....&$$$$$$$$@...........+$$$$$$$$=........+$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&........#$$$$$$$$-.............$$$$$$$$*.....&$$$$$$$$@............+$$$$$$$$+.......*$$$$$$$%.....................",
+"............................................................$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&........+$$$$$$$$@............*$$$$$$$*....$$$$$$$$*............+$$$$$$$$*........&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#.......&$$$$$$$%..............$$$$$$$$*.....%$$$$$$$&.............+$$$$$$$$+.......$$$$$$$$*.....................",
+"...........................................................#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$*.......*$$$$$$$$$$$$$$$$$$$$$$$$$$$$$*...+$$$$$$$$#............+$$$$$$$$+........*$$$$$$$$&++++++++++++*$$$$$$$$$$=.......$$$$$$$$-..............$$$$$$$$*....+$$$$$$$$@.............+$$$$$$$$+......@$$$$$$$$-.....................",
+"...........................................................+$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$+......$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$*...*$$$$$$$%.............+$$$$$$$$#........$$$$$$$$$..............@*$$$$$$$$$......+$$$$$$$$@..............$$$$$$$$+....*$$$$$$$=..............+$$$$$$$$.......+$$$$$$$$#.....................",
+"...........................................................*$$$$$$$$+............+=$$$$$$$$$*.....+$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$+...$$$$$$$$&.............+$$$$$$$$........@$$$$$$$$=................%$$$$$$$$+.....&$$$$$$$%..............@$$$$$$$$+....%$$$$$$$&..............-$$$$$$$$.......&$$$$$$$$......................",
+"...........................................................%$$$$$$$$@..............*$$$$$$$$*.....-$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#..#$$$$$$$$+.............*$$$$$$$*........+$$$$$$$$*................-$$$$$$$$+.....=$$$$$$$*..............+$$$$$$$$@...@$$$$$$$$+..............*$$$$$$$=.......*$$$$$$$=......................",
+"...........................................................$$$$$$$$$...............@$$$$$$$$*.....*$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$...+$$$$$$$$#.............=$$$$$$$&........*$$$$$$$$+................+$$$$$$$$+.....$$$$$$$$&..............&$$$$$$$%....+$$$$$$$$#..............%$$$$$$$&.......$$$$$$$$*......................",
+"..........................................................+$$$$$$$$*................$$$$$$$$&.....=$$$$$$$$*********************&...-$$$$$$$$.............@$$$$$$$$+........=$$$$$$$$#................+$$$$$$$$+.....$$$$$$$$+..............=$$$$$$$*....+$$$$$$$$..............@$$$$$$$$+......@$$$$$$$$+......................",
+"..........................................................-$$$$$$$$&...............#$$$$$$$$+.....$$$$$$$$%.........................*$$$$$$$$.............-$$$$$$$$@........$$$$$$$$$.................*$$$$$$$$.....+$$$$$$$$+.............@$$$$$$$$+....*$$$$$$$$..............-$$$$$$$$.......+$$$$$$$$@......................",
+"..........................................................*$$$$$$$$+...............-$$$$$$$$+.....$$$$$$$$*.........................*$$$$$$$$.............=$$$$$$$%........#$$$$$$$$=................@$$$$$$$$=.....+$$$$$$$$+.............&$$$$$$$$.....*$$$$$$$$..............%$$$$$$$*.......&$$$$$$$$.......................",
+"..........................................................$$$$$$$$$................*$$$$$$$$......$$$$$$$$*.........................*$$$$$$$$............#$$$$$$$$*........-$$$$$$$$*................&$$$$$$$$-.....+$$$$$$$$+............@%$$$$$$$&.....*$$$$$$$$.............+$$$$$$$$#.......*$$$$$$$*.......................",
+".........................................................@$$$$$$$$%................$$$$$$$$$......$$$$$$$$*.........................*$$$$$$$$+...........%$$$$$$$$-........*$$$$$$$$+...............+$$$$$$$$$@.....+$$$$$$$$*............&$$$$$$$$@.....*$$$$$$$$+............%$$$$$$$=........$$$$$$$$&.......................",
+".........................................................+$$$$$$$$*...............#$$$$$$$$*......%$$$$$$$$...........@********@....&$$$$$$$$&..........*$$$$$$$$$+........%$$$$$$$$#..............+$$$$$$$$$&......+$$$$$$$$%...........+$$$$$$$$*......*$$$$$$$$&...........*$$$$$$$$+.......#$$$$$$$$+.......................",
+".........................................................&$$$$$$$$-...............&$$$$$$$$&......*$$$$$$$$-..........*$$$$$$$=.....+$$$$$$$$%@........+$$$$$$$$$$.........$$$$$$$$$............@+=$$$$$$$$$%@.......$$$$$$$$$-.........+$$$$$$$$$@......+$$$$$$$$$@.........*$$$$$$$$=........+$$$$$$$$........................",
+".........................................................=$$$$$$$$+...............*$$$$$$$$+......+$$$$$$$$$+.......@*$$$$$$$$@.....#$$$$$$$$$*.......*$$$$$$$$$$=........+$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$+........%$$$$$$$$$+.......-$$$$$$$$$-.......#$$$$$$$$$%@......@*$$$$$$$$$@........*$$$$$$$=........................",
+".........................................................$$$$$$$$$................$$$$$$$$$#.......$$$$$$$$$$&#...#&$$$$$$$$$-.......%$$$$$$$$$=#..@-%$$$$$$$$$$$*........&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&.........&$$$$$$$$$$&#...+=$$$$$$$$$=.........%$$$$$$$$$%-@..@-%$$$$$$$$$-.........=$$$$$$$%@.......................",
+"........................................................#$$$$$$$$=...............@$$$$$$$$$........&$$$$$$$$$$$$$$$$$$$$$$$$*........&$$$$$$$$$$$$$$$$$$$$$$$$$$$+........*$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$*..........@$$$$$$$$$$$$$$$$$$$$$$$$$%@.........-$$$$$$$$$$$$$$$$$$$$$$$$$*..........$$$$$$$$$$***....................",
+"........................................................+$$$$$$$$*...............+$$$$$$$$$.........%$$$$$$$$$$$$$$$$$$$$$$*.........@$$$$$$$$$$$$$$$$$$$$$$$$$$$#........$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$-............&$$$$$$$$$$$$$$$$$$$$$$$%@...........%$$$$$$$$$$$$$$$$$$$$$$$*...........$$$$$$$$$$$$%....................",
+"........................................................*$$$$$$$$+...............+$$$$$$$$$@........@$$$$$$$$$$$$$$$$$$$$$*...........-$$$$$$$$$$$$$$$$$*$$$$$$$$........@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%#..............*$$$$$$$$$$$$$$$$$$$$$=@............@%$$$$$$$$$$$$$$$$$$$$$&............$$$$$$$$$$$$*....................",
+"........................................................%$$$$$$$$#...............+$$$$$$$$$*.........#%$$$$$$$$$$$$$$$$$$+.............*$$$$$$$$$$$$$$$+*$$$$$$$*........+$$$$$$$$$$$$$$$$$$$$$$$$$$$%-................@=$$$$$$$$$$$$$$$$$$$&...............+%$$$$$$$$$$$$$$$$$$%+.............*$$$$$$$$$$$-....................",
+"........................................................$$$$$$$$$................@$$$$$$$$$=..........@=$$$$$$$$$$$$$$$&@...............*$$$$$$$$$$$$%@.%$$$$$$$&........&$$$$$$$$$$$$$$$$$$$$$$$$=&#....................&$$$$$$$$$$$$$$$$=#.................@=$$$$$$$$$$$$$$$$&@..............#$$$$$$$$$$$+....................",
+".......................................................@+++++++++.................+++++++++#............#=$$$$$$$$$$%&@..................+%$$$$$$$$%-...++++++++@........#++++++++++++++++++++++@.........................@&%$$$$$$$$$$%&#.....................#*$$$$$$$$$$$=-@.................+%$$$$$$$$$.....................",
+"..........................................................................................................@+&****&+@.......................#-****-#..........................................................................#+******+#...........................+-*****&+@......................+&*****+#.....................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................"};
diff --git a/ecos/packages/hal/arm/sa11x0/cerfpda/current/misc/redboot_RAM.ecm b/ecos/packages/hal/arm/sa11x0/cerfpda/current/misc/redboot_RAM.ecm
new file mode 100644
index 0000000..2e7b66b
--- /dev/null
+++ b/ecos/packages/hal/arm/sa11x0/cerfpda/current/misc/redboot_RAM.ecm
@@ -0,0 +1,75 @@
+cdl_savefile_version 1;
+cdl_savefile_command cdl_savefile_version {};
+cdl_savefile_command cdl_savefile_command {};
+cdl_savefile_command cdl_configuration { description hardware template package };
+cdl_savefile_command cdl_package { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_component { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_option { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_interface { value_source user_value wizard_value inferred_value };
+
+cdl_configuration eCos {
+ description "" ;
+ hardware cerfpda ;
+ template redboot ;
+ package -hardware CYGPKG_HAL_ARM current ;
+ package -hardware CYGPKG_HAL_ARM_SA11X0 current ;
+ package -hardware CYGPKG_HAL_ARM_SA11X0_CERFPDA current ;
+ package -hardware CYGPKG_IO_SERIAL_ARM_SA11X0 current ;
+ package -hardware CYGPKG_DEVS_ETH_ARM_CERFPDA current ;
+ package -hardware CYGPKG_DEVS_FLASH_CERFPDA current ;
+ package -template CYGPKG_HAL current ;
+ package -template CYGPKG_INFRA current ;
+ package -template CYGPKG_REDBOOT current ;
+ package CYGPKG_IO_FLASH current ;
+ package CYGPKG_IO_ETH_DRIVERS current ;
+};
+
+cdl_option CYGBLD_BUILD_GDB_STUBS {
+ user_value 0
+};
+
+cdl_option CYGDBG_HAL_COMMON_INTERRUPTS_SAVE_MINIMUM_CONTEXT {
+ user_value 0
+};
+
+cdl_option CYGDBG_HAL_COMMON_CONTEXT_SAVE_MINIMUM {
+ inferred_value 0
+};
+
+cdl_option CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS {
+ inferred_value 1
+};
+
+cdl_option CYGDBG_HAL_DEBUG_GDB_BREAK_SUPPORT {
+ inferred_value 1
+};
+
+cdl_option CYGDBG_HAL_DEBUG_GDB_CTRLC_SUPPORT {
+ inferred_value 0
+};
+
+cdl_option CYGSEM_HAL_USE_ROM_MONITOR {
+ inferred_value 0 0
+};
+
+cdl_component CYG_HAL_STARTUP {
+ user_value RAM
+};
+
+cdl_component CYGBLD_BUILD_REDBOOT {
+ user_value 1
+};
+
+cdl_component CYGPKG_REDBOOT_NETWORKING {
+ user_value 1
+};
+
+cdl_component CYGSEM_REDBOOT_FLASH_CONFIG {
+ user_value 1
+};
+
+cdl_option CYGSEM_REDBOOT_BSP_SYSCALLS {
+ inferred_value 1
+};
+
+
diff --git a/ecos/packages/hal/arm/sa11x0/cerfpda/current/misc/redboot_ROM.ecm b/ecos/packages/hal/arm/sa11x0/cerfpda/current/misc/redboot_ROM.ecm
new file mode 100644
index 0000000..f18816d
--- /dev/null
+++ b/ecos/packages/hal/arm/sa11x0/cerfpda/current/misc/redboot_ROM.ecm
@@ -0,0 +1,75 @@
+cdl_savefile_version 1;
+cdl_savefile_command cdl_savefile_version {};
+cdl_savefile_command cdl_savefile_command {};
+cdl_savefile_command cdl_configuration { description hardware template package };
+cdl_savefile_command cdl_package { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_component { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_option { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_interface { value_source user_value wizard_value inferred_value };
+
+cdl_configuration eCos {
+ description "" ;
+ hardware cerfpda ;
+ template redboot ;
+ package -hardware CYGPKG_HAL_ARM current ;
+ package -hardware CYGPKG_HAL_ARM_SA11X0 current ;
+ package -hardware CYGPKG_HAL_ARM_SA11X0_CERFPDA current ;
+ package -hardware CYGPKG_IO_SERIAL_ARM_SA11X0 current ;
+ package -hardware CYGPKG_DEVS_ETH_ARM_CERFPDA current ;
+ package -hardware CYGPKG_DEVS_FLASH_CERFPDA current ;
+
+ package -template CYGPKG_HAL current ;
+ package -template CYGPKG_INFRA current ;
+ package -template CYGPKG_REDBOOT current ;
+ package CYGPKG_IO_FLASH current ;
+ package CYGPKG_IO_ETH_DRIVERS current ;
+};
+
+cdl_option CYGBLD_BUILD_GDB_STUBS {
+ user_value 0
+};
+
+cdl_option CYGDBG_HAL_COMMON_INTERRUPTS_SAVE_MINIMUM_CONTEXT {
+ user_value 0
+};
+
+cdl_option CYGDBG_HAL_COMMON_CONTEXT_SAVE_MINIMUM {
+ inferred_value 0
+};
+
+cdl_option CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS {
+ inferred_value 1
+};
+
+cdl_option CYGDBG_HAL_DEBUG_GDB_BREAK_SUPPORT {
+ inferred_value 1
+};
+
+cdl_option CYGDBG_HAL_DEBUG_GDB_CTRLC_SUPPORT {
+ inferred_value 0
+};
+
+cdl_option CYGSEM_HAL_ROM_MONITOR {
+ user_value 1
+};
+
+cdl_option CYGSEM_HAL_USE_ROM_MONITOR {
+ inferred_value 0 0
+};
+
+cdl_component CYG_HAL_STARTUP {
+ user_value ROM
+};
+
+cdl_component CYGBLD_BUILD_REDBOOT {
+ user_value 1
+};
+
+cdl_component CYGPKG_REDBOOT_NETWORKING {
+ user_value 1
+};
+
+cdl_component CYGSEM_REDBOOT_FLASH_CONFIG {
+ user_value 1
+};
+
diff --git a/ecos/packages/hal/arm/sa11x0/cerfpda/current/misc/redhat.xpm b/ecos/packages/hal/arm/sa11x0/cerfpda/current/misc/redhat.xpm
new file mode 100644
index 0000000..6f09fec
--- /dev/null
+++ b/ecos/packages/hal/arm/sa11x0/cerfpda/current/misc/redhat.xpm
@@ -0,0 +1,254 @@
+/* XPM */
+static char * redhat_xpm[] = {
+"320 240 11 1",
+" c None",
+". c #FFFFFF",
+"+ c #FFAAAA",
+"@ c #FFE3E3",
+"# c #FFC7C7",
+"$ c #FF0000",
+"% c #FF1D1D",
+"& c #FF7272",
+"* c #FF3939",
+"= c #FF5555",
+"- c #FF8E8E",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"......................+++++++++++++++++++++++++@......................................................................#+++++++#........................#++++++++@................@++++++++#.....................................................................................................................................",
+"......................$$$$$$$$$$$$$$$$$$$$$$$$$$%&@...................................................................$$$$$$$$&........................*$$$$$$$$#................&$$$$$$$$&.....................................................................................................................................",
+".....................+$$$$$$$$$$$$$$$$$$$$$$$$$$$$$+.................................................................@$$$$$$$$+........................$$$$$$$$$.................=$$$$$$$$+.....................................................................................................................................",
+".....................&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$+................................................................+$$$$$$$$........................#$$$$$$$$*.................$$$$$$$$$@.....................................................................................................................................",
+".....................=$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$+...............................................................&$$$$$$$%........................-$$$$$$$$=................@$$$$$$$$$..........................................$$$$$$$$&...................................................................................",
+".....................$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%...............................................................=$$$$$$$=........................=$$$$$$$$+................+$$$$$$$$=.........................................+$$$$$$$$+...................................................................................",
+"....................@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$-..............................................................$$$$$$$$-........................%$$$$$$$$@................=$$$$$$$$&.........................................+$$$$$$$$@...................................................................................",
+"....................+$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$=.............................................................#$$$$$$$$#........................$$$$$$$$$.................*$$$$$$$$+.........................................=$$$$$$$$....................................................................................",
+"....................=$$$$$$$$+............+&$$$$$$$$$$$.............................................................+$$$$$$$$........................+$$$$$$$$=.................$$$$$$$$$..........................................*$$$$$$$=....................................................................................",
+"....................*$$$$$$$$#..............@%$$$$$$$$$.............................................................=$$$$$$$*........................&$$$$$$$$&................#$$$$$$$$%..........................................$$$$$$$$-....................................................................................",
+"....................$$$$$$$$$................#$$$$$$$$$.............................................................*$$$$$$$=........................=$$$$$$$$+................-$$$$$$$$=.........................................#$$$$$$$$+....................................................................................",
+"...................#$$$$$$$$=.................*$$$$$$$%...............#++==-+#.........................@++==++......$$$$$$$$+........................$$$$$$$$$.................=$$$$$$$$-..............@++-===-++.................+$$$$$$$$.....................................................................................",
+"...................-$$$$$$$$&.................=$$$$$$$=............+=$$$$$$$$$$=#....................-*$$$$$$$$&@..+$$$$$$$$@.......................@$$$$$$$$%.................%$$$$$$$$#...........+=$$$$$$$$$$$$*-..........#+++*$$$$$$$$++++@................................................................................",
+"...................=$$$$$$$$+.................*$$$$$$$-.........@&$$$$$$$$$$$$$$$=@................-%$$$$$$$$$$$%@.-$$$$$$$$........................+$$$$$$$$=.................$$$$$$$$$..........-%$$$$$$$$$$$$$$$$%+........$$$$$$$$$$$$$$$$$+................................................................................",
+"...................%$$$$$$$$@................@$$$$$$$$@........+%$$$$$$$$$$$$$$$$$%@.............@*$$$$$$$$$$$$$$%@=$$$$$$$=........................=$$$$$$$$-................+$$$$$$$$*........@*$$$$$$$$$$$$$$$$$$$$+......#$$$$$$$$$$$$$$$$$@................................................................................",
+"...................$$$$$$$$$.................&$$$$$$$=........=$$$$$$$$$$$$$$$$$$$$%@...........#%$$$$$$$$$$$$$$$$&%$$$$$$$&........................*$$$$$$$$#................&$$$$$$$$=.......@%$$$$$$$$$$$$$$$$$$$$$$@.....+$$$$$$$$$$$$$$$$$.................................................................................",
+"..................+$$$$$$$$=................#$$$$$$$$#.......=$$$$$$$$$$$$$$$$$$$$$$*..........+$$$$$$$$$$$$$$$$$$$$$$$$$$$+........................$$$$$$$$$.................=$$$$$$$$+.......%$$$$$$$$$$$$$$$$$$$$$$$&.....=$$$$$$$$$$$$$$$$=.................................................................................",
+"..................-$$$$$$$$&...............@%$$$$$$$&.......-$$$$$$$$$$$$$$$$$$$$$$$$+........@$$$$$$$$$$$$$$$$$$$$$$$$$$$$@.......................#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@......&$$$$$$$$$$$$$$$$$$$$$$$$%.....*$$$$$$$$$$$$$$$$-.................................................................................",
+"..................=$$$$$$$$+..............-%$$$$$$$*.......#$$$$$$$$$%&+@@+=$$$$$$$$$*........%$$$$$$$$$%-#.+&$$$$$$$$$$$$%........................-$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$......@$$$$$$$$$*++..#+*$$$$$$$$$.....++++$$$$$$$$*++++@.................................................................................",
+"..................$$$$$$$$$-++++++++++++=%$$$$$$$$%@.......%$$$$$$$$&.......+$$$$$$$$$#......&$$$$$$$$$&......@%$$$$$$$$$$=........................=$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$=......&$$$$$$$$+........%$$$$$$$$........#$$$$$$$$+......................................................................................",
+".................@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$=@.......&$$$$$$$$+.........&$$$$$$$$-.....@$$$$$$$$$+........+$$$$$$$$$$-........................%$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&......%$$$$$$$+.........=$$$$$$$*........+$$$$$$$$@......................................................................................",
+".................+$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$-........@$$$$$$$$=..........@$$$$$$$$=.....*$$$$$$$$-..........*$$$$$$$$$+........................$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$+.....#$$$$$$$*..........*$$$$$$$=........=$$$$$$$$.......................................................................................",
+".................&$$$$$$$$$$$$$$$$$$$$$$$$$$$$&@.........&$$$$$$$%............%$$$$$$$=....#$$$$$$$$*...........&$$$$$$$$$........................+$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$......#=======+.........@$$$$$$$$+........%$$$$$$$=.......................................................................................",
+".................*$$$$$$$$$$$$$$$$$$$$$$$$$$$&@..........%$$$$$$$&............=$$$$$$$=....&$$$$$$$$@...........+$$$$$$$$*........................-$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%.......................@%$$$$$$$$#........$$$$$$$$&.......................................................................................",
+".................$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&........+$$$$$$$$@............=$$$$$$$=....$$$$$$$$=............+$$$$$$$$=........................=$$$$$$$$&++++++++++++++++&$$$$$$$$=....................++=$$$$$$$$$$........+$$$$$$$$+.......................................................................................",
+"................#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$=.......=$$$$$$$$$$$$$$$$$$$$$$$$$$$$$=...+$$$$$$$$#............+$$$$$$$$+........................$$$$$$$$$.................=$$$$$$$$-.............@+-=*$$$$$$$$$$$$$$*........-$$$$$$$$@.......................................................................................",
+"................+$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$+......$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$=...=$$$$$$$%.............+$$$$$$$$#.......................@$$$$$$$$*.................%$$$$$$$$#..........#=%$$$$$$$$$$$$$$$$$$$=........=$$$$$$$%........................................................................................",
+"................=$$$$$$$$+............+*$$$$$$$$$=.....+$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$+...$$$$$$$$&.............+$$$$$$$$........................+$$$$$$$$=.................$$$$$$$$$.........+%$$$$$$$$$$$$$$$$$$$$$$+........%$$$$$$$=........................................................................................",
+"................%$$$$$$$$@..............=$$$$$$$$=.....-$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#..#$$$$$$$$+.............=$$$$$$$=........................&$$$$$$$$+................+$$$$$$$$*.......@=$$$$$$$$$$$$$$$$$$$$$$$$@........$$$$$$$$-........................................................................................",
+"................$$$$$$$$$...............@$$$$$$$$=.....=$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$...+$$$$$$$$#.............*$$$$$$$&........................*$$$$$$$$#................-$$$$$$$$=......@%$$$$$$$$$$$$$$*&&$$$$$$$$........+$$$$$$$$+........................................................................................",
+"...............+$$$$$$$$=................$$$$$$$$&.....*$$$$$$$$=====================&...-$$$$$$$$.............@$$$$$$$$+........................$$$$$$$$$.................=$$$$$$$$+......%$$$$$$$$$%=-+@...&$$$$$$$=........-$$$$$$$$.........................................................................................",
+"...............-$$$$$$$$&...............#$$$$$$$$+.....$$$$$$$$%.........................=$$$$$$$$.............-$$$$$$$$@.......................#$$$$$$$$*.................%$$$$$$$$@.....=$$$$$$$$*#........*$$$$$$$&........=$$$$$$$*.........................................................................................",
+"...............=$$$$$$$$+...............-$$$$$$$$+.....$$$$$$$$=.........................=$$$$$$$$.............*$$$$$$$%........................+$$$$$$$$&................@$$$$$$$$$.....#$$$$$$$$=.........@$$$$$$$$+........%$$$$$$$=.........................................................................................",
+"...............$$$$$$$$$................=$$$$$$$$......$$$$$$$$=.........................=$$$$$$$$............#$$$$$$$$=........................=$$$$$$$$+................+$$$$$$$$=.....*$$$$$$$*..........-$$$$$$$$@........$$$$$$$$+.........................................................................................",
+"..............@$$$$$$$$%................$$$$$$$$$......$$$$$$$$=.........................=$$$$$$$$+...........%$$$$$$$$-........................%$$$$$$$$@................&$$$$$$$$&....@$$$$$$$$#..........%$$$$$$$%........+$$$$$$$$#.........................................................................................",
+"..............+$$$$$$$$=...............#$$$$$$$$=......%$$$$$$$$...........@========@....&$$$$$$$$&..........=$$$$$$$$$+........................$$$$$$$$$.................=$$$$$$$$+....+$$$$$$$$..........-$$$$$$$$=........&$$$$$$$$..........................................................................................",
+"..............&$$$$$$$$-...............&$$$$$$$$&......=$$$$$$$$-..........=$$$$$$$*.....+$$$$$$$$%@........+$$$$$$$$$$........................+$$$$$$$$=.................$$$$$$$$$.....=$$$$$$$$.........@$$$$$$$$$-........=$$$$$$$=..........................................................................................",
+"..............*$$$$$$$$+...............=$$$$$$$$+......+$$$$$$$$$+.......@=$$$$$$$$@.....#$$$$$$$$$=.......=$$$$$$$$$$*........................-$$$$$$$$&................@$$$$$$$$%.....=$$$$$$$$-.......#%$$$$$$$$$+........$$$$$$$$-..........................................................................................",
+"..............$$$$$$$$$................$$$$$$$$$#.......$$$$$$$$$$&#...#&$$$$$$$$$-.......%$$$$$$$$$*#..@-%$$$$$$$$$$$=........................=$$$$$$$$+................+$$$$$$$$=.....=$$$$$$$$$-@...+&$$$$$$$$$$$........@$$$$$$$$=..........................................................................................",
+".............#$$$$$$$$*...............@$$$$$$$$$........&$$$$$$$$$$$$$$$$$$$$$$$$=........&$$$$$$$$$$$$$$$$$$$$$$$$$$$+........................$$$$$$$$$.................=$$$$$$$$-.....-$$$$$$$$$$$$$$$$$$$$$$$$$$%........+$$$$$$$$$%==-......................................................................................",
+".............+$$$$$$$$=...............+$$$$$$$$$.........%$$$$$$$$$$$$$$$$$$$$$$=.........@$$$$$$$$$$$$$$$$$$$$$$$$$$$#.......................@$$$$$$$$%.................*$$$$$$$$+.....#$$$$$$$$$$$$$$$$$$$$$$$$$$=........+$$$$$$$$$$$$&......................................................................................",
+".............=$$$$$$$$+...............+$$$$$$$$$@........@$$$$$$$$$$$$$$$$$$$$$=...........-$$$$$$$$$$$$$$$$$=$$$$$$$$........................+$$$$$$$$=.................$$$$$$$$$.......*$$$$$$$$$$$$$$$$*%$$$$$$$*........+$$$$$$$$$$$$+......................................................................................",
+".............%$$$$$$$$#...............+$$$$$$$$$=.........#%$$$$$$$$$$$$$$$$$$+.............=$$$$$$$$$$$$$$$+=$$$$$$$=........................&$$$$$$$$-................#$$$$$$$$*.......@$$$$$$$$$$$$$$$=.$$$$$$$$$+........$$$$$$$$$$$$@......................................................................................",
+".............$$$$$$$$$................@$$$$$$$$$*..........@*$$$$$$$$$$$$$$$&@...............=$$$$$$$$$$$$%@.%$$$$$$$&........................*$$$$$$$$+................-$$$$$$$$=........+$$$$$$$$$$$$%+..%$$$$$$$$*........&$$$$$$$$$$$.......................................................................................",
+"............@+++++++++.................+++++++++#............#*$$$$$$$$$$%&@..................+%$$$$$$$$%-...++++++++@........................+++++++++.................#++++++++@.........@*$$$$$$$$%&@...#++++++++#.........&$$$$$$$$$=.......................................................................................",
+"...............................................................@+&====&+@.......................#-====-#.....................................................................................@+====&+..........................@+=====&+@.......................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+".......................................................................................+++++++++++++++++++++++++@......................................................................#+++++++#........................#++++++++@................@++++++++#....................................................................",
+".......................................................................................$$$$$$$$$$$$$$$$$$$$$$$$$$%&@...................................................................$$$$$$$$&........................*$$$$$$$$#................&$$$$$$$$&....................................................................",
+"......................................................................................+$$$$$$$$$$$$$$$$$$$$$$$$$$$$$+.................................................................@$$$$$$$$+........................$$$$$$$$$.................=$$$$$$$$+....................................................................",
+"......................................................................................&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$+................................................................+$$$$$$$$........................#$$$$$$$$*.................$$$$$$$$$@....................................................................",
+"......................................................................................=$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$+...............................................................&$$$$$$$%........................-$$$$$$$$=................@$$$$$$$$$..........................................$$$$$$$$&..................",
+"......................................................................................$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%...............................................................=$$$$$$$=........................=$$$$$$$$+................+$$$$$$$$=.........................................+$$$$$$$$+..................",
+".....................................................................................@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$-..............................................................$$$$$$$$-........................%$$$$$$$$@................=$$$$$$$$&.........................................+$$$$$$$$@..................",
+".....................................................................................+$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$=.............................................................#$$$$$$$$#........................$$$$$$$$$.................*$$$$$$$$+.........................................=$$$$$$$$...................",
+".....................................................................................=$$$$$$$$+............+&$$$$$$$$$$$.............................................................+$$$$$$$$........................+$$$$$$$$=.................$$$$$$$$$..........................................*$$$$$$$=...................",
+".....................................................................................*$$$$$$$$#..............@%$$$$$$$$$.............................................................=$$$$$$$*........................&$$$$$$$$&................#$$$$$$$$%..........................................$$$$$$$$-...................",
+".....................................................................................$$$$$$$$$................#$$$$$$$$$.............................................................*$$$$$$$=........................=$$$$$$$$+................-$$$$$$$$=.........................................#$$$$$$$$+...................",
+"....................................................................................#$$$$$$$$=.................*$$$$$$$%...............#++==-+#.........................@++==++......$$$$$$$$+........................$$$$$$$$$.................=$$$$$$$$-..............@++-===-++.................+$$$$$$$$....................",
+"....................................................................................-$$$$$$$$&.................=$$$$$$$=............+=$$$$$$$$$$=#....................-*$$$$$$$$&@..+$$$$$$$$@.......................@$$$$$$$$%.................%$$$$$$$$#...........+=$$$$$$$$$$$$*-..........#+++*$$$$$$$$++++@...............",
+"....................................................................................=$$$$$$$$+.................*$$$$$$$-.........@&$$$$$$$$$$$$$$$=@................-%$$$$$$$$$$$%@.-$$$$$$$$........................+$$$$$$$$=.................$$$$$$$$$..........-%$$$$$$$$$$$$$$$$%+........$$$$$$$$$$$$$$$$$+...............",
+"....................................................................................%$$$$$$$$@................@$$$$$$$$@........+%$$$$$$$$$$$$$$$$$%@.............@*$$$$$$$$$$$$$$%@=$$$$$$$=........................=$$$$$$$$-................+$$$$$$$$*........@*$$$$$$$$$$$$$$$$$$$$+......#$$$$$$$$$$$$$$$$$@...............",
+"....................................................................................$$$$$$$$$.................&$$$$$$$=........=$$$$$$$$$$$$$$$$$$$$%@...........#%$$$$$$$$$$$$$$$$&%$$$$$$$&........................*$$$$$$$$#................&$$$$$$$$=.......@%$$$$$$$$$$$$$$$$$$$$$$@.....+$$$$$$$$$$$$$$$$$................",
+"...................................................................................+$$$$$$$$=................#$$$$$$$$#.......=$$$$$$$$$$$$$$$$$$$$$$*..........+$$$$$$$$$$$$$$$$$$$$$$$$$$$+........................$$$$$$$$$.................=$$$$$$$$+.......%$$$$$$$$$$$$$$$$$$$$$$$&.....=$$$$$$$$$$$$$$$$=................",
+"...................................................................................-$$$$$$$$&...............@%$$$$$$$&.......-$$$$$$$$$$$$$$$$$$$$$$$$+........@$$$$$$$$$$$$$$$$$$$$$$$$$$$$@.......................#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@......&$$$$$$$$$$$$$$$$$$$$$$$$%.....*$$$$$$$$$$$$$$$$-................",
+"...................................................................................=$$$$$$$$+..............-%$$$$$$$*.......#$$$$$$$$$%&+@@+=$$$$$$$$$*........%$$$$$$$$$%-#.+&$$$$$$$$$$$$%........................-$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$......@$$$$$$$$$*++..#+*$$$$$$$$$.....++++$$$$$$$$*++++@................",
+"...................................................................................$$$$$$$$$-++++++++++++=%$$$$$$$$%@.......%$$$$$$$$&.......+$$$$$$$$$#......&$$$$$$$$$&......@%$$$$$$$$$$=........................=$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$=......&$$$$$$$$+........%$$$$$$$$........#$$$$$$$$+.....................",
+"..................................................................................@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$=@.......&$$$$$$$$+.........&$$$$$$$$-.....@$$$$$$$$$+........+$$$$$$$$$$-........................%$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&......%$$$$$$$+.........=$$$$$$$*........+$$$$$$$$@.....................",
+"..................................................................................+$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$-........@$$$$$$$$=..........@$$$$$$$$=.....*$$$$$$$$-..........*$$$$$$$$$+........................$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$+.....#$$$$$$$*..........*$$$$$$$=........=$$$$$$$$......................",
+"..................................................................................&$$$$$$$$$$$$$$$$$$$$$$$$$$$$&@.........&$$$$$$$%............%$$$$$$$=....#$$$$$$$$*...........&$$$$$$$$$........................+$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$......#=======+.........@$$$$$$$$+........%$$$$$$$=......................",
+"..................................................................................*$$$$$$$$$$$$$$$$$$$$$$$$$$$&@..........%$$$$$$$&............=$$$$$$$=....&$$$$$$$$@...........+$$$$$$$$*........................-$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%.......................@%$$$$$$$$#........$$$$$$$$&......................",
+"..................................................................................$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&........+$$$$$$$$@............=$$$$$$$=....$$$$$$$$=............+$$$$$$$$=........................=$$$$$$$$&++++++++++++++++&$$$$$$$$=....................++=$$$$$$$$$$........+$$$$$$$$+......................",
+".................................................................................#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$=.......=$$$$$$$$$$$$$$$$$$$$$$$$$$$$$=...+$$$$$$$$#............+$$$$$$$$+........................$$$$$$$$$.................=$$$$$$$$-.............@+-=*$$$$$$$$$$$$$$*........-$$$$$$$$@......................",
+".................................................................................+$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$+......$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$=...=$$$$$$$%.............+$$$$$$$$#.......................@$$$$$$$$*.................%$$$$$$$$#..........#=%$$$$$$$$$$$$$$$$$$$=........=$$$$$$$%.......................",
+".................................................................................=$$$$$$$$+............+*$$$$$$$$$=.....+$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$+...$$$$$$$$&.............+$$$$$$$$........................+$$$$$$$$=.................$$$$$$$$$.........+%$$$$$$$$$$$$$$$$$$$$$$+........%$$$$$$$=.......................",
+".................................................................................%$$$$$$$$@..............=$$$$$$$$=.....-$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#..#$$$$$$$$+.............=$$$$$$$=........................&$$$$$$$$+................+$$$$$$$$*.......@=$$$$$$$$$$$$$$$$$$$$$$$$@........$$$$$$$$-.......................",
+".................................................................................$$$$$$$$$...............@$$$$$$$$=.....=$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$...+$$$$$$$$#.............*$$$$$$$&........................*$$$$$$$$#................-$$$$$$$$=......@%$$$$$$$$$$$$$$*&&$$$$$$$$........+$$$$$$$$+.......................",
+"................................................................................+$$$$$$$$=................$$$$$$$$&.....*$$$$$$$$=====================&...-$$$$$$$$.............@$$$$$$$$+........................$$$$$$$$$.................=$$$$$$$$+......%$$$$$$$$$%=-+@...&$$$$$$$=........-$$$$$$$$........................",
+"................................................................................-$$$$$$$$&...............#$$$$$$$$+.....$$$$$$$$%.........................=$$$$$$$$.............-$$$$$$$$@.......................#$$$$$$$$*.................%$$$$$$$$@.....=$$$$$$$$*#........*$$$$$$$&........=$$$$$$$*........................",
+"................................................................................=$$$$$$$$+...............-$$$$$$$$+.....$$$$$$$$=.........................=$$$$$$$$.............*$$$$$$$%........................+$$$$$$$$&................@$$$$$$$$$.....#$$$$$$$$=.........@$$$$$$$$+........%$$$$$$$=........................",
+"................................................................................$$$$$$$$$................=$$$$$$$$......$$$$$$$$=.........................=$$$$$$$$............#$$$$$$$$=........................=$$$$$$$$+................+$$$$$$$$=.....*$$$$$$$*..........-$$$$$$$$@........$$$$$$$$+........................",
+"...............................................................................@$$$$$$$$%................$$$$$$$$$......$$$$$$$$=.........................=$$$$$$$$+...........%$$$$$$$$-........................%$$$$$$$$@................&$$$$$$$$&....@$$$$$$$$#..........%$$$$$$$%........+$$$$$$$$#........................",
+"...............................................................................+$$$$$$$$=...............#$$$$$$$$=......%$$$$$$$$...........@========@....&$$$$$$$$&..........=$$$$$$$$$+........................$$$$$$$$$.................=$$$$$$$$+....+$$$$$$$$..........-$$$$$$$$=........&$$$$$$$$.........................",
+"...............................................................................&$$$$$$$$-...............&$$$$$$$$&......=$$$$$$$$-..........=$$$$$$$*.....+$$$$$$$$%@........+$$$$$$$$$$........................+$$$$$$$$=.................$$$$$$$$$.....=$$$$$$$$.........@$$$$$$$$$-........=$$$$$$$=.........................",
+"...............................................................................*$$$$$$$$+...............=$$$$$$$$+......+$$$$$$$$$+.......@=$$$$$$$$@.....#$$$$$$$$$=.......=$$$$$$$$$$*........................-$$$$$$$$&................@$$$$$$$$%.....=$$$$$$$$-.......#%$$$$$$$$$+........$$$$$$$$-.........................",
+"...............................................................................$$$$$$$$$................$$$$$$$$$#.......$$$$$$$$$$&#...#&$$$$$$$$$-.......%$$$$$$$$$*#..@-%$$$$$$$$$$$=........................=$$$$$$$$+................+$$$$$$$$=.....=$$$$$$$$$-@...+&$$$$$$$$$$$........@$$$$$$$$=.........................",
+"..............................................................................#$$$$$$$$*...............@$$$$$$$$$........&$$$$$$$$$$$$$$$$$$$$$$$$=........&$$$$$$$$$$$$$$$$$$$$$$$$$$$+........................$$$$$$$$$.................=$$$$$$$$-.....-$$$$$$$$$$$$$$$$$$$$$$$$$$%........+$$$$$$$$$%==-.....................",
+"..............................................................................+$$$$$$$$=...............+$$$$$$$$$.........%$$$$$$$$$$$$$$$$$$$$$$=.........@$$$$$$$$$$$$$$$$$$$$$$$$$$$#.......................@$$$$$$$$%.................*$$$$$$$$+.....#$$$$$$$$$$$$$$$$$$$$$$$$$$=........+$$$$$$$$$$$$&.....................",
+"..............................................................................=$$$$$$$$+...............+$$$$$$$$$@........@$$$$$$$$$$$$$$$$$$$$$=...........-$$$$$$$$$$$$$$$$$=$$$$$$$$........................+$$$$$$$$=.................$$$$$$$$$.......*$$$$$$$$$$$$$$$$*%$$$$$$$*........+$$$$$$$$$$$$+.....................",
+"..............................................................................%$$$$$$$$#...............+$$$$$$$$$=.........#%$$$$$$$$$$$$$$$$$$+.............=$$$$$$$$$$$$$$$+=$$$$$$$=........................&$$$$$$$$-................#$$$$$$$$*.......@$$$$$$$$$$$$$$$=.$$$$$$$$$+........$$$$$$$$$$$$@.....................",
+"..............................................................................$$$$$$$$$................@$$$$$$$$$*..........@*$$$$$$$$$$$$$$$&@...............=$$$$$$$$$$$$%@.%$$$$$$$&........................*$$$$$$$$+................-$$$$$$$$=........+$$$$$$$$$$$$%+..%$$$$$$$$*........&$$$$$$$$$$$......................",
+".............................................................................@+++++++++.................+++++++++#............#*$$$$$$$$$$%&@..................+%$$$$$$$$%-...++++++++@........................+++++++++.................#++++++++@.........@*$$$$$$$$%&@...#++++++++#.........&$$$$$$$$$=......................",
+"................................................................................................................................@+&====&+@.......................#-====-#.....................................................................................@+====&+..........................@+=====&+@......................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"...........................+++++++++++++++++++++++++@......................................................................#+++++++#........................#++++++++@................@++++++++#................................................................................................................................",
+"...........................$$$$$$$$$$$$$$$$$$$$$$$$$$%&@...................................................................$$$$$$$$&........................*$$$$$$$$#................&$$$$$$$$&................................................................................................................................",
+"..........................+$$$$$$$$$$$$$$$$$$$$$$$$$$$$$+.................................................................@$$$$$$$$+........................$$$$$$$$$.................=$$$$$$$$+................................................................................................................................",
+"..........................&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$+................................................................+$$$$$$$$........................#$$$$$$$$*.................$$$$$$$$$@................................................................................................................................",
+"..........................=$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$+...............................................................&$$$$$$$%........................-$$$$$$$$=................@$$$$$$$$$..........................................$$$$$$$$&..............................................................................",
+"..........................$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%...............................................................=$$$$$$$=........................=$$$$$$$$+................+$$$$$$$$=.........................................+$$$$$$$$+..............................................................................",
+".........................@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$-..............................................................$$$$$$$$-........................%$$$$$$$$@................=$$$$$$$$&.........................................+$$$$$$$$@..............................................................................",
+".........................+$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$=.............................................................#$$$$$$$$#........................$$$$$$$$$.................*$$$$$$$$+.........................................=$$$$$$$$...............................................................................",
+".........................=$$$$$$$$+............+&$$$$$$$$$$$.............................................................+$$$$$$$$........................+$$$$$$$$=.................$$$$$$$$$..........................................*$$$$$$$=...............................................................................",
+".........................*$$$$$$$$#..............@%$$$$$$$$$.............................................................=$$$$$$$*........................&$$$$$$$$&................#$$$$$$$$%..........................................$$$$$$$$-...............................................................................",
+".........................$$$$$$$$$................#$$$$$$$$$.............................................................*$$$$$$$=........................=$$$$$$$$+................-$$$$$$$$=.........................................#$$$$$$$$+...............................................................................",
+"........................#$$$$$$$$=.................*$$$$$$$%...............#++==-+#.........................@++==++......$$$$$$$$+........................$$$$$$$$$.................=$$$$$$$$-..............@++-===-++.................+$$$$$$$$................................................................................",
+"........................-$$$$$$$$&.................=$$$$$$$=............+=$$$$$$$$$$=#....................-*$$$$$$$$&@..+$$$$$$$$@.......................@$$$$$$$$%.................%$$$$$$$$#...........+=$$$$$$$$$$$$*-..........#+++*$$$$$$$$++++@...........................................................................",
+"........................=$$$$$$$$+.................*$$$$$$$-.........@&$$$$$$$$$$$$$$$=@................-%$$$$$$$$$$$%@.-$$$$$$$$........................+$$$$$$$$=.................$$$$$$$$$..........-%$$$$$$$$$$$$$$$$%+........$$$$$$$$$$$$$$$$$+...........................................................................",
+"........................%$$$$$$$$@................@$$$$$$$$@........+%$$$$$$$$$$$$$$$$$%@.............@*$$$$$$$$$$$$$$%@=$$$$$$$=........................=$$$$$$$$-................+$$$$$$$$*........@*$$$$$$$$$$$$$$$$$$$$+......#$$$$$$$$$$$$$$$$$@...........................................................................",
+"........................$$$$$$$$$.................&$$$$$$$=........=$$$$$$$$$$$$$$$$$$$$%@...........#%$$$$$$$$$$$$$$$$&%$$$$$$$&........................*$$$$$$$$#................&$$$$$$$$=.......@%$$$$$$$$$$$$$$$$$$$$$$@.....+$$$$$$$$$$$$$$$$$............................................................................",
+".......................+$$$$$$$$=................#$$$$$$$$#.......=$$$$$$$$$$$$$$$$$$$$$$*..........+$$$$$$$$$$$$$$$$$$$$$$$$$$$+........................$$$$$$$$$.................=$$$$$$$$+.......%$$$$$$$$$$$$$$$$$$$$$$$&.....=$$$$$$$$$$$$$$$$=............................................................................",
+".......................-$$$$$$$$&...............@%$$$$$$$&.......-$$$$$$$$$$$$$$$$$$$$$$$$+........@$$$$$$$$$$$$$$$$$$$$$$$$$$$$@.......................#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@......&$$$$$$$$$$$$$$$$$$$$$$$$%.....*$$$$$$$$$$$$$$$$-............................................................................",
+".......................=$$$$$$$$+..............-%$$$$$$$*.......#$$$$$$$$$%&+@@+=$$$$$$$$$*........%$$$$$$$$$%-#.+&$$$$$$$$$$$$%........................-$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$......@$$$$$$$$$*++..#+*$$$$$$$$$.....++++$$$$$$$$*++++@............................................................................",
+".......................$$$$$$$$$-++++++++++++=%$$$$$$$$%@.......%$$$$$$$$&.......+$$$$$$$$$#......&$$$$$$$$$&......@%$$$$$$$$$$=........................=$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$=......&$$$$$$$$+........%$$$$$$$$........#$$$$$$$$+.................................................................................",
+"......................@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$=@.......&$$$$$$$$+.........&$$$$$$$$-.....@$$$$$$$$$+........+$$$$$$$$$$-........................%$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&......%$$$$$$$+.........=$$$$$$$*........+$$$$$$$$@.................................................................................",
+"......................+$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$-........@$$$$$$$$=..........@$$$$$$$$=.....*$$$$$$$$-..........*$$$$$$$$$+........................$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$+.....#$$$$$$$*..........*$$$$$$$=........=$$$$$$$$..................................................................................",
+"......................&$$$$$$$$$$$$$$$$$$$$$$$$$$$$&@.........&$$$$$$$%............%$$$$$$$=....#$$$$$$$$*...........&$$$$$$$$$........................+$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$......#=======+.........@$$$$$$$$+........%$$$$$$$=..................................................................................",
+"......................*$$$$$$$$$$$$$$$$$$$$$$$$$$$&@..........%$$$$$$$&............=$$$$$$$=....&$$$$$$$$@...........+$$$$$$$$*........................-$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%.......................@%$$$$$$$$#........$$$$$$$$&..................................................................................",
+"......................$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&........+$$$$$$$$@............=$$$$$$$=....$$$$$$$$=............+$$$$$$$$=........................=$$$$$$$$&++++++++++++++++&$$$$$$$$=....................++=$$$$$$$$$$........+$$$$$$$$+..................................................................................",
+".....................#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$=.......=$$$$$$$$$$$$$$$$$$$$$$$$$$$$$=...+$$$$$$$$#............+$$$$$$$$+........................$$$$$$$$$.................=$$$$$$$$-.............@+-=*$$$$$$$$$$$$$$*........-$$$$$$$$@..................................................................................",
+".....................+$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$+......$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$=...=$$$$$$$%.............+$$$$$$$$#.......................@$$$$$$$$*.................%$$$$$$$$#..........#=%$$$$$$$$$$$$$$$$$$$=........=$$$$$$$%...................................................................................",
+".....................=$$$$$$$$+............+*$$$$$$$$$=.....+$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$+...$$$$$$$$&.............+$$$$$$$$........................+$$$$$$$$=.................$$$$$$$$$.........+%$$$$$$$$$$$$$$$$$$$$$$+........%$$$$$$$=...................................................................................",
+".....................%$$$$$$$$@..............=$$$$$$$$=.....-$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#..#$$$$$$$$+.............=$$$$$$$=........................&$$$$$$$$+................+$$$$$$$$*.......@=$$$$$$$$$$$$$$$$$$$$$$$$@........$$$$$$$$-...................................................................................",
+".....................$$$$$$$$$...............@$$$$$$$$=.....=$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$...+$$$$$$$$#.............*$$$$$$$&........................*$$$$$$$$#................-$$$$$$$$=......@%$$$$$$$$$$$$$$*&&$$$$$$$$........+$$$$$$$$+...................................................................................",
+"....................+$$$$$$$$=................$$$$$$$$&.....*$$$$$$$$=====================&...-$$$$$$$$.............@$$$$$$$$+........................$$$$$$$$$.................=$$$$$$$$+......%$$$$$$$$$%=-+@...&$$$$$$$=........-$$$$$$$$....................................................................................",
+"....................-$$$$$$$$&...............#$$$$$$$$+.....$$$$$$$$%.........................=$$$$$$$$.............-$$$$$$$$@.......................#$$$$$$$$*.................%$$$$$$$$@.....=$$$$$$$$*#........*$$$$$$$&........=$$$$$$$*....................................................................................",
+"....................=$$$$$$$$+...............-$$$$$$$$+.....$$$$$$$$=.........................=$$$$$$$$.............*$$$$$$$%........................+$$$$$$$$&................@$$$$$$$$$.....#$$$$$$$$=.........@$$$$$$$$+........%$$$$$$$=....................................................................................",
+"....................$$$$$$$$$................=$$$$$$$$......$$$$$$$$=.........................=$$$$$$$$............#$$$$$$$$=........................=$$$$$$$$+................+$$$$$$$$=.....*$$$$$$$*..........-$$$$$$$$@........$$$$$$$$+....................................................................................",
+"...................@$$$$$$$$%................$$$$$$$$$......$$$$$$$$=.........................=$$$$$$$$+...........%$$$$$$$$-........................%$$$$$$$$@................&$$$$$$$$&....@$$$$$$$$#..........%$$$$$$$%........+$$$$$$$$#....................................................................................",
+"...................+$$$$$$$$=...............#$$$$$$$$=......%$$$$$$$$...........@========@....&$$$$$$$$&..........=$$$$$$$$$+........................$$$$$$$$$.................=$$$$$$$$+....+$$$$$$$$..........-$$$$$$$$=........&$$$$$$$$.....................................................................................",
+"...................&$$$$$$$$-...............&$$$$$$$$&......=$$$$$$$$-..........=$$$$$$$*.....+$$$$$$$$%@........+$$$$$$$$$$........................+$$$$$$$$=.................$$$$$$$$$.....=$$$$$$$$.........@$$$$$$$$$-........=$$$$$$$=.....................................................................................",
+"...................*$$$$$$$$+...............=$$$$$$$$+......+$$$$$$$$$+.......@=$$$$$$$$@.....#$$$$$$$$$=.......=$$$$$$$$$$*........................-$$$$$$$$&................@$$$$$$$$%.....=$$$$$$$$-.......#%$$$$$$$$$+........$$$$$$$$-.....................................................................................",
+"...................$$$$$$$$$................$$$$$$$$$#.......$$$$$$$$$$&#...#&$$$$$$$$$-.......%$$$$$$$$$*#..@-%$$$$$$$$$$$=........................=$$$$$$$$+................+$$$$$$$$=.....=$$$$$$$$$-@...+&$$$$$$$$$$$........@$$$$$$$$=.....................................................................................",
+"..................#$$$$$$$$*...............@$$$$$$$$$........&$$$$$$$$$$$$$$$$$$$$$$$$=........&$$$$$$$$$$$$$$$$$$$$$$$$$$$+........................$$$$$$$$$.................=$$$$$$$$-.....-$$$$$$$$$$$$$$$$$$$$$$$$$$%........+$$$$$$$$$%==-.................................................................................",
+"..................+$$$$$$$$=...............+$$$$$$$$$.........%$$$$$$$$$$$$$$$$$$$$$$=.........@$$$$$$$$$$$$$$$$$$$$$$$$$$$#.......................@$$$$$$$$%.................*$$$$$$$$+.....#$$$$$$$$$$$$$$$$$$$$$$$$$$=........+$$$$$$$$$$$$&.................................................................................",
+"..................=$$$$$$$$+...............+$$$$$$$$$@........@$$$$$$$$$$$$$$$$$$$$$=...........-$$$$$$$$$$$$$$$$$=$$$$$$$$........................+$$$$$$$$=.................$$$$$$$$$.......*$$$$$$$$$$$$$$$$*%$$$$$$$*........+$$$$$$$$$$$$+.................................................................................",
+"..................%$$$$$$$$#...............+$$$$$$$$$=.........#%$$$$$$$$$$$$$$$$$$+.............=$$$$$$$$$$$$$$$+=$$$$$$$=........................&$$$$$$$$-................#$$$$$$$$*.......@$$$$$$$$$$$$$$$=.$$$$$$$$$+........$$$$$$$$$$$$@.................................................................................",
+"..................$$$$$$$$$................@$$$$$$$$$*..........@*$$$$$$$$$$$$$$$&@...............=$$$$$$$$$$$$%@.%$$$$$$$&........................*$$$$$$$$+................-$$$$$$$$=........+$$$$$$$$$$$$%+..%$$$$$$$$*........&$$$$$$$$$$$..................................................................................",
+".................@+++++++++.................+++++++++#............#*$$$$$$$$$$%&@..................+%$$$$$$$$%-...++++++++@........................+++++++++.................#++++++++@.........@*$$$$$$$$%&@...#++++++++#.........&$$$$$$$$$=..................................................................................",
+"....................................................................@+&====&+@.......................#-====-#.....................................................................................@+====&+..........................@+=====&+@..................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................"};
diff --git a/ecos/packages/hal/arm/sa11x0/cerfpda/current/misc/redhat2.xpm b/ecos/packages/hal/arm/sa11x0/cerfpda/current/misc/redhat2.xpm
new file mode 100644
index 0000000..c66ea31
--- /dev/null
+++ b/ecos/packages/hal/arm/sa11x0/cerfpda/current/misc/redhat2.xpm
@@ -0,0 +1,260 @@
+/* XPM */
+static char * redhat2_xpm[] = {
+"320 240 17 1",
+" c None",
+". c #020204",
+"+ c #939192",
+"@ c #4A4849",
+"# c #810404",
+"$ c #2A272A",
+"% c #726F72",
+"& c #D1D0D1",
+"* c #4D0304",
+"= c #B2B0B1",
+"- c #8E3A34",
+"; c #FAF9F8",
+"> c #C90204",
+", c #8C797D",
+"' c #3C383B",
+") c #1A1919",
+"! c #5B585B",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................$$@@!%%,,,,,,,,,,,%!!@'').......................................................................................................................................................................................................................................................................",
+"..............................))'%,+=&&;;;;;;;;;;;&==+,%')).....................................................................................................................................................................................................................................................................",
+"..........................))'!%++======&==+==+===&=======,%!'$..................................................................................................................................................................................................................................................................",
+"..........................$@,&&;;;&==+,%!@@'@@'@!,+==&;;;;&=,@$.................................................................................................................................................................................................................................................................",
+"......................))'!,======+%%!!@'$$)$$)$$'@@@!!%++=&&=+,!')..............................................................................................................................................................................................................................................................",
+"......................)@,&&;&&+%'))...................)$'%+&;;;=%$).............................................................................................................................................................................................................................................................",
+"....................$!%=====%!@$$.......................$'@!++===+%@$...........................................................................................................................................................................................................................................................",
+"..................))!+&;&=,@$...............................$@,&&;&=@...........................................................................................................................................................................................................................................................",
+".................)@%+&==+%'$)...............................))@!+==&+%'.........................................................................................................................................................................................................................................................",
+"................)$,&&;=%'.......................................'%=;&&%)).......................................................................................................................................................................................................................................................",
+"...............)!+=&=+!')........*******..)..*********..........)'!+=&+%@)......................................................................................................................................)..)..)..)......................................................................................................",
+"..............)$+;&&,').........*#######*)))*#########*)).........)$%&&&,$)...................................................................................................................................))))))))))))).....................................................................................................",
+".............)!+=&=%@)........**##>#>#>######>##**********.........)@%+&=,@...................................................................................................................................)'!%%%!@'')).*....................................................................................................",
+"............)$+;&&%)..........#>>>>>>>>>>>>>>>>#*.....*###*.........))%&&&,))...............................................................................................................................))'@+&&&++!@'))......*..*...........................................................................................",
+"............@,=&=%@).........*#>>>>>>>>>>>>>>>>##*....*##>*...........@%=&=%'.................................................................................................................................$@+&&;&==+,!$).....).).)..........................................................................................",
+"..........))%&&&%)..........*#>>>>>>>>>>>>>>>>>>##*...*##>*...........))%&&&%.................................................................................................................................'!=;;;;;;;&+!)).*.*)))))).........................................................................................",
+"..........'%+&=,@)..........*##>#>>>>>>>>>>>>>>>>#****##>>#*............@%=&+@$...............................................................................................................................'!=;;;;;;;&=!..*.)'!!!')*.........................................................................................",
+"..........!&&;+$)...........*#####>>>>>>>>>>>>>>>#####>>>>>#*...........)$+;&+@.............................................................................................................................))$@+;;;;;;;&&%...))!===!).*........................................................................................",
+"........)),&=+!)............*>##***#####*##>>>>>>#>#>#>>>>>#*............)!==&%$)............................................................................................................................)$!=;;;;;;;&&!)...)%&&&,@$).............................................................*).........................",
+"........)@=;=@$.............*>>#*....)....*#>>>>>>>>>>>>>>>>#.............$%=;='$.............................................................................................................................$@=;;;;;;;&&%))...%;;;=%')).........................................................*.))))).......................",
+"........@+=&,)).............*>##*....).).**##>>>>>>>>>>>>>>>#*............)'+&=,'............................................................................................................................)$!+;;;;;;;&&!....*,;;;=%'*.........................................................))$@!!'$*......................",
+"........%&&&!...............#>>#*.....))*###>>>>>>>>>>>>>>>>>#*.............!=&=!...........................................................................................................................))'@=;;;;;;;&&%...)),&;;=%'*.........................................................)'!,=+%'.......................",
+"......)'+;=%'...............#>>##*****###>#>>>>>>>>>>>>>>>>>>#*.............'%=&+))..........................................................................................................................)$!=;;;;;;;&&!)...),;;;=%'.........................................)................)@+=&=,@)......................",
+"......'!=;+$).............))*>>>####>>>>>>>>>>>>>>>>>>>>>>>>>>#.............)'+;+@$................................................*.*..*.*..*.*..*.*............*.*..*.*..............................*..*..*$@=;;;;;;;&&%))...,&;;=%@))*.*.*..*.*....................*..*.*.))))).*........*.*.*%&;;&=!)$)).*.................",
+"......@+=&%)........******))#>>>>#>#>>>>>>>>>>>>>>>>>>>>>>>>>>*..............),&=,'.............................................)*.).).).).)).).)).)...........*).).)).).)..........................)..).).)).'!+;;;;;;;&&!....),;;;=%@)).).).)).).)...................).).).)))))).)........).).)%&;;&+!)))).).................",
+"......%&=+!.......))*#####*)#>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>#)).............%=&=!..........................................*)))))))))))))))))))))))*......*.))))))))))))).*...................*.))))))))))))'@=;;;;;;;&&%..*.)+&;;=%@)))))))))))))).*.............*.*)))))))))))))))).....)))))),&;;&+!))))))))...............",
+".....),;=%'....***#*##>#>##)**#>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>#*..............',=&,)..........................................)'@@@@@@$$))))'@!%!%@$)......).)$'@!!%%%%!!!'$$..................))$'!!%%%%!!@$)'!+;;;;;;;&&!)...),;;;=%'))))$'@@!@@@')).)...........).)))$''@@!@!@'$$)))*...*.)$$$),;;;&+!))$$$$$)...............",
+"....)'+;+@$...*#>>>>>>>>>>#)).*#>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>#*.............$@=;+')........................................*$!%%%%%%@$)))$!,====,@')).*.*)))'!,+===&=&=+,!')).*.............*)$@%+======+,@)'!=;;;;;;;&&%))...,&;;=%@)))$'!,,+,,%!'))))........*.)))))'!%,,++,,!@$)))))..*)$$@$),&;;&=!)$'''''$)).............",
+"....$!=;+))...*#>>>>>>>>>>#*...***#>>#>>>>>>>>>>>>>>>>>>>>>>>>>#*.............))+;+!$.........................................!+======,!'$@,+&&&&&=!'*.).))'@%+==&&&&;&&&&==,%').*..........))'!,+=&&&;&&&&=+,%!=;;;;;;;&&!....),;;;=%@)'%,+==&&=&=+,%@'*........)))'@%%+===&=&===+,!@$)*.).'%,++,=;;;&&+,++++++@...............",
+"....@,=;%.....#>>>>>>>>>>>>#*.....*###>>>>>>>>>>>>>>>>>>>>>>>>##*...............%;=%'........................................*%&;;;;;;=,@$,&;;;;;;&,@.))))'@,&&;;;;;;;;;;;;;&=%$).........))))%=&;;;;;;;;;;;;&=%=;;;;;;;&&%....),&;;=%@)!=&;;;;;;;;;&&,!$.*......)))!+=&&;;;;;;;;;;&=%'..*))%=&;;;;;;;;;;;&;;;;&%...............",
+"....@+=&%.....*>>>>>>>>>>>>#*......****####>>>>>>>>>>>>>>>>>>>>#******..........%&=+@.........................................%&;;;;;;&+,,=;;;;;;;=+@*))$'%+&&;;;;;;;;;;;;;;;&=,@..........$@,=&&;;;;;;;;;;;;;&=&;;;;;;;&&!)...),;;;=%%%=&&;&;&;&;;;;&=+%$)*......$@,&&;;;&;&&;&;;;;&=,'$).)!=&;&&;;;;;;&;;&;&;&,...............",
+"....%=&=!.....#>>>>>>>>>>>>>#))...........*#>>>>>>>>>>>>>>>>>>########*.........!===!.........................................%&;;;;;;&+=&&;;;;;;;=,@)))@!=;;;;;;;;;;;;;;;;;;;;&,)).......)',&;;;;;;;;;;;;;;;;;;;;;;;;;;&&%)....,&;;=!+&;;;;&&&&&&&;;;;;+@$))*....'%=;;;;&&&&=&&&&;;;;=%@).*!=&;;;;;;;;;&;&;;;;&%...............",
+"....%&&+!.....*>>>>>>>>>>>>>>***...........*##>>>>>>>>>>>>>>>>>##>#>#>#**.......!==&%.........................................,&;;;;;;&=&;;;;;;;;;&,!))$%=&;;;;;;;;;;;;;;;;;;;;;=%'*......@,=;;;;;;;;;;;;;;;;;;;;;;;;;;;&&%.....,;;;&=&;&&=+,%!!%%+=&;;;=+@)......$!=&&=+,%!!!!%,,=&;;&=!)..'%%,,%=;;;&&=%,,,+,+'...............",
+"....,;&,@.....*#>>>>>>>>>>>>>>>#*...........*#>>>>>>>>>>>>>>>>>##>>>>>>>*.......'+=&%.........................................%&;;;;;;;;;;;;;;;;;;=+@)$@+&;;;;;;;;;;&&;;;;;;;;;;&&!.....*.%&&;;;;;;;;;;;;;;;;;;;;;;;;;;;&&!...)),;&;;&;;&=%)).....'!=&;;;&%......*$@,&+%'.......)),&&;;;%*...)$$).,&;;&+!.)$$$$$)...............",
+"...)+;=!'......*##>>>>>>>>>>>>>###****.......*#>>>>>>>>>>>>>>>>#>>>>>>>>##*.....'!=;%.........................................%&;;;;;;;;;;;;;;;;;;=,@)@+&;;;;;;;&=+,%%%+=;;;;;;;;&,')).*$@+;;;;;;;;;;;&&=&&&;;;;;;;;;;;;&&%....)%;;;;;&&+!')......)$%=&;;&+'$.....)$@!!')........)'%=;;;+'$..).)..,&;;&+!*).))).................",
+"..)'+;='$.......*#>>>>>>>>>>>>>>>>####*.......#>>>>>>>>>>>>>>>>>>>>>>>>>>>*.....$'=;,.........................................%&;;;;;;;;;;;;;;;;&;=%@)%&;;;;;;;;&,@)).)',&;;;;;;;;=!')).@,&;;;;;;;;;&&=,,%,==;;;;;;;;;;;&&%))...,&;;;;&+!...........$!=;;;=%@)).....................,&;;&,'*......,&;;&+!)......................",
+"..)'+;='$........*#>>>>>>>>>>>>>>>>>#>#*****..*>>>>>>>>>>>>>>>>>>>>>>>>>>>#*....$@+;+)........................................%&&;;;;;;;;;;;&=++++%'''+&;;;;;;&=,'$...))@%=;;;;;;;&,@.*)%=&;;;;;;;;&=%!@''@!,+&;;;;;;;;;;=%....),;;;;;+!$...........)',;;;&,@......................*%&;;&+!.......%;;;&+!.......................",
+"..$@=;+@$.........*#>>>>>>>>>>>>>>>>>>>>>###*)*#>>>>>>>>>>>>>>>>>>>>>>>>>>>#*...)@=;+$).......................................%&;;;;;;;;;;&&+!@$''$.'%=;;;;;;;=,@..*..*..),;;;;;;;&=!..),;;;;;;;;;&=!.......'!+;;;;;;;;;&&!...)),&;;;&%...............%&&;&=!.............*.*.*.*.))%&&;&=!.......%&;;&+@.......................",
+"..)@+;+')..........**>>>>>>>>>>>>>>>>>>>>#>>####>>>>>>>>>>>>>>>>>>>>>>>>>>>#*...$'=;+@).......................................%&&;;;;;;;;;=%!'$)))).@+&;;;;;;;+@$)).)).)))%&;;;;;;;&%)$'+;;;;;;;;;=%'.......)$,=;;;;;;;;&&%....),;;;&=!...............!=;;;=%)...........).).).).)))!=&;;&%.......%;;;&+!)......................",
+"..$@=;+$)...........*#>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>##*...$'=;+@$.......................................%&;;;;;;;;;&%.........!&&;;;;;;&,)))))))))))!=&;;;;;;;,)'@=;;;;;;;;;,)).........@+&;;;;;;;&&%))...,&;;&+!)).............!+&;;&%)..........*)))))))))))!+&;&&%.......%&;;&+!)......................",
+"..)@+;+')............**##>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>#*....$@+;=').......................................%&&;;;;;;;&=@.........%&;;;;;;;&=!!!!!!!!!!!+=;;;;;;;&,)@%=;;;;;;;;&%..........)'%=;;;;;;;&&!)...),;;;=,@...............@+&;;&%)........)))))$'@@!!!!%+=&;;&%.......%;;;&+!.......................",
+"..$@=;+$)...............*#>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>#.....)@=;=@$.......................................%&;;;;;;;;=%'........*%;;;;;;;;&==+===========;;;;;;;;+)!+&;;;;;;;&=!..........)'!=;;;;;;;&&!..*.)+&;;=%'..............*@,=;;;%........)))))$'!%,+==+==&;;;&%.......%&;;&+@.......................",
+"..)@+;=')................*##>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>#*.....$'+;+').......................................%&;;;;;;;;=@$).......),;;;;;;;;;&&&&&&&&&&&&&;;;;;;;;;,)!=&;;;;;;;&+!..........)'!=;;;;;;;;=%)...),;;;=%'...............'+=;;&%.......))$'!%,+===&&&&&&;;;&&%.......%&;;&+!.......................",
+"..$@=;+@$.................*#>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>#*.....$@=;+$).......................................!&;;;;;;;;+'$)......)$,;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+)%=&;;;;;;;&,!)).........$@=;;;;;;;&&%))...%&;;=%@)).............',=;;;,......*.)'%+&&;;;;;;;;;;;;;;&%.......,&;;&+!)).....................",
+"..)'+;=')..............)@%,,-##>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>**......$'=;+)........................................%&&;;;;;;;+'$)......)'+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;,)%=;;;;;;;;=%'...........'!+;;;;;;;&&!....),;;;=%'...............@,&;;&,......)'%,=&&;;&;&&&&&&&&;;&&%.......%;;;&+!.......................",
+"..)'+;=@$.............)',;&&%)*###>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>##*.......)@+;,.........................................%&;;;;;;;;+')......*$@=;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+)%&&;;;;;;;=!$.........))'@=;;;;;;;&&%..*))+&;;=%'...............',=;;;%.....))!=&;;;;;&&&===++=&&;;&%.......%&;;&+@.......................",
+"...)+;=!$.............$!=;;&=%'*****#>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>#*........'%=;,.........................................%&;;;;;;;;+').......$@+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;%)%=;;;;;;;;=!'...........'@=;;;;;;;&&!)....,;;;=%@...............@,=;;&,....*$%+&;;&&=+,%%!!@@@%=&;;&!.......%&;;&+!.......................",
+"....,;=%'.............@,=;;;&=!.....*#>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>##*.........',=;%.........................................!&;;;;;;;;+'$)).....)@+;;;;;;;;;;;&;&;;;;;;;;;;;;;;;;&,)%&&;;;;;;;=,'...........$!+;;;;;;;&&%))...,&;;=%@)).............'+=;;&,.*.*.!=&;;;&+!)).......@+&;&&%.......,&;;&+!)).....................",
+"....%;=,@.............$!=;;;;&=!%%@))**####>>>>>>>>>>>>>>>>>>>>>>>##**..........@+=&%.........................................%&&;;;;;;;,').......))+;;;;;;;;&=%,,++++++++++++++++++!)!=&;;;;;;;&+@...........'!=;;;;;;;&&!....),;;;=%'...............',=;;;%..))',&;;&=+@')........!+&;;&%.......%;;;&+!.......................",
+"....!&=+@.............)$+;;;;;;&&;+$).....*###>>>>>>>>>>>>>>>>####*.............!+==!.........................................%&;;;;;;;;+').........%;;;;;;;&=!.))$'@@!!@!@@@!@!!@@'$)!=&;;;;;;;&=!.........))'!=;;;;;;;&&%..*))+&;;=%'...............@,&;&;%*))'!=;;;=%'.........))@+&;;&%.......%&;;&+@.......................",
+"....!==&!.))''@'@@!!')))!+&;;;;&;;=+@).....*****############*#****..............!&=+@.........................................%&;;;;;;;;+'$.........%;;;;;;;;&,..))))$$$$$$$$$$$$$))).!+&;;;;;;;&&%..........)@,=;;;;;;;&&!)....,;;;=%'...............@%=;;&,..)@+&;;&+@)..........)@+&;&&%.......%;;;&+!.......................",
+"....!+&&%.)@!+,,++==%$).$@+;;;;;;;;;+').............))))))......................%&=%'.........................................!&;;;;;;;;+$$)).......%&;;;;;;;;,.*.......*.*.*.........',=;;;;;;;;&%*.*..*.*.)$!+&;;;;;;;&&%))...,&;;=%@)).............',&;;;%*.*!=&;;&%.............@+&;;&%.......%&;;&+!)).....................",
+"....'%=;,$@%+&=&&&&&&+@))$!+&;;;;;;;=+%'')$)$)''@'')'@@@@'''$).................),;+!$.........................................%&&;;;;;;;+').........!&&;;;;;;;=!'..)..).).).).).......$@=;;;;;;;;;=@$.*.).).$',&&;;;;;;;&&!...).,;;;=%'...............@,=;;&,..)%&&;&&%*..........))!=&;;&!.......%;;;&+!.......................",
+"....$'=;=@%+&;;;;;;;;;+$).$@=;;;;;;;;;=,!@@@@@!,+,!@!%%+!'!%@$)...............)'+;+$).........................................%&;;;;;;;;+').........@=&;;;;;;;&&!*)))))))))))))))......),;;;;;;;;;&=!.))))))$!+;;;;;;;;;;=%...))+&;;=%'...............',=;;;%*.)%&;;&=!........*))))%=&;&&%.......%&;;&+!.......................",
+"....))+;===&;;;;;;;;;;&+%!%,&;;;;;;;;;&&=+=+=+=&=&=====&====%)................$%=&+)..........................................%&&;;;;;;;+'$.........$!=;;;;;;;;&=%!!@''''''@@!!,!@$....)%&;;;;;;;;;&+%!@@@!!,=&;;;;;;;;;&&!.....,;;;=%@...............@,=;;&%..)!&&;;=%).........))$,&;;;&%.......,&;;&+!*......................",
+"......%&;;;;;;;;;;;;;;;;&&=&;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;,.................@+=&!...........................................%&;;;;;;;;+$$)).......)),;;;;;;;;;;&=+,%!!!!!%,+=&=+!.....!&&;;;;;;;;;&&=,,%+=&&;;;;;;;;;;&&%.....,&;;=%@)).............'+=;;;%*..!&;;&&%).*.*.*.*)))'+;;;;&%.......%&;;&+!)).*...................",
+"......!=&;;;;;;;;;;;;;;;;&;&;;;;;;;;;;;;;;;;;;&&&&&&&;;;;;;&%................)%&=+!...........................................%&;;;;;;;;+')..........)!=&;;;;;;;;;&&===+=====&&;&=!.....'%=;;;;;;;;;;&&&==&&&;;;;;;;;;;;;&!.....,;;;=%'...............',=;;&%...!=&;;&+')).).).).)!,=;;;&&%.......%&&;&=%)).)...................",
+"......@,&;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;=,======;;;;;=!...............)'+;=!'...........................................%&;;;;;;;;+')...........@,&;;;;;;;;;;;;;;;;;;;;;;;;&%.....$'+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&&%.....,&;;=%'...............'+=;;;%..*!+&;;;+@'))))))))),&;;;;;&%.......!=;;&&%)))))).................",
+"......$@=;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&=!!!!@+&&;;;&=!...............'!=;+')...........................................,&;;;;;;;;+$)...........)@,&&;;;;;;;;;;;;;;;;;;;;;;&,.....))!=&;;;;;;;;;;;;;;;;;;;;&;;;;;;;&%.....,;;;=%'...............@,=;;&,...$!=;;;&+,@@''@@%%+=;&;;;;&%.......@+&;;&=!@@@@@'$...............",
+".......),;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&,')...!&&;;;&+@...............@==&%.............................................%&;;;;;;;;+').............!+&;;;;;;;;;;;;;;;;;;;;;;;,.......'%=;;;;;;;;;;;;;;;;;;&&&;;;;;;;&%*....%;;;=,'...............'+=;;;%*....%&;;;;=+,!!%++&;;;&&&;;;%.......'%=;;;&=+%,,,,'...............",
+".......)!=&;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&+,%%%=&;;;;=%'...)'''@'@'@''',&=+@.............................................%&;;;;;;;;+').............$@,=&;;;;;;;;;;;;;;;;;;;;&,)......)'%=&;;;;;;;;;;;;;;;=+==&;;;;;&&%.....%;;;=%'...............',=;;&%.....!+&;;;&&====&&&;&&+!=;;&%.......)'+&;;&&&==&==!...............",
+"........'%=;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&&&;;;;;;+$)...$%%,,+,,,+%%=;=@$.............................................%&;;;;;;;;+$)...............'%+&;;;;;;;;;;;;;;;;;;;&%$).......'%=&;;;;;;;;;;;;;&,$%=&;;;;;;&%.....%&;;=%'...............',=;;;%.....$!+&;;;;;;;;;;;;&=!.%;;;%.........!&&;;;;;;;;&%...............",
+"........)'+&;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&=%)..)$!==&=&=&=&=&&&,)).............................................!+=&&&&===%$)...............)'@%+=&&&;&;&;&;&&&&=+,%')........)'@%+&&&;;;&;&&=+%')@,=&&&&&=+!.....!===+@$...............$!+&==@.....)$!+=&&;&;;&;&==%@$.!===!.........'%+&&;&;;&&&!...............",
+"..........!&&;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;=!'...)@+;;;;;;;;;;;;=!...............................................'%,+++++++@)....................'!+===&&&&&=&=++%!$...............@++&=&&&&=+,'...$@%++++++%'.....@,++!$)...............)'!+,,'.......)'!==&&&&&==%@$...@+,,@..........)!+=&&&&&=+@...............",
+"..........'%=;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&+'$)'%,=&;;;;;;;;;;;=%'...............................................)'@@@@@!@'$)....................)''!!%!%!%!%!!!@'$)...............$'!!%%%!%!!')...)$'@@'@@@').....)''@')................))'@@')........)'@!%%%%%!!@$)...)@@'$..........)$@!%%%%%!@$...............",
+"..........)'+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;=!.)$,&&;;;;;;;;;;;;;,)..................................................................................................................................................................................................................................................",
+"...........)!+&;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;=%@.@+=;;;;;;;;;;;;;=+@)..................................................................................................................................................................................................................................................",
+"............)$+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+'$),;;;;;;;;;;;;;;;+$)...................................................................................................................................................................................................................................................",
+".............)%=&;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&+!%+=;;;;;;;;;;;;;&+@)....................................................................................................................................................................................................................................................",
+"..............'%=;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&==+&;;;;;;;;;;;;;;;+$).....................................................................................................................................................................................................................................................",
+"..............)'%+&;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&&&&;;;;;;;;;;;;;=+@)......................................................................................................................................................................................................................................................",
+"................)$+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+$).......................................................................................................................................................................................................................................................",
+".................)@+=;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&=,@)).......................................................................................................................................................................................................................................................",
+"..................)'%&;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&=%)..........................................................................................................................................................................................................................................................",
+"...................)'!+=&;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&=+%')..........................................................................................................................................................................................................................................................",
+"......................'%=;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;=%$.............................................................................................................................................................................................................................................................",
+"......................)'!,=&&;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&==,!').............................................................................................................................................................................................................................................................",
+"........................))@,=&;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&=%@)................................................................................................................................................................................................................................................................",
+"..........................$@!%+==&&;;;;;;;;;;;;;;;;;;;&&=+,%@'))................................................................................................................................................................................................................................................................",
+"..............................)@%+=&;;;;;;;;;;;;;;;;&&=+%').....................................................................................................................................................................................................................................................................",
+"..............................)$'@!!%,++===+====+++,,%!!$)......................................................................................................................................................................................................................................................................",
+"......................................)$''@@'''@'').............................................................................................................................................................................................................................................................................",
+".......................................))$)$$$$$))..............................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................................................................................................"};
diff --git a/ecos/packages/hal/arm/sa11x0/cerfpda/current/src/banner.xpm b/ecos/packages/hal/arm/sa11x0/cerfpda/current/src/banner.xpm
new file mode 100644
index 0000000..b8b1f92
--- /dev/null
+++ b/ecos/packages/hal/arm/sa11x0/cerfpda/current/src/banner.xpm
@@ -0,0 +1,74 @@
+/* XPM */
+static char * banner_xpm[] = {
+"320 54 17 1",
+" c None",
+". c #030305",
+"+ c #949394",
+"@ c #CFC9CD",
+"# c #525052",
+"$ c #B7B6B8",
+"% c #E2515E",
+"& c #FDFDFB",
+"* c #737073",
+"= c #820204",
+"- c #E33533",
+"; c #343232",
+"> c #E895AE",
+", c #E51604",
+"' c #E67284",
+") c #EABAD4",
+"! c #D8D7D9",
+"............................................................................................................................................................................&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"............................................................................................................................................................................&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"............................................................................................................................................................................&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"............................................................................................................................................................................&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"............................................................................................................................................................................&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"............................................................................................................................................................................&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"............................................................................................................................................................................&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"............................................................................................................................................................................&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"............................................................................................................................................................................&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"..............*+@&&&&&&$+*..................................................................................................................................................&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&+#;;...................................&&&&&&,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,--%>&&&&&&&&&&&&&&&&&&&&&&&&",
+"...........#$&&@+*##;#++@&&$#...............................................................................................................................................&&&&&&&&&&&&&&&&&&&&&&&&&&&&&#........................................&&&&&&,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,'&&&&&&&&&&&&&&&&&&&&&&",
+".........#$&$*...........;#!&$;.............................................................................................................................................&&&&&&&&&&&&&&&&&&&&&&&&&&&+..........................................&&&&&&,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,>&&&&&&&&&&&&&&&&&&&&",
+"........+&$#................#$&+............................................................................................................................................&&&&&&&&&&&&&&&&&&&&&&&&&&#...........................................&&&&&&,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,'&&&&&&&&&&&&&&&&&&&",
+"......;!&*....................*&@...........................................................................................................................................&&&&&&&&&&&&&&&&&&&&&&&&&#............................................&&&&&&,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,'&&&&&&&&&&&&&&&&&&",
+".....;!@;.....====;.=====......;!@;....................................................................;.;..................................................................&&&&&&&&&&&&&&&&&&&&&&&&+...............;;;;..........................&&&&&&,,,,,,,,,,,,,,,---,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,>&&&&&&&&&&&&&&&&&",
+"....;&@......,,=,,=,,=...==......!!.................................................................;#!$*#..................................................................&&&&&&&&&&&&&&&&&&&&&&&!.............#+&&&&&&@*...................;***&&&&&&,,,,,,,,,,,,')&&&&&&>-,,,,,,,,,,,,,,%>!&&)>'-,,,,,,,,,,&&&&&&&&&&&&&&&&&",
+"....@@;.....=,,,,,,=,,=..=,.......!!.................................................................#&&&&+;...;............................................................&&&&&&&&&&&&&&&&&&&&&&&#...........;@&&&&&&&&&&&+...............*&&&&&&&&&&&,,,,,,,,,,'&&&&&&&&&&&)-,,,,,,,,,,-)&&&&&&&&&)-,,,,,,,,'&&&&&&&&&&&&&&&&",
+"...$&;......====,=,,,====,==......;!+................................................................#&&&&@..;>+;...........................................................&&&&&&&&&&&&&&&&&&&&&&&...........*&&&&&&&&&&&&&&$............#&&&&&&&&&&&&&,,,,,,,,,)&&&&&&&&&&&&&&%,,,,,,,,-&&&&&&&&&&&&%,,,,,,,,,&&&&&&&&&&&&&&&&",
+"..#&;.......,=.....=,,,,,,,,.......*&#...............................................................#&&&&@...&&*...............................;...........................&&&&&&&&&&&&&&&&&&&&&&+..........+&&&&&&&&&&&&&&&&@..........#&&&&&&&&&&&&&&,,,,,,,,)&&&&&&&&&&&&&&&&',,,,,,,)&&&&&&&&&&&!,,,,,,,,,,>&&&&&&&&&&&&&&&",
+"..!$........,=...;==,=,=,=,==.......$$..............................................................;#&&&&@...&&*..............................#$*..........................&&&&&&&&&&&&&&&&&&&&&&#.........#&&&&&&&&&&&&&&&&&&$........#&&&&&&&&&&&&&&&,,,,,,,)&&&&&&&&&&&&&&&&&&%,,,,,%&&&&&&&&&&&&-,,,,,,,,,,'&&&&&&&&&&&&&&&",
+".*&;........,,===,,=,,,,,,,,,.......;&#..............................................................#&&&&$;..!&*;...................;.........!&+;.........................&&&&&&&&&&&&&&&&&&&&&&;.........&&&&&&&*;...#$&&&&&&#.......&&&&&&&&!'''>!&&,,,,,,'&&&&&&&)'''>&&&&&&&&,,,,,'&&&&&)-,,%)),,,,,,,,,,,-&&&&&&&&&&&&&&&",
+".@+.....===.,=,,,,=,,=,=,=,,=........$$.......................;.;.;.;.;......;.;.;..............;.;.;#&&&&@..;!&*.;.;.;..........;.;.;.;....;.;!&+.;.;......................&&&&&&&&&&&&&&&&&&&&&&;........+&&&&&@........#&&&&&!......+&&&&&&&',,,,,,'&,,,,,,&&&&&&&-,,,,,,>&&&&&&',,,,)&&&&&%,,,,,-,,,,,,,,,,,-&&&&&&&&&&&&&&&",
+";&#..=,,,,,..=,=,,,,,,,,,=,,,=.......#&;.....................#***;.;+$$#;..;.#+$$@+*..........#+$$$*.#&&&&@...!&*.;;*++#;.......;.#*++*;.;..;;;!&+;;;;......................&&&&&&&&&&&&&&&&&&&&&&.........&&&&&!..........+&&&&&#.....&&&&&&&-,,,,,,,,%,,,,,%&&&&&&-,,,,,,,,'&&&&&&,,,,)&&&&&>,,,,,,,,,,,,,,,,,-&&&&&&&&&&&&&&&",
+"*&...,=,=,,=...===,=,=,,,,,=,=........!*.....................!&&&*;@&&&*..;#@&&&&&&&$;.....;.$&&&&&&!*&&&&@..;&&*.$!&&&&$#....;.+!&&&&&!*..;$!&&&&!&&!......................&&&&&&&&&&&&&&&&&&&&&&........#&&&&&*;;;;;;;;;;#&&&&&+....#&&&&&&',,,,,,,,,,,,,,,>&&&&&%,,,,,,,,,,)&&&&&-,,,)&&&&&&!'-,,,,,,,,,,,,,,-&&&&&&&&&&&&&&&",
+"$$...,,,,=,,.......=,,=,=,,,,====.....@$.....................!&&&+!&&&&+;.*!&&&&&&&&&!.....;!&&&&&&&&!&&&&@...!&*!&&!$!&&&;;...*&&!@$@!&&*..$&!&&!&!&!......................&&&&&&&&&&&&&&&&&&&&&&........+&&&&&&&&&&&&&&&&&&&&&&&....+&&&&&&,,,,,,,,,,,,,,,,&&&&&!,,,,,,,,,,,%&&&&&',,,'&&&&&&&&&)',,,,,,,,,,,,-&&&&&&&&&&&&&&&",
+"&+...==,,,,=,=......=,,,,=,=,=,,=,....*!.....................!&&&!&&&&&*.#&&&&&!!&&&&&@....!&&&&&&&&&&&&&&@..;!&!&$;...#!&!....#@*....;@&&...;.!&+.;;;......................&&&&&&&&&&&&&&&&&&&&&&........$&&&&&&&&&&&&&&&&&&&&&&&....$&&&&&),,,,,,,,,,,,,,,,&&&&&',,,,,,,,,,,,&&&&&',,,-&&&&&&&&&&&&-,,,,,,,,,,-&&&&&&&&&&&&&&&",
+"&#....==,=,,,,,==....,=,,,,,=,=,,,,...#&.....................!&&&&&&&!&*.@&&&&*;.;@&&&&#;.+&&&&&@+*+&&&&&&@...&&&+......*&&*............!&+....!&+..........................&&&&&&&&&&&&&&&&&&&&&&........$&&&&&&&&&&&&&&&&&&&&&&&....$&&&&&),,,,,,,,,,,,,,,-&&&&&',,,,,,,,,,,,&&&&&),,,,%&&&&&&&&&&&&-,,,,,,,,,-&&&&&&&&&&&&&&&",
+"&;.....=,,,=,=,,,===.=,,=,,,,,,,=,==..#&;....................@&&&&&@*;;.*&&&&*.....&&&&$..&&&&&$....#&&&&&@...&&!........@&$...........;)&$....&&+..........................&&&&&&&&&&&&&&&&&&&&&&........$&&&&&$$$$$$$$$$$$$$$$$$....$&&&&&),,,,,,,,,,,,,,,,&&&&&',,,,,,,,,,,,&&&&&>,,,,,->&&&&&&&&&&&,,,,,,,,,-&&&&&&&&&&&&&&&",
+"&;......=,,,,,=,,,,,,,=,,,=,=,=,,,,=..;&#....................!&&&&!.....@&&&!;.;.;.$&&&&.#&&&&!;.....+&&&&$;..!&+........+&@;......;.;..+&!....!&+;.........................&&&&&&&&&&&&&&&&&&&&&&........+&&&&&;.....................$&&&&&!,,,,,,,,,,,,,,,,&&&&&),,,,,,,,,,,-&&&&&',,,,,,,,%>&&&&&&&&-,,,,,,,,-&&&&&&&&&&&&&&&",
+"&;........==,,,,=,=,=,,,=,,,,,,,=,,...#&;....................!&&&&*.....!&&&!+$+$$+@&&&&.+&&&&$......#&&&&@..;&&*........+&!.....;.;*+$$@&@....!&+..........................&&&&&&&&&&&&&&&&&&&&&&........*&&&&&+................;....*&&&&&&-,,,,,,,,,,,,,,,)&&&&&-,,,,,,,,,,>&&&&&%,,,,,,,,,,,'&&&&&&',,,,,,,,-&&&&&&&&&&&&&&&",
+"&#.........==,=,,,,,,=,,,=,=,=,,=,=...#&;....................@&&&&#....;&&&&&&&&&&&&&&&&;$&&&&+......#&&&&@...!&*........*&&....;*@&&&&&&&!....!&+..........................&&&&&&&&&&&&&&&&&&&&&&........;&&&&&&;.........;;;;;;;....;&&&&&&!,,,,,,,,,-,,,,,'&&&&&),,,,,,,,,-&&&&&&,,,,,,,,,,,,,>&&&&&',,,,,,,,-&&&&&&&&&&&&&&&",
+"&;.......;&@.==,=,,=,,,=,,,,,,,,,=....#&.....................!&&&!;....#&&&&&&&&&&&&&&&&.@&&&&#.....;#&&&&@..;!&*........*&!....$&&!!$++@&@....&&+..........................&&&&&&&&&&&&&&&&&&&&&&;........$&&&&&&;.......@&&&&&&;.....$&&&&&&),,,,,,,-!,,,,,-&&&&&&>,,,,,,,-&&&&&&>,,,,,')-,,,,,>&&&&&',,,,,,,,-&&&&&&&&&&&&&&&",
+"&*.......*&&$...=,,,=,,,,=,=,=,==.....*&.....................@&&&&;....;&&&&&!&!&&!&&!&!;$&&&&*......#&&&&@...&&*........*&!...$&&+;....+&!....!&$..........................&&&&&&&&&&&&&&&&&&&&&&;........;&&&&&&&$#;.;+&&&&&&&+......;&&&&&&&&'-,,%>&&,,,,,,>&&&&&&&'-,-%>&&&&&&&-,,,,-&&&'-,,'&&&&&&-,,,,,,,,-&&&&&&&&&&&&&&&",
+"@+.......;&&&@&;...==,=,,,,,,==.......+$.....................!&&&&;.....&&&&$..########;.$&&&&$......*&&&&@..;!&*........+&!.;#&&*......+&!....!&+..........................&&&&&&&&&&&&&&&&&&&&&&#.........+&&&&&&&&&&&&&&&&&&!........*&&&&&&&&&&&&&&&,,,,,,-&&&&&&&&&&&&&&&&&&&',,,,,>&&&&&&&&&&&&&&,,,,,,,,,'&&&&&&&&&&&&&&&",
+"+!.#*++$;.;&&&&&;.....................!*.....................@&&&&;;....!&&&&............*&&&&!......+&&&&@...&&*........*&!..$&!.......+&!....!&+..........................&&&&&&&&&&&&&&&&&&&&&&+..........@&&&&&&&&&&&&&&&&&;.........+&&&&&&&&&&&&&&,,,,,,,-&&&&&&&&&&&&&&&&&),,,,,-&&&&&&&&&&&&&&',,,,,,,,,>&&&&&&&&&&&&&&&",
+"#&#+&&&&&;.;&&&&!+;##*+#*+#*;........;&;.....................!&&&&;.....+&&&&)..;.;.;.....&&&&&$.;.;#&&&&&@...&&*........+&!.;)&$.....;.@&@....&&+..........................&&&&&&&&&&&&&&&&&&&&&&&...........@&&&&&&&&&&&&&&&;...........+&&&&&&&&&&&&&,,,,,,,,%&&&&&&&&&&&&&&&),,,,,,'&&&&&&&&&&&&&>,,,,,,,,,,&&&&&&&&&&&&&&&&",
+".!&&&&&&&&$@&&&&&&&&&&&&&&&&.........+@......................@&&&&;......&&&&&!+*##*+!+...$&&&&&)+*$!&&&&&@...!&*........*&!..@&);.....;&&!....!&+;.........................&&&&&&&&&&&&&&&&&&&&&&&#...........+&&&&&&&&&&&&$;.............;$&&&&&&&&&&&,,,,,,,,,-)&&&&&&&&&&&&',,,,,,,,-)&&&&&&&&&&',,,,,,,,,,%&&&&&&&&&&&&&&&&",
+".+&&&&&&&&&&&&&&&&&&&*$+@&&$........;&*......................!&&&&;......*&&&&&&&&&&&&!...;&&&&&&&&&&&&&&&@...&&*........*&!..+&&;;.;.;!&&!....@&@.;........................&&&&&&&&&&&&&&&&&&&&&&&!............;+&&&&&&&&@#.................;*$$$&&&&&&,,,,,,,,,,,%)&&&&&&&&>-,,,,,,,,,,,-')!&&&)',,,,,,,,,,,,&&&&&&&&&&&&&&&&&",
+"..&&&&&&&&&&&&&&&&&&!;..$&&+........+!.......................!&&&&;.......+&&&&&&&&&&&&....*&&&&&&&&&!@&&&!...&&*........+&&...!&&+#*+&&$&!....*&&+*+*......................&&&&&&&&&&&&&&&&&&&&&&&&*..............#++++#;........................&&&&&&,,,,,,,,,,,,,-%''''%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,'&&&&&&&&&&&&&&&&&",
+"..*&&&&&&&&&&&&&&&&&&&!!&&&;..**+*+*&#.......................!&&&!;........*!&&&&&&&&&@;....*!&&&&&&!;$&&&@...!&*........*&!...#!&&&&&&+.&!.....$&&&&!......................&&&&&&&&&&&&&&&&&&&&&&&&&#............................................&&&&&&,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,%&&&&&&&&&&&&&&&&&&",
+"...$&&&&&&&&&&&&&&&&&&&&&&*..;&&&&&&$........................*++++...........*+$@@$$+#........*$@@$*..#+++*...*+;........;+*....;+@!@$#..++......+@!!+......................&&&&&&&&&&&&&&&&&&&&&&&&&&;...........................................&&&&&&,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,%&&&&&&&&&&&&&&&&&&&",
+"...;&&&&&&&&&&&&&&&&&&&&&$.;@&&&&&&&........................................................................................................................................&&&&&&&&&&&&&&&&&&&&&&&&&&&*..........................................&&&&&&,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,'&&&&&&&&&&&&&&&&&&&&",
+"....;&&&&&&&&&&&&&&&&&&&&;.&&&&&&&&;........................................................................................................................................&&&&&&&&&&&&&&&&&&&&&&&&&&&&@;........................................&&&&&&,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,%!&&&&&&&&&&&&&&&&&&&&&",
+".....*&&&&&&&&&&&&&&&&&&$+&&&&&&&&;.........................................................................................................................................&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&!+;;....................................&&&&&&,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,--'!&&&&&&&&&&&&&&&&&&&&&&&",
+"......;&&&&&&&&&&&&&&&&&&&&&&&&&!;..........................................................................................................................................&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+".......;@&&&&&&&&&&&&&&&&&&&&&&$;...........................................................................................................................................&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+".........*&&&&&&&&&&&&&&&&&&&&*.............................................................................................................................................&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"...........+!&&&&&&&&&&&&&&!*...............................................................................................................................................&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+".............#+@&&&&&&&&!+;.................................................................................................................................................&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+".................;####;.....................................................................................................................................................&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"............................................................................................................................................................................&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"............................................................................................................................................................................&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"............................................................................................................................................................................&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"................................................................................................................................................................................................................................................................................................................................"};
diff --git a/ecos/packages/hal/arm/sa11x0/cerfpda/current/src/cerfpda_misc.c b/ecos/packages/hal/arm/sa11x0/cerfpda/current/src/cerfpda_misc.c
new file mode 100644
index 0000000..1835b52
--- /dev/null
+++ b/ecos/packages/hal/arm/sa11x0/cerfpda/current/src/cerfpda_misc.c
@@ -0,0 +1,168 @@
+//==========================================================================
+//
+// cerfpda_misc.c
+//
+// HAL misc board support code for StrongARM SA1110/Cerf
+//
+//==========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//==========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): gthomas
+// Contributors: hmt
+// 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/cerfpda.h> // Platform specifics
+
+#include <cyg/infra/diag.h> // diag_printf
+
+// All the MM table layout is here:
+#include <cyg/hal/hal_mm.h>
+
+#include <string.h> // memset
+
+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_DACR_DEFAULT;
+ 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, 32, ARM_CACHEABLE, ARM_BUFFERABLE, ARM_ACCESS_PERM_RW_RW); /* Boot flash ROMspace */
+ X_ARM_MMU_SECTION(0x080, 0xf00, 16, ARM_UNCACHEABLE, ARM_UNBUFFERABLE, ARM_ACCESS_PERM_RW_RW); /* Ethernet Adaptor */
+ X_ARM_MMU_SECTION(0x100, 0x100, 512, ARM_UNCACHEABLE, ARM_UNBUFFERABLE, ARM_ACCESS_PERM_RW_RW); /* Board Registers */
+ X_ARM_MMU_SECTION(0x200, 0x200, 512, ARM_UNCACHEABLE, ARM_UNBUFFERABLE, ARM_ACCESS_PERM_RW_RW); /* PCMCIA Socket A */
+ X_ARM_MMU_SECTION(0x300, 0x300, 512, ARM_UNCACHEABLE, ARM_UNBUFFERABLE, ARM_ACCESS_PERM_RW_RW); /* PCMCIA Sockets B */
+ X_ARM_MMU_SECTION(0x800, 0x800, 0x400, ARM_UNCACHEABLE, ARM_UNBUFFERABLE, ARM_ACCESS_PERM_RW_RW); /* StrongARM(R) Registers */
+ X_ARM_MMU_SECTION(0xC00, 0x000, 64, ARM_CACHEABLE, ARM_BUFFERABLE, ARM_ACCESS_PERM_RW_RW); /* DRAM Bank 0 */
+ X_ARM_MMU_SECTION(0xC00, 0xC00, 64, ARM_UNCACHEABLE, 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 */
+
+}
+
+//
+// Board control register support
+// Update the board control register (write only). Only the bits
+// specified by 'mask' are changed to 'value'.
+//
+
+void
+cerfpda_BCR(unsigned long mask, unsigned long value)
+{
+ _cerfpda_BCR = (_cerfpda_BCR & ~mask) | (mask & value);
+ *SA1110_BOARD_CONTROL = _cerfpda_BCR;
+}
+
+//
+// Platform specific initialization
+//
+
+void
+plf_hardware_init(void)
+{
+ // Force "alternate" use of GPIO pins used for LCD screen
+ *SA11X0_GPIO_ALTERNATE_FUNCTION |= 0x080003FC; // Bits 2..9
+ *SA11X0_GPIO_PIN_DIRECTION |= 0x080003FC; // Bits 2..9
+ *SA11X0_GPIO_PIN_OUTPUT_CLEAR = 0x080003FC; // Bits 2..9
+ *SA11X0_GPIO_PIN_OUTPUT_SET = 0x08000000; // CRYSTAL WAKEUP(GPIO27)
+
+ // Toggle A0 connected to the SBHE line on the Crystal chip.
+ *(char*)(0x20000000) = 1;
+ *(char*)(0x20000001) = 2;
+ *(char*)(0x20000000) = 3;
+ *(char*)(0x20000001) = 0;
+
+ // Configure the ethernet GPIO interrupt to rising-edge
+ HAL_INTERRUPT_CONFIGURE(SA1110_IRQ_GPIO_ETH, 0, 1);
+
+ // Configure the 16x5x GPIO interrupt to rising-edge
+ HAL_INTERRUPT_CONFIGURE(SA1110_IRQ_GPIO_16X5X, 0, 1);
+}
+
+#include CYGHWR_MEMORY_LAYOUT_H
+typedef void code_fun(void);
+void cerfpda_program_new_stack(void *func)
+{
+ register CYG_ADDRESS stack_ptr asm("sp");
+ register CYG_ADDRESS old_stack asm("r4");
+ register code_fun *new_func asm("r0");
+ old_stack = stack_ptr;
+ stack_ptr = CYGMEM_REGION_ram + CYGMEM_REGION_ram_SIZE - sizeof(CYG_ADDRESS);
+ new_func = (code_fun*)func;
+ new_func();
+ stack_ptr = old_stack;
+ return;
+}
+
+// ------------------------------------------------------------------------
+// EOF cerfpda_misc.c
diff --git a/ecos/packages/hal/arm/sa11x0/cerfpda/current/src/lcd_support.c b/ecos/packages/hal/arm/sa11x0/cerfpda/current/src/lcd_support.c
new file mode 100644
index 0000000..5650cce
--- /dev/null
+++ b/ecos/packages/hal/arm/sa11x0/cerfpda/current/src/lcd_support.c
@@ -0,0 +1,632 @@
+//==========================================================================
+//
+// lcd_support.c
+//
+// SA1110/CerfCube - LCD support routines
+//
+//==========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//==========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): gthomas
+// Contributors: gthomas
+// Date: 2000-06-05
+// Description: Tool used to test LCD stuff
+//####DESCRIPTIONEND####
+
+#include <pkgconf/system.h>
+
+#include <cyg/infra/diag.h>
+#include <cyg/hal/hal_io.h> // IO macros
+#include <cyg/hal/hal_arch.h> // Register state info
+#include <cyg/hal/hal_intr.h> // HAL interrupt macros
+
+#include <cyg/hal/hal_sa11x0.h> // Board definitions
+#include <cyg/hal/cerfpda.h>
+#include <cyg/hal/hal_cache.h>
+
+#ifdef CYGPKG_ISOINFRA
+# include <pkgconf/isoinfra.h>
+# ifdef CYGINT_ISO_STDIO_FORMATTED_IO
+# include <stdio.h> // sscanf
+# endif
+#endif
+
+#include "banner.xpm"
+
+#ifndef FALSE
+#define FALSE 0
+#define TRUE 1
+#endif
+
+static struct lcd_frame {
+ unsigned short palette[16];
+ unsigned short pixels[240][320];
+ unsigned char pad[256];
+} lcd_frame_buffer;
+
+#define RGB_RED(x) (((x)&0x1F)<<11)
+#define RGB_GREEN(x) (((x)&0x3F)<<5)
+#define RGB_BLUE(x) ((x)&0x1F)
+
+static volatile struct lcd_frame *fp;
+
+static int
+_hexdigit(char c)
+{
+ if ((c >= '0') && (c <= '9')) {
+ return c - '0';
+ } else
+ if ((c >= 'A') && (c <= 'F')) {
+ return (c - 'A') + 0x0A;
+ } else
+ if ((c >= 'a') && (c <= 'f')) {
+ return (c - 'a') + 0x0a;
+ }
+}
+
+static int
+_hex(char *cp)
+{
+ return (_hexdigit(*cp)<<4) | _hexdigit(*(cp+1));
+}
+
+static unsigned short
+parse_color(char *cp)
+{
+ int red, green, blue;
+
+ if (*cp == '#') {
+ red = _hex(cp+1);
+ green = _hex(cp+3);
+ blue = _hex(cp+5);
+ return RGB_RED(red>>3) | RGB_GREEN(green>>2) | RGB_BLUE(blue>>3);
+ } else {
+ // Should be "None"
+ return 0xFFFF;
+ }
+}
+
+#ifndef CYGINT_ISO_STDIO_FORMATTED_IO
+static int
+get_int(char **_cp)
+{
+ char *cp = *_cp;
+ char c;
+ int val = 0;
+
+ while ((c = *cp++) && (c != ' ')) {
+ if ((c >= '0') && (c <= '9')) {
+ val = val * 10 + (c - '0');
+ } else {
+ return -1;
+ }
+ }
+ *_cp = cp;
+ return val;
+}
+#endif
+
+void
+show_xpm(char *xpm[])
+{
+ int i, row, col;
+ char *cp;
+ int nrows, ncols, nclrs;
+ unsigned short colors[256]; // Mapped by character index
+
+ cp = xpm[0];
+#ifdef CYGINT_ISO_STDIO_FORMATTED_IO
+ if (sscanf(cp, "%d %d %d", &ncols, &nrows, &nclrs) != 3) {
+#else
+ if (((ncols = get_int(&cp)) < 0) ||
+ ((nrows = get_int(&cp)) < 0) ||
+ ((nclrs = get_int(&cp)) < 0)) {
+#endif
+ diag_printf("Can't parse XPM data, sorry\n");
+ return;
+ }
+ // diag_printf("%d rows, %d cols, %d colors\n", nrows, ncols, nclrs);
+
+ for (i = 0; i < 256; i++) {
+ colors[i] = 0x0000;
+ }
+ for (i = 0; i < nclrs; i++) {
+ cp = xpm[i+1];
+ colors[(unsigned int)*cp] = parse_color(&cp[4]);
+// printf("Color[%c] = %x\n", *cp, colors[(unsigned int)*cp]);
+ }
+
+ for (row = 0; row < nrows; row++) {
+ cp = xpm[nclrs+1+row];
+ for (col = 0; col < ncols; col++) {
+ fp->pixels[row][col] = colors[(unsigned int)*cp++];
+ }
+ }
+ // cyg_thread_delay(100);
+}
+
+// 8x8 Font - from Helios
+
+#define FIRST_CHAR 0x20
+#define LAST_CHAR 0x7E
+#define FONT_HEIGHT 8
+#define FONT_WIDTH 8
+#define CURSOR_ON 0x5F
+#define CURSOR_OFF 0x20
+static const char font_table[LAST_CHAR-FIRST_CHAR+1][8] =
+{
+ { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, /* */
+ { 0x18, 0x18, 0x18, 0x18, 0x18, 0x00, 0x18, 0x00 }, /* ! */
+ { 0x36, 0x36, 0x36, 0x00, 0x00, 0x00, 0x00, 0x00 }, /* " */
+ { 0x6C, 0x6C, 0xFE, 0x6C, 0xFE, 0x6C, 0x6C, 0x00 }, /* # */
+ { 0x30, 0xFC, 0x16, 0x7C, 0xD0, 0x7E, 0x18, 0x00 }, /* $ */
+ { 0x06, 0x66, 0x30, 0x18, 0x0C, 0x66, 0x60, 0x00 }, /* % */
+ { 0x1C, 0x36, 0x36, 0x1C, 0xB6, 0x66, 0xDC, 0x00 }, /* & */
+ { 0x18, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00 }, /* ' */
+ { 0x30, 0x18, 0x0C, 0x0C, 0x0C, 0x18, 0x30, 0x00 }, /* ( */
+ { 0x0C, 0x18, 0x30, 0x30, 0x30, 0x18, 0x0C, 0x00 }, /* ) */
+ { 0x00, 0x18, 0x7E, 0x3C, 0x7E, 0x18, 0x00, 0x00 }, /* * */
+ { 0x00, 0x18, 0x18, 0x7E, 0x18, 0x18, 0x00, 0x00 }, /* + */
+ { 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x0C }, /* , */
+ { 0x00, 0x00, 0x00, 0x7E, 0x00, 0x00, 0x00, 0x00 }, /* - */
+ { 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x00 }, /* . */
+ { 0x00, 0x60, 0x30, 0x18, 0x0C, 0x06, 0x00, 0x00 }, /* / */
+ { 0x3C, 0x66, 0x76, 0x7E, 0x6E, 0x66, 0x3C, 0x00 }, /* 0 */
+ { 0x18, 0x1C, 0x18, 0x18, 0x18, 0x18, 0x7E, 0x00 }, /* 1 */
+ { 0x3C, 0x66, 0x60, 0x30, 0x18, 0x0C, 0x7E, 0x00 }, /* 2 */
+ { 0x3C, 0x66, 0x60, 0x38, 0x60, 0x66, 0x3C, 0x00 }, /* 3 */
+ { 0x30, 0x38, 0x3C, 0x36, 0x7E, 0x30, 0x30, 0x00 }, /* 4 */
+ { 0x7E, 0x06, 0x3E, 0x60, 0x60, 0x66, 0x3C, 0x00 }, /* 5 */
+ { 0x38, 0x0C, 0x06, 0x3E, 0x66, 0x66, 0x3C, 0x00 }, /* 6 */
+ { 0x7E, 0x60, 0x30, 0x18, 0x0C, 0x0C, 0x0C, 0x00 }, /* 7 */
+ { 0x3C, 0x66, 0x66, 0x3C, 0x66, 0x66, 0x3C, 0x00 }, /* 8 */
+ { 0x3C, 0x66, 0x66, 0x7C, 0x60, 0x30, 0x1C, 0x00 }, /* 9 */
+ { 0x00, 0x00, 0x18, 0x18, 0x00, 0x18, 0x18, 0x00 }, /* : */
+ { 0x00, 0x00, 0x18, 0x18, 0x00, 0x18, 0x18, 0x0C }, /* ; */
+ { 0x30, 0x18, 0x0C, 0x06, 0x0C, 0x18, 0x30, 0x00 }, /* < */
+ { 0x00, 0x00, 0x7E, 0x00, 0x7E, 0x00, 0x00, 0x00 }, /* = */
+ { 0x0C, 0x18, 0x30, 0x60, 0x30, 0x18, 0x0C, 0x00 }, /* > */
+ { 0x3C, 0x66, 0x30, 0x18, 0x18, 0x00, 0x18, 0x00 }, /* ? */
+ { 0x3C, 0x66, 0x76, 0x56, 0x76, 0x06, 0x3C, 0x00 }, /* @ */
+ { 0x3C, 0x66, 0x66, 0x7E, 0x66, 0x66, 0x66, 0x00 }, /* A */
+ { 0x3E, 0x66, 0x66, 0x3E, 0x66, 0x66, 0x3E, 0x00 }, /* B */
+ { 0x3C, 0x66, 0x06, 0x06, 0x06, 0x66, 0x3C, 0x00 }, /* C */
+ { 0x1E, 0x36, 0x66, 0x66, 0x66, 0x36, 0x1E, 0x00 }, /* D */
+ { 0x7E, 0x06, 0x06, 0x3E, 0x06, 0x06, 0x7E, 0x00 }, /* E */
+ { 0x7E, 0x06, 0x06, 0x3E, 0x06, 0x06, 0x06, 0x00 }, /* F */
+ { 0x3C, 0x66, 0x06, 0x76, 0x66, 0x66, 0x3C, 0x00 }, /* G */
+ { 0x66, 0x66, 0x66, 0x7E, 0x66, 0x66, 0x66, 0x00 }, /* H */
+ { 0x7E, 0x18, 0x18, 0x18, 0x18, 0x18, 0x7E, 0x00 }, /* I */
+ { 0x7C, 0x30, 0x30, 0x30, 0x30, 0x36, 0x1C, 0x00 }, /* J */
+ { 0x66, 0x36, 0x1E, 0x0E, 0x1E, 0x36, 0x66, 0x00 }, /* K */
+ { 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x7E, 0x00 }, /* L */
+ { 0xC6, 0xEE, 0xFE, 0xD6, 0xD6, 0xC6, 0xC6, 0x00 }, /* M */
+ { 0x66, 0x66, 0x6E, 0x7E, 0x76, 0x66, 0x66, 0x00 }, /* N */
+ { 0x3C, 0x66, 0x66, 0x66, 0x66, 0x66, 0x3C, 0x00 }, /* O */
+ { 0x3E, 0x66, 0x66, 0x3E, 0x06, 0x06, 0x06, 0x00 }, /* P */
+ { 0x3C, 0x66, 0x66, 0x66, 0x56, 0x36, 0x6C, 0x00 }, /* Q */
+ { 0x3E, 0x66, 0x66, 0x3E, 0x36, 0x66, 0x66, 0x00 }, /* R */
+ { 0x3C, 0x66, 0x06, 0x3C, 0x60, 0x66, 0x3C, 0x00 }, /* S */
+ { 0x7E, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x00 }, /* T */
+ { 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x3C, 0x00 }, /* U */
+ { 0x66, 0x66, 0x66, 0x66, 0x66, 0x3C, 0x18, 0x00 }, /* V */
+ { 0xC6, 0xC6, 0xD6, 0xD6, 0xFE, 0xEE, 0xC6, 0x00 }, /* W */
+ { 0x66, 0x66, 0x3C, 0x18, 0x3C, 0x66, 0x66, 0x00 }, /* X */
+ { 0x66, 0x66, 0x66, 0x3C, 0x18, 0x18, 0x18, 0x00 }, /* Y */
+ { 0x7E, 0x60, 0x30, 0x18, 0x0C, 0x06, 0x7E, 0x00 }, /* Z */
+ { 0x3E, 0x06, 0x06, 0x06, 0x06, 0x06, 0x3E, 0x00 }, /* [ */
+ { 0x00, 0x06, 0x0C, 0x18, 0x30, 0x60, 0x00, 0x00 }, /* \ */
+ { 0x7C, 0x60, 0x60, 0x60, 0x60, 0x60, 0x7C, 0x00 }, /* ] */
+ { 0x3C, 0x66, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, /* ^ */
+ { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF }, /* _ */
+ { 0x0C, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, /* ` */
+ { 0x00, 0x00, 0x3C, 0x60, 0x7C, 0x66, 0x7C, 0x00 }, /* a */
+ { 0x06, 0x06, 0x3E, 0x66, 0x66, 0x66, 0x3E, 0x00 }, /* b */
+ { 0x00, 0x00, 0x3C, 0x66, 0x06, 0x66, 0x3C, 0x00 }, /* c */
+ { 0x60, 0x60, 0x7C, 0x66, 0x66, 0x66, 0x7C, 0x00 }, /* d */
+ { 0x00, 0x00, 0x3C, 0x66, 0x7E, 0x06, 0x3C, 0x00 }, /* e */
+ { 0x38, 0x0C, 0x0C, 0x3E, 0x0C, 0x0C, 0x0C, 0x00 }, /* f */
+ { 0x00, 0x00, 0x7C, 0x66, 0x66, 0x7C, 0x60, 0x3C }, /* g */
+ { 0x06, 0x06, 0x3E, 0x66, 0x66, 0x66, 0x66, 0x00 }, /* h */
+ { 0x18, 0x00, 0x1C, 0x18, 0x18, 0x18, 0x3C, 0x00 }, /* i */
+ { 0x18, 0x00, 0x1C, 0x18, 0x18, 0x18, 0x18, 0x0E }, /* j */
+ { 0x06, 0x06, 0x66, 0x36, 0x1E, 0x36, 0x66, 0x00 }, /* k */
+ { 0x1C, 0x18, 0x18, 0x18, 0x18, 0x18, 0x3C, 0x00 }, /* l */
+ { 0x00, 0x00, 0x6C, 0xFE, 0xD6, 0xD6, 0xC6, 0x00 }, /* m */
+ { 0x00, 0x00, 0x3E, 0x66, 0x66, 0x66, 0x66, 0x00 }, /* n */
+ { 0x00, 0x00, 0x3C, 0x66, 0x66, 0x66, 0x3C, 0x00 }, /* o */
+ { 0x00, 0x00, 0x3E, 0x66, 0x66, 0x3E, 0x06, 0x06 }, /* p */
+ { 0x00, 0x00, 0x7C, 0x66, 0x66, 0x7C, 0x60, 0xE0 }, /* q */
+ { 0x00, 0x00, 0x36, 0x6E, 0x06, 0x06, 0x06, 0x00 }, /* r */
+ { 0x00, 0x00, 0x7C, 0x06, 0x3C, 0x60, 0x3E, 0x00 }, /* s */
+ { 0x0C, 0x0C, 0x3E, 0x0C, 0x0C, 0x0C, 0x38, 0x00 }, /* t */
+ { 0x00, 0x00, 0x66, 0x66, 0x66, 0x66, 0x7C, 0x00 }, /* u */
+ { 0x00, 0x00, 0x66, 0x66, 0x66, 0x3C, 0x18, 0x00 }, /* v */
+ { 0x00, 0x00, 0xC6, 0xD6, 0xD6, 0xFE, 0x6C, 0x00 }, /* w */
+ { 0x00, 0x00, 0x66, 0x3C, 0x18, 0x3C, 0x66, 0x00 }, /* x */
+ { 0x00, 0x00, 0x66, 0x66, 0x66, 0x7C, 0x60, 0x3C }, /* y */
+ { 0x00, 0x00, 0x7E, 0x30, 0x18, 0x0C, 0x7E, 0x00 }, /* z */
+ { 0x30, 0x18, 0x18, 0x0E, 0x18, 0x18, 0x30, 0x00 }, /* { */
+ { 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x00 }, /* | */
+ { 0x0C, 0x18, 0x18, 0x70, 0x18, 0x18, 0x0C, 0x00 }, /* } */
+ { 0x8C, 0xD6, 0x62, 0x00, 0x00, 0x00, 0x00, 0x00 } /* ~ */
+};
+
+#define LCD_WIDTH 320
+#define LCD_HEIGHT 240
+#define LCD_DEPTH 16
+
+// This can be 1 or 2
+#define SCREEN_SCALE 2
+#define NIBBLES_PER_PIXEL (1*SCREEN_SCALE)
+#define PIXELS_PER_BYTE (2/NIBBLES_PER_PIXEL)
+#define PIXEL_MASK ((1<<PIXELS_PER_BYTE)-1)
+
+// Physical screen info
+//static int lcd_depth = LCD_DEPTH; // Should be 1, 2, or 4
+static int lcd_width = LCD_WIDTH;
+static int lcd_height = LCD_HEIGHT;
+
+// Virtual screen info
+static int curX = 0; // Last used position
+static int curY = 0;
+//static int width = LCD_WIDTH / (FONT_WIDTH*NIBBLES_PER_PIXEL);
+//static int height = LCD_HEIGHT / (FONT_HEIGHT*SCREEN_SCALE);
+static int fg = RGB_RED(0) | RGB_GREEN(0) | RGB_BLUE(0);
+static int bg = RGB_RED(31) | RGB_GREEN(63) | RGB_BLUE(31);
+#define SCREEN_WIDTH (LCD_WIDTH/FONT_WIDTH)
+#define SCREEN_HEIGHT (LCD_HEIGHT/FONT_HEIGHT)
+static char screen[SCREEN_HEIGHT][SCREEN_WIDTH];
+#define SCREEN_START 7
+
+// Functions
+static void lcd_drawc(cyg_int8 c, int x, int y);
+
+void
+lcd_init(int depth)
+{
+ // Currently only color/16bpp supported
+
+ unsigned long _fp;
+
+ // Frame buffer must be aligned on a 16 byte boundary
+ _fp = (((unsigned long)&lcd_frame_buffer) + 15) & ~15;
+ fp = (struct lcd_frame *)(_fp + SA11X0_RAM_BANK0_BASE);
+ // Enable LCD in 320x240 16bpp
+ *SA1110_DBAR1 = (unsigned long)&(fp->palette);
+ *SA1110_LCCR1 = 0x1D1D0930;
+ *SA1110_LCCR2 = 0xEF;
+ *SA1110_LCCR3 = 0x0c;
+ fp->palette[0] = 0x2000; // Tell controller 16 bits
+// *SA1110_LCCR0 = 0xBB; // B&W
+ *SA1110_LCCR0 = 0xB9; // Color
+// cerfpda_BCR(SA1110_BCR_LCD_BPP, SA1110_BCR_LCD_12BPP);
+ cerfpda_BCR(SA1110_BCR_LCD_BPP, SA1110_BCR_LCD_16BPP);
+ cerfpda_BCR(SA1110_BCR_LCD, SA1110_BCR_LCD_ON);
+ cerfpda_BCR(SA1110_BCR_BACKLIGHT, SA1110_BCR_BACKLIGHT);
+}
+
+// Clear screen
+void
+lcd_clear(void)
+{
+ int row, col;
+ for (row = 0; row < lcd_height; row++) {
+ for (col = 0; col < lcd_width; col++) {
+ fp->pixels[row][col] = bg;
+ }
+ }
+ for (row = 0; row < SCREEN_HEIGHT; row++) {
+ for (col = 0; col < SCREEN_WIDTH; col++) {
+ screen[row][col] = ' ';
+ }
+ }
+ // Note: Row 0 seems to wrap incorrectly
+ curX = 0; curY = SCREEN_START;
+ lcd_drawc(CURSOR_ON, curX, curY);
+ show_xpm(banner_xpm);
+}
+
+// Position cursor
+void
+lcd_moveto(int X, int Y)
+{
+ lcd_drawc(CURSOR_OFF, curX, curY);
+ if (X < 0) X = 0;
+ if (X >= SCREEN_WIDTH) X = SCREEN_WIDTH-1;
+ curX = X;
+ if (Y < SCREEN_START) Y = SCREEN_START;
+ if (Y >= SCREEN_HEIGHT) Y = SCREEN_HEIGHT-1;
+ curY = Y;
+ lcd_drawc(CURSOR_ON, curX, curY);
+}
+
+// Render a character at position (X,Y) with current background/foreground
+static void
+lcd_drawc(cyg_int8 c, int x, int y)
+{
+ // Currently hard-coded for 16bpp
+ cyg_uint8 bits;
+ cyg_uint16 *pixels;
+ int l, p;
+
+ screen[curY][curX] = c;
+ for (l = 0; l < FONT_HEIGHT; l++) {
+ bits = font_table[c-FIRST_CHAR][l];
+ pixels = &fp->pixels[curY*FONT_HEIGHT+l][curX*FONT_WIDTH];
+ for (p = 0; p < 8; p++) {
+ if (bits & 0x01) {
+ *pixels++ = fg;
+ } else {
+ *pixels++ = bg;
+ }
+ bits >>= 1;
+ }
+ }
+}
+
+static void
+lcd_scroll(void)
+{
+ int row, col;
+ cyg_uint8 *c1, *c2;
+ cyg_uint16 *p1, *p2;
+
+ // First scroll up the virtual screen
+ for (row = SCREEN_START; row < SCREEN_HEIGHT; row++) {
+ c1 = &screen[row-1][0];
+ c2 = &screen[row][0];
+ for (col = 0; col < SCREEN_WIDTH; col++) {
+ *c1++ = *c2++;
+ }
+ }
+ c1 = &screen[SCREEN_HEIGHT-1][0];
+ for (col = 0; col < SCREEN_WIDTH; col++) {
+ *c1++ = 0x20;
+ }
+ // Now the physical screen
+ for (row = FONT_HEIGHT*(SCREEN_START+1); row < LCD_HEIGHT; row++) {
+ p1 = &fp->pixels[row-FONT_HEIGHT][0];
+ p2 = &fp->pixels[row][0];
+ for (col = 0; col < LCD_WIDTH; col++) {
+ *p1++ = *p2++;
+ }
+ }
+ for (row = LCD_HEIGHT-FONT_HEIGHT; row < LCD_HEIGHT; row++) {
+ p1 = &fp->pixels[row][0];
+ for (col = 0; col < LCD_WIDTH; col++) {
+ *p1++ = bg;
+ }
+ }
+}
+
+// Draw one character at the current position
+void
+lcd_putc(cyg_int8 c)
+{
+ lcd_drawc(CURSOR_OFF, curX, curY);
+ switch (c) {
+ case '\r':
+ curX = 0;
+ break;
+ case '\n':
+ curY++;
+ if (curY == SCREEN_HEIGHT) {
+ lcd_scroll();
+ curY--;
+ }
+ break;
+ case '\b':
+ curX--;
+ if (curX < 0) {
+ curY--;
+ if (curY < 0) curY = 0;
+ curX = SCREEN_WIDTH-1;
+ }
+ break;
+ default:
+ lcd_drawc(c, curX, curY);
+ curX++;
+ if (curX == SCREEN_WIDTH) {
+ curY++;
+ curX = 0;
+ }
+ }
+ lcd_drawc(CURSOR_ON, curX, curY);
+}
+
+// Basic LCD 'printf()' support
+
+#include <stdarg.h>
+
+#define is_digit(c) ((c >= '0') && (c <= '9'))
+
+static int
+_cvt(unsigned long val, char *buf, long radix, char *digits)
+{
+ char temp[80];
+ char *cp = temp;
+ int length = 0;
+ if (val == 0) {
+ /* Special case */
+ *cp++ = '0';
+ } else {
+ while (val) {
+ *cp++ = digits[val % radix];
+ val /= radix;
+ }
+ }
+ while (cp != temp) {
+ *buf++ = *--cp;
+ length++;
+ }
+ *buf = '\0';
+ return (length);
+}
+
+int
+lcd_vprintf(void (*putc)(cyg_int8), const char *fmt0, va_list ap)
+{
+ char c, sign, *cp;
+ int left_prec, right_prec, zero_fill, length, pad, pad_on_right;
+ char buf[32];
+ long val;
+ while ((c = *fmt0++)) {
+ cp = buf;
+ length = 0;
+ if (c == '%') {
+ c = *fmt0++;
+ left_prec = right_prec = pad_on_right = 0;
+ if (c == '-') {
+ c = *fmt0++;
+ pad_on_right++;
+ }
+ if (c == '0') {
+ zero_fill = TRUE;
+ c = *fmt0++;
+ } else {
+ zero_fill = FALSE;
+ }
+ while (is_digit(c)) {
+ left_prec = (left_prec * 10) + (c - '0');
+ c = *fmt0++;
+ }
+ if (c == '.') {
+ c = *fmt0++;
+ zero_fill++;
+ while (is_digit(c)) {
+ right_prec = (right_prec * 10) + (c - '0');
+ c = *fmt0++;
+ }
+ } else {
+ right_prec = left_prec;
+ }
+ sign = '\0';
+ switch (c) {
+ case 'd':
+ case 'x':
+ case 'X':
+ val = va_arg(ap, long);
+ switch (c) {
+ case 'd':
+ if (val < 0) {
+ sign = '-';
+ val = -val;
+ }
+ length = _cvt(val, buf, 10, "0123456789");
+ break;
+ case 'x':
+ length = _cvt(val, buf, 16, "0123456789abcdef");
+ break;
+ case 'X':
+ length = _cvt(val, buf, 16, "0123456789ABCDEF");
+ break;
+ }
+ break;
+ case 's':
+ cp = va_arg(ap, char *);
+ length = strlen(cp);
+ break;
+ case 'c':
+ c = va_arg(ap, long /*char*/);
+ (*putc)(c);
+ continue;
+ default:
+ (*putc)('?');
+ }
+ pad = left_prec - length;
+ if (sign != '\0') {
+ pad--;
+ }
+ if (zero_fill) {
+ c = '0';
+ if (sign != '\0') {
+ (*putc)(sign);
+ sign = '\0';
+ }
+ } else {
+ c = ' ';
+ }
+ if (!pad_on_right) {
+ while (pad-- > 0) {
+ (*putc)(c);
+ }
+ }
+ if (sign != '\0') {
+ (*putc)(sign);
+ }
+ while (length-- > 0) {
+ (*putc)(c = *cp++);
+ if (c == '\n') {
+ (*putc)('\r');
+ }
+ }
+ if (pad_on_right) {
+ while (pad-- > 0) {
+ (*putc)(' ');
+ }
+ }
+ } else {
+ (*putc)(c);
+ if (c == '\n') {
+ (*putc)('\r');
+ }
+ }
+ }
+}
+
+int
+lcd_printf(char const *fmt, ...)
+{
+ int ret;
+ va_list ap;
+
+ va_start(ap, fmt);
+ ret = lcd_vprintf(lcd_putc, fmt, ap);
+ va_end(ap);
+ return (ret);
+}
+
+void
+set_bg(int red, int green, int blue)
+{
+ bg = RGB_RED(red) | RGB_GREEN(green) | RGB_BLUE(blue);
+}
+
+void
+set_fg(int red, int green, int blue)
+{
+ fg = RGB_RED(red) | RGB_GREEN(green) | RGB_BLUE(blue);
+}
diff --git a/ecos/packages/hal/arm/sa11x0/flexanet/current/ChangeLog b/ecos/packages/hal/arm/sa11x0/flexanet/current/ChangeLog
new file mode 100644
index 0000000..d469752
--- /dev/null
+++ b/ecos/packages/hal/arm/sa11x0/flexanet/current/ChangeLog
@@ -0,0 +1,60 @@
+2009-01-31 Bart Veer <bartv@ecoscentric.com>
+
+ * cdl/hal_arm_sa11x0_flexanet.cdl: update compiler flags for
+ recent gcc
+
+2003-02-13 Patrick Doyle <wpd@delcomsys.com>
+ * src/flexanet_misc.c: Replaced explicit prototype of memset with
+ #include <string.h>.
+
+2002-05-14 Jesper Skov <jskov@redhat.com>
+
+ * src/flexanet_misc.c: Fixed warning.
+
+2002-05-07 Gary Thomas <gthomas@redhat.com>
+
+ * cdl/hal_arm_sa11x0_flexanet.cdl:
+ Standardize CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_DEFAULT usage.
+
+
+2002-01-28 Jesper Skov <jskov@redhat.com>
+
+ * include/plf_io.h: Added.
+
+2001-10-30 Jordi Colomer <jco@ict.es>
+
+ * include/flexanet.h: minor changes to the GPIO usage.
+ * include/hal_platform_setup.h: solved some problems with the
+ sleep/wakeup procedure.
+
+2001-10-04 Jordi Colomer <jco@ict.es>
+
+ * include/hal_platform_setup.h: Add sleep/resume support.
+
+2001-07-27 Jordi Colomer <jco@ict.es>
+
+ * Initial version of support for BSE Flexanet/SA1110 handheld board.
+
+//===========================================================================
+// ####GPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 2 or (at your option) any
+// later version.
+//
+// This program is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the
+// Free Software Foundation, Inc., 51 Franklin Street,
+// Fifth Floor, Boston, MA 02110-1301, USA.
+// -------------------------------------------
+// ####GPLCOPYRIGHTEND####
+//===========================================================================
diff --git a/ecos/packages/hal/arm/sa11x0/flexanet/current/cdl/hal_arm_sa11x0_flexanet.cdl b/ecos/packages/hal/arm/sa11x0/flexanet/current/cdl/hal_arm_sa11x0_flexanet.cdl
new file mode 100644
index 0000000..8e7c754
--- /dev/null
+++ b/ecos/packages/hal/arm/sa11x0/flexanet/current/cdl/hal_arm_sa11x0_flexanet.cdl
@@ -0,0 +1,355 @@
+# ====================================================================
+#
+# hal_arm_sa11x0_flexanet.cdl
+#
+# Flexanet handhelds core board configuration data
+#
+# ====================================================================
+## ####ECOSGPLCOPYRIGHTBEGIN####
+## -------------------------------------------
+## This file is part of eCos, the Embedded Configurable Operating System.
+## Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+##
+## eCos is free software; you can redistribute it and/or modify it under
+## the terms of the GNU General Public License as published by the Free
+## Software Foundation; either version 2 or (at your option) any later
+## version.
+##
+## eCos is distributed in the hope that it will be useful, but WITHOUT
+## ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+## FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+## for more details.
+##
+## You should have received a copy of the GNU General Public License
+## along with eCos; if not, write to the Free Software Foundation, Inc.,
+## 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+##
+## As a special exception, if other files instantiate templates or use
+## macros or inline functions from this file, or you compile this file
+## and link it with other works to produce a work based on this file,
+## this file does not by itself cause the resulting work to be covered by
+## the GNU General Public License. However the source code for this file
+## must still be made available in accordance with section (3) of the GNU
+## General Public License v2.
+##
+## This exception does not invalidate any other reasons why a work based
+## on this file might be covered by the GNU General Public License.
+## -------------------------------------------
+## ####ECOSGPLCOPYRIGHTEND####
+# ====================================================================
+######DESCRIPTIONBEGIN####
+#
+# Author(s): gthomas
+# Original data: gthomas
+# Contributors:
+# Date: 2000-05-08
+#
+#####DESCRIPTIONEND####
+#
+# ====================================================================
+cdl_package CYGPKG_HAL_ARM_SA11X0_FLEXANET {
+ display "ARM SA1110/Flexanet handheld core board"
+ parent CYGPKG_HAL_ARM_SA11X0
+ hardware
+ include_dir cyg/hal
+ define_header hal_arm_sa11x0_flexanet.h
+ description "
+ This HAL platform package provides generic
+ support for the Flexanet handheld core board,
+ developed by Trend Communications SL in Barcelona."
+
+ compile flexanet_misc.c
+
+ implements CYGINT_HAL_DEBUG_GDB_STUBS
+ implements CYGINT_HAL_DEBUG_GDB_STUBS_BREAK
+ implements CYGINT_HAL_VIRTUAL_VECTOR_SUPPORT
+
+ implements CYGHWR_HAL_ARM_SA11X0_UART1
+
+ 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_flexanet.h>"
+ puts $::cdl_header "#define HAL_PLATFORM_CPU \"StrongARM 1110\""
+ puts $::cdl_header "#define HAL_PLATFORM_BOARD \"Flexanet HH core board\""
+ puts $::cdl_header "#define HAL_PLATFORM_EXTRA \"\""
+ puts $::cdl_header "#define HAL_PLATFORM_MACHINE_TYPE 54"
+ puts $::cdl_header "#define HAL_ARCH_PROGRAM_NEW_STACK flexanet_program_new_stack"
+ }
+
+ 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 Flexanet core 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 57600 115200
+ default_value 57600
+ 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 57600 115200
+ default_value 57600
+ 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_DEBUG_CHANNEL {
+ display "Debug serial port"
+ active_if CYGPRI_HAL_VIRTUAL_VECTOR_DEBUG_CHANNEL_CONFIGURABLE
+ flavor data
+ legal_values 0 to CYGNUM_HAL_VIRTUAL_VECTOR_COMM_CHANNELS-1
+ default_value 1
+ description "
+ The flexanet board has two serial ports (UART1 and UART3).
+ This option chooses which port will be used to connect to
+ a host running GDB."
+ }
+
+ 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 0
+ }
+
+ cdl_option CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL {
+ display "Diagnostic serial port"
+ active_if CYGPRI_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_CONFIGURABLE
+ flavor data
+ legal_values 0 to CYGNUM_HAL_VIRTUAL_VECTOR_COMM_CHANNELS-1
+ default_value CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_DEFAULT
+ description "
+ The flexanet board has two serial ports (UART1 and UART3).
+ 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 { CYGBLD_GLOBAL_WARNFLAGS . CYGBLD_ARCH_CFLAGS .
+ "-mcpu=strongarm1100 -g -O2 -ffunction-sections -fdata-sections -fno-rtti -fno-exceptions " }
+ 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 { CYGBLD_ARCH_LDFLAGS . "-mcpu=strongarm1100 -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) --remove-section=.fixed_vectors -O binary $< $@
+ }
+ }
+ }
+
+ cdl_component CYGPKG_HAL_ARM_SA11X0_FLEXANET_OPTIONS {
+ display "StrongARM SA1110/Flexanet 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_FLEXANET_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 Flexanet HAL. These flags are used in addition
+ to the set of global flags."
+ }
+
+ cdl_option CYGPKG_HAL_ARM_SA11X0_FLEXANET_CFLAGS_REMOVE {
+ display "Suppressed compiler flags"
+ flavor data
+ no_define
+ default_value { "" }
+ description "
+ This option modifies the set of compiler flags for
+ building the StrongARM Flexanet HAL. These flags are removed from
+ the set of global flags if present."
+ }
+
+ cdl_option CYGPKG_HAL_ARM_SA11X0_FLEXANET_TESTS {
+ display "StrongARM SA1110/Flexanet tests"
+ flavor data
+ no_define
+# calculated { "tests/dram-test" }
+ calculated { "" }
+ description "
+ This option specifies the set of tests for the StrongARM Flexanet HAL."
+ }
+ }
+
+ cdl_component CYGHWR_MEMORY_LAYOUT {
+ display "Memory layout"
+ flavor data
+ no_define
+ calculated { CYG_HAL_STARTUP == "RAM" ? "arm_sa11x0_flexanet_ram" : \
+ "arm_sa11x0_flexanet_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_flexanet_ram.ldi>" : \
+ "<pkgconf/mlt_arm_sa11x0_flexanet_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_flexanet_ram.h>" : \
+ "<pkgconf/mlt_arm_sa11x0_flexanet_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 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_REDBOOT_HAL_OPTIONS {
+ display "Redboot HAL options"
+ flavor none
+ no_define
+ parent CYGPKG_REDBOOT
+ active_if CYGPKG_REDBOOT
+ description "
+ This option lists the target's requirements for a valid Redboot
+ configuration."
+
+ 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 $< $@
+ }
+ }
+ }
+
+}
diff --git a/ecos/packages/hal/arm/sa11x0/flexanet/current/include/flexanet.h b/ecos/packages/hal/arm/sa11x0/flexanet/current/include/flexanet.h
new file mode 100644
index 0000000..88fc970
--- /dev/null
+++ b/ecos/packages/hal/arm/sa11x0/flexanet/current/include/flexanet.h
@@ -0,0 +1,154 @@
+#ifndef CYGONCE_FLEXANET_H
+#define CYGONCE_FLEXANET_H
+
+/*=============================================================================
+//
+// flexanet.h
+//
+// Platform specific support (register layout, etc)
+//
+//=============================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): Jordi Colomer <jco@ict.es>
+// Contributors: Jordi Colomer <jxo@ict.es>
+// Date: 2001-06-15
+// Purpose: SA1110/Flexanet platform specific support routines
+// Description:
+// Usage: #include <cyg/hal/flexanet.h>
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================*/
+
+
+#ifndef __ASSEMBLER__
+//
+// Board Control Register
+// Note: This register is write-only. Thus a shadow copy is provided so that
+// it may be safely updated/shared by multiple threads.
+//
+extern unsigned long _flexanet_BCR; // Shadow copy
+
+extern void flexanet_BCR(unsigned long mask, unsigned long value);
+
+#endif
+
+//
+// Signal assertion levels
+//
+#define SA1110_LOGIC_ONE(m) (m & 0xFFFFFFFF)
+#define SA1110_LOGIC_ZERO(m) (m & 0x00000000)
+
+//
+// GPIO settings
+//
+#define SA1110_GPIO_DIR 0x080037FE
+#define SA1110_GPIO_ALT 0x080037FC
+#define SA1110_GPIO_CLR 0x080037FE
+#define SA1110_GPIO_SET 0x00000000
+
+
+//
+// Flexanet Board Control Register
+//
+#define SA1110_BOARD_CONTROL REG32_PTR(0x10000000)
+
+/* Power-up value */
+#define SA1110_BCR_MIN 0x00000000
+
+/* Mandatory bits */
+#define SA1110_BCR_LED_GREEN (1<<0) /* General-purpose green LED (1 = on) */
+#define SA1110_BCR_SPARE_1 (1<<1) /* Not defined */
+#define SA1110_BCR_CF1_RST (1<<2) /* Compact Flash Slot #1 Reset (1 = reset) */
+#define SA1110_BCR_CF2_RST (1<<3) /* Compact Flash Slot #2 Reset (1 = reset) */
+#define SA1110_BCR_GUI_NRST (1<<4) /* GUI board reset (0 = reset) */
+#define SA1110_BCR_RTS1 (1<<5) /* RS232 RTS for UART-1 */
+#define SA1110_BCR_RTS3 (1<<6) /* RS232 RTS for UART-3 */
+#define SA1110_BCR_XCDBG0 (1<<7) /* Not defined. Wired to XPLA3 for debug */
+
+/* BCR extension, only required by L3-bus in some audio codecs */
+#define SA1110_BCR_L3MOD (1<<8) /* L3-bus MODE signal */
+#define SA1110_BCR_L3DAT (1<<9) /* L3-bus DATA signal */
+#define SA1110_BCR_L3CLK (1<<10) /* L3-bus CLK signal */
+#define SA1110_BCR_SPARE_11 (1<<11) /* Not defined */
+#define SA1110_BCR_SPARE_12 (1<<12) /* Not defined */
+#define SA1110_BCR_SPARE_13 (1<<13) /* Not defined */
+#define SA1110_BCR_SPARE_14 (1<<14) /* Not defined */
+#define SA1110_BCR_SPARE_15 (1<<15) /* Not defined */
+
+/* Board Status Register */
+#define SA1110_BSR_CTS1 (1<<0) /* RS232 CTS for UART-1 */
+#define SA1110_BSR_CTS3 (1<<1) /* RS232 CTS for UART-3 */
+#define SA1110_BSR_DSR1 (1<<2) /* RS232 DSR for UART-1 */
+#define SA1110_BSR_DSR3 (1<<3) /* RS232 DSR for UART-3 */
+#define SA1110_BSR_ID0 (1<<4) /* Board identification */
+#define SA1110_BSR_ID1 (1<<5)
+#define SA1110_BSR_CFG0 (1<<6) /* Board configuration options */
+#define SA1110_BSR_CFG1 (1<<7)
+
+/* GPIOs for which the generic definition doesn't say much */
+#define SA1110_GPIO_CF1_NCD (1<<14) /* Card Detect from CF slot #1 */
+#define SA1110_GPIO_CF2_NCD (1<<15) /* Card Detect from CF slot #2 */
+#define SA1110_GPIO_CF1_IRQ (1<<16) /* IRQ from CF slot #1 */
+#define SA1110_SA1110_GPIO_CF2_IRQ (1<<17) /* IRQ from CF slot #2 */
+#define SA1110_GPIO_APP_IRQ (1<<18) /* Extra IRQ from application bus */
+#define SA1110_GPIO_RADIO_REF (1<<20) /* Ref. clock for UART3 (Radio) */
+#define SA1110_GPIO_CF1_BVD1 (1<<21) /* BVD1 from CF slot #1 */
+#define SA1110_GPIO_CF2_BVD1 (1<<22) /* BVD1 from CF slot #2 */
+#define SA1110_GPIO_GUI_IRQ (1<<23) /* IRQ from GUI board (i.e., UCB1300) */
+#define SA1110_GPIO_ETH_IRQ (1<<24) /* IRQ from Ethernet controller */
+#define SA1110_GPIO_INTIP_IRQ (1<<25) /* Measurement IRQ (INTIP) */
+#define SA1110_GPIO_XMI_IRQ (1<<26) /* External Module Insertion interrupt */
+
+/* IRQ mappings from GPIOs */
+#define SA1110_IRQ_GPIO_CF1_CD CYGNUM_HAL_INTERRUPT_GPIO14
+#define SA1110_IRQ_GPIO_CF2_CD CYGNUM_HAL_INTERRUPT_GPIO15
+#define SA1110_IRQ_GPIO_CF1_IRQ CYGNUM_HAL_INTERRUPT_GPIO16
+#define SA1110_IRQ_GPIO_CF2_IRQ CYGNUM_HAL_INTERRUPT_GPIO17
+#define SA1110_IRQ_GPIO_APP CYGNUM_HAL_INTERRUPT_GPIO18
+#define SA1110_IRQ_GPIO_CF1_BVD1 CYGNUM_HAL_INTERRUPT_GPIO21
+#define SA1110_IRQ_GPIO_CF2_BVD1 CYGNUM_HAL_INTERRUPT_GPIO22
+#define SA1110_IRQ_GPIO_GUI CYGNUM_HAL_INTERRUPT_GPIO23
+#define SA1110_IRQ_GPIO_ETH CYGNUM_HAL_INTERRUPT_GPIO24
+#define SA1110_IRQ_GPIO_INTIP CYGNUM_HAL_INTERRUPT_GPIO25
+
+/* On-Board Ethernet (physical addrs) */
+#define SA1110_FHH_ETH_IOBASE 0x18000000 /* I/O base */
+#define SA1110_FHH_ETH_MMBASE 0x18800000 /* Attribute-memory base */
+
+/*---------------------------------------------------------------------------*/
+/* end of flexanet.h */
+#endif /* CYGONCE_FLEXANET_H */
diff --git a/ecos/packages/hal/arm/sa11x0/flexanet/current/include/hal_platform_setup.h b/ecos/packages/hal/arm/sa11x0/flexanet/current/include/hal_platform_setup.h
new file mode 100644
index 0000000..6c00069
--- /dev/null
+++ b/ecos/packages/hal/arm/sa11x0/flexanet/current/include/hal_platform_setup.h
@@ -0,0 +1,366 @@
+#ifndef CYGONCE_HAL_PLATFORM_SETUP_H
+#define CYGONCE_HAL_PLATFORM_SETUP_H
+
+/*=============================================================================
+//
+// hal_platform_setup.h
+//
+// Platform specific support for HAL (assembly code)
+//
+//=============================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): Jordi Colomer <jco@ict.es>
+// Contributors: Jordi Colomer <jco@ict.es>
+// Date: 2001-06-15
+// Purpose: SA1110/Flexanet platform specific support routines
+// Description:
+// Usage: #include <cyg/hal/hal_platform_setup.h>
+// Only used by "vectors.S"
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================*/
+
+#include <pkgconf/system.h> // System-wide configuration info
+#include CYGBLD_HAL_VARIANT_H // Variant (SA11x0) specific configuration
+#include CYGBLD_HAL_PLATFORM_H // Platform specific configuration
+#include <cyg/hal/hal_sa11x0.h> // Variant specific hardware definitions
+#include <cyg/hal/hal_mmu.h> // MMU definitions
+#include <cyg/hal/flexanet.h> // Platform specific hardware definitions
+
+#if defined(CYG_HAL_STARTUP_ROM)
+#define PLATFORM_SETUP1 _platform_setup1
+#define CYGHWR_HAL_ARM_HAS_MMU
+#define CYGSEM_HAL_ROM_RESET_USES_JUMP
+
+#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
+
+// DRAM settings
+
+// Banks configured for 256-Mbit SDRAM devices (15 row x 9 col)
+// Initially disabled.
+// CAS latency = 3, 32-bit bus width, TWR = 1, TRP = 2
+#define DRAM_CONFIG_VALUE 0x72647264
+
+// SMROM settings (disabled in all banks)
+#define SMROM_CONFIG_VALUE 0xAFCCAFCC
+
+// CAS waveforms
+//#define CAS0_WAVEFORM_VALUE 0xAAAAAA7F
+#define CAS0_WAVEFORM_VALUE 0xAAAAAAA7
+#define CAS1_WAVEFORM_VALUE 0xAAAAAAAA
+#define CAS2_WAVEFORM_VALUE 0xAAAAAAAA
+
+// Expansion memory (PCMCIA) settings (MECR)
+#define EXPMEM_CONFIG_VALUE 0x994A994A
+
+// DRAM refresh configuration
+
+// CAS before RAS = 7
+// f(SDCLK) = f(mem) = 1/2 f(cpu) = 103 MHz, ok for PC-133 SDRAMs
+// If PC-100 are installed, may be better to run the CPU at 192 MHz
+// and still clock the SDRAM at 1/2 f(cpu) = 96 MHz.
+// No auto-power-down,
+// Refresh period for 8192 rows = 64 ms (25 memory cycles)
+// DRI = 64 ms * 103 MHz / (8192 * 32) = 25
+// (longest burst access time not considered by now)
+#define RFSH_CONFIG_VALUE 0x00340197
+
+// Static memory configuration
+
+// CS0/1 : RDF=14, RDN=4 , RRR=2, 32 bits Flash
+// Suitable for 128-Mbit StrataFlash (Tcyc = 150 ns)
+#define STATIC_0_CONFIG_VALUE 0x44704470
+
+// CS2 : RDF=0, RDN=0 , RRR=0, 32 bits SRAM
+// CS3 : RDF=5, RDN=12, RRR=1, 32 bits SRAM
+#define STATIC_1_CONFIG_VALUE 0x2C290001
+
+
+// Macros that handle the red debug LED wired to GPIO-1
+
+ .macro _red_led_on
+
+ // Turn on the red LED on GPIO-1
+ ldr r3,=SA11X0_GPIO_PIN_OUTPUT_SET
+ ldr r2,=0x02
+ str r2,[r3]
+ .endm
+
+ .macro _red_led_off
+
+ // Turn off the red LED on GPIO-1
+ ldr r3,=SA11X0_GPIO_PIN_OUTPUT_CLEAR
+ ldr r2,=0x02
+ str r2,[r3]
+ .endm
+
+
+// This macro represents the initial startup code for the platform,
+// when the startup is ROM.
+
+// Red LED is turned on during redboot execution and turned off
+// right before entering the operating system.
+
+// Green LED is turned off during the redboot execution and
+// on right before entering the operating system on a reset
+// (not on a wake-up).
+
+ .macro _platform_setup1
+
+ // Disable all interrupts (ICMR not specified on power-up)
+ ldr r1,=SA11X0_ICMR
+ mov r0,#0
+ str r0,[r1]
+
+ // Disable IRQs and FIQs
+ mov r0, #(CPSR_IRQ_DISABLE | \
+ CPSR_FIQ_DISABLE | \
+ CPSR_SUPERVISOR_MODE)
+ msr cpsr, r0
+
+ // Reset the BCR (green LED off)
+ ldr r1,=SA1110_BOARD_CONTROL
+ ldr r2,=SA1110_BCR_MIN
+ str r2,[r1]
+
+ // Set up GPIOs (red LED off)
+ ldr r1,=SA11X0_GPIO_PIN_DIRECTION
+ ldr r2,=SA1110_GPIO_DIR
+ str r2,[r1]
+
+ ldr r1,=SA11X0_GPIO_ALTERNATE_FUNCTION
+ ldr r2,=SA1110_GPIO_ALT
+ str r2,[r1]
+
+ ldr r1,=SA11X0_GPIO_PIN_OUTPUT_CLEAR
+ ldr r2,=SA1110_GPIO_CLR
+ str r2,[r1]
+
+ ldr r1,=SA11X0_GPIO_PIN_OUTPUT_SET
+ ldr r2,=SA1110_GPIO_SET
+ str r2,[r1]
+
+ // Turn on the red LED
+ _red_led_on
+
+ // Disable clock switching
+ mcr p15,0,r0,\
+ SA11X0_TEST_CLOCK_AND_IDLE_REGISTER,\
+ SA11X0_DISABLE_CLOCK_SWITCHING_RM,\
+ SA11X0_DISABLE_CLOCK_SWITCHING_OPCODE
+
+ // Set up processor clock
+ ldr r1,=SA11X0_PWR_MGR_PLL_CONFIG
+ ldr r2,=SA11X0_PLL_CLOCK
+ str r2,[r1]
+
+ // Turn clock switching back on
+ mcr p15,0,r0,\
+ SA11X0_TEST_CLOCK_AND_IDLE_REGISTER,\
+ SA11X0_ENABLE_CLOCK_SWITCHING_RM,\
+ SA11X0_ENABLE_CLOCK_SWITCHING_OPCODE
+ nop
+ nop
+
+ // Let the PLL settle down
+ ldr r1,=20000
+10: sub r1,r1,#1
+ cmp r1,#0
+ bne 10b
+
+ // Initialize DRAM controller. See table below.
+ // The DRAM banks are set to disabled.
+
+ ldr r1,=dram_table
+ ldr r2,=__exception_handlers
+ sub r1,r1,r2
+ ldr r2,[r1],#4 // First control register
+11: ldr r3,[r1],#4
+ str r3,[r2]
+ ldr r2,[r1],#4 // Next control register
+ cmp r2,#0
+ bne 11b
+
+ // Enable UART
+ ldr r1,=SA1110_GPCLK_CONTROL_0
+ ldr r2,=SA1110_GPCLK_SUS_UART
+ str r2,[r1]
+
+ // Release DRAM hold (PSSR register, bit DH)
+
+ // This bit is set upon exit from sleep mode and indicates that the
+ // nRAS/nSDCS 3:0 and nCAS/DQM 3:0 continue to be held low and that
+ // the DRAMs are still in self-refresh mode. This bit should be cleared
+ // by the processor (by writing a one to it) after the DRAM interface
+ // has been configured but before any DRAM access is attempted.
+ // The nRAS/nSDCS and nCAS/DQM lines are released when this bit is
+ // cleared. This bit is cleared on hardware reset.
+
+ ldr r1,=SA11X0_PWR_MGR_SLEEP_STATUS
+ ldr r2,=SA11X0_DRAM_CONTROL_HOLD
+ str r2,[r1]
+
+ // On hardware reset in systems containing DRAM or SDRAM,
+ // trigger a number (typically eight) of refresh cycles by attempting
+ // nonburst read or write accesses to any disabled DRAM bank.
+ // Each such access causes a simultaneous CBR for all four banks.
+
+ ldr r1,=SA11X0_RAM_BANK0_BASE
+ ldr r2,[r1]
+ ldr r2,[r1]
+ ldr r2,[r1]
+ ldr r2,[r1]
+ ldr r2,[r1]
+ ldr r2,[r1]
+ ldr r2,[r1]
+ ldr r2,[r1]
+
+ // Enable DRAM bank 0
+ ldr r1,=SA11X0_DRAM_CONFIGURATION
+ ldr r2,=DRAM_CONFIG_VALUE
+ orr r2, r2, #0x01
+ str r2,[r1]
+
+ b 19f
+
+ // Memory controller settings (register, value)
+
+dram_table:
+
+ .word SA11X0_DRAM0_CAS_0, CAS0_WAVEFORM_VALUE
+ .word SA11X0_DRAM0_CAS_1, CAS1_WAVEFORM_VALUE
+ .word SA11X0_DRAM0_CAS_2, CAS2_WAVEFORM_VALUE
+ .word SA11X0_EXP_BUS_CONFIGURATION, EXPMEM_CONFIG_VALUE
+ .word SA11X0_REFRESH_CONFIGURATION, RFSH_CONFIG_VALUE
+ .word SA11X0_DRAM2_CAS_0, CAS0_WAVEFORM_VALUE
+ .word SA11X0_DRAM2_CAS_1, CAS1_WAVEFORM_VALUE
+ .word SA11X0_DRAM2_CAS_2, CAS2_WAVEFORM_VALUE
+ .word SA11X0_SMROM_CONFIGURATION, SMROM_CONFIG_VALUE
+ .word SA11X0_DRAM_CONFIGURATION, DRAM_CONFIG_VALUE
+ .word SA11X0_STATIC_CONTROL_0, STATIC_0_CONFIG_VALUE
+ .word SA11X0_STATIC_CONTROL_1, STATIC_1_CONFIG_VALUE
+ .word 0, 0
+19:
+
+ // If waking up from sleep, jump to the resume function
+ // pointed by the scratchpad register.
+ ldr r1,=SA11X0_RESET_STATUS
+ ldr r2,[r1]
+ cmp r2,#SA11X0_SLEEP_MODE_RESET
+ bne 20f
+ ldr r1,=SA11X0_PWR_MGR_SCRATCHPAD
+ ldr r1,[r1]
+
+ _red_led_off
+
+ mov pc,r1
+ nop
+20: nop
+
+ // 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
+
+ // 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:
+
+ // Save shadow copy of BCR
+ ldr r1,=_flexanet_BCR
+ str r2,[r1]
+
+ // Turn on green LED
+ ldr r1,=SA1110_BOARD_CONTROL
+ ldr r2,=SA1110_BCR_MIN
+ orr r2,r2,#SA1110_BCR_LED_GREEN
+ str r2,[r1]
+
+ // Turn off red LED
+ _red_led_off
+
+ .endm
+
+
+#else // defined(CYG_HAL_STARTUP_ROM)
+#define PLATFORM_SETUP1
+#endif
+
+#define PLATFORM_VECTORS _platform_vectors
+ .macro _platform_vectors
+ .globl _flexanet_BCR
+_flexanet_BCR: .long 0 // Board Control register shadow
+ .endm
+
+/*---------------------------------------------------------------------------*/
+/* end of hal_platform_setup.h */
+#endif /* CYGONCE_HAL_PLATFORM_SETUP_H */
diff --git a/ecos/packages/hal/arm/sa11x0/flexanet/current/include/pkgconf/mlt_arm_sa11x0_flexanet_ram.h b/ecos/packages/hal/arm/sa11x0/flexanet/current/include/pkgconf/mlt_arm_sa11x0_flexanet_ram.h
new file mode 100644
index 0000000..290a952
--- /dev/null
+++ b/ecos/packages/hal/arm/sa11x0/flexanet/current/include/pkgconf/mlt_arm_sa11x0_flexanet_ram.h
@@ -0,0 +1,17 @@
+// eCos memory layout - Fri Oct 20 05:56:24 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 (0)
+#define CYGMEM_REGION_ram_SIZE (0x2000000)
+#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 (0x2000000 - (size_t) CYG_LABEL_NAME (__heap1))
diff --git a/ecos/packages/hal/arm/sa11x0/flexanet/current/include/pkgconf/mlt_arm_sa11x0_flexanet_ram.ldi b/ecos/packages/hal/arm/sa11x0/flexanet/current/include/pkgconf/mlt_arm_sa11x0_flexanet_ram.ldi
new file mode 100644
index 0000000..9b0b11c
--- /dev/null
+++ b/ecos/packages/hal/arm/sa11x0/flexanet/current/include/pkgconf/mlt_arm_sa11x0_flexanet_ram.ldi
@@ -0,0 +1,27 @@
+// eCos memory layout - Fri Oct 20 05:56:24 2000
+
+// This is a generated file - do not edit
+
+#include <cyg/infra/cyg_type.inc>
+
+MEMORY
+{
+ ram : ORIGIN = 0, LENGTH = 0x2000000
+}
+
+SECTIONS
+{
+ SECTIONS_BEGIN
+ SECTION_fixed_vectors (ram, 0x20, LMA_EQ_VMA)
+ SECTION_rom_vectors (ram, 0x20000, 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)
+ CYG_LABEL_DEFN(__heap1) = ALIGN (0x8);
+ SECTIONS_END
+}
diff --git a/ecos/packages/hal/arm/sa11x0/flexanet/current/include/pkgconf/mlt_arm_sa11x0_flexanet_ram.mlt b/ecos/packages/hal/arm/sa11x0/flexanet/current/include/pkgconf/mlt_arm_sa11x0_flexanet_ram.mlt
new file mode 100644
index 0000000..3504c74
--- /dev/null
+++ b/ecos/packages/hal/arm/sa11x0/flexanet/current/include/pkgconf/mlt_arm_sa11x0_flexanet_ram.mlt
@@ -0,0 +1,13 @@
+version 0
+region ram 0 2000000 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 20000 20000 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 1 0 1 heap1 heap1 !
+section heap1 0 8 0 0 0 0 0 0 !
diff --git a/ecos/packages/hal/arm/sa11x0/flexanet/current/include/pkgconf/mlt_arm_sa11x0_flexanet_rom.h b/ecos/packages/hal/arm/sa11x0/flexanet/current/include/pkgconf/mlt_arm_sa11x0_flexanet_rom.h
new file mode 100644
index 0000000..73d0a70
--- /dev/null
+++ b/ecos/packages/hal/arm/sa11x0/flexanet/current/include/pkgconf/mlt_arm_sa11x0_flexanet_rom.h
@@ -0,0 +1,20 @@
+// eCos memory layout - Fri Oct 20 05:56:55 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 (0)
+#define CYGMEM_REGION_ram_SIZE (0x2000000)
+#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)
+#ifndef __ASSEMBLER__
+extern char CYG_LABEL_NAME (__heap1) [];
+#endif
+#define CYGMEM_SECTION_heap1 (CYG_LABEL_NAME (__heap1))
+#define CYGMEM_SECTION_heap1_SIZE (0x2000000 - (size_t) CYG_LABEL_NAME (__heap1))
diff --git a/ecos/packages/hal/arm/sa11x0/flexanet/current/include/pkgconf/mlt_arm_sa11x0_flexanet_rom.ldi b/ecos/packages/hal/arm/sa11x0/flexanet/current/include/pkgconf/mlt_arm_sa11x0_flexanet_rom.ldi
new file mode 100644
index 0000000..596987d
--- /dev/null
+++ b/ecos/packages/hal/arm/sa11x0/flexanet/current/include/pkgconf/mlt_arm_sa11x0_flexanet_rom.ldi
@@ -0,0 +1,28 @@
+// eCos memory layout - Fri Oct 20 05:56:55 2000
+
+// This is a generated file - do not edit
+
+#include <cyg/infra/cyg_type.inc>
+
+MEMORY
+{
+ ram : ORIGIN = 0, LENGTH = 0x2000000
+ 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)
+ CYG_LABEL_DEFN(__heap1) = ALIGN (0x8);
+ SECTIONS_END
+}
diff --git a/ecos/packages/hal/arm/sa11x0/flexanet/current/include/pkgconf/mlt_arm_sa11x0_flexanet_rom.mlt b/ecos/packages/hal/arm/sa11x0/flexanet/current/include/pkgconf/mlt_arm_sa11x0_flexanet_rom.mlt
new file mode 100644
index 0000000..45640e6
--- /dev/null
+++ b/ecos/packages/hal/arm/sa11x0/flexanet/current/include/pkgconf/mlt_arm_sa11x0_flexanet_rom.mlt
@@ -0,0 +1,14 @@
+version 0
+region ram 0 2000000 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 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 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 !
diff --git a/ecos/packages/hal/arm/sa11x0/flexanet/current/include/plf_io.h b/ecos/packages/hal/arm/sa11x0/flexanet/current/include/plf_io.h
new file mode 100644
index 0000000..d437b00
--- /dev/null
+++ b/ecos/packages/hal/arm/sa11x0/flexanet/current/include/plf_io.h
@@ -0,0 +1,59 @@
+#ifndef CYGONCE_HAL_ARM_SA11X0_FLEXANET_PLF_IO_H
+#define CYGONCE_HAL_ARM_SA11X0_FLEXANET_PLF_IO_H
+
+/*=============================================================================
+//
+// plf_io.h
+//
+// Platform specific support (register layout, etc)
+//
+//=============================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jskov
+// Contributors: jskov
+// Date: 2002-01-28
+// Purpose: Platform specific support routines
+// Description:
+// Usage: #include <cyg/hal/hal_io.h>
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================*/
+
+#include <cyg/hal/flexanet.h>
+
+#endif // CYGONCE_HAL_ARM_SA11X0_FLEXANET_PLF_IO_H
+// EOF plf_io.h
diff --git a/ecos/packages/hal/arm/sa11x0/flexanet/current/include/plf_mmap.h b/ecos/packages/hal/arm/sa11x0/flexanet/current/include/plf_mmap.h
new file mode 100644
index 0000000..583ec66
--- /dev/null
+++ b/ecos/packages/hal/arm/sa11x0/flexanet/current/include/plf_mmap.h
@@ -0,0 +1,136 @@
+#ifndef CYGONCE_HAL_SA11X0_PLATFORM_PLF_MMAP_H
+#define CYGONCE_HAL_SA11X0_PLATFORM_PLF_MMAP_H
+/*=============================================================================
+//
+// plf_mmap.h
+//
+// Platform specific memory map support
+//
+//=============================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): hmt
+// Contributors: hmt
+// Date: 2001-01-04
+// Purpose: Intel SA11x0 series platform-specific memory mapping macros
+// Description: Macros to convert a cached, virtual address to
+// 1) an uncached adddress for the same memory (if available)
+// 2) the equivalent physical address for giving to external
+// hardware eg. DMA engines.
+//
+// NB: this mapping is expressed here statically, independent
+// of the actual mapping installed in the MMAP table. So if
+// someone changes that, or its initialisation is changed,
+// then this module must change. This is intended to be
+// efficient at a cost of generality. It is also intended to
+// be called with constants (such as &my_struct) as input
+// args, so that all the work can be done at compile time,
+// with optimization on.
+//
+// Usage: #include <cyg/hal/hal_cache.h>
+// (which includes this file itself)
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================*/
+
+#include <cyg/hal/hal_misc.h>
+
+// The actual DRAM or FLASH sizes don't need to match the sizes
+// declared here. They are just the minimum expected quantities.
+// For instance, even if more than 32MB of DRAM/FLASH are installed,
+// only the first 32MB are mapped, which is enough for Redboot.
+
+// Get the pagesize for a particular virtual address:
+
+// This does not depend on the vaddr.
+#define HAL_MM_PAGESIZE( vaddr, pagesize ) CYG_MACRO_START \
+ (pagesize) = SZ_1M; \
+CYG_MACRO_END
+
+// Get the physical address from a virtual address:
+
+// Only RAM and ROM are mapped; we just pass through all other values,
+// rather than detecting nonexistent areas here.
+
+#define HAL_VIRT_TO_PHYS_ADDRESS( vaddr, paddr ) CYG_MACRO_START \
+ cyg_uint32 _v_ = (cyg_uint32)(vaddr); \
+ if ( 32 * SZ_1M > _v_ ) /* 32Mb of SDRAM Bank 0 from 0-32Mb */ \
+ _v_ += 0xc00u * SZ_1M; \
+ else if ( 0x500u * SZ_1M > _v_ ) /* Space between RAM and mapped ROM */\
+ /* no change */ ; \
+ else if ( 0x520u * SZ_1M > _v_ ) /* Mapped boot ROM size 32Mb */ \
+ _v_ -= 0x500u * SZ_1M; \
+ else /* Rest of it */ \
+ /* no change */ ; \
+ (paddr) = _v_; \
+CYG_MACRO_END
+
+// Get the virtual address for a physical address:
+
+// Only RAM and ROM are mapped; we just pass through all other values,
+// rather than detecting nonexistent areas here.
+
+#define HAL_PHYS_TO_VIRT_ADDRESS( paddr, vaddr ) CYG_MACRO_START \
+ cyg_uint32 _p_ = (cyg_uint32)(paddr); \
+ if ( 32 * SZ_1M > _p_ ) /* 32Mb Boot ROM mapped to 0x500Mb */ \
+ _p_ += 0x500u * SZ_1M; \
+ else if ( 0xc00u * SZ_1M > _p_ ) /* Space between ROM and SDRAM */ \
+ /* no change */ ; \
+ else if ( 0xc20u * SZ_1M > _p_ ) /* Raw RAM size 32Mb */ \
+ _p_ -= 0xc00u * SZ_1M; \
+ else /* Rest of it */ \
+ /* no change */ ; \
+ (vaddr) = _p_ ; \
+CYG_MACRO_END
+
+// Get a non-cacheable address for accessing the same store as a virtual
+// (assumed cachable) address:
+
+// Only RAM is mapped: ROM is only available cachable, everything else is
+// not cachable anyway.
+
+#define HAL_VIRT_TO_UNCACHED_ADDRESS( vaddr, uaddr ) CYG_MACRO_START \
+ cyg_uint32 _v_ = (cyg_uint32)(vaddr); \
+ if ( 32 * SZ_1M > _v_ ) /* 32Mb of SDRAM Bank 0 from 0-32Mb */ \
+ _v_ += 0xc00u * SZ_1M; \
+ else /* Everything else is already uncacheable or is ROM */ \
+ /* no change */ ; \
+ (uaddr) = _v_ ; \
+CYG_MACRO_END
+
+//---------------------------------------------------------------------------
+#endif // CYGONCE_HAL_SA11X0_PLATFORM_PLF_MMAP_H
+// EOF plf_mmap.h
diff --git a/ecos/packages/hal/arm/sa11x0/flexanet/current/misc/redboot_RAM.ecm b/ecos/packages/hal/arm/sa11x0/flexanet/current/misc/redboot_RAM.ecm
new file mode 100644
index 0000000..2530f4e
--- /dev/null
+++ b/ecos/packages/hal/arm/sa11x0/flexanet/current/misc/redboot_RAM.ecm
@@ -0,0 +1,77 @@
+cdl_savefile_version 1;
+cdl_savefile_command cdl_savefile_version {};
+cdl_savefile_command cdl_savefile_command {};
+cdl_savefile_command cdl_configuration { description hardware template package };
+cdl_savefile_command cdl_package { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_component { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_option { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_interface { value_source user_value wizard_value inferred_value };
+
+cdl_configuration eCos {
+ description "" ;
+ hardware flexanet ;
+ template redboot ;
+ package -hardware CYGPKG_HAL_ARM current ;
+ package -hardware CYGPKG_HAL_ARM_SA11X0 current ;
+ package -hardware CYGPKG_HAL_ARM_SA11X0_FLEXANET current ;
+ package -hardware CYGPKG_IO_SERIAL_ARM_SA11X0 current ;
+ package -hardware CYGPKG_DEVS_PCMCIA_FLEXANET current ;
+ package -hardware CYGPKG_DEVS_FLASH_FLEXANET current ;
+ package -template CYGPKG_HAL current ;
+ package -template CYGPKG_INFRA current ;
+ package -template CYGPKG_REDBOOT current ;
+ package CYGPKG_IO_PCMCIA current ;
+ package CYGPKG_DEVS_ETH_CF current ;
+ package CYGPKG_IO_FLASH current ;
+ package CYGPKG_IO_ETH_DRIVERS current ;
+};
+
+cdl_option CYGBLD_BUILD_GDB_STUBS {
+ user_value 0
+};
+
+cdl_option CYGDBG_HAL_COMMON_INTERRUPTS_SAVE_MINIMUM_CONTEXT {
+ user_value 0
+};
+
+cdl_option CYGDBG_HAL_COMMON_CONTEXT_SAVE_MINIMUM {
+ inferred_value 0
+};
+
+cdl_option CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS {
+ inferred_value 1
+};
+
+cdl_option CYGDBG_HAL_DEBUG_GDB_BREAK_SUPPORT {
+ inferred_value 1
+};
+
+cdl_option CYGDBG_HAL_DEBUG_GDB_CTRLC_SUPPORT {
+ inferred_value 0
+};
+
+cdl_option CYGSEM_HAL_USE_ROM_MONITOR {
+ inferred_value 0 0
+};
+
+cdl_component CYG_HAL_STARTUP {
+ user_value RAM
+};
+
+cdl_component CYGBLD_BUILD_REDBOOT {
+ user_value 1
+};
+
+cdl_component CYGPKG_REDBOOT_NETWORKING {
+ user_value 1
+};
+
+cdl_component CYGSEM_REDBOOT_FLASH_CONFIG {
+ user_value 1
+};
+
+cdl_option CYGSEM_REDBOOT_BSP_SYSCALLS {
+ inferred_value 1
+};
+
+
diff --git a/ecos/packages/hal/arm/sa11x0/flexanet/current/misc/redboot_ROM.ecm b/ecos/packages/hal/arm/sa11x0/flexanet/current/misc/redboot_ROM.ecm
new file mode 100644
index 0000000..aa27700
--- /dev/null
+++ b/ecos/packages/hal/arm/sa11x0/flexanet/current/misc/redboot_ROM.ecm
@@ -0,0 +1,77 @@
+cdl_savefile_version 1;
+cdl_savefile_command cdl_savefile_version {};
+cdl_savefile_command cdl_savefile_command {};
+cdl_savefile_command cdl_configuration { description hardware template package };
+cdl_savefile_command cdl_package { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_component { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_option { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_interface { value_source user_value wizard_value inferred_value };
+
+cdl_configuration eCos {
+ description "" ;
+ hardware flexanet ;
+ template redboot ;
+ package -hardware CYGPKG_HAL_ARM current ;
+ package -hardware CYGPKG_HAL_ARM_SA11X0 current ;
+ package -hardware CYGPKG_HAL_ARM_SA11X0_FLEXANET current ;
+ package -hardware CYGPKG_IO_SERIAL_ARM_SA11X0 current ;
+ package -hardware CYGPKG_DEVS_PCMCIA_FLEXANET current ;
+ package -hardware CYGPKG_DEVS_FLASH_FLEXANET current ;
+ package -template CYGPKG_HAL current ;
+ package -template CYGPKG_INFRA current ;
+ package -template CYGPKG_REDBOOT current ;
+ package CYGPKG_IO_PCMCIA current ;
+ package CYGPKG_DEVS_ETH_CF current ;
+ package CYGPKG_IO_FLASH current ;
+ package CYGPKG_IO_ETH_DRIVERS current ;
+};
+
+cdl_option CYGBLD_BUILD_GDB_STUBS {
+ user_value 0
+};
+
+cdl_option CYGDBG_HAL_COMMON_INTERRUPTS_SAVE_MINIMUM_CONTEXT {
+ user_value 0
+};
+
+cdl_option CYGDBG_HAL_COMMON_CONTEXT_SAVE_MINIMUM {
+ inferred_value 0
+};
+
+cdl_option CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS {
+ inferred_value 1
+};
+
+cdl_option CYGDBG_HAL_DEBUG_GDB_BREAK_SUPPORT {
+ inferred_value 1
+};
+
+cdl_option CYGDBG_HAL_DEBUG_GDB_CTRLC_SUPPORT {
+ inferred_value 0
+};
+
+cdl_option CYGSEM_HAL_ROM_MONITOR {
+ user_value 1
+};
+
+cdl_option CYGSEM_HAL_USE_ROM_MONITOR {
+ inferred_value 0 0
+};
+
+cdl_component CYG_HAL_STARTUP {
+ user_value ROM
+};
+
+cdl_component CYGBLD_BUILD_REDBOOT {
+ user_value 1
+};
+
+cdl_component CYGPKG_REDBOOT_NETWORKING {
+ user_value 1
+};
+
+cdl_component CYGSEM_REDBOOT_FLASH_CONFIG {
+ user_value 1
+};
+
+
diff --git a/ecos/packages/hal/arm/sa11x0/flexanet/current/src/flexanet_misc.c b/ecos/packages/hal/arm/sa11x0/flexanet/current/src/flexanet_misc.c
new file mode 100644
index 0000000..f85bf46
--- /dev/null
+++ b/ecos/packages/hal/arm/sa11x0/flexanet/current/src/flexanet_misc.c
@@ -0,0 +1,157 @@
+//==========================================================================
+//
+// flexanet_misc.c
+//
+// HAL misc board support code for StrongARM SA1110/Flexanet
+//
+//==========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//==========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): Jordi Colomer
+// Contributors: Jordi Colomer <jco@ict.es>
+// Date: 2001-06-15
+// 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/flexanet.h> // Platform specifics
+
+#include <cyg/infra/diag.h> // diag_printf
+
+// All the MM table layout is here:
+#include <cyg/hal/hal_mm.h>
+
+#include <string.h> // memset
+
+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_DACR_DEFAULT;
+ 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, 32, ARM_CACHEABLE, ARM_BUFFERABLE, ARM_ACCESS_PERM_RW_RW); /* Boot flash ROMspace */
+ X_ARM_MMU_SECTION(0x100, 0x100, 128, ARM_UNCACHEABLE, ARM_UNBUFFERABLE, ARM_ACCESS_PERM_RW_RW); /* Core Board Registers */
+ X_ARM_MMU_SECTION(0x180, 0x180, 16, ARM_UNCACHEABLE, ARM_UNBUFFERABLE, ARM_ACCESS_PERM_RW_RW); /* Ethernet Adaptor */
+ X_ARM_MMU_SECTION(0x200, 0x200, 512, ARM_UNCACHEABLE, ARM_UNBUFFERABLE, ARM_ACCESS_PERM_RW_RW); /* PCMCIA Socket A */
+ X_ARM_MMU_SECTION(0x300, 0x300, 512, ARM_UNCACHEABLE, ARM_UNBUFFERABLE, ARM_ACCESS_PERM_RW_RW); /* PCMCIA Sockets B */
+ X_ARM_MMU_SECTION(0x800, 0x800, 0x400, ARM_UNCACHEABLE, ARM_UNBUFFERABLE, ARM_ACCESS_PERM_RW_RW); /* StrongARM(R) Registers */
+ X_ARM_MMU_SECTION(0xC00, 0, 32, ARM_CACHEABLE, ARM_BUFFERABLE, ARM_ACCESS_PERM_RW_RW); /* DRAM Bank 0 */
+ X_ARM_MMU_SECTION(0xC00, 0xC00, 32, ARM_UNCACHEABLE, 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 */
+
+}
+
+//
+// Board control register support
+// Update the board control register (write only). Only the bits
+// specified by 'mask' are changed to 'value'.
+//
+
+void
+flexanet_BCR(unsigned long mask, unsigned long value)
+{
+ _flexanet_BCR = (_flexanet_BCR & ~mask) | (mask & value);
+ *SA1110_BOARD_CONTROL = _flexanet_BCR;
+}
+
+//
+// Platform specific initialization
+//
+
+void
+plf_hardware_init(void)
+{
+ // Force "alternate" use of GPIO pins used for LCD screen
+ *SA11X0_GPIO_ALTERNATE_FUNCTION |= 0x000003FC; // Bits 2..9
+ *SA11X0_GPIO_PIN_DIRECTION |= 0x000003FC; // Bits 2..9
+ *SA11X0_GPIO_PIN_OUTPUT_CLEAR = 0x000003FC; // Bits 2..9
+
+ // Configure the ethernet GPIO interrupt to falling-edge
+ HAL_INTERRUPT_CONFIGURE(SA1110_IRQ_GPIO_ETH, 0, 0);
+}
+
+#include CYGHWR_MEMORY_LAYOUT_H
+typedef void code_fun(void);
+void flexanet_program_new_stack(void *func)
+{
+ register CYG_ADDRESS stack_ptr asm("sp");
+ register CYG_ADDRESS old_stack asm("r4");
+ register code_fun *new_func asm("r0");
+ old_stack = stack_ptr;
+ stack_ptr = CYGMEM_REGION_ram + CYGMEM_REGION_ram_SIZE - sizeof(CYG_ADDRESS);
+ new_func = (code_fun*)func;
+ new_func();
+ stack_ptr = old_stack;
+ return;
+}
+
+// ------------------------------------------------------------------------
+// EOF flexanet_misc.c
diff --git a/ecos/packages/hal/arm/sa11x0/flexanet/current/support/README b/ecos/packages/hal/arm/sa11x0/flexanet/current/support/README
new file mode 100644
index 0000000..ce353d3
--- /dev/null
+++ b/ecos/packages/hal/arm/sa11x0/flexanet/current/support/README
@@ -0,0 +1,3 @@
+
+This directory should contain the "bsflash" tool,
+useful to write to Flexanet's on-board flash memory.
diff --git a/ecos/packages/hal/arm/sa11x0/ipaq/current/ChangeLog b/ecos/packages/hal/arm/sa11x0/ipaq/current/ChangeLog
new file mode 100644
index 0000000..cef5d90
--- /dev/null
+++ b/ecos/packages/hal/arm/sa11x0/ipaq/current/ChangeLog
@@ -0,0 +1,386 @@
+2009-01-31 Bart Veer <bartv@ecoscentric.com>
+
+ * cdl/hal_arm_sa11x0_ipaq.cdl: update compiler flags for
+ recent gcc
+
+2003-09-21 Gary Thomas <gary@mlbassoc.com>
+
+ * misc/redboot_RAM.ecm:
+ * misc/redboot_ROM.ecm: Adjust for changes in RedBoot
+ template - DNS now must be enabled manually.
+
+2002-09-20 Gary Thomas <gthomas@ecoscentric.com>
+
+ * src/lcd_support.c (lcd_comm_control): Need to ingore BAUD commands
+ since they may confuse RedBoot.
+
+ * include/ipaq.h: Define "LinkUP Systems" PCMCIA controller. Used
+ on Compaq dual PCMCIA sleeve.
+
+2002-08-12 Mark Salter <msalter@redhat.com>
+
+ * misc/redboot_ROM.ecm: Remove CYGSEM_REDBOOT_ARM_LINUX_BOOT.
+ * misc/redboot_RAM.ecm: Ditto.
+
+2002-05-14 Jesper Skov <jskov@redhat.com>
+
+ * src/atmel_support.c: Fixed warning.
+
+2002-05-07 Gary Thomas <gthomas@redhat.com>
+
+ * cdl/hal_arm_sa11x0_ipaq.cdl:
+ Standardize CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_DEFAULT usage.
+
+
+2002-04-12 Gary Thomas <gthomas@redhat.com>
+
+ * src/redboot_cmds.c:
+ * src/lcd_support.c:
+ * src/kbd.xpm:
+ * src/ipaq_misc.c:
+ * src/atmel_support.c: Clean up warnings.
+
+2002-04-03 Jesper Skov <jskov@redhat.com>
+
+ * src/lcd_support.c: Don't use sscanf - it may rely on stuff that
+ is only initialized later.
+
+ * src/ipaq_misc.c (plf_if_init): lcd_init is always called.
+
+2002-03-06 Mark Salter <msalter@redhat.com>
+
+ * src/lcd_support.c (lcd_init): Tweak LCD settings.
+
+2002-02-21 Gary Thomas <gthomas@redhat.com>
+
+ * src/lcd_support.c (lcd_on): Only enable LCD if LCD/TS is being used
+ as the console. This keeps the LCD backlight off which in turn makes
+ the unit run cooler (and longer).
+
+2002-01-28 Jesper Skov <jskov@redhat.com>
+
+ * include/plf_io.h: Added.
+
+2001-09-28 Richard Panton <rpanton@3glab.com>
+
+ * include/hal_platform_setup.h: Use correct MMU control register bits
+ during initial disable.
+
+2001-08-22 Gary Thomas <gthomas@redhat.com>
+
+ * src/redboot_cmds.c:
+ * src/lcd_support.c:
+ printf() is no longer a part of RedBoot. Thus all programs
+ must use diag_printf() and related functions instead.
+
+2001-07-23 Gary Thomas <gthomas@redhat.com>
+
+ * include/hal_platform_ints.h:
+ * cdl/hal_arm_sa11x0_ipaq.cdl:
+ Define sample "extended interrupt" support.
+
+2001-06-22 Gary Thomas <gthomas@redhat.com>
+
+ * misc/redboot_WinCE.ecm:
+ * misc/redboot_ROM.ecm:
+ * misc/redboot_RAM.ecm: Force stack size to 6K.
+
+2001-06-21 Jonathan Larmour <jlarmour@redhat.com>
+
+ * images/*: Remove. Don't bloat repository with things already on
+ the web.
+
+2001-06-08 Gary Thomas <gthomas@redhat.com>
+
+ * include/pkgconf/mlt_arm_sa11x0_ipaq_rom.mlt:
+ * include/pkgconf/mlt_arm_sa11x0_ipaq_rom.ldi: Relax heap alignment.
+
+2001-05-24 Gary Thomas <gthomas@redhat.com>
+
+ * misc/redboot_ROM.ecm:
+ * misc/redboot_RAM.ecm: Remove 'RedBoot[backup]' image by
+ default - to make room for Linux kernel.
+
+2001-05-16 Gary Thomas <gthomas@redhat.com>
+
+ * include/hal_platform_setup.h: Always init UART3. Add support
+ for deep sleep/resume. Note: this has only been tested from
+ Linux. Support for sleep/resume will have to come later for eCos.
+
+2001-04-30 Gary Thomas <gthomas@redhat.com>
+
+ * include/hal_platform_setup.h (CYGSEM_HAL_ROM_RESET_USES_JUMP):
+ Explicitly defined to handle strange startup situations.
+
+2001-04-27 Jonathan Larmour <jlarmour@redhat.com>
+
+ * cdl/hal_arm_sa11x0_ipaq.cdl: Remove redundant -Wl,-N from link flags
+
+2001-04-18 Gary Thomas <gthomas@redhat.com>
+
+ * include/hal_platform_setup.h: Clean up Compaq startup mode which
+ needs to behave like ROM startup with minor differences.
+
+2001-04-09 Jonathan Larmour <jlarmour@redhat.com>
+
+ * src/lcd_support.c: Frame pointer was right before.
+
+2001-04-03 Jonathan Larmour <jlarmour@redhat.com>
+
+ * misc/elinux.patch: Add patch for Linux to allow co-existence
+ with RedBoot. (authored by Gary)
+
+2001-04-03 Gary Thomas <gthomas@redhat.com>
+
+ * include/pkgconf/mlt_arm_sa11x0_ipaq_compaq.mlt:
+ * include/pkgconf/mlt_arm_sa11x0_ipaq_compaq.ldi:
+ * include/pkgconf/mlt_arm_sa11x0_ipaq_compaq.h: New file(s).
+
+ * src/lcd_support.c (lcd_comm_getc_nonblock): Force LCD on
+ whenever there is a keystroke or button pushed.
+
+ * misc/redboot_WinCE.ecm:
+ * misc/redboot_ROM.ecm:
+ * misc/redboot_RAM.ecm:
+ * misc/redboot_Compaq.ecm: New file(s) - standard RedBoot configurations.
+ * images/redboot_WinCE.srec:
+ * images/redboot_WinCE.elf:
+ * images/redboot_WinCE.bin:
+ * images/redboot_ROM.srec:
+ * images/redboot_ROM.elf:
+ * images/redboot_ROM.bin:
+ * images/redboot_RAM.srec:
+ * images/redboot_RAM.elf:
+ * images/redboot_RAM.bin:
+ * images/redboot_Compaq.srec:
+ * images/redboot_Compaq.elf:
+ * images/redboot_Compaq.bin: New file(s) - standard RedBoot images.
+
+ * images/OSloader: New file - imported from Compaq.
+
+ * cdl/hal_arm_sa11x0_ipaq.cdl: Add 'Compaq' startup type.
+
+2001-04-02 Gary Thomas <gthomas@redhat.com>
+
+ * src/lcd_support.c: Define virtual screen to be 80x??, with only
+ a 30 character wide window showing (in portrait mode). Use the
+ joypad to pan around. Also, restore cursor support.
+ (lcd_comm_init): Set up default keyboard parameters and let the
+ initialization (calibration) abort/timeout.
+ (lcd_refresh): Fix problem with pan right.
+
+ * src/kbd.xpm: Revert to using "small" keyboard graphic.
+
+ * src/font.h: Add special character for block cursor.
+
+ * src/lcd_support.c (lcd_comm_getc_nonblock): Rework keyboard
+ input to make it more responsive/smoother.
+
+2001-03-24 Gary Thomas <gthomas@redhat.com>
+
+ * cdl/hal_arm_sa11x0_ipaq.cdl: LCD comm only in RedBoot mode.
+
+2001-03-23 Gary Thomas <gthomas@redhat.com>
+
+ * src/lcd_support.c (init_kbd_coord): Make screen calibration more
+ user friendly. User can abort at any time with 'return' button.
+
+ * cdl/hal_arm_sa11x0_ipaq.cdl: Set default clock speed to 206MHz.
+
+2001-03-21 Gary Thomas <gthomas@redhat.com>
+
+ * include/pkgconf/mlt_arm_sa11x0_ipaq_rom.ldi:
+ * include/pkgconf/mlt_arm_sa11x0_ipaq_rom.mlt: Decrease heap alignment.
+
+ * src/lcd_support.c: Keyboard map had / & \ backwards.
+
+2001-03-20 Gary Thomas <gthomas@redhat.com>
+
+ * src/redboot_cmds.c (idle): Add idle processing - turn off LCD
+ screen and backlight when not in use.
+
+ * src/lcd_support.c:
+ * include/lcd_support.h (lcd_getinfo): New function used to export
+ information about LCD screen, video memory, etc.
+ (lcd_on): New function - used to enable/disable screen.
+
+2001-03-14 Gary Thomas <gthomas@redhat.com>
+
+ * src/lcd_support.c: Improved LCD virtual keyboard support.
+ Better initialization and setup. Remember parameters so it's
+ not necessary to calibrate on every boot.
+
+ * include/pkgconf/mlt_arm_sa11x0_ipaq_rom.mlt:
+ * include/pkgconf/mlt_arm_sa11x0_ipaq_rom.ldi:
+ * include/pkgconf/mlt_arm_sa11x0_ipaq_rom.h:
+ * include/pkgconf/mlt_arm_sa11x0_ipaq_ram.mlt:
+ * include/pkgconf/mlt_arm_sa11x0_ipaq_ram.ldi:
+ * include/pkgconf/mlt_arm_sa11x0_ipaq_ram.h: Reserve LCD memory.
+
+ * include/ipaq.h:
+ * include/hal_platform_setup.h: Add LCD screen parameters to fixed area.
+
+2001-03-09 Gary Thomas <gthomas@redhat.com>
+
+ * include/pkgconf/mlt_arm_sa11x0_ipaq_wince.mlt:
+ * include/pkgconf/mlt_arm_sa11x0_ipaq_wince.ldi:
+ * include/pkgconf/mlt_arm_sa11x0_ipaq_wince.h: New file(s).
+
+ * include/hal_platform_setup.h: Support starting from Windows/CR.
+
+ * cdl/hal_arm_sa11x0_ipaq.cdl: Add new startup type: WinCE.
+
+2001-03-08 Jesper Skov <jskov@redhat.com>
+
+ * cdl/hal_arm_sa11x0_ipaq.cdl: Removed
+ CYGINT_HAL_VIRTUAL_VECTOR_SUPPORT_GUARANTEED which is now the
+ default.
+
+2001-03-06 Gary Thomas <gthomas@redhat.com>
+
+ * src/lcd_support.c: Massive improvement in non-interrupt
+ driven keyboard scanning. Support 'return' button for ^C.
+ Support control keymap.
+
+ * src/atmel_support.c: Improve interrupt support. Fix
+ keypad [buttons] reporting.
+
+ * include/atmel_support.h: Add interrupt driven support.
+ Define button values (using icons for names).
+
+2001-03-05 Gary Thomas <gthomas@redhat.com>
+
+ * src/lcd_support.c: Use new Atmel asynchronous handling.
+
+ * src/ipaq_misc.c (plf_if_init): Always required [now].
+
+ * src/atmel_support.c: Restructure for asynchronous event
+ handling - many changes.
+
+ * include/lcd_support.h: New file - define LCD interfaces.
+
+ * include/atmel_support.h: Add asynchronous response handling.
+
+2001-03-01 Gary Thomas <gthomas@redhat.com>
+
+ * cdl/hal_arm_sa11x0_ipaq.cdl: Define CYGINT_HAL_PLF_IF_INIT
+ to indicate that this platform requires plf_if_init();.
+
+ * src/lcd_support.c: Minor cleanup during screen calibrate.
+
+ * src/ipaq_misc.c: Only init LCD when creating I/O channel.
+
+2001-02-28 Gary Thomas <gthomas@redhat.com>
+
+ * src/ipaq_misc.c: Initialize LCD/TS I/O channel.
+
+ * src/banner.xpm: Trim and clean up a few lines.
+
+ * src/atmel_support.c:
+ * include/atmel_support.h: Define simple touch screen interface.
+
+ * cdl/hal_arm_sa11x0_ipaq.cdl: Add CDL to support using LCD/TS
+ as a communications channel.
+
+ * src/lcd_support.c: Lots of changes. Support pesudo keyboard
+ using touchscreen.
+
+ * src/kbd.xpm: New file. Includes pixmaps for keyboard matrix.
+
+2001-02-27 Gary Thomas <gthomas@redhat.com>
+
+ * src/lcd_support.c: Move logo to bottom of screen. Also
+ turn on LCD light using Atmel micro-controller.
+
+ * src/ipaq_misc.c: Initialize Atmel hardware.
+
+ * src/banner.xpm: Improve look in portrait mode (borders).
+
+ * src/atmel_support.c:
+ * include/atmel_support.h: New file(s). Interfaces to control
+ and interact with the Atmel micro-controller which is used to
+ handle the LCD light, LED, touch panel, etc.
+
+ * cdl/hal_arm_sa11x0_ipaq.cdl: Adding Atmel micro-controller support.
+
+2001-02-26 Jonathan Larmour <jlarmour@redhat.com>
+
+ * src/lcd_support.c: Define frame pointer with volatile correctly.
+ Silence warnings.
+
+2001-02-25 Gary Thomas <gthomas@redhat.com>
+
+ * src/lcd_support.c: Fix character rendering for
+ portrait mode. Scrolling still broken.
+
+ * src/font.h: New file - extracted from lcd_support.c
+
+ * src/banner.xpm: Add portrait mode version.
+
+ * src/lcd_support.c: Initial portrait mode support.
+
+ * src/redboot_cmds.c (do_physaddr): Use common support.
+
+ * src/lcd_support.c: Merge ISOINFRA changes from Assabet.
+ Put frame buffer at end of RAM.
+
+ * src/ipaq_misc.c: Remove unused code. Enable LCD display.
+
+ * include/hal_platform_setup.h:
+ Prune some debug code. Fix up DRAM initialization.
+
+ * cdl/hal_arm_sa11x0_ipaq.cdl:
+ Add option to enable DRAM controller init.
+
+2001-02-24 Gary Thomas <gthomas@redhat.com>
+
+ * cdl/hal_arm_sa11x0_ipaq.cdl:
+ Define machine type for Linux bootstrap.
+
+ * src/redboot_cmds.c: Linux 'exec' command now in generic code.
+
+2001-02-24 Gary Thomas <gthomas@redhat.com>
+
+ * src/redboot_cmds.c:
+ * src/lcd_support.c:
+ * src/ipaq_misc.c:
+ * src/banner.xpm.bin:
+ * src/banner.xpm:
+ * misc/redboot_ROM.ecm:
+ * include/pkgconf/mlt_arm_sa11x0_ipaq_rom.mlt:
+ * include/pkgconf/mlt_arm_sa11x0_ipaq_rom.ldi:
+ * include/pkgconf/mlt_arm_sa11x0_ipaq_rom.h:
+ * include/pkgconf/mlt_arm_sa11x0_ipaq_ram.mlt:
+ * include/pkgconf/mlt_arm_sa11x0_ipaq_ram.ldi:
+ * include/pkgconf/mlt_arm_sa11x0_ipaq_ram.h:
+ * include/plf_mmap.h:
+ * include/ipaq.h (SA1110_EIO_IR_OFF):
+ * include/hal_platform_setup.h:
+ * include/hal_platform_ints.h:
+ * doc/README.ipaq:
+ * cdl/hal_arm_sa11x0_ipaq.cdl: New file(s) - initial import
+ based on contribution by Richard Panton, 3G Labs, Inc.
+
+//===========================================================================
+// ####GPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 2 or (at your option) any
+// later version.
+//
+// This program is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the
+// Free Software Foundation, Inc., 51 Franklin Street,
+// Fifth Floor, Boston, MA 02110-1301, USA.
+// -------------------------------------------
+// ####GPLCOPYRIGHTEND####
+//===========================================================================
diff --git a/ecos/packages/hal/arm/sa11x0/ipaq/current/cdl/hal_arm_sa11x0_ipaq.cdl b/ecos/packages/hal/arm/sa11x0/ipaq/current/cdl/hal_arm_sa11x0_ipaq.cdl
new file mode 100644
index 0000000..517af60
--- /dev/null
+++ b/ecos/packages/hal/arm/sa11x0/ipaq/current/cdl/hal_arm_sa11x0_ipaq.cdl
@@ -0,0 +1,401 @@
+# ====================================================================
+#
+# hal_arm_sa11x0_ipaq.cdl
+#
+# ARM SA1110/iPAQ platform HAL package configuration data
+#
+# ====================================================================
+## ####ECOSGPLCOPYRIGHTBEGIN####
+## -------------------------------------------
+## This file is part of eCos, the Embedded Configurable Operating System.
+## Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+##
+## eCos is free software; you can redistribute it and/or modify it under
+## the terms of the GNU General Public License as published by the Free
+## Software Foundation; either version 2 or (at your option) any later
+## version.
+##
+## eCos is distributed in the hope that it will be useful, but WITHOUT
+## ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+## FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+## for more details.
+##
+## You should have received a copy of the GNU General Public License
+## along with eCos; if not, write to the Free Software Foundation, Inc.,
+## 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+##
+## As a special exception, if other files instantiate templates or use
+## macros or inline functions from this file, or you compile this file
+## and link it with other works to produce a work based on this file,
+## this file does not by itself cause the resulting work to be covered by
+## the GNU General Public License. However the source code for this file
+## must still be made available in accordance with section (3) of the GNU
+## General Public License v2.
+##
+## This exception does not invalidate any other reasons why a work based
+## on this file might be covered by the GNU General Public License.
+## -------------------------------------------
+## ####ECOSGPLCOPYRIGHTEND####
+# ====================================================================
+######DESCRIPTIONBEGIN####
+#
+# Author(s): gthomas
+# Original data: gthomas
+# Contributors: richard.panton@3glab.com
+# Date: 2001-02-24
+#
+#####DESCRIPTIONEND####
+#
+# ====================================================================
+cdl_package CYGPKG_HAL_ARM_SA11X0_IPAQ {
+ display "ARM SA1110/IPAQ"
+ parent CYGPKG_HAL_ARM_SA11X0
+ hardware
+ include_dir cyg/hal
+ define_header hal_arm_sa11x0_ipaq.h
+ description "
+ This HAL platform package provides generic
+ support for the Compaq iPaq pocket PC."
+
+ compile ipaq_misc.c lcd_support.c atmel_support.c
+
+ implements CYGINT_HAL_DEBUG_GDB_STUBS
+ implements CYGINT_HAL_DEBUG_GDB_STUBS_BREAK
+ implements CYGINT_HAL_VIRTUAL_VECTOR_SUPPORT
+ implements CYGINT_HAL_PLF_IF_INIT
+
+ implements CYGHWR_HAL_ARM_SA11X0_UART3
+
+ 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_ipaq.h>"
+ puts $::cdl_system_header "#define CYGBLD_HAL_PLF_INTS_H <cyg/hal/hal_platform_ints.h>"
+ puts $::cdl_header "#define HAL_PLATFORM_CPU \"StrongARM 1110\""
+ puts $::cdl_header "#define HAL_PLATFORM_BOARD \"Compaq iPAQ Pocket PC\""
+ puts $::cdl_header "#define HAL_PLATFORM_EXTRA \"\""
+ puts $::cdl_header "#define HAL_PLATFORM_MACHINE_TYPE 22"
+ }
+
+ cdl_option CYGHWR_HAL_ARM_SA11X0_PROCESSOR_CLOCK_OVERRIDE_DEFAULT {
+ display "Processor clock rate"
+ calculated 206400
+ flavor data
+ description "The iPAQ is optimal at this speed. Caution - selecting
+ higher speeds may be unreliable."
+ }
+
+ cdl_component CYG_HAL_STARTUP {
+ display "Startup type"
+ flavor data
+ default_value {"RAM"}
+ legal_values {"RAM" "ROM" "WinCE" "Compaq"}
+ no_define
+ define -file system.h CYG_HAL_STARTUP
+ description "
+ When targetting the iPaq 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 CYGBLD_HAL_STARTUP_ROM_INIT_DRAM {
+ display "Initialize DRAM"
+ active_if { (CYG_HAL_STARTUP == "ROM") || (CYG_HAL_STARTUP == "Compaq") }
+ default_value { (CYG_HAL_STARTUP == "ROM") }
+ description "
+ If the ROM startup code is run from something other than
+ the reset state, it should not be necessary (and even
+ possibly detrimental) to initialize the DRAM controller.
+ Turn this option to force those registers to be set up."
+ }
+ }
+
+ 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 CYGSEM_HAL_PARROT_BOOT {
+ display "Include Flash signature used by WinCE parrot mode"
+ flavor bool
+ active_if { CYG_HAL_STARTUP == "ROM" }
+ default_value 1
+ description "
+ Enabling this option will add an additional header to the
+ executable image making it suitable for booting directly from
+ the native (WinCE Parrot) environment. This mode should be
+ the default for ROM based programs, such as RedBoot."
+ }
+
+ cdl_option CYGSEM_IPAQ_LCD_COMM {
+ display "Support LCD/touchscreen for comminication channel"
+ active_if CYGPKG_REDBOOT
+ flavor bool
+ default_value 1
+ description "
+ Enabling this option will use the LCD and touchscreen for a
+ communications channel, suitable for RedBoot, etc."
+ }
+
+ cdl_option CYGNUM_HAL_VIRTUAL_VECTOR_COMM_CHANNELS {
+ display "Number of communication channels on the board"
+ flavor data
+ calculated 1+CYGSEM_IPAQ_LCD_COMM
+ }
+
+ 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 ipaq 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_DEFAULT {
+ display "Default console channel."
+ flavor data
+ legal_values 0 to CYGNUM_HAL_VIRTUAL_VECTOR_COMM_CHANNELS-1
+ calculated 0
+ }
+
+ 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 CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_DEFAULT
+ description "
+ The ipaq board has only one serial port. 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 { CYGBLD_GLOBAL_WARNFLAGS . CYGBLD_ARCH_CFLAGS .
+ "-mcpu=strongarm1100 -g -O2 -ffunction-sections -fdata-sections -fno-rtti -fno-exceptions " }
+ 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 { CYGBLD_ARCH_LDFLAGS . "-mcpu=strongarm1100 -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) --remove-section=.fixed_vectors -O binary $< $@
+ }
+ }
+ }
+
+ cdl_component CYGPKG_HAL_ARM_SA11X0_IPAQ_OPTIONS {
+ display "StrongARM SA1110/IPAQ 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_IPAQ_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 IPAQ HAL. These flags are used in addition
+ to the set of global flags."
+ }
+
+ cdl_option CYGPKG_HAL_ARM_SA11X0_IPAQ_CFLAGS_REMOVE {
+ display "Suppressed compiler flags"
+ flavor data
+ no_define
+ default_value { "" }
+ description "
+ This option modifies the set of compiler flags for
+ building the StrongARM IPAQ HAL. These flags are removed from
+ the set of global flags if present."
+ }
+
+ cdl_option CYGPKG_HAL_ARM_SA11X0_IPAQ_TESTS {
+ display "StrongARM SA1110/IPAQ tests"
+ flavor data
+ no_define
+# calculated { "tests/dram-test" }
+ calculated { "" }
+ description "
+ This option specifies the set of tests for the StrongARM IPAQ HAL."
+ }
+ }
+
+ cdl_component CYGHWR_MEMORY_LAYOUT {
+ display "Memory layout"
+ flavor data
+ no_define
+ calculated { CYG_HAL_STARTUP == "RAM" ? "arm_sa11x0_ipaq_ram" : \
+ CYG_HAL_STARTUP == "Compaq" ? "arm_sa11x0_ipaq_compaq" : \
+ CYG_HAL_STARTUP == "WinCE" ? "arm_sa11x0_ipaq_wince" : \
+ "arm_sa11x0_ipaq_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_ipaq_ram.ldi>" : \
+ CYG_HAL_STARTUP == "Compaq" ? "<pkgconf/mlt_arm_sa11x0_ipaq_compaq.ldi>" : \
+ CYG_HAL_STARTUP == "WinCE" ? "<pkgconf/mlt_arm_sa11x0_ipaq_wince.ldi>" : \
+ "<pkgconf/mlt_arm_sa11x0_ipaq_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_ipaq_ram.h>" : \
+ CYG_HAL_STARTUP == "Compaq" ? "<pkgconf/mlt_arm_sa11x0_ipaq_compaq.h>" : \
+ CYG_HAL_STARTUP == "WinCE" ? "<pkgconf/mlt_arm_sa11x0_ipaq_wince.h>" : \
+ "<pkgconf/mlt_arm_sa11x0_ipaq_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 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_REDBOOT_HAL_OPTIONS {
+ display "Redboot HAL options"
+ flavor none
+ no_define
+ parent CYGPKG_REDBOOT
+ active_if CYGPKG_REDBOOT
+ description "
+ This option lists the target's requirements for a valid Redboot
+ configuration."
+
+ 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."
+
+ compile -library=libextras.a redboot_cmds.c
+
+ make -priority 325 {
+ <PREFIX>/bin/redboot.bin : <PREFIX>/bin/redboot.elf
+ $(OBJCOPY) --strip-debug $< $(@:.bin=.img)
+ $(OBJCOPY) -O srec $< $(@:.bin=.srec)
+ $(OBJCOPY) -O binary $< $@
+ }
+ }
+ }
+
+}
diff --git a/ecos/packages/hal/arm/sa11x0/ipaq/current/doc/README.ipaq b/ecos/packages/hal/arm/sa11x0/ipaq/current/doc/README.ipaq
new file mode 100644
index 0000000..c8f50fb
--- /dev/null
+++ b/ecos/packages/hal/arm/sa11x0/ipaq/current/doc/README.ipaq
@@ -0,0 +1,367 @@
+Feb 24, 2001
+
+These are the original notes, based on the contribution from
+Richard Panton at 3G Labs, Inc.
+
+eCOS For The Compaq iPAQ H3600 Series Handheld PC
+=================================================
+
+Intro
+-----
+
+IMPORTANT - this current version does not allow the construction of a
+_bootable_ ROM image for the iPAQ. However, it DOES allow the creation
+of ROM and RAM based images.
+
+You will need:
+ A Compaq iPAQ h3600 series.
+ The SERIAL docking cradle.
+
+You can use:
+ The CF-Card expansion sleeve.
+ A Socket LP-E CF Ethernet card.
+
+In order to load any Free Software onto the iPAQ, the Flash ROM must be
+reprogrammed with the Linux Bootloader. Please see the instructions
+at >>> www.handhelds.org <<< for installing the 'stable' bootloader. Note
+that installing the bootloader will erase WinCE from the Flash ROMs, and
+that ..
+
+ .. IT MAY NOT BE POSSIBLE TO RE-INSTALL WinCE AFTER THIS.
+
+
+(You WILL be able to load ARMLinux, however ;-)
+
+The rest of this document assumes that you have a working bootloader on
+your iPAQ, such that when you boot, the 'boot>' prompt comes out of the
+serial port.
+
+As the bootloader resides at address 0x0000 in the ROM, and we do not
+wish to overwrite the bootloader (dangerous - this would turn the iPAQ
+into what is colloquially known as a 'brick'), the eCOS Redboot image
+must be loaded at some other address. In order to make memory mapping
+simpler, eCOS/Redboot must be loaded onto a 1Mb boundary - i.e. at
+address 0x00x00000, where x is 1,2,3...f. The eCOS startup code has been
+adjusted for iPAQ to allow this. To minimise the changes to the memory
+map, the MMU will map the correct 1Mb section to the start of ROM space
+at 0x50000000 so that the rest of the image can run unchanged.
+
+Patches to existing code
+------------------------
+
+Two patches to code are required:
+
+$ECOS_REPOSITORY/hal/arm/arch/current/src/vectors.S:
+ 148c148,149
+ < ldr pc,.reset_vector // 0x00
+ ---
+ > //ldr pc,.reset_vector // 0x00
+ > b vectors // 0x00
+ 161c162,163
+ < UNMAPPED_PTR(reset_vector) // 0x20
+ ---
+ > //UNMAPPED_PTR(reset_vector) // 0x20
+ > b reset_vector
+
+[This patch changes the reset vector to be position independant.]
+
+
+
+and to $ECOS_REPOSITORY/hal/arm/sa11x0/var/current/src/hal_diag.c
+ 116,117c116
+ <
+ < // Set UART to 8N1 (8 data bits, no partity, 1 stop bit)
+ ---
+ > // Set UART to 8N1 (8 data bits, no parity, 1 stop bit)
+ 182a182,187
+ > #if defined(CYGPKG_HAL_ARM_SA11X0_IPAQ)
+ > static channel_data_t ser_channels[2] = {
+ > { (volatile struct sa11x0_serial*)SA11X0_UART3_BASE, 1000, CYGNUM_HAL_INTERRUPT_UART3 },
+ > { (volatile struct sa11x0_serial*)SA11X0_UART1_BASE, 1000, CYGNUM_HAL_INTERRUPT_UART1 }
+ > };
+ > #else
+ 186a192
+ > #endif
+
+[This patch makes the iPAQ use UART3 for debugging rather than UART1]
+
+
+Flash Support
+-------------
+
+The iPAQ uses the same flash devices as the Intel Assabet board, and
+uses the same eCOS package, CYGPKG_DEVS_FLASH_ASSABET.
+
+To enable the iPAQ HAL to use the Assabet flash driver, you must edit
+the file:
+ $ECOS_REPOSITORY/devs/flash/arm/assabet/current/cdl/flash_assabet.cdl
+
+changing the line:
+ requires CYGPKG_HAL_ARM_SA11X0_ASSABET
+
+to:
+ requires CYGPKG_HAL_ARM_SA11X0_ASSABET || CYGPKG_HAL_ARM_SA11X0_IPAQ
+
+This change allows the assabet flash package to be used with this iPAQ
+HAL.
+
+When running RedBoot, it is important to execute the command:
+
+ RedBoot> egpio -s 1
+
+(which will turn on the programming power supply) before attempting to
+program any flash area.
+
+VERY IMPORTANT: Do NOT attempt to re-program any flash memory between
+addresses 0x00000000 and 0x000fffff with RedBoot, since that is where
+the iPAQ Linux bootloader resides.
+
+
+
+Packages
+--------
+hal_ipaq-v1_0_0.epk CYGPKG_HAL_ARM_SA11X0_IPAQ
+ Basic support for the iPAQ platform.
+
+pcmcia_ipaq-v1_0_0.epk CYGPKG_DEVS_PCMCIA_IPAQ
+ PCMCIA and CF card support for the iPAQ. Allows the use of the
+ Socket LP-E Ethernet CF card for network and debugging.
+
+
+
+Compiling and installing RedBoot
+--------------------------------
+
+As a concrete example (stuff you type is highlighted like this)
+ ^^^^
+
+ $ ecosconfig new ipaq redboot
+ ^^^^^^^^^^^^^^^^^^^^^^^^^^^
+ U CYGSEM_HAL_USE_ROM_MONITOR, new inferred value 0
+ U CYGDBG_HAL_DEBUG_GDB_BREAK_SUPPORT, new inferred value 1
+ U CYGDBG_HAL_DEBUG_GDB_CTRLC_SUPPORT, new inferred value 0
+ U CYGDBG_HAL_COMMON_CONTEXT_SAVE_MINIMUM, new inferred value 0
+ U CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS, new inferred value 1
+ $ ecosconfig import \
+ ^^^^^^^^^^^^^^^^^^^
+ > $ECOS_REPOSITORY/hal/arm/sa11x0/ipaq/current/misc/redboot_ROM.cfg
+ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+If you see an error here relating to unresolved FLASH components, then you
+should edit the flash_assabet.cdl file as described above.
+
+ $ ecosconfig resolve
+ ^^^^^^^^^^^^^^^^^^
+ $ ecosconfig tree
+ ^^^^^^^^^^^^^^^
+ $ make
+ ^^^^
+ ...
+ ...
+ [ creates install/bin/redboot.* ]
+ $
+
+You can now power up the iPAQ and connect to it via the serial port by using,
+for example, minicom, at 115200 baud (8 data bits, 1 stop bit, no parity).
+You should see the 'boot>' prompt if you press space/return a couple of times.
+
+ @000002BC
+ F
+ *MTST
+ ...
+ ... [ loads of status and copyright info here ]
+ ...
+ booting flash...
+ no boot image in flash
+ boot>
+ boot> load flash 0x00100000
+ ^^^^^^^^^^^^^^^^^^^^^
+Now start an XMODEM send of install/bin/redboot.bin
+When the download is complete, you should see the following:
+
+ programming flash...erasing ...
+ Erasing sector 00100000
+ len=00019500
+ writing flash..
+ addr: 00100000 data: EA000006
+ addr: 00110000 data: E3530006
+ verifying ... done.
+ boot>
+
+[ You may find that the iPAQ bootloader times out before you get the chance
+to start the XMODEM send. In this case, use a script to perform the download
+- this also will ensure that you never type the incorrect address. A sample
+script for minicom can be found below in appendix A.]
+
+In order to see the RedBoot start-up messages, it is a good idea to change
+the baudrate used by the Linx bootloader now.
+
+ boot> set baudrate 38400
+ ^^^^^^^^^^^^^^^^^^
+ setting param=baudrate to value=38400
+ update_baudrate: new baudrate=00009600
+ CSRBASE=42000000
+ l_ubrlcr=00000005
+ m_ubrlcr=00000000
+ h_ubrlcr=00000000
+ baudrate changed to 0x00009600
+ boot>
+
+The final part of this message will be corrupted (since you are listening
+at 115200 baud). Change your communications program to work at 38400 baud
+and hit return a couple of times.
+
+To make this change permanent (recommended), execute the following command:
+
+ boot> params save
+ ^^^^^^^^^^^
+ bootldr: set baudrate 0x00009600
+
+ programming flash...erasing ...
+ Erasing sector 000C0000
+ len=00000084
+ writing flash..
+ addr: 000C0000 data: 746F6F62
+ verifying ... done.
+ boot>
+
+
+
+Assuming that the download and flash programming have been successful, you
+will now be able to launch RedBoot by issuing the following command to the
+iPAQ bootloader:
+
+ boot> jump 0x00100000
+ ^^^^^^^^^^^^^^^
+ Calling fcn=00100000
+ a0=00000000
+ a1=00000000
+ a2=00000000
+ a3=0......j
+ +
+ RedBoot(tm) debug environment - built 14:56:04, Dec 7 2000
+ Platform: Compaq iPaq handheld PC (StrongARM 1110)
+ This port Copyright (C) 2000, 3G Lab Ltd.
+ Copyright (C) 2000, Free Software Foundation, Inc.
+
+ RAM: 0x00000000-0x02000000
+ FLASH: 0x50000000 - 0x51000000, 64 blocks of 0x00040000 bytes each.
+ FLASH configuration checksum error or invalid key
+ ... Waiting for network card: .Ready!
+
+ Socket Communications, Inc: Low Power Ethernet CF Revision C 5V/3.3V 08/27/98
+ IP: 192.168.0.106, Default server: 192.168.0.1
+ RedBoot>
+
+
+
+Hints and Tips
+--------------
+
+Set the iPAQ Linux bootloader to operate at 38400 (ie. the same as GDB). This
+means you don't have to switch baud rate when starting RedBoot.
+
+Don't load a Linux kernel into flash, otherwise it may be booted
+automatically before you get the chance to get to the boot> prompt.
+
+Use Ethernet if possible!
+
+Flash support WILL NOT WORK unless you have modified the flash_assabet.cdl
+file as described above.
+
+
+
+Extended RedBoot Commands
+-------------------------
+
+Four new commands have been added to RedBoot to aid system development.
+
+1) gpio [-s <word>] [-c <word>]
+
+ gpio will display the current state of the GPIO pins.
+ -s <word> will set the bits that are set in <word>, leaving
+ other bits unchanged.
+ -c <word> will clear the bits that are set in <word>, leaving
+ other bits unchanged. -s and -c may be used in the
+ same command.
+
+2) egpio [-s <word>] [-c <word>]
+ egpio will display the current state of the EGPIO pins.
+ -s <word> will set the bits that are set in <word>, leaving
+ other bits unchanged.
+ -c <word> will clear the bits that are set in <word>, leaving
+ other bits unchanged. -s and -c may be used in the
+ same command.
+ [ In particular, "egpio -s 1" will enable flash programming ].
+
+3) physaddr <virtual_address>
+ will manually walk the translation and page tables
+ to determine which physical address is referenced
+ by the given <virtual_address>. Also printed are
+ the page size (section, large (64k) page, or
+ small (4k) page), the ARM domain, and the access
+ permissions. Invalid mappings will be indicated
+ with an error message explaining WHY the mapping
+ is invalid.
+
+4) mem [-a <address>] [-b|-h] <word>
+ Stores the value given by <word> at the address
+ given by <address>. <Address> defaults to the
+ last address used if not supplied.
+ -b indicates a byte store (8 bits only).
+ -h indicates a half-word store (16 bits only).
+ Default is a word store (all 32 bits).
+
+
+Appendix A - A sample minicom script to download images to flash
+----------------------------------------------------------------
+
+<<<<----------- CUT HERE ----------->>>>
+getipaq:
+ send " \c"
+ expect {
+ "boot>" goto gotit
+ " " goto tryenter
+ timeout 1 goto getipaq
+ }
+tryenter:
+ send ""
+ expect {
+ "boot>" goto gotit
+ timeout 1 goto getipaq
+ }
+gotit:
+ send "load flash 0x00100000"
+ ! sx install/bin/redboot.bin
+
+<<<<----------- CUT HERE ----------->>>>
+
+
+
+Appendix B - Differences between the Assabet and iPAQ source code
+-----------------------------------------------------------------
+
+memory map - Allocated space for LCD buffer at 0x8000. Use space at
+0x0400 - 0x3fff for page tables.
+
+hal_platform_setup.h - EGPIO word and initialisation. Skip memory
+controller initialisation (for now).
+
+redboot_cmds.c - Extra RedBoot commands as described above.
+
+lcd_support.c - various changes for the iPAQ display.
+
+ipaq_misc.c - Corrected descriptor structures. Added macros for setting
+up page tables as well as sections. Use of domains. LCD is switched on
+during plf_hardware_init(). phys_addr() function to perform translation
+table walk under software control.
+
+References
+----------
+
+ARM Architecture Reference Manual
+ (Prentice-Hall ISBN 0-13-736299-4)
+
+Compaq iPAQ H3600 Hardware Design Specification (Version 0.2f)
+
+[ later versions of these documents may be available ].
diff --git a/ecos/packages/hal/arm/sa11x0/ipaq/current/include/atmel_support.h b/ecos/packages/hal/arm/sa11x0/ipaq/current/include/atmel_support.h
new file mode 100644
index 0000000..b8e6401
--- /dev/null
+++ b/ecos/packages/hal/arm/sa11x0/ipaq/current/include/atmel_support.h
@@ -0,0 +1,140 @@
+#ifndef CYGONCE_ATMEL_SUPPORT_H
+#define CYGONCE_ATMEL_SUPPORT_H
+
+//=============================================================================
+//
+// atmel_support.h
+//
+// Platform specific support (register layout, etc)
+//
+//=============================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): gthomas
+// Contributors: gthomas
+// Date: 2001-02-27
+// Purpose: Intel SA1110/iPAQ platform specific support routines
+// Description:
+// Usage: #include <cyg/hal/atmel_support.h>
+//
+//####DESCRIPTIONEND####
+//
+//=============================================================================
+
+// Command codes
+#define ATMEL_CMD_VERSION 0
+#define ATMEL_CMD_UNKNOWN 1
+#define ATMEL_CMD_KEYBD 2
+#define ATMEL_CMD_TOUCH 3
+#define ATMEL_CMD_EEPROM_READ 4
+#define ATMEL_CMD_EEPROM_WRITE 5
+#define ATMEL_CMD_THERMAL 6
+#define ATMEL_CMD_LED 8
+#define ATMEL_CMD_BATTERY 9
+#define ATMEL_CMD_SPI_READ 11
+#define ATMEL_CMD_SPI_WRITE 12
+#define ATMEL_CMD_LIGHT 13
+#define NUM_ATMEL_CMDS 16
+
+// Structure of actual packets
+//
+// Byte 0 - SOF
+// Byte 1 - (cmd << 4) | length
+// Byte 2 - Data |
+// ... | 'length' bytes (0..15)
+// Byte m - Data |
+// Byte n - Checksum
+//
+// Since the length must be less than 16, the entire
+// packet will fit in 18 bytes
+//
+#define ATMEL_PKT_LEN 18
+typedef struct _atmel_pkt {
+ struct _atmel_pkt *next;
+ unsigned char data[ATMEL_PKT_LEN];
+ int len, size;
+} atmel_pkt;
+#define ATMEL_PKT_SOF 0
+#define ATMEL_PKT_CMD 1
+#define ATMEL_PKT_DATA 2
+
+#define ATMEL_NUM_PKT 4
+
+#define SOF 0x02
+
+//
+// Keyboard events are one byte with the button code
+// and state or'd
+//
+#define ATMEL_BUTTON_STATE 0x80
+#define ATMEL_BUTTON_STATE_DOWN 0x00
+#define ATMEL_BUTTON_STATE_UP 0x80
+#define ATMEL_BUTTON_VALUE 0x7F
+
+#define ATMEL_BUTTON_RECORD 0x01
+#define ATMEL_BUTTON_CALENDAR 0x02
+#define ATMEL_BUTTON_MEMO 0x03
+#define ATMEL_BUTTON_Q 0x04
+#define ATMEL_BUTTON_RETURN 0x05
+#define ATMEL_BUTTON_JOY_UP 0x06
+#define ATMEL_BUTTON_JOY_RIGHT 0x07
+#define ATMEL_BUTTON_JOY_DOWN 0x09
+#define ATMEL_BUTTON_JOY_LEFT 0x08
+
+struct key_event {
+ unsigned char button_info;
+};
+
+//
+// Touch screen events
+// Note: up/down is really hard to discern
+//
+struct ts_event {
+ bool up;
+ short x, y;
+};
+
+// Functions
+void atmel_init(void);
+bool atmel_send(int, unsigned char *, int);
+int atmel_recv(unsigned char *, int);
+typedef void atmel_handler(atmel_pkt *);
+void atmel_register(int, atmel_handler *);
+void atmel_interrupt_mode(bool enable);
+
+bool ts_get_event(struct ts_event *);
+bool key_get_event(struct key_event *);
+
+#endif /* CYGONCE_ATMEL_SUPPORT_H */
diff --git a/ecos/packages/hal/arm/sa11x0/ipaq/current/include/hal_platform_ints.h b/ecos/packages/hal/arm/sa11x0/ipaq/current/include/hal_platform_ints.h
new file mode 100644
index 0000000..f640754
--- /dev/null
+++ b/ecos/packages/hal/arm/sa11x0/ipaq/current/include/hal_platform_ints.h
@@ -0,0 +1,104 @@
+#ifndef CYGONCE_HAL_PLATFORM_INTS_H
+#define CYGONCE_HAL_PLATFORM_INTS_H
+//==========================================================================
+//
+// hal_platform_ints.h
+//
+// HAL extended support for platform specific interrupts
+//
+//==========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//==========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): gthomas
+// Contributors: gthomas
+// Date: 2001-02-24
+// Purpose: Define Interrupt support
+// Description: The interrupt details for the SA1110/iPAQ are defined here.
+// Usage:
+// #include <cyg/hal/hal_platform_ints.h>
+// ...
+//
+//
+//####DESCRIPTIONEND####
+//
+//==========================================================================
+
+#include CYGBLD_HAL_VAR_INTS_H // Generic interrupt support
+
+// Define here extended support for this particular platform
+
+// IRQ handler for extended interrupts
+#define HAL_EXTENDED_IRQ_HANDLER(index) \
+{ /* Check for extended interrupt source. If present, decode it into \
+ a valid eCos interrupt number and return. Fall through if no \
+ extended interrupt is present. */ \
+}
+
+// Mask an extended interrupt
+#define HAL_EXTENDED_INTERRUPT_MASK(vector) \
+{ /* Mask an interrupt source. If 'vector' corresponds to an extended \
+ interrupt, handle it and return. Otherwise, fall through for \
+ normal processing. */ \
+}
+
+// Unmask an extended interrupt
+#define HAL_EXTENDED_INTERRUPT_UNMASK(vector) \
+{ /* Unmask an interrupt source. If 'vector' corresponds to an extended \
+ interrupt, handle it and return. Otherwise, fall through for \
+ normal processing. */ \
+}
+
+// Acknowledge an extended interrupt
+#define HAL_EXTENDED_INTERRUPT_ACKNOWLEDGE(vector) \
+{ /* Ack an interrupt source. If 'vector' corresponds to an extended \
+ interrupt, handle it and return. Otherwise, fall through for \
+ normal processing. */ \
+}
+
+// Configure an extended interrupt
+#define HAL_EXTENDED_INTERRUPT_CONFIGURE(vector, level, up) \
+{ /* Configure an interrupt source. If 'vector' corresponds to an extended \
+ interrupt, handle it and return. Otherwise, fall through for \
+ normal processing. */ \
+}
+
+// Configure an extended interrupt
+#define HAL_EXTENDED_INTERRUPT_SET_LEVEL(vector, level) \
+{ /* Configure an interrupt source. If 'vector' corresponds to an extended \
+ interrupt, handle it and return. Otherwise, fall through for \
+ normal processing. */ \
+}
+
+#endif // CYGONCE_HAL_PLATFORM_INTS_H
diff --git a/ecos/packages/hal/arm/sa11x0/ipaq/current/include/hal_platform_setup.h b/ecos/packages/hal/arm/sa11x0/ipaq/current/include/hal_platform_setup.h
new file mode 100644
index 0000000..2edf887
--- /dev/null
+++ b/ecos/packages/hal/arm/sa11x0/ipaq/current/include/hal_platform_setup.h
@@ -0,0 +1,558 @@
+#ifndef CYGONCE_HAL_PLATFORM_SETUP_H
+#define CYGONCE_HAL_PLATFORM_SETUP_H
+
+/*=============================================================================
+//
+// hal_platform_setup.h
+//
+// Platform specific support for HAL (assembly code)
+//
+//=============================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): gthomas
+// Contributors: gthomas, richard.panton@3glab.com
+// Date: 2001-02-24
+// Purpose: Intel SA1110/iPAQ platform specific support routines
+// Description:
+// Usage: #include <cyg/hal/hal_platform_setup.h>
+// Only used by "vectors.S"
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================*/
+
+#include <pkgconf/system.h> // System-wide configuration info
+#include CYGBLD_HAL_VARIANT_H // Variant (SA11x0) specific configuration
+#include CYGBLD_HAL_PLATFORM_H // Platform specific configuration
+#include <cyg/hal/hal_sa11x0.h> // Variant specific hardware definitions
+#include <cyg/hal/hal_mmu.h> // MMU definitions
+#include <cyg/hal/ipaq.h> // Platform specific hardware definitions
+
+#if defined(CYG_HAL_STARTUP_ROM) || defined(CYG_HAL_STARTUP_Compaq) || defined(CYG_HAL_STARTUP_WinCE)
+#define PLATFORM_SETUP1 _platform_setup1
+#define CYGHWR_HAL_ARM_HAS_MMU
+#define CYGSEM_HAL_ROM_RESET_USES_JUMP
+#if defined(CYG_HAL_STARTUP_WinCE)
+#define UNMAPPED(x) (x)+SA11X0_RAM_BANK0_BASE
+#endif
+
+#if defined(CYG_HAL_STARTUP_ROM)
+#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
+#endif
+
+//#define DEBUG_INIT
+
+// Special image header - required when run via Parrot loader
+#ifdef CYGSEM_HAL_PARROT_BOOT
+#define PLATFORM_PREAMBLE _platform_preamble
+ .macro _platform_preamble
+ b 100f
+ .org 0x40
+ .long 0x43454345 // CECE
+ .long 0x8C0B3000 // Unknown magic
+ .org 0x1000
+100:
+ .endm
+#endif
+
+ .macro InitUART3
+#define EGPIOBase 0x49000000
+#define EGPIO_BITSY_RS232_ON (1 << 7) /* UART3 transceiver force on. Active high. */
+
+#define SA1100_UTCR0 0x00
+#define SA1100_UTCR1 0x04
+#define SA1100_UTCR2 0x08
+#define SA1100_UTCR3 0x0C
+#define SA1100_UTDR 0x14
+#define SA1100_UTSR0 0x1c
+#define SA1100_UTSR1 0x20
+
+#define SA1100_UTCR0_PE (1 << 0) /* parity enable */
+#define SA1100_UTCR0_OES (1 << 1) /* 1 for even parity */
+#define SA1100_UTCR0_2STOP (1 << 2) /* 1 for 2 stop bits */
+#define SA1100_UTCR0_8BIT (1 << 3) /* 1 for 8 bit data */
+#define SA1100_UTCR0_SCE (1 << 4) /* sample clock enable */
+#define SA1100_UTCR0_RCE (1 << 5) /* receive clock edge select */
+#define SA1100_UTCR0_TCE (1 << 6) /* transmit clock edge select */
+
+#define SA1100_UTCR1_BRDHIMASK 0xF
+#define SA1100_UTCR2_BRDLoMASK 0xFF
+
+#define SA1100_UTCR3_RXE (1 << 0) /* receiver enable */
+#define SA1100_UTCR3_TXE (1 << 1) /* transmit enable */
+#define SA1100_UTCR3_BRK (1 << 2) /* send a BRK */
+#define SA1100_UTCR3_RIE (1 << 3) /* receive FIFO interrupt enable */
+#define SA1100_UTCR3_TIE (1 << 4) /* transmit FIFO interrupt enable */
+#define SA1100_UTCR3_LBM (1 << 5) /* loopback mode */
+
+/* [1] 11.11.6 */
+#define SA1100_UTDR_PRE (1 << 8) /* parity error */
+#define SA1100_UTDR_FRE (1 << 9) /* framing error */
+#define SA1100_UTDR_ROR (1 << 10) /* receiver overrun */
+
+/* [1] 11.11.7 */
+#define SA1100_UTSR0_TFS (1 << 0) /* transmit FIFO service request */
+
+/* [1] 11.11.8 */
+#define SA1100_UTSR1_TBY (1 << 0) /* transmit FIFO busy */
+#define SA1100_UTSR1_RNE (1 << 1) /* receive FIFO not empty */
+#define SA1100_UTSR1_TNF (1 << 2) /* transmit FIFO not full */
+#define SA1100_UTSR1_PRE (1 << 3) /* parity error */
+#define SA1100_UTSR1_FRE (1 << 4) /* framing error */
+#define SA1100_UTSR1_ROR (1 << 5) /* receiver overrun */
+
+#define SA1100_UTSR1_ERROR_MASK 0x38
+
+#define SA1100_UART3BASE 0x80050000
+
+ /*
+ ;; ********************************************************************
+ ;; InitUART3 - Initialize Serial Communications
+ ;; ********************************************************************
+ ;; Following reset, the UART is disabled. So, we do the following:
+ */
+
+ ldr r1, =SA1100_UART3BASE
+ /* disable the UART */
+ mov r2, #0x00
+ str r2, [r1, #SA1100_UTCR3] /* UART1 Control Reg. 3 */
+ /* Now clear all 'sticky' bits in serial I registers, cf. [1] 11.11 */
+ mov r2, #0xFF
+ str r2, [r1, #SA1100_UTSR0] /* UART1 Status Reg. 0 */
+
+ /* Set the serial port to sensible defaults: no break, no interrupts, */
+ /* no parity, 8 databits, 1 stopbit. */
+ mov r2, #SA1100_UTCR0_8BIT
+ str r2, [r1, #SA1100_UTCR0] /* UART1 Control Reg. 0 */
+
+ /* Set BRD to 1, for a baudrate of 115K2 ([1] 11.11.4.1) */
+ /* Set BRD to 3, for a baudrate of 57k6 ([1] 11.11.4.1) */
+ /* Set BRD to 5, for a baudrate of 38k4 ([1] 11.11.4.1) */
+ /* Set BRD to 23, for a baudrate of 9k6 ([1] 11.11.4.1) */
+ mov r2, #0x00
+ str r2, [r1, #SA1100_UTCR1]
+ mov r2, #SA11X0_UART_BAUD_RATE_DIVISOR(CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_BAUD)
+ str r2, [r1, #SA1100_UTCR2]
+ /* enable the UART TX and RX */
+//InitUart3Enable:
+ mov r2, #(SA1100_UTCR3_RXE|SA1100_UTCR3_TXE)
+ str r2, [r1, #SA1100_UTCR3]
+
+ ldr r3, =EGPIOBase
+ mov r2, #EGPIO_BITSY_RS232_ON
+ str r2, [r3, #0]
+ ldr r2, [r3, #0]
+
+ // Give a little pause to let the thing settle
+ ldr r1,=1000000
+10: sub r1,r1,#1
+ cmp r1,#0
+ bne 10b
+
+ .endm
+
+ .macro PutC c
+ ldr r8,=\c
+ PutCh r8
+ .endm
+
+ .macro PutCh c
+ ldr r9,=SA1100_UART3BASE
+ str \c,[r9,#SA1100_UTDR]
+77: ldr \c,[r9,#SA1100_UTSR1]
+ tst \c,#SA1100_UTSR1_TNF // Tx FIFO not full
+ beq 77b
+ .endm
+
+ .macro PutNibble n
+ and \n,\n,#0x0F
+ cmp \n,#0x0A
+ blt 78f
+ add \n,\n,#'A'-'0'-0x0A
+78: add \n,\n,#'0'
+ PutCh \n
+ .endm
+
+ .macro PutHex1 h
+ mov r0,\h,LSR #4
+ PutNibble r0
+ PutNibble \h
+ .endm
+
+ .macro PutHex2 h
+ mov r1,\h,LSR #8
+ PutHex1 r1
+ PutHex1 \h
+ .endm
+
+ .macro PutHex4 h
+ PutC '0'
+ PutC 'x'
+ mov r2,\h,LSR #16
+ PutHex2 r2
+ PutHex2 \h
+ .endm
+
+// This macro represents the initial startup code for the platform
+ .macro _platform_setup1
+
+#ifdef DEBUG_INIT
+ b 54f
+// Dump hex memory
+// R5 - base address
+// R4 - length
+// R0..R6 destroyed
+dump:
+ PutC '\r'
+ PutC '\n'
+50: mov r6,r5
+ PutHex4 r6
+ PutC ' '
+ ldr r3,=8
+52: PutC ' '
+ ldr r6,[r5],#4
+ PutHex4 r6
+ sub r3,r3,#1
+ cmp r3,#0
+ bne 52b
+ PutC '\n'
+ PutC '\r'
+ sub r4,r4,#1
+ cmp r4,#0
+ bne 50b
+ mov pc,lr
+
+hexR6:
+ PutHex4 r6
+ PutC ' '
+ mov pc,lr
+54:
+#endif // DEBUG_INIT
+
+ // Disable all interrupts
+ ldr r1,=SA11X0_ICMR
+ mov r0,#0
+ str r0,[r1]
+
+ // Make sure MMU is OFF
+ mov r0,#0xE0000000 // Force cache writeback by reloading
+ add r2,r0,#0x4000 // cache from the zeros bank
+123: ldr r1,[r0],#32
+ cmp r0, r2
+ bne 123b
+ mov r0,#0
+ mov r1,#0x0070 // MMU Control System bit
+ mcr p15,0,r0,c7,c7,0 // Flush data and instruction cache
+ mcr p15,0,r0,c8,c7,0 // Flush ID TLBs
+ mcr p15,0,r0,c9,c0,0 // Flush Read-Buffer
+ mcr p15,0,r0,c7,c10,4 // Drain write buffer
+ mcr p15,0,r0,c13,c0,0 // Disable virtual ID mapping
+ mcr p15,0,r1,c1,c0,0 // Write MMU control register
+ nop; nop; nop; nop
+
+ InitUART3
+#ifdef DEBUG_INIT
+ mov r7,#5
+05: PutC '\n'
+ PutC '\r'
+ sub r7,r7,#1
+ cmp r7,#0
+ bne 05b
+
+ mrs r6,cpsr
+ bl hexR6
+#endif // DEBUG_INIT
+
+#if 0 // This made no difference
+ ldr r1,=10f
+ ldr r2,=SA11X0_RAM_BANK0_BASE
+ add r1,r1,r2
+ mov r0,#(CPSR_IRQ_DISABLE|CPSR_FIQ_DISABLE|CPSR_SUPERVISOR_MODE)
+ msr cpsr,r0
+ msr spsr,r0
+ movs pc,r1
+10:
+#else
+
+ mov r0,#(CPSR_IRQ_DISABLE|CPSR_FIQ_DISABLE|CPSR_SUPERVISOR_MODE)
+ msr cpsr,r0
+#endif
+#ifdef DEBUG_INIT
+ mrs r6,cpsr
+ bl hexR6
+
+ ldr r5,=0x00000000
+ ldr r4,=0x100/32
+ bl dump
+#endif // DEBUG_INIT
+
+ // Initialise extended GPIO
+ ldr r0,=SA1110_EGPIO
+ ldr r4,=SA1110_EIO_MIN
+
+ // Initialize pin directions
+ ldr r1,=SA11X0_GPIO_PIN_DIRECTION
+ ldr r2,=0x0401F3FC
+ str r2,[r1]
+
+ ldr r2,[r1,#4]
+ tst r2,#0x08000000 // Look for expansion pack
+ orreq r4,r4,#0x01B0 // Power it up if there
+ str r4,[r0]
+
+#if defined(CYG_HAL_STARTUP_ROM)
+ // Disable clock switching
+ mcr p15,0,r0,\
+ SA11X0_TEST_CLOCK_AND_IDLE_REGISTER,\
+ SA11X0_DISABLE_CLOCK_SWITCHING_RM,\
+ SA11X0_DISABLE_CLOCK_SWITCHING_OPCODE
+
+ // Set up processor clock
+ ldr r1,=SA11X0_PWR_MGR_PLL_CONFIG
+ ldr r2,=SA11X0_PLL_CLOCK
+ str r2,[r1]
+
+ // Turn clock switching back on
+ mcr p15,0,r0,\
+ SA11X0_TEST_CLOCK_AND_IDLE_REGISTER,\
+ SA11X0_ENABLE_CLOCK_SWITCHING_RM,\
+ SA11X0_ENABLE_CLOCK_SWITCHING_OPCODE
+ nop
+ nop
+#endif
+
+ // Pause
+ ldr r1,=100000
+10: sub r1,r1,#1
+ cmp r1,#0
+ bne 10b
+
+#ifdef CYGBLD_HAL_STARTUP_ROM_INIT_DRAM
+
+ // Initialize DRAM controller
+ bl 19f
+// DRAM controller initialization
+dram_table:
+ .word SA11X0_DRAM0_CAS_0, 0xAAAAAAA7
+ .word SA11X0_DRAM0_CAS_1, 0xAAAAAAAA
+ .word SA11X0_DRAM0_CAS_2, 0xAAAAAAAA
+// .word SA11X0_STATIC_CONTROL_0, 0x4B384B38
+// .word SA11X0_STATIC_CONTROL_1, 0x22212419
+ .word SA11X0_EXP_BUS_CONFIGURATION, 0x994A994A // 0x90E790E7
+ .word SA11X0_REFRESH_CONFIGURATION, 0x00302001
+ .word SA11X0_DRAM2_CAS_0, 0xAAAAAAA7
+ .word SA11X0_DRAM2_CAS_1, 0xAAAAAAAA
+ .word SA11X0_DRAM2_CAS_2, 0xAAAAAAAA
+// .word SA11X0_STATIC_CONTROL_2, 0x42194449
+ .word SA11X0_SMROM_CONFIGURATION, 0x00000000 // 0xAFCCAFCC
+ .word SA11X0_DRAM_CONFIGURATION, 0x0000F354 // 0x72547254 // Disabled
+ .word 0, 0
+
+19: mov r1,lr // Points to 'dram_table'
+ ldr r2,[r1],#4 // First control register
+20: ldr r3,[r1],#4
+ str r3,[r2]
+ ldr r2,[r1],#4 // Next control register
+ cmp r2,#0
+ bne 20b
+
+ // Enable UART
+ ldr r1,=SA1110_GPCLK_CONTROL_0
+ ldr r2,=SA1110_GPCLK_SUS_UART
+ str r2,[r1]
+
+ // Release DRAM hold (set by RESET)
+ ldr r1,=SA11X0_PWR_MGR_SLEEP_STATUS
+ ldr r2,=SA11X0_DRAM_CONTROL_HOLD
+ str r2,[r1]
+
+ // Perform 8 reads from unmapped/unenabled DRAM
+ ldr r1,=SA11X0_RAM_BANK0_BASE
+ ldr r2,[r1]
+ ldr r2,[r1]
+ ldr r2,[r1]
+ ldr r2,[r1]
+ ldr r2,[r1]
+ ldr r2,[r1]
+ ldr r2,[r1]
+ ldr r2,[r1]
+
+ // Enable DRAM controller
+ ldr r1,=SA11X0_DRAM_CONFIGURATION
+ ldr r2,=0x0000F355 // 0x72547255
+ str r2,[r1]
+
+#endif // CYGBLD_HAL_STARTUP_ROM_INIT_DRAM
+
+ // Release peripheral hold (set by RESET)
+ ldr r1,=SA11X0_PWR_MGR_SLEEP_STATUS
+ ldr r2,=SA11X0_PERIPHERAL_CONTROL_HOLD
+ str r2,[r1]
+
+ // Wakeup (via power/resume button)
+ ldr r1,=SA11X0_RESET_STATUS
+ ldr r2,[r1]
+ cmp r2,#SA11X0_SLEEP_MODE_RESET
+ bne 45f
+ ldr r1,=SA11X0_PWR_MGR_SCRATCHPAD
+ ldr r1,[r1]
+ mov pc,r1
+ nop
+45: nop
+
+ // Set up a stack [for calling C code]
+ ldr r1,=__startup_stack
+ ldr r2,=SA11X0_RAM_BANK0_BASE
+ orr sp,r1,r2
+
+#ifdef DEBUG_INIT
+ mrc p15,0,r6,c1,c0,0
+ bl hexR6
+ mrc p15,0,r6,c2,c0,0
+ bl hexR6
+ mrc p15,0,r6,c3,c0,0
+ bl hexR6
+
+ mrc p15,0,r5,c2,c0,0
+ ldr r6,=0xFFFFC000
+ and r5,r5,r6
+ ldr r4,=0x100/32
+ bl dump
+#endif // DEBUG_INIT
+
+ // Create MMU tables
+ bl hal_mmu_init
+
+#ifdef DEBUG_INIT
+ ldr r5,=0x00000000
+ ldr r4,=0x100/32
+ bl dump
+
+ ldr r5,=0xC0020000
+ ldr r4,=0x100/32
+ bl dump
+
+ mrc p15,0,r5,c2,c0,0
+ ldr r6,=0xFFFFC000
+ and r5,r5,r6
+// ldr r4,=0x4000/32
+ ldr r4,=0x100/32
+ bl dump
+#endif // DEBUG_INIT
+
+ // Enable MMU
+ ldr r2,=10f
+ ldr r1,=MMU_Control_Init|MMU_Control_M
+ mcr MMU_CP,0,r1,MMU_Control,c0
+ mov pc,r2
+ mcr MMU_CP,0,r0,MMU_InvalidateCache,c7,0 // Flush data and instruction cache
+ mcr MMU_CP,0,r0,MMU_TLB,c7,0 // Flush ID TLBs
+10:
+ nop
+ nop
+ nop
+
+#ifdef DEBUG_INIT
+ ldr r5,=0x00022000
+ ldr r4,=0xDEADDEAD
+ str r4,[r5],#4
+ str r4,[r5],#4
+ str r4,[r5],#4
+ str r4,[r5],#4
+
+ ldr r5,=0x00022000
+ ldr r4,=0x100/32
+ bl dump
+#endif // DEBUG_INIT
+
+ // Save shadow copy of BCR
+ ldr r1,=_ipaq_EGPIO
+#ifdef DEGUG_INIT
+ ldr r4,=SA1110_EIO_MIN
+#endif // DEBUG_INIT
+ str r4,[r1]
+ .endm
+
+#if defined(CYG_HAL_STARTUP_Compaq)
+#define CYG_HAL_STARTUP_ROM
+#define CYG_HAL_ROM_RESET_USES_JUMP
+#endif
+
+#else // defined(CYG_HAL_STARTUP_ROM)
+#define PLATFORM_SETUP1
+#endif
+
+#define PLATFORM_VECTORS _platform_vectors
+ .macro _platform_vectors
+ .globl _ipaq_EGPIO
+_ipaq_EGPIO: .long 0 // Extended GPIO shadow
+
+ .globl _ipaq_LCD_params
+_ipaq_LCD_params:
+ .short 0,0,0,0 // Coordinates used by virtual keyboard
+ .short 0,0,0,0
+ .short 0 // Checksum of above
+ .endm
+
+/*---------------------------------------------------------------------------*/
+/* end of hal_platform_setup.h */
+#endif /* CYGONCE_HAL_PLATFORM_SETUP_H */
diff --git a/ecos/packages/hal/arm/sa11x0/ipaq/current/include/ipaq.h b/ecos/packages/hal/arm/sa11x0/ipaq/current/include/ipaq.h
new file mode 100644
index 0000000..b39fb8e
--- /dev/null
+++ b/ecos/packages/hal/arm/sa11x0/ipaq/current/include/ipaq.h
@@ -0,0 +1,188 @@
+#ifndef CYGONCE_IPAQ_H
+#define CYGONCE_IPAQ_H
+
+//=============================================================================
+//
+// ipaq.h
+//
+// Platform specific support (register layout, etc)
+//
+//=============================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): gthomas
+// Contributors: gthomas, richard.panton@3glab.com
+// Date: 2001-02-24
+// Purpose: Intel SA1110/iPAQ platform specific support routines
+// Description:
+// Usage: #include <cyg/hal/ipaq.h>
+//
+//####DESCRIPTIONEND####
+//
+//=============================================================================
+
+
+#ifndef __ASSEMBLER__
+//
+// Extended GPIO
+// Note: This register is write-only. Thus a shadow copy is provided so that
+// it may be safely updated/shared by multiple threads.
+//
+extern unsigned long _ipaq_EGPIO; // Shadow copy
+
+extern unsigned short _ipaq_LCD_params[(4*2)+1]; // Various LCD parameters
+
+extern void ipaq_EGPIO(unsigned long mask, unsigned long value);
+
+#endif
+
+//
+// Signal assertion levels
+//
+#define _LOGIC_ONE(m) (m & 0xFFFF)
+#define _LOGIC_ZERO(m) (m & 0x0000)
+
+//
+// iPAQ Extended GPIO definitions
+//
+#define SA1110_EGPIO REG16_PTR(0x49000000)
+#define SA1110_EIO_MIN 0x0080
+
+#define SA1110_EIO_VPP 0x0001
+# define SA1110_EIO_VPP_OFF _LOGIC_ZERO(SA1110_EIO_VPP)
+# define SA1110_EIO_VPP_ON _LOGIC_ONE(SA1110_EIO_VPP)
+#define SA1110_EIO_CF_RESET 0x0002
+# define SA1110_EIO_CF_RESET_DISABLE _LOGIC_ZERO(SA1110_EIO_CF_RESET)
+# define SA1110_EIO_CF_RESET_ENABLE _LOGIC_ONE(SA1110_EIO_CF_RESET)
+#define SA1110_EIO_OPT_RESET 0x0004
+# define SA1110_EIO_OPT_RESET_DISABLE _LOGIC_ZERO(SA1110_EIO_OPT_RESET)
+# define SA1110_EIO_OPT_RESET_ENABLE _LOGIC_ONE(SA1110_EIO_OPT_RESET)
+#define SA1110_EIO_CODEC_RESET 0x0008 // Active LOW
+# define SA1110_EIO_CODEC_RESET_DISABLE _LOGIC_ONE(SA1110_EIO_CODEC_RESET)
+# define SA1110_EIO_CODEC_RESET_ENABLE _LOGIC_ZERO(SA1110_EIO_CODEC_RESET)
+#define SA1110_EIO_OPT_PWR 0x0010
+# define SA1110_EIO_OPT_PWR_OFF _LOGIC_ZERO(SA1110_EIO_OPT_PWR)
+# define SA1110_EIO_OPT_PWR_ON _LOGIC_ONE(SA1110_EIO_OPT_PWR)
+#define SA1110_EIO_OPT 0x0020
+# define SA1110_EIO_OPT_OFF _LOGIC_ZERO(SA1110_EIO_OPT)
+# define SA1110_EIO_OPT_ON _LOGIC_ONE(SA1110_EIO_OPT)
+#define SA1110_EIO_LCD_3V3 0x0040
+# define SA1110_EIO_LCD_3V3_OFF _LOGIC_ZERO(SA1110_EIO_LCD_3V3)
+# define SA1110_EIO_LCD_3V3_ON _LOGIC_ONE(SA1110_EIO_LCD_3V3)
+#define SA1110_EIO_RS232 0x0080
+# define SA1110_EIO_RS232_OFF _LOGIC_ZERO(SA1110_EIO_RS232)
+# define SA1110_EIO_RS232_ON _LOGIC_ONE(SA1110_EIO_RS232)
+#define SA1110_EIO_LCD_CTRL 0x0100
+# define SA1110_EIO_LCD_CTRL_OFF _LOGIC_ZERO(SA1110_EIO_LCD_CTRL)
+# define SA1110_EIO_LCD_CTRL_ON _LOGIC_ONE(SA1110_EIO_LCD_CTRL)
+#define SA1110_EIO_IR 0x0200
+# define SA1110_EIO_IR_OFF _LOGIC_ZERO(SA1110_EIO_IR)
+# define SA1110_EIO_IR_ON _LOGIC_ONE(SA1110_EIO_IR)
+#define SA1110_EIO_AMP 0x0400
+# define SA1110_EIO_AMP_OFF _LOGIC_ZERO(SA1110_EIO_AMP)
+# define SA1110_EIO_AMP_ON _LOGIC_ONE(SA1110_EIO_AMP)
+#define SA1110_EIO_AUDIO 0x0800
+# define SA1110_EIO_AUDIO_OFF _LOGIC_ZERO(SA1110_EIO_AUDIO)
+# define SA1110_EIO_AUDIO_ON _LOGIC_ONE(SA1110_EIO_AUDIO)
+#define SA1110_EIO_MUTE 0x1000
+# define SA1110_EIO_MUTE_OFF _LOGIC_ZERO(SA1110_EIO_MUTE)
+# define SA1110_EIO_MUTE_ON _LOGIC_ONE(SA1110_EIO_MUTE)
+#define SA1110_EIO_IR_FSEL 0x2000
+# define SA1110_EIO_SIR _LOGIC_ZERO(SA1110_EIO_IR_FSEL)
+# define SA1110_EIO_FIR _LOGIC_ONE(SA1110_EIO_IR_FSEL)
+#define SA1110_EIO_LCD_5V 0x4000
+# define SA1110_EIO_LCD_5V_OFF _LOGIC_ZERO(SA1110_EIO_LCD_5V)
+# define SA1110_EIO_LCD_5V_ON _LOGIC_ONE(SA1110_EIO_LCD_5V)
+#define SA1110_EIO_LCD_VDD 0x8000
+# define SA1110_EIO_LCD_VDD_OFF _LOGIC_ZERO(SA1110_EIO_LCD_VDD)
+# define SA1110_EIO_LCD_VDD_ON _LOGIC_ONE(SA1110_EIO_LCD_VDD)
+
+//
+// Special purpose GPIO interrupt mappings
+//
+#define SA1110_CF_IRQ CYGNUM_HAL_INTERRUPT_GPIO21
+#define SA1110_CF_DETECT CYGNUM_HAL_INTERRUPT_GPIO17
+
+//
+// GPIO layout
+//
+#define SA1110_GPIO_CF_DETECT 0x00020000 // 0 = Compact Flash detect
+#define SA1110_GPIO_CF_PRESENT _LOGIC_ZERO(SA1110_GPIO_CF_DETECT)
+#define SA1110_GPIO_CF_ABSENT _LOGIC_ONE(SA1110_GPIO_CF_DETECT)
+#define SA1110_GPIO_CF2_DETECT 0x00000200 // 0 = Second slot on 2-slot sleeve
+#define SA1110_GPIO_CF2_PRESENT _LOGIC_ZERO(SA1110_GPIO_CF2_DETECT)
+#define SA1110_GPIO_CF2_ABSENT _LOGIC_ONE(SA1110_GPIO_CF2_DETECT)
+
+//
+// PCMCIA controller in external sleeve
+//
+#define IPAQ_CF_CTRL 0x1A000000 // Slot 0 (same as single slot)
+#define IPAQ_CF2_CTRL 0x19000000 // Slot 1
+#define IPAQ_CF_CTRL_V5 0x0001 // 5v power enable
+#define IPAQ_CF_CTRL_V5_ENABLE _LOGIC_ZERO(IPAQ_CF_CTRL_V5)
+#define IPAQ_CF_CTRL_V5_DISABLE _LOGIC_ONE(IPAQ_CF_CTRL_V5)
+#define IPAQ_CF_CTRL_V3 0x0002 // 3v power enable
+#define IPAQ_CF_CTRL_V3_ENABLE _LOGIC_ZERO(IPAQ_CF_CTRL_V3)
+#define IPAQ_CF_CTRL_V3_DISABLE _LOGIC_ONE(IPAQ_CF_CTRL_V3)
+#define IPAQ_CF_CTRL_VCC 0x0004 // Vcc power enable
+#define IPAQ_CF_CTRL_V12 0x0008 // 12v power enable
+#define IPAQ_CF_CTRL_RESET 0x0010 // Reset card
+#define IPAQ_CF_CTRL_RESET_ENABLE _LOGIC_ONE(IPAQ_CF_CTRL_RESET)
+#define IPAQ_CF_CTRL_RESET_DISABLE _LOGIC_ZERO(IPAQ_CF_CTRL_RESET)
+#define IPAQ_CF_CTRL_APOE 0x0020 // Auto power off
+#define IPAQ_CF_CTRL_APOE_ENABLE _LOGIC_ONE(IPAQ_CF_CTRL_APOE)
+#define IPAQ_CF_CTRL_APOE_DISABLE _LOGIC_ZERO(IPAQ_CF_CTRL_APOE)
+#define IPAQ_CF_CTRL_CFE 0x0040 // Compact Flash [addressing] enable
+#define IPAQ_CF_CTRL_SOE 0x0080 // Enable signal outputs
+#define IPAQ_CF_CTRL_SOE_ENABLE _LOGIC_ONE(IPAQ_CF_CTRL_SOE)
+#define IPAQ_CF_CTRL_SOE_DISABLE _LOGIC_ZERO(IPAQ_CF_CTRL_SOE)
+#define IPAQ_CF_CTRL_SSP 0x0100 // Slot polarity; slot0=0, slot1=1
+
+
+//
+// LCD Controller
+//
+#define SA1110_LCCR0 SA11X0_REGISTER(0x30100000)
+#define SA1110_LCSR SA11X0_REGISTER(0x30100004)
+#define SA1110_DBAR1 SA11X0_REGISTER(0x30100010)
+#define SA1110_DCAR1 SA11X0_REGISTER(0x30100014)
+#define SA1110_DBAR2 SA11X0_REGISTER(0x30100018)
+#define SA1110_DCAR2 SA11X0_REGISTER(0x3010001C)
+#define SA1110_LCCR1 SA11X0_REGISTER(0x30100020)
+#define SA1110_LCCR2 SA11X0_REGISTER(0x30100024)
+#define SA1110_LCCR3 SA11X0_REGISTER(0x30100028)
+
+/* end of ipaq.h */
+#endif /* CYGONCE_IPAQ_H */
diff --git a/ecos/packages/hal/arm/sa11x0/ipaq/current/include/lcd_support.h b/ecos/packages/hal/arm/sa11x0/ipaq/current/include/lcd_support.h
new file mode 100644
index 0000000..440e7e9
--- /dev/null
+++ b/ecos/packages/hal/arm/sa11x0/ipaq/current/include/lcd_support.h
@@ -0,0 +1,74 @@
+#ifndef _LCD_SUPPORT_H_
+#define _LCD_SUPPORT_H_
+//==========================================================================
+//
+// lcd_support.h
+//
+// SA1110/iPAQ - LCD support routines
+//
+//==========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//==========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): gthomas
+// Contributors: gthomas
+// Date: 2001-02-24
+// Description: Simple LCD support
+//####DESCRIPTIONEND####
+
+struct lcd_info {
+ short height, width; // Pixels
+ short bpp; // Depth (bits/pixel)
+ short type;
+ short rlen; // Length of one raster line in bytes
+ void *fb; // Frame buffer
+};
+
+// Frame buffer types
+#define FB_TRUE_RGB565 0x01
+
+// Exported functions
+void lcd_init(int depth);
+void lcd_clear(void);
+void lcd_brightness(int level);
+void lcd_moveto(int X, int Y);
+void lcd_putc(cyg_int8 c);
+int lcd_printf(char const *fmt, ...);
+void lcd_setbg(int red, int green, int blue);
+void lcd_setfg(int red, int green, int blue);
+void lcd_comm_init(void);
+int lcd_getinfo(struct lcd_info *info);
+void lcd_on(bool enable);
+
+#endif // _LCD_SUPPORT_H_
diff --git a/ecos/packages/hal/arm/sa11x0/ipaq/current/include/pkgconf/mlt_arm_sa11x0_ipaq_compaq.h b/ecos/packages/hal/arm/sa11x0/ipaq/current/include/pkgconf/mlt_arm_sa11x0_ipaq_compaq.h
new file mode 100644
index 0000000..e4bcf1a
--- /dev/null
+++ b/ecos/packages/hal/arm/sa11x0/ipaq/current/include/pkgconf/mlt_arm_sa11x0_ipaq_compaq.h
@@ -0,0 +1,20 @@
+// eCos memory layout - Fri Oct 20 05:56:55 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 (0)
+#define CYGMEM_REGION_ram_SIZE (0x1FC0000)
+#define CYGMEM_REGION_ram_ATTR (CYGMEM_REGION_ATTR_R | CYGMEM_REGION_ATTR_W)
+#define CYGMEM_REGION_rom (0x50100000)
+#define CYGMEM_REGION_rom_SIZE (0x2000000)
+#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 (0x1FC0000 - (size_t) CYG_LABEL_NAME (__heap1))
diff --git a/ecos/packages/hal/arm/sa11x0/ipaq/current/include/pkgconf/mlt_arm_sa11x0_ipaq_compaq.ldi b/ecos/packages/hal/arm/sa11x0/ipaq/current/include/pkgconf/mlt_arm_sa11x0_ipaq_compaq.ldi
new file mode 100644
index 0000000..92a1cc2
--- /dev/null
+++ b/ecos/packages/hal/arm/sa11x0/ipaq/current/include/pkgconf/mlt_arm_sa11x0_ipaq_compaq.ldi
@@ -0,0 +1,28 @@
+// eCos memory layout - Fri Oct 20 05:56:55 2000
+
+// This is a generated file - do not edit
+
+#include <cyg/infra/cyg_type.inc>
+
+MEMORY
+{
+ ram : ORIGIN = 0, LENGTH = 0x1FC0000
+ rom : ORIGIN = 0x50000000, LENGTH = 0x02000000
+}
+
+SECTIONS
+{
+ SECTIONS_BEGIN
+ SECTION_rom_vectors (rom, 0x50100000, 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)
+ CYG_LABEL_DEFN(__heap1) = ALIGN (0x100);
+ SECTIONS_END
+}
diff --git a/ecos/packages/hal/arm/sa11x0/ipaq/current/include/pkgconf/mlt_arm_sa11x0_ipaq_compaq.mlt b/ecos/packages/hal/arm/sa11x0/ipaq/current/include/pkgconf/mlt_arm_sa11x0_ipaq_compaq.mlt
new file mode 100644
index 0000000..a3ba990
--- /dev/null
+++ b/ecos/packages/hal/arm/sa11x0/ipaq/current/include/pkgconf/mlt_arm_sa11x0_ipaq_compaq.mlt
@@ -0,0 +1,14 @@
+version 0
+region ram 0 1fc0000 0 !
+region rom 50000000 2000000 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 1 0 1 heap1 heap1 !
+section heap1 0 100 0 0 0 0 0 0 !
+section rom_vectors 0 1 0 1 1 1 1 1 50100000 50100000 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 !
diff --git a/ecos/packages/hal/arm/sa11x0/ipaq/current/include/pkgconf/mlt_arm_sa11x0_ipaq_ram.h b/ecos/packages/hal/arm/sa11x0/ipaq/current/include/pkgconf/mlt_arm_sa11x0_ipaq_ram.h
new file mode 100644
index 0000000..d14d578
--- /dev/null
+++ b/ecos/packages/hal/arm/sa11x0/ipaq/current/include/pkgconf/mlt_arm_sa11x0_ipaq_ram.h
@@ -0,0 +1,17 @@
+// eCos memory layout - Fri Oct 20 05:56:24 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 (0)
+#define CYGMEM_REGION_ram_SIZE (0x1FC0000)
+#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 (0x1FC0000 - (size_t) CYG_LABEL_NAME (__heap1))
diff --git a/ecos/packages/hal/arm/sa11x0/ipaq/current/include/pkgconf/mlt_arm_sa11x0_ipaq_ram.ldi b/ecos/packages/hal/arm/sa11x0/ipaq/current/include/pkgconf/mlt_arm_sa11x0_ipaq_ram.ldi
new file mode 100644
index 0000000..4eb8f2f
--- /dev/null
+++ b/ecos/packages/hal/arm/sa11x0/ipaq/current/include/pkgconf/mlt_arm_sa11x0_ipaq_ram.ldi
@@ -0,0 +1,27 @@
+// eCos memory layout - Fri Oct 20 05:56:24 2000
+
+// This is a generated file - do not edit
+
+#include <cyg/infra/cyg_type.inc>
+
+MEMORY
+{
+ ram : ORIGIN = 0x0000, LENGTH = 0x1fc0000
+}
+
+SECTIONS
+{
+ SECTIONS_BEGIN
+ SECTION_fixed_vectors (ram, 0x0020, LMA_EQ_VMA)
+ SECTION_rom_vectors (ram, 0x20000, 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)
+ CYG_LABEL_DEFN(__heap1) = ALIGN (0x1000);
+ SECTIONS_END
+}
diff --git a/ecos/packages/hal/arm/sa11x0/ipaq/current/include/pkgconf/mlt_arm_sa11x0_ipaq_ram.mlt b/ecos/packages/hal/arm/sa11x0/ipaq/current/include/pkgconf/mlt_arm_sa11x0_ipaq_ram.mlt
new file mode 100644
index 0000000..4cfaf37
--- /dev/null
+++ b/ecos/packages/hal/arm/sa11x0/ipaq/current/include/pkgconf/mlt_arm_sa11x0_ipaq_ram.mlt
@@ -0,0 +1,13 @@
+version 0
+region ram 0 1fc0000 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 20000 20000 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 1 0 1 heap1 heap1 !
+section heap1 0 1000 0 0 0 0 0 0 !
diff --git a/ecos/packages/hal/arm/sa11x0/ipaq/current/include/pkgconf/mlt_arm_sa11x0_ipaq_rom.h b/ecos/packages/hal/arm/sa11x0/ipaq/current/include/pkgconf/mlt_arm_sa11x0_ipaq_rom.h
new file mode 100644
index 0000000..e7bb6fe
--- /dev/null
+++ b/ecos/packages/hal/arm/sa11x0/ipaq/current/include/pkgconf/mlt_arm_sa11x0_ipaq_rom.h
@@ -0,0 +1,20 @@
+// eCos memory layout - Fri Oct 20 05:56:55 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 (0)
+#define CYGMEM_REGION_ram_SIZE (0x1FC0000)
+#define CYGMEM_REGION_ram_ATTR (CYGMEM_REGION_ATTR_R | CYGMEM_REGION_ATTR_W)
+#define CYGMEM_REGION_rom (0x50000000)
+#define CYGMEM_REGION_rom_SIZE (0x2000000)
+#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 (0x1FC0000 - (size_t) CYG_LABEL_NAME (__heap1))
diff --git a/ecos/packages/hal/arm/sa11x0/ipaq/current/include/pkgconf/mlt_arm_sa11x0_ipaq_rom.ldi b/ecos/packages/hal/arm/sa11x0/ipaq/current/include/pkgconf/mlt_arm_sa11x0_ipaq_rom.ldi
new file mode 100644
index 0000000..2ccf6df
--- /dev/null
+++ b/ecos/packages/hal/arm/sa11x0/ipaq/current/include/pkgconf/mlt_arm_sa11x0_ipaq_rom.ldi
@@ -0,0 +1,28 @@
+// eCos memory layout - Fri Oct 20 05:56:55 2000
+
+// This is a generated file - do not edit
+
+#include <cyg/infra/cyg_type.inc>
+
+MEMORY
+{
+ ram : ORIGIN = 0, LENGTH = 0x1FC0000
+ rom : ORIGIN = 0x50000000, LENGTH = 0x02000000
+}
+
+SECTIONS
+{
+ SECTIONS_BEGIN
+ SECTION_rom_vectors (rom, 0x50040000, 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)
+ CYG_LABEL_DEFN(__heap1) = ALIGN (0x8);
+ SECTIONS_END
+}
diff --git a/ecos/packages/hal/arm/sa11x0/ipaq/current/include/pkgconf/mlt_arm_sa11x0_ipaq_rom.mlt b/ecos/packages/hal/arm/sa11x0/ipaq/current/include/pkgconf/mlt_arm_sa11x0_ipaq_rom.mlt
new file mode 100644
index 0000000..ed571d7
--- /dev/null
+++ b/ecos/packages/hal/arm/sa11x0/ipaq/current/include/pkgconf/mlt_arm_sa11x0_ipaq_rom.mlt
@@ -0,0 +1,14 @@
+version 0
+region ram 0 1fc0000 0 !
+region rom 50000000 2000000 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 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 50040000 50040000 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 !
diff --git a/ecos/packages/hal/arm/sa11x0/ipaq/current/include/pkgconf/mlt_arm_sa11x0_ipaq_wince.h b/ecos/packages/hal/arm/sa11x0/ipaq/current/include/pkgconf/mlt_arm_sa11x0_ipaq_wince.h
new file mode 100644
index 0000000..290a952
--- /dev/null
+++ b/ecos/packages/hal/arm/sa11x0/ipaq/current/include/pkgconf/mlt_arm_sa11x0_ipaq_wince.h
@@ -0,0 +1,17 @@
+// eCos memory layout - Fri Oct 20 05:56:24 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 (0)
+#define CYGMEM_REGION_ram_SIZE (0x2000000)
+#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 (0x2000000 - (size_t) CYG_LABEL_NAME (__heap1))
diff --git a/ecos/packages/hal/arm/sa11x0/ipaq/current/include/pkgconf/mlt_arm_sa11x0_ipaq_wince.ldi b/ecos/packages/hal/arm/sa11x0/ipaq/current/include/pkgconf/mlt_arm_sa11x0_ipaq_wince.ldi
new file mode 100644
index 0000000..c0c39c9
--- /dev/null
+++ b/ecos/packages/hal/arm/sa11x0/ipaq/current/include/pkgconf/mlt_arm_sa11x0_ipaq_wince.ldi
@@ -0,0 +1,27 @@
+// eCos memory layout - Fri Oct 20 05:56:24 2000
+
+// This is a generated file - do not edit
+
+#include <cyg/infra/cyg_type.inc>
+
+MEMORY
+{
+ ram : ORIGIN = 0x0000, LENGTH = 0x2000000
+}
+
+SECTIONS
+{
+ SECTIONS_BEGIN
+ SECTION_fixed_vectors (ram, 0x0020, LMA_EQ_VMA)
+ SECTION_rom_vectors (ram, 0x22000, 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)
+ CYG_LABEL_DEFN(__heap1) = ALIGN (0x1000);
+ SECTIONS_END
+}
diff --git a/ecos/packages/hal/arm/sa11x0/ipaq/current/include/pkgconf/mlt_arm_sa11x0_ipaq_wince.mlt b/ecos/packages/hal/arm/sa11x0/ipaq/current/include/pkgconf/mlt_arm_sa11x0_ipaq_wince.mlt
new file mode 100644
index 0000000..a26072a
--- /dev/null
+++ b/ecos/packages/hal/arm/sa11x0/ipaq/current/include/pkgconf/mlt_arm_sa11x0_ipaq_wince.mlt
@@ -0,0 +1,13 @@
+version 0
+region ram 0 2000000 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 22000 22000 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 1 0 1 heap1 heap1 !
+section heap1 0 1000 0 0 0 0 0 0 !
diff --git a/ecos/packages/hal/arm/sa11x0/ipaq/current/include/plf_io.h b/ecos/packages/hal/arm/sa11x0/ipaq/current/include/plf_io.h
new file mode 100644
index 0000000..1c27385
--- /dev/null
+++ b/ecos/packages/hal/arm/sa11x0/ipaq/current/include/plf_io.h
@@ -0,0 +1,59 @@
+#ifndef CYGONCE_HAL_ARM_SA11X0_IPAQ_PLF_IO_H
+#define CYGONCE_HAL_ARM_SA11X0_IPAQ_PLF_IO_H
+
+/*=============================================================================
+//
+// plf_io.h
+//
+// Platform specific support (register layout, etc)
+//
+//=============================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jskov
+// Contributors: jskov
+// Date: 2002-01-28
+// Purpose: Platform specific support routines
+// Description:
+// Usage: #include <cyg/hal/hal_io.h>
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================*/
+
+#include <cyg/hal/ipaq.h>
+
+#endif // CYGONCE_HAL_ARM_SA11X0_IPAQ_PLF_IO_H
+// EOF plf_io.h
diff --git a/ecos/packages/hal/arm/sa11x0/ipaq/current/include/plf_mmap.h b/ecos/packages/hal/arm/sa11x0/ipaq/current/include/plf_mmap.h
new file mode 100644
index 0000000..548804d
--- /dev/null
+++ b/ecos/packages/hal/arm/sa11x0/ipaq/current/include/plf_mmap.h
@@ -0,0 +1,131 @@
+#ifndef CYGONCE_HAL_SA11X0_PLATFORM_PLF_MMAP_H
+#define CYGONCE_HAL_SA11X0_PLATFORM_PLF_MMAP_H
+/*=============================================================================
+//
+// plf_mmap.h
+//
+// Platform specific memory map support
+//
+//=============================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): hmt
+// Contributors: hmt
+// Date: 2001-01-04
+// Purpose: Intel SA11x0 series platform-specific memory mapping macros
+// Description: Macros to convert a cached, virtual address to
+// 1) an uncached adddress for the same memory (if available)
+// 2) the equivalent physical address for giving to external
+// hardware eg. DMA engines.
+//
+// NB: this mapping is expressed here statically, independent
+// of the actual mapping installed in the MMAP table. So if
+// someone changes that, or its initialisation is changed,
+// then this module must change. This is intended to be
+// efficient at a cost of generality. It is also intended to
+// be called with constants (such as &my_struct) as input
+// args, so that all the work can be done at compile time,
+// with optimization on.
+//
+// Usage: #include <cyg/hal/hal_cache.h>
+// (which includes this file itself)
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================*/
+
+#include <cyg/hal/hal_misc.h>
+
+// Get the pagesize for a particular virtual address:
+
+// This does not depend on the vaddr.
+#define HAL_MM_PAGESIZE( vaddr, pagesize ) CYG_MACRO_START \
+ (pagesize) = SZ_1M; \
+CYG_MACRO_END
+
+// Get the physical address from a virtual address:
+
+// Only RAM and ROM are mapped; we just pass through all other values,
+// rather than detecting nonexistent areas here.
+
+#define HAL_VIRT_TO_PHYS_ADDRESS( vaddr, paddr ) CYG_MACRO_START \
+ cyg_uint32 _v_ = (cyg_uint32)(vaddr); \
+ if ( 32 * SZ_1M > _v_ ) /* 32Mb of SDRAM Bank 0 from 0-32Mb */ \
+ _v_ += 0xc00u * SZ_1M; \
+ else if ( 0x500u * SZ_1M > _v_ ) /* Space between RAM and mapped ROM */\
+ /* no change */ ; \
+ else if ( 0x520u * SZ_1M > _v_ ) /* Mapped boot ROM size 32Mb */ \
+ _v_ -= 0x500u * SZ_1M; \
+ else /* Rest of it */ \
+ /* no change */ ; \
+ (paddr) = _v_; \
+CYG_MACRO_END
+
+// Get the virtual address for a physical address:
+
+// Only RAM and ROM are mapped; we just pass through all other values,
+// rather than detecting nonexistent areas here.
+
+#define HAL_PHYS_TO_VIRT_ADDRESS( paddr, vaddr ) CYG_MACRO_START \
+ cyg_uint32 _p_ = (cyg_uint32)(paddr); \
+ if ( 32 * SZ_1M > _p_ ) /* 32Mb Boot ROM mapped to 0x500Mb */ \
+ _p_ += 0x500u * SZ_1M; \
+ else if ( 0xc00u * SZ_1M > _p_ ) /* Space between ROM and SDRAM */ \
+ /* no change */ ; \
+ else if ( 0xc20u * SZ_1M > _p_ ) /* Raw RAM size 32Mb */ \
+ _p_ -= 0xc00u * SZ_1M; \
+ else /* Rest of it */ \
+ /* no change */ ; \
+ (vaddr) = _p_ ; \
+CYG_MACRO_END
+
+// Get a non-cacheable address for accessing the same store as a virtual
+// (assumed cachable) address:
+
+// Only RAM is mapped: ROM is only available cachable, everything else is
+// not cachable anyway.
+
+#define HAL_VIRT_TO_UNCACHED_ADDRESS( vaddr, uaddr ) CYG_MACRO_START \
+ cyg_uint32 _v_ = (cyg_uint32)(vaddr); \
+ if ( 32 * SZ_1M > _v_ ) /* 32Mb of SDRAM Bank 0 from 0-32Mb */ \
+ _v_ += 0xc00u * SZ_1M; \
+ else /* Everything else is already uncacheable or is ROM */ \
+ /* no change */ ; \
+ (uaddr) = _v_ ; \
+CYG_MACRO_END
+
+//---------------------------------------------------------------------------
+#endif // CYGONCE_HAL_SA11X0_PLATFORM_PLF_MMAP_H
+// EOF plf_mmap.h
diff --git a/ecos/packages/hal/arm/sa11x0/ipaq/current/misc/elinux.patch b/ecos/packages/hal/arm/sa11x0/ipaq/current/misc/elinux.patch
new file mode 100644
index 0000000..fcb0b7b
--- /dev/null
+++ b/ecos/packages/hal/arm/sa11x0/ipaq/current/misc/elinux.patch
@@ -0,0 +1,911 @@
+diff -uNr --exclude=.*flags --exclude=*.[ao] --exclude=.*depend /work2/iPAQ/HandHelds.org/cvs/linux/kernel/.config.old ./.config.old
+--- /work2/iPAQ/HandHelds.org/cvs/linux/kernel/.config.old Wed Dec 31 17:00:00 1969
++++ ./.config.old Sat Mar 24 05:12:24 2001
+@@ -0,0 +1,689 @@
++#
++# Automatically generated make config: don't edit
++#
++CONFIG_ARM=y
++# CONFIG_EISA is not set
++# CONFIG_SBUS is not set
++# CONFIG_MCA is not set
++CONFIG_UID16=y
++
++#
++# Code maturity level options
++#
++CONFIG_EXPERIMENTAL=y
++# CONFIG_OBSOLETE is not set
++
++#
++# Loadable module support
++#
++CONFIG_MODULES=y
++# CONFIG_MODVERSIONS is not set
++CONFIG_KMOD=y
++
++#
++# System Type
++#
++# CONFIG_ARCH_ARCA5K is not set
++# CONFIG_ARCH_CLPS7500 is not set
++# CONFIG_ARCH_CO285 is not set
++# CONFIG_ARCH_EBSA110 is not set
++# CONFIG_ARCH_L7200 is not set
++# CONFIG_ARCH_FOOTBRIDGE is not set
++# CONFIG_ARCH_INTEGRATOR is not set
++# CONFIG_ARCH_RPC is not set
++CONFIG_ARCH_SA1100=y
++# CONFIG_ARCH_CLPS711X is not set
++
++#
++# Archimedes/A5000 Implementations
++#
++
++#
++# Archimedes/A5000 Implementations (select only ONE)
++#
++
++#
++# Footbridge Implementations
++#
++
++#
++# SA11x0 Implementations
++#
++# CONFIG_SA1100_ASSABET is not set
++# CONFIG_SA1100_BRUTUS is not set
++# CONFIG_SA1100_CERF is not set
++CONFIG_SA1100_BITSY=y
++# CONFIG_SA1100_JORNADA720 is not set
++# CONFIG_SA1100_EXTENEX1 is not set
++# CONFIG_SA1100_FREEBIRD is not set
++# CONFIG_SA1100_GRAPHICSCLIENT is not set
++# CONFIG_SA1100_HUW_WEBPANEL is not set
++# CONFIG_SA1100_LART is not set
++# CONFIG_SA1100_OMNIMETER is not set
++# CONFIG_SA1100_PLEB is not set
++# CONFIG_SA1100_NANOENGINE is not set
++# CONFIG_SA1100_PANGOLIN is not set
++# CONFIG_SA1100_SHERMAN is not set
++# CONFIG_SA1100_VICTOR is not set
++# CONFIG_SA1100_XP860 is not set
++# CONFIG_SA1100_YOPY is not set
++CONFIG_SA1100_USB=m
++CONFIG_SA1100_USB_NETLINK=m
++CONFIG_SA1100_USB_CHAR=m
++CONFIG_SA1100_FREQUENCY_SCALE=m
++
++#
++# CLPS711X/EP721X Implementations
++#
++# CONFIG_ARCH_ACORN is not set
++# CONFIG_FOOTBRIDGE is not set
++# CONFIG_FOOTBRIDGE_HOST is not set
++# CONFIG_FOOTBRIDGE_ADDIN is not set
++CONFIG_CPU_32=y
++# CONFIG_CPU_26 is not set
++
++#
++# Processor Type
++#
++# CONFIG_CPU_32v3 is not set
++CONFIG_CPU_32v4=y
++# CONFIG_CPU_ARM610 is not set
++# CONFIG_CPU_ARM710 is not set
++# CONFIG_CPU_ARM720T is not set
++# CONFIG_CPU_ARM920T is not set
++# CONFIG_CPU_ARM1020 is not set
++# CONFIG_CPU_SA110 is not set
++CONFIG_CPU_SA1100=y
++CONFIG_DISCONTIGMEM=y
++
++#
++# General setup
++#
++
++#
++# Please ensure that you have read the help on the next option
++#
++# CONFIG_ANGELBOOT is not set
++# CONFIG_PCI is not set
++# CONFIG_ISA is not set
++# CONFIG_ISA_DMA is not set
++CONFIG_HOTPLUG=y
++
++#
++# PCMCIA/CardBus support
++#
++CONFIG_PCMCIA=m
++# CONFIG_I82365 is not set
++# CONFIG_TCIC is not set
++CONFIG_PCMCIA_SA1100=m
++CONFIG_MERCURY_BACKPAQ=m
++CONFIG_NET=y
++CONFIG_SYSVIPC=y
++# CONFIG_BSD_PROCESS_ACCT is not set
++CONFIG_SYSCTL=y
++CONFIG_FPE_NWFPE=m
++CONFIG_FPE_FASTFPE=y
++CONFIG_KCORE_ELF=y
++# CONFIG_KCORE_AOUT is not set
++CONFIG_BINFMT_AOUT=m
++CONFIG_BINFMT_ELF=y
++# CONFIG_BINFMT_MISC is not set
++CONFIG_PM=y
++CONFIG_APM=m
++# CONFIG_ARTHUR is not set
++CONFIG_CMDLINE="keepinitrd"
++# CONFIG_LEDS is not set
++CONFIG_ALIGNMENT_TRAP=y
++# CONFIG_UCB1200 is not set
++
++#
++# Parallel port support
++#
++# CONFIG_PARPORT is not set
++
++#
++# Memory Technology Devices (MTD)
++#
++CONFIG_MTD=y
++# CONFIG_MTD_DEBUG is not set
++
++#
++# Disk-On-Chip Device Drivers
++#
++# CONFIG_MTD_DOC1000 is not set
++# CONFIG_MTD_DOC2000 is not set
++# CONFIG_MTD_DOC2001 is not set
++# CONFIG_MTD_DOCPROBE is not set
++
++#
++# RAM/ROM Device Drivers
++#
++# CONFIG_MTD_SLRAM is not set
++# CONFIG_MTD_RAM is not set
++# CONFIG_MTD_ROM is not set
++# CONFIG_MTD_MTDRAM is not set
++
++#
++# Linearly Mapped Flash Device Drivers
++#
++CONFIG_MTD_CFI=y
++# CONFIG_MTD_CFI_GEOMETRY is not set
++CONFIG_MTD_CFI_INTELEXT=y
++# CONFIG_MTD_CFI_AMDSTD is not set
++# CONFIG_MTD_AMDSTD is not set
++# CONFIG_MTD_SHARP is not set
++# CONFIG_MTD_PHYSMAP is not set
++# CONFIG_MTD_NORA is not set
++# CONFIG_MTD_PNC2000 is not set
++# CONFIG_MTD_RPXLITE is not set
++# CONFIG_MTD_SC520CDP is not set
++# CONFIG_MTD_SBC_MEDIAGX is not set
++# CONFIG_MTD_ELAN_104NC is not set
++CONFIG_MTD_SA1100=y
++# CONFIG_MTD_DC21285 is not set
++# CONFIG_MTD_CSTM_CFI_JEDEC is not set
++# CONFIG_MTD_JEDEC is not set
++
++#
++# NAND Flash Device Drivers
++#
++# CONFIG_MTD_NAND is not set
++
++#
++# User Modules And Translation Layers
++#
++CONFIG_MTD_CHAR=m
++CONFIG_MTD_BLOCK=y
++# CONFIG_FTL is not set
++# CONFIG_NFTL is not set
++
++#
++# Plug and Play configuration
++#
++# CONFIG_PNP is not set
++
++#
++# Block devices
++#
++# CONFIG_BLK_DEV_FD is not set
++CONFIG_BLK_DEV_LOOP=m
++CONFIG_BLK_DEV_NBD=m
++CONFIG_BLK_DEV_RAM=y
++CONFIG_BLK_DEV_RAM_SIZE=4096
++CONFIG_BLK_DEV_INITRD=y
++
++#
++# Multi-device support (RAID and LVM)
++#
++# CONFIG_MD is not set
++
++#
++# Networking options
++#
++CONFIG_PACKET=m
++CONFIG_PACKET_MMAP=y
++# CONFIG_NETLINK is not set
++# CONFIG_NETFILTER is not set
++# CONFIG_FILTER is not set
++CONFIG_UNIX=m
++CONFIG_INET=y
++# CONFIG_IP_MULTICAST is not set
++# CONFIG_IP_ADVANCED_ROUTER is not set
++# CONFIG_IP_PNP is not set
++# CONFIG_NET_IPIP is not set
++# CONFIG_NET_IPGRE is not set
++# CONFIG_INET_ECN is not set
++# CONFIG_SYN_COOKIES is not set
++# CONFIG_IPV6 is not set
++# CONFIG_KHTTPD is not set
++# CONFIG_ATM is not set
++
++#
++#
++#
++# CONFIG_IPX is not set
++# CONFIG_ATALK is not set
++# CONFIG_DECNET is not set
++# CONFIG_BRIDGE is not set
++# CONFIG_X25 is not set
++# CONFIG_LAPB is not set
++# CONFIG_LLC is not set
++# CONFIG_NET_DIVERT is not set
++# CONFIG_ECONET is not set
++# CONFIG_WAN_ROUTER is not set
++# CONFIG_NET_FASTROUTE is not set
++# CONFIG_NET_HW_FLOWCONTROL is not set
++
++#
++# QoS and/or fair queueing
++#
++# CONFIG_NET_SCHED is not set
++
++#
++# Network device support
++#
++CONFIG_NETDEVICES=y
++
++#
++# ARCnet devices
++#
++# CONFIG_ARCNET is not set
++# CONFIG_DUMMY is not set
++# CONFIG_BONDING is not set
++# CONFIG_EQUALIZER is not set
++# CONFIG_TUN is not set
++# CONFIG_NET_SB1000 is not set
++
++#
++# Ethernet (10 or 100Mbit)
++#
++# CONFIG_NET_ETHERNET is not set
++
++#
++# Ethernet (1000 Mbit)
++#
++# CONFIG_ACENIC_OMIT_TIGON_I is not set
++# CONFIG_FDDI is not set
++# CONFIG_HIPPI is not set
++CONFIG_PPP=m
++# CONFIG_PPP_MULTILINK is not set
++CONFIG_PPP_ASYNC=m
++# CONFIG_PPP_SYNC_TTY is not set
++CONFIG_PPP_DEFLATE=m
++CONFIG_PPP_BSDCOMP=m
++# CONFIG_PPPOE is not set
++# CONFIG_SLIP is not set
++
++#
++# Wireless LAN (non-hamradio)
++#
++# CONFIG_NET_RADIO is not set
++
++#
++# Token Ring devices
++#
++# CONFIG_TR is not set
++# CONFIG_NET_FC is not set
++# CONFIG_RCPCI is not set
++# CONFIG_SHAPER is not set
++
++#
++# Wan interfaces
++#
++# CONFIG_WAN is not set
++
++#
++# PCMCIA network device support
++#
++CONFIG_NET_PCMCIA=y
++CONFIG_PCMCIA_3C589=m
++CONFIG_PCMCIA_3C574=m
++CONFIG_PCMCIA_FMVJ18X=m
++CONFIG_PCMCIA_PCNET=m
++CONFIG_PCMCIA_NMCLAN=m
++CONFIG_PCMCIA_SMC91C92=m
++CONFIG_PCMCIA_XIRC2PS=m
++# CONFIG_NET_PCMCIA_RADIO is not set
++
++#
++# Amateur Radio support
++#
++# CONFIG_HAMRADIO is not set
++
++#
++# IrDA (infrared) support
++#
++CONFIG_IRDA=m
++
++#
++# IrDA protocols
++#
++CONFIG_IRLAN=m
++CONFIG_IRNET=m
++CONFIG_IRCOMM=m
++CONFIG_IRDA_ULTRA=y
++CONFIG_IRDA_OPTIONS=y
++
++#
++# IrDA options
++#
++CONFIG_IRDA_CACHE_LAST_LSAP=y
++CONFIG_IRDA_FAST_RR=y
++CONFIG_IRDA_DEBUG=y
++
++#
++# Infrared-port device drivers
++#
++
++#
++# SIR device drivers
++#
++# CONFIG_IRTTY_SIR is not set
++# CONFIG_IRPORT_SIR is not set
++
++#
++# FIR device drivers
++#
++# CONFIG_NSC_FIR is not set
++# CONFIG_WINBOND_FIR is not set
++# CONFIG_TOSHIBA_FIR is not set
++# CONFIG_SMC_IRCC_FIR is not set
++CONFIG_SA1100_FIR=m
++
++#
++# Dongle support
++#
++# CONFIG_DONGLE is not set
++
++#
++# ATA/IDE/MFM/RLL support
++#
++CONFIG_IDE=m
++
++#
++# IDE, ATA and ATAPI Block devices
++#
++CONFIG_BLK_DEV_IDE=m
++
++#
++# Please see Documentation/ide.txt for help/info on IDE drives
++#
++# CONFIG_BLK_DEV_HD_IDE is not set
++# CONFIG_BLK_DEV_HD is not set
++CONFIG_BLK_DEV_IDEDISK=m
++# CONFIG_IDEDISK_MULTI_MODE is not set
++# CONFIG_BLK_DEV_IDEDISK_VENDOR is not set
++# CONFIG_BLK_DEV_COMMERIAL is not set
++CONFIG_BLK_DEV_IDECS=m
++CONFIG_BLK_DEV_IDECD=m
++CONFIG_BLK_DEV_IDETAPE=m
++CONFIG_BLK_DEV_IDEFLOPPY=m
++
++#
++# IDE chipset support/bugfixes
++#
++# CONFIG_BLK_DEV_CMD640 is not set
++# CONFIG_IDE_CHIPSETS is not set
++# CONFIG_IDEDMA_AUTO is not set
++# CONFIG_DMA_NONPCI is not set
++# CONFIG_BLK_DEV_IDE_MODES is not set
++
++#
++# SCSI support
++#
++# CONFIG_SCSI is not set
++
++#
++# I2O device support
++#
++# CONFIG_I2O is not set
++
++#
++# ISDN subsystem
++#
++# CONFIG_ISDN is not set
++
++#
++# Input core support
++#
++# CONFIG_INPUT is not set
++
++#
++# Character devices
++#
++CONFIG_VT=y
++CONFIG_VT_CONSOLE=y
++CONFIG_SERIAL_SA1100=y
++CONFIG_SERIAL_SA1100_CONSOLE=y
++CONFIG_SA1100_DEFAULT_BAUDRATE=38400
++CONFIG_TOUCHSCREEN_BITSY=m
++CONFIG_H3600_SLEEVE=m
++CONFIG_SERIAL=m
++# CONFIG_SERIAL_EXTENDED is not set
++# CONFIG_SERIAL_NONSTANDARD is not set
++CONFIG_PROFILER=m
++CONFIG_SERIAL_CORE=y
++CONFIG_SERIAL_CORE_CONSOLE=y
++CONFIG_UNIX98_PTYS=y
++CONFIG_UNIX98_PTY_COUNT=32
++
++#
++# I2C support
++#
++# CONFIG_I2C is not set
++
++#
++# Mice
++#
++# CONFIG_BUSMOUSE is not set
++CONFIG_MOUSE=m
++# CONFIG_PSMOUSE is not set
++# CONFIG_82C710_MOUSE is not set
++# CONFIG_PC110_PAD is not set
++
++#
++# Joysticks
++#
++
++#
++# Game port support
++#
++
++#
++# Gameport joysticks
++#
++
++#
++# Serial port support
++#
++
++#
++# Serial port joysticks
++#
++
++#
++# Parallel port joysticks
++#
++
++#
++# Parport support is needed for parallel port joysticks
++#
++# CONFIG_QIC02_TAPE is not set
++
++#
++# Watchdog Cards
++#
++# CONFIG_WATCHDOG is not set
++# CONFIG_NVRAM is not set
++# CONFIG_RTC is not set
++CONFIG_SA1100_RTC=m
++# CONFIG_DTLK is not set
++# CONFIG_R3964 is not set
++# CONFIG_APPLICOM is not set
++
++#
++# Ftape, the floppy tape device driver
++#
++# CONFIG_FTAPE is not set
++# CONFIG_AGP is not set
++# CONFIG_DRM is not set
++CONFIG_PCMCIA_SERIAL=m
++
++#
++# PCMCIA character device support
++#
++CONFIG_PCMCIA_SERIAL_CS=m
++
++#
++# Multimedia devices
++#
++# CONFIG_VIDEO_DEV is not set
++
++#
++# File systems
++#
++# CONFIG_QUOTA is not set
++# CONFIG_AUTOFS_FS is not set
++# CONFIG_AUTOFS4_FS is not set
++# CONFIG_REISERFS_FS is not set
++# CONFIG_ADFS_FS is not set
++# CONFIG_AFFS_FS is not set
++# CONFIG_HFS_FS is not set
++# CONFIG_BFS_FS is not set
++CONFIG_FAT_FS=m
++# CONFIG_MSDOS_FS is not set
++CONFIG_VFAT_FS=m
++# CONFIG_EFS_FS is not set
++# CONFIG_JFFS_FS is not set
++CONFIG_JFFS2_FS=y
++CONFIG_JFFS2_FS_DEBUG=1
++CONFIG_CRAMFS=m
++CONFIG_RAMFS=m
++# CONFIG_ISO9660_FS is not set
++# CONFIG_MINIX_FS is not set
++# CONFIG_NTFS_FS is not set
++# CONFIG_HPFS_FS is not set
++CONFIG_PROC_FS=y
++CONFIG_DEVFS_FS=y
++# CONFIG_DEVFS_MOUNT is not set
++# CONFIG_DEVFS_DEBUG is not set
++CONFIG_DEVPTS_FS=y
++# CONFIG_QNX4FS_FS is not set
++# CONFIG_ROMFS_FS is not set
++CONFIG_EXT2_FS=m
++# CONFIG_SYSV_FS is not set
++# CONFIG_UDF_FS is not set
++# CONFIG_UFS_FS is not set
++
++#
++# Network File Systems
++#
++# CONFIG_CODA_FS is not set
++CONFIG_NFS_FS=m
++# CONFIG_NFS_V3 is not set
++# CONFIG_NFSD is not set
++CONFIG_SUNRPC=m
++CONFIG_LOCKD=m
++CONFIG_SMB_FS=m
++# CONFIG_SMB_NLS_DEFAULT is not set
++# CONFIG_NCP_FS is not set
++
++#
++# Partition Types
++#
++# CONFIG_PARTITION_ADVANCED is not set
++CONFIG_MSDOS_PARTITION=y
++CONFIG_SMB_NLS=y
++CONFIG_NLS=y
++
++#
++# Native Language Support
++#
++CONFIG_NLS_DEFAULT="iso8859-1"
++# CONFIG_NLS_CODEPAGE_437 is not set
++# CONFIG_NLS_CODEPAGE_737 is not set
++# CONFIG_NLS_CODEPAGE_775 is not set
++# CONFIG_NLS_CODEPAGE_850 is not set
++# CONFIG_NLS_CODEPAGE_852 is not set
++# CONFIG_NLS_CODEPAGE_855 is not set
++# CONFIG_NLS_CODEPAGE_857 is not set
++# CONFIG_NLS_CODEPAGE_860 is not set
++# CONFIG_NLS_CODEPAGE_861 is not set
++# CONFIG_NLS_CODEPAGE_862 is not set
++# CONFIG_NLS_CODEPAGE_863 is not set
++# CONFIG_NLS_CODEPAGE_864 is not set
++# CONFIG_NLS_CODEPAGE_865 is not set
++# CONFIG_NLS_CODEPAGE_866 is not set
++# CONFIG_NLS_CODEPAGE_869 is not set
++# CONFIG_NLS_CODEPAGE_874 is not set
++# CONFIG_NLS_CODEPAGE_932 is not set
++# CONFIG_NLS_CODEPAGE_936 is not set
++# CONFIG_NLS_CODEPAGE_949 is not set
++# CONFIG_NLS_CODEPAGE_950 is not set
++# CONFIG_NLS_ISO8859_1 is not set
++# CONFIG_NLS_ISO8859_2 is not set
++# CONFIG_NLS_ISO8859_3 is not set
++# CONFIG_NLS_ISO8859_4 is not set
++# CONFIG_NLS_ISO8859_5 is not set
++# CONFIG_NLS_ISO8859_6 is not set
++# CONFIG_NLS_ISO8859_7 is not set
++# CONFIG_NLS_ISO8859_8 is not set
++# CONFIG_NLS_ISO8859_9 is not set
++# CONFIG_NLS_ISO8859_14 is not set
++# CONFIG_NLS_ISO8859_15 is not set
++# CONFIG_NLS_KOI8_R is not set
++# CONFIG_NLS_UTF8 is not set
++
++#
++# Console drivers
++#
++CONFIG_PC_KEYMAP=y
++# CONFIG_VGA_CONSOLE is not set
++CONFIG_FB=y
++
++#
++# Frame-buffer support
++#
++CONFIG_FB=y
++CONFIG_DUMMY_CONSOLE=y
++CONFIG_FB_SA1100=y
++# CONFIG_FB_VIRTUAL is not set
++CONFIG_FBCON_ADVANCED=y
++# CONFIG_FBCON_MFB is not set
++# CONFIG_FBCON_CFB2 is not set
++# CONFIG_FBCON_CFB4 is not set
++# CONFIG_FBCON_CFB8 is not set
++CONFIG_FBCON_CFB16=y
++# CONFIG_FBCON_CFB24 is not set
++# CONFIG_FBCON_CFB32 is not set
++# CONFIG_FBCON_AFB is not set
++# CONFIG_FBCON_ILBM is not set
++# CONFIG_FBCON_IPLAN2P2 is not set
++# CONFIG_FBCON_IPLAN2P4 is not set
++# CONFIG_FBCON_IPLAN2P8 is not set
++# CONFIG_FBCON_MAC is not set
++# CONFIG_FBCON_VGA_PLANES is not set
++# CONFIG_FBCON_VGA is not set
++# CONFIG_FBCON_HGA is not set
++CONFIG_FBCON_FONTWIDTH8_ONLY=y
++CONFIG_FBCON_FONTS=y
++CONFIG_FONT_8x8=y
++# CONFIG_FONT_8x16 is not set
++# CONFIG_FONT_SUN8x16 is not set
++# CONFIG_FONT_PEARL_8x8 is not set
++# CONFIG_FONT_ACORN_8x8 is not set
++
++#
++# Sound
++#
++CONFIG_SOUND=m
++CONFIG_SOUND_UDA1341=m
++# CONFIG_SOUND_SA1100_SSP is not set
++# CONFIG_SOUND_CMPCI is not set
++# CONFIG_SOUND_EMU10K1 is not set
++# CONFIG_SOUND_FUSION is not set
++# CONFIG_SOUND_CS4281 is not set
++# CONFIG_SOUND_ES1370 is not set
++# CONFIG_SOUND_ES1371 is not set
++# CONFIG_SOUND_ESSSOLO1 is not set
++# CONFIG_SOUND_MAESTRO is not set
++# CONFIG_SOUND_SONICVIBES is not set
++# CONFIG_SOUND_TRIDENT is not set
++# CONFIG_SOUND_MSNDCLAS is not set
++# CONFIG_SOUND_MSNDPIN is not set
++# CONFIG_SOUND_OSS is not set
++
++#
++# USB support
++#
++# CONFIG_USB is not set
++
++#
++# Kernel hacking
++#
++# CONFIG_NO_FRAME_POINTER is not set
++# CONFIG_DEBUG_ERRORS is not set
++# CONFIG_DEBUG_USER is not set
++# CONFIG_DEBUG_INFO is not set
++# CONFIG_MAGIC_SYSRQ is not set
++# CONFIG_DEBUG_LL is not set
+diff -uNr --exclude=.*flags --exclude=*.[ao] --exclude=.*depend /work2/iPAQ/HandHelds.org/cvs/linux/kernel/drivers/mtd/Makefile ./drivers/mtd/Makefile
+--- /work2/iPAQ/HandHelds.org/cvs/linux/kernel/drivers/mtd/Makefile Thu Mar 22 20:04:59 2001
++++ ./drivers/mtd/Makefile Fri Mar 23 05:26:31 2001
+@@ -108,7 +108,7 @@
+ obj-$(CONFIG_MTD_SC520CDP) += sc520cdp.o
+ obj-$(CONFIG_MTD_SBC_MEDIAGX) += sbc_mediagx.o mtdpart.o
+ obj-$(CONFIG_MTD_ELAN_104NC) += elan-104nc.o mtdpart.o
+-obj-$(CONFIG_MTD_SA1100) += sa1100-flash.o mtdpart.o
++obj-$(CONFIG_MTD_SA1100) += sa1100-flash.o mtdpart.o redboot.o
+ obj-$(CONFIG_MTD_DC21285) += dc21285.o mtdpart.o
+ obj-$(CONFIG_MTD_IQ80310) += iq80310.o mtdpart.o
+
+diff -uNr --exclude=.*flags --exclude=*.[ao] --exclude=.*depend /work2/iPAQ/HandHelds.org/cvs/linux/kernel/drivers/mtd/sa1100-flash.c ./drivers/mtd/sa1100-flash.c
+--- /work2/iPAQ/HandHelds.org/cvs/linux/kernel/drivers/mtd/sa1100-flash.c Thu Mar 22 20:05:13 2001
++++ ./drivers/mtd/sa1100-flash.c Fri Mar 23 20:06:24 2001
+@@ -387,6 +387,7 @@
+ #define NB_OF(x) (sizeof(x)/sizeof(x[0]))
+
+ static struct mtd_info *mymtd;
++extern int parse_redboot_partitions(struct mtd_info *master, struct mtd_partition **pparts);
+
+ int __init sa1100_mtd_init(void)
+ {
+@@ -485,14 +486,36 @@
+ nb_parts, buswidth);
+
+ mymtd = do_cfi_probe(&sa1100_map);
+- if (mymtd) {
+- mymtd->module = THIS_MODULE;
+- add_mtd_partitions(mymtd, parts, nb_parts);
+- printk(KERN_NOTICE "SA1100 flash access initialized\n");
+- return 0;
++ if (!mymtd)
++ return -ENXIO;
++
++
++#define CONFIG_SA1100_REDBOOT_PARTITIONS
++#ifdef CONFIG_SA1100_REDBOOT_PARTITIONS
++ {
++ int redboot_nr_parts;
++ struct mtd_partitions *redboot_parts;
++
++
++ redboot_nr_parts = parse_redboot_partitions(mymtd, &redboot_parts);
++ if (nb_parts > 0) {
++ int i;
++
++ parts = redboot_parts;
++ nb_parts = redboot_nr_parts;
++ for (i=0; i<nb_parts; i++) {
++ printk("RedBoot Partition: \"%s\", 0x%08lx-0x%08lx\n", parts[i].name, parts[i].offset, parts[i].offset+parts[i].size);
++ }
++
++ }
+ }
+
+- return -ENXIO;
++#endif
++
++ mymtd->module = THIS_MODULE;
++ add_mtd_partitions(mymtd, parts, nb_parts);
++ printk(KERN_NOTICE "SA1100 flash access initialized\n");
++ return 0;
+ }
+
+ static void __exit sa1100_mtd_cleanup(void)
+diff -uNr /work2/iPAQ/HandHelds.org/cvs/linux/kernel/drivers/mtd/redboot.c drivers/mtd/redboot.c
+--- /work2/iPAQ/HandHelds.org/cvs/linux/kernel/drivers/mtd/redboot.c Wed Dec 31 17:00:00 1969
++++ drivers/mtd/redboot.c Fri Mar 23 20:11:37 2001
+@@ -0,0 +1,148 @@
++/*
++ * $Id: redboot.c,v 1.2 2001/03/14 13:19:47 dwmw2 Exp $
++ *
++ * Parse RedBoot-style Flash Image System (FIS) tables and
++ * produce a Linux partition array to match.
++ */
++
++#include <linux/kernel.h>
++#include <linux/slab.h>
++
++#include <linux/mtd/mtd.h>
++#include <linux/mtd/partitions.h>
++
++struct fis_image_desc {
++ unsigned char name[16]; // Null terminated name
++ unsigned long flash_base; // Address within FLASH of image
++ unsigned long mem_base; // Address in memory where it executes
++ unsigned long size; // Length of image
++ unsigned long entry_point; // Execution entry point
++ unsigned long data_length; // Length of actual data
++ unsigned char _pad[256-(16+7*sizeof(unsigned long))];
++ unsigned long desc_cksum; // Checksum over image descriptor
++ unsigned long file_cksum; // Checksum over image data
++};
++
++struct fis_list {
++ struct fis_image_desc *img;
++ struct fis_list *next;
++};
++
++static inline int redboot_checksum(struct fis_image_desc *img)
++{
++ /* RedBoot doesn't actually write the desc_cksum field yet AFAICT */
++ return 1;
++}
++
++int parse_redboot_partitions(struct mtd_info *master, struct mtd_partition **pparts)
++{
++ int nrparts = 0;
++ struct fis_image_desc *buf;
++ struct mtd_partition *parts;
++ struct fis_list *fl = NULL, *tmp_fl;
++ int ret, i;
++ size_t retlen;
++ char *names;
++ int namelen = 0;
++
++ buf = kmalloc(PAGE_SIZE, GFP_KERNEL);
++
++ if (!buf)
++ return -ENOMEM;
++
++ /* Read the start of the last erase block */
++ ret = master->read(master, master->size - master->erasesize,
++ PAGE_SIZE, &retlen, (void *)buf);
++
++ if (ret)
++ goto out;
++
++ if (retlen != PAGE_SIZE) {
++ ret = -EIO;
++ goto out;
++ }
++
++ if (memcmp(buf, "RedBoot", 8)) {
++ ret = 0;
++ goto out;
++ }
++
++ for (i = 0; i < PAGE_SIZE / sizeof(struct fis_image_desc); i++) {
++ struct fis_list *new_fl, **prev;
++
++ if (buf[i].name[0] == 0xff)
++ break;
++ if (!redboot_checksum(&buf[i]))
++ break;
++
++ new_fl = kmalloc(sizeof(struct fis_list), GFP_KERNEL);
++ namelen += strlen(buf[i].name)+1;
++ if (!new_fl) {
++ ret = -ENOMEM;
++ goto out;
++ }
++ new_fl->img = &buf[i];
++ buf[i].flash_base &= master->size-1;
++
++ /* I'm sure the JFFS2 code has done me permanent damage.
++ * I now think the following is _normal_
++ */
++ prev = &fl;
++ while(*prev && (*prev)->img->flash_base < new_fl->img->flash_base)
++ prev = &(*prev)->next;
++ new_fl->next = *prev;
++ *prev = new_fl;
++
++ nrparts++;
++ }
++ if (fl->img->flash_base)
++ nrparts++;
++
++ for (tmp_fl = fl; tmp_fl->next; tmp_fl = tmp_fl->next) {
++ if (tmp_fl->img->flash_base + tmp_fl->img->size + master->erasesize < tmp_fl->next->img->flash_base)
++ nrparts++;
++ }
++ parts = kmalloc(sizeof(*parts)*nrparts + namelen, GFP_KERNEL);
++
++ if (!parts) {
++ ret = -ENOMEM;
++ goto out;
++ }
++ names = &parts[nrparts];
++ memset(parts, 0, sizeof(*parts)*nrparts + namelen);
++ i=0;
++
++ if (fl->img->flash_base) {
++ parts[0].name = "unallocated space";
++ parts[0].size = fl->img->flash_base;
++ parts[0].offset = 0;
++ }
++ for ( ; i<nrparts; i++) {
++ parts[i].size = fl->img->size;
++ parts[i].offset = fl->img->flash_base;
++ parts[i].name = names;
++
++ strcpy(names, fl->img->name);
++ names += strlen(names)+1;
++
++ if(fl->next && fl->img->flash_base + fl->img->size + master->erasesize < fl->next->img->flash_base) {
++ i++;
++ parts[i].offset = parts[i-1].size + parts[i-1].offset;
++ parts[i].size = fl->next->img->flash_base - parts[i].offset;
++ parts[i].name = "unallocated space";
++ }
++ tmp_fl = fl;
++ fl = fl->next;
++ kfree(tmp_fl);
++ }
++ ret = nrparts;
++ *pparts = parts;
++ out:
++ while (fl) {
++ struct fis_list *old = fl;
++ fl = fl->next;
++ kfree(old);
++ }
++ kfree(buf);
++ return ret;
++}
diff --git a/ecos/packages/hal/arm/sa11x0/ipaq/current/misc/redboot_Compaq.ecm b/ecos/packages/hal/arm/sa11x0/ipaq/current/misc/redboot_Compaq.ecm
new file mode 100644
index 0000000..7c58f1f
--- /dev/null
+++ b/ecos/packages/hal/arm/sa11x0/ipaq/current/misc/redboot_Compaq.ecm
@@ -0,0 +1,73 @@
+cdl_savefile_version 1;
+cdl_savefile_command cdl_savefile_version {};
+cdl_savefile_command cdl_savefile_command {};
+cdl_savefile_command cdl_configuration { description hardware template package };
+cdl_savefile_command cdl_package { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_component { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_option { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_interface { value_source user_value wizard_value inferred_value };
+
+cdl_configuration eCos {
+ description "" ;
+ hardware ipaq ;
+ template redboot ;
+ package -hardware CYGPKG_HAL_ARM current ;
+ package -hardware CYGPKG_HAL_ARM_SA11X0 current ;
+ package -hardware CYGPKG_HAL_ARM_SA11X0_IPAQ current ;
+ package -hardware CYGPKG_IO_SERIAL_ARM_SA11X0 current ;
+ package -hardware CYGPKG_DEVS_PCMCIA_IPAQ current ;
+ package -hardware CYGPKG_DEVS_FLASH_IPAQ current ;
+ package -hardware CYGPKG_DEVS_FLASH_STRATA current ;
+ package -template CYGPKG_HAL current ;
+ package -template CYGPKG_INFRA current ;
+ package -template CYGPKG_REDBOOT current ;
+ package CYGPKG_IO_PCMCIA current ;
+ package CYGPKG_DEVS_ETH_CF current ;
+ package CYGPKG_IO_ETH_DRIVERS current ;
+ package CYGPKG_IO_FLASH current ;
+ package CYGPKG_COMPRESS_ZLIB current ;
+ package CYGPKG_ISOINFRA current ;
+ package CYGPKG_MEMALLOC current ;
+};
+
+cdl_option CYGBLD_BUILD_GDB_STUBS {
+ user_value 0
+};
+
+cdl_option CYGNUM_IO_ETH_DRIVERS_NUM_PKT {
+ user_value 4
+};
+
+cdl_option CYGDBG_HAL_COMMON_INTERRUPTS_SAVE_MINIMUM_CONTEXT {
+ user_value 0
+};
+
+cdl_option CYGDBG_HAL_COMMON_CONTEXT_SAVE_MINIMUM {
+ inferred_value 0
+};
+
+cdl_option CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS {
+ inferred_value 1
+};
+
+cdl_option CYGSEM_HAL_ROM_MONITOR {
+ inferred_value 0
+};
+
+cdl_option CYGSEM_HAL_USE_ROM_MONITOR {
+ inferred_value 0 0
+};
+
+cdl_option CYGHWR_HAL_ARM_SA11X0_PROCESSOR_CLOCK {
+ user_value 206400
+};
+
+cdl_component CYG_HAL_STARTUP {
+ user_value Compaq
+};
+
+cdl_component CYGBLD_BUILD_REDBOOT {
+ user_value 1
+};
+
+
diff --git a/ecos/packages/hal/arm/sa11x0/ipaq/current/misc/redboot_RAM.ecm b/ecos/packages/hal/arm/sa11x0/ipaq/current/misc/redboot_RAM.ecm
new file mode 100644
index 0000000..c6363ee
--- /dev/null
+++ b/ecos/packages/hal/arm/sa11x0/ipaq/current/misc/redboot_RAM.ecm
@@ -0,0 +1,115 @@
+cdl_savefile_version 1;
+cdl_savefile_command cdl_savefile_version {};
+cdl_savefile_command cdl_savefile_command {};
+cdl_savefile_command cdl_configuration { description hardware template package };
+cdl_savefile_command cdl_package { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_component { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_option { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_interface { value_source user_value wizard_value inferred_value };
+
+cdl_configuration eCos {
+ description "" ;
+ hardware ipaq ;
+ template redboot ;
+ package -hardware CYGPKG_HAL_ARM current ;
+ package -hardware CYGPKG_HAL_ARM_SA11X0 current ;
+ package -hardware CYGPKG_HAL_ARM_SA11X0_IPAQ current ;
+ package -hardware CYGPKG_IO_SERIAL_ARM_SA11X0 current ;
+ package -hardware CYGPKG_DEVS_PCMCIA_IPAQ current ;
+ package -hardware CYGPKG_DEVS_FLASH_IPAQ current ;
+ package -hardware CYGPKG_DEVS_FLASH_STRATA current ;
+ package -hardware CYGPKG_DEVICES_WATCHDOG_ARM_SA11X0 current ;
+ package -hardware CYGPKG_DEVS_TOUCH_IPAQ current ;
+ package -hardware CYGPKG_DEVS_KBD_IPAQ current ;
+ package -hardware CYGPKG_DEVS_ETH_CF current ;
+ package -hardware CYGPKG_DEVS_ETH_NS_DP83902A current ;
+ package -template CYGPKG_HAL current ;
+ package -template CYGPKG_INFRA current ;
+ package -template CYGPKG_REDBOOT current ;
+ package -template CYGPKG_ISOINFRA current ;
+ package -template CYGPKG_LIBC_STRING current ;
+ package CYGPKG_NS_DNS current ;
+ package CYGPKG_IO_PCMCIA current ;
+ package CYGPKG_IO_ETH_DRIVERS current ;
+ package CYGPKG_IO_FLASH current ;
+ package CYGPKG_COMPRESS_ZLIB current ;
+ package CYGPKG_MEMALLOC current ;
+};
+
+cdl_option CYGBLD_BUILD_GDB_STUBS {
+ user_value 0
+};
+
+cdl_option CYGFUN_LIBC_STRING_BSD_FUNCS {
+ inferred_value 0
+};
+
+cdl_option CYGNUM_HAL_COMMON_INTERRUPTS_STACK_SIZE {
+ user_value 6144
+};
+
+cdl_option CYGDBG_HAL_COMMON_INTERRUPTS_SAVE_MINIMUM_CONTEXT {
+ user_value 0
+};
+
+cdl_option CYGDBG_HAL_COMMON_CONTEXT_SAVE_MINIMUM {
+ inferred_value 0
+};
+
+cdl_option CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS {
+ inferred_value 1
+};
+
+cdl_option CYGSEM_HAL_USE_ROM_MONITOR {
+ inferred_value 0 0
+};
+
+cdl_component CYGBLD_BUILD_REDBOOT {
+ user_value 1
+};
+
+cdl_option CYGSEM_REDBOOT_VARIABLE_BAUD_RATE {
+ user_value 1
+};
+
+cdl_option CYGNUM_REDBOOT_FLASH_RESERVED_BASE {
+ user_value 0x40000
+};
+
+cdl_option CYGOPT_REDBOOT_FIS_REDBOOT_BACKUP {
+ user_value 0
+};
+
+cdl_option CYGHWR_REDBOOT_ARM_LINUX_EXEC_ADDRESS_DEFAULT {
+ inferred_value 0xC0008000
+};
+
+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_BSD_FUNCS_HEADER {
+ inferred_value 1 <cyg/libc/string/bsdstring.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_DNS_HEADER {
+ inferred_value 1 <cyg/ns/dns/dns.h>
+};
+
+cdl_option CYGPKG_NS_DNS_BUILD {
+ inferred_value 0
+};
+
+
diff --git a/ecos/packages/hal/arm/sa11x0/ipaq/current/misc/redboot_ROM.ecm b/ecos/packages/hal/arm/sa11x0/ipaq/current/misc/redboot_ROM.ecm
new file mode 100644
index 0000000..6a97592
--- /dev/null
+++ b/ecos/packages/hal/arm/sa11x0/ipaq/current/misc/redboot_ROM.ecm
@@ -0,0 +1,131 @@
+cdl_savefile_version 1;
+cdl_savefile_command cdl_savefile_version {};
+cdl_savefile_command cdl_savefile_command {};
+cdl_savefile_command cdl_configuration { description hardware template package };
+cdl_savefile_command cdl_package { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_component { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_option { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_interface { value_source user_value wizard_value inferred_value };
+
+cdl_configuration eCos {
+ description "" ;
+ hardware ipaq ;
+ template redboot ;
+ package -hardware CYGPKG_HAL_ARM current ;
+ package -hardware CYGPKG_HAL_ARM_SA11X0 current ;
+ package -hardware CYGPKG_HAL_ARM_SA11X0_IPAQ current ;
+ package -hardware CYGPKG_IO_SERIAL_ARM_SA11X0 current ;
+ package -hardware CYGPKG_DEVS_PCMCIA_IPAQ current ;
+ package -hardware CYGPKG_DEVS_FLASH_IPAQ current ;
+ package -hardware CYGPKG_DEVS_FLASH_STRATA current ;
+ package -hardware CYGPKG_DEVICES_WATCHDOG_ARM_SA11X0 current ;
+ package -hardware CYGPKG_DEVS_TOUCH_IPAQ current ;
+ package -hardware CYGPKG_DEVS_KBD_IPAQ current ;
+ package -hardware CYGPKG_DEVS_ETH_CF current ;
+ package -hardware CYGPKG_DEVS_ETH_NS_DP83902A current ;
+ package -template CYGPKG_HAL current ;
+ package -template CYGPKG_INFRA current ;
+ package -template CYGPKG_REDBOOT current ;
+ package -template CYGPKG_ISOINFRA current ;
+ package -template CYGPKG_LIBC_STRING current ;
+ package CYGPKG_NS_DNS current ;
+ package CYGPKG_IO_PCMCIA current ;
+ package CYGPKG_IO_ETH_DRIVERS current ;
+ package CYGPKG_IO_FLASH current ;
+ package CYGPKG_COMPRESS_ZLIB current ;
+ package CYGPKG_MEMALLOC current ;
+};
+
+cdl_option CYGBLD_BUILD_GDB_STUBS {
+ user_value 0
+};
+
+cdl_option CYGFUN_LIBC_STRING_BSD_FUNCS {
+ inferred_value 0
+};
+
+cdl_option CYGNUM_IO_ETH_DRIVERS_NUM_PKT {
+ user_value 3
+};
+
+cdl_option CYGNUM_HAL_COMMON_INTERRUPTS_STACK_SIZE {
+ user_value 6144
+};
+
+cdl_option CYGDBG_HAL_COMMON_INTERRUPTS_SAVE_MINIMUM_CONTEXT {
+ user_value 0
+};
+
+cdl_option CYGDBG_HAL_COMMON_CONTEXT_SAVE_MINIMUM {
+ inferred_value 0
+};
+
+cdl_option CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS {
+ inferred_value 1
+};
+
+cdl_option CYGSEM_HAL_ROM_MONITOR {
+ inferred_value 1
+};
+
+cdl_option CYGSEM_HAL_USE_ROM_MONITOR {
+ inferred_value 0 0
+};
+
+cdl_option CYGHWR_HAL_ARM_SA11X0_PROCESSOR_CLOCK {
+ user_value 206400
+};
+
+cdl_component CYG_HAL_STARTUP {
+ user_value ROM
+};
+
+cdl_component CYGBLD_BUILD_REDBOOT {
+ user_value 1
+};
+
+cdl_option CYGSEM_REDBOOT_VARIABLE_BAUD_RATE {
+ user_value 1
+};
+
+cdl_option CYGNUM_REDBOOT_FLASH_RESERVED_BASE {
+ user_value 0x40000
+};
+
+cdl_option CYGOPT_REDBOOT_FIS_REDBOOT_BACKUP {
+ user_value 0
+};
+
+cdl_option CYGHWR_REDBOOT_ARM_LINUX_EXEC_ADDRESS_DEFAULT {
+ inferred_value 0xC0008000
+};
+
+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_BSD_FUNCS_HEADER {
+ inferred_value 1 <cyg/libc/string/bsdstring.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_DNS_HEADER {
+ inferred_value 1 <cyg/ns/dns/dns.h>
+};
+
+cdl_option CYGPKG_NS_DNS_BUILD {
+ inferred_value 0
+};
+
+
diff --git a/ecos/packages/hal/arm/sa11x0/ipaq/current/misc/redboot_WinCE.ecm b/ecos/packages/hal/arm/sa11x0/ipaq/current/misc/redboot_WinCE.ecm
new file mode 100644
index 0000000..5303b07
--- /dev/null
+++ b/ecos/packages/hal/arm/sa11x0/ipaq/current/misc/redboot_WinCE.ecm
@@ -0,0 +1,78 @@
+cdl_savefile_version 1;
+cdl_savefile_command cdl_savefile_version {};
+cdl_savefile_command cdl_savefile_command {};
+cdl_savefile_command cdl_configuration { description hardware template package };
+cdl_savefile_command cdl_package { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_component { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_option { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_interface { value_source user_value wizard_value inferred_value };
+
+cdl_configuration eCos {
+ description "" ;
+ hardware ipaq ;
+ template redboot ;
+ package -hardware CYGPKG_HAL_ARM current ;
+ package -hardware CYGPKG_HAL_ARM_SA11X0 current ;
+ package -hardware CYGPKG_HAL_ARM_SA11X0_IPAQ current ;
+ package -hardware CYGPKG_IO_SERIAL_ARM_SA11X0 current ;
+ package -hardware CYGPKG_DEVS_PCMCIA_IPAQ current ;
+ package -hardware CYGPKG_DEVS_FLASH_IPAQ current ;
+ package -hardware CYGPKG_DEVS_FLASH_STRATA current ;
+ package -hardware CYGPKG_DEVICES_WATCHDOG_ARM_SA11X0 current ;
+ package -hardware CYGPKG_DEVS_TOUCH_IPAQ current ;
+ package -hardware CYGPKG_DEVS_KBD_IPAQ current ;
+ package -hardware CYGPKG_DEVS_ETH_CF current ;
+ package -hardware CYGPKG_DEVS_ETH_NS_DP83902A current ;
+ package -template CYGPKG_HAL current ;
+ package -template CYGPKG_INFRA current ;
+ package -template CYGPKG_REDBOOT current ;
+ package CYGPKG_IO_FLASH current ;
+ package CYGPKG_IO_PCMCIA current ;
+ package CYGPKG_IO_ETH_DRIVERS current ;
+};
+
+cdl_option CYGBLD_BUILD_GDB_STUBS {
+ user_value 0
+};
+
+cdl_option CYGNUM_HAL_COMMON_INTERRUPTS_STACK_SIZE {
+ user_value 6144
+};
+
+cdl_option CYGDBG_HAL_COMMON_INTERRUPTS_SAVE_MINIMUM_CONTEXT {
+ user_value 0
+};
+
+cdl_option CYGDBG_HAL_COMMON_CONTEXT_SAVE_MINIMUM {
+ inferred_value 0
+};
+
+cdl_option CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS {
+ inferred_value 1
+};
+
+cdl_option CYGSEM_HAL_USE_ROM_MONITOR {
+ inferred_value 0 0
+};
+
+cdl_component CYG_HAL_STARTUP {
+ user_value WinCE
+};
+
+cdl_component CYGBLD_BUILD_REDBOOT {
+ user_value 1
+};
+
+cdl_option CYGSEM_REDBOOT_VARIABLE_BAUD_RATE {
+ user_value 1
+};
+
+cdl_option CYGNUM_REDBOOT_FLASH_RESERVED_BASE {
+ user_value 0x40000
+};
+
+cdl_option CYGOPT_REDBOOT_FIS_REDBOOT_BACKUP {
+ user_value 0
+};
+
+
diff --git a/ecos/packages/hal/arm/sa11x0/ipaq/current/src/atmel_support.c b/ecos/packages/hal/arm/sa11x0/ipaq/current/src/atmel_support.c
new file mode 100644
index 0000000..a56846b
--- /dev/null
+++ b/ecos/packages/hal/arm/sa11x0/ipaq/current/src/atmel_support.c
@@ -0,0 +1,469 @@
+//==========================================================================
+//
+// atmel_support.c
+//
+// SA1110/iPAQ - Atmel micro-controller support routines
+//
+//==========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//==========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): gthomas
+// Contributors: gthomas
+// Date: 2001-02-27
+// Description: Simple Atmel support
+//####DESCRIPTIONEND####
+
+#include <pkgconf/system.h>
+#include <pkgconf/hal.h>
+
+#ifdef CYGPKG_REDBOOT
+#include <redboot.h>
+#endif
+
+#include <cyg/infra/diag.h>
+#include <cyg/hal/hal_if.h> // Virtual vector functions
+#include <cyg/hal/hal_io.h> // IO macros
+#include <cyg/hal/hal_arch.h> // Register state info
+#include <cyg/hal/hal_intr.h> // HAL interrupt macros
+
+#include <cyg/hal/hal_sa11x0.h> // Board definitions
+#include <cyg/hal/ipaq.h>
+#include <cyg/hal/hal_cache.h>
+
+#ifdef CYGPKG_IO
+// Need to export interrupt driven interfaces
+#include <cyg/hal/drv_api.h>
+#define ATMEL_INT CYGNUM_HAL_INTERRUPT_UART1
+static cyg_interrupt atmel_interrupt;
+static cyg_handle_t atmel_interrupt_handle;
+#endif
+
+#include <cyg/hal/atmel_support.h> // Interfaces, commands
+
+externC void *memcpy(void *, const void *, size_t);
+
+struct sa11x0_serial {
+ volatile cyg_uint32 utcr0;
+ volatile cyg_uint32 utcr1;
+ volatile cyg_uint32 utcr2;
+ volatile cyg_uint32 utcr3;
+ volatile cyg_uint32 pad0010;
+ volatile cyg_uint32 utdr;
+ volatile cyg_uint32 pad0018;
+ volatile cyg_uint32 utsr0;
+ volatile cyg_uint32 utsr1;
+};
+
+#define ATMEL_PUTQ_SIZE 32
+unsigned char atmel_putq[ATMEL_PUTQ_SIZE];
+int atmel_putq_put, atmel_putq_get;
+
+bool atmel_use_ints;
+
+void
+atmel_putc(unsigned char c)
+{
+ atmel_putq[atmel_putq_put++] = c;
+ if (atmel_putq_put == ATMEL_PUTQ_SIZE) {
+ atmel_putq_put = 0;
+ }
+}
+
+static atmel_handler *handlers[NUM_ATMEL_CMDS];
+
+static void
+null_handler(atmel_pkt *pkt)
+{
+ diag_printf("Atmel - packet ignored: %x\n", pkt->data[0]);
+ diag_dump_buf(pkt->data, 16);
+}
+
+//
+// Register a handler for a particular packet type
+//
+void
+atmel_register(int cmd, atmel_handler *fun)
+{
+ handlers[cmd] = fun;
+}
+
+//
+// This routine is called to process an input character from the
+// Atmel micro-controller. Since command packets are multiple
+// characters, this routine has to keep state for the packet. Once
+// a complete packet is received, the appropriate handler function
+// will be called (if the checksum matches)
+//
+static void
+atmel_in(unsigned char ch)
+{
+ static atmel_pkt pkt;
+ static unsigned char cksum;
+ static bool sof = false;
+
+ if (!sof) {
+ // Wait for start of packet (SOF)
+ if (ch != SOF) {
+ return; // Just ignore out of order characters
+ }
+ sof = true;
+ pkt.size = 0;
+ return;
+ }
+ if (pkt.size == 0) {
+ // First byte of packet - command+length;
+ pkt.len = (ch & 0x0F) + 1;
+ cksum = 0;
+ }
+ pkt.data[pkt.size++] = ch;
+ if (pkt.size > pkt.len) {
+ // End of packet data
+ if (cksum == ch) {
+ (*handlers[pkt.data[0] >> 4])(&pkt);
+ }
+ sof = false;
+ } else {
+ cksum += ch;
+ }
+}
+
+//
+// This [internal] routine is used to handle data from the Atmel micro-controller
+//
+static void
+atmel_poll(void)
+{
+ volatile struct sa11x0_serial *base = (volatile struct sa11x0_serial *)SA11X0_UART1_BASE;
+ unsigned char ch;
+
+ while ((base->utsr1 & SA11X0_UART_RX_FIFO_NOT_EMPTY) != 0) {
+ ch = (char)base->utdr;
+ atmel_in(ch);
+ }
+}
+
+//
+// This [internal] routine is used to send data to the Atmel micro-controller
+//
+static void
+atmel_flush(void)
+{
+ volatile struct sa11x0_serial *base = (volatile struct sa11x0_serial *)SA11X0_UART1_BASE;
+
+#ifdef CYGPKG_IO
+ cyg_drv_isr_lock();
+#endif
+ while (atmel_putq_get != atmel_putq_put) {
+ if ((base->utsr1 & SA11X0_UART_TX_FIFO_NOT_FULL) == 0) {
+ // Wait forever if in non-interrupt mode
+ if (atmel_use_ints) {
+ break;
+ }
+ } else {
+ base->utdr = atmel_putq[atmel_putq_get++];
+ if (atmel_putq_get == ATMEL_PUTQ_SIZE) {
+ atmel_putq_get = 0;
+ }
+ }
+ }
+#ifdef CYGPKG_IO
+ cyg_drv_isr_unlock();
+#endif
+}
+
+#ifdef CYGPKG_IO
+
+// Low level interrupt handler (ISR)
+static cyg_uint32
+atmel_ISR(cyg_vector_t vector, cyg_addrword_t data)
+{
+ cyg_drv_interrupt_mask(vector);
+ cyg_drv_interrupt_acknowledge(vector);
+ return CYG_ISR_CALL_DSR; // Cause DSR to be run
+}
+
+// High level interrupt handler (DSR)
+static void
+atmel_DSR(cyg_vector_t vector, cyg_ucount32 count, cyg_addrword_t data)
+{
+ volatile struct sa11x0_serial *base = (volatile struct sa11x0_serial *)SA11X0_UART1_BASE;
+ unsigned int stat0 = base->utsr0;
+
+ if (stat0 & SA11X0_UART_TX_SERVICE_REQUEST) {
+ atmel_flush();
+ }
+ if (stat0 & (SA11X0_UART_RX_SERVICE_REQUEST|SA11X0_UART_RX_IDLE)) {
+ atmel_poll();
+ base->utsr0 = SA11X0_UART_RX_IDLE; // Need to clear this manually
+ }
+ cyg_drv_interrupt_unmask(vector);
+}
+
+//
+// Connect/disconnect interrupt processing
+//
+void
+atmel_interrupt_mode(bool enable)
+{
+ volatile struct sa11x0_serial *base = (volatile struct sa11x0_serial *)SA11X0_UART1_BASE;
+
+ if (enable) {
+ // Enable the receiver (with interrupts) and the transmitter.
+ base->utcr3 = SA11X0_UART_RX_ENABLED |
+ SA11X0_UART_TX_ENABLED |
+ SA11X0_UART_RX_FIFO_INT_ENABLED;
+ cyg_drv_interrupt_unmask(ATMEL_INT);
+ } else {
+ cyg_drv_interrupt_mask(ATMEL_INT);
+ }
+ atmel_use_ints = enable;
+}
+#endif
+
+//
+// Set up the Atmel micro-controller environment
+//
+void
+atmel_init(void)
+{
+ volatile struct sa11x0_serial *base = (volatile struct sa11x0_serial *)SA11X0_UART1_BASE;
+ cyg_uint32 brd;
+ int i;
+ static bool _init = false;
+
+ if (_init) return;
+
+ // Disable Receiver and Transmitter (clears FIFOs)
+ base->utcr3 = SA11X0_UART_RX_DISABLED | SA11X0_UART_TX_DISABLED;
+
+ // Clear sticky (writable) status bits.
+ base->utsr0 = SA11X0_UART_RX_IDLE | SA11X0_UART_RX_BEGIN_OF_BREAK |
+ SA11X0_UART_RX_END_OF_BREAK;
+
+ // Set UART to 8N1 (8 data bits, no partity, 1 stop bit)
+ base->utcr0 = SA11X0_UART_PARITY_DISABLED | SA11X0_UART_STOP_BITS_1 |
+ SA11X0_UART_DATA_BITS_8;
+
+ // Set the desired baud rate.
+ brd = SA11X0_UART_BAUD_RATE_DIVISOR(115200);
+ base->utcr1 = (brd >> 8) & SA11X0_UART_H_BAUD_RATE_DIVISOR_MASK;
+ base->utcr2 = brd & SA11X0_UART_L_BAUD_RATE_DIVISOR_MASK;
+
+ // Enable the receiver and the transmitter.
+ base->utcr3 = SA11X0_UART_RX_ENABLED | SA11X0_UART_TX_ENABLED;
+
+ // Set up character queues
+ atmel_putq_put = atmel_putq_get = 0;
+ atmel_use_ints = false;
+
+ // Set up handlers
+ for (i = 0; i < NUM_ATMEL_CMDS; i++) {
+ atmel_register(i, null_handler);
+ }
+
+#ifdef CYGPKG_IO
+ cyg_drv_interrupt_create(ATMEL_INT,
+ 99, // Priority - unused
+ (cyg_addrword_t)base, // Data item passed to interrupt handler
+ atmel_ISR,
+ atmel_DSR,
+ &atmel_interrupt_handle,
+ &atmel_interrupt);
+ cyg_drv_interrupt_attach(atmel_interrupt_handle);
+#endif
+
+ _init = true;
+}
+
+static void
+atmel_pkt_send(atmel_pkt *pkt)
+{
+ int i;
+
+ for (i = 0; i < pkt->len; i++) {
+ atmel_putc(pkt->data[i]);
+ }
+ atmel_flush();
+}
+
+bool
+atmel_send(int cmd, unsigned char *data, int len)
+{
+ atmel_pkt pkt;
+ unsigned char cksum, *dp;
+ int i;
+
+ dp = pkt.data;
+ *dp++ = SOF;
+ *dp++ = cksum = (cmd << 4) | len;
+ for (i = 0; i < len; i++) {
+ *dp++ = data[i];
+ cksum += data[i];
+ }
+ *dp = cksum;
+ pkt.len = len + 3;
+ atmel_pkt_send(&pkt);
+ return true;
+}
+
+#define MAX_TS_EVENTS 32
+static struct ts_event ts_event_list[MAX_TS_EVENTS];
+static int num_ts_events = 0;
+static int ts_event_get, ts_event_put;
+
+static void
+ts_event_handler(atmel_pkt *pkt)
+{
+ unsigned char *buf = pkt->data;
+ static bool up = true;
+ static int down_count = 0;
+ struct ts_event *tse;
+
+ if (num_ts_events == MAX_TS_EVENTS) {
+ return;
+ }
+ if ((buf[0] & 0x0F) == 0) {
+ // Stylus up
+ up = true;
+ down_count = 0;
+ tse = &ts_event_list[ts_event_put++];
+ if (ts_event_put == MAX_TS_EVENTS) {
+ ts_event_put = 0;
+ }
+ num_ts_events++;
+ tse->x = (buf[1] << 8) | buf[2];
+ tse->y = (buf[3] << 8) | buf[4];
+ tse->up = up;
+ } else {
+ up = false;
+ if (down_count++ == 0) {
+ // First 'down' event
+ } else {
+ }
+ {
+ tse = &ts_event_list[ts_event_put++];
+ if (ts_event_put == MAX_TS_EVENTS) {
+ ts_event_put = 0;
+ }
+ num_ts_events++;
+ tse->x = (buf[1] << 8) | buf[2];
+ tse->y = (buf[3] << 8) | buf[4];
+ tse->up = up;
+ }
+ }
+}
+
+bool
+ts_get_event(struct ts_event *tse)
+{
+ static bool _init = false;
+
+ if (!_init) {
+ atmel_register(ATMEL_CMD_TOUCH, ts_event_handler);
+ atmel_register(ATMEL_CMD_UNKNOWN, ts_event_handler);
+ _init = true;
+ }
+
+ if (num_ts_events == 0) {
+ atmel_poll();
+ }
+ if (num_ts_events) {
+ num_ts_events--;
+ memcpy(tse, &ts_event_list[ts_event_get++], sizeof(*tse));
+ if (ts_event_get == MAX_TS_EVENTS) {
+ ts_event_get = 0;
+ }
+ return true;
+ } else {
+ return false;
+ }
+}
+
+#define MAX_KEY_EVENTS 8
+static struct key_event key_event_list[MAX_KEY_EVENTS];
+static int num_key_events = 0;
+static int key_event_get, key_event_put;
+
+static void
+kbd_event_handler(atmel_pkt *pkt)
+{
+ unsigned char *buf = pkt->data;
+ struct key_event *ke;
+
+ if (num_key_events == MAX_KEY_EVENTS) {
+ return;
+ }
+// printf("Keybd = %x\n", buf[1]);
+ ke = &key_event_list[key_event_put++];
+ if (key_event_put == MAX_KEY_EVENTS) {
+ key_event_put = 0;
+ }
+ ke->button_info = buf[1];
+ num_key_events++;
+}
+
+bool
+key_get_event(struct key_event *ke)
+{
+ static bool _init = false;
+
+ if (!_init) {
+ atmel_register(ATMEL_CMD_KEYBD, kbd_event_handler);
+ _init = true;
+ }
+
+ if (num_key_events == 0) {
+ atmel_poll();
+ }
+ if (num_key_events) {
+ num_key_events--;
+ memcpy(ke, &key_event_list[key_event_get++], sizeof(*ke));
+ if (key_event_get == MAX_KEY_EVENTS) {
+ key_event_get = 0;
+ }
+ return true;
+ } else {
+ return false;
+ }
+}
+
+#ifdef CYGPKG_REDBOOT
+
+void
+atmel_check(bool is_idle)
+{
+}
+RedBoot_idle(atmel_check, RedBoot_BEFORE_NETIO);
+#endif
diff --git a/ecos/packages/hal/arm/sa11x0/ipaq/current/src/banner.xpm b/ecos/packages/hal/arm/sa11x0/ipaq/current/src/banner.xpm
new file mode 100644
index 0000000..85e48bf
--- /dev/null
+++ b/ecos/packages/hal/arm/sa11x0/ipaq/current/src/banner.xpm
@@ -0,0 +1,182 @@
+#ifdef PORTRAIT_MODE
+/* XPM */
+static char * banner_xpm[] = {
+"240 39 65 1",
+" c None",
+". c #020206",
+"+ c #FAFAFA",
+"@ c #E61606",
+"# c #C2C0C1",
+"$ c #EAE5E7",
+"% c #BB0F06",
+"& c #949394",
+"* c #F1B8C0",
+"= c #6C686A",
+"- c #710206",
+"; c #F3A19B",
+"> c #404043",
+", c #B9B7B8",
+"' c #EC8F9A",
+") c #353536",
+"! c #EA6C6F",
+"~ c #29282B",
+"{ c #E85A5C",
+"] c #E27A7A",
+"^ c #300507",
+"/ c #1D1C1D",
+"( c #626262",
+"_ c #E74844",
+": c #141415",
+"< c #E2554D",
+"[ c #C6C6C6",
+"} c #5B595C",
+"| c #E6342D",
+"1 c #9B9B9B",
+"2 c #7C0806",
+"3 c #060606",
+"4 c #737072",
+"5 c #C20E06",
+"6 c #DEDEDE",
+"7 c #E23734",
+"8 c #EEEAEA",
+"9 c #F4C0C3",
+"0 c #820807",
+"a c #505050",
+"b c #FEFEFA",
+"c c #CA1206",
+"d c #A7A6A7",
+"e c #7F7E7F",
+"f c #E62419",
+"g c #950E07",
+"h c #F6C6CA",
+"i c #550206",
+"j c #0F0E0F",
+"k c #CE1206",
+"l c #F4F2F1",
+"m c #1C0206",
+"n c #CBCACB",
+"o c #4B4A4B",
+"p c #E2322E",
+"q c #A90B06",
+"r c #888888",
+"s c #B0B0B0",
+"t c #EEAFB6",
+"u c #F8D4D4",
+"v c #FAE1E3",
+"w c #DB1506",
+"x c #D3D2D2",
+"y c #430306",
+"z c #DF9D9B",
+"................................................................................................................................................................................................................................................",
+".................................................................................................................................bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb...",
+".................................................................................................................................bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb...",
+"333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb...",
+"..........3/~~~~~//3.............................................................................................................+++++++++++++++++++++++866xxxxxxxxxxxxxxxxxxxxxxxxxx$++++uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuvvb++++++++++++++...",
+"......../a&d,##sn,d&a/...........................................................................................................bbbbbbbbbbbbbbbbbbbbb8d4~/3........................3ebbbb@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@pp<tvbbbbbbbbbbbbb...",
+"......j}sseo)//:~)}e#sa3.........................................................................................................bbbbbbbbbbbbbbbbbbbbnaj3.3.........................3ebbbb@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@f_;bbbbbbbbbbb+...",
+"33333/d,=:3.333..3.3:=,d:33333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333bbbbbbbbbbbbbbbbbbl1~.3.333333333333333333333333333.ebb+b@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@f'lbbbbbbbbbb...",
+"...3>,1~.3m^^mj^^^^.33~1s)...................................................j33.................................................+++++++++++++++++bs/..........:::..................3e+bbb@w@@@@@@@@@ff@@@@@@@@@@@@@@@@@@@@@@@@@@f'l+++++++b+...",
+"...o#4j..mqg5g0qi^^im..j4,~................................................~}eo~.................................................bbbbbbbbbbbbbbbbb8~3.......jorsds&(:.............:>>dbbbb@@@@@@@@@{';tt;<f@@@@@@@@@w_];z!<f@@@@@@pubbbbbbbbb...",
+"..j,e:3.30wk@wqwq^^q^33.34#j..............................................3/dl$s>3j~3............................................bbbbbbbbbbbbbbbbbr...3.3.3),8+bbb+l6=3........3:rx8$lb+bb@@@w@wf_9l+bbbb89{fw@w@w@|'$l++lvu!f@@@@@!+bbbbb+b+...",
+"3:11:3...q-i025kqqq%q..33:&&:333333333333333333333333333333333333333333333.:dbb8)j4#)33333333333333333333333:33333333333333333333bbbbbbbbbbbbbbbb8)..3.3.:=$bbbbbbb++l&:3333333}6bbbbb+b+b@@@@@@!vbbbb++bbbb!f@@@@ftb+bbb+b+'f@@@@@@vbbbbbbbb...",
+".a[:..3..cy.j^2kcq@cqy..3.~#o.............................................3~d++$).eba....................../4/3..................+++++++++++++++b,/3.....}$+++++b+bbbblr.....3axbbbbbbbbbb@w@@@{8b++bbbbbbbbl]f@@@{lb++bbbbv_w@@@@@@;++++b+b+...",
+"/d4...3..wg22k0@wwwwwg.3.3.4&:..................3..3.......3............333/db+xa.4+(:.3..........3j:3...3.&x(j..................bbbbbbbbbbbbbbbb1j.....36bbblda~)ex+bbl)....3$b++bl*''t$b@@@@7ub+bbu'''u+b++l_@@f'bbbv!_{;'@@w@@@@@!bbbbbbbb...",
+"od~.yyqqmqqw@5wk5qkq@0m....~s>...............3)~)/:oo~j.j:)a>o~.......j~oo))dbb$)jel}/:>>~j....3:/))))33.~~s6a~//................bbbbbbbbbbbbbbbb&3.3.33rbbb6>.3.33/s+bbsj..3rbbb+v!w@w@pt@@@f'bbbb;f@@@@'8bbbt@w@hbbbtf@@wf@@@@w@@@!bbb+b+b+...",
+"e&j^%w%@-mi-qk5wk@wk5cy....jre333333333333333~d#d>=x6r::)e,666#a:333:/r[6x#4sbb6)3e+a>r#n,=/33:34&,n[&)::e&6ld1&o3333333333333333bbbbbbbbbbbbbb+be33.3.:nbb+e///////}bbb6)33/n+bb8!f@@@@@fw@@p*+bb*f@w@@@f'lbbbf@@u+bb$z7f@@@@@@@@@@!bbbbbbbb...",
+"s(.^ww55k33mm^-wqwq@kc--y...=d.............33)8b6d6++d/)dlb+++b6}..3~,lbbbb$6bb$)34+enlxnl$e~.j>$8xn6l,)3#$ll8$l=................+++++++++++++b+be....3o6+bb6xxnxxxx6+bbb4..>$bbbhf@@w@@@@@@@_lb+8<@@@@@@@_ubb+_@@;+bb++v*!@@@@@@@w@{b+b+b+b+...",
+"6>3m-qwwqk-^m..0www5q%%w%g3.)[...............>8++8+b+&/,bb8,d6+b8o3/,bbb866bb+b$)jrl$,>33~nla..)r~3.jel&:j:d$o/~:................bbbbbbbbbbbbbbbbe.....}8bbbbb+b+b++bb+blr..(8++b'w@@@w@@@@@@<b+b*f@@@@@w@@9++b!w@{8++b++bbu_@@@@@@@!bbbbbbbb...",
+"x~..^-wk5wc%qyy^5k5@@5ck%k-.~x:..............)$+bb$d&a=8b8e/j>xbbd:(lbb$(>o,b+b$).eb#~.333(8s...3....:un~..s6a.3.................bbbbbbbbbbbbbbbbe333.3}8b++666x666xx6x6x43.}8b+b'@@@@@@@@w@@{bbb*p@w@@@@@@hbbb]@@@!*bbb+b+bu|@@@@@@{b+b+b+b+...",
+"[/3.3mq@kwqkwc5%qkk%kq5wwwg3/x)3333333333333.)8bbl(/j3[b+,~/3:1bb8:1bb84.3.>xb+6o34le.....~xx/3..3/j:j,8)33d$}j.33333333333333333bbbbbbbbbbbb+bbbe33...a8+b+o~))~~)))))))/..}8bbbz@@@@@@@@@@@<bb+u7@@@@@@@fhbbb{@@@@|{'8bbbbb{@@@@@@!bbbbbbbb...",
+"n/.....y2ww@q5kqw@qwk@w@qk^3~x~..............)8+b,/..j$bbx,s#,nbbb)nbb6).33/db+$)jrb}..3.3~#$.3./)a&s[68).3d6o...................+++++++++++b++bbe..3.3)xbbbr3..3...33jj:/33)xb+bup@@@@@@@@@@7ubbb]@@@@@@@!vb+b7@@@@@@@f]lbbb'@@w@w@!b+b+b+b+...",
+"n~..333o4-qc5@5w55wk5k5wq2m.~x:............3.)$b+&:..)+b+bbbbb++bb>6+b,/3..~db+$)3e8}.3.33/,l..3en8$6n86)..s$o...................bbbbbbbbbbbbbb+b&3....:sbbb6}3.3..)r&&re/..:sbb++zf@@@@f!@@@ftbb+v_@@@@@7hbbbv@@@f_7@@@|u++bz@@@@@@!bbbbbbbb...",
+"x)..../dl(myg@kq@kk5qw5q0m.3)x.............3.)$bb&:..~bb+ll8blll88o6bbs/.3.~dbb$)3r+}...../,6..(lxe))),8).3d8}...................bbbbbbbbbbbbbb++&:.3...>++b+6&):/en++b+r33..>bb+b+h_fw_'$@@@@!vbb+u'p@|!ubbbb]@@@<vu_f@!lbbb!@@@@@@{b+b+b+b+...",
+",oj//~:ellxe3mi0qq%%%q-^....as333333333333..3)$+b&:3.3lbb&:)ooaao>~x++6).../,bl$)3ela....3~[6j>xn>33..s8)..d6o3333333333333333333bbbbbbbbbb+bbbbbs:..3..31++bb+l8l+bbbbn3....3rlbbbb+ll+bb@@@@ftbbb+l+lllb+b+t|@@f*+++llb+b+l_@@@@@@;bbbbbbbb...",
+"&r}s#x=/ebb+=~~/>~))~:3.33.3ee...............)$+b1/333nbbx).:33:..:dbb843j:o6bb6)3eb}...../#6j=8&...j3#8)..s6o...................+++++++++b++bbbb6)..3333/s++bbbbbb++bx>....3./&lbb+bb++bb@@@w@fh+bb++bb+b+b97@w@_bb++bbbbbl'f@w@@@whb+b+b+b+...",
+"axx++b81&bb+8n#[xnxxn:.3..3/d>...........3..3)$bb&:..3=bbl,4a>a4e/.=8bb8e}e#bbb$)34+}.33..~#$3=l1:333/l$>..d$}3..................bbbbbbbbbbbb+bbbb=.......~1b+bb+b+bb,>j3.33.../(6+b+bbbbb@@@@@@7;lbbb+bbb+*_@@@@p'8bb++b++'p@@@@@@|bbbbbbbbb...",
+"~#bbbbb+++bbbbb6r&xb[....33=s/...........3.33)8bb1j3../s+bb+l8ll8)./,bbb+ll+l+b$)3e+}...3./,$.o6n>/))dl8)33&le):3................bbbbbbbbbbbb++bbb6j..333..jas68886n4:..3..3..333/a&dnb+b+@@@@@w@f_*v8v88h!f@@@@@@@|!thuu'7@@@@@@@@9bb+b+b+b+...",
+".(8b+bb+b+b+b++n=}6+&.:~>~),a.3333333333..3.3)8b+&j...3~dl+++bbblo33)xlbb+bxs8b$).ela..3..~#l..el61s6618)3.)$xd,a3333333333333333bbbbbbbb+bbbbb+b++e:.......3.~}((~:..3.....33...3...rbb+b@@w@@@@@@@|_<_7@@w@@@@@@@@@@@@@@@@@@@w@f!v+bbbbbbbb...",
+"3/dbb+bbbbbbbb+bl8bx)je#xxnd:...............3~d,,(..3.33~(sn6xxs4/333)e#6xs>od#d~.as).....:e1.3/en6x,a~,~..3=n$6}................+++++++b++bbbbbbbb843..3.....3...3...........3...3..ebbbb@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@{vb+b+b+b+b+...",
+".3~8+bbbb+b+bbbbbb8()#8bbb8:...........3....33:::3.3.....j:////:33....3////33:::333:j3.....::...j///j3j/3.333///j................bbbbbbbbbb+bbb+bbbb8&:3..33........3.3.33...3...3...ebbbb@@@@@@@@@@@@@@@@@@@@@@@@@w@@@@@@@@@@@f{lbbbbbbbbbbb...",
+".33a$b+bbbbbbb++bb#}xbbbb6>............3.33.333333...3....3.33.3..3........3.....33...3.33..3....3.3...33........................bbbbbbbbbb++bbbb++bbb#(>:33....3.3...3..3....3...3.3eb++b@@w@@@@@@@@@@@@@@w@@@@@@@@@w@@@@@wf|!*l+bb+b+b+b+b+...",
+".3.j}6b+b+b++bbbbb68bbbbnoj.3333333333..3.......3...3..3...........3333......333.....3.3...3.....33.....3..33.3.33333333333333333bbbbbb+bbbbb+b++bbb++bl6dd&1&1&1&&&1&&&&&11&&&11&&1&n+bbb;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;t*lbbb+bbbbbbbbbb...",
+"....3>xlbbbb+bb++b+b++l[)33..................3....3..3..3....3.33......3...3.....33......3..333.....3.3..3..3....................+++++b++bbbbbbbbb+bbbb+b+bbb+bbbbb+bbbbb++bbb+bbb+bbbbbb+bbbb+b+b++bbb++++++++++++bbbbbbbb+b+b+bb+b+b+b+b+b+...",
+".3...3:exlbbbbbbb+bblne:33...........3....33.....3.....3..3...3.......3.33.....33..3...........3...3.3..3.....3..................bbbbbbbb+bbb+bbbbbbbbbbbb+bbbb+b+bbb+bb+bbbb+bbb+bbbbbb+bbb+bbbb+bb+bbbbbbbb++b+bbbb++bbbbbbbbbbbbbbbbbbbbbb...",
+".3.3.33.)=s6++bbbb6d4~33.............3.33..3.333...3....3.33....3........3..........3.33..3......3....3..........................bbbbbbbb++bbbb++bbb++b+bbbbbbbbb+b+b++bbb+bbb+bbb++b++bbbbbbbbbbbbb+bbbbbbbbbbbbb+bbbb+bbbbbbb+bb+b+b+b+b+b+...",
+".................................................................................................................................bbbb+bbbbb+b++bbb++bbbbbbb+b+b+bbbbbbbbbbb+bbb+bbbb+bbbbb+b+b+bbb+bb+++b+b+bbbb+bb+bb+b+bb+b+bb+bbbbbbbbbbbb...",
+".................................................................................................................................++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++...",
+"................................................................................................................................................................................................................................................"};
+#else
+/* XPM */
+static char * banner_xpm[] = {
+"320 54 17 1",
+" c None",
+". c #030305",
+"+ c #949394",
+"@ c #CFC9CD",
+"# c #525052",
+"$ c #B7B6B8",
+"% c #E2515E",
+"& c #FDFDFB",
+"* c #737073",
+"= c #820204",
+"- c #E33533",
+"; c #343232",
+"> c #E895AE",
+", c #E51604",
+"' c #E67284",
+") c #EABAD4",
+"! c #D8D7D9",
+"............................................................................................................................................................................&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"............................................................................................................................................................................&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"............................................................................................................................................................................&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"............................................................................................................................................................................&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"............................................................................................................................................................................&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"............................................................................................................................................................................&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"............................................................................................................................................................................&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"............................................................................................................................................................................&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"............................................................................................................................................................................&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"..............*+@&&&&&&$+*..................................................................................................................................................&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&+#;;...................................&&&&&&,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,--%>&&&&&&&&&&&&&&&&&&&&&&&&",
+"...........#$&&@+*##;#++@&&$#...............................................................................................................................................&&&&&&&&&&&&&&&&&&&&&&&&&&&&&#........................................&&&&&&,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,'&&&&&&&&&&&&&&&&&&&&&&",
+".........#$&$*...........;#!&$;.............................................................................................................................................&&&&&&&&&&&&&&&&&&&&&&&&&&&+..........................................&&&&&&,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,>&&&&&&&&&&&&&&&&&&&&",
+"........+&$#................#$&+............................................................................................................................................&&&&&&&&&&&&&&&&&&&&&&&&&&#...........................................&&&&&&,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,'&&&&&&&&&&&&&&&&&&&",
+"......;!&*....................*&@...........................................................................................................................................&&&&&&&&&&&&&&&&&&&&&&&&&#............................................&&&&&&,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,'&&&&&&&&&&&&&&&&&&",
+".....;!@;.....====;.=====......;!@;....................................................................;.;..................................................................&&&&&&&&&&&&&&&&&&&&&&&&+...............;;;;..........................&&&&&&,,,,,,,,,,,,,,,---,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,>&&&&&&&&&&&&&&&&&",
+"....;&@......,,=,,=,,=...==......!!.................................................................;#!$*#..................................................................&&&&&&&&&&&&&&&&&&&&&&&!.............#+&&&&&&@*...................;***&&&&&&,,,,,,,,,,,,')&&&&&&>-,,,,,,,,,,,,,,%>!&&)>'-,,,,,,,,,,&&&&&&&&&&&&&&&&&",
+"....@@;.....=,,,,,,=,,=..=,.......!!.................................................................#&&&&+;...;............................................................&&&&&&&&&&&&&&&&&&&&&&&#...........;@&&&&&&&&&&&+...............*&&&&&&&&&&&,,,,,,,,,,'&&&&&&&&&&&)-,,,,,,,,,,-)&&&&&&&&&)-,,,,,,,,'&&&&&&&&&&&&&&&&",
+"...$&;......====,=,,,====,==......;!+................................................................#&&&&@..;>+;...........................................................&&&&&&&&&&&&&&&&&&&&&&&...........*&&&&&&&&&&&&&&$............#&&&&&&&&&&&&&,,,,,,,,,)&&&&&&&&&&&&&&%,,,,,,,,-&&&&&&&&&&&&%,,,,,,,,,&&&&&&&&&&&&&&&&",
+"..#&;.......,=.....=,,,,,,,,.......*&#...............................................................#&&&&@...&&*...............................;...........................&&&&&&&&&&&&&&&&&&&&&&+..........+&&&&&&&&&&&&&&&&@..........#&&&&&&&&&&&&&&,,,,,,,,)&&&&&&&&&&&&&&&&',,,,,,,)&&&&&&&&&&&!,,,,,,,,,,>&&&&&&&&&&&&&&&",
+"..!$........,=...;==,=,=,=,==.......$$..............................................................;#&&&&@...&&*..............................#$*..........................&&&&&&&&&&&&&&&&&&&&&&#.........#&&&&&&&&&&&&&&&&&&$........#&&&&&&&&&&&&&&&,,,,,,,)&&&&&&&&&&&&&&&&&&%,,,,,%&&&&&&&&&&&&-,,,,,,,,,,'&&&&&&&&&&&&&&&",
+".*&;........,,===,,=,,,,,,,,,.......;&#..............................................................#&&&&$;..!&*;...................;.........!&+;.........................&&&&&&&&&&&&&&&&&&&&&&;.........&&&&&&&*;...#$&&&&&&#.......&&&&&&&&!'''>!&&,,,,,,'&&&&&&&)'''>&&&&&&&&,,,,,'&&&&&)-,,%)),,,,,,,,,,,-&&&&&&&&&&&&&&&",
+".@+.....===.,=,,,,=,,=,=,=,,=........$$.......................;.;.;.;.;......;.;.;..............;.;.;#&&&&@..;!&*.;.;.;..........;.;.;.;....;.;!&+.;.;......................&&&&&&&&&&&&&&&&&&&&&&;........+&&&&&@........#&&&&&!......+&&&&&&&',,,,,,'&,,,,,,&&&&&&&-,,,,,,>&&&&&&',,,,)&&&&&%,,,,,-,,,,,,,,,,,-&&&&&&&&&&&&&&&",
+";&#..=,,,,,..=,=,,,,,,,,,=,,,=.......#&;.....................#***;.;+$$#;..;.#+$$@+*..........#+$$$*.#&&&&@...!&*.;;*++#;.......;.#*++*;.;..;;;!&+;;;;......................&&&&&&&&&&&&&&&&&&&&&&.........&&&&&!..........+&&&&&#.....&&&&&&&-,,,,,,,,%,,,,,%&&&&&&-,,,,,,,,'&&&&&&,,,,)&&&&&>,,,,,,,,,,,,,,,,,-&&&&&&&&&&&&&&&",
+"*&...,=,=,,=...===,=,=,,,,,=,=........!*.....................!&&&*;@&&&*..;#@&&&&&&&$;.....;.$&&&&&&!*&&&&@..;&&*.$!&&&&$#....;.+!&&&&&!*..;$!&&&&!&&!......................&&&&&&&&&&&&&&&&&&&&&&........#&&&&&*;;;;;;;;;;#&&&&&+....#&&&&&&',,,,,,,,,,,,,,,>&&&&&%,,,,,,,,,,)&&&&&-,,,)&&&&&&!'-,,,,,,,,,,,,,,-&&&&&&&&&&&&&&&",
+"$$...,,,,=,,.......=,,=,=,,,,====.....@$.....................!&&&+!&&&&+;.*!&&&&&&&&&!.....;!&&&&&&&&!&&&&@...!&*!&&!$!&&&;;...*&&!@$@!&&*..$&!&&!&!&!......................&&&&&&&&&&&&&&&&&&&&&&........+&&&&&&&&&&&&&&&&&&&&&&&....+&&&&&&,,,,,,,,,,,,,,,,&&&&&!,,,,,,,,,,,%&&&&&',,,'&&&&&&&&&)',,,,,,,,,,,,-&&&&&&&&&&&&&&&",
+"&+...==,,,,=,=......=,,,,=,=,=,,=,....*!.....................!&&&!&&&&&*.#&&&&&!!&&&&&@....!&&&&&&&&&&&&&&@..;!&!&$;...#!&!....#@*....;@&&...;.!&+.;;;......................&&&&&&&&&&&&&&&&&&&&&&........$&&&&&&&&&&&&&&&&&&&&&&&....$&&&&&),,,,,,,,,,,,,,,,&&&&&',,,,,,,,,,,,&&&&&',,,-&&&&&&&&&&&&-,,,,,,,,,,-&&&&&&&&&&&&&&&",
+"&#....==,=,,,,,==....,=,,,,,=,=,,,,...#&.....................!&&&&&&&!&*.@&&&&*;.;@&&&&#;.+&&&&&@+*+&&&&&&@...&&&+......*&&*............!&+....!&+..........................&&&&&&&&&&&&&&&&&&&&&&........$&&&&&&&&&&&&&&&&&&&&&&&....$&&&&&),,,,,,,,,,,,,,,-&&&&&',,,,,,,,,,,,&&&&&),,,,%&&&&&&&&&&&&-,,,,,,,,,-&&&&&&&&&&&&&&&",
+"&;.....=,,,=,=,,,===.=,,=,,,,,,,=,==..#&;....................@&&&&&@*;;.*&&&&*.....&&&&$..&&&&&$....#&&&&&@...&&!........@&$...........;)&$....&&+..........................&&&&&&&&&&&&&&&&&&&&&&........$&&&&&$$$$$$$$$$$$$$$$$$....$&&&&&),,,,,,,,,,,,,,,,&&&&&',,,,,,,,,,,,&&&&&>,,,,,->&&&&&&&&&&&,,,,,,,,,-&&&&&&&&&&&&&&&",
+"&;......=,,,,,=,,,,,,,=,,,=,=,=,,,,=..;&#....................!&&&&!.....@&&&!;.;.;.$&&&&.#&&&&!;.....+&&&&$;..!&+........+&@;......;.;..+&!....!&+;.........................&&&&&&&&&&&&&&&&&&&&&&........+&&&&&;.....................$&&&&&!,,,,,,,,,,,,,,,,&&&&&),,,,,,,,,,,-&&&&&',,,,,,,,%>&&&&&&&&-,,,,,,,,-&&&&&&&&&&&&&&&",
+"&;........==,,,,=,=,=,,,=,,,,,,,=,,...#&;....................!&&&&*.....!&&&!+$+$$+@&&&&.+&&&&$......#&&&&@..;&&*........+&!.....;.;*+$$@&@....!&+..........................&&&&&&&&&&&&&&&&&&&&&&........*&&&&&+................;....*&&&&&&-,,,,,,,,,,,,,,,)&&&&&-,,,,,,,,,,>&&&&&%,,,,,,,,,,,'&&&&&&',,,,,,,,-&&&&&&&&&&&&&&&",
+"&#.........==,=,,,,,,=,,,=,=,=,,=,=...#&;....................@&&&&#....;&&&&&&&&&&&&&&&&;$&&&&+......#&&&&@...!&*........*&&....;*@&&&&&&&!....!&+..........................&&&&&&&&&&&&&&&&&&&&&&........;&&&&&&;.........;;;;;;;....;&&&&&&!,,,,,,,,,-,,,,,'&&&&&),,,,,,,,,-&&&&&&,,,,,,,,,,,,,>&&&&&',,,,,,,,-&&&&&&&&&&&&&&&",
+"&;.......;&@.==,=,,=,,,=,,,,,,,,,=....#&.....................!&&&!;....#&&&&&&&&&&&&&&&&.@&&&&#.....;#&&&&@..;!&*........*&!....$&&!!$++@&@....&&+..........................&&&&&&&&&&&&&&&&&&&&&&;........$&&&&&&;.......@&&&&&&;.....$&&&&&&),,,,,,,-!,,,,,-&&&&&&>,,,,,,,-&&&&&&>,,,,,')-,,,,,>&&&&&',,,,,,,,-&&&&&&&&&&&&&&&",
+"&*.......*&&$...=,,,=,,,,=,=,=,==.....*&.....................@&&&&;....;&&&&&!&!&&!&&!&!;$&&&&*......#&&&&@...&&*........*&!...$&&+;....+&!....!&$..........................&&&&&&&&&&&&&&&&&&&&&&;........;&&&&&&&$#;.;+&&&&&&&+......;&&&&&&&&'-,,%>&&,,,,,,>&&&&&&&'-,-%>&&&&&&&-,,,,-&&&'-,,'&&&&&&-,,,,,,,,-&&&&&&&&&&&&&&&",
+"@+.......;&&&@&;...==,=,,,,,,==.......+$.....................!&&&&;.....&&&&$..########;.$&&&&$......*&&&&@..;!&*........+&!.;#&&*......+&!....!&+..........................&&&&&&&&&&&&&&&&&&&&&&#.........+&&&&&&&&&&&&&&&&&&!........*&&&&&&&&&&&&&&&,,,,,,-&&&&&&&&&&&&&&&&&&&',,,,,>&&&&&&&&&&&&&&,,,,,,,,,'&&&&&&&&&&&&&&&",
+"+!.#*++$;.;&&&&&;.....................!*.....................@&&&&;;....!&&&&............*&&&&!......+&&&&@...&&*........*&!..$&!.......+&!....!&+..........................&&&&&&&&&&&&&&&&&&&&&&+..........@&&&&&&&&&&&&&&&&&;.........+&&&&&&&&&&&&&&,,,,,,,-&&&&&&&&&&&&&&&&&),,,,,-&&&&&&&&&&&&&&',,,,,,,,,>&&&&&&&&&&&&&&&",
+"#&#+&&&&&;.;&&&&!+;##*+#*+#*;........;&;.....................!&&&&;.....+&&&&)..;.;.;.....&&&&&$.;.;#&&&&&@...&&*........+&!.;)&$.....;.@&@....&&+..........................&&&&&&&&&&&&&&&&&&&&&&&...........@&&&&&&&&&&&&&&&;...........+&&&&&&&&&&&&&,,,,,,,,%&&&&&&&&&&&&&&&),,,,,,'&&&&&&&&&&&&&>,,,,,,,,,,&&&&&&&&&&&&&&&&",
+".!&&&&&&&&$@&&&&&&&&&&&&&&&&.........+@......................@&&&&;......&&&&&!+*##*+!+...$&&&&&)+*$!&&&&&@...!&*........*&!..@&);.....;&&!....!&+;.........................&&&&&&&&&&&&&&&&&&&&&&&#...........+&&&&&&&&&&&&$;.............;$&&&&&&&&&&&,,,,,,,,,-)&&&&&&&&&&&&',,,,,,,,-)&&&&&&&&&&',,,,,,,,,,%&&&&&&&&&&&&&&&&",
+".+&&&&&&&&&&&&&&&&&&&*$+@&&$........;&*......................!&&&&;......*&&&&&&&&&&&&!...;&&&&&&&&&&&&&&&@...&&*........*&!..+&&;;.;.;!&&!....@&@.;........................&&&&&&&&&&&&&&&&&&&&&&&!............;+&&&&&&&&@#.................;*$$$&&&&&&,,,,,,,,,,,%)&&&&&&&&>-,,,,,,,,,,,-')!&&&)',,,,,,,,,,,,&&&&&&&&&&&&&&&&&",
+"..&&&&&&&&&&&&&&&&&&!;..$&&+........+!.......................!&&&&;.......+&&&&&&&&&&&&....*&&&&&&&&&!@&&&!...&&*........+&&...!&&+#*+&&$&!....*&&+*+*......................&&&&&&&&&&&&&&&&&&&&&&&&*..............#++++#;........................&&&&&&,,,,,,,,,,,,,-%''''%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,'&&&&&&&&&&&&&&&&&",
+"..*&&&&&&&&&&&&&&&&&&&!!&&&;..**+*+*&#.......................!&&&!;........*!&&&&&&&&&@;....*!&&&&&&!;$&&&@...!&*........*&!...#!&&&&&&+.&!.....$&&&&!......................&&&&&&&&&&&&&&&&&&&&&&&&&#............................................&&&&&&,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,%&&&&&&&&&&&&&&&&&&",
+"...$&&&&&&&&&&&&&&&&&&&&&&*..;&&&&&&$........................*++++...........*+$@@$$+#........*$@@$*..#+++*...*+;........;+*....;+@!@$#..++......+@!!+......................&&&&&&&&&&&&&&&&&&&&&&&&&&;...........................................&&&&&&,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,%&&&&&&&&&&&&&&&&&&&",
+"...;&&&&&&&&&&&&&&&&&&&&&$.;@&&&&&&&........................................................................................................................................&&&&&&&&&&&&&&&&&&&&&&&&&&&*..........................................&&&&&&,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,'&&&&&&&&&&&&&&&&&&&&",
+"....;&&&&&&&&&&&&&&&&&&&&;.&&&&&&&&;........................................................................................................................................&&&&&&&&&&&&&&&&&&&&&&&&&&&&@;........................................&&&&&&,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,%!&&&&&&&&&&&&&&&&&&&&&",
+".....*&&&&&&&&&&&&&&&&&&$+&&&&&&&&;.........................................................................................................................................&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&!+;;....................................&&&&&&,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,--'!&&&&&&&&&&&&&&&&&&&&&&&",
+"......;&&&&&&&&&&&&&&&&&&&&&&&&&!;..........................................................................................................................................&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+".......;@&&&&&&&&&&&&&&&&&&&&&&$;...........................................................................................................................................&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+".........*&&&&&&&&&&&&&&&&&&&&*.............................................................................................................................................&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"...........+!&&&&&&&&&&&&&&!*...............................................................................................................................................&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+".............#+@&&&&&&&&!+;.................................................................................................................................................&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+".................;####;.....................................................................................................................................................&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"............................................................................................................................................................................&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"............................................................................................................................................................................&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"................................................................................................................................................................................................................................................................................................................................"};
+#endif
diff --git a/ecos/packages/hal/arm/sa11x0/ipaq/current/src/banner.xpm.bin b/ecos/packages/hal/arm/sa11x0/ipaq/current/src/banner.xpm.bin
new file mode 100644
index 0000000..176969f
--- /dev/null
+++ b/ecos/packages/hal/arm/sa11x0/ipaq/current/src/banner.xpm.bin
@@ -0,0 +1,74 @@
+/* XPM */
+static char * banner_xpm[] = {
+"320 54 17 1",
+" c None",
+". c #020204",
+"+ c #6D8AB0",
+"@ c #D3D2D8",
+"# c #EA96AC",
+"$ c #314577",
+"% c #9FB0C8",
+"& c #FEFEFC",
+"* c #93949D",
+"= c #E56878",
+"- c #820204",
+"; c #E23634",
+"> c #6479A5",
+", c #243259",
+"' c #E61604",
+") c #BDB7C4",
+"! c #515259",
+"................................................................................................................................................&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"................................................................................................................................................&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"................................................................................................................................................&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"................................................................................................................................................&&&&&&&@@)))))@@&&&&&&&&&&&&&&&&&&&&&@@@)%))@@&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"................................................................................................................................................&&)++>>>>>+>+>>>>>+%&&&&&&&&&&&&&)++>+>>>+>>>>>>>%@&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"................................................................................................................................................&@>>>>>+>>>>>>>>>>>>>*@&&&&&&&@+>>>>>>>>>>>>>>>>>+*&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"................................................................................................................................................&&>>>>>>>>>>>>>+>>>>>++@&&&&&+>>+>>>>>>>>>>>>>>>>>%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"................................................................................................................................................&&>>>>>>>+>>+>>>>>>>>>>>@&&)>>>>>>>>>>>>+>>+>+>>>>@&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"................................................................................................................................................&&>>>+>>>>>>>>>>>>>>>>>>+&%>>>>>>>>+>>+>>>>>>>>>>>@&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"..............>*@&&&&&&)*+......................................................................................................................&&>>+%%@@@@@)%>>>+>>>>>>>%>>>>>>>>>>>>>%)@@@@%+>>+@&&&&&&&&&&&&&&&&&&&+!,,...................................&&&&&&'''''''''''''''''''''''''''''''''''''''''''';;;#&&&&&&&&&&&&&",
+"...........!@&&@*>!!,!**@&&)!...................................................................................................................&&@&&&&&&&&&&&&%>>>>>>>>>+>>>+>>+>>>+@&&&&&&&&&&@+&&&&&&&&&&&&&&&&&&$........................................&&&&&&'''''''''''''''''''''''''''''''''''''''''''''''''=&&&&&&&&&&&",
+".........!)&)>...........,!@&)$.................................................................................................................&&&&&&&&&&&&&&&&+>+>>>>>>%>>>>>>>>>+&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&*..........................................&&&&&&'''''''''''''''''''''''''''''''''''''''''''''''''''#&&&&&&&&&",
+"........%&)!................!)&*................................................................................................................&&&&&&&&&&&&&&&&*>>>>>>>>@>>>>>>>>+&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$...........................................&&&&&&''''''''''''''''''''''''''''''''''''''''''''''''''''=&&&&&&&&",
+"......,@&>....................>&@...............................................................................................................&&&&&&&&&&&&&&&&+>>>>+>>+@>+>>+>>>%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&!............................................&&&&&&'''''''''''''''''''''''''''''''''''''''''''''''''''''=&&&&&&&",
+".....$@@,.....----,.-----......,@@$......................................................$.$....................................................&&&&&&&&&&&&&&&%>>+>>>>>+&+>>>>>>>&&&&&&&&&&&&&&&&&&&&&&&&&&&&&*...............,,,,..........................&&&&&&''''''''''''''';;;''''''''''''''''''''''''''''''''''''#&&&&&&",
+"....,&@......''-''-''-...--......@@...................................................$!@)>!....................................................&&&&&&&&&&&&@%+>>>>>>>>>@&)>>>>+>>&&&&&&&&&&&&&&&&&&&&&&&&&&&&@.............!*&&&&&&@>...................,>>>&&&&&&''''''''''''=)&&&&&&#;'''''''''''''';#@&&)#=;''''''''''&&&&&&",
+"....@@,.....-''''''-''-..-'.......@@...................................................!&&&&*$...$..............................................&&&&&&)>>>>>>>>>>>>>+>>%&&&%>>>>>+&&&&&%+++++++++++)&&&&&&&&&&!...........,@&&&&&&&&&&&*...............>&&&&&&&&&&&''''''''''=&&&&&&&&&&&);'''''''''';)&&&&&&&&&);''''''''=&&&&&",
+"...)&,......----'-'''----'--......$@%..................................................!&&&&@..,#*$.............................................&&&&&&)>>>>>>>>>>+>>>+@&&&&&@+>+>%&&&&&*>>>+>>+>>+>%&&&&&&&&&&...........>&&&&&&&&&&&&&&)............!&&&&&&&&&&&&&''''''''')&&&&&&&&&&&&&&;'''''''';&&&&&&&&&&&&;'''''''''&&&&&",
+"..!&,.......'-.....-''''''''.......>&!.................................................!&&&&@...&&>...............................$.............&&&&&&@>>>>>>+>>>>+%@&&&&&&&&&@%>%&&&&&*>>>>>>>>>>>%&&&&&&&&&*..........*&&&&&&&&&&&&&&&&@..........!&&&&&&&&&&&&&&'''''''')&&&&&&&&&&&&&&&&=''''''')&&&&&&&&&&&@''''''''''#&&&&",
+"..@)........'-...,--'-'-'-'--.......)@................................................,!&&&&@...&&>..............................!)+............&&&&&&)>>>>>>>>>>>>+>+@&&&&&)+>>>*&&&&&%>>>>>>>>>>+%&&&&&&&&&!.........!&&&&&&&&&&&&&&&&&&)........!&&&&&&&&&&&&&&&''''''')&&&&&&&&&&&&&&&&&&;''''';&&&&&&&&&&&&;''''''''''=&&&&",
+".>&,........''---''-'''''''''.......,&!................................................!&&&&),..@&>,...................$.........@&*,...........&&&&&&@+++++>>+>>>>>>>>%&&&+>>>>>*&&&&&++>>>>>>>>>>%&&&&&&&&&,.........&&&&&&&>,...!)&&&&&&!.......&&&&&&&&@===#@&&''''''=&&&&&&&)===#&&&&&&&&'''''=&&&&&);'';@)''''''''''';&&&&",
+".@*.....---.'-''''-''-'-'-''-........)).........$.$.$.$.$......$.$.$..............$.,.,!&&&&@..,@&>.$.$.$..........$.$.$.$....$.,@&*.$.$........&&&&&&&&&&&&&@%+>>>>>+>>@&)+>>>>++&&&&&%++++>+>>>>+%&&&&&&&&&,........*&&&&&@........!&&&&&@......*&&&&&&&=''''''=&''''''&&&&&&&;''''''#&&&&&&='''')&&&&&;''''';''''''''''';&&&&",
+",&!..-'''''..-'-'''''''''-'''-.......!&$.......!>>>,.,*))!$..$.!*))@*>..........!*)))>.!&&&&@...@&>.,,>**!$.......$.!>**>,.$..,,,@&*,,,,........&&&&&&&&&&&&&&&&++>>>>>>+&+>>+>>>+&&&&&&&&&&>>>+>>>%&&&&&&&&&.........&&&&&@..........*&&&&&!.....&&&&&&&;'''''''';''''';&&&&&&;''''''''=&&&&&&''''@&&&&&#''''''''''''''''';&&&&",
+">&...'-'-''-...---'-'-'''''-'-........@>.......@&&&>,@&&&>..,!@&&&&&&&)$.....$.)&&&&&&@>&&&&@..,&&>.)@&&&&)!....$.*@&&&&&@>..,)@&&&&@&&@........&&&&&&&&&&&&&&&&@>>>>>+>>@>>>>>>>+@&&&&&&&&&+>>>>>+%&&&&&&&&&........!&&&&&>,,,,,,,,,,!&&&&&%....!&&&&&&='''''''''''''''#&&&&&;'''''''''')&&&&&;'''#&&&&&&@=;'''''''''''''';&&&&",
+"))...''''-''.......-''-'-''''----.....@).......@&&&*@&&&&*,.>@&&&&&&&&&@.....,@&&&&&&&&@&&&&)...@&>@&&@)@&&&,$...>&&@))@@&&>..)&@&&@&@&@........&&&&&&&&&&&&&&&&&>>>>>>>>@>>>>>>>>%&&&&&&&&&>>>>>>>%&&&&&&&&&........*&&&&&&&&&&&&&&&&&&&&&&&....*&&&&&&''''''''''''''''&&&&&@''''''''''';&&&&&='''=&&&&&&&&&)='''''''''''';&&&&",
+"&*...--''''-'-......-''''-'-'-''-'....>@.......@&&&@&&&&&>.!&&&&&@@&&&&&@....@&&&&&&&&&&&&&&@..,@&@&),...!@&@....!@>....,@&&...,.@&*.,,,........&&&&&&&&&&&&&&&&@>>+>>>>+%>>>+>>>>>&&&&&&&&&+>>>>>+%&&&&&&&&&........)&&&&&&&&&&&&&&&&&&&&&&&....)&&&&&)''''''''''''''''&&&&&=''''''''''''&&&&&=''';&&&&&&&&&&&&;'''''''''';&&&&",
+"&!....--'-'''''--....'-'''''-'-''''...!&.......@&&&&&&&@&>.@&&&&>,.,@&&&&!$.*&&&&&@*>*&&&&&&@...&&&*......>&&>............@&*....@&*............&&&&&&&&&&&&&&&@>>>>>>+>>>+>>>>>+>>>@&&&&&&&+>>>>>>%&&&&&&&&&........)&&&&&&&&&&&&&&&&&&&&&&&....)&&&&&)''''''''''''''';&&&&&=''''''''''''&&&&&@'''';&&&&&&&&&&&&;''''''''';&&&&",
+"&,.....-'''-'-'''---.-''-'''''''-'--..!&$......@&&&&&@>,,.>&&&&>.....&&&&)..&&&&&)....!&&&&&@...&&@........@&)...........,@&)....&&*............&+*%&&&&&&&&&@%>>+>>>>>>>+>>>>>>>>>+>%&&&&&@>>+>>>+%&&&&&&&&&........%&&&&&))%))%)))%))%)))))....%&&&&&)''''''''''''''''&&&&&=''''''''''''&&&&&#''''';#&&&&&&&&&&&''''''''';&&&&",
+"&,......-'''''-'''''''-'''-'-'-''''-..,&!......@&&&&@.....@&&&@,.,.,.)&&&&.!&&&&@,.....*&&&&),..@&*........*&@,......,.,..*&@....@&*,...........@+>>>>>>>>>>>>>>>>>+>>>>+&++>>>>>>>>>>>>>>>+>>>>>>>%&&&&&&&&&........*&&&&&,.....................)&&&&&@''''''''''''''''&&&&&)''''''''''';&&&&&='''''''';#&&&&&&&&;'''''''';&&&&",
+"&$........--''''-'-'-'''-'''''''-''...!&$......@&&&&>.....@&&&@*)*))*@&&&&.*&&&&)......!&&&&@..,&&>........*&@.....,.,>*))@&@....@&*............@>>>>>>>>>>>>>>>>>>>>>>>@&&++>>+>>>>>>>>>>>>>>>>>>+%&&&&&&&&&........!&&&&&*................,....!&&&&&&;''''''''''''''')&&&&&;''''''''''#&&&&&='''''''''''=&&&&&&='''''''';&&&&",
+"&!.........--'-''''''-'''-'-'-''-'-...!&,......@&&&&!....,&&&&&&&&&&&&&&&&,)&&&&*......!&&&&)...@&>........>&&....,>@&&&&&&&@....@&*............@+>>>>>>+>>>>>>+>>>>+>>@&&&&%>>>>>>>>>>>>>>>>+>>>>>%&&&&&&&&&........$&&&&&&,.........,,,,,,,....$&&&&&&@''''''''';'''''=&&&&&)''''''''';&&&&&&'''''''''''''#&&&&&='''''''';&&&&",
+"&,.......,&@.--'-''-'''-'''''''''-....!&.......@&&&@,....!&&&&&&&&&&&&&&&&.)&&&&!.....,!&&&&@..,@&>........>&@....)&&@@)**@&@....&&*............@>>>+>>>>+>>+>>>+>>>>+&&&&&&&&+>>>+>>>>>>+>>>>>>>>+%&&&&&&&&&$........)&&&&&&,.......@&&&&&&$.....%&&&&&&)''''''';@''''';&&&&&&#''''''';&&&&&&#'''''=);'''''#&&&&&='''''''';&&&&",
+"&>.......>&&)...-'''-''''-'-'-'--.....>&.......@&&&&,....,&&&&&@&@&&@&&@&@,)&&&&>......!&&&&@...&&>........>&@...)&&*,....*&@....@&)............@>>>>>>>>>>>>>>>>>+%@&&&&&&&&&&&%>>>+>>+>>>>>>+>>++@&&&&&&&&&,........,&&&&&&&)!,.,*&&&&&&&*......,&&&&&&&&=;'';#&&''''''#&&&&&&&=;';;#&&&&&&&;'''';&&&=;''=&&&&&&;'''''''';&&&&",
+"@*.......,&&&@&$...--'-''''''--.......*).......@&&&&,.....&&&&)..!!!!!!!!,.)&&&&)......!&&&&@..,@&>........*&@.,!&&>......*&@....@&*............&&@%%*++>>>>>++%@@&&&&&&&&&&&&&&&&&)%+>>>>>++%%@@&&&&&&&&&&&&!.........*&&&&&&&&&&&&&&&&&&@........>&&&&&&&&&&&&&&&'''''';&&&&&&&&&&&&&&&&&&&='''''#&&&&&&&&&&&&&&'''''''''=&&&&",
+"*@.!>**),.,&&&&&,.....................@>.......@&&&&,,....@&&&&............>&&&&@......*&&&&)...&&>........>&@..)&@.......*&@....@&*............&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&*..........)&&&&&&&&&&&&&&&&&,.........*&&&&&&&&&&&&&&''''''';&&&&&&&&&&&&&&&&&)''''';&&&&&&&&&&&&&&='''''''''#&&&&",
+"!&!*&&&&&,.,&&&&@*$!!>*!>*!>$........,&$.......@&&&&,.....*&&&&)..,.,.,.....&&&&&).,.,!&&&&&@...&&>........*&@.,)&).....,.@&@....&&*............&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&...........)&&&&&&&&&&&&&&&,...........*&&&&&&&&&&&&&'''''''';&&&&&&&&&&&&&&&)''''''=&&&&&&&&&&&&&#''''''''''&&&&&",
+".@&&&&&&&&)@&&&&&&&&&&&&&&&&.........*@........@&&&&,......&&&&&@*>!!>*@*...)&&&&&@*>)@&&&&&@...@&>........>&@..@&),.....,&&@....@&*,...........&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&!...........*&&&&&&&&&&&&),.............,)&&&&&&&&&&&''''''''';)&&&&&&&&&&&&='''''''';)&&&&&&&&&&='''''''''';&&&&&",
+".*&&&&&&&&&&&&&&&&&&&>)*@&&)........,&>........@&&&&,......>&&&&&&&&&&&&@...,&&&&&&&&&&&&&&&@...&&>........>&@..*&&,,.,.,@&&@....@&@.$..........&&,,,,,,*&&&&&&&&&&@,,,,,,,,,!&&&&&*,,,,,,,,,,,,,>@&&&&&&&&&&&@............,*&&&&&&&&)!.................,>%)%&&&&&&''''''''''';)&&&&&&&&#;''''''''''';=)@&&&)=''''''''''''&&&&&&",
+"..&&&&&&&&&&&&&&&&&&@,..)&&*........*@.........@&&&&,.......*&&&&&&&&&&&&....>&&&&&&&&&@)&&&@...&&>........*&&...@&&*!>*&&)&@....>&&*>*>........&&,,,,,,+&&&&&&&&&&$,,,,,,,,,,@&&&&*,,,,,,,,,,,,,,,+&&&&&&&&&&&>..............!****!,........................&&&&&&''''''''''''';;====;''''''''''''''''''''''''''''''''''=&&&&&&",
+"..>&&&&&&&&&&&&&&&&&&&@@&&&,..>>*>*>&!.........@&&&@,........>@&&&&&&&&&@,....>@&&&&&&@,)&&&@...@&>........>&@...!@&&&&&&*.&@.....)&&&&@........&&,,,,,,*&&&&&&&&&&,,,,,,,,,,,>&&&&*,,,,,,>!$,,,,,,,@&&&&&&&&&&&!............................................&&&&&&'''''''''''''''''''''''''''''''''''''''''''''''''''''=&&&&&&&",
+"...)&&&&&&&&&&&&&&&&&&&&&&>..,&&&&&&)..........>****...........>*))@)%*!........>))))>..!***>...>*,........,*>....,*@@@)!..**......*@@@*........&&,,,,,,+&&&&&&&&&>,,,,,+,,,,,,&&&&*,,,,,$&&&%,,,,,,@&&&&&&&&&&&&,...........................................&&&&&&'''''''''''''''''''''''''''''''''''''''''''''''''''';&&&&&&&&",
+"...,&&&&&&&&&&&&&&&&&&&&&).,@&&&&&&&............................................................................................................&&,,,,,,*&&&&&&&&&,,,,,,&$,,,,,*&&&*,,,,,!&&&@,,,,,,@&&&&&&&&&&&&&>..........................................&&&&&&'''''''''''''''''''''''''''''''''''''''''''''''''''=&&&&&&&&&",
+"....,&&&&&&&&&&&&&&&&&&&&,.&&&&&&&&,............................................................................................................&&,,,,,,+&&&&&&&&+,,,,,+&),,,,,,&&&*,,,,,$**>,,,,,,>&&&&&&&&&&&&&&&@,........................................&&&&&&''''''''''''''''''''''''''''''''''''''''''''''''';@&&&&&&&&&&",
+".....!&&&&&&&&&&&&&&&&&&)*&&&&&&&&,.............................................................................................................&&,,,,,,*&&&&&&&&,,,,,,&&&$,,,,,%&&*,,,,,,,,,,,,,,+&&&&&&&&&&&&&&&&&&@*,,....................................&&&&&&''''''''''''''''''''''''''''''''''''''''''''';;=@&&&&&&&&&&&&",
+"......,&&&&&&&&&&&&&&&&&&&&&&&&&@,..............................................................................................................&&,,,,,,+&&&&&&&%,,,,,$@@@>,,,,,$&&*,,,,,,,,,,,,,$%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+".......,)&&&&&&&&&&&&&&&&&&&&&&),...............................................................................................................&@,,,,,,*&&&&&&&$,,,,,,,,,,,,,,,,@&*,,,,,$%%+,,,,,,!&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+".........>&&&&&&&&&&&&&&&&&&&&>.................................................................................................................&&,,,,,,+&&&&&&@,,,,,,,,,,,,,,,,,!&*,,,,,!&&&@$,,,,,*&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"...........*@&&&&&&&&&&&&&&@>...................................................................................................................&&,,,,,,,$$$$$$,,,,,,,,,,,,,,,,,,,@*,,,,,!&&&@,,,,,,$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+".............!*)&&&&&&&&@*,.....................................................................................................................&&,,,,,,,,,,,,,,,,,,,+@@@@@+,,,,,,>%,,,,,$>>>,,,,,,,+&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+".................,!$!!,.........................................................................................................................&@,,,,,,,,,,,,,,,,,,,@&&&&&&,,,,,,,*,,,,,,,,,,,,,,,$@&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"................................................................................................................................................&&,,,,,,,,,,,,,,,,,,$&&&&&&&>,,,,,,$,,,,,,,,,,,,,,$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"................................................................................................................................................&&%%%%%%%%%%%%%%%%%%@&&&&&&&@%%%%%%%%%%%%%%%%%%)@&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"................................................................................................................................................&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
+"................................................................................................................................................................................................................................................................................................................................"};
diff --git a/ecos/packages/hal/arm/sa11x0/ipaq/current/src/font.h b/ecos/packages/hal/arm/sa11x0/ipaq/current/src/font.h
new file mode 100644
index 0000000..9bcd8bd
--- /dev/null
+++ b/ecos/packages/hal/arm/sa11x0/ipaq/current/src/font.h
@@ -0,0 +1,159 @@
+//==========================================================================
+//
+// font.h
+//
+// SA1110/iPAQ - LCD display font
+//
+//==========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//==========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): gthomas
+// Contributors: gthomas
+// Date: 2001-02-25
+// Description: Simple LCD font
+//####DESCRIPTIONEND####
+
+#ifndef _LCD_FONT_H_
+#define _LCD_FONT_H_
+
+// 8x8 Font - from Helios
+
+#define FIRST_CHAR 0x20
+#define LAST_CHAR 0x7F
+#define FONT_HEIGHT 8
+#define FONT_WIDTH 8
+#define CURSOR_ON 0x7F
+#define CURSOR_OFF 0x20
+static char font_table[LAST_CHAR-FIRST_CHAR+1][8] =
+{
+ { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, /* */
+ { 0x18, 0x18, 0x18, 0x18, 0x18, 0x00, 0x18, 0x00 }, /* ! */
+ { 0x36, 0x36, 0x36, 0x00, 0x00, 0x00, 0x00, 0x00 }, /* " */
+ { 0x6C, 0x6C, 0xFE, 0x6C, 0xFE, 0x6C, 0x6C, 0x00 }, /* # */
+ { 0x30, 0xFC, 0x16, 0x7C, 0xD0, 0x7E, 0x18, 0x00 }, /* $ */
+ { 0x06, 0x66, 0x30, 0x18, 0x0C, 0x66, 0x60, 0x00 }, /* % */
+ { 0x1C, 0x36, 0x36, 0x1C, 0xB6, 0x66, 0xDC, 0x00 }, /* & */
+ { 0x18, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00 }, /* ' */
+ { 0x30, 0x18, 0x0C, 0x0C, 0x0C, 0x18, 0x30, 0x00 }, /* ( */
+ { 0x0C, 0x18, 0x30, 0x30, 0x30, 0x18, 0x0C, 0x00 }, /* ) */
+ { 0x00, 0x18, 0x7E, 0x3C, 0x7E, 0x18, 0x00, 0x00 }, /* * */
+ { 0x00, 0x18, 0x18, 0x7E, 0x18, 0x18, 0x00, 0x00 }, /* + */
+ { 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x0C }, /* , */
+ { 0x00, 0x00, 0x00, 0x7E, 0x00, 0x00, 0x00, 0x00 }, /* - */
+ { 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x00 }, /* . */
+ { 0x00, 0x60, 0x30, 0x18, 0x0C, 0x06, 0x00, 0x00 }, /* / */
+ { 0x3C, 0x66, 0x76, 0x7E, 0x6E, 0x66, 0x3C, 0x00 }, /* 0 */
+ { 0x18, 0x1C, 0x18, 0x18, 0x18, 0x18, 0x7E, 0x00 }, /* 1 */
+ { 0x3C, 0x66, 0x60, 0x30, 0x18, 0x0C, 0x7E, 0x00 }, /* 2 */
+ { 0x3C, 0x66, 0x60, 0x38, 0x60, 0x66, 0x3C, 0x00 }, /* 3 */
+ { 0x30, 0x38, 0x3C, 0x36, 0x7E, 0x30, 0x30, 0x00 }, /* 4 */
+ { 0x7E, 0x06, 0x3E, 0x60, 0x60, 0x66, 0x3C, 0x00 }, /* 5 */
+ { 0x38, 0x0C, 0x06, 0x3E, 0x66, 0x66, 0x3C, 0x00 }, /* 6 */
+ { 0x7E, 0x60, 0x30, 0x18, 0x0C, 0x0C, 0x0C, 0x00 }, /* 7 */
+ { 0x3C, 0x66, 0x66, 0x3C, 0x66, 0x66, 0x3C, 0x00 }, /* 8 */
+ { 0x3C, 0x66, 0x66, 0x7C, 0x60, 0x30, 0x1C, 0x00 }, /* 9 */
+ { 0x00, 0x00, 0x18, 0x18, 0x00, 0x18, 0x18, 0x00 }, /* : */
+ { 0x00, 0x00, 0x18, 0x18, 0x00, 0x18, 0x18, 0x0C }, /* ; */
+ { 0x30, 0x18, 0x0C, 0x06, 0x0C, 0x18, 0x30, 0x00 }, /* < */
+ { 0x00, 0x00, 0x7E, 0x00, 0x7E, 0x00, 0x00, 0x00 }, /* = */
+ { 0x0C, 0x18, 0x30, 0x60, 0x30, 0x18, 0x0C, 0x00 }, /* > */
+ { 0x3C, 0x66, 0x30, 0x18, 0x18, 0x00, 0x18, 0x00 }, /* ? */
+ { 0x3C, 0x66, 0x76, 0x56, 0x76, 0x06, 0x3C, 0x00 }, /* @ */
+ { 0x3C, 0x66, 0x66, 0x7E, 0x66, 0x66, 0x66, 0x00 }, /* A */
+ { 0x3E, 0x66, 0x66, 0x3E, 0x66, 0x66, 0x3E, 0x00 }, /* B */
+ { 0x3C, 0x66, 0x06, 0x06, 0x06, 0x66, 0x3C, 0x00 }, /* C */
+ { 0x1E, 0x36, 0x66, 0x66, 0x66, 0x36, 0x1E, 0x00 }, /* D */
+ { 0x7E, 0x06, 0x06, 0x3E, 0x06, 0x06, 0x7E, 0x00 }, /* E */
+ { 0x7E, 0x06, 0x06, 0x3E, 0x06, 0x06, 0x06, 0x00 }, /* F */
+ { 0x3C, 0x66, 0x06, 0x76, 0x66, 0x66, 0x3C, 0x00 }, /* G */
+ { 0x66, 0x66, 0x66, 0x7E, 0x66, 0x66, 0x66, 0x00 }, /* H */
+ { 0x7E, 0x18, 0x18, 0x18, 0x18, 0x18, 0x7E, 0x00 }, /* I */
+ { 0x7C, 0x30, 0x30, 0x30, 0x30, 0x36, 0x1C, 0x00 }, /* J */
+ { 0x66, 0x36, 0x1E, 0x0E, 0x1E, 0x36, 0x66, 0x00 }, /* K */
+ { 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x7E, 0x00 }, /* L */
+ { 0xC6, 0xEE, 0xFE, 0xD6, 0xD6, 0xC6, 0xC6, 0x00 }, /* M */
+ { 0x66, 0x66, 0x6E, 0x7E, 0x76, 0x66, 0x66, 0x00 }, /* N */
+ { 0x3C, 0x66, 0x66, 0x66, 0x66, 0x66, 0x3C, 0x00 }, /* O */
+ { 0x3E, 0x66, 0x66, 0x3E, 0x06, 0x06, 0x06, 0x00 }, /* P */
+ { 0x3C, 0x66, 0x66, 0x66, 0x56, 0x36, 0x6C, 0x00 }, /* Q */
+ { 0x3E, 0x66, 0x66, 0x3E, 0x36, 0x66, 0x66, 0x00 }, /* R */
+ { 0x3C, 0x66, 0x06, 0x3C, 0x60, 0x66, 0x3C, 0x00 }, /* S */
+ { 0x7E, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x00 }, /* T */
+ { 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x3C, 0x00 }, /* U */
+ { 0x66, 0x66, 0x66, 0x66, 0x66, 0x3C, 0x18, 0x00 }, /* V */
+ { 0xC6, 0xC6, 0xD6, 0xD6, 0xFE, 0xEE, 0xC6, 0x00 }, /* W */
+ { 0x66, 0x66, 0x3C, 0x18, 0x3C, 0x66, 0x66, 0x00 }, /* X */
+ { 0x66, 0x66, 0x66, 0x3C, 0x18, 0x18, 0x18, 0x00 }, /* Y */
+ { 0x7E, 0x60, 0x30, 0x18, 0x0C, 0x06, 0x7E, 0x00 }, /* Z */
+ { 0x3E, 0x06, 0x06, 0x06, 0x06, 0x06, 0x3E, 0x00 }, /* [ */
+ { 0x00, 0x06, 0x0C, 0x18, 0x30, 0x60, 0x00, 0x00 }, /* \ */
+ { 0x7C, 0x60, 0x60, 0x60, 0x60, 0x60, 0x7C, 0x00 }, /* ] */
+ { 0x3C, 0x66, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, /* ^ */
+ { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF }, /* _ */
+ { 0x0C, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, /* ` */
+ { 0x00, 0x00, 0x3C, 0x60, 0x7C, 0x66, 0x7C, 0x00 }, /* a */
+ { 0x06, 0x06, 0x3E, 0x66, 0x66, 0x66, 0x3E, 0x00 }, /* b */
+ { 0x00, 0x00, 0x3C, 0x66, 0x06, 0x66, 0x3C, 0x00 }, /* c */
+ { 0x60, 0x60, 0x7C, 0x66, 0x66, 0x66, 0x7C, 0x00 }, /* d */
+ { 0x00, 0x00, 0x3C, 0x66, 0x7E, 0x06, 0x3C, 0x00 }, /* e */
+ { 0x38, 0x0C, 0x0C, 0x3E, 0x0C, 0x0C, 0x0C, 0x00 }, /* f */
+ { 0x00, 0x00, 0x7C, 0x66, 0x66, 0x7C, 0x60, 0x3C }, /* g */
+ { 0x06, 0x06, 0x3E, 0x66, 0x66, 0x66, 0x66, 0x00 }, /* h */
+ { 0x18, 0x00, 0x1C, 0x18, 0x18, 0x18, 0x3C, 0x00 }, /* i */
+ { 0x18, 0x00, 0x1C, 0x18, 0x18, 0x18, 0x18, 0x0E }, /* j */
+ { 0x06, 0x06, 0x66, 0x36, 0x1E, 0x36, 0x66, 0x00 }, /* k */
+ { 0x1C, 0x18, 0x18, 0x18, 0x18, 0x18, 0x3C, 0x00 }, /* l */
+ { 0x00, 0x00, 0x6C, 0xFE, 0xD6, 0xD6, 0xC6, 0x00 }, /* m */
+ { 0x00, 0x00, 0x3E, 0x66, 0x66, 0x66, 0x66, 0x00 }, /* n */
+ { 0x00, 0x00, 0x3C, 0x66, 0x66, 0x66, 0x3C, 0x00 }, /* o */
+ { 0x00, 0x00, 0x3E, 0x66, 0x66, 0x3E, 0x06, 0x06 }, /* p */
+ { 0x00, 0x00, 0x7C, 0x66, 0x66, 0x7C, 0x60, 0xE0 }, /* q */
+ { 0x00, 0x00, 0x36, 0x6E, 0x06, 0x06, 0x06, 0x00 }, /* r */
+ { 0x00, 0x00, 0x7C, 0x06, 0x3C, 0x60, 0x3E, 0x00 }, /* s */
+ { 0x0C, 0x0C, 0x3E, 0x0C, 0x0C, 0x0C, 0x38, 0x00 }, /* t */
+ { 0x00, 0x00, 0x66, 0x66, 0x66, 0x66, 0x7C, 0x00 }, /* u */
+ { 0x00, 0x00, 0x66, 0x66, 0x66, 0x3C, 0x18, 0x00 }, /* v */
+ { 0x00, 0x00, 0xC6, 0xD6, 0xD6, 0xFE, 0x6C, 0x00 }, /* w */
+ { 0x00, 0x00, 0x66, 0x3C, 0x18, 0x3C, 0x66, 0x00 }, /* x */
+ { 0x00, 0x00, 0x66, 0x66, 0x66, 0x7C, 0x60, 0x3C }, /* y */
+ { 0x00, 0x00, 0x7E, 0x30, 0x18, 0x0C, 0x7E, 0x00 }, /* z */
+ { 0x30, 0x18, 0x18, 0x0E, 0x18, 0x18, 0x30, 0x00 }, /* { */
+ { 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x00 }, /* | */
+ { 0x0C, 0x18, 0x18, 0x70, 0x18, 0x18, 0x0C, 0x00 }, /* } */
+ { 0x8C, 0xD6, 0x62, 0x00, 0x00, 0x00, 0x00, 0x00 }, /* ~ */
+ { 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF } /* Block cursor */
+};
+
+#endif // _LCD_FONT_H_
diff --git a/ecos/packages/hal/arm/sa11x0/ipaq/current/src/ipaq_misc.c b/ecos/packages/hal/arm/sa11x0/ipaq/current/src/ipaq_misc.c
new file mode 100644
index 0000000..708b56c
--- /dev/null
+++ b/ecos/packages/hal/arm/sa11x0/ipaq/current/src/ipaq_misc.c
@@ -0,0 +1,174 @@
+//==========================================================================
+//
+// ipaq_misc.c
+//
+// HAL misc board support code for StrongARM SA1110/iPAQ
+//
+//==========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//==========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): gthomas
+// Contributors: hmt
+// Travis C. Furrer <furrer@mit.edu>
+// Richard Panton <richard.panton@3glab.com>
+// Date: 2001-02-24
+// Purpose: HAL board support
+// Description: Implementations of HAL board interfaces
+//
+//####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_io.h> // IO macros
+#include <cyg/hal/hal_if.h> // Virtual vector interfaces
+#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/ipaq.h> // Platform specifics
+
+#include <cyg/infra/diag.h> // diag_printf
+
+#include <cyg/hal/lcd_support.h>
+#include <cyg/hal/atmel_support.h>
+
+// All the MM table layout is here:
+#include <cyg/hal/hal_mm.h>
+
+#include <string.h> // memset()
+
+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_DACR_DEFAULT;
+ 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, 32, 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, 128, ARM_UNCACHEABLE, ARM_UNBUFFERABLE, ARM_ACCESS_PERM_RW_RW); /* Ethernet Adaptor */
+ 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 Socket A */
+ X_ARM_MMU_SECTION(0x300, 0x300, 512, ARM_UNCACHEABLE, ARM_UNBUFFERABLE, ARM_ACCESS_PERM_RW_RW); /* PCMCIA Sockets B */
+ X_ARM_MMU_SECTION(0x400, 0x400, 128, ARM_UNCACHEABLE, ARM_UNBUFFERABLE, ARM_ACCESS_PERM_RW_RW); /* SA1111 Daughter card */
+ X_ARM_MMU_SECTION(0x480, 0x480, 128, ARM_UNCACHEABLE, ARM_UNBUFFERABLE, ARM_ACCESS_PERM_RW_RW); /* Video Controller Daughter card */
+ X_ARM_MMU_SECTION(0x800, 0x800, 0x400, ARM_UNCACHEABLE, ARM_UNBUFFERABLE, ARM_ACCESS_PERM_RW_RW); /* StrongARM(R) Registers */
+ X_ARM_MMU_SECTION(0xC00, 0x000, 32, ARM_CACHEABLE, ARM_BUFFERABLE, ARM_ACCESS_PERM_RW_RW); /* DRAM Bank 0 */
+ X_ARM_MMU_SECTION(0xC00, 0xC00, 32, ARM_UNCACHEABLE, 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 */
+
+}
+
+//
+// Board control register support
+// Update the board control register (write only). Only the bits
+// specified by 'mask' are changed to 'value'.
+//
+
+void
+ipaq_EGPIO(unsigned long mask, unsigned long value)
+{
+ _ipaq_EGPIO = (_ipaq_EGPIO & ~mask) | (mask & value);
+ *SA1110_EGPIO = _ipaq_EGPIO;
+}
+
+//
+// Platform specific initialization
+//
+
+void
+plf_hardware_init(void)
+{
+ // Force "alternate" use of GPIO pins used for LCD screen
+ *SA11X0_GPIO_ALTERNATE_FUNCTION |= 0x000003FC; // Bits 2..9
+ *SA11X0_GPIO_PIN_DIRECTION |= 0x000003FC; // Bits 2..9
+ *SA11X0_GPIO_PIN_OUTPUT_CLEAR = 0x000003FC; // Bits 2..9
+
+ // Pins used for buttons, communications with Atmel
+ //*SA11X0_GPIO_PIN_DIRECTION &= 0x03FE0C003;
+ *SA11X0_GPIO_RISING_EDGE_DETECT |= 0x00000002;
+ *SA11X0_GPIO_FALLING_EDGE_DETECT |= 0x00000002;
+
+ // Setup communication with Atmel micro-controller
+ *SA1110_GPCLK_CONTROL_0 = SA1110_GPCLK_SUS_UART;
+ *SA11X0_PPC_PIN_ASSIGNMENT &= ~SA11X0_PPC_UART_PIN_REASSIGNED;
+ atmel_init();
+}
+
+//
+// Support for platform specific I/O channels
+//
+
+void
+plf_if_init(void)
+{
+ // Initialize screen
+ lcd_init(16);
+#ifdef CYGSEM_IPAQ_LCD_COMM
+ // Initialize I/O channel
+ lcd_comm_init();
+#endif
+}
+
diff --git a/ecos/packages/hal/arm/sa11x0/ipaq/current/src/kbd.xpm b/ecos/packages/hal/arm/sa11x0/ipaq/current/src/kbd.xpm
new file mode 100644
index 0000000..75df6bb
--- /dev/null
+++ b/ecos/packages/hal/arm/sa11x0/ipaq/current/src/kbd.xpm
@@ -0,0 +1,667 @@
+#if 1 // Originals
+/* XPM */
+static char * keynorm_xpm[] = {
+"160 61 3 1",
+" c None",
+". c #000000",
+"+ c #FFFFFF",
+"................................................................................................................................................................",
+".+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.++++++++++++++++++.",
+".+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.++++++++++++++++++.",
+".+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.++++++++++++++++++.",
+".+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.++++++.++++++.+++++++++++++.+++++++++++++.++++++.++++++.+++++++++++++.+++++++++++++.++++++++++++++++++.",
+".+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.++++++.++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.++++++.+++++++++++.",
+".+++++...+++++.++++.+++.++++.++++++..+++++.+++++.+.+++++.+++++....++++.+++++.++.++++.+++++.++.++++.++++++.++++++.++++++..+++++.+++++...+++++.+++++..+++++++++++.",
+".++++.++.+++++.++++.+++.++++.+++++.++.++++.+++++..++++++.++++++.++++++.+++++.++.++++.+++++.++.++++.++++++.++++++.+++++.++.++++.+++++.++.++++.++++...+++++++++++.",
+".++++.++.+++++.++++.+.+.++++.+++++.++.++++.+++++.+++++++.++++++.++++++.+++++.++.++++.+++++.++.++++.++++++.++++++.+++++.++.++++.+++++.++.++++.+++............+++.",
+".++++.++.+++++.++++.+.+.++++.+++++....++++.+++++.+++++++.++++++.++++++.+++++.++.++++.+++++.++.++++.++++++.++++++.+++++.++.++++.+++++.++.++++.++++...+++++++++++.",
+".+++++...+++++.+++++.+.+++++.+++++.+++++++.+++++.+++++++.++++++.+.++++.++++++...++++.+++++.++.++++.++++++.++++++.+++++.++.++++.+++++...+++++.+++++..+++++++++++.",
+".+++++++.+++++.+++++.+.+++++.++++++...++++.+++++.+++++++.+++++++.+++++.++++++++.++++.++++++..+++++.++++++.++++++.++++++..+++++.+++++.+++++++.++++++.+++++++++++.",
+".+++++++.+++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.++++++..+++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++.+++++++.++++++++++++++++++.",
+".+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.++++++++++++++++++.",
+".+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.++++++++++++++++++.",
+"................................................................................................................................................................",
+".+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.++++++++++++++++++.",
+".+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.++++++++++++++++++.",
+".+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.++++++++++++++++++.",
+".+++++++++++++.+++++++++++++.++++++++.++++.+++++++.+++++.+++++++++++++.+++++.+++++++.++++++++.++++.+++++.+++++++.++++++.++++++.+++++++++++++.++++++++++++++++++.",
+".+++++++++++++.+++++++++++++.++++++++.++++.++++++.+.++++.+++++++++++++.+++++.+++++++.+++++++++++++.+++++.+++++++.++++++.++++++.+++++++++++++.++++++.+++++++.+++.",
+".+++++..++++++.++++++..+++++.++++++...++++.++++++.++++++.++++++..+++++.+++++...+++++.++++++++.++++.+++++.++.++++.++++++.++++++.+++++++++++++.+++++..+++++++.+++.",
+".+++++++.+++++.+++++.++.++++.+++++.++.++++.+++++....++++.+++++.++.++++.+++++.++.++++.++++++++.++++.+++++.++.++++.++++++.++++++.+++++++++++++.++++...+++++++.+++.",
+".+++++...+++++.++++++.++++++.+++++.++.++++.++++++.++++++.+++++.++.++++.+++++.++.++++.++++++++.++++.+++++.+.+++++.++++++.++++++.++++.....++++.+++............+++.",
+".++++.++.+++++.+++++++.+++++.+++++.++.++++.++++++.++++++.+++++.++.++++.+++++.++.++++.++++++++.++++.+++++..++++++.++++++.++++++.+++++++++++++.++++...+++++++++++.",
+".++++.++.+++++.+++++.++.++++.+++++.++.++++.++++++.++++++.++++++...++++.+++++.++.++++.++++++++.++++.+++++.+.+++++.++++++.++++++.+++++++++++++.+++++..+++++++++++.",
+".+++++...+++++.++++++..+++++.++++++...++++.++++++.++++++.++++++++.++++.+++++.++.++++.++++++.+.++++.+++++.++.++++.++++++.++++++.+++++++++++++.++++++.+++++++++++.",
+".+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++...+++++.+++++++++++++.+++++++.+++++.+++++++++++++.+++++++++++++.+++++++++++++.++++++++++++++++++.",
+".+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.++++++++++++++++++.",
+".+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.++++++++++++++++++.",
+"................................................................................................................................................................",
+".++++++++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.",
+".++++++++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.",
+".++++++++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.",
+".++++++++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++.+++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.",
+".++..++.++++++.++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++.+++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++..++++++.",
+".+.++.+.++++++.++++.+++++....++++.++++.+++.++++.++++++...++++.++++.+++.++++.+++++...+++++.+++++...+++++.+++++....++++.+++++++++++++.+++++++++++++.+++++..++++++.",
+".+.+++...+.+.+.++++.++++++++.++++.+++++.+.+++++.+++++.+++++++.++++.+++.++++.+++++.++.++++.+++++.++.++++.+++++.+.+.+++.+++++++++++++.+++++++++++++.+++++++++++++.",
+".+.++++.++..++.++++.+++++++.+++++.++++++.++++++.+++++.+++++++.+++++.+.+++++.+++++.++.++++.+++++.++.++++.+++++.+.+.+++.+++++++++++++.+++++++++++++.+++++..++++++.",
+".+.++++.++.+++.++++.++++++.++++++.++++++.++++++.+++++.+++++++.+++++.+.+++++.+++++.++.++++.+++++.++.++++.+++++.+.+.+++.+++++..++++++.++++++..+++++.+++++..++++++.",
+".+.++.+.++.+++.++++.+++++.+++++++.+++++.+.+++++.+++++.+++++++.++++++.++++++.+++++.++.++++.+++++.++.++++.+++++.+.+.+++.+++++..++++++.++++++..+++++.++++++.++++++.",
+".++..+++.+.+++.++++.+++++....++++.++++.+++.++++.++++++...++++.++++++.++++++.+++++...+++++.+++++.++.++++.+++++.+.+.+++.++++++.++++++.+++++++++++++.+++++.+++++++.",
+".++++++++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++.+++++++.+++++++++++++.+++++++++++++.",
+".++++++++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.",
+".++++++++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.",
+"................................................................................................................................................................",
+".++++++++++++++++++++.++++++++++++++.++++++++++++++++++++++++++++++++++++++++++++++++.+++++++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.",
+".++++++++++++++++++++.++++++++++++++.++++++++++++++++++++++++++++++++++++++++++++++++.+++++++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.",
+".++++++++++++++++++++.++++++++++++++.++++++++++++++++++++++++++++++++++++++++++++++++.+++++++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.",
+".++++++++++++++++++++.++++++++++.+++.++++++++++++++++++++++++++++++++++++++++++++++++.+++..++..+++..+++.++++++..+++++.+++++++++++++.+++++.+++++++.++++++++.++++.",
+".++...+.+++.+++.++.++.+.+++++.++.+.+.++++++++++++++++++++++++++++++++++++++++++++++++.++++.+.++.+.++.++.++++++..+++++.+++++++++++++.+++++.+++++++.++++++++.++++.",
+".+.++++.++++++.+++.++.+.+++++.++.+.+.++++++++++++++++++++++++++++++++++++++++++++++++.++++.++++.++++.++.+++++++.+++++.+++++++++++++.+++++.+++++++.++++++++.++++.",
+".+.++++..++.+...+...+.+.+..+...+++.+.++++++++++++++++++++++++++++++++++++++++++++++++.++++.++++.++++.++.++++++.++++++.++++......+++.++++++.++++++.+++++++.+++++.",
+".++..++.+.+.++.+++.++.+.+.+.+.++++.+.++++++++++++++++++++++++++++++++++++++++++++++++.++++.+++.+++..+++.+++++++++++++.+++++++++++++.++++++.++++++.+++++++.+++++.",
+".++++.+.+.+.++.+++.++.+.+.+.+.++++.+.++++++++++++++++++++++++++++++++++++++++++++++++.++++.++.++++++.++.+++++++++++++.++++......+++.++++++.++++++.+++++++.+++++.",
+".++++.+.+.+.++.+++.++.+.+.+.+.++++.+.++++++++++++++++++++++++++++++++++++++++++++++++.++++.+.+++++++.++.+++++++++++++.+++++++++++++.+++++++.+++++.++++++.++++++.",
+".+...++.+.+.++.++++.+.+.+.+.++.+++.+.++++++++++++++++++++++++++++++++++++++++++++++++.++++.+.++++.++.++.+++++++++++++.+++++++++++++.+++++++.+++++.++++++.++++++.",
+".++++++++++++++++++++.++++++++++++++.++++++++++++++++++++++++++++++++++++++++++++++++.++++.+....++..+++.+++++++++++++.+++++++++++++.+++++++.+++++.++++++.++++++.",
+".++++++++++++++++++++.++++++++++++++.++++++++++++++++++++++++++++++++++++++++++++++++.+++++++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.",
+".++++++++++++++++++++.++++++++++++++.++++++++++++++++++++++++++++++++++++++++++++++++.+++++++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.",
+"................................................................................................................................................................"};
+
+/* XPM */
+static char * keyshft_xpm[] = {
+"160 61 3 1",
+" c None",
+". c #000000",
+"+ c #FFFFFF",
+"................................................................................................................................................................",
+".+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.++++++++++++++++++.",
+".+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.++++++++++++++++++.",
+".+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.++++++++++++++++++.",
+".+++++...+++++.+++.++.++.+++.+++++....++++.+++++....++++.++++.....++++.++++.+++.++++.++++.+++.++++.++++++.++++++.+++++...+++++.+++++....++++.++++++++++++++++++.",
+".++++.+++.++++.+++.++.++.+++.+++++.+++++++.+++++.+++.+++.++++++.++++++.++++.+++.++++.++++.+++.++++.++++++.++++++.++++.+++.++++.+++++.+++.+++.++++++.+++++++++++.",
+".++++.+++.++++.+++.++.++.+++.+++++.+++++++.+++++.+++.+++.++++++.++++++.++++.+++.++++.++++.+++.++++.++++++.++++++.++++.+++.++++.+++++.+++.+++.+++++..+++++++++++.",
+".++++.+++.++++.+++.++.++.+++.+++++.+++++++.+++++.+++.+++.++++++.++++++.+++++.+.+++++.++++.+++.++++.++++++.++++++.++++.+++.++++.+++++.+++.+++.++++...+++++++++++.",
+".++++..++.++++.+++.+.+.+.+++.+++++....++++.+++++....++++.++++++.++++++.++++++.++++++.++++.+++.++++.++++++.++++++.++++.+++.++++.+++++....++++.+++............+++.",
+".++++.+.+.++++.+++.+.+.+.+++.+++++.+++++++.+++++.+++.+++.++++++.++++++.++++++.++++++.++++.+++.++++.++++++.++++++.++++.+++.++++.+++++.+++++++.++++...+++++++++++.",
+".++++.++..++++.+++.+.+.+.+++.+++++.+++++++.+++++.+++.+++.++++++.++++++.++++++.++++++.++++.+++.++++.++++++.++++++.++++.+++.++++.+++++.+++++++.+++++..+++++++++++.",
+".++++.+++.++++.++++.+++.++++.+++++.+++++++.+++++.+++.+++.++++++.++++++.++++++.++++++.++++.+++.++++.++++++.++++++.++++.+++.++++.+++++.+++++++.++++++.+++++++++++.",
+".+++++...+.+++.++++.+++.++++.+++++....++++.+++++.+++.+++.++++++.++++++.++++++.++++++.+++++...+++++.++++++.++++++.+++++...+++++.+++++.+++++++.++++++++++++++++++.",
+".+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.++++++++++++++++++.",
+".+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.++++++++++++++++++.",
+"................................................................................................................................................................",
+".+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.++++++++++++++++++.",
+".+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.++++++++++++++++++.",
+".+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.++++++++++++++++++.",
+".+++++...+++++.+++++....++++.++++....+++++.+++++....++++.+++++...+++++.++++.+++.++++.++++.....++++.++++.+++.++++.++++.++++++++.+++++++++++++.++++++++++++++++++.",
+".++++.+++.++++.++++.++++++++.++++.+++.++++.+++++.+++++++.++++.++++++++.++++.+++.++++.+++++++.+++++.++++.+++.++++.++++.++++++++.+++++++++++++.++++++.+++++++.+++.",
+".++++.+++.++++.++++.++++++++.++++.+++.++++.+++++.+++++++.++++.++++++++.++++.+++.++++.+++++++.+++++.++++.++.+++++.++++.++++++++.+++++++++++++.+++++..+++++++.+++.",
+".++++.+++.++++.++++.++++++++.++++.+++.++++.+++++.+++++++.++++.++++++++.++++.+++.++++.+++++++.+++++.++++.+.++++++.++++.++++++++.+++++++++++++.++++...+++++++.+++.",
+".++++.+++.++++.+++++...+++++.++++.+++.++++.+++++....++++.++++.+...++++.++++.....++++.+++++++.+++++.++++..+++++++.++++.++++++++.+++++++++++++.+++............+++.",
+".++++.....++++.++++++++.++++.++++.+++.++++.+++++.+++++++.++++.+++.++++.++++.+++.++++.+++++++.+++++.++++.+.++++++.++++.++++++++.+++++++++++++.++++...+++++++++++.",
+".++++.+++.++++.++++++++.++++.++++.+++.++++.+++++.+++++++.++++.+++.++++.++++.+++.++++.+++++++.+++++.++++.++.+++++.++++.++++++++.+++++++++++++.+++++..+++++++++++.",
+".++++.+++.++++.++++++++.++++.++++.+++.++++.+++++.+++++++.++++.+++.++++.++++.+++.++++.++++.++.+++++.++++.+++.++++.++++.++++++++.+++++++++++++.++++++.+++++++++++.",
+".++++.+++.++++.++++....+++++.++++....+++++.+++++.+++++++.+++++...+++++.++++.+++.++++.+++++..++++++.++++.+++.++++.++++.....++++.+++.......+++.++++++++++++++++++.",
+".+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.++++++++++++++++++.",
+".+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.++++++++++++++++++.",
+"................................................................................................................................................................",
+".++++++++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.",
+".++++++++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.",
+".++++++++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.",
+".++++++++++++++++++.++++.....++++.++++.+++.++++.+++++...+++++.++++.+++.++++.++++....+++++.++++.++++.+++.+++.+++++.+++.++++++++.++++.+++++.+++++++.+++++++++++++.",
+".++..++.++++++.++++.++++++++.++++.++++.+++.++++.++++.+++.++++.++++.+++.++++.++++.+++.++++.++++..+++.+++.+++..+++..+++.+++++++.+++++.++++++.++++++.+++++++++++++.",
+".+.++.+.++++++.++++.++++++++.++++.++++.+++.++++.++++.++++++++.++++.+++.++++.++++.+++.++++.++++..+++.+++.+++.+.+.+.+++.++++++.++++++.+++++++.+++++.++++++..+++++.",
+".+.+++...+.+.+.++++.+++++++.+++++.+++++.+.+++++.++++.++++++++.+++++.+.+++++.++++.+++.++++.++++.+.++.+++.+++.++.++.+++.+++++.+++++++.++++++++.++++.++++++..+++++.",
+".+.++++.++..++.++++.++++++.++++++.++++++.++++++.++++.++++++++.+++++.+.+++++.++++....+++++.++++.+.++.+++.+++.+++++.+++.++++.++++++++.+++++++++.+++.+++++++++++++.",
+".+.++++.++.+++.++++.+++++.+++++++.+++++.+.+++++.++++.++++++++.+++++.+.+++++.++++.+++.++++.++++.++.+.+++.+++.+++++.+++.+++++.+++++++.++++++++.++++.++++++..+++++.",
+".+.++.+.++.+++.++++.++++.++++++++.++++.+++.++++.++++.++++++++.++++++.++++++.++++.+++.++++.++++.++.+.+++.+++.+++++.+++.++++++.++++++.+++++++.+++++.++++++..+++++.",
+".++..+++.+.+++.++++.++++.++++++++.++++.+++.++++.++++.+++.++++.++++++.++++++.++++.+++.++++.++++.+++..+++.+++.+++++.+++.+++++++.+++++.++++++.++++++.+++++++++++++.",
+".++++++++++++++++++.++++.....++++.++++.+++.++++.+++++...+++++.++++++.++++++.++++....+++++.++++.+++..+++.+++.+++++.+++.++++++++.++++.+++++.+++++++.+++++++++++++.",
+".++++++++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.",
+".++++++++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.",
+"................................................................................................................................................................",
+"......................++++++++++++++.++++++++++++++++++++++++++++++++++++++++++++++++.+++++++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.",
+"......................++++++++++++++.++++++++++++++++++++++++++++++++++++++++++++++++.+++++++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.",
+"......................++++++++++++++.++++++++++++++++++++++++++++++++++++++++++++++++.+++++++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.",
+"..................+...++++++++++.+++.++++++++++++++++++++++++++++++++++++++++++++++++.+++..++..+++..+++.+++++++++++++.+++++++++++++.++++++.++++++.+++++...+++++.",
+"...+++.+...+...+..+...+.+++++.++.+.+.++++++++++++++++++++++++++++++++++++++++++++++++.++++.+.++.+.++.++.+++++.+.+++++.++++++.++++++.++++++.++++++.++++.+++.++++.",
+"..+....+......+...+...+.+++++.++.+.+.++++++++++++++++++++++++++++++++++++++++++++++++.++++.++++.++++.++.+++++.+.+++++.++++++.++++++.++++++.++++++.++++++++.++++.",
+"..+....++..+.+++.+++..+.+..+...+++.+.++++++++++++++++++++++++++++++++++++++++++++++++.++++.++++.++++.++.+++++.+.+++++.++++++.++++++.++++++.++++++.++++++++.++++.",
+"...++..+.+.+..+...+...+.+.+.+.++++.+.++++++++++++++++++++++++++++++++++++++++++++++++.++++.+++.+++..+++.+++++++++++++.+++.......+++.++++++.++++++.+++++++.+++++.",
+".....+.+.+.+..+...+...+.+.+.+.++++.+.++++++++++++++++++++++++++++++++++++++++++++++++.++++.++.++++++.++.+++++++++++++.++++++.++++++.++++++.++++++.++++++.++++++.",
+".....+.+.+.+..+...+...+.+.+.+.++++.+.++++++++++++++++++++++++++++++++++++++++++++++++.++++.+.+++++++.++.+++++++++++++.++++++.++++++.++++++.++++++.++++++.++++++.",
+"..+++..+.+.+..+....+..+.+.+.++.+++.+.++++++++++++++++++++++++++++++++++++++++++++++++.++++.+.++++.++.++.+++++++++++++.++++++.++++++.++++++.++++++.+++++++++++++.",
+"......................++++++++++++++.++++++++++++++++++++++++++++++++++++++++++++++++.++++.+....++..+++.+++++++++++++.+++++++++++++.++++++.++++++.++++++.++++++.",
+"......................++++++++++++++.++++++++++++++++++++++++++++++++++++++++++++++++.+++++++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.",
+"......................++++++++++++++.++++++++++++++++++++++++++++++++++++++++++++++++.+++++++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.",
+"................................................................................................................................................................"};
+
+/* XPM */
+static char * keynum_xpm[] = {
+"160 61 3 1",
+" c None",
+". c #000000",
+"+ c #FFFFFF",
+"................................................................................................................................................................",
+".+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.++++++++++++++++++.",
+".+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.++++++++++++++++++.",
+".+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.++++++++++++++++++.",
+".+++++..++++++.+++++...+++++.+++++...+++++.++++++++.++++.++++....+++++.+++++...+++++.+++++....++++.+++++...+++++.+++++...+++++.+++++...+++++.++++++++++++++++++.",
+".++++++.++++++.++++.+++.++++.++++.+++.++++.+++++++..++++.++++.++++++++.++++.++++++++.++++++++.++++.++++.+++.++++.++++.+++.++++.++++.+++.++++.++++++.+++++++++++.",
+".++++++.++++++.++++++++.++++.++++++++.++++.++++++.+.++++.++++.++++++++.++++.++++++++.++++++++.++++.++++.+++.++++.++++.+++.++++.++++.+++.++++.+++++..+++++++++++.",
+".++++++.++++++.+++++++.+++++.++++++++.++++.+++++.++.++++.++++.++++++++.++++.++++++++.+++++++.+++++.++++.+++.++++.++++.+++.++++.++++.+++.++++.++++...+++++++++++.",
+".++++++.++++++.++++++.++++++.+++++...+++++.++++.+++.++++.++++....+++++.++++....+++++.+++++++.+++++.+++++...+++++.+++++...+++++.++++.+++.++++.+++............+++.",
+".++++++.++++++.+++++.+++++++.++++++++.++++.++++......+++.++++++++.++++.++++.+++.++++.+++++++.+++++.++++.+++.++++.++++++++.++++.++++.+++.++++.++++...+++++++++++.",
+".++++++.++++++.++++.++++++++.++++++++.++++.++++++++.++++.++++++++.++++.++++.+++.++++.++++++.++++++.++++.+++.++++.++++++++.++++.++++.+++.++++.+++++..+++++++++++.",
+".++++++.++++++.++++.++++++++.++++.+++.++++.++++++++.++++.++++++++.++++.++++.+++.++++.++++++.++++++.++++.+++.++++.++++++++.++++.++++.+++.++++.++++++.+++++++++++.",
+".++++++.++++++.++++.....++++.+++++...+++++.++++++++.++++.++++....+++++.+++++...+++++.++++++.++++++.+++++...+++++.+++++...+++++.+++++...+++++.++++++++++++++++++.",
+".+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.++++++++++++++++++.",
+".+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.++++++++++++++++++.",
+"................................................................................................................................................................",
+".+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.++++++++++++++++++.",
+".+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.++++++++++++++++++.",
+".+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.++++++.++++++.+++++++++++++.+++++++++++++.++++++++++++++++++.",
+".++++++.++++++.+++++...+++++.++++++.+.++++.++++++.++++++.++++.++++.+++.+++++++++++++.+++++..++++++.+++.++.++.+++.+++++++.+++++.+++++.+++++++.++++++++++++++++++.",
+".++++++.++++++.++++.+++.++++.++++++.+.++++.+++++....++++.+++.+.+++.+++.++++++.++++++.++++.++.+++++.++++.+.+.++++.++++++.++++++.++++++.++++++.++++++.+++++++.+++.",
+".++++++.++++++.+++.+...+.+++.++++......+++.++++.+.++++++.+++.+.++.++++.+++++.+.+++++.++++.+.++++++.+++++.+.+++++.+++++.+++++++.+++++++.+++++.+++++..+++++++.+++.",
+".++++++.++++++.++.+.++.++.++.++++++.+.++++.++++.+.++++++.++++.++.+++++.++++.+++.++++.+++++.+++++++.++++++.++++++.+++++.+++++++.+++++++.+++++.++++...+++++++.+++.",
+".++++++.++++++.++.+.++.++.++.+++++.+.+++++.+++++...+++++.++++++.++++++.+++.+++++.+++.++++.+.++++++.+++...+...+++.+++++.+++++++.+++++++.+++++.+++............+++.",
+".++++++.++++++.++.+.++.++.++.++++.+.++++++.++++++.+.++++.+++++.++.++++.++.+++++++.++.+++.+++.+.+++.++++++.++++++.+++++.+++++++.+++++++.+++++.++++...+++++++++++.",
+".++++++.++++++.+++.+..+..+++.+++......++++.++++++.+.++++.++++.++.+.+++.+++++++++++++.+++.++++.++++.+++++.+.+++++.+++++.+++++++.+++++++.+++++.+++++..+++++++++++.",
+".+++++++++++++.++++.++++++++.++++.+.++++++.++++....+++++.+++.+++.+.+++.+++++++++++++.++++.++.+.+++.++++.+.+.++++.++++++.++++++.++++++.++++++.++++++.+++++++++++.",
+".++++++.++++++.+++++...+++++.++++.+.++++++.++++++.++++++.+++.++++.++++.+++++++++++++.+++++..+++.++.+++.++.++.+++.+++++++.+++++.+++++.+++++++.++++++++++++++++++.",
+".+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.++++++.++++++.+++++++++++++.+++++++++++++.++++++++++++++++++.",
+".+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.++++++++++++++++++.",
+"................................................................................................................................................................",
+".++++++++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.",
+".++++++++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.",
+".++++++++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.",
+".++++++++++++++++++.++++.++..++++.+++.++...++++.+++.++...++++.+++.+++++.+++.+++.+....++++.+++.++...++++.+++.++....+++.+++.++...++++.+++++++++++++.+++++++++++++.",
+".++..++.++++++.++++.+++.+.++.++++.++.+..+++.+++.++.+..+++.+++.++.+.+++..+++.++.+..+++++++.++.+..+++++++.++.+.++++.+++.++.+..+++.+++.+++++++++++++.+++++++++++++.",
+".+.++.+.++++++.++++.+++.++++.++++.++.++++++.+++.++.++++++.+++.++.++++.+.+++.++.++.+++++++.++.++.+++++++.++.++++++.+++.++.++.+++.+++.++++++..+++++.+++++++++++++.",
+".+.+++...+.+.+.++++.++....++.++++.+....+++.++++.+....++++.+++.+....+.++.+++.+.....+++++++.+.....+++++++.+....+++.++++.+.....+++.+++.++++++..+++++.+++++..++.+++.",
+".+.++++.++..++.++++.+++.++++.++++.++.++++.+++++.++.+++...++++.++.++.+++.+++.++.++....++++.++.++....++++.++.+++++.++++.++.+++...++++.++++++.++++++.++++.++..++++.",
+".+.++++.++.+++.++++.+++.++++.++++.++.+++.++++++.++.++++++.+++.++.++......++.++.++++++.+++.++.++.+++.+++.++.+++++.++++.++.++.+++.+++.+++++++.+++++.+++++++++++++.",
+".+.++.+.++.+++.++++.+++.++++.++++.++.++.+++++++.++.++++++.+++.++.++++++.+++.++.++++++.+++.++.++.+++.+++.++.++++.+++++.++.++.+++.+++.+++++++++++++.+++++++++++++.",
+".++..+++.+.+++.++++.+++.++++.++++.++.++.+++++++.++.++.+++.+++.++.++++++.+++.++.++++++.+++.++.++.+++.+++.++.++++.+++++.++.++.+++.+++.+++++++++++++.+++++++++++++.",
+".++++++++++++++++++.+++.++++.++++.++.++.....+++.++.+++...++++.++.++++++.+++.++.++....++++.++.+++...++++.++.++++.+++++.++.+++...++++.+++++++++++++.+++++++++++++.",
+".++++++++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.",
+".++++++++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.",
+"................................................................................................................................................................",
+".++++++++++++++++++++.++++++++++++++.++++++++++++++++++++++++++++++++++++++++++++++++...................+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.",
+".++++++++++++++++++++.++++++++++++++.++++++++++++++++++++++++++++++++++++++++++++++++...................+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.",
+".++++++++++++++++++++.++++++++++++++.++++++++++++++++++++++++++++++++++++++++++++++++...................+++++...+++++.+++++...+++++.+++++++.+++++.+++++.+++++++.",
+".++++++++++++++++++++.++++++++++.+++.++++++++++++++++++++++++++++++++++++++++++++++++....++..++...++....+++++.+++++++.+++++++.+++++.++++++.++++++.++++++.++++++.",
+".++...+.+++.+++.++.++.+.+++++.++.+.+.++++++++++++++++++++++++++++++++++++++++++++++++.....+.+..+.+..+...+++++.+++++++.+++++++.+++++.++++++.++++++.++++++.++++++.",
+".+.++++.++++++.+++.++.+.+++++.++.+.+.++++++++++++++++++++++++++++++++++++++++++++++++.....+....+....+...+++++.+++++++.+++++++.+++++.++++++.++++++.++++++.++++++.",
+".+.++++..++.+...+...+.+.+..+...+++.+.++++++++++++++++++++++++++++++++++++++++++++++++.....+....+....+...+++++.+++++++.+++++++.+++++.+++++.+++++++.+++++++.+++++.",
+".++..++.+.+.++.+++.++.+.+.+.+.++++.+.++++++++++++++++++++++++++++++++++++++++++++++++.....+...+...++....+++++.+++++++.+++++++.+++++.++++++.++++++.++++++.++++++.",
+".++++.+.+.+.++.+++.++.+.+.+.+.++++.+.++++++++++++++++++++++++++++++++++++++++++++++++.....+..+......+...+++++.+++++++.+++++++.+++++.++++++.++++++.++++++.++++++.",
+".++++.+.+.+.++.+++.++.+.+.+.+.++++.+.++++++++++++++++++++++++++++++++++++++++++++++++.....+.+.......+...+++++.+++++++.+++++++.+++++.++++++.++++++.++++++.++++++.",
+".+...++.+.+.++.++++.+.+.+.+.++.+++.+.++++++++++++++++++++++++++++++++++++++++++++++++.....+.+....+..+...+++++...+++++.+++++...+++++.+++++++.+++++.+++++.+++++++.",
+".++++++++++++++++++++.++++++++++++++.++++++++++++++++++++++++++++++++++++++++++++++++.....+.++++..++....+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.",
+".++++++++++++++++++++.++++++++++++++.++++++++++++++++++++++++++++++++++++++++++++++++...................+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.",
+".++++++++++++++++++++.++++++++++++++.++++++++++++++++++++++++++++++++++++++++++++++++...................+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.",
+"................................................................................................................................................................"};
+
+/* XPM */
+static char * keyctrl_xpm[] = {
+"160 61 3 1",
+" c None",
+". c #000000",
+"+ c #FFFFFF",
+"................................................................................................................................................................",
+".+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.++++++++++++++++++.",
+".+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.++++++++++++++++++.",
+".+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.++++++++++++++++++.",
+".+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.++++++.++++++.+++++++++++++.+++++++++++++.++++++.++++++.+++++++++++++.+++++++++++++.+....++....++...++.",
+".+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.++++++.++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+.++++.+++++.+++.+.",
+".+++++...+++++.++++.+++.++++.++++++..+++++.+++++.+.+++++.+++++....++++.+++++.++.++++.+++++.++.++++.++++++.++++++.++++++..+++++.+++++...+++++.+.++++.+++++.+++++.",
+".++++.++.+++++.++++.+++.++++.+++++.++.++++.+++++..++++++.++++++.++++++.+++++.++.++++.+++++.++.++++.++++++.++++++.+++++.++.++++.+++++.++.++++.+.++++.+++++.+++++.",
+".++++.++.+++++.++++.+.+.++++.+++++.++.++++.+++++.+++++++.++++++.++++++.+++++.++.++++.+++++.++.++++.++++++.++++++.+++++.++.++++.+++++.++.++++.+....++...++.+++++.",
+".++++.++.+++++.++++.+.+.++++.+++++....++++.+++++.+++++++.++++++.++++++.+++++.++.++++.+++++.++.++++.++++++.++++++.+++++.++.++++.+++++.++.++++.+.++++++++.+.+++++.",
+".+++++...+++++.+++++.+.+++++.+++++.+++++++.+++++.+++++++.++++++.+.++++.++++++...++++.+++++.++.++++.++++++.++++++.+++++.++.++++.+++++...+++++.+.++++++++.+.+++++.",
+".+++++++.+++++.+++++.+.+++++.++++++...++++.+++++.+++++++.+++++++.+++++.++++++++.++++.++++++..+++++.++++++.++++++.++++++..+++++.+++++.+++++++.+.++++++++.+.+++.+.",
+".+++++++.+++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.++++++..+++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++.+++++++.+....+....+++...++.",
+".+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.++++++++++++++++++.",
+".+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.++++++++++++++++++.",
+"................................................................................................................................................................",
+".+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.++++++++++++++++++.",
+".+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.++++++++++++++++++.",
+".+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.++++++++++++++++++.",
+".+++++++++++++.+++++++++++++.++++++++.++++.+++++++.+++++.+++++++++++++.+++++.+++++++.++++++++.++++.+++++.+++++++.++++++.++++++.+++++++++++++.++++++++++++++++++.",
+".+++++++++++++.+++++++++++++.++++++++.++++.++++++.+.++++.+++++++++++++.+++++.+++++++.+++++++++++++.+++++.+++++++.++++++.++++++.+++++++++++++.++++++.+++++++.+++.",
+".+++++..++++++.++++++..+++++.++++++...++++.++++++.++++++.++++++..+++++.+++++...+++++.++++++++.++++.+++++.++.++++.++++++.++++++.+++++++++++++.+++++..+++++++.+++.",
+".+++++++.+++++.+++++.++.++++.+++++.++.++++.+++++....++++.+++++.++.++++.+++++.++.++++.++++++++.++++.+++++.++.++++.++++++.++++++.+++++++++++++.++++...+++++++.+++.",
+".+++++...+++++.++++++.++++++.+++++.++.++++.++++++.++++++.+++++.++.++++.+++++.++.++++.++++++++.++++.+++++.+.+++++.++++++.++++++.+++++++++++++.+++............+++.",
+".++++.++.+++++.+++++++.+++++.+++++.++.++++.++++++.++++++.+++++.++.++++.+++++.++.++++.++++++++.++++.+++++..++++++.++++++.++++++.+++++++++++++.++++...+++++++++++.",
+".++++.++.+++++.+++++.++.++++.+++++.++.++++.++++++.++++++.++++++...++++.+++++.++.++++.++++++++.++++.+++++.+.+++++.++++++.++++++.+++++++++++++.+++++..+++++++++++.",
+".+++++...+++++.++++++..+++++.++++++...++++.++++++.++++++.++++++++.++++.+++++.++.++++.++++++.+.++++.+++++.++.++++.++++++.++++++.+++++++++++++.++++++.+++++++++++.",
+".+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++...+++++.+++++++++++++.+++++++.+++++.+++++++++++++.+++++++++++++.+++.......+++.++++++++++++++++++.",
+".+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.++++++++++++++++++.",
+".+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.++++++++++++++++++.",
+"................................................................................................................................................................",
+"....................+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.",
+"....................+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.",
+"....................+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++.+++++++.++++...++++++.+++++++++++++.",
+"....................+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++.+++++++.+++++++++++++.+++++++++++++.+++++.+++++++.++++++.++++++.+++++++++++++.",
+"...++..+......+.....+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++.+++++++.+++++++++++++.+++++++++++++.+++++.+++++++.++++++.++++++.++++++.++++++.",
+"..+..+.+......+.....+++++....++++.++++.+++.++++.++++++...++++.++++.+++.++++.+++++...+++++.+++++...+++++.+++++....++++.++++++.++++++.++++++.++++++.+++++.+.+++++.",
+"..+...+++.+.+.+.....++++++++.++++.+++++.+.+++++.+++++.+++++++.++++.+++.++++.+++++.++.++++.+++++.++.++++.+++++.+.+.+++.++++++.++++++.++++++.++++++.++++.+++.++++.",
+"..+....+..++..+.....+++++++.+++++.++++++.++++++.+++++.+++++++.+++++.+.+++++.+++++.++.++++.+++++.++.++++.+++++.+.+.+++.++++++.++++++.++++++.++++++.+++.+++++.+++.",
+"..+....+..+...+.....++++++.++++++.++++++.++++++.+++++.+++++++.+++++.+.+++++.+++++.++.++++.+++++.++.++++.+++++.+.+.+++.+++++++.+++++.++++++.++++++.++.+++++++.++.",
+"..+..+.+..+...+.....+++++.+++++++.+++++.+.+++++.+++++.+++++++.++++++.++++++.+++++.++.++++.+++++.++.++++.+++++.+.+.+++.+++++++.+++++.++++++.++++++.+++++++++++++.",
+"...++...+.+...+.....+++++....++++.++++.+++.++++.++++++...++++.++++++.++++++.+++++...+++++.+++++.++.++++.+++++.+.+.+++.+++++++.+++++.++++...++++++.+++++++++++++.",
+"....................+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.",
+"....................+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.",
+"....................+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.",
+"................................................................................................................................................................",
+".++++++++++++++++++++.++++++++++++++.++++++++++++++++++++++++++++++++++++++++++++++++.+++++++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.",
+".++++++++++++++++++++.++++++++++++++.++++++++++++++++++++++++++++++++++++++++++++++++.+++++++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.",
+".++++++++++++++++++++.++++++++++++++.++++++++++++++++++++++++++++++++++++++++++++++++.+++++++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+..++++++++++.",
+".++++++++++++++++++++.++++++++++.+++.++++++++++++++++++++++++++++++++++++++++++++++++.+++..++..+++..+++.+++++++++++++.+++++++++++++.+++++++++++++.+.+.+++++++++.",
+".++...+.+++.+++.++.++.+.+++++.++.+.+.++++++++++++++++++++++++++++++++++++++++++++++++.++++.+.++.+.++.++.+++++++++++++.+++++++++++++.+++++++++++++.+.+.+++++++++.",
+".+.++++.++++++.+++.++.+.+++++.++.+.+.++++++++++++++++++++++++++++++++++++++++++++++++.++++.++++.++++.++.+++++++++++++.+++++++++++++.+++++++++++++.+.+.+...+++++.",
+".+.++++..++.+...+...+.+.+..+...+++.+.++++++++++++++++++++++++++++++++++++++++++++++++.++++.++++.++++.++.+++++++++++++.+++++++++++++.+++++++++++++.+..++.+++++++.",
+".++..++.+.+.++.+++.++.+.+.+.+.++++.+.++++++++++++++++++++++++++++++++++++++++++++++++.++++.+++.+++..+++.+++++++++++++.+++++++++++++.+++++++++++++.+++++...+++++.",
+".++++.+.+.+.++.+++.++.+.+.+.+.++++.+.++++++++++++++++++++++++++++++++++++++++++++++++.++++.++.++++++.++.+++++++++++++.+++++++++++++.+++++++++++++.+++++.+++.+++.",
+".++++.+.+.+.++.+++.++.+.+.+.+.++++.+.++++++++++++++++++++++++++++++++++++++++++++++++.++++.+.+++++++.++.+++++++++++++.+++++++++++++.+++++++++++++.+++++...+.+++.",
+".+...++.+.+.++.++++.+.+.+.+.++.+++.+.++++++++++++++++++++++++++++++++++++++++++++++++.++++.+.++++.++.++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++.+++.",
+".++++++++++++++++++++.++++++++++++++.++++++++++++++++++++++++++++++++++++++++++++++++.++++.+....++..+++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++.+++.",
+".++++++++++++++++++++.++++++++++++++.++++++++++++++++++++++++++++++++++++++++++++++++.+++++++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++...+.",
+".++++++++++++++++++++.++++++++++++++.++++++++++++++++++++++++++++++++++++++++++++++++.+++++++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.+++++++++++++.",
+"................................................................................................................................................................"};
+#else // Resized
+/* XPM */
+static char * keynorm_xpm[] = {
+"241 92 3 1",
+" c None",
+". c #000000",
+"+ c #FFFFFF",
+".................................................................................................................................................................................................................................................",
+".................................................................................................................................................................................................................................................",
+"..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++.+++++++++++++++++++++++++++..",
+"..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++.+++++++++++++++++++++++++++..",
+"..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++.+++++++++++++++++++++++++++..",
+"..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++.+++++++++++++++++++++++++++..",
+"..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++.+++++++++..++++++++++++++++++++.++++++++++++++++++++.+++++++++..+++++++++.++++++++++++++++++++.++++++++++++++++++++.+++++++++++++++++++++++++++..",
+"..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++.+++++++++..++++++++++++++++++++.++++++++++++++++++++.+++++++++..+++++++++.++++++++++++++++++++.++++++++++++++++++++.+++++++++++++++++++++++++++..",
+"..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++.+++++++++..++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++.+++++++++..++++++++++++++++..",
+"..+++++++.....+++++++..++++++.+++++.++++++..+++++++++...+++++++..+++++++..+..+++++++..+++++++......++++++..+++++++..+++.+++++++.++++++++.+++..++++++.+++++++++..+++++++++.+++++++++...++++++++.++++++++....++++++++.++++++++...++++++++++++++++..",
+"..+++++++.....+++++++..++++++.+++++.++++++..+++++++++...+++++++..+++++++..+..+++++++..+++++++......++++++..+++++++..+++.+++++++.++++++++.+++..++++++.+++++++++..+++++++++.+++++++++...++++++++.++++++++....++++++++.++++++++...++++++++++++++++..",
+"..++++++.+++..+++++++..++++++.+++++.++++++..+++++++..+++.++++++..+++++++...+++++++++..+++++++++.+++++++++..+++++++..+++.+++++++.++++++++.+++..++++++.+++++++++..+++++++++.++++++++.+++..++++++.++++++++.+++..++++++.++++++.....++++++++++++++++..",
+"..++++++.+++..+++++++..++++++.++.++.++++++..+++++++..+++.++++++..+++++++..++++++++++..+++++++++.+++++++++..+++++++..+++.+++++++.++++++++.+++..++++++.+++++++++..+++++++++.++++++++.+++..++++++.++++++++.+++..++++++.+++++..................++++..",
+"..++++++.+++..+++++++..++++++.++.++.++++++..+++++++..+++.++++++..+++++++..++++++++++..+++++++++.+++++++++..+++++++..+++.+++++++.++++++++.+++..++++++.+++++++++..+++++++++.++++++++.+++..++++++.++++++++.+++..++++++.+++++..................++++..",
+"..++++++.+++..+++++++..++++++.++.++.++++++..+++++++......++++++..+++++++..++++++++++..+++++++++.+++++++++..+++++++..+++.+++++++.++++++++.+++..++++++.+++++++++..+++++++++.++++++++.+++..++++++.++++++++.+++..++++++.++++++.....++++++++++++++++..",
+"..+++++++.....+++++++..+++++++..+..+++++++..+++++++..++++++++++..+++++++..++++++++++..+++++++++.++.++++++..+++++++++....+++++++.++++++++.+++..++++++.+++++++++..+++++++++.++++++++.+++..++++++.++++++++....++++++++.++++++++...++++++++++++++++..",
+"..+++++++.....+++++++..+++++++..+..+++++++..+++++++..++++++++++..+++++++..++++++++++..+++++++++.++.++++++..+++++++++....+++++++.++++++++.+++..++++++.+++++++++..+++++++++.++++++++.+++..++++++.++++++++....++++++++.++++++++...++++++++++++++++..",
+"..++++++++++..+++++++..+++++++..+..+++++++..+++++++++....++++++..+++++++..++++++++++..++++++++++..+++++++..++++++++++++.+++++++.+++++++++...++++++++.+++++++++..+++++++++.+++++++++...++++++++.++++++++.+++++++++++.+++++++++..++++++++++++++++..",
+"..++++++++++..+++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++...++++++++.++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++.++++++++.+++++++++++.+++++++++++++++++++++++++++..",
+"..++++++++++..+++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++...++++++++.++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++.++++++++.+++++++++++.+++++++++++++++++++++++++++..",
+"..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++.+++++++++++++++++++++++++++..",
+"..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++.+++++++++++++++++++++++++++..",
+"..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++.+++++++++++++++++++++++++++..",
+".................................................................................................................................................................................................................................................",
+"..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++.+++++++++++++++++++++++++++..",
+"..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++.+++++++++++++++++++++++++++..",
+"..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++.+++++++++++++++++++++++++++..",
+"..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++.+++++++++++++++++++++++++++..",
+"..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++.+++++++++++++++++++++++++++..",
+"..+++++++++++++++++++..+++++++++++++++++++..++++++++++++.++++++..++++++++++..+++++++..+++++++++++++++++++..+++++++..+++++++++++.++++++++++++..++++++.++++++++.+++++++++++.+++++++++..+++++++++.++++++++++++++++++++.+++++++++++++++++++++++++++..",
+"..+++++++++++++++++++..+++++++++++++++++++..++++++++++++.++++++..+++++++++.++.++++++..+++++++++++++++++++..+++++++..+++++++++++.++++++++++++++++++++.++++++++.+++++++++++.+++++++++..+++++++++.++++++++++++++++++++.+++++++++..++++++++++..++++..",
+"..+++++++++++++++++++..+++++++++++++++++++..++++++++++++.++++++..+++++++++.++.++++++..+++++++++++++++++++..+++++++..+++++++++++.++++++++++++++++++++.++++++++.+++++++++++.+++++++++..+++++++++.++++++++++++++++++++.+++++++++..++++++++++..++++..",
+"..+++++++...+++++++++..+++++++++...+++++++..+++++++++....++++++..+++++++++.+++++++++..+++++++++...+++++++..+++++++.....++++++++.++++++++++++..++++++.++++++++.+++..++++++.+++++++++..+++++++++.++++++++++++++++++++.++++++++...++++++++++..++++..",
+"..++++++++++..+++++++..+++++++..+++.++++++..+++++++..+++.++++++..+++++++......++++++..+++++++..+++.++++++..+++++++..+++.+++++++.++++++++++++..++++++.++++++++.+++..++++++.+++++++++..+++++++++.++++++++++++++++++++.++++++.....++++++++++..++++..",
+"..++++++++++..+++++++..+++++++..+++.++++++..+++++++..+++.++++++..+++++++......++++++..+++++++..+++.++++++..+++++++..+++.+++++++.++++++++++++..++++++.++++++++.+++..++++++.+++++++++..+++++++++.++++++++++++++++++++.++++++.....++++++++++..++++..",
+"..+++++++.....+++++++..+++++++++.+++++++++..+++++++..+++.++++++..+++++++++.+++++++++..+++++++..+++.++++++..+++++++..+++.+++++++.++++++++++++..++++++.++++++++.++.++++++++.+++++++++..+++++++++.++++++........++++++.+++++..................++++..",
+"..++++++.+++..+++++++..++++++++++..+++++++..+++++++..+++.++++++..+++++++++.+++++++++..+++++++..+++.++++++..+++++++..+++.+++++++.++++++++++++..++++++.++++++++...+++++++++.+++++++++..+++++++++.++++++++++++++++++++.++++++.....++++++++++++++++..",
+"..++++++.+++..+++++++..++++++++++..+++++++..+++++++..+++.++++++..+++++++++.+++++++++..+++++++..+++.++++++..+++++++..+++.+++++++.++++++++++++..++++++.++++++++...+++++++++.+++++++++..+++++++++.++++++++++++++++++++.++++++.....++++++++++++++++..",
+"..++++++.+++..+++++++..+++++++..+++.++++++..+++++++..+++.++++++..+++++++++.+++++++++..+++++++++....++++++..+++++++..+++.+++++++.++++++++++++..++++++.++++++++.++.++++++++.+++++++++..+++++++++.++++++++++++++++++++.++++++++...++++++++++++++++..",
+"..+++++++.....+++++++..+++++++++...+++++++..+++++++++....++++++..+++++++++.+++++++++..++++++++++++.++++++..+++++++..+++.+++++++.+++++++++..+..++++++.++++++++.+++..++++++.+++++++++..+++++++++.++++++++++++++++++++.+++++++++..++++++++++++++++..",
+"..+++++++.....+++++++..+++++++++...+++++++..+++++++++....++++++..+++++++++.+++++++++..++++++++++++.++++++..+++++++..+++.+++++++.+++++++++..+..++++++.++++++++.+++..++++++.+++++++++..+++++++++.++++++++++++++++++++.+++++++++..++++++++++++++++..",
+"..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++.....+++++++..++++++++++++++++++++.+++++++++++.++++++++.++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++.+++++++++++++++++++++++++++..",
+"..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++.+++++++++++++++++++++++++++..",
+"..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++.+++++++++++++++++++++++++++..",
+"..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++.+++++++++++++++++++++++++++..",
+".................................................................................................................................................................................................................................................",
+".................................................................................................................................................................................................................................................",
+"..+++++++++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..",
+"..+++++++++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..",
+"..+++++++++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..",
+"..+++++++++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..",
+"..+++++++++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++.++++++++..++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..",
+"..+++++++++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++.++++++++..++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..",
+"..+++...+++.+++++++++..++++++.++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++.++++++++..++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++...+++++++++..",
+"..+..+++.++.+++++++++..++++++.++++++++......++++++.++++++..++++..++++++.+++++++++.....++++++.++++++..++++..++++++.++++++++.....+++++++..+++++++.....+++++++..+++++++......++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++...+++++++++..",
+"..+..+++.++.+++++++++..++++++.++++++++......++++++.++++++..++++..++++++.+++++++++.....++++++.++++++..++++..++++++.++++++++.....+++++++..+++++++.....+++++++..+++++++......++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++...+++++++++..",
+"..+..++++.....+..+..+..++++++.++++++++++++..++++++.++++++++.++.++++++++.++++++++.+++++++++++.++++++..++++..++++++.++++++++..+++.++++++..+++++++..+++.++++++..+++++++..+..+..++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..",
+"..+..++++++.+++...+++..++++++.+++++++++++.++++++++.+++++++++..+++++++++.++++++++.+++++++++++.++++++++.++.++++++++.++++++++..+++.++++++..+++++++..+++.++++++..+++++++..+..+..++++..+++++++++++++++++++..+++++++++++++++++++..+++++++...+++++++++..",
+"..+..++++++.+++...+++..++++++.+++++++++++.++++++++.+++++++++..+++++++++.++++++++.+++++++++++.++++++++.++.++++++++.++++++++..+++.++++++..+++++++..+++.++++++..+++++++..+..+..++++..+++++++++++++++++++..+++++++++++++++++++..+++++++...+++++++++..",
+"..+..++++++.+++..++++..++++++.+++++++++..+++++++++.+++++++++..+++++++++.++++++++.+++++++++++.++++++++.++.++++++++.++++++++..+++.++++++..+++++++..+++.++++++..+++++++..+..+..++++..+++++++...+++++++++..+++++++++...+++++++..+++++++...+++++++++..",
+"..+..+++.++.+++..++++..++++++.++++++++.+++++++++++.++++++++.++.++++++++.++++++++.+++++++++++.+++++++++..+++++++++.++++++++..+++.++++++..+++++++..+++.++++++..+++++++..+..+..++++..+++++++...+++++++++..+++++++++...+++++++..+++++++++.+++++++++..",
+"..+..+++.++.+++..++++..++++++.++++++++.+++++++++++.++++++++.++.++++++++.++++++++.+++++++++++.+++++++++..+++++++++.++++++++..+++.++++++..+++++++..+++.++++++..+++++++..+..+..++++..+++++++...+++++++++..+++++++++...+++++++..+++++++++.+++++++++..",
+"..+++...++++..+..++++..++++++.++++++++......++++++.++++++..++++..++++++.+++++++++.....++++++.+++++++++..+++++++++.++++++++.....+++++++..+++++++..+++.++++++..+++++++..+..+..++++..+++++++++.+++++++++..+++++++++++++++++++..+++++++..++++++++++..",
+"..+++++++++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++..++++++++++..+++++++++++++++++++..+++++++++++++++++++..",
+"..+++++++++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++..++++++++++..+++++++++++++++++++..+++++++++++++++++++..",
+"..+++++++++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..",
+"..+++++++++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..",
+"..+++++++++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..",
+".................................................................................................................................................................................................................................................",
+"..++++++++++++++++++++++++++++++.+++++++++++++++++++++..++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++..+++++++++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..",
+"..++++++++++++++++++++++++++++++.+++++++++++++++++++++..++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++..+++++++++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..",
+"..++++++++++++++++++++++++++++++.+++++++++++++++++++++..++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++..+++++++++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..",
+"..++++++++++++++++++++++++++++++.+++++++++++++++++++++..++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++..+++++++++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..",
+"..++++++++++++++++++++++++++++++.+++++++++++++++++++++..++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++..+++++++++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..",
+"..++++++++++++++++++++++++++++++.+++++++++++++++..++++..++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++..++++...+++...+++++...++++..+++++++++...+++++++..+++++++++++++++++++..+++++++..++++++++++..++++++++++++.++++++..",
+"..+++....++.+++++.+++++.+++..+++.++.++++++++.+++..+..+..++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++..++++++.++.+++..+..+++.+++..+++++++++...+++++++..+++++++++++++++++++..+++++++..++++++++++..++++++++++++.++++++..",
+"..+++....++.+++++.+++++.+++..+++.++.++++++++.+++..+..+..++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++..++++++.++.+++..+..+++.+++..+++++++++...+++++++..+++++++++++++++++++..+++++++..++++++++++..++++++++++++.++++++..",
+"..+..++++++.+++++++++..++++..+++.++.++++++++.+++..+..+..++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++..++++++.++++++..++++++.+++..++++++++++..+++++++..+++++++++++++++++++..+++++++..++++++++++..++++++++++++.++++++..",
+"..+..++++++...+++.++....++....++.++.++...+.....++++..+..++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++..++++++.++++++..++++++.+++..+++++++++.+++++++++..++++++.........++++..+++++++++.+++++++++..++++++++++..+++++++..",
+"..+..++++++...+++.++....++....++.++.++...+.....++++..+..++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++..++++++.++++++..++++++.+++..+++++++++.+++++++++..++++++.........++++..+++++++++.+++++++++..++++++++++..+++++++..",
+"..+++...+++.++.++.+++..++++..+++.++.++.++.++.++++++..+..++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++..++++++.+++++.+++++...++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++.+++++++++..++++++++++..+++++++..",
+"..++++++.++.++.++.+++..++++..+++.++.++.++.++.++++++..+..++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++..++++++.+++..+++++++++.+++..+++++++++++++++++++..++++++.........++++..+++++++++.+++++++++..++++++++++..+++++++..",
+"..++++++.++.++.++.+++..++++..+++.++.++.++.++.++++++..+..++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++..++++++.+++..+++++++++.+++..+++++++++++++++++++..++++++.........++++..+++++++++.+++++++++..++++++++++..+++++++..",
+"..++++++.++.++.++.+++..++++..+++.++.++.++.++.++++++..+..++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++..++++++.++.+++++++++++.+++..+++++++++++++++++++..+++++++++++++++++++..++++++++++..+++++++..+++++++++.+++++++++..",
+"..+.....+++.++.++.+++..++++++.++.++.++.++.+++..++++..+..++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++..++++++.++.++++++..+++.+++..+++++++++++++++++++..+++++++++++++++++++..++++++++++..+++++++..+++++++++.+++++++++..",
+"..+.....+++.++.++.+++..++++++.++.++.++.++.+++..++++..+..++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++..++++++.++.++++++..+++.+++..+++++++++++++++++++..+++++++++++++++++++..++++++++++..+++++++..+++++++++.+++++++++..",
+"..++++++++++++++++++++++++++++++.+++++++++++++++++++++..++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++..++++++.++......+++...++++..+++++++++++++++++++..+++++++++++++++++++..++++++++++..+++++++..+++++++++.+++++++++..",
+"..++++++++++++++++++++++++++++++.+++++++++++++++++++++..++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++..+++++++++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..",
+"..++++++++++++++++++++++++++++++.+++++++++++++++++++++..++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++..+++++++++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..",
+"..++++++++++++++++++++++++++++++.+++++++++++++++++++++..++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++..+++++++++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..",
+".................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................."};
+/* XPM */
+static char * keyshft_xpm[] = {
+"241 92 3 1",
+" c None",
+". c #000000",
+"+ c #FFFFFF",
+".................................................................................................................................................................................................................................................",
+".................................................................................................................................................................................................................................................",
+"..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++.+++++++++++++++++++++++++++..",
+"..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++.+++++++++++++++++++++++++++..",
+"..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++.+++++++++++++++++++++++++++..",
+"..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++.+++++++++++++++++++++++++++..",
+"..+++++++.....+++++++..++++..+++.+++..++++..+++++++......++++++..+++++++......++++++..++++++.......++++++..++++++.+++++.+++++++.++++++..++++..++++++.+++++++++..+++++++++.++++++++....++++++++.++++++++......++++++.+++++++++++++++++++++++++++..",
+"..+++++++.....+++++++..++++..+++.+++..++++..+++++++......++++++..+++++++......++++++..++++++.......++++++..++++++.+++++.+++++++.++++++..++++..++++++.+++++++++..+++++++++.++++++++....++++++++.++++++++......++++++.+++++++++++++++++++++++++++..",
+"..++++++.+++++.++++++..++++..+++.+++..++++..+++++++..++++++++++..+++++++..++++..++++..+++++++++.+++++++++..++++++.+++++.+++++++.++++++..++++..++++++.+++++++++..+++++++++.++++++..++++..++++++.++++++++.+++++.+++++.+++++++++..++++++++++++++++..",
+"..++++++.+++++.++++++..++++..+++.+++..++++..+++++++..++++++++++..+++++++..++++..++++..+++++++++.+++++++++..++++++.+++++.+++++++.++++++..++++..++++++.+++++++++..+++++++++.++++++..++++..++++++.++++++++.+++++.+++++.++++++++...++++++++++++++++..",
+"..++++++.+++++.++++++..++++..+++.+++..++++..+++++++..++++++++++..+++++++..++++..++++..+++++++++.+++++++++..++++++.+++++.+++++++.++++++..++++..++++++.+++++++++..+++++++++.++++++..++++..++++++.++++++++.+++++.+++++.++++++++...++++++++++++++++..",
+"..++++++.+++++.++++++..++++..+++.+++..++++..+++++++..++++++++++..+++++++..++++..++++..+++++++++.+++++++++..+++++++..+..++++++++.++++++..++++..++++++.+++++++++..+++++++++.++++++..++++..++++++.++++++++.+++++.+++++.++++++.....++++++++++++++++..",
+"..++++++...+++.++++++..++++..+..+..+..++++..+++++++......++++++..+++++++......++++++..+++++++++.+++++++++..+++++++++.++++++++++.++++++..++++..++++++.+++++++++..+++++++++.++++++..++++..++++++.++++++++......++++++.+++++..................++++..",
+"..++++++...+++.++++++..++++..+..+..+..++++..+++++++......++++++..+++++++......++++++..+++++++++.+++++++++..+++++++++.++++++++++.++++++..++++..++++++.+++++++++..+++++++++.++++++..++++..++++++.++++++++......++++++.+++++..................++++..",
+"..++++++.++.++.++++++..++++..+..+..+..++++..+++++++..++++++++++..+++++++..++++..++++..+++++++++.+++++++++..+++++++++.++++++++++.++++++..++++..++++++.+++++++++..+++++++++.++++++..++++..++++++.++++++++.+++++++++++.++++++.....++++++++++++++++..",
+"..++++++.+++...++++++..++++..+..+..+..++++..+++++++..++++++++++..+++++++..++++..++++..+++++++++.+++++++++..+++++++++.++++++++++.++++++..++++..++++++.+++++++++..+++++++++.++++++..++++..++++++.++++++++.+++++++++++.++++++++...++++++++++++++++..",
+"..++++++.+++...++++++..++++..+..+..+..++++..+++++++..++++++++++..+++++++..++++..++++..+++++++++.+++++++++..+++++++++.++++++++++.++++++..++++..++++++.+++++++++..+++++++++.++++++..++++..++++++.++++++++.+++++++++++.++++++++...++++++++++++++++..",
+"..++++++.+++++.++++++..++++++.+++++.++++++..+++++++..++++++++++..+++++++..++++..++++..+++++++++.+++++++++..+++++++++.++++++++++.++++++..++++..++++++.+++++++++..+++++++++.++++++..++++..++++++.++++++++.+++++++++++.+++++++++..++++++++++++++++..",
+"..+++++++.....+..++++..++++++.+++++.++++++..+++++++......++++++..+++++++..++++..++++..+++++++++.+++++++++..+++++++++.++++++++++.++++++++....++++++++.+++++++++..+++++++++.++++++++....++++++++.++++++++.+++++++++++.+++++++++++++++++++++++++++..",
+"..+++++++.....+..++++..++++++.+++++.++++++..+++++++......++++++..+++++++..++++..++++..+++++++++.+++++++++..+++++++++.++++++++++.++++++++....++++++++.+++++++++..+++++++++.++++++++....++++++++.++++++++.+++++++++++.+++++++++++++++++++++++++++..",
+"..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++.+++++++++++++++++++++++++++..",
+"..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++.+++++++++++++++++++++++++++..",
+"..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++.+++++++++++++++++++++++++++..",
+".................................................................................................................................................................................................................................................",
+"..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++.+++++++++++++++++++++++++++..",
+"..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++.+++++++++++++++++++++++++++..",
+"..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++.+++++++++++++++++++++++++++..",
+"..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++.+++++++++++++++++++++++++++..",
+"..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++.+++++++++++++++++++++++++++..",
+"..+++++++.....+++++++..+++++++......++++++..++++++......+++++++..+++++++......++++++..+++++++.....+++++++..++++++.+++++.+++++++.++++++........++++++.++++++..++++..++++++.++++++..++++++++++++.++++++++++++++++++++.+++++++++++++++++++++++++++..",
+"..++++++.+++++.++++++..++++++.++++++++++++..++++++.+++++.++++++..+++++++..++++++++++..++++++.++++++++++++..++++++.+++++.+++++++.+++++++++++.++++++++.++++++..++++..++++++.++++++..++++++++++++.++++++++++++++++++++.+++++++++..++++++++++..++++..",
+"..++++++.+++++.++++++..++++++.++++++++++++..++++++.+++++.++++++..+++++++..++++++++++..++++++.++++++++++++..++++++.+++++.+++++++.+++++++++++.++++++++.++++++..++++..++++++.++++++..++++++++++++.++++++++++++++++++++.+++++++++..++++++++++..++++..",
+"..++++++.+++++.++++++..++++++.++++++++++++..++++++.+++++.++++++..+++++++..++++++++++..++++++.++++++++++++..++++++.+++++.+++++++.+++++++++++.++++++++.++++++..+++.++++++++.++++++..++++++++++++.++++++++++++++++++++.++++++++...++++++++++..++++..",
+"..++++++.+++++.++++++..++++++.++++++++++++..++++++.+++++.++++++..+++++++..++++++++++..++++++.++++++++++++..++++++.+++++.+++++++.+++++++++++.++++++++.++++++..+..+++++++++.++++++..++++++++++++.++++++++++++++++++++.++++++.....++++++++++..++++..",
+"..++++++.+++++.++++++..++++++.++++++++++++..++++++.+++++.++++++..+++++++..++++++++++..++++++.++++++++++++..++++++.+++++.+++++++.+++++++++++.++++++++.++++++..+..+++++++++.++++++..++++++++++++.++++++++++++++++++++.++++++.....++++++++++..++++..",
+"..++++++.+++++.++++++..+++++++.....+++++++..++++++.+++++.++++++..+++++++......++++++..++++++.++....++++++..++++++.......+++++++.+++++++++++.++++++++.++++++...+++++++++++.++++++..++++++++++++.++++++++++++++++++++.+++++..................++++..",
+"..++++++.......++++++..++++++++++++.++++++..++++++.+++++.++++++..+++++++..++++++++++..++++++.+++++.++++++..++++++.+++++.+++++++.+++++++++++.++++++++.++++++..+..+++++++++.++++++..++++++++++++.++++++++++++++++++++.++++++.....++++++++++++++++..",
+"..++++++.......++++++..++++++++++++.++++++..++++++.+++++.++++++..+++++++..++++++++++..++++++.+++++.++++++..++++++.+++++.+++++++.+++++++++++.++++++++.++++++..+..+++++++++.++++++..++++++++++++.++++++++++++++++++++.++++++.....++++++++++++++++..",
+"..++++++.+++++.++++++..++++++++++++.++++++..++++++.+++++.++++++..+++++++..++++++++++..++++++.+++++.++++++..++++++.+++++.+++++++.+++++++++++.++++++++.++++++..+++.++++++++.++++++..++++++++++++.++++++++++++++++++++.++++++++...++++++++++++++++..",
+"..++++++.+++++.++++++..++++++++++++.++++++..++++++.+++++.++++++..+++++++..++++++++++..++++++.+++++.++++++..++++++.+++++.+++++++.++++++..+++.++++++++.++++++..++++..++++++.++++++..++++++++++++.++++++++++++++++++++.+++++++++..++++++++++++++++..",
+"..++++++.+++++.++++++..++++++++++++.++++++..++++++.+++++.++++++..+++++++..++++++++++..++++++.+++++.++++++..++++++.+++++.+++++++.++++++..+++.++++++++.++++++..++++..++++++.++++++..++++++++++++.++++++++++++++++++++.+++++++++..++++++++++++++++..",
+"..++++++.+++++.++++++..++++++......+++++++..++++++......+++++++..+++++++..++++++++++..+++++++.....+++++++..++++++.+++++.+++++++.++++++++...+++++++++.++++++..++++..++++++.++++++........++++++.+++++..........+++++.+++++++++++++++++++++++++++..",
+"..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++.+++++++++++++++++++++++++++..",
+"..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++.+++++++++++++++++++++++++++..",
+"..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++.+++++++++++++++++++++++++++..",
+".................................................................................................................................................................................................................................................",
+".................................................................................................................................................................................................................................................",
+"..+++++++++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..",
+"..+++++++++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..",
+"..+++++++++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..",
+"..+++++++++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..",
+"..+++++++++++++++++++++++++++.++++++........++++++.++++++..++++..++++++.++++++++....++++++++.++++++..++++..++++++.++++++.......+++++++..++++++.++++++..++++..++++..+++++++..++++..++++++++++++.++++++..+++++++..++++++++++..+++++++++++++++++++..",
+"..+++++++++++++++++++++++++++.++++++........++++++.++++++..++++..++++++.++++++++....++++++++.++++++..++++..++++++.++++++.......+++++++..++++++.++++++..++++..++++..+++++++..++++..++++++++++++.++++++..+++++++..++++++++++..+++++++++++++++++++..",
+"..+++...+++.+++++++++..++++++.++++++++++++..++++++.++++++..++++..++++++.++++++..++++..++++++.++++++..++++..++++++.++++++..+++++.++++++..++++++...++++..++++..++++...+++++...++++..++++++++++..+++++++..+++++++++.+++++++++..+++++++++++++++++++..",
+"..+..+++.++.+++++++++..++++++.++++++++++++..++++++.++++++..++++..++++++.++++++..++++++++++++.++++++..++++..++++++.++++++..+++++.++++++..++++++...++++..++++..++++..+..+..+..++++..+++++++++.+++++++++..++++++++++..+++++++..+++++++++...+++++++..",
+"..+..+++.++.+++++++++..++++++.++++++++++++..++++++.++++++..++++..++++++.++++++..++++++++++++.++++++..++++..++++++.++++++..+++++.++++++..++++++...++++..++++..++++..+..+..+..++++..+++++++++.+++++++++..++++++++++..+++++++..+++++++++...+++++++..",
+"..+..++++.....+..+..+..++++++.+++++++++++.++++++++.++++++++.++.++++++++.++++++..++++++++++++.++++++++.++.++++++++.++++++..+++++.++++++..++++++.++.+++..++++..++++..+++.+++..++++..+++++++..++++++++++..++++++++++++.++++++..+++++++++...+++++++..",
+"..+..++++++.+++...+++..++++++.+++++++++..+++++++++.+++++++++..+++++++++.++++++..++++++++++++.++++++++.++.++++++++.++++++.......+++++++..++++++.++.+++..++++..++++..+++++++..++++..++++++.++++++++++++..+++++++++++++..++++..+++++++++++++++++++..",
+"..+..++++++.+++...+++..++++++.+++++++++..+++++++++.+++++++++..+++++++++.++++++..++++++++++++.++++++++.++.++++++++.++++++.......+++++++..++++++.++.+++..++++..++++..+++++++..++++..++++++.++++++++++++..+++++++++++++..++++..+++++++++++++++++++..",
+"..+..++++++.+++..++++..++++++.++++++++.+++++++++++.++++++++.++.++++++++.++++++..++++++++++++.++++++++.++.++++++++.++++++..+++++.++++++..++++++.+++..+..++++..++++..+++++++..++++..+++++++..++++++++++..++++++++++++.++++++..+++++++++...+++++++..",
+"..+..+++.++.+++..++++..++++++.++++++..++++++++++++.++++++..++++..++++++.++++++..++++++++++++.+++++++++..+++++++++.++++++..+++++.++++++..++++++.+++..+..++++..++++..+++++++..++++..+++++++++.+++++++++..++++++++++..+++++++..+++++++++...+++++++..",
+"..+..+++.++.+++..++++..++++++.++++++..++++++++++++.++++++..++++..++++++.++++++..++++++++++++.+++++++++..+++++++++.++++++..+++++.++++++..++++++.+++..+..++++..++++..+++++++..++++..+++++++++.+++++++++..++++++++++..+++++++..+++++++++...+++++++..",
+"..+++...++++..+..++++..++++++.++++++..++++++++++++.++++++..++++..++++++.++++++..++++..++++++.+++++++++..+++++++++.++++++..+++++.++++++..++++++.+++++...++++..++++..+++++++..++++..++++++++++..+++++++..+++++++++.+++++++++..+++++++++++++++++++..",
+"..+++++++++++++++++++++++++++.++++++........++++++.++++++..++++..++++++.++++++++....++++++++.+++++++++..+++++++++.++++++.......+++++++..++++++.+++++...++++..++++..+++++++..++++..++++++++++++.++++++..+++++++..++++++++++..+++++++++++++++++++..",
+"..+++++++++++++++++++++++++++.++++++........++++++.++++++..++++..++++++.++++++++....++++++++.+++++++++..+++++++++.++++++.......+++++++..++++++.+++++...++++..++++..+++++++..++++..++++++++++++.++++++..+++++++..++++++++++..+++++++++++++++++++..",
+"..+++++++++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..",
+"..+++++++++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..",
+"..+++++++++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..",
+".................................................................................................................................................................................................................................................",
+".................................+++++++++++++++++++++..++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++..+++++++++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..",
+".................................+++++++++++++++++++++..++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++..+++++++++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..",
+".................................+++++++++++++++++++++..++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++..+++++++++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..",
+".................................+++++++++++++++++++++..++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++..+++++++++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..",
+".................................+++++++++++++++++++++..++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++..+++++++++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..",
+"...........................++....+++++++++++++++..++++..++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++..++++...+++...+++++...++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++.+++++++++..+++++++.....+++++++..",
+".....++++..+.....+.....+...++....++.++++++++.+++..+..+..++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++..++++++.++.+++..+..+++.+++..+++++++..+..+++++++..+++++++++.+++++++++..+++++++++.+++++++++..++++++.+++++.++++++..",
+".....++++..+.....+.....+...++....++.++++++++.+++..+..+..++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++..++++++.++.+++..+..+++.+++..+++++++..+..+++++++..+++++++++.+++++++++..+++++++++.+++++++++..++++++.+++++.++++++..",
+"...++......+.........++....++....++.++++++++.+++..+..+..++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++..++++++.++++++..++++++.+++..+++++++..+..+++++++..+++++++++.+++++++++..+++++++++.+++++++++..++++++++++++.++++++..",
+"...++......+++...+..++++..++++...++.++...+.....++++..+..++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++..++++++.++++++..++++++.+++..+++++++..+..+++++++..+++++++++.+++++++++..+++++++++.+++++++++..++++++++++++.++++++..",
+"...++......+++...+..++++..++++...++.++...+.....++++..+..++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++..++++++.++++++..++++++.+++..+++++++..+..+++++++..+++++++++.+++++++++..+++++++++.+++++++++..++++++++++++.++++++..",
+".....+++...+..+..+...++....++....++.++.++.++.++++++..+..++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++..++++++.+++++.+++++...++++..+++++++++++++++++++..++++...........++++..+++++++++.+++++++++..++++++++++..+++++++..",
+"........+..+..+..+...++....++....++.++.++.++.++++++..+..++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++..++++++.+++..+++++++++.+++..+++++++++++++++++++..+++++++++.+++++++++..+++++++++.+++++++++..+++++++++.+++++++++..",
+"........+..+..+..+...++....++....++.++.++.++.++++++..+..++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++..++++++.+++..+++++++++.+++..+++++++++++++++++++..+++++++++.+++++++++..+++++++++.+++++++++..+++++++++.+++++++++..",
+"........+..+..+..+...++....++....++.++.++.++.++++++..+..++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++..++++++.++.+++++++++++.+++..+++++++++++++++++++..+++++++++.+++++++++..+++++++++.+++++++++..+++++++++.+++++++++..",
+"...+++++...+..+..+...++......+...++.++.++.+++..++++..+..++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++..++++++.++.++++++..+++.+++..+++++++++++++++++++..+++++++++.+++++++++..+++++++++.+++++++++..+++++++++++++++++++..",
+"...+++++...+..+..+...++......+...++.++.++.+++..++++..+..++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++..++++++.++.++++++..+++.+++..+++++++++++++++++++..+++++++++.+++++++++..+++++++++.+++++++++..+++++++++++++++++++..",
+".................................+++++++++++++++++++++..++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++..++++++.++......+++...++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++.+++++++++..+++++++++.+++++++++..",
+".................................+++++++++++++++++++++..++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++..+++++++++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..",
+".................................+++++++++++++++++++++..++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++..+++++++++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..",
+".................................+++++++++++++++++++++..++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++..+++++++++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..",
+".................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................."};
+/* XPM */
+static char * keyctrl_xpm[] = {
+"241 92 3 1",
+" c None",
+". c #000000",
+"+ c #FFFFFF",
+".................................................................................................................................................................................................................................................",
+".................................................................................................................................................................................................................................................",
+"..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++.+++++++++++++++++++++++++++..",
+"..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++.+++++++++++++++++++++++++++..",
+"..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++.+++++++++++++++++++++++++++..",
+"..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++.+++++++++++++++++++++++++++..",
+"..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++.+++++++++..++++++++++++++++++++.++++++++++++++++++++.+++++++++..+++++++++.++++++++++++++++++++.++++++++++++++++++++.++......+++......+++....+++..",
+"..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++.+++++++++..++++++++++++++++++++.++++++++++++++++++++.+++++++++..+++++++++.++++++++++++++++++++.++++++++++++++++++++.++......+++......+++....+++..",
+"..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++.+++++++++..++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++.++.++++++..+++++++..++++..+..",
+"..+++++++.....+++++++..++++++.+++++.++++++..+++++++++...+++++++..+++++++..+..+++++++..+++++++......++++++..+++++++..+++.+++++++.++++++++.+++..++++++.+++++++++..+++++++++.+++++++++...++++++++.++++++++....++++++++.++.++++++..+++++++..+++++++..",
+"..+++++++.....+++++++..++++++.+++++.++++++..+++++++++...+++++++..+++++++..+..+++++++..+++++++......++++++..+++++++..+++.+++++++.++++++++.+++..++++++.+++++++++..+++++++++.+++++++++...++++++++.++++++++....++++++++.++.++++++..+++++++..+++++++..",
+"..++++++.+++..+++++++..++++++.+++++.++++++..+++++++..+++.++++++..+++++++...+++++++++..+++++++++.+++++++++..+++++++..+++.+++++++.++++++++.+++..++++++.+++++++++..+++++++++.++++++++.+++..++++++.++++++++.+++..++++++.++.++++++..+++++++..+++++++..",
+"..++++++.+++..+++++++..++++++.++.++.++++++..+++++++..+++.++++++..+++++++..++++++++++..+++++++++.+++++++++..+++++++..+++.+++++++.++++++++.+++..++++++.+++++++++..+++++++++.++++++++.+++..++++++.++++++++.+++..++++++.++......+++....+++..+++++++..",
+"..++++++.+++..+++++++..++++++.++.++.++++++..+++++++..+++.++++++..+++++++..++++++++++..+++++++++.+++++++++..+++++++..+++.+++++++.++++++++.+++..++++++.+++++++++..+++++++++.++++++++.+++..++++++.++++++++.+++..++++++.++......+++....+++..+++++++..",
+"..++++++.+++..+++++++..++++++.++.++.++++++..+++++++......++++++..+++++++..++++++++++..+++++++++.+++++++++..+++++++..+++.+++++++.++++++++.+++..++++++.+++++++++..+++++++++.++++++++.+++..++++++.++++++++.+++..++++++.++.++++++++++++..+..+++++++..",
+"..+++++++.....+++++++..+++++++..+..+++++++..+++++++..++++++++++..+++++++..++++++++++..+++++++++.++.++++++..+++++++++....+++++++.++++++++.+++..++++++.+++++++++..+++++++++.++++++++.+++..++++++.++++++++....++++++++.++.++++++++++++..+..+++++++..",
+"..+++++++.....+++++++..+++++++..+..+++++++..+++++++..++++++++++..+++++++..++++++++++..+++++++++.++.++++++..+++++++++....+++++++.++++++++.+++..++++++.+++++++++..+++++++++.++++++++.+++..++++++.++++++++....++++++++.++.++++++++++++..+..+++++++..",
+"..++++++++++..+++++++..+++++++..+..+++++++..+++++++++....++++++..+++++++..++++++++++..++++++++++..+++++++..++++++++++++.+++++++.+++++++++...++++++++.+++++++++..+++++++++.+++++++++...++++++++.++++++++.+++++++++++.++.++++++++++++..+..++++..+..",
+"..++++++++++..+++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++...++++++++.++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++.++++++++.+++++++++++.++......+......+++++....+++..",
+"..++++++++++..+++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++...++++++++.++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++.++++++++.+++++++++++.++......+......+++++....+++..",
+"..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++.+++++++++++++++++++++++++++..",
+"..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++.+++++++++++++++++++++++++++..",
+"..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++.+++++++++++++++++++++++++++..",
+".................................................................................................................................................................................................................................................",
+"..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++.+++++++++++++++++++++++++++..",
+"..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++.+++++++++++++++++++++++++++..",
+"..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++.+++++++++++++++++++++++++++..",
+"..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++.+++++++++++++++++++++++++++..",
+"..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++.+++++++++++++++++++++++++++..",
+"..+++++++++++++++++++..+++++++++++++++++++..++++++++++++.++++++..++++++++++..+++++++..+++++++++++++++++++..+++++++..+++++++++++.++++++++++++..++++++.++++++++.+++++++++++.+++++++++..+++++++++.++++++++++++++++++++.+++++++++++++++++++++++++++..",
+"..+++++++++++++++++++..+++++++++++++++++++..++++++++++++.++++++..+++++++++.++.++++++..+++++++++++++++++++..+++++++..+++++++++++.++++++++++++++++++++.++++++++.+++++++++++.+++++++++..+++++++++.++++++++++++++++++++.+++++++++..++++++++++..++++..",
+"..+++++++++++++++++++..+++++++++++++++++++..++++++++++++.++++++..+++++++++.++.++++++..+++++++++++++++++++..+++++++..+++++++++++.++++++++++++++++++++.++++++++.+++++++++++.+++++++++..+++++++++.++++++++++++++++++++.+++++++++..++++++++++..++++..",
+"..+++++++...+++++++++..+++++++++...+++++++..+++++++++....++++++..+++++++++.+++++++++..+++++++++...+++++++..+++++++.....++++++++.++++++++++++..++++++.++++++++.+++..++++++.+++++++++..+++++++++.++++++++++++++++++++.++++++++...++++++++++..++++..",
+"..++++++++++..+++++++..+++++++..+++.++++++..+++++++..+++.++++++..+++++++......++++++..+++++++..+++.++++++..+++++++..+++.+++++++.++++++++++++..++++++.++++++++.+++..++++++.+++++++++..+++++++++.++++++++++++++++++++.++++++.....++++++++++..++++..",
+"..++++++++++..+++++++..+++++++..+++.++++++..+++++++..+++.++++++..+++++++......++++++..+++++++..+++.++++++..+++++++..+++.+++++++.++++++++++++..++++++.++++++++.+++..++++++.+++++++++..+++++++++.++++++++++++++++++++.++++++.....++++++++++..++++..",
+"..+++++++.....+++++++..+++++++++.+++++++++..+++++++..+++.++++++..+++++++++.+++++++++..+++++++..+++.++++++..+++++++..+++.+++++++.++++++++++++..++++++.++++++++.++.++++++++.+++++++++..+++++++++.++++++++++++++++++++.+++++..................++++..",
+"..++++++.+++..+++++++..++++++++++..+++++++..+++++++..+++.++++++..+++++++++.+++++++++..+++++++..+++.++++++..+++++++..+++.+++++++.++++++++++++..++++++.++++++++...+++++++++.+++++++++..+++++++++.++++++++++++++++++++.++++++.....++++++++++++++++..",
+"..++++++.+++..+++++++..++++++++++..+++++++..+++++++..+++.++++++..+++++++++.+++++++++..+++++++..+++.++++++..+++++++..+++.+++++++.++++++++++++..++++++.++++++++...+++++++++.+++++++++..+++++++++.++++++++++++++++++++.++++++.....++++++++++++++++..",
+"..++++++.+++..+++++++..+++++++..+++.++++++..+++++++..+++.++++++..+++++++++.+++++++++..+++++++++....++++++..+++++++..+++.+++++++.++++++++++++..++++++.++++++++.++.++++++++.+++++++++..+++++++++.++++++++++++++++++++.++++++++...++++++++++++++++..",
+"..+++++++.....+++++++..+++++++++...+++++++..+++++++++....++++++..+++++++++.+++++++++..++++++++++++.++++++..+++++++..+++.+++++++.+++++++++..+..++++++.++++++++.+++..++++++.+++++++++..+++++++++.++++++++++++++++++++.+++++++++..++++++++++++++++..",
+"..+++++++.....+++++++..+++++++++...+++++++..+++++++++....++++++..+++++++++.+++++++++..++++++++++++.++++++..+++++++..+++.+++++++.+++++++++..+..++++++.++++++++.+++..++++++.+++++++++..+++++++++.++++++++++++++++++++.+++++++++..++++++++++++++++..",
+"..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++.....+++++++..++++++++++++++++++++.+++++++++++.++++++++.++++++++++++++++++++.++++++++++++++++++++.+++++..........+++++.+++++++++++++++++++++++++++..",
+"..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++.+++++++++++++++++++++++++++..",
+"..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++.+++++++++++++++++++++++++++..",
+"..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++.+++++++++++++++++++++++++++..",
+".................................................................................................................................................................................................................................................",
+".................................................................................................................................................................................................................................................",
+"..............................++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..",
+"..............................++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..",
+"..............................++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..",
+"..............................++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++..++++++++++..++++++....+++++++++..+++++++++++++++++++..",
+"..............................++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++.++++++++..++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++..++++++++++..+++++++++.+++++++++..+++++++++++++++++++..",
+"..............................++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++.++++++++..++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++..++++++++++..+++++++++.+++++++++..+++++++++++++++++++..",
+".....+++...+.........++.......++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++.++++++++..++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++..++++++++++..+++++++++.+++++++++..+++++++++.+++++++++..",
+"...++...+..+.........++.......++++++++......++++++.++++++..++++..++++++.+++++++++.....++++++.++++++..++++..++++++.++++++++.....+++++++..+++++++.....+++++++..+++++++......++++++..+++++++++.+++++++++..+++++++++.+++++++++..+++++++..+..+++++++..",
+"...++...+..+.........++.......++++++++......++++++.++++++..++++..++++++.+++++++++.....++++++.++++++..++++..++++++.++++++++.....+++++++..+++++++.....+++++++..+++++++......++++++..+++++++++.+++++++++..+++++++++.+++++++++..+++++++..+..+++++++..",
+"...++....+++++.++.++.++.......++++++++++++..++++++.++++++++.++.++++++++.++++++++.+++++++++++.++++++..++++..++++++.++++++++..+++.++++++..+++++++..+++.++++++..+++++++..+..+..++++..+++++++++.+++++++++..+++++++++.+++++++++..++++++.+++++.++++++..",
+"...++......+...+++...++.......+++++++++++.++++++++.+++++++++..+++++++++.++++++++.+++++++++++.++++++++.++.++++++++.++++++++..+++.++++++..+++++++..+++.++++++..+++++++..+..+..++++..+++++++++.+++++++++..+++++++++.+++++++++..++++..+++++++..++++..",
+"...++......+...+++...++.......+++++++++++.++++++++.+++++++++..+++++++++.++++++++.+++++++++++.++++++++.++.++++++++.++++++++..+++.++++++..+++++++..+++.++++++..+++++++..+..+..++++..+++++++++.+++++++++..+++++++++.+++++++++..++++..+++++++..++++..",
+"...++......+...++....++.......+++++++++..+++++++++.+++++++++..+++++++++.++++++++.+++++++++++.++++++++.++.++++++++.++++++++..+++.++++++..+++++++..+++.++++++..+++++++..+..+..++++..++++++++++..+++++++..+++++++++.+++++++++..+++.+++++++++++.+++..",
+"...++...+..+...++....++.......++++++++.+++++++++++.++++++++.++.++++++++.++++++++.+++++++++++.+++++++++..+++++++++.++++++++..+++.++++++..+++++++..+++.++++++..+++++++..+..+..++++..++++++++++..+++++++..+++++++++.+++++++++..+++++++++++++++++++..",
+"...++...+..+...++....++.......++++++++.+++++++++++.++++++++.++.++++++++.++++++++.+++++++++++.+++++++++..+++++++++.++++++++..+++.++++++..+++++++..+++.++++++..+++++++..+..+..++++..++++++++++..+++++++..+++++++++.+++++++++..+++++++++++++++++++..",
+".....+++....++.++....++.......++++++++......++++++.++++++..++++..++++++.+++++++++.....++++++.+++++++++..+++++++++.++++++++.....+++++++..+++++++..+++.++++++..+++++++..+..+..++++..++++++++++..+++++++..++++++....+++++++++..+++++++++++++++++++..",
+"..............................++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..",
+"..............................++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..",
+"..............................++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..",
+"..............................++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..",
+"..............................++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..",
+".................................................................................................................................................................................................................................................",
+"..++++++++++++++++++++++++++++++.+++++++++++++++++++++..++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++..+++++++++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..",
+"..++++++++++++++++++++++++++++++.+++++++++++++++++++++..++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++..+++++++++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..",
+"..++++++++++++++++++++++++++++++.+++++++++++++++++++++..++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++..+++++++++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..",
+"..++++++++++++++++++++++++++++++.+++++++++++++++++++++..++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++..+++++++++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+...+++++++++++++++..",
+"..++++++++++++++++++++++++++++++.+++++++++++++++++++++..++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++..+++++++++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+...+++++++++++++++..",
+"..++++++++++++++++++++++++++++++.+++++++++++++++..++++..++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++..++++...+++...+++++...++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+..+..+++++++++++++..",
+"..+++....++.+++++.+++++.+++..+++.++.++++++++.+++..+..+..++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++..++++++.++.+++..+..+++.+++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+..+..+++++++++++++..",
+"..+++....++.+++++.+++++.+++..+++.++.++++++++.+++..+..+..++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++..++++++.++.+++..+..+++.+++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+..+..+++++++++++++..",
+"..+..++++++.+++++++++..++++..+++.++.++++++++.+++..+..+..++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++..++++++.++++++..++++++.+++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+..+..+.....+++++++..",
+"..+..++++++...+++.++....++....++.++.++...+.....++++..+..++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++..++++++.++++++..++++++.+++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+...+++..++++++++++..",
+"..+..++++++...+++.++....++....++.++.++...+.....++++..+..++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++..++++++.++++++..++++++.+++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+...+++..++++++++++..",
+"..+++...+++.++.++.+++..++++..+++.++.++.++.++.++++++..+..++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++..++++++.+++++.+++++...++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++.....+++++++..",
+"..++++++.++.++.++.+++..++++..+++.++.++.++.++.++++++..+..++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++..++++++.+++..+++++++++.+++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++..++++..++++..",
+"..++++++.++.++.++.+++..++++..+++.++.++.++.++.++++++..+..++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++..++++++.+++..+++++++++.+++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++..++++..++++..",
+"..++++++.++.++.++.+++..++++..+++.++.++.++.++.++++++..+..++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++..++++++.++.+++++++++++.+++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++.....+..++++..",
+"..+.....+++.++.++.+++..++++++.++.++.++.++.+++..++++..+..++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++..++++++.++.++++++..+++.+++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++..++++..",
+"..+.....+++.++.++.+++..++++++.++.++.++.++.+++..++++..+..++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++..++++++.++.++++++..+++.+++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++..++++..",
+"..++++++++++++++++++++++++++++++.+++++++++++++++++++++..++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++..++++++.++......+++...++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++..++++..",
+"..++++++++++++++++++++++++++++++.+++++++++++++++++++++..++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++..+++++++++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++.....+..",
+"..++++++++++++++++++++++++++++++.+++++++++++++++++++++..++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++..+++++++++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++.....+..",
+"..++++++++++++++++++++++++++++++.+++++++++++++++++++++..++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++..+++++++++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..",
+".................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................."};
+/* XPM */
+static char * keynum_xpm[] = {
+"241 92 3 1",
+" c None",
+". c #000000",
+"+ c #FFFFFF",
+".................................................................................................................................................................................................................................................",
+".................................................................................................................................................................................................................................................",
+"..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++.+++++++++++++++++++++++++++..",
+"..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++.+++++++++++++++++++++++++++..",
+"..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++.+++++++++++++++++++++++++++..",
+"..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++.+++++++++++++++++++++++++++..",
+"..+++++++...+++++++++..+++++++.....+++++++..+++++++.....+++++++..++++++++++++.++++++..++++++......+++++++..+++++++.....++++++++.++++++++......++++++.++++++++....++++++++.++++++++....++++++++.++++++++....++++++++.+++++++++++++++++++++++++++..",
+"..+++++++...+++++++++..+++++++.....+++++++..+++++++.....+++++++..++++++++++++.++++++..++++++......+++++++..+++++++.....++++++++.++++++++......++++++.++++++++....++++++++.++++++++....++++++++.++++++++....++++++++.+++++++++++++++++++++++++++..",
+"..+++++++++.+++++++++..++++++.+++++.++++++..++++++.+++++.++++++..++++++++++...++++++..++++++.++++++++++++..++++++.+++++++++++++.++++++++++++..++++++.++++++..++++..++++++.++++++..++++..++++++.++++++..++++..++++++.+++++++++..++++++++++++++++..",
+"..+++++++++.+++++++++..++++++++++++.++++++..++++++++++++.++++++..+++++++++.++.++++++..++++++.++++++++++++..++++++.+++++++++++++.++++++++++++..++++++.++++++..++++..++++++.++++++..++++..++++++.++++++..++++..++++++.++++++++...++++++++++++++++..",
+"..+++++++++.+++++++++..++++++++++++.++++++..++++++++++++.++++++..+++++++++.++.++++++..++++++.++++++++++++..++++++.+++++++++++++.++++++++++++..++++++.++++++..++++..++++++.++++++..++++..++++++.++++++..++++..++++++.++++++++...++++++++++++++++..",
+"..+++++++++.+++++++++..++++++++++..+++++++..++++++++++++.++++++..+++++++..+++.++++++..++++++.++++++++++++..++++++.+++++++++++++.+++++++++++.++++++++.++++++..++++..++++++.++++++..++++..++++++.++++++..++++..++++++.++++++.....++++++++++++++++..",
+"..+++++++++.+++++++++..+++++++++.+++++++++..+++++++.....+++++++..++++++.+++++.++++++..++++++......+++++++..++++++......++++++++.+++++++++++.++++++++.++++++++....++++++++.++++++++....++++++++.++++++..++++..++++++.+++++..................++++..",
+"..+++++++++.+++++++++..+++++++++.+++++++++..+++++++.....+++++++..++++++.+++++.++++++..++++++......+++++++..++++++......++++++++.+++++++++++.++++++++.++++++++....++++++++.++++++++....++++++++.++++++..++++..++++++.+++++..................++++..",
+"..+++++++++.+++++++++..+++++++..++++++++++..++++++++++++.++++++..++++++.........++++..++++++++++++.++++++..++++++.+++++.+++++++.+++++++++++.++++++++.++++++..++++..++++++.++++++++++++..++++++.++++++..++++..++++++.++++++.....++++++++++++++++..",
+"..+++++++++.+++++++++..++++++.++++++++++++..++++++++++++.++++++..++++++++++++.++++++..++++++++++++.++++++..++++++.+++++.+++++++.+++++++++..+++++++++.++++++..++++..++++++.++++++++++++..++++++.++++++..++++..++++++.++++++++...++++++++++++++++..",
+"..+++++++++.+++++++++..++++++.++++++++++++..++++++++++++.++++++..++++++++++++.++++++..++++++++++++.++++++..++++++.+++++.+++++++.+++++++++..+++++++++.++++++..++++..++++++.++++++++++++..++++++.++++++..++++..++++++.++++++++...++++++++++++++++..",
+"..+++++++++.+++++++++..++++++.++++++++++++..++++++.+++++.++++++..++++++++++++.++++++..++++++++++++.++++++..++++++.+++++.+++++++.+++++++++..+++++++++.++++++..++++..++++++.++++++++++++..++++++.++++++..++++..++++++.+++++++++..++++++++++++++++..",
+"..+++++++++.+++++++++..++++++.......++++++..+++++++.....+++++++..++++++++++++.++++++..++++++......+++++++..+++++++.....++++++++.+++++++++..+++++++++.++++++++....++++++++.++++++++....++++++++.++++++++....++++++++.+++++++++++++++++++++++++++..",
+"..+++++++++.+++++++++..++++++.......++++++..+++++++.....+++++++..++++++++++++.++++++..++++++......+++++++..+++++++.....++++++++.+++++++++..+++++++++.++++++++....++++++++.++++++++....++++++++.++++++++....++++++++.+++++++++++++++++++++++++++..",
+"..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++.+++++++++++++++++++++++++++..",
+"..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++.+++++++++++++++++++++++++++..",
+"..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++.+++++++++++++++++++++++++++..",
+".................................................................................................................................................................................................................................................",
+"..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++.+++++++++++++++++++++++++++..",
+"..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++.+++++++++++++++++++++++++++..",
+"..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++.+++++++++++++++++++++++++++..",
+"..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..++++++++++++++++++++.++++++++++++++++++++.+++++++++..+++++++++.++++++++++++++++++++.++++++++++++++++++++.+++++++++++++++++++++++++++..",
+"..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..++++++++++++++++++++.++++++++++++++++++++.+++++++++..+++++++++.++++++++++++++++++++.++++++++++++++++++++.+++++++++++++++++++++++++++..",
+"..+++++++++.+++++++++..+++++++.....+++++++..+++++++++.++.++++++..+++++++++.+++++++++..++++++.++++++..++++..++++++++++++++++++++.++++++++...+++++++++.+++++.+++..+++.+++++.+++++++++++.++++++++.++++++++.+++++++++++.+++++++++++++++++++++++++++..",
+"..+++++++++.+++++++++..++++++.+++++.++++++..+++++++++.++.++++++..+++++++......++++++..++++..+..++++..++++..+++++++++.++++++++++.++++++..+++.++++++++.++++++..+..+..++++++.+++++++++..+++++++++.+++++++++..+++++++++.+++++++++..++++++++++..++++..",
+"..+++++++++.+++++++++..++++++.+++++.++++++..+++++++++.++.++++++..+++++++......++++++..++++..+..++++..++++..+++++++++.++++++++++.++++++..+++.++++++++.++++++..+..+..++++++.+++++++++..+++++++++.+++++++++..+++++++++.+++++++++..++++++++++..++++..",
+"..+++++++++.+++++++++..++++..+.....+..++++..++++++.........++++..++++++.++.+++++++++..++++..+..+++.++++++..+++++++..+..++++++++.++++++..+..+++++++++.++++++++.++.++++++++.++++++++.+++++++++++.+++++++++++.++++++++.++++++++...++++++++++..++++..",
+"..+++++++++.+++++++++..+++.++.+++..+++.+++..+++++++++.++.++++++..++++++.++.+++++++++..++++++.+++..+++++++..++++++.+++++.+++++++.++++++++.+++++++++++.+++++++++..+++++++++.++++++++.+++++++++++.+++++++++++.++++++++.++++++.....++++++++++..++++..",
+"..+++++++++.+++++++++..+++.++.+++..+++.+++..+++++++++.++.++++++..++++++.++.+++++++++..++++++.+++..+++++++..++++++.+++++.+++++++.++++++++.+++++++++++.+++++++++..+++++++++.++++++++.+++++++++++.+++++++++++.++++++++.++++++.....++++++++++..++++..",
+"..+++++++++.+++++++++..+++.++.+++..+++.+++..+++++++..+..+++++++..+++++++.....+++++++..+++++++++.+++++++++..++++..+++++++..+++++.++++++..+..+++++++++.+++++....++....+++++.++++++++.+++++++++++.+++++++++++.++++++++.+++++..................++++..",
+"..+++++++++.+++++++++..+++.++.+++..+++.+++..++++++.++.+++++++++..+++++++++.++.++++++..+++++++..+++.++++++..+++.+++++++++++..+++.+++++.+++++.++.+++++.+++++++++..+++++++++.++++++++.+++++++++++.+++++++++++.++++++++.++++++.....++++++++++++++++..",
+"..+++++++++.+++++++++..+++.++.+++..+++.+++..++++++.++.+++++++++..+++++++++.++.++++++..+++++++..+++.++++++..+++.+++++++++++..+++.+++++.+++++.++.+++++.+++++++++..+++++++++.++++++++.+++++++++++.+++++++++++.++++++++.++++++.....++++++++++++++++..",
+"..+++++++++.+++++++++..++++..+...++...++++..++++.........++++++..+++++++++.++.++++++..++++++.+++..+..++++..++++++++++++++++++++.+++++.++++++..++++++.++++++++.++.++++++++.++++++++.+++++++++++.+++++++++++.++++++++.++++++++...++++++++++++++++..",
+"..+++++++++++++++++++..++++++.++++++++++++..++++++.++.+++++++++..++++++......+++++++..++++..++++..+..++++..++++++++++++++++++++.++++++..+++.++.+++++.++++++..+..+..++++++.+++++++++..+++++++++.+++++++++..+++++++++.+++++++++..++++++++++++++++..",
+"..+++++++++++++++++++..++++++.++++++++++++..++++++.++.+++++++++..++++++......+++++++..++++..++++..+..++++..++++++++++++++++++++.++++++..+++.++.+++++.++++++..+..+..++++++.+++++++++..+++++++++.+++++++++..+++++++++.+++++++++..++++++++++++++++..",
+"..+++++++++.+++++++++..+++++++.....+++++++..++++++.++.+++++++++..+++++++++.+++++++++..++++..++++++.++++++..++++++++++++++++++++.++++++++...++++..+++.+++++.+++..+++.+++++.+++++++++++.++++++++.++++++++.+++++++++++.+++++++++++++++++++++++++++..",
+"..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..++++++++++++++++++++.++++++++++++++++++++.+++++++++..+++++++++.++++++++++++++++++++.++++++++++++++++++++.+++++++++++++++++++++++++++..",
+"..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..++++++++++++++++++++.++++++++++++++++++++.+++++++++..+++++++++.++++++++++++++++++++.++++++++++++++++++++.+++++++++++++++++++++++++++..",
+"..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++.+++++++++++++++++++++++++++..",
+".................................................................................................................................................................................................................................................",
+".................................................................................................................................................................................................................................................",
+"..+++++++++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..",
+"..+++++++++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..",
+"..+++++++++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..",
+"..+++++++++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..",
+"..+++++++++++++++++++++++++++.++++++..+++...++++++.+++++.+++.....++++++.+++++.+++.....++++++.+++++.++++++++.+++++.+++++.++......++++++..++++..+++....++++++..++++..+++......++++..++++..+++....++++++..+++++++++++++++++++..+++++++++++++++++++..",
+"..+++++++++++++++++++++++++++.++++++..+++...++++++.+++++.+++.....++++++.+++++.+++.....++++++.+++++.++++++++.+++++.+++++.++......++++++..++++..+++....++++++..++++..+++......++++..++++..+++....++++++..+++++++++++++++++++..+++++++++++++++++++..",
+"..+++...+++.+++++++++..++++++.+++++.++.+++..++++++.+++..+...+++++.+++++.+++..+...+++++.+++++.+++..+..++++...+++++.+++..+....++++++++++..+++.++...++++++++++..+++.++.++++++..++++..+++.++...++++..++++..+++++++++++++++++++..+++++++++++++++++++..",
+"..+..+++.++.+++++++++..++++++.+++++.++++++..++++++.+++..+++++++++.+++++.+++..+++++++++.+++++.+++..++++++.++.+++++.+++..+++..++++++++++..+++.+++..++++++++++..+++.+++++++++..++++..+++.+++..++++..++++..+++++++++...+++++++..+++++++++++++++++++..",
+"..+..+++.++.+++++++++..++++++.+++++.++++++..++++++.+++..+++++++++.+++++.+++..+++++++++.+++++.+++..++++++.++.+++++.+++..+++..++++++++++..+++.+++..++++++++++..+++.+++++++++..++++..+++.+++..++++..++++..+++++++++...+++++++..+++++++++++++++++++..",
+"..+..++++.....+..+..+..++++++.+++......+++..++++++.++......++++..++++++.++......++++++.+++++.++......+..+++.+++++.++........++++++++++..+........++++++++++..+......+++++.++++++..+........++++..++++..+++++++++...+++++++..+++++++...+++..++++..",
+"..+..++++++.+++...+++..++++++.+++++.++++++..++++++.+++..++++++.++++++++.+++..++++.....++++++.+++..+++.+++++.+++++.+++..+++......++++++..+++.+++......++++++..+++.++++++++.++++++..+++.+++++....++++++..+++++++++.+++++++++..++++++.+++...++++++..",
+"..+..++++++.+++...+++..++++++.+++++.++++++..++++++.+++..++++++.++++++++.+++..++++.....++++++.+++..+++.+++++.+++++.+++..+++......++++++..+++.+++......++++++..+++.++++++++.++++++..+++.+++++....++++++..+++++++++.+++++++++..++++++.+++...++++++..",
+"..+..++++++.+++..++++..++++++.+++++.++++++..++++++.+++..++++..+++++++++.+++..+++++++++.+++++.+++..+++.........+++.+++..+++++++++..++++..+++.+++..++++..++++..+++.++++++++.++++++..+++.+++..++++..++++..++++++++++..+++++++..+++++++++++++++++++..",
+"..+..+++.++.+++..++++..++++++.+++++.++++++..++++++.+++..+++.+++++++++++.+++..+++++++++.+++++.+++..+++++++++.+++++.+++..+++++++++..++++..+++.+++..++++..++++..+++.++++++..+++++++..+++.+++..++++..++++..+++++++++++++++++++..+++++++++++++++++++..",
+"..+..+++.++.+++..++++..++++++.+++++.++++++..++++++.+++..+++.+++++++++++.+++..+++++++++.+++++.+++..+++++++++.+++++.+++..+++++++++..++++..+++.+++..++++..++++..+++.++++++..+++++++..+++.+++..++++..++++..+++++++++++++++++++..+++++++++++++++++++..",
+"..+++...++++..+..++++..++++++.+++++.++++++..++++++.+++..+++.+++++++++++.+++..+++.+++++.+++++.+++..+++++++++.+++++.+++..+++++++++..++++..+++.+++..++++..++++..+++.++++++..+++++++..+++.+++..++++..++++..+++++++++++++++++++..+++++++++++++++++++..",
+"..+++++++++++++++++++++++++++.+++++.++++++..++++++.+++..+++.......+++++.+++..++++.....++++++.+++..+++++++++.+++++.+++..+++......++++++..+++.+++++....++++++..+++.++++++..+++++++..+++.+++++....++++++..+++++++++++++++++++..+++++++++++++++++++..",
+"..+++++++++++++++++++++++++++.+++++.++++++..++++++.+++..+++.......+++++.+++..++++.....++++++.+++..+++++++++.+++++.+++..+++......++++++..+++.+++++....++++++..+++.++++++..+++++++..+++.+++++....++++++..+++++++++++++++++++..+++++++++++++++++++..",
+"..+++++++++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..",
+"..+++++++++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..",
+"..+++++++++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..",
+".................................................................................................................................................................................................................................................",
+"..++++++++++++++++++++++++++++++.+++++++++++++++++++++..++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++.............................+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..",
+"..++++++++++++++++++++++++++++++.+++++++++++++++++++++..++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++.............................+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..",
+"..++++++++++++++++++++++++++++++.+++++++++++++++++++++..++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++.............................+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..",
+"..++++++++++++++++++++++++++++++.+++++++++++++++++++++..++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++.............................+++++++.....+++++++..+++++++.....+++++++..++++++++++..+++++++..+++++++..++++++++++..",
+"..++++++++++++++++++++++++++++++.+++++++++++++++++++++..++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++.............................+++++++.....+++++++..+++++++.....+++++++..++++++++++..+++++++..+++++++..++++++++++..",
+"..++++++++++++++++++++++++++++++.+++++++++++++++..++++..++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++......+++...+++.....+++......+++++++..++++++++++..++++++++++..+++++++..+++++++++.+++++++++..+++++++++.+++++++++..",
+"..+++....++.+++++.+++++.+++..+++.++.++++++++.+++..+..+..++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++........+..+...++.++...+.....+++++++..++++++++++..++++++++++..+++++++..+++++++++.+++++++++..+++++++++.+++++++++..",
+"..+++....++.+++++.+++++.+++..+++.++.++++++++.+++..+..+..++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++........+..+...++.++...+.....+++++++..++++++++++..++++++++++..+++++++..+++++++++.+++++++++..+++++++++.+++++++++..",
+"..+..++++++.+++++++++..++++..+++.++.++++++++.+++..+..+..++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++........+......++......+.....+++++++..++++++++++..++++++++++..+++++++..+++++++++.+++++++++..+++++++++.+++++++++..",
+"..+..++++++...+++.++....++....++.++.++...+.....++++..+..++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++........+......++......+.....+++++++..++++++++++..++++++++++..+++++++..+++++++..++++++++++..++++++++++..+++++++..",
+"..+..++++++...+++.++....++....++.++.++...+.....++++..+..++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++........+......++......+.....+++++++..++++++++++..++++++++++..+++++++..+++++++..++++++++++..++++++++++..+++++++..",
+"..+++...+++.++.++.+++..++++..+++.++.++.++.++.++++++..+..++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++........+.....+.....+++......+++++++..++++++++++..++++++++++..+++++++..+++++++++.+++++++++..+++++++++.+++++++++..",
+"..++++++.++.++.++.+++..++++..+++.++.++.++.++.++++++..+..++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++........+...++.........+.....+++++++..++++++++++..++++++++++..+++++++..+++++++++.+++++++++..+++++++++.+++++++++..",
+"..++++++.++.++.++.+++..++++..+++.++.++.++.++.++++++..+..++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++........+...++.........+.....+++++++..++++++++++..++++++++++..+++++++..+++++++++.+++++++++..+++++++++.+++++++++..",
+"..++++++.++.++.++.+++..++++..+++.++.++.++.++.++++++..+..++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++........+..+...........+.....+++++++..++++++++++..++++++++++..+++++++..+++++++++.+++++++++..+++++++++.+++++++++..",
+"..+.....+++.++.++.+++..++++++.++.++.++.++.+++..++++..+..++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++........+..+......++...+.....+++++++.....+++++++..+++++++.....+++++++..++++++++++..+++++++..+++++++..++++++++++..",
+"..+.....+++.++.++.+++..++++++.++.++.++.++.+++..++++..+..++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++........+..+......++...+.....+++++++.....+++++++..+++++++.....+++++++..++++++++++..+++++++..+++++++..++++++++++..",
+"..++++++++++++++++++++++++++++++.+++++++++++++++++++++..++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++........+..++++++...+++......+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..",
+"..++++++++++++++++++++++++++++++.+++++++++++++++++++++..++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++.............................+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..",
+"..++++++++++++++++++++++++++++++.+++++++++++++++++++++..++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++.............................+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..",
+"..++++++++++++++++++++++++++++++.+++++++++++++++++++++..++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++.............................+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..+++++++++++++++++++..",
+".................................................................................................................................................................................................................................................",
+"................................................................................................................................................................................................................................................."};
+
+#endif
diff --git a/ecos/packages/hal/arm/sa11x0/ipaq/current/src/lcd_support.c b/ecos/packages/hal/arm/sa11x0/ipaq/current/src/lcd_support.c
new file mode 100644
index 0000000..2e4b993
--- /dev/null
+++ b/ecos/packages/hal/arm/sa11x0/ipaq/current/src/lcd_support.c
@@ -0,0 +1,1453 @@
+//==========================================================================
+//
+// lcd_support.c
+//
+// SA1110/iPAQ - LCD support routines
+//
+//==========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//==========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): gthomas
+// Contributors: gthomas
+// Richard Panton <richard.panton@3glab.com>
+// Date: 2001-02-24
+// Description: Simple LCD support
+//####DESCRIPTIONEND####
+
+#include <pkgconf/hal.h>
+
+#include <cyg/infra/diag.h>
+#include <cyg/hal/hal_io.h> // IO macros
+#include <cyg/hal/hal_if.h> // Virtual vector support
+#include <cyg/hal/hal_arch.h> // Register state info
+#include <cyg/hal/hal_intr.h> // HAL interrupt macros
+
+#include <cyg/hal/hal_sa11x0.h> // Board definitions
+#include <cyg/hal/ipaq.h>
+#include <cyg/hal/lcd_support.h>
+#include <cyg/hal/atmel_support.h>
+#include <cyg/hal/hal_cache.h>
+
+#ifdef CYGPKG_ISOINFRA
+# include <pkgconf/isoinfra.h>
+# ifdef CYGINT_ISO_STDIO_FORMATTED_IO
+# include <stdio.h> // sscanf
+# endif
+#endif
+
+// Gross hack to force use of simple internal functions.
+// Using libc sscanf fails (as far as I could tell from a quick look)
+// when assertions are enabled because some of the C++ contructors have
+// not been run yet. jskov
+#undef CYGINT_ISO_STDIO_FORMATTED_IO
+
+#ifndef FALSE
+#define FALSE 0
+#define TRUE 1
+#endif
+
+#define PORTRAIT_MODE
+//#define LOGO_AT_TOP
+#include "banner.xpm"
+#include "font.h"
+
+// Physical dimensions of LCD display
+#define DISPLAY_WIDTH 320
+#define DISPLAY_HEIGHT 240
+
+// Logical layout
+#ifdef PORTRAIT_MODE
+#define LCD_WIDTH 240
+#define LCD_HEIGHT 320
+#else
+#define LCD_WIDTH 320
+#define LCD_HEIGHT 240
+#endif
+#define LCD_DEPTH 16
+
+static struct lcd_frame {
+ unsigned short palette[16];
+ unsigned short pixels[DISPLAY_HEIGHT][DISPLAY_WIDTH];
+ unsigned char pad[256];
+} *lcd_frame_buffer = (struct lcd_frame *)0x01FC0000; // Actually just 0x26000 bytes, but...
+
+#define USE_RGB565
+#ifdef USE_RGB565
+#define RGB_RED(x) (((x)&0x1F)<<11)
+#define RGB_GREEN(x) (((x)&0x3F)<<5)
+#define RGB_BLUE(x) ((x)&0x1F)
+#else
+#define RGB_RED(x) (((x)&0x0F)<<12)
+#define RGB_GREEN(x) (((x)&0x0F)<<7)
+#define RGB_BLUE(x) (((x)&0x0F)<<1)
+#endif
+
+static volatile struct lcd_frame *fp;
+
+// Physical screen info
+//static int lcd_depth = LCD_DEPTH; // Should be 1, 2, or 4
+static int lcd_bpp;
+static int lcd_width = LCD_WIDTH;
+static int lcd_height = LCD_HEIGHT;
+
+// Virtual screen info
+static int curX = 0; // Last used position
+static int curY = 0;
+//static int width = LCD_WIDTH / (FONT_WIDTH*NIBBLES_PER_PIXEL);
+//static int height = LCD_HEIGHT / (FONT_HEIGHT*SCREEN_SCALE);
+
+static int fg = RGB_RED(15) | RGB_GREEN(63) | RGB_BLUE(8);
+static int bg = RGB_RED(0) | RGB_GREEN(0) | RGB_BLUE(15/*31*/);
+
+#define SCREEN_PAN 20
+#define SCREEN_WIDTH 80
+#define SCREEN_HEIGHT (LCD_HEIGHT/FONT_HEIGHT)
+#define VISIBLE_SCREEN_WIDTH (LCD_WIDTH/FONT_WIDTH)
+#define VISIBLE_SCREEN_HEIGHT (LCD_HEIGHT/FONT_HEIGHT)
+static char screen[SCREEN_HEIGHT][SCREEN_WIDTH];
+static int screen_start = 0;
+static int screen_height = SCREEN_HEIGHT;
+static int screen_width = SCREEN_WIDTH;
+static int screen_pan = 0;
+
+static bool cursor_enable = true;
+
+static int kbd_pos;
+
+// Functions
+static void lcd_drawc(cyg_int8 c, int x, int y);
+
+#ifdef PORTRAIT_MODE
+// Translate coordinates, rotating clockwise 90 degrees
+static void
+set_pixel(int row, int col, unsigned short val)
+{
+ fp->pixels[col][(DISPLAY_WIDTH-1)-row] = val;
+}
+#else
+static void
+set_pixel(int row, int col, unsigned short val)
+{
+ fp->pixels[row][col] = val;
+}
+#endif
+
+static int
+_hexdigit(char c)
+{
+ if ((c >= '0') && (c <= '9')) {
+ return c - '0';
+ } else
+ if ((c >= 'A') && (c <= 'F')) {
+ return (c - 'A') + 0x0A;
+ } else
+ if ((c >= 'a') && (c <= 'f')) {
+ return (c - 'a') + 0x0a;
+ }
+ return 0;
+}
+
+static int
+_hex(char *cp)
+{
+ return (_hexdigit(*cp)<<4) | _hexdigit(*(cp+1));
+}
+
+static unsigned short
+parse_color(char *cp)
+{
+ int red, green, blue;
+
+ while (*cp && (*cp != 'c')) cp++;
+ if (cp) {
+ cp += 2;
+ if (*cp == '#') {
+ red = _hex(cp+1);
+ green = _hex(cp+3);
+ blue = _hex(cp+5);
+#ifdef USE_RGB565
+ return RGB_RED(red>>3) | RGB_GREEN(green>>2) | RGB_BLUE(blue>>3);
+#else
+ return RGB_RED(red>>3) | RGB_GREEN(green>>3) | RGB_BLUE(blue>>3);
+#endif
+ } else {
+ // Should be "None"
+ return 0xFFFF;
+ }
+ } else {
+ return 0xFFFF;
+ }
+}
+
+#ifndef CYGINT_ISO_STDIO_FORMATTED_IO
+static int
+get_int(char **_cp)
+{
+ char *cp = *_cp;
+ char c;
+ int val = 0;
+
+ while ((c = *cp++) && (c != ' ')) {
+ if ((c >= '0') && (c <= '9')) {
+ val = val * 10 + (c - '0');
+ } else {
+ return -1;
+ }
+ }
+ *_cp = cp;
+ return val;
+}
+#endif
+
+int
+show_xpm(char *xpm[], int screen_pos)
+{
+ int i, row, col, offset;
+ char *cp;
+ int nrows, ncols, nclrs;
+ unsigned short colors[256]; // Mapped by character index
+
+ cp = xpm[0];
+#ifdef CYGINT_ISO_STDIO_FORMATTED_IO
+ if (sscanf(cp, "%d %d %d", &ncols, &nrows, &nclrs) != 3) {
+#else
+ if (((ncols = get_int(&cp)) < 0) ||
+ ((nrows = get_int(&cp)) < 0) ||
+ ((nclrs = get_int(&cp)) < 0)) {
+
+#endif
+ diag_printf("Can't parse XPM data, sorry\n");
+ return 0;
+ }
+ // printf("%d rows, %d cols, %d colors\n", nrows, ncols, nclrs);
+
+ for (i = 0; i < 256; i++) {
+ colors[i] = 0x0000;
+ }
+ for (i = 0; i < nclrs; i++) {
+ cp = xpm[i+1];
+ colors[(unsigned int)*cp] = parse_color(&cp[1]);
+ // printf("Color[%c] = %x\n", *cp, colors[(unsigned int)*cp]);
+ }
+
+#ifdef LOGO_AT_TOP
+ offset = screen_pos;
+#else
+ offset = screen_pos-nrows;
+#endif
+ for (row = 0; row < nrows; row++) {
+ cp = xpm[nclrs+1+row];
+ for (col = 0; col < ncols; col++) {
+ set_pixel(row+offset, col, colors[(unsigned int)*cp++]);
+ }
+ }
+#ifdef LOGO_AT_TOP
+ screen_start = (nrows + (FONT_HEIGHT-1))/FONT_HEIGHT;
+ return offset+nrows;
+#else
+ screen_height = offset / FONT_HEIGHT;
+ return offset;
+#endif
+}
+
+void
+lcd_init(int depth)
+{
+ // Currently only color/16bpp supported
+
+ if (depth != 16) {
+ return;
+ }
+ lcd_bpp = depth;
+ fp = (struct lcd_frame *)hal_virt_to_phys_address((cyg_uint32)lcd_frame_buffer);
+ // Enable LCD in 320x240 16bpp
+ *SA1110_DBAR1 = (unsigned long)&(fp->palette);
+ *SA1110_LCCR1 = 0x0b100800 + DISPLAY_WIDTH - 16;
+ *SA1110_LCCR2 = 0x0a010400 + DISPLAY_HEIGHT - 1;
+ *SA1110_LCCR3 = 0x00300010;
+ fp->palette[0] = 0x2000; // Tell controller true color / 16 bits
+ *SA1110_LCCR0 = 0xB9; // Color
+ ipaq_EGPIO(SA1110_EIO_LCD_3V3|SA1110_EIO_LCD_CTRL|SA1110_EIO_LCD_5V|SA1110_EIO_LCD_VDD,
+ SA1110_EIO_LCD_3V3_ON|SA1110_EIO_LCD_CTRL_ON|SA1110_EIO_LCD_5V_ON|SA1110_EIO_LCD_VDD_ON);
+ lcd_clear();
+ lcd_brightness(31);
+}
+
+// Get information about the frame buffer
+int
+lcd_getinfo(struct lcd_info *info)
+{
+ if (lcd_bpp == 0) {
+ return 0; // LCD not initialized
+ }
+ info->width = DISPLAY_WIDTH;
+ info->height = DISPLAY_HEIGHT;
+ info->bpp = lcd_bpp;
+ info->fb = (void *)lcd_frame_buffer->pixels; // Note: this is cached
+ info->rlen = DISPLAY_WIDTH * 2;
+ info->type = FB_TRUE_RGB565;
+ return 1; // Information valid
+}
+
+// Control screen light [brightness]
+
+static void
+lcd_brightness_ack(atmel_pkt *pkt)
+{
+}
+
+static int _lcd_brightness;
+
+void
+lcd_brightness(int level)
+{
+ unsigned char cmd[3];
+
+ atmel_register(ATMEL_CMD_LIGHT, lcd_brightness_ack);
+ cmd[0] = 1; // LCD magic
+ cmd[1] = (level > 0) ? 1 : 0; // Turn light on
+ cmd[2] = level;
+ if (level) _lcd_brightness = level;
+ atmel_send(ATMEL_CMD_LIGHT, cmd, 3);
+}
+
+// Clear screen
+void
+lcd_clear(void)
+{
+ int row, col;
+ int pos;
+
+#ifndef USE_RGB565
+ int val;
+ for (row = 0; row < lcd_height; row++) {
+ for (col = 0; col < lcd_width; col++) {
+ set_pixel(row, col, RGB_RED(31));
+ }
+ }
+ CYGACC_CALL_IF_DELAY_US(100000);
+
+ for (row = 0; row < lcd_height; row++) {
+ for (col = 0; col < lcd_width; col++) {
+ set_pixel(row, col, RGB_GREEN(31));
+ }
+ }
+ CYGACC_CALL_IF_DELAY_US(100000);
+ val = 0;
+ for (pos = 0; pos < 16; pos++) {
+ val = (1<<pos);
+ diag_printf("Set pixel to 0x%04x\n", val);
+ for (row = 0; row < lcd_height; row++) {
+ for (col = 0; col < lcd_width; col++) {
+ set_pixel(row, col, val);
+ }
+ }
+ CYGACC_CALL_IF_DELAY_US(100000);
+ }
+ val = 0;
+ for (pos = 8; pos < 16; pos++) {
+ val |= (1<<pos);
+ diag_printf("Set pixel to 0x%04x\n", val);
+ for (row = 0; row < lcd_height; row++) {
+ for (col = 0; col < lcd_width; col++) {
+ set_pixel(row, col, val);
+ }
+ }
+ CYGACC_CALL_IF_DELAY_US(100000);
+ }
+
+ for (row = 0; row < lcd_height; row++) {
+ for (col = 0; col < lcd_width; col++) {
+ set_pixel(row, col, RGB_BLUE(31));
+ }
+ }
+ CYGACC_CALL_IF_DELAY_US(100000);
+#endif // RGB565
+
+ for (row = 0; row < lcd_height; row++) {
+ for (col = 0; col < lcd_width; col++) {
+ set_pixel(row, col, bg);
+ }
+ }
+ for (row = 0; row < screen_height; row++) {
+ for (col = 0; col < screen_width; col++) {
+ screen[row][col] = ' ';
+ }
+ }
+ // Note: Row 0 seems to wrap incorrectly
+#ifdef LOGO_AT_TOP
+ pos = 0;
+#else
+ pos = (LCD_HEIGHT-1);
+#endif
+ kbd_pos = show_xpm(banner_xpm, pos);
+ curX = 0; curY = screen_start;
+ if (cursor_enable) {
+ lcd_drawc(CURSOR_ON, curX-screen_pan, curY);
+ }
+}
+
+// Position cursor
+void
+lcd_moveto(int X, int Y)
+{
+ if (cursor_enable) {
+ lcd_drawc(screen[curY][curX], curX-screen_pan, curY);
+ }
+ if (X < 0) X = 0;
+ if (X >= screen_width) X = screen_width-1;
+ curX = X;
+ if (Y < screen_start) Y = screen_start;
+ if (Y >= screen_height) Y = screen_height-1;
+ curY = Y;
+ if (cursor_enable) {
+ lcd_drawc(CURSOR_ON, curX-screen_pan, curY);
+ }
+}
+
+// Render a character at position (X,Y) with current background/foreground
+static void
+lcd_drawc(cyg_int8 c, int x, int y)
+{
+ cyg_uint8 bits;
+ int l, p;
+
+ if ((x < 0) || (x >= VISIBLE_SCREEN_WIDTH) ||
+ (y < 0) || (y >= screen_height)) return;
+ for (l = 0; l < FONT_HEIGHT; l++) {
+ bits = font_table[c-FIRST_CHAR][l];
+ for (p = 0; p < FONT_WIDTH; p++) {
+ if (bits & 0x01) {
+ set_pixel(y*FONT_HEIGHT+l, x*FONT_WIDTH + p, fg);
+ } else {
+ set_pixel(y*FONT_HEIGHT+l, x*FONT_WIDTH + p, bg);
+ }
+ bits >>= 1;
+ }
+ }
+}
+
+static void
+lcd_refresh(void)
+{
+ int row, col;
+#ifdef PORTRAIT_MODE
+ for (row = screen_start; row < screen_height; row++) {
+ for (col = 0; col < VISIBLE_SCREEN_WIDTH; col++) {
+ if ((col+screen_pan) < screen_width) {
+ lcd_drawc(screen[row][col+screen_pan], col, row);
+ } else {
+ lcd_drawc(' ', col, row);
+ }
+ }
+ }
+#else
+ cyg_uint16 *p1, *p2;
+ // Now the physical screen
+ for (row = FONT_HEIGHT*(screen_start+1); row < LCD_HEIGHT; row++) {
+ p1 = &fp->pixels[row-FONT_HEIGHT][0];
+ p2 = &fp->pixels[row][0];
+ for (col = 0; col < LCD_WIDTH; col++) {
+ *p1++ = *p2++;
+ }
+ }
+ for (row = LCD_HEIGHT-FONT_HEIGHT; row < LCD_HEIGHT; row++) {
+ p1 = &fp->pixels[row][0];
+ for (col = 0; col < LCD_WIDTH; col++) {
+ *p1++ = bg;
+ }
+ }
+#endif
+ if (cursor_enable) {
+ lcd_drawc(CURSOR_ON, curX-screen_pan, curY);
+ }
+}
+
+static void
+lcd_scroll(void)
+{
+ int row, col;
+ cyg_uint8 *c1, *c2;
+
+ // First scroll up the virtual screen
+ for (row = (screen_start+1); row < screen_height; row++) {
+ c1 = &screen[row-1][0];
+ c2 = &screen[row][0];
+ for (col = 0; col < screen_width; col++) {
+ *c1++ = *c2++;
+ }
+ }
+ c1 = &screen[screen_height-1][0];
+ for (col = 0; col < screen_width; col++) {
+ *c1++ = 0x20;
+ }
+ lcd_refresh();
+}
+
+// Draw one character at the current position
+void
+lcd_putc(cyg_int8 c)
+{
+ if (cursor_enable) {
+ lcd_drawc(screen[curY][curX], curX-screen_pan, curY);
+ }
+ switch (c) {
+ case '\r':
+ curX = 0;
+ break;
+ case '\n':
+ curY++;
+ break;
+ case '\b':
+ curX--;
+ if (curX < 0) {
+ curY--;
+ if (curY < 0) curY = 0;
+ curX = screen_width-1;
+ }
+ break;
+ default:
+ if (((cyg_uint8)c < FIRST_CHAR) || ((cyg_uint8)c > LAST_CHAR)) c = '.';
+ screen[curY][curX] = c;
+ lcd_drawc(c, curX-screen_pan, curY);
+ curX++;
+ if (curX == screen_width) {
+ curY++;
+ curX = 0;
+ }
+ }
+ if (curY >= screen_height) {
+ lcd_scroll();
+ curY = (screen_height-1);
+ }
+ if (cursor_enable) {
+ lcd_drawc(CURSOR_ON, curX-screen_pan, curY);
+ }
+}
+
+// Basic LCD 'printf()' support
+
+#include <stdarg.h>
+#include <string.h>
+
+#define is_digit(c) ((c >= '0') && (c <= '9'))
+
+static int
+_cvt(unsigned long val, char *buf, long radix, char *digits)
+{
+ char temp[80];
+ char *cp = temp;
+ int length = 0;
+ if (val == 0) {
+ /* Special case */
+ *cp++ = '0';
+ } else {
+ while (val) {
+ *cp++ = digits[val % radix];
+ val /= radix;
+ }
+ }
+ while (cp != temp) {
+ *buf++ = *--cp;
+ length++;
+ }
+ *buf = '\0';
+ return (length);
+}
+
+static int
+lcd_vprintf(void (*putc)(cyg_int8), const char *fmt0, va_list ap)
+{
+ char c, sign, *cp;
+ int left_prec, right_prec, zero_fill, length, pad, pad_on_right;
+ char buf[32];
+ long val;
+
+ while ((c = *fmt0++)) {
+ cp = buf;
+ length = 0;
+ if (c == '%') {
+ c = *fmt0++;
+ left_prec = right_prec = pad_on_right = 0;
+ if (c == '-') {
+ c = *fmt0++;
+ pad_on_right++;
+ }
+ if (c == '0') {
+ zero_fill = TRUE;
+ c = *fmt0++;
+ } else {
+ zero_fill = FALSE;
+ }
+ while (is_digit(c)) {
+ left_prec = (left_prec * 10) + (c - '0');
+ c = *fmt0++;
+ }
+ if (c == '.') {
+ c = *fmt0++;
+ zero_fill++;
+ while (is_digit(c)) {
+ right_prec = (right_prec * 10) + (c - '0');
+ c = *fmt0++;
+ }
+ } else {
+ right_prec = left_prec;
+ }
+ sign = '\0';
+ switch (c) {
+ case 'd':
+ case 'x':
+ case 'X':
+ val = va_arg(ap, long);
+ switch (c) {
+ case 'd':
+ if (val < 0) {
+ sign = '-';
+ val = -val;
+ }
+ length = _cvt(val, buf, 10, "0123456789");
+ break;
+ case 'x':
+ length = _cvt(val, buf, 16, "0123456789abcdef");
+ break;
+ case 'X':
+ length = _cvt(val, buf, 16, "0123456789ABCDEF");
+ break;
+ }
+ break;
+ case 's':
+ cp = va_arg(ap, char *);
+ length = strlen(cp);
+ break;
+ case 'c':
+ c = va_arg(ap, long /*char*/);
+ (*putc)(c);
+ continue;
+ default:
+ (*putc)('?');
+ }
+ pad = left_prec - length;
+ if (sign != '\0') {
+ pad--;
+ }
+ if (zero_fill) {
+ c = '0';
+ if (sign != '\0') {
+ (*putc)(sign);
+ sign = '\0';
+ }
+ } else {
+ c = ' ';
+ }
+ if (!pad_on_right) {
+ while (pad-- > 0) {
+ (*putc)(c);
+ }
+ }
+ if (sign != '\0') {
+ (*putc)(sign);
+ }
+ while (length-- > 0) {
+ (*putc)(c = *cp++);
+ if (c == '\n') {
+ (*putc)('\r');
+ }
+ }
+ if (pad_on_right) {
+ while (pad-- > 0) {
+ (*putc)(' ');
+ }
+ }
+ } else {
+ (*putc)(c);
+ if (c == '\n') {
+ (*putc)('\r');
+ }
+ }
+ }
+ return 0; // Should be length of string written
+}
+
+int
+lcd_printf(char const *fmt, ...)
+{
+ int ret;
+ va_list ap;
+
+ va_start(ap, fmt);
+ ret = lcd_vprintf(lcd_putc, fmt, ap);
+ va_end(ap);
+ return (ret);
+}
+
+void
+lcd_setbg(int red, int green, int blue)
+{
+ bg = RGB_RED(red) | RGB_GREEN(green) | RGB_BLUE(blue);
+}
+
+void
+lcd_setfg(int red, int green, int blue)
+{
+ fg = RGB_RED(red) | RGB_GREEN(green) | RGB_BLUE(blue);
+}
+
+#ifdef CYGSEM_IPAQ_LCD_COMM
+
+//
+// Support LCD/touchscreen as a virtual I/O channel
+//
+
+#include "kbd.xpm" // Contains 4 keyboard images
+
+static int _timeout = 500;
+
+struct coord {
+ short x,y;
+};
+
+#ifdef PORTRAIT_MODE
+#define CS_UL 1
+#define CS_UR 0
+#define CS_LL 3
+#define CS_LR 2
+#else
+#define CS_UL 0
+#define CS_UR 1
+#define CS_LL 2
+#define CS_LR 3
+#endif
+#define KBD_FUZZ 50
+static struct coord kbd_limits[4];
+static short minX, maxX, minY, maxY; // Coordinates for the keyboard matrix
+
+#define CODE_NONE 0x00
+#define CODE_CTRL 0x81
+#define CODE_SHIFT 0x82
+#define CODE_NUM 0x83
+#define CODE_BS 0x08
+#define CODE_CR 0x0D
+#define CODE_ESC 0x1B
+#define CODE_DEL 0x7F
+#define CTRL(x) (x&0x1F)
+
+typedef unsigned char kbd_map[4][11];
+static kbd_map kbd_norm_map = {
+ { 'q', 'w', 'e', 'r', 't', 'y', 'u', 'i', 'o', 'p', CODE_BS },
+ { 'a', 's', 'd', 'f', 'g', 'h', 'j', 'k', 'l', '-', CODE_CR },
+ { CODE_CTRL, 'z', 'x', 'c', 'v', 'b', 'n', 'm', ',', '.', ';' },
+ { CODE_SHIFT, CODE_SHIFT, ' ', ' ', ' ', ' ', CODE_NUM, '\'', '=', '\\', '/'}
+};
+
+static kbd_map kbd_num_map = {
+ { '1', '2', '3', '4', '5', '6', '7', '8', '9', '0', CODE_BS },
+ { '!', '@', '#', '$', '%', '^', '&', '*', '(', ')', CODE_CR },
+ { CODE_CTRL, ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', '`', '~' },
+ { CODE_SHIFT, CODE_SHIFT, ' ', ' ', ' ', ' ', CODE_NUM, '[', ']', '{', '}'}
+};
+
+static kbd_map kbd_ctrl_map = {
+ { CTRL('q'), CTRL('w'), CTRL('e'), CTRL('r'), CTRL('t'), CTRL('y'),
+ CTRL('u'), CTRL('i'), CTRL('o'), CTRL('p'), CODE_ESC },
+ { CTRL('a'), CTRL('s'), CTRL('d'), CTRL('f'), CTRL('g'), CTRL('h'),
+ CTRL('j'), CTRL('k'), CTRL('l'), CTRL('_'), CODE_CR },
+ { CODE_CTRL, CTRL('z'), CTRL('x'), CTRL('c'), CTRL('v'), CTRL('b'),
+ CTRL('n'), CTRL('m'), '\\', CTRL(']'), CTRL('^') },
+ { CODE_SHIFT, CODE_SHIFT, ' ', ' ', ' ', ' ', CODE_NUM, ' ', ' ', ' ', CODE_DEL}
+};
+
+static kbd_map kbd_shift_map = {
+ { 'Q', 'W', 'E', 'R', 'T', 'Y', 'U', 'I', 'O', 'P', CODE_BS },
+ { 'A', 'S', 'D', 'F', 'G', 'H', 'J', 'K', 'L', '_', CODE_CR },
+ { CODE_CTRL, 'Z', 'X', 'C', 'V', 'B', 'N', 'M', '<', '>', ':' },
+ { CODE_SHIFT, CODE_SHIFT, ' ', ' ', ' ', ' ', CODE_NUM, '"', '+', '|', '?'}
+};
+
+static kbd_map *cur_kbd_map = &kbd_norm_map;
+static bool kbd_active = true;
+
+// Pseudo-keyboard indicator
+#define LCD_KBD_NORM 0
+#define LCD_KBD_SHIFT 1
+#define LCD_KBD_NUM 2
+#define LCD_KBD_CTRL 3
+
+// Display pseudo keyboard
+static void
+lcd_kbd(int which)
+{
+ char **kbd_xpm;
+
+ switch (which) {
+ case LCD_KBD_NORM:
+ kbd_xpm = keynorm_xpm;
+ break;
+ case LCD_KBD_SHIFT:
+ kbd_xpm = keyshft_xpm;
+ break;
+ case LCD_KBD_CTRL:
+ kbd_xpm = keyctrl_xpm;
+ break;
+ case LCD_KBD_NUM:
+ kbd_xpm = keynum_xpm;
+ break;
+ default:
+ return;
+ }
+ show_xpm(kbd_xpm, kbd_pos);
+}
+
+static bool
+inside(int pos, int lim1, int lim2)
+{
+ if (lim1 <= lim2) {
+ return ((pos >= lim1) && (pos <= lim2));
+ } else {
+ return ((pos >= lim2) && (pos <= lim1));
+ }
+}
+
+static int
+abs(int x)
+{
+ if (x < 0) {
+ return -x;
+ } else {
+ return x;
+ }
+}
+
+static int
+min(int x, int y)
+{
+ if (x < y) {
+ return x;
+ } else {
+ return y;
+ }
+}
+
+static int
+max(int x, int y)
+{
+ if (x < y) {
+ return y;
+ } else {
+ return x;
+ }
+}
+
+static cyg_bool
+lcd_comm_getc_nonblock(void* __ch_data, cyg_uint8* ch)
+{
+ static bool pen_down = false;
+ static bool waiting_for_pen_down = true;
+ static int total_events = 0;
+ static int pen_idle;
+ static unsigned long totalX, totalY;
+ struct ts_event tse;
+ struct key_event ke;
+//#define KBD_DEBUG
+#ifdef KBD_DEBUG
+ static bool dump_info = false;
+#endif
+#define PEN_IDLE_TIMEOUT 50000
+#define MIN_KBD_EVENTS 10
+
+ // See if any buttons have been pushed
+ if (key_get_event(&ke)) {
+ if ((ke.button_info & ATMEL_BUTTON_STATE) == ATMEL_BUTTON_STATE_UP) {
+// diag_printf("Key = %x\n", ke.button_info);
+ lcd_on(true);
+ switch (ke.button_info & ATMEL_BUTTON_VALUE) {
+ case ATMEL_BUTTON_RETURN:
+ *ch = CTRL('C');
+ return true;
+ case ATMEL_BUTTON_JOY_DOWN:
+ case ATMEL_BUTTON_JOY_UP:
+ screen_pan = 0;
+ lcd_refresh();
+ break;
+ case ATMEL_BUTTON_JOY_LEFT:
+ screen_pan -= SCREEN_PAN;
+ if (screen_pan < 0) screen_pan = 0;
+ lcd_refresh();
+ break;
+ case ATMEL_BUTTON_JOY_RIGHT:
+ screen_pan += SCREEN_PAN;
+ if (screen_pan > (SCREEN_WIDTH-SCREEN_PAN)) screen_pan = SCREEN_WIDTH-SCREEN_PAN;
+ lcd_refresh();
+ break;
+ default:
+#ifdef KBD_DEBUG
+ {
+ int cur = start_console(0);
+ diag_printf("pen: %d, waiting: %d, total: %d\n", pen_down, waiting_for_pen_down, total_events);
+ end_console(cur);
+ dump_info = !dump_info;
+ }
+#endif
+ return false;
+ }
+ }
+ return false; // Ignore down presses
+ }
+ // If keyboard not active, always returns false
+ if (!kbd_active) {
+ return false;
+ }
+ // Wait for pen down
+ if (waiting_for_pen_down) {
+ if (ts_get_event(&tse)) {
+ lcd_on(true);
+ if (!tse.up) {
+ pen_down = true;
+ waiting_for_pen_down = false;
+ totalX = totalY = 0;
+ total_events = 0;
+ pen_idle = PEN_IDLE_TIMEOUT;
+#ifdef KBD_DEBUG
+ if (dump_info) {
+ int cur = start_console(0);
+ diag_printf("start pen: %d, waiting: %d, total: %d\n", pen_down, waiting_for_pen_down, total_events);
+ end_console(cur);
+ }
+#endif
+ }
+ }
+ return false;
+ }
+ // While the pen is down, accumulate some data
+ if (ts_get_event(&tse)) {
+ pen_idle = PEN_IDLE_TIMEOUT;
+ if (tse.up) {
+ pen_down = false;
+ waiting_for_pen_down = true;
+ } else {
+ total_events++;
+ pen_down = true;
+#ifdef PORTRAIT_MODE
+ totalX += tse.y;
+ totalY += tse.x;
+#else
+ totalX += tse.x;
+ totalY += tse.y;
+#endif
+ }
+ } else {
+ if (--pen_idle == 0) {
+ pen_down = false;
+ waiting_for_pen_down = true;
+#ifdef KBD_DEBUG
+ if (dump_info) {
+ int cur = start_console(0);
+ diag_printf("going idle\n");
+ end_console(cur);
+ }
+#endif
+ }
+ return false;
+ }
+#ifdef KBD_DEBUG
+ if (dump_info) {
+ int cur = start_console(0);
+ diag_printf("pen: %d, waiting: %d, total: %d\n", pen_down, waiting_for_pen_down, total_events);
+ end_console(cur);
+ }
+#endif
+ if (total_events == MIN_KBD_EVENTS) {
+ // If pen just went up then see if this was a valid
+ // character (inside the keyboard picture, etc)
+ int x = totalX/total_events;
+ int y = totalY/total_events;
+ int row, col;
+ int char_width, char_height;
+ unsigned char kbd_ch;
+#ifdef KBD_DEBUG
+ if (dump_info) {
+ int cur = start_console(0);
+ diag_printf("Pen[%d] at %d/%d\n", total_events, x, y);
+ end_console(cur);
+ }
+#endif
+ // Try and determine row/col in our keyboard matrix
+ if (inside(x, minX, maxX) && inside(y, minY, maxY)) {
+ // Point seems to be with the matrix
+ char_width = abs(minX - maxX) / 11;
+ char_height = abs(minY - maxY) / 4;
+ col = abs(x-maxX) / char_width;
+ row = abs(y-minY) / char_height;
+ kbd_ch = (*cur_kbd_map)[row][col];
+#ifdef KBD_DEBUG
+ if (dump_info) {
+ int cur = start_console(0);
+ diag_printf("Row/Col = %d/%d = %x\n", row, col, kbd_ch);
+ end_console(cur);
+ }
+#endif
+ switch (kbd_ch) {
+ case CODE_SHIFT:
+ if (cur_kbd_map == &kbd_shift_map) {
+ cur_kbd_map = &kbd_norm_map;
+ lcd_kbd(LCD_KBD_NORM);
+ } else {
+ cur_kbd_map = &kbd_shift_map;
+ lcd_kbd(LCD_KBD_SHIFT);
+ }
+ break;
+ case CODE_CTRL:
+ if (cur_kbd_map == &kbd_ctrl_map) {
+ cur_kbd_map = &kbd_norm_map;
+ lcd_kbd(LCD_KBD_NORM);
+ } else {
+ cur_kbd_map = &kbd_ctrl_map;
+ lcd_kbd(LCD_KBD_CTRL);
+ }
+ break;
+ case CODE_NUM:
+ if (cur_kbd_map == &kbd_num_map) {
+ cur_kbd_map = &kbd_norm_map;
+ lcd_kbd(LCD_KBD_NORM);
+ } else {
+ cur_kbd_map = &kbd_num_map;
+ lcd_kbd(LCD_KBD_NUM);
+ }
+ break;
+ case CODE_NONE:
+ break;
+ default:
+ *ch = kbd_ch;
+ return true;
+ }
+ }
+ }
+ return false;
+}
+
+static cyg_uint8
+lcd_comm_getc(void* __ch_data)
+{
+ cyg_uint8 ch;
+
+ while (!lcd_comm_getc_nonblock(__ch_data, &ch)) ;
+ return ch;
+}
+
+static void
+lcd_comm_putc(void* __ch_data, cyg_uint8 c)
+{
+ lcd_putc(c);
+}
+
+static void
+lcd_comm_write(void* __ch_data, const cyg_uint8* __buf, cyg_uint32 __len)
+{
+#if 0
+ CYGARC_HAL_SAVE_GP();
+
+ while(__len-- > 0)
+ lcd_comm_putc(__ch_data, *__buf++);
+
+ CYGARC_HAL_RESTORE_GP();
+#endif
+}
+
+static void
+lcd_comm_read(void* __ch_data, cyg_uint8* __buf, cyg_uint32 __len)
+{
+#if 0
+ CYGARC_HAL_SAVE_GP();
+
+ while(__len-- > 0)
+ *__buf++ = lcd_comm_getc(__ch_data);
+
+ CYGARC_HAL_RESTORE_GP();
+#endif
+}
+
+static cyg_bool
+lcd_comm_getc_timeout(void* __ch_data, cyg_uint8* ch)
+{
+ int delay_count;
+ cyg_bool res;
+
+ delay_count = _timeout * 10; // delay in .1 ms steps
+ for(;;) {
+ res = lcd_comm_getc_nonblock(__ch_data, ch);
+ if (res || 0 == delay_count--)
+ break;
+ CYGACC_CALL_IF_DELAY_US(100);
+ }
+ return res;
+}
+
+static int
+lcd_comm_control(void *__ch_data, __comm_control_cmd_t __func, ...)
+{
+ static int vector = 0;
+ int ret = -1;
+ static int irq_state = 0;
+
+ CYGARC_HAL_SAVE_GP();
+
+ switch (__func) {
+ case __COMMCTL_IRQ_ENABLE:
+ ret = irq_state;
+ irq_state = 1;
+#if 0
+ if (vector == 0) {
+ vector = eth_drv_int_vector();
+ }
+ HAL_INTERRUPT_UNMASK(vector);
+#endif
+ break;
+ case __COMMCTL_IRQ_DISABLE:
+ ret = irq_state;
+ irq_state = 0;
+#if 0
+ HAL_INTERRUPT_MASK(vector);
+#endif
+ break;
+ case __COMMCTL_DBG_ISR_VECTOR:
+ ret = vector;
+ break;
+ case __COMMCTL_SET_TIMEOUT:
+ {
+ va_list ap;
+
+ va_start(ap, __func);
+
+ ret = _timeout;
+ _timeout = va_arg(ap, cyg_uint32);
+
+ va_end(ap);
+ break;
+ }
+ case __COMMCTL_FLUSH_OUTPUT:
+ case __COMMCTL_GETBAUD:
+ case __COMMCTL_SETBAUD:
+ ret = 0;
+ break;
+ default:
+ break;
+ }
+ CYGARC_HAL_RESTORE_GP();
+ return ret;
+}
+
+static int
+lcd_comm_isr(void *__ch_data, int* __ctrlc,
+ CYG_ADDRWORD __vector, CYG_ADDRWORD __data)
+{
+#if 0
+ char ch;
+
+ cyg_drv_interrupt_acknowledge(__vector);
+ *__ctrlc = 0;
+ if (lcd_comm_getc_nonblock(__ch_data, &ch)) {
+ if (ch == 0x03) {
+ *__ctrlc = 1;
+ }
+ }
+ return CYG_ISR_HANDLED;
+#endif
+ return 0;
+}
+
+static bool
+init_kbd_coord(int indx, char *prompt_char)
+{
+ char prompt[] = "Press %s on kbd graphic";
+ int off = ((VISIBLE_SCREEN_WIDTH-sizeof(prompt))/2)-1;
+ int off2 = ((VISIBLE_SCREEN_WIDTH-20)/2)-1;
+ struct ts_event tse;
+ struct key_event ke;
+ bool pen_down;
+ int i, down_timer, total_events;
+ int timeout = 100000;
+ unsigned long totalX, totalY;
+
+ lcd_moveto(off, screen_height/2);
+ lcd_printf(prompt, prompt_char);
+ lcd_moveto(off2, (screen_height/2)+2);
+ lcd_printf("Keep pen down until");
+ lcd_moveto(off2, (screen_height/2)+3);
+ lcd_printf("message disappears");
+ pen_down = false;
+ down_timer = 0;
+ total_events = 0;
+ totalX = totalY = 0;
+ // Wait for a pen-down event
+ while (!pen_down) {
+ if (ts_get_event(&tse)) {
+ if (!tse.up) {
+ pen_down = true;
+ }
+ }
+ if (key_get_event(&ke)) {
+ if (ke.button_info == (ATMEL_BUTTON_STATE_UP|ATMEL_BUTTON_RETURN)) {
+ return true;
+ }
+ }
+ if (--timeout == 0) {
+ // Give up if the guy hasn't pressed anything
+ return true;
+ }
+ }
+ // Now accumulate data
+ // Assumption: the Atmel can send at most 3 position reports
+ // per millisecond. We should wait for 50ms before moving on
+ while (total_events < 100) {
+ if (ts_get_event(&tse)) {
+ if (tse.up) {
+ pen_down = false;
+ continue;
+ } else {
+#ifdef PORTRAIT_MODE
+ totalX += tse.y;
+ totalY += tse.x;
+#else
+ totalX += tse.x;
+ totalY += tse.y;
+#endif
+ total_events++;
+ pen_down = true;
+ }
+ }
+ if (key_get_event(&ke)) {
+ if (ke.button_info == (ATMEL_BUTTON_STATE_UP|ATMEL_BUTTON_RETURN)) {
+ return true;
+ }
+ }
+ }
+ // Tell the guy we have enough data
+ lcd_moveto(off, screen_height/2);
+ for (i = 0; i < screen_width; i++) {
+ lcd_putc(' ');
+ }
+ // Now wait for the pen to go back up
+ while (pen_down) {
+ if (ts_get_event(&tse)) {
+ if (tse.up) {
+ pen_down = false;
+ }
+ }
+ if (key_get_event(&ke)) {
+ if (ke.button_info == (ATMEL_BUTTON_STATE_UP|ATMEL_BUTTON_RETURN)) {
+ return true;
+ }
+ }
+ }
+ kbd_limits[indx].x = totalX / total_events;
+ kbd_limits[indx].y = totalY / total_events;
+ return false;
+}
+
+static bool
+close(int c1, int c2)
+{
+ int diff = c1 - c2;
+ if (diff < 0) diff = -diff;
+ return (diff < 50);
+}
+
+#define LCD_COMM_CHANNEL 1 // Logical I/O channel used for LCD/TS console
+
+void
+lcd_comm_init(void)
+{
+ static int init = 0;
+ bool need_params = true;
+ unsigned short cksum, param;
+ int i;
+
+ if (!init) {
+ hal_virtual_comm_table_t* comm;
+ int cur = CYGACC_CALL_IF_SET_CONSOLE_COMM(CYGNUM_CALL_IF_SET_COMM_ID_QUERY_CURRENT);
+
+ // Setup procs in the vector table
+ CYGACC_CALL_IF_SET_CONSOLE_COMM(LCD_COMM_CHANNEL);
+ comm = CYGACC_CALL_IF_CONSOLE_PROCS();
+ //CYGACC_COMM_IF_CH_DATA_SET(*comm, chan);
+ CYGACC_COMM_IF_WRITE_SET(*comm, lcd_comm_write);
+ CYGACC_COMM_IF_READ_SET(*comm, lcd_comm_read);
+ CYGACC_COMM_IF_PUTC_SET(*comm, lcd_comm_putc);
+ CYGACC_COMM_IF_GETC_SET(*comm, lcd_comm_getc);
+ CYGACC_COMM_IF_CONTROL_SET(*comm, lcd_comm_control);
+ CYGACC_COMM_IF_DBG_ISR_SET(*comm, lcd_comm_isr);
+ CYGACC_COMM_IF_GETC_TIMEOUT_SET(*comm, lcd_comm_getc_timeout);
+
+ // Restore original console
+ CYGACC_CALL_IF_SET_CONSOLE_COMM(cur);
+
+ init = 1;
+
+ // Pick up parameters for virtual keyboard from RAM
+ cksum = (unsigned short)&_ipaq_LCD_params[0];
+ for (i = 0; i < 4; i++) {
+ param = _ipaq_LCD_params[i*2];
+ kbd_limits[i].x = param;
+ cksum ^= param;
+ param = _ipaq_LCD_params[(i*2)+1];
+ kbd_limits[i].y = param;
+ cksum ^= param;
+ }
+ need_params = cksum != _ipaq_LCD_params[(4*2)+1];
+
+ // If the data are currently bad, set up some defaults
+ if (need_params) {
+ kbd_limits[CS_UL].x = 994;
+ kbd_limits[CS_UL].y = 710;
+ kbd_limits[CS_UR].x = 413;
+ kbd_limits[CS_UR].y = 710;
+ kbd_limits[CS_LL].x = 989;
+ kbd_limits[CS_LL].y = 839;
+ kbd_limits[CS_LR].x = 411;
+ kbd_limits[CS_LR].y = 836;
+ }
+
+ if (!need_params) {
+ // See if the guy wants to force new parameters
+ lcd_clear();
+ lcd_moveto(5, screen_height/2);
+ lcd_printf("Calibrate touch screen?\n");
+ lcd_moveto(5, (screen_height/2)+1);
+ for (i = 0; i < 10; i++) {
+ struct key_event ke;
+ if (key_get_event(&ke) && ((ke.button_info & ATMEL_BUTTON_STATE) == ATMEL_BUTTON_STATE_UP)) {
+ need_params = (ke.button_info & ATMEL_BUTTON_VALUE) != ATMEL_BUTTON_RETURN;
+ break;
+ }
+ CYGACC_CALL_IF_DELAY_US(50000);
+ lcd_putc('.');
+ }
+ }
+
+ while (need_params) {
+ cursor_enable = false;
+ lcd_clear();
+ lcd_kbd(LCD_KBD_NORM);
+ if (init_kbd_coord(CS_UL, "'q'")) {
+ goto no_kbd;
+ }
+ if (init_kbd_coord(CS_UR, "BS ")) {
+ goto no_kbd;
+ }
+ if (init_kbd_coord(CS_LL, "SHIFT")) {
+ goto no_kbd;
+ }
+ if (init_kbd_coord(CS_LR, "'/' ")) {
+ goto no_kbd;
+ }
+ cursor_enable = true;
+ if (close(kbd_limits[CS_UL].x, kbd_limits[CS_LL].x) &&
+ close(kbd_limits[CS_UR].x, kbd_limits[CS_LR].x) &&
+ close(kbd_limits[CS_UL].y, kbd_limits[CS_UR].y) &&
+ close(kbd_limits[CS_LL].y, kbd_limits[CS_LR].y)) {
+ // Save values so we don't need to repeat this
+ cksum = (unsigned short)&_ipaq_LCD_params[0];
+ for (i = 0; i < 4; i++) {
+ param = kbd_limits[i].x;
+ cksum ^= param;
+ _ipaq_LCD_params[i*2] = param;
+ param = kbd_limits[i].y;
+ cksum ^= param;
+ _ipaq_LCD_params[(i*2)+1] = param;
+ }
+ _ipaq_LCD_params[(4*2)+1] = cksum;
+ break;
+ }
+ }
+
+ no_kbd:
+ // Munge the limits to allow for some slop
+ if (kbd_limits[CS_UL].x < kbd_limits[CS_UR].x) {
+ minX = min(kbd_limits[CS_UL].x, kbd_limits[CS_LL].x) - KBD_FUZZ;
+ maxX = max(kbd_limits[CS_UR].x, kbd_limits[CS_LR].x) + KBD_FUZZ;
+ } else {
+ minX = min(kbd_limits[CS_UR].x, kbd_limits[CS_LR].x) - KBD_FUZZ;
+ maxX = max(kbd_limits[CS_UL].x, kbd_limits[CS_LL].x) + KBD_FUZZ;
+ }
+ if (kbd_limits[CS_UL].y < kbd_limits[CS_LL].y) {
+ minY = min(kbd_limits[CS_UL].y, kbd_limits[CS_UR].y) - KBD_FUZZ;
+ maxY = max(kbd_limits[CS_LL].y, kbd_limits[CS_LR].y) + KBD_FUZZ;
+ } else {
+ minY = min(kbd_limits[CS_LR].y, kbd_limits[CS_LL].y) - KBD_FUZZ;
+ maxY = max(kbd_limits[CS_UL].y, kbd_limits[CS_UR].y) + KBD_FUZZ;
+ }
+ cursor_enable = true;
+ lcd_clear();
+ if (kbd_active) {
+ lcd_kbd(LCD_KBD_NORM);
+ }
+#if 0
+ diag_printf("KBD Limits[] = %d/%d, %d/%d, %d/%d, %d/%d\n",
+ kbd_limits[CS_UL].x, kbd_limits[CS_UL].y,
+ kbd_limits[CS_UR].x, kbd_limits[CS_UR].y,
+ kbd_limits[CS_LL].x, kbd_limits[CS_LL].y,
+ kbd_limits[CS_LR].x, kbd_limits[CS_LR].y);
+ diag_printf("KBD in %d/%d .. %d/%d\n", minX, minY, maxX, maxY);
+ diag_printf("screen %d x %d\n", screen_height, screen_width);
+#endif
+ }
+}
+
+// Control state of LCD display - only called by logical I/O layers
+
+void
+lcd_on(bool enable)
+{
+ static bool enabled = true;
+ int cur = CYGACC_CALL_IF_SET_CONSOLE_COMM(CYGNUM_CALL_IF_SET_COMM_ID_QUERY_CURRENT);
+
+ if (cur != LCD_COMM_CHANNEL)
+ enable = false; // Only enable display if LCD is the active "console"
+ if (enable) {
+ if (!enabled) {
+ ipaq_EGPIO(SA1110_EIO_LCD_3V3|SA1110_EIO_LCD_CTRL|SA1110_EIO_LCD_5V|SA1110_EIO_LCD_VDD,
+ SA1110_EIO_LCD_3V3_ON|SA1110_EIO_LCD_CTRL_ON|SA1110_EIO_LCD_5V_ON|SA1110_EIO_LCD_VDD_ON);
+ lcd_brightness(_lcd_brightness);
+ }
+ enabled = true;
+ } else {
+ if (enabled) {
+ lcd_brightness(0);
+ ipaq_EGPIO(SA1110_EIO_LCD_3V3|SA1110_EIO_LCD_CTRL|SA1110_EIO_LCD_5V|SA1110_EIO_LCD_VDD,
+ SA1110_EIO_LCD_3V3_OFF|SA1110_EIO_LCD_CTRL_OFF|SA1110_EIO_LCD_5V_OFF|SA1110_EIO_LCD_VDD_OFF);
+ }
+ enabled = false;
+ }
+}
+#endif
diff --git a/ecos/packages/hal/arm/sa11x0/ipaq/current/src/redboot_cmds.c b/ecos/packages/hal/arm/sa11x0/ipaq/current/src/redboot_cmds.c
new file mode 100644
index 0000000..19c2c64
--- /dev/null
+++ b/ecos/packages/hal/arm/sa11x0/ipaq/current/src/redboot_cmds.c
@@ -0,0 +1,235 @@
+//==========================================================================
+//
+// redboot_cmds.c
+//
+// iPAQ [platform] specific RedBoot commands
+//
+//==========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//==========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): gthomas
+// Contributors: gthomas
+// Richard Panton <richard.panton@3glab.com>
+// Date: 2001-02-24
+// Purpose:
+// Description:
+//
+// This code is part of RedBoot (tm).
+//
+//####DESCRIPTIONEND####
+//
+//==========================================================================
+
+#include <redboot.h>
+
+#include <cyg/hal/hal_sa11x0.h> // Board definitions
+#include <cyg/hal/ipaq.h>
+#include <cyg/hal/hal_intr.h>
+#include <cyg/hal/hal_cache.h>
+
+// Exported CLI function(s)
+static void do_gpio(int argc, char *argv[]);
+RedBoot_cmd("gpio",
+ "Query and/or set the GPIO status",
+ "[-s bits] [-c bits]",
+ do_gpio
+ );
+
+static void do_egpio(int argc, char *argv[]);
+RedBoot_cmd("egpio",
+ "Query and/or set the EGPIO status",
+ "[-s bits] [-c bits]",
+ do_egpio
+ );
+
+static void do_mem(int argc, char *argv[]);
+RedBoot_cmd("mem",
+ "Set a memory location",
+ "[-h|-b] [-a <address>] <data>",
+ do_mem
+ );
+
+static void do_physaddr(int argc, char *argv[]);
+RedBoot_cmd("physaddr",
+ "Converts a virtual to a physical address",
+ "<address>",
+ do_physaddr
+ );
+
+static void
+do_gpio(int argc,char *argv[]) {
+ struct option_info opts[2];
+ bool set_bits_set, clr_bits_set;
+ int set_bits, clr_bits;
+ init_opts(&opts[0], 's', true, OPTION_ARG_TYPE_NUM,
+ (void **)&set_bits, (bool *)&set_bits_set, "bits to set");
+ init_opts(&opts[1], 'c', true, OPTION_ARG_TYPE_NUM,
+ (void **)&clr_bits, (bool *)&clr_bits_set, "bits to clear");
+ if (!scan_opts(argc, argv, 1, opts, 2, NULL, 0, NULL))
+ {
+ return;
+ }
+ if ( !set_bits_set && !clr_bits_set ) {
+ // display only
+ diag_printf(" gpio = 0x%08lX\n", *SA11X0_GPIO_PIN_LEVEL);
+ diag_printf(" 0x%08lX are output\n", *SA11X0_GPIO_PIN_DIRECTION);
+ diag_printf(" 0x%08lX rising edge detect\n", *SA11X0_GPIO_RISING_EDGE_DETECT);
+ diag_printf(" 0x%08lX falling edge detect\n", *SA11X0_GPIO_FALLING_EDGE_DETECT);
+ diag_printf(" 0x%08lX edge detect status\n", *SA11X0_GPIO_EDGE_DETECT_STATUS);
+ diag_printf(" 0x%08lX alternate function\n", *SA11X0_GPIO_ALTERNATE_FUNCTION);
+ return;
+ }
+ diag_printf( " gpio 0x%08lX, ", *SA11X0_GPIO_PIN_LEVEL);
+ if ( set_bits_set ) {
+ diag_printf("set(0x%08X) ",set_bits);
+ *SA11X0_GPIO_PIN_OUTPUT_SET = set_bits;
+ }
+ if ( clr_bits_set ) {
+ diag_printf("clear(0x%08X) ",clr_bits);
+ *SA11X0_GPIO_PIN_OUTPUT_CLEAR = clr_bits;
+ }
+ diag_printf( "gives 0x%08lX\n", *SA11X0_GPIO_PIN_LEVEL);
+}
+
+static void
+do_egpio(int argc,char *argv[]) {
+ struct option_info opts[2];
+ bool set_bits_set, clr_bits_set;
+ int set_bits, clr_bits;
+ init_opts(&opts[0], 's', true, OPTION_ARG_TYPE_NUM,
+ (void **)&set_bits, (bool *)&set_bits_set, "bits to set");
+ init_opts(&opts[1], 'c', true, OPTION_ARG_TYPE_NUM,
+ (void **)&clr_bits, (bool *)&clr_bits_set, "bits to clear");
+ if (!scan_opts(argc, argv, 1, opts, 2, NULL, 0, NULL)) return;
+ if ( !set_bits_set && !clr_bits_set ) {
+ // display only
+ diag_printf(" egpio = 0x%04X\n", (int)(_ipaq_EGPIO & 0xffff));
+ return;
+ }
+ diag_printf( " egpio 0x%04X, ", (int)(_ipaq_EGPIO & 0xffff));
+ if ( set_bits_set ) {
+ diag_printf("set(0x%08X) ",set_bits);
+ ipaq_EGPIO( set_bits, set_bits );
+ }
+ if ( clr_bits_set ) {
+ diag_printf("clear(0x%08X) ",clr_bits);
+ ipaq_EGPIO( clr_bits, 0x0000 );
+ }
+ diag_printf( "gives 0x%04X\n", (int)(_ipaq_EGPIO & 0xffff));
+}
+
+static void
+do_mem(int argc, char *argv[]) {
+ struct option_info opts[3];
+ bool mem_half_word, mem_byte;
+ static int address = 0x00000000;
+ int value;
+ init_opts(&opts[0], 'b', false, OPTION_ARG_TYPE_FLG,
+ (void**)&mem_byte, 0, "write a byte");
+ init_opts(&opts[1], 'h', false, OPTION_ARG_TYPE_FLG,
+ (void**)&mem_half_word, 0, "write a half-word");
+ init_opts(&opts[2], 'a', true, OPTION_ARG_TYPE_NUM,
+ (void**)&address, NULL, "address to write at");
+ if (!scan_opts(argc, argv, 1, opts, 3, (void*)&value, OPTION_ARG_TYPE_NUM, "address to set"))
+ return;
+ if ( mem_byte && mem_half_word ) {
+ diag_printf("*ERR: Should not specify both byte and half-word access\n");
+ } else if ( mem_byte ) {
+ *(cyg_uint8*)address = (cyg_uint8)(value & 255);
+ diag_printf(" Set 0x%08X to 0x%02X (result 0x%02X)\n", address, value & 255, (int)*(cyg_uint8*)address );
+ } else if ( mem_half_word ) {
+ if ( address & 1 ) {
+ diag_printf( "*ERR: Badly aligned address 0x%08X for half-word store\n", address );
+ } else {
+ *(cyg_uint16*)address = (cyg_uint16)(value & 0xffff);
+ diag_printf(" Set 0x%08X to 0x%04X (result 0x%04X)\n", address, value & 0xffff, (int)*(cyg_uint16*)address );
+ }
+ } else {
+ if ( address & 3 ) {
+ diag_printf( "*ERR: Badly aligned address 0x%08X for word store\n", address );
+ } else {
+ *(cyg_uint32*)address = (cyg_uint32)value;
+ diag_printf(" Set 0x%08X to 0x%08X (result 0x%08X)\n", address, value, (int)*(cyg_uint32*)address );
+ }
+ }
+}
+
+static void
+do_physaddr(int argc, char *argv[]) {
+ unsigned long phys_addr, virt_addr;
+
+ if ( !scan_opts(argc,argv,1,0,0,(void*)&virt_addr, OPTION_ARG_TYPE_NUM, "virtual address") )
+ return;
+ phys_addr = hal_virt_to_phys_address(virt_addr);
+ diag_printf("Virtual addr %p = physical addr %p\n", virt_addr, phys_addr);
+}
+
+// Get here when RedBoot is idle. If it's been long enough, then
+// dim the LCD. The problem is - how to determine other activities
+// so at this doesn't get in the way. In the default case, this will
+// be called from RedBoot every 10ms (CYGNUM_REDBOOT_CLI_IDLE_TIMEOUT)
+
+#define MAX_IDLE_TIME (30*100)
+#ifdef CYGSEM_IPAQ_LCD_COMM
+extern void lcd_on(bool);
+#endif
+
+static void
+idle(bool is_idle)
+{
+ static int idle_time = 0;
+ static bool was_idled = false;
+
+ if (is_idle) {
+ if (!was_idled) {
+ if (++idle_time == MAX_IDLE_TIME) {
+ was_idled = true;
+#ifdef CYGSEM_IPAQ_LCD_COMM
+ lcd_on(false);
+#endif
+ }
+ }
+ } else {
+ idle_time = 0;
+ if (was_idled) {
+ was_idled = false;
+#ifdef CYGSEM_IPAQ_LCD_COMM
+ lcd_on(true);
+#endif
+ }
+ }
+}
+
+RedBoot_idle(idle, RedBoot_AFTER_NETIO);
diff --git a/ecos/packages/hal/arm/sa11x0/nano/current/ChangeLog b/ecos/packages/hal/arm/sa11x0/nano/current/ChangeLog
new file mode 100644
index 0000000..c8a1862
--- /dev/null
+++ b/ecos/packages/hal/arm/sa11x0/nano/current/ChangeLog
@@ -0,0 +1,217 @@
+2009-01-31 Bart Veer <bartv@ecoscentric.com>
+
+ * cdl/hal_arm_sa11x0_nano.cdl: update compiler flags for
+ recent gcc
+
+2003-09-21 Gary Thomas <gary@mlbassoc.com>
+
+ * misc/redboot_POST.ecm:
+ * misc/redboot_RAM.ecm: Adjust for changes in RedBoot
+ template - DNS now must be enabled manually.
+
+2003-02-13 Patrick Doyle <wpd@delcomsys.com>
+ * src/nano_misc.c: Replaced explicit prototype of memset with
+ #include <string.h>.
+
+2002-08-12 Mark Salter <msalter@redhat.com>
+
+ * misc/redboot_POST.ecm: Remove CYGSEM_REDBOOT_ARM_LINUX_BOOT.
+ * misc/redboot_RAM.ecm: Ditto.
+
+2002-05-14 Jesper Skov <jskov@redhat.com>
+
+ * src/nano_misc.c: Fixed warning.
+
+2002-05-07 Gary Thomas <gthomas@redhat.com>
+
+ * cdl/hal_arm_sa11x0_nano.cdl:
+ Standardize CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_DEFAULT usage.
+
+2002-03-06 Jesper Skov <jskov@redhat.com>
+
+ * misc/redboot_RAM.ecm: Updated. Added zlib.
+ * misc/redboot_ROM.ecm: Same.
+
+2002-01-30 Jonathan Larmour <jlarmour@redhat.com>
+
+ * include/nano.h (HAL_PCI_DO_CONFIG_ACCESS): If requesting vendor
+ config, check it isn't 0 or 256 which would be bogus - instead
+ this indicates the device is absent, e.g. the second eth controller
+ that is found on the commEngine, but not on the nanoEngine.
+
+2002-01-28 Jesper Skov <jskov@redhat.com>
+
+ * include/plf_io.h: Added.
+
+ * cdl/hal_arm_sa11x0_nano.cdl: Remove explicit plf_io.h
+ declaration.
+
+2001-05-02 Hugo Tyson <hmt@redhat.com>
+
+ * src/nano_misc.c (hal_mmu_init): Set up PCI memory in the new
+ location, where it will not already be mapped by the default
+ layout. This requires "stealing" RAM from the linear layout.
+ It's done this way so that a RAM app will work OK atop an
+ old-style RedBoot with the old PCI window area set up.
+ (hal_arm_mem_real_region_top): Better comments, and a safety
+ check; do not repeat the test for boundary movement.
+
+ * include/pkgconf/mlt_arm_sa11x0_nano_ram.ldi:
+ * include/pkgconf/mlt_arm_sa11x0_nano_ram.h:
+ * include/pkgconf/mlt_arm_sa11x0_nano_ram.mlt:
+ * include/pkgconf/mlt_arm_sa11x0_nano_post.ldi:
+ * include/pkgconf/mlt_arm_sa11x0_nano_post.h:
+ * include/pkgconf/mlt_arm_sa11x0_nano_post.mlt:
+ Add "fixed" region to contain PCI window at 0xfa00000 (250Mb),
+ well away from normal memory. Adjust ram region size to 15Mb - a
+ smaller possible memory installation, with the 1Mb default PCI
+ window removed.
+
+2001-04-27 Jonathan Larmour <jlarmour@redhat.com>
+
+ * cdl/hal_arm_sa11x0_nano.cdl: Remove redundant -Wl,-N from link flags
+
+2001-04-12 Hugo Tyson <hmt@redhat.com>
+
+ * src/nano_misc.c (hal_arm_mem_real_region_top): Also report
+ variants on the CYGMEM_SECTION_heap1 as described by default.
+ This is ugly, but necessary, else the heap tries to use memory
+ that is not installed. Oh, for a proper MLT!
+
+2001-04-02 Hugo Tyson <hmt@redhat.com>
+
+ * misc/readme.txt: Update the readme to reflect more info about
+ using the nano target.
+
+2001-03-29 Hugo Tyson <hmt@redhat.com>
+
+ * src/nano_misc.c (hal_mmu_init): Find the real physical address
+ for mapping the uncacheable, unbufferable PCI window - it might be
+ various places depending on what SDRAMs are installed.
+
+2001-03-14 Hugo Tyson <hmt@redhat.com>
+
+ * include/nano.h (HAL_PCI_INIT): Disconnect the two ethernet
+ devices from the PCI bus during init so that we can re-scan during
+ startup regardless of what happened before - such as
+ network-enabled RedBoot doing the same setup already.
+
+ * misc/redboot_POST.ecm:
+ * misc/redboot_RAM.ecm:
+ Enable package CYGPKG_IO_ETH_DRIVERS so that RedBoot is network
+ capable. Disable CYGPKG_DEVS_ETH_ARM_NANO_ETH1 so that it uses
+ only the first ether device. Tidy some comments and whitespace.
+
+2001-03-08 Jesper Skov <jskov@redhat.com>
+
+ * cdl/hal_arm_sa11x0_nano.cdl: Removed
+ CYGINT_HAL_VIRTUAL_VECTOR_SUPPORT_GUARANTEED which is now the
+ default.
+
+2001-03-01 Hugo Tyson <hmt@redhat.com>
+
+ * include/pkgconf/mlt_arm_sa11x0_nano_post.h:
+ * include/pkgconf/mlt_arm_sa11x0_nano_post.ldi:
+ * include/pkgconf/mlt_arm_sa11x0_nano_post.mlt:
+ * include/pkgconf/mlt_arm_sa11x0_nano_ram.h:
+ * include/pkgconf/mlt_arm_sa11x0_nano_ram.ldi:
+ * include/pkgconf/mlt_arm_sa11x0_nano_ram.mlt:
+ Add MLT definition of PCI window.
+ I chose 0x1e00000 ie. megabyte 30 because I believe
+ megabyte 31 is used by RedBoot for buffers or stacks.
+
+ * include/nano.h: Take external MLT definition of PCI window for
+ defining BASE, SIZE symbols. Set the interrupts on GPIO0 and
+ GPIO1 to be falling-edge in HAL_PCI_INIT(). Don't define any of
+ this unless CYGPKG_IO_PCI and not assembler.
+
+ * src/nano_misc.c (hal_mmu_init): Take external MLT definition of
+ PCI window. Also define and initialize an int holding the real
+ address of the PCI window, if CYGPKG_IO_PCI.
+
+2001-02-28 Hugo Tyson <hmt@redhat.com>
+
+ * include/plf_mmap.h (HAL_VIRT_TO_PHYS_ADDRESS): [et al] Use
+ variant HAL routines which scan the true memory map installed.
+ This is necessary for dealing with eg. PCI window - also future
+ similar targets with different physical memory arrangements,
+
+ * src/nano_misc.c (plf_hardware_init): Perform MMU initialization
+ even in RAM startup - so that different configurations of
+ ROM(RedBoot) and RAM app can work together.
+ (hal_mmu_init): Perform partial initialization when in RAM startup
+ - so that ROM settings can be overridden eg. for PCI non-cacheable
+ memory windows and the like. [Incomplete initial version.]
+
+ * include/nano.h (HAL_PCI_INIT): Implement this and all its mates,
+ ie. a PCI device driver for the nanoBridge and *very specifically*
+ its two attached i82559s only - it's by no means general, because
+ it's not a proper implementation of a PCI bridge.
+
+2001-02-22 Hugo Tyson <hmt@redhat.com>
+
+ * misc/redboot_POSTecm:
+ * misc/redboot_RAM.ecm: add configuration of the Flash Image
+ System initialization in RedBoot.
+
+2001-02-20 Hugo Tyson <hmt@redhat.com>
+
+ * cdl/hal_arm_sa11x0_nano.cdl: New CDL describing serial
+ ports - CYGHWR_HAL_ARM_SA11X0_UART1,3.
+
+ * cdl/hal_arm_sa11x0_nano.cdl: Also changed the default baud rates
+ to 38400, having realized that the other port works just fine too.
+ So you can put your serial line on the non-BSE port for normal
+ work and not be hassled by out-of-time characters over reset.
+
+2001-02-15 Hugo Tyson <hmt@redhat.com>
+
+ * misc/redboot_POST.ecm:
+ * misc/redboot_RAM.ecm:
+ Add CYGPKG_IO_FLASH for RedBoot builds now that flash driver
+ exists. CYGPKG_DEVS_FLASH_NANO + CYGPKG_DEVS_FLASH_STRATA
+
+2001-02-14 Hugo Tyson <hmt@redhat.com>
+
+ * include/hal_platform_setup.h: Clean up debug and cache hacks to
+ get it limping along. Import proper value (as read from system
+ regs) to SDRAM controller setup - in case true ROM startup is ever
+ used.
+
+ * src/nano_misc.c (hal_arm_mem_real_region_top): Add. Support
+ hal_dram_size.
+ (hal_mmu_init): Add a SDRAM sizer like others we have. Just in
+ case. Deals with 32Mb sized parts also.
+
+ * cdl/hal_arm_sa11x0_nano.cdl: implements
+ CYGINT_HAL_ARM_MEM_REAL_REGION_TOP
+
+2001-02-14 Hugo Tyson <hmt@redhat.com>
+
+ * hal/arm/sa11x0/nano: New package, based on Assabet
+ HAL. This is the nanoEngine from Bright Star Engineering; an
+ SA1110 CPU + 2x i82559 ethernets.
+
+//===========================================================================
+// ####GPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 2 or (at your option) any
+// later version.
+//
+// This program is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the
+// Free Software Foundation, Inc., 51 Franklin Street,
+// Fifth Floor, Boston, MA 02110-1301, USA.
+// -------------------------------------------
+// ####GPLCOPYRIGHTEND####
+//===========================================================================
diff --git a/ecos/packages/hal/arm/sa11x0/nano/current/cdl/hal_arm_sa11x0_nano.cdl b/ecos/packages/hal/arm/sa11x0/nano/current/cdl/hal_arm_sa11x0_nano.cdl
new file mode 100644
index 0000000..1ef871b
--- /dev/null
+++ b/ecos/packages/hal/arm/sa11x0/nano/current/cdl/hal_arm_sa11x0_nano.cdl
@@ -0,0 +1,388 @@
+# ====================================================================
+#
+# hal_arm_sa11x0_nano.cdl
+#
+# ARM SA1110/nanoEngine platform HAL package configuration data
+#
+# ====================================================================
+## ####ECOSGPLCOPYRIGHTBEGIN####
+## -------------------------------------------
+## This file is part of eCos, the Embedded Configurable Operating System.
+## Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+##
+## eCos is free software; you can redistribute it and/or modify it under
+## the terms of the GNU General Public License as published by the Free
+## Software Foundation; either version 2 or (at your option) any later
+## version.
+##
+## eCos is distributed in the hope that it will be useful, but WITHOUT
+## ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+## FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+## for more details.
+##
+## You should have received a copy of the GNU General Public License
+## along with eCos; if not, write to the Free Software Foundation, Inc.,
+## 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+##
+## As a special exception, if other files instantiate templates or use
+## macros or inline functions from this file, or you compile this file
+## and link it with other works to produce a work based on this file,
+## this file does not by itself cause the resulting work to be covered by
+## the GNU General Public License. However the source code for this file
+## must still be made available in accordance with section (3) of the GNU
+## General Public License v2.
+##
+## This exception does not invalidate any other reasons why a work based
+## on this file might be covered by the GNU General Public License.
+## -------------------------------------------
+## ####ECOSGPLCOPYRIGHTEND####
+# ====================================================================
+######DESCRIPTIONBEGIN####
+#
+# Author(s): gthomas
+# Original data: gthomas
+# Contributors: hmt
+# Date: 2001-02-12
+#
+#####DESCRIPTIONEND####
+#
+# ====================================================================
+cdl_package CYGPKG_HAL_ARM_SA11X0_NANO {
+ display "ARM SA1110/nanoEngine evaluation board"
+ parent CYGPKG_HAL_ARM_SA11X0
+ hardware
+ include_dir cyg/hal
+ define_header hal_arm_sa11x0_nano.h
+ description "
+ This HAL platform package provides
+ support for the Intel StrongARM SA1110 based evalation board,
+ made by Bright Star Engineering (BSE), known as 'nanoEngine'."
+
+ compile nano_misc.c
+
+ implements CYGINT_HAL_DEBUG_GDB_STUBS
+ implements CYGINT_HAL_DEBUG_GDB_STUBS_BREAK
+ implements CYGINT_HAL_VIRTUAL_VECTOR_SUPPORT
+ implements CYGINT_HAL_ARM_MEM_REAL_REGION_TOP
+
+ implements CYGHWR_HAL_ARM_SA11X0_UART1
+ implements CYGHWR_HAL_ARM_SA11X0_UART3
+
+ 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_nano.h>"
+ puts $::cdl_header "#define HAL_PLATFORM_CPU \"StrongARM 1110\""
+ puts $::cdl_header "#define HAL_PLATFORM_BOARD \"nanoEngine\""
+ puts $::cdl_header "#define HAL_PLATFORM_EXTRA \"by Bright Star Engineering\""
+ puts $::cdl_header "#define HAL_ARCH_PROGRAM_NEW_STACK nano_program_new_stack"
+ }
+
+ 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 nanoEngine 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_component CYGBLD_HAL_STARTUP_ROM_POST_BEFORE_ECOS {
+ display "POST code exists at base of flash"
+ active_if { CYG_HAL_STARTUP == "ROM" }
+ calculated 1 ; # REQUIRED for BSE BOOT PROM
+ description "
+ To accommodate POST (power-on self-test) code,
+ or other preboot loader code such as the BSE nanoEngine Firmware,
+ in the start of
+ the flash, that is run at startup, we can link RedBoot (or any
+ ROM start eCos application) for a higher address, specifically
+ 256kBytes higher than usual in this case."
+
+ cdl_option CYGBLD_HAL_STARTUP_ROM_POST_OMIT_SDRAM_INIT {
+ display "Omit SDRAM initialization if already set up"
+ calculated 1 ; # REQUIRED for BSE BOOT PROM
+ description "
+ POST code will likely already initialize SDRAM. This option
+ enables code that omits SDRAM initialization, if it appears
+ already to be set up."
+ }
+ }
+ }
+
+
+ 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 ; # BUT BSE BOOT PROM IS 9600
+ 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 ; # BUT BSE BOOT PROM IS 9600
+ 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
+ description "
+ Channel 1 is the little 6-way phone socket, connected to UART3.
+ Channel 0 is the little 6-way phone socket, connected to UART1.
+ Channel 0 is nearest the power socket and reset button.
+ Channel 0 is the default for all serial I/O."
+ }
+
+ cdl_option CYGNUM_HAL_VIRTUAL_VECTOR_DEBUG_CHANNEL {
+ display "Debug serial port"
+ active_if CYGPRI_HAL_VIRTUAL_VECTOR_DEBUG_CHANNEL_CONFIGURABLE
+ flavor data
+ legal_values 0 to CYGNUM_HAL_VIRTUAL_VECTOR_COMM_CHANNELS-1
+ default_value 0
+ description "
+ The nanoEngine 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_DEFAULT {
+ display "Default console channel."
+ flavor data
+ legal_values 0 to CYGNUM_HAL_VIRTUAL_VECTOR_COMM_CHANNELS-1
+ calculated 0
+ }
+
+ cdl_option CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL {
+ display "Diagnostic serial port"
+ active_if CYGPRI_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_CONFIGURABLE
+ flavor data
+ legal_values 0 to CYGNUM_HAL_VIRTUAL_VECTOR_COMM_CHANNELS-1
+ default_value CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_DEFAULT
+ description "
+ The nanoEngine 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 { CYGBLD_GLOBAL_WARNFLAGS . CYGBLD_ARCH_CFLAGS .
+ "-mcpu=strongarm1100 -g -O2 -ffunction-sections -fdata-sections -fno-rtti -fno-exceptions " }
+ 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 { CYGBLD_ARCH_LDFLAGS . "-mcpu=strongarm1100 -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) --remove-section=.fixed_vectors -O binary $< $@
+ }
+ }
+ }
+
+ cdl_component CYGPKG_HAL_ARM_SA11X0_NANO_OPTIONS {
+ display "StrongARM SA1110/BRIGHTSTAR NANOENGINE 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_NANO_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 nanoEngine HAL. These flags are used in addition
+ to the set of global flags."
+ }
+
+ cdl_option CYGPKG_HAL_ARM_SA11X0_NANO_CFLAGS_REMOVE {
+ display "Suppressed compiler flags"
+ flavor data
+ no_define
+ default_value { "" }
+ description "
+ This option modifies the set of compiler flags for
+ building the StrongARM nanoEngine HAL. These flags are removed from
+ the set of global flags if present."
+ }
+
+ cdl_option CYGPKG_HAL_ARM_SA11X0_NANO_TESTS {
+ display "StrongARM SA1110/nanoEngine tests"
+ flavor data
+ no_define
+# calculated { "tests/dram-test" }
+ calculated { "" }
+ description "
+ This option specifies the set of tests for the StrongARM nanoEngine HAL."
+ }
+ }
+
+ cdl_component CYGHWR_MEMORY_LAYOUT {
+ display "Memory layout"
+ flavor data
+ no_define
+ calculated { CYG_HAL_STARTUP == "RAM" ? "arm_sa11x0_nano_ram" : \
+ CYGBLD_HAL_STARTUP_ROM_POST_BEFORE_ECOS ? "arm_sa11x0_nano_post" : \
+ "arm_sa11x0_nano_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_nano_ram.ldi>" : \
+ CYGBLD_HAL_STARTUP_ROM_POST_BEFORE_ECOS ? "<pkgconf/mlt_arm_sa11x0_nano_post.ldi>" : \
+ "<pkgconf/mlt_arm_sa11x0_nano_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_nano_ram.h>" : \
+ CYGBLD_HAL_STARTUP_ROM_POST_BEFORE_ECOS ? "<pkgconf/mlt_arm_sa11x0_nano_post.h>" : \
+ "<pkgconf/mlt_arm_sa11x0_nano_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 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_REDBOOT_HAL_OPTIONS {
+ display "Redboot HAL options"
+ flavor none
+ no_define
+ parent CYGPKG_REDBOOT
+ active_if CYGPKG_REDBOOT
+ description "
+ This option lists the target's requirements for a valid Redboot
+ configuration."
+
+ # compile -library=libextras.a redboot_cmds.c
+
+ 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 $< $@
+ }
+ }
+ }
+
+}
diff --git a/ecos/packages/hal/arm/sa11x0/nano/current/include/hal_platform_setup.h b/ecos/packages/hal/arm/sa11x0/nano/current/include/hal_platform_setup.h
new file mode 100644
index 0000000..b686ead
--- /dev/null
+++ b/ecos/packages/hal/arm/sa11x0/nano/current/include/hal_platform_setup.h
@@ -0,0 +1,364 @@
+#ifndef CYGONCE_HAL_PLATFORM_SETUP_H
+#define CYGONCE_HAL_PLATFORM_SETUP_H
+
+/*=============================================================================
+//
+// hal_platform_setup.h
+//
+// Platform specific support for HAL (assembly code)
+//
+//=============================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): gthomas
+// Contributors: hmt
+// Date: 2001-02-12
+// Purpose: Intel SA1110/NanoEngine platform specific support routines
+// Description:
+// Usage: #include <cyg/hal/hal_platform_setup.h>
+// Only used by "vectors.S"
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================*/
+
+#include <pkgconf/system.h> // System-wide configuration info
+#include CYGBLD_HAL_VARIANT_H // Variant (SA11x0) specific configuration
+#include CYGBLD_HAL_PLATFORM_H // Platform specific configuration
+#include <cyg/hal/hal_sa11x0.h> // Variant specific hardware definitions
+#include <cyg/hal/hal_mmu.h> // MMU definitions
+#include <cyg/hal/nano.h> // Platform specific hardware definitions
+
+#if defined(CYG_HAL_STARTUP_ROM)
+#define PLATFORM_SETUP1 _platform_setup1
+#define CYGHWR_HAL_ARM_HAS_MMU
+// Tell the architectural HAL we might not be at the base of FLASH:
+#define CYGHWR_HAL_ROM_VADDR 0x50000000
+
+#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
+
+// ------------------------------------------------------------------------
+// These macros are in lieu of any LEDs on the board; in ROM <=> POST
+// startup on the nanoEngine, the serial out is initialized already, so you
+// can just poke chars into it:
+
+#if 0
+
+#define CYGHWR_ASCII \
+ and r1,r1,#0xf; \
+ cmps r1,#10; \
+ subge r1,r1,#10; \
+ addge r1,r1,#65; \
+ addlt r1,r1,#48;
+
+#define CYGHWR_LED_MACRO \
+ ldr r0,=SA11X0_UART1_DATA; \
+ mov r1,#255&((\x)); \
+ mov r1,r1, lsr #4; \
+ CYGHWR_ASCII \
+ str r1,[r0]; \
+ mov r1,#255&((\x)); \
+ CYGHWR_ASCII \
+ str r1,[r0]; \
+ mov r1,#0x2A; \
+ str r1,[r0]; \
+ PAUSE
+
+#define PAUSE \
+ ldr r1,=0x8000; \
+555: sub r1,r1,#1; \
+ cmp r1,#0; \
+ bne 555b;
+
+#define OUT \
+ mov r2,r0; \
+ mov r3,#8; \
+ ldr r0,=SA11X0_UART1_DATA; \
+ mov r1,#'='; \
+ str r1,[r0]; \
+ PAUSE \
+444: mov r1,r2,lsr#28; \
+ CYGHWR_ASCII \
+ str r1,[r0]; \
+ mov r2,r2,asl#4; \
+ subs r3,r3,#1; \
+ bge 444b; \
+ PAUSE \
+ mov r1,#' '; \
+ str r1,[r0]; \
+ PAUSE \
+
+#endif // 0, to define CYGHWR_LED_MACRO et al
+
+
+// ------------------------------------------------------------------------
+// This macro represents the initial startup code for the platform
+ .macro _platform_setup1
+
+ // Turn off diagnostic LEDs
+ LED 0x00
+
+#ifdef CYGBLD_HAL_STARTUP_ROM_POST_BEFORE_ECOS
+ // Then we must disable caches before starting initialization, else
+ // the jump to hyperspace, um, high addresses after MM is enabled
+ // will fail:
+ ldr r1,=MMU_Control_Init
+ mcr p15,0,r1,c1,c0
+ // and flush/trash all caches and their TLBs:
+ mov r0,#0
+ mcr p15,0,r0,c7,c5,0 // Icache
+ mcr p15,0,r0,c8,c5,0 // ITLB
+ mcr p15,0,r0,c7,c6,0 // Dcache
+ mcr p15,0,r0,c8,c6,0 // DTLB
+ // at least a linesworth of nops.
+ nop
+ nop
+ nop
+ nop
+ nop
+ nop
+ nop
+ nop
+#endif
+
+ LED 0x01
+
+ // Set up GPIO - they're all inputs initially.
+ ldr r0,=SA1110_GPIO_GRER_DEFAULT_VALUE
+ ldr r1,=SA11X0_GPIO_RISING_EDGE_DETECT
+ str r0,[r1]
+
+ ldr r0,=SA1110_GPIO_GFER_DEFAULT_VALUE
+ ldr r1,=SA11X0_GPIO_FALLING_EDGE_DETECT
+ str r0,[r1]
+
+ ldr r0,=SA1110_GPIO_GPOSR_DEFAULT_VALUE
+ ldr r1,=SA11X0_GPIO_PIN_OUTPUT_SET
+ str r0,[r1]
+
+ ldr r0,=SA1110_GPIO_GPOCR_DEFAULT_VALUE
+ ldr r1,=SA11X0_GPIO_PIN_OUTPUT_CLEAR
+ str r0,[r1]
+
+ ldr r0,=SA1110_GPIO_GAFR_DEFAULT_VALUE
+ ldr r1,=SA11X0_GPIO_ALTERNATE_FUNCTION
+ str r0,[r1]
+
+ // The other 3 leds should extinguish at this point
+ ldr r0,=SA1110_GPIO_GPDR_DEFAULT_VALUE
+ ldr r1,=SA11X0_GPIO_PIN_DIRECTION
+ str r0,[r1]
+
+ LED 0x10
+
+ // Disable clock switching
+ mcr p15,0,r0,\
+ SA11X0_TEST_CLOCK_AND_IDLE_REGISTER,\
+ SA11X0_DISABLE_CLOCK_SWITCHING_RM,\
+ SA11X0_DISABLE_CLOCK_SWITCHING_OPCODE
+
+ // Set up processor clock
+ ldr r1,=SA11X0_PWR_MGR_PLL_CONFIG
+ ldr r2,=SA11X0_PLL_CLOCK
+ str r2,[r1]
+
+ // Turn clock switching back on
+ mcr p15,0,r0,\
+ SA11X0_TEST_CLOCK_AND_IDLE_REGISTER,\
+ SA11X0_ENABLE_CLOCK_SWITCHING_RM,\
+ SA11X0_ENABLE_CLOCK_SWITCHING_OPCODE
+ nop
+ nop
+
+ LED 0x40
+
+#ifdef CYGBLD_HAL_STARTUP_ROM_POST_OMIT_SDRAM_INIT
+ // If DRAM already enabled then skip its configuration.
+ ldr r1,=SA11X0_DRAM_CONFIGURATION
+ ldr r2,[r1]
+ ands r2, r2, #0xf
+ bne 20f
+#endif // CYGBLD_HAL_STARTUP_ROM_POST_OMIT_SDRAM_INIT
+
+ // Initialize DRAM controller
+ ldr r1,=dram_table
+ ldr r2,=__exception_handlers
+ sub r1,r1,r2
+ ldr r2,[r1],#4 // First control register
+10: ldr r3,[r1],#4
+ str r3,[r2]
+ ldr r2,[r1],#4 // Next control register
+ cmp r2,#0
+ bne 10b
+
+ LED 0x70
+
+ // Release DRAM hold (set by RESET)
+ ldr r1,=SA11X0_PWR_MGR_SLEEP_STATUS
+ ldr r2,=SA11X0_DRAM_CONTROL_HOLD
+ str r2,[r1]
+
+ LED 0x80
+
+ // Perform 8 reads from unmapped/unenabled DRAM
+ ldr r1,=SA11X0_RAM_BANK0_BASE
+ ldr r2,[r1]
+ ldr r2,[r1]
+ ldr r2,[r1]
+ ldr r2,[r1]
+ ldr r2,[r1]
+ ldr r2,[r1]
+ ldr r2,[r1]
+ ldr r2,[r1]
+
+ // Enable DRAM controller
+ ldr r1,=SA11X0_DRAM_CONFIGURATION
+ ldr r2,=0x00007255 // read from nanoEngine
+ str r2,[r1]
+
+ b 19f
+
+// DRAM controller initialization
+dram_table:
+ // Data extracted from the setup of the nanoEngine
+ .word SA11X0_DRAM0_CAS_0, 0xAAAAAA7F
+ .word SA11X0_DRAM0_CAS_1, 0xAAAAAAAA
+ .word SA11X0_DRAM0_CAS_2, 0xAAAAAAAA
+ .word SA11X0_STATIC_CONTROL_0, 0xfff9fffc
+ .word SA11X0_STATIC_CONTROL_1, 0xfff9fff9
+ .word SA11X0_EXP_BUS_CONFIGURATION, 0x00000000
+ .word SA11X0_REFRESH_CONFIGURATION, 0x303401f5
+ .word SA11X0_DRAM2_CAS_0, 0xAAAAAA7F // uninitialized,
+ .word SA11X0_DRAM2_CAS_1, 0xAAAAAAAA // apparently
+ .word SA11X0_DRAM2_CAS_2, 0xAAAAAAAA // these 3
+ .word SA11X0_STATIC_CONTROL_2, 0xfffcfff8
+ .word SA11X0_SMROM_CONFIGURATION, 0xf070c040
+ .word SA11X0_DRAM_CONFIGURATION, 0x72547254 // Disabled
+ .word 0, 0
+19:
+
+ // Release peripheral hold (set by RESET)
+ ldr r1,=SA11X0_PWR_MGR_SLEEP_STATUS
+ ldr r2,=SA11X0_PERIPHERAL_CONTROL_HOLD
+ str r2,[r1]
+
+20:
+ LED 0x90
+
+ // Enable UART
+ ldr r1,=SA1110_GPCLK_CONTROL_0
+ ldr r2,=SA1110_GPCLK_SUS_UART
+ str r2,[r1]
+
+ LED 0xA0
+
+ // Set up a stack [for calling C code]
+ ldr r1,=__startup_stack
+ ldr r2,=SA11X0_RAM_BANK0_BASE
+ orr sp,r1,r2
+
+ LED 0xC0
+
+ // Create MMU tables
+ bl hal_mmu_init
+
+#if 0
+ LED 0xC1
+ mrc p15,0,r0,c1,c0,0
+ OUT
+ LED 0xC2
+ mrc p15,0,r0,c2,c0,0
+ OUT
+ LED 0xC3
+ mrc p15,0,r0,c3,c0,0
+ OUT
+ LED 0xCC
+ mov r0,pc
+ OUT
+#endif
+
+ LED 0xE0
+
+ // Enable MMU
+ ldr r2,=10f
+ ldr r1,=MMU_Control_Init|MMU_Control_M
+ mcr p15,0,r1,c1,c0
+ mov pc,r2 /* Change address spaces */
+ nop
+ nop
+ nop
+10:
+
+ LED 0xF0
+
+ .endm
+
+#else // defined(CYG_HAL_STARTUP_ROM)
+#define PLATFORM_SETUP1
+#endif
+
+#define PLATFORM_VECTORS _platform_vectors
+ .macro _platform_vectors
+ .endm
+
+/*---------------------------------------------------------------------------*/
+/* end of hal_platform_setup.h */
+#endif /* CYGONCE_HAL_PLATFORM_SETUP_H */
diff --git a/ecos/packages/hal/arm/sa11x0/nano/current/include/nano.h b/ecos/packages/hal/arm/sa11x0/nano/current/include/nano.h
new file mode 100644
index 0000000..dc48c61
--- /dev/null
+++ b/ecos/packages/hal/arm/sa11x0/nano/current/include/nano.h
@@ -0,0 +1,255 @@
+#ifndef CYGONCE_HAL_ARM_SA11X0_NANOENGINE_NANOENGINE_H
+#define CYGONCE_HAL_ARM_SA11X0_NANOENGINE_NANOENGINE_H
+
+/*=============================================================================
+//
+// nano.h
+//
+// Platform specific support (register layout, etc)
+//
+//=============================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): gthomas
+// Contributors: gthomas,hmt
+// Date: 2001-02-12
+// Purpose: Intel SA1110/NanoEngine platform specific support routines
+// Description:
+// Usage: #include <cyg/hal/nano.h>
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================*/
+
+#include <pkgconf/system.h>
+#include CYGHWR_MEMORY_LAYOUT_H
+
+#include <cyg/hal/hal_sa11x0.h>
+
+//
+// Signal assertion levels
+//
+#define SA1110_LOGIC_ONE(m) (m & 0xFFFFFFFF)
+#define SA1110_LOGIC_ZERO(m) (m & 0x00000000)
+
+//
+// SA1110/NanoEngine Control Status registers
+//
+
+//
+// Special purpose GPIO interrupt mappings
+//
+
+//
+// GPIO layout
+//
+// 0-19 unused
+// 20-27 unused
+// 28-31 not implemented
+//
+// BUT PCI action can make use of GPIO 21 and 22 - but that's all set up in
+// HAL_PCI_INIT() below, as it should be.
+
+#define SA1110_GPIO_GPDR_DEFAULT_VALUE 0 // No GPIO is used
+
+#define SA1110_GPIO_GAFR_DEFAULT_VALUE 0 // No alternates
+
+#define SA1110_GPIO_GRER_DEFAULT_VALUE 0 // No edge detection at all
+#define SA1110_GPIO_GFER_DEFAULT_VALUE 0 // No edge detection at all
+
+#define SA1110_GPIO_GPOSR_DEFAULT_VALUE 0xffffffff // Set all 1s
+#define SA1110_GPIO_GPOCR_DEFAULT_VALUE 0x00000000 // and leave them set
+
+// ------------------------------------------------------------------------
+//
+// Interrupt numbers
+//
+#define SA1110_GPIO_INTR_ETH0 0 // CYGNUM_HAL_INTERRUPT_GPIO0
+#define SA1110_GPIO_INTR_ETH1 1 // CYGNUM_HAL_INTERRUPT_GPIO1
+
+// ------------------------------------------------------------------------
+//
+// PCI stuff
+
+#ifndef __ASSEMBLER__
+#ifdef CYGPKG_IO_PCI
+
+#define CYGHWR_HAL_ARM_NANO_PCI_MEM_MAP_BASE ((cyg_uint32)(&CYGMEM_SECTION_pci_window[0]))
+#define CYGHWR_HAL_ARM_NANO_PCI_MEM_MAP_SIZE ((cyg_uint32)(CYGMEM_SECTION_pci_window_SIZE))
+
+extern cyg_uint32 cyg_pci_window_real_base;
+
+#define HAL_PCI_INIT() CYG_MACRO_START \
+ cyg_uint32 t; \
+ /* Set up the DRAM system so that an alternate master can take control. */ \
+ /* This is described in section 10.8 pp10-67..68 of the SA1110 book. */ \
+ /* This is how the nanoBridge allows the 82559 ethernet devices to */ \
+ /* access main memory. Apparently. So much for documentation. */ \
+ \
+ /* Set GPIO pin direction: 21 out, 22 in. */ \
+ t = *SA11X0_GPIO_PIN_DIRECTION; \
+ t |= SA11X0_GPIO_PIN_21; \
+ t &=~SA11X0_GPIO_PIN_22; \
+ *SA11X0_GPIO_PIN_DIRECTION = t; \
+ \
+ /* Set alternate functions for GPIO 21 and 22. */ \
+ t = *SA11X0_GPIO_ALTERNATE_FUNCTION; \
+ t |= SA11X0_GPIO_PIN_21 + SA11X0_GPIO_PIN_22; \
+ *SA11X0_GPIO_ALTERNATE_FUNCTION = t; \
+ \
+ /* Set the Test Unit Control Register to enable external memory mastery */ \
+ t = *SA11X0_TUCR; \
+ t &=~SA11X0_TUCR_RESERVED_BITS; \
+ t |= SA11X0_TUCR_EXTERNAL_MEMORY_MASTER; \
+ *SA11X0_TUCR = t; \
+ \
+ /* Set the interrupts on GPIO0 and GPIO1 to be falling-edge */ \
+ \
+ /* GPIO0 and GPIO1 be inputs: */ \
+ t = *SA11X0_GPIO_PIN_DIRECTION; \
+ t &=~(SA11X0_GPIO_PIN_0 + SA11X0_GPIO_PIN_1); \
+ *SA11X0_GPIO_PIN_DIRECTION = t; \
+ /* no rising edge */ \
+ t = *SA11X0_GPIO_RISING_EDGE_DETECT; \
+ t &=~(SA11X0_GPIO_PIN_0 + SA11X0_GPIO_PIN_1); \
+ *SA11X0_GPIO_RISING_EDGE_DETECT = t; \
+ /* falling edge on */ \
+ t = *SA11X0_GPIO_FALLING_EDGE_DETECT; \
+ t |= (SA11X0_GPIO_PIN_0 + SA11X0_GPIO_PIN_1); \
+ *SA11X0_GPIO_FALLING_EDGE_DETECT = t; \
+ /* cancel any pending edges */ \
+ t = (SA11X0_GPIO_PIN_0 + SA11X0_GPIO_PIN_1); \
+ *SA11X0_GPIO_EDGE_DETECT_STATUS = t; \
+ \
+ /* and disconnect ethernet devices from the PCI bus so that they */ \
+ /* respond to being scanned a second time - because RedBoot will */ \
+ /* likely have enabled one or both of them already. */ \
+ /* We know that the two ethers are device #1 and #2: */ \
+ t = 0; \
+ HAL_PCI_CFG_WRITE_UINT16( 0, CYG_PCI_DEV_MAKE_DEVFN(1,0), \
+ CYG_PCI_CFG_COMMAND, t ); \
+ t = 0; \
+ HAL_PCI_CFG_WRITE_UINT16( 0, CYG_PCI_DEV_MAKE_DEVFN(2,0), \
+ CYG_PCI_CFG_COMMAND, t ); \
+CYG_MACRO_END
+
+// This is nasty in the nanoBridge; it does NOT correctly return -1's for
+// empty config slots, it lies and gives the impression of there being lots
+// of extra nothing devices. So we have to fake it.
+
+// Compute address necessary to access PCI config space for the given bus
+// and device. With faked gaps...
+#define HAL_PCI_CONFIG_ADDRESS( __bus, __devfn, __offset ) \
+ ({ \
+ cyg_uint32 __addr; \
+ cyg_uint32 __dev = CYG_PCI_DEV_GET_DEV(__devfn); \
+ __addr = (0 == __bus) ? 0x18A00000 : 0xffffffffu; \
+ __addr |= (1 == __dev || 2 == __dev) ? (__dev << 16) : 0xffffffffu; \
+ __addr |= CYG_PCI_DEV_GET_FN(__devfn) << 8; \
+ __addr |= __offset; \
+ __addr; \
+ })
+
+// Not used. For experiments, or for a more general PCI bus...
+#define scan_all_HAL_PCI_CONFIG_ADDRESS( __bus, __devfn, __offset ) \
+ ({ \
+ cyg_uint32 __addr; \
+ cyg_uint32 __dev = CYG_PCI_DEV_GET_DEV(__devfn); \
+ __addr = (0 == __bus) ? 0x18A00000 : 0xffffffffu; \
+ __addr |= __dev << 16; \
+ __addr |= CYG_PCI_DEV_GET_FN(__devfn) << 8; \
+ __addr |= __offset; \
+ __addr; \
+ })
+
+#define HAL_PCI_DO_CONFIG_ACCESS( __bus, __devfn, __offset, __val, __action, __type ) \
+{ \
+ cyg_uint32 __doaddr = HAL_PCI_CONFIG_ADDRESS( __bus, __devfn, __offset ); \
+ if ( 0xffffffffu == __doaddr ) \
+ __val = (__type)0xffffffffu; \
+ else { \
+ __action( __doaddr, __val ); \
+ /* nasty kludge to detect the absence of a second eth device on nanoEngines \
+ * rather than commEngines. The vendor should never be 0 or 256. */ \
+ if ( (__offset) == CYG_PCI_CFG_VENDOR && ((__val) == 0 || (__val) == 256) ) \
+ __val = (__type)0xffffffffu; \
+ } \
+}
+
+// Read/write a value from the PCI configuration space of the appropriate
+// size at an address composed from the bus, devfn and offset.
+#define HAL_PCI_CFG_READ_UINT8( __bus, __devfn, __offset, __val ) \
+ HAL_PCI_DO_CONFIG_ACCESS( __bus, __devfn, __offset, __val, HAL_READ_UINT8 , cyg_uint8 )
+#define HAL_PCI_CFG_READ_UINT16( __bus, __devfn, __offset, __val ) \
+ HAL_PCI_DO_CONFIG_ACCESS( __bus, __devfn, __offset, __val, HAL_READ_UINT16 , cyg_uint16 )
+#define HAL_PCI_CFG_READ_UINT32( __bus, __devfn, __offset, __val ) \
+ HAL_PCI_DO_CONFIG_ACCESS( __bus, __devfn, __offset, __val, HAL_READ_UINT32 , cyg_uint32 )
+#define HAL_PCI_CFG_WRITE_UINT8( __bus, __devfn, __offset, __val ) \
+ HAL_PCI_DO_CONFIG_ACCESS( __bus, __devfn, __offset, __val, HAL_WRITE_UINT8 , cyg_uint8 )
+#define HAL_PCI_CFG_WRITE_UINT16( __bus, __devfn, __offset, __val ) \
+ HAL_PCI_DO_CONFIG_ACCESS( __bus, __devfn, __offset, __val, HAL_WRITE_UINT16, cyg_uint16 )
+#define HAL_PCI_CFG_WRITE_UINT32( __bus, __devfn, __offset, __val ) \
+ HAL_PCI_DO_CONFIG_ACCESS( __bus, __devfn, __offset, __val, HAL_WRITE_UINT32, cyg_uint32 )
+
+//-----------------------------------------------------------------------------
+// Resources
+
+// Map PCI device resources starting from these addresses in PCI space.
+#define HAL_PCI_ALLOC_BASE_MEMORY (0x00000000)
+#define HAL_PCI_ALLOC_BASE_IO (0x00000000)
+
+// This is where the PCI spaces are mapped in the CPU's address space.
+#define HAL_PCI_PHYSICAL_MEMORY_BASE (0x18620000)
+#define HAL_PCI_PHYSICAL_IO_BASE (0x18200000)
+
+// Translate the PCI interrupt requested by the device (INTA#, INTB#,
+// INTC# or INTD#) to the associated CPU interrupt (i.e., HAL vector).
+#define HAL_PCI_TRANSLATE_INTERRUPT( __bus, __devfn, __vec, __valid) { \
+ cyg_uint32 __dev = CYG_PCI_DEV_GET_DEV(__devfn); \
+ __valid = false; \
+ if ( 1 == __dev || 2 == __dev ) { \
+ __vec = ( 1 == __dev ) ? SA1110_GPIO_INTR_ETH0 \
+ : SA1110_GPIO_INTR_ETH1; \
+ __valid = true; \
+ } \
+}
+
+
+#endif // CYGPKG_IO_PCI
+#endif // #ifndef __ASSEMBLER__
+// ------------------------------------------------------------------------
+
+#endif // CYGONCE_HAL_ARM_SA11X0_NANOENGINE_NANOENGINE_H
+// EOF nano.h
diff --git a/ecos/packages/hal/arm/sa11x0/nano/current/include/pkgconf/mlt_arm_sa11x0_nano_post.h b/ecos/packages/hal/arm/sa11x0/nano/current/include/pkgconf/mlt_arm_sa11x0_nano_post.h
new file mode 100644
index 0000000..82e0704
--- /dev/null
+++ b/ecos/packages/hal/arm/sa11x0/nano/current/include/pkgconf/mlt_arm_sa11x0_nano_post.h
@@ -0,0 +1,28 @@
+// eCos memory layout - Fri Oct 20 05:56:55 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 (0)
+#define CYGMEM_REGION_ram_SIZE (0xf00000)
+#define CYGMEM_REGION_ram_ATTR (CYGMEM_REGION_ATTR_R | CYGMEM_REGION_ATTR_W)
+#define CYGMEM_REGION_fixed (0xfa00000)
+#define CYGMEM_REGION_fixed_SIZE (0x100000)
+#define CYGMEM_REGION_fixed_ATTR (CYGMEM_REGION_ATTR_R | CYGMEM_REGION_ATTR_W)
+#define CYGMEM_REGION_rom (0x50040000)
+#define CYGMEM_REGION_rom_SIZE (0x40000)
+#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 (0xf00000 - (size_t) CYG_LABEL_NAME (__heap1))
+#ifndef __ASSEMBLER__
+extern char CYG_LABEL_NAME (__pci_window) [];
+#endif
+#define CYGMEM_SECTION_pci_window (CYG_LABEL_NAME (__pci_window))
+#define CYGMEM_SECTION_pci_window_SIZE (0x100000)
diff --git a/ecos/packages/hal/arm/sa11x0/nano/current/include/pkgconf/mlt_arm_sa11x0_nano_post.ldi b/ecos/packages/hal/arm/sa11x0/nano/current/include/pkgconf/mlt_arm_sa11x0_nano_post.ldi
new file mode 100644
index 0000000..6164ef3
--- /dev/null
+++ b/ecos/packages/hal/arm/sa11x0/nano/current/include/pkgconf/mlt_arm_sa11x0_nano_post.ldi
@@ -0,0 +1,30 @@
+// eCos memory layout - Fri Oct 20 05:56:55 2000
+
+// This is a generated file - do not edit
+
+#include <cyg/infra/cyg_type.inc>
+
+MEMORY
+{
+ ram : ORIGIN = 0, LENGTH = 0xf00000
+ fixed : ORIGIN = 0xfa00000, LENGTH = 0x100000
+ rom : ORIGIN = 0x50040000, LENGTH = 0x40000
+}
+
+SECTIONS
+{
+ SECTIONS_BEGIN
+ SECTION_rom_vectors (rom, 0x50040000, 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)
+ CYG_LABEL_DEFN(__heap1) = ALIGN (0x8);
+ CYG_LABEL_DEFN(__pci_window) = 0xfa00000; . = CYG_LABEL_DEFN(__pci_window) + 0x100000;
+ SECTIONS_END
+}
diff --git a/ecos/packages/hal/arm/sa11x0/nano/current/include/pkgconf/mlt_arm_sa11x0_nano_post.mlt b/ecos/packages/hal/arm/sa11x0/nano/current/include/pkgconf/mlt_arm_sa11x0_nano_post.mlt
new file mode 100644
index 0000000..404c7c2
--- /dev/null
+++ b/ecos/packages/hal/arm/sa11x0/nano/current/include/pkgconf/mlt_arm_sa11x0_nano_post.mlt
@@ -0,0 +1,16 @@
+version 0
+region ram 0 f00000 0 !
+region fixed fa00000 100000 0 !
+region rom 50040000 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 1 0 1 heap1 heap1 !
+section heap1 0 8 0 0 0 0 0 0 !
+section pci_window 100000 1 0 0 1 0 1 0 fa00000 fa00000 !
+section rom_vectors 0 1 0 1 1 1 1 1 50040000 50040000 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 !
diff --git a/ecos/packages/hal/arm/sa11x0/nano/current/include/pkgconf/mlt_arm_sa11x0_nano_ram.h b/ecos/packages/hal/arm/sa11x0/nano/current/include/pkgconf/mlt_arm_sa11x0_nano_ram.h
new file mode 100644
index 0000000..33d6724
--- /dev/null
+++ b/ecos/packages/hal/arm/sa11x0/nano/current/include/pkgconf/mlt_arm_sa11x0_nano_ram.h
@@ -0,0 +1,25 @@
+// eCos memory layout - Fri Oct 20 05:56:24 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 (0)
+#define CYGMEM_REGION_ram_SIZE (0xf00000)
+#define CYGMEM_REGION_ram_ATTR (CYGMEM_REGION_ATTR_R | CYGMEM_REGION_ATTR_W)
+#define CYGMEM_REGION_fixed (0xfa00000)
+#define CYGMEM_REGION_fixed_SIZE (0x100000)
+#define CYGMEM_REGION_fixed_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 (0xf00000 - (size_t) CYG_LABEL_NAME (__heap1))
+#ifndef __ASSEMBLER__
+extern char CYG_LABEL_NAME (__pci_window) [];
+#endif
+#define CYGMEM_SECTION_pci_window (CYG_LABEL_NAME (__pci_window))
+#define CYGMEM_SECTION_pci_window_SIZE (0x100000)
diff --git a/ecos/packages/hal/arm/sa11x0/nano/current/include/pkgconf/mlt_arm_sa11x0_nano_ram.ldi b/ecos/packages/hal/arm/sa11x0/nano/current/include/pkgconf/mlt_arm_sa11x0_nano_ram.ldi
new file mode 100644
index 0000000..fbca100
--- /dev/null
+++ b/ecos/packages/hal/arm/sa11x0/nano/current/include/pkgconf/mlt_arm_sa11x0_nano_ram.ldi
@@ -0,0 +1,29 @@
+// eCos memory layout - Fri Oct 20 05:56:24 2000
+
+// This is a generated file - do not edit
+
+#include <cyg/infra/cyg_type.inc>
+
+MEMORY
+{
+ ram : ORIGIN = 0, LENGTH = 0xf00000
+ fixed : ORIGIN = 0xfa00000, LENGTH = 0x100000
+}
+
+SECTIONS
+{
+ SECTIONS_BEGIN
+ SECTION_fixed_vectors (ram, 0x20, LMA_EQ_VMA)
+ SECTION_rom_vectors (ram, 0x20000, 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)
+ CYG_LABEL_DEFN(__heap1) = ALIGN (0x8);
+ CYG_LABEL_DEFN(__pci_window) = 0xfa00000; . = CYG_LABEL_DEFN(__pci_window) + 0x100000;
+ SECTIONS_END
+}
diff --git a/ecos/packages/hal/arm/sa11x0/nano/current/include/pkgconf/mlt_arm_sa11x0_nano_ram.mlt b/ecos/packages/hal/arm/sa11x0/nano/current/include/pkgconf/mlt_arm_sa11x0_nano_ram.mlt
new file mode 100644
index 0000000..b4c31ee
--- /dev/null
+++ b/ecos/packages/hal/arm/sa11x0/nano/current/include/pkgconf/mlt_arm_sa11x0_nano_ram.mlt
@@ -0,0 +1,15 @@
+version 0
+region ram 0 f00000 0 !
+region fixed fa00000 100000 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 20000 20000 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 1 0 1 heap1 heap1 !
+section heap1 0 8 0 0 0 0 0 0 !
+section pci_window 100000 1 0 0 1 0 1 0 fa00000 fa00000 !
diff --git a/ecos/packages/hal/arm/sa11x0/nano/current/include/plf_io.h b/ecos/packages/hal/arm/sa11x0/nano/current/include/plf_io.h
new file mode 100644
index 0000000..6cbbc44
--- /dev/null
+++ b/ecos/packages/hal/arm/sa11x0/nano/current/include/plf_io.h
@@ -0,0 +1,59 @@
+#ifndef CYGONCE_HAL_ARM_SA11X0_NANO_PLF_IO_H
+#define CYGONCE_HAL_ARM_SA11X0_NANO_PLF_IO_H
+
+/*=============================================================================
+//
+// plf_io.h
+//
+// Platform specific support (register layout, etc)
+//
+//=============================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jskov
+// Contributors: jskov
+// Date: 2002-01-28
+// Purpose: Platform specific support routines
+// Description:
+// Usage: #include <cyg/hal/hal_io.h>
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================*/
+
+#include <cyg/hal/nano.h>
+
+#endif // CYGONCE_HAL_ARM_SA11X0_NANO_PLF_IO_H
+// EOF plf_io.h
diff --git a/ecos/packages/hal/arm/sa11x0/nano/current/include/plf_mmap.h b/ecos/packages/hal/arm/sa11x0/nano/current/include/plf_mmap.h
new file mode 100644
index 0000000..e89e8cd
--- /dev/null
+++ b/ecos/packages/hal/arm/sa11x0/nano/current/include/plf_mmap.h
@@ -0,0 +1,124 @@
+#ifndef CYGONCE_HAL_SA11X0_PLATFORM_PLF_MMAP_H
+#define CYGONCE_HAL_SA11X0_PLATFORM_PLF_MMAP_H
+/*=============================================================================
+//
+// plf_mmap.h
+//
+// Platform specific memory map support
+//
+//=============================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): hmt
+// Contributors: hmt
+// Date: 2001-01-04
+// Purpose: Intel SA11x0 series platform-specific memory mapping macros
+// Description: Macros to convert a cached, virtual address to
+// 1) an uncached adddress for the same memory (if available)
+// 2) the equivalent physical address for giving to external
+// hardware eg. DMA engines.
+//
+// NB: this mapping is expressed here statically, independent
+// of the actual mapping installed in the MMAP table. So if
+// someone changes that, or its initialisation is changed,
+// then this module must change. This is intended to be
+// efficient at a cost of generality. It is also intended to
+// be called with constants (such as &my_struct) as input
+// args, so that all the work can be done at compile time,
+// with optimization on.
+//
+// Usage: #include <cyg/hal/hal_cache.h>
+// (which includes this file itself)
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================*/
+
+#include <cyg/hal/hal_misc.h>
+
+// Get the pagesize for a particular virtual address:
+
+// This does not depend on the vaddr.
+#define HAL_MM_PAGESIZE( vaddr, pagesize ) CYG_MACRO_START \
+ (pagesize) = SZ_1M; \
+CYG_MACRO_END
+
+// Get the physical address from a virtual address:
+
+// Only RAM and ROM are mapped; we just pass through all other values,
+// rather than detecting nonexistent areas here.
+
+#define HAL_VIRT_TO_PHYS_ADDRESS( vaddr, paddr ) CYG_MACRO_START \
+ cyg_uint32 _v_ = (cyg_uint32)(vaddr); \
+ cyg_uint32 _p_ = hal_virt_to_phys_address(_v_); \
+ if ( _p_ ) \
+ (paddr) = _p_; \
+ else \
+ (paddr) = _v_; \
+CYG_MACRO_END
+
+// Get the virtual address for a physical address:
+
+// Only RAM and ROM are mapped; we just pass through all other values,
+// rather than detecting nonexistent areas here.
+
+#define HAL_PHYS_TO_VIRT_ADDRESS( paddr, vaddr ) CYG_MACRO_START \
+ cyg_uint32 _p_ = (cyg_uint32)(paddr); \
+ cyg_uint32 _v_ = hal_phys_to_virt_address(_p_); \
+ if ( _v_ ) \
+ (vaddr) = _v_; \
+ else \
+ (vaddr) = _p_; \
+CYG_MACRO_END
+
+// Get a non-cacheable address for accessing the same store as a virtual
+// (assumed cachable) address:
+
+// Only RAM is mapped: ROM is only available cachable, everything else is
+// not cachable anyway.
+
+#define HAL_VIRT_TO_UNCACHED_ADDRESS( vaddr, uaddr ) CYG_MACRO_START \
+ cyg_uint32 _v_ = (cyg_uint32)(vaddr); \
+ cyg_uint32 _u_ = hal_virt_to_uncached_address(_v_); \
+ if ( _u_ ) \
+ (uaddr) = _u_; \
+ else \
+ (uaddr) = _v_ ; \
+CYG_MACRO_END
+
+
+//---------------------------------------------------------------------------
+#endif // CYGONCE_HAL_SA11X0_PLATFORM_PLF_MMAP_H
+// EOF plf_mmap.h
diff --git a/ecos/packages/hal/arm/sa11x0/nano/current/misc/readme.txt b/ecos/packages/hal/arm/sa11x0/nano/current/misc/readme.txt
new file mode 100644
index 0000000..92ca5a6
--- /dev/null
+++ b/ecos/packages/hal/arm/sa11x0/nano/current/misc/readme.txt
@@ -0,0 +1,443 @@
+
+Installation of RedBoot on a Target Board using RedBoot's Flash Commands
+------------------------------------------------------------------------
+
+These are generic instructions applicable to RedBoot for many platforms.
+Details of what you type have been changed to refer specifically to the
+nanoEngine hardware, but you should also read the further instructions for
+Bright Star Engineering's nanoEngine and SA1110 boards - known as target
+"nano" in eCos configuration terms - which follow.
+
+Here's how to install RedBoot, using the redboot images you should find in
+ loaders/PLATFORM/
+in your installation directory (sizes and dates are just examples):
+ 431497 Aug 9 15:28 redboot-ram.elf
+ 184802 Aug 9 15:28 redboot-ram.srec
+ 433104 Aug 9 15:29 redboot-rom.elf (not used in this recipe)
+ 194732 Aug 9 15:29 redboot-rom.srec
+
+Copy the two '.srec' files to /tftpboot or where-ever they have to be for
+your TFTP server.
+
+Briefly, we use whatever boot flash image you have in place already (CygMon
+or an eCos stub ROM) along with GDB, to execute a RAM based version of
+RedBoot. That is used, in its command-line mode, to fetch a ROM-based boot
+image of RedBoot and write it into the flash memory. "Fetching" the image
+means TFTP from a server; the image must be in S-Record format. We then
+reset the target, thus running the newly-installed boot image of RedBoot.
+That in turn is used, in its command-line mode, to fetch a RAM-based boot
+image of RedBoot and write it into a different area of the flash memory, in
+order to make it easier to do the first part (running a RAM-based RedBoot
+in order to update the boot block) again in future.
+
+NB: the instructions below refer to a system with 8Mb of flash, at address
+0x50000000 in memory. That address is common to SA11x0 CPUs.
+
+Other boards might have a different start address, such as 0x41000000 and
+different flash blocksizes. RedBoot's startup banner will tell you the
+details, if all is functioning correctly. If the address is different, you
+must use different addresses for saving the images into the Flash Image
+System (fis). The command "fis list" will tell you the addresses to use
+for the "RedBoot" and "RedBoot[backup]" images, immediately after the "fis
+init" command.
+
+
+Alternatively you can make a plain binary from the redboot-rom.elf and
+"blow" that into the boot flash using the means of your choice, as with
+previous systems.
+
+
+1. Load a RedBoot, built for RAM startup, into RAM using existing GDB
+ stubs. Note: do not run it yet!
+
+ % arm-elf-gdb -nw loaders/nano/redboot-ram.elf
+
+ GNU gdb 4.18-ecos-99r1-991015
+ Copyright 1998 Free Software Foundation, Inc.
+ GDB is free software, covered by the GNU General Public License, and you are
+ welcome to change it and/or distribute copies of it under certain conditions.
+ Type "show copying" to see the conditions. This version of GDB is supported
+ for customers of Cygnus Solutions. Type "show warranty" for details.
+ This GDB was configured as "--host=i686-pc-linux-gnu
+ --target=arm-elf"...(no debugging symbols found)...
+ (gdb) set remotebaud 38400
+ (gdb) tar rem /dev/ttyS0
+ Remote debugging using /dev/ttyS0
+ 0x41000838 in ?? ()
+ (gdb) load
+ Loading section .rom_vectors, size 0x44 lma 0x20000
+ Loading section .text, size 0xf06c lma 0x20044
+ Loading section .rodata, size 0x19a8 lma 0x2f0b0
+ Loading section .data, size 0x474 lma 0x30a58
+ Start address 0x20044 , load size 69324
+ Transfer rate: 25208 bits/sec.
+ (gdb) detach
+ Ending remote debugging.
+ (gdb) q
+
+2. Execute RedBoot from RAM, and initialize the flash filing system.
+ Notes: the key here is the "-o" option which keeps minicom from
+ sending junk.
+ The magic phrase "$c#63" is important: you must type it in exactly
+ thus. It is the packet which a "continue" command in GDB would send
+ to the target. If you get no response, try "+$c#63" instead.
+ The IP and server info comes from BOOTP, which is how this RedBoot
+ will start up if the flash does not contain good config info.
+
+ % minicom -o ttyS0
+
+ $c#63
+ RedBoot(tm) debug environment - built 07:45:57, Aug 7 2000
+ Copyright (C) 2000, Free Software Foundation, Inc.
+
+ RAM: 0x00000000-0x01000000
+ FLASH: 0x50000000 - 0x50400000, 32 blocks of 0x00020000 bytes ea.
+ IP: 192.168.1.25, Default server: 192.168.1.101
+ RedBoot> fi init
+ About to initialize [format] FLASH image system - are you sure (y/n)? y
+ *** Initialize FLASH Image System
+ Warning: device contents not erased, some blocks may not be usable
+ ... Erase from 0x503c0000-0x50400000: .
+ ... Program from 0x00fb0000-0x00fb0400 at 0x503c0000: .
+
+
+3. Program RedBoot image into FLASH:
+ This expects the file redboot-post.srec (see below) to exist in the
+ TFTP server space on the server that answered the BOOTP request.
+ It loads into the free flash memory following the boot firmware, at
+ address 0x50040000.
+
+ RedBoot> lo -v /tftpboot/redboot-post.srec -b 0x00100000
+ Address offset = bf100000
+ Entry point: 0x50040044, address range: 0x50040000-0x50051384
+ RedBoot> fi cr RedBoot[post] -f 0x50040000 -b 0x00100000 -l 0x20000
+ An image named 'RedBoot[post]' exists - are you sure (y/n)? y
+ ... Erase from 0x50040000-0x50060000: .
+ ... Program from 0x00100000-0x00120000 at 0x50040000: .
+ ... Erase from 0x503c0000-0x50400000: .
+ ... Program from 0x00fb0000-0x00ff0000 at 0x503c0000: .
+ RedBoot>
+
+****reset the board here, leaving your terminal program connected****
+
+ RedBoot(tm) debug environment - built 07:47:35, Aug 7 2000
+ Copyright (C) 2000, Free Software Foundation, Inc.
+
+ RAM: 0x00000000-0x01000000
+ FLASH: 0x50000000 - 0x50400000, 32 blocks of 0x00020000 bytes ea.
+ IP: 192.168.1.25, Default server: 192.168.1.101
+ RedBoot>
+
+
+4. Install RAM based RedBoot for backup/update:
+ Similar considerations apply: redboot-ram.srec must be an S-record
+ version of RedBoot built for RAM startup.
+
+ RedBoot> lo -v /tftpboot/redboot-ram.srec
+ Entry point: 0x00020044, address range: 0x00020000-0x00030ecc
+ RedBoot> fi cr RedBoot[backup] -f 0x50060000 -b 0x20000 -r 0x20000 -l 0x20000
+ An image named 'RedBoot[backup]' exists - are you sure (y/n)? y
+ ... Erase from 0x50060000-0x50080000: .
+ ... Program from 0x00020000-0x00040000 at 0x50060000: .
+ ... Erase from 0x503c0000-0x50400000: .
+ ... Program from 0x00fb0000-0x00ff0000 at 0x503c0000: .
+ RedBoot>
+
+ You have now updated your board completely. Phew!
+
+
+
+5. To update RedBoot with a new version of RedBoot, it is necessary to run
+ a RAM-based version of RedBoot which itself re-writes the ROM-based one,
+ because you can't re-write the code that is executing at the time.
+
+ RedBoot> fi lo RedBoot[backup]
+ RedBoot> g
+ +
+ RedBoot(tm) debug environment - built 07:45:57, Aug 7 2000
+ Copyright (C) 2000, Free Software Foundation, Inc.
+
+ RAM: 0x00000000-0x01000000
+ FLASH: 0x50000000 - 0x50400000, 32 blocks of 0x00020000 bytes ea.
+ IP: 192.168.1.25, Default server: 192.168.1.101
+ RedBoot>
+
+ .. continue with step 3, using whatever your new boot image is called
+ in the TFTP-place, in .srec format.
+
+
+You probably also want to set up then environment with your own IP
+addresses and so on. Recall that this IP address is the one you use for
+GDB to talk to the board, not the IP address which the eCos application
+will take on (by BOOTP/DHCP or whatever means according to configury as
+usual).
+
+ RedBoot> fconfig
+ Network debug at boot time: false
+ Use BOOTP for network configuration: false
+ Local IP address: 192.168.1.25
+ Default server IP address: 192.168.1.101
+ GDB connection port: 1000
+ Run script at boot: false
+ RedBoot>
+
+
+RedBoot for the nanoEngine/commEngine "nano" Target
+---------------------------------------------------
+
+Unlike other targets, the nanoEngine comes equipped with boot firmware
+which you cannot modify. See chapter 5 "nanoEngine Firmware" of the
+nanoEngine Hardware Reference Manual (we refer to "July 17, 2000 Rev 0.6")
+from Bright Star Engineering.
+
+Because of this, eCos and so Redboot supports only these two startup types:
+RAM and POST, rather than the more usual ROM, RAM and optionally POST.
+
+Briefly, the POST-startup RedBoot image lives in flash following the BSE
+firmware. The BSE firmware is configured, using its standard "bootcmd"
+parameter, to jump into the RedBoot image at startup.
+
+You can perform the initial load of the POST-startup RedBoot image into
+flash using the BSE firmware's "load" command. This will load, using TFTP,
+a binary file and program it into flash in one neat operation. Because no
+memory management is used in the BSE firmware, flash is mapped from address
+zero upwards, so the address for the RedBoot POST image is 0x40000. You
+must use the binary version of RedBoot for this, "redboot-post.bin"
+
+This assumes you have set up the other BSE firmware config parameters such
+that it can communicate over your network, to your TFTP server.
+
+ >
+ >load /tftpboot/redboot-post.bin 40000
+ loading ... erasing blk at 00040000
+ erasing blk at 00050000
+ 94168 bytes loaded cksum 00008579
+ done
+ >
+ > set bootcmd "go 40000"
+ > get
+ myip = 10.16.19.198
+ netmask = 255.255.255.0
+ eth = 0
+ gateway = 10.16.19.66
+ serverip = 10.16.19.66
+ bootcmd = go 40000
+ >
+
+NB: the BSE firmware runs its serial IO at 9600 Baud; RedBoot runs instead
+at 38400 Baud. You must select the right baud rate in your terminal
+program to be able to set up the BSE firmware.
+
+After a reset, the BSE firmware will print
+ Boot: BSE 2000 Sep 12 2000 14:00:30
+ autoboot: "go 40000" [hit ESC to abort]
+and then RedBoot starts, switching to 38400 Baud.
+
+Once you have installed a bootable RedBoot in the system in this manner, we
+advice re-installing using the generic method described first in this note
+in order that the Flash Image System contains an appropriate description of
+the flash entries.
+
+
+Rebuilding RedBoot from Source
+------------------------------
+
+To rebuild RedBoot from source, first locate the configuration export files
+for your platform in the eCos source repository. The RAM and POST startup
+configuration exports can usually be found in a directory named "misc" in
+the platform HAL in the eCos source repository, named either:
+ 2164 Nov 29 14:59 misc/redboot_RAM.cfg
+ 2221 Nov 29 14:59 misc/redboot_POST.cfg
+or
+ 1432 Feb 1 13:27 misc/redboot_RAM.ecm
+ 1487 Feb 1 14:38 misc/redboot_POST.ecm
+Having located these files, copy them say to /tmp, say, for less typing.
+
+To make redboot for RAM startup:
+ mkdir redboot.RAM
+ cd redboot.RAM
+ ecosconfig new nano redboot
+ ecosconfig import /tmp/redboot_RAM.ecm
+ ecosconfig tree
+ make
+
+To build the POST version, in a different build/config directory, just use
+the config export redboot_POST.ecm (or .cfg) instead.
+
+The resulting files will be, in each of the POST and RAM startup build
+places:
+ 70456 ..../install/bin/redboot.bin
+ 433104 ..../install/bin/redboot.elf
+ 91407 ..../install/bin/redboot.img
+ 194732 ..../install/bin/redboot.srec
+
+The .elf and .srec files have the obvious relationship to those supplied in
+the "loaders/nano" directory in the install.
+
+
+Cohabiting with POST in Flash
+-----------------------------
+
+The configuration export named redboot_POST.ecm configures redboot to build
+for execution at address 0x50040000 (or during bootup, 0x00040000). This
+is to allow power-on self-test (POST) code or immutable firmware to live in
+the lower addresses of the flash and to run before RedBoot gets control.
+The assumption is that RedBoot will be entered at its base address in
+physical memory, ie. 0x00040000. Alternatively, for testing, you can call
+it in an already running system by "go 0x50040040" at another RedBoot
+prompt, or a branch to that address; the address is where the reset vector
+points, and is reported by RedBoot's tftp load command and listed by the
+fis list command, amongst other places.
+
+Using the POST configuration enables a normal config option which causes
+linking and initialization against memory layout files called "...post..."
+rather than "...rom..." or "...ram..." in the include/pkgconf directory,
+specifically:
+ 665 Feb 9 17:57 include/pkgconf/mlt_arm_sa11x0_nano_post.h
+ 839 Feb 9 17:57 include/pkgconf/mlt_arm_sa11x0_nano_post.ldi
+ 585 Feb 9 17:57 include/pkgconf/mlt_arm_sa11x0_nano_post.mlt
+It is these you should edit if you wish to move that execution address from
+0x50040000 in the POST configuration. Startup type naturally remains ROM
+in this configuration.
+
+Because the nanoEngine contains immutable boot firmware at the start of
+flash, RedBoot for this target is configured to reserve that area in the
+Flash Image System, and to create by default an entry for the POST startup
+RedBoot.
+
+ RedBoot> fis list
+ Name FLASH addr Mem addr Length Entry point
+ (reserved) 0x50000000 0x50000000 0x00040000 0x00000000
+ RedBoot[post] 0x50040000 0x00100000 0x00020000 0x50040040
+ RedBoot[backup] 0x50060000 0x00020000 0x00020000 0x00020040
+ RedBoot config 0x503E0000 0x503E0000 0x00010000 0x00000000
+ FIS directory 0x503F0000 0x503F0000 0x00010000 0x00000000
+ RedBoot>
+
+The entry "(reserved)" ensures that the FIS cannot attempt to overwrite the
+BSE firmware, thus ensuring that the board remains bootable and recoverable
+even after installing a broken RedBoot image.
+
+
+Special Redboot Commands
+------------------------
+
+The nanoEngine/commEngine has one or two Intel i82559 Ethernet controllers
+installed, but these have no associated serial EEPROM in which to record
+their Ethernet Station Address (ESA, or MAC address). The BSE firmware
+records an ESA for the device it uses, but this information is not
+available to RedBoot; we cannot share it.
+
+To keep the ESAs for the two ethernet interfaces, two new items of RedBoot
+configuration data are introduced. You can list them with the RedBoot
+command "fconfig -l" thus:
+
+ RedBoot> fconfig -l
+ Run script at boot: false
+ Use BOOTP for network configuration: false
+ Local IP address: 10.16.19.91
+ Default server IP address: 10.16.19.66
+ Network hardware address [MAC] for eth0: 0x00:0xB5:0xE0:0xB5:0xE0:0x99
+ Network hardware address [MAC] for eth1: 0x00:0xB5:0xE0:0xB5:0xE0:0x9A
+ GDB connection port: 9000
+ Network debug at boot time: false
+ RedBoot>
+
+You should set them before running RedBoot or eCos applications with the
+board connected to a network. The fconfig command can be used as for any
+configuration data item; the entire ESA is entered in one line.
+
+
+Memory Maps
+-----------
+
+The first level page table is located at physical address
+0xc0004000. No second level tables are used.
+
+NOTE
+The virtual memory maps in this section use a C and B column to
+indicate whether or not the region is cached (C) or buffered (B).
+
+Physical Address Range Description
+----------------------- ----------------------------------
+0x00000000 - 0x003fffff 4Mb FLASH (nCS0)
+0x18000000 - 0x18ffffff Internal PCI bus - 2 x i82559 ethernet
+0x40000000 - 0x4fffffff External IO or PCI bus
+0x80000000 - 0xbfffffff SA-1110 Internal Registers
+0xc0000000 - 0xc7ffffff DRAM Bank 0 - 32Mb SDRAM
+0xc8000000 - 0xcfffffff DRAM Bank 1 - empty
+0xe0000000 - 0xe7ffffff Cache Clean
+
+Virtual Address Range C B Description
+----------------------- - - ----------------------------------
+0x00000000 - 0x001fffff Y Y DRAM - 8Mb to 32Mb
+0x18000000 - 0x180fffff N N Internal PCI bus - 2 x i82559 ethernet
+0x40000000 - 0x4fffffff N N External IO or PCI bus
+0x50000000 - 0x51ffffff Y Y Up to 32Mb FLASH (nCS0)
+0x80000000 - 0xbfffffff N N SA-1110 Internal Registers
+0xc0000000 - 0xc0ffffff N Y DRAM Bank 0: 8 or 16Mb
+0xc8000000 - 0xc8ffffff N Y DRAM Bank 1: 8 or 16Mb or absent
+0xe0000000 - 0xe7ffffff Y Y Cache Clean
+
+The FLASH based RedBoot POST-startup image occupies virtual addresses
+0x50040000 - 0x5005ffff.
+
+The ethernet devices use a "PCI window" to communicate with the CPU. This
+is 1Mb of SDRAM which is shared with the ethernet devices that are on the
+PCI bus. It is neither cached nor buffered, to ensure that CPU and PCI
+accesses see correct data in the correct order. By default it is
+configured to be megabyte number 30, at addresses 0x01e00000-0x01efffff.
+This can be modified - and indeed must be, if less than 32Mb of SDRAM is
+installed - via the memory layout tool, or by moving the section
+"__pci_window" referred to by symbols CYGMEM_SECTION_pci_window* in the
+linker script.
+
+Though the nanoEngine ships with 32Mb of SDRAM all attached to DRAM bank 0,
+the code can cope with any of these combinations also; "2 x " in this
+context means one device in each DRAM Bank.
+
+ 1 x 8Mb = 8Mb 2 x 8Mb = 16Mb
+ 1 x 16Mb = 16Mb 2 x 16Mb = 32Mb
+
+All are programmed the same in the memory controller.
+
+Startup code detects which is fitted and programs the memory map
+accordingly. If the device(s) is 8Mb, then there are gaps in the
+physical memory map, because a high order address bit is not
+connected. The gaps are the higher 2Mb out of every 4Mb.
+
+The SA11x0 OS timer is used as a polled timer to provide timeout
+support within RedBoot.
+
+
+Nano Platform Port
+------------------
+
+The nano is in the set of SA11X0-based platforms. It uses the
+arm architectural HAL, the sa11x0 variant HAL, plus the nano
+platform hal. These are components
+ CYGPKG_HAL_ARM hal/arm/arch/
+ CYGPKG_HAL_ARM_SA11X0 hal/arm/sa11x0/var
+ CYGPKG_HAL_ARM_SA11X0_NANO hal/arm/sa11x0/nano
+respectively.
+
+The target name is "nano" which includes all these, plus the
+ethernet driver packages, flash driver, and so on.
+
+
+Ethernet Driver
+---------------
+
+The ethernet driver is in two parts:
+
+A generic ether driver for Intel i8255x series devices, specifically the
+i82559, is devs/eth/intel/i82559. Its package name is
+CYGPKG_DEVS_ETH_INTEL_I82559.
+
+The platform-specific ether driver is devs/eth/arm/nano. Its package is
+CYGPKG_DEVS_ETH_ARM_NANO. This tells the generic driver the address in IO
+memory of the chip, for example, and other configuration details.
+
+This driver picks up the ESA from RedBoot's configuration data - unless
+configured to use a static ESA in the usual manner.
+
diff --git a/ecos/packages/hal/arm/sa11x0/nano/current/misc/redboot_POST.ecm b/ecos/packages/hal/arm/sa11x0/nano/current/misc/redboot_POST.ecm
new file mode 100644
index 0000000..ff521f2
--- /dev/null
+++ b/ecos/packages/hal/arm/sa11x0/nano/current/misc/redboot_POST.ecm
@@ -0,0 +1,140 @@
+cdl_savefile_version 1;
+cdl_savefile_command cdl_savefile_version {};
+cdl_savefile_command cdl_savefile_command {};
+cdl_savefile_command cdl_configuration { description hardware template package };
+cdl_savefile_command cdl_package { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_component { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_option { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_interface { value_source user_value wizard_value inferred_value };
+
+cdl_configuration eCos {
+ description "" ;
+ hardware nano ;
+ template redboot ;
+ package -hardware CYGPKG_HAL_ARM current ;
+ package -hardware CYGPKG_HAL_ARM_SA11X0 current ;
+ package -hardware CYGPKG_HAL_ARM_SA11X0_NANO current ;
+ package -hardware CYGPKG_IO_SERIAL_ARM_SA11X0 current ;
+ package -hardware CYGPKG_DEVS_FLASH_NANO current ;
+ package -hardware CYGPKG_DEVS_FLASH_STRATA current ;
+ package -hardware CYGPKG_DEVICES_WATCHDOG_ARM_SA11X0 current ;
+ package -hardware CYGPKG_IO_PCI current ;
+ package -hardware CYGPKG_DEVS_ETH_ARM_NANO current ;
+ package -hardware CYGPKG_DEVS_ETH_INTEL_I82559 current ;
+ package -template CYGPKG_HAL current ;
+ package -template CYGPKG_INFRA current ;
+ package -template CYGPKG_REDBOOT current ;
+ package -template CYGPKG_ISOINFRA current ;
+ package -template CYGPKG_LIBC_STRING current ;
+ package CYGPKG_NS_DNS current ;
+ package CYGPKG_IO_ETH_DRIVERS current ;
+ package CYGPKG_IO_FLASH current ;
+ package CYGPKG_MEMALLOC current ;
+ package CYGPKG_COMPRESS_ZLIB current ;
+};
+
+cdl_option CYGBLD_BUILD_GDB_STUBS {
+ user_value 0
+};
+
+cdl_option CYGFUN_LIBC_STRING_BSD_FUNCS {
+ inferred_value 0
+};
+
+cdl_component CYGPKG_DEVS_ETH_ARM_NANO_ETH1 {
+ user_value 0
+};
+
+cdl_option CYGNUM_HAL_COMMON_INTERRUPTS_STACK_SIZE {
+ user_value 4096
+};
+
+cdl_option CYGDBG_HAL_COMMON_INTERRUPTS_SAVE_MINIMUM_CONTEXT {
+ user_value 0
+};
+
+cdl_option CYGDBG_HAL_COMMON_CONTEXT_SAVE_MINIMUM {
+ inferred_value 0
+};
+
+cdl_option CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS {
+ inferred_value 1
+};
+
+cdl_option CYGDBG_HAL_DEBUG_GDB_CTRLC_SUPPORT {
+ inferred_value 0
+};
+
+cdl_option CYGSEM_HAL_ROM_MONITOR {
+ user_value 1
+};
+
+cdl_option CYGSEM_HAL_USE_ROM_MONITOR {
+ inferred_value 0 0
+};
+
+cdl_component CYG_HAL_STARTUP {
+ user_value ROM
+};
+
+cdl_component CYGBLD_BUILD_REDBOOT {
+ user_value 1
+};
+
+cdl_option CYGNUM_REDBOOT_FLASH_RESERVED_BASE {
+ user_value 0x40000
+};
+
+cdl_option CYGOPT_REDBOOT_FIS_RESERVED_BASE {
+ user_value 1
+};
+
+cdl_option CYGOPT_REDBOOT_FIS_REDBOOT {
+ user_value 0
+};
+
+cdl_component CYGOPT_REDBOOT_FIS_REDBOOT_POST {
+ user_value 1
+};
+
+cdl_option CYGNUM_REDBOOT_FIS_REDBOOT_POST_OFFSET {
+ user_value 1 0x40000
+};
+
+cdl_option CYGOPT_REDBOOT_FIS_REDBOOT_BACKUP {
+ user_value 1
+};
+
+cdl_option CYGHWR_REDBOOT_ARM_LINUX_EXEC_ADDRESS_DEFAULT {
+ inferred_value 0xC0008000
+};
+
+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_BSD_FUNCS_HEADER {
+ inferred_value 1 <cyg/libc/string/bsdstring.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_DNS_HEADER {
+ inferred_value 1 <cyg/ns/dns/dns.h>
+};
+
+cdl_option CYGPKG_NS_DNS_BUILD {
+ inferred_value 0
+};
+
+
diff --git a/ecos/packages/hal/arm/sa11x0/nano/current/misc/redboot_RAM.ecm b/ecos/packages/hal/arm/sa11x0/nano/current/misc/redboot_RAM.ecm
new file mode 100644
index 0000000..5c57ab9
--- /dev/null
+++ b/ecos/packages/hal/arm/sa11x0/nano/current/misc/redboot_RAM.ecm
@@ -0,0 +1,136 @@
+cdl_savefile_version 1;
+cdl_savefile_command cdl_savefile_version {};
+cdl_savefile_command cdl_savefile_command {};
+cdl_savefile_command cdl_configuration { description hardware template package };
+cdl_savefile_command cdl_package { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_component { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_option { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_interface { value_source user_value wizard_value inferred_value };
+
+cdl_configuration eCos {
+ description "" ;
+ hardware nano ;
+ template redboot ;
+ package -hardware CYGPKG_HAL_ARM current ;
+ package -hardware CYGPKG_HAL_ARM_SA11X0 current ;
+ package -hardware CYGPKG_HAL_ARM_SA11X0_NANO current ;
+ package -hardware CYGPKG_IO_SERIAL_ARM_SA11X0 current ;
+ package -hardware CYGPKG_DEVS_FLASH_NANO current ;
+ package -hardware CYGPKG_DEVS_FLASH_STRATA current ;
+ package -hardware CYGPKG_DEVICES_WATCHDOG_ARM_SA11X0 current ;
+ package -hardware CYGPKG_IO_PCI current ;
+ package -hardware CYGPKG_DEVS_ETH_ARM_NANO current ;
+ package -hardware CYGPKG_DEVS_ETH_INTEL_I82559 current ;
+ package -template CYGPKG_HAL current ;
+ package -template CYGPKG_INFRA current ;
+ package -template CYGPKG_REDBOOT current ;
+ package -template CYGPKG_ISOINFRA current ;
+ package -template CYGPKG_LIBC_STRING current ;
+ package CYGPKG_NS_DNS current ;
+ package CYGPKG_IO_ETH_DRIVERS current ;
+ package CYGPKG_IO_FLASH current ;
+ package CYGPKG_MEMALLOC current ;
+ package CYGPKG_COMPRESS_ZLIB current ;
+};
+
+cdl_option CYGBLD_BUILD_GDB_STUBS {
+ user_value 0
+};
+
+cdl_option CYGFUN_LIBC_STRING_BSD_FUNCS {
+ inferred_value 0
+};
+
+cdl_component CYGPKG_DEVS_ETH_ARM_NANO_ETH1 {
+ user_value 0
+};
+
+cdl_option CYGNUM_HAL_COMMON_INTERRUPTS_STACK_SIZE {
+ user_value 4096
+};
+
+cdl_option CYGDBG_HAL_COMMON_INTERRUPTS_SAVE_MINIMUM_CONTEXT {
+ user_value 0
+};
+
+cdl_option CYGDBG_HAL_COMMON_CONTEXT_SAVE_MINIMUM {
+ inferred_value 0
+};
+
+cdl_option CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS {
+ inferred_value 1
+};
+
+cdl_option CYGDBG_HAL_DEBUG_GDB_CTRLC_SUPPORT {
+ inferred_value 0
+};
+
+cdl_option CYGSEM_HAL_USE_ROM_MONITOR {
+ inferred_value 0 0
+};
+
+cdl_component CYG_HAL_STARTUP {
+ user_value RAM
+};
+
+cdl_component CYGBLD_BUILD_REDBOOT {
+ user_value 1
+};
+
+cdl_option CYGNUM_REDBOOT_FLASH_RESERVED_BASE {
+ user_value 0x40000
+};
+
+cdl_option CYGOPT_REDBOOT_FIS_RESERVED_BASE {
+ user_value 1
+};
+
+cdl_option CYGOPT_REDBOOT_FIS_REDBOOT {
+ user_value 0
+};
+
+cdl_component CYGOPT_REDBOOT_FIS_REDBOOT_POST {
+ user_value 1
+};
+
+cdl_option CYGNUM_REDBOOT_FIS_REDBOOT_POST_OFFSET {
+ user_value 1 0x40000
+};
+
+cdl_option CYGOPT_REDBOOT_FIS_REDBOOT_BACKUP {
+ user_value 1
+};
+
+cdl_option CYGHWR_REDBOOT_ARM_LINUX_EXEC_ADDRESS_DEFAULT {
+ inferred_value 0xC0008000
+};
+
+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_BSD_FUNCS_HEADER {
+ inferred_value 1 <cyg/libc/string/bsdstring.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_DNS_HEADER {
+ inferred_value 1 <cyg/ns/dns/dns.h>
+};
+
+cdl_option CYGPKG_NS_DNS_BUILD {
+ inferred_value 0
+};
+
+
diff --git a/ecos/packages/hal/arm/sa11x0/nano/current/src/nano_misc.c b/ecos/packages/hal/arm/sa11x0/nano/current/src/nano_misc.c
new file mode 100644
index 0000000..058780b
--- /dev/null
+++ b/ecos/packages/hal/arm/sa11x0/nano/current/src/nano_misc.c
@@ -0,0 +1,394 @@
+//==========================================================================
+//
+// nano_misc.c
+//
+// HAL misc board support code for StrongARM SA1110/nanoEngine
+//
+//==========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//==========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): gthomas
+// Contributors: hmt
+// Travis C. Furrer <furrer@mit.edu>
+// Date: 2001-02-12
+// 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/nano.h> // Platform specifics
+
+#include <cyg/infra/diag.h> // diag_printf
+
+// All the MM table layout is here:
+#include <cyg/hal/hal_mm.h>
+
+#ifdef CYGPKG_IO_PCI
+cyg_uint32 cyg_pci_window_real_base = 0;
+#endif
+
+#include <string.h> // memset
+
+void
+hal_mmu_init(void)
+{
+ unsigned long ttb_base = SA11X0_RAM_BANK0_BASE + 0x4000;
+ unsigned long i;
+
+#ifdef CYG_HAL_STARTUP_ROM
+ // SDRAM Memory Sizing:
+ //
+ // The board can have 4 memory configurations:
+ //
+ // * One 8Mb device on SDCS0 (with gaps <= A11 N/C in 8Mb devices)
+ // * Two 8Mb devices, SDCS0,SDCS1 (with gaps) making 16Mb
+ // * One 16Mb device on SDCS0
+ // * Two 16Mb devices on SDCS0,SDCS1 making 32Mb
+ //
+ // Gaps: the SDRAM setup and wiring are the same for both 8Mb and 16Mb
+ // devices. A11 of the SDRAM's addressing is not connected when 8Mb
+ // devices are installed; the 8Mb device occupies 16Mb of space. A11
+ // on the SDRAM is the most significant bit below the two bank-select
+ // bits, there are 4 banks each occupying 4Mb, so therefore in "real
+ // money" it has the value 2Mb.
+ //
+ // SDCS0 maps to the 128Mb area 0xC00 Mb (0xC00000000)
+ // SDCS1 maps to the 128Mb area 0xC80 Mb (0xC80000000)
+ //
+ // So therefore, if there are two 8Mb devices installed, we have memory
+ // in these ranges:
+ //
+ // 0xC0000000...0xC01FFFFF
+ // 0xC0400000...0xC05FFFFF
+ // 0xC0800000...0xC09FFFFF
+ // 0xC0C00000...0xC0DFFFFF
+ //
+ // 0xC8000000...0xC81FFFFF
+ // 0xC8400000...0xC85FFFFF
+ // 0xC8800000...0xC89FFFFF
+ // 0xC8C00000...0xC8DFFFFF
+ //
+ // This function is currently executing on a stack in real memory
+ // addresses, somewhere in that initial range 0xC0000000...0xC01FFFFF,
+ // so we can probe other related addresses to discover how much memory
+ // we really have, and then set up the Memory Map accordingly.
+
+ typedef volatile cyg_uint32 *mptr; // for memory access
+ typedef cyg_uint32 aptr; // for arithmetic
+ volatile int testmem[4] = {0}; // on my stack, ergo in base memory
+
+ // Pointers to test memory, and into the possible gap:
+ mptr basep = &testmem[0];
+ mptr basep2 = &testmem[1];
+ mptr gapp = (mptr)((2 * SZ_1M) | (aptr)basep);
+
+ // And just look at any pair of words to discover whether there is
+ // a 2nd device there.
+ mptr dev2p = (mptr)((0xC80u * SZ_1M) | (aptr)basep);
+ mptr dev2p2 = (mptr)(4 + (aptr)dev2p);
+
+ // This is a pointer to where hal_dram_size is in physical memory,
+ // since memory mapping is not yet set up:
+ int *p_hdsize = (int *)((aptr)(&hal_dram_size) | (0xC00u *SZ_1M));
+ int *p_hdtype = (int *)((aptr)(&hal_dram_type) | (0xC00u *SZ_1M));
+
+ *p_hdsize = 0; // Initialize it to a bogus value here.
+ *p_hdtype = 0x0108; // Initialize it to a bogus value here.
+
+ // Equivalent of asserts for our assumptions, but too early to use
+ // CYG_ASSERT( ..., "basep not in bank0 of device 0, lower half" );
+ if ( 0xC0000000u >= (aptr)basep ) {
+ *p_hdtype |= 1 << 16; // flag an error code
+ goto breakout;
+ }
+ if ( 0xC0200000u < (aptr)basep ) {
+ *p_hdtype |= 2 << 16;
+ goto breakout;
+ }
+
+ // First confirm that the technique works for memory that's
+ // definitely there!
+ *basep = 0x55667711;
+ *basep2 = 0xCC33AA44;
+ if ( 0x55667711 != *basep ||
+ 0xCC33AA44 != *basep2 ) {
+ *p_hdtype |= 10 << 16;
+ goto breakout;
+ }
+ // Now test writing to the gap...
+ *gapp = 0xDD2288BB;
+ if ( 0xCC33AA44 != *basep2 ) { // Should not be corrupted whatever
+ *p_hdtype |= 20 << 16;
+ goto breakout;
+ }
+ if ( 0xDD2288BB != *basep &&
+ 0x55667711 != *basep ) { // Should be one of those
+ *p_hdtype |= 30 << 16;
+ goto breakout;
+ }
+
+ if (0xDD2288BB == *basep)
+ *p_hdtype = 8; // Lower byte is SDRAM size in Mb.
+ else {
+ // it could be 16Mb or 32Mb:
+ basep2 = (mptr)((16 * SZ_1M) | (aptr)basep);
+ *basep = 0xFF11AA00;
+ *basep2 = 0x33557799;
+ // (intersperse some other activity)
+ testmem[2] += testmem[3];
+ if ( 0xFF11AA00 != *basep &&
+ 0x33557799 != *basep ) { // Should be one of those
+ *p_hdtype |= 40 << 16;
+ goto breakout;
+ }
+ *p_hdtype = (0xFF11AA00 == *basep) ? 32 : 16;
+ }
+
+ // Now test whether dev2p stores data:
+ *dev2p = 0x11224488;
+ *dev2p2 = 0x77BBDDEE;
+ // (intersperse some other activity)
+ testmem[2] += testmem[3];
+
+ *p_hdtype |= ((( 0x11224488 == *dev2p ) && (0x77BBDDEE == *dev2p2 ))
+ ? 0x200 : 0x100); // Next byte is devcount.
+
+ breakout:
+ // NB: *p_hdtype is carefully crafted to make a system with an error
+ // detected above default to a single 8Mb device in all the ensuing
+ // setup.
+
+ // So now we should know:
+ *p_hdsize = (0xff & ((*p_hdtype) >> 8)) * (0xff & *p_hdtype) * SZ_1M;
+
+ /*
+ * 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_DACR_DEFAULT;
+ 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, 32, ARM_CACHEABLE, ARM_BUFFERABLE, ARM_ACCESS_PERM_RW_RW); /* Boot flash ROMspace */
+
+#endif // CYG_HAL_STARTUP_ROM - ROM start only
+// We can do the mapping of the other stuff (NOT RAM) in RAM startup OK.
+
+ X_ARM_MMU_SECTION(0x180, 0x180, 16, ARM_UNCACHEABLE, ARM_UNBUFFERABLE, ARM_ACCESS_PERM_RW_RW); /* Ethernet Adaptor */
+ X_ARM_MMU_SECTION(0x400, 0x400, 128, ARM_UNCACHEABLE, ARM_UNBUFFERABLE, ARM_ACCESS_PERM_RW_RW); /* External IO Mux */
+ X_ARM_MMU_SECTION(0x480, 0x480, 128, ARM_UNCACHEABLE, ARM_UNBUFFERABLE, ARM_ACCESS_PERM_RW_RW); /* External IO NonMux */
+
+#ifdef CYG_HAL_STARTUP_ROM // ROM start only
+
+ X_ARM_MMU_SECTION(0x800, 0x800, 0x400, ARM_UNCACHEABLE, ARM_UNBUFFERABLE, ARM_ACCESS_PERM_RW_RW); /* StrongARM(R) Registers */
+
+// X_ARM_MMU_SECTION(0xC00, 0, 32, ARM_CACHEABLE, ARM_BUFFERABLE, ARM_ACCESS_PERM_RW_RW); /* DRAM Bank 0,... */
+// X_ARM_MMU_SECTION(0xC00, 0xC00, 32, ARM_UNCACHEABLE, ARM_BUFFERABLE, ARM_ACCESS_PERM_RW_RW); /* DRAM Bank 0,... */
+
+ if ( (*p_hdtype & 32) ) { // Then they are 32Mb devices - KISS:
+ X_ARM_MMU_SECTION(0xC00, 0, 32, ARM_CACHEABLE, ARM_BUFFERABLE, ARM_ACCESS_PERM_RW_RW); /* DRAM Bank 0 */
+ X_ARM_MMU_SECTION(0xC00, 0xC00, 32, ARM_UNCACHEABLE, ARM_BUFFERABLE, ARM_ACCESS_PERM_RW_RW); /* DRAM Bank 0 */
+ if ( 0x200 & *p_hdtype ) { // Got the 2nd device?
+ X_ARM_MMU_SECTION(0xC80, 32, 32, ARM_CACHEABLE, ARM_BUFFERABLE, ARM_ACCESS_PERM_RW_RW); /* DRAM Bank 1 */
+ X_ARM_MMU_SECTION(0xC80, 0xC80, 32, ARM_UNCACHEABLE, ARM_BUFFERABLE, ARM_ACCESS_PERM_RW_RW); /* DRAM Bank 1 */
+ }
+ }
+ else if ( (*p_hdtype & 16) ) { // Then they are 16Mb devices - KISS:
+ X_ARM_MMU_SECTION(0xC00, 0, 16, ARM_CACHEABLE, ARM_BUFFERABLE, ARM_ACCESS_PERM_RW_RW); /* DRAM Bank 0 */
+ X_ARM_MMU_SECTION(0xC00, 0xC00, 16, ARM_UNCACHEABLE, ARM_BUFFERABLE, ARM_ACCESS_PERM_RW_RW); /* DRAM Bank 0 */
+ if ( 0x200 & *p_hdtype ) { // Got the 2nd device?
+ X_ARM_MMU_SECTION(0xC80, 16, 16, ARM_CACHEABLE, ARM_BUFFERABLE, ARM_ACCESS_PERM_RW_RW); /* DRAM Bank 1 */
+ X_ARM_MMU_SECTION(0xC80, 0xC80, 16, ARM_UNCACHEABLE, ARM_BUFFERABLE, ARM_ACCESS_PERM_RW_RW); /* DRAM Bank 1 */
+ }
+ }
+ else { // Then they are 8Mb devices, complicated:
+ X_ARM_MMU_SECTION(0xC00, 0, 2, ARM_CACHEABLE, ARM_BUFFERABLE, ARM_ACCESS_PERM_RW_RW); /* DRAM Bank 0 */
+ X_ARM_MMU_SECTION(0xC04, 2, 2, ARM_CACHEABLE, ARM_BUFFERABLE, ARM_ACCESS_PERM_RW_RW); /* DRAM Bank 0 */
+ X_ARM_MMU_SECTION(0xC08, 4, 2, ARM_CACHEABLE, ARM_BUFFERABLE, ARM_ACCESS_PERM_RW_RW); /* DRAM Bank 0 */
+ X_ARM_MMU_SECTION(0xC0C, 6, 2, ARM_CACHEABLE, ARM_BUFFERABLE, ARM_ACCESS_PERM_RW_RW); /* DRAM Bank 0 */
+ // Next slot is 16Mb of space, with 2Mb gaps per 4Mb.
+ X_ARM_MMU_SECTION(0xC00, 0xC00, 16, ARM_UNCACHEABLE, ARM_BUFFERABLE, ARM_ACCESS_PERM_RW_RW); /* DRAM Bank 0 */
+ if ( 0x200 & *p_hdtype ) { // Got the 2nd device?
+ X_ARM_MMU_SECTION(0xC80, 8, 2, ARM_CACHEABLE, ARM_BUFFERABLE, ARM_ACCESS_PERM_RW_RW); /* DRAM Bank 1 */
+ X_ARM_MMU_SECTION(0xC84, 10, 2, ARM_CACHEABLE, ARM_BUFFERABLE, ARM_ACCESS_PERM_RW_RW); /* DRAM Bank 1 */
+ X_ARM_MMU_SECTION(0xC88, 12, 2, ARM_CACHEABLE, ARM_BUFFERABLE, ARM_ACCESS_PERM_RW_RW); /* DRAM Bank 1 */
+ X_ARM_MMU_SECTION(0xC8C, 14, 2, ARM_CACHEABLE, ARM_BUFFERABLE, ARM_ACCESS_PERM_RW_RW); /* DRAM Bank 1 */
+ // Next slot is also 16Mb of space, with 2Mb gaps per 4Mb.
+ X_ARM_MMU_SECTION(0xC80, 0xC80, 16, ARM_UNCACHEABLE, ARM_BUFFERABLE, ARM_ACCESS_PERM_RW_RW); /* DRAM Bank 1 */
+ }
+ }
+#endif // CYG_HAL_STARTUP_ROM - ROM start only
+
+#ifdef CYGPKG_IO_PCI
+ /*
+ * Actual Base = CYGHWR_HAL_ARM_EBSA285_PCI_MEM_MAP_BASE
+ * Virtual Base = CYGHWR_HAL_ARM_EBSA285_PCI_MEM_MAP_BASE
+ * Size = CYGHWR_HAL_ARM_EBSA285_PCI_MEM_MAP_SIZE
+ * Memory accessible from PCI space. Overrides part of the above mapping.
+ */
+ for (i = CYGHWR_HAL_ARM_NANO_PCI_MEM_MAP_BASE >> 20;
+ i < ((CYGHWR_HAL_ARM_NANO_PCI_MEM_MAP_BASE+CYGHWR_HAL_ARM_NANO_PCI_MEM_MAP_SIZE) >> 20);
+ i++) {
+#ifndef CYG_HAL_STARTUP_ROM
+ // RAM start - common code below must go via uncached pointer
+ int *p_hdsize = (int *)(((cyg_uint32)&hal_dram_size) | (0xC00u *SZ_1M));
+#endif // not CYG_HAL_STARTUP_ROM - RAM start only
+ // Find the actual real address as above if already mapped:
+ cyg_uint32 phys = hal_virt_to_phys_address( ((cyg_uint32)i) << 20 );
+ int j = phys >> 20;
+ if ( ! ( 0xc00 < j && j < 0xe00 ) ) {
+ // Not in physical SDRAM so yet mapped - so steal some from the main area.
+ int k = (*p_hdsize) >> 20; // Top MegaByte
+ k--;
+ phys = hal_virt_to_phys_address( ((cyg_uint32)k) << 20 );
+ j = phys >> 20;
+ CYG_ASSERT( 0xc00 < j && j < 0xe00, "Top Mb physical address not in SDRAM" );
+ (*p_hdsize) = (k << 20); // We just stole 1Mb.
+ *(ARM_MMU_FIRST_LEVEL_DESCRIPTOR_ADDRESS(ttb_base, k)) = 0; // smash the old entry
+ }
+ CYG_ASSERT( 0xc00 < j && j < 0xe00, "PCI physical address not in SDRAM" );
+ ARM_MMU_SECTION(ttb_base, j, i,
+ ARM_UNCACHEABLE, ARM_UNBUFFERABLE,
+ ARM_ACCESS_PERM_RW_RW);
+ }
+#endif
+
+#ifdef CYG_HAL_STARTUP_ROM
+ X_ARM_MMU_SECTION(0xE00, 0xE00, 128, ARM_CACHEABLE, ARM_BUFFERABLE, ARM_ACCESS_PERM_RW_RW); /* Zeros (Cache Clean) Bank */
+#endif // CYG_HAL_STARTUP_ROM - ROM start only
+
+ // All done, phew!
+}
+
+//
+// Platform specific initialization
+//
+
+void
+plf_hardware_init(void)
+{
+// RAM startup only - rewrite relevent bits depending on config
+#ifndef CYG_HAL_STARTUP_ROM
+ HAL_DCACHE_SYNC(); // Force data out
+ hal_mmu_init(); // This works on real addresses only
+ HAL_DCACHE_INVALIDATE_ALL(); // Flush TLBs: make new mmu state effective
+#endif // ! CYG_HAL_STARTUP_ROM - RAM start only
+#ifdef CYGPKG_IO_PCI
+ cyg_pci_window_real_base =
+ hal_virt_to_phys_address( CYGHWR_HAL_ARM_NANO_PCI_MEM_MAP_BASE );
+#endif
+}
+
+#include CYGHWR_MEMORY_LAYOUT_H
+typedef void code_fun(void);
+void nano_program_new_stack(void *func)
+{
+ register CYG_ADDRESS stack_ptr asm("sp");
+ register CYG_ADDRESS old_stack asm("r4");
+ register code_fun *new_func asm("r0");
+ old_stack = stack_ptr;
+ stack_ptr = CYGMEM_REGION_ram + CYGMEM_REGION_ram_SIZE - sizeof(CYG_ADDRESS);
+ new_func = (code_fun*)func;
+ new_func();
+ stack_ptr = old_stack;
+ return;
+}
+
+//
+// Memory layout
+//
+
+externC cyg_uint8 *
+hal_arm_mem_real_region_top( cyg_uint8 *regionend )
+{
+ CYG_ASSERT( hal_dram_size > 0, "Didn't detect DRAM size!" );
+ CYG_ASSERT( hal_dram_size <= 256<<20,
+ "More than 256MB reported - that can't be right" );
+ CYG_ASSERT( 0 == (hal_dram_size & 0xfffff),
+ "hal_dram_size not whole Mb" );
+ // is it the "normal" end of the DRAM region? If so, it should be
+ // replaced by the real size
+ if ( regionend ==
+ ((cyg_uint8 *)CYGMEM_REGION_ram + CYGMEM_REGION_ram_SIZE) ) {
+ regionend = (cyg_uint8 *)CYGMEM_REGION_ram + hal_dram_size;
+ }
+ // Also, we must check for the top of the heap having moved. This is
+ // because the heap does not abut the top of memory.
+#ifdef CYGMEM_SECTION_heap1
+ else
+ if ( regionend ==
+ ((cyg_uint8 *)CYGMEM_SECTION_heap1 + CYGMEM_SECTION_heap1_SIZE) ) {
+ // hal_dram_size excludes the PCI window on this platform.
+ if ( regionend > (cyg_uint8 *)CYGMEM_REGION_ram + hal_dram_size )
+ // Only report if the heap shrank; if it abuts RAMtop, the
+ // previous test will have caught it already. If RAM enlarged,
+ // but the heap did not abut RAMtop then there is likely
+ // something in the way, so don't trample it.
+ regionend = (cyg_uint8 *)CYGMEM_REGION_ram + hal_dram_size;
+ }
+#endif
+ return regionend;
+}
+
+
+// ------------------------------------------------------------------------
+// EOF nano_misc.c
diff --git a/ecos/packages/hal/arm/sa11x0/sa1100mm/current/ChangeLog b/ecos/packages/hal/arm/sa11x0/sa1100mm/current/ChangeLog
new file mode 100644
index 0000000..ee432d9
--- /dev/null
+++ b/ecos/packages/hal/arm/sa11x0/sa1100mm/current/ChangeLog
@@ -0,0 +1,133 @@
+2009-01-31 Bart Veer <bartv@ecoscentric.com>
+
+ * cdl/hal_arm_sa11x0_sa1100mm.cdl: update compiler flags for
+ recent gcc
+
+2003-02-13 Patrick Doyle <wpd@delcomsys.com>
+ * src/sa1100mm_misc.c: Replaced explicit prototype of memset with
+ #include <string.h>.
+
+2003-02-10 Nick Garnett <nickg@calivar.com>
+
+ * misc/redboot_ROM.ecm:
+ * misc/redboot_RAM.ecm:
+ Removed setting of CYGSEM_HAL_VIRTUAL_VECTOR_DIAG, otherise it
+ causes a configuration error.
+
+2002-05-14 Jesper Skov <jskov@redhat.com>
+
+ * src/sa1100mm_misc.c (hal_mmu_init): Fixed warning.
+
+2002-05-07 Gary Thomas <gthomas@redhat.com>
+
+ * cdl/hal_arm_sa11x0_sa1100mm.cdl:
+ Standardize CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_DEFAULT usage.
+
+2002-01-28 Jesper Skov <jskov@redhat.com>
+
+ * include/plf_io.h: Added.
+
+2001-04-16 Gary Thomas <gthomas@redhat.com>
+
+ * cdl/hal_arm_sa11x0_sa1100mm.cdl: Need CDL for UART interfaces.
+
+2001-03-08 Jesper Skov <jskov@redhat.com>
+
+ * cdl/hal_arm_sa11x0_sa1100mm.cdl: Removed
+ CYGINT_HAL_VIRTUAL_VECTOR_SUPPORT_GUARANTEED which is now the
+ default.
+
+2001-02-23 Gary Thomas <gthomas@redhat.com>
+
+ * misc/redboot_ROM.ecm: Renamed from redboot_ROM.cfg
+
+ * misc/redboot_RAM.ecm: Renamed from redboot_RAM.cfg
+
+2001-02-08 Jesper Skov <jskov@redhat.com>
+
+ * cdl/hal_arm_sa11x0_sa1100mm.cdl: Respect channel configuration
+ constraints.
+
+2001-01-05 Hugo Tyson <hmt@redhat.com>
+
+ * include/plf_mmap.h: New file. Statically defined macros for
+ translation from virtual to physical and back, and to get an
+ uncached address for a normally-cached object. HAL_MM_PAGESIZE()
+ HAL_VIRT_TO_PHYS_ADDRESS() HAL_PHYS_TO_VIRT_ADDRESS()
+ HAL_VIRT_TO_UNCACHED_ADDRESS(). This included by the variant
+ hal's hal_cache.h for convenience and proximity to other memory
+ and cache features.
+
+ * src/sa1100mm_misc.c (hal_mmu_init): Add double mapping for
+ uncached access to SDRAM area, at its physical address.
+
+2000-12-13 Hugo Tyson <hmt@redhat.com>
+
+ * src/sa1100mm_misc.c: Use <cyg/hal/hal_mm.h> from the variant HAL
+ for definitions of all MM tables and so on.
+
+ * include/hal_platform_ints.h: Removed; it was the same in all
+ platforms so is now in the common variant hal, "hal_var_ints.h"
+ and accessible as CYGBLD_HAL_VAR_INTS_H <cyg/hal/hal_var_ints.h>
+
+2000-11-27 Drew Moseley <dmoseley@redhat.com>
+
+ * src/sa1100mm_misc.c (sa1100mm_program_new_stack): New function
+ for switching to an application stack when running a program under
+ a ROM monitor.
+
+ * cdl/hal_arm_sa11x0_sa1100mm. Define HAL_ARCH_PROGRAM_NEW_STACK.
+
+2000-11-13 Drew Moseley <dmoseley@st-kitts.caribbean>
+
+ * misc/redboot_ROM.cfg: Turn on REDBOOT_BSP_SYSCALLS.
+ * misc/redboot_RAM.cfg: Ditto.
+
+2000-11-09 Drew Moseley <dmoseley@redhat.com>
+
+ * misc/redboot_ROM.cfg: New import file for ecosconfig.
+ * misc/redboot_RAM.cfg: Ditto.
+
+2000-11-06 Drew Moseley <dmoseley@redhat.com>
+
+ * cdl/hal_arm_sa11x0_sa1100mm.cdl: Use the "-mapcs-frame" compile option.
+
+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.
+
+//===========================================================================
+// ####GPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 2 or (at your option) any
+// later version.
+//
+// This program is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the
+// Free Software Foundation, Inc., 51 Franklin Street,
+// Fifth Floor, Boston, MA 02110-1301, USA.
+// -------------------------------------------
+// ####GPLCOPYRIGHTEND####
+//===========================================================================
diff --git a/ecos/packages/hal/arm/sa11x0/sa1100mm/current/cdl/hal_arm_sa11x0_sa1100mm.cdl b/ecos/packages/hal/arm/sa11x0/sa1100mm/current/cdl/hal_arm_sa11x0_sa1100mm.cdl
new file mode 100644
index 0000000..56891d0
--- /dev/null
+++ b/ecos/packages/hal/arm/sa11x0/sa1100mm/current/cdl/hal_arm_sa11x0_sa1100mm.cdl
@@ -0,0 +1,343 @@
+# ====================================================================
+#
+# hal_arm_sa11x0_sa1100mm.cdl
+#
+# ARM SA1100/Multimedia platform HAL package configuration data
+#
+# ====================================================================
+## ####ECOSGPLCOPYRIGHTBEGIN####
+## -------------------------------------------
+## This file is part of eCos, the Embedded Configurable Operating System.
+## Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+##
+## eCos is free software; you can redistribute it and/or modify it under
+## the terms of the GNU General Public License as published by the Free
+## Software Foundation; either version 2 or (at your option) any later
+## version.
+##
+## eCos is distributed in the hope that it will be useful, but WITHOUT
+## ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+## FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+## for more details.
+##
+## You should have received a copy of the GNU General Public License
+## along with eCos; if not, write to the Free Software Foundation, Inc.,
+## 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+##
+## As a special exception, if other files instantiate templates or use
+## macros or inline functions from this file, or you compile this file
+## and link it with other works to produce a work based on this file,
+## this file does not by itself cause the resulting work to be covered by
+## the GNU General Public License. However the source code for this file
+## must still be made available in accordance with section (3) of the GNU
+## General Public License v2.
+##
+## This exception does not invalidate any other reasons why a work based
+## on this file might be covered by the GNU General Public License.
+## -------------------------------------------
+## ####ECOSGPLCOPYRIGHTEND####
+# ====================================================================
+######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 CYGHWR_HAL_ARM_SA11X0_UART1
+ implements CYGHWR_HAL_ARM_SA11X0_UART3
+
+ 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 \"\""
+ puts $::cdl_header "#define HAL_ARCH_PROGRAM_NEW_STACK sa1100mm_program_new_stack"
+ }
+
+ 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."
+ active_if CYGPRI_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_CONFIGURABLE
+ 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"
+ active_if CYGPRI_HAL_VIRTUAL_VECTOR_DEBUG_CHANNEL_CONFIGURABLE
+ 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 CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_DEFAULTk
+ 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 { CYGBLD_GLOBAL_WARNFLAGS . CYGBLD_ARCH_CFLAGS .
+ "-mcpu=strongarm1100 -g -O2 -ffunction-sections -fdata-sections -fno-rtti -fno-exceptions -mapcs-frame" }
+ 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 { CYGBLD_ARCH_LDFLAGS . "-mcpu=strongarm1100 -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 "Suppressed 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 $< $@
+ }
+ }
+}
diff --git a/ecos/packages/hal/arm/sa11x0/sa1100mm/current/include/hal_platform_setup.h b/ecos/packages/hal/arm/sa11x0/sa1100mm/current/include/hal_platform_setup.h
new file mode 100644
index 0000000..fe52389
--- /dev/null
+++ b/ecos/packages/hal/arm/sa11x0/sa1100mm/current/include/hal_platform_setup.h
@@ -0,0 +1,378 @@
+#ifndef CYGONCE_HAL_PLATFORM_SETUP_H
+#define CYGONCE_HAL_PLATFORM_SETUP_H
+
+/*=============================================================================
+//
+// hal_platform_setup.h
+//
+// Platform specific support for HAL (assembly code)
+//
+//=============================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=============================================================================
+//#####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 */
diff --git a/ecos/packages/hal/arm/sa11x0/sa1100mm/current/include/pkgconf/mlt_arm_sa11x0_sa1100mm_ram.h b/ecos/packages/hal/arm/sa11x0/sa1100mm/current/include/pkgconf/mlt_arm_sa11x0_sa1100mm_ram.h
new file mode 100644
index 0000000..9783212
--- /dev/null
+++ b/ecos/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)
diff --git a/ecos/packages/hal/arm/sa11x0/sa1100mm/current/include/pkgconf/mlt_arm_sa11x0_sa1100mm_ram.ldi b/ecos/packages/hal/arm/sa11x0/sa1100mm/current/include/pkgconf/mlt_arm_sa11x0_sa1100mm_ram.ldi
new file mode 100644
index 0000000..e82f3af
--- /dev/null
+++ b/ecos/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
+}
diff --git a/ecos/packages/hal/arm/sa11x0/sa1100mm/current/include/pkgconf/mlt_arm_sa11x0_sa1100mm_ram.mlt b/ecos/packages/hal/arm/sa11x0/sa1100mm/current/include/pkgconf/mlt_arm_sa11x0_sa1100mm_ram.mlt
new file mode 100644
index 0000000..85b9638
--- /dev/null
+++ b/ecos/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 !
diff --git a/ecos/packages/hal/arm/sa11x0/sa1100mm/current/include/pkgconf/mlt_arm_sa11x0_sa1100mm_rom.h b/ecos/packages/hal/arm/sa11x0/sa1100mm/current/include/pkgconf/mlt_arm_sa11x0_sa1100mm_rom.h
new file mode 100644
index 0000000..9ba02d7
--- /dev/null
+++ b/ecos/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)
diff --git a/ecos/packages/hal/arm/sa11x0/sa1100mm/current/include/pkgconf/mlt_arm_sa11x0_sa1100mm_rom.ldi b/ecos/packages/hal/arm/sa11x0/sa1100mm/current/include/pkgconf/mlt_arm_sa11x0_sa1100mm_rom.ldi
new file mode 100644
index 0000000..5fe2a56
--- /dev/null
+++ b/ecos/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
+}
diff --git a/ecos/packages/hal/arm/sa11x0/sa1100mm/current/include/pkgconf/mlt_arm_sa11x0_sa1100mm_rom.mlt b/ecos/packages/hal/arm/sa11x0/sa1100mm/current/include/pkgconf/mlt_arm_sa11x0_sa1100mm_rom.mlt
new file mode 100644
index 0000000..ddf7834
--- /dev/null
+++ b/ecos/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 !
diff --git a/ecos/packages/hal/arm/sa11x0/sa1100mm/current/include/plf_io.h b/ecos/packages/hal/arm/sa11x0/sa1100mm/current/include/plf_io.h
new file mode 100644
index 0000000..8e29bf8
--- /dev/null
+++ b/ecos/packages/hal/arm/sa11x0/sa1100mm/current/include/plf_io.h
@@ -0,0 +1,59 @@
+#ifndef CYGONCE_HAL_ARM_SA11X0_SA1100MM_PLF_IO_H
+#define CYGONCE_HAL_ARM_SA11X0_SA1100MM_PLF_IO_H
+
+/*=============================================================================
+//
+// plf_io.h
+//
+// Platform specific support (register layout, etc)
+//
+//=============================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jskov
+// Contributors: jskov
+// Date: 2002-01-28
+// Purpose: Platform specific support routines
+// Description:
+// Usage: #include <cyg/hal/hal_io.h>
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================*/
+
+#include <cyg/hal/sa1100mm.h>
+
+#endif // CYGONCE_HAL_ARM_SA11X0_SA1100MM_PLF_IO_H
+// EOF plf_io.h
diff --git a/ecos/packages/hal/arm/sa11x0/sa1100mm/current/include/plf_mmap.h b/ecos/packages/hal/arm/sa11x0/sa1100mm/current/include/plf_mmap.h
new file mode 100644
index 0000000..78e454a
--- /dev/null
+++ b/ecos/packages/hal/arm/sa11x0/sa1100mm/current/include/plf_mmap.h
@@ -0,0 +1,131 @@
+#ifndef CYGONCE_HAL_SA11X0_PLATFORM_PLF_MMAP_H
+#define CYGONCE_HAL_SA11X0_PLATFORM_PLF_MMAP_H
+/*=============================================================================
+//
+// plf_mmap.h
+//
+// Platform specific memory map support
+//
+//=============================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): hmt
+// Contributors: hmt
+// Date: 2001-01-04
+// Purpose: Intel SA11x0 series platform-specific memory mapping macros
+// Description: Macros to convert a cached, virtual address to
+// 1) an uncached adddress for the same memory (if available)
+// 2) the equivalent physical address for giving to external
+// hardware eg. DMA engines.
+//
+// NB: this mapping is expressed here statically, independent
+// of the actual mapping installed in the MMAP table. So if
+// someone changes that, or its initialisation is changed,
+// then this module must change. This is intended to be
+// efficient at a cost of generality. It is also intended to
+// be called with constants (such as &my_struct) as input
+// args, so that all the work can be done at compile time,
+// with optimization on.
+//
+// Usage: #include <cyg/hal/hal_cache.h>
+// (which includes this file itself)
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================*/
+
+#include <cyg/hal/hal_misc.h>
+
+// Get the pagesize for a particular virtual address:
+
+// This does not depend on the vaddr.
+#define HAL_MM_PAGESIZE( vaddr, pagesize ) CYG_MACRO_START \
+ (pagesize) = SZ_1M; \
+CYG_MACRO_END
+
+// Get the physical address from a virtual address:
+
+// Only RAM and ROM are mapped; we just pass through all other values,
+// rather than detecting nonexistent areas here.
+
+#define HAL_VIRT_TO_PHYS_ADDRESS( vaddr, paddr ) CYG_MACRO_START \
+ cyg_uint32 _v_ = (cyg_uint32)(vaddr); \
+ if ( 8 * SZ_1M > _v_ ) /* 8Mb of SDRAM Bank 0 from 0-32Mb */ \
+ _v_ += 0xc00u * SZ_1M; \
+ else if ( 0x500u * SZ_1M > _v_ ) /* Space between RAM and mapped ROM */\
+ /* no change */ ; \
+ else if ( 0x501u * SZ_1M > _v_ ) /* Mapped boot ROM size 1Mb */ \
+ _v_ -= 0x500u * SZ_1M; \
+ else /* Rest of it */ \
+ /* no change */ ; \
+ (paddr) = _v_; \
+CYG_MACRO_END
+
+// Get the virtual address for a physical address:
+
+// Only RAM and ROM are mapped; we just pass through all other values,
+// rather than detecting nonexistent areas here.
+
+#define HAL_PHYS_TO_VIRT_ADDRESS( paddr, vaddr ) CYG_MACRO_START \
+ cyg_uint32 _p_ = (cyg_uint32)(paddr); \
+ if ( 1 * SZ_1M > _p_ ) /* 1Mb Boot ROM mapped to 0x500Mb */ \
+ _p_ += 0x500u * SZ_1M; \
+ else if ( 0xc00u * SZ_1M > _p_ ) /* Space between ROM and SDRAM */ \
+ /* no change */ ; \
+ else if ( 0xc08u * SZ_1M > _p_ ) /* Raw RAM size 8Mb */ \
+ _p_ -= 0xc00u * SZ_1M; \
+ else /* Rest of it */ \
+ /* no change */ ; \
+ (vaddr) = _p_ ; \
+CYG_MACRO_END
+
+// Get a non-cacheable address for accessing the same store as a virtual
+// (assumed cachable) address:
+
+// Only RAM is mapped: ROM is only available cachable, everything else is
+// not cachable anyway.
+
+#define HAL_VIRT_TO_UNCACHED_ADDRESS( vaddr, uaddr ) CYG_MACRO_START \
+ cyg_uint32 _v_ = (cyg_uint32)(vaddr); \
+ if ( 8 * SZ_1M > _v_ ) /* 8Mb of SDRAM Bank 0 from 0-32Mb */ \
+ _v_ += 0xc00u * SZ_1M; \
+ else /* Everything else is already uncacheable or is ROM */ \
+ /* no change */ ; \
+ (uaddr) = _v_ ; \
+CYG_MACRO_END
+
+//---------------------------------------------------------------------------
+#endif // CYGONCE_HAL_SA11X0_PLATFORM_PLF_MMAP_H
+// EOF plf_mmap.h
diff --git a/ecos/packages/hal/arm/sa11x0/sa1100mm/current/include/sa1100mm.h b/ecos/packages/hal/arm/sa11x0/sa1100mm/current/include/sa1100mm.h
new file mode 100644
index 0000000..386a8ba
--- /dev/null
+++ b/ecos/packages/hal/arm/sa11x0/sa1100mm/current/include/sa1100mm.h
@@ -0,0 +1,58 @@
+#ifndef CYGONCE_SA1100MM_H
+#define CYGONCE_SA1100MM_H
+
+/*=============================================================================
+//
+// sa1100mm.h
+//
+// Platform specific support (registers, etc)
+//
+//=============================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=============================================================================
+//#####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 */
diff --git a/ecos/packages/hal/arm/sa11x0/sa1100mm/current/misc/redboot_RAM.ecm b/ecos/packages/hal/arm/sa11x0/sa1100mm/current/misc/redboot_RAM.ecm
new file mode 100644
index 0000000..7624228
--- /dev/null
+++ b/ecos/packages/hal/arm/sa11x0/sa1100mm/current/misc/redboot_RAM.ecm
@@ -0,0 +1,51 @@
+cdl_savefile_version 1;
+cdl_savefile_command cdl_savefile_version {};
+cdl_savefile_command cdl_savefile_command {};
+cdl_savefile_command cdl_configuration { description hardware template package };
+cdl_savefile_command cdl_package { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_component { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_option { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_interface { value_source user_value wizard_value inferred_value };
+
+cdl_configuration eCos {
+ description "" ;
+ hardware sa1100mm ;
+ template redboot ;
+ package -hardware CYGPKG_HAL_ARM current ;
+ package -hardware CYGPKG_HAL_ARM_SA11X0_SA1100MM current ;
+ package -hardware CYGPKG_IO_PCI current ;
+ package -hardware CYGPKG_IO_SERIAL_ARM_SA11X0 current ;
+ package -template CYGPKG_HAL current ;
+ package -template CYGPKG_INFRA current ;
+ package -template CYGPKG_REDBOOT current ;
+ package CYGPKG_IO_FLASH current ;
+ package CYGPKG_DEVS_FLASH_SA1100MM current ;
+};
+
+cdl_option CYGBLD_BUILD_GDB_STUBS {
+ user_value 0
+};
+
+cdl_option CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS {
+ inferred_value 1
+};
+
+cdl_option CYGDBG_HAL_DEBUG_GDB_CTRLC_SUPPORT {
+ inferred_value 0
+};
+
+cdl_option CYGSEM_HAL_USE_ROM_MONITOR {
+ inferred_value 0 0
+};
+
+cdl_option CYGBLD_BUILD_REDBOOT {
+ user_value 1
+};
+
+cdl_component CYG_HAL_STARTUP {
+ user_value RAM
+};
+
+cdl_option CYGSEM_REDBOOT_BSP_SYSCALLS {
+ inferred_value 1
+};
diff --git a/ecos/packages/hal/arm/sa11x0/sa1100mm/current/misc/redboot_ROM.ecm b/ecos/packages/hal/arm/sa11x0/sa1100mm/current/misc/redboot_ROM.ecm
new file mode 100644
index 0000000..5512070
--- /dev/null
+++ b/ecos/packages/hal/arm/sa11x0/sa1100mm/current/misc/redboot_ROM.ecm
@@ -0,0 +1,55 @@
+cdl_savefile_version 1;
+cdl_savefile_command cdl_savefile_version {};
+cdl_savefile_command cdl_savefile_command {};
+cdl_savefile_command cdl_configuration { description hardware template package };
+cdl_savefile_command cdl_package { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_component { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_option { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_interface { value_source user_value wizard_value inferred_value };
+
+cdl_configuration eCos {
+ description "" ;
+ hardware sa1100mm ;
+ template redboot ;
+ package -hardware CYGPKG_HAL_ARM current ;
+ package -hardware CYGPKG_HAL_ARM_SA11X0_SA1100MM current ;
+ package -hardware CYGPKG_IO_PCI current ;
+ package -hardware CYGPKG_IO_SERIAL_ARM_SA11X0 current ;
+ package -template CYGPKG_HAL current ;
+ package -template CYGPKG_INFRA current ;
+ package -template CYGPKG_REDBOOT current ;
+ package CYGPKG_IO_FLASH current ;
+ package CYGPKG_DEVS_FLASH_SA1100MM current ;
+};
+
+cdl_option CYGBLD_BUILD_GDB_STUBS {
+ user_value 0
+};
+
+cdl_option CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS {
+ inferred_value 1
+};
+
+cdl_option CYGDBG_HAL_DEBUG_GDB_CTRLC_SUPPORT {
+ inferred_value 0
+};
+
+cdl_option CYGSEM_HAL_USE_ROM_MONITOR {
+ inferred_value 0 0
+};
+
+cdl_option CYGBLD_BUILD_REDBOOT {
+ user_value 1
+};
+
+cdl_component CYG_HAL_STARTUP {
+ user_value ROM
+};
+
+cdl_option CYGSEM_HAL_ROM_MONITOR {
+ user_value 1
+};
+
+cdl_option CYGSEM_REDBOOT_BSP_SYSCALLS {
+ inferred_value 1
+};
diff --git a/ecos/packages/hal/arm/sa11x0/sa1100mm/current/src/sa1100mm_misc.c b/ecos/packages/hal/arm/sa11x0/sa1100mm/current/src/sa1100mm_misc.c
new file mode 100644
index 0000000..4d08db0
--- /dev/null
+++ b/ecos/packages/hal/arm/sa11x0/sa1100mm/current/src/sa1100mm_misc.c
@@ -0,0 +1,143 @@
+//==========================================================================
+//
+// sa1100mm_misc.c
+//
+// HAL misc board support code for StrongARM SA1110/Multimedia
+//
+//==========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//==========================================================================
+//#####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
+
+// All the MM table layout is here:
+#include <cyg/hal/hal_mm.h>
+
+#include <string.h> // memset
+
+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_DACR_DEFAULT;
+ 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(0x800, 0x800, 1024, ARM_UNCACHEABLE, ARM_UNBUFFERABLE, ARM_ACCESS_PERM_RW_RW); /* StrongARM(R) Registers */
+ X_ARM_MMU_SECTION(0xC00, 0, 8, ARM_CACHEABLE, ARM_BUFFERABLE, ARM_ACCESS_PERM_RW_RW); /* DRAM Bank 0 */
+ X_ARM_MMU_SECTION(0xC00, 0xC00, 8, ARM_UNCACHEABLE, 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 */
+
+}
+
+//
+// Platform specific initialization
+//
+
+void
+plf_hardware_init(void)
+{
+}
+
+#include CYGHWR_MEMORY_LAYOUT_H
+typedef void code_fun(void);
+void sa1100mm_program_new_stack(void *func)
+{
+ register CYG_ADDRESS stack_ptr asm("sp");
+ register CYG_ADDRESS old_stack asm("r4");
+ register code_fun *new_func asm("r0");
+ old_stack = stack_ptr;
+ stack_ptr = CYGMEM_REGION_ram + CYGMEM_REGION_ram_SIZE - sizeof(CYG_ADDRESS);
+ new_func = (code_fun*)func;
+ new_func();
+ stack_ptr = old_stack;
+ return;
+}
+
+// ------------------------------------------------------------------------
+// EOF sa1100mm_misc.c
diff --git a/ecos/packages/hal/arm/sa11x0/var/current/ChangeLog b/ecos/packages/hal/arm/sa11x0/var/current/ChangeLog
new file mode 100644
index 0000000..a704620
--- /dev/null
+++ b/ecos/packages/hal/arm/sa11x0/var/current/ChangeLog
@@ -0,0 +1,472 @@
+2004-02-08 Bart Veer <bartv@ecoscentric.com>
+
+ * src/sa11x0_misc.c (hal_enable_profile_timer):
+ Update this function to return the actual resolution, as
+ required by the updated gprof package. Make the profiling
+ actually work.
+
+2003-12-05 Andrew Lunn <andrew.lunn@ascom.ch>
+
+ * include/hal_diag.h: hal_delay_us() is a C function.
+
+2003-10-30 Gary Thomas <gary@mlbassoc.com>
+
+ * cdl/hal_arm_sa11x0.cdl:
+ * src/sa11x0_misc.c: Add support for profiling, using timer #1
+
+2003-07-18 Nick Garnett <nickg@balti.calivar.com>
+
+ * cdl/hal_arm_sa11x0.cdl:
+ Changed values for CYGNUM_HAL_RTC_NUMERATOR,
+ CYGNUM_HAL_RTC_DENOMINATOR and CYGNUM_HAL_RTC_PERIOD to
+ "default_value" from "calculated". This makes it easier
+ to change these values globally.
+
+2002-10-26 Gary Thomas <gthomas@ecoscentric.com> (inspired by)
+2002-10-26 Gordon Schumacher <gordon_schumacher@maxtor.com>
+
+ * include/hal_sa11x0.h: Make ROM/RAM/FLASH space layout clearer.
+
+2002-10-25 Gary Thomas <gthomas@ecoscentric.com> (inspired by)
+2002-10-25 Gordon Schumacher <gordon_schumacher@maxtor.com>
+
+ * include/hal_sa11x0.h: Add SRAM definitions.
+
+2002-08-12 Mark Salter <msalter@redhat.com>
+
+ * cdl/hal_arm_sa11x0.cdl: Remove CYGSEM_REDBOOT_ARM_LINUX_BOOT
+ requirement.
+
+2002-05-18 Gary Thomas <gthomas@redhat.com>
+
+ * src/hal_diag.c (cyg_hal_plf_serial_control): Fix return value
+ when changing the baud rate.
+
+2002-05-01 Gary Thomas <gthomas@redhat.com>
+
+ * tests/mmap_test.c: Diagnostic prints for failure cases.
+
+2002-04-24 Jesper Skov <jskov@redhat.com>
+
+ * cdl/hal_arm_sa11x0.cdl: CYGPRI_KERNEL_TESTS_DHRYSTONE_PASSES added.
+
+2002-01-29 Jesper Skov <jskov@redhat.com>
+
+ * cdl/hal_arm_sa11x0.cdl: Removed CRUFT_H.
+
+ * include/hal_sa11x0.h: Moved CYGARC_PHYSICAL_ADDRESS definition
+ to:
+ * include/var_io.h: this file.
+
+2002-01-28 Jesper Skov <jskov@redhat.com>
+
+ * cdl/hal_arm_sa11x0.cdl: Declare var_io.h file.
+ Tug RedBoot requirements away in a component properly controlled
+ by the RedBoot presence.
+ * include/var_io.h: Added.
+
+2002-01-25 Jesper Skov <jskov@redhat.com>
+
+ * include/hal_sa11x0.h (CYGARC_PHYSICAL_ADDRESS): Added.
+
+ * src/redboot_linux_exec.c: Moved to arch directory.
+ * cdl/hal_arm_sa11x0.cdl: Replaced options with requirements to
+ arch options.
+
+2002-01-25 David Woodhouse <dwmw2@cambridge.redhat.com>
+
+ * src/redboot_linux_exec.c (do_exec): Trick the compiler into
+ thinking that the end1 and lab1 labels are both actually used,
+ so it doesn't move them around.
+
+2002-01-22 David Woodhouse <dwmw2@cambridge.redhat.com>
+
+ * src/redboot_linux_exec.c (do_exec): Pass ATAG_MEM to Linux
+ kernel, having tried to obtain the appropriate numbers from the
+ MLT header file. This could probably do with some improvement -
+ the actual information we need isn't necessarily present in the
+ required form.
+
+2002-01-14 David Woodhouse <dwmw2@cambridge.redhat.com>
+
+ * src/redboot_linux_exec.c (do_exec): Use load start/end
+ parameters as defaults. Don't copy image if specified length is
+ zero.
+
+2001-10-31 Jonathan Larmour <jlarmour@redhat.com>
+
+ * cdl/hal_arm_sa11x0.cdl: Indicate support of variable baud rates.
+
+2001-10-09 Hugo Tyson <hmt@redhat.com>
+
+ * src/hal_diag.c (cyg_hal_plf_serial_isr): As well as the sticky
+ Rx Idle bit, clear the sticky bits for interrupts for start or end
+ of a line break, otherwise messing with the wiring can cause an
+ interrupt loop and hang the target.
+
+2001-08-22 Gary Thomas <gthomas@redhat.com>
+
+ * src/redboot_linux_exec.c:
+ printf() is no longer a part of RedBoot. Thus all programs
+ must use diag_printf() and related functions instead.
+
+2001-08-21 Hugo Tyson <hmt@redhat.com>
+
+ * include/hal_var_ints.h (HAL_CLOCK_LATENCY()): Define this if
+ it's needed, for the routine below.
+
+ * src/sa11x0_misc.c (hal_clock_latency): A neater fix for the
+ below change: use a separate routine for measuring latency, which
+ assumes it is called in the ISR, before the clock is reset.
+
+2001-08-20 Hugo Tyson <hmt@redhat.com>
+
+ * src/sa11x0_misc.c (hal_clock_read): Make hal_clock_read() return
+ the true value (as expected by the kernel latency test) from the
+ last interrupt if we just had that interrupt and didn't yet reset
+ the clock. Otherwise ISR latencies are reported as one tick (1cS,
+ 10000uS) too large.
+
+2001-07-27 Gary Thomas <gthomas@redhat.com>
+
+ * src/redboot_linux_exec.c: Fix copyright disclaimers to satisfy
+ original owner (Linux kernel maintainer Russell King).
+
+2001-07-23 Gary Thomas <gthomas@redhat.com>
+
+ * src/sa11x0_misc.c (hal_IRQ_handler): Support board/platform
+ specific [extended] interrupts. On the SA11x0, these would often
+ be cascaded via GPIO logic. Use of extended macros allows SA11x0
+ variant code to handle the general case, with board specific code
+ defined by board packages. Look at the iPAQ board package for
+ a sample of how to use this.
+
+2001-05-19 Gary Thomas <gthomas@redhat.com>
+
+ * src/redboot_linux_exec.c (do_exec): Protect compilation - scripting
+ is configurable.
+
+2001-05-17 Gary Thomas <gthomas@redhat.com>
+
+ * src/hal_diag.c: Allow baud rate to be settable.
+
+2001-04-16 Gary Thomas <gthomas@redhat.com>
+
+ * cdl/hal_arm_sa11x0.cdl: Add CDL to describe CPU family.
+
+2001-03-23 Gary Thomas <gthomas@redhat.com>
+
+ * src/redboot_linux_exec.c (do_exec):
+ Entry point must be a physical address.
+
+ * cdl/hal_arm_sa11x0.cdl:
+ Allow platforms to override default clock speed.
+
+2001-03-20 Gary Thomas <gthomas@redhat.com>
+
+ * src/redboot_linux_exec.c (do_exec): Improve wait timeout.
+
+2001-03-07 Hugo Tyson <hmt@redhat.com>
+
+ * src/redboot_linux_exec.c: Do not build anything if
+ HAL_PLATFORM_MACHINE_TYPE is not defined.
+
+2001-03-02 Gary Thomas <gthomas@redhat.com>
+
+ * cdl/hal_arm_sa11x0.cdl: HAL_PLF_INIT stuff moved to hal/common.
+
+2001-03-01 Gary Thomas <gthomas@redhat.com>
+
+ * src/sa11x0_misc.c:
+ * cdl/hal_arm_sa11x0.cdl: New interface CYGINT_HAL_PLF_IF_INIT
+ which, if defined, indicates that the platform has plf_if_init.
+
+2001-03-01 Hugo Tyson <hmt@redhat.com>
+
+ * src/sa11x0_misc.c: Remove warnings from lack of prototype for
+ plf_if_init() - for platforms that don't have it.
+
+2001-02-28 Gary Thomas <gthomas@redhat.com>
+
+ * src/sa11x0_misc.c: Allow platform to perform additional
+ I/O initialization (virtual vector based). The function
+ plf_if_init() can be overridden by platform code for this.
+
+2001-02-28 Hugo Tyson <hmt@redhat.com>
+
+ * include/hal_sa11x0.h (SA11X0_TUCR_RESERVED_BITS):
+ (SA11X0_TUCR_EXTERNAL_MEMORY_MASTER): Add definitions of these
+ bits for enabling an external bus master.
+
+2001-02-28 Hugo Tyson <hmt@redhat.com>
+
+ * include/hal_sa11x0.h (SA11X0_OWER): Add OS Timer Watchdog Match
+ Enable Register for use by Watchdog package.
+ (SA11X0_OWER_ENABLE): And a long-winded "1" to enable it.
+
+2001-02-24 Gary Thomas <gthomas@redhat.com>
+
+ * cdl/hal_arm_sa11x0.cdl: Add RedBoot commands/options.
+
+ * src/redboot_linux_exec.c: New file - RedBoot commands to
+ support booting Linux kernel.
+
+2001-02-23 Jesper Skov <jskov@redhat.com>
+
+ * include/hal_cache.h (HAL_FLASH_CACHES_OLD_MACROS): Some
+ platforms use deprecated cache handling macros.
+
+2001-02-20 Jonathan Larmour <jlarmour@redhat.com>
+
+ * cdl/hal_arm_sa11x0.cdl: Clarify CYGHWR_HAL_ARM_SA11X0_UART1,3
+ description.
+
+2001-02-20 Gary Thomas <gthomas@redhat.com>
+
+ * src/hal_diag.c:
+ * cdl/hal_arm_sa11x0.cdl: Add CDL to control which serial ports
+ are available/used.
+
+2001-02-20 Hugo Tyson <hmt@redhat.com>
+2001-02-12 Robin Farine <acnrf@dial.eunet.ch>
+
+ * include/hal_sa11x0.h (SA11X0_IRQ_GPIO_9_EDGE_DETECT): Define
+ this to be 9 not 0 - simple typo. Thanks Robin!
+
+2001-02-19 Hugo Tyson <hmt@redhat.com>
+2001-02-12 Robin Farine <acnrf@dial.eunet.ch>
+
+ * src/sa11x0_misc.c (hal_clock_reset): Handles SA11X0_OSCR as a
+ free running counter.
+ (hal_clock_read): Adapts to changes in hal_clock_reset().
+ (hal_delay_us): Likewise.
+
+ There is only one counting register (OSCR), but multiple match
+ registers and interrupt sources (OSMR1-OSMR3). Setting our match
+ register to COUNT and the counter register to 0 each tick makes it
+ very hard to use the other match registers - whereas they are
+ intended for easy general use.
+
+ This change sets our match register OSMR0 to the next time
+ interval and leaves the OSCR freerunning so that other match
+ registers can easily be used, which is much more flexible, and
+ much more what was intented.
+
+ Because the OSCR is just a counter, and the match registers
+ compare only for exact equality, no special measures to deal with
+ the counter wrapping/overflowing are needed.
+
+2001-02-08 Jesper Skov <jskov@redhat.com>
+
+ * src/hal_diag.c: Replace CYGSEM_HAL_DIAG_MANGLER_None with
+ CYGDBG_HAL_DIAG_TO_DEBUG_CHAN.
+
+2001-02-01 Jesper Skov <jskov@redhat.com>
+
+ * include/hal_var_ints.h: Include registers definitions used in
+ reset macro.
+
+2001-01-31 Jesper Skov <jskov@redhat.com>
+
+ * src/hal_diag.c: Replaced CYGDBG_HAL_DIAG_DISABLE_GDB_PROTOCOL
+ with CYGSEM_HAL_DIAG_MANGLER_None
+
+2001-01-26 Jesper Skov <jskov@redhat.com>
+
+ * src/hal_diag.c: Removed CYGSEM_HAL_VIRTUAL_VECTOR_DIAG check.
+ * include/plf_stub.h: Moved reset macro to
+ * include/hal_var_ints.h: this file.
+
+2001-01-05 Hugo Tyson <hmt@redhat.com>
+
+ * include/hal_mm.h: Change bitfields within memmap entry to
+ unsigned, so that we can compare values successfully - otherwise
+ "0x02" sign-extends and is never equal after promotion!
+
+ * include/hal_cache.h: Include the platform memory map
+ interrogation definitions from <cyg/hal/plf_mmap.h> and header for
+ the new functions below.
+
+ * src/sa11x0_misc.c (hal_virt_to_phys_address):
+ (hal_phys_to_virt_address):
+ (hal_virt_to_uncached_address): New functions which inspect the
+ real memory map in force to verify the static translations defined
+ in the efficient macro versions.
+
+ * tests/mmap_test.c (endif): New file: testcase for memory map
+ interrogation macros and verification functions.
+
+ * cdl/hal_arm_sa11x0.cdl: Build the testcase.
+
+2000-12-13 Hugo Tyson <hmt@redhat.com>
+
+ * cdl/hal_arm_sa11x0.cdl: Define a symbol CYGBLD_HAL_VAR_INTS_H so
+ that the architectural HAL can see <cyg/hal/hal_var_ints.h> below.
+
+ * include/hal_var_ints.h: New file; actually a copy of all the
+ platforms' hal_platform_ints.h for all the sa11x0 platforms.
+
+ * include/hal_mm.h: New file; actually an excerpt from all the
+ platforms' $PLATFORM_misc.h for all the sa11x0 platforms, which
+ describes MM table layout and macros for initializing it.
+
+2000-12-12 Gary Thomas <gthomas@redhat.com>
+
+ * cdl/hal_arm_sa11x0.cdl: Allow RTC clock rate to be changable.
+
+2000-12-04 Hugo Tyson <hmt@redhat.com>
+
+ * include/hal_cache.h: Consistently ensure that ARM registers used
+ in MCR ops to cache-control coprocessors, where the data doesn't
+ matter, all actually have data zero ("SBZ") as in the Jaggar book.
+ This may well not be necessary, but for the sake of making sure...
+
+2000-12-01 Hugo Tyson <hmt@redhat.com>
+
+ * include/hal_cache.h: Define addressable cache line operations
+ HAL_DCACHE_STORE(), HAL_DCACHE_INVALIDATE(), HAL_DCACHE_FLUSH()
+ now that I have understood how come the test (kcache2) was
+ failing. See kernel ChangeLog for details. Also tidied up a
+ couple of other minor details.
+
+2000-11-27 Gary Thomas <gthomas@redhat.com>
+
+ * src/hal_diag.c (init_channel): UART setup required on Brutus as well.
+
+2000-11-21 Gary Thomas <gthomas@redhat.com>
+
+ * src/hal_diag.c (init_channel): Disable broken uart setups on platforms
+ other than the SA1110MM, since this code seems to be somewhat broken.
+
+2000-10-25 Drew Moseley <dmoseley@redhat.com>
+
+ * src/hal_diag.c: Added UART1 support for SA1100 targets.
+
+ * include/hal_sa11x0.h: Added GPIO bit definitions.
+
+2000-07-14 Gary Thomas <gthomas@redhat.com>
+
+ * include/hal_diag.h (HAL_DELAY_US): Define.
+
+ * src/sa11x0_misc.c (hal_delay_us): New function. Used to
+ provide timers/delays in non-kernel systems.
+
+2000-07-05 Jesper Skov <jskov@redhat.com>
+
+ * cdl/hal_arm_sa11x0.cdl:
+ * src/hal_diag.c:
+ Cleaned up channel options.
+
+ * src/hal_diag.c: Use per-channel structure instead of code cruft.
+
+2000-06-30 Jesper Skov <jskov@redhat.com>
+
+ * src/hal_diag.c: calling i/f macro changes.
+
+2000-06-28 Jesper Skov <jskov@redhat.com>
+
+ * cdl/hal_arm_sa11x0.cdl:
+ * include/plf_stub.h:
+ * src/plf_stub.c: [deleted]
+ Stub uses vector table for all IO.
+
+ * src/sa11x0_misc.c: Fix compiler warning.
+
+2000-06-27 Jesper Skov <jskov@redhat.com>
+
+ * src/hal_diag.c: Some fixes and code layout changes (Gary
+ Thomas).
+
+ * src/hal_diag.c:
+ * include/hal_diag.h:
+ * include/hal_sa11x0.h:
+ Changed to initialize all procs tables. Added timeout getc, and
+ proper debug channel switch behavior.
+
+2000-06-24 Gary Thomas <gthomas@redhat.com>
+
+ * src/sa11x0_misc.c (hal_clock_reset): Add code to compensate for
+ clock drift since this hardware does not reset on interrupts.
+ (hal_clock_read): Also adjust the value returned here for same reason.
+
+2000-06-22 Gary Thomas <gthomas@redhat.com>
+
+ * src/hal_diag.c (hal_diag_write_char):
+ Fix typo: CYGINT_HAL_GDB_PORT_VECTOR to be CYGHWR_HAL_GDB_PORT_VECTOR
+
+2000-06-19 Gary Thomas <gthomas@redhat.com>
+
+ * include/hal_diag.h:
+ * include/plf_stub.h:
+ * src/hal_diag.c:
+ * src/sa11x0_misc.c: Update for virtual vector (debug) support.
+
+2000-06-12 Gary Thomas <gthomas@redhat.com>
+
+ * src/hal_diag.c: Fix baud rates for 960,19200. Take out "announce"
+ string in ROM mode.
+
+2000-06-05 Gary Thomas <gthomas@redhat.com>
+
+ * src/plf_stub.c:
+ * include/plf_stub.h: 'sa1100' shared items renamed to 'sa11x0'.
+
+ * src/sa11x0_misc.c (hal_IRQ_handler):
+ (hal_interrupt_mask):
+ (hal_interrupt_unmask):
+ (hal_interrupt_acknowledge):
+ (hal_interrupt_configure): Complete support for GPIO interrupts.
+ Some of these are direct, others are grouped and the code needs
+ to handle both. Also update support for GPIO edge detect interrupt
+ circuitry.
+
+2000-06-04 Gary Thomas <gthomas@redhat.com>
+
+ * include/hal_cache.h:
+ * src/hal_diag.c:
+ * src/sa11x0_misc.c: Renaming of 'sa1100' shared stuff to be
+ 'sa11x0'.
+
+ * include/hal_sa11x0.h: Renamed from 'hal_sa1100.h'.
+
+2000-06-01 Gary Thomas <gthomas@redhat.com>
+
+ * src/sa11x0_misc.c: Enable caches.
+
+ * include/hal_sa1100.h: Misc cleanups and additions necessary for
+ ROM startup mode.
+
+2000-05-10 Gary Thomas <gthomas@redhat.com>
+
+ * current/src/plf_stub.c:
+ * current/src/hal_diag.c:
+ * current/src/sa11x0_misc.c:
+ * current/include/hal_diag.h:
+ * current/include/hal_sa1100.h:
+ * current/include/hal_cache.h:
+ * current/include/plf_stub.h:
+ * current/cdl/hal_arm_sa11x0.cdl: New file(s).
+
+//===========================================================================
+// ####GPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 2 or (at your option) any
+// later version.
+//
+// This program is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the
+// Free Software Foundation, Inc., 51 Franklin Street,
+// Fifth Floor, Boston, MA 02110-1301, USA.
+// -------------------------------------------
+// ####GPLCOPYRIGHTEND####
+//===========================================================================
diff --git a/ecos/packages/hal/arm/sa11x0/var/current/cdl/hal_arm_sa11x0.cdl b/ecos/packages/hal/arm/sa11x0/var/current/cdl/hal_arm_sa11x0.cdl
new file mode 100644
index 0000000..02fd9a0
--- /dev/null
+++ b/ecos/packages/hal/arm/sa11x0/var/current/cdl/hal_arm_sa11x0.cdl
@@ -0,0 +1,163 @@
+# ====================================================================
+#
+# hal_arm_sa11x0.cdl
+#
+# ARM SA11x0 architectural HAL package configuration data
+#
+# ====================================================================
+## ####ECOSGPLCOPYRIGHTBEGIN####
+## -------------------------------------------
+## This file is part of eCos, the Embedded Configurable Operating System.
+## Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+##
+## eCos is free software; you can redistribute it and/or modify it under
+## the terms of the GNU General Public License as published by the Free
+## Software Foundation; either version 2 or (at your option) any later
+## version.
+##
+## eCos is distributed in the hope that it will be useful, but WITHOUT
+## ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+## FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+## for more details.
+##
+## You should have received a copy of the GNU General Public License
+## along with eCos; if not, write to the Free Software Foundation, Inc.,
+## 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+##
+## As a special exception, if other files instantiate templates or use
+## macros or inline functions from this file, or you compile this file
+## and link it with other works to produce a work based on this file,
+## this file does not by itself cause the resulting work to be covered by
+## the GNU General Public License. However the source code for this file
+## must still be made available in accordance with section (3) of the GNU
+## General Public License v2.
+##
+## This exception does not invalidate any other reasons why a work based
+## on this file might be covered by the GNU General Public License.
+## -------------------------------------------
+## ####ECOSGPLCOPYRIGHTEND####
+# ====================================================================
+######DESCRIPTIONBEGIN####
+#
+# Author(s): gthomas
+# Original data: gthomas
+# Contributors:
+# Date: 2000-05-08
+#
+#####DESCRIPTIONEND####
+#
+# ====================================================================
+cdl_package CYGPKG_HAL_ARM_SA11X0 {
+ display "ARM SA11X0 architecture"
+ parent CYGPKG_HAL_ARM
+ hardware
+ include_dir cyg/hal
+ define_header hal_arm_sa11x0.h
+ description "
+ This HAL variant package provides generic
+ support for the Intel StrongARM SA11x0 processors. It is also
+ necessary to select a specific target platform HAL
+ package."
+
+ implements CYGINT_HAL_ARM_ARCH_STRONGARM
+ implements CYGINT_HAL_VIRTUAL_VECTOR_COMM_BAUD_SUPPORT
+ implements CYGINT_PROFILE_HAL_TIMER
+
+ # Let the architectural HAL see this variant's interrupts file -
+ # the SA11x0 has no variation between targets here.
+ define_proc {
+ puts $::cdl_header "#define CYGBLD_HAL_VAR_INTS_H <cyg/hal/hal_var_ints.h>"
+ puts $::cdl_system_header "#define CYGBLD_HAL_ARM_VAR_IO_H"
+
+ puts $::cdl_header "#define CYGPRI_KERNEL_TESTS_DHRYSTONE_PASSES 1000000"
+ }
+
+ compile hal_diag.c sa11x0_misc.c
+
+ cdl_option CYGHWR_HAL_ARM_SA11X0_PROCESSOR_CLOCK {
+ display "Processor clock rate"
+ active_if { CYG_HAL_STARTUP == "ROM" }
+ flavor data
+ legal_values 59000 73700 88500 103200 118000 132700 147500 162200 176900 191700 206400 221200
+ default_value { CYGHWR_HAL_ARM_SA11X0_PROCESSOR_CLOCK_OVERRIDE_DEFAULT ?
+ CYGHWR_HAL_ARM_SA11X0_PROCESSOR_CLOCK_OVERRIDE_DEFAULT : 221200}
+ description "
+ The SA-1100 processor can run at various frequencies.
+ These values are expressed in KHz. Note that there are
+ several steppings of the SA-1100 rated to run at different
+ maximum frequencies. Check the specs to make sure that your
+ particular processor can run at the rate you select here."
+ }
+
+ # Real-time clock/counter specifics
+ cdl_component CYGNUM_HAL_RTC_CONSTANTS {
+ display "Real-time clock constants"
+ flavor none
+ no_define
+
+ cdl_option CYGNUM_HAL_RTC_NUMERATOR {
+ display "Real-time clock numerator"
+ flavor data
+ default_value 1000000000
+ }
+ cdl_option CYGNUM_HAL_RTC_DENOMINATOR {
+ display "Real-time clock denominator"
+ flavor data
+ default_value 100
+ description "
+ This option selects the heartbeat rate for the real-time clock.
+ The rate is specified in ticks per second. Change this value
+ with caution - too high and your system will become saturated
+ just handling clock interrupts, too low and some operations
+ such as thread scheduling may become sluggish."
+ }
+ cdl_option CYGNUM_HAL_RTC_PERIOD {
+ display "Real-time clock period"
+ flavor data
+ default_value (3686400/CYGNUM_HAL_RTC_DENOMINATOR) ;# Clock for OS Timer is 3.6864MHz
+ }
+ }
+
+ # Control over hardware layout.
+ cdl_interface CYGHWR_HAL_ARM_SA11X0_UART1 {
+ display "UART1 available as diagnostic/debug channel"
+ description "
+ The SA11x0 chip has multiple serial channels which may be
+ used for different things on different platforms. This
+ interface allows a platform to indicate that the specified
+ serial port can be used as a diagnostic and/or debug channel."
+ }
+
+ cdl_interface CYGHWR_HAL_ARM_SA11X0_UART3 {
+ display "UART3 available as diagnostic/debug channel"
+ description "
+ The SA11x0 chip has multiple serial channels which may be
+ used for different things on different platforms. This
+ interface allows a platform to indicate that the specified
+ serial port can be used as a diagnostic and/or debug channel."
+ }
+
+ cdl_option CYGPKG_HAL_ARM_SA11X0_TESTS {
+ display "SA11x0 HAL tests"
+ flavor data
+ no_define
+ calculated { "tests/mmap_test" }
+ description "
+ This option specifies the set of tests for the SA11x0 HAL."
+ }
+
+
+ cdl_component CYGPKG_REDBOOT_HAL_SA11X0_OPTIONS {
+ display "Redboot HAL variant options"
+ flavor none
+ no_define
+ parent CYGPKG_REDBOOT
+ active_if CYGPKG_REDBOOT
+
+ # RedBoot details
+ requires { CYGHWR_REDBOOT_ARM_LINUX_EXEC_ADDRESS_DEFAULT == 0xc0008000 }
+ define_proc {
+ puts $::cdl_header "#define CYGHWR_REDBOOT_ARM_TRAMPOLINE_ADDRESS 0x00001f00"
+ }
+ }
+}
diff --git a/ecos/packages/hal/arm/sa11x0/var/current/include/hal_cache.h b/ecos/packages/hal/arm/sa11x0/var/current/include/hal_cache.h
new file mode 100644
index 0000000..b4ebcc2
--- /dev/null
+++ b/ecos/packages/hal/arm/sa11x0/var/current/include/hal_cache.h
@@ -0,0 +1,398 @@
+#ifndef CYGONCE_HAL_CACHE_H
+#define CYGONCE_HAL_CACHE_H
+
+//=============================================================================
+//
+// hal_cache.h
+//
+// HAL cache control API
+//
+//=============================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): gthomas
+// Contributors:hmt
+// Travis C. Furrer <furrer@mit.edu>
+// Date: 2000-05-08
+// 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 <cyg/infra/cyg_type.h>
+#include <cyg/hal/hal_sa11x0.h>
+#include <cyg/hal/hal_mmu.h>
+
+//-----------------------------------------------------------------------------
+// FIXME: This definition forces the IO flash driver to use a
+// known-good procedure for fiddling flash before calling flash device
+// driver functions. The procedure breaks on other platform/driver
+// combinations though so is depricated. Hence this definition.
+//
+// If you work on this target, please try to remove this definition
+// and verify that the flash driver still works (both from RAM and
+// flash). If it does, remove the definition and this comment for good
+// [and the old macro definition if this happens to be the last client
+// of that code].
+#if defined(CYGPKG_HAL_ARM_SA11X0_ASSABET) \
+ || defined(CYGPKG_HAL_ARM_SA11X0_SA1100MM)
+# define HAL_FLASH_CACHES_OLD_MACROS
+#endif
+
+//-----------------------------------------------------------------------------
+// Cache dimensions
+
+#define HAL_ICACHE_SIZE SA11X0_ICACHE_SIZE
+#define HAL_ICACHE_LINE_SIZE SA11X0_ICACHE_LINESIZE_BYTES
+#define HAL_ICACHE_WAYS SA11X0_ICACHE_WAYS
+#define HAL_ICACHE_SETS (HAL_ICACHE_SIZE/(HAL_ICACHE_LINE_SIZE*HAL_ICACHE_WAYS))
+
+#define HAL_DCACHE_SIZE SA11X0_DCACHE_SIZE
+#define HAL_DCACHE_LINE_SIZE SA11X0_DCACHE_LINESIZE_BYTES
+#define HAL_DCACHE_WAYS SA11X0_DCACHE_WAYS
+#define HAL_DCACHE_SETS (HAL_DCACHE_SIZE/(HAL_DCACHE_LINE_SIZE*HAL_DCACHE_WAYS))
+
+// FIXME: much of the code below should make better use of
+// the definitions from hal_mmu.h
+
+//-----------------------------------------------------------------------------
+// Global control of Instruction cache
+
+// Enable the instruction cache
+#define HAL_ICACHE_ENABLE() \
+CYG_MACRO_START \
+ asm volatile ( \
+ "mrc p15,0,r1,c1,c0,0;" \
+ "orr r1,r1,#0x1000;" \
+ "orr r1,r1,#0x0003;" /* enable ICache (also ensures */ \
+ /* that MMU and alignment faults */ \
+ /* are enabled) */ \
+ "mcr p15,0,r1,c1,c0,0" \
+ : \
+ : \
+ : "r1" /* Clobber list */ \
+ ); \
+CYG_MACRO_END
+
+// Disable the instruction cache (and invalidate it, required semanitcs)
+#define HAL_ICACHE_DISABLE() \
+CYG_MACRO_START \
+ asm volatile ( \
+ "mrc p15,0,r1,c1,c0,0;" \
+ "bic r1,r1,#0x1000;" /* disable ICache (but not MMU, etc) */ \
+ "mcr p15,0,r1,c1,c0,0;" \
+ "mov r1,#0;" \
+ "mcr p15,0,r1,c7,c5,0;" /* flush ICache */ \
+ "nop;" /* next few instructions may be via cache */ \
+ "nop;" \
+ "nop;" \
+ "nop;" \
+ "nop;" \
+ "nop" \
+ : \
+ : \
+ : "r1" /* Clobber list */ \
+ ); \
+CYG_MACRO_END
+
+// Query the state of the instruction cache
+#define HAL_ICACHE_IS_ENABLED(_state_) \
+CYG_MACRO_START \
+ register cyg_uint32 reg; \
+ asm volatile ("mrc p15,0,%0,c1,c0,0" \
+ : "=r"(reg) \
+ : \
+ ); \
+ (_state_) = (0 != (0x1000 & reg)); /* Bit 12 is ICache enable */ \
+CYG_MACRO_END
+
+// Invalidate the entire cache
+#define HAL_ICACHE_INVALIDATE_ALL() \
+CYG_MACRO_START \
+ /* this macro can discard dirty cache lines (N/A for ICache) */ \
+ asm volatile ( \
+ "mov r1,#0;" \
+ "mcr p15,0,r1,c7,c5,0;" /* flush ICache */ \
+ "mcr p15,0,r1,c8,c5,0;" /* flush ITLB only */ \
+ "nop;" /* next few instructions may be via cache */ \
+ "nop;" \
+ "nop;" \
+ "nop;" \
+ "nop;" \
+ "nop;" \
+ : \
+ : \
+ : "r1" /* Clobber list */ \
+ ); \
+CYG_MACRO_END
+
+// Synchronize the contents of the cache with memory.
+// (which includes flushing out pending writes)
+#define HAL_ICACHE_SYNC() \
+CYG_MACRO_START \
+ HAL_DCACHE_SYNC(); /* ensure data gets to RAM */ \
+ HAL_ICACHE_INVALIDATE_ALL(); /* forget all we know */ \
+CYG_MACRO_END
+
+// Set the instruction cache refill burst size
+//#define HAL_ICACHE_BURST_SIZE(_size_)
+// This feature is not available on the SA11X0.
+
+// 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_)
+// This feature is not available on the SA11X0.
+
+// Undo a previous lock operation
+//#define HAL_ICACHE_UNLOCK(_base_, _size_)
+// This feature is not available on the SA11X0.
+
+// Unlock entire cache
+//#define HAL_ICACHE_UNLOCK_ALL()
+// This feature is not available on the SA11X0.
+
+//-----------------------------------------------------------------------------
+// Instruction cache line control
+
+// Invalidate cache lines in the given range without writing to memory.
+//#define HAL_ICACHE_INVALIDATE( _base_ , _size_ )
+// This feature is not available on the SA11X0.
+
+//-----------------------------------------------------------------------------
+// Global control of data cache
+
+// Enable the data cache
+#define HAL_DCACHE_ENABLE() \
+CYG_MACRO_START \
+ asm volatile ( \
+ "mrc p15,0,r1,c1,c0,0;" \
+ "orr r1,r1,#0x000F;" /* enable DCache (also ensures */ \
+ /* the MMU, alignment faults, and */ \
+ /* write buffer are enabled) */ \
+ "mcr p15,0,r1,c1,c0,0" \
+ : \
+ : \
+ : "r1" /* Clobber list */ \
+ ); \
+CYG_MACRO_END
+
+// Disable the data cache (and invalidate it, required semanitcs)
+#define HAL_DCACHE_DISABLE() \
+CYG_MACRO_START \
+ asm volatile ( \
+ "mrc p15,0,r1,c1,c0,0;" \
+ "bic r1,r1,#0x000C;" /* disable DCache AND write buffer */ \
+ /* but not MMU and alignment faults */ \
+ "mcr p15,0,r1,c1,c0,0;" \
+ "mov r1,#0;" \
+ "mcr p15,0,r1,c7,c6,0" /* clear data cache */ \
+ : \
+ : \
+ : "r1" /* Clobber list */ \
+ ); \
+CYG_MACRO_END
+
+// Query the state of the data cache
+#define HAL_DCACHE_IS_ENABLED(_state_) \
+CYG_MACRO_START \
+ register int reg; \
+ asm volatile ("mrc p15,0,%0,c1,c0,0;" \
+ : "=r"(reg) \
+ : \
+ ); \
+ (_state_) = (0 != (4 & reg)); /* Bit 2 is DCache enable */ \
+CYG_MACRO_END
+
+// Flush the entire dcache (and then both TLBs, just in case)
+#define HAL_DCACHE_INVALIDATE_ALL() \
+CYG_MACRO_START /* this macro can discard dirty cache lines. */ \
+ asm volatile ( \
+ "mov r1,#0;" \
+ "mcr p15,0,r1,c7,c6,0;" \
+ "mcr p15,0,r1,c8,c7,0;" \
+ : \
+ : \
+ : "r1","memory" ); \
+CYG_MACRO_END
+
+
+// Synchronize the contents of the cache with memory.
+#define HAL_DCACHE_SYNC() \
+CYG_MACRO_START \
+ /* This is slightly naff in that the only way to force a dirty */ \
+ /* line out is by loading other data into its slot, so */ \
+ /* invalidating that slot. */ \
+ asm volatile ( \
+ "mov r0, #0xE0000000;" /* SA11X0 zeros bank (128Mb) */ \
+ "add r1, r0, #0x2000;" /* We read 8kB of it */ \
+ "667: " \
+ "ldr r2, [r0], #32;" \
+ "teq r1, r0;" \
+ "bne 667b;" \
+ "mov r0,#0;" \
+ "mcr p15,0,r0,c7,c6,0;" /* flush DCache */ \
+ "mcr p15,0,r0,c7,c10,4;" /* and drain the write buffer */ \
+ : \
+ : \
+ : "r0","r1","r2" /* Clobber list */ \
+ ); \
+CYG_MACRO_END
+
+// Set the data cache refill burst size
+//#define HAL_DCACHE_BURST_SIZE(_size_)
+// This feature is not available on the SA11X0.
+
+// Set the data cache write mode
+//#define HAL_DCACHE_WRITE_MODE( _mode_ )
+// This feature is not available on the SA11X0.
+
+#define HAL_DCACHE_WRITETHRU_MODE 0
+#define HAL_DCACHE_WRITEBACK_MODE 1
+
+// Get the current writeback mode - or only writeback mode if fixed
+#define HAL_DCACHE_QUERY_WRITE_MODE( _mode_ ) CYG_MACRO_START \
+ _mode_ = HAL_DCACHE_WRITEBACK_MODE; \
+CYG_MACRO_END
+
+// 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_)
+// This feature is not available on the SA11X0.
+
+// Undo a previous lock operation
+//#define HAL_DCACHE_UNLOCK(_base_, _size_)
+// This feature is not available on the SA11X0.
+
+// Unlock entire cache
+//#define HAL_DCACHE_UNLOCK_ALL()
+// This feature is not available on the SA11X0.
+
+//-----------------------------------------------------------------------------
+// Data cache line control
+
+// Allocate cache lines for the given address range without reading its
+// contents from memory.
+//#define HAL_DCACHE_ALLOCATE( _base_ , _size_ )
+// This feature is not available on the SA11X0.
+
+// Write dirty cache lines to memory and invalidate the cache entries
+// for the given address range.
+#define HAL_DCACHE_FLUSH( _base_ , _size_ ) \
+CYG_MACRO_START \
+ HAL_DCACHE_STORE( _base_ , _size_ ); \
+ HAL_DCACHE_INVALIDATE( _base_ , _size_ ); \
+CYG_MACRO_END
+
+// Invalidate cache lines in the given range without writing to memory.
+#define HAL_DCACHE_INVALIDATE( _base_ , _size_ ) \
+CYG_MACRO_START \
+ register int addr, enda; \
+ for ( addr = (~(HAL_DCACHE_LINE_SIZE - 1)) & (int)(_base_), \
+ enda = (int)(_base_) + (_size_); \
+ addr < enda ; \
+ addr += HAL_DCACHE_LINE_SIZE ) \
+ { \
+ asm volatile ( \
+ "mcr p15,0,%0,c7,c6,1;" /* flush entry away */ \
+ : \
+ : "r"(addr) \
+ : "memory" \
+ ); \
+ } \
+CYG_MACRO_END
+
+// Write dirty cache lines to memory for the given address range.
+#define HAL_DCACHE_STORE( _base_ , _size_ ) \
+CYG_MACRO_START \
+ register int addr, enda; \
+ for ( addr = (~(HAL_DCACHE_LINE_SIZE - 1)) & (int)(_base_), \
+ enda = (int)(_base_) + (_size_); \
+ addr < enda ; \
+ addr += HAL_DCACHE_LINE_SIZE ) \
+ { \
+ asm volatile ("mcr p15,0,%0,c7,c10,1;" /* push entry to RAM */ \
+ : \
+ : "r"(addr) \
+ : "memory" \
+ ); \
+ } \
+ /* and also drain the write buffer */ \
+ asm volatile ( \
+ "mov r1,#0;" \
+ "mcr p15,0,r1,c7,c10,4;" \
+ : \
+ : \
+ : "r1", "memory" /* Clobber list */ \
+ ); \
+CYG_MACRO_END
+
+// Preread the given range into the cache with the intention of reading
+// from it later.
+//#define HAL_DCACHE_READ_HINT( _base_ , _size_ )
+// This feature is available on the SA11X0, but due to tricky
+// coherency issues with the read buffer (see SA11X0 developer's
+// manual page 6-7) we don't bother to implement it here.
+
+// Preread the given range into the cache with the intention of writing
+// to it later.
+//#define HAL_DCACHE_WRITE_HINT( _base_ , _size_ )
+// This feature is not available on the SA11X0.
+
+// Allocate and zero the cache lines associated with the given range.
+//#define HAL_DCACHE_ZERO( _base_ , _size_ )
+// This feature is not available on the SA11X0.
+
+//-----------------------------------------------------------------------------
+// Now include the details of the platform's Memory Map setup:
+
+#include <cyg/hal/plf_mmap.h>
+
+// and define the (considerably less efficient) routines that are available
+// for testing the actual memory map in force.
+
+externC cyg_uint32 hal_virt_to_phys_address( cyg_uint32 vaddr );
+externC cyg_uint32 hal_phys_to_virt_address( cyg_uint32 paddr );
+externC cyg_uint32 hal_virt_to_uncached_address( cyg_uint32 vaddr );
+
+//-----------------------------------------------------------------------------
+#endif // ifndef CYGONCE_HAL_CACHE_H
+// End of hal_cache.h
diff --git a/ecos/packages/hal/arm/sa11x0/var/current/include/hal_diag.h b/ecos/packages/hal/arm/sa11x0/var/current/include/hal_diag.h
new file mode 100644
index 0000000..d9ec42a
--- /dev/null
+++ b/ecos/packages/hal/arm/sa11x0/var/current/include/hal_diag.h
@@ -0,0 +1,93 @@
+#ifndef CYGONCE_HAL_DIAG_H
+#define CYGONCE_HAL_DIAG_H
+
+/*=============================================================================
+//
+// hal_diag.h
+//
+// HAL Support for Kernel Diagnostic Routines
+//
+//=============================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): nickg, gthomas
+// Contributors: nickg, gthomas
+// Date: 1998-09-11
+// 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>
+#include <cyg/hal/hal_if.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_)
+
+// Not the best place for this, but ...
+externC void hal_delay_us(cyg_int32 usecs);
+
+#define HAL_DELAY_US(n) hal_delay_us(n);
+
+#else
+
+/*---------------------------------------------------------------------------*/
+/* 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
+
+/*---------------------------------------------------------------------------*/
+/* end of hal_diag.h */
+#endif /* CYGONCE_HAL_DIAG_H */
diff --git a/ecos/packages/hal/arm/sa11x0/var/current/include/hal_mm.h b/ecos/packages/hal/arm/sa11x0/var/current/include/hal_mm.h
new file mode 100644
index 0000000..d298c69
--- /dev/null
+++ b/ecos/packages/hal/arm/sa11x0/var/current/include/hal_mm.h
@@ -0,0 +1,192 @@
+#ifndef CYGONCE_HAL_MM_H
+#define CYGONCE_HAL_MM_H
+
+//=============================================================================
+//
+// hal_mm.h
+//
+// ARM SA11x0 MM common definitions
+//
+//=============================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): gthomas
+// Contributors: hmt
+// Travis C. Furrer <furrer@mit.edu>
+// Date: 2000-12-13
+// Purpose: ARM SA11x0 MM common definitions
+// Description: The macros defined here provide common definitions for
+// memory management initialization.
+// Usage:
+// #include <cyg/hal/hal_mm.h>
+// ...
+//
+//
+//####DESCRIPTIONEND####
+//
+//=============================================================================
+
+
+// -------------------------------------------------------------------------
+// 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 {
+ unsigned int id : 2;
+ unsigned int sbz : 30;
+};
+#define ARM_MMU_FIRST_LEVEL_FAULT_ID 0x0
+
+struct ARM_MMU_FIRST_LEVEL_PAGE_TABLE {
+ unsigned int id : 2;
+ unsigned int imp : 2;
+ unsigned int domain : 4;
+ unsigned int sbz : 1;
+ unsigned int base_address : 23;
+};
+#define ARM_MMU_FIRST_LEVEL_PAGE_TABLE_ID 0x1
+
+struct ARM_MMU_FIRST_LEVEL_SECTION {
+ unsigned int id : 2;
+ unsigned int b : 1;
+ unsigned int c : 1;
+ unsigned int imp : 1;
+ unsigned int domain : 4;
+ unsigned int sbz0 : 1;
+ unsigned int ap : 2;
+ unsigned int sbz1 : 8;
+ unsigned int base_address : 12;
+};
+#define ARM_MMU_FIRST_LEVEL_SECTION_ID 0x2
+
+struct ARM_MMU_FIRST_LEVEL_RESERVED {
+ unsigned int id : 2;
+ unsigned 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
+
+/*
+ * Initialization for the Domain Access Control Register
+ */
+#define ARM_ACCESS_DACR_DEFAULT ( \
+ 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) )
+
+// ------------------------------------------------------------------------
+#endif // ifndef CYGONCE_HAL_MM_H
+// End of hal_mm.h
+
+
+
+
+
diff --git a/ecos/packages/hal/arm/sa11x0/var/current/include/hal_sa11x0.h b/ecos/packages/hal/arm/sa11x0/var/current/include/hal_sa11x0.h
new file mode 100644
index 0000000..7c08ae0
--- /dev/null
+++ b/ecos/packages/hal/arm/sa11x0/var/current/include/hal_sa11x0.h
@@ -0,0 +1,726 @@
+//==========================================================================
+//
+// hal_sa11x0.h
+//
+// HAL misc board support definitions for StrongARM SA11x0
+//
+//==========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//==========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): gthomas
+// Contributors: gthomas, dmoseley
+// Date: 2000-04-04
+// Purpose: Platform register definitions
+// Description:
+//
+//####DESCRIPTIONEND####
+//
+//========================================================================*/
+
+#ifndef __HAL_SA11X0_H__
+#define __HAL_SA11X0_H__ 1
+
+#ifdef __ASSEMBLER__
+
+#define REG8_VAL(a) (a)
+#define REG16_VAL(a) (a)
+#define REG32_VAL(a) (a)
+
+#define REG8_PTR(a) (a)
+#define REG16_PTR(a) (a)
+#define REG32_PTR(a) (a)
+
+#else /* __ASSEMBLER__ */
+
+#define REG8_VAL(a) ((unsigned char)(a))
+#define REG16_VAL(a) ((unsigned short)(a))
+#define REG32_VAL(a) ((unsigned int)(a))
+
+#define REG8_PTR(a) ((volatile unsigned char *)(a))
+#define REG16_PTR(a) ((volatile unsigned long *)(a))
+#define REG32_PTR(a) ((volatile unsigned long *)(a))
+
+#endif /* __ASSEMBLER__ */
+
+/*
+ * SA11X0 Default Memory Layout Definitions
+ */
+// Typically ROM, FLASH
+#define SA11X0_ROM_BANK0_BASE (0)
+#define SA11X0_ROM_BANK1_BASE (SA11X0_ROM_BANK0_BASE + SZ_128M)
+#define SA11X0_ROM_BANK2_BASE (SA11X0_ROM_BANK1_BASE + SZ_128M)
+#define SA11X0_ROM_BANK3_BASE (SA11X0_ROM_BANK2_BASE + SZ_128M)
+
+// May be ROM, FLASH, SRAM, etc
+#define SA11X0_ROM_BANK4_BASE (0x40000000)
+#define SA11X0_ROM_BANK5_BASE (SA11X0_ROM_BANK4_BASE + SZ_128M)
+
+// Typically DRAM
+#define SA11X0_RAM_BANK0_BASE (0xC0000000)
+#define SA11X0_RAM_BANK1_BASE (SA11X0_RAM_BANK0_BASE + SZ_128M)
+#define SA11X0_RAM_BANK2_BASE (SA11X0_RAM_BANK1_BASE + SZ_128M)
+#define SA11X0_RAM_BANK3_BASE (SA11X0_RAM_BANK2_BASE + SZ_128M)
+
+#define SA11X0_ZEROS_BANK_BASE (SA11X0_RAM_BANK3_BASE + SZ_128M)
+
+/*
+ * SA11X0 Register Definitions
+ */
+#define SA11X0_REGISTER_BASE 0x80000000
+#define SA11X0_REGISTER(x) REG32_PTR(SA11X0_REGISTER_BASE + (x))
+
+/*
+ * SA-1100 Cache and MMU Definitions
+ */
+#define SA11X0_ICACHE_SIZE 0x4000 // 16K
+#define SA11X0_DCACHE_SIZE 0x2000 // 8K
+#define SA11X0_ICACHE_LINESIZE_BYTES 32
+#define SA11X0_DCACHE_LINESIZE_BYTES 32
+#define SA11X0_ICACHE_LINESIZE_WORDS 8
+#define SA11X0_DCACHE_LINESIZE_WORDS 8
+#define SA11X0_ICACHE_WAYS 32
+#define SA11X0_DCACHE_WAYS 32
+#define SA11X0_ICACHE_LINE_BASE(p) REG32_PTR((unsigned long)(p) & \
+ ~(SA11X0_ICACHE_LINESIZE_BYTES - 1))
+#define SA11X0_DCACHE_LINE_BASE(p) REG32_PTR((unsigned long)(p) & \
+ ~(SA11X0_DCACHE_LINESIZE_BYTES - 1))
+
+/*
+ * SA-1100 Coprocessor 15 Extensions Register Definitions
+ */
+#ifdef __ASSEMBLER__
+# define SA11X0_READ_PROCESS_ID_REGISTER c13
+# define SA11X0_WRITE_PROCESS_ID_REGISTER c13
+# define SA11X0_READ_BREAKPOINT_REGISTER c14
+# define SA11X0_WRITE_BREAKPOINT_REGISTER c14
+# define SA11X0_TEST_CLOCK_AND_IDLE_REGISTER c15
+#else /* __ASSEMBLER__ */
+# define SA11X0_READ_PROCESS_ID_REGISTER "c13"
+# define SA11X0_WRITE_PROCESS_ID_REGISTER "c13"
+# define SA11X0_READ_BREAKPOINT_REGISTER "c14"
+# define SA11X0_WRITE_BREAKPOINT_REGISTER "c14"
+# define SA11X0_TEST_CLOCK_AND_IDLE_REGISTER "c15"
+#endif /* __ASSEMBLER__ */
+
+/*
+ * SA-1100 Process ID Virtual Address Mapping Definitions
+ */
+#ifdef __ASSEMBLER__
+# define SA11X0_ACCESS_PROC_ID_REGISTER_OPCODE 0x0
+# define SA11X0_ACCESS_PROC_ID_REGISTER_RM c0
+#else /* __ASSEMBLER__ */
+# define SA11X0_ACCESS_PROC_ID_REGISTER_OPCODE "0x0"
+# define SA11X0_ACCESS_PROC_ID_REGISTER_RM "c0"
+#endif /* __ASSEMBLER__ */
+
+#define SA11X0_PROCESS_ID_PID_MASK 0x7E000000
+
+/*
+ * SA-1100 Debug Support Definitions
+ */
+#ifdef __ASSEMBLER__
+# define SA11X0_ACCESS_DBAR_OPCODE 0x0
+# define SA11X0_ACCESS_DBAR_RM c0
+# define SA11X0_ACCESS_DBVR_OPCODE 0x0
+# define SA11X0_ACCESS_DBVR_RM c1
+# define SA11X0_ACCESS_DBMR_OPCODE 0x0
+# define SA11X0_ACCESS_DBMR_RM c2
+# define SA11X0_LOAD_DBCR_OPCODE 0x0
+# define SA11X0_LOAD_DBCR_RM c3
+#else /* __ASSEMBLER__ */
+# define SA11X0_ACCESS_DBAR_OPCODE "0x0"
+# define SA11X0_ACCESS_DBAR_RM "c0"
+# define SA11X0_ACCESS_DBVR_OPCODE "0x0"
+# define SA11X0_ACCESS_DBVR_RM "c1"
+# define SA11X0_ACCESS_DBMR_OPCODE "0x0"
+# define SA11X0_ACCESS_DBMR_RM "c2"
+# define SA11X0_LOAD_DBCR_OPCODE "0x0"
+# define SA11X0_LOAD_DBCR_RM "c3"
+#endif /* __ASSEMBLER__ */
+
+#define SA11X0_DBCR_LOAD_WATCH_DISABLED 0x00000000
+#define SA11X0_DBCR_LOAD_WATCH_ENABLED 0x00000001
+#define SA11X0_DBCR_LOAD_WATCH_MASK 0x00000001
+#define SA11X0_DBCR_STORE_ADDRESS_WATCH_DISABLED 0x00000000
+#define SA11X0_DBCR_STORE_ADDRESS_WATCH_ENABLED 0x00000002
+#define SA11X0_DBCR_STORE_ADDRESS_WATCH_MASK 0x00000002
+#define SA11X0_DBCR_STORE_DATA_WATCH_DISABLED 0x00000000
+#define SA11X0_DBCR_STORE_DATA_WATCH_ENABLED 0x00000004
+#define SA11X0_DBCR_STORE_DATA_WATCH_MASK 0x00000004
+
+#define SA11X0_IBCR_INSTRUCTION_ADDRESS_MASK 0xFFFFFFFC
+#define SA11X0_IBCR_BREAKPOINT_DISABLED 0x00000000
+#define SA11X0_IBCR_BREAKPOINT_ENABLED 0x00000001
+#define SA11X0_IBCR_BREAKPOINT_ENABLE_MASK 0x00000001
+
+/*
+ * SA-1100 Test, Clock and Idle Control Definition
+ */
+#ifdef __ASSEMBLER__
+# define SA11X0_ICACHE_ODD_WORD_LOADING_OPCODE 0x1
+# define SA11X0_ICACHE_ODD_WORD_LOADING_RM c1
+# define SA11X0_ICACHE_EVEN_WORD_LOADING_OPCODE 0x1
+# define SA11X0_ICACHE_EVEN_WORD_LOADING_RM c2
+# define SA11X0_ICACHE_CLEAR_LFSR_OPCODE 0x1
+# define SA11X0_ICACHE_CLEAR_LFSR_RM c4
+# define SA11X0_MOVE_LFSR_TO_R14_ABORT_OPCODE 0x1
+# define SA11X0_MOVE_LFSR_TO_R14_ABORT_RM c8
+# define SA11X0_ENABLE_CLOCK_SWITCHING_OPCODE 0x2
+# define SA11X0_ENABLE_CLOCK_SWITCHING_RM c1
+# define SA11X0_DISABLE_CLOCK_SWITCHING_OPCODE 0x2
+# define SA11X0_DISABLE_CLOCK_SWITCHING_RM c2
+# define SA11X0_WAIT_FOR_INTERRUPT_OPCODE 0x2
+# define SA11X0_WAIT_FOR_INTERRUPT_RM c8
+#else /* __ASSEMBLER__ */
+# define SA11X0_ICACHE_ODD_WORD_LOADING_OPCODE "0x1"
+# define SA11X0_ICACHE_ODD_WORD_LOADING_RM "c1"
+# define SA11X0_ICACHE_EVEN_WORD_LOADING_OPCODE "0x1"
+# define SA11X0_ICACHE_EVEN_WORD_LOADING_RM "c2"
+# define SA11X0_ICACHE_CLEAR_LFSR_OPCODE "0x1"
+# define SA11X0_ICACHE_CLEAR_LFSR_RM "c4"
+# define SA11X0_MOVE_LFSR_TO_R14_ABORT_OPCODE "0x1"
+# define SA11X0_MOVE_LFSR_TO_R14_ABORT_RM "c8"
+# define SA11X0_ENABLE_CLOCK_SWITCHING_OPCODE "0x2"
+# define SA11X0_ENABLE_CLOCK_SWITCHING_RM "c1"
+# define SA11X0_DISABLE_CLOCK_SWITCHING_OPCODE "0x2"
+# define SA11X0_DISABLE_CLOCK_SWITCHING_RM "c2"
+# define SA11X0_WAIT_FOR_INTERRUPT_OPCODE "0x2"
+# define SA11X0_WAIT_FOR_INTERRUPT_RM "c8"
+#endif /* __ASSEMBLER__ */
+
+
+/*
+ * SA11X0 IRQ Controller IRQ Numbers
+ */
+#define SA11X0_IRQ_MIN 0
+
+#define SA11X0_IRQ_GPIO_0_EDGE_DETECT 0
+#define SA11X0_IRQ_GPIO_1_EDGE_DETECT 1
+#define SA11X0_IRQ_GPIO_2_EDGE_DETECT 2
+#define SA11X0_IRQ_GPIO_3_EDGE_DETECT 3
+#define SA11X0_IRQ_GPIO_4_EDGE_DETECT 4
+#define SA11X0_IRQ_GPIO_5_EDGE_DETECT 5
+#define SA11X0_IRQ_GPIO_6_EDGE_DETECT 6
+#define SA11X0_IRQ_GPIO_7_EDGE_DETECT 7
+#define SA11X0_IRQ_GPIO_8_EDGE_DETECT 8
+#define SA11X0_IRQ_GPIO_9_EDGE_DETECT 9
+#define SA11X0_IRQ_GPIO_10_EDGE_DETECT 10
+#define SA11X0_IRQ_GPIO_ANY_EDGE_DETECT 11
+#define SA11X0_IRQ_LCD_CONT_SERVICE_REQUEST 12
+#define SA11X0_IRQ_USB_SERVICE_REQUEST 13
+#define SA11X0_IRQ_SDLC_SERVICE_REQUEST 14
+#define SA11X0_IRQ_UART1_SERVICE_REQUEST 15
+#define SA11X0_IRQ_ICP_SERVICE_REQUEST 16
+#define SA11X0_IRQ_UART3_SERVICE_REQUEST 17
+#define SA11X0_IRQ_MCP_SERVICE_REQUEST 18
+#define SA11X0_IRQ_SSP_SERVICE_REQUEST 19
+#define SA11X0_IRQ_CHANNEL_0_SERVICE_REQUEST 20
+#define SA11X0_IRQ_CHANNEL_1_SERVICE_REQUEST 21
+#define SA11X0_IRQ_CHANNEL_2_SERVICE_REQUEST 22
+#define SA11X0_IRQ_CHANNEL_3_SERVICE_REQUEST 23
+#define SA11X0_IRQ_CHANNEL_4_SERVICE_REQUEST 24
+#define SA11X0_IRQ_CHANNEL_5_SERVICE_REQUEST 25
+#define SA11X0_IRQ_OS_TIMER_MATCH_REG_0 26
+#define SA11X0_IRQ_OS_TIMER_MATCH_REG_1 27
+#define SA11X0_IRQ_OS_TIMER_MATCH_REG_2 28
+#define SA11X0_IRQ_OS_TIMER_MATCH_REG_3 29
+#define SA11X0_IRQ_ONE_HZ_CLOCK_TIC 30
+#define SA11X0_IRQ_RTC_EQUALS_ALARM 31
+
+#define SA11X0_IRQ_MAX 31
+#define NUM_SA11X0_INTERRUPTS SA11X0_IRQ_MAX - SA11X0_IRQ_MIN + 1
+#define SA11X0_IRQ_INTSRC_MASK(irq_nr) (1 << (irq_nr))
+
+/*
+ * SA11X0 UART 1 Registers
+ */
+#define SA11X0_UART1_BASE SA11X0_REGISTER(0x10000)
+#define SA11X0_UART1_CONTROL0 SA11X0_REGISTER(0x10000)
+#define SA11X0_UART1_CONTROL1 SA11X0_REGISTER(0x10004)
+#define SA11X0_UART1_CONTROL2 SA11X0_REGISTER(0x10008)
+#define SA11X0_UART1_CONTROL3 SA11X0_REGISTER(0x1000C)
+#define SA11X0_UART1_DATA SA11X0_REGISTER(0x10014)
+#define SA11X0_UART1_STATUS0 SA11X0_REGISTER(0x1001C)
+#define SA11X0_UART1_STATUS1 SA11X0_REGISTER(0x10020)
+
+/*
+ * SA11X0 UART 3 Registers
+ */
+#define SA11X0_UART3_BASE SA11X0_REGISTER(0x50000)
+#define SA11X0_UART3_CONTROL0 SA11X0_REGISTER(0x50000)
+#define SA11X0_UART3_CONTROL1 SA11X0_REGISTER(0x50004)
+#define SA11X0_UART3_CONTROL2 SA11X0_REGISTER(0x50008)
+#define SA11X0_UART3_CONTROL3 SA11X0_REGISTER(0x5000C)
+#define SA11X0_UART3_DATA SA11X0_REGISTER(0x50014)
+#define SA11X0_UART3_STATUS0 SA11X0_REGISTER(0x5001C)
+#define SA11X0_UART3_STATUS1 SA11X0_REGISTER(0x50020)
+
+/*
+ * SA11X0 UART Control Register 0 Bit Fields.
+ */
+#define SA11X0_UART_PARITY_DISABLED 0x00
+#define SA11X0_UART_PARITY_ENABLED 0x01
+#define SA11X0_UART_PARITY_ENABLE_MASK 0x01
+#define SA11X0_UART_PARITY_ODD 0x00
+#define SA11X0_UART_PARITY_EVEN 0x02
+#define SA11X0_UART_PARITY_MODE_MASK 0x02
+#define SA11X0_UART_STOP_BITS_1 0x00
+#define SA11X0_UART_STOP_BITS_2 0x04
+#define SA11X0_UART_STOP_BITS_MASK 0x04
+#define SA11X0_UART_DATA_BITS_7 0x00
+#define SA11X0_UART_DATA_BITS_8 0x08
+#define SA11X0_UART_DATA_BITS_MASK 0x08
+#define SA11X0_UART_SAMPLE_CLOCK_DISABLED 0x00
+#define SA11X0_UART_SAMPLE_CLOCK_ENABLED 0x10
+#define SA11X0_UART_SAMPLE_CLOCK_ENABLE_MASK 0x10
+#define SA11X0_UART_RX_RISING_EDGE_SELECT 0x00
+#define SA11X0_UART_RX_FALLING_EDGE_SELECT 0x20
+#define SA11X0_UART_RX_EDGE_SELECT_MASK 0x20
+#define SA11X0_UART_TX_RISING_EDGE_SELECT 0x00
+#define SA11X0_UART_TX_FALLING_EDGE_SELECT 0x40
+#define SA11X0_UART_TX_EDGE_SELECT_MASK 0x20
+
+/*
+ * SA-1100 UART Baud Control Register bit masks
+ */
+#define SA11X0_UART_H_BAUD_RATE_DIVISOR_MASK 0x0000000F
+#define SA11X0_UART_L_BAUD_RATE_DIVISOR_MASK 0x000000FF
+#define SA11X0_UART_BAUD_RATE_DIVISOR(x) ((3686400/(16*(x)))-1)
+
+/*
+ * SA-1100 UART Control Register 3 Bit Fields.
+ */
+#define SA11X0_UART_RX_DISABLED 0x00
+#define SA11X0_UART_RX_ENABLED 0x01
+#define SA11X0_UART_RX_ENABLE_MASK 0x01
+#define SA11X0_UART_TX_DISABLED 0x00
+#define SA11X0_UART_TX_ENABLED 0x02
+#define SA11X0_UART_TX_ENABLE_MASK 0x02
+#define SA11X0_UART_BREAK_DISABLED 0x00
+#define SA11X0_UART_BREAK_ENABLED 0x04
+#define SA11X0_UART_BREAK_MASK 0x04
+#define SA11X0_UART_RX_FIFO_INT_DISABLED 0x00
+#define SA11X0_UART_RX_FIFO_INT_ENABLED 0x08
+#define SA11X0_UART_RX_FIFO_INT_ENABLE_MASK 0x08
+#define SA11X0_UART_TX_FIFO_INT_DISABLED 0x00
+#define SA11X0_UART_TX_FIFO_INT_ENABLED 0x10
+#define SA11X0_UART_TX_FIFO_INT_ENABLE_MASK 0x10
+#define SA11X0_UART_NORMAL_OPERATION 0x00
+#define SA11X0_UART_LOOPBACK_MODE 0x20
+
+/*
+ * SA-1100 UART Data Register bit masks
+ */
+#define SA11X0_UART_DATA_MASK 0x000000FF
+
+/*
+ * SA-1100 UART Status Register 0 Bit Fields.
+ */
+#define SA11X0_UART_TX_SERVICE_REQUEST 0x01
+#define SA11X0_UART_RX_SERVICE_REQUEST 0x02
+#define SA11X0_UART_RX_IDLE 0x04
+#define SA11X0_UART_RX_BEGIN_OF_BREAK 0x08
+#define SA11X0_UART_RX_END_OF_BREAK 0x10
+#define SA11X0_UART_ERROR_IN_FIFO 0x20
+
+/*
+ * SA-1100 UART Status Register 1 Bit Fields.
+ */
+#define SA11X0_UART_TX_BUSY 0x01
+#define SA11X0_UART_RX_FIFO_NOT_EMPTY 0x02
+#define SA11X0_UART_TX_FIFO_NOT_FULL 0x04
+#define SA11X0_UART_PARITY_ERROR 0x08
+#define SA11X0_UART_FRAMING_ERROR 0x10
+#define SA11X0_UART_RX_FIFO_OVERRUN 0x20
+
+#define UART_BASE_0 SA11X0_UART_CONTROL_0
+#define UART_BASE_1 SA11X0_UART_1_CONTROL_0
+
+/*
+ * SA11X0 IRQ Controller Register Definitions.
+ */
+#define SA11X0_ICIP SA11X0_REGISTER(0x10050000)
+#define SA11X0_ICMR SA11X0_REGISTER(0x10050004)
+#define SA11X0_ICLR SA11X0_REGISTER(0x10050008)
+#define SA11X0_ICCR SA11X0_REGISTER(0x1005000C)
+#define SA11X0_ICFP SA11X0_REGISTER(0x10050010)
+#define SA11X0_ICPR SA11X0_REGISTER(0x10050020)
+
+/*
+ * SA11X0 IRQ Controller Control Register Bit Fields.
+ */
+#define SA11X0_ICCR_DISABLE_IDLE_MASK_ALL 0x0
+#define SA11X0_ICCR_DISABLE_IDLE_MASK_ENABLED 0x1
+
+/*
+ * SA11X0 Timer/counter registers
+ */
+#define SA11X0_OSMR0 SA11X0_REGISTER(0x10000000)
+#define SA11X0_OSMR1 SA11X0_REGISTER(0x10000004)
+#define SA11X0_OSMR2 SA11X0_REGISTER(0x10000008)
+#define SA11X0_OSMR3 SA11X0_REGISTER(0x1000000C)
+#define SA11X0_OSCR SA11X0_REGISTER(0x10000010)
+#define SA11X0_OSSR SA11X0_REGISTER(0x10000014)
+#define SA11X0_OWER SA11X0_REGISTER(0x10000018)
+#define SA11X0_OIER SA11X0_REGISTER(0x1000001C)
+#define SA11X0_RCNR SA11X0_REGISTER(0x10010004)
+#define SA11X0_RTTR SA11X0_REGISTER(0x10010008)
+#define SA11X0_RTSR SA11X0_REGISTER(0x10010010)
+
+// Timer status register
+#define SA11X0_OSSR_TIMER0 (1<<0) // Timer match register #0
+#define SA11X0_OSSR_TIMER1 (1<<1)
+#define SA11X0_OSSR_TIMER2 (1<<2)
+#define SA11X0_OSSR_TIMER3 (1<<3)
+
+// Timer interrupt enable register
+#define SA11X0_OIER_TIMER0 (1<<0)
+#define SA11X0_OIER_TIMER1 (1<<1)
+#define SA11X0_OIER_TIMER2 (1<<2)
+#define SA11X0_OIER_TIMER3 (1<<3)
+
+// OS Timer Watchdog Match Enable Register
+#define SA11X0_OWER_ENABLE (1<<0) // write-once!
+
+/*
+ * SA-1100 Reset Controller Register Definition
+ */
+#define SA11X0_RESET_SOFTWARE_RESET SA11X0_REGISTER(0x10030000)
+#define SA11X0_RESET_STATUS SA11X0_REGISTER(0x10030004)
+#define SA11X0_TUCR SA11X0_REGISTER(0x10030008)
+
+#define SA11X0_TUCR_EXTERNAL_MEMORY_MASTER (1<<10)
+#define SA11X0_TUCR_RESERVED_BITS 0x1FFFF9FF
+
+/*
+ * SA-1100 Reset Controller Bit Field Definitions
+ */
+#define SA11X0_INVOKE_SOFTWARE_RESET 0x1
+
+#define SA11X0_HARDWARE_RESET 0x1
+#define SA11X0_SOFTWARE_RESET 0x2
+#define SA11X0_WATCHDOG_RESET 0x4
+#define SA11X0_SLEEP_MODE_RESET 0x8
+
+/*
+ * SA-1100 Power Manager Registers
+ */
+#define SA11X0_PWR_MGR_CONTROL SA11X0_REGISTER(0x10020000)
+#define SA11X0_PWR_MGR_SLEEP_STATUS SA11X0_REGISTER(0x10020004)
+#define SA11X0_PWR_MGR_SCRATCHPAD SA11X0_REGISTER(0x10020008)
+#define SA11X0_PWR_MGR_WAKEUP_ENABLE SA11X0_REGISTER(0x1002000C)
+#define SA11X0_PWR_MGR_GENERAL_CONFIG SA11X0_REGISTER(0x10020010)
+#define SA11X0_PWR_MGR_PLL_CONFIG SA11X0_REGISTER(0x10020014)
+#define SA11X0_PWR_MGR_GPIO_SLEEP_STATE SA11X0_REGISTER(0x10020018)
+#define SA11X0_PWR_MGR_OSC_STATUS SA11X0_REGISTER(0x1002001C)
+
+/*
+ * SA-1100 Control Register Bit Field Definitions
+ */
+#define SA11X0_NO_FORCE_SLEEP_MODE 0x00000000
+#define SA11X0_FORCE_SLEEP_MODE 0x00000001
+#define SA11X0_SLEEP_MODE_MASK 0x00000001
+
+/*
+ * SA-1100 Power Management Configuration Register Bit Field Definitions
+ */
+#define SA11X0_NO_STOP_OSC_DURING_SLEEP 0x00000000
+#define SA11X0_STOP_OSC_DURING_SLEEP 0x00000001
+#define SA11X0_OSC_DURING_SLEEP_MASK 0x00000001
+#define SA11X0_DRIVE_PCMCIA_DURING_SLEEP 0x00000000
+#define SA11X0_FLOAT_PCMCIA_DURING_SLEEP 0x00000002
+#define SA11X0_PCMCIA_DURING_SLEEP_MASK 0x00000002
+#define SA11X0_DRIVE_CHIPSEL_DURING_SLEEP 0x00000000
+#define SA11X0_FLOAT_CHIPSEL_DURING_SLEEP 0x00000004
+#define SA11X0_CHIPSEL_DURING_SLEEP_MASK 0x00000004
+#define SA11X0_WAIT_OSC_STABLE 0x00000000
+#define SA11X0_FORCE_OSC_ENABLE_ON 0x00000008
+#define SA11X0_OSC_STABLE_MASK 0x00000008
+
+/*
+ * SA-1100 PLL Configuration Register Bit Field Definitions
+ */
+#define SA11X0_CLOCK_SPEED_59_0_MHz 0x00000000
+#define SA11X0_CLOCK_SPEED_73_7_MHz 0x00000001
+#define SA11X0_CLOCK_SPEED_88_5_MHz 0x00000002
+#define SA11X0_CLOCK_SPEED_103_2_MHz 0x00000003
+#define SA11X0_CLOCK_SPEED_118_0_MHz 0x00000004
+#define SA11X0_CLOCK_SPEED_132_7_MHz 0x00000005
+#define SA11X0_CLOCK_SPEED_147_5_MHz 0x00000006
+#define SA11X0_CLOCK_SPEED_162_2_MHz 0x00000007
+#define SA11X0_CLOCK_SPEED_176_9_MHz 0x00000008
+#define SA11X0_CLOCK_SPEED_191_7_MHz 0x00000009
+#define SA11X0_CLOCK_SPEED_206_4_MHz 0x0000000A
+#define SA11X0_CLOCK_SPEED_221_2_MHz 0x0000000B
+
+/*
+ * SA-1100 Power Manager Wakeup Register Bit Field Definitions
+ */
+#define SA11X0_WAKEUP_ENABLE(x) ((x) & 0x8FFFFFFF)
+
+/*
+ * SA-1100 Power Manager Sleep Status Bit Field Definitions
+ */
+#define SA11X0_SOFTWARE_SLEEP_STATUS 0x00000001
+#define SA11X0_BATTERY_FAULT_STATUS 0x00000002
+#define SA11X0_VDD_FAULT_STATUS 0x00000004
+#define SA11X0_DRAM_CONTROL_HOLD 0x00000008
+#define SA11X0_PERIPHERAL_CONTROL_HOLD 0x00000010
+
+/*
+ * SA-1100 Power Manager Oscillator Status Register Bit Field Definitions
+ */
+#define SA11X0_OSCILLATOR_STATUS 0x00000001
+
+/*
+ * SA-1110 GPCLK Register Definitions
+ */
+#define SA1110_GPCLK_CONTROL_0 SA11X0_REGISTER(0x00020060)
+#define SA1110_GPCLK_CONTROL_1 SA11X0_REGISTER(0x0002006C)
+#define SA1110_GPCLK_CONTROL_2 SA11X0_REGISTER(0x00020070)
+
+/* GPCLK Control Register 0 */
+#define SA1110_GPCLK_SUS_GPCLK 0
+#define SA1110_GPCLK_SUS_UART 1
+#define SA1110_GPCLK_SCE 2
+#define SA1110_GPCLK_SCD_IN 0
+#define SA1110_GPCLK_SCD_OUT 4
+
+/*
+ * SA11X0 Peripheral Port Controller Register Definitions
+ */
+#define SA11X0_PPC_PIN_DIRECTION SA11X0_REGISTER(0x10060000)
+#define SA11X0_PPC_PIN_STATE SA11X0_REGISTER(0x10060004)
+#define SA11X0_PPC_PIN_ASSIGNMENT SA11X0_REGISTER(0x10060008)
+#define SA11X0_PPC_PIN_SLEEP_MODE_DIR SA11X0_REGISTER(0x1006000C)
+#define SA11X0_PPC_PIN_FLAG SA11X0_REGISTER(0x10060010)
+
+/*
+ * SA11X0 PPC Bit Field Definitions
+ */
+#define SA11X0_PPC_LCD_PIN_0_DIR_INPUT 0x00000000
+#define SA11X0_PPC_LCD_PIN_0_DIR_OUTPUT 0x00000001
+#define SA11X0_PPC_LCD_PIN_0_DIR_MASK 0x00000001
+#define SA11X0_PPC_LCD_PIN_1_DIR_INPUT 0x00000000
+#define SA11X0_PPC_LCD_PIN_1_DIR_OUTPUT 0x00000002
+#define SA11X0_PPC_LCD_PIN_1_DIR_MASK 0x00000002
+#define SA11X0_PPC_LCD_PIN_2_DIR_INPUT 0x00000000
+#define SA11X0_PPC_LCD_PIN_2_DIR_OUTPUT 0x00000004
+#define SA11X0_PPC_LCD_PIN_2_DIR_MASK 0x00000004
+#define SA11X0_PPC_LCD_PIN_3_DIR_INPUT 0x00000000
+#define SA11X0_PPC_LCD_PIN_3_DIR_OUTPUT 0x00000008
+#define SA11X0_PPC_LCD_PIN_3_DIR_MASK 0x00000008
+#define SA11X0_PPC_LCD_PIN_4_DIR_INPUT 0x00000000
+#define SA11X0_PPC_LCD_PIN_4_DIR_OUTPUT 0x00000010
+#define SA11X0_PPC_LCD_PIN_4_DIR_MASK 0x00000010
+#define SA11X0_PPC_LCD_PIN_5_DIR_INPUT 0x00000000
+#define SA11X0_PPC_LCD_PIN_5_DIR_OUTPUT 0x00000020
+#define SA11X0_PPC_LCD_PIN_5_DIR_MASK 0x00000020
+#define SA11X0_PPC_LCD_PIN_6_DIR_INPUT 0x00000000
+#define SA11X0_PPC_LCD_PIN_6_DIR_OUTPUT 0x00000040
+#define SA11X0_PPC_LCD_PIN_6_DIR_MASK 0x00000040
+#define SA11X0_PPC_LCD_PIN_7_DIR_INPUT 0x00000000
+#define SA11X0_PPC_LCD_PIN_7_DIR_OUTPUT 0x00000080
+#define SA11X0_PPC_LCD_PIN_7_DIR_MASK 0x00000080
+#define SA11X0_PPC_LCD_PIXCLK_DIR_INPUT 0x00000000
+#define SA11X0_PPC_LCD_PIXCLK_DIR_OUTPUT 0x00000100
+#define SA11X0_PPC_LCD_PIXCLK_DIR_MASK 0x00000100
+#define SA11X0_PPC_LCD_LINECLK_DIR_INPUT 0x00000000
+#define SA11X0_PPC_LCD_LINECLK_DIR_OUTPUT 0x00000200
+#define SA11X0_PPC_LCD_LINECLK_DIR_MASK 0x00000200
+#define SA11X0_PPC_LCD_FRAMECLK_DIR_INPUT 0x00000000
+#define SA11X0_PPC_LCD_FRAMECLK_DIR_OUTPUT 0x00000400
+#define SA11X0_PPC_LCD_FRAMECLK_DIR_MASK 0x00000400
+#define SA11X0_PPC_LCD_AC_BIAS_DIR_INPUT 0x00000000
+#define SA11X0_PPC_LCD_AC_BIAS_DIR_OUTPUT 0x00000800
+#define SA11X0_PPC_LCD_AC_BIAS_DIR_MASK 0x00000800
+#define SA11X0_PPC_SERIAL_PORT_1_TX_DIR_INPUT 0x00000000
+#define SA11X0_PPC_SERIAL_PORT_1_TX_DIR_OUTPUT 0x00001000
+#define SA11X0_PPC_SERIAL_PORT_1_TX_DIR_MASK 0x00001000
+#define SA11X0_PPC_SERIAL_PORT_1_RX_DIR_INPUT 0x00000000
+#define SA11X0_PPC_SERIAL_PORT_1_RX_DIR_OUTPUT 0x00002000
+#define SA11X0_PPC_SERIAL_PORT_1_RX_DIR_MASK 0x00002000
+#define SA11X0_PPC_SERIAL_PORT_2_TX_DIR_INPUT 0x00000000
+#define SA11X0_PPC_SERIAL_PORT_2_TX_DIR_OUTPUT 0x00004000
+#define SA11X0_PPC_SERIAL_PORT_2_TX_DIR_MASK 0x00004000
+#define SA11X0_PPC_SERIAL_PORT_2_RX_DIR_INPUT 0x00000000
+#define SA11X0_PPC_SERIAL_PORT_2_RX_DIR_OUTPUT 0x00008000
+#define SA11X0_PPC_SERIAL_PORT_2_RX_DIR_MASK 0x00008000
+#define SA11X0_PPC_SERIAL_PORT_3_TX_DIR_INPUT 0x00000000
+#define SA11X0_PPC_SERIAL_PORT_3_TX_DIR_OUTPUT 0x00010000
+#define SA11X0_PPC_SERIAL_PORT_3_TX_DIR_MASK 0x00010000
+#define SA11X0_PPC_SERIAL_PORT_3_RX_DIR_INPUT 0x00000000
+#define SA11X0_PPC_SERIAL_PORT_3_RX_DIR_OUTPUT 0x00020000
+#define SA11X0_PPC_SERIAL_PORT_3_RX_DIR_MASK 0x00020000
+#define SA11X0_PPC_SERIAL_PORT_4_TX_DIR_INPUT 0x00000000
+#define SA11X0_PPC_SERIAL_PORT_4_TX_DIR_OUTPUT 0x00040000
+#define SA11X0_PPC_SERIAL_PORT_4_TX_DIR_MASK 0x00040000
+#define SA11X0_PPC_SERIAL_PORT_4_RX_DIR_INPUT 0x00000000
+#define SA11X0_PPC_SERIAL_PORT_4_RX_DIR_OUTPUT 0x00080000
+#define SA11X0_PPC_SERIAL_PORT_4_RX_DIR_MASK 0x00080000
+#define SA11X0_PPC_SERIAL_PORT_4_SERCLK_INPUT 0x00000000
+#define SA11X0_PPC_SERIAL_PORT_4_SERCLK_OUTPUT 0x00100000
+#define SA11X0_PPC_SERIAL_PORT_4_SERCLK_MASK 0x00100000
+#define SA11X0_PPC_SERIAL_PORT_4_SERFRM_INPUT 0x00000000
+#define SA11X0_PPC_SERIAL_PORT_4_SERFRM_OUTPUT 0x00200000
+#define SA11X0_PPC_SERIAL_PORT_4_SERFRM_MASK 0x00200000
+
+#define SA11X0_PPC_UART_PIN_NOT_REASSIGNED 0x00000000
+#define SA11X0_PPC_UART_PIN_REASSIGNED 0x00001000
+#define SA11X0_PPC_UART_PIN_REASSIGNMENT_MASK 0x00001000
+#define SA11X0_PPC_SSP_PIN_NOT_REASSIGNED 0x00000000
+#define SA11X0_PPC_SSP_PIN_REASSIGNED 0x00040000
+#define SA11X0_PPC_SSP_PIN_REASSIGNMENT_MASK 0x00040000
+
+/*
+ * SA-1100 MCP Registers
+ */
+#define SA11X0_MCP_CONTROL_0 SA11X0_REGISTER(0x00060000)
+#define SA11X0_MCP_DATA_0 SA11X0_REGISTER(0x00060008)
+#define SA11X0_MCP_DATA_1 SA11X0_REGISTER(0x0006000C)
+#define SA11X0_MCP_DATA_2 SA11X0_REGISTER(0x00060010)
+#define SA11X0_MCP_STATUS SA11X0_REGISTER(0x00060018)
+#define SA11X0_MCP_CONTROL_1 SA11X0_REGISTER(0x00060030)
+
+/*
+ * SA-1100 Memory Configuration Registers
+ */
+#define SA11X0_DRAM_CONFIGURATION SA11X0_REGISTER(0x20000000)
+#define SA11X0_DRAM0_CAS_0 SA11X0_REGISTER(0x20000004)
+#define SA11X0_DRAM0_CAS_1 SA11X0_REGISTER(0x20000008)
+#define SA11X0_DRAM0_CAS_2 SA11X0_REGISTER(0x2000000C)
+#define SA11X0_STATIC_CONTROL_0 SA11X0_REGISTER(0x20000010)
+#define SA11X0_STATIC_CONTROL_1 SA11X0_REGISTER(0x20000014)
+#define SA11X0_EXP_BUS_CONFIGURATION SA11X0_REGISTER(0x20000018)
+#define SA11X0_REFRESH_CONFIGURATION SA11X0_REGISTER(0x2000001C)
+#define SA11X0_DRAM2_CAS_0 SA11X0_REGISTER(0x20000020)
+#define SA11X0_DRAM2_CAS_1 SA11X0_REGISTER(0x20000024)
+#define SA11X0_DRAM2_CAS_2 SA11X0_REGISTER(0x20000028)
+#define SA11X0_STATIC_CONTROL_2 SA11X0_REGISTER(0x2000002C)
+#define SA11X0_SMROM_CONFIGURATION SA11X0_REGISTER(0x20000030)
+
+/*
+ * SA-1100 DRAM Configuration Bit Field Definitions
+ */
+#define SA11X0_DRAM_BANK_0_DISABLED 0x00000000
+#define SA11X0_DRAM_BANK_0_ENABLED 0x00000001
+#define SA11X0_DRAM_BANK_0_ENABLE_MASK 0x00000001
+#define SA11X0_DRAM_BANK_1_DISABLED 0x00000000
+#define SA11X0_DRAM_BANK_1_ENABLED 0x00000002
+#define SA11X0_DRAM_BANK_1_ENABLE_MASK 0x00000002
+#define SA11X0_DRAM_BANK_2_DISABLED 0x00000000
+#define SA11X0_DRAM_BANK_2_ENABLED 0x00000004
+#define SA11X0_DRAM_BANK_2_ENABLE_MASK 0x00000004
+#define SA11X0_DRAM_BANK_3_DISABLED 0x00000000
+#define SA11X0_DRAM_BANK_3_ENABLED 0x00000008
+#define SA11X0_DRAM_BANK_3_ENABLE_MASK 0x00000008
+#define SA11X0_DRAM_ROW_ADDRESS_BITS_9 0x00000000
+#define SA11X0_DRAM_ROW_ADDRESS_BITS_10 0x00000010
+#define SA11X0_DRAM_ROW_ADDRESS_BITS_11 0x00000020
+#define SA11X0_DRAM_ROW_ADDRESS_BITS_12 0x00000030
+#define SA11X0_DRAM_ROW_ADDRESS_BITS_MASK 0x00000030
+#define SA11X0_DRAM_CLOCK_CPU_CLOCK 0x00000000
+#define SA11X0_DRAM_CLOCK_CPU_CLOCK_DIV_2 0x00000040
+#define SA11X0_DRAM_CLOCK_CPU_CLOCK_MASK 0x00000040
+#define SA11X0_DRAM_RAS_PRECHARGE(x) (((x) & 0xF) << 7)
+#define SA11X0_DRAM_CAS_BEFORE_RAS(x) (((x) & 0xF) << 11)
+#define SA11X0_DATA_INPUT_LATCH_WITH_CAS 0x00000000
+#define SA11X0_DATA_INPUT_LATCH_CAS_PLUS_ONE 0x00008000
+#define SA11X0_DATA_INPUT_LATCH_CAS_PLUS_TWO 0x00010000
+#define SA11X0_DATA_INPUT_LATCH_CAS_PLUS_THREE 0x00018000
+#define SA11X0_DRAM_REFRESH_INTERVAL(x) (((x) & 0x7FFF) << 17)
+
+/*
+ * SA-1100 Static Memory Control Register Bit Field Definitions
+ */
+#define SA11X0_STATIC_ROM_TYPE_FLASH 0x00000000
+#define SA11X0_STATIC_ROM_TYPE_SRAM 0x00000001
+#define SA11X0_STATIC_ROM_TYPE_BURST_OF_4_ROM 0x00000002
+#define SA11X0_STATIC_ROM_TYPE_BURST_OF_8_ROM 0x00000003
+#define SA11X0_STATIC_ROM_TYPE_MASK 0x00000003
+#define SA11X0_STATIC_ROM_BUS_WIDTH_32_BITS 0x00000000
+#define SA11X0_STATIC_ROM_BUS_WIDTH_16_BITS 0x00000004
+#define SA11X0_STATIC_ROM_BUS_WIDTH_MASK 0x00000004
+#define SA11X0_STATIC_ROM_DELAY_FIRST_ACCESS(x) (((x) & 0x1F) << 3)
+#define SA11X0_STATIC_ROM_DELAY_NEXT_ACCESS(x) (((x) & 0x1F) << 8)
+#define SA11X0_STATIC_ROM_RECOVERY(x) (((x) & 0x7) << 13)
+
+#define SA11X0_STATIC_ROM_BANK_0(x) (((x) & 0xFFFF) << 0)
+#define SA11X0_STATIC_ROM_BANK_1(x) (((x) & 0xFFFF) << 16)
+#define SA11X0_STATIC_ROM_BANK_2(x) (((x) & 0xFFFF) << 0)
+#define SA11X0_STATIC_ROM_BANK_3(x) (((x) & 0xFFFF) << 16)
+
+/*
+ * SA-1100 GPIO Register Definitions
+ */
+#define SA11X0_GPIO_PIN_0 (1 << 0)
+#define SA11X0_GPIO_PIN_1 (1 << 1)
+#define SA11X0_GPIO_PIN_2 (1 << 2)
+#define SA11X0_GPIO_PIN_3 (1 << 3)
+#define SA11X0_GPIO_PIN_4 (1 << 4)
+#define SA11X0_GPIO_PIN_5 (1 << 5)
+#define SA11X0_GPIO_PIN_6 (1 << 6)
+#define SA11X0_GPIO_PIN_7 (1 << 7)
+#define SA11X0_GPIO_PIN_8 (1 << 8)
+#define SA11X0_GPIO_PIN_9 (1 << 9)
+#define SA11X0_GPIO_PIN_10 (1 << 10)
+#define SA11X0_GPIO_PIN_11 (1 << 11)
+#define SA11X0_GPIO_PIN_12 (1 << 12)
+#define SA11X0_GPIO_PIN_13 (1 << 13)
+#define SA11X0_GPIO_PIN_14 (1 << 14)
+#define SA11X0_GPIO_PIN_15 (1 << 15)
+#define SA11X0_GPIO_PIN_16 (1 << 16)
+#define SA11X0_GPIO_PIN_17 (1 << 17)
+#define SA11X0_GPIO_PIN_18 (1 << 18)
+#define SA11X0_GPIO_PIN_19 (1 << 19)
+#define SA11X0_GPIO_PIN_20 (1 << 20)
+#define SA11X0_GPIO_PIN_21 (1 << 21)
+#define SA11X0_GPIO_PIN_22 (1 << 22)
+#define SA11X0_GPIO_PIN_23 (1 << 23)
+#define SA11X0_GPIO_PIN_24 (1 << 24)
+#define SA11X0_GPIO_PIN_25 (1 << 25)
+#define SA11X0_GPIO_PIN_26 (1 << 26)
+#define SA11X0_GPIO_PIN_27 (1 << 27)
+
+#define SA11X0_GPIO_PIN_LEVEL SA11X0_REGISTER(0x10040000)
+#define SA11X0_GPIO_PIN_DIRECTION SA11X0_REGISTER(0x10040004)
+#define SA11X0_GPIO_PIN_OUTPUT_SET SA11X0_REGISTER(0x10040008)
+#define SA11X0_GPIO_PIN_OUTPUT_CLEAR SA11X0_REGISTER(0x1004000C)
+#define SA11X0_GPIO_RISING_EDGE_DETECT SA11X0_REGISTER(0x10040010)
+#define SA11X0_GPIO_FALLING_EDGE_DETECT SA11X0_REGISTER(0x10040014)
+#define SA11X0_GPIO_EDGE_DETECT_STATUS SA11X0_REGISTER(0x10040018)
+#define SA11X0_GPIO_ALTERNATE_FUNCTION SA11X0_REGISTER(0x1004001C)
+
+#endif /* __HAL_SA11X0_H__ */
diff --git a/ecos/packages/hal/arm/sa11x0/var/current/include/hal_var_ints.h b/ecos/packages/hal/arm/sa11x0/var/current/include/hal_var_ints.h
new file mode 100644
index 0000000..d21bfbb
--- /dev/null
+++ b/ecos/packages/hal/arm/sa11x0/var/current/include/hal_var_ints.h
@@ -0,0 +1,148 @@
+#ifndef CYGONCE_HAL_VAR_INTS_H
+#define CYGONCE_HAL_VAR_INTS_H
+//==========================================================================
+//
+// hal_var_ints.h
+//
+// HAL Interrupt and clock support
+//
+//==========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//==========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): gthomas
+// Contributors: gthomas
+// Date: 2000-05-08
+// Purpose: Define Interrupt support
+// Description: The interrupt details for the SA1110/Assabet are defined here.
+// Usage:
+// #include <pkgconf/system.h>
+// #include CYGBLD_HAL_VARIANT_H
+// #include CYGBLD_HAL_VAR_INTS_H
+//
+// ...
+//
+//
+//####DESCRIPTIONEND####
+//
+//==========================================================================
+
+#include <cyg/hal/hal_sa11x0.h> // registers
+
+#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
+
+// SA11x0 method for reading clock interrupt latency
+#ifdef CYGVAR_KERNEL_COUNTERS_CLOCK_LATENCY
+externC void hal_clock_latency(cyg_uint32 *);
+# define HAL_CLOCK_LATENCY( _pvalue_ ) \
+ hal_clock_latency( (cyg_uint32 *)(_pvalue_) )
+#endif
+
+
+//----------------------------------------------------------------------------
+// Reset.
+#define HAL_PLATFORM_RESET() \
+ CYG_MACRO_START \
+ cyg_uint32 ctrl; \
+ \
+ /* By disabling interupts we will just hang in the loop below */ \
+ /* if for some reason the software reset fails. */ \
+ HAL_DISABLE_INTERRUPTS(ctrl); \
+ \
+ /* Software reset. */ \
+ *SA11X0_RESET_SOFTWARE_RESET = SA11X0_INVOKE_SOFTWARE_RESET; \
+ \
+ for(;;); /* hang here forever if reset fails */ \
+ CYG_MACRO_END
+
+// Fallback (never really used)
+#define HAL_PLATFORM_RESET_ENTRY 0x00000000
+
+#endif // CYGONCE_HAL_VAR_INTS_H
diff --git a/ecos/packages/hal/arm/sa11x0/var/current/include/plf_stub.h b/ecos/packages/hal/arm/sa11x0/var/current/include/plf_stub.h
new file mode 100644
index 0000000..cbbb738
--- /dev/null
+++ b/ecos/packages/hal/arm/sa11x0/var/current/include/plf_stub.h
@@ -0,0 +1,83 @@
+#ifndef CYGONCE_HAL_PLF_STUB_H
+#define CYGONCE_HAL_PLF_STUB_H
+
+//=============================================================================
+//
+// plf_stub.h
+//
+// Platform header for GDB stub support.
+//
+//=============================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): gthomas
+// Contributors:jskov
+// Travis C. Furrer <furrer@mit.edu>
+// Date: 2000-05-08
+// Purpose: Platform HAL stub support for Intel SA11x0 boards.
+// Usage: #include <cyg/hal/plf_stub.h>
+//
+//####DESCRIPTIONEND####
+//
+//=============================================================================
+
+#include <pkgconf/hal.h>
+#include <cyg/infra/cyg_type.h> // CYG_UNUSED_PARAM
+
+#include <cyg/hal/hal_sa11x0.h> // registers
+#include <cyg/hal/hal_io.h> // IO macros
+#include <cyg/hal/hal_intr.h> // Interrupt macros
+#include <cyg/hal/arm_stub.h> // architecture stub support
+
+#ifdef CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS
+//----------------------------------------------------------------------------
+// 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.
+#define HAL_STUB_PLATFORM_INIT() CYG_EMPTY_STATEMENT
+
+#endif // ifdef CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS
+//-----------------------------------------------------------------------------
+#endif // CYGONCE_HAL_PLF_STUB_H
+// End of plf_stub.h
diff --git a/ecos/packages/hal/arm/sa11x0/var/current/include/var_io.h b/ecos/packages/hal/arm/sa11x0/var/current/include/var_io.h
new file mode 100644
index 0000000..2f8e9a8
--- /dev/null
+++ b/ecos/packages/hal/arm/sa11x0/var/current/include/var_io.h
@@ -0,0 +1,67 @@
+#ifndef CYGONCE_VAR_IO_H
+#define CYGONCE_VAR_IO_H
+
+//=============================================================================
+//
+// var_io.h
+//
+// Variant specific IO support
+//
+//=============================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jskov
+// Contributors: jskov
+// Date: 2002-01-28
+// Purpose: Variant io definitions
+// Description:
+// Usage: #include <cyg/hal/var_io.h>
+//
+//####DESCRIPTIONEND####
+//
+//=============================================================================
+
+#include <cyg/hal/plf_io.h> // Platform specifics
+
+//-----------------------------------------------------------------------------
+
+// Memory mapping details
+#ifndef CYGARC_PHYSICAL_ADDRESS
+# define CYGARC_PHYSICAL_ADDRESS(x) (((unsigned long)x & 0x0FFFFFFF) + SA11X0_RAM_BANK0_BASE)
+#endif
+
+//-----------------------------------------------------------------------------
+// end of var_io.h
+#endif // CYGONCE_VAR_IO_H
diff --git a/ecos/packages/hal/arm/sa11x0/var/current/src/hal_diag.c b/ecos/packages/hal/arm/sa11x0/var/current/src/hal_diag.c
new file mode 100644
index 0000000..27a654e
--- /dev/null
+++ b/ecos/packages/hal/arm/sa11x0/var/current/src/hal_diag.c
@@ -0,0 +1,547 @@
+/*=============================================================================
+//
+// hal_diag.c
+//
+// HAL diagnostic output code
+//
+//=============================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): gthomas
+// Contributors:nickg, gthomas, dmoseley
+// Travis C. Furrer <furrer@mit.edu>
+// Date: 2000-05-08
+// Purpose: HAL diagnostic output
+// Description: Implementations of HAL diagnostic output support.
+//
+//####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_arch.h> // basic machine info
+#include <cyg/hal/hal_intr.h> // interrupt macros
+#include <cyg/hal/hal_io.h> // IO macros
+#include <cyg/hal/hal_if.h> // Calling interface definitions
+#include <cyg/hal/hal_diag.h>
+#include <cyg/hal/drv_api.h> // cyg_drv_interrupt_acknowledge
+#include <cyg/hal/hal_misc.h> // Helper functions
+#include <cyg/hal/hal_sa11x0.h> // Hardware definitions
+
+struct sa11x0_serial {
+ volatile cyg_uint32 utcr0;
+ volatile cyg_uint32 utcr1;
+ volatile cyg_uint32 utcr2;
+ volatile cyg_uint32 utcr3;
+ volatile cyg_uint32 pad0010;
+ volatile cyg_uint32 utdr;
+ volatile cyg_uint32 pad0018;
+ volatile cyg_uint32 utsr0;
+ volatile cyg_uint32 utsr1;
+};
+
+//-----------------------------------------------------------------------------
+typedef struct {
+ volatile struct sa11x0_serial* base;
+ cyg_int32 msec_timeout;
+ int isr_vector;
+ int baud_rate;
+} channel_data_t;
+
+/*---------------------------------------------------------------------------*/
+// SA11x0 Serial Port (UARTx) for Debug
+
+static void
+init_channel(channel_data_t* __ch_data)
+{
+ volatile struct sa11x0_serial* base = __ch_data->base;
+ cyg_uint32 brd;
+
+ // Disable Receiver and Transmitter (clears FIFOs)
+ base->utcr3 = SA11X0_UART_RX_DISABLED | SA11X0_UART_TX_DISABLED;
+
+ // Clear sticky (writable) status bits.
+ base->utsr0 = SA11X0_UART_RX_IDLE | SA11X0_UART_RX_BEGIN_OF_BREAK |
+ SA11X0_UART_RX_END_OF_BREAK;
+
+#if defined(CYGPKG_HAL_ARM_SA11X0_SA1100MM) || defined(CYGPKG_HAL_ARM_SA11X0_BRUTUS)
+ // This setup is specific to only a few boards.
+ if (SA11X0_UART1_BASE == (volatile unsigned long *)base) {
+ cyg_uint32 pdr, afr, par;
+
+ HAL_READ_UINT32(SA11X0_GPIO_PIN_DIRECTION, pdr);
+ HAL_READ_UINT32(SA11X0_GPIO_ALTERNATE_FUNCTION, afr);
+ HAL_READ_UINT32(SA11X0_PPC_PIN_ASSIGNMENT, par);
+
+ //Set pin 14 as an output (Tx) and pin 15 as in input (Rx).
+ HAL_WRITE_UINT32(SA11X0_GPIO_PIN_DIRECTION, ((pdr | SA11X0_GPIO_PIN_14) & ~SA11X0_GPIO_PIN_15));
+
+ // Use GPIO 14 & 15 pins for serial port 1.
+ HAL_WRITE_UINT32(SA11X0_GPIO_ALTERNATE_FUNCTION, afr | SA11X0_GPIO_PIN_14 | SA11X0_GPIO_PIN_15);
+
+ // Pin reassignment for serial port 1.
+ HAL_WRITE_UINT32(SA11X0_PPC_PIN_ASSIGNMENT, par | SA11X0_PPC_UART_PIN_REASSIGNMENT_MASK);
+ }
+#endif
+
+ // Set UART to 8N1 (8 data bits, no partity, 1 stop bit)
+ base->utcr0 = SA11X0_UART_PARITY_DISABLED | SA11X0_UART_STOP_BITS_1 |
+ SA11X0_UART_DATA_BITS_8;
+
+ // Set the desired baud rate.
+ brd = SA11X0_UART_BAUD_RATE_DIVISOR(__ch_data->baud_rate);
+ base->utcr1 = (brd >> 8) & SA11X0_UART_H_BAUD_RATE_DIVISOR_MASK;
+ base->utcr2 = brd & SA11X0_UART_L_BAUD_RATE_DIVISOR_MASK;
+
+ // Enable the receiver and the transmitter.
+ base->utcr3 = SA11X0_UART_RX_ENABLED | SA11X0_UART_TX_ENABLED;
+
+ // All done
+}
+
+void
+cyg_hal_plf_serial_putc(void *__ch_data, char c)
+{
+ volatile struct sa11x0_serial* base = ((channel_data_t*)__ch_data)->base;
+ CYGARC_HAL_SAVE_GP();
+
+ // Wait for Tx FIFO not full
+ while ((base->utsr1 & SA11X0_UART_TX_FIFO_NOT_FULL) == 0)
+ ;
+ base->utdr = c;
+
+ CYGARC_HAL_RESTORE_GP();
+}
+
+// FIXME: shouldn't we check for PARITY_ERROR, FRAMING_ERROR, or
+// RECEIVE_FIFO_OVERRUN_ERROR in the received data? This
+// means check the appropriate bits in UTSR1.
+
+static cyg_bool
+cyg_hal_plf_serial_getc_nonblock(void* __ch_data, cyg_uint8* ch)
+{
+ volatile struct sa11x0_serial* base = ((channel_data_t*)__ch_data)->base;
+
+ // If receive fifo is empty, return false
+ if ((base->utsr1 & SA11X0_UART_RX_FIFO_NOT_EMPTY) == 0)
+ return false;
+
+ *ch = (char)base->utdr;
+
+ // Clear receiver idle status bit, to allow another interrupt to
+ // occur in the case where the receive fifo is almost empty.
+ base->utsr0 = SA11X0_UART_RX_IDLE;
+
+ 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;
+}
+
+static channel_data_t ser_channels[] = {
+#if CYGHWR_HAL_ARM_SA11X0_UART1 != 0
+ { (volatile struct sa11x0_serial*)SA11X0_UART1_BASE, 1000,
+ CYGNUM_HAL_INTERRUPT_UART1, CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_BAUD },
+#endif
+#if CYGHWR_HAL_ARM_SA11X0_UART3 != 0
+ { (volatile struct sa11x0_serial*)SA11X0_UART3_BASE, 1000,
+ CYGNUM_HAL_INTERRUPT_UART3, CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_BAUD },
+#endif
+};
+
+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;
+ int ret = -1;
+ va_list ap;
+
+ CYGARC_HAL_SAVE_GP();
+ va_start(ap, __func);
+
+ switch (__func) {
+ case __COMMCTL_GETBAUD:
+ ret = chan->baud_rate;
+ break;
+ case __COMMCTL_SETBAUD:
+ chan->baud_rate = va_arg(ap, cyg_int32);
+ // Should we verify this value here?
+ init_channel(chan);
+ ret = 0;
+ break;
+ case __COMMCTL_IRQ_ENABLE:
+ irq_state = 1;
+
+ chan->base->utcr3 |= SA11X0_UART_RX_FIFO_INT_ENABLED;
+
+ HAL_INTERRUPT_UNMASK(chan->isr_vector);
+ break;
+ case __COMMCTL_IRQ_DISABLE:
+ ret = irq_state;
+ irq_state = 0;
+
+ chan->base->utcr3 &= ~SA11X0_UART_RX_FIFO_INT_ENABLED;
+
+ HAL_INTERRUPT_MASK(chan->isr_vector);
+ break;
+ case __COMMCTL_DBG_ISR_VECTOR:
+ ret = chan->isr_vector;
+ break;
+ case __COMMCTL_SET_TIMEOUT:
+ ret = chan->msec_timeout;
+ chan->msec_timeout = va_arg(ap, cyg_uint32);
+ break;
+ default:
+ break;
+ }
+ va_end(ap);
+ 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;
+ channel_data_t* chan = (channel_data_t*)__ch_data;
+ char c;
+ int reg;
+ CYGARC_HAL_SAVE_GP();
+
+ reg = chan->base->utsr1;
+
+ // read it anyway just in case - no harm done and we might prevent an
+ // interrupt loop
+ c = (char)chan->base->utdr;
+
+ // Clear receiver idle status bit, to allow another interrupt to
+ // occur in the case where the receive fifo is almost empty.
+ // Also for a break interrupt; these are sticky and nonmaskable.
+ chan->base->utsr0 = (SA11X0_UART_RX_IDLE |
+ SA11X0_UART_RX_BEGIN_OF_BREAK |
+ SA11X0_UART_RX_END_OF_BREAK );
+
+ cyg_drv_interrupt_acknowledge(chan->isr_vector);
+
+ *__ctrlc = 0;
+ if ( (reg & SA11X0_UART_RX_FIFO_NOT_EMPTY) != 0 ) {
+ 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);
+ int i;
+
+ // Init channels
+#define NUMOF(x) (sizeof(x)/sizeof(x[0]))
+ for (i = 0; i < NUMOF(ser_channels); i++) {
+ init_channel(&ser_channels[i]);
+ CYGACC_CALL_IF_SET_CONSOLE_COMM(i);
+ comm = CYGACC_CALL_IF_CONSOLE_PROCS();
+ CYGACC_COMM_IF_CH_DATA_SET(*comm, &ser_channels[i]);
+ 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();
+}
+
+//=============================================================================
+// Compatibility with older stubs
+//=============================================================================
+
+#ifndef CYGSEM_HAL_VIRTUAL_VECTOR_DIAG
+
+#include <cyg/hal/hal_stub.h> // cyg_hal_gdb_interrupt
+
+#if (CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL == 0)
+# define __BASE ((void*)SA11X0_UART1_BASE)
+# define CYGHWR_HAL_GDB_PORT_VECTOR CYGNUM_HAL_INTERRUPT_UART1
+#else
+# define __BASE ((void*)SA11X0_UART3_BASE)
+# define CYGHWR_HAL_GDB_PORT_VECTOR CYGNUM_HAL_INTERRUPT_UART3
+#endif
+
+#ifdef CYGSEM_HAL_ROM_MONITOR
+#define CYG_HAL_STARTUP_ROM
+#undef CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS
+#endif
+
+#if defined(CYG_HAL_STARTUP_ROM) && !defined(CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS)
+#define HAL_DIAG_USES_HARDWARE
+#elif !defined(CYGDBG_HAL_DIAG_TO_DEBUG_CHAN)
+#define HAL_DIAG_USES_HARDWARE
+#elif CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL != CYGNUM_HAL_VIRTUAL_VECTOR_DEBUG_CHANNEL
+#define HAL_DIAG_USES_HARDWARE
+#endif
+
+static channel_data_t ser_channel = {
+ (volatile struct sa11x0_serial*)__BASE, 0, CYGHWR_HAL_GDB_PORT_VECTOR
+};
+
+void
+hal_diag_init(void)
+{
+ // Init serial device
+ init_channel(&ser_channel);
+}
+
+#ifdef HAL_DIAG_USES_HARDWARE
+
+#ifdef DEBUG_DIAG
+#ifndef CYG_HAL_STARTUP_ROM
+#define DIAG_BUFSIZE 2048
+static char diag_buffer[DIAG_BUFSIZE];
+static int diag_bp = 0;
+#endif
+#endif
+
+void hal_diag_read_char(char *c)
+{
+ *c = cyg_hal_plf_serial_getc(&ser_channel);
+}
+
+void hal_diag_write_char(char c)
+{
+#ifdef DEBUG_DIAG
+#ifndef CYG_HAL_STARTUP_ROM
+ diag_buffer[diag_bp++] = c;
+ if (diag_bp == sizeof(diag_buffer)) diag_bp = 0;
+#endif
+#endif
+ cyg_hal_plf_serial_putc(&ser_channel, c);
+}
+
+#else // not HAL_DIAG_USES_HARDWARE - it uses GDB protocol
+
+void
+hal_diag_read_char(char *c)
+{
+ *c = cyg_hal_plf_serial_getc(&ser_channel);
+}
+
+void
+hal_diag_write_char(char c)
+{
+ static char line[100];
+ static int pos = 0;
+
+ // FIXME: Some LED blinking might be nice right here.
+
+ // 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;
+#ifndef CYGDBG_HAL_DEBUG_GDB_CTRLC_SUPPORT
+ char c1;
+#endif
+ cyg_hal_plf_serial_putc(&ser_channel, '$');
+ cyg_hal_plf_serial_putc(&ser_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(&ser_channel, h);
+ cyg_hal_plf_serial_putc(&ser_channel, l);
+ csum += h;
+ csum += l;
+ }
+ cyg_hal_plf_serial_putc(&ser_channel, '#');
+ cyg_hal_plf_serial_putc(&ser_channel, hex[(csum>>4)&0xF]);
+ cyg_hal_plf_serial_putc(&ser_channel, hex[csum&0xF]);
+
+#ifdef CYGDBG_HAL_DEBUG_GDB_CTRLC_SUPPORT
+
+ break; // regardless
+
+#else // not CYGDBG_HAL_DEBUG_GDB_CTRLC_SUPPORT Ie. usually...
+
+ // Wait for the ACK character '+' from GDB here and handle
+ // receiving a ^C instead. This is the reason for this clause
+ // being a loop.
+ c1 = cyg_hal_plf_serial_getc(&ser_channel);
+
+ if( c1 == '+' )
+ break; // a good acknowledge
+
+#ifdef CYGDBG_HAL_DEBUG_GDB_BREAK_SUPPORT
+ cyg_drv_interrupt_acknowledge(CYGHWR_HAL_GDB_PORT_VECTOR);
+ if( c1 == 3 ) {
+ // Ctrl-C: breakpoint.
+ cyg_hal_gdb_interrupt(
+ (target_register_t)__builtin_return_address(0) );
+ break;
+ }
+#endif // CYGDBG_HAL_DEBUG_GDB_BREAK_SUPPORT
+
+#endif // ! CYGDBG_HAL_DEBUG_GDB_CTRLC_SUPPORT
+ // 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
+
+ }
+}
+#endif
+
+#endif // !CYGSEM_HAL_VIRTUAL_VECTOR_DIAG
+
+
+/*---------------------------------------------------------------------------*/
+/* End of hal_diag.c */
diff --git a/ecos/packages/hal/arm/sa11x0/var/current/src/sa11x0_misc.c b/ecos/packages/hal/arm/sa11x0/var/current/src/sa11x0_misc.c
new file mode 100644
index 0000000..ca4a0ed
--- /dev/null
+++ b/ecos/packages/hal/arm/sa11x0/var/current/src/sa11x0_misc.c
@@ -0,0 +1,571 @@
+//==========================================================================
+//
+// sa11x0_misc.c
+//
+// HAL misc board support code for StrongARM SA11x0
+//
+//==========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//==========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): gthomas
+// Contributors: hmt
+// Travis C. Furrer <furrer@mit.edu>
+// Date: 2000-05-08
+// 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_misc.h> // Size constants
+#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> // Cache control
+#include <cyg/hal/hal_sa11x0.h> // Hardware definitions
+#include <cyg/hal/hal_mm.h> // MMap table definitions
+
+#include <cyg/infra/diag.h> // diag_printf
+
+// Most initialization has already been done before we get here.
+// All we do here is set up the interrupt environment.
+// FIXME: some of the stuff in hal_platform_setup could be moved here.
+
+externC void plf_hardware_init(void);
+
+void hal_hardware_init(void)
+{
+ // Mask all interrupts
+ *SA11X0_ICMR = 0;
+
+ // Make all interrupts do IRQ and not FIQ
+ // FIXME: Change this if you use FIQs.
+ *SA11X0_ICLR = 0;
+
+ // Prevent masked interrupts from bringing us out of idle mode
+ *SA11X0_ICCR = 1;
+
+ // Disable all GPIO interrupt sources
+ *SA11X0_GPIO_RISING_EDGE_DETECT = 0;
+ *SA11X0_GPIO_FALLING_EDGE_DETECT = 0;
+ *SA11X0_GPIO_EDGE_DETECT_STATUS = 0x0FFFFFFF;
+
+ // Perform any platform specific initializations
+ plf_hardware_init();
+
+ // Let the "OS" counter run
+ *SA11X0_OSCR = 0;
+ *SA11X0_OSMR0 = 0;
+
+ // Set up eCos/ROM interfaces
+ hal_if_init();
+
+ // Enable caches
+ HAL_DCACHE_ENABLE();
+ HAL_ICACHE_ENABLE();
+}
+
+// -------------------------------------------------------------------------
+static cyg_uint32 clock_period;
+
+void hal_clock_initialize(cyg_uint32 period)
+{
+ // Load match value
+ *SA11X0_OSMR0 = period;
+ clock_period = period;
+
+ // Start the counter
+ *SA11X0_OSCR = 0;
+
+ // Clear any pending interrupt
+ *SA11X0_OSSR = SA11X0_OSSR_TIMER0;
+
+ // Enable timer 0 interrupt
+ *SA11X0_OIER |= SA11X0_OIER_TIMER0;
+
+ // Unmask timer 0 interrupt
+ HAL_INTERRUPT_UNMASK( CYGNUM_HAL_INTERRUPT_TIMER0 );
+
+ // That's all.
+}
+
+// This routine is called during a clock interrupt.
+
+// Define this if you want to ensure that the clock is perfect (i.e. does
+// not drift). One reason to leave it turned off is that it costs some
+// us per system clock interrupt for this maintenance.
+#undef COMPENSATE_FOR_CLOCK_DRIFT
+
+void hal_clock_reset(cyg_uint32 vector, cyg_uint32 period)
+{
+#ifdef COMPENSATE_FOR_CLOCK_DRIFT
+ cyg_uint32 next = *SA11X0_OSMR0 + period; // Next interrupt time
+ *SA11X0_OSSR = SA11X0_OSSR_TIMER0; // Clear any pending interrupt
+ *SA11X0_OSMR0 = next; // Load new match value
+ {
+ cyg_uint32 ctr = *SA11X0_OSCR;
+ clock_period = next - ctr;
+ if ((clock_period - 1) >= period) { // Adjust for missed interrupts
+ *SA11X0_OSMR0 = ctr + period;
+ *SA11X0_OSSR = SA11X0_OSSR_TIMER0; // Clear pending interrupt
+ clock_period = period;
+ }
+ }
+#else
+ *SA11X0_OSMR0 = *SA11X0_OSCR + period; // Load new match value
+ *SA11X0_OSSR = SA11X0_OSSR_TIMER0; // Clear any pending interrupt
+#endif
+}
+
+// Read the current value of the clock, returning the number of hardware
+// "ticks" that have occurred (i.e. how far away the current value is from
+// the start)
+
+// Note: The "contract" for this function is that the value is the number
+// of hardware clocks that have happened since the last interrupt (i.e.
+// when it was reset). This value is used to measure interrupt latencies.
+// However, since the hardware counter runs freely, this routine computes
+// the difference between the current clock period and the number of hardware
+// ticks left before the next timer interrupt.
+void hal_clock_read(cyg_uint32 *pvalue)
+{
+ int orig;
+ HAL_DISABLE_INTERRUPTS(orig);
+ *pvalue = clock_period + *SA11X0_OSCR - *SA11X0_OSMR0;
+ HAL_RESTORE_INTERRUPTS(orig);
+}
+
+// This is to cope with the test read used by tm_basic with
+// CYGVAR_KERNEL_COUNTERS_CLOCK_LATENCY defined; we read the count ASAP
+// in the ISR, *before* resetting the clock. Which returns 1tick +
+// latency if we just use plain hal_clock_read().
+void hal_clock_latency(cyg_uint32 *pvalue)
+{
+ int orig;
+ HAL_DISABLE_INTERRUPTS(orig);
+ *pvalue = *SA11X0_OSCR - *SA11X0_OSMR0;
+ HAL_RESTORE_INTERRUPTS(orig);
+}
+
+//
+// Delay for some number of micro-seconds
+//
+void hal_delay_us(cyg_int32 usecs)
+{
+ cyg_uint32 val = 0;
+ cyg_uint32 ctr = *SA11X0_OSCR;
+ while (usecs-- > 0) {
+ do {
+ if (ctr != *SA11X0_OSCR) {
+ val += 271267; // 271267ps (3.6865Mhz -> 271.267ns)
+ ++ctr;
+ }
+ } while (val < 1000000);
+ val -= 1000000;
+ }
+}
+#ifdef CYGPKG_PROFILE_GPROF
+//--------------------------------------------------------------------------
+//
+// Profiling support - uses a separate high-speed timer
+//
+
+#include <cyg/hal/hal_arch.h>
+#include <cyg/hal/hal_intr.h>
+#include <cyg/profile/profile.h>
+
+// Can't rely on Cyg_Interrupt class being defined.
+#define Cyg_InterruptHANDLED 1
+
+static int profile_period = 0;
+
+// Profiling timer ISR
+static cyg_uint32
+profile_isr(CYG_ADDRWORD vector, CYG_ADDRWORD data, HAL_SavedRegisters *regs)
+{
+ // Load new match value
+ *SA11X0_OSMR1 = *SA11X0_OSCR + profile_period;
+ // Clear any pending interrupt
+ *SA11X0_OSSR = SA11X0_OSSR_TIMER1;
+ HAL_INTERRUPT_ACKNOWLEDGE(CYGNUM_HAL_INTERRUPT_TIMER1);
+ __profile_hit(regs->pc);
+ return Cyg_InterruptHANDLED;
+}
+
+int
+hal_enable_profile_timer(int resolution)
+{
+ // Run periodic timer interrupt for profile
+ // The resolution is specified in us, the hardware generates 3.6864
+ // ticks/us
+ profile_period = (resolution*36864) / 10000;
+
+ // Attach ISR.
+ HAL_INTERRUPT_ATTACH(CYGNUM_HAL_INTERRUPT_TIMER1, &profile_isr, 0x1111, 0);
+ HAL_INTERRUPT_UNMASK(CYGNUM_HAL_INTERRUPT_TIMER1);
+
+ // Set period and enable timer interrupts
+ *SA11X0_OSMR1 = *SA11X0_OSCR + profile_period;
+ *SA11X0_OIER |= SA11X0_OIER_TIMER1;
+
+ return resolution;
+}
+#endif
+
+// -------------------------------------------------------------------------
+
+// This routine is called to respond to a hardware interrupt (IRQ). It
+// should interrogate the hardware and return the IRQ vector number.
+int hal_IRQ_handler(void)
+{
+ cyg_uint32 sources, index;
+
+#ifdef HAL_EXTENDED_IRQ_HANDLER
+ // Use platform specific IRQ handler, if defined
+ // Note: this macro should do a 'return' with the appropriate
+ // interrupt number if such an extended interrupt exists. The
+ // assumption is that the line after the macro starts 'normal' processing.
+ HAL_EXTENDED_IRQ_HANDLER(index);
+#endif
+
+#if 0 // test FIQ and print alert if active - really for debugging
+ sources = *SA11X0_ICFP;
+ if ( 0 != sources )
+ diag_printf( "FIQ source active!!! - fiqstatus %08x irqstatus %08x\n",
+ sources, *SA11X0_ICIP );
+ else
+#endif // Scan FIQ sources also
+
+ sources = *SA11X0_ICIP;
+
+// FIXME
+// if we come to support FIQ properly...
+// if ( 0 == sources )
+// sources = *SA11X0_ICFP;
+
+ // Nothing wrong with scanning them in any order we choose...
+ // So here we try to make the serial devices steal fewer cycles.
+ // So, knowing this is an ARM:
+ if ( sources & 0xff0000 )
+ index = 16;
+ else if ( sources & 0xff00 )
+ index = 8;
+ else if ( sources & 0xff )
+ index = 0;
+ else // if ( sources & 0xff000000 )
+ index = 24;
+
+ do {
+ if ( (1 << index) & sources ) {
+ if (index == CYGNUM_HAL_INTERRUPT_GPIO) {
+ // Special case of GPIO cascade. Search for lowest set bit
+ sources = *SA11X0_GPIO_EDGE_DETECT_STATUS & 0x0FFFF800;
+ index = 11;
+ do {
+ if (sources & (1 << index)) {
+ index += 32;
+ break;
+ }
+ index++;
+ } while (index < 28);
+ }
+ return index;
+ }
+ index++;
+ } while ( index & 7 );
+
+ return CYGNUM_HAL_INTERRUPT_NONE; // This shouldn't happen!
+}
+
+//
+// Interrupt control
+//
+
+void hal_interrupt_mask(int vector)
+{
+
+#ifdef HAL_EXTENDED_INTERRUPT_MASK
+ // Use platform specific handling, if defined
+ // Note: this macro should do a 'return' for "extended" values of 'vector'
+ // Normal vectors are handled by code subsequent to the macro call.
+ HAL_EXTENDED_INTERRUPT_MASK(vector);
+#endif
+
+ // Non-GPIO interrupt sources can be masked separately.
+ // Note: masking any non-unique GPIO signal (31..11) results in
+ // all GPIO signals (31..11) being masked as only the "lump"
+ // source will be changed.
+
+ if (vector >= CYGNUM_HAL_INTERRUPT_GPIO11) {
+ vector = CYGNUM_HAL_INTERRUPT_GPIO;
+ }
+ *SA11X0_ICMR &= ~(1 << vector);
+}
+
+void hal_interrupt_unmask(int vector)
+{
+
+#ifdef HAL_EXTENDED_INTERRUPT_UNMASK
+ // Use platform specific handling, if defined
+ // Note: this macro should do a 'return' for "extended" values of 'vector'
+ // Normal vectors are handled by code subsequent to the macro call.
+ HAL_EXTENDED_INTERRUPT_UNMASK(vector);
+#endif
+
+ if (vector >= CYGNUM_HAL_INTERRUPT_GPIO11) {
+ vector = CYGNUM_HAL_INTERRUPT_GPIO;
+ }
+ *SA11X0_ICMR |= (1 << vector);
+}
+
+void hal_interrupt_acknowledge(int vector)
+{
+
+#ifdef HAL_EXTENDED_INTERRUPT_UNMASK
+ // Use platform specific handling, if defined
+ // Note: this macro should do a 'return' for "extended" values of 'vector'
+ // Normal vectors are handled by code subsequent to the macro call.
+ HAL_EXTENDED_INTERRUPT_ACKNOWLEDGE(vector);
+#endif
+
+ // GPIO interrupts are driven by an edge detection mechanism. This
+ // is latching so these interrupts must be acknowledged directly.
+ // All other interrupts simply go away when the interrupting unit
+ // has been serviced by the ISR.
+ if ((vector < CYGNUM_HAL_INTERRUPT_GPIO) ||
+ (vector >= CYGNUM_HAL_INTERRUPT_GPIO11)) {
+ *SA11X0_GPIO_EDGE_DETECT_STATUS = (1 << (vector & 0x1F));
+ } else {
+ // Not a GPIO interrupt
+ return;
+ }
+}
+
+void hal_interrupt_configure(int vector, int level, int up)
+{
+
+#ifdef HAL_EXTENDED_INTERRUPT_CONFIGURE
+ // Use platform specific handling, if defined
+ // Note: this macro should do a 'return' for "extended" values of 'vector'
+ // Normal vectors are handled by code subsequent to the macro call.
+ HAL_EXTENDED_INTERRUPT_CONFIGURE(vector, level, up);
+#endif
+
+ // This function can be used to configure the GPIO interrupts. All
+ // of these pins can potentially generate an interrupt, but only
+ // 0..10 are unique. Thus the discontinuity in the numbers.
+ // Also, if 'level' is true, then both edges are enabled if 'up' is
+ // true, otherwise they will be disabled.
+ // Non GPIO sources are ignored.
+ if ((vector < CYGNUM_HAL_INTERRUPT_GPIO) ||
+ (vector >= CYGNUM_HAL_INTERRUPT_GPIO11)) {
+ if (level) {
+ if (up) {
+ // Enable both edges
+ *SA11X0_GPIO_RISING_EDGE_DETECT |= (1 << (vector & 0x1F));
+ *SA11X0_GPIO_FALLING_EDGE_DETECT |= (1 << (vector & 0x1F));
+ } else {
+ // Disable both edges
+ *SA11X0_GPIO_RISING_EDGE_DETECT &= ~(1 << (vector & 0x1F));
+ *SA11X0_GPIO_FALLING_EDGE_DETECT &= ~(1 << (vector & 0x1F));
+ }
+ } else {
+ // Only interested in one edge
+ if (up) {
+ // Set rising edge detect and clear falling edge detect.
+ *SA11X0_GPIO_RISING_EDGE_DETECT |= (1 << (vector & 0x1F));
+ *SA11X0_GPIO_FALLING_EDGE_DETECT &= ~(1 << (vector & 0x1F));
+ } else {
+ // Set falling edge detect and clear rising edge detect.
+ *SA11X0_GPIO_FALLING_EDGE_DETECT |= (1 << (vector & 0x1F));
+ *SA11X0_GPIO_RISING_EDGE_DETECT &= ~(1 << (vector & 0x1F));
+ }
+ }
+ }
+}
+
+void hal_interrupt_set_level(int vector, int level)
+{
+
+#ifdef HAL_EXTENDED_INTERRUPT_SET_LEVEL
+ // Use platform specific handling, if defined
+ // Note: this macro should do a 'return' for "extended" values of 'vector'
+ // Normal vectors are handled by code subsequent to the macro call.
+ HAL_EXTENDED_INTERRUPT_SET_LEVEL(vector, level);
+#endif
+
+ // Interrupt priorities are not configurable on the SA11X0.
+}
+
+/*------------------------------------------------------------------------*/
+// These routines are for testing the equivalent efficient macros of the
+// same names. They actually inspect the MMap installed and tell the
+// truth - including about the validity of the address at all.
+
+cyg_uint32 hal_virt_to_phys_address( cyg_uint32 vaddr )
+{
+ register cyg_uint32 *ttb_base;
+ cyg_uint32 noise;
+ register union ARM_MMU_FIRST_LEVEL_DESCRIPTOR desc;
+
+ // Get the TTB register
+ asm volatile ("mrc p15,0,%0,c2,c0,0;"
+ "mov %0, %0, lsr #14;" // Lower 14 bits are undefined
+ "mov %0, %0, asl #14;" // ...so clear them
+ : "=r"(ttb_base)
+ :
+ /*:*/);
+
+ noise = vaddr & (SZ_1M - 1);
+ vaddr /= SZ_1M; // Page size/Entry size is Mb.
+
+ desc.word = *ARM_MMU_FIRST_LEVEL_DESCRIPTOR_ADDRESS( ttb_base, vaddr );
+
+ // Is this a valid entry that we understand?
+ if ( ARM_MMU_FIRST_LEVEL_SECTION_ID == desc.section.id )
+ return noise + desc.section.base_address * SZ_1M;
+
+ return 0; // Not available.
+}
+
+cyg_uint32 hal_phys_to_virt_address( cyg_uint32 paddr )
+{
+ cyg_uint32 *ttb_base;
+ cyg_uint32 i, noise;
+ register union ARM_MMU_FIRST_LEVEL_DESCRIPTOR desc;
+ cyg_bool identity_found = false;
+
+ // Get the TTB register
+ asm volatile ("mrc p15,0,%0,c2,c0,0;"
+ "mov %0, %0, lsr #14;" // Lower 14 bits are undefined
+ "mov %0, %0, asl #14;" // ...so clear them
+ : "=r"(ttb_base)
+ :
+ /*:*/);
+
+
+ noise = paddr & (SZ_1M - 1);
+ paddr /= SZ_1M; // Page size/Entry size is Mb.
+
+ for ( i = 0; i <= 0xfff; i++ ) {
+ desc.word = *ARM_MMU_FIRST_LEVEL_DESCRIPTOR_ADDRESS( ttb_base, i );
+
+ // Is this a valid entry that we understand?
+ if ( ARM_MMU_FIRST_LEVEL_SECTION_ID == desc.section.id ) {
+ if ( paddr == desc.section.base_address ) {
+ // Then the virtual address is i (in Mb).
+ if ( i == paddr ) {
+ // We found a direct map first. Do not report that
+ // immediately because it may be double mapped to a
+ // distinct virtual address, which we should return in
+ // preference. But remember that we saw it.
+ identity_found = true;
+ continue;
+ }
+ // Otherwise report that we found it:
+ return noise + i * SZ_1M;
+ }
+ }
+ }
+ // No non-identity matches were found.
+ if ( identity_found )
+ return noise + paddr * SZ_1M;
+
+ return 0; // Not available.
+}
+
+cyg_uint32 hal_virt_to_uncached_address( cyg_uint32 vaddr )
+{
+ cyg_uint32 *ttb_base;
+ cyg_uint32 noise, paddr, i;
+ register union ARM_MMU_FIRST_LEVEL_DESCRIPTOR desc;
+
+ // Get the TTB register
+ asm volatile ("mrc p15,0,%0,c2,c0,0;"
+ "mov %0, %0, lsr #14;" // Lower 14 bits are undefined
+ "mov %0, %0, asl #14;" // ...so clear them
+ : "=r"(ttb_base)
+ :
+ /*:*/);
+
+
+ noise = vaddr & (SZ_1M - 1);
+ vaddr /= SZ_1M; // Page size/Entry size is Mb.
+
+ desc.word = *ARM_MMU_FIRST_LEVEL_DESCRIPTOR_ADDRESS( ttb_base, vaddr );
+
+ // Is this a valid entry that we understand?
+ if ( ARM_MMU_FIRST_LEVEL_SECTION_ID != desc.section.id )
+ return 0; // Not available.
+
+ // Is this very address uncacheable already?
+ if ( ARM_UNCACHEABLE == desc.section.c )
+ return noise + vaddr * SZ_1M;
+
+ paddr = desc.section.base_address;
+
+ // We could look straight at a direct mapped slot for the physical
+ // address as per convention...
+
+ // Now scan through for a virtual address that maps to the same
+ // physical memory, but uncached.
+ for ( i = 0; i <= 0xfff; i++ ) {
+ desc.word = *ARM_MMU_FIRST_LEVEL_DESCRIPTOR_ADDRESS( ttb_base, i );
+
+ // Is this a valid entry that we understand?
+ if ( ARM_MMU_FIRST_LEVEL_SECTION_ID == desc.section.id )
+ if ( paddr == desc.section.base_address )
+ // Then the virtual address is i (in Mb).
+ if ( ARM_UNCACHEABLE == desc.section.c )
+ // Then this one is not cacheable.
+ return noise + i * SZ_1M;
+ }
+
+ return 0; // Not available.
+}
+
+
+/*------------------------------------------------------------------------*/
+// EOF sa11x0_misc.c
diff --git a/ecos/packages/hal/arm/sa11x0/var/current/tests/mmap_test.c b/ecos/packages/hal/arm/sa11x0/var/current/tests/mmap_test.c
new file mode 100644
index 0000000..097d96d
--- /dev/null
+++ b/ecos/packages/hal/arm/sa11x0/var/current/tests/mmap_test.c
@@ -0,0 +1,293 @@
+//==========================================================================
+//
+// mmap_test.c
+//
+// Memory mapping test for ARM SA11x0 platforms
+//
+//==========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//==========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): hmt
+// Contributors: hmt
+// Date: 2000-01-04
+// Description: Basic test of MMAP macros and functions
+//
+//####DESCRIPTIONEND####
+
+#include <pkgconf/system.h>
+
+#include <cyg/infra/testcase.h>
+
+#include <cyg/hal/hal_intr.h>
+#include <cyg/hal/hal_cache.h>
+
+extern int diag_printf( char *, ... );
+
+static int staticmem = 0;
+
+static void somefunc( void )
+{
+ staticmem++;
+}
+
+static int vpcount = 0, uncachedcount = 0, loopcount = 0;
+
+externC void
+#ifdef CYGPKG_KERNEL
+cyg_user_start( void )
+#else
+cyg_start( void )
+#endif
+{
+ int stackmem = 127;
+
+ unsigned int p1, p2, v1, v2;
+
+ CYG_TEST_INIT();
+ CYG_TEST_INFO( "Starting MMap test" );
+
+ // First check the pagesize macro for various objects.
+ p1 = 0;
+ HAL_MM_PAGESIZE( &stackmem, p1 );
+ CYG_TEST_CHECK( SZ_1M == p1, "Pagesize bad for stackmem" );
+
+ p1 = 1;
+ HAL_MM_PAGESIZE( &staticmem, p1 );
+ CYG_TEST_CHECK( SZ_1M == p1, "Pagesize bad for staticmem" );
+
+ p1 = 2;
+ HAL_MM_PAGESIZE( &somefunc, p1 );
+ CYG_TEST_CHECK( SZ_1M == p1, "Pagesize bad for somefunc" );
+
+ CYG_TEST_PASS( "Pagesize macro OK" );
+
+ // Test the macros with directly quoted "&thing" input args,
+ // with things being static, on-stack, and code area:
+
+ HAL_VIRT_TO_PHYS_ADDRESS( &stackmem, p2 );
+ HAL_PHYS_TO_VIRT_ADDRESS( p2, v2 );
+ CYG_TEST_CHECK( (unsigned int)(&stackmem) == v2,
+ "Stackmem translation failed" );
+
+ HAL_VIRT_TO_PHYS_ADDRESS( &staticmem, p2 );
+ HAL_PHYS_TO_VIRT_ADDRESS( p2, v2 );
+ CYG_TEST_CHECK( (unsigned int)(&staticmem) == v2,
+ "Staticmem translation failed" );
+
+ HAL_VIRT_TO_PHYS_ADDRESS( &somefunc, p2 );
+ HAL_PHYS_TO_VIRT_ADDRESS( p2, v2 );
+ CYG_TEST_CHECK( (unsigned int)(&somefunc) == v2,
+ "Somefunc translation failed" );
+
+
+ // Test the macros with variable pointer input args:
+
+ v1 = (unsigned int)&stackmem;
+ HAL_VIRT_TO_PHYS_ADDRESS( v1, p2 );
+ HAL_PHYS_TO_VIRT_ADDRESS( p2, v2 );
+ CYG_TEST_CHECK( v1 == v2,
+ "Ptr-to-stackmem translation failed" );
+
+ v1 = (unsigned int)&staticmem;
+ HAL_VIRT_TO_PHYS_ADDRESS( v1, p2 );
+ HAL_PHYS_TO_VIRT_ADDRESS( p2, v2 );
+ CYG_TEST_CHECK( v1 == v2,
+ "Ptr-to-staticmem translation failed" );
+
+ v1 = (unsigned int)&somefunc;
+ HAL_VIRT_TO_PHYS_ADDRESS( v1, p2 );
+ HAL_PHYS_TO_VIRT_ADDRESS( p2, v2 );
+ CYG_TEST_CHECK( v1 == v2,
+ "Ptr-to-somefunc translation failed" );
+
+
+ // Test the UNCACHED address macros similarly:
+
+ v1 = (unsigned int)&stackmem;
+ HAL_VIRT_TO_UNCACHED_ADDRESS( v1, p2 );
+ CYG_TEST_CHECK( v1 != p2, "Stack mem already uncached!" );
+ *(int *)v1 = 17;
+ HAL_DCACHE_STORE( v1, 4 );
+ CYG_TEST_CHECK( *(int *)p2 == 17, "Uncached stack data not 17" );
+ *(int *)v1 = 23;
+ HAL_DCACHE_STORE( v1, 4 );
+ CYG_TEST_CHECK( *(int *)p2 == 23, "Uncached stack data not 23" );
+
+ v1 = (unsigned int)&staticmem;
+ HAL_VIRT_TO_UNCACHED_ADDRESS( v1, p2 );
+ CYG_TEST_CHECK( v1 != p2, "Static mem already uncached!" );
+ *(int *)v1 = 117;
+ HAL_DCACHE_STORE( v1, 4 );
+ CYG_TEST_CHECK( *(int *)p2 == 117, "Uncached static data not 117" );
+ *(int *)v1 = 123;
+ HAL_DCACHE_STORE( v1, 4 );
+ CYG_TEST_CHECK( *(int *)p2 == 123, "Uncached static data not 123" );
+
+#ifdef CYG_HAL_STARTUP_RAM // then somefunc is in RAM, and this is valid
+ v1 = (unsigned int)&somefunc;
+ HAL_VIRT_TO_UNCACHED_ADDRESS( v1, p2 );
+ CYG_TEST_CHECK( v1 != p2, "Somefunc already uncached!" );
+ CYG_TEST_CHECK( *(int *)p2 == *(int *)v1, "Uncached instruction not the same" );
+#else
+ CYG_TEST_INFO( "Skipping code cachability test, not RAM start" );
+#endif
+
+ // Now check via the routines that actually read the MMAP table:
+
+ v1 = (unsigned int)&stackmem;
+ p1 = hal_virt_to_phys_address( v1 );
+ HAL_VIRT_TO_PHYS_ADDRESS( v1, p2 );
+ CYG_TEST_CHECK( p1 == p2, "Physical address of stackmem mismatch" );
+ v1 = hal_phys_to_virt_address( p2 );
+ HAL_PHYS_TO_VIRT_ADDRESS( p2, v2 );
+ CYG_TEST_CHECK( &stackmem == (int *)v1,
+ "Func : Virtual address of stackmem wrong" );
+ CYG_TEST_CHECK( &stackmem == (int *)v2,
+ "Macro: Virtual address of stackmem wrong" );
+
+ v1 = (unsigned int)&staticmem;
+ p1 = hal_virt_to_phys_address( v1 );
+ HAL_VIRT_TO_PHYS_ADDRESS( v1, p2 );
+ CYG_TEST_CHECK( p1 == p2, "Physical address of staticmem mismatch" );
+ v1 = hal_phys_to_virt_address( p2 );
+ HAL_PHYS_TO_VIRT_ADDRESS( p2, v2 );
+ CYG_TEST_CHECK( &staticmem == (int *)v1,
+ "Func : Virtual address of staticmem wrong" );
+ CYG_TEST_CHECK( &staticmem == (int *)v2,
+ "Macro: Virtual address of staticmem wrong" );
+
+ v1 = (unsigned int)&somefunc;
+ p1 = hal_virt_to_phys_address( v1 );
+ HAL_VIRT_TO_PHYS_ADDRESS( v1, p2 );
+ CYG_TEST_CHECK( p1 == p2, "Physical address of somefunc mismatch" );
+ v1 = hal_phys_to_virt_address( p2 );
+ HAL_PHYS_TO_VIRT_ADDRESS( p2, v2 );
+ CYG_TEST_CHECK( (unsigned int)&somefunc ==v1,
+ "Func : Virtual address of somefunc wrong" );
+ CYG_TEST_CHECK( (unsigned int)&somefunc == v2,
+ "Macro: Virtual address of somefunc wrong" );
+
+
+ // And check the uncached-address version of the routines that actually
+ // read the MMAP table:
+
+ v1 = (unsigned int)&stackmem;
+ p1 = hal_virt_to_uncached_address( v1 );
+ HAL_VIRT_TO_UNCACHED_ADDRESS( v1, p2 );
+ CYG_TEST_CHECK( p1 == p2, "Uncached address of stackmem mismatch" );
+
+ v1 = (unsigned int)&staticmem;
+ p1 = hal_virt_to_uncached_address( v1 );
+ HAL_VIRT_TO_UNCACHED_ADDRESS( v1, p2 );
+ CYG_TEST_CHECK( p1 == p2, "Uncached address of staticmem mismatch" );
+
+#ifdef CYG_HAL_STARTUP_RAM // then somefunc is in RAM, and this is valid
+ v1 = (unsigned int)&somefunc;
+ p1 = hal_virt_to_uncached_address( v1 );
+ HAL_VIRT_TO_UNCACHED_ADDRESS( v1, p2 );
+ CYG_TEST_CHECK( p1 == p2, "Uncached address of somefunc mismatch" );
+#else
+ CYG_TEST_INFO( "Skipping code cachability test 2, not RAM start" );
+#endif
+
+ CYG_TEST_PASS( "Initial explicit tests AOK" );
+
+ // ---------------------------------------------------------------
+ //
+ // We have now tested the macros and routines for some example objects
+ // that we know are in RAM and which therefore should be dual-mapped.
+ //
+ // We can now whizz through all of the address space, checking as we go
+ // that sensible things happen. We must NOT use the addresses in
+ // question, just pass them through the macros and routines.
+
+ // Start from some random address,
+ // go up until we have covered all of memory
+ // increment by about 0.8 of a Mb,
+ for ( v1 = 0x12345; v1 ; v1 += 0xffff7 ) {
+ unsigned int v3;
+
+ loopcount++;
+
+ p1 = hal_virt_to_phys_address( v1 );
+ HAL_VIRT_TO_PHYS_ADDRESS( v1, p2 );
+ if ( p1 ) {
+ vpcount++;
+ // Then there is a physical address for this virtual address
+ if (p1 != p2) diag_printf("v1: %p, p1: %p, p2: %p\n", v1, p1, p2);
+ CYG_TEST_CHECK( p1 == p2,
+ "Scan: truly mapped physical address mismatch" );
+
+ v3 = hal_phys_to_virt_address( p2 );
+ HAL_PHYS_TO_VIRT_ADDRESS( p2, v2 );
+ if (v2 != v3) diag_printf("v1: %p, p1: %p, v2: %p, v3: %p\n", v1, p1, v2, v3);
+ CYG_TEST_CHECK( v3 == v2,
+ "Scan: backmapped virtual address mismatch" );
+ // But the virtual address might be elsewhere, ie. a cached
+ // nonphysical address.
+ if ( v3 != v1 ) {
+ // Then it is [also] elsewhere, apparently. Check that its
+ // otherness maps right back to this physical address.
+ p1 = hal_virt_to_phys_address( v2 );
+ if (p1 != p2) diag_printf("v1: %p, p1: %p, p2: %p\n", v1, p1, p2);
+ CYG_TEST_CHECK( p1 == p2,
+ "Scan: phys(virt(phys(x))) mismatch" );
+ }
+ }
+
+ p1 = hal_virt_to_uncached_address( v1 );
+ HAL_VIRT_TO_UNCACHED_ADDRESS( v1, p2 );
+ if ( p1 ) {
+ uncachedcount++;
+ // Then there is an uncached address for this virtual address
+ if (p1 != p2) diag_printf("v1: %p, p1: %p, p2: %p\n", v1, p1, p2);
+ CYG_TEST_CHECK( p1 == p2, "Uncached address of stackmem mismatch" );
+ }
+
+ if ( v1 > 0xfff00000u )
+ break;
+ }
+
+ diag_printf( "INFO:<%d addresses tested>\n", loopcount );
+ diag_printf( "INFO:<%d virt-phys mappings checked>\n", vpcount );
+ diag_printf( "INFO:<%d uncachable addresses checked>\n", uncachedcount );
+
+ CYG_TEST_PASS( "MMap memory scan test OK" );
+
+ // ---------------------------------------------------------------
+ CYG_TEST_EXIT( "Done" );
+}
+
+// EOF mmap_test.c
diff --git a/ecos/packages/hal/arm/snds/current/ChangeLog b/ecos/packages/hal/arm/snds/current/ChangeLog
new file mode 100644
index 0000000..109cf45
--- /dev/null
+++ b/ecos/packages/hal/arm/snds/current/ChangeLog
@@ -0,0 +1,155 @@
+2009-01-31 Bart Veer <bartv@ecoscentric.com>
+
+ * cdl/hal_arm_snds.cdl: update compiler flags for gcc 4.x
+
+2009-01-24 Bart Veer <bartv@ecoscentric.com>
+
+ * cdl/hal_arm_snds.cdl: switch from arm-elf-gcc to
+ arm-eabi-gcc.
+
+2003-12-05 Andrew Lunn <andrew.lunn@ascom.ch>
+
+ * include/hal_diag.h: hal_delay_us() is a C function.
+
+2003-11-05 Roland Caßebohm <roland.cassebohm@visionsystems.de>
+
+ * include/plf_io.h: Define HAL_IO_MACROS_NO_ADDRESS_MUNGING to
+ force the IO macros not to mung the addresses. This platform
+ don't need this.
+
+2003-10-08 Roland Caßebohm <roland.cassebohm@visionsystems.de>
+
+ * include/plf_io.h: Correct (unused) defines for
+ KS32C_ROMCON_BASE_MASK, KS32C_ROMCON_NEXT_MASK,
+ KS32C_DRAMCON_BASE_MASK and KS32C_DRAMCON_NEXT_MASK.
+
+2003-09-21 Gary Thomas <gary@mlbassoc.com>
+
+ * misc/redboot_RAM.ecm:
+ * misc/redboot_ROM.ecm: Adjust for changes in RedBoot
+ template - DNS now must be enabled manually.
+
+2003-07-18 Nick Garnett <nickg@balti.calivar.com>
+
+ * cdl/hal_arm_snds.cdl:
+ Changed values for CYGNUM_HAL_RTC_NUMERATOR,
+ CYGNUM_HAL_RTC_DENOMINATOR and CYGNUM_HAL_RTC_PERIOD to
+ "default_value" from "calculated". This makes it easier
+ to change these values globally.
+
+2002-10-19 Jonathan Larmour <jifl@eCosCentric.com>
+
+ * include/hal_platform_setup.h (PLATFORM_SETUP1): Only define if
+ ROM or ROMRAM, not if STUBS which can be RAM.
+
+2003-02-05 Nick Garnett <nickg@calivar.com>
+
+ * include/plf_io.h (CYGARC_PHYSICAL_ADDRESS): Added this
+ definition to keep redboot_linux_exec.c happy.
+
+2002-10-03 Jonathan Larmour <jifl@eCosCentric.com>
+
+ * include/pkgconf/mlt_arm_snds_ram.ldi: Add definition of heap1.
+
+2002-05-07 Gary Thomas <gthomas@redhat.com>
+
+ * cdl/hal_arm_snds.cdl:
+ Standardize CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_DEFAULT usage.
+
+2001-12-06 Jesper Skov <jskov@redhat.com>
+
+ * include/hal_platform_setup.h (PLATFORM_SETUP1): Don't trust the
+ syscfg SDRAM request bit as suggested by manual - always set it to
+ what works. Use relative loads to get a pointer to the tables with
+ system controller setup data.
+
+ * src/snds100_misc.c: Don't mess up the syscfg register.
+
+2001-10-19 Jesper Skov <jskov@redhat.com>
+
+ * include/plf_io.h (KS32C_REFEXTCON): Split in DRAM and SDRAM
+ settings.
+
+ * include/hal_platform_setup.h: Fix KS32C_REFEXTCON parameters,
+ and set some LEDs to help debugging.
+
+ * cdl/hal_arm_snds.cdl: On the SNDS100 board the CPU runs at
+ 50MHZ.
+
+ * include/pkgconf/mlt_arm_snds_rom.ldi: Moved flash to
+ 0x01800000.
+ * include/pkgconf/mlt_arm_snds_rom.mlt: Same.
+ * include/pkgconf/mlt_arm_snds_rom.h: Same.
+
+ * include/hal_platform_setup.h: Added LED macro. Use relative
+ branch in reset vector. Moved flash to 0x01800000.
+
+2001-10-18 Jesper Skov <jskov@redhat.com>
+
+ * src/hal_diag.c: Definition names updated.
+ * src/snds100_misc.c: Same.
+
+ * include/pkgconf/mlt_arm_snds_rom.ldi: Added.
+ * include/pkgconf/mlt_arm_snds_rom.mlt: Same.
+ * include/pkgconf/mlt_arm_snds_rom.h: Same.
+
+ * include/pkgconf/mlt_arm_snds_ram.ldi: Updated layout.
+ * include/pkgconf/mlt_arm_snds_ram.mlt: Same.
+ * include/pkgconf/mlt_arm_snds_ram.h: Same.
+
+ * include/hal_platform_setup.h: Fixed instruction typo.
+
+ * include/hal_platform_ints.h: Vector definitions renamed to match
+ those in E7T HAL.
+
+ * include/hal_cache.h: Replaced with E7T HAL version.
+
+ * cdl/hal_arm_snds.cdl: Added default baud rate option, ROM
+ startup mode, and removed PID tools make rules.
+
+2001-10-12 Jesper Skov <jskov@redhat.com>
+
+ * src/hal_diag.c: Copied here from E7T HAL.
+ * src/snds100_misc.c: Functions replaced with E7T HAL
+ versions.
+
+ * include/plf_io.h: Added.
+
+ * include/hal_platform_setup.h (PLATFORM_SETUP1): Code matching
+ board mon.
+
+2001-10-05 Jonathan Larmour <jlarmour@redhat.com>
+
+ * include/hal_cache.h: Don't define cache dimensions at all rather
+ than using 0.
+
+2001-08-22 Gary Thomas <gthomas@redhat.com>
+
+ * src/snds100_misc.c:
+ * src/hal_diag.c:
+ printf() is no longer a part of RedBoot. Thus all programs
+ must use diag_printf() and related functions instead.
+
+//===========================================================================
+// ####GPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 2 or (at your option) any
+// later version.
+//
+// This program is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the
+// Free Software Foundation, Inc., 51 Franklin Street,
+// Fifth Floor, Boston, MA 02110-1301, USA.
+// -------------------------------------------
+// ####GPLCOPYRIGHTEND####
+//===========================================================================
diff --git a/ecos/packages/hal/arm/snds/current/cdl/hal_arm_snds.cdl b/ecos/packages/hal/arm/snds/current/cdl/hal_arm_snds.cdl
new file mode 100644
index 0000000..85be931
--- /dev/null
+++ b/ecos/packages/hal/arm/snds/current/cdl/hal_arm_snds.cdl
@@ -0,0 +1,368 @@
+#==========================================================================
+#
+# hal_arm_snds.cdl
+#
+#
+#
+#==========================================================================
+## ####ECOSGPLCOPYRIGHTBEGIN####
+## -------------------------------------------
+## This file is part of eCos, the Embedded Configurable Operating System.
+## Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+##
+## eCos is free software; you can redistribute it and/or modify it under
+## the terms of the GNU General Public License as published by the Free
+## Software Foundation; either version 2 or (at your option) any later
+## version.
+##
+## eCos is distributed in the hope that it will be useful, but WITHOUT
+## ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+## FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+## for more details.
+##
+## You should have received a copy of the GNU General Public License
+## along with eCos; if not, write to the Free Software Foundation, Inc.,
+## 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+##
+## As a special exception, if other files instantiate templates or use
+## macros or inline functions from this file, or you compile this file
+## and link it with other works to produce a work based on this file,
+## this file does not by itself cause the resulting work to be covered by
+## the GNU General Public License. However the source code for this file
+## must still be made available in accordance with section (3) of the GNU
+## General Public License v2.
+##
+## This exception does not invalidate any other reasons why a work based
+## on this file might be covered by the GNU General Public License.
+## -------------------------------------------
+## ####ECOSGPLCOPYRIGHTEND####
+#==========================================================================
+######DESCRIPTIONBEGIN####
+#
+# Author(s): gthomas
+# Contributors: gthomas, jskov
+# Grant Edwards <grante@visi.com>
+# Date: 2001-07-31
+# Purpose:
+# Description:
+#
+#####DESCRIPTIONEND####
+#
+#========================================================================*/
+
+
+cdl_package CYGPKG_HAL_ARM_SNDS {
+ display "Samsung SNDS Evaluation Board"
+ parent CYGPKG_HAL_ARM
+ define_header hal_arm_snds.h
+ include_dir cyg/hal
+ hardware
+ description "
+ The SNDS HAL package provides the support needed to run
+ eCos on a Samsung SNDS Eval board"
+
+ compile hal_diag.c snds100_misc.c
+
+ implements CYGINT_HAL_VIRTUAL_VECTOR_SUPPORT
+ implements CYGINT_HAL_DEBUG_GDB_STUBS
+ implements CYGINT_HAL_DEBUG_GDB_STUBS_BREAK
+ implements CYGINT_HAL_ARM_ARCH_ARM7
+ implements CYGINT_HAL_ARM_THUMB_ARCH
+ # FIXME: Add endian option
+
+ define_proc {
+ puts $::cdl_system_header "#define CYGBLD_HAL_TARGET_H <pkgconf/hal_arm.h>"
+ puts $::cdl_system_header "#define CYGBLD_HAL_PLATFORM_H <pkgconf/hal_arm_snds.h>"
+ puts $::cdl_header ""
+ puts $::cdl_header "#define HAL_PLATFORM_CPU \"ARM 7TDMI\""
+ puts $::cdl_header "#define HAL_PLATFORM_BOARD \"Samsung SNDS\""
+ puts $::cdl_header "#define HAL_PLATFORM_EXTRA \"\""
+ puts $::cdl_header ""
+ }
+
+ 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 SNDS 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_component CYG_HAL_CPUTYPE {
+ display "cpu type"
+ flavor data
+ legal_values {"KS32C5000A" "S3C4510A"}
+ default_value {"S3C4510A"}
+ no_define
+ define -file system.h CYG_HAL_CPUTYPE
+ description "Which version of processor is on board."
+ }
+
+ cdl_component CYGNUM_HAL_CPUCLOCK {
+ display "cpu clock"
+ flavor data
+ legal_values 10000000 to 100000000
+ default_value 50000000
+ no_define
+ define -file system.h CYGNUM_HAL_CPUCLOCK
+ description "Frequency of cpu clock in Hz."
+ }
+
+ cdl_option CYGNUM_HAL_VIRTUAL_VECTOR_COMM_CHANNELS {
+ display "Number of diag/debug 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 0
+ }
+
+ 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 SNDS board has two diag/debug
+ 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 CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_DEFAULT
+ description "
+ The SNDS board has two diag/debug serial ports. This option
+ chooses which port will be used for diagnostic output."
+ }
+
+ cdl_option CYGNUM_HAL_VIRTUAL_VECTOR_CHANNELS_DEFAULT_BAUD {
+ display "Console/GDB serial port baud rate"
+ flavor data
+ legal_values 9600 19200 38400 57600 115200
+ default_value 38400
+ description "
+ This option controls the default baud rate used for the
+ Console/GDB connection."
+ }
+
+ # 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
+ default_value 1000000000
+ }
+ cdl_option CYGNUM_HAL_RTC_DENOMINATOR {
+ display "Real-time clock denominator"
+ flavor data
+ default_value 100
+ }
+ cdl_option CYGNUM_HAL_RTC_PERIOD {
+ display "Real-time clock period"
+ flavor data
+ default_value (CYGNUM_HAL_CPUCLOCK/CYGNUM_HAL_RTC_DENOMINATOR)
+ }
+ }
+
+ 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 { "arm-eabi"}
+ 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 { CYGBLD_GLOBAL_WARNFLAGS . CYGBLD_ARCH_CFLAGS .
+ (CYGHWR_HAL_ARM_CPU_FAMILY == "ARM9" ? "-mcpu=arm9" : "-mcpu=arm7tdmi") .
+ " -g -O2 -ffunction-sections -fdata-sections -fno-rtti -fno-exceptions " }
+ 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 { CYGBLD_ARCH_LDFLAGS .
+ (CYGHWR_HAL_ARM_CPU_FAMILY == "ARM9" ? "-mcpu=arm9" : "-mcpu=arm7tdmi") .
+ " -g -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" ? "arm_snds_ram" : \
+ "arm_snds_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_snds_ram.ldi>" : \
+ "<pkgconf/mlt_arm_snds_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_snds_ram.h>" : \
+ "<pkgconf/mlt_arm_snds_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_component CYGPKG_CYGMON_HAL_OPTIONS {
+ display "CygMon HAL options"
+ flavor none
+ no_define
+ parent CYGPKG_CYGMON
+ active_if CYGPKG_CYGMON
+ requires CYGPKG_IO_SERIAL_ARM_SNDS
+ requires {(CYGDAT_CYGMON_CONSOLE_DEV != "\"/dev/ser0\"") || \
+ (CYGPKG_IO_SERIAL_ARM_SNDS_SERIAL0 && \
+ (CYGNUM_IO_SERIAL_ARM_SNDS_SERIAL0_BUFSIZE == 512))}
+ requires {(CYGDAT_CYGMON_CONSOLE_DEV != "\"/dev/ser1\"") || \
+ (CYGPKG_IO_SERIAL_ARM_SNDS_SERIAL1 && \
+ (CYGNUM_IO_SERIAL_ARM_SNDS_SERIAL1_BUFSIZE == 512))}
+ description "
+ This option also lists the target's requirements for a valid CygMon
+ configuration."
+
+
+ cdl_option CYGDAT_CYGMON_CONSOLE_DEV {
+ display "Serial port for default console"
+ flavor data
+ default_value { "\"/dev/ser0\"" }
+ description "
+ This option selects the physical device to use as the default
+ console device for CygMon."
+
+ }
+
+ cdl_option CYGBLD_BUILD_CYGMON_BIN {
+ display "Build CygMon ROM binary image"
+ active_if CYGBLD_BUILD_CYGMON
+ default_value 1
+ no_define
+ description "This option enables the conversion of the CygMon ELF
+ image to a binary image suitable for ROM programming."
+
+ make -priority 325 {
+ <PREFIX>/bin/cygmon.bin : <PREFIX>/bin/cygmon.elf
+ $(OBJCOPY) --strip-debug --change-addresses=0xFC060000 $< $(@:.bin=.img)
+ $(OBJCOPY) -O srec $< $(@:.bin=.srec)
+ $(OBJCOPY) -O binary $< $@
+ }
+ }
+ }
+
+ cdl_component CYGPKG_REDBOOT_HAL_OPTIONS {
+ display "Redboot HAL options"
+ flavor none
+ no_define
+ parent CYGPKG_REDBOOT
+ active_if CYGPKG_REDBOOT
+ description "
+ This option lists the target's requirements for a valid Redboot
+ configuration."
+
+ 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 $< $@
+ }
+ }
+ }
+
+}
diff --git a/ecos/packages/hal/arm/snds/current/include/hal_cache.h b/ecos/packages/hal/arm/snds/current/include/hal_cache.h
new file mode 100644
index 0000000..4f93624
--- /dev/null
+++ b/ecos/packages/hal/arm/snds/current/include/hal_cache.h
@@ -0,0 +1,290 @@
+#ifndef CYGONCE_HAL_CACHE_H
+#define CYGONCE_HAL_CACHE_H
+//=============================================================================
+//
+// hal_cache.h
+//
+// HAL cache control API
+//
+//=============================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): nickg, gthomas
+// Contributors: nickg, gthomas
+// Date: 1998-09-28
+// 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 <cyg/infra/cyg_type.h>
+#include <cyg/hal/hal_io.h>
+#include <cyg/hal/plf_io.h>
+
+//-----------------------------------------------------------------------------
+// Cache dimensions - one unified cache
+
+#define HAL_CACHE_UNIFIED
+
+#define HAL_UCACHE_SIZE 0x2000 // Size of cache in bytes
+#define HAL_UCACHE_LINE_SIZE 16 // Size of a cache line
+#define HAL_UCACHE_WAYS 2 // Associativity of the cache
+
+#define HAL_UCACHE_SETS (HAL_UCACHE_SIZE/(HAL_UCACHE_LINE_SIZE*HAL_UCACHE_WAYS))
+
+//-----------------------------------------------------------------------------
+// Global control of cache
+
+// Enable the cache
+#define HAL_UCACHE_ENABLE() \
+ CYG_MACRO_START \
+ cyg_uint32 syscfg; \
+ HAL_READ_UINT32(KS32C_SYSCFG, syscfg); \
+ syscfg |= KS32C_SYSCFG_CE; \
+ HAL_WRITE_UINT32(KS32C_SYSCFG, syscfg); \
+ CYG_MACRO_END
+
+// Disable the cache
+#define HAL_UCACHE_DISABLE() \
+ CYG_MACRO_START \
+ cyg_uint32 syscfg; \
+ HAL_READ_UINT32(KS32C_SYSCFG, syscfg); \
+ syscfg &= ~KS32C_SYSCFG_CE; \
+ HAL_WRITE_UINT32(KS32C_SYSCFG, syscfg); \
+ CYG_MACRO_END
+
+// Invalidate the entire cache
+#define HAL_UCACHE_INVALIDATE_ALL() \
+ CYG_MACRO_START \
+ register cyg_uint32* tag = (cyg_uint32*)KS32C_CACHE_TAG_ADDR; \
+ register int i; \
+ for (i = 0; i < HAL_UCACHE_SETS/4; i++) { \
+ *tag++ = 0; \
+ *tag++ = 0; \
+ *tag++ = 0; \
+ *tag++ = 0; \
+ } \
+ CYG_MACRO_END
+
+// Synchronize the contents of the cache with memory.
+// No action necessary. Cache is write-through.
+#define HAL_UCACHE_SYNC()
+
+// Query the state of the cache
+#define HAL_UCACHE_IS_ENABLED(_state_) \
+ CYG_MACRO_START \
+ cyg_uint32 syscfg; \
+ HAL_READ_UINT32(KS32C_SYSCFG, syscfg); \
+ (_state_) = (syscfg & KS32C_SYSCFG_CE) ? 1 : 0; \
+ CYG_MACRO_END
+
+// Purge contents of cache
+#define HAL_UCACHE_PURGE_ALL() HAL_UCACHE_INVALIDATE_ALL()
+
+// Set the cache refill burst size
+//#define HAL_UCACHE_BURST_SIZE(_size_)
+
+// Set the cache write mode
+//#define HAL_UCACHE_WRITE_MODE( _mode_ )
+
+//#define HAL_UCACHE_WRITETHRU_MODE 0
+//#define HAL_UCACHE_WRITEBACK_MODE 1
+
+// 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_ )
+
+// 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_ )
+
+// 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
diff --git a/ecos/packages/hal/arm/snds/current/include/hal_diag.h b/ecos/packages/hal/arm/snds/current/include/hal_diag.h
new file mode 100644
index 0000000..66c81ea
--- /dev/null
+++ b/ecos/packages/hal/arm/snds/current/include/hal_diag.h
@@ -0,0 +1,82 @@
+//==========================================================================
+//
+// hal_diag.h
+//
+//
+//
+//==========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//==========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): gthomas
+// Contributors: gthomas, jskov
+// Grant Edwards <grante@visi.com>
+// Date: 2001-07-31
+// Purpose:
+// Description:
+//
+//####DESCRIPTIONEND####
+//
+//========================================================================*/
+
+#ifndef CYGONCE_HAL_DIAG_H
+#define CYGONCE_HAL_DIAG_H
+
+#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_)
+
+//// Not the best place for this, but ...
+externC void hal_delay_us(cyg_int32 usecs);
+#define HAL_DELAY_US(n) hal_delay_us(n);
+
+#else // old way of doing diagnostic I/O
+
+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 // defined(CYGSEM_HAL_VIRTUAL_VECTOR_DIAG)
+#endif /* CYGONCE_HAL_DIAG_H */
diff --git a/ecos/packages/hal/arm/snds/current/include/hal_platform_ints.h b/ecos/packages/hal/arm/snds/current/include/hal_platform_ints.h
new file mode 100644
index 0000000..4895a1c
--- /dev/null
+++ b/ecos/packages/hal/arm/snds/current/include/hal_platform_ints.h
@@ -0,0 +1,107 @@
+#ifndef CYGONCE_HAL_PLATFORM_INTS_H
+#define CYGONCE_HAL_PLATFORM_INTS_H
+//==========================================================================
+//
+// hal_platform_ints.h
+//
+//
+//
+//==========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//==========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): gthomas
+// Contributors: gthomas, jskov
+// Grant Edwards <grante@visi.com>
+// Date: 2001-07-31
+// Purpose:
+// Description:
+//
+//####DESCRIPTIONEND####
+//
+//========================================================================*/
+
+#define CYGNUM_HAL_INTERRUPT_EXT0 0
+#define CYGNUM_HAL_INTERRUPT_EXT1 1
+#define CYGNUM_HAL_INTERRUPT_EXT2 2
+#define CYGNUM_HAL_INTERRUPT_EXT3 3
+#define CYGNUM_HAL_INTERRUPT_UART0_TX 4
+#define CYGNUM_HAL_INTERRUPT_UART0_RX 5
+#if !defined(CYG_HAL_CPUTYPE)
+#error CYG_HAL_CPUTYPE not defined
+#endif
+#if defined(CYG_HAL_CPUTYPE_KS32C5000A)
+#define CYGNUM_HAL_INTERRUPT_UART0_ERR 6
+#define CYGNUM_HAL_INTERRUPT_UART1_TX 7
+#define CYGNUM_HAL_INTERRUPT_UART1_RX 8
+#define CYGNUM_HAL_INTERRUPT_UART1_ERR 9
+#define CYGNUM_HAL_INTERRUPT_DMA0 10
+#define CYGNUM_HAL_INTERRUPT_DMA1 11
+#define CYGNUM_HAL_INTERRUPT_TIMER0 12
+#define CYGNUM_HAL_INTERRUPT_TIMER1 13
+#define CYGNUM_HAL_INTERRUPT_HDLCA 14
+#define CYGNUM_HAL_INTERRUPT_HDLCB 15
+#else
+#define CYGNUM_HAL_INTERRUPT_UART1_TX 6
+#define CYGNUM_HAL_INTERRUPT_UART1_RX 7
+#define CYGNUM_HAL_INTERRUPT_DMA0 8
+#define CYGNUM_HAL_INTERRUPT_DMA1 9
+#define CYGNUM_HAL_INTERRUPT_TIMER0 10
+#define CYGNUM_HAL_INTERRUPT_TIMER1 11
+#define CYGNUM_HAL_INTERRUPT_HDLCA_TX 12
+#define CYGNUM_HAL_INTERRUPT_HDLCA_RX 13
+#define CYGNUM_HAL_INTERRUPT_HDLCB_TX 14
+#define CYGNUM_HAL_INTERRUPT_HDLCB_RX 15
+#endif
+#define CYGNUM_HAL_INTERRUPT_ETH_BDMA_TX 16
+#define CYGNUM_HAL_INTERRUPT_ETH_BDMA_RX 17
+#define CYGNUM_HAL_INTERRUPT_ETH_MAC_TX 18
+#define CYGNUM_HAL_INTERRUPT_ETH_MAC_RX 19
+#define CYGNUM_HAL_INTERRUPT_I2C 20
+
+#define CYGNUM_HAL_ISR_MIN 0
+#define CYGNUM_HAL_ISR_MAX 20
+#define CYGNUM_HAL_ISR_COUNT 21
+
+// The vector used by the Real time clock
+
+#define CYGNUM_HAL_INTERRUPT_RTC CYGNUM_HAL_INTERRUPT_TIMER0
+
+//----------------------------------------------------------------------------
+// Reset.
+#define HAL_PLATFORM_RESET()
+
+#define HAL_PLATFORM_RESET_ENTRY 0x01010000
+
+#endif // CYGONCE_HAL_PLATFORM_INTS_H
diff --git a/ecos/packages/hal/arm/snds/current/include/hal_platform_setup.h b/ecos/packages/hal/arm/snds/current/include/hal_platform_setup.h
new file mode 100644
index 0000000..7b1b62c
--- /dev/null
+++ b/ecos/packages/hal/arm/snds/current/include/hal_platform_setup.h
@@ -0,0 +1,327 @@
+#ifndef CYGONCE_HAL_PLATFORM_SETUP_H
+#define CYGONCE_HAL_PLATFORM_SETUP_H
+//==========================================================================
+//
+// hal_platform_setup.h
+//
+//
+//
+//==========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//==========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): gthomas
+// Contributors: gthomas, jskov
+// Grant Edwards <grante@visi.com>
+// Date: 2001-07-31
+// Purpose:
+// Description:
+//
+//####DESCRIPTIONEND####
+//
+//========================================================================*/
+
+// does normal DRAM setup, which doesn't fail?!?!
+
+#include <cyg/hal/plf_io.h>
+
+#define CYGHWR_LED_MACRO \
+ ldr r0,=KS32C_IOPDATA ;\
+ mov r1, #((255 & (~(\x)))) ;\
+ str r1, [r0] ;
+
+#if CYGNUM_HAL_COMMON_INTERRUPTS_STACK_SIZE==4096
+// Override default to a more sensible value
+#undef CYGNUM_HAL_COMMON_INTERRUPTS_STACK_SIZE
+#define CYGNUM_HAL_COMMON_INTERRUPTS_STACK_SIZE 2048
+#endif
+
+// Use relative branch since we are going to switch the address space
+// around.
+#define CYGSEM_HAL_ROM_RESET_USES_JUMP
+
+#if defined(CYG_HAL_STARTUP_ROM) || defined(CYG_HAL_STARTUP_ROMRAM)
+#define PLATFORM_SETUP1 \
+ ldr r1,=KS32C_IOPMOD ;\
+ ldr r2,=0xff /* set led display to output */ ;\
+ str r2,[r1,#0x00] ;\
+ LED 0xaa ;\
+ ;\
+ /* Normal DRAM mode */ ;\
+ ldr r3, =0x03ffff90 /* cache+wb disabled, regs @ 0x03ff0000 */;\
+ ldr r0, =KS32C_SYSCFG ;\
+ str r3,[r0] ;\
+ ldr lr,=10f ;\
+1: mov r1,pc ;\
+ sub r1,r1,#8 ;\
+ ldr r0,=1b ;\
+ sub r1,r1,r0 ;\
+ ldr r0,=30f ;\
+ add r0,r0,r1 ;\
+ ldmia r0,{r1-r12} ;\
+ ldr r0,=KS32C_EXTDBWTH ;\
+ stmia r0,{r1-r12} ;\
+ mov pc,lr ;\
+10: LED 0x80 ;\
+ \
+ /* Check that it worked, otherwise try Sync DRAM setup */ ;\
+ ldr r1,=0x00000000 ;\
+ str r1,[r1] ;\
+ ldr r2,[r1] ;\
+ cmp r2,r1 ;\
+ beq 99f ;\
+ \
+ /* Sync DRAM mode */ ;\
+ LED 0x81 ;\
+ ldr r3, =0x83ffff90 /* sdram c+wb disabled, regs @ 0x03ff0000 */;\
+ ldr r0, =KS32C_SYSCFG ;\
+ str r3,[r0] ;\
+ ldr lr,=99f ;\
+1: mov r1,pc ;\
+ sub r1,r1,#8 ;\
+ ldr r0,=1b ;\
+ sub r1,r1,r0 ;\
+ ldr r0,=40f ;\
+ add r0,r0,r1 ;\
+ ldmia r0,{r1-r12} ;\
+ ldr r0,=KS32C_EXTDBWTH ;\
+ stmia r0,{r1-r12} ;\
+ mov pc,lr ;\
+ ;\
+ /* The below are set with a store-multiple instruction */ ;\
+ ;\
+ /* Normal DRAM setup */ ;\
+ /* Flash is 16 bit, everything else 32 bit */ ;\
+ /* .long KS32C_EXTDBWTH */ ;\
+30: .long ( (KS32C_EXTDBWTH_16BIT<<KS32C_EXTDBWTH_DSR0_shift) \
+ |(KS32C_EXTDBWTH_16BIT<<KS32C_EXTDBWTH_DSR1_shift) \
+ |(KS32C_EXTDBWTH_32BIT<<KS32C_EXTDBWTH_DSR2_shift) \
+ |(KS32C_EXTDBWTH_32BIT<<KS32C_EXTDBWTH_DSR3_shift) \
+ |(KS32C_EXTDBWTH_32BIT<<KS32C_EXTDBWTH_DSR4_shift) \
+ |(KS32C_EXTDBWTH_32BIT<<KS32C_EXTDBWTH_DSR5_shift) \
+ |(KS32C_EXTDBWTH_32BIT<<KS32C_EXTDBWTH_DSD0_shift) \
+ |(KS32C_EXTDBWTH_32BIT<<KS32C_EXTDBWTH_DSD1_shift) \
+ |(KS32C_EXTDBWTH_32BIT<<KS32C_EXTDBWTH_DSD2_shift) \
+ |(KS32C_EXTDBWTH_32BIT<<KS32C_EXTDBWTH_DSD3_shift) \
+ |(KS32C_EXTDBWTH_32BIT<<KS32C_EXTDBWTH_DSX0_shift) \
+ |(KS32C_EXTDBWTH_32BIT<<KS32C_EXTDBWTH_DSX1_shift) \
+ |(KS32C_EXTDBWTH_32BIT<<KS32C_EXTDBWTH_DSX2_shift) \
+ |(KS32C_EXTDBWTH_32BIT<<KS32C_EXTDBWTH_DSX3_shift) ) ;\
+ /* Flash at 0x01800000-0x01880000, 5 cycles, 7 cycles */ ;\
+ /* .long KS32C_ROMCON0 */ ;\
+ .long ( (KS32C_ROMCON_PMC_ROM) \
+ |(KS32C_ROMCON_TPA_5C) \
+ |(KS32C_ROMCON_TACC_7C) \
+ |((0x01800000 >> 16) << KS32C_ROMCON_BASE_shift) \
+ |((0x01880000 >> 16) << KS32C_ROMCON_NEXT_shift)) ;\
+ /* .long KS32C_ROMCON1 */ ;\
+ .long ( (KS32C_ROMCON_PMC_ROM) \
+ |(KS32C_ROMCON_TPA_5C) \
+ |(KS32C_ROMCON_TACC_5C) \
+ |((0x00000000 >> 16) << KS32C_ROMCON_BASE_shift) \
+ |((0x00000000 >> 16) << KS32C_ROMCON_NEXT_shift)) ;\
+ /* .long KS32C_ROMCON2 */ ;\
+ .long ( (KS32C_ROMCON_PMC_ROM) \
+ |(KS32C_ROMCON_TPA_5C) \
+ |(KS32C_ROMCON_TACC_5C) \
+ |((0x00000000 >> 16) << KS32C_ROMCON_BASE_shift) \
+ |((0x00000000 >> 16) << KS32C_ROMCON_NEXT_shift)) ;\
+ /* .long KS32C_ROMCON3 */ ;\
+ .long ( (KS32C_ROMCON_PMC_ROM) \
+ |(KS32C_ROMCON_TPA_5C) \
+ |(KS32C_ROMCON_TACC_3C) \
+ |((0x00000000 >> 16) << KS32C_ROMCON_BASE_shift) \
+ |((0x00000000 >> 16) << KS32C_ROMCON_NEXT_shift)) ;\
+ /* .long KS32C_ROMCON4 */ ;\
+ .long ( (KS32C_ROMCON_PMC_ROM) \
+ |(KS32C_ROMCON_TPA_5C) \
+ |(KS32C_ROMCON_TACC_5C) \
+ |((0x00000000 >> 16) << KS32C_ROMCON_BASE_shift) \
+ |((0x00000000 >> 16) << KS32C_ROMCON_NEXT_shift)) ;\
+ /* .long KS32C_ROMCON5 */ ;\
+ .long ( (KS32C_ROMCON_PMC_ROM) \
+ |(KS32C_ROMCON_TPA_5C) \
+ |(KS32C_ROMCON_TACC_5C) \
+ |((0x00000000 >> 16) << KS32C_ROMCON_BASE_shift) \
+ |((0x00000000 >> 16) << KS32C_ROMCON_NEXT_shift)) ;\
+ /* .long KS32C_DRAMCON0 */ ;\
+ .long ( (KS32C_DRAMCON_RESERVED) \
+ |(KS32C_DRAMCON_CAN_10) \
+ |(KS32C_DRAMCON_TRP_3C) \
+ |(KS32C_DRAMCON_TRC_1C) \
+ |(KS32C_DRAMCON_TCP_1C) \
+ |(KS32C_DRAMCON_TCS_2C) \
+ |(KS32C_DRAMCON_EDO) \
+ |((0x00000000 >> 16) << KS32C_DRAMCON_BASE_shift) \
+ |((0x00400000 >> 16) << KS32C_DRAMCON_NEXT_shift)) ;\
+ /* .long KS32C_DRAMCON1 */ ;\
+ .long ( (KS32C_DRAMCON_RESERVED) \
+ |(KS32C_DRAMCON_CAN_10) \
+ |(KS32C_DRAMCON_TRP_1C) \
+ |(KS32C_DRAMCON_TRC_1C) \
+ |(KS32C_DRAMCON_TCP_1C) \
+ |(KS32C_DRAMCON_TCS_2C) \
+ |(KS32C_DRAMCON_EDO) \
+ |((0x00400000 >> 16) << KS32C_DRAMCON_BASE_shift) \
+ |((0x00800000 >> 16) << KS32C_DRAMCON_NEXT_shift)) ;\
+ /* .long KS32C_DRAMCON2 */ ;\
+ .long ( (KS32C_DRAMCON_RESERVED) \
+ |(KS32C_DRAMCON_CAN_10) \
+ |(KS32C_DRAMCON_TRP_1C) \
+ |(KS32C_DRAMCON_TRC_1C) \
+ |(KS32C_DRAMCON_TCP_1C) \
+ |(KS32C_DRAMCON_TCS_2C) \
+ |((0x00800000 >> 16) << KS32C_DRAMCON_BASE_shift) \
+ |((0x00c00000 >> 16) << KS32C_DRAMCON_NEXT_shift)) ;\
+ /* .long KS32C_DRAMCON3 */ ;\
+ .long ( (KS32C_DRAMCON_RESERVED) \
+ |(KS32C_DRAMCON_CAN_10) \
+ |(KS32C_DRAMCON_TRP_1C) \
+ |(KS32C_DRAMCON_TRC_1C) \
+ |(KS32C_DRAMCON_TCP_1C) \
+ |(KS32C_DRAMCON_TCS_2C) \
+ |((0x00c00000 >> 16) << KS32C_DRAMCON_BASE_shift) \
+ |((0x01000000 >> 16) << KS32C_DRAMCON_NEXT_shift)) ;\
+ /* .long KS32C_REFEXTCON */ ;\
+ .long (((2048+1-(16*CYGNUM_HAL_CPUCLOCK/1000000)) << KS32C_REFEXTCON_RCV_shift) \
+ |(KS32C_REFEXTCON_TCSR_1C) \
+ |(KS32C_REFEXTCON_TCHR_1C) \
+ |(KS32C_REFEXTCON_REN) \
+ |(KS32C_REFEXTCON_VSF) \
+ |(KS32C_REFEXTCON_BASE)) ;\
+ ;\
+ /* Sync DRAM setup */ ;\
+ /* Flash is 16 bit, everything else 32 bit */ ;\
+ /* .long KS32C_EXTDBWTH */ ;\
+40: .long ( (KS32C_EXTDBWTH_16BIT<<KS32C_EXTDBWTH_DSR0_shift) \
+ |(KS32C_EXTDBWTH_16BIT<<KS32C_EXTDBWTH_DSR1_shift) \
+ |(KS32C_EXTDBWTH_32BIT<<KS32C_EXTDBWTH_DSR2_shift) \
+ |(KS32C_EXTDBWTH_32BIT<<KS32C_EXTDBWTH_DSR3_shift) \
+ |(KS32C_EXTDBWTH_32BIT<<KS32C_EXTDBWTH_DSR4_shift) \
+ |(KS32C_EXTDBWTH_32BIT<<KS32C_EXTDBWTH_DSR5_shift) \
+ |(KS32C_EXTDBWTH_32BIT<<KS32C_EXTDBWTH_DSD0_shift) \
+ |(KS32C_EXTDBWTH_32BIT<<KS32C_EXTDBWTH_DSD1_shift) \
+ |(KS32C_EXTDBWTH_32BIT<<KS32C_EXTDBWTH_DSD2_shift) \
+ |(KS32C_EXTDBWTH_32BIT<<KS32C_EXTDBWTH_DSD3_shift) \
+ |(KS32C_EXTDBWTH_32BIT<<KS32C_EXTDBWTH_DSX0_shift) \
+ |(KS32C_EXTDBWTH_32BIT<<KS32C_EXTDBWTH_DSX1_shift) \
+ |(KS32C_EXTDBWTH_32BIT<<KS32C_EXTDBWTH_DSX2_shift) \
+ |(KS32C_EXTDBWTH_32BIT<<KS32C_EXTDBWTH_DSX3_shift) ) ;\
+ /* Flash at 0x01800000-0x01880000, 5 cycles, 7 cycles */ ;\
+ /* .long KS32C_ROMCON0 */ ;\
+ .long ( (KS32C_ROMCON_PMC_ROM) \
+ |(KS32C_ROMCON_TPA_5C) \
+ |(KS32C_ROMCON_TACC_7C) \
+ |((0x01800000 >> 16) << KS32C_ROMCON_BASE_shift) \
+ |((0x01880000 >> 16) << KS32C_ROMCON_NEXT_shift)) ;\
+ /* .long KS32C_ROMCON1 */ ;\
+ .long ( (KS32C_ROMCON_PMC_ROM) \
+ |(KS32C_ROMCON_TPA_5C) \
+ |(KS32C_ROMCON_TACC_5C) \
+ |((0x00000000 >> 16) << KS32C_ROMCON_BASE_shift) \
+ |((0x00000000 >> 16) << KS32C_ROMCON_NEXT_shift)) ;\
+ /* .long KS32C_ROMCON2 */ ;\
+ .long ( (KS32C_ROMCON_PMC_ROM) \
+ |(KS32C_ROMCON_TPA_5C) \
+ |(KS32C_ROMCON_TACC_5C) \
+ |((0x00000000 >> 16) << KS32C_ROMCON_BASE_shift) \
+ |((0x00000000 >> 16) << KS32C_ROMCON_NEXT_shift)) ;\
+ /* .long KS32C_ROMCON3 */ ;\
+ .long ( (KS32C_ROMCON_PMC_ROM) \
+ |(KS32C_ROMCON_TPA_5C) \
+ |(KS32C_ROMCON_TACC_5C) \
+ |((0x00000000 >> 16) << KS32C_ROMCON_BASE_shift) \
+ |((0x00000000 >> 16) << KS32C_ROMCON_NEXT_shift)) ;\
+ /* .long KS32C_ROMCON4 */ ;\
+ .long ( (KS32C_ROMCON_PMC_ROM) \
+ |(KS32C_ROMCON_TPA_5C) \
+ |(KS32C_ROMCON_TACC_5C) \
+ |((0x00000000 >> 16) << KS32C_ROMCON_BASE_shift) \
+ |((0x00000000 >> 16) << KS32C_ROMCON_NEXT_shift)) ;\
+ /* .long KS32C_ROMCON5 */ ;\
+ .long ( (KS32C_ROMCON_PMC_ROM) \
+ |(KS32C_ROMCON_TPA_5C) \
+ |(KS32C_ROMCON_TACC_5C) \
+ |((0x00000000 >> 16) << KS32C_ROMCON_BASE_shift) \
+ |((0x00000000 >> 16) << KS32C_ROMCON_NEXT_shift)) ;\
+ /* .long KS32C_DRAMCON0 */ ;\
+ .long ( (KS32C_DRAMCON_RESERVED) \
+ |(KS32C_DRAMCON_CAN_8) \
+ |(KS32C_DRAMCON_TRP_4C) \
+ |(KS32C_DRAMCON_TRC_2C) \
+ |((0x00000000 >> 16) << KS32C_DRAMCON_BASE_shift) \
+ |((0x00400000 >> 16) << KS32C_DRAMCON_NEXT_shift)) ;\
+ /* .long KS32C_DRAMCON1 */ ;\
+ .long ( (KS32C_DRAMCON_RESERVED) \
+ |(KS32C_DRAMCON_CAN_8) \
+ |(KS32C_DRAMCON_TRP_2C) \
+ |(KS32C_DRAMCON_TRC_2C) \
+ |((0x00400000 >> 16) << KS32C_DRAMCON_BASE_shift) \
+ |((0x00800000 >> 16) << KS32C_DRAMCON_NEXT_shift)) ;\
+ /* .long KS32C_DRAMCON2 */ ;\
+ .long ( (KS32C_DRAMCON_RESERVED) \
+ |(KS32C_DRAMCON_CAN_8) \
+ |(KS32C_DRAMCON_TRP_2C) \
+ |(KS32C_DRAMCON_TRC_2C) \
+ |((0x00800000 >> 16) << KS32C_DRAMCON_BASE_shift) \
+ |((0x00c00000 >> 16) << KS32C_DRAMCON_NEXT_shift)) ;\
+ /* .long KS32C_DRAMCON3 */ ;\
+ .long ( (KS32C_DRAMCON_RESERVED) \
+ |(KS32C_DRAMCON_CAN_8) \
+ |(KS32C_DRAMCON_TRP_2C) \
+ |(KS32C_DRAMCON_TRC_2C) \
+ |((0x00c00000 >> 16) << KS32C_DRAMCON_BASE_shift) \
+ |((0x01000000 >> 16) << KS32C_DRAMCON_NEXT_shift)) ;\
+ /* .long KS32C_REFEXTCON */ ;\
+ .long (((2048+1-(8*CYGNUM_HAL_CPUCLOCK/1000000)) << KS32C_REFEXTCON_RCV_shift) \
+ |(KS32C_REFEXTCON_TRC_4C) \
+ |(KS32C_REFEXTCON_REN) \
+ |(KS32C_REFEXTCON_VSF) \
+ |(KS32C_REFEXTCON_BASE)) ;\
+99: LED 0x82 ;\
+ ldr r3,=0x00000000 ;\
+ str r3,[r3] ;\
+ ldr r4,[r3] ;\
+ cmp r4,r3 ;\
+ beq 15f ;\
+11: LED 0x83 ;\
+ b 11b ;\
+15: LED 0x84
+#else
+#define PLATFORM_SETUP1
+#endif
+
+//-----------------------------------------------------------------------------
+// end of hal_platform_setup.h
+#endif // CYGONCE_HAL_PLATFORM_SETUP_H
diff --git a/ecos/packages/hal/arm/snds/current/include/pkgconf/mlt_arm_snds_ram.h b/ecos/packages/hal/arm/snds/current/include/pkgconf/mlt_arm_snds_ram.h
new file mode 100644
index 0000000..d141df9
--- /dev/null
+++ b/ecos/packages/hal/arm/snds/current/include/pkgconf/mlt_arm_snds_ram.h
@@ -0,0 +1,15 @@
+// eCos memory layout - Tue Feb 29 14:11:30 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 (0x01000000)
+#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 (0x01000000 - (size_t) CYG_LABEL_NAME (__heap1))
diff --git a/ecos/packages/hal/arm/snds/current/include/pkgconf/mlt_arm_snds_ram.ldi b/ecos/packages/hal/arm/snds/current/include/pkgconf/mlt_arm_snds_ram.ldi
new file mode 100644
index 0000000..69affd0
--- /dev/null
+++ b/ecos/packages/hal/arm/snds/current/include/pkgconf/mlt_arm_snds_ram.ldi
@@ -0,0 +1,27 @@
+// eCos memory layout - Tue Feb 29 14:11:30 2000
+
+// This is a generated file - do not edit
+
+#include <cyg/infra/cyg_type.inc>
+
+MEMORY
+{
+ ram : ORIGIN = 0x000000, LENGTH = 0x01000000
+}
+
+SECTIONS
+{
+ SECTIONS_BEGIN
+ SECTION_fixed_vectors (ram, 0x200, LMA_EQ_VMA)
+ SECTION_rom_vectors (ram, 0x00020000, 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)
+ CYG_LABEL_DEFN(__heap1) = ALIGN (0x8);
+ SECTIONS_END
+}
diff --git a/ecos/packages/hal/arm/snds/current/include/pkgconf/mlt_arm_snds_ram.mlt b/ecos/packages/hal/arm/snds/current/include/pkgconf/mlt_arm_snds_ram.mlt
new file mode 100644
index 0000000..7edad74
--- /dev/null
+++ b/ecos/packages/hal/arm/snds/current/include/pkgconf/mlt_arm_snds_ram.mlt
@@ -0,0 +1,13 @@
+version 0
+region ram 0 1000000 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 20000 20000 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 1 0 1 heap1 heap1 !
+section heap1 0 8 0 0 0 0 0 0 !
diff --git a/ecos/packages/hal/arm/snds/current/include/pkgconf/mlt_arm_snds_rom.h b/ecos/packages/hal/arm/snds/current/include/pkgconf/mlt_arm_snds_rom.h
new file mode 100755
index 0000000..19953aa
--- /dev/null
+++ b/ecos/packages/hal/arm/snds/current/include/pkgconf/mlt_arm_snds_rom.h
@@ -0,0 +1,20 @@
+// eCos memory layout - Wed Apr 11 13:49:55 2001
+
+// This is a generated file - do not edit
+
+#ifndef __ASSEMBLER__
+#include <cyg/infra/cyg_type.h>
+#include <stddef.h>
+
+#endif
+#define CYGMEM_REGION_ram (0)
+#define CYGMEM_REGION_ram_SIZE (0x1000000)
+#define CYGMEM_REGION_ram_ATTR (CYGMEM_REGION_ATTR_R | CYGMEM_REGION_ATTR_W)
+#define CYGMEM_REGION_rom (0x1800000)
+#define CYGMEM_REGION_rom_SIZE (0x80000)
+#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 (0x1000000 - (size_t) CYG_LABEL_NAME (__heap1))
diff --git a/ecos/packages/hal/arm/snds/current/include/pkgconf/mlt_arm_snds_rom.ldi b/ecos/packages/hal/arm/snds/current/include/pkgconf/mlt_arm_snds_rom.ldi
new file mode 100644
index 0000000..330992e
--- /dev/null
+++ b/ecos/packages/hal/arm/snds/current/include/pkgconf/mlt_arm_snds_rom.ldi
@@ -0,0 +1,28 @@
+// eCos memory layout - Wed Apr 11 13:49:55 2001
+
+// This is a generated file - do not edit
+
+#include <cyg/infra/cyg_type.inc>
+
+MEMORY
+{
+ ram : ORIGIN = 0, LENGTH = 0x1000000
+ rom : ORIGIN = 0x1800000, LENGTH = 0x80000
+}
+
+SECTIONS
+{
+ SECTIONS_BEGIN
+ SECTION_rom_vectors (rom, 0x1800000, LMA_EQ_VMA)
+ SECTION_text (rom, ALIGN (0x1), 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, 0x20000, FOLLOWING (.gcc_except_table))
+ SECTION_bss (ram, ALIGN (0x4), LMA_EQ_VMA)
+ CYG_LABEL_DEFN(__heap1) = ALIGN (0x8);
+ SECTIONS_END
+}
diff --git a/ecos/packages/hal/arm/snds/current/include/pkgconf/mlt_arm_snds_rom.mlt b/ecos/packages/hal/arm/snds/current/include/pkgconf/mlt_arm_snds_rom.mlt
new file mode 100644
index 0000000..e4b4707
--- /dev/null
+++ b/ecos/packages/hal/arm/snds/current/include/pkgconf/mlt_arm_snds_rom.mlt
@@ -0,0 +1,15 @@
+version 0
+region ram 0 1000000 0 !
+region rom 1800000 80000 1 !
+section fixed_vectors 0 1 0 1 1 0 1 0 20 20 !
+section data 0 1 1 1 1 1 0 0 1000000 bss !
+section bss 0 4 0 1 0 1 0 1 heap1 heap1 !
+section heap1 0 8 0 0 0 0 0 0 !
+section reserved_bootmon 20000 1 0 0 1 1 1 1 1800000 1800000 rom_vectors rom_vectors !
+section rom_vectors 0 8 0 1 0 1 0 1 text text !
+section text 0 1 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 !
diff --git a/ecos/packages/hal/arm/snds/current/include/plf_io.h b/ecos/packages/hal/arm/snds/current/include/plf_io.h
new file mode 100644
index 0000000..b89098c
--- /dev/null
+++ b/ecos/packages/hal/arm/snds/current/include/plf_io.h
@@ -0,0 +1,289 @@
+#ifndef CYGONCE_HAL_PLF_IO_H
+#define CYGONCE_HAL_PLF_IO_H
+//=============================================================================
+//
+// plf_io.h
+//
+// Platform specific registers
+//
+//=============================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jskov
+// Contributors:jskov
+// Date: 2001-03-16
+// Purpose: ARM/KS32C platform specific registers
+// Description:
+// Usage: #include <cyg/hal/plf_io.h>
+//
+//####DESCRIPTIONEND####
+//
+//=============================================================================
+
+// Platform doesn't need address munging even if configures as big-endian
+
+#define HAL_IO_MACROS_NO_ADDRESS_MUNGING
+
+// non-caching by accessing addr|0x04000000
+
+#define KS32C_REG_BASE 0x07ff0000
+
+// -----------------------------------------------------------------------------
+// System config (register bases and caching)
+#define KS32C_SYSCFG (KS32C_REG_BASE + 0x0000)
+
+#define KS32C_SYSCFG_SDM 0x80000000
+#define KS32C_SYSCFG_PD_ID_MASK 0x3c000000
+#define KS32C_SYSCFG_SRBBP_MASK 0x03ff0000 // address/64k
+#define KS32C_SYSCFG_ISBBP_MASK 0x0000ffc0 // a25-a16
+#define KS32C_SYSCFG_CM_MASK 0x00000030
+#define KS32C_SYSCFG_CM_4R_4C 0x00000000
+#define KS32C_SYSCFG_CM_0R_8C 0x00000010
+#define KS32C_SYSCFG_CM_8R_0C 0x00000020
+#define KS32C_SYSCFG_WE 0x00000004 // only KS32C50100?
+#define KS32C_SYSCFG_CE 0x00000002
+#define KS32C_SYSCFG_SE 0x00000001
+
+#define KS32C_CLKCON (KS32C_REG_BASE + 0x3000)
+
+#define KS32C_EXTACON0 (KS32C_REG_BASE + 0x3008)
+#define KS32C_EXTACON1 (KS32C_REG_BASE + 0x300c)
+
+//-----------------------------------------------------------------------------
+// Memory banks data width
+#define KS32C_EXTDBWTH (KS32C_REG_BASE + 0x3010)
+
+#define KS32C_EXTDBWTH_MASK 3
+#define KS32C_EXTDBWTH_8BIT 1
+#define KS32C_EXTDBWTH_16BIT 2
+#define KS32C_EXTDBWTH_32BIT 3
+
+#define KS32C_EXTDBWTH_DSR0_shift 0
+#define KS32C_EXTDBWTH_DSR1_shift 2
+#define KS32C_EXTDBWTH_DSR2_shift 4
+#define KS32C_EXTDBWTH_DSR3_shift 6
+#define KS32C_EXTDBWTH_DSR4_shift 8
+#define KS32C_EXTDBWTH_DSR5_shift 10
+#define KS32C_EXTDBWTH_DSD0_shift 12
+#define KS32C_EXTDBWTH_DSD1_shift 14
+#define KS32C_EXTDBWTH_DSD2_shift 16
+#define KS32C_EXTDBWTH_DSD3_shift 18
+#define KS32C_EXTDBWTH_DSX0_shift 20
+#define KS32C_EXTDBWTH_DSX1_shift 22
+#define KS32C_EXTDBWTH_DSX2_shift 24
+#define KS32C_EXTDBWTH_DSX3_shift 26
+
+// -----------------------------------------------------------------------------
+// Bank locations and timing
+#define KS32C_ROMCON0 (KS32C_REG_BASE + 0x3014)
+#define KS32C_ROMCON1 (KS32C_REG_BASE + 0x3018)
+#define KS32C_ROMCON2 (KS32C_REG_BASE + 0x301c)
+#define KS32C_ROMCON3 (KS32C_REG_BASE + 0x3020)
+#define KS32C_ROMCON4 (KS32C_REG_BASE + 0x3024)
+#define KS32C_ROMCON5 (KS32C_REG_BASE + 0x3028)
+
+#define KS32C_ROMCON_PMC_MASK 0x00000003
+#define KS32C_ROMCON_PMC_ROM 0x00000000
+#define KS32C_ROMCON_PMC_4W_PAGE 0x00000001
+#define KS32C_ROMCON_PMC_8W_PAGE 0x00000002
+#define KS32C_ROMCON_PMC_16W_PAGE 0x00000003
+
+#define KS32C_ROMCON_TPA_MASK 0x0000000c
+#define KS32C_ROMCON_TPA_5C 0x00000000
+#define KS32C_ROMCON_TPA_2C 0x00000004
+#define KS32C_ROMCON_TPA_3C 0x00000008
+#define KS32C_ROMCON_TPA_4C 0x0000000c
+
+#define KS32C_ROMCON_TACC_MASK 0x00000070
+#define KS32C_ROMCON_TACC_DISABLE 0x00000000
+#define KS32C_ROMCON_TACC_2C 0x00000010
+#define KS32C_ROMCON_TACC_3C 0x00000020
+#define KS32C_ROMCON_TACC_4C 0x00000030
+#define KS32C_ROMCON_TACC_5C 0x00000040
+#define KS32C_ROMCON_TACC_6C 0x00000050
+#define KS32C_ROMCON_TACC_7C 0x00000060
+
+#define KS32C_ROMCON_BASE_MASK 0x000ffc00
+#define KS32C_ROMCON_BASE_shift 10
+
+#define KS32C_ROMCON_NEXT_MASK 0x3ff00000
+#define KS32C_ROMCON_NEXT_shift 20
+
+
+
+#define KS32C_DRAMCON0 (KS32C_REG_BASE + 0x302c)
+#define KS32C_DRAMCON1 (KS32C_REG_BASE + 0x3030)
+#define KS32C_DRAMCON2 (KS32C_REG_BASE + 0x3034)
+#define KS32C_DRAMCON3 (KS32C_REG_BASE + 0x3038)
+
+#define KS32C_DRAMCON_CAN_8 0x00000000
+#define KS32C_DRAMCON_CAN_9 0x40000000
+#define KS32C_DRAMCON_CAN_10 0x80000000
+#define KS32C_DRAMCON_CAN_11 0xc0000000
+#define KS32C_DRAMCON_TRP_1C 0x00000000
+#define KS32C_DRAMCON_TRP_2C 0x00000100
+#define KS32C_DRAMCON_TRP_3C 0x00000200
+#define KS32C_DRAMCON_TRP_4C 0x00000300
+#define KS32C_DRAMCON_TRC_1C 0x00000000
+#define KS32C_DRAMCON_TRC_2C 0x00000080
+#define KS32C_DRAMCON_RESERVED 0x00000010
+#define KS32C_DRAMCON_TCP_1C 0x00000000
+#define KS32C_DRAMCON_TCP_2C 0x00000008
+#define KS32C_DRAMCON_TCS_1C 0x00000000
+#define KS32C_DRAMCON_TCS_2C 0x00000002
+#define KS32C_DRAMCON_TCS_3C 0x00000004
+#define KS32C_DRAMCON_TCS_4C 0x00000006
+#define KS32C_DRAMCON_EDO 0x00000001
+
+#define KS32C_DRAMCON_BASE_MASK 0x000ffc00
+#define KS32C_DRAMCON_BASE_shift 10
+
+#define KS32C_DRAMCON_NEXT_MASK 0x3ff00000
+#define KS32C_DRAMCON_NEXT_shift 20
+
+
+#define KS32C_REFEXTCON (KS32C_REG_BASE + 0x303c)
+
+// DRAM
+#define KS32C_REFEXTCON_TCSR_1C 0x00000000
+#define KS32C_REFEXTCON_TCHR_1C 0x00000000
+// SDRAM
+#define KS32C_REFEXTCON_TRC_4C 0x00060000
+// DRAM+SDRAM
+#define KS32C_REFEXTCON_REN 0x00010000
+#define KS32C_REFEXTCON_VSF 0x00008000
+#define KS32C_REFEXTCON_BASE 0x00000360
+
+#define KS32C_REFEXTCON_RCV_shift 21
+
+//-----------------------------------------------------------------------------
+// INTC
+
+#define KS32C_INTMOD (KS32C_REG_BASE + 0x4000)
+#define KS32C_INTPND (KS32C_REG_BASE + 0x4004)
+#define KS32C_INTMSK (KS32C_REG_BASE + 0x4008)
+#define KS32C_INTPRI0 (KS32C_REG_BASE + 0x400c)
+#define KS32C_INTPRI1 (KS32C_REG_BASE + 0x4010)
+#define KS32C_INTPRI2 (KS32C_REG_BASE + 0x4014)
+#define KS32C_INTPRI3 (KS32C_REG_BASE + 0x4018)
+#define KS32C_INTPRI4 (KS32C_REG_BASE + 0x401c)
+#define KS32C_INTPRI5 (KS32C_REG_BASE + 0x4020)
+#define KS32C_INTOFFSET (KS32C_REG_BASE + 0x4024)
+#define KS32C_PNDPRI (KS32C_REG_BASE + 0x4028)
+#define KS32C_PNDTEST (KS32C_REG_BASE + 0x402c)
+#define KS32C_INTOFFSET_FIQ (KS32C_REG_BASE + 0x4030)
+#define KS32C_INTOFFSET_IRQ (KS32C_REG_BASE + 0x4034)
+
+#define KS32C_INTMSK_GLOBAL (1<<21)
+
+//-----------------------------------------------------------------------------
+// PIO
+
+#define KS32C_IOPMOD (KS32C_REG_BASE + 0x5000)
+#define KS32C_IOPCON (KS32C_REG_BASE + 0x5004)
+#define KS32C_IOPDATA (KS32C_REG_BASE + 0x5008)
+
+//-----------------------------------------------------------------------------
+// Timers
+
+#define KS32C_TMOD (KS32C_REG_BASE + 0x6000)
+#define KS32C_TDATA0 (KS32C_REG_BASE + 0x6004)
+#define KS32C_TDATA1 (KS32C_REG_BASE + 0x6008)
+#define KS32C_TCNT0 (KS32C_REG_BASE + 0x600c)
+#define KS32C_TCNT1 (KS32C_REG_BASE + 0x6010)
+
+#define KS32C_TMOD_TE0 0x00000001
+#define KS32C_TMOD_TMD0 0x00000002
+#define KS32C_TMOD_TCLR0 0x00000004
+#define KS32C_TMOD_TE1 0x00000008
+#define KS32C_TMOD_TMD1 0x00000010
+#define KS32C_TMOD_TCLR1 0x00000020
+
+
+//-----------------------------------------------------------------------------
+// UART
+
+#define KS32C_UART0_BASE (KS32C_REG_BASE + 0xd000)
+#define KS32C_UART1_BASE (KS32C_REG_BASE + 0xe000)
+
+#define KS32C_UART_LCON 0x0000
+#define KS32C_UART_CON 0x0004
+#define KS32C_UART_STAT 0x0008
+#define KS32C_UART_TXBUF 0x000c
+#define KS32C_UART_RXBUF 0x0010
+#define KS32C_UART_BRDIV 0x0014
+#define KS32C_UART_BRDCNT 0x0018
+#define KS32C_UART_BRDCLK 0x001c
+
+#define KS32C_UART_LCON_5_DBITS 0x00
+#define KS32C_UART_LCON_6_DBITS 0x01
+#define KS32C_UART_LCON_7_DBITS 0x02
+#define KS32C_UART_LCON_8_DBITS 0x03
+#define KS32C_UART_LCON_1_SBITS 0x00
+#define KS32C_UART_LCON_2_SBITS 0x04
+#define KS32C_UART_LCON_NO_PARITY 0x00
+#define KS32C_UART_LCON_EVEN_PARITY 0x00
+#define KS32C_UART_LCON_ODD_PARITY 0x28
+#define KS32C_UART_LCON_1_PARITY 0x30
+#define KS32C_UART_LCON_0_PARITY 0x38
+#define KS32C_UART_LCON_SCS 0x40
+#define KS32C_UART_LCON_IR 0x80
+
+#define KS32C_UART_CON_RXM_MASK 0x03
+#define KS32C_UART_CON_RXM_INT 0x01
+#define KS32C_UART_CON_TXM_MASK 0x0c
+#define KS32C_UART_CON_TXM_INT 0x08
+#define KS32C_UART_CON_RX_ERR_INT 0x04
+
+
+#define KS32C_UART_STAT_DTR 0x10
+#define KS32C_UART_STAT_RDR 0x20
+#define KS32C_UART_STAT_TXE 0x40 // tx empty
+#define KS32C_UART_STAT_TC 0x80 // tx complete
+
+//-----------------------------------------------------------------------------
+// Cache
+#define KS32C_CACHE_SET0_ADDR 0x14000000
+#define KS32C_CACHE_SET1_ADDR 0x14800000
+#define KS32C_CACHE_TAG_ADDR 0x15000000
+
+//-----------------------------------------------------------------------------
+// Memory map is 1-1
+
+#define CYGARC_PHYSICAL_ADDRESS(_x_) (_x_)
+
+//-----------------------------------------------------------------------------
+// end of plf_io.h
+#endif // CYGONCE_HAL_PLF_IO_H
diff --git a/ecos/packages/hal/arm/snds/current/include/plf_stub.h b/ecos/packages/hal/arm/snds/current/include/plf_stub.h
new file mode 100644
index 0000000..68ed336
--- /dev/null
+++ b/ecos/packages/hal/arm/snds/current/include/plf_stub.h
@@ -0,0 +1,76 @@
+//==========================================================================
+//
+// plf_stub.h
+//
+//
+//
+//==========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//==========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): gthomas
+// Contributors: gthomas, jskov
+// Grant Edwards <grante@visi.com>
+// Date: 2001-07-31
+// Purpose:
+// Description:
+//
+//####DESCRIPTIONEND####
+//
+//========================================================================*/
+
+#ifndef CYGONCE_HAL_PLF_STUB_H
+#define CYGONCE_HAL_PLF_STUB_H
+
+#include <pkgconf/hal.h>
+
+#ifdef CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS
+#include <cyg/infra/cyg_type.h> // CYG_UNUSED_PARAM
+#include <cyg/hal/arm_stub.h> // architecture stub support
+// Define serial stuff.
+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.
+#define HAL_STUB_PLATFORM_INIT() CYG_EMPTY_STATEMENT
+#endif // ifdef CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS
+
+// Reset.
+externC void hal_reset(void);
+#define HAL_STUB_PLATFORM_RESET() hal_reset()
+#define HAL_STUB_PLATFORM_RESET_ENTRY 0
+
+#endif // CYGONCE_HAL_PLF_STUB_H
diff --git a/ecos/packages/hal/arm/snds/current/misc/redboot_RAM.ecm b/ecos/packages/hal/arm/snds/current/misc/redboot_RAM.ecm
new file mode 100644
index 0000000..ee32852
--- /dev/null
+++ b/ecos/packages/hal/arm/snds/current/misc/redboot_RAM.ecm
@@ -0,0 +1,64 @@
+cdl_savefile_version 1;
+cdl_savefile_command cdl_savefile_version {};
+cdl_savefile_command cdl_savefile_command {};
+cdl_savefile_command cdl_configuration { description hardware template package };
+cdl_savefile_command cdl_package { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_component { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_option { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_interface { value_source user_value wizard_value inferred_value };
+
+cdl_configuration eCos {
+ description "" ;
+ hardware snds ;
+ template redboot ;
+ package -hardware CYGPKG_HAL_ARM current ;
+ package -hardware CYGPKG_HAL_ARM_SNDS current ;
+ package -template CYGPKG_HAL current ;
+ package -template CYGPKG_INFRA current ;
+ package -template CYGPKG_REDBOOT current ;
+ package -template CYGPKG_ISOINFRA current ;
+ package -template CYGPKG_LIBC_STRING current ;
+};
+
+cdl_option CYGNUM_HAL_COMMON_INTERRUPTS_STACK_SIZE {
+ user_value 6144
+};
+
+cdl_option CYGDBG_HAL_COMMON_INTERRUPTS_SAVE_MINIMUM_CONTEXT {
+ user_value 0
+};
+
+cdl_option CYGDBG_HAL_COMMON_CONTEXT_SAVE_MINIMUM {
+ inferred_value 0
+};
+
+cdl_option CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS {
+ inferred_value 1
+};
+
+cdl_option CYGHWR_HAL_ARM_BIGENDIAN {
+ user_value 1
+};
+
+cdl_component CYGBLD_BUILD_REDBOOT {
+ user_value 1
+};
+
+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>
+};
+
+
+
diff --git a/ecos/packages/hal/arm/snds/current/misc/redboot_ROM.ecm b/ecos/packages/hal/arm/snds/current/misc/redboot_ROM.ecm
new file mode 100644
index 0000000..c4508d1
--- /dev/null
+++ b/ecos/packages/hal/arm/snds/current/misc/redboot_ROM.ecm
@@ -0,0 +1,72 @@
+cdl_savefile_version 1;
+cdl_savefile_command cdl_savefile_version {};
+cdl_savefile_command cdl_savefile_command {};
+cdl_savefile_command cdl_configuration { description hardware template package };
+cdl_savefile_command cdl_package { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_component { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_option { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_interface { value_source user_value wizard_value inferred_value };
+
+cdl_configuration eCos {
+ description "" ;
+ hardware snds ;
+ template redboot ;
+ package -hardware CYGPKG_HAL_ARM current ;
+ package -hardware CYGPKG_HAL_ARM_SNDS current ;
+ package -template CYGPKG_HAL current ;
+ package -template CYGPKG_INFRA current ;
+ package -template CYGPKG_REDBOOT current ;
+ package -template CYGPKG_ISOINFRA current ;
+ package -template CYGPKG_LIBC_STRING current ;
+};
+
+cdl_option CYGNUM_HAL_COMMON_INTERRUPTS_STACK_SIZE {
+ user_value 6144
+};
+
+cdl_option CYGDBG_HAL_COMMON_INTERRUPTS_SAVE_MINIMUM_CONTEXT {
+ user_value 0
+};
+
+cdl_option CYGDBG_HAL_COMMON_CONTEXT_SAVE_MINIMUM {
+ inferred_value 0
+};
+
+cdl_option CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS {
+ inferred_value 1
+};
+
+cdl_option CYGSEM_HAL_ROM_MONITOR {
+ inferred_value 1
+};
+
+cdl_option CYGHWR_HAL_ARM_BIGENDIAN {
+ user_value 1
+};
+
+cdl_component CYG_HAL_STARTUP {
+ user_value ROM
+};
+
+cdl_component CYGBLD_BUILD_REDBOOT {
+ user_value 1
+};
+
+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>
+};
+
+
+
diff --git a/ecos/packages/hal/arm/snds/current/src/hal_diag.c b/ecos/packages/hal/arm/snds/current/src/hal_diag.c
new file mode 100644
index 0000000..e878fca
--- /dev/null
+++ b/ecos/packages/hal/arm/snds/current/src/hal_diag.c
@@ -0,0 +1,377 @@
+/*=============================================================================
+//
+// hal_diag.c
+//
+// HAL diagnostic output code
+//
+//=============================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jskov
+// Contributors:jskov
+// Date: 2001-03-16
+// Purpose: HAL diagnostic output
+// Description: Implementations of HAL diagnostic output support.
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================*/
+
+#include <pkgconf/hal.h>
+#include CYGBLD_HAL_PLATFORM_H
+
+#include <cyg/infra/cyg_type.h> // base types
+
+#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
+
+#include <cyg/hal/plf_io.h> // SIO registers
+
+#define SIO_BRDDIV (((CYGNUM_HAL_CPUCLOCK/2/16/CYGNUM_HAL_VIRTUAL_VECTOR_CHANNELS_DEFAULT_BAUD)<<4))
+
+//-----------------------------------------------------------------------------
+typedef struct {
+ cyg_uint8* base;
+ cyg_int32 msec_timeout;
+ int isr_vector_rx;
+ int isr_vector_tx;
+} channel_data_t;
+
+//-----------------------------------------------------------------------------
+
+char hextab[] = "0123456789ABCDEF";
+
+void putc_ser(int c)
+{
+ cyg_uint8* base = (cyg_uint8*)KS32C_UART1_BASE;
+ cyg_uint32 status;
+ do {
+ HAL_READ_UINT32(base+KS32C_UART_STAT, status);
+ } while ((status & KS32C_UART_STAT_TXE) == 0);
+
+ HAL_WRITE_UINT32(base+KS32C_UART_TXBUF, c);
+}
+
+void putint(int a)
+{
+ int i;
+ putc_ser('0');
+ putc_ser('x');
+ for (i = 0; i < 8; i++) {
+ putc_ser(hextab[(a>>(28-(4*i))) & 0x0f]);
+ }
+ putc_ser('\r');
+ putc_ser('\n');
+}
+
+void
+init_ser(void)
+{
+ cyg_uint8* base = (cyg_uint8*)KS32C_UART1_BASE;
+
+ // 8-1-no parity.
+ HAL_WRITE_UINT32(base+KS32C_UART_LCON,
+ KS32C_UART_LCON_8_DBITS|KS32C_UART_LCON_1_SBITS|KS32C_UART_LCON_NO_PARITY);
+
+ // Mask interrupts.
+ HAL_INTERRUPT_MASK(CYGNUM_HAL_INTERRUPT_UART0_RX);
+ HAL_INTERRUPT_MASK(CYGNUM_HAL_INTERRUPT_UART0_TX);
+
+ HAL_WRITE_UINT32(base+KS32C_UART_BRDIV, SIO_BRDDIV);
+}
+
+//-----------------------------------------------------------------------------
+
+static void
+cyg_hal_plf_serial_init_channel(void* __ch_data)
+{
+ cyg_uint8* base = ((channel_data_t*)__ch_data)->base;
+
+ // 8-1-no parity.
+ HAL_WRITE_UINT32(base+KS32C_UART_LCON,
+ KS32C_UART_LCON_8_DBITS|KS32C_UART_LCON_1_SBITS|KS32C_UART_LCON_NO_PARITY);
+
+ HAL_WRITE_UINT32(base+KS32C_UART_BRDIV, SIO_BRDDIV);
+
+ // Mask interrupts
+ HAL_INTERRUPT_MASK(((channel_data_t*)__ch_data)->isr_vector_rx);
+ HAL_INTERRUPT_MASK(((channel_data_t*)__ch_data)->isr_vector_tx);
+
+ // Enable RX and TX
+ HAL_WRITE_UINT32(base+KS32C_UART_CON, KS32C_UART_CON_RXM_INT|KS32C_UART_CON_TXM_INT);
+}
+
+void
+cyg_hal_plf_serial_putc(void *__ch_data, char c)
+{
+ cyg_uint8* base = ((channel_data_t*)__ch_data)->base;
+ cyg_uint32 status, ch;
+ CYGARC_HAL_SAVE_GP();
+
+ do {
+ HAL_READ_UINT32(base+KS32C_UART_STAT, status);
+ } while ((status & KS32C_UART_STAT_TXE) == 0);
+
+ ch = (cyg_uint32)c;
+ HAL_WRITE_UINT32(base+KS32C_UART_TXBUF, ch);
+
+ CYGARC_HAL_RESTORE_GP();
+}
+
+static cyg_bool
+cyg_hal_plf_serial_getc_nonblock(void* __ch_data, cyg_uint8* ch)
+{
+ channel_data_t* chan = (channel_data_t*)__ch_data;
+ cyg_uint8* base = chan->base;
+ cyg_uint32 stat;
+ cyg_uint32 c;
+
+ HAL_READ_UINT32(base+KS32C_UART_STAT, stat);
+ if ((stat & KS32C_UART_STAT_RDR) == 0)
+ return false;
+
+ HAL_READ_UINT32(base+KS32C_UART_RXBUF, c);
+ *ch = (cyg_uint8)(c & 0xff);
+
+ HAL_INTERRUPT_ACKNOWLEDGE(chan->isr_vector_rx);
+
+ 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;
+}
+
+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;
+ int ret = 0;
+ CYGARC_HAL_SAVE_GP();
+
+ switch (__func) {
+ case __COMMCTL_IRQ_ENABLE:
+ irq_state = 1;
+ HAL_INTERRUPT_ACKNOWLEDGE(chan->isr_vector_rx);
+ HAL_INTERRUPT_UNMASK(chan->isr_vector_rx);
+ break;
+ case __COMMCTL_IRQ_DISABLE:
+ ret = irq_state;
+ irq_state = 0;
+ HAL_INTERRUPT_MASK(chan->isr_vector_rx);
+ break;
+ case __COMMCTL_DBG_ISR_VECTOR:
+ ret = chan->isr_vector_rx;
+ 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;
+ channel_data_t* chan = (channel_data_t*)__ch_data;
+ cyg_uint32 c;
+ cyg_uint8 ch;
+ cyg_uint32 stat;
+ CYGARC_HAL_SAVE_GP();
+
+ *__ctrlc = 0;
+ HAL_READ_UINT32(chan->base+KS32C_UART_STAT, stat);
+ if ( (stat & KS32C_UART_STAT_RDR) != 0 ) {
+
+ HAL_READ_UINT32(chan->base+KS32C_UART_RXBUF, c);
+ ch = (cyg_uint8)(c & 0xff);
+ if( cyg_hal_is_break( &ch , 1 ) )
+ *__ctrlc = 1;
+
+ res = CYG_ISR_HANDLED;
+ }
+
+ HAL_INTERRUPT_ACKNOWLEDGE(chan->isr_vector_rx);
+
+ CYGARC_HAL_RESTORE_GP();
+ return res;
+}
+
+static channel_data_t ks32c_ser_channels[2] = {
+ { (cyg_uint8*)KS32C_UART0_BASE, 1000, CYGNUM_HAL_INTERRUPT_UART0_RX, CYGNUM_HAL_INTERRUPT_UART0_TX },
+ { (cyg_uint8*)KS32C_UART1_BASE, 1000, CYGNUM_HAL_INTERRUPT_UART1_RX, CYGNUM_HAL_INTERRUPT_UART1_TX }
+};
+
+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);
+
+ // Init channels
+ cyg_hal_plf_serial_init_channel(&ks32c_ser_channels[0]);
+ cyg_hal_plf_serial_init_channel(&ks32c_ser_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, &ks32c_ser_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, &ks32c_ser_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();
+}
+
+//-----------------------------------------------------------------------------
+// LED
+void
+hal_diag_led(int mask)
+{
+#if 0
+ cyg_uint32 l;
+
+ HAL_READ_UINT32(KS32C_IOPDATA, l);
+ l &= ~0x000000f0;
+ l |= (mask & 0xf) << 4;
+ HAL_WRITE_UINT32(KS32C_IOPDATA, l);
+#endif
+}
+
+//-----------------------------------------------------------------------------
+// End of hal_diag.c
diff --git a/ecos/packages/hal/arm/snds/current/src/ks32c5000.h b/ecos/packages/hal/arm/snds/current/src/ks32c5000.h
new file mode 100644
index 0000000..1492aba
--- /dev/null
+++ b/ecos/packages/hal/arm/snds/current/src/ks32c5000.h
@@ -0,0 +1,239 @@
+//==========================================================================
+//
+// ks32c5000.h
+//
+//
+//
+//==========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//==========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): gthomas
+// Contributors: gthomas, jskov
+// Grant Edwards <grante@visi.com>
+// Date: 2001-07-31
+// Purpose:
+// Description:
+//
+//####DESCRIPTIONEND####
+//
+//========================================================================*/
+
+/*
+ * structure definitions for Samsung KS32C5000 peripheral registers
+ */
+
+typedef volatile unsigned int reg;
+
+#define Bit(n) (1<<(n))
+
+
+/*
+ * Interrupt Controller
+ */
+
+typedef struct
+{
+ reg intmod; // Interrupt mode register
+ reg intpnd; // Interrupt pending register
+ reg intmsk; // Interrupt mask register
+ reg intpri0; // Interrupt priority register
+ reg intpri1;
+ reg intpri2;
+ reg intpri3;
+ reg intpri4;
+ reg intpri5;
+ reg intoffset; // Interrupt offset register
+} tInterruptController;
+
+
+/* The following bit masks are for use in the intmod, intpnd, and
+ * intmsk registers
+ */
+
+#define IntMaskExt0 Bit(0)
+#define IntMaskExt1 Bit(1)
+#define IntMaskExt2 Bit(2)
+#define IntMaskExt3 Bit(3)
+#define IntMaskUart0Tx Bit(4)
+#define IntMaskUart0Rx Bit(5)
+#if defined(CYG_HAL_CPUTYPE_KS32C5000A)
+#define IntMaskUart0Err Bit(6)
+#define IntMaskUart1Tx Bit(7)
+#define IntMaskUart1Rx Bit(8)
+#define IntMaskUart1Err Bit(9)
+#define IntMaskDma0 Bit(10)
+#define IntMaskDma1 Bit(11)
+#define IntMaskTimer0 Bit(12)
+#define IntMaskTimer1 Bit(13)
+#define IntMaskHDLCA Bit(14)
+#define IntMaskHDLCB Bit(15)
+#else
+#define IntMaskUart1Tx Bit(6)
+#define IntMaskUart1Rx Bit(7)
+#define IntMaskDma0 Bit(8)
+#define IntMaskDma1 Bit(9)
+#define IntMaskTimer0 Bit(10)
+#define IntMaskTimer1 Bit(11)
+#define IntMaskHDLCATx Bit(12)
+#define IntMaskHDLCARx Bit(13)
+#define IntMaskHDLCBTx Bit(14)
+#define IntMaskHDLCBRx Bit(15)
+#endif
+#define IntMaskEtherBDMATx Bit(16)
+#define IntMaskEtherBDMARx Bit(17)
+#define IntMaskEtherMacTx Bit(18)
+#define IntMaskEtherMacRx Bit(19)
+#define IntMaskI2C Bit(20)
+#define IntMaskGlobal Bit(21)
+
+/*
+ * Timers
+ */
+
+typedef struct
+{
+ reg tmod; // Timer mode
+ reg tdata0; // Timer 0 Data
+ reg tdata1; // Timer 1 Data
+ reg tcnt0; // Timer 0 Count
+ reg tcnt1; // Timer 1 Count
+}tTimers;
+
+#define TimerModeEnable0 Bit(0)
+#define TimerModeToggle0 Bit(1)
+#define TimerModeInitOut0 Bit(2)
+#define TimerModeEnable1 Bit(3)
+#define TimerModeToggle1 Bit(4)
+#define TimerModeInitOut1 Bit(5)
+
+
+/*
+ * UART
+ */
+
+typedef struct
+{
+ reg ulcon; // UART Line Control
+ reg ucon; // UART Control
+ reg ustat; // UART Status
+ reg utxbuf; // UART Tx Buffer
+ reg urxbuf; // UART Rx Buffer
+ reg brdiv; // UART Baud Rate Divisor
+ reg brdcnt; // UART Baud Rate Counter
+ reg brdclk; // UART Baud Rate Clock
+}tUart;
+
+/* UART Line Control */
+
+#define UartLineWordLenMask 0x03
+#define UartLineWordLen5 0
+#define UartLineWordLen6 1
+#define UartLineWordLen7 2
+#define UartLineWordLen8 3
+
+#define UartLineStopMask (1 << 2)
+#define UartLineStop1 (0 << 2)
+#define UartLineStop2 (1 << 2)
+
+#define UartLineParityMask (0x07 << 3)
+#define UartLineParityNone (0 << 3)
+#define UartLineParityOdd (4 << 3)
+#define UartLineParityEven (5 << 3)
+#define UartLineParityMark (6 << 3)
+#define UartLineParitySpace (7 << 3)
+
+#define UartLineInfraRedEnable Bit(7)
+
+
+/* UART Control */
+
+
+#define UartControlRxModeMask 3
+#define UartControlRxModeDisabled 0
+#define UartControlRxModeInterrupt 1
+#define UartControlRxModeDma0 2
+#define UartControlRxModeDma1 3
+
+#define UartControlRxStatusIntEnable Bit(2)
+
+#define UartControlTxModeMask (0x3 <<3)
+#define UartControlTxModeDisable (0 <<3)
+#define UartControlTxModeInterrupt (1 <<3)
+#define UartControlTxModeDma0 (2 <<3)
+#define UartControlTxModeDma1 (3 <<3)
+
+#define UartControlDSR Bit(5)
+
+#define UartControlSendBreak Bit(6)
+
+#define UartControlLoopback Bit(7)
+
+
+/* UART Status */
+
+#define UartStatusRxOverrunError Bit(0)
+#define UartStatusRxParityError Bit(1)
+#define UartStatusRxFrameError Bit(2)
+#define UartStatusRxBreak Bit(3)
+#define UartStatusDTR Bit(4)
+#define UartStatusRxDataAvail Bit(5)
+#define UartStatusTxBufEmpty Bit(6)
+#define UartStatusTxDone Bit(7)
+
+
+
+
+
+// macros for external timing control registers
+
+#define Tcos0(n) (((n)&7)<<0)
+#define Tacs0(n) (((n)&7)<<3)
+#define Tcoh0(n) (((n)&7)<<6)
+#define Tacc0(n) (((n)&7)<<9)
+
+#define Tcos1(n) (((n)&7)<<16)
+#define Tacs1(n) (((n)&7)<<19)
+#define Tcoh1(n) (((n)&7)<<22)
+#define Tacc1(n) (((n)&7)<<25)
+
+#define Tcos2(n) (((n)&7)<<0)
+#define Tacs2(n) (((n)&7)<<3)
+#define Tcoh2(n) (((n)&7)<<6)
+#define Tacc2(n) (((n)&7)<<9)
+
+#define Tcos3(n) (((n)&7)<<16)
+#define Tacs3(n) (((n)&7)<<19)
+#define Tcoh3(n) (((n)&7)<<22)
+#define Tacc3(n) (((n)&7)<<25)
diff --git a/ecos/packages/hal/arm/snds/current/src/snds100_misc.c b/ecos/packages/hal/arm/snds/current/src/snds100_misc.c
new file mode 100644
index 0000000..2f2d2d0
--- /dev/null
+++ b/ecos/packages/hal/arm/snds/current/src/snds100_misc.c
@@ -0,0 +1,285 @@
+//==========================================================================
+//
+// snds100_misc.c
+//
+// HAL misc board support code for Samsung SNDS100
+//
+//==========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//==========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): gthomas
+// Contributors: gthomas, jskov
+// Grant Edwards <grante@visi.com>
+// Date: 2001-07-31
+// Purpose: HAL board support
+// Description: Implementations of HAL board interfaces
+//
+//####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/infra/diag.h> // diag_printf()
+
+#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_cache.h>
+#include <cyg/hal/hal_intr.h> // necessary?
+#include <cyg/hal/hal_if.h> // calling interface
+#include <cyg/hal/hal_misc.h> // helper functions
+#ifdef CYGDBG_HAL_DEBUG_GDB_BREAK_SUPPORT
+#include <cyg/hal/drv_api.h> // HAL ISR support
+#endif
+
+#include "ks32c5000.h"
+#include <cyg/hal/plf_io.h>
+
+//======================================================================
+// Use Timer0 for kernel clock
+
+static cyg_uint32 _period;
+
+#ifdef CYGDBG_HAL_DEBUG_GDB_BREAK_SUPPORT
+static cyg_interrupt abort_interrupt;
+static cyg_handle_t abort_interrupt_handle;
+
+// This ISR is called only for the Abort button interrupt
+static int
+ks32c_abort_isr(cyg_vector_t vector, cyg_addrword_t data, HAL_SavedRegisters *regs)
+{
+ cyg_hal_user_break((CYG_ADDRWORD*)regs);
+ cyg_drv_interrupt_acknowledge(CYGNUM_HAL_INTERRUPT_EXT0);
+ return 0; // No need to run DSR
+}
+#endif
+
+void hal_clock_initialize(cyg_uint32 period)
+{
+ cyg_uint32 tmod;
+
+ // Disable timer 0
+ HAL_READ_UINT32(KS32C_TMOD, tmod);
+ tmod &= ~(KS32C_TMOD_TE0);
+ HAL_WRITE_UINT32(KS32C_TMOD, 0);
+
+ tmod &= ~(KS32C_TMOD_TMD0 | KS32C_TMOD_TCLR0);
+ tmod |= KS32C_TMOD_TE0;
+
+ // Set counter
+ HAL_WRITE_UINT32(KS32C_TDATA0, period);
+
+ // And enable timer
+ HAL_WRITE_UINT32(KS32C_TMOD, tmod);
+
+ _period = period;
+
+#ifdef CYGDBG_HAL_DEBUG_GDB_BREAK_SUPPORT
+ cyg_drv_interrupt_create(CYGNUM_HAL_INTERRUPT_EXT0,
+ 99, // Priority
+ 0, // Data item passed to interrupt handler
+ ks32c_abort_isr,
+ 0,
+ &abort_interrupt_handle,
+ &abort_interrupt);
+ cyg_drv_interrupt_attach(abort_interrupt_handle);
+ cyg_drv_interrupt_unmask(CYGNUM_HAL_INTERRUPT_EXT0);
+#endif
+}
+
+void hal_clock_reset(cyg_uint32 vector, cyg_uint32 period)
+{
+ _period = period;
+}
+
+void hal_clock_read(cyg_uint32 *pvalue)
+{
+ cyg_uint32 value;
+
+ HAL_READ_UINT32(KS32C_TCNT0, value);
+ *pvalue = _period - value;
+}
+
+//======================================================================
+// Interrupt controller stuff
+
+extern volatile tInterruptController ks32c5000_int; // Interrupt controller registers
+extern volatile unsigned long EXTACON0; // Extern access control reg
+extern volatile unsigned long EXTACON1; // Extern access control reg
+extern volatile unsigned long IOPCON; // I/O Port Control reg
+extern volatile unsigned long IOPMOD;
+extern volatile unsigned long SYSCON;
+
+void hal_hardware_init(void)
+{
+ cyg_uint32 intmask, syscfg;
+
+ // Set up eCos/ROM interfaces
+ hal_if_init();
+
+ // Enable cache
+ HAL_READ_UINT32(KS32C_SYSCFG, syscfg);
+ syscfg &= ~KS32C_SYSCFG_CM_MASK;
+ syscfg |= KS32C_SYSCFG_CM_0R_8C|KS32C_SYSCFG_WE;
+ HAL_WRITE_UINT32(KS32C_SYSCFG, syscfg);
+ HAL_UCACHE_INVALIDATE_ALL();
+ HAL_UCACHE_ENABLE();
+
+ // Clear global interrupt mask bit
+ HAL_READ_UINT32(KS32C_INTMSK, intmask);
+ intmask &= ~KS32C_INTMSK_GLOBAL;
+ HAL_WRITE_UINT32(KS32C_INTMSK, intmask);
+}
+
+
+// This routine is called to respond to a hardware interrupt (IRQ). It
+// should interrogate the hardware and return the IRQ vector number.
+
+int hal_IRQ_handler(void)
+{
+ // Do hardware-level IRQ handling
+ cyg_uint32 irq_status;
+ HAL_READ_UINT32(KS32C_INTOFFSET_IRQ, irq_status);
+ irq_status = irq_status / 4;
+ if (CYGNUM_HAL_ISR_MAX >= irq_status)
+ return irq_status;
+ // It's a bit bogus to test for FIQs after IRQs, but we use the
+ // latter more, so don't impose the overhead of checking for FIQs
+ HAL_READ_UINT32(KS32C_INTOFFSET_FIQ, irq_status);
+ irq_status = irq_status / 4;
+ if (CYGNUM_HAL_ISR_MAX >= irq_status)
+ return irq_status;
+ return CYGNUM_HAL_INTERRUPT_NONE;
+}
+
+
+//
+// Interrupt control
+//
+
+void hal_interrupt_mask(int vector)
+{
+ cyg_uint32 mask, old_mask;
+ HAL_READ_UINT32(KS32C_INTMSK, mask);
+ old_mask = mask;
+ mask |= (1<<vector);
+ HAL_WRITE_UINT32(KS32C_INTMSK, mask);
+}
+
+void hal_interrupt_unmask(int vector)
+{
+ cyg_uint32 mask, old_mask;
+ HAL_READ_UINT32(KS32C_INTMSK, mask);
+ old_mask = mask;
+ mask &= ~(1<<vector);
+ HAL_WRITE_UINT32(KS32C_INTMSK, mask);
+}
+
+void hal_interrupt_acknowledge(int vector)
+{
+ HAL_WRITE_UINT32(KS32C_INTPND, (1<<vector));
+}
+
+void hal_interrupt_configure(int vector, int level, int up)
+{
+}
+
+void hal_interrupt_set_level(int vector, int level)
+{
+}
+
+void hal_show_IRQ(int vector, int data, int handler)
+{
+}
+
+// -------------------------------------------------------------------------
+//
+// Delay for some number of micro-seconds
+//
+void hal_delay_us(cyg_int32 usecs)
+{
+ cyg_uint32 count;
+ cyg_uint32 ticks = ((CYGNUM_HAL_RTC_PERIOD*CYGNUM_HAL_RTC_DENOMINATOR)/1000000) * usecs;
+ cyg_uint32 tmod;
+
+ // Disable timer 1
+ HAL_READ_UINT32(KS32C_TMOD, tmod);
+ tmod &= ~(KS32C_TMOD_TE1);
+ HAL_WRITE_UINT32(KS32C_TMOD, tmod);
+
+ tmod &= ~(KS32C_TMOD_TMD1 | KS32C_TMOD_TCLR1);
+ tmod |= KS32C_TMOD_TE1;
+
+ // Clear pending flag
+ HAL_WRITE_UINT32(KS32C_INTPND, (1 << CYGNUM_HAL_INTERRUPT_TIMER1));
+
+ // Set counter
+ HAL_WRITE_UINT32(KS32C_TDATA1, ticks);
+
+ // And enable timer
+ HAL_WRITE_UINT32(KS32C_TMOD, tmod);
+
+ // Wait for timer to underflow. Can't test the timer completion
+ // bit without actually enabling the interrupt. So instead watch
+ // the counter.
+ ticks /= 2; // wait for this threshold
+
+ // Wait till timer counts below threshold
+ do {
+ HAL_READ_UINT32(KS32C_TCNT1, count);
+ } while (count >= ticks);
+ // then wait for it to be reloaded
+ do {
+ HAL_READ_UINT32(KS32C_TCNT1, count);
+ } while (count < ticks);
+
+ // Then disable timer 1 again
+ tmod &= ~KS32C_TMOD_TE1;
+ HAL_WRITE_UINT32(KS32C_TMOD, tmod);
+}
+
+// No way to reset board
+
+void hal_reset(void)
+{
+ CYG_INTERRUPT_STATE old;
+ HAL_DISABLE_INTERRUPTS(old);
+ while (1)
+ ;
+}
diff --git a/ecos/packages/hal/arm/xscale/cores/current/ChangeLog b/ecos/packages/hal/arm/xscale/cores/current/ChangeLog
new file mode 100644
index 0000000..165a544
--- /dev/null
+++ b/ecos/packages/hal/arm/xscale/cores/current/ChangeLog
@@ -0,0 +1,64 @@
+2004-09-23 Knud Woehler <knud.woehler@microplex.de>
+
+ * include/hal_cache.h (HAL_DCACHE_ENABLE): Typo fixed.
+
+2004-09-02 Mark Salter <msalter@redhat.com>
+
+ * include/hal_xscale.h: Add CYGARC_HAL_MMU_OFF_X.
+ * include/hal_mm.h: Add some convenience macros.
+
+2003-02-04 Mark Salter <msalter@redhat.com>
+
+ * cdl/hal_arm_xscale_core.cdl (CYGSEM_HAL_ARM_XSCALE_BTB): New option.
+
+ * include/hal_xscale.h: Make enabling of BTB conditional on
+ CYGSEM_HAL_ARM_XSCALE_BTB.
+
+ * include/hal_cache.h: Support systems using write-through caching
+ which need no DCACHE_FLUSH_AREA.
+
+2002-11-13 Mark Salter <msalter@redhat.com>
+
+ * src/xscale_stub.c (find_watch_address): Squelch compiler warning.
+
+2002-10-01 Jonathan Larmour <jifl@eCosCentric.com>
+
+ * include/hal_cache.h: SA11X0 -> XScale
+
+2002-09-23 Mark Salter <msalter@redhat.com>
+
+ * include/hal_cache.h: Remove mmap-related externs which don't belong
+ here.
+
+2002-09-20 Mark Salter <msalter@redhat.com>
+
+ * src/xscale_stub.c: Fill in holes in logic used to decide which
+ of two watchpoints caused exception.
+
+2002-09-19 Mark Salter <msalter@redhat.com>
+
+ * Initial checkin.
+
+//===========================================================================
+// ####GPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 2 or (at your option) any
+// later version.
+//
+// This program is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the
+// Free Software Foundation, Inc., 51 Franklin Street,
+// Fifth Floor, Boston, MA 02110-1301, USA.
+// -------------------------------------------
+// ####GPLCOPYRIGHTEND####
+//===========================================================================
diff --git a/ecos/packages/hal/arm/xscale/cores/current/cdl/hal_arm_xscale_core.cdl b/ecos/packages/hal/arm/xscale/cores/current/cdl/hal_arm_xscale_core.cdl
new file mode 100644
index 0000000..fc7434e
--- /dev/null
+++ b/ecos/packages/hal/arm/xscale/cores/current/cdl/hal_arm_xscale_core.cdl
@@ -0,0 +1,78 @@
+# ====================================================================
+#
+# hal_arm_xscale_core.cdl
+#
+# Intel XScale architectural HAL package configuration data
+#
+# ====================================================================
+## ####ECOSGPLCOPYRIGHTBEGIN####
+## -------------------------------------------
+## This file is part of eCos, the Embedded Configurable Operating System.
+## Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+##
+## eCos is free software; you can redistribute it and/or modify it under
+## the terms of the GNU General Public License as published by the Free
+## Software Foundation; either version 2 or (at your option) any later
+## version.
+##
+## eCos is distributed in the hope that it will be useful, but WITHOUT
+## ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+## FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+## for more details.
+##
+## You should have received a copy of the GNU General Public License
+## along with eCos; if not, write to the Free Software Foundation, Inc.,
+## 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+##
+## As a special exception, if other files instantiate templates or use
+## macros or inline functions from this file, or you compile this file
+## and link it with other works to produce a work based on this file,
+## this file does not by itself cause the resulting work to be covered by
+## the GNU General Public License. However the source code for this file
+## must still be made available in accordance with section (3) of the GNU
+## General Public License v2.
+##
+## This exception does not invalidate any other reasons why a work based
+## on this file might be covered by the GNU General Public License.
+## -------------------------------------------
+## ####ECOSGPLCOPYRIGHTEND####
+# ====================================================================
+######DESCRIPTIONBEGIN####
+#
+# Author(s): msalter
+# Original data: msalter
+# Contributors:
+# Date: 2002-10-18
+#
+#####DESCRIPTIONEND####
+#
+# ====================================================================
+cdl_package CYGPKG_HAL_ARM_XSCALE_CORE {
+ display "Intel XScale Core Support"
+ parent CYGPKG_HAL_ARM
+ hardware
+ include_dir cyg/hal
+ define_header hal_arm_xscale_core.h
+ description "
+ This HAL variant package provides generic support common
+ to Intel XScale CPU cores. It is also necessary to select
+ a specific target platform and CPU HAL package."
+
+ implements CYGINT_HAL_ARM_ARCH_XSCALE
+
+ compile xscale_misc.c xscale_stub.c
+
+ cdl_option CYGSEM_HAL_ARM_XSCALE_BTB {
+ display "Enable Branch Target Buffer"
+ flavor bool
+ default_value 1
+ description "
+ This option controls whether or not the Branch Target
+ Buffer is enabled. The BTB is used for branch prediction
+ and can have significant performance benefits. Control
+ is provided because there is an errata for A-step 80200
+ CPUS which will lead to problems with thumb branches
+ if the BTB is on. Normal ARM programs are not affected
+ by this errata."
+ }
+}
diff --git a/ecos/packages/hal/arm/xscale/cores/current/include/hal_cache.h b/ecos/packages/hal/arm/xscale/cores/current/include/hal_cache.h
new file mode 100644
index 0000000..073e789
--- /dev/null
+++ b/ecos/packages/hal/arm/xscale/cores/current/include/hal_cache.h
@@ -0,0 +1,409 @@
+#ifndef CYGONCE_HAL_CACHE_H
+#define CYGONCE_HAL_CACHE_H
+
+//=============================================================================
+//
+// hal_cache.h
+//
+// HAL cache control API
+//
+//=============================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): msalter
+// Contributors:
+// Date: 2001-12-03
+// 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> // System-wide configuration info
+#include <cyg/hal/hal_io.h> // DCACHE_FLUSH_AREA
+#include <cyg/infra/cyg_type.h>
+#include CYGBLD_HAL_VAR_H
+#include <cyg/hal/hal_mmu.h>
+
+//-----------------------------------------------------------------------------
+// Cache dimensions
+
+#define HAL_DCACHE_SIZE 0x8000 // Size of data cache in bytes
+#define HAL_DCACHE_LINE_SIZE 32 // Size of a data cache line
+#define HAL_DCACHE_WAYS 32 // Associativity of the cache
+#define HAL_DCACHE_SETS (HAL_DCACHE_SIZE/(HAL_DCACHE_LINE_SIZE*HAL_DCACHE_WAYS))
+
+#define HAL_ICACHE_SIZE 0x8000 // Size of icache in bytes
+#define HAL_ICACHE_LINE_SIZE 32 // Size of ins cache line
+#define HAL_ICACHE_WAYS 32 // Associativity of the cache
+#define HAL_ICACHE_SETS (HAL_ICACHE_SIZE/(HAL_ICACHE_LINE_SIZE*HAL_ICACHE_WAYS))
+
+//-----------------------------------------------------------------------------
+// Global control of Instruction cache
+
+// Enable the instruction cache
+#define HAL_ICACHE_ENABLE() \
+CYG_MACRO_START \
+ asm volatile ( \
+ "mrc p15,0,r1,c1,c0,0;" \
+ "orr r1,r1,#0x1000;" /* enable ICache */ \
+ "mcr p15,0,r1,c1,c0,0;" \
+ : \
+ : \
+ : "r1" /* Clobber list */ \
+ ); \
+CYG_MACRO_END
+
+// Disable the instruction cache (and invalidate it, required semanitcs)
+#define HAL_ICACHE_DISABLE() \
+CYG_MACRO_START \
+ asm volatile ( \
+ "mrc p15,0,r1,c1,c0,0;" \
+ "bic r1,r1,#0x1000;" /* disable Icache */ \
+ "mcr p15,0,r1,c1,c0,0;" \
+ "mcr p15,0,r1,c7,c5,0;" /* invalidate instruction cache */ \
+ "nop;" /* next few instructions may be via cache */ \
+ "nop;" \
+ "nop;" \
+ "nop;" \
+ "nop;" \
+ "nop" \
+ : \
+ : \
+ : "r1" /* Clobber list */ \
+ ); \
+CYG_MACRO_END
+
+// Query the state of the instruction cache
+#define HAL_ICACHE_IS_ENABLED(_state_) \
+CYG_MACRO_START \
+ register cyg_uint32 reg; \
+ asm volatile ("mrc p15,0,%0,c1,c0,0" \
+ : "=r"(reg) \
+ : \
+ ); \
+ (_state_) = (0 != (0x1000 & reg)); /* Bit 12 is ICache enable */ \
+CYG_MACRO_END
+
+// Invalidate the entire cache
+#define HAL_ICACHE_INVALIDATE_ALL() \
+CYG_MACRO_START \
+ asm volatile ( \
+ "mcr p15,0,r1,c7,c5,0;" /* clear instruction cache */ \
+ "mcr p15,0,r1,c8,c5,0;" /* flush I TLB only */ \
+ /* cpuwait */ \
+ "mrc p15,0,r1,c2,c0,0;" /* arbitrary read */ \
+ "mov r1,r1;" \
+ "sub pc,pc,#4;" \
+ "nop;" /* next few instructions may be via cache */ \
+ "nop;" \
+ "nop;" \
+ "nop;" \
+ "nop;" \
+ "nop" \
+ : \
+ : \
+ : "r1" /* Clobber list */ \
+ ); \
+CYG_MACRO_END
+
+// Synchronize the contents of the cache with memory.
+// (which includes flushing out pending writes)
+#define HAL_ICACHE_SYNC() \
+CYG_MACRO_START \
+ HAL_DCACHE_SYNC(); /* ensure data gets to RAM */ \
+ HAL_ICACHE_INVALIDATE_ALL(); /* forget all we know */ \
+CYG_MACRO_END
+
+// Set the instruction cache refill burst size
+//#define HAL_ICACHE_BURST_SIZE(_size_)
+// This feature is not available on the XScale.
+
+// 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_)
+// This feature is not available on the XScale.
+
+// Undo a previous lock operation
+//#define HAL_ICACHE_UNLOCK(_base_, _size_)
+// This feature is not available on the XScale.
+
+// Unlock entire cache
+//#define HAL_ICACHE_UNLOCK_ALL()
+// This feature is not available on the XScale.
+
+//-----------------------------------------------------------------------------
+// Instruction cache line control
+
+// Invalidate cache lines in the given range without writing to memory.
+//#define HAL_ICACHE_INVALIDATE( _base_ , _size_ )
+// This feature is not available on the XScale.
+
+//-----------------------------------------------------------------------------
+// Global control of data cache
+
+// Enable the data cache
+#define HAL_DCACHE_ENABLE() \
+CYG_MACRO_START \
+ asm volatile ( \
+ "mcr p15,0,r1,c7,c10,4;" /* drain write buffer */ \
+ "mrc p15,0,r1,c1,c0,0;" \
+ "orr r1,r1,#0x0007;" /* enable DCache (also ensures the */ \
+ /* MMU and alignment faults are */ \
+ /* enabled) */ \
+ "mcr p15,0,r1,c1,c0,0;" \
+ "mrc p15,0,r1,c1,c0,1;" \
+ "bic r1,r1,#1;" \
+ "mcr p15,0,r1,c1,c0,1;" \
+ : \
+ : \
+ : "r1" /* Clobber list */ \
+ ); \
+CYG_MACRO_END
+
+// Disable the data cache (and invalidate it, required semanitcs)
+#define HAL_DCACHE_DISABLE() \
+CYG_MACRO_START \
+ asm volatile ( \
+ "mrc p15,0,r1,c1,c0,0;" /* disable cache */ \
+ "bic r1,r1,#4;" \
+ "mcr p15,0,r1,c1,c0,0;" \
+ "mrc p15,0,r1,c1,c0,1;" /* disable coalescing */ \
+ "orr r1,r1,#1;" \
+ "mcr p15,0,r1,c1,c0,1;" \
+ "mcr p15,0,r1,c7,c6,0;" /* invalidate data cache */ \
+ /* cpuwait */ \
+ "mrc p15,0,r1,c2,c0,0;" /* arbitrary read */ \
+ "mov r1,r1;" \
+ "sub pc,pc,#4;" \
+ : \
+ : \
+ : "r1" /* Clobber list */ \
+ ); \
+CYG_MACRO_END
+
+// Query the state of the data cache
+#define HAL_DCACHE_IS_ENABLED(_state_) \
+CYG_MACRO_START \
+ register int reg; \
+ asm volatile ("mrc p15,0,%0,c1,c0,0" \
+ : "=r"(reg) \
+ : \
+ /*:*/ \
+ ); \
+ (_state_) = (0 != (4 & reg)); /* Bit 2 is DCache enable */ \
+CYG_MACRO_END
+
+// Flush the entire dcache (and then both TLBs, just in case)
+#define HAL_DCACHE_INVALIDATE_ALL() \
+CYG_MACRO_START /* this macro can discard dirty cache lines. */ \
+ /* this macro can discard dirty cache lines. */ \
+ asm volatile ( \
+ "mcr p15,0,r1,c7,c6,0;" /* invalidate data cache */ \
+ "mcr p15,0,r1,c8,c7,0;" /* flush I+D TLBs */ \
+ : \
+ : \
+ : "r1" /* Clobber list */ \
+ ); \
+CYG_MACRO_END
+
+// DCACHE_FLUSH_AREA is defined if writeback caching is used. Otherwise
+// write-through is assumed.
+#ifdef DCACHE_FLUSH_AREA
+
+// Evict dirty lines from write-back caches
+#define HAL_DCACHE_EVICT() \
+CYG_MACRO_START \
+ /* The best way to evict a dirty line is by using the */ \
+ /* line allocate operation on non-existent memory. */ \
+ asm volatile ( \
+ "mov r0, %0;" /* cache flush region */ \
+ "add r1, r0, #0x8800;" /* 32KB main + 2KB mini cache */ \
+ "667: " \
+ "mcr p15,0,r0,c7,c2,5;" /* allocate a line */ \
+ "add r0, r0, #32;" /* 32 bytes/line */ \
+ "teq r1, r0;" \
+ "bne 667b;" \
+ : \
+ : "i" (DCACHE_FLUSH_AREA) \
+ : "r0","r1" /* Clobber list */ \
+ ); \
+CYG_MACRO_END
+#else
+#define HAL_DCACHE_EVICT()
+#endif
+
+// Synchronize the contents of the cache with memory.
+#define HAL_DCACHE_SYNC() \
+CYG_MACRO_START \
+ HAL_DCACHE_EVICT(); \
+ asm volatile ( \
+ "mcr p15,0,r0,c7,c6,0;" /* invalidate data cache */ \
+ /* cpuwait */ \
+ "mrc p15,0,r1,c2,c0,0;" /* arbitrary read */ \
+ "mov r1,r1;" \
+ "sub pc,pc,#4;" \
+ "mcr p15,0,r0,c7,c10,4;" /* and drain the write buffer */ \
+ /* cpuwait */ \
+ "mrc p15,0,r1,c2,c0,0;" /* arbitrary read */ \
+ "mov r1,r1;" \
+ "sub pc,pc,#4;" \
+ "nop" \
+ : \
+ : \
+ : "r0","r1" /* Clobber list */ \
+ ); \
+CYG_MACRO_END
+
+// Set the data cache refill burst size
+//#define HAL_DCACHE_BURST_SIZE(_size_)
+// This feature is not available on the XScale.
+
+// Set the data cache write mode
+//#define HAL_DCACHE_WRITE_MODE( _mode_ )
+// This feature is not available on the XScale.
+
+#define HAL_DCACHE_WRITETHRU_MODE 0
+#define HAL_DCACHE_WRITEBACK_MODE 1
+
+// Get the current writeback mode - or only writeback mode if fixed
+#ifdef DCACHE_FLUSH_AREA
+#define HAL_DCACHE_QUERY_WRITE_MODE( _mode_ ) CYG_MACRO_START \
+ _mode_ = HAL_DCACHE_WRITEBACK_MODE; \
+CYG_MACRO_END
+#else
+#define HAL_DCACHE_QUERY_WRITE_MODE( _mode_ ) CYG_MACRO_START \
+ _mode_ = HAL_DCACHE_WRITETHRU_MODE; \
+CYG_MACRO_END
+#endif
+
+// 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_)
+// This feature is not available on the XScale.
+
+// Undo a previous lock operation
+//#define HAL_DCACHE_UNLOCK(_base_, _size_)
+// This feature is not available on the XScale.
+
+// Unlock entire cache
+//#define HAL_DCACHE_UNLOCK_ALL()
+// This feature is not available on the XScale.
+
+//-----------------------------------------------------------------------------
+// Data cache line control
+
+// Allocate cache lines for the given address range without reading its
+// contents from memory.
+//#define HAL_DCACHE_ALLOCATE( _base_ , _size_ )
+// This feature is not available on the XScale.
+
+// Write dirty cache lines to memory and invalidate the cache entries
+// for the given address range.
+#define HAL_DCACHE_FLUSH( _base_ , _size_ ) \
+CYG_MACRO_START \
+ HAL_DCACHE_STORE( _base_ , _size_ ); \
+ HAL_DCACHE_INVALIDATE( _base_ , _size_ ); \
+CYG_MACRO_END
+
+// Invalidate cache lines in the given range without writing to memory.
+#define HAL_DCACHE_INVALIDATE( _base_ , _size_ ) \
+CYG_MACRO_START \
+ register int addr, enda; \
+ for ( addr = (~(HAL_DCACHE_LINE_SIZE - 1)) & (int)(_base_), \
+ enda = (int)(_base_) + (_size_); \
+ addr < enda ; \
+ addr += HAL_DCACHE_LINE_SIZE ) \
+ { \
+ asm volatile ( \
+ "mcr p15,0,%0,c7,c6,1;" /* flush entry away */ \
+ : \
+ : "r"(addr) \
+ : "memory" \
+ ); \
+ } \
+CYG_MACRO_END
+
+// Write dirty cache lines to memory for the given address range.
+#define HAL_DCACHE_STORE( _base_ , _size_ ) \
+CYG_MACRO_START \
+ register int addr, enda; \
+ for ( addr = (~(HAL_DCACHE_LINE_SIZE - 1)) & (int)(_base_), \
+ enda = (int)(_base_) + (_size_); \
+ addr < enda ; \
+ addr += HAL_DCACHE_LINE_SIZE ) \
+ { \
+ asm volatile ("mcr p15,0,%0,c7,c10,1;" /* push entry to RAM */ \
+ : \
+ : "r"(addr) \
+ : "memory" \
+ ); \
+ } \
+ /* and also drain the write buffer */ \
+ asm volatile ( \
+ "mov r1,#0;" \
+ "mcr p15,0,r1,c7,c10,4;" \
+ : \
+ : \
+ : "r1", "memory" /* Clobber list */ \
+ ); \
+CYG_MACRO_END
+
+// Preread the given range into the cache with the intention of reading
+// from it later.
+//#define HAL_DCACHE_READ_HINT( _base_ , _size_ )
+// This feature is available on the XScale, but due to tricky
+// coherency issues with the read buffer (see XScale developer's
+// manual) we don't bother to implement it here.
+
+// Preread the given range into the cache with the intention of writing
+// to it later.
+//#define HAL_DCACHE_WRITE_HINT( _base_ , _size_ )
+// This feature is not available on the XScale.
+
+// Allocate and zero the cache lines associated with the given range.
+//#define HAL_DCACHE_ZERO( _base_ , _size_ )
+// This feature is not available on the XScale.
+
+
+//-----------------------------------------------------------------------------
+#endif // ifndef CYGONCE_HAL_CACHE_H
+// End of hal_cache.h
diff --git a/ecos/packages/hal/arm/xscale/cores/current/include/hal_mm.h b/ecos/packages/hal/arm/xscale/cores/current/include/hal_mm.h
new file mode 100644
index 0000000..3fe55c9
--- /dev/null
+++ b/ecos/packages/hal/arm/xscale/cores/current/include/hal_mm.h
@@ -0,0 +1,252 @@
+#ifndef CYGONCE_HAL_MM_H
+#define CYGONCE_HAL_MM_H
+
+//=============================================================================
+//
+// hal_mm.h
+//
+// Intel XScale MM common definitions
+//
+//=============================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002, 2004 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): msalter
+// Contributors: gthomas
+// Date: 2001-12-03
+// Purpose: Intel XScale MM common definitions
+// Description: The macros defined here provide common definitions for
+// memory management initialization.
+// Usage:
+// #include <cyg/hal/hal_mm.h>
+// ...
+//
+//
+//####DESCRIPTIONEND####
+//
+//=============================================================================
+
+#define PTE_SECTION_FLASH ((3 << 10) | (1 << 3) | 2)
+#define PTE_SECTION_RAM ((1 << 12) | (3 << 10) | (1 << 3) | (1 << 2) | 2)
+#define PTE_SECTION_UNCACHED ((3 << 10) | 2)
+
+#ifdef __ASSEMBLER__
+
+// form a first-level section entry
+.macro FL_SECTION_ENTRY base,x,ap,p,d,c,b
+.word (\base << 20) | (\x << 12) | (\ap << 10) | (\p << 9) |\
+ (\d << 5) | (\c << 3) | (\b << 2) | 2
+.endm
+
+// form a first-level page table entry
+.macro FL_PT_ENTRY base,p,d
+// I wanted to use logical operations here, but since I am using symbols later
+// to fill in the parameters, I had to use addition to force the assembler to
+// do it right
+.word \base + (\p << 9) + (\d << 5) + 1
+.endm
+
+// form a second level small page entry
+.macro SL_SMPAGE_ENTRY base,ap3,ap2,ap1,ap0,c,b
+.word (\base << 12) | (\ap3 << 10) | (\ap2 << 8) | (\ap1 << 6) |\
+ (\ap0 << 4) | (\c << 3) | (\b << 2) | 2
+.endm
+
+// form a second level extended small page entry
+.macro SL_XSMPAGE_ENTRY base,x,ap,c,b
+.word (\base << 12) | (\x << 6) | (\ap << 4) | (\c << 3) | (\b << 2) | 3
+.endm
+
+.macro XSCALE_MMU_SECTION abase vbase size cache buff access x p
+ ldr r0, =(0x4000 + (\vbase << 2))
+ ldr r1, =(0x4000 + (\vbase << 2) + (\size << 2))
+ ldr r2, =((\abase << 20) + (\x << 12) + (\access << 10) + (\p << 9) + (\cache << 3) + (\buff << 2) + 2)
+ 981:
+ str r2, [r0], #4
+ add r2, r2, #(1 << 20)
+ cmp r0, r1
+ bne 981b
+.endm
+
+#else
+
+// -------------------------------------------------------------------------
+// MMU initialization:
+//
+// These structures are laid down in memory to define the translation
+// table.
+//
+
+/*
+ * XScale Translation Table Base Bit Masks
+ */
+#define ARM_TRANSLATION_TABLE_MASK 0xFFFFC000
+
+/*
+ * XScale 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 {
+ unsigned int id : 2;
+ unsigned int sbz : 30;
+};
+#define ARM_MMU_FIRST_LEVEL_FAULT_ID 0x0
+
+struct ARM_MMU_FIRST_LEVEL_PAGE_TABLE {
+ unsigned int id : 2;
+ unsigned int imp : 2;
+ unsigned int domain : 4;
+ unsigned int p : 1;
+ unsigned int base_address : 23;
+};
+#define ARM_MMU_FIRST_LEVEL_PAGE_TABLE_ID 0x1
+
+struct ARM_MMU_FIRST_LEVEL_SECTION {
+ unsigned int id : 2;
+ unsigned int b : 1;
+ unsigned int c : 1;
+ unsigned int imp : 1;
+ unsigned int domain : 4;
+ unsigned int p : 1;
+ unsigned int ap : 2;
+ unsigned int x : 1;
+ unsigned int tex : 7;
+ unsigned int base_address : 12;
+};
+#define ARM_MMU_FIRST_LEVEL_SECTION_ID 0x2
+
+struct ARM_MMU_FIRST_LEVEL_RESERVED {
+ unsigned int id : 2;
+ unsigned 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, xbit, pbit) \
+ 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); \
+ desc.section.x = (xbit); \
+ desc.section.p = (pbit); \
+ *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, 0, 0); \
+ } \
+ }
+
+
+#define XSCALE_MMU_SECTION(abase,vbase,size,cache,buff,access, x, p) \
+ { 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, x, p); \
+ } \
+ }
+
+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
+
+/*
+ * Initialization for the Domain Access Control Register
+ */
+#define ARM_ACCESS_DACR_DEFAULT ( \
+ 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) )
+
+#endif // ifdef __ASSEMBLER__
+
+// ------------------------------------------------------------------------
+// XScale extras.
+#define MMU_Control_BTB 0x800
+
+
+#endif // ifndef CYGONCE_HAL_MM_H
+// End of hal_mm.h
+
+
+
+
+
diff --git a/ecos/packages/hal/arm/xscale/cores/current/include/hal_xscale.h b/ecos/packages/hal/arm/xscale/cores/current/include/hal_xscale.h
new file mode 100644
index 0000000..18eaaf0
--- /dev/null
+++ b/ecos/packages/hal/arm/xscale/cores/current/include/hal_xscale.h
@@ -0,0 +1,150 @@
+/*=============================================================================
+//
+// hal_xscale.h
+//
+// XScale Core I/O module support.
+//
+//=============================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): msalter
+// Contributors: msalter
+// Date: 2002-10-18
+// Purpose:
+// Description: XScale core I/O modules support.
+// Usage: #include <cyg/hal/hal_xscale.h>
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================*/
+#ifndef CYGONCE_HAL_ARM_XSCALE_HAL_XSCALE_H
+#define CYGONCE_HAL_ARM_XSCALE_HAL_XSCALE_H
+
+#include <pkgconf/system.h>
+#include <pkgconf/hal_arm_xscale_core.h>
+
+#ifdef __ASSEMBLER__
+ // Useful CPU macros
+
+ // Delay a bit
+ .macro DELAY_FOR cycles, reg0
+ ldr \reg0, =\cycles
+ subs \reg0, \reg0, #1
+ subne pc, pc, #0xc
+ .endm
+
+ // wait for coprocessor write complete
+ .macro CPWAIT reg
+ mrc p15,0,\reg,c2,c0,0
+ mov \reg,\reg
+ sub pc,pc,#4
+ .endm
+
+ // Enable the BTB
+ .macro BTB_INIT reg
+ mrc p15, 0, \reg, c1, c0, 0
+#ifdef CYGSEM_HAL_ARM_XSCALE_BTB
+ orr \reg, \reg, #MMU_Control_BTB
+#else
+ bic \reg, \reg, #MMU_Control_BTB
+#endif
+ mcr p15, 0, \reg, c1, c0, 0
+ CPWAIT \reg
+ .endm
+#else
+static inline void CPWAIT(void) {
+ cyg_uint32 tmp;
+ asm volatile ("mrc p15,0,%0,c2,c0,0\n"
+ "mov %0,%0\n"
+ "sub pc,pc,#4" : "=r" (tmp));
+}
+#endif
+
+#define __CYGARC_GET_CTLREG \
+ " mrc p15,0,r0,c1,c0,0\n"
+
+#define __CYGARC_CLR_MMU_BITS \
+ " bic r0,r0,#0x05\n"
+
+#ifdef CYGHWR_HAL_ARM_BIGENDIAN
+#define __CYGARC_CLR_MMU_BITS_X \
+ " bic r0,r0,#0x85\n"
+#else
+#define __CYGARC_CLR_MMU_BITS_X \
+ " bic r0,r0,#0x05\n" \
+ " orr r0,r0,#0x80\n"
+#endif
+
+#define __CYGARC_SET_CTLREG(__paddr__) \
+ " b 99f\n" \
+ " .p2align 5\n" \
+ "99:\n" \
+ " mcr p15,0,r0,c1,c0,0\n" \
+ " mrc p15,0,r0,c2,c0,0\n" \
+ " mov r0,r0\n" \
+ " sub pc,pc,#4\n" \
+ " mov pc," #__paddr__ "\n"
+
+
+// Override the default MMU off code. This is intended
+// to be included in an inline asm statement.
+#define CYGARC_HAL_MMU_OFF(__paddr__) \
+ __CYGARC_GET_CTLREG \
+ __CYGARC_CLR_MMU_BITS \
+ __CYGARC_SET_CTLREG(__paddr__)
+
+#define CYGARC_HAL_MMU_OFF_X(__paddr__) \
+ __CYGARC_GET_CTLREG \
+ __CYGARC_CLR_MMU_BITS_X \
+ __CYGARC_SET_CTLREG(__paddr__)
+
+#ifdef __ASSEMBLER__
+
+#define REG8(a,b) (b)
+#define REG16(a,b) (b)
+#define REG32(a,b) (b)
+
+#else /* __ASSEMBLER__ */
+
+#define REG8(a,b) ((volatile unsigned char *)((a)+(b)))
+#define REG16(a,b) ((volatile unsigned short *)((a)+(b)))
+#define REG32(a,b) ((volatile unsigned int *)((a)+(b)))
+
+extern void hal_xscale_core_init(void);
+#endif /* __ASSEMBLER__ */
+
+//--------------------------------------------------------------
+#endif // CYGONCE_HAL_ARM_XSCALE_HAL_XSCALE_H
+// EOF hal_xscale.h
diff --git a/ecos/packages/hal/arm/xscale/cores/current/include/plf_stub.h b/ecos/packages/hal/arm/xscale/cores/current/include/plf_stub.h
new file mode 100644
index 0000000..bc849cf
--- /dev/null
+++ b/ecos/packages/hal/arm/xscale/cores/current/include/plf_stub.h
@@ -0,0 +1,94 @@
+#ifndef CYGONCE_HAL_PLF_STUB_H
+#define CYGONCE_HAL_PLF_STUB_H
+
+//=============================================================================
+//
+// plf_stub.h
+//
+// Platform header for GDB stub support.
+//
+//=============================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): gthomas
+// Contributors:jskov
+// Travis C. Furrer <furrer@mit.edu>
+// Date: 2000-05-08
+// Purpose: Platform HAL stub support for Intel XScale boards.
+// Usage: #include <cyg/hal/plf_stub.h>
+//
+//####DESCRIPTIONEND####
+//
+//=============================================================================
+
+#include <pkgconf/hal.h>
+#include <cyg/infra/cyg_type.h> // CYG_UNUSED_PARAM
+#include CYGBLD_HAL_VAR_H // registers
+#include <cyg/hal/hal_io.h> // IO macros
+#include <cyg/hal/hal_intr.h> // Interrupt macros
+#include <cyg/hal/arm_stub.h> // architecture stub support
+
+#ifdef CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS
+//----------------------------------------------------------------------------
+// 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.
+#define HAL_STUB_PLATFORM_INIT() CYG_EMPTY_STATEMENT
+
+extern int cyg_hal_plf_hw_breakpoint(int setflag, void *addr, int len);
+extern int cyg_hal_plf_hw_watchpoint(int setflag, void *addr, int len, int type);
+extern int cyg_hal_plf_is_stopped_by_hardware(void **paddr);
+
+#define HAL_STUB_HW_BREAKPOINT_LIST_SIZE 2
+#define HAL_STUB_HW_WATCHPOINT_LIST_SIZE 2
+
+#define HAL_STUB_HW_BREAKPOINT(f,a,l) cyg_hal_plf_hw_breakpoint((f),(a),(l))
+#define HAL_STUB_HW_WATCHPOINT(f,a,l,t) cyg_hal_plf_hw_watchpoint((f),(a),(l),(t))
+#define HAL_STUB_IS_STOPPED_BY_HARDWARE(p) cyg_hal_plf_is_stopped_by_hardware(&(p))
+
+#endif // ifdef CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS
+
+//-----------------------------------------------------------------------------
+#endif // CYGONCE_HAL_PLF_STUB_H
+// End of plf_stub.h
diff --git a/ecos/packages/hal/arm/xscale/cores/current/src/xscale_misc.c b/ecos/packages/hal/arm/xscale/cores/current/src/xscale_misc.c
new file mode 100644
index 0000000..93552f8
--- /dev/null
+++ b/ecos/packages/hal/arm/xscale/cores/current/src/xscale_misc.c
@@ -0,0 +1,74 @@
+//==========================================================================
+//
+// xscale_misc.c
+//
+// HAL misc support code for Intel XScale cores.
+//
+//==========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//==========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): msalter
+// Contributors: msalter
+// Date: 2002-10-18
+// Purpose: XScale core HAL support
+// Description: Implementations of HAL interfaces
+//
+//####DESCRIPTIONEND####
+//
+//========================================================================*/
+
+#include <pkgconf/hal.h>
+#include <pkgconf/system.h>
+#include CYGBLD_HAL_PLATFORM_H
+#include CYGHWR_MEMORY_LAYOUT_H
+
+void
+hal_xscale_core_init(void)
+{
+ // Initialize debug control unit to sane state
+ asm volatile ("mov r0,#0\n"
+ "mcr p15,0,r0,c14,c8,0\n" // ibcr0
+ "mcr p15,0,r0,c14,c9,0\n" // ibcr1
+ "mcr p15,0,r0,c14,c4,0\n" // dbcon
+ "mov r0,#0x80000000\n"
+ "mcr p14,0,r0,c10,c0,0\n" // dcsr
+ : /* no outputs */
+ : /* no inputs */
+ : "r0" );
+}
+
+/*------------------------------------------------------------------------*/
+// EOF xscale_misc.c
+
diff --git a/ecos/packages/hal/arm/xscale/cores/current/src/xscale_stub.c b/ecos/packages/hal/arm/xscale/cores/current/src/xscale_stub.c
new file mode 100644
index 0000000..b180f87
--- /dev/null
+++ b/ecos/packages/hal/arm/xscale/cores/current/src/xscale_stub.c
@@ -0,0 +1,783 @@
+//==========================================================================
+//
+// xscale_stub.c
+//
+// HAL stub support code for Intel XScale cores.
+//
+//==========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//==========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): msalter
+// Contributors: msalter
+// Date: 2002-10-18
+// Purpose: XScale core stub support
+// Description: Implementations of HW debugging support.
+//
+//####DESCRIPTIONEND####
+//
+//========================================================================*/
+
+#include <pkgconf/hal.h>
+#include <pkgconf/system.h>
+#include <cyg/infra/diag.h>
+#include <cyg/hal/hal_stub.h> // Stub macros
+
+#ifdef CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS
+/*------------------------------------------------------------------------*/
+// HW Debug support
+
+// Define this to support two watchpoints. If not defined, one watchpoint with
+// a power of two range is supported.
+#define USE_TWO_WATCHPOINTS 1
+
+static inline void set_ibcr0(unsigned x)
+{
+ asm volatile ("mcr p15,0,%0,c14,c8,0" : : "r"(x) );
+}
+
+static inline unsigned get_ibcr0(void)
+{
+ unsigned x;
+ asm volatile ("mrc p15,0,%0,c14,c8,0" : "=r"(x) : );
+ return x;
+}
+
+static inline void set_ibcr1(unsigned x)
+{
+ asm volatile ("mcr p15,0,%0,c14,c9,0" : : "r"(x) );
+}
+
+static inline unsigned get_ibcr1(void)
+{
+ unsigned x;
+ asm volatile ("mrc p15,0,%0,c14,c9,0" : "=r"(x) : );
+ return x;
+}
+
+static inline void set_dbr0(unsigned x)
+{
+ asm volatile ("mcr p15,0,%0,c14,c0,0" : : "r"(x) );
+}
+
+static inline unsigned get_dbr0(void)
+{
+ unsigned x;
+ asm volatile ("mrc p15,0,%0,c14,c0,0" : "=r"(x) : );
+ return x;
+}
+
+static inline void set_dbr1(unsigned x)
+{
+ asm volatile ("mcr p15,0,%0,c14,c3,0" : : "r"(x) );
+}
+
+static inline unsigned get_dbr1(void)
+{
+ unsigned x;
+ asm volatile ("mrc p15,0,%0,c14,c3,0" : "=r"(x) : );
+ return x;
+}
+
+static inline void set_dbcon(unsigned x)
+{
+ asm volatile ("mcr p15,0,%0,c14,c4,0" : : "r"(x) );
+}
+
+static inline unsigned get_dbcon(void)
+{
+ unsigned x;
+ asm volatile ("mrc p15,0,%0,c14,c4,0" : "=r"(x) : );
+ return x;
+}
+
+static inline void set_dcsr(unsigned x)
+{
+ asm volatile ("mcr p14,0,%0,c10,c0,0" : : "r"(x) );
+}
+
+static inline unsigned get_dcsr(void)
+{
+ unsigned x;
+ asm volatile ("mrc p14,0,%0,c10,c0,0" : "=r"(x) : );
+ return x;
+}
+
+int cyg_hal_plf_hw_breakpoint(int setflag, void *vaddr, int len)
+{
+ unsigned int addr = (unsigned)vaddr;
+
+ if (setflag) {
+ if (!(get_ibcr0() & 1))
+ set_ibcr0(addr | 1);
+ else if (!(get_ibcr1() & 1))
+ set_ibcr1(addr | 1);
+ else
+ return -1;
+ } else {
+ unsigned x = (addr | 1);
+ if (get_ibcr0() == x)
+ set_ibcr0(0);
+ else if (get_ibcr1() == x)
+ set_ibcr1(0);
+ else
+ return -1;
+ }
+
+ return 0;
+}
+
+#define WATCH_MODE_NONE 0
+#define WATCH_MODE_WRITE 1
+#define WATCH_MODE_ACCESS 2
+#define WATCH_MODE_READ 3
+
+#ifndef HAL_STUB_HW_WATCHPOINT_LIST_SIZE
+#error
+#endif
+
+int cyg_hal_plf_hw_watchpoint(int setflag, void *vaddr, int len, int type)
+{
+ unsigned int mode, addr = (unsigned)vaddr;
+ unsigned dbcon = get_dbcon();
+#if HAL_STUB_HW_WATCHPOINT_LIST_SIZE == 1
+ unsigned int mask, bit_nr;
+
+ mask = 0x80000000;
+ bit_nr = 31;
+ while (bit_nr) {
+ if (len & mask)
+ break;
+ bit_nr--;
+ mask >>= 1;
+ }
+ mask = ~(0xffffffff << bit_nr);
+#endif
+
+ if (setflag) {
+ /* set a watchpoint */
+ if (type == 2)
+ mode = WATCH_MODE_WRITE; // break on write
+ else if (type == 3)
+ mode = WATCH_MODE_READ; // break on read
+ else if (type == 4)
+ mode = WATCH_MODE_ACCESS; // break on any access
+ else
+ return 1;
+
+#if HAL_STUB_HW_WATCHPOINT_LIST_SIZE == 1
+ mode |= 0x100;
+#endif
+
+ if (!(dbcon & 3)) {
+ set_dbr0(addr);
+#if HAL_STUB_HW_WATCHPOINT_LIST_SIZE == 1
+ set_dbr1(mask);
+#endif
+ set_dbcon(dbcon | mode);
+#if HAL_STUB_HW_WATCHPOINT_LIST_SIZE == 2
+ } else if (!(dbcon & (3 << 2))) {
+ set_dbr1(addr);
+ set_dbcon(dbcon | (mode << 2));
+#endif
+ } else
+ return 1;
+
+ } else {
+ /* clear a watchpoint */
+ if ((dbcon & 3) && get_dbr0() == addr)
+ set_dbcon(dbcon & ~3);
+#if HAL_STUB_HW_WATCHPOINT_LIST_SIZE == 2
+ else if ((dbcon & (3 << 2)) && get_dbr1() == addr)
+ set_dbcon(dbcon & ~(3 << 2));
+#endif
+ else
+ return 1;
+ }
+ return 0;
+}
+
+#if HAL_STUB_HW_WATCHPOINT_LIST_SIZE == 2
+
+// The XScale hardware does not provide a way of positively identinfying
+// which of the two watchpoints triggered and exception. The following
+// code makes a best effort at determining this by decoding the opcode
+// of the instruction which caused the watchpoint trigger. It is *not*
+// 100% reliable.
+
+// Some bits common to most ld/st instructions.
+#define I_bit (1 << 25)
+#define P_bit (1 << 24)
+#define U_bit (1 << 23)
+#define B_bit (1 << 22)
+#define W_bit (1 << 21)
+#define L_bit (1 << 20)
+
+// Return non-zero if opcode at given PC is a store instruction for
+// purposes of triggering watchpoints.
+static int
+is_store_insn(unsigned pc)
+{
+ unsigned opcode = *(unsigned *)pc;
+
+ if ((opcode & 0x0fb00ff0) == 0x01000090) {
+ // SWP xxxx 0001 0B00 _Rn_ _Rd_ 0000 1001 _Rm_
+ return 1;
+ }
+
+ if ((opcode & 0x0c000000) == 0x04000000) {
+ // LDR/STR xxxx 010P UBWL _Rn_ _Rd_ iiii iiii iiii
+ // LDR/STR xxxx 011P UBWL _Rn_ _Rd_ ssss sSh0 _Rm_
+ // Addressing mode 2, Load/Store word or unsigned byte
+ return (opcode & L_bit) == 0;
+ }
+
+ if ((opcode & 0x0e000090) == 0x00000090 &&
+ (opcode & 0x00000060) &&
+ ((opcode & (1 << 22)) || (opcode & 0x00000f00) == 0) &&
+ ((opcode & (P_bit | W_bit)) != W_bit)) {
+ // LDR/STR xxxx 000P U1WL _Rn_ _Rd_ iiii 1SH1 iiii
+ // LDR/STR xxxx 000P U0WL _Rn_ _Rd_ 0000 1SH1 _Rm_
+ // Addressing Mode 3, Load/Store halfword, load signed byte
+ return (opcode & L_bit) == 0;
+ }
+
+ if ((opcode & 0x0e000000) == 0x08000000) {
+ // LDM/STM xxxx 100P USWL _Rn_ rrrr rrrr rrrr rrrr
+ return (opcode & L_bit) == 0;
+ }
+
+ if ((opcode & 0x0e000000) == 0x0c000000) {
+ // LDC/STC xxxx 110P UNWL _Rn_ CRd_ CP#_ iiii iiii
+ return (opcode & L_bit) == 0;
+ }
+
+ return 0;
+}
+
+static int
+is_thumb_store_insn(unsigned pc)
+{
+ unsigned short opcode = *(unsigned short *)pc;
+
+ opcode &= 0xfe00;
+
+ if (opcode == 0xb400)
+ return 1; // PUSH
+ if (opcode == 0x5000)
+ return 1; // STR Rd, [Rn, Rm]
+ if (opcode == 0x5400)
+ return 1; // STRB Rd, [Rn, Rm]
+ if (opcode == 0x5200)
+ return 1; // STRH Rd, [Rn, Rm]
+
+ opcode &= 0xf800;
+ if (opcode == 0xc000)
+ return 1; // STM
+ if (opcode == 0x6000)
+ return 1; // STR Rd, [Rn, #5bit_offset]
+ if (opcode == 0x9000)
+ return 1; // STR Rd, [SP, #8bit_offset]
+ if (opcode == 0x7000)
+ return 1; // STRB Rd, [Rn, #5bit_offset]
+ if (opcode == 0x8000)
+ return 1; // STRH Rd, [Rn, #5bit_offset]
+
+ return 0;
+}
+
+// Return non-zero if given waddr matches an access at addr.
+static int
+waddr_match(unsigned waddr, unsigned addr, int size)
+{
+ if (addr <= waddr && waddr < (addr + size))
+ return 1;
+ return 0;
+}
+
+// Return non-zero if given value matches value at watchpoint address.
+static int
+wval_match(unsigned waddr, unsigned val, int size)
+{
+ unsigned wval = *(unsigned *)(waddr & ~3);
+ int i;
+
+ if (size == 4)
+ return (wval == val);
+ if (size == 2) {
+ val &= 0xffff;
+ return ((wval & 0xffff) == val || ((wval >> 16) == val));
+ }
+ if (size == 1) {
+ val &= 0xff;
+ for (i = 0; i < 4; i++) {
+ if ((wval & 0xff) == val)
+ return 1;
+ wval >>= 8;
+ }
+ }
+ return 0;
+}
+
+static char _sztab[8] = { 4, 2, 1, 1, 4, 2, 1, 2 };
+
+// Given the watch addresses and watch modes for each of the enabled
+// watchpoints, figure out which one triggered the current exception.
+static unsigned
+find_thumb_watch_address(unsigned wa0, int mode0, unsigned wa1, int mode1)
+{
+ unsigned pc = get_register(PC) - 4;
+ unsigned short opcode = *(unsigned short *)pc;
+ unsigned short opcode_f8, opcode_fe;
+ unsigned val, wd0, wd1, addr = 0;
+ int is_store, use_val, i, offset, size, Rn, Rd, Rm;
+
+ opcode_f8 = opcode & 0xf800;
+ opcode_fe = opcode & 0xfe00;
+
+ size = 0;
+ is_store = 0;
+ val = use_val = 0;
+
+ switch (opcode_f8) {
+ case 0xc000: // STMIA Rn!, <list>
+ is_store = 1;
+ case 0xc800: // LDMIA Rn!, <list>
+ Rn = (opcode >> 8) & 7;
+ is_store = (opcode & 0x800) == 0;
+ for (i = 0; i < 8; i++)
+ if (opcode & (1 << i))
+ size += 4;
+ if (!is_store && (opcode & (1 << Rn))) {
+ // We can't reconstruct address from opcode because base
+ // was destroyed. Best we can do is try to match data at
+ // watchpoint addresses with data in one of the registers.
+ wd0 = *(unsigned *)(wa0 & ~3);
+ wd1 = *(unsigned *)(wa1 & ~3);
+ if (wd0 != wd1) {
+ for (i = size = 0; i < 8; i++) {
+ if (opcode & (1 << i)) {
+ val = get_register(i);
+ if (val == wd0)
+ return wa0;
+ else if (val == wd1)
+ return wa1;
+ }
+ }
+ }
+ return wa0; // 50% chance of being right
+ } else
+ addr = get_register(Rn) - size;
+ break;
+ case 0x6000: // STR Rd, [Rn, #5bit]
+ case 0x7000: // STRB Rd, [Rn, #5bit]
+ case 0x8000: // STRH Rd, [Rn, #5bit]
+ is_store = 1;
+ case 0x6800: // LDR Rd, [Rn, #5bit]
+ case 0x7800: // LDRB Rd, [Rn, #5bit]
+ case 0x8800: // LDRH Rd, [Rn, #5bit]
+ Rd = opcode & 7;
+ Rn = (opcode >> 3) & 7;
+ if ((opcode & 0xf000) == 0x6000)
+ size = 4;
+ else if ((opcode & 0xf000) == 0x8000)
+ size = 2;
+ else
+ size = 1;
+ if (!is_store && Rd == Rn) {
+ // We can't reconstruct address from opcode because base
+ // or offset register was destroyed. Best we can do is try
+ // to match data at watchpoint addresses with data in Rd.
+ use_val = 1;
+ val = get_register(Rd);
+ } else {
+ offset = ((opcode >> 6) & 0x1f) * size;
+ addr = get_register(Rn) + offset;
+ }
+ break;
+ case 0x4800: // LDR Rd, [PC, #8bit]
+ size = 4;
+ addr = pc + 4 + ((opcode & 0xff) * 4);
+ break;
+ case 0x9000: // STR Rd, [SP, #8bit]
+ is_store = 1;
+ case 0x9800: // LDR Rd, [SP, #8bit]
+ size = 4;
+ addr = get_register(SP) + ((opcode & 0xff) * 4);
+ break;
+ default:
+ switch (opcode_fe) {
+ case 0x5000: // STR Rd, [Rn, Rm]
+ case 0x5400: // STRB Rd, [Rn, Rm]
+ case 0x5200: // STRH Rd, [Rn, Rm]
+ is_store = 1;
+ case 0x5600: // LDRSB Rd, [Rn, Rm]
+ case 0x5800: // LDR Rd, [Rn, Rm]
+ case 0x5c00: // LDRB Rd, [Rn, Rm]
+ case 0x5a00: // LDRH Rd, [Rn, Rm]
+ case 0x5e00: // LDRSH Rd, [Rn, Rm]
+ Rd = opcode & 7;
+ Rn = (opcode >> 3) & 7;
+ Rm = (opcode >> 6) & 7;
+ size = _sztab[(opcode >> 9) & 7];
+ if (!is_store && (Rd == Rn || Rd == Rm)) {
+ // We can't reconstruct address from opcode because base
+ // or offset register was destroyed. Best we can do is try
+ // to match data at watchpoint addresses with data in Rd.
+ use_val = 1;
+ val = get_register(Rd);
+ } else
+ addr = Rn + Rm;
+ break;
+ case 0xb400: // PUSH
+ is_store = 1;
+ case 0xbc00: // POP
+ for (i = 0; i < 9; i++)
+ if (opcode & (1 << i))
+ size += 4;
+ addr = get_register(SP);
+ if (!is_store)
+ addr -= size;
+ break;
+ }
+ break;
+ }
+ if (use_val) {
+ // We can read from watchpoint addresses and compare against
+ // whatever is in the Rd from a load. This is not perfect,
+ // but its the best we can do.
+ if (wval_match(wa0, val, size))
+ return wa0;
+ if (wval_match(wa1, val, size))
+ return wa1;
+ } else if (size) {
+ if (waddr_match(wa0, addr, size))
+ return wa0;
+ if (waddr_match(wa1, addr, size))
+ return wa1;
+ }
+ return wa0; // should never happen, but return valid address
+}
+
+// Given the watch addresses and watch modes for each of the enabled
+// watchpoints, figure out which one triggered the current exception.
+static unsigned
+find_watch_address(unsigned wa0, int mode0, unsigned wa1, int mode1)
+{
+ unsigned pc = get_register(PC) - 4;
+ unsigned cpsr = get_register(PS);
+ unsigned opcode, Rn, Rd, Rm, base, addr, val = 0, wd0, wd1;
+ int is_store, use_val, i, offset, shift, size;
+
+ if (cpsr & CPSR_THUMB_ENABLE)
+ is_store = is_thumb_store_insn(pc);
+ else
+ is_store = is_store_insn(pc);
+
+ // First try the easy cases where all we need to know is whether or
+ // not the instruction is a load or store.
+ if ((mode0 == WATCH_MODE_READ && mode1 == WATCH_MODE_WRITE) ||
+ (mode1 == WATCH_MODE_READ && mode0 == WATCH_MODE_WRITE)) {
+ if (is_store)
+ return (mode0 == WATCH_MODE_WRITE) ? wa0 : wa1;
+ else
+ return (mode0 == WATCH_MODE_READ) ? wa0 : wa1;
+ }
+ if ((mode0 == WATCH_MODE_READ && is_store) ||
+ (mode0 == WATCH_MODE_WRITE && !is_store))
+ return wa1;
+ if ((mode1 == WATCH_MODE_READ && is_store) ||
+ (mode1 == WATCH_MODE_WRITE && !is_store))
+ return wa0;
+
+ // Okay. Now try to figure out address by decoding the opcode.
+
+ if (cpsr & CPSR_THUMB_ENABLE)
+ return find_thumb_watch_address(wa0, mode0, wa1, mode1);
+
+ opcode = *(unsigned *)pc;
+ Rn = (opcode >> 16) & 15;
+ Rd = (opcode >> 12) & 15;
+ Rm = opcode & 15;
+
+ size = use_val = 0;
+ addr = 0;
+
+ if ((opcode & 0x0fb00ff0) == 0x01000090) {
+ // SWP xxxx 0001 0B00 _Rn_ _Rd_ 0000 1001 _Rm_
+ addr = get_register(Rn);
+ size = (opcode & B_bit) ? 1 : 4;
+ } else if ((opcode & 0x0c000000) == 0x04000000) {
+ // LDR/STR xxxx 010P UBWL _Rn_ _Rd_ iiii iiii iiii
+ // LDR/STR xxxx 011P UBWL _Rn_ _Rd_ ssss sSh0 _Rm_
+ // Addressing mode 2, Load/Store word or unsigned byte
+
+ size = (opcode & B_bit) ? 1 : 4;
+
+ if ((opcode & (P_bit | W_bit)) == (P_bit | W_bit)) {
+ // This is easy because address is written back to Rn
+ addr = get_register(Rn);
+ } else if (!is_store &&
+ (Rd == Rn || ((opcode & I_bit) && Rd == Rm))) {
+ // We can't reconstruct address from opcode because base
+ // or offset register was destroyed. Best we can do is try
+ // to match data at watchpoint addresses with data in Rd.
+ use_val = 1;
+ val = get_register(Rd);
+ } else {
+ if (opcode & I_bit) {
+ shift = (opcode >> 7) & 0x1f;
+ offset = get_register(Rm);
+ switch ((opcode >> 5) & 3) {
+ case 0:
+ offset <<= shift;
+ break;
+ case 1:
+ offset >>= shift;
+ offset &= (0xffffffffU >> shift);
+ break;
+ case 2:
+ offset >>= shift;
+ break;
+ case 3:
+ if (shift) {
+ for (i = 0; i < shift; i++)
+ offset = ((offset >> 1) & 0x7fffffff) | ((offset & 1) << 31);
+ } else {
+ offset >>= 1;
+ offset &= 0x80000000;
+ offset |= ((cpsr & 0x20000000) << 2);
+ }
+ break;
+ }
+ } else
+ offset = opcode & 0xfff;
+
+ if ((opcode & U_bit) == 0)
+ offset = -offset;
+
+ if (Rn == 15)
+ base = pc + 8;
+ else
+ base = get_register(Rn);
+
+ if (opcode & P_bit)
+ addr = base + offset; // pre-index
+ else
+ addr = base - offset; // post-index writeback
+
+ size = (opcode & B_bit) ? 1 : 4;
+ }
+ } else if ((opcode & 0x0e000090) == 0x00000090 &&
+ (opcode & 0x00000060) &&
+ ((opcode & (1 << 22)) || (opcode & 0x00000f00) == 0) &&
+ ((opcode & (P_bit | W_bit)) != W_bit)) {
+ // LDR/STR xxxx 000P U1WL _Rn_ _Rd_ iiii 1SH1 iiii
+ // LDR/STR xxxx 000P U0WL _Rn_ _Rd_ 0000 1SH1 _Rm_
+ // Addressing Mode 3, Load/Store halfword, load signed byte
+
+ size = (opcode & (1 << 5)) ? 2 : 1;
+
+ if ((opcode & (P_bit | W_bit)) == (P_bit | W_bit)) {
+ // This is easy because address is written back to Rn
+ addr = get_register(Rn);
+ } if (!is_store &&
+ (Rd == Rn || ((opcode & (1 << 22)) && Rd == Rm))) {
+ // We can't reconstruct address from opcode because base
+ // or offset register was destroyed. Best we can do is try
+ // to match data at watchpoint addresses with data in Rd.
+ use_val = 1;
+ val = get_register(Rd);
+ } else {
+ if (opcode & (1 << 22))
+ offset = ((opcode >> 4) & 0xf0) | (opcode & 0x0f);
+ else
+ offset = get_register(opcode & 15);
+
+ if ((opcode & U_bit) == 0)
+ offset = -offset;
+
+ if (Rn == 15)
+ base = pc + 8;
+ else
+ base = get_register(Rn);
+
+ if (opcode & P_bit)
+ addr = base + offset; // pre-index
+ else
+ addr = base - offset; // post-index writeback
+ }
+ } else if ((opcode & 0x0e000000) == 0x08000000) {
+ // LDM/STM xxxx 100P USWL _Rn_ rrrr rrrr rrrr rrrr
+ for (i = size = 0; i < 16; i++)
+ if (opcode & (1 << i))
+ size += 4;
+
+ base = get_register(Rn);
+ if (!is_store && (opcode & (1 << Rn))) {
+ // We can't reconstruct address from opcode because base
+ // was destroyed. Best we can do is try to match data at
+ // watchpoint addresses with data in one of the registers.
+ wd0 = *(unsigned *)(wa0 & ~3);
+ wd1 = *(unsigned *)(wa1 & ~3);
+ if (wd0 != wd1) {
+ for (i = size = 0; i < 16; i++) {
+ if (opcode & (1 << i)) {
+ val = get_register(i);
+ if (val == wd0)
+ return wa0;
+ else if (val == wd1)
+ return wa1;
+ }
+ }
+ }
+ return wa0; // 50% chance of being right
+ } else {
+ if (opcode & U_bit){
+ if (opcode & W_bit)
+ addr = base - size;
+ else
+ addr = base;
+ if (opcode & P_bit)
+ addr += 4;
+ } else {
+ if (opcode & W_bit)
+ addr = base;
+ else
+ addr = base - size;
+ if ((opcode & P_bit) == 0)
+ addr += 4;
+ }
+ }
+ } else if ((opcode & 0x0e000000) == 0x0c000000) {
+ // LDC/STC xxxx 110P UNWL _Rn_ CRd_ CP#_ iiii iiii
+ size = 4;
+ offset = (opcode & 0xff) * 4;
+ if ((opcode & U_bit) == 0)
+ offset = -offset;
+ if ((opcode & P_bit) && (opcode & W_bit))
+ addr = get_register(Rn);
+ else
+ addr = get_register(Rn) + offset;
+ }
+
+ if (use_val) {
+ // We can read from watchpoint addresses and compare against
+ // whatever is in the Rd from a load. This is not perfect,
+ // but its the best we can do.
+ if (wval_match(wa0, val, size))
+ return wa0;
+ if (wval_match(wa1, val, size))
+ return wa1;
+ } else {
+ if (waddr_match(wa0, addr, size))
+ return wa0;
+ if (waddr_match(wa1, addr, size))
+ return wa1;
+ }
+ return wa0; // should never happen, but return valid address
+}
+#endif
+
+// Return indication of whether or not we stopped because of a
+// watchpoint or hardware breakpoint. If stopped by a watchpoint,
+// also set '*data_addr_p' to the data address which triggered the
+// watchpoint.
+int cyg_hal_plf_is_stopped_by_hardware(void **data_addr_p)
+{
+ unsigned fsr, dcsr, dbcon, kind = 0;
+
+ // Check for debug event
+ asm volatile ("mrc p15,0,%0,c5,c0,0" : "=r"(fsr) : );
+ if ((fsr & 0x200) == 0)
+ return HAL_STUB_HW_STOP_NONE;
+
+ // There was a debug event. Check the MOE for details
+ dcsr = get_dcsr();
+ switch ((dcsr >> 2) & 7) {
+ case 1: // HW breakpoint
+ case 3: // BKPT breakpoint
+ return HAL_STUB_HW_STOP_BREAK;
+ case 2: // Watchpoint
+ dbcon = get_dbcon();
+#if HAL_STUB_HW_WATCHPOINT_LIST_SIZE == 2
+ if (dbcon & 0x100) {
+#endif
+ if ((kind = (dbcon & 3)) != WATCH_MODE_NONE)
+ *data_addr_p = (void *)get_dbr0();
+#if HAL_STUB_HW_WATCHPOINT_LIST_SIZE == 2
+ } else {
+ // This can get tricky because the debug unit offers no way to
+ // tell which watchpoint triggered.
+ if ((kind = (dbcon & 3)) == WATCH_MODE_NONE) {
+ if ((kind = ((dbcon >> 2) & 3)) != WATCH_MODE_NONE)
+ *data_addr_p = (void *)get_dbr1();
+ } else if ((kind = ((dbcon >> 2) & 3)) == WATCH_MODE_NONE) {
+ if ((kind = (dbcon & 3)) != WATCH_MODE_NONE)
+ *data_addr_p = (void *)get_dbr0();
+ } else {
+ // This is the tricky part. We have to look at the trapping
+ // opcode (which has already issued) to try to see if we can
+ // tell which watchpoint triggered. Turn off watchpoints while
+ // we figure this out.
+ set_dcsr(dcsr & ~0x80000000);
+ *data_addr_p = (void *)find_watch_address(get_dbr0(), dbcon & 3,
+ get_dbr1(), (dbcon >> 2) & 3);
+ set_dcsr(dcsr);
+
+ if (*data_addr_p == (void *)get_dbr0())
+ kind = dbcon & 3;
+ else if (*data_addr_p == (void *)get_dbr1())
+ kind = (dbcon >> 2) & 3;
+ else
+ kind = WATCH_MODE_NONE;
+ }
+ }
+#endif
+ if (kind == WATCH_MODE_WRITE)
+ return HAL_STUB_HW_STOP_WATCH;
+ if (kind == WATCH_MODE_ACCESS)
+ return HAL_STUB_HW_STOP_AWATCH;
+ if (kind == WATCH_MODE_READ)
+ return HAL_STUB_HW_STOP_RWATCH;
+ // should never get here
+ break;
+ }
+ return HAL_STUB_HW_STOP_NONE;
+}
+#endif // CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS
+
+/*------------------------------------------------------------------------*/
+// EOF xscale_stub.c
+
diff --git a/ecos/packages/hal/arm/xscale/grg/current/ChangeLog b/ecos/packages/hal/arm/xscale/grg/current/ChangeLog
new file mode 100644
index 0000000..3f58833
--- /dev/null
+++ b/ecos/packages/hal/arm/xscale/grg/current/ChangeLog
@@ -0,0 +1,98 @@
+2009-10-16 John Dallaway <john@dallaway.org.uk>
+
+ * cdl/hal_arm_xscale_grg.cdl: Parent under
+ CYGPKG_HAL_ARM_XSCALE_IXP425.
+
+2009-01-31 Bart Veer <bartv@ecoscentric.com>
+
+ * cdl/hal_arm_xscale_grg.cdl: update compiler flags for gcc 4.x
+
+2009-01-24 Bart Veer <bartv@ecoscentric.com>
+
+ * cdl/hal_arm_xscale_grg.cdl: switch from arm-elf-gcc to
+ arm-eabi-gcc.
+
+2006-03-01 Mark Salter <msalter@sadr.localdomain>
+
+ * include/hal_platform_setup.h: Fix DELAY macro.
+
+2004-09-20 Mark Salter <msalter@redhat.com>
+
+ * cdl/hal_arm_xscale_grg.cdl: Add -mcpu=xscale to LDFLAGS.
+
+2004-09-19 Mark Salter <msalter@redhat.com>
+
+ * cdl/hal_arm_xscale_grg.cdl: Add -mcpu=xscale to CFLAGS.
+
+ * misc/redboot_ROM.ecm: Add CYGSEM_REDBOOT_NETWORK_INIT_ONE_DEVICE.
+ * misc/redboot_RAM.ecm: Ditto.
+ * misc/redboot_ROMLE.ecm: Ditto.
+ * misc/redboot_RAMLE.ecm: Ditto.
+
+2004-09-02 Mark Salter <msalter@redhat.com>
+
+ * include/hal_platform_extras.h: Removed.
+ * misc/redboot_ROMLE.ecm: New file.
+ * misc/redboot_RAMLE.ecm: New file.
+ * cdl/hal_arm_xscale_grg.cdl: Add little-endian support.
+ * misc/redboot_RAM.ecm: Ditto.
+ * misc/redboot_ROM.ecm: Ditto.
+ * include/hal_platform_setup.h: Ditto.
+ * include/grg.h: Add some defines for use in page table setup.
+
+2003-06-30 Mark Salter <msalter@redhat.com>
+
+ * include/hal_platform_setup.h: Fix CYGINT_HAL_ARM_BIGENDIAN test.
+ Remove unused ROMRAM cruft.
+
+2003-04-04 Mark Salter <msalter@redhat.com>
+
+ * include/grg.h: Add GPIO line definitions.
+ * include/hal_plf_ints.h: Add GPIO IRQ definitions.
+ * src/grg_misc.c (plf_hardware_init): Initialize GPIO lines.
+
+2003-04-02 Mark Salter <msalter@redhat.com>
+
+ * misc/redboot_ROM.ecm: Don't set I82559_WRITE_EEPROM.
+ * misc/redboot_RAM.ecm: Ditto.
+
+2003-02-22 Mark Salter <msalter@redhat.com>
+
+ * cdl/hal_arm_xscale_grg.cdl: Fix HAL_PLATFORM_MACHINE_TYPE.
+
+2003-02-13 Mark Salter <msalter@redhat.com>
+
+ * include/hal_platform_extras.h: Move uncached area. Create RAM
+ alias area.
+
+2003-02-12 Mark Salter <msalter@redhat.com>
+
+ * misc/*.ecm: Turn on CYGPKG_DEVS_ETH_INTEL_I82559_WRITE_EEPROM.
+
+2003-02-07 Mark Salter <msalter@redhat.com>
+
+ * Initial checkin.
+
+//===========================================================================
+// ####GPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2009 Free Software Foundation, Inc.
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 2 or (at your option) any
+// later version.
+//
+// This program is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the
+// Free Software Foundation, Inc., 51 Franklin Street,
+// Fifth Floor, Boston, MA 02110-1301, USA.
+// -------------------------------------------
+// ####GPLCOPYRIGHTEND####
+//===========================================================================
diff --git a/ecos/packages/hal/arm/xscale/grg/current/cdl/hal_arm_xscale_grg.cdl b/ecos/packages/hal/arm/xscale/grg/current/cdl/hal_arm_xscale_grg.cdl
new file mode 100644
index 0000000..7cbba47
--- /dev/null
+++ b/ecos/packages/hal/arm/xscale/grg/current/cdl/hal_arm_xscale_grg.cdl
@@ -0,0 +1,304 @@
+# ====================================================================
+#
+# hal_arm_xscale_grg.cdl
+#
+# Intel XScale GRG Network Processor Eval Board HAL package
+#
+# ====================================================================
+## ####ECOSGPLCOPYRIGHTBEGIN####
+## -------------------------------------------
+## This file is part of eCos, the Embedded Configurable Operating System.
+## Copyright (C) 1998, 1999, 2000, 2001, 2002, 2009 Free Software Foundation, Inc.
+##
+## eCos is free software; you can redistribute it and/or modify it under
+## the terms of the GNU General Public License as published by the Free
+## Software Foundation; either version 2 or (at your option) any later
+## version.
+##
+## eCos is distributed in the hope that it will be useful, but WITHOUT
+## ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+## FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+## for more details.
+##
+## You should have received a copy of the GNU General Public License
+## along with eCos; if not, write to the Free Software Foundation, Inc.,
+## 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+##
+## As a special exception, if other files instantiate templates or use
+## macros or inline functions from this file, or you compile this file
+## and link it with other works to produce a work based on this file,
+## this file does not by itself cause the resulting work to be covered by
+## the GNU General Public License. However the source code for this file
+## must still be made available in accordance with section (3) of the GNU
+## General Public License v2.
+##
+## This exception does not invalidate any other reasons why a work based
+## on this file might be covered by the GNU General Public License.
+## -------------------------------------------
+## ####ECOSGPLCOPYRIGHTEND####
+# ====================================================================
+######DESCRIPTIONBEGIN####
+#
+# Author(s): msalter
+# Contributors: msalter
+# Date: 2003-02-05
+#
+#####DESCRIPTIONEND####
+#
+# ====================================================================
+cdl_package CYGPKG_HAL_ARM_XSCALE_GRG {
+ display "Intel Generic Residential Gateway Platform"
+ parent CYGPKG_HAL_ARM_XSCALE_IXP425
+ implements CYGINT_HAL_ARM_BIGENDIAN
+ hardware
+ include_dir cyg/hal
+ define_header hal_arm_xscale_grg.h
+ description "
+ This HAL platform package provides support for
+ the Intel Generic Residential Gateway board."
+
+ compile grg_misc.c grg_pci.c
+
+ 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_xscale_ixp425.h>"
+ puts $::cdl_system_header "#define CYGBLD_HAL_PLATFORM_H <pkgconf/hal_arm_xscale_grg.h>"
+ puts $::cdl_header "#define CYGBLD_HAL_PLF_INTS_H <cyg/hal/hal_plf_ints.h>"
+ puts $::cdl_header "#define HAL_PLATFORM_CPU \"XScale\""
+ puts $::cdl_header "#define HAL_PLATFORM_BOARD \"Intel Generic Residential Gateway\""
+ puts $::cdl_header "#ifdef CYGHWR_HAL_ARM_BIGENDIAN"
+ puts $::cdl_header "#define HAL_PLATFORM_EXTRA \"BE\""
+ puts $::cdl_header "#else"
+ puts $::cdl_header "#define HAL_PLATFORM_EXTRA \"LE\""
+ puts $::cdl_header "#endif"
+ puts $::cdl_header "#define HAL_PLATFORM_MACHINE_TYPE 290"
+ }
+
+ 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 targeting the GRG board it is possible to configure the system
+ for either RAM bootstrap or ROM bootstrap(s). Select 'ram' when
+ building programs to load into RAM using onboard debug software
+ such as RedBoot or eCos GDB stubs."
+ }
+
+ 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-eabi"}
+ 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 { CYGBLD_GLOBAL_WARNFLAGS . CYGBLD_ARCH_CFLAGS .
+ "-mcpu=xscale -g -O2 -ffunction-sections -fdata-sections -fno-rtti -fno-exceptions -mapcs-frame" }
+ 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 { CYGBLD_ARCH_LDFLAGS . "-mcpu=xscale -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) --remove-section=.fixed_vectors -O binary $< $@
+ }
+ }
+ }
+
+ cdl_component CYGPKG_HAL_ARM_XSCALE_GRG_OPTIONS {
+ display "Intel XScale GRG 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_XSCALE_GRG_CFLAGS_ADD {
+ display "Additional compiler flags"
+ flavor data
+ no_define
+ default_value { "" }
+ description "
+ This option modifies the set of compiler flags for
+ building the XScale GRG HAL. These flags are used in addition
+ to the set of global flags."
+ }
+
+ cdl_option CYGPKG_HAL_ARM_XSCALE_GRG_CFLAGS_REMOVE {
+ display "Suppressed compiler flags"
+ flavor data
+ no_define
+ default_value { "" }
+ description "
+ This option modifies the set of compiler flags for
+ building the XScale GRG HAL. These flags are removed from
+ the set of global flags if present."
+ }
+
+ cdl_option CYGNUM_HAL_BREAKPOINT_LIST_SIZE {
+ display "Number of breakpoints supported by the HAL."
+ flavor data
+ default_value 32
+ description "
+ This option determines the number of breakpoints supported by the HAL."
+ }
+ }
+
+ cdl_option CYGSEM_HAL_IXP425_PLF_USES_UART1 {
+ display "GRG uses IXP425 high-speed UART"
+ flavor bool
+ default_value 0
+ description "
+ Enable this option if the IXP425 high-speed UART is used
+ as a virtual vector communications channel."
+ }
+
+ cdl_option CYGSEM_HAL_IXP425_PLF_USES_UART2 {
+ display "GRG uses IXP425 console UART"
+ flavor bool
+ default_value 1
+ description "
+ Enable this option if the IXP425 console UART is to be used
+ as a virtual vector communications channel."
+ }
+
+ cdl_component CYGHWR_MEMORY_LAYOUT {
+ display "Memory layout"
+ flavor data
+ no_define
+ calculated { CYG_HAL_STARTUP == "RAM" ? "arm_xscale_grg_ram" : \
+ "arm_xscale_grg_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_xscale_grg_ram.ldi>" : \
+ "<pkgconf/mlt_arm_xscale_grg_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_xscale_grg_ram.h>" : \
+ "<pkgconf/mlt_arm_xscale_grg_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 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_REDBOOT_HAL_OPTIONS {
+ display "Redboot HAL options"
+ flavor none
+ no_define
+ parent CYGPKG_REDBOOT
+ active_if CYGPKG_REDBOOT
+ description "
+ This option lists the target's requirements for a valid Redboot
+ configuration."
+
+ 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 $< $@
+ }
+ }
+ }
+}
diff --git a/ecos/packages/hal/arm/xscale/grg/current/include/grg.h b/ecos/packages/hal/arm/xscale/grg/current/include/grg.h
new file mode 100644
index 0000000..5731f48
--- /dev/null
+++ b/ecos/packages/hal/arm/xscale/grg/current/include/grg.h
@@ -0,0 +1,118 @@
+#ifndef CYGONCE_HAL_ARM_XSCALE_GRG_GRG_H
+#define CYGONCE_HAL_ARM_XSCALE_GRG_GRG_H
+
+/*=============================================================================
+//
+// grg.h
+//
+// Platform specific support (register layout, etc)
+//
+//=============================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): msalter
+// Contributors: msalter
+// Date: 2003-02-05
+// Purpose: Intel GRG specific support routines
+// Description:
+// Usage: #include <cyg/hal/grg.h>
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================*/
+
+#include <pkgconf/system.h>
+#include CYGHWR_MEMORY_LAYOUT_H
+#include <pkgconf/hal_arm_xscale_grg.h>
+#include <cyg/hal/hal_ixp425.h>
+
+// These must match setup in the page table in hal_platform_extras.h
+#define SDRAM_PHYS_BASE 0x00000000
+#define SDRAM_BASE 0x00000000
+#define SDRAM_ALIAS_BASE 0x10000000
+#define SDRAM_UNCACHED_BASE 0x20000000
+#define SDRAM_DC_BASE 0x30000000
+#define SDRAM_SIZE 0x02000000 // 32MB
+
+#define IXDP_FLASH_BASE 0x50000000
+#define IXDP_FLASH_SIZE 0x01000000
+#define IXDP_FLASH_DC_BASE 0xA0000000
+
+// CS0 (flash optimum timing)
+#define IXP425_EXP_CS0_INIT \
+ (EXP_ADDR_T(3) | EXP_SETUP_T(3) | EXP_STROBE_T(15) | EXP_HOLD_T(3) | \
+ EXP_RECOVERY_T(15) | EXP_SZ_16M | EXP_WR_EN | EXP_BYTE_RD16 | EXP_CS_EN)
+
+#define IXP425_SDRAM_CONFIG_INIT (SDRAM_CONFIG_CAS_3 | SDRAM_CONFIG_2x8Mx16)
+#define IXP425_SDRAM_REFRESH_CNT 0x81A
+#define IXP425_SDRAM_SET_MODE_CMD SDRAM_IR_MODE_SET_CAS3
+
+
+// ------------------------------------------------------------------------
+// GPIO lines
+//
+#define GPIO_PWR_FAIL_IRQ_N 0
+#define GPIO_DSL_IRQ_N 1
+#define GPIO_SLIC_A_IRQ_N 2
+#define GPIO_SLIC_B_IRQ_N 3
+#define GPIO_DSP_IRQ_N 4
+#define GPIO_IDE_IRQ_N 5
+
+// GPIO lines used for SPI bus
+#define GPIO_SPI_CS1_N 7
+#define GPIO_SPI_CS0_N 8
+#define GPIO_SPI_SCK 9
+#define GPIO_SPI_SDI 10
+#define GPIO_SPI_SDO 13
+
+#define GPIO_IO_RESET_N 12
+
+// ------------------------------------------------------------------------
+// No Hex Display
+//
+#ifdef __ASSEMBLER__
+ // Display hex digits in 'value' not masked by 'mask'.
+ .macro DISPLAY value, reg0, reg1
+ .endm
+#else
+static inline void HEX_DISPLAY(int value)
+{
+}
+#endif // __ASSEMBLER__
+
+// ------------------------------------------------------------------------
+
+#endif // CYGONCE_HAL_ARM_XSCALE_GRG_GRG_H
+// EOF grg.h
diff --git a/ecos/packages/hal/arm/xscale/grg/current/include/hal_platform_setup.h b/ecos/packages/hal/arm/xscale/grg/current/include/hal_platform_setup.h
new file mode 100644
index 0000000..02acbc7
--- /dev/null
+++ b/ecos/packages/hal/arm/xscale/grg/current/include/hal_platform_setup.h
@@ -0,0 +1,343 @@
+#ifndef CYGONCE_HAL_PLATFORM_SETUP_H
+#define CYGONCE_HAL_PLATFORM_SETUP_H
+
+/*=============================================================================
+//
+// hal_platform_setup.h
+//
+// Platform specific support for HAL (assembly code)
+//
+//=============================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002, 2004 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): msalter
+// Contributors: msalter
+// Date: 2003-02-06
+// Purpose: Intel XScale GRG specific support routines
+// Description:
+// Usage: #include <cyg/hal/hal_platform_setup.h>
+// Only used by "vectors.S"
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================*/
+
+#include <pkgconf/system.h> // System-wide configuration info
+#include CYGBLD_HAL_VARIANT_H // Variant specific configuration
+#include CYGBLD_HAL_PLATFORM_H // Platform specific configuration
+#include <cyg/hal/hal_ixp425.h> // Variant specific hardware definitions
+#include <cyg/hal/hal_mmu.h> // MMU definitions
+#include <cyg/hal/hal_mm.h> // more MMU definitions
+#include <cyg/hal/grg.h> // Platform specific hardware definitions
+
+// ------------------------------------------------------------------------
+// Convenience macros for setting up page table
+//
+.macro IXP_MAP_SDRAM va, c, b, x, p
+ XSCALE_MMU_SECTION SDRAM_PHYS_BASE>>20, \va>>20, SDRAM_SIZE>>20, \c, \b, 3, \x, \p
+.endm
+
+.macro IXP_MAP_EXP_V n, va, sz, c, b, x, p
+ XSCALE_MMU_SECTION (0x500 + ((IXP425_EXP_CS_SIZE * \n) >> 20)), \va>>20, \sz>>20, \c, \b, 3, \x, \p
+.endm
+
+.macro IXP_MAP_EXP n, sz, c, b, x, p
+ IXP_MAP_EXP_V \n, (0x50000000 + (IXP425_EXP_CS_SIZE * \n)), \sz, \c, \b, \x, \p
+.endm
+
+.macro IXP_MAP_IO addr, sz
+ XSCALE_MMU_SECTION \addr>>20, \addr>>20, \sz>>20, 0, 0, 3, 0, 0
+.endm
+
+#if defined(CYG_HAL_STARTUP_ROM)
+#define PLATFORM_SETUP1 _platform_setup1
+#define CYGHWR_HAL_ARM_HAS_MMU
+
+// ------------------------------------------------------------------------
+// Define macro used to diddle the LEDs during early initialization.
+// Can use r0+r1. Argument in \x.
+#define CYGHWR_LED_MACRO
+
+// Delay a bit
+.macro DELAY cycles, reg0
+ ldr \reg0, =\cycles
+ subs \reg0, \reg0, #1
+ subne pc, pc, #0xc
+.endm
+
+// ------------------------------------------------------------------------
+// This macro represents the initial startup code for the platform
+ .macro _platform_setup1
+
+#ifdef CYGHWR_HAL_ARM_BIGENDIAN
+ // set big-endian
+ mrc p15, 0, r0, c1, c0, 0
+ orr r0, r0, #0x80
+ mcr p15, 0, r0, c1, c0, 0
+ CPWAIT r0
+#endif
+
+ ldr r0,=(CPSR_IRQ_DISABLE|CPSR_FIQ_DISABLE|CPSR_SUPERVISOR_MODE)
+ msr cpsr, r0
+
+ // invalidate I & D caches & BTB
+ mcr p15, 0, r0, c7, c7, 0
+ CPWAIT r0
+
+ // invalidate I & Data TLB
+ mcr p15, 0, r0, c8, c7, 0
+ CPWAIT r0
+
+ // drain write and fill buffers
+ mcr p15, 0, r0, c7, c10, 4
+ CPWAIT r0
+
+ // disable write buffer coalescing
+ mrc p15, 0, r0, c1, c0, 1
+ orr r0, r0, #1
+ mcr p15, 0, r0, c1, c0, 1
+ CPWAIT r0
+
+ // Setup chip selects
+ ldr r1, =IXP425_EXP_CFG_BASE
+#ifdef IXP425_EXP_CS0_INIT
+ ldr r0, =IXP425_EXP_CS0_INIT
+ str r0, [r1, #IXP425_EXP_CS0]
+#endif
+#ifdef IXP425_EXP_CS1_INIT
+ ldr r0, =IXP425_EXP_CS1_INIT
+ str r0, [r1, #IXP425_EXP_CS1]
+#endif
+#ifdef IXP425_EXP_CS2_INIT
+ ldr r0, =IXP425_EXP_CS2_INIT
+ str r0, [r1, #IXP425_EXP_CS2]
+#endif
+#ifdef IXP425_EXP_CS3_INIT
+ ldr r0, =IXP425_EXP_CS3_INIT
+ str r0, [r1, #IXP425_EXP_CS3]
+#endif
+#ifdef IXP425_EXP_CS4_INIT
+ ldr r0, =IXP425_EXP_CS4_INIT
+ str r0, [r1, #IXP425_EXP_CS4]
+#endif
+#ifdef IXP425_EXP_CS5_INIT
+ ldr r0, =IXP425_EXP_CS5_INIT
+ str r0, [r1, #IXP425_EXP_CS5]
+#endif
+#ifdef IXP425_EXP_CS6_INIT
+ ldr r0, =IXP425_EXP_CS6_INIT
+ str r0, [r1, #IXP425_EXP_CS6]
+#endif
+#ifdef IXP425_EXP_CS7_INIT
+ ldr r0, =IXP425_EXP_CS7_INIT
+ str r0, [r1, #IXP425_EXP_CS7]
+#endif
+
+ // Enable the Icache
+ mrc p15, 0, r0, c1, c0, 0
+ orr r0, r0, #MMU_Control_I
+ mcr p15, 0, r0, c1, c0, 0
+ CPWAIT r0
+
+ // Setup SDRAM controller
+
+ ldr r0, =IXP425_SDRAM_CFG_BASE
+
+ ldr r1, =IXP425_SDRAM_CONFIG_INIT
+ str r1, [r0, #IXP425_SDRAM_CONFIG]
+
+ // disable refresh cycles
+ mov r1, #0
+ str r1, [r0, #IXP425_SDRAM_REFRESH]
+
+ // send nop command
+ mov r1, #SDRAM_IR_NOP
+ str r1, [r0, #IXP425_SDRAM_IR]
+ DELAY 0x10000, r1
+
+ // set SDRAM internal refresh val
+ ldr r1, =IXP425_SDRAM_REFRESH_CNT
+ str r1, [r0, #IXP425_SDRAM_REFRESH]
+ DELAY 0x10000, r1
+
+ // send precharge-all command to close all open banks
+ mov r1, #SDRAM_IR_PRECHARGE
+ str r1, [r0, #IXP425_SDRAM_IR]
+ DELAY 0x10000, r1
+
+ // provide 8 auto-refresh cycles
+ mov r1, #SDRAM_IR_AUTO_REFRESH
+ mov r2, #8
+ 1:
+ str r1, [r0, #IXP425_SDRAM_IR]
+ DELAY 0x800, r3
+ subs r2, r2, #1
+ bne 1b
+
+ // set mode register in sdram
+ mov r1, #IXP425_SDRAM_SET_MODE_CMD
+ str r1, [r0, #IXP425_SDRAM_IR]
+ DELAY 0x10000, r1
+
+ // start normal operation
+ mov r1, #SDRAM_IR_NORMAL
+ str r1, [r0, #IXP425_SDRAM_IR]
+ DELAY 0x10000, r1
+
+ // Enable byte swapping control via page table P bit.
+ ldr r2, =IXP425_EXP_CFG_BASE
+ ldr r1, [r2, #IXP425_EXP_CNFG1]
+ orr r1, r1, #EXP_CNFG1_BYTE_SWAP_EN
+ str r1, [r2, #IXP425_EXP_CNFG1]
+
+ // value to load into pc to jump to real runtime address
+ ldr r0, =1f
+
+ // Setup EXP_CNFG0 value to switch EXP bus out of low memory
+ ldr r2, =IXP425_EXP_CFG_BASE
+ ldr r1, [r2, #IXP425_EXP_CNFG0]
+ bic r1, r1, #EXP_CNFG0_MEM_MAP
+
+ b icache_boundary
+ .p2align 5
+icache_boundary:
+ // Here is where we switch from boot address (0x000000000) to the
+ // actual flash runtime address. We align to cache boundary so we
+ // execute from cache during the switchover. Cachelines are 8 words.
+ str r1, [r2, #IXP425_EXP_CNFG0] // make the EXP bus switch
+ nop
+ nop
+ nop
+ nop
+ mov pc, r0
+ nop
+ // display FFFF and loop forever.
+ 0: b 0b
+ 1:
+
+ // Build mmu tables into RAM so page table walks by the cpu
+ // don't interfere with FLASH programming.
+ mov r1, #SDRAM_PHYS_BASE
+ orr r1, r1, #0x4000 // RAM tables
+ add r2, r1, #0x4000 // End of tables
+
+ // First clear table
+ mov r0, #0
+ 1:
+ str r0, [r1], #4
+ cmp r1, r2
+ bne 1b
+
+ // Build section mappings
+ IXP_MAP_SDRAM SDRAM_BASE, 1, 0, 0, 0 // Cached SDRAM
+ IXP_MAP_SDRAM SDRAM_ALIAS_BASE, 1, 0, 0, 0 // Cached SDRAM alias
+ IXP_MAP_SDRAM SDRAM_UNCACHED_BASE, 0, 0, 0, 0 // Uncached SDRAM
+ IXP_MAP_SDRAM SDRAM_DC_BASE, 1, 0, 0, 1 // Cached data coherent SDRAM
+
+ IXP_MAP_EXP 0, IXDP_FLASH_SIZE, 1, 0, 0, 0 // Flash
+ IXP_MAP_EXP 4, (1 << 20), 0, 0, 0, 0 // NPE use
+ IXP_MAP_EXP 5, (1 << 20), 0, 0, 0, 0 // NPE use
+
+ IXP_MAP_EXP_V 0, IXDP_FLASH_DC_BASE, IXDP_FLASH_SIZE, 1, 0, 0, 1 // data coherent flash
+
+ IXP_MAP_IO IXP425_PCI_WINDOW_BASE, IXP425_PCI_WINDOW_SIZE
+ IXP_MAP_IO IXP425_QMGR_BASE, IXP425_QMGR_SIZE
+ IXP_MAP_IO IXP425_PCI_CFG_BASE, IXP425_PCI_CFG_SIZE
+ IXP_MAP_IO IXP425_EXP_CFG_BASE, IXP425_EXP_CFG_SIZE
+ IXP_MAP_IO IXP425_MISC_CFG_BASE, IXP425_MISC_CFG_SIZE
+ IXP_MAP_IO IXP425_SDRAM_CFG_BASE, IXP425_SDRAM_CFG_SIZE
+
+ mcr p15, 0, r0, c7, c10, 4 // drain the write & fill buffers
+ CPWAIT r0
+
+ // Set the TTB register to DRAM mmu_table
+ ldr r0, =(SDRAM_PHYS_BASE | 0x4000) // RAM tables
+ mcr p15, 0, r0, c2, c0, 0 // load page table pointer
+ CPWAIT r0
+
+ // enable permission checks in all domains
+ ldr r0, =0x55555555
+ mcr p15, 0, r0, c3, c0, 0
+ CPWAIT r0
+
+ // enable mmu
+ mrc p15, 0, r0, c1, c0, 0
+ orr r0, r0, #MMU_Control_M
+ orr r0, r0, #MMU_Control_R
+ mcr p15, 0, r0, c1, c0, 0
+ CPWAIT r0
+
+ // enable D cache
+ mrc p15, 0, r0, c1, c0, 0
+ orr r0, r0, #MMU_Control_C
+ mcr p15, 0, r0, c1, c0, 0
+ CPWAIT r0
+
+ // Enable branch target buffer
+ mrc p15, 0, r0, c1, c0, 0
+ orr r0, r0, #MMU_Control_BTB
+ mcr p15, 0, r0, c1, c0, 0
+ CPWAIT r0
+
+ mcr p15, 0, r0, c7, c10, 4 // drain the write & fill buffers
+ CPWAIT r0
+
+ mcr p15, 0, r0, c7, c7, 0 // flush Icache, Dcache and BTB
+ CPWAIT r0
+
+ mcr p15, 0, r0, c8, c7, 0 // flush instuction and data TLBs
+ CPWAIT r0
+
+ mcr p15, 0, r0, c7, c10, 4 // drain the write & fill buffers
+ CPWAIT r0
+
+ // save SDRAM size
+ ldr r1, =hal_dram_size /* [see hal_intr.h] */
+ mov r8, #SDRAM_SIZE
+ str r8, [r1]
+
+ .endm // _platform_setup1
+
+#else // defined(CYG_HAL_STARTUP_ROM)
+#define PLATFORM_SETUP1
+#endif
+
+#define PLATFORM_VECTORS _platform_vectors
+ .macro _platform_vectors
+ .endm
+
+/*---------------------------------------------------------------------------*/
+/* end of hal_platform_setup.h */
+#endif /* CYGONCE_HAL_PLATFORM_SETUP_H */
diff --git a/ecos/packages/hal/arm/xscale/grg/current/include/hal_plf_ints.h b/ecos/packages/hal/arm/xscale/grg/current/include/hal_plf_ints.h
new file mode 100644
index 0000000..5a5eaa4
--- /dev/null
+++ b/ecos/packages/hal/arm/xscale/grg/current/include/hal_plf_ints.h
@@ -0,0 +1,85 @@
+#ifndef CYGONCE_HAL_PLF_INTS_H
+#define CYGONCE_HAL_PLF_INTS_H
+//==========================================================================
+//
+// hal_plf_ints.h
+//
+// HAL Platform Interrupt support
+//
+//==========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//==========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): msalter
+// Contributors: msalter
+// Date: 2002-07-15
+// Purpose: Define Interrupt support
+// Description: The interrupt details for a specific platform is defined here.
+// Usage:
+//
+//
+//####DESCRIPTIONEND####
+//
+//==========================================================================
+
+// start with variant ints
+#include CYGBLD_HAL_VAR_INTS_H
+
+#define CYGNUM_HAL_INTERRUPT_PWR_FAIL CYGNUM_HAL_INTERRUPT_GPIO0
+#define CYGNUM_HAL_INTERRUPT_DSL CYGNUM_HAL_INTERRUPT_GPIO1
+#define CYGNUM_HAL_INTERRUPT_SLIC_A CYGNUM_HAL_INTERRUPT_GPIO2
+#define CYGNUM_HAL_INTERRUPT_SLIC_B CYGNUM_HAL_INTERRUPT_GPIO3
+#define CYGNUM_HAL_INTERRUPT_DSP CYGNUM_HAL_INTERRUPT_GPIO4
+#define CYGNUM_HAL_INTERRUPT_IDE CYGNUM_HAL_INTERRUPT_GPIO5
+
+
+// NB: Commented out because of errata on reset function of watchdog timer
+//
+#if 0
+#define HAL_PLATFORM_RESET() \
+ CYG_MACRO_START \
+ cyg_uint32 __ctrl; \
+ /* By disabling interupts we will just hang in the loop below */ \
+ /* if for some reason the software reset fails. */ \
+ HAL_DISABLE_INTERRUPTS(__ctrl); \
+ *IXP425_OST_WDOG_KEY = 0x482e; \
+ *IXP425_OST_WDOG = 10; \
+ *IXP425_OST_WDOG_ENA = 5; \
+ for(;;); /* hang here forever if reset fails */ \
+ CYG_MACRO_END
+#else
+#define HAL_PLATFORM_RESET() CYG_EMPTY_STATEMENT
+#endif
+
+#endif // CYGONCE_HAL_PLF_INTS_H
diff --git a/ecos/packages/hal/arm/xscale/grg/current/include/pkgconf/mlt_arm_xscale_grg_ram.h b/ecos/packages/hal/arm/xscale/grg/current/include/pkgconf/mlt_arm_xscale_grg_ram.h
new file mode 100644
index 0000000..e8d712b
--- /dev/null
+++ b/ecos/packages/hal/arm/xscale/grg/current/include/pkgconf/mlt_arm_xscale_grg_ram.h
@@ -0,0 +1,18 @@
+// eCos memory layout - Fri Oct 20 05:56:24 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 (0)
+#define CYGMEM_REGION_ram_SIZE (0x02000000)
+#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 (0x02000000 - (size_t) CYG_LABEL_NAME (__heap1))
+
diff --git a/ecos/packages/hal/arm/xscale/grg/current/include/pkgconf/mlt_arm_xscale_grg_ram.ldi b/ecos/packages/hal/arm/xscale/grg/current/include/pkgconf/mlt_arm_xscale_grg_ram.ldi
new file mode 100644
index 0000000..102c9ff
--- /dev/null
+++ b/ecos/packages/hal/arm/xscale/grg/current/include/pkgconf/mlt_arm_xscale_grg_ram.ldi
@@ -0,0 +1,27 @@
+// eCos memory layout - Fri Oct 20 05:56:24 2000
+
+// This is a generated file - do not edit
+
+#include <cyg/infra/cyg_type.inc>
+
+MEMORY
+{
+ ram : ORIGIN = 0, LENGTH = 0x02000000
+}
+
+SECTIONS
+{
+ SECTIONS_BEGIN
+ SECTION_fixed_vectors (ram, 0x20, LMA_EQ_VMA)
+ SECTION_rom_vectors (ram, 0x20000, 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)
+ CYG_LABEL_DEFN(__heap1) = ALIGN (0x8);
+ SECTIONS_END
+}
diff --git a/ecos/packages/hal/arm/xscale/grg/current/include/pkgconf/mlt_arm_xscale_grg_ram.mlt b/ecos/packages/hal/arm/xscale/grg/current/include/pkgconf/mlt_arm_xscale_grg_ram.mlt
new file mode 100644
index 0000000..2ec5caf
--- /dev/null
+++ b/ecos/packages/hal/arm/xscale/grg/current/include/pkgconf/mlt_arm_xscale_grg_ram.mlt
@@ -0,0 +1,14 @@
+version 0
+region ram 0 02000000 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 20000 20000 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 1 0 1 heap1 heap1 !
+section heap1 0 8 0 0 0 0 0 0 !
+
diff --git a/ecos/packages/hal/arm/xscale/grg/current/include/pkgconf/mlt_arm_xscale_grg_rom.h b/ecos/packages/hal/arm/xscale/grg/current/include/pkgconf/mlt_arm_xscale_grg_rom.h
new file mode 100644
index 0000000..391d84a
--- /dev/null
+++ b/ecos/packages/hal/arm/xscale/grg/current/include/pkgconf/mlt_arm_xscale_grg_rom.h
@@ -0,0 +1,20 @@
+// eCos memory layout - Tue Jul 02 10:03:04 2002
+
+// This is a generated file - do not edit
+
+#ifndef __ASSEMBLER__
+#include <cyg/infra/cyg_type.h>
+#include <stddef.h>
+
+#endif
+#define CYGMEM_REGION_ram (0)
+#define CYGMEM_REGION_ram_SIZE (0x02000000)
+#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)
+#ifndef __ASSEMBLER__
+extern char CYG_LABEL_NAME (__heap1) [];
+#endif
+#define CYGMEM_SECTION_heap1 (CYG_LABEL_NAME (__heap1))
+#define CYGMEM_SECTION_heap1_SIZE (0x02000000 - (size_t) CYG_LABEL_NAME (__heap1))
diff --git a/ecos/packages/hal/arm/xscale/grg/current/include/pkgconf/mlt_arm_xscale_grg_rom.ldi b/ecos/packages/hal/arm/xscale/grg/current/include/pkgconf/mlt_arm_xscale_grg_rom.ldi
new file mode 100644
index 0000000..7e28700
--- /dev/null
+++ b/ecos/packages/hal/arm/xscale/grg/current/include/pkgconf/mlt_arm_xscale_grg_rom.ldi
@@ -0,0 +1,29 @@
+// eCos memory layout - Tue Jul 02 10:03:04 2002
+
+// This is a generated file - do not edit
+
+#include <cyg/infra/cyg_type.inc>
+
+MEMORY
+{
+ ram : ORIGIN = 0, LENGTH = 0x02000000
+ 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_mmu_tables (rom, ALIGN (0x4000), LMA_EQ_VMA)
+ SECTION_fixed_vectors (ram, 0x20, LMA_EQ_VMA)
+ SECTION_data (ram, 0x8000, FOLLOWING (.mmu_tables))
+ SECTION_bss (ram, ALIGN (0x4), LMA_EQ_VMA)
+ CYG_LABEL_DEFN(__heap1) = ALIGN (0x8);
+ SECTIONS_END
+}
diff --git a/ecos/packages/hal/arm/xscale/grg/current/include/pkgconf/mlt_arm_xscale_grg_rom.mlt b/ecos/packages/hal/arm/xscale/grg/current/include/pkgconf/mlt_arm_xscale_grg_rom.mlt
new file mode 100644
index 0000000..0ea7e31
--- /dev/null
+++ b/ecos/packages/hal/arm/xscale/grg/current/include/pkgconf/mlt_arm_xscale_grg_rom.mlt
@@ -0,0 +1,15 @@
+version 0
+region ram 0 02000000 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 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 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 1 0 1 mmu_tables mmu_tables !
+section mmu_tables 0 4000 0 1 0 0 0 1 data !
diff --git a/ecos/packages/hal/arm/xscale/grg/current/include/plf_io.h b/ecos/packages/hal/arm/xscale/grg/current/include/plf_io.h
new file mode 100644
index 0000000..6a487fc
--- /dev/null
+++ b/ecos/packages/hal/arm/xscale/grg/current/include/plf_io.h
@@ -0,0 +1,63 @@
+#ifndef CYGONCE_PLF_IO_H
+#define CYGONCE_PLF_IO_H
+
+//=============================================================================
+//
+// plf_io.h
+//
+// Platform specific IO support
+//
+//=============================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 2003 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): msalter
+// Contributors: msalter
+// Date: 2003-02-05
+// Purpose: Intel GRG IO support macros
+// Description:
+// Usage: #include <cyg/hal/plf_io.h>
+//
+//####DESCRIPTIONEND####
+//
+//=============================================================================
+
+#include <pkgconf/hal.h>
+#include <cyg/hal/hal_io.h> // IO macros
+#include <cyg/hal/grg.h>
+#include CYGBLD_HAL_PLF_INTS_H
+
+//-----------------------------------------------------------------------------
+// end of plf_io.h
+#endif // CYGONCE_PLF_IO_H
diff --git a/ecos/packages/hal/arm/xscale/grg/current/misc/redboot_RAM.ecm b/ecos/packages/hal/arm/xscale/grg/current/misc/redboot_RAM.ecm
new file mode 100644
index 0000000..547fa3b
--- /dev/null
+++ b/ecos/packages/hal/arm/xscale/grg/current/misc/redboot_RAM.ecm
@@ -0,0 +1,129 @@
+cdl_savefile_version 1;
+cdl_savefile_command cdl_savefile_version {};
+cdl_savefile_command cdl_savefile_command {};
+cdl_savefile_command cdl_configuration { description hardware template package };
+cdl_savefile_command cdl_package { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_component { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_option { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_interface { value_source user_value wizard_value inferred_value };
+
+cdl_configuration eCos {
+ description "" ;
+ hardware grg ;
+ template redboot ;
+ package -hardware CYGPKG_HAL_ARM current ;
+ package -hardware CYGPKG_HAL_ARM_XSCALE_CORE current ;
+ package -hardware CYGPKG_HAL_ARM_XSCALE_IXP425 current ;
+ package -hardware CYGPKG_HAL_ARM_XSCALE_GRG current ;
+ package -hardware CYGPKG_DEVS_FLASH_STRATA current ;
+ package -hardware CYGPKG_DEVS_FLASH_GRG current ;
+ package -hardware CYGPKG_DEVS_ETH_INTEL_I82559 current ;
+ package -hardware CYGPKG_DEVS_ETH_ARM_GRG_I82559 current ;
+ package -template CYGPKG_HAL current ;
+ package -template CYGPKG_INFRA current ;
+ package -template CYGPKG_REDBOOT current ;
+ package -template CYGPKG_ISOINFRA current ;
+ package -template CYGPKG_LIBC_STRING current ;
+ package -template CYGPKG_CRC current ;
+ package CYGPKG_IO_FLASH current ;
+ package CYGPKG_IO_ETH_DRIVERS current ;
+ package CYGPKG_MEMALLOC current ;
+ package CYGPKG_COMPRESS_ZLIB current ;
+};
+
+cdl_component CYG_HAL_STARTUP {
+ user_value RAM
+};
+
+cdl_option CYGBLD_BUILD_GDB_STUBS {
+ user_value 0
+};
+
+cdl_option CYGFUN_LIBC_STRING_BSD_FUNCS {
+ inferred_value 0
+};
+
+cdl_option CYGNUM_HAL_COMMON_INTERRUPTS_STACK_SIZE {
+ user_value 4096
+};
+
+cdl_option CYGDBG_HAL_COMMON_INTERRUPTS_SAVE_MINIMUM_CONTEXT {
+ user_value 0
+};
+
+cdl_option CYGDBG_HAL_COMMON_CONTEXT_SAVE_MINIMUM {
+ inferred_value 0
+};
+
+cdl_option CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS {
+ inferred_value 1
+};
+
+cdl_option CYGDBG_HAL_DEBUG_GDB_CTRLC_SUPPORT {
+ inferred_value 0
+};
+
+cdl_option CYGSEM_HAL_USE_ROM_MONITOR {
+ inferred_value 0 0
+};
+
+cdl_component CYGBLD_BUILD_REDBOOT {
+ user_value 1
+};
+
+cdl_option CYGBLD_REDBOOT_MIN_IMAGE_SIZE {
+ inferred_value 0x40000
+};
+
+cdl_component CYGSEM_REDBOOT_FLASH_CONFIG {
+ user_value 1
+};
+
+cdl_component CYGSEM_REDBOOT_BSP_SYSCALLS {
+ inferred_value 1
+};
+
+cdl_option CYGHWR_REDBOOT_ARM_LINUX_EXEC_ADDRESS_DEFAULT {
+ inferred_value 0x1600000
+};
+
+cdl_option CYGHWR_HAL_IXP425_PCI_NP_WORKAROUND {
+ inferred_value 1
+};
+
+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_BSD_FUNCS_HEADER {
+ inferred_value 1 <cyg/libc/string/bsdstring.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 CYGPKG_HAL_GDB_FILEIO {
+ user_value 1
+};
+
+cdl_option CYGHWR_REDBOOT_LINUX_EXEC_X_SWITCH {
+ user_value 1
+}
+
+cdl_option CYGSEM_REDBOOT_NETWORK_INIT_ONE_DEVICE {
+ user_value 1
+};
+
+cdl_option CYGHWR_HAL_ARM_BIGENDIAN {
+ user_value 1
+};
+
diff --git a/ecos/packages/hal/arm/xscale/grg/current/misc/redboot_RAMLE.ecm b/ecos/packages/hal/arm/xscale/grg/current/misc/redboot_RAMLE.ecm
new file mode 100644
index 0000000..2edc6e9
--- /dev/null
+++ b/ecos/packages/hal/arm/xscale/grg/current/misc/redboot_RAMLE.ecm
@@ -0,0 +1,132 @@
+cdl_savefile_version 1;
+cdl_savefile_command cdl_savefile_version {};
+cdl_savefile_command cdl_savefile_command {};
+cdl_savefile_command cdl_configuration { description hardware template package };
+cdl_savefile_command cdl_package { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_component { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_option { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_interface { value_source user_value wizard_value inferred_value };
+
+cdl_configuration eCos {
+ description "" ;
+ hardware grg ;
+ template redboot ;
+ package -hardware CYGPKG_HAL_ARM current ;
+ package -hardware CYGPKG_HAL_ARM_XSCALE_CORE current ;
+ package -hardware CYGPKG_HAL_ARM_XSCALE_IXP425 current ;
+ package -hardware CYGPKG_HAL_ARM_XSCALE_GRG current ;
+ package -hardware CYGPKG_DEVS_FLASH_STRATA current ;
+ package -hardware CYGPKG_DEVS_FLASH_GRG current ;
+ package -hardware CYGPKG_DEVS_ETH_INTEL_I82559 current ;
+ package -hardware CYGPKG_DEVS_ETH_ARM_GRG_I82559 current ;
+ package -template CYGPKG_HAL current ;
+ package -template CYGPKG_INFRA current ;
+ package -template CYGPKG_REDBOOT current ;
+ package -template CYGPKG_ISOINFRA current ;
+ package -template CYGPKG_LIBC_STRING current ;
+ package -template CYGPKG_CRC current ;
+ package CYGPKG_IO_FLASH current ;
+ package CYGPKG_IO_ETH_DRIVERS current ;
+ package CYGPKG_MEMALLOC current ;
+ package CYGPKG_COMPRESS_ZLIB current ;
+};
+
+cdl_component CYG_HAL_STARTUP {
+ user_value RAM
+};
+
+cdl_option CYGBLD_BUILD_GDB_STUBS {
+ user_value 0
+};
+
+cdl_option CYGFUN_LIBC_STRING_BSD_FUNCS {
+ inferred_value 0
+};
+
+cdl_option CYGNUM_HAL_COMMON_INTERRUPTS_STACK_SIZE {
+ user_value 4096
+};
+
+cdl_option CYGDBG_HAL_COMMON_INTERRUPTS_SAVE_MINIMUM_CONTEXT {
+ user_value 0
+};
+
+cdl_option CYGDBG_HAL_COMMON_CONTEXT_SAVE_MINIMUM {
+ inferred_value 0
+};
+
+cdl_option CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS {
+ inferred_value 1
+};
+
+cdl_option CYGDBG_HAL_DEBUG_GDB_CTRLC_SUPPORT {
+ inferred_value 0
+};
+
+cdl_option CYGSEM_HAL_USE_ROM_MONITOR {
+ inferred_value 0 0
+};
+
+cdl_component CYGBLD_BUILD_REDBOOT {
+ user_value 1
+};
+
+cdl_option CYGBLD_REDBOOT_MIN_IMAGE_SIZE {
+ inferred_value 0x40000
+};
+
+cdl_component CYGSEM_REDBOOT_FLASH_CONFIG {
+ user_value 1
+};
+
+cdl_component CYGSEM_REDBOOT_BSP_SYSCALLS {
+ inferred_value 1
+};
+
+cdl_option CYGHWR_REDBOOT_ARM_LINUX_EXEC_ADDRESS_DEFAULT {
+ inferred_value 0x1600000
+};
+
+cdl_option CYGHWR_HAL_IXP425_PCI_NP_WORKAROUND {
+ inferred_value 1
+};
+
+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_BSD_FUNCS_HEADER {
+ inferred_value 1 <cyg/libc/string/bsdstring.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 CYGPKG_HAL_GDB_FILEIO {
+ user_value 1
+};
+
+cdl_option CYGHWR_REDBOOT_LINUX_EXEC_X_SWITCH {
+ user_value 1
+}
+
+cdl_option CYGSEM_REDBOOT_NETWORK_INIT_ONE_DEVICE {
+ user_value 1
+};
+
+cdl_option CYGHWR_HAL_ARM_BIGENDIAN {
+ user_value 0
+};
+
+cdl_option CYGOPT_REDBOOT_FLASH_BYTEORDER {
+ user_value MSBFIRST
+}
diff --git a/ecos/packages/hal/arm/xscale/grg/current/misc/redboot_ROM.ecm b/ecos/packages/hal/arm/xscale/grg/current/misc/redboot_ROM.ecm
new file mode 100644
index 0000000..f895b86
--- /dev/null
+++ b/ecos/packages/hal/arm/xscale/grg/current/misc/redboot_ROM.ecm
@@ -0,0 +1,137 @@
+cdl_savefile_version 1;
+cdl_savefile_command cdl_savefile_version {};
+cdl_savefile_command cdl_savefile_command {};
+cdl_savefile_command cdl_configuration { description hardware template package };
+cdl_savefile_command cdl_package { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_component { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_option { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_interface { value_source user_value wizard_value inferred_value };
+
+cdl_configuration eCos {
+ description "" ;
+ hardware grg ;
+ template redboot ;
+ package -hardware CYGPKG_HAL_ARM current ;
+ package -hardware CYGPKG_HAL_ARM_XSCALE_CORE current ;
+ package -hardware CYGPKG_HAL_ARM_XSCALE_IXP425 current ;
+ package -hardware CYGPKG_HAL_ARM_XSCALE_GRG current ;
+ package -hardware CYGPKG_DEVS_FLASH_STRATA current ;
+ package -hardware CYGPKG_DEVS_FLASH_GRG current ;
+ package -hardware CYGPKG_DEVS_ETH_INTEL_I82559 current ;
+ package -hardware CYGPKG_DEVS_ETH_ARM_GRG_I82559 current ;
+ package -template CYGPKG_HAL current ;
+ package -template CYGPKG_INFRA current ;
+ package -template CYGPKG_REDBOOT current ;
+ package -template CYGPKG_ISOINFRA current ;
+ package -template CYGPKG_LIBC_STRING current ;
+ package -template CYGPKG_CRC current ;
+ package CYGPKG_IO_FLASH current ;
+ package CYGPKG_IO_ETH_DRIVERS current ;
+ package CYGPKG_MEMALLOC current ;
+ package CYGPKG_COMPRESS_ZLIB current ;
+};
+
+cdl_component CYG_HAL_STARTUP {
+ user_value ROM
+};
+
+cdl_option CYGBLD_BUILD_GDB_STUBS {
+ user_value 0
+};
+
+cdl_option CYGFUN_LIBC_STRING_BSD_FUNCS {
+ inferred_value 0
+};
+
+cdl_option CYGNUM_HAL_COMMON_INTERRUPTS_STACK_SIZE {
+ user_value 4096
+};
+
+cdl_option CYGDBG_HAL_COMMON_INTERRUPTS_SAVE_MINIMUM_CONTEXT {
+ user_value 0
+};
+
+cdl_option CYGDBG_HAL_COMMON_CONTEXT_SAVE_MINIMUM {
+ inferred_value 0
+};
+
+cdl_option CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS {
+ inferred_value 1
+};
+
+cdl_option CYGDBG_HAL_DEBUG_GDB_CTRLC_SUPPORT {
+ inferred_value 0
+};
+
+cdl_option CYGSEM_HAL_ROM_MONITOR {
+ user_value 1
+};
+
+cdl_option CYGSEM_HAL_USE_ROM_MONITOR {
+ inferred_value 0 0
+};
+
+cdl_component CYGBLD_BUILD_REDBOOT {
+ user_value 1
+};
+
+cdl_option CYGBLD_REDBOOT_MIN_IMAGE_SIZE {
+ inferred_value 0x40000
+};
+
+cdl_component CYGSEM_REDBOOT_FLASH_CONFIG {
+ user_value 1
+};
+
+cdl_component CYGSEM_REDBOOT_BSP_SYSCALLS {
+ inferred_value 1
+};
+
+cdl_option CYGHWR_REDBOOT_ARM_LINUX_EXEC_ADDRESS_DEFAULT {
+ inferred_value 0x1600000
+};
+
+cdl_option CYGHWR_HAL_IXP425_PCI_NP_WORKAROUND {
+ inferred_value 1
+};
+
+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_BSD_FUNCS_HEADER {
+ inferred_value 1 <cyg/libc/string/bsdstring.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_DNS_HEADER {
+ inferred_value 1 <cyg/ns/dns/dns.h>
+};
+
+cdl_option CYGPKG_HAL_GDB_FILEIO {
+ user_value 1
+};
+
+cdl_option CYGHWR_REDBOOT_LINUX_EXEC_X_SWITCH {
+ user_value 1
+}
+
+cdl_option CYGSEM_REDBOOT_NETWORK_INIT_ONE_DEVICE {
+ user_value 1
+};
+
+cdl_option CYGHWR_HAL_ARM_BIGENDIAN {
+ user_value 1
+};
+
diff --git a/ecos/packages/hal/arm/xscale/grg/current/misc/redboot_ROMLE.ecm b/ecos/packages/hal/arm/xscale/grg/current/misc/redboot_ROMLE.ecm
new file mode 100644
index 0000000..a804584
--- /dev/null
+++ b/ecos/packages/hal/arm/xscale/grg/current/misc/redboot_ROMLE.ecm
@@ -0,0 +1,140 @@
+cdl_savefile_version 1;
+cdl_savefile_command cdl_savefile_version {};
+cdl_savefile_command cdl_savefile_command {};
+cdl_savefile_command cdl_configuration { description hardware template package };
+cdl_savefile_command cdl_package { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_component { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_option { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_interface { value_source user_value wizard_value inferred_value };
+
+cdl_configuration eCos {
+ description "" ;
+ hardware grg ;
+ template redboot ;
+ package -hardware CYGPKG_HAL_ARM current ;
+ package -hardware CYGPKG_HAL_ARM_XSCALE_CORE current ;
+ package -hardware CYGPKG_HAL_ARM_XSCALE_IXP425 current ;
+ package -hardware CYGPKG_HAL_ARM_XSCALE_GRG current ;
+ package -hardware CYGPKG_DEVS_FLASH_STRATA current ;
+ package -hardware CYGPKG_DEVS_FLASH_GRG current ;
+ package -hardware CYGPKG_DEVS_ETH_INTEL_I82559 current ;
+ package -hardware CYGPKG_DEVS_ETH_ARM_GRG_I82559 current ;
+ package -template CYGPKG_HAL current ;
+ package -template CYGPKG_INFRA current ;
+ package -template CYGPKG_REDBOOT current ;
+ package -template CYGPKG_ISOINFRA current ;
+ package -template CYGPKG_LIBC_STRING current ;
+ package -template CYGPKG_CRC current ;
+ package CYGPKG_IO_FLASH current ;
+ package CYGPKG_IO_ETH_DRIVERS current ;
+ package CYGPKG_MEMALLOC current ;
+ package CYGPKG_COMPRESS_ZLIB current ;
+};
+
+cdl_component CYG_HAL_STARTUP {
+ user_value ROM
+};
+
+cdl_option CYGBLD_BUILD_GDB_STUBS {
+ user_value 0
+};
+
+cdl_option CYGFUN_LIBC_STRING_BSD_FUNCS {
+ inferred_value 0
+};
+
+cdl_option CYGNUM_HAL_COMMON_INTERRUPTS_STACK_SIZE {
+ user_value 4096
+};
+
+cdl_option CYGDBG_HAL_COMMON_INTERRUPTS_SAVE_MINIMUM_CONTEXT {
+ user_value 0
+};
+
+cdl_option CYGDBG_HAL_COMMON_CONTEXT_SAVE_MINIMUM {
+ inferred_value 0
+};
+
+cdl_option CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS {
+ inferred_value 1
+};
+
+cdl_option CYGDBG_HAL_DEBUG_GDB_CTRLC_SUPPORT {
+ inferred_value 0
+};
+
+cdl_option CYGSEM_HAL_ROM_MONITOR {
+ user_value 1
+};
+
+cdl_option CYGSEM_HAL_USE_ROM_MONITOR {
+ inferred_value 0 0
+};
+
+cdl_component CYGBLD_BUILD_REDBOOT {
+ user_value 1
+};
+
+cdl_option CYGBLD_REDBOOT_MIN_IMAGE_SIZE {
+ inferred_value 0x40000
+};
+
+cdl_component CYGSEM_REDBOOT_FLASH_CONFIG {
+ user_value 1
+};
+
+cdl_component CYGSEM_REDBOOT_BSP_SYSCALLS {
+ inferred_value 1
+};
+
+cdl_option CYGHWR_REDBOOT_ARM_LINUX_EXEC_ADDRESS_DEFAULT {
+ inferred_value 0x1600000
+};
+
+cdl_option CYGHWR_HAL_IXP425_PCI_NP_WORKAROUND {
+ inferred_value 1
+};
+
+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_BSD_FUNCS_HEADER {
+ inferred_value 1 <cyg/libc/string/bsdstring.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_DNS_HEADER {
+ inferred_value 1 <cyg/ns/dns/dns.h>
+};
+
+cdl_option CYGPKG_HAL_GDB_FILEIO {
+ user_value 1
+};
+
+cdl_option CYGHWR_REDBOOT_LINUX_EXEC_X_SWITCH {
+ user_value 1
+}
+
+cdl_option CYGHWR_HAL_ARM_BIGENDIAN {
+ user_value 0
+};
+
+cdl_option CYGSEM_REDBOOT_NETWORK_INIT_ONE_DEVICE {
+ user_value 1
+};
+
+cdl_option CYGOPT_REDBOOT_FLASH_BYTEORDER {
+ user_value MSBFIRST
+}
diff --git a/ecos/packages/hal/arm/xscale/grg/current/src/grg_misc.c b/ecos/packages/hal/arm/xscale/grg/current/src/grg_misc.c
new file mode 100644
index 0000000..96fd98b
--- /dev/null
+++ b/ecos/packages/hal/arm/xscale/grg/current/src/grg_misc.c
@@ -0,0 +1,131 @@
+//==========================================================================
+//
+// grg_misc.c
+//
+// HAL misc board support code for Intel XScale GRG
+//
+//==========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//==========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): msalter
+// Contributors: msalter
+// Date: 2003-02-05
+// 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_ixp425.h> // Hardware definitions
+#include <cyg/hal/grg.h> // Platform specifics
+
+#include <cyg/infra/diag.h> // diag_printf
+
+//
+// Platform specific initialization
+//
+
+void
+plf_hardware_init(void)
+{
+ // POWER_FAIL IRQ
+ HAL_GPIO_OUTPUT_DISABLE(GPIO_PWR_FAIL_IRQ_N);
+ HAL_INTERRUPT_CONFIGURE(CYGNUM_HAL_INTERRUPT_PWR_FAIL, 1, 0);
+
+ // DSL IRQ
+ HAL_GPIO_OUTPUT_DISABLE(GPIO_DSL_IRQ_N);
+ HAL_INTERRUPT_CONFIGURE(CYGNUM_HAL_INTERRUPT_DSL, 1, 0);
+
+ // SLIC_A IRQ
+ HAL_GPIO_OUTPUT_DISABLE(GPIO_SLIC_A_IRQ_N);
+ HAL_INTERRUPT_CONFIGURE(CYGNUM_HAL_INTERRUPT_SLIC_A, 1, 0);
+
+ // SLIC_B IRQ
+ HAL_GPIO_OUTPUT_DISABLE(GPIO_SLIC_B_IRQ_N);
+ HAL_INTERRUPT_CONFIGURE(CYGNUM_HAL_INTERRUPT_SLIC_B, 1, 0);
+
+ // DSP IRQ
+ HAL_GPIO_OUTPUT_DISABLE(GPIO_DSP_IRQ_N);
+ HAL_INTERRUPT_CONFIGURE(CYGNUM_HAL_INTERRUPT_DSP, 1, 0);
+
+ // IDE IRQ
+ HAL_GPIO_OUTPUT_DISABLE(GPIO_IDE_IRQ_N);
+ HAL_INTERRUPT_CONFIGURE(CYGNUM_HAL_INTERRUPT_IDE, 1, 0);
+
+ // IO RESET_N (DSP/SLICs)
+ HAL_GPIO_OUTPUT_SET(GPIO_IO_RESET_N);
+ HAL_GPIO_OUTPUT_ENABLE(GPIO_IO_RESET_N);
+
+ // SPI_CS1_N
+ HAL_GPIO_OUTPUT_SET(GPIO_SPI_CS1_N);
+ HAL_GPIO_OUTPUT_ENABLE(GPIO_SPI_CS1_N); // Eth PHY
+
+ // SPI_CS0_N
+ HAL_GPIO_OUTPUT_SET(GPIO_SPI_CS0_N);
+ HAL_GPIO_OUTPUT_ENABLE(GPIO_SPI_CS0_N); // SLICs
+
+ // SPI_SCK
+ HAL_GPIO_OUTPUT_CLEAR(GPIO_SPI_SCK);
+ HAL_GPIO_OUTPUT_ENABLE(GPIO_SPI_SCK);
+
+ // SPI_SDI
+ HAL_GPIO_OUTPUT_CLEAR(GPIO_SPI_SDI);
+ HAL_GPIO_OUTPUT_ENABLE(GPIO_SPI_SDI);
+
+ // SPI_SDI
+ HAL_GPIO_OUTPUT_DISABLE(GPIO_SPI_SDI);
+
+#ifdef CYGPKG_IO_PCI
+ extern void hal_plf_pci_init(void);
+ hal_plf_pci_init();
+#endif
+}
+
+// ------------------------------------------------------------------------
+// EOF grg_misc.c
diff --git a/ecos/packages/hal/arm/xscale/grg/current/src/grg_pci.c b/ecos/packages/hal/arm/xscale/grg/current/src/grg_pci.c
new file mode 100644
index 0000000..fc448e9
--- /dev/null
+++ b/ecos/packages/hal/arm/xscale/grg/current/src/grg_pci.c
@@ -0,0 +1,132 @@
+//==========================================================================
+//
+// grg_pci.c
+//
+// HAL PCI board support code for Intel XScale GRG
+//
+//==========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//==========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): msalter
+// Contributors: msalter
+// Date: 2003-02-05
+// Purpose: HAL PCI board support
+// Description: Implementations of HAL board interfaces
+//
+//####DESCRIPTIONEND####
+//
+//========================================================================*/
+#include <pkgconf/hal.h>
+#include <pkgconf/system.h>
+#include CYGBLD_HAL_PLATFORM_H
+
+#ifdef CYGPKG_IO_PCI
+
+#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_if.h> // calling interface API
+#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/io/pci_hw.h>
+#include <cyg/io/pci.h>
+
+
+#define IXP425_PCI_MAX_DEV 4
+#define IXP425_PCI_IRQ_LINES 4
+
+// PCI pin mappings
+#define PCI_CLK_GPIO 14 // CLK0
+#define PCI_RESET_GPIO 12
+#define PCI_INTA_GPIO 11
+
+#define INTA CYGNUM_HAL_INTERRUPT_GPIO11
+
+void
+cyg_hal_plf_pci_translate_interrupt(cyg_uint32 bus, cyg_uint32 devfn,
+ CYG_ADDRWORD *vec, cyg_bool *valid)
+{
+ *vec = INTA;
+ *valid = true;
+}
+
+
+#define HAL_PCI_CLOCK_ENABLE() \
+ *IXP425_GPCLKR |= GPCLKR_CLK0_ENABLE; // GPIO(0) used for PCI clock
+
+#define HAL_PCI_CLOCK_DISABLE() \
+ *IXP425_GPCLKR &= ~GPCLKR_CLK0_ENABLE; // GPIO(0) used for PCI clock
+
+#define HAL_PCI_CLOCK_CONFIG() \
+ *IXP425_GPCLKR |= GPCLKR_CLK0_PCLK2;
+
+#define HAL_PCI_RESET_ASSERT() \
+ HAL_GPIO_OUTPUT_CLEAR(PCI_RESET_GPIO);
+
+#define HAL_PCI_RESET_DEASSERT() \
+ HAL_GPIO_OUTPUT_SET(PCI_RESET_GPIO);
+
+void
+hal_plf_pci_init(void)
+{
+#if defined(CYG_HAL_STARTUP_ROM) || defined(CYG_HAL_STARTUP_ROMRAM)
+ HAL_PCI_RESET_ASSERT();
+ HAL_PCI_CLOCK_DISABLE();
+
+ // Set GPIO line direction
+ HAL_GPIO_OUTPUT_ENABLE(PCI_CLK_GPIO);
+ HAL_GPIO_OUTPUT_ENABLE(PCI_RESET_GPIO);
+ HAL_GPIO_OUTPUT_DISABLE(PCI_INTA_GPIO);
+
+ // configure PCI interrupt lines for active low irq
+ HAL_INTERRUPT_CONFIGURE(INTA, 1, 0);
+
+ // wait 1ms to satisfy "minimum reset assertion time" of the PCI spec.
+ HAL_DELAY_US(1000);
+ HAL_PCI_CLOCK_CONFIG();
+ HAL_PCI_CLOCK_ENABLE();
+
+ // wait 100us to satisfy "minimum reset assertion time from clock stable"
+ // requirement of the PCI spec.
+ HAL_DELAY_US(100);
+ HAL_PCI_RESET_DEASSERT();
+#endif
+}
+
+#endif // CYGPKG_IO_PCI
diff --git a/ecos/packages/hal/arm/xscale/iop310/current/ChangeLog b/ecos/packages/hal/arm/xscale/iop310/current/ChangeLog
new file mode 100644
index 0000000..f415ead
--- /dev/null
+++ b/ecos/packages/hal/arm/xscale/iop310/current/ChangeLog
@@ -0,0 +1,494 @@
+2009-10-16 John Dallaway <john@dallaway.org.uk>
+
+ * cdl/hal_arm_xscale_iop310.cdl: Parent under
+ CYGPKG_HAL_ARM_XSCALE_CORE.
+
+2009-01-31 Bart Veer <bartv@ecoscentric.com>
+
+ * cdl/hal_arm_xscale_iop310.cdl: update compiler flags for gcc 4.x
+
+2009-01-24 Bart Veer <bartv@ecoscentric.com>
+
+ * cdl/hal_arm_xscale_iop310.cdl: switch from arm-elf-gcc to
+ arm-eabi-gcc.
+
+2003-12-05 Andrew Lunn <andrew.lunn@ascom.ch>
+
+ * include/hal_var_ints.h: hal_delay_us() is a C function.
+ * include/hal_diag.h: hal_delay_us() is a C function.
+
+2003-07-18 Nick Garnett <nickg@balti.calivar.com>
+
+ * cdl/hal_arm_xscale_iop310.cdl:
+ Changed values for CYGNUM_HAL_RTC_NUMERATOR,
+ CYGNUM_HAL_RTC_DENOMINATOR and CYGNUM_HAL_RTC_PERIOD to
+ "default_value" from "calculated". This makes it easier
+ to change these values globally.
+
+2003-02-04 Mark Salter <msalter@redhat.com>
+
+ * include/hal_iop310.h (IOP310_EARLY_PCI_SETUP): Fix ifdef test.
+
+ * cdl/hal_arm_xscale_iop310.cdl: Remove CYGSEM_HAL_ARM_IOP310_BTB.
+
+2003-01-22 Mark Salter <msalter@redhat.com>
+
+ * include/var_io.h: Remove unused duplicate code.
+ * include/hal_iop310.h: Add some more register definitions.
+ * src/iop310_pci.c (cyg_hal_plf_pci_init): Use new register
+ definitions.
+
+2002-11-13 Mark Salter <msalter@redhat.com>
+
+ * src/iop310_pci.c (cyg_hal_plf_pci_init): Reorganize to deal with
+ early PCI setup. Also fix support for primary side bridges when
+ acting as PCI host.
+
+ * include/hal_iop310.h (IOP310_EARLY_PCI_SETUP): Define asm macro to
+ be used by platform setup code to do early (pre-ECC scrub) PCI setup.
+
+2002-11-12 Gary Thomas <gary@mlbassoc.com>
+
+ * src/iop310_pci.c:
+ * src/iop310_misc.c:
+ * src/hal_diag.c:
+ * include/var_io.h:
+ * include/hal_var_ints.h:
+ * include/hal_diag.h:
+ * include/hal_iop310.h: Reorg variant (chipset) alongside other
+ Xscale versions.
+
+2002-09-19 Mark Salter <msalter@redhat.com>
+
+ * src/iq80310_misc.c (hal_hardware_init): Call hal_xscale_core_init.
+ (iq80310_program_new_stack): Remove.
+ Remove debug support which is now in xscale core package.
+ * misc/redboot_RAM.ecm: Add CYGPKG_HAL_ARM_XSCALE_CORE package.
+ * misc/redboot_RAMA.ecm: Ditto.
+ * misc/redboot_ROM.ecm: Ditto.
+ * misc/redboot_ROMA.ecm: Ditto.
+ * include/plf_io.h (CYGARC_PHYSICAL_ADDRESS): Define.
+ * include/hal_platform_setup.h (DCACHE_FLUSH_AREA): Remove define.
+ Remove debug unit init code.
+ * include/hal_iq80310.h (DCACHE_FLUSH_AREA): Define.
+ * cdl/hal_arm_iq80310.cdl: Remove HAL_ARCH_PROGRAM_NEW_STACK and
+ add CYGBLD_HAL_VAR_H.
+
+2002-08-29 Mark Salter <msalter@redhat.com>
+
+ * include/plf_stub.h: Add HAL_STUB_HW_BREAKPOINT_LIST_SIZE and
+ HAL_STUB_HW_WATCHPOINT_LIST_SIZE.
+
+2002-08-12 Mark Salter <msalter@redhat.com>
+
+ * cdl/hal_arm_iq80310.cdl: Remove CYGSEM_REDBOOT_ARM_LINUX_BOOT ref.
+ * misc/redboot_ROM.ecm: Ditto.
+ * misc/redboot_RAM.ecm: Ditto.
+
+2002-08-06 Gary Thomas <gary@chez-thomas.org>
+2002-08-06 Motoya Kurotsu <kurotsu@allied-telesis.co.jp>
+
+ * src/hal_diag.c: I/O channel data can't be constant - contains
+ timeout information which can be changed.
+
+2002-05-28 Mark Salter <msalter@redhat.com>
+
+ * cdl/hal_arm_iq80310.cdl: Add Linux boot support.
+ * misc/redboot_RAM.ecm: Ditto.
+ * misc/redboot_ROM.ecm: Ditto.
+
+ * include/hal_iq80310.h (CYGARC_HAL_MMU_OFF): Xscale has
+ special requirements for turning off MMU.
+
+2002-05-24 Jonathan Larmour <jlarmour@redhat.com>
+
+ * src/hal_diag.c: Support dynamic getting and setting of baud rates.
+ * cdl/hal_arm_iq80310.cdl: implements
+ CYGINT_HAL_VIRTUAL_VECTOR_COMM_BAUD_SUPPORT
+
+2002-05-14 Jesper Skov <jskov@redhat.com>
+
+ * include/plf_io.h (CYGARC_VIRT_TO_BUS, CYGARC_UNCACHED_ADDRESS):
+ Fixed compiler warnings.
+
+2002-05-07 Gary Thomas <gthomas@redhat.com>
+
+ * cdl/hal_arm_iq80310.cdl:
+ Standardize CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_DEFAULT usage.
+
+2002-04-22 Jonathan Larmour <jlarmour@redhat.com>
+
+ * misc/redboot_RAM.ecm: Enable GDB remote file I/O support.
+ * misc/redboot_RAMA.ecm: Ditto.
+ * misc/redboot_ROM.ecm: Ditto.
+ * misc/redboot_ROMA.ecm: Ditto.
+
+2002-04-16 John Dallaway <jld@redhat.com>
+
+ * cdl/hal_arm_iq80321.cdl: Use arm-elf toolchain by default.
+
+2002-03-06 Jesper Skov <jskov@redhat.com>
+
+ * misc/redboot_RAM.ecm: Added dns and zlib support.
+ * misc/redboot_ROM.ecm: Same.
+
+2002-02-22 Mark Salter <msalter@redhat.com>
+
+ * src/iq80310_misc.c (cyg_hal_plf_hw_breakpoint): Fix use of wrong reg.
+
+2002-02-06 Mark Salter <msalter@redhat.com>
+
+ * include/hal_platform_setup.h: Fix condition of some I2C bit tests.
+
+2002-02-04 Mark Salter <msalter@redhat.com>
+
+ * include/hal_platform_setup.h: Fix bad insns in I2C code.
+
+2002-01-28 Jesper Skov <jskov@redhat.com>
+
+ * src/iq80310_misc.c (hal_hardware_init): Fix warning.
+
+ * cdl/hal_arm_iq80310.cdl: Removed explicit plf_io.h declaration.
+
+2002-01-16 Hugo Tyson <hmt@redhat.com>
+
+ * include/hal_platform_ints.h (HAL_CLOCK_REINITIALIZE): Better
+ names for macro args, and the freqency is now signed. -ve means
+ don't set the clock, just tell me what you would do.
+
+ * src/iq80310_misc.c (hal_clock_reinitialize): Always return a
+ nearby good value; don't set h/w if <0. Convoluted logic changes
+ to support that.
+
+2002-01-14 Hugo Tyson <hmt@redhat.com>
+
+ * include/hal_platform_ints.h (HAL_CLOCK_REINITIALIZE): New macro
+ which calls the below, also a prototype for it.
+
+ * src/iq80310_misc.c (hal_clock_reinitialize): New routine to
+ reset the clock to a different frequency. This is for GPROF type
+ profiling use only; not general purpose eCos usage.
+
+2002-01-04 Mark Salter <msalter@redhat.com>
+
+ * include/hal_platform_setup.h: Turn on ECC for uncached alias of RAM.
+
+2002-01-03 Mark Salter <msalter@redhat.com>
+
+ * misc/redboot_ROM.ecm: Use generic i82559 package.
+ * misc/redboot_ROMA.ecm: Ditto.
+ * misc/redboot_RAM.ecm: Ditto.
+ * misc/redboot_RAMA.ecm: Ditto.
+
+ * include/plf_io.h (CYGARC_UNCACHED_ADDRESS): New macro to return
+ uncached alias for a cached address.
+ (CYGARC_VIRT_TO_BUS): Macro to convert virtual to physical addresses.
+ * include/hal_platform_setup.h: Add uncached alias for first 128M of
+ SDRAM.
+
+2001-10-03 Jonathan Larmour <jlarmour@redhat.com>
+
+ * src/diag/io_utils.c: Switch to diag_printf from printf.
+ * src/diag/iq80310.h: Ditto.
+ * src/diag/memtest.c: Ditto, and don't define printf prototype.
+
+2001-08-27 Mark Salter <msalter@redhat.com>
+
+ * cdl/hal_arm_iq80310.cdl (CYGSEM_HAL_ARM_IQ80310_BTB): New option.
+ (CYGSEM_HAL_ARM_IQ80310_CLEAR_PCI_RETRY) New option.
+
+ * src/iq80310_pci.c (cyg_hal_plf_pci_init): Clear PCI retry based on
+ CYGSEM_HAL_ARM_IQ80310_CLEAR_PCI_RETRY.
+
+ * include/hal_platform_setup.h: Turn on BTB based on configure option.
+
+2001-08-24 Mark Salter <msalter@redhat.com>
+
+ * src/iq80310_misc.c (iq80310_program_new_stack): Convert to inline
+ asm so that code generation differences won't break it.
+
+2001-08-15 Mark Salter <msalter@redhat.com>
+
+ * include/hal_iq80310.h: Fix size of PATUSR, SATUSR, PSR, and SSR regs.
+ Make all register pointers volatile.
+
+ * src/diag/flash.c: First page of flash now remapped to 0xd0000000.
+
+2001-08-04 Mark Salter <msalter@redhat.com>
+
+ * include/hal_platform_setup.h: Fix mapping so first MB of SDRAM has
+ ECC turned on. Now map first 4K of flash at 0xd0000000.
+
+2001-06-21 Jonathan Larmour <jlarmour@redhat.com>
+
+ * images/*: Remove. Don't bloat repository with things already on
+ the web.
+
+2001-04-30 Gary Thomas <gthomas@redhat.com>
+
+ * include/hal_platform_setup.h: Remove #undef CYG_HAL_ROM_RESET_USES_JUMP
+ since this is no longer used.
+
+2001-04-18 Gary Thomas <gthomas@redhat.com>
+
+ * include/hal_platform_setup.h: Override CYG_HAL_ROM_RESET_USES_JUMP
+ to avoid addressing problems with ROM startup mode.
+
+2001-04-17 Mark Salter <msalter@redhat.com>
+
+ * cdl/hal_arm_iq80310.cdl: Implement CYGINT_HAL_ARM_MEM_REAL_REGION_TOP
+ (CYGBLD_GLOBAL_CFLAGS): Add -ffunction-sections and -fdata-sections.
+ * src/iq80310_misc.c (hal_arm_mem_real_region_top): New function.
+
+2001-04-16 Gary Thomas <gthomas@redhat.com>
+
+ * cdl/hal_arm_iq80310.cdl: Add CDL to describe CPU family.
+
+2001-04-10 Mark Salter <msalter@redhat.com>
+
+ * include/hal_platform_setup.h: Turn on multi-bit RAM error reporting.
+
+2001-04-03 Mark Salter <msalter@redhat.com>
+
+ * src/diag/flash.c: Don't compile unless CYGPKG_IO_FLASH defined.
+ * src/diag/xscale_test.c (testMenu): Only add flash_test if
+ CYGPKG_IO_FLASH is defined.
+
+2001-03-31 Mark Salter <msalter@redhat.com>
+
+ * src/diag/xscale_test.c: Merge in latest changes from Cyclone.
+ * src/diag/iq80310.h: Ditto.
+ * src/diag/external_timer.c: Ditto.
+
+2001-03-30 Mark Salter <msalter@redhat.com>
+
+ * misc/redboot_RAM.ecm: Disable CYGSEM_REDBOOT_FIS_CRC_CHECK
+ and CYGSEM_IO_FLASH_VERIFY_PROGRAM.
+ * misc/redboot_RAMA.ecm: Ditto.
+ * misc/redboot_ROM.ecm: Ditto.
+ * misc/redboot_ROMA.ecm: Ditto.
+
+ * include/pkgconf/mlt_arm_iq80310_rom.h: Fix heap1_SIZE.
+ * include/pkgconf/mlt_arm_iq80310_ram.h Ditto:
+ * include/pkgconf/mlt_arm_iq80310_ram.mlt: Remove PCI window.
+
+ * include/hal_platform_setup.h: Fix page table comment.
+
+2001-03-12 Jonathan Larmour <jlarmour@redhat.com>
+
+ * src/iq80310_misc.c: Ensure case ranges have spaces around
+ identifiers to allow correct parsing by compiler.
+
+2001-02-27 Jonathan Larmour <jlarmour@redhat.com>
+
+ * src/diag/pci_bios.h: Remove CVS-unfriendly keyword substitutions
+
+2001-02-23 Jesper Skov <jskov@redhat.com>
+
+ * include/hal_cache.h (HAL_FLASH_CACHES_OLD_MACROS): This platform
+ uses deprecated cache handling macros.
+
+2001-02-23 Gary Thomas <gthomas@redhat.com>
+
+ * misc/redboot_ROMA.ecm: Renamed from redboot_ROMA.cfg
+
+ * misc/redboot_RAMA.ecm: Renamed from redboot_RAMA.cfg
+
+ * misc/redboot_ROM.ecm: Renamed from redboot_ROM.cfg
+
+ * misc/redboot_RAM.ecm: Renamed from redboot_RAM.cfg
+
+2001-02-13 Gary Thomas <gthomas@redhat.com>
+
+ * src/iq80310_misc.c (hal_IRQ_handler):
+ Return CYGNUM_HAL_INTERRUPT_NONE for spurious interrupts.
+
+2001-02-08 Jesper Skov <jskov@redhat.com>
+
+ * src/hal_diag.c: Replace CYGSEM_HAL_DIAG_MANGLER_None with
+ CYGDBG_HAL_DIAG_TO_DEBUG_CHAN.
+
+2001-02-07 Mark Salter <msalter@redhat.com>
+
+ * src/diag/external_timer.c (counter_test): Fix printf format
+ string to work with stripped down RedBoot printf.(counter_test):
+
+2001-02-06 Mark Salter <msalter@redhat.com>
+
+ * src/diag/external_timer.c: Merged in Cyclone changes.
+ * src/diag/interrupts.c: Ditto.
+ * src/diag/memtest.c: Ditto.
+ * src/diag/xscale_test.c: Ditto.
+
+2001-02-02 Mark Salter <msalter@redhat.com>
+
+ * src/diag/xscale_test.c (seven_segment_display): Use volatile for
+ delay loop variable to avoid optimizing it away.
+
+ * src/diag/flash.c (flash_buffer): Change huge array (.bss) to a
+ pointer to scratchpad RAM above RedBoot.
+
+ * src/iq80310_misc.c (hal_hardware_init): Don't enable FIQ (for now).
+ (cyg_hal_plf_is_stopped_by_hardware): Check for stopped by BKPT insn.
+
+ * misc/redboot_ROM.cfg (CYGNUM_IO_ETH_DRIVERS_NUM_PKT): Set value to 2.
+ * misc/redboot_ROMA.cfg: Ditto.
+ * misc/redboot_RAM.cfg: Ditto.
+ * misc/redboot_RAMA.cfg: Ditto.
+
+2001-01-31 Mark Salter <msalter@redhat.com>
+
+ * src/iq80310_pci.c (__pci_abort_handler): Use naked attribute for
+ use as abort handler.
+
+ * src/iq80310_misc.c (_scrub_ecc): New function.
+ (hal_IRQ_handler): Fix switched sensing of FIQ/IRQ.
+ (hal_hardware_init): Install handlers for NMI FIQs. Fix switched
+ installation of FIQ/IRQ ISRs.
+
+ * include/hal_iq80310.h (RFR_INIT_VAL): Double refresh interval.
+ Add more register definitions.
+
+ * include/hal_platform_setup.h: Add support for baterry test.
+ Enable Yavapai single-bit error correction.
+
+ * src/diag/*: Integrate latest Cyclone code. Add RHEPL to contributed
+ files.
+
+2001-01-31 Jesper Skov <jskov@redhat.com>
+
+ * src/hal_diag.c: Replaced CYGDBG_HAL_DIAG_DISABLE_GDB_PROTOCOL
+ with CYGSEM_HAL_DIAG_MANGLER_None
+
+ * include/hal_diag.h: Fix hal_delay_us declaration.
+
+2001-01-26 Jesper Skov <jskov@redhat.com>
+
+ * src/hal_diag.c: Removed CYGSEM_HAL_VIRTUAL_VECTOR_DIAG check.
+ * include/plf_stub.h: Moved reset macro to
+ * include/hal_platform_ints.h: this file.
+
+2001-01-11 Mark Salter <msalter@redhat.com>
+
+ * include/hal_platform_setup.h: Remove hardcoded position dependencies
+ in page table setup.
+
+ * cdl/hal_arm_iq80310.cdl (CYGSEM_HAL_ARM_IQ80310_ARMBOOT): New
+ bool option. If true, modifies ROM startup so that we coexist with
+ ARM bootloader.
+
+ * include/pkgconf/mlt_arm_iq80310_roma.mlt: New file. ROM statrup
+ with modified start address to coexist with ARM bootloader.
+ * include/pkgconf/mlt_arm_iq80310_roma.h: Regenerated.
+ * include/pkgconf/mlt_arm_iq80310_roma.ldi: Regenerated.
+
+ * misc/redboot_ROMA.cfg: RedBoot configuration for ROM startup by
+ ARM booloader in FLASH boot sector.
+ * misc/redboot_RAMA.cfg: RedBoot configuration for RAM startup with
+ ARM booloader in FLASH boot sector.
+
+2001-01-08 Mark Salter <msalter@redhat.com>
+
+ * src/diag/diag.c (do_hdwr_diag): Turn off debug channel interrupt
+ and reset PCI bus before calling Cyclone diag code.
+
+ * src/diag/xscale_test.c (hdwr_diag): Uncomment call to
+ sys_pci_device_init.
+
+2001-01-05 Mark Salter <msalter@redhat.com>
+
+ * src/iq80310_misc.c (iq80310_program_new_stack): New function to
+ setup stack for programs called by RedBoot.
+ * cdl/hal_arm_iq80310.cdl: Add define for HAL_ARCH_PROGRAM_NEW_STACK.
+ (Merged from XScale branch).
+
+ * cdl/hal_arm_iq80310.cdl: Add compile of Cyclone diag code.
+ * src/diag: New directory with IQ80310 hw diag code from Cyclone.
+
+2000-12-21 Mark Salter <msalter@redhat.com>
+
+ * src/iq80310_pci.c (cyg_hal_plf_pci_init): Play nice with PC BIOS.
+ (pci_config_cleanup): Don't use fixed bus numbers.
+
+ * include/plf_io.h (HAL_PCI_TRANSLATE_INTERRUPT): Don't use fixed
+ secondary bus number.
+
+ * include/hal_platform_setup.h: Increase reset delay to 60ms.
+ Remove dead code.
+
+2000-11-22 Mark Salter <msalter@redhat.com>
+
+ * src/hal_diag.c: Support 57600 baud.
+ * cdl/hal_arm_iq80310.cdl: Accept 57600 as legal baudrate.
+
+ * misc/redboot_RAM.cfg: Set CYGBLD_REDBOOT_MIN_IMAGE_SIZE to 0x40000.
+ * misc/redboot_ROM.cfg: Ditto.
+
+2000-11-19 Mark Salter <msalter@redhat.com>
+
+ * src/iq80310_misc.c (hal_clock_read): Fix timer bit juggling.
+
+2000-11-19 Gary Thomas <gthomas@redhat.com>
+
+ * cdl/hal_arm_iq80310.cdl: Define CYGBLD_HAL_PLATFORM_IO_H.
+
+2000-11-16 Mark Salter <msalter@redhat.com>
+
+ * src/iq80310_misc.c: Add support for external timer as RTC.
+ (nirq_ISR): Correct dispatch for X3 interrupts.
+
+ * include/hal_platform_ints.h (CYGNUM_HAL_INTERRUPT_RTC): Use ext timer.
+ (HAL_DELAY_US): Define.
+
+ * cdl/hal_arm_iq80310.cdl: Correct CYGNUM_HAL_RTC_PERIOD.
+
+2000-11-06 Mark Salter <msalter@redhat.com>
+
+ * misc/redboot_RAM.cfg: Turn on CYGSEM_REDBOOT_BSP_SYSCALLS.
+ * misc/redboot_ROM.cfg: Ditto.
+
+2000-11-04 Mark Salter <msalter@redhat.com>
+
+ * misc/redboot_RAM.cfg: Add in PCI and ethernet.
+ * misc/redboot_ROM.cfg: Ditto.
+
+ * include/plf_io.h: Fleshed out PCI support.
+
+ * cdl/hal_arm_iq80310.cdl: Add iq80310_pci.C for compile.
+ Change default baud to 115200.
+
+ * src/iq80310_pci.c: New file. HAL pci support.
+
+ * include/plf_stub.h: Reworked HW watchpoint/breakpoint support.
+
+ * src/iq80310_misc.c (hal_hardware_init): Remove DSU setup.
+ (cyg_hal_plf_hw_watchpoint): Support one range instead of two
+ single byte locations.
+ (cyg_hal_plf_is_stopped_by_hardware): Rework interface to return
+ reason for hardware stop and data address.
+
+ * include/hal_platform_setup.h (PLATFORM_SETUP1): Clear DSU state.
+
+//===========================================================================
+// ####GPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002, 2009 Free Software Foundation, Inc.
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 2 or (at your option) any
+// later version.
+//
+// This program is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the
+// Free Software Foundation, Inc., 51 Franklin Street,
+// Fifth Floor, Boston, MA 02110-1301, USA.
+// -------------------------------------------
+// ####GPLCOPYRIGHTEND####
+//===========================================================================
diff --git a/ecos/packages/hal/arm/xscale/iop310/current/cdl/hal_arm_xscale_iop310.cdl b/ecos/packages/hal/arm/xscale/iop310/current/cdl/hal_arm_xscale_iop310.cdl
new file mode 100644
index 0000000..d7f8f65
--- /dev/null
+++ b/ecos/packages/hal/arm/xscale/iop310/current/cdl/hal_arm_xscale_iop310.cdl
@@ -0,0 +1,403 @@
+# ====================================================================
+#
+# hal_arm_xscale_iop310.cdl
+#
+# Intel IQ80200/80310 chipset HAL package configuration data
+#
+# ====================================================================
+## ####ECOSGPLCOPYRIGHTBEGIN####
+## -------------------------------------------
+## This file is part of eCos, the Embedded Configurable Operating System.
+## Copyright (C) 1998, 1999, 2000, 2001, 2002, 2009 Free Software Foundation, Inc.
+##
+## eCos is free software; you can redistribute it and/or modify it under
+## the terms of the GNU General Public License as published by the Free
+## Software Foundation; either version 2 or (at your option) any later
+## version.
+##
+## eCos is distributed in the hope that it will be useful, but WITHOUT
+## ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+## FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+## for more details.
+##
+## You should have received a copy of the GNU General Public License
+## along with eCos; if not, write to the Free Software Foundation, Inc.,
+## 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+##
+## As a special exception, if other files instantiate templates or use
+## macros or inline functions from this file, or you compile this file
+## and link it with other works to produce a work based on this file,
+## this file does not by itself cause the resulting work to be covered by
+## the GNU General Public License. However the source code for this file
+## must still be made available in accordance with section (3) of the GNU
+## General Public License v2.
+##
+## This exception does not invalidate any other reasons why a work based
+## on this file might be covered by the GNU General Public License.
+## -------------------------------------------
+## ####ECOSGPLCOPYRIGHTEND####
+# ====================================================================
+######DESCRIPTIONBEGIN####
+#
+# Author(s): msalter
+# Original data:
+# Contributors: gthomas
+# Date: 2000-10-09
+#
+#####DESCRIPTIONEND####
+#
+# ====================================================================
+cdl_package CYGPKG_HAL_ARM_XSCALE_IOP310 {
+ display "Intel IOP310 (IQ80200/IQ80310) XScale chipset"
+ parent CYGPKG_HAL_ARM_XSCALE_CORE
+ define_header hal_arm_xscale_iop310.h
+ include_dir cyg/hal
+ hardware
+ description "
+ The IOP310 HAL package provides the support needed to run
+ eCos on an Intel IQ80200/80310 XScale chipset."
+
+ compile hal_diag.c iop310_misc.c iop310_pci.c
+
+ implements CYGINT_HAL_DEBUG_GDB_STUBS
+ implements CYGINT_HAL_DEBUG_GDB_STUBS_BREAK
+ implements CYGINT_HAL_VIRTUAL_VECTOR_SUPPORT
+ implements CYGINT_HAL_ARM_MEM_REAL_REGION_TOP
+ implements CYGINT_HAL_VIRTUAL_VECTOR_COMM_BAUD_SUPPORT
+
+ # Let the architectural HAL see this variant's interrupts file
+ define_proc {
+ puts $::cdl_header "#define CYGBLD_HAL_VAR_INTS_H <cyg/hal/hal_var_ints.h>"
+ puts $::cdl_header "#define CYGBLD_HAL_VAR_H <cyg/hal/hal_iop310.h>"
+ puts $::cdl_system_header "#define CYGBLD_HAL_ARM_VAR_IO_H"
+ }
+
+ 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 IOP310 eval board(s) 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 onboard
+ debug software such as Angel or eCos GDB stubs. Select 'rom'
+ when building a stand-alone application which will be put
+ into ROM. Selection of 'stubs' is for the special case of
+ building the eCos GDB stubs themselves."
+ }
+
+ cdl_option CYGSEM_HAL_ARM_IOP310_ARMBOOT {
+ display "Coexist with ARM bootloader"
+ flavor bool
+ default_value 0
+ description "
+ Enable this option if the ARM bootloader is programmed into
+ the FLASH boot sector on the board."
+ }
+
+ cdl_interface CYGHWR_HAL_ARM_IOP310_SERIAL_PORTA {
+ display "UART1 implemented by platform"
+ description "
+ Diagnostic I/O channels are implemented by the platform
+ which use the IQ80200/80310 chipset. This interface
+ controls whether or not port \"A\" has been implemented."
+ }
+
+ cdl_interface CYGHWR_HAL_ARM_IOP310_SERIAL_PORTB {
+ display "UART1 implemented by platform"
+ description "
+ Diagnostic I/O channels are implemented by the platform
+ which use the IQ80200/80310 chipset. This interface
+ controls whether or not port \"B\" has been implemented."
+ }
+
+ 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
+ default_value CYGNUM_HAL_VIRTUAL_VECTOR_DEBUG_CHANNEL
+ }
+
+ cdl_option CYGNUM_HAL_VIRTUAL_VECTOR_COMM_CHANNELS {
+ display "Number of communication channels on the board"
+ flavor data
+ calculated CYGHWR_HAL_ARM_IOP310_SERIAL_PORTA+CYGHWR_HAL_ARM_IOP310_SERIAL_PORTB
+ }
+
+ cdl_option CYGNUM_HAL_VIRTUAL_VECTOR_DEBUG_CHANNEL {
+ display "Debug serial port"
+ active_if CYGPRI_HAL_VIRTUAL_VECTOR_DEBUG_CHANNEL_CONFIGURABLE
+ flavor data
+ legal_values 0 to CYGNUM_HAL_VIRTUAL_VECTOR_COMM_CHANNELS-1
+ default_value 0
+ description "
+ 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"
+ active_if CYGPRI_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_CONFIGURABLE
+ flavor data
+ legal_values 0 to CYGNUM_HAL_VIRTUAL_VECTOR_COMM_CHANNELS-1
+ default_value CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_DEFAULT
+ description "
+ The IOP310 board may have multiple serial ports. This option
+ chooses which port will be used for diagnostic output."
+ }
+
+ cdl_option CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_BAUD {
+ display "Diagnostic serial port baud rate"
+ flavor data
+ legal_values 9600 19200 38400 57600 115200
+ default_value 115200
+ 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 57600 115200
+ default_value 115200
+ description "
+ This option selects the baud rate used for the GDB port."
+ }
+
+ # 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
+ default_value 1000000000
+ }
+ cdl_option CYGNUM_HAL_RTC_DENOMINATOR {
+ display "Real-time clock denominator"
+ flavor data
+ default_value 100
+ }
+ cdl_option CYGNUM_HAL_RTC_PERIOD {
+ display "Real-time clock period"
+ flavor data
+ default_value 330000 ;# External timer is 33MHz
+ }
+ }
+
+ cdl_component CYGPKG_REDBOOT_XSCALE_OPTIONS {
+ display "Redboot for XScale options"
+ flavor none
+ no_define
+ parent CYGPKG_REDBOOT
+ active_if CYGPKG_REDBOOT
+ description "
+ This option lists the target's requirements for a valid Redboot
+ configuration."
+
+ # RedBoot details
+ requires { CYGHWR_REDBOOT_ARM_LINUX_EXEC_ADDRESS_DEFAULT == 0xa0008000 }
+ define_proc {
+ puts $::cdl_header "#define CYGHWR_REDBOOT_ARM_TRAMPOLINE_ADDRESS 0xA1FF0000"
+ puts $::cdl_header "#define HAL_PLATFORM_MACHINE_TYPE 70"
+ }
+ }
+
+ cdl_component CYGBLD_GLOBAL_OPTIONS {
+ display "Global build options"
+ flavor none
+ 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-eabi"}
+ 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 { CYGBLD_GLOBAL_WARNFLAGS . CYGBLD_ARCH_CFLAGS .
+ "-mcpu=xscale -g -O2 -ffunction-sections -fdata-sections -fno-rtti -fno-exceptions -mapcs-frame" }
+ 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 { CYGBLD_ARCH_LDFLAGS . "-mcpu=xscale -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 CYGNUM_HAL_BREAKPOINT_LIST_SIZE {
+ display "Number of breakpoints supported by the HAL."
+ flavor data
+ default_value 32
+ description "
+ This option determines the number of breakpoints supported by the HAL."
+ }
+
+ cdl_component CYGPKG_HAL_ARM_IOP310_OPTIONS {
+ display "XScale IOP310 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 CYGSEM_HAL_ARM_IOP310_CLEAR_PCI_RETRY {
+ display "Have RedBoot clear PCI Retry bit"
+ flavor bool
+ default_value 1
+ description "
+ This option controls whether or not RedBoot allows the host PC
+ to completely boot. In some cases, you may not want to allow
+ this if RedBoot is used to automatically launch an application
+ which needs to run some setup code before allowing the PC to
+ finish booting. In that case, the application code, not RedBoot
+ will clear the PCI retry bit."
+ }
+
+ cdl_option CYGPKG_HAL_ARM_IOP310_CFLAGS_ADD {
+ display "Additional compiler flags"
+ flavor data
+ no_define
+ default_value { "" }
+ description "
+ This option modifies the set of compiler flags for
+ building the XScale IOP310 HAL. These flags are used
+ in addition to the set of global flags."
+ }
+
+ cdl_option CYGPKG_HAL_ARM_IOP310_CFLAGS_REMOVE {
+ display "Suppressed compiler flags"
+ flavor data
+ no_define
+ default_value { "" }
+ description "
+ This option modifies the set of compiler flags for
+ building the XScale IOP310 HAL. These flags are
+ removed from the set of global flags if present."
+ }
+
+ cdl_option CYGPKG_HAL_ARM_IOP310_TESTS {
+ display "XScale IOP310 tests"
+ flavor data
+ no_define
+ calculated { "" }
+ description "
+ This option specifies the set of tests for the XScale IOP310 HAL."
+ }
+ }
+
+ 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 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_REDBOOT_HAL_OPTIONS {
+ display "Redboot HAL options"
+ flavor none
+ no_define
+ parent CYGPKG_REDBOOT
+ active_if CYGPKG_REDBOOT
+ description "
+ This option lists the target's requirements for a valid Redboot
+ configuration."
+
+ cdl_component 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 $< $@
+ }
+ }
+ }
+
+}
diff --git a/ecos/packages/hal/arm/xscale/iop310/current/include/hal_diag.h b/ecos/packages/hal/arm/xscale/iop310/current/include/hal_diag.h
new file mode 100644
index 0000000..6bc0620
--- /dev/null
+++ b/ecos/packages/hal/arm/xscale/iop310/current/include/hal_diag.h
@@ -0,0 +1,73 @@
+#ifndef CYGONCE_HAL_DIAG_H
+#define CYGONCE_HAL_DIAG_H
+
+/*=============================================================================
+//
+// hal_diag.h
+//
+// HAL Support for Kernel Diagnostic Routines
+//
+//=============================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): nickg, gthomas
+// Contributors: nickg, gthomas
+// Date: 1998-09-11
+// 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>
+
+#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_)
+
+// Not the best place for this, but ...
+externC void hal_delay_us(cyg_uint32 usecs);
+
+#define HAL_DELAY_US(n) hal_delay_us(n);
+
+/*---------------------------------------------------------------------------*/
+/* end of hal_diag.h */
+#endif /* CYGONCE_HAL_DIAG_H */
diff --git a/ecos/packages/hal/arm/xscale/iop310/current/include/hal_iop310.h b/ecos/packages/hal/arm/xscale/iop310/current/include/hal_iop310.h
new file mode 100644
index 0000000..053ef2b
--- /dev/null
+++ b/ecos/packages/hal/arm/xscale/iop310/current/include/hal_iop310.h
@@ -0,0 +1,675 @@
+#ifndef CYGONCE_HAL_IOP310_H
+#define CYGONCE_HAL_IOP310_H
+
+/*=============================================================================
+//
+// hal_iop310.h
+//
+// HAL Description of IOP310 (IQ80200/IQ80310) control registers, etc.
+//
+//=============================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): msalter
+// Contributors: msalter, gthomas
+// Date: 2000-10-10
+// Purpose: Intel IOP310 hardware description
+// Description:
+// Usage: #include <cyg/hal/hal_iop310.h>
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================*/
+
+#include <cyg/hal/hal_xscale.h>
+
+#ifndef __ASSEMBLER__
+// Platform specific initializations
+extern void hal_plf_hardware_init(void);
+#endif
+
+// Serial ports
+#define IOP310_SERIAL_PORT_A 0xFE800000
+#define IOP310_SERIAL_PORT_B 0xFE810000
+
+#define DCACHE_FLUSH_AREA 0xc0000000
+
+// Addresses of the left and right 7-segment display
+#define DISPLAY_LEFT 0xFE840000
+#define DISPLAY_RIGHT 0xFE850000
+
+// 7-segment encodings for the hex display
+#define DISPLAY_0 0xc0
+#define DISPLAY_1 0xf9
+#define DISPLAY_2 0xa4
+#define DISPLAY_3 0xb0
+#define DISPLAY_4 0x99
+#define DISPLAY_5 0x92
+#define DISPLAY_6 0x82
+#define DISPLAY_7 0xF8
+#define DISPLAY_8 0x80
+#define DISPLAY_9 0x90
+#define DISPLAY_A 0x88
+#define DISPLAY_B 0x83
+#define DISPLAY_C 0xa7
+#define DISPLAY_D 0xa1
+#define DISPLAY_E 0x86
+#define DISPLAY_F 0x8e
+
+#ifndef iop310_is_host
+/* Backplane Detect Register */
+#define BACKPLANE_DET_REG ((volatile unsigned char *)0xfe870000)
+# define BP_HOST_BIT 0x1
+#define iop310_is_host() (*BACKPLANE_DET_REG & BP_HOST_BIT)
+#endif
+
+// XINT3 mask register
+#define X3ISR_REG ((volatile unsigned char *)0xfe820000)
+#define X3MASK_REG ((volatile unsigned char *)0xfe860000)
+# define XINT3_TIMER 0x01
+# define XINT3_ETHERNET 0x02
+# define XINT3_UART_1 0x04
+# define XINT3_UART_2 0x08
+# define XINT3_PCI_INTD 0x10
+
+/* PAL-based external timer definitions */
+#define TIMER_LA0_REG_ADDR ((volatile unsigned char *)0xfe880000)
+#define TIMER_LA1_REG_ADDR ((volatile unsigned char *)0xfe890000)
+#define TIMER_LA2_REG_ADDR ((volatile unsigned char *)0xfe8a0000)
+#define TIMER_LA3_REG_ADDR ((volatile unsigned char *)0xfe8b0000)
+#define TIMER_ENABLE_REG_ADDR ((volatile unsigned char *)0xfe8c0000)
+
+#define TIMER_COUNT_MASK 0x5f /* 6 bits of timer data with the MSB in bit 6 not bit 5 */
+#define TIMER_CNT_ENAB 0x1
+#define TIMER_INT_ENAB 0x2
+#define EXT_TIMER_CLK_FREQ 33000000 /* external timer runs at 33 MHz */
+#define TICKS_10MSEC 100 /* 10msec = 100 ticks/sec */
+#define EXT_TIMER_10MSEC_COUNT (EXT_TIMER_CLK_FREQ / TICKS_10MSEC)
+#define TICKS_5MSEC 200 /* 5msec = 200 ticks/sec */
+#define EXT_TIMER_5MSEC_COUNT (EXT_TIMER_CLK_FREQ / TICKS_5MSEC)
+
+#define EXT_TIMER_CNT_ENAB() (*TIMER_ENABLE_REG_ADDR |= TIMER_CNT_ENAB)
+#define EXT_TIMER_CNT_DISAB() (*TIMER_ENABLE_REG_ADDR &= ~TIMER_CNT_ENAB)
+#define EXT_TIMER_INT_ENAB() (*TIMER_ENABLE_REG_ADDR |= TIMER_INT_ENAB)
+#define EXT_TIMER_INT_DISAB() (*TIMER_ENABLE_REG_ADDR &= ~TIMER_INT_ENAB)
+
+// Companion chip MCU registers
+#define MMR_BASE 0x00001500
+#define SDIR_OFF 0x00000000
+#define SDCR_OFF 0x00000004
+#define SDBR_OFF 0x00000008
+#define SBR0_OFF 0x0000000C
+#define SBR1_OFF 0x00000010
+#define ECCR_OFF 0x00000034
+#define FEBR1_OFF 0x00000050
+#define FBSR1_OFF 0x00000058
+#define FWSR0_OFF 0x0000005C
+#define FWSR1_OFF 0x00000060
+#define RFR_OFF 0x00000068
+
+// MCU Register Values
+#define MRS_CAS_LAT_2 0x00000000
+#define MRS_CAS_LAT_3 0x00000001
+#define MRS_PRECHRG 0x00000002
+#define MRS_NO_OP 0x00000003
+#define MRS_AUTO_RFRSH 0x00000004
+#define MRS_NORM_OP 0x00000006
+#define MRS_NOP_DELAY 0x00004000
+#define SDCR_INIT_VAL 0x00000aa0 // was 0x14
+#define SBR0_INIT_VAL 0x00000008 // 32 Meg Boundary (64 mbit device)
+#define SBR1_INIT_VAL 0x00000008 // 32 Meg Boundary (64 mbit device)
+#define ECCR_INIT_VAL 0x0000000C // ECC enabled, correction on and no reporting
+#define RFR_INIT_VAL 0x00000600 // Initial Refresh Rate
+#define FBSR1_INIT_VAL 0x00000040 // 8MB Bank Size
+#define FWSR0_INIT_VAL 0x00000001 // 1ws add-data (needed for PP state machine), 0ws recovery
+#define FWSR1_INIT_VAL 0x00000000 // 0ws add-data, 0ws recovery
+
+
+/**************************
+ * I2C Bus Interface Unit *
+ **************************/
+
+/* Processor I2C Device ID */
+#define I2C_DEVID 0x02 /* I2C slave address to which the unit responds when in slave-receive mode */
+
+/* Timeout limit for SDRAM EEPROM to respond */
+#define I2C_TIMOUT 0x1000000 /* bumped this way up...used to be 0x100000*/
+
+/* Control Register */
+#define ICR_ADDR 0x00001680 /* Address */
+#define ICR_START 0x0001 /* 1:send a Start condition to the I2C when in master mode */
+#define ICR_STOP 0x0002 /* 1:send a Stop condition after next data byte transferred on I2C bus in master mode */
+#define ICR_ACK 0x0004 /* Ack/Nack control: 1:Nack, 0:Ack (negative or positive pulse) */
+#define ICR_TRANSFER 0x0008 /* 1:send/receive byte, 0:cleared by I2C unit when done */
+#define ICR_ABORT 0x0010 /* 1:I2C sends STOP w/out data permission, 0:ICR bit used only */
+#define ICR_SCLENB 0x0020 /* I2C clock output: 1:Enabled, 0:Disabled. ICCR configured before ! */
+#define ICR_ENB 0x0040 /* I2C unit: 1:Enabled, 0:Disabled */
+#define ICR_GCALL 0x0080 /* General Call: 1:Disabled, 0:Enabled */
+#define ICR_IEMPTY 0x0100 /* 1: IDBR Transmit Empty Interrupt Enable */
+#define ICR_IFULL 0x0200 /* 1: IDBR Receive Full Interrupt Enable */
+#define ICR_IERR 0x0400 /* 1: Bus Error Interrupt Enable */
+#define ICR_ISTOP 0x0800 /* 1: Slave Stop Detected Interrupt Enable */
+#define ICR_IARB 0x1000 /* 1: Arbitration Loss Detected Interrupt Enable */
+#define ICR_ISADDR 0x2000 /* 1: Slave Address Detected Interrupt Enable */
+#define ICR_RESET 0x4000 /* 1: I2C unit reset */
+
+/* Status Register */
+#define ISR_ADDR 0x00001684 /* Address */
+#define ISR_RWMODE 0x0001 /* 1: I2C in master receive = slave transmit mode */
+#define ISR_ACK 0x0002 /* 1: I2C received/sent a Nack, 0: Ack */
+#define ISR_BUSY 0x0004 /* 1: Processor's I2C unit busy */
+#define ISR_BUSBUSY 0x0008 /* 1: I2C bus busy. Processor's I2C unit not involved */
+#define ISR_STOP 0x0010 /* 1: Slave Stop detected (when in slave mode: receive or transmit) */
+#define ISR_ARB 0x0020 /* 1: Arbitration Loss Detected */
+#define ISR_EMPTY 0x0040 /* 1: Transfer finished on I2C bus. If enabled in ICR, interrupt signaled */
+#define ISR_FULL 0x0080 /* 1: IDBR received new byte from I2C bus. If ICR, interrupt signaled */
+#define ISR_GCALL 0x0100 /* 1: I2C unit received a General Call address */
+#define ISR_SADDR 0x0200 /* 1: I2C unit detected a 7-bit address matching the general call or ISAR */
+#define ISR_ERROR 0x0400 /* Bit set by unit when a Bus Error detected */
+
+#define ISAR_ADDR 0x00001688 /* Address of the I2C Slave Address Register */
+#define IDBR_ADDR 0x0000168C /* Address of the I2C Data Buffer Register */
+#define IDBR_MASK 0x000000ff
+#define IDBR_MODE 0x01
+#define ICCR_ADDR 0x00001690 /* Address of the I2C Clock Control Register */
+#define IBMR_ADDR 0x00001694 /* Address of the I2C Bus Monitor Register */
+
+/* SDRAM configuration */
+
+/* SDRAM bank size values (SPD << 2) */
+#define RAM_0MEG
+#define RAM_4MEG 4
+#define RAM_8MEG 8
+#define RAM_16MEG 16
+#define RAM_32MEG 32
+#define RAM_64MEG 64
+#define RAM_128MEG 128
+#define RAM_256MEG 256
+
+/* SBR register definitions (valid bits are [7:3])*/
+#define SBR_32MEG 0x08
+#define SBR_64MEG 0x10
+#define SBR_128MEG 0x20
+#define SBR_256MEG 0x40
+
+/* Drive Strengths - assume single DIMM configuration */
+#define SDCR_1BANK_X16 0x0aa0
+#define SDCR_2BANK_X16 0x12c8
+#define SDCR_1BANK_X8 0x1520
+#define SDCR_2BANK_X8 0x1548
+
+/* SDRAM PD bytes */
+#define BANKCNT_BYTE 0x06 /* Byte #5 of SPD: number of module banks */
+#define SDRAM_WIDTH_BYTE 0x0e /* Byte #13 of SPD: DRAM width */
+#define BANKSZ_BYTE 0x20 /* Byte #31 of SPD: module bank density */
+#define CHECKSUM_BYTE 0x40 /* Byte #63 of SPD: checksum for bytes 0-62 */
+#define CONFIG_BYTE 0x0C /* Byte #11 of SPD: DIMM configuration type (Parity or not, EEC) */
+
+#define SDRAM_DEVID 0xA2 /* SDRAM Device ID */
+
+// Yavapai PCI and Peripheral Interrupt Unit
+/*** Yavapai Registers ***/
+
+/* PCI-to-PCI Bridge Unit 0000 1000H through 0000 10FFH */
+#define VIDR_ADDR 0x00001000
+#define DIDR_ADDR 0x00001002
+#define PCR_ADDR 0x00001004
+#define PSR_ADDR 0x00001006
+#define RIDR_ADDR 0x00001008
+#define CCR_ADDR 0x00001009
+#define CLSR_ADDR 0x0000100C
+#define PLTR_ADDR 0x0000100D
+#define HTR_ADDR 0x0000100E
+/* Reserved 0x0000100F through 0x00001017 */
+#define PBNR_ADDR 0x00001018
+#define SBNR_ADDR 0x00001019
+#define SUBBNR_ADDR 0x0000101A
+#define SLTR_ADDR 0x0000101B
+#define IOBR_ADDR 0x0000101C
+#define IOLR_ADDR 0x0000101D
+#define SSR_ADDR 0x0000101E
+#define MBR_ADDR 0x00001020
+#define MLR_ADDR 0x00001022
+#define PMBR_ADDR 0x00001024
+#define PMLR_ADDR 0x00001026
+/* Reserved 0x00001028 through 0x00001033 */
+#define BSVIR_ADDR 0x00001034
+#define BSIR_ADDR 0x00001036
+/* Reserved 0x00001038 through 0x0000103D */
+#define BCR_ADDR 0x0000103E
+#define EBCR_ADDR 0x00001040
+#define SISR_ADDR 0x00001042
+#define PBISR_ADDR 0x00001044
+#define SBISR_ADDR 0x00001048
+#define SACR_ADDR 0x0000104C
+#define PIRSR_ADDR 0x00001050
+#define SIOBR_ADDR 0x00001054
+#define SIOLR_ADDR 0x00001055
+#define SCCR_ADDR 0x00001056 /* EAS inconsistent */
+#define SMBR_ADDR 0x00001058
+#define SMLR_ADDR 0x0000105A
+#define SDER_ADDR 0x0000105C
+#define QCR_ADDR 0x0000105E
+#define CDTR_ADDR 0x00001060 /* EAS inconsistent */
+/* Reserved 0x00001064 through 0x000010FFH */
+
+/* Performance Monitoring Unit 0000 1100H through 0000 11FFH */
+#define GTMR_ADDR 0x00001100
+#define ESR_ADDR 0x00001104
+#define EMISR_ADDR 0x00001108
+/* Reserved 0x0000110C */ /* EAS inconsistent */
+#define GTSR_ADDR 0x00001110 /* EAS inconsistent */
+#define PECR1_ADDR 0x00001114 /* EAS inconsistent */
+#define PECR2_ADDR 0x00001118 /* EAS inconsistent */
+#define PECR3_ADDR 0x0000111C /* EAS inconsistent */
+#define PECR4_ADDR 0x00001120 /* EAS inconsistent */
+#define PECR5_ADDR 0x00001124 /* EAS inconsistent */
+#define PECR6_ADDR 0x00001128 /* EAS inconsistent */
+#define PECR7_ADDR 0x0000112C /* EAS inconsistent */
+#define PECR8_ADDR 0x00001130 /* EAS inconsistent */
+#define PECR9_ADDR 0x00001134 /* EAS inconsistent */
+#define PECR10_ADDR 0x00001138 /* EAS inconsistent */
+#define PECR11_ADDR 0x0000113C /* EAS inconsistent */
+#define PECR12_ADDR 0x00001140 /* EAS inconsistent */
+#define PECR13_ADDR 0x00001144 /* EAS inconsistent */
+#define PECR14_ADDR 0x00001148 /* EAS inconsistent */
+/* Reserved 0x0000104C through 0x000011FFH */ /* EAS inconsistent */
+
+/* Address Translation Unit 0000 1200H through 0000 12FFH */
+#define ATUVID_ADDR 0x00001200
+#define ATUDID_ADDR 0x00001202
+#define PATUCMD_ADDR 0x00001204
+#define PATUSR_ADDR 0x00001206
+#define ATURID_ADDR 0x00001208
+#define ATUCCR_ADDR 0x00001209
+#define ATUCLSR_ADDR 0x0000120C
+#define ATULT_ADDR 0x0000120D
+#define ATUHTR_ADDR 0x0000120E
+#define ATUBISTR_ADDR 0x0000120F
+#define PIABAR_ADDR 0x00001210
+/* Reserved 0x00001214 through 0x0000122B */
+#define ASVIR_ADDR 0x0000122C
+#define ASIR_ADDR 0x0000122E
+#define ERBAR_ADDR 0x00001230
+/* Reserved 0x00001234 */
+/* Reserved 0x00001238 */
+#define ATUILR_ADDR 0x0000123C
+#define ATUIPR_ADDR 0x0000123D
+#define ATUMGNT_ADDR 0x0000123E
+#define ATUMLAT_ADDR 0x0000123F
+#define PIALR_ADDR 0x00001240
+#define PIATVR_ADDR 0x00001244
+#define SIABAR_ADDR 0x00001248
+#define SIALR_ADDR 0x0000124C
+#define SIATVR_ADDR 0x00001250
+#define POMWVR_ADDR 0x00001254
+/* Reserved 0x00001258 */
+#define POIOWVR_ADDR 0x0000125C
+#define PODWVR_ADDR 0x00001260
+#define POUDR_ADDR 0x00001264
+#define SOMWVR_ADDR 0x00001268
+#define SOIOWVR_ADDR 0x0000126C
+/* Reserved 0x00001270 */
+#define ERLR_ADDR 0x00001274
+#define ERTVR_ADDR 0x00001278
+/* Reserved 0x0000127C */
+/* Reserved 0x00001280 */
+/* Reserved 0x00001284 */
+#define ATUCR_ADDR 0x00001288
+/* Reserved 0x0000128C */
+#define PATUISR_ADDR 0x00001290
+#define SATUISR_ADDR 0x00001294
+#define SATUCMD_ADDR 0x00001298
+#define SATUSR_ADDR 0x0000129A
+#define SODWVR_ADDR 0x0000129C
+#define SOUDR_ADDR 0x000012A0
+#define POCCAR_ADDR 0x000012A4
+#define SOCCAR_ADDR 0x000012A8
+#define POCCDR_ADDR 0x000012AC
+#define SOCCDR_ADDR 0x000012B0
+#define PAQCR_ADDR 0x000012B4
+#define SAQCR_ADDR 0x000012B8
+#define PAIMR_ADDR 0x000012BC
+#define SAIMR_ADDR 0x000012C0
+/* Reserved 0x000012C4 through 0x000012FF */
+
+/* Messaging Unit 0000 1300H through 0000 130FH */
+#define IMR0_ADDR 0x00001310
+#define IMR1_ADDR 0x00001314
+#define OMR0_ADDR 0x00001318
+#define OMR1_ADDR 0x0000131C
+#define IDR_ADDR 0x00001320
+#define IISR_ADDR 0x00001324
+#define IIMR_ADDR 0x00001328
+#define ODR_ADDR 0x0000132C
+#define OISR_ADDR 0x00001330
+#define OIMR_ADDR 0x00001334
+/* Reserved 0x00001338 through 0x0000134F */
+#define MUCR_ADDR 0x00001350
+#define QBAR_ADDR 0x00001354
+/* Reserved 0x00001358 */
+/* Reserved 0x0000135C */
+#define IFHPR_ADDR 0x00001360
+#define IFTPR_ADDR 0x00001364
+#define IPHPR_ADDR 0x00001368
+#define IPTPR_ADDR 0x0000136C
+#define OFHPR_ADDR 0x00001370
+#define OFTPR_ADDR 0x00001374
+#define OPHPR_ADDR 0x00001378
+#define OPTPR_ADDR 0x0000137C
+#define IAR_ADDR 0x00001380
+/* Reserved 0x00001384 through 0x000013FF */
+
+/* DMA Controller 0000 1400H through 0000 14FFH */
+#define CCR0_ADDR 0x00001400
+#define CSR0_ADDR 0x00001404
+/* Reserved 0x00001408 */
+#define DAR0_ADDR 0x0000140C
+#define NDAR0_ADDR 0x00001410
+#define PADR0_ADDR 0x00001414
+#define PUADR0_ADDR 0x00001418
+#define LADR0_ADDR 0x0000141C
+#define BCR0_ADDR 0x00001420
+#define DCR0_ADDR 0x00001424
+/* Reserved 0x00001428 through 0x0000143F */
+#define CCR1_ADDR 0x00001440
+#define CSR1_ADDR 0x00001444
+/* Reserved 0x00001448 */
+#define DAR1_ADDR 0x0000144C
+#define NDAR1_ADDR 0x00001450
+#define PADR1_ADDR 0x00001454
+#define PUADR1_ADDR 0x00001458
+#define LADR1_ADDR 0x0000145C
+#define BCR1_ADDR 0x00001460
+#define DCR1_ADDR 0x00001464
+/* Reserved 0x00001468 through 0x0000147F */
+#define CCR2_ADDR 0x00001480
+#define CSR2_ADDR 0x00001484
+/* Reserved 0x00001488 */
+#define DAR2_ADDR 0x0000148C
+#define NDAR2_ADDR 0x00001490
+#define PADR2_ADDR 0x00001494
+#define PUADR2_ADDR 0x00001498
+#define LADR2_ADDR 0x0000149C
+#define BCR2_ADDR 0x000014A0
+#define DCR2_ADDR 0x000014A4
+/* Reserved 0x000014A8 through 0x000014FF */
+
+/* Memory Controller 0000 1500H through 0000 15FFH */
+#define SDIR_ADDR 0x00001500
+#define SDCR_ADDR 0x00001504
+#define SDBR_ADDR 0x00001508
+#define SBR0_ADDR 0x0000150C
+#define SBR1_ADDR 0x00001510
+#define SDPR0_ADDR 0x00001514
+#define SDPR1_ADDR 0x00001518
+#define SDPR2_ADDR 0x0000151C
+#define SDPR3_ADDR 0x00001520
+#define SDPR4_ADDR 0x00001524
+#define SDPR5_ADDR 0x00001528
+#define SDPR6_ADDR 0x0000152C
+#define SDPR7_ADDR 0x00001530
+#define ECCR_ADDR 0x00001534
+#define ELOG0_ADDR 0x00001538
+#define ELOG1_ADDR 0x0000153C
+#define ECAR0_ADDR 0x00001540
+#define ECAR1_ADDR 0x00001544
+#define ECTST_ADDR 0x00001548
+#define FEBR0_ADDR 0x0000154C
+#define FEBR1_ADDR 0x00001550
+#define FBSR0_ADDR 0x00001554
+#define FBSR1_ADDR 0x00001558
+#define FWSR0_ADDR 0x0000155C
+#define FWSR1_ADDR 0x00001560
+#define MCISR_ADDR 0x00001564
+#define RFR_ADDR 0x00001568
+/* Reserved 0x0000156C through 0x000015FF */
+
+/* Arbitration Control Unit 0000 1600H through 0000 167FH */
+#define IACR_ADDR 0x00001600
+#define MLTR_ADDR 0x00001604
+#define MTTR_ADDR 0x00001608
+/* Reserved 0x0000160C through 0x0000163F */
+
+/* Bus Interface Control Unit 0000 1640H through 0000 167FH */
+#define BIUCR_ADDR 0x00001640
+#define BIUISR_ADDR 0x00001644
+/* Reserved 0x00001648 through 0x0000167F */
+
+/* I2C Bus Interface Unit 0000 1680H through 0000 16FFH */
+#define ICR_ADDR 0x00001680
+#define ISR_ADDR 0x00001684
+#define ISAR_ADDR 0x00001688
+#define IDBR_ADDR 0x0000168C
+#define ICCR_ADDR 0x00001690
+#define IBMR_ADDR 0x00001694
+/* Reserved 0x00001698 through 0x000016FF */
+
+/* PCI And Peripheral Interrupt Controller 0000 1700H through 0000 17FFH */
+#define NISR_ADDR 0x00001700
+#define X7ISR_ADDR 0x00001704
+#define X6ISR_ADDR 0x00001708
+#define PDIDR_ADDR 0x00001710 /* EAS inconsistent */
+/* Reserved 0x00001714 through 0x0000177F */
+
+/* Application Accelerator Unit 0000 1800H through 0000 18FFH */
+#define ACR_ADDR 0x00001800
+#define ASR_ADDR 0x00001804
+#define ADAR_ADDR 0x00001808
+#define ANDAR_ADDR 0x0000180C
+#define SAR1_ADDR 0x00001810
+#define SAR2_ADDR 0x00001814
+#define SAR3_ADDR 0x00001818
+#define SAR4_ADDR 0x0000181C
+#define DAR_ADDR 0x00001820
+#define ABCR_ADDR 0x00001824
+#define ADCR_ADDR 0x00001828
+#define SAR5_ADDR 0x0000182C
+#define SAR6_ADDR 0x00001830
+#define SAR7_ADDR 0x00001834
+#define SAR8_ADDR 0x00001838
+
+/* Reserved 0x0000183C through 0x000018FF */
+
+#define X6ISR_REG ((volatile cyg_uint32 *)X6ISR_ADDR)
+# define X6ISR_DIP0 0x01
+# define X6ISR_DIP1 0x02
+# define X6ISR_DIP2 0x04
+# define X6ISR_EMIP 0x10
+# define X6ISR_AAIP 0x20
+
+#define X7ISR_REG ((volatile cyg_uint32 *)X7ISR_ADDR)
+# define X7ISR_ISQC 0x02
+# define X7ISR_INDB 0x04
+# define X7ISR_BIST 0x08
+
+#define NISR_REG ((volatile cyg_uint32 *)NISR_ADDR)
+# define NISR_MCU 0x01
+# define NISR_PATU 0x02
+# define NISR_SATU 0x04
+# define NISR_PBDG 0x08
+# define NISR_SBDG 0x10
+# define NISR_DMA0 0x20
+# define NISR_DMA1 0x40
+# define NISR_DMA2 0x80
+# define NISR_MU 0x100
+# define NISR_AAU 0x400
+# define NISR_BIU 0x800
+
+#define PIRSR_REG REG32(0,PIRSR_ADDR)
+#define IISR_REG REG32(0,IISR_ADDR)
+#define IIMR_REG REG32(0,IIMR_ADDR)
+#define OISR_REG REG32(0,OISR_ADDR)
+#define OIMR_REG REG32(0,OIMR_ADDR)
+#define EMISR_REG REG32(0,EMISR_ADDR)
+#define ISR_REG REG32(0,ISR_ADDR)
+#define GTMR_REG REG32(0,GTMR_ADDR)
+#define ESR_REG REG32(0,ESR_ADDR)
+#define ADCR_REG REG32(0,ADCR_ADDR)
+#define ICR_REG REG32(0,ICR_ADDR)
+#define ATUCR_REG REG32(0,ATUCR_ADDR)
+
+#define DCR0_REG REG32(0,DCR0_ADDR)
+#define DCR1_REG REG32(0,DCR1_ADDR)
+#define DCR2_REG REG32(0,DCR2_ADDR)
+
+#define ECCR_REG REG32(0,ECCR_ADDR)
+#define MCISR_REG REG32(0,MCISR_ADDR)
+#define ELOG0_REG REG32(0,ELOG0_ADDR)
+#define ELOG1_REG REG32(0,ELOG1_ADDR)
+#define ECAR0_REG REG32(0,ECAR0_ADDR)
+#define ECAR1_REG REG32(0,ECAR1_ADDR)
+
+#define PATUISR_REG REG32(0,PATUISR_ADDR)
+#define SATUISR_REG REG32(0,SATUISR_ADDR)
+#define PBISR_REG REG32(0,PBISR_ADDR)
+#define SBISR_REG REG32(0,SBISR_ADDR)
+#define CSR0_REG REG32(0,CSR0_ADDR)
+#define CSR1_REG REG32(0,CSR1_ADDR)
+#define CSR2_REG REG32(0,CSR2_ADDR)
+#define IISR_REG REG32(0,IISR_ADDR)
+#define ASR_REG REG32(0,ASR_ADDR)
+#define BIUISR_REG REG32(0,BIUISR_ADDR)
+
+#define PATUSR_REG REG16(0,PATUSR_ADDR)
+#define SATUSR_REG REG16(0,SATUSR_ADDR)
+#define PSR_REG REG16(0,PSR_ADDR)
+#define SSR_REG REG16(0,SSR_ADDR)
+
+#define PCR_REG REG16(0,PCR_ADDR)
+#define PBNR_REG REG8(0,PBNR_ADDR)
+#define SBNR_REG REG8(0,SBNR_ADDR)
+#define SUBBNR_REG REG8(0,SUBBNR_ADDR)
+#define BCR_REG REG16(0,BCR_ADDR)
+#define PATUCMD_REG REG32(0,PATUCMD_ADDR)
+#define PIABAR_REG REG32(0,PIABAR_ADDR)
+#define SIABAR_REG REG32(0,SIABAR_ADDR)
+#define SIALR_REG REG32(0,SIALR_ADDR)
+#define SIATVR_REG REG32(0,SIATVR_ADDR)
+#define POMWVR_REG REG32(0,POMWVR_ADDR)
+#define POIOWVR_REG REG32(0,POIOWVR_ADDR)
+#define PODWVR_REG REG32(0,PODWVR_ADDR)
+#define SOMWVR_REG REG32(0,SOMWVR_ADDR)
+#define SOIOWVR_REG REG32(0,SOIOWVR_ADDR)
+#define SATUCMD_REG REG16(0,SATUCMD_ADDR)
+#define SODWVR_REG REG32(0,SODWVR_ADDR)
+
+
+#define MEMBASE_DRAM 0xa0000000
+
+/* primary PCI bus definitions */
+#define PRIMARY_BUS_NUM 0
+#define PRIMARY_MEM_BASE 0x80000000
+#define PRIMARY_DAC_BASE 0x84000000
+#define PRIMARY_IO_BASE 0x90000000
+#define PRIMARY_MEM_LIMIT 0x83ffffff
+#define PRIMARY_DAC_LIMIT 0x87ffffff
+#define PRIMARY_IO_LIMIT 0x9000ffff
+
+/* secondary PCI bus definitions */
+#define SECONDARY_BUS_NUM 1
+#define SECONDARY_MEM_BASE 0x88000000
+#define SECONDARY_DAC_BASE 0x8c000000
+#define SECONDARY_IO_BASE 0x90010000
+#define SECONDARY_MEM_LIMIT 0x8bffffff
+#define SECONDARY_DAC_LIMIT 0x8fffffff
+#define SECONDARY_IO_LIMIT 0x9001ffff
+
+#ifndef __ASSEMBLER__
+extern unsigned int _80312_EMISR; // Only valid for PEC ISR
+#endif
+
+// ------------------------------------------------------------------------
+#ifdef __ASSEMBLER__
+// Macro to perform early setup (in hal_platform_setup.h) of some PCI
+// registers. This should be used prior to the ECC scrup loop to prevent
+// timeouts with some Plug 'n Play PC BIOSes. Before the 'retry' bit is
+// cleared, this macro must setup the vendor/device ID and the primary
+// inbound window BAR to allow primary side access to SDRAM.
+//
+// Input: reg, reg1 -- scratch registers
+// reg_dram_size -- register holding size of SDRAM
+// vendor_id -- PCI vendor ID
+// device_id -- PCI device ID
+
+.macro IOP310_EARLY_PCI_SETUP reg0, reg1, reg_dram_size, vendor_id, device_id
+ // Setup vendor/device ID for 80312
+ ldr \reg0, =ASVIR_ADDR
+ ldr \reg1, =\vendor_id
+ strh \reg1, [\reg0]
+ ldr \reg0, =ASIR_ADDR
+ ldr \reg1, =\device_id
+ strh \reg1, [\reg0]
+ // Make all secondary bus devices private
+ ldr \reg0, =SISR_ADDR
+ ldr \reg1, =0x03FF
+ strh \reg1, [\reg0]
+ // Setup primary inbound window into SDRAM
+ ldr \reg0, =PIATVR_ADDR
+ mov \reg1, #0xa0000000
+ str \reg1, [\reg0]
+ ldr \reg0, =PIALR_ADDR
+ sub \reg1, \reg_dram_size, #1 // dram_size - 1
+ mvn \reg1, \reg1 // 1s complement
+ str \reg1, [\reg0]
+#ifdef CYGSEM_HAL_ARM_IOP310_CLEAR_PCI_RETRY
+ ldr \reg0, =EBCR_ADDR
+ mov \reg1, #0x0008
+ strh \reg1, [\reg0]
+#endif
+.endm
+
+#endif // __ASSEMBLER__
+
+// ------------------------------------------------------------------------
+
+// Override the default MMU off code. This is intended
+// to be included in an inline asm statement.
+#define CYGARC_HAL_MMU_OFF(__paddr__) \
+ " mrc p15,0,r0,c1,c0,0\n" \
+ " bic r0,r0,#0x05\n" \
+ " b 99f\n" \
+ " .p2align 5\n" \
+ "99:\n" \
+ " mcr p15,0,r0,c1,c0,0\n" \
+ " mrc p15,0,r0,c2,c0,0\n" \
+ " mov r0,r0\n" \
+ " sub pc,pc,#4\n" \
+ " mov pc," #__paddr__ "\n"
+
+
+/*---------------------------------------------------------------------------*/
+/* end of hal_iop310.h */
+#endif /* CYGONCE_HAL_IOP310_H */
diff --git a/ecos/packages/hal/arm/xscale/iop310/current/include/hal_var_ints.h b/ecos/packages/hal/arm/xscale/iop310/current/include/hal_var_ints.h
new file mode 100644
index 0000000..0b9a634
--- /dev/null
+++ b/ecos/packages/hal/arm/xscale/iop310/current/include/hal_var_ints.h
@@ -0,0 +1,156 @@
+#ifndef CYGONCE_HAL_VAR_INTS_H
+#define CYGONCE_HAL_VAR_INTS_H
+//==========================================================================
+//
+// hal_var_ints.h
+//
+// HAL Interrupt and clock support
+//
+//==========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//==========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): msalter
+// Contributors: msalter, gthomas
+// Date: 2001-12-03
+// Purpose: Define Interrupt support
+// Description: The interrupt details for XScale CPUs are defined here.
+// Usage:
+// #include <pkgconf/system.h>
+// #include CYGBLD_HAL_VARIANT_H
+// #include CYGBLD_HAL_VAR_INTS_H
+//
+// ...
+//
+//
+//####DESCRIPTIONEND####
+//
+//==========================================================================
+
+#include <cyg/hal/hal_iop310.h> // registers
+#include <cyg/hal/hal_io.h> // IO macros
+#include <cyg/hal/hal_platform_ints.h> // Platform overrides, setups, etc
+
+// *** 80200 CPU ***
+#define CYGNUM_HAL_INTERRUPT_reserved0 0
+#define CYGNUM_HAL_INTERRUPT_PMU_PMN0_OVFL 1 // See Ch.12 - Performance Mon.
+#define CYGNUM_HAL_INTERRUPT_PMU_PMN1_OVFL 2 // PMU counter 0/1 overflow
+#define CYGNUM_HAL_INTERRUPT_PMU_CCNT_OVFL 3 // PMU clock overflow
+#define CYGNUM_HAL_INTERRUPT_BCU_INTERRUPT 4 // See Ch.11 - Bus Control Unit
+#define CYGNUM_HAL_INTERRUPT_NIRQ 5 // external IRQ
+#define CYGNUM_HAL_INTERRUPT_NFIQ 6 // external FIQ
+
+// *** XINT6 interrupts ***
+#define CYGNUM_HAL_INTERRUPT_DMA_0 7
+#define CYGNUM_HAL_INTERRUPT_DMA_1 8
+#define CYGNUM_HAL_INTERRUPT_DMA_2 9
+#define CYGNUM_HAL_INTERRUPT_GTSC 10 // Global Time Stamp Counter
+#define CYGNUM_HAL_INTERRUPT_PEC 11 // Performance Event Counter
+#define CYGNUM_HAL_INTERRUPT_AAIP 12 // application accelerator unit
+
+// *** XINT7 interrupts ***
+// I2C interrupts
+#define CYGNUM_HAL_INTERRUPT_I2C_TX_EMPTY 13
+#define CYGNUM_HAL_INTERRUPT_I2C_RX_FULL 14
+#define CYGNUM_HAL_INTERRUPT_I2C_BUS_ERR 15
+#define CYGNUM_HAL_INTERRUPT_I2C_STOP 16
+#define CYGNUM_HAL_INTERRUPT_I2C_LOSS 17
+#define CYGNUM_HAL_INTERRUPT_I2C_ADDRESS 18
+// Messaging Unit interrupts
+#define CYGNUM_HAL_INTERRUPT_MESSAGE_0 19
+#define CYGNUM_HAL_INTERRUPT_MESSAGE_1 20
+#define CYGNUM_HAL_INTERRUPT_DOORBELL 21
+#define CYGNUM_HAL_INTERRUPT_NMI_DOORBELL 22 // FIQ
+#define CYGNUM_HAL_INTERRUPT_QUEUE_POST 23
+#define CYGNUM_HAL_INTERRUPT_OUTBOUND_QUEUE_FULL 24 // FIQ
+#define CYGNUM_HAL_INTERRUPT_INDEX_REGISTER 25
+// PCI Address Translation Unit
+#define CYGNUM_HAL_INTERRUPT_BIST 26
+
+// *** External board interrupts (XINT3) ***
+#define CYGNUM_HAL_INTERRUPT_XINT3_BIT0 27
+#define CYGNUM_HAL_INTERRUPT_XINT3_BIT1 28
+#define CYGNUM_HAL_INTERRUPT_XINT3_BIT2 29
+#define CYGNUM_HAL_INTERRUPT_XINT3_BIT3 30
+#define CYGNUM_HAL_INTERRUPT_XINT3_BIT4 31
+#define CYGNUM_HAL_INTERRUPT_XINT3_BITS 5 // Number of significant bits
+
+// *** NMI Interrupts go to FIQ ***
+#define CYGNUM_HAL_INTERRUPT_MCU_ERR 35
+#define CYGNUM_HAL_INTERRUPT_PATU_ERR 36
+#define CYGNUM_HAL_INTERRUPT_SATU_ERR 37
+#define CYGNUM_HAL_INTERRUPT_PBDG_ERR 38
+#define CYGNUM_HAL_INTERRUPT_SBDG_ERR 39
+#define CYGNUM_HAL_INTERRUPT_DMA0_ERR 40
+#define CYGNUM_HAL_INTERRUPT_DMA1_ERR 41
+#define CYGNUM_HAL_INTERRUPT_DMA2_ERR 42
+#define CYGNUM_HAL_INTERRUPT_MU_ERR 43
+#define CYGNUM_HAL_INTERRUPT_reserved52 44
+#define CYGNUM_HAL_INTERRUPT_AAU_ERR 45
+#define CYGNUM_HAL_INTERRUPT_BIU_ERR 46
+
+// *** ATU FIQ sources ***
+#define CYGNUM_HAL_INTERRUPT_P_SERR 47
+#define CYGNUM_HAL_INTERRUPT_S_SERR 48
+
+#define CYGNUM_HAL_ISR_MIN 0
+#define CYGNUM_HAL_ISR_MAX 48
+
+#define CYGNUM_HAL_ISR_COUNT (CYGNUM_HAL_ISR_MAX+1)
+
+externC void hal_delay_us(cyg_uint32 usecs);
+#define HAL_DELAY_US(n) hal_delay_us(n);
+
+//----------------------------------------------------------------------------
+// Reset.
+
+// FIXME - Can we reset the board?
+#define HAL_PLATFORM_RESET() CYG_EMPTY_STATEMENT
+
+#define HAL_PLATFORM_RESET_ENTRY 0x00000000
+
+// ------------------------------------------------------------------------
+// Dynamically set the timer interrupt rate.
+// Not for application use at all.
+
+externC void
+hal_clock_reinitialize( int *pfreq, /* inout */
+ unsigned int *pperiod, /* inout */
+ unsigned int old_hz ); /* in */
+
+#define HAL_CLOCK_REINITIALIZE( _freq, _period, _old_hz ) \
+ hal_clock_reinitialize( &_freq, &_period, _old_hz )
+
+#endif // CYGONCE_HAL_VAR_INTS_H
+// EOF hal_var_ints.h
diff --git a/ecos/packages/hal/arm/xscale/iop310/current/include/var_io.h b/ecos/packages/hal/arm/xscale/iop310/current/include/var_io.h
new file mode 100644
index 0000000..2e7ac09
--- /dev/null
+++ b/ecos/packages/hal/arm/xscale/iop310/current/include/var_io.h
@@ -0,0 +1,170 @@
+#ifndef CYGONCE_HAL_ARM_VAR_IO_H
+#define CYGONCE_HAL_ARM_VAR_IO_H
+
+/*=============================================================================
+//
+// var_io.h
+//
+// Platform specific support (register layout, etc)
+//
+//=============================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jskov
+// Contributors: jskov, gthomas
+// Date: 2002-01-28
+// Purpose: Platform specific support routines
+// Description:
+// Usage: #include <cyg/hal/hal_io.h>
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================*/
+
+#include <pkgconf/hal_arm_xscale_iop310.h>
+
+#include <cyg/hal/hal_iop310.h>
+
+#include <cyg/hal/hal_io.h> // IO macros
+#include <cyg/hal/hal_intr.h> // Interrupt vectors
+
+#include <cyg/hal/plf_io.h>
+
+extern cyg_uint32 cyg_hal_plf_pci_cfg_read_dword (cyg_uint32 bus,
+ cyg_uint32 devfn,
+ cyg_uint32 offset);
+extern cyg_uint16 cyg_hal_plf_pci_cfg_read_word (cyg_uint32 bus,
+ cyg_uint32 devfn,
+ cyg_uint32 offset);
+extern cyg_uint8 cyg_hal_plf_pci_cfg_read_byte (cyg_uint32 bus,
+ cyg_uint32 devfn,
+ cyg_uint32 offset);
+extern void cyg_hal_plf_pci_cfg_write_dword (cyg_uint32 bus,
+ cyg_uint32 devfn,
+ cyg_uint32 offset,
+ cyg_uint32 val);
+extern void cyg_hal_plf_pci_cfg_write_word (cyg_uint32 bus,
+ cyg_uint32 devfn,
+ cyg_uint32 offset,
+ cyg_uint16 val);
+extern void cyg_hal_plf_pci_cfg_write_byte (cyg_uint32 bus,
+ cyg_uint32 devfn,
+ cyg_uint32 offset,
+ cyg_uint8 val);
+
+/* primary PCI bus definitions */
+#ifndef PRIMARY_MEM_BASE
+#define PRIMARY_BUS_NUM 0
+#define PRIMARY_MEM_BASE 0x80000000
+#define PRIMARY_DAC_BASE 0x84000000
+#define PRIMARY_IO_BASE 0x90000000
+#define PRIMARY_MEM_LIMIT 0x83ffffff
+#define PRIMARY_DAC_LIMIT 0x87ffffff
+#define PRIMARY_IO_LIMIT 0x9000ffff
+#endif
+
+/* secondary PCI bus definitions */
+#ifndef SECONDARY_MEM_BASE
+#define SECONDARY_BUS_NUM 1
+#define SECONDARY_MEM_BASE 0x88000000
+#define SECONDARY_DAC_BASE 0x8c000000
+#define SECONDARY_IO_BASE 0x90010000
+#define SECONDARY_MEM_LIMIT 0x8bffffff
+#define SECONDARY_DAC_LIMIT 0x8fffffff
+#define SECONDARY_IO_LIMIT 0x9001ffff
+#endif
+
+// Initialize the PCI bus.
+externC void cyg_hal_plf_pci_init(void);
+#define HAL_PCI_INIT() cyg_hal_plf_pci_init()
+
+// Read a value from the PCI configuration space of the appropriate
+// size at an address composed from the bus, devfn and offset.
+#define HAL_PCI_CFG_READ_UINT8( __bus, __devfn, __offset, __val ) \
+ __val = cyg_hal_plf_pci_cfg_read_byte((__bus), (__devfn), (__offset))
+
+#define HAL_PCI_CFG_READ_UINT16( __bus, __devfn, __offset, __val ) \
+ __val = cyg_hal_plf_pci_cfg_read_word((__bus), (__devfn), (__offset))
+
+#define HAL_PCI_CFG_READ_UINT32( __bus, __devfn, __offset, __val ) \
+ __val = cyg_hal_plf_pci_cfg_read_dword((__bus), (__devfn), (__offset))
+
+// Write a value to the PCI configuration space of the appropriate
+// size at an address composed from the bus, devfn and offset.
+#define HAL_PCI_CFG_WRITE_UINT8( __bus, __devfn, __offset, __val ) \
+ cyg_hal_plf_pci_cfg_write_byte((__bus), (__devfn), (__offset), (__val))
+
+#define HAL_PCI_CFG_WRITE_UINT16( __bus, __devfn, __offset, __val ) \
+ cyg_hal_plf_pci_cfg_write_word((__bus), (__devfn), (__offset), (__val))
+
+#define HAL_PCI_CFG_WRITE_UINT32( __bus, __devfn, __offset, __val ) \
+ cyg_hal_plf_pci_cfg_write_dword((__bus), (__devfn), (__offset), (__val))
+
+//-----------------------------------------------------------------------------
+// Resources
+
+// Map PCI device resources starting from these addresses in PCI space.
+#ifndef HAL_PCI_ALLOC_BASE_MEMORY
+#define HAL_PCI_ALLOC_BASE_MEMORY (SECONDARY_MEM_BASE)
+#define HAL_PCI_ALLOC_BASE_IO (SECONDARY_IO_BASE)
+#endif
+
+// This is where the PCI spaces are mapped in the CPU's address space.
+#ifndef HAL_PCI_PHYSICAL_MEMORY_BASE
+#define HAL_PCI_PHYSICAL_MEMORY_BASE 0x00000000
+#define HAL_PCI_PHYSICAL_IO_BASE 0x00000000
+#endif
+
+
+// Some of SDRAM is aliased as uncached memory for drivers.
+#ifndef CYGARC_UNCACHED_ADDRESS
+#define CYGARC_UNCACHED_ADDRESS(_x_) \
+ (((((unsigned long)(_x_)) >> 28)==0xA) ? (((unsigned long)(_x_))|0x40000000) : (unsigned long)(_x_))
+#endif
+#ifndef CYGARC_VIRT_TO_BUS
+#define CYGARC_VIRT_TO_BUS(_x_) \
+ (((((unsigned long)(_x_)) >> 28)==0xA) ? (unsigned long)(_x_) : (((unsigned long)(_x_))&~0x40000000))
+#endif
+#ifndef CYGARC_BUS_TO_VIRT
+#define CYGARC_BUS_TO_VIRT(_x_) \
+ (((((unsigned long)(_x_)) >> 28)==0xA) ? (((unsigned long)(_x_))|0x40000000) : (_x_))
+#endif
+
+#ifndef CYGARC_PHYSICAL_ADDRESS
+#define CYGARC_PHYSICAL_ADDRESS(x) (x)
+#endif
+
+#endif // CYGONCE_HAL_ARM_VAR_IO_H
+// EOF var_io.h
diff --git a/ecos/packages/hal/arm/xscale/iop310/current/src/hal_diag.c b/ecos/packages/hal/arm/xscale/iop310/current/src/hal_diag.c
new file mode 100644
index 0000000..9323968
--- /dev/null
+++ b/ecos/packages/hal/arm/xscale/iop310/current/src/hal_diag.c
@@ -0,0 +1,456 @@
+/*=============================================================================
+//
+// hal_diag.c
+//
+// HAL diagnostic output code
+//
+//=============================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): msalter
+// Contributors:msalter, gthomas
+// Date: 2000-10-10
+// Purpose: HAL diagnostic output
+// Description: Implementations of HAL diagnostic output support.
+//
+//####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_arch.h> // basic machine info
+#include <cyg/hal/hal_intr.h> // interrupt macros
+#include <cyg/hal/hal_io.h> // IO macros
+#include <cyg/hal/hal_if.h> // calling interface API
+#include <cyg/hal/hal_misc.h> // helper functions
+#include <cyg/hal/hal_diag.h>
+#include <cyg/hal/hal_iop310.h> // Hardware definitions
+#include <cyg/hal/drv_api.h> // cyg_drv_interrupt_acknowledge
+
+
+static void cyg_hal_plf_serial_init(void);
+
+void
+cyg_hal_plf_comms_init(void)
+{
+ static int initialized = 0;
+
+ if (initialized)
+ return;
+
+ initialized = 1;
+
+ cyg_hal_plf_serial_init();
+}
+
+//=============================================================================
+// Serial driver
+//=============================================================================
+
+//-----------------------------------------------------------------------------
+// Based on 3.6864 MHz xtal
+struct baud_config {
+ cyg_int32 baud_rate;
+ cyg_uint8 msb;
+ cyg_uint8 lsb;
+};
+
+struct baud_config baud_conf[] = {
+ {9600, 0x00, 0x0c},
+ {19200, 0x00, 0x06},
+ {38400, 0x00, 0x03},
+ {57600, 0x00, 0x02},
+ {115200, 0x00, 0x01}};
+
+//-----------------------------------------------------------------------------
+// Define the serial registers. The Cogent board is equipped with a 16552
+// serial chip.
+#define CYG_DEV_SERIAL_RBR 0x00 // receiver buffer register, read, dlab = 0
+#define CYG_DEV_SERIAL_THR 0x00 // transmitter holding register, write, dlab = 0
+#define CYG_DEV_SERIAL_DLL 0x00 // divisor latch (LS), read/write, dlab = 1
+#define CYG_DEV_SERIAL_IER 0x01 // interrupt enable register, read/write, dlab = 0
+#define CYG_DEV_SERIAL_DLM 0x01 // divisor latch (MS), read/write, dlab = 1
+#define CYG_DEV_SERIAL_IIR 0x02 // interrupt identification register, read, dlab = 0
+#define CYG_DEV_SERIAL_FCR 0x02 // fifo control register, write, dlab = 0
+#define CYG_DEV_SERIAL_LCR 0x03 // line control register, write
+#define CYG_DEV_SERIAL_MCR 0x04 // modem control register, write
+#define CYG_DEV_SERIAL_LSR 0x05 // line status register, read
+#define CYG_DEV_SERIAL_MSR 0x06 // modem status register, read
+#define CYG_DEV_SERIAL_SCR 0x07 // scratch pad register
+
+// The interrupt enable register bits.
+#define SIO_IER_ERDAI 0x01 // enable received data available irq
+#define SIO_IER_ETHREI 0x02 // enable THR empty interrupt
+#define SIO_IER_ELSI 0x04 // enable receiver line status irq
+#define SIO_IER_EMSI 0x08 // enable modem status interrupt
+
+// The interrupt identification register bits.
+#define SIO_IIR_IP 0x01 // 0 if interrupt pending
+#define SIO_IIR_ID_MASK 0x0e // mask for interrupt ID bits
+#define ISR_Tx 0x02
+#define ISR_Rx 0x04
+
+// The line status register bits.
+#define SIO_LSR_DR 0x01 // data ready
+#define SIO_LSR_OE 0x02 // overrun error
+#define SIO_LSR_PE 0x04 // parity error
+#define SIO_LSR_FE 0x08 // framing error
+#define SIO_LSR_BI 0x10 // break interrupt
+#define SIO_LSR_THRE 0x20 // transmitter holding register empty
+#define SIO_LSR_TEMT 0x40 // transmitter register empty
+#define SIO_LSR_ERR 0x80 // any error condition
+
+// The modem status register bits.
+#define SIO_MSR_DCTS 0x01 // delta clear to send
+#define SIO_MSR_DDSR 0x02 // delta data set ready
+#define SIO_MSR_TERI 0x04 // trailing edge ring indicator
+#define SIO_MSR_DDCD 0x08 // delta data carrier detect
+#define SIO_MSR_CTS 0x10 // clear to send
+#define SIO_MSR_DSR 0x20 // data set ready
+#define SIO_MSR_RI 0x40 // ring indicator
+#define SIO_MSR_DCD 0x80 // data carrier detect
+
+// The line control register bits.
+#define SIO_LCR_WLS0 0x01 // word length select bit 0
+#define SIO_LCR_WLS1 0x02 // word length select bit 1
+#define SIO_LCR_STB 0x04 // number of stop bits
+#define SIO_LCR_PEN 0x08 // parity enable
+#define SIO_LCR_EPS 0x10 // even parity select
+#define SIO_LCR_SP 0x20 // stick parity
+#define SIO_LCR_SB 0x40 // set break
+#define SIO_LCR_DLAB 0x80 // divisor latch access bit
+
+// The FIFO control register
+#define SIO_FCR_FCR0 0x01 // enable xmit and rcvr fifos
+#define SIO_FCR_FCR1 0x02 // clear RCVR FIFO
+#define SIO_FCR_FCR2 0x04 // clear XMIT FIFO
+
+
+//-----------------------------------------------------------------------------
+typedef struct {
+ cyg_uint8* base;
+ cyg_int32 msec_timeout;
+ int isr_vector;
+ cyg_int32 baud_rate;
+} channel_data_t;
+
+//-----------------------------------------------------------------------------
+static int
+set_baud( channel_data_t *chan )
+{
+ cyg_uint8* base = chan->base;
+ cyg_uint8 i;
+
+ for (i=0; i<(sizeof(baud_conf)/sizeof(baud_conf[0])); i++)
+ {
+ if (chan->baud_rate == baud_conf[i].baud_rate) {
+ cyg_uint8 lcr;
+ HAL_READ_UINT8(base+CYG_DEV_SERIAL_LCR, lcr);
+ HAL_WRITE_UINT8(base+CYG_DEV_SERIAL_LCR, lcr|SIO_LCR_DLAB);
+ HAL_WRITE_UINT8(base+CYG_DEV_SERIAL_DLL, baud_conf[i].lsb);
+ HAL_WRITE_UINT8(base+CYG_DEV_SERIAL_DLM, baud_conf[i].msb);
+ HAL_WRITE_UINT8(base+CYG_DEV_SERIAL_LCR, lcr);
+ return 1;
+ }
+ }
+ return -1;
+}
+
+static void
+init_serial_channel(channel_data_t* __ch_data)
+{
+ cyg_uint8* base = __ch_data->base;
+ channel_data_t* chan = (channel_data_t*)__ch_data;
+
+ // 8-1-no parity.
+ HAL_WRITE_UINT8(base+CYG_DEV_SERIAL_LCR, SIO_LCR_WLS0 | SIO_LCR_WLS1);
+ chan->baud_rate = CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_BAUD;
+ set_baud( chan );
+ HAL_WRITE_UINT8(base+CYG_DEV_SERIAL_FCR, 0x07); // Enable & clear FIFO
+}
+
+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_DEV_SERIAL_LSR, lsr);
+ if ((lsr & SIO_LSR_DR) == 0)
+ return false;
+
+ HAL_READ_UINT8(base+CYG_DEV_SERIAL_RBR, *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;
+}
+
+void
+cyg_hal_plf_serial_putc(void* __ch_data, cyg_uint8 c)
+{
+ cyg_uint8* base = ((channel_data_t*)__ch_data)->base;
+ cyg_uint8 lsr;
+ CYGARC_HAL_SAVE_GP();
+
+ do {
+ HAL_READ_UINT8(base+CYG_DEV_SERIAL_LSR, lsr);
+ } while ((lsr & SIO_LSR_THRE) == 0);
+
+ HAL_WRITE_UINT8(base+CYG_DEV_SERIAL_THR, c);
+
+ // Hang around until the character has been safely sent.
+ do {
+ HAL_READ_UINT8(base+CYG_DEV_SERIAL_LSR, lsr);
+ } while ((lsr & SIO_LSR_THRE) == 0);
+
+ CYGARC_HAL_RESTORE_GP();
+}
+
+static channel_data_t channels[2] = {
+#if CYGHWR_HAL_ARM_IOP310_SERIAL_PORTA != 0
+ { (cyg_uint8*)IOP310_SERIAL_PORT_A, 1000, CYGNUM_HAL_INTERRUPT_SERIAL_A},
+#endif
+#if CYGHWR_HAL_ARM_IOP310_SERIAL_PORTB != 0
+ { (cyg_uint8*)IOP310_SERIAL_PORT_B, 1000, CYGNUM_HAL_INTERRUPT_SERIAL_B},
+#endif
+};
+
+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:
+ HAL_INTERRUPT_UNMASK(chan->isr_vector);
+ HAL_INTERRUPT_SET_LEVEL(chan->isr_vector, 1);
+ HAL_READ_UINT8(chan->base+CYG_DEV_SERIAL_IER, ier);
+ ier |= SIO_IER_ERDAI;
+ HAL_WRITE_UINT8(chan->base+CYG_DEV_SERIAL_IER, ier);
+ irq_state = 1;
+ break;
+ case __COMMCTL_IRQ_DISABLE:
+ ret = irq_state;
+ irq_state = 0;
+ HAL_INTERRUPT_MASK(chan->isr_vector);
+ HAL_READ_UINT8(chan->base+CYG_DEV_SERIAL_IER, ier);
+ ier &= ~SIO_IER_ERDAI;
+ HAL_WRITE_UINT8(chan->base+CYG_DEV_SERIAL_IER, ier);
+ 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);
+ }
+ case __COMMCTL_GETBAUD:
+ ret = chan->baud_rate;
+ break;
+ case __COMMCTL_SETBAUD:
+ {
+ va_list ap;
+ va_start(ap, __func);
+ chan->baud_rate = va_arg(ap, cyg_int32);
+ va_end(ap);
+ ret = set_baud(chan);
+ break;
+ }
+ 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)
+{
+ channel_data_t* chan = (channel_data_t*)__ch_data;
+ cyg_uint8 _iir;
+ int res = 0;
+ CYGARC_HAL_SAVE_GP();
+
+ HAL_READ_UINT8(chan->base+CYG_DEV_SERIAL_IIR, _iir);
+ _iir &= SIO_IIR_ID_MASK;
+
+ *__ctrlc = 0;
+ if ( ISR_Rx == _iir ) {
+ cyg_uint8 c, lsr;
+ HAL_READ_UINT8(chan->base+CYG_DEV_SERIAL_LSR, lsr);
+ if (lsr & SIO_LSR_DR) {
+
+ HAL_READ_UINT8(chan->base+CYG_DEV_SERIAL_RBR, c);
+
+ if( cyg_hal_is_break( &c , 1 ) )
+ *__ctrlc = 1;
+ }
+
+ // Acknowledge the interrupt
+ HAL_INTERRUPT_ACKNOWLEDGE(chan->isr_vector);
+ 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);
+#if CYGNUM_HAL_VIRTUAL_VECTOR_COMM_CHANNELS > 1
+ HAL_INTERRUPT_MASK(channels[1].isr_vector);
+#endif
+
+ // Init channels
+ init_serial_channel(&channels[0]);
+#if CYGNUM_HAL_VIRTUAL_VECTOR_COMM_CHANNELS > 1
+ init_serial_channel(&channels[1]);
+#endif
+
+ // 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);
+
+#if CYGNUM_HAL_VIRTUAL_VECTOR_COMM_CHANNELS > 1
+ // 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);
+#endif
+
+ // Restore original console
+ CYGACC_CALL_IF_SET_CONSOLE_COMM(cur);
+}
+
+/*---------------------------------------------------------------------------*/
+/* End of hal_diag.c */
diff --git a/ecos/packages/hal/arm/xscale/iop310/current/src/iop310_misc.c b/ecos/packages/hal/arm/xscale/iop310/current/src/iop310_misc.c
new file mode 100644
index 0000000..5627081
--- /dev/null
+++ b/ecos/packages/hal/arm/xscale/iop310/current/src/iop310_misc.c
@@ -0,0 +1,1003 @@
+//==========================================================================
+//
+// iop310_misc.c
+//
+// HAL misc board support code for XScale IOP310
+//
+//==========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//==========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): msalter
+// Contributors: msalter, gthomas
+// Date: 2000-10-10
+// 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 CYGHWR_MEMORY_LAYOUT_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_stub.h> // Stub macros
+#include <cyg/hal/hal_if.h> // calling interface API
+#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_iop310.h> // Hardware definitions
+#include <cyg/infra/diag.h> // diag_printf
+#include <cyg/hal/drv_api.h> // CYG_ISR_HANDLED
+
+static cyg_uint32 nfiq_ISR(cyg_vector_t vector, cyg_addrword_t data);
+static cyg_uint32 nirq_ISR(cyg_vector_t vector, cyg_addrword_t data);
+static cyg_uint32 nmi_mcu_ISR(cyg_vector_t vector, cyg_addrword_t data);
+static cyg_uint32 nmi_patu_ISR(cyg_vector_t vector, cyg_addrword_t data);
+static cyg_uint32 nmi_satu_ISR(cyg_vector_t vector, cyg_addrword_t data);
+static cyg_uint32 nmi_pb_ISR(cyg_vector_t vector, cyg_addrword_t data);
+static cyg_uint32 nmi_sb_ISR(cyg_vector_t vector, cyg_addrword_t data);
+
+// Some initialization has already been done before we get here.
+//
+// Set up the interrupt environment.
+// Set up the MMU so that we can use caches.
+// Enable caches.
+// - All done!
+
+void hal_hardware_init(void)
+{
+ hal_xscale_core_init();
+
+ // Route INTA-INTD to IRQ pin
+ // The Yavapai manual is incorrect in that a '1' value
+ // routes to the IRQ line, not a '0' value.
+ *PIRSR_REG = 0x0f;
+
+ // Disable all interrupt sources:
+ *IIMR_REG = 0x7f;
+ *OIMR_REG = 0x7f; // don't mask INTD which is really xint3
+
+ // Let the platform do any specific initializations
+ hal_plf_hardware_init();
+
+ // Mask off all interrupts via xint3
+ *X3MASK_REG = 0x1F;
+
+ // Let the timer run at a default rate (for delays)
+ hal_clock_initialize(CYGNUM_HAL_RTC_PERIOD);
+
+ // Set up eCos/ROM interfaces
+ hal_if_init();
+
+ // attach some builtin interrupt handlers
+ HAL_INTERRUPT_ATTACH (CYGNUM_HAL_INTERRUPT_NIRQ, &nirq_ISR, CYGNUM_HAL_INTERRUPT_NIRQ, 0);
+ HAL_INTERRUPT_UNMASK (CYGNUM_HAL_INTERRUPT_NIRQ);
+
+ HAL_INTERRUPT_ATTACH (CYGNUM_HAL_INTERRUPT_NFIQ, &nfiq_ISR, CYGNUM_HAL_INTERRUPT_NFIQ, 0);
+ HAL_INTERRUPT_UNMASK (CYGNUM_HAL_INTERRUPT_NFIQ);
+
+ HAL_INTERRUPT_ATTACH (CYGNUM_HAL_INTERRUPT_MCU_ERR, &nmi_mcu_ISR, CYGNUM_HAL_INTERRUPT_MCU_ERR, 0);
+ HAL_INTERRUPT_UNMASK (CYGNUM_HAL_INTERRUPT_MCU_ERR);
+
+ HAL_INTERRUPT_ATTACH (CYGNUM_HAL_INTERRUPT_PATU_ERR, &nmi_patu_ISR, CYGNUM_HAL_INTERRUPT_PATU_ERR, 0);
+ HAL_INTERRUPT_UNMASK (CYGNUM_HAL_INTERRUPT_PATU_ERR);
+
+ HAL_INTERRUPT_ATTACH (CYGNUM_HAL_INTERRUPT_SATU_ERR, &nmi_satu_ISR, CYGNUM_HAL_INTERRUPT_SATU_ERR, 0);
+ HAL_INTERRUPT_UNMASK (CYGNUM_HAL_INTERRUPT_SATU_ERR);
+
+ HAL_INTERRUPT_ATTACH (CYGNUM_HAL_INTERRUPT_PBDG_ERR, &nmi_pb_ISR, CYGNUM_HAL_INTERRUPT_PBDG_ERR, 0);
+ HAL_INTERRUPT_UNMASK (CYGNUM_HAL_INTERRUPT_PBDG_ERR);
+
+ HAL_INTERRUPT_ATTACH (CYGNUM_HAL_INTERRUPT_SBDG_ERR, &nmi_sb_ISR, CYGNUM_HAL_INTERRUPT_SBDG_ERR, 0);
+ HAL_INTERRUPT_UNMASK (CYGNUM_HAL_INTERRUPT_SBDG_ERR);
+
+#if 0
+ // Enable FIQ
+ {
+ unsigned rtmp = 0;
+
+ asm volatile ("mrs %0,cpsr\n"
+ "bic %0,%0,#0x40\n"
+ "msr cpsr,%0\n"
+ : "=r"(rtmp) : );
+ }
+#endif
+
+ // Enable caches
+ HAL_DCACHE_ENABLE();
+ HAL_ICACHE_ENABLE();
+}
+
+/*------------------------------------------------------------------------*/
+
+//
+// Memory layout
+//
+
+externC cyg_uint8 *
+hal_arm_mem_real_region_top( cyg_uint8 *regionend )
+{
+ CYG_ASSERT( hal_dram_size > 0, "Didn't detect DRAM size!" );
+ CYG_ASSERT( hal_dram_size <= 512<<20,
+ "More than 512MB reported - that can't be right" );
+
+ // is it the "normal" end of the DRAM region? If so, it should be
+ // replaced by the real size
+ if ( regionend ==
+ ((cyg_uint8 *)CYGMEM_REGION_ram + CYGMEM_REGION_ram_SIZE) ) {
+ regionend = (cyg_uint8 *)CYGMEM_REGION_ram + hal_dram_size;
+ }
+ return regionend;
+} // hal_arm_mem_real_region_top()
+
+
+// -------------------------------------------------------------------------
+
+// Clock can come from the PMU or from an external timer.
+// The external timer is the preferred choice.
+
+#if CYGNUM_HAL_INTERRUPT_RTC == CYGNUM_HAL_INTERRUPT_PMU_CCNT_OVFL
+
+// Proper version that uses the clock counter in the PMU to do proper
+// interrupts that require acknowledgement and all that good stuff.
+
+static cyg_uint32 hal_clock_init_period; // The START value, it counts up
+
+void hal_clock_initialize(cyg_uint32 period)
+{
+ // event types both zero; clear all 3 interrupts;
+ // disable all 3 counter interrupts;
+ // CCNT counts every processor cycle; reset all counters;
+ // enable PMU.
+ register cyg_uint32 init = 0x00000707;
+ asm volatile (
+ "mcr p14,0,%0,c0,c0,0;" // write into PMNC
+ :
+ : "r"(init)
+ /*:*/
+ );
+ // the CCNT in the PMU counts *up* then interrupts at overflow
+ // ie. at 0x1_0000_0000 as it were.
+ // So init to 0xffffffff - period + 1 to get the right answer.
+ period = (~period) + 1;
+ hal_clock_init_period = period;
+ hal_clock_reset( 0, 0 );
+}
+
+// This routine is called during a clock interrupt.
+// (before acknowledging the interrupt)
+void hal_clock_reset(cyg_uint32 vector, cyg_uint32 period)
+{
+ asm volatile (
+ "mrc p14,0,r0,c1,c0,0;" // read from CCNT - how long since OVFL
+ "add %0, %0, r0;" // synchronize with previous overflow
+ "mcr p14,0,%0,c1,c0,0;" // write into CCNT
+ :
+ : "r"(hal_clock_init_period)
+ : "r0"
+ );
+}
+
+// Read the current value of the clock, returning the number of hardware
+// "ticks" that have occurred (i.e. how far away the current value is from
+// the start)
+
+void hal_clock_read(cyg_uint32 *pvalue)
+{
+ register cyg_uint32 now;
+ asm volatile (
+ "mrc p14,0,%0,c1,c0,0;" // read from CCNT
+ : "=r"(now)
+ :
+ /*:*/
+ );
+ *pvalue = now - hal_clock_init_period;
+}
+
+// Delay for some usecs.
+void hal_delay_us(cyg_uint32 delay)
+{
+ int i;
+ // the loop is going to take 3 ticks. At 600 MHz, to give uS, multiply
+ // by 600/3 = 200. No volatile is needed on i; gcc recognizes delay
+ // loops and does NOT elide them.
+ for ( i = 200 * delay; i ; i--)
+ ;
+}
+
+#else // external timer
+
+static cyg_uint32 _period;
+
+void hal_clock_initialize(cyg_uint32 period)
+{
+ _period = period;
+
+ // disable timer
+ EXT_TIMER_INT_DISAB();
+ EXT_TIMER_CNT_DISAB();
+
+ *TIMER_LA0_REG_ADDR = period;
+ *TIMER_LA1_REG_ADDR = period >> 8;
+ *TIMER_LA2_REG_ADDR = period >> 16;
+
+ EXT_TIMER_INT_ENAB();
+ EXT_TIMER_CNT_ENAB();
+}
+
+// Dynamically set the timer interrupt rate.
+// Not for eCos application use at all, just special GPROF code in RedBoot.
+
+void
+hal_clock_reinitialize( int *pfreq, /* inout */
+ unsigned int *pperiod, /* inout */
+ unsigned int old_hz ) /* in */
+{
+ unsigned int newp = 0, period, i = 0;
+ int hz;
+ int do_set_hw;
+
+// Arbitrary choice somewhat - so the CPU can make
+// progress with the clock set like this, we hope.
+#define MIN_TICKS (500)
+#define MAX_TICKS (0xffffff) // 24-bit timer
+
+ if ( ! pfreq || ! pperiod )
+ return; // we cannot even report a problem!
+
+ hz = *pfreq;
+ period = *pperiod;
+
+// Requested HZ:
+// 0 => tell me the current value (no change, implemented in caller)
+// - 1 => tell me the slowest (no change)
+// - 2 => tell me the default (no change, implemented in caller)
+// -nnn => tell me what you would choose for nnn (no change)
+// MIN_INT => tell me the fastest (no change)
+//
+// 1 => tell me the slowest (sets the clock)
+// MAX_INT => tell me the fastest (sets the clock)
+
+ do_set_hw = (hz > 0);
+ if ( hz < 0 )
+ hz = -hz;
+
+ // Be paranoid about bad args, and very defensive about underflows
+ if ( 0 < hz && 0 < period && 0 < old_hz ) {
+
+ newp = period * old_hz / (unsigned)hz;
+
+ if ( newp < MIN_TICKS ) {
+ newp = MIN_TICKS;
+ // recalculate to get the exact delay for this integral hz
+ // and hunt hz down to an acceptable value if necessary
+ i = period * old_hz / newp;
+ if ( i ) do {
+ newp = period * old_hz / i;
+ i--;
+ } while (newp < MIN_TICKS && i);
+ }
+ else if ( newp > MAX_TICKS ) {
+ newp = MAX_TICKS;
+ // recalculate to get the exact delay for this integral hz
+ // and hunt hz up to an acceptable value if necessary
+ i = period * old_hz / newp;
+ if ( i ) do {
+ newp = period * old_hz / i;
+ i++;
+ } while (newp > MAX_TICKS && i);
+ }
+
+ // Recalculate the actual value installed.
+ i = period * old_hz / newp;
+ }
+
+ *pfreq = i;
+ *pperiod = newp;
+
+ if ( do_set_hw ) {
+ hal_clock_initialize( newp );
+ }
+}
+
+// This routine is called during a clock interrupt.
+
+void hal_clock_reset(cyg_uint32 vector, cyg_uint32 period)
+{
+ // to clear the timer interrupt, clear the timer interrupt
+ // enable, then re-set the int. enable bit
+ EXT_TIMER_INT_DISAB();
+ EXT_TIMER_INT_ENAB();
+}
+
+// Read the current value of the clock, returning the number of hardware
+// "ticks" that have occurred (i.e. how far away the current value is from
+// the start)
+
+void hal_clock_read(cyg_uint32 *pvalue)
+{
+ cyg_uint8 cnt0, cnt1, cnt2, cnt3;
+ cyg_uint32 timer_val;;
+
+ // first read latches the count
+ // Actually, it looks like there is a hardware problem where
+ // invalid counts get latched. This do while loop appears
+ // to get around the problem.
+ do {
+ cnt0 = *TIMER_LA0_REG_ADDR & TIMER_COUNT_MASK;
+ } while (cnt0 == 0);
+ cnt1 = *TIMER_LA1_REG_ADDR & TIMER_COUNT_MASK;
+ cnt2 = *TIMER_LA2_REG_ADDR & TIMER_COUNT_MASK;
+ cnt3 = *TIMER_LA3_REG_ADDR & 0xf; /* only 4 bits in most sig. */
+
+ /* now build up the count value */
+ timer_val = ((cnt0 & 0x40) >> 1) | (cnt0 & 0x1f);
+ timer_val |= (((cnt1 & 0x40) >> 1) | (cnt1 & 0x1f)) << 6;
+ timer_val |= (((cnt2 & 0x40) >> 1) | (cnt2 & 0x1f)) << 12;
+ timer_val |= cnt3 << 18;
+
+ *pvalue = timer_val;
+}
+
+// Delay for some usecs.
+void hal_delay_us(cyg_uint32 delay)
+{
+#define _CNT_MASK 0x3fffff
+#define _TICKS_PER_USEC (EXT_TIMER_CLK_FREQ / 1000000)
+ cyg_uint32 now, last, diff, ticks;
+
+ hal_clock_read(&last);
+ diff = ticks = 0;
+
+ while (delay > ticks) {
+ hal_clock_read(&now);
+
+ if (now < last)
+ diff += ((_period - last) + now);
+ else
+ diff += (now - last);
+
+ last = now;
+
+ if (diff >= _TICKS_PER_USEC) {
+ ticks += (diff / _TICKS_PER_USEC);
+ diff %= _TICKS_PER_USEC;
+ }
+ }
+}
+
+#endif
+
+// -------------------------------------------------------------------------
+
+typedef cyg_uint32 cyg_ISR(cyg_uint32 vector, CYG_ADDRWORD data);
+
+extern void cyg_interrupt_post_dsr( CYG_ADDRWORD intr_obj );
+
+static inline cyg_uint32
+hal_call_isr (cyg_uint32 vector)
+{
+ cyg_ISR *isr;
+ CYG_ADDRWORD data;
+ cyg_uint32 isr_ret;
+
+ isr = (cyg_ISR*) hal_interrupt_handlers[vector];
+ data = hal_interrupt_data[vector];
+
+ isr_ret = (*isr) (vector, data);
+
+#ifdef CYGFUN_HAL_COMMON_KERNEL_SUPPORT
+ if (isr_ret & CYG_ISR_CALL_DSR) {
+ cyg_interrupt_post_dsr (hal_interrupt_objects[vector]);
+ }
+#endif
+
+ return isr_ret & ~CYG_ISR_CALL_DSR;
+}
+
+void _scrub_ecc(unsigned p)
+{
+ asm volatile ("ldrb r4, [%0]\n"
+ "strb r4, [%0]\n" : : "r"(p) );
+}
+
+static cyg_uint32 nmi_mcu_ISR(cyg_vector_t vector, cyg_addrword_t data)
+{
+ cyg_uint32 eccr_reg;
+
+ // Read current state of ECC register
+ eccr_reg = *ECCR_REG;
+
+ // Turn off all ecc error reporting
+ *ECCR_REG = 0x4;
+
+ // Check for ECC Error 0
+ if(*MCISR_REG & 0x1) {
+
+#ifdef DEBUG_NMI
+ diag_printf("ELOG0 = 0x%X\n", *ELOG0_REG);
+ diag_printf("ECC Error Detected at Address 0x%X\n",*ECAR0_REG);
+#endif
+
+ // Check for single-bit error
+ if(!(*ELOG0_REG & 0x00000100)) {
+ // call ECC restoration function
+ _scrub_ecc(*ECAR0_REG);
+
+ // Clear the MCISR
+ *MCISR_REG = 0x1;
+ } else {
+#ifdef DEBUG_NMI
+ diag_printf("Multi-bit or nibble error\n");
+#endif
+ }
+ }
+
+ // Check for ECC Error 1
+ if(*MCISR_REG & 0x2) {
+
+#ifdef DEBUG_NMI
+ diag_printf("ELOG0 = 0x%X\n",*ELOG1_REG);
+ diag_printf("ECC Error Detected at Address 0x%X\n",*ECAR1_REG);
+#endif
+
+ // Check for single-bit error
+ if(!(*ELOG1_REG & 0x00000100)) {
+ // call ECC restoration function
+ _scrub_ecc(*ECAR1_REG);
+
+ // Clear the MCISR
+ *MCISR_REG = 0x2;
+ }
+ else {
+#ifdef DEBUG_NMI
+ diag_printf("Multi-bit or nibble error\n");
+#endif
+ }
+ }
+
+ // Check for ECC Error N
+ if(*MCISR_REG & 0x4) {
+ // Clear the MCISR
+ *MCISR_REG = 0x4;
+ diag_printf("Uncorrectable error during RMW\n");
+ }
+
+ // Restore ECCR register
+ *ECCR_REG = eccr_reg;
+
+ // clear the interrupt condition
+ *MCISR_REG = *MCISR_REG & 7;
+
+ return CYG_ISR_HANDLED;
+}
+
+static cyg_uint32 nmi_patu_ISR(cyg_vector_t vector, cyg_addrword_t data)
+{
+ cyg_uint32 status;
+
+ status = *PATUISR_REG;
+
+#ifdef DEBUG_NMI
+ if (status & 0x001) diag_printf ("PPCI Master Parity Error\n");
+ if (status & 0x002) diag_printf ("PPCI Target Abort (target)\n");
+ if (status & 0x004) diag_printf ("PPCI Target Abort (master)\n");
+ if (status & 0x008) diag_printf ("PPCI Master Abort\n");
+ if (status & 0x010) diag_printf ("Primary P_SERR# Detected\n");
+ if (status & 0x080) diag_printf ("Internal Bus Master Abort\n");
+ if (status & 0x100) diag_printf ("PATU BIST Interrupt\n");
+ if (status & 0x200) diag_printf ("PPCI Parity Error Detected\n");
+ if (status & 0x400) diag_printf ("Primary P_SERR# Asserted\n");
+#endif
+
+ *PATUISR_REG = status & 0x79f;
+ *PATUSR_REG |= 0xf900;
+
+ return CYG_ISR_HANDLED;
+}
+
+
+static cyg_uint32 nmi_satu_ISR(cyg_vector_t vector, cyg_addrword_t data)
+{
+ cyg_uint32 status;
+
+ status = *SATUISR_REG;
+
+#ifdef DEBUG_NMI
+ if (status & 0x001) diag_printf ("SPCI Master Parity Error\n");
+ if (status & 0x002) diag_printf ("SPCI Target Abort (target)\n");
+ if (status & 0x004) diag_printf ("SPCI Target Abort (master)\n");
+ if (status & 0x008) diag_printf ("SPCI Master Abort\n");
+ if (status & 0x010) diag_printf ("Secondary P_SERR# Detected\n");
+ if (status & 0x080) diag_printf ("Internal Bus Master Abort\n");
+ if (status & 0x200) diag_printf ("SPCI Parity Error Detected\n");
+ if (status & 0x400) diag_printf ("Secondary P_SERR# Asserted\n");
+#endif
+
+ *SATUISR_REG = status & 0x69f;
+ *SATUSR_REG |= 0xf900;
+
+ return CYG_ISR_HANDLED;
+}
+
+static cyg_uint32 nmi_pb_ISR(cyg_vector_t vector, cyg_addrword_t data)
+{
+ cyg_uint32 status;
+
+ status = *PBISR_REG;
+
+#ifdef DEBUG_NMI
+ if (status & 0x001) diag_printf ("PPCI Master Parity Error\n");
+ if (status & 0x002) diag_printf ("PPCI Target Abort (target)\n");
+ if (status & 0x004) diag_printf ("PPCI Target Abort (master)\n");
+ if (status & 0x008) diag_printf ("PPCI Master Abort\n");
+ if (status & 0x010) diag_printf ("Primary P_SERR# Asserted\n");
+ if (status & 0x020) diag_printf ("PPCI Parity Error Detected\n");
+#endif
+
+ *PBISR_REG = status & 0x3f;
+ *PSR_REG |= 0xf900;
+
+ return CYG_ISR_HANDLED;
+}
+
+
+static cyg_uint32 nmi_sb_ISR(cyg_vector_t vector, cyg_addrword_t data)
+{
+ cyg_uint32 status;
+
+ status = *SBISR_REG;
+
+ *SBISR_REG = status & 0x7f;
+ *SSR_REG |= 0xf900;
+
+ return CYG_ISR_HANDLED;
+}
+
+
+static cyg_uint32 nfiq_ISR(cyg_vector_t vector, cyg_addrword_t data)
+{
+ cyg_uint32 sources;
+ int i, isr_ret;
+
+ // Check NMI
+ sources = *NISR_REG;
+ for (i = 0; i < 12; i++) {
+ if (sources & (1<<i)) {
+ isr_ret = hal_call_isr (CYGNUM_HAL_INTERRUPT_MCU_ERR + i);
+ CYG_ASSERT (isr_ret & CYG_ISR_HANDLED, "Interrupt not handled");
+ return isr_ret;
+ }
+ }
+ return 0;
+}
+
+static cyg_uint32 nirq_ISR(cyg_vector_t vector, cyg_addrword_t data)
+{
+ cyg_uint32 sources;
+ int i, isr_ret;
+ cyg_uint32 xint3_isr, xint3_mask;
+
+ // Check XINT3
+ sources = (xint3_isr = *X3ISR_REG) & ~(xint3_mask = *X3MASK_REG);
+ for (i = 0; i <= CYGNUM_HAL_INTERRUPT_XINT3_BITS; i++) {
+ if (sources & (1 << i)) {
+ isr_ret = hal_call_isr (CYGNUM_HAL_INTERRUPT_XINT3_BIT0 + i);
+ if ((isr_ret & CYG_ISR_HANDLED) == 0) {
+ diag_printf("XINT3 int not handled - ISR: %02x, MASK: %02x\n", xint3_isr, ~xint3_mask);
+ }
+ CYG_ASSERT (isr_ret & CYG_ISR_HANDLED, "XINT3 Interrupt not handled");
+ return isr_ret;
+ }
+ }
+ // What to do about S_INTA-S_INTC?
+
+ // Check XINT6
+ sources = *X6ISR_REG;
+ for (i = 0; i < 3; i++) {
+ // check DMA irqs
+ if (sources & (1<<i)) {
+ isr_ret = hal_call_isr (CYGNUM_HAL_INTERRUPT_DMA_0 + i);
+ CYG_ASSERT (isr_ret & CYG_ISR_HANDLED, "DMA Interrupt not handled");
+ return isr_ret;
+ }
+ }
+ if (sources & 0x10) {
+ // performance monitor
+ _80312_EMISR = *EMISR_REG;
+ if (_80312_EMISR & 1) {
+ isr_ret = hal_call_isr (CYGNUM_HAL_INTERRUPT_GTSC);
+ CYG_ASSERT (isr_ret & CYG_ISR_HANDLED, "GTSC Interrupt not handled");
+ }
+ if (_80312_EMISR & 0x7ffe) {
+ isr_ret = hal_call_isr (CYGNUM_HAL_INTERRUPT_PEC);
+ CYG_ASSERT (isr_ret & CYG_ISR_HANDLED, "PEC Interrupt not handled");
+ }
+ return 0;
+ }
+ if (sources & 0x20) {
+ // Application Accelerator Unit
+ isr_ret = hal_call_isr (CYGNUM_HAL_INTERRUPT_AAIP);
+ CYG_ASSERT (isr_ret & CYG_ISR_HANDLED, "AAIP Interrupt not handled");
+ return isr_ret;
+ }
+
+ // Check XINT7
+ sources = *X7ISR_REG;
+ if (sources & 2) {
+ // I2C Unit
+ cyg_uint32 i2c_sources = *ISR_REG;
+
+ if (i2c_sources & (1<<7)) {
+ isr_ret = hal_call_isr (CYGNUM_HAL_INTERRUPT_I2C_RX_FULL);
+ CYG_ASSERT (isr_ret & CYG_ISR_HANDLED, "I2C RX FULL Interrupt not handled");
+ }
+ if (i2c_sources & (1<<6)) {
+ isr_ret = hal_call_isr (CYGNUM_HAL_INTERRUPT_I2C_TX_EMPTY);
+ CYG_ASSERT (isr_ret & CYG_ISR_HANDLED, "I2C TX EMPTY Interrupt not handled");
+ }
+ if (i2c_sources & (1<<10)) {
+ isr_ret = hal_call_isr (CYGNUM_HAL_INTERRUPT_I2C_BUS_ERR);
+ CYG_ASSERT (isr_ret & CYG_ISR_HANDLED, "I2C BUS ERR Interrupt not handled");
+ }
+ if (i2c_sources & (1<<4)) {
+ isr_ret = hal_call_isr (CYGNUM_HAL_INTERRUPT_I2C_STOP);
+ CYG_ASSERT (isr_ret & CYG_ISR_HANDLED, "I2C STOP Interrupt not handled");
+ }
+ if (i2c_sources & (1<<5)) {
+ isr_ret = hal_call_isr (CYGNUM_HAL_INTERRUPT_I2C_LOSS);
+ CYG_ASSERT (isr_ret & CYG_ISR_HANDLED, "I2C LOSS Interrupt not handled");
+ }
+ if (i2c_sources & (1<<9)) {
+ isr_ret = hal_call_isr (CYGNUM_HAL_INTERRUPT_I2C_ADDRESS);
+ CYG_ASSERT (isr_ret & CYG_ISR_HANDLED, "I2C ADDRESS Interrupt not handled");
+ }
+ return 0;
+ }
+ if (sources & 4) {
+ // Messaging Unit
+ cyg_uint32 inb_sources = *IISR_REG;
+
+ if (inb_sources & (1<<0)) {
+ isr_ret = hal_call_isr (CYGNUM_HAL_INTERRUPT_MESSAGE_0);
+ CYG_ASSERT (isr_ret & CYG_ISR_HANDLED, "MESSAGE 0 Interrupt not handled");
+ }
+ if (inb_sources & (1<<1)) {
+ isr_ret = hal_call_isr (CYGNUM_HAL_INTERRUPT_MESSAGE_1);
+ CYG_ASSERT (isr_ret & CYG_ISR_HANDLED, "MESSAGE 1 Interrupt not handled");
+ }
+ if (inb_sources & (1<<2)) {
+ isr_ret = hal_call_isr (CYGNUM_HAL_INTERRUPT_DOORBELL);
+ CYG_ASSERT (isr_ret & CYG_ISR_HANDLED, "DOORBELL Interrupt not handled");
+ }
+ if (inb_sources & (1<<4)) {
+ isr_ret = hal_call_isr (CYGNUM_HAL_INTERRUPT_QUEUE_POST);
+ CYG_ASSERT (isr_ret & CYG_ISR_HANDLED, "QUEUE POST Interrupt not handled");
+ }
+ if (inb_sources & (1<<6)) {
+ isr_ret = hal_call_isr (CYGNUM_HAL_INTERRUPT_INDEX_REGISTER);
+ CYG_ASSERT (isr_ret & CYG_ISR_HANDLED, "INDEX REGISTER Interrupt not handled");
+ }
+ return 0;
+ }
+ if (sources & 8) {
+ // BIST
+ isr_ret = hal_call_isr (CYGNUM_HAL_INTERRUPT_BIST);
+ CYG_ASSERT (isr_ret & CYG_ISR_HANDLED, "BIST Interrupt not handled");
+ }
+
+ return 0;
+}
+
+// This routine is called to respond to a hardware interrupt (IRQ). It
+// should interrogate the hardware and return the IRQ vector number.
+int hal_IRQ_handler(void)
+{
+ int sources, masks;
+
+ asm volatile ( // read the interrupt source reg INTSRC
+ "mrc p13,0,%0,c4,c0,0;"
+ : "=r"(sources)
+ :
+ /*:*/
+ );
+ asm volatile ( // read the interrupt control reg INTCTL
+ "mrc p13,0,%0,c0,c0,0;"
+ : "=r"(masks)
+ :
+ /*:*/
+ );
+ // is a source both unmasked and active?
+ if ( (0 != (1 & masks)) && (0 != ((8 << 28) & sources)) )
+ return CYGNUM_HAL_INTERRUPT_NFIQ;
+ if ( (0 != (2 & masks)) && (0 != ((4 << 28) & sources)) )
+ return CYGNUM_HAL_INTERRUPT_NIRQ;
+ if ( (0 != (8 & masks)) && (0 != ((2 << 28) & sources)) )
+ return CYGNUM_HAL_INTERRUPT_BCU_INTERRUPT;
+ if ( (0 != (4 & masks)) && (0 != ((1 << 28) & sources)) ) {
+ // more complicated; it's the PMU.
+ asm volatile ( // read the PMNC perfmon control reg
+ "mrc p14,0,%0,c0,c0,0;"
+ : "=r"(sources)
+ :
+ /*:*/
+ );
+ // sources is now the PMNC performance monitor control register
+ // enable bits are 4..6, status bits are 8..10
+ sources = (sources >> 4) & (sources >> 8);
+ if ( 1 & sources )
+ return CYGNUM_HAL_INTERRUPT_PMU_PMN0_OVFL;
+ if ( 2 & sources )
+ return CYGNUM_HAL_INTERRUPT_PMU_PMN1_OVFL;
+ if ( 4 & sources )
+ return CYGNUM_HAL_INTERRUPT_PMU_CCNT_OVFL;
+ }
+
+ return CYGNUM_HAL_INTERRUPT_NONE; // This shouldn't happen!
+}
+
+//
+// Interrupt control
+//
+
+void hal_interrupt_mask(int vector)
+{
+ int mask = 0;
+ int submask = 0;
+ switch ( vector ) {
+ case CYGNUM_HAL_INTERRUPT_PMU_PMN0_OVFL:
+ case CYGNUM_HAL_INTERRUPT_PMU_PMN1_OVFL:
+ case CYGNUM_HAL_INTERRUPT_PMU_CCNT_OVFL:
+ submask = vector - CYGNUM_HAL_INTERRUPT_PMU_PMN0_OVFL; // 0 to 2
+ // select interrupt enable bit and also enable the perfmon per se
+ submask = (1 << (submask + 4)); // bits 4-6 are masks
+ asm volatile (
+ "mrc p14,0,r1,c0,c0,0;"
+ "bic r1, r1, #0x700;" // clear the overflow/interrupt flags
+ "bic r1, r1, #0x006;" // clear the reset bits
+ "bic %0, r1, %0;" // preserve r1; better for debugging
+ "tsts %0, #0x070;" // are all 3 sources now off?
+ "biceq %0, %0, #1;" // if so, disable entirely.
+ "mcr p14,0,%0,c0,c0,0;"
+ :
+ : "r"(submask)
+ : "r1"
+ );
+ mask = 4;
+ break;
+ case CYGNUM_HAL_INTERRUPT_BCU_INTERRUPT:
+ // Nothing specific to do here
+ mask = 8;
+ break;
+ case CYGNUM_HAL_INTERRUPT_NIRQ :
+ mask = 2;
+ break;
+ case CYGNUM_HAL_INTERRUPT_NFIQ :
+ mask = 1;
+ break;
+ case CYGNUM_HAL_INTERRUPT_GTSC:
+ *GTMR_REG &= ~1;
+ return;
+ case CYGNUM_HAL_INTERRUPT_PEC:
+ *ESR_REG &= ~(1<<16);
+ return;
+ case CYGNUM_HAL_INTERRUPT_AAIP:
+ *ADCR_REG &= ~1;
+ return;
+ case CYGNUM_HAL_INTERRUPT_I2C_TX_EMPTY ... CYGNUM_HAL_INTERRUPT_I2C_ADDRESS:
+ *ICR_REG &= ~(1<<(vector - CYGNUM_HAL_INTERRUPT_I2C_TX_EMPTY));
+ return;
+ case CYGNUM_HAL_INTERRUPT_MESSAGE_0 ... CYGNUM_HAL_INTERRUPT_INDEX_REGISTER:
+ *IIMR_REG &= ~(1<<(vector - CYGNUM_HAL_INTERRUPT_MESSAGE_0));
+ return;
+ case CYGNUM_HAL_INTERRUPT_BIST:
+ *ATUCR_REG &= ~(1<<3);
+ return;
+ case CYGNUM_HAL_INTERRUPT_P_SERR: // FIQ
+ *ATUCR_REG &= ~(1<<9);
+ return;
+ case CYGNUM_HAL_INTERRUPT_S_SERR: // FIQ
+ *ATUCR_REG &= ~(1<<10);
+ return;
+ case CYGNUM_HAL_INTERRUPT_XINT3_BIT0 ... CYGNUM_HAL_INTERRUPT_XINT3_BIT4:
+ *X3MASK_REG |= (1<<(vector - CYGNUM_HAL_INTERRUPT_XINT3_BIT0));
+ return;
+
+#ifdef CYGNUM_HAL_INTERRUPT_PCI_S_INTC
+ // The hardware doesn't (yet?) provide masking or status for these
+ // even though they can trigger cpu interrupts. ISRs will need to
+ // poll the device to see if the device actually triggered the
+ // interrupt.
+ case CYGNUM_HAL_INTERRUPT_PCI_S_INTC:
+ case CYGNUM_HAL_INTERRUPT_PCI_S_INTB:
+ case CYGNUM_HAL_INTERRUPT_PCI_S_INTA:
+ default:
+ /* do nothing */
+ return;
+#endif
+ }
+ asm volatile (
+ "mrc p13,0,r1,c0,c0,0;"
+ "bic r1, r1, %0;"
+ "mcr p13,0,r1,c0,c0,0;"
+ :
+ : "r"(mask)
+ : "r1"
+ );
+}
+
+void hal_interrupt_unmask(int vector)
+{
+ int mask = 0;
+ int submask = 0;
+ switch ( vector ) {
+ case CYGNUM_HAL_INTERRUPT_PMU_PMN0_OVFL:
+ case CYGNUM_HAL_INTERRUPT_PMU_PMN1_OVFL:
+ case CYGNUM_HAL_INTERRUPT_PMU_CCNT_OVFL:
+ submask = vector - CYGNUM_HAL_INTERRUPT_PMU_PMN0_OVFL; // 0 to 2
+ // select interrupt enable bit and also enable the perfmon per se
+ submask = 1 + (1 << (submask + 4)); // bits 4-6 are masks
+ asm volatile (
+ "mrc p14,0,r1,c0,c0,0;"
+ "bic r1, r1, #0x700;" // clear the overflow/interrupt flags
+ "bic r1, r1, #0x006;" // clear the reset bits
+ "orr %0, r1, %0;" // preserve r1; better for debugging
+ "mcr p14,0,%0,c0,c0,0;"
+ "mrc p13,0,r2,c8,c0,0;" // steer PMU interrupt to IRQ
+ "and r2, r2, #2;" // preserve the other bit (BCU steer)
+ "mcr p13,0,r2,c8,c0,0;"
+ :
+ : "r"(submask)
+ : "r1","r2"
+ );
+ mask = 4;
+ break;
+ case CYGNUM_HAL_INTERRUPT_BCU_INTERRUPT:
+ asm volatile (
+ "mrc p13,0,r2,c8,c0,0;" // steer BCU interrupt to IRQ
+ "and r2, r2, #1;" // preserve the other bit (PMU steer)
+ "mcr p13,0,r2,c8,c0,0;"
+ :
+ :
+ : "r2"
+ );
+ mask = 8;
+ break;
+ case CYGNUM_HAL_INTERRUPT_NIRQ :
+ mask = 2;
+ break;
+ case CYGNUM_HAL_INTERRUPT_NFIQ :
+ mask = 1;
+ break;
+ case CYGNUM_HAL_INTERRUPT_GTSC:
+ *GTMR_REG |= 1;
+ return;
+ case CYGNUM_HAL_INTERRUPT_PEC:
+ *ESR_REG |= (1<<16);
+ return;
+ case CYGNUM_HAL_INTERRUPT_AAIP:
+ *ADCR_REG |= 1;
+ return;
+ case CYGNUM_HAL_INTERRUPT_I2C_TX_EMPTY ... CYGNUM_HAL_INTERRUPT_I2C_ADDRESS:
+ *ICR_REG |= (1<<(vector - CYGNUM_HAL_INTERRUPT_I2C_TX_EMPTY));
+ return;
+ case CYGNUM_HAL_INTERRUPT_MESSAGE_0 ... CYGNUM_HAL_INTERRUPT_INDEX_REGISTER:
+ *IIMR_REG |= (1<<(vector - CYGNUM_HAL_INTERRUPT_MESSAGE_0));
+ return;
+ case CYGNUM_HAL_INTERRUPT_BIST:
+ *ATUCR_REG |= (1<<3);
+ return;
+ case CYGNUM_HAL_INTERRUPT_P_SERR: // FIQ
+ *ATUCR_REG |= (1<<9);
+ return;
+ case CYGNUM_HAL_INTERRUPT_S_SERR: // FIQ
+ *ATUCR_REG |= (1<<10);
+ return;
+ case CYGNUM_HAL_INTERRUPT_XINT3_BIT0 ... CYGNUM_HAL_INTERRUPT_XINT3_BIT4:
+ *X3MASK_REG &= ~(1<<(vector - CYGNUM_HAL_INTERRUPT_XINT3_BIT0));
+ return;
+
+#ifdef CYGNUM_HAL_INTERRUPT_PCI_S_INTC
+ // The hardware doesn't (yet?) provide masking or status for these
+ // even though they can trigger cpu interrupts. ISRs will need to
+ // poll the device to see if the device actually triggered the
+ // interrupt.
+ case CYGNUM_HAL_INTERRUPT_PCI_S_INTC:
+ case CYGNUM_HAL_INTERRUPT_PCI_S_INTB:
+ case CYGNUM_HAL_INTERRUPT_PCI_S_INTA:
+ default:
+ /* do nothing */
+ return;
+#endif
+ }
+ asm volatile (
+ "mrc p13,0,r1,c0,c0,0;"
+ "orr %0, r1, %0;"
+ "mcr p13,0,%0,c0,c0,0;"
+ :
+ : "r"(mask)
+ : "r1"
+ );
+}
+
+void hal_interrupt_acknowledge(int vector)
+{
+ int submask = 0;
+ switch ( vector ) {
+ case CYGNUM_HAL_INTERRUPT_PMU_PMN0_OVFL:
+ case CYGNUM_HAL_INTERRUPT_PMU_PMN1_OVFL:
+ case CYGNUM_HAL_INTERRUPT_PMU_CCNT_OVFL:
+ submask = vector - CYGNUM_HAL_INTERRUPT_PMU_PMN0_OVFL; // 0 to 2
+ // select interrupt enable bit and also enable the perfmon per se
+ submask = (1 << (submask + 8)); // bits 8-10 are status; write 1 clr
+ // Careful not to ack other interrupts or zero any counters:
+ asm volatile (
+ "mrc p14,0,r1,c0,c0,0;"
+ "bic r1, r1, #0x700;" // clear the overflow/interrupt flags
+ "bic r1, r1, #0x006;" // clear the reset bits
+ "orr %0, r1, %0;" // preserve r1; better for debugging
+ "mcr p14,0,%0,c0,c0,0;"
+ :
+ : "r"(submask)
+ : "r1"
+ );
+ break;
+ case CYGNUM_HAL_INTERRUPT_BCU_INTERRUPT:
+ case CYGNUM_HAL_INTERRUPT_NIRQ :
+ case CYGNUM_HAL_INTERRUPT_NFIQ :
+ default:
+ /* do nothing */
+ return;
+ }
+}
+
+void hal_interrupt_configure(int vector, int level, int up)
+{
+}
+
+void hal_interrupt_set_level(int vector, int level)
+{
+}
+
+/*------------------------------------------------------------------------*/
+// EOF iop310_misc.c
diff --git a/ecos/packages/hal/arm/xscale/iop310/current/src/iop310_pci.c b/ecos/packages/hal/arm/xscale/iop310/current/src/iop310_pci.c
new file mode 100644
index 0000000..4f70747
--- /dev/null
+++ b/ecos/packages/hal/arm/xscale/iop310/current/src/iop310_pci.c
@@ -0,0 +1,456 @@
+//==========================================================================
+//
+// iop310_pci.c
+//
+// HAL board support code for XScale IOP310 PCI
+//
+//==========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//==========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): msalter
+// Contributors: msalter
+// Date: 2000-10-10
+// Purpose: PCI support
+// Description: Implementations of HAL PCI interfaces
+//
+//####DESCRIPTIONEND####
+//
+//========================================================================*/
+
+#include <pkgconf/hal.h>
+#include <pkgconf/system.h>
+#include CYGBLD_HAL_PLATFORM_H
+#include CYGHWR_MEMORY_LAYOUT_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_if.h> // calling interface API
+#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_iop310.h> // Hardware definitions
+#include <cyg/io/pci_hw.h>
+#include <cyg/io/pci.h>
+
+static cyg_uint8 pbus_nr;
+static cyg_uint8 sbus_nr;
+static cyg_uint8 subbus_nr;
+
+void cyg_hal_plf_pci_init(void)
+{
+ cyg_uint32 limit_reg;
+ cyg_uint8 next_bus;
+
+ // ************ bridge registers *******************
+ if (iop310_is_host()) {
+
+ // set the primary inbound ATU base address to the start of DRAM
+ *PIABAR_REG = MEMBASE_DRAM & 0xFFFFF000;
+
+ // ********* Set Primary Outbound Windows *********
+
+ // Note: The primary outbound ATU memory window value register
+ // and i/o window value registers are defaulted to 0
+
+ // set the primary outbound windows to directly map Local - PCI
+ // requests
+ // outbound memory window
+ *POMWVR_REG = PRIMARY_MEM_BASE;
+
+ // outbound DAC Window
+ *PODWVR_REG = PRIMARY_DAC_BASE;
+
+ // outbound I/O window
+ *POIOWVR_REG = PRIMARY_IO_BASE;
+
+ // set the bridge command register
+ *PCR_REG = (CYG_PCI_CFG_COMMAND_SERR | \
+ CYG_PCI_CFG_COMMAND_PARITY | \
+ CYG_PCI_CFG_COMMAND_MASTER | \
+ CYG_PCI_CFG_COMMAND_MEMORY);
+
+ // set the subordinate bus number to 0xFF
+ *SUBBNR_REG = 0xFF;
+ // set the secondary bus number to 1
+ *SBNR_REG = SECONDARY_BUS_NUM;
+ *BCR_REG = 0x0823;
+ // set the primary bus number to 0
+ *PBNR_REG = PRIMARY_BUS_NUM;
+
+ // allow primary ATU to act as a bus master, respond to PCI
+ // memory accesses, assert P_SERR#, and enable parity checking
+ *PATUCMD_REG = (CYG_PCI_CFG_COMMAND_SERR | \
+ CYG_PCI_CFG_COMMAND_PARITY | \
+ CYG_PCI_CFG_COMMAND_MASTER | \
+ CYG_PCI_CFG_COMMAND_MEMORY);
+ } else {
+#ifdef CYGSEM_HAL_ARM_IOP310_CLEAR_PCI_RETRY
+ // Wait for PC BIOS to initialize bus number
+ int i;
+
+ for (i = 0; i < 15000; i++) {
+ if (*PCR_REG & CYG_PCI_CFG_COMMAND_MEMORY)
+ break;
+ hal_delay_us(1000); // 1msec
+ }
+ for (i = 0; i < 15000; i++) {
+ if (*SBNR_REG != 0)
+ break;
+ hal_delay_us(1000); // 1msec
+ }
+#endif
+ if (*SBNR_REG == 0)
+ *SBNR_REG = SECONDARY_BUS_NUM;
+ if (*SUBBNR_REG == 0)
+ *SUBBNR_REG = 0xFF;
+ if (*BCR_REG == 0)
+ *BCR_REG = 0x0823;
+ if (*PCR_REG == 0)
+ *PCR_REG = (CYG_PCI_CFG_COMMAND_SERR | \
+ CYG_PCI_CFG_COMMAND_PARITY | \
+ CYG_PCI_CFG_COMMAND_MASTER | \
+ CYG_PCI_CFG_COMMAND_MEMORY);
+ if (*PATUCMD_REG == 0)
+ *PATUCMD_REG = (CYG_PCI_CFG_COMMAND_SERR | \
+ CYG_PCI_CFG_COMMAND_PARITY | \
+ CYG_PCI_CFG_COMMAND_MASTER | \
+ CYG_PCI_CFG_COMMAND_MEMORY);
+ }
+
+ // Initialize Secondary PCI bus (bus 1)
+ *BCR_REG |= 0x40; // reset secondary bus
+ hal_delay_us(10 * 1000); // 10ms enough??
+ *BCR_REG &= ~0x40; // release reset
+
+ // ******** Secondary Inbound ATU ***********
+
+ // set secondary inbound ATU translate value register to point to base
+ // of local DRAM
+ *SIATVR_REG = MEMBASE_DRAM & 0xFFFFFFFC;
+
+ // set secondary inbound ATU base address to start of DRAM
+ *SIABAR_REG = MEMBASE_DRAM & 0xFFFFF000;
+
+ // always allow secondary pci access to all memory (even with A0 step)
+ limit_reg = (0xFFFFFFFF - (hal_dram_size - 1)) & 0xFFFFFFF0;
+ *SIALR_REG = limit_reg;
+
+ // ********** Set Secondary Outbound Windows ***********
+
+ // Note: The secondary outbound ATU memory window value register
+ // and i/o window value registers are defaulted to 0
+
+ // set the secondary outbound window to directly map Local - PCI requests
+ // outbound memory window
+ *SOMWVR_REG = SECONDARY_MEM_BASE;
+
+ // outbound DAC Window
+ *SODWVR_REG = SECONDARY_DAC_BASE;
+
+ // outbound I/O window
+ *SOIOWVR_REG = SECONDARY_IO_BASE;
+
+ // allow secondary ATU to act as a bus master, respond to PCI memory
+ // accesses, and assert S_SERR#
+ *SATUCMD_REG = (CYG_PCI_CFG_COMMAND_SERR | \
+ CYG_PCI_CFG_COMMAND_PARITY | \
+ CYG_PCI_CFG_COMMAND_MASTER | \
+ CYG_PCI_CFG_COMMAND_MEMORY);
+
+ // enable primary and secondary outbound ATUs, BIST, and primary bus
+ // direct addressing
+ *ATUCR_REG = 0x00000006;
+
+ pbus_nr = *PBNR_REG;
+ sbus_nr = *SBNR_REG;
+
+ // Now initialize the PCI busses.
+
+ // Next assignable bus number. Yavapai primary bus is fixed as
+ // bus zero and yavapai secondary is fixed as bus 1.
+ next_bus = sbus_nr + 1;
+
+ // If we are the host on the Primary bus, then configure it.
+ if (iop310_is_host()) {
+
+ // Initialize these so all config cycles first go out over
+ // the Primary side
+ pbus_nr = 0;
+ sbus_nr = 0xff;
+
+ // set the primary bus number to 0
+ *PBNR_REG = 0;
+ next_bus = 1;
+
+ // Initialize Primary PCI bus (bus 0)
+ cyg_pci_set_memory_base(PRIMARY_MEM_BASE);
+ cyg_pci_set_io_base(PRIMARY_IO_BASE);
+ cyg_pci_configure_bus(0, &next_bus);
+
+ // set the secondary bus number to next available number
+ *SBNR_REG = sbus_nr = next_bus;
+
+ pbus_nr = *PBNR_REG;
+ next_bus = sbus_nr + 1;
+ }
+
+ // Initialize Secondary PCI bus (bus 1)
+ cyg_pci_set_memory_base(SECONDARY_MEM_BASE);
+ cyg_pci_set_io_base(SECONDARY_IO_BASE);
+ subbus_nr = 0xFF;
+ cyg_pci_configure_bus(sbus_nr, &next_bus);
+ *SUBBNR_REG = subbus_nr = next_bus - 1;
+
+
+ if (0){
+ cyg_uint8 devfn;
+ cyg_pci_device_id devid;
+ cyg_pci_device dev_info;
+
+ diag_printf("pbus[%d] sbus[%d] subbus[%d]\n", pbus_nr, sbus_nr, subbus_nr);
+
+ devid = CYG_PCI_DEV_MAKE_ID(sbus_nr, 0) | CYG_PCI_NULL_DEVFN;
+ while (cyg_pci_find_next(devid, &devid)) {
+ devfn = CYG_PCI_DEV_GET_DEVFN(devid);
+ cyg_pci_get_device_info(devid, &dev_info);
+
+ diag_printf("\n");
+ diag_printf(" Bus: %d\n", CYG_PCI_DEV_GET_BUS(devid));
+ diag_printf(" PCI Device: %d\n", CYG_PCI_DEV_GET_DEV(devfn));
+ diag_printf(" PCI Func : %d\n", CYG_PCI_DEV_GET_FN(devfn));
+ diag_printf(" Vendor Id : 0x%08X\n", dev_info.vendor);
+ diag_printf(" Device Id : 0x%08X\n", dev_info.device);
+ }
+ }
+}
+
+// Use "naked" attribute to suppress C prologue/epilogue
+static void __attribute__ ((naked)) __pci_abort_handler(void)
+{
+ asm ( "subs pc, lr, #4\n" );
+}
+
+static cyg_uint32 orig_abort_vec;
+
+static inline cyg_uint32 *pci_config_setup(cyg_uint32 bus,
+ cyg_uint32 devfn,
+ cyg_uint32 offset)
+{
+ volatile cyg_uint32 *pdata, *paddr;
+ cyg_uint32 dev = CYG_PCI_DEV_GET_DEV(devfn);
+ cyg_uint32 fn = CYG_PCI_DEV_GET_FN(devfn);
+
+ if (bus < sbus_nr || bus > subbus_nr) {
+ paddr = (volatile cyg_uint32 *)POCCAR_ADDR;
+ pdata = (volatile cyg_uint32 *)POCCDR_ADDR;
+ } else {
+ paddr = (volatile cyg_uint32 *)SOCCAR_ADDR;
+ pdata = (volatile cyg_uint32 *)SOCCDR_ADDR;
+ }
+
+ /* Offsets must be dword-aligned */
+ offset &= ~3;
+
+ /* Primary or secondary bus use type 0 config */
+ /* all others use type 1 config */
+ if (bus == pbus_nr || bus == sbus_nr)
+ *paddr = ( (1 << (dev + 16)) | (fn << 8) | offset | 0 );
+ else
+ *paddr = ( (bus << 16) | (dev << 11) | (fn << 8) | offset | 1 );
+
+ orig_abort_vec = ((volatile cyg_uint32 *)0x20)[4];
+ ((volatile unsigned *)0x20)[4] = (unsigned)__pci_abort_handler;
+ HAL_ICACHE_SYNC();
+
+ return pdata;
+}
+
+static inline int pci_config_cleanup(cyg_uint32 bus)
+{
+ cyg_uint32 status = 0, err = 0;
+
+ if (bus < sbus_nr || bus > subbus_nr) {
+ status = *PATUSR_REG;
+ if ((status & 0xF900) != 0) {
+ err = 1;
+ *PATUSR_REG = status & 0xF980;
+ }
+ status = *PSR_REG;
+ if ((status & 0xF900) != 0) {
+ err = 1;
+ *PSR_REG = status & 0xF980;
+ }
+ status = *PATUISR_REG;
+ if ((status & 0x79F) != 0) {
+ err = 1;
+ *PATUISR_REG = status & 0x79f;
+ }
+ status = *PBISR_REG;
+ if ((status & 0x3F) != 0) {
+ err = 1;
+ *PBISR_REG = status & 0x3F;
+ }
+ } else {
+ status = *SATUSR_REG;
+ if ((status & 0xF900) != 0) {
+ err = 1;
+ *SATUSR_REG = status & 0xF900;
+ }
+ status = *SSR_REG;
+ if ((status & 0xF900) != 0) {
+ err = 1;
+ *SSR_REG = status & 0xF980;
+ }
+ status = *SATUISR_REG;
+ if ((status & 0x69F) != 0) {
+ err = 1;
+ *SATUISR_REG = status & 0x69F;
+ }
+ }
+
+ ((volatile unsigned *)0x20)[4] = orig_abort_vec;
+ HAL_ICACHE_SYNC();
+
+ return err;
+}
+
+
+
+cyg_uint32 cyg_hal_plf_pci_cfg_read_dword (cyg_uint32 bus,
+ cyg_uint32 devfn,
+ cyg_uint32 offset)
+{
+ cyg_uint32 *pdata, config_data;
+
+ pdata = pci_config_setup(bus, devfn, offset);
+
+ config_data = *pdata;
+
+ if (pci_config_cleanup(bus))
+ return 0xffffffff;
+ else
+ return config_data;
+}
+
+
+void cyg_hal_plf_pci_cfg_write_dword (cyg_uint32 bus,
+ cyg_uint32 devfn,
+ cyg_uint32 offset,
+ cyg_uint32 data)
+{
+ cyg_uint32 *pdata;
+
+ pdata = pci_config_setup(bus, devfn, offset);
+
+ *pdata = data;
+
+ pci_config_cleanup(bus);
+}
+
+
+cyg_uint16 cyg_hal_plf_pci_cfg_read_word (cyg_uint32 bus,
+ cyg_uint32 devfn,
+ cyg_uint32 offset)
+{
+ cyg_uint32 *pdata;
+ cyg_uint16 config_data;
+
+ pdata = pci_config_setup(bus, devfn, offset);
+
+ config_data = (cyg_uint16)(((*pdata) >> ((offset % 0x4) * 8)) & 0xffff);
+
+ if (pci_config_cleanup(bus))
+ return 0xffff;
+ else
+ return config_data;
+}
+
+void cyg_hal_plf_pci_cfg_write_word (cyg_uint32 bus,
+ cyg_uint32 devfn,
+ cyg_uint32 offset,
+ cyg_uint16 data)
+{
+ cyg_uint32 *pdata, mask, temp;
+
+ pdata = pci_config_setup(bus, devfn, offset);
+
+ mask = ~(0x0000ffff << ((offset % 0x4) * 8));
+
+ temp = (cyg_uint32)(((cyg_uint32)data) << ((offset % 0x4) * 8));
+ *pdata = (*pdata & mask) | temp;
+
+ pci_config_cleanup(bus);
+}
+
+cyg_uint8 cyg_hal_plf_pci_cfg_read_byte (cyg_uint32 bus,
+ cyg_uint32 devfn,
+ cyg_uint32 offset)
+{
+ cyg_uint32 *pdata;
+ cyg_uint8 config_data;
+
+ pdata = pci_config_setup(bus, devfn, offset);
+
+ config_data = (cyg_uint8)(((*pdata) >> ((offset % 0x4) * 8)) & 0xff);
+
+ if (pci_config_cleanup(bus))
+ return 0xff;
+ else
+ return config_data;
+}
+
+
+void cyg_hal_plf_pci_cfg_write_byte (cyg_uint32 bus,
+ cyg_uint32 devfn,
+ cyg_uint32 offset,
+ cyg_uint8 data)
+{
+ cyg_uint32 *pdata, mask, temp;
+
+ pdata = pci_config_setup(bus, devfn, offset);
+
+ mask = ~(0x000000ff << ((offset % 0x4) * 8));
+ temp = (cyg_uint32)(((cyg_uint32)data) << ((offset % 0x4) * 8));
+ *pdata = (*pdata & mask) | temp;
+
+ pci_config_cleanup(bus);
+}
+
+
+
diff --git a/ecos/packages/hal/arm/xscale/iq80310/current/ChangeLog b/ecos/packages/hal/arm/xscale/iq80310/current/ChangeLog
new file mode 100644
index 0000000..14753e7
--- /dev/null
+++ b/ecos/packages/hal/arm/xscale/iq80310/current/ChangeLog
@@ -0,0 +1,540 @@
+2009-10-16 John Dallaway <john@dallaway.org.uk>
+
+ * cdl/hal_arm_xscale_iq80310.cdl: Parent under
+ CYGPKG_HAL_ARM_XSCALE_IOP310.
+
+2003-09-23 Jani Monoses <jani@iv.ro>
+
+ * src/diag/diag.c: Only use ethernet if CYGPKG_IO_ETH_DRIVERS
+ is enabled.
+
+2003-09-21 Gary Thomas <gary@mlbassoc.com>
+
+ * misc/redboot_RAM.ecm:
+ * misc/redboot_ROM.ecm: Adjust for changes in RedBoot
+ template - DNS now must be enabled manually.
+
+2003-02-10 Nick Garnett <nickg@calivar.com>
+
+ * misc/redboot_ROMA.ecm:
+ Changed reference to CYGSCYGSEM_HAL_ARM_IQ80310_ARMBOOT to
+ CYGSEM_HAL_ARM_IOP310_ARMBOOT.
+
+2003-02-05 Nick Garnett <nickg@calivar.com>
+
+ * src/diag/iq80310.h: Added CYGONCE_IQ80310_H to avoid compilation
+ errors.
+
+2003-01-31 Mark Salter <msalter@redhat.com>
+
+ * include/hal_platform_setup.h: Disabling of write buffer
+ is not necessary.
+
+ * misc/redboot_RAM.ecm: Don't enable BTB for RedBoot.
+ * misc/redboot_RAMA.ecm: Ditto.
+ * misc/redboot_ROM.ecm: Ditto.
+ * misc/redboot_ROMA.ecm: Ditto.
+
+2003-01-30 Mark Salter <msalter@redhat.com>
+
+ * include/pkgconf/mlt_*: Adjust RAM size to match max supported.
+ Actual size of installed RAM determined at runtime.
+
+2003-01-22 Mark Salter <msalter@redhat.com>
+
+ * src/diag/diag.c: Don't define DEFINE_VARS.
+ * src/diag/pci_serv.c: Remove pci_int_handlers decl.
+ * src/diag/iq80310.h: Remove cmd_stat declaration.
+ * src/diag/flash.c: Declare cmd_stat.
+ * include/plf_io.h: Remove unused duplicate code.
+ (HAL_PCI_TRANSLATE_INTERRUPT): Fix typo.
+
+2002-11-13 Mark Salter <msalter@redhat.com>
+
+ * misc/redboot_RAM.ecm: Remove CYGPKG_IO_SERIAL_ARM_XSCALE_IQ80310.
+ * misc/redboot_RAMA.ecm: Ditto.
+ * misc/redboot_ROM.ecm: Ditto
+ * misc/redboot_ROMA.ecm: Ditto
+
+ * cdl/hal_arm_xscale_iq80310.cdl (CYGBLD_INTEL_DIAGNOSTICS): Change
+ default to 1.
+ * include/hal_platform_setup.h: Use IOP310_EARLY_PCI_SETUP to make
+ some BIOSes happy. BTB_INIT macro provided elsewhere.
+ * src/diag/*: General cleanup to get rid of warnings and to eliminate
+ functionality provided by the HAL.
+
+2002-11-12 Gary Thomas <gary@mlbassoc.com>
+
+ * src/diag/xscale_test.c:
+ * src/diag/test_menu.h:
+ * src/diag/test_menu.c:
+ * src/diag/pci_serv.c:
+ * src/diag/pci_bios.h:
+ * src/diag/memtest.c:
+ * src/diag/irq.S:
+ * src/diag/iq80310.h:
+ * src/diag/io_utils.c:
+ * src/diag/interrupts.c:
+ * src/diag/i557_eep.h:
+ * src/diag/i557_eep.c:
+ * src/diag/flash.c:
+ * src/diag/external_timer.c:
+ * src/diag/ether_test.h:
+ * src/diag/ether_test.c:
+ * src/diag/diag.c:
+ * src/diag/cycduart.h:
+ * src/diag/cycduart.c:
+ * src/diag/7_segment_displays.h:
+ * src/iq80310_misc.c:
+ * misc/redboot_ROMA.ecm:
+ * misc/redboot_ROM.ecm:
+ * misc/redboot_RAMA.ecm:
+ * misc/redboot_RAM.ecm:
+ * include/pkgconf/mlt_arm_xscale_iq80310_roma.mlt:
+ * include/pkgconf/mlt_arm_xscale_iq80310_roma.ldi:
+ * include/pkgconf/mlt_arm_xscale_iq80310_roma.h:
+ * include/pkgconf/mlt_arm_xscale_iq80310_rom.mlt:
+ * include/pkgconf/mlt_arm_xscale_iq80310_rom.ldi:
+ * include/pkgconf/mlt_arm_xscale_iq80310_rom.h:
+ * include/pkgconf/mlt_arm_xscale_iq80310_ram.mlt:
+ * include/pkgconf/mlt_arm_xscale_iq80310_ram.ldi:
+ * include/pkgconf/mlt_arm_xscale_iq80310_ram.h:
+ * include/plf_io.h:
+ * include/hal_platform_setup.h:
+ * include/hal_platform_ints.h:
+ * cdl/hal_arm_xscale_iq80310.cdl: Reorg under Xscale variants.
+
+2002-09-19 Mark Salter <msalter@redhat.com>
+
+ * src/iq80310_misc.c (hal_hardware_init): Call hal_xscale_core_init.
+ (iq80310_program_new_stack): Remove.
+ Remove debug support which is now in xscale core package.
+ * misc/redboot_RAM.ecm: Add CYGPKG_HAL_ARM_XSCALE_CORE package.
+ * misc/redboot_RAMA.ecm: Ditto.
+ * misc/redboot_ROM.ecm: Ditto.
+ * misc/redboot_ROMA.ecm: Ditto.
+ * include/plf_io.h (CYGARC_PHYSICAL_ADDRESS): Define.
+ * include/hal_platform_setup.h (DCACHE_FLUSH_AREA): Remove define.
+ Remove debug unit init code.
+ * include/hal_iq80310.h (DCACHE_FLUSH_AREA): Define.
+ * cdl/hal_arm_iq80310.cdl: Remove HAL_ARCH_PROGRAM_NEW_STACK and
+ add CYGBLD_HAL_VAR_H.
+
+2002-08-29 Mark Salter <msalter@redhat.com>
+
+ * include/plf_stub.h: Add HAL_STUB_HW_BREAKPOINT_LIST_SIZE and
+ HAL_STUB_HW_WATCHPOINT_LIST_SIZE.
+
+2002-08-12 Mark Salter <msalter@redhat.com>
+
+ * cdl/hal_arm_iq80310.cdl: Remove CYGSEM_REDBOOT_ARM_LINUX_BOOT ref.
+ * misc/redboot_ROM.ecm: Ditto.
+ * misc/redboot_RAM.ecm: Ditto.
+
+2002-08-06 Gary Thomas <gary@chez-thomas.org>
+2002-08-06 Motoya Kurotsu <kurotsu@allied-telesis.co.jp>
+
+ * src/hal_diag.c: I/O channel data can't be constant - contains
+ timeout information which can be changed.
+
+2002-05-28 Mark Salter <msalter@redhat.com>
+
+ * cdl/hal_arm_iq80310.cdl: Add Linux boot support.
+ * misc/redboot_RAM.ecm: Ditto.
+ * misc/redboot_ROM.ecm: Ditto.
+
+ * include/hal_iq80310.h (CYGARC_HAL_MMU_OFF): Xscale has
+ special requirements for turning off MMU.
+
+2002-05-24 Jonathan Larmour <jlarmour@redhat.com>
+
+ * src/hal_diag.c: Support dynamic getting and setting of baud rates.
+ * cdl/hal_arm_iq80310.cdl: implements
+ CYGINT_HAL_VIRTUAL_VECTOR_COMM_BAUD_SUPPORT
+
+2002-05-14 Jesper Skov <jskov@redhat.com>
+
+ * include/plf_io.h (CYGARC_VIRT_TO_BUS, CYGARC_UNCACHED_ADDRESS):
+ Fixed compiler warnings.
+
+2002-05-07 Gary Thomas <gthomas@redhat.com>
+
+ * cdl/hal_arm_iq80310.cdl:
+ Standardize CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_DEFAULT usage.
+
+2002-04-22 Jonathan Larmour <jlarmour@redhat.com>
+
+ * misc/redboot_RAM.ecm: Enable GDB remote file I/O support.
+ * misc/redboot_RAMA.ecm: Ditto.
+ * misc/redboot_ROM.ecm: Ditto.
+ * misc/redboot_ROMA.ecm: Ditto.
+
+2002-04-16 John Dallaway <jld@redhat.com>
+
+ * cdl/hal_arm_iq80321.cdl: Use arm-elf toolchain by default.
+
+2002-03-06 Jesper Skov <jskov@redhat.com>
+
+ * misc/redboot_RAM.ecm: Added dns and zlib support.
+ * misc/redboot_ROM.ecm: Same.
+
+2002-02-22 Mark Salter <msalter@redhat.com>
+
+ * src/iq80310_misc.c (cyg_hal_plf_hw_breakpoint): Fix use of wrong reg.
+
+2002-02-06 Mark Salter <msalter@redhat.com>
+
+ * include/hal_platform_setup.h: Fix condition of some I2C bit tests.
+
+2002-02-04 Mark Salter <msalter@redhat.com>
+
+ * include/hal_platform_setup.h: Fix bad insns in I2C code.
+
+2002-01-28 Jesper Skov <jskov@redhat.com>
+
+ * src/iq80310_misc.c (hal_hardware_init): Fix warning.
+
+ * cdl/hal_arm_iq80310.cdl: Removed explicit plf_io.h declaration.
+
+2002-01-16 Hugo Tyson <hmt@redhat.com>
+
+ * include/hal_platform_ints.h (HAL_CLOCK_REINITIALIZE): Better
+ names for macro args, and the freqency is now signed. -ve means
+ don't set the clock, just tell me what you would do.
+
+ * src/iq80310_misc.c (hal_clock_reinitialize): Always return a
+ nearby good value; don't set h/w if <0. Convoluted logic changes
+ to support that.
+
+2002-01-14 Hugo Tyson <hmt@redhat.com>
+
+ * include/hal_platform_ints.h (HAL_CLOCK_REINITIALIZE): New macro
+ which calls the below, also a prototype for it.
+
+ * src/iq80310_misc.c (hal_clock_reinitialize): New routine to
+ reset the clock to a different frequency. This is for GPROF type
+ profiling use only; not general purpose eCos usage.
+
+2002-01-04 Mark Salter <msalter@redhat.com>
+
+ * include/hal_platform_setup.h: Turn on ECC for uncached alias of RAM.
+
+2002-01-03 Mark Salter <msalter@redhat.com>
+
+ * misc/redboot_ROM.ecm: Use generic i82559 package.
+ * misc/redboot_ROMA.ecm: Ditto.
+ * misc/redboot_RAM.ecm: Ditto.
+ * misc/redboot_RAMA.ecm: Ditto.
+
+ * include/plf_io.h (CYGARC_UNCACHED_ADDRESS): New macro to return
+ uncached alias for a cached address.
+ (CYGARC_VIRT_TO_BUS): Macro to convert virtual to physical addresses.
+ * include/hal_platform_setup.h: Add uncached alias for first 128M of
+ SDRAM.
+
+2001-10-03 Jonathan Larmour <jlarmour@redhat.com>
+
+ * src/diag/io_utils.c: Switch to diag_printf from printf.
+ * src/diag/iq80310.h: Ditto.
+ * src/diag/memtest.c: Ditto, and don't define printf prototype.
+
+2001-08-27 Mark Salter <msalter@redhat.com>
+
+ * cdl/hal_arm_iq80310.cdl (CYGSEM_HAL_ARM_IQ80310_BTB): New option.
+ (CYGSEM_HAL_ARM_IQ80310_CLEAR_PCI_RETRY) New option.
+
+ * src/iq80310_pci.c (cyg_hal_plf_pci_init): Clear PCI retry based on
+ CYGSEM_HAL_ARM_IQ80310_CLEAR_PCI_RETRY.
+
+ * include/hal_platform_setup.h: Turn on BTB based on configure option.
+
+2001-08-24 Mark Salter <msalter@redhat.com>
+
+ * src/iq80310_misc.c (iq80310_program_new_stack): Convert to inline
+ asm so that code generation differences won't break it.
+
+2001-08-15 Mark Salter <msalter@redhat.com>
+
+ * include/hal_iq80310.h: Fix size of PATUSR, SATUSR, PSR, and SSR regs.
+ Make all register pointers volatile.
+
+ * src/diag/flash.c: First page of flash now remapped to 0xd0000000.
+
+2001-08-04 Mark Salter <msalter@redhat.com>
+
+ * include/hal_platform_setup.h: Fix mapping so first MB of SDRAM has
+ ECC turned on. Now map first 4K of flash at 0xd0000000.
+
+2001-06-21 Jonathan Larmour <jlarmour@redhat.com>
+
+ * images/*: Remove. Don't bloat repository with things already on
+ the web.
+
+2001-04-30 Gary Thomas <gthomas@redhat.com>
+
+ * include/hal_platform_setup.h: Remove #undef CYG_HAL_ROM_RESET_USES_JUMP
+ since this is no longer used.
+
+2001-04-18 Gary Thomas <gthomas@redhat.com>
+
+ * include/hal_platform_setup.h: Override CYG_HAL_ROM_RESET_USES_JUMP
+ to avoid addressing problems with ROM startup mode.
+
+2001-04-17 Mark Salter <msalter@redhat.com>
+
+ * cdl/hal_arm_iq80310.cdl: Implement CYGINT_HAL_ARM_MEM_REAL_REGION_TOP
+ (CYGBLD_GLOBAL_CFLAGS): Add -ffunction-sections and -fdata-sections.
+ * src/iq80310_misc.c (hal_arm_mem_real_region_top): New function.
+
+2001-04-16 Gary Thomas <gthomas@redhat.com>
+
+ * cdl/hal_arm_iq80310.cdl: Add CDL to describe CPU family.
+
+2001-04-10 Mark Salter <msalter@redhat.com>
+
+ * include/hal_platform_setup.h: Turn on multi-bit RAM error reporting.
+
+2001-04-03 Mark Salter <msalter@redhat.com>
+
+ * src/diag/flash.c: Don't compile unless CYGPKG_IO_FLASH defined.
+ * src/diag/xscale_test.c (testMenu): Only add flash_test if
+ CYGPKG_IO_FLASH is defined.
+
+2001-03-31 Mark Salter <msalter@redhat.com>
+
+ * src/diag/xscale_test.c: Merge in latest changes from Cyclone.
+ * src/diag/iq80310.h: Ditto.
+ * src/diag/external_timer.c: Ditto.
+
+2001-03-30 Mark Salter <msalter@redhat.com>
+
+ * misc/redboot_RAM.ecm: Disable CYGSEM_REDBOOT_FIS_CRC_CHECK
+ and CYGSEM_IO_FLASH_VERIFY_PROGRAM.
+ * misc/redboot_RAMA.ecm: Ditto.
+ * misc/redboot_ROM.ecm: Ditto.
+ * misc/redboot_ROMA.ecm: Ditto.
+
+ * include/pkgconf/mlt_arm_iq80310_rom.h: Fix heap1_SIZE.
+ * include/pkgconf/mlt_arm_iq80310_ram.h Ditto:
+ * include/pkgconf/mlt_arm_iq80310_ram.mlt: Remove PCI window.
+
+ * include/hal_platform_setup.h: Fix page table comment.
+
+2001-03-12 Jonathan Larmour <jlarmour@redhat.com>
+
+ * src/iq80310_misc.c: Ensure case ranges have spaces around
+ identifiers to allow correct parsing by compiler.
+
+2001-02-27 Jonathan Larmour <jlarmour@redhat.com>
+
+ * src/diag/pci_bios.h: Remove CVS-unfriendly keyword substitutions
+
+2001-02-23 Jesper Skov <jskov@redhat.com>
+
+ * include/hal_cache.h (HAL_FLASH_CACHES_OLD_MACROS): This platform
+ uses deprecated cache handling macros.
+
+2001-02-23 Gary Thomas <gthomas@redhat.com>
+
+ * misc/redboot_ROMA.ecm: Renamed from redboot_ROMA.cfg
+
+ * misc/redboot_RAMA.ecm: Renamed from redboot_RAMA.cfg
+
+ * misc/redboot_ROM.ecm: Renamed from redboot_ROM.cfg
+
+ * misc/redboot_RAM.ecm: Renamed from redboot_RAM.cfg
+
+2001-02-13 Gary Thomas <gthomas@redhat.com>
+
+ * src/iq80310_misc.c (hal_IRQ_handler):
+ Return CYGNUM_HAL_INTERRUPT_NONE for spurious interrupts.
+
+2001-02-08 Jesper Skov <jskov@redhat.com>
+
+ * src/hal_diag.c: Replace CYGSEM_HAL_DIAG_MANGLER_None with
+ CYGDBG_HAL_DIAG_TO_DEBUG_CHAN.
+
+2001-02-07 Mark Salter <msalter@redhat.com>
+
+ * src/diag/external_timer.c (counter_test): Fix printf format
+ string to work with stripped down RedBoot printf.(counter_test):
+
+2001-02-06 Mark Salter <msalter@redhat.com>
+
+ * src/diag/external_timer.c: Merged in Cyclone changes.
+ * src/diag/interrupts.c: Ditto.
+ * src/diag/memtest.c: Ditto.
+ * src/diag/xscale_test.c: Ditto.
+
+2001-02-02 Mark Salter <msalter@redhat.com>
+
+ * src/diag/xscale_test.c (seven_segment_display): Use volatile for
+ delay loop variable to avoid optimizing it away.
+
+ * src/diag/flash.c (flash_buffer): Change huge array (.bss) to a
+ pointer to scratchpad RAM above RedBoot.
+
+ * src/iq80310_misc.c (hal_hardware_init): Don't enable FIQ (for now).
+ (cyg_hal_plf_is_stopped_by_hardware): Check for stopped by BKPT insn.
+
+ * misc/redboot_ROM.cfg (CYGNUM_IO_ETH_DRIVERS_NUM_PKT): Set value to 2.
+ * misc/redboot_ROMA.cfg: Ditto.
+ * misc/redboot_RAM.cfg: Ditto.
+ * misc/redboot_RAMA.cfg: Ditto.
+
+2001-01-31 Mark Salter <msalter@redhat.com>
+
+ * src/iq80310_pci.c (__pci_abort_handler): Use naked attribute for
+ use as abort handler.
+
+ * src/iq80310_misc.c (_scrub_ecc): New function.
+ (hal_IRQ_handler): Fix switched sensing of FIQ/IRQ.
+ (hal_hardware_init): Install handlers for NMI FIQs. Fix switched
+ installation of FIQ/IRQ ISRs.
+
+ * include/hal_iq80310.h (RFR_INIT_VAL): Double refresh interval.
+ Add more register definitions.
+
+ * include/hal_platform_setup.h: Add support for baterry test.
+ Enable Yavapai single-bit error correction.
+
+ * src/diag/*: Integrate latest Cyclone code. Add RHEPL to contributed
+ files.
+
+2001-01-31 Jesper Skov <jskov@redhat.com>
+
+ * src/hal_diag.c: Replaced CYGDBG_HAL_DIAG_DISABLE_GDB_PROTOCOL
+ with CYGSEM_HAL_DIAG_MANGLER_None
+
+ * include/hal_diag.h: Fix hal_delay_us declaration.
+
+2001-01-26 Jesper Skov <jskov@redhat.com>
+
+ * src/hal_diag.c: Removed CYGSEM_HAL_VIRTUAL_VECTOR_DIAG check.
+ * include/plf_stub.h: Moved reset macro to
+ * include/hal_platform_ints.h: this file.
+
+2001-01-11 Mark Salter <msalter@redhat.com>
+
+ * include/hal_platform_setup.h: Remove hardcoded position dependencies
+ in page table setup.
+
+ * cdl/hal_arm_iq80310.cdl (CYGSEM_HAL_ARM_IQ80310_ARMBOOT): New
+ bool option. If true, modifies ROM startup so that we coexist with
+ ARM bootloader.
+
+ * include/pkgconf/mlt_arm_iq80310_roma.mlt: New file. ROM statrup
+ with modified start address to coexist with ARM bootloader.
+ * include/pkgconf/mlt_arm_iq80310_roma.h: Regenerated.
+ * include/pkgconf/mlt_arm_iq80310_roma.ldi: Regenerated.
+
+ * misc/redboot_ROMA.cfg: RedBoot configuration for ROM startup by
+ ARM booloader in FLASH boot sector.
+ * misc/redboot_RAMA.cfg: RedBoot configuration for RAM startup with
+ ARM booloader in FLASH boot sector.
+
+2001-01-08 Mark Salter <msalter@redhat.com>
+
+ * src/diag/diag.c (do_hdwr_diag): Turn off debug channel interrupt
+ and reset PCI bus before calling Cyclone diag code.
+
+ * src/diag/xscale_test.c (hdwr_diag): Uncomment call to
+ sys_pci_device_init.
+
+2001-01-05 Mark Salter <msalter@redhat.com>
+
+ * src/iq80310_misc.c (iq80310_program_new_stack): New function to
+ setup stack for programs called by RedBoot.
+ * cdl/hal_arm_iq80310.cdl: Add define for HAL_ARCH_PROGRAM_NEW_STACK.
+ (Merged from XScale branch).
+
+ * cdl/hal_arm_iq80310.cdl: Add compile of Cyclone diag code.
+ * src/diag: New directory with IQ80310 hw diag code from Cyclone.
+
+2000-12-21 Mark Salter <msalter@redhat.com>
+
+ * src/iq80310_pci.c (cyg_hal_plf_pci_init): Play nice with PC BIOS.
+ (pci_config_cleanup): Don't use fixed bus numbers.
+
+ * include/plf_io.h (HAL_PCI_TRANSLATE_INTERRUPT): Don't use fixed
+ secondary bus number.
+
+ * include/hal_platform_setup.h: Increase reset delay to 60ms.
+ Remove dead code.
+
+2000-11-22 Mark Salter <msalter@redhat.com>
+
+ * src/hal_diag.c: Support 57600 baud.
+ * cdl/hal_arm_iq80310.cdl: Accept 57600 as legal baudrate.
+
+ * misc/redboot_RAM.cfg: Set CYGBLD_REDBOOT_MIN_IMAGE_SIZE to 0x40000.
+ * misc/redboot_ROM.cfg: Ditto.
+
+2000-11-19 Mark Salter <msalter@redhat.com>
+
+ * src/iq80310_misc.c (hal_clock_read): Fix timer bit juggling.
+
+2000-11-19 Gary Thomas <gthomas@redhat.com>
+
+ * cdl/hal_arm_iq80310.cdl: Define CYGBLD_HAL_PLATFORM_IO_H.
+
+2000-11-16 Mark Salter <msalter@redhat.com>
+
+ * src/iq80310_misc.c: Add support for external timer as RTC.
+ (nirq_ISR): Correct dispatch for X3 interrupts.
+
+ * include/hal_platform_ints.h (CYGNUM_HAL_INTERRUPT_RTC): Use ext timer.
+ (HAL_DELAY_US): Define.
+
+ * cdl/hal_arm_iq80310.cdl: Correct CYGNUM_HAL_RTC_PERIOD.
+
+2000-11-06 Mark Salter <msalter@redhat.com>
+
+ * misc/redboot_RAM.cfg: Turn on CYGSEM_REDBOOT_BSP_SYSCALLS.
+ * misc/redboot_ROM.cfg: Ditto.
+
+2000-11-04 Mark Salter <msalter@redhat.com>
+
+ * misc/redboot_RAM.cfg: Add in PCI and ethernet.
+ * misc/redboot_ROM.cfg: Ditto.
+
+ * include/plf_io.h: Fleshed out PCI support.
+
+ * cdl/hal_arm_iq80310.cdl: Add iq80310_pci.C for compile.
+ Change default baud to 115200.
+
+ * src/iq80310_pci.c: New file. HAL pci support.
+
+ * include/plf_stub.h: Reworked HW watchpoint/breakpoint support.
+
+ * src/iq80310_misc.c (hal_hardware_init): Remove DSU setup.
+ (cyg_hal_plf_hw_watchpoint): Support one range instead of two
+ single byte locations.
+ (cyg_hal_plf_is_stopped_by_hardware): Rework interface to return
+ reason for hardware stop and data address.
+
+ * include/hal_platform_setup.h (PLATFORM_SETUP1): Clear DSU state.
+
+//===========================================================================
+// ####GPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002, 2009 Free Software Foundation, Inc.
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 2 or (at your option) any
+// later version.
+//
+// This program is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the
+// Free Software Foundation, Inc., 51 Franklin Street,
+// Fifth Floor, Boston, MA 02110-1301, USA.
+// -------------------------------------------
+// ####GPLCOPYRIGHTEND####
+//===========================================================================
diff --git a/ecos/packages/hal/arm/xscale/iq80310/current/cdl/hal_arm_xscale_iq80310.cdl b/ecos/packages/hal/arm/xscale/iq80310/current/cdl/hal_arm_xscale_iq80310.cdl
new file mode 100644
index 0000000..3b47825
--- /dev/null
+++ b/ecos/packages/hal/arm/xscale/iq80310/current/cdl/hal_arm_xscale_iq80310.cdl
@@ -0,0 +1,119 @@
+# ====================================================================
+#
+# hal_arm_xscale_iq80310.cdl
+#
+# Intel IQ80310 (Cyclone) eval board HAL package configuration data
+#
+# ====================================================================
+## ####ECOSGPLCOPYRIGHTBEGIN####
+## -------------------------------------------
+## This file is part of eCos, the Embedded Configurable Operating System.
+## Copyright (C) 1998, 1999, 2000, 2001, 2002, 2009 Free Software Foundation, Inc.
+##
+## eCos is free software; you can redistribute it and/or modify it under
+## the terms of the GNU General Public License as published by the Free
+## Software Foundation; either version 2 or (at your option) any later
+## version.
+##
+## eCos is distributed in the hope that it will be useful, but WITHOUT
+## ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+## FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+## for more details.
+##
+## You should have received a copy of the GNU General Public License
+## along with eCos; if not, write to the Free Software Foundation, Inc.,
+## 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+##
+## As a special exception, if other files instantiate templates or use
+## macros or inline functions from this file, or you compile this file
+## and link it with other works to produce a work based on this file,
+## this file does not by itself cause the resulting work to be covered by
+## the GNU General Public License. However the source code for this file
+## must still be made available in accordance with section (3) of the GNU
+## General Public License v2.
+##
+## This exception does not invalidate any other reasons why a work based
+## on this file might be covered by the GNU General Public License.
+## -------------------------------------------
+## ####ECOSGPLCOPYRIGHTEND####
+# ====================================================================
+######DESCRIPTIONBEGIN####
+#
+# Author(s): gthomas
+# Original data:
+# Contributors: gthomas
+# Date: 2002-10-01
+#
+#####DESCRIPTIONEND####
+#
+# ====================================================================
+cdl_package CYGPKG_HAL_ARM_XSCALE_IQ80310 {
+ display "Intel Cyclone eval board"
+ parent CYGPKG_HAL_ARM_XSCALE_IOP310
+ define_header hal_arm_xscale_iq80310.h
+ include_dir cyg/hal
+ hardware
+ description "
+ The IQ80310 HAL package provides the support needed to run
+ eCos on an Intel IQ80310 (Cyclone) evaluation board."
+
+ compile iq80310_misc.c
+
+ 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_xscale_iop310.h>"
+ puts $::cdl_system_header "#define CYGBLD_HAL_PLATFORM_H <pkgconf/hal_arm_xscale_iq80310.h>"
+ puts $::cdl_header "#define HAL_PLATFORM_CPU \"XScale\""
+ puts $::cdl_header "#define HAL_PLATFORM_BOARD \"Iq80310\""
+ puts $::cdl_header "#define HAL_PLATFORM_EXTRA \"\""
+ }
+
+ implements CYGHWR_HAL_ARM_IOP310_SERIAL_PORTA
+ implements CYGHWR_HAL_ARM_IOP310_SERIAL_PORTB
+
+ cdl_component CYGHWR_MEMORY_LAYOUT {
+ display "Memory layout"
+ flavor data
+ no_define
+ calculated { CYG_HAL_STARTUP == "RAM" ? "arm_xscale_iq80310_ram" : \
+ CYGSEM_HAL_ARM_IOP310_ARMBOOT ? "arm_xscale_iq80310_roma" : \
+ "arm_xscale_iq80310_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_xscale_iq80310_ram.ldi>" : \
+ CYGSEM_HAL_ARM_IOP310_ARMBOOT ? "<pkgconf/mlt_arm_xscale_iq80310_roma.ldi>" : \
+ "<pkgconf/mlt_arm_xscale_iq80310_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_xscale_iq80310_ram.h>" : \
+ CYGSEM_HAL_ARM_IOP310_ARMBOOT ? "<pkgconf/mlt_arm_xscale_iq80310_roma.h>" : \
+ "<pkgconf/mlt_arm_xscale_iq80310_rom.h>" }
+ }
+ }
+
+ cdl_option CYGBLD_INTEL_DIAGNOSTICS {
+ display "Build Intel Xscale diagnostics"
+ default_value 1
+ parent CYGPKG_REDBOOT_HAL_OPTIONS
+ active_if CYGBLD_BUILD_REDBOOT_BIN
+ no_define
+ description "Enabling this option will include diagnostics
+ from Intel in the RedBoot image."
+
+ compile -library=libextras.a \
+ diag/diag.c diag/io_utils.c diag/external_timer.c \
+ diag/i557_eep.c diag/pci_serv.c diag/interrupts.c \
+ diag/xscale_test.c diag/flash.c diag/cycduart.c \
+ diag/ether_test.c diag/memtest.c diag/test_menu.c \
+ diag/irq.S
+ }
+}
diff --git a/ecos/packages/hal/arm/xscale/iq80310/current/include/hal_platform_ints.h b/ecos/packages/hal/arm/xscale/iq80310/current/include/hal_platform_ints.h
new file mode 100644
index 0000000..b8c7bea
--- /dev/null
+++ b/ecos/packages/hal/arm/xscale/iq80310/current/include/hal_platform_ints.h
@@ -0,0 +1,77 @@
+#ifndef CYGONCE_HAL_PLATFORM_INTS_H
+#define CYGONCE_HAL_PLATFORM_INTS_H
+//==========================================================================
+//
+// hal_platform_ints.h
+//
+// HAL Interrupt and clock support
+//
+//==========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//==========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): msalter
+// Contributors:
+// Date: 2000-10-10
+// Purpose: Define Interrupt support
+// Description: The interrupt details for the IQ80310 are defined here.
+// Usage:
+// #include <cyg/hal/hal_platform_ints.h>
+// ...
+//
+//
+//####DESCRIPTIONEND####
+//
+//==========================================================================
+
+#define CYGNUM_HAL_INTERRUPT_TIMER 27 // external timer
+#define CYGNUM_HAL_INTERRUPT_ETHERNET 28 // onboard enet
+#define CYGNUM_HAL_INTERRUPT_SERIAL_A 29 // 16x50 uart A
+#define CYGNUM_HAL_INTERRUPT_SERIAL_B 30 // 16x50 uart B
+#define CYGNUM_HAL_INTERRUPT_PCI_S_INTD 31 // secondary PCI INTD
+// The hardware doesn't (yet?) provide masking or status for these
+// even though they can trigger cpu interrupts. ISRs will need to
+// poll the device to see if the device actually triggered the
+// interrupt.
+#define CYGNUM_HAL_INTERRUPT_PCI_S_INTC 32 // secondary PCI INTC
+#define CYGNUM_HAL_INTERRUPT_PCI_S_INTB 33 // secondary PCI INTB
+#define CYGNUM_HAL_INTERRUPT_PCI_S_INTA 34 // secondary PCI INTA
+
+// The vector used by the Real time clock
+#define CYGNUM_HAL_INTERRUPT_RTC CYGNUM_HAL_INTERRUPT_TIMER
+//#define CYGNUM_HAL_INTERRUPT_RTC CYGNUM_HAL_INTERRUPT_PMU_CCNT_OVFL
+
+#endif // CYGONCE_HAL_PLATFORM_INTS_H
+
+// EOF hal_platform_ints.h
diff --git a/ecos/packages/hal/arm/xscale/iq80310/current/include/hal_platform_setup.h b/ecos/packages/hal/arm/xscale/iq80310/current/include/hal_platform_setup.h
new file mode 100644
index 0000000..3b45d81
--- /dev/null
+++ b/ecos/packages/hal/arm/xscale/iq80310/current/include/hal_platform_setup.h
@@ -0,0 +1,872 @@
+#ifndef CYGONCE_HAL_PLATFORM_SETUP_H
+#define CYGONCE_HAL_PLATFORM_SETUP_H
+
+/*=============================================================================
+//
+// hal_platform_setup.h
+//
+// Platform specific support for HAL (assembly code)
+//
+//=============================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): msalter
+// Contributors:
+// Date: 2000-10-10
+// Purpose: Intel IQ80310 platform specific support routines
+// Description:
+// Usage: #include <cyg/hal/hal_platform_setup.h>
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================*/
+
+#include <pkgconf/system.h> // System-wide configuration info
+#include <cyg/hal/hal_mmu.h> // MMU definitions
+#include <cyg/hal/hal_mm.h> // More MMU definitions
+#include CYGBLD_HAL_VARIANT_H // Variant specific configuration
+#include CYGBLD_HAL_PLATFORM_H // Platform specific configuration
+#include <cyg/hal/hal_iop310.h> // Platform specific hardware definitions
+
+// Define macro used to diddle the LEDs during early initialization.
+// Can use r0+r1. Argument in \x.
+#define CYGHWR_LED_MACRO \
+ b 667f ;\
+ 666: ;\
+ .byte 0xc0, 0xf9, 0xa4, 0xb0 ;\
+ .byte 0x99, 0x92, 0x82, 0xf8 ;\
+ .byte 0x80, 0x90, 0x88, 0x83 ;\
+ .byte 0xa7, 0xa1, 0x86, 0x8e ;\
+ 667: ;\
+ ldr r0, =666b ;\
+ add r0, r0, #\x ;\
+ ldrb r1, [r0] ;\
+ ldr r0, =DISPLAY_RIGHT ;\
+ str r1, [r0]
+
+
+// The main useful output of this file is PLATFORM_SETUP1: it invokes lots
+// of other stuff (may depend on RAM or ROM start). The other stuff is
+// divided into further macros to make it easier to manage what's enabled
+// when.
+
+#if defined(CYG_HAL_STARTUP_ROM)
+#define PLATFORM_SETUP1 _platform_setup1
+//#define CYGHWR_HAL_ARM_HAS_MMU
+#else
+#define PLATFORM_SETUP1
+#endif
+
+#define RAM_BASE 0xa0000000
+#define DRAM_SIZE (512*1024*1024) // max size of available SDRAM
+#define DCACHE_SIZE (32*1024) // size of the Dcache
+
+// Reserved area for battery backup SDRAM memory test
+// This area is not zeroed out by initialization code
+#define SDRAM_BATTERY_TEST_BASE 0xA1FFFFF0 // base address of last 16 memory locations in a 32MB SDRAM
+
+
+
+ // Display 'lvalue:rvalue' on the hex display
+ // lvalue and rvalue must be of the form 'DISPLAY_x'
+ // where 'x' is a hex digit from 0-F.
+ .macro HEX_DISPLAY reg0, reg1, lvalue, rvalue
+ ldr \reg0, =DISPLAY_LEFT // display left digit
+ ldr \reg1, =\lvalue
+ str \reg1, [\reg0]
+ ldr \reg0, =DISPLAY_RIGHT
+ ldr \reg1, =\rvalue // display right digit
+ str \reg1, [\reg0]
+ .endm
+
+ // Trigger the logic analyzer by writing a particular
+ // address, and triggering on that address.
+ .macro TRIGGER_LA_ON_ADDRESS address, reg0, reg1
+ mrc p15, 0, \reg0, c1, c0, 0 // read ARM control register
+ // CPWAIT \reg0
+ ldr \reg1, =\address
+ str \reg0, [\reg1]
+ .endm
+
+ // Delay a bit
+ .macro DELAY_FOR cycles, reg0
+ ldr \reg0, =\cycles
+ subs \reg0, \reg0, #1
+ subne pc, pc, #0xc
+ .endm
+
+ // wait for coprocessor write complete
+ .macro CPWAIT reg
+ mrc p15,0,\reg,c2,c0,0
+ mov \reg,\reg
+ sub pc,pc,#4
+ .endm
+
+ // start of platform setup
+ .macro _platform_setup1
+
+ // This is where we wind up immediately after reset. On the IOP310, we have
+ // to jump around a hole in flash which runs from 0x00001000 - 0x0001fff.
+ // The start of _platform_setup1 will be below 0x1000 and since we need to
+ // align the mmu table on a 16k boundary, we just branch around the page
+ // table which we will locate at FLASH_BASE+0x4000.
+ b _real_platform_setup
+
+ .p2align 13
+ // the following alignment creates the mmu table at address 0x4000.
+ mmu_table:
+
+ // 1MB of FLASH with i80312 MMRs mapped in using 4K small pages so we can
+ // set the access permission on flash and memory-mapped registers properly.
+ FL_PT_ENTRY mmu_table_flashbase,0,0
+
+ // Remaining 7MB of FLASH
+ // rw, cacheable, non-bufferable
+ .set __base,1
+ .rept 7
+ FL_SECTION_ENTRY __base,0,3,0,0,1,0
+ .set __base,__base+1
+ .endr
+
+ // nothing interesting here (Address Translation)
+ .rept 0xA00 - 0x8
+ FL_SECTION_ENTRY __base,0,3,0,0,0,0
+ .set __base,__base+1
+ .endr
+
+ // up to 512MB ECC SDRAM mapped 1-to-1
+ // first 1MB mapped in 4K chunks
+ // x=c=b=1
+ FL_PT_ENTRY mmu_table_rambase,1,0
+ .set __base,__base+1
+ .rept 0xC00 - 0xA01
+ FL_SECTION_ENTRY __base,1,3,1,0,1,1
+ .set __base,__base+1
+ .endr
+
+ // Cache flush region.
+ // Don't need physical memory, just a cached area.
+ .rept 0xD00 - 0xC00
+ FL_SECTION_ENTRY __base,0,3,0,0,1,1
+ .set __base,__base+1
+ .endr
+
+ // Alias for first 1MB of FLASH
+ // rw, cacheable, non-bufferable
+ FL_SECTION_ENTRY 0x000,0,3,0,0,1,0
+ .set __base,__base+1
+
+ // Invalid
+ .rept 0xE00 - 0xD01
+ .word 0
+ .set __base,__base+1
+ .endr
+
+ // Uncached and unbuffered alias for first 256MB of SDRAM. This
+ // area can be used by device drivers for DMA operations. Buffers
+ // should be cache aligned.
+ .set __base,0xA00
+ .rept 0xF00 - 0xE00
+ FL_SECTION_ENTRY __base,0,3,1,0,0,0
+ .set __base,__base+1
+ .endr
+
+ // only I/O at 0xFE8xxxxx
+ .set __base,0xF00
+ .rept 0x1000 - 0xF00
+ FL_SECTION_ENTRY __base,0,3,0,0,0,0
+ .set __base,__base+1
+ .endr
+
+ // Immediately after the above table (at 0x8000) is the
+ // second level page table which breaks up the lowest 1MB
+ // of physical memory into 4KB sized virtual pages. These
+ // pages work around a hole in flash (0x1000-0x1fff) used
+ // by the Yavapai companion chip internal registers.
+ mmu_table_flashbase:
+ // Virtual address 0 (Flash boot code).
+ // Map 4k page at 0x00000000 virt --> 0xA0000000 physical
+ // This allows us to have a writable vector table.
+ // Read-Write, cacheable, bufferable
+ SL_XSMPAGE_ENTRY 0xa0000,1,3,1,1
+
+ // Virtual address 0x1000 (Memory mapped registers)
+ // Map 1-to-1, but don't cache or buffer
+ // Read-Write, non-cacheable, non-bufferable
+ .set __base,1
+ SL_SMPAGE_ENTRY __base,3,3,3,3,0,0
+ .set __base,__base+1
+
+ // Virtual address 0x2000-0x100000 (remainder of flash1)
+ // Read-Write, cacheable, non-bufferable
+ .rept 0x100 - 0x2
+ SL_SMPAGE_ENTRY __base,3,3,3,3,1,0
+ .set __base,__base+1
+ .endr
+
+ // Now is the second level table for the first megabyte
+ // of DRAM.
+ mmu_table_rambase:
+ // Map first meg of SDRAM
+ // Read-Write, cacheable, bufferable
+ .set __base,0xA0000
+ .rept 0x100
+ SL_XSMPAGE_ENTRY __base,1,3,1,1
+ .set __base,__base+1
+ .endr
+
+_real_platform_setup:
+ // Drain write and fill buffer
+ mcr p15,0,r0,c7,c10,4
+ CPWAIT r0
+
+ // Delay appx 60 ms to let battery-backup reset complete
+ DELAY_FOR 0x400000, r0
+ // Eventually we will be able to check a register bit
+ // to determine when this is complete
+
+ HEX_DISPLAY r0, r1, DISPLAY_0, DISPLAY_1
+
+ //
+ // *** I2C interface initialization ***
+ //
+
+ // Setup I2C Slave Address Register
+ ldr r1, =I2C_DEVID // Load slave address r1.
+ ldr r2, =ISAR_ADDR // Load address of the I2C Slave Address Register in r2.
+ ldr r3, =0x0000007f // Load mask in r3.
+ and r1, r3, r3 // The mask zeroes the 25 MSBs of r1 just to make sure.
+ str r3, [r2] // Save the value 0x02 (I2C_DEVID) in the register.
+
+ // Setup I2C Clock Count Register
+ ldr r2, =ICCR_ADDR // Load the address of the I2C Clock Control Register in r2.
+ ldr r3, =0x0000014d // Set for 5.05 us transition time at 66MHz (0x14D = 333).
+ str r3, [r2] // Save the value in the register.
+
+ // Enable I2C Interface Unit - status will be polled
+ ldr r2, =ICR_ADDR // Load the address of the Control Register in r2.
+ ldr r1, =ICR_GCALL // Disable General Call (will be master)
+ ldr r3, =ICR_ENB // Enable I2C unit ).
+ orr r1, r3, r1 // OR the two and store in R1
+ ldr r3, =ICR_SCLENB // Enable I2C Clock Generator disabled
+ orr r1, r3, r1 // OR the two and store in R1
+ str r1, [r2] // Save the value to the Control Register.
+
+ //
+ // *** Now read the SPD Data ***
+ //
+
+ // Pointers to I2C Registers
+ ldr r11, =ICR_ADDR // Load the address of the I2C Control Register in r11.
+ ldr r12, =ISR_ADDR // Load the address of the I2C Status Register in r12.
+ ldr r13, =IDBR_ADDR // Load the address of the I2C Data Buffer Register in r13.
+
+ // Initialize byte counters
+ ldr r6, =0x00000000 // Counter incremented before byte is read
+ ldr r7, =0x00000040 // Number of bytes to read in the Presence Detect EEPROM of SDRAM: 64 bytes
+ ldr r5, =0x00000000 // R5 has running checksum calculation
+ ldr r9, =I2C_TIMOUT // Timeout limit in case EEPROM does not respond
+
+ // At the end of all this, R4 has DRAM size, R8 has bank count, and R10 has Bank size
+ ldr r10,=0x00000000 // Bank size
+ ldr r8, =0x00000000 // Bank count
+ ldr r4, =0x00000000 // SDRAM size
+
+ /* FREE REGISTERS ARE R0 - R3 */
+
+ // *** Put out address, with WRITE mode ***
+
+ // Set SDRAM module address and write mode
+ ldr r1, =SDRAM_DEVID // Load slave address for SDRAM module: 0xA2 (Presence Detect Data)
+ bic r1, r1, #IDBR_MODE // Clear read bit (bit #0)
+ str r1, [r13] // Store to data register
+
+ // Initiate dummy write to set EEPROM pointer to 0
+ ldr r1, [r11] // read the current Control Register value
+ orr r1, r1, #ICR_START // Set start bit
+ orr r1, r1, #ICR_TRANSFER // Set transfer bit - bit is self_clearing
+ str r1, [r11] // Store to control register
+
+ // Wait for transmit empty status
+ ldr r1, =0x00000000 // Initialize I2C timeout counter
+ 0:
+ add r1, r1, #1 // Increment I2C timeout counter (r1 = r1 + 1)
+ cmp r1, r9
+ beq i2c_error // Kick out of SDRAM initialization if timeout occurs
+ ldr r0, [r12] // Load I2C Status Reg into R0
+ ands r3, r0, #ISR_EMPTY // Bit #6 is checked: IDBR Transmit Empty
+ beq 0b
+ str r0, [r12] // Write back status to clear
+
+ // *** Write pointer register on EEPROM to 0x00000000 ***
+
+ // Set SDRAM module EEPROM address to 0
+ ldr r1, =0x00000000 // Load base address of SDRAM module EEPROM
+ str r1, [r13] // Store to data register
+
+ // Send address to EEPROM
+ ldr r1, [r11] // read the current Control Register value
+ bic r1, r1, #ICR_START // No start bit (already started)
+ orr r1, r1, #ICR_TRANSFER // Set transfer bit - bit is self_clearing
+ str r1, [r11] // Store to control register
+
+ // Wait for transmit empty status
+ ldr r1, =0x00000000 // Initialize I2C timeout counter
+ 0:
+ add r1, r1, #1 // Increment I2C timeout counter (r1 = r1 + 1)
+ cmp r1, r9
+ beq i2c_error // Kick out of SDRAM initialization if timeout occurs
+ ldr r0, [r12] // Load I2C Status Reg into R0 - ld (r12), r10
+ ands r3, r0, #ISR_EMPTY // Bit #6 is checked: IDBR Transmit Empty
+ beq 0b
+ str r0, [r12] // Write back status to clear
+
+ // *** Read SDRAM PD data ***
+
+ // *** Put out address, with READ mode ***
+
+ // Set SDRAM module address and read mode
+ ldr r0, =SDRAM_DEVID // Load slave address for SDRAM module (0xA2)
+ orr r1, r0, #IDBR_MODE // Set read bit (bit #0)
+ str r1, [r13] // Store to data register
+
+ // Send next read request
+ ldr r1, [r11] // read the current Control Register value
+ orr r1, r1, #ICR_START // Set start bit
+ orr r1, r1, #ICR_TRANSFER // Set transfer bit - bit is self_clearing
+ str r1, [r11] // Store to control register
+
+ // Wait for transmit empty status
+ ldr r1, =0x00000000 // Initialize I2C timeout counter
+ 0:
+ add r1, r1, #1 // Increment I2C timeout counter (r1 = r1 + 1)
+ cmp r1, r9
+ beq i2c_error // Kick out of SDRAM initialization if timeout occurs
+ ldr r0, [r12] // Load I2C Status Reg into R0 - ld (r12), r10
+ ands r3, r0, #ISR_EMPTY // Bit #6 is checked: IDBR Transmit Empty
+ beq 0b
+ str r0, [r12] // Write back status to clear
+
+ sdram_loop:
+ add r6, r6, #1 // Increment byte counter
+
+ // *** READ the next Byte!!! ***
+
+ ldr r1, [r11] // read the current Control Register value
+ bic r1, r1, #ICR_START // No start bit (already started)
+ orr r1, r1, #ICR_TRANSFER // Set transfer bit - bit is self_clearing
+
+ // we have to set NACK before reading the last bit
+ cmp r6, r7 // r7 = 64 (decimal) so if r6 = 64, this is the last byte to be read
+ bne 1f // If bytes left, skip ahead
+ orr r1, r1, #ICR_ACK // Set NACK if this is the last byte
+ orr r1, r1, #ICR_STOP // Set STOP if this is the last byte
+ 1:
+ str r1, [r11] // Store to control register
+
+ // Wait for read full status
+ ldr r1, =0x00000000 // Initialize I2C timeout counter
+ 0:
+ add r1, r1, #1 // Increment I2C timeout counter (r1 = r1 + 1)
+ cmp r1, r9
+ beq i2c_error // Kick out of SDRAM initialization if timeout occurs
+ ldr r0, [r12] // Load I2C Status Reg into R0
+ ands r3, r0, #ISR_FULL // Bit #6 is checked: IDBR Transmit Empty
+ beq 0b
+ str r0, [r12] // Write back status to clear
+
+ // Read the data byte
+ ldr r1, [r13] // Read the byte
+
+ ldr r2, =CHECKSUM_BYTE
+ cmp r6, r2 // is it the CHECKSUM byte???
+ beq 1f
+ add r5, r5, r1 // Add it to the checksum if not the checksum byte
+ bal 2f // skip checksum comparison
+ 1:
+ ldr r0, =0xff // If this is the checksum byte, compare it
+ and r5, r5, r0 // against the calculated checksum
+ cmp r1, r5
+ bne bad_checksum // If no match, skip SDRAM controller initialization
+ 2:
+ ldr r2, =BANKCNT_BYTE // Check for bank count byte
+ cmp r6, r2
+ bne 1f
+ mov r8, r1 // Store bank count
+ 1:
+ ldr r2, =BANKSZ_BYTE // Check for bank size byte
+ cmp r6, r2
+ bne 1f
+
+ ldr r2, =0x04 // Store bank size in Mbytes (shift left 2 bits)
+ mul r10, r1, r2
+ mul r2, r8, r10 // Multiply by bank count to get DRAM size in MB
+ ldr r0, =0x100000
+ mul r4, r2, r0 // Convert size to bytes - r4 contains DRAM size in bytes
+
+1:
+ // Handle the SDRAM drive strength setup here since we are out of
+ // temporary registers to hold the SDRAM width value until after
+ // all of the SPD data has been read. Using the value of r8 for
+ // the Bank Count is allright here since the SPD specification states that
+ // the Bank Count SPD byte is #5 and the SDRAM Width SPD byte is #13.
+
+ ldr r2, =SDRAM_WIDTH_BYTE // Check for SDRAM width byte
+ cmp r6, r2
+ bne 1f
+ mov r2, #0x10 // Check for data width of 16
+ cmp r1, r2
+ bne SDRAM_DRIVE_X8
+
+ // Module is composed of x16 devices
+ mov r2, #0x02
+ cmp r2, r8 // do we have 2 banks???
+ beq SDRAM_DRIVE_2_BANK_X16
+
+ // Module is composed of 1 Bank of x16 devices
+ ldr r1, =SDCR_ADDR // point at SDRAM Control Register
+ ldr r2, =SDCR_1BANK_X16 // drive strength value
+ str r2, [r1] // set value in SDCR
+ b 1f
+
+SDRAM_DRIVE_2_BANK_X16:
+ // Module is composed of 2 Banks of x16 devices
+ ldr r1, =SDCR_ADDR // point at SDRAM Control Register
+ ldr r2, =SDCR_2BANK_X16 // drive strength value
+ str r2, [r1] // set value in SDCR
+ b 1f
+
+SDRAM_DRIVE_X8:
+ // Module is composed of x8 devices
+ mov r2, #0x02
+ cmp r2, r8 // do we have 2 banks???
+ beq SDRAM_DRIVE_2_BANK_X8
+
+ // Module is composed of 1 Bank of x8 devices
+ ldr r1, =SDCR_ADDR // point at SDRAM Control Register
+ ldr r2, =SDCR_1BANK_X8 // drive strength value
+ str r2, [r1] // set value in SDCR
+ b 1f
+
+SDRAM_DRIVE_2_BANK_X8:
+ // Module is composed of 2 Banks of x16 devices
+ ldr r1, =SDCR_ADDR // point at SDRAM Control Register
+ ldr r2, =SDCR_2BANK_X8 // drive strength value
+ str r2, [r1] // set value in SDCR
+ 1:
+
+
+ // Continue reading bytes if not done
+ cmp r6, r7
+ bne sdram_loop
+
+ b i2c_disable
+
+ bad_checksum:
+ HEX_DISPLAY r2, r3, DISPLAY_7, DISPLAY_7
+
+ i2c_error:
+ // hit the leds if an error occurred
+ HEX_DISPLAY r2, r3, DISPLAY_5, DISPLAY_5
+
+
+ i2c_disable:
+ // Disable I2C Interface Unit
+ ldr r1, [r11]
+ bic r1, r1, #ICR_ENB // Disable I2C unit
+ bic r1, r1, #ICR_SCLENB // Disable I2C clock generator
+ str r1, [r11] // Store to control register
+
+ // ADD THIS???:
+ // cmpobne 1, g9, test_init
+ // Skip SDRAM controller initialization if checksum test failed
+
+ // *** SDRAM setup ***
+
+ ldr r9, =MMR_BASE // get base of MMRs
+ ldr r0, =RAM_BASE // Program SDRAM Base Address register
+ str r0, [r9, #SDBR_OFF]
+
+ // Set up bank 0 register
+ CHECK_32MB:
+ ldr r1, =RAM_32MEG // do we have 32 MB banks?
+ cmp r10, r1
+ bne CHECK_64MB
+
+ ldr r0, =SBR_32MEG // Program SDRAM Bank0 Boundary register to 32 MB
+ b SET_BANK1
+
+ CHECK_64MB:
+ ldr r1, =RAM_64MEG // do we have 64 MB banks?
+ cmp r10, r1
+ bne CHECK_128MB
+
+ ldr r0, =SBR_64MEG // Program SDRAM Bank0 Boundary register to 64 MB
+ b SET_BANK1
+
+ CHECK_128MB:
+ ldr r1, =RAM_128MEG // do we have 128 MB banks?
+ cmp r10, r1
+ bne CHECK_256MB
+
+ ldr r0, =SBR_128MEG // Program SDRAM Bank0 Boundary register to 128 MB
+ b SET_BANK1
+
+ CHECK_256MB:
+ ldr r1, =RAM_256MEG // do we have 256 MB banks?
+ cmp r10, r1
+ bne dram_error
+
+ ldr r0, =SBR_256MEG // Program SDRAM Bank0 Boundary register to 64 MB
+ b SET_BANK1
+
+ SET_BANK1:
+ str r0, [r9, #SBR0_OFF] // store SBR0
+
+ ldr r2, =0x02
+ cmp r2, r8 // do we have 2 banks???
+ bne SDRAM_1_BANK
+
+ add r0, r0, r0 // SDRAM Bank1 Boundary register is double SBR0
+ str r0, [r9, #SBR1_OFF]
+ b END_DRAM_SIZE
+
+ SDRAM_1_BANK:
+ // SDRAM Bank1 Boundary register is same as SBR0 for 1 bank configuration
+ str r0, [r9, #SBR1_OFF]
+ b END_DRAM_SIZE
+
+ END_DRAM_SIZE:
+ b init_dram
+
+ dram_error:
+
+ HEX_DISPLAY r2, r3, DISPLAY_F, DISPLAY_F
+
+ init_dram:
+ ldr r0, =0 // turn off refresh
+ str r0, [r9, #RFR_OFF]
+
+ ldr r0, =MRS_NO_OP // Issue NOP cmd to SDRAM
+ str r0, [r9, #SDIR_OFF]
+ DELAY_FOR 0x4000, r0
+
+ ldr r0, =MRS_PRECHRG // Issue 1 Precharge all
+ str r0, [r9, #SDIR_OFF]
+ DELAY_FOR 0x4000, r0
+
+
+ ldr r0, =MRS_AUTO_RFRSH // Issue 1 Auto Refresh command
+ str r0, [r9, #SDIR_OFF]
+ DELAY_FOR 0x4000, r0
+
+
+ ldr r0, =MRS_AUTO_RFRSH
+ str r0, [r9, #SDIR_OFF] // Auto Refresh #1
+ str r0, [r9, #SDIR_OFF] // Auto Refresh #2
+ str r0, [r9, #SDIR_OFF] // Auto Refresh #3
+ str r0, [r9, #SDIR_OFF] // Auto Refresh #4
+ str r0, [r9, #SDIR_OFF] // Auto Refresh #5
+ str r0, [r9, #SDIR_OFF] // Auto Refresh #6
+ str r0, [r9, #SDIR_OFF] // Auto Refresh #7
+ str r0, [r9, #SDIR_OFF] // Auto Refresh #8
+
+ ldr r0, =MRS_CAS_LAT_2 // set the CAS latency
+ str r0, [r9, #SDIR_OFF]
+ DELAY_FOR 0x4000, r0
+
+ ldr r0, =MRS_NORM_OP // Issue a Normal Operation command
+ str r0, [r9, #SDIR_OFF]
+
+ ldr r0, =RFR_INIT_VAL // Program Refresh Rate register
+ str r0, [r9, #RFR_OFF]
+
+ // ldr r0, =(FLASH_BASE :AND: &FFFF0000)
+ // str r0, [r10, #FEBR1_OFF] ; Program Flash Bank1 Base Address register
+
+ // ldr r0, =(FLASH_SIZE :AND: &FFFF0000)
+ // str r0, [r10, #FBSR1_OFF] ; Program Flash Bank1 Size register
+
+ // ldr r0, =FWSR0_INIT_VAL
+ // str r0, [r10, #FWSR0_OFF] ; Program Flash Bank0 Wait State register
+
+ // ldr r0, =FWSR1_INIT_VAL
+ // str r0, [r10, #FWSR1_OFF] ; Program Flash Bank1 Wait State register
+
+ HEX_DISPLAY r0, r1, DISPLAY_0, DISPLAY_2
+
+ // begin initializing the i80310
+
+ // Enable access to all coprocessor registers
+ ldr r0, =0x2001 // enable access to all coprocessors
+ mcr p15, 0, r0, c15, c1, 0
+
+ mcr p15, 0, r0, c7, c10, 4 // drain the write & fill buffers
+ CPWAIT r0
+
+ mcr p15, 0, r0, c7, c7, 0 // flush Icache, Dcache and BTB
+ CPWAIT r0
+
+ mcr p15, 0, r0, c8, c7, 0 // flush instuction and data TLBs
+ CPWAIT r0
+
+ // Enable the Icache
+ mrc p15, 0, r0, c1, c0, 0
+ orr r0, r0, #MMU_Control_I
+ mcr p15, 0, r0, c1, c0, 0
+ CPWAIT r0
+
+ // Set the TTB register
+ ldr r0, =mmu_table
+ mcr p15, 0, r0, c2, c0, 0
+
+ // Enable permission checks in all domains
+ ldr r0, =0x55555555
+ mcr p15, 0, r0, c3, c0, 0
+
+ // Enable the MMU
+ mrc p15, 0, r0, c1, c0, 0
+ orr r0, r0, #MMU_Control_M
+ orr r0, r0, #MMU_Control_R
+ mcr p15, 0, r0, c1, c0, 0
+ CPWAIT r0
+
+ mcr p15, 0, r0, c7, c10, 4 // drain the write & fill buffers
+ CPWAIT r0
+
+ // Enable the Dcache
+ mrc p15, 0, r0, c1, c0, 0
+ orr r0, r0, #MMU_Control_C
+ mcr p15, 0, r0, c1, c0, 0
+ CPWAIT r0
+
+ // Initialize branch target buffer
+ BTB_INIT r0
+
+ // Battery Backup SDRAM Memory Test
+ // Move 4 byte Test Pattern into register prior to zeroing out
+ // contents of SDRAM locations
+ ldr r9, =SDRAM_BATTERY_TEST_BASE
+ ldr r10, [r9]
+
+ IOP310_EARLY_PCI_SETUP r0, r1, r4, 0x113C, 0x0700
+
+ // scrub/init SDRAM if enabled/present
+ ldr r11, =RAM_BASE // base address of SDRAM
+ mov r12, r4 // size of memory to scrub
+ mov r8,r4 // save DRAM size
+ mov r0, #0 // scrub with 0x0000:0000
+ mov r1, #0
+ mov r2, #0
+ mov r3, #0
+ mov r4, #0
+ mov r5, #0
+ mov r6, #0
+ mov r7, #0
+ 10: // fastScrubLoop
+ subs r12, r12, #32 // 32 bytes/line
+ stmia r11!, {r0-r7}
+ beq 15f
+ b 10b
+ 15:
+
+ // now copy 1st 4K page of flash into first 4K of RAM.
+ ldr r1, =RAM_BASE // base address of SDRAM
+ mov r2, #0xd0000000 // alias for first 1M of flash
+ mov r3, #0x1000
+ 16:
+ ldr r4, [r2]
+ add r2, r2, #4
+ str r4, [r1]
+ add r1, r1, #4
+ subs r3, r3, #4
+ bne 16b
+
+ // Battery Backup SDRAM Memory Test
+ // Store 4 byte Test Pattern back into memory
+ str r10, [r9, #0x0]
+
+ HEX_DISPLAY r0, r1, DISPLAY_1, DISPLAY_0
+
+ // clean/drain/flush the main Dcache
+ mov r1, #DCACHE_FLUSH_AREA // use a CACHEABLE area of
+ // the memory map above SDRAM
+ mov r0, #1024 // number of lines in the Dcache
+ 20:
+ mcr p15, 0, r1, c7, c2, 5 // allocate a Dcache line
+ add r1, r1, #32 // increment the address to
+ // the next cache line
+ subs r0, r0, #1 // decrement the loop count
+ bne 20b
+
+ HEX_DISPLAY r0, r1, DISPLAY_9, DISPLAY_9
+
+ // clean/drain/flush the mini Dcache
+ ldr r2, =(DCACHE_FLUSH_AREA+DCACHE_SIZE) // use a CACHEABLE area of
+ // the memory map above SDRAM
+ mov r0, #64 // number of lines in the mini Dcache
+ 21:
+ mcr p15, 0, r2, c7, c2, 5 // allocate a Dcache line
+ add r2, r2, #32 // increment the address to
+ // the next cache line
+ subs r0, r0, #1 // decrement the loop count
+ bne 21b
+
+ mcr p15, 0, r0, c7, c6, 0 // flush Dcache
+ CPWAIT r0
+
+ HEX_DISPLAY r0, r1, DISPLAY_7, DISPLAY_7
+
+ mcr p15, 0, r0, c7, c10, 4 // drain the write & fill buffers
+ CPWAIT r0
+
+ // enable ECC stuff here
+ mcr p15, 0, r0, c7, c10, 4 //
+ CPWAIT r0
+
+ mrc p13, 0, r0, c0, c1, 0 // BCU_WAIT --> wait until the BCU isn't busy
+ submi pc, pc, #0xc
+
+ checkme: // add in multi-bit error reporting */
+ mrc p13, 0, r0, c0, c1, 0 // disable ECC
+ and r0, r0, #(-1-8)
+ mcr p13, 0, r0, c0, c1, 0
+ orr r0, r0, #6 // enable single-bit correction,
+ mcr p13, 0, r0, c0, c1, 0 // multi-bit detection
+ orr r0, r0, #8 // enable ECC
+ mcr p13, 0, r0, c0, c1, 0
+
+ mrc p13, 0, r0, c0, c1, 0 // BCU_WAIT --> wait until the BCU isn't busy
+ submi pc, pc, #0xc
+
+ // Enable ECC circuitry in Yavapai
+ ldr r1, =ECCR_ADDR
+ mov r0, #0x6 // Enable single bit ECC Correction (Reporting Enabled)
+ str r0, [r1, #0]
+
+ HEX_DISPLAY r0, r1, DISPLAY_6, DISPLAY_6
+
+#if 1
+ mov r0, #0x1000000
+ 1: subs r0,r0,#1
+ bne 1b
+#endif
+ // Save SDRAM size
+ ldr r1, =hal_dram_size /* [see hal_intr.h] */
+ str r8, [r1]
+
+ // Move mmu tables into RAM so page table walks by the cpu
+ // don't interfere with FLASH programming.
+ ldr r0, =mmu_table
+ mov r4, r0
+ add r2, r0, #0x4800 // End of tables
+ mov r1, #RAM_BASE
+ orr r1, r1, #0x4000 // RAM tables
+ mov r5, r1
+
+ // first, fixup physical address to second level
+ // table used to map first 1MB of flash.
+ ldr r3, [r0], #4
+ sub r3, r3, r4
+ add r3, r3, r5
+ str r3, [r1], #4
+ // everything else can go as-is
+ 1:
+ ldr r3, [r0], #4
+ str r3, [r1], #4
+ cmp r0, r2
+ bne 1b
+
+ // go back and fixup physical address to second level
+ // table used to map first 1MB of SDRAM.
+ add r1, r5, #(0xA00 * 4)
+ ldr r0, [r1] // entry for first 1MB of DRAM
+ sub r0, r0, r4
+ add r0, r0, r5
+ str r0, [r1] // store it back
+
+ // Flush the cache
+ mov r0, #DCACHE_FLUSH_AREA /* cache flush region */
+ add r1, r0, #0x8000 /* 32KB cache */
+ 667:
+ mcr p15,0,r0,c7,c2,5 /* allocate a line */
+ add r0, r0, #32 /* 32 bytes/line */
+ teq r1, r0
+ bne 667b
+ mcr p15,0,r0,c7,c6,0 /* invalidate data cache */
+ /* cpuwait */
+ mrc p15,0,r1,c2,c0,0 /* arbitrary read */
+ mov r1,r1
+ sub pc,pc,#4
+ mcr p15,0,r0,c7,c10,4
+ /* cpuwait */
+ mrc p15,0,r1,c2,c0,0 /* arbitrary read */
+ mov r1,r1
+ sub pc,pc,#4
+ nop
+
+ HEX_DISPLAY r0, r1, DISPLAY_5, DISPLAY_2
+
+ // Set the TTB register to DRAM mmu_table
+ mov r0, r5
+ mov r1, #0
+ mcr p15, 0, r1, c7, c5, 0 // flush I cache
+ mcr p15, 0, r1, c7, c10, 4 // drain WB
+ mcr p15, 0, r0, c2, c0, 0 // load page table pointer
+ mcr p15, 0, r1, c8, c7, 0 // flush TLBs
+ CPWAIT r0
+
+ // Interrupt init
+ mov r0, #0 // enable no sources
+ mcr p13,0,r0,c0,c0,0 // write to INTCTL
+ // Steer both BCU and PMU to IRQ
+ mcr p13,0,r0,c8,c0,0 // write to INTSTR
+
+ HEX_DISPLAY r0, r1, DISPLAY_0, DISPLAY_0
+
+ .endm // _platform_setup1
+
+
+#define PLATFORM_VECTORS _platform_vectors
+ .macro _platform_vectors
+ .globl _80312_EMISR
+_80312_EMISR: .long 0 // Companion chip "clear-on-read" interrupt status
+ // register for the performance monitor unit.
+ .endm
+
+/*---------------------------------------------------------------------------*/
+/* end of hal_platform_setup.h */
+#endif /* CYGONCE_HAL_PLATFORM_SETUP_H */
+
diff --git a/ecos/packages/hal/arm/xscale/iq80310/current/include/pkgconf/mlt_arm_xscale_iq80310_ram.h b/ecos/packages/hal/arm/xscale/iq80310/current/include/pkgconf/mlt_arm_xscale_iq80310_ram.h
new file mode 100644
index 0000000..2bf3a0a
--- /dev/null
+++ b/ecos/packages/hal/arm/xscale/iq80310/current/include/pkgconf/mlt_arm_xscale_iq80310_ram.h
@@ -0,0 +1,17 @@
+// eCos memory layout - Tue Sep 05 16:58:21 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 (0xA0000000)
+#define CYGMEM_REGION_ram_SIZE (0x20000000)
+#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 (0xc0000000 - (size_t) CYG_LABEL_NAME (__heap1))
diff --git a/ecos/packages/hal/arm/xscale/iq80310/current/include/pkgconf/mlt_arm_xscale_iq80310_ram.ldi b/ecos/packages/hal/arm/xscale/iq80310/current/include/pkgconf/mlt_arm_xscale_iq80310_ram.ldi
new file mode 100644
index 0000000..6337705
--- /dev/null
+++ b/ecos/packages/hal/arm/xscale/iq80310/current/include/pkgconf/mlt_arm_xscale_iq80310_ram.ldi
@@ -0,0 +1,28 @@
+// eCos memory layout - Tue Sep 05 16:58:21 2000
+
+// This is a generated file - do not edit
+
+#include <cyg/infra/cyg_type.inc>
+
+MEMORY
+{
+ vrom : ORIGIN = 0x00000000, LENGTH = 0x1000
+ ram : ORIGIN = 0xA0000000, LENGTH = 0x20000000
+}
+
+SECTIONS
+{
+ SECTIONS_BEGIN
+ SECTION_fixed_vectors (vrom, 0x20, LMA_EQ_VMA) // virtual ROM addr, but really in physical ram
+ SECTION_rom_vectors (ram, 0xa0020000, 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)
+ CYG_LABEL_DEFN(__heap1) = ALIGN (0x8);
+ SECTIONS_END
+}
diff --git a/ecos/packages/hal/arm/xscale/iq80310/current/include/pkgconf/mlt_arm_xscale_iq80310_ram.mlt b/ecos/packages/hal/arm/xscale/iq80310/current/include/pkgconf/mlt_arm_xscale_iq80310_ram.mlt
new file mode 100644
index 0000000..f9577bd
--- /dev/null
+++ b/ecos/packages/hal/arm/xscale/iq80310/current/include/pkgconf/mlt_arm_xscale_iq80310_ram.mlt
@@ -0,0 +1,14 @@
+version 0
+region ram 0 20000000 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 20000 20000 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 1 0 1 heap1 heap1 !
+section heap1 0 8 0 0 0 0 0 0 !
+
diff --git a/ecos/packages/hal/arm/xscale/iq80310/current/include/pkgconf/mlt_arm_xscale_iq80310_rom.h b/ecos/packages/hal/arm/xscale/iq80310/current/include/pkgconf/mlt_arm_xscale_iq80310_rom.h
new file mode 100644
index 0000000..138693e
--- /dev/null
+++ b/ecos/packages/hal/arm/xscale/iq80310/current/include/pkgconf/mlt_arm_xscale_iq80310_rom.h
@@ -0,0 +1,20 @@
+// eCos memory layout - Tue Sep 05 18:46:49 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 (0xA0000000)
+#define CYGMEM_REGION_ram_SIZE (0x20000000)
+#define CYGMEM_REGION_ram_ATTR (CYGMEM_REGION_ATTR_R | CYGMEM_REGION_ATTR_W)
+#define CYGMEM_REGION_rom (0x00000000)
+#define CYGMEM_REGION_rom_SIZE (0x800000)
+#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 (0xc0000000 - (size_t) CYG_LABEL_NAME (__heap1))
diff --git a/ecos/packages/hal/arm/xscale/iq80310/current/include/pkgconf/mlt_arm_xscale_iq80310_rom.ldi b/ecos/packages/hal/arm/xscale/iq80310/current/include/pkgconf/mlt_arm_xscale_iq80310_rom.ldi
new file mode 100644
index 0000000..bc5cfd9
--- /dev/null
+++ b/ecos/packages/hal/arm/xscale/iq80310/current/include/pkgconf/mlt_arm_xscale_iq80310_rom.ldi
@@ -0,0 +1,28 @@
+// eCos memory layout - Tue Sep 05 18:46:49 2000
+
+// This is a generated file - do not edit
+
+#include <cyg/infra/cyg_type.inc>
+
+MEMORY
+{
+ ram : ORIGIN = 0xA0000000, LENGTH = 0x20000000
+ rom : ORIGIN = 0x00000000, LENGTH = 0x800000
+}
+
+SECTIONS
+{
+ SECTIONS_BEGIN
+ SECTION_rom_vectors (ram, 0xA0000000, AT(0x00000000)) // vector page gets remapped from ROM to RAM
+ SECTION_text (rom, 0x00002000, 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 (rom, 0x20, LMA_EQ_VMA)
+ SECTION_data (ram, 0xA000A000, FOLLOWING (.gcc_except_table))
+ SECTION_bss (ram, ALIGN (0x4), LMA_EQ_VMA)
+ CYG_LABEL_DEFN(__heap1) = ALIGN (0x8);
+ SECTIONS_END
+}
diff --git a/ecos/packages/hal/arm/xscale/iq80310/current/include/pkgconf/mlt_arm_xscale_iq80310_rom.mlt b/ecos/packages/hal/arm/xscale/iq80310/current/include/pkgconf/mlt_arm_xscale_iq80310_rom.mlt
new file mode 100644
index 0000000..b622632
--- /dev/null
+++ b/ecos/packages/hal/arm/xscale/iq80310/current/include/pkgconf/mlt_arm_xscale_iq80310_rom.mlt
@@ -0,0 +1,14 @@
+version 0
+region ram a0000000 20000000 0 !
+region rom 00000000 800000 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 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 00000000 00000000 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 !
diff --git a/ecos/packages/hal/arm/xscale/iq80310/current/include/pkgconf/mlt_arm_xscale_iq80310_roma.h b/ecos/packages/hal/arm/xscale/iq80310/current/include/pkgconf/mlt_arm_xscale_iq80310_roma.h
new file mode 100644
index 0000000..0ee0c82
--- /dev/null
+++ b/ecos/packages/hal/arm/xscale/iq80310/current/include/pkgconf/mlt_arm_xscale_iq80310_roma.h
@@ -0,0 +1,23 @@
+// eCos memory layout - Sun Jan 14 22:42:04 2001
+
+// This is a generated file - do not edit
+
+#ifndef __ASSEMBLER__
+#include <cyg/infra/cyg_type.h>
+#include <stddef.h>
+
+#endif
+#define CYGMEM_REGION_vecs (0)
+#define CYGMEM_REGION_vecs_SIZE (0x1000)
+#define CYGMEM_REGION_vecs_ATTR (CYGMEM_REGION_ATTR_R)
+#define CYGMEM_REGION_rom (0x40000)
+#define CYGMEM_REGION_rom_SIZE (0x7c0000)
+#define CYGMEM_REGION_rom_ATTR (CYGMEM_REGION_ATTR_R)
+#define CYGMEM_REGION_ram (0xa0000000)
+#define CYGMEM_REGION_ram_SIZE (0x20000000)
+#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 (0xc0000000 - (size_t) CYG_LABEL_NAME (__heap1))
diff --git a/ecos/packages/hal/arm/xscale/iq80310/current/include/pkgconf/mlt_arm_xscale_iq80310_roma.ldi b/ecos/packages/hal/arm/xscale/iq80310/current/include/pkgconf/mlt_arm_xscale_iq80310_roma.ldi
new file mode 100644
index 0000000..79dd666
--- /dev/null
+++ b/ecos/packages/hal/arm/xscale/iq80310/current/include/pkgconf/mlt_arm_xscale_iq80310_roma.ldi
@@ -0,0 +1,29 @@
+// eCos memory layout - Sun Jan 14 22:42:04 2001
+
+// This is a generated file - do not edit
+
+#include <cyg/infra/cyg_type.inc>
+
+MEMORY
+{
+ vecs : ORIGIN = 0, LENGTH = 0x1000
+ rom : ORIGIN = 0x40000, LENGTH = 0x7c0000
+ ram : ORIGIN = 0xa0000000, LENGTH = 0x20000000
+}
+
+SECTIONS
+{
+ SECTIONS_BEGIN
+ SECTION_fixed_vectors (vecs, 0x20, LMA_EQ_VMA)
+ SECTION_rom_vectors (rom, 0x40000, 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_data (ram, 0xa000a000, FOLLOWING (.gcc_except_table))
+ SECTION_bss (ram, ALIGN (0x4), LMA_EQ_VMA)
+ CYG_LABEL_DEFN(__heap1) = ALIGN (0x8);
+ SECTIONS_END
+}
diff --git a/ecos/packages/hal/arm/xscale/iq80310/current/include/pkgconf/mlt_arm_xscale_iq80310_roma.mlt b/ecos/packages/hal/arm/xscale/iq80310/current/include/pkgconf/mlt_arm_xscale_iq80310_roma.mlt
new file mode 100644
index 0000000..a53f33e
--- /dev/null
+++ b/ecos/packages/hal/arm/xscale/iq80310/current/include/pkgconf/mlt_arm_xscale_iq80310_roma.mlt
@@ -0,0 +1,15 @@
+version 0
+region vecs 0 1000 1 !
+region rom 40000 7c0000 1 !
+region ram a0000000 20000000 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 40000 40000 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 !
+section data 0 1 1 1 1 1 0 0 a000a000 bss !
+section bss 0 4 0 1 0 1 0 1 heap1 heap1 !
+section heap1 0 8 0 0 0 0 0 0 !
diff --git a/ecos/packages/hal/arm/xscale/iq80310/current/include/plf_io.h b/ecos/packages/hal/arm/xscale/iq80310/current/include/plf_io.h
new file mode 100644
index 0000000..af76e10
--- /dev/null
+++ b/ecos/packages/hal/arm/xscale/iq80310/current/include/plf_io.h
@@ -0,0 +1,124 @@
+#ifndef CYGONCE_PLF_IO_H
+#define CYGONCE_PLF_IO_H
+
+//=============================================================================
+//
+// plf_io.h
+//
+// Platform specific IO support
+//
+//=============================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): msalter
+// Contributors: hmt, jskov, msalter
+// Date: 2000-10-10
+// Purpose: Intel IOP310 PCI IO support macros
+// Description:
+// Usage: #include <cyg/hal/plf_io.h>
+//
+//####DESCRIPTIONEND####
+//
+//=============================================================================
+
+// Translate the PCI interrupt requested by the device (INTA#, INTB#,
+// INTC# or INTD#) to the associated CPU interrupt (i.e., HAL vector).
+#define HAL_PCI_TRANSLATE_INTERRUPT( __bus, __devfn, __vec, __valid) \
+ CYG_MACRO_START \
+ cyg_uint32 __dev = CYG_PCI_DEV_GET_DEV(__devfn); \
+ cyg_uint32 __fn = CYG_PCI_DEV_GET_FN(__devfn); \
+ __valid = false; \
+ if (__bus == (*SBNR_REG + 1) && __dev == 0 && __fn == 0) { \
+ __vec = CYGNUM_HAL_INTERRUPT_ETHERNET; \
+ __valid = true; \
+ } else { \
+ cyg_uint8 __req; \
+ HAL_PCI_CFG_READ_UINT8(__bus, __devfn, CYG_PCI_CFG_INT_PIN, __req); \
+ switch (__dev % 4) { \
+ case 0: \
+ switch(__req) { \
+ case 1: /* INTA */ \
+ __vec=CYGNUM_HAL_INTERRUPT_PCI_S_INTA; __valid=true; break; \
+ case 2: /* INTB */ \
+ __vec=CYGNUM_HAL_INTERRUPT_PCI_S_INTB; __valid=true; break; \
+ case 3: /* INTC */ \
+ __vec=CYGNUM_HAL_INTERRUPT_PCI_S_INTC; __valid=true; break; \
+ case 4: /* INTD */ \
+ __vec=CYGNUM_HAL_INTERRUPT_PCI_S_INTD; __valid=true; break; \
+ } \
+ break; \
+ case 1: \
+ switch(__req) { \
+ case 1: /* INTA */ \
+ __vec=CYGNUM_HAL_INTERRUPT_PCI_S_INTB; __valid=true; break; \
+ case 2: /* INTB */ \
+ __vec=CYGNUM_HAL_INTERRUPT_PCI_S_INTC; __valid=true; break; \
+ case 3: /* INTC */ \
+ __vec=CYGNUM_HAL_INTERRUPT_PCI_S_INTD; __valid=true; break; \
+ case 4: /* INTD */ \
+ __vec=CYGNUM_HAL_INTERRUPT_PCI_S_INTA; __valid=true; break; \
+ } \
+ break; \
+ case 2: \
+ switch(__req) { \
+ case 1: /* INTA */ \
+ __vec=CYGNUM_HAL_INTERRUPT_PCI_S_INTC; __valid=true; break; \
+ case 2: /* INTB */ \
+ __vec=CYGNUM_HAL_INTERRUPT_PCI_S_INTD; __valid=true; break; \
+ case 3: /* INTC */ \
+ __vec=CYGNUM_HAL_INTERRUPT_PCI_S_INTA; __valid=true; break; \
+ case 4: /* INTD */ \
+ __vec=CYGNUM_HAL_INTERRUPT_PCI_S_INTB; __valid=true; break; \
+ } \
+ break; \
+ case 3: \
+ switch(__req) { \
+ case 1: /* INTA */ \
+ __vec=CYGNUM_HAL_INTERRUPT_PCI_S_INTD; __valid=true; break; \
+ case 2: /* INTB */ \
+ __vec=CYGNUM_HAL_INTERRUPT_PCI_S_INTA; __valid=true; break; \
+ case 3: /* INTC */ \
+ __vec=CYGNUM_HAL_INTERRUPT_PCI_S_INTB; __valid=true; break; \
+ case 4: /* INTD */ \
+ __vec=CYGNUM_HAL_INTERRUPT_PCI_S_INTC; __valid=true; break; \
+ } \
+ break; \
+ } \
+ } \
+ CYG_MACRO_END
+
+//-----------------------------------------------------------------------------
+// end of plf_io.h
+#endif // CYGONCE_PLF_IO_H
diff --git a/ecos/packages/hal/arm/xscale/iq80310/current/misc/redboot_RAM.ecm b/ecos/packages/hal/arm/xscale/iq80310/current/misc/redboot_RAM.ecm
new file mode 100644
index 0000000..8f0e041
--- /dev/null
+++ b/ecos/packages/hal/arm/xscale/iq80310/current/misc/redboot_RAM.ecm
@@ -0,0 +1,139 @@
+cdl_savefile_version 1;
+cdl_savefile_command cdl_savefile_version {};
+cdl_savefile_command cdl_savefile_command {};
+cdl_savefile_command cdl_configuration { description hardware template package };
+cdl_savefile_command cdl_package { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_component { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_option { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_interface { value_source user_value wizard_value inferred_value };
+
+cdl_configuration eCos {
+ description "" ;
+ hardware iq80310 ;
+ template redboot ;
+ package -hardware CYGPKG_HAL_ARM current ;
+ package -hardware CYGPKG_HAL_ARM_XSCALE_CORE current ;
+ package -hardware CYGPKG_HAL_ARM_XSCALE_IQ80310 current ;
+ package -hardware CYGPKG_IO_PCI current ;
+ package -hardware CYGPKG_DEVS_ETH_INTEL_I82559 current ;
+ package -hardware CYGPKG_DEVS_ETH_ARM_XSCALE_IQ80310 current ;
+ package -hardware CYGPKG_DEVS_FLASH_ARM_XSCALE_IQ80310 current ;
+ package -template CYGPKG_HAL current ;
+ package -template CYGPKG_INFRA current ;
+ package -template CYGPKG_REDBOOT current ;
+ package -template CYGPKG_ISOINFRA current ;
+ package -template CYGPKG_LIBC_STRING current ;
+ package CYGPKG_NS_DNS current ;
+ package CYGPKG_IO_FLASH current ;
+ package CYGPKG_IO_ETH_DRIVERS current ;
+ package CYGPKG_MEMALLOC current ;
+ package CYGPKG_COMPRESS_ZLIB current ;
+};
+
+cdl_option CYGBLD_BUILD_GDB_STUBS {
+ user_value 0
+};
+
+cdl_option CYGFUN_LIBC_STRING_BSD_FUNCS {
+ inferred_value 0
+};
+
+cdl_option CYGNUM_IO_ETH_DRIVERS_NUM_PKT {
+ user_value 2
+};
+
+cdl_option CYGNUM_HAL_COMMON_INTERRUPTS_STACK_SIZE {
+ user_value 4096
+};
+
+cdl_option CYGDBG_HAL_COMMON_INTERRUPTS_SAVE_MINIMUM_CONTEXT {
+ user_value 0
+};
+
+cdl_option CYGDBG_HAL_COMMON_CONTEXT_SAVE_MINIMUM {
+ inferred_value 0
+};
+
+cdl_option CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS {
+ inferred_value 1
+};
+
+cdl_option CYGDBG_HAL_DEBUG_GDB_BREAK_SUPPORT {
+ inferred_value 1
+};
+
+cdl_option CYGDBG_HAL_DEBUG_GDB_CTRLC_SUPPORT {
+ inferred_value 0
+};
+
+cdl_option CYGSEM_HAL_USE_ROM_MONITOR {
+ inferred_value 0 0
+};
+
+cdl_component CYG_HAL_STARTUP {
+ user_value RAM
+};
+
+cdl_component CYGBLD_BUILD_REDBOOT {
+ user_value 1
+};
+
+cdl_option CYGBLD_REDBOOT_MIN_IMAGE_SIZE {
+ inferred_value 0x40000
+};
+
+cdl_component CYGSEM_REDBOOT_FLASH_CONFIG {
+ user_value 1
+};
+
+cdl_option CYGSEM_REDBOOT_FIS_CRC_CHECK {
+ user_value 0
+};
+
+cdl_component CYGSEM_REDBOOT_BSP_SYSCALLS {
+ inferred_value 1
+};
+
+cdl_option CYGHWR_REDBOOT_ARM_LINUX_EXEC_ADDRESS_DEFAULT {
+ inferred_value 0xA0008000
+};
+
+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_BSD_FUNCS_HEADER {
+ inferred_value 1 <cyg/libc/string/bsdstring.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_DNS_HEADER {
+ inferred_value 1 <cyg/ns/dns/dns.h>
+};
+
+cdl_option CYGPKG_NS_DNS_BUILD {
+ inferred_value 0
+};
+
+cdl_option CYGSEM_IO_FLASH_VERIFY_PROGRAM {
+ user_value 0
+};
+
+cdl_option CYGPKG_HAL_GDB_FILEIO {
+ user_value 1
+};
+
+cdl_option CYGSEM_HAL_ARM_XSCALE_BTB {
+ user_value 0
+};
diff --git a/ecos/packages/hal/arm/xscale/iq80310/current/misc/redboot_RAMA.ecm b/ecos/packages/hal/arm/xscale/iq80310/current/misc/redboot_RAMA.ecm
new file mode 100644
index 0000000..bac065c
--- /dev/null
+++ b/ecos/packages/hal/arm/xscale/iq80310/current/misc/redboot_RAMA.ecm
@@ -0,0 +1,98 @@
+cdl_savefile_version 1;
+cdl_savefile_command cdl_savefile_version {};
+cdl_savefile_command cdl_savefile_command {};
+cdl_savefile_command cdl_configuration { description hardware template package };
+cdl_savefile_command cdl_package { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_component { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_option { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_interface { value_source user_value wizard_value inferred_value };
+
+cdl_configuration eCos {
+ description "" ;
+ hardware iq80310 ;
+ template redboot ;
+ package -hardware CYGPKG_HAL_ARM current ;
+ package -hardware CYGPKG_HAL_ARM_XSCALE_CORE current ;
+ package -hardware CYGPKG_HAL_ARM_XSCALE_IQ80310 current ;
+ package -hardware CYGPKG_IO_PCI current ;
+ package -hardware CYGPKG_DEVS_ETH_INTEL_I82559 current ;
+ package -hardware CYGPKG_DEVS_ETH_ARM_XSCALE_IQ80310 current ;
+ package -hardware CYGPKG_DEVS_FLASH_ARM_XSCALE_IQ80310 current ;
+ package -template CYGPKG_HAL current ;
+ package -template CYGPKG_INFRA current ;
+ package -template CYGPKG_REDBOOT current ;
+ package CYGPKG_IO_FLASH current ;
+ package CYGPKG_IO_ETH_DRIVERS current ;
+};
+
+cdl_option CYGBLD_BUILD_GDB_STUBS {
+ user_value 0
+};
+
+cdl_option CYGDBG_HAL_COMMON_INTERRUPTS_SAVE_MINIMUM_CONTEXT {
+ user_value 0
+};
+
+cdl_option CYGDBG_HAL_COMMON_CONTEXT_SAVE_MINIMUM {
+ inferred_value 0
+};
+
+cdl_option CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS {
+ inferred_value 1
+};
+
+cdl_option CYGDBG_HAL_DEBUG_GDB_BREAK_SUPPORT {
+ inferred_value 1
+};
+
+cdl_option CYGDBG_HAL_DEBUG_GDB_CTRLC_SUPPORT {
+ inferred_value 0
+};
+
+cdl_option CYGSEM_HAL_USE_ROM_MONITOR {
+ inferred_value 0 0
+};
+
+cdl_component CYG_HAL_STARTUP {
+ user_value RAM
+};
+
+cdl_option CYGBLD_BUILD_REDBOOT {
+ user_value 1
+};
+
+cdl_option CYGSEM_REDBOOT_FLASH_CONFIG {
+ user_value 1
+};
+
+cdl_option CYGSEM_REDBOOT_BSP_SYSCALLS {
+ inferred_value 1
+};
+
+cdl_option CYGBLD_REDBOOT_MIN_IMAGE_SIZE {
+ inferred_value 0x40000
+};
+
+cdl_option CYGBLD_REDBOOT_FLASH_BOOT_OFFSET {
+ inferred_value 0x40000
+};
+
+cdl_option CYGNUM_IO_ETH_DRIVERS_NUM_PKT {
+ user_value 2
+};
+
+cdl_option CYGSEM_REDBOOT_FIS_CRC_CHECK {
+ user_value 0
+};
+
+cdl_option CYGSEM_IO_FLASH_VERIFY_PROGRAM {
+ user_value 0
+};
+
+cdl_option CYGPKG_HAL_GDB_FILEIO {
+ user_value 1
+};
+
+cdl_option CYGSEM_HAL_ARM_XSCALE_BTB {
+ user_value 0
+};
diff --git a/ecos/packages/hal/arm/xscale/iq80310/current/misc/redboot_ROM.ecm b/ecos/packages/hal/arm/xscale/iq80310/current/misc/redboot_ROM.ecm
new file mode 100644
index 0000000..ea49874
--- /dev/null
+++ b/ecos/packages/hal/arm/xscale/iq80310/current/misc/redboot_ROM.ecm
@@ -0,0 +1,143 @@
+cdl_savefile_version 1;
+cdl_savefile_command cdl_savefile_version {};
+cdl_savefile_command cdl_savefile_command {};
+cdl_savefile_command cdl_configuration { description hardware template package };
+cdl_savefile_command cdl_package { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_component { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_option { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_interface { value_source user_value wizard_value inferred_value };
+
+cdl_configuration eCos {
+ description "" ;
+ hardware iq80310 ;
+ template redboot ;
+ package -hardware CYGPKG_HAL_ARM current ;
+ package -hardware CYGPKG_HAL_ARM_XSCALE_CORE current ;
+ package -hardware CYGPKG_HAL_ARM_XSCALE_IQ80310 current ;
+ package -hardware CYGPKG_IO_PCI current ;
+ package -hardware CYGPKG_DEVS_ETH_INTEL_I82559 current ;
+ package -hardware CYGPKG_DEVS_ETH_ARM_XSCALE_IQ80310 current ;
+ package -hardware CYGPKG_DEVS_FLASH_ARM_XSCALE_IQ80310 current ;
+ package -template CYGPKG_HAL current ;
+ package -template CYGPKG_INFRA current ;
+ package -template CYGPKG_REDBOOT current ;
+ package -template CYGPKG_ISOINFRA current ;
+ package -template CYGPKG_LIBC_STRING current ;
+ package CYGPKG_NS_DNS current ;
+ package CYGPKG_IO_FLASH current ;
+ package CYGPKG_IO_ETH_DRIVERS current ;
+ package CYGPKG_MEMALLOC current ;
+ package CYGPKG_COMPRESS_ZLIB current ;
+};
+
+cdl_option CYGBLD_BUILD_GDB_STUBS {
+ user_value 0
+};
+
+cdl_option CYGFUN_LIBC_STRING_BSD_FUNCS {
+ inferred_value 0
+};
+
+cdl_option CYGNUM_IO_ETH_DRIVERS_NUM_PKT {
+ user_value 2
+};
+
+cdl_option CYGNUM_HAL_COMMON_INTERRUPTS_STACK_SIZE {
+ user_value 4096
+};
+
+cdl_option CYGDBG_HAL_COMMON_INTERRUPTS_SAVE_MINIMUM_CONTEXT {
+ user_value 0
+};
+
+cdl_option CYGDBG_HAL_COMMON_CONTEXT_SAVE_MINIMUM {
+ inferred_value 0
+};
+
+cdl_option CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS {
+ inferred_value 1
+};
+
+cdl_option CYGDBG_HAL_DEBUG_GDB_BREAK_SUPPORT {
+ inferred_value 1
+};
+
+cdl_option CYGDBG_HAL_DEBUG_GDB_CTRLC_SUPPORT {
+ inferred_value 0
+};
+
+cdl_option CYGSEM_HAL_ROM_MONITOR {
+ user_value 1
+};
+
+cdl_option CYGSEM_HAL_USE_ROM_MONITOR {
+ inferred_value 0 0
+};
+
+cdl_component CYG_HAL_STARTUP {
+ user_value ROM
+};
+
+cdl_component CYGBLD_BUILD_REDBOOT {
+ user_value 1
+};
+
+cdl_option CYGBLD_REDBOOT_MIN_IMAGE_SIZE {
+ inferred_value 0x40000
+};
+
+cdl_component CYGSEM_REDBOOT_FLASH_CONFIG {
+ user_value 1
+};
+
+cdl_option CYGSEM_REDBOOT_FIS_CRC_CHECK {
+ user_value 0
+};
+
+cdl_component CYGSEM_REDBOOT_BSP_SYSCALLS {
+ inferred_value 1
+};
+
+cdl_option CYGHWR_REDBOOT_ARM_LINUX_EXEC_ADDRESS_DEFAULT {
+ inferred_value 0xA0008000
+};
+
+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_BSD_FUNCS_HEADER {
+ inferred_value 1 <cyg/libc/string/bsdstring.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_DNS_HEADER {
+ inferred_value 1 <cyg/ns/dns/dns.h>
+};
+
+cdl_option CYGPKG_NS_DNS_BUILD {
+ inferred_value 0
+};
+
+cdl_option CYGSEM_IO_FLASH_VERIFY_PROGRAM {
+ user_value 0
+};
+
+cdl_option CYGPKG_HAL_GDB_FILEIO {
+ user_value 1
+};
+
+cdl_option CYGSEM_HAL_ARM_XSCALE_BTB {
+ user_value 0
+};
diff --git a/ecos/packages/hal/arm/xscale/iq80310/current/misc/redboot_ROMA.ecm b/ecos/packages/hal/arm/xscale/iq80310/current/misc/redboot_ROMA.ecm
new file mode 100644
index 0000000..b3ccbcb
--- /dev/null
+++ b/ecos/packages/hal/arm/xscale/iq80310/current/misc/redboot_ROMA.ecm
@@ -0,0 +1,106 @@
+cdl_savefile_version 1;
+cdl_savefile_command cdl_savefile_version {};
+cdl_savefile_command cdl_savefile_command {};
+cdl_savefile_command cdl_configuration { description hardware template package };
+cdl_savefile_command cdl_package { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_component { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_option { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_interface { value_source user_value wizard_value inferred_value };
+
+cdl_configuration eCos {
+ description "" ;
+ hardware iq80310 ;
+ template redboot ;
+ package -hardware CYGPKG_HAL_ARM current ;
+ package -hardware CYGPKG_HAL_ARM_XSCALE_CORE current ;
+ package -hardware CYGPKG_HAL_ARM_XSCALE_IQ80310 current ;
+ package -hardware CYGPKG_IO_PCI current ;
+ package -hardware CYGPKG_DEVS_ETH_INTEL_I82559 current ;
+ package -hardware CYGPKG_DEVS_ETH_ARM_XSCALE_IQ80310 current ;
+ package -hardware CYGPKG_DEVS_FLASH_ARM_XSCALE_IQ80310 current ;
+ package -template CYGPKG_HAL current ;
+ package -template CYGPKG_INFRA current ;
+ package -template CYGPKG_REDBOOT current ;
+ package CYGPKG_IO_FLASH current ;
+ package CYGPKG_IO_ETH_DRIVERS current ;
+};
+
+cdl_option CYGBLD_BUILD_GDB_STUBS {
+ user_value 0
+};
+
+cdl_option CYGDBG_HAL_COMMON_INTERRUPTS_SAVE_MINIMUM_CONTEXT {
+ user_value 0
+};
+
+cdl_option CYGDBG_HAL_COMMON_CONTEXT_SAVE_MINIMUM {
+ inferred_value 0
+};
+
+cdl_option CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS {
+ inferred_value 1
+};
+
+cdl_option CYGDBG_HAL_DEBUG_GDB_BREAK_SUPPORT {
+ inferred_value 1
+};
+
+cdl_option CYGDBG_HAL_DEBUG_GDB_CTRLC_SUPPORT {
+ inferred_value 0
+};
+
+cdl_option CYGSEM_HAL_ROM_MONITOR {
+ user_value 1
+};
+
+cdl_option CYGSEM_HAL_USE_ROM_MONITOR {
+ inferred_value 0 0
+};
+
+cdl_component CYG_HAL_STARTUP {
+ user_value ROM
+};
+
+cdl_option CYGBLD_BUILD_REDBOOT {
+ user_value 1
+};
+
+cdl_option CYGSEM_REDBOOT_FLASH_CONFIG {
+ user_value 1
+};
+
+cdl_option CYGSEM_REDBOOT_BSP_SYSCALLS {
+ inferred_value 1
+};
+
+cdl_option CYGBLD_REDBOOT_MIN_IMAGE_SIZE {
+ inferred_value 0x40000
+};
+
+cdl_option CYGSEM_HAL_ARM_IOP310_ARMBOOT {
+ user_value 1
+};
+
+cdl_option CYGBLD_REDBOOT_FLASH_BOOT_OFFSET {
+ inferred_value 0x40000
+};
+
+cdl_option CYGNUM_IO_ETH_DRIVERS_NUM_PKT {
+ user_value 2
+};
+
+cdl_option CYGSEM_REDBOOT_FIS_CRC_CHECK {
+ user_value 0
+};
+
+cdl_option CYGSEM_IO_FLASH_VERIFY_PROGRAM {
+ user_value 0
+};
+
+cdl_option CYGPKG_HAL_GDB_FILEIO {
+ user_value 1
+};
+
+cdl_option CYGSEM_HAL_ARM_XSCALE_BTB {
+ user_value 0
+};
diff --git a/ecos/packages/hal/arm/xscale/iq80310/current/src/diag/7_segment_displays.h b/ecos/packages/hal/arm/xscale/iq80310/current/src/diag/7_segment_displays.h
new file mode 100644
index 0000000..556b6db
--- /dev/null
+++ b/ecos/packages/hal/arm/xscale/iq80310/current/src/diag/7_segment_displays.h
@@ -0,0 +1,94 @@
+//=============================================================================
+//
+// 7_segment_displays.h
+//
+// Definitions for IQ80310 7-segment display.
+//
+//=============================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): Scott Coulter, Jeff Frazier, Eric Breeden
+// Contributors:
+// Date: 2001-01-02
+// Purpose:
+// Description:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================*/
+
+
+/* Addresses of the 7-segment displays registers */
+
+/* 08/25/00 jwf */
+/* iq80310 address decode */
+#define MSB_DISPLAY_REG (volatile unsigned char *)0xfe840000 /* 7 segment 0 */
+#define LSB_DISPLAY_REG (volatile unsigned char *)0xfe850000 /* 7 segment 1 */
+
+/* Values for the 7-segment displays */
+#define DISPLAY_OFF 0xFF
+#define ZERO 0xC0
+#define ONE 0xF9
+#define TWO 0xA4
+#define THREE 0xB0
+#define FOUR 0x99
+#define FIVE 0x92
+#define SIX 0x82
+#define SEVEN 0xF8
+#define EIGHT 0x80
+#define NINE 0x90
+#define LETTER_A 0x88
+#define LETTER_B 0x83
+#define LETTER_C 0xC6
+#define LETTER_D 0xA1
+#define LETTER_E 0x86
+#define LETTER_F 0x8E
+#define LETTER_I 0xCF
+#define LETTER_L 0xC7
+#define LETTER_P 0x8C
+#define LETTER_S 0x92
+#define DECIMAL_POINT 0x7F
+#define DISPLAY_ERROR 0x06 /* Displays "E." */
+
+/* Parameters for functions */
+#define MSB 0
+#define LSB 1
+#define BOTH 2
+
+extern const unsigned char SevSegDecode[];
+
+
+
+
diff --git a/ecos/packages/hal/arm/xscale/iq80310/current/src/diag/cycduart.c b/ecos/packages/hal/arm/xscale/iq80310/current/src/diag/cycduart.c
new file mode 100644
index 0000000..37b7887
--- /dev/null
+++ b/ecos/packages/hal/arm/xscale/iq80310/current/src/diag/cycduart.c
@@ -0,0 +1,483 @@
+//=============================================================================
+//
+// cycduart.c - Cyclone UART Diagnostics
+//
+//=============================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): Scott Coulter, Jeff Frazier, Eric Breeden
+// Contributors:
+// Date: 2001-01-25
+// Purpose:
+// Description:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================*/
+#include <redboot.h>
+#include <cyg/hal/hal_iop310.h> // Hardware definitions
+#include "cycduart.h"
+#include "iq80310.h"
+#include "test_menu.h"
+
+#define DFLTLOOPERMS 500
+
+//extern int printf(char*,...);
+extern long hexIn(void);
+
+int break_flag = 0;
+unsigned long baud_rate = 0;
+
+static int duart_already_init = FALSE;
+static unsigned int uart_unit = DFLTPORT;
+static int looperms;
+
+static int calc_looperms(void);
+void serial_init(void);
+int inreg(int);
+void outreg(int, unsigned char);
+void serial_set(unsigned long);
+void serial_loopback(int);
+int serial_getc(void);
+void serial_putc(int);
+int serial_write(int, const unsigned char *, int);
+int serial_read(int, unsigned char *, int, int);
+
+extern int enable_external_interrupt (int int_id);
+extern int disable_external_interrupt (int int_id);
+
+extern int isr_connect(int int_num, void (*handler)(int), int arg);
+extern int isr_disconnect(int int_num);
+
+
+void duart_initialize(void)
+{
+ if (duart_already_init == FALSE) {
+ /* Calculate the time constant for timeouts on serial_read. */
+ if ((looperms = calc_looperms()) <= 0)
+ looperms = DFLTLOOPERMS;
+ }
+
+ /* Initialize the serial port and set the baud rate.
+ * The baud rate is set here for sanity only; the autobaud
+ * mechanism will change it as required when the host connects.
+ */
+
+ serial_init();
+ serial_set(baud_rate?baud_rate:9600L);
+
+ duart_already_init = TRUE;
+}
+
+
+/* Establish the loop/time constant to be used in the timing loop in
+ * serial_read. This is done by putting the UART into loopback mode.
+ * After transmitting a character at 300 baud, we wait for the character
+ * to be received. Then divide the number of loops waited by the number
+ * of milliseconds it takes to transmit 10 bits at 300 baud.
+ * If your transmitter doesn't have a loopback mode, this value can be
+ * calculated using a timer or some other facility, or an approximate
+ * constant can be used.
+ */
+
+#define TESTBAUD 300L
+#define NBYTES 10
+#define BITS_PER_BYTE 10 /* 1 start bit, 8 data bits, 1 stop bit */
+#define TOTAL_MS (NBYTES*BITS_PER_BYTE*1000/TESTBAUD)
+
+static int
+calc_looperms(void)
+{
+ int i, count, c;
+ int totalloops = 0;
+
+ serial_init();
+ serial_set(TESTBAUD); /* set 300 baud */
+ serial_loopback(1); /* enable loop back mode */
+
+ for (i=0; i < NBYTES; i++) {
+ count = 1;
+ serial_putc(0xaa); /* xmit character */
+
+ /*
+ * The timing loop is the same as the loops in serial_read.
+ * Any changes to the loops in serial_read should be reflected
+ * here.
+ */
+ do {
+ c = serial_getc();
+ } while (c < 0 && count++ > 0);
+
+ totalloops += count;
+ }
+
+ serial_loopback(0);
+
+ return(totalloops/TOTAL_MS);
+}
+
+/*
+ * Initialize the device driver.
+ */
+void serial_init(void)
+{
+ /* If the serial port has been init'd before, there may be data in it */
+ /* Wait for the transmit FIFO to empty out before resetting anything */
+ if (duart_already_init == TRUE) {
+ while (!(inreg(LSR) & LSR_TSRE));
+ }
+
+ /*
+ * Configure active port, (uart_unit already set.)
+ *
+ * Set 8 bits, 1 stop bit, no parity.
+ *
+ * LCR<7> 0 divisor latch access bit
+ * LCR<6> 0 break control (1=send break)
+ * LCR<5> 0 stick parity (0=space, 1=mark)
+ * LCR<4> 0 parity even (0=odd, 1=even)
+ * LCR<3> 0 parity enable (1=enabled)
+ * LCR<2> 0 # stop bits (0=1, 1=1.5)
+ * LCR<1:0> 11 bits per character(00=5, 01=6, 10=7, 11=8)
+ */
+
+ outreg(LCR, 0x3);
+
+ /* Assert DTR and RTS to prevent hardware handshake problems with
+ serial terminals, etc. which can be connected to the serial port */
+ outreg(MCR, MCR_DTR | MCR_RTS);
+
+ outreg(FCR, FIFO_ENABLE); /* Enable the FIFO */
+ outreg(IER, INT_ENABLE); /* Enable appropriate interrupts */
+
+}
+
+/* Read a received character if one is available. Return -1 otherwise. */
+int serial_getc(void)
+{
+ if (inreg(LSR) & LSR_DR)
+ return inreg(DataIn);
+
+ return -1;
+}
+
+/* Transmit a character. */
+void serial_putc(int c)
+{
+ while ((inreg(LSR) & LSR_THRE) == 0)
+ ;
+ outreg(DataOut, c);
+}
+
+/*
+ * Set the baud rate.
+ */
+void serial_set(unsigned long baud)
+{
+ unsigned char sav_lcr;
+
+ if(baud == 0)
+ baud = 9600L;
+
+ /*
+ * Enable access to the divisor latches by setting DLAB in LCR.
+ *
+ */
+ sav_lcr = inreg(LCR);
+ outreg(LCR, LCR_DLAB | sav_lcr);
+
+ /*
+ * Set divisor latches.
+ */
+ outreg(BaudLsb, XTAL/(16*baud));
+ outreg(BaudMsb, (XTAL/(16*baud)) >> 8);
+
+ /*
+ * Restore line control register
+ */
+ outreg(LCR, sav_lcr);
+}
+
+/*
+ * This routine is used by calc_looperms to put the UART in loopback mode.
+ */
+
+void serial_loopback(int flag)
+{
+ if (flag)
+ outreg(MCR, inreg(MCR) | MCR_LOOP); /* enable loop back mode */
+ else
+ outreg(MCR, inreg(MCR) & ~MCR_LOOP); /* disable loop back mode */
+}
+
+/*
+ * These routines are used to read and write to the registers of the
+ * 16552. The delay routine guarantees the required recovery time between
+ * cycles to the 16552.
+ * DUART is the base address of the 16552.
+ * DUART_DELTA gives the spacing between adjacent registers of the 16552.
+ * For example, if A0,A1,A2 of the 16552 are connected to A2,A3,A4 of
+ * the processor, DUART_DELTA must be 4.
+ */
+
+int inreg(int reg)
+{
+ int val;
+ val = *((volatile unsigned char *)TERMINAL + (uart_unit * SCALE + reg));
+
+ return val;
+}
+
+void outreg(int reg, unsigned char val)
+{
+ *((volatile unsigned char *)TERMINAL + (uart_unit * SCALE + reg)) = val;
+}
+
+
+
+/****************************************************************/
+/* The following functions are all part of the Breeze UART test */
+/****************************************************************/
+
+
+static volatile int uart_int;
+
+
+/************************************************/
+/* BUS_TEST */
+/* This routine performs a walking ones test */
+/* on the given uart chip to test it's bus */
+/* interface. It writes to the scratchpad reg. */
+/* then reads it back. During */
+/* this test all 8 data lines from the chip */
+/* get written with both 1 and 0. */
+/************************************************/
+static int bus_test (void)
+{
+ unsigned char out, in;
+ int bitpos;
+ volatile int junk;
+
+ junk = (int) &junk; /* Don't let compiler optimize or "registerize" */
+
+ outreg(SCR,0); /* Clear scratchpad register */
+
+ for (bitpos = 0; bitpos < 8; bitpos++) {
+ out = 1 << bitpos;
+
+ outreg(SCR,out); /* Write data to scratchpad reg. */
+
+ junk = ~0; /* Force data lines high */
+
+ in = inreg(SCR); /* Read data */
+
+ printf ("%02X ", in);
+
+ /* make sure it's what we wrote */
+ if (in != out)
+ return (0);
+ }
+ outreg(SCR,0); /* Clear scratchpad register */
+ printf ("\n");
+
+ return (1);
+}
+
+/************************************************/
+/* DISABLE_UART_INTS */
+/* This routine disables uart interrupts */
+/************************************************/
+static void disable_uart_ints (void)
+{
+ outreg(IER,0); /* Make the uart shut up */
+}
+
+/************************************************/
+/* UART_ISR */
+/* This routine responds to uart interrupts */
+/* must return 1 to indicate that an interrupt */
+/* was serviced. */
+/************************************************/
+static void uart_isr (int unused)
+{
+ unsigned char iir;
+
+ disable_uart_ints ();
+ uart_int = 1;
+
+ /* read the IIR to clear the interrupt */
+ iir = inreg(IIR);
+
+ return ;
+}
+
+/************************************************/
+/* INIT_UART */
+/* This routine initializes the 16550 interrupt */
+/* and uart registers and initializes the uart */
+/* count. */
+/************************************************/
+static void init_uart (void)
+{
+ outreg(IER,0x02); /* Enable Tx Empty interrupt -
+ should generate an interrupt since Tx is
+ empty to begin with */
+}
+
+
+/****************************************/
+/* UART DIAGNOSTIC TEST */
+/****************************************/
+void uart_test (MENU_ARG arg)
+{
+ volatile int loop;
+ int looplim;
+ int int_id;
+ int i, baud;
+
+ /*11/01/00 */
+ char info[] = {"Move Console Cable back to Connector J9 and hit <CR> to exit test"};
+ int index;
+
+ looplim = 400000;
+
+ /* perform tests on both UARTs */
+ for (uart_unit = 0; uart_unit < 2; uart_unit++) {
+
+ if (uart_unit == 0)
+ int_id = UART1_INT_ID;
+ else
+ int_id = UART2_INT_ID;
+
+ if (!bus_test ())
+ printf ("\nERROR: bus_test for UART Unit %d failed\n", uart_unit);
+ else {
+ printf ("\nbus_test for UART Unit %d passed\n", uart_unit);
+
+ uart_int = 0;
+
+ isr_connect (int_id, uart_isr, 0);
+
+ if (enable_external_interrupt(int_id) != OK)
+ printf("ERROR enabling UART UINT %d interrupt!\n", uart_unit);
+
+ init_uart ();
+
+ loop = 0;
+
+ while (!uart_int && (loop < looplim))
+ loop++;
+ if (!uart_int)
+ printf ("UART Unit %d INTERRUPT test failed %X\n", uart_unit, loop) ;
+ else
+ printf ("UART Unit %d INTERRUPT test passed\n", uart_unit);
+
+ serial_putc(' ');
+ }
+
+ /* disable UART interrupt */
+ if (disable_external_interrupt(int_id)!= OK)
+ printf("ERROR disabling UART UNIT %d interrupt!\n", uart_unit);
+
+ /* disconnect test handler */
+ isr_disconnect (int_id);
+
+ }
+
+ /* 11/01/00 */
+ /* #if 0 */ /* writing to port 2 doesnt work yet... */
+#if 1 /* writing to port 2 doesnt work yet... */
+
+/*
+ printf ("\nMove the Console Cable to the 2nd Serial Port,\n");
+ printf ("Connector J10,\n");
+ printf ("and Hit <CR> when the cable is connected.\n\n");
+ printf ("After alphabet prints, move Console Cable back to 1st Serial Port,\n");
+ printf ("Connector J9,\n");
+ printf ("and hit <CR> to exit test\n");
+*/
+
+/* 10/30/00 */
+ uart_unit = DFLTPORT; /* test J10, the PCI-700 GDB port */
+
+ printf ("\nMove the Console Cable to the 2nd Serial Port, Connector J10,\n");
+ printf ("and Hit <CR> when the cable is connected.\n");
+ printf ("The alphabet should print on the screen.\n\n");
+
+/* 11/01/00 */
+/*
+ printf ("After alphabet prints, move Console Cable back to 1st Serial Port,\n");
+ printf ("Connector J9,\n");
+ printf ("and hit <CR> to exit test\n");
+*/
+ baud = 115200;
+ serial_init();
+ serial_set(baud?baud:115200L);
+
+/* while (serial_getc() == -1); */
+ while (serial_getc() != 0x0d); /* wait for a carriage return character to start test */
+
+/*
+ while (1)
+ {
+ for ( i = 65; i <= 90; i++ )
+ serial_putc(i);
+ }
+*/
+ for ( i = 65; i <= 90; i++ ) /* transmit the alphabet */
+ serial_putc(i);
+
+ serial_putc(10); /* transmit a New Line */
+ serial_putc(13); /* transmit a Carriage Return */
+ serial_putc(10); /* transmit a New Line */
+
+ for (index=0; info[index] != '\0'; index++) /* transmit some instructions to the user */
+ serial_putc(info[index]);
+
+ /* point at default port before returning */
+ /* uart_unit = DFLTPORT; */
+
+ (void)hexIn();
+
+#endif
+
+ printf ("\n\nUART tests done.\n");
+ printf ("Press return to continue.\n");
+ (void) hexIn();
+}
+
+
+
+
diff --git a/ecos/packages/hal/arm/xscale/iq80310/current/src/diag/cycduart.h b/ecos/packages/hal/arm/xscale/iq80310/current/src/diag/cycduart.h
new file mode 100644
index 0000000..09d69b5
--- /dev/null
+++ b/ecos/packages/hal/arm/xscale/iq80310/current/src/diag/cycduart.h
@@ -0,0 +1,161 @@
+//=============================================================================
+//
+// cycduart.h - Cyclone Diagnostics
+//
+//=============================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): Scott Coulter, Jeff Frazier, Eric Breeden
+// Contributors:
+// Date: 2001-01-25
+// Purpose:
+// Description:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================*/
+
+
+/* Control/status register offsets from base address */
+
+#define RBR 0x00
+#define THR 0x00
+#define DLL 0x00
+#define IER 0x01
+#define DLM 0x01
+#define IIR 0x02
+#define FCR 0x02
+#define LCR 0x03
+#define MCR 0x04
+#define LSR 0x05
+#define MSR 0x06
+#define SCR 0x07
+
+/* 16550A Line Control Register */
+
+#define LCR_5BITS 0x00
+#define LCR_6BITS 0x01
+#define LCR_7BITS 0x02
+#define LCR_8BITS 0x03
+#define LCR_NSB 0x04
+#define LCR_PEN 0x08
+#define LCR_EPS 0x10
+#define LCR_SP 0x20
+#define LCR_SB 0x40
+#define LCR_DLAB 0x80
+
+/* 16550A Line Status Register */
+
+#define LSR_DR 0x01
+#define LSR_OE 0x02
+#define LSR_PE 0x04
+#define LSR_FE 0x08
+#define LSR_BI 0x10
+#define LSR_THRE 0x20
+#define LSR_TSRE 0x40
+#define LSR_FERR 0x80
+
+/* 16550A Interrupt Identification Register */
+
+#define IIR_IP 0x01
+#define IIR_ID 0x0e
+#define IIR_RLS 0x06
+#define IIR_RDA 0x04
+#define IIR_THRE 0x02
+#define IIR_MSTAT 0x00
+#define IIR_TIMEOUT 0x0c
+
+/* 16550A interrupt enable register bits */
+
+#define IER_DAV 0x01
+#define IER_TXE 0x02
+#define IER_RLS 0x04
+#define IER_MS 0x08
+
+/* 16550A Modem control register */
+
+#define MCR_DTR 0x01
+#define MCR_RTS 0x02
+#define MCR_OUT1 0x04
+#define MCR_OUT2 0x08
+#define MCR_LOOP 0x10
+
+/* 16550A Modem Status Register */
+
+#define MSR_DCTS 0x01
+#define MSR_DDSR 0x02
+#define MSR_TERI 0x04
+#define MSR_DRLSD 0x08
+#define MSR_CTS 0x10
+#define MSR_DSR 0x20
+#define MSR_RI 0x40
+#define MSR_RLSD 0x80
+
+/* (*) 16550A FIFO Control Register */
+
+#define FCR_EN 0x01
+#define FCR_RXCLR 0x02
+#define FCR_TXCLR 0x04
+#define FCR_DMA 0x08
+#define FCR_RES1 0x10
+#define FCR_RES2 0x20
+#define FCR_RXTRIG_L 0x40
+#define FCR_RXTRIG_H 0x80
+
+
+#define CHAN1 0x8
+#define CHAN2 0x0
+
+#define DataIn 0x00 /* data input port */
+#define DataOut 0x00 /* data output port */
+#define BaudLsb 0x00 /* baud rate divisor least significant byte */
+#define BaudMsb 0x01 /* baud rate divisor most significant byte */
+
+
+/*
+ * Enable receive and transmit FIFOs.
+ *
+ * FCR<7:6> 00 trigger level = 1 byte
+ * FCR<5:4> 00 reserved
+ * FCR<3> 0 mode 1 - interrupt on fifo threshold
+ * FCR<2> 1 clear xmit fifo
+ * FCR<1> 1 clear recv fifo
+ * FCR<0> 1 turn on fifo mode
+ */
+#define FIFO_ENABLE 0x07
+#define INT_ENABLE (IER_RLS) /* default interrupt mask */
+
+
+
diff --git a/ecos/packages/hal/arm/xscale/iq80310/current/src/diag/diag.c b/ecos/packages/hal/arm/xscale/iq80310/current/src/diag/diag.c
new file mode 100644
index 0000000..1652eb7
--- /dev/null
+++ b/ecos/packages/hal/arm/xscale/iq80310/current/src/diag/diag.c
@@ -0,0 +1,180 @@
+//==========================================================================
+//
+// diag.c
+//
+// Additional RedBoot commands to run board diags.
+//
+//==========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//==========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): msalter
+// Contributors: msalter
+// Date: 2000-10-10
+// Purpose:
+// Description:
+//
+// This code is part of RedBoot (tm).
+//
+//####DESCRIPTIONEND####
+//
+//==========================================================================
+
+#include <redboot.h>
+#ifdef CYGPKG_IO_ETH_DRIVERS
+#include <cyg/io/eth/eth_drv.h>
+#endif
+#include <cyg/hal/hal_arch.h>
+#include <cyg/hal/hal_intr.h>
+#include <cyg/hal/hal_cache.h>
+#include CYGHWR_MEMORY_LAYOUT_H
+
+#include <cyg/hal/hal_tables.h>
+
+#include "iq80310.h"
+
+int pci_config_cycle = 0; /* skip exception handling when performing pci config cycle */
+
+static void do_hdwr_diag(int argc, char *argv[]);
+
+RedBoot_cmd("diag",
+ "Run board diagnostics",
+ "",
+ do_hdwr_diag
+ );
+
+
+void hdwr_diag (void);
+
+void do_hdwr_diag(int arg, char *argv[])
+{
+ hal_virtual_comm_table_t* __chan;
+
+ // Turn off interrupts on debug channel.
+ // All others should already be disabled.
+ __chan = CYGACC_CALL_IF_DEBUG_PROCS();
+ if (__chan)
+ CYGACC_COMM_IF_CONTROL(*__chan, __COMMCTL_IRQ_DISABLE);
+
+#ifdef CYGPKG_IO_ETH_DRIVERS
+ HAL_INTERRUPT_MASK(eth_drv_int_vector());
+#endif
+
+ hdwr_diag();
+}
+
+void __disableDCache(void)
+{
+ HAL_DCACHE_SYNC();
+ HAL_DCACHE_DISABLE();
+}
+
+void __enableDCache(void)
+{
+ HAL_DCACHE_ENABLE();
+}
+
+
+void _flushICache(void)
+{
+ HAL_ICACHE_INVALIDATE_ALL();
+}
+
+void __enableICache(void)
+{
+ HAL_ICACHE_ENABLE();
+}
+
+void __disableICache(void)
+{
+ HAL_ICACHE_DISABLE();
+}
+
+void _enableFiqIrq(void)
+{
+ asm ("mrc p15, 0, r0, c13, c0, 1;"
+ "orr r0, r0, #0x2000;"
+ "mrc p15, 0, r0, c13, c0, 1;"
+ "mrc p13, 0, r0, c0, c0, 0;"
+ "orr r0, r0, #3;"
+ "mcr p13, 0, r0, c0, c0, 0;"
+ : : );
+}
+
+
+void _enable_timer(void)
+{
+ asm("ldr r1, =0x00000005;"
+ "mcr p14, 0, r1, c0, c0, 0 ;"
+ : : : "r1" );
+}
+
+void _disable_timer(void)
+{
+ asm("ldr r1, =0x00000000;"
+ "mcr p14, 0, r1, c0, c0, 0 ;"
+ : : : "r1" );
+}
+
+void _usec_delay(void)
+{
+ asm ("ldr r2, =0x258;" /* 1 microsec = 600 clocks (600 MHz CPU core) */
+ "0: mrc p14, 0, r0, c1, c0, 0;" /*read CCNT into r0 */
+ "cmp r2, r0;" /* compare the current count */
+ "bpl 0b;" /* stay in loop until count is greater */
+ "mrc p14, 0, r1, c0, c0, 0;"
+ "orr r1, r1, #4;" /* clear the timer */
+ "mcr p14, 0, r1, c0, c0, 0 ;"
+ : : : "r0","r1","r2");
+}
+
+void _msec_delay(void)
+{
+ asm ("ldr r2, =0x927c0;" /* 1 millisec = 600,000 clocks (600 MHz CPU core) */
+ "0: mrc p14, 0, r0, c1, c0, 0;" /*read CCNT into r0 */
+ "cmp r2, r0;" /* compare the current count */
+ "bpl 0b;" /* stay in loop until count is greater */
+ "mrc p14, 0, r1, c0, c0, 0;"
+ "orr r1, r1, #4;" /* clear the timer */
+ "mcr p14, 0, r1, c0, c0, 0 ;"
+ : : : "r0","r1","r2");
+}
+
+unsigned int _read_timer(void)
+{
+ unsigned x;
+ asm("mrc p14, 0, %0, c1, c0, 0;" : "=r"(x) : );
+ return x;
+}
+
diff --git a/ecos/packages/hal/arm/xscale/iq80310/current/src/diag/ether_test.c b/ecos/packages/hal/arm/xscale/iq80310/current/src/diag/ether_test.c
new file mode 100644
index 0000000..efdf86a
--- /dev/null
+++ b/ecos/packages/hal/arm/xscale/iq80310/current/src/diag/ether_test.c
@@ -0,0 +1,1144 @@
+//=============================================================================
+//
+// ether_test.c - Cyclone Diagnostics
+//
+//=============================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): Scott Coulter, Jeff Frazier, Eric Breeden
+// Contributors:
+// Date: 2001-01-25
+// Purpose:
+// Description:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================*/
+#include <redboot.h>
+#include <cyg/io/pci_hw.h>
+#include <cyg/io/pci.h>
+#include "pci_bios.h"
+#include "iq80310.h"
+#include "ether_test.h"
+
+/* Forward declarations */
+static int i557SelfTest (void);
+static int i557Init (void);
+static int i557Config (UINT8 loopBackMode);
+static int i557AddrSet (void);
+static int i557RUStart (void);
+static void setUpPacket (char *p);
+static int txPacket (char *p);
+static char *malloc (int n);
+static int waitForRxInt(void);
+static int get_ether_addr(int unit, UINT8 *buf, int print_flag);
+
+/* Externals */
+extern long decIn(void);
+extern void sgets(char *s);
+extern int enable_external_interrupt (int int_id);
+extern int isr_connect(int int_num, void (*handler)(int), int arg);
+extern STATUS pci_isr_connect (int intline, int bus, int device, int (*handler)(int), int arg);
+extern void delay_ms(int msecs);
+
+extern int eeprom_read (UINT32 pci_base,/* PCI Base address */
+ int eeprom_addr, /* word offset from start of eeprom */
+ UINT16 *p_data,/* where to put data in memory */
+ int nwords /* number of 16bit words to read */
+ );
+extern int eeprom_write (UINT32 pci_base,/* PCI Base address */
+ int eeprom_addr, /* word offset from start of eeprom */
+ UINT16 *p_data,/* data location in memory */
+ int nwords /* number of 16bit words to write */
+ );
+
+/* Globals needed by both main program and irq handler */
+static volatile struct SCBtype *pSCB; /* Pointer to SCB in use */
+static volatile UINT32 waitSem; /* Used to block test until interrupt */
+static volatile UINT32 rxSem; /* Used to block test until rx sinterrupt */
+static UINT16 i557Status; /* Status code from SCB */
+static volatile char *mem_pool; /* Ptr to malloc's free memory pool */
+static UINT32 adapter[2]; /* Ptr to PCI Ethernet adapter */
+static UINT8 node_address[6];
+/*static long timer0_ticks = 0;*/
+static char buf[4];
+static int count = 0;
+static int forever_flag = FALSE;
+static UINT32 phy_id = 0;
+
+/* 82557 required data structures which must be allocated */
+static struct rfd *pRfd;
+static union cmdBlock *pCmdBlock;
+static char *pPacketBuf;
+
+#define SPEED_NOLINK 0
+#define SPEED_10M 10
+#define SPEED_100M 100
+static int link_speed = SPEED_NOLINK;
+
+UINT8 unit_intpin;
+int unit_devno, unit_busno, unit_funcno;
+
+#define BUSY_WAIT_LIMIT 0xf000 /* the upper limit on a busy wait
+ for command completion, etc. */
+
+static void mask_557_ints (void)
+{
+ pSCB->cmdStat.bits.m = 1;
+}
+
+static void unmask_557_ints (void)
+{
+ pSCB->cmdStat.bits.m = 0;
+}
+
+/*****************************************************************************
+* pci_ether_test - i8255x PCI Ethernet test
+*
+* Main diagnostic routine for the Intel 8255x 10/100BaseT Ethernet Controller
+* family. Arguments include the PCI bus, device and function numbers of the
+* controller that is to be tested.
+*
+*/
+void pci_ether_test (UINT32 busno, UINT32 devno, UINT32 funcno)
+{
+ volatile int i;
+ int ntimes;
+ int broadcom_flag = FALSE;
+ UINT16 phy_addr_reg, temp1, temp2;
+ cyg_pci_device_id devid;
+
+ count = 0;
+
+ devid = CYG_PCI_DEV_MAKE_ID(busno, CYG_PCI_DEV_MAKE_DEVFN(devno,funcno));
+
+ /* read the PCI BAR for the Ethernet controller */
+ cyg_pci_read_config_uint32(devid, 0x10, &adapter[0]);
+
+ /* strip off BAR indicator bits */
+ adapter[0] &= 0xfffffff0;
+
+ unit_devno = devno;
+ unit_busno = busno;
+ unit_funcno = funcno;
+
+ /* pointer to on-chip SCB */
+ pSCB = (struct SCBtype *)(adapter[0] + SCB_OFFSET);
+
+ unit_intpin = INTA;
+
+ printf ("PCI Base Address = 0x%X\n", adapter[0]);
+ printf ("PCI Interrupt Pin = 0x%02X\n", unit_intpin);
+
+ /* Initialize malloc's memory pool pointer */
+ mem_pool = (char *) ETHER_MEM_POOL;
+
+ /* Start the timer for delay implementation
+ printf("Starting timer... ");
+ StartTimer(); */
+ printf("Done.\n Resetting chip... ");
+
+ /* reset the 82557 to start with a clean slate */
+ resetChip();
+ printf("Done.\n");
+
+ /* Get the UUT's ethernet address */
+ if (get_ether_addr (0, node_address, TRUE) == ERROR) {
+ printf("Error Reading Adapter Ethernet Address\n");
+ return;
+ }
+
+ temp1 = readMDI(0, MDI_DEFAULT_PHY_ADDR, MDI_PHY_ID_1);
+ temp2 = readMDI(0, MDI_DEFAULT_PHY_ADDR, MDI_PHY_ID_2);
+ phy_id = ((temp1 << 16) | temp2);
+
+ if ((phy_id & 0xfffffff0) == I82555_PHY_ID) {
+ printf ("Intel 82555/558 PHY detected...\n");
+
+ /* dummy read for reliable status */
+ (void)readMDI (0, MDI_DEFAULT_PHY_ADDR, MDI_PHY_STAT);
+
+ temp1 = readMDI (0, MDI_DEFAULT_PHY_ADDR, MDI_PHY_STAT);
+ printf ("Status Register Link Status is %s\n", (temp1 & MDI_STAT_LINK) ? "UP" : "DOWN");
+
+ phy_addr_reg = readMDI (0, MDI_DEFAULT_PHY_ADDR, I82555_STATCTRL_REG);
+
+ if (temp1 & MDI_STAT_LINK) { /* speed only valid with good LNK */
+ printf ("Connect Speed is %s\n", (phy_addr_reg & I82555_100_MBPS) ? "100Mbps" : "10Mbps");
+ link_speed = (phy_addr_reg & I82555_100_MBPS) ? SPEED_100M : SPEED_10M;
+ } else
+ printf ("Connect Speed is NOT VALID\n");
+ }
+
+ if ((phy_id & 0xfffffff0) == ICS1890_PHY_ID) {
+ printf ("Integrated Circuit Systems ICS1890 PHY detected...\n");
+ printf ("Revision = %c\n", 'A' + (phy_id & REVISION_MASK));
+
+ /* dummy read for reliable status */
+ (void)readMDI (0, MDI_DEFAULT_PHY_ADDR, ICS1890_QUICKPOLL_REG);
+ temp1 = readMDI (0, MDI_DEFAULT_PHY_ADDR, ICS1890_QUICKPOLL_REG);
+ printf ("Status Register Link Status is %s\n", (temp1 & QUICK_LINK_VALID) ? "UP" : "DOWN");
+
+ if (temp1 & QUICK_LINK_VALID) { /* speed only valid with good LNK */
+ printf ("Connect Speed is %s\n", (temp1 & QUICK_100_MBPS) ? "100Mbps" : "10Mbps");
+ link_speed = (temp1 & QUICK_100_MBPS) ?
+ SPEED_100M : SPEED_10M;
+ } else
+ printf ("Connect Speed is NOT VALID\n");
+ }
+
+ if ((phy_id & 0xfffffff0) == DP83840_PHY_ID) {
+ printf ("National DP83840 PHY detected...\n");
+ printf ("Revision = %c\n", 'A' + (phy_id & REVISION_MASK));
+
+ /* dummy read for reliable status */
+ (void)readMDI (0, MDI_DEFAULT_PHY_ADDR, MDI_PHY_STAT);
+ temp1 = readMDI (0, MDI_DEFAULT_PHY_ADDR, MDI_PHY_STAT);
+ printf ("Status Register Link Status is %s\n", (temp1 & MDI_STAT_LINK) ? "UP" : "DOWN");
+
+ phy_addr_reg = readMDI (0 ,MDI_DEFAULT_PHY_ADDR, DP83840_PHY_ADDR_REG);
+
+ if (temp1 & MDI_STAT_LINK) { /* speed only valid with good LNK */
+ printf ("Connect Speed is %s\n", (phy_addr_reg & PHY_ADDR_SPEED_10_MBPS) ? "10Mbps" : "100Mbps");
+ link_speed = (phy_addr_reg & PHY_ADDR_SPEED_10_MBPS) ? SPEED_10M : SPEED_100M;
+ }
+ else printf ("Connect Speed is NOT VALID\n");
+ }
+
+ if ((phy_id & 0xfffffff0) == I82553_PHY_ID) {
+ printf ("Intel 82553 PHY detected...\n");
+ printf ("Revision = %c\n", 'A' + (phy_id & REVISION_MASK));
+ broadcom_flag = TRUE;
+ }
+
+ if (phy_id == I82553_REVAB_PHY_ID) {
+ printf ("Intel 82553 PHY detected...\n");
+ printf ("Revision = B\n");
+ broadcom_flag = TRUE;
+ }
+
+ if (broadcom_flag == TRUE) {
+ temp2 = readMDI (0,MDI_DEFAULT_PHY_ADDR, I82553_PHY_EXT_REG0);
+ printf ("Stepping = %02X\n", GET_REV_CNTR(temp2));
+
+ /* dummy read for reliable status */
+ (void)readMDI (0 ,MDI_DEFAULT_PHY_ADDR, MDI_PHY_STAT);
+ temp1 = readMDI (0 ,MDI_DEFAULT_PHY_ADDR, MDI_PHY_STAT);
+ printf ("Status Register Link Status is %s\n", (temp1 & MDI_STAT_LINK) ? "UP" : "DOWN");
+
+ if (temp1 & MDI_STAT_LINK) { /* speed only valid with good LNK */
+ printf ("Connect Speed is %s\n", (temp2 & EXT_REG0_100_MBPS) ? "100Mbps" : "10Mbps");
+ link_speed = (temp2 & EXT_REG0_100_MBPS) ? SPEED_100M : SPEED_10M;
+ } else
+ printf ("Connect Speed is NOT VALID\n");
+ }
+ printf ("\n");
+
+ /* Run the built-in self test through the port register */
+ if (i557SelfTest () == ERROR) {
+ mask_557_ints (); /* Disable 557 interrupt */
+ return;
+ }
+
+ /* Reset clears the interrupt mask */
+ mask_557_ints();
+
+ printf ("Press return to initialize ethernet controller.\n");
+ sgets (buf);
+
+ /* Initialize data structures */
+ if (i557Init () == ERROR) {
+ mask_557_ints (); /* Disable 557 interrupt */
+ return;
+ }
+
+ /* Set hardware address */
+ if (i557AddrSet () == ERROR) {
+ mask_557_ints (); /* Disable 557 interrupt */
+ return;
+ }
+
+ printf ("Press return to perform internal loopback test.\n");
+ sgets (buf);
+
+ /* Configure for internal loopback */
+ if (i557Config (INT_LOOP_BACK) == ERROR) {
+ mask_557_ints (); /* Disable 557 interrupt */
+ return;
+ }
+
+ delay_ms(100);
+
+ /* Initialize receive buffer and enable receiver */
+ if (i557RUStart () == ERROR) {
+ mask_557_ints (); /* Disable 557 interrupt */
+ return;
+ }
+
+ /* Send a packet */
+ setUpPacket (pPacketBuf);
+ if (txPacket (pPacketBuf) == ERROR) {
+ mask_557_ints (); /* Disable 557 interrupt */
+ return;
+ }
+
+ printf ("Press return to perform loopback through PHY.\n");
+ sgets (buf);
+
+ /* Configure for external loopback */
+ if (i557Config (EXT_LOOP_BACK) == ERROR) {
+ mask_557_ints (); /* Disable 557 interrupt */
+ return;
+ }
+
+ delay_ms(100);
+
+ /* Initialize receive buffer and enable receiver */
+ if (i557RUStart () == ERROR) {
+ mask_557_ints (); /* Disable 557 interrupt */
+ return;
+ }
+
+ /* Send a packet */
+ setUpPacket (pPacketBuf);
+ if (txPacket (pPacketBuf) == ERROR) {
+ mask_557_ints (); /* Disable 557 interrupt */
+ return;
+ }
+
+ printf ("Press return to perform external loopback through\n");
+ printf ("10/100 Base T Hub. NOTE: If test duration is not forever,\n");
+ printf ("this test will work only if a properly functioning Hub\n");
+ printf ("and Twisted Pair cable are attached to the network connector\n");
+ printf ("on the front panel.\n");
+ sgets (buf);
+
+ printf ("Enter the number of times to run test (0 = forever): ");
+ ntimes = decIn();
+ printf ("\n\n");
+
+ if (i557RUStart () == ERROR) {
+ mask_557_ints (); /* Disable 557 interrupt */
+ return;
+ }
+
+ setUpPacket (pPacketBuf);
+
+ if (ntimes == 0) {
+ forever_flag = TRUE;
+
+ while (1) {
+ if ((i557RUStart() == ERROR)||(txPacket (pPacketBuf) == ERROR)) {
+ printf ("Double-check TP cable and 10/100 Base T Hub\n");
+ printf ("Try testing them with another system\n");
+ printf ("(such as a workstation) that is working correctly.\n");
+ mask_557_ints (); /* Disable 557 interrupt */
+ return;
+ }
+
+ count++;
+ if (((count) % 1000) == 0)
+ printf("Loopback Cycle Count = %d\n", count);
+ }
+ } else {
+ forever_flag = FALSE;
+
+ for (i=0; i<ntimes; i++) {
+ if ((i557RUStart() == ERROR)||(txPacket (pPacketBuf) == ERROR)) {
+ printf ("Double-check TP cable and 10/100 Base T Hub\n");
+ printf ("Try testing them with another system\n");
+ printf ("(such as a workstation) that is working correctly.\n");
+ mask_557_ints (); /* Disable 557 interrupt */
+ return;
+ }
+
+ count++;
+ printf("Loopback Cycle Count = %d\n", count);
+ }
+
+ /* It worked! */
+
+ mask_557_ints (); /* Disable 557 interrupt */
+
+ printf ("\nEthernet controller passed. Press return to continue.\n");
+
+ sgets (buf);
+ }
+}
+
+
+/* Perform internal self test - returns OK if sucessful, ERROR if not. */
+static int i557SelfTest ()
+{
+ volatile struct selfTest *pSelfTestMem;
+ UINT32 oldWord2;
+ long delay;
+ UINT32 temp;
+ int rtnVal;
+
+ /* reset the 82557 to start with a clean slate */
+ resetChip();
+
+ /* Allocate some memory for the self test */
+ pSelfTestMem = (struct selfTest *) malloc (sizeof(struct selfTest));
+
+ if (pSelfTestMem == NULL) {
+ printf ("Couldn't get memory for self test.\n");
+ return (ERROR);
+ }
+
+ printf ("Sending PORT* self-test command...\n");
+ printf ("Local Dump address = 0x%X\n", pSelfTestMem);
+
+ /* Set all bits in second word, wait until it changes or a timeout */
+ pSelfTestMem->u.word2 = ~0;
+ oldWord2 = pSelfTestMem->u.word2;
+
+ temp = ((UINT32) pSelfTestMem) + PORT_SELF_TEST;
+
+ portWrite (temp);
+
+ /* Wait for test completion or for timeout */
+ for (delay = 0; (delay < MAX_DELAY) && (pSelfTestMem->u.word2 == oldWord2); delay++)
+ ; /* Wait... */
+
+ /* Print results */
+ printf ("Self test result: %s\n", (pSelfTestMem->u.bits.selfTest) ? "Fail" : "Pass");
+ printf ("ROM content test: %s\n", (pSelfTestMem->u.bits.romTest) ? "Fail" : "Pass");
+ printf ("Register test: %s\n", (pSelfTestMem->u.bits.regTest) ? "Fail" : "Pass");
+ printf ("Diagnose test: %s\n", (pSelfTestMem->u.bits.diagnTest) ? "Fail" : "Pass");
+ printf ("ROM signature: 0x%X\n", pSelfTestMem->romSig);
+
+ rtnVal = pSelfTestMem->u.bits.selfTest ? ERROR : OK;
+
+ return (rtnVal);
+}
+
+
+/* Initialize the 82557. */
+static int i557Init (void)
+{
+ /* Get memory for system data structures */
+ if ( ((pRfd = (struct rfd *) malloc (sizeof(struct rfd))) == NULL) ||
+ ((pPacketBuf = malloc(ETHERMTU + sizeof(UINT16) + 6)) == NULL) ||
+ ((pCmdBlock = (union cmdBlock *) malloc (sizeof(union cmdBlock))) == NULL) ) {
+ printf ("Memory allocation failed.\n");
+ return (ERROR);
+ }
+
+ /* Set EL bits in command block and rfd so we don't fall of the end */
+ pCmdBlock->nop.el = END_OF_LIST;
+ pRfd->el = END_OF_LIST;
+
+ /* Reset chip and initialize */
+ printf ("Initializing... ");
+
+ /* Reset 82557 */
+ resetChip ();
+
+ /* set up the CU and RU base values to 0x0 */
+ sendCommand (LOAD_CU_BASE, RU_NOP, 0);
+ sendCommand (CU_NOP, LOAD_RU_BASE, 0);
+
+ /* Initialize interrupts */
+
+ /* if it is the onboard i82559, it does not use the conventional PCI
+ interrupt routines because the interrupt is not multiplexed onto
+ the PCI bus */
+ if ((unit_busno == 2) && (unit_devno == 0) && (unit_funcno == 0)) {
+ if (isr_connect (ENET_INT_ID, (VOIDFUNCPTR)i557IntHandler, 0xdeadbeef) != OK) {
+ printf ("Error connecting Ethernet interrupt!\n");
+ return (ERROR);
+ }
+ if (enable_external_interrupt (ENET_INT_ID) != OK) {
+ printf ("Error enabling Ethernet interrupt!\n");
+ return (ERROR);
+ }
+ } else { /* use regular PCI int connect scheme */
+ if (pci_isr_connect (unit_intpin, unit_busno, unit_devno, i557IntHandler, 0xdeadbeef) != OK) {
+ printf ("Error connecting Ethernet interrupt!\n");
+ return (ERROR);
+ }
+ }
+ unmask_557_ints();
+ printf ("Done\n");
+ return (OK);
+}
+
+
+static int initPHY (UINT32 device_type, int loop_mode)
+{
+ UINT16 temp_reg;
+ UINT8 revision;
+
+ /* strip off revision and phy. id information */
+ revision = (UINT8)(device_type & REVISION_MASK);
+ device_type &= ~REVISION_MASK;
+
+ switch (device_type) {
+ case ICS1890_PHY_ID:
+ temp_reg = readMDI (0, MDI_DEFAULT_PHY_ADDR, MDI_PHY_CTRL); /* get ready for loopback setting */
+
+ switch (loop_mode) {
+ case EXT_LOOP_BACK: /* loopback on the MII interface */
+ temp_reg |= MDI_CTRL_LOOPBACK; /* MII loopback */
+ break;
+
+ case INT_LOOP_BACK:
+ default:
+ break;
+ }
+
+ writeMDI(0, MDI_DEFAULT_PHY_ADDR, MDI_PHY_CTRL, temp_reg);
+ break;
+
+ case DP83840_PHY_ID: /* set the Intel-specified "must set" bits */
+ temp_reg = readMDI (0,MDI_DEFAULT_PHY_ADDR, DP83840_PCR_REG);
+ temp_reg |= (PCR_TXREADY_SEL | PCR_FCONNECT);
+ writeMDI (0,MDI_DEFAULT_PHY_ADDR, DP83840_PCR_REG, temp_reg);
+
+ /* get ready for loopback setting */
+ temp_reg = readMDI (0,MDI_DEFAULT_PHY_ADDR, DP83840_LOOPBACK_REG);
+ temp_reg &= CLEAR_LOOP_BITS;
+
+ switch (loop_mode) {
+ case EXT_LOOP_BACK:
+ temp_reg |= TWISTER_LOOPBACK;
+ break;
+
+ case INT_LOOP_BACK:
+ default:
+ break;
+ }
+
+ writeMDI (0,MDI_DEFAULT_PHY_ADDR, DP83840_LOOPBACK_REG, temp_reg);
+ break;
+
+ case I82553_PHY_ID:
+ case I82553_REVAB_PHY_ID:
+ case I82555_PHY_ID:
+ break;
+
+ default:
+ return (ERROR);
+ break;
+ }
+
+ return (OK);
+}
+
+
+/* Set hardware address of the 82557. */
+static int i557AddrSet ()
+{
+ printf ("Setting hardware ethernet address to ");
+ printf ("%02X:%02X:%02X:", node_address[0], node_address[1], node_address[2]);
+ printf ("%02X:%02X:%02X... ", node_address[3], node_address[4], node_address[5]);
+
+ /* Set up iaSetup command block and execute */
+ memset((char *) pCmdBlock, 0, sizeof(union cmdBlock));
+ pCmdBlock->iaSetup.code = IA_SETUP;
+ pCmdBlock->iaSetup.el = END_OF_LIST;
+ memcpy(pCmdBlock->iaSetup.enetAddr, node_address, sizeof(node_address));
+
+ sendCommand (CU_START, RU_NOP, ((UINT32)pCmdBlock));
+
+ if ((waitForInt() == ERROR) || (pCmdBlock->iaSetup.ok != 1)) {
+ printf ("failed. Status: 0x%04X.\n", pSCB->cmdStat.words.status);
+ printf ("C bit = %d\n",pCmdBlock->iaSetup.c);
+ printf ("OK bit = %d\n",pCmdBlock->iaSetup.ok);
+ return (ERROR);
+ }
+
+ printf ("done.\n");
+ return (OK);
+}
+
+
+/* Configure the 82557. */
+static int i557Config (UINT8 loopBackMode) /* None, int, or ext 1, 2 (see etherTest.h) */
+{
+ printf ("\nConfiguring for ");
+
+ switch (loopBackMode) {
+ case INT_LOOP_BACK:
+ printf ("internal loopback... ");
+ break;
+ case EXT_LOOP_BACK:
+ printf ("external loopback, LPBK* active... ");
+ break;
+ default:
+ printf ("Unknown loopback mode, exiting...\n");
+ return (ERROR);
+ }
+
+ /* Set up configure command block and execute */
+ memset ((char *) pCmdBlock, 0, sizeof(union cmdBlock));
+ pCmdBlock->configure.code = CONFIGURE;
+ pCmdBlock->configure.el = END_OF_LIST;
+ pCmdBlock->configure.configData[ 0] = CONFIG_BYTE_00;
+ pCmdBlock->configure.configData[ 1] = CONFIG_BYTE_01;
+ pCmdBlock->configure.configData[ 2] = CONFIG_BYTE_02;
+ pCmdBlock->configure.configData[ 3] = CONFIG_BYTE_03;
+ pCmdBlock->configure.configData[ 4] = CONFIG_BYTE_04;
+ pCmdBlock->configure.configData[ 5] = CONFIG_BYTE_05;
+ pCmdBlock->configure.configData[ 6] = CONFIG_BYTE_06;
+ pCmdBlock->configure.configData[ 7] = CONFIG_BYTE_07;
+ pCmdBlock->configure.configData[ 8] = CONFIG_BYTE_08;
+ pCmdBlock->configure.configData[ 9] = CONFIG_BYTE_09;
+ pCmdBlock->configure.configData[10] = CONFIG_BYTE_10 | loopBackMode;
+ pCmdBlock->configure.configData[11] = CONFIG_BYTE_11;
+ pCmdBlock->configure.configData[12] = CONFIG_BYTE_12;
+ pCmdBlock->configure.configData[13] = CONFIG_BYTE_13;
+ pCmdBlock->configure.configData[14] = CONFIG_BYTE_14;
+ pCmdBlock->configure.configData[15] = CONFIG_BYTE_15;
+ pCmdBlock->configure.configData[16] = CONFIG_BYTE_16;
+ pCmdBlock->configure.configData[17] = CONFIG_BYTE_17;
+ pCmdBlock->configure.configData[18] = CONFIG_BYTE_18;
+
+ if (link_speed == SPEED_100M)
+ pCmdBlock->configure.configData[19] = CONFIG_BYTE_19_100T;
+ else {
+ pCmdBlock->configure.configData[19] = CONFIG_BYTE_19_10T;
+ pCmdBlock->configure.configData[20] = CONFIG_BYTE_20;
+ pCmdBlock->configure.configData[21] = CONFIG_BYTE_21;
+ }
+
+ sendCommand (CU_START, RU_NOP, ((UINT32)pCmdBlock));
+
+ if ((waitForInt() == ERROR) || (pCmdBlock->configure.ok != 1)) {
+ printf ("failed. Status: 0x%04X.\n", pSCB->cmdStat.words.status);
+ return (ERROR);
+ }
+
+ initPHY (phy_id, loopBackMode); /* set up the PHY interface appropriately */
+
+ printf ("done.\n");
+ return (OK);
+}
+
+
+static int i557RUStart (void)
+{
+ volatile long delay;
+
+ memset((char *) pRfd, 0, sizeof(struct rfd));
+
+ /* Set end-of-list bit in the rfd so we don't fall off the end */
+ pRfd->el = END_OF_LIST;
+ pRfd->s = 1;
+ pRfd->sf = 0; /* Simplified mode */
+ pRfd->rbdAddr = (UINT8 *) 0xffffffff; /* No RBD */
+ /* buffer size: */
+ pRfd->size = sizeof (pRfd->rxData) + sizeof (pRfd->destAddr) + sizeof (pRfd->sourceAddr) + sizeof (pRfd->length);
+
+ sendCommand (CU_NOP, RU_START, ((UINT32)pRfd));
+
+ /*
+ * Poll, can't use waitForInt (), as this step doesn't generate interrupts.
+ */
+
+ i557Status = 0;
+
+ /* Wait for timeout (i557Status changes) or RU_STAT is RU_READY */
+ for (delay = 0; (delay < MAX_DELAY) && (pSCB->cmdStat.bits.rus != RU_READY); delay++)
+ ; /* Wait... */
+
+ if (pSCB->cmdStat.bits.rus != RU_READY) {
+ printf ("failed. Status: 0x%04X.\n", pSCB->cmdStat.words.status);
+ return (ERROR);
+ }
+
+ return (OK);
+}
+
+
+/*
+ * Get packet ready to send out over the network. Buffer should be
+ * ETHERMTU + sizeof(enet_addr) + sizeof(UINT16)
+ */
+static void setUpPacket (char *pBuf)/* Where to put it */
+{
+ memcpy (pBuf, node_address, sizeof(node_address));
+ pBuf += sizeof(node_address); /* skip dest. address */
+
+ *((UINT16 *) pBuf) = 0;
+ pBuf += sizeof(UINT16); /* skip length field */
+
+ makePacket (pBuf, ETHERMTU);
+}
+
+
+/* Send and verify a packet using the current loopback mode. */
+static int txPacket (char *pBuf) /* Dest addr, ethertype, buffer */
+{
+ int status = OK;
+
+ /* Set up transmit command block and execute */
+ memset((char *) pCmdBlock, 0, sizeof(union cmdBlock));
+ pCmdBlock->transmit.code = TRANSMIT;
+ pCmdBlock->transmit.el = END_OF_LIST;
+ pCmdBlock->transmit.sf = 0; /* Simplified mode */
+ pCmdBlock->transmit.tbdAddr = (UINT8 *) 0xffffffff; /* No TBD */
+ pCmdBlock->transmit.eof = 1; /* Entire frame here */
+ /* # bytes to tx: */
+ pCmdBlock->transmit.tcbCount = sizeof (pCmdBlock->transmit.destAddr) + sizeof (pCmdBlock->transmit.length) +
+ sizeof (pCmdBlock->transmit.txData);
+
+#if 0
+ printf ("destAddr size = %d\n", sizeof (pCmdBlock->transmit.destAddr));
+ printf ("length size = %d\n", sizeof (pCmdBlock->transmit.length));
+ printf ("Transmitting %d bytes\n", pCmdBlock->transmit.tcbCount);
+#endif
+
+ memcpy (pCmdBlock->transmit.destAddr, pBuf, sizeof(node_address) + sizeof(UINT16) + ETHERMTU);
+
+ rxSem = 0; /* no Receive interrupt */
+
+ sendCommand (CU_START, RU_NOP, ((UINT32)pCmdBlock));
+
+ if (waitForInt() == ERROR) {
+ printf ("No Transmit Interrupt\n");
+ status = ERROR;
+ }
+
+ if (pCmdBlock->transmit.ok != 1) {
+ printf ("tx failed. Status: 0x%04X.\n",
+ pSCB->cmdStat.words.status);
+ status = ERROR;
+ }
+
+ if (status == ERROR) {
+ printf ("Transmit OK = %d\n", pCmdBlock->transmit.ok);
+ return (ERROR);
+ }
+
+#if 1
+ if (waitForRxInt() == ERROR) {
+ printf ("No Receive Interrupt\n");
+ status = ERROR;
+ }
+
+ if (pRfd->ok != 1) {
+ printf ("rx failed. Status: 0x%04X.\n", pSCB->cmdStat.words.status);
+ status = ERROR;
+ }
+
+#if 1
+ /* If RU still ready, hang for receive interrupt */
+ if (pSCB->cmdStat.bits.rus == RU_READY) {
+ if (waitForRxInt() == ERROR) {
+ printf ("No Receive Interrupt\n");
+ status = ERROR;
+ }
+
+ if (pRfd->ok != 1) {
+ printf ("rx failed. Status: 0x%04X.\n", pSCB->cmdStat.words.status);
+ status = ERROR;
+ }
+ }
+#endif
+
+ if (status == ERROR) {
+ printf ("\nTransmit Stats:\n");
+ printf ("---------------\n");
+ printf ("Transmit OK = %d\n", pCmdBlock->transmit.ok);
+
+ printf ("\nReceive Stats:\n");
+ printf ("---------------\n\n");
+ printf ("Receive OK = %d\n", pRfd->ok);
+ printf ("CRC Error = %d\n", pRfd->crcErr);
+ printf ("Alignment Error = %d\n", pRfd->alignErr);
+ printf ("Resource Error = %d\n", pRfd->noRsrc);
+ printf ("DMA Overrun Error = %d\n", pRfd->dmaOverrun);
+ printf ("Frame Too Short Error = %d\n", pRfd->frameTooshort);
+ printf ("Receive Collision Error = %d\n", pRfd->rxColl);
+ return (ERROR);
+ }
+
+#if 0
+ printf ("Packet Actual Size = %d\n", pRfd->actCount);
+#endif
+
+ if (checkPacket (pCmdBlock->transmit.txData, pRfd->rxData, ETHERMTU) == ERROR) {
+ printf ("data verify error.\n");
+ return (ERROR);
+ }
+
+ if (forever_flag == FALSE)
+ printf ("data OK.\n");
+#endif
+
+ return (OK);
+}
+
+
+/*
+ * "Poor Man's Malloc" - return a pointer to a block of memory at least
+ * The block returned will have been zeroed.
+ */
+static char *malloc (int numBytes) /* number of bytes needed */
+{
+ volatile char *rtnPtr; /* ptr to return to caller */
+ long new_mem_pool; /* For figuring new pool base address */
+
+ rtnPtr = mem_pool; /* Return pointer to start of free pool */
+
+ /* Now calculate new base of free memory pool (round to >= 16 bytes) */
+ new_mem_pool = (UINT32) mem_pool;
+ new_mem_pool = ((new_mem_pool + numBytes + 0x10) & (~((UINT32) 0x0f)));
+ mem_pool = (volatile char *) new_mem_pool;
+
+ memset(rtnPtr, 0, numBytes);
+
+ return ((char *) rtnPtr);
+}
+
+
+/*
+ * Write "value" to PORT register of PRO/100.
+ */
+static void portWrite (UINT32 value)
+{
+ *PORT_REG(adapter[0]) = value;
+}
+
+
+/******************************************************************************
+*
+* sendCommand - send a command to the 82557 via the on-chip SCB
+*
+* Send a command to the 82557. On the 82557, the Channel Attention signal
+* has been replaced by an on-chip SCB. Accesses to the Command Word portion
+* of the SCB automatically forces the '557 to look at the various data
+* structures which make up its interface.
+*/
+static void sendCommand (UINT8 cuc, UINT8 ruc, UINT32 scb_general_ptr)
+{
+ register CMD_STAT_U temp_cmdStat;
+ volatile union cmdBlock *pBlock = (union cmdBlock *)scb_general_ptr;
+ volatile int loop_ctr;
+
+ /* Mask adapter interrupts to prevent the interrupt handler from
+ playing with the SCB */
+ mask_557_ints();
+
+ /* must wait for the Command Unit to become idle to prevent
+ us from issueing a CU_START to an active Command Unit */
+ for (loop_ctr = BUSY_WAIT_LIMIT; loop_ctr > 0; loop_ctr--) {
+ if ((pSCB->cmdStat.words.status & SCB_S_CUMASK) == SCB_S_CUIDLE)
+ break;
+ }
+ if (loop_ctr == 0) {
+ printf("sendCommand: CU won't go idle, command ignored\n");
+ unmask_557_ints();
+ return;
+ }
+
+ /* when setting the command word, read the current word from
+ the SCB and preserve the upper byte which contains the interrupt
+ mask bit */
+ temp_cmdStat.words.command = (pSCB->cmdStat.words.command & 0xff00);
+ temp_cmdStat.words.status = 0;
+
+ /* set up the Command and Receive unit commands */
+ temp_cmdStat.bits.cuc = cuc & 0x07;
+ temp_cmdStat.bits.ruc = ruc & 0x07;
+
+ /* Clear flag */
+ waitSem = 0;
+
+ /* write the General Pointer portion of the SCB first */
+ pSCB->scb_general_ptr = scb_general_ptr;
+
+ /* write the Command Word of the SCB */
+ pSCB->cmdStat.words.command = temp_cmdStat.words.command;
+
+ /* only wait for command which will complete immediately */
+ if ((scb_general_ptr != 0/* NULL*/) && (ruc != RU_START)) {
+ /* wait for command acceptance and completion */
+ for (loop_ctr = BUSY_WAIT_LIMIT; loop_ctr > 0; loop_ctr--) {
+ if ((pSCB->cmdStat.bits.cuc == 0) && (pBlock->nop.c == 1))
+ break;
+ }
+ if (loop_ctr == 0) {
+ printf("sendCommand: Timeout on command complete\n");
+ printf("Cmd Complete bit = %02X\n", pBlock->nop.c);
+ printf("CU command = 0x%02X\n", cuc);
+ printf("RU command = 0x%02X\n", ruc);
+ printf("SCB Gen Ptr = 0x%X\n", scb_general_ptr);
+ printf("scb status = 0x%04X\n", pSCB->cmdStat.words.status);
+ printf("scb command = 0x%04X\n", pSCB->cmdStat.words.command);
+ }
+ }
+
+#if 0
+ /* DEBUG */
+ printf("scb command = 0x%04X\n", pSCB->cmdStat.words.command);
+ printf("scb status = 0x%04X\n", pSCB->cmdStat.words.status);
+#endif
+
+ unmask_557_ints();
+ return;
+}
+
+
+/*
+ * Do a port reset on 82557.
+ */
+static void resetChip (void)
+{
+ portWrite (PORT_RESET); /* bits 4-31 not used for reset */
+
+ /* wait 5 msec for device to stabilize */
+ delay_ms(5);
+}
+
+
+/*
+ * Setup contents of a packet.
+ */
+static void makePacket (UINT8 *pPacket, int length)
+{
+ int byteNum; /* Current byte number */
+
+ for (byteNum = 0; byteNum < length; byteNum++)
+ *pPacket++ = byteNum + ' ';
+}
+
+
+/*
+ * Verify contents of a received packet to what was transmitted.
+ * Returns OK if they match, ERROR if not.
+ */
+static int checkPacket (UINT8 *pTxBuffer, UINT8 *pRxBuffer, int length)
+{
+ int byteNum; /* Current byte number */
+
+ for (byteNum = 0; byteNum < length; byteNum++) {
+ if (*pTxBuffer++ != *pRxBuffer++) {
+ printf("Error at byte 0x%x\n", byteNum);
+ printf("Expected 0x%02X, got 0x%02X\n", *(pTxBuffer - 1), *(pRxBuffer - 1));
+ return (ERROR);
+ }
+ }
+ return (OK);
+}
+
+
+/*
+ * Interrupt handler for i82557. It acknowledges the interrupt
+ * by setting the ACK bits in the command word and issuing a
+ * channel attention. It then updates the global status variable
+ * and gives the semaphore to wake up the main routine.
+ */
+int i557IntHandler (int arg) /* should return int */
+{
+ register CMD_STAT_U temp_cmdStat;
+ register int rxFlag = FALSE;
+
+ temp_cmdStat.words.status = pSCB->cmdStat.words.status;
+
+ /* check to see if it was the PRO/100 */
+ if (temp_cmdStat.words.status & I557_INT) {
+ /* Wait for command word to clear - indicates no pending commands */
+ while (pSCB->cmdStat.words.command)
+ ;
+
+ /* Update global status variable */
+ i557Status = temp_cmdStat.words.status;
+
+ /* If the interrupt was due to a received frame... */
+ if (temp_cmdStat.bits.statack_fr)
+ rxFlag = TRUE;
+
+ temp_cmdStat.words.status = temp_cmdStat.words.status & I557_INT;
+
+ /* Acknowledge interrupt by setting ack bits */
+ pSCB->cmdStat.words.status = temp_cmdStat.words.status;
+
+ /* Wait for command word to clear - indicates IACK accepted */
+ while (pSCB->cmdStat.words.command)
+ ;
+
+ /* Update global status variable and unblock task */
+ waitSem = 1;
+
+ if (rxFlag == TRUE)
+ rxSem = 1;
+
+ return(1); /* serviced - return 1 */
+ }
+ return(0); /* nothing serviced - return 0 */
+}
+
+
+
+/*
+ * Take the semaphore and block until i557 interrupt or timeout.
+ * Returns OK if an interrupt occured, ERROR if a timeout.
+ */
+static int waitForInt(void)
+{
+ int num_ms = 0;
+
+ while ((waitSem == 0) && (num_ms != 2000)) { /* wait max 2secs for the interrupt */
+ delay_ms(1);
+ num_ms++;
+ }
+
+ if (!waitSem) {
+ printf("Wait error!\n");
+ return (ERROR);
+ } else
+ return (OK);
+}
+
+
+static int waitForRxInt(void)
+{
+ int num_ms = 0;
+
+ while ((rxSem == 0) && (num_ms != 2000)) { /* wait max 2secs for the interrupt */
+ delay_ms(1);
+ num_ms++;
+ }
+
+ if (!rxSem) {
+ printf("Rx Wait error!\n");
+ return (ERROR);
+ } else
+ return (OK);
+}
+
+
+static UINT16 readMDI (int unit, UINT8 phyAdd, UINT8 regAdd)
+{
+ register MDI_CONTROL_U mdiCtrl;
+ int num_ms = 0;
+
+ /* prepare for the MDI operation */
+ mdiCtrl.bits.ready = MDI_NOT_READY;
+ mdiCtrl.bits.intEnab = MDI_POLLED; /* no interrupts */
+ mdiCtrl.bits.op = MDI_READ_OP;
+ mdiCtrl.bits.phyAdd = phyAdd & 0x1f;
+ mdiCtrl.bits.regAdd = regAdd & 0x1f;
+
+ /* start the operation */
+ *MDI_CTL_REG(adapter[unit]) = mdiCtrl.word;
+
+ /* delay a bit */
+ delay_ms(1);
+
+ /* poll for completion */
+ mdiCtrl.word = *MDI_CTL_REG(adapter[unit]);
+
+ while ((mdiCtrl.bits.ready == MDI_NOT_READY) && (num_ms != 2000)) { /* wait max 2secs */
+ mdiCtrl.word = *MDI_CTL_REG(adapter[unit]);
+ delay_ms(1);
+ num_ms++;
+ }
+
+ if (num_ms >= 2000) {
+ printf ("readMDI Timeout!\n");
+ return (-1);
+ } else
+ return ((UINT16)mdiCtrl.bits.data);
+}
+
+
+static void writeMDI (int unit, UINT8 phyAdd, UINT8 regAdd, UINT16 data)
+{
+ register MDI_CONTROL_U mdiCtrl;
+ int num_ms = 0;
+
+ /* prepare for the MDI operation */
+ mdiCtrl.bits.ready = MDI_NOT_READY;
+ mdiCtrl.bits.intEnab = MDI_POLLED; /* no interrupts */
+ mdiCtrl.bits.op = MDI_WRITE_OP;
+ mdiCtrl.bits.phyAdd = phyAdd & 0x1f;
+ mdiCtrl.bits.regAdd = regAdd & 0x1f;
+ mdiCtrl.bits.data = data & 0xffff;
+
+ /* start the operation */
+ *MDI_CTL_REG(adapter[unit]) = mdiCtrl.word;
+
+ /* delay a bit */
+ delay_ms(1);
+
+ /* poll for completion */
+ mdiCtrl.word = *MDI_CTL_REG(adapter[unit]);
+
+ while ((mdiCtrl.bits.ready == MDI_NOT_READY) && (num_ms != 2000)) {
+ mdiCtrl.word = *MDI_CTL_REG(adapter[unit]);
+ delay_ms(1);
+ num_ms++;
+ }
+ if (num_ms >= 2000)
+ printf ("writeMDI Timeout!\n");
+
+ return;
+}
+
+static int get_ether_addr (int unit,
+ UINT8 *buffer,
+ int print_flag) /* TRUE to print the information */
+{
+ UINT16 temp_node_addr[3] = {0,0,0};
+ register int i;
+
+ /* Get the adapter's node address */
+ if (eeprom_read (adapter[unit],IA_OFFSET,temp_node_addr,3) != OK) {
+ printf ("Error reading the IA address from Serial EEPROM.\n");
+ return (ERROR);
+ }
+
+ buffer[0] = (UINT8)(temp_node_addr[0] & 0x00ff);
+ buffer[1] = (UINT8)((temp_node_addr[0] & 0xff00)>>8);
+ buffer[2] = (UINT8)(temp_node_addr[1] & 0x00ff);
+ buffer[3] = (UINT8)((temp_node_addr[1] & 0xff00)>>8);
+ buffer[4] = (UINT8)(temp_node_addr[2] & 0x00ff);
+ buffer[5] = (UINT8)((temp_node_addr[2] & 0xff00)>>8);
+
+ if (print_flag == TRUE) {
+ printf("Ethernet Address = [ ");
+ for (i=0; i<6; i++) {
+ printf("0x%02X ", buffer[i]);
+ }
+ printf("]\n\n");
+ }
+ return (OK);
+}
+
diff --git a/ecos/packages/hal/arm/xscale/iq80310/current/src/diag/ether_test.h b/ecos/packages/hal/arm/xscale/iq80310/current/src/diag/ether_test.h
new file mode 100644
index 0000000..2b4c6c9
--- /dev/null
+++ b/ecos/packages/hal/arm/xscale/iq80310/current/src/diag/ether_test.h
@@ -0,0 +1,612 @@
+//=============================================================================
+//
+// ether_test.h - Cyclone Diagnostics
+//
+//=============================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): Scott Coulter, Jeff Frazier, Eric Breeden
+// Contributors:
+// Date: 2001-01-25
+// Purpose:
+// Description:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================*/
+
+
+#define ETHERMTU 1500
+#define OK 0
+#define ERROR -1
+
+#ifndef TRUE
+#define TRUE 1
+#endif
+
+#ifndef FALSE
+#define FALSE 0
+#endif
+
+#ifndef NULL
+#define NULL 0
+#endif
+
+/* Starting location for ether_test private malloc pool */
+#define ETHER_MEM_POOL 0xa0400000 /* above top of diags. BE CAREFUL */
+
+/* Length of interrupt time-out loops. */
+#define MAX_DELAY 6000000
+
+/* PCI Runtime Register offsets */
+#define SCB_OFFSET 0
+#define SCB_STAT_REG(n) ((UINT16 *)(n + 0x00))
+#define SCB_CMD_REG(n) ((UINT16 *)(n + 0x02))
+#define SCB_GENPTR_REG(n) ((UINT32 *)(n + 0x04))
+#define PORT_REG(n) ((UINT32 *)(n + 0x08))
+#define FLASH_CTL_REG(n) ((UINT16 *)(n + 0x0c))
+#define EEPROM_CTL_REG(n) ((UINT16 *)(n + 0x0e))
+#define MDI_CTL_REG(n) ((UINT32 *)(n + 0x10))
+#define RXBC_REG(n) ((UINT32 *)(n + 0x14))
+
+/* PORT* commands (lower 4 bits) */
+#define PORT_RESET ((UINT32) 0x0)
+#define PORT_SELF_TEST ((UINT32) 0x1)
+#define PORT_DUMP ((UINT32) 0x3)
+
+/* Individual Address offset into '557's serial eeprom */
+#define IA_OFFSET 0
+
+/* Command codes for the command fields of command descriptor blocks */
+
+#define NOP 0
+#define IA_SETUP 1
+#define CONFIGURE 2
+#define MC_SETUP 3
+#define TRANSMIT 4
+#define TDR 5
+#define DUMP 6
+#define DIAGNOSE 7
+
+/* Commands for CUC in command word of SCB */
+#define CU_NOP 0
+#define CU_START 1
+#define CU_RESUME 2
+#define LOAD_DUMPCTR_ADDR 4 /* Load Dump Counters Address */
+#define DUMP_STAT_COUNTERS 5 /* Dump Statistical Counters */
+#define LOAD_CU_BASE 6 /* Load CU Base Register */
+#define DUMP_RESET_COUNTERS 7 /* Dump and Reset Statistical
+ Counters */
+/* Commands for RUC in command word of SCB */
+#define RU_NOP 0
+#define RU_START 1
+#define RU_RESUME 2
+#define RU_ABORT 4
+#define LOAD_HDS 5 /* Load Header Data Size */
+#define LOAD_RU_BASE 6 /* Load RU Base Register */
+#define RBD_RESUME 7 /* Resume frame reception */
+
+/* Misc. defines */
+#define END_OF_LIST 1
+#define BUSY 1
+
+/* RU Status field */
+#define RU_IDLE 0x0
+#define RU_SUSPENDED 0x1
+#define RU_NORESOURCE 0x2
+#define RU_READY 0x4
+#define RU_SUSP_NORBD 0x5
+#define RU_NORSRC_NORBD 0x6
+#define RU_READY_NORBD 0xc
+
+/* Mask for interrupt status bits in SCB - six possible sources */
+#define I557_INT 0xfc00
+
+/* MDI definitions */
+#define MDI_WRITE_OP 0x01
+#define MDI_READ_OP 0x02
+#define MDI_NOT_READY 0
+#define MDI_POLLED 0
+#define MDI_DEFAULT_PHY_ADDR 1 /* when only one PHY */
+
+/* PHY device register addresses */
+
+/* generic register addresses */
+#define MDI_PHY_CTRL 0
+#define MDI_PHY_STAT 1
+#define MDI_PHY_ID_1 2
+#define MDI_PHY_ID_2 3
+#define MDI_PHY_AUTO_AD 4
+#define MDI_PHY_AUTO_LNK 5
+#define MDI_PHY_AUTO_EXP 6
+
+#define I82555_PHY_ID 0x02a80150
+#define ICS1890_PHY_ID 0x0015f420
+#define DP83840_PHY_ID 0x20005c00
+#define I82553_PHY_ID 0x02a80350
+#define I82553_REVAB_PHY_ID 0x03e00000
+
+/* I82555/558 Status and Control register */
+#define I82555_STATCTRL_REG 0x10
+#define I82555_100_MBPS (1 << 1)
+#define I82555_10_MBPS (0 << 1)
+
+#define REVISION_MASK 0xf
+
+/* DP83840 specific register information */
+#define DP83840_PCR_REG 0x17
+#define PCR_TXREADY_SEL (1 << 10)
+#define PCR_FCONNECT (1 << 5)
+
+/* ICS1890 QuickPoll Detailed Status register */
+#define ICS1890_QUICKPOLL_REG 0x11
+#define QUICK_100_MBPS (1 << 15)
+#define QUICK_10_MBPS (0 << 15)
+#define QUICK_LINK_VALID (1 << 0)
+#define QUICK_LINK_INVALID (0 << 0)
+
+#define DP83840_PHY_ADDR_REG 0x19
+#define PHY_ADDR_CON_STATUS (1 << 5)
+#define PHY_ADDR_SPEED_10_MBPS (1 << 6)
+#define PHY_ADDR_SPEED_100_MBPS (0 << 6)
+
+#define DP83840_LOOPBACK_REG 0x18
+#define TWISTER_LOOPBACK (0x1 << 8)
+#define REMOTE_LOOPBACK (0x2 << 8)
+#define CLEAR_LOOP_BITS ~(TWISTER_LOOPBACK | REMOTE_LOOPBACK)
+
+/* 82553 specific register information */
+#define I82553_PHY_EXT_REG0 0x10
+#define EXT_REG0_100_MBPS (1 << 1)
+#define GET_REV_CNTR(n) ((n & 0x00e0) >> 5)
+#define I82553_PHY_EXT_REG1 0x14
+
+/* MDI Control Register bits */
+#define MDI_CTRL_COLL_TEST (1 << 7)
+#define MDI_CTRL_FULL_DUPLEX (1 << 8)
+#define MDI_CTRL_RESTART_AUTO (1 << 9)
+#define MDI_CTRL_ISOLATE (1 << 10)
+#define MDI_CTRL_POWER_DOWN (1 << 11)
+#define MDI_CTRL_AUTO_ENAB (1 << 12)
+#define MDI_CTRL_AUTO_DISAB (0 << 12)
+#define MDI_CTRL_100_MBPS (1 << 13)
+#define MDI_CTRL_10_MBPS (0 << 13)
+#define MDI_CTRL_LOOPBACK (1 << 14)
+#define MDI_CTRL_RESET (1 << 15)
+
+/* MDI Status Register bits */
+#define MDI_STAT_EXTENDED (1 << 0)
+#define MDI_STAT_JABBER (1 << 1)
+#define MDI_STAT_LINK (1 << 2)
+#define MDI_STAT_AUTO_CAPABLE (1 << 3)
+#define MDI_STAT_REMOTE_FLT (1 << 4)
+#define MDI_STAT_AUTO_COMPLETE (1 << 5)
+#define MDI_STAT_10BASET_HALF (1 << 11)
+#define MDI_STAT_10BASET_FULL (1 << 12)
+#define MDI_STAT_TX_HALF (1 << 13)
+#define MDI_STAT_TX_FULL (1 << 14)
+#define MDI_STAT_T4_CAPABLE (1 << 15)
+
+/*
+ * Structure allignments. All addresses passed to the 557 must be
+ * even (bit 0 = 0), EXCEPT for addresses passed by the PORT*
+ * function (self-test address & dump address, which must be 16-byte aligned.
+ */
+
+#define SELF_TEST_ALIGN 16
+#define DUMP_ALIGN 16
+#define DEF_ALIGN 4
+
+/*
+ * Bit definitions for the configure command. NOTE: Byte offsets are
+ * offsets from the start of the structure (8 and up) to correspond
+ * with the offsets in the PRO/100 PCI Adapter manual.
+ */
+
+/* Byte 0 */
+#define BYTE_COUNT 0x16 /* use all 22 configure bytes */
+#define CONFIG_BYTE_00 (BYTE_COUNT)
+
+/* Byte 1 */
+#define RX_FIFO_LIMIT 0x08
+#define CONFIG_BYTE_01 (RX_FIFO_LIMIT)
+
+/* Byte 2 */
+#define ADAPT_IFS 0x00
+#define CONFIG_BYTE_02 (ADAPT_IFS)
+
+/* Byte 3 - must be 0x00 */
+#define CONFIG_BYTE_03 (0x00)
+
+/* Byte 4 */
+#define RX_DMA_BCOUNT 0x00
+#define CONFIG_BYTE_04 (RX_DMA_BCOUNT)
+
+/* Byte 5 */
+#define TX_DMA_BCOUNT 0x00
+#define DMA_BCOUNT_ENAB 0x80
+#define CONFIG_BYTE_05 (DMA_BCOUNT_ENAB | TX_DMA_BCOUNT)
+
+/* Byte 6 */
+#define NO_LATE_SCB 0x00
+#define NO_TNO_INT 0x00 /* no interrupt on xmit failure */
+#define INT_CU_IDLE 0x08 /* interrupt when CU goes idle */
+#define NO_SV_BAD_FRAME 0x00 /* don't save bad frames */
+#define DISCARD_RX_OVER 0x00 /* discard overrun frames */
+#define BYTE6_REQUD 0x32 /* required "1" bits */
+
+#define CONFIG_BYTE_06 (NO_LATE_SCB | NO_TNO_INT | INT_CU_IDLE |\
+ NO_SV_BAD_FRAME | DISCARD_RX_OVER | BYTE6_REQUD)
+
+/* Byte 7 */
+#define DISCARD_SHORT_RX 0x00 /* discard short rx frames */
+#define ONE_URUN_RETRY 0x02 /* one underrun retry */
+#define CONFIG_BYTE_07 (DISCARD_SHORT_RX | ONE_URUN_RETRY)
+
+/* Byte 8 */
+#define USE_503_MODE 0x00
+#define USE_MII_MODE 0x01
+#define CONFIG_BYTE_08 (USE_MII_MODE)
+
+/* Byte 9 */
+#define CONFIG_BYTE_09 (0x00)
+
+/* Byte 10 */
+#define INSERT_SRC_ADDR 0 /* Source address comes from IA of '557 */
+#define PREAMBLE_LEN 0x20 /* 7 bytes */
+#define NO_LOOP_BACK 0x00
+#define INT_LOOP_BACK 0x40
+#define EXT_LOOP_BACK 0xc0
+#define BYTE10_REQUD 0x06 /* required "1" bits */
+#define CONFIG_BYTE_10 (NO_LOOP_BACK | PREAMBLE_LEN | INSERT_SRC_ADDR | BYTE10_REQUD)
+
+/* Byte 11 */
+#define LIN_PRIORITY 0 /* normal CSMA/CD */
+#define CONFIG_BYTE_11 (LIN_PRIORITY)
+
+/* Byte 12 */
+#define LIN_PRIORITY_MODE 0
+#define IF_SPACING 96 /* inter-frame spacing */
+#define CONFIG_BYTE_12 (IF_SPACING | LIN_PRIORITY_MODE)
+
+/* Byte 13 */
+#define CONFIG_BYTE_13 (0x00)
+
+/* Byte 14 */
+#define CONFIG_BYTE_14 (0xf2)
+
+/* Byte 15 */
+#define PROM_MODE 0 /* not promiscuous */
+#define BROADCAST 0 /* disabled */
+#define CRS 0x80 /* CDT = carrier */
+#define BYTE15_REQUD 0x48 /* required "1" bits */
+#define CONFIG_BYTE_15 (PROM_MODE | BROADCAST | CRS | BYTE15_REQUD)
+
+/* Byte 16 */
+#define CONFIG_BYTE_16 (0x00)
+
+/* Byte 17 */
+#define CONFIG_BYTE_17 (0x40)
+
+/* Byte 18 */
+#define STRIPPING_DISABLE 0x00
+#define STRIPPING_ENABLE 0x01
+#define PADDING_ENABLE 0x02
+#define XFER_CRC 0x04 /* store CRC */
+#define NO_XFER_CRC 0x00
+#define BYTE18_REQUD 0xf0 /* required "1" bits */
+#define CONFIG_BYTE_18 (NO_XFER_CRC | PADDING_ENABLE | STRIPPING_ENABLE | BYTE18_REQUD)
+
+/* Byte 19 */
+#define NO_FORCE_FDX 0x00
+#define FORCE_FDX 0x40
+#define FDX_PIN_ENAB 0x80
+#define CONFIG_BYTE_19_10T FORCE_FDX
+#define CONFIG_BYTE_19_100T NO_FORCE_FDX
+
+/* Byte 20 */
+#define NO_MULTI_IA 0x00
+#define CONFIG_BYTE_20 (NO_MULTI_IA)
+
+/* Byte 21 */
+#define NO_MULTI_ALL 0x00
+#define CONFIG_BYTE_21 (NO_MULTI_ALL)
+
+#define SCB_S_CUMASK 0x00c0 /* state mask */
+#define SCB_S_CUIDLE (0x00 << 6) /* CU is idle */
+#define SCB_S_CUSUSP (0x01 << 6) /* CU is suspended */
+#define SCB_S_CUACTIVE (0x02 << 6) /* CU is active */
+#define SCB_S_CURSV1 (0x03 << 6) /* reserved */
+
+/*
+ * 82557 structures. NOTE: the 557 is used in 32-bit linear addressing
+ * mode. See alignment restrictions above.
+ */
+
+/* Result of PORT* self-test command - MUST be 16 byte aligned! */
+struct selfTest {
+ UINT32 romSig; /* signature of rom */
+ union { /* Flag bits - as UINT32 or field */
+ struct {
+ UINT32 rsrv1 : 2;
+ UINT32 romTest : 1;
+ UINT32 regTest : 1;
+ UINT32 rsrv2 : 1;
+ UINT32 diagnTest : 1;
+ UINT32 rsrv3 : 6;
+ UINT32 selfTest : 1;
+ UINT32 rsrv4 : 19;
+ } bits;
+ UINT32 word2;
+ } u;
+};
+
+/* MDI Control Register */
+typedef union
+{
+ struct
+ {
+ UINT32 data : 16; /* data to write or data read */
+ UINT32 regAdd : 5; /* PHY register address */
+ UINT32 phyAdd : 5; /* PHY address */
+ UINT32 op : 2; /* opcode, 1 for MDI write, 2 for MDI read */
+ UINT32 ready : 1; /* 1 = operation complete */
+ UINT32 intEnab : 1; /* 1 = interrupt at end of cycle */
+ UINT32 rsrv : 2; /* reserved */
+ } bits;
+ UINT32 word;
+} MDI_CONTROL_U;
+
+/* Command/Status Word of SCB */
+typedef union
+{
+ struct
+ {
+ UINT32 rsrv1 : 2; /* Reserved */
+ UINT32 rus : 4; /* Receive unit status */
+ UINT32 cus : 2; /* Command unit status */
+ UINT32 rsrv2 : 2; /* Reserved */
+ UINT32 statack_swi : 1; /* Software generated int. */
+ UINT32 statack_mdi : 1; /* MDI read/write complete */
+ UINT32 statack_rnr : 1; /* RU not ready */
+ UINT32 statack_cna : 1; /* CU not active */
+ UINT32 statack_fr : 1; /* Frame reception done */
+ UINT32 statack_cx_tno : 1; /* Cmd exec completed */
+ UINT32 ruc : 3; /* Receive unit command */
+ UINT32 rsrv3 : 1; /* Reserved */
+ UINT32 cuc : 3; /* Command unit command */
+ UINT32 rsrv4 : 1; /* Reserved */
+ UINT32 m : 1; /* Interrupt mask bit */
+ UINT32 si : 1; /* Software generated int. */
+ UINT32 rsrv5 : 6; /* Reserved */
+ } bits;
+ struct
+ {
+ UINT16 status;
+ UINT16 command;
+ } words;
+} CMD_STAT_U;
+
+/* System command block - on chip for the 82557 */
+struct SCBtype
+{
+ CMD_STAT_U cmdStat;
+ UINT32 scb_general_ptr; /* SCB General Pointer */
+};
+
+/* Command blocks - declared as a union; some commands have different fields */
+union cmdBlock {
+ /* No operation */
+ struct {
+ UINT32 rsrv1 : 13; /* reserved bits (set to 0) */
+ UINT32 ok : 1; /* 1 = command completed, no error */
+ UINT32 rsrv2 : 1; /* reserved bits (set to 0) */
+ UINT32 c : 1; /* 1 = command completed */
+ UINT32 code : 3; /* command code (0 = NOP) */
+ UINT32 rsrv3 : 10; /* reserved bits (set to 0) */
+ UINT32 i : 1; /* 1 = interrupt upon completion */
+ UINT32 s : 1; /* 1 = suspend CU upon completion */
+ UINT32 el : 1; /* 1 = last cmdBlock in list */
+ union cmdBlock *link; /* next block in list */
+ } nop;
+ /* Individual address setup */
+ struct {
+ UINT32 rsrv1 : 13; /* reserved bits (set to 0) */
+ UINT32 ok : 1; /* 1 = command completed, no error */
+ UINT32 rsrv2 : 1; /* reserved bits (set to 0) */
+ UINT32 c : 1; /* 1 = command completed */
+ UINT32 code : 3; /* command code (1 = ia setup) */
+ UINT32 rsrv3 : 10; /* reserved bits (set to 0) */
+ UINT32 i : 1; /* 1 = interrupt upon completion */
+ UINT32 s : 1; /* 1 = suspend CU upon completion */
+ UINT32 el : 1; /* 1 = last cmdBlock in list */
+ union cmdBlock *link; /* next block in list */
+ UINT8 enetAddr[6]; /* hardware ethernet address */
+ UINT16 rsrv4; /* padding */
+ } iaSetup;
+ /* Configure */
+ struct {
+ UINT32 rsrv1 : 13; /* reserved bits (set to 0) */
+ UINT32 ok : 1; /* 1 = command completed, no error */
+ UINT32 rsrv2 : 1; /* reserved bits (set to 0) */
+ UINT32 c : 1; /* 1 = command completed */
+ UINT32 code : 3; /* command code (2 = configure) */
+ UINT32 rsrv3 : 10; /* reserved bits (set to 0) */
+ UINT32 i : 1; /* 1 = interrupt upon completion */
+ UINT32 s : 1; /* 1 = suspend CU upon completion */
+ UINT32 el : 1; /* 1 = last cmdBlock in list */
+ union cmdBlock *link; /* next block in list */
+ UINT8 configData[20]; /* configuration data */
+ } configure;
+ /* Multicast address setup */
+ struct {
+ UINT32 rsrv1 : 13; /* reserved bits (set to 0) */
+ UINT32 ok : 1; /* 1 = command completed, no error */
+ UINT32 rsrv2 : 1; /* reserved bits (set to 0) */
+ UINT32 c : 1; /* 1 = command completed */
+ UINT32 code : 3; /* command code (3 = mc setup) */
+ UINT32 rsrv3 : 10; /* reserved bits (set to 0) */
+ UINT32 i : 1; /* 1 = interrupt upon completion */
+ UINT32 s : 1; /* 1 = suspend CU upon completion */
+ UINT32 el : 1; /* 1 = last cmdBlock in list */
+ union cmdBlock *link; /* next block in list */
+ UINT16 mcCount; /* # of bytes in mcAddrList[] */
+ UINT8 mcAddrList[6]; /* list of multicast addresses */
+ } mcSetup;
+ /* Transmit */
+ struct {
+ UINT32 rsrv1 : 12; /* reserved bits (set to 0) */
+ UINT32 u : 1; /* 1 = underrun was encountered */
+ UINT32 ok : 1; /* 1 = command completed, no error */
+ UINT32 rsrv2 : 1; /* reserved bits (set to 0) */
+ UINT32 c : 1; /* 1 = command completed */
+ UINT32 code : 3; /* command code (4 = transmit) */
+ UINT32 sf : 1; /* 1 = flexible mode */
+ UINT32 rsrv3 : 9; /* reserved bits (set to 0) */
+ UINT32 i : 1; /* 1 = interrupt upon completion */
+ UINT32 s : 1; /* 1 = suspend CU upon completion */
+ UINT32 el : 1; /* 1 = last cmdBlock in list */
+ union cmdBlock *link; /* next block in list */
+ UINT8 *tbdAddr; /* tx buf addr; all 1s for simp mode */
+ UINT32 tcbCount : 14; /* # bytes to be tx from cmd block */
+ UINT32 rsrv4 : 1; /* reserved (set to 0) */
+ UINT32 eof : 1; /* 1 = entire frame in cmd block */
+ UINT8 tx_threshold; /* # of bytes in FIFO before xmission */
+ UINT8 tbd_number; /* # of tx. buffers in TBD array */
+ UINT8 destAddr[6]; /* destination hardware address */
+ UINT16 length; /* 802.3 packet length (from packet) */
+ UINT8 txData[ETHERMTU]; /* optional data to tx */
+ } transmit;
+ /* Dump 82557 registers */
+ struct {
+ UINT32 rsrv1 : 13; /* reserved bits (set to 0) */
+ UINT32 ok : 1; /* 1 = command completed, no error */
+ UINT32 rsrv2 : 1; /* reserved bits (set to 0) */
+ UINT32 c : 1; /* 1 = command completed */
+ UINT32 code : 3; /* command code (6 = dump) */
+ UINT32 rsrv3 : 10; /* reserved bits (set to 0) */
+ UINT32 i : 1; /* 1 = interrupt upon completion */
+ UINT32 s : 1; /* 1 = suspend CU upon completion */
+ UINT32 el : 1; /* 1 = last cmdBlock in list */
+ union cmdBlock *link; /* next block in list */
+ UINT8 *bufAddr; /* where to dump registers */
+ } dump;
+ /* Diagnose - perform self test */
+ struct {
+ UINT32 rsrv1 : 11; /* reserved bits (set to 0) */
+ UINT32 f : 1; /* 1 = self test failed */
+ UINT32 rsrv2 : 1; /* reserved bits (set to 0) */
+ UINT32 ok : 1; /* 1 = command completed, no error */
+ UINT32 rsrv3 : 1; /* reserved bits (set to 0) */
+ UINT32 c : 1; /* 1 = command completed */
+ UINT32 code : 3; /* command code (7 = diagnose) */
+ UINT32 rsrv4 : 10; /* reserved bits (set to 0) */
+ UINT32 i : 1; /* 1 = interrupt upon completion */
+ UINT32 s : 1; /* 1 = suspend CU upon completion */
+ UINT32 el : 1; /* 1 = last cmdBlock in list */
+ union cmdBlock *link; /* next block in list */
+ } diagnose;
+};
+
+/* Receive frame descriptors (uses simplified memory structure) */
+struct rfd {
+ UINT32 rxColl : 1; /* 1 = collision on reception */
+ UINT32 iaMatch : 1; /* Dest addr matched chip's hardware addr */
+ UINT32 rsrv1 : 2; /* reserved bits (set to 0) */
+ UINT32 rxErr : 1; /* RX_ER pin asserted during frame reception */
+ UINT32 typeFrame : 1; /* Type field of pkt. indicates a TYPE frame */
+ UINT32 rsrv2 : 1; /* reserved bits (set to 0) */
+ UINT32 frameTooshort : 1;
+ UINT32 dmaOverrun : 1; /* DMA overrun (couldn't get local bus) */
+ UINT32 noRsrc : 1; /* No resources (out of buffer space) */
+ UINT32 alignErr : 1; /* CRC error on misaligned frame */
+ UINT32 crcErr : 1; /* CRC error on aligned frame */
+ UINT32 rsrv3 : 1; /* reserved bits (set to 0) */
+ UINT32 ok : 1; /* 1 = command completed, no error */
+ UINT32 rsrv4 : 1; /* reserved bits (set to 0) */
+ UINT32 c : 1; /* 1 = command completed */
+ UINT32 rsrv5 : 3; /* reserved bits (set to 0) */
+ UINT32 sf : 1; /* 1 = Flexible mode */
+ UINT32 h : 1; /* 1 = Header RFD */
+ UINT32 rsrv6 : 9; /* reserved bits (set to 0) */
+ UINT32 s : 1; /* 1 = suspend CU upon completion */
+ UINT32 el : 1; /* 1 = last cmdBlock in list */
+ union cmdBlock *link; /* next block in list */
+ UINT8 *rbdAddr; /* rx buf desc addr; all 1s for simple mode */
+ UINT32 actCount : 14; /* # bytes in this buffer (set by 82557) */
+ UINT32 f : 1; /* 1 = buffer used */
+ UINT32 eof : 1; /* 1 = last buffer for this frame */
+ UINT32 size : 14; /* # bytes avail in this buffer (set by CPU) */
+ UINT32 rsrv7 : 2; /* reserved bits (set to 0) */
+ UINT8 destAddr[6]; /* destination address */
+ UINT8 sourceAddr[6]; /* source address */
+ UINT16 length; /* 802.3 packet length (from packet) */
+ UINT8 rxData[ETHERMTU]; /* optional data (simplified mode) */
+};
+
+/* Forward declarations */
+static void portWrite (UINT32 val);
+static void resetChip (void);
+static void makePacket (UINT8 *, int);
+static int checkPacket (UINT8 *, UINT8 *, int);
+static int i557IntHandler (int);
+static int waitForInt(void);
+
+static void sendCommand (UINT8 cuc,
+ UINT8 ruc,
+ UINT32 scb_general_ptr);
+
+static UINT16 readMDI (
+ int unit,
+ UINT8 phyAdd,
+ UINT8 regAdd
+ );
+
+static void writeMDI (
+ int unit,
+ UINT8 phyAdd,
+ UINT8 regAdd,
+ UINT16 data
+ );
+
+static int initPHY (UINT32 device_type, int loop_mode);
+
+static int get_ether_addr (
+ int unit,
+ UINT8 *buffer,
+ int print_flag /* TRUE to print the information */
+ );
+
+
diff --git a/ecos/packages/hal/arm/xscale/iq80310/current/src/diag/external_timer.c b/ecos/packages/hal/arm/xscale/iq80310/current/src/diag/external_timer.c
new file mode 100644
index 0000000..95c2ddb
--- /dev/null
+++ b/ecos/packages/hal/arm/xscale/iq80310/current/src/diag/external_timer.c
@@ -0,0 +1,419 @@
+//=============================================================================
+//
+// external_timer.c - Cyclone Diagnostics
+//
+//=============================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): Scott Coulter, Jeff Frazier, Eric Breeden
+// Contributors:
+// Date: 2001-01-25
+// Purpose:
+// Description:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================*/
+
+#include <redboot.h>
+#include <cyg/hal/hal_iop310.h> // Hardware definitions
+#include <cyg/hal/hal_intr.h> // Interrupt names
+#include "iq80310.h"
+#include "test_menu.h"
+
+extern int enable_external_interrupt (int int_id);
+extern int disable_external_interrupt (int int_id);
+extern int isr_connect(int int_num, void (*handler)(int), int arg);
+extern int isr_disconnect(int int_num);
+extern char xgetchar(void);
+
+volatile int timer_ticks;
+
+/* interrupt handler for the PAL-based external timer */
+void ext_timer_handler (int arg)
+{
+ /* increment tick counter */
+ timer_ticks++;
+
+ /* to clear the timer interrupt, clear the timer interrupt
+ enable, then re-set the int. enable bit */
+ /* 01/05/01 jwf */
+ /* _restart_tmr(); */
+
+ EXT_TIMER_INT_DISAB();
+ EXT_TIMER_INT_ENAB();
+
+ return;
+}
+
+
+/* timer count must be written 8 bits at a time */
+void write_timer_count (UINT32 count)
+{
+ UINT8 cnt_word;
+
+ /* first ensure that there are only 22 bits of count data */
+ count &= 0x003fffff;
+
+ /* grab least significant 8 bits of timer value */
+ cnt_word = (UINT8)(count & 0xff);
+ *TIMER_LA0_REG_ADDR = cnt_word;
+
+ /* grab next 8 bits of timer value */
+ count = (count >> 8);
+ cnt_word = (UINT8)(count & 0xff);
+ *TIMER_LA1_REG_ADDR = cnt_word;
+
+ /* grab last 6 bits of timer value */
+ count = (count >> 8);
+ cnt_word = (UINT8)(count & 0x3f);
+ *TIMER_LA2_REG_ADDR = cnt_word;
+
+ return;
+}
+
+/* timer must be read 6 bits at a time */
+UINT32 read_timer_count (void)
+{
+ UINT8 timer_cnt0, timer_cnt1, timer_cnt2, timer_cnt3;
+ UINT8 timer_byte0, timer_byte1, timer_byte2;
+ UINT32 count;
+
+ /* first read latches the count */
+ timer_cnt0 = (*TIMER_LA0_REG_ADDR & TIMER_COUNT_MASK);
+ timer_cnt1 = (*TIMER_LA1_REG_ADDR & TIMER_COUNT_MASK);
+ timer_cnt2 = (*TIMER_LA2_REG_ADDR & TIMER_COUNT_MASK);
+ timer_cnt3 = (*TIMER_LA3_REG_ADDR & 0xf); /* only 4 bits in most sig. */
+
+ /* now build up the count value */
+ timer_byte0 = (((timer_cnt0 & 0x20) >> 1) | (timer_cnt0 & 0x1f));
+ timer_byte1 = (((timer_cnt1 & 0x20) >> 1) | (timer_cnt1 & 0x1f));
+ timer_byte2 = (((timer_cnt2 & 0x20) >> 1) | (timer_cnt2 & 0x1f));
+
+ count = ((timer_cnt3 << 18) | (timer_byte2 << 12) | (timer_byte1 << 6) |
+ timer_byte0);
+
+ return (count);
+}
+
+
+/* 12/18/00 jwf */
+/* This test reads the timer la0-la3 registers on the fly while an up count is in progress. */
+void counter_test (void)
+{
+ /* ff max, b0-b7, b0-b7 contain timer load data */
+ unsigned char TmrLa0Write=0xff;
+ /* ff max, b8-b15, b0-b7 contain timer load data */
+ unsigned char TmrLa1Write=0xff;
+ /* 3f max, b16-b21, b0-b5 contain timer load data */
+ unsigned char TmrLa2Write=0x3f;
+ unsigned char TmrLa3Write=0x00; /* x - don't care */
+ unsigned long int TmrLa0Read=0;
+ unsigned long int TmrLa1Read=0;
+ unsigned long int TmrLa2Read=0;
+ unsigned long int TmrLa3Read=0;
+ unsigned long int temp3=0;
+ unsigned long int temp4=0;
+ unsigned long int CntInit=0;
+ unsigned long int CurrentCount;
+ unsigned long int LastCount = 0;
+ unsigned long int LastLastCount = 0;
+ char Error = FALSE;
+ unsigned long int sample;
+ unsigned long int index;
+ const int MAX_N_PASSES = 10; /* N times the counter shall wrap around */
+ /* N samples to cover the full range of count,
+ 0x3fffff/0x40 = 0xffff <--> 65535d, use 65536 to guarantee
+ a counter wrap around occurs */
+ const unsigned long int MAX_N_SAMPLES = 65536;
+ /* allocate 4 bytes per sample for a 0x0 - 0x3fffff count range to
+ hold contents of registers LA0-LA3 */
+ unsigned long int MAX_N_SIZE = MAX_N_PASSES * MAX_N_SAMPLES * 4;
+ unsigned char *data;
+
+ // Arbitrarily pick a spot in memory.
+ // RedBoot won't ever use more than 1MB.
+ data = (unsigned char *) MEMBASE_DRAM + (1*1024*1024);
+
+ if (data != NULL) {
+ printf("Allocated %d bytes\n", MAX_N_SIZE);
+
+ /* load control data to disable timer enable b0=0 and timer disable
+ interrupt b1=0, write to timer enable port */
+ EXT_TIMER_INT_DISAB();
+ EXT_TIMER_CNT_DISAB();
+
+ /* write timer la0 port count data */
+ *TIMER_LA0_REG_ADDR = TmrLa0Write;
+
+ /* write timer la1 port count data */
+ *TIMER_LA1_REG_ADDR = TmrLa1Write;
+
+ /* write timer la2 port count data */
+ *TIMER_LA2_REG_ADDR = TmrLa2Write;
+
+ /* write timer la3 port count data */
+ *TIMER_LA3_REG_ADDR = TmrLa3Write;
+
+ CntInit = TmrLa0Write + (TmrLa1Write << 8 ) + (TmrLa2Write << 16 );
+
+ printf("Timer load data = 0x%x\n", CntInit );
+
+ printf("Reading Timer registers LA0-LA3 on the fly...\n");
+
+ /* load control data to enable timer counter and write control data
+ to start the counter */
+ EXT_TIMER_CNT_ENAB();
+
+ /* sample the timer counter on the fly and store LA0-3 register
+ contents in an array */
+ /* read LSB register first to latch 22 bits data into four la
+ registers */
+ for (sample=0, index=0; sample < (MAX_N_PASSES * MAX_N_SAMPLES); sample++, index += 4) {
+ /* bits 0 1 2 3 4 6 contain count data b0-b5 */
+ data[index] = *TIMER_LA0_REG_ADDR;
+ /* bits 0 1 2 3 4 6 contain count data b6-b11 */
+ data[index+1] = *TIMER_LA1_REG_ADDR;
+ /* bits 0 1 2 3 4 6 contain count data b12-b17 */
+ data[index+2] = *TIMER_LA2_REG_ADDR;
+ /* bits 0 1 2 3 contain count data b18-b21 */
+ data[index+3] = *TIMER_LA3_REG_ADDR;
+ }
+
+ printf("Checking for errors...\n" );
+
+ /* Assemble and check recorded register data for errors */
+ for (sample=0, index=0; sample < (MAX_N_PASSES * MAX_N_SAMPLES) ;sample++, index += 4) {
+ /* Assembles counter data that was read on the fly */
+ /* xbxbbbbb */
+ /* 01000000 = 0x40 */
+ /* 00011111 = 0x1F */
+ data[index] &= 0x7f; /* mask all unused bits */
+ temp3=data[index];
+ temp4=data[index];
+ temp3 &= 0x40; /* isolate bit 6 */
+ temp3 = temp3 >> 1; /* shift bit 6 to bit 5 */
+ temp4 &= 0x1f; /* isolate bits 0-4 */
+ TmrLa0Read = temp3 + temp4;
+
+ data[index+1] &= 0x7f; /* mask all unused bits */
+ temp3=data[index+1];
+ temp4=data[index+1];
+ temp3 &= 0x40; /* isolate bit 6 */
+ temp3 = temp3 >> 1; /* shift bit 6 to bit 5 */
+ temp4 &= 0x1f; /* isolate bits 0-4 */
+ TmrLa1Read = temp3 + temp4;
+
+ data[index+2] &= 0x7f; /* mask all unused bits */
+ temp3=data[index+2];
+ temp4=data[index+2];
+ temp3 &= 0x40; /* isolate bit 6 */
+ temp3 = temp3 >> 1; /* shift bit 6 to bit 5 */
+ temp4 &= 0x1f; /* isolate bits 0-4 */
+ TmrLa2Read = temp3 + temp4;
+
+ data[index+3] &= 0x0f; /* mask all unused bits */
+ TmrLa3Read = data[index+3];
+
+ /* sum timer count data */
+ CurrentCount = TmrLa0Read + (TmrLa1Read << 6)
+ + (TmrLa2Read << 12) + (TmrLa3Read << 18);
+
+ if (sample == 0) {
+ LastLastCount = 0;
+ LastCount = CurrentCount;
+ }
+
+ if (sample == 1) {
+ LastLastCount = LastCount;
+ LastCount = CurrentCount;
+ }
+
+ /* check for data anomaly, is count value read 2 samples ago
+ greater than the count value read 1 sample ago */
+ if (sample > 1) {
+ /* print error value (LastCount) positioned in between the
+ previous and current values */
+ if (LastLastCount > LastCount && CurrentCount > LastLastCount) {
+ /* show error only, do not show a counter wrap around
+ reading, print error value (LastCount) positioned in
+ between the previous and current values */
+ printf("0x%x 0x%x 0x%x \n", LastLastCount, LastCount, CurrentCount );
+ Error = TRUE; /* set flag to error condition */
+ }
+ LastLastCount = LastCount;
+ LastCount = CurrentCount;
+ }
+ }
+ /* load control data to stop timer and reset timer interrupt */
+ EXT_TIMER_CNT_DISAB();
+ } else
+ printf( "Cannot allocate memory.\n" );
+
+ if (Error == TRUE)
+ printf("Timer LA0-3 register read test FAILED.\n");
+ else
+ printf("Timer LA0-3 register read test PASSED.\n");
+}
+
+
+/* initialize timer for diagnostic use */
+void init_external_timer(void)
+{
+#if 0
+ /* disable timer in case it was running */
+ EXT_TIMER_INT_DISAB();
+ EXT_TIMER_CNT_DISAB();
+
+ timer_ticks = 0;
+
+ /* connect the timer ISR */
+ isr_connect (TIMER_INT_ID, ext_timer_handler, 0);
+
+ /* enable the external interrupt */
+ if (enable_external_interrupt(TIMER_INT_ID) != OK)
+ printf("ERROR enabling EXT TIMER interrupt!\n");
+#else
+ hal_clock_initialize(CYGNUM_HAL_RTC_PERIOD);
+#endif
+
+}
+
+
+/* uninitialize timer after diagnostics */
+void uninit_external_timer(void)
+{
+#if 0
+ /* disable timer */
+ EXT_TIMER_INT_DISAB();
+ EXT_TIMER_CNT_DISAB();
+
+ /* disable and disconnect timer interrupts */
+ disable_external_interrupt(TIMER_INT_ID);
+ isr_disconnect (TIMER_INT_ID);
+#endif
+}
+
+
+/* 02/02/01 jwf */
+/* delay_ms - delay specified number of milliseconds */
+void delay_ms(int num_ms)
+{
+ HAL_DELAY_US(num_ms * 1000);
+}
+
+
+/* test the 32 bit timer inside the CPLD, U17 */
+void timer_test (MENU_ARG arg)
+{
+ volatile int i;
+ UINT32 count;
+
+ /***** Perform 10 second count at 100 ticks/sec ****/
+
+ /* for the test we will setup the timer to generate a 10msec tick */
+ count = EXT_TIMER_10MSEC_COUNT;
+
+ /* write the initial count to the timer */
+ write_timer_count (count);
+
+ /* enable the interrupt at the timer */
+ EXT_TIMER_INT_ENAB();
+
+ /* enable the timer to count */
+ EXT_TIMER_CNT_ENAB();
+
+ printf ("Counting at %d Ticks Per Second.\n", TICKS_10MSEC);
+ printf ("Numbers should appear on 1 second increments...\n");
+
+ for (i = 0; i < 10; i++) {
+ while (timer_ticks < TICKS_10MSEC)
+ ;
+ printf ("%d ", i);
+ timer_ticks = 0;
+ }
+
+ printf ("\nDone\n\n");
+
+ /* disable timer */
+ EXT_TIMER_INT_DISAB();
+ EXT_TIMER_CNT_DISAB();
+
+
+ /***** Perform 10 second count at 200 ticks/sec ****/
+
+ count = EXT_TIMER_5MSEC_COUNT;
+ write_timer_count (count);
+
+ timer_ticks = 0;
+
+ /* enable the interrupt at the timer */
+ EXT_TIMER_INT_ENAB();
+
+ /* enable the timer to count */
+ EXT_TIMER_CNT_ENAB();
+
+ printf ("Counting at %d Ticks Per Second.\n", TICKS_5MSEC);
+ printf ("Numbers should appear on 1 second increments...\n");
+
+ for (i = 0; i < 10; i++) {
+ while (timer_ticks < TICKS_5MSEC)
+ ;
+ printf ("%d ", i);
+ timer_ticks = 0;
+ }
+
+ printf ("\nDone\n\n");
+
+ /* disable timer */
+ EXT_TIMER_INT_DISAB();
+ EXT_TIMER_CNT_DISAB();
+
+ /* 12/18/00 jwf */
+ uninit_external_timer(); /* disable interrupt */
+ counter_test();
+ init_external_timer(); /* enable interrupt */
+
+ printf("\nExternal Timer Test Done\n");
+
+ /* 12/18/00 jwf */
+ printf("\n\nStrike <CR> to exit this test." );
+ while (xgetchar() != 0x0d);
+
+ return;
+
+} /* end timer_test() */
+
+
diff --git a/ecos/packages/hal/arm/xscale/iq80310/current/src/diag/flash.c b/ecos/packages/hal/arm/xscale/iq80310/current/src/diag/flash.c
new file mode 100644
index 0000000..9cd04d9
--- /dev/null
+++ b/ecos/packages/hal/arm/xscale/iq80310/current/src/diag/flash.c
@@ -0,0 +1,572 @@
+//=============================================================================
+//
+// flash.c - Cyclone Diagnostics
+//
+//=============================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): Scott Coulter, Jeff Frazier, Eric Breeden
+// Contributors:
+// Date: 2001-01-25
+// Purpose:
+// Description:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================*/
+
+#include <redboot.h>
+#ifdef CYGPKG_IO_FLASH
+#include <cyg/io/flash.h>
+
+#include "iq80310.h" /* 80310 chip set specific */
+#include "7_segment_displays.h"
+#include "test_menu.h"
+
+typedef unsigned char FLASH_TYPE;
+#define MASK 0xff /* for 1 bank */
+
+/* 28F016S5/28F640J3A Command Definitions - First Bus Cycle */
+#define RESET_CMD (0xffffffff & MASK)
+#define WRITE_TO_BUF_CMD (0xe8e8e8e8 & MASK)
+#define WRITE_CONFIRM_CMD (0xd0d0d0d0 & MASK)
+#define READ_ID_CMD (0x90909090 & MASK)
+#define READ_STAT_REG (0x70707070 & MASK)
+#define CLEAR_STAT_REG (0x50505050 & MASK)
+#define ERASE_CMD (0x20202020 & MASK)
+#define PROGRAM_CMD (0x40404040 & MASK)
+#define BEP_SUSPEND (0xb0b0b0b0 & MASK)
+#define BEP_RESUME (0xd0d0d0d0 & MASK)
+#define LOCK_CMD (0x60606060 & MASK)
+#define CLEAR_LOCK_BIT_SETUP (0x60606060 & MASK) /* 10/06/00 */
+
+/* 28F016S5/28F640J3A Command Definitions - Second Bus Cycle */
+#define ERASE_CONFIRM (0xd0d0d0d0 & MASK)
+#define LOCK_BLOCK_CONFIRM (0x01010101 & MASK)
+#define MASTER_LOCK_CONFIRM (0xf1f1f1f1 & MASK) /* DO NOT EVER set master enable bit!!! */
+#define UNLOCK_BLOCK_CONFIRM (0xd0d0d0d0 & MASK)
+#define CLEAR_LOCK_BIT_CONFIRM (0xd0d0d0d0 & MASK) /* 10/06/00 */
+
+/* Flash category definitions */
+#define SECTOR_PROG 0
+#define BLOCK_PROG 1
+
+/* status register bits */
+#define WSM_READY (FLASH_TYPE) (1 << 7)
+#define WSM_BUSY (FLASH_TYPE) (0 << 7)
+#define BE_SUSPENDED (FLASH_TYPE) (1 << 6)
+#define BE_COMPLETED (FLASH_TYPE) (0 << 6)
+#define ERASE_UNLOCK_ERROR (FLASH_TYPE) (1 << 5)
+#define ERASE_UNLOCK_SUCCESS (FLASH_TYPE) (0 << 5)
+#define CLEAR_LOCK_BIT_ERROR (FLASH_TYPE) (1 << 5) /* 10/06/00 */
+#define CLEAR_LOCK_BIT_SUCCESS (FLASH_TYPE) (0 << 5) /* 10/06/00 */
+#define PROGRAM_LOCK_ERROR (FLASH_TYPE) (1 << 4)
+#define PROGRAM_LOCK_SUCCESS (FLASH_TYPE) (0 << 4)
+#define SET_LOCK_BIT_ERROR (FLASH_TYPE) (1 << 4) /* 10/17/00 */
+#define SET_LOCK_BIT_SUCCESS (FLASH_TYPE) (0 << 4) /* 10/17/00 */
+#define VPP_LOW_DETECT (FLASH_TYPE) (1 << 3)
+#define VPP_OK (FLASH_TYPE) (0 << 3)
+#define PROGRAM_SUSPENDED (FLASH_TYPE) (1 << 2)
+#define PROGRAM_COMPLETED (FLASH_TYPE) (0 << 2)
+#define DEVICE_PROTECTED (FLASH_TYPE) (1 << 1)
+#define DEVICE_UNLOCKED (FLASH_TYPE) (0 << 1)
+
+
+/* Other Intel 28F016S5/28F640J3A definitions */
+#define CMD_SEQ_ERR (FLASH_TYPE) (ERASE_UNLOCK_ERROR | PROGRAM_LOCK_ERROR)
+#define ALL_FLASH_STATUS (FLASH_TYPE) (0xfe)
+#define UNKNOWN_ERR (FLASH_TYPE) (0xff)
+
+#define TEST_BUF_LONGS 16384
+#define TEST_BUF_CHARS 65536
+
+#define MADE_BY_INTEL (0x89898989 & MASK) /* Manufacturer Code, read at address 0, note that address bit A0 is not used in x8 or x16 mode when obtaining identifier code */
+
+#define I28F640J3A (0x17171717 & MASK) /* Device Code, read at address 1, note that bit address A0 is not used in x8 or x16 mode when obtaining identifier code */
+
+/*#define FLASH_BLOCK_SIZE 0x10000*/ /* 28F016S5 */
+#define FLASH_BLOCK_SIZE 0x20000 /* 28F640J3A */
+
+#define BLOCK_LOCKED 1
+#define BLOCK_UNLOCKED 0
+
+// First 4K page of flash at physical address zero is
+// virtually mapped at address 0xd0000000.
+#define FLASH_P2V(x) ((volatile FLASH_TYPE *)(((unsigned)(x) < 0x1000) ? \
+ ((unsigned)(x) | 0xd0000000) : \
+ (unsigned)(x)))
+
+
+unsigned long *flash_buffer = (unsigned long *)0xa1000000;
+
+int cmd_stat;
+
+extern void _flushICache(void);
+extern void _enableICache(void);
+extern void _disableICache(void);
+extern void _switchMMUpageTables(void);
+extern void _usec_delay(void);
+extern void _msec_delay(void);
+
+unsigned long eeprom_size;
+unsigned long flash_base;
+
+ADDR eeprom_prog_first, eeprom_prog_last;
+
+extern long hexIn(void);
+extern char *sgets(char *s);
+
+/* forward declarations */
+void init_eeprom(void) RAM_FUNC_SECT;
+int check_eeprom(ADDR addr, unsigned long length) RAM_FUNC_SECT;
+int check_bstat(int block_num) RAM_FUNC_SECT;
+int set_all_lock_bits(void) RAM_FUNC_SECT; /* 10/11/00 added */
+int clear_all_lock_bits(ADDR addr) RAM_FUNC_SECT; /* 10/06/00 added */
+int erase_eeprom(ADDR addr, unsigned long length) RAM_FUNC_SECT;
+int write_eeprom(ADDR start_addr, const void *data_arg, int data_size) RAM_FUNC_SECT;
+void flash_test(MENU_ARG arg) RAM_FUNC_SECT;
+void display_val(int num) RAM_FUNC_SECT;
+void display_out (int msb_flag, unsigned char val) RAM_FUNC_SECT;
+
+#define MSB_DISPLAY_REG (volatile unsigned char *)0xfe840000
+#define LSB_DISPLAY_REG (volatile unsigned char *)0xfe850000
+
+void display_out (int msb_flag, unsigned char val)
+{
+ volatile unsigned char *ledPtr;
+
+ if (msb_flag)
+ ledPtr = MSB_DISPLAY_REG;
+ else
+ ledPtr = LSB_DISPLAY_REG;
+
+ *ledPtr = SevSegDecode[val & 0xf];
+}
+
+void display_val (int number)
+{
+ unsigned char disp_val = number % 256;
+ unsigned char msb, lsb;
+
+ lsb = disp_val & 0x0f;
+ msb = (disp_val & 0xf0) >> 4;
+
+ display_out (0, lsb);
+ display_out (1, msb);
+}
+
+/********************************************************/
+/* INIT FLASH */
+/* */
+/* This routine initializes the variables for timing */
+/* with any board configuration. This is used to get */
+/* exact timing every time. */
+/********************************************************/
+void init_eeprom(void)
+{
+ unsigned char MfgCode=MADE_BY_INTEL;
+ unsigned char DevCode=I28F640J3A;
+
+ eeprom_size = 0x800000;
+
+ printf( "\nManufacturer Code = 0x%x\n", MfgCode);
+ printf( "Device Code = %x\n", DevCode);
+ printf( "Flash Memory size = 0x%x\n", eeprom_size);
+
+ return;
+}
+
+/********************************************************/
+/* CHECK EEPROM */
+/* Check if Flash is Blank */
+/* */
+/* returns OK if it is; returns ERROR and sets cmd_stat */
+/* to an error code if memory region is not Flash or if */
+/* it is not blank. */
+/* */
+/********************************************************/
+int check_eeprom(ADDR addr, unsigned long length)
+{
+ FLASH_TYPE *p, *end;
+
+ if (eeprom_size == 0) {
+ cmd_stat = E_NO_FLASH;
+ return ERR;
+ }
+
+ if (addr == NO_ADDR) {
+ addr = FLASH_BLK4_BASE_ADDR; /* start at base address of block */
+ length = eeprom_size - RESERVED_AREA_SIZE;
+ } else if (length == 0)
+ length = 1;
+
+ p = (FLASH_TYPE *)addr;
+
+ end = (FLASH_TYPE *)FLASH_TOP_ADDR;
+ /* search for first non blank address starting at base address of Flash Block 2 */
+ while (p != end) {
+ if (*FLASH_P2V(p) != 0xff) {
+ eeprom_prog_first = (ADDR)p; /* found first non blank memory cell */
+
+ /* now find last non blank memory cell starting from top of Flash memory */
+ for (p = end - 1; *FLASH_P2V(p) == 0xff; --p)
+ ;
+ eeprom_prog_last = (ADDR)p; /* found last non blank memory cell */
+
+ cmd_stat = E_EEPROM_PROG;
+
+ return ERR;
+ }
+ p++;
+ }
+ return OK;
+}
+
+/********************************************************/
+/* SET ALL LOCK BITS */
+/* */
+/* returns OK if successful; otherwise returns ERROR */
+/* and sets cmd_stat to an error code */
+/* The 28F640J3A is divided into 64, 128Kbyte blocks */
+/* This routine sets a lock bit in the block specified */
+/* by a given address */
+/********************************************************/
+int set_all_lock_bits()
+{
+ unsigned long addr = 0x0;
+ void *err_addr;
+ int stat;
+
+ if ((stat = flash_lock((void *)addr, 4 * FLASH_BLOCK_SIZE, (void **)&err_addr)) != 0)
+ return stat;
+
+ return( OK );
+}
+
+
+/********************************************************/
+/* CLEAR ALL LOCK BITS */
+/* */
+/* returns OK if successful; otherwise returns ERROR */
+/* and sets cmd_stat to an error code */
+/* The 28F640J3A is divided into 64, 128Kbyte blocks */
+/* This routine clears all block lock bits */
+/********************************************************/
+int clear_all_lock_bits(ADDR addr)
+{
+ void *err_addr;
+ int stat;
+
+ if ((stat = flash_unlock((void *)0, eeprom_size, (void **)&err_addr)) != 0)
+ return stat;
+ return OK;
+}
+
+
+/********************************************************/
+/* ERASE EEPROM */
+/* */
+/* returns OK if erase was successful, */
+/* otherwise returns ERROR */
+/* and sets cmd_stat to an error code */
+/* */
+/********************************************************/
+int erase_eeprom(ADDR addr, unsigned long length)
+{
+ void *err_addr;
+ int num_blocks;
+
+ /********************************************************/
+ /* The 28F640J3A is divided into 64, 128Kbyte blocks */
+ /* each of which must be individually erased. */
+ /* This routine and erases a whole number of blocks */
+ /********************************************************/
+
+ /* don't erase boot area even if entire eeprom is specified */
+ if (addr == NO_ADDR) {
+ addr = FLASH_BLK4_BASE_ADDR;
+ length = eeprom_size - RESERVED_AREA_SIZE;
+ }
+
+ if (length == 0) {
+ /* 10/06/00 */
+ printf( "erase_eeprom, return OK, length=0\n");
+ return OK;
+ }
+
+ /* start address must be block-aligned */
+ if ((addr % FLASH_BLOCK_SIZE) != 0) {
+ cmd_stat = E_EEPROM_ADDR;
+ printf( "erase_eeprom, addr = 0x%x\n", addr);
+ printf( "erase_eeprom, FLASH_BLOCK_SIZE = 0x%x\n", FLASH_BLOCK_SIZE);
+ printf( "erase_eeprom, return ERR, (addr %% FLASH_BLOCK_SIZE) = %d\n", addr % FLASH_BLOCK_SIZE);
+
+ return ERR;
+ }
+
+ /* figure out how many blocks require erasure - round up using integer division */
+ if (length % FLASH_BLOCK_SIZE) /* non-multiple, round up */
+ num_blocks = (length + FLASH_BLOCK_SIZE) / FLASH_BLOCK_SIZE;
+ else /* multiple number of blocks */
+ num_blocks = length / FLASH_BLOCK_SIZE;
+
+ if (eeprom_size == 0) {
+ cmd_stat = E_NO_FLASH;
+ return ERR;
+ }
+
+ if (flash_erase((void *)addr, num_blocks * FLASH_BLOCK_SIZE, (void **)&err_addr) != 0) {
+ cmd_stat = E_EEPROM_FAIL;
+ return ERR;
+ }
+
+ return OK;
+}
+
+
+/********************************************************/
+/* WRITE EEPROM */
+/* */
+/* returns OK if successful; otherwise returns ERROR */
+/* and sets cmd_stat to an error code */
+/* */
+/********************************************************/
+int
+write_eeprom(ADDR start_addr, const void *data_arg, int data_size)
+{
+ void *err_addr;
+
+ if (flash_program((void *)start_addr, data_arg, data_size, &err_addr) != 0) {
+ cmd_stat = E_EEPROM_FAIL;
+ return ERR;
+ }
+ return OK;
+}
+
+
+/*****************************************************************************
+*
+* flash_test - System Flash ROM diagnostics
+*
+* A destructive Flash ROM Read/Write test. Note that the area of Flash
+* which is tested changes based on whether the diagnostic is being invoked
+* from the System code or from the Factory code (can't write over MON960).
+*
+* This test basically does a Longword Address test to the Flash area.
+*
+*/
+void flash_test(MENU_ARG arg)
+{
+
+ ADDR start_addr = (ADDR)FLASH_ADDR; /* Original */
+
+ int i;
+ unsigned long *f_ptr = (unsigned long *)FLASH_ADDR;
+ int bytes_written = 0;
+ unsigned long flash_data;
+ char answer[20];
+
+/* 10/31/00 */
+ int status;
+
+ init_eeprom();
+
+ printf("***********************************\n");
+ printf("*** WARNING ***\n");
+ printf("*** This test is destructive to ***\n");
+ printf("*** all contents of the FLASH! ***\n");
+ printf("***********************************\n");
+
+ printf("\nDo you wish to continue? (y/n)\n");
+ sgets(answer);
+ printf("\n\n");
+ if ((answer[0] != 'y') && (answer[0] != 'Y'))
+ return;
+
+ printf ("FLASH begins at 0x%X\n", FLASH_ADDR);
+ printf ("Total FLASH size = 0x%X\n\n", eeprom_size);
+ printf ("Checking FLASH ...\n");
+ if (check_eeprom(NO_ADDR, 0) == OK)
+ printf("FLASH is erased\n\n");
+ else
+ printf("FLASH is programmed between 0x%X and 0x%X\n\n",
+ eeprom_prog_first, eeprom_prog_last);
+
+ printf ("\nClearing Block Lock Bits... \n");
+ if(clear_all_lock_bits(NO_ADDR)==OK)
+ printf("Done!\n\n");
+ else
+ printf("Error!\n\n");
+
+ printf ("Erasing FLASH...\n");
+ if (erase_eeprom(NO_ADDR, 0) != OK)
+ printf("Error on erase_eeprom()\n\n");
+ else
+ printf("Done Erasing FLASH!\n\n");
+
+ (ADDR)start_addr = (ADDR)FLASH_BLK4_BASE_ADDR;
+
+ printf ("Writing Longword Data to FLASH...\n");
+
+ /* write to all of available Flash ROM. Don't do this thousands of times
+ since the Flash has only 100,000 write cycles in its lifespan */
+
+ while (bytes_written < (eeprom_size - RESERVED_AREA_SIZE)) {
+ flash_data = (unsigned long)start_addr;
+ for (i=0; i<TEST_BUF_LONGS; i++) {
+ flash_buffer[i] = flash_data; /* put address in buffer */
+ flash_data += 4; /* increment address */
+ }
+ if (write_eeprom (start_addr, (void *)flash_buffer, TEST_BUF_CHARS) != OK) {
+ printf("Error on write_eeprom()\n");
+ goto finish;
+ }
+ start_addr = (unsigned long)start_addr + TEST_BUF_CHARS;
+ bytes_written += TEST_BUF_CHARS;
+ }
+
+ printf ("Write Complete, Verifying Data...\n");
+ bytes_written = 0;
+
+ f_ptr = (unsigned long *)FLASH_BLK4_BASE_ADDR;
+
+ while (bytes_written < (eeprom_size - RESERVED_AREA_SIZE)) {
+ if (*f_ptr != (unsigned long)f_ptr) {
+ printf ("Data verification error at 0x%X\n", (unsigned long)f_ptr);
+ printf ("Expected 0x%X Got 0x%X\n", (unsigned long)f_ptr, *f_ptr);
+ goto finish;
+ }
+ f_ptr++;
+ bytes_written += 4;
+ }
+ printf ("Done Verifying Longword Data!\n\n");
+
+ printf ("Checking FLASH...\n");
+ if (check_eeprom(NO_ADDR, 0) == OK)
+ printf("FLASH is erased\n\n");
+ else
+ printf("FLASH is programmed between 0x%X and 0x%X\n\n",
+ eeprom_prog_first, eeprom_prog_last);
+
+ printf ("Erasing FLASH...\n");
+ if (erase_eeprom(NO_ADDR, 0) != OK)
+ printf("Error on erase_eeprom()\n\n");
+ else
+ printf("Done Erasing FLASH!\n\n");
+
+ printf ("Checking FLASH...\n");
+ if (check_eeprom(NO_ADDR, 0) == OK)
+ printf("FLASH is erased\n\n");
+ else
+ printf("FLASH is programmed between 0x%X and 0x%X\n\n",
+ eeprom_prog_first, eeprom_prog_last);
+
+ /* reinitialize variables */
+ bytes_written = 0;
+
+ start_addr = (ADDR)FLASH_BLK4_BASE_ADDR;
+ f_ptr = (unsigned long *)FLASH_BLK4_BASE_ADDR;
+
+ printf ("Writing Inverted Longword Data to FLASH...\n");
+
+ /* write to all of available Flash ROM. Don't do this thousands of times
+ since the Flash has only 100,000 write cycles in its lifespan */
+
+ while (bytes_written < (eeprom_size - RESERVED_AREA_SIZE)) {
+ flash_data = (unsigned long)start_addr;
+ for (i=0; i<TEST_BUF_LONGS; i++) {
+ flash_buffer[i] = ~flash_data; /* put address BAR in buffer */
+ flash_data += 4; /* increment address */
+ }
+ if (write_eeprom (start_addr, (void *)flash_buffer, TEST_BUF_CHARS) != OK) {
+ printf("Error on write_eeprom()\n");
+ goto finish;
+ }
+ start_addr = (unsigned long)start_addr + TEST_BUF_CHARS;
+ bytes_written += TEST_BUF_CHARS;
+ }
+
+ printf ("Write Complete, Verifying Data...\n");
+ bytes_written = 0;
+
+ while (bytes_written < (eeprom_size - RESERVED_AREA_SIZE)) {
+ if (*f_ptr != (~(unsigned long)f_ptr)) {
+ printf ("Data verification error at 0x%X\n", (unsigned long)f_ptr);
+ printf ("Expected 0x%X Got 0x%X\n", (~(unsigned long)f_ptr), *f_ptr);
+ goto finish;
+ }
+ f_ptr++;
+ bytes_written += 4;
+ }
+ printf ("Done Verifying Inverted Longword Data!\n\n");
+
+
+ printf ("Checking FLASH...\n");
+ if (check_eeprom(NO_ADDR, 0) == OK)
+ printf("FLASH is erased\n\n");
+ else {
+ printf("FLASH is programmed between 0x%X and 0x%X\n\n",
+ eeprom_prog_first, eeprom_prog_last);
+ }
+
+ printf ("Erasing FLASH...\n");
+ if (erase_eeprom(NO_ADDR, 0) != OK)
+ printf("Error on erase_eeprom()\n\n");
+ else
+ printf("Done Erasing FLASH!\n\n");
+
+ printf ("Checking FLASH...\n");
+ if (check_eeprom(NO_ADDR, 0) == OK)
+ printf("FLASH is erased\n\n");
+ else
+ printf("FLASH is programmed between 0x%X and 0x%X\n\n",
+ eeprom_prog_first, eeprom_prog_last);
+
+/* 11/02/00 */
+ printf ("Setting Lock Bits for Blocks 0-3... \n");
+ if( (status = set_all_lock_bits() ) == OK )
+ printf("Done!\n");
+ else
+ printf("Error! status =0x%x\n", status);
+
+finish:
+ _flushICache();
+
+ printf ("\nHit <CR> to Continue...\n");
+ (void)hexIn();
+ return;
+}
+
+#endif // CYGPKG_IO_FLASH
diff --git a/ecos/packages/hal/arm/xscale/iq80310/current/src/diag/i557_eep.c b/ecos/packages/hal/arm/xscale/iq80310/current/src/diag/i557_eep.c
new file mode 100644
index 0000000..2f2ea85
--- /dev/null
+++ b/ecos/packages/hal/arm/xscale/iq80310/current/src/diag/i557_eep.c
@@ -0,0 +1,549 @@
+//=============================================================================
+//
+// i557_eep.c - Cyclone Diagnostics
+//
+//=============================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): Scott Coulter, Jeff Frazier, Eric Breeden
+// Contributors:
+// Date: 2001-01-25
+// Purpose:
+// Description:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================*/
+
+#include "i557_eep.h"
+
+/*****************************************************************************
+*
+* Serial EEPROM Access code for the i557/558
+*
+* Revision History:
+* -----------------
+*
+*
+* 05jun98, snc Added setup time for eeprom CS. Changed eeprom_delay to use the
+* processor's internal timer. Fixed programming algorithm to poll
+* the eeprom's DO line to look for the transition from BUSY to READY
+* which indicates that the programming operation has completed.
+* 03jun98, snc Added setup time delay on data writes (delay before asserting
+* a rising edge on the SK. Fixed eeprom_get_word() to explicitly
+* clear a bit position in the buffer after reading a low on the
+* data lines.
+* 23oct96, snc Ported to the PCI914
+*
+*/
+
+/*
+ * Timing information. According to the National Semiconductor manual,
+ * the SK High Minimum time = SK Low Minimum time = 250 nsec. However,
+ * the minimum SK cycle time is 1 usec, so a 250 nsec high/750 nsec. low
+ * sequence or equivalent would be required.
+ */
+
+/* Serial clock line */
+#define SK_LOW_PERIOD 500 /* nsec, Time serial clock is low */
+#define SK_HIGH_PERIOD 500 /* nsec, Time serial clock is high */
+
+/* Serial data line */
+#define DATA_IN_HOLD_TIME 20 /* nsec, SK low to EEDI change */
+#define DATA_IN_SETUP_TIME 100 /* nsec, EEDI change to SK high */
+
+/* Serial clock and data line states (assumes ports are non-inverting) */
+#define HIGH 1
+#define LOW 0
+
+/* Select setup time to rising edge of SK */
+#define SELECT_SETUP_TIME 50 /* nsec */
+
+/* De-select time between consecutive commands */
+#define DESELECT_TIME 100 /* nsec */
+
+
+/* local functions */
+
+static void set_sda_line (unsigned long pci_base, /* PCI Base address */
+ int state); /* HIGH or LOW */
+
+static int get_sda_line (unsigned long pci_base); /* PCI Base address */
+
+static void set_scl_line (unsigned long pci_base, /* PCI Base address */
+ int state); /* HIGH or LOW */
+
+void eeprom_delay (int nsec);
+static int eeprom_send_start (unsigned long pci_base, int command);
+static int eeprom_send_addr (unsigned long pci_base,
+ unsigned char eeprom_addr);
+static int eeprom_get_word (unsigned long pci_base,
+ unsigned short *word_addr);
+static int eeprom_put_word (unsigned long pci_base,
+ unsigned short data);
+static int eeprom_write_enable(unsigned long pci_base);
+static int eeprom_write_disable(unsigned long pci_base);
+
+/* global variables */
+int powerup_wait_done = 0; /* set true after power-up wait done */
+
+
+/*-------------------------------------------------------------
+ * Function: int eeprom_read ()
+ *
+ * Action: Read data from the eeprom, place it at p_data
+ *
+ * Returns: OK if read worked, EEPROM_NOT_RESPONDING if
+ * read fails.
+ *-------------------------------------------------------------*/
+int eeprom_read (unsigned long pci_base,/* PCI Base address */
+ int eeprom_addr, /* word offset from start of eeprom */
+ unsigned short *p_data,/* where to put data in memory */
+ int nwords /* number of 16bit words to read */
+ )
+{
+ int status; /* result code */
+ int i; /* loop variable */
+
+ /*
+ * Make sure caller isn't requesting a read beyond the end of the
+ * eeprom.
+ */
+ if ((eeprom_addr + nwords) > EEPROM_WORD_SIZE)
+ return (EEPROM_TO_SMALL);
+
+
+ /* Read in desired number of words */
+ for (i = 0; i < nwords; i++, eeprom_addr++) {
+ /* Select the serial EEPROM */
+ SELECT_557_EEP(pci_base);
+
+ /* Wait CS setup time */
+ eeprom_delay (SELECT_SETUP_TIME);
+
+ /* Send start/read command to begin the read */
+ if (((status = eeprom_send_start (pci_base, EEPROM_READ)) != OK) ||
+ /* Send address */
+ ((status = eeprom_send_addr (pci_base, eeprom_addr)) != OK))
+ return (status);
+
+ if ((status = eeprom_get_word (pci_base, p_data++)) != OK)
+ return (status);
+
+ /* De-Select the serial EEPROM */
+ DESELECT_557_EEP(pci_base);
+
+ /* wait the required de-select time between commands */
+ eeprom_delay (DESELECT_TIME);
+ }
+
+ return (OK);
+}
+
+/*-------------------------------------------------------------
+ * Function: int eeprom_write ()
+ *
+ * Action: Write data from p_data to the eeprom
+ *
+ * Returns: OK if write worked, EEPROM_NOT_RESPONDING if
+ * write failed.
+ *-------------------------------------------------------------*/
+int eeprom_write (unsigned long pci_base,/* PCI Base address */
+ int eeprom_addr, /* word offset from start of eeprom */
+ unsigned short *p_data,/* data source in memory */
+ int nwords /* number of 16bit words to read */
+ )
+{
+ int status; /* result code */
+ int i; /* loop variable */
+ int check_cntr;
+ unsigned short data;
+
+ /*
+ * Make sure caller isn't requesting a read beyond the end of the
+ * eeprom.
+ */
+ if ((eeprom_addr + nwords) > EEPROM_WORD_SIZE)
+ return (EEPROM_TO_SMALL);
+
+ /* enable eeprom writes */
+ if ((status = eeprom_write_enable(pci_base)) != OK)
+ return(status);
+
+ /* Read in desired number of words */
+ for (i = 0; i < nwords; i++, eeprom_addr++) {
+ /* Select the serial EEPROM */
+ SELECT_557_EEP(pci_base);
+
+ /* Wait CS setup time */
+ eeprom_delay (SELECT_SETUP_TIME);
+
+ /* Send start/write command to begin the read */
+ if (((status = eeprom_send_start (pci_base, EEPROM_WRITE)) != OK) ||
+ /* Send address */
+ ((status = eeprom_send_addr (pci_base, eeprom_addr)) != OK))
+ return (status);
+
+ data = *p_data++;
+ if ((status = eeprom_put_word (pci_base, data)) != OK)
+ return (status);
+
+ /* De-Select the serial EEPROM */
+ DESELECT_557_EEP(pci_base);
+
+ /* wait the required de-select time between commands */
+ eeprom_delay (DESELECT_TIME);
+
+ /* Re-Select the serial EEPROM */
+ SELECT_557_EEP(pci_base);
+
+ /* now that the write command/data have been clocked into the EEPROM
+ we must wait for the BUSY indicator (DO driven low) to indicate
+ READY (DO driven high) */
+ check_cntr = 0;
+
+ while (1) {
+ check_cntr++;
+
+ if (get_sda_line (pci_base) == HIGH) break; /* programming complete */
+
+ if (check_cntr > 100000) { /* timeout */
+ /* De-Select the serial EEPROM */
+ DESELECT_557_EEP(pci_base);
+ /* wait the required de-select time between commands */
+ eeprom_delay (DESELECT_TIME);
+ return (EEPROM_ERROR);
+ }
+ }
+
+ /* De-Select the serial EEPROM */
+ DESELECT_557_EEP(pci_base);
+
+ /* wait the required de-select time between commands */
+ eeprom_delay (DESELECT_TIME);
+ }
+
+ /* disable eeprom writes */
+ if ((status = eeprom_write_disable(pci_base)) != OK)
+ return(status);
+
+ return (OK);
+}
+
+/*-------------------------------------------------------------
+ * Function: int eeprom_write_enable ()
+ *
+ * Action: Enable writes to the eeprom
+ *
+ * Returns: OK if command sent, EEPROM_NOT_RESPONDING if not.
+ *
+ *-------------------------------------------------------------*/
+int eeprom_write_enable (unsigned long pci_base)
+{
+ int status; /* result code */
+
+ /* Select the serial EEPROM */
+ SELECT_557_EEP(pci_base);
+
+ /* Wait CS setup time */
+ eeprom_delay (SELECT_SETUP_TIME);
+
+ /* Send start/write enable command */
+ if (((status = eeprom_send_start (pci_base, EEPROM_EWEN)) != OK) ||
+ /* Send address */
+ ((status = eeprom_send_addr (pci_base, EEPROM_EWEN_OP)) != OK))
+ return (status);
+
+ /* De-Select the serial EEPROM */
+ DESELECT_557_EEP(pci_base);
+
+ /* wait the required de-select time between commands */
+ eeprom_delay (DESELECT_TIME);
+
+ return (OK);
+}
+
+/*-------------------------------------------------------------
+ * Function: int eeprom_write_disable ()
+ *
+ * Action: Disable writes to the eeprom
+ *
+ * Returns: OK if command sent, EEPROM_NOT_RESPONDING if not.
+ *
+ *-------------------------------------------------------------*/
+int eeprom_write_disable (unsigned long pci_base)
+{
+ int status; /* result code */
+
+ /* Select the serial EEPROM */
+ SELECT_557_EEP(pci_base);
+
+ /* Wait CS setup time */
+ eeprom_delay (SELECT_SETUP_TIME);
+
+ /* Send start/write enable command */
+ if (((status = eeprom_send_start (pci_base, EEPROM_EWDS)) != OK) ||
+ /* Send address */
+ ((status = eeprom_send_addr (pci_base, EEPROM_EWDS_OP)) != OK))
+ return (status);
+
+ /* De-Select the serial EEPROM */
+ DESELECT_557_EEP(pci_base);
+
+ /* wait the required de-select time between commands */
+ eeprom_delay (DESELECT_TIME);
+
+ return (OK);
+}
+
+
+/******************************************************************************
+*
+* eeprom_delay - delay for a specified number of nanoseconds
+*
+* Note: this routine is a generous approximation as delays for eeproms
+* are specified as minimums.
+*/
+void eeprom_delay (int nsec)
+{
+ extern void polled_delay (int usec);
+
+ /* generously delay 1 usec. for each nsec. */
+ polled_delay (nsec);
+}
+
+/******************************************************************************
+*
+* eeprom_send_start - send a start bit with a read opcode to the '557 serial
+* eeprom
+*
+*/
+static int eeprom_send_start (unsigned long pci_base, int command)
+{
+ int op_code[2];
+
+ switch (command) {
+ case EEPROM_WRITE:
+ op_code[0] = LOW;
+ op_code[1] = HIGH;
+ break;
+
+ case EEPROM_READ:
+ op_code[0] = HIGH;
+ op_code[1] = LOW;
+ break;
+
+ case EEPROM_ERASE:
+ op_code[0] = HIGH;
+ op_code[1] = HIGH;
+ break;
+
+ case EEPROM_EWEN:
+ case EEPROM_EWDS:
+ op_code[0] = LOW;
+ op_code[1] = LOW;
+ break;
+
+ default:
+ return(EEPROM_INVALID_CMD);
+ }
+
+ set_scl_line (pci_base, LOW);
+ set_sda_line (pci_base, HIGH); /* start bit */
+ eeprom_delay (DATA_IN_SETUP_TIME);
+ set_scl_line (pci_base, HIGH); /* clock high */
+ eeprom_delay (SK_HIGH_PERIOD);
+ set_scl_line (pci_base, LOW); /* clock low */
+ eeprom_delay (SK_LOW_PERIOD);
+
+ /* send the opcode */
+ set_sda_line (pci_base, op_code[0]); /* MSB of opcode */
+ eeprom_delay (DATA_IN_SETUP_TIME);
+ set_scl_line (pci_base, HIGH); /* clock high */
+ eeprom_delay (SK_HIGH_PERIOD);
+ set_scl_line (pci_base, LOW); /* clock low */
+ eeprom_delay (SK_LOW_PERIOD);
+ set_sda_line (pci_base, op_code[1]); /* LSB of opcode */
+ eeprom_delay (DATA_IN_SETUP_TIME);
+ set_scl_line (pci_base, HIGH); /* clock high */
+ eeprom_delay (SK_HIGH_PERIOD);
+ set_scl_line (pci_base, LOW); /* clock low */
+ eeprom_delay (SK_LOW_PERIOD);
+
+ return (OK);
+}
+
+/******************************************************************************
+*
+* eeprom_send_addr - send the read address to the '557 serial eeprom
+*
+*/
+static int eeprom_send_addr (unsigned long pci_base,
+ unsigned char eeprom_addr)
+{
+ register int i;
+
+ /* Do each address bit, MSB => LSB - after each address bit is
+ sent, read the EEDO bit on the '557 to check for the "dummy 0 bit"
+ which when set to 0, indicates that the address field is complete */
+ for (i = 5; i >= 0; i--) {
+ /* If this bit is a 1, set SDA high. If 0, set it low */
+ if (eeprom_addr & (1 << i))
+ set_sda_line (pci_base, HIGH);
+ else
+ set_sda_line (pci_base, LOW);
+
+ eeprom_delay (DATA_IN_SETUP_TIME); /* Data setup before raising clock */
+ set_scl_line (pci_base, HIGH); /* Clock in this data bit */
+ eeprom_delay (SK_HIGH_PERIOD);
+ set_scl_line (pci_base, LOW); /* Prepare for next bit */
+ eeprom_delay (SK_LOW_PERIOD);
+
+ /* check to see if "dummy 0 bit" is set to 0 indicating address
+ complete */
+ if (get_sda_line (pci_base) == LOW)
+ break; /* address complete */
+ }
+ return (OK);
+}
+
+/******************************************************************************
+*
+* eeprom_get_word - read a 16 bit word from the '557 serial eeprom
+*
+* Note: this routine assumes that the start/opcode/address have already
+* been set up
+*/
+static int eeprom_get_word (unsigned long pci_base,
+ unsigned short *word_addr)
+{
+ register int i;
+
+ /* Do each data bit, MSB => LSB */
+ for (i = 15; i >= 0; i--) {
+ set_scl_line (pci_base, HIGH);
+ eeprom_delay (SK_HIGH_PERIOD);
+
+ if (get_sda_line (pci_base) == HIGH)
+ *word_addr |= (1 << i); /* store bit as a '1' */
+ else
+ *word_addr &= ~(1 << i); /* store bit as a '0' */
+
+ set_scl_line (pci_base, LOW);
+ eeprom_delay (SK_LOW_PERIOD);
+ }
+ return (OK);
+}
+
+/******************************************************************************
+*
+* eeprom_put_word - write a 16 bit word to the '557 serial eeprom
+*
+* Note: this routine assumes that the start/opcode/address have already
+* been set up
+*/
+static int eeprom_put_word (unsigned long pci_base,
+ unsigned short data)
+{
+ register int i;
+
+ /* Do each data bit, MSB => LSB */
+ for (i = 15; i >= 0; i--) {
+ if (data & (1 << i))
+ set_sda_line(pci_base, HIGH);
+ else
+ set_sda_line(pci_base, LOW);
+
+ eeprom_delay (DATA_IN_SETUP_TIME);
+ set_scl_line (pci_base, HIGH);
+ eeprom_delay (SK_HIGH_PERIOD);
+ set_scl_line (pci_base, LOW);
+ eeprom_delay (SK_LOW_PERIOD);
+ }
+ return (OK);
+}
+
+/*-------------------------------------------------------------
+ * Function: void set_scl_line ()
+ *
+ * Action: Sets the value of the eeprom's serial clock line
+ * to the value HIGH or LOW.
+ *
+ * Returns: N/A.
+ *-------------------------------------------------------------*/
+static void set_scl_line (unsigned long pci_base, /* PCI address */
+ int state) /* HIGH or LOW */
+{
+ if (state == HIGH)
+ SK_HIGH_557_EEP (pci_base);
+ else if (state == LOW)
+ SK_LOW_557_EEP (pci_base);
+}
+
+/*-------------------------------------------------------------
+ * Function: void set_sda_line ()
+ *
+ * Action: Sets the value of the eeprom's serial data line
+ * to the value HIGH or LOW.
+ *
+ * Returns: N/A.
+ *-------------------------------------------------------------*/
+static void set_sda_line (unsigned long pci_base, /* PCI address */
+ int state) /* HIGH or LOW */
+{
+ if (state == HIGH)
+ EEDI_HIGH_557_EEP (pci_base);
+ else if (state == LOW)
+ EEDI_LOW_557_EEP (pci_base);
+}
+
+/*-------------------------------------------------------------
+ * Function: int get_sda_line ()
+ *
+ * Action: Returns the value of the eeprom's serial data line
+ *
+ * Returns: HIGH or LOW.
+ *-------------------------------------------------------------*/
+static int get_sda_line (unsigned long pci_base) /* PCI address */
+{
+ int ret_val; /* result code */
+
+ if (EEDO_557_EEP (pci_base))
+ ret_val = HIGH;
+ else
+ ret_val = LOW;
+
+ return (ret_val);
+}
diff --git a/ecos/packages/hal/arm/xscale/iq80310/current/src/diag/i557_eep.h b/ecos/packages/hal/arm/xscale/iq80310/current/src/diag/i557_eep.h
new file mode 100644
index 0000000..fac63bf
--- /dev/null
+++ b/ecos/packages/hal/arm/xscale/iq80310/current/src/diag/i557_eep.h
@@ -0,0 +1,97 @@
+//=============================================================================
+//
+// i557_eep.h - Cyclone Diagnostics
+//
+//=============================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): Scott Coulter, Jeff Frazier, Eric Breeden
+// Contributors:
+// Date: 2001-01-25
+// Purpose:
+// Description:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================*/
+
+/* Public define's and function prototypes */
+#define EEPROM_SIZE 128 /* Maximum # bytes in serial eeprom */
+#define EEPROM_WORD_SIZE 64 /* Maximum # shorts in serial eeprom */
+
+/* result codes for the functions below */
+#define OK 0 /* Operation completed successfully */
+#define EEPROM_ERROR 1 /* generic error */
+#define EEPROM_NOT_RESPONDING 2 /* eeprom not resp/not installed */
+#define EEPROM_TO_SMALL 3 /* req write/read past end of eeprom */
+#define EEPROM_INVALID_CMD 4 /* op code not supported */
+
+/* layout of the Serial EEPROM register */
+#define I557_EESK (1 << 0)
+#define I557_EECS (1 << 1)
+#define I557_EEDI (1 << 2)
+#define I557_EEDO (1 << 3)
+
+/* EEPROM commands */
+#define EEPROM_WRITE 1
+#define EEPROM_READ 2
+#define EEPROM_ERASE 3
+#define EEPROM_EWEN 4
+#define EEPROM_EWDS 5
+#define EEPROM_EWEN_OP 0x30
+#define EEPROM_EWDS_OP 0x00
+
+/* EEPROM Chip Select */
+#define SELECT_557_EEP(n) (*(unsigned char *)(n+0x0e) |= I557_EECS)
+#define DESELECT_557_EEP(n) (*(unsigned char *)(n+0x0e) &= ~I557_EECS)
+
+/* EEPROM Serial Clock */
+#define SK_HIGH_557_EEP(n) (*(unsigned char *)(n+0x0e) |= I557_EESK)
+#define SK_LOW_557_EEP(n) (*(unsigned char *)(n+0x0e) &= ~I557_EESK)
+
+/* EEPROM Serial Data In -> out to eeprom */
+#define EEDI_HIGH_557_EEP(n) (*(unsigned char *)(n+0x0e) |= I557_EEDI)
+#define EEDI_LOW_557_EEP(n) (*(unsigned char *)(n+0x0e) &= ~I557_EEDI)
+
+/* EEPROM Serial Data Out -> in from eeprom */
+#define EEDO_557_EEP(n) ((*(unsigned char *)(n+0x0e) & I557_EEDO) >> 3)
+
+/* global functions declared in serial_eep.c */
+
+int eeprom_read (unsigned long pci_addr,
+ int eeprom_addr, /* word offset from start of eeprom */
+ unsigned short *p_data,/* buffer pointer */
+ int nwords /* number of bytes to read */
+ );
diff --git a/ecos/packages/hal/arm/xscale/iq80310/current/src/diag/interrupts.c b/ecos/packages/hal/arm/xscale/iq80310/current/src/diag/interrupts.c
new file mode 100644
index 0000000..ccbc60f
--- /dev/null
+++ b/ecos/packages/hal/arm/xscale/iq80310/current/src/diag/interrupts.c
@@ -0,0 +1,1138 @@
+//=============================================================================
+//
+// interrupts.c - Cyclone Diagnostics
+//
+//=============================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): Scott Coulter, Jeff Frazier, Eric Breeden
+// Contributors:
+// Date: 2001-01-25
+// Purpose:
+// Description:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================*/
+
+/******************************************************************************/
+/* interrupts.c - Interrupt dispatcher routines for IQ80310 Board */
+/* */
+/* modification history */
+/* -------------------- */
+/* 07sep00, ejb, Written for IQ80310 Cygmon diagnostics */
+/* 11oct00, ejb, Switched FIQ and IRQ interrupt handlers */
+/* 18dec00 snc and jwf */
+/* 02feb01 jwf for snc */
+/******************************************************************************/
+
+#include "iq80310.h"
+#include "pci_bios.h"
+#include "7_segment_displays.h"
+
+extern int(*board_fiq_handler)(void);
+extern int(*board_irq_handler)(void);
+extern long _cspr_enable_fiq_int(void);
+extern long _cspr_enable_irq_int(void);
+extern long _read_cpsr(void);
+extern long _scrub_ecc(unsigned);
+extern void _flushICache(void);
+
+
+#define AND_WORD(addr,val) *addr = *addr & val
+
+
+void error_print(char *fmt, int arg0, int arg1, int arg2, int arg3);
+
+
+extern int nmi_verbose; /* for NMI, only print NMI info if this is TRUE */
+extern int pci_config_cycle; /* don't handle NMI if in a config cycle */
+extern int pci_config_error;
+
+typedef struct
+{
+ INTFUNCPTR handler;
+ int arg;
+ int bus;
+ int device;
+} INT_HANDLER;
+
+extern UINT secondary_busno;
+extern UINT primary_busno;
+
+extern STATUS pci_to_xint(int device, int intpin, int *xint);
+extern int isHost(void);
+extern int off_ppci_bus (int busno);
+
+#define MAX_SPURIOUS_CNT 5
+#define NUM_PCI_XINTS 4 /* SINTA - SINTD */
+#define MAX_PCI_HANDLERS 8 /* maximum handlers per PCI Xint */
+
+/* 02/02/01 jwf */
+int ecc_error_reported = FALSE;
+
+static int isr_xint0_spurious = 0;
+static int isr_xint1_spurious = 0;
+static int isr_xint2_spurious = 0;
+static int isr_xint3_spurious = 0;
+
+/* Table where the interrupt handler addresses are stored. */
+INT_HANDLER pci_int_handlers[4][MAX_PCI_HANDLERS];
+
+/* Other User Interrupt Service Routines */
+
+void (*usr_timer_isr)(int) = NULL;
+int usr_timer_arg = 0;
+void (*usr_enet_isr)(int) = NULL;
+int usr_enet_arg = 0;
+void (*usr_uart1_isr)(int) = NULL;
+int usr_uart1_arg = 0;
+void (*usr_uart2_isr)(int) = NULL;
+int usr_uart2_arg = 0;
+void (*usr_dma0_isr)(int) = NULL;
+int usr_dma0_arg = 0;
+void (*usr_dma1_isr)(int) = NULL;
+int usr_dma1_arg = 0;
+void (*usr_dma2_isr)(int) = NULL;
+int usr_dma2_arg = 0;
+void (*usr_pm_isr)(int) = NULL;
+int usr_pm_arg = 0;
+void (*usr_aa_isr)(int) = NULL;
+int usr_aa_arg = 0;
+void (*usr_i2c_isr)(int) = NULL;
+int usr_i2c_arg = 0;
+void (*usr_mu_isr)(int) = NULL;
+int usr_mu_arg = 0;
+void (*usr_patu_isr)(int) = NULL;
+int usr_patu_arg = 0;
+
+int ecc_int_handler(void);
+
+
+
+/*********************************
+* PCI interrupt wrappers
+*/
+int sinta_handler(void)
+{
+ int x, serviced = 0;
+ /* cycle through connected interrupt handlers to determine which caused int */
+ for (x = 0; x < MAX_PCI_HANDLERS; x++)
+ {
+ if (pci_int_handlers[0][x].handler != NULL) /* Is a routine installed */
+ if ((*pci_int_handlers[0][x].handler)(pci_int_handlers[0][x].arg) == 1)
+ {
+ serviced = 1;
+ break;
+ }
+ }
+ if (serviced == 0)
+ {
+ isr_xint0_spurious++;
+
+ if (isr_xint0_spurious > MAX_SPURIOUS_CNT)
+ ;
+ }
+ else
+ isr_xint0_spurious = 0;
+
+ return (serviced);
+
+}
+
+int sintb_handler(void)
+{
+ int x, serviced = 0;
+
+ /* cycle through connected interrupt handlers to determine which caused int */
+ for (x = 0; x < MAX_PCI_HANDLERS; x++)
+ {
+ if (pci_int_handlers[1][x].handler != NULL) /* Is a routine installed */
+ if ((*pci_int_handlers[1][x].handler)(pci_int_handlers[1][x].arg) == 1)
+ {
+ serviced = 1;
+ break;
+ }
+ }
+ if (serviced == 0)
+ {
+ isr_xint1_spurious++;
+
+ if (isr_xint1_spurious > MAX_SPURIOUS_CNT)
+ ;
+ }
+ else
+ isr_xint1_spurious = 0;
+
+ return (serviced);
+
+}
+
+int sintc_handler(void)
+{
+
+ int x, serviced = 0;
+
+ /* cycle through connected interrupt handlers to determine which caused int */
+ for (x = 0; x < MAX_PCI_HANDLERS; x++)
+ {
+ if (pci_int_handlers[2][x].handler != NULL) /* Is a routine installed */
+ if ((*pci_int_handlers[2][x].handler)(pci_int_handlers[2][x].arg) == 1)
+ {
+ serviced = 1;
+ break;
+ }
+ }
+ if (serviced == 0)
+ {
+ isr_xint2_spurious++;
+
+ if (isr_xint2_spurious > MAX_SPURIOUS_CNT)
+ ;
+ }
+ else
+ isr_xint2_spurious = 0;
+
+ return (serviced);
+
+}
+
+int sintd_handler(void)
+{
+
+ int x, serviced = 0;
+
+ /* cycle through connected interrupt handlers to determine which caused int */
+ for (x = 0; x < MAX_PCI_HANDLERS; x++)
+ {
+ if (pci_int_handlers[3][x].handler != NULL) /* Is a routine installed */
+ if ((*pci_int_handlers[3][x].handler)(pci_int_handlers[3][x].arg) == 1)
+ {
+ serviced = 1;
+ break;
+ }
+ }
+ if (serviced == 0)
+ {
+ isr_xint3_spurious++;
+
+ if (isr_xint3_spurious > MAX_SPURIOUS_CNT)
+ ;
+ }
+ else
+ isr_xint3_spurious = 0;
+
+ return (serviced);
+
+
+}
+
+
+/******************************************************************************
+*
+* Installs an interrupt handler in the PCI dispatch table, to be called
+* by the appropriate PCI isr (above) when an interrupt occurs.
+*
+* Note: the intline parameter refers to which PCI interrupt INT A - INT D
+*
+* device identifies the PCI device number
+*
+* Note: isrs connected with this function must return 1 if an interrupt is
+* serviced in order to support the PCI interrupt sharing mechanism
+*
+*/
+STATUS pci_isr_connect (int intline, int bus, int device, int (*handler)(int), int arg)
+{
+ int which_xint;
+ int handler_index;
+
+ /* check to see if we are attempting to connect to a PPCI interrupt and we are not
+ a host card */
+ if ((isHost() == FALSE) && (off_ppci_bus(bus) == TRUE))
+ return (ERROR);
+
+ if ((intline < INTA) || (intline > INTD))
+ return (ERROR);
+
+ (void)pci_to_xint(device, intline, &which_xint);
+
+ for (handler_index = 0; handler_index < MAX_PCI_HANDLERS; handler_index++)
+ {
+ if (pci_int_handlers[which_xint][handler_index].handler == NULL)
+ {
+ pci_int_handlers[which_xint][handler_index].handler = handler;
+ pci_int_handlers[which_xint][handler_index].arg = arg;
+ pci_int_handlers[which_xint][handler_index].bus = bus;
+ pci_int_handlers[which_xint][handler_index].device = device;
+ break;
+ }
+ }
+
+ /* if there is no more room in the table return an error */
+ if (handler_index == MAX_PCI_HANDLERS)
+ return (ERROR);
+
+ return (OK);
+}
+
+
+/******************************************************************************
+*
+* Uninstalls an interrupt handler in the PCI dispatch table
+*
+* Note: the intline parameter refers to which PCI interrupt INTA - INTD
+*
+* the device parameter refers to which SPCI device number is sourcing the
+* interrupt
+*
+*/
+STATUS pci_isr_disconnect (int intline, int bus, int device)
+{
+ int which_xint;
+ int handler_index;
+
+ /* check to see if we are attempting to disconnect a PPCI interrupt and we are not
+ a host card */
+ if ((isHost() == FALSE) && (off_ppci_bus(bus) == TRUE))
+ return (ERROR);
+
+ if ((intline < INTA) || (intline > INTD))
+ return (ERROR);
+
+ (void)pci_to_xint(device, intline, &which_xint);
+
+ for (handler_index = 0; handler_index < MAX_PCI_HANDLERS; handler_index++)
+ {
+ if ((pci_int_handlers[which_xint][handler_index].bus == bus) &&
+ (pci_int_handlers[which_xint][handler_index].device == device))
+ {
+ pci_int_handlers[which_xint][handler_index].handler = NULL;
+ pci_int_handlers[which_xint][handler_index].arg = (int)NULL;
+ pci_int_handlers[which_xint][handler_index].bus = (int)NULL;
+ pci_int_handlers[which_xint][handler_index].device = (int)NULL;
+ }
+ }
+
+ /* if the handler was not found in the table return an error */
+ if (handler_index == MAX_PCI_HANDLERS)
+ return (ERROR);
+
+ return (OK);
+}
+
+
+/**********************************************************************************
+* iq80310_irq_handler - Interrupt dispatcher for IQ80310 IRQ Interrupts
+*
+* This function determines the source of the IRQ Interrupt, and calls the
+* corresponding interrupt service routine. If multiple sources are interrupting
+* the dispatcher will call all interrupt handles. Users must clear the interrupt
+* within the interrupt service routine before exiting.
+*
+* IRQ Interrupts are multiplexed from SPCI INTA - INTD, External Device Interrupts,
+* and XINT6 and XINT7 Internal device interrupts.
+*/
+int iq80310_irq_handler(void)
+{
+UINT8* int_status_reg;
+UINT8 int_status;
+int num_sources = 0;
+
+
+/* 12/18/00 jwf */
+unsigned char ri_state;
+unsigned char board_rev;
+unsigned char sint_status; /* holds interrupt status for SINTA-SINTC */
+ ri_state = *( unsigned char * ) 0xfe810006; /* access uart u2 msr reg at addr fe810006 */
+ ri_state &= RI_MASK;
+ if(ri_state == RI_MASK) /* RI# pin on UART2 is grounded */
+ {
+ board_rev = *BOARD_REV_REG_ADDR; /* read Board Revision register */
+ board_rev &= BOARD_REV_MASK; /* isolate LSN */
+ if (board_rev >= BOARD_REV_E) /* Board Rev is at E or higher */
+ {
+ sint_status = *SINT_REG_ADDR; /* read current secondary pci interrupt status */
+ sint_status &= SINT_MASK; /* isolate SINTA, SINTB, and SINTC */
+ switch(sint_status)
+ {
+ case SINTA_INT:
+ num_sources += sinta_handler(); /* IRQ0 = SINTA? */
+/* printf(" sinta status = %#x\n", sint_status); */
+ break;
+ case SINTB_INT:
+ num_sources += sintb_handler(); /* IRQ1 = SINTB? */
+/* printf(" sintb status = %#x\n", sint_status); */
+ break;
+ case SINTC_INT:
+ num_sources += sintc_handler(); /* IRQ2 = SINTC? */
+/* printf(" sintc status = %#x\n", sint_status); */
+ break;
+ default:
+/* printf(" sint? status = %#x\n", sint_status); */
+ break; /* probably should test for more conditions: 011b, 101b, 110b, 111b */
+ }
+ }
+ }
+ else /* RI# pin on UART2 is pulled up to 3.3V. Cannot read board revision register, not implemented */
+ {
+ num_sources += sinta_handler(); /* IRQ0 = SINTA? */
+ num_sources += sintb_handler(); /* IRQ1 = SINTB? */
+ num_sources += sintc_handler(); /* IRQ2 = SINTC? */
+ }
+
+
+ /* 12/18/00 jwf */
+ /* Original code */
+ /* No S_INTA - S_INTC status register, call handlers always */
+ /* This may change in next revision of board */
+ /*num_sources += sinta_handler();*/ /* IRQ0 = SINTA? */
+ /*num_sources += sintb_handler();*/ /* IRQ1 = SINTB? */
+ /*num_sources += sintc_handler();*/ /* IRQ2 = SINTC? */
+
+
+ /* Read IRQ3 Status Register, and if any of the multiple sources are
+ interrupting, call corresponding handler */
+ int_status_reg = (UINT8 *)X3ISR_ADDR;
+ int_status = *int_status_reg;
+ {
+ if (int_status & TIMER_INT) /* timer interrupt? */
+ {
+ /* call user ISR, if connected */
+ if (usr_timer_isr != NULL)
+ (*usr_timer_isr)(usr_timer_arg);
+ else
+ printf ("\nUnhandled Timer Interrupt Detected!\n");
+
+ num_sources++;
+ }
+
+ if (int_status & ENET_INT) /* ethernet interrupt? */
+ {
+ /* call user ISR, if connected */
+ if (usr_enet_isr != NULL)
+ (*usr_enet_isr)(usr_enet_arg);
+ else
+ printf ("\nUnhandled Ethernet Interrupt Detected!\n");
+
+ num_sources++;
+ }
+
+ if (int_status & UART1_INT) /* uart1 interrupt? */
+ {
+ /* call user ISR, if connected */
+ if (usr_uart1_isr != NULL)
+ (*usr_uart1_isr)(usr_uart1_arg);
+ else
+ printf ("\nUnhandled UART1 Interrupt Detected!\n");
+
+ num_sources++;
+ }
+
+ if (int_status & UART2_INT) /* uart2 interrupt? */
+ {
+ /* call user ISR, if connected */
+ if (usr_uart2_isr != NULL)
+ (*usr_uart2_isr)(usr_uart2_arg);
+ else
+ printf ("\nUnhandled UART2 Interrupt Detected!\n");
+ num_sources++;
+ }
+
+ if (int_status & SINTD_INT) /* SPCI_INTD? */
+ {
+ num_sources += sintd_handler();
+ }
+ }
+
+
+ /* Read XINT6 Status Register, and if any of the multiple sources are
+ interrupting, call corresponding handler */
+ int_status_reg = (UINT8 *)X6ISR_ADDR;
+ int_status = *int_status_reg;
+ {
+ if (int_status & DMA0_INT) /* dma0 interrupt? */
+ {
+ if (usr_dma0_isr != NULL)
+ (*usr_dma0_isr)(usr_dma0_arg);
+ else
+ printf ("\nUnhandled DMA Channel 0 Interrupt Detected!\n");
+ num_sources++;
+ }
+
+ if (int_status & DMA1_INT) /* dma1 interrupt? */
+ {
+ if (usr_dma1_isr != NULL)
+ (*usr_dma1_isr)(usr_dma1_arg);
+ else
+ printf ("\nUnhandled DMA Channel 1 Interrupt Detected!\n");
+ num_sources++;
+ }
+
+ if (int_status & DMA2_INT) /* dma2 interrupt? */
+ {
+ if (usr_dma2_isr != NULL)
+ (*usr_dma2_isr)(usr_dma2_arg);
+ else
+ printf ("\nUnhandled DMA Channel 2 Interrupt Detected!\n");
+ num_sources++;
+ }
+
+ if (int_status & PM_INT) /* performance monitoring interrupt? */
+ {
+ if (usr_pm_isr != NULL)
+ (*usr_pm_isr)(usr_pm_arg);
+ else
+ printf ("\nUnhandled Performance Monitoring Unit Interrupt Detected!\n");
+ num_sources++;
+ }
+
+ if (int_status & AA_INT) /* application accelerator interrupt? */
+ {
+ if (usr_aa_isr != NULL)
+ (*usr_aa_isr)(usr_aa_arg);
+ else
+ printf ("\nUnhandled Application Accelerating Unit Interrupt Detected!\n");
+ num_sources++;
+ }
+ }
+
+
+ /* Read XINT7 Status Register, and if any of the multiple sources are
+ interrupting, call corresponding handler */
+ int_status_reg = (UINT8 *)X7ISR_ADDR;
+ int_status = *int_status_reg;
+ {
+ if (int_status & I2C_INT) /* i2c interrupt? */
+ {
+ if (usr_i2c_isr != NULL)
+ (*usr_i2c_isr)(usr_i2c_arg);
+ else
+ printf ("\nUnhandled I2C Unit Interrupt Detected!\n");
+ num_sources++;
+ }
+
+ if (int_status & MU_INT) /* messaging unit interrupt? */
+ {
+ if (usr_mu_isr != NULL)
+ (*usr_mu_isr)(usr_mu_arg);
+ else
+ printf ("\nUnhandled Messaging Unit Interrupt Detected!\n");
+ num_sources++;
+ }
+
+ if (int_status & PATU_INT) /* primary ATU / BIST start interrupt? */
+ {
+ if (usr_patu_isr != NULL)
+ (*usr_patu_isr)(usr_patu_arg);
+ else
+ printf ("\nUnhandled Primary ATU Interrupt Detected!\n");
+ num_sources++;
+ }
+ }
+
+ /* return the number of interrupt sources found */
+ return (num_sources);
+}
+
+
+
+
+
+/****************************************************************
+* nmi_ecc_isr - ECC NMI Interrupt Handler
+*
+* This module handles the NMI caused by an ECC error.
+* For a Single-bit error it does a read-nodify-write
+* to correct the error in memory. For a multi-bit or
+* nibble error it does absolutely nothing.
+*/
+void nmi_ecc_isr(void)
+{
+ UINT32 eccr_register;
+ UINT32* reg32;
+
+ /* Read current state of ECC register */
+ eccr_register = *(UINT32 *)ECCR_ADDR;
+
+ /* Turn off all ecc error reporting */
+ *(UINT32 *)ECCR_ADDR = 0x4;
+
+ /* Check for ECC Error 0 */
+ if(*(UINT32 *)MCISR_ADDR & 0x1)
+ {
+ reg32 = (UINT32*)ELOG0_ADDR;
+ error_print("ELOG0 = 0x%X\n",*reg32,0,0,0);
+
+ reg32 = (UINT32*)ECAR0_ADDR;
+ error_print("ECC Error Detected at Address 0x%X\n",*reg32,0,0,0);
+
+ /* Check for single-bit error */
+ if(!(*(UINT32 *)ELOG0_ADDR & 0x00000100))
+ {
+ /* call ECC restoration function */
+ _scrub_ecc(*reg32);
+
+ /* Clear the MCISR */
+ *(UINT32 *)MCISR_ADDR = 0x1;
+ }
+ else
+ error_print("Multi-bit or nibble error\n",0,0,0,0);
+ }
+
+ /* Check for ECC Error 1 */
+ if(*(UINT32 *)MCISR_ADDR & 0x2)
+ {
+ reg32 = (UINT32*)ELOG1_ADDR;
+ error_print("ELOG0 = 0x%X\n",*reg32,0,0,0);
+
+ reg32 = (UINT32*)ECAR1_ADDR;
+ error_print("ECC Error Detected at Address 0x%X\n",*reg32,0,0,0);
+
+ /* Check for single-bit error */
+ if(!(*(UINT32 *)ELOG1_ADDR & 0x00000100))
+ {
+ /* call ECC restoration function */
+ _scrub_ecc(*reg32);
+
+ /* Clear the MCISR */
+ *(UINT32 *)MCISR_ADDR = 0x2;
+ }
+ else
+ error_print("Multi-bit or nibble error\n",0,0,0,0);
+ }
+
+ /* Check for ECC Error N */
+ if(*(UINT32 *)MCISR_ADDR & 0x4)
+ {
+ /* Clear the MCISR */
+ *(UINT32 *)MCISR_ADDR = 0x4;
+ error_print("Uncorrectable error during RMW\n",0,0,0,0);
+ }
+
+ /* Turn on ecc error reporting */
+ *(UINT32 *)ECCR_ADDR = eccr_register;
+}
+
+
+
+
+/******************************************************************************
+* iq80310_fiq_handler - Interrupt dispatcher for IQ80310 FIQ Interrupts
+*
+*
+*/
+int iq80310_fiq_handler(void)
+{
+
+unsigned long nmi_status = *(volatile unsigned long *)NISR_ADDR;
+unsigned long status;
+int srcs_found = 0;
+
+ if (nmi_status & MCU_ERROR)
+ {
+ status = *(volatile unsigned long *)MCISR_ADDR;
+ *MSB_DISPLAY_REG = LETTER_E;
+ if (status & 0x001)
+ *LSB_DISPLAY_REG = ONE;
+ if (status & 0x002)
+ *LSB_DISPLAY_REG = TWO;
+ if (status & 0x004)
+ *LSB_DISPLAY_REG = FOUR;
+ srcs_found++;
+#if 0
+ error_print ("**** 80312 Memory Controller Error ****\n",0,0,0,0);
+ if (status & 0x001) error_print ("One ECC Error Detected and Recorded in ELOG0\n",0,0,0,0);
+ if (status & 0x002) error_print ("Second ECC Error Detected and Recorded in ELOG1\n",0,0,0,0);
+ if (status & 0x004) error_print ("Multiple ECC Errors Detected\n",0,0,0,0);
+#endif
+
+ /* call ecc interrupt handler */
+ nmi_ecc_isr();
+
+ /* clear the interrupt condition*/
+ AND_WORD((volatile unsigned long *)MCISR_ADDR, 0x07);
+
+/* 02/02/01 jwf */
+ ecc_error_reported = TRUE;
+
+ }
+
+
+ if (nmi_status & PATU_ERROR)
+ {
+ srcs_found++;
+ error_print ("**** Primary ATU Error ****\n",0,0,0,0);
+ status = *(volatile unsigned long *)PATUISR_ADDR;
+ if (status & 0x001) error_print ("PPCI Master Parity Error\n",0,0,0,0);
+ if (status & 0x002) error_print ("PPCI Target Abort (target)\n",0,0,0,0);
+ if (status & 0x004) error_print ("PPCI Target Abort (master)\n",0,0,0,0);
+ if (status & 0x008) error_print ("PPCI Master Abort\n",0,0,0,0);
+ if (status & 0x010) error_print ("Primary P_SERR# Detected\n",0,0,0,0);
+ if (status & 0x080) error_print ("Internal Bus Master Abort\n",0,0,0,0);
+ if (status & 0x100) error_print ("PATU BIST Interrupt\n",0,0,0,0);
+ if (status & 0x200) error_print ("PPCI Parity Error Detected\n",0,0,0,0);
+ if (status & 0x400) error_print ("Primary P_SERR# Asserted\n",0,0,0,0);
+
+ /* clear the interrupt conditions */
+ AND_WORD((volatile unsigned long *)PATUISR_ADDR, 0x79f);
+ CLEAR_PATU_STATUS();
+
+ /* tell the config cleanup code about error */
+ if (pci_config_cycle == 1)
+ pci_config_error = TRUE;
+ }
+
+ if (nmi_status & SATU_ERROR)
+ {
+ srcs_found++;
+ error_print ("**** Secondary ATU Error ****\n",0,0,0,0);
+ status = *(volatile unsigned long *)SATUISR_ADDR;
+ if (status & 0x001) error_print ("SPCI Master Parity Error\n",0,0,0,0);
+ if (status & 0x002) error_print ("SPCI Target Abort (target)\n",0,0,0,0);
+ if (status & 0x004) error_print ("SPCI Target Abort (master)\n",0,0,0,0);
+ if (status & 0x008) error_print ("SPCI Master Abort\n",0,0,0,0);
+ if (status & 0x010) error_print ("Secondary P_SERR# Detected\n",0,0,0,0);
+ if (status & 0x080) error_print ("Internal Bus Master Abort\n",0,0,0,0);
+ if (status & 0x200) error_print ("SPCI Parity Error Detected\n",0,0,0,0);
+ if (status & 0x400) error_print ("Secondary S_SERR# Asserted\n",0,0,0,0);
+
+ /* clear the interrupt conditions */
+ AND_WORD((volatile unsigned long *)SATUISR_ADDR, 0x69f);
+ CLEAR_SATU_STATUS();
+
+ /* tell the config cleanup code about error */
+ if (pci_config_cycle == 1)
+ pci_config_error = TRUE;
+ }
+
+ if (nmi_status & PBRIDGE_ERROR)
+ {
+ srcs_found++;
+ error_print ("**** Primary Bridge Error ****\n",0,0,0,0);
+ status = *(volatile unsigned long *)PBISR_ADDR;
+ if (status & 0x001) error_print ("PPCI Master Parity Error\n",0,0,0,0);
+ if (status & 0x002) error_print ("PPCI Target Abort (Target)\n",0,0,0,0);
+ if (status & 0x004) error_print ("PPCI Target Abort (Master)\n",0,0,0,0);
+ if (status & 0x008) error_print ("PPCI Master Abort\n",0,0,0,0);
+ if (status & 0x010) error_print ("Primary P_SERR# Asserted\n",0,0,0,0);
+ if (status & 0x020) error_print ("PPCI Parity Error Detected\n",0,0,0,0);
+
+ /* clear the interrupt condition */
+ AND_WORD((volatile unsigned long *)PBISR_ADDR, 0x3f);
+ CLEAR_PBRIDGE_STATUS();
+
+ /* tell the config cleanup code about error */
+ if (pci_config_cycle == 1)
+ pci_config_error = TRUE;
+ }
+
+ if (nmi_status & SBRIDGE_ERROR)
+ {
+ srcs_found++;
+
+ /* don't print configuration secondary bridge errors */
+
+ /* clear the interrupt condition */
+ AND_WORD((volatile unsigned long *)SBISR_ADDR, 0x7f);
+ CLEAR_SBRIDGE_STATUS();
+
+ /* tell the config cleanup code about error */
+ if (pci_config_cycle == 1)
+ pci_config_error = TRUE;
+ }
+
+ if (nmi_status & DMA_0_ERROR)
+ {
+ srcs_found++;
+ error_print ("**** DMA Channel 0 Error ****\n",0,0,0,0);
+ status = *(volatile unsigned long *)CSR0_ADDR;
+ if (status & 0x001) error_print ("DMA Channel 0 PCI Parity Error\n",0,0,0,0);
+ if (status & 0x004) error_print ("DMA Channel 0 PCI Target Abort\n",0,0,0,0);
+ if (status & 0x008) error_print ("DMA Channel 0 PCI Master Abort\n",0,0,0,0);
+ if (status & 0x020) error_print ("Internal PCI Master Abort\n",0,0,0,0);
+ /* clear the interrupt condition */
+ AND_WORD((volatile unsigned long *)CSR0_ADDR, 0x2D);
+ }
+
+ if (nmi_status & DMA_1_ERROR)
+ {
+ srcs_found++;
+ error_print ("**** DMA Channel 1 Error ****\n",0,0,0,0);
+ status = *(volatile unsigned long *)CSR1_ADDR;
+ if (status & 0x001) error_print ("DMA Channel 1 PCI Parity Error\n",0,0,0,0);
+ if (status & 0x004) error_print ("DMA Channel 1 PCI Target Abort\n",0,0,0,0);
+ if (status & 0x008) error_print ("DMA Channel 1 PCI Master Abort\n",0,0,0,0);
+ if (status & 0x020) error_print ("Internal PCI Master Abort\n",0,0,0,0);
+
+ /* clear the interrupt condition */
+ AND_WORD((volatile unsigned long *)CSR1_ADDR, 0x2D);
+ }
+
+ if (nmi_status & DMA_2_ERROR)
+ {
+ srcs_found++;
+ error_print ("**** DMA Channel 2 Error ****\n",0,0,0,0);
+ status = *(volatile unsigned long *)CSR2_ADDR;
+ if (status & 0x001) error_print ("DMA Channel 2 PCI Parity Error\n",0,0,0,0);
+ if (status & 0x004) error_print ("DMA Channel 2 PCI Target Abort\n",0,0,0,0);
+ if (status & 0x008) error_print ("DMA Channel 2 PCI Master Abort\n",0,0,0,0);
+ if (status & 0x020) error_print ("Internal PCI Master Abort\n",0,0,0,0);
+
+ /* clear the interrupt condition */
+ AND_WORD((volatile unsigned long *)CSR2_ADDR, 0x2D);
+ }
+
+ if (nmi_status & MU_ERROR)
+ {
+ status = *(volatile unsigned long *)IISR_ADDR;
+ if (status & 0x20)
+ {
+ srcs_found++;
+ error_print ("Messaging Unit Outbound Free Queue Overflow\n",0,0,0,0);
+
+ /* clear the interrupt condition; note that the clearing of the NMI doorbell
+ is handled by the PCI comms code */
+ } AND_WORD((volatile unsigned long *)IISR_ADDR, 0x20);
+ }
+
+ if (nmi_status & AAU_ERROR)
+ {
+ srcs_found++;
+ error_print ("**** Application Accelerator Unit Error ****\n",0,0,0,0);
+ status = *(volatile unsigned long *)ASR_ADDR;
+ if (status & 0x020) error_print ("Internal PCI Master Abort\n",0,0,0,0);
+
+ /* clear the interrupt condition */
+ AND_WORD((volatile unsigned long *)ASR_ADDR, 0x20);
+ }
+
+ if (nmi_status & BIU_ERROR)
+ {
+ srcs_found++;
+ error_print ("**** Bus Interface Unit Error ****\n",0,0,0,0);
+ status = *(volatile unsigned long *)BIUISR_ADDR;
+ if (status & 0x004) error_print ("Internal PCI Master Abort\n",0,0,0,0);
+
+ /* clear the interrupt condition */
+ AND_WORD((volatile unsigned long *)BIUISR_ADDR, 0x04);
+ }
+
+ return (srcs_found);
+
+}
+
+
+/**********************************************************************
+* isr_connect - Disconnect a user Interrupt Service Routine
+*
+* NOT TO BE USED FOR SPCI INTERRUPTS! - use pci_isr_connect instead
+*
+*/
+int isr_connect(int int_num, void (*handler)(int), int arg)
+{
+ switch (int_num)
+ {
+
+ case DMA0_INT_ID:
+ usr_dma0_isr = handler;
+ usr_dma0_arg = arg;
+ break;
+ case DMA1_INT_ID:
+ usr_dma1_isr = handler;
+ usr_dma1_arg = arg;
+ break;
+ case DMA2_INT_ID:
+ usr_dma2_isr = handler;
+ usr_dma2_arg = arg;
+ break;
+ case PM_INT_ID:
+ usr_pm_isr = handler;
+ usr_pm_arg = arg;
+ break;
+ case AA_INT_ID:
+ usr_aa_isr = handler;
+ usr_aa_arg = arg;
+ break;
+ case I2C_INT_ID:
+ usr_i2c_isr = handler;
+ usr_i2c_arg = arg;
+ break;
+ case MU_INT_ID:
+ usr_mu_isr = handler;
+ usr_mu_arg = arg;
+ break;
+ case PATU_INT_ID:
+ usr_patu_isr = handler;
+ usr_patu_arg = arg;
+ break;
+ case TIMER_INT_ID:
+ usr_timer_isr = handler;
+ usr_timer_arg = arg;
+ break;
+ case ENET_INT_ID:
+ usr_enet_isr = handler;
+ usr_enet_arg = arg;
+ break;
+ case UART1_INT_ID:
+ usr_uart1_isr = handler;
+ usr_uart1_arg = arg;
+ break;
+ case UART2_INT_ID:
+ usr_uart2_isr = handler;
+ usr_uart2_arg = arg;
+ break;
+ default:
+ return (ERROR);
+ break;
+ }
+
+ return (OK);
+}
+
+/**********************************************************************
+* isr_disconnect - Disconnect a user Interrupt Service Routine
+*
+* NOT TO BE USED FOR SPCI INTERRUPTS! - use pci_isr_disconnect instead
+*
+*/
+int isr_disconnect(int int_num)
+{
+ switch (int_num)
+ {
+
+ case DMA0_INT_ID:
+ usr_dma0_isr = NULL;
+ usr_dma0_arg = 0;
+ break;
+ case DMA1_INT_ID:
+ usr_dma1_isr = NULL;
+ usr_dma1_arg = 0;
+ break;
+ case DMA2_INT_ID:
+ usr_dma2_isr = NULL;
+ usr_dma2_arg = 0;
+ break;
+ case PM_INT_ID:
+ usr_pm_isr = NULL;
+ usr_pm_arg = 0;
+ break;
+ case AA_INT_ID:
+ usr_aa_isr = NULL;
+ usr_aa_arg = 0;
+ break;
+ case I2C_INT_ID:
+ usr_i2c_isr = NULL;
+ usr_i2c_arg = 0;
+ break;
+ case MU_INT_ID:
+ usr_mu_isr = NULL;
+ usr_mu_arg = 0;
+ break;
+ case PATU_INT_ID:
+ usr_patu_isr = NULL;
+ usr_patu_arg = 0;
+ break;
+ case TIMER_INT_ID:
+ usr_timer_isr = NULL;
+ usr_timer_arg = 0;
+ break;
+ case ENET_INT_ID:
+ usr_enet_isr = NULL;
+ usr_enet_arg = 0;
+ break;
+ case UART1_INT_ID:
+ usr_uart1_isr = NULL;
+ usr_uart1_arg = 0;
+ break;
+ case UART2_INT_ID:
+ usr_uart2_isr = NULL;
+ usr_uart2_arg = 0;
+ break;
+ default:
+ return (ERROR);
+ break;
+ }
+
+ /* i960 disabled interrupt here - should we? */
+
+ return (OK);
+}
+
+/********************************************************************
+* disable_external_interrupt - Mask an external interrupt
+*
+*/
+int disable_external_interrupt(int int_id)
+{
+
+unsigned char* ext_mask_reg = (unsigned char*) X3MASK_ADDR;
+unsigned char new_mask_value;
+
+ /* make sure interrupt to enable is an external interrupt */
+ if ((int_id < TIMER_INT_ID) || (int_id > SINTD_INT_ID))
+ return (ERROR);
+
+ new_mask_value = *ext_mask_reg; /* read current mask status */
+
+ switch (int_id)
+ {
+ case TIMER_INT_ID:
+ new_mask_value |= TIMER_INT;
+ break;
+ case ENET_INT_ID:
+ new_mask_value |= ENET_INT;
+ break;
+ case UART1_INT_ID:
+ new_mask_value |= UART1_INT;
+ break;
+ case UART2_INT_ID:
+ new_mask_value |= UART2_INT;
+ break;
+ case SINTD_INT_ID:
+ new_mask_value |= SINTD_INT;
+ break;
+ default:
+ break; /* leave mask register as it was */
+ }
+
+ *ext_mask_reg = new_mask_value; /* set new mask value */
+
+ return (OK);
+
+}
+
+
+
+/********************************************************************
+* enable_external_interrupt - Unmask an external interrupt
+*
+*/
+int enable_external_interrupt(int int_id)
+{
+
+unsigned char* ext_mask_reg = (unsigned char*) X3MASK_ADDR;
+unsigned char new_mask_value;
+
+ /* make sure interrupt to enable is an external interrupt */
+ if ((int_id < TIMER_INT_ID) || (int_id > SINTD_INT_ID))
+ return (ERROR);
+
+
+ new_mask_value = *ext_mask_reg; /* read current mask status */
+
+ switch (int_id)
+ {
+ case TIMER_INT_ID:
+ new_mask_value &= ~(TIMER_INT);
+ break;
+ case ENET_INT_ID:
+ new_mask_value &= ~(ENET_INT);
+ break;
+ case UART1_INT_ID:
+ new_mask_value &= ~(UART1_INT);
+ break;
+ case UART2_INT_ID:
+ new_mask_value &= ~(UART2_INT);
+ break;
+ case SINTD_INT_ID:
+ new_mask_value &= ~(SINTD_INT);
+ break;
+ default:
+ break; /* leave mask register as it was */
+ }
+
+ *ext_mask_reg = new_mask_value; /* set new mask value */
+
+ return (OK);
+}
+
+
+void error_print (
+ char *fmt,
+ int arg0,
+ int arg1,
+ int arg2,
+ int arg3
+ )
+{
+ /* Wait until host configures the boards to start printing NMI errors */
+ UINT32* atu_reg = (UINT32*)PIABAR_ADDR;
+ if ((*atu_reg & 0xfffffff0) == 0)
+ return;
+ if (nmi_verbose) printf (fmt, arg0, arg1, arg2, arg3);
+ return;
+}
+
+extern void __diag_IRQ(void);
+extern void __diag_FIQ(void);
+
+void config_ints(void)
+{
+int xint, x;
+
+ unsigned int* pirsr_ptr = (unsigned int*)PIRSR_ADDR;
+ *pirsr_ptr = 0xf; /* this is an errata in the original Yavapai manual.
+ The interrupt steering bits are reversed, so a '1'
+ routes XINT interrupts to FIQ
+ */
+
+ /* install diag IRQ handlers */
+ ((volatile unsigned *)0x20)[6] = (unsigned)__diag_IRQ;
+ ((volatile unsigned *)0x20)[7] = (unsigned)__diag_FIQ;
+ _flushICache();
+
+ /* make sure interrupts are enabled in CSPR */
+
+ _cspr_enable_irq_int();
+
+ _cspr_enable_fiq_int();
+
+ /* initialize the PCI interrupt table */
+ for (xint = 0; xint < NUM_PCI_XINTS; xint++)
+ {
+ for (x = 0; x < MAX_PCI_HANDLERS; x++)
+ {
+ pci_int_handlers[xint][x].handler = NULL;
+ pci_int_handlers[xint][x].arg = (int)NULL;
+ pci_int_handlers[xint][x].bus = (int)NULL;
+ pci_int_handlers[xint][x].device = (int)NULL;
+ }
+ }
+
+
+}
+
+
+
diff --git a/ecos/packages/hal/arm/xscale/iq80310/current/src/diag/io_utils.c b/ecos/packages/hal/arm/xscale/iq80310/current/src/diag/io_utils.c
new file mode 100644
index 0000000..20d4194
--- /dev/null
+++ b/ecos/packages/hal/arm/xscale/iq80310/current/src/diag/io_utils.c
@@ -0,0 +1,257 @@
+//=============================================================================
+//
+// io_utils.c - Cyclone Diagnostics
+//
+//=============================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): Scott Coulter, Jeff Frazier, Eric Breeden
+// Contributors:
+// Date: 2001-01-25
+// Purpose:
+// Description:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================*/
+
+/*
+ * i/o routines for tests. Greg Ames, 9/17/90.
+ *
+ * Version: @(#)test_io.c 1.2 8/26/93
+ */
+#include <redboot.h>
+#include <cyg/infra/diag.h>
+#define printf diag_printf
+
+
+#define TRUE 1
+#define FALSE 0
+
+
+#define ASCII_TO_DEC 48
+void atod(char a, int* b)
+{
+ *b = (int)(a - ASCII_TO_DEC);
+}
+
+char xgetchar(void)
+{
+ hal_virtual_comm_table_t* __chan = CYGACC_CALL_IF_CONSOLE_PROCS();
+
+ if (__chan == NULL)
+ __chan = CYGACC_CALL_IF_DEBUG_PROCS();
+
+ return CYGACC_COMM_IF_GETC(*__chan);
+}
+
+int xgetchar_timeout(char *ch, int msec)
+{
+ bool res;
+ int old_to;
+ hal_virtual_comm_table_t *__chan;
+
+ __chan = CYGACC_CALL_IF_CONSOLE_PROCS();
+ if (__chan == NULL)
+ __chan = CYGACC_CALL_IF_DEBUG_PROCS();
+
+ old_to = CYGACC_COMM_IF_CONTROL(*__chan, __COMMCTL_SET_TIMEOUT, msec);
+ res = CYGACC_COMM_IF_GETC_TIMEOUT(*__chan, ch);
+ CYGACC_COMM_IF_CONTROL(*__chan, __COMMCTL_SET_TIMEOUT, old_to);
+
+ return res;
+}
+
+/*
+ * naive implementation of "gets"
+ * (big difference from fgets == strips newline character)
+ */
+char* sgets(char *s)
+{
+ char *retval = s;
+ char ch;
+
+ while ((ch = (char)xgetchar())) {
+ if (ch == 0x0d) { /* user typed enter */
+ printf("\n");
+ break;
+ }
+ if (ch == 0x08) { /* user typed backspace */
+ printf ("\b");
+ printf (" ");
+ printf ("\b");
+ s--;
+ } else { /* user typed another character */
+ printf("%c", ch);
+ *s++ = ch;
+ }
+ }
+
+ *s = '\0';
+ return retval;
+}
+
+
+/* Returns true if theChar is a valid hex digit, false if not */
+char ishex(char theChar)
+{
+ switch(theChar) {
+ case '0':
+ case '1':
+ case '2':
+ case '3':
+ case '4':
+ case '5':
+ case '6':
+ case '7':
+ case '8':
+ case '9':
+ case 'A':
+ case 'a':
+ case 'B':
+ case 'b':
+ case 'C':
+ case 'c':
+ case 'D':
+ case 'd':
+ case 'E':
+ case 'e':
+ case 'F':
+ case 'f':
+ return 1;
+ default:
+ return 0;
+ }
+}
+
+
+/* Returns true if theChar is a valid decimal digit, false if not */
+char isdec(char theChar)
+{
+ switch(theChar) {
+ case '0':
+ case '1':
+ case '2':
+ case '3':
+ case '4':
+ case '5':
+ case '6':
+ case '7':
+ case '8':
+ case '9':
+ return 1;
+ default:
+ return 0;
+ }
+}
+
+/* Convert ascii code of hex digit to number (0-15) */
+char hex2dec(char hex)
+{
+ if ((hex >= '0') && (hex <= '9'))
+ return hex - '0';
+ else if ((hex >= 'a') && (hex <= 'f'))
+ return hex - 'a' + 10;
+ else
+ return hex - 'A' + 10;
+}
+
+
+/* Convert number (0-15) to ascii code of hex digit */
+char dec2hex(char dec)
+{
+ return (dec <= 9) ? (dec + '0') : (dec - 10 + 'A');
+}
+
+
+/* Output an 8 bit number as 2 hex digits */
+void hex8out(unsigned char num)
+{
+ printf("%02X",num);
+}
+
+
+/* Output an 32 bit number as 8 hex digits */
+void hex32out(unsigned long num)
+{
+ printf("%08X",num);
+}
+
+
+/* Input a number as (at most 8) hex digits - returns value entered */
+long hexIn(void)
+{
+ char input[40];
+ long num;
+ register int i;
+
+ i = 0;
+ num = 0;
+
+ if (sgets (input)) { /* grab a line */
+ num = hex2dec(input[i++]); /* Convert MSD to dec */
+ while(ishex(input[i]) && input[i]) { /* Get next hex digit */
+ num <<= 4; /* Make room for next digit */
+ num += hex2dec(input[i++]); /* Add it in */
+ }
+ }
+ return num;
+}
+
+
+/* Input a number as decimal digits - returns value entered */
+long decIn(void)
+{
+ char input[40];
+ int num;
+ int tmp;
+ register int i;
+
+ i = 0;
+ num = 0;
+
+ if (sgets (input)) { /* grab a line */
+ atod(input[i++], &num); /* Convert MSD to decimal */
+ while(isdec(input[i]) && input[i]) { /* Get next decimal digit */
+ num *= 10; /* Make room for next digit */
+ atod(input[i++], &tmp);
+ num += tmp; /* Add it in */
+ }
+ }
+
+ return (num);
+}
+
+
diff --git a/ecos/packages/hal/arm/xscale/iq80310/current/src/diag/iq80310.h b/ecos/packages/hal/arm/xscale/iq80310/current/src/diag/iq80310.h
new file mode 100644
index 0000000..021d6fa
--- /dev/null
+++ b/ecos/packages/hal/arm/xscale/iq80310/current/src/diag/iq80310.h
@@ -0,0 +1,551 @@
+#ifndef CYGONCE_IQ80310_H
+#define CYGONCE_IQ80310_H
+//=============================================================================
+//
+// iq80310.h - Cyclone Diagnostics
+//
+//=============================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): Scott Coulter, Jeff Frazier, Eric Breeden
+// Contributors:
+// Date: 2001-01-25
+// Purpose:
+// Description:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================*/
+
+/******************************************************************************/
+/* iq80310.h - Header file for Cyclone IQ80310 Evaluation Board */
+/* */
+/* modification history */
+/* -------------------- */
+/* 07sep00, ejb, Written for IQ80310 Cygmon diagnostics */
+/* 18dec00 jwf */
+/* 09feb01 jwf */
+/******************************************************************************/
+
+#ifndef NULL
+#define NULL ((void *)0)
+#endif
+
+#ifndef ERROR
+#define ERROR -1
+#endif
+
+#ifndef OK
+#define OK 0
+#endif
+
+#ifndef TRUE
+#define TRUE 1
+#endif
+
+#ifndef FALSE
+#define FALSE 0
+#endif
+
+#include <cyg/infra/diag.h>
+#define printf diag_printf
+
+#define RAM_FUNC_SECT
+
+/* 02/09/01 jwf */
+/* Specify the operating system for version information retrieval */
+#define CYGNUS_CYGMON_OS FALSE
+#if CYGNUS_CYGMON_OS
+ #define REDHAT_REDBOOT_OS FALSE
+#else
+ #define REDHAT_REDBOOT_OS TRUE
+#endif
+
+typedef int STATUS;
+typedef unsigned char UCHAR;
+typedef unsigned char UINT8;
+typedef unsigned short USHORT;
+typedef unsigned short UINT16;
+typedef unsigned long ULONG;
+typedef unsigned int UINT;
+typedef unsigned int UINT32;
+typedef int (*INTFUNCPTR) (int);
+typedef int (*FUNCPTR) (void);
+typedef void (*VOIDFUNCPTR) (int);
+
+/* board specific definitions */
+
+
+#define MEMBASE_DRAM 0xa0000000
+
+
+/* UART definitions */
+#define SCALE 0x10000 /* distance between port addresses */
+#define TERMINAL 0xfe800000 /* Terminal base address */
+#define ACCESS_DELAY 5
+#define DFLTPORT 0 /* channel 2 on 16C552 */
+#define XTAL 1843200 /* frequency of baud rate generation crystal */
+
+/* Backplane Detect Register */
+//#define BACKPLANE_DET_REG (volatile unsigned char *)0xfe870000
+#define BP_HOST_BIT 0x1
+
+/* PAL-based external timer definitions */
+//#define TIMER_LA0_REG_ADDR (volatile unsigned char *)0xfe880000
+//#define TIMER_LA1_REG_ADDR (volatile unsigned char *)0xfe890000
+//#define TIMER_LA2_REG_ADDR (volatile unsigned char *)0xfe8a0000
+//#define TIMER_LA3_REG_ADDR (volatile unsigned char *)0xfe8b0000
+//#define TIMER_ENABLE_REG_ADDR (volatile unsigned char *)0xfe8c0000
+
+#define TIMER_COUNT_MASK 0x5f /* 6 bits of timer data with the MSB in bit 6 not bit 5 */
+#define TIMER_CNT_ENAB 0x1
+#define TIMER_INT_ENAB 0x2
+#define EXT_TIMER_CLK_FREQ 33000000 /* external timer runs at 33 MHz */
+#define TICKS_10MSEC 100 /* 10msec = 100 ticks/sec */
+#define EXT_TIMER_10MSEC_COUNT (EXT_TIMER_CLK_FREQ / TICKS_10MSEC)
+#define TICKS_5MSEC 200 /* 5msec = 200 ticks/sec */
+#define EXT_TIMER_5MSEC_COUNT (EXT_TIMER_CLK_FREQ / TICKS_5MSEC)
+
+#define EXT_TIMER_CNT_ENAB() (*TIMER_ENABLE_REG_ADDR |= TIMER_CNT_ENAB)
+#define EXT_TIMER_CNT_DISAB() (*TIMER_ENABLE_REG_ADDR &= ~TIMER_CNT_ENAB)
+#define EXT_TIMER_INT_ENAB() (*TIMER_ENABLE_REG_ADDR |= TIMER_INT_ENAB)
+#define EXT_TIMER_INT_DISAB() (*TIMER_ENABLE_REG_ADDR &= ~TIMER_INT_ENAB)
+
+/* 80312 Interrupt Status Registers */
+#define X3ISR_ADDR 0xfe820000 /* XINT3 (external interrupts) Status Register */
+#define X3MASK_ADDR 0xfe860000 /* XINT3 Mask Register */
+
+
+/* 12/18/00 jwf */
+/* CPLD Read only Registers */
+#define BOARD_REV_REG_ADDR (volatile unsigned char *)0xfe830000 /* Board Revision Register, xxxxbbbb=0x2<-->Rev B Board, Note: This was not implemented in the CPLD for board revisions A,B,C and D. */
+#define BOARD_REV_E (unsigned char)0x5 /* BOARD REV E */
+#define BOARD_REV_MASK (unsigned char)0xf /* use only b0-b3 */
+#define CPLD_REV_REG_ADDR (volatile unsigned char *)0xfe840000 /* CPLD Revision Register, data examples: xxxxbbbb=0x3<-->Rev C CPLD(used on PCI-700 Rev D Board), xxxxbbbb=0x4<-->Rev D CPLD(used on PCI-700 Rev E Board) */
+#define SINT_REG_ADDR (volatile unsigned char *)0xfe850000 /* SINTA-SINTC secondary PCI interrupt status register */
+/* SINT_REG_ADDR Register Interrupt Status bit definitions */
+#define SINTA_INT (unsigned char)0x1 /* b0=1, Secondary PCI (S_INTA) Interrupt Pending */
+#define SINTB_INT (unsigned char)0x2 /* b1=1, Secondary PCI (S_INTB) Interrupt Pending */
+#define SINTC_INT (unsigned char)0x4 /* b2=1, Secondary PCI (S_INTC) Interrupt Pending */
+#define SINT_MASK (unsigned char)0x7 /* isolate bits b0-b2 */
+#define RI_MASK (unsigned char)0x40 /* use to isolate bit 6, Ring Indicator, of MSR in UART 2 */
+
+/* Intel 28F640J3A Strata Flash Memory Definitions */
+#define NUM_FLASH_BANKS 1 /* number of flash banks, there is only 1 flash memory chip on the pci-700 board */
+#define FLASH_WIDTH 1 /* width of flash in bytes */
+#define FLASH_BASE_ADDR 0x00000000 /* base address of flash block 0, avoid this area, vectors and cygmon code occupy addresses 0x2000h-0x28000h */
+#define DEV_CODE_ADDR (0x00000001 << 1) /* address of Device Code in Flash memory, note that address bit A0 is not used, must shift 0x00000001<<1=0x00000002 */
+
+/* 10/17/00 jwf */
+#define FLASH_BLK4_BASE_ADDR 0x80000
+
+#define FLASH_TOP_ADDR 0x7fffff /* last address of last block of flash memory */
+#define FLASH_ADDR 0x00000000 /* base address of flash block 0, avoid this area, vectors and cygmon code occupy addresses 0x2000h-0x28000h */
+#define FLASH_ADDR_INCR 0x00020000 /* address offset of each flash block, 128K block, byte-wide (X8) mode, device address range 0-7fffff */
+#define VALID_FLASH_ADDR 0x00000000 /* base address of flash block 0 */
+#define FLASH_TIME_ADJUST 1 /* delay adjustment factor for delay times */
+
+/* 10/17/00 jwf */
+#define RESERVED_AREA1 0x0 /* 0h-1ffffh is partially occupied by Cygnus Cygmon monitor and debug code */
+#define RESERVED_AREA2 0x20000 /* 20000h-3ffffh is partially occupied by Cygnus Cygmon monitor and debug code */
+#define RESERVED_AREA3 0x40000 /* 40000h-5ffffh is partially occupied by Cygnus Cygmon debug code */
+#define RESERVED_AREA4 0x60000 /* 60000h-7ffffh is partially occupied by Cygnus Cygmon debug code */
+#define RESERVED_AREA_SIZE 0x80000 /* 20000h * 4h */
+
+/* Definitions for Battery Backup SDRAM memory test */
+#define SDRAM_BATTERY_TEST_BASE 0xA1FFFFF0 /* base address of last 16 memory locations in 32MB SDRAM */
+/* #define BATTERY_TEST_PATTERN 0xBAEBAEBA */
+#define BATTERY_TEST_PATTERN 0x55555555
+
+
+/* 02/09/01 jwf */
+/* Use a base address set to the fourth memory location from the last memory location */
+/* in a 32MB SDRAM DIMM to store the 80200 Coyanosa ID 32 bit data */
+#define COYANOSA_ID_BASE_ADDR 0xA1FFFFFC
+
+/* Definitions for data types and constants used in Flash.c */
+typedef unsigned long ADDR;
+#define NO_ADDR ((ADDR)0x800000) /* last address of Flash memory + 1 */
+#ifndef ERR
+#define ERR -1
+#endif
+/* Error code Constants */
+#define E_EEPROM_ADDR 12
+#define E_EEPROM_PROG 13
+#define E_EEPROM_FAIL 14
+#define E_NO_FLASH 29
+
+
+/* 10/17/00 jwf */
+#define BREEZE_BLOCK_0 0x0
+#define NUM_BREEZE_BLOCKS 4
+#define NUM_FLASH_BLOCKS 64
+
+
+
+
+
+
+/* 80310 IRQ Interrupt Identifiers (used for connecting and disconnecting ISRs) */
+#define DMA0_INT_ID 0
+#define DMA1_INT_ID 1
+#define DMA2_INT_ID 2
+#define PM_INT_ID 3
+#define AA_INT_ID 4
+#define I2C_INT_ID 5
+#define MU_INT_ID 6
+#define PATU_INT_ID 7
+#define TIMER_INT_ID 8
+#define ENET_INT_ID 9
+#define UART1_INT_ID 10
+#define UART2_INT_ID 11
+#define SINTA_INT_ID 12
+#define SINTB_INT_ID 13
+#define SINTC_INT_ID 14
+#define SINTD_INT_ID 15
+
+
+
+/* XINT3 External Interrupt Status and Mask bit definitions */
+#define TIMER_INT (1 << 0) /* Timer Interrupt Pending */
+#define ENET_INT (1 << 1) /* Ethernet Interrupt Pending */
+#define UART1_INT (1 << 2) /* UART1 Interrupt Pending */
+#define UART2_INT (1 << 3) /* UART2 Interrupt Pending */
+#define SINTD_INT (1 << 4) /* Secondary PCI (S_INTD) Interrupt Pending */
+
+/* XINT6 Interrupt Status bit definitions */
+#define DMA0_INT (1 << 0) /* DMA Channel 0 Interrupt Pending */
+#define DMA1_INT (1 << 2) /* DMA Channel 1 Interrupt Pending */
+#define DMA2_INT (1 << 3) /* DMA Channel 2 Interrupt Pending */
+#define PM_INT (1 << 5) /* Performance Monitoring Unit Interrupt Pending */
+#define AA_INT (1 << 6) /* Application Accelerator Interrupt Pending */
+
+/* XINT7 Interrupt Status bit definitions */
+#define I2C_INT (1 << 1) /* I2C Interrupt Pending */
+#define MU_INT (1 << 2) /* Messaging Unit Interrupt Pending */
+#define PATU_INT (1 << 3) /* Primary ATU / BIST Start Interrupt Pending */
+
+/* NISR bit definitions */
+#define MCU_ERROR (1 << 0) /* 80960 core Error within internal memory controller */
+#define PATU_ERROR (1 << 1) /* Primary ATU Error (PCI or local bus error) */
+#define SATU_ERROR (1 << 2) /* Secondary ATU Error (PCI or local bus error) */
+#define PBRIDGE_ERROR (1 << 3) /* Primary Bridge Interface Error */
+#define SBRIDGE_ERROR (1 << 4) /* Secondary Bridge Interface Error */
+#define DMA_0_ERROR (1 << 5) /* DMA Channel 0 Error (PCI or local bus error) */
+#define DMA_1_ERROR (1 << 6) /* DMA Channel 1 Error (PCI or local bus error) */
+#define DMA_2_ERROR (1 << 7) /* DMA Channel 2 Error (PCI or local bus error) */
+#define MU_ERROR (1 << 8) /* Messaging Unit NMI interrupt */
+#define AAU_ERROR (1 << 10) /* Application Accelerator Unit Error */
+#define BIU_ERROR (1 << 11) /* Bus Interface Unit Error */
+
+
+
+/* macros to clear (S/P PCI Status register bits) */
+#define CLEAR_PATU_STATUS() (*(volatile UINT16 *)PATUSR_ADDR |= 0xf900)
+#define CLEAR_SATU_STATUS() (*(volatile UINT16 *)SATUSR_ADDR |= 0xf900)
+#define CLEAR_PBRIDGE_STATUS() (*(volatile UINT16 *)PSR_ADDR |= 0xf900)
+#define CLEAR_SBRIDGE_STATUS() (*(volatile UINT16 *)SSR_ADDR |= 0xf900)
+
+
+
+
+
+
+
+/*** Yavapai Registers ***/
+
+/* PCI-to-PCI Bridge Unit 0000 1000H through 0000 10FFH */
+#define VIDR_ADDR 0x00001000
+#define DIDR_ADDR 0x00001002
+#define PCR_ADDR 0x00001004
+#define PSR_ADDR 0x00001006
+#define RIDR_ADDR 0x00001008
+#define CCR_ADDR 0x00001009
+#define CLSR_ADDR 0x0000100C
+#define PLTR_ADDR 0x0000100D
+#define HTR_ADDR 0x0000100E
+/* Reserved 0x0000100F through 0x00001017 */
+#define PBNR_ADDR 0x00001018
+#define SBNR_ADDR 0x00001019
+#define SUBBNR_ADDR 0x0000101A
+#define SLTR_ADDR 0x0000101B
+#define IOBR_ADDR 0x0000101C
+#define IOLR_ADDR 0x0000101D
+#define SSR_ADDR 0x0000101E
+#define MBR_ADDR 0x00001020
+#define MLR_ADDR 0x00001022
+#define PMBR_ADDR 0x00001024
+#define PMLR_ADDR 0x00001026
+/* Reserved 0x00001028 through 0x00001033 */
+#define BSVIR_ADDR 0x00001034
+#define BSIR_ADDR 0x00001036
+/* Reserved 0x00001038 through 0x0000103D */
+#define BCR_ADDR 0x0000103E
+#define EBCR_ADDR 0x00001040
+#define SISR_ADDR 0x00001042
+#define PBISR_ADDR 0x00001044
+#define SBISR_ADDR 0x00001048
+#define SACR_ADDR 0x0000104C
+#define PIRSR_ADDR 0x00001050
+#define SIOBR_ADDR 0x00001054
+#define SIOLR_ADDR 0x00001055
+#define SCCR_ADDR 0x00001056 /* EAS inconsistent */
+#define SMBR_ADDR 0x00001058
+#define SMLR_ADDR 0x0000105A
+#define SDER_ADDR 0x0000105C
+#define QCR_ADDR 0x0000105E
+#define CDTR_ADDR 0x00001060 /* EAS inconsistent */
+/* Reserved 0x00001064 through 0x000010FFH */
+
+/* Performance Monitoring Unit 0000 1100H through 0000 11FFH */
+#define GMTR_ADDR 0x00001100
+#define ESR_ADDR 0x00001104
+#define EMISR_ADDR 0x00001108
+/* Reserved 0x0000110C */ /* EAS inconsistent */
+#define GTSR_ADDR 0x00001110 /* EAS inconsistent */
+#define PECR1_ADDR 0x00001114 /* EAS inconsistent */
+#define PECR2_ADDR 0x00001118 /* EAS inconsistent */
+#define PECR3_ADDR 0x0000111C /* EAS inconsistent */
+#define PECR4_ADDR 0x00001120 /* EAS inconsistent */
+#define PECR5_ADDR 0x00001124 /* EAS inconsistent */
+#define PECR6_ADDR 0x00001128 /* EAS inconsistent */
+#define PECR7_ADDR 0x0000112C /* EAS inconsistent */
+#define PECR8_ADDR 0x00001130 /* EAS inconsistent */
+#define PECR9_ADDR 0x00001134 /* EAS inconsistent */
+#define PECR10_ADDR 0x00001138 /* EAS inconsistent */
+#define PECR11_ADDR 0x0000113C /* EAS inconsistent */
+#define PECR12_ADDR 0x00001140 /* EAS inconsistent */
+#define PECR13_ADDR 0x00001144 /* EAS inconsistent */
+#define PECR14_ADDR 0x00001148 /* EAS inconsistent */
+/* Reserved 0x0000104C through 0x000011FFH */ /* EAS inconsistent */
+
+/* Address Translation Unit 0000 1200H through 0000 12FFH */
+#define ATUVID_ADDR 0x00001200
+#define ATUDID_ADDR 0x00001202
+#define PATUCMD_ADDR 0x00001204
+#define PATUSR_ADDR 0x00001206
+#define ATURID_ADDR 0x00001208
+#define ATUCCR_ADDR 0x00001209
+#define ATUCLSR_ADDR 0x0000120C
+#define ATULT_ADDR 0x0000120D
+#define ATUHTR_ADDR 0x0000120E
+#define ATUBISTR_ADDR 0x0000120F
+#define PIABAR_ADDR 0x00001210
+/* Reserved 0x00001214 through 0x0000122B */
+#define ASVIR_ADDR 0x0000122C
+#define ASIR_ADDR 0x0000122E
+#define ERBAR_ADDR 0x00001230
+/* Reserved 0x00001234 */
+/* Reserved 0x00001238 */
+#define ATUILR_ADDR 0x0000123C
+#define ATUIPR_ADDR 0x0000123D
+#define ATUMGNT_ADDR 0x0000123E
+#define ATUMLAT_ADDR 0x0000123F
+#define PIALR_ADDR 0x00001240
+#define PIATVR_ADDR 0x00001244
+#define SIABAR_ADDR 0x00001248
+#define SIALR_ADDR 0x0000124C
+#define SIATVR_ADDR 0x00001250
+#define POMWVR_ADDR 0x00001254
+/* Reserved 0x00001258 */
+#define POIOWVR_ADDR 0x0000125C
+#define PODWVR_ADDR 0x00001260
+#define POUDR_ADDR 0x00001264
+#define SOMWVR_ADDR 0x00001268
+#define SOIOWVR_ADDR 0x0000126C
+/* Reserved 0x00001270 */
+#define ERLR_ADDR 0x00001274
+#define ERTVR_ADDR 0x00001278
+/* Reserved 0x0000127C */
+/* Reserved 0x00001280 */
+/* Reserved 0x00001284 */
+#define ATUCR_ADDR 0x00001288
+/* Reserved 0x0000128C */
+#define PATUISR_ADDR 0x00001290
+#define SATUISR_ADDR 0x00001294
+#define SATUCMD_ADDR 0x00001298
+#define SATUSR_ADDR 0x0000129A
+#define SODWVR_ADDR 0x0000129C
+#define SOUDR_ADDR 0x000012A0
+#define POCCAR_ADDR 0x000012A4
+#define SOCCAR_ADDR 0x000012A8
+#define POCCDR_ADDR 0x000012AC
+#define SOCCDR_ADDR 0x000012B0
+#define PAQCR_ADDR 0x000012B4
+#define SAQCR_ADDR 0x000012B8
+#define PAIMR_ADDR 0x000012BC
+#define SAIMR_ADDR 0x000012C0
+/* Reserved 0x000012C4 through 0x000012FF */
+
+/* Messaging Unit 0000 1300H through 0000 130FH */
+#define IMR0_ADDR 0x00001310
+#define IMR1_ADDR 0x00001314
+#define OMR0_ADDR 0x00001318
+#define OMR1_ADDR 0x0000131C
+#define IDR_ADDR 0x00001320
+#define IISR_ADDR 0x00001324
+#define IIMR_ADDR 0x00001328
+#define ODR_ADDR 0x0000132C
+#define OISR_ADDR 0x00001330
+#define OIMR_ADDR 0x00001334
+/* Reserved 0x00001338 through 0x0000134F */
+#define MUCR_ADDR 0x00001350
+#define QBAR_ADDR 0x00001354
+/* Reserved 0x00001358 */
+/* Reserved 0x0000135C */
+#define IFHPR_ADDR 0x00001360
+#define IFTPR_ADDR 0x00001364
+#define IPHPR_ADDR 0x00001368
+#define IPTPR_ADDR 0x0000136C
+#define OFHPR_ADDR 0x00001370
+#define OFTPR_ADDR 0x00001374
+#define OPHPR_ADDR 0x00001378
+#define OPTPR_ADDR 0x0000137C
+#define IAR_ADDR 0x00001380
+/* Reserved 0x00001384 through 0x000013FF */
+
+/* DMA Controller 0000 1400H through 0000 14FFH */
+#define CCR0_ADDR 0x00001400
+#define CSR0_ADDR 0x00001404
+/* Reserved 0x00001408 */
+#define DAR0_ADDR 0x0000140C
+#define NDAR0_ADDR 0x00001410
+#define PADR0_ADDR 0x00001414
+#define PUADR0_ADDR 0x00001418
+#define LADR0_ADDR 0x0000141C
+#define BCR0_ADDR 0x00001420
+#define DCR0_ADDR 0x00001424
+/* Reserved 0x00001428 through 0x0000143F */
+#define CCR1_ADDR 0x00001440
+#define CSR1_ADDR 0x00001444
+/* Reserved 0x00001448 */
+#define DAR1_ADDR 0x0000144C
+#define NDAR1_ADDR 0x00001450
+#define PADR1_ADDR 0x00001454
+#define PUADR1_ADDR 0x00001458
+#define LADR1_ADDR 0x0000145C
+#define BCR1_ADDR 0x00001460
+#define DCR1_ADDR 0x00001464
+/* Reserved 0x00001468 through 0x0000147F */
+#define CCR2_ADDR 0x00001480
+#define CSR2_ADDR 0x00001484
+/* Reserved 0x00001488 */
+#define DAR2_ADDR 0x0000148C
+#define NDAR2_ADDR 0x00001490
+#define PADR2_ADDR 0x00001494
+#define PUADR2_ADDR 0x00001498
+#define LADR2_ADDR 0x0000149C
+#define BCR2_ADDR 0x000014A0
+#define DCR2_ADDR 0x000014A4
+/* Reserved 0x000014A8 through 0x000014FF */
+
+/* Memory Controller 0000 1500H through 0000 15FFH */
+#define SDIR_ADDR 0x00001500
+#define SDCR_ADDR 0x00001504
+#define SDBR_ADDR 0x00001508
+#define SBR0_ADDR 0x0000150C
+#define SBR1_ADDR 0x00001510
+#define SDPR0_ADDR 0x00001514
+#define SDPR1_ADDR 0x00001518
+#define SDPR2_ADDR 0x0000151C
+#define SDPR3_ADDR 0x00001520
+#define SDPR4_ADDR 0x00001524
+#define SDPR5_ADDR 0x00001528
+#define SDPR6_ADDR 0x0000152C
+#define SDPR7_ADDR 0x00001530
+#define ECCR_ADDR 0x00001534
+#define ELOG0_ADDR 0x00001538
+#define ELOG1_ADDR 0x0000153C
+#define ECAR0_ADDR 0x00001540
+#define ECAR1_ADDR 0x00001544
+#define ECTST_ADDR 0x00001548
+#define FEBR0_ADDR 0x0000154C
+#define FEBR1_ADDR 0x00001550
+#define FBSR0_ADDR 0x00001554
+#define FBSR1_ADDR 0x00001558
+#define FWSR0_ADDR 0x0000155C
+#define FWSR1_ADDR 0x00001560
+#define MCISR_ADDR 0x00001564
+#define RFR_ADDR 0x00001568
+/* Reserved 0x0000156C through 0x000015FF */
+
+/* Arbitration Control Unit 0000 1600H through 0000 167FH */
+#define IACR_ADDR 0x00001600
+#define MLTR_ADDR 0x00001604
+#define MTTR_ADDR 0x00001608
+/* Reserved 0x0000160C through 0x0000163F */
+
+/* Bus Interface Control Unit 0000 1640H through 0000 167FH */
+#define BIUCR_ADDR 0x00001640
+#define BIUISR_ADDR 0x00001644
+/* Reserved 0x00001648 through 0x0000167F */
+
+/* I2C Bus Interface Unit 0000 1680H through 0000 16FFH */
+#define ICR_ADDR 0x00001680
+#define ISR_ADDR 0x00001684
+#define ISAR_ADDR 0x00001688
+#define IDBR_ADDR 0x0000168C
+#define ICCR_ADDR 0x00001690
+#define IBMR_ADDR 0x00001694
+/* Reserved 0x00001698 through 0x000016FF */
+
+/* PCI And Peripheral Interrupt Controller 0000 1700H through 0000 17FFH */
+#define NISR_ADDR 0x00001700
+#define X7ISR_ADDR 0x00001704
+#define X6ISR_ADDR 0x00001708
+#define PDIDR_ADDR 0x00001710 /* EAS inconsistent */
+/* Reserved 0x00001714 through 0x0000177F */
+
+/* Application Accelerator Unit 0000 1800H through 0000 18FFH */
+#define ACR_ADDR 0x00001800
+#define ASR_ADDR 0x00001804
+#define ADAR_ADDR 0x00001808
+#define ANDAR_ADDR 0x0000180C
+#define SAR1_ADDR 0x00001810
+#define SAR2_ADDR 0x00001814
+#define SAR3_ADDR 0x00001818
+#define SAR4_ADDR 0x0000181C
+#define DAR_ADDR 0x00001820
+#define ABCR_ADDR 0x00001824
+#define ADCR_ADDR 0x00001828
+#define SAR5_ADDR 0x0000182C
+#define SAR6_ADDR 0x00001830
+#define SAR7_ADDR 0x00001834
+#define SAR8_ADDR 0x00001838
+
+/* Reserved 0x0000183C through 0x000018FF */
+
+
+#endif /* CYGONCE_IQ80310_H */
diff --git a/ecos/packages/hal/arm/xscale/iq80310/current/src/diag/irq.S b/ecos/packages/hal/arm/xscale/iq80310/current/src/diag/irq.S
new file mode 100644
index 0000000..7d53d41
--- /dev/null
+++ b/ecos/packages/hal/arm/xscale/iq80310/current/src/diag/irq.S
@@ -0,0 +1,115 @@
+//=============================================================================
+//
+// irq.S - Cyclone Diagnostics
+//
+//=============================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): Scott Coulter, Jeff Frazier, Eric Breeden
+// Contributors:
+// Date: 2001-01-25
+// Purpose:
+// Description:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================*/
+
+/*
+ * Low-lebvel interrupt support for IQ80310 diags
+ */
+ .extern iq80310_irq_handler
+ .extern iq80310_fiq_handler
+
+ .text
+ .globl __diag_IRQ
+ __diag_IRQ:
+ ldr sp, =__irq_stack /* point stack pointer at IRQ stack */
+ sub lr, lr, #4 /* adjust lr (return to last address) */
+ stmfd sp!, {r12, lr} /* push r12 and link reg onto stack */
+ mrs r12, spsr /* store spsr in r12 */
+ stmfd sp!, {r12} /* push spsr onto stack */
+ stmfd sp!, {r0-r11} /* push all registers onto stack */
+ bl iq80310_irq_handler
+ ldmfd sp!, {r0-r12} /* restore r0 thru r12 */
+ msr spsr, r12 /* restore SPSR */
+ ldmfd sp!, {r12,pc}^ /* restore r12 and PC, return */
+
+ .globl __diag_FIQ
+ __diag_FIQ:
+ /* Cyclone FIQ handler */
+ /* save registers onto stack */
+ ldr sp, =__fiq_stack /* point stack pointer at FIQ stack */
+ sub lr, lr, #4 /* adjust link register (return to last address) */
+ stmfd sp!, {r12, lr} /* push r12 and link reg onto stack */
+ mrs r12, spsr /* store spsr in r12 */
+ stmfd sp!, {r12} /* push spsr onto stack */
+ stmfd sp!, {r0-r7} /* push r0 thru r7 (r8 - r14 are banked) */
+ bl iq80310_fiq_handler
+ /* restore registers and return */
+ ldmfd sp!, {r0-r7} /* restore r0 thru r7 (r8 - r14 are banked) */
+ ldmfd sp!, {r12}
+ msr spsr, r12 /* restore SPSR */
+ ldmfd sp!, {r12,pc}^ /* restore r12 and PC, return to inst before exception occurred */
+
+ .globl __ignore_abort
+__ignore_abort:
+ subs pc,lr,#4
+
+ .globl _cspr_enable_fiq_int
+_cspr_enable_fiq_int:
+ mrs r0, cpsr
+ bic r0, r0, #0x40
+ msr cpsr, r0
+ mov pc, lr
+
+ .globl _cspr_enable_irq_int
+_cspr_enable_irq_int:
+ mrs r0, cpsr
+ bic r0, r0, #0x80
+ msr cpsr, r0
+ mov pc, lr
+
+ .bss
+ .rept 1024
+ .word 0
+ .endr
+ __irq_stack:
+ .rept 1024
+ .word 0
+ .endr
+ __fiq_stack:
+
+
diff --git a/ecos/packages/hal/arm/xscale/iq80310/current/src/diag/memtest.c b/ecos/packages/hal/arm/xscale/iq80310/current/src/diag/memtest.c
new file mode 100644
index 0000000..81a15c0
--- /dev/null
+++ b/ecos/packages/hal/arm/xscale/iq80310/current/src/diag/memtest.c
@@ -0,0 +1,709 @@
+//=============================================================================
+//
+// memtest.c - Cyclone Diagnostics
+//
+//=============================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): Scott Coulter, Jeff Frazier, Eric Breeden
+// Contributors:
+// Date: 2001-01-25
+// Purpose:
+// Description:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================*/
+
+/*************************************************************************
+* Memtest.c - this file performs an address/address bar memory test.
+*
+* Modification History
+* --------------------
+* 01sep00 ejb Ported to StrongARM2
+* 18dec00 snc
+* 02feb01 jwf for snc
+*/
+
+#include <cyg/infra/diag.h>
+#define printf diag_printf
+
+#include "7_segment_displays.h"
+
+#if 0
+extern void store_double (unsigned long, unsigned long, unsigned long);
+extern void read_double (unsigned long, unsigned long Data[]);
+extern int quadtest(long startaddr);
+#endif
+
+extern void hex32out (unsigned int num);
+#if 0
+extern int printf(char*,...);
+#endif
+
+/* 02/02/01 jwf */
+#ifndef TRUE
+#define TRUE 1
+#endif
+#ifndef FALSE
+#define FALSE 0
+#endif
+
+
+
+#define FAILED 1
+#define PASSED 0
+
+
+
+/* Do walking one's test */
+static int
+onesTest(
+ long testAddr /* address to test */
+ )
+{
+ long testData = 1; /* Current pattern being used */
+ long dataRead;
+ int fail = 0; /* Test hasn't failed yet */
+ int loopCount = 0; /* To keep track of when to print CR */
+
+ printf("\n");
+
+ while(testData && !fail)
+ { /* Loop until bit shifted out */
+ *((long *) testAddr) = testData; /* Write test data */
+ *((long *) (testAddr + 4)) = 0xFFFFFFFF; /* Drive d0-d31 hi */
+ dataRead = *((long *) testAddr); /* Read back data */
+
+ hex32out(dataRead);
+ if (!(++loopCount % 8) && (loopCount != 32))
+ printf("\n");
+ else
+ printf(" ");
+
+ if (dataRead != testData) /* Verify data */
+ return FAILED; /* Signal failure */
+ else
+ testData <<= 1; /* Shift data over one bit */
+ }
+
+ return PASSED;
+}
+
+
+
+
+#if 0
+/*************************************************************************
+*
+* onesTest - perform a 64 bit walking one's test on a specified address
+*
+*
+* RETURNS: PASSED if the test passes or FAILED otherwise
+*
+*/
+static int onesTest(long testAddr)
+{
+ /* need to be arrays of sequential words in order to be
+ able to test a 64bit wide memory bus */
+ unsigned long testData[2]; /* Current pattern being used */
+ unsigned long dataRead[2]; /* Data read back from memory */
+ int bitsTested = 0; /* To keep track of when to print CR and
+ when to switch words */
+
+ printf("\n");
+
+ /* test variable initialization */
+ testData[0] = 0x00000001; /* lower 32 bit word */
+ testData[1] = 0x00000000; /* upper 32 bit word */
+
+ bitsTested = 0;
+
+
+ /* Loop until all 64 data bits are tested */
+ while (bitsTested < 64)
+ {
+ /* perform a double word write to cause a 64bit memory access */
+ store_double (testAddr, testData[0], testData[1]);
+
+ /* drive 64 bit data bus high and flush bus unit */
+ store_double (testAddr + 8, 0xffffffff, 0xffffffff);
+
+ /* perform a double word read to cause a 64bit memory access */
+ read_double (testAddr, dataRead);
+
+ hex32out((long)dataRead[1]); /* print out MS word */
+ hex32out((long)dataRead[0]); /* print out LS word */
+
+ if (!(++bitsTested % 4) && (bitsTested != 64))
+ printf("\n");
+ else
+ printf(" ");
+
+ /* verify the data */
+ if ((dataRead[0] != testData[0]) || (dataRead[1] != testData[1]))
+ return (FAILED); /* Signal failure */
+ else
+ {
+ if (bitsTested < 32) /* data bits 0 - 31 */
+ {
+ testData[0] <<= 1; /* shift data through LS word */
+ }
+ else if (bitsTested == 32) /* start testing MS word */
+ {
+ testData[0] = 0x00000000; /* clear LS word */
+ testData[1] = 0x00000001; /* shift into MS word */
+ }
+ else /* data bits 32 - 63 */
+ {
+ testData[1] <<= 1; /* shift data through MS word */
+ }
+ }
+ }
+ return (PASSED);
+}
+
+#endif
+
+
+
+/* Do long word address test */
+
+static int LWAddr (
+ long start, /* Starting address of test */
+ long end, /* Ending address */
+ long *badAddr /* Failure address */
+ )
+{
+ register long currentAddr; /* Current address being tested */
+ register long data;
+ char fail = 0; /* Test hasn't failed yet */
+
+ for(currentAddr = start; currentAddr < end; currentAddr += 4)
+ *((long *) currentAddr) = currentAddr;
+
+ for (currentAddr = start;
+ (currentAddr < end);
+ currentAddr += 4)
+ {
+ data = *(long *) currentAddr;
+ if (data != currentAddr)
+ {
+ fail = 1;
+ printf ("\n\nLWAddr Bad Read, Address = 0x%08x, Data Read = 0x%08x\n\n", currentAddr, data);
+ break;
+ }
+ }
+
+ if (fail)
+ {
+ *badAddr = currentAddr;
+ return FAILED;
+ }
+ else
+ return PASSED;
+}
+
+/* Do inverse long word address test */
+
+static int LWBar (long start, /* Starting address of test */
+ long end, /* Ending address */
+ long *badAddr /* Failure address */
+ )
+{
+ register long currentAddr; /* Current address being tested */
+ register long data;
+ int fail = 0; /* Test hasn't failed yet */
+
+ for(currentAddr = start; currentAddr < end; currentAddr += 4)
+ *((long *) currentAddr) = ~currentAddr;
+
+ for (currentAddr = start;
+ (currentAddr < end);
+ currentAddr += 4)
+ {
+ data = *(long *) currentAddr;
+ if (data != ~currentAddr)
+ {
+ fail = 1;
+ printf ("\n\nLWBar Bad Read, Address = 0x%08x, Data Read = 0x%08x\n\n", currentAddr, data);
+ break;
+ }
+ }
+ if (fail)
+ {
+ *badAddr = currentAddr;
+ return FAILED;
+ }
+ else
+ return PASSED;
+}
+
+/* Do byte address test */
+
+static int
+ByteAddr (
+ long start, /* Starting address of test */
+ long end, /* Ending address */
+ long *badAddr /* Failure address */
+ )
+{
+ long currentAddr; /* Current address being tested */
+ int fail = 0; /* Test hasn't failed yet */
+
+ for(currentAddr = start; currentAddr < end; currentAddr++)
+ *((char *) currentAddr) = (char) currentAddr;
+
+ for(currentAddr = start; (currentAddr < end) && (!fail); currentAddr++)
+ if (*((char *) currentAddr) != (char) currentAddr)
+ fail = 1;
+
+ if (fail)
+ {
+ *badAddr = currentAddr - 1;
+ return FAILED;
+ }
+ else
+ return PASSED;
+}
+
+/* Do inverse byte address test */
+
+static int ByteBar (
+ long start, /* Starting address of test */
+ long end, /* Ending address */
+ long *badAddr /* Failure address */
+ )
+{
+ long currentAddr; /* Current address being tested */
+ int fail = 0; /* Test hasn't failed yet */
+
+ for(currentAddr = start; currentAddr < end; currentAddr++)
+ *((char *) currentAddr) = (char) ~currentAddr;
+
+ for(currentAddr = start; (currentAddr < end) && (!fail); currentAddr++)
+ if (*((char *) currentAddr) != (char) ~currentAddr)
+ fail = 1;
+ if (fail) {
+ *badAddr = currentAddr - 1;
+ return FAILED;
+ }
+ else
+ return PASSED;
+}
+
+/*
+ * This routine is called if one of the memory tests fails. It dumps
+ * the 8 32-bit words before and the 8 after the failure address
+ */
+
+void dumpMem (
+ long badAddr /* Failure address */
+ )
+{
+ unsigned long *addr;
+ unsigned short *saddr;
+
+ printf("\n"); /* Print out first line of mem dump */
+ hex32out(badAddr - 32); /* Starting address */
+ printf(": ");
+ hex32out(*((long *) (badAddr - 32))); /* First longword */
+ printf(" ");
+ hex32out(*((long *) (badAddr - 28)));
+ printf(" ");
+ hex32out(*((long *) (badAddr - 24)));
+ printf(" ");
+ hex32out(*((long *) (badAddr - 20)));
+
+ printf("\n");
+ hex32out(badAddr - 16);
+ printf(": ");
+ hex32out(*((long *) (badAddr - 16)));
+ printf(" ");
+ hex32out(*((long *) (badAddr - 12)));
+ printf(" ");
+ hex32out(*((long *) (badAddr - 8)));
+ printf(" ");
+ hex32out(*((long *) (badAddr - 4)));
+
+ printf("\n"); /* Print out contents of fault addr */
+ hex32out(badAddr);
+ printf(": ");
+ hex32out(*((long *) badAddr));
+
+
+ printf("\n"); /* Print out next line of mem dump */
+ hex32out(badAddr + 4); /* Starting address */
+ printf(": ");
+ hex32out(*((long *) (badAddr + 4))); /* First longword */
+ printf(" ");
+ hex32out(*((long *) (badAddr + 8)));
+ printf(" ");
+ hex32out(*((long *) (badAddr + 12)));
+ printf(" ");
+ hex32out(*((long *) (badAddr + 16)));
+
+ printf("\n");
+ hex32out(badAddr + 20);
+ printf(": ");
+ hex32out(*((long *) (badAddr + 20)));
+ printf(" ");
+ hex32out(*((long *) (badAddr + 24)));
+ printf(" ");
+ hex32out(*((long *) (badAddr + 28)));
+ printf(" ");
+ hex32out(*((long *) (badAddr + 32)));
+
+ /* DEBUG */
+ printf ("\n\nReading back data in 32bit chunks:\n");
+ addr = (unsigned long *)(badAddr - 16);
+ printf ("Address = 0x%08x, Data = 0x%08x\n", addr, *addr);
+ addr = (unsigned long *)(badAddr - 12);
+ printf ("Address = 0x%08x, Data = 0x%08x\n", addr, *addr);
+ addr = (unsigned long *)(badAddr - 8);
+ printf ("Address = 0x%08x, Data = 0x%08x\n", addr, *addr);
+ addr = (unsigned long *)(badAddr - 4);
+ printf ("Address = 0x%08x, Data = 0x%08x\n", addr, *addr);
+ addr = (unsigned long *)(badAddr);
+ printf ("Address = 0x%08x, Data = 0x%08x\n", addr, *addr);
+ addr = (unsigned long *)(badAddr + 4);
+ printf ("Address = 0x%08x, Data = 0x%08x\n", addr, *addr);
+ addr = (unsigned long *)(badAddr + 8);
+ printf ("Address = 0x%08x, Data = 0x%08x\n", addr, *addr);
+ addr = (unsigned long *)(badAddr + 12);
+ printf ("Address = 0x%08x, Data = 0x%08x\n", addr, *addr);
+ addr = (unsigned long *)(badAddr + 16);
+ printf ("Address = 0x%08x, Data = 0x%08x\n", addr, *addr);
+ printf ("\n");
+
+ printf ("Reading back data in 16bit chunks:\n");
+ saddr = (unsigned short *)(badAddr - 16);
+ printf ("Address = 0x%08x, Data = 0x%04x\n", saddr, *saddr);
+ saddr = (unsigned short *)(badAddr - 14);
+ printf ("Address = 0x%08x, Data = 0x%04x\n", saddr, *saddr);
+ saddr = (unsigned short *)(badAddr - 12);
+ printf ("Address = 0x%08x, Data = 0x%04x\n", saddr, *saddr);
+ saddr = (unsigned short *)(badAddr - 10);
+ printf ("Address = 0x%08x, Data = 0x%04x\n", saddr, *saddr);
+ saddr = (unsigned short *)(badAddr - 8);
+ printf ("Address = 0x%08x, Data = 0x%04x\n", saddr, *saddr);
+ saddr = (unsigned short *)(badAddr - 6);
+ printf ("Address = 0x%08x, Data = 0x%04x\n", saddr, *saddr);
+ saddr = (unsigned short *)(badAddr - 4);
+ printf ("Address = 0x%08x, Data = 0x%04x\n", saddr, *saddr);
+ saddr = (unsigned short *)(badAddr - 2);
+ printf ("Address = 0x%08x, Data = 0x%04x\n", saddr, *saddr);
+ saddr = (unsigned short *)(badAddr);
+ printf ("Address = 0x%08x, Data = 0x%04x\n", saddr, *saddr);
+ saddr = (unsigned short *)(badAddr + 2);
+ printf ("Address = 0x%08x, Data = 0x%04x\n", saddr, *saddr);
+ saddr = (unsigned short *)(badAddr + 4);
+ printf ("Address = 0x%08x, Data = 0x%04x\n", saddr, *saddr);
+ saddr = (unsigned short *)(badAddr + 6);
+ printf ("Address = 0x%08x, Data = 0x%04x\n", saddr, *saddr);
+ saddr = (unsigned short *)(badAddr + 8);
+ printf ("Address = 0x%08x, Data = 0x%04x\n", saddr, *saddr);
+ saddr = (unsigned short *)(badAddr + 10);
+ printf ("Address = 0x%08x, Data = 0x%04x\n", saddr, *saddr);
+ saddr = (unsigned short *)(badAddr + 12);
+ printf ("Address = 0x%08x, Data = 0x%04x\n", saddr, *saddr);
+ saddr = (unsigned short *)(badAddr + 14);
+ printf ("Address = 0x%08x, Data = 0x%04x\n", saddr, *saddr);
+ saddr = (unsigned short *)(badAddr + 16);
+ printf ("Address = 0x%08x, Data = 0x%04x\n", saddr, *saddr);
+ printf ("\n");
+
+}
+
+/*
+ * Returns 1 if passed, 0 if failed.
+ */
+
+int
+memTest (
+ long startAddr, /* Start address of test */
+ long endAddr /* End address + 1 */
+ )
+{
+ long badAddr; /* Addr test failed at */
+
+ printf("\n");
+
+ if (onesTest(startAddr) == FAILED)
+ {
+ printf("\nWalking 1's test: failed");
+ return 0;
+ }
+ printf("\nWalking 1's test: passed\n");
+
+ /* rval = quadtest(startAddr);
+
+ switch (rval)
+ {
+ case 0:
+ printf("\nQuadword test passed\n");
+ break;
+
+ case 1:
+ printf("\nQuadword test failed: Quadword Write, Longword Read\n");
+ dumpMem(startAddr);
+ return 0;
+
+ case 2:
+ printf("\nQuadword test failed: Longword Write, Quadword Read\n");
+ dumpMem(startAddr);
+ return 0;
+
+ default:
+ printf("\nQuadword test: Unknown return value 0x%X\n", rval);
+ return 0;
+ }
+ */
+
+ printf("\nLong word address test: ");
+ if (LWAddr(startAddr, endAddr, &badAddr) == FAILED)
+ {
+ printf("failed");
+ dumpMem(badAddr);
+ return 0;
+ }
+ printf("passed");
+
+ printf("\nLong word address bar test: ");
+ if (LWBar(startAddr, endAddr, &badAddr) == FAILED)
+ {
+ printf("failed");
+ dumpMem(badAddr);
+ return 0;
+ }
+ printf("passed");
+
+ printf("\nByte address test: ");
+ if (ByteAddr(startAddr, endAddr, &badAddr) == FAILED)
+ {
+ printf("failed");
+ dumpMem(badAddr);
+ return 0;
+ }
+ printf("passed");
+
+ printf("\nByte address bar test: ");
+ if (ByteBar(startAddr, endAddr, &badAddr) == FAILED)
+ {
+ printf("failed");
+ dumpMem(badAddr);
+ return 0;
+ }
+ printf("passed");
+
+ return 1;
+}
+
+
+/* 02/02/01 jwf */
+/* Do alternating inverse long word address test */
+static int
+LWABar(long start, /* Starting address of test */
+ long end, /* Ending address */
+ long *badAddr) /* Failure address */
+{
+ register long currentAddr; /* Current address being tested */
+ int fail = 0; /* Test hasn't failed yet */
+ register long data;
+
+ /* In this test, the contents of each longword address toggles
+ between the Address and the Address BAR */
+ for(currentAddr = start; currentAddr < end; currentAddr += 4)
+ {
+ /* Address ending in 0x4 or 0xc */
+ if (currentAddr & 4)
+ *((long *) currentAddr) = ~currentAddr;
+
+ /* Address ending in 0x0 or 0x8 */
+ else
+ *((long *) currentAddr) = currentAddr;
+ }
+
+ for (currentAddr = start; (currentAddr < end) && (!fail); currentAddr += 4)
+ {
+ data = *(long *) currentAddr;
+
+ switch (currentAddr & 0xf)
+ {
+ case 0x0:
+ case 0x8:
+ if (data != currentAddr)
+ {
+ fail = 1;
+ printf ("\nFailed at Address 0x%08X, Expected 0x%08X, Read 0x%08X\n",
+ currentAddr, currentAddr, data);
+ }
+ break;
+
+ case 0x4:
+ case 0xc:
+ if (data != ~currentAddr)
+ {
+ fail = 1;
+ printf ("\nFailed at Address 0x%08X, Expected 0x%08X, Read 0x%08X\n",
+ currentAddr, ~currentAddr, data);
+ }
+ break;
+
+ default:
+ fail = 1;
+ printf ("\nFailed at Address 0x%08X, Unaligned address\n", currentAddr);
+ break;
+ }
+ }
+
+ if (fail) {
+ *badAddr = currentAddr - 4;
+ return FAILED;
+ } else
+ return PASSED;
+}
+
+
+/* 02/02/01 jwf */
+/*
+ * Returns 1 if passed, 0 if failed.
+ */
+int
+LoopMemTest (
+ long startAddr, /* Start address of test */
+ long endAddr /* End address + 1 */
+ )
+{
+ long badAddr; /* Addr test failed at */
+ volatile int junk;
+ extern int ecc_error_reported;
+
+ /* indicate no ECC errors recorded */
+ *MSB_DISPLAY_REG = DISPLAY_OFF;
+
+ /* indicate passing test */
+ *LSB_DISPLAY_REG = LETTER_P;
+
+ while (1)
+ {
+ printf("\n");
+
+ printf("\nLong word address test: ");
+ if (LWAddr(startAddr, endAddr, &badAddr) == FAILED)
+ {
+ /* indicate failing test */
+ *LSB_DISPLAY_REG = LETTER_F;
+
+ printf("failed at Address 0x%08x\n", badAddr);
+ printf("Performing Continuous Write/Read/!Write/Read...\n\n");
+ while (1)
+ {
+ *(volatile int *)badAddr = badAddr;
+ junk = *(volatile int *)badAddr;
+ *(volatile int *)badAddr = ~badAddr;
+ junk = *(volatile int *)badAddr;
+
+ if (ecc_error_reported)
+ {
+ printf ("Disabling ECC reporting\n");
+ /* disable single and multi-bit reporting */
+ *(volatile unsigned long *)0x1534 = 0x4;
+ ecc_error_reported = FALSE;
+ }
+ }
+ return 0; /* not reached */
+ }
+ printf("passed");
+
+ printf("\nLong word address bar test: ");
+ if (LWBar(startAddr, endAddr, &badAddr) == FAILED)
+ {
+ /* indicate failing test */
+ *LSB_DISPLAY_REG = LETTER_F;
+
+ printf("failed at Address 0x%08x\n", badAddr);
+ printf("Performing Continuous Write/Read/!Write/Read...\n\n");
+ while (1)
+ {
+ *(volatile int *)badAddr = badAddr;
+ junk = *(volatile int *)badAddr;
+ *(volatile int *)badAddr = ~badAddr;
+ junk = *(volatile int *)badAddr;
+
+ if (ecc_error_reported)
+ {
+ printf ("Disabling ECC reporting\n");
+ /* disable single and multi-bit reporting */
+ *(volatile unsigned long *)0x1534 = 0x4;
+ ecc_error_reported = FALSE;
+ }
+ }
+ return 0; /* not reached */
+ }
+ printf("passed");
+
+ printf("\nAlternating Long word, Long word address bar test: ");
+ if (LWABar(startAddr, endAddr, &badAddr) == FAILED)
+ {
+ /* indicate failing test */
+ *LSB_DISPLAY_REG = LETTER_F;
+
+ printf("failed at Address 0x%08x\n", badAddr);
+ printf("Performing Continuous Write/Read/!Write/Read...\n\n");
+ while (1)
+ {
+ *(volatile int *)badAddr = badAddr;
+ junk = *(volatile int *)badAddr;
+ *(volatile int *)badAddr = ~badAddr;
+ junk = *(volatile int *)badAddr;
+
+ if (ecc_error_reported)
+ {
+ printf ("Disabling ECC reporting\n");
+ /* disable single and multi-bit reporting */
+ *(volatile unsigned long *)0x1534 = 0x4;
+ ecc_error_reported = FALSE;
+ }
+ }
+ return 0; /* not reached */
+ }
+ printf("passed");
+ }
+
+ return 1;
+}
+
+
diff --git a/ecos/packages/hal/arm/xscale/iq80310/current/src/diag/pci_bios.h b/ecos/packages/hal/arm/xscale/iq80310/current/src/diag/pci_bios.h
new file mode 100644
index 0000000..a50d29d
--- /dev/null
+++ b/ecos/packages/hal/arm/xscale/iq80310/current/src/diag/pci_bios.h
@@ -0,0 +1,489 @@
+//=============================================================================
+//
+// pci_bios.h - Cyclone Diagnostics
+//
+//=============================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): Scott Coulter, Jeff Frazier, Eric Breeden
+// Contributors:
+// Date: 2001-01-25
+// Purpose:
+// Description:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================*/
+
+/****************************************************************************/
+/* File: pci_bios.h */
+/* */
+/* Use: mon960 */
+/* */
+/* Purpose: PCI BIOS Routines */
+/* */
+/* Remarks: Conforming to the Revision 2.1 PCI BIOS Specfication */
+/* */
+/* Functions Supported: */
+/* */
+/* pci_bios_present() */
+/* find_pci_device() */
+/* find_pci_class_code() */
+/* generate_special_cycle() */
+/* read_config_byte() */
+/* read_config_word() */
+/* read_config_dword() */
+/* write_config_byte() */
+/* write_config_word() */
+/* write_config_dword() */
+/* get_irq_routing_options() */
+/* set_pci_irq() */
+/* */
+/* History: */
+/* 06Sep00 Scott Coulter Changed NUM_PCI_BUSES from 31 to 2 */
+/* 09Sep97 Jim Otto Defined NUM_PCI_BUSES */
+/* */
+/* */
+/* */
+/****************************************************************************/
+
+#include "iq80310.h"
+
+#define XINT0 0
+#define XINT1 1
+#define XINT2 2
+#define XINT3 3
+
+/* primary PCI bus definitions */
+#define PRIMARY_BUS_NUM 0
+#define PRIMARY_MEM_BASE 0x80000000
+#define PRIMARY_DAC_BASE 0x84000000
+#define PRIMARY_IO_BASE 0x90000000
+#define PRIMARY_MEM_LIMIT 0x83ffffff
+#define PRIMARY_DAC_LIMIT 0x87ffffff
+#define PRIMARY_IO_LIMIT 0x9000ffff
+
+
+/* secondary PCI bus definitions */
+#define SECONDARY_BUS_NUM 1
+#define SECONDARY_MEM_BASE 0x88000000
+#define SECONDARY_DAC_BASE 0x8c000000
+#define SECONDARY_IO_BASE 0x90010000
+#define SECONDARY_MEM_LIMIT 0x8bffffff
+#define SECONDARY_DAC_LIMIT 0x8fffffff
+#define SECONDARY_IO_LIMIT 0x9001ffff
+
+
+#define LAST_SYSPROC 260
+
+#define NUM_PCI_BUSES 2
+
+#ifndef ASM_LANGUAGE
+
+/******************************************************************************
+*
+* Required PCI BIOS Data Structures
+*
+*/
+typedef struct
+{
+ int num_devices;
+ int num_functions;
+} PCI_DATA;
+
+typedef struct
+{
+ int present_status; /* set to 0x00 for BIOS present */
+ int hardware_mech_config; /* for accessing config. space */
+ int hardware_mech_special; /* for performing special cycles */
+ int if_level_major_ver; /* in BCD, 0x02 for version 2.1 */
+ int if_level_minor_ver; /* in BCD, 0x01 for version 2.1 */
+ int last_pci_bus; /* numbers start at 0 */
+} PCI_BIOS_INFO;
+
+/*******************************************************************************
+*
+* Type 0 PCI Configuration Space Header
+*
+*/
+
+typedef struct
+{
+ unsigned short vendor_id;
+ unsigned short device_id;
+ unsigned short command;
+ unsigned short status;
+ unsigned char revision_id;
+ unsigned char prog_if;
+ unsigned char sub_class;
+ unsigned char base_class;
+ unsigned char cache_line_size;
+ unsigned char latency_timer;
+ unsigned char header_type;
+ unsigned char bist;
+ unsigned long pcibase_addr0;
+ unsigned long pcibase_addr1;
+ unsigned long pcibase_addr2;
+ unsigned long pcibase_addr3;
+ unsigned long pcibase_addr4;
+ unsigned long pcibase_addr5;
+ unsigned long cardbus_cis_ptr;
+ unsigned short sub_vendor_id;
+ unsigned short sub_device_id;
+ unsigned long pcibase_exp_rom;
+ unsigned long reserved2[2];
+ unsigned char int_line;
+ unsigned char int_pin;
+ unsigned char min_gnt;
+ unsigned char max_lat;
+} PCI_CONFIG_SPACE_0;
+
+/*******************************************************************************
+*
+* PCI Bridge Configuration Space Header
+*
+*/
+
+typedef struct
+{
+ unsigned short vendor_id;
+ unsigned short device_id;
+ unsigned short command;
+ unsigned short status;
+ unsigned char revision_id;
+ unsigned char prog_if;
+ unsigned char sub_class;
+ unsigned char base_class;
+ unsigned char cache_line_size;
+ unsigned char latency_timer;
+ unsigned char header_type;
+ unsigned char bist;
+ unsigned long pcibase_addr0;
+ unsigned long pcibase_addr1;
+ unsigned char primary_busno;
+ unsigned char secondary_busno;
+ unsigned char subordinate_busno;
+ unsigned char secondary_latency_timer;
+ unsigned char io_base;
+ unsigned char io_limit;
+ unsigned short secondary_status;
+ unsigned short mem_base;
+ unsigned short mem_limit;
+ unsigned short pfmem_base;
+ unsigned short pfmem_limit;
+ unsigned long pfbase_upper32;
+ unsigned long pflimit_upper32;
+ unsigned short iobase_upper16;
+ unsigned short iolimit_upper16;
+ unsigned short sub_vendor_id;
+ unsigned short sub_device_id;
+ unsigned long pcibase_exp_rom;
+ unsigned char int_line;
+ unsigned char int_pin;
+ unsigned short bridge_control;
+} PCI_CONFIG_SPACE_1;
+
+typedef union
+{
+ PCI_CONFIG_SPACE_0 pci0_config;
+ PCI_CONFIG_SPACE_1 pci1_config;
+} PCI_CONFIG_SPACE;
+
+#define CONFIG_MECHANISM_1 1
+#define CONFIG_MECHANISM_2 2
+
+typedef struct
+{
+ int bus_number; /* 0...255 */
+ int device_number; /* Device number on bus */
+ int function_number; /* Function number on device */
+} PCI_DEVICE_LOCATION;
+
+
+typedef struct
+{
+ int bus_number; /* 0...255 */
+ int device_number; /* Device number on bus */
+ int inta_link; /* Which ints. are or'd together */
+ int inta_bitmap; /* Which XINT connected to */
+ int intb_link; /* Which ints. are or'd together */
+ int intb_bitmap; /* Which XINT connected to */
+ int intc_link; /* Which ints. are or'd together */
+ int intc_bitmap; /* Which XINT connected to */
+ int intd_link; /* Which ints. are or'd together */
+ int intd_bitmap; /* Which XINT connected to */
+ int slot_number; /* Physical slot (1 - NUM_PCI_SLOTS) */
+} SLOT_IRQ_ROUTING;
+
+
+/* Link values used to indicate which PCI interrupts are wire OR'ed together, the
+ value 0 indicates no connection to an interrupt controller and should not be used */
+
+#define LINK_XINT0 1
+#define LINK_XINT1 2
+#define LINK_XINT2 3
+#define LINK_XINT3 4
+#define LINK_XINT4 5
+#define LINK_XINT5 6
+#define LINK_XINT6 7
+#define LINK_XINT7 8
+
+#define INTA 1
+#define INTB 2
+#define INTC 3
+#define INTD 4
+
+#define INTA_PTR 0
+#define INTB_PTR 1
+#define INTC_PTR 2
+#define INTD_PTR 3
+
+#define SLOT0 0
+#define SLOT1 1
+#define SLOT2 2
+#define SLOT3 3
+
+/* PCI Errors - Status Registers */
+#define PARITY_ERROR 0x8000
+#define SERR_ERROR 0x4000
+#define MASTER_ABORT 0x2000
+#define TARGET_ABORT_M 0x1000
+#define TARGET_ABORT_T 0x0800
+#define MASTER_PAR_ERR 0x0100
+
+/* PCI Errors - PCI Interrupt Status Registers */
+#define SERR_ASSERTED 0x00000400
+#define ATU_PERR 0x00000200
+#define ATU_BIST_ERR 0x00000100
+#define IB_MA_ABORT 0x00000080
+#define BRIDGE_PERR 0x00000020
+#define PSERR_FAULT 0x00000010
+#define MA_FAULT 0x00000008
+#define TA_M_FAULT 0x00000004
+#define TA_T_FAULT 0x00000002
+#define PAR_FAULT 0x00000001
+
+/* Generic PCI Constants */
+#define MAX_PCI_BUSES 31
+#define MAX_DEVICE_NUMBER 31
+#define MAX_FUNCTION_NUMBER 8
+#define DEVS_PER_BRIDGE 6
+#define STANDARD_HEADER 0
+#define PCITOPCI_HEADER 1
+#define NUM_PCI_SLOTS 4
+#define MULTIFUNCTION_DEVICE (1 << 7)
+#define MAX_SUB_BUSNO 0xff
+#define LATENCY_VALUE 0x0f
+#define FIRST_DEVICE_NUM 5
+#define LAST_DEVICE_NUM 8
+#define SLOTS_PER_BUS 4
+
+/* PCI command register bits */
+#define PCI_CMD_IOSPACE (1 << 0)
+#define PCI_CMD_MEMSPACE (1 << 1)
+#define PCI_CMD_BUS_MASTER (1 << 2)
+#define PCI_CMD_SPECIAL (1 << 3)
+#define PCI_CMD_MWI_ENAB (1 << 4)
+#define PCI_CMD_VGA_SNOOP (1 << 5)
+#define PCI_CMD_PARITY (1 << 6)
+#define PCI_CMD_WAIT_CYC (1 << 7)
+#define PCI_CMD_SERR_ENAB (1 << 8)
+#define PCI_CMD_FBB_ENAB (1 << 9)
+
+/* Bridge Command Register Bit Definitions*/
+#define BRIDGE_IOSPACE_ENAB (1 << 0)
+#define BRIDGE_MEMSPACE_ENAB (1 << 1)
+#define BRIDGE_MASTER_ENAB (1 << 2)
+#define BRIDGE_WAIT_CYCLE (1 << 7)
+#define BRIDGE_SERR_ENAB (1 << 8)
+
+/* Bridge Control Register Bit Definitions */
+#define BRIDGE_PARITY_ERR (1 << 0)
+#define BRIDGE_SEER_ENAB (1 << 1)
+#define BRIDGE_MASTER_ABORT (1 << 5)
+
+/* configuration offsets */
+#define VENDOR_ID_OFFSET 0x00
+#define DEVICE_ID_OFFSET 0x02
+#define COMMAND_OFFSET 0x04
+#define STATUS_OFFSET 0x06
+#define REVISION_OFFSET 0x08
+#define PROG_IF_OFFSET 0x09
+#define SUB_CLASS_OFFSET 0x0a
+#define BASE_CLASS_OFFSET 0x0b
+#define CACHE_LINE_OFFSET 0x0c
+#define LATENCY_TIMER_OFFSET 0x0d
+#define HEADER_TYPE_OFFSET 0x0e
+#define BIST_OFFSET 0x0f
+#define REGION0_BASE_OFFSET 0x10
+#define REGION1_BASE_OFFSET 0x14
+#define REGION2_BASE_OFFSET 0x18
+#define PRIMARY_BUSNO_OFFSET 0x18
+#define SECONDARY_BUSNO_OFFSET 0x19
+#define SUBORD_BUSNO_OFFSET 0x1a
+#define SECONDARY_LAT_OFFSET 0x1b
+#define REGION3_BASE_OFFSET 0x1c
+#define IO_BASE_OFFSET 0x1c
+#define IO_LIMIT_OFFSET 0x1d
+#define SECONDARY_STAT_OFFSET 0x1e
+#define REGION4_BASE_OFFSET 0x20
+#define MEMORY_BASE_OFFSET 0x20
+#define MEMORY_LIMIT_OFFSET 0x22
+#define REGION5_BASE_OFFSET 0x24
+#define PREF_MEM_BASE_OFFSET 0x24
+#define PREF_MEM_LIMIT_OFFSET 0x26
+#define CARDBUS_CISPTR_OFFSET 0x28
+#define PREF_BASE_UPPER_OFFSET 0x28
+#define SUB_VENDOR_ID_OFFSET 0x2c
+#define PREF_LIMIT_UPPER_OFFSET 0x2c
+#define SUB_DEVICE_ID_OFFSET 0x2e
+#define EXP_ROM_OFFSET 0x30
+#define IO_BASE_UPPER_OFFSET 0x30
+#define IO_LIMIT_UPPER_OFFSET 0x32
+#define CAP_PTR_OFFSET 0x34
+#define TYPE1_EXP_ROM_OFFSET 0x38
+#define INT_LINE_OFFSET 0x3c
+#define INT_PIN_OFFSET 0x3d
+#define MIN_GNT_OFFSET 0x3e
+#define BRIDGE_CTRL_OFFSET 0x3e
+#define MAX_LAT_OFFSET 0x3f
+
+typedef struct
+{
+ SLOT_IRQ_ROUTING info[NUM_PCI_SLOTS];
+} PCI_IRQ_ROUTING_TABLE;
+
+
+/******************************************************************************
+*
+* Return values from BIOS Calls
+*
+*/
+
+#define SUCCESSFUL 0
+#define DEVICE_NOT_FOUND -1
+#define BAD_VENDOR_ID -2
+#define FUNC_NOT_SUPPORTED -3
+#define BUFFER_TOO_SMALL -4
+#define SET_FAILED -5
+#define BAD_REGISTER_NUMBER -6
+
+
+/******************************************************************************
+*
+* BIOS Function Prototypes
+*
+*/
+
+STATUS pci_bios_present (PCI_BIOS_INFO *info);
+
+STATUS find_pci_device (int device_id, int vendor_id, int index);
+
+STATUS find_pci_class_code (int class_code, int index);
+
+STATUS generate_special_cycle (int bus_number, int special_cycle_data);
+
+STATUS read_config_byte (int bus_number, int device_number, int function_number, int register_number, /* 0,1,2,...,255 */
+ UINT8 *data);
+
+STATUS read_config_word (int bus_number, int device_number, int function_number, int register_number, /* 0,2,4,...,254 */
+ UINT16 *data);
+
+STATUS read_config_dword (int bus_number, int device_number, int function_number, int register_number, /* 0,4,8,...,252 */
+ UINT32 *data);
+
+STATUS write_config_byte (int bus_number, int device_number, int function_number, int register_number, /* 0,1,2,...,255 */
+ UINT8 data);
+
+STATUS write_config_word (int bus_number, int device_number, int function_number, int register_number, /* 0,2,4,...,254 */
+ UINT16 data);
+
+STATUS write_config_dword (int bus_number, int device_number, int function_number, int register_number, /* 0,4,8,...,252 */
+ UINT32 data);
+
+STATUS get_irq_routing_options (PCI_IRQ_ROUTING_TABLE *table);
+
+STATUS set_pci_irq (int int_pin, int irq_num, int bus_dev);
+
+
+/******************************************************************************
+*
+* sysPciIsrConnect - connect a routine to an PCI interrupt
+*
+* This function uses the Breeze System Services. Parameters are left
+* unchanged in the global registers just as the service call expects.
+* Likewise, the return value of the service call is left unmodified.
+*
+* intline is the PCI interrupt line PCI_INTA - PCI_INTD
+*
+* bus is the PCI bus the targeted device is on
+*
+* device is the targeted device for the PCI interrupt
+*
+* handler is an interrupt handler which accepts an integer as an argument and
+* returns 0 if no interrupt was serviced and 1 if an interrupt was
+* serviced (necessary for interrupt sharing).
+*
+* arg is the argument to be passed to the handler when called.
+*
+*/
+STATUS sysPciIsrConnect (int intline,
+ int bus,
+ int device,
+ int (*handler)(int),
+ int arg);
+
+
+/******************************************************************************
+*
+* sysPciIsrDisconnect - disconnect a routine from an PCI interrupt
+*
+* This function uses the Breeze System Services. Parameters are left
+* unchanged in the global registers just as the service call expects.
+* Likewise, the return value of the service call is left unmodified.
+*
+* intline is the PCI interrupt line INTA - INTD
+*
+* bus is the PCI bus the targeted device is on
+*
+* device is the PCI device sourcing the interrupt
+*
+ */
+STATUS sysPciIsrDisconnect (int intline,
+ int bus,
+ int device);
+
+#endif /* ASM_LANGUAGE */
+
diff --git a/ecos/packages/hal/arm/xscale/iq80310/current/src/diag/pci_serv.c b/ecos/packages/hal/arm/xscale/iq80310/current/src/diag/pci_serv.c
new file mode 100644
index 0000000..6c5a797
--- /dev/null
+++ b/ecos/packages/hal/arm/xscale/iq80310/current/src/diag/pci_serv.c
@@ -0,0 +1,242 @@
+//=============================================================================
+//
+// pci_serv.c - Cyclone Diagnostics
+//
+//=============================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): Scott Coulter, Jeff Frazier, Eric Breeden
+// Contributors:
+// Date: 2001-01-25
+// Purpose:
+// Description:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================*/
+
+/********************************************************************************/
+/* PCI_SERV.C - PCI driver for IQ80310 */
+/* */
+/* History: */
+/* 15sep00 ejb Ported to Cygmon on IQ80310 */
+/* 18dec00 snc */
+/********************************************************************************/
+#include <redboot.h>
+#include <cyg/hal/hal_iop310.h> // Hardware definitions
+#include "iq80310.h"
+#include "pci_bios.h"
+
+#undef DEBUG_PCI
+
+#define IB_MA_ERROR 0x2000
+
+/*==========================================================================*/
+/* Globals */
+/*==========================================================================*/
+ULONG memspace_ptr[NUM_PCI_BUSES];
+ULONG iospace_ptr[NUM_PCI_BUSES];
+ULONG memspace_limit[NUM_PCI_BUSES];
+ULONG iospace_limit[NUM_PCI_BUSES];
+UINT nextbus;
+UINT secondary_busno = SECONDARY_BUS_NUM;
+UINT primary_busno = PRIMARY_BUS_NUM;
+UINT lastbus;
+unsigned long dram_size; /* global storing the size of DRAM */
+int bus0_lastbus; /* last secondary bus number behind bus 0 */
+int bus1_lastbus; /* last secondary bus number behind bus 1 */
+
+int nmi_verbose; /* global flag to indicate whether or not PCI Error messages should be
+ printed. This flag is used to prevent a painful deluge of messages
+ when performing PCI configuration reads/writes to possibly non-existant
+ devices. */
+
+int pci_config_error = FALSE; /* becomes TRUE if an NMI interrupt occurs due to a PCI config cycle */
+
+#define PRINT_ON() nmi_verbose = TRUE
+#define PRINT_OFF() nmi_verbose = FALSE
+
+/*==========================================================================*/
+/* Function prototypes */
+/*==========================================================================*/
+
+typedef struct
+{
+ FUNCPTR handler;
+ int arg;
+ int bus;
+ int device;
+} INT_HANDLER;
+
+#define NUM_PCI_XINTS 4 /* XINT0 - XINT3 */
+#define MAX_PCI_HANDLERS 8 /* maximum handlers per PCI Xint */
+
+extern void hexIn(void);
+extern int pci_config_cycle;
+extern void _enableFiqIrq(void);
+extern void config_ints(void); /* configure interrupts */
+
+/*********************************************************************************
+* pci_to_xint - convert a PCI device number and Interrupt line to an 80312 XINT
+*
+* This function converts a PCI slot number (0 - 7) and an Interrupt line
+* (INTA - INTD) to a i960 processor XINT number (0 - 3)
+*
+* RETURNS: OK or ERROR if arguments are invalid
+*
+*/
+STATUS pci_to_xint(int device, int intpin, int *xint)
+{
+ int device_base; /* all devices mod 4 follow same interrupt mapping scheme */
+
+ /* check validity of arguments */
+ if ((intpin < INTA) || (intpin > INTD) || (device > 31))
+ return (ERROR);
+
+ device_base = device % 4;
+
+ /* interrupt mapping scheme as per PCI-to-PCI Bridge Specification */
+ switch (device_base) {
+ case 0:
+ switch (intpin) {
+ case INTA:
+ *xint = XINT0;
+ break;
+ case INTB:
+ *xint = XINT1;
+ break;
+ case INTC:
+ *xint = XINT2;
+ break;
+ case INTD:
+ *xint = XINT3;
+ break;
+ }
+ break;
+ case 1:
+ switch (intpin) {
+ case INTA:
+ *xint = XINT1;
+ break;
+ case INTB:
+ *xint = XINT2;
+ break;
+ case INTC:
+ *xint = XINT3;
+ break;
+ case INTD:
+ *xint = XINT0;
+ break;
+ }
+ break;
+ case 2:
+ switch (intpin) {
+ case INTA:
+ *xint = XINT2;
+ break;
+ case INTB:
+ *xint = XINT3;
+ break;
+ case INTC:
+ *xint = XINT0;
+ break;
+ case INTD:
+ *xint = XINT1;
+ break;
+ }
+ break;
+ case 3:
+ switch (intpin) {
+ case INTA:
+ *xint = XINT3;
+ break;
+ case INTB:
+ *xint = XINT0;
+ break;
+ case INTC:
+ *xint = XINT1;
+ break;
+ case INTD:
+ *xint = XINT2;
+ break;
+ }
+ break;
+ }
+ return (OK);
+}
+
+
+/******************************************************************************
+*
+* Checks to see if the "bus" argument identifies a PCI bus which is located
+* off of the Primary PCI bus of the board.
+*/
+int off_ppci_bus (int busno)
+{
+ if (busno == primary_busno)
+ return (TRUE);
+ else if (busno == secondary_busno)
+ return (FALSE);
+ else if (busno <= bus0_lastbus)
+ return (TRUE);
+ else
+ return (FALSE);
+}
+
+/******************************************************************************
+* sys_set_pci_irq - connect a PCI interrupt to a processor IRQ.
+*
+* The PCI Interrupt routing fabric on the Cyclone Hardware is not
+* reconfigurable (fixed mapping relationships) and therefore, this function
+* is not supported.
+*
+*/
+STATUS sys_set_pci_irq (int int_pin, int irq_num, int bus_dev)
+{
+ return (FUNC_NOT_SUPPORTED);
+}
+
+/* check if host of backplane */
+int isHost(void)
+{
+ if (*BACKPLANE_DET_REG & BP_HOST_BIT)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+
+
+
diff --git a/ecos/packages/hal/arm/xscale/iq80310/current/src/diag/test_menu.c b/ecos/packages/hal/arm/xscale/iq80310/current/src/diag/test_menu.c
new file mode 100644
index 0000000..001e819
--- /dev/null
+++ b/ecos/packages/hal/arm/xscale/iq80310/current/src/diag/test_menu.c
@@ -0,0 +1,217 @@
+//=============================================================================
+//
+// test_menu.c - Cyclone Diagnostics
+//
+//=============================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): Scott Coulter, Jeff Frazier, Eric Breeden
+// Contributors:
+// Date: 2001-01-25
+// Purpose:
+// Description:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================*/
+
+/*****************************************************************************
+* test_menu.c - Menu dispatching routine
+*
+* modification history
+* --------------------
+* 30aug00 ejb Ported to IQ80310 Cygmon
+*/
+
+/*
+DESCRIPTION:
+
+A table-driven menu dispatcher
+*/
+
+#include "test_menu.h"
+#include "iq80310.h"
+
+#define QUIT -1
+#define MAX_INPUT_LINE_SIZE 80
+
+extern long decIn(void);
+
+/*
+ * Internal routines
+ */
+static int menuGetChoice (MENU_ITEM menuTable[],
+ int numMenuItems,
+ char *title,
+ unsigned long options);
+static void printMenu (MENU_ITEM menuTable[],
+ int numMenuItems,
+ char *title);
+
+
+/***************************************************************************
+*
+* menu - a table-driven menu dispatcher
+*
+* RETURNS:
+*
+* The menu item argument, or NULL if the item chosen is QUIT.
+*/
+MENU_ARG menu (
+ MENU_ITEM menuTable[],
+ int numMenuItems,
+ char *title,
+ unsigned long options
+ )
+{
+ int item; /* User's menu item choice */
+
+ /*
+ * Get the user's first choice. Always display the menu the first time.
+ */
+ item = menuGetChoice (menuTable, numMenuItems, title, MENU_OPT_NONE);
+ if (item == QUIT)
+ return (NULL);
+
+ /*
+ * If the user just wants a value returned, return the argument. If the
+ * argument is null, return the item number itself.
+ */
+ if (options & MENU_OPT_VALUE) {
+ if (menuTable[item].arg == NULL)
+ return ((void *)item);
+ else
+ return (menuTable[item].arg);
+ }
+
+ /*
+ * Process menu items until the user selects QUIT
+ */
+ while (TRUE) {
+ /*
+ * Call the action routine for the chosen item. If the argument is
+ * NULL, pass the item number itself.
+ */
+ if (menuTable[item].actionRoutine != NULL) {
+ if (menuTable[item].arg == NULL) {
+ printf("\n");
+ (*menuTable[item].actionRoutine) ((void *)item);
+ } else {
+ printf("\n");
+ (*menuTable[item].actionRoutine)(menuTable[item].arg);
+ }
+ }
+
+ /*
+ * Get the next choice, using any display options the user specified.
+ */
+ item = menuGetChoice (menuTable, numMenuItems, title, options);
+ if (item == QUIT)
+ return (NULL);
+ }
+}
+
+
+/***************************************************************************
+*
+* menuGetChoice - Get the user's menu choice.
+*
+* If display is not suppressed, display the menu, then prompt the user for
+* a choice. If the choice is out of range or invalid, display the menu and
+* prompt again. Continue to display and prompt until a valid choice is made.
+*
+* RETURNS:
+* The item number of the user's menu choice. (-1 if they chose QUIT)
+*/
+
+static int
+menuGetChoice (MENU_ITEM menuTable[],
+ int numMenuItems,
+ char *title,
+ unsigned long options
+ )
+{
+ int choice;
+
+ /*
+ * Suppress display of the menu the first time if we're asked
+ */
+ if (!(options & MENU_OPT_SUPPRESS_DISP))
+ printMenu (menuTable, numMenuItems, title);
+
+ /*
+ * Prompt for a selection. Redisplay the menu and prompt again
+ * if there's an error in the selection.
+ */
+ choice = -1;
+
+ while (choice < 0 || choice > numMenuItems) {
+ printf ("\nEnter the menu item number (0 to quit): ");
+ choice = decIn ();
+ if (choice < 0 || choice > numMenuItems)
+ printMenu (menuTable, numMenuItems, title);
+ }
+
+ if (choice == 0)
+ return (QUIT);
+
+ return (choice - 1);
+
+}
+
+
+/***************************************************************************
+*
+* printMenu - Print the menu
+*
+*
+*/
+
+static void
+printMenu (MENU_ITEM menuTable[],
+ int numMenuItems,
+ char *title
+ )
+{
+ int i;
+
+ printf("\n%s\n\n", title);
+
+ for (i = 0; i < numMenuItems; i++)
+ printf ("%2d - %s\n", i+1, menuTable[i].itemName);
+
+ printf(" 0 - quit");
+
+}
diff --git a/ecos/packages/hal/arm/xscale/iq80310/current/src/diag/test_menu.h b/ecos/packages/hal/arm/xscale/iq80310/current/src/diag/test_menu.h
new file mode 100644
index 0000000..2677797
--- /dev/null
+++ b/ecos/packages/hal/arm/xscale/iq80310/current/src/diag/test_menu.h
@@ -0,0 +1,143 @@
+//=============================================================================
+//
+// test_menu.h - Cyclone Diagnostics
+//
+//=============================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): Scott Coulter, Jeff Frazier, Eric Breeden
+// Contributors:
+// Date: 2001-01-25
+// Purpose:
+// Description:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================*/
+
+/*****************************************************************************
+* test_menu.h - Menu dispatching header
+*
+* modification history
+* --------------------
+* 30aug00 ejb Ported from MPC8240 Breeze to StrongARM2 Cygmon
+*/
+/*
+DESCRIPTION
+
+Include file for the table-driven menu module menu.c. This module displays
+a menu of numbered items, prompts the user for a choice, then calls an action
+routine associated with the choice. It then redisplays the menu and prompts
+for another choice. A choice of zero (0) exits the menu routine.
+
+To use this menu module, construct a table of type MENU_ITEM, with one entry
+for each menu item. An entry consists of a string to print out with the
+menu, an action routine, and an argument for the action routine. There is
+no need to have an "exit" or "quit" item, since the menu routine handles
+that by assigning at the zero (0) item number. For example, a simple menu
+of tests would be constructed this way:
+
+ IMPORT VOID doTestA ();
+ IMPORT VOID doTestB ();
+
+ #define TESTA_ARG 0
+ #define TESTB_ARG 1
+
+ LOCAL MENU_ITEM testMenu[] =
+ {
+ {"Test A", doTestA, (MENU_ARG)TESTA_ARG},
+ {"Test B", doTestB, (MENU_ARG)TESTB_ARG},
+ };
+
+ #define NUM_ITEMS NELEMENTS(testMenu)
+ #define MENU_TITLE "Test Menu"
+
+Then, in the test top level routine, call the routine menu(), declared as:
+
+ STATUS menu (menuTable, numMenuItems, title, options)
+ MENU_ITEM menuTable[];
+ int numMenuItems;
+ char *title;
+ ULONG options;
+
+For example:
+
+ status = menu (testMenu, NUM_ITEMS, MENU_TITLE, MENU_OPT_NONE);
+
+*/
+
+/*
+ * The following types define an entry in the menu table. Each entry describes
+ * one menu item, including a string to describe that item, an action
+ * routine to call when that item is chosen, and an argument to pass when the
+ * action routine is called.
+ */
+typedef volatile void *MENU_ARG;
+typedef void (*MENU_RTN) (MENU_ARG);
+typedef struct menuItem
+{
+ char *itemName; /* string to print with the menu */
+ MENU_RTN actionRoutine; /* routine to call when item is chosen */
+ MENU_ARG arg; /* argument to actionRoutine */
+} MENU_ITEM;
+
+
+/*
+ * Menu options
+ *
+ * These options control the display of the menu.
+ *
+ * MENU_OPT_NONE - The normal behavior. The menu is always displayed before
+ * prompting the user for a choice.
+ *
+ * MENU_OPT_SUPPRESS_DISP - The menu is displayed before prompting the user
+ * for a choice except after executing a previously valid choice. This option
+ * is useful for large menus consisting of simple commands that produce only
+ * a line or two of output. In this case, after the user executes a valid
+ * choice, the redisplay of a large menu may cause output to scroll off the
+ * screen. The menu is redisplayed if the user enters an invalid choice.
+ */
+#define MENU_OPT_NONE 0x00
+#define MENU_OPT_SUPPRESS_DISP 0x01
+#define MENU_OPT_VALUE 0x02
+
+
+
+
+MENU_ARG menu (MENU_ITEM menuTable[],
+ int numMenuItems,
+ char *title,
+ unsigned long options);
+
diff --git a/ecos/packages/hal/arm/xscale/iq80310/current/src/diag/xscale_test.c b/ecos/packages/hal/arm/xscale/iq80310/current/src/diag/xscale_test.c
new file mode 100644
index 0000000..650726e
--- /dev/null
+++ b/ecos/packages/hal/arm/xscale/iq80310/current/src/diag/xscale_test.c
@@ -0,0 +1,1433 @@
+//=============================================================================
+//
+// xscale_test.c - Cyclone Diagnostics
+//
+//=============================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): Scott Coulter, Jeff Frazier, Eric Breeden
+// Contributors:
+// Date: 2001-01-25
+// Purpose:
+// Description:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================*/
+
+/************************************************************************/
+/* iq80310_test.c - Main diagnostics for IQ80310 board */
+/* */
+/* Modification History */
+/* -------------------- */
+/* 11oct00, ejb, Created for IQ80310 StrongARM2 */
+/* 18dec00 jwf */
+/* 02feb01 jwf added tests: _coy_tight_loop, cache_loop, LoopMemTest, */
+/* special_mem_test written by snc */
+/* 07feb01 jwf added function calls to a variable delay time generator */
+/* 09feb01 jwf added function version_info to show version information */
+/* about OS, BOARD, CPLD, 80200 ID, 80312 ID. */
+/************************************************************************/
+
+#include <redboot.h>
+#include <cyg/io/pci_hw.h>
+#include <cyg/io/pci.h>
+
+#include "7_segment_displays.h"
+#include "test_menu.h"
+#include "iq80310.h"
+#include "pci_bios.h"
+
+extern void __disableDCache(void);
+extern void __enableDCache(void);
+extern void _enableFiqIrq(void);
+extern void _usec_delay(void);
+extern void _msec_delay(void);
+extern void _enable_timer(void);
+extern void _disable_timer(void);
+extern int xgetchar_timeout(char *ch, int msec);
+extern char xgetchar(void);
+
+
+/* 02/02/01 jwf */
+extern long decIn(void);
+extern long hexIn(void);
+extern void hex32out(unsigned long num);
+extern char* sgets(char *s);
+
+extern void flash_test(MENU_ARG arg) RAM_FUNC_SECT;
+
+extern STATUS pci_isr_connect (int intline, int bus, int device, int (*handler)(int), int arg);
+extern STATUS pci_to_xint(int device, int intpin, int *xint);
+extern void timer_test (MENU_ARG arg);
+
+extern void delay_ms(int msecs);
+
+extern int memTest (long startAddr, long endAddr);
+
+/* 02/02/01 jwf */
+extern int LoopMemTest (long startAddr, long endAddr);
+
+extern void uart_test(MENU_ARG arg);
+extern void pci_ether_test (UINT32 busno, UINT32 devno, UINT32 funcno);
+extern void config_ints(void); /* configure interrupts */
+extern int eeprom_write (unsigned long pci_base, int eeprom_addr, unsigned short *p_data, int nwords);
+extern int enable_external_interrupt (int int_id);
+extern int disable_external_interrupt (int int_id);
+extern int isr_connect(int int_num, void (*handler)(int), int arg);
+extern int isr_disconnect(int int_num);
+extern void init_external_timer(void);
+extern void uninit_external_timer(void);
+extern int isHost(void);
+
+void pci_int_test (MENU_ARG arg);
+void hdwr_diag (void);
+void rotary_switch (MENU_ARG arg);
+void seven_segment_display (MENU_ARG arg);
+void backplane_detection(MENU_ARG arg);
+void battery_status(MENU_ARG arg);
+void ether_test (MENU_ARG arg);
+void gpio_test (MENU_ARG arg);
+
+/* 02/02/01 jwf */
+void static cache_loop (MENU_ARG arg);
+
+/* 02/09/01 jwf */
+void version_info (MENU_ARG arg);
+void read_coyanosa_id_reg (void);
+char board_revision (void);
+
+static void battery_test_menu (MENU_ARG arg);
+static void battery_test_write (MENU_ARG arg);
+static void battery_test_read (MENU_ARG arg);
+
+/* 01/11/01 jwf */
+void select_host_test_system (void);
+
+void internal_timer(MENU_ARG arg);
+static void enet_setup (MENU_ARG arg);
+static void memory_tests (MENU_ARG arg);
+static void repeat_mem_test (MENU_ARG arg);
+
+/* 02/02/01 jwf */
+static void special_mem_test (MENU_ARG arg);
+
+static void spci_tests (MENU_ARG arg), ppci_tests (MENU_ARG arg);
+
+#define VENDOR_INTEL 0x8086
+#define INTEL_NAME "Intel Corporation Inc."
+
+#define I80303_BRIDGE 0x0309
+#define I80303_NAME0 "80303 PCI-PCI Bridge"
+
+#define I80303_ATU 0x5309
+#define I80303_NAME1 "80303 Address Translation Unit"
+
+#define I82557 0x1229
+#define I82557_NAME "82557/82558/82559 10/100 LAN Controller"
+
+#define I82559ER 0x1209
+#define I82559ER_NAME "82559ER 10/100 LAN Controller"
+
+
+/* Test Menu Table */
+static MENU_ITEM testMenu[] = {
+ {"Memory Tests", memory_tests, 0},
+ {"Repeating Memory Tests", repeat_mem_test, 0},
+ {"16C552 DUART Serial Port Tests", uart_test, 0},
+ {"Rotary Switch S1 Test", rotary_switch, 0},
+ {"7 Segment LED Tests", seven_segment_display,0},
+ {"Backplane Detection Test", backplane_detection, 0},
+ {"Battery Status Test", battery_status, 0},
+ {"External Timer Test", timer_test, 0},
+#ifdef CYGPKG_IO_FLASH
+ {"Flash Test", flash_test, 0},
+#endif
+ {"i82559 Ethernet Configuration", enet_setup, 0},
+ {"i82559 Ethernet Test", ether_test, 0},
+ {"i960Rx/303 PCI Interrupt Test", pci_int_test, 0},
+ {"Internal Timer Test", internal_timer, 0},
+ {"Secondary PCI Bus Test", spci_tests, 0},
+ {"Primary PCI Bus Test", ppci_tests, 0},
+ {"Battery Backup SDRAM Memory Test", battery_test_menu, 0},
+ {"GPIO Test", gpio_test, 0},
+/* 02/02/01 jwf */
+ {"Repeat-On-Fail Memory Test", special_mem_test, 0},
+ {"Coyonosa Cache Loop (No return)", cache_loop, 0},
+/* 02/09/01 jwf */
+ {"Show Software and Hardware Revision", version_info, 0}
+};
+
+#define NUM_MENU_ITEMS (sizeof (testMenu) / sizeof (testMenu[0]))
+
+#define MENU_TITLE "\n IQ80310 Hardware Tests"
+
+extern void __reset(void);
+
+void hdwr_diag (void)
+{
+ unsigned char* led0 = (unsigned char*)MSB_DISPLAY_REG;
+ unsigned char* led1 = (unsigned char*)LSB_DISPLAY_REG;
+
+ *led0 = LETTER_S;
+ *led1 = LETTER_S;
+
+ printf ("Entering Hardware Diagnostics - Disabling Data Cache!\n\n");
+
+ __disableDCache();
+
+ _enableFiqIrq(); /* enable FIQ and IRQ interrupts */
+
+ config_ints(); /* configure interrupts for diagnostics */
+
+ /* 01/11/01 jwf */
+ select_host_test_system();
+
+ menu (testMenu, NUM_MENU_ITEMS, MENU_TITLE, MENU_OPT_NONE);
+
+ printf ("Exiting Hardware Diagnostics - Reenabling Data Cache!\n\n");
+
+ *led0 = ZERO;
+ *led1 = ZERO;
+
+ __reset(); /* reset the board so RedBoot starts with a clean slate */
+}
+
+/* 02/02/01 jwf */
+static void cache_loop (MENU_ARG arg)
+{
+ printf ("Putting Processor in a Tight Loop Forever...\n\n");
+
+ asm ( "0: mov r0,r0\n"
+ "b 0b\n");
+ /* not reached */
+}
+
+
+/************************************************/
+/* Secondary PCI Bus Test */
+/* */
+/* This test assumes that a IQ80303 eval board */
+/* is installed in a secondary PCI slot. This */
+/* second board must be configured with 32 Meg */
+/* of SDRAM minimum. */
+/* */
+/************************************************/
+static void spci_tests (MENU_ARG arg)
+{
+ long start_addr;
+ long mem_size;
+ long end_addr;
+ cyg_pci_device_id devid = CYG_PCI_NULL_DEVID;
+ int bus, devfn;
+
+ /* Look for ATU on the secondary PCI Bus */
+ printf("\nLooking for a IQ80303 board on the Secondary PCI bus:\n");
+ while (TRUE) {
+ if (cyg_pci_find_device(VENDOR_INTEL, I80303_ATU, &devid)) {
+ bus = CYG_PCI_DEV_GET_BUS(devid);
+ devfn = CYG_PCI_DEV_GET_DEVFN(devid);
+ if (bus != SECONDARY_BUS_NUM)
+ continue;
+ printf("An IQ80303 board has been detected: bus[%d] devive[%d] fn[%d].",
+ bus, CYG_PCI_DEV_GET_DEV(devfn), CYG_PCI_DEV_GET_FN(devfn));
+ break;
+ } else {
+ printf("No IQ80303 board detected on the SPCI bus!\n");
+ return;
+ }
+ }
+
+ /* read the PCI address which corresponds to the start of DRAM */
+ cyg_pci_read_config_uint32(devid, 0x10, (UINT32 *)&start_addr);
+
+ /* strip off indicator bits */
+ start_addr &= 0xfffffff0;
+
+ printf ("i80303 DRAM starts at PCI address 0x%08X\n", start_addr);
+
+ /* skip over 1st Mbyte of target DRAM */
+ start_addr += 0x100000;
+
+ mem_size = 0x1f00000;
+ end_addr = start_addr + mem_size;
+
+ printf("\n\nTesting memory from $");
+ hex32out(start_addr);
+ printf(" to $");
+ hex32out(end_addr);
+ printf(".\n");
+
+ memTest(start_addr, end_addr);
+ printf("\n");
+
+ printf ("\nMemory test done.\n");
+ printf ("Press return to continue.\n");
+ (void) hexIn();
+}
+
+/************************************************/
+/* Primary PCI Bus Test */
+/* */
+/* This test assumes that a IQ80303 eval board */
+/* is installed in a primary PCI slot. This */
+/* second board must be configured with 32 Meg */
+/* of SDRAM minimum. */
+/* */
+/************************************************/
+static void ppci_tests (MENU_ARG arg)
+{
+ long start_addr;
+ long mem_size;
+ long end_addr;
+ cyg_pci_device_id devid = CYG_PCI_NULL_DEVID;
+ int bus, devfn;
+
+ /* check to see if we are the host of the backplane, if not
+ return an error */
+ if (isHost() == FALSE) {
+ printf ("Invalid test configuration, must be PCI host!\n");
+ return;
+ }
+
+ /* Look for ATU on the primary PCI Bus */
+ printf("\nLooking for a IQ80303 board on the Primary PCI bus:\n");
+ while (TRUE) {
+ if (cyg_pci_find_device(VENDOR_INTEL, I80303_ATU, &devid)) {
+ bus = CYG_PCI_DEV_GET_BUS(devid);
+ devfn = CYG_PCI_DEV_GET_DEVFN(devid);
+ if (bus != PRIMARY_BUS_NUM)
+ continue;
+ printf("An IQ80303 board has been detected: bus[%d] devive[%d] fn[%d].",
+ bus, CYG_PCI_DEV_GET_DEV(devfn), CYG_PCI_DEV_GET_FN(devfn));
+ break;
+ } else {
+ printf("No IQ80303 board detected on the PPCI bus!\n");
+ return;
+ }
+ }
+
+ /* read the PCI address which corresponds to the start of DRAM */
+ cyg_pci_read_config_uint32(devid, 0x10, (UINT32 *)&start_addr);
+
+ /* strip off indicator bits */
+ start_addr &= 0xfffffff0;
+
+ printf ("i80303 DRAM starts at PCI address 0x%08X\n", start_addr);
+
+ /* skip over 1st Mbyte of target DRAM */
+ start_addr += 0x100000;
+
+ mem_size = 0x1f00000;
+ end_addr = start_addr + mem_size;
+
+ printf("\n\nTesting memory from $");
+ hex32out(start_addr);
+ printf(" to $");
+ hex32out(end_addr);
+ printf(".\n");
+
+ memTest(start_addr, end_addr);
+ printf("\n");
+
+ printf ("\nMemory test done.\n");
+ printf ("Press return to continue.\n");
+ (void) hexIn();
+}
+
+
+/*****************************************************************************
+* memory_tests - Basic Memory Tests
+*
+* Memory tests can be run one of two ways - with the cache turned OFF to test
+* physical memory, or with cache turned ON to test the caching
+*/
+static void memory_tests (MENU_ARG arg)
+{
+ long start_addr;
+ long mem_size;
+ long end_addr;
+
+ printf ("Base address of memory to test (in hex): ");
+ start_addr = hexIn();
+ printf("\n");
+ printf ("Size of memory to test (in hex): ");
+ mem_size = hexIn();
+ printf("\n");
+ end_addr = start_addr + mem_size;
+
+ printf("Testing memory from $");
+ hex32out(start_addr);
+ printf(" to $");
+ hex32out(end_addr);
+ printf(".\n");
+ memTest(start_addr, end_addr);
+ printf("\n");
+
+ printf ("\nMemory test done.\n");
+ printf ("Press return to continue.\n");
+ (void) xgetchar();
+}
+
+
+/*****************************************************************************
+* repeat_mem_test - Repeating Memory Tests
+*
+*/
+static void repeat_mem_test (MENU_ARG arg)
+{
+ unsigned long start_addr, mem_size, end_addr;
+ char cache_disable[10];
+
+ printf ("Turn off Data Cache? (y/n): ");
+ sgets (cache_disable);
+ printf ("\n");
+ printf ("Base address of memory to test (in hex): ");
+ start_addr = hexIn();
+ printf("\n");
+ printf ("Size of memory to test (in hex): ");
+ mem_size = hexIn();
+ printf("\n");
+ end_addr = start_addr + mem_size;
+ printf("Testing memory from $");
+ hex32out(start_addr);
+ printf(" to $");
+ hex32out(end_addr);
+ while (memTest (start_addr, end_addr))
+ ;
+}
+
+/* 02/02/01 jwf */
+/*****************************************************************************
+* special_mem_test - Repeat-On-Fail Memory Test
+*
+* Memory tests can be run one of two ways - with the cache turned OFF to test
+* physical memory, or with cache turned ON to test the caching
+*/
+static void special_mem_test (MENU_ARG arg)
+{
+ long start_addr;
+ long mem_size;
+ long end_addr;
+
+ printf ("Base address of memory to test (in hex): ");
+ start_addr = hexIn();
+ printf("\n");
+ printf ("Size of memory to test (in hex): ");
+ mem_size = hexIn();
+ printf("\n");
+ end_addr = start_addr + mem_size;
+
+ printf("Testing memory from $");
+ hex32out(start_addr);
+ printf(" to $");
+ hex32out(end_addr);
+ printf(".\n");
+ LoopMemTest(start_addr, end_addr);
+ printf("\n");
+
+ printf ("\nMemory test done.\n");
+ printf ("Press return to continue.\n");
+ (void) xgetchar();
+}
+
+const unsigned char SevSegDecode[] = {
+ ZERO, ONE, TWO, THREE, FOUR,
+ FIVE, SIX, SEVEN, EIGHT, NINE,
+ LETTER_A, LETTER_B, LETTER_C, LETTER_D,
+ LETTER_E, LETTER_F, DECIMAL_POINT,
+ DISPLAY_OFF
+};
+
+/* sequential test for LSD and MSD 7 segment Leds */
+void seven_segment_display (MENU_ARG arg)
+{
+ int DisplaySequence;
+ int SelectLed;
+
+ *MSB_DISPLAY_REG = DISPLAY_OFF; /* blank MSD 7 segment LEDS */
+ *LSB_DISPLAY_REG = DISPLAY_OFF; /* blank LSD 7 segment LEDS */
+
+ SelectLed=0; /* initialize 7 segment LED selection */
+
+ do {
+ /* run test data sequence for a 7 segment LED */
+ for (DisplaySequence = 0; DisplaySequence <= 17; ++DisplaySequence) {
+
+ /* display test data on selected 7 segment LED */
+ /* the test data sequence for a 7 segment led will be seen as:*/
+ /* 0 1 2 3 4 5 6 7 8 9 A b C d e F . */
+ if (SelectLed)
+ *MSB_DISPLAY_REG = SevSegDecode[DisplaySequence];
+ else
+ *LSB_DISPLAY_REG = SevSegDecode[DisplaySequence];
+
+ delay_ms(400);
+
+ } /* end for(DisplaySequence~) */
+ ++SelectLed; /* select next 7 segment LED */
+ } while (SelectLed < 2); /* tests a pair of 7 segment LEDs */
+
+ *MSB_DISPLAY_REG = LETTER_S;
+ *LSB_DISPLAY_REG = LETTER_S;
+}
+
+
+/* 12/18/00 jwf */
+/* tests rotary switch status, S1 positions 0-3, a 2 bit output code */
+void rotary_switch (MENU_ARG arg)
+{
+ const unsigned char MAX_SWITCH_SAMPLES = 9;
+ unsigned char RotarySwitch[MAX_SWITCH_SAMPLES];
+ unsigned char index; /* index for Rotary Switch array */
+ unsigned char debounce; /* keeps tally of equal rotary switch data reads in a loop */
+ char ch;
+
+ *MSB_DISPLAY_REG = DISPLAY_OFF;
+ *MSB_DISPLAY_REG = DISPLAY_OFF;
+
+ printf("\n\nThe 7-Segment LSD LED shows the Rotary Switch position selected, i.e., 0-F.");
+ printf("\n\nSlowly dial the Rotary Switch through each position 0-F and confirm reading.");
+
+ printf( "\n\nStrike <CR> to exit this test." );
+ do {
+ do { /* debounce the switch contacts */
+ for (index = 0; index <= MAX_SWITCH_SAMPLES; index++) {
+ /* read rotary switch code */
+ RotarySwitch[index] = *(volatile unsigned char *)0xfe8d0000;
+ RotarySwitch[index] &= 0x0f;
+ }
+ debounce = 0;
+ for (index = 1; index <= MAX_SWITCH_SAMPLES; index++)
+ if (RotarySwitch[0] == RotarySwitch[index])
+ debounce++;
+
+ /* exit when all rotary switch code readings are equal,
+ when debounce = MAX_SWITCH_SAMPLES-1 */
+ } while (debounce < (MAX_SWITCH_SAMPLES - 1));
+
+ /* display the rotary switch position on the 7 segment LSD LED as: 0, 1, 2, 3 */
+ *LSB_DISPLAY_REG = SevSegDecode[RotarySwitch[0]];
+
+ } while (!xgetchar_timeout(&ch, 200) || ch != 0x0d); /* run until User types a <CR> to exit */
+
+ *MSB_DISPLAY_REG = LETTER_S;
+ *LSB_DISPLAY_REG = LETTER_S;
+
+}
+
+
+/* test backplane detection, connector socket J19 pin 7 */
+/* BP_DET#=0, no backplane */
+/* BP_DET#=1, backplane installed */
+/* b0 <--> BP_DET# */
+void backplane_detection(MENU_ARG arg)
+{
+ unsigned char BpDetStatus; /* L = pci700 board installed on backplane */
+
+ BpDetStatus = *( unsigned char * ) 0xfe870000; /* read backplane detection status port */
+
+ BpDetStatus &= 0x01; /* isolate bit b0 */
+
+ /* examine bit 0 */
+ switch( BpDetStatus ) {
+ case 0x00: /* BpDetStatus = !(BP_DET#=1) = 0 */
+ printf("\nBackplane detection bit read Low, no backplane installed\n");
+ printf("\nPlace a jumper across J19.7 to J19.1, then run this test again.\n");
+ break;
+
+ case 0x01: /* BpDetStatus = !(BP_DET#=0) = 1 */
+ printf("\nBackplane detection bit read High, 1 backplane detected.\n");
+ printf("\nRemove jumper from J19\n");
+ break;
+
+ default:
+ break;
+ }
+
+ /* 12/18/00 jwf */
+ printf ("\n\nStrike <CR> to exit this test.\n\n");
+ hexIn();
+}
+
+
+/* test battery status */
+/* b0 - !(BATT_PRES#=0). A battery is installed.*/
+/* b1 - BATT_CHRG=1. The battery is fully charged. */
+/* b2 - BATT_DISCHRG=1. The battery is fully discharged. */
+void battery_status(MENU_ARG arg)
+{
+ unsigned char BatteryStatus;
+
+ BatteryStatus = *(unsigned char *)0xfe8f0000; /* read battery status port */
+
+ /* examine bit b0 BATT_PRES# */
+ if (BatteryStatus & 0x01) /* TestBit=!(BATT_PRES#=0)=1 */
+ printf("\nBATT_PRES#=0. A battery was detected.\n");
+ else
+ printf("\nBATT_PRES#=1. No battery installed.\n");
+
+ /* examine bit b1 BATT_CHRG */
+ if (BatteryStatus & 0x02) /* BATT_CHRG=1 */
+ printf("\nBATT_CHRG=1. Battery is fully charged.\n");
+ else /* BATT_CHRG=0 */
+ printf("\nBATT_CHRG=0. Battery is charging.\n");
+
+ /* examine bit b2 BATT_DISCHRG */
+ if (BatteryStatus & 0x04)
+ printf("\nBATT_DISCHRG=1. Battery is fully discharged.\n");
+ else
+ printf("\nBATT_DISCHRG=0. Battery voltage measures with in normal operating range.\n");
+
+ printf ("\n\nStrike <CR> to exit this test.\n\n");
+ hexIn();
+}
+
+
+
+/* GPIO test */
+/* Header J16 pin out is: J16.1=b0, J16.3=b1, J16.5=b2, J16.7=b3, J16.9=b4, J16.11=b5, J16.13=b6, J16.15=b7 */
+/* This test will require use of 2 special test sockets wired as follows for the output and input tests. */
+/* Intel specifies that each GPIO pin must be pulled down after P_RST# deasserts to swamp out their weak internal active pull up */
+/* Note that the internal weak active pull up tends to have more of an affect on the GPIO input port rather than the output port */
+/* Therefore for the input test, jumper J16 pins: 1-2, 3-4, 5-6, 7-8, 9-10, 11-12, 13-14, 15-16, and (TBD) provide an input source for each bit */
+/* For the output test, jumper J16 pins: 1-2, 3-4, 5-6, 7-8, 9-10, 11-12, 13-14, 15-16 */
+/* each jumpered pin connects a weak pull down resistor, resident on board, to each GPIO pin */
+void gpio_test (MENU_ARG arg)
+{
+ /*unsigned char GpioInputPort;*/
+ unsigned char GpioOutputPort;
+ unsigned char GpioOutputEnablePort;
+
+ /* GPIO output port test */
+
+ printf("\n\nPlug output test socket into header J16, strike 'Enter' to continue" );
+ while(xgetchar()!=0x0d);
+
+ /* write test data pattern to GPIO Output Enable Register at address 0x0000171c */
+ *( unsigned char * ) 0x0000171c = 0x55;
+
+ /* read GPIO Output Enable Register from address 0x0000171c */
+ GpioOutputEnablePort = *( unsigned char * ) 0x0000171c;
+
+ if (GpioOutputEnablePort==0x55)
+ printf("\nGPIO Output Enable first write/read test PASSED.");
+ else
+ printf("\nGPIO Output Enable first write/read test FAILED.");
+
+ /* write test data pattern to GPIO Output Enable Register at address 0x0000171c */
+ *( unsigned char * ) 0x0000171c = 0xaa;
+
+ /* read GPIO Output Enable Register from address 0x0000171c */
+ GpioOutputEnablePort = *( unsigned char * ) 0x0000171c;
+
+ if (GpioOutputEnablePort==0xaa)
+ printf("\nGPIO Output Enable second write/read test PASSED.");
+ else
+ printf("\nGPIO Output Enable second write/read test FAILED.");
+
+ /* enable output bits b0-b7, write test pattern to GPIO Output Enable Register */
+ *( unsigned char * ) 0x0000171c = 0x00;
+
+ /* write test data pattern to GPIO Output Data Register at address 00001724h */
+ *( unsigned char * ) 0x00001724 = 0x55;
+
+ /* read test data pattern from GPIO Output Data Register at address 00001724h */
+ GpioOutputPort = *( unsigned char * ) 0x00001724;
+
+ if (GpioOutputPort==0x55)
+ printf("\nGPIO Output Data Register first write/read test PASSED.");
+ else
+ printf("\nGPIO Output Data Register first write/read test FAILED.");
+
+ /* write output data pattern to GPIO Output Data Register at address 00001724h */
+ *( unsigned char * ) 0x00001724 = 0xaa;
+
+ /* read output data pattern from GPIO Output Data Register at address 00001724h */
+ GpioOutputPort = *( unsigned char * ) 0x00001724;
+
+ if (GpioOutputPort==0xaa)
+ printf("\nGPIO Output Data Register second write/read test PASSED.");
+ else
+ printf("\nGPIO Output Data Register second write/read test FAILED.");
+
+ printf("\n\nRemove output test socket from header J16, strike 'Enter' to continue" );
+ while(xgetchar()!=0x0d);
+}
+
+/* i82559 Ethernet test */
+void ether_test (MENU_ARG arg)
+{
+ cyg_pci_device_id devid[6];
+ int unit = 0;
+ int i, num_enet;
+
+
+ for (i = 0, num_enet = 0; i < 6; i++, num_enet++) {
+ if (i == 0)
+ devid[0] = CYG_PCI_NULL_DEVID;
+ else
+ devid[i] = devid[i-1]; // start from last one found
+ if (!cyg_pci_find_device(VENDOR_INTEL, I82557, &devid[i]))
+ break;
+ }
+
+ for (; i < 6; i++, num_enet++) {
+ if (i == 0)
+ devid[0] = CYG_PCI_NULL_DEVID;
+ else
+ devid[i] = devid[i-1]; // start from last one found
+ if (!cyg_pci_find_device(VENDOR_INTEL, I82559ER, &devid[i]))
+ break;
+ }
+
+ if (num_enet == 0) {
+ printf ("No supported Ethernet devices found\n");
+ return;
+ }
+
+ printf ("Supported Ethernet Devices:\n\n");
+
+ printf (" Unit# Bus# Device#\n");
+ printf (" ----- ---- -------\n");
+ for (i = 0; i < num_enet; i++)
+ printf (" %d %d %d\n", i,
+ CYG_PCI_DEV_GET_BUS(devid[i]),
+ CYG_PCI_DEV_GET_DEV(CYG_PCI_DEV_GET_DEVFN(devid[i])));
+
+ printf ("\nEnter the unit number to test : ");
+ unit = decIn();
+ printf ("\n");
+
+ pci_ether_test (CYG_PCI_DEV_GET_BUS(devid[unit]),
+ CYG_PCI_DEV_GET_DEV(CYG_PCI_DEV_GET_DEVFN(devid[unit])),
+ CYG_PCI_DEV_GET_FN(CYG_PCI_DEV_GET_DEVFN(devid[unit])));
+}
+
+
+
+
+/* Setup Serial EEPROM for Ethernet Configuration */
+static void enet_setup (MENU_ARG arg)
+{
+ UINT32 adapter_ptr; /* Ptr to PCI Ethernet adapter */
+ cyg_pci_device_id devid;
+
+ UINT16 eepromData[3] = {
+ 0x4801, /* Valid EEPROM, No Expansion ROM, Rev = ?, PHY Addr = 1 */
+ 0x0700, /* Subsystem Id - PCI700 */
+ 0x113c /* Subsystem Vendor Id - Cyclone Microsystems */
+ };
+ int config_data_offset = 0x0a; /* offset into EEPROM for config. data storage */
+ int ia_offset = 0x00; /* offset into EEPROM for IA storage */
+ UINT8 buffer[6]; /* temporary storage for IA */
+ UINT16 temp_node_addr[3] = {0,0,0};
+ UINT16 serial_no;
+ UINT8 revision_id = 0, port_id = 0;
+ char rev_string[8];
+
+ /* Cyclone identifier */
+ buffer[0] = 0x00;
+ buffer[1] = 0x80;
+ buffer[2] = 0x4D;
+ buffer[3] = 0x46; /* board identifier - PCI700 = 70 = 0x46 */
+
+ serial_no = 10000;
+ while (serial_no >= 10000) {
+ printf ("\nEnter the board serial number (1 - 9999): ");
+ serial_no = decIn();
+ printf ("\n");
+ }
+ revision_id = 8;
+ while ((revision_id < 1) || (revision_id > 7)) {
+ printf ("\nEnter the board revison (A - G) : ");
+ sgets (rev_string);
+ rev_string[0] = (rev_string[0] & 0xdf); /* convert to upper case */
+ revision_id = (rev_string[0] - 'A') + 1; /* convert to a number 1 - 7 */
+ printf ("\n");
+ }
+ revision_id &= 0x7;
+ eepromData[0] |= (revision_id << 8); /* add the rev. id to data */
+
+ /* we only want to set up on-board 559 */
+ devid = CYG_PCI_DEV_MAKE_ID(2, CYG_PCI_DEV_MAKE_DEVFN(0,0));
+ /* Get the PCI Base Address for mem. runtime registers */
+ cyg_pci_read_config_uint32(devid, 0x10, &adapter_ptr);
+
+ /* strip off indicator bits */
+ adapter_ptr = adapter_ptr & 0xfffffff0;
+
+ printf ("Writing the Configuration Data to the Serial EEPROM... ");
+ if (eeprom_write (adapter_ptr,config_data_offset,eepromData,3) != OK) {
+ printf ("Error writing the Configuration Data to Serial EEPROM\n");
+ return;
+ }
+ printf ("Done\n");
+
+ /* setup node's Ethernet address */
+ port_id = ((0 << 6) & 0xc0); /* two bits of port number ID */
+ buffer[4] = (UINT8) (((serial_no & 0x3FFF) >> 8) | port_id);
+ buffer[5] = (UINT8) (serial_no & 0x00FF);
+
+ temp_node_addr[0] = (UINT16) ((buffer[1] << 8) + buffer[0]);
+ temp_node_addr[1] = (UINT16) ((buffer[3] << 8) + buffer[2]);
+ temp_node_addr[2] = (UINT16) ((buffer[5] << 8) + buffer[4]);
+
+ printf ("Writing the Individual Address to the Serial EEPROM... ");
+ if (eeprom_write (adapter_ptr,ia_offset,temp_node_addr,3) != OK) {
+ printf ("\nError writing the IA address to Serial EEPROM.\n");
+ return;
+ }
+ printf ("Done\n");
+
+ /* now that we have finished writing the configuration data, we must ask the
+ operator to reset the PCI916 to have the configuration changes take effect.
+ After the reset, the standard Enet. port diagnostics can be run on the 916
+ under test */
+
+ printf ("\n\n******** Reset the IQ80310 Now to Have Changes Take Effect ********\n\n");
+
+ /* wait forever as a reset will bring us back */
+ while ((volatile int)TRUE)
+ ;
+}
+
+
+
+/* use the clock in the Performance Monitoring Unit to do delays */
+void polled_delay (int usec)
+{
+ volatile int i;
+
+ _enable_timer();
+
+ for (i = 0; i < usec; i++)
+ _usec_delay();
+
+ _disable_timer();
+}
+
+
+
+void internal_timer(MENU_ARG arg)
+{
+ int j, i;
+
+ printf ("\n");
+
+ _enable_timer();
+
+ printf ("Timer enabled...\n");
+
+ for (j = 0; j < 20; j++) {
+ printf (".");
+ for (i = 0; i < 1000; i++)
+ _msec_delay();
+ }
+
+ _disable_timer();
+
+ printf ("\nTimer disabled...\n");
+}
+
+
+#define I80960RP_BRIDGE 0x0960
+#define I80960RP_NAME0 "80960RP PCI-PCI Bridge"
+
+#define I80960RP_ATU 0x1960
+#define I80960RP_NAME1 "80960RP Address Translation Unit"
+
+#define I80960RM_BRIDGE 0x0962
+#define I80960RM_NAME0 "80960RM PCI-PCI Bridge"
+
+#define I80960RM_ATU 0x1962
+#define I80960RM_NAME1 "80960RM Address Translation Unit"
+
+#define I80960RN_BRIDGE 0x0964
+#define I80960RN_NAME0 "80960RN PCI-PCI Bridge"
+
+#define I80960RN_ATU 0x1964
+#define I80960RN_NAME1 "80960RN Address Translation Unit"
+
+#define I80303_BRIDGE 0x0309
+#define I80303_NAME0 "80303 PCI-PCI Bridge"
+
+#define I80303_ATU 0x5309
+#define I80303_NAME1 "80303 Address Translation Unit"
+
+
+
+/******************************************************************/
+/* The following functions are all part of the PCI Interrupt Test */
+/******************************************************************/
+/* definitions pertaining to PCI interrupt test */
+#define MAX_I960RX 31
+typedef struct
+{
+ UINT32 device_id;
+ UINT32 busno;
+ UINT32 devno;
+ UINT32 funcno;
+} I960RX_DEVICES;
+I960RX_DEVICES i960Rx_devices[MAX_I960RX];
+UINT32 num_rx_devices = 0;
+UINT32 messagingUnitBase = (UINT32)NULL;
+
+/* Outbound Interrupt Status Register bits */
+#define OB_STAT_INTA (1 << 4)
+#define OB_STAT_INTB (1 << 5)
+#define OB_STAT_INTC (1 << 6)
+#define OB_STAT_INTD (1 << 7)
+
+/* Outbound Doorbell Register bits */
+#define OB_DBELL_INTA (1 << 28)
+#define OB_DBELL_INTB (1 << 29)
+#define OB_DBELL_INTC (1 << 30)
+#define OB_DBELL_INTD (1 << 31)
+
+/***********************************************************************
+*
+* line_to_string - Returns name as string of particular XINT number
+*
+*/
+static char *line_to_string (int intline)
+{
+ switch (intline) {
+ case XINT0: return("XINT0");
+ case XINT1: return("XINT1");
+ case XINT2: return("XINT2");
+ case XINT3: return("XINT3");
+ default: return("ERROR");
+ }
+}
+
+
+/***************************************************************************
+*
+* PCI_IntHandler - Interrupt handler for PCI interrupt test
+*
+* Used to verify that an interrupt was recieved during the PCI interrupt
+* test by the IQ80310 from the add-in i960Rx board. This handler prints out
+* which interrupt was recieved, and then clears the interrupt by clearing
+* the doorbell register on the i960Rx card.
+*
+*/
+int PCI_IntHandler (int IntPin)
+{
+ UINT32 *OutboundDbReg = (UINT32 *)(messagingUnitBase + 0x2c);
+ UINT32 *OutboundIstatReg = (UINT32 *)(messagingUnitBase + 0x30);
+
+ switch (IntPin) {
+ case INTA:
+
+ /* check to see if we are looking at the correct interrupt */
+ if (!(*OutboundIstatReg & OB_STAT_INTA)) {
+ return (0);
+ } else {
+ printf ("PCI INTA generated/received\n\n");
+ printf ("OISR OK!\n");
+ printf ("OISR = 0x%X\n", *OutboundIstatReg);
+ printf ("**** PCI INTA Success ****\n\n");
+ *OutboundDbReg |= OB_DBELL_INTA; /* try to clear specific source */
+ return (1);
+ }
+ break;
+
+ case INTB:
+ /* check to see if we are looking at the correct interrupt */
+ if (!(*OutboundIstatReg & OB_STAT_INTB)) {
+ return (0);
+ } else {
+ printf ("PCI INTB generated/received\n\n");
+ printf ("OISR OK!\n");
+ printf ("OISR = 0x%X\n", *OutboundIstatReg);
+ printf ("**** PCI INTB Success ****\n\n");
+ *OutboundDbReg |= OB_DBELL_INTB; /* try to clear specific source */
+ return (1);
+ }
+
+ break;
+
+ case INTC:
+ /* check to see if we are looking at the correct interrupt */
+ if (!(*OutboundIstatReg & OB_STAT_INTC)) {
+ return (0);
+ } else {
+ printf ("PCI INTC generated/received\n\n");
+ printf ("OISR OK!\n");
+ printf ("OISR = 0x%X\n", *OutboundIstatReg);
+ printf ("**** PCI INTC Success ****\n\n");
+ *OutboundDbReg |= OB_DBELL_INTC; /* try to clear specific source */
+ return (1);
+ }
+
+ break;
+
+ case INTD:
+ /* check to see if we are looking at the correct interrupt */
+ if (!(*OutboundIstatReg & OB_STAT_INTD)) {
+ return (0);
+ } else {
+ printf ("PCI INTD generated/received\n\n");
+ printf ("OISR OK!\n");
+ printf ("OISR = 0x%X\n", *OutboundIstatReg);
+ printf ("**** PCI INTD Success ****\n\n");
+ *OutboundDbReg |= OB_DBELL_INTD; /* try to clear specific source */
+ return (1);
+ }
+
+ break;
+
+ default:
+ printf ("Unknown interrupt received\n");
+ return (0);
+ break;
+ }
+ return (1); /* interrupt sharing support requirement */
+}
+
+
+/*******************************************************************************
+*
+* i960Rx_seek - look for i960Rx CPUs on the PCI Bus
+*
+* This function is used by the PCI interrupt test to find and print out
+* all PCI location of a particular i960Rx processor on the PCI bus. Thses include
+* boards based on the RP, RD, RM, and RN processors. The device ID of one of
+* these processors is the input to the function.
+*
+*/
+static void i960Rx_seek (UINT32 adapter_device_id)
+{
+ static char *i960Rx_name;
+ cyg_pci_device_id devid = CYG_PCI_NULL_DEVID;
+ int bus, devfn;
+
+ /* get the common name for the current Rx processor */
+ switch (adapter_device_id) {
+ case I80960RN_ATU:
+ i960Rx_name = " i960RN ";
+ break;
+ case I80960RM_ATU:
+ i960Rx_name = " i960RM ";
+ break;
+ case I80960RP_ATU:
+ i960Rx_name = "i960RP/RD";
+ break;
+ case I80303_ATU:
+ default:
+ i960Rx_name = " i80303 ";
+ break;
+ }
+
+ while (cyg_pci_find_device(VENDOR_INTEL, adapter_device_id, &devid)) {
+ bus = CYG_PCI_DEV_GET_BUS(devid);
+ devfn = CYG_PCI_DEV_GET_DEVFN(devid);
+ /* set up this entry into the device array */
+ i960Rx_devices[num_rx_devices].device_id = adapter_device_id;
+ i960Rx_devices[num_rx_devices].busno = bus;
+ i960Rx_devices[num_rx_devices].devno = CYG_PCI_DEV_GET_DEV(devfn);
+ i960Rx_devices[num_rx_devices].funcno = CYG_PCI_DEV_GET_FN(devfn);
+
+ printf (" %d %s %d %d %d\n",
+ num_rx_devices, i960Rx_name,
+ i960Rx_devices[num_rx_devices].busno,
+ i960Rx_devices[num_rx_devices].devno,
+ i960Rx_devices[num_rx_devices].funcno);
+
+ num_rx_devices++; /* increment total number of i960Rx devices found */
+ }
+}
+
+
+/*********************************************************************************
+*
+* pci_int_test - tests PCI interrupts on IQ80310 PCI buses
+*
+* This test allows full testing of PCI interrupt routing to a particular
+* slot on the PCI bus. It runs in conjunction with a Cyclone i960Rx-based
+* board plugged into the target slot. A default interrupt handler is connected
+* for all four PCI interrupt pins on the target board. The test then waits for
+* the target board to trigger each interrupt using the i960Rx doorbell registers.
+* The test passes if all four interrupts are recieved and properly handled by the
+* IQ80310.
+*
+*/
+void pci_int_test (MENU_ARG arg)
+{
+ int indexChoice = 0;
+ UINT32 long_data;
+ UINT32 *OutboundImaskReg;
+ int intline_INTA, intline_INTB, intline_INTC, intline_INTD;
+ cyg_pci_device_id devid = CYG_PCI_NULL_DEVID;
+
+ num_rx_devices = 0;
+
+ printf ("Scanning PCI Bus for all supported i960Rx ATU Devices.....\n\n");
+
+ printf (" Index Processor Bus Device Function\n");
+ printf (" ----- --------- --- ------ --------\n");
+
+ i960Rx_seek (I80960RN_ATU);
+ i960Rx_seek (I80960RM_ATU);
+ i960Rx_seek (I80960RP_ATU);
+ i960Rx_seek (I80303_ATU);
+
+ if (num_rx_devices == 0) {
+ printf ("\n*** No i960Rx ATU Found on PCI Bus ***\n");
+ return;
+ }
+
+ printf ("Enter index number to use for test : ");
+ indexChoice = decIn();
+ printf ("\n\n");
+
+ if (indexChoice >= num_rx_devices) {
+ printf ("Invalid index chosen, exiting\n");
+ return;
+ }
+
+
+ devid = CYG_PCI_DEV_MAKE_ID(i960Rx_devices[indexChoice].busno,
+ CYG_PCI_DEV_MAKE_DEVFN(i960Rx_devices[indexChoice].devno,
+ i960Rx_devices[indexChoice].funcno));
+
+ cyg_pci_read_config_uint32(devid, REGION0_BASE_OFFSET,(UINT32*)&long_data);
+
+ messagingUnitBase = long_data & 0xfffffff0;
+ printf ("Messaging Unit PCI Base Address = 0x%X\n", messagingUnitBase);
+ OutboundImaskReg = (UINT32 *)(messagingUnitBase + 0x34);
+
+ /* Normally, we would just read the intline value from the configuration
+ space to determine where the interrupt is routed. However, the i960Rx
+ only requested interrupt resources for one interrupt at a time... */
+
+ /* compute interrupt routing values */
+ if ((pci_to_xint(i960Rx_devices[indexChoice].devno, INTA, (int*)&intline_INTA)) ||
+ (pci_to_xint(i960Rx_devices[indexChoice].devno, INTB, (int*)&intline_INTB)) ||
+ (pci_to_xint(i960Rx_devices[indexChoice].devno, INTC, (int*)&intline_INTC)) ||
+ (pci_to_xint(i960Rx_devices[indexChoice].devno, INTD, (int*)&intline_INTD)) == ERROR) {
+ printf ("Error: Unable to connect PCI interrupts with IQ80310 interrupts\n");
+ return;
+ }
+
+ printf ("i960Rx INTA pin mapped to intLine %s on IQ80310\n", line_to_string(intline_INTA));
+ printf ("i960Rx INTB pin mapped to intLine %s on IQ80310\n", line_to_string(intline_INTB));
+ printf ("i960Rx INTC pin mapped to intLine %s on IQ80310\n", line_to_string(intline_INTC));
+ printf ("i960Rx INTD pin mapped to intLine %s on IQ80310\n", line_to_string(intline_INTD));
+
+
+ /* Connect i960Rx PCI INTA Handler */
+ if (pci_isr_connect (INTA, i960Rx_devices[indexChoice].busno,
+ i960Rx_devices[indexChoice].devno, PCI_IntHandler, INTA)
+ == ERROR ) {
+ printf ("Error Connecting INTA interrupt handler\n");
+ return;
+ }
+ printf ("INTA Service Routine installed...\n");
+
+ /* enable PCI INTA */
+ enable_external_interrupt(SINTA_INT_ID);
+
+ /* Connect i960Rx PCI INTB Handler */
+ if (pci_isr_connect (INTA, i960Rx_devices[indexChoice].busno,
+ i960Rx_devices[indexChoice].devno, PCI_IntHandler, INTB)
+ == ERROR) {
+ printf ("Error Connecting INTB interrupt handler\n");
+ return;
+ }
+ printf ("INTB Service Routine installed...\n");
+
+ /* enable PCI INTB */
+ enable_external_interrupt(SINTB_INT_ID);
+
+ /* Connect i960Rx PCI INTC Handler */
+ if (pci_isr_connect (INTA, i960Rx_devices[indexChoice].busno,
+ i960Rx_devices[indexChoice].devno, PCI_IntHandler, INTC)
+ == ERROR) {
+ printf ("Error Connecting INTC interrupt handler\n");
+ return;
+ }
+ printf ("INTC Service Routine installed...\n");
+
+ /* enable PCI INTC */
+ enable_external_interrupt(SINTC_INT_ID);
+
+ /* Connect i960Rx PCI INTD Handler */
+ if (pci_isr_connect (INTA, i960Rx_devices[indexChoice].busno,
+ i960Rx_devices[indexChoice].devno, PCI_IntHandler, INTD)
+ == ERROR) {
+ printf ("Error Connecting INTD interrupt handler\n");
+ return;
+ }
+ printf ("INTD Service Routine installed...\n");
+
+ /* enable PCI INTD */
+ enable_external_interrupt(SINTD_INT_ID);
+
+ /* make sure that the Outbound interrupts aren't masked */
+ *OutboundImaskReg &= ~(OB_STAT_INTA | OB_STAT_INTB | OB_STAT_INTC | OB_STAT_INTD);
+
+ /* let the ISR do the rest of the work... */
+ printf ("Waiting for the PCI Interrupts to be received...\n\n");
+ printf ("Hit <CR> when the test is complete\n\n\n");
+
+ hexIn();
+
+ return;
+}
+
+
+/*******************************************/
+/* Battery Backup SDRAM memory write test */
+/*******************************************/
+static void battery_test_write (MENU_ARG arg)
+{
+ unsigned long start_addr = SDRAM_BATTERY_TEST_BASE; /* Address to write to */
+
+ /* Data to be written to address and read after the board has been powered off and powered back on */
+ UINT32 junk = BATTERY_TEST_PATTERN;
+
+ *(volatile UINT32 *)start_addr = junk;
+
+ printf("\nThe value '");
+ hex32out(BATTERY_TEST_PATTERN);
+ printf ("' is now written in DRAM at address $");
+ hex32out(SDRAM_BATTERY_TEST_BASE);
+ printf(".\n\nYou can now power the board off, wait 60 seconds and power it back on.");
+ printf("\nThen come back in the battery test menu and select option 2 to check data from DRAM.\n");
+
+ printf ("\nPress return to continue.\n");
+ (void) hexIn();
+}
+
+
+/******************************************/
+/* Battery Backup SDRAM memory read test */
+/******************************************/
+static void battery_test_read (MENU_ARG arg)
+{
+ unsigned long start_addr = SDRAM_BATTERY_TEST_BASE; /* Address to read from */
+ UINT32 value_written = BATTERY_TEST_PATTERN; /* Data that was written */
+ UINT32 value_read;
+
+ value_read = *(volatile UINT32 *)start_addr;
+
+ printf ("Value written at address $");
+ hex32out(SDRAM_BATTERY_TEST_BASE);
+ printf (": ");
+ hex32out(BATTERY_TEST_PATTERN);
+ printf ("\nValue read at address $");
+ hex32out(SDRAM_BATTERY_TEST_BASE);
+ printf(" : ");
+ hex32out(value_read);
+
+ if (value_read == value_written)
+ printf ("\n\nThe battery test is a success !\n");
+ else {
+ printf ("\n\n****************************\n");
+ printf ("* The battery test failed. *\n");
+ printf ("****************************\n");
+ }
+
+ printf ("\nBattery test done.\n");
+ printf ("Press return to continue.\n");
+ (void) hexIn();
+}
+
+
+/*************************************/
+/* Battery Backup SDRAM memory menu */
+/*************************************/
+static void battery_test_menu (MENU_ARG arg)
+{
+ /* Test Menu Table */
+ static MENU_ITEM batteryMenu[] = {
+ {"Write data to SDRAM", battery_test_write, NULL},
+ {"Check data from SDRAM", battery_test_read, NULL},
+ };
+
+ unsigned int num_menu_items = (sizeof (batteryMenu) / sizeof (batteryMenu[0]));
+
+ /* char menu_title[15] = "\n Battery Backup SDRAM memory test."; */
+ char menu_title[36] = "\n Battery Backup SDRAM memory test.";
+
+ printf ("\n*************************************************************************\n");
+ printf ("* This test will enable you to perform a battery test in 4 steps: *\n");
+ printf ("* 1/ Select option 1 to write the value '");
+ hex32out(BATTERY_TEST_PATTERN);
+ printf ("' to DRAM at address *\n* $");
+ hex32out(SDRAM_BATTERY_TEST_BASE);
+ printf (", *\n");
+ printf ("* 2/ Power the board off and wait 60 seconds, *\n");
+ printf ("* 3/ Power the board back on, *\n");
+ printf ("* 4/ Select option 2 to read at address $");
+ hex32out(SDRAM_BATTERY_TEST_BASE);
+ printf (" and compare the *\n* value to the value written '");
+ hex32out(BATTERY_TEST_PATTERN);
+ printf ("'. *\n");
+ printf ("*************************************************************************");
+
+ menu (batteryMenu, num_menu_items, menu_title, MENU_OPT_NONE);
+ printf ("\n");
+}
+
+/* 01/11/01 jwf */
+/* Make the user select their host test platform type from a list of choices. */
+/* If the user picks a Cyclone SB923 then modify the Outbound PCI Translate Register on the IQ80310 for the SB923 */
+void select_host_test_system (void)
+{
+ char selection;
+
+ printf("Select your Host test system\n\n");
+ printf("Make a selection by typing a number.\n\n");
+ printf("1 - Cyclone SB923\n");
+ printf("2 - Personal Computer or other\n");
+
+ do {
+ selection = xgetchar();
+ } while( (selection != '1') && (selection != '2') );
+
+ if (selection == '1') {
+ /* Modify the Outbound PCI Translate Register for a SB923, at address 0x1254 */
+ *(volatile UINT32 *) POMWVR_ADDR = 0xa0000000;
+ }
+}
+
+
+/* 02/09/01 jwf */
+/* Read the 80200 Coyanosa ID register */
+/* Use a base address equal to the fourth memory location from the last memory location */
+/* in a 32MB SDRAM DIMM */
+/* Store from coprocessor register 15 to memory. */
+/* ARM register R0 is the address after the transfer */
+void read_coyanosa_id_reg (void)
+{
+ __asm__ ("ldr r0, = 0xA1FFFFFC");
+ __asm__ ("mrc p15, 0, r1, c0, c0, 0");
+ __asm__ ("str r1, [r0], #0");
+}
+
+
+/* 02/09/01 jwf */
+/*
+*Display the following version information.
+*1. Software version of Red Boot or Cygnus Cygmon Rom Monitor.
+*2. Cpld version. Located in the 0xFE840000 (Read)
+*3. Board Revision. Located at 0xFE830000 (Read)
+*4. 80200 ID data Located in CP15 Register 0
+*5. 80312 Stepping Located at 0x00001008
+*/
+void version_info (MENU_ARG arg)
+{
+ char board_rev;
+
+/* show revision information for operating system */
+#if CYGNUS_CYGMON_OS
+ extern void version(void); /* is defined in monitor.c */
+ version();
+#endif
+
+#if REDHAT_REDBOOT_OS
+ extern void do_version(int argc, char *argv[]);/* is defined in main.c */
+ do_version(0,0);
+#endif
+
+ board_rev = board_revision();
+ if ( board_rev >= BOARD_REV_E ) {
+ /* read Board revision register and adjust numeric revision to letter revision, 0x1 <--> A */
+ printf("\nBoard Revision = %c\n",(*BOARD_REV_REG_ADDR & BOARD_REV_MASK) + 'A' - 1 );
+ } else {
+ /* Board letter revision might be A or B or C or D */
+ printf("\nBoard Revision Unknown!\n");
+ }
+
+ /* read CPLD revision register and adjust numeric revision to letter revision, 0x1 <--> A */
+ printf("CPLD Revision = %c\n",(*CPLD_REV_REG_ADDR & BOARD_REV_MASK) + 'A' - 1 );
+
+ /* Read the 80200 Coyanosa ID register */
+ read_coyanosa_id_reg();
+
+ printf( "80200 Revision ID = 0x%x\n", ( *(volatile unsigned long *) COYANOSA_ID_BASE_ADDR) );
+
+ /* read the 80312 Yavapai Revision ID register */
+ printf( "80312 Revision ID = %d\n", (*(volatile unsigned char *) RIDR_ADDR) );
+
+ printf ("\n\nStrike <CR> to exit this test.\n\n");
+
+ hexIn();
+}
+
+
+/* 02/09/01 jwf */
+/* Determine if the CPLD supports a Board Revision Register. */
+/* If a Board Revision Register exists then return the board revision number read from a dedicated CPLD register at memory address 0xfe830000 */
+/* Otherwise return a default board revision number. */
+char board_revision ()
+{
+ /* represents the ring indicator bit logic level in UART2 */
+ unsigned char ri_state;
+
+ /* holds a board revision number */
+ char board_rev;
+
+ /* access UART2 MSR at memory address 0xfe810006 through the CYGMON serial port, J9 */
+ ri_state = *( unsigned char * ) 0xfe810006;
+ ri_state &= RI_MASK;
+
+ /* RI# pin on UART2 is grounded */
+ /* CPLD design supports a Board Revision Register implemention */
+ if(ri_state == RI_MASK) {
+ /* read Board Revision register and isolate LSN */
+ board_rev = (*BOARD_REV_REG_ADDR & BOARD_REV_MASK);
+
+ /* Board Rev is at E or higher */
+ if (board_rev >= BOARD_REV_E)
+ return (board_rev);
+ }
+
+ /* RI# pin on UART2 is pulled up to 3.3V. */
+ /* Unknown Board Revision! */
+ /* Unable to determine a board revision because the CPLD Board Revision Register */
+ /* was never implemented for IQ80310 PCI-700 board REVs A,B,C, or D. */
+ /* set a default board revision value of 0x2 <--> Rev B. */
+ board_rev = 0x2;
+
+ /* return a default value */
+ return (board_rev);
+}
+
+
+
diff --git a/ecos/packages/hal/arm/xscale/iq80310/current/src/iq80310_misc.c b/ecos/packages/hal/arm/xscale/iq80310/current/src/iq80310_misc.c
new file mode 100644
index 0000000..dc50f85
--- /dev/null
+++ b/ecos/packages/hal/arm/xscale/iq80310/current/src/iq80310_misc.c
@@ -0,0 +1,80 @@
+//==========================================================================
+//
+// cyclone_misc.c
+//
+// HAL misc board support code for CYCLONE evaluation board
+//
+//==========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//==========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): gthomas
+// Contributors: gthomas
+// Date: 2002-10-01
+// 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 CYGHWR_MEMORY_LAYOUT_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_stub.h> // Stub macros
+#include <cyg/hal/hal_if.h> // calling interface API
+#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_iop310.h> // Hardware definitions
+#include <cyg/infra/diag.h> // diag_printf
+#include <cyg/hal/drv_api.h> // CYG_ISR_HANDLED
+
+// Some initialization has already been done before we get here.
+
+void hal_plf_hardware_init(void)
+{
+ // Put any platform specific initialization here
+}
+
+/*------------------------------------------------------------------------*/
+// EOF cyclone_misc.c
diff --git a/ecos/packages/hal/arm/xscale/iq80321/current/ChangeLog b/ecos/packages/hal/arm/xscale/iq80321/current/ChangeLog
new file mode 100644
index 0000000..943be87
--- /dev/null
+++ b/ecos/packages/hal/arm/xscale/iq80321/current/ChangeLog
@@ -0,0 +1,334 @@
+2009-10-16 John Dallaway <john@dallaway.org.uk>
+
+ * cdl/hal_arm_xscale_iq80321.cdl: Parent under
+ CYGPKG_HAL_ARM_XSCALE_VERDE.
+
+2009-01-31 Bart Veer <bartv@ecoscentric.com>
+
+ * cdl/hal_arm_xscale_iq80321.cdl: update compiler flags for gcc 4.x
+
+2009-01-24 Bart Veer <bartv@ecoscentric.com>
+
+ * cdl/hal_arm_xscale_iq80321.cdl: switch from arm-elf-gcc to
+ arm-eabi-gcc.
+
+2003-12-05 Andrew Lunn <andrew.lunn@ascom.ch>
+
+ * include/hal_diag.h: hal_delay_us() is a C function.
+
+2003-09-21 Gary Thomas <gary@mlbassoc.com>
+
+ * misc/redboot_RAM.ecm:
+ * misc/redboot_ROM.ecm: Adjust for changes in RedBoot
+ template - DNS now must be enabled manually.
+
+2003-07-03 Gary Thomas <gary@mlbassoc.com>
+
+ * include/hal_platform_setup.h: Remove erroneous 'O' that somehow
+ crept into this file.
+
+2003-06-21 Mark Salter <msalter@redhat.com>
+
+ * include/hal_platform_setup.h: Use base+offset addressing to access
+ I2C port.
+
+2003-02-22 Mark Salter <msalter@redhat.com>
+
+ * src/iq80321_pci.c (cyg_hal_plf_pci_init): Make BAR0 non-prefetchable.
+
+2003-02-12 Mark Salter <msalter@redhat.com>
+
+ * include/iq80321.h: Fix battery defines.
+ * src/diag/battery.c: Fix battery tests to match updated docs.
+
+2003-01-30 Mark Salter <msalter@redhat.com>
+
+ * include/pkgconf/mlt_*: Adjust RAM size to match max supported.
+ Actual size of installed RAM determined at runtime.
+
+2003-01-22 Mark Salter <msalter@redhat.com>
+
+ * src/diag/diag.c: Don't define DEFINE_VARS.
+
+2002-09-23 Mark Salter <msalter@redhat.com>
+
+ * include/plf_mmap.h: Remove. Not used.
+
+2002-09-19 Mark Salter <msalter@redhat.com>
+
+ * misc/redboot_RAM.ecm: Add CYGPKG_HAL_ARM_XSCALE_CORE.
+ * misc/redboot_RAM_ALTMAP.ecm: Ditto.
+ * misc/redboot_ROM.ecm: Ditto.
+ * misc/redboot_ROM_ALTMAP.ecm: Ditto.
+
+2002-08-12 Mark Salter <msalter@redhat.com>
+
+ * misc/redboot_ROM.ecm: Remove CYGSEM_REDBOOT_ARM_LINUX_BOOT.
+ * misc/redboot_RAM.ecm: Ditto.
+
+ * include/hal_platform_setup.h: Do some ATU initialization
+ before scrubbing, so PC BIOS can continue booting during
+ time consuming scrub.
+
+ * src/iq80321_pci.c (cyg_hal_plf_pci_init): Always set ATUCMD
+ register. Moved some ATU initialization to hal_platform_setup.h.
+ (cyg_hal_plf_wait_for_bios): Moved some ATU initialization to
+ hal_platform_setup.h.
+
+2002-07-15 Mark Salter <msalter@redhat.com>
+
+ * include/pkgconf/mlt_arm_xscale_iq80321_rom.mlt: Add mmu_tables section.
+ * include/pkgconf/mlt_arm_xscale_iq80321_rom.ldi: Regenerated.
+ * include/pkgconf/mlt_arm_xscale_iq80321_rom.h: Ditto.
+
+2002-05-28 Mark Salter <msalter@redhat.com>
+
+ * cdl/hal_arm_xscale_iq80321.cdl: Add HAL_PLATFORM_MACHINE_TYPE.
+
+ * misc/redboot_RAM.ecm: Changed Linux address.
+ * misc/redboot_ROM.ecm: Ditto.
+
+2002-05-24 Jonathan Larmour <jlarmour@redhat.com>
+
+ * src/hal_diag.c: Support dynamic getting and setting of baud rates.
+ * cdl/hal_arm_xscale_iq80321.cdl: implements
+ CYGINT_HAL_VIRTUAL_VECTOR_COMM_BAUD_SUPPORT
+
+2002-05-07 Gary Thomas <gthomas@redhat.com>
+
+ * cdl/hal_arm_xscale_iq80321.cdl:
+ Standardize CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_DEFAULT usage.
+
+2002-04-22 Jonathan Larmour <jlarmour@redhat.com>
+
+ * misc/redboot_RAM.ecm: Enable GDB remote file I/O support.
+ * misc/redboot_RAM_ALTMAP.ecm: Ditto.
+ * misc/redboot_ROM.ecm: Ditto.
+ * misc/redboot_ROM_ALTMAP.ecm: Ditto.
+
+2002-04-16 John Dallaway <jld@redhat.com>
+
+ * cdl/hal_arm_xscale_iq80321.cdl: Use arm-elf toolchain by default.
+
+2002-03-25 Mark Salter <msalter@redhat.com>
+
+ * include/hal_platform_extras.h: Use X=1,C=1,B=1 for RAM.
+ * include/hal_platform_setup.h: Fix handling of x16 DIMM modules and
+ registered vs. non-registered handling.
+
+2002-03-06 Jesper Skov <jskov@redhat.com>
+
+ * misc/redboot_RAM.ecm: Added zlib and DNS packages.
+ * misc/redboot_ROM.ecm: Same.
+
+2002-02-27 Mark Salter <msalter@redhat.com>
+
+ * cdl/hal_arm_xscale_iq80321.cdl: Enable battery test by default.
+
+ * include/hal_platform_setup.h: Get battery test data before enabling
+ ECC.
+
+2002-02-24 Mark Salter <msalter@redhat.com>
+
+ * src/diag/xscale_test.c: Don't include battery test unless
+ CYGSEM_HAL_ARM_IQ80321_BATTERY_TEST is defined.
+ * src/diag/battery.c: Ditto
+
+ * include/iq80321.h (SDRAM_BATTERY_TEST_ADDR): Use uncached addresses.
+
+ * cdl/hal_arm_xscale_iq80321.cdl: CYGSEM_HAL_ARM_IQ80321_BATTERY_TEST
+ added.
+
+ * include/hal_platform_setup.h: Don't save/restore battery test value
+ unless CYGSEM_HAL_ARM_IQ80321_BATTERY_TEST is defined.
+ Use latest criteria and numbers for DRAM drive strengths.
+
+2002-02-22 Mark Salter <msalter@redhat.com>
+
+ * src/iq80321_pci.c (cyg_hal_plf_pci_init): Improve handling of PC BIOS.
+
+ * include/plf_io.h: Fix Fab D IDSELs.
+
+ * include/hal_platform_setup.h: Support battery backup test.
+ Plug in new drive strength numbers from Intel.
+
+ * cdl/hal_arm_xscale_iq80321.cdl: Add battery.c and timer.c to diags.
+
+ * src/diag/io_utils.c (diag_ishex): Renamed from ishex and made global.
+ (diag_hex2dec): Renamed from hex2dec and made global.
+
+ * src/diag/i82544.c (get_mac_address): New function.
+ (enet_setup): Use get_mac_address for user entry.
+
+ * src/diag/pcitest.c (pci_test): Mask BAR config bits from address.
+ Remove debugging printfs.
+
+ * src/diag/xscale_test.c: Add new tests to menu.
+
+ * include/iq80321.h (SDRAM_BASE): Remove duplicate define. Add battery
+ status defines.
+
+2002-02-20 Mark Salter <msalter@redhat.com>
+
+ * src/diag/i82544.c (enet_setup): Use macros for device IDs.
+ * src/diag/pcitest.c (pci_test): Ditto.
+
+ * include/plf_io.h: Define PCI slot and NIC device IDs based on
+ CYGSEM_HAL_ARM_IQ80321_FAB_C flag.
+ Add macros to convert between virtual and physical addresses
+ needed for hw watchpoints and breakpoints.
+ (HAL_PCI_TRANSLATE_INTERRUPT): Fix test for onboard NIC.
+
+ * include/hal_plf_ints.h: Define ethernet and UART interrupt numbers
+ based on CYGSEM_HAL_ARM_IQ80321_FAB_C flag.
+
+ * cdl/hal_arm_xscale_iq80321.cdl (CYGSEM_HAL_ARM_IQ80321_FAB_C): New
+ option to distinguish between fab C and later boards.
+
+2002-01-31 Mark Salter <msalter@redhat.com>
+
+ * cdl/hal_arm_xscale_iq80321.cdl: Set default for
+ CYGSEM_HAL_ARM_IQ80321_CLEAR_PCI_RETRY back to 1.
+
+ * src/iq80321_pci.c (cyg_hal_plf_pci_init): Fixed to work with PC BIOS.
+ Moved PCI CFG support to verde_pci.c
+ * include/plf_io.h: Removed HAL_PCI_CFG_* support to var_io.h
+
+2002-01-30 Mark Salter <msalter@redhat.com>
+
+ * include/iq80321.h: Remove unneeded CCLKCFG values.
+ * include/hal_platform_setup.h: Remove write to non-existant CCLKCFG.
+
+2002-01-30 Nick Garnett <nickg@redhat.com>
+
+ * cdl/hal_arm_xscale_iq80321.cdl: Set default for
+ CYGSEM_HAL_ARM_IQ80321_CLEAR_PCI_RETRY to 0 rather that 1. This
+ allows PC-hosted boards to prevent the PC booting and conflicting
+ over access to the i82544. It also allows us to build tests for
+ the testfarm without having to do extra configury.
+ If/when we get a resolution to the conflict problem, we can change
+ this.
+
+2002-01-30 Mark Salter <msalter@redhat.com>
+
+ * src/diag/i82544.c: New file.
+ * src/diag/pcitests.c: New file.
+ * cdl/hal_arm_xscale_iq80321.cdl: Add new diag files to compile list.
+ * src/diag/xscale_test.c: General cleanup.
+ * src/diag/test_menu.h (MENU_RTN): Fix typedef to reflect reality.
+ * src/diag/memtest.c: Largely rewritten for portability.
+ * src/diag/io_utils.c: Rewrote to use RedBoot io support.
+ * src/diag/diag.c: Remove unused cruft.
+
+ * src/iq80321_pci.c (cyg_hal_plf_pci_init): Don't try to set bus
+ and device number for Verde.
+ (pci_config_setup): Fix handling of bus number.
+
+ * misc/redboot_RAM.ecm: Remove override of default
+ CYGSEM_DEVS_ETH_ARM_IQ80321_I82544_ETH0_SET_ESA.
+ * misc/redboot_RAM_ALTMAP.ecm: Ditto.
+ * misc/redboot_ROM.ecm: Ditto.
+ * misc/redboot_ROM_ALTMAP.ecm: Ditto.
+
+2002-01-28 Jesper Skov <jskov@redhat.com>
+
+ * cdl/hal_arm_xscale_iq80321.cdl: Removed explicit declaration of
+ plf_io.h
+
+2002-01-25 Mark Salter <msalter@redhat.com>
+
+ * include/hal_platform_setup.h: Fix I2C cleanup on last byte read.
+
+2002-01-24 Mark Salter <msalter@redhat.com>
+
+ * cdl/hal_arm_xscale_iq80321.cdl: Add
+ CYGSEM_HAL_ARM_IQ80321_CLEAR_PCI_RETRY
+
+ * src/iq80321_pci.c (cyg_hal_plf_pci_init): Only init GBE_PIO_PIN.
+ Clear retry bit if CYGSEM_HAL_ARM_IQ80321_CLEAR_PCI_RETRY defined.
+
+ * include/iq80321.h (IQ80321_GBE_GPIO_PIN): Define.
+
+ * include/plf_io.h (HAL_PCI_TRANSLATE_INTERRUPT): Test for both
+ private and public ethernet device numbers.
+
+2002-01-23 Mark Salter <msalter@redhat.com>
+
+ * src/iq80321_pci.c (cyg_hal_plf_pci_init): Remove unneeded cruft.
+
+ * include/pkgconf/mlt_arm_xscale_iq80321_ram_altmap.ldi: New file.
+ * include/pkgconf/mlt_arm_xscale_iq80321_ram_altmap.h: Newfile.
+ * include/pkgconf/mlt_arm_xscale_iq80321_rom_altmap.ldi: New file.
+ * include/pkgconf/mlt_arm_xscale_iq80321_rom_altmap.h: Newfile.
+ * misc/redboot_ROM_ALTMAP.ecm: New file.
+ * misc/redboot_RAM_ALTMAP.ecm: New file.
+
+ * cdl/hal_arm_xscale_iq80321.cdl: Support alternate memory map.
+ * include/hal_platform_extras.h: Ditto.
+ * include/iq80321.h: Define alternate SDRAM virtual base.
+ * include/plf_io.h: Support alternative PCI window virtual addresses.
+
+ * include/hal_plf_ints.h: Remove HAL_PLATFORM_RESET.
+
+2002-01-22 Mark Salter <msalter@redhat.com>
+
+ * misc/redboot_ROM.ecm: Add ethernet and min flash image size.
+ * misc/redboot_RAM.ecm: Add ethernet and min flash image size.
+
+2002-01-21 Mark Salter <msalter@redhat.com>
+
+ * include/hal_plf_ints.h: Rename CYGNUM_HAL_INTERRUPT_82544 to
+ CYGNUM_HAL_INTERRUPT_ETHERNET.
+
+ * cdl/hal_arm_xscale_iq80321.cdl: Add iq80321_pci.c to compile list.
+ Use plf_io.h as CYGBLD_HAL_PLATFORM_IO_H.
+
+ * include/plf_io.h: New file. IQ80321 IO macros.
+
+ * src/iq80321_pci.c: New file. IQ80321 PCI-X support.
+
+ * include/iq80321.h (REG_DISPLAY): New ASM macro to display register
+ contents on LEDs.
+ (SDRAM_DEVID): New define. I2C address for SDRAM module.
+
+ * include/pkgconf/mlt_arm_xscale_iq80321_rom.ldi: Add mmu_tables.
+
+ * include/hal_platform_extras.h: Put MMU table in .mmu_tables section.
+
+ * include/hal_platform_setup.h: Add runtime SDRAM sizing/config.
+
+2002-01-09 Mark Salter <msalter@redhat.com>
+
+ * include/pkgconf/mlt*: Rearrange flash address and delete PCI window.
+
+ * include/hal_platform_setup.h: Use uncached access to scrub RAM.
+ Cached access should work, so this may indicate a potential bug.
+
+ * include/iq80321.h: Move cache flush and flash base.
+
+ * include/hal_platform_extras.h: Page table rearrangement.
+
+
+//===========================================================================
+// ####GPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002, 2009 Free Software Foundation, Inc.
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 2 or (at your option) any
+// later version.
+//
+// This program is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the
+// Free Software Foundation, Inc., 51 Franklin Street,
+// Fifth Floor, Boston, MA 02110-1301, USA.
+// -------------------------------------------
+// ####GPLCOPYRIGHTEND####
+//===========================================================================
diff --git a/ecos/packages/hal/arm/xscale/iq80321/current/cdl/hal_arm_xscale_iq80321.cdl b/ecos/packages/hal/arm/xscale/iq80321/current/cdl/hal_arm_xscale_iq80321.cdl
new file mode 100644
index 0000000..c636f8b
--- /dev/null
+++ b/ecos/packages/hal/arm/xscale/iq80321/current/cdl/hal_arm_xscale_iq80321.cdl
@@ -0,0 +1,410 @@
+# ====================================================================
+#
+# hal_arm_xscale_iq80321.cdl
+#
+# Intel XScale IQ80321 platform HAL package configuration data
+#
+# ====================================================================
+## ####ECOSGPLCOPYRIGHTBEGIN####
+## -------------------------------------------
+## This file is part of eCos, the Embedded Configurable Operating System.
+## Copyright (C) 1998, 1999, 2000, 2001, 2002, 2009 Free Software Foundation, Inc.
+##
+## eCos is free software; you can redistribute it and/or modify it under
+## the terms of the GNU General Public License as published by the Free
+## Software Foundation; either version 2 or (at your option) any later
+## version.
+##
+## eCos is distributed in the hope that it will be useful, but WITHOUT
+## ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+## FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+## for more details.
+##
+## You should have received a copy of the GNU General Public License
+## along with eCos; if not, write to the Free Software Foundation, Inc.,
+## 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+##
+## As a special exception, if other files instantiate templates or use
+## macros or inline functions from this file, or you compile this file
+## and link it with other works to produce a work based on this file,
+## this file does not by itself cause the resulting work to be covered by
+## the GNU General Public License. However the source code for this file
+## must still be made available in accordance with section (3) of the GNU
+## General Public License v2.
+##
+## This exception does not invalidate any other reasons why a work based
+## on this file might be covered by the GNU General Public License.
+## -------------------------------------------
+## ####ECOSGPLCOPYRIGHTEND####
+# ====================================================================
+######DESCRIPTIONBEGIN####
+#
+# Author(s): msalter
+# Contributors: hmt
+# Date: 2001-12-03
+#
+#####DESCRIPTIONEND####
+#
+# ====================================================================
+cdl_package CYGPKG_HAL_ARM_XSCALE_IQ80321 {
+ display "Intel XScale IQ80321 evaluation board"
+ parent CYGPKG_HAL_ARM_XSCALE_VERDE
+ hardware
+ include_dir cyg/hal
+ define_header hal_arm_xscale_iq80321.h
+ description "
+ This HAL platform package provides
+ support for the Intel XScale IQ80321 board."
+
+ compile iq80321_misc.c hal_diag.c iq80321_pci.c
+
+ implements CYGINT_HAL_DEBUG_GDB_STUBS
+ implements CYGINT_HAL_DEBUG_GDB_STUBS_BREAK
+ implements CYGINT_HAL_VIRTUAL_VECTOR_SUPPORT
+ implements CYGINT_HAL_ARM_MEM_REAL_REGION_TOP
+ implements CYGINT_HAL_VIRTUAL_VECTOR_COMM_BAUD_SUPPORT
+
+ 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_xscale_verde.h>"
+ puts $::cdl_system_header "#define CYGBLD_HAL_PLATFORM_H <pkgconf/hal_arm_xscale_iq80321.h>"
+ puts $::cdl_header "#define CYGBLD_HAL_PLF_INTS_H <cyg/hal/hal_plf_ints.h>"
+ puts $::cdl_header "#define HAL_PLATFORM_CPU \"XScale\""
+ puts $::cdl_header "#define HAL_PLATFORM_BOARD \"IQ80321\""
+ puts $::cdl_header "#define HAL_PLATFORM_EXTRA \"\""
+ puts $::cdl_header "#define HAL_PLATFORM_MACHINE_TYPE 169"
+ }
+
+ 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 targeting the IQ80321 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 onboard
+ debug software such as Angel or eCos GDB stubs. Select 'rom'
+ when building a stand-alone application which will be put
+ into ROM. Selection of 'stubs' is for the special case of
+ building the eCos GDB stubs themselves."
+ }
+
+ cdl_component CYG_HAL_MEMORY_MAP {
+ display "MMU Mapping"
+ flavor data
+ default_value {"NORMAL"}
+ legal_values {"NORMAL" "ALTERNATE"}
+ no_define
+ define -file system.h CYG_HAL_MEMORY_MAP
+ description "
+ When targeting the IQ80321 eval board it is possible to build
+ the system for two MMU mappings. Select 'NORMAL' when building
+ programs to map all of RAM to virtual address 0x00000000. Select
+ ALTERNATE when building programs to map RAM at 0xA0000000. In
+ the ALTERNATE case, the first 1MB of RAM is also mapped at virtual
+ address 0x00000000 for CPU exception vectors."
+ }
+
+ cdl_option CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_BAUD {
+ display "Diagnostic serial port baud rate"
+ flavor data
+ legal_values 9600 19200 38400 57600 115200
+ default_value 115200 ;
+ 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 57600 115200
+ default_value 115200 ;
+ 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 1
+ description "
+ Channel 0 is the only serial port on the board."
+ }
+
+ cdl_option CYGNUM_HAL_VIRTUAL_VECTOR_DEBUG_CHANNEL {
+ display "Debug serial port"
+ active_if CYGPRI_HAL_VIRTUAL_VECTOR_DEBUG_CHANNEL_CONFIGURABLE
+ flavor data
+ legal_values 0 to CYGNUM_HAL_VIRTUAL_VECTOR_COMM_CHANNELS-1
+ default_value 0
+ description "
+ The IQ80321 has only one serial port."
+ }
+
+ 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 0
+ }
+
+ cdl_option CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL {
+ display "Diagnostic serial port"
+ active_if CYGPRI_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_CONFIGURABLE
+ flavor data
+ legal_values 0 to CYGNUM_HAL_VIRTUAL_VECTOR_COMM_CHANNELS-1
+ default_value CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_DEFAULT
+ description "
+ The IQ80321 has only one serial port."
+ }
+
+ 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-eabi"}
+ 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 { CYGBLD_GLOBAL_WARNFLAGS . CYGBLD_ARCH_CFLAGS .
+ "-mcpu=xscale -g -O2 -ffunction-sections -fdata-sections -fno-rtti -fno-exceptions -mapcs-frame" }
+ 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 { CYGBLD_ARCH_LDFLAGS . "-mcpu=xscale -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) --remove-section=.fixed_vectors -O binary $< $@
+ }
+ }
+ }
+
+ cdl_component CYGPKG_HAL_ARM_XSCALE_IQ80321_OPTIONS {
+ display "Intel XScale IQ80321 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_XSCALE_IQ80321_CFLAGS_ADD {
+ display "Additional compiler flags"
+ flavor data
+ no_define
+ default_value { "" }
+ description "
+ This option modifies the set of compiler flags for
+ building the XScale IQ80321 HAL. These flags are used in addition
+ to the set of global flags."
+ }
+
+ cdl_option CYGPKG_HAL_ARM_XSCALE_IQ80321_CFLAGS_REMOVE {
+ display "Suppressed compiler flags"
+ flavor data
+ no_define
+ default_value { "" }
+ description "
+ This option modifies the set of compiler flags for
+ building the XScale IQ80321 HAL. These flags are removed from
+ the set of global flags if present."
+ }
+
+ cdl_option CYGNUM_HAL_BREAKPOINT_LIST_SIZE {
+ display "Number of breakpoints supported by the HAL."
+ flavor data
+ default_value 32
+ description "
+ This option determines the number of breakpoints supported by the HAL."
+ }
+
+ cdl_option CYGSEM_HAL_ARM_IQ80321_FAB_C {
+ display "Use Fab C IDSEL and IRQ steering"
+ flavor bool
+ default_value 0
+ description "
+ This option controls whether or not the HAL uses PCI IDSEL and IRQ
+ routing appropriate for Fab C boards. Fab D and later boards have
+ different IDSELs and interrupt routing. Default is to not build
+ for Fab C."
+ }
+
+ cdl_option CYGSEM_HAL_ARM_IQ80321_CLEAR_PCI_RETRY {
+ display "Clear PCI Retry bit"
+ flavor bool
+ default_value 1
+ description "
+ This option controls whether or not the HAL allows the host PC
+ to completely boot. In some cases, it may not be desired to allow
+ this if RedBoot is used to automatically launch an application
+ which needs to run some setup code before allowing the PC to
+ finish booting. In that case, the application code, not RedBoot
+ will clear the PCI retry bit."
+ }
+ }
+
+ cdl_component CYGHWR_MEMORY_LAYOUT {
+ display "Memory layout"
+ flavor data
+ no_define
+ calculated { CYG_HAL_STARTUP == "RAM" ? "arm_xscale_iq80321_ram" : \
+ "arm_xscale_iq80321_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" ? \
+ CYG_HAL_MEMORY_MAP == "NORMAL" ? "<pkgconf/mlt_arm_xscale_iq80321_ram.ldi>" : \
+ "<pkgconf/mlt_arm_xscale_iq80321_ram_altmap.ldi>" : \
+ CYG_HAL_MEMORY_MAP == "NORMAL" ? "<pkgconf/mlt_arm_xscale_iq80321_rom.ldi>" : \
+ "<pkgconf/mlt_arm_xscale_iq80321_rom_altmap.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" ? \
+ CYG_HAL_MEMORY_MAP == "NORMAL" ? "<pkgconf/mlt_arm_xscale_iq80321_ram.h>" : \
+ "<pkgconf/mlt_arm_xscale_iq80321_ram_altmap.h>" : \
+ CYG_HAL_MEMORY_MAP == "NORMAL" ? "<pkgconf/mlt_arm_xscale_iq80321_rom.h>" : \
+ "<pkgconf/mlt_arm_xscale_iq80321_rom_altmap.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 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_REDBOOT_HAL_OPTIONS {
+ display "Redboot HAL options"
+ flavor none
+ no_define
+ parent CYGPKG_REDBOOT
+ active_if CYGPKG_REDBOOT
+ description "
+ This option lists the target's requirements for a valid Redboot
+ configuration."
+
+ # compile -library=libextras.a redboot_cmds.c
+
+ 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."
+
+ compile -library=libextras.a diag/diag.c diag/io_utils.c \
+ diag/xscale_test.c \
+ diag/memtest.c diag/test_menu.c diag/i82544.c \
+ diag/pcitest.c diag/battery.c diag/timer.c
+
+ make -priority 325 {
+ <PREFIX>/bin/redboot.bin : <PREFIX>/bin/redboot.elf
+ $(OBJCOPY) --strip-debug $< $(@:.bin=.img)
+ $(OBJCOPY) -O srec $< $(@:.bin=.srec)
+ $(OBJCOPY) -O binary $< $@
+ }
+ }
+
+ cdl_option CYGSEM_HAL_ARM_IQ80321_BATTERY_TEST {
+ display "Include Battery Test in Diagnostics Menu"
+ flavor bool
+ default_value 1
+ description "
+ This option controls whether or not the battery test is included
+ in the IQ80321 diagnostics."
+ }
+ }
+
+}
diff --git a/ecos/packages/hal/arm/xscale/iq80321/current/include/hal_diag.h b/ecos/packages/hal/arm/xscale/iq80321/current/include/hal_diag.h
new file mode 100644
index 0000000..d9ec42a
--- /dev/null
+++ b/ecos/packages/hal/arm/xscale/iq80321/current/include/hal_diag.h
@@ -0,0 +1,93 @@
+#ifndef CYGONCE_HAL_DIAG_H
+#define CYGONCE_HAL_DIAG_H
+
+/*=============================================================================
+//
+// hal_diag.h
+//
+// HAL Support for Kernel Diagnostic Routines
+//
+//=============================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): nickg, gthomas
+// Contributors: nickg, gthomas
+// Date: 1998-09-11
+// 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>
+#include <cyg/hal/hal_if.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_)
+
+// Not the best place for this, but ...
+externC void hal_delay_us(cyg_int32 usecs);
+
+#define HAL_DELAY_US(n) hal_delay_us(n);
+
+#else
+
+/*---------------------------------------------------------------------------*/
+/* 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
+
+/*---------------------------------------------------------------------------*/
+/* end of hal_diag.h */
+#endif /* CYGONCE_HAL_DIAG_H */
diff --git a/ecos/packages/hal/arm/xscale/iq80321/current/include/hal_platform_extras.h b/ecos/packages/hal/arm/xscale/iq80321/current/include/hal_platform_extras.h
new file mode 100644
index 0000000..8652437
--- /dev/null
+++ b/ecos/packages/hal/arm/xscale/iq80321/current/include/hal_platform_extras.h
@@ -0,0 +1,278 @@
+#ifndef CYGONCE_HAL_PLATFORM_EXTRAS_H
+#define CYGONCE_HAL_PLATFORM_EXTRAS_H
+
+/*=============================================================================
+//
+// hal_platform_extras.h
+//
+// Platform specific MMU table.
+//
+//=============================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): msalter
+// Contributors: msalter
+// Date: 2001-12-03
+// Purpose: Intel XScale IQ80321 platform specific mmu table
+// Description:
+// Usage: #include <cyg/hal/hal_platform_extras.h>
+// Only used by "vectors.S"
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================*/
+
+#if defined(CYG_HAL_STARTUP_ROM)
+ .section .mmu_tables, "a"
+
+#ifdef CYG_HAL_MEMORY_MAP_NORMAL
+ mmu_table:
+ // This page table sets up the preferred mapping:
+ //
+ // Virtual Address Physical Address Size (MB) Description
+ // --------------- ---------------- --------- -----------
+ // 0x00000000 0xA0000000 512 DRAM
+ // 0x20000000 0x00000000 2048 ATU Outbound Direct
+ // 0xA0000000 0x80000000 257 ATU Outbound Xlate
+ // 0xB0100000 0x90100000 255 Unused
+ // 0xC0000000 0xA0000000 512 Uncached DRAM alias
+ // 0xE0000000 0xE0000000 1 Cache Flush
+ // 0xE0100000 0xE0100000 255 Unused
+ // 0xF0000000 0xF0000000 8 FLASH (PBIU CS0)
+ // 0xF0800000 0xF0800000 224 Unused
+ // 0xFE800000 0xFE800000 1 PBIU CS1-CS5
+ // 0xFE900000 0xFE900000 22 Unused
+ // 0xFFF00000 0xFFF00000 1 Verde PMMR
+
+ // 512MB ECC DRAM
+ // In flash based table: X=1, C=1, B=1, ECC
+ .set __base,0xA00
+ .rept 0x200 - 0x000
+ FL_SECTION_ENTRY __base,1,3,1,0,1,1
+ .set __base,__base+1
+ .endr
+
+ // 2048MB ATU Outbound direct
+ // X=0, Non-cacheable, Non-bufferable
+ .set __base,0x000
+ .rept 0xA00 - 0x200
+ FL_SECTION_ENTRY __base,0,3,0,0,0,0
+ .set __base,__base+1
+ .endr
+
+ // 257MB ATU Outbound translation
+ // X=0, Non-cacheable, Non-bufferable
+ .rept 0xB01 - 0xA00
+ FL_SECTION_ENTRY __base,0,3,0,0,0,0
+ .set __base,__base+1
+ .endr
+
+ // Nothing here
+ .rept 0xC00 - 0xB01
+ FL_SECTION_ENTRY __base,0,0,0,0,0,0
+ .set __base,__base+1
+ .endr
+
+ // Uncached/unbuffered alias for 512MB ECC DRAM
+ .set __base,0xA00
+ .rept 0xE00 - 0xC00
+ FL_SECTION_ENTRY __base,0,3,1,0,0,0
+ .set __base,__base+1
+ .endr
+
+ // Cache flush region.
+ // Don't need physical memory, just a cached area.
+ .set __base,0xE00
+ .rept 0xE01 - 0xE00
+ FL_SECTION_ENTRY __base,1,3,0,0,1,1
+ .set __base,__base+1
+ .endr
+
+ // Nothing here
+ .rept 0xF00 - 0xE01
+ FL_SECTION_ENTRY __base,0,0,0,0,0,0
+ .set __base,__base+1
+ .endr
+
+ // 8MB of FLASH
+ // X=0, Cacheable, Non-bufferable
+ .rept 0xF08 - 0xF00
+ FL_SECTION_ENTRY __base,0,3,0,0,1,0
+ .set __base,__base+1
+ .endr
+
+ // Nothing here
+ .rept 0xFE8 - 0xF08
+ FL_SECTION_ENTRY __base,0,0,0,0,0,0
+ .set __base,__base+1
+ .endr
+
+ // PBIU CS1 - CS5
+ // X=0, Non-cacheable, Non-bufferable
+ .rept 0xFE9 - 0xFE8
+ FL_SECTION_ENTRY __base,0,3,0,0,0,0
+ .set __base,__base+1
+ .endr
+
+ // Nothing here
+ .rept 0xFFF - 0xFE9
+ FL_SECTION_ENTRY __base,0,0,0,0,0,0
+ .set __base,__base+1
+ .endr
+
+ // Verde PMMR
+ // X=0, Non-cacheable, Non-bufferable
+ .rept 0x1000 - 0xFFF
+ FL_SECTION_ENTRY __base,0,3,0,0,0,0
+ .set __base,__base+1
+ .endr
+#else /* CYG_HAL_MEMORY_MAP_NORMAL */
+ mmu_table:
+ // This page table sets up an alternate mapping:
+ //
+ // Virtual Address Physical Address Size (MB) Description
+ // --------------- ---------------- --------- -----------
+ // 0x00000000 0xA0000000 1 DRAM
+ // 0x00100000 0x00100000 2047 ATU Outbound Direct
+ // 0x80000000 0x80000000 257 ATU Outbound Xlate
+ // 0x90100000 0x90100000 255 Invalid
+ // 0xA0000000 0xA0000000 512 DRAM
+ // 0xC0000000 0xA0000000 512 Uncached DRAM alias
+ // 0xE0000000 0xE0000000 1 Cache Flush
+ // 0xE0100000 0xE0100000 255 Invalid
+ // 0xF0000000 0xF0000000 8 FLASH (PBIU CS0)
+ // 0xF0800000 0xF0800000 224 Invalid
+ // 0xFE800000 0xFE800000 1 PBIU CS1-CS5
+ // 0xFE900000 0xFE900000 22 Invalid
+ // 0xFFF00000 0xFFF00000 1 Verde PMMR
+
+ // 1MB ECC DRAM
+ // This is a duplicate mapping of the first MB of RAM. It is mapped
+ // here for CPU exception vectors.
+ .set __base,0xA00
+ .rept 0x001 - 0x000
+ FL_SECTION_ENTRY __base,1,3,1,0,1,1
+ .set __base,__base+1
+ .endr
+ .set __base,0x001
+
+ // 2047MB ATU Outbound direct
+ // X=0, Non-cacheable, Non-bufferable
+ .rept 0x800 - 0x001
+ FL_SECTION_ENTRY __base,0,3,0,0,0,0
+ .set __base,__base+1
+ .endr
+
+ // 257MB ATU Outbound translation
+ // X=0, Non-cacheable, Non-bufferable
+ .rept 0x901 - 0x800
+ FL_SECTION_ENTRY __base,0,3,0,0,0,0
+ .set __base,__base+1
+ .endr
+
+ // Nothing here. Invalid.
+ .rept 0xA00 - 0x901
+ FL_SECTION_ENTRY __base,0,0,0,0,0,0
+ .set __base,__base+1
+ .endr
+
+ // 512MB ECC DRAM
+ // X=1, C=1, B=1, ECC
+ .rept 0xC00 - 0xA00
+ FL_SECTION_ENTRY __base,1,3,1,0,1,1
+ .set __base,__base+1
+ .endr
+
+ // Uncached/unbuffered alias for 512MB ECC DRAM
+ .set __base,0xA00
+ .rept 0xE00 - 0xC00
+ FL_SECTION_ENTRY __base,0,3,1,0,0,0
+ .set __base,__base+1
+ .endr
+
+ // Cache flush region.
+ // Don't need physical memory, just a cached area.
+ .set __base,0xE00
+ .rept 0xE01 - 0xE00
+ FL_SECTION_ENTRY __base,1,3,0,0,1,1
+ .set __base,__base+1
+ .endr
+
+ // Nothing here
+ .rept 0xF00 - 0xE01
+ FL_SECTION_ENTRY __base,0,0,0,0,0,0
+ .set __base,__base+1
+ .endr
+
+ // 8MB of FLASH
+ // X=0, Cacheable, Non-bufferable
+ .rept 0xF08 - 0xF00
+ FL_SECTION_ENTRY __base,0,3,0,0,1,0
+ .set __base,__base+1
+ .endr
+
+ // Nothing here
+ .rept 0xFE8 - 0xF08
+ FL_SECTION_ENTRY __base,0,0,0,0,0,0
+ .set __base,__base+1
+ .endr
+
+ // PBIU CS1 - CS5
+ // X=0, Non-cacheable, Non-bufferable
+ .rept 0xFE9 - 0xFE8
+ FL_SECTION_ENTRY __base,0,3,0,0,0,0
+ .set __base,__base+1
+ .endr
+
+ // Nothing here
+ .rept 0xFFF - 0xFE9
+ FL_SECTION_ENTRY __base,0,0,0,0,0,0
+ .set __base,__base+1
+ .endr
+
+ // Verde PMMR
+ // X=0, Non-cacheable, Non-bufferable
+ .rept 0x1000 - 0xFFF
+ FL_SECTION_ENTRY __base,0,3,0,0,0,0
+ .set __base,__base+1
+ .endr
+#endif /* CYG_HAL_MEMORY_MAP_NORMAL */
+
+
+#endif /* CYG_HAL_STARTUP_ROM */
+
+/*---------------------------------------------------------------------------*/
+/* end of hal_platform_setup.h */
+#endif /* CYGONCE_HAL_PLATFORM_SETUP_H */
diff --git a/ecos/packages/hal/arm/xscale/iq80321/current/include/hal_platform_setup.h b/ecos/packages/hal/arm/xscale/iq80321/current/include/hal_platform_setup.h
new file mode 100644
index 0000000..1125695
--- /dev/null
+++ b/ecos/packages/hal/arm/xscale/iq80321/current/include/hal_platform_setup.h
@@ -0,0 +1,949 @@
+#ifndef CYGONCE_HAL_PLATFORM_SETUP_H
+#define CYGONCE_HAL_PLATFORM_SETUP_H
+
+/*=============================================================================
+//
+// hal_platform_setup.h
+//
+// Platform specific support for HAL (assembly code)
+//
+//=============================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): msalter
+// Contributors: msalter
+// Date: 2001-12-03
+// Purpose: Intel XScale IQ80321 platform specific support routines
+// Description:
+// Usage: #include <cyg/hal/hal_platform_setup.h>
+// Only used by "vectors.S"
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================*/
+
+#include <pkgconf/system.h> // System-wide configuration info
+#include CYGBLD_HAL_VARIANT_H // Variant specific configuration
+#include CYGBLD_HAL_PLATFORM_H // Platform specific configuration
+#include <cyg/hal/hal_verde.h> // Variant specific hardware definitions
+#include <cyg/hal/hal_mmu.h> // MMU definitions
+#include <cyg/hal/hal_mm.h> // more MMU definitions
+#include <cyg/hal/iq80321.h> // Platform specific hardware definitions
+#include <cyg/hal/hal_spd.h>
+
+#if defined(CYG_HAL_STARTUP_ROM)
+#define PLATFORM_SETUP1 _platform_setup1
+#define PLATFORM_EXTRAS <cyg/hal/hal_platform_extras.h>
+#define CYGHWR_HAL_ARM_HAS_MMU
+
+.macro NOPs count
+ .rept \count
+ nop
+ nop
+ .endr
+.endm
+
+// ------------------------------------------------------------------------
+// Define macro used to diddle the LEDs during early initialization.
+// Can use r0+r1. Argument in \x.
+#define CYGHWR_LED_MACRO \
+ b 667f ;\
+ 666: ;\
+ .byte DISPLAY_0, DISPLAY_1, DISPLAY_2, DISPLAY_3 ;\
+ .byte DISPLAY_4, DISPLAY_5, DISPLAY_6, DISPLAY_7 ;\
+ .byte DISPLAY_8, DISPLAY_9, DISPLAY_A, DISPLAY_B ;\
+ .byte DISPLAY_C, DISPLAY_D, DISPLAY_E, DISPLAY_F ;\
+ 667: ;\
+ ldr r0, =666b ;\
+ add r0, r0, #\x ;\
+ ldrb r1, [r0] ;\
+ ldr r0, =DISPLAY_RIGHT ;\
+ str r1, [r0]
+
+#define PAUSE \
+ ldr r1,=0x8000; \
+ 555: sub r1,r1,#1; \
+ cmp r1,#0; \
+ bne 555b;
+
+#define DCACHE_SIZE (32 * 1024)
+
+// ------------------------------------------------------------------------
+// MCU Register Values
+
+// ------------------------------------------------------------------------
+// This macro represents the initial startup code for the platform
+ .macro _platform_setup1
+ // This is where we wind up immediately after reset. At this point, we
+ // are executing from the boot address (0x00000000), not the eventual
+ // flash address. Do some basic setup using position independent code
+ // then switch to real flash address
+
+// FIXME FIXME FIXME FIXME FIXME FIXME FIXME FIXME FIXME
+// This is a quick and dirty workaround to an apparent gas/ld
+// bug. The computed UNMAPPED_PTR(reset_vector) is off by 0x20.
+ .rept 0x20/4
+ nop
+ .endr
+// FIXME FIXME FIXME FIXME FIXME FIXME FIXME FIXME FIXME
+
+ ldr r0,=(CPSR_IRQ_DISABLE|CPSR_FIQ_DISABLE|CPSR_SUPERVISOR_MODE)
+ msr cpsr, r0
+
+ // enable coprocessor access
+ ldr r0, =0x20c1 // CP13,CP7,CP6,CP0
+ mcr p15, 0, r0, c15, c1, 0
+
+ // Drain write and fill buffer
+ mcr p15, 0, r0, c7, c10, 4
+ CPWAIT r0
+
+ // Setup PBIU chip selects
+ ldr r8, =PBIU_PBCR
+
+ ldr r2, =PBLR_SZ_4K
+ ldr r1, =IQ80321_UART_ADDR | PBAR_FLASH | PBAR_RCWAIT_20 | PBAR_ADWAIT_20 | PBAR_BUS_8
+ str r1, [r8, #0x10] // PBIU_PBAR1
+ str r2, [r8, #0x14] // PBIU_PBLR1
+
+ ldr r1, =IQ80321_DISPLAY_RIGHT_ADDR | PBAR_FLASH | PBAR_RCWAIT_20 | PBAR_ADWAIT_20 | PBAR_BUS_32
+ str r1, [r8, #0x18] // PBIU_PBAR2
+ str r2, [r8, #0x1C] // PBIU_PBLR2
+
+ ldr r1, =IQ80321_DISPLAY_LEFT_ADDR | PBAR_FLASH | PBAR_RCWAIT_20 | PBAR_ADWAIT_20 | PBAR_BUS_32
+ str r1, [r8, #0x20] // PBIU_PBAR3
+ str r2, [r8, #0x24] // PBIU_PBLR3
+
+ ldr r1, =IQ80321_ROTARY_SWITCH_ADDR | PBAR_FLASH | PBAR_RCWAIT_20 | PBAR_ADWAIT_20 | PBAR_BUS_32
+ str r1, [r8, #0x28] // PBIU_PBAR4
+ str r2, [r8, #0x2C] // PBIU_PBLR4
+
+ ldr r1, =IQ80321_BATTERY_STATUS_ADDR | PBAR_FLASH | PBAR_RCWAIT_20 | PBAR_ADWAIT_20 | PBAR_BUS_32
+ str r1, [r8, #0x30] // PBIU_PBAR5
+ str r2, [r8, #0x34] // PBIU_PBLR5
+
+ // ====================================================================
+ HEX_DISPLAY r0, r1, DISPLAY_A, DISPLAY_1
+ // ====================================================================
+
+ // Enable the Icache
+ mrc p15, 0, r0, c1, c0, 0
+ orr r0, r0, #MMU_Control_I
+ mcr p15, 0, r0, c1, c0, 0
+ CPWAIT r0
+
+ // ====================================================================
+ HEX_DISPLAY r0, r1, DISPLAY_A, DISPLAY_2
+ // ====================================================================
+
+ // value to write into PBIU_PBAR0 to establish runtime flash address
+ ldr r1, =IQ80321_FLASH_ADDR | PBAR_FLASH | PBAR_RCWAIT_20 | PBAR_ADWAIT_20 | PBAR_BUS_16
+
+ // value to write into PBIU_PBLR0 to establish runtime flash address
+ ldr r2, =PBLR_SZ_8M
+
+ // value to load into pc to jump to real runtime address
+ ldr r7, =1f
+
+ ldr r9, =IQ80321_DISPLAY_RIGHT_ADDR
+ ldr r10,=IQ80321_DISPLAY_LEFT_ADDR
+ ldr r11,=DISPLAY_F
+
+ b icache_boundary
+ .p2align 5
+icache_boundary:
+ // Here is where we switch from boot address (0x000000000) to the
+ // actual flash runtime address. We align to cache boundary so we
+ // execute from cache during the switchover. Cachelines are 8 words.
+ str r1, [r8, #0x08] // PBIU_PBAR0
+ str r2, [r8, #0x0c] // PBIU_PBLR0
+ nop
+ nop
+ mov pc, r7
+ str r11, [r9] // We should never reach this point. If we do,
+ str r11, [r10] // display FF and loop forever.
+ 0: b 0b
+ 1:
+ // ====================================================================
+ HEX_DISPLAY r0, r1, DISPLAY_A, DISPLAY_3
+ // ====================================================================
+
+ // Set the TTB register
+ ldr r0, =mmu_table
+ mcr p15, 0, r0, c2, c0, 0
+
+ // Enable permission checks in all domains
+ ldr r0, =0x55555555
+ mcr p15, 0, r0, c3, c0, 0
+
+ // Enable the MMU
+ mrc p15, 0, r0, c1, c0, 0
+ orr r0, r0, #MMU_Control_M
+ orr r0, r0, #MMU_Control_R
+ mcr p15, 0, r0, c1, c0, 0
+ CPWAIT r0
+
+ // ====================================================================
+ HEX_DISPLAY r0, r1, DISPLAY_A, DISPLAY_4
+ // ====================================================================
+
+ //
+ // *** I2C interface initialization ***
+ //
+
+ // Pointers to I2C Registers
+ ldr r11, =I2C_BASE0 // base address of the I2C unit
+
+ // Write 0 to avoid interfering with I2C bus.
+ // (See GPIO section in 80321 manual)
+ ldr r2, =GPIO_GPOD
+ mov r3, #0
+ strb r3, [r2]
+
+ // Reset I2C Unit
+ mov r1, #ICR_RESET
+ str r1, [r11, #I2C_ICR0]
+ ldr r1, =0x7ff
+ str r1, [r11, #I2C_ISR0]
+ mov r1, #0
+ str r1, [r11, #I2C_ICR0]
+
+ // Setup I2C Slave Address Register
+ mov r1, #I2C_DEVID // Load slave address r1.
+ str r1, [r11, #I2C_ISAR0] // Save the value 0x02 (I2C_DEVID) in the register.
+
+ // Enable I2C Interface Unit - status will be polled
+ ldr r1, =ICR_GCALL | ICR_ENB | ICR_SCLENB
+ str r1, [r11, #I2C_ICR0]
+
+ //
+ // *** Now read the SPD Data ***
+ //
+
+ // Initialize regs for loop
+ mov r4, #0 // SDRAM size
+ mov r5, #0 // R5 has running checksum calculation
+ mov r6, #0 // Counter incremented before byte is read
+ mov r7, #64 // Number of bytes to read in the Presence Detect EEPROM of SDRAM
+ mov r8, #0 // Flags: b0-b6 == bankcnt, b7 = x16 flag
+ mov r9, #RFR_15_6us // Refresh rate (assume normal 15.6us)
+ mov r10, #0 // Bank size
+ mov r14, #0 // ECC flag
+
+ ldr r0, [r11, #I2C_ISR0] // Load I2C Status Reg into R0
+ str r0, [r11, #I2C_ISR0] // Clear status
+
+ /* FREE REGISTERS ARE R0 - R3 */
+
+ // *** Put out address, with WRITE mode ***
+
+ // Set SDRAM module address and write mode
+ mov r1, #SDRAM_DEVID // Load slave address for SDRAM module. 0xA2 (Presence Detect Data)
+ bic r1, r1, #IDBR_MODE // Clear read bit (bit #0)
+ str r1, [r11, #I2C_IDBR0] // Store to data register
+
+ // Initiate dummy write to set EEPROM pointer to 0
+ ldr r1, [r11, #I2C_ICR0] // read the current Control Register value
+ bic r1, r1, #ICR_STOP // No stop bit
+ orr r1, r1, #ICR_START | ICR_TRANSFER
+ str r1, [r11, #I2C_ICR0] // Store to control register
+
+ // ====================================================================
+ HEX_DISPLAY r0, r1, DISPLAY_9, DISPLAY_0
+ // ====================================================================
+
+ // Wait for transmit empty status
+ mov r1, #I2C_TIMOUT // Initialize I2C timeout counter
+ 0: subs r1, r1, #1 // Increment I2C timeout counter (r1 = r1 + 1)
+ beq i2c_error // Kick out of SDRAM initialization if timeout occurs
+ ldr r0, [r11, #I2C_ISR0] // Load I2C Status Reg into R0
+ ands r3, r0, #ISR_EMPTY // Bit #6 is checked, IDBR Transmit Empty
+ beq 0b // If bit = 0 then branch to 0 and check again
+ str r0, [r11, #I2C_ISR0] // Write back status to clear
+
+ // ====================================================================
+ HEX_DISPLAY r0, r1, DISPLAY_9, DISPLAY_1
+ // ====================================================================
+
+ // Write pointer register on EEPROM to 0x00000000
+ mov r1, #0 // Load base address of SDRAM module EEPROM
+ str r1, [r11, #I2C_IDBR0] // Store to data register
+
+ // Send address to EEPROM
+ ldr r1, [r11, #I2C_ICR0] // read the current Control Register value
+ bic r1, r1, #ICR_START | ICR_STOP
+ orr r1, r1, #ICR_TRANSFER // Set transfer bit - bit is self_clearing
+ str r1, [r11, #I2C_ICR0] // Store to control register
+
+ // ====================================================================
+ HEX_DISPLAY r0, r1, DISPLAY_9, DISPLAY_2
+ // ====================================================================
+
+ // Wait for transmit empty status
+ mov r1, #I2C_TIMOUT // Initialize I2C timeout counter
+ 0: subs r1, r1, #1 // Increment I2C timeout counter (r1 = r1 + 1)
+ beq i2c_error // Kick out of SDRAM initialization if timeout occurs
+ ldr r0, [r11, #I2C_ISR0] // Load I2C Status Reg into R0
+ ands r3, r0, #ISR_EMPTY // Bit #6 is checked, IDBR Transmit Empty
+ beq 0b // If bit = 0 then branch to 0 and check again
+ str r0, [r11, #I2C_ISR0] // Write back status to clear
+1:
+ // ====================================================================
+ HEX_DISPLAY r0, r1, DISPLAY_9, DISPLAY_3
+ // ====================================================================
+
+ // *** Read SDRAM PD data ***
+
+ // *** Put out address, with READ mode ***
+
+ // Set SDRAM module address and read mode
+ mov r0, #SDRAM_DEVID // Load slave address for SDRAM module (0xA2)
+ orr r1, r0, #IDBR_MODE // Set read bit (bit #0)
+ str r1, [r11, #I2C_IDBR0] // Store to data register
+
+ // Send next read request
+ ldr r1, [r11, #I2C_ICR0] // read the current Control Register value
+ bic r1, r1, #ICR_STOP // No stop bit
+ orr r1, r1, #ICR_START | ICR_TRANSFER
+ str r1, [r11, #I2C_ICR0] // Store to control register
+
+ // Wait for transmit empty status
+ mov r1, #I2C_TIMOUT // Initialize I2C timeout counter
+ 0: subs r1, r1, #1 // Increment I2C timeout counter (r1 = r1 + 1)
+ beq i2c_error // Kick out of SDRAM initialization if timeout occurs
+ ldr r0, [r11, #I2C_ISR0] // Load I2C Status Reg into R0
+ ands r3, r0, #ISR_EMPTY // Bit #6 is checked, IDBR Transmit Empty
+ beq 0b // If bit = 0 then branch to 0 and check again
+ str r0, [r11, #I2C_ISR0] // Write back status to clear
+
+ // ====================================================================
+ HEX_DISPLAY r0, r1, DISPLAY_9, DISPLAY_4
+ // ====================================================================
+
+ spd_loop:
+ // read the next Byte of Serial Presence Detect data
+
+ ldr r1, [r11, #I2C_ICR0] // read the current Control Register value
+ bic r1, r1, #ICR_START // No start bit (already started)
+ orr r1, r1, #ICR_TRANSFER // Set transfer bit - bit is self_clearing
+
+ // we have to set NACK before reading the last byte
+ add r2, r6, #1
+ cmp r2, r7 // r7 = 64 (decimal) so if r6 = 64, this is the last byte to be read
+ orreq r1, r1, #ICR_ACK | ICR_STOP
+ str r1, [r11, #I2C_ICR0] // Store to control register
+
+ // Wait for read full status
+ mov r1, #I2C_TIMOUT // Initialize I2C timeout counter
+ 0: subs r1, r1, #1 // decrement timeout
+ beq i2c_error // Kick out of SDRAM initialization if timeout occurs
+ ldr r0, [r11, #I2C_ISR0] // Load I2C Status Reg into R0
+ ands r3, r0, #ISR_FULL // Bit #7 is checked
+ beq 0b // If bit = 0 then branch to 0 and check again
+ str r0, [r11, #I2C_ISR0] // Write back status to clear
+
+ ldr r1, [r11, #I2C_IDBR0] // Read the byte
+
+ // check for checksum byte
+ subs r2, r6, #SPD_CHECKSUM
+ addne r5, r5, r1 // Add it to the checksum if not the checksum byte
+ bne 1f // skip checksum comparison
+ and r5, r5, #0xff // against the calculated checksum
+ cmp r1, r5
+ beq spd_continue
+
+ // bad checksum
+ HEX_DISPLAY r2, r3, DISPLAY_7, DISPLAY_7
+ 0: b 0b
+
+ 1:
+ // Check for bank count byte
+ subs r2, r6, #SPD_BANKCNT
+ moveq r8, r1 // Store bank count
+ beq spd_continue
+
+ // Check for ECC
+ subs r2, r6, #SPD_CONFIG
+ bne 1f
+ subs r2, r1, #2
+ addeq r14, r14, #1
+ b spd_continue
+ 1:
+
+ // Check for refresh rate
+ subs r2, r6, #SPD_REFRESH
+ bne 1f
+
+ ands r2, r1, #0x7f
+ moveq r9, #RFR_15_6us
+ subs r3, r2, #1
+ moveq r9, #RFR_3_9us
+ subs r3, r2, #2
+ moveq r9, #RFR_7_8us
+
+ b spd_continue
+
+ 1:
+ // Check for SDRAM width byte
+ subs r2, r6, #SPD_SDRAM_WIDTH
+ bne 1f
+
+ ands r2, r1, #0x10 // Check for data width of 16
+ orr r8, r8, r2, lsl #3 // set b7 in r8 if x16
+
+#if 0 // drive strength doesn't depend on width
+ ldreq r2, =x8_table // x8 if bit not set
+ ldrne r2, =x16_table // x16 if bit not set
+ b init_drive_strength
+
+ x16_table:
+ .word 0x18 // Data Bus Pull Up
+ .word 0x18 // Data Bus Pull Down
+ .word 0x22 // Clock Pull Up
+ .word 0x20 // Clock Pull Down
+ .word 0x30 // Clock Enable Pull Up
+ .word 0x30 // Clock Enable Pull Down
+ .word 0x30 // Chip Select Pull Up
+ .word 0x30 // Chip Select Pull Down
+ .word 0x18 // Receive Enable Pull Up
+ .word 0x18 // Receive Enable Pull Down
+ .word 0x3c // Address Bus Pull Up
+ .word 0x3c // Address Bus Pull Down
+
+ x8_table:
+ .word 0x18 // Data Bus Pull Up
+ .word 0x18 // Data Bus Pull Down
+ .word 0x22 // Clock Pull Up
+ .word 0x20 // Clock Pull Down
+ .word 0x30 // Clock Enable Pull Up
+ .word 0x30 // Clock Enable Pull Down
+ .word 0x30 // Chip Select Pull Up
+ .word 0x30 // Chip Select Pull Down
+ .word 0x18 // Receive Enable Pull Up
+ .word 0x18 // Receive Enable Pull Down
+ .word 0x3c // Address Bus Pull Up
+ .word 0x3c // Address Bus Pull Down
+#else
+ b spd_continue
+
+ registered_table:
+ .word 13 // Data Bus Pull Up
+ .word 13 // Data Bus Pull Down
+ .word 34 // Clock Pull Up
+ .word 32 // Clock Pull Down
+ .word 48 // Clock Enable Pull Up
+ .word 48 // Clock Enable Pull Down
+ .word 13 // Chip Select Pull Up
+ .word 13 // Chip Select Pull Down
+ .word 13 // Receive Enable Pull Up
+ .word 13 // Receive Enable Pull Down
+ .word 13 // Address Bus Pull Up
+ .word 13 // Address Bus Pull Down
+
+ unbuffered_table:
+ .word 13 // Data Bus Pull Up
+ .word 13 // Data Bus Pull Down
+ .word 34 // Clock Pull Up
+ .word 32 // Clock Pull Down
+ .word 48 // Clock Enable Pull Up
+ .word 48 // Clock Enable Pull Down
+ .word 24 // Chip Select Pull Up
+ .word 24 // Chip Select Pull Down
+ .word 13 // Receive Enable Pull Up
+ .word 13 // Receive Enable Pull Down
+ .word 24 // Address Bus Pull Up
+ .word 24 // Address Bus Pull Down
+#endif
+
+ init_drive_strength:
+
+ ldr r1, =MCU_DBUDSR
+ mov r3, #12 // 12 contiguous registers to set
+ 0:
+ ldr r0, [r2], #4 // load value
+ str r0, [r1], #4 // store to register
+ subs r3, r3, #1
+ bne 0b
+ b spd_continue
+ 1:
+
+ // Check for module attribute byte
+ subs r2, r6, #SPD_MOD_ATTRIB
+ bne 1f
+ ldr r0, =MCU_SDCR
+ mov r2, #SDCR_INIT_VAL
+ ands r3, r1, #SPD_ATTRIB_REG_CTL // check for registered modules
+ beq 2f
+ orr r2, r2, #2
+ str r2, [r0]
+ ldr r2, =registered_table
+ b init_drive_strength
+ 2:
+ str r2, [r0]
+ ldr r2, =unbuffered_table
+ b init_drive_strength
+ 1:
+
+ // Check for bank size byte
+ subs r2, r6, #SPD_BANKSZ
+ bne 1f
+ mov r10, r1, lsl #2 // Store bank size in Mbytes (shift left 2 bits)
+ and r3, r8, #0x7f // isolate bank count
+ mul r2, r3, r10 // Multiply by bank count to get DRAM size in MB
+ mov r4, r2, lsl #20 // Convert size to bytes - r4 contains DRAM size in bytes
+ b spd_continue
+ 1:
+
+ spd_continue:
+ // Continue reading bytes if not done
+ add r6, r6, #1 // Increment byte counter
+ cmp r6, r7
+ bne spd_loop
+
+ b i2c_disable
+
+ .ltorg
+ i2c_error:
+ // hit the leds if an error occurred
+ HEX_DISPLAY r2, r3, DISPLAY_5, DISPLAY_5
+ b i2c_error
+ i2c_disable:
+ // Disable I2C Interface Unit
+ ldr r1, [r11, #I2C_ICR0]
+ bic r1, r1, #ICR_ENB | ICR_SCLENB // Disable I2C unit
+ str r1, [r11, #I2C_ICR0]
+
+ // At this point, r4 = SDRAM size in bytes, r8 = Bank count, r10 = bank size in MB
+
+
+ // *** SDRAM setup ***
+
+ // Set the DDR SDRAM Base Register - SDBR (the lowest address for memory)
+ ldr r0, =MCU_SDBR
+ mov r1, #SDRAM_PHYS_BASE
+ str r1, [r0]
+
+ // Set up bank 0 register
+ subs r1, r10, #32
+ moveq r0, #SBR_32MEG // Program SDRAM Bank0 Boundary register to 32 MB
+ beq 1f
+ subs r1, r10, #64 // do we have 64 MB banks?
+ moveq r0, #SBR_64MEG // Program SDRAM Bank0 Boundary register to 64 MB
+ beq 1f
+ subs r1, r10, #128 // do we have 128 MB banks?
+ moveq r0, #SBR_128MEG // Program SDRAM Bank0 Boundary register to 128 MB
+ beq 1f
+ subs r1, r10, #256 // do we have 256 MB banks?
+ moveq r0, #SBR_256MEG // Program SDRAM Bank0 Boundary register to 64 MB
+ beq 1f
+ subs r1, r10, #512 // do we have 512 MB banks?
+ moveq r0, #SBR_512MEG // Program SDRAM Bank0 Boundary register to 64 MB
+ beq 1f
+
+ bank_err:
+ HEX_DISPLAY r2, r3, DISPLAY_F, DISPLAY_F
+ b bank_err
+ 1:
+ mov r1, #SDRAM_PHYS_BASE
+ mov r2, #0x1f
+ and r2, r2, r1, lsr #25
+ add r2, r2, r0
+
+ ands r1, r8, #0x80
+ and r8, r8, #0x7f
+ beq 1f
+ // x16
+ subs r1, r10, #128
+ addeq r2, r2, #0x80000000
+ 1:
+ ldr r1, =MCU_SBR0
+ str r2, [r1] // store SBR0
+
+ subs r1, r8, #2 // do we have 2 banks???
+ addeq r2, r2, r0 // SBR1 == SBR0+r0 if two banks
+ ldr r1, =MCU_SBR1
+ str r2, [r1]
+
+ // ====================================================================
+ HEX_DISPLAY r0, r1, DISPLAY_A, DISPLAY_5
+ // ====================================================================
+
+ DELAY_FOR 0x1800000, r0
+
+ // Disable the refresh counter by setting the RFR to zero.
+ // (from section 7.2.2.6 of the Verde technical specification)
+ ldr r0, =MCU_RFR
+ mov r1, #0
+ str r1, [r0]
+
+ // Issue one NOP cycle after the 200 us device deselect. A NOP is
+ // accomplished by setting the SDIR to 0101.
+ ldr r0, =MCU_SDIR
+ mov r1, #SDIR_CMD_NOP
+ str r1, [r0]
+
+ // Issue a precharge-all command to the DDR SDRAM interface by setting
+ // the SDIR to 0100.
+ mov r1, #SDIR_CMD_PRECHARGE_ALL
+ str r1, [r0]
+
+ // Issue an extended-mode-register-set command to enable the DLL by
+ // writing 0110 to the SDIR.
+ NOPs 8
+
+ mov r1, #SDIR_CMD_ENABLE_DLL
+ str r1, [r0]
+
+ // After waiting T mrd cycles (4 clocks at 200 MHz), issue a
+ // mode-register-set command by writing to the SDIR to program the DDR
+ // SDRAM parameters and to Reset the DLL. Setting the SDIR to 0010
+ // programs the MCU for CAS Latency of two while setting the SDIR to 0011
+ // programs the MCU for CAS Latency of two and one-half. The MCU supports
+ // the following DDR SDRAM mode parameters:
+ // a. CAS Latency (CL) = two or two and one-half
+ // b. Wrap Type (WT) = Sequential
+ // c. Burst Length (BL) = four
+ NOPs 8
+
+ mov r1, #SDIR_CMD_CAS_LAT_2_A // Set CAS Latency to 2
+ str r1, [r0]
+
+ // After waiting T mrd cycles (4 clocks at 200 MHz), issue a precharge-all
+ // command to the DDR SDRAM interface by setting the SDIR to 0100.
+ NOPs 8
+
+ mov r1, #SDIR_CMD_PRECHARGE_ALL
+ str r1, [r0]
+
+ // After waiting T rp cycles (4 clocks at 200 MHz), provide two
+ // auto-refresh cycles. An auto-refresh cycle is accomplished by
+ // setting the SDIR to 0111. Software must ensure at least T rfc
+ // cycles (16 clocks at 200 MHz) between each auto-refresh command.
+ NOPs 8
+
+ mov r1, #SDIR_CMD_AUTO_REFRESH // 1st of two auto-refresh cycle commands
+ str r1, [r0]
+
+ NOPs 8
+
+ str r1, [r0] // 2nd of two auto-refresh cycle commands
+
+ NOPs 8
+
+ // Issues a mode-register-set command by writing to the SDIR to program the
+ // DDR SDRAM parameters without resetting the DLL. Setting the SDIR to 0000
+ // programs the MCU for CAS Latency of two while setting the SDIR to 0001
+ // programs the MCU for CAS Latency of two and one-half. The MCU supports
+ // the following DDR SDRAM mode parameters:
+ // a. CAS Latency (CL) = two or two and one-half
+ // b. Wrap Type (WT) = Sequential
+ // c. Burst Length (BL) = four
+ mov r1, #SDIR_CMD_CAS_LAT_2_B // Set CAS Latency to 2
+ str r1, [r0]
+
+ NOPs 8
+
+ mov r1, #0xF // DDR Normal Operation
+ str r1, [r0]
+
+ // Re-enable the refresh counter by setting the RFR to the required value.
+ //
+ ldr r0, =MCU_RFR
+ str r9, [r0]
+
+ // DSDR - Data Strobe Delay Register (Section 7.6.25)
+ ldr r0, =MCU_DSDR
+ ldr r1, =DSDR_REC_VAL
+ str r1, [r0]
+
+ // REDR - Receive Enable Delay Register (Section 7.6.26)
+ ldr r0, =MCU_REDR
+ ldr r1, =REDR_REC_VAL
+ str r1, [r0]
+
+ // ====================================================================
+ HEX_DISPLAY r0, r1, DISPLAY_A, DISPLAY_6
+ // ====================================================================
+
+ // delay before using SDRAM
+ DELAY_FOR 0x1800000, r0
+
+ // Enable the Dcache
+ mrc p15, 0, r0, c1, c0, 0
+ orr r0, r0, #MMU_Control_C
+ mcr p15, 0, r0, c1, c0, 0
+ CPWAIT r0
+
+ // Enable branch target buffer
+ mrc p15, 0, r0, c1, c0, 0
+ orr r0, r0, #MMU_Control_BTB
+ mcr p15, 0, r0, c1, c0, 0
+ CPWAIT r0
+
+ mcr p15, 0, r0, c7, c10, 4 // drain the write & fill buffers
+ CPWAIT r0
+
+ mcr p15, 0, r0, c7, c7, 0 // flush Icache, Dcache and BTB
+ CPWAIT r0
+
+ mcr p15, 0, r0, c8, c7, 0 // flush instuction and data TLBs
+ CPWAIT r0
+
+ mcr p15, 0, r0, c7, c10, 4 // drain the write & fill buffers
+ CPWAIT r0
+
+ // ====================================================================
+ HEX_DISPLAY r0, r1, DISPLAY_S, DISPLAY_L
+ // ====================================================================
+
+ ldr r0, =MCU_ECTST // clear test register
+ mov r1, #0
+ str r1, [r0]
+
+ ldr r0, =MCU_ECCR
+ mov r1, #0x0 // disable ECC, disable reporting
+ str r1, [r0]
+
+#ifdef CYGSEM_HAL_ARM_IQ80321_BATTERY_TEST
+ // Battery Backup SDRAM Memory Test
+ // Move test pattern into register prior to memory scrub
+ ldr r9, =SDRAM_BATTERY_TEST_ADDR
+ ldr r10, [r9]
+#endif
+
+ orrs r14, r14, r14
+ beq no_ecc1
+
+ ldr r0, =MCU_ECCR
+ mov r1, #0x8 // enable ECC, disable reporting
+ str r1, [r0]
+
+ no_ecc1:
+
+#ifdef CYGSEM_HAL_ARM_IQ80321_CLEAR_PCI_RETRY
+ // Minimally setup ATU and release "retry" bit.
+ ldr r1, =ATU_IATVR2
+ mov r0, #SDRAM_PHYS_BASE
+ str r0, [r1]
+ ldr r0, =0xffffffff
+ sub r1, r4, #1
+ sub r0, r0, r1
+ bic r0, r0, #0x3f
+ ldr r1, =ATU_IALR2
+ str r0, [r1]
+ ldr r0, =((0xFFFFFFFF - ((64 * 1024 * 1024) - 1)) & 0xFFFFFFC0)
+ ldr r1, =ATU_IALR1
+ str r0, [r1]
+ mov r0, #0xc
+ ldr r1, =ATU_IABAR1
+ str r0, [r1]
+ ldr r1, =ATU_IABAR2
+ str r0, [r1]
+ mov r0, #0
+ ldr r1, =ATU_IAUBAR1
+ str r0, [r1]
+ ldr r1, =ATU_PCSR
+ ldr r0, [r1]
+ and r13, r0, #4 // save retry bit for later
+ bic r0, r0, #4
+ str r0, [r1]
+#endif
+
+ // scrub init
+ mov r12, r4 // size of memory to scrub
+ mov r8, r4 // save DRAM size
+ mov r0, #0
+ mov r1, #0
+ mov r2, #0
+ mov r3, #0
+ mov r4, #0
+ mov r5, #0
+ mov r6, #0
+ mov r7, #0
+
+ ldr r11, =SDRAM_UNCACHED_BASE
+
+ // scrub Loop
+ 0:
+ stmia r11!, {r0-r7}
+ subs r12, r12, #32
+ bne 0b
+
+ // ====================================================================
+ HEX_DISPLAY r0, r1, DISPLAY_S, DISPLAY_E
+ // ====================================================================
+
+ // ====================================================================
+ HEX_DISPLAY r0, r1, DISPLAY_A, DISPLAY_7
+ // ====================================================================
+
+ // clean, drain, flush the main Dcache
+ ldr r1, =DCACHE_FLUSH_AREA // use a CACHEABLE area of
+ // memory that's mapped above SDRAM
+ mov r0, #1024 // number of lines in the Dcache
+ 0:
+ mcr p15, 0, r1, c7, c2, 5 // allocate a Dcache line
+ add r1, r1, #32 // increment to the next cache line
+ subs r0, r0, #1 // decrement the loop count
+ bne 0b
+
+ // ====================================================================
+ HEX_DISPLAY r0, r1, DISPLAY_A, DISPLAY_8
+ // ====================================================================
+
+ // clean, drain, flush the mini Dcache
+ ldr r2, =DCACHE_FLUSH_AREA + DCACHE_SIZE
+ mov r0, #64 // number of lines in the Dcache
+ 0:
+ mcr p15, 0, r2, c7, c2, 5 // allocate a Dcache line
+ add r2, r2, #32 // increment to the next cache line
+ subs r0, r0, #1 // decrement the loop count
+ bne 0b
+
+ mcr p15, 0, r0, c7, c6, 0 // flush Dcache
+ CPWAIT r0
+
+ mcr p15, 0, r0, c7, c10, 4 // drain the write & fill buffers
+ CPWAIT r0
+
+ // ====================================================================
+ HEX_DISPLAY r0, r1, DISPLAY_A, DISPLAY_9
+ // ====================================================================
+ orrs r14, r14, r14
+ beq no_ecc2
+
+ ldr r0, =MCU_MCISR
+ mov r1, #7
+ str r1, [r0]
+
+ ldr r0, =MCU_ECCR
+ ldr r1, =0x0f // enable ECC
+ str r1, [r0]
+
+ no_ecc2:
+
+ // ====================================================================
+ HEX_DISPLAY r0, r1, DISPLAY_A, DISPLAY_A
+ // ====================================================================
+
+#ifdef CYGSEM_HAL_ARM_IQ80321_BATTERY_TEST
+ // Battery Backup SDRAM Memory Test
+ // Store test pattern back into memory
+ str r10, [r9]
+#endif
+
+ // Save SDRAM size
+ ldr r1, =hal_dram_size /* [see hal_intr.h] */
+ str r8, [r1]
+
+#ifdef CYGSEM_HAL_ARM_IQ80321_CLEAR_PCI_RETRY
+ // Save boot time retry flag.
+ ldr r1, =hal_pcsr_cfg_retry
+ str r13, [r1]
+#endif
+
+ // Move mmu tables into RAM so page table walks by the cpu
+ // don't interfere with FLASH programming.
+ ldr r0, =mmu_table
+ add r2, r0, #0x4000 // End of tables
+ mov r1, #SDRAM_BASE
+ orr r1, r1, #0x4000 // RAM tables
+
+ // everything can go as-is
+ 1:
+ ldr r3, [r0], #4
+ str r3, [r1], #4
+ cmp r0, r2
+ bne 1b
+
+ // ====================================================================
+ HEX_DISPLAY r0, r1, DISPLAY_A, DISPLAY_B
+ // ====================================================================
+
+ // clean, drain, flush the main Dcache
+ ldr r1, =DCACHE_FLUSH_AREA // use a CACHEABLE area of memory
+ mov r0, #1024 // number of lines in the Dcache
+ 0:
+ mcr p15, 0, r1, c7, c2, 5 // allocate a Dcache line
+ add r1, r1, #32 // increment to the next cache line
+ subs r0, r0, #1 // decrement the loop count
+ bne 0b
+
+ // clean, drain, flush the mini Dcache
+ ldr r2, =DCACHE_FLUSH_AREA + DCACHE_SIZE
+ mov r0, #64 // number of lines in the Dcache
+ 0:
+ mcr p15, 0, r2, c7, c2, 5 // allocate a Dcache line
+ add r2, r2, #32 // increment to the next cache line
+ subs r0, r0, #1 // decrement the loop count
+ bne 0b
+
+ mcr p15, 0, r0, c7, c6, 0 // flush Dcache
+ CPWAIT r0
+
+ mcr p15, 0, r0, c7, c10, 4 // drain the write & fill buffers
+ CPWAIT r0
+
+ // ====================================================================
+ HEX_DISPLAY r0, r1, DISPLAY_A, DISPLAY_C
+ // ====================================================================
+
+ // Set the TTB register to DRAM mmu_table
+ ldr r0, =(SDRAM_PHYS_BASE | 0x4000) // RAM tables
+ mov r1, #0
+ mcr p15, 0, r1, c7, c5, 0 // flush I cache
+ mcr p15, 0, r1, c7, c10, 4 // drain WB
+ mcr p15, 0, r0, c2, c0, 0 // load page table pointer
+ mcr p15, 0, r1, c8, c7, 0 // flush TLBs
+ CPWAIT r0
+
+ // ====================================================================
+ HEX_DISPLAY r0, r1, DISPLAY_A, DISPLAY_D
+ // ====================================================================
+ .endm // _platform_setup1
+
+#else // defined(CYG_HAL_STARTUP_ROM)
+#define PLATFORM_SETUP1
+#endif
+
+#define PLATFORM_VECTORS _platform_vectors
+ .macro _platform_vectors
+ .globl hal_pcsr_cfg_retry
+hal_pcsr_cfg_retry: .long 0 // Boot-time value of PCSR Retry bit.
+ .endm
+
+/*---------------------------------------------------------------------------*/
+/* end of hal_platform_setup.h */
+#endif /* CYGONCE_HAL_PLATFORM_SETUP_H */
diff --git a/ecos/packages/hal/arm/xscale/iq80321/current/include/hal_plf_ints.h b/ecos/packages/hal/arm/xscale/iq80321/current/include/hal_plf_ints.h
new file mode 100644
index 0000000..fabd0b7
--- /dev/null
+++ b/ecos/packages/hal/arm/xscale/iq80321/current/include/hal_plf_ints.h
@@ -0,0 +1,67 @@
+#ifndef CYGONCE_HAL_PLF_INTS_H
+#define CYGONCE_HAL_PLF_INTS_H
+//==========================================================================
+//
+// hal_plf_ints.h
+//
+// HAL Platform Interrupt support
+//
+//==========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//==========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): msalter
+// Contributors: msalter
+// Date: 2001-12-03
+// Purpose: Define Interrupt support
+// Description: The interrupt details for a specific platform is defined here.
+// Usage:
+//
+//
+//####DESCRIPTIONEND####
+//
+//==========================================================================
+
+// start with variant ints
+#include CYGBLD_HAL_VAR_INTS_H
+
+#ifdef CYGSEM_HAL_ARM_IQ80321_FAB_C
+#define CYGNUM_HAL_INTERRUPT_ETHERNET CYGNUM_HAL_INTERRUPT_XINT2
+#define CYGNUM_HAL_INTERRUPT_UART CYGNUM_HAL_INTERRUPT_XINT3
+#else
+#define CYGNUM_HAL_INTERRUPT_ETHERNET CYGNUM_HAL_INTERRUPT_XINT0
+#define CYGNUM_HAL_INTERRUPT_UART CYGNUM_HAL_INTERRUPT_XINT1
+#endif
+
+#endif // CYGONCE_HAL_PLF_INTS_H
diff --git a/ecos/packages/hal/arm/xscale/iq80321/current/include/iq80321.h b/ecos/packages/hal/arm/xscale/iq80321/current/include/iq80321.h
new file mode 100644
index 0000000..3ab9d47
--- /dev/null
+++ b/ecos/packages/hal/arm/xscale/iq80321/current/include/iq80321.h
@@ -0,0 +1,234 @@
+#ifndef CYGONCE_HAL_ARM_XSCALE_IQ80321_IQ80321_H
+#define CYGONCE_HAL_ARM_XSCALE_IQ80321_IQ80321_H
+
+/*=============================================================================
+//
+// iq80321.h
+//
+// Platform specific support (register layout, etc)
+//
+//=============================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): msalter
+// Contributors: msalter
+// Date: 2001-12-03
+// Purpose: Intel IQ80321 platform specific support routines
+// Description:
+// Usage: #include <cyg/hal/iq80321.h>
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================*/
+
+#include <pkgconf/system.h>
+#include CYGHWR_MEMORY_LAYOUT_H
+#include <pkgconf/hal_arm_xscale_iq80321.h>
+#include <cyg/hal/hal_verde.h> // IO Processor defines
+
+#define IQ80321_FLASH_ADDR 0xf0000000 // Verde PBIU CS0
+#define IQ80321_UART_ADDR 0xfe800000 // Verde PBIU CS1
+#define IQ80321_DISPLAY_RIGHT_ADDR 0xfe850000 // Verde PBIU CS2
+#define IQ80321_DISPLAY_LEFT_ADDR 0xfe840000 // Verde PBIU CS3
+#define IQ80321_ROTARY_SWITCH_ADDR 0xfe8d0000 // Verde PBIU CS4
+#define IQ80321_BATTERY_STATUS_ADDR 0xfe8f0000 // Verde PBIU CS5
+
+#define SDRAM_PHYS_BASE 0xa0000000
+#ifdef CYG_HAL_MEMORY_MAP_NORMAL
+#define SDRAM_BASE 0x00000000
+#else
+#define SDRAM_BASE 0xa0000000
+#endif
+#define SDRAM_SIZE 0x08000000 // 128MB
+#define SDRAM_MAX 0x20000000 // 512MB
+
+// These must match setup in the page table in hal_platform_extras.h
+#define SDRAM_UNCACHED_BASE 0xc0000000
+#define DCACHE_FLUSH_AREA 0xe0000000
+
+// Pin used to enable Gigabit Ethernet NIC
+// The GPIO pin only has effect when switch S7E1-5 is closed (ON).
+#define IQ80321_GBE_GPIO_PIN 4
+
+// ------------------------------------------------------------------------
+// SDRAM configuration
+
+// I2C slave address to which the unit responds when in slave-receive mode
+#define I2C_DEVID 0x02
+#define SDRAM_DEVID 0xAE
+
+// Timeout limit for SDRAM EEPROM to respond
+#define I2C_TIMOUT 0x1000000
+
+// ------------------------------------------------------------------------
+// Battery Status
+//
+#define IQ80321_BATTERY_NOT_PRESENT 0x01
+#define IQ80321_BATTERY_CHARGE 0x02
+#define IQ80321_BATTERY_ENABLE 0x04
+#define IQ80321_BATTERY_DISCHARGE 0x08
+
+#define IQ80321_BATTERY_STATUS ((volatile unsigned short *)IQ80321_BATTERY_STATUS_ADDR)
+
+// Address used for battery backup test
+#define SDRAM_BATTERY_TEST_ADDR (SDRAM_UNCACHED_BASE + 0x100000)
+
+
+// ------------------------------------------------------------------------
+// 7 Segment Display
+#define DISPLAY_LEFT IQ80321_DISPLAY_LEFT_ADDR
+#define DISPLAY_RIGHT IQ80321_DISPLAY_RIGHT_ADDR
+
+#define DISPLAY_0 0x03
+#define DISPLAY_1 0x9f
+#define DISPLAY_2 0x25
+#define DISPLAY_3 0x0d
+#define DISPLAY_4 0x99
+#define DISPLAY_5 0x49
+#define DISPLAY_6 0x41
+#define DISPLAY_7 0x1f
+#define DISPLAY_8 0x01
+#define DISPLAY_9 0x19
+#define DISPLAY_A 0x11
+#define DISPLAY_B 0xc1
+#define DISPLAY_C 0x63
+#define DISPLAY_D 0x85
+#define DISPLAY_E 0x61
+#define DISPLAY_F 0x71
+#define DISPLAY_G 0x43 /* 0100001-1 */
+#define DISPLAY_H 0x91 /* 1001000-1 */
+#define DISPLAY_I 0xf3 /* 1111001-1 */
+#define DISPLAY_J 0x8f /* 1000111-1 */
+#define DISPLAY_K 0x90 /* 1001000-0 *//* cannot do a K, H with a decimal point */
+#define DISPLAY_L 0xe3 /* 1110001-1 */
+#define DISPLAY_M 0x7e /* 0111111-0 *//* Cannot do an M, overscore with the decimal point */
+#define DISPLAY_N 0x13 /* 0001001-1 */
+#define DISPLAY_O 0x03 /* 0000001-1 */
+#define DISPLAY_P 0x31 /* 0011000-1 */
+#define DISPLAY_Q 0x02 /* 0000001-0 */
+#define DISPLAY_R 0x10 /* 0001000-0 *//* same as an "A", except with the decimal point */
+#define DISPLAY_S 0x48 /* 0100100-0 *//* same as a "5", except with the decimal point */
+#define DISPLAY_T 0x1e /* 0001111-0 *//* same as a "7", except with the decimal point */
+#define DISPLAY_U 0x13 /* 1000001-1 */
+#define DISPLAY_V 0x82 /* 1000001-0 *//* same as a "U", except with the decimal point */
+#define DISPLAY_W 0xee /* 1110111-0 *//* Cannot do an W, underscore with the decimal point */
+#define DISPLAY_X 0xb0 /* 1011000-0 *//* cannot do an X, upside-down h, with decimal point */
+#define DISPLAY_Y 0x8b /* 1000101-1 */
+#define DISPLAY_Z 0x6c /* 0110110-0 *//* cannot do a Z, dash/dash/dash with decimal point */
+
+#define DISPLAY_OFF 0xff /* 1111111-1 */
+#define DISPLAY_ON 0x00 /* 0000000-0 */
+
+#define DISPLAY_SPACE 0xff /* 1111111-1 */
+#define DISPLAY_ERROR 0x60 /* 0110000-0 */
+#define DISPLAY_UNDERSCORE 0xef /* 1110111-1 */
+#define DISPLAY_DASH 0xfd /* 1111110-1 */
+#define DISPLAY_PERIOD 0xfe /* 1111111-0 */
+#define DISPLAY_EXCLAMATION 0x9e /* 1001111-0 */
+
+#ifdef __ASSEMBLER__
+ // Display 'lvalue:rvalue' on the hex display
+ // lvalue and rvalue must be of the form 'DISPLAY_x'
+ // where 'x' is a hex digit from 0-F.
+ .macro HEX_DISPLAY reg0, reg1, lvalue, rvalue
+ ldr \reg0, =DISPLAY_LEFT // display left digit
+ ldr \reg1, =\lvalue
+ strb \reg1, [\reg0]
+ ldr \reg0, =DISPLAY_RIGHT
+ ldr \reg1, =\rvalue // display right digit
+ strb \reg1, [\reg0]
+#if 0
+ // delay
+ ldr \reg0, =0x7800000
+ mov \reg1, #0
+ 0:
+ add \reg1, \reg1, #1
+ cmp \reg1, \reg0
+ ble 0b
+#endif
+ .endm
+
+ .macro REG_DISPLAY reg0, reg1, reg2
+ b 667f
+ 666:
+ .byte DISPLAY_0, DISPLAY_1, DISPLAY_2, DISPLAY_3
+ .byte DISPLAY_4, DISPLAY_5, DISPLAY_6, DISPLAY_7
+ .byte DISPLAY_8, DISPLAY_9, DISPLAY_A, DISPLAY_B
+ .byte DISPLAY_C, DISPLAY_D, DISPLAY_E, DISPLAY_F
+ 667:
+ ldr \reg0, =666b
+ add \reg0, \reg0, \reg2, lsr #4
+ ldrb \reg1, [\reg0]
+ ldr \reg0, =DISPLAY_LEFT
+ str \reg1, [\reg0]
+ ldr \reg0, =666b
+ and \reg2, \reg2, #0xf
+ add \reg0, \reg0, \reg2
+ ldrb \reg1, [\reg0]
+ ldr \reg0, =DISPLAY_RIGHT
+ str \reg1, [\reg0]
+
+ // delay
+ ldr \reg0, =0x7800000
+ mov \reg1, #0
+ 0:
+ add \reg1, \reg1, #1
+ cmp \reg1, \reg0
+ ble 0b
+ .endm
+#else
+static inline void HEX_DISPLAY(int lval, int rval)
+{
+ int i;
+ static unsigned char hchars[] = {
+ DISPLAY_0, DISPLAY_1, DISPLAY_2, DISPLAY_3,
+ DISPLAY_4, DISPLAY_5, DISPLAY_6, DISPLAY_7,
+ DISPLAY_8, DISPLAY_9, DISPLAY_A, DISPLAY_B,
+ DISPLAY_C, DISPLAY_D, DISPLAY_E, DISPLAY_F
+ };
+ volatile unsigned int *ldisp = (volatile unsigned int *)DISPLAY_LEFT;
+ volatile unsigned int *rdisp = (volatile unsigned int *)DISPLAY_RIGHT;
+
+ *ldisp = hchars[lval & 0xf];
+ *rdisp = hchars[rval & 0xf];
+
+ for (i = 0; i < 0x10000000; i++);
+}
+#endif // __ASSEMBLER__
+
+// ------------------------------------------------------------------------
+
+#endif // CYGONCE_HAL_ARM_XSCALE_IQ80321_IQ80321_H
+// EOF iq80321.h
diff --git a/ecos/packages/hal/arm/xscale/iq80321/current/include/pkgconf/mlt_arm_xscale_iq80321_ram.h b/ecos/packages/hal/arm/xscale/iq80321/current/include/pkgconf/mlt_arm_xscale_iq80321_ram.h
new file mode 100644
index 0000000..1d5483b
--- /dev/null
+++ b/ecos/packages/hal/arm/xscale/iq80321/current/include/pkgconf/mlt_arm_xscale_iq80321_ram.h
@@ -0,0 +1,18 @@
+// eCos memory layout - Fri Oct 20 05:56:24 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 (0)
+#define CYGMEM_REGION_ram_SIZE (0x20000000)
+#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 (0x1fe00000 - (size_t) CYG_LABEL_NAME (__heap1))
+
diff --git a/ecos/packages/hal/arm/xscale/iq80321/current/include/pkgconf/mlt_arm_xscale_iq80321_ram.ldi b/ecos/packages/hal/arm/xscale/iq80321/current/include/pkgconf/mlt_arm_xscale_iq80321_ram.ldi
new file mode 100644
index 0000000..8f73eee
--- /dev/null
+++ b/ecos/packages/hal/arm/xscale/iq80321/current/include/pkgconf/mlt_arm_xscale_iq80321_ram.ldi
@@ -0,0 +1,27 @@
+// eCos memory layout - Fri Oct 20 05:56:24 2000
+
+// This is a generated file - do not edit
+
+#include <cyg/infra/cyg_type.inc>
+
+MEMORY
+{
+ ram : ORIGIN = 0, LENGTH = 0x20000000
+}
+
+SECTIONS
+{
+ SECTIONS_BEGIN
+ SECTION_fixed_vectors (ram, 0x20, LMA_EQ_VMA)
+ SECTION_rom_vectors (ram, 0x20000, 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)
+ CYG_LABEL_DEFN(__heap1) = ALIGN (0x8);
+ SECTIONS_END
+}
diff --git a/ecos/packages/hal/arm/xscale/iq80321/current/include/pkgconf/mlt_arm_xscale_iq80321_ram.mlt b/ecos/packages/hal/arm/xscale/iq80321/current/include/pkgconf/mlt_arm_xscale_iq80321_ram.mlt
new file mode 100644
index 0000000..f9577bd
--- /dev/null
+++ b/ecos/packages/hal/arm/xscale/iq80321/current/include/pkgconf/mlt_arm_xscale_iq80321_ram.mlt
@@ -0,0 +1,14 @@
+version 0
+region ram 0 20000000 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 20000 20000 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 1 0 1 heap1 heap1 !
+section heap1 0 8 0 0 0 0 0 0 !
+
diff --git a/ecos/packages/hal/arm/xscale/iq80321/current/include/pkgconf/mlt_arm_xscale_iq80321_ram_altmap.h b/ecos/packages/hal/arm/xscale/iq80321/current/include/pkgconf/mlt_arm_xscale_iq80321_ram_altmap.h
new file mode 100644
index 0000000..7f814cf
--- /dev/null
+++ b/ecos/packages/hal/arm/xscale/iq80321/current/include/pkgconf/mlt_arm_xscale_iq80321_ram_altmap.h
@@ -0,0 +1,19 @@
+// eCos memory layout - Fri Oct 20 05:56:24 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 (0xA0000000)
+#define CYGMEM_REGION_ram_SIZE (0x20000000)
+#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 (0xbfe00000 - (size_t) CYG_LABEL_NAME (__heap1))
+
+
diff --git a/ecos/packages/hal/arm/xscale/iq80321/current/include/pkgconf/mlt_arm_xscale_iq80321_ram_altmap.ldi b/ecos/packages/hal/arm/xscale/iq80321/current/include/pkgconf/mlt_arm_xscale_iq80321_ram_altmap.ldi
new file mode 100644
index 0000000..60a6ae0
--- /dev/null
+++ b/ecos/packages/hal/arm/xscale/iq80321/current/include/pkgconf/mlt_arm_xscale_iq80321_ram_altmap.ldi
@@ -0,0 +1,28 @@
+// eCos memory layout - Fri Oct 20 05:56:24 2000
+
+// This is a generated file - do not edit
+
+#include <cyg/infra/cyg_type.inc>
+
+MEMORY
+{
+ ramalias : ORIGIN = 0x0, LENGTH = 0x100000
+ ram : ORIGIN = 0xA0000000, LENGTH = 0x20000000
+}
+
+SECTIONS
+{
+ SECTIONS_BEGIN
+ SECTION_fixed_vectors (ramalias, 0x20, LMA_EQ_VMA)
+ SECTION_rom_vectors (ram, 0xA0020000, 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)
+ CYG_LABEL_DEFN(__heap1) = ALIGN (0x8);
+ SECTIONS_END
+}
diff --git a/ecos/packages/hal/arm/xscale/iq80321/current/include/pkgconf/mlt_arm_xscale_iq80321_rom.h b/ecos/packages/hal/arm/xscale/iq80321/current/include/pkgconf/mlt_arm_xscale_iq80321_rom.h
new file mode 100644
index 0000000..6b4ee7d
--- /dev/null
+++ b/ecos/packages/hal/arm/xscale/iq80321/current/include/pkgconf/mlt_arm_xscale_iq80321_rom.h
@@ -0,0 +1,20 @@
+// eCos memory layout - Tue Jul 02 10:03:04 2002
+
+// This is a generated file - do not edit
+
+#ifndef __ASSEMBLER__
+#include <cyg/infra/cyg_type.h>
+#include <stddef.h>
+
+#endif
+#define CYGMEM_REGION_ram (0)
+#define CYGMEM_REGION_ram_SIZE (0x20000000)
+#define CYGMEM_REGION_ram_ATTR (CYGMEM_REGION_ATTR_R | CYGMEM_REGION_ATTR_W)
+#define CYGMEM_REGION_rom (0xf0000000)
+#define CYGMEM_REGION_rom_SIZE (0x40000)
+#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 (0x20000000 - (size_t) CYG_LABEL_NAME (__heap1))
diff --git a/ecos/packages/hal/arm/xscale/iq80321/current/include/pkgconf/mlt_arm_xscale_iq80321_rom.ldi b/ecos/packages/hal/arm/xscale/iq80321/current/include/pkgconf/mlt_arm_xscale_iq80321_rom.ldi
new file mode 100644
index 0000000..81970a5
--- /dev/null
+++ b/ecos/packages/hal/arm/xscale/iq80321/current/include/pkgconf/mlt_arm_xscale_iq80321_rom.ldi
@@ -0,0 +1,29 @@
+// eCos memory layout - Tue Jul 02 10:03:04 2002
+
+// This is a generated file - do not edit
+
+#include <cyg/infra/cyg_type.inc>
+
+MEMORY
+{
+ ram : ORIGIN = 0, LENGTH = 0x20000000
+ rom : ORIGIN = 0xf0000000, LENGTH = 0x40000
+}
+
+SECTIONS
+{
+ SECTIONS_BEGIN
+ SECTION_rom_vectors (rom, 0xf0000000, 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_mmu_tables (rom, ALIGN (0x4000), LMA_EQ_VMA)
+ SECTION_fixed_vectors (ram, 0x20, LMA_EQ_VMA)
+ SECTION_data (ram, 0x8000, FOLLOWING (.mmu_tables))
+ SECTION_bss (ram, ALIGN (0x4), LMA_EQ_VMA)
+ CYG_LABEL_DEFN(__heap1) = ALIGN (0x8);
+ SECTIONS_END
+}
diff --git a/ecos/packages/hal/arm/xscale/iq80321/current/include/pkgconf/mlt_arm_xscale_iq80321_rom.mlt b/ecos/packages/hal/arm/xscale/iq80321/current/include/pkgconf/mlt_arm_xscale_iq80321_rom.mlt
new file mode 100644
index 0000000..f24db51
--- /dev/null
+++ b/ecos/packages/hal/arm/xscale/iq80321/current/include/pkgconf/mlt_arm_xscale_iq80321_rom.mlt
@@ -0,0 +1,15 @@
+version 0
+region ram 0 20000000 0 !
+region rom f0000000 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 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 f0000000 f0000000 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 mmu_tables mmu_tables !
+section mmu_tables 0 4000 0 1 0 0 0 1 data !
diff --git a/ecos/packages/hal/arm/xscale/iq80321/current/include/pkgconf/mlt_arm_xscale_iq80321_rom_altmap.h b/ecos/packages/hal/arm/xscale/iq80321/current/include/pkgconf/mlt_arm_xscale_iq80321_rom_altmap.h
new file mode 100644
index 0000000..d5a1c80
--- /dev/null
+++ b/ecos/packages/hal/arm/xscale/iq80321/current/include/pkgconf/mlt_arm_xscale_iq80321_rom_altmap.h
@@ -0,0 +1,20 @@
+// eCos memory layout - Fri Oct 20 05:56:24 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 (0xA0000000)
+#define CYGMEM_REGION_ram_SIZE (0x20000000)
+#define CYGMEM_REGION_ram_ATTR (CYGMEM_REGION_ATTR_R | CYGMEM_REGION_ATTR_W)
+#define CYGMEM_REGION_rom (0xF0000000)
+#define CYGMEM_REGION_rom_SIZE (0x40000)
+#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 (0xbfe00000 - (size_t) CYG_LABEL_NAME (__heap1))
diff --git a/ecos/packages/hal/arm/xscale/iq80321/current/include/pkgconf/mlt_arm_xscale_iq80321_rom_altmap.ldi b/ecos/packages/hal/arm/xscale/iq80321/current/include/pkgconf/mlt_arm_xscale_iq80321_rom_altmap.ldi
new file mode 100644
index 0000000..d1fbe3a
--- /dev/null
+++ b/ecos/packages/hal/arm/xscale/iq80321/current/include/pkgconf/mlt_arm_xscale_iq80321_rom_altmap.ldi
@@ -0,0 +1,31 @@
+// eCos memory layout - Fri Oct 20 05:56:24 2000
+
+// This is a generated file - do not edit
+
+#include <cyg/infra/cyg_type.inc>
+#include <pkgconf/system.h>
+
+MEMORY
+{
+ ramalias : ORIGIN = 0x0, LENGTH = 0x100000
+ ram : ORIGIN = 0xA0000000, LENGTH = 0x20000000
+ rom : ORIGIN = 0xF0000000, LENGTH = 0x40000
+}
+
+SECTIONS
+{
+ SECTIONS_BEGIN
+ SECTION_rom_vectors (rom, 0xF0000000, 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_mmu_tables (rom, ALIGN (0x4000), LMA_EQ_VMA)
+ SECTION_gcc_except_table (rom, ALIGN (0x4), LMA_EQ_VMA)
+ SECTION_fixed_vectors (ramalias, 0x20, LMA_EQ_VMA)
+ SECTION_data (ram, 0xA0008000, FOLLOWING (.gcc_except_table))
+ SECTION_bss (ram, ALIGN (0x4), LMA_EQ_VMA)
+ CYG_LABEL_DEFN(__heap1) = ALIGN (0x8);
+ SECTIONS_END
+}
diff --git a/ecos/packages/hal/arm/xscale/iq80321/current/include/plf_io.h b/ecos/packages/hal/arm/xscale/iq80321/current/include/plf_io.h
new file mode 100644
index 0000000..3bb9336
--- /dev/null
+++ b/ecos/packages/hal/arm/xscale/iq80321/current/include/plf_io.h
@@ -0,0 +1,180 @@
+#ifndef CYGONCE_PLF_IO_H
+#define CYGONCE_PLF_IO_H
+
+//=============================================================================
+//
+// plf_io.h
+//
+// Platform specific IO support
+//
+//=============================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): msalter
+// Contributors: msalter
+// Date: 2002-01-10
+// Purpose: Intel IQ80321 PCI IO support macros
+// Description:
+// Usage: #include <cyg/hal/plf_io.h>
+//
+//####DESCRIPTIONEND####
+//
+//=============================================================================
+
+#include <pkgconf/hal.h>
+#include <cyg/hal/hal_io.h> // IO macros
+#include <cyg/hal/iq80321.h>
+#include CYGBLD_HAL_PLF_INTS_H
+
+// Initialize the PCI bus.
+externC void cyg_hal_plf_pci_init(void);
+#define HAL_PCI_INIT() cyg_hal_plf_pci_init()
+
+//-----------------------------------------------------------------------------
+// Resources
+
+#define _PCI_MEM_BASE 0x80000000
+#define _PCI_MEM_DAC_BASE 0x00000000
+#define _PCI_IO_BASE 0x90000000
+#define _PCI_MEM_LIMIT 0x83ffffff
+#define _PCI_IO_LIMIT 0x9000ffff
+
+extern cyg_uint32 hal_pci_alloc_base_memory;
+extern cyg_uint32 hal_pci_alloc_base_io;
+
+extern cyg_uint32 hal_pci_physical_memory_base;
+extern cyg_uint32 hal_pci_physical_io_base;
+
+extern cyg_uint32 hal_pci_inbound_window_base;
+extern cyg_uint32 hal_pci_inbound_window_mask;
+
+#define HAL_PCI_PHYSICAL_MEMORY_BASE hal_pci_physical_memory_base
+#define HAL_PCI_PHYSICAL_IO_BASE hal_pci_physical_io_base
+
+// Map PCI device resources starting from these addresses in PCI space.
+#define HAL_PCI_ALLOC_BASE_MEMORY hal_pci_alloc_base_memory
+#define HAL_PCI_ALLOC_BASE_IO hal_pci_alloc_base_io
+
+#ifdef CYGSEM_HAL_ARM_IQ80321_FAB_C
+#define __INTA_ROUTING CYGNUM_HAL_INTERRUPT_XINT0
+#define __INTB_ROUTING CYGNUM_HAL_INTERRUPT_XINT1
+
+#define __NIC_PUB 3
+#define __NIC_PRIV 5
+
+#define __SLOT_PUB 4
+#define __SLOT_PRIV 6
+#else
+#define __INTA_ROUTING CYGNUM_HAL_INTERRUPT_XINT2
+#define __INTB_ROUTING CYGNUM_HAL_INTERRUPT_XINT3
+
+#define __NIC_PUB 8
+#define __NIC_PRIV 4
+
+#define __SLOT_PUB 2
+#define __SLOT_PRIV 6
+#endif
+
+// Translate the PCI interrupt requested by the device (INTA#, INTB#,
+// INTC# or INTD#) to the associated CPU interrupt (i.e., HAL vector).
+#define HAL_PCI_TRANSLATE_INTERRUPT( __bus, __devfn, __vec, __valid) \
+ CYG_MACRO_START \
+ cyg_uint32 __dev = CYG_PCI_DEV_GET_DEV(__devfn); \
+ cyg_uint32 __fn = CYG_PCI_DEV_GET_FN(__devfn); \
+ cyg_uint32 __xbus = ((*ATU_PCIXSR >> 8) & 0xff); \
+ if (__xbus == 0xff) __xbus = 0; \
+ __valid = false; \
+ if (__fn==0 && (__dev==__NIC_PUB || __dev==__NIC_PRIV) && __bus==__xbus) { \
+ __vec = CYGNUM_HAL_INTERRUPT_ETHERNET; \
+ __valid = true; \
+ } else { \
+ cyg_uint8 __req; \
+ HAL_PCI_CFG_READ_UINT8(__bus, __devfn, CYG_PCI_CFG_INT_PIN, __req); \
+ switch(__req) { \
+ case 1: /* INTA */ \
+ __vec=CYGNUM_HAL_INTERRUPT_XINT0; __valid=true; break; \
+ case 2: /* INTB */ \
+ __vec=CYGNUM_HAL_INTERRUPT_XINT1; __valid=true; break; \
+ } \
+ } \
+ CYG_MACRO_END
+
+// SDRAM is aliased as uncached memory for drivers.
+#ifdef CYG_HAL_MEMORY_MAP_NORMAL
+#define CYGARC_UNCACHED_ADDRESS(_x_) \
+ (((((unsigned long)(_x_)) >> 29)==0x0) ? (((unsigned long)(_x_))|0xC0000000) : (_x_))
+#else
+#define CYGARC_UNCACHED_ADDRESS(_x_) \
+ (((((unsigned long)(_x_)) >> 29)==0x5) ? (((unsigned long)(_x_))+0x20000000) : (_x_))
+#endif
+
+#define CYGARC_VIRT_TO_BUS(_x_) \
+ (((unsigned long)(_x_) & 0x1fffffff) | hal_pci_inbound_window_base)
+#define CYGARC_BUS_TO_VIRT(_x_) \
+ (((unsigned long)(_x_) & hal_pci_inbound_window_mask) | 0xC0000000)
+
+
+static inline unsigned cygarc_physical_address(unsigned va)
+{
+ unsigned *ram_mmutab = (unsigned *)(SDRAM_BASE | 0x4000);
+ unsigned pte;
+
+ pte = ram_mmutab[va >> 20];
+
+ return (pte & 0xfff00000) | (va & 0xfffff);
+}
+
+#define CYGARC_PHYSICAL_ADDRESS(_x_) cygarc_physical_address(_x_)
+
+#ifdef CYG_HAL_MEMORY_MAP_NORMAL
+static inline unsigned cygarc_virtual_address(unsigned pa)
+{
+ if (0xa0000000 <= pa && pa < 0xc0000000)
+ return pa - 0xa0000000;
+ if (pa < 0x90100000)
+ return pa + 0x20000000;
+ return pa;
+}
+
+#define CYGARC_VIRTUAL_ADDRESS(_x_) cygarc_virtual_address(_x_)
+#else
+#define CYGARC_VIRTUAL_ADDRESS(_x_) (_x_)
+#endif
+
+
+
+//-----------------------------------------------------------------------------
+// end of plf_io.h
+#endif // CYGONCE_PLF_IO_H
diff --git a/ecos/packages/hal/arm/xscale/iq80321/current/misc/redboot_RAM.ecm b/ecos/packages/hal/arm/xscale/iq80321/current/misc/redboot_RAM.ecm
new file mode 100644
index 0000000..f32d541
--- /dev/null
+++ b/ecos/packages/hal/arm/xscale/iq80321/current/misc/redboot_RAM.ecm
@@ -0,0 +1,123 @@
+cdl_savefile_version 1;
+cdl_savefile_command cdl_savefile_version {};
+cdl_savefile_command cdl_savefile_command {};
+cdl_savefile_command cdl_configuration { description hardware template package };
+cdl_savefile_command cdl_package { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_component { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_option { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_interface { value_source user_value wizard_value inferred_value };
+
+cdl_configuration eCos {
+ description "" ;
+ hardware iq80321 ;
+ template redboot ;
+ package -hardware CYGPKG_HAL_ARM current ;
+ package -hardware CYGPKG_HAL_ARM_XSCALE_CORE current ;
+ package -hardware CYGPKG_HAL_ARM_XSCALE_VERDE current ;
+ package -hardware CYGPKG_HAL_ARM_XSCALE_IQ80321 current ;
+ package -hardware CYGPKG_IO_PCI current ;
+ package -hardware CYGPKG_IO_SERIAL_GENERIC_16X5X current ;
+ package -hardware CYGPKG_IO_SERIAL_ARM_IQ80321 current ;
+ package -hardware CYGPKG_DEVS_ETH_INTEL_I82544 current ;
+ package -hardware CYGPKG_DEVS_FLASH_STRATA current ;
+ package -hardware CYGPKG_DEVS_FLASH_IQ80321 current ;
+ package -hardware CYGPKG_DEVS_ETH_ARM_IQ80321 current ;
+ package -template CYGPKG_HAL current ;
+ package -template CYGPKG_INFRA current ;
+ package -template CYGPKG_REDBOOT current ;
+ package -template CYGPKG_ISOINFRA current ;
+ package -template CYGPKG_LIBC_STRING current ;
+ package CYGPKG_NS_DNS current ;
+ package CYGPKG_IO_FLASH current ;
+ package CYGPKG_IO_ETH_DRIVERS current ;
+ package CYGPKG_MEMALLOC current ;
+ package CYGPKG_COMPRESS_ZLIB current ;
+};
+
+cdl_component CYG_HAL_STARTUP {
+ user_value RAM
+};
+
+cdl_option CYGBLD_BUILD_GDB_STUBS {
+ user_value 0
+};
+
+cdl_option CYGFUN_LIBC_STRING_BSD_FUNCS {
+ inferred_value 0
+};
+
+cdl_option CYGNUM_HAL_COMMON_INTERRUPTS_STACK_SIZE {
+ user_value 4096
+};
+
+cdl_option CYGDBG_HAL_COMMON_INTERRUPTS_SAVE_MINIMUM_CONTEXT {
+ user_value 0
+};
+
+cdl_option CYGDBG_HAL_COMMON_CONTEXT_SAVE_MINIMUM {
+ inferred_value 0
+};
+
+cdl_option CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS {
+ inferred_value 1
+};
+
+cdl_option CYGDBG_HAL_DEBUG_GDB_CTRLC_SUPPORT {
+ inferred_value 0
+};
+
+cdl_option CYGSEM_HAL_USE_ROM_MONITOR {
+ inferred_value 0 0
+};
+
+cdl_component CYGBLD_BUILD_REDBOOT {
+ user_value 1
+};
+
+cdl_option CYGBLD_REDBOOT_MIN_IMAGE_SIZE {
+ inferred_value 0x40000
+};
+
+cdl_component CYGSEM_REDBOOT_FLASH_CONFIG {
+ user_value 1
+};
+
+cdl_component CYGSEM_REDBOOT_BSP_SYSCALLS {
+ inferred_value 1
+};
+
+cdl_option CYGHWR_REDBOOT_ARM_LINUX_EXEC_ADDRESS_DEFAULT {
+ inferred_value 0xA0008000
+};
+
+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_BSD_FUNCS_HEADER {
+ inferred_value 1 <cyg/libc/string/bsdstring.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_DNS_HEADER {
+ inferred_value 1 <cyg/ns/dns/dns.h>
+};
+
+cdl_option CYGPKG_NS_DNS_BUILD {
+ inferred_value 0
+};
+
+cdl_option CYGPKG_HAL_GDB_FILEIO {
+ user_value 1
+};
diff --git a/ecos/packages/hal/arm/xscale/iq80321/current/misc/redboot_RAM_ALTMAP.ecm b/ecos/packages/hal/arm/xscale/iq80321/current/misc/redboot_RAM_ALTMAP.ecm
new file mode 100644
index 0000000..bb90b19
--- /dev/null
+++ b/ecos/packages/hal/arm/xscale/iq80321/current/misc/redboot_RAM_ALTMAP.ecm
@@ -0,0 +1,70 @@
+cdl_savefile_version 1;
+cdl_savefile_command cdl_savefile_version {};
+cdl_savefile_command cdl_savefile_command {};
+cdl_savefile_command cdl_configuration { description hardware template package };
+cdl_savefile_command cdl_package { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_component { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_option { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_interface { value_source user_value wizard_value inferred_value };
+
+cdl_configuration eCos {
+ description "" ;
+ hardware iq80321 ;
+ template redboot ;
+ package -hardware CYGPKG_HAL_ARM current ;
+ package -hardware CYGPKG_HAL_ARM_XSCALE_CORE current ;
+ package -hardware CYGPKG_HAL_ARM_XSCALE_VERDE current ;
+ package -hardware CYGPKG_HAL_ARM_XSCALE_IQ80321 current ;
+ package -template CYGPKG_HAL current ;
+ package -template CYGPKG_INFRA current ;
+ package -template CYGPKG_REDBOOT current ;
+ package CYGPKG_IO_FLASH current ;
+ package -hardware CYGPKG_IO_PCI current ;
+ package -hardware CYGPKG_DEVS_ETH_INTEL_I82544 current ;
+ package -hardware CYGPKG_DEVS_ETH_ARM_IQ80321 current ;
+ package CYGPKG_IO_ETH_DRIVERS current ;
+};
+
+cdl_option CYGBLD_BUILD_GDB_STUBS {
+ user_value 0
+};
+
+cdl_option CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS {
+ inferred_value 1
+};
+
+cdl_option CYGDBG_HAL_DEBUG_GDB_CTRLC_SUPPORT {
+ inferred_value 0
+};
+
+cdl_option CYGSEM_HAL_USE_ROM_MONITOR {
+ inferred_value 0 0
+};
+
+cdl_option CYGSEM_REDBOOT_BSP_SYSCALLS {
+ inferred_value 1
+};
+
+cdl_option CYGBLD_BUILD_REDBOOT {
+ user_value 1
+};
+
+cdl_component CYG_HAL_STARTUP {
+ user_value RAM
+};
+
+cdl_component CYGSEM_REDBOOT_FLASH_CONFIG {
+ user_value 1
+};
+
+cdl_option CYGBLD_REDBOOT_MIN_IMAGE_SIZE {
+ inferred_value 0x40000
+};
+
+cdl_component CYG_HAL_MEMORY_MAP {
+ user_value ALTERNATE
+};
+
+cdl_option CYGPKG_HAL_GDB_FILEIO {
+ user_value 1
+};
diff --git a/ecos/packages/hal/arm/xscale/iq80321/current/misc/redboot_ROM.ecm b/ecos/packages/hal/arm/xscale/iq80321/current/misc/redboot_ROM.ecm
new file mode 100644
index 0000000..eb4346e
--- /dev/null
+++ b/ecos/packages/hal/arm/xscale/iq80321/current/misc/redboot_ROM.ecm
@@ -0,0 +1,127 @@
+cdl_savefile_version 1;
+cdl_savefile_command cdl_savefile_version {};
+cdl_savefile_command cdl_savefile_command {};
+cdl_savefile_command cdl_configuration { description hardware template package };
+cdl_savefile_command cdl_package { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_component { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_option { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_interface { value_source user_value wizard_value inferred_value };
+
+cdl_configuration eCos {
+ description "" ;
+ hardware iq80321 ;
+ template redboot ;
+ package -hardware CYGPKG_HAL_ARM current ;
+ package -hardware CYGPKG_HAL_ARM_XSCALE_CORE current ;
+ package -hardware CYGPKG_HAL_ARM_XSCALE_VERDE current ;
+ package -hardware CYGPKG_HAL_ARM_XSCALE_IQ80321 current ;
+ package -hardware CYGPKG_IO_PCI current ;
+ package -hardware CYGPKG_IO_SERIAL_GENERIC_16X5X current ;
+ package -hardware CYGPKG_IO_SERIAL_ARM_IQ80321 current ;
+ package -hardware CYGPKG_DEVS_ETH_INTEL_I82544 current ;
+ package -hardware CYGPKG_DEVS_FLASH_STRATA current ;
+ package -hardware CYGPKG_DEVS_FLASH_IQ80321 current ;
+ package -hardware CYGPKG_DEVS_ETH_ARM_IQ80321 current ;
+ package -template CYGPKG_HAL current ;
+ package -template CYGPKG_INFRA current ;
+ package -template CYGPKG_REDBOOT current ;
+ package -template CYGPKG_ISOINFRA current ;
+ package -template CYGPKG_LIBC_STRING current ;
+ package CYGPKG_NS_DNS current ;
+ package CYGPKG_IO_FLASH current ;
+ package CYGPKG_IO_ETH_DRIVERS current ;
+ package CYGPKG_MEMALLOC current ;
+ package CYGPKG_COMPRESS_ZLIB current ;
+};
+
+cdl_component CYG_HAL_STARTUP {
+ user_value ROM
+};
+
+cdl_option CYGBLD_BUILD_GDB_STUBS {
+ user_value 0
+};
+
+cdl_option CYGFUN_LIBC_STRING_BSD_FUNCS {
+ inferred_value 0
+};
+
+cdl_option CYGNUM_HAL_COMMON_INTERRUPTS_STACK_SIZE {
+ user_value 4096
+};
+
+cdl_option CYGDBG_HAL_COMMON_INTERRUPTS_SAVE_MINIMUM_CONTEXT {
+ user_value 0
+};
+
+cdl_option CYGDBG_HAL_COMMON_CONTEXT_SAVE_MINIMUM {
+ inferred_value 0
+};
+
+cdl_option CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS {
+ inferred_value 1
+};
+
+cdl_option CYGDBG_HAL_DEBUG_GDB_CTRLC_SUPPORT {
+ inferred_value 0
+};
+
+cdl_option CYGSEM_HAL_ROM_MONITOR {
+ user_value 1
+};
+
+cdl_option CYGSEM_HAL_USE_ROM_MONITOR {
+ inferred_value 0 0
+};
+
+cdl_component CYGBLD_BUILD_REDBOOT {
+ user_value 1
+};
+
+cdl_option CYGBLD_REDBOOT_MIN_IMAGE_SIZE {
+ inferred_value 0x40000
+};
+
+cdl_component CYGSEM_REDBOOT_FLASH_CONFIG {
+ user_value 1
+};
+
+cdl_component CYGSEM_REDBOOT_BSP_SYSCALLS {
+ inferred_value 1
+};
+
+cdl_option CYGHWR_REDBOOT_ARM_LINUX_EXEC_ADDRESS_DEFAULT {
+ inferred_value 0xA0008000
+};
+
+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_BSD_FUNCS_HEADER {
+ inferred_value 1 <cyg/libc/string/bsdstring.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_DNS_HEADER {
+ inferred_value 1 <cyg/ns/dns/dns.h>
+};
+
+cdl_option CYGPKG_NS_DNS_BUILD {
+ inferred_value 0
+};
+
+cdl_option CYGPKG_HAL_GDB_FILEIO {
+ user_value 1
+};
diff --git a/ecos/packages/hal/arm/xscale/iq80321/current/misc/redboot_ROM_ALTMAP.ecm b/ecos/packages/hal/arm/xscale/iq80321/current/misc/redboot_ROM_ALTMAP.ecm
new file mode 100644
index 0000000..82fbde0
--- /dev/null
+++ b/ecos/packages/hal/arm/xscale/iq80321/current/misc/redboot_ROM_ALTMAP.ecm
@@ -0,0 +1,74 @@
+cdl_savefile_version 1;
+cdl_savefile_command cdl_savefile_version {};
+cdl_savefile_command cdl_savefile_command {};
+cdl_savefile_command cdl_configuration { description hardware template package };
+cdl_savefile_command cdl_package { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_component { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_option { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_interface { value_source user_value wizard_value inferred_value };
+
+cdl_configuration eCos {
+ description "" ;
+ hardware iq80321 ;
+ template redboot ;
+ package -hardware CYGPKG_HAL_ARM current ;
+ package -hardware CYGPKG_HAL_ARM_XSCALE_CORE current ;
+ package -hardware CYGPKG_HAL_ARM_XSCALE_VERDE current ;
+ package -hardware CYGPKG_HAL_ARM_XSCALE_IQ80321 current ;
+ package -template CYGPKG_HAL current ;
+ package -template CYGPKG_INFRA current ;
+ package -template CYGPKG_REDBOOT current ;
+ package CYGPKG_IO_FLASH current ;
+ package -hardware CYGPKG_IO_PCI current ;
+ package -hardware CYGPKG_DEVS_ETH_INTEL_I82544 current ;
+ package -hardware CYGPKG_DEVS_ETH_ARM_IQ80321 current ;
+ package CYGPKG_IO_ETH_DRIVERS current ;
+};
+
+cdl_option CYGBLD_BUILD_GDB_STUBS {
+ user_value 0
+};
+
+cdl_option CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS {
+ inferred_value 1
+};
+
+cdl_option CYGDBG_HAL_DEBUG_GDB_CTRLC_SUPPORT {
+ inferred_value 0
+};
+
+cdl_option CYGSEM_HAL_USE_ROM_MONITOR {
+ inferred_value 0 0
+};
+
+cdl_option CYGSEM_REDBOOT_BSP_SYSCALLS {
+ inferred_value 1
+};
+
+cdl_option CYGBLD_BUILD_REDBOOT {
+ user_value 1
+};
+
+cdl_component CYG_HAL_STARTUP {
+ user_value ROM
+};
+
+cdl_option CYGSEM_HAL_ROM_MONITOR {
+ user_value 1
+};
+
+cdl_component CYGSEM_REDBOOT_FLASH_CONFIG {
+ user_value 1
+};
+
+cdl_option CYGBLD_REDBOOT_MIN_IMAGE_SIZE {
+ inferred_value 0x40000
+};
+
+cdl_component CYG_HAL_MEMORY_MAP {
+ user_value ALTERNATE
+};
+
+cdl_option CYGPKG_HAL_GDB_FILEIO {
+ user_value 1
+};
diff --git a/ecos/packages/hal/arm/xscale/iq80321/current/src/diag/battery.c b/ecos/packages/hal/arm/xscale/iq80321/current/src/diag/battery.c
new file mode 100644
index 0000000..a17b545
--- /dev/null
+++ b/ecos/packages/hal/arm/xscale/iq80321/current/src/diag/battery.c
@@ -0,0 +1,171 @@
+//=============================================================================
+//
+// battery.c
+//
+//=============================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): Scott Coulter, Jeff Frazier, Eric Breeden
+// Contributors: Mark Salter
+// Date: 2001-01-25
+// Purpose:
+// Description:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================*/
+
+#include <redboot.h>
+#include <cyg/hal/hal_io.h>
+#include "test_menu.h"
+
+extern void diag_wait(void);
+
+#define TEST_PATTERN 0x55555555
+
+// test battery status
+void
+battery_status(MENU_ARG arg)
+{
+ unsigned short status;
+
+ // read battery status port
+ status = *IQ80321_BATTERY_STATUS;
+
+ // examine bit b0 BATT_PRES#
+ if (status & IQ80321_BATTERY_NOT_PRESENT) {
+ diag_printf("No battery installed.\n");
+ diag_wait();
+ return;
+ }
+ diag_printf("A battery is installed.\n");
+
+ if (status & IQ80321_BATTERY_CHARGE)
+ diag_printf("Battery is fully charged.\n");
+ else
+ diag_printf("Battery is charging.\n");
+
+ if (status & IQ80321_BATTERY_DISCHARGE)
+ diag_printf("Battery is fully discharged.\n");
+ else
+ diag_printf("Battery voltage measures within normal operating range.\n");
+
+ if (status & IQ80321_BATTERY_ENABLE)
+ diag_printf("Battery Backup is enabled.\n");
+ else
+ diag_printf("Battery Backup is disabled.\n");
+
+ diag_wait();
+}
+
+
+#ifdef CYGSEM_HAL_ARM_IQ80321_BATTERY_TEST
+// Data to be written to address and read after the board has
+// been powered off and powered back on
+
+static void
+battery_test_write (MENU_ARG arg)
+{
+ *IQ80321_BATTERY_STATUS |= IQ80321_BATTERY_ENABLE;
+ if (*IQ80321_BATTERY_STATUS & IQ80321_BATTERY_ENABLE)
+ diag_printf("The battery backup has now been enabled.\n");
+ else
+ diag_printf("Unable to enable battery backup.\n");
+
+ *(volatile unsigned *)SDRAM_BATTERY_TEST_ADDR = TEST_PATTERN;
+
+ diag_printf("The value '%p' is now written to DRAM at address %p.\n",
+ TEST_PATTERN, SDRAM_BATTERY_TEST_ADDR);
+ diag_printf("\nYou may now power the board off, wait 60 seconds and power it back on.\n");
+ diag_printf("Then come back into the battery test menu and check data in DRAM.\n");
+ diag_wait();
+}
+
+
+static void
+battery_test_read (MENU_ARG arg)
+{
+ cyg_uint32 value;
+
+ *IQ80321_BATTERY_STATUS &= ~IQ80321_BATTERY_ENABLE;
+ if (*IQ80321_BATTERY_STATUS & IQ80321_BATTERY_ENABLE)
+ diag_printf("Unable to disable battery backup.\n");
+ else
+ diag_printf("The battery backup has now been disabled.\n");
+
+ value = *(volatile unsigned *)SDRAM_BATTERY_TEST_ADDR;
+
+ diag_printf ("Value written at address %p: %p\n",
+ SDRAM_BATTERY_TEST_ADDR, TEST_PATTERN);
+ diag_printf ("Value read: %p\n", value);
+
+ if (value == TEST_PATTERN)
+ diag_printf ("\nThe battery test is a success !");
+ else {
+ diag_printf ("\n****************************\n");
+ diag_printf ("* The battery test failed. *\n");
+ diag_printf ("****************************\n");
+ }
+
+ diag_wait();
+}
+
+
+void
+battery_test_menu (MENU_ARG arg)
+{
+ // Test Menu Table
+ static MENU_ITEM batteryMenu[] = {
+ {"Write data to SDRAM", battery_test_write, NULL},
+ {"Check data from SDRAM", battery_test_read, NULL},
+ };
+
+ unsigned int num_menu_items = (sizeof (batteryMenu) / sizeof (batteryMenu[0]));
+
+ char *menu_title = "\n Battery Backup SDRAM memory test.";
+
+ diag_printf ("\n*************************************************************************\n");
+ diag_printf ("* This test will enable you to perform a battery test in 4 steps: *\n");
+ diag_printf ("* 1/ Select option 1 to write test pattern, *\n");
+ diag_printf ("* 2/ Power the board off and wait 60 seconds, *\n");
+ diag_printf ("* 3/ Power the board back on, *\n");
+ diag_printf ("* 4/ Select option 2 to read back and compare test pattern *\n");
+ diag_printf ("*************************************************************************");
+
+ menu (batteryMenu, num_menu_items, menu_title, MENU_OPT_NONE);
+ diag_printf ("\n");
+}
+#endif // CYGSEM_HAL_ARM_IQ80321_BATTERY_TEST
+
diff --git a/ecos/packages/hal/arm/xscale/iq80321/current/src/diag/diag.c b/ecos/packages/hal/arm/xscale/iq80321/current/src/diag/diag.c
new file mode 100644
index 0000000..c7e8916
--- /dev/null
+++ b/ecos/packages/hal/arm/xscale/iq80321/current/src/diag/diag.c
@@ -0,0 +1,90 @@
+//==========================================================================
+//
+// diag.c
+//
+// Additional RedBoot commands to run board diags.
+//
+//==========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//==========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): msalter
+// Contributors: msalter
+// Date: 2000-10-10
+// Purpose:
+// Description:
+//
+// This code is part of RedBoot (tm).
+//
+//####DESCRIPTIONEND####
+//
+//==========================================================================
+#include <redboot.h>
+#include <cyg/hal/hal_arch.h>
+#include <cyg/hal/hal_intr.h>
+#include <cyg/hal/hal_cache.h>
+#include CYGHWR_MEMORY_LAYOUT_H
+
+#include <cyg/hal/hal_tables.h>
+#include <cyg/hal/iq80321.h>
+
+
+int pci_config_cycle = 0; /* skip exception handling when performing pci config cycle */
+
+static void do_hdwr_diag(int argc, char *argv[]);
+
+RedBoot_cmd("diag",
+ "Run board diagnostics",
+ "",
+ do_hdwr_diag
+ );
+
+void hdwr_diag (void);
+
+void do_hdwr_diag(int arg, char *argv[])
+{
+ hal_virtual_comm_table_t* __chan;
+
+ // Turn off interrupts on debug channel.
+ // All others should already be disabled.
+ __chan = CYGACC_CALL_IF_DEBUG_PROCS();
+ if (__chan)
+ CYGACC_COMM_IF_CONTROL(*__chan, __COMMCTL_IRQ_DISABLE);
+
+ hdwr_diag();
+}
+
+
+
+
diff --git a/ecos/packages/hal/arm/xscale/iq80321/current/src/diag/i82544.c b/ecos/packages/hal/arm/xscale/iq80321/current/src/diag/i82544.c
new file mode 100644
index 0000000..5255251
--- /dev/null
+++ b/ecos/packages/hal/arm/xscale/iq80321/current/src/diag/i82544.c
@@ -0,0 +1,456 @@
+//=============================================================================
+//
+// i82544.c.c - Diagnostic support for i82544 NIC
+//
+//=============================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): Mark Salter
+// Contributors:
+// Date: 2002-01-25
+// Purpose:
+// Description:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================*/
+
+#include <redboot.h>
+#include <cyg/io/pci.h>
+#include "test_menu.h"
+
+extern int diag_ishex(char theChar);
+extern int diag_hex2dec(char hex);
+
+#define READMEM8( _reg_, _val_ ) ((CYG_BYTE)(_val_) = *((volatile CYG_BYTE *)(_reg_)))
+#define WRITEMEM8( _reg_, _val_ ) (*((volatile CYG_BYTE *)(_reg_)) = (CYG_BYTE)(_val_))
+#define READMEM16( _reg_, _val_ ) ((CYG_WORD16)(_val_) = *((volatile CYG_WORD16 *)(_reg_)))
+#define WRITEMEM16( _reg_, _val_ ) (*((volatile CYG_WORD16 *)(_reg_)) = (CYG_WORD16)(_val_))
+#define READMEM32( _reg_, _val_ ) ((CYG_WORD32)(_val_) = *((volatile CYG_WORD32 *)(_reg_)))
+#define WRITEMEM32( _reg_, _val_ ) (*((volatile CYG_WORD32 *)(_reg_)) = (CYG_WORD32)(_val_))
+#define READMEM64( _reg_, _val_ ) ((CYG_WORD64)(_val_) = *((volatile CYG_WORD64 *)(_reg_)))
+#define WRITEMEM64( _reg_, _val_ ) (*((volatile CYG_WORD64 *)(_reg_)) = (CYG_WORD64)(_val_))
+
+#define OUTL( _v_, _a_ ) WRITEMEM32( _a_, _v_ )
+
+static inline cyg_uint32 INL(cyg_uint32 io_address)
+ { cyg_uint32 _t_; READMEM32( io_address, _t_ ); return _t_; }
+
+// ------------------------------------------------------------------------
+//
+// Serial EEPROM access - much like the other Intel ethernet
+//
+
+#define EE_SHIFT_CLK 0x01 // EEPROM shift clock.
+#define EE_CS 0x02 // EEPROM chip select.
+#define EE_DATA_WRITE 0x04 // EEPROM chip data in.
+#define EE_DATA_READ 0x08 // EEPROM chip data out.
+#define EE_ENB (0x10|EE_CS)
+
+#define EE_DELAY() do { int z; for ( z = 0; z < 10000; z++ ) ; } while (0)
+
+#if 0
+# define EE_PRINTF diag_printf
+# define EE_STUFF "%4s | %4s | %4s | %4s [%08x]\n", \
+ (l & EE_SHIFT_CLK) ? "CLK" : "clk", \
+ (l & EE_CS) ? "eeCS" : "--", \
+ (l & EE_DATA_WRITE) ? "eeDW" : "---", \
+ (l & EE_DATA_READ) ? "eeDR" : "---", \
+ l & 0xfffff
+#else
+# define EE_PRINTF( foo )
+# define EE_STUFF
+#endif
+
+#define I82544_EECD 0x00010
+
+static inline void
+ee_select( int ioaddr )
+{
+ cyg_uint32 l;
+ l = EE_ENB;
+ OUTL( l, ioaddr + I82544_EECD );
+ EE_DELAY();
+ l |= EE_CS;
+ OUTL( l, ioaddr + I82544_EECD );
+ l = INL( ioaddr + I82544_EECD );
+ EE_PRINTF( "ee_select : " EE_STUFF );
+ EE_DELAY();
+}
+
+static inline void
+ee_deselect( int ioaddr )
+{
+ cyg_uint32 l;
+ l = EE_ENB;
+ OUTL( l, ioaddr + I82544_EECD );
+ EE_PRINTF( "ee_deselect 1 : " EE_STUFF );
+ EE_DELAY();
+ EE_DELAY();
+ EE_DELAY();
+ l = EE_ENB & ~EE_CS;
+ OUTL( l, ioaddr + I82544_EECD );
+ l = INL( ioaddr + I82544_EECD );
+ EE_PRINTF( "ee_deselect 2 : " EE_STUFF );
+ EE_DELAY();
+ EE_DELAY();
+ EE_DELAY();
+}
+
+static inline void
+ee_clock_up( int ioaddr )
+{
+ cyg_uint32 l;
+ l = INL( ioaddr + I82544_EECD );
+ l |= EE_SHIFT_CLK;
+ OUTL( l, ioaddr + I82544_EECD );
+ EE_DELAY();
+ l = INL( ioaddr + I82544_EECD );
+ EE_PRINTF( "ee_clock_up : " EE_STUFF );
+ EE_DELAY();
+}
+
+static inline void
+ee_clock_down( int ioaddr )
+{
+ cyg_uint32 l;
+ l = INL( ioaddr + I82544_EECD );
+ l &=~ EE_SHIFT_CLK;
+ OUTL( l, ioaddr + I82544_EECD );
+ EE_DELAY();
+ l = INL( ioaddr + I82544_EECD );
+ EE_PRINTF( "ee_clock_down : " EE_STUFF );
+ EE_DELAY();
+}
+
+static inline int
+ee_read_data_bit( int ioaddr )
+{
+ cyg_uint32 l;
+ l = INL( ioaddr + I82544_EECD );
+ EE_PRINTF( "ee_read_data : " EE_STUFF );
+ return EE_DATA_READ == (EE_DATA_READ & l);
+}
+
+static inline void
+ee_write_data_bit( int ioaddr, int databit )
+{
+ cyg_uint32 l;
+ l = INL( ioaddr + I82544_EECD );
+ if ( databit )
+ l |= EE_DATA_WRITE;
+ else
+ l &= ~EE_DATA_WRITE;
+ OUTL( l, ioaddr + I82544_EECD );
+ l = INL( ioaddr + I82544_EECD );
+ EE_PRINTF( "ee_write_data : " EE_STUFF );
+ EE_DELAY();
+}
+
+// Pass ioaddr around "invisibly"
+#define EE_SELECT() ee_select(ioaddr)
+#define EE_DESELECT() ee_deselect(ioaddr)
+#define EE_CLOCK_UP() ee_clock_up(ioaddr)
+#define EE_CLOCK_DOWN() ee_clock_down(ioaddr)
+#define EE_READ_DATA_BIT() ee_read_data_bit(ioaddr)
+#define EE_WRITE_DATA_BIT( _d_ ) ee_write_data_bit(ioaddr,(_d_))
+
+// ------------------------------------------------------------------------
+
+static int
+read_eeprom_word( cyg_uint32 ioaddr, int addrbits, int address )
+{
+ int i, tmp;
+
+ // Should already be not-selected, but anyway:
+ EE_SELECT();
+
+ // Shift the read command bits out.
+ for (i = 3; i >= 0; i--) { // Doc says to shift out a zero then:
+ tmp = (6 & (1 << i)) ? 1 : 0; // "6" is the "read" command.
+ EE_WRITE_DATA_BIT(tmp);
+ EE_CLOCK_UP();
+ EE_CLOCK_DOWN();
+ }
+
+ // Now clock out address
+ for ( i = addrbits - 1; i >= 0 ; i-- ) {
+ tmp = (address & (1<<i)) ? 1 : 0;
+ EE_WRITE_DATA_BIT(tmp);
+ EE_CLOCK_UP();
+ tmp = EE_READ_DATA_BIT();
+ EE_CLOCK_DOWN();
+
+// CYG_ASSERT( (0 == tmp) == (0 == i), "Looking for zero handshake bit" );
+ }
+
+ // read in the data
+ tmp = 0;
+ for (i = 15; i >= 0; i--) {
+ EE_CLOCK_UP();
+ if ( EE_READ_DATA_BIT() )
+ tmp |= (1<<i);
+ EE_CLOCK_DOWN();
+ }
+
+ // Terminate the EEPROM access.
+ EE_DESELECT();
+
+#ifdef DEBUG_EE
+// diag_printf( "eeprom address %4x: data %4x\n", address, tmp );
+#endif
+
+ return tmp;
+}
+
+// ------------------------------------------------------------------------
+static void
+write_eeprom_word( cyg_uint32 ioaddr, int addrbits, int address, cyg_uint16 value)
+{
+ int i, tmp;
+
+ // Should already be not-selected, but anyway:
+ EE_SELECT();
+
+ // Shift the write command bits out.
+ for (i = 3; i >= 0; i--) { // Doc says to shift out a zero then:
+ tmp = (5 & (1 << i)) ? 1 : 0; // "5" is the "write" command.
+ EE_WRITE_DATA_BIT(tmp);
+ EE_CLOCK_UP();
+ EE_CLOCK_DOWN();
+ }
+
+ // Now clock out address
+ for ( i = addrbits - 1; i >= 0 ; i-- ) {
+ tmp = (address & (1<<i)) ? 1 : 0;
+ EE_WRITE_DATA_BIT(tmp);
+ EE_CLOCK_UP();
+ tmp = EE_READ_DATA_BIT();
+ EE_CLOCK_DOWN();
+ }
+
+
+ // write the data
+ for (i = 15; i >= 0; i--) {
+ tmp = (value & (1 << i)) ? 1 : 0;
+ EE_WRITE_DATA_BIT(tmp);
+ EE_CLOCK_UP();
+ EE_CLOCK_DOWN();
+ }
+
+ // Terminate the EEPROM access.
+ EE_DESELECT();
+
+ CYGACC_CALL_IF_DELAY_US((cyg_int32)15*1000);
+}
+
+// ------------------------------------------------------------------------
+static int
+write_enable_eeprom(cyg_uint32 ioaddr, int addrbits)
+{
+ int i, tmp;
+
+ // Should already be not-selected, but anyway:
+ EE_SELECT();
+
+ // Shift the EWEN command bits out.
+ for (i = 5; i >= 0; i--) { // Doc says to shift out a zero then:
+ tmp = (0x13 & (1 << i)) ? 1 : 0; // "0x13" is the "EWEN" command.
+ EE_WRITE_DATA_BIT(tmp);
+ EE_CLOCK_UP();
+ EE_CLOCK_DOWN();
+ }
+
+ // Shift the rest of the address bits out. (ignored)
+ // Two bits were used for the EWEN command above.
+ tmp = 0;
+ for (i = (addrbits-3); i >= 0; i--) {
+ EE_WRITE_DATA_BIT(tmp);
+ EE_CLOCK_UP();
+ EE_CLOCK_DOWN();
+ }
+
+ // Terminate the EEPROM access.
+ EE_DESELECT();
+}
+
+
+// ------------------------------------------------------------------------
+static void
+program_eeprom(cyg_uint32 ioaddr, int addrbits, cyg_uint16 *data)
+{
+ cyg_uint32 i;
+ cyg_uint16 checksum = 0;
+
+ // First enable erase/write operations on the eeprom.
+ // This is done through the EWEN instruction.
+ write_enable_eeprom(ioaddr, addrbits);
+
+ for (i = 0; i < 63; i++, data++) {
+ checksum += *data;
+ write_eeprom_word(ioaddr, addrbits, i, *data);
+ }
+ checksum = 0xBABA - checksum;
+ write_eeprom_word(ioaddr, addrbits, i, checksum);
+}
+
+// Get MAC address from user.
+// Acceptable formats are:
+// nn.nn.nn.nn.nn.nn
+// nn:nn:nn:nn:nn:nn
+// nn-nn-nn-nn-nn-nn
+// nn nn nn nn nn nn
+// nnnnnnnnnnnn
+static void
+get_mac_address(char *addr_buf)
+{
+ char input[40], mac[6], *p;
+ int got, i;
+
+ do {
+ got = 0;
+ diag_printf ("\nCurrent MAC address: %02x:%02x:%02x:%02x:%02x:%02x\n",
+ addr_buf[0], addr_buf[1], addr_buf[2],
+ addr_buf[3], addr_buf[4], addr_buf[5]);
+ diag_printf ("Enter desired MAC address: ");
+ while (_rb_gets(input, sizeof(input), 0) != _GETS_OK)
+ ;
+
+ p = input;
+ while (*p && *p == ' ');
+
+ if (p[0] == '\0' || p[1] == '\0')
+ continue;
+
+ for (; got < 6; got++) {
+ if (!diag_ishex(p[0]) || !diag_ishex(p[1]))
+ break;
+ mac[got] = (diag_hex2dec(p[0]) * 16) + diag_hex2dec(p[1]);
+ p += 2;
+ if (*p == '.' || *p == ':' || *p == ' ' || *p == '-')
+ p++;
+ }
+ } while (got != 6);
+
+ for (i = 0; i < 6; i++)
+ *addr_buf++ = mac[i];
+}
+
+
+static cyg_uint16 eeprom_defaults[] = {
+/* halfword addresses! */
+/* 0: */ 0x0000, 0x0000, 0x0000, 0x0000,
+/* 4: */ 0x0000, 0x0000, 0x0000, 0x0000,
+/* 8: */ 0x0000, 0x0000, 0x4e0b, 0x1008,
+/* C: */ 0x8086, 0x1008, 0x8086, 0xf02c,
+/* 10: */ 0xffff, 0xffff, 0xffff, 0xffff,
+/* 14: */ 0xffff, 0xffff, 0xffff, 0xffff,
+/* 18: */ 0xffff, 0xffff, 0xffff, 0xffff,
+/* 1C: */ 0xffff, 0xffff, 0xffff, 0xffff,
+/* 20: */ 0xdfde, 0x0002, 0x1414, 0xffff,
+/* 24: */ 0xffff, 0xffff, 0xffff, 0xffff,
+/* 28: */ 0xffff, 0xffff, 0xffff, 0xffff,
+/* 2C: */ 0xffff, 0xffff, 0xffff, 0xffff,
+/* 30: */ 0xffff, 0xffff, 0xffff, 0xffff,
+/* 34: */ 0xffff, 0xffff, 0xffff, 0xffff,
+/* 38: */ 0xffff, 0xffff, 0xffff, 0xffff,
+/* 3C: */ 0xffff, 0xffff, 0xffff, 0x0000,
+};
+
+/* Setup Serial EEPROM for Ethernet Configuration */
+void
+enet_setup (MENU_ARG arg)
+{
+ cyg_pci_device dev_info;
+ cyg_pci_device_id devid;
+ cyg_uint16 cksum;
+ cyg_uint16 eeprom_data[64];
+ cyg_uint32 nic_addr;
+ int i, bus;
+
+ // First, look for NIC at private and public addresses
+
+ bus = (*ATU_PCIXSR >> 8) & 0xff;
+ if (bus == 0xff)
+ bus = 0;
+
+ devid = CYG_PCI_DEV_MAKE_ID(bus, CYG_PCI_DEV_MAKE_DEVFN(__NIC_PUB, 0));
+ cyg_pci_get_device_info(devid, &dev_info);
+
+ if (dev_info.vendor != 0x8086) {
+ devid = CYG_PCI_DEV_MAKE_ID(bus, CYG_PCI_DEV_MAKE_DEVFN(__NIC_PRIV, 0));
+ cyg_pci_get_device_info(devid, &dev_info);
+ if (dev_info.vendor != 0x8086) {
+ diag_printf("No i82544 device found\n");
+ return;
+ }
+ }
+
+ nic_addr = dev_info.base_map[0];
+
+ // Now read complete EEPROM contents
+ for (i = cksum = 0; i < 64; i++) {
+ eeprom_data[i] = read_eeprom_word(nic_addr, 6, i);
+ cksum += eeprom_data[i];
+ }
+
+ // If not valid, initialize to defaults
+ if (cksum != 0xBABA || (eeprom_data[0x0a] & 0xC000) != 0x4000) {
+ diag_printf ("Current EEPROM contents invalid. Restoring defaults.\n");
+ for (i = 0; i < 63; i++)
+ eeprom_data[i] = eeprom_defaults[i];
+ }
+
+ get_mac_address((char *)eeprom_data);
+
+ // Now compute checksum on complete EEPROM contents
+ for (i = cksum = 0; i < 63; i++)
+ cksum += eeprom_data[i];
+
+ eeprom_data[63] = 0xBABA - cksum;
+
+ diag_printf ("Writing to the Serial EEPROM... ");
+ program_eeprom(nic_addr, 6, eeprom_data);
+ diag_printf ("Done\n");
+
+ /* now that we have finished writing the configuration data, we must ask the
+ operator to reset the board to have the configuration changes take effect.
+ After the reset, the standard Enet. port diagnostics can be run on the
+ board under test */
+
+ diag_printf ("\n******** Reset The Board To Have Changes Take Effect ********\n");
+}
+
+
diff --git a/ecos/packages/hal/arm/xscale/iq80321/current/src/diag/io_utils.c b/ecos/packages/hal/arm/xscale/iq80321/current/src/diag/io_utils.c
new file mode 100644
index 0000000..0f53d6a
--- /dev/null
+++ b/ecos/packages/hal/arm/xscale/iq80321/current/src/diag/io_utils.c
@@ -0,0 +1,134 @@
+//=============================================================================
+//
+// io_utils.c - Cyclone Diagnostics
+//
+//=============================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): Scott Coulter, Jeff Frazier, Eric Breeden
+// Contributors: Mark Salter
+// Date: 2001-01-25
+// Purpose:
+// Description:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================*/
+
+/*
+ * i/o routines for tests. Greg Ames, 9/17/90.
+ *
+ * Version: @(#)test_io.c 1.2 8/26/93
+ */
+#include <redboot.h>
+
+/* Returns true if theChar is a valid hex digit, false if not */
+int
+diag_ishex(char theChar)
+{
+ switch(theChar) {
+ case '0':
+ case '1':
+ case '2':
+ case '3':
+ case '4':
+ case '5':
+ case '6':
+ case '7':
+ case '8':
+ case '9':
+ case 'A':
+ case 'a':
+ case 'B':
+ case 'b':
+ case 'C':
+ case 'c':
+ case 'D':
+ case 'd':
+ case 'E':
+ case 'e':
+ case 'F':
+ case 'f':
+ return 1;
+ default:
+ return 0;
+ }
+}
+
+/* Convert ascii code of hex digit to number (0-15) */
+int
+diag_hex2dec(char hex)
+{
+ if ((hex >= '0') && (hex <= '9'))
+ return hex - '0';
+ else if ((hex >= 'a') && (hex <= 'f'))
+ return hex - 'a' + 10;
+ else
+ return hex - 'A' + 10;
+}
+
+/* Input a number as (at most 8) hex digits - returns value entered */
+CYG_ADDRWORD
+hexIn(void)
+{
+ char input[40], *p;
+ CYG_ADDRWORD num;
+
+ while (_rb_gets(input, sizeof(input), 0) != _GETS_OK)
+ ;
+
+ for (num = 0, p = input; diag_ishex(*p); p++)
+ num = num*16 + diag_hex2dec(*p);
+
+ return num;
+}
+
+
+/* Input a number as decimal digits - returns value entered */
+CYG_ADDRWORD
+decIn(void)
+{
+ char input[40], *p;
+ CYG_ADDRWORD num;
+
+ while (_rb_gets(input, sizeof(input), 0) != _GETS_OK)
+ ;
+
+ for (num = 0, p = input; '0' <= *p && *p <= '9'; p++)
+ num = num*10 + (*p - '0');
+
+ return num;
+}
+
diff --git a/ecos/packages/hal/arm/xscale/iq80321/current/src/diag/memtest.c b/ecos/packages/hal/arm/xscale/iq80321/current/src/diag/memtest.c
new file mode 100644
index 0000000..90f72d7
--- /dev/null
+++ b/ecos/packages/hal/arm/xscale/iq80321/current/src/diag/memtest.c
@@ -0,0 +1,370 @@
+//=============================================================================
+//
+// memtest.c
+//
+//=============================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): Scott Coulter, Jeff Frazier, Eric Breeden
+// Contributors: Mark Salter
+// Date: 2001-01-25
+// Purpose:
+// Description:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================*/
+
+/*************************************************************************
+* Memtest.c - this file performs an address/address bar memory test.
+*
+* Modification History
+* --------------------
+* 01sep00 ejb Ported to StrongARM2
+* 18dec00 snc
+* 02feb01 jwf for snc
+* 25jan02 Rewritten for RedBoot by Mark Salter
+*/
+
+#include <redboot.h>
+
+#define FAILED 1
+#define PASSED 0
+
+// Do walking one's test
+//
+static int
+onesTest(CYG_ADDRWORD *testAddr)
+{
+ CYG_ADDRWORD theOne, dataRead;
+ int fail, loopCount = 0; // To keep track of when to print CR
+
+ diag_printf("\n");
+
+ // Loop for all bits in an address
+ for (theOne = 1, fail = 0; theOne && !fail; theOne <<= 1) {
+
+ testAddr[0] = theOne; // Write test data
+ testAddr[1] = ~0L; // Drive d0-dn hi
+ dataRead = *testAddr; // Read back data
+
+ diag_printf("%08x%s", dataRead, (++loopCount % 8) ? "" : "\n");
+
+ if (dataRead != theOne) // Verify data
+ return FAILED; // Signal failure
+ }
+ return PASSED;
+}
+
+
+// Do 32-bit word address test
+//
+static int
+Addr32 (cyg_uint32 *start, cyg_uint32 *end, CYG_ADDRWORD *badAddr)
+{
+ cyg_uint32 *currentAddr; /* Current address being tested */
+ cyg_uint32 data;
+
+ for(currentAddr = start; currentAddr <= end; currentAddr++)
+ *currentAddr = (cyg_uint32)(CYG_ADDRWORD)currentAddr;
+
+ for (currentAddr = start; currentAddr <= end; currentAddr++) {
+ data = *currentAddr;
+ if (data != (cyg_uint32)(CYG_ADDRWORD)currentAddr) {
+ diag_printf ("\n\nBad Read, Address = %p, Data Read = 0x%08x\n\n",
+ currentAddr, data);
+ *badAddr = (CYG_ADDRWORD)currentAddr;
+ return FAILED;
+ }
+ }
+ return PASSED;
+}
+
+
+// Do inverse long word address test
+//
+static int
+Bar32 (cyg_uint32 *start, cyg_uint32 *end, CYG_ADDRWORD *badAddr)
+{
+ cyg_uint32 *currentAddr, data;
+
+ for(currentAddr = start; currentAddr <= end; currentAddr++)
+ *currentAddr = ~(CYG_ADDRWORD)currentAddr;
+
+ for (currentAddr = start; currentAddr <= end; currentAddr++) {
+ data = *currentAddr;
+ if (data != (~(CYG_ADDRWORD)currentAddr) & 0xffffffff) {
+ diag_printf ("\n\nBad Read, Address = %p, Data Read = 0x%08x\n\n",
+ currentAddr, data);
+ *badAddr = (CYG_ADDRWORD)currentAddr;
+ return FAILED;
+ }
+ }
+ return PASSED;
+}
+
+// Do byte address test
+//
+static int
+Addr8 (cyg_uint8 *start, cyg_uint8 *end, CYG_ADDRWORD *badAddr)
+{
+ cyg_uint8 *currentAddr; // Current address being tested
+
+ for (currentAddr = start; currentAddr <= end; currentAddr++)
+ *currentAddr = (cyg_uint8)(CYG_ADDRWORD)currentAddr;
+
+ for (currentAddr = start; currentAddr <= end; currentAddr++)
+ if (*currentAddr != (cyg_uint8)(CYG_ADDRWORD)currentAddr) {
+ *badAddr = (CYG_ADDRWORD)currentAddr;
+ return FAILED;
+ }
+ return PASSED;
+}
+
+// Do inverse byte address test
+//
+static int
+Bar8 (cyg_uint8 *start, cyg_uint8 *end, CYG_ADDRWORD *badAddr)
+{
+ cyg_uint8 *currentAddr; // Current address being tested
+
+ for(currentAddr = start; currentAddr <= end; currentAddr++)
+ *currentAddr = ~(CYG_ADDRWORD)currentAddr;
+
+ for(currentAddr = start; currentAddr <= end; currentAddr++)
+ if (*currentAddr != (~(CYG_ADDRWORD)currentAddr & 0xff)) {
+ *badAddr = (CYG_ADDRWORD)currentAddr;
+ return FAILED;
+ }
+ return PASSED;
+}
+
+// This routine is called if one of the memory tests fails. It dumps
+// the 8 32-bit words before and the 8 after the failure address
+//
+void
+dumpMem (CYG_ADDRWORD badAddr)
+{
+ cyg_uint32 *addr;
+ cyg_uint16 *saddr;
+ int i;
+
+ // Print out first line of mem dump
+ diag_printf("\n%p: %08x %08x %08x %08x",
+ (char *)badAddr - 32,
+ *(cyg_uint32 *)(badAddr - 32),
+ *(cyg_uint32 *)(badAddr - 28),
+ *(cyg_uint32 *)(badAddr - 24),
+ *(cyg_uint32 *)(badAddr - 20));
+
+ diag_printf("\n%p: %08x %08x %08x %08x",
+ (char *)badAddr - 16,
+ *(cyg_uint32 *)(badAddr - 16),
+ *(cyg_uint32 *)(badAddr - 12),
+ *(cyg_uint32 *)(badAddr - 8),
+ *(cyg_uint32 *)(badAddr - 4));
+
+ // Print out contents of fault addr
+ diag_printf("\n%p: %08x",
+ (char *)badAddr, *(cyg_uint32 *)badAddr);
+
+ diag_printf("\n%p: %08x %08x %08x %08x",
+ (char *)badAddr + 4,
+ *(cyg_uint32 *)(badAddr + 4),
+ *(cyg_uint32 *)(badAddr + 8),
+ *(cyg_uint32 *)(badAddr + 12),
+ *(cyg_uint32 *)(badAddr + 16));
+
+ diag_printf("\n%p: %08x %08x %08x %08x",
+ (char *)badAddr + 20,
+ *(cyg_uint32 *)(badAddr + 20),
+ *(cyg_uint32 *)(badAddr + 24),
+ *(cyg_uint32 *)(badAddr + 28),
+ *(cyg_uint32 *)(badAddr + 32));
+
+ /* DEBUG */
+ diag_printf ("\n\nReading back data in 32bit chunks:\n");
+ for (addr = (cyg_uint32 *)(badAddr - 16), i = 0; i <= 8; i++, addr++)
+ diag_printf ("Address = %p, Data = 0x%08x\n", addr, *addr);
+ diag_printf ("\n");
+
+ diag_printf ("Reading back data in 16bit chunks:\n");
+ for (saddr = (cyg_uint16 *)(badAddr - 16), i = 0; i <= 16; i++, saddr++)
+ diag_printf ("Address = %p, Data = 0x%08x\n", saddr, *saddr);
+ diag_printf ("\n");
+}
+
+// Returns 1 if passed, 0 if failed.
+//
+int
+memTest (CYG_ADDRWORD startAddr, CYG_ADDRWORD endAddr)
+{
+ CYG_ADDRWORD badAddr; // Addr test failed at
+
+ diag_printf("\nWalking 1's test: ");
+ if (onesTest((CYG_ADDRWORD *)startAddr) == FAILED)
+ goto failed;
+ diag_printf("passed");
+
+ diag_printf("\n32-bit address test: ");
+ if (Addr32((cyg_uint32 *)startAddr, (cyg_uint32 *)endAddr, &badAddr) == FAILED)
+ goto failed;
+ diag_printf("passed");
+
+ diag_printf("\n32-bit address bar test: ");
+ if (Bar32((cyg_uint32 *)startAddr, (cyg_uint32 *)endAddr, &badAddr) == FAILED)
+ goto failed;
+ diag_printf("passed");
+
+ diag_printf("\n8-bit address test: ");
+ if (Addr8((cyg_uint8 *)startAddr, (cyg_uint8 *)endAddr, &badAddr) == FAILED)
+ goto failed;
+ diag_printf("passed");
+
+ diag_printf("\nByte address bar test: ");
+ if (Bar8((cyg_uint8 *)startAddr, (cyg_uint8 *)endAddr, &badAddr) == FAILED)
+ goto failed;
+ diag_printf("passed");
+
+ return 1;
+
+ failed:
+ diag_printf("failed");
+ dumpMem(badAddr);
+ return 0;
+}
+
+
+/* 02/02/01 jwf */
+/* Do alternating inverse long word address test */
+static int
+ABar32(cyg_uint32 *start, /* Starting address of test */
+ cyg_uint32 *end, /* Ending address */
+ CYG_ADDRWORD *badAddr) /* Failure address */
+{
+ register cyg_uint32 *currentAddr; /* Current address being tested */
+ int fail = 0; /* Test hasn't failed yet */
+ cyg_uint32 data;
+
+ /* In this test, the contents of each longword address toggles
+ between the Address and the Address BAR */
+ for(currentAddr = start; currentAddr <= end; currentAddr++) {
+
+ if ((CYG_ADDRWORD)currentAddr & 4) /* Address ending in 0x4 or 0xc */
+ *currentAddr = ~(cyg_uint32)(CYG_ADDRWORD)currentAddr;
+
+ else /* Address ending in 0x0 or 0x8 */
+ *currentAddr = (cyg_uint32)(CYG_ADDRWORD)currentAddr;
+ }
+
+ for (currentAddr = start; currentAddr <= end && !fail; currentAddr++) {
+ data = *currentAddr;
+
+ switch ((CYG_ADDRWORD)currentAddr & 0xf) {
+ case 0x0:
+ case 0x8:
+ if (data != (cyg_uint32)(CYG_ADDRWORD)currentAddr) {
+ fail = 1;
+ diag_printf ("\nFailed at Address %p, Expected 0x%08X, Read 0x%08X\n",
+ currentAddr, (cyg_uint32)(CYG_ADDRWORD)currentAddr, data);
+ }
+ break;
+
+ case 0x4:
+ case 0xc:
+ if (data != ~(cyg_uint32)(CYG_ADDRWORD)currentAddr) {
+ fail = 1;
+ diag_printf ("\nFailed at Address %p, Expected 0x%08X, Read 0x%08X\n",
+ currentAddr, ~(cyg_uint32)(CYG_ADDRWORD)currentAddr, data);
+ }
+ break;
+
+ default:
+ fail = 1;
+ diag_printf ("\nFailed at Address %p, Unaligned address\n", currentAddr);
+ break;
+ }
+ }
+
+ if (fail) {
+ *badAddr = (CYG_ADDRWORD)(--currentAddr);
+ return FAILED;
+ } else
+ return PASSED;
+}
+
+
+/* 02/02/01 jwf */
+/*
+ * Returns 1 if passed, 0 if failed.
+ */
+int
+LoopMemTest (CYG_ADDRWORD startAddr, CYG_ADDRWORD endAddr)
+{
+ CYG_ADDRWORD badAddr; /* Addr test failed at */
+ volatile int junk;
+
+ while (1) {
+ diag_printf("\n");
+
+ diag_printf("\n32-bit address test: ");
+ if (Addr32((cyg_uint32 *)startAddr, (cyg_uint32 *)endAddr, &badAddr) == FAILED)
+ break;
+ diag_printf("passed");
+
+ diag_printf("\n32-bit address bar test: ");
+ if (Bar32((cyg_uint32 *)startAddr, (cyg_uint32 *)endAddr, &badAddr) == FAILED)
+ break;
+ diag_printf("passed");
+
+ diag_printf("\nAlternating Long word, Long word address bar test: ");
+ if (ABar32((cyg_uint32 *)startAddr, (cyg_uint32 *)endAddr, &badAddr) == FAILED)
+ break;
+ diag_printf("passed");
+ }
+
+ diag_printf("failed at Address %p\n", badAddr);
+ diag_printf("Performing Continuous Write/Read/!Write/Read...\n\n");
+ while (1) {
+ *(volatile int *)badAddr = badAddr;
+ junk = *(volatile int *)badAddr;
+ *(volatile int *)badAddr = ~badAddr;
+ junk = *(volatile int *)badAddr;
+ }
+
+ return 1; // not reached
+}
+
+
diff --git a/ecos/packages/hal/arm/xscale/iq80321/current/src/diag/pcitest.c b/ecos/packages/hal/arm/xscale/iq80321/current/src/diag/pcitest.c
new file mode 100644
index 0000000..8593e85
--- /dev/null
+++ b/ecos/packages/hal/arm/xscale/iq80321/current/src/diag/pcitest.c
@@ -0,0 +1,121 @@
+//=============================================================================
+//
+// pcitest.c
+//
+//=============================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): Scott Coulter, Jeff Frazier, Eric Breeden
+// Contributors: Mark Salter
+// Date: 2001-01-25
+// Purpose:
+// Description:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================*/
+
+#include <redboot.h>
+#include <cyg/io/pci.h>
+#include "test_menu.h"
+
+extern int memTest (CYG_ADDRWORD startAddr, CYG_ADDRWORD endAddr);
+
+//
+// PCI Bus Test
+//
+// This test assumes that an IQ80310 eval board
+// is installed in the secondary PCI slot. This
+// second board must be configured with 32 Meg
+// of SDRAM minimum.
+//
+//
+void
+pci_test (MENU_ARG arg)
+{
+ cyg_pci_device dev_info;
+ cyg_pci_device_id devid;
+ cyg_uint32 mem_size;
+ cyg_uint16 cmd;
+ cyg_uint32 *start, *end;
+ int bus;
+
+ // First, look for iq80310 at private and public addresses
+
+ bus = (*ATU_PCIXSR >> 8) & 0xff;
+ if (bus == 0xff)
+ bus = 0;
+
+ devid = CYG_PCI_DEV_MAKE_ID(bus, CYG_PCI_DEV_MAKE_DEVFN(__SLOT_PUB, 1));
+ cyg_pci_get_device_info(devid, &dev_info);
+
+ if (dev_info.vendor != 0x8086 || dev_info.device != 0x530d) {
+ devid = CYG_PCI_DEV_MAKE_ID(bus, CYG_PCI_DEV_MAKE_DEVFN(__SLOT_PRIV, 1));
+ cyg_pci_get_device_info(devid, &dev_info);
+
+ if (dev_info.vendor != 0x8086 || dev_info.device != 0x530d) {
+ diag_printf("No iq80310 in PCI slot.\n");
+ return;
+ }
+ }
+
+ cyg_pci_set_memory_base(HAL_PCI_ALLOC_BASE_MEMORY + 0x2000000);
+ cyg_pci_set_io_base(HAL_PCI_ALLOC_BASE_IO);
+
+ cyg_pci_configure_device(&dev_info);
+
+ diag_printf ("iq80310 DRAM starts at PCI address %p, CPU address %p\n",
+ dev_info.base_address[0] & CYG_PRI_CFG_BAR_MEM_MASK,
+ dev_info.base_map[0]);
+
+ // enable memory space and bus master
+ cyg_pci_read_config_uint16(dev_info.devid, CYG_PCI_CFG_COMMAND, &cmd);
+ cmd |= (CYG_PCI_CFG_COMMAND_MEMORY | CYG_PCI_CFG_COMMAND_MASTER);
+ cyg_pci_write_config_uint16(dev_info.devid, CYG_PCI_CFG_COMMAND, cmd);
+
+ start = (cyg_uint32 *)dev_info.base_map[0];
+ // skip over 1st Mbyte of target DRAM
+ start += 0x100000/sizeof(*start);
+ // 32MB test
+ mem_size = 0x2000000 - 0x100000;
+ end = start + mem_size/sizeof(*start) - 1;
+
+ diag_printf("Testing memory from %p to %p.\n", start, end);
+
+ memTest((CYG_ADDRWORD)start, (CYG_ADDRWORD)end);
+
+ diag_printf ("Memory test done.\n");
+}
+
diff --git a/ecos/packages/hal/arm/xscale/iq80321/current/src/diag/test_menu.c b/ecos/packages/hal/arm/xscale/iq80321/current/src/diag/test_menu.c
new file mode 100644
index 0000000..2b7cde6
--- /dev/null
+++ b/ecos/packages/hal/arm/xscale/iq80321/current/src/diag/test_menu.c
@@ -0,0 +1,251 @@
+//=============================================================================
+//
+// test_menu.c - Cyclone Diagnostics
+//
+//=============================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): Scott Coulter, Jeff Frazier, Eric Breeden
+// Contributors:
+// Date: 2001-01-25
+// Purpose:
+// Description:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================*/
+
+/*****************************************************************************
+* test_menu.c - Menu dispatching routine
+*
+* modification history
+* --------------------
+* 30aug00 ejb Ported to IQ80310 Cygmon
+*/
+
+/*
+DESCRIPTION:
+
+A table-driven menu dispatcher
+*/
+
+
+#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_verde.h> // Hardware definitions
+#include <cyg/hal/iq80321.h> // Platform specifics
+
+#include <cyg/infra/diag.h> // diag_printf
+#include "test_menu.h"
+
+#define QUIT -1
+#define MAX_INPUT_LINE_SIZE 80
+
+extern long decIn(void);
+
+/*
+ * Internal routines
+ */
+static int menuGetChoice (MENU_ITEM menuTable[],
+ int numMenuItems,
+ char *title,
+ unsigned long options);
+static void printMenu (MENU_ITEM menuTable[],
+ int numMenuItems,
+ char *title);
+
+
+/***************************************************************************
+*
+* menu - a table-driven menu dispatcher
+*
+* RETURNS:
+*
+* The menu item argument, or NULL if the item chosen is QUIT.
+*/
+MENU_ARG menu (
+ MENU_ITEM menuTable[],
+ int numMenuItems,
+ char *title,
+ unsigned long options
+ )
+{
+int item; /* User's menu item choice */
+
+ /*
+ * Get the user's first choice. Always display the menu the first time.
+ */
+ item = menuGetChoice (menuTable, numMenuItems, title, MENU_OPT_NONE);
+ if (item == QUIT)
+ return (MENU_ARG)0;
+
+ /*
+ * If the user just wants a value returned, return the argument. If the
+ * argument is null, return the item number itself.
+ */
+ if (options & MENU_OPT_VALUE)
+ {
+ if (menuTable[item].arg)
+ return (menuTable[item].arg);
+ else
+ return ((void *)item);
+ }
+
+ /*
+ * Process menu items until the user selects QUIT
+ */
+ while (1)
+ {
+ /*
+ * Call the action routine for the chosen item. If the argument is
+ * NULL, pass the item number itself.
+ */
+ if (menuTable[item].actionRoutine != NULL) {
+ if (menuTable[item].arg == NULL) {
+ diag_printf("\n");
+ (*menuTable[item].actionRoutine) ((void *)item);
+ } else {
+ diag_printf("\n");
+ (*menuTable[item].actionRoutine) (menuTable[item].arg);
+ }
+ }
+
+ /*
+ * Get the next choice, using any display options the user specified.
+ */
+ item = menuGetChoice (menuTable, numMenuItems, title, options);
+ if (item == QUIT)
+ return (NULL);
+ }
+
+} /* end menu () */
+
+
+/***************************************************************************
+*
+* menuGetChoice - Get the user's menu choice.
+*
+* If display is not suppressed, display the menu, then prompt the user for
+* a choice. If the choice is out of range or invalid, display the menu and
+* prompt again. Continue to display and prompt until a valid choice is made.
+*
+* RETURNS:
+* The item number of the user's menu choice. (-1 if they chose QUIT)
+*/
+
+static int
+menuGetChoice (
+ MENU_ITEM menuTable[],
+ int numMenuItems,
+ char *title,
+ unsigned long options
+ )
+{
+/*char inputLine[MAX_INPUT_LINE_SIZE];*/
+
+int choice;
+
+ /*
+ * Suppress display of the menu the first time if we're asked
+ */
+ if (!(options & MENU_OPT_SUPPRESS_DISP))
+ printMenu (menuTable, numMenuItems, title);
+
+ /*
+ * Prompt for a selection. Redisplay the menu and prompt again
+ * if there's an error in the selection.
+ */
+ choice = -1;
+
+ while (choice < 0 || choice > numMenuItems)
+ {
+
+ diag_printf ("\nEnter the menu item number (0 to quit): ");
+
+ choice = decIn ();
+
+ if (choice < 0 || choice > numMenuItems)
+
+ printMenu (menuTable, numMenuItems, title);
+
+ }
+
+ if (choice == 0)
+
+ return (QUIT);
+
+ return (choice - 1);
+
+} /* end menuGetChoice () */
+
+
+/***************************************************************************
+*
+* printMenu - Print the menu
+*
+*
+*/
+
+static void
+printMenu (
+ MENU_ITEM menuTable[],
+ int numMenuItems,
+ char *title
+ )
+{
+ int i;
+
+
+ diag_printf("\n%s\n\n", title);
+
+ for (i = 0; i < numMenuItems; i++)
+ {
+ diag_printf ("%2d - %s\n", i+1, menuTable[i].itemName);
+ }
+
+ diag_printf(" 0 - quit");
+
+} /* end printMenu () */
diff --git a/ecos/packages/hal/arm/xscale/iq80321/current/src/diag/test_menu.h b/ecos/packages/hal/arm/xscale/iq80321/current/src/diag/test_menu.h
new file mode 100644
index 0000000..474da9d
--- /dev/null
+++ b/ecos/packages/hal/arm/xscale/iq80321/current/src/diag/test_menu.h
@@ -0,0 +1,143 @@
+//=============================================================================
+//
+// test_menu.h - Cyclone Diagnostics
+//
+//=============================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): Scott Coulter, Jeff Frazier, Eric Breeden
+// Contributors:
+// Date: 2001-01-25
+// Purpose:
+// Description:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================*/
+
+/*****************************************************************************
+* test_menu.h - Menu dispatching header
+*
+* modification history
+* --------------------
+* 30aug00 ejb Ported from MPC8240 Breeze to StrongARM2 Cygmon
+*/
+/*
+DESCRIPTION
+
+Include file for the table-driven menu module menu.c. This module displays
+a menu of numbered items, prompts the user for a choice, then calls an action
+routine associated with the choice. It then redisplays the menu and prompts
+for another choice. A choice of zero (0) exits the menu routine.
+
+To use this menu module, construct a table of type MENU_ITEM, with one entry
+for each menu item. An entry consists of a string to print out with the
+menu, an action routine, and an argument for the action routine. There is
+no need to have an "exit" or "quit" item, since the menu routine handles
+that by assigning at the zero (0) item number. For example, a simple menu
+of tests would be constructed this way:
+
+ IMPORT VOID doTestA ();
+ IMPORT VOID doTestB ();
+
+ #define TESTA_ARG 0
+ #define TESTB_ARG 1
+
+ LOCAL MENU_ITEM testMenu[] =
+ {
+ {"Test A", doTestA, (MENU_ARG)TESTA_ARG},
+ {"Test B", doTestB, (MENU_ARG)TESTB_ARG},
+ };
+
+ #define NUM_ITEMS NELEMENTS(testMenu)
+ #define MENU_TITLE "Test Menu"
+
+Then, in the test top level routine, call the routine menu(), declared as:
+
+ STATUS menu (menuTable, numMenuItems, title, options)
+ MENU_ITEM menuTable[];
+ int numMenuItems;
+ char *title;
+ ULONG options;
+
+For example:
+
+ status = menu (testMenu, NUM_ITEMS, MENU_TITLE, MENU_OPT_NONE);
+
+*/
+
+/*
+ * The following types define an entry in the menu table. Each entry describes
+ * one menu item, including a string to describe that item, an action
+ * routine to call when that item is chosen, and an argument to pass when the
+ * action routine is called.
+ */
+typedef volatile void *MENU_ARG;
+typedef void (*MENU_RTN) (MENU_ARG arg);
+typedef struct menuItem
+{
+ char *itemName; /* string to print with the menu */
+ MENU_RTN actionRoutine; /* routine to call when item is chosen */
+ MENU_ARG arg; /* argument to actionRoutine */
+} MENU_ITEM;
+
+
+/*
+ * Menu options
+ *
+ * These options control the display of the menu.
+ *
+ * MENU_OPT_NONE - The normal behavior. The menu is always displayed before
+ * prompting the user for a choice.
+ *
+ * MENU_OPT_SUPPRESS_DISP - The menu is displayed before prompting the user
+ * for a choice except after executing a previously valid choice. This option
+ * is useful for large menus consisting of simple commands that produce only
+ * a line or two of output. In this case, after the user executes a valid
+ * choice, the redisplay of a large menu may cause output to scroll off the
+ * screen. The menu is redisplayed if the user enters an invalid choice.
+ */
+#define MENU_OPT_NONE 0x00
+#define MENU_OPT_SUPPRESS_DISP 0x01
+#define MENU_OPT_VALUE 0x02
+
+
+
+
+MENU_ARG menu (MENU_ITEM menuTable[],
+ int numMenuItems,
+ char *title,
+ unsigned long options);
+
diff --git a/ecos/packages/hal/arm/xscale/iq80321/current/src/diag/timer.c b/ecos/packages/hal/arm/xscale/iq80321/current/src/diag/timer.c
new file mode 100644
index 0000000..9e3c9dd
--- /dev/null
+++ b/ecos/packages/hal/arm/xscale/iq80321/current/src/diag/timer.c
@@ -0,0 +1,67 @@
+//=============================================================================
+//
+// timer.c
+//
+//=============================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): Scott Coulter, Jeff Frazier, Eric Breeden
+// Contributors: Mark Salter
+// Date: 2002-02-20
+// Purpose:
+// Description:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================*/
+
+#include <redboot.h>
+#include "test_menu.h"
+
+extern void hal_delay_us(cyg_int32 delay);
+
+void
+timer_test(MENU_ARG arg)
+{
+ int j, i;
+
+ diag_printf ("\nTimer test. Dots should appear at 1 second intervals:\n");
+
+ for (j = 0; j < 20; j++) {
+ diag_printf (".");
+ for (i = 0; i < 1000; i++)
+ hal_delay_us(1000);
+ }
+}
diff --git a/ecos/packages/hal/arm/xscale/iq80321/current/src/diag/xscale_test.c b/ecos/packages/hal/arm/xscale/iq80321/current/src/diag/xscale_test.c
new file mode 100644
index 0000000..3cb594c
--- /dev/null
+++ b/ecos/packages/hal/arm/xscale/iq80321/current/src/diag/xscale_test.c
@@ -0,0 +1,324 @@
+//=============================================================================
+//
+// xscale_test.c - Cyclone Diagnostics
+//
+//=============================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): Scott Coulter, Jeff Frazier, Eric Breeden
+// Contributors: Mark Salter
+// Date: 2001-01-25
+// Purpose:
+// Description:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================*/
+
+/************************************************************************/
+/* */
+/* Modification History */
+/* -------------------- */
+/* 11oct00, ejb, Created for IQ80310 StrongARM2 */
+/* 18dec00 jwf */
+/* 02feb01 jwf added tests: _coy_tight_loop, cache_loop, LoopMemTest, */
+/* special_mem_test written by snc */
+/* 07feb01 jwf added function calls to a variable delay time generator */
+/* 09feb01 jwf added function version_info to show version information */
+/* about OS, BOARD, CPLD, 80200 ID, 80312 ID. */
+/************************************************************************/
+
+
+#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_verde.h> // Hardware definitions
+#include <cyg/hal/iq80321.h> // Platform specifics
+
+#include <cyg/infra/diag.h> // diag_printf
+#include <redboot.h>
+#include <cyg/io/pci.h>
+
+#include "test_menu.h"
+
+extern CYG_ADDRWORD hexIn(void);
+
+extern int memTest (long startAddr, long endAddr);
+extern int LoopMemTest (long startAddr, long endAddr);
+
+void hdwr_diag (void);
+
+extern void enet_setup (MENU_ARG arg);
+
+static void memory_tests (MENU_ARG arg);
+static void repeat_mem_test (MENU_ARG arg);
+static void special_mem_test (MENU_ARG arg);
+static void rotary_switch (MENU_ARG arg);
+static void seven_segment_display (MENU_ARG arg);
+static void cache_loop (MENU_ARG arg);
+extern void pci_test (MENU_ARG arg);
+extern void battery_status(MENU_ARG arg);
+extern void battery_test_menu (MENU_ARG arg);
+extern void timer_test (MENU_ARG arg);
+
+
+/* Test Menu Table */
+static MENU_ITEM testMenu[] =
+{
+ {"Memory Tests", memory_tests, 0},
+ {"Repeating Memory Tests", repeat_mem_test, 0},
+ {"Repeat-On-Fail Memory Test", special_mem_test, 0},
+ {"Rotary Switch S1 Test", rotary_switch, 0},
+ {"7 Segment LED Tests", seven_segment_display, 0},
+ {"i82544 Ethernet Configuration", enet_setup, 0},
+ {"Battery Status Test", battery_status, 0},
+#ifdef CYGSEM_HAL_ARM_IQ80321_BATTERY_TEST
+ {"Battery Backup SDRAM Memory Test", battery_test_menu, 0},
+#endif
+ {"Timer Test", timer_test, 0},
+ {"PCI Bus test", pci_test, 0},
+ {"CPU Cache Loop (No return)", cache_loop, 0}
+};
+
+#define NUM_MENU_ITEMS (sizeof (testMenu) / sizeof (testMenu[0]))
+#define MENU_TITLE "\n IQ80321 Hardware Tests"
+
+void
+diag_wait(void)
+{
+ char buf[1];
+ diag_printf ("Press return to continue.\n");
+ while (_rb_gets(buf, sizeof(buf), 0) != _GETS_OK)
+ ;
+}
+
+void
+hdwr_diag (void)
+{
+ diag_printf ("Entering Hardware Diagnostics - Disabling Data Cache!\n");
+
+ cyg_pci_init();
+
+ HAL_DCACHE_SYNC();
+ HAL_DCACHE_DISABLE();
+
+ menu (testMenu, NUM_MENU_ITEMS, MENU_TITLE, MENU_OPT_NONE);
+
+ diag_printf ("Exiting Hardware Diagnostics!\n\n");
+ HAL_DCACHE_ENABLE();
+}
+
+static void
+cache_loop (MENU_ARG arg)
+{
+ diag_printf ("Putting Processor in a Tight Loop Forever...\n\n");
+
+ asm ( "0: mov r0,r0\n"
+ "b 0b\n");
+}
+
+
+// ***************************************************************************
+// memory_tests - Basic Memory Tests
+//
+// Memory tests can be run one of two ways - with the cache turned OFF to test
+// physical memory, or with cache turned ON to test the caching
+//
+static void
+memory_tests (MENU_ARG arg)
+{
+ CYG_ADDRWORD start_addr, end_addr;
+ long mem_size;
+
+ diag_printf("Base address of memory to test (in hex): ");
+ start_addr = hexIn();
+
+ diag_printf ("\nSize of memory to test (in hex): ");
+ mem_size = hexIn();
+
+ end_addr = start_addr + mem_size - 1;
+
+ diag_printf("\nTesting memory from %p to %p.\n", start_addr, end_addr);
+ memTest(start_addr, end_addr);
+ diag_printf ("\nMemory test done.\n");
+}
+
+
+// ***************************************************************************
+// repeat_mem_test - Repeating Memory Tests
+//
+static void
+repeat_mem_test (MENU_ARG arg)
+{
+ CYG_ADDRWORD start_addr, mem_size, end_addr;
+ char cache_disable[10];
+
+ diag_printf ("Turn off Data Cache? (y/n): ");
+ while (_rb_gets(cache_disable, sizeof(cache_disable), 0) != _GETS_OK)
+ ;
+ diag_printf ("\nBase address of memory to test (in hex): ");
+ start_addr = hexIn();
+ diag_printf ("\nSize of memory to test (in hex): ");
+ mem_size = hexIn();
+ end_addr = start_addr + mem_size - 1;
+ diag_printf("\nTesting memory from %p to %p", start_addr, end_addr);
+ while (memTest (start_addr, end_addr))
+ ;
+}
+
+// ****************************************************************************
+// special_mem_test - Repeat-On-Fail Memory Test
+//
+// Memory tests can be run one of two ways - with the cache turned OFF to test
+// physical memory, or with cache turned ON to test the caching
+//
+static void
+special_mem_test (MENU_ARG arg)
+{
+ long start_addr;
+ long mem_size;
+ long end_addr;
+
+ diag_printf ("Base address of memory to test (in hex): ");
+ start_addr = hexIn();
+ diag_printf ("\nSize of memory to test (in hex): ");
+ mem_size = hexIn();
+
+ end_addr = start_addr + mem_size - 1;
+ diag_printf("\nTesting memory from %p to %p.\n", start_addr, end_addr);
+
+ LoopMemTest(start_addr, end_addr);
+
+ diag_printf ("\n\nMemory test done.\n");
+ diag_wait();
+}
+
+static unsigned char led_data[] = {
+ DISPLAY_0, DISPLAY_1, DISPLAY_2, DISPLAY_3, DISPLAY_4, DISPLAY_5, DISPLAY_6, DISPLAY_7,
+ DISPLAY_8, DISPLAY_9, DISPLAY_A, DISPLAY_B, DISPLAY_C, DISPLAY_D, DISPLAY_E, DISPLAY_F,
+ DISPLAY_PERIOD, DISPLAY_OFF
+};
+
+// sequential test for LSD and MSD 7 segment Leds
+//
+void
+seven_segment_display (MENU_ARG arg)
+{
+ unsigned char SevSegDecode;
+ int DisplaySequence;
+ int SelectLed;
+
+ *(volatile unsigned char *)DISPLAY_LEFT = DISPLAY_OFF;
+ *(volatile unsigned char *)DISPLAY_RIGHT = DISPLAY_OFF;
+
+ SelectLed=0; /* initialize 7 segment LED selection */
+
+ for (SelectLed = 0; SelectLed < 2; SelectLed++) {
+ /* run test data sequence for a 7 segment LED */
+ for (DisplaySequence = 0; DisplaySequence <= 17; ++DisplaySequence ) {
+ /* fetch 7 segment decode byte */
+ SevSegDecode = led_data[DisplaySequence];
+
+ /* display test data on selected 7 segment LED */
+ /* the test data sequence for a 7 segment led will be seen as:*/
+ /* 0 1 2 3 4 5 6 7 8 9 A b C d e F . */
+ if (SelectLed)
+ *(volatile unsigned char *) DISPLAY_LEFT = SevSegDecode;
+ else
+ *(volatile unsigned char *) DISPLAY_RIGHT = SevSegDecode;
+
+ CYGACC_CALL_IF_DELAY_US((cyg_int32)4*100000);
+ }
+ }
+
+ *(volatile unsigned char *)DISPLAY_LEFT = DISPLAY_S;
+ *(volatile unsigned char *)DISPLAY_RIGHT = DISPLAY_S;
+}
+
+
+// tests rotary switch status, S1 positions 0-3, a 2 bit output code
+static void
+rotary_switch (MENU_ARG arg)
+{
+ char recv_data[1];
+ const unsigned char MAX_SWITCH_SAMPLES = 9;
+ unsigned char RotarySwitch[MAX_SWITCH_SAMPLES]; // multiple samples of a 4 bit switch code
+ unsigned char index; // index for Rotary Switch array
+ unsigned char debounce; // keeps tally of equal rotary switch data reads in a loop
+ unsigned char SevSegDecode; // holds decode data for a 7 segment LED display
+
+ *(volatile unsigned char *)DISPLAY_LEFT = DISPLAY_OFF;
+ *(volatile unsigned char *)DISPLAY_RIGHT = DISPLAY_OFF;
+ diag_printf("\n\nThe 7-Segment LSD LED shows the Rotary Switch position selected, i.e., 0-F.");
+ diag_printf("\n\nSlowly dial the Rotary Switch through each position 0-F and confirm reading.");
+
+ diag_printf( "\n\nStrike <CR> to exit this test." );
+ while (_rb_gets(recv_data, sizeof(recv_data), 50) != _GETS_OK) {
+ do {
+ for(index = 0; index <= MAX_SWITCH_SAMPLES; index++) {
+ RotarySwitch[index] = *(volatile unsigned char *) IQ80321_ROTARY_SWITCH_ADDR;
+ RotarySwitch[index] &= 0x0f;
+ }
+ debounce = 0;
+ for(index = 1; index <= MAX_SWITCH_SAMPLES; index++) {
+ if (RotarySwitch[0] == RotarySwitch[index])
+ debounce++; // keep tally of equal rotary switch code samples
+ }
+ } while (debounce < (MAX_SWITCH_SAMPLES - 1));
+
+ // decipher state of rotary switch position
+ if (RotarySwitch[0] > 16)
+ RotarySwitch[0] = 16;
+ SevSegDecode = led_data[RotarySwitch[0]];
+
+ // display the rotary switch position on the 7 segment LSD LED as: 0, 1, 2, 3, etc.
+ *(volatile unsigned char *)DISPLAY_RIGHT = SevSegDecode;
+ }
+
+} // end rotary_switch()
+
+
+
+
diff --git a/ecos/packages/hal/arm/xscale/iq80321/current/src/hal_diag.c b/ecos/packages/hal/arm/xscale/iq80321/current/src/hal_diag.c
new file mode 100644
index 0000000..50257e4
--- /dev/null
+++ b/ecos/packages/hal/arm/xscale/iq80321/current/src/hal_diag.c
@@ -0,0 +1,420 @@
+/*=============================================================================
+//
+// hal_diag.c
+//
+// HAL diagnostic output code
+//
+//=============================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): nickg, gthomas
+// Contributors:nickg, gthomas, msalter
+// Date: 1998-03-02
+// Purpose: HAL diagnostic output
+// Description: Implementations of HAL diagnostic output support.
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================*/
+
+#include <pkgconf/hal.h>
+#include CYGBLD_HAL_VARIANT_H // Variant specific configuration
+#include CYGBLD_HAL_PLATFORM_H // Platform specific configuration
+
+#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> // basic machine info
+#include <cyg/hal/hal_intr.h> // interrupt macros
+#include <cyg/hal/hal_io.h> // IO macros
+#include <cyg/hal/hal_diag.h>
+#include <cyg/hal/drv_api.h>
+#include <cyg/hal/hal_if.h> // interface API
+#include <cyg/hal/hal_misc.h> // Helper functions
+#include <cyg/hal/iq80321.h> // platform definitions
+
+/*---------------------------------------------------------------------------*/
+/* From serial_16550.h */
+
+//-----------------------------------------------------------------------------
+// Based on 1.8432 MHz xtal
+
+struct baud_config {
+ cyg_int32 baud_rate;
+ cyg_uint8 msb;
+ cyg_uint8 lsb;
+};
+
+struct baud_config baud_conf[] = {
+ {9600, 0x00, 0x0c},
+ {19200, 0x00, 0x06},
+ {38400, 0x00, 0x03},
+ {57600, 0x00, 0x02},
+ {115200, 0x00, 0x01}};
+
+// Define the serial registers.
+#define CYG_DEV_RBR 0x00 // receiver buffer register, read, dlab = 0
+#define CYG_DEV_THR 0x00 // transmitter holding register, write, dlab = 0
+#define CYG_DEV_DLL 0x00 // divisor latch (LS), read/write, dlab = 1
+#define CYG_DEV_IER 0x01 // interrupt enable register, read/write, dlab = 0
+#define CYG_DEV_DLM 0x01 // divisor latch (MS), read/write, dlab = 1
+#define CYG_DEV_IIR 0x02 // interrupt identification register, read, dlab = 0
+#define CYG_DEV_FCR 0x02 // fifo control register, write, dlab = 0
+#define CYG_DEV_LCR 0x03 // line control register, write
+#define CYG_DEV_MCR 0x04 // modem control register, write
+#define CYG_DEV_LSR 0x05 // line status register, read
+#define CYG_DEV_MSR 0x06 // modem status register, read
+#define CYG_DEV_SCR 0x07 // scratch pad register
+
+// Interrupt Enable Register
+#define SIO_IER_RCV 0x01
+#define SIO_IER_XMT 0x02
+#define SIO_IER_LS 0x04
+#define SIO_IER_MS 0x08
+
+// The line status register bits.
+#define SIO_LSR_DR 0x01 // data ready
+#define SIO_LSR_OE 0x02 // overrun error
+#define SIO_LSR_PE 0x04 // parity error
+#define SIO_LSR_FE 0x08 // framing error
+#define SIO_LSR_BI 0x10 // break interrupt
+#define SIO_LSR_THRE 0x20 // transmitter holding register empty
+#define SIO_LSR_TEMT 0x40 // transmitter register empty
+#define SIO_LSR_ERR 0x80 // any error condition
+
+// The modem status register bits.
+#define SIO_MSR_DCTS 0x01 // delta clear to send
+#define SIO_MSR_DDSR 0x02 // delta data set ready
+#define SIO_MSR_TERI 0x04 // trailing edge ring indicator
+#define SIO_MSR_DDCD 0x08 // delta data carrier detect
+#define SIO_MSR_CTS 0x10 // clear to send
+#define SIO_MSR_DSR 0x20 // data set ready
+#define SIO_MSR_RI 0x40 // ring indicator
+#define SIO_MSR_DCD 0x80 // data carrier detect
+
+// The line control register bits.
+#define SIO_LCR_WLS0 0x01 // word length select bit 0
+#define SIO_LCR_WLS1 0x02 // word length select bit 1
+#define SIO_LCR_STB 0x04 // number of stop bits
+#define SIO_LCR_PEN 0x08 // parity enable
+#define SIO_LCR_EPS 0x10 // even parity select
+#define SIO_LCR_SP 0x20 // stick parity
+#define SIO_LCR_SB 0x40 // set break
+#define SIO_LCR_DLAB 0x80 // divisor latch access bit
+
+// Modem Control Register
+#define SIO_MCR_DTR 0x01
+#define SIO_MCR_RTS 0x02
+
+
+//-----------------------------------------------------------------------------
+typedef struct {
+ cyg_uint8* base;
+ cyg_int32 msec_timeout;
+ int isr_vector;
+ cyg_int32 baud_rate;
+} channel_data_t;
+
+
+//-----------------------------------------------------------------------------
+
+static int
+set_baud( channel_data_t *chan )
+{
+ cyg_uint8* base = chan->base;
+ cyg_uint8 i;
+
+ for (i=0; i<(sizeof(baud_conf)/sizeof(baud_conf[0])); i++)
+ {
+ if (chan->baud_rate == baud_conf[i].baud_rate) {
+ cyg_uint8 lcr;
+ HAL_READ_UINT8(base+CYG_DEV_LCR, lcr);
+ HAL_WRITE_UINT8(base+CYG_DEV_LCR, lcr|SIO_LCR_DLAB);
+ HAL_WRITE_UINT8(base+CYG_DEV_DLL, baud_conf[i].lsb);
+ HAL_WRITE_UINT8(base+CYG_DEV_DLM, baud_conf[i].msb);
+ HAL_WRITE_UINT8(base+CYG_DEV_LCR, lcr);
+ return 1;
+ }
+ }
+ return -1;
+}
+
+static void
+cyg_hal_plf_serial_init_channel(void* __ch_data)
+{
+ cyg_uint8* base = ((channel_data_t*)__ch_data)->base;
+ channel_data_t* chan = (channel_data_t*)__ch_data;
+
+ // 8-1-no parity.
+ HAL_WRITE_UINT8(base+CYG_DEV_LCR, SIO_LCR_WLS0 | SIO_LCR_WLS1);
+ chan->baud_rate = CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_BAUD;
+ set_baud( chan );
+ HAL_WRITE_UINT8(base+CYG_DEV_FCR, 0x07); // Enable & clear FIFO
+}
+
+void
+cyg_hal_plf_serial_putc(void *__ch_data, char c)
+{
+ cyg_uint8* base = ((channel_data_t*)__ch_data)->base;
+ cyg_uint8 lsr;
+ CYGARC_HAL_SAVE_GP();
+
+ do {
+ HAL_READ_UINT8(base+CYG_DEV_LSR, lsr);
+ } while ((lsr & SIO_LSR_THRE) == 0);
+
+ HAL_WRITE_UINT8(base+CYG_DEV_THR, c);
+
+ 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_DEV_LSR, lsr);
+ if ((lsr & SIO_LSR_DR) == 0)
+ return false;
+
+ HAL_READ_UINT8(base+CYG_DEV_RBR, *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;
+}
+
+static channel_data_t plf_ser_channels[1] = {
+ { (cyg_uint8*)IQ80321_UART_ADDR, 1000, CYGNUM_HAL_INTERRUPT_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;
+ int ret = 0;
+ CYGARC_HAL_SAVE_GP();
+
+ switch (__func) {
+ case __COMMCTL_IRQ_ENABLE:
+ irq_state = 1;
+
+ HAL_WRITE_UINT8(chan->base+CYG_DEV_IER, SIO_IER_RCV);
+ HAL_INTERRUPT_UNMASK(chan->isr_vector);
+ break;
+ case __COMMCTL_IRQ_DISABLE:
+ ret = irq_state;
+ irq_state = 0;
+
+ HAL_WRITE_UINT8(chan->base+CYG_DEV_IER, 0);
+ 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);
+ }
+ case __COMMCTL_GETBAUD:
+ ret = chan->baud_rate;
+ break;
+ case __COMMCTL_SETBAUD:
+ {
+ va_list ap;
+ va_start(ap, __func);
+ chan->baud_rate = va_arg(ap, cyg_int32);
+ va_end(ap);
+ ret = set_baud(chan);
+ break;
+ }
+ 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;
+ channel_data_t* chan = (channel_data_t*)__ch_data;
+ char c;
+ cyg_uint8 lsr;
+ CYGARC_HAL_SAVE_GP();
+
+ cyg_drv_interrupt_acknowledge(chan->isr_vector);
+
+ *__ctrlc = 0;
+ HAL_READ_UINT8(chan->base+CYG_DEV_LSR, lsr);
+ if ( (lsr & SIO_LSR_DR) != 0 ) {
+
+ HAL_READ_UINT8(chan->base+CYG_DEV_RBR, 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(plf_ser_channels[0].isr_vector);
+
+ // Init channels
+ cyg_hal_plf_serial_init_channel(&plf_ser_channels[0]);
+
+ // 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, &plf_ser_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);
+
+ // 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();
+}
+
+/*---------------------------------------------------------------------------*/
+
+cyg_uint8 cyg_hal_led_segment[16] = {
+ DISPLAY_0, DISPLAY_1, DISPLAY_2, DISPLAY_3,
+ DISPLAY_4, DISPLAY_5, DISPLAY_6, DISPLAY_7,
+ DISPLAY_8, DISPLAY_9, DISPLAY_A, DISPLAY_B,
+ DISPLAY_C, DISPLAY_D, DISPLAY_E, DISPLAY_F };
+
+void
+hal_diag_led(int n)
+{
+ HAL_WRITE_UINT8(DISPLAY_RIGHT, cyg_hal_led_segment[n & 0x0f]);
+}
+
+/*---------------------------------------------------------------------------*/
+/* End of hal_diag.c */
diff --git a/ecos/packages/hal/arm/xscale/iq80321/current/src/iq80321_misc.c b/ecos/packages/hal/arm/xscale/iq80321/current/src/iq80321_misc.c
new file mode 100644
index 0000000..a48cf8d
--- /dev/null
+++ b/ecos/packages/hal/arm/xscale/iq80321/current/src/iq80321_misc.c
@@ -0,0 +1,123 @@
+//==========================================================================
+//
+// iq80321_misc.c
+//
+// HAL misc board support code for Intel XScale IQ80321
+//
+//==========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//==========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): msalter
+// Contributors: msalter
+// Date: 2001-12-03
+// 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_verde.h> // Hardware definitions
+#include <cyg/hal/iq80321.h> // Platform specifics
+
+#include <cyg/infra/diag.h> // diag_printf
+
+#ifdef CYGPKG_IO_PCI
+cyg_uint32 cyg_pci_window_real_base = 0;
+#endif
+
+//
+// Platform specific initialization
+//
+
+void
+plf_hardware_init(void)
+{
+ INTCTL_WRITE(0); // mask all irqs
+ INTSTR_WRITE(0); // everything goes to IRQ
+ *PIRSR = 0x0f;
+
+// RAM startup only - rewrite relevent bits depending on config
+#ifndef CYG_HAL_STARTUP_ROM
+ HAL_DCACHE_SYNC(); // Force data out
+ HAL_DCACHE_INVALIDATE_ALL(); // Flush TLBs: make new mmu state effective
+#endif // ! CYG_HAL_STARTUP_ROM - RAM start only
+}
+
+//
+// Memory layout - runtime variations of all kinds.
+//
+externC cyg_uint8 *
+hal_arm_mem_real_region_top( cyg_uint8 *regionend )
+{
+ CYG_ASSERT( hal_dram_size > 0, "Didn't detect DRAM size!" );
+ CYG_ASSERT( hal_dram_size <= 256<<20,
+ "More than 256MB reported - that can't be right" );
+ CYG_ASSERT( 0 == (hal_dram_size & 0xfffff),
+ "hal_dram_size not whole Mb" );
+ // is it the "normal" end of the DRAM region? If so, it should be
+ // replaced by the real size
+ if ( regionend ==
+ ((cyg_uint8 *)CYGMEM_REGION_ram + CYGMEM_REGION_ram_SIZE) ) {
+ regionend = (cyg_uint8 *)CYGMEM_REGION_ram + hal_dram_size;
+ }
+ // Also, we must check for the top of the heap having moved. This is
+ // because the heap does not abut the top of memory.
+#ifdef CYGMEM_SECTION_heap1
+ if ( regionend ==
+ ((cyg_uint8 *)CYGMEM_SECTION_heap1 + CYGMEM_SECTION_heap1_SIZE) ) {
+ // hal_dram_size excludes the PCI window on this platform.
+ if ( regionend > (cyg_uint8 *)CYGMEM_REGION_ram + hal_dram_size )
+ regionend = (cyg_uint8 *)CYGMEM_REGION_ram + hal_dram_size;
+ }
+#endif
+ return regionend;
+}
+
+// ------------------------------------------------------------------------
+// EOF iq80321_misc.c
diff --git a/ecos/packages/hal/arm/xscale/iq80321/current/src/iq80321_pci.c b/ecos/packages/hal/arm/xscale/iq80321/current/src/iq80321_pci.c
new file mode 100644
index 0000000..68da724
--- /dev/null
+++ b/ecos/packages/hal/arm/xscale/iq80321/current/src/iq80321_pci.c
@@ -0,0 +1,190 @@
+//==========================================================================
+//
+// iq80321_pci.c
+//
+// HAL support code for IQ80321 PCI
+//
+//==========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//==========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): msalter
+// Contributors: msalter
+// Date: 2002-01-04
+// Purpose: PCI support
+// Description: Implementations of HAL PCI interfaces
+//
+//####DESCRIPTIONEND####
+//
+//========================================================================*/
+
+#include <pkgconf/hal.h>
+#include <pkgconf/system.h>
+#include CYGBLD_HAL_PLATFORM_H
+#include CYGHWR_MEMORY_LAYOUT_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_if.h> // calling interface API
+#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/io/pci_hw.h>
+#include <cyg/io/pci.h>
+
+#ifdef CYGPKG_IO_PCI
+
+cyg_uint32 hal_pci_alloc_base_memory;
+cyg_uint32 hal_pci_alloc_base_io;
+cyg_uint32 hal_pci_physical_memory_base;
+cyg_uint32 hal_pci_physical_io_base;
+cyg_uint32 hal_pci_inbound_window_base;
+cyg_uint32 hal_pci_inbound_window_mask;
+
+//
+// Verde ATU Window Usage:
+// Inbound Window 0 - Access to Verde memory mapped registers.
+// Inbound Window 1 - Used to reserve space for outbound window.
+// Inbound Window 2 - Access to SDRAM
+// Inbound Window 3 - Not used.
+//
+// Direct Outbound Window - Direct mapped.
+// Outbound Translate Window 0 - Access to Inbound Window 1 PCI space
+// Outbound Translate Window 1 - Unused.
+// Outbound IO Window - Unused.
+//
+
+
+#ifdef CYG_HAL_STARTUP_ROM
+#ifdef CYGSEM_HAL_ARM_IQ80321_CLEAR_PCI_RETRY
+// state of retry bit in PCSR prior to bit being cleared at sdram scrub time.
+extern int hal_pcsr_cfg_retry;
+
+// Wait for BIOS to configure Verde PCI.
+// Returns true if BIOS done, false if timeout
+bool
+cyg_hal_plf_wait_for_bios(void)
+{
+ int delay = 200; // 20 seconds, tops
+
+ while (delay-- > 0) {
+ if (*ATU_ATUCMD & CYG_PCI_CFG_COMMAND_MEMORY)
+ return true;
+ hal_delay_us(100000);
+ }
+ return false;
+}
+#endif // CYGSEM_HAL_ARM_IQ80321_CLEAR_PCI_RETRY
+#endif // CYG_HAL_STARTUP_ROM
+
+void
+cyg_hal_plf_pci_init(void)
+{
+ cyg_uint32 dram_limit = (0xFFFFFFFF - (hal_dram_size - 1)) & 0xFFFFFFC0;
+
+ // Enable NIC through GPIO pin. This may not have an effect depending
+ // on switch settings.
+ *GPIO_GPOE &= ~(1 << IQ80321_GBE_GPIO_PIN);
+ *GPIO_GPOD |= (1 << IQ80321_GBE_GPIO_PIN);
+
+ hal_pci_inbound_window_mask = ~dram_limit;
+
+ // Force BAR0 to be non-prefetchable to allow proper MU usage
+ *ATU_IABAR0 &= ~CYG_PRI_CFG_BAR_MEM_PREFETCH;
+
+#ifdef CYG_HAL_STARTUP_ROM
+#ifdef CYGSEM_HAL_ARM_IQ80321_CLEAR_PCI_RETRY
+ if (!hal_pcsr_cfg_retry || !cyg_hal_plf_wait_for_bios())
+#endif // CYGSEM_HAL_ARM_IQ80321_CLEAR_PCI_RETRY
+ {
+ // 64-bit prefetchable
+ *ATU_IABAR2 = SDRAM_PHYS_BASE | \
+ CYG_PRI_CFG_BAR_MEM_TYPE_64 | \
+ CYG_PRI_CFG_BAR_MEM_PREFETCH;
+ *ATU_IAUBAR2 = 0;
+
+ // Outbound window will be set based on the memory reserved
+ // by inbound window 1
+ *ATU_IABAR1 = _PCI_MEM_BASE | \
+ CYG_PRI_CFG_BAR_MEM_TYPE_64 | \
+ CYG_PRI_CFG_BAR_MEM_PREFETCH;
+
+ }
+#endif // CYG_HAL_STARTUP_ROM
+
+ // allow ATU to act as a bus master, respond to PCI memory accesses,
+ // and assert S_SERR#
+ *ATU_ATUCMD = (CYG_PCI_CFG_COMMAND_SERR | \
+ CYG_PCI_CFG_COMMAND_PARITY | \
+ CYG_PCI_CFG_COMMAND_MASTER | \
+ CYG_PCI_CFG_COMMAND_MEMORY);
+
+ hal_pci_alloc_base_memory = *ATU_IABAR1 & CYG_PRI_CFG_BAR_MEM_MASK;
+ hal_pci_alloc_base_io = _PCI_IO_BASE;
+
+ hal_pci_inbound_window_base = *ATU_IABAR2 & CYG_PRI_CFG_BAR_MEM_MASK;
+
+
+ // set the outbound window PCI address
+ *ATU_OMWTVR0 = hal_pci_alloc_base_memory;
+ *ATU_OUMWTVR0 = 0;
+
+ // outbound I/O window
+ *ATU_OIOWTVR = hal_pci_alloc_base_io;
+
+ hal_pci_physical_memory_base = _PCI_MEM_BASE - hal_pci_alloc_base_memory;
+ hal_pci_physical_io_base = _PCI_IO_BASE - hal_pci_alloc_base_io;
+
+#ifdef CYG_HAL_MEMORY_MAP_NORMAL
+ // Adjust for Virt - Phys in CPU space
+ hal_pci_physical_memory_base += 0x20000000;
+ hal_pci_physical_io_base += 0x20000000;
+#endif
+
+ cyg_pci_set_memory_base(HAL_PCI_ALLOC_BASE_MEMORY);
+ cyg_pci_set_io_base(HAL_PCI_ALLOC_BASE_IO);
+
+ // enable outbound ATU
+ *ATU_ATUCR = 2;
+
+ *ATU_APMCSR = 3;
+}
+
+#endif // CYGPKG_IO_PCI
+
+
diff --git a/ecos/packages/hal/arm/xscale/ixdp425/current/ChangeLog b/ecos/packages/hal/arm/xscale/ixdp425/current/ChangeLog
new file mode 100644
index 0000000..ab75689
--- /dev/null
+++ b/ecos/packages/hal/arm/xscale/ixdp425/current/ChangeLog
@@ -0,0 +1,211 @@
+2009-10-16 John Dallaway <john@dallaway.org.uk>
+
+ * cdl/hal_arm_xscale_ixdp425.cdl: Parent under
+ CYGPKG_HAL_ARM_XSCALE_IXP425.
+
+2009-01-31 Bart Veer <bartv@ecoscentric.com>
+
+ * cdl/hal_arm_xscale_ixdp425.cdl: update compiler flags for gcc 4.x
+
+2009-01-24 Bart Veer <bartv@ecoscentric.com>
+
+ * cdl/hal_arm_xscale_ixdp425.cdl: switch from arm-elf-gcc to
+ arm-eabi-gcc.
+
+2006-08-02 Jonathan Larmour <jifl@eCosCentric.com>
+
+ * src/ixdp425_strataflash.c: In CYG_FLASH_FUNS, replace query
+ function with generic nop version.
+ Remove hwr_map_error: it no longer exists for CYG_FLASH_FUNS.
+
+2006-03-01 Mark Salter <msalter@sadr.localdomain>
+
+ * include/hal_platform_setup.h: Fix DELAY macro.
+
+2006-01-31 Jonathan Larmour <jifl@eCosCentric.com>
+
+ * cdl/hal_arm_xscale_ixdp425.cdl
+ (CYGHWR_HAL_ARM_XSCALE_IXDP425_FLASH): New option to support
+ v2 Flash driver.
+ * src/ixdp425_strataflash.c: New v2 flash driver.
+ * include/hal_platform_setup.h: Add uncached Flash mapping.
+ * include/ixdp425.h: Add uncached flash mappings.
+ * include/plf_io.h: Provide CYGARC_UNCACHED_ADDRESS.
+ * misc/redboot*.ecm: Use Strata V2 Flash driver.
+
+2004-09-27 Mark Salter <msalter@redhat.com>
+
+ * misc/redboot_ROMRAM.ecm: Remove CYGHWR_HAL_IXP425_PCI_NP_WORKAROUND.
+ * misc/redboot_ROMRAMLE.ecm: Ditto.
+
+2004-09-20 Mark Salter <msalter@redhat.com>
+
+ * cdl/hal_arm_xscale_ixdp425.cdl: Add -mcpu=xscale to LDFLAGS.
+
+2004-09-19 Mark Salter <msalter@redhat.com>
+
+ * cdl/hal_arm_xscale_ixdp425.cdl: Add -mcpu=xscale to CFLAGS.
+
+ * misc/redboot_ROM.ecm: Add CYGSEM_REDBOOT_NETWORK_INIT_ONE_DEVICE.
+ * misc/redboot_RAM.ecm: Ditto.
+ * misc/redboot_ROMRAM.ecm: Ditto.
+ * misc/redboot_ROMLE.ecm: Ditto.
+ * misc/redboot_RAMLE.ecm: Ditto.
+ * misc/redboot_ROMRAMLE.ecm: Ditto.
+
+2004-09-07 Mark Salter <msalter@redhat.com>
+
+ * misc/redboot_ROM.ecm (CYGBLD_REDBOOT_MIN_IMAGE_SIZE): Set to 0x80000.
+ * misc/redboot_RAM.ecm: Ditto.
+ * misc/redboot_ROMLE.ecm: Ditto.
+ * misc/redboot_RAMLE.ecm: Ditto.
+
+ * include/pkgconf/mlt_arm_xscale_ixdp425_ram.mlt: Move .text to 0x80000.
+ * include/pkgconf/mlt_arm_xscale_ixdp425_ram.ldi: Ditto.
+
+ * include/pkgconf/mlt_arm_xscale_ixdp425_romram.h: New file.
+ * include/pkgconf/mlt_arm_xscale_ixdp425_romram.ldi: Ditto.
+ * include/pkgconf/mlt_arm_xscale_ixdp425_romram.mlt: Ditto.
+ * misc/redboot_ROMRAM.ecm: Ditto.
+ * misc/redboot_ROMRAMLE.ecm:
+
+ * include/hal_platform_setup.h: Support ROMRAM.
+
+2004-09-02 Mark Salter <msalter@redhat.com>
+
+ * src/ixdp425_pci.c: Fix compilation when not configured for PCI.
+ * include/ixdp425.h: Add some defines for use in page table setup.
+ * include/hal_platform_extras.h: Removed.
+ * misc/redboot_ROMLE.ecm: New file.
+ * misc/redboot_RAMLE.ecm: New file.
+ * cdl/hal_arm_xscale_ixdp425.cdl: Add little-endian support.
+ * misc/redboot_RAM.ecm: Ditto.
+ * misc/redboot_ROM.ecm: Ditto.
+ * include/hal_platform_setup.h: Ditto.
+
+2003-06-30 Mark Salter <msalter@redhat.com>
+
+ * include/hal_platform_setup.h: Fix CYGINT_HAL_ARM_BIGENDIAN test.
+ Remove unused ROMRAM cruft.
+
+2003-05-15 Mark Salter <msalter@redhat.com>
+
+ * src/ixdp425_misc.c (plf_hardware_init): Set EEPROM_SCL line high.
+ (eeprom_stop): Leave EEPROM_SCL line high.
+
+2003-04-04 Mark Salter <msalter@redhat.com>
+
+ * include/hal_plf_ints.h: Add GPIO IRQ defines.
+ * include/ixdp425.h: Add GPIO line definitions.
+ * src/ixdp425_misc.c (plf_hardware_init): Setup GPIO IRQ lines.
+ Add support to read/write serial EEPROM. Add support for
+ getting/setting NPE ethernet addresses from EEPROM.
+
+2003-04-02 Mark Salter <msalter@redhat.com>
+
+ * misc/redboot_ROM.ecm: Don't set I82559_WRITE_EEPROM.
+ * misc/redboot_RAM.ecm: Ditto.
+
+2003-03-26 Mark Salter <msalter@redhat.com>
+
+ * src/ixdp425_misc.c (plf_hardware_init): Set up NPE PHY chip
+ selects and clocks.
+
+ * include/hal_plf_ints.h: Define interrupts for NPE PHYs.
+
+2003-02-22 Mark Salter <msalter@redhat.com>
+
+ * misc/redboot_ROM.ecm: Fix linux exec address.
+ * misc/redboot_RAM.ecm: Ditto
+
+ * cdl/hal_arm_xscale_ixdp425.cdl: Fix HAL_PLATFORM_MACHINE_TYPE.
+
+2003-02-13 Mark Salter <msalter@redhat.com>
+
+ * include/hal_platform_extras.h: Move uncached area. Create RAM
+ alias area.
+
+2003-02-12 Mark Salter <msalter@redhat.com>
+
+ * misc/*.ecm: Turn on CYGPKG_DEVS_ETH_INTEL_I82559_WRITE_EEPROM.
+
+2003-01-28 Mark Salter <msalter@redhat.com>
+
+ * misc/redboot_RAM.ecm: Turn on fileio support.
+ * misc/redboot_ROM.ecm: Ditto.
+ * misc/redboot_ROMRAM.ecm: Ditto.
+
+2003-01-22 Mark Salter <msalter@redhat.com>
+
+ * include/hal_platform_setup.h: Tweak LED display.
+
+2002-12-20 Mark Salter <msalter@redhat.com>
+
+ * include/hal_plf_ints.h: Don't use watchdog reset (CPU errata).
+
+2002-12-19 Mark Salter <msalter@redhat.com>
+
+ * include/ixdp425.h (IXP425_EXP_CS0_INIT): Add in bit to allow
+ 8-bit access to 16-bit device.
+
+ * cdl/hal_arm_xscale_ixdp425.cdl: Add back ROM startup now that
+ bus controller supports 8-bit access to flash.
+
+ * include/pkgconf/mlt_arm_xscale_ixdp425_rom.h: Add.
+ * include/pkgconf/mlt_arm_xscale_ixdp425_rom.ldi: Ditto.
+ * include/pkgconf/mlt_arm_xscale_ixdp425_rom.mlt: Ditto.
+
+ * misc/redboot_RAM.ecm: Allow flash verify.
+ * misc/redboot_ROMRAM.ecm: Ditto.
+ * misc/redboot_ROM.ecm: Add.
+
+2002-12-18 Mark Salter <msalter@redhat.com>
+
+ * src/ixdp425_pci.c (cyg_hal_plf_pci_translate_interrupt): Fix
+ interrupt vector determination.
+
+ * include/pkgconf/mlt_arm_xscale_ixdp425_ram.mlt: Adjust start to
+ work with romram startup.
+ * include/pkgconf/mlt_arm_xscale_ixdp425_ram.ldi: Ditto.
+
+2002-12-17 Mark Salter <msalter@redhat.com>
+
+ * misc/redboot_ROMRAM.ecm: New file.
+ * misc/redboot_ROM.ecm: Remove.
+
+ * include/ixdp425.h: Don't define DCACHE_FLUSH_AREA.
+
+ * include/hal_platform_setup.h: Support ROMRAM.
+ * include/hal_platform_extras.h: Ditto.
+ * cdl/hal_arm_xscale_ixdp425.cdl: Ditto.
+
+ * include/pkgconf/mlt_arm_xscale_ixdp425_rom.h: Remove.
+ * include/pkgconf/mlt_arm_xscale_ixdp425_rom.ldi: Ditto.
+ * include/pkgconf/mlt_arm_xscale_ixdp425_rom.mlt: Ditto.
+ * include/pkgconf/mlt_arm_xscale_ixdp425_romram.h: New file.
+ * include/pkgconf/mlt_arm_xscale_ixdp425_romram.ldi: Ditto.
+ * include/pkgconf/mlt_arm_xscale_ixdp425_romram.mlt: Ditto.
+
+//===========================================================================
+// ####GPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2009 Free Software Foundation, Inc.
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 2 or (at your option) any
+// later version.
+//
+// This program is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the
+// Free Software Foundation, Inc., 51 Franklin Street,
+// Fifth Floor, Boston, MA 02110-1301, USA.
+// -------------------------------------------
+// ####GPLCOPYRIGHTEND####
+//===========================================================================
diff --git a/ecos/packages/hal/arm/xscale/ixdp425/current/cdl/hal_arm_xscale_ixdp425.cdl b/ecos/packages/hal/arm/xscale/ixdp425/current/cdl/hal_arm_xscale_ixdp425.cdl
new file mode 100644
index 0000000..e6972cb
--- /dev/null
+++ b/ecos/packages/hal/arm/xscale/ixdp425/current/cdl/hal_arm_xscale_ixdp425.cdl
@@ -0,0 +1,324 @@
+# ====================================================================
+#
+# hal_arm_xscale_ixdp425.cdl
+#
+# Intel XScale IXDP425 Network Processor Eval Board HAL package
+#
+# ====================================================================
+## ####ECOSGPLCOPYRIGHTBEGIN####
+## -------------------------------------------
+## This file is part of eCos, the Embedded Configurable Operating System.
+## Copyright (C) 1998, 1999, 2000, 2001, 2002, 2009 Free Software Foundation, Inc.
+##
+## eCos is free software; you can redistribute it and/or modify it under
+## the terms of the GNU General Public License as published by the Free
+## Software Foundation; either version 2 or (at your option) any later
+## version.
+##
+## eCos is distributed in the hope that it will be useful, but WITHOUT
+## ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+## FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+## for more details.
+##
+## You should have received a copy of the GNU General Public License
+## along with eCos; if not, write to the Free Software Foundation, Inc.,
+## 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+##
+## As a special exception, if other files instantiate templates or use
+## macros or inline functions from this file, or you compile this file
+## and link it with other works to produce a work based on this file,
+## this file does not by itself cause the resulting work to be covered by
+## the GNU General Public License. However the source code for this file
+## must still be made available in accordance with section (3) of the GNU
+## General Public License v2.
+##
+## This exception does not invalidate any other reasons why a work based
+## on this file might be covered by the GNU General Public License.
+## -------------------------------------------
+## ####ECOSGPLCOPYRIGHTEND####
+# ====================================================================
+######DESCRIPTIONBEGIN####
+#
+# Author(s): msalter
+# Contributors: msalter
+# Date: 2002-12-10
+#
+#####DESCRIPTIONEND####
+#
+# ====================================================================
+cdl_package CYGPKG_HAL_ARM_XSCALE_IXDP425 {
+ display "Intel XScale IXDP425 Network Processor Development Platform"
+ parent CYGPKG_HAL_ARM_XSCALE_IXP425
+ implements CYGINT_HAL_ARM_BIGENDIAN
+ hardware
+ include_dir cyg/hal
+ define_header hal_arm_xscale_ixdp425.h
+ description "
+ This HAL platform package provides support for
+ the Intel XScale IXDP425 board."
+
+ compile ixdp425_misc.c ixdp425_pci.c
+
+ 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_xscale_ixp425.h>"
+ puts $::cdl_system_header "#define CYGBLD_HAL_PLATFORM_H <pkgconf/hal_arm_xscale_ixdp425.h>"
+ puts $::cdl_header "#define CYGBLD_HAL_PLF_INTS_H <cyg/hal/hal_plf_ints.h>"
+ puts $::cdl_header "#define HAL_PLATFORM_CPU \"XScale\""
+ puts $::cdl_header "#define HAL_PLATFORM_BOARD \"IXDP425 Development Platform\""
+ puts $::cdl_header "#ifdef CYGHWR_HAL_ARM_BIGENDIAN"
+ puts $::cdl_header "#define HAL_PLATFORM_EXTRA \"BE\""
+ puts $::cdl_header "#else"
+ puts $::cdl_header "#define HAL_PLATFORM_EXTRA \"LE\""
+ puts $::cdl_header "#endif"
+ puts $::cdl_header "#define HAL_PLATFORM_MACHINE_TYPE 245"
+ }
+
+ cdl_component CYG_HAL_STARTUP {
+ display "Startup type"
+ flavor data
+ default_value {"RAM"}
+ legal_values {"RAM" "ROM" "ROMRAM" }
+ no_define
+ define -file system.h CYG_HAL_STARTUP
+ description "
+ When targeting the IXDP425 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 onboard
+ debug software such as RedBoot or eCos GDB stubs. Select 'romram'
+ when building a stand-alone application which will be put
+ into ROM, but execute from RAM."
+ }
+
+ cdl_option CYGHWR_HAL_ARM_XSCALE_IXDP425_FLASH {
+ display "External Intel StrataFLASH memory support"
+ parent CYGPKG_IO_FLASH
+ active_if CYGPKG_IO_FLASH
+ flavor bool
+ default_value 1
+ no_define
+ implements CYGHWR_IO_FLASH_BLOCK_LOCKING
+ compile -library=libextras.a ixdp425_strataflash.c
+ description "
+ The IXDP425 development board is fitted with an external Intel
+ StrataFLASH 28F128J3 FLASH memory device. This option enables
+ support for the StrataFlash."
+ }
+
+ 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-eabi"}
+ 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 { CYGBLD_GLOBAL_WARNFLAGS . CYGBLD_ARCH_CFLAGS .
+ "-mcpu=xscale -g -O2 -ffunction-sections -fdata-sections -fno-rtti -fno-exceptions -mapcs-frame" }
+ 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 { CYGBLD_ARCH_LDFLAGS . "-mcpu=xscale -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" || CYG_HAL_STARTUP == "ROMRAM" }
+ 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) --remove-section=.fixed_vectors -O binary $< $@
+ }
+ }
+ }
+
+ cdl_component CYGPKG_HAL_ARM_XSCALE_IXDP425_OPTIONS {
+ display "Intel XScale Ixdp425 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_XSCALE_IXDP425_CFLAGS_ADD {
+ display "Additional compiler flags"
+ flavor data
+ no_define
+ default_value { "" }
+ description "
+ This option modifies the set of compiler flags for
+ building the XScale Ixdp425 HAL. These flags are used in addition
+ to the set of global flags."
+ }
+
+ cdl_option CYGPKG_HAL_ARM_XSCALE_IXDP425_CFLAGS_REMOVE {
+ display "Suppressed compiler flags"
+ flavor data
+ no_define
+ default_value { "" }
+ description "
+ This option modifies the set of compiler flags for
+ building the XScale Ixdp425 HAL. These flags are removed from
+ the set of global flags if present."
+ }
+
+ cdl_option CYGNUM_HAL_BREAKPOINT_LIST_SIZE {
+ display "Number of breakpoints supported by the HAL."
+ flavor data
+ default_value 32
+ description "
+ This option determines the number of breakpoints supported by the HAL."
+ }
+ }
+
+ cdl_option CYGSEM_HAL_IXP425_PLF_USES_UART1 {
+ display "IXDP425 uses IXP425 high-speed UART"
+ flavor bool
+ default_value 1
+ description "
+ Enable this option if the IXP425 high-speed UART is used
+ as a virtual vector communications channel."
+ }
+
+ cdl_option CYGSEM_HAL_IXP425_PLF_USES_UART2 {
+ display "IXDP425 uses IXP425 console UART"
+ flavor bool
+ default_value 1
+ description "
+ Enable this option if the IXP425 console UART is to be used
+ as a virtual vector communications channel."
+ }
+
+ cdl_component CYGHWR_MEMORY_LAYOUT {
+ display "Memory layout"
+ flavor data
+ no_define
+ calculated { CYG_HAL_STARTUP == "RAM" ? "arm_xscale_ixdp425_ram" : \
+ CYG_HAL_STARTUP == "ROM" ? "arm_xscale_ixdp425_rom" : \
+ "arm_xscale_ixdp425_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_arm_xscale_ixdp425_ram.ldi>" : \
+ CYG_HAL_STARTUP == "ROM" ? "<pkgconf/mlt_arm_xscale_ixdp425_rom.ldi>" : \
+ "<pkgconf/mlt_arm_xscale_ixdp425_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_arm_xscale_ixdp425_ram.h>" : \
+ CYG_HAL_STARTUP == "ROM" ? "<pkgconf/mlt_arm_xscale_ixdp425_rom.h>" : \
+ "<pkgconf/mlt_arm_xscale_ixdp425_romram.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" || CYG_HAL_STARTUP == "ROMRAM" }
+ 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 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_REDBOOT_HAL_OPTIONS {
+ display "Redboot HAL options"
+ flavor none
+ no_define
+ parent CYGPKG_REDBOOT
+ active_if CYGPKG_REDBOOT
+ description "
+ This option lists the target's requirements for a valid Redboot
+ configuration."
+
+ 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 $< $@
+ }
+ }
+ }
+}
diff --git a/ecos/packages/hal/arm/xscale/ixdp425/current/include/hal_platform_setup.h b/ecos/packages/hal/arm/xscale/ixdp425/current/include/hal_platform_setup.h
new file mode 100644
index 0000000..10a85f3
--- /dev/null
+++ b/ecos/packages/hal/arm/xscale/ixdp425/current/include/hal_platform_setup.h
@@ -0,0 +1,391 @@
+#ifndef CYGONCE_HAL_PLATFORM_SETUP_H
+#define CYGONCE_HAL_PLATFORM_SETUP_H
+
+/*=============================================================================
+//
+// hal_platform_setup.h
+//
+// Platform specific support for HAL (assembly code)
+//
+//=============================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002, 2004 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): msalter
+// Contributors: msalter
+// Date: 2002-12-10
+// Purpose: Intel XScale IXPD specific support routines
+// Description:
+// Usage: #include <cyg/hal/hal_platform_setup.h>
+// Only used by "vectors.S"
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================*/
+
+#include <pkgconf/system.h> // System-wide configuration info
+#include CYGBLD_HAL_VARIANT_H // Variant specific configuration
+#include CYGBLD_HAL_PLATFORM_H // Platform specific configuration
+#include <cyg/hal/hal_ixp425.h> // Variant specific hardware definitions
+#include <cyg/hal/hal_mmu.h> // MMU definitions
+#include <cyg/hal/hal_mm.h> // more MMU definitions
+#include <cyg/hal/ixdp425.h> // Platform specific hardware definitions
+
+// ------------------------------------------------------------------------
+// Convenience macros for setting up page table
+//
+.macro IXP_MAP_SDRAM va, c, b, x, p
+ XSCALE_MMU_SECTION SDRAM_PHYS_BASE>>20, \va>>20, SDRAM_SIZE>>20, \c, \b, 3, \x, \p
+.endm
+
+.macro IXP_MAP_EXP_V n, va, sz, c, b, x, p
+ XSCALE_MMU_SECTION (0x500 + ((IXP425_EXP_CS_SIZE * \n) >> 20)), \va>>20, \sz>>20, \c, \b, 3, \x, \p
+.endm
+
+.macro IXP_MAP_EXP n, sz, c, b, x, p
+ IXP_MAP_EXP_V \n, (0x50000000 + (IXP425_EXP_CS_SIZE * \n)), \sz, \c, \b, \x, \p
+.endm
+
+.macro IXP_MAP_IO addr, sz
+ XSCALE_MMU_SECTION \addr>>20, \addr>>20, \sz>>20, 0, 0, 3, 0, 0
+.endm
+
+
+#if defined(CYG_HAL_STARTUP_ROM) || defined(CYG_HAL_STARTUP_ROMRAM)
+#define PLATFORM_SETUP1 _platform_setup1
+#define CYGHWR_HAL_ARM_HAS_MMU
+
+// ------------------------------------------------------------------------
+// Define macro used to diddle the LEDs during early initialization.
+// Can use r0+r1. Argument in \x.
+#define CYGHWR_LED_MACRO DISPLAY \x, r0, r1
+
+// Delay a bit
+.macro DELAY cycles, reg0
+ ldr \reg0, =\cycles
+ subs \reg0, \reg0, #1
+ subne pc, pc, #0xc
+.endm
+
+// ------------------------------------------------------------------------
+// This macro represents the initial startup code for the platform
+ .macro _platform_setup1
+
+#ifdef CYGHWR_HAL_ARM_BIGENDIAN
+ // set big-endian
+ mrc p15, 0, r0, c1, c0, 0
+ orr r0, r0, #0x80
+ mcr p15, 0, r0, c1, c0, 0
+ CPWAIT r0
+#endif
+
+ ldr r0,=(CPSR_IRQ_DISABLE|CPSR_FIQ_DISABLE|CPSR_SUPERVISOR_MODE)
+ msr cpsr, r0
+
+ // invalidate I & D caches & BTB
+ mcr p15, 0, r0, c7, c7, 0
+ CPWAIT r0
+
+ // invalidate I & Data TLB
+ mcr p15, 0, r0, c8, c7, 0
+ CPWAIT r0
+
+ // drain write and fill buffers
+ mcr p15, 0, r0, c7, c10, 4
+ CPWAIT r0
+
+ // disable write buffer coalescing
+ mrc p15, 0, r0, c1, c0, 1
+ orr r0, r0, #1
+ mcr p15, 0, r0, c1, c0, 1
+ CPWAIT r0
+
+ // Setup chip selects
+ ldr r1, =IXP425_EXP_CFG_BASE
+#ifdef IXP425_EXP_CS0_INIT
+ ldr r0, =IXP425_EXP_CS0_INIT
+ str r0, [r1, #IXP425_EXP_CS0]
+#endif
+#ifdef IXP425_EXP_CS1_INIT
+ ldr r0, =IXP425_EXP_CS1_INIT
+ str r0, [r1, #IXP425_EXP_CS1]
+#endif
+#ifdef IXP425_EXP_CS2_INIT
+ ldr r0, =IXP425_EXP_CS2_INIT
+ str r0, [r1, #IXP425_EXP_CS2]
+#endif
+#ifdef IXP425_EXP_CS3_INIT
+ ldr r0, =IXP425_EXP_CS3_INIT
+ str r0, [r1, #IXP425_EXP_CS3]
+#endif
+#ifdef IXP425_EXP_CS4_INIT
+ ldr r0, =IXP425_EXP_CS4_INIT
+ str r0, [r1, #IXP425_EXP_CS4]
+#endif
+#ifdef IXP425_EXP_CS5_INIT
+ ldr r0, =IXP425_EXP_CS5_INIT
+ str r0, [r1, #IXP425_EXP_CS5]
+#endif
+#ifdef IXP425_EXP_CS6_INIT
+ ldr r0, =IXP425_EXP_CS6_INIT
+ str r0, [r1, #IXP425_EXP_CS6]
+#endif
+#ifdef IXP425_EXP_CS7_INIT
+ ldr r0, =IXP425_EXP_CS7_INIT
+ str r0, [r1, #IXP425_EXP_CS7]
+#endif
+
+ DISPLAY 0x1001, r7, r8
+
+ // Enable the Icache
+ mrc p15, 0, r0, c1, c0, 0
+ orr r0, r0, #MMU_Control_I
+ mcr p15, 0, r0, c1, c0, 0
+ CPWAIT r0
+
+ DISPLAY 0x1002, r7, r8
+
+ // Setup SDRAM controller
+
+ ldr r0, =IXP425_SDRAM_CFG_BASE
+
+ ldr r1, =IXP425_SDRAM_CONFIG_INIT
+ str r1, [r0, #IXP425_SDRAM_CONFIG]
+
+ // disable refresh cycles
+ mov r1, #0
+ str r1, [r0, #IXP425_SDRAM_REFRESH]
+
+ // send nop command
+ mov r1, #SDRAM_IR_NOP
+ str r1, [r0, #IXP425_SDRAM_IR]
+ DELAY 0x10000, r1
+
+ // set SDRAM internal refresh val
+ ldr r1, =IXP425_SDRAM_REFRESH_CNT
+ str r1, [r0, #IXP425_SDRAM_REFRESH]
+ DELAY 0x10000, r1
+
+ // send precharge-all command to close all open banks
+ mov r1, #SDRAM_IR_PRECHARGE
+ str r1, [r0, #IXP425_SDRAM_IR]
+ DELAY 0x10000, r1
+
+ // provide 8 auto-refresh cycles
+ mov r1, #SDRAM_IR_AUTO_REFRESH
+ mov r2, #8
+ 1:
+ str r1, [r0, #IXP425_SDRAM_IR]
+ DELAY 0x800, r3
+ subs r2, r2, #1
+ bne 1b
+
+ // set mode register in sdram
+ mov r1, #IXP425_SDRAM_SET_MODE_CMD
+ str r1, [r0, #IXP425_SDRAM_IR]
+ DELAY 0x10000, r1
+
+ // start normal operation
+ mov r1, #SDRAM_IR_NORMAL
+ str r1, [r0, #IXP425_SDRAM_IR]
+ DELAY 0x10000, r1
+
+ DISPLAY 0x1003, r7, r8
+
+ // Enable byte swapping control via page table P bit.
+ ldr r2, =IXP425_EXP_CFG_BASE
+ ldr r1, [r2, #IXP425_EXP_CNFG1]
+ orr r1, r1, #EXP_CNFG1_BYTE_SWAP_EN
+ str r1, [r2, #IXP425_EXP_CNFG1]
+
+ // value to load into pc to jump to real runtime address
+ ldr r0, =1f
+#if defined(CYG_HAL_STARTUP_ROMRAM)
+ // R0 holds a RAM address for ROMRAM startup,
+ // so convert to a flash address.
+ orr r0, r0, #IXDP_FLASH_BASE
+#endif
+
+ // Setup EXP_CNFG0 value to switch EXP bus out of low memory
+ ldr r2, =IXP425_EXP_CFG_BASE
+ ldr r1, [r2, #IXP425_EXP_CNFG0]
+ bic r1, r1, #EXP_CNFG0_MEM_MAP
+ ldr r3, =0xFFFF
+ ldr r4, =IXDP425_LED_DATA
+
+
+ b icache_boundary
+ .p2align 5
+icache_boundary:
+ // Here is where we switch from boot address (0x000000000) to the
+ // actual flash runtime address. We align to cache boundary so we
+ // execute from cache during the switchover. Cachelines are 8 words.
+ str r1, [r2, #IXP425_EXP_CNFG0] // make the EXP bus switch
+ nop
+ nop
+ nop
+ nop
+ mov pc, r0
+ strh r3, [r4] // We should never reach this point. If we do,
+ // display FFFF and loop forever.
+ 0: b 0b
+ 1:
+
+ DISPLAY 0x1004, r7, r8
+
+#if defined(CYG_HAL_STARTUP_ROMRAM)
+ mov r0, #IXDP_FLASH_BASE
+ mov r1, #SDRAM_PHYS_BASE
+ ldr r2, =__ram_data_end
+20: ldr r3, [r0],#4
+ str r3, [r1],#4
+ cmp r1, r2
+ bne 20b
+
+ // start executing from RAM
+ ldr r0, =30f
+ mov pc, r0
+30:
+#endif
+
+ // Build mmu tables into RAM so page table walks by the cpu
+ // don't interfere with FLASH programming.
+ mov r1, #SDRAM_PHYS_BASE
+ orr r1, r1, #0x4000 // RAM tables
+ add r2, r1, #0x4000 // End of tables
+
+ // First clear table
+ mov r0, #0
+ 1:
+ str r0, [r1], #4
+ cmp r1, r2
+ bne 1b
+
+ // Build section mappings
+ IXP_MAP_SDRAM SDRAM_BASE, 1, 0, 0, 0 // Cached SDRAM
+ IXP_MAP_SDRAM SDRAM_ALIAS_BASE, 1, 0, 0, 0 // Cached SDRAM alias
+ IXP_MAP_SDRAM SDRAM_UNCACHED_BASE, 0, 0, 0, 0 // Uncached SDRAM
+ IXP_MAP_SDRAM SDRAM_DC_BASE, 1, 0, 0, 1 // Cached data coherent SDRAM
+
+ IXP_MAP_EXP 0, IXDP_FLASH_SIZE, 1, 0, 0, 0 // Flash
+ IXP_MAP_EXP 2, IXDP425_LED_SIZE, 0, 0, 0, 0 // LED
+ IXP_MAP_EXP 4, (1 << 20), 0, 0, 0, 0 // NPE use
+ IXP_MAP_EXP 5, (1 << 20), 0, 0, 0, 0 // NPE use
+
+ IXP_MAP_EXP_V 0, IXDP_FLASH_DC_BASE, IXDP_FLASH_SIZE, 1, 0, 0, 1 // data coherent flash
+ IXP_MAP_EXP_V 0, IXDP_FLASH_UNCACHED_BASE, IXDP_FLASH_SIZE, 0, 0, 0, 0 // uncached flash
+
+ IXP_MAP_IO IXP425_PCI_WINDOW_BASE, IXP425_PCI_WINDOW_SIZE
+ IXP_MAP_IO IXP425_QMGR_BASE, IXP425_QMGR_SIZE
+ IXP_MAP_IO IXP425_PCI_CFG_BASE, IXP425_PCI_CFG_SIZE
+ IXP_MAP_IO IXP425_EXP_CFG_BASE, IXP425_EXP_CFG_SIZE
+ IXP_MAP_IO IXP425_MISC_CFG_BASE, IXP425_MISC_CFG_SIZE
+ IXP_MAP_IO IXP425_SDRAM_CFG_BASE, IXP425_SDRAM_CFG_SIZE
+
+ DISPLAY 0x1005, r7, r8
+
+ mcr p15, 0, r0, c7, c10, 4 // drain the write & fill buffers
+ CPWAIT r0
+
+ // Set the TTB register to DRAM mmu_table
+ ldr r0, =(SDRAM_PHYS_BASE | 0x4000) // RAM tables
+ mcr p15, 0, r0, c2, c0, 0 // load page table pointer
+ CPWAIT r0
+
+ // enable permission checks in all domains
+ ldr r0, =0x55555555
+ mcr p15, 0, r0, c3, c0, 0
+ CPWAIT r0
+
+ DISPLAY 0x1006, r7, r8
+
+ // enable mmu
+ mrc p15, 0, r0, c1, c0, 0
+ orr r0, r0, #MMU_Control_M
+ orr r0, r0, #MMU_Control_R
+ mcr p15, 0, r0, c1, c0, 0
+ CPWAIT r0
+
+ DISPLAY 0x1007, r7, r8
+
+ // enable D cache
+ mrc p15, 0, r0, c1, c0, 0
+ orr r0, r0, #MMU_Control_C
+ mcr p15, 0, r0, c1, c0, 0
+ CPWAIT r0
+
+ DISPLAY 0x1008, r7, r8
+
+ // Enable branch target buffer
+ mrc p15, 0, r0, c1, c0, 0
+ orr r0, r0, #MMU_Control_BTB
+ mcr p15, 0, r0, c1, c0, 0
+ CPWAIT r0
+
+ DISPLAY 0x1009, r7, r8
+
+ mcr p15, 0, r0, c7, c10, 4 // drain the write & fill buffers
+ CPWAIT r0
+
+ mcr p15, 0, r0, c7, c7, 0 // flush Icache, Dcache and BTB
+ CPWAIT r0
+
+ mcr p15, 0, r0, c8, c7, 0 // flush instuction and data TLBs
+ CPWAIT r0
+
+ mcr p15, 0, r0, c7, c10, 4 // drain the write & fill buffers
+ CPWAIT r0
+
+ DISPLAY 0x100A, r7, r8
+
+ // save SDRAM size
+ ldr r1, =hal_dram_size /* [see hal_intr.h] */
+ mov r8, #SDRAM_SIZE
+ str r8, [r1]
+
+ DISPLAY 0x100B, r7, r8
+
+ .endm // _platform_setup1
+
+#else // defined(CYG_HAL_STARTUP_ROM)
+#define PLATFORM_SETUP1
+#endif
+
+#define PLATFORM_VECTORS _platform_vectors
+ .macro _platform_vectors
+ .endm
+
+/*---------------------------------------------------------------------------*/
+/* end of hal_platform_setup.h */
+#endif /* CYGONCE_HAL_PLATFORM_SETUP_H */
diff --git a/ecos/packages/hal/arm/xscale/ixdp425/current/include/hal_plf_ints.h b/ecos/packages/hal/arm/xscale/ixdp425/current/include/hal_plf_ints.h
new file mode 100644
index 0000000..07e3893
--- /dev/null
+++ b/ecos/packages/hal/arm/xscale/ixdp425/current/include/hal_plf_ints.h
@@ -0,0 +1,83 @@
+#ifndef CYGONCE_HAL_PLF_INTS_H
+#define CYGONCE_HAL_PLF_INTS_H
+//==========================================================================
+//
+// hal_plf_ints.h
+//
+// HAL Platform Interrupt support
+//
+//==========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//==========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): msalter
+// Contributors: msalter
+// Date: 2002-07-15
+// Purpose: Define Interrupt support
+// Description: The interrupt details for a specific platform is defined here.
+// Usage:
+//
+//
+//####DESCRIPTIONEND####
+//
+//==========================================================================
+
+// start with variant ints
+#include CYGBLD_HAL_VAR_INTS_H
+
+#define CYGNUM_HAL_INTERRUPT_ETH1 CYGNUM_HAL_INTERRUPT_GPIO5
+#define CYGNUM_HAL_INTERRUPT_ETH0 CYGNUM_HAL_INTERRUPT_GPIO4
+#define CYGNUM_HAL_INTERRUPT_HSS0 CYGNUM_HAL_INTERRUPT_GPIO3
+#define CYGNUM_HAL_INTERRUPT_HSS1 CYGNUM_HAL_INTERRUPT_GPIO2
+#define CYGNUM_HAL_INTERRUPT_DSL CYGNUM_HAL_INTERRUPT_GPIO1
+
+// NB: Commented out because of errata on reset function of watchdog timer
+//
+#if 0
+#define HAL_PLATFORM_RESET() \
+ CYG_MACRO_START \
+ cyg_uint32 __ctrl; \
+ /* By disabling interupts we will just hang in the loop below */ \
+ /* if for some reason the software reset fails. */ \
+ HAL_DISABLE_INTERRUPTS(__ctrl); \
+ *IXP425_OST_WDOG_KEY = 0x482e; \
+ *IXP425_OST_WDOG = 10; \
+ *IXP425_OST_WDOG_ENA = 5; \
+ for(;;); /* hang here forever if reset fails */ \
+ CYG_MACRO_END
+#else
+#define HAL_PLATFORM_RESET() CYG_EMPTY_STATEMENT
+#endif
+
+#endif // CYGONCE_HAL_PLF_INTS_H
diff --git a/ecos/packages/hal/arm/xscale/ixdp425/current/include/ixdp425.h b/ecos/packages/hal/arm/xscale/ixdp425/current/include/ixdp425.h
new file mode 100644
index 0000000..e2288dc
--- /dev/null
+++ b/ecos/packages/hal/arm/xscale/ixdp425/current/include/ixdp425.h
@@ -0,0 +1,133 @@
+#ifndef CYGONCE_HAL_ARM_XSCALE_IXDP425_IXDP425_H
+#define CYGONCE_HAL_ARM_XSCALE_IXDP425_IXDP425_H
+
+/*=============================================================================
+//
+// ixdp425.h
+//
+// Platform specific support (register layout, etc)
+//
+//=============================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): msalter
+// Contributors: msalter
+// Date: 2002-12-10
+// Purpose: Intel IXDP425 specific support routines
+// Description:
+// Usage: #include <cyg/hal/ixdp425.h>
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================*/
+
+#include <pkgconf/system.h>
+#include CYGHWR_MEMORY_LAYOUT_H
+#include <pkgconf/hal_arm_xscale_ixdp425.h>
+#include <cyg/hal/hal_ixp425.h>
+
+// These must match setup in the page table in hal_platform_extras.h
+#define SDRAM_PHYS_BASE 0x00000000
+#define SDRAM_BASE 0x00000000
+#define SDRAM_ALIAS_BASE 0x10000000
+#define SDRAM_UNCACHED_BASE 0x20000000
+#define SDRAM_DC_BASE 0x30000000
+#define SDRAM_SIZE 0x10000000 // 256MB
+
+#define IXDP425_LED_BASE 0x52000000
+#define IXDP425_LED_SIZE 0x00100000
+#define IXDP425_LED_DATA REG16(0, IXDP425_LED_BASE)
+
+#define IXDP_FLASH_BASE 0x50000000
+#define IXDP_FLASH_SIZE 0x01000000
+#define IXDP_FLASH_DC_BASE 0xA0000000
+#define IXDP_FLASH_UNCACHED_BASE 0xB0000000
+
+// CS0 (flash optimum timing)
+#define IXP425_EXP_CS0_INIT \
+ (EXP_ADDR_T(3) | EXP_SETUP_T(3) | EXP_STROBE_T(15) | EXP_HOLD_T(3) | \
+ EXP_RECOVERY_T(15) | EXP_SZ_16M | EXP_WR_EN | EXP_BYTE_RD16 | EXP_CS_EN)
+
+// CS2 (LED display)
+#define IXP425_EXP_CS2_INIT \
+ (EXP_ADDR_T(3) | EXP_SETUP_T(3) | EXP_STROBE_T(15) | EXP_HOLD_T(3) | \
+ EXP_RECOVERY_T(15) | EXP_SZ_512 | EXP_WR_EN | EXP_CS_EN)
+
+#define IXP425_SDRAM_CONFIG_INIT (SDRAM_CONFIG_CAS_3 | SDRAM_CONFIG_4x32Mx16)
+#define IXP425_SDRAM_REFRESH_CNT 0x081
+#define IXP425_SDRAM_SET_MODE_CMD SDRAM_IR_MODE_SET_CAS3
+
+// ------------------------------------------------------------------------
+// GPIO lines
+
+#define GPIO_EEPROM_SDA 7
+#define GPIO_EEPROM_SCL 6
+#define GPIO_ENET1_INT_N 5
+#define GPIO_ENET0_INT_N 4
+#define GPIO_HSS0_INT_N 3
+#define GPIO_HSS1_INT_N 2
+#define GPIO_DSL_INT_N 1
+
+// ------------------------------------------------------------------------
+// 4 Digit Hex Display
+//
+// The board has two 4 hex digit display controlled by three board registers.
+// Each digit has a decimal point and may be individually blanked.
+
+#ifdef __ASSEMBLER__
+ // Display hex digits in 'value' not masked by 'mask'.
+ .macro DISPLAY value, reg0, reg1
+ ldr \reg0, =\value
+ ldr \reg1, =IXDP425_LED_DATA
+ strh \reg0, [\reg1]
+#if 0
+ // delay
+ ldr \reg0, =0x780000
+ 0:
+ subs \reg0, \reg0, #1
+ bne 0b
+#endif
+ .endm
+#else
+static inline void HEX_DISPLAY(int value)
+{
+ *IXDP425_LED_DATA = value;
+}
+#endif // __ASSEMBLER__
+
+// ------------------------------------------------------------------------
+
+#endif // CYGONCE_HAL_ARM_XSCALE_IXDP425_IXDP425_H
+// EOF ixdp425.h
diff --git a/ecos/packages/hal/arm/xscale/ixdp425/current/include/pkgconf/mlt_arm_xscale_ixdp425_ram.h b/ecos/packages/hal/arm/xscale/ixdp425/current/include/pkgconf/mlt_arm_xscale_ixdp425_ram.h
new file mode 100644
index 0000000..bcaa2e4
--- /dev/null
+++ b/ecos/packages/hal/arm/xscale/ixdp425/current/include/pkgconf/mlt_arm_xscale_ixdp425_ram.h
@@ -0,0 +1,18 @@
+// eCos memory layout - Fri Oct 20 05:56:24 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 (0)
+#define CYGMEM_REGION_ram_SIZE (0x10000000)
+#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 (0x10000000 - (size_t) CYG_LABEL_NAME (__heap1))
+
diff --git a/ecos/packages/hal/arm/xscale/ixdp425/current/include/pkgconf/mlt_arm_xscale_ixdp425_ram.ldi b/ecos/packages/hal/arm/xscale/ixdp425/current/include/pkgconf/mlt_arm_xscale_ixdp425_ram.ldi
new file mode 100644
index 0000000..38f87c5
--- /dev/null
+++ b/ecos/packages/hal/arm/xscale/ixdp425/current/include/pkgconf/mlt_arm_xscale_ixdp425_ram.ldi
@@ -0,0 +1,27 @@
+// eCos memory layout - Fri Oct 20 05:56:24 2000
+
+// This is a generated file - do not edit
+
+#include <cyg/infra/cyg_type.inc>
+
+MEMORY
+{
+ ram : ORIGIN = 0, LENGTH = 0x10000000
+}
+
+SECTIONS
+{
+ SECTIONS_BEGIN
+ SECTION_fixed_vectors (ram, 0x20, LMA_EQ_VMA)
+ SECTION_rom_vectors (ram, 0x80000, 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)
+ CYG_LABEL_DEFN(__heap1) = ALIGN (0x8);
+ SECTIONS_END
+}
diff --git a/ecos/packages/hal/arm/xscale/ixdp425/current/include/pkgconf/mlt_arm_xscale_ixdp425_ram.mlt b/ecos/packages/hal/arm/xscale/ixdp425/current/include/pkgconf/mlt_arm_xscale_ixdp425_ram.mlt
new file mode 100644
index 0000000..30ce459
--- /dev/null
+++ b/ecos/packages/hal/arm/xscale/ixdp425/current/include/pkgconf/mlt_arm_xscale_ixdp425_ram.mlt
@@ -0,0 +1,14 @@
+version 0
+region ram 0 10000000 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 80000 80000 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 1 0 1 heap1 heap1 !
+section heap1 0 8 0 0 0 0 0 0 !
+
diff --git a/ecos/packages/hal/arm/xscale/ixdp425/current/include/pkgconf/mlt_arm_xscale_ixdp425_rom.h b/ecos/packages/hal/arm/xscale/ixdp425/current/include/pkgconf/mlt_arm_xscale_ixdp425_rom.h
new file mode 100644
index 0000000..7e38c68
--- /dev/null
+++ b/ecos/packages/hal/arm/xscale/ixdp425/current/include/pkgconf/mlt_arm_xscale_ixdp425_rom.h
@@ -0,0 +1,20 @@
+// eCos memory layout - Tue Jul 02 10:03:04 2002
+
+// This is a generated file - do not edit
+
+#ifndef __ASSEMBLER__
+#include <cyg/infra/cyg_type.h>
+#include <stddef.h>
+
+#endif
+#define CYGMEM_REGION_ram (0)
+#define CYGMEM_REGION_ram_SIZE (0x10000000)
+#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)
+#ifndef __ASSEMBLER__
+extern char CYG_LABEL_NAME (__heap1) [];
+#endif
+#define CYGMEM_SECTION_heap1 (CYG_LABEL_NAME (__heap1))
+#define CYGMEM_SECTION_heap1_SIZE (0x10000000 - (size_t) CYG_LABEL_NAME (__heap1))
diff --git a/ecos/packages/hal/arm/xscale/ixdp425/current/include/pkgconf/mlt_arm_xscale_ixdp425_rom.ldi b/ecos/packages/hal/arm/xscale/ixdp425/current/include/pkgconf/mlt_arm_xscale_ixdp425_rom.ldi
new file mode 100644
index 0000000..3de10ac
--- /dev/null
+++ b/ecos/packages/hal/arm/xscale/ixdp425/current/include/pkgconf/mlt_arm_xscale_ixdp425_rom.ldi
@@ -0,0 +1,29 @@
+// eCos memory layout - Tue Jul 02 10:03:04 2002
+
+// This is a generated file - do not edit
+
+#include <cyg/infra/cyg_type.inc>
+
+MEMORY
+{
+ ram : ORIGIN = 0, LENGTH = 0x10000000
+ 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_mmu_tables (rom, ALIGN (0x4000), LMA_EQ_VMA)
+ SECTION_fixed_vectors (ram, 0x20, LMA_EQ_VMA)
+ SECTION_data (ram, 0x8000, FOLLOWING (.mmu_tables))
+ SECTION_bss (ram, ALIGN (0x4), LMA_EQ_VMA)
+ CYG_LABEL_DEFN(__heap1) = ALIGN (0x8);
+ SECTIONS_END
+}
diff --git a/ecos/packages/hal/arm/xscale/ixdp425/current/include/pkgconf/mlt_arm_xscale_ixdp425_rom.mlt b/ecos/packages/hal/arm/xscale/ixdp425/current/include/pkgconf/mlt_arm_xscale_ixdp425_rom.mlt
new file mode 100644
index 0000000..0e10e42
--- /dev/null
+++ b/ecos/packages/hal/arm/xscale/ixdp425/current/include/pkgconf/mlt_arm_xscale_ixdp425_rom.mlt
@@ -0,0 +1,15 @@
+version 0
+region ram 0 10000000 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 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 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 1 0 1 mmu_tables mmu_tables !
+section mmu_tables 0 4000 0 1 0 0 0 1 data !
diff --git a/ecos/packages/hal/arm/xscale/ixdp425/current/include/pkgconf/mlt_arm_xscale_ixdp425_romram.h b/ecos/packages/hal/arm/xscale/ixdp425/current/include/pkgconf/mlt_arm_xscale_ixdp425_romram.h
new file mode 100644
index 0000000..52ecb46
--- /dev/null
+++ b/ecos/packages/hal/arm/xscale/ixdp425/current/include/pkgconf/mlt_arm_xscale_ixdp425_romram.h
@@ -0,0 +1,21 @@
+// eCos memory layout - Fri Oct 20 05:56:24 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 (0)
+#define CYGMEM_REGION_ram_SIZE (0x10000000)
+#define CYGMEM_REGION_ram_ATTR (CYGMEM_REGION_ATTR_R | CYGMEM_REGION_ATTR_W)
+#define CYGMEM_REGION_rom (0x50000000)
+#define CYGMEM_REGION_rom_SIZE (0x01000000)
+#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 (0x10000000 - (size_t) CYG_LABEL_NAME (__heap1))
+
diff --git a/ecos/packages/hal/arm/xscale/ixdp425/current/include/pkgconf/mlt_arm_xscale_ixdp425_romram.ldi b/ecos/packages/hal/arm/xscale/ixdp425/current/include/pkgconf/mlt_arm_xscale_ixdp425_romram.ldi
new file mode 100644
index 0000000..4e8099a
--- /dev/null
+++ b/ecos/packages/hal/arm/xscale/ixdp425/current/include/pkgconf/mlt_arm_xscale_ixdp425_romram.ldi
@@ -0,0 +1,28 @@
+// eCos memory layout - Fri Oct 20 05:56:24 2000
+
+// This is a generated file - do not edit
+
+#include <cyg/infra/cyg_type.inc>
+
+MEMORY
+{
+ ram : ORIGIN = 0, LENGTH = 0x10000000
+}
+
+SECTIONS
+{
+ SECTIONS_BEGIN
+ SECTION_rom_vectors (ram, 0x00000000, LMA_EQ_VMA)
+ SECTION_fixed_vectors (ram, 0x20, LMA_EQ_VMA)
+ SECTION_text (ram, 0x8000, 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_got (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)
+ CYG_LABEL_DEFN(__heap1) = ALIGN (0x8);
+ SECTIONS_END
+}
diff --git a/ecos/packages/hal/arm/xscale/ixdp425/current/include/pkgconf/mlt_arm_xscale_ixdp425_romram.mlt b/ecos/packages/hal/arm/xscale/ixdp425/current/include/pkgconf/mlt_arm_xscale_ixdp425_romram.mlt
new file mode 100644
index 0000000..25e3fcb
--- /dev/null
+++ b/ecos/packages/hal/arm/xscale/ixdp425/current/include/pkgconf/mlt_arm_xscale_ixdp425_romram.mlt
@@ -0,0 +1,14 @@
+version 0
+region ram 0 10000000 0 !
+section rom_vectors 0 1 0 1 1 1 1 1 0 0 text text !
+section fixed_vectors 0 1 0 1 1 0 1 0 20 20 !
+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 1 0 1 heap1 heap1 !
+section heap1 0 8 0 0 0 0 0 0 !
+
diff --git a/ecos/packages/hal/arm/xscale/ixdp425/current/include/plf_io.h b/ecos/packages/hal/arm/xscale/ixdp425/current/include/plf_io.h
new file mode 100644
index 0000000..88eb520
--- /dev/null
+++ b/ecos/packages/hal/arm/xscale/ixdp425/current/include/plf_io.h
@@ -0,0 +1,71 @@
+#ifndef CYGONCE_PLF_IO_H
+#define CYGONCE_PLF_IO_H
+
+//=============================================================================
+//
+// plf_io.h
+//
+// Platform specific IO support
+//
+//=============================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): msalter
+// Contributors: msalter
+// Date: 2002-01-10
+// Purpose: Intel IXDP425 IO support macros
+// Description:
+// Usage: #include <cyg/hal/plf_io.h>
+//
+//####DESCRIPTIONEND####
+//
+//=============================================================================
+
+#include <pkgconf/hal.h>
+#include <cyg/hal/ixdp425.h>
+#include CYGBLD_HAL_PLF_INTS_H
+
+// Override IXP425 variant CYGARC_UNCACHED_ADDRESS definition
+#define CYGARC_UNCACHED_ADDRESS(x) \
+ ((((cyg_uint32)(x)) < 0x10000000) ? (((cyg_uint32)(x))+0x20000000) : \
+ ((((cyg_uint32)(x)) >= IXDP_FLASH_BASE) && (((cyg_uint32)(x)) < (IXDP_FLASH_BASE+IXDP_FLASH_SIZE))) ? \
+ ((x)+(IXDP_FLASH_UNCACHED_BASE-IXDP_FLASH_BASE)) : \
+ (x))
+
+#include <cyg/hal/hal_io.h> // IO macros
+
+//-----------------------------------------------------------------------------
+// end of plf_io.h
+#endif // CYGONCE_PLF_IO_H
diff --git a/ecos/packages/hal/arm/xscale/ixdp425/current/misc/redboot_RAM.ecm b/ecos/packages/hal/arm/xscale/ixdp425/current/misc/redboot_RAM.ecm
new file mode 100644
index 0000000..dba23d3
--- /dev/null
+++ b/ecos/packages/hal/arm/xscale/ixdp425/current/misc/redboot_RAM.ecm
@@ -0,0 +1,128 @@
+cdl_savefile_version 1;
+cdl_savefile_command cdl_savefile_version {};
+cdl_savefile_command cdl_savefile_command {};
+cdl_savefile_command cdl_configuration { description hardware template package };
+cdl_savefile_command cdl_package { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_component { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_option { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_interface { value_source user_value wizard_value inferred_value };
+
+cdl_configuration eCos {
+ description "" ;
+ hardware ixdp425 ;
+ template redboot ;
+ package -hardware CYGPKG_HAL_ARM current ;
+ package -hardware CYGPKG_HAL_ARM_XSCALE_CORE current ;
+ package -hardware CYGPKG_HAL_ARM_XSCALE_IXP425 current ;
+ package -hardware CYGPKG_HAL_ARM_XSCALE_IXDP425 current ;
+ package -hardware CYGPKG_DEVS_FLASH_STRATA_V2 current ;
+ package -hardware CYGPKG_DEVS_ETH_INTEL_I82559 current ;
+ package -hardware CYGPKG_DEVS_ETH_ARM_IXDP425_I82559 current ;
+ package -template CYGPKG_HAL current ;
+ package -template CYGPKG_INFRA current ;
+ package -template CYGPKG_REDBOOT current ;
+ package -template CYGPKG_ISOINFRA current ;
+ package -template CYGPKG_LIBC_STRING current ;
+ package -template CYGPKG_CRC current ;
+ package CYGPKG_IO_FLASH current ;
+ package CYGPKG_IO_ETH_DRIVERS current ;
+ package CYGPKG_MEMALLOC current ;
+ package CYGPKG_COMPRESS_ZLIB current ;
+};
+
+cdl_component CYG_HAL_STARTUP {
+ user_value RAM
+};
+
+cdl_option CYGBLD_BUILD_GDB_STUBS {
+ user_value 0
+};
+
+cdl_option CYGFUN_LIBC_STRING_BSD_FUNCS {
+ inferred_value 0
+};
+
+cdl_option CYGNUM_HAL_COMMON_INTERRUPTS_STACK_SIZE {
+ user_value 4096
+};
+
+cdl_option CYGDBG_HAL_COMMON_INTERRUPTS_SAVE_MINIMUM_CONTEXT {
+ user_value 0
+};
+
+cdl_option CYGDBG_HAL_COMMON_CONTEXT_SAVE_MINIMUM {
+ inferred_value 0
+};
+
+cdl_option CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS {
+ inferred_value 1
+};
+
+cdl_option CYGDBG_HAL_DEBUG_GDB_CTRLC_SUPPORT {
+ inferred_value 0
+};
+
+cdl_option CYGSEM_HAL_USE_ROM_MONITOR {
+ inferred_value 0 0
+};
+
+cdl_component CYGBLD_BUILD_REDBOOT {
+ user_value 1
+};
+
+cdl_option CYGBLD_REDBOOT_MIN_IMAGE_SIZE {
+ inferred_value 0x80000
+};
+
+cdl_component CYGSEM_REDBOOT_FLASH_CONFIG {
+ user_value 1
+};
+
+cdl_component CYGSEM_REDBOOT_BSP_SYSCALLS {
+ inferred_value 1
+};
+
+cdl_option CYGHWR_REDBOOT_ARM_LINUX_EXEC_ADDRESS_DEFAULT {
+ inferred_value 0x6000000
+};
+
+cdl_option CYGHWR_HAL_IXP425_PCI_NP_WORKAROUND {
+ inferred_value 1
+};
+
+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_BSD_FUNCS_HEADER {
+ inferred_value 1 <cyg/libc/string/bsdstring.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 CYGPKG_HAL_GDB_FILEIO {
+ user_value 1
+};
+
+cdl_option CYGHWR_REDBOOT_LINUX_EXEC_X_SWITCH {
+ user_value 1
+}
+
+cdl_option CYGSEM_REDBOOT_NETWORK_INIT_ONE_DEVICE {
+ user_value 1
+};
+
+cdl_option CYGHWR_HAL_ARM_BIGENDIAN {
+ user_value 1
+};
+
diff --git a/ecos/packages/hal/arm/xscale/ixdp425/current/misc/redboot_RAMLE.ecm b/ecos/packages/hal/arm/xscale/ixdp425/current/misc/redboot_RAMLE.ecm
new file mode 100644
index 0000000..29478e9
--- /dev/null
+++ b/ecos/packages/hal/arm/xscale/ixdp425/current/misc/redboot_RAMLE.ecm
@@ -0,0 +1,131 @@
+cdl_savefile_version 1;
+cdl_savefile_command cdl_savefile_version {};
+cdl_savefile_command cdl_savefile_command {};
+cdl_savefile_command cdl_configuration { description hardware template package };
+cdl_savefile_command cdl_package { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_component { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_option { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_interface { value_source user_value wizard_value inferred_value };
+
+cdl_configuration eCos {
+ description "" ;
+ hardware ixdp425 ;
+ template redboot ;
+ package -hardware CYGPKG_HAL_ARM current ;
+ package -hardware CYGPKG_HAL_ARM_XSCALE_CORE current ;
+ package -hardware CYGPKG_HAL_ARM_XSCALE_IXP425 current ;
+ package -hardware CYGPKG_HAL_ARM_XSCALE_IXDP425 current ;
+ package -hardware CYGPKG_DEVS_FLASH_STRATA_V2 current ;
+ package -hardware CYGPKG_DEVS_ETH_INTEL_I82559 current ;
+ package -hardware CYGPKG_DEVS_ETH_ARM_IXDP425_I82559 current ;
+ package -template CYGPKG_HAL current ;
+ package -template CYGPKG_INFRA current ;
+ package -template CYGPKG_REDBOOT current ;
+ package -template CYGPKG_ISOINFRA current ;
+ package -template CYGPKG_LIBC_STRING current ;
+ package -template CYGPKG_CRC current ;
+ package CYGPKG_IO_FLASH current ;
+ package CYGPKG_IO_ETH_DRIVERS current ;
+ package CYGPKG_MEMALLOC current ;
+ package CYGPKG_COMPRESS_ZLIB current ;
+};
+
+cdl_component CYG_HAL_STARTUP {
+ user_value RAM
+};
+
+cdl_option CYGBLD_BUILD_GDB_STUBS {
+ user_value 0
+};
+
+cdl_option CYGFUN_LIBC_STRING_BSD_FUNCS {
+ inferred_value 0
+};
+
+cdl_option CYGNUM_HAL_COMMON_INTERRUPTS_STACK_SIZE {
+ user_value 4096
+};
+
+cdl_option CYGDBG_HAL_COMMON_INTERRUPTS_SAVE_MINIMUM_CONTEXT {
+ user_value 0
+};
+
+cdl_option CYGDBG_HAL_COMMON_CONTEXT_SAVE_MINIMUM {
+ inferred_value 0
+};
+
+cdl_option CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS {
+ inferred_value 1
+};
+
+cdl_option CYGDBG_HAL_DEBUG_GDB_CTRLC_SUPPORT {
+ inferred_value 0
+};
+
+cdl_option CYGSEM_HAL_USE_ROM_MONITOR {
+ inferred_value 0 0
+};
+
+cdl_component CYGBLD_BUILD_REDBOOT {
+ user_value 1
+};
+
+cdl_option CYGBLD_REDBOOT_MIN_IMAGE_SIZE {
+ inferred_value 0x80000
+};
+
+cdl_component CYGSEM_REDBOOT_FLASH_CONFIG {
+ user_value 1
+};
+
+cdl_component CYGSEM_REDBOOT_BSP_SYSCALLS {
+ inferred_value 1
+};
+
+cdl_option CYGHWR_REDBOOT_ARM_LINUX_EXEC_ADDRESS_DEFAULT {
+ inferred_value 0x6000000
+};
+
+cdl_option CYGHWR_HAL_IXP425_PCI_NP_WORKAROUND {
+ inferred_value 1
+};
+
+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_BSD_FUNCS_HEADER {
+ inferred_value 1 <cyg/libc/string/bsdstring.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 CYGPKG_HAL_GDB_FILEIO {
+ user_value 1
+};
+
+cdl_option CYGHWR_REDBOOT_LINUX_EXEC_X_SWITCH {
+ user_value 1
+}
+
+cdl_option CYGSEM_REDBOOT_NETWORK_INIT_ONE_DEVICE {
+ user_value 1
+};
+
+cdl_option CYGHWR_HAL_ARM_BIGENDIAN {
+ user_value 0
+};
+
+cdl_option CYGOPT_REDBOOT_FLASH_BYTEORDER {
+ user_value MSBFIRST
+}
diff --git a/ecos/packages/hal/arm/xscale/ixdp425/current/misc/redboot_ROM.ecm b/ecos/packages/hal/arm/xscale/ixdp425/current/misc/redboot_ROM.ecm
new file mode 100644
index 0000000..4caa6b5
--- /dev/null
+++ b/ecos/packages/hal/arm/xscale/ixdp425/current/misc/redboot_ROM.ecm
@@ -0,0 +1,137 @@
+cdl_savefile_version 1;
+cdl_savefile_command cdl_savefile_version {};
+cdl_savefile_command cdl_savefile_command {};
+cdl_savefile_command cdl_configuration { description hardware template package };
+cdl_savefile_command cdl_package { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_component { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_option { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_interface { value_source user_value wizard_value inferred_value };
+
+cdl_configuration eCos {
+ description "" ;
+ hardware ixdp425 ;
+ template redboot ;
+ package -hardware CYGPKG_HAL_ARM current ;
+ package -hardware CYGPKG_HAL_ARM_XSCALE_CORE current ;
+ package -hardware CYGPKG_HAL_ARM_XSCALE_IXP425 current ;
+ package -hardware CYGPKG_HAL_ARM_XSCALE_IXDP425 current ;
+ package -hardware CYGPKG_DEVS_FLASH_STRATA_V2 current ;
+ package -hardware CYGPKG_DEVS_ETH_INTEL_I82559 current ;
+ package -hardware CYGPKG_DEVS_ETH_ARM_IXDP425_I82559 current ;
+ package -template CYGPKG_HAL current ;
+ package -template CYGPKG_INFRA current ;
+ package -template CYGPKG_REDBOOT current ;
+ package -template CYGPKG_ISOINFRA current ;
+ package -template CYGPKG_LIBC_STRING current ;
+ package -template CYGPKG_CRC current ;
+ package CYGPKG_IO_FLASH current ;
+ package CYGPKG_IO_ETH_DRIVERS current ;
+ package CYGPKG_MEMALLOC current ;
+ package CYGPKG_COMPRESS_ZLIB current ;
+};
+
+cdl_component CYG_HAL_STARTUP {
+ user_value ROM
+};
+
+cdl_option CYGBLD_BUILD_GDB_STUBS {
+ user_value 0
+};
+
+cdl_option CYGFUN_LIBC_STRING_BSD_FUNCS {
+ inferred_value 0
+};
+
+cdl_option CYGNUM_HAL_COMMON_INTERRUPTS_STACK_SIZE {
+ user_value 4096
+};
+
+cdl_option CYGDBG_HAL_COMMON_INTERRUPTS_SAVE_MINIMUM_CONTEXT {
+ user_value 0
+};
+
+cdl_option CYGDBG_HAL_COMMON_CONTEXT_SAVE_MINIMUM {
+ inferred_value 0
+};
+
+cdl_option CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS {
+ inferred_value 1
+};
+
+cdl_option CYGDBG_HAL_DEBUG_GDB_CTRLC_SUPPORT {
+ inferred_value 0
+};
+
+cdl_option CYGSEM_HAL_ROM_MONITOR {
+ user_value 1
+};
+
+cdl_option CYGSEM_HAL_USE_ROM_MONITOR {
+ inferred_value 0 0
+};
+
+cdl_component CYGBLD_BUILD_REDBOOT {
+ user_value 1
+};
+
+cdl_option CYGBLD_REDBOOT_MIN_IMAGE_SIZE {
+ inferred_value 0x80000
+};
+
+cdl_component CYGSEM_REDBOOT_FLASH_CONFIG {
+ user_value 1
+};
+
+cdl_component CYGSEM_REDBOOT_BSP_SYSCALLS {
+ inferred_value 1
+};
+
+cdl_option CYGHWR_REDBOOT_ARM_LINUX_EXEC_ADDRESS_DEFAULT {
+ inferred_value 0x6000000
+};
+
+cdl_option CYGHWR_HAL_IXP425_PCI_NP_WORKAROUND {
+ inferred_value 1
+};
+
+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_BSD_FUNCS_HEADER {
+ inferred_value 1 <cyg/libc/string/bsdstring.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_DNS_HEADER {
+ inferred_value 1 <cyg/ns/dns/dns.h>
+};
+
+cdl_option CYGPKG_HAL_GDB_FILEIO {
+ user_value 1
+};
+
+cdl_option CYGHWR_REDBOOT_LINUX_EXEC_X_SWITCH {
+ user_value 1
+}
+
+cdl_option CYGSEM_REDBOOT_NETWORK_INIT_ONE_DEVICE {
+ user_value 1
+};
+
+cdl_option CYGHWR_HAL_ARM_BIGENDIAN {
+ user_value 1
+};
+
+
diff --git a/ecos/packages/hal/arm/xscale/ixdp425/current/misc/redboot_ROMLE.ecm b/ecos/packages/hal/arm/xscale/ixdp425/current/misc/redboot_ROMLE.ecm
new file mode 100644
index 0000000..3bd720c
--- /dev/null
+++ b/ecos/packages/hal/arm/xscale/ixdp425/current/misc/redboot_ROMLE.ecm
@@ -0,0 +1,139 @@
+cdl_savefile_version 1;
+cdl_savefile_command cdl_savefile_version {};
+cdl_savefile_command cdl_savefile_command {};
+cdl_savefile_command cdl_configuration { description hardware template package };
+cdl_savefile_command cdl_package { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_component { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_option { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_interface { value_source user_value wizard_value inferred_value };
+
+cdl_configuration eCos {
+ description "" ;
+ hardware ixdp425 ;
+ template redboot ;
+ package -hardware CYGPKG_HAL_ARM current ;
+ package -hardware CYGPKG_HAL_ARM_XSCALE_CORE current ;
+ package -hardware CYGPKG_HAL_ARM_XSCALE_IXP425 current ;
+ package -hardware CYGPKG_HAL_ARM_XSCALE_IXDP425 current ;
+ package -hardware CYGPKG_DEVS_FLASH_STRATA_V2 current ;
+ package -hardware CYGPKG_DEVS_ETH_INTEL_I82559 current ;
+ package -hardware CYGPKG_DEVS_ETH_ARM_IXDP425_I82559 current ;
+ package -template CYGPKG_HAL current ;
+ package -template CYGPKG_INFRA current ;
+ package -template CYGPKG_REDBOOT current ;
+ package -template CYGPKG_ISOINFRA current ;
+ package -template CYGPKG_LIBC_STRING current ;
+ package -template CYGPKG_CRC current ;
+ package CYGPKG_IO_FLASH current ;
+ package CYGPKG_IO_ETH_DRIVERS current ;
+ package CYGPKG_MEMALLOC current ;
+ package CYGPKG_COMPRESS_ZLIB current ;
+};
+
+cdl_component CYG_HAL_STARTUP {
+ user_value ROM
+};
+
+cdl_option CYGBLD_BUILD_GDB_STUBS {
+ user_value 0
+};
+
+cdl_option CYGFUN_LIBC_STRING_BSD_FUNCS {
+ inferred_value 0
+};
+
+cdl_option CYGNUM_HAL_COMMON_INTERRUPTS_STACK_SIZE {
+ user_value 4096
+};
+
+cdl_option CYGDBG_HAL_COMMON_INTERRUPTS_SAVE_MINIMUM_CONTEXT {
+ user_value 0
+};
+
+cdl_option CYGDBG_HAL_COMMON_CONTEXT_SAVE_MINIMUM {
+ inferred_value 0
+};
+
+cdl_option CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS {
+ inferred_value 1
+};
+
+cdl_option CYGDBG_HAL_DEBUG_GDB_CTRLC_SUPPORT {
+ inferred_value 0
+};
+
+cdl_option CYGSEM_HAL_ROM_MONITOR {
+ user_value 1
+};
+
+cdl_option CYGSEM_HAL_USE_ROM_MONITOR {
+ inferred_value 0 0
+};
+
+cdl_component CYGBLD_BUILD_REDBOOT {
+ user_value 1
+};
+
+cdl_option CYGBLD_REDBOOT_MIN_IMAGE_SIZE {
+ inferred_value 0x80000
+};
+
+cdl_component CYGSEM_REDBOOT_FLASH_CONFIG {
+ user_value 1
+};
+
+cdl_component CYGSEM_REDBOOT_BSP_SYSCALLS {
+ inferred_value 1
+};
+
+cdl_option CYGHWR_REDBOOT_ARM_LINUX_EXEC_ADDRESS_DEFAULT {
+ inferred_value 0x6000000
+};
+
+cdl_option CYGHWR_HAL_IXP425_PCI_NP_WORKAROUND {
+ inferred_value 1
+};
+
+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_BSD_FUNCS_HEADER {
+ inferred_value 1 <cyg/libc/string/bsdstring.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_DNS_HEADER {
+ inferred_value 1 <cyg/ns/dns/dns.h>
+};
+
+cdl_option CYGPKG_HAL_GDB_FILEIO {
+ user_value 1
+};
+
+cdl_option CYGHWR_REDBOOT_LINUX_EXEC_X_SWITCH {
+ user_value 1
+}
+
+cdl_option CYGSEM_REDBOOT_NETWORK_INIT_ONE_DEVICE {
+ user_value 1
+};
+
+cdl_option CYGHWR_HAL_ARM_BIGENDIAN {
+ user_value 0
+};
+
+cdl_option CYGOPT_REDBOOT_FLASH_BYTEORDER {
+ user_value MSBFIRST
+}
diff --git a/ecos/packages/hal/arm/xscale/ixdp425/current/misc/redboot_ROMRAM.ecm b/ecos/packages/hal/arm/xscale/ixdp425/current/misc/redboot_ROMRAM.ecm
new file mode 100644
index 0000000..21e51d9
--- /dev/null
+++ b/ecos/packages/hal/arm/xscale/ixdp425/current/misc/redboot_ROMRAM.ecm
@@ -0,0 +1,132 @@
+cdl_savefile_version 1;
+cdl_savefile_command cdl_savefile_version {};
+cdl_savefile_command cdl_savefile_command {};
+cdl_savefile_command cdl_configuration { description hardware template package };
+cdl_savefile_command cdl_package { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_component { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_option { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_interface { value_source user_value wizard_value inferred_value };
+
+cdl_configuration eCos {
+ description "" ;
+ hardware ixdp425 ;
+ template redboot ;
+ package -hardware CYGPKG_HAL_ARM current ;
+ package -hardware CYGPKG_HAL_ARM_XSCALE_CORE current ;
+ package -hardware CYGPKG_HAL_ARM_XSCALE_IXP425 current ;
+ package -hardware CYGPKG_HAL_ARM_XSCALE_IXDP425 current ;
+ package -hardware CYGPKG_DEVS_FLASH_STRATA_V2 current ;
+ package -hardware CYGPKG_DEVS_ETH_INTEL_I82559 current ;
+ package -hardware CYGPKG_DEVS_ETH_ARM_IXDP425_I82559 current ;
+ package -template CYGPKG_HAL current ;
+ package -template CYGPKG_INFRA current ;
+ package -template CYGPKG_REDBOOT current ;
+ package -template CYGPKG_ISOINFRA current ;
+ package -template CYGPKG_LIBC_STRING current ;
+ package -template CYGPKG_CRC current ;
+ package CYGPKG_IO_FLASH current ;
+ package CYGPKG_IO_ETH_DRIVERS current ;
+ package CYGPKG_MEMALLOC current ;
+ package CYGPKG_COMPRESS_ZLIB current ;
+};
+
+cdl_component CYG_HAL_STARTUP {
+ user_value ROMRAM
+};
+
+cdl_option CYGBLD_BUILD_GDB_STUBS {
+ user_value 0
+};
+
+cdl_option CYGFUN_LIBC_STRING_BSD_FUNCS {
+ inferred_value 0
+};
+
+cdl_option CYGNUM_HAL_COMMON_INTERRUPTS_STACK_SIZE {
+ user_value 4096
+};
+
+cdl_option CYGDBG_HAL_COMMON_INTERRUPTS_SAVE_MINIMUM_CONTEXT {
+ user_value 0
+};
+
+cdl_option CYGDBG_HAL_COMMON_CONTEXT_SAVE_MINIMUM {
+ inferred_value 0
+};
+
+cdl_option CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS {
+ inferred_value 1
+};
+
+cdl_option CYGDBG_HAL_DEBUG_GDB_CTRLC_SUPPORT {
+ inferred_value 0
+};
+
+cdl_option CYGSEM_HAL_ROM_MONITOR {
+ user_value 1
+};
+
+cdl_option CYGSEM_HAL_USE_ROM_MONITOR {
+ inferred_value 0 0
+};
+
+cdl_component CYGBLD_BUILD_REDBOOT {
+ user_value 1
+};
+
+cdl_option CYGBLD_REDBOOT_MIN_IMAGE_SIZE {
+ inferred_value 0x80000
+};
+
+cdl_component CYGSEM_REDBOOT_FLASH_CONFIG {
+ user_value 1
+};
+
+cdl_component CYGSEM_REDBOOT_BSP_SYSCALLS {
+ inferred_value 1
+};
+
+cdl_option CYGHWR_REDBOOT_ARM_LINUX_EXEC_ADDRESS_DEFAULT {
+ inferred_value 0x10008000
+};
+
+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_BSD_FUNCS_HEADER {
+ inferred_value 1 <cyg/libc/string/bsdstring.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_DNS_HEADER {
+ inferred_value 1 <cyg/ns/dns/dns.h>
+};
+
+cdl_option CYGPKG_HAL_GDB_FILEIO {
+ user_value 1
+};
+
+cdl_option CYGHWR_REDBOOT_LINUX_EXEC_X_SWITCH {
+ user_value 1
+}
+
+cdl_option CYGSEM_REDBOOT_NETWORK_INIT_ONE_DEVICE {
+ user_value 1
+};
+
+cdl_option CYGHWR_HAL_ARM_BIGENDIAN {
+ user_value 1
+};
+
diff --git a/ecos/packages/hal/arm/xscale/ixdp425/current/misc/redboot_ROMRAMLE.ecm b/ecos/packages/hal/arm/xscale/ixdp425/current/misc/redboot_ROMRAMLE.ecm
new file mode 100644
index 0000000..b784b79
--- /dev/null
+++ b/ecos/packages/hal/arm/xscale/ixdp425/current/misc/redboot_ROMRAMLE.ecm
@@ -0,0 +1,135 @@
+cdl_savefile_version 1;
+cdl_savefile_command cdl_savefile_version {};
+cdl_savefile_command cdl_savefile_command {};
+cdl_savefile_command cdl_configuration { description hardware template package };
+cdl_savefile_command cdl_package { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_component { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_option { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_interface { value_source user_value wizard_value inferred_value };
+
+cdl_configuration eCos {
+ description "" ;
+ hardware ixdp425 ;
+ template redboot ;
+ package -hardware CYGPKG_HAL_ARM current ;
+ package -hardware CYGPKG_HAL_ARM_XSCALE_CORE current ;
+ package -hardware CYGPKG_HAL_ARM_XSCALE_IXP425 current ;
+ package -hardware CYGPKG_HAL_ARM_XSCALE_IXDP425 current ;
+ package -hardware CYGPKG_DEVS_FLASH_STRATA_V2 current ;
+ package -hardware CYGPKG_DEVS_ETH_INTEL_I82559 current ;
+ package -hardware CYGPKG_DEVS_ETH_ARM_IXDP425_I82559 current ;
+ package -template CYGPKG_HAL current ;
+ package -template CYGPKG_INFRA current ;
+ package -template CYGPKG_REDBOOT current ;
+ package -template CYGPKG_ISOINFRA current ;
+ package -template CYGPKG_LIBC_STRING current ;
+ package -template CYGPKG_CRC current ;
+ package CYGPKG_IO_FLASH current ;
+ package CYGPKG_IO_ETH_DRIVERS current ;
+ package CYGPKG_MEMALLOC current ;
+ package CYGPKG_COMPRESS_ZLIB current ;
+};
+
+cdl_component CYG_HAL_STARTUP {
+ user_value ROMRAM
+};
+
+cdl_option CYGBLD_BUILD_GDB_STUBS {
+ user_value 0
+};
+
+cdl_option CYGFUN_LIBC_STRING_BSD_FUNCS {
+ inferred_value 0
+};
+
+cdl_option CYGNUM_HAL_COMMON_INTERRUPTS_STACK_SIZE {
+ user_value 4096
+};
+
+cdl_option CYGDBG_HAL_COMMON_INTERRUPTS_SAVE_MINIMUM_CONTEXT {
+ user_value 0
+};
+
+cdl_option CYGDBG_HAL_COMMON_CONTEXT_SAVE_MINIMUM {
+ inferred_value 0
+};
+
+cdl_option CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS {
+ inferred_value 1
+};
+
+cdl_option CYGDBG_HAL_DEBUG_GDB_CTRLC_SUPPORT {
+ inferred_value 0
+};
+
+cdl_option CYGSEM_HAL_ROM_MONITOR {
+ user_value 1
+};
+
+cdl_option CYGSEM_HAL_USE_ROM_MONITOR {
+ inferred_value 0 0
+};
+
+cdl_component CYGBLD_BUILD_REDBOOT {
+ user_value 1
+};
+
+cdl_option CYGBLD_REDBOOT_MIN_IMAGE_SIZE {
+ inferred_value 0x80000
+};
+
+cdl_component CYGSEM_REDBOOT_FLASH_CONFIG {
+ user_value 1
+};
+
+cdl_component CYGSEM_REDBOOT_BSP_SYSCALLS {
+ inferred_value 1
+};
+
+cdl_option CYGHWR_REDBOOT_ARM_LINUX_EXEC_ADDRESS_DEFAULT {
+ inferred_value 0x10008000
+};
+
+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_BSD_FUNCS_HEADER {
+ inferred_value 1 <cyg/libc/string/bsdstring.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_DNS_HEADER {
+ inferred_value 1 <cyg/ns/dns/dns.h>
+};
+
+cdl_option CYGPKG_HAL_GDB_FILEIO {
+ user_value 1
+};
+
+cdl_option CYGHWR_REDBOOT_LINUX_EXEC_X_SWITCH {
+ user_value 1
+}
+
+cdl_option CYGSEM_REDBOOT_NETWORK_INIT_ONE_DEVICE {
+ user_value 1
+};
+
+cdl_option CYGHWR_HAL_ARM_BIGENDIAN {
+ user_value 0
+};
+
+cdl_option CYGOPT_REDBOOT_FLASH_BYTEORDER {
+ user_value MSBFIRST
+}
diff --git a/ecos/packages/hal/arm/xscale/ixdp425/current/src/ixdp425_misc.c b/ecos/packages/hal/arm/xscale/ixdp425/current/src/ixdp425_misc.c
new file mode 100644
index 0000000..5d53166
--- /dev/null
+++ b/ecos/packages/hal/arm/xscale/ixdp425/current/src/ixdp425_misc.c
@@ -0,0 +1,412 @@
+//==========================================================================
+//
+// ixdp425_misc.c
+//
+// HAL misc board support code for Intel XScale IXDP425
+//
+//==========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//==========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): msalter
+// Contributors: msalter
+// Date: 2002-12-11
+// 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_ixp425.h> // Hardware definitions
+#include <cyg/hal/ixdp425.h> // Platform specifics
+
+#include <cyg/infra/diag.h> // diag_printf
+
+//
+// Platform specific initialization
+//
+void
+plf_hardware_init(void)
+{
+ // GPIO(15) used for ENET clock
+ HAL_GPIO_OUTPUT_ENABLE(15);
+ *IXP425_GPCLKR |= GPCLKR_CLK1_ENABLE;
+ *IXP425_GPCLKR |= GPCLKR_CLK1_PCLK2;
+
+ HAL_GPIO_OUTPUT_SET(GPIO_EEPROM_SCL);
+ HAL_GPIO_OUTPUT_ENABLE(GPIO_EEPROM_SCL);
+
+ HAL_GPIO_OUTPUT_SET(GPIO_EEPROM_SDA);
+ HAL_GPIO_OUTPUT_ENABLE(GPIO_EEPROM_SDA);
+
+ // ENET-0 IRQ line
+ HAL_GPIO_OUTPUT_DISABLE(GPIO_ENET0_INT_N);
+ HAL_INTERRUPT_CONFIGURE(CYGNUM_HAL_INTERRUPT_ETH0, 1, 0);
+
+ // ENET-1 IRQ line
+ HAL_GPIO_OUTPUT_DISABLE(GPIO_ENET1_INT_N);
+ HAL_INTERRUPT_CONFIGURE(CYGNUM_HAL_INTERRUPT_ETH1, 1, 0);
+
+ // HSS IRQ lines
+ HAL_GPIO_OUTPUT_DISABLE(GPIO_HSS0_INT_N);
+ HAL_INTERRUPT_CONFIGURE(CYGNUM_HAL_INTERRUPT_HSS0, 1, 0);
+ HAL_GPIO_OUTPUT_DISABLE(GPIO_HSS1_INT_N);
+ HAL_INTERRUPT_CONFIGURE(CYGNUM_HAL_INTERRUPT_HSS1, 1, 0);
+
+ // DSL IRQ line
+ HAL_GPIO_OUTPUT_DISABLE(GPIO_DSL_INT_N);
+ HAL_INTERRUPT_CONFIGURE(CYGNUM_HAL_INTERRUPT_DSL, 1, 0);
+
+ *IXP425_EXP_CS4 = (EXP_ADDR_T(3) | EXP_SETUP_T(3) | EXP_STROBE_T(15) | EXP_HOLD_T(3) | \
+ EXP_RECOVERY_T(15) | EXP_SZ_512 | EXP_WR_EN | EXP_CS_EN);
+ *IXP425_EXP_CS5 = (EXP_ADDR_T(3) | EXP_SETUP_T(3) | EXP_STROBE_T(15) | EXP_HOLD_T(3) | \
+ EXP_RECOVERY_T(15) | EXP_SZ_512 | EXP_WR_EN | EXP_CS_EN);
+
+#ifdef CYGPKG_IO_PCI
+ extern void hal_plf_pci_init(void);
+ hal_plf_pci_init();
+#endif
+}
+
+// --------------------------------------------------------------------------------------
+// EEPROM Support
+//
+#ifdef CYGPKG_DEVS_ETH_INTEL_NPE
+
+#define CLK_LO() HAL_GPIO_OUTPUT_CLEAR(GPIO_EEPROM_SCL)
+#define CLK_HI() HAL_GPIO_OUTPUT_SET(GPIO_EEPROM_SCL)
+
+#define DATA_LO() HAL_GPIO_OUTPUT_CLEAR(GPIO_EEPROM_SDA)
+#define DATA_HI() HAL_GPIO_OUTPUT_SET(GPIO_EEPROM_SDA)
+
+
+// returns non-zero if ACK bit seen
+static int
+eeprom_start(cyg_uint8 b)
+{
+ int i;
+
+ CLK_HI();
+ hal_delay_us(5);
+ DATA_LO();
+ hal_delay_us(5);
+ CLK_LO();
+
+ for (i = 7; i >= 0; i--) {
+ if (b & (1 << i))
+ DATA_HI();
+ else
+ DATA_LO();
+ hal_delay_us(5);
+ CLK_HI();
+ hal_delay_us(5);
+ CLK_LO();
+ }
+ hal_delay_us(5);
+ HAL_GPIO_OUTPUT_DISABLE(GPIO_EEPROM_SDA);
+ CLK_HI();
+ hal_delay_us(5);
+ i = (*IXP425_GPINR & (1 << GPIO_EEPROM_SDA)) ? 0 : 1;
+ CLK_LO();
+ hal_delay_us(5);
+ HAL_GPIO_OUTPUT_ENABLE(GPIO_EEPROM_SDA);
+
+ return i;
+}
+
+
+static void
+eeprom_stop(void)
+{
+ int i;
+
+ hal_delay_us(5);
+ DATA_LO();
+ hal_delay_us(5);
+ CLK_HI();
+ hal_delay_us(5);
+ DATA_HI();
+ hal_delay_us(5);
+ CLK_LO();
+ hal_delay_us(5);
+ CLK_HI();
+ hal_delay_us(5);
+}
+
+
+static int
+eeprom_putb(cyg_uint8 b)
+{
+ int i;
+
+ for (i = 7; i >= 0; i--) {
+ if (b & (1 << i))
+ DATA_HI();
+ else
+ DATA_LO();
+ CLK_HI();
+ hal_delay_us(5);
+ CLK_LO();
+ hal_delay_us(5);
+ }
+ HAL_GPIO_OUTPUT_DISABLE(GPIO_EEPROM_SDA);
+ CLK_HI();
+ hal_delay_us(5);
+ i = (*IXP425_GPINR & (1 << GPIO_EEPROM_SDA)) ? 0 : 1;
+ CLK_LO();
+ hal_delay_us(5);
+
+ DATA_HI();
+ HAL_GPIO_OUTPUT_ENABLE(GPIO_EEPROM_SDA);
+
+ return i;
+}
+
+
+static cyg_uint8
+eeprom_getb(int more)
+{
+ int i;
+ cyg_uint8 b = 0;
+
+ HAL_GPIO_OUTPUT_DISABLE(GPIO_EEPROM_SDA);
+ hal_delay_us(5);
+
+ for (i = 7; i >= 0; i--) {
+ b <<= 1;
+ if (*IXP425_GPINR & (1 << GPIO_EEPROM_SDA))
+ b |= 1;
+ CLK_HI();
+ hal_delay_us(5);
+ CLK_LO();
+ hal_delay_us(5);
+ }
+ HAL_GPIO_OUTPUT_ENABLE(GPIO_EEPROM_SDA);
+ if (more)
+ DATA_LO();
+ else
+ DATA_HI();
+ hal_delay_us(5);
+ CLK_HI();
+ hal_delay_us(5);
+ CLK_LO();
+ hal_delay_us(5);
+
+ return b;
+}
+
+
+static int
+eeprom_read(int addr, cyg_uint8 *buf, int nbytes)
+{
+ cyg_uint8 start_byte;
+ int i;
+
+ start_byte = 0xA0; // write
+
+ if (addr & (1 << 8))
+ start_byte |= 2;
+
+
+ for (i = 0; i < 10; i++)
+ if (eeprom_start(start_byte))
+ break;
+
+ if (i == 10) {
+ diag_printf("eeprom_read: Can't get write start ACK\n");
+ return 0;
+ }
+
+ if (!eeprom_putb(addr & 0xff)) {
+ diag_printf("eeprom_read: Can't get address ACK\n");
+ return 0;
+ }
+
+ start_byte |= 1; // READ command
+ if (!eeprom_start(start_byte)) {
+ diag_printf("eeprom_read: Can't get read start ACK\n");
+ return 0;
+ }
+
+ for (i = 0; i < (nbytes - 1); i++)
+ *buf++ = eeprom_getb(1);
+
+ *buf++ = eeprom_getb(0);
+ hal_delay_us(5);
+ eeprom_stop();
+
+ return nbytes;
+}
+
+static void
+eeprom_write(int addr, cyg_uint8 val)
+{
+ cyg_uint8 start_byte;
+ int i;
+
+ start_byte = 0xA0; // write
+
+ if (addr & (1 << 8))
+ start_byte |= 2;
+
+ for (i = 0; i < 10; i++)
+ if (eeprom_start(start_byte))
+ break;
+
+ if (i == 10) {
+ diag_printf("eeprom_write: Can't get start ACK\n");
+ return;
+ }
+
+ if (!eeprom_putb(addr & 0xff)) {
+ diag_printf("eeprom_write: Can't get address ACK\n");
+ return;
+ }
+
+ if (!eeprom_putb(val)) {
+ diag_printf("eeprom_write: no data ACK\n");
+ return;
+ }
+ eeprom_stop();
+}
+
+
+#define MAC_EEPROM_OFFSET(p) (0x100 + ((p) * 6))
+
+int
+cyghal_get_npe_esa(int port, cyg_uint8 *buf)
+{
+ if (port != 0 && port != 1)
+ return 0;
+
+ if (eeprom_read(MAC_EEPROM_OFFSET(port), buf, 6) != 6)
+ return 0;
+
+ // don't use broadcast address
+ if (buf[0] == 0xff && buf[1] == 0xff && buf[2] == 0xff &&
+ buf[3] == 0xff && buf[4] == 0xff && buf[5] == 0xff)
+ return 0;
+
+ return 1;
+}
+
+
+#ifdef CYGPKG_REDBOOT
+#include <redboot.h>
+
+static void
+do_set_npe_mac(int argc, char *argv[])
+{
+ bool portnum_set;
+ int portnum, i;
+ char *addr = 0;
+ struct option_info opts[1];
+ cyg_uint8 mac[6];
+
+ init_opts(&opts[0], 'p', true, OPTION_ARG_TYPE_NUM,
+ (void **)&portnum, (bool *)&portnum_set, "port number");
+ if (!scan_opts(argc, argv, 1, opts, 1, (void *)&addr,
+ OPTION_ARG_TYPE_STR, "MAC address")) {
+ return;
+ }
+
+ if ((!portnum_set && addr) ||
+ (portnum_set && portnum != 0 && portnum != 1)) {
+ diag_printf("Must specify port with \"-p <0|1>\"\n");
+ return;
+ }
+
+ if (!portnum_set) {
+ for (i = 0; i < 2; i++) {
+ cyghal_get_npe_esa(i, mac);
+ diag_printf("NPE eth%d mac: %02x:%02x:%02x:%02x:%02x:%02x\n",
+ i, mac[0], mac[1], mac[2], mac[3], mac[4], mac[5]);
+ }
+ return;
+ }
+
+ if (!addr) {
+ cyghal_get_npe_esa(portnum, mac);
+ diag_printf("NPE eth%d mac: %02x:%02x:%02x:%02x:%02x:%02x\n",
+ portnum, mac[0], mac[1], mac[2], mac[3], mac[4], mac[5]);
+ return;
+ }
+
+ // parse MAC address from user.
+ // acceptable formats are "nn:nn:nn:nn:nn:nn" and "nnnnnnnnnnnn"
+ for (i = 0; i < 6; i++) {
+ if (!_is_hex(addr[0]) || !_is_hex(addr[1]))
+ break;
+ mac[i] = (_from_hex(addr[0]) * 16) + _from_hex(addr[1]);
+ addr += 2;
+ if (*addr == ':')
+ addr++;
+ }
+
+ if (i != 6 || *addr != '\0') {
+ diag_printf("Malformed MAC address.\n");
+ return;
+ }
+
+ for (i = 0; i < 6; i++) {
+ eeprom_write(MAC_EEPROM_OFFSET(portnum) + i, mac[i]);
+ hal_delay_us(100000);
+ }
+}
+
+RedBoot_cmd("set_npe_mac",
+ "Set/Read MAC address for NPE ethernet ports",
+ "[-p <portnum>] [xx:xx:xx:xx:xx:xx]",
+ do_set_npe_mac);
+
+#endif // CYGPKG_REDBOOT
+
+#endif // CYGPKG_DEVS_ETH_INTEL_NPE
+
+// ------------------------------------------------------------------------
+// EOF ixdp425_misc.c
diff --git a/ecos/packages/hal/arm/xscale/ixdp425/current/src/ixdp425_pci.c b/ecos/packages/hal/arm/xscale/ixdp425/current/src/ixdp425_pci.c
new file mode 100644
index 0000000..976605e
--- /dev/null
+++ b/ecos/packages/hal/arm/xscale/ixdp425/current/src/ixdp425_pci.c
@@ -0,0 +1,159 @@
+//==========================================================================
+//
+// ixdp425_pci.c
+//
+// HAL PCI board support code for Intel XScale IXDP425
+//
+//==========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002, 2004 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//==========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): msalter
+// Contributors: msalter
+// Date: 2002-12-11
+// Purpose: HAL PCI 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_if.h> // calling interface API
+#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>
+
+#ifdef CYGPKG_IO_PCI
+#include <cyg/io/pci_hw.h>
+#include <cyg/io/pci.h>
+
+#define IXP425_PCI_MAX_DEV 4
+#define IXP425_PCI_IRQ_LINES 4
+
+// PCI pin mappings
+#define PCI_CLK_GPIO 14 // CLK0
+#define PCI_RESET_GPIO 13
+#define PCI_INTA_GPIO 11
+#define PCI_INTB_GPIO 10
+#define PCI_INTC_GPIO 9
+#define PCI_INTD_GPIO 8
+
+#define INTA CYGNUM_HAL_INTERRUPT_GPIO11
+#define INTB CYGNUM_HAL_INTERRUPT_GPIO10
+#define INTC CYGNUM_HAL_INTERRUPT_GPIO9
+#define INTD CYGNUM_HAL_INTERRUPT_GPIO8
+
+static const int pci_irq_table[IXP425_PCI_MAX_DEV][IXP425_PCI_IRQ_LINES] = {
+ {INTA, INTB, INTC, INTD},
+ {INTB, INTC, INTD, INTA},
+ {INTC, INTD, INTA, INTB},
+ {INTD, INTA, INTB, INTC}
+};
+
+void
+cyg_hal_plf_pci_translate_interrupt(cyg_uint32 bus, cyg_uint32 devfn,
+ CYG_ADDRWORD *vec, cyg_bool *valid)
+{
+ cyg_uint8 pin;
+ cyg_uint32 slot = 3 - (CYG_PCI_DEV_GET_DEV(devfn) - 18);
+
+ HAL_PCI_CFG_READ_UINT8(bus, devfn, CYG_PCI_CFG_INT_PIN, pin);
+ *vec = -1;
+ *valid = false;
+
+ if (slot < IXP425_PCI_MAX_DEV && pin <= IXP425_PCI_IRQ_LINES) {
+ *vec = pci_irq_table[slot][pin-1];
+ *valid = true;
+ }
+}
+
+
+#define HAL_PCI_CLOCK_ENABLE() \
+ *IXP425_GPCLKR |= GPCLKR_CLK0_ENABLE; // GPIO(0) used for PCI clock
+
+#define HAL_PCI_CLOCK_DISABLE() \
+ *IXP425_GPCLKR &= ~GPCLKR_CLK0_ENABLE; // GPIO(0) used for PCI clock
+
+#define HAL_PCI_CLOCK_CONFIG() \
+ *IXP425_GPCLKR |= GPCLKR_CLK0_PCLK2;
+
+#define HAL_PCI_RESET_ASSERT() \
+ HAL_GPIO_OUTPUT_CLEAR(PCI_RESET_GPIO);
+
+#define HAL_PCI_RESET_DEASSERT() \
+ HAL_GPIO_OUTPUT_SET(PCI_RESET_GPIO);
+
+void
+hal_plf_pci_init(void)
+{
+#if defined(CYG_HAL_STARTUP_ROM) || defined(CYG_HAL_STARTUP_ROMRAM)
+ HAL_PCI_RESET_ASSERT();
+ HAL_PCI_CLOCK_DISABLE();
+
+ // Set GPIO line direction
+ HAL_GPIO_OUTPUT_ENABLE(PCI_CLK_GPIO);
+ HAL_GPIO_OUTPUT_ENABLE(PCI_RESET_GPIO);
+ HAL_GPIO_OUTPUT_DISABLE(PCI_INTA_GPIO);
+ HAL_GPIO_OUTPUT_DISABLE(PCI_INTB_GPIO);
+ HAL_GPIO_OUTPUT_DISABLE(PCI_INTC_GPIO);
+ HAL_GPIO_OUTPUT_DISABLE(PCI_INTD_GPIO);
+
+ // configure PCI interrupt lines for active low irq
+ HAL_INTERRUPT_CONFIGURE(INTA, 1, 0);
+ HAL_INTERRUPT_CONFIGURE(INTB, 1, 0);
+ HAL_INTERRUPT_CONFIGURE(INTC, 1, 0);
+ HAL_INTERRUPT_CONFIGURE(INTD, 1, 0);
+
+ // wait 1ms to satisfy "minimum reset assertion time" of the PCI spec.
+ HAL_DELAY_US(1000);
+ HAL_PCI_CLOCK_CONFIG();
+ HAL_PCI_CLOCK_ENABLE();
+
+ // wait 100us to satisfy "minimum reset assertion time from clock stable"
+ // requirement of the PCI spec.
+ HAL_DELAY_US(100);
+ HAL_PCI_RESET_DEASSERT();
+#endif
+}
+
+#endif // CYGPKG_IO_PCI
diff --git a/ecos/packages/hal/arm/xscale/ixdp425/current/src/ixdp425_strataflash.c b/ecos/packages/hal/arm/xscale/ixdp425/current/src/ixdp425_strataflash.c
new file mode 100644
index 0000000..b1ae377
--- /dev/null
+++ b/ecos/packages/hal/arm/xscale/ixdp425/current/src/ixdp425_strataflash.c
@@ -0,0 +1,98 @@
+//==========================================================================
+//
+// ixdp425_strataflash.c
+//
+// Support for the Strata flash device on Intel IXDP425
+//
+//==========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//==========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jlarmour based on original by bartv
+// Date: 2006-01-17
+//
+//####DESCRIPTIONEND####
+//=============================================================================
+
+// There is a single Intel StrataFLASH device on the IXDP425, supported via the
+// generic Strata flash package. By default this is the 28F128J3 which is a
+// 16MByte device, arranged as 128*128K blocks with no boot blocks, 16-bits
+// wide. There is a 32-byte program buffer and locking is supported.
+//
+// But CFI is used to determine Flash geometry as the part is fitted in a socket
+// to allow replacement with other StrataFLASH parts.
+
+#include <pkgconf/system.h>
+#include <cyg/io/flash.h>
+#include <cyg/io/flash_dev.h>
+#include <cyg/io/strata_dev.h>
+#include <cyg/hal/plf_io.h>
+
+static const CYG_FLASH_FUNS(hal_ixdp425_flash_strata_funs,
+ &cyg_strata_init_cfi_16,
+ &cyg_flash_devfn_query_nop,
+ &cyg_strata_erase_16,
+ &cyg_strata_bufprogram_16,
+ (int (*)(struct cyg_flash_dev*, const cyg_flashaddr_t, void*, size_t))0,
+ &cyg_strata_lock_j3_16,
+ &cyg_strata_unlock_j3_16);
+
+static cyg_strata_dev hal_ixdp425_flash_priv;
+#ifdef notusingcfianymore
+ = {
+ .manufacturer_code = 0x0089,
+ .device_code = 0x0018,
+ .bufsize = 16, // 32 bytes -> 16 words
+ .block_info = {
+ { 0x00020000, 128 }
+ }
+};
+#endif
+
+// The Flash driver initially claims to use the cached mapping of the Flash
+// device, but through CYGARC_UNCACHED_ADDRESS, will actually use the *uncached*
+// mapping when it comes to driver operations. That way things like
+// RedBoot's FIS directory still correctly use the cached flash addresses.
+
+CYG_FLASH_DRIVER(hal_ixdp425_flash,
+ &hal_ixdp425_flash_strata_funs,
+ 0,
+ IXDP_FLASH_BASE,
+ (IXDP_FLASH_BASE+IXDP_FLASH_SIZE-1),
+ 1,
+ hal_ixdp425_flash_priv.block_info,
+ &hal_ixdp425_flash_priv
+);
+
+// EOF ixdp425_strataflash.c
diff --git a/ecos/packages/hal/arm/xscale/ixp425/current/ChangeLog b/ecos/packages/hal/arm/xscale/ixp425/current/ChangeLog
new file mode 100644
index 0000000..d606ea0
--- /dev/null
+++ b/ecos/packages/hal/arm/xscale/ixp425/current/ChangeLog
@@ -0,0 +1,109 @@
+2009-10-16 John Dallaway <john@dallaway.org.uk>
+
+ * cdl/hal_arm_xscale_ixp425.cdl: Parent under
+ CYGPKG_HAL_ARM_XSCALE_CORE.
+
+2005-04-21 David Vrabel <dvrabel@arcom.com>
+
+ * cdl/hal_arm_xscale_ixp425.cdl: Only require
+ CYGHWR_REDBOOT_ARM_LINUX_EXEC_ADDRESS_DEFAULT if the exec command
+ is included.
+
+2004-11-05 David Vrabel <dvrabel@arcom.com>
+
+ * src/ixp425_redboot.c: Put #ifdef CYGPKG_IO_FLASH around flash
+ functions so a RedBoot without flash support can be built.
+
+2004-09-27 Mark Salter <msalter@redhat.com>
+
+ * src/ixp425_pci.c (pci_config): Fix offset handling.
+
+2004-09-02 Mark Salter <msalter@redhat.com>
+
+ * include/var_io.h: Add externs for hal_flash_{read,program}.
+ * include/hal_ixp425.h: Add more register related defines.
+ * cdl/hal_arm_xscale_ixp425.cdl: Add little-endian support.
+ * src/ixp425_pci.c: Ditto.
+ * src/ixp425_redboot.c: New file.
+
+2003-12-05 David Vrabel <dvrabel@arcom.com>
+
+ * include/hal_diag.h: hal_delay_us() is a C function.
+
+2003-07-18 Nick Garnett <nickg@balti.calivar.com>
+
+ * cdl/hal_arm_xscale_ixp425.cdl:
+ Changed values for CYGNUM_HAL_RTC_NUMERATOR,
+ CYGNUM_HAL_RTC_DENOMINATOR and CYGNUM_HAL_RTC_PERIOD to
+ "default_value" from "calculated". This makes it easier
+ to change these values globally.
+
+2003-04-08 Mark Salter <msalter@redhat.com>
+
+ * include/hal_var_ints.h (CYGHWR_HAL_GDB_PORT_VECTORS_MATCH): Define.
+
+ * src/ixp425_misc.c (hal_interrupt_mask): Mask QM1 interrupt if all
+ NPE interrupts are masked.
+ (hal_interrupt_unmask): Unmask QM1 if any NPE interrupts unmasked.
+
+ * include/hal_ixp425.h (IXP425_INTR_FIQ_ENC_ST): Fix offset.
+
+2003-04-06 Mark Salter <msalter@redhat.com>
+
+ * src/ixp425_pci.c (cyg_hal_plf_pci_init): Support non-host mode.
+
+2003-02-22 Mark Salter <msalter@redhat.com>
+
+ * src/ixp425_pci.c (cyg_hal_plf_pci_init): Don't reinit PCI
+ controller on warm reset.
+ * cdl/hal_arm_xscale_ixp425.cdl: Fix requirement for linux exec
+ address.
+
+2003-02-13 Mark Salter <msalter@redhat.com>
+
+ * include/var_io.h (CYGARC_UNCACHED_ADDRESS): Move uncached area.
+
+2003-02-07 Mark Salter <msalter@redhat.com>
+
+ * src/ixp425_diag.c: Support platform config of ports used.
+ * src/ixp425_misc.c: Ditto.
+ * src/ixp425_pci.c: Ditto.
+
+ * include/var_io.h: Fix compile errors when building without PCI.
+
+2002-12-19 Mark Salter <msalter@redhat.com>
+
+ * include/hal_ixp425.h (EXP_BYTE_RD16): New definition.
+
+2002-12-18 Mark Salter <msalter@redhat.com>
+
+ * src/ixp425_misc.c (hal_interrupt_configure): Fix tests and
+ GPIO register selection.
+
+2002-12-17 Mark Salter <msalter@redhat.com>
+
+ * src/ixp425_pci.c (cyg_hal_plf_pci_init): Fix PCI read/write functions.
+
+//===========================================================================
+// ####GPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2009 Free Software Foundation, Inc.
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 2 or (at your option) any
+// later version.
+//
+// This program is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the
+// Free Software Foundation, Inc., 51 Franklin Street,
+// Fifth Floor, Boston, MA 02110-1301, USA.
+// -------------------------------------------
+// ####GPLCOPYRIGHTEND####
+//===========================================================================
diff --git a/ecos/packages/hal/arm/xscale/ixp425/current/cdl/hal_arm_xscale_ixp425.cdl b/ecos/packages/hal/arm/xscale/ixp425/current/cdl/hal_arm_xscale_ixp425.cdl
new file mode 100644
index 0000000..689b28e
--- /dev/null
+++ b/ecos/packages/hal/arm/xscale/ixp425/current/cdl/hal_arm_xscale_ixp425.cdl
@@ -0,0 +1,210 @@
+# ====================================================================
+#
+# hal_arm_xscale_ixp425.cdl
+#
+# Intel XScale architectural HAL package configuration data
+#
+# ====================================================================
+## ####ECOSGPLCOPYRIGHTBEGIN####
+## -------------------------------------------
+## This file is part of eCos, the Embedded Configurable Operating System.
+## Copyright (C) 1998, 1999, 2000, 2001, 2002, 2009 Free Software Foundation, Inc.
+##
+## eCos is free software; you can redistribute it and/or modify it under
+## the terms of the GNU General Public License as published by the Free
+## Software Foundation; either version 2 or (at your option) any later
+## version.
+##
+## eCos is distributed in the hope that it will be useful, but WITHOUT
+## ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+## FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+## for more details.
+##
+## You should have received a copy of the GNU General Public License
+## along with eCos; if not, write to the Free Software Foundation, Inc.,
+## 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+##
+## As a special exception, if other files instantiate templates or use
+## macros or inline functions from this file, or you compile this file
+## and link it with other works to produce a work based on this file,
+## this file does not by itself cause the resulting work to be covered by
+## the GNU General Public License. However the source code for this file
+## must still be made available in accordance with section (3) of the GNU
+## General Public License v2.
+##
+## This exception does not invalidate any other reasons why a work based
+## on this file might be covered by the GNU General Public License.
+## -------------------------------------------
+## ####ECOSGPLCOPYRIGHTEND####
+# ====================================================================
+######DESCRIPTIONBEGIN####
+#
+# Author(s): msalter
+# Original data: msalter
+# Contributors:
+# Date: 2002-12-06
+#
+#####DESCRIPTIONEND####
+#
+# ====================================================================
+cdl_package CYGPKG_HAL_ARM_XSCALE_IXP425 {
+ display "Intel XScale IXP425 Network Processor"
+ parent CYGPKG_HAL_ARM_XSCALE_CORE
+ implements CYGINT_HAL_DEBUG_GDB_STUBS
+ implements CYGINT_HAL_DEBUG_GDB_STUBS_BREAK
+ implements CYGINT_HAL_VIRTUAL_VECTOR_SUPPORT
+ implements CYGINT_HAL_VIRTUAL_VECTOR_COMM_BAUD_SUPPORT
+ hardware
+ include_dir cyg/hal
+ define_header hal_arm_xscale_ixp425.h
+ description "
+ This HAL variant package provides generic support
+ for the Intel IXP425 network processors. It is also
+ necessary to select a specific target platform HAL
+ package."
+
+ # Let the architectural HAL see this variant's interrupts file
+ define_proc {
+ puts $::cdl_header \
+ "#define CYGBLD_HAL_VAR_INTS_H <cyg/hal/hal_var_ints.h>"
+ puts $::cdl_header \
+ "#define CYGBLD_HAL_VAR_H <cyg/hal/hal_ixp425.h>"
+
+ puts $::cdl_system_header "#define CYGBLD_HAL_ARM_VAR_IO_H"
+ }
+
+ compile ixp425_misc.c ixp425_pci.c ixp425_diag.c
+
+ cdl_option CYGHWR_HAL_ARM_XSCALE_PROCESSOR_CCLK {
+ display "Processor clock rate"
+ flavor data
+ default_value { CYGHWR_HAL_ARM_XSCALE_PROCESSOR_CCLK_DEFAULT ?
+ CYGHWR_HAL_ARM_XSCALE_PROCESSOR_CCLK_DEFAULT : 533333}
+ description "
+ The XScale processor can run at various frequencies.
+ These values are expressed in KHz."
+ }
+
+ cdl_option CYGHWR_HAL_IXP425_PCI_NP_WORKAROUND {
+ display "Enable IXP425 PCI NP read problem workaround"
+ flavor bool
+ default_value 0
+ }
+
+ # Real-time clock/counter specifics
+ cdl_component CYGNUM_HAL_RTC_CONSTANTS {
+ display "Real-time clock constants"
+ flavor none
+ no_define
+
+ cdl_option CYGNUM_HAL_RTC_NUMERATOR {
+ display "Real-time clock numerator"
+ flavor data
+ default_value 1000000000
+ }
+ cdl_option CYGNUM_HAL_RTC_DENOMINATOR {
+ display "Real-time clock denominator"
+ flavor data
+ default_value 100
+ description "
+ This option selects the heartbeat rate for the real-time clock.
+ The rate is specified in ticks per second. Change this value
+ with caution - too high and your system will become saturated
+ just handling clock interrupts, too low and some operations
+ such as thread scheduling may become sluggish."
+ }
+ cdl_option CYGNUM_HAL_RTC_PERIOD {
+ display "Real-time clock period"
+ flavor data
+ default_value 1000000/CYGNUM_HAL_RTC_DENOMINATOR
+ description "
+ This value gives the RTC period in microseconds. It is
+ translated into the actual clock period value in the clock
+ init and read functions."
+ }
+ }
+
+ 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 0
+ }
+
+ cdl_option CYGNUM_HAL_ARM_IXP425_SERIAL_CHANNELS {
+ display "Number of IXP425 serial ports used on the board"
+ flavor data
+ calculated { (CYGSEM_HAL_IXP425_PLF_USES_UART1 && CYGSEM_HAL_IXP425_PLF_USES_UART2) ? 2 : \
+ (CYGSEM_HAL_IXP425_PLF_USES_UART1 || CYGSEM_HAL_IXP425_PLF_USES_UART2) ? 1 : \
+ 0 }
+ }
+
+ cdl_option CYGNUM_HAL_VIRTUAL_VECTOR_COMM_CHANNELS {
+ display "Number of communication channels on the board"
+ flavor data
+ calculated { CYGNUM_HAL_ARM_IXP425_SERIAL_CHANNELS + \
+ CYGNUM_HAL_IXP425_PLF_SERIAL_CHANNELS }
+ }
+
+ cdl_option CYGNUM_HAL_VIRTUAL_VECTOR_DEBUG_CHANNEL {
+ display "Debug serial port"
+ active_if CYGPRI_HAL_VIRTUAL_VECTOR_DEBUG_CHANNEL_CONFIGURABLE
+ flavor data
+ legal_values 0 to CYGNUM_HAL_VIRTUAL_VECTOR_COMM_CHANNELS-1
+ default_value 0
+ description "
+ 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"
+ active_if CYGPRI_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_CONFIGURABLE
+ flavor data
+ legal_values 0 to CYGNUM_HAL_VIRTUAL_VECTOR_COMM_CHANNELS-1
+ default_value CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_DEFAULT
+ description "
+ IXP425 boards may use two or more serial ports. This option
+ chooses which port will be used for diagnostic output."
+ }
+
+ cdl_option CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_BAUD {
+ display "Diagnostic serial port baud rate"
+ flavor data
+ legal_values 9600 19200 38400 57600 115200
+ default_value 115200
+ 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 "Debug serial port baud rate"
+ flavor data
+ legal_values 9600 19200 38400 57600 115200
+ default_value 115200
+ description "
+ This option selects the baud rate used for the GDB port."
+ }
+
+ cdl_component CYGPKG_REDBOOT_XSCALE_OPTIONS {
+ display "Redboot for XScale options"
+ flavor none
+ no_define
+ parent CYGPKG_REDBOOT
+ active_if CYGPKG_REDBOOT
+ description "
+ This option lists the target's requirements for a valid Redboot
+ configuration."
+ compile -library=libextras.a ixp425_redboot.c
+
+ # RedBoot details
+ requires { !CYGPKG_REDBOOT_BUILD_WITH_EXEC || CYGHWR_REDBOOT_ARM_LINUX_EXEC_ADDRESS_DEFAULT != 0 }
+ define_proc {
+ puts $::cdl_header "#define CYGHWR_REDBOOT_ARM_TRAMPOLINE_ADDRESS 0x00001f00"
+ puts $::cdl_header "#define HAL_FLASH_READ(a,b,c,d) hal_flash_read((a),(b),(c),(d))"
+ puts $::cdl_header "#define HAL_FLASH_PROGRAM(a,b,c,d) hal_flash_program((a),(b),(c),(d))"
+ }
+ }
+}
diff --git a/ecos/packages/hal/arm/xscale/ixp425/current/include/hal_diag.h b/ecos/packages/hal/arm/xscale/ixp425/current/include/hal_diag.h
new file mode 100644
index 0000000..d9ec42a
--- /dev/null
+++ b/ecos/packages/hal/arm/xscale/ixp425/current/include/hal_diag.h
@@ -0,0 +1,93 @@
+#ifndef CYGONCE_HAL_DIAG_H
+#define CYGONCE_HAL_DIAG_H
+
+/*=============================================================================
+//
+// hal_diag.h
+//
+// HAL Support for Kernel Diagnostic Routines
+//
+//=============================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): nickg, gthomas
+// Contributors: nickg, gthomas
+// Date: 1998-09-11
+// 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>
+#include <cyg/hal/hal_if.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_)
+
+// Not the best place for this, but ...
+externC void hal_delay_us(cyg_int32 usecs);
+
+#define HAL_DELAY_US(n) hal_delay_us(n);
+
+#else
+
+/*---------------------------------------------------------------------------*/
+/* 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
+
+/*---------------------------------------------------------------------------*/
+/* end of hal_diag.h */
+#endif /* CYGONCE_HAL_DIAG_H */
diff --git a/ecos/packages/hal/arm/xscale/ixp425/current/include/hal_ixp425.h b/ecos/packages/hal/arm/xscale/ixp425/current/include/hal_ixp425.h
new file mode 100644
index 0000000..5ee943a
--- /dev/null
+++ b/ecos/packages/hal/arm/xscale/ixp425/current/include/hal_ixp425.h
@@ -0,0 +1,317 @@
+/*=============================================================================
+//
+// hal_ixp425.h
+//
+// IXP425 Network Processor support (register layout, etc)
+//
+//=============================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): msalter
+// Contributors: msalter
+// Date: 2002-12-08
+// Purpose:
+// Description: IXP425 Processor support.
+// Usage: #include <cyg/hal/hal_ixp425.h>
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================*/
+#ifndef CYGONCE_HAL_ARM_XSCALE_HAL_IXP425_H
+#define CYGONCE_HAL_ARM_XSCALE_HAL_IXP425_H
+
+#include <pkgconf/system.h>
+#include <cyg/hal/hal_xscale.h>
+
+// --------------------------------------------------------------------------
+#define IXP425_PCI_WINDOW_BASE 0x48000000
+#define IXP425_PCI_WINDOW_SIZE 0x04000000
+
+#define IXP425_QMGR_BASE 0x60000000
+#define IXP425_QMGR_SIZE 0x04000000
+
+#define IXP425_MISC_CFG_BASE 0xC8000000
+#define IXP425_MISC_CFG_SIZE 0x00100000
+
+// --------------------------------------------------------------------------
+// PCI Registers (Chapter 6)
+#define IXP425_PCI_CFG_BASE 0xC0000000
+#define IXP425_PCI_CFG_SIZE 0x00100000
+#define IXP425_PCI_NP_AD REG32(IXP425_PCI_CFG_BASE,0x00)
+#define IXP425_PCI_NP_CBE REG32(IXP425_PCI_CFG_BASE,0x04)
+#define IXP425_PCI_NP_WDATA REG32(IXP425_PCI_CFG_BASE,0x08)
+#define IXP425_PCI_NP_RDATA REG32(IXP425_PCI_CFG_BASE,0x0C)
+#define IXP425_PCI_CRP_AD_CPE REG32(IXP425_PCI_CFG_BASE,0x10)
+#define IXP425_PCI_CRP_WDATA REG32(IXP425_PCI_CFG_BASE,0x14)
+#define IXP425_PCI_CRP_RDATA REG32(IXP425_PCI_CFG_BASE,0x18)
+#define IXP425_PCI_CSR REG32(IXP425_PCI_CFG_BASE,0x1C)
+#define IXP425_PCI_ISR REG32(IXP425_PCI_CFG_BASE,0x20)
+#define IXP425_PCI_INTEN REG32(IXP425_PCI_CFG_BASE,0x24)
+#define IXP425_PCI_DMACTRL REG32(IXP425_PCI_CFG_BASE,0x28)
+#define IXP425_PCI_AHBMEMBASE REG32(IXP425_PCI_CFG_BASE,0x2C)
+#define IXP425_PCI_AHBIOBASE REG32(IXP425_PCI_CFG_BASE,0x30)
+#define IXP425_PCI_PCIMEMBASE REG32(IXP425_PCI_CFG_BASE,0x34)
+#define IXP425_PCI_AHBDOORBELL REG32(IXP425_PCI_CFG_BASE,0x38)
+#define IXP425_PCI_PCIDOORBELL REG32(IXP425_PCI_CFG_BASE,0x3C)
+#define IXP425_PCI_ATPDMA0_AHBADDR REG32(IXP425_PCI_CFG_BASE,0x40)
+#define IXP425_PCI_ATPDMA0_PCIADDR REG32(IXP425_PCI_CFG_BASE,0x44)
+#define IXP425_PCI_ATPDMA0_LENGTH REG32(IXP425_PCI_CFG_BASE,0x48)
+#define IXP425_PCI_ATPDMA1_AHBADDR REG32(IXP425_PCI_CFG_BASE,0x4C)
+#define IXP425_PCI_ATPDMA1_PCIADDR REG32(IXP425_PCI_CFG_BASE,0x50)
+#define IXP425_PCI_ATPDMA1_LENGTH REG32(IXP425_PCI_CFG_BASE,0x54)
+#define IXP425_PCI_PTADMA0_AHBADDR REG32(IXP425_PCI_CFG_BASE,0x58)
+#define IXP425_PCI_PTADMA0_PCIADDR REG32(IXP425_PCI_CFG_BASE,0x5C)
+#define IXP425_PCI_PTADMA0_LENGTH REG32(IXP425_PCI_CFG_BASE,0x60)
+#define IXP425_PCI_PTADMA1_AHBADDR REG32(IXP425_PCI_CFG_BASE,0x64)
+#define IXP425_PCI_PTADMA1_PCIADDR REG32(IXP425_PCI_CFG_BASE,0x68)
+#define IXP425_PCI_PTADMA1_LENGTH REG32(IXP425_PCI_CFG_BASE,0x6C)
+
+// PCI_NP_CBE bits
+#define PCI_NP_CMD_IOR 0x2
+#define PCI_NP_CMD_IOW 0x3
+#define PCI_NP_CMD_CONFIGR 0xA
+#define PCI_NP_CMD_CONFIGW 0xB
+#define PCI_NP_BE_SHIFT 4
+
+// PCI_CRP_AD_CBE bits
+#define PCI_CRP_AD_CBE_READ 0
+#define PCI_CRP_AD_CBE_WRITE (1 << 16)
+#define PCI_CRP_AD_CBE_BE_SHIFT 20
+
+// PCI_CSR bits
+#define PCI_CSR_HOST (1 << 0)
+#define PCI_CSR_ARBEN (1 << 1)
+#define PCI_CSR_ADS (1 << 2)
+#define PCI_CSR_PDS (1 << 3)
+#define PCI_CSR_ABE (1 << 4)
+#define PCI_CSR_DBT (1 << 5)
+#define PCI_CSR_ASE (1 << 8)
+#define PCI_CSR_IC (1 << 15)
+#define PCI_CSR_PRST (1 << 16)
+
+// PCI_ISR bits
+#define PCI_ISR_PSE (1 << 0)
+#define PCI_ISR_PFE (1 << 1)
+#define PCI_ISR_PPE (1 << 2)
+#define PCI_ISR_AHBE (1 << 3)
+#define PCI_ISR_APDC (1 << 4)
+#define PCI_ISR_PADC (1 << 5)
+#define PCI_ISR_ADB (1 << 6)
+#define PCI_ISR_PDB (1 << 7)
+
+// PCI_INTEN bits
+#define PCI_INTEN_PSE (1 << 0)
+#define PCI_INTEN_PFE (1 << 1)
+#define PCI_INTEN_PPE (1 << 2)
+#define PCI_INTEN_AHBE (1 << 3)
+#define PCI_INTEN_APDC (1 << 4)
+#define PCI_INTEN_PADC (1 << 5)
+#define PCI_INTEN_ADB (1 << 6)
+#define PCI_INTEN_PDB (1 << 7)
+
+// --------------------------------------------------------------------------
+// SDRAM Registers (Chapter 7)
+#define IXP425_SDRAM_CFG_BASE 0xCC000000
+#define IXP425_SDRAM_CFG_SIZE 0x00100000
+#define IXP425_SDRAM_CONFIG REG32(IXP425_SDRAM_CFG_BASE,0x00)
+#define IXP425_SDRAM_REFRESH REG32(IXP425_SDRAM_CFG_BASE,0x04)
+#define IXP425_SDRAM_IR REG32(IXP425_SDRAM_CFG_BASE,0x08)
+
+// SDRAM_CONFIG bits
+#define SDRAM_CONFIG_2x8Mx16 0
+#define SDRAM_CONFIG_4x8Mx16 1
+#define SDRAM_CONFIG_2x16Mx16 2
+#define SDRAM_CONFIG_4x16Mx16 3
+#define SDRAM_CONFIG_2x32Mx16 4
+#define SDRAM_CONFIG_4x32Mx16 5
+#define SDRAM_CONFIG_CAS_3 (1 << 3)
+#define SDRAM_CONFIG_RAS_3 (1 << 4)
+
+// SDRAM_IR commands
+#define SDRAM_IR_MODE_SET_CAS2 0
+#define SDRAM_IR_MODE_SET_CAS3 1
+#define SDRAM_IR_PRECHARGE 2
+#define SDRAM_IR_NOP 3
+#define SDRAM_IR_AUTO_REFRESH 4
+#define SDRAM_IR_BURST_TERMINATE 5
+#define SDRAM_IR_NORMAL 6
+
+// --------------------------------------------------------------------------
+// Expansion Bus Register (Chapter 9)
+#define IXP425_EXP_CFG_BASE 0xC4000000
+#define IXP425_EXP_CFG_SIZE 0x00100000
+#define IXP425_EXP_CS_BASE 0x50000000
+#define IXP425_EXP_CS_SIZE 0x01000000
+#define IXP425_EXP_CS0 REG32(IXP425_EXP_CFG_BASE,0x00)
+#define IXP425_EXP_CS1 REG32(IXP425_EXP_CFG_BASE,0x04)
+#define IXP425_EXP_CS2 REG32(IXP425_EXP_CFG_BASE,0x08)
+#define IXP425_EXP_CS3 REG32(IXP425_EXP_CFG_BASE,0x0C)
+#define IXP425_EXP_CS4 REG32(IXP425_EXP_CFG_BASE,0x10)
+#define IXP425_EXP_CS5 REG32(IXP425_EXP_CFG_BASE,0x14)
+#define IXP425_EXP_CS6 REG32(IXP425_EXP_CFG_BASE,0x18)
+#define IXP425_EXP_CS7 REG32(IXP425_EXP_CFG_BASE,0x1C)
+#define IXP425_EXP_CNFG0 REG32(IXP425_EXP_CFG_BASE,0x20)
+#define IXP425_EXP_CNFG1 REG32(IXP425_EXP_CFG_BASE,0x24)
+
+// EXP_CSn bits
+#define EXP_BYTE_EN (1 << 0)
+#define EXP_WR_EN (1 << 1)
+#define EXP_SPLT_EN (1 << 3)
+#define EXP_MUX_EN (1 << 4)
+#define EXP_HRDY_POL (1 << 5)
+#define EXP_BYTE_RD16 (1 << 6)
+#define EXP_SZ_512 (0 << 10)
+#define EXP_SZ_1K (1 << 10)
+#define EXP_SZ_2K (2 << 10)
+#define EXP_SZ_4K (3 << 10)
+#define EXP_SZ_8K (4 << 10)
+#define EXP_SZ_16K (5 << 10)
+#define EXP_SZ_32K (6 << 10)
+#define EXP_SZ_64K (7 << 10)
+#define EXP_SZ_128K (8 << 10)
+#define EXP_SZ_256K (9 << 10)
+#define EXP_SZ_512K (10 << 10)
+#define EXP_SZ_1M (11 << 10)
+#define EXP_SZ_2M (12 << 10)
+#define EXP_SZ_4M (13 << 10)
+#define EXP_SZ_8M (14 << 10)
+#define EXP_SZ_16M (15 << 10)
+#define EXP_CYC_INTEL (0 << 14)
+#define EXP_CYC_MOTO (1 << 14)
+#define EXP_CYC_HPI (2 << 14)
+
+#define EXP_RECOVERY_SHIFT 16
+#define EXP_HOLD_SHIFT 20
+#define EXP_STROBE_SHIFT 22
+#define EXP_SETUP_SHIFT 26
+#define EXP_ADDR_SHIFT 28
+#define EXP_CS_EN (1 << 31)
+
+#define EXP_RECOVERY_T(x) (((x) & 15) << EXP_RECOVERY_SHIFT)
+#define EXP_HOLD_T(x) (((x) & 3) << EXP_HOLD_SHIFT)
+#define EXP_STROBE_T(x) (((x) & 15) << EXP_STROBE_SHIFT)
+#define EXP_SETUP_T(x) (((x) & 3) << EXP_SETUP_SHIFT)
+#define EXP_ADDR_T(x) (((x) & 3) << EXP_ADDR_SHIFT)
+
+// EXP_CNFG0 bits
+#define EXP_CNFG0_8BIT (1 << 0)
+#define EXP_CNFG0_PCI_HOST (1 << 1)
+#define EXP_CNFG0_PCI_ARB (1 << 2)
+#define EXP_CNFG0_PCI_66MHZ (1 << 4)
+#define EXP_CNFG0_MEM_MAP (1 << 31)
+
+// EXP_CNFG1 bits
+#define EXP_CNFG1_SW_INT0 (1 << 0)
+#define EXP_CNFG1_SW_INT1 (1 << 1)
+#define EXP_CNFG1_BYTE_SWAP_EN (1 << 8)
+
+
+// --------------------------------------------------------------------------
+// GPIO (Chapter 13)
+#define IXP425_GPIO_CFG_BASE 0xC8004000
+#define IXP425_GPOUTR REG32(IXP425_GPIO_CFG_BASE,0x00)
+#define IXP425_GPOER REG32(IXP425_GPIO_CFG_BASE,0x04)
+#define IXP425_GPINR REG32(IXP425_GPIO_CFG_BASE,0x08)
+#define IXP425_GPISR REG32(IXP425_GPIO_CFG_BASE,0x0C)
+#define IXP425_GPIT1R REG32(IXP425_GPIO_CFG_BASE,0x10)
+#define IXP425_GPIT2R REG32(IXP425_GPIO_CFG_BASE,0x14)
+#define IXP425_GPCLKR REG32(IXP425_GPIO_CFG_BASE,0x18)
+
+// GPCLKR bits
+#define GPCLKR_CLK0DC_SHIFT 0
+#define GPCLKR_CLK0TC_SHIFT 4
+#define GPCLKR_CLK0_ENABLE (1 << 8)
+#define GPCLKR_CLK1DC_SHIFT 16
+#define GPCLKR_CLK1TC_SHIFT 20
+#define GPCLKR_CLK1_ENABLE (1 << 24)
+
+#define GPCLKR_CLK0_PCLK2 \
+ ((0xf << GPCLKR_CLK0DC_SHIFT) | (0xf << GPCLKR_CLK0TC_SHIFT))
+
+#define GPCLKR_CLK1_PCLK2 \
+ ((0xf << GPCLKR_CLK1DC_SHIFT) | (0xf << GPCLKR_CLK1TC_SHIFT))
+
+#define HAL_GPIO_OUTPUT_ENABLE(line) \
+ *IXP425_GPOER &= ~(1 << (line))
+
+#define HAL_GPIO_OUTPUT_DISABLE(line) \
+ *IXP425_GPOER |= (1 << (line))
+
+#define HAL_GPIO_OUTPUT_SET(line) \
+ *IXP425_GPOUTR |= (1 << (line))
+
+#define HAL_GPIO_OUTPUT_CLEAR(line) \
+ *IXP425_GPOUTR &= ~(1 << (line))
+
+// --------------------------------------------------------------------------
+// Interrupts (Chapter 14)
+#define IXP425_INTR_CFG_BASE 0xC8003000
+#define IXP425_INTR_ST REG32(IXP425_INTR_CFG_BASE,0x00)
+#define IXP425_INTR_EN REG32(IXP425_INTR_CFG_BASE,0x04)
+#define IXP425_INTR_SEL REG32(IXP425_INTR_CFG_BASE,0x08)
+#define IXP425_INTR_IRQ_ST REG32(IXP425_INTR_CFG_BASE,0x0C)
+#define IXP425_INTR_FIQ_ST REG32(IXP425_INTR_CFG_BASE,0x10)
+#define IXP425_INTR_PRTY REG32(IXP425_INTR_CFG_BASE,0x14)
+#define IXP425_INTR_IRQ_ENC_ST REG32(IXP425_INTR_CFG_BASE,0x18)
+#define IXP425_INTR_FIQ_ENC_ST REG32(IXP425_INTR_CFG_BASE,0x1C)
+
+// --------------------------------------------------------------------------
+// Timers (Chapter 15)
+#define IXP425_OST_CFG_BASE 0xC8005000
+#define IXP425_OST_TS REG32(IXP425_OST_CFG_BASE,0x00)
+#define IXP425_OST_TIM0 REG32(IXP425_OST_CFG_BASE,0x04)
+#define IXP425_OST_TIM0_RL REG32(IXP425_OST_CFG_BASE,0x08)
+#define IXP425_OST_TIM1 REG32(IXP425_OST_CFG_BASE,0x0C)
+#define IXP425_OST_TIM1_RL REG32(IXP425_OST_CFG_BASE,0x10)
+#define IXP425_OST_WDOG REG32(IXP425_OST_CFG_BASE,0x14)
+#define IXP425_OST_WDOG_ENA REG32(IXP425_OST_CFG_BASE,0x18)
+#define IXP425_OST_WDOG_KEY REG32(IXP425_OST_CFG_BASE,0x1C)
+#define IXP425_OST_STS REG32(IXP425_OST_CFG_BASE,0x20)
+
+// OST_STS bits
+#define OST_STS_T0INT 0x01
+#define OST_STS_T1INT 0x02
+#define OST_STS_TSINT 0x04
+#define OST_STS_WDOGINT 0x08
+#define OST_STS_RESET 0x10
+
+// OST_TIMx_RL bits
+#define OST_TIM_RL_ENABLE 0x01
+#define OST_TIM_RL_ONESHOT 0x02
+#define OST_TIM_RL_MASK 0xFFFFFFFC
+
+
+#endif // CYGONCE_HAL_ARM_XSCALE_HAL_IXP425_H
+// EOF hal_ixp425.h
diff --git a/ecos/packages/hal/arm/xscale/ixp425/current/include/hal_var_ints.h b/ecos/packages/hal/arm/xscale/ixp425/current/include/hal_var_ints.h
new file mode 100644
index 0000000..65aa674
--- /dev/null
+++ b/ecos/packages/hal/arm/xscale/ixp425/current/include/hal_var_ints.h
@@ -0,0 +1,136 @@
+#ifndef CYGONCE_HAL_VAR_INTS_H
+#define CYGONCE_HAL_VAR_INTS_H
+//==========================================================================
+//
+// hal_var_ints.h
+//
+// HAL Interrupt and clock support
+//
+//==========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//==========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): msalter
+// Contributors: msalter
+// Date: 2001-12-03
+// Purpose: Define Interrupt support
+// Description: The interrupt details for XScale CPUs are defined here.
+// Usage:
+// #include <pkgconf/system.h>
+// #include CYGBLD_HAL_VARIANT_H
+// #include CYGBLD_HAL_VAR_INTS_H
+//
+// ...
+//
+//
+//####DESCRIPTIONEND####
+//
+//==========================================================================
+
+#include <cyg/hal/hal_ixp425.h> // registers
+
+//
+// Values for the vector argument of cyg_drv_interrupt_create() and
+// other interrupt related interfaces.
+//
+#define CYGNUM_HAL_INTERRUPT_NONE -1
+#define CYGNUM_HAL_INTERRUPT_NPEA 0
+#define CYGNUM_HAL_INTERRUPT_NPEB 1
+#define CYGNUM_HAL_INTERRUPT_NPEC 2
+#define CYGNUM_HAL_INTERRUPT_QM1 3
+#define CYGNUM_HAL_INTERRUPT_QM2 4
+#define CYGNUM_HAL_INTERRUPT_TIMER0 5
+#define CYGNUM_HAL_INTERRUPT_GPIO0 6
+#define CYGNUM_HAL_INTERRUPT_GPIO1 7
+#define CYGNUM_HAL_INTERRUPT_PCI_INT 8
+#define CYGNUM_HAL_INTERRUPT_PCI_DMA1 9
+#define CYGNUM_HAL_INTERRUPT_PCI_DMA2 10
+#define CYGNUM_HAL_INTERRUPT_TIMER1 11
+#define CYGNUM_HAL_INTERRUPT_USB 12
+#define CYGNUM_HAL_INTERRUPT_UART2 13
+#define CYGNUM_HAL_INTERRUPT_TIMESTAMP 14
+#define CYGNUM_HAL_INTERRUPT_UART1 15
+#define CYGNUM_HAL_INTERRUPT_WDOG 16
+#define CYGNUM_HAL_INTERRUPT_AHB_PMU 17
+#define CYGNUM_HAL_INTERRUPT_XSCALE_PMU 18
+#define CYGNUM_HAL_INTERRUPT_GPIO2 19
+#define CYGNUM_HAL_INTERRUPT_GPIO3 20
+#define CYGNUM_HAL_INTERRUPT_GPIO4 21
+#define CYGNUM_HAL_INTERRUPT_GPIO5 22
+#define CYGNUM_HAL_INTERRUPT_GPIO6 23
+#define CYGNUM_HAL_INTERRUPT_GPIO7 24
+#define CYGNUM_HAL_INTERRUPT_GPIO8 25
+#define CYGNUM_HAL_INTERRUPT_GPIO9 26
+#define CYGNUM_HAL_INTERRUPT_GPIO10 27
+#define CYGNUM_HAL_INTERRUPT_GPIO11 28
+#define CYGNUM_HAL_INTERRUPT_GPIO12 29
+#define CYGNUM_HAL_INTERRUPT_SW_INT1 30
+#define CYGNUM_HAL_INTERRUPT_SW_INT2 31
+
+#define CYGNUM_HAL_VAR_ISR_MAX 31
+
+#define CYGNUM_HAL_ISR_MIN 0
+#define CYGNUM_HAL_ISR_MAX CYGNUM_HAL_VAR_ISR_MAX
+
+#define CYGNUM_HAL_ISR_COUNT (CYGNUM_HAL_ISR_MAX+1)
+
+#define CYGNUM_HAL_INTERRUPT_RTC CYGNUM_HAL_INTERRUPT_TIMER0
+
+// ------------------------------------------------------------------------
+// Dynamically set the timer interrupt rate.
+// Not for application use at all.
+
+externC void
+hal_clock_reinitialize( int *pfreq, /* inout */
+ unsigned int *pperiod, /* inout */
+ unsigned int old_hz ); /* in */
+
+#define HAL_CLOCK_REINITIALIZE( _freq, _period, _old_hz ) \
+ hal_clock_reinitialize( &_freq, &_period, _old_hz )
+
+#define HAL_PLATFORM_RESET_ENTRY 0x00000000
+
+
+// ------------------------------------------------------------------------
+// Used for to tell if interrupt belongs to GDB comm channel
+//
+#define CYGHWR_HAL_GDB_PORT_VECTORS_MATCH(_v_, _gv_) \
+ (((_v_) == (_gv_)) || \
+ ((_v_) == CYGNUM_HAL_INTERRUPT_QM1 && \
+ ((_gv_) == CYGNUM_HAL_INTERRUPT_NPEB || \
+ (_gv_) == CYGNUM_HAL_INTERRUPT_NPEC)))
+
+
+#endif // CYGONCE_HAL_VAR_INTS_H
+// EOF hal_var_ints.h
diff --git a/ecos/packages/hal/arm/xscale/ixp425/current/include/var_io.h b/ecos/packages/hal/arm/xscale/ixp425/current/include/var_io.h
new file mode 100644
index 0000000..b8e44de
--- /dev/null
+++ b/ecos/packages/hal/arm/xscale/ixp425/current/include/var_io.h
@@ -0,0 +1,239 @@
+#ifndef CYGONCE_HAL_ARM_IXP425_VAR_IO_H
+#define CYGONCE_HAL_ARM_IXP425_VAR_IO_H
+
+/*=============================================================================
+//
+// var_io.h
+//
+// Platform specific support.
+//
+//=============================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): msalter
+// Contributors: msalter
+// Date: 2002-12-12
+// Purpose: IXP425 specific support routines
+// Description:
+// Usage: #include <cyg/hal/hal_io.h>
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================*/
+
+#include <cyg/hal/plf_io.h>
+
+//-----------------------------------------------------------------------------
+
+extern cyg_uint32 cyg_hal_plf_pci_cfg_read_dword (cyg_uint32 bus,
+ cyg_uint32 devfn,
+ cyg_uint32 offset);
+extern cyg_uint16 cyg_hal_plf_pci_cfg_read_word (cyg_uint32 bus,
+ cyg_uint32 devfn,
+ cyg_uint32 offset);
+extern cyg_uint8 cyg_hal_plf_pci_cfg_read_byte (cyg_uint32 bus,
+ cyg_uint32 devfn,
+ cyg_uint32 offset);
+extern void cyg_hal_plf_pci_cfg_write_dword (cyg_uint32 bus,
+ cyg_uint32 devfn,
+ cyg_uint32 offset,
+ cyg_uint32 val);
+extern void cyg_hal_plf_pci_cfg_write_word (cyg_uint32 bus,
+ cyg_uint32 devfn,
+ cyg_uint32 offset,
+ cyg_uint16 val);
+extern void cyg_hal_plf_pci_cfg_write_byte (cyg_uint32 bus,
+ cyg_uint32 devfn,
+ cyg_uint32 offset,
+ cyg_uint8 val);
+
+extern void cyg_hal_plf_pci_io_outb(cyg_uint32 offset, cyg_uint8 value);
+extern void cyg_hal_plf_pci_io_outw(cyg_uint32 offset, cyg_uint16 value);
+extern void cyg_hal_plf_pci_io_outl(cyg_uint32 offset, cyg_uint32 value);
+extern cyg_uint8 cyg_hal_plf_pci_io_inb(cyg_uint32 offset);
+extern cyg_uint16 cyg_hal_plf_pci_io_inw(cyg_uint32 offset);
+extern cyg_uint32 cyg_hal_plf_pci_io_inl(cyg_uint32 offset);
+
+extern void cyg_hal_plf_pci_init(void);
+#define HAL_PCI_INIT() cyg_hal_plf_pci_init()
+
+
+// Translate the PCI interrupt requested by the device (INTA#, INTB#,
+// INTC# or INTD#) to the associated CPU interrupt (i.e., HAL vector).
+extern void cyg_hal_plf_pci_translate_interrupt(cyg_uint32 bus, cyg_uint32 devfn,
+ CYG_ADDRWORD *vec, cyg_bool *valid);
+#define HAL_PCI_TRANSLATE_INTERRUPT( __bus, __devfn, __vec, __valid)\
+ cyg_hal_plf_pci_translate_interrupt(__bus, __devfn, &(__vec), &(__valid))
+
+
+#ifdef CYGPKG_IO_PCI
+
+// Read a value from the PCI configuration space of the appropriate
+// size at an address composed from the bus, devfn and offset.
+#define HAL_PCI_CFG_READ_UINT8( __bus, __devfn, __offset, __val ) \
+ __val = cyg_hal_plf_pci_cfg_read_byte((__bus), (__devfn), (__offset))
+
+#define HAL_PCI_CFG_READ_UINT16( __bus, __devfn, __offset, __val ) \
+ __val = cyg_hal_plf_pci_cfg_read_word((__bus), (__devfn), (__offset))
+
+#define HAL_PCI_CFG_READ_UINT32( __bus, __devfn, __offset, __val ) \
+ __val = cyg_hal_plf_pci_cfg_read_dword((__bus), (__devfn), (__offset))
+
+// Write a value to the PCI configuration space of the appropriate
+// size at an address composed from the bus, devfn and offset.
+#define HAL_PCI_CFG_WRITE_UINT8( __bus, __devfn, __offset, __val ) \
+ cyg_hal_plf_pci_cfg_write_byte((__bus), (__devfn), (__offset), (__val))
+
+#define HAL_PCI_CFG_WRITE_UINT16( __bus, __devfn, __offset, __val ) \
+ cyg_hal_plf_pci_cfg_write_word((__bus), (__devfn), (__offset), (__val))
+
+#define HAL_PCI_CFG_WRITE_UINT32( __bus, __devfn, __offset, __val ) \
+ cyg_hal_plf_pci_cfg_write_dword((__bus), (__devfn), (__offset), (__val))
+#else
+
+#define HAL_PCI_CFG_READ_UINT8( __bus, __devfn, __offset, __val )
+#define HAL_PCI_CFG_READ_UINT16( __bus, __devfn, __offset, __val )
+#define HAL_PCI_CFG_READ_UINT32( __bus, __devfn, __offset, __val )
+#define HAL_PCI_CFG_WRITE_UINT8( __bus, __devfn, __offset, __val )
+#define HAL_PCI_CFG_WRITE_UINT16( __bus, __devfn, __offset, __val )
+#define HAL_PCI_CFG_WRITE_UINT32( __bus, __devfn, __offset, __val )
+#endif
+
+
+// Default memory mapping details
+#ifndef CYGARC_PHYSICAL_ADDRESS
+#define CYGARC_PHYSICAL_ADDRESS(x) (x)
+#endif
+
+#ifndef CYGARC_UNCACHED_ADDRESS
+#define CYGARC_UNCACHED_ADDRESS(x) \
+ ((((cyg_uint32)(x)) < 0x10000000) ? (((cyg_uint32)(x))+0x20000000) : (x))
+#endif
+
+#ifndef CYGARC_VIRT_TO_BUS
+// direct mapped at uncached address
+#define CYGARC_VIRT_TO_BUS(x) (((cyg_uint32)(x) & 0xfffffff))
+#endif
+
+#ifndef CYGARC_BUS_TO_VIRT
+// direct mapped
+#define CYGARC_BUS_TO_VIRT(x) (x)
+#endif
+
+#define HAL_PCI_ALLOC_BASE_MEMORY 0x48000000
+#define HAL_PCI_ALLOC_BASE_IO 0
+
+#define HAL_PCI_PHYSICAL_MEMORY_BASE 0
+#define HAL_PCI_PHYSICAL_IO_BASE 0
+
+//-----------------------------------------------------------------------------
+// HAL IO macros.
+
+// Macro used to determine if given address corresponds to PCI IO address
+// space. Evaluates to non-zero if address is for PCI IO.
+#ifdef CYGPKG_IO_PCI
+#define IXDP425_IS_PCI_IO(x) (((cyg_uint32)(x))<0x40000000)
+#else
+#define IXDP425_IS_PCI_IO(x) 0
+#endif
+
+//-----------------------------------------------------------------------------
+// BYTE Register access.
+
+#define HAL_READ_UINT8( _reg_, _value_ ) \
+ CYG_MACRO_START \
+ if (IXDP425_IS_PCI_IO(_reg_)) \
+ (_value_) = cyg_hal_plf_pci_io_inb((cyg_uint32)(_reg_)); \
+ else \
+ ((_value_) = *((volatile CYG_BYTE *)(_reg_))); \
+ CYG_MACRO_END
+
+#define HAL_WRITE_UINT8( _reg_, _value_ ) \
+ CYG_MACRO_START \
+ if (IXDP425_IS_PCI_IO(_reg_)) \
+ cyg_hal_plf_pci_io_outb((cyg_uint32)(_reg_), _value_); \
+ else \
+ (*((volatile CYG_BYTE *)(_reg_)) = (_value_)); \
+ CYG_MACRO_END
+
+//-----------------------------------------------------------------------------
+// 16 bit access.
+
+#define HAL_READ_UINT16( _reg_, _value_ ) \
+ CYG_MACRO_START \
+ if (IXDP425_IS_PCI_IO(_reg_)) \
+ (_value_) = cyg_hal_plf_pci_io_inw((cyg_uint32)(_reg_)); \
+ else \
+ ((_value_) = *((volatile CYG_WORD16 *)(_reg_))); \
+ CYG_MACRO_END
+
+#define HAL_WRITE_UINT16( _reg_, _value_ ) \
+ CYG_MACRO_START \
+ if (IXDP425_IS_PCI_IO(_reg_)) \
+ cyg_hal_plf_pci_io_outw((cyg_uint32)(_reg_), _value_); \
+ else \
+ (*((volatile CYG_WORD16 *)(_reg_)) = (_value_)); \
+ CYG_MACRO_END
+
+//-----------------------------------------------------------------------------
+// 32 bit access.
+
+#define HAL_READ_UINT32( _reg_, _value_ ) \
+ CYG_MACRO_START \
+ if (IXDP425_IS_PCI_IO(_reg_)) \
+ (_value_) = cyg_hal_plf_pci_io_inl((cyg_uint32)(_reg_)); \
+ else \
+ ((_value_) = *((volatile CYG_WORD32 *)(_reg_))); \
+ CYG_MACRO_END
+
+#define HAL_WRITE_UINT32( _reg_, _value_ ) \
+ CYG_MACRO_START \
+ if (IXDP425_IS_PCI_IO(_reg_)) \
+ cyg_hal_plf_pci_io_outl((cyg_uint32)(_reg_), _value_); \
+ else \
+ (*((volatile CYG_WORD32 *)(_reg_)) = (_value_)); \
+ CYG_MACRO_END
+
+#define HAL_IO_MACROS_DEFINED
+
+//-----------------------------------------------------------------------------
+// HAL flash functions.
+// These perform special operations between RedBoot and the flash driver.
+
+externC int hal_flash_read(void *addr, void *data, int len, void **err);
+externC int hal_flash_program(void *addr, void *data, int len, void **err);
+
+#endif // CYGONCE_HAL_ARM_IXP425_VAR_IO_H
+// EOF var_io.h
diff --git a/ecos/packages/hal/arm/xscale/ixp425/current/src/ixp425_diag.c b/ecos/packages/hal/arm/xscale/ixp425/current/src/ixp425_diag.c
new file mode 100644
index 0000000..2941d92
--- /dev/null
+++ b/ecos/packages/hal/arm/xscale/ixp425/current/src/ixp425_diag.c
@@ -0,0 +1,434 @@
+/*=============================================================================
+//
+// ixp425_diag.c
+//
+// HAL diagnostic output code
+//
+//=============================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): msalter
+// Contributors:msalter
+// Date: 2002-12-08
+// Purpose: HAL diagnostic output
+// Description: Implementations of HAL diagnostic output support.
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================*/
+
+#include <pkgconf/hal.h>
+#include CYGBLD_HAL_VARIANT_H // Variant specific configuration
+#include CYGBLD_HAL_PLATFORM_H // Platform specific configuration
+
+#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> // basic machine info
+#include <cyg/hal/hal_intr.h> // interrupt macros
+#include <cyg/hal/hal_io.h> // IO macros
+#include <cyg/hal/hal_diag.h>
+#include <cyg/hal/drv_api.h>
+#include <cyg/hal/hal_if.h> // interface API
+#include <cyg/hal/hal_misc.h> // Helper functions
+
+#if !defined(CYGSEM_HAL_IXP425_PLF_USES_UART1) && !defined(CYGSEM_HAL_IXP425_PLF_USES_UART2)
+#define IXP425_NUM_UARTS 0
+#elif defined(CYGSEM_HAL_IXP425_PLF_USES_UART1) && defined(CYGSEM_HAL_IXP425_PLF_USES_UART2)
+#define IXP425_NUM_UARTS 2
+#else
+#define IXP425_NUM_UARTS 1
+#endif
+
+#if IXP425_NUM_UARTS > 0
+
+/*---------------------------------------------------------------------------*/
+/* 16550 compatible UARTS */
+
+// Define the serial registers.
+#define CYG_DEV_RBR 0x00 // receiver buffer register, read, dlab = 0
+#define CYG_DEV_THR 0x00 // transmitter holding register, write, dlab = 0
+#define CYG_DEV_DLL 0x00 // divisor latch (LS), read/write, dlab = 1
+#define CYG_DEV_IER 0x01 // interrupt enable register, read/write, dlab = 0
+#define CYG_DEV_DLM 0x01 // divisor latch (MS), read/write, dlab = 1
+#define CYG_DEV_IIR 0x02 // interrupt identification register, read, dlab = 0
+#define CYG_DEV_FCR 0x02 // fifo control register, write, dlab = 0
+#define CYG_DEV_LCR 0x03 // line control register, write
+#define CYG_DEV_MCR 0x04 // modem control register, write
+#define CYG_DEV_LSR 0x05 // line status register, read
+#define CYG_DEV_MSR 0x06 // modem status register, read
+#define CYG_DEV_SCR 0x07 // scratch pad register
+
+// Interrupt Enable Register
+#define SIO_IER_RCV 0x01
+#define SIO_IER_XMT 0x02
+#define SIO_IER_LS 0x04
+#define SIO_IER_MS 0x08
+#define SIO_IER_UUE 0x40 // UART Unit Enable
+
+// The line status register bits.
+#define SIO_LSR_DR 0x01 // data ready
+#define SIO_LSR_OE 0x02 // overrun error
+#define SIO_LSR_PE 0x04 // parity error
+#define SIO_LSR_FE 0x08 // framing error
+#define SIO_LSR_BI 0x10 // break interrupt
+#define SIO_LSR_THRE 0x20 // transmitter holding register empty
+#define SIO_LSR_TEMT 0x40 // transmitter register empty
+#define SIO_LSR_ERR 0x80 // any error condition
+
+// The modem status register bits.
+#define SIO_MSR_DCTS 0x01 // delta clear to send
+#define SIO_MSR_DDSR 0x02 // delta data set ready
+#define SIO_MSR_TERI 0x04 // trailing edge ring indicator
+#define SIO_MSR_DDCD 0x08 // delta data carrier detect
+#define SIO_MSR_CTS 0x10 // clear to send
+#define SIO_MSR_DSR 0x20 // data set ready
+#define SIO_MSR_RI 0x40 // ring indicator
+#define SIO_MSR_DCD 0x80 // data carrier detect
+
+// The line control register bits.
+#define SIO_LCR_WLS0 0x01 // word length select bit 0
+#define SIO_LCR_WLS1 0x02 // word length select bit 1
+#define SIO_LCR_STB 0x04 // number of stop bits
+#define SIO_LCR_PEN 0x08 // parity enable
+#define SIO_LCR_EPS 0x10 // even parity select
+#define SIO_LCR_SP 0x20 // stick parity
+#define SIO_LCR_SB 0x40 // set break
+#define SIO_LCR_DLAB 0x80 // divisor latch access bit
+
+// Modem Control Register
+#define SIO_MCR_DTR 0x01
+#define SIO_MCR_RTS 0x02
+#define SIO_MCR_OUT1 0x04
+#define SIO_MCR_OUT2 0x08
+#define SIO_MCR_LOOP 0x10
+#define SIO_MCR_AFE 0x20
+
+#define UART1_BASE 0xC8000000
+#define UART2_BASE 0xC8001000
+
+//-----------------------------------------------------------------------------
+typedef struct {
+ cyg_uint32* base;
+ cyg_int32 msec_timeout;
+ int isr_vector;
+ cyg_int32 baud_rate;
+} channel_data_t;
+
+
+//-----------------------------------------------------------------------------
+// Based on 14.7456 MHz xtal
+static int
+set_baud( channel_data_t *chan )
+{
+ cyg_uint32* base = chan->base;
+ cyg_uint16 div = 921600 / chan->baud_rate;
+ cyg_uint32 lcr;
+
+ HAL_READ_UINT32(base+CYG_DEV_LCR, lcr);
+ HAL_WRITE_UINT32(base+CYG_DEV_LCR, lcr|SIO_LCR_DLAB);
+ HAL_WRITE_UINT32(base+CYG_DEV_DLL, div & 0xff);
+ HAL_WRITE_UINT32(base+CYG_DEV_DLM, (div >> 8) & 0xff);
+ HAL_WRITE_UINT32(base+CYG_DEV_LCR, lcr);
+ return 1;
+}
+
+static void
+cyg_hal_plf_serial_init_channel(void* __ch_data)
+{
+ cyg_uint32* base = ((channel_data_t*)__ch_data)->base;
+ channel_data_t* chan = (channel_data_t*)__ch_data;
+
+ HAL_WRITE_UINT32(chan->base+CYG_DEV_IER, SIO_IER_UUE);
+
+ // 8-1-no parity.
+ HAL_WRITE_UINT32(base+CYG_DEV_LCR, SIO_LCR_WLS0 | SIO_LCR_WLS1);
+ chan->baud_rate = CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_BAUD;
+ set_baud( chan );
+ HAL_WRITE_UINT32(base+CYG_DEV_FCR, 0x07); // Enable & clear FIFO
+ HAL_WRITE_UINT32(base+CYG_DEV_MCR, SIO_MCR_OUT2); // Enable interrupt to core
+}
+
+void
+cyg_hal_plf_serial_putc(void *__ch_data, char c)
+{
+ cyg_uint32* base = ((channel_data_t*)__ch_data)->base;
+ cyg_uint32 lsr, val;
+ CYGARC_HAL_SAVE_GP();
+
+ do {
+ HAL_READ_UINT32(base+CYG_DEV_LSR, lsr);
+ } while ((lsr & SIO_LSR_THRE) == 0);
+
+ val = c;
+ HAL_WRITE_UINT32(base+CYG_DEV_THR, val);
+
+ CYGARC_HAL_RESTORE_GP();
+}
+
+static cyg_bool
+cyg_hal_plf_serial_getc_nonblock(void* __ch_data, cyg_uint8* ch)
+{
+ cyg_uint32* base = ((channel_data_t*)__ch_data)->base;
+ cyg_uint32 lsr, val;
+
+ HAL_READ_UINT32(base+CYG_DEV_LSR, lsr);
+ if ((lsr & SIO_LSR_DR) == 0)
+ return false;
+
+ HAL_READ_UINT32(base+CYG_DEV_RBR, val);
+ *ch = val;
+
+ 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;
+}
+
+static channel_data_t plf_ser_channels[] = {
+#if defined(CYGSEM_HAL_IXP425_PLF_USES_UART1) && !defined(HAL_PLATFORM_UART2_FIRST)
+ { (cyg_uint32*)UART1_BASE, 1000, CYGNUM_HAL_INTERRUPT_UART1 },
+#endif
+#if defined(CYGSEM_HAL_IXP425_PLF_USES_UART2)
+ { (cyg_uint32*)UART2_BASE, 1000, CYGNUM_HAL_INTERRUPT_UART2 }
+#endif
+#if defined(CYGSEM_HAL_IXP425_PLF_USES_UART1) && defined(HAL_PLATFORM_UART2_FIRST)
+ { (cyg_uint32*)UART1_BASE, 1000, CYGNUM_HAL_INTERRUPT_UART1 },
+#endif
+};
+
+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;
+ int ret = 0;
+ CYGARC_HAL_SAVE_GP();
+
+ switch (__func) {
+ case __COMMCTL_IRQ_ENABLE:
+ irq_state = 1;
+
+ HAL_WRITE_UINT32(chan->base+CYG_DEV_IER, SIO_IER_RCV | SIO_IER_UUE);
+ HAL_INTERRUPT_UNMASK(chan->isr_vector);
+ break;
+ case __COMMCTL_IRQ_DISABLE:
+ ret = irq_state;
+ irq_state = 0;
+
+ HAL_WRITE_UINT32(chan->base+CYG_DEV_IER, SIO_IER_UUE);
+ 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);
+ }
+ case __COMMCTL_GETBAUD:
+ ret = chan->baud_rate;
+ break;
+ case __COMMCTL_SETBAUD:
+ {
+ cyg_uint32 b;
+ va_list ap;
+
+ va_start(ap, __func);
+ b = va_arg(ap, cyg_int32);
+ va_end(ap);
+
+ if (b < 300 || b > 115200)
+ ret = -1;
+ else {
+ chan->baud_rate = b;
+ ret = set_baud(chan);
+ }
+ break;
+ }
+ 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;
+ channel_data_t* chan = (channel_data_t*)__ch_data;
+ char c;
+ cyg_uint8 lsr;
+ CYGARC_HAL_SAVE_GP();
+
+ cyg_drv_interrupt_acknowledge(chan->isr_vector);
+
+ *__ctrlc = 0;
+ HAL_READ_UINT32(chan->base+CYG_DEV_LSR, lsr);
+ if ( (lsr & SIO_LSR_DR) != 0 ) {
+
+ HAL_READ_UINT32(chan->base+CYG_DEV_RBR, c);
+ if( cyg_hal_is_break( &c , 1 ) )
+ *__ctrlc = 1;
+
+ res = CYG_ISR_HANDLED;
+ }
+
+ CYGARC_HAL_RESTORE_GP();
+ return res;
+}
+
+void
+cyg_hal_ixp425_serial_init(void)
+{
+ hal_virtual_comm_table_t* comm;
+ int i, cur = CYGACC_CALL_IF_SET_CONSOLE_COMM(CYGNUM_CALL_IF_SET_COMM_ID_QUERY_CURRENT);
+
+ for (i = 0; i < IXP425_NUM_UARTS; i++) {
+
+ // Disable interrupts.
+ HAL_INTERRUPT_MASK(plf_ser_channels[i].isr_vector);
+
+ // Init channels
+ cyg_hal_plf_serial_init_channel(&plf_ser_channels[i]);
+
+ // Setup procs in the vector table
+ CYGACC_CALL_IF_SET_CONSOLE_COMM(i);
+ comm = CYGACC_CALL_IF_CONSOLE_PROCS();
+ CYGACC_COMM_IF_CH_DATA_SET(*comm, &plf_ser_channels[i]);
+ 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);
+}
+
+// If the platform provides some channels of its own, then this function will be
+// provided by that platform.
+#if !defined(CYGNUM_HAL_IXP425_PLF_SERIAL_CHANNELS) || !CYGNUM_HAL_IXP425_PLF_SERIAL_CHANNELS
+void
+cyg_hal_plf_comms_init(void)
+{
+ static int initialized = 0;
+
+ if (initialized)
+ return;
+
+ initialized = 1;
+
+ cyg_hal_ixp425_serial_init();
+}
+#endif
+
+#endif // IXP425_NUM_UARTS > 0
+
+/*---------------------------------------------------------------------------*/
+
+void
+hal_diag_led(int n)
+{
+}
+
+/*---------------------------------------------------------------------------*/
+/* End of hal_diag.c */
diff --git a/ecos/packages/hal/arm/xscale/ixp425/current/src/ixp425_misc.c b/ecos/packages/hal/arm/xscale/ixp425/current/src/ixp425_misc.c
new file mode 100644
index 0000000..d6a081a
--- /dev/null
+++ b/ecos/packages/hal/arm/xscale/ixp425/current/src/ixp425_misc.c
@@ -0,0 +1,431 @@
+//==========================================================================
+//
+// ixp425_misc.c
+//
+// HAL misc board support code for Intel IXP425 Network Processor
+//
+//==========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//==========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): msalter
+// Contributors: msalter
+// Date: 2002-12-08
+// 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 CYGHWR_MEMORY_LAYOUT_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_stub.h> // Stub macros
+#include <cyg/hal/hal_if.h> // calling interface API
+#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/plf_io.h>
+#include <cyg/infra/diag.h> // diag_printf
+#include <cyg/hal/drv_api.h> // CYG_ISR_HANDLED
+
+// Most initialization has already been done before we get here.
+// All we do here is set up the interrupt environment.
+// FIXME: some of the stuff in hal_platform_setup could be moved here.
+
+externC void plf_hardware_init(void);
+
+void
+hal_hardware_init(void)
+{
+ hal_xscale_core_init();
+
+ // all interrupt sources to IRQ and disabled
+ *IXP425_INTR_SEL = 0;
+ *IXP425_INTR_EN = 0;
+
+ // Enable caches
+ HAL_DCACHE_ENABLE();
+ HAL_ICACHE_ENABLE();
+
+ // Let the timer run at a default rate (for delays)
+ hal_clock_initialize(CYGNUM_HAL_RTC_PERIOD);
+
+ // Set up eCos/ROM interfaces
+ hal_if_init();
+
+ // Perform any platform specific initializations
+ plf_hardware_init();
+
+#ifdef CYGPKG_IO_PCI
+ cyg_hal_plf_pci_init();
+#endif
+}
+
+// -------------------------------------------------------------------------
+// This routine is called to respond to a hardware interrupt (IRQ). It
+// should interrogate the hardware and return the IRQ vector number.
+
+int
+hal_IRQ_handler(void)
+{
+ cyg_uint32 sources;
+ int index;
+
+ sources = *IXP425_INTR_IRQ_ST;
+ if (sources) {
+ HAL_LSBIT_INDEX(index, sources);
+ return index;
+ }
+
+ sources = *IXP425_INTR_FIQ_ST;
+ if (sources) {
+ HAL_LSBIT_INDEX(index, sources);
+ return index;
+ }
+
+ return CYGNUM_HAL_INTERRUPT_NONE; // This shouldn't happen!
+}
+
+void
+hal_interrupt_mask(int vector)
+{
+ unsigned val;
+
+ if (vector < CYGNUM_HAL_ISR_MIN || CYGNUM_HAL_ISR_MAX < vector)
+ return;
+
+#if CYGNUM_HAL_ISR_MAX > CYGNUM_HAL_VAR_ISR_MAX
+ if (vector > CYGNUM_HAL_VAR_ISR_MAX) {
+ HAL_PLF_INTERRUPT_MASK(vector);
+ return;
+ }
+#endif
+
+ val = *IXP425_INTR_EN & ~(1 << vector);
+
+ // If unmasking NPE interrupt, also unmask QM1 which is
+ // shared by all NPE ports.
+ if (vector == CYGNUM_HAL_INTERRUPT_NPEB ||
+ vector == CYGNUM_HAL_INTERRUPT_NPEC) {
+ if (!(val & (CYGNUM_HAL_INTERRUPT_NPEB | CYGNUM_HAL_INTERRUPT_NPEC)))
+ val &= ~(1 << CYGNUM_HAL_INTERRUPT_QM1);
+ }
+
+ *IXP425_INTR_EN = val;
+}
+
+void
+hal_interrupt_unmask(int vector)
+{
+ unsigned val;
+
+ if (vector < CYGNUM_HAL_ISR_MIN || CYGNUM_HAL_ISR_MAX < vector)
+ return;
+
+#if CYGNUM_HAL_ISR_MAX > CYGNUM_HAL_VAR_ISR_MAX
+ if (vector > CYGNUM_HAL_VAR_ISR_MAX) {
+ HAL_PLF_INTERRUPT_UNMASK(vector);
+ return;
+ }
+#endif
+
+ val = *IXP425_INTR_EN | (1 << vector);
+
+ // If all NPE interrupts are masked, also mask QM1 which is
+ // shared by all NPE ports.
+ if (vector == CYGNUM_HAL_INTERRUPT_NPEB ||
+ vector == CYGNUM_HAL_INTERRUPT_NPEC) {
+ val |= (1 << CYGNUM_HAL_INTERRUPT_QM1);
+ }
+
+ *IXP425_INTR_EN = val;
+}
+
+void
+hal_interrupt_acknowledge(int vector)
+{
+ if (vector < CYGNUM_HAL_ISR_MIN || CYGNUM_HAL_ISR_MAX < vector)
+ return;
+
+#if CYGNUM_HAL_ISR_MAX > CYGNUM_HAL_VAR_ISR_MAX
+ if (vector > CYGNUM_HAL_VAR_ISR_MAX) {
+ HAL_PLF_INTERRUPT_ACKNOWLEDGE(vector);
+ return;
+ }
+#endif
+
+ if (vector == CYGNUM_HAL_INTERRUPT_GPIO0 ||
+ vector == CYGNUM_HAL_INTERRUPT_GPIO1) {
+ *IXP425_GPISR = 1 << (vector - CYGNUM_HAL_INTERRUPT_GPIO0);
+ return;
+ }
+
+ if (vector >= CYGNUM_HAL_INTERRUPT_GPIO2 &&
+ vector <= CYGNUM_HAL_INTERRUPT_GPIO12) {
+ *IXP425_GPISR = 4 << (vector - CYGNUM_HAL_INTERRUPT_GPIO2);
+ return;
+ }
+}
+
+
+// This function is used to configure the GPIO interrupts (and possibly
+// some platform-specific interrupts). All of the GPIO pins can potentially
+// generate an interrupt.
+
+// GPIO interrupts are configured as:
+//
+// level up interrupt on
+// ----- -- ------------
+// 0 0 Falling Edge
+// 0 1 Rising Edge
+// 0 -1 Either Edge
+// 1 0 Low level
+// 1 1 High level
+//
+void
+hal_interrupt_configure(int vector, int level, int up)
+{
+ int shift, ival = 0;
+
+ if (vector < CYGNUM_HAL_ISR_MIN || CYGNUM_HAL_ISR_MAX < vector)
+ return;
+
+#if CYGNUM_HAL_ISR_MAX > CYGNUM_HAL_VAR_ISR_MAX
+ if (vector > CYGNUM_HAL_VAR_ISR_MAX) {
+ HAL_PLF_INTERRUPT_CONFIGURE(vector, level, up);
+ return;
+ }
+#endif
+
+ if (level) {
+ ival = up ? 0 : 1 ;
+ } else {
+ if (up == 0)
+ ival = 3;
+ else if (up == 1)
+ ival = 2;
+ else if (up == -1)
+ ival = 4;
+ }
+
+ if (vector == CYGNUM_HAL_INTERRUPT_GPIO0 ||
+ vector == CYGNUM_HAL_INTERRUPT_GPIO1) {
+ vector -= CYGNUM_HAL_INTERRUPT_GPIO0;
+ shift = vector * 3;
+ *IXP425_GPIT1R = (*IXP425_GPIT1R & ~(7 << shift)) | (ival << shift);
+ *IXP425_GPISR |= (1 << vector);
+ return;
+ }
+ if (vector >= CYGNUM_HAL_INTERRUPT_GPIO2 &&
+ vector <= CYGNUM_HAL_INTERRUPT_GPIO7) {
+ vector = vector - CYGNUM_HAL_INTERRUPT_GPIO2 + 2;
+ shift = vector * 3;
+ *IXP425_GPIT1R = (*IXP425_GPIT1R & ~(7 << shift)) | (ival << shift);
+ *IXP425_GPISR |= (1 << vector);
+ return;
+ }
+ if (vector >= CYGNUM_HAL_INTERRUPT_GPIO8 &&
+ vector <= CYGNUM_HAL_INTERRUPT_GPIO12) {
+ vector -= CYGNUM_HAL_INTERRUPT_GPIO8;
+ shift = vector * 3;
+ *IXP425_GPIT2R = (*IXP425_GPIT2R & ~(7 << shift)) | (ival << shift);
+ *IXP425_GPISR |= (1 << vector);
+ return;
+ }
+}
+
+
+// Should do something with priority here.
+void
+hal_interrupt_set_level(int vector, int level)
+{
+}
+
+
+/*------------------------------------------------------------------------*/
+// RTC Support
+
+static cyg_uint32 _period;
+
+#define CLOCK_MULTIPLIER 66
+
+void
+hal_clock_initialize(cyg_uint32 period)
+{
+ cyg_uint32 tmr_period;
+
+ _period = period;
+
+ tmr_period = (period * CLOCK_MULTIPLIER) & OST_TIM_RL_MASK;
+
+ // clear pending interrupt
+ *IXP425_OST_STS = OST_STS_T0INT;
+
+ // set reload value and enable
+ *IXP425_OST_TIM0_RL = tmr_period | OST_TIM_RL_ENABLE;
+}
+
+
+// Dynamically set the timer interrupt rate.
+// Not for eCos application use at all, just special GPROF code in RedBoot.
+
+void
+hal_clock_reinitialize( int *pfreq, /* inout */
+ unsigned int *pperiod, /* inout */
+ unsigned int old_hz ) /* in */
+{
+ unsigned int newp = 0, period, i = 0;
+ int hz;
+ int do_set_hw;
+
+// Arbitrary choice somewhat - so the CPU can make
+// progress with the clock set like this, we hope.
+#define MIN_TICKS (2000)
+#define MAX_TICKS N/A: 32-bit counter
+
+ if ( ! pfreq || ! pperiod )
+ return; // we cannot even report a problem!
+
+ hz = *pfreq;
+ period = *pperiod;
+
+// Requested HZ:
+// 0 => tell me the current value (no change, implemented in caller)
+// - 1 => tell me the slowest (no change)
+// - 2 => tell me the default (no change, implemented in caller)
+// -nnn => tell me what you would choose for nnn (no change)
+// MIN_INT => tell me the fastest (no change)
+//
+// 1 => tell me the slowest (sets the clock)
+// MAX_INT => tell me the fastest (sets the clock)
+
+ do_set_hw = (hz > 0);
+ if ( hz < 0 )
+ hz = -hz;
+
+ // Be paranoid about bad args, and very defensive about underflows
+ if ( 0 < hz && 0 < period && 0 < old_hz ) {
+
+ newp = period * old_hz / (unsigned)hz;
+
+ if ( newp < MIN_TICKS ) {
+ newp = MIN_TICKS;
+ // recalculate to get the exact delay for this integral hz
+ // and hunt hz down to an acceptable value if necessary
+ i = period * old_hz / newp;
+ if ( i ) do {
+ newp = period * old_hz / i;
+ i--;
+ } while (newp < MIN_TICKS && i);
+ }
+ // So long as period * old_hz fits in 32 bits, there is no need to
+ // worry about overflow; hz >= 1 in the initial divide. If the
+ // clock cannot do a whole second (period * old_hz >= 2^32), we
+ // will get overflow here, and random returned HZ values.
+
+ // Recalculate the actual value installed.
+ i = period * old_hz / newp;
+ }
+
+ *pfreq = i;
+ *pperiod = newp;
+
+ if ( do_set_hw ) {
+ hal_clock_initialize( newp );
+ }
+}
+
+// This routine is called during a clock interrupt.
+void
+hal_clock_reset(cyg_uint32 vector, cyg_uint32 period)
+{
+ // clear pending interrupt
+ *IXP425_OST_STS = OST_STS_T0INT;
+}
+
+// Read the current value of the clock, returning the number of hardware
+// "ticks" that have occurred (i.e. how far away the current value is from
+// the start)
+void
+hal_clock_read(cyg_uint32 *pvalue)
+{
+ cyg_uint32 timer_val;
+
+ // Translate timer value back into microseconds
+ timer_val = *IXP425_OST_TIM0 / CLOCK_MULTIPLIER;
+
+ *pvalue = _period - timer_val;
+}
+
+// Delay for some usecs.
+void
+hal_delay_us(cyg_int32 delay)
+{
+#define _TICKS_PER_USEC CLOCK_MULTIPLIER
+ cyg_uint32 now, prev, diff, usecs;
+ cyg_uint32 tmr_period = _period * CLOCK_MULTIPLIER;
+
+ diff = usecs = 0;
+ prev = *IXP425_OST_TIM0;
+
+ while (delay > usecs) {
+ now = *IXP425_OST_TIM0;
+
+ if (prev < now)
+ diff += (prev + (tmr_period - now));
+ else
+ diff += (prev - now);
+
+ prev = now;
+
+ if (diff >= _TICKS_PER_USEC) {
+ usecs += (diff / _TICKS_PER_USEC);
+ diff %= _TICKS_PER_USEC;
+ }
+ }
+}
+
+/*------------------------------------------------------------------------*/
+// EOF ixp425_misc.c
+
diff --git a/ecos/packages/hal/arm/xscale/ixp425/current/src/ixp425_pci.c b/ecos/packages/hal/arm/xscale/ixp425/current/src/ixp425_pci.c
new file mode 100644
index 0000000..aaef64f
--- /dev/null
+++ b/ecos/packages/hal/arm/xscale/ixp425/current/src/ixp425_pci.c
@@ -0,0 +1,461 @@
+//==========================================================================
+//
+// ixp425_pci.c
+//
+// HAL support code for IXP425 PCI
+//
+//==========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//==========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): msalter
+// Contributors: msalter
+// Date: 2002-12-08
+// Purpose: PCI support
+// Description: Implementations of HAL PCI interfaces
+//
+//####DESCRIPTIONEND####
+//
+//========================================================================*/
+
+#include <pkgconf/hal.h>
+#include <pkgconf/system.h>
+#include CYGBLD_HAL_PLATFORM_H
+
+#ifdef CYGPKG_IO_PCI
+
+#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_if.h> // calling interface API
+#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/io/pci_hw.h>
+#include <cyg/io/pci.h>
+
+
+static cyg_uint8
+ixp425_read_config_byte(int offset)
+{
+ *IXP425_PCI_CRP_AD_CPE = (offset & ~3) | PCI_CRP_AD_CBE_READ;
+ return *IXP425_PCI_CRP_RDATA >> (8*(offset & 3));
+}
+
+static cyg_uint16
+ixp425_read_config_word(int offset)
+{
+ *IXP425_PCI_CRP_AD_CPE = (offset & ~3) | PCI_CRP_AD_CBE_READ;
+ return *IXP425_PCI_CRP_RDATA >> (8*(offset & 3));
+}
+
+static cyg_uint32
+ixp425_read_config_dword(int offset)
+{
+ *IXP425_PCI_CRP_AD_CPE = (offset & ~3) | PCI_CRP_AD_CBE_READ;
+ return *IXP425_PCI_CRP_RDATA;
+}
+
+void
+ixp425_write_config_byte(int offset, cyg_uint8 value)
+{
+ static const cyg_uint32 _cbe[4] = {
+ (0xe << PCI_CRP_AD_CBE_BE_SHIFT) | PCI_CRP_AD_CBE_WRITE,
+ (0xd << PCI_CRP_AD_CBE_BE_SHIFT) | PCI_CRP_AD_CBE_WRITE,
+ (0xb << PCI_CRP_AD_CBE_BE_SHIFT) | PCI_CRP_AD_CBE_WRITE,
+ (0x7 << PCI_CRP_AD_CBE_BE_SHIFT) | PCI_CRP_AD_CBE_WRITE
+ };
+ int pos = offset & 3;
+
+ *IXP425_PCI_CRP_AD_CPE = (offset & ~3) | _cbe[pos];
+ *IXP425_PCI_CRP_WDATA = value << (8 * pos);
+}
+
+void
+ixp425_write_config_word(int offset, cyg_uint16 value)
+{
+ static const cyg_uint32 _cbe[4] = {
+ (0xc << PCI_CRP_AD_CBE_BE_SHIFT) | PCI_CRP_AD_CBE_WRITE,
+ (0x9 << PCI_CRP_AD_CBE_BE_SHIFT) | PCI_CRP_AD_CBE_WRITE,
+ (0x3 << PCI_CRP_AD_CBE_BE_SHIFT) | PCI_CRP_AD_CBE_WRITE,
+ (0x7 << PCI_CRP_AD_CBE_BE_SHIFT) | PCI_CRP_AD_CBE_WRITE
+ };
+ int pos = offset & 3;
+
+ *IXP425_PCI_CRP_AD_CPE = (offset & ~3) | _cbe[pos];
+ *IXP425_PCI_CRP_WDATA = value << (8 * pos);
+}
+
+void
+ixp425_write_config_dword(int offset, cyg_uint32 value)
+{
+ *IXP425_PCI_CRP_AD_CPE = (offset & ~3) | PCI_CRP_AD_CBE_WRITE;
+ *IXP425_PCI_CRP_WDATA = value;
+}
+
+// Setup address/cbe/cmd for read/write.
+// Return CBE register value to use.
+//
+static cyg_uint32
+pci_config(cyg_uint32 bus, cyg_uint32 devfn, cyg_uint32 offset, cyg_uint32 cmd, int size)
+{
+ static const cyg_uint8 byte_cbe[4] = { 0xe0, 0xd0, 0xb0, 0x70 };
+ static const cyg_uint8 word_cbe[4] = { 0xc0, 0x90, 0x30, 0x70 };
+
+ if (bus == 0) {
+ // bus == 0 && devfn == 0 is a special case. Higher level config cycle
+ // code will not call this routine for bus 0, devfn 0 as that is the
+ // device address used by the IXP425 PCI device. When commands other
+ // than config read/write are desired, bus 0, devfn 0 is used to
+ // indicate that the offset should be used as the address.
+ if (devfn == 0) {
+ *IXP425_PCI_NP_AD = offset;
+ } else {
+ // type 0
+ //
+ // Take care with device number as we use device 0 to indicate
+ // the IXP425 itself. This code makes device 1-21 externally
+ // addressable.
+ //
+ *IXP425_PCI_NP_AD = (0x400 << CYG_PCI_DEV_GET_DEV(devfn)) |
+ (CYG_PCI_DEV_GET_FN(devfn)<< 8) | (offset & ~3);
+ }
+ } else {
+ // type 1
+ *IXP425_PCI_NP_AD = (bus << 16) | (CYG_PCI_DEV_GET_DEV(devfn) << 11) |
+ (CYG_PCI_DEV_GET_FN(devfn) << 8) | (offset & ~3) | 1;
+ }
+
+ if (size == 1)
+ cmd |= byte_cbe[offset & 3];
+ else if (size == 2)
+ cmd |= word_cbe[offset & 3];
+
+ return cmd;
+}
+
+// check for abort after config access
+static int
+pci_check_abort(void)
+{
+ if (*IXP425_PCI_ISR & PCI_ISR_PFE) {
+ *IXP425_PCI_ISR = PCI_ISR_PFE;
+ return 1;
+ }
+ return 0;
+}
+
+static cyg_uint32
+pci_np_read(cyg_uint32 cmd)
+{
+ cyg_uint32 data;
+#ifdef CYGHWR_HAL_IXP425_PCI_NP_WORKAROUND
+ //
+ // PCI NP Bug workaround - only works if NP PCI space reads have
+ // no side effects! Read 8 times. Last one will be good.
+ //
+ int i;
+
+ for (i = 0; i < 8; i++) {
+ // set up and execute the read
+ *IXP425_PCI_NP_CBE = cmd;
+ // the result of the read is now in NP_RDATA (maybe)
+ data = *IXP425_PCI_NP_RDATA;
+ // the result of the read is now in NP_RDATA (for sure)
+ data = *IXP425_PCI_NP_RDATA;
+ }
+#else
+ // set up and execute the read
+ *IXP425_PCI_NP_CBE = cmd;
+ // the result of the read is now in NP_RDATA
+ data = *IXP425_PCI_NP_RDATA;
+#endif
+ if (pci_check_abort())
+ return 0xffffffff;
+ return data;
+}
+
+static void
+pci_np_write(cyg_uint32 cmd, cyg_uint32 data)
+{
+ // set up the write
+ *IXP425_PCI_NP_CBE = cmd;
+ // write the date
+ *IXP425_PCI_NP_WDATA = data;
+
+ (void)pci_check_abort();
+}
+
+static cyg_uint8
+bus_read_config_byte(cyg_uint32 bus, cyg_uint32 devfn, int offset)
+{
+ cyg_uint32 cmd = pci_config(bus, devfn, offset, PCI_NP_CMD_CONFIGR, 1);
+
+ return pci_np_read(cmd) >> ((offset & 3) * 8);
+}
+
+static cyg_uint16
+bus_read_config_word(cyg_uint32 bus, cyg_uint32 devfn, int offset)
+{
+ cyg_uint32 cmd = pci_config(bus, devfn, offset, PCI_NP_CMD_CONFIGR, 2);
+
+ return pci_np_read(cmd) >> ((offset & 3) * 8);
+}
+
+static cyg_uint32
+bus_read_config_dword(cyg_uint32 bus, cyg_uint32 devfn, int offset)
+{
+ cyg_uint32 cmd = pci_config(bus, devfn, offset, PCI_NP_CMD_CONFIGR, 4);
+
+ return pci_np_read(cmd);
+}
+
+static void
+bus_write_config_byte(cyg_uint32 bus, cyg_uint32 devfn, int offset, cyg_uint8 value)
+{
+ cyg_uint32 cmd = pci_config(bus, devfn, offset, PCI_NP_CMD_CONFIGW, 1);
+
+ pci_np_write(cmd, value << ((offset & 3) * 8));
+}
+
+static void
+bus_write_config_word(cyg_uint32 bus, cyg_uint32 devfn, int offset, cyg_uint16 value)
+{
+ cyg_uint32 cmd = pci_config(bus, devfn, offset, PCI_NP_CMD_CONFIGW, 2);
+
+ pci_np_write(cmd, value << ((offset & 3) * 8));
+}
+
+static void
+bus_write_config_dword(cyg_uint32 bus, cyg_uint32 devfn, int offset, cyg_uint32 value)
+{
+ cyg_uint32 cmd = pci_config(bus, devfn, offset, PCI_NP_CMD_CONFIGW, 4);
+
+ pci_np_write(cmd, value);
+}
+
+
+cyg_uint32
+cyg_hal_plf_pci_cfg_read_dword (cyg_uint32 bus, cyg_uint32 devfn, cyg_uint32 offset)
+{
+ if (bus || CYG_PCI_DEV_GET_DEV(devfn))
+ return bus_read_config_dword(bus, devfn, offset);
+
+ return ixp425_read_config_dword(offset);
+}
+
+
+void
+cyg_hal_plf_pci_cfg_write_dword (cyg_uint32 bus,
+ cyg_uint32 devfn,
+ cyg_uint32 offset,
+ cyg_uint32 data)
+{
+ if (bus || CYG_PCI_DEV_GET_DEV(devfn))
+ bus_write_config_dword(bus, devfn, offset, data);
+ else
+ ixp425_write_config_dword(offset, data);
+}
+
+
+cyg_uint16
+cyg_hal_plf_pci_cfg_read_word (cyg_uint32 bus,
+ cyg_uint32 devfn,
+ cyg_uint32 offset)
+{
+ if (bus || CYG_PCI_DEV_GET_DEV(devfn))
+ return bus_read_config_word(bus, devfn, offset);
+
+ return ixp425_read_config_word(offset);
+}
+
+void
+cyg_hal_plf_pci_cfg_write_word (cyg_uint32 bus,
+ cyg_uint32 devfn,
+ cyg_uint32 offset,
+ cyg_uint16 data)
+{
+ if (bus || CYG_PCI_DEV_GET_DEV(devfn))
+ bus_write_config_word(bus, devfn, offset, data);
+ else
+ ixp425_write_config_word(offset, data);
+}
+
+cyg_uint8
+cyg_hal_plf_pci_cfg_read_byte (cyg_uint32 bus,
+ cyg_uint32 devfn,
+ cyg_uint32 offset)
+{
+ if (bus || CYG_PCI_DEV_GET_DEV(devfn))
+ return bus_read_config_byte(bus, devfn, offset);
+
+ return ixp425_read_config_byte(offset);
+}
+
+
+void
+cyg_hal_plf_pci_cfg_write_byte (cyg_uint32 bus,
+ cyg_uint32 devfn,
+ cyg_uint32 offset,
+ cyg_uint8 data)
+{
+ if (bus || CYG_PCI_DEV_GET_DEV(devfn))
+ bus_write_config_byte(bus, devfn, offset, data);
+ else
+ ixp425_write_config_byte(offset, data);
+}
+
+
+void
+cyg_hal_plf_pci_io_outb(cyg_uint32 offset, cyg_uint8 value)
+{
+ cyg_uint32 cmd = pci_config(0, 0, offset, PCI_NP_CMD_IOW, 1);
+
+ pci_np_write(cmd, value << ((offset & 3) * 8));
+}
+
+void
+cyg_hal_plf_pci_io_outw(cyg_uint32 offset, cyg_uint16 value)
+{
+ cyg_uint32 cmd = pci_config(0, 0, offset, PCI_NP_CMD_IOW, 2);
+
+ pci_np_write(cmd, value << ((offset & 3) * 8));
+}
+
+void
+cyg_hal_plf_pci_io_outl(cyg_uint32 offset, cyg_uint32 value)
+{
+ cyg_uint32 cmd = pci_config(0, 0, offset, PCI_NP_CMD_IOW, 4);
+
+ pci_np_write(cmd, value);
+}
+
+cyg_uint8
+cyg_hal_plf_pci_io_inb(cyg_uint32 offset)
+{
+ cyg_uint32 cmd = pci_config(0, 0, offset, PCI_NP_CMD_IOR, 1);
+
+ return pci_np_read(cmd) >> ((offset & 3) * 8);
+}
+
+cyg_uint16
+cyg_hal_plf_pci_io_inw(cyg_uint32 offset)
+{
+ cyg_uint32 cmd = pci_config(0, 0, offset, PCI_NP_CMD_IOR, 2);
+
+ return pci_np_read(cmd) >> ((offset & 3) * 8);
+}
+
+cyg_uint32
+cyg_hal_plf_pci_io_inl(cyg_uint32 offset)
+{
+ cyg_uint32 cmd = pci_config(0, 0, offset, PCI_NP_CMD_IOR, 4);
+
+ return pci_np_read(cmd);
+}
+
+#ifdef CYGHWR_HAL_ARM_BIGENDIAN
+#define CSR_ENDIAN_BITS (PCI_CSR_PDS | PCI_CSR_ABE | PCI_CSR_ADS)
+#else
+#define CSR_ENDIAN_BITS (PCI_CSR_ABE | PCI_CSR_ADS)
+#endif
+
+void
+cyg_hal_plf_pci_init(void)
+{
+ static int inited = 0;
+ int is_host = (*IXP425_PCI_CSR & PCI_CSR_HOST);
+
+ if (inited)
+ return;
+ else
+ inited = 1;
+
+ // If IC is set, assume warm start
+ if (*IXP425_PCI_CSR & PCI_CSR_IC)
+ return;
+
+ // We use identity AHB->PCI address translation
+ // in the 0x48000000 address space
+ *IXP425_PCI_PCIMEMBASE = 0x48494A4B;
+
+ // We also use identity PCI->AHB address translation
+ // in 4 16MB BARs that begin at the physical memory start
+ *IXP425_PCI_AHBMEMBASE = 0x00010203;
+
+ if (is_host) {
+
+ HAL_PCI_CFG_WRITE_UINT32(0, 0, CYG_PCI_CFG_BAR_0, 0x00000000);
+ HAL_PCI_CFG_WRITE_UINT32(0, 0, CYG_PCI_CFG_BAR_1, 0x01000000);
+ HAL_PCI_CFG_WRITE_UINT32(0, 0, CYG_PCI_CFG_BAR_2, 0x02000000);
+ HAL_PCI_CFG_WRITE_UINT32(0, 0, CYG_PCI_CFG_BAR_3, 0x03000000);
+
+ cyg_pci_set_memory_base(HAL_PCI_ALLOC_BASE_MEMORY);
+ cyg_pci_set_io_base(HAL_PCI_ALLOC_BASE_IO);
+
+ // This one should never get used, as we request the memory for
+ // work with PCI with GFP_DMA, which will return mem in the first 64 MB.
+ // But we still must initialize it so that it wont intersect with first 4
+ // BARs
+ // XXX: Should we initialize the BAR5 to some very large value, so that
+ // it also will not be hit?
+ //
+ HAL_PCI_CFG_WRITE_UINT32(0, 0, CYG_PCI_CFG_BAR_4, 0x80000000);
+ HAL_PCI_CFG_WRITE_UINT32(0, 0, CYG_PCI_CFG_BAR_5, 0x90000000);
+
+ *IXP425_PCI_ISR = PCI_ISR_PSE | PCI_ISR_PFE | PCI_ISR_PPE | PCI_ISR_AHBE;
+
+ //
+ // Set Initialize Complete in PCI Control Register: allow IXP425 to
+ // respond to PCI configuration cycles. Specify that the AHB bus is
+ // operating in big endian mode. Set up byte lane swapping between
+ // little-endian PCI and the big-endian AHB bus
+ *IXP425_PCI_CSR = PCI_CSR_IC | CSR_ENDIAN_BITS;
+
+ HAL_PCI_CFG_WRITE_UINT16(0, 0, CYG_PCI_CFG_COMMAND,
+ CYG_PCI_CFG_COMMAND_MASTER | CYG_PCI_CFG_COMMAND_MEMORY);
+ } else {
+ //
+ // Set Initialize Complete in PCI Control Register: allow IXP425 to
+ // respond to PCI configuration cycles. Specify that the AHB bus is
+ // operating in big endian mode. Set up byte lane swapping between
+ // little-endian PCI and the big-endian AHB bus
+ *IXP425_PCI_CSR = PCI_CSR_IC | PCI_CSR_ABE | PCI_CSR_PDS | PCI_CSR_ADS;
+ }
+}
+
+#endif // CYGPKG_IO_PCI
diff --git a/ecos/packages/hal/arm/xscale/ixp425/current/src/ixp425_redboot.c b/ecos/packages/hal/arm/xscale/ixp425/current/src/ixp425_redboot.c
new file mode 100644
index 0000000..38102c4
--- /dev/null
+++ b/ecos/packages/hal/arm/xscale/ixp425/current/src/ixp425_redboot.c
@@ -0,0 +1,150 @@
+//==========================================================================
+//
+// ixp425_redboot.c
+//
+// RedBoot board support code for Intel IXP425 Network Processor
+//
+//==========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//==========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): msalter
+// Contributors: msalter
+// Date: 2004-08-30
+// Purpose: RedBoot board-specific support
+// Description: Implementations of board-specic RedBoot support.
+//
+//####DESCRIPTIONEND####
+//
+//========================================================================*/
+
+#include <redboot.h>
+#ifdef CYGPKG_IO_FLASH
+#include <cyg/io/flash.h>
+#endif
+
+#ifdef CYGOPT_REDBOOT_FIS
+extern void *fis_addr;
+#endif
+
+#ifdef CYGSEM_REDBOOT_FLASH_CONFIG
+extern void *cfg_base;
+#endif
+
+#ifdef CYGPKG_IO_FLASH
+
+//
+// Little endian mode requires some trickery due to the way the IXP4xx
+// AHB and expansion busses work.
+//
+int
+hal_flash_read(void *addr, void *data, int len, void **err)
+{
+ int retval;
+
+ retval = flash_read(addr, data, len, err);
+
+ if (0
+#if (CYG_BYTEORDER == CYG_LSBFIRST) && defined(CYGOPT_REDBOOT_FLASH_BYTEORDER_MSBFIRST)
+#ifdef CYGOPT_REDBOOT_FIS
+ || addr == fis_addr
+#endif
+#ifdef CYGSEM_REDBOOT_FLASH_CONFIG
+ || addr == cfg_base
+#endif
+#endif
+ ) {
+ cyg_uint32 *p;
+ int i;
+
+ for (i = 0, p = data; i < len; i += 4, ++p)
+ *p = CYG_SWAP32(*p);
+ }
+ return retval;
+}
+
+// Try to figure out if RedBoot is re-flashing a RedBoot with
+// a different endianess. This is obviously not foolproof, but
+// should be good enough.
+static inline int
+is_swabbed_redboot(void *faddr, cyg_uint32 *p)
+{
+ if (faddr == (void *)0x50000000
+ && (CYG_SWAP32(p[1]) == 0xe59ff018)
+ && (CYG_SWAP32(p[2]) == 0xe59ff018)
+ && (CYG_SWAP32(p[3]) == 0xe59ff018)
+ && (CYG_SWAP32(p[4]) == 0xe59ff018)
+ && (p[5] == 0))
+ return 1;
+ return 0;
+}
+
+int
+hal_flash_program(void *addr, void *data, int len, void **err)
+{
+ int swabbed = 0;
+ cyg_uint32 *p;
+ int i, retval;
+
+ if (is_swabbed_redboot(addr, data)
+#if (CYG_BYTEORDER == CYG_LSBFIRST) && defined(CYGOPT_REDBOOT_FLASH_BYTEORDER_MSBFIRST)
+#ifdef CYGOPT_REDBOOT_FIS
+ || addr == fis_addr
+#endif
+#ifdef CYGSEM_REDBOOT_FLASH_CONFIG
+ || addr == cfg_base
+#endif
+#endif
+ ) {
+ swabbed = 1;
+ for (i = 0, p = data; i < len; i += 4, ++p)
+ *p = CYG_SWAP32(*p);
+ }
+
+ retval = flash_program(addr, data, len, err);
+
+ if (swabbed) {
+ for (i = 0, p = data; i < len; i += 4, ++p)
+ *p = CYG_SWAP32(*p);
+ }
+
+ return retval;
+}
+
+#endif // CYGPKG_IO_FLASH
+
+
+/*------------------------------------------------------------------------*/
+// EOF ixp425_redboot.c
+
diff --git a/ecos/packages/hal/arm/xscale/mpc50/current/ChangeLog b/ecos/packages/hal/arm/xscale/mpc50/current/ChangeLog
new file mode 100644
index 0000000..bc14804
--- /dev/null
+++ b/ecos/packages/hal/arm/xscale/mpc50/current/ChangeLog
@@ -0,0 +1,52 @@
+2009-10-16 John Dallaway <john@dallaway.org.uk>
+
+ * cdl/hal_arm_xscale_mpc50.cdl: Parent under
+ CYGPKG_HAL_ARM_XSCALE_PXA2X0.
+
+2009-01-31 Bart Veer <bartv@ecoscentric.com>
+
+ * cdl/hal_arm_xscale_mpc50.cdl: update compiler flags for gcc 4.x
+
+2009-01-24 Bart Veer <bartv@ecoscentric.com>
+
+ * cdl/hal_arm_xscale_mpc50.cdl: switch from arm-elf-gcc to
+ arm-eabi-gcc.
+
+2003-02-20 Gary Thomas <gary@mind.be>
+
+ * src/mpc50_misc.c (plf_hardware_init): Platform needs to call
+ hal_if_init().
+
+2003-02-05 Nick Garnett <nickg@calivar.com>
+
+ * cdl/hal_arm_xscale_mpc50.cdl: Changed compiler prefix to arm-elf
+ and added -mcpu=xscale to global flags.
+
+2003-01-24 Knud Woehler <knud.woehler@microplex.de>
+2003-01-24 Mark Salter <msalter@redhat.com>
+
+ * Initial import from Knud Woehler.
+
+//===========================================================================
+// ####GPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 2003, 2009 Free Software Foundation, Inc.
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 2 or (at your option) any
+// later version.
+//
+// This program is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the
+// Free Software Foundation, Inc., 51 Franklin Street,
+// Fifth Floor, Boston, MA 02110-1301, USA.
+// -------------------------------------------
+// ####GPLCOPYRIGHTEND####
+//===========================================================================
diff --git a/ecos/packages/hal/arm/xscale/mpc50/current/cdl/hal_arm_xscale_mpc50.cdl b/ecos/packages/hal/arm/xscale/mpc50/current/cdl/hal_arm_xscale_mpc50.cdl
new file mode 100644
index 0000000..943487d
--- /dev/null
+++ b/ecos/packages/hal/arm/xscale/mpc50/current/cdl/hal_arm_xscale_mpc50.cdl
@@ -0,0 +1,272 @@
+# ====================================================================
+#
+# hal_arm_xscale_mpc50.cdl
+#
+# MPC 5.0 platform HAL package configuration data
+#
+# ====================================================================
+# ####ECOSGPLCOPYRIGHTBEGIN####
+# -------------------------------------------
+# This file is part of eCos, the Embedded Configurable Operating System.
+# Copyright (C) 1998, 1999, 2000, 2001, 2002, 2009 Free Software Foundation, Inc.
+#
+# eCos is free software; you can redistribute it and/or modify it under
+# the terms of the GNU General Public License as published by the Free
+# Software Foundation; either version 2 or (at your option) any later
+# version.
+#
+# eCos is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with eCos; if not, write to the Free Software Foundation, Inc.,
+# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+#
+# As a special exception, if other files instantiate templates or use
+# macros or inline functions from this file, or you compile this file
+# and link it with other works to produce a work based on this file,
+# this file does not by itself cause the resulting work to be covered by
+# the GNU General Public License. However the source code for this file
+# must still be made available in accordance with section (3) of the GNU
+# General Public License v2.
+#
+# This exception does not invalidate any other reasons why a work based
+# on this file might be covered by the GNU General Public License.
+# -------------------------------------------
+# ####ECOSGPLCOPYRIGHTEND####
+# ====================================================================
+######DESCRIPTIONBEGIN####
+#
+# Author(s): <knud.woehler@microplex.de>
+# Date: 2003-01-06
+#
+#####DESCRIPTIONEND####
+#
+# ====================================================================
+
+cdl_package CYGPKG_HAL_ARM_XSCALE_MPC50 {
+ display "MPC 5.0"
+ parent CYGPKG_HAL_ARM_XSCALE_PXA2X0
+ hardware
+ include_dir cyg/hal
+ define_header hal_arm_xscale_mpc50.h
+ description "
+ This HAL platform package provides support for the MPC 5.0
+ printer controller"
+ compile mpc50_misc.c
+
+ implements CYGINT_HAL_DEBUG_GDB_STUBS
+ implements CYGINT_HAL_DEBUG_GDB_STUBS_BREAK
+ implements CYGINT_HAL_VIRTUAL_VECTOR_SUPPORT
+ implements CYGINT_HAL_ARM_ARCH_XSCALE
+ implements CYGINT_HAL_ARM_MEM_REAL_REGION_TOP
+ implements CYGHWR_HAL_ARM_PXA2X0_FFUART
+
+
+ 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_xscale_pxa2x0.h>"
+ puts $::cdl_system_header "#define CYGBLD_HAL_PLATFORM_H <pkgconf/hal_arm_xscale_mpc50.h>"
+ puts $::cdl_header "#define HAL_PLATFORM_CPU \"XScale\""
+ puts $::cdl_header "#define HAL_PLATFORM_BOARD \"MPC 5.0\""
+ puts $::cdl_header "#define HAL_PLATFORM_EXTRA \"\""
+ puts $::cdl_header "#define HAL_ARCH_PROGRAM_NEW_STACK mpc50_program_new_stack"
+ }
+
+ cdl_component CYG_HAL_STARTUP {
+ display "Startup type"
+ flavor data
+ default_value {"ROM"}
+ legal_values {"RAM" "ROM"}
+ no_define
+ define -file system.h CYG_HAL_STARTUP
+ description ""
+ }
+
+ cdl_option CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_DEFAULT {
+ display "Console channel."
+ flavor data
+ calculated 0
+ }
+
+ 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
+ calculated 0
+ }
+
+ cdl_option CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL {
+ display "Diagnostic serial port"
+ flavor data
+ calculated 0
+ }
+
+ cdl_option CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_BAUD {
+ display "Diagnostic serial port baud rate"
+ flavor data
+ legal_values 9600 19200 38400 57600 115200
+ default_value 115200
+ description "
+ This option selects the baud rate used for the diagnostic port."
+ }
+
+ cdl_option CYGNUM_HAL_VIRTUAL_VECTOR_DEBUG_CHANNEL_BAUD {
+ display "GDB serial port baud rate"
+ flavor data
+ calculated CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_BAUD
+ description "
+ This option selects the baud rate used for the GDB port."
+ }
+
+ 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-eabi"}
+ 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 { CYGBLD_GLOBAL_WARNFLAGS . CYGBLD_ARCH_CFLAGS . "-mcpu=xscale -g -O2 -fno-rtti -fno-exceptions -mapcs-frame" }
+ 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 { CYGBLD_ARCH_LDFLAGS . "-mcpu=xscale -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_component CYGPKG_HAL_ARM_PXA2X0_MPC50_OPTIONS {
+ display "Intel PXA250/MPC50 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_PXA2X0_MPC50_CFLAGS_ADD {
+ display "Additional compiler flags"
+ flavor data
+ no_define
+ default_value { "" }
+ description ""
+ }
+
+ cdl_option CYGPKG_HAL_ARM_PXA2X0_MPC50_CFLAGS_REMOVE {
+ display "Suppressed compiler flags"
+ flavor data
+ no_define
+ default_value { "" }
+ description ""
+ }
+ }
+
+ cdl_component CYGHWR_MEMORY_LAYOUT {
+ display "Memory layout"
+ flavor data
+ no_define
+ calculated { CYG_HAL_STARTUP == "RAM" ? "arm_pxa2x0_mpc50_ram" : \
+ "arm_pxa2x0_mpc50_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_pxa2x0_mpc50_ram.ldi>" : \
+ "<pkgconf/mlt_arm_pxa2x0_mpc50_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_pxa2x0_mpc50_ram.h>" : \
+ "<pkgconf/mlt_arm_pxa2x0_mpc50_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 ""
+ }
+
+ 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 ""
+ }
+
+ cdl_component CYGPKG_REDBOOT_HAL_OPTIONS {
+ display "Redboot HAL options"
+ flavor none
+ no_define
+ parent CYGPKG_REDBOOT
+ active_if CYGPKG_REDBOOT
+ description "
+ This option lists the target's requirements for a valid Redboot
+ configuration."
+
+
+ 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."
+
+ compile -library=libextras.a
+
+ make -priority 325 {
+ <PREFIX>/bin/redboot.bin : <PREFIX>/bin/redboot.elf
+ $(OBJCOPY) --strip-debug $< $(@:.bin=.img)
+ $(OBJCOPY) -O srec $< $(@:.bin=.srec)
+ $(OBJCOPY) -O binary $< $@
+ }
+ }
+ }
+ }
+}
+
diff --git a/ecos/packages/hal/arm/xscale/mpc50/current/include/hal_platform_setup.h b/ecos/packages/hal/arm/xscale/mpc50/current/include/hal_platform_setup.h
new file mode 100644
index 0000000..ce9acfd
--- /dev/null
+++ b/ecos/packages/hal/arm/xscale/mpc50/current/include/hal_platform_setup.h
@@ -0,0 +1,583 @@
+/*=============================================================================
+//
+// hal_platform_setup.h
+//
+// Platform specific support for HAL (assembly code)
+//
+//==========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//==========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): <knud.woehler@microplex.de>
+// Date: 2003-01-09
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================*/
+#ifndef CYGONCE_HAL_PLATFORM_SETUP_H
+#define CYGONCE_HAL_PLATFORM_SETUP_H
+
+#include <pkgconf/system.h> // System-wide configuration info
+#include CYGBLD_HAL_VARIANT_H // Variant specific configuration
+#include CYGBLD_HAL_PLATFORM_H // Platform specific configuration
+#include <cyg/hal/hal_pxa2x0.h> // Platform specific hardware definitions
+#include <cyg/hal/hal_mmu.h> // MMU definitions
+#include <cyg/hal/hal_mm.h> // more MMU definitions
+#include <cyg/hal/mpc50.h>
+
+/**********************************************************************************************************************
+* MMU/Cache
+**********************************************************************************************************************/
+.macro init_mmu_cache_on
+ ldr r0, =0x2001
+ mcr p15, 0, r0, c15, c1, 0
+ mcr p15, 0, r0, c7, c10, 4 // drain the write & fill buffers
+ CPWAIT r0
+ mcr p15, 0, r0, c7, c7, 0 // flush Icache, Dcache and BTB
+ CPWAIT r0
+ mcr p15, 0, r0, c8, c7, 0 // flush instuction and data TLBs
+ CPWAIT r0
+
+ // Icache on
+ mrc p15, 0, r0, c1, c0, 0
+ orr r0, r0, #MMU_Control_I
+ orr r0, r0, #MMU_Control_BTB // Enable the BTB
+ mcr p15, 0, r0, c1, c0, 0
+ CPWAIT r0
+
+ // create stack for "C"
+ ldr r1,=__startup_stack
+ ldr r2,=PXA2X0_RAM_BANK0_BASE
+ orr sp,r1,r2
+ bl hal_mmu_init // create MMU Tables
+
+ // Enable permission checks in all domains
+ ldr r0, =0x55555555
+ mcr p15, 0, r0, c3, c0, 0
+
+ // MMU on
+ ldr r2,=1f
+ mrc p15, 0, r0, c1, c0, 0
+ orr r0, r0, #MMU_Control_M
+ orr r0, r0, #MMU_Control_R
+ mcr p15, 0, r0, c1, c0, 0
+ mov pc,r2
+ nop
+ nop
+ nop
+1:
+
+ mcr p15, 0, r0, c7, c10, 4 // drain the write & fill buffers
+ CPWAIT r0
+
+ // Dcache on
+ mrc p15, 0, r0, c1, c0, 0
+ orr r0, r0, #MMU_Control_C
+ mcr p15, 0, r0, c1, c0, 0
+ CPWAIT r0
+
+ // clean/drain/flush the main Dcache
+ mov r1, #0xc0000000
+ mov r0, #1024
+2:
+ mcr p15, 0, r1, c7, c2, 5
+ add r1, r1, #32
+ subs r0, r0, #1
+ bne 2b
+
+ // clean/drain/flush the mini Dcache
+ //ldr r1, =(DCACHE_FLUSH_AREA+DCACHE_SIZE) // use a CACHEABLE area of
+ mov r0, #64 // number of lines in the mini Dcache
+3:
+ mcr p15, 0, r1, c7, c2, 5 // allocate a Dcache line
+ add r1, r1, #32 // increment the address to
+ subs r0, r0, #1 // decrement the loop count
+ bne 3b
+
+ // flush Dcache
+ mcr p15, 0, r0, c7, c6, 0
+ CPWAIT r0
+
+ // drain the write & fill buffers
+ mcr p15, 0, r0, c7, c10, 4
+ CPWAIT r0
+
+.endm
+
+
+
+.macro init_mmu_off
+ mov r0, #0x78
+ mcr p15, 0, r0, c1, c0, 0 // caches off -- MMU off or ID map
+ mcr p15, 0, r0, c7, c7, 0 // Invalidate the I & D cache, mini- d cache, and BTB
+ mcr p15, 0, r0, c7, c10, 4 // Drain write buffer -- r0 ignored
+ CPWAIT r0
+ nop
+ nop
+ nop
+ nop
+ mvn r0, #0
+ mcr p15, 0, r0, c3, c0, 0
+.endm
+
+/**********************************************************************************************************************
+* Clock
+**********************************************************************************************************************/
+#define CCCR_OFFS (PXA2X0_CCCR-PXA2X0_CLK_BASE)
+.macro init_clks
+ ldr r1, =PXA2X0_CLK_BASE
+ // TurboMode=400MHz/RunMode=200MHz/Memory=100MHz/SDRam=100MHz
+// ldr r0, =(PXA2X0_CCCR_L27 | PXA2X0_CCCR_M2 | PXA2X0_CCCR_N20)
+ // TurboMode=300MHz/RunMode=200MHz/Memory=100MHz/SDRam=100MHz
+// ldr r0, =(PXA2X0_CCCR_L27 | PXA2X0_CCCR_M2 | PXA2X0_CCCR_N15)
+ adr r0, mpc50_static_info
+ ldr r0, [r0, #MPC50_VAL_OFFS_CCCR]
+
+ str r0, [r1, #CCCR_OFFS] // set Core Clock
+ mov r0, #3
+ mcr p14, 0, r0, c6, c0, 0 // Turbo Mode on
+.endm
+
+/**********************************************************************************************************************
+* Interrupt controller
+**********************************************************************************************************************/
+#define ICLR_OFFS (PXA2X0_ICLR-PXA2X0_IC_BASE)
+#define ICMR_OFFS (PXA2X0_ICMR-PXA2X0_IC_BASE)
+.macro init_intc_cnt
+ ldr r1, =PXA2X0_IC_BASE
+ mov r0, #0
+ str r0, [r1, #ICLR_OFFS] // clear Interrupt level Register
+ str r0, [r1, #ICMR_OFFS] // clear Interrupt mask Register
+.endm
+
+/**********************************************************************************************************************
+* SDRAM
+**********************************************************************************************************************/
+
+//#define MDCNFG_VAL 0x094B094B // SDRAM Config Reg (32Bit, 9 Col, 13 Row, 2 Bank, CL2)
+//#define MDREFR_VAL 0x0005b018 // SDRAM Refresh Reg SDCLK=memory clock
+//#define MDREFR_VAL 0x000ff018 // SDRAM Refresh Reg SDCLK=1/2 memory clock
+#define MDMRS_VAL 0x00000000 // SDRAM Mode Reg Set Config Reg
+#define MSC0_VAL 0x199123da // CS1(FPGA)/CS0(Flash)
+#define MSC1_VAL 0x7ff07ff1 // CS3(not used)/CS2(ETH)
+
+#define OSCR_OFFS (PXA2X0_OSCR-PXA2X0_OSTIMER_BASE)
+#define MDREFR_OFFS (PXA2X0_MDREFR-PXA2X0_MEMORY_CTL_BASE)
+#define MDCNFG_OFFS (PXA2X0_MDCNFG-PXA2X0_MEMORY_CTL_BASE)
+#define MDMRS_OFFS (PXA2X0_MDMRS-PXA2X0_MEMORY_CTL_BASE)
+#define MSC0_OFFS (PXA2X0_MSC0-PXA2X0_MEMORY_CTL_BASE)
+#define MSC1_OFFS (PXA2X0_MSC1-PXA2X0_MEMORY_CTL_BASE)
+#define MSC2_OFFS (PXA2X0_MSC2-PXA2X0_MEMORY_CTL_BASE)
+.macro init_sdram_cnt
+// Hardware Reset Operation (S. 5-83)
+// Step 1
+
+// wait 200 usec
+ ldr r1, =PXA2X0_OSTIMER_BASE // set OS Timer Count
+ mov r0, #0
+ str r0, [r1, #OSCR_OFFS]
+ ldr r2, =0x300 // wait 200 usec
+61:
+ ldr r0, [r1, #OSCR_OFFS]
+ cmp r2, r0
+ bgt 61b
+
+ ldr r1, =PXA2X0_MEMORY_CTL_BASE
+
+ ldr r0, =MSC0_VAL
+ str r0, [r1, #MSC0_OFFS] // FPGA/Flash
+
+ ldr r0, =MSC1_VAL
+ str r0, [r1, #MSC1_OFFS] // ETH
+
+ // Refresh Register
+ //ldr r3, =MDREFR_VAL // load SDRAM refresh info
+ adr r3, mpc50_static_info
+ ldr r3, [r3, #MPC50_VAL_OFFS_MDREFR]
+
+
+ ldr r2, =0xFFF // DRI field
+ and r3, r3, r2
+ ldr r4, [r1, #MDREFR_OFFS] // read Reset Status
+ bic r4, r4, r2
+ bic r4, r4, #(0x01000000 | 0x02000000) // clear K1Free, K2Free,
+ bic r4, r4, #0x00004000 // K0DB2
+ orr r4, r4, r3 // add DRI field
+ str r4, [r1, #MDREFR_OFFS] //
+ ldr r4, [r1, #MDREFR_OFFS]
+
+// Step 2
+//
+
+// Step 3
+ //ldr r3, =MDREFR_VAL // load SDRAM Refresh Info
+ adr r3, mpc50_static_info
+ ldr r3, [r3, #MPC50_VAL_OFFS_MDREFR]
+
+
+ ldr r2, =0x000f0000
+ and r3, r3, r2
+ orr r4, r4, r3
+ str r4, [r1, #MDREFR_OFFS]
+ ldr r4, [r1, #MDREFR_OFFS]
+
+ bic r4, r4, #0x00400000 // Self Refresh off
+ str r4, [r1, #MDREFR_OFFS]
+ ldr r4, [r1, #MDREFR_OFFS]
+
+ orr r4, r4, #0x00008000 // SDCKE1 on
+ str r4, [r1, #MDREFR_OFFS]
+ ldr r4, [r1, #MDREFR_OFFS]
+
+ orr r4, r4, #0x00800000 // K0Free on
+ str r4, [r1, #MDREFR_OFFS]
+ ldr r4, [r1, #MDREFR_OFFS]
+ nop
+ nop
+
+ // Step 4
+ //ldr r2, =MDCNFG_VAL
+ adr r2, mpc50_static_info
+ ldr r2, [r2, #MPC50_VAL_OFFS_MDCNFG]
+
+
+ bic r2, r2, #0x0003 // DE1-0
+ bic r2, r2, #0x00030000 // DE3-2
+ str r2, [r1, #MDCNFG_OFFS]
+
+// Step 5
+// wait 200 usec
+ ldr r1, =PXA2X0_OSTIMER_BASE
+ mov r0, #0
+ str r0, [r1, #OSCR_OFFS]
+ ldr r2, =0x300
+71:
+ ldr r0, [r1, #OSCR_OFFS]
+ cmp r2, r0
+ bgt 71b
+
+// Step 6
+ mov r0, #0x78
+ mcr p15, 0, r0, c1, c0, 0 // (caches off, MMU off, etc.)
+
+// Step 7
+ ldr r2, =PXA2X0_RAM_BANK0_BASE
+ str r2, [r2]
+ str r2, [r2]
+ str r2, [r2]
+ str r2, [r2]
+ str r2, [r2]
+ str r2, [r2]
+ str r2, [r2]
+ str r2, [r2]
+
+// Step 8
+//
+// Step 9
+// SDRAM enable
+ //ldr r3, =MDCNFG_VAL
+ adr r3, mpc50_static_info
+ ldr r3, [r3, #MPC50_VAL_OFFS_MDCNFG]
+
+
+ ldr r2, =0x00030003
+ and r2, r3, r2
+ ldr r1, =PXA2X0_MEMORY_CTL_BASE
+ ldr r3, [r1, #MDCNFG_OFFS]
+ orr r3, r3, r2
+ str r3, [r1, #MDCNFG_OFFS]
+
+// Step 10
+ ldr r2, =MDMRS_VAL
+ str r2, [r1, #MDMRS_OFFS]
+.endm
+
+
+/**********************************************************************************************************************
+* GPIOs
+**********************************************************************************************************************/
+
+// GPIO Name Pin GPDR GAFR GPSR
+
+// 0 INT0 L10 0 00 0
+// 1 INT1 L12 0 00 0
+// 2 FLX-CLK L13 1 00 0
+// 3 FLX-DAT K14 1 00 0
+
+// 4 FLX-CONFIG J12 1 00 1
+// 5 FLX-STATUS J11 0 00 0
+// 6 FLX-CONFDONE H14 0 00 0
+// 7 LAN_INT G15 0 00 0
+
+// 8 USB-H-ON F14 1 00 1
+// 9 USB-CL-ON F12 0 00 0
+// 10 MPSB-INT0 F7 0 00 0
+// 11 - A7 0 00 0
+
+// 12 MPSB-INT1 B6 0 00 0
+// 13 MBGNT B5 1 10 0
+// 14 MBREQ B4 0 01 0
+// 15 nCS_1 T8 1 10 1
+
+#define GAFR0_L_VAL 0x80000000 //0x98000000
+
+// 16 PWM0 E12 0 00 0
+// 17 PWM1 D12 0 00 0
+// 18 RDY C1 0 01 0
+// 19 DREQ[1] N14 0 00 0
+
+// 20 DREQ[0] N12 0 00 0
+// 21 DVAL0 N15 0 00 0
+// 22 DVAL1 M12 0 00 0
+// 23 SSPSCLK F9 0 00 0
+
+// 24 SSPSFRM E9 0 00 0
+// 25 SSPTXD D9 0 00 0
+// 26 SSPRXD A9 0 00 0
+// 27 SSPEXTCLK B9 0 00 0
+
+// 28 BITCLK C9 0 00 0
+// 29 SDATIN0 E10 0 00 0
+// 30 SDATOUT A10 0 00 0
+// 31 SYNC E11 0 00 0
+
+#define GPDR0_VAL 0x0000811c //0x0000a11c
+#define GAFR0_U_VAL 0x00000010
+#define GPSR0_VAL 0x00008110
+
+// 32 SDATIN1 A16 0 00 0
+// 33 Reset-Button T13 0 00 0
+// 34 FFRXD A13 0 01 0
+// 35 FFCTS A14 0 01 0
+
+// 36 FFDCD A12 0 01 0
+// 37 FFDSR B11 0 01 0
+// 38 FFRI B10 0 01 0
+// 39 FFTXD E13 1 10 1
+
+// 40 FFDTR F10 1 10 1
+// 41 FFRTS F8 1 10 1
+// 42 BTRXD B13 0 00 0
+// 43 BTTXD D13 0 00 0
+
+// 44 BTCTS A15 0 00 0
+// 45 BTRTS B14 0 00 0
+// 46 IRRXD B15 0 00 0
+// 47 IRTXD C15 0 00 0
+
+#define GAFR1_L_VAL 0x000a9550
+
+
+// 48 LED_DP P13 1 00 0
+// 49 LED_G T14 1 00 0
+// 50 LED_F T15 1 00 0
+// 51 LED_E R15 1 00 0
+
+// 52 LED_D P14 1 00 0
+// 53 LED_C R16 1 00 0
+// 54 LED_B P16 1 00 0
+// 55 LED_A M13 1 00 0
+
+// 56 GPIO56 N16 0 00 0
+// 57 GPIO57 M16 0 00 0
+// 58 LCDD0 E7 0 00 0
+// 59 LCDD1 D7 0 00 0
+
+// 60 LCDD2 C7 0 00 0
+// 61 LCDD3 B7 0 00 0
+// 62 LCDD4 E6 0 00 0
+// 63 LCDD5 D6 0 00 0
+
+#define GPDR1_VAL 0x00ff0380
+#define GAFR1_U_VAL 0x00000000
+#define GPSR1_VAL 0x00000380
+#define GPSR_LED_VAL 0x00ff0000
+
+// 64 LCDD6 E5 0 00 0
+// 65 LCDD7 A6 0 00 0
+// 66 LCDD8 C5 0 00 0
+// 67 LCDD9 A5 0 00 0
+
+// 68 LCDD10 D5 0 00 0
+// 69 LCDD11 A4 0 00 0
+// 70 LCDD12 A3 0 00 0
+// 71 LCDD13 A2 0 00 0
+
+// 72 LCDD14 C3 0 00 0
+// 73 LCDD15 B3 0 00 0
+// 74 LCDFCLK E8 0 00 0
+// 75 LCDLCLK D8 0 00 0
+
+// 76 LCDPCLK B8 0 00 0
+// 77 LCDBIAS A8 0 00 0
+// 78 n_CS2 P9 1 10 1
+// 79 LAN_RES T9 1 00 1
+
+#define GAFR2_L_VAL 0x20000000
+
+// 80 n_CS4 R13 0 00 0
+
+#define GPDR2_VAL 0x0000c000
+#define GAFR2_U_VAL 0x00000000
+#define GPSR2_VAL 0x0000c000
+
+
+#define GPSR0_OFFS (PXA2X0_GPSR0-PXA2X0_GPIO_BASE)
+#define GPCR0_OFFS (PXA2X0_GPCR0-PXA2X0_GPIO_BASE)
+#define GPSR1_OFFS (PXA2X0_GPSR1-PXA2X0_GPIO_BASE)
+#define GPCR1_OFFS (PXA2X0_GPCR1-PXA2X0_GPIO_BASE)
+#define GPSR2_OFFS (PXA2X0_GPSR2-PXA2X0_GPIO_BASE)
+#define GPCR2_OFFS (PXA2X0_GPCR2-PXA2X0_GPIO_BASE)
+#define GPDR0_OFFS (PXA2X0_GPDR0-PXA2X0_GPIO_BASE)
+#define GPDR1_OFFS (PXA2X0_GPDR1-PXA2X0_GPIO_BASE)
+#define GPDR2_OFFS (PXA2X0_GPDR2-PXA2X0_GPIO_BASE)
+#define GAFR0_L_OFFS (PXA2X0_GAFR0_L-PXA2X0_GPIO_BASE)
+#define GAFR0_U_OFFS (PXA2X0_GAFR0_U-PXA2X0_GPIO_BASE)
+#define GAFR1_L_OFFS (PXA2X0_GAFR1_L-PXA2X0_GPIO_BASE)
+#define GAFR1_U_OFFS (PXA2X0_GAFR1_U-PXA2X0_GPIO_BASE)
+#define GAFR2_L_OFFS (PXA2X0_GAFR2_L-PXA2X0_GPIO_BASE)
+#define GAFR2_U_OFFS (PXA2X0_GAFR2_U-PXA2X0_GPIO_BASE)
+#define PSSR_OFFS (PXA2X0_PSSR-PXA2X0_PM_BASE)
+
+.macro init_mpc_gpio
+ ldr r1, =PXA2X0_GPIO_BASE
+
+ ldr r0, =GPSR0_VAL // set GPIO outputs to default
+ str r0, [r1, #GPSR0_OFFS]
+ mvn r0, r0
+ str r0, [r1, #GPCR0_OFFS]
+ ldr r0, =GPSR1_VAL // set GPIO outputs to default
+ str r0, [r1, #GPSR1_OFFS]
+ mvn r0, r0
+ str r0, [r1, #GPCR1_OFFS]
+ ldr r0, =GPSR2_VAL // set GPIO outputs to default
+ str r0, [r1, #GPSR2_OFFS]
+ mvn r0, r0
+ str r0, [r1, #GPCR2_OFFS]
+
+ ldr r0, =GPDR0_VAL // GPIO direction
+ str r0, [r1, #GPDR0_OFFS]
+ ldr r0, =GPDR1_VAL // GPIO direction
+ str r0, [r1, #GPDR1_OFFS]
+ ldr r0, =GPDR2_VAL // GPIO direction
+ str r0, [r1, #GPDR2_OFFS]
+
+ ldr r0, =GAFR0_L_VAL // GPIO alternate function
+ str r0, [r1, #GAFR0_L_OFFS]
+ ldr r0, =GAFR0_U_VAL // GPIO alternate function
+ str r0, [r1, #GAFR0_U_OFFS]
+ ldr r0, =GAFR1_L_VAL // GPIO alternate function
+ str r0, [r1, #GAFR1_L_OFFS]
+ ldr r0, =GAFR1_U_VAL // GPIO alternate function
+ str r0, [r1, #GAFR1_U_OFFS]
+ ldr r0, =GAFR2_L_VAL // GPIO alternate function
+ str r0, [r1, #GAFR2_L_OFFS]
+ ldr r0, =GAFR2_U_VAL // GPIO alternate function
+ str r0, [r1, #GAFR2_U_OFFS]
+
+ ldr r1, =PXA2X0_PM_BASE
+ ldr r0, =0x20
+ str r0, [r1, #PSSR_OFFS] // enable GPIO inputs
+
+.endm
+
+/**********************************************************************************************************************
+* LED
+**********************************************************************************************************************/
+// -7-
+// | |
+// 1 6
+// | |
+// -2-
+// | |
+// 3 5
+// | |
+// -4- 0
+
+#define CYGHWR_LED_MACRO \
+ b 2f ;\
+1: ;\
+ .byte 0xfb, 0x61, 0xdd, 0xf5 ;\
+ .byte 0x67, 0xb7, 0xbf, 0xe1 ;\
+ .byte 0xff, 0xf7, 0xef, 0x3f ;\
+ .byte 0x1d, 0x7d, 0x9f, 0x8f ;\
+2: ;\
+ ldr r1, =PXA2X0_GPIO_BASE ;\
+ mov r0, #0x00ff0000 ;\
+ str r0, [r1, #GPSR1_OFFS] ;\
+ sub r0, pc, #((3f+4)-1b) ;\
+3: ;\
+ ldrb r0, [r0, #\x] ;\
+ mov r0, r0, lsl #16 ;\
+ str r0, [r1, #GPCR1_OFFS] ;
+
+/**********************************************************************************************************************
+* initialize controller
+**********************************************************************************************************************/
+
+#if defined(CYG_HAL_STARTUP_ROM)
+#define PLATFORM_SETUP1 _platform_setup1
+#define CYGHWR_HAL_ARM_HAS_MMU
+#else
+#define PLATFORM_SETUP1
+#endif
+
+.macro _platform_setup1
+ .rept 0x20/4
+ nop
+ .endr
+ b 1f
+
+.globl mpc50_static_info // Space for some static information
+mpc50_static_info:
+ .byte 'M','P','C','5' // Magic
+ .rept 16
+ .long 0
+ .endr
+1:
+ init_mmu_off // MMU on (and Cache)
+ init_mpc_gpio // GPIOs
+ LED(12)
+ init_sdram_cnt // SDRAM
+ LED(11)
+ init_intc_cnt // Interrupt Controller
+ LED(10)
+ init_clks // Clocks
+ LED(9)
+ init_mmu_cache_on // MMU and Cache
+ LED(8)
+.endm
+
+#endif /* CYGONCE_HAL_PLATFORM_SETUP_H */
+
diff --git a/ecos/packages/hal/arm/xscale/mpc50/current/include/mpc50.h b/ecos/packages/hal/arm/xscale/mpc50/current/include/mpc50.h
new file mode 100644
index 0000000..ce0faf1
--- /dev/null
+++ b/ecos/packages/hal/arm/xscale/mpc50/current/include/mpc50.h
@@ -0,0 +1,92 @@
+#ifndef CYGONCE_HAL_ARM_XSCALE_MPC50_H
+#define CYGONCE_HAL_ARM_XSCALE_MPC50_H
+//==========================================================================
+//
+// mpc50.h
+//
+// Platform specific support (register layout, etc)
+//
+//==========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//==========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): <knud.woehler@microplex.de>
+// Date: 2003-01-06
+//
+//####DESCRIPTIONEND####
+//
+//==========================================================================
+
+// FPGA
+// Config
+#define MPC50_FPGA_DATA_CLOCK 0x00000004
+#define MPC50_FPGA_DATA 0x00000008
+#define MPC50_FPGA_CONFIG 0x00000010
+#define MPC50_FPGA_STATUS 0x00000020
+#define MPC50_FPGA_CONFIG_DONE 0x00000040
+// Use
+#define MPC50_FPGA_IRQ0 CYGNUM_HAL_INTERRUPT_GPIO0
+#define MPC50_FPGA_IRQ1 CYGNUM_HAL_INTERRUPT_GPIO1
+
+#define MPC_FPGA_IRQ MPC50_FPGA_IRQ0
+#define MPC_FPGA_BASE ((unsigned char *)0x60000000)
+
+// Ethernet
+#define MPC50_ETH_IOBASE 0x68000000
+#define MPC50_ETH_IRQ CYGNUM_HAL_INTERRUPT_GPIO7
+#define MPC50_ETH_RESET 0x00008000
+
+// Flash
+#define MPC50_FLASH_BASE 0x50000000
+
+// Button
+#ifndef __ASSEMBLER__
+#define MPC50_BUTTON_PRESSED ((*PXA2X0_GPLR1 & 0x00000002)==0)
+#endif
+
+// static values (offsets)
+#define MPC50_VAL_MAGIC (('5'<<24)+('C'<<16)+('P'<<8)+'M')
+#define MPC50_VAL_OFFS_CCCR 4
+#define MPC50_VAL_OFFS_MDREFR 8
+#define MPC50_VAL_OFFS_MDCNFG 12
+
+#ifndef __ASSEMBLER__
+void mpc50_program_new_stack(void *func);
+void mpc50_user_hardware_init(void);
+#endif
+
+
+
+
+#endif //CYGONCE_HAL_ARM_XSCALE_MPC50_H
diff --git a/ecos/packages/hal/arm/xscale/mpc50/current/include/pkgconf/mlt_arm_pxa2x0_mpc50_ram.h b/ecos/packages/hal/arm/xscale/mpc50/current/include/pkgconf/mlt_arm_pxa2x0_mpc50_ram.h
new file mode 100644
index 0000000..07f4dd8
--- /dev/null
+++ b/ecos/packages/hal/arm/xscale/mpc50/current/include/pkgconf/mlt_arm_pxa2x0_mpc50_ram.h
@@ -0,0 +1,14 @@
+#ifndef __ASSEMBLER__
+#include <cyg/infra/cyg_type.h>
+#include <stddef.h>
+
+#endif
+#define CYGMEM_REGION_ram (0x00000000)
+#define CYGMEM_REGION_ram_SIZE (0x2000000)
+#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 (0x2000000 - (size_t) CYG_LABEL_NAME (__heap1))
+
diff --git a/ecos/packages/hal/arm/xscale/mpc50/current/include/pkgconf/mlt_arm_pxa2x0_mpc50_ram.ldi b/ecos/packages/hal/arm/xscale/mpc50/current/include/pkgconf/mlt_arm_pxa2x0_mpc50_ram.ldi
new file mode 100644
index 0000000..7895781
--- /dev/null
+++ b/ecos/packages/hal/arm/xscale/mpc50/current/include/pkgconf/mlt_arm_pxa2x0_mpc50_ram.ldi
@@ -0,0 +1,24 @@
+#include <cyg/infra/cyg_type.inc>
+
+MEMORY
+{
+ ram : ORIGIN = 0x00000000, LENGTH = 0x02000000
+}
+
+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)
+ .romfs ALIGN(0x20) : {*(.romfs)} > ram
+ 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)
+ CYG_LABEL_DEFN(__heap1) = ALIGN (0x8);
+ SECTIONS_END
+}
diff --git a/ecos/packages/hal/arm/xscale/mpc50/current/include/pkgconf/mlt_arm_pxa2x0_mpc50_ram.mlt b/ecos/packages/hal/arm/xscale/mpc50/current/include/pkgconf/mlt_arm_pxa2x0_mpc50_ram.mlt
new file mode 100644
index 0000000..3504c74
--- /dev/null
+++ b/ecos/packages/hal/arm/xscale/mpc50/current/include/pkgconf/mlt_arm_pxa2x0_mpc50_ram.mlt
@@ -0,0 +1,13 @@
+version 0
+region ram 0 2000000 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 20000 20000 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 1 0 1 heap1 heap1 !
+section heap1 0 8 0 0 0 0 0 0 !
diff --git a/ecos/packages/hal/arm/xscale/mpc50/current/include/pkgconf/mlt_arm_pxa2x0_mpc50_rom.h b/ecos/packages/hal/arm/xscale/mpc50/current/include/pkgconf/mlt_arm_pxa2x0_mpc50_rom.h
new file mode 100644
index 0000000..dccc3ec
--- /dev/null
+++ b/ecos/packages/hal/arm/xscale/mpc50/current/include/pkgconf/mlt_arm_pxa2x0_mpc50_rom.h
@@ -0,0 +1,17 @@
+#ifndef __ASSEMBLER__
+#include <cyg/infra/cyg_type.h>
+#include <stddef.h>
+#endif
+
+#define CYGMEM_REGION_ram (0x00000000)
+#define CYGMEM_REGION_ram_SIZE (0x2000000)
+#define CYGMEM_REGION_ram_ATTR (CYGMEM_REGION_ATTR_R | CYGMEM_REGION_ATTR_W)
+#define CYGMEM_REGION_rom (0x50000000)
+#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 (0x2000000 - (size_t) CYG_LABEL_NAME (__heap1))
+
diff --git a/ecos/packages/hal/arm/xscale/mpc50/current/include/pkgconf/mlt_arm_pxa2x0_mpc50_rom.ldi b/ecos/packages/hal/arm/xscale/mpc50/current/include/pkgconf/mlt_arm_pxa2x0_mpc50_rom.ldi
new file mode 100644
index 0000000..eb09828
--- /dev/null
+++ b/ecos/packages/hal/arm/xscale/mpc50/current/include/pkgconf/mlt_arm_pxa2x0_mpc50_rom.ldi
@@ -0,0 +1,24 @@
+#include <cyg/infra/cyg_type.inc>
+
+MEMORY
+{
+ ram : ORIGIN = 0x00000000, LENGTH = 0x02000000
+ rom : ORIGIN = 0x50000000, LENGTH = 0x00020000
+}
+
+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, 0xa000, FOLLOWING (.gcc_except_table))
+ SECTION_bss (ram, ALIGN (0x4), LMA_EQ_VMA)
+ CYG_LABEL_DEFN(__heap1) = ALIGN (0x8);
+ SECTIONS_END
+}
diff --git a/ecos/packages/hal/arm/xscale/mpc50/current/include/pkgconf/mlt_arm_pxa2x0_mpc50_rom.mlt b/ecos/packages/hal/arm/xscale/mpc50/current/include/pkgconf/mlt_arm_pxa2x0_mpc50_rom.mlt
new file mode 100644
index 0000000..eeb7f63
--- /dev/null
+++ b/ecos/packages/hal/arm/xscale/mpc50/current/include/pkgconf/mlt_arm_pxa2x0_mpc50_rom.mlt
@@ -0,0 +1,14 @@
+version 0
+region ram 00000000 02000000 0 !
+region rom 50000000 00020000 1 !
+section fixed_vectors 0 1 0 1 1 0 1 0 20 20 !
+section data 0 1 1 1 1 1 0 0 a000 bss !
+section bss 0 4 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 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 !
diff --git a/ecos/packages/hal/arm/xscale/mpc50/current/include/plf_io.h b/ecos/packages/hal/arm/xscale/mpc50/current/include/plf_io.h
new file mode 100644
index 0000000..8990615
--- /dev/null
+++ b/ecos/packages/hal/arm/xscale/mpc50/current/include/plf_io.h
@@ -0,0 +1,52 @@
+#ifndef CYGONCE_HAL_ARM_XSCALE_MPC50_PLF_IO_H
+#define CYGONCE_HAL_ARM_XSCALE_MPC50_PLF_IO_H
+//==========================================================================
+//
+// plf_io.h
+//
+// Platform specific support (register layout, etc)
+//
+//==========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//==========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): <knud.woehler@microplex.de>
+// Date: 2003-01-06
+//
+//####DESCRIPTIONEND####
+//
+//==========================================================================
+#include <cyg/hal/mpc50.h>
+
+#endif //CYGONCE_HAL_ARM_XSCALE_MPC50_PLF_IO_H
diff --git a/ecos/packages/hal/arm/xscale/mpc50/current/src/mpc50_misc.c b/ecos/packages/hal/arm/xscale/mpc50/current/src/mpc50_misc.c
new file mode 100644
index 0000000..2efcd9b
--- /dev/null
+++ b/ecos/packages/hal/arm/xscale/mpc50/current/src/mpc50_misc.c
@@ -0,0 +1,184 @@
+//==========================================================================
+//
+// mpc50_misc.c
+//
+// HAL misc board support code for MPC 5.0
+//
+//=============================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): <knud.woehler@microplex.de>
+// Date: 2003-01-06
+//
+//####DESCRIPTIONEND####
+//
+//========================================================================*/
+#include <pkgconf/hal.h>
+#include <pkgconf/system.h>
+#include CYGBLD_HAL_PLATFORM_H
+#include <cyg/infra/cyg_type.h>
+#include <cyg/infra/cyg_trac.h>
+#include <cyg/infra/cyg_ass.h>
+#include <cyg/hal/hal_io.h>
+#include <cyg/hal/hal_arch.h>
+#include <cyg/hal/hal_diag.h>
+#include <cyg/hal/hal_intr.h>
+#include <cyg/hal/hal_cache.h>
+#include <cyg/hal/hal_pxa2x0.h>
+#include <cyg/hal/hal_misc.h>
+#include <cyg/hal/mpc50.h>
+#include <cyg/infra/diag.h>
+#include <cyg/hal/hal_mm.h>
+
+
+void hal_mmu_init(void)
+{
+#ifdef CYG_HAL_STARTUP_ROM
+
+ typedef cyg_uint32 aptr; // for arithmetic
+
+ unsigned long ttb_base = PXA2X0_RAM_BANK0_BASE + 0x4000;
+ unsigned long *SDRAMConfig;
+ int *p_hdsize = (int *)((aptr)(&hal_dram_size) | (0xA00u *SZ_1M));
+ int *p_hdtype = (int *)((aptr)(&hal_dram_type) | (0xA00u *SZ_1M));
+
+ *p_hdtype = 0;
+ for(SDRAMConfig=0; *SDRAMConfig != MPC50_VAL_MAGIC ;SDRAMConfig++);
+ SDRAMConfig += (MPC50_VAL_OFFS_MDCNFG>>2);
+
+ // set TTB Register
+ asm volatile ("mcr p15,0,%0,c2,c0,0" : : "r"(ttb_base));
+
+ // erase Page Table
+ memset((void *)ttb_base, 0, ARM_FIRST_LEVEL_PAGE_TABLE_SIZE);
+
+ // create Page Table
+
+ /* Actual Virtual Size Attribute Function */
+ /* Base Base MB cached? buffered? access permissions */
+ /* xxx00000 xxx00000 */
+ X_ARM_MMU_SECTION(0x000, 0x500, 16, ARM_CACHEABLE, ARM_UNBUFFERABLE, ARM_ACCESS_PERM_RW_RW); /* Boot flash ROMspace */
+ X_ARM_MMU_SECTION(0x040, 0x600, 64, ARM_UNCACHEABLE, ARM_UNBUFFERABLE, ARM_ACCESS_PERM_RW_RW); /* FPGA Register */
+ X_ARM_MMU_SECTION(0x080, 0x680, 64, ARM_UNCACHEABLE, ARM_UNBUFFERABLE, ARM_ACCESS_PERM_RW_RW); /* LAN Register */
+ X_ARM_MMU_SECTION(0x400, 0x400, 192, ARM_UNCACHEABLE, ARM_UNBUFFERABLE, ARM_ACCESS_PERM_RW_RW); /* PXA2x0 Register */
+
+ if((*SDRAMConfig & 0x00000018) == 0x08) // 32MB per bank
+ {
+ X_ARM_MMU_SECTION(0xA00, 0x0, 32, ARM_CACHEABLE, ARM_UNBUFFERABLE, ARM_ACCESS_PERM_RW_RW); /* SDRAM Bank 0 */
+ X_ARM_MMU_SECTION(0xA40, 0x020, 32, ARM_CACHEABLE, ARM_UNBUFFERABLE, ARM_ACCESS_PERM_RW_RW); /* SDRAM Bank 1 */
+ *p_hdsize = 64 * SZ_1M; // 64MB
+ if((*SDRAMConfig & 0x00030000) != 0) // 4 banks
+ {
+ X_ARM_MMU_SECTION(0xA80, 0x040, 32, ARM_CACHEABLE, ARM_UNBUFFERABLE, ARM_ACCESS_PERM_RW_RW); /* SDRAM Bank 2 */
+ X_ARM_MMU_SECTION(0xAc0, 0x060, 32, ARM_CACHEABLE, ARM_UNBUFFERABLE, ARM_ACCESS_PERM_RW_RW); /* SDRAM Bank 3 */
+ *p_hdsize = 128 * SZ_1M; // 128MB
+ }
+ }else{ // 64MB per bank
+ X_ARM_MMU_SECTION(0xA00, 0x0, 64, ARM_CACHEABLE, ARM_UNBUFFERABLE, ARM_ACCESS_PERM_RW_RW); /* SDRAM Bank 0 */
+ X_ARM_MMU_SECTION(0xA40, 0x040, 64, ARM_CACHEABLE, ARM_UNBUFFERABLE, ARM_ACCESS_PERM_RW_RW); /* SDRAM Bank 1 */
+ *p_hdsize = 128 * SZ_1M; // 128MB
+ if((*SDRAMConfig & 0x00030000) != 0) // 4 banks
+ {
+ X_ARM_MMU_SECTION(0xA80, 0x080, 64, ARM_CACHEABLE, ARM_UNBUFFERABLE, ARM_ACCESS_PERM_RW_RW); /* SDRAM Bank 2 */
+ X_ARM_MMU_SECTION(0xAc0, 0x0c0, 64, ARM_CACHEABLE, ARM_UNBUFFERABLE, ARM_ACCESS_PERM_RW_RW); /* SDRAM Bank 3 */
+ *p_hdsize = 256 * SZ_1M; // 256MB
+ }
+ }
+ X_ARM_MMU_SECTION(0xA00, 0xA00, 256, ARM_UNCACHEABLE, ARM_UNBUFFERABLE, ARM_ACCESS_PERM_RW_RW); /* Unmapped Memory */
+
+ X_ARM_MMU_SECTION(0xC00, 0xC00, 128, ARM_CACHEABLE, ARM_BUFFERABLE, ARM_ACCESS_PERM_RW_RW);
+#endif
+}
+
+void plf_hardware_init(void)
+{
+ int t;
+ unsigned long int gpioValue ;
+
+ // enable FFUART clock
+ gpioValue = *PXA2X0_CKEN ;
+ gpioValue = gpioValue | (unsigned long)0x40 ;
+ *PXA2X0_CKEN = gpioValue ;
+
+ hal_if_init(); // Set up eCos/ROM interfaces
+
+ mpc50_user_hardware_init();
+
+ return ;
+}
+
+#include CYGHWR_MEMORY_LAYOUT_H
+typedef void code_fun(void);
+void mpc50_program_new_stack(void *func)
+{
+ register CYG_ADDRESS stack_ptr asm("sp");
+ register CYG_ADDRESS old_stack asm("r4");
+ register code_fun *new_func asm("r0");
+ old_stack = stack_ptr;
+ stack_ptr = CYGMEM_REGION_ram + CYGMEM_REGION_ram_SIZE - sizeof(CYG_ADDRESS);
+ new_func = (code_fun*)func;
+ new_func();
+ stack_ptr = old_stack;
+ return;
+}
+
+//
+// Memory layout
+//
+externC cyg_uint8 *
+hal_arm_mem_real_region_top( cyg_uint8 *regionend )
+{
+ CYG_ASSERT( hal_dram_size > 0, "Didn't detect DRAM size!" );
+ CYG_ASSERT( hal_dram_size <= 256<<20, "More than 256MB reported - that can't be right" );
+ CYG_ASSERT( 0 == (hal_dram_size & 0xfffff), "hal_dram_size not whole Mb" );
+ // is it the "normal" end of the DRAM region? If so, it should be
+ // replaced by the real size
+ if ( regionend == ((cyg_uint8 *)CYGMEM_REGION_ram + CYGMEM_REGION_ram_SIZE) )
+ {
+ regionend = (cyg_uint8 *)CYGMEM_REGION_ram + hal_dram_size;
+ }
+ return regionend;
+}
+
+void mpc50_user_hardware_init(void) CYGBLD_ATTRIB_WEAK;
+
+void mpc50_user_hardware_init()
+{
+}
+
+
+
+/*------------------------------------------------------------------------*/
+// EOF mpc50_misc.c
diff --git a/ecos/packages/hal/arm/xscale/npwr/current/ChangeLog b/ecos/packages/hal/arm/xscale/npwr/current/ChangeLog
new file mode 100644
index 0000000..c9fbb48
--- /dev/null
+++ b/ecos/packages/hal/arm/xscale/npwr/current/ChangeLog
@@ -0,0 +1,47 @@
+2009-10-16 John Dallaway <john@dallaway.org.uk>
+
+ * cdl/hal_arm_xscale_npwr.cdl: Parent under
+ CYGPKG_HAL_ARM_XSCALE_IOP310.
+
+2002-11-13 Mark Salter <msalter@redhat.com>
+ * include/hal_platform_setup.h: Use IOP310_EARLY_PCI_SETUP to make
+ some BIOSes happy. BTB_INIT and MMU macros provided elsewhere.
+
+2002-11-12 Gary Thomas <gary@mlbassoc.com>
+
+ * src/npwr_misc.c:
+ * include/pkgconf/mlt_arm_xscale_npwr_rom.mlt:
+ * include/pkgconf/mlt_arm_xscale_npwr_rom.ldi:
+ * include/pkgconf/mlt_arm_xscale_npwr_rom.h:
+ * include/pkgconf/mlt_arm_xscale_npwr_ram.mlt:
+ * include/pkgconf/mlt_arm_xscale_npwr_ram.ldi:
+ * include/pkgconf/mlt_arm_xscale_npwr_ram.h:
+ * include/plf_io.h:
+ * include/hal_platform_setup.h:
+ * include/hal_platform_ints.h:
+ * cdl/hal_arm_xscale_npwr.cdl: New platform - NPWR Linux Engine,
+ based on Intel Xscale IOP310 chipset, from Team ASA.
+
+//===========================================================================
+// ####GPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002, 2009 Free Software Foundation, Inc.
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 2 or (at your option) any
+// later version.
+//
+// This program is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the
+// Free Software Foundation, Inc., 51 Franklin Street,
+// Fifth Floor, Boston, MA 02110-1301, USA.
+// -------------------------------------------
+// ####GPLCOPYRIGHTEND####
+//===========================================================================
diff --git a/ecos/packages/hal/arm/xscale/npwr/current/cdl/hal_arm_xscale_npwr.cdl b/ecos/packages/hal/arm/xscale/npwr/current/cdl/hal_arm_xscale_npwr.cdl
new file mode 100644
index 0000000..7cff370
--- /dev/null
+++ b/ecos/packages/hal/arm/xscale/npwr/current/cdl/hal_arm_xscale_npwr.cdl
@@ -0,0 +1,118 @@
+# ====================================================================
+#
+# hal_arm_xscale_npwr.cdl
+#
+# TeamASA NPWR Linux Engine HAL package configuration data
+#
+# ====================================================================
+## ####ECOSGPLCOPYRIGHTBEGIN####
+## -------------------------------------------
+## This file is part of eCos, the Embedded Configurable Operating System.
+## Copyright (C) 1998, 1999, 2000, 2001, 2002, 2009 Free Software Foundation, Inc.
+##
+## eCos is free software; you can redistribute it and/or modify it under
+## the terms of the GNU General Public License as published by the Free
+## Software Foundation; either version 2 or (at your option) any later
+## version.
+##
+## eCos is distributed in the hope that it will be useful, but WITHOUT
+## ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+## FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+## for more details.
+##
+## You should have received a copy of the GNU General Public License
+## along with eCos; if not, write to the Free Software Foundation, Inc.,
+## 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+##
+## As a special exception, if other files instantiate templates or use
+## macros or inline functions from this file, or you compile this file
+## and link it with other works to produce a work based on this file,
+## this file does not by itself cause the resulting work to be covered by
+## the GNU General Public License. However the source code for this file
+## must still be made available in accordance with section (3) of the GNU
+## General Public License v2.
+##
+## This exception does not invalidate any other reasons why a work based
+## on this file might be covered by the GNU General Public License.
+## -------------------------------------------
+## ####ECOSGPLCOPYRIGHTEND####
+# ====================================================================
+######DESCRIPTIONBEGIN####
+#
+# Author(s): gthomas
+# Original data:
+# Contributors: gthomas
+# Date: 2002-10-01
+#
+#####DESCRIPTIONEND####
+#
+# ====================================================================
+cdl_package CYGPKG_HAL_ARM_XSCALE_NPWR {
+ display "NPWR Linux Engine (TeamASA)"
+ parent CYGPKG_HAL_ARM_XSCALE_IOP310
+ define_header hal_arm_xscale_npwr.h
+ include_dir cyg/hal
+ hardware
+ description "
+ The NPWR HAL package provides the support needed to run
+ eCos on a NPWR Linux Engine."
+
+ compile npwr_misc.c
+
+ 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_xscale_iop310.h>"
+ puts $::cdl_system_header "#define CYGBLD_HAL_PLATFORM_H <pkgconf/hal_arm_xscale_npwr.h>"
+ puts $::cdl_header "#define HAL_PLATFORM_CPU \"XScale\""
+ puts $::cdl_header "#define HAL_PLATFORM_BOARD \"NPWR\""
+ puts $::cdl_header "#define HAL_PLATFORM_EXTRA \"\""
+ }
+
+ # No support for using ARM bootstrap
+ requires { CYGSEM_HAL_ARM_IOP310_ARMBOOT == 0 }
+
+ implements CYGHWR_HAL_ARM_IOP310_SERIAL_PORTB
+
+ cdl_component CYGHWR_MEMORY_LAYOUT {
+ display "Memory layout"
+ flavor data
+ no_define
+ calculated { CYG_HAL_STARTUP == "RAM" ? "arm_xscale_npwr_ram" : \
+ "arm_xscale_npwr_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_xscale_npwr_ram.ldi>" : \
+ "<pkgconf/mlt_arm_xscale_npwr_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_xscale_npwr_ram.h>" : \
+ "<pkgconf/mlt_arm_xscale_npwr_rom.h>" }
+ }
+ }
+
+ cdl_option CYGBLD_INTEL_DIAGNOSTICS {
+ display "Build Intel Xscale diagnostics"
+ default_value 0
+ parent CYGPKG_REDBOOT_HAL_OPTIONS
+ active_if CYGBLD_BUILD_REDBOOT_BIN
+ no_define
+ description "Enabling this option will include diagnostics
+ from Intel in the RedBoot image."
+
+ compile -library=libextras.a \
+ diag/diag.c diag/io_utils.c diag/external_timer.c \
+ diag/i557_eep.c diag/pci_serv.c diag/interrupts.c \
+ diag/xscale_test.c diag/flash.c diag/cycduart.c \
+ diag/ether_test.c diag/memtest.c diag/test_menu.c \
+ diag/irq.S
+ }
+}
diff --git a/ecos/packages/hal/arm/xscale/npwr/current/include/hal_platform_ints.h b/ecos/packages/hal/arm/xscale/npwr/current/include/hal_platform_ints.h
new file mode 100644
index 0000000..acfbb62
--- /dev/null
+++ b/ecos/packages/hal/arm/xscale/npwr/current/include/hal_platform_ints.h
@@ -0,0 +1,69 @@
+#ifndef CYGONCE_HAL_PLATFORM_INTS_H
+#define CYGONCE_HAL_PLATFORM_INTS_H
+//==========================================================================
+//
+// hal_platform_ints.h
+//
+// HAL Interrupt and clock support
+//
+//==========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//==========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): msalter
+// Contributors: gthomas
+// Date: 2000-10-10
+// Purpose: Define Interrupt support
+// Description: The interrupt details for the NPWR Linux Engine are defined here.
+// Usage:
+// included from <cyg/hal/hal_var_ints.h>
+// ...
+//
+//####DESCRIPTIONEND####
+//
+//==========================================================================
+
+#define CYGNUM_HAL_INTERRUPT_TIMER CYGNUM_HAL_INTERRUPT_XINT3_BIT0 // external timer
+#define CYGNUM_HAL_INTERRUPT_ETH0 CYGNUM_HAL_INTERRUPT_XINT3_BIT1 // primary enet
+#define CYGNUM_HAL_INTERRUPT_SCSI CYGNUM_HAL_INTERRUPT_XINT3_BIT2 // 53c1000 SCSI
+#define CYGNUM_HAL_INTERRUPT_SERIAL_B CYGNUM_HAL_INTERRUPT_XINT3_BIT3 // 16x50 uart B
+#define CYGNUM_HAL_INTERRUPT_ETH1 CYGNUM_HAL_INTERRUPT_XINT3_BIT4 // secondary enet
+
+// The vector used by the Real time clock
+#define CYGNUM_HAL_INTERRUPT_RTC CYGNUM_HAL_INTERRUPT_TIMER
+//#define CYGNUM_HAL_INTERRUPT_RTC CYGNUM_HAL_INTERRUPT_PMU_CCNT_OVFL
+
+#endif // CYGONCE_HAL_PLATFORM_INTS_H
+
+// EOF hal_platform_ints.h
diff --git a/ecos/packages/hal/arm/xscale/npwr/current/include/hal_platform_setup.h b/ecos/packages/hal/arm/xscale/npwr/current/include/hal_platform_setup.h
new file mode 100644
index 0000000..98959db
--- /dev/null
+++ b/ecos/packages/hal/arm/xscale/npwr/current/include/hal_platform_setup.h
@@ -0,0 +1,906 @@
+#ifndef CYGONCE_HAL_PLATFORM_SETUP_H
+#define CYGONCE_HAL_PLATFORM_SETUP_H
+
+/*=============================================================================
+//
+// hal_platform_setup.h
+//
+// Platform specific support for HAL (assembly code)
+//
+//=============================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): msalter
+// Contributors: gthomas
+// Date: 2000-10-10
+// Purpose: Intel IOP310 platform specific support routines
+// Description:
+// Usage: #include <cyg/hal/hal_platform_setup.h>
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================*/
+
+#include <pkgconf/system.h> // System-wide configuration info
+#include <cyg/hal/hal_mmu.h> // MMU definitions
+#include <cyg/hal/hal_mm.h> // More MMU definitions
+#include CYGBLD_HAL_VARIANT_H // Variant specific configuration
+#include CYGBLD_HAL_PLATFORM_H // Platform specific configuration
+#include <cyg/hal/hal_iop310.h> // Platform specific hardware definitions
+
+// Define macro used to diddle the LEDs during early initialization.
+// Can use r0+r1. Argument in \x.
+#define CYGHWR_LED_MACRO \
+ b 667f ;\
+ 666: ;\
+ .byte 0xc0, 0xf9, 0xa4, 0xb0 ;\
+ .byte 0x99, 0x92, 0x82, 0xf8 ;\
+ .byte 0x80, 0x90, 0x88, 0x83 ;\
+ .byte 0xa7, 0xa1, 0x86, 0x8e ;\
+ 667: ;\
+ ldr r0, =666b ;\
+ add r0, r0, #\x ;\
+ ldrb r1, [r0] ;\
+ ldr r0, =DISPLAY_RIGHT ;\
+ str r1, [r0]
+
+#undef CYGHWR_LED_MACRO
+
+
+// The main useful output of this file is PLATFORM_SETUP1: it invokes lots
+// of other stuff (may depend on RAM or ROM start). The other stuff is
+// divided into further macros to make it easier to manage what's enabled
+// when.
+
+#if defined(CYG_HAL_STARTUP_ROM)
+#define PLATFORM_SETUP1 _platform_setup1
+//#define CYGHWR_HAL_ARM_HAS_MMU
+#else
+#define PLATFORM_SETUP1
+#endif
+
+#define RAM_BASE 0xa0000000
+#define DRAM_SIZE (512*1024*1024) // max size of available SDRAM
+#define DCACHE_SIZE (32*1024) // size of the Dcache
+
+// Reserved area for battery backup SDRAM memory test
+// This area is not zeroed out by initialization code
+#define SDRAM_BATTERY_TEST_BASE 0xA1FFFFF0 // base address of last 16 memory locations in a 32MB SDRAM
+
+
+
+ // Display 'lvalue:rvalue' on the hex display
+ // lvalue and rvalue must be of the form 'DISPLAY_x'
+ // where 'x' is a hex digit from 0-F.
+ .macro HEX_DISPLAY reg0, reg1, lvalue, rvalue
+ ldr \reg0, =DISPLAY_LEFT // display left digit
+ ldr \reg1, =\lvalue
+ str \reg1, [\reg0]
+ ldr \reg0, =DISPLAY_RIGHT
+ ldr \reg1, =\rvalue // display right digit
+ str \reg1, [\reg0]
+ .endm
+
+ // Trigger the logic analyzer by writing a particular
+ // address, and triggering on that address.
+ .macro TRIGGER_LA_ON_ADDRESS address, reg0, reg1
+ mrc p15, 0, \reg0, c1, c0, 0 // read ARM control register
+ // CPWAIT \reg0
+ ldr \reg1, =\address
+ str \reg0, [\reg1]
+ .endm
+
+ // Delay a bit
+ .macro DELAY_FOR cycles, reg0
+ ldr \reg0, =\cycles
+ subs \reg0, \reg0, #1
+ subne pc, pc, #0xc
+ .endm
+
+ // wait for coprocessor write complete
+ .macro CPWAIT reg
+ mrc p15,0,\reg,c2,c0,0
+ mov \reg,\reg
+ sub pc,pc,#4
+ .endm
+
+ // form a first-level section entry
+ .macro FL_SECTION_ENTRY base,x,ap,p,d,c,b
+ .word (\base << 20) | (\x << 12) | (\ap << 10) | (\p << 9) |\
+ (\d << 5) | (\c << 3) | (\b << 2) | 2
+ .endm
+
+ // form a first-level page table entry
+ .macro FL_PT_ENTRY base,p,d
+ // I wanted to use logical operations here, but since I am using symbols later
+ // to fill in the parameters, I had to use addition to force the assembler to
+ // do it right
+ .word \base + (\p << 9) + (\d << 5) + 1
+ .endm
+
+ // form a second level small page entry
+ .macro SL_SMPAGE_ENTRY base,ap3,ap2,ap1,ap0,c,b
+ .word (\base << 12) | (\ap3 << 10) | (\ap2 << 8) | (\ap1 << 6) |\
+ (\ap0 << 4) | (\c << 3) | (\b << 2) | 2
+ .endm
+
+ // form a second level extended small page entry
+ .macro SL_XSMPAGE_ENTRY base,x,ap,c,b
+ .word (\base << 12) | (\x << 6) | (\ap << 4) | (\c << 3) | (\b << 2) | 3
+ .endm
+
+
+ // start of platform setup
+ .macro _platform_setup1
+
+ // This is where we wind up immediately after reset. On the IOP310, we have
+ // to jump around a hole in flash which runs from 0x00001000 - 0x0001fff.
+ // The start of _platform_setup1 will be below 0x1000 and since we need to
+ // align the mmu table on a 16k boundary, we just branch around the page
+ // table which we will locate at FLASH_BASE+0x4000.
+ b _real_platform_setup
+
+ .p2align 13
+ // the following alignment creates the mmu table at address 0x4000.
+ mmu_table:
+
+ // 1MB of FLASH with i80312 MMRs mapped in using 4K small pages so we can
+ // set the access permission on flash and memory-mapped registers properly.
+ FL_PT_ENTRY mmu_table_flashbase,0,0
+
+ // Remaining 7MB of FLASH
+ // rw, cacheable, non-bufferable
+ .set __base,1
+ .rept 7
+ FL_SECTION_ENTRY __base,0,3,0,0,1,0
+ .set __base,__base+1
+ .endr
+
+ // nothing interesting here (Address Translation)
+ .rept 0xA00 - 0x8
+ FL_SECTION_ENTRY __base,0,3,0,0,0,0
+ .set __base,__base+1
+ .endr
+
+ // up to 512MB ECC SDRAM mapped 1-to-1
+ // first 1MB mapped in 4K chunks
+ // x=c=b=1
+ FL_PT_ENTRY mmu_table_rambase,1,0
+ .set __base,__base+1
+ .rept 0xC00 - 0xA01
+ FL_SECTION_ENTRY __base,1,3,1,0,1,1
+ .set __base,__base+1
+ .endr
+
+ // Cache flush region.
+ // Don't need physical memory, just a cached area.
+ .rept 0xD00 - 0xC00
+ FL_SECTION_ENTRY __base,0,3,0,0,1,1
+ .set __base,__base+1
+ .endr
+
+ // Alias for first 1MB of FLASH
+ // rw, cacheable, non-bufferable
+ FL_SECTION_ENTRY 0x000,0,3,0,0,1,0
+ .set __base,__base+1
+
+ // Invalid
+ .rept 0xE00 - 0xD01
+ .word 0
+ .set __base,__base+1
+ .endr
+
+ // Uncached and unbuffered alias for first 256MB of SDRAM. This
+ // area can be used by device drivers for DMA operations. Buffers
+ // should be cache aligned.
+ .set __base,0xA00
+ .rept 0xF00 - 0xE00
+ FL_SECTION_ENTRY __base,0,3,1,0,0,0
+ .set __base,__base+1
+ .endr
+
+ // only I/O at 0xFE8xxxxx
+ .set __base,0xF00
+ .rept 0x1000 - 0xF00
+ FL_SECTION_ENTRY __base,0,3,0,0,0,0
+ .set __base,__base+1
+ .endr
+
+ // Immediately after the above table (at 0x8000) is the
+ // second level page table which breaks up the lowest 1MB
+ // of physical memory into 4KB sized virtual pages. These
+ // pages work around a hole in flash (0x1000-0x1fff) used
+ // by the Yavapai companion chip internal registers.
+ mmu_table_flashbase:
+ // Virtual address 0 (Flash boot code).
+ // Map 4k page at 0x00000000 virt --> 0xA0000000 physical
+ // This allows us to have a writable vector table.
+ // Read-Write, cacheable, bufferable
+ SL_XSMPAGE_ENTRY 0xa0000,1,3,1,1
+
+ // Virtual address 0x1000 (Memory mapped registers)
+ // Map 1-to-1, but don't cache or buffer
+ // Read-Write, non-cacheable, non-bufferable
+ .set __base,1
+ SL_SMPAGE_ENTRY __base,3,3,3,3,0,0
+ .set __base,__base+1
+
+ // Virtual address 0x2000-0x100000 (remainder of flash1)
+ // Read-Write, cacheable, non-bufferable
+ .rept 0x100 - 0x2
+ SL_SMPAGE_ENTRY __base,3,3,3,3,1,0
+ .set __base,__base+1
+ .endr
+
+ // Now is the second level table for the first megabyte
+ // of DRAM.
+ mmu_table_rambase:
+ // Map first meg of SDRAM
+ // Read-Write, cacheable, bufferable
+ .set __base,0xA0000
+ .rept 0x100
+ SL_XSMPAGE_ENTRY __base,1,3,1,1
+ .set __base,__base+1
+ .endr
+
+_real_platform_setup:
+ // Drain write and fill buffer
+ mcr p15,0,r0,c7,c10,4
+ CPWAIT r0
+
+ // Disable write buffer coalescing
+ mrc p15,0,r0,c1,c0,1
+ orr r0,r0,#1 // set the disable bit
+ mcr p15,0,r0,c1,c0,1
+ CPWAIT r0
+
+ // Delay appx 60 ms to let battery-backup reset complete
+ DELAY_FOR 0x400000, r0
+ // Eventually we will be able to check a register bit
+ // to determine when this is complete
+
+ HEX_DISPLAY r0, r1, DISPLAY_0, DISPLAY_1
+
+ //
+ // *** I2C interface initialization ***
+ //
+
+ // Setup I2C Slave Address Register
+ ldr r1, =I2C_DEVID // Load slave address r1.
+ ldr r2, =ISAR_ADDR // Load address of the I2C Slave Address Register in r2.
+ ldr r3, =0x0000007f // Load mask in r3.
+ and r1, r3, r3 // The mask zeroes the 25 MSBs of r1 just to make sure.
+ str r3, [r2] // Save the value 0x02 (I2C_DEVID) in the register.
+
+ // Setup I2C Clock Count Register
+ ldr r2, =ICCR_ADDR // Load the address of the I2C Clock Control Register in r2.
+ ldr r3, =0x0000014d // Set for 5.05 us transition time at 66MHz (0x14D = 333).
+ str r3, [r2] // Save the value in the register.
+
+ // Enable I2C Interface Unit - status will be polled
+ ldr r2, =ICR_ADDR // Load the address of the Control Register in r2.
+ ldr r1, =ICR_GCALL // Disable General Call (will be master)
+ ldr r3, =ICR_ENB // Enable I2C unit ).
+ orr r1, r3, r1 // OR the two and store in R1
+ ldr r3, =ICR_SCLENB // Enable I2C Clock Generator disabled
+ orr r1, r3, r1 // OR the two and store in R1
+ str r1, [r2] // Save the value to the Control Register.
+
+ //
+ // *** Now read the SPD Data ***
+ //
+
+ // Pointers to I2C Registers
+ ldr r11, =ICR_ADDR // Load the address of the I2C Control Register in r11.
+ ldr r12, =ISR_ADDR // Load the address of the I2C Status Register in r12.
+ ldr r13, =IDBR_ADDR // Load the address of the I2C Data Buffer Register in r13.
+
+ // Initialize byte counters
+ ldr r6, =0x00000000 // Counter incremented before byte is read
+ ldr r7, =0x00000040 // Number of bytes to read in the Presence Detect EEPROM of SDRAM: 64 bytes
+ ldr r5, =0x00000000 // R5 has running checksum calculation
+ ldr r9, =I2C_TIMOUT // Timeout limit in case EEPROM does not respond
+
+ // At the end of all this, R4 has DRAM size, R8 has bank count, and R10 has Bank size
+ ldr r10,=0x00000000 // Bank size
+ ldr r8, =0x00000000 // Bank count
+ ldr r4, =0x00000000 // SDRAM size
+
+ /* FREE REGISTERS ARE R0 - R3 */
+
+ // *** Put out address, with WRITE mode ***
+
+ // Set SDRAM module address and write mode
+ ldr r1, =SDRAM_DEVID // Load slave address for SDRAM module: 0xA2 (Presence Detect Data)
+ bic r1, r1, #IDBR_MODE // Clear read bit (bit #0)
+ str r1, [r13] // Store to data register
+
+ // Initiate dummy write to set EEPROM pointer to 0
+ ldr r1, [r11] // read the current Control Register value
+ orr r1, r1, #ICR_START // Set start bit
+ orr r1, r1, #ICR_TRANSFER // Set transfer bit - bit is self_clearing
+ str r1, [r11] // Store to control register
+
+ // Wait for transmit empty status
+ ldr r1, =0x00000000 // Initialize I2C timeout counter
+ 0:
+ add r1, r1, #1 // Increment I2C timeout counter (r1 = r1 + 1)
+ cmp r1, r9
+ beq i2c_error // Kick out of SDRAM initialization if timeout occurs
+ ldr r0, [r12] // Load I2C Status Reg into R0
+ ands r3, r0, #ISR_EMPTY // Bit #6 is checked: IDBR Transmit Empty
+ beq 0b
+ str r0, [r12] // Write back status to clear
+
+ // *** Write pointer register on EEPROM to 0x00000000 ***
+
+ // Set SDRAM module EEPROM address to 0
+ ldr r1, =0x00000000 // Load base address of SDRAM module EEPROM
+ str r1, [r13] // Store to data register
+
+ // Send address to EEPROM
+ ldr r1, [r11] // read the current Control Register value
+ bic r1, r1, #ICR_START // No start bit (already started)
+ orr r1, r1, #ICR_TRANSFER // Set transfer bit - bit is self_clearing
+ str r1, [r11] // Store to control register
+
+ // Wait for transmit empty status
+ ldr r1, =0x00000000 // Initialize I2C timeout counter
+ 0:
+ add r1, r1, #1 // Increment I2C timeout counter (r1 = r1 + 1)
+ cmp r1, r9
+ beq i2c_error // Kick out of SDRAM initialization if timeout occurs
+ ldr r0, [r12] // Load I2C Status Reg into R0 - ld (r12), r10
+ ands r3, r0, #ISR_EMPTY // Bit #6 is checked: IDBR Transmit Empty
+ beq 0b
+ str r0, [r12] // Write back status to clear
+
+ // *** Read SDRAM PD data ***
+
+ // *** Put out address, with READ mode ***
+
+ // Set SDRAM module address and read mode
+ ldr r0, =SDRAM_DEVID // Load slave address for SDRAM module (0xA2)
+ orr r1, r0, #IDBR_MODE // Set read bit (bit #0)
+ str r1, [r13] // Store to data register
+
+ // Send next read request
+ ldr r1, [r11] // read the current Control Register value
+ orr r1, r1, #ICR_START // Set start bit
+ orr r1, r1, #ICR_TRANSFER // Set transfer bit - bit is self_clearing
+ str r1, [r11] // Store to control register
+
+ // Wait for transmit empty status
+ ldr r1, =0x00000000 // Initialize I2C timeout counter
+ 0:
+ add r1, r1, #1 // Increment I2C timeout counter (r1 = r1 + 1)
+ cmp r1, r9
+ beq i2c_error // Kick out of SDRAM initialization if timeout occurs
+ ldr r0, [r12] // Load I2C Status Reg into R0 - ld (r12), r10
+ ands r3, r0, #ISR_EMPTY // Bit #6 is checked: IDBR Transmit Empty
+ beq 0b
+ str r0, [r12] // Write back status to clear
+
+ sdram_loop:
+ add r6, r6, #1 // Increment byte counter
+
+ // *** READ the next Byte!!! ***
+
+ ldr r1, [r11] // read the current Control Register value
+ bic r1, r1, #ICR_START // No start bit (already started)
+ orr r1, r1, #ICR_TRANSFER // Set transfer bit - bit is self_clearing
+
+ // we have to set NACK before reading the last bit
+ cmp r6, r7 // r7 = 64 (decimal) so if r6 = 64, this is the last byte to be read
+ bne 1f // If bytes left, skip ahead
+ orr r1, r1, #ICR_ACK // Set NACK if this is the last byte
+ orr r1, r1, #ICR_STOP // Set STOP if this is the last byte
+ 1:
+ str r1, [r11] // Store to control register
+
+ // Wait for read full status
+ ldr r1, =0x00000000 // Initialize I2C timeout counter
+ 0:
+ add r1, r1, #1 // Increment I2C timeout counter (r1 = r1 + 1)
+ cmp r1, r9
+ beq i2c_error // Kick out of SDRAM initialization if timeout occurs
+ ldr r0, [r12] // Load I2C Status Reg into R0
+ ands r3, r0, #ISR_FULL // Bit #6 is checked: IDBR Transmit Empty
+ beq 0b
+ str r0, [r12] // Write back status to clear
+
+ // Read the data byte
+ ldr r1, [r13] // Read the byte
+
+ ldr r2, =CHECKSUM_BYTE
+ cmp r6, r2 // is it the CHECKSUM byte???
+ beq 1f
+ add r5, r5, r1 // Add it to the checksum if not the checksum byte
+ bal 2f // skip checksum comparison
+ 1:
+ ldr r0, =0xff // If this is the checksum byte, compare it
+ and r5, r5, r0 // against the calculated checksum
+ cmp r1, r5
+ bne bad_checksum // If no match, skip SDRAM controller initialization
+ 2:
+ ldr r2, =BANKCNT_BYTE // Check for bank count byte
+ cmp r6, r2
+ bne 1f
+ mov r8, r1 // Store bank count
+ 1:
+ ldr r2, =BANKSZ_BYTE // Check for bank size byte
+ cmp r6, r2
+ bne 1f
+
+ ldr r2, =0x04 // Store bank size in Mbytes (shift left 2 bits)
+ mul r10, r1, r2
+ mul r2, r8, r10 // Multiply by bank count to get DRAM size in MB
+ ldr r0, =0x100000
+ mul r4, r2, r0 // Convert size to bytes - r4 contains DRAM size in bytes
+
+1:
+ // Handle the SDRAM drive strength setup here since we are out of
+ // temporary registers to hold the SDRAM width value until after
+ // all of the SPD data has been read. Using the value of r8 for
+ // the Bank Count is allright here since the SPD specification states that
+ // the Bank Count SPD byte is #5 and the SDRAM Width SPD byte is #13.
+
+ ldr r2, =SDRAM_WIDTH_BYTE // Check for SDRAM width byte
+ cmp r6, r2
+ bne 1f
+ mov r2, #0x10 // Check for data width of 16
+ cmp r1, r2
+ bne SDRAM_DRIVE_X8
+
+ // Module is composed of x16 devices
+ mov r2, #0x02
+ cmp r2, r8 // do we have 2 banks???
+ beq SDRAM_DRIVE_2_BANK_X16
+
+ // Module is composed of 1 Bank of x16 devices
+ ldr r1, =SDCR_ADDR // point at SDRAM Control Register
+ ldr r2, =SDCR_1BANK_X16 // drive strength value
+ str r2, [r1] // set value in SDCR
+ b 1f
+
+SDRAM_DRIVE_2_BANK_X16:
+ // Module is composed of 2 Banks of x16 devices
+ ldr r1, =SDCR_ADDR // point at SDRAM Control Register
+ ldr r2, =SDCR_2BANK_X16 // drive strength value
+ str r2, [r1] // set value in SDCR
+ b 1f
+
+SDRAM_DRIVE_X8:
+ // Module is composed of x8 devices
+ mov r2, #0x02
+ cmp r2, r8 // do we have 2 banks???
+ beq SDRAM_DRIVE_2_BANK_X8
+
+ // Module is composed of 1 Bank of x8 devices
+ ldr r1, =SDCR_ADDR // point at SDRAM Control Register
+ ldr r2, =SDCR_1BANK_X8 // drive strength value
+ str r2, [r1] // set value in SDCR
+ b 1f
+
+SDRAM_DRIVE_2_BANK_X8:
+ // Module is composed of 2 Banks of x16 devices
+ ldr r1, =SDCR_ADDR // point at SDRAM Control Register
+ ldr r2, =SDCR_2BANK_X8 // drive strength value
+ str r2, [r1] // set value in SDCR
+ 1:
+
+
+ // Continue reading bytes if not done
+ cmp r6, r7
+ bne sdram_loop
+
+ b i2c_disable
+
+ bad_checksum:
+ HEX_DISPLAY r2, r3, DISPLAY_7, DISPLAY_7
+
+ i2c_error:
+ // hit the leds if an error occurred
+ HEX_DISPLAY r2, r3, DISPLAY_5, DISPLAY_5
+
+
+ i2c_disable:
+ // Disable I2C Interface Unit
+ ldr r1, [r11]
+ bic r1, r1, #ICR_ENB // Disable I2C unit
+ bic r1, r1, #ICR_SCLENB // Disable I2C clock generator
+ str r1, [r11] // Store to control register
+
+ // ADD THIS???:
+ // cmpobne 1, g9, test_init
+ // Skip SDRAM controller initialization if checksum test failed
+
+ // *** SDRAM setup ***
+
+ ldr r9, =MMR_BASE // get base of MMRs
+ ldr r0, =RAM_BASE // Program SDRAM Base Address register
+ str r0, [r9, #SDBR_OFF]
+
+ // Set up bank 0 register
+ CHECK_32MB:
+ ldr r1, =RAM_32MEG // do we have 32 MB banks?
+ cmp r10, r1
+ bne CHECK_64MB
+
+ ldr r0, =SBR_32MEG // Program SDRAM Bank0 Boundary register to 32 MB
+ b SET_BANK1
+
+ CHECK_64MB:
+ ldr r1, =RAM_64MEG // do we have 64 MB banks?
+ cmp r10, r1
+ bne CHECK_128MB
+
+ ldr r0, =SBR_64MEG // Program SDRAM Bank0 Boundary register to 64 MB
+ b SET_BANK1
+
+ CHECK_128MB:
+ ldr r1, =RAM_128MEG // do we have 128 MB banks?
+ cmp r10, r1
+ bne CHECK_256MB
+
+ ldr r0, =SBR_128MEG // Program SDRAM Bank0 Boundary register to 128 MB
+ b SET_BANK1
+
+ CHECK_256MB:
+ ldr r1, =RAM_256MEG // do we have 256 MB banks?
+ cmp r10, r1
+ bne dram_error
+
+ ldr r0, =SBR_256MEG // Program SDRAM Bank0 Boundary register to 64 MB
+ b SET_BANK1
+
+ SET_BANK1:
+ str r0, [r9, #SBR0_OFF] // store SBR0
+
+ ldr r2, =0x02
+ cmp r2, r8 // do we have 2 banks???
+ bne SDRAM_1_BANK
+
+ add r0, r0, r0 // SDRAM Bank1 Boundary register is double SBR0
+ str r0, [r9, #SBR1_OFF]
+ b END_DRAM_SIZE
+
+ SDRAM_1_BANK:
+ // SDRAM Bank1 Boundary register is same as SBR0 for 1 bank configuration
+ str r0, [r9, #SBR1_OFF]
+ b END_DRAM_SIZE
+
+ END_DRAM_SIZE:
+ b init_dram
+
+ dram_error:
+
+ HEX_DISPLAY r2, r3, DISPLAY_F, DISPLAY_F
+
+ init_dram:
+ ldr r0, =0 // turn off refresh
+ str r0, [r9, #RFR_OFF]
+
+ ldr r0, =MRS_NO_OP // Issue NOP cmd to SDRAM
+ str r0, [r9, #SDIR_OFF]
+ DELAY_FOR 0x4000, r0
+
+ ldr r0, =MRS_PRECHRG // Issue 1 Precharge all
+ str r0, [r9, #SDIR_OFF]
+ DELAY_FOR 0x4000, r0
+
+
+ ldr r0, =MRS_AUTO_RFRSH // Issue 1 Auto Refresh command
+ str r0, [r9, #SDIR_OFF]
+ DELAY_FOR 0x4000, r0
+
+
+ ldr r0, =MRS_AUTO_RFRSH
+ str r0, [r9, #SDIR_OFF] // Auto Refresh #1
+ str r0, [r9, #SDIR_OFF] // Auto Refresh #2
+ str r0, [r9, #SDIR_OFF] // Auto Refresh #3
+ str r0, [r9, #SDIR_OFF] // Auto Refresh #4
+ str r0, [r9, #SDIR_OFF] // Auto Refresh #5
+ str r0, [r9, #SDIR_OFF] // Auto Refresh #6
+ str r0, [r9, #SDIR_OFF] // Auto Refresh #7
+ str r0, [r9, #SDIR_OFF] // Auto Refresh #8
+
+ ldr r0, =MRS_CAS_LAT_2 // set the CAS latency
+ str r0, [r9, #SDIR_OFF]
+ DELAY_FOR 0x4000, r0
+
+ ldr r0, =MRS_NORM_OP // Issue a Normal Operation command
+ str r0, [r9, #SDIR_OFF]
+
+ ldr r0, =RFR_INIT_VAL // Program Refresh Rate register
+ str r0, [r9, #RFR_OFF]
+
+ // ldr r0, =(FLASH_BASE :AND: &FFFF0000)
+ // str r0, [r10, #FEBR1_OFF] ; Program Flash Bank1 Base Address register
+
+ // ldr r0, =(FLASH_SIZE :AND: &FFFF0000)
+ // str r0, [r10, #FBSR1_OFF] ; Program Flash Bank1 Size register
+
+ // ldr r0, =FWSR0_INIT_VAL
+ // str r0, [r10, #FWSR0_OFF] ; Program Flash Bank0 Wait State register
+
+ // ldr r0, =FWSR1_INIT_VAL
+ // str r0, [r10, #FWSR1_OFF] ; Program Flash Bank1 Wait State register
+
+ HEX_DISPLAY r0, r1, DISPLAY_0, DISPLAY_2
+
+ // begin initializing the i80310
+
+ // Enable access to all coprocessor registers
+ ldr r0, =0x2001 // enable access to all coprocessors
+ mcr p15, 0, r0, c15, c1, 0
+
+ mcr p15, 0, r0, c7, c10, 4 // drain the write & fill buffers
+ CPWAIT r0
+
+ mcr p15, 0, r0, c7, c7, 0 // flush Icache, Dcache and BTB
+ CPWAIT r0
+
+ mcr p15, 0, r0, c8, c7, 0 // flush instuction and data TLBs
+ CPWAIT r0
+
+ // Enable the Icache
+ mrc p15, 0, r0, c1, c0, 0
+ orr r0, r0, #MMU_Control_I
+ mcr p15, 0, r0, c1, c0, 0
+ CPWAIT r0
+
+ // Set the TTB register
+ ldr r0, =mmu_table
+ mcr p15, 0, r0, c2, c0, 0
+
+ // Enable permission checks in all domains
+ ldr r0, =0x55555555
+ mcr p15, 0, r0, c3, c0, 0
+
+ // Enable the MMU
+ mrc p15, 0, r0, c1, c0, 0
+ orr r0, r0, #MMU_Control_M
+ orr r0, r0, #MMU_Control_R
+ mcr p15, 0, r0, c1, c0, 0
+ CPWAIT r0
+
+ mcr p15, 0, r0, c7, c10, 4 // drain the write & fill buffers
+ CPWAIT r0
+
+ // Enable the Dcache
+ mrc p15, 0, r0, c1, c0, 0
+ orr r0, r0, #MMU_Control_C
+ mcr p15, 0, r0, c1, c0, 0
+ CPWAIT r0
+
+ // Initialize branch target buffer
+ BTB_INIT r0
+
+ // Battery Backup SDRAM Memory Test
+ // Move 4 byte Test Pattern into register prior to zeroing out
+ // contents of SDRAM locations
+ ldr r9, =SDRAM_BATTERY_TEST_BASE
+ ldr r10, [r9]
+
+ IOP310_EARLY_PCI_SETUP r0, r1, r4, 0x113C, 0x0700
+
+ // scrub/init SDRAM if enabled/present
+ ldr r11, =RAM_BASE // base address of SDRAM
+ mov r12, r4 // size of memory to scrub
+ mov r8,r4 // save DRAM size
+ mov r0, #0 // scrub with 0x0000:0000
+ mov r1, #0
+ mov r2, #0
+ mov r3, #0
+ mov r4, #0
+ mov r5, #0
+ mov r6, #0
+ mov r7, #0
+ 10: // fastScrubLoop
+ subs r12, r12, #32 // 32 bytes/line
+ stmia r11!, {r0-r7}
+ beq 15f
+ b 10b
+ 15:
+
+ // now copy 1st 4K page of flash into first 4K of RAM.
+ ldr r1, =RAM_BASE // base address of SDRAM
+ mov r2, #0xd0000000 // alias for first 1M of flash
+ mov r3, #0x1000
+ 16:
+ ldr r4, [r2]
+ add r2, r2, #4
+ str r4, [r1]
+ add r1, r1, #4
+ subs r3, r3, #4
+ bne 16b
+
+ // Battery Backup SDRAM Memory Test
+ // Store 4 byte Test Pattern back into memory
+ str r10, [r9, #0x0]
+
+ HEX_DISPLAY r0, r1, DISPLAY_1, DISPLAY_0
+
+ // clean/drain/flush the main Dcache
+ mov r1, #DCACHE_FLUSH_AREA // use a CACHEABLE area of
+ // the memory map above SDRAM
+ mov r0, #1024 // number of lines in the Dcache
+ 20:
+ mcr p15, 0, r1, c7, c2, 5 // allocate a Dcache line
+ add r1, r1, #32 // increment the address to
+ // the next cache line
+ subs r0, r0, #1 // decrement the loop count
+ bne 20b
+
+ HEX_DISPLAY r0, r1, DISPLAY_9, DISPLAY_9
+
+ // clean/drain/flush the mini Dcache
+ ldr r2, =(DCACHE_FLUSH_AREA+DCACHE_SIZE) // use a CACHEABLE area of
+ // the memory map above SDRAM
+ mov r0, #64 // number of lines in the mini Dcache
+ 21:
+ mcr p15, 0, r2, c7, c2, 5 // allocate a Dcache line
+ add r2, r2, #32 // increment the address to
+ // the next cache line
+ subs r0, r0, #1 // decrement the loop count
+ bne 21b
+
+ mcr p15, 0, r0, c7, c6, 0 // flush Dcache
+ CPWAIT r0
+
+ HEX_DISPLAY r0, r1, DISPLAY_7, DISPLAY_7
+
+ mcr p15, 0, r0, c7, c10, 4 // drain the write & fill buffers
+ CPWAIT r0
+
+ // enable ECC stuff here
+ mcr p15, 0, r0, c7, c10, 4 //
+ CPWAIT r0
+
+ mrc p13, 0, r0, c0, c1, 0 // BCU_WAIT --> wait until the BCU isn't busy
+ submi pc, pc, #0xc
+
+ checkme: // add in multi-bit error reporting */
+ mrc p13, 0, r0, c0, c1, 0 // disable ECC
+ and r0, r0, #(-1-8)
+ mcr p13, 0, r0, c0, c1, 0
+ orr r0, r0, #6 // enable single-bit correction,
+ mcr p13, 0, r0, c0, c1, 0 // multi-bit detection
+ orr r0, r0, #8 // enable ECC
+ mcr p13, 0, r0, c0, c1, 0
+
+ mrc p13, 0, r0, c0, c1, 0 // BCU_WAIT --> wait until the BCU isn't busy
+ submi pc, pc, #0xc
+
+ // Enable ECC circuitry in Yavapai
+ ldr r1, =ECCR_ADDR
+ mov r0, #0x6 // Enable single bit ECC Correction (Reporting Enabled)
+ str r0, [r1, #0]
+
+ HEX_DISPLAY r0, r1, DISPLAY_6, DISPLAY_6
+
+#if 1
+ mov r0, #0x1000000
+ 1: subs r0,r0,#1
+ bne 1b
+#endif
+ // Save SDRAM size
+ ldr r1, =hal_dram_size /* [see hal_intr.h] */
+ str r8, [r1]
+
+ // Move mmu tables into RAM so page table walks by the cpu
+ // don't interfere with FLASH programming.
+ ldr r0, =mmu_table
+ mov r4, r0
+ add r2, r0, #0x4800 // End of tables
+ mov r1, #RAM_BASE
+ orr r1, r1, #0x4000 // RAM tables
+ mov r5, r1
+
+ // first, fixup physical address to second level
+ // table used to map first 1MB of flash.
+ ldr r3, [r0], #4
+ sub r3, r3, r4
+ add r3, r3, r5
+ str r3, [r1], #4
+ // everything else can go as-is
+ 1:
+ ldr r3, [r0], #4
+ str r3, [r1], #4
+ cmp r0, r2
+ bne 1b
+
+ // go back and fixup physical address to second level
+ // table used to map first 1MB of SDRAM.
+ add r1, r5, #(0xA00 * 4)
+ ldr r0, [r1] // entry for first 1MB of DRAM
+ sub r0, r0, r4
+ add r0, r0, r5
+ str r0, [r1] // store it back
+
+ // Flush the cache
+ mov r0, #DCACHE_FLUSH_AREA /* cache flush region */
+ add r1, r0, #0x8000 /* 32KB cache */
+ 667:
+ mcr p15,0,r0,c7,c2,5 /* allocate a line */
+ add r0, r0, #32 /* 32 bytes/line */
+ teq r1, r0
+ bne 667b
+ mcr p15,0,r0,c7,c6,0 /* invalidate data cache */
+ /* cpuwait */
+ mrc p15,0,r1,c2,c0,0 /* arbitrary read */
+ mov r1,r1
+ sub pc,pc,#4
+ mcr p15,0,r0,c7,c10,4
+ /* cpuwait */
+ mrc p15,0,r1,c2,c0,0 /* arbitrary read */
+ mov r1,r1
+ sub pc,pc,#4
+ nop
+
+ HEX_DISPLAY r0, r1, DISPLAY_5, DISPLAY_2
+
+ // Set the TTB register to DRAM mmu_table
+ mov r0, r5
+ mov r1, #0
+ mcr p15, 0, r1, c7, c5, 0 // flush I cache
+ mcr p15, 0, r1, c7, c10, 4 // drain WB
+ mcr p15, 0, r0, c2, c0, 0 // load page table pointer
+ mcr p15, 0, r1, c8, c7, 0 // flush TLBs
+ CPWAIT r0
+
+ // Interrupt init
+ mov r0, #0 // enable no sources
+ mcr p13,0,r0,c0,c0,0 // write to INTCTL
+ // Steer both BCU and PMU to IRQ
+ mcr p13,0,r0,c8,c0,0 // write to INTSTR
+
+ HEX_DISPLAY r0, r1, DISPLAY_0, DISPLAY_0
+
+ .endm // _platform_setup1
+
+
+#define PLATFORM_VECTORS _platform_vectors
+ .macro _platform_vectors
+ .globl _80312_EMISR
+_80312_EMISR: .long 0 // Companion chip "clear-on-read" interrupt status
+ // register for the performance monitor unit.
+ .endm
+
+/*---------------------------------------------------------------------------*/
+/* end of hal_platform_setup.h */
+#endif /* CYGONCE_HAL_PLATFORM_SETUP_H */
+
diff --git a/ecos/packages/hal/arm/xscale/npwr/current/include/pkgconf/mlt_arm_xscale_npwr_ram.h b/ecos/packages/hal/arm/xscale/npwr/current/include/pkgconf/mlt_arm_xscale_npwr_ram.h
new file mode 100644
index 0000000..3f6b2e6
--- /dev/null
+++ b/ecos/packages/hal/arm/xscale/npwr/current/include/pkgconf/mlt_arm_xscale_npwr_ram.h
@@ -0,0 +1,22 @@
+// eCos memory layout - Tue Sep 05 16:58:21 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 (0xA0000000)
+#define CYGMEM_REGION_ram_SIZE (0x2000000)
+#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 (0xa2000000 - (size_t) CYG_LABEL_NAME (__heap1))
+#ifndef __ASSEMBLER__
+extern char CYG_LABEL_NAME (__pci_window) [];
+#endif
+//#define CYGMEM_SECTION_pci_window (CYG_LABEL_NAME (__pci_window))
+//#define CYGMEM_SECTION_pci_window_SIZE (0x100000)
diff --git a/ecos/packages/hal/arm/xscale/npwr/current/include/pkgconf/mlt_arm_xscale_npwr_ram.ldi b/ecos/packages/hal/arm/xscale/npwr/current/include/pkgconf/mlt_arm_xscale_npwr_ram.ldi
new file mode 100644
index 0000000..92f846b
--- /dev/null
+++ b/ecos/packages/hal/arm/xscale/npwr/current/include/pkgconf/mlt_arm_xscale_npwr_ram.ldi
@@ -0,0 +1,29 @@
+// eCos memory layout - Tue Sep 05 16:58:21 2000
+
+// This is a generated file - do not edit
+
+#include <cyg/infra/cyg_type.inc>
+
+MEMORY
+{
+ vrom : ORIGIN = 0x00000000, LENGTH = 0x1000
+ ram : ORIGIN = 0xA0000000, LENGTH = 0x2000000
+}
+
+SECTIONS
+{
+ SECTIONS_BEGIN
+ SECTION_fixed_vectors (vrom, 0x20, LMA_EQ_VMA) // virtual ROM addr, but really in physical ram
+ SECTION_rom_vectors (ram, 0xa0020000, 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)
+ CYG_LABEL_DEFN(__heap1) = ALIGN (0x8);
+// CYG_LABEL_DEFN(__pci_window) = 0xf00000; . = CYG_LABEL_DEFN(__pci_window) + 0x100000;
+ SECTIONS_END
+}
diff --git a/ecos/packages/hal/arm/xscale/npwr/current/include/pkgconf/mlt_arm_xscale_npwr_ram.mlt b/ecos/packages/hal/arm/xscale/npwr/current/include/pkgconf/mlt_arm_xscale_npwr_ram.mlt
new file mode 100644
index 0000000..2b2e297
--- /dev/null
+++ b/ecos/packages/hal/arm/xscale/npwr/current/include/pkgconf/mlt_arm_xscale_npwr_ram.mlt
@@ -0,0 +1,14 @@
+version 0
+region ram 0 1000000 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 20000 20000 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 1 0 1 heap1 heap1 !
+section heap1 0 8 0 0 0 0 0 0 !
+
diff --git a/ecos/packages/hal/arm/xscale/npwr/current/include/pkgconf/mlt_arm_xscale_npwr_rom.h b/ecos/packages/hal/arm/xscale/npwr/current/include/pkgconf/mlt_arm_xscale_npwr_rom.h
new file mode 100644
index 0000000..34d5ea9
--- /dev/null
+++ b/ecos/packages/hal/arm/xscale/npwr/current/include/pkgconf/mlt_arm_xscale_npwr_rom.h
@@ -0,0 +1,25 @@
+// eCos memory layout - Tue Sep 05 18:46:49 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 (0xA0000000)
+#define CYGMEM_REGION_ram_SIZE (0x2000000)
+#define CYGMEM_REGION_ram_ATTR (CYGMEM_REGION_ATTR_R | CYGMEM_REGION_ATTR_W)
+#define CYGMEM_REGION_rom (0x00000000)
+#define CYGMEM_REGION_rom_SIZE (0x800000)
+#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 (0xa2000000 - (size_t) CYG_LABEL_NAME (__heap1))
+#ifndef __ASSEMBLER__
+extern char CYG_LABEL_NAME (__pci_window) [];
+#endif
+// #define CYGMEM_SECTION_pci_window (CYG_LABEL_NAME (__pci_window))
+// #define CYGMEM_SECTION_pci_window_SIZE (0x100000)
diff --git a/ecos/packages/hal/arm/xscale/npwr/current/include/pkgconf/mlt_arm_xscale_npwr_rom.ldi b/ecos/packages/hal/arm/xscale/npwr/current/include/pkgconf/mlt_arm_xscale_npwr_rom.ldi
new file mode 100644
index 0000000..d4dae73
--- /dev/null
+++ b/ecos/packages/hal/arm/xscale/npwr/current/include/pkgconf/mlt_arm_xscale_npwr_rom.ldi
@@ -0,0 +1,29 @@
+// eCos memory layout - Tue Sep 05 18:46:49 2000
+
+// This is a generated file - do not edit
+
+#include <cyg/infra/cyg_type.inc>
+
+MEMORY
+{
+ ram : ORIGIN = 0xA0000000, LENGTH = 0x2000000
+ rom : ORIGIN = 0x00000000, LENGTH = 0x800000
+}
+
+SECTIONS
+{
+ SECTIONS_BEGIN
+ SECTION_rom_vectors (ram, 0xA0000000, AT(0x00000000)) // vector page gets remapped from ROM to RAM
+ SECTION_text (rom, 0x00002000, 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 (rom, 0x20, LMA_EQ_VMA)
+ SECTION_data (ram, 0xA000A000, FOLLOWING (.gcc_except_table))
+ SECTION_bss (ram, ALIGN (0x4), LMA_EQ_VMA)
+ CYG_LABEL_DEFN(__heap1) = ALIGN (0x8);
+// CYG_LABEL_DEFN(__pci_window) = 0xf00000; . = CYG_LABEL_DEFN(__pci_window) + 0x100000;
+ SECTIONS_END
+}
diff --git a/ecos/packages/hal/arm/xscale/npwr/current/include/pkgconf/mlt_arm_xscale_npwr_rom.mlt b/ecos/packages/hal/arm/xscale/npwr/current/include/pkgconf/mlt_arm_xscale_npwr_rom.mlt
new file mode 100644
index 0000000..8cd195d
--- /dev/null
+++ b/ecos/packages/hal/arm/xscale/npwr/current/include/pkgconf/mlt_arm_xscale_npwr_rom.mlt
@@ -0,0 +1,14 @@
+version 0
+region ram a0000000 2000000 0 !
+region rom 00000000 800000 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 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 00000000 00000000 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 !
diff --git a/ecos/packages/hal/arm/xscale/npwr/current/include/plf_io.h b/ecos/packages/hal/arm/xscale/npwr/current/include/plf_io.h
new file mode 100644
index 0000000..1cc6cc3
--- /dev/null
+++ b/ecos/packages/hal/arm/xscale/npwr/current/include/plf_io.h
@@ -0,0 +1,75 @@
+#ifndef CYGONCE_PLF_IO_H
+#define CYGONCE_PLF_IO_H
+
+//=============================================================================
+//
+// plf_io.h
+//
+// Platform specific IO support
+//
+//=============================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): msalter
+// Contributors: hmt, jskov, msalter, gthomas
+// Date: 2002-10-01
+// Purpose: NPWR PCI IO support macros
+// Description:
+// Usage: #include <cyg/hal/plf_io.h>
+//
+//####DESCRIPTIONEND####
+//
+//=============================================================================
+
+#define HAL_PCI_TRANSLATE_INTERRUPT( __bus, __devfn, __vec, __valid) \
+ CYG_MACRO_START \
+ cyg_uint32 __dev = CYG_PCI_DEV_GET_DEV(__devfn); \
+ cyg_uint32 __fn = CYG_PCI_DEV_GET_FN(__devfn); \
+ __valid = false; \
+ if (__bus == 1 && __fn == 0) { \
+ if (__dev == 1) { \
+ __vec = CYGNUM_HAL_INTERRUPT_ETH0; \
+ __valid = true; \
+ } \
+ if (__dev == 2) { \
+ __vec = CYGNUM_HAL_INTERRUPT_ETH1; \
+ __valid = true; \
+ } \
+ } \
+ CYG_MACRO_END
+
+//-----------------------------------------------------------------------------
+// end of plf_io.h
+#endif // CYGONCE_PLF_IO_H
diff --git a/ecos/packages/hal/arm/xscale/npwr/current/src/npwr_misc.c b/ecos/packages/hal/arm/xscale/npwr/current/src/npwr_misc.c
new file mode 100644
index 0000000..3dbbb50
--- /dev/null
+++ b/ecos/packages/hal/arm/xscale/npwr/current/src/npwr_misc.c
@@ -0,0 +1,80 @@
+//==========================================================================
+//
+// npwr_misc.c
+//
+// HAL misc board support code for NPWR Linux Engine
+//
+//==========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//==========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): gthomas
+// Contributors: gthomas
+// Date: 2002-10-01
+// 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 CYGHWR_MEMORY_LAYOUT_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_stub.h> // Stub macros
+#include <cyg/hal/hal_if.h> // calling interface API
+#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_iop310.h> // Hardware definitions
+#include <cyg/infra/diag.h> // diag_printf
+#include <cyg/hal/drv_api.h> // CYG_ISR_HANDLED
+
+// Some initialization has already been done before we get here.
+
+void hal_plf_hardware_init(void)
+{
+ // Put any platform specific initialization here
+}
+
+/*------------------------------------------------------------------------*/
+// EOF npwr_misc.c
diff --git a/ecos/packages/hal/arm/xscale/picasso/current/ChangeLog b/ecos/packages/hal/arm/xscale/picasso/current/ChangeLog
new file mode 100644
index 0000000..e9e2acf
--- /dev/null
+++ b/ecos/packages/hal/arm/xscale/picasso/current/ChangeLog
@@ -0,0 +1,82 @@
+2009-10-16 John Dallaway <john@dallaway.org.uk>
+
+ * cdl/hal_arm_xscale_picasso.cdl: Parent under
+ CYGPKG_HAL_ARM_XSCALE_PXA2X0.
+
+2009-01-31 Bart Veer <bartv@ecoscentric.com>
+
+ * cdl/hal_arm_xscale_picasso.cdl: update compiler flags for gcc 4.x
+
+2009-01-24 Bart Veer <bartv@ecoscentric.com>
+
+ * cdl/hal_arm_xscale_picasso.cdl: switch from arm-elf-gcc to
+ arm-eabi-gcc.
+
+2009-01-24 Bart Veer <bartv@ecoscentric.com>
+
+ * src/vga_support.c: fix build problem with latest toolchains.
+
+2003-09-21 Gary Thomas <gary@mlbassoc.com>
+
+ * misc/redboot_RAM.ecm:
+ * misc/redboot_ROM.ecm: Adjust for changes in RedBoot
+ template - DNS now must be enabled manually.
+
+2003-09-20 Gary Thomas <gary@mlbassoc.com>
+
+ * src/picasso_ide.c: IDE init needs to return number of controllers found.
+
+2003-08-22 Gary Thomas <gary@mind.be>
+
+ * src/xilinx-load.c:
+ * src/vga_support.c:
+ * src/picasso_pci_bitstream.h:
+ * src/picasso_pci.c:
+ * src/picasso_misc.c:
+ * src/picasso_ide.c:
+ * src/font.h:
+ * src/banner.xpm:
+ * misc/redboot_ROM.ecm:
+ * misc/redboot_RAM.ecm:
+ * include/pkgconf/mlt_arm_xscale_picasso_rom.mlt:
+ * include/pkgconf/mlt_arm_xscale_picasso_rom.ldi:
+ * include/pkgconf/mlt_arm_xscale_picasso_rom.h:
+ * include/pkgconf/mlt_arm_xscale_picasso_ram.mlt:
+ * include/pkgconf/mlt_arm_xscale_picasso_ram.ldi:
+ * include/pkgconf/mlt_arm_xscale_picasso_ram.h:
+ * include/vga_support.h:
+ * include/plx.h:
+ * include/plf_mmap.h:
+ * include/plf_io.h:
+ * include/picasso.h:
+ * include/hal_plf_ints.h:
+ * include/hal_platform_setup.h:
+ * cdl/hal_arm_xscale_picasso.cdl:
+ New package - support for NMI uEngine based "picasso" board
+
+2003-06-04 Gary Thomas <gary@mind.be>
+
+ * src/xilinx-load.c: Improve feedback during FPGA downloads.
+//===========================================================================
+// ####GPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002, 2009 Free Software Foundation, Inc.
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 2 or (at your option) any
+// later version.
+//
+// This program is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the
+// Free Software Foundation, Inc., 51 Franklin Street,
+// Fifth Floor, Boston, MA 02110-1301, USA.
+// -------------------------------------------
+// ####GPLCOPYRIGHTEND####
+//===========================================================================
diff --git a/ecos/packages/hal/arm/xscale/picasso/current/cdl/hal_arm_xscale_picasso.cdl b/ecos/packages/hal/arm/xscale/picasso/current/cdl/hal_arm_xscale_picasso.cdl
new file mode 100644
index 0000000..d585252
--- /dev/null
+++ b/ecos/packages/hal/arm/xscale/picasso/current/cdl/hal_arm_xscale_picasso.cdl
@@ -0,0 +1,421 @@
+# ====================================================================
+#
+# hal_arm_xscale_picasso.cdl
+#
+# NMI uEngine picasso platform HAL package configuration data
+#
+# ====================================================================
+## ####ECOSGPLCOPYRIGHTBEGIN####
+## -------------------------------------------
+## This file is part of eCos, the Embedded Configurable Operating System.
+## Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2009 Free Software Foundation, Inc.
+##
+## eCos is free software; you can redistribute it and/or modify it under
+## the terms of the GNU General Public License as published by the Free
+## Software Foundation; either version 2 or (at your option) any later
+## version.
+##
+## eCos is distributed in the hope that it will be useful, but WITHOUT
+## ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+## FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+## for more details.
+##
+## You should have received a copy of the GNU General Public License
+## along with eCos; if not, write to the Free Software Foundation, Inc.,
+## 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+##
+## As a special exception, if other files instantiate templates or use
+## macros or inline functions from this file, or you compile this file
+## and link it with other works to produce a work based on this file,
+## this file does not by itself cause the resulting work to be covered by
+## the GNU General Public License. However the source code for this file
+## must still be made available in accordance with section (3) of the GNU
+## General Public License v2.
+##
+## This exception does not invalidate any other reasons why a work based
+## on this file might be covered by the GNU General Public License.
+## -------------------------------------------
+## ####ECOSGPLCOPYRIGHTEND####
+# ====================================================================
+######DESCRIPTIONBEGIN####
+#
+# Author(s): msalter
+# Contributors: hmt
+# Date: 2001-12-03
+#
+#####DESCRIPTIONEND####
+#
+# ====================================================================
+cdl_package CYGPKG_HAL_ARM_XSCALE_PICASSO {
+ display "uEngine 250"
+ parent CYGPKG_HAL_ARM_XSCALE_PXA2X0
+ hardware
+ include_dir cyg/hal
+ define_header hal_arm_xscale_picasso.h
+ description "
+ This HAL platform package provides
+ support for the NMI uPCI with a uEngine picasso CPU board."
+
+ compile picasso_misc.c picasso_pci.c picasso_ide.c
+
+ implements CYGINT_HAL_DEBUG_GDB_STUBS
+ implements CYGINT_HAL_DEBUG_GDB_STUBS_BREAK
+ implements CYGINT_HAL_VIRTUAL_VECTOR_SUPPORT
+ # implements CYGINT_HAL_ARM_MEM_REAL_REGION_TOP
+ implements CYGINT_HAL_VIRTUAL_VECTOR_COMM_BAUD_SUPPORT
+ implements CYGINT_HAL_PLF_IF_IDE
+ implements CYGHWR_HAL_ARM_PXA2X0_BTUART
+
+ 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_xscale_pxa2x0.h>"
+ puts $::cdl_system_header "#define CYGBLD_HAL_PLATFORM_H <pkgconf/hal_arm_xscale_picasso.h>"
+ puts $::cdl_header "#define CYGBLD_HAL_PLF_INTS_H <cyg/hal/hal_plf_ints.h>"
+ puts $::cdl_header "#define HAL_PLATFORM_CPU \"XScale PXA250\""
+ puts $::cdl_header "#define HAL_PLATFORM_BOARD \"NMI uEngine picasso\""
+ puts $::cdl_header "#define HAL_PLATFORM_EXTRA \"\""
+ puts $::cdl_header "#define HAL_PLATFORM_MACHINE_TYPE 257"
+ puts $::cdl_header "#define CYGHWR_REDBOOT_ARM_TRAMPOLINE_ADDRESS 0x00001f00"
+ }
+
+ cdl_component CYG_HAL_STARTUP {
+ display "Startup type"
+ flavor data
+ default_value {"RAM"}
+ legal_values {"RAM" "ROM" "ROMRAM"}
+ no_define
+ define -file system.h CYG_HAL_STARTUP
+ description "
+ When targeting the picasso 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 onboard
+ debug software such as Angel or eCos GDB stubs. Select 'ROM'
+ when building a stand-alone application which will be put
+ into ROM. 'ROMRAM' will build a version suitable for system
+ startup code (in FLASH/ROM), which is immediately copied into
+ RAM for improved performance."
+ }
+
+ cdl_component CYGSEM_PICASSO_VGA_SUPPORT {
+ display "Support LCD"
+ flavor bool
+ default_value 1
+ compile vga_support.c
+ description "
+ Enabling this option will enable the use the VGA/CRT as a
+ simple framebuffer, suitable for use with a windowing
+ package."
+
+ cdl_component CYGSEM_PICASSO_VGA_COMM {
+ display "Support VGA/keyboard for comminication channel"
+ active_if CYGPKG_REDBOOT
+ flavor bool
+ default_value 1
+ description "
+ Enabling this option will use the LCD/CRT and keyboard for a
+ communications channel, suitable for RedBoot, etc."
+
+ cdl_option CYGNUM_PICASSO_VGA_COMM_FONT_SIZE {
+ display "VGA console font size"
+ flavor data
+ legal_values 8 16
+ default_value 16
+ description "
+ This option selects which size font, and ultimately the
+ number of displayable characters, to be used on the VGA."
+ }
+
+ cdl_option CYGOPT_PICASSO_VGA_COMM_LOGO {
+ display "Logo location"
+ flavor booldata
+ legal_values { "TOP" "BOTTOM" }
+ default_value { "TOP" }
+ description "
+ Use this option to control where the logo is placed
+ on the VGA/CRT screen."
+ }
+ }
+ }
+
+ cdl_option CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_BAUD {
+ display "Diagnostic serial port baud rate"
+ flavor data
+ legal_values 9600 19200 38400 57600 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 57600 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 1+CYGSEM_PICASSO_VGA_COMM
+ description "
+ Channel 0 is the only serial port on the board."
+ }
+
+ cdl_option CYGNUM_HAL_VIRTUAL_VECTOR_DEBUG_CHANNEL {
+ display "Debug serial port"
+ active_if CYGPRI_HAL_VIRTUAL_VECTOR_DEBUG_CHANNEL_CONFIGURABLE
+ flavor data
+ legal_values 0 to CYGNUM_HAL_VIRTUAL_VECTOR_COMM_CHANNELS-1
+ default_value 0
+ description "
+ The PICASSO has only one serial port."
+ }
+
+ 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 0
+ }
+
+ cdl_option CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL {
+ display "Diagnostic serial port"
+ active_if CYGPRI_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_CONFIGURABLE
+ flavor data
+ legal_values 0 to CYGNUM_HAL_VIRTUAL_VECTOR_COMM_CHANNELS-1
+ default_value CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_DEFAULT
+ description "
+ The PICASSO has only one serial port."
+ }
+
+ cdl_component CYGSEM_HAL_LOAD_FPGAS {
+ display "Download bitstreams to various FPGA devices"
+ default_value { CYG_HAL_STARTUP != "RAM" }
+ requires CYGPKG_COMPRESS_ZLIB
+ compile xilinx-load.c
+ description "
+ Enabling this option will include code to download new
+ firmware (bitstream data) to various FPGA devices contained
+ within the system. Sub-options control which devices are
+ downloaded, etc."
+
+ cdl_option CYGSEM_HAL_LOAD_PCI_FPGA {
+ display "Download firmware for PCI controller"
+ active_if CYGPKG_IO_PCI
+ default_value 1
+ description "
+ This option will cause the firmware for the PCI controller
+ to be downloaded during system initialization."
+ }
+ }
+
+ 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-eabi"}
+ 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 { CYGBLD_GLOBAL_WARNFLAGS . CYGBLD_ARCH_CFLAGS .
+ "-mcpu=xscale -g -O2 -ffunction-sections -fdata-sections -fno-rtti -fno-exceptions -mapcs-frame -fno-builtin" }
+ 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 { CYGBLD_ARCH_LDFLAGS . "-mcpu=xscale -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" || CYG_HAL_STARTUP == "ROMRAM" }
+ 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) --remove-section=.fixed_vectors -O binary $< $@
+ }
+ }
+ }
+
+ cdl_component CYGPKG_HAL_ARM_XSCALE_PICASSO_OPTIONS {
+ display "NMI uEngine picasso 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_XSCALE_PICASSO_CFLAGS_ADD {
+ display "Additional compiler flags"
+ flavor data
+ no_define
+ default_value { "" }
+ description "
+ This option modifies the set of compiler flags for
+ building the XScale PICASSO HAL. These flags are used in addition
+ to the set of global flags."
+ }
+
+ cdl_option CYGPKG_HAL_ARM_XSCALE_PICASSO_CFLAGS_REMOVE {
+ display "Suppressed compiler flags"
+ flavor data
+ no_define
+ default_value { "" }
+ description "
+ This option modifies the set of compiler flags for
+ building the XScale PICASSO HAL. These flags are removed from
+ the set of global flags if present."
+ }
+
+ cdl_option CYGNUM_HAL_BREAKPOINT_LIST_SIZE {
+ display "Number of breakpoints supported by the HAL."
+ flavor data
+ default_value 32
+ description "
+ This option determines the number of breakpoints supported by the HAL."
+ }
+ }
+
+ cdl_component CYGHWR_MEMORY_LAYOUT {
+ display "Memory layout"
+ flavor data
+ no_define
+ calculated { CYG_HAL_STARTUP == "RAM" ? "arm_xscale_picasso_ram" : \
+ CYG_HAL_STARTUP == "ROMRAM" ? "arm_xscale_picasso.romram" : \
+ CYG_HAL_STARTUP == "ROM" ? "arm_xscale_picasso_rom" : "BOGUS.mlt" }
+
+ 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_xscale_picasso_ram.ldi>" : \
+ CYG_HAL_STARTUP == "ROMRAM" ? "<pkgconf/mlt_arm_xscale_picasso_romram.ldi>" : \
+ CYG_HAL_STARTUP == "ROM" ? "<pkgconf/mlt_arm_xscale_picasso_rom.ldi>" : "BOGUS.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_xscale_picasso_ram.h>" : \
+ CYG_HAL_STARTUP == "ROMRAM" ? "<pkgconf/mlt_arm_xscale_picasso_romram.h>" : \
+ CYG_HAL_STARTUP == "ROM" ? "<pkgconf/mlt_arm_xscale_picasso_rom.h>" : "BOGUS.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" || CYG_HAL_STARTUP == "ROMRAM" }
+ 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 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_REDBOOT_HAL_OPTIONS {
+ display "Redboot HAL options"
+ flavor none
+ no_define
+ parent CYGPKG_REDBOOT
+ active_if CYGPKG_REDBOOT
+ description "
+ This option lists the target's requirements for a valid Redboot
+ configuration."
+
+ # compile -library=libextras.a redboot_cmds.c
+
+ 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."
+
+ # compile -library=libextras.a redboot_cmds.c
+
+ make -priority 325 {
+ <PREFIX>/bin/redboot.bin : <PREFIX>/bin/redboot.elf
+ $(OBJCOPY) --strip-debug $< $(@:.bin=.img)
+ $(OBJCOPY) -O srec $< $(@:.bin=.srec)
+ $(OBJCOPY) -O binary $< $@
+ }
+ }
+ }
+
+}
diff --git a/ecos/packages/hal/arm/xscale/picasso/current/include/hal_platform_setup.h b/ecos/packages/hal/arm/xscale/picasso/current/include/hal_platform_setup.h
new file mode 100644
index 0000000..eb0d7b9
--- /dev/null
+++ b/ecos/packages/hal/arm/xscale/picasso/current/include/hal_platform_setup.h
@@ -0,0 +1,310 @@
+#ifndef CYGONCE_HAL_PLATFORM_SETUP_H
+#define CYGONCE_HAL_PLATFORM_SETUP_H
+
+/*=============================================================================
+//
+// hal_platform_setup.h
+//
+// Platform specific support for HAL (assembly code)
+//
+//=============================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================*/
+
+#include <pkgconf/system.h> // System-wide configuration info
+#include CYGBLD_HAL_VARIANT_H // Variant specific configuration
+#include CYGBLD_HAL_PLATFORM_H // Platform specific configuration
+#include <cyg/hal/hal_pxa2x0.h> // Variant specific hardware definitions
+#include <cyg/hal/hal_mmu.h> // MMU definitions
+#include <cyg/hal/hal_mm.h> // more MMU definitions
+#include <cyg/hal/picasso.h> // Platform specific hardware definitions
+#include <cyg/hal/hal_spd.h>
+
+#define MDCNFG_VALUE 0x03001BC9
+// #define MDCNFG_VALUE 0x00001BC9
+#define MDMRS_VALUE 0x00000000
+#define MDREFR_VALUE_1 0x00494030
+#define MDREFR_VALUE_2 0x00094030
+#define MDREFR_VALUE_3 0x0009C030
+
+#define GPCR0_VALUE 0xFFFFFFFF
+#define GPCR1_VALUE 0xFFFFFFFF
+#define GPCR2_VALUE 0xFFFFFFFF
+
+#define GPSR0_VALUE 0x00028000
+#define GPSR1_VALUE 0x00002122
+#define GPSR2_VALUE 0x0001C000
+
+#define GPDR0_VALUE 0x03E3A080
+#define GPDR1_VALUE 0x00FFA963
+#define GPDR2_VALUE 0x0001C000
+
+#define GAFR0_L_VALUE 0x88000000
+#define GAFR0_U_VALUE 0x001A8010
+#define GAFR1_L_VALUE 0x90900008
+#define GAFR1_U_VALUE 0x0005AAAA
+#define GAFR2_L_VALUE 0xA0000000
+#define GAFR2_U_VALUE 0x00000002
+
+#define PSSR_VALUE 0x20
+#define MSC0_VALUE_NONBURST 0x2FD0
+#define MSC0_VALUE_BURST 0x22D2
+
+#if defined(CYG_HAL_STARTUP_ROM) || defined(CYG_HAL_STARTUP_ROMRAM)
+#define PLATFORM_SETUP1 _platform_setup1
+// #define PLATFORM_EXTRAS <cyg/hal/hal_platform_extras.h>
+#define CYGHWR_HAL_ARM_HAS_MMU
+
+// This macro represents the initial startup code for the platform
+ .macro _platform_setup1
+ // This is where we wind up immediately after reset. At this point, we
+ // are executing from the boot address (0x00000000), not the eventual
+ // flash address. Do some basic setup using position independent code
+ // then switch to real flash address
+
+// FIXME FIXME FIXME FIXME FIXME FIXME FIXME FIXME FIXME
+// This is a quick and dirty workaround to an apparent gas/ld
+// bug. The computed UNMAPPED_PTR(reset_vector) is off by 0x20.
+ .rept 0x20/4
+ nop
+ .endr
+// FIXME FIXME FIXME FIXME FIXME FIXME FIXME FIXME FIXME
+
+
+ // Set the direction of the LED GPIO's to 'output'
+ // This will disable the LED's (which are on at boot-time, so we
+ // can see we have safely landed here.
+ ldr r1, =PXA2X0_GPDR0
+ ldr r2, =0x00600000
+ str r2, [r1]
+
+
+ // Disable interrupts, by setting the Interrupt Mask Registers to all 0's
+ ldr r1,=PXA2X0_ICMR
+ mov r0,#0
+ str r0,[r1]
+
+ // disable MMU
+ mov r0, #0x0
+ mcr p15, 0, r0, c1, c0, 0
+
+ // flush TLB
+ mov r0, #0x0
+ mcr p15, 0, r0, c8, c7, 0 // Flush TLB
+
+ // flush I&D caches and BTB
+ mov r0, #0x0
+ mcr p15, 0, r0, c7, c7, 0 // Flush caches
+
+ CPWAIT r0
+
+ // Enables access to coprocessor 0 (The only extra coprocessor on the PXA250)
+ ldr r0, =0x00000001
+ mcr p15, 0, r0, c15, c1, 0
+
+ // Disable the IRQ's and FIQ's in the program status register and
+ // enable supervisor mode
+ ldr r0,=(CPSR_IRQ_DISABLE|CPSR_FIQ_DISABLE|CPSR_SUPERVISOR_MODE)
+ msr cpsr, r0
+
+ // Set TURBO mode
+
+ ldr r2, =0x00000321
+ ldr r1, =PXA2X0_CCCR
+ str r2,[r1]
+
+ ldr r1, =0x00000003
+ mcr p14, 0, r1, c6, c0, 0
+
+ // Set-up memory according to NMI specs
+
+ ldr r1,=PXA2X0_RAM_BANK0_BASE
+ ldr r2,[r1]
+ ldr r2,[r1]
+ ldr r2,[r1]
+ ldr r2,[r1]
+ ldr r2,[r1]
+ ldr r2,[r1]
+ ldr r2,[r1]
+ ldr r2,[r1]
+
+ // Set DRAM Configuration Value
+ ldr r1,=PXA2X0_MDCNFG
+ ldr r2,=MDCNFG_VALUE
+ str r2,[r1]
+
+ // Set MDMRS
+ ldr r1,=PXA2X0_MDMRS
+ ldr r2,=MDMRS_VALUE
+ str r2,[r1]
+
+ // Set Refresh Values
+ ldr r1,=PXA2X0_MDREFR
+ ldr r2,=MDREFR_VALUE_1
+ str r2,[r1]
+
+ ldr r1,=PXA2X0_MDREFR
+ ldr r2,=MDREFR_VALUE_2
+ str r2,[r1]
+
+ ldr r1,=PXA2X0_MDREFR
+ ldr r2,=MDREFR_VALUE_3
+ str r2,[r1]
+
+ // Set Static memory registers
+ ldr r1,=PXA2X0_MSC0
+ ldr r2,=MSC0_VALUE_NONBURST
+ str r2,[r1]
+
+ // Setup GPIO clear registers
+ ldr r1, =PXA2X0_GPCR0
+ ldr r2, =(GPCR0_VALUE)
+ str r2, [r1]
+
+ ldr r1, =PXA2X0_GPCR1
+ ldr r2, =(GPCR1_VALUE)
+ str r2, [r1]
+
+ ldr r1, =PXA2X0_GPCR2
+ ldr r2, =(GPCR2_VALUE)
+ str r2, [r1]
+
+ // Setup GPIO set registers
+ ldr r1, =PXA2X0_GPSR0
+ ldr r2, =(GPSR0_VALUE)
+ str r2, [r1]
+
+ ldr r1, =PXA2X0_GPSR1
+ ldr r2, =(GPSR1_VALUE)
+ str r2, [r1]
+
+ ldr r1, =PXA2X0_GPSR2
+ ldr r2, =(GPSR2_VALUE)
+ str r2, [r1]
+
+ // Setup GPIO direction registers
+ ldr r1, =PXA2X0_GPDR0
+ ldr r2, =(GPDR0_VALUE)
+ str r2, [r1]
+
+ ldr r1, =PXA2X0_GPDR1
+ ldr r2, =(GPDR1_VALUE)
+ str r2, [r1]
+
+ ldr r1, =PXA2X0_GPDR2
+ ldr r2, =(GPDR2_VALUE)
+ str r2, [r1]
+
+ // Setup GPIO alternate function registers
+ ldr r1, =PXA2X0_GAFR0_L
+ ldr r2, =(GAFR0_L_VALUE)
+ str r2, [r1]
+
+ ldr r1, =PXA2X0_GAFR0_U
+ ldr r2, =(GAFR0_U_VALUE)
+ str r2, [r1]
+
+ ldr r1, =PXA2X0_GAFR1_L
+ ldr r2, =(GAFR1_L_VALUE)
+ str r2, [r1]
+
+ ldr r1, =PXA2X0_GAFR1_U
+ ldr r2, =(GAFR1_U_VALUE)
+ str r2, [r1]
+
+ ldr r1, =PXA2X0_GAFR2_L
+ ldr r2, =(GAFR2_L_VALUE)
+ str r2, [r1]
+
+ ldr r1, =PXA2X0_GAFR2_U
+ ldr r2, =(GAFR2_U_VALUE)
+ str r2, [r1]
+
+ ldr r1, =PXA2X0_PSSR
+ ldr r2, =(PSSR_VALUE)
+ str r2, [r1]
+
+ // Enable the Icache
+ mrc p15, 0, r0, c1, c0, 0
+ orr r0, r0, #MMU_Control_I
+ mcr p15, 0, r0, c1, c0, 0
+ CPWAIT r0
+
+ // Turn on red led
+ ldr r1,=PXA2X0_GPSR0
+ ldr r2,=0x00200000
+ str r2,[r1]
+
+ // Set up a stack [for calling C code]
+ ldr r1,=__startup_stack
+ ldr r2,=PXA2X0_RAM_BANK0_BASE
+ orr sp,r1,r2
+
+ // Create MMU tables
+ bl hal_mmu_init
+
+ // Turn off red led
+ ldr r1,=PXA2X0_GPCR0
+ ldr r2,=0x00200000
+ str r2,[r1]
+
+ // Enable MMU
+ ldr r2,=10f
+ ldr r1,=MMU_Control_Init|MMU_Control_M
+ mcr MMU_CP,0,r1,MMU_Control,c0
+ mov pc, r2
+ nop
+ nop
+ nop
+
+10:
+ // Turn on green led
+ ldr r1,=PXA2X0_GPSR0
+ ldr r2,=0x00400000
+ str r2,[r1]
+
+ .endm
+
+#else // defined(CYG_HAL_STARTUP_ROM)
+#define PLATFORM_SETUP1
+#endif
+
+#define PLATFORM_VECTORS _platform_vectors
+ .macro _platform_vectors
+ .globl hal_pcsr_cfg_retry
+hal_pcsr_cfg_retry: .long 0 // Boot-time value of PCSR Retry bit.
+ .endm
+
+/*---------------------------------------------------------------------------*/
+/* end of hal_platform_setup.h */
+#endif /* CYGONCE_HAL_PLATFORM_SETUP_H */
diff --git a/ecos/packages/hal/arm/xscale/picasso/current/include/hal_plf_ints.h b/ecos/packages/hal/arm/xscale/picasso/current/include/hal_plf_ints.h
new file mode 100644
index 0000000..9836627
--- /dev/null
+++ b/ecos/packages/hal/arm/xscale/picasso/current/include/hal_plf_ints.h
@@ -0,0 +1,137 @@
+#ifndef CYGONCE_HAL_PLF_INTS_H
+#define CYGONCE_HAL_PLF_INTS_H
+//==========================================================================
+//
+// hal_plf_ints.h
+//
+// HAL Platform Interrupt support
+//
+//==========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//==========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): msalter
+// Contributors: msalter
+// Date: 2001-12-03
+// Purpose: Define Interrupt support
+// Description: The interrupt details for a specific platform is defined here.
+// Usage:
+//
+//
+//####DESCRIPTIONEND####
+//
+//==========================================================================
+
+// start with variant ints
+#include <pkgconf/hal.h>
+#include CYGBLD_HAL_VAR_INTS_H
+#include <cyg/hal/plf_io.h>
+
+//----------------------------------------------------------------------------
+// Additional interrupts from PCI & Motherboard
+#define _uPCI_BASE_INTERRUPT (96+17)
+
+#define CYGNUM_HAL_INTERRUPT_PCI_INTA (_uPCI_BASE_INTERRUPT+0)
+#define CYGNUM_HAL_INTERRUPT_PCI_INTB (_uPCI_BASE_INTERRUPT+1)
+#define CYGNUM_HAL_INTERRUPT_PCI_INTC (_uPCI_BASE_INTERRUPT+2)
+#define CYGNUM_HAL_INTERRUPT_PCI_INTD (_uPCI_BASE_INTERRUPT+3)
+#define CYGNUM_HAL_INTERRUPT_PXA (_uPCI_BASE_INTERRUPT+4)
+
+#undef CYGNUM_HAL_ISR_MIN
+#undef CYGNUM_HAL_ISR_MAX
+#define CYGNUM_HAL_ISR_MIN 0
+#define CYGNUM_HAL_ISR_MAX (_uPCI_BASE_INTERRUPT+4)
+
+//----------------------------------------------------------------------------
+// Platform specific interrupt handling
+externC int _picasso_extended_irq(void);
+externC void _picasso_extended_int_mask(int vector);
+externC void _picasso_extended_int_unmask(int vector);
+externC void _picasso_extended_int_acknowledge(int vector);
+externC void _picasso_extended_int_configure(int vector, int level, int up);
+externC void _picasso_extended_int_set_level(int vector, int level);
+
+#define HAL_EXTENDED_IRQ_HANDLER(sources) \
+ if ((sources & (1 << CYGNUM_HAL_INTERRUPT_GPIO1)) != 0) { \
+ int res = _picasso_extended_irq(); \
+ if (res) return res; \
+ };
+#define HAL_EXTENDED_INTERRUPT_MASK(vector) \
+ if (vector >= _uPCI_BASE_INTERRUPT) { \
+ _picasso_extended_int_mask(vector); \
+ return; \
+ }
+#define HAL_EXTENDED_INTERRUPT_UNMASK(vector) \
+ if (vector >= _uPCI_BASE_INTERRUPT) { \
+ _picasso_extended_int_unmask(vector); \
+ return; \
+ }
+#define HAL_EXTENDED_INTERRUPT_ACKNOWLEDGE(vector) \
+ if (vector >= _uPCI_BASE_INTERRUPT) { \
+ _picasso_extended_int_acknowledge(vector); \
+ return; \
+ }
+#define HAL_EXTENDED_INTERRUPT_CONFIGURE(vector, level, up) \
+ if (vector >= _uPCI_BASE_INTERRUPT) { \
+ _picasso_extended_int_configure(vector, level, up); \
+ return; \
+ }
+#define HAL_EXTENDED_INTERRUPT_SET_LEVEL(vector, level) \
+ if (vector >= _uPCI_BASE_INTERRUPT) { \
+ _picasso_extended_int_set_level(vector, level); \
+ return; \
+ }
+
+
+//----------------------------------------------------------------------------
+// Reset.
+#undef HAL_PLATFORM_RESET
+#define HAL_PLATFORM_RESET() \
+ CYG_MACRO_START \
+ cyg_uint32 ctrl; \
+ \
+ /* By disabling interupts we will just hang in the loop below */ \
+ /* if for some reason the software reset fails. */ \
+ HAL_DISABLE_INTERRUPTS(ctrl); \
+ \
+ PCICTL_MISC = PCI_SYSTEM_RESET; \
+ \
+ for(;;); /* hang here forever if reset fails */ \
+ CYG_MACRO_END
+
+// Fallback (never really used)
+#define HAL_PLATFORM_RESET_ENTRY 0x00000000
+
+
+#endif // CYGONCE_HAL_PLF_INTS_H
diff --git a/ecos/packages/hal/arm/xscale/picasso/current/include/picasso.h b/ecos/packages/hal/arm/xscale/picasso/current/include/picasso.h
new file mode 100644
index 0000000..179fd06
--- /dev/null
+++ b/ecos/packages/hal/arm/xscale/picasso/current/include/picasso.h
@@ -0,0 +1,65 @@
+#ifndef CYGONCE_HAL_ARM_XSCALE_PICASSO_PICASSO_H
+#define CYGONCE_HAL_ARM_XSCALE_PICASSO_PICASSO_H
+
+//=============================================================================
+//
+// picasso.h
+//
+// Platform specific support (register layout, etc)
+//
+//=============================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=============================================================================
+
+#include <pkgconf/system.h>
+#include CYGHWR_MEMORY_LAYOUT_H
+//#include <pkgconf/hal_arm_xscale_picasso.h>
+#include <cyg/hal/hal_pxa2x0.h> // Applications Processor defines
+
+#define SDRAM_PHYS_BASE 0xa0000000
+#define SDRAM_BASE 0x00000000
+#define SDRAM_SIZE 0x04000000 // 64 MB
+#define SDRAM_MAX 0x10000000
+
+#define PICASSO_FLASH_ADDR 0x50000000
+// These must match setup in the page table in hal_platform_extras.h
+#define SDRAM_UNCACHED_BASE 0xc0000000
+#undef DCACHE_FLUSH_AREA
+#define DCACHE_FLUSH_AREA 0xe0000000
+
+#define FPGA_BASE 0x50040000
+#define VGA_BASE 0x50080000
+
+// ------------------------------------------------------------------------
+
+#endif // CYGONCE_HAL_ARM_XSCALE_PICASSO_PICASSO_H
diff --git a/ecos/packages/hal/arm/xscale/picasso/current/include/pkgconf/mlt_arm_xscale_picasso_ram.h b/ecos/packages/hal/arm/xscale/picasso/current/include/pkgconf/mlt_arm_xscale_picasso_ram.h
new file mode 100644
index 0000000..5f7642d
--- /dev/null
+++ b/ecos/packages/hal/arm/xscale/picasso/current/include/pkgconf/mlt_arm_xscale_picasso_ram.h
@@ -0,0 +1,18 @@
+// eCos memory layout - Fri Oct 20 05:56:24 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 (0x00000000)
+#define CYGMEM_REGION_ram_SIZE (0x04000000)
+#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 (0x3F00000 - (size_t) CYG_LABEL_NAME (__heap1))
+
diff --git a/ecos/packages/hal/arm/xscale/picasso/current/include/pkgconf/mlt_arm_xscale_picasso_ram.ldi b/ecos/packages/hal/arm/xscale/picasso/current/include/pkgconf/mlt_arm_xscale_picasso_ram.ldi
new file mode 100644
index 0000000..d4ac8ba
--- /dev/null
+++ b/ecos/packages/hal/arm/xscale/picasso/current/include/pkgconf/mlt_arm_xscale_picasso_ram.ldi
@@ -0,0 +1,27 @@
+// eCos memory layout - Fri Oct 20 05:56:24 2000
+
+// This is a generated file - do not edit
+
+#include <cyg/infra/cyg_type.inc>
+
+MEMORY
+{
+ ram : ORIGIN = 0x00000000, LENGTH = 0x4000000
+}
+
+SECTIONS
+{
+ SECTIONS_BEGIN
+ SECTION_fixed_vectors (ram, 0x20, LMA_EQ_VMA)
+ SECTION_rom_vectors (ram, 0x40000, 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)
+ CYG_LABEL_DEFN(__heap1) = ALIGN (0x8);
+ SECTIONS_END
+}
diff --git a/ecos/packages/hal/arm/xscale/picasso/current/include/pkgconf/mlt_arm_xscale_picasso_ram.mlt b/ecos/packages/hal/arm/xscale/picasso/current/include/pkgconf/mlt_arm_xscale_picasso_ram.mlt
new file mode 100644
index 0000000..2a5fbd5
--- /dev/null
+++ b/ecos/packages/hal/arm/xscale/picasso/current/include/pkgconf/mlt_arm_xscale_picasso_ram.mlt
@@ -0,0 +1,14 @@
+version 0
+region ram 0 2000000 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 40000 40000 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 1 0 1 heap1 heap1 !
+section heap1 0 8 0 0 0 0 0 0 !
+
diff --git a/ecos/packages/hal/arm/xscale/picasso/current/include/pkgconf/mlt_arm_xscale_picasso_rom.h b/ecos/packages/hal/arm/xscale/picasso/current/include/pkgconf/mlt_arm_xscale_picasso_rom.h
new file mode 100644
index 0000000..1057273
--- /dev/null
+++ b/ecos/packages/hal/arm/xscale/picasso/current/include/pkgconf/mlt_arm_xscale_picasso_rom.h
@@ -0,0 +1,20 @@
+// eCos memory layout - Tue Jul 02 10:03:04 2002
+
+// This is a generated file - do not edit
+
+#ifndef __ASSEMBLER__
+#include <cyg/infra/cyg_type.h>
+#include <stddef.h>
+
+#endif
+#define CYGMEM_REGION_ram (0x00000000)
+#define CYGMEM_REGION_ram_SIZE (0x04000000)
+#define CYGMEM_REGION_ram_ATTR (CYGMEM_REGION_ATTR_R | CYGMEM_REGION_ATTR_W)
+#define CYGMEM_REGION_rom (0x50000000)
+#define CYGMEM_REGION_rom_SIZE (0x04000000)
+#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 (0x4000000 - (size_t) CYG_LABEL_NAME (__heap1))
diff --git a/ecos/packages/hal/arm/xscale/picasso/current/include/pkgconf/mlt_arm_xscale_picasso_rom.ldi b/ecos/packages/hal/arm/xscale/picasso/current/include/pkgconf/mlt_arm_xscale_picasso_rom.ldi
new file mode 100644
index 0000000..e3e53da
--- /dev/null
+++ b/ecos/packages/hal/arm/xscale/picasso/current/include/pkgconf/mlt_arm_xscale_picasso_rom.ldi
@@ -0,0 +1,29 @@
+// eCos memory layout - Tue Jul 02 10:03:04 2002
+
+// This is a generated file - do not edit
+
+#include <cyg/infra/cyg_type.inc>
+
+MEMORY
+{
+ ram : ORIGIN = 0x00000000, LENGTH = 0x04000000
+ rom : ORIGIN = 0x50000000, LENGTH = 0x04000000
+}
+
+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_mmu_tables (rom, ALIGN (0x4000), LMA_EQ_VMA)
+ SECTION_fixed_vectors (ram, 0x20, LMA_EQ_VMA)
+ SECTION_data (ram, 0x8000, FOLLOWING (.mmu_tables))
+ SECTION_bss (ram, ALIGN (0x4), LMA_EQ_VMA)
+ CYG_LABEL_DEFN(__heap1) = ALIGN (0x8);
+ SECTIONS_END
+}
diff --git a/ecos/packages/hal/arm/xscale/picasso/current/include/pkgconf/mlt_arm_xscale_picasso_rom.mlt b/ecos/packages/hal/arm/xscale/picasso/current/include/pkgconf/mlt_arm_xscale_picasso_rom.mlt
new file mode 100644
index 0000000..b04ea9b
--- /dev/null
+++ b/ecos/packages/hal/arm/xscale/picasso/current/include/pkgconf/mlt_arm_xscale_picasso_rom.mlt
@@ -0,0 +1,15 @@
+version 0
+region ram 0 2000000 0 !
+region rom f0000000 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 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 f0000000 f0000000 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 mmu_tables mmu_tables !
+section mmu_tables 0 4000 0 1 0 0 0 1 data !
diff --git a/ecos/packages/hal/arm/xscale/picasso/current/include/plf_io.h b/ecos/packages/hal/arm/xscale/picasso/current/include/plf_io.h
new file mode 100644
index 0000000..deaf658
--- /dev/null
+++ b/ecos/packages/hal/arm/xscale/picasso/current/include/plf_io.h
@@ -0,0 +1,239 @@
+#ifndef CYGONCE_PLF_IO_H
+#define CYGONCE_PLF_IO_H
+
+//=============================================================================
+//
+// plf_io.h
+//
+// Platform specific IO support
+//
+//=============================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): msalter
+// Contributors: msalter, gthomas
+// Date: 2002-01-10
+// Purpose: Intel Xscale (PXA250) PCI IO support macros
+// Description:
+// Usage: #include <cyg/hal/plf_io.h>
+//
+//####DESCRIPTIONEND####
+//
+//=============================================================================
+
+#include <pkgconf/hal.h>
+#include <cyg/hal/hal_io.h> // IO macros
+#include <cyg/hal/picasso.h>
+
+#define PCI_CONTROL_BASE 0x37040000
+
+#define PCI_CTL_IO(x) (*((volatile cyg_uint32*)(PCI_CONTROL_BASE+(x))))
+#define PCI_CTL_IO_BYTE(x) (*((volatile cyg_uint8*)(PCI_CONTROL_BASE+(x))))
+
+#define PCICTL_MEM_REMAP PCI_CTL_IO(0x0000)
+#define PCICTL_IO_REMAP PCI_CTL_IO(0x0004)
+#define PCICTL_CONFIG_REMAP PCI_CTL_IO(0x0008)
+#define PCICTL_INT_RESET PCI_CTL_IO(0x0010)
+#define PCICTL_STATUS_REG PCI_CTL_IO_BYTE(0x0010)
+#define PCICTL_INT_EDGE PCI_CTL_IO_BYTE(0x0011)
+#define PCICTL_IRQ_MASK PCI_CTL_IO(0x0014)
+#define PCICTL_MISC PCI_CTL_IO(0x001C)
+
+#define PCI_RESET (1 << 0)
+#define PCI_WRITEBUF (1 << 1)
+#define PCI_TIMER (1 << 2)
+#define PCI_IDSEL_OFF (15 << 4)
+#define PCI_IDSEL_0 (1 << 4)
+#define PCI_IDSEL_1 (2 << 4)
+#define PCI_IDSEL_2 (3 << 4)
+#define PCI_IDSEL_3 (4 << 4)
+#define PCI_IDSEL_4 (5 << 4)
+#define PCI_IDSEL_5 (6 << 4)
+#define PCI_SDRAM_64 (0 << 16)
+#define PCI_SDRAM_128 (1 << 16)
+#define PCI_SDRAM_256 (2 << 16)
+#define PCI_SYSTEM_RESET (1 << 31)
+
+#define PCI_INT_A (1 << 0)
+#define PCI_INT_B (1 << 1)
+#define PCI_INT_C (1 << 2)
+#define PCI_INT_D (1 << 3)
+#define PCI_TARGET_ABORT (1 << 4)
+#define PCI_MASTER_ABORT (1 << 5)
+#define PCI_PARITY_ERROR (1 << 6)
+#define PCI_SYS_ERROR (1 << 7)
+#define PCI_BUS_TIMEOUT (1 << 8)
+
+#define PCI_INT_A_ENABLE (1 << 0)
+#define PCI_INT_B_ENABLE (1 << 1)
+#define PCI_INT_C_ENABLE (1 << 2)
+#define PCI_INT_D_ENABLE (1 << 3)
+
+#define PCI_IDSEL_SHIFT 4
+
+// FIXME: Use virtual address
+#define PCI_CONFIG_BASE 0x15000000
+
+#define HAL_PCI_INIT() cyg_hal_plf_pci_init()
+
+
+// Map PCI device resources starting from these addresses in PCI space.
+#define HAL_PCI_PHYSICAL_MEMORY_BASE 0x0C000000 // CPU address
+#define HAL_PCI_ALLOC_BASE_MEMORY 0x00000000 // PCI address
+#define HAL_PCI_PHYSICAL_IO_BASE 0x16000000 // CPU address
+#define HAL_PCI_ALLOC_BASE_IO 0x00000000 // PCI address
+#define _PCI_READ_8 0x01000000 //
+#define _PCI_READ_16 0x00000000 // Byte address munging
+#define _PCI_READ_32 0x00800000 //
+#define _PCI_WRITE_X 0x00000000
+
+//-----------------------------------------------------------------------------
+
+extern cyg_uint32 cyg_hal_plf_pci_cfg_read_dword (cyg_uint32 bus,
+ cyg_uint32 devfn,
+ cyg_uint32 offset);
+extern cyg_uint16 cyg_hal_plf_pci_cfg_read_word (cyg_uint32 bus,
+ cyg_uint32 devfn,
+ cyg_uint32 offset);
+extern cyg_uint8 cyg_hal_plf_pci_cfg_read_byte (cyg_uint32 bus,
+ cyg_uint32 devfn,
+ cyg_uint32 offset);
+extern void cyg_hal_plf_pci_cfg_write_dword (cyg_uint32 bus,
+ cyg_uint32 devfn,
+ cyg_uint32 offset,
+ cyg_uint32 val);
+extern void cyg_hal_plf_pci_cfg_write_word (cyg_uint32 bus,
+ cyg_uint32 devfn,
+ cyg_uint32 offset,
+ cyg_uint16 val);
+extern void cyg_hal_plf_pci_cfg_write_byte (cyg_uint32 bus,
+ cyg_uint32 devfn,
+ cyg_uint32 offset,
+ cyg_uint8 val);
+
+// Read a value from the PCI configuration space of the appropriate
+// size at an address composed from the bus, devfn and offset.
+#define HAL_PCI_CFG_READ_UINT8( __bus, __devfn, __offset, __val ) \
+ __val = cyg_hal_plf_pci_cfg_read_byte((__bus), (__devfn), (__offset))
+
+#define HAL_PCI_CFG_READ_UINT16( __bus, __devfn, __offset, __val ) \
+ __val = cyg_hal_plf_pci_cfg_read_word((__bus), (__devfn), (__offset))
+
+#define HAL_PCI_CFG_READ_UINT32( __bus, __devfn, __offset, __val ) \
+ __val = cyg_hal_plf_pci_cfg_read_dword((__bus), (__devfn), (__offset))
+
+// Write a value to the PCI configuration space of the appropriate
+// size at an address composed from the bus, devfn and offset.
+#define HAL_PCI_CFG_WRITE_UINT8( __bus, __devfn, __offset, __val ) \
+ cyg_hal_plf_pci_cfg_write_byte((__bus), (__devfn), (__offset), (__val))
+
+#define HAL_PCI_CFG_WRITE_UINT16( __bus, __devfn, __offset, __val ) \
+ cyg_hal_plf_pci_cfg_write_word((__bus), (__devfn), (__offset), (__val))
+
+#define HAL_PCI_CFG_WRITE_UINT32( __bus, __devfn, __offset, __val ) \
+ cyg_hal_plf_pci_cfg_write_dword((__bus), (__devfn), (__offset), (__val))
+
+ // Initialize the PCI bus.
+externC void cyg_hal_plf_pci_init(void);
+#define HAL_PCI_INIT() cyg_hal_plf_pci_init()
+
+externC void _picasso_pci_translate_interrupt(int bus, int devfn, int *vector, int *valid);
+#define HAL_PCI_TRANSLATE_INTERRUPT(__bus, __devfn, __vector, __valid) \
+ _picasso_pci_translate_interrupt(__bus, __devfn, &__vector, &__valid)
+
+// Special I/O access functions
+externC cyg_uint8 pci_io_read_8(cyg_uint32 address);
+externC cyg_uint16 pci_io_read_16(cyg_uint32 address);
+externC cyg_uint32 pci_io_read_32(cyg_uint32 address);
+externC void pci_io_write_8(cyg_uint32 address, cyg_uint8 value);
+externC void pci_io_write_16(cyg_uint32 address, cyg_uint16 value);
+externC void pci_io_write_32(cyg_uint32 address, cyg_uint32 value);
+
+#define CYG_PCI_MAX_DEV 6
+#define CYG_PCI_MAX_BUS 1
+#define CYG_PCI_MAX_FN 1
+
+
+#define HAL_IDE_NUM_CONTROLLERS 1 // Default card has two controllers - maybe should be 2?
+
+#define HAL_IDE_READ_UINT8( __ctlr, __reg, __val) \
+ __val = cyg_hal_plf_ide_read_uint8((__ctlr), (__reg))
+
+#define HAL_IDE_READ_UINT16( __ctlr, __reg, __val) \
+ __val = cyg_hal_plf_ide_read_uint16((__ctlr), (__reg))
+
+#define HAL_IDE_WRITE_UINT8( __ctlr, __reg, __val) \
+ cyg_hal_plf_ide_write_uint8((__ctlr), (__reg), (__val))
+
+#define HAL_IDE_WRITE_UINT16( __ctlr, __reg, __val) \
+ cyg_hal_plf_ide_write_uint16((__ctlr), (__reg), (__val))
+
+
+#define HAL_IDE_WRITE_CONTROL( __ctlr, __val) \
+ cyg_hal_plf_ide_write_control((__ctlr), (__val))
+
+#define HAL_IDE_INIT() cyg_hal_plf_ide_init()
+
+
+// SDRAM is aliased as uncached memory for drivers.
+#define CYGARC_UNCACHED_ADDRESS(_x_) \
+ (((((unsigned long)(_x_)) >> 29)==0x0) ? (((unsigned long)(_x_))|0xc0000000) : (_x_))
+
+static inline unsigned cygarc_physical_address(unsigned va)
+{
+ unsigned *ram_mmutab = (unsigned *)(SDRAM_BASE | 0x4000);
+ unsigned pte;
+
+ pte = ram_mmutab[va >> 20];
+
+ return (pte & 0xfff00000) | (va & 0xfffff);
+}
+
+// FIXME
+#undef CYGARC_PHYSICAL_ADDRESS
+#define CYGARC_PHYSICAL_ADDRESS(_x_) cygarc_physical_address(_x_)
+
+static inline unsigned cygarc_virtual_address(unsigned pa)
+{
+ if (0xa0000000 <= pa && pa < 0xc0000000)
+ return pa - 0xa0000000;
+ return pa;
+}
+
+#define CYGARC_VIRTUAL_ADDRESS(_x_) cygarc_virtual_address(_x_)
+
+//-----------------------------------------------------------------------------
+// end of plf_io.h
+#endif // CYGONCE_PLF_IO_H
diff --git a/ecos/packages/hal/arm/xscale/picasso/current/include/plf_mmap.h b/ecos/packages/hal/arm/xscale/picasso/current/include/plf_mmap.h
new file mode 100644
index 0000000..966d23e
--- /dev/null
+++ b/ecos/packages/hal/arm/xscale/picasso/current/include/plf_mmap.h
@@ -0,0 +1,125 @@
+#ifndef CYGONCE_HAL_PXA250_PLATFORM_PLF_MMAP_H
+#define CYGONCE_HAL_PXA250_PLATFORM_PLF_MMAP_H
+/*=============================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): hmt
+// Contributors: hmt
+// Date: 2001-01-04
+// Purpose: Intel PXA250 series platform-specific memory mapping macros
+// Description: Macros to convert a cached, virtual address to
+// 1) an uncached adddress for the same memory (if available)
+// 2) the equivalent physical address for giving to external
+// hardware eg. DMA engines.
+//
+// NB: this mapping is expressed here statically, independent
+// of the actual mapping installed in the MMAP table. So if
+// someone changes that, or its initialisation is changed,
+// then this module must change. This is intended to be
+// efficient at a cost of generality. It is also intended to
+// be called with constants (such as &my_struct) as input
+// args, so that all the work can be done at compile time,
+// with optimization on.
+//
+// Usage: #include <cyg/hal/hal_cache.h>
+// (which includes this file itself)
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================*/
+
+#include <cyg/hal/hal_misc.h>
+
+// Get the pagesize for a particular virtual address:
+
+// This does not depend on the vaddr.
+#define HAL_MM_PAGESIZE( vaddr, pagesize ) CYG_MACRO_START \
+ (pagesize) = SZ_1M; \
+CYG_MACRO_END
+
+// Get the physical address from a virtual address:
+
+// Only RAM and ROM are mapped; we just pass through all other values,
+// rather than detecting nonexistent areas here.
+
+#define HAL_VIRT_TO_PHYS_ADDRESS( vaddr, paddr ) CYG_MACRO_START \
+ cyg_uint32 _v_ = (cyg_uint32)(vaddr); \
+ if ( 64 * SZ_1M > _v_ ) /* 64Mb of SDRAM Bank 0 from 0-32Mb */ \
+ _v_ += 0xa00u * SZ_1M; \
+ else if ( 0x500u * SZ_1M > _v_ ) /* Space between RAM and mapped ROM */\
+ /* no change */ ; \
+ else if ( 0x520u * SZ_1M > _v_ ) /* Mapped boot ROM size 32Mb */ \
+ _v_ -= 0x500u * SZ_1M; \
+ else /* Rest of it */ \
+ /* no change */ ; \
+ (paddr) = _v_; \
+CYG_MACRO_END
+
+// Get the virtual address for a physical address:
+
+// Only RAM and ROM are mapped; we just pass through all other values,
+// rather than detecting nonexistent areas here.
+
+#define HAL_PHYS_TO_VIRT_ADDRESS( paddr, vaddr ) CYG_MACRO_START \
+ cyg_uint32 _p_ = (cyg_uint32)(paddr); \
+ if ( 32 * SZ_1M > _p_ ) /* 32Mb Boot ROM mapped to 0x500Mb */ \
+ _p_ += 0x500u * SZ_1M; \
+ else if ( 0xa00u * SZ_1M > _p_ ) /* Space between ROM and SDRAM */ \
+ /* no change */ ; \
+ else if ( 0xa40u * SZ_1M > _p_ ) /* Raw RAM size 64Mb */ \
+ _p_ -= 0xa00u * SZ_1M; \
+ else /* Rest of it */ \
+ /* no change */ ; \
+ (vaddr) = _p_ ; \
+CYG_MACRO_END
+
+// Get a non-cacheable address for accessing the same store as a virtual
+// (assumed cachable) address:
+
+// Only RAM is mapped: ROM is only available cachable, everything else is
+// not cachable anyway.
+
+#define HAL_VIRT_TO_UNCACHED_ADDRESS( vaddr, uaddr ) CYG_MACRO_START \
+ cyg_uint32 _v_ = (cyg_uint32)(vaddr); \
+ if ( 64 * SZ_1M > _v_ ) /* 64Mb of SDRAM Bank 0 from 0-64Mb */ \
+ _v_ += 0xc00u * SZ_1M; \
+ else /* Everything else is already uncacheable or is ROM */ \
+ /* no change */ ; \
+ (uaddr) = _v_ ; \
+CYG_MACRO_END
+
+//---------------------------------------------------------------------------
+#endif // CYGONCE_HAL_SA11X0_PLATFORM_PLF_MMAP_H
+// EOF plf_mmap.h
diff --git a/ecos/packages/hal/arm/xscale/picasso/current/include/plx.h b/ecos/packages/hal/arm/xscale/picasso/current/include/plx.h
new file mode 100644
index 0000000..aab46ac
--- /dev/null
+++ b/ecos/packages/hal/arm/xscale/picasso/current/include/plx.h
@@ -0,0 +1,85 @@
+#ifndef CYGONCE_PLX_H
+#define CYGONCE_PLX_H
+
+//=============================================================================
+//
+// plx.h
+//
+// Description of PCI Local Bus (PLX) resources
+//
+//=============================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=============================================================================
+
+#define LOCALBUS_CONFIG_OFFSET 0x0
+#define LOCALBUS_OFFSET 0x100
+
+#ifndef _DEFINE_VARS
+#define __global externC
+#else
+#define __global
+#endif
+__global cyg_uint32 _plx_config_addr;
+__global cyg_uint32 _plx_localbus_addr;
+#undef __global
+
+#define plx_config_readl(a) (*(volatile cyg_uint32 *)(_plx_config_addr + (a)))
+#define plx_config_writel(v,a) (*(volatile cyg_uint32 *)(_plx_config_addr + (a)))=(v)
+
+#define localbus_readb(a) (*(volatile cyg_uint8 *)(_plx_localbus_addr + (a)))
+#define localbus_readw(a) (*(volatile cyg_uint16 *)(_plx_localbus_addr + (a)))
+#define localbus_readl(a) (*(volatile cyg_uint32 *)(_plx_localbus_addr + (a)))
+#define localbus_writeb(v,a) (*(volatile cyg_uint8 *)(_plx_localbus_addr + (a)))=(v)
+#define localbus_writew(v,a) (*(volatile cyg_uint16 *)(_plx_localbus_addr + (a)))=(v)
+#define localbus_writel(v,a) (*(volatile cyg_uint32 *)(_plx_localbus_addr + (a)))=(v)
+
+#define display_readb(a) (*(volatile cyg_uint8 *)(PCI_MEM_BASE2 + DISPLAY_MEM_BASE + (a)))
+#define display_readw(a) (*(volatile cyg_uint16 *)(PCI_MEM_BASE2 + DISPLAY_MEM_BASE + (a)))
+#define display_readl(a) (*(volatile cyg_uint32 *)(PCI_MEM_BASE2 + DISPLAY_MEM_BASE + (a)))
+#define display_writeb(v,a) (*(volatile cyg_uint8 *)(PCI_MEM_BASE2 + DISPLAY_MEM_BASE + (a)))=(v)
+#define display_writew(v,a) (*(volatile cyg_uint16 *)(PCI_MEM_BASE2 + DISPLAY_MEM_BASE + (a)))=(v)
+#define display_writel(v,a) (*(volatile cyg_uint32 *)(PCI_MEM_BASE2 + DISPLAY_MEM_BASE + (a)))=(v)
+
+
+#define LOCALBUS_IRQ_MASK 0x4010
+#define LOCALBUS_IRQ_STATUS 0x4014
+
+#define FDC37C672_CONFIG 0xfc0
+#define FDC37C672_INDEX 0xfc0
+#define FDC37C672_DATA 0xfc4
+
+#define ASCII_DISPLAY_BASE 0x4020
+
+#define ADV471_PIXEL_READ_MASK 0x14
+
+#endif // CYGONCE_PLX_H
diff --git a/ecos/packages/hal/arm/xscale/picasso/current/include/vga_support.h b/ecos/packages/hal/arm/xscale/picasso/current/include/vga_support.h
new file mode 100644
index 0000000..77b51c2
--- /dev/null
+++ b/ecos/packages/hal/arm/xscale/picasso/current/include/vga_support.h
@@ -0,0 +1,80 @@
+#ifndef _VGA_SUPPORT_H_
+#define _VGA_SUPPORT_H_
+//==========================================================================
+//
+// vga_support.h
+//
+// VGA support routines
+//
+//==========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//==========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): gthomas
+// Contributors: gthomas
+// Date: 2001-09-29
+// Description: Simple VGA support
+//####DESCRIPTIONEND####
+
+struct vga_info {
+ short height, width; // Pixels
+ short bpp; // Depth (bits/pixel)
+ short type;
+ short rlen; // Length of one raster line in bytes
+ short access_size; // Data path width to frame buffer
+ short stride; // Offset (in bytes) between elements
+ void *fb; // Frame buffer
+ void *ctlr; // Controller regs
+ void (*off)(void); // Turn screen off
+ void (*on)(void); // Turn screen on
+};
+
+// Frame buffer types - used by MicroWindows
+#define FB_TRUE_RGB565 0x01
+#define FB_TRUE_RGB555 0x02
+
+// Exported functions
+void vga_init(cyg_uint32 *ctlr);
+void vga_clear(void);
+int vga_getinfo(struct vga_info *info);
+void vga_on(bool enable);
+#ifdef CYGSEM_UE250_VGA_COMM
+void vga_screen_clear(void);
+void vga_moveto(int X, int Y);
+void vga_putc(cyg_uint8 c);
+int _vga_printf(char const *fmt, ...);
+void vga_comm_init(cyg_uint32 *addr);
+#endif
+
+#endif // _VGA_SUPPORT_H_
diff --git a/ecos/packages/hal/arm/xscale/picasso/current/misc/redboot_RAM.ecm b/ecos/packages/hal/arm/xscale/picasso/current/misc/redboot_RAM.ecm
new file mode 100644
index 0000000..a405de5
--- /dev/null
+++ b/ecos/packages/hal/arm/xscale/picasso/current/misc/redboot_RAM.ecm
@@ -0,0 +1,96 @@
+cdl_savefile_version 1;
+cdl_savefile_command cdl_savefile_version {};
+cdl_savefile_command cdl_savefile_command {};
+cdl_savefile_command cdl_configuration { description hardware template package };
+cdl_savefile_command cdl_package { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_component { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_option { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_interface { value_source user_value wizard_value inferred_value };
+
+cdl_configuration eCos {
+ description "" ;
+ hardware picasso ;
+ template redboot ;
+ package -hardware CYGPKG_HAL_ARM current ;
+ package -hardware CYGPKG_HAL_ARM_XSCALE_CORE current ;
+ package -hardware CYGPKG_HAL_ARM_XSCALE_PXA2X0 current ;
+ package -hardware CYGPKG_HAL_ARM_XSCALE_PICASSO current ;
+ package -hardware CYGPKG_IO_PCI current ;
+ package -hardware CYGPKG_IO_SERIAL_GENERIC_16X5X current ;
+ package -hardware CYGPKG_DEVS_FLASH_STRATA current ;
+ package -hardware CYGPKG_DEVS_FLASH_PICASSO current ;
+ package -hardware CYGPKG_DEVS_ETH_NS_DP83902A current ;
+ package -hardware CYGPKG_DEVS_ETH_ARM_XSCALE_PICASSO current ;
+ package -template CYGPKG_HAL current ;
+ package -template CYGPKG_INFRA current ;
+ package -template CYGPKG_REDBOOT current ;
+ package -template CYGPKG_ISOINFRA current ;
+ package -template CYGPKG_LIBC_STRING current ;
+ package -template CYGPKG_CRC current ;
+ package CYGPKG_NS_DNS current ;
+ package CYGPKG_IO_FLASH current ;
+ package CYGPKG_IO_ETH_DRIVERS current ;
+ package CYGPKG_COMPRESS_ZLIB current ;
+};
+
+cdl_component CYGSEM_HAL_LOAD_FPGAS {
+ user_value 1
+};
+
+cdl_option CYGFUN_LIBC_STRING_BSD_FUNCS {
+ inferred_value 0
+};
+
+cdl_option CYGNUM_HAL_COMMON_INTERRUPTS_STACK_SIZE {
+ user_value 4096
+};
+
+cdl_option CYGDBG_HAL_COMMON_INTERRUPTS_SAVE_MINIMUM_CONTEXT {
+ user_value 0
+};
+
+cdl_option CYGDBG_HAL_COMMON_CONTEXT_SAVE_MINIMUM {
+ inferred_value 0
+};
+
+cdl_option CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS {
+ inferred_value 1
+};
+
+cdl_option CYGSEM_HAL_USE_ROM_MONITOR {
+ inferred_value 0 0
+};
+
+cdl_component CYGBLD_BUILD_REDBOOT {
+ user_value 1
+};
+
+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_BSD_FUNCS_HEADER {
+ inferred_value 1 <cyg/libc/string/bsdstring.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_DNS_HEADER {
+ inferred_value 1 <cyg/ns/dns/dns.h>
+};
+
+cdl_option CYGPKG_NS_DNS_BUILD {
+ inferred_value 0
+};
+
+
diff --git a/ecos/packages/hal/arm/xscale/picasso/current/misc/redboot_ROM.ecm b/ecos/packages/hal/arm/xscale/picasso/current/misc/redboot_ROM.ecm
new file mode 100644
index 0000000..c1ed598
--- /dev/null
+++ b/ecos/packages/hal/arm/xscale/picasso/current/misc/redboot_ROM.ecm
@@ -0,0 +1,150 @@
+cdl_savefile_version 1;
+cdl_savefile_command cdl_savefile_version {};
+cdl_savefile_command cdl_savefile_command {};
+cdl_savefile_command cdl_configuration { description hardware template package };
+cdl_savefile_command cdl_package { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_component { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_option { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_interface { value_source user_value wizard_value inferred_value };
+
+cdl_configuration eCos {
+ description "" ;
+ hardware picasso ;
+ template redboot ;
+ package -hardware CYGPKG_HAL_ARM current ;
+ package -hardware CYGPKG_HAL_ARM_XSCALE_CORE current ;
+ package -hardware CYGPKG_HAL_ARM_XSCALE_PXA2X0 current ;
+ package -hardware CYGPKG_HAL_ARM_XSCALE_PICASSO current ;
+ package -hardware CYGPKG_IO_PCI current ;
+ package -hardware CYGPKG_IO_SERIAL_GENERIC_16X5X current ;
+ package -hardware CYGPKG_DEVS_FLASH_STRATA current ;
+ package -hardware CYGPKG_DEVS_FLASH_PICASSO current ;
+ package -hardware CYGPKG_DEVS_ETH_NS_DP83902A current ;
+ package -hardware CYGPKG_DEVS_ETH_ARM_XSCALE_PICASSO current ;
+ package -template CYGPKG_HAL current ;
+ package -template CYGPKG_INFRA current ;
+ package -template CYGPKG_REDBOOT current ;
+ package -template CYGPKG_ISOINFRA current ;
+ package -template CYGPKG_LIBC_STRING current ;
+ package -template CYGPKG_CRC current ;
+ package CYGPKG_NS_DNS current ;
+ package CYGPKG_IO_FLASH current ;
+ package CYGPKG_IO_ETH_DRIVERS current ;
+ package CYGPKG_COMPRESS_ZLIB current ;
+};
+
+cdl_component CYG_HAL_STARTUP {
+ user_value ROM
+};
+
+cdl_component CYGSEM_HAL_LOAD_FPGAS {
+ user_value 1
+ inferred_value 0
+};
+
+cdl_option CYGBLD_BUILD_GDB_STUBS {
+ user_value 0
+};
+
+cdl_option CYGPKG_IO_PCI_DEBUG {
+ user_value 0
+};
+
+cdl_option CYGFUN_LIBC_STRING_BSD_FUNCS {
+ inferred_value 0
+};
+
+cdl_component CYGSEM_DEVS_ETH_PICASSO_ETH0_SET_ESA {
+ user_value 1
+};
+
+cdl_option CYGDAT_DEVS_ETH_PICASSO_ETH0_ESA {
+ user_value "{0x00, 0x50, 0xBA, 0x33, 0x4D, 0xD9}"
+};
+
+cdl_option CYGNUM_HAL_COMMON_INTERRUPTS_STACK_SIZE {
+ user_value 4096
+};
+
+cdl_option CYGDBG_HAL_COMMON_INTERRUPTS_SAVE_MINIMUM_CONTEXT {
+ user_value 0
+};
+
+cdl_option CYGDBG_HAL_COMMON_CONTEXT_SAVE_MINIMUM {
+ inferred_value 0
+};
+
+cdl_option CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS {
+ inferred_value 1
+};
+
+cdl_option CYGDBG_HAL_DEBUG_GDB_CTRLC_SUPPORT {
+ inferred_value 0
+};
+
+cdl_option CYGSEM_HAL_ROM_MONITOR {
+ inferred_value 1
+};
+
+cdl_option CYGSEM_HAL_USE_ROM_MONITOR {
+ inferred_value 0 0
+};
+
+cdl_option CYGPKG_HAL_GDB_FILEIO {
+ user_value 1
+};
+
+cdl_component CYGBLD_BUILD_REDBOOT {
+ user_value 1
+};
+
+cdl_option CYGBLD_REDBOOT_MIN_IMAGE_SIZE {
+ user_value 0x00080000
+ inferred_value 0x40000
+};
+
+cdl_component CYGSEM_REDBOOT_FLASH_CONFIG {
+ user_value 1
+};
+
+cdl_option CYGSEM_REDBOOT_FLASH_COMBINED_FIS_AND_CONFIG {
+ user_value 1
+};
+
+cdl_component CYGSEM_REDBOOT_BSP_SYSCALLS {
+ inferred_value 1
+};
+
+cdl_option CYGHWR_REDBOOT_ARM_LINUX_EXEC_ADDRESS_DEFAULT {
+ inferred_value 0xA0008000
+};
+
+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_BSD_FUNCS_HEADER {
+ inferred_value 1 <cyg/libc/string/bsdstring.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_DNS_HEADER {
+ inferred_value 1 <cyg/ns/dns/dns.h>
+};
+
+cdl_option CYGPKG_NS_DNS_BUILD {
+ inferred_value 0
+};
+
+
diff --git a/ecos/packages/hal/arm/xscale/picasso/current/src/banner.xpm b/ecos/packages/hal/arm/xscale/picasso/current/src/banner.xpm
new file mode 100644
index 0000000..7b4e2f4
--- /dev/null
+++ b/ecos/packages/hal/arm/xscale/picasso/current/src/banner.xpm
@@ -0,0 +1,196 @@
+//==========================================================================
+//
+// LCD/CRT screen banner/logo
+//
+//==========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 2003 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//==========================================================================
+
+/* XPM */
+static char * banner_xpm[] = {
+"640 64 91 1",
+" c None",
+". c #020202",
+"+ c #0A0A0A",
+"@ c #2F2202",
+"# c #A66A04",
+"$ c #9E6A12",
+"% c #FEFEFE",
+"& c #1A1202",
+"* c #221202",
+"= c #967222",
+"- c #EEEEEA",
+"; c #C2921A",
+"> c #C18602",
+", c #DEAE22",
+"' c #BE9E0A",
+") c #F2C64A",
+"! c #875A09",
+"~ c #2A1A02",
+"{ c #E6E6E6",
+"] c #725A0A",
+"^ c #E21A2A",
+"/ c #9E9E9E",
+"( c #D69E12",
+"_ c #DFA60A",
+": c #EEC662",
+"< c #D6AE0A",
+"[ c #52420E",
+"} c #F6D612",
+"| c #4A3A02",
+"1 c #DEBE62",
+"2 c #7A7A7A",
+"3 c #AEAEAE",
+"4 c #EFB60A",
+"5 c #47320C",
+"6 c #BEC6C6",
+"7 c #F6BE12",
+"8 c #B8B6B5",
+"9 c #E1DEDC",
+"0 c #BFBEBE",
+"a c #525255",
+"b c #B68E42",
+"c c #222222",
+"d c #B68E0A",
+"e c #F6D11D",
+"f c #6A6A6A",
+"g c #868686",
+"h c #E6BE0A",
+"i c #343232",
+"j c #524A4A",
+"k c #3A3A3C",
+"l c #BA7602",
+"m c #D6D6D6",
+"n c #BE960A",
+"o c #D6B612",
+"p c #EEBE0A",
+"q c #AE7A0A",
+"r c #5A5A5F",
+"s c #959595",
+"t c #EECE12",
+"u c #121214",
+"v c #02020A",
+"w c #F6BE0A",
+"x c #F6F6F6",
+"y c #9E6202",
+"z c #6E4A02",
+"A c #F6DE52",
+"B c #434343",
+"C c #CD8E09",
+"D c #D79E0A",
+"E c #2B2A2A",
+"F c #DEAE02",
+"G c #E6AE12",
+"H c #C6C6C6",
+"I c #CE960A",
+"J c #CEB696",
+"K c #FEC60A",
+"L c #CECECE",
+"M c #1A1A19",
+"N c #C2C2C2",
+"O c #A3720A",
+"P c #FEDE12",
+"Q c #120A0A",
+"R c #EEB612",
+"S c #EEC60A",
+"T c #727272",
+"U c #626262",
+"V c #E7AE09",
+"W c #D69607",
+"X c #624202",
+"Y c #222232",
+"Z c #3A2A02",
+"NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN",
+"HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH",
+"NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN",
+"NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNH",
+"NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN^^^^^^^^^NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN",
+"HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH^^^^^^^^^^^^^HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHNH",
+"NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN^^^^^^^^^^^^^^^NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN",
+"NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN^^^^^^^^^^^^^^^^^NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNHNH",
+"NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN^^^^^^^^NNNN^^^^^^^NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN",
+"HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH^^^^^^HHHHHHHH^^^^^HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH....+HHHHHHHHHHHHHHHHHHHHHNHNH",
+"NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN^^^^^^NNNNNNNNN^^^^^NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN......+v.NNNNNNNNNNNNNNNNNNNNNNN",
+"NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN^^^^^NNNNNNNN^^^^^^NNNNNNNNNN^^^^^NNNNNNNNN^^^^^^NNNNNNNNNNNNN^^^^^^NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNM..v..vcTQ.NNNNNNNNNNNNNNNNNHNHNH",
+"NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN^^^^^^^^^NNNNN^^^^^^NNNNNNNNNNN^^^^^NNNNNNN^^^^^^^^^^NNNNNNNNN^^^^^^^^^^NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN-.......EE+.jNNNNNNNNNNNNNNNNNNNNN",
+"HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH^^^^^^^^^^^^^HHHH^^^^^^HHHHHHHHHHHHHHHHHHHHHH^^^^^^^^^^^^HHHHHHH^^^^^^^^^^^^HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHs...........vHHHHHHHHHHHHHHHNHNHNH",
+"NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN^^^^^^^N^^^^^NNN^^^^^^NNNNNNNNNNNNNNNNNNNNN^^^^^^^^^^^^^^^NNNNN^^^^^NN^^^^^^^NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNc..+.....M...{NNNNNNNNNNNNNNNNNNNN",
+"NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN^^^^^^NNNN^^^^^NN^^^^^^NNNNNNNNNNNNNNNNNNNN^^^^^^^NNN^^^^^^^NNN^^^^^NNNNN^^^^^NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNc.U+...f3M+..2NNNNNNNNNNNNNHNHNHNH",
+"NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN^^^^^^NNNNNN^^^^NN^^^^^NNNNNNNNNNNNNNNNNNNN^^^^^^^NNNNN^^^^^^NNN^^^^^NNNNNN^^^^NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNEa--..g%{m...fNNNNNNNNNNNNNNNNNNNN",
+"HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH^^^^^HHHHHHH^^^^H^^^^^^HHHHHHHHHHHHHHHHHHHH^^^^^^HHHHHH^^^^^^HH^^^^^^^HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHYm.sEu{ca0E..rHHHHHHHHHHHHNHNHNHNH",
+"NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN^^^^^^^^^^^^^^^^^N^^^^^^NNNNNNNNNNNNNNNNNNNN^^^^^NNNNNNN^^^^^^NNN^^^^^^^^^NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNsH.a5|g../kv.rNNNNNNNNNNNNNNNNNNNN",
+"NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN^^^^^^^^^^^^^^^^^N^^^^^^NNNNNNNNNNNNNNNNNNN^^^^^^NNNNNNN^^^^^^NNN^^^^^^^^^^^NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNsffIS_o<5%...ENNNNNNNNNNNHNHNHNHNH",
+"NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN^^^^^^^^^^^^^^^^^N^^^^^^NNNNNNNNNNNN^^^^^NN^^^^^NNNNNNNN^^^^^^NNNNN^^^^^^^^^^NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNg*>VheAePe@..MNNNNNNNNNNNNNNNNNNNN",
+"HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH^^^^^HHHHHHHHHHHHH^^^^^^HHHHHHHHHHH^^^^^^HH^^^^^HHHHHHHH^^^^^HHHHHHHH^^^^^^^^^HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH8#D4S)}P;D~...HHHHHHHHHHNHNHNHNHNH",
+"NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN^^^^^NNNNNNNNNNNNNN^^^^^^NNNNNNNNNN^^^^^NNN^^^^^NNNNNNN^^^^^NNNNNNNNNNNN^^^^^^^NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN8+$p}tdqVn.uU.NNNNNNNNNNNNNNNNNNNN",
+"NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN^^^^^NNNNNNNNNNNNNN^^^^^^NNNNNNNNN^^^^^^NNN^^^^^NNNNNNN^^^^^NNNNNNNNNNNNN^^^^^^NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN8Q8y<WC>0La.fiNNNNNNNNNHNHNHNHNHNH",
+"NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN^^^^^^NNNNNN^^^^NNN^^^^^^^NNNNNN^^^^^^^NNNN^^^^^^NNNNN^^^^^^NN^^^^^^NNNNNN^^^^^NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN++H8$$bNm%x....NNNNNNNNNNNNNNNNNNN",
+"HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH^^^^^^HHHH^^^^^HHHH^^^^^^^HHH^^^^^^^^^HHHH^^^^^^^HHH^^^^^^HHH^^^^^^HHHHH^^^^^HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH.9x806H{%%%fv...HHHHHHNHNHNHNHNHNH",
+"NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN^^^^^^^^^^^^^^NNNNN^^^^^^^^^^^^^^^^^^NNNNNN^^^^^^^^^^^^^^NNNNN^^^^^^^NN^^^^^^NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN.B%%90L%%%%%%....BNNNNNNNNNNNNNNNNN",
+"NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN^^^^^^^^^^^^NNNNNNN^^^^^^^^^^^^^^^^NNNNNNN^^^^^^^^^^^^^NNNNNN^^^^^^^^^^^^^^NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN.%%%%%%%%%%%%+..../NNNHNHNHNHNHNHNH",
+"NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN^^^^^^^^^^NNNNNNNNN^^^^^^^^^^^^NNNNNNNNNNN^^^^^^^^^^^NNNNNNNN^^^^^^^^^^^^NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN..%%%%x%%%%%%-a.....NNNNNNNNNNNNNNNN",
+"HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH^^^^^HHHHHHHHHHHHH^^^^^^^HHHHHHHHHHHHHHHHH^^^^^^HHHHHHHHHHHH^^^^^^^^HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH.j3-%x9%%%{H06{.+.v..HNHNHNHNHNHNHNH",
+"NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN..3%x%%%%%x%%%{8N.c...rNNNNNNNNNNNNNN",
+"NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN.MM%%%%x%%%%%%x%%m.+c...NHNHNHNHNHNHNH",
+"NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNE.{%%%%x%%%%%%%x%%gEMc..NNNNNNNNNNNNNN",
+"HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH.cE%%%x%-%%x%%%%%%%%..E..NHNHNHNHNHNHNH",
+"NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN+.m%%x%%-%%%%%%%%%%%..u.v.NNNNNNNNNNNNN",
+"NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNME.%%%%%%-%%%%%%%%%%%..u...HNHNHNHNHNHNH",
+"NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN.i.%%%%%%{%%%%x%%%%%%..i...NNNNNNNNNNNNN",
+"HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHk.B.%%%%%%-%%%%%%%%%%%+vc...HNHNHNHNHNHNH",
+"NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN..NNNNNNNNNNNNNNNNNNNNNNN..NNNNNNNN..NNNNNNNNNNNNNNNNNN..NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN...NN..NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN..NNNNNNNNN..NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN..NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN..UM%%%%%%-%%%%%%%%%%%+.u...NNNNNNNNNNNNN",
+"NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN..NNNNNNNNNNNNNNNNNNNNNNN..NNNNNNNN..NNNNNNNNNNNNNNNNNN..NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN..NNN..NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN..NNNNNNNNN..NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN..NNN..NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN..NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN~.i%%x%%%{%%%%%%%%%%%.u+Mc.HNHNHNHNHNHNH",
+"NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN..NNNNNNNNNNNNNNNNNNNNNNN..NNNNNNNN..NNNNNNNNNNNNNNNNNN..NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN..NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN..NNNNNNNNN..NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN..NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN..NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNKK.L%%%x%x%%%%%%%%%:)Q.v.uMNNNNNNNNNNNNN",
+"HHHHHHHHHHHHHHHHHH...HHHH..HH..HH...HHHHH..H...HHHHHH...HHHHHH...H..HHHH...H..HHHHH...HHHHHH...H..HHHHHHHHH....HHHHH.....HHHH..H....HH.....HH..HHHH...H..HHH..HHHH..HH..HH.HHH.....HHH..H....HHHH..HHHH....HHHHHHHHHH....HHHHH..H...HHHHHH...HHHH..HH.HHH.....HHH....HH..HHH..H...HHHHH....H..HHHHHHHHH....HHH...HHH..HHHH....HHHH....HHH....HHHH..H...HH...HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHVwwK.s%%%%{x%%%%%%%%F}Q...+'HNHNHNHNHNHNH",
+"NNNNNNNNNNNNNNNN.......NN............NNNN.......NNN.......NNN.......NNN.......NNN.......NNN.......NNNNNNNN......NNN.......NNN.......NNN....NN..NNN.......NNN..NNNN..NN.....NN.......NN........NNN..NNN......NNNNNNNN.......NNN.......NNN.......NN.....NN.......NN....NN..NNN.......NNN........NNNNNNN.......NN...NNN..NNN.......NN....NN.......NN............NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNDI_pwwwq.i%%%%%%%%%%%%{VV5...|t,NNNNNNNNNNNN",
+"NNNNNNNNNNNNNNNN..NNN..NN...NN...NN...NNN...NN...NN..NNN..NN...NN...NNN..NN...NNN..NNN..NN...NN...NNNNNNN...NN...NN..NNN...NN...NN...NNN..NNN..NNN..NN...NNN..NNNN..NN.....NN..NNN..NN...NNN..NNN..NN...NN...NNNNNN...NNN..NNN...NN...NN..NNN..NN.....NN..NNN..NNN..NNN..NNN...NN..NNN..NNN...NNNNNNN..NNN...NN..NN...NN..NNN...NNN..NNN..NN...NN...NN...NN..NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNwRw7www}&.+%%%%%%%%%%xH_V>!zq_wRNHNHNHNHNHNH",
+"NNNNNNNNNNNNNNNN..NNN...N...NN...NNN..NNN..NNNN..NN..NNN...N..NNNN..NN..NNNN..NNN..NNN...N..NNNN..NNNNNNN..NNN..NN...NNNN..NN..NNNN..NNN..NNN..NN...NNN..NNN..NNNN..NN...NNNNNNNN...NN...NNN...NN..NN..NNN...NNNNNN..NNNN...NN..NNNN..NN..NNN...N...NNNNNNNN...NNN..NNN..NNN..NNN..NNN..NNN...NNNNNNN...NNNNNNN..NN..NNN...NNNNNNNN..NN...NN...NN..NNN..NNN..NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNww7w7wwwR...%%%%%%%%%xHWV_WWDwww1NNNNNNNNNNN",
+"HHHHHHHHHHHHHHHH........H..HHH...HHH..HHH..HHHH..HH........H..HHHH..HH..HHHH..HHH........H..HHHH..HHHHHHH..HHHHHHH..HHHHH..HH..HHHH..HHH..HHH..HH..HHHH..HHH..HHHH..HH...HHHHH......HH..HHHHH..HH..HH........HHHHHH..HHHHH..HH..HHHH..HH........H...HHHHH......HHH..HHH..HHH..HHH..HHH..HHHH..HHHHHHHH.....HHHH...H..HHHH......HHHH..HH........HH..HHH..HHH..HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHw4wwwwwww]..-x%%%%x%%%8C44VV4wwww1NHNHNHNHNH",
+"NNNNNNNNNNNNNNNN..NNNNNNN..NNN...NNN..NNN..NNNN..NN..NNNNNNN..NNNN..NN..NNNN..NNN..NNNNNNN..NNNN..NNNNNNN..NNNNNNN..NNNNN..NN..NNNN..NNN..NNN..NN..NNNN..NNN..NNNN..NN..NNNNN..NNN..NN..NNNN...NN..NN..NNNNNNNNNNNN..NNNN...NN..NNNN..NN..NNNNNNN..NNNNN..NNN..NNN..NNN..NNN..NNN..NNN..NNN...NNNNNNNNNN.....NNN.....NNNNNN.....NNN..NN...NNNNNNN..NNN..NNN..NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNwww44wwwwPu/%%%%%%%%%9.D4wwwww7wwwRNNNNNNNNN",
+"NNNNNNNNNNNNNNNN..NNN..NN..NNN...NNN..NNN..NNN...NN..NNN..NN..NNN...NN...NNN..NNN..NNN..NN..NNN...NNNNNNN..NNN...N...NNN...NN..NNNN..NNN..NNN..NN...NNN..NNN..NNN...NN..NNNNN..NNN..NN...NNN..NNN..NN..NNN..NNNNNNN...NNN..NNN..NNN...NN..NNN..NN..NNNNN..NNN..NNN..NNN..NNN..NNN..NNN..NNN...NNNNNNN..NNN...NNN....NNNN..NNNN..NNN..NN...NNN..NN..NNN..NNN..NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNDwwwwwwww74>%%%%%%%%%2.QW4www7w7ww7_%NHNHNHNH",
+"NNNNNNNNNNNNNNNN.......NN..NNN...NNN..NNN.......NNN.......NNN.......NNN.......NNN.......NNN.......NNNNNNNN......NNN.......NNN..NNNN..NNN..NNN..NNN.......NNN........NN..NNNNN.......NN........NNN..NNN......NNNNNNNN.......NNN.......NNN.......NN..NNNNN.......NNN...NN..NNN..NNN..NNN........NNNNNNN...NN...NNN....NNNN...NN...NNN...NN.......NN..NNN..NNN..NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN4wwwww4w4wwV[%%%%%%L...@W4wwww4w44D%NNNNNNNNN",
+"HHHHHHHHHHHHHHHHH.....HHH..HHH...HHH..HHH......HHHHH.....HHHH....H..HHHH...H..HHHH.....HHHH....H..HHHHHHHH.....HHHHH.....HHHH..HHHH..HHH..HHH..HHHH......HHHH.......HH..HHHHH.......HH.......HHHH..HHH.....HHHHHHHHH......HHHH......HHHHH.....HHH..HHHHH.......HHH...HH..HHH..HHH..HHHH.......HHHHHHHH......HHHHH...HHHHH......HHHH...HHH....HHHH..HHH..HHH..HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH>D444wwwwww7_y.+M++.....5Cww4ww4VC9HNHNHNHNHNH",
+"NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN..NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN..NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN..NNNNNNNNNNNNNNNNNNN..NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNl>CW_V4wwwwC!+...vvv..v5lVwwwVWJNNNNNNNNNNNNN",
+"NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN...NNN..NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN..NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN..NNN...NNNNNNNNNNNNNNNNNN...NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN#lWW_Wyz.ukkkBkkYMZ#C_DClHNHNHNHNHNHNHNH",
+"NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN.......NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN..NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN.......NNNNNNNNNNNNNNNNNN...NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN!!!X%NNNNNNNNNNNN#qO!NNNNNNNNNNNNNNNN",
+"HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHNHNHNHNHNHNHNHNHNHNHNHNHNH",
+"NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN",
+"NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNHNHNHNHNHNHNHNHNHNHNHNHNHNH",
+"NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN",
+"HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHNHNHNHNHNHNHNHNHNHNHNHNHNHNH",
+"NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN",
+"NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNHNHNHNHNHNHNHNHNHNHNHNHNHNHNH",
+"NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN",
+"HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHNHNHNHNHNHNHNHNHNHNHNHNHNHNHNH",
+"NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN",
+"NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNHNHNHNHNHNHNHNHNHNHNHNHNHNHNHNH"};
diff --git a/ecos/packages/hal/arm/xscale/picasso/current/src/font.h b/ecos/packages/hal/arm/xscale/picasso/current/src/font.h
new file mode 100644
index 0000000..435d543
--- /dev/null
+++ b/ecos/packages/hal/arm/xscale/picasso/current/src/font.h
@@ -0,0 +1,431 @@
+//==========================================================================
+//
+// font.h
+//
+// LCD/VGA display fonts
+//
+//==========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//==========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): gthomas
+// Contributors: gthomas
+// Date: 2001-02-25
+// Description: Simple LCD/VGA fonts
+//####DESCRIPTIONEND####
+
+#ifndef _LCD_FONT_H_
+#define _LCD_FONT_H_
+
+#if (CYGNUM_UE250_VGA_COMM_FONT_SIZE == 8)
+// 8x8 Font - from Helios
+
+#define FIRST_CHAR 0x20
+#define LAST_CHAR 0x7F
+#define FONT_HEIGHT 8
+#define FONT_WIDTH 8
+#define CURSOR_ON 0x7F
+#define CURSOR_OFF 0x20
+static char font_table[LAST_CHAR-FIRST_CHAR+1][8] =
+{
+ { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, /* */
+ { 0x18, 0x18, 0x18, 0x18, 0x18, 0x00, 0x18, 0x00 }, /* ! */
+ { 0x36, 0x36, 0x36, 0x00, 0x00, 0x00, 0x00, 0x00 }, /* " */
+ { 0x6C, 0x6C, 0xFE, 0x6C, 0xFE, 0x6C, 0x6C, 0x00 }, /* # */
+ { 0x30, 0xFC, 0x16, 0x7C, 0xD0, 0x7E, 0x18, 0x00 }, /* $ */
+ { 0x06, 0x66, 0x30, 0x18, 0x0C, 0x66, 0x60, 0x00 }, /* % */
+ { 0x1C, 0x36, 0x36, 0x1C, 0xB6, 0x66, 0xDC, 0x00 }, /* & */
+ { 0x18, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00 }, /* ' */
+ { 0x30, 0x18, 0x0C, 0x0C, 0x0C, 0x18, 0x30, 0x00 }, /* ( */
+ { 0x0C, 0x18, 0x30, 0x30, 0x30, 0x18, 0x0C, 0x00 }, /* ) */
+ { 0x00, 0x18, 0x7E, 0x3C, 0x7E, 0x18, 0x00, 0x00 }, /* * */
+ { 0x00, 0x18, 0x18, 0x7E, 0x18, 0x18, 0x00, 0x00 }, /* + */
+ { 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x0C }, /* , */
+ { 0x00, 0x00, 0x00, 0x7E, 0x00, 0x00, 0x00, 0x00 }, /* - */
+ { 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x00 }, /* . */
+ { 0x00, 0x60, 0x30, 0x18, 0x0C, 0x06, 0x00, 0x00 }, /* / */
+ { 0x3C, 0x66, 0x76, 0x7E, 0x6E, 0x66, 0x3C, 0x00 }, /* 0 */
+ { 0x18, 0x1C, 0x18, 0x18, 0x18, 0x18, 0x7E, 0x00 }, /* 1 */
+ { 0x3C, 0x66, 0x60, 0x30, 0x18, 0x0C, 0x7E, 0x00 }, /* 2 */
+ { 0x3C, 0x66, 0x60, 0x38, 0x60, 0x66, 0x3C, 0x00 }, /* 3 */
+ { 0x30, 0x38, 0x3C, 0x36, 0x7E, 0x30, 0x30, 0x00 }, /* 4 */
+ { 0x7E, 0x06, 0x3E, 0x60, 0x60, 0x66, 0x3C, 0x00 }, /* 5 */
+ { 0x38, 0x0C, 0x06, 0x3E, 0x66, 0x66, 0x3C, 0x00 }, /* 6 */
+ { 0x7E, 0x60, 0x30, 0x18, 0x0C, 0x0C, 0x0C, 0x00 }, /* 7 */
+ { 0x3C, 0x66, 0x66, 0x3C, 0x66, 0x66, 0x3C, 0x00 }, /* 8 */
+ { 0x3C, 0x66, 0x66, 0x7C, 0x60, 0x30, 0x1C, 0x00 }, /* 9 */
+ { 0x00, 0x00, 0x18, 0x18, 0x00, 0x18, 0x18, 0x00 }, /* : */
+ { 0x00, 0x00, 0x18, 0x18, 0x00, 0x18, 0x18, 0x0C }, /* ; */
+ { 0x30, 0x18, 0x0C, 0x06, 0x0C, 0x18, 0x30, 0x00 }, /* < */
+ { 0x00, 0x00, 0x7E, 0x00, 0x7E, 0x00, 0x00, 0x00 }, /* = */
+ { 0x0C, 0x18, 0x30, 0x60, 0x30, 0x18, 0x0C, 0x00 }, /* > */
+ { 0x3C, 0x66, 0x30, 0x18, 0x18, 0x00, 0x18, 0x00 }, /* ? */
+ { 0x3C, 0x66, 0x76, 0x56, 0x76, 0x06, 0x3C, 0x00 }, /* @ */
+ { 0x3C, 0x66, 0x66, 0x7E, 0x66, 0x66, 0x66, 0x00 }, /* A */
+ { 0x3E, 0x66, 0x66, 0x3E, 0x66, 0x66, 0x3E, 0x00 }, /* B */
+ { 0x3C, 0x66, 0x06, 0x06, 0x06, 0x66, 0x3C, 0x00 }, /* C */
+ { 0x1E, 0x36, 0x66, 0x66, 0x66, 0x36, 0x1E, 0x00 }, /* D */
+ { 0x7E, 0x06, 0x06, 0x3E, 0x06, 0x06, 0x7E, 0x00 }, /* E */
+ { 0x7E, 0x06, 0x06, 0x3E, 0x06, 0x06, 0x06, 0x00 }, /* F */
+ { 0x3C, 0x66, 0x06, 0x76, 0x66, 0x66, 0x3C, 0x00 }, /* G */
+ { 0x66, 0x66, 0x66, 0x7E, 0x66, 0x66, 0x66, 0x00 }, /* H */
+ { 0x7E, 0x18, 0x18, 0x18, 0x18, 0x18, 0x7E, 0x00 }, /* I */
+ { 0x7C, 0x30, 0x30, 0x30, 0x30, 0x36, 0x1C, 0x00 }, /* J */
+ { 0x66, 0x36, 0x1E, 0x0E, 0x1E, 0x36, 0x66, 0x00 }, /* K */
+ { 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x7E, 0x00 }, /* L */
+ { 0xC6, 0xEE, 0xFE, 0xD6, 0xD6, 0xC6, 0xC6, 0x00 }, /* M */
+ { 0x66, 0x66, 0x6E, 0x7E, 0x76, 0x66, 0x66, 0x00 }, /* N */
+ { 0x3C, 0x66, 0x66, 0x66, 0x66, 0x66, 0x3C, 0x00 }, /* O */
+ { 0x3E, 0x66, 0x66, 0x3E, 0x06, 0x06, 0x06, 0x00 }, /* P */
+ { 0x3C, 0x66, 0x66, 0x66, 0x56, 0x36, 0x6C, 0x00 }, /* Q */
+ { 0x3E, 0x66, 0x66, 0x3E, 0x36, 0x66, 0x66, 0x00 }, /* R */
+ { 0x3C, 0x66, 0x06, 0x3C, 0x60, 0x66, 0x3C, 0x00 }, /* S */
+ { 0x7E, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x00 }, /* T */
+ { 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x3C, 0x00 }, /* U */
+ { 0x66, 0x66, 0x66, 0x66, 0x66, 0x3C, 0x18, 0x00 }, /* V */
+ { 0xC6, 0xC6, 0xD6, 0xD6, 0xFE, 0xEE, 0xC6, 0x00 }, /* W */
+ { 0x66, 0x66, 0x3C, 0x18, 0x3C, 0x66, 0x66, 0x00 }, /* X */
+ { 0x66, 0x66, 0x66, 0x3C, 0x18, 0x18, 0x18, 0x00 }, /* Y */
+ { 0x7E, 0x60, 0x30, 0x18, 0x0C, 0x06, 0x7E, 0x00 }, /* Z */
+ { 0x3E, 0x06, 0x06, 0x06, 0x06, 0x06, 0x3E, 0x00 }, /* [ */
+ { 0x00, 0x06, 0x0C, 0x18, 0x30, 0x60, 0x00, 0x00 }, /* \ */
+ { 0x7C, 0x60, 0x60, 0x60, 0x60, 0x60, 0x7C, 0x00 }, /* ] */
+ { 0x3C, 0x66, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, /* ^ */
+ { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF }, /* _ */
+ { 0x0C, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, /* ` */
+ { 0x00, 0x00, 0x3C, 0x60, 0x7C, 0x66, 0x7C, 0x00 }, /* a */
+ { 0x06, 0x06, 0x3E, 0x66, 0x66, 0x66, 0x3E, 0x00 }, /* b */
+ { 0x00, 0x00, 0x3C, 0x66, 0x06, 0x66, 0x3C, 0x00 }, /* c */
+ { 0x60, 0x60, 0x7C, 0x66, 0x66, 0x66, 0x7C, 0x00 }, /* d */
+ { 0x00, 0x00, 0x3C, 0x66, 0x7E, 0x06, 0x3C, 0x00 }, /* e */
+ { 0x38, 0x0C, 0x0C, 0x3E, 0x0C, 0x0C, 0x0C, 0x00 }, /* f */
+ { 0x00, 0x00, 0x7C, 0x66, 0x66, 0x7C, 0x60, 0x3C }, /* g */
+ { 0x06, 0x06, 0x3E, 0x66, 0x66, 0x66, 0x66, 0x00 }, /* h */
+ { 0x18, 0x00, 0x1C, 0x18, 0x18, 0x18, 0x3C, 0x00 }, /* i */
+ { 0x18, 0x00, 0x1C, 0x18, 0x18, 0x18, 0x18, 0x0E }, /* j */
+ { 0x06, 0x06, 0x66, 0x36, 0x1E, 0x36, 0x66, 0x00 }, /* k */
+ { 0x1C, 0x18, 0x18, 0x18, 0x18, 0x18, 0x3C, 0x00 }, /* l */
+ { 0x00, 0x00, 0x6C, 0xFE, 0xD6, 0xD6, 0xC6, 0x00 }, /* m */
+ { 0x00, 0x00, 0x3E, 0x66, 0x66, 0x66, 0x66, 0x00 }, /* n */
+ { 0x00, 0x00, 0x3C, 0x66, 0x66, 0x66, 0x3C, 0x00 }, /* o */
+ { 0x00, 0x00, 0x3E, 0x66, 0x66, 0x3E, 0x06, 0x06 }, /* p */
+ { 0x00, 0x00, 0x7C, 0x66, 0x66, 0x7C, 0x60, 0xE0 }, /* q */
+ { 0x00, 0x00, 0x36, 0x6E, 0x06, 0x06, 0x06, 0x00 }, /* r */
+ { 0x00, 0x00, 0x7C, 0x06, 0x3C, 0x60, 0x3E, 0x00 }, /* s */
+ { 0x0C, 0x0C, 0x3E, 0x0C, 0x0C, 0x0C, 0x38, 0x00 }, /* t */
+ { 0x00, 0x00, 0x66, 0x66, 0x66, 0x66, 0x7C, 0x00 }, /* u */
+ { 0x00, 0x00, 0x66, 0x66, 0x66, 0x3C, 0x18, 0x00 }, /* v */
+ { 0x00, 0x00, 0xC6, 0xD6, 0xD6, 0xFE, 0x6C, 0x00 }, /* w */
+ { 0x00, 0x00, 0x66, 0x3C, 0x18, 0x3C, 0x66, 0x00 }, /* x */
+ { 0x00, 0x00, 0x66, 0x66, 0x66, 0x7C, 0x60, 0x3C }, /* y */
+ { 0x00, 0x00, 0x7E, 0x30, 0x18, 0x0C, 0x7E, 0x00 }, /* z */
+ { 0x30, 0x18, 0x18, 0x0E, 0x18, 0x18, 0x30, 0x00 }, /* { */
+ { 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x00 }, /* | */
+ { 0x0C, 0x18, 0x18, 0x70, 0x18, 0x18, 0x0C, 0x00 }, /* } */
+ { 0x8C, 0xD6, 0x62, 0x00, 0x00, 0x00, 0x00, 0x00 }, /* ~ */
+ { 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF } /* Block cursor */
+};
+#else
+
+// 8x16 Font - from UniFLEX
+
+#define FIRST_CHAR 0x00
+#define LAST_CHAR 0xFF
+#define FONT_HEIGHT 16
+#define FONT_WIDTH 8
+#define FONT_LEFT_TO_RIGHT
+#define CURSOR_ON 0xB1
+#define CURSOR_OFF 0x20
+static char font_table[LAST_CHAR-FIRST_CHAR+1][FONT_HEIGHT] = {
+/* 0x00 */ {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
+/* 0x01 */ {0x00,0x00,0x7E,0x81,0xA5,0x81,0x81,0xBD,0x99,0x81,0x81,0x7E,0x00,0x00,0x00,0x00},
+/* 0x02 */ {0x00,0x00,0x7E,0xFF,0xDB,0xFF,0xFF,0xC3,0xC3,0xE7,0xFF,0x7E,0x00,0x00,0x00,0x00},
+/* 0x03 */ {0x00,0x00,0x00,0x00,0x6C,0xFE,0xFE,0xFE,0xFE,0x7C,0x38,0x10,0x00,0x00,0x00,0x00},
+/* 0x04 */ {0x00,0x00,0x00,0x00,0x10,0x38,0x7C,0xFE,0x7C,0x38,0x10,0x00,0x00,0x00,0x00,0x00},
+/* 0x05 */ {0x00,0x00,0x00,0x18,0x3C,0x3C,0xE7,0xE7,0xE7,0x18,0x18,0x3C,0x00,0x00,0x00,0x00},
+/* 0x06 */ {0x00,0x00,0x00,0x18,0x3C,0x7E,0xFF,0xFF,0x7E,0x18,0x18,0x3C,0x00,0x00,0x00,0x00},
+/* 0x07 */ {0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x3C,0x3C,0x18,0x00,0x00,0x00,0x00,0x00,0x00},
+/* 0x08 */ {0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xE7,0xC3,0xC3,0xE7,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF},
+/* 0x09 */ {0x00,0x00,0x00,0x00,0x00,0x3C,0x66,0x42,0x42,0x66,0x3C,0x00,0x00,0x00,0x00,0x00},
+/* 0x0A */ {0xFF,0xFF,0xFF,0xFF,0xFF,0xC3,0x99,0xBD,0xBD,0x99,0xC3,0xFF,0xFF,0xFF,0xFF,0xFF},
+/* 0x0B */ {0x00,0x00,0x3E,0x0E,0x1A,0x32,0x78,0xCC,0xCC,0xCC,0xCC,0x78,0x00,0x00,0x00,0x00},
+/* 0x0C */ {0x00,0x00,0x3C,0x66,0x66,0x66,0x66,0x3C,0x18,0x7E,0x18,0x18,0x00,0x00,0x00,0x00},
+/* 0x0D */ {0x00,0x00,0x30,0x38,0x3C,0x36,0x33,0x30,0x30,0x70,0xF0,0xE0,0x00,0x00,0x00,0x00},
+/* 0x0E */ {0x00,0x00,0x7F,0x63,0x7F,0x63,0x63,0x63,0x63,0x67,0xE7,0xE6,0xC0,0x00,0x00,0x00},
+/* 0x0F */ {0x00,0x00,0x00,0x18,0x18,0xDB,0x3C,0xE7,0x3C,0xDB,0x18,0x18,0x00,0x00,0x00,0x00},
+/* 0x10 */ {0x00,0x80,0xC0,0xE0,0xF0,0xF8,0xFE,0xF8,0xF0,0xE0,0xC0,0x80,0x00,0x00,0x00,0x00},
+/* 0x11 */ {0x00,0x02,0x06,0x0E,0x1E,0x3E,0xFE,0x3E,0x1E,0x0E,0x06,0x02,0x00,0x00,0x00,0x00},
+/* 0x12 */ {0x00,0x00,0x18,0x3C,0x7E,0x18,0x18,0x18,0x7E,0x3C,0x18,0x00,0x00,0x00,0x00,0x00},
+/* 0x13 */ {0x00,0x00,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x00,0x66,0x66,0x00,0x00,0x00,0x00},
+/* 0x14 */ {0x00,0x00,0x7F,0xDB,0xDB,0xDB,0x7B,0x1B,0x1B,0x1B,0x1B,0x1B,0x00,0x00,0x00,0x00},
+/* 0x15 */ {0x00,0x7C,0xC6,0x60,0x38,0x6C,0xC6,0xC6,0x6C,0x38,0x0C,0xC6,0x7C,0x00,0x00,0x00},
+/* 0x16 */ {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFE,0xFE,0xFE,0xFE,0x00,0x00,0x00,0x00},
+/* 0x17 */ {0x00,0x00,0x18,0x3C,0x7E,0x18,0x18,0x18,0x7E,0x3C,0x18,0x7E,0x00,0x00,0x00,0x00},
+/* 0x18 */ {0x00,0x00,0x18,0x3C,0x7E,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x00,0x00,0x00,0x00},
+/* 0x19 */ {0x00,0x00,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x7E,0x3C,0x18,0x00,0x00,0x00,0x00},
+/* 0x1A */ {0x00,0x00,0x00,0x00,0x00,0x18,0x0C,0xFE,0x0C,0x18,0x00,0x00,0x00,0x00,0x00,0x00},
+/* 0x1B */ {0x00,0x00,0x00,0x00,0x00,0x30,0x60,0xFE,0x60,0x30,0x00,0x00,0x00,0x00,0x00,0x00},
+/* 0x1C */ {0x00,0x00,0x00,0x00,0x00,0x00,0xC0,0xC0,0xC0,0xFE,0x00,0x00,0x00,0x00,0x00,0x00},
+/* 0x1D */ {0x00,0x00,0x00,0x00,0x00,0x28,0x6C,0xFE,0x6C,0x28,0x00,0x00,0x00,0x00,0x00,0x00},
+/* 0x1E */ {0x00,0x00,0x00,0x00,0x10,0x38,0x38,0x7C,0x7C,0xFE,0xFE,0x00,0x00,0x00,0x00,0x00},
+/* 0x1F */ {0x00,0x00,0x00,0x00,0xFE,0xFE,0x7C,0x7C,0x38,0x38,0x10,0x00,0x00,0x00,0x00,0x00},
+/* 0x20 */ {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
+/* 0x21 */ {0x00,0x00,0x18,0x3C,0x3C,0x3C,0x18,0x18,0x18,0x00,0x18,0x18,0x00,0x00,0x00,0x00},
+/* 0x22 */ {0x00,0x66,0x66,0x66,0x24,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
+/* 0x23 */ {0x00,0x00,0x00,0x6C,0x6C,0xFE,0x6C,0x6C,0x6C,0xFE,0x6C,0x6C,0x00,0x00,0x00,0x00},
+/* 0x24 */ {0x18,0x18,0x7C,0xC6,0xC2,0xC0,0x7C,0x06,0x06,0x86,0xC6,0x7C,0x18,0x18,0x00,0x00},
+/* 0x25 */ {0x00,0x00,0x00,0x00,0xC2,0xC6,0x0C,0x18,0x30,0x60,0xC6,0x86,0x00,0x00,0x00,0x00},
+/* 0x26 */ {0x00,0x00,0x38,0x6C,0x6C,0x38,0x76,0xDC,0xCC,0xCC,0xCC,0x76,0x00,0x00,0x00,0x00},
+/* 0x27 */ {0x00,0x30,0x30,0x30,0x60,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
+/* 0x28 */ {0x00,0x00,0x0C,0x18,0x30,0x30,0x30,0x30,0x30,0x30,0x18,0x0C,0x00,0x00,0x00,0x00},
+/* 0x29 */ {0x00,0x00,0x30,0x18,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x18,0x30,0x00,0x00,0x00,0x00},
+/* 0x2A */ {0x00,0x00,0x00,0x00,0x00,0x66,0x3C,0xFF,0x3C,0x66,0x00,0x00,0x00,0x00,0x00,0x00},
+/* 0x2B */ {0x00,0x00,0x00,0x00,0x00,0x18,0x18,0x7E,0x18,0x18,0x00,0x00,0x00,0x00,0x00,0x00},
+/* 0x2C */ {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x18,0x18,0x30,0x00,0x00,0x00},
+/* 0x2D */ {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFE,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
+/* 0x2E */ {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x18,0x00,0x00,0x00,0x00},
+/* 0x2F */ {0x00,0x00,0x00,0x00,0x02,0x06,0x0C,0x18,0x30,0x60,0xC0,0x80,0x00,0x00,0x00,0x00},
+/* 0x30 */ {0x00,0x00,0x38,0x6C,0xC6,0xC6,0xD6,0xD6,0xC6,0xC6,0x6C,0x38,0x00,0x00,0x00,0x00},
+/* 0x31 */ {0x00,0x00,0x18,0x38,0x78,0x18,0x18,0x18,0x18,0x18,0x18,0x7E,0x00,0x00,0x00,0x00},
+/* 0x32 */ {0x00,0x00,0x7C,0xC6,0x06,0x0C,0x18,0x30,0x60,0xC0,0xC6,0xFE,0x00,0x00,0x00,0x00},
+/* 0x33 */ {0x00,0x00,0x7C,0xC6,0x06,0x06,0x3C,0x06,0x06,0x06,0xC6,0x7C,0x00,0x00,0x00,0x00},
+/* 0x34 */ {0x00,0x00,0x0C,0x1C,0x3C,0x6C,0xCC,0xFE,0x0C,0x0C,0x0C,0x1E,0x00,0x00,0x00,0x00},
+/* 0x35 */ {0x00,0x00,0xFE,0xC0,0xC0,0xC0,0xFC,0x06,0x06,0x06,0xC6,0x7C,0x00,0x00,0x00,0x00},
+/* 0x36 */ {0x00,0x00,0x38,0x60,0xC0,0xC0,0xFC,0xC6,0xC6,0xC6,0xC6,0x7C,0x00,0x00,0x00,0x00},
+/* 0x37 */ {0x00,0x00,0xFE,0xC6,0x06,0x06,0x0C,0x18,0x30,0x30,0x30,0x30,0x00,0x00,0x00,0x00},
+/* 0x38 */ {0x00,0x00,0x7C,0xC6,0xC6,0xC6,0x7C,0xC6,0xC6,0xC6,0xC6,0x7C,0x00,0x00,0x00,0x00},
+/* 0x39 */ {0x00,0x00,0x7C,0xC6,0xC6,0xC6,0x7E,0x06,0x06,0x06,0x0C,0x78,0x00,0x00,0x00,0x00},
+/* 0x3A */ {0x00,0x00,0x00,0x00,0x18,0x18,0x00,0x00,0x00,0x18,0x18,0x00,0x00,0x00,0x00,0x00},
+/* 0x3B */ {0x00,0x00,0x00,0x00,0x18,0x18,0x00,0x00,0x00,0x18,0x18,0x30,0x00,0x00,0x00,0x00},
+/* 0x3C */ {0x00,0x00,0x00,0x06,0x0C,0x18,0x30,0x60,0x30,0x18,0x0C,0x06,0x00,0x00,0x00,0x00},
+/* 0x3D */ {0x00,0x00,0x00,0x00,0x00,0x7E,0x00,0x00,0x7E,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
+/* 0x3E */ {0x00,0x00,0x00,0x60,0x30,0x18,0x0C,0x06,0x0C,0x18,0x30,0x60,0x00,0x00,0x00,0x00},
+/* 0x3F */ {0x00,0x00,0x7C,0xC6,0xC6,0x0C,0x18,0x18,0x18,0x00,0x18,0x18,0x00,0x00,0x00,0x00},
+/* 0x40 */ {0x00,0x00,0x00,0x7C,0xC6,0xC6,0xDE,0xDE,0xDE,0xDC,0xC0,0x7C,0x00,0x00,0x00,0x00},
+/* 0x41 */ {0x00,0x00,0x10,0x38,0x6C,0xC6,0xC6,0xFE,0xC6,0xC6,0xC6,0xC6,0x00,0x00,0x00,0x00},
+/* 0x42 */ {0x00,0x00,0xFC,0x66,0x66,0x66,0x7C,0x66,0x66,0x66,0x66,0xFC,0x00,0x00,0x00,0x00},
+/* 0x43 */ {0x00,0x00,0x3C,0x66,0xC2,0xC0,0xC0,0xC0,0xC0,0xC2,0x66,0x3C,0x00,0x00,0x00,0x00},
+/* 0x44 */ {0x00,0x00,0xF8,0x6C,0x66,0x66,0x66,0x66,0x66,0x66,0x6C,0xF8,0x00,0x00,0x00,0x00},
+/* 0x45 */ {0x00,0x00,0xFE,0x66,0x62,0x68,0x78,0x68,0x60,0x62,0x66,0xFE,0x00,0x00,0x00,0x00},
+/* 0x46 */ {0x00,0x00,0xFE,0x66,0x62,0x68,0x78,0x68,0x60,0x60,0x60,0xF0,0x00,0x00,0x00,0x00},
+/* 0x47 */ {0x00,0x00,0x3C,0x66,0xC2,0xC0,0xC0,0xDE,0xC6,0xC6,0x66,0x3A,0x00,0x00,0x00,0x00},
+/* 0x48 */ {0x00,0x00,0xC6,0xC6,0xC6,0xC6,0xFE,0xC6,0xC6,0xC6,0xC6,0xC6,0x00,0x00,0x00,0x00},
+/* 0x49 */ {0x00,0x00,0x3C,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x3C,0x00,0x00,0x00,0x00},
+/* 0x4A */ {0x00,0x00,0x1E,0x0C,0x0C,0x0C,0x0C,0x0C,0xCC,0xCC,0xCC,0x78,0x00,0x00,0x00,0x00},
+/* 0x4B */ {0x00,0x00,0xE6,0x66,0x66,0x6C,0x78,0x78,0x6C,0x66,0x66,0xE6,0x00,0x00,0x00,0x00},
+/* 0x4C */ {0x00,0x00,0xF0,0x60,0x60,0x60,0x60,0x60,0x60,0x62,0x66,0xFE,0x00,0x00,0x00,0x00},
+/* 0x4D */ {0x00,0x00,0xC6,0xEE,0xFE,0xFE,0xD6,0xC6,0xC6,0xC6,0xC6,0xC6,0x00,0x00,0x00,0x00},
+/* 0x4E */ {0x00,0x00,0xC6,0xE6,0xF6,0xFE,0xDE,0xCE,0xC6,0xC6,0xC6,0xC6,0x00,0x00,0x00,0x00},
+/* 0x4F */ {0x00,0x00,0x7C,0xC6,0xC6,0xC6,0xC6,0xC6,0xC6,0xC6,0xC6,0x7C,0x00,0x00,0x00,0x00},
+/* 0x50 */ {0x00,0x00,0xFC,0x66,0x66,0x66,0x7C,0x60,0x60,0x60,0x60,0xF0,0x00,0x00,0x00,0x00},
+/* 0x51 */ {0x00,0x00,0x7C,0xC6,0xC6,0xC6,0xC6,0xC6,0xC6,0xD6,0xDE,0x7C,0x0C,0x0E,0x00,0x00},
+/* 0x52 */ {0x00,0x00,0xFC,0x66,0x66,0x66,0x7C,0x6C,0x66,0x66,0x66,0xE6,0x00,0x00,0x00,0x00},
+/* 0x53 */ {0x00,0x00,0x7C,0xC6,0xC6,0x60,0x38,0x0C,0x06,0xC6,0xC6,0x7C,0x00,0x00,0x00,0x00},
+/* 0x54 */ {0x00,0x00,0x7E,0x7E,0x5A,0x18,0x18,0x18,0x18,0x18,0x18,0x3C,0x00,0x00,0x00,0x00},
+/* 0x55 */ {0x00,0x00,0xC6,0xC6,0xC6,0xC6,0xC6,0xC6,0xC6,0xC6,0xC6,0x7C,0x00,0x00,0x00,0x00},
+/* 0x56 */ {0x00,0x00,0xC6,0xC6,0xC6,0xC6,0xC6,0xC6,0xC6,0x6C,0x38,0x10,0x00,0x00,0x00,0x00},
+/* 0x57 */ {0x00,0x00,0xC6,0xC6,0xC6,0xC6,0xD6,0xD6,0xD6,0xFE,0xEE,0x6C,0x00,0x00,0x00,0x00},
+/* 0x58 */ {0x00,0x00,0xC6,0xC6,0x6C,0x7C,0x38,0x38,0x7C,0x6C,0xC6,0xC6,0x00,0x00,0x00,0x00},
+/* 0x59 */ {0x00,0x00,0x66,0x66,0x66,0x66,0x3C,0x18,0x18,0x18,0x18,0x3C,0x00,0x00,0x00,0x00},
+/* 0x5A */ {0x00,0x00,0xFE,0xC6,0x86,0x0C,0x18,0x30,0x60,0xC2,0xC6,0xFE,0x00,0x00,0x00,0x00},
+/* 0x5B */ {0x00,0x00,0x3C,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x3C,0x00,0x00,0x00,0x00},
+/* 0x5C */ {0x00,0x00,0x00,0x80,0xC0,0xE0,0x70,0x38,0x1C,0x0E,0x06,0x02,0x00,0x00,0x00,0x00},
+/* 0x5D */ {0x00,0x00,0x3C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x3C,0x00,0x00,0x00,0x00},
+/* 0x5E */ {0x10,0x38,0x6C,0xC6,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
+/* 0x5F */ {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x00,0x00},
+/* 0x60 */ {0x30,0x30,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
+/* 0x61 */ {0x00,0x00,0x00,0x00,0x00,0x78,0x0C,0x7C,0xCC,0xCC,0xCC,0x76,0x00,0x00,0x00,0x00},
+/* 0x62 */ {0x00,0x00,0xE0,0x60,0x60,0x78,0x6C,0x66,0x66,0x66,0x66,0x7C,0x00,0x00,0x00,0x00},
+/* 0x63 */ {0x00,0x00,0x00,0x00,0x00,0x7C,0xC6,0xC0,0xC0,0xC0,0xC6,0x7C,0x00,0x00,0x00,0x00},
+/* 0x64 */ {0x00,0x00,0x1C,0x0C,0x0C,0x3C,0x6C,0xCC,0xCC,0xCC,0xCC,0x76,0x00,0x00,0x00,0x00},
+/* 0x65 */ {0x00,0x00,0x00,0x00,0x00,0x7C,0xC6,0xFE,0xC0,0xC0,0xC6,0x7C,0x00,0x00,0x00,0x00},
+/* 0x66 */ {0x00,0x00,0x38,0x6C,0x64,0x60,0xF0,0x60,0x60,0x60,0x60,0xF0,0x00,0x00,0x00,0x00},
+/* 0x67 */ {0x00,0x00,0x00,0x00,0x00,0x3E,0x66,0x66,0x66,0x66,0x66,0x3E,0x06,0x66,0x3C,0x00},
+/* 0x68 */ {0x00,0x00,0xE0,0x60,0x60,0x6C,0x76,0x66,0x66,0x66,0x66,0xE6,0x00,0x00,0x00,0x00},
+/* 0x69 */ {0x00,0x00,0x18,0x18,0x00,0x38,0x18,0x18,0x18,0x18,0x18,0x3C,0x00,0x00,0x00,0x00},
+/* 0x6A */ {0x00,0x00,0x06,0x06,0x00,0x0E,0x06,0x06,0x06,0x06,0x06,0x06,0x66,0x66,0x3C,0x00},
+/* 0x6B */ {0x00,0x00,0xE0,0x60,0x60,0x66,0x6C,0x78,0x78,0x6C,0x66,0xE6,0x00,0x00,0x00,0x00},
+/* 0x6C */ {0x00,0x00,0x38,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x3C,0x00,0x00,0x00,0x00},
+/* 0x6D */ {0x00,0x00,0x00,0x00,0x00,0x6C,0xFE,0xD6,0xD6,0xD6,0xC6,0xC6,0x00,0x00,0x00,0x00},
+/* 0x6E */ {0x00,0x00,0x00,0x00,0x00,0xDC,0x66,0x66,0x66,0x66,0x66,0x66,0x00,0x00,0x00,0x00},
+/* 0x6F */ {0x00,0x00,0x00,0x00,0x00,0x7C,0xC6,0xC6,0xC6,0xC6,0xC6,0x7C,0x00,0x00,0x00,0x00},
+/* 0x70 */ {0x00,0x00,0x00,0x00,0x00,0xFC,0x66,0x66,0x66,0x66,0x66,0x7C,0x60,0x60,0xF0,0x00},
+/* 0x71 */ {0x00,0x00,0x00,0x00,0x00,0x7E,0xCC,0xCC,0xCC,0xCC,0xCC,0x7C,0x0C,0x0C,0x1E,0x00},
+/* 0x72 */ {0x00,0x00,0x00,0x00,0x00,0xDC,0x76,0x66,0x60,0x60,0x60,0xF0,0x00,0x00,0x00,0x00},
+/* 0x73 */ {0x00,0x00,0x00,0x00,0x00,0x7C,0xC6,0x60,0x38,0x0C,0xC6,0x7C,0x00,0x00,0x00,0x00},
+/* 0x74 */ {0x00,0x00,0x10,0x30,0x30,0xFC,0x30,0x30,0x30,0x30,0x36,0x1C,0x00,0x00,0x00,0x00},
+/* 0x75 */ {0x00,0x00,0x00,0x00,0x00,0xCC,0xCC,0xCC,0xCC,0xCC,0xCC,0x76,0x00,0x00,0x00,0x00},
+/* 0x76 */ {0x00,0x00,0x00,0x00,0x00,0x66,0x66,0x66,0x66,0x66,0x3C,0x18,0x00,0x00,0x00,0x00},
+/* 0x77 */ {0x00,0x00,0x00,0x00,0x00,0xC6,0xC6,0xD6,0xD6,0xD6,0xFE,0x6C,0x00,0x00,0x00,0x00},
+/* 0x78 */ {0x00,0x00,0x00,0x00,0x00,0xC6,0x6C,0x38,0x38,0x38,0x6C,0xC6,0x00,0x00,0x00,0x00},
+/* 0x79 */ {0x00,0x00,0x00,0x00,0x00,0xC6,0xC6,0xC6,0xC6,0xC6,0xC6,0x7E,0x06,0x0C,0xF8,0x00},
+/* 0x7A */ {0x00,0x00,0x00,0x00,0x00,0xFE,0xCC,0x18,0x30,0x60,0xC6,0xFE,0x00,0x00,0x00,0x00},
+/* 0x7B */ {0x00,0x00,0x0E,0x18,0x18,0x18,0x70,0x18,0x18,0x18,0x18,0x0E,0x00,0x00,0x00,0x00},
+/* 0x7C */ {0x00,0x00,0x18,0x18,0x18,0x18,0x00,0x18,0x18,0x18,0x18,0x18,0x00,0x00,0x00,0x00},
+/* 0x7D */ {0x00,0x00,0x70,0x18,0x18,0x18,0x0E,0x18,0x18,0x18,0x18,0x70,0x00,0x00,0x00,0x00},
+/* 0x7E */ {0x00,0x00,0x76,0xDC,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
+/* 0x7F */ {0x00,0x00,0x00,0x00,0x10,0x38,0x6C,0xC6,0xC6,0xC6,0xFE,0x00,0x00,0x00,0x00,0x00},
+/* 0x80 */ {0x00,0x00,0x3C,0x66,0xC2,0xC0,0xC0,0xC0,0xC2,0x66,0x3C,0x0C,0x06,0x7C,0x00,0x00},
+/* 0x81 */ {0x00,0x00,0xCC,0x00,0x00,0xCC,0xCC,0xCC,0xCC,0xCC,0xCC,0x76,0x00,0x00,0x00,0x00},
+/* 0x82 */ {0x00,0x0C,0x18,0x30,0x00,0x7C,0xC6,0xC6,0xFE,0xC0,0xC6,0x7C,0x00,0x00,0x00,0x00},
+/* 0x83 */ {0x00,0x10,0x38,0x6C,0x00,0x78,0x0C,0x7C,0xCC,0xCC,0xCC,0x76,0x00,0x00,0x00,0x00},
+/* 0x84 */ {0x00,0x00,0xCC,0x00,0x00,0x78,0x0C,0x7C,0xCC,0xCC,0xCC,0x76,0x00,0x00,0x00,0x00},
+/* 0x85 */ {0x00,0x60,0x30,0x18,0x00,0x78,0x0C,0x7C,0xCC,0xCC,0xCC,0x76,0x00,0x00,0x00,0x00},
+/* 0x86 */ {0x00,0x38,0x6C,0x38,0x00,0x78,0x0C,0x7C,0xCC,0xCC,0xCC,0x76,0x00,0x00,0x00,0x00},
+/* 0x87 */ {0x00,0x00,0x00,0x00,0x3C,0x66,0x60,0x60,0x66,0x3C,0x0C,0x06,0x3C,0x00,0x00,0x00},
+/* 0x88 */ {0x00,0x10,0x38,0x6C,0x00,0x7C,0xC6,0xC6,0xFE,0xC0,0xC6,0x7C,0x00,0x00,0x00,0x00},
+/* 0x89 */ {0x00,0x00,0xC6,0x00,0x00,0x7C,0xC6,0xC6,0xFE,0xC0,0xC6,0x7C,0x00,0x00,0x00,0x00},
+/* 0x8A */ {0x00,0x60,0x30,0x18,0x00,0x7C,0xC6,0xC6,0xFE,0xC0,0xC6,0x7C,0x00,0x00,0x00,0x00},
+/* 0x8B */ {0x00,0x00,0x66,0x00,0x00,0x38,0x18,0x18,0x18,0x18,0x18,0x3C,0x00,0x00,0x00,0x00},
+/* 0x8C */ {0x00,0x18,0x3C,0x66,0x00,0x38,0x18,0x18,0x18,0x18,0x18,0x3C,0x00,0x00,0x00,0x00},
+/* 0x8D */ {0x00,0x60,0x30,0x18,0x00,0x38,0x18,0x18,0x18,0x18,0x18,0x3C,0x00,0x00,0x00,0x00},
+/* 0x8E */ {0x00,0xC6,0x00,0x10,0x38,0x6C,0xC6,0xC6,0xFE,0xC6,0xC6,0xC6,0x00,0x00,0x00,0x00},
+/* 0x8F */ {0x38,0x6C,0x38,0x00,0x38,0x6C,0xC6,0xC6,0xFE,0xC6,0xC6,0xC6,0x00,0x00,0x00,0x00},
+/* 0x90 */ {0x18,0x30,0x60,0x00,0xFE,0x66,0x60,0x7C,0x60,0x60,0x66,0xFE,0x00,0x00,0x00,0x00},
+/* 0x91 */ {0x00,0x00,0x00,0x00,0x00,0xCC,0x76,0x36,0x7E,0xD8,0xD8,0x6E,0x00,0x00,0x00,0x00},
+/* 0x92 */ {0x00,0x00,0x3E,0x6C,0xCC,0xCC,0xFE,0xCC,0xCC,0xCC,0xCC,0xCE,0x00,0x00,0x00,0x00},
+/* 0x93 */ {0x00,0x10,0x38,0x6C,0x00,0x7C,0xC6,0xC6,0xC6,0xC6,0xC6,0x7C,0x00,0x00,0x00,0x00},
+/* 0x94 */ {0x00,0x00,0xC6,0x00,0x00,0x7C,0xC6,0xC6,0xC6,0xC6,0xC6,0x7C,0x00,0x00,0x00,0x00},
+/* 0x95 */ {0x00,0x60,0x30,0x18,0x00,0x7C,0xC6,0xC6,0xC6,0xC6,0xC6,0x7C,0x00,0x00,0x00,0x00},
+/* 0x96 */ {0x00,0x30,0x78,0xCC,0x00,0xCC,0xCC,0xCC,0xCC,0xCC,0xCC,0x76,0x00,0x00,0x00,0x00},
+/* 0x97 */ {0x00,0x60,0x30,0x18,0x00,0xCC,0xCC,0xCC,0xCC,0xCC,0xCC,0x76,0x00,0x00,0x00,0x00},
+/* 0x98 */ {0x00,0x00,0xC6,0x00,0x00,0xC6,0xC6,0xC6,0xC6,0xC6,0xC6,0x7E,0x06,0x0C,0x78,0x00},
+/* 0x99 */ {0x00,0xC6,0x00,0x7C,0xC6,0xC6,0xC6,0xC6,0xC6,0xC6,0xC6,0x7C,0x00,0x00,0x00,0x00},
+/* 0x9A */ {0x00,0xC6,0x00,0xC6,0xC6,0xC6,0xC6,0xC6,0xC6,0xC6,0xC6,0x7C,0x00,0x00,0x00,0x00},
+/* 0x9B */ {0x00,0x18,0x18,0x3C,0x66,0x60,0x60,0x60,0x66,0x3C,0x18,0x18,0x00,0x00,0x00,0x00},
+/* 0x9C */ {0x00,0x38,0x6C,0x64,0x60,0xF8,0x60,0x60,0x60,0x60,0xE6,0xFC,0x00,0x00,0x00,0x00},
+/* 0x9D */ {0x00,0x00,0x66,0x66,0x3C,0x18,0x7E,0x18,0x7E,0x18,0x18,0x18,0x00,0x00,0x00,0x00},
+/* 0x9E */ {0x00,0xF8,0xCC,0xCC,0xF8,0xC4,0xCC,0xDE,0xCC,0xCC,0xCC,0xC6,0x00,0x00,0x00,0x00},
+/* 0x9F */ {0x00,0x0E,0x1B,0x18,0x18,0x18,0x7E,0x18,0x18,0x18,0x18,0x18,0xD8,0x70,0x00,0x00},
+/* 0xA0 */ {0x00,0x18,0x30,0x60,0x00,0x78,0x0C,0x7C,0xCC,0xCC,0xCC,0x76,0x00,0x00,0x00,0x00},
+/* 0xA1 */ {0x00,0x0C,0x18,0x30,0x00,0x38,0x18,0x18,0x18,0x18,0x18,0x3C,0x00,0x00,0x00,0x00},
+/* 0xA2 */ {0x00,0x18,0x30,0x60,0x00,0x7C,0xC6,0xC6,0xC6,0xC6,0xC6,0x7C,0x00,0x00,0x00,0x00},
+/* 0xA3 */ {0x00,0x18,0x30,0x60,0x00,0xCC,0xCC,0xCC,0xCC,0xCC,0xCC,0x76,0x00,0x00,0x00,0x00},
+/* 0xA4 */ {0x00,0x00,0x76,0xDC,0x00,0xDC,0x66,0x66,0x66,0x66,0x66,0x66,0x00,0x00,0x00,0x00},
+/* 0xA5 */ {0x76,0xDC,0x00,0xC6,0xE6,0xF6,0xFE,0xDE,0xCE,0xC6,0xC6,0xC6,0x00,0x00,0x00,0x00},
+/* 0xA6 */ {0x00,0x3C,0x6C,0x6C,0x3E,0x00,0x7E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
+/* 0xA7 */ {0x00,0x38,0x6C,0x6C,0x38,0x00,0x7C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
+/* 0xA8 */ {0x00,0x00,0x30,0x30,0x00,0x30,0x30,0x60,0xC0,0xC6,0xC6,0x7C,0x00,0x00,0x00,0x00},
+/* 0xA9 */ {0x00,0x00,0x00,0x00,0x00,0x00,0xFE,0xC0,0xC0,0xC0,0xC0,0x00,0x00,0x00,0x00,0x00},
+/* 0xAA */ {0x00,0x00,0x00,0x00,0x00,0x00,0xFE,0x06,0x06,0x06,0x06,0x00,0x00,0x00,0x00,0x00},
+/* 0xAB */ {0x00,0xC0,0xC0,0xC2,0xC6,0xCC,0x18,0x30,0x60,0xDC,0x86,0x0C,0x18,0x3E,0x00,0x00},
+/* 0xAC */ {0x00,0xC0,0xC0,0xC2,0xC6,0xCC,0x18,0x30,0x66,0xCE,0x9E,0x3E,0x06,0x06,0x00,0x00},
+/* 0xAD */ {0x00,0x00,0x18,0x18,0x00,0x18,0x18,0x18,0x3C,0x3C,0x3C,0x18,0x00,0x00,0x00,0x00},
+/* 0xAE */ {0x00,0x00,0x00,0x00,0x00,0x36,0x6C,0xD8,0x6C,0x36,0x00,0x00,0x00,0x00,0x00,0x00},
+/* 0xAF */ {0x00,0x00,0x00,0x00,0x00,0xD8,0x6C,0x36,0x6C,0xD8,0x00,0x00,0x00,0x00,0x00,0x00},
+/* 0xB0 */ {0x11,0x44,0x11,0x44,0x11,0x44,0x11,0x44,0x11,0x44,0x11,0x44,0x11,0x44,0x11,0x44},
+/* 0xB1 */ {0x55,0xAA,0x55,0xAA,0x55,0xAA,0x55,0xAA,0x55,0xAA,0x55,0xAA,0x55,0xAA,0x55,0xAA},
+/* 0xB2 */ {0xDD,0x77,0xDD,0x77,0xDD,0x77,0xDD,0x77,0xDD,0x77,0xDD,0x77,0xDD,0x77,0xDD,0x77},
+/* 0xB3 */ {0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18},
+/* 0xB4 */ {0x18,0x18,0x18,0x18,0x18,0x18,0x18,0xF8,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18},
+/* 0xB5 */ {0x18,0x18,0x18,0x18,0x18,0xF8,0x18,0xF8,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18},
+/* 0xB6 */ {0x36,0x36,0x36,0x36,0x36,0x36,0x36,0xF6,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36},
+/* 0xB7 */ {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFE,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36},
+/* 0xB8 */ {0x00,0x00,0x00,0x00,0x00,0xF8,0x18,0xF8,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18},
+/* 0xB9 */ {0x36,0x36,0x36,0x36,0x36,0xF6,0x06,0xF6,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36},
+/* 0xBA */ {0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36},
+/* 0xBB */ {0x00,0x00,0x00,0x00,0x00,0xFE,0x06,0xF6,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36},
+/* 0xBC */ {0x36,0x36,0x36,0x36,0x36,0xF6,0x06,0xFE,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
+/* 0xBD */ {0x36,0x36,0x36,0x36,0x36,0x36,0x36,0xFE,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
+/* 0xBE */ {0x18,0x18,0x18,0x18,0x18,0xF8,0x18,0xF8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
+/* 0xBF */ {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xF8,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18},
+/* 0xC0 */ {0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x1F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
+/* 0xC1 */ {0x18,0x18,0x18,0x18,0x18,0x18,0x18,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
+/* 0xC2 */ {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18},
+/* 0xC3 */ {0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x1F,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18},
+/* 0xC4 */ {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
+/* 0xC5 */ {0x18,0x18,0x18,0x18,0x18,0x18,0x18,0xFF,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18},
+/* 0xC6 */ {0x18,0x18,0x18,0x18,0x18,0x1F,0x18,0x1F,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18},
+/* 0xC7 */ {0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x37,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36},
+/* 0xC8 */ {0x36,0x36,0x36,0x36,0x36,0x37,0x30,0x3F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
+/* 0xC9 */ {0x00,0x00,0x00,0x00,0x00,0x3F,0x30,0x37,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36},
+/* 0xCA */ {0x36,0x36,0x36,0x36,0x36,0xF7,0x00,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
+/* 0xCB */ {0x00,0x00,0x00,0x00,0x00,0xFF,0x00,0xF7,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36},
+/* 0xCC */ {0x36,0x36,0x36,0x36,0x36,0x37,0x30,0x37,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36},
+/* 0xCD */ {0x00,0x00,0x00,0x00,0x00,0xFF,0x00,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
+/* 0xCE */ {0x36,0x36,0x36,0x36,0x36,0xF7,0x00,0xF7,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36},
+/* 0xCF */ {0x18,0x18,0x18,0x18,0x18,0xFF,0x00,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
+/* 0xD0 */ {0x36,0x36,0x36,0x36,0x36,0x36,0x36,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
+/* 0xD1 */ {0x00,0x00,0x00,0x00,0x00,0xFF,0x00,0xFF,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18},
+/* 0xD2 */ {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36},
+/* 0xD3 */ {0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x3F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
+/* 0xD4 */ {0x18,0x18,0x18,0x18,0x18,0x1F,0x18,0x1F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
+/* 0xD5 */ {0x00,0x00,0x00,0x00,0x00,0x1F,0x18,0x1F,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18},
+/* 0xD6 */ {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3F,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36},
+/* 0xD7 */ {0x36,0x36,0x36,0x36,0x36,0x36,0x36,0xFF,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36},
+/* 0xD8 */ {0x18,0x18,0x18,0x18,0x18,0xFF,0x18,0xFF,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18},
+/* 0xD9 */ {0x18,0x18,0x18,0x18,0x18,0x18,0x18,0xF8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
+/* 0xDA */ {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1F,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18},
+/* 0xDB */ {0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF},
+/* 0xDC */ {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF},
+/* 0xDD */ {0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0},
+/* 0xDE */ {0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F},
+/* 0xDF */ {0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
+/* 0xE0 */ {0x00,0x00,0x00,0x00,0x00,0x76,0xDC,0xD8,0xD8,0xD8,0xDC,0x76,0x00,0x00,0x00,0x00},
+/* 0xE1 */ {0x00,0x00,0x7C,0xC6,0xC6,0xC6,0xFC,0xC6,0xC6,0xC6,0xC6,0xDC,0xC0,0xC0,0x00,0x00},
+/* 0xE2 */ {0x00,0x00,0xFE,0xC6,0xC6,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0x00,0x00,0x00,0x00},
+/* 0xE3 */ {0x00,0x00,0x00,0x00,0x00,0xFE,0x6C,0x6C,0x6C,0x6C,0x6C,0x6C,0x00,0x00,0x00,0x00},
+/* 0xE4 */ {0x00,0x00,0xFE,0xC6,0x60,0x30,0x18,0x18,0x30,0x60,0xC6,0xFE,0x00,0x00,0x00,0x00},
+/* 0xE5 */ {0x00,0x00,0x00,0x00,0x00,0x7E,0xD8,0xD8,0xD8,0xD8,0xD8,0x70,0x00,0x00,0x00,0x00},
+/* 0xE6 */ {0x00,0x00,0x00,0x00,0x00,0x66,0x66,0x66,0x66,0x66,0x7C,0x60,0xC0,0x00,0x00,0x00},
+/* 0xE7 */ {0x00,0x00,0x00,0x00,0x00,0x76,0xDC,0x18,0x18,0x18,0x18,0x18,0x00,0x00,0x00,0x00},
+/* 0xE8 */ {0x00,0x00,0x7E,0x18,0x3C,0x66,0x66,0x66,0x66,0x3C,0x18,0x7E,0x00,0x00,0x00,0x00},
+/* 0xE9 */ {0x00,0x00,0x38,0x6C,0xC6,0xC6,0xFE,0xC6,0xC6,0xC6,0x6C,0x38,0x00,0x00,0x00,0x00},
+/* 0xEA */ {0x00,0x00,0x38,0x6C,0xC6,0xC6,0xC6,0x6C,0x6C,0x6C,0x6C,0xEE,0x00,0x00,0x00,0x00},
+/* 0xEB */ {0x00,0x00,0x1E,0x30,0x18,0x0C,0x3E,0x66,0x66,0x66,0x66,0x3C,0x00,0x00,0x00,0x00},
+/* 0xEC */ {0x00,0x00,0x00,0x00,0x00,0x7E,0xDB,0xDB,0xDB,0x7E,0x00,0x00,0x00,0x00,0x00,0x00},
+/* 0xED */ {0x00,0x00,0x00,0x03,0x06,0x7E,0xDB,0xDB,0xF3,0x7E,0x60,0xC0,0x00,0x00,0x00,0x00},
+/* 0xEE */ {0x00,0x00,0x1C,0x30,0x60,0x60,0x7C,0x60,0x60,0x60,0x30,0x1C,0x00,0x00,0x00,0x00},
+/* 0xEF */ {0x00,0x00,0x7C,0xC6,0xC6,0xC6,0xC6,0xC6,0xC6,0xC6,0xC6,0xC6,0x00,0x00,0x00,0x00},
+/* 0xF0 */ {0x00,0x00,0x00,0x00,0xFE,0x00,0x00,0xFE,0x00,0x00,0xFE,0x00,0x00,0x00,0x00,0x00},
+/* 0xF1 */ {0x00,0x00,0x00,0x00,0x18,0x18,0x7E,0x18,0x18,0x00,0x00,0xFF,0x00,0x00,0x00,0x00},
+/* 0xF2 */ {0x00,0x00,0x00,0x30,0x18,0x0C,0x06,0x0C,0x18,0x30,0x00,0x7E,0x00,0x00,0x00,0x00},
+/* 0xF3 */ {0x00,0x00,0x00,0x0C,0x18,0x30,0x60,0x30,0x18,0x0C,0x00,0x7E,0x00,0x00,0x00,0x00},
+/* 0xF4 */ {0x00,0x0E,0x1B,0x1B,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18},
+/* 0xF5 */ {0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0xD8,0xD8,0xD8,0x70,0x00,0x00,0x00,0x00},
+/* 0xF6 */ {0x00,0x00,0x00,0x00,0x18,0x18,0x00,0x7E,0x00,0x18,0x18,0x00,0x00,0x00,0x00,0x00},
+/* 0xF7 */ {0x00,0x00,0x00,0x00,0x00,0x76,0xDC,0x00,0x76,0xDC,0x00,0x00,0x00,0x00,0x00,0x00},
+/* 0xF8 */ {0x00,0x38,0x6C,0x6C,0x38,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
+/* 0xF9 */ {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
+/* 0xFA */ {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
+/* 0xFB */ {0x00,0x0F,0x0C,0x0C,0x0C,0x0C,0x0C,0xEC,0x6C,0x6C,0x3C,0x1C,0x00,0x00,0x00,0x00},
+/* 0xFC */ {0x00,0xD8,0x6C,0x6C,0x6C,0x6C,0x6C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
+/* 0xFD */ {0x00,0x70,0xD8,0x30,0x60,0xC8,0xF8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
+/* 0xFE */ {0x00,0x00,0x00,0x00,0x7C,0x7C,0x7C,0x7C,0x7C,0x7C,0x7C,0x00,0x00,0x00,0x00,0x00},
+/* 0xFF */ {0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00}
+};
+
+#endif
+
+#endif // _LCD_FONT_H_
diff --git a/ecos/packages/hal/arm/xscale/picasso/current/src/picasso_ide.c b/ecos/packages/hal/arm/xscale/picasso/current/src/picasso_ide.c
new file mode 100644
index 0000000..70f9995
--- /dev/null
+++ b/ecos/packages/hal/arm/xscale/picasso/current/src/picasso_ide.c
@@ -0,0 +1,137 @@
+//==========================================================================
+//
+// picasso_ide.c
+//
+// HAL support code for NMI uEngine uE250 picasso
+//
+//==========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//==========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): msalter
+// Contributors: msalter, gthomas
+// Date: 2002-01-04
+// Purpose: PCI support
+// Description: Implementations of HAL PCI interfaces
+//
+//####DESCRIPTIONEND####
+//
+//========================================================================*/
+
+#include <pkgconf/hal.h>
+#include <pkgconf/system.h>
+#include CYGBLD_HAL_PLATFORM_H
+#include CYGHWR_MEMORY_LAYOUT_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/infra/diag.h> // diag_printf()
+
+#include <cyg/hal/hal_io.h> // IO macros
+#include <cyg/hal/hal_if.h> // calling interface API
+#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/io/pci_hw.h>
+#include <cyg/io/pci.h>
+
+#ifdef CYGPKG_IO_PCI
+
+#define MAX_IDE 2
+static struct {
+ cyg_uint32 cmd_bar;
+ cyg_uint32 ctl_bar;
+} ide_ctrl[MAX_IDE];
+
+cyg_uint8
+cyg_hal_plf_ide_read_uint8(int ctlr, cyg_uint32 reg)
+{
+ return pci_io_read_8(ide_ctrl[ctlr].cmd_bar + reg);
+}
+
+void
+cyg_hal_plf_ide_write_uint8(int ctlr, cyg_uint32 reg, cyg_uint8 val)
+{
+ pci_io_write_8(ide_ctrl[ctlr].cmd_bar + reg, val);
+}
+
+cyg_uint16
+cyg_hal_plf_ide_read_uint16(int ctlr, cyg_uint32 reg)
+{
+ return pci_io_read_16(ide_ctrl[ctlr].cmd_bar + reg);
+}
+
+void
+cyg_hal_plf_ide_write_uint16(int ctlr, cyg_uint32 reg, cyg_uint16 val)
+{
+ pci_io_write_16(ide_ctrl[ctlr].cmd_bar + reg, val);
+}
+
+void
+cyg_hal_plf_ide_write_control(int ctlr, cyg_uint32 reg, cyg_uint8 val)
+{
+ pci_io_write_8(ide_ctrl[ctlr].ctl_bar + reg, val);
+}
+
+int
+cyg_hal_plf_ide_init(void)
+{
+ int i;
+ cyg_pci_device_id ide_dev = CYG_PCI_NULL_DEVID;
+ cyg_pci_device ide_info;
+
+// diag_printf("Initializing IDE controller\n");
+
+ if (cyg_pci_find_device((cyg_uint16)0x1095, (cyg_uint16)0x0649, &ide_dev)) {
+ cyg_pci_get_device_info(ide_dev, &ide_info);
+#ifdef DEBUG
+ for (i = 0; i < 6; i++) {
+ diag_printf("IDE - base[%d]: %08p, size: %08p, map: %08p\n",
+ i, ide_info.base_address[i], ide_info.base_size[i], ide_info.base_map[i]);
+ }
+#endif
+ for (i = 0; i < MAX_IDE; i++) {
+ ide_ctrl[i].cmd_bar = ide_info.base_map[(2*i)+0] & 0xFFFFFFFE;
+ ide_ctrl[i].ctl_bar = ide_info.base_map[(2*i)+1] & 0xFFFFFFFE;
+ }
+ return HAL_IDE_NUM_CONTROLLERS;
+ } else {
+ diag_printf("Can't find IDE controller!\n");
+ return 0;
+ }
+}
+
+#endif // CYGPKG_IO_PCI
diff --git a/ecos/packages/hal/arm/xscale/picasso/current/src/picasso_misc.c b/ecos/packages/hal/arm/xscale/picasso/current/src/picasso_misc.c
new file mode 100644
index 0000000..cf0b2df
--- /dev/null
+++ b/ecos/packages/hal/arm/xscale/picasso/current/src/picasso_misc.c
@@ -0,0 +1,234 @@
+//=============================================================================
+//
+// picasso_misc.c
+//
+// Miscellaneous platform support for NMI picasso
+//
+//=============================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=============================================================================
+
+#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_pxa2x0.h>
+// FIXME
+#include <cyg/hal/picasso.h> // Platform specifics
+
+#include <cyg/infra/diag.h> // diag_printf
+
+#include <cyg/hal/hal_mm.h>
+
+#include <string.h> // memset
+
+externC void initialize_plx_bridge(void);
+
+void
+hal_mmu_init(void)
+{
+ // Set up the translation tables at offset 0x4000
+ unsigned long ttb_base = PXA2X0_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_DACR_DEFAULT;
+ 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 */
+#define _CACHED ARM_CACHEABLE
+#define _UNCACHED ARM_UNCACHEABLE
+#define _BUF ARM_BUFFERABLE
+#define _NOBUF ARM_UNBUFFERABLE
+#define _RWRW ARM_ACCESS_PERM_RW_RW
+ X_ARM_MMU_SECTION(0x000, 0x500, 32, _CACHED, _BUF, _RWRW); /* Boot flash ROMspace */
+ X_ARM_MMU_SECTION(0x150, 0x150, 4, _UNCACHED, _NOBUF, _RWRW); /* PCI Config space CS5 */
+ X_ARM_MMU_SECTION(0x040, 0x340, 64, _UNCACHED, _NOBUF, _RWRW); /* PCI Control regs CS1 */
+ X_ARM_MMU_SECTION(0xA00, 0x000, 64, _CACHED, _BUF, _RWRW); /* DRAM Bank 0 */
+ X_ARM_MMU_SECTION(0xA00, 0xC00, 64, _UNCACHED, _BUF, _RWRW); /* DRAM Bank 0 */
+ X_ARM_MMU_SECTION(0xE00, 0xE00, 128, _CACHED, _BUF, _RWRW); /* Zeros (Cache Clean) Bank */
+
+ X_ARM_MMU_SECTION(0x0c0, 0x0c0, 64, _UNCACHED, _NOBUF, _RWRW); /* PCI Mem space CS3 */
+ X_ARM_MMU_SECTION(0x100, 0x100, 64, _UNCACHED, _NOBUF, _RWRW); /* PCI Mem space CS4 */
+ X_ARM_MMU_SECTION(0x140, 0x140, 16, _UNCACHED, _NOBUF, _RWRW); /* PCI Mem space CS5 */
+ X_ARM_MMU_SECTION(0x160, 0x160, 32, _UNCACHED, _NOBUF, _RWRW); /* PCI I/O space CS5 */
+ X_ARM_MMU_SECTION(0x400, 0x400, 64, _UNCACHED, _NOBUF, _RWRW); /* Peripheral Registers */
+ X_ARM_MMU_SECTION(0x440, 0x440, 64, _UNCACHED, _NOBUF, _RWRW); /* LCD Registers */
+ X_ARM_MMU_SECTION(0x480, 0x480, 64, _UNCACHED, _NOBUF, _RWRW); /* Memory Ctl Registers */
+ X_ARM_MMU_SECTION(0x900, 0x900, 64, _UNCACHED, _NOBUF, _RWRW); /* PCI I/O Space */
+ }
+
+//
+// Platform specific initialization
+//
+
+void
+plf_hardware_init(void)
+{
+
+ *PXA2X0_GPCR0 = 0x00400000;
+ // PXA250_GPSR0 = 0x00200000;
+
+ // RAM startup only - rewrite relevent bits depending on config
+#ifndef CYG_HAL_STARTUP_ROM
+ HAL_DCACHE_SYNC(); // Force data out
+ HAL_DCACHE_INVALIDATE_ALL(); // Flush TLBs: make new mmu state effective
+#endif // ! CYG_HAL_STARTUP_ROM - RAM start only
+
+ hal_if_init();
+
+ cyg_hal_plf_pci_init();
+ // Set up to handle PCI interrupts
+ HAL_INTERRUPT_CONFIGURE(CYGNUM_HAL_INTERRUPT_GPIO1, 0, 0); // Falling edge
+ HAL_INTERRUPT_UNMASK(CYGNUM_HAL_INTERRUPT_GPIO1);
+ PCICTL_INT_RESET = 0xFF; // Clear all pending interrupts
+ PCICTL_INT_EDGE = 0xFF; // Generate interrupts
+ PCICTL_IRQ_MASK = 0x00; // All masked
+
+}
+
+//
+// Memory layout - runtime variations of all kinds.
+//
+externC cyg_uint8 *
+hal_arm_mem_real_region_top( cyg_uint8 *regionend )
+{
+ CYG_ASSERT( hal_dram_size > 0, "Didn't detect DRAM size!" );
+ CYG_ASSERT( hal_dram_size <= 256<<20,
+ "More than 256MB reported - that can't be right" );
+ CYG_ASSERT( 0 == (hal_dram_size & 0xfffff),
+ "hal_dram_size not whole Mb" );
+ // is it the "normal" end of the DRAM region? If so, it should be
+ // replaced by the real size
+ if ( regionend ==
+ ((cyg_uint8 *)CYGMEM_REGION_ram + CYGMEM_REGION_ram_SIZE) ) {
+ regionend = (cyg_uint8 *)CYGMEM_REGION_ram + hal_dram_size;
+ }
+ // Also, we must check for the top of the heap having moved. This is
+ // because the heap does not abut the top of memory.
+#ifdef CYGMEM_SECTION_heap1
+ if ( regionend ==
+ ((cyg_uint8 *)CYGMEM_SECTION_heap1 + CYGMEM_SECTION_heap1_SIZE) ) {
+ // hal_dram_size excludes the PCI window on this platform.
+ if ( regionend > (cyg_uint8 *)CYGMEM_REGION_ram + hal_dram_size )
+ regionend = (cyg_uint8 *)CYGMEM_REGION_ram + hal_dram_size;
+ }
+#endif
+ return regionend;
+}
+
+// ------------------------------------------------------------------------
+// Extended, platform-specific, interrupt handling
+
+// FIXME - still needs work to support interrupts from PXA bridge
+
+int
+_picasso_extended_irq(void)
+{
+ cyg_uint32 stat = PCICTL_STATUS_REG;
+ int irq = 0;
+
+ if (stat & 0x1F0) {
+ PCICTL_INT_RESET = 0xFF; // Clear all pending interrupts
+ }
+ if (stat & 0x00F) {
+ // PCI interrupt
+ for (irq = 0; irq < 4; irq++) {
+ if ((stat & (1 << irq)) != 0) {
+ break;
+ }
+ }
+ irq += _uPCI_BASE_INTERRUPT;
+ }
+ HAL_INTERRUPT_ACKNOWLEDGE(CYGNUM_HAL_INTERRUPT_GPIO1);
+ PCICTL_INT_EDGE = 0xFF; // Generate interrupts
+ return irq;
+}
+
+void
+_picasso_extended_int_mask(int vector)
+{
+ if (vector <= CYGNUM_HAL_INTERRUPT_PCI_INTD) {
+ PCICTL_IRQ_MASK &= ~(1<<(vector-CYGNUM_HAL_INTERRUPT_PCI_INTA));
+ }
+}
+
+void
+_picasso_extended_int_unmask(int vector)
+{
+ if (vector <= CYGNUM_HAL_INTERRUPT_PCI_INTD) {
+ PCICTL_IRQ_MASK |= (1<<(vector-CYGNUM_HAL_INTERRUPT_PCI_INTA));
+ }
+}
+
+void
+_picasso_extended_int_acknowledge(int vector)
+{
+}
+
+void
+_picasso_extended_int_configure(int vector, int level, int up)
+{
+}
+
+void
+_picasso_extended_int_set_level(int vector, int level)
+{
+}
+
+
+// ------------------------------------------------------------------------
+// EOF picasso_misc.c
diff --git a/ecos/packages/hal/arm/xscale/picasso/current/src/picasso_pci.c b/ecos/packages/hal/arm/xscale/picasso/current/src/picasso_pci.c
new file mode 100644
index 0000000..2b6195b
--- /dev/null
+++ b/ecos/packages/hal/arm/xscale/picasso/current/src/picasso_pci.c
@@ -0,0 +1,364 @@
+//==========================================================================
+//
+// picasso_pci.c
+//
+// HAL support code for NMI uEngine picasso PCI
+//
+//==========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//==========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): msalter
+// Contributors: msalter, gthomas, David Mazur <david@mind.be>
+// Date: 2002-01-04
+// Purpose: PCI support
+// Description: Implementations of HAL PCI interfaces
+//
+//####DESCRIPTIONEND####
+//
+//========================================================================*/
+
+#include <pkgconf/hal.h>
+#include <pkgconf/system.h>
+#include CYGBLD_HAL_PLATFORM_H
+#include CYGHWR_MEMORY_LAYOUT_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/infra/diag.h> // diag_printf()
+
+#include <cyg/hal/hal_io.h> // IO macros
+#include <cyg/hal/hal_if.h> // calling interface API
+#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/plf_io.h>
+#include <cyg/io/pci_hw.h>
+#include <cyg/io/pci.h>
+
+#ifdef CYGPKG_IO_PCI
+
+#ifdef CYGSEM_HAL_LOAD_PCI_FPGA
+static unsigned char picasso_pci_bitstream[] = {
+#include "picasso_pci_bitstream.h"
+};
+externC void load_fpga(void *bitstream, int len);
+#endif
+
+void
+cyg_hal_plf_pci_init(void)
+{
+ cyg_uint8 next_bus;
+ static bool _done = false;
+
+ if (_done) return;
+ _done = true;
+
+ diag_printf("Initializing PCI.\n");
+
+#ifdef CYGSEM_HAL_LOAD_PCI_FPGA
+ // Set MSC0 for FPGA configuration
+ *PXA2X0_MSC1 = (*PXA2X0_MSC1 & 0x0000FFFF);
+
+ // Program FPGA
+ load_fpga(picasso_pci_bitstream, sizeof(picasso_pci_bitstream));
+#endif
+
+ *PXA2X0_MSC0 = (*PXA2X0_MSC0 & 0x0000FFFF) | 0x7ff10000;
+ *PXA2X0_MSC1 = (*PXA2X0_MSC1 & 0x0000FFFF) | 0x70e40000;
+ *PXA2X0_MSC2 = 0x70e470e4;
+
+ *PXA2X0_MDREFR = 0x0009c018;
+ *PXA2X0_MDCNFG = 0x03001bc9;
+
+ // FIXME: Change MSC values ??
+ // Set FPGA to 110.6 MHz
+ *PXA2X0_GPDR0 |= (0x01 << 7);
+ *PXA2X0_GPSR0 |= (0x01 << 7);
+ *PXA2X0_GPDR1 |= (0x01 << (45-32));
+ *PXA2X0_GPCR1 |= (0x01 << (45-32));
+
+ // Set busmastering
+ diag_printf("Activating PCI bridge.\n");
+ PCICTL_MISC |= (1 | PCI_SDRAM_128) | PCI_TIMER;
+
+ // Set command master
+ cyg_hal_plf_pci_cfg_write_byte(0,0, CYG_PCI_CFG_COMMAND, CYG_PCI_CFG_COMMAND_MASTER);
+
+ diag_printf("Scanning PCI bridge...\n");
+
+ // Initialize PCI support
+ cyg_pci_init();
+
+ // Configure PCI bus.
+ next_bus = 1;
+ cyg_pci_configure_bus(0, &next_bus);
+
+ if (1){
+ cyg_uint8 devfn;
+ cyg_pci_device_id devid;
+ cyg_pci_device dev_info;
+ int i;
+
+ devid = CYG_PCI_DEV_MAKE_ID(next_bus-1, 0) | CYG_PCI_NULL_DEVFN;
+ while (cyg_pci_find_next(devid, &devid)) {
+ devfn = CYG_PCI_DEV_GET_DEVFN(devid);
+ cyg_pci_get_device_info(devid, &dev_info);
+
+ diag_printf("\n");
+ diag_printf("Bus: %d\n", CYG_PCI_DEV_GET_BUS(devid));
+ diag_printf("PCI Device: %d\n", CYG_PCI_DEV_GET_DEV(devfn));
+ diag_printf("PCI Func : %d\n", CYG_PCI_DEV_GET_FN(devfn));
+ diag_printf("Vendor Id : 0x%08X\n", dev_info.vendor);
+ diag_printf("Device Id : 0x%08X\n", dev_info.device);
+ for (i = 0; i < dev_info.num_bars; i++) {
+ diag_printf(" BAR[%d] 0x%08x /", i, dev_info.base_address[i]);
+ diag_printf(" probed size 0x%08x / CPU addr 0x%08x\n",
+ dev_info.base_size[i], dev_info.base_map[i]);
+ }
+ }
+ }
+}
+
+void
+_picasso_pci_translate_interrupt(int bus, int devfn, int *vector, int *valid)
+{
+ int dev = CYG_PCI_DEV_GET_DEV(devfn);
+
+ if (dev <= 5) {
+ *vector = _uPCI_BASE_INTERRUPT+(dev-1);
+ valid = true;;
+ } else {
+ valid = false;
+ }
+}
+
+static void
+cyg_hal_plf_pci_clear_idsel(void)
+{
+ // Clear any active idsels
+ PCICTL_MISC &= ~PCI_IDSEL_OFF;
+ PCICTL_STATUS_REG = 0;
+}
+
+void
+cyg_hal_plf_pci_select_idsel(cyg_uint32 dev)
+{
+ cyg_hal_plf_pci_clear_idsel();
+ // PCICTL_STATUS_REG = 0x0;
+ PCICTL_MISC |= 1 + (((dev + 1) << PCI_IDSEL_SHIFT));
+}
+
+#define _PCI_ADDR(bus, devfn) (PCI_CONFIG_BASE | \
+ (bus << 16) | \
+ (CYG_PCI_DEV_GET_DEV(devfn) << 11) | \
+ (CYG_PCI_DEV_GET_FN(devfn) << 8))
+
+cyg_uint32
+cyg_hal_plf_pci_cfg_read_dword(cyg_uint32 bus, cyg_uint32 devfn,
+ cyg_uint32 offset)
+{
+ cyg_uint32 config_data;
+ volatile cyg_uint32 *address = (cyg_uint32 *)_PCI_ADDR(bus, devfn);
+
+ cyg_hal_plf_pci_select_idsel(CYG_PCI_DEV_GET_DEV(devfn));
+ config_data = address[offset >> 2];
+ if ((PCICTL_STATUS_REG & 0x0020) == 0x0020) {
+ // Configuration cycle failed
+ config_data = 0xFFFFFFFF;
+ }
+ cyg_hal_plf_pci_clear_idsel();
+
+ return config_data;
+}
+
+void
+cyg_hal_plf_pci_cfg_write_dword(cyg_uint32 bus, cyg_uint32 devfn,
+ cyg_uint32 offset, cyg_uint32 data)
+{
+ volatile cyg_uint32 *address = (cyg_uint32 *)_PCI_ADDR(bus, devfn);
+
+ cyg_hal_plf_pci_select_idsel(CYG_PCI_DEV_GET_DEV(devfn));
+ address[offset >> 2] = data;
+ cyg_hal_plf_pci_clear_idsel();
+}
+
+
+
+cyg_uint16
+cyg_hal_plf_pci_cfg_read_word(cyg_uint32 bus, cyg_uint32 devfn,
+ cyg_uint32 offset)
+{
+ cyg_uint16 config_data;
+ volatile cyg_uint16 *address = (cyg_uint16 *)_PCI_ADDR(bus, devfn);
+
+ cyg_hal_plf_pci_select_idsel(CYG_PCI_DEV_GET_DEV(devfn));
+ config_data = address[offset >> 1];
+ if ((PCICTL_STATUS_REG & 0x0020) == 0x0020) {
+ // Configuration cycle failed
+ config_data = 0xFFFF;
+ }
+ cyg_hal_plf_pci_clear_idsel();
+
+ return config_data;
+}
+
+void
+cyg_hal_plf_pci_cfg_write_word(cyg_uint32 bus, cyg_uint32 devfn,
+ cyg_uint32 offset, cyg_uint16 data)
+{
+ volatile cyg_uint16 *address = (cyg_uint16 *)_PCI_ADDR(bus, devfn);
+
+ cyg_hal_plf_pci_select_idsel(CYG_PCI_DEV_GET_DEV(devfn));
+ address[offset >> 1] = data;
+ cyg_hal_plf_pci_clear_idsel();
+}
+
+cyg_uint8
+cyg_hal_plf_pci_cfg_read_byte(cyg_uint32 bus, cyg_uint32 devfn,
+ cyg_uint32 offset)
+{
+ cyg_uint8 config_data;
+ volatile cyg_uint8 *address = (cyg_uint8 *)_PCI_ADDR(bus, devfn);
+
+ cyg_hal_plf_pci_select_idsel(CYG_PCI_DEV_GET_DEV(devfn));
+ config_data = address[offset];
+ if ((PCICTL_STATUS_REG & 0x0020) == 0x0020) {
+ // Configuration cycle failed
+ config_data = 0xFF;
+ }
+ cyg_hal_plf_pci_clear_idsel();
+
+ return config_data;
+}
+
+
+void
+cyg_hal_plf_pci_cfg_write_byte(cyg_uint32 bus, cyg_uint32 devfn,
+ cyg_uint32 offset, cyg_uint8 data)
+{
+ volatile cyg_uint8 *address = (cyg_uint8 *)_PCI_ADDR(bus, devfn);
+
+ cyg_hal_plf_pci_select_idsel(CYG_PCI_DEV_GET_DEV(devfn));
+ address[offset] = data;
+ cyg_hal_plf_pci_clear_idsel();
+}
+
+//
+// Note: PCI I/O space reads on this platform require additional
+// addressing gymnastics
+
+/**
+ * Reads an 8 bit value (byte) from the given address of the PCI
+ * IO space.
+ **/
+cyg_uint8 pci_io_read_8(cyg_uint32 address)
+{
+ volatile cyg_uint8 *addr = (volatile cyg_uint8 *)(((address & 0x00000003) << 22) |
+ address | _PCI_READ_8);
+ cyg_uint8 val = *addr;
+#ifdef _PCI_DEBUG
+ diag_printf("READ PCI.8 [%p/%p] => %02x\n", address, addr, val);
+#endif
+ return val;
+}
+
+/**
+ * * Reads a 16 bit value (word) from the given address of the PCI
+ * * IO space.
+ * */
+cyg_uint16 pci_io_read_16(cyg_uint32 address)
+{
+ volatile cyg_uint16 *addr = (volatile cyg_uint16 *)(((address & 0x00000002) << 21) |
+ address | _PCI_READ_16);
+ cyg_uint16 val = *addr;
+#ifdef _PCI_DEBUG
+ diag_printf("READ PCI.16 [%p/%p] => %04x\n", address, addr, val);
+#endif
+ return val;
+}
+
+/**
+ * * Reads a 32 bit value (double word) from the given address of the PCI
+ * * IO space.
+ * */
+cyg_uint32 pci_io_read_32(cyg_uint32 address)
+{
+ volatile cyg_uint32 *addr = (volatile cyg_uint32 *)(address | _PCI_READ_32);
+ cyg_uint32 val = *addr;
+#ifdef _PCI_DEBUG
+ diag_printf("READ PCI.32 [%p/%p] => %02x\n", address, addr, val);
+#endif
+ return val;
+}
+
+/**
+ * * Writes an 8 bit value (byte) into the given address of the PCI
+ * * IO space.
+ * */
+void pci_io_write_8(cyg_uint32 address, cyg_uint8 value)
+{
+ *((volatile cyg_uint8 *)(address | _PCI_WRITE_X)) = value;
+#ifdef _PCI_DEBUG
+ diag_printf("WRITE PCI.8[%p] <= %02x\n", address | _PCI_WRITE_X, value);
+#endif
+}
+
+/**
+ * * Writes a 16 bit value (single word) into the given address of the PCI
+ * * IO space.
+ * */
+void pci_io_write_16(cyg_uint32 address, cyg_uint16 value)
+{
+ *((volatile cyg_uint16 *)(address | _PCI_WRITE_X)) = value;
+#ifdef _PCI_DEBUG
+ diag_printf("WRITE PCI.16[%p] <= %04x\n", address | _PCI_WRITE_X, value);
+#endif
+}
+
+/**
+ * * Writes a 32 bit value (double word) into the given address of the PCI
+ * * IO space.
+ * */
+void pci_io_write_32(cyg_uint32 address, cyg_uint32 value)
+{
+ *((volatile cyg_uint32 *)(address | _PCI_WRITE_X)) = value;
+#ifdef _PCI_DEBUG
+ diag_printf("WRITE PCI.32[%p] <= %08x\n", address | _PCI_WRITE_X, value);
+#endif
+}
+
+#endif // CYGPKG_IO_PCI
diff --git a/ecos/packages/hal/arm/xscale/picasso/current/src/picasso_pci_bitstream.h b/ecos/packages/hal/arm/xscale/picasso/current/src/picasso_pci_bitstream.h
new file mode 100644
index 0000000..0d58a30
--- /dev/null
+++ b/ecos/packages/hal/arm/xscale/picasso/current/src/picasso_pci_bitstream.h
@@ -0,0 +1,4067 @@
+//
+// Copyright (c) 2003 Intrinsyc Europe Ltd. All rights reserved.
+//
+// Redistribution and use in source or binary format is allowed
+// provided:
+// * This notice must be preserved
+// * The binary data which this file represents may only be
+// used on a NMI uPCI + uE250 based hardware platform.
+//
+
+/* 0x000000 */ 0x1f,0x8b,0x08,0x08,0x49,0x5b,0x4d,0x3e,0x00,0x03,0x78,0x78,0x31,0x00,0xac,0xbd,
+/* 0x000010 */ 0x7f,0x7c,0x54,0xd5,0x99,0x3f,0x7e,0xe6,0xdc,0x4b,0xb8,0x99,0x99,0x64,0x2e,0x09,
+/* 0x000020 */ 0xb8,0x29,0x2a,0xbd,0x99,0x04,0x3b,0xa4,0x93,0x64,0x98,0x68,0xc4,0x10,0x26,0x97,
+/* 0x000030 */ 0x90,0xee,0xa6,0x40,0x4d,0xd6,0xdd,0xfd,0x7e,0x69,0xbf,0xfd,0xfa,0x19,0x95,0xed,
+/* 0x000040 */ 0x87,0xdd,0x17,0xf5,0x93,0xd2,0xee,0x7e,0xa8,0xf5,0xe3,0x9e,0x4c,0x22,0x04,0x42,
+/* 0x000050 */ 0x65,0xa4,0xb4,0xc5,0xea,0xb6,0x97,0xc8,0x6a,0xac,0x6c,0x3b,0x04,0x95,0x20,0x14,
+/* 0x000060 */ 0x6e,0x30,0xda,0x00,0x11,0x52,0xd6,0x6d,0x51,0xa9,0x1d,0x6c,0xb4,0x51,0x23,0x46,
+/* 0x000070 */ 0x40,0x0d,0x24,0xc0,0xf7,0x39,0xe7,0xdc,0x7b,0xe7,0xde,0xf9,0xe1,0xba,0xdf,0x5d,
+/* 0x000080 */ 0xfb,0x47,0x1f,0x9e,0xf3,0xe4,0xe6,0xe6,0x9c,0x7b,0xce,0x79,0xde,0xe7,0xfd,0x3c,
+/* 0x000090 */ 0xcf,0x41,0xf9,0xbe,0x09,0xfe,0x3f,0x84,0x5c,0x77,0x21,0xef,0x3f,0xfc,0x6d,0xf8,
+/* 0x0000a0 */ 0x96,0xb6,0x7b,0xfe,0xae,0xea,0xde,0x7b,0x56,0xa3,0xbb,0x91,0x27,0xfc,0xed,0x70,
+/* 0x0000b0 */ 0x28,0xf4,0x8d,0xff,0x19,0xbe,0xa5,0x16,0xdd,0x03,0xff,0x0a,0x85,0xc2,0xd5,0xa1,
+/* 0x0000c0 */ 0x5b,0xab,0x43,0xb7,0xa0,0xd5,0x28,0x7f,0x61,0xa8,0xee,0xe6,0x9a,0xba,0x5b,0x6e,
+/* 0x0000d0 */ 0x45,0x7f,0x8b,0xf0,0x96,0xa6,0x6b,0xf0,0xdf,0xcf,0x1f,0xf9,0x9b,0x6f,0x84,0x10,
+/* 0x0000e0 */ 0x71,0x21,0x84,0x66,0x86,0x5c,0x51,0xfa,0xff,0xb3,0x42,0x2e,0xc5,0x85,0xc8,0xff,
+/* 0x0000f0 */ 0xc8,0x0f,0x21,0x9d,0xfe,0x1b,0x19,0xed,0xf0,0x6f,0xc5,0xfe,0x6f,0x57,0x08,0xa9,
+/* 0x000100 */ 0xa8,0x15,0x3d,0xf2,0x12,0x2a,0x52,0xd0,0x7f,0xed,0x3f,0x91,0xb0,0xff,0xfb,0xef,
+/* 0x000110 */ 0x7a,0x0e,0xfe,0x2f,0x3e,0x06,0xfe,0xfa,0xff,0x96,0xe7,0xa0,0xff,0xae,0xe7,0x88,
+/* 0x000120 */ 0xfc,0x39,0xc5,0xff,0xc5,0xc7,0xb8,0x8c,0xe7,0x14,0xfd,0xf7,0x3c,0xe7,0x5a,0x91,
+/* 0x000130 */ 0x8b,0xc0,0x27,0xc0,0xfe,0x23,0x28,0x4a,0x4a,0x94,0x3c,0xc9,0x15,0x43,0x77,0x93,
+/* 0x000140 */ 0x12,0x2d,0x0f,0xb9,0xba,0x4c,0xcd,0x66,0x2e,0x04,0x40,0x80,0x26,0x45,0x94,0x5c,
+/* 0x000150 */ 0x6e,0xa4,0x10,0x49,0x43,0x52,0x64,0x90,0xfd,0xac,0x3e,0xe3,0x2a,0xba,0x46,0x1a,
+/* 0x000160 */ 0x92,0xbe,0x49,0x81,0x09,0x1f,0x82,0xf0,0x8a,0x36,0x49,0x6a,0x8e,0x14,0x50,0xcd,
+/* 0x000170 */ 0x34,0x59,0xcc,0x9a,0xc4,0x6b,0xa4,0x3a,0xe9,0xeb,0xa7,0x36,0xa8,0x8c,0x1b,0x7f,
+/* 0x000180 */ 0x42,0x6a,0xdc,0xde,0xa1,0xb2,0x09,0xd4,0xc6,0xde,0x41,0x3e,0x87,0x0e,0x90,0xaa,
+/* 0x000190 */ 0xa4,0xa7,0x1f,0x33,0x41,0xf7,0x24,0xe4,0xb7,0x51,0x17,0xf2,0x8f,0x48,0xfd,0x77,
+/* 0x0001a0 */ 0x9c,0x43,0xfd,0xa4,0x22,0xb9,0x02,0x9a,0xc4,0x29,0x6a,0xd3,0x17,0x3b,0x27,0x1e,
+/* 0x0001b0 */ 0xd0,0xfd,0xd4,0x78,0x1c,0x8c,0xfd,0x6d,0xcd,0x3b,0x70,0x52,0x0c,0xd1,0xe7,0x74,
+/* 0x0001c0 */ 0xcd,0x18,0x46,0x7b,0x51,0x50,0xf7,0x84,0x30,0x08,0x62,0x70,0x08,0x84,0x41,0x74,
+/* 0x0001d0 */ 0x00,0xad,0x21,0x6e,0xaa,0x39,0x80,0x02,0x46,0x93,0x6b,0xad,0x21,0xa8,0x86,0x66,
+/* 0x0001e0 */ 0x0f,0xd2,0x88,0x24,0xfb,0xdf,0x74,0xb1,0xf7,0xd1,0xe7,0xec,0x06,0x63,0xfa,0x1a,
+/* 0x0001f0 */ 0xf4,0x57,0xa0,0xaa,0x01,0x10,0xde,0x46,0x9b,0x8e,0x04,0x92,0x6e,0xae,0xa9,0xe0,
+/* 0x000200 */ 0x4d,0x4f,0xa7,0x6c,0x0c,0xcd,0x7e,0xfa,0xce,0x1b,0xf0,0x84,0x18,0x65,0x1d,0x34,
+/* 0x000210 */ 0x7b,0x37,0x9a,0x42,0x11,0xdd,0x97,0x10,0xa8,0x4d,0x84,0xda,0xbc,0x89,0xce,0xeb,
+/* 0x000220 */ 0x75,0x89,0x2a,0xaa,0x99,0x40,0x75,0xa9,0x26,0x26,0x4c,0xa1,0x30,0x17,0xce,0xeb,
+/* 0x000230 */ 0x35,0xe5,0xde,0x7e,0x41,0x17,0xd9,0xfb,0x9c,0x45,0x07,0xa1,0xeb,0x1a,0x74,0xdf,
+/* 0x000240 */ 0x84,0x30,0x8d,0xae,0x89,0x54,0x28,0x7e,0x05,0x5d,0x45,0xb7,0x92,0xaf,0x4c,0xb8,
+/* 0x000250 */ 0xa6,0xa1,0x91,0x6a,0xca,0xa6,0x53,0x36,0xff,0x1b,0xed,0xe3,0xc2,0x55,0xb5,0xa1,
+/* 0x000260 */ 0x11,0x84,0x49,0xc4,0xde,0x47,0x95,0x6d,0xef,0x43,0x85,0xc2,0xc4,0xcc,0x24,0x7a,
+/* 0x000270 */ 0x9d,0x84,0x1f,0x73,0xfe,0xf6,0x94,0x8d,0x64,0x08,0x63,0x28,0x14,0xf7,0xee,0x12,
+/* 0x000280 */ 0x46,0x44,0x85,0x3e,0x67,0x68,0x46,0xd0,0xea,0x1f,0x91,0x0a,0x52,0x62,0xe6,0x2e,
+/* 0x000290 */ 0x3a,0x28,0x71,0xa3,0x37,0x6a,0x69,0xd3,0x5a,0x74,0xc0,0x65,0xf4,0xcf,0x61,0xd5,
+/* 0x0002a0 */ 0x10,0xba,0x1a,0xfd,0x7a,0xf3,0xaf,0xf0,0x79,0xfe,0xf5,0x25,0x67,0xac,0xb4,0x8d,
+/* 0x0002b0 */ 0x17,0x08,0xcb,0x43,0xf8,0x25,0xd4,0xe1,0x2f,0x6f,0x75,0x51,0x4d,0x02,0x29,0xa9,
+/* 0x0002c0 */ 0x26,0x26,0xfc,0x40,0x35,0x84,0xc7,0x89,0x12,0x92,0x4a,0xf0,0x24,0x2c,0x63,0xf0,
+/* 0x0002d0 */ 0x5f,0xd4,0x35,0x0f,0xed,0x23,0x95,0x49,0xcf,0x7a,0xfc,0x86,0x8b,0x0a,0xd2,0x7a,
+/* 0x0002e0 */ 0xfc,0xb1,0x72,0x38,0x31,0x3f,0xea,0x59,0x9f,0xf7,0x06,0x3a,0x48,0xe6,0x27,0x05,
+/* 0x0002f0 */ 0x68,0x32,0x6d,0xce,0xa8,0xa6,0x31,0xea,0xd4,0x95,0xa4,0xf4,0xd5,0xa2,0xd3,0xfc,
+/* 0x000300 */ 0x7d,0x9a,0x25,0x2f,0xba,0x00,0xbf,0xcb,0x17,0x12,0x86,0xd1,0x85,0x04,0xf4,0xcf,
+/* 0x000310 */ 0xe2,0xeb,0x06,0xa5,0x17,0xfa,0xbe,0x23,0x17,0x84,0xbe,0x30,0xac,0x5e,0x40,0x21,
+/* 0x000320 */ 0xa3,0x09,0xd5,0xeb,0xbe,0x3a,0x81,0x6a,0xea,0xa9,0x66,0x1c,0xfd,0xb1,0x24,0xb4,
+/* 0x000330 */ 0xc1,0x5b,0xda,0x71,0x8a,0x2f,0x18,0x6a,0x81,0x6d,0xbc,0xfe,0x80,0x1a,0x06,0x7d,
+/* 0x000340 */ 0x89,0x3f,0xdb,0x8d,0xfe,0x28,0xdf,0xa7,0x7f,0x1e,0x3a,0x53,0xfe,0x04,0x9a,0x3e,
+/* 0x000350 */ 0x3f,0x21,0xac,0x85,0x7e,0x06,0x9b,0x3d,0xc2,0xb8,0xce,0xfa,0x79,0x02,0x9e,0x33,
+/* 0x000360 */ 0x8d,0x0e,0xff,0x8d,0xef,0xac,0x30,0x92,0xc7,0xc6,0xab,0x77,0xc6,0xb8,0x73,0xbc,
+/* 0x000370 */ 0x40,0x48,0xa2,0x0b,0x24,0xbc,0xb4,0x9b,0x6a,0x26,0xd3,0xc6,0x2b,0x08,0x4d,0xb5,
+/* 0x000380 */ 0x5c,0xf3,0x3a,0x8a,0x74,0xf9,0x4a,0x84,0x0a,0x3e,0xbf,0x9a,0x67,0x3d,0x86,0xf6,
+/* 0x000390 */ 0xa1,0x4a,0xdd,0xd3,0x86,0xcf,0x18,0x82,0xfc,0x0a,0xda,0x27,0xde,0xa5,0x7a,0xda,
+/* 0x0003a0 */ 0xae,0x3b,0x83,0x9e,0x41,0x0b,0x6c,0x4d,0x13,0xf8,0x06,0xef,0x3e,0x54,0xaa,0xaf,
+/* 0x0003b0 */ 0x68,0xc3,0xd3,0xa8,0x13,0x57,0x92,0xee,0x56,0x5c,0xc4,0xbf,0xe7,0x76,0xf4,0x53,
+/* 0x0003c0 */ 0xab,0x9f,0x4d,0xe1,0x35,0xb4,0x6f,0x60,0xbe,0x72,0x3d,0xd5,0x1c,0x26,0xa5,0x49,
+/* 0x0003d0 */ 0xb7,0xd1,0x74,0x16,0x34,0x30,0x28,0x9a,0x61,0xfc,0x63,0x52,0x79,0xb7,0x67,0x12,
+/* 0x0003e0 */ 0x2b,0x2a,0xfb,0x7e,0x86,0x67,0x0f,0x3b,0xc7,0x9d,0x0a,0x23,0x7b,0xd1,0x2e,0xd5,
+/* 0x0003f0 */ 0xd0,0x04,0x6c,0x4d,0x09,0xec,0x35,0x35,0xe3,0x88,0xa8,0xc1,0x75,0xdd,0x37,0xbb,
+/* 0x000400 */ 0xc3,0x7c,0xbe,0x8f,0xcd,0xe9,0x45,0x97,0x51,0x84,0xf8,0x34,0x61,0x8c,0x09,0x1e,
+/* 0x000410 */ 0x4d,0x98,0x94,0xae,0x92,0x5b,0xe3,0xdd,0xa0,0x71,0x5d,0x45,0x61,0x52,0xa8,0xe1,
+/* 0x000420 */ 0x31,0xd3,0x26,0x80,0x9e,0x37,0x8d,0xdf,0x50,0x23,0x89,0x96,0xa4,0x50,0xc7,0xff,
+/* 0x000430 */ 0xae,0x66,0x98,0x1e,0x93,0x28,0x82,0x7c,0x04,0xba,0x77,0x12,0x3d,0xc0,0x85,0x7e,
+/* 0x000440 */ 0x54,0x77,0x9d,0xa1,0xb1,0x9a,0xa8,0x00,0x53,0x66,0x52,0xad,0x35,0x34,0xa5,0x11,
+/* 0x000450 */ 0xb4,0x95,0x74,0x9c,0x42,0x7c,0xfd,0x91,0x47,0xd1,0x25,0x14,0x51,0x7d,0x71,0x81,
+/* 0x000460 */ 0x0b,0x5f,0x89,0x0b,0x37,0x91,0x4b,0x9d,0x91,0x26,0x43,0x53,0x9b,0x6a,0xf2,0xc5,
+/* 0x000470 */ 0x8b,0xcb,0x53,0xc6,0x47,0xe5,0x70,0xb2,0x25,0x5e,0x76,0x84,0xff,0x5d,0x44,0x5c,
+/* 0x000480 */ 0x0d,0x2b,0x49,0x95,0xea,0x89,0xe3,0x51,0x26,0x48,0x71,0x5c,0x8e,0xf6,0xb7,0x56,
+/* 0x000490 */ 0xb5,0x31,0xcd,0x1e,0xe4,0x4f,0x35,0x79,0xe2,0x73,0xa1,0xa9,0x8b,0x1b,0xe3,0x76,
+/* 0x0004a0 */ 0xe2,0x6f,0x02,0x21,0x89,0x64,0xfa,0x9c,0x12,0xb1,0xdc,0xfe,0x9c,0xa0,0x9a,0x2f,
+/* 0x0004b0 */ 0xbb,0xcb,0x15,0x9b,0xe6,0x26,0xfb,0x73,0xe8,0xaf,0x90,0x8d,0xa6,0x6e,0xd4,0xa3,
+/* 0x0004c0 */ 0x7a,0x76,0xc0,0x64,0x64,0xf3,0x42,0x12,0x45,0xf8,0xa5,0x41,0xd5,0x23,0xc3,0x72,
+/* 0x0004d0 */ 0x0a,0x42,0x93,0x34,0x0b,0x8b,0x68,0xef,0xec,0xe0,0x20,0xd3,0xec,0x47,0x8a,0xd5,
+/* 0x0004e0 */ 0xa4,0x7a,0x1e,0x86,0xa6,0x3d,0x01,0xc3,0xb8,0x1d,0x29,0xcb,0x41,0x38,0xc2,0xdc,
+/* 0x0004f0 */ 0x0f,0xd4,0x9f,0xef,0xe8,0xe7,0x88,0x5c,0xd0,0x29,0x28,0xda,0x64,0x53,0x64,0xee,
+/* 0x000500 */ 0xcf,0xb8,0xa6,0xd6,0xd6,0xcf,0xd0,0xe4,0x9a,0x54,0x0c,0xe3,0x21,0x14,0x96,0x7c,
+/* 0x000510 */ 0x64,0xd9,0x39,0x81,0xcd,0xf7,0x1d,0x37,0x3a,0xfb,0xb9,0xd9,0xb7,0x4d,0xb8,0x88,
+/* 0x000520 */ 0xae,0x28,0x0d,0xcd,0x4c,0xf3,0x11,0x34,0x7d,0xde,0xec,0xe7,0x96,0x6d,0x42,0xca,
+/* 0x000530 */ 0x58,0xbb,0x42,0x35,0x23,0xc2,0xdb,0x79,0x6c,0x5e,0xec,0x98,0x33,0x2a,0x39,0xc6,
+/* 0x000540 */ 0xcb,0x17,0x77,0x3d,0x83,0xde,0x9f,0xd1,0xf0,0x97,0x5e,0xaa,0xf9,0x10,0x85,0xed,
+/* 0x000550 */ 0x4d,0x20,0x5c,0x31,0x85,0x0f,0xd1,0xc2,0xa8,0xaf,0x4d,0x78,0x9b,0xcf,0xaf,0xdb,
+/* 0x000560 */ 0x64,0xfa,0xb5,0x54,0x21,0x0f,0xc1,0x86,0xb0,0x39,0xa6,0xa0,0xae,0x9e,0xaa,0x80,
+/* 0x000570 */ 0xc4,0x35,0x15,0xa9,0xa6,0x7c,0xcb,0x86,0x0b,0x7e,0x11,0x84,0x13,0x7c,0xdc,0xa5,
+/* 0x000580 */ 0x19,0x4d,0xf6,0x7e,0x2e,0xa7,0x82,0x88,0x77,0x6e,0x5e,0xbb,0x54,0xca,0xec,0x67,
+/* 0x000590 */ 0x87,0x00,0x4d,0xd1,0x6e,0xda,0xcf,0xec,0x7d,0x4a,0x66,0xec,0x72,0x7e,0x3f,0x9e,
+/* 0x0005a0 */ 0xb8,0xfb,0x26,0xb4,0x00,0xdd,0xfb,0xe7,0x28,0x8e,0x46,0xa5,0xfd,0xa8,0x62,0xa9,
+/* 0x0005b0 */ 0x7d,0xdc,0x47,0xe9,0x62,0x6e,0x18,0x8b,0x30,0xee,0x3f,0xc2,0x2f,0xf1,0x79,0xa1,
+/* 0x0005c0 */ 0xcd,0x48,0xfb,0x9e,0x41,0xc8,0x43,0xef,0x90,0x88,0x2a,0x32,0x4d,0x32,0x0c,0x3f,
+/* 0x0005d0 */ 0x65,0x34,0x79,0x1c,0x1d,0xf5,0x21,0x09,0xff,0x35,0x08,0x63,0x9d,0xec,0x7d,0x2a,
+/* 0x0005e0 */ 0x5c,0xbb,0x32,0x9e,0x33,0x8a,0x5e,0x55,0x22,0x6a,0x35,0xd3,0x68,0xb6,0xa6,0x02,
+/* 0x0005f0 */ 0x87,0xcd,0x94,0x0a,0xe3,0x15,0x17,0x8e,0xf1,0xfd,0x2b,0x80,0xb4,0xf4,0xc9,0x28,
+/* 0x000600 */ 0x24,0xa5,0xd3,0x20,0x78,0x99,0x46,0xed,0x43,0x85,0xce,0x09,0x6b,0x7e,0x3f,0xa7,
+/* 0x000610 */ 0xa5,0x30,0xf2,0x76,0x76,0xb8,0xf9,0xfe,0xd5,0x3b,0x27,0x80,0xde,0x45,0x55,0xb0,
+/* 0x000620 */ 0x5c,0xc0,0xe2,0xf0,0x3c,0x17,0x2e,0x93,0x48,0x5b,0xe5,0xc3,0x12,0xd5,0xf4,0x21,
+/* 0x000630 */ 0x3f,0xd5,0xac,0x61,0x4d,0x2b,0xa8,0xe6,0x90,0x6e,0x18,0x6f,0x46,0x65,0xbd,0xee,
+/* 0x000640 */ 0x71,0xb7,0xc4,0xe7,0x45,0xe0,0xc1,0xb4,0xfd,0x0b,0x16,0xab,0x13,0xd2,0x36,0x14,
+/* 0x000650 */ 0xdc,0xe1,0xe6,0x9a,0xf4,0xfd,0x6b,0xaf,0x6c,0x08,0x0f,0xeb,0x8a,0xbe,0x46,0xc6,
+/* 0x000660 */ 0x6e,0xbe,0x7f,0xdd,0xe5,0xba,0x01,0x3d,0x69,0x5b,0x9f,0x87,0x99,0xf0,0x1c,0xdd,
+/* 0x000670 */ 0x10,0xa9,0x70,0x18,0x56,0x63,0xd0,0x7c,0x1d,0x9a,0xbe,0xa9,0x7b,0xd6,0x59,0x6b,
+/* 0x000680 */ 0x38,0xac,0xab,0x5b,0xd4,0x9d,0xda,0xe6,0xfb,0x8b,0x02,0xfc,0x7d,0x14,0x69,0x1e,
+/* 0x000690 */ 0x78,0x56,0x4b,0x92,0xbe,0xf5,0xc2,0x1b,0x5c,0xb8,0xaf,0xec,0x0d,0xf4,0x3b,0xb2,
+/* 0x0006a0 */ 0x24,0x5a,0xc8,0x35,0x0b,0x6d,0x4d,0x0f,0x40,0xd3,0x47,0xdc,0xf8,0x2a,0xf9,0x5d,
+/* 0x0006b0 */ 0xd7,0xc2,0xe8,0xca,0xf5,0xcb,0x2a,0xf8,0xfe,0xd5,0x9c,0xef,0xf4,0x13,0x86,0x7c,
+/* 0x0006c0 */ 0x17,0x97,0xd1,0xed,0x26,0x32,0x30,0x23,0xf1,0x17,0x54,0x73,0x08,0x9a,0xf0,0xda,
+/* 0x0006d0 */ 0x94,0xcd,0x25,0xf4,0x00,0x15,0xce,0xa1,0xcb,0x4a,0x84,0x54,0x27,0x84,0x23,0x98,
+/* 0x0006e0 */ 0x8d,0x17,0x99,0x63,0xf3,0x0f,0xa7,0xe2,0x0d,0x13,0xbe,0xe9,0x8e,0xab,0xe8,0x2a,
+/* 0x0006f0 */ 0xb9,0x6d,0xd4,0x3b,0x59,0x7c,0x55,0xfc,0xa4,0x7d,0xb1,0xe5,0x3a,0x82,0x50,0x96,
+/* 0x000700 */ 0x32,0x56,0xae,0x90,0x86,0xb3,0x5b,0xbf,0x2a,0x84,0xf8,0xfc,0xea,0xb5,0xef,0x5f,
+/* 0x000710 */ 0x7b,0x09,0x08,0x21,0xe5,0x8c,0xb8,0x7d,0x69,0xe9,0xa8,0xc4,0x7b,0xcc,0xbe,0x7f,
+/* 0x000720 */ 0xad,0xa7,0xc2,0x2c,0xb3,0x33,0x95,0xca,0x2e,0xcf,0x3d,0xcb,0xee,0xe3,0xdf,0xf3,
+/* 0x000730 */ 0x2c,0x74,0x83,0x6d,0x1f,0x54,0x0c,0xe1,0x39,0xb4,0x40,0x95,0x78,0x3f,0xdb,0x9f,
+/* 0x000740 */ 0xd3,0x96,0x77,0x06,0x3d,0x6b,0x1a,0x3f,0x3b,0xa3,0xb2,0x75,0x45,0x6b,0xd1,0x6c,
+/* 0x000750 */ 0xc4,0xbe,0x9f,0xa8,0x98,0xb6,0x7f,0xad,0x08,0xe1,0x93,0x30,0xb5,0x94,0x23,0x52,
+/* 0x000760 */ 0x6a,0xff,0x42,0x54,0xf0,0xea,0xd7,0x73,0x4f,0xc6,0xcb,0x8c,0x67,0xef,0x2d,0x0a,
+/* 0x000770 */ 0xb6,0x7b,0x14,0x2c,0x19,0xfb,0xd7,0x0c,0x47,0x3f,0x37,0xc0,0xe6,0x2b,0xbc,0x15,
+/* 0x000780 */ 0x98,0xd2,0xea,0x7a,0x25,0xaa,0xb9,0xc0,0xfc,0x43,0x6c,0xec,0xef,0x13,0xd8,0xda,
+/* 0x000790 */ 0xe8,0xa7,0xe9,0x04,0x49,0xb6,0x74,0x36,0x46,0xf8,0xdf,0x15,0x47,0xe3,0xe2,0xf7,
+/* 0x0007a0 */ 0x1c,0x7e,0x02,0x3c,0x07,0x4d,0x35,0x46,0xf4,0x96,0x44,0xb1,0xdd,0x85,0x70,0x51,
+/* 0x0007b0 */ 0x61,0xd9,0xb8,0xf4,0x3d,0xd5,0xd0,0x4c,0x4a,0x11,0xcd,0xa7,0x75,0x24,0xf9,0xfe,
+/* 0x0007c0 */ 0xd5,0x8e,0x6c,0x3e,0xa4,0x21,0x2c,0x52,0x60,0x50,0x4c,0x4d,0x8d,0xa3,0xe9,0x7e,
+/* 0x0007d0 */ 0x10,0xf6,0x5a,0x4d,0xaa,0x2f,0xb9,0x4c,0xe6,0x7f,0xd7,0xc3,0xe2,0x5a,0x87,0xff,
+/* 0x0007e0 */ 0x4c,0x85,0x1e,0xe5,0x70,0xbc,0x7a,0xd0,0x93,0xf0,0x8f,0xa3,0x47,0x91,0xdf,0xde,
+/* 0x0007f0 */ 0x54,0x34,0x0e,0x4f,0x79,0x97,0x6b,0x60,0xea,0x69,0x9e,0x80,0x50,0xae,0xca,0xfc,
+/* 0x000800 */ 0xfb,0x09,0x3a,0x9f,0xb3,0x22,0xe4,0xaf,0xa2,0xb3,0x72,0x80,0xfe,0x94,0x78,0x00,
+/* 0x000810 */ 0xfb,0xd3,0xfc,0xf0,0xfd,0xc4,0xd0,0xf4,0xa3,0x9e,0xa4,0xe7,0x20,0x7c,0xcd,0xc6,
+/* 0x000820 */ 0xfe,0xe5,0x4d,0xf7,0x37,0x1a,0xb7,0xc0,0xef,0x32,0x34,0x8f,0xb2,0x79,0x8a,0x8c,
+/* 0x000830 */ 0xa6,0x70,0x23,0x85,0x03,0xdc,0x03,0x71,0xf5,0x11,0x05,0xc1,0xc4,0x6f,0xe4,0xfb,
+/* 0x000840 */ 0x17,0x29,0xb0,0x7d,0xf3,0x53,0xdf,0xfa,0xbc,0xde,0xf2,0x51,0x71,0x40,0x3c,0xff,
+/* 0x000850 */ 0x97,0x11,0xe6,0xd7,0x89,0x53,0xa8,0x8f,0x37,0xbd,0xc7,0x6c,0x5c,0x6b,0xc5,0x4b,
+/* 0x000860 */ 0xf0,0x86,0x3e,0x9b,0xab,0xa6,0xf0,0xfd,0x4b,0x2b,0xb0,0xf7,0xf3,0x6a,0x78,0xce,
+/* 0x000870 */ 0x79,0x61,0x02,0x5d,0x55,0x22,0x83,0x33,0x53,0xdd,0x3b,0xd3,0x10,0x9e,0xdb,0x38,
+/* 0x000880 */ 0x0d,0xfb,0x8e,0x61,0x7c,0x15,0x35,0x10,0x5f,0x52,0xd8,0xc1,0xf7,0x2f,0x07,0xfe,
+/* 0x000890 */ 0xfa,0x03,0x69,0x18,0xf2,0x9e,0x16,0x96,0xc0,0x18,0xd6,0xb9,0x0b,0x8c,0x69,0x15,
+/* 0x0008a0 */ 0x2d,0x64,0x02,0x5a,0x32,0xe4,0x5d,0xb4,0xec,0x63,0xfa,0x40,0x6e,0x3c,0x8d,0x16,
+/* 0x0008b0 */ 0x6a,0x5b,0x26,0x84,0xec,0xf8,0xab,0x7a,0x42,0x4a,0xe0,0x20,0x1a,0x7b,0xd0,0x2f,
+/* 0x0008c0 */ 0x07,0x0c,0x44,0xa6,0x49,0xfd,0x8d,0x00,0xbb,0xd4,0xaa,0x57,0xa4,0x3e,0xfc,0xb6,
+/* 0x0008d0 */ 0xf8,0xb3,0xc1,0xaa,0x64,0x21,0x6d,0x82,0xfd,0x4b,0x93,0x0e,0x66,0xc5,0x5f,0x3f,
+/* 0x0008e0 */ 0x40,0xc1,0xdf,0x94,0x24,0xf0,0xca,0xce,0x84,0x2b,0xe8,0x72,0x87,0x8a,0x86,0xa5,
+/* 0x0008f0 */ 0xbd,0xb0,0xcb,0x50,0x01,0x60,0x57,0x50,0x2f,0x09,0xc5,0x40,0x68,0x0a,0x9a,0x13,
+/* 0x000900 */ 0x44,0x19,0xf8,0xa2,0x98,0x97,0x0b,0x7f,0x49,0x09,0xff,0x5a,0xd4,0x1b,0x2b,0x9f,
+/* 0x000910 */ 0xcd,0xbe,0x16,0xd0,0x44,0x25,0xde,0x74,0xaf,0xce,0x84,0x47,0xc1,0x98,0x42,0x33,
+/* 0x000920 */ 0x31,0x41,0x00,0x18,0x92,0x98,0x89,0xbf,0xe6,0xd8,0x3e,0x7e,0x70,0x89,0x75,0xaf,
+/* 0x000930 */ 0x5c,0x76,0x3f,0xba,0xf2,0x66,0x44,0xb9,0x1d,0xe6,0x85,0x78,0xc0,0x55,0x1f,0xbd,
+/* 0x000940 */ 0xdd,0x98,0x20,0x03,0xde,0x04,0xdd,0x6e,0x40,0x60,0xc6,0x57,0x48,0x58,0xf3,0xbd,
+/* 0x000950 */ 0x63,0xe2,0xaf,0xa4,0xcb,0x8e,0xbf,0xd0,0x12,0xbd,0x7a,0xc2,0x73,0x10,0x7d,0x24,
+/* 0x000960 */ 0x2d,0xd6,0x9a,0x8c,0xf1,0x22,0x6c,0xbc,0x0e,0x83,0xcd,0x2f,0x41,0xe3,0x9a,0x32,
+/* 0x000970 */ 0x8d,0xaf,0x48,0x0d,0xc8,0x9b,0x1b,0x7f,0x15,0x24,0x84,0xdd,0xaf,0x4c,0xea,0xe1,
+/* 0x000980 */ 0x55,0x54,0x90,0x40,0x33,0x56,0xc0,0x9a,0xe4,0xb0,0x0e,0xef,0x53,0x6e,0x43,0x64,
+/* 0x000990 */ 0x04,0x34,0xdb,0x05,0x39,0x13,0x7f,0x81,0x50,0x4d,0x3b,0xe1,0x1a,0x7a,0x7e,0xc0,
+/* 0x0009a0 */ 0xaf,0x1a,0xdd,0x52,0x35,0xc1,0x84,0xc3,0xae,0xc7,0x75,0x36,0x94,0x87,0xdd,0xe6,
+/* 0x0009b0 */ 0x8c,0x83,0x7d,0x47,0x21,0x38,0xcc,0xe7,0xc5,0x68,0x3a,0xfe,0xca,0x97,0xf1,0x09,
+/* 0x0009c0 */ 0x94,0x10,0x35,0x39,0x3f,0x84,0xb7,0xa0,0xc7,0xd1,0x5a,0xfd,0x73,0xbc,0xa9,0x4a,
+/* 0x0009d0 */ 0x07,0x0d,0xb8,0x7c,0x48,0xe3,0xc6,0x30,0x5e,0x0f,0xe6,0xcb,0xfe,0xf5,0x7c,0xff,
+/* 0x0009e0 */ 0x52,0x6c,0xf8,0x0b,0x7c,0xfe,0x60,0x32,0x7f,0xbd,0xff,0x0d,0xf4,0x6c,0xbc,0xbc,
+/* 0x0009f0 */ 0x52,0x65,0x9a,0x58,0xa5,0x56,0x42,0x81,0xd8,0x3e,0xbd,0x12,0x9a,0xf0,0x75,0x60,
+/* 0x000a00 */ 0x5c,0xca,0x8d,0x9f,0x21,0x65,0x5a,0x7e,0x09,0x6e,0xb6,0xe3,0xaf,0x7a,0x03,0x64,
+/* 0x000a10 */ 0x91,0x7a,0xbd,0x60,0xa1,0xb0,0x45,0x82,0x8f,0x34,0xf0,0xff,0x86,0x96,0x6d,0x51,
+/* 0x000a20 */ 0x2f,0xb8,0xea,0x9b,0xbe,0x12,0x5a,0x36,0x0c,0xfd,0x53,0x3f,0x56,0x50,0x57,0xe6,
+/* 0x000a30 */ 0x45,0xdf,0x16,0x43,0xfa,0xe7,0xa9,0xf1,0x24,0x0a,0x0d,0x17,0x28,0xc2,0x1d,0x06,
+/* 0x000a40 */ 0xfe,0xba,0xd1,0x36,0x5e,0xb4,0x9f,0xe7,0xd1,0x35,0xf3,0x22,0xaa,0x43,0xe6,0x08,
+/* 0x000a50 */ 0x2e,0x35,0x84,0xe2,0x97,0x0a,0x3f,0x84,0xee,0xbd,0xc6,0xf1,0xd7,0x34,0x9a,0x76,
+/* 0x000a60 */ 0x35,0x0c,0x16,0x26,0x85,0xb8,0x81,0xbf,0xe6,0x38,0xf1,0xd7,0x09,0x5f,0x7c,0xe6,
+/* 0x000a70 */ 0xb8,0x78,0x45,0x08,0x97,0x7a,0x61,0x15,0x65,0x5f,0x94,0xd1,0x54,0xa5,0x03,0x5a,
+/* 0x000a80 */ 0x87,0xf1,0xba,0xab,0x0e,0x96,0x5c,0x68,0xba,0x42,0x81,0x46,0x67,0x77,0x6e,0xfc,
+/* 0x000a90 */ 0xe5,0x87,0x3d,0x05,0x97,0x22,0x63,0xff,0xaa,0x24,0xb4,0x49,0xa6,0x4d,0x12,0xe0,
+/* 0x000aa0 */ 0x2f,0xe9,0x4f,0x01,0x86,0xbf,0xd8,0x06,0x44,0x3c,0xc8,0xc4,0x5f,0x04,0xcd,0x73,
+/* 0x000ab0 */ 0xe0,0xaf,0x31,0x10,0x7e,0x3a,0xd2,0x17,0x2b,0x0b,0xb9,0x0d,0x90,0x65,0x34,0xc5,
+/* 0x000ac0 */ 0x83,0x63,0xcd,0xeb,0x1b,0xff,0x0c,0x6c,0x16,0x70,0xcd,0xb3,0xd0,0xd4,0xbd,0x1e,
+/* 0x000ad0 */ 0x6b,0x7c,0xff,0x1a,0x4a,0xdf,0xbf,0x3c,0x21,0x71,0x5c,0xec,0x53,0x95,0xd2,0x0a,
+/* 0x000ae0 */ 0xba,0xe8,0xd9,0x9a,0x00,0xda,0x87,0xb0,0xd7,0xf5,0x38,0x36,0x3c,0x99,0x3d,0xad,
+/* 0x000af0 */ 0xc1,0xa8,0xa7,0x16,0xf7,0x99,0xfb,0x57,0x1a,0xfe,0x62,0xc2,0x21,0xb1,0x26,0x5e,
+/* 0x000b00 */ 0x48,0x85,0xd7,0x50,0x43,0x8f,0xd5,0xe4,0xa5,0xf8,0xeb,0x3c,0xaa,0xe3,0x36,0x57,
+/* 0x000b10 */ 0xd5,0x25,0x5d,0xbe,0x72,0xe1,0x79,0x13,0x7f,0x65,0x80,0xac,0xe2,0xb3,0x20,0x1c,
+/* 0x000b20 */ 0x92,0x0a,0x4c,0xa4,0xe0,0x04,0x62,0x63,0x96,0xb1,0xab,0x0a,0x04,0xd7,0x1d,0x06,
+/* 0x000b30 */ 0xfe,0x42,0x99,0xfe,0xea,0x5b,0xe8,0x68,0x20,0xbc,0xc6,0xee,0xe1,0x83,0x00,0x5e,
+/* 0x000b40 */ 0xa5,0x97,0x6b,0xea,0xb8,0xf1,0x77,0xa5,0xc8,0x52,0x98,0x71,0xfe,0x1c,0xf8,0x0b,
+/* 0x000b50 */ 0x84,0xb7,0x51,0xfb,0x6a,0xff,0xdd,0xa6,0xe6,0x0e,0x3b,0x34,0x03,0x41,0x32,0x11,
+/* 0x000b60 */ 0x19,0x86,0x25,0x2e,0x0e,0xfd,0xcc,0xf1,0xd7,0x9c,0x72,0xe7,0x73,0x56,0xc4,0x8b,
+/* 0x000b70 */ 0x46,0xd1,0x26,0xe4,0xb7,0xdc,0xef,0x26,0xdb,0x73,0x1a,0xa9,0x50,0x61,0x18,0x47,
+/* 0x000b80 */ 0x41,0xb3,0x0d,0xe7,0x65,0xc3,0x5f,0xd8,0xab,0x7a,0x66,0xe1,0xc1,0x46,0xc0,0x56,
+/* 0x000b90 */ 0x4d,0xc7,0x4d,0x14,0x90,0xcf,0x04,0x99,0x41,0x33,0x10,0x02,0x26,0x52,0x00,0x20,
+/* 0x000ba0 */ 0xe6,0x2e,0x8a,0xc5,0x0c,0xfc,0x55,0xe0,0xc4,0x5f,0x6e,0x00,0x59,0xef,0x68,0x43,
+/* 0x000bb0 */ 0x81,0xbe,0xb9,0x69,0x38,0x77,0x4d,0x64,0xae,0xb7,0x93,0xf9,0xcf,0x75,0x29,0x47,
+/* 0x000bc0 */ 0x7a,0x65,0x4c,0xa8,0xca,0x8e,0xbf,0x54,0xdf,0x29,0x61,0x94,0x5c,0x81,0x5d,0xc6,
+/* 0x000bd0 */ 0xd0,0x34,0x18,0x4d,0x4a,0xa4,0xb9,0x9a,0x42,0xb3,0x0f,0x2d,0x00,0x15,0x60,0x4d,
+/* 0x000be0 */ 0x06,0xfe,0x2a,0x71,0xe2,0x8b,0x79,0x54,0x80,0x4d,0x8a,0xd4,0x34,0x3d,0xe4,0x78,
+/* 0x000bf0 */ 0x0e,0xcc,0xa6,0x56,0x27,0xfe,0xba,0x92,0xb8,0x4d,0xf5,0xbe,0x06,0x60,0x84,0x3d,
+/* 0x000c00 */ 0x67,0x51,0x06,0xfe,0x72,0xc7,0xce,0xb6,0x8e,0xa1,0x80,0x89,0xbf,0x68,0x53,0x23,
+/* 0x000c10 */ 0x13,0x24,0x6e,0x83,0x4d,0xe3,0x64,0x15,0x2a,0xe8,0xf4,0x58,0xf8,0xcb,0x8e,0xad,
+/* 0x000c20 */ 0x44,0x2a,0x14,0x0d,0xba,0xf6,0x2c,0x2d,0x5f,0xea,0x44,0x5b,0x0f,0x1b,0xc2,0x8c,
+/* 0x000c30 */ 0x94,0xb1,0x5c,0x75,0x97,0x34,0xab,0x08,0x1b,0xf8,0x6b,0x4e,0x06,0xfe,0xc2,0xa3,
+/* 0x000c40 */ 0xae,0xa7,0xf5,0x2a,0x35,0xdf,0x01,0xbb,0xac,0xa6,0x03,0xf8,0xde,0x14,0x10,0xfb,
+/* 0x000c50 */ 0x6a,0x7c,0xae,0x89,0xbf,0xe6,0xa4,0xf7,0xf3,0x23,0xd8,0x71,0x8c,0x30,0xef,0x0e,
+/* 0x000c60 */ 0x8e,0xa4,0xac,0x0f,0x3b,0x65,0xbc,0x5e,0xf5,0x16,0x95,0x05,0xf8,0xfe,0x15,0xc8,
+/* 0x000c70 */ 0x86,0xbf,0x94,0x0f,0x51,0xdd,0xea,0x42,0xa6,0x11,0x23,0x1c,0x38,0xef,0xe7,0x4d,
+/* 0x000c80 */ 0x6f,0xab,0x29,0xe3,0x6d,0x0f,0x34,0x6f,0xdd,0xd6,0x61,0xe2,0x2f,0xd9,0x89,0xbf,
+/* 0x000c90 */ 0x5c,0x20,0xc0,0x17,0xd5,0x1c,0x92,0xbc,0xb6,0xef,0x07,0x6c,0x94,0xb0,0x61,0x93,
+/* 0x000ca0 */ 0x6f,0x19,0x87,0xd1,0x6e,0x52,0x7c,0x8c,0xef,0x5f,0x81,0x19,0x01,0x13,0x76,0x99,
+/* 0x000cb0 */ 0xf8,0xcb,0xbd,0x18,0x1d,0x52,0xcb,0xe2,0x12,0x3f,0xae,0xa9,0xee,0x65,0x4d,0x87,
+/* 0x000cc0 */ 0x48,0x59,0xfb,0xed,0x49,0x3b,0xfe,0xfa,0x29,0xba,0xb5,0xb7,0x62,0x14,0x1f,0x93,
+/* 0x000cd0 */ 0x39,0xfe,0x4a,0xdf,0xbf,0x40,0x98,0x89,0xf6,0xfe,0x26,0x99,0x34,0xfc,0xf0,0x20,
+/* 0x000ce0 */ 0xf1,0xd0,0x8d,0x6c,0x2f,0xb8,0x14,0xdc,0xa6,0xc8,0x30,0x4e,0xc8,0x5a,0x32,0x7f,
+/* 0x000cf0 */ 0x8e,0xff,0x18,0xdf,0xbf,0x34,0xd7,0x0d,0x69,0xeb,0xf3,0x77,0xf1,0x1c,0xd8,0x3d,
+/* 0x000d00 */ 0x4b,0x47,0x9a,0xa9,0xe6,0x49,0x63,0x7d,0x06,0x37,0xb5,0x74,0x68,0xae,0x0d,0x7f,
+/* 0x000d10 */ 0x9d,0x41,0xff,0x4c,0xe6,0xeb,0x5f,0x6c,0x85,0x17,0x63,0xef,0xd3,0x9b,0x8e,0xbf,
+/* 0x000d20 */ 0x3c,0xdf,0x13,0xe6,0xa2,0x4f,0x36,0x2c,0x54,0x82,0x54,0xb3,0x8f,0x37,0xfd,0x14,
+/* 0x000d30 */ 0x60,0xd7,0xc2,0x09,0x1f,0x5d,0x96,0x2d,0xe3,0x8b,0x00,0xcd,0xfe,0x75,0xbd,0xf0,
+/* 0x000d40 */ 0x2e,0xdf,0xbf,0xa4,0x1b,0xd3,0xfc,0x04,0xcf,0x73,0xc2,0x2e,0x74,0x41,0x04,0x2c,
+/* 0x000d50 */ 0x6c,0x68,0x48,0xca,0xd5,0xdf,0x23,0x8c,0xbb,0xa6,0x30,0x37,0x16,0x67,0xb3,0x43,
+/* 0x000d60 */ 0x5d,0xe1,0x08,0xdf,0xbf,0x50,0xda,0xf9,0x3c,0x15,0x3e,0x46,0x27,0x41,0xf0,0x5e,
+/* 0x000d70 */ 0xe2,0x1a,0xc5,0x80,0x66,0x35,0x49,0x2f,0x3d,0x9f,0xff,0x43,0xbc,0x7a,0x94,0xfb,
+/* 0x000d80 */ 0x87,0xa4,0x26,0xe9,0x3b,0x2a,0xa0,0x1c,0xf8,0xab,0xf0,0x3e,0xfc,0xef,0x52,0x1e,
+/* 0x000d90 */ 0xba,0x4d,0x97,0xda,0x04,0x68,0x12,0x2b,0x91,0x17,0x9a,0xbc,0xbf,0xd2,0xfd,0xba,
+/* 0x000da0 */ 0x74,0x9f,0x70,0x06,0xbd,0xe8,0x02,0x1b,0x0e,0xb2,0x76,0x1e,0xf1,0xa8,0xb8,0xc2,
+/* 0x000db0 */ 0xf0,0xc7,0x90,0x7d,0x1f,0xc4,0x20,0xac,0x8b,0x8d,0xa0,0x8d,0x72,0x35,0xe0,0xaf,
+/* 0x000dc0 */ 0x3c,0x5b,0xaf,0x3e,0x0b,0x80,0x37,0x7f,0x1d,0x9e,0x46,0x3f,0x12,0xbf,0xc9,0x35,
+/* 0x000dd0 */ 0xcf,0x50,0x08,0xac,0x34,0x22,0xbe,0x7f,0x29,0xe9,0xe7,0x87,0xee,0x7e,0x7a,0xd6,
+/* 0x000de0 */ 0xa4,0x04,0x54,0x29,0x74,0x1d,0x1d,0xee,0x60,0x9c,0x7d,0x00,0xfb,0xc1,0xb1,0x07,
+/* 0x000df0 */ 0xbf,0xe5,0x21,0xd8,0x38,0xc1,0xc6,0xf0,0x5b,0x92,0x9e,0xf2,0x98,0x81,0xbf,0x7a,
+/* 0x000e00 */ 0xe7,0xa4,0xf5,0x33,0xfc,0xed,0x63,0xf8,0x38,0xa9,0x7f,0x33,0x68,0x68,0x34,0x03,
+/* 0x000e10 */ 0xde,0xee,0xd5,0x0b,0x26,0xf0,0x39,0x72,0x9a,0x9d,0xe1,0x33,0x7f,0x3e,0xa4,0xf9,
+/* 0x000e20 */ 0x64,0x4f,0x85,0xa8,0xf2,0x7d,0x99,0x3a,0xff,0xce,0x73,0xda,0x31,0x34,0x35,0x7b,
+/* 0x000e30 */ 0x31,0x15,0xd8,0xaf,0xe8,0xb4,0x9a,0xaa,0x12,0xae,0x71,0x94,0x54,0xd9,0x30,0xd1,
+/* 0x000e40 */ 0xf3,0x5e,0x18,0xca,0xb8,0x60,0xe0,0x2f,0x97,0x7c,0x7f,0x3a,0xfe,0xf2,0x04,0xd0,
+/* 0x000e50 */ 0x27,0xae,0x9a,0x80,0xd7,0xd0,0x1c,0xe1,0xb0,0xcb,0x65,0x00,0x31,0x18,0x26,0x2e,
+/* 0x000e60 */ 0x4c,0x82,0x0b,0x5a,0x35,0x22,0xa0,0x26,0x8e,0xe3,0x32,0xf0,0xd7,0x84,0xff,0x8b,
+/* 0x000e70 */ 0xe2,0x01,0x74,0xab,0x8a,0x0c,0x8d,0xc2,0x9b,0xc8,0xad,0x26,0x5c,0x0a,0x73,0xe1,
+/* 0x000e80 */ 0x20,0x02,0x57,0x7f,0x07,0x56,0x0c,0xfc,0x35,0x23,0x98,0x81,0xe3,0x00,0x7f,0x01,
+/* 0x000e90 */ 0xc8,0x92,0x1c,0xcf,0xa1,0xb0,0xeb,0x75,0xa6,0x51,0x2c,0xfc,0x55,0xa5,0xb8,0x7b,
+/* 0x000ea0 */ 0xb1,0x92,0x0d,0x7f,0x29,0x0c,0x0b,0x7b,0x51,0x9f,0x58,0x3e,0xd8,0x6c,0x8c,0x20,
+/* 0x000eb0 */ 0xe2,0xb3,0x52,0x29,0x7f,0xf1,0xfa,0x5a,0x46,0xc7,0x18,0xfe,0x46,0x1f,0xbc,0x4f,
+/* 0x000ec0 */ 0x40,0xc1,0x78,0x16,0xff,0x7c,0x2c,0xfc,0x45,0xb1,0x30,0xc0,0xae,0x96,0xf3,0xcb,
+/* 0x000ed0 */ 0x02,0xe2,0x25,0x78,0xf9,0x20,0xc5,0x95,0x46,0x13,0xd8,0x04,0xc2,0x23,0xbe,0x67,
+/* 0x000ee0 */ 0xc0,0x0d,0xbb,0x6c,0x22,0x32,0xba,0x34,0x55,0x69,0x02,0x32,0xf0,0xd7,0x8d,0x36,
+/* 0x000ef0 */ 0xfc,0x35,0x15,0x65,0x87,0xf0,0x14,0x64,0xc1,0xfe,0x65,0xf4,0x33,0x77,0x14,0xa7,
+/* 0x000f00 */ 0xa9,0xcd,0xc7,0xf0,0x3d,0x4f,0xa3,0xc5,0x46,0x87,0xa3,0x6a,0x8a,0xbf,0xc6,0x0c,
+/* 0x000f10 */ 0xfc,0x55,0x90,0x3e,0xbf,0x26,0x84,0x5f,0x11,0x18,0x14,0xd5,0x33,0xd1,0x61,0x36,
+/* 0x000f20 */ 0xf9,0xa7,0xd9,0x8c,0xf3,0x9d,0x16,0xa6,0xc9,0xb0,0x7e,0x2b,0x37,0xfe,0x98,0xd4,
+/* 0x000f30 */ 0x48,0x5b,0x26,0xcb,0x8c,0xf3,0x0d,0x82,0x28,0xc8,0xba,0xd7,0xe2,0xbf,0x40,0x28,
+/* 0x000f40 */ 0xaa,0x44,0xfd,0xae,0xda,0x68,0xd7,0x2e,0x4b,0x83,0x0f,0xab,0xdd,0x54,0xd8,0xe6,
+/* 0x000f50 */ 0xff,0x00,0x6d,0x16,0xfd,0xdc,0x18,0xc6,0x62,0x42,0xea,0x2f,0x52,0xb2,0xf1,0x5f,
+/* 0x000f60 */ 0x5c,0xd8,0xa2,0xf7,0x8b,0x92,0x5a,0xe2,0x8f,0x59,0xc8,0x77,0x18,0x75,0x50,0x41,
+/* 0x000f70 */ 0x8e,0x0d,0xdf,0xd1,0xa5,0x94,0x73,0xe3,0x03,0x48,0x89,0x4b,0xfd,0xd8,0x9f,0x9b,
+/* 0x000f80 */ 0xff,0xaa,0x42,0xfd,0xa4,0xea,0xcb,0x73,0x7b,0x1b,0xa9,0xa6,0x10,0x9a,0xe6,0xee,
+/* 0x000f90 */ 0x46,0xdd,0xd4,0xa6,0xef,0x8e,0x71,0xb4,0x59,0xb2,0x10,0xbd,0x7f,0x69,0x73,0x3f,
+/* 0x000fa0 */ 0x0e,0xd9,0xf1,0x57,0x95,0x63,0x5e,0x3c,0x4d,0x0e,0x90,0xc5,0xea,0x8c,0x83,0x1d,
+/* 0x000fb0 */ 0x86,0x86,0xb2,0x27,0xc7,0xa9,0x10,0x07,0xf8,0xd6,0xb5,0xd4,0xe0,0x2f,0x2e,0x2f,
+/* 0x000fc0 */ 0xdd,0xfb,0x9c,0x77,0x91,0x07,0x65,0xc5,0x5f,0x20,0xb4,0x15,0x53,0xe1,0xd6,0x68,
+/* 0x000fd0 */ 0xa5,0xa9,0xa1,0xc0,0x19,0xb3,0xa6,0x11,0x3a,0x4c,0xaa,0x89,0x97,0x77,0x35,0xdc,
+/* 0x000fe0 */ 0x5d,0x9d,0xcc,0x89,0xbf,0x40,0x78,0x07,0x4d,0xdd,0x5d,0xd7,0x04,0x4e,0xa9,0xa9,
+/* 0x000ff0 */ 0xa9,0xf1,0x72,0x21,0xfe,0x57,0xe3,0xe8,0xa8,0x79,0x4e,0x72,0x69,0x79,0x88,0x78,
+/* 0x001000 */ 0x13,0x1d,0x59,0xf8,0x2f,0x63,0x7e,0xe1,0xf7,0xf5,0xbd,0x8d,0x8a,0xfa,0xd0,0x6e,
+/* 0x001010 */ 0x43,0xd3,0x9d,0x88,0x1d,0x34,0x6d,0xce,0xa0,0x76,0xd3,0x78,0x8f,0xcb,0xbf,0x1e,
+/* 0x001020 */ 0xf0,0x72,0x2e,0xfe,0xcb,0x13,0xca,0xd3,0x51,0x9f,0x8b,0xba,0x73,0xd6,0x78,0x61,
+/* 0x001030 */ 0x3e,0x77,0xf2,0xa9,0x4d,0xbb,0x69,0x0c,0xeb,0x98,0x0c,0x4b,0xdc,0x64,0x36,0xfc,
+/* 0x001040 */ 0xc5,0x04,0xff,0x29,0xf4,0x5c,0x7c,0x7e,0x9b,0xbb,0x39,0xc5,0xd4,0x18,0xdc,0xcd,
+/* 0x001050 */ 0x2a,0xfc,0x46,0xe3,0x46,0x52,0x60,0xe2,0x82,0xd2,0xa4,0xb4,0x3e,0x36,0x64,0xe0,
+/* 0x001060 */ 0x2f,0x64,0xc3,0x5f,0x7b,0x65,0x26,0x0c,0xa2,0xf3,0x4b,0xef,0x1f,0x6c,0x91,0x3b,
+/* 0x001070 */ 0x86,0x9b,0x2e,0xa0,0xfb,0xa9,0xc6,0x6b,0xf1,0x5f,0x68,0xc0,0x34,0x3e,0x1f,0x85,
+/* 0x001080 */ 0xfe,0x09,0x09,0x26,0xff,0x35,0x27,0x93,0xaf,0x1c,0x45,0xe7,0x5d,0xdf,0x6b,0x04,
+/* 0x001090 */ 0x67,0x60,0x1a,0xfd,0x13,0x6d,0x0a,0xa5,0xf6,0xaf,0x33,0xf2,0x94,0xdc,0xc0,0xcf,
+/* 0x0010a0 */ 0xb5,0xae,0x2d,0x5d,0x42,0x5a,0x46,0x72,0xf3,0x5f,0x7b,0x60,0xa9,0x9c,0xe2,0xfe,
+/* 0x0010b0 */ 0x8f,0xd5,0xf4,0x3e,0xb1,0xf8,0xaf,0x63,0xc4,0xc0,0xcb,0x13,0xd1,0x30,0x6c,0x91,
+/* 0x0010c0 */ 0x65,0xef,0xe6,0xc2,0x5f,0xeb,0xc2,0x23,0xd2,0x3e,0x57,0x69,0xb3,0x0d,0x91,0xe1,
+/* 0x0010d0 */ 0x33,0x0a,0x13,0x46,0xf0,0x8d,0x78,0x03,0x32,0xf1,0x17,0xde,0x79,0x04,0x84,0x53,
+/* 0x0010e0 */ 0xe6,0x3a,0x9f,0x85,0xff,0x12,0xf7,0x91,0xbf,0x4d,0x1e,0x5f,0x95,0xd2,0xbc,0x61,
+/* 0x0010f0 */ 0xd2,0x8b,0xf3,0xd0,0x46,0x13,0xe7,0x1e,0x24,0xa5,0x6f,0x02,0xfe,0x4a,0x1a,0xf8,
+/* 0x001100 */ 0x2b,0x0b,0xff,0x35,0xd8,0xd9,0xa7,0x2b,0x4b,0x3d,0xc5,0xfe,0xcc,0x26,0x2f,0x4c,
+/* 0x001110 */ 0x58,0x13,0x7f,0x75,0x2a,0x93,0x9e,0xeb,0xf0,0x79,0x3e,0xdf,0xc7,0xd3,0xf9,0x2f,
+/* 0x001120 */ 0x10,0xa6,0x94,0xab,0xc9,0x5a,0xe2,0x1b,0x33,0x35,0x8a,0x30,0x26,0x71,0xda,0x0b,
+/* 0x001130 */ 0x07,0xd0,0x09,0xdc,0xc7,0x8d,0xcf,0xa3,0xb0,0xe6,0x1b,0x15,0x2e,0xe7,0xc4,0x5f,
+/* 0x001140 */ 0x65,0x49,0x71,0x12,0x3b,0x11,0x19,0x17,0xb6,0x12,0x01,0xa0,0x19,0x31,0x9b,0x66,
+/* 0x001150 */ 0x45,0xe4,0x93,0x44,0xc8,0xc5,0x7f,0x71,0x41,0xea,0x53,0x7d,0x3b,0x52,0x1a,0x8b,
+/* 0x001160 */ 0xf6,0xea,0x44,0x47,0xad,0x73,0x7e,0xa5,0x2e,0xe9,0x8b,0x7b,0x3e,0x05,0x7f,0xbd,
+/* 0x001170 */ 0x25,0xee,0x41,0x65,0x8d,0x9e,0x1d,0x96,0x06,0x19,0x3e,0xb6,0x8c,0xcb,0xc9,0x26,
+/* 0x001180 */ 0xc3,0x58,0xdc,0x9f,0xf4,0xb7,0x75,0x17,0xc1,0xbe,0xc3,0xf1,0xd7,0x8c,0xf2,0x4c,
+/* 0x001190 */ 0x67,0x5b,0xdd,0x8f,0x01,0xac,0x6d,0x8b,0x59,0xcf,0xb1,0x6c,0x76,0xa1,0x4d,0x29,
+/* 0x0011a0 */ 0x63,0xff,0x5f,0x7b,0x76,0x34,0x66,0xc5,0x5f,0x5c,0x18,0x6e,0xda,0x2f,0x2b,0x0c,
+/* 0x0011b0 */ 0x88,0x99,0x9a,0x4e,0x2e,0xc4,0xb1,0xa8,0xb5,0xdb,0x78,0x99,0xe5,0xa0,0xc1,0xd9,
+/* 0x0011c0 */ 0xf1,0x17,0xf2,0xc5,0x3a,0xce,0x6a,0x13,0x6a,0xd8,0xed,0xdb,0xd0,0x61,0x0d,0x81,
+/* 0x0011d0 */ 0xa2,0x99,0x8e,0x74,0x4c,0x4f,0xe1,0x5c,0xca,0x7f,0xe5,0xc6,0x5f,0x71,0xe1,0x22,
+/* 0x0011e0 */ 0xb9,0xa2,0x34,0x30,0x20,0x96,0x0e,0xcd,0x3a,0x06,0x01,0x76,0x71,0x8d,0x74,0x09,
+/* 0x0011f0 */ 0x3d,0xa4,0xfa,0x46,0x72,0xe0,0x2f,0x36,0xad,0x2e,0x8a,0xbf,0x9f,0xb5,0x67,0xcd,
+/* 0x001200 */ 0xcc,0x11,0xf3,0xc7,0x2d,0xe1,0x61,0xc0,0x71,0xc7,0x53,0x44,0xd8,0xde,0xbb,0x7c,
+/* 0x001210 */ 0x23,0x65,0x2f,0xe5,0xc2,0x5f,0x54,0xe8,0x22,0x7e,0xd9,0x93,0xc6,0x76,0x81,0x80,
+/* 0x001220 */ 0x71,0x12,0x6f,0xb6,0xf1,0x5f,0xc8,0xce,0x7f,0x65,0xe3,0xb6,0x1e,0x56,0xd6,0x34,
+/* 0x001230 */ 0xa5,0xd3,0x5e,0x6b,0x4d,0x7a,0xd1,0xec,0x67,0xa2,0xb4,0x7a,0x4a,0x1a,0x8f,0xe4,
+/* 0x001240 */ 0xc4,0x5f,0x79,0xef,0xc3,0x24,0xaa,0x68,0xf2,0x3c,0x9c,0x81,0xbf,0xb6,0xe1,0x51,
+/* 0x001250 */ 0xc7,0xb8,0xff,0xc6,0x13,0x6f,0xcc,0x89,0xbf,0x40,0x50,0xbf,0xaa,0xd4,0xa9,0x5b,
+/* 0x001260 */ 0x7f,0x9a,0xd1,0xcf,0x8c,0xc6,0xb5,0x34,0x23,0xe1,0xa8,0x6f,0xbb,0x30,0x96,0x1b,
+/* 0x001270 */ 0x7f,0xbd,0x0d,0x7e,0x4b,0xed,0xb2,0xad,0x3b,0x60,0x61,0xbc,0xe4,0xaa,0x4d,0x9f,
+/* 0x001280 */ 0x32,0x96,0x10,0x8b,0xfc,0x5d,0xcb,0x4f,0x84,0x1c,0xf8,0x8b,0x09,0x4a,0xff,0x5d,
+/* 0x001290 */ 0x61,0x8a,0xcd,0x8d,0xa6,0xf6,0x54,0x93,0xa2,0x0c,0xd9,0x88,0x30,0xd1,0x47,0x3a,
+/* 0x0012a0 */ 0x72,0xe3,0x2f,0x3c,0x19,0x3f,0x34,0x04,0xcf,0x18,0xc7,0x46,0xd3,0x18,0xa6,0xeb,
+/* 0x0012b0 */ 0x06,0x6b,0x9a,0x4b,0x36,0x9b,0xc6,0xcf,0x35,0x55,0x27,0x3c,0x80,0xbf,0x50,0x4e,
+/* 0x0012c0 */ 0xfc,0x35,0x8a,0xf6,0xe2,0xf2,0x84,0x24,0x33,0xd8,0xe5,0x6c,0x2a,0x40,0x1d,0xd8,
+/* 0x0012d0 */ 0xdc,0xbf,0x48,0x30,0x26,0xcc,0xc2,0x39,0xf1,0x57,0x1b,0x3e,0x8d,0x0e,0xa3,0x7f,
+/* 0x0012e0 */ 0xe9,0x69,0x5e,0x15,0x33,0x9a,0x5a,0x53,0xd0,0xec,0x06,0xbc,0xd1,0x34,0x7e,0x46,
+/* 0x0012f0 */ 0x05,0x41,0xb5,0xe1,0x2f,0xd9,0xc9,0x7f,0xad,0x17,0x7e,0x0b,0xc2,0x2d,0x5a,0x70,
+/* 0x001300 */ 0x08,0x60,0x57,0x7a,0xd3,0x5c,0xf4,0x6b,0xcd,0xd0,0x7c,0x4c,0x96,0x28,0x2d,0xcd,
+/* 0x001310 */ 0x16,0xfe,0xfa,0x4a,0x86,0x9f,0x00,0xc3,0x74,0x01,0xd7,0xb5,0x7b,0x88,0xa9,0xb1,
+/* 0x001320 */ 0x36,0xa0,0x67,0x84,0xa1,0x54,0x9c,0xcc,0x14,0xe5,0x97,0xb5,0x65,0x9f,0x86,0xbf,
+/* 0x001330 */ 0xd4,0xe1,0xf8,0xad,0x5a,0xc1,0xd8,0xb2,0xab,0xb2,0xb3,0xe9,0x8a,0x70,0x1d,0x3a,
+/* 0x001340 */ 0xd9,0x55,0xc3,0x35,0x57,0xa8,0xe6,0x1d,0x41,0xb7,0xf0,0x97,0x9a,0xde,0x3f,0x23,
+/* 0x001350 */ 0xf2,0xbf,0x90,0x9d,0x43,0x12,0xef,0x96,0xdb,0x74,0xc1,0x6a,0xea,0xcf,0x9b,0x0d,
+/* 0x001360 */ 0x88,0x75,0xa7,0xd1,0x3f,0x2e,0x80,0xae,0x2a,0x7e,0x37,0x1b,0xfe,0xe2,0xc2,0x2b,
+/* 0x001370 */ 0x68,0x7b,0x68,0xbe,0x5e,0xa2,0xda,0x51,0xad,0x11,0x07,0x32,0x1b,0x6d,0xe5,0xcc,
+/* 0x001380 */ 0x23,0xec,0x83,0x6a,0xe5,0x88,0x27,0x8a,0x75,0x0b,0x7f,0x49,0xe9,0x83,0xfb,0x92,
+/* 0x001390 */ 0xb8,0x67,0xa9,0xa6,0x4b,0x52,0x46,0xfc,0x06,0x3d,0x37,0x7e,0xda,0xd8,0xbf,0x60,
+/* 0x0013a0 */ 0x0d,0x5f,0xab,0x79,0x2a,0xf1,0x50,0x0a,0x7f,0x7d,0x2f,0xcd,0x1f,0x7b,0x97,0xbc,
+/* 0x0013b0 */ 0x2a,0xd7,0x2a,0xc1,0x83,0x26,0xf2,0xb5,0x3a,0x7c,0xd2,0x1d,0x44,0x27,0xcd,0xf3,
+/* 0x0013c0 */ 0xf0,0x09,0x14,0x89,0xb7,0x68,0xc2,0xbb,0xe6,0xb9,0xa8,0xc3,0x4f,0x78,0x80,0xfb,
+/* 0x0013d0 */ 0x75,0xef,0xab,0x11,0xad,0xe5,0x59,0xd3,0xcf,0x24,0x29,0x17,0x82,0x1e,0xa7,0x9b,
+/* 0x0013e0 */ 0xfc,0x17,0xaa,0x6f,0xf2,0xf5,0x14,0x5b,0xf8,0xcb,0xc9,0x7f,0x0d,0x80,0x30,0xa6,
+/* 0x0013f0 */ 0x5c,0xd1,0x42,0xa8,0xa0,0x4d,0xa8,0xe7,0x4d,0x3a,0xc0,0x81,0x0f,0xb8,0xcd,0x65,
+/* 0x001400 */ 0x7c,0xd2,0xe4,0xbf,0xae,0xc6,0x6b,0x9a,0xbc,0x49,0x3b,0xfe,0x5a,0x9c,0x86,0x9b,
+/* 0x001410 */ 0xde,0x95,0x9e,0x55,0x29,0x57,0xd2,0x61,0x40,0xb3,0xae,0xd8,0x38,0xf7,0x9f,0x13,
+/* 0x001420 */ 0x77,0x0f,0xe1,0x6e,0xd1,0xf4,0x9f,0x63,0x7e,0xbd,0x39,0xf0,0x69,0xf8,0xeb,0x9c,
+/* 0x001430 */ 0x0b,0xd6,0xa8,0x89,0xfc,0x5e,0x6c,0x34,0x75,0xd9,0xf8,0x2f,0xb5,0x3b,0xc5,0xac,
+/* 0x001440 */ 0xf5,0xe8,0x52,0xaf,0xdf,0xc4,0x5f,0x28,0x83,0xff,0xc2,0x43,0xf2,0x7e,0x45,0xa1,
+/* 0x001450 */ 0xa7,0xbb,0xc6,0x14,0x46,0x98,0xe2,0x02,0x80,0x03,0x61,0x26,0x18,0xfe,0xc6,0xf3,
+/* 0x001460 */ 0x34,0xe0,0xaf,0xd7,0xdc,0xbf,0x90,0xd7,0xce,0x7f,0x99,0x8e,0xfd,0x87,0x81,0xbe,
+/* 0x001470 */ 0x81,0x1b,0x35,0xf0,0xbe,0xac,0x7e,0x66,0xfc,0xd7,0x47,0xc5,0xe3,0xa9,0xf1,0x9a,
+/* 0x001480 */ 0x42,0x61,0x12,0xd4,0x3c,0x28,0x1b,0xff,0x85,0xaa,0xb9,0x70,0xc9,0xe1,0xe1,0xeb,
+/* 0x001490 */ 0xa6,0xb0,0x17,0x84,0x4f,0x52,0x4d,0x87,0x55,0x1b,0xfe,0x4a,0x9b,0x5f,0xa8,0x65,
+/* 0x0014a0 */ 0x48,0xa8,0xd7,0x4e,0x92,0x9a,0x63,0xde,0xe9,0x65,0x0f,0x50,0x80,0x90,0x84,0xfd,
+/* 0x0014b0 */ 0xab,0x1e,0x50,0x5b,0x8d,0x2e,0xad,0x2f,0xbe,0x8a,0x7c,0x78,0xf1,0x5b,0xcc,0xf8,
+/* 0x0014c0 */ 0x23,0x52,0x83,0xe0,0x57,0x38,0xf8,0xaf,0x3a,0x0b,0x7f,0x29,0x2b,0xba,0x70,0x25,
+/* 0x0014d0 */ 0x8d,0x81,0x39,0x5a,0xd0,0x57,0x54,0x45,0x83,0x0c,0x93,0xe0,0x78,0x2c,0x69,0xea,
+/* 0x0014e0 */ 0x47,0x8f,0x27,0xbb,0xa8,0xcd,0xd3,0x92,0x7f,0x88,0x19,0xf7,0xc7,0xfc,0x8a,0x27,
+/* 0x0014f0 */ 0x5e,0x64,0xf2,0x5f,0xc8,0xe9,0xbc,0x11,0x4f,0xa8,0xc8,0xeb,0xea,0x70,0x95,0x1f,
+/* 0x001500 */ 0x5b,0x11,0x66,0xfd,0x4c,0xd1,0xd6,0x75,0x74,0x2c,0x6e,0xd2,0x2b,0x16,0xe5,0x9d,
+/* 0x001510 */ 0x73,0x75,0x28,0x81,0x21,0x8f,0x71,0x52,0x81,0x56,0x20,0x9c,0x83,0xff,0x22,0x9e,
+/* 0x001520 */ 0x44,0xac,0x82,0x7e,0x2d,0xc9,0xc5,0x94,0xcd,0x59,0x0c,0xa3,0xdc,0x1d,0xcf,0x0b,
+/* 0x001530 */ 0x02,0xa2,0x7f,0x82,0x1e,0x7d,0xc0,0xfb,0xa0,0xbb,0x07,0x38,0xee,0xd6,0x7b,0x10,
+/* 0x001540 */ 0xbc,0x6a,0x36,0xfe,0x6b,0x8a,0xa2,0x5a,0xc9,0x53,0x05,0x9b,0x54,0x6d,0xe2,0x97,
+/* 0x001550 */ 0x09,0x61,0x2d,0xf4,0x0f,0xa0,0xad,0x55,0x42,0x50,0x9a,0x1c,0xd8,0xc7,0x8f,0x23,
+/* 0x001560 */ 0x8e,0x23,0x83,0xbf,0x38,0x4f,0x6a,0x96,0xfa,0x86,0x4c,0xfe,0x6b,0x94,0xe1,0xaf,
+/* 0x001570 */ 0xc5,0x96,0x3f,0x2f,0xfa,0x4e,0x15,0x4f,0xe7,0x5d,0x43,0x65,0x64,0xc6,0x84,0x39,
+/* 0x001580 */ 0x3a,0xaf,0xd0,0xd3,0x0c,0xbd,0x4e,0x2f,0x98,0xe8,0x98,0x96,0x3f,0x71,0xf0,0x95,
+/* 0x001590 */ 0x23,0xb9,0xf0,0x57,0x9e,0x77,0x77,0xf1,0x38,0x3e,0x8e,0xc2,0x71,0xaf,0x71,0x4e,
+/* 0x0015a0 */ 0x42,0x57,0xda,0x20,0x7a,0x01,0x47,0x28,0xff,0x15,0xb4,0x93,0x77,0x35,0x74,0x23,
+/* 0x0015b0 */ 0xcb,0xce,0x7f,0x55,0xb5,0x49,0x09,0xd8,0x02,0x3a,0x1a,0x15,0x82,0x19,0xdb,0x45,
+/* 0x0015c0 */ 0x9b,0xfa,0x85,0x83,0xa8,0x5b,0xa9,0x1e,0x90,0x9e,0xc1,0x5e,0xf5,0xb0,0x69,0x0c,
+/* 0x0015d0 */ 0x78,0x59,0xf2,0xec,0x88,0x85,0xb3,0xe2,0xaf,0x40,0x48,0x42,0x58,0x43,0x3f,0x90,
+/* 0x0015e0 */ 0x14,0xf4,0xb9,0x84,0xb9,0x7f,0xcd,0x82,0x81,0xeb,0x40,0x37,0x0d,0x49,0x37,0xe3,
+/* 0x0015f0 */ 0x95,0xaa,0x65,0xfc,0x30,0xd1,0x90,0x47,0xc2,0x8b,0xb2,0xe2,0xaf,0x60,0xb9,0xb4,
+/* 0x001600 */ 0x16,0x9f,0x72,0xfd,0x4c,0x2b,0x2b,0xe7,0x51,0x70,0xb4,0xe9,0x6b,0x80,0xbf,0x36,
+/* 0x001610 */ 0x8c,0x54,0xbe,0x1b,0x58,0x1f,0xbb,0x93,0x32,0x62,0xdc,0xf8,0x57,0xa4,0x54,0x01,
+/* 0x001620 */ 0x44,0x26,0x65,0xe3,0xbf,0x50,0x3d,0xf1,0xca,0xc2,0xe3,0xe4,0xdf,0x48,0x54,0x2c,
+/* 0x001630 */ 0x38,0x20,0x6c,0x11,0x2f,0x88,0xf5,0x83,0xbe,0xb9,0xc2,0xed,0xe4,0x85,0xe4,0x77,
+/* 0x001640 */ 0xc6,0xbc,0xa1,0x99,0x2b,0xc9,0x05,0x0d,0x8c,0x17,0x0b,0xc3,0x25,0xbf,0x29,0x09,
+/* 0x001650 */ 0x41,0xff,0x78,0x8a,0xb2,0xc4,0x1f,0x42,0x1f,0xb6,0xd3,0x10,0x50,0xf5,0x4f,0xf2,
+/* 0x001660 */ 0x12,0xb1,0xd0,0x9a,0x5f,0x7f,0x29,0x4c,0x37,0x5e,0x65,0xa1,0x02,0x65,0x07,0x95,
+/* 0x001670 */ 0x6b,0x9f,0x33,0xf9,0x4a,0x7e,0xf4,0x91,0x03,0x7f,0x69,0x5e,0xd2,0x31,0x8a,0xbe,
+/* 0x001680 */ 0x8c,0xc2,0xc8,0xcb,0x69,0x4a,0xb6,0x0f,0x7e,0xa0,0x1c,0x13,0xc3,0xa7,0xbc,0x26,
+/* 0x001690 */ 0x4d,0xb9,0x95,0xe1,0x77,0xd4,0x10,0xf5,0x12,0x21,0x3b,0xfe,0x0a,0xee,0x90,0xa2,
+/* 0x0016a0 */ 0xb0,0xef,0x6c,0x44,0x3b,0xd1,0xd7,0xac,0x48,0x8c,0x56,0x3c,0x4c,0xb6,0xa2,0x9b,
+/* 0x0016b0 */ 0x47,0xa4,0x7f,0xc4,0x67,0xc8,0x61,0xa5,0xd4,0x8c,0xcd,0xa8,0x24,0xb0,0xc7,0x9d,
+/* 0x0016c0 */ 0x32,0xd7,0x79,0x27,0xfe,0xd2,0xa4,0x55,0xf8,0x25,0x00,0x59,0xf7,0x84,0x02,0x36,
+/* 0x0016d0 */ 0x44,0xf6,0xc6,0xd2,0x0d,0xa4,0x74,0x4c,0x62,0x84,0xa3,0x89,0xbf,0xf6,0x6d,0x0a,
+/* 0x0016e0 */ 0x96,0x06,0x9a,0x73,0xe1,0xaf,0x8b,0x30,0xb8,0x7f,0x0c,0x75,0x90,0xe8,0xce,0x8a,
+/* 0x0016f0 */ 0x44,0x6a,0x85,0x1c,0x16,0xbb,0xc5,0x72,0xbd,0x37,0x94,0x77,0x42,0xb7,0x22,0x79,
+/* 0x001700 */ 0xf6,0xe8,0x41,0x0c,0x6b,0xe6,0xf9,0x2c,0xf1,0x87,0xe7,0x51,0x43,0xc2,0xab,0xb9,
+/* 0x001710 */ 0x2e,0x93,0x97,0x94,0x85,0xbb,0x82,0x76,0x46,0x4c,0x3e,0xa1,0x86,0x89,0xf7,0x6d,
+/* 0x001720 */ 0x98,0x05,0x97,0x61,0x19,0x34,0xf8,0xaf,0x86,0x84,0x94,0xcc,0x8e,0xbf,0x70,0x04,
+/* 0x001730 */ 0x57,0x67,0xd2,0x5e,0x9d,0x14,0x7f,0x49,0xf5,0xa8,0xba,0xb3,0xfd,0xac,0x3d,0xc0,
+/* 0x001740 */ 0x69,0x9e,0xb8,0x35,0x17,0xfe,0xaa,0x53,0x7d,0xfd,0x30,0x5e,0xef,0xb8,0xc2,0x51,
+/* 0x001750 */ 0x6f,0x5c,0x30,0x5c,0x50,0xd9,0x03,0xf8,0x8b,0x80,0xa6,0x4b,0x48,0xca,0x29,0x63,
+/* 0x001760 */ 0x19,0x84,0x59,0x39,0xf8,0xaf,0xb2,0x75,0x9e,0x1f,0xfa,0xc1,0x49,0x56,0x7a,0xd6,
+/* 0x001770 */ 0x06,0x58,0x94,0x20,0x6b,0xba,0x03,0x84,0x7c,0x7f,0xab,0xb4,0x01,0x9f,0x55,0x53,
+/* 0x001780 */ 0xc6,0xa4,0x2a,0x0a,0x42,0x76,0xfc,0x55,0x71,0x97,0x27,0x0e,0xb0,0xeb,0x29,0x58,
+/* 0x001790 */ 0xbe,0x24,0x8a,0xb6,0x58,0xd3,0x8e,0x18,0xd8,0x28,0x3d,0xcb,0xa5,0x58,0x51,0xd2,
+/* 0x0017a0 */ 0xe1,0x99,0x53,0x6a,0x2c,0x3b,0xfe,0xe2,0xdc,0x96,0xda,0x2e,0x2b,0x3c,0x10,0xd1,
+/* 0x0017b0 */ 0x88,0x36,0x14,0xd5,0x3d,0xb3,0x94,0xa5,0x52,0x51,0x6c,0x58,0xdb,0xb3,0x28,0x68,
+/* 0x0017c0 */ 0x41,0x86,0xe5,0x9e,0xa2,0x58,0x76,0xfc,0x55,0xe7,0xf6,0x91,0x65,0x67,0xb5,0xa4,
+/* 0x0017d0 */ 0x1a,0xa6,0x6c,0x97,0xc6,0xa3,0xc5,0x62,0x1d,0xa5,0xda,0xe4,0x9a,0xb0,0xdb,0x1b,
+/* 0x0017e0 */ 0x13,0x92,0x64,0x32,0x9a,0x1a,0x02,0xa9,0x25,0xe6,0xc9,0x8e,0xbf,0x60,0xee,0xc4,
+/* 0x0017f0 */ 0x5d,0xd3,0xf1,0x2b,0xca,0x12,0x1a,0x88,0x98,0xc2,0x4d,0x80,0xc8,0x22,0xcb,0xab,
+/* 0x001800 */ 0xb7,0x75,0x70,0x22,0xcc,0xc0,0x4d,0x14,0xa3,0x75,0x64,0xc3,0x5f,0x57,0x50,0xe4,
+/* 0x001810 */ 0x6e,0xf8,0xa9,0xb7,0xf0,0x57,0xd4,0x85,0x6a,0xa1,0x41,0x9f,0xa9,0xb0,0x5b,0xbd,
+/* 0x001820 */ 0x85,0x3e,0x42,0xe1,0x55,0xde,0x47,0x84,0xdf,0x2a,0xfb,0x4d,0xea,0x07,0x9e,0xb3,
+/* 0x001830 */ 0xc6,0x77,0x5a,0x78,0x49,0xce,0x8a,0xbf,0x00,0x76,0x09,0x3d,0x88,0x90,0x1e,0xc4,
+/* 0x001840 */ 0xf9,0x2f,0x15,0x9a,0x1e,0xc4,0x6f,0x52,0xb4,0x15,0x92,0xb6,0xe0,0xb3,0x28,0xc1,
+/* 0x001850 */ 0x61,0x97,0x61,0xbc,0x35,0x96,0x13,0x7f,0x95,0xe0,0x41,0xd2,0xae,0x28,0xea,0x66,
+/* 0x001860 */ 0xa6,0x51,0x79,0x13,0x78,0x71,0xe5,0xad,0xd2,0x75,0xa9,0x18,0x45,0x10,0x08,0xeb,
+/* 0x001870 */ 0xf0,0xac,0xf8,0xcb,0x45,0x47,0x19,0xef,0x72,0xb5,0x13,0xc5,0x60,0x4b,0x51,0xa1,
+/* 0x001880 */ 0x15,0x80,0x8a,0xa4,0x4e,0xfc,0x96,0xb4,0xdf,0x8a,0x68,0x25,0x55,0x5f,0x05,0x44,
+/* 0x001890 */ 0x96,0x0d,0x7f,0xed,0x47,0x91,0xef,0xf8,0x1e,0x13,0xfe,0xa4,0x1e,0x15,0xc3,0x46,
+/* 0x0018a0 */ 0xff,0x58,0x43,0x30,0xf1,0x1c,0x0a,0x6e,0x12,0x46,0xe5,0x4b,0xd8,0x44,0x52,0x24,
+/* 0x0018b0 */ 0xd2,0x76,0x72,0xa4,0x2c,0x07,0xfe,0x4a,0xfa,0xe2,0x1b,0x99,0xc6,0xc6,0x0b,0x3f,
+/* 0x0018c0 */ 0xc2,0x84,0x45,0xf4,0xdb,0x18,0x25,0x1f,0x8a,0x29,0x63,0xf8,0x9e,0x97,0xe5,0xc0,
+/* 0x0018d0 */ 0x5f,0x32,0x43,0x5b,0x63,0xe5,0x61,0x64,0xe7,0xbf,0x18,0xdb,0xa5,0xc0,0x52,0xa9,
+/* 0x0018e0 */ 0xc9,0x43,0x62,0xaa,0x49,0x0e,0x12,0x21,0x07,0xfe,0x7a,0x62,0xc5,0x98,0x7f,0x0c,
+/* 0x0018f0 */ 0x3d,0xd4,0xf4,0x38,0x3d,0xa5,0xa1,0x9a,0x3a,0xc0,0x5f,0x45,0x63,0xe8,0x90,0x54,
+/* 0x001900 */ 0xd6,0x23,0x25,0xf1,0x22,0x75,0x33,0xf2,0x93,0x66,0xc3,0x58,0x93,0x7e,0xee,0xc4,
+/* 0x001910 */ 0x5f,0x29,0x67,0x3b,0xe9,0x59,0x04,0x7b,0xdc,0x5e,0x59,0xe9,0x93,0x42,0x76,0x57,
+/* 0x001920 */ 0xe4,0x00,0x51,0x92,0xd2,0x2d,0x45,0x5b,0xd4,0x0e,0xcc,0x5c,0x3e,0x68,0x8a,0x07,
+/* 0x001930 */ 0x75,0xc0,0x68,0xb9,0xf1,0x97,0xff,0x8c,0xfe,0x63,0x54,0x16,0x7f,0xf4,0xdb,0x66,
+/* 0x001940 */ 0x7c,0xdd,0x77,0xf0,0x19,0xf5,0x57,0x48,0x19,0x0a,0x5c,0xc2,0x37,0xa0,0x8d,0x21,
+/* 0x001950 */ 0x2b,0xf4,0xae,0xf2,0xcd,0xa1,0x75,0x4e,0xfe,0xeb,0x36,0x0e,0xa9,0xf6,0x91,0x25,
+/* 0x001960 */ 0xab,0xb7,0xae,0x6f,0xbc,0xda,0xf9,0x49,0xfb,0x42,0xc5,0x7b,0x5f,0x0a,0x76,0xbd,
+/* 0x001970 */ 0x01,0xee,0xc1,0xc2,0x09,0xef,0x7a,0xe1,0x31,0xf4,0xeb,0x78,0xcd,0x9b,0x5e,0x8e,
+/* 0x001980 */ 0xc8,0xea,0xa3,0xde,0x55,0xb9,0xf8,0xaf,0x12,0xe6,0x55,0xbe,0x0b,0xdd,0x5b,0xcd,
+/* 0x001990 */ 0x35,0x75,0xd6,0xa9,0xbe,0x71,0x90,0xa8,0x44,0xf8,0xbe,0x33,0xc5,0x4f,0x2a,0x52,
+/* 0x0019a0 */ 0xf8,0x4b,0xb5,0xfc,0xc3,0x4f,0x48,0xcd,0x28,0xb8,0x34,0x11,0xf4,0x32,0x68,0x0a,
+/* 0x0019b0 */ 0xf7,0x1b,0xb0,0xcb,0x73,0x49,0x38,0x07,0xdb,0x16,0x85,0x5d,0x45,0x57,0xd1,0xf7,
+/* 0x0019c0 */ 0xe2,0xb5,0xa3,0x3e,0xaa,0xb9,0x42,0x16,0xd2,0xf7,0x51,0xb3,0xf0,0x5f,0xfb,0xd0,
+/* 0x0019d0 */ 0xce,0x36,0xcf,0xb7,0x8a,0x82,0xb8,0xbd,0xb4,0x52,0x1f,0x5e,0x44,0xb3,0x09,0x68,
+/* 0x0019e0 */ 0x53,0x08,0x9f,0x20,0x07,0x34,0x65,0xcc,0xb3,0x0e,0xbf,0x12,0xdf,0xdb,0x0e,0xfb,
+/* 0x0019f0 */ 0x4e,0x88,0x9e,0xaf,0xa2,0x5b,0x74,0xa9,0xcd,0xfd,0x73,0xc3,0x1f,0x53,0x1f,0x93,
+/* 0x001a00 */ 0x6d,0xcf,0x99,0x3f,0xe4,0x51,0x63,0x37,0x28,0x0f,0x4a,0xdf,0x24,0xb6,0xa8,0x4e,
+/* 0x001a10 */ 0xe8,0xf9,0x67,0xe5,0xd2,0x21,0x4f,0x5b,0xde,0x69,0x6a,0x03,0x9a,0xa2,0x33,0xe8,
+/* 0x001a20 */ 0xb0,0x54,0xda,0x28,0xbd,0xe2,0x56,0xb3,0xf1,0x5f,0x2e,0x51,0x5d,0x21,0xc9,0x41,
+/* 0x001a30 */ 0x7a,0x18,0x42,0x24,0x7a,0xbc,0x6f,0x34,0x8d,0xa3,0x44,0x33,0x6c,0x5b,0xb7,0xe0,
+/* 0x001a40 */ 0x97,0xd5,0x54,0x24,0xaa,0x5a,0xae,0x4a,0x0f,0xe3,0xae,0xac,0xfc,0xd7,0x3f,0x6e,
+/* 0x001a50 */ 0xf7,0x2d,0xaa,0x58,0x82,0x36,0x51,0xda,0x6b,0x42,0x30,0xd2,0x52,0xfa,0xa9,0x67,
+/* 0x001a60 */ 0xae,0x82,0x1b,0xdf,0x7f,0xcf,0x09,0xea,0x51,0x73,0xf2,0xe5,0x92,0x1e,0x9e,0x08,
+/* 0x001a70 */ 0xee,0x58,0xf1,0xf7,0x16,0xfe,0xb2,0xf1,0x5f,0xae,0xba,0x11,0x2a,0x28,0x57,0xec,
+/* 0x001a80 */ 0xb4,0x97,0xef,0x20,0x78,0x95,0x07,0x5c,0xa9,0x61,0xd2,0xad,0x04,0x93,0x96,0x84,
+/* 0x001a90 */ 0x90,0x03,0x7f,0x21,0xef,0x44,0x47,0x3d,0x7a,0x59,0x5b,0x88,0x82,0x5c,0xf3,0x79,
+/* 0x001aa0 */ 0x1d,0x9c,0xff,0x69,0xf4,0xb2,0xd8,0xa0,0x3f,0x04,0x7e,0xa6,0x72,0x1c,0x8c,0xbd,
+/* 0x001ab0 */ 0x86,0xdf,0xf2,0x92,0xef,0x54,0x0e,0xfe,0x2b,0x28,0x2f,0x27,0xe0,0xee,0xbe,0x02,
+/* 0x001ac0 */ 0x8b,0x9e,0xc1,0x5b,0xd5,0xe9,0x85,0x5d,0xb1,0x69,0xb4,0x99,0x04,0x39,0x93,0x45,
+/* 0x001ad0 */ 0x01,0x54,0xc0,0x70,0x26,0x93,0x9e,0x91,0x5c,0xf8,0x8b,0xc0,0x72,0x1a,0xa4,0xf1,
+/* 0x001ae0 */ 0x1b,0xf0,0x53,0x34,0xfe,0x90,0xa6,0xb7,0xd0,0x2c,0x24,0xca,0xcb,0xb8,0x99,0x80,
+/* 0x001af0 */ 0x8c,0x07,0xc2,0x3a,0xa6,0xae,0x48,0x64,0xe7,0xbf,0x50,0x50,0x72,0x27,0x1a,0x57,
+/* 0x001b00 */ 0xba,0x37,0xc9,0x8a,0x5e,0x12,0x36,0xf0,0x32,0x65,0x27,0xb7,0x75,0x28,0xc1,0x71,
+/* 0x001b10 */ 0x69,0x11,0x2c,0xa7,0x8f,0xab,0xf0,0x9c,0x9b,0x19,0x11,0x16,0x1c,0xf0,0x84,0xdc,
+/* 0x001b20 */ 0x16,0xfe,0x0a,0x32,0xd8,0xe5,0x31,0xfa,0xb0,0xcb,0x4b,0xf2,0x2a,0xe1,0x7d,0x18,
+/* 0x001b30 */ 0x37,0x31,0x3e,0x67,0x4a,0x84,0x5e,0xdd,0x79,0xcf,0xfb,0x8d,0x47,0xd5,0xc8,0xb1,
+/* 0x001b40 */ 0x42,0x4a,0x41,0x9e,0x54,0x1b,0x86,0xbc,0xcf,0x30,0x06,0x13,0xe6,0x45,0x22,0x2b,
+/* 0x001b50 */ 0xff,0x75,0x8d,0xae,0x63,0xaa,0x30,0xad,0x5d,0x51,0x1a,0x48,0xf5,0xf9,0x0e,0xde,
+/* 0x001b60 */ 0x54,0xf8,0xa6,0x70,0x05,0x4d,0xaf,0x89,0x18,0x8c,0x58,0xa8,0x61,0x84,0x0a,0xea,
+/* 0x001b70 */ 0xff,0x86,0xa6,0xad,0x13,0xb9,0xf9,0xaf,0x49,0xe1,0x1a,0xba,0x22,0xdd,0x7a,0x04,
+/* 0x001b80 */ 0xb0,0xd5,0xfd,0x34,0x22,0x91,0x32,0x62,0x46,0xd3,0x69,0xf0,0x52,0x4e,0xa2,0x86,
+/* 0x001b90 */ 0xe4,0x43,0xfc,0x7c,0x63,0x49,0xb4,0x7e,0x4c,0x68,0x4b,0xf1,0x5f,0x53,0xed,0xa9,
+/* 0x001ba0 */ 0xfc,0xaf,0x64,0x77,0x7f,0xd1,0x28,0xea,0x1f,0x28,0x3b,0xe5,0x79,0x0c,0x47,0x58,
+/* 0x001bb0 */ 0xf7,0xb2,0x21,0x78,0x94,0x0a,0x5d,0x78,0xb4,0xab,0xfb,0xfe,0x70,0xf2,0xfa,0x7e,
+/* 0x001bc0 */ 0xe1,0x17,0xb4,0x9f,0x35,0x89,0xf2,0x8c,0x36,0xfe,0xcb,0x76,0xf8,0x40,0x7b,0x95,
+/* 0x001bd0 */ 0xc0,0x26,0x75,0x54,0x70,0x35,0xae,0x94,0x7f,0x60,0x0c,0x81,0x6b,0x2f,0x5a,0xab,
+/* 0x001be0 */ 0xbb,0x65,0xac,0x2b,0x3f,0x30,0x79,0xe1,0x3d,0x34,0x02,0x47,0x6b,0xbc,0x3b,0x85,
+/* 0x001bf0 */ 0xbf,0x9e,0x4e,0xe3,0xbf,0xc6,0x97,0xf6,0xb7,0xfb,0x29,0x6c,0x5f,0xcb,0x61,0xfb,
+/* 0x001c00 */ 0x1e,0xbc,0x96,0x85,0x1d,0xc2,0xd6,0x36,0xec,0x7a,0x94,0xe7,0x7f,0xed,0xa6,0xbb,
+/* 0x001c10 */ 0x9e,0x16,0xe8,0xb5,0xf8,0xaf,0xd9,0xbb,0xed,0xb9,0x5d,0x8c,0xf3,0x3d,0x87,0x2e,
+/* 0x001c20 */ 0xb5,0xd7,0xea,0x5b,0xb7,0xc0,0x07,0xc9,0xe2,0xc7,0x92,0x26,0x94,0xee,0x17,0xc6,
+/* 0x001c30 */ 0x30,0xd5,0x3c,0xc4,0x19,0xe7,0x88,0x22,0xfd,0xdc,0x5c,0x7f,0x9c,0xf9,0x5f,0x4c,
+/* 0x001c40 */ 0x00,0x4c,0xfb,0x11,0x45,0x64,0xad,0xb0,0x8a,0x32,0xcd,0xa4,0x60,0x1b,0xd3,0x0f,
+/* 0x001c50 */ 0x66,0x18,0xbc,0xf0,0x15,0xb9,0x41,0xaf,0x4e,0x7a,0x26,0xc5,0xac,0xf8,0x8b,0x0b,
+/* 0x001c60 */ 0xef,0xa0,0xc8,0x91,0xaa,0xed,0xa6,0x66,0xc4,0x84,0x5d,0xcf,0xc0,0xac,0x7c,0xcf,
+/* 0x001c70 */ 0xc4,0xef,0x97,0xe4,0x30,0x9a,0xa7,0x2d,0x33,0xf1,0x97,0x98,0x79,0x2e,0x31,0x8e,
+/* 0x001c80 */ 0x36,0xed,0xac,0x9e,0xec,0x8a,0xdf,0x33,0xcd,0x35,0x71,0x61,0xad,0x68,0xe5,0x88,
+/* 0x001c90 */ 0x6d,0x35,0xcf,0x25,0x00,0xe7,0x0e,0x4a,0x0a,0xce,0xc4,0x5f,0x5b,0x90,0x31,0x3a,
+/* 0x001ca0 */ 0x2f,0x2d,0xdd,0xc3,0x03,0x11,0x87,0x89,0x45,0x7f,0xd4,0xd0,0x61,0x82,0xf1,0xb2,
+/* 0x001cb0 */ 0x47,0xd4,0x2b,0xaa,0x5b,0xc1,0x21,0x57,0x46,0xfe,0x97,0x29,0xfc,0x16,0x6d,0x8f,
+/* 0x001cc0 */ 0x57,0xb2,0x40,0x44,0x4e,0xc7,0x84,0xf0,0x9d,0x66,0xd3,0x79,0xf4,0x63,0x0b,0x17,
+/* 0x001cd0 */ 0x90,0xb2,0x52,0x69,0x0d,0xe0,0x2f,0xc4,0xfd,0x70,0x0b,0x7f,0x6d,0x41,0x17,0x64,
+/* 0x001ce0 */ 0x9a,0x08,0x56,0x3c,0xde,0xfa,0x21,0xaa,0x1a,0xf4,0x29,0xc2,0xb0,0xc8,0xf8,0xaf,
+/* 0x001cf0 */ 0x85,0x06,0xff,0x55,0x38,0x5b,0xd0,0xf3,0xa7,0x50,0x48,0x6f,0x09,0xcd,0xa4,0x60,
+/* 0x001d00 */ 0x2d,0x34,0xe4,0xc6,0x1d,0x45,0x79,0x7c,0x99,0xb7,0xf3,0x5f,0x6c,0x56,0x52,0xe1,
+/* 0x001d10 */ 0xdc,0xcc,0x86,0x81,0xc2,0xb3,0xc2,0x21,0x58,0xd7,0xa0,0xe9,0x3c,0x9f,0x7a,0xb4,
+/* 0x001d20 */ 0x69,0x52,0xfc,0xa0,0xc4,0x30,0xfe,0x84,0xe2,0x65,0x15,0xf0,0x97,0x92,0x0d,0x7f,
+/* 0x001d30 */ 0x31,0xc1,0x05,0xde,0xfb,0x10,0x08,0xc3,0x32,0xfb,0x7e,0x34,0xf8,0xa2,0x8e,0x3b,
+/* 0x001d40 */ 0x0e,0x24,0x8d,0xf3,0x16,0x45,0xd2,0x30,0xce,0x19,0x7f,0xd8,0xf8,0x8a,0xf8,0x2c,
+/* 0x001d50 */ 0xba,0xeb,0x54,0x61,0x1b,0x7e,0x43,0x35,0x4e,0x53,0xa7,0xd1,0xef,0xec,0xb1,0xf1,
+/* 0x001d60 */ 0xd7,0x1b,0x9b,0x9d,0x1a,0x50,0xdd,0x45,0x32,0xfb,0x7e,0xb2,0xe5,0x7f,0xfd,0x0c,
+/* 0x001d70 */ 0xc0,0xec,0xfc,0xb1,0xeb,0x57,0xc1,0x73,0x7e,0x6c,0xd0,0x8b,0x80,0xc8,0xa8,0x10,
+/* 0x001d80 */ 0xfb,0xad,0xeb,0x49,0xed,0x9b,0xdc,0xf8,0x30,0x79,0x5c,0x93,0xc6,0xa0,0x9f,0xb3,
+/* 0x001d90 */ 0xe2,0x2f,0x1a,0x03,0x7c,0x02,0xf6,0xa6,0xe8,0x80,0xbb,0x3e,0xc6,0xe8,0xe9,0x01,
+/* 0x001da0 */ 0x33,0x84,0x58,0xf7,0xd4,0xfb,0x87,0xd5,0xbd,0xd8,0x32,0x56,0x4e,0x4b,0x73,0xf1,
+/* 0x001db0 */ 0x5c,0xbe,0x7f,0x0d,0x65,0xe1,0xbf,0xde,0x45,0x57,0x5b,0x6b,0x89,0xef,0x5d,0x16,
+/* 0x001dc0 */ 0x7f,0x18,0xe1,0x44,0xd8,0x31,0x2a,0xfc,0xad,0x70,0xd9,0x0e,0xd6,0x6a,0xe2,0xde,
+/* 0x001dd0 */ 0x31,0xa1,0x8e,0xbf,0x4f,0x16,0xfe,0xab,0x86,0x72,0x2e,0x07,0x69,0x3a,0x89,0x6e,
+/* 0x001de0 */ 0x9c,0xab,0xa7,0x08,0x9a,0xa4,0x2b,0x65,0xbc,0xf4,0x90,0xec,0x7b,0x50,0x38,0xc5,
+/* 0x001df0 */ 0xe7,0x45,0x0e,0xfe,0x4b,0x8f,0x70,0x7f,0xf5,0x1d,0x27,0xff,0xe5,0x29,0x57,0xec,
+/* 0x001e00 */ 0x60,0xad,0xb5,0xe5,0x27,0x65,0x31,0xfe,0x9c,0xec,0xf1,0x87,0x20,0xac,0x96,0xa8,
+/* 0x001e10 */ 0xb0,0x89,0xd3,0x5e,0xa6,0x8f,0xed,0x2e,0x87,0x27,0xd3,0x38,0x46,0xce,0x5f,0xb4,
+/* 0x001e20 */ 0x79,0xe6,0x5a,0xf8,0x4b,0xcc,0xe4,0xbf,0xde,0x96,0x9f,0x42,0x55,0x8d,0x52,0xfc,
+/* 0x001e30 */ 0xba,0x51,0xf2,0x14,0xd7,0xac,0x66,0x89,0x60,0xd7,0xc7,0xdd,0x41,0x29,0x65,0xcc,
+/* 0x001e40 */ 0x03,0x1a,0x8d,0xfc,0xaf,0x40,0x16,0xfe,0x6b,0x50,0x05,0xe1,0x76,0xc9,0x62,0x61,
+/* 0x001e50 */ 0xb6,0x9b,0x4d,0xf1,0x3c,0x11,0xed,0x0c,0x04,0x6c,0x60,0x2d,0x8e,0x1b,0x5d,0xec,
+/* 0x001e60 */ 0xef,0xea,0x97,0x94,0x0c,0xfe,0xe2,0x2c,0x1a,0x0b,0x44,0x4a,0x6e,0x8f,0x75,0x24,
+/* 0x001e70 */ 0x35,0x1a,0xd5,0xe9,0xd9,0x10,0x8b,0x02,0x2a,0xe1,0xfc,0x45,0x2a,0x7f,0x07,0x3c,
+/* 0x001e80 */ 0x6a,0xd2,0x42,0x84,0x73,0x33,0xd9,0x7c,0x7f,0xec,0x46,0x33,0xe6,0xcd,0xce,0x7f,
+/* 0x001e90 */ 0x7d,0x84,0x22,0xcd,0xff,0xcb,0xc6,0x5b,0xed,0xd2,0xb8,0xe0,0xb9,0xa8,0xbd,0x13,
+/* 0x001ea0 */ 0xa8,0xe3,0x43,0xf0,0x11,0xfa,0x57,0xb5,0xa5,0x55,0xf8,0x85,0x91,0xff,0x95,0x25,
+/* 0x001eb0 */ 0xbf,0xe9,0x22,0x9d,0xb9,0x54,0x78,0x85,0x6b,0x1e,0x15,0x46,0x59,0x38,0x1c,0xfb,
+/* 0x001ec0 */ 0xf1,0xa3,0xf8,0x01,0x6e,0xfc,0x0f,0x28,0xac,0x2a,0x23,0x42,0xa1,0x2b,0x5b,0xfe,
+/* 0x001ed0 */ 0xd7,0x4d,0x29,0xb6,0xab,0x90,0x2c,0xd3,0x78,0xd3,0x16,0x86,0xbf,0xb8,0x8d,0xd8,
+/* 0x001ee0 */ 0x2b,0xde,0x0b,0x4d,0x06,0xff,0x25,0x11,0x21,0x2f,0x85,0xbf,0x76,0xa6,0xf5,0x33,
+/* 0x001ef0 */ 0x67,0x15,0xbb,0xe5,0x9b,0x0c,0x4d,0x31,0x20,0x32,0x2a,0xc0,0x7a,0x38,0xca,0x02,
+/* 0x001f00 */ 0x11,0x57,0xc8,0x79,0xb4,0xc9,0xbf,0x54,0xda,0x91,0x77,0x87,0x8b,0xcd,0xd3,0x6c,
+/* 0x001f10 */ 0xf1,0x87,0xe3,0x4b,0x61,0xaf,0xd4,0xdd,0x3f,0xc4,0x99,0x4d,0xa3,0x9d,0xfb,0xd1,
+/* 0x001f20 */ 0xbd,0x34,0x6c,0x95,0x6a,0x7a,0x9a,0x4b,0xe2,0x8d,0x79,0xfc,0x3b,0xd4,0x66,0xef,
+/* 0x001f30 */ 0x32,0x3f,0x5a,0x3b,0x10,0x6b,0xb7,0x6b,0x1e,0xc5,0x5c,0x28,0xfc,0x11,0x68,0x1e,
+/* 0x001f40 */ 0x81,0x07,0x1a,0xf9,0x71,0x21,0x55,0x9a,0x23,0xac,0xe1,0xf3,0x2b,0x80,0x1c,0xf8,
+/* 0x001f50 */ 0x8b,0x61,0xb4,0xb7,0x95,0x4b,0x06,0xc8,0x52,0x2e,0xb9,0xd2,0x7e,0x85,0x9c,0xfa,
+/* 0x001f60 */ 0xa5,0x94,0x58,0x89,0x77,0xff,0x84,0xbf,0x8f,0x94,0x8d,0xff,0x42,0x93,0x25,0x75,
+/* 0x001f70 */ 0x34,0x5b,0xd0,0x88,0x0a,0x06,0x20,0x8f,0x4d,0xda,0x4b,0x9c,0x74,0x99,0x36,0x22,
+/* 0x001f80 */ 0x8d,0x48,0x2c,0x33,0xf0,0x57,0x57,0x67,0x16,0xfe,0x4b,0x3c,0xd4,0xee,0xdb,0x4e,
+/* 0x001f90 */ 0x05,0x64,0xb0,0x5d,0x01,0x53,0x18,0x42,0xcf,0x63,0x2a,0x08,0xbd,0xe8,0x50,0xd4,
+/* 0x001fa0 */ 0xaf,0x75,0x9f,0x13,0x62,0x7c,0xbf,0xc8,0xc6,0x7f,0x9d,0x40,0x7d,0x24,0xd0,0x2a,
+/* 0x001fb0 */ 0x84,0xf0,0x49,0xd7,0xe3,0xe6,0xd6,0xc6,0xce,0xd5,0x1d,0x91,0xd5,0x1a,0x3d,0x3f,
+/* 0x001fc0 */ 0x0c,0xe1,0x23,0xa9,0xfc,0xaf,0x74,0x5e,0xe6,0xf7,0xf2,0x73,0xa8,0x72,0x04,0x84,
+/* 0x001fd0 */ 0xd7,0xd1,0x46,0x9e,0xd6,0x34,0x4f,0xdf,0x98,0x66,0xf3,0x18,0xac,0x50,0x77,0xc9,
+/* 0x001fe0 */ 0x00,0x10,0xba,0x72,0xe5,0x7f,0x51,0xfe,0xeb,0xe3,0x8e,0xdb,0xa2,0xbe,0xf5,0xc5,
+/* 0x001ff0 */ 0x6f,0x48,0x7f,0x02,0x4d,0xcb,0x22,0xe1,0x10,0xf9,0x35,0x99,0x4f,0x9b,0xfe,0x40,
+/* 0x002000 */ 0x3e,0x19,0xa0,0x6b,0x38,0x18,0x8f,0x92,0x85,0x77,0xfb,0xd6,0x08,0xc7,0x8c,0xfc,
+/* 0x002010 */ 0xaf,0x1b,0x77,0xcb,0xe9,0xfb,0xce,0xa8,0x08,0x8b,0xa7,0xba,0x95,0x05,0xb6,0x71,
+/* 0x002020 */ 0xcd,0x39,0xcb,0xe7,0x57,0x2c,0xe3,0x49,0x74,0x48,0x85,0x05,0xd6,0xc0,0x5f,0x64,
+/* 0x002030 */ 0xce,0xd5,0xd6,0x74,0xff,0xf0,0x32,0xba,0xb6,0xad,0x61,0xbe,0xef,0x52,0xd9,0x45,
+/* 0x002040 */ 0x72,0x92,0x6b,0x22,0xe8,0x5a,0x9c,0xdb,0xa8,0xd7,0xe2,0x46,0x7c,0xd4,0x55,0x52,
+/* 0x002050 */ 0xb3,0x13,0x84,0xd3,0x1c,0x77,0xf7,0xe6,0x3b,0xf6,0xaf,0x25,0x8c,0xff,0x6a,0xdb,
+/* 0x002060 */ 0x87,0x6f,0x43,0x9e,0x36,0x1a,0x40,0xc8,0xe8,0x2a,0xe1,0xeb,0x66,0x13,0x45,0x64,
+/* 0x002070 */ 0xa5,0x66,0xdc,0xe0,0xce,0xb8,0xa7,0x4d,0x78,0x97,0x8f,0xfb,0x2c,0xf4,0x98,0x94,
+/* 0x002080 */ 0xc1,0xa3,0xa1,0x7d,0xae,0x4a,0x15,0xd0,0x56,0x27,0xfa,0x31,0xd7,0xdc,0xc0,0xf3,
+/* 0x002090 */ 0xec,0xc0,0xe6,0xcb,0xfb,0xd0,0x5d,0xdc,0xf8,0x30,0x9a,0xaf,0x7a,0xfe,0xc1,0xe4,
+/* 0x0020a0 */ 0xbf,0xa2,0xe2,0xb0,0x6c,0x3f,0x37,0x06,0xc1,0x7f,0x04,0xed,0xd5,0xd7,0xa8,0xd7,
+/* 0x0020b0 */ 0x2f,0x02,0x1b,0xb6,0x6d,0x1d,0xc4,0x06,0x36,0xaf,0xc5,0xe7,0x44,0x2b,0x00,0x75,
+/* 0x0020c0 */ 0x0f,0xda,0xb5,0x0a,0x84,0x38,0x7f,0x9f,0xb1,0x39,0x8e,0x7e,0x66,0x7c,0xca,0xdb,
+/* 0x0020d0 */ 0xe8,0x72,0x5b,0xa4,0x1d,0xbc,0x41,0x7a,0xe8,0x3d,0x4f,0xf7,0x5d,0x2e,0xab,0xe7,
+/* 0x0020e0 */ 0x4d,0xcf,0x74,0x5c,0x13,0xaf,0xe1,0x1f,0x19,0xfe,0x18,0xaa,0x5d,0xe8,0x23,0xb1,
+/* 0x0020f0 */ 0x77,0x79,0xff,0x6c,0x47,0x99,0x7e,0xc2,0x28,0x6c,0x76,0x14,0x26,0x97,0x19,0x74,
+/* 0x002100 */ 0x4c,0x9f,0xcd,0x3d,0x68,0xb2,0x19,0x3f,0xdf,0x46,0x37,0x44,0xbe,0xfe,0xb4,0xa7,
+/* 0x002110 */ 0xe1,0x2f,0x2a,0x5c,0x44,0xd3,0xe4,0xff,0x10,0x00,0x62,0x17,0x4d,0x4d,0xbd,0x29,
+/* 0x002120 */ 0x1c,0x64,0xf8,0xcb,0x38,0x37,0xae,0xd1,0x7c,0x23,0xc5,0xfa,0x5f,0xe7,0x88,0x3f,
+/* 0x002130 */ 0x4c,0xe0,0x3f,0x51,0x36,0x99,0xa6,0xa5,0x8c,0x4a,0x5c,0xe3,0x31,0x7c,0xc8,0x10,
+/* 0x002140 */ 0x0e,0xca,0xdd,0x62,0x15,0xf8,0xc6,0xf4,0xec,0x42,0x67,0x54,0x4b,0xd2,0xc0,0x5f,
+/* 0x002150 */ 0x76,0x3f,0xf3,0x51,0x2e,0xbc,0x8d,0x9e,0x8f,0x82,0xcf,0x9f,0xc0,0xef,0xe6,0xd3,
+/* 0x002160 */ 0xa6,0xfc,0x04,0xb6,0x6c,0x8c,0x80,0x34,0x76,0xce,0x1f,0x7d,0xb3,0x73,0xc5,0x8e,
+/* 0x002170 */ 0x58,0x92,0xcf,0x2f,0x49,0xce,0xe4,0xbf,0x06,0x51,0x02,0xf0,0x72,0x57,0x08,0x1f,
+/* 0x002180 */ 0x73,0x59,0x7e,0x26,0x4f,0xe1,0xcc,0xf3,0x16,0x75,0x98,0xb8,0xe0,0x79,0xee,0x70,
+/* 0x002190 */ 0x1e,0x99,0xc1,0xe6,0x05,0x29,0x59,0x9b,0xa5,0x9f,0x27,0x61,0x95,0xf0,0x52,0x0c,
+/* 0x0021a0 */ 0x3b,0xe5,0x62,0xd9,0x43,0x41,0xd3,0xe7,0x3f,0xc8,0x1c,0x33,0x8f,0xc9,0x7f,0xb5,
+/* 0x0021b0 */ 0x24,0xca,0x74,0xcc,0xf1,0xd7,0x9c,0x69,0x39,0x4b,0x3f,0x73,0x6c,0x35,0x61,0x75,
+/* 0x0021c0 */ 0xaf,0x73,0x2c,0x0a,0xb9,0x7f,0x78,0x98,0x6a,0xc6,0x66,0x64,0xf2,0x5f,0xd3,0x24,
+/* 0x0021d0 */ 0xa2,0x88,0xcd,0xf0,0xb5,0xb0,0x82,0x03,0x1f,0xc2,0x03,0x4f,0x92,0x1a,0xcd,0xdb,
+/* 0x0021e0 */ 0x26,0xb4,0xe1,0xe1,0x58,0xb5,0xee,0x3d,0x4d,0xe7,0x60,0xa7,0x39,0x19,0xb9,0x20,
+/* 0x0021f0 */ 0x73,0xff,0x50,0xb7,0xf3,0x5f,0xfd,0xa4,0x4a,0x91,0xba,0x96,0xd5,0x8b,0xbf,0x04,
+/* 0x002200 */ 0xe0,0xb3,0xa2,0x8f,0x26,0x83,0x13,0x4d,0x77,0x77,0x81,0xf3,0xb6,0x99,0xa6,0x1a,
+/* 0x002210 */ 0x01,0xce,0xd5,0x00,0xf9,0x72,0x63,0x8a,0xc8,0xba,0x13,0xee,0x90,0xe1,0x8f,0x01,
+/* 0x002220 */ 0xfe,0x7a,0x3c,0x15,0xa2,0x16,0x44,0xee,0xd0,0x75,0xde,0x56,0xe8,0xcc,0xa1,0xeb,
+/* 0x002230 */ 0xc3,0xd0,0xe1,0x1d,0x94,0x4c,0x54,0x70,0x13,0x7a,0xd8,0x15,0x1c,0x00,0xcf,0x61,
+/* 0x002240 */ 0x78,0xf6,0xe3,0x33,0x0d,0x4f,0xcf,0x18,0x82,0x2c,0xf1,0x87,0xae,0xfd,0x25,0x55,
+/* 0x002250 */ 0x33,0xe7,0x26,0x8a,0xd6,0x9a,0x88,0x8c,0x26,0xa7,0x2b,0x9a,0x5b,0xeb,0x29,0x47,
+/* 0x002260 */ 0x8f,0x76,0x55,0x59,0x91,0xa8,0x8e,0x8f,0x44,0x36,0xce,0x25,0x66,0xdb,0xe6,0xd7,
+/* 0x002270 */ 0x65,0x12,0x6c,0x2d,0x44,0x65,0x41,0xf9,0x24,0x0d,0x48,0x4b,0x14,0x5f,0xa4,0xc4,
+/* 0x002280 */ 0x93,0xe6,0xbd,0x28,0xdc,0x45,0x4e,0xeb,0x11,0x3d,0xf8,0xb0,0x90,0x36,0x89,0x3e,
+/* 0x002290 */ 0x9f,0xf0,0x28,0xa9,0xfa,0x1b,0x87,0x4d,0xfe,0xeb,0x2a,0x60,0xd8,0xca,0x41,0x18,
+/* 0x0022a0 */ 0x9d,0x0f,0x5c,0x8c,0xb8,0xfc,0x3d,0x1f,0xa6,0x01,0x61,0x32,0x3a,0x0e,0xeb,0x0f,
+/* 0x0022b0 */ 0x05,0x62,0xf9,0x7f,0xa0,0x27,0x15,0x6c,0xe0,0x5c,0x6c,0x04,0xb3,0xf1,0x5f,0x97,
+/* 0x0022c0 */ 0xe5,0xb0,0xea,0xdb,0x2e,0x04,0x25,0x78,0x8d,0x21,0x23,0xfb,0x2c,0xac,0x7b,0x9b,
+/* 0x0022d0 */ 0x04,0x11,0x1f,0x57,0x41,0xe0,0xfe,0x3c,0xc3,0x5f,0xd6,0x4f,0x19,0xf1,0x87,0xba,
+/* 0x0022e0 */ 0x7d,0x5e,0x3c,0xaf,0x56,0x8c,0x09,0xdb,0x70,0x3d,0xda,0x8a,0xca,0x46,0xc4,0x09,
+/* 0x0022f0 */ 0x3c,0x0a,0xdf,0xb3,0x5f,0x97,0x62,0xb8,0x5c,0xe9,0x46,0x5f,0x1c,0x28,0xa0,0x36,
+/* 0x002300 */ 0x8b,0x39,0x3e,0x0d,0x1a,0xac,0x74,0xd1,0xc7,0x59,0xf8,0xaf,0x3d,0x8a,0x42,0x3c,
+/* 0x002310 */ 0x12,0x5e,0x5b,0xf4,0x03,0x1e,0x35,0xdd,0x44,0x9d,0x6d,0x92,0xbf,0x28,0xe6,0xa6,
+/* 0x002320 */ 0x99,0xad,0xf4,0xb4,0x90,0x0e,0xae,0xa2,0x1b,0x11,0xf5,0x2c,0xd9,0xf9,0x32,0x9f,
+/* 0x002330 */ 0x5f,0x93,0x76,0xfc,0x75,0x88,0x2c,0x08,0x7a,0xbe,0x76,0xf7,0x9d,0x00,0xb2,0xca,
+/* 0x002340 */ 0xc6,0xa4,0xfb,0x00,0x88,0xed,0x23,0xa5,0x51,0x49,0xc7,0x45,0x64,0x3b,0x59,0x90,
+/* 0x002350 */ 0xcc,0x07,0x80,0x20,0xed,0xd3,0x16,0x8c,0x79,0x26,0xf1,0x3c,0x62,0xfc,0xd4,0x74,
+/* 0x002360 */ 0x16,0xfe,0x6b,0x0f,0x0a,0x8d,0xf9,0x2a,0xfe,0xec,0x5e,0xf2,0x3a,0x09,0x25,0x0b,
+/* 0x002370 */ 0xea,0x84,0x3f,0x87,0x5f,0x9a,0xe8,0x0a,0x0a,0x82,0x9b,0x9c,0x4e,0x40,0xff,0xc8,
+/* 0x002380 */ 0xc2,0x09,0x32,0x95,0x08,0xbd,0x03,0xdd,0xf2,0x10,0xb9,0xe0,0xaa,0x1f,0xf0,0xa5,
+/* 0x002390 */ 0xe2,0x0f,0xed,0xf9,0x5f,0x9f,0xc8,0xbe,0x2f,0x6d,0xfd,0x50,0xf8,0x57,0xf5,0x3d,
+/* 0x0023a0 */ 0xf4,0xab,0x41,0xdf,0x1e,0xd7,0x45,0xd0,0x34,0xa0,0x96,0x0e,0x61,0x6c,0xe5,0x18,
+/* 0x0023b0 */ 0xaa,0xfa,0x6d,0x4b,0xbc,0x6c,0xba,0x79,0x4a,0xfe,0x3c,0x3d,0x98,0x9a,0x56,0x8d,
+/* 0x0023c0 */ 0x9f,0xca,0xc6,0x7f,0x5d,0x8a,0x46,0xc8,0x8c,0x27,0x66,0x9e,0x23,0x30,0x3a,0x49,
+/* 0x0023d0 */ 0x18,0xaf,0x8b,0x45,0x30,0x70,0x74,0xe2,0xbf,0xaf,0x0c,0xb9,0x22,0x23,0x33,0xe3,
+/* 0x0023e0 */ 0xae,0x73,0xae,0xe3,0xb0,0x62,0x7f,0xde,0x5a,0x1c,0xfa,0xcd,0xfa,0x1b,0xfa,0xc3,
+/* 0x0023f0 */ 0x8f,0xb9,0x52,0xfb,0x8e,0x54,0x49,0x02,0x77,0x81,0xb0,0x71,0x4d,0xe9,0x50,0x41,
+/* 0x002400 */ 0x5b,0xe3,0x34,0xec,0x5f,0x0b,0xf4,0x82,0x56,0x98,0x20,0x9d,0x66,0xa0,0xcb,0xc6,
+/* 0x002410 */ 0xb4,0x48,0x8c,0x70,0xb9,0x85,0xbf,0x9e,0x34,0xfb,0x99,0xa6,0x74,0x7d,0x6e,0x3d,
+/* 0x002420 */ 0x3a,0xb1,0xf2,0x07,0x0f,0x96,0x8e,0x37,0x53,0xc0,0x4b,0xa3,0x0d,0x25,0x8a,0xbf,
+/* 0x002430 */ 0x36,0x30,0xfc,0x55,0x64,0x00,0x31,0x1b,0x58,0x33,0xea,0x6f,0x34,0x3b,0xf0,0x57,
+/* 0x002440 */ 0x67,0x70,0x4c,0x5a,0xc8,0xd0,0x96,0xc2,0xa3,0x4c,0x3b,0x50,0xe0,0xa2,0x74,0xdd,
+/* 0x002450 */ 0x75,0x2f,0xb3,0xf3,0x31,0x1a,0xea,0x06,0x9a,0xb5,0x76,0x07,0xc6,0x5d,0x94,0xad,
+/* 0x002460 */ 0xfe,0x46,0x73,0xa5,0x56,0xb0,0x93,0xc1,0xae,0x1a,0x9a,0xed,0x45,0x61,0xd7,0xc2,
+/* 0x002470 */ 0xce,0xc0,0xdb,0xc2,0x3b,0x45,0x27,0x14,0xc3,0x86,0x02,0xb1,0x16,0x1b,0x58,0x5b,
+/* 0x002480 */ 0x94,0x8d,0xff,0x8a,0xd2,0x50,0xa5,0xe2,0x24,0xe8,0x00,0x5b,0x91,0x65,0x49,0x95,
+/* 0x002490 */ 0x35,0xa1,0x65,0xba,0x33,0x10,0xd1,0x9e,0x84,0x62,0xf0,0x5f,0x43,0x76,0xfc,0x35,
+/* 0x0024a0 */ 0x85,0x23,0x6d,0x6c,0x5a,0x5d,0xc2,0xe1,0x35,0xbe,0x22,0x41,0x44,0x47,0x5d,0x61,
+/* 0x0024b0 */ 0x5a,0x5e,0xa0,0xca,0x0f,0xc2,0x52,0x23,0x1c,0xce,0xe9,0x79,0x9e,0x32,0xf8,0x2f,
+/* 0x0024c0 */ 0x64,0xe2,0x2f,0x01,0xbc,0xe5,0xa5,0x55,0x51,0x83,0xb6,0xf0,0x47,0xf3,0x29,0xff,
+/* 0x0024d0 */ 0xd5,0x8e,0x2a,0x54,0x29,0xee,0xff,0x02,0xda,0x24,0x72,0xda,0x42,0x4e,0xf7,0xa8,
+/* 0x0024e0 */ 0xb3,0xd6,0xdf,0x50,0x2b,0xd4,0x40,0x82,0x3f,0x47,0x5d,0x41,0x9f,0xb3,0x09,0x84,
+/* 0x0024f0 */ 0xfc,0x6d,0x78,0xb5,0xba,0x29,0x55,0xd0,0xa3,0xd0,0xfe,0x1c,0x7f,0x66,0xfd,0x0d,
+/* 0x002500 */ 0x0e,0x07,0x28,0xec,0x5a,0xba,0x47,0x56,0x06,0xf3,0x8b,0x1b,0xc5,0xc6,0x76,0x14,
+/* 0x002510 */ 0x68,0x02,0xcd,0x4a,0xb5,0x5d,0x4e,0x32,0xda,0xab,0x09,0x6c,0x1c,0x29,0x4b,0x39,
+/* 0x002520 */ 0xea,0x6f,0xa0,0x1b,0x00,0x7f,0x25,0x26,0xd7,0x84,0xe7,0xfa,0x3a,0x3d,0xa5,0xda,
+/* 0x002530 */ 0x10,0x0a,0xc9,0x05,0xb1,0xee,0xbb,0x7a,0x86,0xd4,0x30,0xcd,0x08,0x1b,0xc8,0x70,
+/* 0x002540 */ 0xb6,0x8d,0xfa,0x1b,0xa7,0x6d,0xf8,0x0b,0x9c,0xc0,0x25,0xac,0xda,0x06,0xb9,0xa4,
+/* 0x002550 */ 0x1c,0x6c,0xce,0xff,0x11,0xf8,0x75,0x1f,0xa2,0x86,0xe6,0x96,0x91,0xe2,0x5d,0x94,
+/* 0x002560 */ 0xff,0x6a,0x06,0xaf,0x00,0x9a,0x02,0xf6,0x7e,0xde,0xd6,0xf1,0x71,0x16,0xfc,0xf5,
+/* 0x002570 */ 0x2a,0xaa,0x51,0xbd,0x23,0x34,0x5f,0xaf,0xb3,0xe6,0xef,0x7c,0xaf,0x09,0x6f,0x77,
+/* 0x002580 */ 0xbd,0x88,0x16,0xaa,0xbe,0xd7,0x3c,0xe5,0xe8,0x28,0xcd,0x2e,0x6f,0xa5,0x3f,0xee,
+/* 0x002590 */ 0x72,0x16,0x9a,0x30,0xea,0x6f,0x7c,0xd7,0x89,0xbf,0x2a,0x00,0x52,0x15,0xbd,0x89,
+/* 0x0025a0 */ 0xba,0xd4,0x5a,0x94,0xdf,0xd9,0xf8,0x66,0x6f,0x97,0xe8,0x57,0x3c,0x9d,0x58,0xc1,
+/* 0x0025b0 */ 0x5d,0x31,0x7f,0x45,0x96,0x88,0x44,0x82,0xdf,0xe0,0xe3,0xde,0xec,0xc4,0x5f,0x7e,
+/* 0x0025c0 */ 0x35,0x40,0xf9,0xaf,0x9d,0x4b,0x95,0xd6,0xee,0xd9,0xf8,0x45,0x5e,0xcc,0xe4,0x73,
+/* 0x0025d0 */ 0x58,0x44,0x9b,0x16,0x04,0xd4,0xeb,0x19,0x11,0xe6,0x72,0x82,0x35,0x83,0xff,0x5a,
+/* 0x0025e0 */ 0x65,0xc7,0x5f,0x07,0xe8,0xd7,0xb2,0xa3,0x68,0x14,0x70,0xb7,0x51,0x6e,0x05,0x86,
+/* 0x0025f0 */ 0x7b,0x84,0x96,0x49,0xe9,0xdc,0xa4,0x18,0xe3,0x7e,0x9b,0xed,0xfb,0xa1,0xb9,0x81,
+/* 0x002600 */ 0xbf,0xe5,0xf3,0x22,0xf9,0x43,0xdb,0x27,0xfa,0xa1,0x1a,0x6e,0xf4,0x3e,0xc6,0x8e,
+/* 0x002610 */ 0x11,0x58,0x59,0x92,0xb7,0xf1,0x00,0xea,0x5b,0xea,0xdb,0x21,0xcc,0x57,0x8e,0x46,
+/* 0x002620 */ 0xc3,0xb4,0x4a,0x46,0x26,0x98,0x9d,0x2c,0x67,0xef,0xb3,0xc6,0xce,0x7f,0x4d,0x19,
+/* 0x002630 */ 0x02,0x7e,0x95,0x57,0xdb,0x78,0x11,0x19,0x40,0x8c,0x7a,0x95,0xe0,0xbd,0xc7,0xf3,
+/* 0x002640 */ 0x32,0x9f,0xf3,0x5a,0x36,0xfe,0xcb,0xe0,0x46,0xbd,0xb4,0xfe,0x46,0x80,0xa1,0x75,
+/* 0x002650 */ 0xa9,0xb6,0x24,0x48,0x3a,0x94,0xb8,0x81,0xbf,0xa2,0x68,0x28,0xed,0xfb,0x31,0xf0,
+/* 0x002660 */ 0x57,0xaf,0x93,0xff,0xaa,0x24,0x9e,0xb1,0xd8,0x1a,0xd1,0x3d,0xa3,0x5a,0x93,0xb4,
+/* 0x002670 */ 0xc6,0x00,0x3a,0x84,0xca,0x76,0x48,0xd1,0x53,0x15,0x34,0x4c,0x54,0x03,0x9b,0x45,
+/* 0x002680 */ 0x14,0x88,0xb5,0x53,0x63,0xf9,0x79,0x13,0x91,0xa9,0x06,0xfe,0x92,0xd3,0xfd,0x3a,
+/* 0x002690 */ 0xea,0x03,0x04,0x4f,0x49,0x8b,0xa8,0x3b,0xa7,0x96,0xc3,0x82,0xe6,0x2e,0x54,0xbb,
+/* 0x0026a0 */ 0x29,0x35,0x46,0x1d,0xbc,0xc7,0xd3,0x8c,0x8f,0x65,0xc3,0x5f,0x12,0xc0,0x81,0x56,
+/* 0x0026b0 */ 0xfc,0x75,0xb2,0x51,0x09,0x4e,0x90,0xf5,0x1b,0x6e,0x00,0x34,0x51,0x96,0xcc,0x6f,
+/* 0x0026c0 */ 0xbb,0x43,0x46,0x1b,0x71,0xe5,0x11,0x58,0x8d,0xe7,0xb1,0x62,0x1d,0xd7,0x9b,0xeb,
+/* 0x0026d0 */ 0x73,0xf7,0xb7,0x4d,0xfe,0xcb,0x89,0xbf,0xe2,0x4b,0xce,0xfa,0xd6,0x97,0x9d,0x10,
+/* 0x0026e0 */ 0x7f,0xd7,0xb9,0x24,0xea,0x9d,0x14,0x68,0xd3,0x2d,0xc9,0x82,0x45,0x42,0x61,0xe8,
+/* 0x0026f0 */ 0xd7,0x49,0xb0,0x69,0x13,0x1e,0xd0,0xff,0xe4,0x2c,0xd6,0x61,0xf2,0x5f,0xcd,0x76,
+/* 0x002700 */ 0xfe,0xeb,0xf2,0x6a,0x3a,0x04,0x34,0xab,0xc5,0xc5,0xf0,0x17,0xdf,0x5c,0x6e,0x4f,
+/* 0x002710 */ 0x08,0x6f,0x91,0x29,0xf0,0x2e,0x5a,0x78,0x78,0x4c,0x44,0x37,0x53,0xc3,0xf4,0x96,
+/* 0x002720 */ 0x7e,0x0b,0x7f,0x3d,0x98,0x0a,0x32,0x54,0xaf,0xc6,0x23,0x49,0xf5,0x92,0x10,0x59,
+/* 0x002730 */ 0x73,0xb2,0xab,0x2f,0xe9,0x7d,0xb5,0xf8,0xaa,0x78,0xa2,0x73,0x61,0xb4,0xf0,0xb2,
+/* 0x002740 */ 0x70,0xb5,0xf9,0x24,0x29,0x8e,0x6e,0x59,0x2f,0x54,0x45,0x4f,0x76,0x85,0x29,0xff,
+/* 0x002750 */ 0x65,0x78,0x95,0x97,0x8a,0x27,0x14,0x93,0xff,0x4a,0xed,0x5f,0xcf,0xba,0x2a,0x57,
+/* 0x002760 */ 0x4b,0xb3,0xa4,0x5f,0x90,0xa7,0x65,0xff,0x98,0xbb,0x04,0x0f,0x4b,0xbf,0x45,0x0b,
+/* 0x002770 */ 0x9a,0xa4,0xbf,0xc7,0x47,0x1a,0x5f,0x90,0x4a,0xd7,0x14,0xac,0xc3,0x85,0xa8,0x5b,
+/* 0x002780 */ 0xbb,0x99,0x6e,0x37,0xc3,0xac,0x7f,0x56,0xb4,0xf9,0x8d,0x38,0x87,0x22,0xf4,0x98,
+/* 0x002790 */ 0x55,0xe7,0x44,0xac,0xcd,0xaf,0x1e,0x94,0xda,0x96,0x7f,0x5d,0xdd,0x88,0xe6,0x37,
+/* 0x0027a0 */ 0x7f,0xae,0xad,0xf1,0x0c,0xda,0x80,0x4a,0x55,0xf7,0x3a,0x7c,0x9a,0xfc,0x4c,0x2e,
+/* 0x0027b0 */ 0x6d,0x6e,0x6e,0xcb,0xbb,0x01,0x6d,0xbc,0xa9,0x74,0xc8,0xb3,0xce,0x6f,0x51,0x63,
+/* 0x0027c0 */ 0xbf,0x35,0xf0,0x97,0x7d,0xff,0x4a,0x48,0x41,0x75,0x07,0x77,0x4e,0xca,0x55,0xa6,
+/* 0x0027d0 */ 0xd9,0x86,0x02,0x51,0x29,0x00,0x40,0xac,0x83,0x68,0xaa,0x44,0x4b,0x3d,0x98,0x00,
+/* 0x0027e0 */ 0xdc,0xf0,0x5b,0xae,0x33,0xe2,0x0f,0x27,0xe7,0xb0,0xa4,0x7b,0x63,0x7f,0x27,0xf3,
+/* 0x0027f0 */ 0xb4,0x60,0xb9,0xe7,0x7e,0x74,0x12,0xd5,0xd2,0xc4,0xfc,0xab,0x64,0x00,0x85,0x6f,
+/* 0x002800 */ 0x2e,0x7c,0x48,0x38,0xe7,0xff,0x1d,0x09,0xeb,0x81,0xc4,0xcc,0x7a,0x74,0x52,0x0c,
+/* 0x002810 */ 0x0f,0xd8,0x8b,0x6c,0x18,0x7f,0x57,0x67,0x1a,0xfe,0xa2,0x25,0x35,0x76,0xbb,0x28,
+/* 0x002820 */ 0x4d,0x59,0xc8,0xc1,0x5a,0xc3,0xec,0x16,0x7a,0x90,0x38,0x45,0x7d,0x9b,0x7e,0x3e,
+/* 0x002830 */ 0x94,0xa9,0xf1,0xda,0x4a,0x37,0xa9,0x4c,0xfc,0xc5,0x42,0x71,0x92,0x26,0xda,0x7a,
+/* 0x002840 */ 0x15,0x3c,0xa2,0x97,0xd1,0xad,0xc8,0xab,0x77,0xdc,0x0c,0x6f,0xe8,0x67,0xb4,0xd7,
+/* 0x002850 */ 0xec,0x6b,0x98,0xd5,0x0c,0xb1,0x92,0xc5,0x8c,0xfa,0x1b,0x4e,0xfc,0xa5,0x56,0x29,
+/* 0x002860 */ 0xd7,0xef,0x66,0xd5,0xc6,0xaa,0x7a,0xe0,0x43,0x9a,0x86,0x95,0xf6,0x56,0xb9,0xc0,
+/* 0x002870 */ 0x0b,0xde,0x20,0x78,0x8c,0xa3,0x43,0x0e,0xff,0x99,0xa7,0xae,0x98,0xe7,0x87,0x0e,
+/* 0x002880 */ 0xfe,0xab,0x5f,0xae,0xd2,0xba,0xb7,0xe4,0x31,0x4d,0xd4,0x13,0xcf,0x1b,0x97,0xba,
+/* 0x002890 */ 0x94,0xf2,0x26,0xa9,0x2b,0x16,0x84,0xf9,0x55,0x91,0xe6,0x87,0x1b,0x42,0xb6,0xfa,
+/* 0x0028a0 */ 0x1b,0x09,0x57,0x70,0x97,0xa7,0x9d,0x07,0x53,0xad,0xa2,0x59,0x48,0x6a,0x1c,0x06,
+/* 0x0028b0 */ 0x2e,0x1f,0x3e,0x8e,0x8e,0x6e,0x35,0x40,0xe9,0xe9,0x97,0xd1,0x5e,0x29,0x38,0x44,
+/* 0x0028c0 */ 0x03,0x11,0x8d,0x80,0xab,0xe5,0xd8,0xaa,0xbf,0x21,0x5b,0xfc,0x57,0x3f,0x8a,0xc8,
+/* 0x0028d0 */ 0xb0,0xaa,0x07,0x09,0xa0,0xad,0x55,0xbe,0x1f,0x0a,0xef,0xc3,0x6a,0x53,0xab,0x7a,
+/* 0x0028e0 */ 0x89,0x20,0x01,0xec,0x7a,0xfe,0x58,0x30,0x21,0x5c,0x21,0x53,0xa1,0xc8,0x88,0x0d,
+/* 0x0028f0 */ 0xf9,0x7a,0x8c,0xfa,0x1b,0x3b,0xed,0xfc,0xd7,0x41,0x74,0xa3,0xd8,0xa2,0xc2,0x8f,
+/* 0x002900 */ 0x7f,0x20,0x35,0x7c,0xc9,0x1d,0x07,0xcd,0x45,0x57,0x83,0xea,0xdb,0x25,0x9c,0xd5,
+/* 0x002910 */ 0x3e,0x51,0x6a,0x69,0xa1,0xb6,0xdf,0x93,0x29,0xa5,0xe1,0x35,0x9a,0x23,0x46,0x8c,
+/* 0x002920 */ 0x9f,0x3a,0x6d,0xc6,0x1f,0x4e,0x73,0x92,0xcb,0x38,0xdf,0x00,0xe7,0xff,0x9e,0xf3,
+/* 0x002930 */ 0x80,0xbf,0x6e,0x1d,0x2a,0x58,0x25,0xdc,0xc0,0xd3,0xbe,0x2c,0xfe,0x6b,0x02,0xbc,
+/* 0x002940 */ 0x94,0x33,0x71,0xfb,0x61,0xc8,0xfa,0x54,0xfc,0xe1,0x55,0x00,0x59,0x11,0xab,0xfe,
+/* 0x002950 */ 0x46,0x52,0x48,0xc0,0x12,0xf7,0xcb,0x78,0xd9,0x84,0xb4,0x03,0x37,0xa0,0xa7,0x79,
+/* 0x002960 */ 0xfe,0xd7,0xbd,0x3c,0x11,0xec,0x12,0x4e,0xc6,0xbb,0x14,0x93,0x2c,0xeb,0x04,0xa1,
+/* 0x002970 */ 0x37,0x55,0x7f,0x63,0xd0,0xa4,0x51,0x6c,0xf1,0xd8,0x00,0xbb,0x46,0xf2,0x65,0xbc,
+/* 0x002980 */ 0x65,0xe9,0xe3,0x86,0x17,0x67,0x72,0x64,0xba,0xd2,0x93,0x66,0x6c,0xc5,0x1f,0xee,
+/* 0x002990 */ 0x42,0xdd,0x66,0x49,0x43,0x3e,0x94,0xb0,0x29,0x3c,0x8d,0xfd,0x03,0xf0,0x3e,0x16,
+/* 0x0029a0 */ 0x35,0x66,0x7d,0x63,0xfa,0xd2,0x5e,0xc7,0xb8,0xf7,0xa6,0xe2,0x0f,0x47,0x61,0x69,
+/* 0x0029b0 */ 0x72,0xe4,0x7f,0xe1,0xa4,0xfc,0x82,0x08,0xf3,0xab,0xca,0xb3,0xdb,0x28,0x93,0x92,
+/* 0x0029c0 */ 0x82,0x5d,0xef,0xe2,0x49,0xc5,0xa6,0x69,0xe9,0x4d,0xd5,0xdf,0xd8,0xee,0xe0,0x2b,
+/* 0x0029d0 */ 0x39,0xa4,0xba,0x86,0x7e,0xa1,0x1b,0x55,0x68,0x1a,0x1c,0xc2,0x24,0xfa,0x03,0x5d,
+/* 0x0029e0 */ 0x18,0x6d,0xe0,0xda,0xc2,0x5f,0xcf,0xd8,0x7f,0x69,0x83,0x0e,0x1f,0xc9,0x53,0x14,
+/* 0x0029f0 */ 0xa4,0x0f,0xd0,0xb0,0xc3,0xd8,0x71,0xe7,0xfb,0x2c,0x1b,0x37,0x8e,0x50,0x4c,0x8d,
+/* 0x002a00 */ 0x96,0x8a,0x3f,0x2c,0x4f,0x1d,0x35,0x18,0xf5,0x37,0x60,0xbc,0x5a,0x4b,0x8f,0x48,
+/* 0x002a10 */ 0x89,0xe2,0x3b,0x3b,0x5f,0xe7,0x19,0x61,0x46,0x6f,0x5c,0x66,0xbc,0xb0,0xbd,0xe2,
+/* 0x002a20 */ 0x8d,0x66,0xe7,0xbf,0x1c,0x5b,0x12,0x7c,0xfc,0x04,0xc6,0x6b,0x0d,0x45,0x5b,0x5f,
+/* 0x002a30 */ 0x49,0x1b,0x4a,0xca,0x0b,0xef,0x4c,0x8b,0xac,0xb6,0xe2,0x0f,0x0b,0x9d,0xae,0xbe,
+/* 0x002a40 */ 0x44,0xeb,0xf2,0x3d,0x09,0x70,0xa0,0xe4,0x34,0xbe,0xd3,0x56,0x17,0x82,0x0b,0x1f,
+/* 0x002a50 */ 0xa3,0xef,0xa7,0xf8,0x2f,0xd0,0x8c,0xa5,0xe2,0x0f,0x45,0xf4,0x47,0xd1,0x8a,0x3f,
+/* 0x002a60 */ 0xa4,0xef,0x23,0x3c,0x88,0x5e,0x90,0x17,0x0d,0x16,0x86,0x8a,0x57,0xe2,0x7f,0xb3,
+/* 0x002a70 */ 0x85,0x26,0x72,0xe1,0x8f,0x68,0x91,0x4d,0x23,0x0b,0x66,0xfc,0xe1,0x8d,0xcf,0xd8,
+/* 0x002a80 */ 0xe3,0x0f,0xe7,0x1d,0x81,0x3e,0xbc,0x28,0x7e,0x82,0xea,0x5e,0xac,0xfa,0x10,0x34,
+/* 0x002a90 */ 0x0d,0x8e,0xa3,0x8f,0x8b,0xd0,0xbd,0x6f,0xa1,0x88,0x23,0xf4,0xd7,0xc2,0x5f,0x17,
+/* 0x002aa0 */ 0x89,0x6d,0x5d,0x6d,0xa0,0xb4,0xd7,0x2e,0x74,0x3c,0x10,0x39,0x06,0xbf,0x2b,0x98,
+/* 0x002ab0 */ 0x70,0x1e,0xc5,0xf4,0x71,0x37,0xc3,0x31,0x5e,0x56,0xfc,0xe1,0xf6,0x52,0x7b,0xdc,
+/* 0x002ac0 */ 0xc5,0xf0,0xff,0x03,0x02,0xde,0xa8,0x56,0x9e,0x86,0x8d,0x3e,0xfd,0x48,0x70,0x1d,
+/* 0x002ad0 */ 0x3d,0x12,0x64,0x71,0x17,0xa6,0xc6,0x16,0x7f,0xf8,0x23,0xe5,0xc9,0xb4,0xce,0xfc,
+/* 0x002ae0 */ 0x19,0xda,0xd8,0xf9,0xcd,0xa4,0x67,0xf2,0x8e,0x79,0x03,0x0e,0x6a,0xcc,0xfd,0x5d,
+/* 0x002af0 */ 0x10,0x9e,0xa0,0x82,0x65,0xbc,0x26,0x15,0x7f,0x38,0x98,0x11,0x3f,0xff,0xbe,0x42,
+/* 0x002b00 */ 0x0f,0x9d,0xba,0x17,0x6d,0xe6,0xe0,0x7a,0x85,0x15,0x98,0x1d,0xa2,0xa9,0x85,0xc4,
+/* 0x002b10 */ 0x6e,0x2c,0x65,0x8d,0x3f,0x34,0x84,0xe7,0x19,0xc8,0xba,0x7e,0x8d,0x27,0x20,0x1b,
+/* 0x002b20 */ 0x15,0x11,0x53,0xa9,0x61,0xe8,0xaa,0x6c,0x33,0xde,0x3a,0xda,0x91,0x3d,0xff,0xcb,
+/* 0x002b30 */ 0x5e,0x85,0xef,0xc1,0x8c,0xfa,0x87,0x88,0x0a,0xb2,0xcd,0xe6,0x53,0xea,0x1f,0x32,
+/* 0x002b40 */ 0xe1,0x2c,0xf8,0xab,0x2d,0x8f,0x09,0xab,0xd3,0x9a,0x76,0x08,0xd4,0xb1,0xaf,0x73,
+/* 0x002b50 */ 0x18,0xbf,0x99,0x3b,0xff,0x8b,0xba,0xcd,0x3d,0x6a,0xe1,0x4f,0xf0,0x7c,0x33,0x6f,
+/* 0x002b60 */ 0xcb,0x68,0xda,0x5e,0x44,0x11,0x99,0x13,0x40,0x25,0x73,0xe6,0x7f,0xc1,0x3a,0xf6,
+/* 0x002b70 */ 0x94,0xe2,0x8f,0x1a,0xb4,0x57,0x2a,0x34,0x51,0xf5,0xfc,0xd0,0x4d,0x43,0x3b,0x2a,
+/* 0x002b80 */ 0x1c,0xcf,0xb1,0xe1,0xaf,0x59,0x0e,0x5e,0x66,0x16,0x8d,0x3f,0x0c,0xd0,0xda,0x86,
+/* 0x002b90 */ 0x7e,0x51,0x63,0x9a,0x22,0xb3,0xa9,0x68,0x9b,0x28,0x6c,0xb2,0x2a,0xf5,0x89,0x0e,
+/* 0x002ba0 */ 0xfc,0x55,0x10,0xed,0xb7,0x3a,0xb3,0x9f,0xd7,0xdf,0x18,0x40,0x63,0x0a,0xcb,0xed,
+/* 0x002bb0 */ 0x5a,0x43,0x78,0x93,0xc9,0x33,0xc6,0xc0,0xa3,0x1e,0x42,0x75,0xd9,0xf0,0xd7,0x8e,
+/* 0x002bc0 */ 0x1b,0x2f,0xa6,0x75,0xe6,0x36,0xe1,0x22,0xb9,0x2d,0x2f,0xa2,0x3e,0x34,0x21,0x50,
+/* 0x002bd0 */ 0x34,0x9a,0x46,0x69,0x69,0x57,0x1c,0xf8,0xcb,0x91,0xff,0x65,0xe7,0xd1,0x78,0x38,
+/* 0x002be0 */ 0xdc,0xcb,0x94,0xff,0x1a,0x11,0x6e,0x96,0x8f,0xf2,0x61,0xb2,0x7e,0x8a,0x12,0x97,
+/* 0x002bf0 */ 0xb6,0x8a,0x88,0x33,0xe3,0x82,0x2d,0xff,0xab,0xcb,0x11,0x7f,0xb8,0x39,0x66,0x6a,
+/* 0x002c00 */ 0xdc,0x0a,0x08,0x37,0x21,0xd8,0xa9,0x4d,0xb4,0x05,0x9a,0x7e,0x5b,0xfc,0xa1,0x23,
+/* 0x002c10 */ 0xff,0xeb,0xad,0x54,0x4a,0x17,0xad,0x33,0xc9,0xf3,0xbf,0x78,0x1f,0x8a,0xbc,0x69,
+/* 0x002c20 */ 0x76,0x0a,0x6d,0x89,0x56,0x2c,0x68,0x1a,0xfe,0x2a,0x99,0xb3,0x8b,0x6c,0xb2,0x8f,
+/* 0x002c30 */ 0x7b,0x37,0x08,0x3d,0x8f,0x98,0x55,0x2e,0x37,0xa5,0x7d,0x5a,0xe5,0x34,0x81,0xdd,
+/* 0x002c40 */ 0x9e,0x11,0xb6,0xcd,0x8a,0x3f,0x7c,0x09,0x3b,0x78,0xc6,0xad,0x14,0x72,0xbe,0x4a,
+/* 0x002c50 */ 0x49,0xae,0x87,0xd9,0xd7,0xeb,0xec,0xe7,0x9b,0xc8,0x25,0xd4,0x67,0xd3,0xd8,0xf2,
+/* 0x002c60 */ 0xbf,0x9e,0xc8,0x32,0x2f,0x38,0xc9,0xd5,0x31,0x8a,0x9d,0x75,0x41,0xe5,0x65,0x80,
+/* 0x002c70 */ 0x97,0xd3,0x8c,0x73,0xe5,0x7f,0x79,0x49,0x69,0x29,0xa3,0xbd,0x82,0x44,0x40,0x19,
+/* 0x002c80 */ 0x68,0x2b,0x83,0x2c,0xbb,0x27,0x57,0xfe,0x97,0x44,0xd9,0xae,0x87,0x94,0xaa,0x98,
+/* 0x002c90 */ 0xb4,0x9a,0xa3,0x2d,0x1b,0x35,0x96,0xc4,0x99,0x64,0x59,0xae,0xfa,0x1b,0xb0,0x7f,
+/* 0x002ca0 */ 0x05,0xd1,0xe3,0x49,0x16,0xbc,0x74,0x3b,0x5b,0xd0,0x8c,0x26,0xea,0x7e,0xc7,0xb6,
+/* 0x002cb0 */ 0xd0,0x58,0xac,0x6c,0xf8,0x2b,0x3d,0xfe,0x30,0x29,0xdd,0x87,0x6f,0x20,0x1b,0x51,
+/* 0x002cc0 */ 0x65,0x54,0x6a,0xc3,0x5f,0x42,0xe9,0xb4,0x17,0x20,0xb2,0x90,0x53,0x93,0xbd,0xfe,
+/* 0x002cd0 */ 0x46,0x7d,0xd2,0x7b,0x55,0x68,0x88,0xbd,0x05,0xc2,0xca,0xf5,0x9e,0x3b,0xf1,0xaf,
+/* 0x002ce0 */ 0x1d,0x68,0x6b,0x95,0xf0,0x53,0xf9,0x13,0xcd,0x49,0x96,0xa5,0xe2,0x0f,0x67,0x39,
+/* 0x002cf0 */ 0x36,0x97,0xea,0x09,0xcf,0x07,0x8c,0x4d,0x9e,0x19,0x82,0x0d,0xc8,0xb9,0xef,0xc8,
+/* 0x002d00 */ 0xc2,0xfb,0x0a,0x8b,0xf1,0x30,0x34,0x14,0x20,0x98,0xf1,0x87,0x2e,0x5a,0x52,0xe3,
+/* 0x002d10 */ 0x9f,0x46,0xed,0xfc,0xd7,0x55,0xee,0x16,0x8e,0x79,0x22,0xe8,0xb0,0xc3,0x1b,0x1c,
+/* 0x002d20 */ 0x13,0x1e,0x00,0xe1,0xf3,0x0e,0xb2,0x2c,0x95,0xff,0x65,0x8b,0xcd,0x30,0x85,0x0d,
+/* 0x002d30 */ 0x54,0x88,0xba,0xe7,0xa4,0xa5,0x86,0x45,0x69,0xff,0xc8,0x4e,0x63,0x2b,0xff,0xeb,
+/* 0x002d40 */ 0x20,0xfa,0xb1,0x2b,0xfd,0x39,0xd0,0xbd,0x2a,0xa7,0xbd,0x44,0x7b,0x93,0xca,0x0a,
+/* 0x002d50 */ 0x4e,0x3a,0x8d,0x53,0xf9,0x5f,0x19,0x7e,0xe6,0x09,0x1c,0xa3,0x73,0x30,0xcc,0xaa,
+/* 0x002d60 */ 0x84,0xd9,0x9b,0x10,0x45,0xe2,0xad,0x76,0xcd,0x92,0x58,0x2a,0xff,0xcb,0xf5,0xba,
+/* 0x002d70 */ 0xa3,0x33,0xa9,0x0f,0x70,0x8c,0x47,0xb3,0x04,0x53,0xa1,0x53,0x07,0x38,0x8d,0xf2,
+/* 0x002d80 */ 0x75,0xe8,0x16,0xbb,0x33,0xd9,0x9f,0x23,0xff,0x8b,0x0b,0xea,0x79,0xd5,0x38,0xd6,
+/* 0x002d90 */ 0x70,0x36,0x6d,0x17,0xc6,0x65,0x7b,0xbe,0x5e,0x5a,0xfc,0xe1,0x07,0x69,0xbc,0xcc,
+/* 0x002da0 */ 0x34,0x1a,0xd7,0x6a,0xa8,0x33,0x59,0xcf,0x9b,0xac,0x44,0xb0,0x31,0x21,0xc3,0xd8,
+/* 0x002db0 */ 0x63,0xc5,0x1f,0xae,0xc4,0xaf,0xa7,0x41,0xa1,0x61,0xd4,0x75,0xcc,0x4f,0xf1,0xe9,
+/* 0x002dc0 */ 0x17,0x53,0x74,0x15,0x13,0xbe,0xbf,0x6d,0x5c,0xee,0x76,0x18,0x87,0xec,0xf1,0x87,
+/* 0x002dd0 */ 0x4f,0xa7,0x3d,0x67,0x9c,0xc6,0xcf,0x0f,0x00,0x80,0xba,0xc9,0xf4,0xcc,0x6d,0x18,
+/* 0x002de0 */ 0x2d,0xdd,0xd8,0x8a,0x3f,0x0c,0x66,0x8c,0xd7,0x38,0xf4,0x9a,0x42,0x47,0x47,0x14,
+/* 0x002df0 */ 0xad,0x10,0x2c,0x26,0xc8,0x45,0xe3,0xa8,0xc3,0x61,0x9c,0xb0,0xf2,0xbf,0x0a,0xd6,
+/* 0x002e00 */ 0x66,0x38,0xed,0x67,0x60,0x1d,0xeb,0x53,0x5b,0x12,0x9e,0x72,0x53,0x13,0x34,0xbd,
+/* 0x002e10 */ 0xaf,0x69,0xf1,0x3d,0x9e,0x8b,0x67,0x19,0x5b,0xf1,0x87,0x67,0xb2,0xf4,0xf3,0x34,
+/* 0x002e20 */ 0x85,0x5d,0x6d,0xc2,0xc5,0x34,0x0a,0x52,0x15,0x32,0x49,0xc9,0x6c,0xf1,0x87,0xd3,
+/* 0x002e30 */ 0xa4,0x41,0xf1,0x0e,0x95,0x55,0x80,0x3f,0xff,0xac,0xf6,0x95,0x89,0x65,0x00,0xe4,
+/* 0x002e40 */ 0xe5,0x1a,0xdd,0x3b,0x29,0x84,0xf1,0xeb,0x38,0x72,0x8c,0xd6,0xb7,0xc1,0x2f,0x90,
+/* 0x002e50 */ 0x5b,0x8d,0x42,0xf4,0xa4,0x41,0x85,0xa6,0x89,0x54,0xfc,0xe1,0x7b,0x66,0xfd,0xc3,
+/* 0x002e60 */ 0xfe,0x58,0x55,0xb2,0xb9,0xcb,0x2f,0xc9,0x5b,0x3b,0xfd,0x94,0x67,0x0c,0x8a,0xdd,
+/* 0x002e70 */ 0x2c,0x61,0xa1,0xa8,0x53,0xea,0x26,0x0d,0x23,0xcd,0xd4,0x66,0x33,0xf2,0x5b,0xc1,
+/* 0x002e80 */ 0x8a,0xd1,0x82,0xfe,0xac,0xf5,0x0f,0x29,0xff,0x25,0xc9,0x7e,0x5a,0x05,0x5d,0x21,
+/* 0x002e90 */ 0x9f,0x93,0xfd,0x5e,0x57,0x87,0xa2,0xe8,0x81,0x50,0x91,0xc8,0xba,0x37,0x3f,0x64,
+/* 0x002ea0 */ 0x1c,0xb9,0x9b,0xfd,0xac,0x4a,0x36,0xfc,0xb5,0x5b,0xb6,0xc6,0x94,0x96,0x14,0x93,
+/* 0x002eb0 */ 0x34,0xff,0x5a,0xe9,0x51,0xe4,0x4f,0xe4,0xc7,0x71,0x10,0xd3,0xf7,0x09,0xf4,0xe1,
+/* 0x002ec0 */ 0x27,0x51,0xb7,0x58,0x41,0x09,0xd0,0x71,0xf4,0x93,0x54,0xfd,0x8d,0xaa,0xbb,0x41,
+/* 0x002ed0 */ 0x93,0x2d,0xff,0x6b,0x52,0xaf,0x92,0x9b,0xf3,0x3d,0x77,0xf9,0x5f,0x77,0xd5,0x4e,
+/* 0x002ee0 */ 0x14,0x7c,0x5c,0x76,0x3f,0x74,0x54,0x9f,0xee,0xad,0x10,0x6e,0x42,0xc7,0x5d,0x55,
+/* 0x002ef0 */ 0x7a,0x25,0xb5,0x79,0x55,0xb7,0xf2,0xf5,0x1a,0xa2,0x00,0x8e,0x6c,0xf5,0x0f,0xad,
+/* 0x002f00 */ 0xf1,0xba,0x4a,0x6b,0x6b,0x9c,0xee,0xe8,0xcf,0xfb,0x40,0x5c,0x4c,0xdc,0x1f,0x16,
+/* 0x002f10 */ 0xef,0xe6,0x88,0x6c,0x44,0xb8,0x28,0x03,0x82,0xd6,0x0b,0x27,0x8a,0xa7,0xd1,0xfb,
+/* 0x002f20 */ 0xf2,0x01,0x63,0xbc,0x30,0x8c,0x69,0x76,0xfe,0x0b,0xb6,0xa4,0xb8,0x37,0x2e,0xcc,
+/* 0x002f30 */ 0x6f,0x84,0xd7,0x18,0x84,0x59,0xb9,0xb6,0x89,0xbd,0x8f,0x26,0xfc,0xad,0x0c,0x40,
+/* 0x002f40 */ 0xec,0x8f,0x26,0x6d,0x6a,0xbe,0x4f,0x3d,0x3d,0xcc,0xcf,0x56,0x7f,0xe3,0xf9,0xd3,
+/* 0x002f50 */ 0x41,0xbd,0xb9,0x0f,0x17,0xca,0xbf,0x6b,0x56,0xa2,0x05,0x71,0x7f,0x84,0x1e,0x6b,
+/* 0x002f60 */ 0xe8,0x01,0x92,0x37,0xb3,0x71,0xab,0x54,0xcd,0xa7,0xde,0x01,0x1b,0xfe,0xba,0x0b,
+/* 0x002f70 */ 0xc6,0x34,0x7b,0xfd,0x8d,0xb5,0x48,0x52,0xb0,0x1b,0x75,0x44,0x95,0x9d,0x92,0x56,
+/* 0x002f80 */ 0x74,0x6f,0xde,0xa3,0x2e,0xbf,0xbe,0x66,0xe1,0xdd,0x7f,0x81,0x3a,0xc4,0xaa,0x11,
+/* 0x002f90 */ 0x56,0xa6,0xf2,0x80,0x6d,0xbc,0x9a,0x73,0xd4,0xdf,0x78,0x8e,0x7c,0xb3,0xa7,0xeb,
+/* 0x002fa0 */ 0xef,0xf1,0x5c,0xf5,0x67,0xa4,0xb4,0x3f,0xff,0xbb,0x8d,0x3f,0xa5,0xd1,0x86,0x6f,
+/* 0x002fb0 */ 0x95,0xac,0x72,0x5f,0x27,0x6e,0xd4,0x2a,0x47,0xa9,0x0d,0xd9,0x97,0x28,0x1d,0x33,
+/* 0x002fc0 */ 0x90,0x42,0x75,0x14,0xc0,0x5a,0x5a,0xfd,0x0d,0x0f,0xab,0xbf,0x11,0xaf,0xaf,0xf7,
+/* 0x002fd0 */ 0x5e,0x2f,0xb8,0x63,0x2f,0x68,0xa1,0xde,0x42,0x4d,0x58,0xf9,0x97,0xaf,0xa3,0x10,
+/* 0x002fe0 */ 0x4d,0x8b,0x6b,0x8a,0xbe,0x40,0xea,0xc7,0x7c,0x75,0xc2,0x09,0x72,0x21,0x1e,0x1a,
+/* 0x002ff0 */ 0x63,0x85,0x38,0xe0,0xa7,0xd4,0x5c,0xf5,0x37,0xca,0x97,0xb4,0xd2,0x2a,0x10,0xe8,
+/* 0x003000 */ 0x42,0x6b,0xa4,0xb3,0x25,0x2e,0xac,0x5d,0xf8,0x4b,0x18,0x26,0xdf,0x6f,0x58,0xdd,
+/* 0x003010 */ 0xcb,0x86,0x41,0x9e,0x0f,0x2b,0x47,0x28,0x65,0x3c,0xce,0x8a,0x5b,0xe6,0xe0,0xbf,
+/* 0x003020 */ 0xce,0x46,0xc3,0xab,0x7c,0x9a,0x4b,0xc7,0x2f,0xc8,0x6d,0x7a,0x95,0x76,0x7d,0x50,
+/* 0x003030 */ 0x7e,0x1d,0xd5,0xd2,0xf1,0x7a,0x02,0x30,0x7e,0x68,0xc8,0xbb,0x88,0x4e,0x7c,0x5a,
+/* 0x003040 */ 0x7f,0x83,0x09,0xa8,0x1e,0xc1,0xf7,0x93,0xca,0xff,0x12,0x6d,0xe7,0xab,0x2c,0x36,
+/* 0x003050 */ 0xe3,0x34,0xda,0x58,0x5e,0xaa,0xbb,0x61,0xdf,0x21,0xfb,0xb4,0xd2,0x11,0x49,0xc5,
+/* 0x003060 */ 0xaf,0xd0,0x68,0xc3,0x23,0x12,0xdd,0x89,0x8c,0x8a,0xc7,0xcc,0x2b,0x50,0xa5,0xb6,
+/* 0x003070 */ 0xac,0xf9,0x5f,0xcf,0x92,0x52,0xcd,0xb3,0xaa,0xa8,0xcf,0xb5,0x95,0x94,0x25,0xdd,
+/* 0x003080 */ 0x93,0x78,0x1e,0xda,0xab,0x95,0x27,0xa5,0x35,0xf8,0x15,0x69,0x2f,0x29,0x1b,0xcd,
+/* 0x003090 */ 0xa7,0x99,0x77,0x87,0xd5,0xa7,0x78,0x21,0x0e,0xa3,0x9f,0xb3,0xe6,0x7f,0xa9,0xca,
+/* 0x0030a0 */ 0xd8,0x8a,0xda,0xa2,0x21,0x7a,0x4e,0x32,0xe1,0x0e,0xc3,0x6e,0x75,0x00,0xdc,0x15,
+/* 0x0030b0 */ 0x49,0xc2,0x2f,0xae,0xda,0xcb,0x19,0x31,0xd8,0xbf,0x48,0xc0,0x8a,0x10,0x50,0x73,
+/* 0x0030c0 */ 0xe5,0x7f,0xc9,0xe1,0x7e,0xdf,0xa8,0xf0,0xbc,0x72,0xc2,0x55,0xd3,0x7f,0xfb,0x98,
+/* 0x0030d0 */ 0x10,0x40,0xaf,0xe1,0x5a,0xe2,0x1d,0x2f,0x9e,0x54,0xaf,0xa2,0x1a,0xf2,0x15,0xad,
+/* 0x0030e0 */ 0x2c,0x80,0x3e,0x26,0x75,0xbc,0x10,0xfd,0x65,0xd4,0xb0,0xcd,0xab,0x2d,0xcb,0x8a,
+/* 0x0030f0 */ 0xbf,0xee,0xa0,0xb4,0x57,0x59,0x92,0xe6,0x38,0x17,0x15,0xb8,0x78,0xa6,0x12,0xaa,
+/* 0x003100 */ 0xee,0x60,0x42,0xbd,0x6c,0x14,0xb8,0xfe,0xbf,0x2c,0xbf,0x0e,0xfb,0xb2,0xe6,0x7f,
+/* 0x003110 */ 0xb9,0xd8,0x58,0xc4,0x85,0x5d,0xf8,0xa8,0x1e,0x5e,0xed,0xdd,0x0e,0xd3,0xfc,0x12,
+/* 0x003120 */ 0x4a,0xa8,0xde,0x9f,0xb8,0x56,0xa3,0xa3,0x7a,0xad,0xea,0xa5,0xee,0xee,0xa5,0xfc,
+/* 0x003130 */ 0x94,0x3f,0x4f,0x73,0xc4,0xb2,0xe2,0xaf,0xd6,0x8a,0xd6,0x15,0xd4,0xd9,0xde,0xd4,
+/* 0x003140 */ 0xae,0xac,0x2b,0x88,0xe3,0x9b,0x5a,0x6f,0x03,0xb4,0x25,0x95,0xc0,0x3a,0xf6,0x9b,
+/* 0x003150 */ 0xf6,0xcd,0x8d,0x26,0x35,0x66,0x15,0x99,0xff,0x73,0x29,0x3b,0xfe,0x3a,0xc0,0x68,
+/* 0x003160 */ 0xaf,0x58,0xb9,0x48,0xd9,0x2e,0x15,0xbc,0x6e,0xf1,0x36,0x40,0x5b,0x81,0x78,0x98,
+/* 0x003170 */ 0x22,0xbb,0x27,0xa2,0xe9,0xcf,0xa9,0x82,0xa6,0xac,0xf5,0xe7,0x0f,0xb8,0x60,0x2c,
+/* 0x003180 */ 0x64,0x77,0xb9,0xda,0x2e,0xf6,0xa8,0xf9,0xb3,0xdc,0xa2,0xba,0xe7,0xb6,0xde,0x26,
+/* 0x003190 */ 0xe9,0x61,0xbc,0x4b,0x9d,0xa5,0x04,0x96,0x07,0xc0,0x66,0x96,0xbd,0x52,0xfa,0x72,
+/* 0x0031a0 */ 0xc9,0x8e,0xbf,0x4a,0x6c,0xf8,0x8b,0x15,0xa9,0x2b,0x45,0x43,0x81,0x30,0x92,0x36,
+/* 0x0031b0 */ 0xd0,0xb4,0xaf,0x68,0x1d,0x4d,0x04,0x3b,0x8b,0x86,0xf2,0x6b,0xcd,0x8a,0x76,0x61,
+/* 0x0031c0 */ 0xab,0x9f,0xa9,0x26,0x4b,0xfd,0x79,0x4e,0xd0,0x8c,0xb8,0x2e,0x12,0x56,0xae,0x70,
+/* 0x0031d0 */ 0x1d,0x23,0xc2,0x6a,0xbf,0xfc,0xbf,0x4e,0x2d,0xfb,0x0e,0x75,0xe3,0x97,0x33,0x1b,
+/* 0x0031e0 */ 0x1b,0xfe,0xca,0x51,0xff,0xf0,0x22,0x87,0x5d,0xad,0xc5,0x17,0x97,0xbf,0x8c,0x6a,
+/* 0x0031f0 */ 0xd4,0xc2,0x37,0x84,0x5a,0xf5,0x28,0xe0,0x82,0xdd,0xad,0xc2,0x2d,0xe8,0xf7,0xa4,
+/* 0x003200 */ 0xa1,0x79,0xe6,0x08,0xad,0xa3,0x28,0x86,0x29,0x10,0xa3,0xe8,0xaf,0xe1,0x6e,0xaf,
+/* 0x003210 */ 0x0d,0x7f,0x69,0xb6,0xb2,0x1b,0xe0,0xa2,0x77,0x13,0xff,0x11,0x32,0x86,0x62,0xc8,
+/* 0x003220 */ 0xf3,0x10,0x7e,0x5c,0xed,0x42,0xfe,0x05,0xd2,0x66,0xcf,0x9b,0xb3,0xbb,0x70,0x15,
+/* 0x003230 */ 0xaf,0xc8,0x31,0x46,0xea,0x2c,0xfc,0xe5,0x2a,0x48,0xe1,0x2f,0x31,0x15,0xde,0x89,
+/* 0x003240 */ 0x39,0x10,0xbb,0x69,0x14,0x3d,0x8c,0xcb,0x69,0xd8,0x61,0x13,0x69,0x47,0xe5,0x8d,
+/* 0x003250 */ 0xf9,0xf1,0xcd,0x79,0xe8,0xe1,0xc6,0xe0,0xd7,0xba,0x19,0xff,0xb5,0xa0,0x5c,0xe5,
+/* 0x003260 */ 0x25,0x28,0x5d,0xf7,0xaa,0x52,0xf6,0xfc,0x2f,0x86,0xb6,0x76,0xe0,0xb7,0x10,0xe5,
+/* 0x003270 */ 0xbf,0x56,0x18,0xfc,0x17,0x2b,0x84,0x28,0x3f,0xc2,0x4a,0x62,0x62,0x9a,0x12,0x68,
+/* 0x003280 */ 0xe1,0xee,0x7b,0x5b,0xa1,0x29,0x5b,0xfe,0xd7,0xd1,0x68,0xa4,0xd5,0xf7,0x23,0xe1,
+/* 0x003290 */ 0x2d,0x40,0x64,0xb5,0xeb,0x7c,0xff,0x3e,0x73,0x35,0xa6,0xfd,0x53,0xf0,0x28,0x00,
+/* 0x0032a0 */ 0xb1,0x57,0xb1,0xd9,0xbd,0xe4,0x1f,0xcd,0x7e,0xae,0xff,0xd6,0xca,0x78,0xf6,0xfa,
+/* 0x0032b0 */ 0x1b,0x62,0x64,0x85,0x71,0x2e,0x51,0xb7,0x0e,0xe0,0xed,0x2e,0xf4,0x2d,0xb1,0x5e,
+/* 0x0032c0 */ 0x2d,0xdc,0x51,0xb6,0x5a,0x4b,0x85,0x1d,0x2a,0x0f,0x58,0xf3,0xa2,0x39,0x37,0xfe,
+/* 0x0032d0 */ 0x92,0x5b,0x3a,0x8b,0x15,0x58,0xbc,0xe1,0x23,0x11,0x3d,0x3c,0xb4,0x15,0xbe,0x9f,
+/* 0x0032e0 */ 0x28,0x1a,0x2a,0x0f,0xa3,0x95,0x64,0x19,0xb5,0x79,0xce,0xbc,0xbf,0x20,0x82,0xbd,
+/* 0x0032f0 */ 0xd9,0xf2,0xbf,0x86,0xd0,0x21,0xf4,0x85,0x18,0x80,0x2c,0x37,0x7a,0x03,0xdd,0x4a,
+/* 0x003300 */ 0x56,0xf4,0x1a,0x68,0x6b,0xcd,0xdf,0xe1,0x12,0xf9,0x17,0x52,0x99,0xc6,0x2a,0x22,
+/* 0x003310 */ 0x1e,0xc2,0x7e,0xd2,0x4d,0xf9,0xaf,0xcd,0xa8,0x9a,0x04,0xb4,0x1c,0xf5,0x37,0xd6,
+/* 0x003320 */ 0x24,0xaf,0xbf,0x0d,0xdf,0x0e,0xa3,0xae,0xec,0xf2,0xdc,0x06,0x40,0x8c,0x21,0xb2,
+/* 0x003330 */ 0x85,0xf8,0x2b,0xa8,0x43,0x55,0x14,0xc9,0xb1,0x7f,0x81,0x07,0xd2,0x26,0x85,0x72,
+/* 0x003340 */ 0xd4,0x3f,0xfc,0xa6,0xee,0x19,0xc3,0x7f,0x83,0x7e,0xe0,0x9d,0x8f,0x3c,0xf7,0xf1,
+/* 0x003350 */ 0x45,0x78,0x48,0x9a,0x68,0x2c,0x41,0x5b,0x89,0xd2,0x63,0x54,0x4a,0x67,0xeb,0xf3,
+/* 0x003360 */ 0x1b,0x2e,0xc0,0x0e,0xb3,0xa4,0x0c,0xfc,0xe5,0x31,0x6b,0x1b,0xb6,0x00,0xec,0x42,
+/* 0x003370 */ 0x2f,0xd1,0xb2,0xf3,0x37,0x33,0xfe,0xab,0x01,0x80,0x18,0xb8,0xf1,0xbf,0x26,0x0b,
+/* 0x003380 */ 0x35,0x23,0xed,0xeb,0x16,0x80,0x5d,0xf7,0xbc,0x01,0x9a,0x7a,0xc5,0x9b,0xc2,0x5f,
+/* 0x003390 */ 0x05,0x36,0xfc,0x35,0x29,0xe6,0x81,0x33,0x39,0xf3,0x5f,0xe8,0x4e,0x84,0x58,0xc0,
+/* 0x0033a0 */ 0xd5,0x35,0x02,0xbb,0xd5,0x88,0x30,0x04,0xbb,0x5e,0x44,0x9f,0x99,0x60,0xdb,0x16,
+/* 0x0033b0 */ 0x33,0x1e,0x36,0x6d,0x1c,0xf5,0x37,0x16,0x73,0xfe,0xeb,0x75,0xd2,0xa0,0xf9,0xbe,
+/* 0x0033c0 */ 0x5b,0x76,0xab,0x7a,0x67,0xbc,0x46,0xe1,0x61,0x87,0xa4,0x26,0xe9,0x3d,0x2d,0xdc,
+/* 0x0033d0 */ 0x29,0xfd,0x3a,0x1e,0xfe,0x17,0x2f,0x83,0x5d,0x5d,0x35,0xa3,0x3c,0x10,0x91,0x2c,
+/* 0x0033e0 */ 0x51,0xbc,0x93,0x65,0x7a,0xb6,0xfa,0x87,0xda,0x22,0xe4,0x91,0x62,0xb5,0x78,0x63,
+/* 0x0033f0 */ 0x3c,0x80,0x97,0x7d,0x0b,0xcf,0xd3,0x69,0xdd,0x78,0xe9,0x2f,0xf1,0x99,0xc6,0x27,
+/* 0x003400 */ 0xf5,0x5b,0xcb,0xa1,0x37,0x4e,0xc0,0x76,0x03,0xfd,0xfc,0x2d,0xba,0xbf,0xa3,0x4a,
+/* 0x003410 */ 0x2c,0xb5,0x09,0x59,0xea,0x6f,0x94,0xec,0x53,0x2a,0xe3,0x9e,0x0b,0x78,0x36,0xd9,
+/* 0x003420 */ 0xa6,0xcc,0x07,0x5c,0xc0,0xea,0x9c,0x94,0xea,0xf9,0xad,0xf8,0xff,0xa0,0x07,0x51,
+/* 0x003430 */ 0x29,0xca,0x07,0x1b,0xd7,0x3e,0xa5,0xd4,0xe2,0x19,0x45,0x77,0x0a,0x7f,0xc9,0x4e,
+/* 0x003440 */ 0xfe,0x0b,0x79,0xc4,0x58,0x1e,0x1d,0xd3,0x45,0x9e,0xfe,0x98,0xc8,0x56,0xc8,0xfc,
+/* 0x003450 */ 0xd9,0xf8,0x84,0x44,0x19,0x31,0xe6,0x67,0xee,0x5d,0xaa,0xf0,0x3a,0xdb,0x7b,0x71,
+/* 0x003460 */ 0xd0,0xef,0x0e,0xd9,0xeb,0x6f,0x4c,0x89,0xf7,0xf1,0x7e,0x3e,0x4d,0xea,0xdb,0x7c,
+/* 0x003470 */ 0x25,0x2b,0x0a,0x95,0x7f,0x43,0xb5,0xc4,0x77,0xd0,0x13,0x74,0xd1,0x7a,0xef,0x05,
+/* 0x003480 */ 0xdb,0xf1,0x37,0xc8,0x51,0x14,0x26,0xcc,0x3f,0xbc,0xa6,0x16,0x59,0xfe,0xfc,0xac,
+/* 0x003490 */ 0xc2,0x44,0x76,0xfc,0x75,0xa4,0xee,0x43,0x4e,0x34,0xab,0x75,0xc8,0x72,0xfe,0xef,
+/* 0x0034a0 */ 0xfd,0x21,0x4c,0x46,0x98,0x4d,0xed,0xb7,0x27,0xd2,0xf0,0x17,0x2a,0x4d,0x08,0x5a,
+/* 0x0034b0 */ 0x96,0xfc,0xaf,0x69,0xd4,0xa0,0xac,0x1c,0x10,0x0e,0x16,0x9d,0x44,0xb7,0x46,0x7d,
+/* 0x0034c0 */ 0x67,0xd8,0xf1,0x3e,0xec,0x68,0x23,0x8f,0x7f,0xec,0xba,0xc2,0x0a,0x6e,0xa7,0xe1,
+/* 0x0034d0 */ 0x02,0xcd,0x37,0xb1,0x4c,0xb7,0xe7,0x7f,0x45,0x0c,0xde,0x6a,0x79,0x55,0x67,0x01,
+/* 0x0034e0 */ 0xb9,0xa3,0x1c,0x1d,0xef,0xf2,0x87,0x3c,0xa7,0xf1,0xcd,0xf0,0xf5,0x7e,0x51,0x17,
+/* 0x0034f0 */ 0x5e,0xc3,0x97,0xd5,0xfd,0xb1,0x6a,0x9e,0x58,0x44,0xeb,0x03,0x14,0x26,0x58,0x69,
+/* 0x003500 */ 0x3b,0x58,0x21,0x13,0x56,0xfc,0x61,0x1a,0xff,0xb5,0x0c,0x5c,0xeb,0x72,0xb4,0x89,
+/* 0x003510 */ 0xdc,0xb4,0xca,0xa0,0x3f,0x68,0x42,0x10,0xde,0xc5,0x42,0xe6,0xb8,0x7b,0x89,0x53,
+/* 0x003520 */ 0xa4,0x49,0x09,0x7d,0x8e,0xc5,0x7f,0xd9,0x78,0x6a,0x05,0x96,0xb8,0x1d,0x58,0xd4,
+/* 0x003530 */ 0x7f,0xe0,0x8f,0xaa,0x42,0xa8,0xc8,0xcb,0xe8,0x98,0x47,0x51,0xd1,0xb0,0xb8,0x27,
+/* 0x003540 */ 0x1a,0x94,0xc0,0xe6,0xe5,0x2d,0x7b,0x25,0x71,0xe4,0x58,0x88,0xa7,0xc0,0x20,0x1a,
+/* 0x003550 */ 0x7f,0x98,0xc2,0x5f,0x07,0xcc,0x90,0xc2,0xc9,0xd6,0x88,0xbc,0xf2,0x09,0xcf,0xcd,
+/* 0x003560 */ 0xed,0xc7,0x5b,0x6b,0xff,0x1a,0x3a,0x73,0x6d,0x27,0xab,0x3f,0x4f,0x96,0x8d,0xa2,
+/* 0x003570 */ 0xfe,0x68,0x64,0x76,0xcb,0xb3,0xc2,0xfb,0xda,0x54,0x34,0x32,0xe2,0x7b,0xc6,0xe8,
+/* 0x003580 */ 0x67,0x5f,0xa2,0x4c,0xb7,0xe7,0x7f,0x99,0x25,0x0d,0x8b,0x1a,0xa4,0x99,0x1b,0x3a,
+/* 0x003590 */ 0x56,0x8f,0xbc,0xa7,0x36,0xa8,0x02,0xbd,0x38,0x80,0x56,0x6c,0x6b,0xa1,0xf5,0x37,
+/* 0x0035a0 */ 0x2e,0xcd,0x6e,0x58,0xe5,0x3b,0x0f,0x3f,0x7e,0x21,0x00,0x8e,0xfd,0xf9,0x8e,0x71,
+/* 0x0035b0 */ 0x1a,0x1f,0x85,0x6c,0xf9,0x5f,0x73,0x9c,0xf9,0x5f,0x3a,0x17,0x68,0x92,0xa0,0xed,
+/* 0x0035c0 */ 0x10,0x63,0xda,0x9a,0x83,0xe8,0x9a,0x52,0xe3,0x38,0xdf,0x30,0xf0,0x97,0x2e,0xfd,
+/* 0x0035d0 */ 0xc2,0x51,0xff,0x90,0x82,0x9a,0x73,0xe8,0x70,0xbc,0x6c,0xd4,0xd0,0xd4,0xd9,0x4b,
+/* 0x0035e0 */ 0x23,0x52,0x61,0xc4,0xef,0xd0,0x18,0xf8,0x7d,0x48,0xdc,0xc2,0x72,0x85,0xec,0x38,
+/* 0x0035f0 */ 0x77,0x18,0x65,0xb9,0x86,0x23,0x05,0x78,0x9d,0x4d,0x26,0xfe,0x9a,0x91,0x49,0x65,
+/* 0x003600 */ 0x82,0x20,0xbe,0x69,0x6a,0x2a,0xd2,0x9b,0x9c,0x37,0x1a,0x98,0xf8,0xab,0x9d,0xdd,
+/* 0x003610 */ 0xff,0x65,0x3b,0xb2,0x68,0xa1,0xe1,0xb8,0x53,0xa8,0x76,0xc0,0xcc,0xe0,0x33,0x9b,
+/* 0x003620 */ 0x2c,0x9a,0xc9,0x79,0xa3,0x93,0x9e,0x23,0xff,0xab,0x80,0x5e,0xfb,0x95,0x0e,0x8a,
+/* 0x003630 */ 0xc7,0x6d,0x31,0x6f,0x28,0x8d,0xff,0xca,0x9e,0xff,0x35,0xc8,0x84,0x0b,0x19,0x19,
+/* 0x003640 */ 0x61,0xc7,0x33,0x34,0xce,0xf8,0xc3,0xd3,0xce,0xfc,0xaf,0xea,0x8b,0xc6,0x24,0xaa,
+/* 0x003650 */ 0x7e,0xc5,0xce,0x02,0x4f,0xa7,0x8e,0x23,0x0e,0xa7,0x75,0xa6,0x81,0xbf,0xc6,0xb2,
+/* 0x003660 */ 0xc4,0xcf,0xb3,0xd3,0xc2,0x11,0x77,0xc8,0x5e,0x3f,0xaa,0x23,0x8b,0x0d,0x13,0x26,
+/* 0x003670 */ 0xf8,0xb4,0x98,0x98,0x95,0x99,0xff,0x05,0xc2,0xc3,0x95,0xa3,0x92,0x43,0x93,0xce,
+/* 0x003680 */ 0xdd,0x58,0xc2,0x10,0x7f,0x4e,0x73,0x89,0xb3,0xfe,0x46,0x4a,0x28,0x64,0x19,0x61,
+/* 0x003690 */ 0x86,0x46,0x7e,0x21,0xab,0x0d,0x8d,0x3f,0xe4,0xf9,0x5f,0xfa,0x9c,0xb4,0xf1,0xe2,
+/* 0x0036a0 */ 0x7d,0x28,0xd6,0x0f,0x14,0x26,0x52,0xc3,0xc4,0x29,0x48,0x2b,0x0d,0xd6,0x3e,0x82,
+/* 0x0036b0 */ 0x46,0xfe,0x57,0x60,0xb6,0x63,0xbc,0x0c,0xe3,0x0b,0x7a,0xad,0x71,0x4d,0x40,0xae,
+/* 0x0036c0 */ 0x61,0xb2,0x84,0x23,0xc6,0xfc,0xda,0xe1,0xcc,0xff,0x1a,0xe1,0x42,0xa0,0xf4,0x98,
+/* 0x0036d0 */ 0x64,0x3b,0xdc,0xb3,0x42,0xeb,0x41,0xb8,0xc9,0x79,0xee,0x77,0x8a,0xfb,0x3f,0xae,
+/* 0x0036e0 */ 0xb4,0xfc,0x2f,0x03,0xc3,0x26,0xe6,0x8f,0xe7,0xa7,0x3a,0xf3,0xcf,0xed,0xdd,0xab,
+/* 0x0036f0 */ 0xa5,0xf7,0xb3,0x62,0xce,0xd3,0x6c,0xe3,0x6e,0x26,0xa7,0x33,0x4d,0x5e,0x66,0x21,
+/* 0x003700 */ 0x29,0x4b,0x78,0x2d,0x37,0xff,0x45,0x85,0x5a,0x52,0x90,0xa6,0xa9,0xca,0xb0,0x61,
+/* 0x003710 */ 0xc2,0xe5,0x9c,0xf9,0x5f,0x2c,0x67,0x24,0x62,0x27,0xb9,0x32,0x88,0x30,0x9b,0x90,
+/* 0x003720 */ 0x3d,0xff,0xab,0x3e,0xea,0x35,0x6a,0x11,0xb4,0xe6,0x2a,0xef,0x96,0x26,0x1c,0xc9,
+/* 0x003730 */ 0x9e,0xff,0xd5,0x14,0x30,0x6a,0x23,0xdc,0xdd,0x9d,0xb5,0x7e,0x78,0x86,0x90,0xe4,
+/* 0x003740 */ 0xdf,0x73,0x7a,0xfe,0x57,0x2b,0x07,0x59,0x32,0x27,0x44,0x8c,0xa6,0xa2,0x4f,0x79,
+/* 0x003750 */ 0x8e,0x81,0xbf,0xbc,0xa2,0x28,0xa6,0xdf,0xff,0xc5,0x6a,0xcb,0x2f,0x77,0x64,0x84,
+/* 0x003760 */ 0x29,0xa6,0x20,0x5a,0xf7,0x7f,0xa5,0xc5,0x1f,0xa6,0xe5,0x7f,0xcd,0xdd,0xd2,0xc9,
+/* 0x003770 */ 0x6b,0xd3,0x49,0xb4,0x7b,0x2d,0x68,0x46,0x32,0xef,0x6f,0x32,0xf9,0x2f,0x23,0xff,
+/* 0x003780 */ 0xeb,0x9f,0x9d,0x5d,0x67,0x96,0xdd,0xa8,0x5f,0xfa,0x19,0xfb,0xf9,0x9c,0x15,0x7f,
+/* 0x003790 */ 0x68,0x2b,0x81,0x82,0x1a,0xda,0x52,0x35,0x3a,0x60,0xef,0xb1,0x82,0x0c,0x89,0x75,
+/* 0x0037a0 */ 0x4d,0xc0,0x25,0xd1,0xf9,0x9c,0x13,0x46,0xfc,0x21,0x72,0x84,0x14,0x06,0x15,0xcf,
+/* 0x0037b0 */ 0xe6,0x2c,0x41,0x86,0x67,0x0d,0x41,0xd0,0x32,0x9a,0x5e,0x32,0xe2,0x0f,0xe7,0x38,
+/* 0x0037c0 */ 0xeb,0x6f,0xd0,0xf0,0x18,0x2a,0xd0,0x64,0xba,0x46,0x47,0xe6,0x5d,0xc0,0xd1,0xbd,
+/* 0x0037d0 */ 0x96,0x70,0xca,0x18,0xf7,0x6c,0xf5,0xe7,0x73,0x0b,0x99,0xc6,0x26,0xfe,0x9a,0x9d,
+/* 0x0037e0 */ 0x51,0xb7,0x10,0x5b,0x44,0x58,0x7a,0xa9,0x99,0x6c,0xfd,0x3c,0x96,0x35,0xff,0x2b,
+/* 0x0037f0 */ 0x25,0xe4,0x18,0x2f,0x39,0x5d,0xf3,0x1a,0x9f,0x17,0x6b,0x32,0xf9,0x2f,0x46,0x46,
+/* 0x003800 */ 0xd7,0xc1,0xfc,0xfe,0xb4,0xe9,0x99,0x11,0x7f,0xe8,0xcc,0xff,0xaa,0xee,0x91,0xb8,
+/* 0x003810 */ 0x50,0xd6,0x2b,0xd9,0x48,0xae,0x4f,0x11,0x8e,0xf0,0x7e,0x5e,0xe3,0xf0,0xeb,0x60,
+/* 0x003820 */ 0x08,0x02,0x4c,0x20,0xca,0x29,0x29,0xdb,0xaa,0x95,0x26,0xe4,0xa7,0xf2,0xbf,0x90,
+/* 0x003830 */ 0x93,0xff,0xd2,0x24,0x5a,0x76,0x63,0x2f,0x0d,0xe7,0x4e,0x5b,0x9f,0x73,0x08,0xc6,
+/* 0x003840 */ 0xf9,0xa1,0x42,0xd2,0xf2,0xbf,0x58,0xd9,0x8d,0x8f,0x48,0xbf,0x76,0xfb,0xfa,0x65,
+/* 0x003850 */ 0x6f,0x64,0xa4,0x86,0xa5,0x09,0x05,0xeb,0xad,0xfc,0xaf,0xd9,0x8e,0xbc,0x24,0x96,
+/* 0x003860 */ 0xfb,0xcf,0x72,0xd2,0xc9,0xa7,0x6f,0x37,0x5c,0x98,0x69,0xe1,0x2f,0x32,0xc3,0x59,
+/* 0x003870 */ 0xe4,0xb0,0xcd,0x6b,0x5e,0x4b,0xe4,0x64,0xc4,0x52,0xc2,0x06,0xa7,0xe6,0x34,0xff,
+/* 0x003880 */ 0x7e,0x9e,0x72,0xe6,0x2f,0x57,0x13,0xb3,0x5b,0x10,0x80,0xac,0xf4,0xde,0xc8,0xd4,
+/* 0x003890 */ 0x50,0xfe,0x8b,0x3d,0x47,0x46,0xce,0x7d,0x50,0xfd,0x8c,0xdd,0x9b,0xce,0x7f,0x45,
+/* 0x0038a0 */ 0xd3,0xf3,0x97,0xc1,0xed,0x19,0x16,0x79,0xc1,0xb7,0xff,0x78,0xdc,0x41,0x30,0xfc,
+/* 0x0038b0 */ 0xa8,0xb1,0xd9,0xb6,0xf8,0x43,0x2a,0x04,0x27,0x0c,0x21,0xdd,0x3f,0xcc,0x14,0x98,
+/* 0x0038c0 */ 0x57,0x69,0xe4,0x7f,0xc5,0x91,0x73,0xbc,0xd8,0x30,0x65,0x54,0xa4,0xff,0x14,0xc1,
+/* 0x0038d0 */ 0xca,0xff,0xca,0xa8,0x33,0x20,0xd4,0xa3,0x2b,0xda,0x12,0xe4,0x4d,0x47,0x5b,0xd9,
+/* 0x0038e0 */ 0x05,0x23,0xff,0xeb,0xe1,0xce,0x20,0xbb,0x9b,0xc9,0x74,0xf9,0x92,0x2b,0x12,0x42,
+/* 0x0038f0 */ 0x50,0x86,0xfd,0xab,0xbc,0x2b,0x5b,0x94,0x60,0xa6,0x90,0xca,0xff,0x92,0xed,0x4d,
+/* 0x003900 */ 0x00,0xd6,0xfc,0x41,0x7e,0x5b,0xca,0x67,0x78,0xce,0xf5,0xf0,0x1c,0x17,0x9b,0x17,
+/* 0x003910 */ 0xe9,0xf5,0x37,0x08,0x3b,0xcb,0xdd,0x43,0x09,0x9a,0xec,0xc3,0x94,0x4e,0x96,0x1d,
+/* 0x003920 */ 0x11,0xd9,0xbc,0x20,0xd2,0x5a,0xbb,0x3f,0x4f,0xfd,0x31,0x4f,0x90,0xad,0x51,0x41,
+/* 0x003930 */ 0x1a,0x2d,0x96,0xab,0x7b,0x71,0xca,0x9f,0x17,0xd8,0xdf,0xb5,0xf3,0xc6,0xcc,0x7e,
+/* 0x003940 */ 0x3e,0x68,0xd6,0x5e,0xfb,0x0c,0xfd,0x5c,0x6c,0x9c,0x6b,0xe9,0xf9,0xb6,0x6b,0x1d,
+/* 0x003950 */ 0xa6,0x63,0x3e,0xc5,0xd7,0x25,0x8c,0x4b,0x67,0xe2,0xb7,0x22,0x76,0x7f,0x01,0x3b,
+/* 0x003960 */ 0xdf,0x98,0x10,0x82,0xe8,0x04,0xbd,0x26,0x60,0x51,0x71,0x50,0x3a,0x49,0x5f,0x83,
+/* 0x003970 */ 0xae,0x85,0x87,0x3b,0x97,0x44,0xbb,0x27,0x85,0x11,0xbe,0x7f,0x25,0x91,0x05,0xb2,
+/* 0x003980 */ 0xde,0xe6,0x60,0xb6,0xb7,0xf1,0x1c,0xac,0x99,0x15,0x98,0xf6,0xb3,0x08,0xe8,0x26,
+/* 0x003990 */ 0xda,0x9c,0x70,0x07,0x8b,0x36,0x8b,0xfe,0x57,0x60,0x28,0xd7,0xba,0x5e,0xa7,0xb0,
+/* 0x0039a0 */ 0x6b,0x1a,0x57,0x31,0xfe,0x0b,0x7e,0x6a,0x22,0x95,0xff,0x95,0xca,0x27,0xa2,0xfd,
+/* 0x0039b0 */ 0x2c,0xe1,0x61,0xbc,0x99,0xdc,0x24,0xd1,0x53,0x08,0xef,0x5e,0xe4,0x4f,0xc2,0x02,
+/* 0x0039c0 */ 0xeb,0xc5,0x9b,0x51,0x2f,0x4d,0xfb,0x42,0x32,0x73,0xec,0xf7,0x18,0xe7,0xea,0x29,
+/* 0x0039d0 */ 0xfc,0x95,0xb4,0xe5,0x7f,0x91,0xfd,0x0a,0x2c,0xb9,0x3b,0x29,0xd1,0xd3,0x5e,0x21,
+/* 0x0039e0 */ 0xe6,0x1b,0x68,0x2b,0x0a,0x1f,0x92,0x57,0xde,0x3c,0xbb,0x02,0x90,0x54,0xe3,0x1a,
+/* 0x0039f0 */ 0xc5,0x48,0xfb,0x62,0xa8,0xa4,0x19,0x84,0x11,0xe3,0x5c,0x22,0xc5,0x5f,0x9c,0x43,
+/* 0x003a00 */ 0x97,0x87,0x22,0x32,0x08,0x27,0xc4,0x21,0xf2,0x2c,0x2a,0x98,0x28,0x9b,0x96,0x58,
+/* 0x003a10 */ 0xbe,0xd5,0x3a,0xf8,0xc2,0x8f,0x10,0x86,0xbf,0xbe,0x88,0xba,0x79,0x3f,0x07,0x79,
+/* 0x003a20 */ 0x90,0x7c,0x42,0x48,0x1a,0xfc,0xd7,0x2c,0xab,0xfe,0x21,0x4d,0x87,0xe4,0xe4,0x2f,
+/* 0x003a30 */ 0xa1,0xf7,0x7d,0x99,0xf5,0xf4,0xd4,0xad,0x97,0xa8,0xd0,0x5e,0xab,0xcf,0x9c,0x28,
+/* 0x003a40 */ 0xbe,0x6a,0x84,0x89,0x7a,0x58,0x53,0x34,0xc5,0x7f,0x35,0xc9,0xb6,0x79,0x3a,0x29,
+/* 0x003a50 */ 0xad,0x5b,0xb4,0x95,0xbd,0x18,0x09,0xd3,0xf1,0x0a,0x32,0xf4,0xe7,0xa5,0xd7,0x16,
+/* 0x003a60 */ 0x1c,0x43,0x7d,0x2f,0x88,0x09,0xa1,0x54,0x65,0x40,0x6c,0x4f,0x07,0x7b,0x9f,0xe6,
+/* 0x003a70 */ 0x14,0xff,0x75,0xfa,0x4b,0x29,0xfc,0x25,0xee,0x47,0xb5,0x13,0x1e,0x2d,0x36,0x0e,
+/* 0x003a80 */ 0xe0,0xbf,0x07,0x05,0x26,0x85,0xfb,0x61,0xca,0x28,0x74,0x82,0x5c,0x81,0x3f,0xa7,
+/* 0x003a90 */ 0x6c,0xc4,0xdd,0x07,0xdd,0xf2,0xcb,0x91,0x6a,0xdd,0x73,0x33,0xcf,0xff,0x6a,0x95,
+/* 0x003aa0 */ 0x12,0x7e,0x33,0xff,0x2b,0x35,0x2f,0x06,0x51,0x42,0x55,0xd4,0x2f,0xa3,0x46,0x1a,
+/* 0x003ab0 */ 0x99,0xa6,0xa0,0xc0,0x22,0xec,0x15,0x0f,0xe0,0x72,0x1a,0x88,0xf8,0xb2,0x1e,0x43,
+/* 0x003ac0 */ 0x68,0x54,0x7a,0x0e,0x2f,0x20,0x1d,0x24,0x38,0xe0,0xa9,0xa7,0xe3,0xe5,0x02,0x27,
+/* 0x003ad0 */ 0x30,0xd4,0x68,0xe4,0x7f,0x8d,0xd8,0xef,0xa5,0x7a,0x2e,0x36,0x3f,0xda,0xfd,0x35,
+/* 0x003ae0 */ 0xfc,0x3b,0x75,0xdf,0x1d,0x4a,0x40,0xba,0x0f,0xdf,0xa9,0xee,0x23,0x5f,0x48,0x96,
+/* 0x003af0 */ 0xac,0x2a,0xba,0x4a,0x36,0xb4,0x97,0x26,0xdd,0x97,0xf1,0x5c,0xf2,0x64,0x57,0x25,
+/* 0x003b00 */ 0xad,0x55,0xc5,0x78,0x99,0x64,0xc0,0xca,0xff,0x5a,0x63,0xaf,0x3f,0x7f,0x41,0x56,
+/* 0x003b10 */ 0x26,0x0a,0x2a,0x84,0x13,0xfa,0x14,0x0a,0xc9,0xde,0xba,0x8e,0x42,0x10,0x6e,0x1e,
+/* 0x003b20 */ 0xf4,0xce,0x5a,0x76,0x02,0xfa,0x27,0x34,0xb6,0x72,0x91,0x50,0x45,0x00,0x88,0x8d,
+/* 0x003b30 */ 0x99,0x15,0xe9,0xed,0xfc,0xd7,0xec,0x83,0xea,0x35,0xd9,0x98,0x32,0x17,0xa0,0xa3,
+/* 0x003b40 */ 0x5a,0x12,0xc2,0xb4,0x7c,0x4d,0x89,0x0c,0xf9,0xda,0x3a,0x68,0x92,0xd7,0x6d,0xaa,
+/* 0x003b50 */ 0x6f,0xe4,0x2f,0xce,0x44,0xaf,0xca,0x0d,0x26,0xed,0x05,0x58,0x78,0xb2,0x83,0x8d,
+/* 0x003b60 */ 0x57,0x53,0x8a,0xff,0x92,0x1c,0xf5,0x37,0xa2,0x11,0xd4,0xb2,0xdd,0x35,0x8a,0x8e,
+/* 0x003b70 */ 0xe3,0x10,0x5a,0x99,0x58,0xb6,0x9b,0xc2,0x64,0xc2,0x3e,0xad,0x21,0x5c,0xaf,0x7b,
+/* 0x003b80 */ 0xfb,0x71,0x00,0x34,0x20,0xd0,0x0b,0x3e,0x8c,0xef,0xc7,0xe0,0xbf,0xf4,0x76,0xdb,
+/* 0x003b90 */ 0xbe,0xf3,0x9c,0x04,0xc2,0xff,0x5d,0x44,0xeb,0x1f,0x96,0x22,0xf7,0xba,0xc6,0x1b,
+/* 0x003ba0 */ 0x69,0x00,0x06,0xa2,0xd5,0xe6,0xe5,0x7f,0x47,0x95,0xa7,0xa5,0x09,0x61,0xa5,0xbc,
+/* 0x003bb0 */ 0xd1,0x5f,0x39,0x26,0xad,0xe3,0x37,0x82,0xd1,0xd8,0x8c,0xf3,0x3c,0xff,0x0b,0xa5,
+/* 0x003bc0 */ 0xf0,0xd7,0x1f,0xa8,0xa0,0x78,0x1e,0xc0,0x27,0xd0,0x2f,0xa1,0x7b,0xa5,0x45,0xf8,
+/* 0x003bd0 */ 0xa7,0xe4,0xc7,0xa4,0x52,0xe3,0xb7,0x5a,0x93,0xea,0x31,0x40,0xbe,0x73,0xc5,0x8d,
+/* 0x003be0 */ 0x7d,0x95,0xe3,0x26,0x04,0xbe,0xfb,0xfa,0xf5,0xb0,0xae,0xb2,0xef,0xc7,0xc9,0x7f,
+/* 0x003bf0 */ 0xe9,0xc1,0x53,0xf0,0x6d,0x0c,0xe3,0x0e,0x54,0x7e,0x11,0x70,0xf7,0x6e,0xba,0xfa,
+/* 0x003c00 */ 0xa1,0xee,0xc5,0x78,0x58,0x7e,0x98,0x87,0xf4,0x7c,0x33,0xaf,0x43,0x0c,0x5a,0xd0,
+/* 0x003c10 */ 0x8c,0xce,0x53,0x23,0x4f,0x6a,0x4c,0xec,0x4d,0x95,0xdd,0xb8,0xac,0x36,0xf4,0x6c,
+/* 0x003c20 */ 0xa5,0xf9,0x5f,0xe7,0xd0,0xad,0x89,0xf1,0xa8,0xd0,0x4b,0xef,0xff,0x22,0xbe,0x51,
+/* 0x003c30 */ 0x61,0x32,0xff,0x25,0xbd,0x81,0x88,0x9a,0x70,0x5b,0x23,0x0d,0x4d,0xf4,0x26,0x53,
+/* 0x003c40 */ 0xf8,0xcb,0x38,0x97,0x68,0x76,0xf8,0x75,0xa1,0x2a,0xa3,0xe6,0x9e,0xab,0x1f,0xfb,
+/* 0x003c50 */ 0x08,0x8e,0xd2,0x00,0x27,0xa5,0x85,0xcc,0x4c,0xba,0x26,0x4b,0xd2,0x2f,0x02,0x33,
+/* 0x003c60 */ 0xf1,0x17,0x3f,0xff,0x69,0x96,0x77,0x89,0x96,0x8b,0x3e,0x15,0xa7,0x42,0xf1,0xa8,
+/* 0x003c70 */ 0x74,0x54,0xab,0x55,0x0b,0x76,0x08,0xbb,0x58,0x3c,0x9b,0x27,0x2e,0x94,0x4b,0x97,
+/* 0x003c80 */ 0x50,0x28,0xea,0xfd,0x89,0xf0,0xb6,0x7a,0x56,0x0e,0xa9,0x5e,0x23,0xc2,0xad,0xc9,
+/* 0x003c90 */ 0x96,0xff,0xe5,0xc0,0x5f,0x83,0x55,0x5f,0xf6,0xf4,0xe1,0x17,0xc1,0xa6,0x47,0x95,
+/* 0x003ca0 */ 0x76,0xe0,0x72,0xfc,0x2a,0x8f,0x28,0x9b,0x3f,0xb2,0x1f,0xf5,0xb4,0x15,0xc4,0xf1,
+/* 0x003cb0 */ 0x5b,0x2c,0x34,0x51,0x7a,0x85,0xfb,0xcf,0x6b,0x3e,0x35,0xfe,0x10,0x8f,0x6a,0xed,
+/* 0x003cc0 */ 0xe8,0x09,0x9a,0xf6,0x65,0x54,0x9b,0x97,0xdd,0x60,0xe3,0xf2,0xaf,0x92,0xb6,0xe3,
+/* 0x003cd0 */ 0x51,0xe5,0x29,0xf1,0x26,0x55,0xfa,0x51,0x06,0xfe,0x72,0xd6,0x3f,0x14,0x8d,0xe2,
+/* 0x003ce0 */ 0xe7,0x7b,0xe4,0xd5,0xac,0xfe,0xa1,0xda,0x4e,0xcb,0xa1,0x83,0x90,0xdc,0x3f,0x0b,
+/* 0x003cf0 */ 0x2d,0x5f,0x20,0xd3,0x5f,0x11,0x28,0x5f,0x2e,0x15,0xc5,0x32,0xf0,0xd7,0x8d,0x3c,
+/* 0x003d00 */ 0xff,0xcb,0x43,0xbb,0xee,0xb2,0x21,0x68,0x43,0x6a,0xed,0xdc,0x82,0x0d,0x1d,0x3b,
+/* 0x003d10 */ 0xb5,0x2e,0xda,0x99,0x1b,0x3a,0x5c,0x64,0x52,0x0d,0x33,0xfe,0x8b,0x8c,0x29,0xb5,
+/* 0x003d20 */ 0x52,0x30,0xb6,0x2c,0x3d,0xfe,0x70,0x32,0xc5,0x7f,0x51,0x2a,0xea,0xcf,0x28,0x2e,
+/* 0x003d30 */ 0xb8,0x88,0x3e,0x2a,0x5d,0x4c,0x81,0xd8,0x20,0xb9,0x14,0xe0,0x85,0xe8,0xbb,0x68,
+/* 0x003d40 */ 0xfd,0x43,0xdf,0xa9,0x8e,0x8b,0x5a,0x0a,0x20,0xb8,0x18,0xff,0x65,0xe4,0x7f,0xf5,
+/* 0x003d50 */ 0xcf,0xb1,0x3d,0xe7,0xf7,0x4c,0x28,0xfb,0xad,0xf2,0x22,0x0a,0x47,0xbd,0xaf,0x0b,
+/* 0x003d60 */ 0x4f,0xb4,0x5f,0x92,0x23,0xba,0xf7,0xba,0x99,0x37,0x91,0x01,0xd4,0xd0,0xec,0x1d,
+/* 0x003d70 */ 0x11,0x6e,0x16,0x5e,0xa6,0x65,0x0f,0x5f,0x43,0xe5,0x8c,0x47,0xf3,0x5a,0xf9,0x5f,
+/* 0x003d80 */ 0x5f,0xb5,0xe3,0x2f,0x1a,0x76,0x28,0x50,0xa1,0x17,0xf5,0x20,0x69,0x6b,0x91,0x90,
+/* 0x003d90 */ 0xa4,0x4d,0x52,0x27,0x2e,0xc5,0xd0,0x54,0xb2,0x8a,0x60,0x1a,0x91,0xc8,0x88,0x30,
+/* 0x003da0 */ 0x85,0xf1,0x5f,0x81,0x54,0xfe,0x17,0xea,0x64,0x29,0x5d,0x02,0xaf,0xad,0x51,0xae,
+/* 0x003db0 */ 0x2f,0xa3,0xfd,0xbc,0x13,0x2b,0xad,0x01,0xb9,0xa8,0x13,0x2d,0x2c,0x07,0xc7,0x83,
+/* 0x003dc0 */ 0x77,0x78,0xf0,0x0e,0x89,0xe6,0xe2,0x81,0xd0,0xea,0x99,0x8d,0x45,0x33,0x29,0xcf,
+/* 0x003dd0 */ 0xcc,0xff,0x9a,0x6d,0x83,0x54,0xdd,0xa6,0xb0,0x53,0xec,0x69,0x04,0x9b,0x72,0x5a,
+/* 0x003de0 */ 0x25,0xa3,0x49,0x8d,0x6f,0x13,0xe1,0x03,0x08,0xd2,0xb2,0x1b,0xe5,0xca,0x26,0x2b,
+/* 0x003df0 */ 0x10,0x11,0x9a,0xa4,0x54,0xfe,0x97,0x68,0xe1,0xa6,0x97,0xd0,0xab,0xc9,0xc8,0x6a,
+/* 0x003e00 */ 0xcf,0x23,0xf0,0x27,0xbf,0x43,0xc2,0xf0,0xb7,0x7b,0xe8,0xaf,0x88,0x44,0xbd,0x23,
+/* 0x003e10 */ 0xf0,0x41,0x1e,0x75,0x45,0xd4,0x40,0xdc,0xf3,0x04,0x2d,0xdd,0xa6,0xd2,0xc2,0x32,
+/* 0x003e20 */ 0xbc,0x29,0xfe,0x85,0x49,0xbe,0x7f,0xad,0x49,0xe1,0x2f,0x00,0xb3,0x72,0xe4,0xac,
+/* 0x003e30 */ 0x6f,0x47,0xc7,0x9f,0x68,0xcd,0x4f,0xf3,0x5e,0xf2,0x48,0xf4,0x97,0x71,0x0f,0xaf,
+/* 0x003e40 */ 0x12,0x56,0xc0,0x52,0xf9,0x6c,0xf8,0x2b,0x6a,0xcb,0xff,0xb2,0xdf,0xbf,0x7c,0xda,
+/* 0x003e50 */ 0x48,0xc6,0x6c,0x1c,0x92,0x43,0xc8,0xdb,0x25,0x28,0xd2,0xd0,0x4c,0x1a,0x1e,0x5c,
+/* 0x003e60 */ 0x4c,0xc3,0x56,0xc3,0x79,0x5e,0x5a,0xda,0x85,0x52,0x63,0x66,0xfd,0x43,0x5a,0xa7,
+/* 0x003e70 */ 0xd4,0xac,0xbf,0x21,0x02,0xfe,0x72,0x19,0x90,0xea,0xa1,0xa5,0x55,0xf1,0x15,0xbb,
+/* 0x003e80 */ 0xf0,0x6b,0xe8,0x21,0xdd,0x4f,0x9a,0xc7,0xb6,0x2d,0x12,0x37,0xa3,0x60,0xbb,0x27,
+/* 0x003e90 */ 0xe9,0xaf,0x40,0x0f,0xa1,0x32,0x4d,0x1a,0x8b,0x5d,0x46,0xe7,0x88,0x9f,0x48,0xd1,
+/* 0x003ea0 */ 0x18,0x4b,0x16,0x4b,0xa4,0xf2,0xbf,0xa4,0x07,0x57,0x8a,0x7b,0x45,0xf3,0x90,0x50,
+/* 0x003eb0 */ 0x09,0x1e,0x81,0x75,0xec,0x25,0xe4,0x97,0xd8,0x39,0x92,0xd7,0xf0,0xe2,0xf2,0x0a,
+/* 0x003ec0 */ 0x51,0x87,0x18,0x1d,0xc9,0xa7,0xf5,0xd9,0x62,0x71,0x68,0xf2,0xf3,0x75,0x8c,0x9e,
+/* 0x003ed0 */ 0xb4,0x1f,0x53,0x32,0xf3,0xbf,0x36,0xa8,0x95,0xea,0x8a,0xef,0xb0,0xf8,0xba,0xb2,
+/* 0x003ee0 */ 0xa1,0xae,0xf3,0x78,0x1e,0xd9,0x48,0xeb,0xd3,0xae,0x6b,0x5c,0xa4,0x6c,0xdd,0x59,
+/* 0x003ef0 */ 0xa6,0x37,0xb7,0xe1,0xdf,0xb3,0x2b,0x3f,0x24,0x46,0xd0,0x50,0x0c,0xd2,0xe6,0x37,
+/* 0x003f00 */ 0xf3,0xbf,0x4a,0x7e,0x9a,0xaa,0x3f,0xff,0x12,0x15,0xd6,0x74,0xbc,0x81,0xde,0x26,
+/* 0x003f10 */ 0x0b,0x27,0x83,0xab,0x84,0x79,0x47,0x7e,0x47,0xa9,0xb1,0xfb,0x3b,0xae,0x43,0xbf,
+/* 0x003f20 */ 0x4e,0xee,0xa1,0x68,0xeb,0x2a,0x7e,0x89,0xec,0x49,0x7a,0xd7,0xd0,0x8a,0x88,0x64,
+/* 0x003f30 */ 0x89,0x92,0x8a,0x3f,0xb4,0xd5,0xdf,0x18,0xce,0x7b,0x17,0x47,0x9a,0x7d,0xbb,0xfe,
+/* 0x003f40 */ 0x0a,0xd6,0x4c,0xf1,0x31,0xbd,0x45,0x16,0xde,0xd7,0xf9,0x49,0x32,0x1a,0x24,0xdf,
+/* 0x003f50 */ 0x43,0xf5,0x08,0x96,0xb8,0x24,0x3a,0x4b,0xe3,0xf0,0x8d,0x2b,0x6c,0xd0,0x56,0x0b,
+/* 0x003f60 */ 0x7f,0x29,0xb3,0x0f,0xd9,0xe2,0xa3,0xb6,0x97,0x5d,0xf4,0x9e,0x2e,0xbd,0x8a,0x8e,
+/* 0x003f70 */ 0xc7,0x17,0x27,0x0b,0x9f,0xfa,0xc1,0x21,0xf9,0x64,0x57,0x43,0xb2,0xe0,0x80,0xf0,
+/* 0x003f80 */ 0x41,0xd3,0x71,0x12,0x5e,0x5d,0x79,0x5a,0xa8,0x55,0x5f,0x22,0x35,0xa3,0xde,0x31,
+/* 0x003f90 */ 0x2b,0xff,0x4b,0x30,0xf2,0xbf,0x9e,0x42,0x8f,0x35,0x59,0xfd,0xf3,0x8c,0xa6,0x88,
+/* 0x003fa0 */ 0xee,0x56,0x7c,0x26,0xfe,0x04,0x29,0xd3,0xbb,0xbe,0x4c,0xab,0x41,0x42,0x53,0x01,
+/* 0x003fb0 */ 0xbd,0x09,0x65,0x23,0xf1,0xaf,0x96,0x5e,0x11,0xee,0x44,0x4f,0x46,0x01,0xba,0x46,
+/* 0x003fc0 */ 0x69,0x21,0x0e,0x99,0xf6,0x0f,0x36,0xe2,0x1c,0xec,0xf8,0x4b,0x79,0xc6,0x3f,0x7f,
+/* 0x003fd0 */ 0x70,0x93,0x0a,0x7b,0xdc,0x83,0xca,0x02,0xdd,0xad,0xfa,0xcf,0xe0,0x8d,0x88,0x66,
+/* 0x003fe0 */ 0x84,0xf9,0x61,0x67,0x54,0x4a,0xd5,0x8a,0x36,0x7c,0x73,0xe7,0x8f,0xd0,0x5d,0xba,
+/* 0x003ff0 */ 0xa4,0x9a,0x58,0xaf,0x2d,0xcf,0xc8,0xff,0x52,0x67,0xdb,0xce,0x0f,0x13,0xa4,0x3c,
+/* 0x004000 */ 0xea,0x41,0x47,0x86,0x60,0xb6,0x2b,0x17,0x25,0xc2,0xca,0x35,0x33,0x70,0x3d,0x98,
+/* 0x004010 */ 0xd7,0xa1,0x2a,0x7a,0x45,0x1c,0x2f,0xd3,0x17,0xd2,0xa3,0x45,0x85,0x9d,0x28,0x06,
+/* 0x004020 */ 0x5d,0xf0,0x49,0x98,0xfc,0x57,0xea,0xfe,0xe5,0x73,0xe8,0xbc,0xf2,0x5c,0xe2,0x2b,
+/* 0x004030 */ 0xd4,0x8d,0x3f,0x86,0xbf,0x3b,0x72,0xfb,0x88,0x7b,0x1a,0x9d,0x44,0x55,0x63,0x5e,
+/* 0x004040 */ 0xea,0x70,0x9e,0x44,0x7e,0xe2,0x4e,0x08,0x95,0xe8,0x94,0xd8,0xa7,0x7b,0x0d,0x7f,
+/* 0x004050 */ 0x1e,0xf9,0x12,0xc5,0xc6,0xdf,0xa5,0xd9,0xf9,0xaf,0xcb,0xf9,0x75,0xc3,0x0f,0x3d,
+/* 0x004060 */ 0x56,0x46,0x93,0x47,0x58,0xb4,0x21,0x87,0x78,0x5b,0xfb,0x68,0xe1,0x94,0xfc,0x07,
+/* 0x004070 */ 0xda,0xc5,0x67,0x84,0x41,0xf4,0xae,0x1a,0xd1,0xab,0x13,0x33,0xd9,0x4f,0x29,0xbe,
+/* 0x004080 */ 0x54,0xfe,0x17,0x9a,0x96,0x2c,0x38,0x30,0x8d,0x6a,0x7a,0x01,0x2f,0x7b,0x5d,0x27,
+/* 0x004090 */ 0x50,0xcd,0x11,0x6f,0xdc,0x17,0x64,0x95,0xd2,0xdd,0x13,0x42,0xbc,0xf1,0x24,0xfe,
+/* 0x0040a0 */ 0x1e,0x81,0xf5,0xb0,0x5e,0x3c,0x41,0x23,0x82,0x2e,0x0b,0xf5,0x32,0x2f,0x96,0x08,
+/* 0x0040b0 */ 0xfe,0x21,0x7f,0x4e,0xe7,0x5a,0xb3,0x12,0x02,0x2d,0x09,0x7e,0xb3,0x16,0xb8,0xb1,
+/* 0x0040c0 */ 0x63,0xcd,0x8c,0x63,0xa2,0x5f,0x97,0x4e,0xf9,0xeb,0x59,0x14,0xae,0x6f,0x02,0xff,
+/* 0x0040d0 */ 0x91,0x74,0xa3,0x9a,0xa5,0xd2,0x6e,0xff,0xcf,0x51,0x2f,0xbd,0xd2,0xab,0x3e,0x46,
+/* 0x0040e0 */ 0xbd,0xca,0x20,0xad,0x91,0x98,0x34,0xf3,0xbf,0xd6,0x4a,0x56,0xb0,0xe2,0xf3,0xc4,
+/* 0x0040f0 */ 0x8f,0x24,0xad,0xa8,0x0a,0xba,0xb7,0x47,0x97,0xb6,0x51,0x67,0xdb,0x45,0xcb,0x2f,
+/* 0x004100 */ 0x14,0x8d,0x8a,0xdd,0x28,0x88,0x61,0x67,0xbc,0x09,0x75,0xf1,0xab,0xc1,0x58,0x66,
+/* 0x004110 */ 0x90,0xb2,0x28,0x01,0x78,0xd9,0xc4,0x5f,0xa2,0x35,0x5e,0xcf,0x2b,0xdf,0x50,0x56,
+/* 0x004120 */ 0xb5,0xe3,0x95,0x72,0x4c,0xf1,0xeb,0xcd,0x45,0x79,0x05,0x88,0x5e,0x33,0xfa,0xc5,
+/* 0x004130 */ 0x30,0x3a,0x2a,0x0a,0xe5,0xe5,0xde,0x45,0xb0,0xae,0x3e,0xae,0x21,0x65,0xa8,0x39,
+/* 0x004140 */ 0xe4,0x66,0x3f,0x45,0x99,0x6b,0x63,0xff,0x22,0x3b,0x38,0xfe,0xf2,0xd0,0x92,0x08,
+/* 0x004150 */ 0x93,0x4a,0x58,0xf6,0xee,0x12,0x2a,0xd5,0x76,0x57,0x58,0x0f,0x3e,0x8c,0x97,0xb0,
+/* 0x004160 */ 0x29,0xe3,0x3d,0x2f,0x1c,0xd5,0x8e,0x4b,0x91,0xa2,0xaf,0xff,0x50,0x98,0xaf,0x83,
+/* 0x004170 */ 0x23,0xfd,0x4a,0x30,0xc1,0x72,0xdf,0x22,0xb4,0x66,0x75,0xd2,0xe0,0xbf,0x3e,0x77,
+/* 0x004180 */ 0x90,0x56,0xc9,0xe0,0xfe,0xe1,0x84,0x7c,0xa3,0xbb,0xe5,0x88,0x30,0x89,0xcf,0xa9,
+/* 0x004190 */ 0x87,0x07,0xb6,0xfe,0x76,0x19,0xbf,0xe1,0x77,0xeb,0xc5,0xb2,0x09,0xf1,0x13,0xd7,
+/* 0x0041a0 */ 0xb7,0x89,0xef,0x4d,0x61,0x08,0x5c,0x7d,0xf0,0x0f,0x0d,0x57,0x1f,0xd9,0xf3,0xbf,
+/* 0x0041b0 */ 0x9c,0xf7,0x2f,0x73,0xb6,0xeb,0x13,0x74,0x8b,0x5e,0xe0,0xe0,0xbf,0xfe,0x60,0xf2,
+/* 0x0041c0 */ 0x5f,0x1f,0xa4,0x9d,0x78,0x4c,0xd8,0xeb,0x6f,0x54,0x39,0x28,0x2d,0x40,0x17,0x7a,
+/* 0x0041d0 */ 0xd9,0x84,0x64,0xd3,0xd0,0x1c,0xb1,0x0c,0x22,0xcc,0xe0,0xbf,0x0c,0xfc,0x85,0xb6,
+/* 0x0041e0 */ 0x38,0x31,0x2c,0xbf,0x86,0x5e,0x2e,0x1f,0xcc,0x01,0x6f,0xd3,0xf3,0x61,0xad,0xf8,
+/* 0x0041f0 */ 0xc3,0x8c,0x94,0x40,0x44,0x85,0x6f,0xa4,0xa1,0xec,0xb4,0x1c,0xb1,0x0c,0xfe,0xeb,
+/* 0x004200 */ 0x41,0x3b,0x7f,0x41,0x03,0x7d,0x0b,0xa9,0x6f,0x7c,0x00,0xd5,0xa6,0xc1,0xe4,0xd7,
+/* 0x004210 */ 0x4d,0xfe,0xeb,0xbd,0xb4,0xa3,0x0f,0x3d,0x55,0x7f,0x23,0x1d,0x02,0x73,0x06,0xf3,
+/* 0x004220 */ 0x33,0x9e,0x4b,0x18,0xf8,0xab,0x35,0xb3,0xfe,0x21,0x8b,0x82,0xab,0xe5,0x79,0x9a,
+/* 0x004230 */ 0xe6,0x92,0x9b,0x11,0xe3,0x9a,0xce,0x7f,0x65,0xab,0x7f,0x38,0x8d,0xf6,0x4d,0xdc,
+/* 0x004240 */ 0xa2,0x3b,0xf9,0xaf,0xee,0x5c,0x07,0x14,0xb9,0xef,0xff,0x42,0xec,0xfc,0xf0,0x88,
+/* 0x004250 */ 0x93,0xff,0x4a,0x1f,0x26,0x4b,0x30,0xe2,0x0f,0x27,0xb2,0xd4,0x3f,0xa4,0xc2,0xfc,
+/* 0x004260 */ 0xa4,0x9d,0xff,0x3a,0x91,0x51,0x0e,0xc2,0xc6,0xcb,0xb0,0xf7,0x69,0x96,0xbc,0xb4,
+/* 0x004270 */ 0xc8,0x3c,0xe0,0x2f,0xcc,0x28,0xad,0x41,0x0e,0xc4,0x5c,0xa1,0x01,0x07,0xff,0x85,
+/* 0x004280 */ 0xfe,0x98,0x93,0xff,0xe2,0xfb,0x97,0x9e,0xe5,0x7c,0x83,0x92,0x5c,0xff,0x44,0x8b,
+/* 0x004290 */ 0x63,0x58,0x8c,0xd8,0x39,0xb3,0x57,0xa7,0x4d,0x6e,0xcb,0x32,0x36,0xf0,0x57,0x40,
+/* 0x0042a0 */ 0x4c,0x1b,0x2f,0x18,0xa6,0xdd,0xe4,0xf5,0x35,0x91,0xd3,0x39,0x8f,0xb3,0x9c,0xf1,
+/* 0x0042b0 */ 0xc6,0x26,0xfe,0x8a,0x3b,0xcf,0xfd,0x06,0x40,0x18,0xd6,0x60,0x5b,0x3f,0x65,0x3f,
+/* 0x0042c0 */ 0xdc,0x7b,0xc3,0x1e,0x48,0xff,0x4d,0x27,0xff,0xc5,0xbf,0xe7,0x74,0xfe,0x8b,0xe6,
+/* 0x0042d0 */ 0x76,0xfd,0x54,0xdd,0xf8,0xe0,0x82,0xb1,0xb9,0xf6,0x5e,0x55,0x6d,0x36,0x0b,0xce,
+/* 0x0042e0 */ 0xda,0xfb,0xd9,0x8a,0x3f,0xcc,0xc2,0x7f,0x09,0x0e,0x96,0x53,0xf8,0xd4,0xf3,0xc3,
+/* 0x0042f0 */ 0x5c,0xf9,0x5f,0x85,0xb4,0x46,0xd9,0x31,0x2e,0x64,0xb2,0x5d,0xbc,0xb2,0xb4,0x83,
+/* 0x004300 */ 0xff,0xca,0x79,0xff,0x17,0x15,0x54,0x9b,0xa6,0x85,0x46,0x24,0xe6,0xe6,0xbf,0x3e,
+/* 0x004310 */ 0x2d,0xff,0x6b,0x40,0x0f,0x19,0x44,0x18,0xd7,0x0c,0x66,0x24,0xce,0xd8,0xf8,0xaf,
+/* 0x004320 */ 0xdc,0xf9,0x5f,0x78,0x93,0xfe,0x5c,0x73,0x81,0x83,0xbf,0x78,0x35,0x17,0xa3,0x31,
+/* 0x004330 */ 0x96,0xbb,0xfe,0xe1,0x20,0x0d,0x3f,0x6b,0x92,0xd2,0x32,0xcb,0x72,0x3c,0xe7,0x84,
+/* 0x004340 */ 0xc1,0x7f,0xa1,0x6c,0xf5,0x0f,0x3b,0x00,0x64,0x05,0xec,0x1a,0xfc,0x70,0xba,0x4d,
+/* 0x004350 */ 0x06,0xff,0x65,0xd6,0xdf,0x60,0xd4,0x0f,0xaf,0x7f,0xa8,0x0d,0x29,0x61,0x49,0xb2,
+/* 0x004360 */ 0xf7,0xaa,0x96,0x9e,0xc8,0x63,0x09,0x6f,0xf3,0xfd,0xeb,0xb1,0xef,0x67,0xe9,0x67,
+/* 0x004370 */ 0x92,0x93,0x85,0xc9,0x14,0xde,0xce,0x5d,0xff,0x90,0xe6,0x7f,0x2d,0xa6,0x82,0x8d,
+/* 0x004380 */ 0xb2,0x49,0x8d,0x97,0x58,0xe7,0x68,0x7a,0x29,0x6b,0xfd,0x0d,0x1b,0x10,0xf3,0x90,
+/* 0x004390 */ 0xeb,0x6c,0x9a,0xd3,0x19,0x36,0x69,0xfc,0x57,0xe6,0xfd,0x5f,0x79,0xf4,0xb6,0xe5,
+/* 0x0043a0 */ 0x80,0xfa,0xa8,0x9c,0xd7,0x99,0x6a,0xb2,0x72,0xc4,0x76,0x72,0x22,0xac,0x33,0x33,
+/* 0x0043b0 */ 0xff,0x2b,0x7d,0x28,0x1b,0x47,0x5d,0x8f,0xa0,0x7b,0xd3,0x46,0xf9,0x91,0x9c,0xbc,
+/* 0x0043c0 */ 0xe7,0xa7,0xdc,0xff,0x85,0x1f,0x41,0x75,0x4b,0x73,0xf5,0x0f,0xb2,0xf5,0x0f,0xfd,
+/* 0x0043d0 */ 0x0e,0x8d,0x78,0x3f,0x47,0xfc,0xa1,0x39,0x0b,0xd2,0x2b,0x2b,0x0e,0xe6,0xe6,0xbf,
+/* 0x0043e0 */ 0x8e,0xf0,0x75,0x63,0x8d,0xac,0xc9,0x99,0x73,0x70,0xc8,0xba,0xa4,0xdb,0xd4,0x8c,
+/* 0x0043f0 */ 0xe5,0xfa,0x7e,0x4c,0xfe,0xeb,0xc1,0xb4,0x94,0xae,0x15,0xfc,0x6e,0xe5,0x6a,0x6d,
+/* 0x004400 */ 0x85,0x83,0xed,0xb2,0x25,0x82,0xd5,0x39,0xf3,0xbf,0xd8,0xe7,0x4c,0xf9,0xaf,0x6c,
+/* 0x004410 */ 0x87,0xe7,0xad,0xe5,0xc9,0x7c,0x87,0x26,0xe7,0xfe,0x75,0x2c,0x3b,0xff,0xc5,0x04,
+/* 0x004420 */ 0xf2,0x63,0x54,0x79,0xc4,0x63,0x80,0x2c,0xaa,0x19,0xb6,0x27,0x82,0x2d,0x70,0xf2,
+/* 0x004430 */ 0x5f,0xfc,0x7e,0x46,0xa5,0x2b,0xb3,0xfe,0xe1,0x89,0xd8,0xaf,0xc9,0x12,0xcd,0xa6,
+/* 0x004440 */ 0x81,0xd5,0xf8,0x4f,0xb9,0x88,0x30,0x93,0xff,0xba,0x21,0xc3,0x4f,0x10,0xde,0x57,
+/* 0x004450 */ 0xc7,0x5c,0xb9,0x69,0x14,0x68,0xb2,0x87,0x64,0x1c,0x31,0xce,0x9f,0x1f,0x4c,0xbf,
+/* 0x004460 */ 0xe4,0x8b,0xd6,0xc7,0x1e,0x8e,0xff,0xd3,0xa8,0xdd,0x3f,0x3c,0x04,0x6e,0xe1,0x62,
+/* 0x004470 */ 0xcb,0xc6,0x56,0x7f,0xc3,0x3a,0x9f,0xdf,0x9d,0x5e,0xbf,0xd7,0x47,0xab,0xf5,0xd2,
+/* 0x004480 */ 0x6a,0x51,0xd2,0xb7,0x52,0x1a,0xb3,0x6c,0x94,0x90,0xb9,0x7f,0xbd,0x9b,0xaa,0xbf,
+/* 0x004490 */ 0x91,0xc9,0x6d,0x6d,0x44,0x6b,0x5d,0x76,0x22,0x6c,0x18,0x3d,0x99,0xea,0xde,0x05,
+/* 0x0044a0 */ 0xfa,0x0a,0xdb,0xd5,0xcc,0x06,0xff,0xb5,0x3a,0xe3,0xfe,0x65,0x10,0x5c,0x84,0xc7,
+/* 0x0044b0 */ 0xc6,0xa7,0x34,0x66,0xdc,0x4e,0xe6,0x66,0x77,0x3a,0x4b,0xfd,0x0d,0x83,0xf6,0x9a,
+/* 0x0044c0 */ 0xc6,0xc7,0x61,0x0e,0x06,0x4d,0xd2,0xc4,0xc3,0xdd,0xc2,0x3a,0x4e,0xa3,0x1c,0x48,
+/* 0x0044d0 */ 0xf3,0x0f,0xad,0xf8,0xc3,0xdd,0x99,0x6c,0x97,0x78,0x81,0xc7,0x82,0x7e,0x16,0xfe,
+/* 0x0044e0 */ 0x2b,0x69,0xd6,0xdf,0xc8,0xf4,0x5b,0x28,0x0c,0xac,0xd1,0x0a,0x3e,0x23,0xff,0xc5,
+/* 0x0044f0 */ 0xe3,0x0f,0x1f,0xcc,0x56,0x1f,0x5b,0xec,0x02,0x14,0x99,0x83,0xae,0x7a,0x2f,0x07,
+/* 0x004500 */ 0xff,0x35,0x23,0xf3,0x39,0xc3,0x68,0x07,0xf2,0x2f,0xff,0x74,0xfa,0x2c,0xf5,0x1c,
+/* 0x004510 */ 0xa3,0xfe,0x61,0xd6,0x79,0x1a,0x87,0xc1,0xcc,0x41,0x53,0x3e,0x9e,0xe6,0x81,0x18,
+/* 0x004520 */ 0x7c,0x37,0x29,0x58,0x2b,0xa5,0x77,0xdd,0x34,0x78,0xef,0xeb,0x50,0x81,0x6d,0x04,
+/* 0x004530 */ 0x3f,0xa5,0x9f,0x75,0x6c,0xf0,0x5f,0xd9,0xfa,0x90,0x86,0x89,0x7d,0x36,0xfe,0xcb,
+/* 0x004540 */ 0x19,0x7f,0xb8,0x98,0x83,0xac,0xe3,0x94,0x3d,0xe9,0x13,0x6e,0xd8,0x75,0xd5,0x5f,
+/* 0x004550 */ 0xaf,0x31,0xe2,0xf2,0x24,0xbd,0xe4,0x6b,0x42,0x38,0x8f,0x3e,0x50,0x16,0x46,0x01,
+/* 0x004560 */ 0x29,0x9c,0x43,0x2c,0xa2,0x75,0x48,0x08,0xa1,0x37,0x50,0x0d,0xf2,0xc2,0x9f,0x68,
+/* 0x004570 */ 0xd6,0xdf,0x18,0x97,0x2d,0x90,0x75,0x12,0x7f,0x51,0x2f,0x78,0xb6,0xb8,0x12,0xf5,
+/* 0x004580 */ 0xb5,0xb2,0xb2,0xf3,0xbf,0x00,0xd8,0xe5,0x47,0x81,0x04,0x7e,0x53,0x3c,0xd9,0x5c,
+/* 0x004590 */ 0xa1,0xd2,0xfa,0x87,0xe2,0xcf,0xf4,0xd2,0x01,0x89,0x00,0xe0,0x8d,0xd1,0xfa,0xbd,
+/* 0x0045a0 */ 0x3b,0xb0,0x79,0xff,0x32,0xc3,0x5f,0x3c,0x66,0x89,0x1e,0xa7,0xeb,0x5d,0x8a,0x9b,
+/* 0x0045b0 */ 0xf1,0x8c,0x64,0x45,0x08,0x6d,0xc1,0xdd,0xd0,0xe1,0xdd,0x21,0x98,0x44,0x8f,0x47,
+/* 0x0045c0 */ 0x2b,0x96,0xf3,0x78,0x6c,0x55,0xd1,0xf3,0x15,0xac,0xa1,0x6d,0x94,0xb2,0x41,0x56,
+/* 0x0045d0 */ 0xfd,0xc3,0x59,0xe3,0xae,0x14,0xc8,0xc2,0x6f,0x83,0x4d,0x6c,0x2d,0xc5,0x7a,0x9a,
+/* 0x0045e0 */ 0x51,0xe5,0xb2,0x47,0x91,0x12,0x79,0x49,0xe5,0x51,0x54,0xb1,0xb4,0x2b,0x51,0x34,
+/* 0x0045f0 */ 0xce,0x6e,0x04,0x93,0x02,0xb1,0x5d,0xca,0x66,0x7a,0x10,0x1d,0x37,0xeb,0xcf,0xbb,
+/* 0x004600 */ 0x66,0xd8,0x62,0x0b,0x8f,0x03,0xcc,0x59,0xf9,0xcf,0x65,0x0a,0xba,0x4c,0x22,0xda,
+/* 0x004610 */ 0x56,0x7a,0xc2,0x70,0x34,0x19,0x6e,0xab,0x9e,0x10,0x5e,0x84,0xcf,0xaf,0x44,0x0d,
+/* 0x004620 */ 0x4e,0x00,0x34,0xfb,0x1e,0xf4,0xcf,0x57,0xb6,0x08,0x3b,0xa4,0xd7,0x93,0x7d,0xc9,
+/* 0x004630 */ 0x60,0xbf,0x75,0xff,0xf2,0xac,0x83,0xa2,0xd1,0xf3,0xc3,0xe8,0x4f,0xae,0xc5,0x34,
+/* 0x004640 */ 0xbc,0xf3,0x20,0xbf,0xdb,0x2b,0x04,0xab,0xcd,0x15,0x75,0x89,0x0a,0x4d,0x9f,0xa4,
+/* 0x004650 */ 0x72,0xc4,0xfe,0x07,0x2d,0x53,0xa9,0x2f,0xbb,0x1f,0x35,0xc4,0x61,0x41,0xdb,0x9f,
+/* 0x004660 */ 0x35,0xff,0xeb,0x78,0x5e,0x44,0x5f,0x19,0xf7,0x04,0xd1,0x51,0xc2,0xee,0x93,0x0a,
+/* 0x004670 */ 0xba,0x26,0x5b,0xc3,0x6d,0x95,0xf4,0x30,0xe4,0x3d,0x54,0xa4,0x7b,0x01,0x9a,0x49,
+/* 0x004680 */ 0xd7,0x70,0x48,0x07,0x57,0xf6,0x5f,0xd1,0x85,0x68,0x48,0x0f,0x86,0x3c,0xa9,0xfb,
+/* 0x004690 */ 0xbf,0x64,0x0b,0x64,0xfd,0x81,0x9e,0x8a,0x00,0xc6,0xc7,0xdd,0x47,0xfc,0xa8,0x60,
+/* 0x0046a0 */ 0xc2,0x5d,0x8f,0xf6,0x74,0x82,0x83,0x37,0x91,0xf7,0x16,0xda,0x0a,0xf8,0xb4,0x60,
+/* 0x0046b0 */ 0x02,0x8f,0xc3,0x0e,0x52,0x7b,0x51,0xd2,0xe8,0x91,0x45,0xd4,0xff,0x66,0x41,0xc2,
+/* 0x0046c0 */ 0xac,0xbf,0xa1,0xb3,0xfa,0x51,0x6b,0xe9,0x61,0xd1,0xb0,0xab,0x43,0xac,0x1a,0x60,
+/* 0x0046d0 */ 0xc7,0x86,0xb1,0x66,0x85,0x48,0x21,0x70,0xfa,0xfa,0x88,0x42,0xbe,0x1c,0xf2,0x1f,
+/* 0x0046e0 */ 0x25,0x4f,0xa3,0x35,0xb0,0xb2,0x15,0xc1,0xd6,0xe6,0x52,0x92,0xee,0xd9,0x31,0xf0,
+/* 0x0046f0 */ 0x37,0x88,0xd6,0x2b,0x29,0x66,0xfd,0x0d,0x47,0xfd,0xf9,0x1f,0xc7,0x2b,0x47,0x01,
+/* 0x004700 */ 0x17,0xdc,0xa9,0x6e,0x00,0x97,0xf9,0xe8,0x77,0xf1,0x3c,0xe9,0x39,0x52,0xba,0x4b,
+/* 0x004710 */ 0xfa,0x2e,0x3e,0x05,0xf8,0xeb,0x8b,0xab,0x69,0xa4,0x9c,0xcc,0xa0,0xd9,0xd7,0xf0,
+/* 0x004720 */ 0x75,0xf0,0x53,0xa5,0x1a,0x68,0x4a,0x0c,0xfe,0x8b,0xd5,0x3f,0x0c,0xea,0x05,0x14,
+/* 0x004730 */ 0x52,0x75,0x90,0xc8,0xa8,0xf7,0xf9,0x32,0xaf,0xfa,0x02,0x0a,0xf5,0x7a,0x17,0x0b,
+/* 0x004740 */ 0x74,0x0a,0x87,0x3b,0x0b,0x16,0x03,0x58,0x7b,0x4f,0x5b,0xd4,0xe4,0xa5,0xf9,0x5f,
+/* 0x004750 */ 0x7b,0xb5,0xd0,0x91,0xc2,0xb9,0x42,0x27,0xfc,0x54,0x58,0x0f,0x2a,0xa9,0xfa,0x1b,
+/* 0x004760 */ 0xa9,0x75,0x4c,0x99,0x92,0x23,0xc3,0xbe,0x0f,0x79,0x6d,0xc3,0x4e,0xdf,0x87,0x1d,
+/* 0x004770 */ 0xd3,0xea,0x27,0xe8,0x30,0x08,0xb0,0xb9,0x5c,0x93,0xe7,0x35,0x71,0x0d,0x25,0xcb,
+/* 0x004780 */ 0xbe,0x45,0x53,0x2f,0xe5,0x86,0xc1,0xea,0x0f,0xb3,0xe0,0xaf,0xf7,0xd1,0x7b,0xd1,
+/* 0x004790 */ 0xbe,0x63,0xde,0x84,0xc7,0x8f,0x8e,0xa0,0x04,0x01,0xa1,0x4a,0x3d,0x82,0xc2,0xa8,
+/* 0x0047a0 */ 0x60,0xbf,0x10,0x40,0xc7,0x95,0xb0,0xea,0x0d,0x95,0x05,0xf1,0xc9,0xd2,0xf0,0x90,
+/* 0x0047b0 */ 0x0f,0xc6,0xd4,0xc5,0xa8,0xcc,0x83,0x1d,0x46,0xfd,0xc3,0xa8,0x9c,0xda,0x77,0xd4,
+/* 0x0047c0 */ 0x7d,0xb2,0x32,0x52,0x40,0x73,0xbb,0x36,0xa0,0x52,0xe2,0x5d,0x07,0x42,0x27,0x2a,
+/* 0x0047d0 */ 0xd5,0xbb,0xd6,0x09,0x32,0xde,0xd8,0x5a,0x36,0x20,0xad,0xbb,0xfb,0x06,0xf4,0xbb,
+/* 0x0047e0 */ 0xbf,0x2e,0x3d,0xe5,0x69,0xc5,0x37,0x90,0xbd,0xd0,0x04,0x7b,0x53,0x91,0x85,0xbf,
+/* 0x0047f0 */ 0x66,0x99,0xfd,0x4c,0x73,0xe8,0xe8,0xd5,0xd5,0x85,0xca,0xcf,0x78,0x1f,0x16,0x92,
+/* 0x004800 */ 0x07,0xe9,0x35,0x37,0xeb,0xf1,0x5c,0xe8,0xe7,0xf9,0x34,0x85,0x7c,0x1e,0xf4,0x61,
+/* 0x004810 */ 0xe9,0x98,0x67,0x15,0x9e,0xa7,0xef,0x8b,0x69,0x94,0x23,0x53,0x4c,0xfe,0xcb,0xb6,
+/* 0x004820 */ 0x25,0x1d,0xc0,0x51,0xfd,0x91,0x45,0xd8,0x87,0x1e,0x45,0x0a,0xcd,0xf7,0xf4,0xa2,
+/* 0x004830 */ 0xf6,0x56,0xff,0xe9,0x40,0x08,0xab,0xf4,0xde,0xb7,0x41,0x96,0xd2,0x6e,0xe4,0x69,
+/* 0x004840 */ 0xd2,0x21,0xf0,0x8f,0xc2,0x73,0xc2,0x59,0xf1,0x57,0x98,0x48,0xef,0x08,0x8b,0xe1,
+/* 0x004850 */ 0x13,0x58,0xd8,0x5b,0xa0,0x09,0x01,0x40,0x0f,0x35,0xf1,0xa0,0x26,0xdc,0x06,0x88,
+/* 0x004860 */ 0xac,0x96,0x04,0xd9,0xfd,0xcb,0x62,0x98,0x5e,0x1f,0x5f,0x47,0x2e,0xab,0xe1,0x78,
+/* 0x004870 */ 0x70,0xb7,0xa7,0x2e,0x3b,0xfe,0x72,0x71,0x2f,0x0e,0xb3,0xdc,0x2e,0x5a,0x69,0xed,
+/* 0x004880 */ 0x10,0x2d,0x44,0xbf,0x93,0x25,0x82,0xf1,0x26,0x0e,0xcd,0xde,0x44,0x93,0x25,0x60,
+/* 0x004890 */ 0xd3,0x9e,0xa3,0xfe,0x46,0x78,0xa9,0x57,0x2e,0xa6,0x45,0xe6,0xc3,0xea,0x96,0x78,
+/* 0x0048a0 */ 0x31,0xab,0xde,0xd0,0x5a,0x10,0x2f,0x1b,0x55,0x06,0x5c,0x30,0x5e,0xb2,0x40,0xeb,
+/* 0x0048b0 */ 0xc6,0xd3,0x44,0x30,0x7a,0x23,0x18,0x0e,0x37,0x79,0x2d,0xfc,0x75,0xc4,0x89,0xbf,
+/* 0x0048c0 */ 0x7a,0xd4,0x9f,0xc7,0x8b,0x00,0x49,0x61,0x3f,0xac,0x2d,0xc2,0x6a,0xb4,0x47,0xa9,
+/* 0x0048d0 */ 0xa5,0x8b,0xcc,0x8b,0x78,0x13,0xfc,0xf8,0x72,0x1a,0x3f,0xd6,0xae,0x3e,0xad,0x06,
+/* 0x0048e0 */ 0x1e,0xc3,0x37,0xa3,0x3d,0xaa,0x3f,0x9a,0x23,0xff,0x8b,0xe6,0x64,0x75,0xc5,0x71,
+/* 0x0048f0 */ 0xb9,0x8b,0x56,0x9b,0xcf,0xa7,0x55,0xeb,0xf7,0xcb,0xec,0x22,0xb0,0xb7,0xd0,0x26,
+/* 0x004900 */ 0xf6,0x64,0x5c,0x8e,0x9e,0x42,0xbb,0x9a,0xf2,0x67,0x51,0x1e,0x44,0x2d,0x6b,0xad,
+/* 0x004910 */ 0x18,0xb1,0xf1,0x5f,0x6a,0x0a,0x17,0xc8,0x4a,0x93,0x9b,0xa5,0x7d,0xc9,0x4f,0xa8,
+/* 0x004920 */ 0x0b,0xe8,0xfd,0x5f,0xfb,0x11,0x00,0x31,0xca,0x76,0xb5,0x07,0xca,0x55,0x77,0x51,
+/* 0x004930 */ 0xac,0x53,0xea,0x08,0x04,0xff,0x3e,0xbf,0x04,0x8b,0xff,0xb2,0x3f,0x50,0xba,0x3c,
+/* 0x004940 */ 0x70,0x47,0xcc,0xc0,0x5f,0x93,0x05,0x77,0xa5,0x40,0xd6,0xc4,0x1a,0xff,0xf5,0xde,
+/* 0x004950 */ 0x0d,0x3d,0xf4,0xb6,0xaf,0x5a,0x54,0xb0,0x21,0x46,0xaf,0x5d,0x0e,0x77,0xd1,0x6b,
+/* 0x004960 */ 0xbf,0xc0,0xa3,0x86,0x15,0x29,0x36,0x53,0x41,0x94,0xff,0x2a,0x40,0x82,0x42,0x26,
+/* 0x004970 */ 0x95,0x3e,0xc9,0x7b,0xc4,0x96,0xff,0x65,0xa3,0x48,0x94,0x43,0xcd,0xbe,0x75,0xf4,
+/* 0x004980 */ 0xfe,0xe5,0xd2,0xc5,0x7a,0x61,0x11,0xcd,0x4f,0x41,0x0d,0xcb,0x7d,0x45,0x1d,0xaf,
+/* 0x004990 */ 0x88,0x1f,0x56,0x34,0xd0,0xfc,0xaf,0x41,0xed,0x12,0x7a,0x7e,0x79,0xe1,0xa9,0x8e,
+/* 0x0049a0 */ 0x8b,0x34,0x11,0x6c,0xb9,0x0d,0x7f,0xcd,0x79,0xcb,0x0e,0x22,0xe2,0x6a,0x50,0x86,
+/* 0x0049b0 */ 0xde,0xa0,0xf9,0x5f,0xbe,0xd9,0xc2,0x4d,0xe4,0x45,0x54,0xf3,0xf2,0xf7,0x5f,0x9d,
+/* 0x0049c0 */ 0x79,0x11,0x0d,0xa0,0x90,0xba,0x85,0xde,0xec,0xfc,0xbe,0xf4,0x4f,0x94,0x08,0xfb,
+/* 0x0049d0 */ 0x06,0xad,0xb7,0xcc,0xf8,0x2f,0x6c,0xd6,0xdf,0x90,0x6c,0xb0,0xcb,0x8f,0xba,0x08,
+/* 0x0049e0 */ 0x7e,0x13,0xf5,0x06,0x2a,0x50,0xfe,0x43,0xfe,0x9d,0x54,0xe3,0xf5,0x6e,0xa2,0x4d,
+/* 0x0049f0 */ 0x72,0x85,0xbb,0x80,0x32,0xaa,0x5d,0x6a,0xd5,0x22,0x69,0x33,0x2e,0x55,0xfb,0xb5,
+/* 0x004a00 */ 0x9e,0x9f,0xc3,0x46,0x76,0x02,0x99,0xf8,0x8b,0x98,0xfd,0xec,0x9d,0x45,0xb7,0x24,
+/* 0x004a10 */ 0x86,0xb6,0x60,0xda,0x74,0x5f,0x87,0x45,0x75,0x93,0x88,0xd6,0x04,0x64,0xff,0x28,
+/* 0x004a20 */ 0x7a,0x38,0xa0,0x34,0x4b,0xb3,0x19,0xfe,0x0a,0x7e,0x2d,0x5f,0x8e,0x01,0x3a,0x96,
+/* 0x004a30 */ 0x14,0x1b,0xff,0x55,0x32,0x6b,0x97,0xcb,0x06,0xb2,0xfc,0xfc,0xda,0xaf,0xa7,0xf4,
+/* 0x004a40 */ 0x0a,0x18,0x77,0x7f,0x39,0xda,0xe4,0xea,0x61,0xf9,0x5f,0xe8,0x11,0x57,0x05,0x13,
+/* 0x004a50 */ 0xc4,0x4d,0xae,0x2a,0x35,0x5f,0x5e,0x5e,0x2e,0xee,0xe7,0xc6,0x26,0xfe,0xb2,0xc7,
+/* 0x004a60 */ 0x0d,0xfe,0x06,0xde,0xc7,0xbb,0x7d,0xd9,0xa8,0x72,0x14,0x3e,0x63,0x4a,0x72,0xe1,
+/* 0x004a70 */ 0xa3,0x2a,0xbd,0xd8,0x0e,0x5e,0xe3,0x55,0x44,0x19,0x31,0x81,0xe6,0x91,0x55,0xa9,
+/* 0x004a80 */ 0x95,0x71,0x57,0x39,0xb9,0x24,0xd7,0xb4,0x06,0xe3,0xc2,0x58,0x67,0x3a,0xff,0x45,
+/* 0x004a90 */ 0xcb,0x6e,0xd0,0x22,0x87,0xc2,0x9f,0xa8,0x66,0x75,0x01,0x83,0x5d,0xf1,0xc8,0x1d,
+/* 0x004aa0 */ 0x85,0x46,0x45,0x0e,0x5a,0x02,0x85,0x55,0xaa,0x69,0x2c,0x7c,0xe4,0x05,0x1a,0xbb,
+/* 0x004ab0 */ 0x5b,0xaf,0xa6,0xf2,0xbf,0x2a,0x52,0xfc,0x97,0xce,0x72,0x03,0xb7,0x74,0xd2,0xb2,
+/* 0x004ac0 */ 0x87,0x31,0x7e,0x5b,0x81,0x3c,0x44,0x22,0xe8,0x76,0x52,0xac,0xad,0x9e,0x70,0x31,
+/* 0x004ad0 */ 0xda,0x4b,0x41,0xa7,0x5d,0x21,0xce,0x7f,0xe9,0xa8,0xcf,0x7e,0xff,0x97,0x68,0xe2,
+/* 0x004ae0 */ 0x2f,0xa1,0x17,0x9d,0x13,0xcb,0x08,0xbd,0xe4,0x4b,0x3c,0x44,0x8b,0x1c,0x26,0x71,
+/* 0x004af0 */ 0xa0,0x68,0x83,0x54,0xd6,0x1b,0x78,0x57,0x78,0x1e,0x1d,0x02,0x8f,0x51,0xa2,0xf5,
+/* 0x004b00 */ 0x0f,0x1f,0x42,0x65,0xc4,0x9d,0x04,0xfc,0xf5,0x06,0x2a,0xeb,0x94,0x52,0xf5,0x0f,
+/* 0x004b10 */ 0x3b,0x1d,0xe7,0x87,0x8a,0xde,0x15,0x62,0x31,0x30,0x2c,0x67,0x1f,0x36,0x32,0x54,
+/* 0x004b20 */ 0xb5,0x14,0xfc,0xf0,0x5f,0xd3,0x55,0x4b,0x2f,0x31,0xd6,0xb1,0x11,0xea,0x78,0x94,
+/* 0x004b30 */ 0x74,0x20,0x58,0x2a,0x2d,0xfc,0xa5,0x20,0xab,0xd4,0xc3,0x4f,0x25,0x7a,0x77,0xb0,
+/* 0x004b40 */ 0xb4,0xbe,0xf1,0x06,0xf5,0x59,0xaa,0xf9,0x36,0xf6,0xba,0x36,0xa0,0x9d,0x4b,0x59,
+/* 0x004b50 */ 0x12,0xee,0xbe,0x50,0xd9,0x50,0xc9,0x7a,0x7c,0x83,0xbe,0xb1,0xab,0x54,0x75,0x47,
+/* 0x004b60 */ 0xe9,0x66,0x87,0x4a,0x47,0x02,0x56,0xfe,0x97,0x22,0xdd,0x49,0x0c,0x24,0x75,0x06,
+/* 0x004b70 */ 0x5d,0x98,0x58,0x38,0xe9,0x5d,0xcf,0xd2,0xbe,0x2a,0xa9,0x66,0x1e,0x7a,0x89,0x34,
+/* 0x004b80 */ 0x68,0x55,0xeb,0x85,0x57,0x40,0xb3,0xf0,0xc3,0xae,0xf5,0x42,0x04,0x9d,0xea,0x0c,
+/* 0x004b90 */ 0x25,0xbd,0xcd,0xc2,0x09,0xf4,0x6b,0x52,0x93,0x0c,0xae,0x17,0xde,0xe5,0x7e,0xa6,
+/* 0x004ba0 */ 0x74,0xe3,0x41,0x93,0xff,0xa2,0x55,0xc2,0xaa,0x8e,0xcd,0x7c,0x06,0xbc,0x8d,0xef,
+/* 0x004bb0 */ 0x9a,0x45,0x36,0x2e,0xa3,0x43,0x34,0xee,0x42,0xa3,0x25,0x5e,0xf5,0xea,0x90,0x60,
+/* 0x004bc0 */ 0x50,0x2d,0xf4,0x8e,0xb0,0x0b,0x2e,0x96,0xd4,0x60,0xe0,0x2f,0xfd,0x87,0x57,0x03,
+/* 0x004bd0 */ 0x36,0xfc,0x25,0x8c,0x7a,0x7f,0xd5,0x11,0x91,0x4e,0x10,0xf8,0xa5,0xfb,0x85,0xab,
+/* 0x004be0 */ 0xf8,0x24,0x69,0xb8,0x0b,0xdc,0xc2,0x26,0xfd,0xf8,0xb6,0x9a,0x31,0xaa,0x41,0x17,
+/* 0x004bf0 */ 0xe2,0x35,0x49,0xdf,0x1a,0x56,0x88,0xa3,0x21,0xea,0xbd,0x64,0x9e,0xcf,0x8f,0x7d,
+/* 0x004c00 */ 0xce,0x8e,0x9b,0x60,0xdf,0x29,0xb8,0x14,0xab,0x87,0x6f,0xaa,0x34,0xe9,0x5d,0x04,
+/* 0x004c10 */ 0x9a,0x07,0xa5,0xea,0x26,0x69,0x8f,0xf0,0x57,0x3a,0x6c,0x37,0xc7,0xa4,0x45,0x02,
+/* 0x004c20 */ 0x0d,0xdd,0xdc,0xe9,0xf2,0x28,0x6e,0x86,0x6a,0x9b,0xa5,0x36,0xf3,0x9c,0xed,0x6b,
+/* 0x004c30 */ 0x4e,0xfc,0x55,0xaa,0x0f,0xb5,0xf9,0xd9,0x3e,0x38,0x94,0x6f,0x30,0x8f,0x18,0xfa,
+/* 0x004c40 */ 0xf9,0x66,0x40,0x64,0x65,0xc3,0x25,0x54,0x73,0x48,0x2e,0xd5,0x3d,0x3a,0x2d,0xc4,
+/* 0x004c50 */ 0x21,0x55,0xea,0xcd,0x6d,0x45,0xaf,0x98,0xf5,0xe7,0xc7,0xed,0xe3,0xae,0xe9,0xf9,
+/* 0x004c60 */ 0xb0,0x7f,0x11,0xcd,0x18,0x5c,0x14,0x23,0xc1,0x3e,0x89,0xef,0x5f,0x38,0x19,0xa0,
+/* 0x004c70 */ 0xf8,0x2b,0x2c,0x2a,0xc4,0x83,0x70,0x01,0x0f,0x56,0xbc,0x19,0x6f,0xe6,0xeb,0x7c,
+/* 0x004c80 */ 0x72,0xce,0x74,0xca,0x1f,0xbb,0x86,0xca,0xe8,0x71,0x7a,0x03,0xcd,0xf6,0x1a,0x29,
+/* 0x004c90 */ 0xa0,0x07,0xb6,0xc7,0x48,0x55,0xe2,0x86,0x84,0x50,0x85,0x4f,0xa2,0x1f,0x50,0xda,
+/* 0x004ca0 */ 0x6b,0x1a,0x9c,0xe6,0x90,0xee,0x8b,0xaf,0xf8,0x26,0xba,0xd0,0xf9,0x80,0x0e,0x18,
+/* 0x004cb0 */ 0xcd,0xf8,0xbb,0x88,0xcb,0x81,0x97,0xeb,0xf5,0x16,0xea,0xc0,0x5c,0x96,0x23,0x47,
+/* 0x004cc0 */ 0xcc,0x4c,0x7f,0x3a,0x5e,0xef,0xd9,0x31,0x5a,0xc3,0x52,0xdf,0x69,0x61,0x58,0xbe,
+/* 0x004cd0 */ 0xa4,0xb2,0x73,0x63,0x83,0xff,0x1a,0x00,0xfc,0xc5,0xaa,0x73,0xf3,0x1c,0x16,0x70,
+/* 0x004ce0 */ 0x21,0x26,0x56,0xd4,0xa3,0x17,0xd5,0x1a,0x5a,0x76,0x23,0x08,0x9f,0xc0,0x42,0x02,
+/* 0x004cf0 */ 0x5f,0xd4,0x22,0x68,0xaa,0x81,0xa6,0x32,0xea,0x82,0xd6,0xb4,0xaf,0xd4,0x97,0xd5,
+/* 0x004d00 */ 0x2b,0x27,0xe3,0x54,0xd3,0xd1,0x9a,0xaa,0x7f,0x68,0x3b,0x7b,0xaf,0x05,0xff,0x10,
+/* 0x004d10 */ 0x3e,0xfe,0x87,0xf4,0x1e,0x5a,0x96,0x2d,0x08,0xee,0x4b,0xad,0x26,0x4d,0xe2,0x9f,
+/* 0x004d20 */ 0xa3,0x03,0x79,0xe0,0x1f,0xb2,0x1a,0x02,0xed,0x5f,0xdc,0x56,0xa0,0x6f,0x0e,0xa2,
+/* 0x004d30 */ 0x2d,0xd1,0xb2,0x64,0x73,0x22,0x55,0x7f,0xc3,0xf1,0x1c,0xc6,0x6d,0x05,0xd1,0x0e,
+/* 0x004d40 */ 0xd5,0x6f,0x04,0x9b,0x11,0xbf,0x26,0x6d,0xc3,0xdf,0x30,0x9b,0xe8,0xb5,0x5f,0x20,
+/* 0x004d50 */ 0x60,0x68,0xea,0x46,0x7e,0xbf,0x94,0xaa,0x7f,0x08,0xce,0x64,0xea,0x74,0x37,0x54,
+/* 0x004d60 */ 0x3e,0xb4,0xb9,0x06,0x7b,0x45,0x98,0x83,0xc3,0xd7,0xd3,0x7c,0x73,0xd8,0xbf,0x92,
+/* 0x004d70 */ 0xd2,0xec,0x3c,0xbd,0x73,0xaf,0x37,0xa0,0x6f,0x02,0x1b,0x75,0x4f,0x28,0x80,0x3e,
+/* 0x004d80 */ 0x87,0xb0,0x57,0x6a,0x87,0xc1,0x0d,0x58,0xf7,0x7f,0x11,0x69,0x2d,0xb6,0x72,0x73,
+/* 0x004d90 */ 0xa0,0x13,0xde,0xf0,0x9e,0xdf,0x16,0x04,0x3c,0x11,0xd6,0x7d,0x7b,0xbb,0x83,0xe8,
+/* 0x004da0 */ 0x79,0xbc,0x8e,0x04,0xb7,0x0b,0xab,0xc9,0x01,0x39,0xac,0xaf,0x7c,0x8e,0xf6,0x7c,
+/* 0x004db0 */ 0x20,0x4c,0xbc,0x9d,0x42,0x10,0x33,0x70,0x94,0x98,0x69,0xd4,0x3f,0x4c,0x7e,0xce,
+/* 0x004dc0 */ 0xe2,0x19,0xe1,0x03,0x88,0xce,0x33,0x6f,0x23,0x6a,0x38,0xcd,0x04,0xe3,0xd2,0xde,
+/* 0x004dd0 */ 0x84,0xfa,0x49,0xe9,0x12,0xbd,0xe5,0xc2,0xc6,0x69,0x34,0x5d,0xda,0x40,0xb6,0x1e,
+/* 0x004de0 */ 0xa1,0x02,0xa6,0xf5,0x01,0xca,0x76,0x64,0xbf,0x7f,0x39,0x09,0x0f,0x6c,0x93,0x7e,
+/* 0x004df0 */ 0x99,0xd2,0x2c,0x4e,0x3a,0xe3,0x7b,0x73,0xf0,0x5f,0x24,0x83,0xff,0x9a,0xc4,0x0a,
+/* 0x004e00 */ 0xbf,0xf6,0xcb,0xc1,0x76,0x4d,0x65,0x68,0x9c,0xfc,0x97,0xa3,0xfe,0x86,0x21,0x60,
+/* 0x004e10 */ 0x5a,0xce,0x5a,0x67,0x7c,0xca,0xe3,0x16,0x23,0x96,0xeb,0x3c,0x2a,0xc7,0xfd,0xcb,
+/* 0x004e20 */ 0xac,0x04,0x4a,0x16,0x36,0x27,0xb3,0x36,0x8b,0x93,0xff,0x4a,0xbb,0x7f,0x99,0x0a,
+/* 0x004e30 */ 0x9e,0x75,0xec,0x92,0x65,0x1f,0x0f,0x12,0xab,0xe3,0x19,0x61,0x56,0xa1,0x9b,0x74,
+/* 0x004e40 */ 0xe2,0xc9,0x56,0x7f,0xc3,0x09,0x81,0xdb,0x84,0x09,0xec,0xd0,0x78,0x3e,0x15,0x2f,
+/* 0x004e50 */ 0xe7,0xb8,0x7f,0x99,0x0a,0x51,0xfb,0x0d,0x65,0x75,0x7a,0x56,0xd8,0x9e,0xc1,0x7f,
+/* 0x004e60 */ 0xcd,0x70,0xc6,0xe5,0xd2,0x69,0xa5,0x7c,0xda,0x71,0xc4,0xd4,0x67,0xe4,0xbf,0xdc,
+/* 0x004e70 */ 0x74,0xd5,0x32,0x34,0x2b,0x33,0xa2,0x70,0x33,0xe3,0x72,0xb3,0xd5,0xdf,0x60,0xd5,
+/* 0x004e80 */ 0x0e,0x17,0xe1,0xa2,0x4c,0x46,0xcc,0x95,0x8d,0x23,0x4b,0xe3,0xbf,0x1c,0x94,0xd6,
+/* 0x004e90 */ 0x60,0x61,0x48,0x50,0x55,0x07,0xc9,0xe5,0xc9,0x46,0x7b,0xa5,0xf3,0x5f,0x8e,0xfa,
+/* 0x004ea0 */ 0xf3,0x53,0xb4,0x24,0xd4,0x45,0x56,0xaf,0x32,0x73,0x74,0x22,0x5c,0x48,0x2f,0x86,
+/* 0x004eb0 */ 0x93,0xe3,0xfe,0x65,0x7a,0x29,0xdb,0x44,0x6a,0x98,0x72,0xd2,0x94,0xe9,0xfc,0x57,
+/* 0x004ec0 */ 0xe6,0xfd,0x5f,0xbc,0xc8,0xe1,0x67,0x8e,0x7b,0xcf,0x71,0xff,0x72,0xd2,0xf3,0x3d,
+/* 0x004ed0 */ 0x40,0xb5,0xfb,0xc8,0x02,0xaa,0xc9,0xbc,0x1a,0x2c,0x53,0xc8,0x71,0xff,0x72,0x0e,
+/* 0x004ee0 */ 0x21,0xff,0x3f,0xcd,0x7f,0xd1,0x90,0x42,0x5a,0xb4,0x93,0x6b,0xde,0xcd,0x92,0x1a,
+/* 0x004ef0 */ 0x16,0xf9,0x6c,0xfc,0x17,0xa2,0xd8,0xca,0x79,0x78,0x5e,0xfc,0xff,0x83,0xff,0x2a,
+/* 0x004f00 */ 0x8c,0x67,0x29,0x13,0xf7,0x29,0x42,0xee,0xfa,0x87,0xee,0xcc,0xb2,0x75,0x9f,0x9a,
+/* 0x004f10 */ 0xff,0x95,0x3d,0xfe,0xd0,0x1d,0xa7,0x75,0x3c,0x3e,0xfb,0x73,0xb2,0xc6,0x1f,0x1a,
+/* 0x004f20 */ 0xc5,0xf7,0xd4,0xf6,0x5c,0x6c,0x57,0x6e,0xfe,0xcb,0x79,0xff,0x72,0x04,0x15,0xc6,
+/* 0x004f30 */ 0x3a,0x4a,0x7b,0x72,0xb2,0x5d,0x99,0x42,0x96,0xfa,0x1b,0x56,0x00,0x61,0x46,0xd1,
+/* 0x004f40 */ 0xbc,0xff,0x98,0xff,0x2a,0xc9,0xc2,0xef,0xdc,0xf4,0x19,0x7e,0xdc,0x12,0x52,0xf5,
+/* 0x004f50 */ 0x0f,0xa5,0x74,0x4a,0x6b,0x81,0x9a,0xa6,0xc9,0x92,0xf6,0x95,0x59,0xff,0x30,0xa3,
+/* 0x004f60 */ 0xeb,0xdc,0x69,0x95,0xff,0xd3,0xbb,0x37,0x90,0xd6,0xcf,0x46,0x5d,0x11,0x1b,0xfe,
+/* 0x004f70 */ 0x32,0xf8,0xaf,0x4c,0x26,0xf4,0x53,0x72,0xc4,0x4c,0xfc,0x95,0x85,0x1f,0xfc,0xc2,
+/* 0x004f80 */ 0x7f,0xa6,0x7f,0x72,0xdc,0xbf,0x6c,0xf2,0x95,0x4e,0x4d,0x8e,0x1c,0x31,0x1b,0xfe,
+/* 0x004f90 */ 0x72,0xc4,0x1f,0x1a,0xf3,0xb4,0x14,0xff,0x27,0xbe,0x1f,0x13,0x7f,0xcd,0xc9,0x2c,
+/* 0x004fa0 */ 0x69,0x18,0x48,0x2b,0x7b,0xf8,0xa9,0x42,0xf6,0xfa,0x1b,0x41,0x7e,0x46,0x64,0x79,
+/* 0x004fb0 */ 0x7a,0x39,0x69,0xaf,0x74,0xfe,0x2b,0xcb,0xfd,0xcb,0xee,0x79,0x6a,0x7a,0xd9,0xc3,
+/* 0x004fc0 */ 0xcc,0x72,0x7c,0xff,0x41,0xfd,0x43,0x10,0x16,0x09,0x11,0xc9,0x2a,0x7b,0x98,0x93,
+/* 0x004fd0 */ 0xf6,0xca,0xa8,0x7f,0x58,0x90,0x85,0xff,0xfa,0x0c,0x34,0x4a,0x8a,0xff,0x32,0xea,
+/* 0x004fe0 */ 0x6f,0x7c,0x69,0xba,0x2b,0x9d,0xff,0x6a,0x40,0x27,0xd3,0x34,0x0f,0x64,0x4b,0x04,
+/* 0x004ff0 */ 0xe3,0x42,0xb6,0xfa,0x1b,0x86,0x50,0xcf,0xd9,0xae,0x6c,0xd9,0x5e,0x19,0x82,0xad,
+/* 0x005000 */ 0xfe,0x86,0x9a,0x6e,0x73,0x43,0x46,0x79,0xc9,0xff,0x38,0xff,0x4b,0xc9,0xb2,0x7f,
+/* 0x005010 */ 0xf9,0x72,0x67,0xa9,0x67,0x0a,0xd9,0xef,0x5f,0xa6,0x82,0x2b,0xe2,0xcf,0x99,0x7d,
+/* 0x005020 */ 0x9f,0x99,0x58,0x94,0xaa,0xbf,0x91,0xc6,0x7f,0x85,0x3c,0xff,0xa9,0xfc,0xaf,0x1c,
+/* 0x005030 */ 0xf7,0x2f,0xd3,0xa6,0x1b,0x94,0x93,0x59,0xbd,0xca,0xac,0x0e,0xa7,0xa3,0xfe,0x86,
+/* 0x005040 */ 0xd3,0xe5,0xdb,0x9d,0xc5,0x5b,0x76,0xb8,0x85,0xbe,0xcf,0xc6,0x7f,0x05,0x73,0x47,
+/* 0x005050 */ 0x55,0x65,0xe3,0xbf,0x8c,0xfd,0x2b,0x93,0xff,0xda,0x62,0x9f,0x9e,0x6b,0xb3,0x4c,
+/* 0x005060 */ 0xd8,0x15,0x76,0xfe,0x2b,0x55,0x7f,0x23,0xbd,0xeb,0xea,0xed,0x97,0x7c,0x19,0x4d,
+/* 0x005070 */ 0x07,0x72,0xf5,0xb3,0x59,0x7f,0xa3,0xe0,0xb3,0x90,0x5c,0x69,0x42,0xa1,0x4d,0xf3,
+/* 0x005080 */ 0x4e,0x16,0xfc,0x35,0x15,0x58,0x38,0xec,0x7d,0x93,0xe6,0xeb,0xc5,0xcd,0x69,0x15,
+/* 0x005090 */ 0xba,0x75,0x10,0xf0,0xf2,0x24,0xcc,0xb8,0x7a,0x9d,0xa5,0x5e,0x02,0x5e,0xa6,0x57,
+/* 0x0050a0 */ 0xb1,0x87,0xa4,0x17,0x11,0x2b,0x8d,0x98,0x0d,0x7f,0x3d,0xaf,0xf8,0x87,0x90,0xe6,
+/* 0x0050b0 */ 0x3e,0x24,0x1f,0xc0,0x55,0x67,0xa9,0x46,0xfa,0x20,0x54,0x31,0x04,0x60,0x76,0x0c,
+/* 0x0050c0 */ 0x77,0x2b,0xd5,0x13,0x6e,0x5a,0x9a,0x63,0x3f,0xa5,0xbd,0xa6,0x61,0x2c,0x7e,0x2e,
+/* 0x0050d0 */ 0xf6,0xe8,0xcd,0xd9,0xf1,0xd7,0x9e,0x40,0x72,0xd1,0x6d,0x2e,0x9a,0x67,0x57,0xca,
+/* 0x0050e0 */ 0x2e,0x78,0x85,0xa5,0x52,0x61,0x81,0xd9,0x43,0xa8,0x43,0x0a,0x0e,0xb2,0x93,0x8a,
+/* 0x0050f0 */ 0x04,0x2a,0x77,0x7d,0x79,0x21,0xa6,0x91,0xaf,0xac,0x29,0x2b,0xfe,0xca,0x07,0x4c,
+/* 0x005100 */ 0x4d,0xb0,0xed,0x4b,0xa0,0x61,0x87,0x0a,0xbc,0x0f,0xfb,0x12,0xdc,0x2c,0x07,0x8a,
+/* 0x005110 */ 0x94,0xf7,0xe4,0x27,0x70,0x15,0x8d,0x01,0xa6,0x48,0x3c,0x2b,0xfe,0x52,0xc3,0xa3,
+/* 0x005120 */ 0xde,0x9f,0x0b,0x41,0x9a,0xc4,0x4d,0x13,0x82,0x60,0x28,0xf1,0xb7,0x07,0xbc,0x09,
+/* 0x005130 */ 0x81,0x5e,0x23,0x1e,0x81,0x9f,0x02,0x20,0x36,0xa5,0xd5,0x2a,0x05,0x13,0x9e,0x30,
+/* 0x005140 */ 0x7a,0x59,0x0b,0xeb,0xc1,0xec,0xf8,0xeb,0x2a,0x85,0xc0,0x67,0xe9,0x58,0x48,0x5c,
+/* 0x005150 */ 0x23,0x7d,0xc0,0xab,0x6d,0x98,0x69,0x5f,0xf4,0xec,0x82,0xd2,0x77,0xe0,0xc6,0xe3,
+/* 0x005160 */ 0x6b,0x4b,0x73,0xe2,0xaf,0x0b,0x28,0x4c,0xcb,0xf6,0xee,0x16,0x2f,0xd1,0xb2,0x2d,
+/* 0x005170 */ 0x5c,0x03,0x4d,0xb4,0xf0,0x29,0xbc,0xcf,0xa0,0x97,0x6a,0x2e,0x51,0xbe,0x20,0x71,
+/* 0x005180 */ 0x4f,0x0f,0xf8,0x90,0x61,0x27,0xfe,0xb2,0xf5,0x4f,0x97,0x5f,0xf7,0x12,0x3c,0xcd,
+/* 0x005190 */ 0x4e,0x21,0x0a,0x8d,0x42,0x1c,0xba,0x67,0x47,0x07,0xbd,0x60,0xba,0x32,0x69,0x44,
+/* 0x0051a0 */ 0x24,0xf6,0x10,0xcf,0xa2,0x18,0xdd,0xe3,0xca,0x72,0xe2,0x2f,0x52,0xae,0x2f,0xd0,
+/* 0x0051b0 */ 0xe8,0xc0,0xa1,0x72,0xbd,0x98,0x7f,0xfc,0x55,0xb4,0xec,0x7c,0x90,0xae,0x6c,0x49,
+/* 0x0051c0 */ 0x36,0x5e,0x7b,0x28,0x65,0x1c,0xc1,0x84,0xd7,0x0e,0xcd,0x8e,0xbf,0xf6,0x91,0xf9,
+/* 0x0051d0 */ 0xa3,0xd2,0x1a,0x4a,0xd0,0x90,0xf9,0xb6,0xe2,0xe7,0x93,0xf8,0x4e,0xf2,0xe3,0x78,
+/* 0x0051e0 */ 0xa5,0xce,0x22,0x12,0x7f,0xf5,0x7c,0xa9,0xb2,0x62,0xbd,0x7f,0x1e,0xd9,0xc2,0x0b,
+/* 0x0051f0 */ 0xd1,0xdb,0xf0,0xd7,0x5e,0x13,0x52,0xed,0x27,0xcf,0xe8,0xc1,0x0a,0xe1,0xa1,0xae,
+/* 0x005200 */ 0x4b,0x5a,0xf9,0x18,0xc0,0xae,0x13,0xc4,0x00,0x59,0x37,0x49,0x2f,0x68,0xf5,0xe3,
+/* 0x005210 */ 0x5b,0x28,0xff,0x35,0xa5,0x85,0x68,0xfe,0x57,0x8c,0xe8,0xf4,0x60,0x2a,0x2b,0xfe,
+/* 0x005220 */ 0x6a,0xfa,0x27,0xb4,0x78,0xa0,0x6a,0x80,0x0e,0xae,0x7c,0x3d,0x3d,0x1b,0x34,0x2e,
+/* 0x005230 */ 0xf9,0xa2,0x3c,0xe3,0x94,0x1c,0x39,0x41,0xaf,0x75,0x50,0x2f,0xc9,0xd5,0x83,0xbe,
+/* 0x005240 */ 0x7e,0xe1,0x0c,0x8b,0xba,0xcd,0x8a,0xbf,0x4e,0x50,0x7e,0x39,0x19,0x4c,0xfc,0xcf,
+/* 0x005250 */ 0x4a,0x32,0x80,0x42,0xf4,0xfe,0x2f,0xd0,0xc4,0x8d,0x6a,0x2d,0xef,0x91,0xd0,0x29,
+/* 0x005260 */ 0x6f,0xbf,0x50,0x48,0x87,0x09,0xad,0x4c,0x94,0x4e,0xa0,0x21,0x3e,0xa6,0xd9,0xf0,
+/* 0x005270 */ 0xd7,0x46,0xa4,0xe9,0x52,0x14,0xdf,0xa0,0xff,0x4e,0x64,0xdc,0xd6,0x19,0xb4,0x55,
+/* 0x005280 */ 0x5e,0xc0,0x2b,0x72,0x6c,0x45,0xa5,0x43,0xac,0xfe,0x21,0x08,0x48,0xfa,0x0e,0x3e,
+/* 0x005290 */ 0xcd,0xa8,0xb1,0x1c,0xf8,0x8b,0xdd,0xf6,0xb5,0x1e,0x3f,0xa4,0x7e,0x9f,0x0b,0x80,
+/* 0x0052a0 */ 0x7c,0x35,0xc6,0x76,0x5d,0x45,0x4f,0x92,0x32,0xaa,0x99,0xc7,0x6d,0xee,0xc3,0xa7,
+/* 0x0052b0 */ 0x70,0x27,0xef,0xe7,0x2c,0xf8,0x4b,0xea,0x70,0xc1,0x94,0x11,0x8b,0xb6,0x30,0x92,
+/* 0x0052c0 */ 0x4b,0xe2,0x28,0x3b,0x00,0xdf,0x4f,0xde,0x07,0x7a,0x07,0x32,0x32,0x29,0xba,0xf9,
+/* 0x0052d0 */ 0x71,0xf1,0x51,0xa5,0x8b,0x8f,0x7b,0x1a,0xfe,0xa2,0x45,0xe6,0xf1,0x09,0xa5,0x86,
+/* 0x0052e0 */ 0x78,0xcf,0x2e,0xeb,0x45,0x27,0xe8,0xb5,0x68,0x14,0x64,0xbd,0x86,0xe1,0xeb,0xfd,
+/* 0x0052f0 */ 0x39,0x7c,0xfc,0xef,0xba,0xd8,0x8d,0x60,0x01,0x74,0x42,0xab,0xe9,0x05,0x61,0x4a,
+/* 0x005300 */ 0x39,0xd1,0x1a,0xfe,0x14,0xfc,0x25,0xfb,0x88,0xcb,0x86,0x14,0xc6,0x52,0xf5,0x37,
+/* 0x005310 */ 0xea,0x0d,0x9b,0xf6,0x43,0xe8,0x64,0x67,0xd9,0x59,0x31,0x37,0xfe,0x12,0x3f,0x8c,
+/* 0x005320 */ 0x87,0x69,0xea,0x8a,0x08,0x83,0xb2,0xce,0xac,0x57,0x50,0x4f,0xb3,0xbd,0x38,0x22,
+/* 0x005330 */ 0xe3,0x11,0x89,0x5a,0x58,0x0d,0xee,0x60,0xe4,0x4b,0x38,0x27,0xfe,0x52,0x7b,0xbe,
+/* 0x005340 */ 0xe3,0x89,0xfb,0x77,0xa1,0x4d,0xba,0xad,0x38,0xa1,0x9b,0x16,0x00,0x07,0x24,0xd5,
+/* 0x005350 */ 0xc6,0x23,0x09,0x89,0x5f,0x95,0x4e,0xe1,0x41,0x62,0xdc,0xe4,0x95,0x1d,0x7f,0xf9,
+/* 0x005360 */ 0xa9,0x8b,0x5e,0x8e,0xda,0xed,0xc5,0xc6,0x25,0xca,0xac,0x6d,0x72,0x55,0xad,0xca,
+/* 0x005370 */ 0x37,0x39,0x32,0x69,0x9b,0x51,0xeb,0x3e,0x07,0xfe,0xda,0x2b,0x2b,0x5f,0xf2,0xcc,
+/* 0x005380 */ 0xa2,0xc9,0x47,0x71,0x5e,0xe4,0xd0,0x45,0x0b,0x71,0xb8,0x01,0x91,0x15,0x01,0x22,
+/* 0x005390 */ 0x5b,0xbe,0x80,0x95,0xe6,0xe8,0x85,0xe7,0x14,0xc5,0x06,0x7b,0xda,0x03,0x4a,0x53,
+/* 0x0053a0 */ 0x2e,0xfc,0xb5,0x26,0xfc,0x13,0xdf,0x86,0x0e,0xa5,0x67,0x48,0xed,0x61,0x1a,0x2f,
+/* 0x0053b0 */ 0x2d,0xc4,0xb1,0x85,0x78,0x14,0x1a,0x7f,0x28,0x7d,0xbf,0x93,0xd5,0xdf,0xe8,0x43,
+/* 0x0053c0 */ 0x62,0x4c,0xd0,0x89,0xae,0x84,0xe5,0x1c,0xf8,0xeb,0x23,0xa5,0xa1,0xd9,0x77,0x07,
+/* 0x0053d0 */ 0x08,0x57,0x14,0x56,0x13,0x1e,0x9a,0x02,0x2c,0xed,0x6b,0xbb,0x46,0xaf,0xfd,0x62,
+/* 0x0053e0 */ 0x8c,0xd8,0x95,0xc0,0x12,0x4a,0x7b,0x5d,0xd4,0xae,0x05,0x22,0x2b,0x7d,0xd9,0xeb,
+/* 0x0053f0 */ 0x1f,0x7e,0x84,0xaa,0x55,0x9f,0x5c,0x76,0x33,0xab,0xbf,0xd1,0x12,0x2f,0xbe,0x28,
+/* 0x005400 */ 0x5f,0x5a,0x13,0x8e,0x7a,0xe9,0x8d,0x60,0xef,0xd0,0x6c,0x2f,0x59,0xf8,0xce,0xff,
+/* 0x005410 */ 0xc7,0xd8,0xd5,0x06,0x47,0x71,0xa4,0xe7,0xde,0x99,0x45,0x8c,0xb4,0x23,0xed,0x58,
+/* 0x005420 */ 0x10,0x17,0xe5,0x10,0x3c,0xac,0x04,0xb7,0xe0,0xd5,0x4a,0x48,0x58,0x60,0x21,0x76,
+/* 0x005430 */ 0x07,0x81,0x5d,0x8a,0x50,0x0e,0x25,0x77,0x3f,0x5c,0x95,0x2b,0x4a,0xa9,0x50,0x29,
+/* 0x005440 */ 0xee,0x8a,0x73,0x11,0x7e,0x5c,0xe1,0x8f,0xc2,0x8d,0x56,0x36,0xf2,0x89,0x18,0x61,
+/* 0x005450 */ 0x73,0x65,0xee,0x4c,0x9c,0xb1,0x83,0x73,0x24,0x75,0xa9,0x48,0x08,0x83,0x84,0xef,
+/* 0x005460 */ 0x60,0xc0,0xb2,0x2d,0x83,0x6c,0xf6,0x6c,0xd7,0x15,0x77,0xe6,0xec,0x85,0x53,0x6c,
+/* 0x005470 */ 0x39,0xc8,0xdc,0x02,0x39,0x2c,0x59,0x20,0xa5,0xdf,0xee,0x9e,0xd9,0x9e,0xd9,0x59,
+/* 0x005480 */ 0x91,0x7f,0x5d,0x3d,0xa3,0x91,0xd4,0x3d,0xd3,0xfd,0x3e,0xfd,0xbc,0xcf,0xf3,0x92,
+/* 0x005490 */ 0x4b,0x35,0x46,0xf8,0x77,0xa9,0x55,0xe6,0x7b,0x66,0xed,0xd6,0x32,0x97,0xff,0xbc,
+/* 0x0054a0 */ 0x17,0x6d,0xb5,0x6b,0x50,0x08,0x8c,0xf5,0x18,0xcb,0x97,0x47,0xbb,0xa4,0x3f,0x58,
+/* 0x0054b0 */ 0x5d,0x7a,0x1c,0x29,0x4c,0xf6,0x15,0x01,0x47,0xfa,0x0a,0x7c,0x84,0x19,0xd1,0xbb,
+/* 0x0054c0 */ 0xf0,0x97,0x00,0xa9,0xba,0xb5,0xc8,0x06,0x34,0x28,0x39,0x3d,0x7a,0x1b,0x8c,0xaa,
+/* 0x0054d0 */ 0xf6,0x6a,0x31,0xb5,0x52,0xd9,0x00,0x4b,0x65,0x53,0xb1,0x46,0x1a,0xbb,0x0d,0xbd,
+/* 0x0054e0 */ 0xad,0x44,0x43,0x39,0xfe,0x4b,0x98,0xf7,0x80,0x53,0x65,0x9b,0x9b,0x1c,0xf6,0xa1,
+/* 0x0054f0 */ 0x1f,0x00,0x13,0x3a,0x6a,0x3c,0x47,0x5f,0x00,0xa9,0x52,0x1b,0x0c,0x2e,0x6d,0x0a,
+/* 0x005500 */ 0xf5,0xb4,0x6c,0x01,0x6f,0xe7,0xbc,0xfc,0x43,0x3b,0xab,0xd3,0x4c,0x3c,0x12,0x3e,
+/* 0x005510 */ 0x38,0x6f,0x4b,0xf0,0x3a,0x3a,0x99,0x63,0x78,0x95,0xdf,0x82,0x22,0x0c,0x14,0xe8,
+/* 0x005520 */ 0x94,0xb7,0xc2,0x27,0xe0,0x9d,0xff,0x07,0xf2,0x3e,0xbf,0x00,0x87,0x0f,0xbe,0xf8,
+/* 0x005530 */ 0x4b,0x4b,0xac,0x0b,0xff,0x54,0x16,0x9f,0x0c,0xf5,0x97,0x99,0x0a,0x72,0x17,0x77,
+/* 0x005540 */ 0xe4,0xa8,0x6c,0x68,0xde,0xd4,0x23,0x77,0x62,0xae,0xa6,0xf4,0xf7,0x3f,0xac,0x87,
+/* 0x005550 */ 0xaf,0x52,0xcf,0xb3,0x9d,0xb7,0x68,0x0f,0xe5,0xbf,0xe0,0x5b,0x06,0x69,0x18,0xf0,
+/* 0x005560 */ 0x5f,0x22,0xfe,0x12,0xfd,0xe7,0xa7,0x51,0xc5,0x6b,0x40,0x7b,0x05,0x9e,0xd7,0xe3,
+/* 0x005570 */ 0xb8,0xcc,0x06,0x59,0x65,0x66,0x39,0xe4,0x1f,0x56,0xf7,0x34,0x83,0xff,0xfc,0xa9,
+/* 0x005580 */ 0xe2,0x6a,0x4c,0xd6,0xcc,0x06,0x30,0x5e,0xce,0xc3,0x5f,0xdb,0xec,0x98,0xad,0xd2,
+/* 0x005590 */ 0xda,0xd8,0x2b,0xa9,0xf7,0xa4,0xb0,0x93,0x75,0x16,0xb7,0x8f,0x0d,0xe3,0xbf,0x21,
+/* 0x0055a0 */ 0xfb,0xe0,0x5e,0x12,0xe4,0x80,0x8e,0x35,0x52,0x64,0xa4,0x58,0x96,0x8e,0x1f,0xfe,
+/* 0x0055b0 */ 0xfa,0x39,0x7e,0x15,0x68,0xaf,0x45,0x0a,0xe0,0x82,0x12,0x1a,0xfc,0x53,0xfd,0x17,
+/* 0x0055c0 */ 0xba,0x6d,0xbd,0xa4,0xc5,0xa0,0x40,0xd5,0x21,0x70,0x4a,0xcf,0x28,0xdb,0xef,0x53,
+/* 0x0055d0 */ 0x83,0x7b,0x58,0xa6,0x9c,0x1f,0xfe,0x3a,0x8e,0x1f,0x34,0xc3,0x4f,0xc8,0x64,0x11,
+/* 0x0055e0 */ 0xee,0xb4,0x41,0x56,0x17,0x69,0x7c,0x8f,0x84,0x61,0x20,0x04,0x53,0x9f,0x92,0x5f,
+/* 0x0055f0 */ 0x81,0x9b,0x47,0xd5,0xd5,0xf2,0xbd,0xd2,0x5b,0xe6,0x43,0x99,0x7d,0xa2,0xff,0xbc,
+/* 0x005600 */ 0x50,0xb7,0x14,0x9d,0xc2,0xeb,0x8f,0x55,0x8c,0x20,0xee,0xad,0x41,0xb6,0xa4,0xed,
+/* 0x005610 */ 0xc9,0xcc,0xb7,0x7b,0xe4,0x71,0xe9,0x6a,0x7b,0xc2,0x28,0x85,0x48,0x66,0x12,0xc5,
+/* 0x005620 */ 0x47,0xc2,0xbd,0x21,0x72,0xe9,0xbb,0x3f,0x4a,0x87,0x3d,0xfe,0x87,0x02,0xa4,0xda,
+/* 0x005630 */ 0xf4,0x2b,0x69,0x97,0x41,0x1a,0x97,0x79,0x4f,0x5d,0x46,0x9d,0x94,0xa7,0x8d,0x0b,
+/* 0x005640 */ 0xe9,0xba,0xc3,0xe1,0x49,0x39,0x81,0xee,0xe0,0xc6,0xd1,0xd6,0x89,0x8a,0x04,0x9a,
+/* 0x005650 */ 0xb1,0xea,0x6e,0xa8,0xb3,0xe0,0xaf,0x87,0x50,0x19,0xea,0xef,0x8d,0xb1,0x74,0xc1,
+/* 0x005660 */ 0x13,0xe8,0x01,0x48,0x44,0xbc,0x86,0x53,0x52,0x40,0x0f,0x0d,0xc8,0xad,0x70,0x29,
+/* 0x005670 */ 0xa3,0x6e,0x27,0x03,0x7e,0x9a,0xc4,0x1b,0x8a,0xe0,0x3f,0x2f,0xea,0xa0,0xa1,0xee,
+/* 0x005680 */ 0xdb,0xf6,0x12,0x17,0xf2,0x25,0x1b,0x62,0x5b,0xd1,0x25,0xf4,0x92,0x1c,0x40,0x14,
+/* 0x005690 */ 0x9a,0xbd,0xa1,0x57,0x9f,0x2d,0xae,0x91,0x16,0xea,0x27,0x34,0xba,0x57,0xfa,0xe1,
+/* 0x0056a0 */ 0xaf,0xa3,0xed,0xf1,0x03,0xa1,0x07,0x25,0x57,0x84,0xbf,0x1c,0xca,0xcb,0x8e,0x4b,
+/* 0x0056b0 */ 0x2f,0x42,0xb8,0xd2,0x4b,0x22,0xcf,0xbe,0x74,0x2c,0x13,0xad,0x69,0xda,0x87,0xb9,
+/* 0x0056c0 */ 0xc7,0xd4,0xb0,0x1f,0xfe,0xb2,0x12,0x30,0x50,0x31,0xf4,0x24,0xc3,0x56,0xe3,0x34,
+/* 0x0056d0 */ 0x5b,0x0c,0xe2,0x43,0xf4,0x19,0xec,0xe6,0xc0,0x1c,0x4d,0xe1,0x44,0xa6,0x14,0x8c,
+/* 0x0056e0 */ 0x02,0x66,0x32,0xfd,0x10,0x1f,0xfa,0xe1,0xaf,0x49,0x9c,0xb0,0xf6,0x51,0xfe,0xcb,
+/* 0x0056f0 */ 0x12,0x82,0x7f,0xb2,0x01,0xd1,0x03,0x5b,0x83,0xdd,0xd3,0x9e,0x80,0xc2,0x01,0x93,
+/* 0x005700 */ 0xe8,0xa6,0x5e,0x10,0x7f,0x4d,0xa3,0xa4,0xa4,0xf6,0x9e,0x87,0x34,0x36,0xe7,0x24,
+/* 0x005710 */ 0x39,0x69,0xa9,0x97,0x68,0x46,0x62,0x12,0xab,0x90,0xe1,0x76,0x8b,0x12,0x61,0x50,
+/* 0x005720 */ 0x6a,0x0a,0xad,0x80,0x86,0x1f,0xfe,0x3a,0x89,0xe3,0x7a,0x14,0x70,0xd3,0x55,0x8b,
+/* 0x005730 */ 0xd6,0x7e,0x85,0x68,0x30,0x69,0x29,0x17,0x9b,0x6e,0xa3,0x6e,0xd2,0xdb,0x45,0xde,
+/* 0x005740 */ 0x9f,0xe0,0x49,0xf3,0x55,0x4b,0x19,0xe8,0x58,0x4b,0x0b,0x15,0x29,0x05,0xf0,0x17,
+/* 0x005750 */ 0x01,0x08,0x4a,0x6f,0x79,0x0c,0x3d,0xd7,0x4e,0xbd,0x35,0x18,0xc8,0x52,0xe0,0x81,
+/* 0x005760 */ 0x24,0x0e,0xef,0xa1,0xb2,0x2f,0xe0,0xbf,0x16,0x1c,0x91,0x96,0x1d,0x78,0x99,0x3f,
+/* 0x005770 */ 0xc7,0x07,0x7f,0xf5,0x69,0xdb,0xac,0xe6,0x95,0x52,0xe9,0xb3,0x66,0x73,0xcc,0xd6,
+/* 0x005780 */ 0x25,0x45,0x2d,0x32,0x5f,0x23,0x1d,0x29,0x2d,0xa6,0x28,0xf5,0x52,0xab,0xd2,0xa7,
+/* 0x005790 */ 0x44,0x86,0x15,0xad,0x5c,0x31,0x78,0x4c,0xe2,0xc1,0x5f,0x21,0xf6,0x5d,0x24,0xb0,
+/* 0x0057a0 */ 0x7a,0x4b,0xaa,0x32,0xcf,0x1b,0x3c,0x41,0x77,0x86,0xfc,0x3d,0x64,0x5b,0xff,0xca,
+/* 0x0057b0 */ 0x78,0xd7,0x48,0x28,0xb1,0x63,0x73,0x7f,0x68,0x4c,0xb4,0xd5,0x7d,0xac,0x82,0x47,
+/* 0x0057c0 */ 0xc7,0x67,0x88,0xce,0x97,0xcb,0xff,0xd0,0x1e,0x67,0x3d,0x89,0xa1,0x08,0x11,0xbe,
+/* 0x0057d0 */ 0x0a,0x05,0x86,0xb2,0xbc,0xc8,0xd7,0xa6,0xb4,0x3c,0xde,0x34,0x83,0x12,0x45,0x9b,
+/* 0x0057e0 */ 0x8e,0xcd,0xbd,0x8d,0xbe,0xd1,0x93,0x54,0xff,0x85,0xff,0xe8,0xce,0x3f,0x0c,0x9c,
+/* 0x0057f0 */ 0x02,0x1e,0x8d,0x7d,0x5f,0x5f,0xa3,0x3a,0xb0,0xb5,0x99,0x10,0xbf,0xb8,0x55,0x99,
+/* 0x005800 */ 0x70,0x9a,0xfc,0x8a,0xa7,0x71,0xf2,0xef,0x7c,0xcf,0x37,0x6c,0xfd,0x17,0x12,0xf0,
+/* 0x005810 */ 0xd7,0x69,0xbc,0x5c,0xe0,0xb6,0x00,0x6d,0xbd,0x09,0x6e,0xf3,0xbd,0xac,0xc7,0xf0,
+/* 0x005820 */ 0xe7,0xbf,0x8a,0x98,0xfe,0x4b,0xf4,0x55,0x23,0xbb,0x95,0xd5,0x2d,0x10,0x2b,0x6c,
+/* 0x005830 */ 0x85,0xb4,0xe1,0x6d,0xc0,0xb9,0x54,0x48,0xff,0x85,0x6d,0xff,0x79,0x2e,0xf2,0x32,
+/* 0x005840 */ 0x9d,0x37,0xa1,0x5f,0x70,0x3b,0x34,0xfc,0xf9,0x2f,0xb6,0x5f,0xec,0x26,0xcf,0xb9,
+/* 0x005850 */ 0x83,0xed,0xef,0x02,0x42,0xac,0x5e,0x79,0x0a,0x09,0x0e,0x2a,0xf5,0x56,0xf8,0x4f,
+/* 0x005860 */ 0xa9,0xd9,0xf2,0x45,0x7d,0xf0,0xd7,0x9f,0x58,0xe3,0x9a,0x07,0x26,0x4f,0xb0,0xc6,
+/* 0x005870 */ 0xe8,0x5d,0xf9,0x2f,0x83,0xff,0x8a,0x3b,0x0c,0x52,0x7d,0x69,0xbb,0x1d,0x72,0x68,
+/* 0x005880 */ 0x7f,0x19,0x7e,0xbb,0x44,0xa5,0x46,0x05,0xf9,0xaf,0x8b,0x22,0xff,0x35,0x48,0xfe,
+/* 0x005890 */ 0x8b,0x1c,0x1b,0xd8,0xcf,0x81,0xea,0xc6,0x37,0x28,0x22,0xf3,0xd6,0xa7,0x9e,0x95,
+/* 0x0058a0 */ 0xff,0x22,0xe1,0x1c,0x18,0x71,0x70,0xf9,0x2a,0xbb,0xa4,0xac,0xe6,0x07,0x14,0xbe,
+/* 0x0058b0 */ 0xc4,0x65,0x96,0xc5,0x99,0x03,0x04,0x7f,0x1d,0xb7,0x71,0xc1,0x69,0x02,0xbb,0x42,
+/* 0x0058c0 */ 0x50,0x0e,0x98,0xbb,0x1d,0x32,0x68,0xf6,0xf2,0x4e,0x69,0x33,0x02,0xb7,0x0d,0xc5,
+/* 0x0058d0 */ 0x97,0xff,0x0a,0x6a,0x2c,0x0e,0x57,0xd1,0xcd,0x36,0x8e,0xbf,0xae,0xa3,0x1a,0xa6,
+/* 0x0058e0 */ 0xff,0xa2,0x6e,0x87,0xbd,0x72,0xab,0xc1,0x8d,0x10,0x29,0xdb,0xd5,0xf9,0xbc,0x3f,
+/* 0x0058f0 */ 0xff,0x45,0x9f,0x03,0xfa,0xaf,0x69,0x7b,0x0a,0x26,0x59,0x49,0x14,0x80,0x5d,0x8c,
+/* 0x005900 */ 0xed,0x72,0xac,0x39,0x74,0xee,0x36,0x3f,0x9e,0x23,0xc2,0x6c,0xfe,0x8b,0xad,0xab,
+/* 0x005910 */ 0x2e,0xfd,0x17,0x84,0x97,0xe2,0x5c,0xc4,0x98,0xdb,0xbc,0x33,0x71,0xbe,0xe7,0x90,
+/* 0x005920 */ 0x39,0xfd,0xd7,0x71,0xa7,0x7e,0xa5,0xe2,0xaa,0xad,0x2c,0x7f,0x8f,0xb9,0x19,0xd7,
+/* 0x005930 */ 0xc0,0x40,0x15,0x3a,0xf7,0xfb,0x88,0xef,0xa7,0x80,0xbf,0x2c,0x3e,0x74,0x6f,0xb0,
+/* 0x005940 */ 0xc6,0x67,0x7c,0x0c,0x9b,0x60,0x9c,0x09,0xc8,0x7a,0x8a,0xe0,0x5c,0xd2,0x93,0x2d,
+/* 0x005950 */ 0xc0,0x33,0x72,0xfc,0xb5,0x17,0x1d,0xc5,0xce,0x77,0xea,0x9e,0xd3,0x56,0x9a,0xc9,
+/* 0x005960 */ 0xc3,0x5c,0x56,0xd0,0xb6,0xac,0xef,0xf9,0xe1,0x27,0x6c,0xbf,0x18,0x27,0xf8,0x6b,
+/* 0x005970 */ 0x1a,0x7b,0x28,0x2d,0x83,0x37,0xc0,0x64,0xfe,0x28,0x64,0x1b,0x6e,0x05,0xb7,0xf9,
+/* 0x005980 */ 0xde,0x02,0xfc,0xd7,0x76,0x2f,0xfe,0x52,0x58,0x63,0xae,0xf7,0xf0,0x5c,0x0a,0x31,
+/* 0x005990 */ 0x17,0xf4,0x02,0xfc,0x17,0x1d,0x9f,0xbd,0x04,0x7f,0x5d,0x77,0x15,0x33,0x72,0xc4,
+/* 0x0059a0 */ 0x2c,0x2f,0xc8,0x95,0x41,0xda,0xf8,0x19,0x3f,0xe7,0x57,0xfd,0xce,0xf9,0xaf,0x88,
+/* 0x0059b0 */ 0xfe,0x87,0x11,0x17,0x7f,0x91,0x4f,0x5b,0x40,0x83,0xfa,0x27,0xcc,0xc6,0x7f,0x05,
+/* 0x0059c0 */ 0x07,0xed,0xaa,0xbb,0xae,0x1f,0xff,0xf3,0xf9,0xd2,0x96,0x20,0x54,0xd6,0xa0,0xc8,
+/* 0x0059d0 */ 0x8e,0x01,0xb1,0xc2,0xfa,0x2f,0x65,0x43,0x7e,0xa9,0x29,0xd6,0xf8,0x5b,0x8a,0xb6,
+/* 0x0059e0 */ 0x34,0x5a,0x11,0x0c,0x0a,0x81,0xc5,0x37,0x94,0xf8,0xf1,0x5f,0xe7,0xe6,0xe4,0xf0,
+/* 0x0059f0 */ 0x57,0xd4,0x2e,0x9d,0x16,0xe5,0x89,0x88,0x74,0x0c,0xc1,0x36,0x9c,0x0a,0xee,0xfe,
+/* 0x005a00 */ 0x2d,0x65,0x62,0x1a,0x36,0xcf,0xc6,0x7f,0xfd,0x33,0xb8,0x14,0xf2,0xa1,0x63,0x76,
+/* 0x005a10 */ 0x85,0xec,0x43,0x23,0xe3,0x1c,0x22,0xc3,0x0b,0x5f,0xca,0x0d,0x3a,0xaa,0xc9,0x66,
+/* 0x005a20 */ 0x7f,0xfe,0x2b,0x98,0xe3,0xbf,0x14,0x27,0x8f,0x91,0x95,0x15,0x66,0xbc,0x4c,0xda,
+/* 0x005a30 */ 0xbe,0xf9,0x51,0x82,0x2f,0x0a,0x32,0x98,0x1c,0x7f,0xed,0x04,0xfc,0x65,0xd8,0xf8,
+/* 0x005a40 */ 0xab,0x0d,0x20,0x95,0x4c,0xdd,0x0e,0x03,0xa1,0x2e,0xe8,0x31,0xc9,0xa5,0x7f,0x62,
+/* 0x005a50 */ 0xfa,0x2f,0xec,0xcf,0x7f,0x15,0xe5,0xeb,0xbf,0xb8,0x87,0xff,0xdb,0xbc,0xaa,0x5a,
+/* 0x005a60 */ 0x07,0xb9,0xa4,0xd0,0xc6,0xdb,0xa8,0x20,0xf3,0xf8,0x21,0xfb,0xbe,0x16,0xcc,0x39,
+/* 0x005a70 */ 0xac,0x0c,0xea,0xf6,0x54,0xea,0x91,0x66,0xf1,0xfd,0xb1,0x8b,0x7c,0xcd,0xaa,0xff,
+/* 0x005a80 */ 0x62,0xef,0xb3,0x8b,0xff,0xba,0x4e,0x6b,0x7b,0xcd,0xfd,0xc2,0x33,0x08,0x87,0x98,
+/* 0x005a90 */ 0xfe,0xcb,0xdf,0xe1,0xb3,0x00,0xff,0x05,0x18,0xed,0x30,0xf6,0xf8,0x1f,0xa6,0x86,
+/* 0x005aa0 */ 0xf2,0x7e,0xdc,0x69,0xf0,0xef,0x6b,0x2b,0xe5,0xbf,0xea,0x5d,0xaf,0xc4,0x65,0xde,
+/* 0x005ab0 */ 0xa8,0x60,0x75,0x22,0xc2,0x9d,0x21,0x8a,0xc8,0x20,0xdb,0x30,0xff,0xfd,0x39,0x2b,
+/* 0x005ac0 */ 0xe2,0xaf,0x88,0x48,0x69,0x3d,0xc2,0x1b,0x57,0x68,0x4f,0x3d,0x2d,0xfb,0x05,0xf5,
+/* 0x005ad0 */ 0x97,0xb1,0x02,0x39,0x8a,0x05,0xf8,0xaf,0xad,0xf3,0x5b,0x83,0x62,0x50,0x21,0x9c,
+/* 0x005ae0 */ 0x99,0x37,0xf0,0xb8,0x2e,0xb4,0x56,0x52,0x03,0xb0,0xa3,0xf9,0x3a,0xad,0xd9,0xf8,
+/* 0x005af0 */ 0xcb,0x20,0x8b,0x30,0x5e,0x5c,0x90,0x7c,0xe9,0x20,0x97,0x26,0xc8,0x7a,0xb8,0x07,
+/* 0x005b00 */ 0xce,0x33,0xb7,0x4b,0xf9,0x64,0x50,0x86,0xe9,0xbf,0x8e,0x74,0x6d,0xd6,0x98,0xa5,
+/* 0x005b10 */ 0xbc,0xa8,0xf6,0x72,0x10,0xd9,0x8c,0xb9,0x8c,0x25,0x22,0xbe,0x4b,0xa2,0x2f,0xd5,
+/* 0x005b20 */ 0x8f,0xff,0xba,0xe2,0xe0,0x2f,0x1f,0x57,0xe4,0x29,0x76,0x3c,0x4b,0x76,0xab,0x68,
+/* 0x005b30 */ 0xc2,0x2a,0xe5,0x6e,0x1b,0x43,0xfe,0xfb,0x0e,0xc7,0x3b,0x2e,0xfc,0xa5,0x13,0xb4,
+/* 0x005b40 */ 0xc5,0xd4,0x5e,0xb4,0x87,0x80,0xac,0x2e,0x82,0xc8,0x98,0x11,0x7d,0x92,0x09,0xc1,
+/* 0x005b50 */ 0xf2,0xf9,0x2f,0x3a,0x5f,0x04,0x7f,0x19,0x27,0x9c,0x6d,0x4b,0x5a,0x6c,0x75,0x39,
+/* 0x005b60 */ 0x6a,0xaf,0x51,0x82,0x92,0xbe,0x26,0xdb,0x68,0xf7,0x76,0x59,0xe0,0x07,0xbf,0x10,
+/* 0x005b70 */ 0xc7,0xa7,0x8c,0xe0,0x2f,0xe6,0x27,0x8c,0xb0,0xe8,0x63,0xcf,0xa0,0xd9,0x48,0x8e,
+/* 0x005b80 */ 0x08,0xf3,0x36,0xf2,0xc7,0x59,0xc4,0x5f,0x96,0x90,0x77,0x1a,0xad,0x91,0xde,0xd7,
+/* 0x005b90 */ 0x5f,0xb4,0xf3,0x4e,0xfb,0xa5,0xad,0xf0,0x02,0xd0,0x00,0x26,0x9d,0x4f,0xac,0x80,
+/* 0x005ba0 */ 0xff,0x3c,0xe2,0xf8,0x6b,0x5c,0xd4,0x13,0xd5,0xc2,0xb1,0xea,0x57,0xb9,0xfd,0x1d,
+/* 0x005bb0 */ 0xe2,0xf9,0xf0,0xbd,0xd4,0x18,0x2d,0x99,0xa6,0xb9,0xa0,0xde,0x71,0xbe,0xea,0xe4,
+/* 0x005bc0 */ 0x1f,0x8a,0x6c,0xd7,0x2e,0x98,0x94,0x11,0x85,0xa6,0xc7,0x1c,0x23,0xa0,0xf8,0x8f,
+/* 0x005bd0 */ 0x2c,0xba,0xa0,0x3f,0x75,0x76,0xd3,0xac,0xfc,0xd7,0x2f,0xd1,0x67,0x8a,0x13,0x3a,
+/* 0x005be0 */ 0xae,0xb2,0x4a,0x99,0xfe,0x8b,0x86,0x97,0x4f,0x51,0x3c,0x48,0x1a,0xac,0x10,0x98,
+/* 0x005bf0 */ 0xea,0x17,0x67,0x0e,0xfb,0xe0,0xaf,0x7e,0x46,0x49,0xf0,0xf8,0x30,0x4d,0xcb,0x7e,
+/* 0x005c00 */ 0x45,0xe0,0x7d,0x66,0x99,0xba,0x25,0x7e,0xf1,0xe1,0x98,0x2f,0xff,0xb5,0x94,0x15,
+/* 0x005c10 */ 0x7b,0xa2,0xce,0x1e,0x7d,0xd2,0x2f,0x82,0x34,0x0e,0x3f,0x2e,0x41,0x8d,0xb0,0x02,
+/* 0x005c20 */ 0xf5,0x97,0x33,0x0c,0x37,0x29,0x48,0xf0,0x29,0x85,0xe7,0xe4,0x3e,0x46,0x1d,0xce,
+/* 0x005c30 */ 0x49,0x02,0xa6,0xc5,0xd5,0x0d,0x4b,0x73,0x71,0xa6,0x8b,0xff,0x62,0xfb,0x17,0x52,
+/* 0x005c40 */ 0xb7,0x51,0x1b,0x07,0x27,0x7a,0xa7,0xb2,0x2f,0xbb,0x47,0x01,0x7f,0x7e,0x82,0x7c,
+/* 0x005c50 */ 0x63,0x34,0x31,0x49,0x15,0x68,0x4a,0x41,0xff,0x45,0xbf,0x77,0x8f,0xfe,0xeb,0x21,
+/* 0x005c60 */ 0x21,0x09,0xca,0xf2,0x8c,0xea,0x19,0x7f,0xfd,0x57,0x50,0xd0,0x7f,0x39,0xdf,0x17,
+/* 0x005c70 */ 0xfd,0x71,0xc8,0x12,0xcc,0xd1,0xca,0x3f,0x2e,0xed,0xe5,0x3d,0xa5,0x03,0xf2,0xb4,
+/* 0x005c80 */ 0x31,0x89,0xfa,0xdb,0xc9,0x1f,0xd6,0x68,0xdc,0x21,0x98,0x5a,0xe0,0xbf,0x16,0x08,
+/* 0x005c90 */ 0x90,0xaa,0x1f,0x95,0x7d,0x18,0x7a,0x46,0xba,0xa6,0xd1,0xda,0xca,0x03,0x0c,0x9a,
+/* 0x005ca0 */ 0x5d,0xef,0x62,0x68,0x6b,0x29,0xdc,0x33,0x8e,0x06,0x94,0x88,0x41,0xa5,0x22,0x64,
+/* 0x005cb0 */ 0xbf,0xc8,0x44,0x0b,0xe4,0x1f,0xce,0x57,0x87,0x42,0xa8,0x7c,0x24,0x20,0x9c,0x50,
+/* 0x005cc0 */ 0xc5,0xb0,0x5b,0x18,0x3b,0xa0,0x93,0xe7,0x98,0x92,0x0a,0x59,0xf7,0x22,0xff,0x35,
+/* 0x005cd0 */ 0xc7,0x9d,0x7f,0x78,0x46,0x9c,0x53,0xfa,0x6a,0x65,0x90,0x78,0x69,0xfe,0xa0,0x46,
+/* 0x005ce0 */ 0x9e,0x83,0x4b,0x62,0xe0,0xed,0x2c,0xf2,0x5f,0x62,0xfc,0x3c,0x01,0x40,0x0c,0x53,
+/* 0x005cf0 */ 0x74,0x03,0x86,0x78,0xeb,0x69,0xd8,0x6c,0xce,0xb1,0xa7,0x89,0x62,0xea,0xac,0xa9,
+/* 0x005d00 */ 0xb5,0xab,0x3b,0x80,0x23,0xc3,0x74,0x06,0x6d,0xff,0x0d,0x97,0x2e,0xd2,0xe0,0xd5,
+/* 0x005d10 */ 0x01,0x84,0x49,0x59,0x8b,0xa9,0x12,0x90,0x3a,0xff,0x43,0xcf,0xed,0xdd,0xc9,0xb6,
+/* 0x005d20 */ 0x6a,0x68,0xdc,0xc1,0x8d,0x85,0xf8,0xaf,0x49,0xf8,0xde,0x71,0xee,0x1b,0xa4,0x97,
+/* 0x005d30 */ 0xce,0xfc,0x15,0x7c,0xf8,0xe7,0x83,0x8b,0xf8,0xdf,0x0c,0x47,0x94,0x26,0xe9,0x79,
+/* 0x005d40 */ 0x0f,0x4a,0x83,0x15,0xf2,0xdf,0x78,0xe0,0x4c,0x14,0x37,0x8d,0x07,0xaf,0x0a,0x26,
+/* 0x005d50 */ 0x90,0x2c,0xd1,0xd7,0x61,0x8a,0x07,0x20,0x98,0x34,0xa5,0x5f,0xa2,0x7f,0x27,0x8b,
+/* 0x005d60 */ 0x5e,0x49,0x41,0xfc,0x65,0x21,0x24,0x12,0xc4,0x7c,0xbe,0xc4,0xdc,0x5d,0xc4,0xeb,
+/* 0x005d70 */ 0x40,0x71,0xbe,0x72,0xc2,0x47,0xff,0x05,0xe9,0x70,0x4a,0xb3,0xed,0x36,0x3f,0x21,
+/* 0x005d80 */ 0x39,0x97,0x16,0x61,0xc7,0x7f,0xe3,0xb8,0xb9,0xac,0x9d,0xa6,0xcc,0xbd,0x4e,0x20,
+/* 0x005d90 */ 0x43,0x49,0x5e,0xfe,0x21,0x24,0x19,0x1a,0x37,0xcd,0xda,0xa1,0xd6,0xe2,0xf5,0x50,
+/* 0x005da0 */ 0xe4,0xab,0x71,0x8c,0x8c,0x06,0xf5,0xdf,0xc0,0xa5,0x0d,0x72,0x19,0x7a,0xcb,0x24,
+/* 0x005db0 */ 0xa3,0x0a,0xfc,0xd7,0x0d,0xbc,0xda,0x0a,0x9f,0x94,0x55,0x82,0x61,0x6b,0x2c,0xd5,
+/* 0x005dc0 */ 0x3f,0xff,0x90,0xa0,0xad,0xb3,0xe1,0xbe,0xf5,0xe3,0x1b,0x9e,0x0c,0x26,0x86,0xe8,
+/* 0x005dd0 */ 0xea,0x37,0x13,0x78,0xda,0x0a,0x5f,0x27,0xbf,0x62,0x0a,0x80,0x58,0x9f,0x3c,0x4e,
+/* 0x005de0 */ 0x90,0x1d,0x09,0xda,0x7f,0x0d,0x97,0xb4,0x82,0xf9,0x87,0xdf,0x00,0xda,0xc2,0xf2,
+/* 0x005df0 */ 0x07,0xd2,0x79,0xd4,0x98,0xb1,0xbf,0x6e,0x1c,0x5e,0x2d,0xc7,0xa5,0xb7,0xc8,0x87,
+/* 0x005e00 */ 0x1f,0x22,0x0d,0x90,0xf2,0xd1,0xa5,0x5b,0x7a,0x8f,0x31,0x98,0xbe,0xf9,0x87,0xc1,
+/* 0x005e10 */ 0xc5,0xc3,0x21,0xa3,0x9c,0xed,0x5f,0x0a,0x4f,0x6b,0x81,0x42,0x33,0x90,0xd1,0xb1,
+/* 0x005e20 */ 0x98,0xa5,0x76,0x3c,0x83,0x16,0x1b,0x74,0x27,0x7a,0x06,0x55,0x8d,0x85,0x1d,0xfe,
+/* 0x005e30 */ 0x6b,0xb7,0x2b,0xff,0xb0,0x23,0x90,0x09,0xb5,0x52,0x22,0xac,0xca,0x41,0xb5,0x97,
+/* 0x005e40 */ 0x43,0x8f,0x4b,0xbb,0x28,0xed,0x15,0xda,0x59,0xbe,0x28,0xf8,0x7a,0xd7,0x12,0x06,
+/* 0x005e50 */ 0x81,0x9f,0xc1,0xb1,0x4c,0xa1,0xfa,0x5f,0xf3,0x09,0xda,0x52,0x25,0xa6,0x56,0x26,
+/* 0x005e60 */ 0x73,0xda,0x0a,0xa5,0x99,0x3f,0xa4,0x40,0xac,0xdb,0x96,0x7d,0xbd,0x6a,0x1e,0x86,
+/* 0x005e70 */ 0x83,0x97,0x98,0xb6,0xbb,0x70,0xfe,0x21,0x14,0xf9,0x0a,0x8f,0xcb,0x63,0x0a,0x35,
+/* 0x005e80 */ 0x39,0x64,0x20,0x2b,0x09,0x97,0xb6,0xa2,0x1f,0xa3,0x5a,0xe0,0xc8,0xa2,0xe8,0x9a,
+/* 0x005e90 */ 0x51,0x8f,0xc3,0xff,0x43,0x1a,0xe7,0x14,0x7a,0x8f,0x2f,0xff,0xa5,0x24,0xb4,0x70,
+/* 0x005ea0 */ 0x87,0x4f,0xf0,0x26,0x9c,0xbd,0x1f,0x44,0x0d,0x54,0x23,0x56,0x3c,0x7b,0xfe,0x21,
+/* 0x005eb0 */ 0xc4,0x99,0x95,0x8a,0xdd,0x13,0xe0,0x3d,0x94,0x38,0x30,0xca,0xec,0xf0,0x52,0x65,
+/* 0x005ec0 */ 0x39,0x8a,0x8d,0xd0,0xf0,0xe5,0xbf,0x02,0xd4,0xd2,0x90,0xa1,0xa4,0x70,0x4f,0xce,
+/* 0x005ed0 */ 0xe4,0x70,0x14,0x7d,0x19,0x78,0xcd,0x58,0x44,0x7b,0x9a,0x63,0x4c,0xc0,0xc5,0x19,
+/* 0x005ee0 */ 0x8d,0x8c,0xbf,0xff,0xc6,0x06,0xca,0x7f,0xb9,0x7b,0xa0,0x22,0x33,0x60,0x3d,0xee,
+/* 0x005ef0 */ 0x48,0xff,0x98,0xc3,0x88,0x51,0x1d,0x90,0x5f,0xfe,0xa1,0x16,0xfb,0x36,0xe5,0xbf,
+/* 0x005f00 */ 0xa0,0xc7,0x46,0x5b,0x2d,0x14,0x20,0x70,0xc8,0xb0,0x01,0xf5,0x45,0xb7,0x19,0xd1,
+/* 0x005f10 */ 0xf2,0x8e,0xca,0x8e,0xdd,0x5a,0x0c,0x3c,0x3a,0xfc,0xfc,0xe7,0x07,0xb6,0x26,0x16,
+/* 0x005f20 */ 0x00,0xff,0x95,0x73,0x44,0x1c,0x00,0x78,0xdb,0xc1,0xcb,0x7e,0xfd,0x0b,0xf4,0x64,
+/* 0x005f30 */ 0x75,0x02,0xc4,0x3a,0x20,0xa2,0x36,0x0a,0xd5,0xff,0x42,0x5f,0x57,0x26,0x9a,0xc3,
+/* 0x005f40 */ 0x1f,0xce,0x1b,0x55,0x1e,0xcf,0x8d,0x7c,0xd2,0xe0,0x52,0x23,0x9a,0x02,0x3a,0x6a,
+/* 0x005f50 */ 0xde,0x89,0x26,0x9b,0xc2,0x7f,0xb3,0xfb,0xe1,0x23,0xf4,0x10,0xc3,0xdf,0x7f,0xe3,
+/* 0x005f60 */ 0x3a,0xc8,0xbe,0x7a,0x2a,0x56,0x06,0xe0,0xc7,0xcb,0x98,0xb3,0x62,0x92,0xd6,0x55,
+/* 0x005f70 */ 0x64,0x10,0x2f,0x2d,0x6f,0x81,0x33,0x2b,0x82,0xa0,0xe7,0x15,0x61,0x3e,0x71,0x7e,
+/* 0x005f80 */ 0xfc,0xd7,0x18,0x50,0x5a,0x26,0x2d,0xb2,0x9c,0x03,0x59,0xf3,0x43,0x38,0xe2,0xdc,
+/* 0x005f90 */ 0x63,0x61,0xb2,0xef,0x2c,0x0f,0x05,0xa5,0x0a,0x3c,0x20,0x51,0x46,0x2c,0xc7,0x7f,
+/* 0x005fa0 */ 0x29,0x02,0xa4,0xd2,0xdb,0xba,0x35,0xee,0x6d,0x28,0xa0,0xda,0x26,0x8e,0x7c,0xb5,
+/* 0x005fb0 */ 0xf2,0x21,0xbd,0x4f,0x35,0xa1,0x22,0xf3,0x9c,0xd7,0xdd,0xfe,0x87,0x6e,0xfe,0x8b,
+/* 0x005fc0 */ 0x4c,0xee,0xcb,0x54,0x3f,0xc8,0x7b,0x20,0x35,0x71,0x3b,0x9f,0x77,0xbb,0xc7,0x88,
+/* 0x005fd0 */ 0x18,0xf2,0x7e,0x78,0x37,0xb4,0xb8,0xa8,0xff,0x72,0xf2,0x33,0xa9,0xed,0x7c,0xc4,
+/* 0x005fe0 */ 0xd8,0x78,0x40,0xa6,0xde,0x86,0xec,0xed,0x1d,0x94,0x12,0xdb,0xbd,0x70,0x09,0xc6,
+/* 0x005ff0 */ 0x27,0xb4,0x92,0xde,0x13,0xf3,0xc7,0x5f,0x54,0xff,0x75,0xe0,0xae,0xe9,0x8b,0xeb,
+/* 0x006000 */ 0x38,0x23,0xe6,0xd2,0x7f,0xe5,0xf8,0x2f,0x13,0x65,0x8d,0xda,0x60,0x69,0x50,0xd6,
+/* 0x006010 */ 0x83,0xc3,0xb6,0x11,0xfd,0xc5,0xdc,0x07,0xcb,0xf5,0x5f,0x96,0x41,0x1a,0x80,0xc8,
+/* 0x006020 */ 0x2e,0xb2,0x7b,0xfc,0xf8,0xaf,0x6b,0x52,0x85,0xd9,0x6c,0xe7,0x1f,0x52,0xff,0xf9,
+/* 0x006030 */ 0x1f,0x07,0xab,0x4d,0x8e,0xb6,0xa8,0xfe,0x2b,0x1a,0x04,0xfd,0x97,0x92,0x29,0x1f,
+/* 0x006040 */ 0x08,0xc2,0x3d,0xa5,0x39,0xfe,0xeb,0x19,0xf7,0xfe,0x65,0x2a,0xf6,0x6e,0x45,0x03,
+/* 0x006050 */ 0x3c,0xd2,0xf8,0xdc,0xd9,0xda,0xe8,0x46,0xf6,0xa2,0x62,0xc2,0xf6,0xe7,0xdc,0x63,
+/* 0x006060 */ 0xeb,0xbf,0x5c,0xfc,0x17,0xaa,0x30,0x17,0xd4,0x42,0xf2,0x00,0x43,0x5b,0x9f,0x0a,
+/* 0x006070 */ 0x09,0x72,0x64,0x5d,0xa5,0x75,0x15,0x5f,0x42,0x64,0xdb,0xda,0x21,0xbd,0x62,0xed,
+/* 0x006080 */ 0x81,0xb3,0x4a,0x41,0xff,0x25,0xe6,0x1f,0x76,0xae,0xb8,0xac,0x3e,0xd1,0x0d,0x68,
+/* 0x006090 */ 0x6b,0x2d,0x41,0x5b,0x75,0x9f,0xa2,0x77,0x77,0xaf,0x35,0xf7,0x31,0xb4,0xb5,0x22,
+/* 0x0060a0 */ 0x53,0xba,0x73,0xde,0xfd,0x9d,0x2f,0xe2,0xba,0x4c,0xd9,0xae,0xd0,0x22,0x85,0xdd,
+/* 0x0060b0 */ 0x23,0xf0,0x5f,0xce,0xbe,0x13,0x98,0xda,0xd9,0x68,0x95,0xf5,0xc9,0x23,0x4c,0x58,
+/* 0x0060c0 */ 0xc4,0xed,0xb9,0x48,0xbc,0x51,0x31,0x6e,0x57,0x66,0xb9,0x43,0x03,0xce,0x2a,0xa8,
+/* 0x0060d0 */ 0x73,0x74,0x55,0x13,0xf3,0x0f,0xdd,0xf9,0x51,0x3d,0xb5,0x87,0x49,0xc8,0x97,0x30,
+/* 0x0060e0 */ 0x6c,0x93,0x0d,0x63,0xa6,0x27,0xd9,0x1e,0x9e,0x94,0xa0,0x91,0x80,0x9e,0x19,0xe3,
+/* 0x0060f0 */ 0x15,0xb8,0xf9,0x36,0xb9,0xe7,0x82,0x2b,0xff,0x70,0xcc,0x55,0xff,0xab,0x67,0x71,
+/* 0x006100 */ 0xa5,0xd2,0x97,0xda,0x4c,0x40,0x56,0x2c,0x03,0xb6,0x51,0x04,0x7f,0x55,0x19,0x2c,
+/* 0x006110 */ 0x11,0x91,0xed,0x4d,0xd7,0xd0,0xb3,0x7a,0xd5,0xd9,0x50,0x56,0x5e,0x64,0x0f,0x1d,
+/* 0x006120 */ 0xe7,0x89,0xfe,0xda,0xab,0xff,0x52,0x6c,0xb4,0x55,0x42,0x4d,0x36,0xa4,0x1f,0xa2,
+/* 0x006130 */ 0xd0,0xf6,0xa5,0x0e,0xda,0xba,0x8d,0xf6,0x48,0xb4,0xb1,0xd9,0x7e,0x8e,0x1f,0xff,
+/* 0x006140 */ 0xf5,0x66,0x97,0x69,0x29,0xc7,0x3a,0x5a,0x39,0xc8,0x2a,0xa2,0x68,0x6b,0x1e,0x9b,
+/* 0x006150 */ 0x77,0x89,0xdf,0x93,0x32,0x48,0x28,0xfb,0xd0,0x23,0x4e,0x24,0x33,0x6c,0xef,0x5f,
+/* 0x006160 */ 0x82,0xff,0xc6,0x0c,0x88,0xb8,0x6f,0x53,0xb4,0x15,0x67,0x75,0x6a,0xd6,0xa0,0x44,
+/* 0x006170 */ 0x86,0x27,0xb6,0x95,0x59,0x32,0x58,0x73,0x3c,0x67,0x24,0x33,0xfb,0xb2,0x9b,0xb6,
+/* 0x006180 */ 0xa1,0x0b,0x5c,0x5f,0xc0,0xfe,0xaf,0x1e,0x4f,0xfd,0x65,0x23,0xcc,0xea,0x1c,0xe5,
+/* 0x006190 */ 0x7a,0xb2,0x22,0xda,0xba,0x8d,0x2e,0xeb,0x94,0x23,0xf3,0xe2,0xaf,0x5f,0x8b,0xfc,
+/* 0x0061a0 */ 0x17,0xad,0x85,0x94,0xb5,0xab,0x2d,0xf3,0xe0,0xbf,0x7d,0x91,0x5d,0x7f,0xf9,0x7e,
+/* 0x0061b0 */ 0xe8,0xf9,0x4a,0xab,0x03,0xcf,0x7c,0xe0,0xbf,0xea,0x0a,0xe7,0x1f,0xfe,0x20,0x7b,
+/* 0x0061c0 */ 0xbe,0xb7,0xdc,0x8e,0xa8,0x65,0xda,0xf8,0x91,0x13,0x28,0x42,0xc6,0xd4,0x9f,0x91,
+/* 0x0061d0 */ 0x35,0xca,0xea,0xea,0x25,0x81,0xc7,0x47,0x8c,0xda,0xf0,0xe5,0xbf,0x02,0x91,0x6c,
+/* 0x0061e0 */ 0x37,0xf9,0x29,0x45,0x8c,0xcc,0x31,0x7f,0x0e,0xa3,0x48,0x82,0x24,0xce,0x3c,0x43,
+/* 0x0061f0 */ 0x39,0xb2,0x6e,0xfe,0x1c,0xbf,0xfc,0x43,0x2d,0x6a,0x84,0x56,0x4a,0x7b,0x03,0xfd,
+/* 0x006200 */ 0x06,0x8b,0x33,0x31,0x75,0xa4,0x5f,0x29,0x95,0x06,0xfb,0x75,0x82,0x07,0x57,0x4a,
+/* 0x006210 */ 0xef,0x07,0x7a,0xe1,0xef,0xa9,0x29,0x52,0xf1,0xcb,0x88,0x42,0x33,0xdb,0xff,0x50,
+/* 0x006220 */ 0xcc,0x3f,0x9c,0x69,0x8f,0x9c,0x0d,0xff,0xef,0x3c,0x32,0x5f,0x0f,0x27,0xd2,0xf7,
+/* 0x006230 */ 0x93,0x9e,0x15,0x6f,0xc2,0xfa,0x73,0x2c,0x44,0x7a,0xfe,0xf1,0x89,0xb3,0x1b,0x8f,
+/* 0x006240 */ 0x93,0xef,0x62,0xb2,0x0d,0x34,0x74,0xa1,0x85,0xe6,0x79,0x46,0x76,0x70,0xfe,0x2b,
+/* 0x006250 */ 0xe3,0xc2,0x5f,0x06,0xf3,0x67,0xcb,0xcc,0xe8,0xbb,0x3e,0x20,0x8d,0x5f,0x50,0x93,
+/* 0x006260 */ 0x43,0x18,0x5e,0x3c,0x55,0x93,0xb4,0xca,0xfa,0xe5,0xf1,0x87,0xef,0x00,0xb6,0xca,
+/* 0x006270 */ 0xa6,0x9c,0xfa,0x44,0x0e,0xff,0xe5,0x16,0x79,0xd9,0x65,0xbf,0xd6,0xf0,0x46,0xe0,
+/* 0x006280 */ 0x41,0x4c,0xa2,0xca,0x06,0x60,0x30,0x87,0x4b,0x33,0x72,0x0d,0x4f,0xfd,0xad,0xc8,
+/* 0x006290 */ 0xd3,0x7f,0xa1,0x6b,0x73,0x9c,0x22,0x5f,0xfd,0xc8,0xa6,0xbd,0x70,0x35,0xed,0xd1,
+/* 0x0062a0 */ 0xde,0x6c,0x8f,0x58,0xdd,0x2f,0x94,0xfc,0x87,0x44,0xe2,0xf9,0x74,0x29,0x54,0x48,
+/* 0x0062b0 */ 0xec,0x16,0x8a,0x85,0xcd,0xa6,0xff,0xea,0x16,0x82,0x76,0xd2,0x68,0xa9,0x3c,0x13,
+/* 0x0062c0 */ 0x7a,0x81,0xcc,0xe0,0x0b,0x28,0x96,0x2e,0xc6,0x52,0x50,0xf2,0xa6,0xec,0xce,0xa2,
+/* 0x0062d0 */ 0xff,0x72,0x57,0xfb,0x6a,0x09,0x1d,0xec,0xf8,0x4f,0xf4,0x33,0x8b,0xac,0x7e,0x60,
+/* 0x0062e0 */ 0x03,0xf2,0xb2,0xe7,0x1e,0x21,0xff,0xd0,0x2f,0x17,0x94,0xeb,0x77,0x66,0xa4,0x55,
+/* 0x0062f0 */ 0x66,0xf8,0xd2,0x77,0x14,0xf4,0x09,0x41,0x5b,0xa5,0x5b,0x43,0xf5,0x24,0x8c,0x8f,
+/* 0x006300 */ 0xbb,0xf1,0xb2,0xc8,0x7f,0xad,0xc9,0x4b,0x0a,0x65,0xa4,0x89,0xf2,0x35,0x03,0xce,
+/* 0x006310 */ 0x77,0x18,0x82,0xfe,0x52,0x86,0x13,0x0f,0x37,0x70,0xf6,0xd7,0x7f,0xd5,0x3a,0xb0,
+/* 0x006320 */ 0x8b,0xb3,0x5d,0x52,0x6d,0x5a,0x3d,0x26,0x57,0x01,0x47,0x76,0x96,0x6c,0x64,0xa3,
+/* 0x006330 */ 0xd8,0x9b,0x8a,0xec,0xab,0xff,0xd2,0x56,0xd9,0xb0,0xab,0x9a,0x9e,0x42,0x04,0x4f,
+/* 0x006340 */ 0x4b,0xf5,0x04,0x49,0x55,0x3c,0x46,0xf6,0xaf,0x35,0x59,0x12,0x6f,0x7c,0x85,0xbd,
+/* 0x006350 */ 0x29,0xbb,0x7e,0xf8,0xeb,0x45,0x43,0x77,0x60,0x17,0x9f,0x14,0x49,0x07,0x5e,0xb8,
+/* 0x006360 */ 0x0c,0x7a,0x08,0x94,0x26,0x5f,0x93,0x77,0xbe,0x7c,0xf3,0x0f,0xd1,0x92,0x1c,0xed,
+/* 0x006370 */ 0xc5,0xea,0x52,0xf5,0x7c,0x2b,0xf3,0xe8,0xa3,0x25,0x9b,0xd1,0x89,0xdd,0xcb,0x32,
+/* 0x006380 */ 0xa1,0x66,0x6a,0xc4,0xe1,0xaf,0xff,0x02,0xfe,0x4b,0x73,0xfc,0xe7,0x6b,0x86,0xc2,
+/* 0x006390 */ 0x90,0x34,0x72,0x53,0x8b,0x51,0x47,0x44,0x63,0x0a,0x40,0xd6,0x0b,0xb2,0xba,0xe5,
+/* 0x0063a0 */ 0x06,0xb0,0x5d,0x9a,0x3c,0x24,0x79,0x0b,0x81,0x89,0xf8,0x2b,0x98,0x5b,0xb5,0xde,
+/* 0x0063b0 */ 0x76,0xc6,0x30,0x4e,0x1a,0x0b,0x9e,0x46,0xc9,0xa1,0xea,0x74,0x05,0x50,0xd8,0x64,
+/* 0x0063c0 */ 0x1d,0xdb,0x0f,0x89,0x88,0xf6,0x09,0xd5,0x6c,0xfa,0x2f,0x5c,0x37,0xc4,0xe7,0x0b,
+/* 0x0063d0 */ 0xde,0x9f,0x79,0xe3,0xc1,0xa9,0xdd,0x0d,0x10,0x1f,0x8e,0x91,0x9e,0xa3,0x43,0x6a,
+/* 0x0063e0 */ 0x97,0x5c,0x29,0x7d,0x82,0xdc,0xc4,0xa5,0x8d,0xbf,0x02,0xc2,0xbe,0x73,0x1a,0x11,
+/* 0x0063f0 */ 0xfc,0xc5,0xcf,0xf4,0x2e,0xb1,0x1e,0x9d,0xc0,0xae,0x36,0xe9,0x92,0x72,0x02,0xf2,
+/* 0x006400 */ 0x0f,0x35,0x9f,0x94,0x78,0x3b,0xff,0x50,0x73,0x89,0xbc,0x16,0x67,0xc4,0xaa,0x6a,
+/* 0x006410 */ 0xe4,0x52,0xcf,0xf7,0x19,0xf3,0x78,0x02,0x8c,0x38,0x1e,0x95,0xee,0xa5,0xe3,0x5c,
+/* 0x006420 */ 0x22,0x8c,0xb3,0xbf,0xfe,0x2b,0xbf,0x3c,0x9f,0x9e,0x09,0xd5,0x92,0xc6,0xe0,0x41,
+/* 0x006430 */ 0xdd,0x22,0xd1,0x7b,0xd8,0xf2,0xea,0xfe,0xfc,0xf5,0x5f,0xb5,0x39,0xd9,0x17,0x55,
+/* 0x006440 */ 0xd6,0x7f,0x83,0xd6,0x1c,0x09,0x13,0xd8,0x83,0x4f,0x41,0x46,0x22,0xd9,0x00,0xd1,
+/* 0x006450 */ 0xef,0x3c,0xd6,0x88,0x3e,0xf8,0x4b,0x9d,0x40,0xbb,0xbc,0xd9,0x86,0xfc,0x92,0x3e,
+/* 0x006460 */ 0x51,0x44,0x1a,0x1d,0xf2,0xe5,0x3c,0x83,0x35,0x7f,0xfc,0xd5,0xb8,0x4e,0xe5,0x66,
+/* 0x006470 */ 0x02,0x39,0xb4,0xb5,0x09,0x1a,0x8f,0xa3,0xd5,0x10,0xbd,0x1f,0xce,0x23,0x56,0x0a,
+/* 0x006480 */ 0xe9,0xbf,0xa2,0xdc,0x1b,0x9c,0xb2,0x54,0xca,0x20,0xf5,0x9f,0x2f,0xff,0xdc,0x18,
+/* 0x006490 */ 0x94,0x22,0xb4,0xa4,0x17,0xf6,0x4a,0xba,0x0a,0xe9,0xbf,0x14,0x1b,0x7f,0x79,0x59,
+/* 0x0064a0 */ 0xb3,0xe5,0x4d,0xd1,0x5e,0xa9,0x33,0xe0,0x7d,0x8e,0x80,0xbf,0xf6,0x0b,0xf8,0xcb,
+/* 0x0064b0 */ 0x50,0xee,0x29,0x71,0x3c,0xcf,0x49,0xcf,0x3d,0xb1,0x0d,0xa1,0x7b,0x6a,0xe1,0x52,
+/* 0x0064c0 */ 0xe5,0x06,0xe8,0x59,0xe7,0x25,0x68,0x6c,0xfc,0x15,0x14,0xeb,0x7f,0x19,0x89,0x12,
+/* 0x0064d0 */ 0xb5,0x93,0x25,0x89,0x95,0xb0,0xaa,0xd6,0xdf,0x4f,0xdc,0x17,0x7e,0xf6,0xad,0x4c,
+/* 0x0064e0 */ 0x20,0x6b,0x34,0xdc,0xd7,0xda,0x91,0xda,0x9d,0x27,0x0d,0xb3,0xf1,0x97,0x4b,0xb7,
+/* 0x0064f0 */ 0xa5,0x53,0x7a,0x51,0x64,0x58,0x22,0x49,0x82,0xc8,0x00,0x37,0xe9,0x0d,0xcd,0x00,
+/* 0x006500 */ 0xa0,0xf2,0xa4,0x46,0x76,0xfe,0x61,0x40,0xcc,0x63,0xd4,0xc0,0xfc,0x21,0xb4,0x85,
+/* 0x006510 */ 0x00,0x04,0x3b,0x2f,0x2e,0x93,0x68,0x56,0x4f,0x42,0xd9,0x65,0x94,0xdc,0xa6,0x1e,
+/* 0x006520 */ 0x94,0x6f,0x91,0xf9,0x6a,0xe0,0x29,0x8e,0x5e,0xfd,0x97,0x80,0xb6,0xf4,0x06,0xc7,
+/* 0x006530 */ 0x5b,0x9e,0xf7,0x64,0xe2,0x4a,0x17,0xaf,0x08,0x56,0x49,0xe2,0xf9,0xab,0xb8,0xcb,
+/* 0x006540 */ 0xcd,0x7f,0x15,0x15,0xd0,0x7f,0xb5,0x51,0x30,0xfb,0xaa,0x93,0x91,0x68,0xc4,0x9e,
+/* 0x006550 */ 0x28,0x9e,0xdf,0xf1,0x0e,0xea,0xc3,0x31,0xa3,0x78,0x7e,0xf9,0xdb,0xe6,0x7e,0x31,
+/* 0x006560 */ 0x59,0xb1,0xa0,0xff,0xe1,0x72,0x23,0x0f,0x77,0xb7,0xb3,0x74,0x53,0x3d,0x6e,0x2c,
+/* 0x006570 */ 0xf3,0x33,0x42,0x9c,0xc5,0xff,0x90,0x8d,0x0f,0xbd,0x79,0xb2,0x68,0x97,0x51,0xda,
+/* 0x006580 */ 0xb3,0xfe,0x73,0x38,0x2d,0x34,0x4a,0x0f,0xd1,0xd2,0xcc,0x70,0xc9,0xb9,0x59,0xf2,
+/* 0x006590 */ 0xe5,0xbf,0x14,0x3f,0xd8,0x55,0xf6,0x53,0x70,0xe4,0xc0,0x8d,0xac,0xe1,0xb5,0x46,
+/* 0x0065a0 */ 0xf4,0xcf,0x3f,0xa4,0xb5,0xb9,0x59,0x46,0x6b,0xa9,0xeb,0x83,0x1d,0x43,0x3b,0x00,
+/* 0x0065b0 */ 0x76,0xd9,0xd2,0xb0,0x9c,0x73,0xa9,0x1f,0xfe,0x3a,0x85,0xeb,0x99,0xfe,0xeb,0xa4,
+/* 0x0065c0 */ 0x8d,0xbf,0x04,0xb6,0xeb,0x01,0x40,0x5b,0x0d,0x5c,0x1a,0x96,0x23,0xc2,0x3c,0xfa,
+/* 0x0065d0 */ 0x2f,0x5a,0x5a,0xf7,0x68,0x5a,0xb7,0xe9,0x7b,0x9a,0xbf,0xc1,0x02,0x0f,0x38,0x45,
+/* 0x0065e0 */ 0x37,0xfe,0x95,0x9d,0x16,0xc6,0xfe,0xd2,0xbb,0x8e,0xf9,0xe5,0x1f,0x1e,0xc7,0x4b,
+/* 0x0065f0 */ 0x40,0x9f,0x4b,0x7b,0x32,0x0a,0xcf,0x3f,0x1c,0xdb,0x48,0x17,0x6a,0x73,0x99,0x45,
+/* 0x006600 */ 0x76,0xb4,0x85,0x04,0x7f,0xb9,0x09,0x1a,0xbf,0xfc,0xc3,0x5b,0x50,0x76,0x79,0x4a,
+/* 0x006610 */ 0xde,0x4c,0x7a,0x1a,0xc1,0x6d,0x1e,0x16,0xe1,0xb5,0xe9,0xf0,0x13,0xf2,0xa7,0xea,
+/* 0x006620 */ 0x17,0xe6,0x62,0x4b,0x5d,0x2d,0x27,0x68,0x22,0xa2,0x9f,0xfe,0x4b,0xc0,0x5f,0xd4,
+/* 0x006630 */ 0x5b,0x63,0xdf,0x80,0x2b,0x80,0xa1,0x20,0xab,0x62,0x5c,0x9b,0x9a,0x68,0xc4,0xfb,
+/* 0x006640 */ 0x7a,0xc9,0x72,0x7a,0xd5,0x49,0xc9,0x40,0x6e,0xfd,0x97,0xe0,0x7f,0x38,0x8d,0x9f,
+/* 0x006650 */ 0x1e,0x0d,0x4f,0xa4,0x04,0xdb,0xc3,0x19,0x9d,0x80,0xbe,0x89,0xd4,0x6f,0x08,0xda,
+/* 0x006660 */ 0x5a,0xc3,0x6a,0x18,0x5d,0x10,0x82,0x49,0x97,0xfe,0x6b,0xa1,0xcd,0x64,0xf1,0x22,
+/* 0x006670 */ 0x95,0x3b,0x9c,0xbd,0x09,0x5d,0x42,0x5f,0x48,0x60,0x8e,0x31,0xef,0x12,0xda,0x17,
+/* 0x006680 */ 0xe4,0x97,0xbc,0xfb,0x57,0x81,0xfc,0x43,0xab,0x7b,0x67,0x13,0x00,0x5e,0xfb,0x66,
+/* 0x006690 */ 0xad,0x3a,0x5d,0x4c,0x99,0x35,0x0c,0x59,0x9d,0x45,0x1f,0xeb,0x3c,0xbd,0xf3,0x90,
+/* 0x0066a0 */ 0x1f,0xff,0x95,0xcb,0xaa,0xca,0x2f,0x52,0x19,0xb7,0x8a,0x57,0x4a,0xfb,0xf4,0x14,
+/* 0x0066b0 */ 0x8a,0x62,0x3a,0xcb,0xde,0xb8,0xe5,0x3d,0x9f,0xfc,0xc3,0x6f,0x20,0xf6,0x83,0x18,
+/* 0x0066c0 */ 0xe0,0x2a,0x0d,0x02,0xe7,0xd2,0x38,0xdc,0xaa,0xca,0x4a,0x23,0xfa,0x05,0x29,0x0a,
+/* 0x0066d0 */ 0xd2,0xef,0x6b,0x12,0xb3,0x0e,0x70,0x88,0x30,0x3f,0xfd,0x97,0x32,0x8d,0xa8,0xbc,
+/* 0x0066e0 */ 0x65,0xdc,0xc9,0xb3,0x0a,0x92,0xd9,0xc9,0x7c,0xd0,0x57,0x47,0x7a,0xba,0xdc,0x29,
+/* 0x0066f0 */ 0x34,0xfe,0xfa,0xaf,0xfb,0x79,0x5e,0x9c,0x56,0x97,0xc3,0x5f,0xfb,0xa8,0xaa,0x05,
+/* 0x006700 */ 0xf5,0x93,0x29,0x48,0x35,0xb6,0x81,0x23,0xa2,0x9a,0x4d,0x0d,0x23,0xaf,0x34,0xcc,
+/* 0x006710 */ 0x0f,0x7f,0x1d,0x45,0xf5,0x16,0x14,0x8d,0xca,0xf5,0x40,0x52,0x68,0x49,0xb6,0x09,
+/* 0x006720 */ 0x8c,0xec,0x4e,0x2f,0x29,0x81,0x42,0x45,0x5e,0x69,0x98,0x1f,0xfe,0x3a,0x88,0x96,
+/* 0x006730 */ 0xc2,0xd0,0xc5,0x02,0x2e,0x46,0xac,0x0b,0x2a,0x82,0xa5,0x50,0x24,0x5d,0xdc,0x2b,
+/* 0x006740 */ 0xfd,0x77,0xfe,0x73,0xfc,0xf2,0x0f,0x29,0x61,0x5d,0xe2,0x3a,0x39,0xa9,0xb4,0xee,
+/* 0x006750 */ 0x83,0xc2,0x37,0x29,0x38,0xe9,0xca,0xe3,0x2b,0xbd,0xfa,0xaf,0xb8,0xcd,0x4d,0xd4,
+/* 0x006760 */ 0x92,0x18,0xbb,0xc2,0x7e,0xe7,0x25,0xc6,0x88,0x81,0x91,0x9d,0x74,0x01,0xe2,0x0d,
+/* 0x006770 */ 0x18,0xd5,0x3c,0x3f,0x07,0x9e,0x7f,0x58,0x2c,0x84,0xf1,0x77,0xd0,0xd3,0x79,0x81,
+/* 0x006780 */ 0xfd,0x1a,0x6b,0x6e,0xb6,0xc2,0x71,0x9b,0xcf,0xe3,0xbf,0xe6,0x8e,0xf9,0xe8,0xbf,
+/* 0x006790 */ 0x66,0xb4,0xba,0x73,0xea,0xcd,0x54,0x23,0x4d,0x52,0x0d,0x0f,0x40,0x82,0x1c,0x5e,
+/* 0x0067a0 */ 0xab,0xab,0x56,0x2a,0xce,0xee,0x19,0x20,0xf7,0x7c,0x83,0x13,0xc3,0xe1,0x8b,0x72,
+/* 0x0067b0 */ 0xdc,0x8b,0xbf,0x44,0xfd,0xd7,0x69,0x7d,0xd5,0x45,0xe5,0x56,0xf9,0x5a,0x43,0x4c,
+/* 0x0067c0 */ 0x32,0x3c,0xa7,0x74,0x36,0xc5,0x05,0x8d,0x18,0xae,0x7e,0x27,0x34,0x20,0xc5,0x67,
+/* 0x0067d0 */ 0xc5,0x5f,0x92,0x7e,0x36,0x5a,0xd3,0xa2,0x06,0xe1,0x14,0xc2,0x66,0x15,0xe1,0xb0,
+/* 0x0067e0 */ 0x51,0x98,0x8b,0xa3,0x28,0x36,0x2c,0xc6,0xfc,0x39,0xfc,0x25,0xe0,0x8b,0x60,0xa5,
+/* 0x0067f0 */ 0x53,0x53,0xe0,0xcc,0x79,0x3e,0xb9,0x19,0x05,0x77,0x08,0xef,0xc6,0x49,0x68,0x0c,
+/* 0x006800 */ 0xdc,0xcd,0x7f,0xa3,0xd6,0xda,0x6b,0xaf,0x51,0x76,0x90,0xac,0xab,0x8a,0x1c,0xd3,
+/* 0x006810 */ 0x5c,0x6b,0xdd,0x26,0x81,0x68,0x2e,0xe8,0xbf,0x01,0xf6,0x89,0x6e,0x9a,0xf2,0x39,
+/* 0x006820 */ 0x71,0x9a,0xa6,0x25,0x68,0x94,0x34,0xfa,0xe2,0x2f,0x8e,0xfe,0x6e,0x6a,0x47,0x01,
+/* 0x006830 */ 0x32,0xd8,0x36,0x0e,0xeb,0xf9,0xdf,0xd3,0x99,0x5b,0x45,0x19,0x40,0x88,0x01,0x83,
+/* 0x006840 */ 0x79,0xde,0x8b,0xbf,0x72,0xb6,0xa2,0xa7,0xf1,0xdf,0x5b,0x1b,0xb3,0x8e,0xdb,0xbc,
+/* 0x006850 */ 0x4c,0x07,0x61,0x94,0x2b,0xe6,0x76,0xd9,0xe3,0x43,0xa0,0x59,0x0d,0xf9,0xbf,0x3e,
+/* 0x006860 */ 0xf1,0xc1,0x5f,0xf6,0xf2,0xd5,0xc9,0xf1,0x97,0xf0,0xf2,0xc7,0x51,0x31,0x92,0x84,
+/* 0x006870 */ 0xda,0x0d,0x47,0xb9,0x59,0xa2,0x6d,0xc4,0xe1,0x83,0xbf,0x02,0x27,0x7a,0x08,0x2e,
+/* 0x006880 */ 0x78,0x1c,0x8e,0x0d,0x7b,0x6c,0x5c,0x80,0xab,0xda,0x8b,0x9b,0x29,0x22,0x5b,0xc6,
+/* 0x006890 */ 0xf9,0x2f,0xab,0x9a,0x41,0xb3,0x97,0xdc,0xf8,0x8b,0xf2,0x5f,0xab,0x19,0xa4,0x9a,
+/* 0x0068a0 */ 0x32,0x75,0xd0,0x76,0x8d,0x1b,0x7f,0x30,0x1b,0x47,0xc3,0x0d,0xd2,0x07,0x98,0x40,
+/* 0x0068b0 */ 0x33,0x54,0x5a,0x2b,0x97,0xe1,0x9b,0x52,0x6c,0x2c,0xd4,0x20,0x8f,0xcc,0xb9,0x61,
+/* 0x0068c0 */ 0x26,0xc6,0x48,0xcf,0x07,0xe8,0xa3,0x59,0xfc,0x37,0xa4,0xc4,0x10,0x59,0x3c,0x81,
+/* 0x0068d0 */ 0x08,0x4b,0x58,0xb6,0x11,0xa2,0xf1,0x3c,0x4d,0x44,0x94,0x78,0xfd,0xaf,0x69,0x2d,
+/* 0x0068e0 */ 0xf1,0x71,0x59,0x56,0x3e,0x34,0x2b,0xfe,0x32,0x6b,0xcf,0xa9,0x83,0xa1,0x98,0x79,
+/* 0x0068f0 */ 0x13,0x48,0xae,0xd5,0x72,0x19,0x54,0xfb,0x42,0x8d,0x98,0x35,0x32,0x64,0x3f,0x8d,
+/* 0x006900 */ 0xa1,0x1b,0xb8,0x2e,0x2b,0x10,0xdf,0xbe,0xfc,0x57,0x7f,0xf4,0xc1,0xb4,0xb2,0x43,
+/* 0x006910 */ 0xfa,0x0b,0x7a,0x00,0x68,0x0b,0x90,0x8d,0xd2,0x4c,0xcb,0x42,0x9b,0x11,0x5b,0x48,
+/* 0x006920 */ 0xf6,0xa6,0x8a,0x61,0xc5,0x07,0x7f,0xa1,0x57,0x84,0x1a,0xd6,0x3f,0x59,0x72,0x79,
+/* 0x006930 */ 0x01,0xab,0xa1,0xb6,0x98,0x01,0xde,0x3d,0xb8,0x5a,0x1f,0x6e,0xa6,0x8d,0x2a,0xa6,
+/* 0x006940 */ 0xff,0x3a,0x85,0x17,0xbb,0x4a,0x60,0xfb,0xe3,0xaf,0x4a,0x26,0xf2,0xea,0xb7,0xd9,
+/* 0x006950 */ 0x2e,0x58,0x06,0x8b,0x5f,0xcb,0x9d,0x12,0xab,0x64,0xde,0x5d,0xa5,0x99,0x0b,0xe0,
+/* 0x006960 */ 0xaf,0x7a,0x26,0xf2,0x3a,0xc9,0x80,0x58,0x14,0x9d,0x83,0x34,0xf5,0x2b,0x21,0x38,
+/* 0x006970 */ 0xd9,0x06,0xb6,0x8b,0x84,0x58,0xd3,0xb6,0x34,0x6c,0x36,0xff,0x0d,0xc9,0x03,0xbb,
+/* 0x006980 */ 0xa8,0x8a,0x64,0x93,0xab,0x67,0x20,0x20,0xe0,0x82,0xb9,0x85,0xfd,0x37,0xd4,0x03,
+/* 0x006990 */ 0xf6,0x61,0xbe,0xcd,0x88,0xd1,0xc2,0x49,0xb9,0x7b,0xe6,0x43,0x63,0xde,0x5d,0xf1,
+/* 0x0069a0 */ 0x97,0x37,0x39,0x30,0xf6,0xa8,0xd2,0xe3,0x89,0xa8,0xff,0x7f,0xf8,0xcb,0x7b,0xf3,
+/* 0x0069b0 */ 0x06,0xa5,0xa7,0x29,0xdf,0x87,0xe1,0xf3,0xd9,0xfc,0x37,0xf6,0xf7,0xc4,0x5a,0xa2,
+/* 0x0069c0 */ 0xf3,0x3a,0x86,0x4c,0x01,0x29,0xc4,0x41,0xed,0x25,0x72,0x64,0x38,0xd6,0xb2,0x91,
+/* 0x0069d0 */ 0x36,0x82,0x85,0xfd,0x37,0xb6,0x26,0x14,0xf5,0x59,0x59,0xac,0xb6,0x4c,0x1a,0xad,
+/* 0x0069e0 */ 0x1d,0x21,0xb7,0xc7,0x82,0xe2,0x87,0xbf,0x5c,0xfe,0x1b,0x7a,0x63,0x0b,0xd4,0x5f,
+/* 0x0069f0 */ 0x36,0xa1,0xa7,0x94,0xf3,0x5f,0x2d,0xd5,0x1f,0xa6,0xdc,0x73,0xd1,0xb2,0x2f,0x9d,
+/* 0x006a00 */ 0x8f,0xbf,0x44,0xfe,0xeb,0xf7,0x88,0x6c,0x16,0xe9,0xd4,0x68,0xfb,0xfb,0x8c,0xed,
+/* 0x006a10 */ 0x02,0xfe,0xab,0x7a,0x83,0xaa,0x7d,0x6b,0xa5,0xcd,0x7f,0x01,0x11,0x76,0xb2,0x45,
+/* 0x006a20 */ 0xcd,0xd2,0x4b,0x2e,0xfc,0xe5,0xae,0xbf,0x1c,0x59,0x10,0xed,0xd4,0xaf,0x20,0x01,
+/* 0x006a30 */ 0x64,0x2d,0x2d,0x56,0xf6,0xbc,0xa3,0xbb,0xef,0x51,0x7c,0xfc,0x37,0xdc,0xf5,0x97,
+/* 0x006a40 */ 0xf5,0x26,0x45,0xd3,0x86,0x3a,0xf7,0x53,0x21,0x18,0x03,0x59,0xcd,0x25,0x36,0x23,
+/* 0x006a50 */ 0xc6,0x94,0x77,0xc1,0xe8,0xfa,0xe8,0x5d,0xf0,0x57,0x1f,0x8a,0xac,0x6b,0xf6,0x80,
+/* 0x006a60 */ 0xac,0x4a,0xa3,0xe5,0xc0,0xbd,0xae,0x77,0x23,0xb3,0x4e,0x11,0x18,0x31,0x7f,0xfc,
+/* 0x006a70 */ 0x75,0xd4,0x50,0xa1,0x0e,0xc2,0x6f,0x5d,0xb8,0xe9,0x60,0x79,0xa5,0xc8,0x21,0x36,
+/* 0x006a80 */ 0xac,0xdb,0xbb,0xff,0x3b,0xa3,0xda,0xe3,0xb3,0xe5,0x1f,0x52,0x4a,0xcb,0xe5,0x3f,
+/* 0x006a90 */ 0x5f,0xbf,0xae,0x6a,0x7f,0xc8,0xf5,0xbb,0x4e,0xdd,0x1d,0x7f,0x69,0x94,0xe4,0x62,
+/* 0x006aa0 */ 0x3d,0xb6,0xda,0x0b,0x85,0x83,0xf3,0xda,0x6d,0x68,0xa6,0xa3,0x31,0x25,0x81,0xc4,
+/* 0x006ab0 */ 0x44,0x56,0x5f,0xfc,0x65,0x3d,0x80,0x95,0x23,0x12,0x60,0xab,0xc7,0x28,0xdb,0x85,
+/* 0x006ac0 */ 0x4e,0x06,0xab,0x0f,0x86,0x32,0xb2,0x9d,0xa3,0x58,0x1e,0x45,0xcf,0x1b,0x6e,0x68,
+/* 0x006ad0 */ 0xe6,0xeb,0xbf,0x31,0x4c,0xd6,0xa8,0x87,0x24,0x95,0xba,0x06,0xb1,0x05,0x2d,0x10,
+/* 0x006ae0 */ 0xbb,0x11,0x72,0xad,0x6c,0x70,0xe4,0x2e,0xae,0x63,0x05,0xfc,0x37,0x46,0xc8,0x9a,
+/* 0x006af0 */ 0x79,0x88,0xe1,0xaf,0x9d,0xae,0xbc,0x38,0xc8,0x51,0xdc,0x29,0x25,0x00,0x7f,0x8d,
+/* 0x006b00 */ 0x90,0xf5,0xf9,0xf7,0x5e,0xfc,0x85,0x04,0xfc,0x75,0x13,0xaf,0x18,0x53,0x27,0xb8,
+/* 0x006b10 */ 0xff,0x21,0x37,0x42,0x5c,0xab,0x87,0x59,0x63,0x05,0xdc,0x93,0x50,0x08,0x34,0x1b,
+/* 0x006b20 */ 0x55,0x7d,0xf0,0x97,0x80,0x0b,0xe6,0x93,0x80,0xe1,0x1c,0x69,0x5c,0x33,0x80,0xff,
+/* 0x006b30 */ 0x2a,0xae,0xb1,0xf3,0x2e,0x26,0x64,0x2e,0x18,0x67,0x21,0x44,0x72,0xf8,0xbf,0xd8,
+/* 0x006b40 */ 0x11,0x2e,0x01,0x6b,0x05,0xf5,0x5f,0xa3,0xd4,0x04,0x60,0x0a,0x53,0x4f,0xe6,0x69,
+/* 0x006b50 */ 0x16,0x1f,0x0e,0xca,0x89,0xe0,0xd4,0x01,0x72,0xcf,0x20,0xf9,0x33,0xe0,0x7c,0x5e,
+/* 0x006b60 */ 0x1d,0xa8,0x70,0x8c,0xe8,0xfd,0xf4,0x5f,0xfd,0x16,0x89,0xbe,0x9e,0x8c,0x90,0x81,
+/* 0x006b70 */ 0x32,0xe9,0x9e,0x02,0xc7,0x86,0x55,0x48,0x99,0x04,0x25,0x17,0x8e,0x59,0x34,0xe5,
+/* 0x006b80 */ 0x72,0x8f,0x56,0x05,0xba,0xe3,0x4b,0x46,0x3e,0xfe,0xfa,0xb9,0x08,0xcd,0x94,0x1d,
+/* 0x006b90 */ 0xb6,0xbc,0x8e,0xf7,0x04,0xa3,0x8c,0x11,0x5b,0x42,0x7b,0x30,0xd9,0x10,0x87,0x95,
+/* 0x006ba0 */ 0x1d,0xdc,0x7f,0x7e,0xe3,0xf6,0x22,0x5f,0xff,0x0d,0x69,0x5b,0x7e,0x72,0xa9,0x46,
+/* 0x006bb0 */ 0xb3,0xb3,0x18,0x46,0x2b,0x1a,0x41,0xde,0x04,0x54,0x5f,0xfd,0x17,0x89,0xd9,0xa8,
+/* 0x006bc0 */ 0xda,0x4b,0x04,0x47,0x57,0xd4,0x2c,0xf0,0x29,0x0c,0xc2,0x8c,0xa3,0xb7,0x20,0xf1,
+/* 0x006bd0 */ 0x6f,0x20,0x95,0xdb,0xdf,0x1d,0xfc,0x25,0xe6,0x35,0x51,0x74,0x3c,0xe2,0x7a,0x0e,
+/* 0x006be0 */ 0x12,0x10,0x34,0x2d,0x39,0x94,0x2c,0x8c,0xbf,0x78,0xdc,0x72,0x0b,0xaf,0xb2,0xc2,
+/* 0x006bf0 */ 0x97,0xec,0xfc,0x43,0x0e,0x07,0x22,0xe4,0xef,0x11,0x18,0xb1,0x5f,0x31,0x8e,0x2c,
+/* 0x006c00 */ 0x39,0x1b,0xfe,0x1a,0x48,0x2f,0xb7,0x42,0x07,0x79,0x7c,0xd8,0xcd,0xe2,0x67,0x18,
+/* 0x006c10 */ 0x9f,0xa2,0x58,0x8e,0x11,0xfb,0xd2,0xaa,0x87,0x61,0x89,0xcf,0xee,0xbf,0x11,0xb1,
+/* 0x006c20 */ 0xed,0x17,0x72,0x20,0xeb,0xbb,0x0a,0x3b,0xf9,0x7f,0x2c,0xe7,0x45,0x90,0x4b,0xc1,
+/* 0x006c30 */ 0x2a,0xc0,0x7f,0x29,0xd1,0xff,0xa3,0xec,0x6a,0x83,0xa3,0x38,0xce,0x74,0xef,0xcc,
+/* 0x006c40 */ 0x00,0xa3,0xdd,0x95,0x76,0x58,0x44,0x4e,0xb6,0xaf,0xcc,0x68,0xb5,0xe7,0xac,0xa9,
+/* 0x006c50 */ 0x95,0xb4,0xac,0x30,0x08,0x10,0xab,0xb1,0xa4,0xab,0x13,0xa0,0x33,0x8a,0xcf,0x55,
+/* 0x006c60 */ 0xc7,0xa5,0x5c,0xae,0x4d,0x42,0xee,0x74,0x29,0x57,0x0e,0x27,0xb9,0x2a,0x6c,0xa7,
+/* 0x006c70 */ 0x9c,0x61,0x57,0x06,0x19,0xf1,0xb1,0xc6,0xe4,0x90,0x3f,0x52,0xb5,0x7c,0xf8,0x42,
+/* 0x006c80 */ 0x6c,0x2a,0xb5,0x02,0x63,0x83,0x21,0xf1,0x20,0x2b,0xe7,0x05,0x64,0x50,0xc9,0x5c,
+/* 0x006c90 */ 0x0e,0x03,0x85,0x17,0xa2,0x50,0x32,0xc6,0x44,0x18,0x4c,0x04,0x88,0x70,0xfd,0x76,
+/* 0x006ca0 */ 0xf7,0xcc,0xf4,0xec,0xae,0xe0,0xce,0xbf,0xba,0x66,0x9a,0xd1,0xba,0x7b,0xa6,0xfb,
+/* 0x006cb0 */ 0x7d,0xfa,0x79,0x9f,0xe7,0x1d,0x80,0x86,0x90,0x8c,0x87,0x07,0xc8,0x31,0x2f,0xc4,
+/* 0x006cc0 */ 0x99,0xf0,0xc1,0x3e,0x4a,0xf8,0xca,0xd9,0x89,0x75,0xfa,0x76,0x2d,0x98,0xf5,0xec,
+/* 0x006cd0 */ 0x16,0xbc,0xda,0xdd,0xfc,0x37,0x22,0x75,0x59,0x08,0x9b,0xe5,0xa3,0xf1,0xd8,0xa0,
+/* 0x006ce0 */ 0x6f,0x2f,0x05,0xbc,0x48,0xde,0x2d,0x54,0x43,0x9f,0x13,0xbe,0x77,0xc5,0x4b,0xe9,
+/* 0x006cf0 */ 0x1b,0x5a,0xdd,0x89,0xa5,0xbb,0xbb,0xad,0x88,0xda,0xd6,0x7f,0xb9,0xec,0xf8,0x30,
+/* 0x006d00 */ 0x18,0xfb,0x98,0xc6,0x87,0x5a,0xec,0xe4,0xd2,0xab,0x44,0x96,0x82,0x61,0xd7,0x35,
+/* 0x006d10 */ 0x9a,0x3a,0x65,0xcc,0xf8,0x0a,0x8f,0xcf,0x25,0x5a,0xff,0xeb,0x9a,0x9e,0xc7,0x7f,
+/* 0x006d20 */ 0x15,0xf8,0x1f,0x92,0x46,0x68,0x2e,0x49,0x13,0xd5,0x8f,0xab,0x75,0xfd,0xeb,0x06,
+/* 0x006d30 */ 0xc5,0x1f,0xa1,0xe3,0x9d,0x73,0xa9,0x47,0xfd,0x7f,0xa3,0x46,0x79,0x63,0x1f,0x86,
+/* 0x006d40 */ 0x5d,0xc7,0x1d,0xf8,0x2b,0x47,0xf2,0x0f,0x63,0x14,0x5b,0xbd,0xae,0x13,0x2c,0x83,
+/* 0x006d50 */ 0xaf,0x18,0x81,0x3e,0x4f,0xc6,0x5d,0x8d,0xde,0x1e,0xaa,0x32,0xe4,0x1e,0x7f,0x4e,
+/* 0x006d60 */ 0x5e,0xab,0x07,0x48,0x1f,0x6d,0xad,0x5e,0xb3,0xc3,0xf3,0x2b,0xe1,0x4f,0xda,0xdb,
+/* 0x006d70 */ 0x0c,0x7f,0xd1,0xf7,0x07,0xea,0x7f,0x6d,0xe7,0xf3,0xb1,0xcd,0x00,0x2f,0x8b,0xe7,
+/* 0x006d80 */ 0x62,0x3d,0xda,0xee,0x52,0xb3,0x6e,0xe5,0xf1,0x61,0xe5,0x15,0xf3,0xc8,0xdd,0xda,
+/* 0x006d90 */ 0xec,0x92,0x4e,0xfc,0x45,0xf2,0x0f,0x59,0x6d,0xaf,0xd7,0x5d,0x35,0xfd,0xe6,0x0b,
+/* 0x006da0 */ 0xa0,0x31,0x23,0x97,0x00,0x94,0xd5,0xbb,0xac,0xbe,0x66,0xbe,0x12,0xbf,0xc2,0xbf,
+/* 0x006db0 */ 0xb9,0x7b,0xb7,0xe5,0x88,0xd8,0xc4,0xf0,0x57,0x65,0xf9,0x2e,0x76,0x9a,0x41,0x5f,
+/* 0x006dc0 */ 0xf5,0x95,0x94,0xf6,0x42,0x73,0x4f,0xfa,0xde,0xc7,0x00,0xea,0x4f,0x68,0xf7,0xa1,
+/* 0x006dd0 */ 0xb2,0x93,0xe2,0x17,0xc2,0x27,0xf8,0x35,0x5e,0x93,0x21,0xe9,0x82,0x8d,0xf5,0xbe,
+/* 0x006de0 */ 0xff,0xc2,0xc3,0xc2,0xf0,0x0e,0x5b,0x7f,0x1c,0xf5,0xbf,0x3e,0x43,0x78,0xe8,0xa0,
+/* 0x006df0 */ 0x71,0x15,0x35,0xa6,0xf0,0x34,0x3d,0x89,0x9f,0xbc,0xd0,0xa8,0x3e,0x85,0x41,0xd6,
+/* 0x006e00 */ 0x65,0x4a,0x65,0x9e,0x91,0x70,0x9f,0x9d,0x1b,0x77,0x8a,0x97,0xcd,0xf9,0x62,0x75,
+/* 0x006e10 */ 0x66,0xf3,0xfd,0x0f,0xcd,0xc3,0x90,0x05,0x83,0x65,0xef,0x88,0x97,0x94,0xa3,0x62,
+/* 0x006e20 */ 0xd4,0x28,0x05,0x67,0x60,0x46,0x8d,0xe1,0x6f,0x59,0x8b,0xb6,0xfb,0x36,0x7b,0xa4,
+/* 0x006e30 */ 0xbb,0xe0,0x2f,0xfe,0x58,0x23,0x60,0xc8,0xf7,0x0b,0xe3,0xf2,0x1a,0x1d,0xcf,0xd7,
+/* 0x006e40 */ 0x66,0xe1,0x63,0xed,0x7d,0x3a,0x3e,0xe3,0xec,0xdb,0x09,0x58,0x19,0x89,0x0c,0x7f,
+/* 0x006e50 */ 0x19,0x92,0xe3,0x14,0x22,0x8c,0x3c,0x91,0x26,0x42,0x7f,0x1c,0x12,0x1b,0x12,0x03,
+/* 0x006e60 */ 0xc2,0x2b,0x15,0x78,0x47,0x2b,0x4f,0x80,0x35,0x87,0x35,0x5f,0x2a,0x9c,0x28,0xca,
+/* 0x006e70 */ 0xe6,0x7c,0x31,0xfd,0x57,0x4e,0x79,0xca,0xe1,0x6d,0x18,0xf7,0xac,0x44,0x67,0x59,
+/* 0x006e80 */ 0xb6,0x46,0x00,0x4c,0x7a,0xd5,0x5c,0xc9,0x32,0x90,0x86,0x19,0x94,0xb2,0x91,0xf7,
+/* 0x006e90 */ 0x76,0x6e,0x1d,0x26,0x92,0xa5,0x35,0x26,0xfe,0x42,0x14,0x7f,0xb5,0xe5,0x4b,0xba,
+/* 0x006ea0 */ 0x5c,0xb8,0x31,0x2d,0x6a,0xcc,0xc0,0xbb,0x8c,0xfe,0x89,0x12,0x31,0xda,0x14,0xbc,
+/* 0x006eb0 */ 0xb2,0x5d,0x6d,0x8d,0xf0,0x1a,0xb1,0x69,0x5e,0x93,0x08,0x1b,0x9a,0x4c,0x9e,0x63,
+/* 0x006ec0 */ 0x4c,0x3f,0x68,0x9f,0x23,0x31,0xb2,0x1e,0x8f,0xb3,0x74,0xc7,0xd8,0xd0,0x4b,0x12,
+/* 0x006ed0 */ 0x7d,0x3f,0x30,0x36,0xe0,0xe1,0xfd,0xdb,0xaf,0xcc,0x7c,0x00,0x1c,0xe9,0xf5,0x83,
+/* 0x006ee0 */ 0x11,0x47,0x1e,0xfe,0x92,0x25,0xe7,0x7c,0xc5,0x4b,0xc9,0xe2,0xa9,0xbc,0x40,0x8a,
+/* 0x006ef0 */ 0x5d,0x2a,0x47,0x95,0x68,0xf6,0xc9,0x41,0xfe,0x38,0xeb,0x86,0x3e,0x3f,0xd7,0xb6,
+/* 0x006f00 */ 0x0f,0x1c,0xe9,0x91,0x43,0xff,0x55,0xe1,0x4c,0x65,0xd7,0xcc,0x63,0x55,0xb6,0xcb,
+/* 0x006f10 */ 0xa8,0x75,0x47,0xe0,0x8a,0xf4,0x67,0x17,0x57,0x5f,0x46,0xe6,0xbc,0xa1,0x98,0xfe,
+/* 0x006f20 */ 0x02,0xe1,0xfd,0xdd,0xc6,0x5f,0x7a,0x6d,0x9c,0xd2,0x8b,0x6f,0x56,0xe7,0xba,0x57,
+/* 0x006f30 */ 0x26,0xce,0xb6,0x24,0xd3,0xdf,0x1f,0x96,0x97,0xf9,0xcf,0x86,0xde,0xec,0xa3,0xb4,
+/* 0x006f40 */ 0x97,0xb6,0x75,0x55,0x38,0xb7,0xa8,0xde,0x5f,0x26,0x5b,0xe3,0x4c,0xdf,0x1f,0x69,
+/* 0x006f50 */ 0x1d,0xaa,0xe3,0xe6,0x9d,0x9a,0xe1,0xe0,0xd5,0xef,0xbc,0x27,0x92,0x80,0xdd,0x2a,
+/* 0x006f60 */ 0x0e,0xba,0xbf,0x63,0x68,0x4f,0xdc,0xec,0x83,0xe3,0x96,0x9d,0x78,0x85,0x34,0x09,
+/* 0x006f70 */ 0xeb,0x53,0x12,0xd3,0x7f,0x39,0x24,0x5d,0x8d,0x9d,0xa5,0xac,0x91,0xd9,0xf8,0xb4,
+/* 0x006f80 */ 0x38,0x22,0xf4,0x01,0x22,0x7b,0x4b,0xbc,0x89,0x2e,0x1b,0x66,0x8e,0xa2,0xda,0x08,
+/* 0x006f90 */ 0x44,0x58,0x3d,0xa9,0x11,0x06,0xf8,0x8b,0xfe,0x9e,0x56,0x57,0xbe,0xaf,0x1a,0x6b,
+/* 0x006fa0 */ 0x48,0xac,0x10,0x73,0x03,0xaa,0xd5,0x1d,0xb4,0x57,0x5e,0xc9,0xa1,0x21,0xfa,0x5d,
+/* 0x006fb0 */ 0xac,0x53,0x76,0xa0,0xe2,0x55,0xa8,0xbc,0x9b,0xa6,0x05,0xd1,0x61,0xfd,0x5d,0x70,
+/* 0x006fc0 */ 0xdb,0x00,0x9b,0x82,0xa8,0x7d,0x6b,0x29,0xc4,0xa2,0x25,0xf4,0x5f,0xf5,0xf1,0xfa,
+/* 0x006fd0 */ 0xaf,0x42,0x6c,0x05,0x49,0x86,0x81,0x20,0xfa,0x34,0x10,0xd0,0xe4,0x57,0x85,0x0b,
+/* 0x006fe0 */ 0x5d,0xbd,0x9c,0x93,0x46,0x7b,0x19,0x38,0xc9,0x7f,0x6a,0xe2,0x2f,0xf2,0x5f,0x3d,
+/* 0x006ff0 */ 0xc1,0x5f,0x33,0xad,0xac,0x33,0x0e,0x88,0x6d,0xf6,0x4b,0xe8,0x25,0x35,0xa0,0x95,
+/* 0x007000 */ 0xa4,0x9a,0x2e,0x4c,0xda,0xaf,0xb2,0xe7,0xe0,0x6f,0xb9,0xc9,0x93,0xf2,0x0f,0x47,
+/* 0x007010 */ 0x4c,0x1f,0x06,0x16,0x67,0x2a,0x4e,0xff,0xc3,0x16,0xd6,0xf8,0x21,0x98,0xd5,0x4b,
+/* 0x007020 */ 0x4d,0x2f,0xa3,0x60,0x4b,0x09,0xbe,0xb2,0x68,0x3f,0x4a,0x9b,0x7d,0x9e,0xd6,0xdc,
+/* 0x007030 */ 0x0e,0x5c,0x40,0xfe,0xbf,0x68,0xfd,0x2f,0x6b,0xe8,0x1e,0x54,0x3c,0x4c,0x08,0x76,
+/* 0x007040 */ 0x7f,0xb8,0xd3,0xe3,0xda,0x91,0x0d,0x45,0xef,0x2f,0xdd,0x96,0x04,0xe5,0x54,0x94,
+/* 0x007050 */ 0x96,0x66,0xc6,0xb7,0xdc,0xbe,0x44,0x32,0x97,0x1e,0xa1,0x11,0xf5,0xe5,0x29,0x14,
+/* 0x007060 */ 0x7f,0xfd,0xdc,0x31,0xbc,0x0b,0x4d,0x91,0x57,0xe3,0xa2,0x0d,0x43,0xb4,0x10,0x58,
+/* 0x007070 */ 0x6b,0xcd,0x60,0x15,0x08,0x99,0x59,0x9f,0x3b,0x26,0x80,0x62,0xd8,0xe1,0x72,0xf1,
+/* 0x007080 */ 0xfa,0x5f,0xac,0x1c,0xb0,0x1e,0x7b,0xc6,0xf7,0x84,0x78,0x21,0xf0,0x47,0x3d,0xda,
+/* 0x007090 */ 0x1e,0x3e,0x95,0xbc,0x66,0x6a,0xcd,0x2e,0x80,0x07,0x45,0x87,0xef,0x35,0xf1,0x21,
+/* 0x0070a0 */ 0x93,0x50,0x3b,0x46,0xbf,0xaf,0x79,0x15,0x4e,0x49,0x97,0x4a,0x1b,0x4a,0x4d,0xda,
+/* 0x0070b0 */ 0xb3,0x53,0x38,0x87,0xba,0x24,0x55,0xc5,0x68,0xeb,0x7c,0x9a,0xf5,0x21,0xd2,0x30,
+/* 0x0070c0 */ 0xd4,0xad,0x0b,0x11,0xf6,0xaf,0xfc,0x56,0xfd,0xaf,0x4e,0xb0,0x94,0xb7,0xc6,0xb9,
+/* 0x0070d0 */ 0xd5,0x6c,0x2c,0x23,0x8e,0xf4,0x5b,0x5b,0x54,0xad,0x95,0x1b,0xd5,0xdf,0x49,0xbd,
+/* 0x0070e0 */ 0x5a,0xf5,0x0a,0xcf,0x93,0xc2,0x3f,0xe6,0xeb,0xbf,0x24,0x27,0xa6,0x6e,0xb7,0xe6,
+/* 0x0070f0 */ 0xbd,0xdb,0x34,0x57,0x91,0x89,0x22,0x4c,0xb2,0x34,0x62,0xb5,0x9a,0x67,0x50,0xf8,
+/* 0x007100 */ 0x89,0x8d,0xbf,0xc8,0x73,0xf2,0xf9,0x2f,0x33,0x7b,0x36,0xb6,0x02,0x64,0x5f,0xd2,
+/* 0x007110 */ 0xe7,0x02,0xd8,0xce,0xbb,0x2e,0x70,0x7d,0x8c,0x18,0xec,0x17,0xdf,0xb7,0xf4,0x5f,
+/* 0x007120 */ 0xf4,0xf7,0xc8,0x79,0xfa,0x2f,0x2b,0x6b,0xf1,0x5b,0xbe,0x9e,0x6f,0x02,0x6a,0x8b,
+/* 0x007130 */ 0x69,0xb5,0xaf,0x8a,0x17,0x34,0x3c,0xbc,0xb8,0xcf,0x94,0x42,0x47,0xc4,0x53,0xf4,
+/* 0x007140 */ 0xf7,0x38,0xeb,0xa4,0xf3,0xc7,0x23,0xe1,0x75,0x62,0x5c,0xce,0xa2,0xd9,0xa8,0x54,
+/* 0x007150 */ 0x4f,0x9e,0xd3,0xc6,0x34,0x4e,0x23,0xb6,0x14,0x79,0x2c,0x8f,0x8e,0x89,0xea,0x7f,
+/* 0x007160 */ 0x59,0x0d,0x34,0x12,0xc0,0x68,0x2b,0x37,0x1f,0x1c,0xe9,0xf1,0x7e,0xca,0xdd,0x82,
+/* 0x007170 */ 0xa9,0x9c,0x69,0x7a,0x24,0xf6,0x31,0xfd,0x97,0x73,0xff,0xe2,0x78,0x10,0x0c,0xc4,
+/* 0x007180 */ 0x9e,0x46,0xc9,0x6c,0xd0,0x90,0x15,0xff,0x31,0x65,0x8f,0x62,0xaf,0x75,0xe0,0xcd,
+/* 0x007190 */ 0x5b,0x66,0xee,0x5f,0x7d,0x14,0x7f,0x3d,0xaa,0x38,0xf1,0x97,0x95,0x9f,0x90,0x93,
+/* 0x0071a0 */ 0xc7,0x84,0x36,0xf4,0x22,0xfa,0xd7,0x6c,0x47,0xbb,0x70,0x02,0xfd,0x27,0x57,0xd6,
+/* 0x0071b0 */ 0xaa,0x0f,0x2f,0x95,0x0f,0xaa,0x6c,0x7d,0x66,0xe7,0x87,0xa8,0xb0,0xfe,0x17,0xd1,
+/* 0x0071c0 */ 0x7f,0x35,0xe6,0x2a,0x56,0x8a,0x4f,0x35,0x7d,0xa4,0x3f,0x72,0xd1,0xbb,0xac,0x79,
+/* 0x0071d0 */ 0x08,0x7d,0xcd,0x69,0xc4,0xd2,0xbe,0x95,0xd3,0xdc,0x02,0xf3,0x48,0x3c,0xca,0xea,
+/* 0x0071e0 */ 0x7f,0x95,0xef,0x9a,0xca,0xed,0x3b,0x8d,0x0e,0x91,0x17,0x6c,0x49,0x73,0x06,0xc0,
+/* 0x0071f0 */ 0xb2,0x46,0xba,0xc8,0xed,0x4d,0xba,0x2f,0x43,0x32,0x31,0x1c,0xfc,0x57,0xe7,0x6f,
+/* 0x007200 */ 0x15,0x87,0x09,0xb6,0x97,0x35,0xce,0xe3,0xc6,0x0b,0xea,0x47,0xfa,0xf3,0xc3,0xde,
+/* 0x007210 */ 0x7f,0x10,0x63,0xda,0xc7,0x29,0x16,0x3a,0x1e,0xd7,0xeb,0xe2,0x6d,0x27,0xab,0xe6,
+/* 0x007220 */ 0x98,0xf1,0xe1,0x49,0x3a,0x5f,0xbb,0xf0,0xfe,0xf5,0x67,0xbb,0xb6,0x57,0xad,0x61,
+/* 0x007230 */ 0x9d,0x0d,0x96,0xfe,0x84,0xb0,0x5d,0xdf,0x19,0x08,0x3d,0x21,0x3e,0x82,0x4e,0x68,
+/* 0x007240 */ 0x56,0x0e,0x67,0xa5,0x26,0xb7,0x0b,0xe5,0xa6,0x47,0xe2,0x45,0x41,0xa5,0x2b,0x62,
+/* 0x007250 */ 0x9e,0xa4,0x8b,0xa4,0xdf,0x6f,0x81,0xf9,0x6a,0x27,0xcf,0xa9,0x34,0x16,0xb7,0xfb,
+/* 0x007260 */ 0xdb,0xd1,0x8b,0xe6,0x73,0xd6,0xc8,0x2a,0x92,0x15,0x3c,0x28,0xce,0xfc,0xc3,0xe5,
+/* 0x007270 */ 0x92,0xe3,0x94,0x38,0xfc,0x55,0x88,0xed,0x5f,0x27,0x4b,0x22,0xc2,0x25,0x7f,0xd2,
+/* 0x007280 */ 0x95,0x36,0xba,0x50,0x40,0x9a,0x9a,0x62,0xf3,0x5e,0xbe,0xbd,0x4b,0x45,0x5d,0x4a,
+/* 0x007290 */ 0x93,0xcb,0x9c,0xf7,0x41,0x1a,0xaf,0xbe,0x45,0xf2,0xac,0xe6,0x9b,0x63,0xb8,0x70,
+/* 0x0072a0 */ 0xc8,0x0b,0x3c,0xd1,0x69,0x1c,0xe0,0x79,0x33,0xc9,0x9f,0xfa,0x3f,0x9c,0xb4,0xc0,
+/* 0x0072b0 */ 0x68,0xeb,0xa9,0x7c,0x1a,0xf5,0x69,0x6c,0x9c,0x8f,0xe8,0xbb,0x73,0xe1,0x74,0x77,
+/* 0x0072c0 */ 0x4d,0xd3,0x51,0xf3,0x7c,0x95,0x8c,0xb3,0x8e,0x76,0xf1,0xb3,0x43,0x3b,0x4b,0x44,
+/* 0x0072d0 */ 0x9d,0x77,0x01,0x4e,0xd1,0xb5,0x06,0xe3,0xdf,0xd6,0xe1,0xe5,0xeb,0xa6,0xf9,0x1c,
+/* 0x0072e0 */ 0xdc,0xc8,0xe1,0xed,0xcf,0xaa,0x40,0x3a,0x42,0x7f,0xcf,0x56,0xe5,0xa0,0x74,0xc7,
+/* 0x0072f0 */ 0xc5,0xa5,0x4e,0x95,0xda,0x07,0xfe,0xfe,0x06,0x1c,0x79,0x46,0x0d,0xf7,0x4a,0x71,
+/* 0x007300 */ 0x36,0x2a,0x43,0xdb,0x8d,0xa5,0xa3,0xd3,0x2e,0x49,0x37,0xd1,0x42,0xbc,0x9f,0x8a,
+/* 0x007310 */ 0xf5,0x16,0xfe,0xd2,0xe8,0x73,0x74,0x0e,0x5b,0x51,0x13,0x00,0xdc,0x58,0x00,0xb6,
+/* 0x007320 */ 0x6c,0xd7,0x70,0xfc,0xec,0x41,0x55,0x06,0x4a,0x0b,0x5b,0xd0,0xda,0x7e,0x16,0x3f,
+/* 0x007330 */ 0xbf,0x1f,0xaf,0xd1,0x65,0x55,0x08,0x15,0xe2,0x2f,0x8b,0xed,0x22,0x8d,0x12,0x2b,
+/* 0x007340 */ 0xe0,0xac,0x87,0xe7,0xac,0xc3,0x01,0xe7,0xa6,0xa6,0x7f,0x46,0xef,0xeb,0x3f,0xb0,
+/* 0x007350 */ 0x78,0x10,0x0d,0xaf,0xb4,0xc1,0xfc,0xfa,0x5f,0xe5,0x5e,0x17,0xa7,0x6a,0xa9,0x01,
+/* 0x007360 */ 0x2c,0x6c,0x72,0x2e,0x4d,0xeb,0xca,0x92,0x50,0x41,0x00,0xd6,0xd5,0xdd,0xe6,0x27,
+/* 0x007370 */ 0xbc,0x1b,0xb6,0x5a,0x59,0x90,0x2c,0xfe,0x8b,0xbe,0x3d,0xfa,0x7a,0x8e,0xff,0x82,
+/* 0x007380 */ 0xa1,0x2b,0xe5,0xbe,0x8b,0x37,0x84,0xd3,0xc4,0x2f,0xa5,0x79,0xb9,0x70,0xd3,0x9c,
+/* 0x007390 */ 0xd3,0x9b,0xe6,0xd1,0x90,0x89,0xbf,0x26,0x2b,0x74,0x5d,0xe5,0xf0,0x97,0xa3,0xb1,
+/* 0x0073a0 */ 0xd1,0x6c,0x84,0x73,0xe2,0x3b,0xe8,0x18,0xfa,0xa6,0x61,0x7a,0xa1,0x20,0x9f,0x81,
+/* 0x0073b0 */ 0x71,0xc1,0x5d,0xf0,0x17,0x0e,0xda,0x07,0xdb,0x32,0xff,0x32,0x6e,0x5e,0x79,0x81,
+/* 0x0073c0 */ 0x9e,0x6f,0xb4,0x52,0x21,0x98,0x5a,0x3a,0x46,0x2c,0x23,0x62,0xe6,0xdf,0xaa,0xe3,
+/* 0x0073d0 */ 0xfd,0x37,0x78,0xfd,0xd7,0x07,0xed,0x73,0xce,0x94,0x7e,0xfd,0x1f,0x77,0x1c,0x26,
+/* 0x0073e0 */ 0x1b,0xaa,0xbb,0xc7,0x0f,0x6c,0x57,0x4c,0x95,0xf7,0x3d,0x6e,0x77,0x96,0x0f,0x50,
+/* 0x0073f0 */ 0x44,0xc6,0xf8,0xaf,0x11,0x07,0xff,0x55,0x12,0x34,0x96,0x61,0x78,0x0b,0x18,0xf6,
+/* 0x007400 */ 0x90,0x49,0x72,0x69,0x25,0x88,0x64,0x08,0x00,0xe0,0xf5,0x0f,0x48,0xbd,0x00,0x78,
+/* 0x007410 */ 0x15,0x3b,0x09,0xaa,0xa8,0xfe,0x4b,0x7a,0x88,0x9b,0x77,0xd6,0x88,0x63,0x44,0x4f,
+/* 0x007420 */ 0xf2,0x4e,0x5d,0xf3,0xf2,0x53,0x13,0x79,0xfe,0xab,0xdc,0x11,0x3f,0x03,0x3b,0xd9,
+/* 0x007430 */ 0xc4,0xfb,0x27,0xa0,0xd8,0xbe,0x49,0x3b,0xbf,0x07,0x73,0x1a,0x46,0x50,0x6f,0x0b,
+/* 0x007440 */ 0xfd,0x16,0xc6,0x39,0x47,0xc6,0x79,0x1b,0xc7,0x7f,0x39,0xf0,0xd7,0x9f,0x25,0xcb,
+/* 0x007450 */ 0xb4,0xc1,0x9e,0x38,0xbd,0x2c,0x67,0x36,0xd8,0x7c,0x81,0xf3,0xc0,0x98,0x99,0x5c,
+/* 0x007460 */ 0x6a,0xf3,0x5f,0x0a,0x1f,0xcf,0x1f,0x92,0xf0,0x77,0xa1,0x1c,0x55,0x63,0x59,0xf3,
+/* 0x007470 */ 0x4a,0x87,0xb7,0x07,0xfc,0x1c,0x64,0x56,0xb9,0xcf,0xda,0x34,0xaf,0x3a,0xf1,0x57,
+/* 0x007480 */ 0x4b,0x98,0x87,0x5d,0xb5,0x87,0xc2,0xa3,0xc2,0xb8,0xd0,0x6d,0xd4,0x0c,0xb2,0x41,
+/* 0x007490 */ 0x08,0x6b,0xa5,0xd3,0xe9,0x29,0x84,0xee,0xce,0x4c,0xc6,0x57,0xda,0x6b,0x4e,0xb0,
+/* 0x0074a0 */ 0x5b,0xf3,0x79,0xfe,0x2b,0x0f,0x7f,0x51,0x6e,0x2b,0x69,0x84,0x07,0x1f,0x60,0x89,
+/* 0x0074b0 */ 0x1c,0xc8,0x4d,0xe6,0x4b,0xc3,0x8d,0x48,0x80,0x9b,0xdc,0x8c,0x83,0xff,0x4a,0x2b,
+/* 0x0074c0 */ 0x4f,0x21,0x87,0xd5,0x83,0xbc,0x92,0xe9,0x92,0x1e,0x30,0x91,0x82,0xe7,0x94,0xff,
+/* 0x0074d0 */ 0x41,0xb4,0x45,0xaf,0x55,0xe5,0xe7,0xfc,0xa0,0x5d,0xc2,0x9d,0x9f,0x03,0x22,0xcc,
+/* 0x0074e0 */ 0xc1,0x7f,0x75,0xc8,0xf0,0x47,0x4d,0xfc,0xa5,0xc7,0x46,0x4a,0xe7,0x35,0x6f,0xd0,
+/* 0x0074f0 */ 0x92,0x3b,0x89,0xda,0x8b,0x40,0x33,0xbd,0x2c,0x24,0x3e,0xa6,0xe3,0xd1,0xe8,0x78,
+/* 0x007500 */ 0x6c,0x7e,0xd3,0x31,0xfd,0x4a,0xa6,0x21,0xe7,0xbb,0x9f,0x00,0x31,0x47,0xfd,0xe5,
+/* 0x007510 */ 0xe9,0x4e,0xff,0xf9,0x01,0xdf,0x95,0x0f,0xc7,0x55,0xa2,0xed,0xba,0xc2,0xad,0x6c,
+/* 0x007520 */ 0xda,0x1d,0x57,0xac,0xa5,0x8c,0x31,0x62,0xfd,0xec,0xd6,0x82,0x7e,0x0e,0x7f,0x39,
+/* 0x007530 */ 0xf8,0xaf,0x8a,0x18,0x2c,0xcb,0x97,0xd2,0x5f,0x50,0xfe,0x0b,0xde,0x9f,0x17,0x30,
+/* 0x007540 */ 0x88,0x40,0x03,0xc0,0x7f,0xa9,0xc4,0x11,0xf1,0x08,0x84,0x19,0x3b,0xc5,0x00,0xca,
+/* 0x007550 */ 0x26,0xa2,0x1c,0xff,0x65,0x38,0xea,0xa7,0xa8,0xd5,0xc0,0x7f,0x9d,0xd1,0x2d,0xfe,
+/* 0x007560 */ 0x8b,0xdc,0x8a,0x53,0x45,0x98,0x4e,0xb6,0xb6,0xd5,0xe0,0x0d,0x15,0x17,0x2a,0xa0,
+/* 0x007570 */ 0x36,0x0a,0xc7,0x7f,0x21,0x5e,0xff,0x05,0x40,0x4c,0x7e,0xce,0x4e,0x44,0x24,0x14,
+/* 0x007580 */ 0x64,0xba,0x9b,0x8e,0x7c,0x6d,0x9c,0x4c,0xc1,0x8b,0x80,0x85,0x2b,0x84,0x29,0x68,
+/* 0x007590 */ 0x95,0xd3,0xff,0x50,0xe2,0xf3,0xe7,0xed,0xb3,0x41,0xab,0xc8,0x17,0x39,0x86,0xe2,
+/* 0x0075a0 */ 0x8e,0x0d,0x93,0x6a,0xf8,0xa4,0x67,0x8e,0xdb,0x27,0x24,0x69,0x3e,0xb6,0xc5,0x7f,
+/* 0x0075b0 */ 0xe5,0x59,0x6a,0x78,0x71,0xb0,0x24,0x5f,0x74,0x45,0x4d,0xff,0x0d,0xf2,0x15,0x64,
+/* 0x0075c0 */ 0xf1,0xb0,0xcc,0xe8,0x82,0x5b,0xe8,0x98,0x56,0x9b,0xf1,0x0c,0x8b,0x50,0xd0,0xc7,
+/* 0x0075d0 */ 0xe1,0x7f,0x58,0x0c,0x7f,0xb9,0x26,0xae,0xc8,0x0c,0x45,0x60,0x25,0xc8,0x51,0xd4,
+/* 0x0075e0 */ 0x21,0x59,0x91,0xcf,0x3f,0xe4,0xe3,0x4c,0x57,0xf4,0x51,0x5f,0xaa,0x6a,0x58,0xba,
+/* 0x0075f0 */ 0x21,0xd9,0xee,0x04,0x1d,0xa4,0x71,0x38,0xc5,0xc2,0x4b,0x8c,0xdf,0x35,0xde,0x88,
+/* 0x007600 */ 0xa3,0x38,0xff,0x05,0x56,0x84,0x2a,0x89,0x9f,0x57,0xd8,0x11,0xf5,0x66,0x08,0xa4,
+/* 0x007610 */ 0xb5,0x1a,0x6d,0x09,0xb9,0x22,0x6c,0xd3,0x42,0x9b,0x31,0xfe,0xfa,0x5c,0xe3,0xf9,
+/* 0x007620 */ 0xaf,0x7a,0xc9,0x91,0x6d,0xf8,0x5d,0x7c,0x0b,0x0d,0xe7,0x45,0xe6,0x9b,0x69,0xfd,
+/* 0x007630 */ 0x65,0x83,0x5e,0x11,0x02,0x5a,0x45,0x2a,0x31,0xac,0x1e,0x90,0x79,0xfe,0x2b,0x54,
+/* 0x007640 */ 0xce,0xe3,0xaf,0x90,0x4a,0xd4,0x5e,0x19,0x62,0x9c,0xc2,0xbb,0x40,0x08,0x49,0xc9,
+/* 0x007650 */ 0xea,0x13,0x5f,0x5c,0xe1,0x4f,0xb4,0xec,0xec,0x0d,0x39,0xeb,0x2f,0x53,0x92,0x82,
+/* 0x007660 */ 0x66,0x1b,0xaa,0x51,0xa2,0xf6,0xea,0x2a,0x52,0x51,0x17,0x37,0x8e,0xea,0x53,0x68,
+/* 0x007670 */ 0x9f,0xb6,0x04,0x8c,0xb3,0xea,0xe0,0xbf,0x1c,0xf8,0x2b,0xd4,0xb0,0x78,0xe3,0xa6,
+/* 0x007680 */ 0x24,0x0d,0xe3,0x6d,0xfd,0x17,0xb0,0x5d,0xb7,0x4d,0x21,0x98,0x45,0x60,0x7d,0xe9,
+/* 0x007690 */ 0x72,0xf0,0x5f,0x0e,0x7c,0xd1,0x11,0xfb,0xb6,0x2f,0x95,0x9c,0xad,0xde,0x46,0x0b,
+/* 0x0076a0 */ 0x4d,0xff,0x0d,0xf2,0x09,0x03,0xfe,0xaa,0x03,0x06,0x93,0xd0,0x5e,0xad,0x5e,0xfc,
+/* 0x0076b0 */ 0xb7,0xd2,0xcc,0xac,0x63,0x35,0xe3,0xbf,0x1c,0xf8,0x4b,0xab,0x51,0x3c,0x9d,0xee,
+/* 0x0076c0 */ 0xca,0xa2,0x6e,0xf3,0x33,0x99,0xff,0x46,0x3b,0xde,0x80,0x3a,0x85,0x73,0xf2,0x41,
+/* 0x0076d0 */ 0x87,0xff,0x61,0x2b,0xe2,0x4d,0xe6,0x55,0x8c,0xbf,0xf0,0x18,0xb2,0x2b,0x88,0x8c,
+/* 0x0076e0 */ 0x33,0x7c,0x4d,0x50,0xf6,0x4b,0xd5,0x96,0x28,0xfe,0x7e,0x65,0xef,0xaa,0xea,0x67,
+/* 0x0076f0 */ 0x4a,0x96,0x05,0x7e,0x8f,0xf6,0x1a,0x44,0x79,0x97,0x60,0xfc,0x97,0x03,0x7f,0x49,
+/* 0x007700 */ 0x35,0x8f,0x2e,0xa1,0xfe,0x87,0x96,0x11,0x62,0x4d,0x2b,0xf1,0xdf,0xd8,0xef,0x9a,
+/* 0x007710 */ 0x69,0xe3,0xaf,0x87,0x87,0x84,0x6b,0xe8,0x37,0x4e,0xff,0xc3,0x17,0x8b,0xe4,0x1f,
+/* 0x007720 */ 0xca,0xfb,0x49,0xa3,0x99,0x21,0xb2,0x1e,0x42,0x7b,0x45,0xdb,0x4d,0xfc,0xf5,0xad,
+/* 0x007730 */ 0x5f,0x6c,0x16,0xff,0x88,0x6e,0x68,0x60,0xd6,0x21,0xee,0xa4,0xfb,0x97,0x7b,0xea,
+/* 0x007740 */ 0x8e,0xbc,0xe7,0x28,0xe2,0x0e,0xe9,0xae,0xfa,0xaf,0x06,0xad,0x8c,0x12,0x6a,0x3c,
+/* 0x007750 */ 0xff,0xd5,0x5a,0x98,0x7f,0x38,0x4d,0x75,0x65,0x69,0xfe,0xa1,0x99,0xda,0x9a,0x84,
+/* 0x007760 */ 0xd7,0x66,0x0e,0xf5,0x6f,0xb1,0xa4,0x61,0x8c,0x11,0x73,0xf0,0x5f,0x31,0x3b,0xc9,
+/* 0x007770 */ 0x90,0xe4,0x1f,0x6e,0xe8,0xaa,0x4d,0x9b,0xfc,0x97,0xee,0xbb,0x08,0xd4,0x98,0x46,
+/* 0x007780 */ 0xf4,0x5f,0x23,0xae,0x53,0x7a,0x0d,0x70,0x64,0x17,0x09,0x23,0x56,0x66,0xfb,0x6f,
+/* 0x007790 */ 0xb8,0xf2,0xf4,0xcb,0x94,0xbe,0xd7,0xc3,0x54,0xed,0x45,0xd7,0x31,0x92,0xce,0x14,
+/* 0x0077a0 */ 0x04,0x8b,0x86,0x01,0x57,0x12,0x64,0xb0,0xe4,0x64,0x89,0x9e,0x28,0x32,0xfe,0x0b,
+/* 0x0077b0 */ 0x4d,0xe5,0xf1,0x57,0x9a,0xe4,0xbc,0x3d,0x88,0xdf,0x85,0xea,0x8c,0xc5,0x7f,0xad,
+/* 0x0077c0 */ 0x85,0xf5,0x79,0x8b,0x56,0x45,0x14,0x61,0xf2,0x6a,0xb9,0x3a,0x25,0xaf,0x48,0x9c,
+/* 0x0077d0 */ 0x51,0xdf,0xd3,0x2a,0xc1,0x23,0x71,0xc4,0xc2,0x5f,0x8a,0xcd,0x7f,0x65,0x66,0x8d,
+/* 0x0077e0 */ 0xf8,0x6e,0x79,0xe0,0x8c,0x71,0xa1,0x5a,0xca,0xf8,0x2f,0xbc,0x08,0xe3,0x5b,0x5f,
+/* 0x0077f0 */ 0xeb,0x73,0x89,0xff,0x86,0xbc,0x46,0x6f,0xc8,0x85,0x3b,0xc4,0x53,0xe8,0x2b,0xbd,
+/* 0x007800 */ 0xb7,0x80,0xff,0xb2,0x70,0x41,0x6c,0xd0,0xf7,0x5e,0xf3,0x80,0xb4,0x12,0x86,0x97,
+/* 0x007810 */ 0xf1,0x5f,0x08,0x0e,0x00,0xd1,0x15,0x5a,0x11,0x6c,0x40,0xe6,0x17,0x61,0x0e,0x7f,
+/* 0x007820 */ 0x69,0x92,0x6d,0xa9,0xa1,0xdd,0xe9,0x9a,0x7b,0xdd,0x37,0xe6,0xf9,0xa1,0x76,0x45,
+/* 0x007830 */ 0x8f,0xc4,0xbd,0xfb,0xcd,0x13,0xfb,0x91,0x69,0x97,0x5b,0x6e,0x74,0xce,0xca,0x79,
+/* 0x007840 */ 0xf7,0x89,0x97,0xb5,0x1b,0x89,0x68,0xdc,0x77,0x52,0x9c,0x83,0x3e,0x76,0xe6,0x1f,
+/* 0x007850 */ 0x56,0xf0,0xbe,0xf1,0xb0,0x01,0xad,0xc0,0x18,0x36,0x63,0x3c,0x1c,0xf1,0xd4,0x9b,
+/* 0x007860 */ 0x49,0x1a,0x48,0x3c,0xa6,0xef,0xc5,0xa3,0x1a,0x9a,0x1f,0x38,0x8b,0x32,0xe9,0xca,
+/* 0x007870 */ 0x10,0xfe,0x1c,0xca,0x41,0xbf,0xcc,0xf3,0x5f,0xfa,0x1b,0x56,0xe9,0x6a,0x69,0x2e,
+/* 0x007880 */ 0xc5,0xb9,0x7f,0x8d,0xf6,0xa2,0x4a,0xb4,0xc8,0x2a,0xb2,0xbc,0x1c,0x3f,0xf0,0x37,
+/* 0x007890 */ 0x6a,0x65,0x1f,0xa1,0xc6,0x7a,0x03,0x95,0x2d,0x1e,0x84,0x07,0xa5,0xd3,0x81,0xbf,
+/* 0x0078a0 */ 0xe2,0xbc,0xcf,0x1b,0x84,0x97,0x4b,0x22,0xe5,0x5e,0x1c,0x93,0x84,0x90,0x79,0xc5,
+/* 0x0078b0 */ 0xef,0x41,0x4d,0xe4,0xb8,0x38,0x27,0x47,0x14,0x08,0x57,0x54,0x44,0x9e,0xa3,0x4f,
+/* 0x0078c0 */ 0xcc,0x7f,0x31,0x53,0xf7,0x30,0x24,0xd2,0x23,0x99,0x25,0x10,0x22,0x5f,0x6a,0x0a,
+/* 0x0078d0 */ 0xc8,0xe7,0xc1,0x9a,0x23,0x02,0x1a,0x84,0x6d,0x39,0xdf,0xbe,0x25,0x35,0xc2,0x51,
+/* 0x0078e0 */ 0x7d,0x42,0xfe,0xeb,0x16,0x25,0x25,0x07,0xc8,0xe7,0xf0,0x18,0xbd,0xf2,0x02,0x28,
+/* 0x0078f0 */ 0x2e,0x77,0x31,0x6a,0x0c,0x70,0x41,0x67,0x43,0x9a,0xa4,0xa8,0xdd,0xd2,0x79,0xfe,
+/* 0x007900 */ 0xab,0x52,0xe1,0xea,0x52,0xdd,0xa1,0xde,0x86,0x3f,0x45,0x8f,0xa1,0x05,0x32,0x4d,
+/* 0x007910 */ 0xb8,0x12,0x1a,0xf5,0xa5,0xc6,0xb4,0x71,0xe9,0xb6,0x15,0x8b,0xe2,0x3e,0xeb,0xe2,
+/* 0x007920 */ 0x62,0x05,0x46,0x0a,0x3c,0xff,0x75,0xce,0xa1,0xff,0x12,0x02,0x46,0x28,0xd3,0xb4,
+/* 0x007930 */ 0x4b,0xe8,0x82,0x83,0x29,0x16,0x2d,0xab,0x9e,0xae,0xc4,0x25,0xb4,0xbf,0x0b,0x18,
+/* 0x007940 */ 0xb1,0x69,0xbb,0xf0,0x67,0x35,0x93,0x52,0xcf,0x6b,0x27,0xe6,0xbf,0x98,0x8f,0x47,
+/* 0x007950 */ 0x18,0xed,0x84,0xe5,0xd4,0x7a,0xce,0x3e,0x0c,0xcd,0xf6,0xdb,0x5e,0x79,0x01,0xad,
+/* 0x007960 */ 0x8b,0x94,0x38,0x74,0xf2,0x5f,0xe5,0x3c,0xff,0xa5,0xaa,0x03,0xad,0x11,0x61,0xbd,
+/* 0x007970 */ 0x9e,0x46,0x61,0x99,0xf1,0x5f,0xe1,0xf8,0x03,0x4a,0xd3,0x80,0xda,0x2b,0x87,0xfb,
+/* 0x007980 */ 0xbb,0xeb,0x20,0xbc,0x8c,0xab,0x15,0x32,0x64,0x1a,0xac,0x72,0xf0,0x5f,0xda,0x7a,
+/* 0x007990 */ 0x5e,0xff,0xa5,0xd4,0xf5,0xb5,0xfd,0xbb,0x58,0x9d,0x19,0x79,0x66,0xbe,0x3c,0x63,
+/* 0x0079a0 */ 0x2f,0x41,0xbe,0x35,0xba,0xef,0x4d,0xf1,0x4b,0x83,0x8e,0xf3,0x94,0x2f,0xf5,0x1b,
+/* 0x0079b0 */ 0xcb,0x7f,0xd4,0x4e,0x72,0xec,0xb3,0x4e,0xfe,0x6b,0x3a,0xaf,0xb3,0x8b,0xc6,0x0e,
+/* 0x0079c0 */ 0x4f,0xf9,0x4a,0x1c,0xd7,0xcf,0x44,0x1a,0xa5,0x19,0x38,0x08,0x94,0xee,0xa0,0x9f,
+/* 0x0079d0 */ 0x01,0xda,0x1a,0x77,0x7d,0x0d,0x8e,0x88,0x57,0xc5,0x83,0xb9,0xf1,0xa9,0x8d,0x4a,
+/* 0x0079e0 */ 0x6d,0x5f,0x72,0x14,0x8d,0xff,0x1f,0xf8,0xaf,0x9f,0xa9,0x73,0x0d,0x9f,0x51,0x37,
+/* 0x0079f0 */ 0x1b,0xff,0x89,0x1f,0x0f,0x7a,0xc1,0x29,0xe2,0x78,0xa7,0x75,0x06,0xb2,0x10,0xca,
+/* 0x007a00 */ 0xea,0x15,0xf8,0x1f,0x2a,0xbf,0x2e,0xb0,0x34,0xc4,0x40,0x6c,0x05,0xc6,0x32,0xa0,
+/* 0x007a10 */ 0xae,0xda,0xd3,0x1e,0x32,0x64,0xbd,0xe9,0xb6,0xde,0x8d,0x02,0x56,0x9f,0x38,0x0e,
+/* 0x007a20 */ 0xcc,0xac,0xce,0xa3,0xf4,0x7d,0xce,0xe6,0x7d,0x17,0x26,0xe1,0x18,0xc4,0x9f,0xa7,
+/* 0x007a30 */ 0x5f,0x52,0xf6,0x48,0x6a,0x76,0x31,0x12,0x3e,0x56,0xcd,0xba,0xe4,0x12,0x06,0x62,
+/* 0x007a40 */ 0x71,0x39,0xca,0xe5,0x35,0xd1,0xfd,0x2b,0x37,0xfd,0x92,0x52,0xc8,0xef,0x1c,0x40,
+/* 0x007a50 */ 0x0f,0xf5,0x2f,0xa1,0xb0,0xeb,0x2d,0xc3,0xdd,0x43,0x98,0xd0,0x87,0x6c,0x44,0x16,
+/* 0x007a60 */ 0xb2,0x3b,0xfb,0x19,0xfe,0x72,0x39,0xf1,0x97,0xf5,0xa1,0xe1,0xf1,0xc9,0x7a,0xf0,
+/* 0x007a70 */ 0xf8,0xb8,0x02,0x46,0xcd,0x40,0x72,0xdc,0x64,0x2b,0x76,0xa1,0xe7,0x51,0x43,0x9c,
+/* 0x007a80 */ 0xcf,0x1f,0xcb,0x15,0xc1,0x5f,0x36,0x10,0x43,0x0b,0xa0,0x4c,0xdb,0x5f,0x34,0xf0,
+/* 0x007a90 */ 0xff,0xa9,0x36,0x92,0xe3,0x02,0xd5,0x88,0x4d,0x81,0x19,0x6c,0xd4,0x6a,0xef,0xa9,
+/* 0x007aa0 */ 0xff,0x22,0x0d,0xfc,0x46,0x09,0xf8,0x5f,0x75,0x7a,0x82,0xda,0xd1,0xc9,0xd1,0x43,
+/* 0x007ab0 */ 0x38,0x1a,0x1c,0xc0,0xff,0x5f,0x73,0x6c,0x8e,0xcc,0xcb,0xe5,0x75,0x9f,0x28,0xea,
+/* 0x007ac0 */ 0xbf,0x61,0xf3,0x5f,0x23,0x9e,0xd4,0xe4,0x1a,0xb4,0x11,0x9c,0x85,0xde,0x48,0x8c,
+/* 0x007ad0 */ 0x93,0xe7,0x90,0x1c,0x45,0xc8,0xd8,0xf4,0x72,0xbc,0xf0,0x44,0xf5,0xbf,0xcc,0x83,
+/* 0x007ae0 */ 0xc4,0x31,0x3c,0xef,0x93,0x51,0xd2,0xb5,0xc3,0x90,0x83,0x78,0xdb,0xea,0x66,0x9c,
+/* 0x007af0 */ 0x26,0x1c,0x62,0x48,0xa1,0x59,0x76,0x06,0x29,0xc3,0x5f,0x39,0xa7,0xff,0x86,0xd9,
+/* 0x007b00 */ 0x48,0x55,0xe6,0xba,0x5b,0x85,0xbf,0x12,0xd6,0xa4,0xa9,0x41,0xba,0xb6,0x86,0x5a,
+/* 0x007b10 */ 0x23,0x9e,0x95,0xde,0xa3,0x00,0xc1,0xfa,0x57,0x97,0x8b,0xd7,0xff,0x62,0x89,0x88,
+/* 0x007b20 */ 0xa8,0xbe,0xc5,0x07,0xe9,0x04,0x1f,0xa2,0xd9,0x86,0x57,0x15,0x61,0xde,0x67,0x5b,
+/* 0x007b30 */ 0x7d,0x90,0x37,0x22,0x7a,0xf3,0xf4,0x5f,0x46,0xa9,0x13,0x7f,0xb1,0x89,0xa3,0x8a,
+/* 0x007b40 */ 0xb0,0x33,0xe8,0x4e,0xb0,0xb1,0x0f,0xcf,0xce,0x6d,0x87,0xed,0xa1,0x56,0x76,0x45,
+/* 0x007b50 */ 0xbc,0x17,0xff,0xc5,0x1a,0x5a,0x94,0x3e,0x07,0xb2,0xc1,0xbd,0x83,0xe2,0x97,0x0e,
+/* 0x007b60 */ 0x99,0x9e,0xc6,0x77,0x36,0xf1,0x97,0x92,0x77,0xee,0x47,0x65,0x5f,0x72,0xe5,0x21,
+/* 0x007b70 */ 0x7a,0xca,0xa7,0x55,0x66,0xd7,0xb6,0x07,0x6e,0x0b,0x13,0x56,0x42,0x19,0x0d,0x92,
+/* 0x007b80 */ 0xdf,0x53,0x59,0x50,0xff,0x8b,0x8d,0xf3,0x28,0xd8,0x1e,0x0a,0x6b,0xf4,0x10,0x19,
+/* 0x007b90 */ 0x67,0x9d,0x97,0xd7,0xad,0x28,0x5a,0xff,0xab,0xe8,0x77,0x8a,0xd2,0xa3,0x9e,0x77,
+/* 0x007ba0 */ 0x56,0xe3,0xd7,0x4f,0x52,0x41,0x06,0x3b,0xe0,0x48,0x9b,0xcf,0x15,0xd1,0x7f,0x5d,
+/* 0x007bb0 */ 0x2a,0x52,0xff,0x0b,0x1a,0xb3,0xc0,0x88,0xe3,0x07,0xfa,0x11,0xf4,0xbe,0xee,0xed,
+/* 0x007bc0 */ 0x78,0x65,0x44,0x39,0x02,0x0b,0xa3,0xed,0xc8,0xd1,0x7c,0xef,0xfa,0x5f,0xc4,0xfc,
+/* 0x007bd0 */ 0x41,0x88,0xdd,0x07,0x06,0x6b,0xf2,0x98,0xab,0xc8,0x91,0xbb,0x3a,0xa3,0x50,0xff,
+/* 0x007be0 */ 0xb5,0x2e,0x3f,0xff,0xd0,0x34,0x25,0xe8,0x00,0x93,0x0d,0xed,0x30,0x46,0x5b,0x72,
+/* 0x007bf0 */ 0x2a,0x19,0x44,0xff,0xc4,0x73,0x0a,0xde,0xd7,0xec,0xce,0x43,0x13,0xd6,0xff,0xa2,
+/* 0x007c00 */ 0x46,0x0a,0x8f,0xcb,0x29,0x61,0x12,0x7a,0x49,0x98,0xa3,0xc9,0x9b,0x85,0xa0,0xfc,
+/* 0x007c10 */ 0x12,0x4f,0x8d,0x75,0xf5,0xdc,0x3b,0xff,0xd0,0x04,0x74,0x87,0xee,0xcb,0x80,0x59,
+/* 0x007c20 */ 0x87,0x14,0xd0,0x66,0xbe,0x9c,0x90,0x9c,0x19,0x89,0x0f,0x17,0xd1,0x7f,0xa1,0xc2,
+/* 0x007c30 */ 0xfa,0x5f,0xb4,0x10,0xf3,0x7d,0x20,0x04,0x5b,0xa5,0x04,0x5b,0xdc,0x53,0x05,0x49,
+/* 0x007c40 */ 0xdb,0xaa,0x70,0x19,0x89,0x25,0xf7,0x15,0xea,0xbf,0xe4,0x78,0xfe,0x38,0x0b,0xc4,
+/* 0x007c50 */ 0x88,0xfe,0xfe,0xea,0xd5,0xc9,0xd0,0x36,0x03,0x37,0xca,0x56,0x77,0x57,0xa6,0xc7,
+/* 0x007c60 */ 0x5a,0xb8,0x3e,0xa5,0x9d,0x85,0xf9,0x87,0xeb,0x8b,0x8e,0xb3,0xda,0xd8,0x5a,0x36,
+/* 0x007c70 */ 0x84,0x30,0x4a,0x0a,0xc6,0x5a,0x4b,0x81,0x08,0xfb,0x54,0xe5,0x10,0x59,0xd9,0x26,
+/* 0x007c80 */ 0xbb,0xf3,0xf5,0xe2,0xfc,0x17,0x6b,0x74,0x3d,0x12,0xf7,0xbd,0x26,0x5e,0x87,0xea,
+/* 0x007c90 */ 0x00,0xed,0x38,0x1a,0xbc,0xb0,0xe9,0x30,0xb1,0xfe,0xb3,0x90,0xdd,0x34,0xe6,0x69,
+/* 0x007ca0 */ 0x69,0xe5,0x1f,0xce,0x2b,0xf4,0x9f,0x27,0xb2,0xaf,0x40,0xda,0xd3,0xa9,0xe1,0x46,
+/* 0x007cb0 */ 0xcb,0x36,0xd5,0xb3,0x56,0xf8,0x83,0xde,0x85,0x66,0x72,0x7d,0xdc,0x76,0xe7,0xb3,
+/* 0x007cc0 */ 0x26,0xff,0xd5,0xaf,0x14,0x19,0x67,0x39,0xf8,0xed,0x25,0xf7,0x81,0x11,0xa2,0x12,
+/* 0x007cd0 */ 0xd4,0x3c,0xe5,0x89,0xdf,0xa9,0xab,0x50,0x90,0xef,0x93,0xb8,0x87,0xfe,0x8b,0x36,
+/* 0x007ce0 */ 0xe4,0x5e,0x8a,0xad,0x96,0xcb,0xbd,0x12,0x58,0x62,0x6e,0x1a,0xe6,0x2a,0xc1,0xb9,
+/* 0x007cf0 */ 0x6a,0xe2,0x7c,0xe7,0xdf,0x33,0xfc,0x55,0x9e,0x8f,0x9b,0x58,0xba,0xa0,0x06,0x06,
+/* 0x007d00 */ 0xf2,0x18,0x40,0xbd,0x4b,0x7d,0xe3,0x0f,0x13,0xcf,0x4f,0xc1,0xc9,0x91,0x41,0xe7,
+/* 0x007d10 */ 0x31,0x86,0x77,0x50,0xd1,0xe7,0x48,0xb1,0xc5,0xbe,0x9e,0x69,0xc3,0x1a,0xa1,0x8c,
+/* 0x007d20 */ 0x37,0x41,0x21,0xe6,0xa2,0xdc,0x31,0xf0,0x5f,0x74,0xdd,0xe8,0x98,0x80,0xff,0x9a,
+/* 0x007d30 */ 0xaf,0xd4,0xe8,0x50,0xa4,0x1b,0xed,0x46,0x38,0xda,0xc9,0x49,0x59,0xea,0x36,0x4f,
+/* 0x007d40 */ 0xfb,0x84,0x57,0x79,0x2c,0xd5,0xa1,0xc9,0x7f,0x75,0x16,0xe5,0xbf,0x84,0xaa,0x6d,
+/* 0x007d50 */ 0x50,0x6d,0x59,0x27,0xb6,0x1b,0xe7,0x88,0x11,0x87,0xed,0x91,0x98,0x90,0x47,0x84,
+/* 0x007d60 */ 0x90,0x9d,0x7f,0x48,0xfe,0xeb,0x70,0xe4,0x35,0x71,0xfb,0x17,0x14,0xcb,0xf0,0xc1,
+/* 0x007d70 */ 0x82,0x66,0xc8,0x0b,0x71,0x1c,0xfe,0x3a,0x27,0x71,0xcd,0xc9,0x11,0x7b,0xff,0x62,
+/* 0x007d80 */ 0xf8,0xeb,0x3b,0x79,0xfc,0x17,0x6b,0x04,0x30,0xda,0x7a,0x1e,0xf0,0x97,0x5f,0xcd,
+/* 0x007d90 */ 0x85,0x56,0x08,0x03,0xda,0x16,0xd5,0xf2,0x48,0xac,0x05,0x81,0xad,0xf9,0xaf,0x9a,
+/* 0x007da0 */ 0xd8,0xf9,0xa1,0x5a,0xc8,0x7f,0x01,0x10,0x4b,0xcd,0xcb,0x95,0xdd,0xf4,0x3c,0x28,
+/* 0x007db0 */ 0xdd,0x79,0x69,0xd6,0x70,0x18,0x5f,0xd9,0xf6,0x99,0x31,0xcb,0xee,0x63,0xa6,0x26,
+/* 0x007dc0 */ 0xc2,0x95,0x23,0x16,0xff,0x55,0xb8,0xef,0x28,0xcf,0x2b,0x54,0xa7,0x20,0xdd,0x0a,
+/* 0x007dd0 */ 0x30,0xdb,0xc3,0x2f,0x74,0xab,0x4f,0x83,0xa3,0x33,0xc3,0x5f,0xfa,0x8b,0x9c,0xfe,
+/* 0x007de0 */ 0x8b,0x6b,0xd4,0x9d,0x03,0x23,0x44,0x19,0xfc,0xb1,0xdb,0xc0,0xff,0x30,0xbf,0x22,
+/* 0x007df0 */ 0x98,0xe5,0x88,0x38,0xa8,0x16,0xe6,0x1f,0xf2,0x06,0x1a,0x43,0xa5,0xa3,0x90,0x48,
+/* 0x007e00 */ 0xaf,0x56,0x66,0xdd,0xe0,0x7f,0xc8,0xef,0x5f,0xfd,0xb6,0xb7,0xfc,0x33,0x26,0xfe,
+/* 0x007e10 */ 0x52,0xf2,0xf9,0x2f,0xd2,0xd8,0x82,0x67,0xc7,0x4d,0xce,0x21,0x5d,0x95,0x86,0xbc,
+/* 0x007e20 */ 0x5c,0xf0,0x16,0xec,0x83,0xd6,0xec,0x98,0xf8,0x6b,0x82,0xfa,0x95,0x6a,0x0e,0xc3,
+/* 0x007e30 */ 0x6d,0x48,0x5a,0x0b,0x18,0xee,0x88,0xbf,0xcd,0xda,0xbf,0x4c,0xf3,0x3d,0x6b,0xde,
+/* 0x007e40 */ 0x4f,0xb2,0xf3,0xc3,0xa2,0xf1,0xe1,0x67,0x28,0x3a,0x58,0x76,0xcd,0x03,0xfe,0x87,
+/* 0x007e50 */ 0xc4,0xb4,0xbc,0xc1,0x74,0xdb,0x20,0x7d,0x4e,0xfa,0x22,0x76,0x3c,0x66,0xf9,0x6f,
+/* 0x007e60 */ 0x14,0x79,0x8e,0x74,0x0b,0x7d,0x60,0x4c,0xca,0x7c,0x8f,0x1a,0x2a,0x2e,0xbd,0x26,
+/* 0x007e70 */ 0x3a,0x31,0x5a,0x96,0xef,0xcc,0xf0,0xd7,0xcb,0xa9,0x83,0x72,0x61,0x9c,0x79,0x0b,
+/* 0x007e80 */ 0xd5,0x4d,0xf6,0xae,0x48,0xf8,0x3b,0x8f,0xa3,0xa8,0x11,0x5a,0x46,0x7e,0x8f,0xdd,
+/* 0x007e90 */ 0x67,0xc4,0x77,0xde,0xf6,0xe8,0xb0,0xf2,0x0f,0x8b,0xc6,0x87,0x52,0xd5,0xa0,0x3b,
+/* 0x007ea0 */ 0xe3,0xff,0x35,0x7a,0x1b,0xe2,0xc3,0xdb,0xc2,0x41,0x47,0x26,0x61,0xce,0x73,0x5e,
+/* 0x007eb0 */ 0xd8,0x95,0xcf,0x7f,0x49,0x4e,0xb7,0x0d,0x07,0x10,0xdb,0x25,0x25,0x61,0x9c,0xdf,
+/* 0x007ec0 */ 0x09,0x78,0xd1,0xeb,0x52,0x7e,0x8d,0x30,0x68,0xb8,0x6d,0xfe,0x0b,0x71,0x1a,0x16,
+/* 0x007ed0 */ 0xc7,0x81,0x09,0xad,0x0b,0xec,0x4a,0x93,0x86,0x60,0xc9,0x33,0x5f,0x81,0xe5,0x94,
+/* 0x007ee0 */ 0xd3,0x25,0xf5,0x75,0x92,0xef,0x42,0x97,0x9f,0x2e,0x1a,0xcf,0x47,0x8d,0x36,0x40,
+/* 0x007ef0 */ 0x91,0x1f,0x61,0x34,0x3a,0x39,0x22,0x36,0x48,0xa7,0x05,0xbe,0x8f,0x6a,0x6b,0x8e,
+/* 0x007f00 */ 0x8c,0x00,0xe5,0xbf,0x7e,0x51,0xb4,0xc8,0x97,0x08,0xb5,0x87,0x2a,0x71,0xc3,0x45,
+/* 0x007f10 */ 0xcf,0xe7,0x25,0x67,0x59,0xd8,0x9c,0xdd,0xd9,0xf4,0x3f,0xfc,0x7b,0xee,0xfb,0xc2,
+/* 0x007f20 */ 0x50,0x3a,0xbb,0x34,0xdb,0x7c,0x1d,0x7f,0xcb,0x0b,0xb2,0xa5,0xe4,0x6b,0x0a,0x36,
+/* 0x007f30 */ 0x1e,0xf1,0x65,0xc5,0xbf,0x94,0x8f,0xe3,0x7d,0x07,0xc3,0xae,0x6f,0x68,0xf9,0x1f,
+/* 0x007f40 */ 0x5a,0x31,0xff,0xf9,0x03,0x7a,0xed,0xb0,0xa7,0xcb,0x7f,0x01,0x8f,0x61,0xd5,0xa8,
+/* 0x007f50 */ 0x1b,0xfc,0x0f,0x3f,0x48,0xd5,0x8e,0x7a,0x12,0x7e,0x90,0x7d,0x6d,0x83,0x7a,0x52,
+/* 0x007f60 */ 0x41,0xfd,0x74,0xf1,0xfa,0xcb,0x59,0x8e,0xff,0x92,0xea,0x80,0xdb,0x42,0x78,0x93,
+/* 0x007f70 */ 0x3a,0x80,0x42,0xfd,0xb6,0xed,0x21,0x4a,0x90,0xe3,0x08,0xad,0x27,0x1a,0x90,0xf4,
+/* 0x007f80 */ 0x09,0xfc,0x37,0xf4,0x02,0xff,0x0d,0x9d,0x24,0xe7,0x04,0x38,0xb7,0xcc,0xd5,0xa4,
+/* 0x007f90 */ 0x24,0x41,0x00,0xff,0x9e,0xa6,0xc9,0xe8,0x81,0x89,0xfd,0x37,0x9c,0xf3,0xb5,0x41,
+/* 0x007fa0 */ 0x1c,0x26,0x27,0x4b,0x36,0x71,0xa9,0x0b,0x90,0x36,0x16,0xa8,0x0f,0x67,0x3c,0x0f,
+/* 0x007fb0 */ 0x15,0xf8,0x5d,0x30,0xfe,0x2b,0xee,0xd4,0x7f,0xe1,0x5b,0x7d,0xa4,0xb1,0x90,0xcb,
+/* 0x007fc0 */ 0x70,0xcb,0x8a,0xe3,0xca,0x6d,0xc0,0x4d,0xa3,0xcd,0xd7,0x26,0xf2,0x9f,0x6f,0xc9,
+/* 0x007fd0 */ 0xc7,0x5f,0x5e,0x1d,0xff,0x9e,0xd3,0xa4,0x36,0xb7,0xf5,0x7b,0x80,0xf6,0xaa,0x98,
+/* 0x007fe0 */ 0xd3,0xe2,0xcd,0x68,0xc3,0x36,0x30,0x74,0xfa,0x6f,0x18,0xce,0xfc,0xc3,0x5a,0x23,
+/* 0x007ff0 */ 0xa4,0x13,0x34,0x5a,0x47,0x5d,0x40,0xa1,0xfe,0xd7,0x12,0x9d,0x7c,0x29,0x69,0xa8,
+/* 0x008000 */ 0xd7,0x36,0x6c,0x7e,0x68,0xf7,0xc4,0x5f,0x15,0xe8,0xbb,0xfd,0x78,0xb7,0x0a,0x72,
+/* 0x008010 */ 0xc9,0xd2,0xe0,0x88,0x98,0xd1,0x82,0x2b,0x5f,0xca,0xe0,0xa9,0xdc,0x6e,0x93,0xc8,
+/* 0x008020 */ 0x3c,0xfe,0x1a,0x75,0xe0,0xaf,0xd5,0xd5,0xc3,0xf2,0x22,0xe1,0x3a,0x5a,0xb3,0x55,
+/* 0x008030 */ 0x1d,0x21,0x70,0x80,0xdc,0x6a,0xd5,0xce,0xa2,0x77,0x5e,0xae,0x5c,0xde,0xfd,0xac,
+/* 0x008040 */ 0x70,0x7d,0xd5,0x2f,0x75,0xbc,0x3e,0x73,0xd6,0x88,0xbc,0xff,0x06,0x41,0x52,0xf8,
+/* 0x008050 */ 0x8f,0x5e,0xcd,0x34,0x8c,0x78,0xdd,0xcd,0x17,0xf4,0x4f,0xf4,0xd9,0x39,0xef,0x7c,
+/* 0x008060 */ 0xf1,0x18,0xbd,0xa5,0x02,0xdb,0x65,0xcc,0xee,0x58,0x3f,0x0b,0x47,0x5f,0x7f,0xd0,
+/* 0x008070 */ 0x89,0x35,0xe2,0x06,0xdd,0x89,0xbf,0xd0,0x74,0x27,0x5e,0xee,0xf7,0x1d,0x6a,0x1e,
+/* 0x008080 */ 0x06,0xb7,0x43,0x96,0x64,0x28,0x37,0xf6,0x91,0xf3,0x43,0xa8,0xbe,0x51,0xd6,0x2b,
+/* 0x008090 */ 0x5e,0xd3,0x4e,0x2b,0x8d,0x03,0x90,0x88,0xa8,0xdd,0xb5,0xfe,0x72,0xc3,0xb0,0x77,
+/* 0x0080a0 */ 0x9f,0x38,0x59,0x3e,0xaa,0xcf,0x61,0xfc,0x57,0x2b,0xbe,0x95,0xaa,0xba,0x24,0x7d,
+/* 0x0080b0 */ 0xed,0xda,0xa3,0x79,0xf7,0xb9,0x98,0x10,0x8c,0x16,0x0b,0xe3,0xf1,0x57,0x57,0xde,
+/* 0x0080c0 */ 0xfe,0xd5,0x4f,0x72,0x0b,0x7d,0xa8,0xf2,0x04,0xdd,0x5c,0xd4,0xea,0xbe,0x24,0x24,
+/* 0x0080d0 */ 0x60,0xec,0x45,0x55,0x5a,0x68,0x14,0x5f,0xf9,0x25,0xcd,0xcd,0xb0,0x84,0xcc,0x13,
+/* 0x0080e0 */ 0xd4,0x5f,0x1e,0x91,0xc7,0x12,0xdf,0x50,0x19,0xaa,0xa5,0x83,0xd9,0x4c,0xac,0xe9,
+/* 0x0080f0 */ 0xf5,0xaa,0x78,0x0f,0xe8,0x14,0x2c,0x6b,0xc4,0x35,0x09,0x1e,0x7f,0xb5,0xe6,0xef,
+/* 0x008100 */ 0x5f,0x72,0x03,0xc9,0xc9,0xe1,0xf8,0xaf,0x12,0x72,0x2a,0x52,0x81,0x8c,0x8a,0x88,
+/* 0x008110 */ 0xe0,0x16,0xb6,0x23,0xdb,0x52,0x8c,0xc3,0x5f,0x21,0x07,0xfe,0x12,0x63,0x90,0x0b,
+/* 0x008120 */ 0x01,0xb2,0xaf,0xd9,0x8c,0xff,0x72,0xc5,0x56,0xf9,0xe2,0xf8,0xd6,0x75,0x0d,0xea,
+/* 0x008130 */ 0x7f,0xb9,0xeb,0x55,0xcb,0x1a,0xf1,0x88,0x03,0x7f,0xc9,0x85,0xf8,0xab,0xaa,0x08,
+/* 0x008140 */ 0x22,0x73,0x31,0xfe,0xeb,0x3c,0xca,0x47,0x64,0x0c,0x7f,0xc9,0x85,0xf8,0x8b,0xa9,
+/* 0x008150 */ 0x90,0x4a,0x53,0x55,0xd6,0xad,0x20,0xba,0x91,0x8a,0xc4,0x27,0xf0,0x9f,0x27,0xcf,
+/* 0x008160 */ 0x41,0x0e,0xfc,0x25,0xf1,0x79,0x83,0x5c,0x90,0x8c,0xb1,0x95,0x16,0x28,0x70,0xd2,
+/* 0x008170 */ 0x70,0xe0,0x2f,0xa9,0x08,0xfe,0x92,0xf0,0x03,0x59,0xb5,0x2f,0x17,0xa1,0xcf,0xa0,
+/* 0x008180 */ 0x4f,0xe0,0x09,0xb9,0xd0,0xa2,0x7c,0xc2,0xfa,0xcb,0x8b,0xad,0x46,0x09,0x65,0xbb,
+/* 0x008190 */ 0xf0,0x95,0x14,0x06,0x62,0x7b,0x42,0xea,0xe2,0x99,0x4e,0xec,0xe0,0xc4,0x5f,0x25,
+/* 0x0081a0 */ 0x4e,0xfc,0x65,0x69,0xbb,0x64,0xea,0x9f,0xa0,0x92,0x2b,0xaa,0x34,0xa6,0xee,0x96,
+/* 0x0081b0 */ 0xbd,0xfa,0xdf,0xfd,0x3f,0xea,0x2f,0xb7,0x03,0x39,0x05,0xd5,0xbe,0x52,0xa6,0xa5,
+/* 0x0081c0 */ 0xc6,0xd0,0x87,0x40,0x7b,0xcd,0xd0,0x36,0x6e,0x4a,0x5e,0x4b,0x4f,0xe0,0xbf,0x81,
+/* 0x0081d0 */ 0xf1,0x57,0x05,0x77,0xab,0x71,0x31,0x9e,0x94,0x13,0xe8,0x59,0xb4,0xb0,0x89,0xf2,
+/* 0x0081e0 */ 0x5f,0x72,0xb4,0xc9,0xa7,0x10,0x1f,0x8f,0x1f,0xb7,0xe2,0x5b,0x7f,0x83,0x81,0x46,
+/* 0x0081f0 */ 0x23,0xf0,0x95,0xf9,0xfa,0xaf,0x7c,0xfc,0xa5,0x94,0x9a,0x0d,0x72,0x65,0x4c,0x0b,
+/* 0x008200 */ 0x28,0x9e,0x44,0x92,0xf2,0x5f,0xf8,0x96,0xac,0x9f,0xc4,0x9d,0x43,0xe4,0x96,0x43,
+/* 0x008210 */ 0xff,0xe5,0xf0,0x9f,0xef,0x75,0x85,0xb5,0x0a,0xb3,0xb1,0x84,0xf2,0x5f,0x66,0x7a,
+/* 0x008220 */ 0xa7,0xa6,0xb6,0xcb,0x9b,0x12,0xe4,0x78,0x56,0x93,0x89,0x10,0xec,0x2e,0xf8,0x4b,
+/* 0x008230 */ 0xaa,0x79,0xb4,0x24,0xf5,0xf8,0xb0,0x59,0x08,0x6c,0x78,0x12,0x4b,0x2e,0xdd,0x81,
+/* 0x008240 */ 0x0e,0x84,0x66,0xb6,0x2e,0x82,0x17,0xe0,0xd5,0xbc,0x57,0xcb,0xe4,0xbf,0x5e,0xce,
+/* 0x008250 */ 0x4f,0xa3,0x75,0xbc,0xb4,0xfb,0x51,0x94,0x19,0x71,0xa0,0x40,0x3b,0x8c,0x8f,0x70,
+/* 0x008260 */ 0x38,0xaf,0x0f,0x8b,0x13,0x3a,0x5c,0xc5,0x71,0x1c,0xdf,0x80,0x8a,0x60,0x57,0xf4,
+/* 0x008270 */ 0x06,0x6d,0x69,0x8a,0x17,0x82,0x7d,0x7e,0x37,0xff,0x8d,0x7a,0x92,0xdb,0x23,0x59,
+/* 0x008280 */ 0xd5,0xbe,0x46,0xe9,0x57,0x09,0x6e,0x99,0xd1,0xa9,0xf8,0x8d,0x3a,0x57,0x50,0x9a,
+/* 0x008290 */ 0xd9,0xc4,0x5f,0x96,0xfe,0x0b,0x2c,0x35,0xa4,0x1a,0x7a,0xf6,0xbe,0x01,0xd5,0x76,
+/* 0x0082a0 */ 0xc9,0x69,0x1b,0x64,0xe1,0x2b,0x25,0x73,0x3b,0xe5,0x74,0x00,0x0a,0x81,0x85,0xf1,
+/* 0x0082b0 */ 0x95,0x40,0x11,0xfd,0x97,0xc2,0xc3,0x2e,0x4a,0x7b,0xe1,0xe0,0x6d,0xac,0x84,0x0b,
+/* 0x0082c0 */ 0xb6,0xbd,0x28,0xd9,0xa5,0xb6,0x93,0x14,0x9a,0x24,0x67,0xc5,0xcc,0xe1,0xaf,0x73,
+/* 0x0082d0 */ 0xb6,0xfe,0x8b,0x2e,0xd4,0x25,0x63,0x42,0xcc,0xb5,0x45,0x21,0xfe,0x51,0xe4,0xd6,
+/* 0x0082e0 */ 0x21,0xcf,0x0d,0xbc,0xc0,0x26,0x50,0x30,0x01,0xcb,0x72,0x41,0x69,0x66,0xc6,0x7f,
+/* 0x0082f0 */ 0xa5,0x9d,0xf5,0x97,0xe7,0xe5,0x08,0xed,0xf5,0x3f,0x84,0xff,0x12,0xd8,0xad,0xe7,
+/* 0x008300 */ 0x89,0xff,0xfc,0xac,0x5c,0xe9,0xb3,0x55,0x67,0x8d,0x8f,0xf2,0xc0,0x1a,0xe3,0xbf,
+/* 0x008310 */ 0x5a,0x6d,0xff,0x8d,0x5d,0x04,0x5b,0xfd,0x2f,0x67,0x57,0x1b,0x1c,0xc5,0x71,0xa6,
+/* 0x008320 */ 0x7b,0x67,0x06,0x31,0xfb,0x25,0x2d,0x2b,0x2e,0x05,0xb6,0xce,0x8c,0x56,0x0a,0xb7,
+/* 0x008330 */ 0x70,0x8b,0x58,0x04,0x96,0x31,0x08,0x69,0x2c,0x71,0xb1,0x0e,0x88,0xa5,0xfb,0xf8,
+/* 0x008340 */ 0x41,0xd5,0xa5,0x38,0x5d,0x8a,0x4a,0xf9,0x5c,0x98,0x12,0xdc,0x55,0x1d,0xa6,0x28,
+/* 0x008350 */ 0x7b,0xb4,0xd2,0xd9,0x02,0x39,0x87,0x8c,0xed,0x32,0x8e,0x9d,0xd4,0xf2,0x91,0x04,
+/* 0x008360 */ 0x27,0x5c,0x6a,0x11,0x0e,0x08,0x9b,0xc0,0x80,0x95,0x58,0xb6,0x85,0xd1,0xf9,0x72,
+/* 0x008370 */ 0x09,0x87,0x7d,0xf6,0xe2,0x40,0x4e,0xb6,0x65,0x67,0x8d,0x5d,0x87,0x30,0xc2,0x5c,
+/* 0x008380 */ 0xbf,0xdd,0xf3,0xd1,0x33,0xd3,0xb3,0xab,0xf8,0xdf,0x5b,0x33,0xad,0x95,0xd4,0x3d,
+/* 0x008390 */ 0xbd,0xf3,0x3e,0xfd,0xbc,0xcf,0xf3,0x96,0xa7,0x5b,0x09,0xda,0x42,0xe5,0x06,0xff,
+/* 0x0083a0 */ 0xa5,0xef,0x7e,0xf1,0xcf,0x47,0xd1,0x17,0xc0,0x7f,0x1d,0x15,0xdd,0x49,0x0e,0x5f,
+/* 0x0083b0 */ 0xff,0x75,0x03,0x4c,0x0e,0x4f,0x00,0x11,0xa6,0x35,0xd5,0x56,0x5c,0x37,0xfa,0x7f,
+/* 0x0083c0 */ 0xc9,0xd7,0x6b,0x9a,0x56,0xbf,0x97,0x59,0xaa,0x95,0x7b,0x81,0xd8,0x55,0x9e,0xfe,
+/* 0x0083d0 */ 0x4b,0x25,0xb2,0xaf,0xe5,0x78,0xcb,0xe0,0x39,0x54,0xc2,0xcb,0xc5,0xc7,0xf1,0xad,
+/* 0x0083e0 */ 0x3b,0x87,0xe5,0x6d,0xe2,0x06,0xb4,0x27,0x7b,0xe7,0xe1,0xe8,0x16,0x21,0xa5,0x1e,
+/* 0x0083f0 */ 0xc8,0xa6,0xa0,0x58,0x71,0xd4,0x85,0xbf,0xe6,0x38,0xf0,0x17,0x23,0xfb,0x42,0x46,
+/* 0x008400 */ 0xa0,0xe8,0xc1,0xad,0xf1,0x6f,0xa1,0x63,0x9d,0x5f,0x1f,0x25,0xaf,0xc8,0x67,0x14,
+/* 0x008410 */ 0x76,0x9e,0xb7,0x94,0xc2,0x5f,0x29,0x64,0xe4,0x99,0xb5,0x50,0x31,0x15,0x41,0x83,
+/* 0x008420 */ 0x03,0x52,0x61,0x2e,0xf3,0x24,0x58,0x79,0x8b,0xc1,0x7f,0x65,0xbd,0xfd,0x97,0xc5,
+/* 0x008430 */ 0x4f,0xfa,0x6e,0x99,0x80,0x17,0x64,0x20,0x18,0x60,0x6e,0x8a,0x7d,0xa6,0x1e,0x1b,
+/* 0x008440 */ 0x8d,0x14,0x42,0xab,0x62,0x6f,0x93,0x5b,0x65,0x45,0xf5,0x5f,0x8c,0xa0,0xac,0x11,
+/* 0x008450 */ 0xb4,0x78,0x87,0xcd,0xe4,0x7f,0x42,0xbe,0x28,0x34,0x81,0x8f,0x3d,0xb4,0x9a,0x72,
+/* 0x008460 */ 0x0e,0x36,0xf0,0x57,0xf7,0x00,0x39,0xba,0xb7,0x53,0xc7,0x3b,0xc0,0xde,0x0d,0xe4,
+/* 0x008470 */ 0x48,0xe5,0x14,0x88,0xad,0xa2,0x8c,0xd8,0x17,0xa8,0x21,0x1f,0x29,0x04,0x00,0x88,
+/* 0x008480 */ 0x2d,0x76,0xe4,0x99,0x06,0xfe,0xd2,0x1c,0xfc,0x57,0x19,0x91,0xe4,0x90,0xda,0x27,
+/* 0x008490 */ 0x24,0x93,0x6a,0x28,0xda,0x96,0x08,0xe7,0xd8,0xea,0xb2,0x02,0x1c,0xcb,0x4b,0x37,
+/* 0x0084a0 */ 0x5c,0xf9,0xb3,0x5f,0xff,0x65,0xd2,0x6c,0xf7,0xe5,0xc0,0x42,0xb4,0xc6,0xee,0xff,
+/* 0x0084b0 */ 0x05,0x59,0x65,0xec,0xdb,0xaf,0x06,0x61,0x7a,0xfb,0x5d,0x40,0xcc,0xd6,0x7f,0x31,
+/* 0x0084c0 */ 0xf8,0x4b,0x4d,0x8d,0x84,0xeb,0x5b,0xce,0xf5,0x1e,0x55,0x93,0x11,0x79,0x99,0x51,
+/* 0x0084d0 */ 0x55,0x25,0xd7,0x27,0x22,0xbd,0x47,0xd3,0x1b,0x2f,0xc8,0xe9,0x85,0xdf,0x45,0x47,
+/* 0x0084e0 */ 0x15,0xab,0x35,0x18,0xcb,0x7f,0xd9,0xfe,0x87,0xe0,0xb6,0xa1,0x36,0xfd,0x06,0x27,
+/* 0x0084f0 */ 0x6f,0x10,0xac,0x40,0xe0,0xe2,0xa8,0x82,0xd5,0x9e,0xdc,0x25,0xa6,0x7a,0x27,0xdb,
+/* 0x008500 */ 0x06,0xdf,0x5a,0xd4,0x25,0xfe,0x02,0xbd,0xd1,0x45,0x27,0x5c,0xf5,0xe8,0xbf,0x98,
+/* 0x008510 */ 0x79,0x56,0x81,0xe4,0x8a,0x4d,0xe0,0xdc,0x6f,0xa5,0x04,0x42,0x30,0xed,0x16,0xcc,
+/* 0x008520 */ 0xea,0x11,0xf1,0xdf,0x11,0xf8,0x5e,0x96,0x17,0x66,0xee,0x40,0x37,0x3a,0x69,0x6b,
+/* 0x008530 */ 0xb0,0x62,0xf5,0x87,0x8c,0x11,0xfd,0x9d,0x3f,0x8c,0x76,0x88,0x2f,0xe2,0xc1,0x4b,
+/* 0x008540 */ 0xf4,0xc8,0xb8,0x7d,0x9a,0xe1,0xdb,0xff,0xcb,0xe1,0xbf,0x61,0x06,0xb1,0xd3,0xeb,
+/* 0x008550 */ 0x13,0xba,0xbc,0x57,0x98,0x0f,0x65,0x7e,0x79,0x79,0x6f,0xa8,0x8e,0xc3,0x91,0x95,
+/* 0x008560 */ 0xf0,0x3f,0xb4,0x04,0xfe,0x38,0xdf,0x18,0x8e,0x01,0xe0,0x1d,0xcf,0xd9,0xdb,0xc1,
+/* 0x008570 */ 0x3b,0x98,0xeb,0xbf,0xc1,0xf0,0x5f,0xaf,0x07,0xf7,0x86,0x36,0x13,0xfe,0x4b,0x7e,
+/* 0x008580 */ 0x51,0xe0,0x61,0xfc,0x52,0xf8,0x8b,0xe2,0xe5,0x86,0x7c,0xf4,0xa2,0x78,0x4d,0x83,
+/* 0x008590 */ 0xfd,0x15,0x39,0x41,0x1d,0x47,0xdd,0x7b,0xc7,0x81,0xbf,0x78,0xfe,0x1b,0x84,0xff,
+/* 0x0085a0 */ 0xca,0x97,0x17,0xc2,0x39,0x74,0x8d,0x5b,0x4a,0x5a,0xda,0xff,0xd0,0x0a,0xc0,0xf6,
+/* 0x0085b0 */ 0xb0,0x07,0x64,0x83,0x83,0xc3,0xe5,0x2f,0xb2,0xfe,0x1b,0xee,0xa0,0xb4,0xfe,0xab,
+/* 0x0085c0 */ 0x5e,0x7c,0x40,0x3b,0x8d,0xee,0x24,0x76,0x4f,0xfe,0xf3,0x53,0x82,0xff,0x4a,0xe8,
+/* 0x0085d0 */ 0x73,0xaa,0x84,0x32,0x38,0xa0,0xb8,0xba,0xa6,0xbe,0xd8,0x7a,0xf1,0xfb,0x2f,0x5b,
+/* 0x0085e0 */ 0x01,0x74,0x01,0x4e,0x6c,0x40,0xc7,0x07,0x7e,0x78,0x79,0xd7,0x43,0x04,0x20,0x44,
+/* 0x0085f0 */ 0x3d,0x63,0x1c,0xf8,0xcb,0xc9,0x7f,0x51,0xdb,0x43,0xfc,0xbf,0xa7,0xd5,0x48,0x5a,
+/* 0x008600 */ 0x94,0xf0,0x26,0x4a,0x0f,0xe3,0x37,0x51,0x44,0xf5,0x72,0x64,0x1c,0xff,0x43,0x07,
+/* 0x008610 */ 0xff,0x95,0x23,0x1b,0xed,0x94,0xfe,0x67,0x79,0x4a,0x84,0xfd,0x2a,0xda,0x85,0xf1,
+/* 0x008620 */ 0xb2,0x31,0x86,0xd3,0xff,0x8b,0x8b,0xbf,0x2c,0xfe,0xab,0x01,0x68,0x2f,0xfc,0xc9,
+/* 0x008630 */ 0xb1,0x97,0x74,0x96,0x9d,0xf4,0x0e,0xe6,0xfa,0xcf,0x5b,0xfc,0x97,0x5a,0x43,0x41,
+/* 0x008640 */ 0xd6,0x69,0xa5,0x7a,0xa4,0xcd,0xd5,0x89,0x92,0xef,0x7f,0xc8,0xe7,0xbf,0x30,0xfe,
+/* 0x008650 */ 0x0a,0x5a,0x95,0x9f,0x0c,0xaa,0xa5,0xbd,0x00,0xb8,0xfc,0x17,0x77,0x9f,0x06,0x94,
+/* 0x008660 */ 0x4f,0x83,0x49,0xe1,0x3c,0x39,0x37,0x9e,0xd3,0x98,0x29,0xb2,0xee,0x7c,0xff,0x0d,
+/* 0x008670 */ 0x2b,0xb8,0x2b,0x1b,0xfd,0x50,0x7c,0x1b,0x07,0xdb,0xb5,0xd4,0x27,0x4b,0x93,0x32,
+/* 0x008680 */ 0x6f,0x4c,0x69,0xfe,0x0b,0x07,0x65,0x75,0xbd,0x62,0x5e,0x9f,0x44,0xa7,0x62,0xdc,
+/* 0x008690 */ 0xb6,0x5f,0x25,0xfc,0x0f,0x2d,0x53,0x82,0xad,0x6a,0x6a,0x2e,0x31,0x99,0xc7,0xb0,
+/* 0x0086a0 */ 0x0b,0x1c,0xbc,0xef,0xf6,0xcb,0x45,0xfd,0xfc,0x37,0xac,0xe2,0x40,0xf9,0xa9,0xcc,
+/* 0x0086b0 */ 0x41,0xb4,0x13,0x25,0xda,0xe4,0x98,0xb8,0x31,0x36,0x3d,0xff,0x8d,0x85,0x8e,0x5b,
+/* 0x0086c0 */ 0x07,0x89,0x4b,0x7c,0x1b,0xce,0xba,0xb5,0x6e,0x94,0x58,0x7d,0x68,0xa0,0xa5,0x88,
+/* 0x0086d0 */ 0x8f,0x87,0x0f,0xfe,0xb2,0xf9,0x2f,0x9c,0xfc,0xf7,0xa2,0xee,0x58,0x56,0xc5,0xfb,
+/* 0x0086e0 */ 0x7d,0x35,0x6f,0x8c,0x13,0x7f,0x45,0x1d,0xfa,0x2f,0xcb,0x88,0x23,0x11,0x8b,0x64,
+/* 0x0086f0 */ 0xa0,0x11,0xf3,0x03,0x5b,0x43,0xeb,0xec,0x42,0xb2,0x22,0xfd,0xbf,0x3c,0xf8,0x8b,
+/* 0x008700 */ 0x04,0xb5,0xa7,0xdb,0xa8,0x6f,0x46,0xf5,0x49,0x75,0x71,0x87,0x7f,0xaa,0xcf,0xf7,
+/* 0x008710 */ 0xdf,0xb0,0x83,0x43,0x0d,0x1d,0x15,0x17,0xc5,0x06,0xe9,0x3a,0x5a,0xaa,0x46,0x38,
+/* 0x008720 */ 0x9f,0x23,0x5c,0x76,0xe1,0x2f,0x4e,0xff,0x65,0x1c,0xe4,0x74,0x45,0x09,0x6b,0x21,
+/* 0x008730 */ 0x45,0xca,0x49,0x09,0xb4,0x2b,0xeb,0x6e,0xfb,0x25,0x72,0xfc,0x37,0x66,0x78,0xa7,
+/* 0x008740 */ 0x8e,0xf0,0x5f,0x60,0x32,0xff,0x17,0x73,0xa0,0x05,0xdb,0xa1,0xd8,0xb7,0x99,0x5b,
+/* 0x008750 */ 0xfb,0x3c,0xf3,0xec,0xcf,0x7f,0x61,0xfc,0x95,0x68,0xe9,0x3f,0x26,0x6c,0x44,0x47,
+/* 0x008760 */ 0xa4,0xfd,0xea,0x4f,0xf6,0x78,0xe1,0x76,0x7c,0x3a,0xfe,0x87,0x84,0xff,0xda,0x58,
+/* 0x008770 */ 0x31,0x7b,0xe6,0x77,0x80,0xd8,0xa5,0x0e,0x33,0x27,0xfc,0xe6,0xd9,0xa7,0xff,0x97,
+/* 0x008780 */ 0x19,0xac,0xe8,0xac,0x18,0xb8,0xeb,0x47,0x1a,0x71,0xe4,0xd8,0xeb,0xfa,0x71,0xb6,
+/* 0x008790 */ 0x35,0x98,0x68,0xe2,0x1d,0x27,0xfe,0x32,0x1e,0xa4,0x02,0x0e,0xee,0xa3,0x46,0x9a,
+/* 0x0087a0 */ 0xf5,0x28,0xda,0xdb,0xe3,0x7a,0x7e,0xee,0xd5,0x2a,0x8b,0xfa,0x6f,0x30,0x41,0xa2,
+/* 0x0087b0 */ 0x5b,0xbe,0x94,0x49,0xa6,0x5f,0x92,0x6a,0x7a,0xa3,0xd0,0x37,0x90,0xaf,0x11,0xf3,
+/* 0x0087c0 */ 0xf3,0xdf,0xb0,0xf5,0x5f,0xc9,0x33,0xa1,0xc6,0x32,0x90,0x9c,0x28,0x85,0xe0,0x92,
+/* 0x0087d0 */ 0x62,0xef,0x2f,0x1f,0xff,0x0d,0x8b,0xdf,0x19,0xa7,0x06,0xe9,0x01,0xe5,0x2c,0xfe,
+/* 0x0087e0 */ 0x82,0x85,0x46,0x21,0x0f,0xf2,0xbf,0x9f,0x79,0xfe,0x87,0x80,0xbf,0x48,0x70,0x7c,
+/* 0x0087f0 */ 0x60,0xc1,0xe7,0xe5,0xdb,0xc2,0x77,0x48,0xd7,0x1e,0x5f,0x92,0x8f,0x32,0x6c,0x97,
+/* 0x008800 */ 0xb7,0xff,0x17,0xcf,0xff,0xd0,0x0e,0x3a,0x70,0x32,0x99,0x0e,0xe0,0xa0,0xf3,0x14,
+/* 0x008810 */ 0x24,0xf6,0xdc,0x77,0x93,0x3f,0xfe,0x62,0x82,0x3b,0xf3,0x91,0xf5,0xf8,0xcf,0x38,
+/* 0x008820 */ 0xdf,0xb7,0x84,0xf2,0x5f,0xbe,0xf9,0xa1,0x5f,0xff,0xe5,0x0a,0x63,0x7e,0xf0,0xfb,
+/* 0x008830 */ 0x2b,0x51,0xd5,0xf2,0x58,0x6c,0x81,0x1e,0xdd,0x1a,0x67,0xc6,0x5c,0x73,0xcd,0xcf,
+/* 0x008840 */ 0xfb,0x1c,0xff,0x43,0xa6,0x11,0xd8,0x01,0x3d,0xd8,0x95,0xa1,0xed,0x57,0xe4,0x0e,
+/* 0x008850 */ 0xc1,0xb1,0x16,0x0b,0x1c,0x83,0xb9,0xfe,0x1b,0xc8,0xb2,0x77,0x53,0xde,0x5a,0xb0,
+/* 0x008860 */ 0x6c,0x57,0x45,0x0c,0x9a,0x6b,0x27,0xab,0xe6,0xf3,0x6b,0x3c,0x7c,0xeb,0x0f,0x21,
+/* 0x008870 */ 0x08,0x1b,0xf5,0x51,0x85,0xe8,0x49,0x71,0x31,0xd8,0xe8,0xe9,0x6d,0x43,0x3d,0xe6,
+/* 0x008880 */ 0xfb,0x5d,0x98,0x08,0x78,0xde,0xef,0x45,0xf1,0x17,0x6a,0x1a,0x06,0xd8,0xd5,0x79,
+/* 0x008890 */ 0x03,0x9d,0x1a,0xab,0xd8,0xcf,0xde,0xf2,0xc1,0x5f,0x0e,0xff,0x0d,0x3b,0x08,0x1c,
+/* 0x0088a0 */ 0x85,0xa0,0x0a,0xf8,0x9d,0xe1,0xe8,0xa4,0xcb,0x91,0x9e,0x87,0xbf,0x5c,0xfe,0xf3,
+/* 0x0088b0 */ 0x66,0x7e,0x18,0xa8,0xd1,0xfb,0x1b,0x43,0xd0,0xae,0x6b,0xd9,0x88,0xbc,0x3c,0x53,
+/* 0x0088c0 */ 0x24,0x3f,0xf4,0xc3,0x5f,0x06,0xff,0xb5,0x50,0xbf,0x7d,0x1f,0x7e,0x7f,0xf5,0xa3,
+/* 0x0088d0 */ 0xfd,0xfa,0x5f,0x0e,0x26,0x52,0xdc,0x5c,0xdd,0xdf,0x7f,0xc3,0x53,0x30,0x7c,0x00,
+/* 0x0088e0 */ 0x1d,0xd4,0xe5,0xa2,0xb8,0x80,0xeb,0xbf,0x61,0x02,0x31,0xa8,0x3a,0x6b,0x87,0x26,
+/* 0x0088f0 */ 0xcb,0xaf,0xe2,0xf5,0xfa,0x66,0xd1,0x7c,0x8c,0xd7,0x7f,0xd9,0x0c,0x64,0xa3,0x00,
+/* 0x008900 */ 0x75,0x0a,0x3d,0x82,0x53,0xe9,0xf6,0xae,0x70,0x91,0x7c,0x9e,0x8b,0xbf,0x40,0xd2,
+/* 0x008910 */ 0xf5,0xa9,0xc8,0xb8,0x1d,0x1a,0x01,0xad,0x32,0x8d,0xe8,0x78,0xe1,0xde,0x70,0xdc,
+/* 0x008920 */ 0xf2,0xf1,0x3f,0x8c,0xed,0xcf,0x87,0xb7,0x08,0x1e,0xb4,0x55,0x86,0x83,0xee,0xcd,
+/* 0x008930 */ 0x17,0xe4,0xb8,0xd0,0x8c,0x7e,0x3a,0x1d,0xfc,0x95,0x84,0xe9,0x0d,0xd1,0x59,0x7d,
+/* 0x008940 */ 0xce,0x9c,0xcc,0x35,0xe9,0xf8,0x28,0x69,0x30,0x24,0xe7,0x32,0xd1,0x58,0x8f,0xb9,
+/* 0x008950 */ 0x77,0x0e,0xb8,0xf1,0x17,0xbb,0xdc,0x89,0x33,0x2c,0x77,0xe3,0x5a,0xe5,0xd0,0x10,
+/* 0x008960 */ 0x79,0xa2,0xa6,0x83,0xbf,0x68,0x6f,0x26,0xfb,0xca,0xcb,0x16,0x94,0xc6,0x3f,0x15,
+/* 0x008970 */ 0xe9,0x83,0xc6,0x5b,0xc5,0xf1,0xd7,0x4c,0x76,0x2d,0x62,0xcc,0xa2,0x18,0x0e,0x96,
+/* 0x008980 */ 0x8f,0xe0,0x9f,0x8a,0x8e,0x89,0x13,0xd3,0xc7,0x5f,0x69,0x9f,0xa7,0x65,0x05,0x1c,
+/* 0x008990 */ 0x98,0x44,0xec,0x7d,0xfa,0x91,0x3f,0xfe,0x3a,0x0d,0x41,0x01,0x4f,0xc2,0x4a,0x66,
+/* 0x0089a0 */ 0x12,0xcc,0x8e,0x69,0x35,0xf0,0x60,0x37,0x9a,0xb6,0x87,0x13,0x2e,0xff,0x0d,0x1e,
+/* 0x0089b0 */ 0xfe,0x8a,0xc4,0x96,0x72,0x76,0xc1,0x03,0x7a,0x68,0xc0,0x30,0xc4,0x0b,0x82,0x34,
+/* 0x0089c0 */ 0xec,0x40,0x49,0xfc,0xb5,0x41,0x3b,0xde,0xed,0x46,0x0a,0xa7,0xb5,0xea,0xbc,0xbc,
+/* 0x0089d0 */ 0x3e,0x7e,0x87,0xf6,0x0c,0x9c,0xa1,0x6d,0x17,0xbe,0xb4,0xfd,0x37,0x78,0xf8,0xab,
+/* 0x0089e0 */ 0x71,0xbc,0x62,0x09,0xb8,0x1d,0x22,0xf0,0x3f,0x14,0x47,0x09,0xc9,0x15,0x5e,0x21,
+/* 0x0089f0 */ 0xbe,0xa9,0xdf,0xd0,0x96,0x8f,0x97,0xc7,0xc2,0xe5,0x1a,0xe1,0xbf,0x56,0xe0,0xf9,
+/* 0x008a00 */ 0xf9,0x9d,0x17,0x7f,0xc5,0x58,0xfe,0x2b,0xd7,0x63,0xcc,0xfc,0x11,0x73,0x75,0x3e,
+/* 0x008a10 */ 0x85,0x17,0x19,0xba,0xeb,0x57,0xbb,0x07,0x8c,0xaf,0x4a,0x56,0xd3,0x67,0xe2,0xaf,
+/* 0x008a20 */ 0x00,0xbb,0x28,0xe9,0xc6,0x7c,0x64,0xd0,0x5c,0x8b,0xe5,0xf7,0x18,0x0b,0x47,0x85,
+/* 0x008a30 */ 0x60,0x4d,0x79,0x8c,0xc8,0x52,0xfa,0x1b,0xf8,0xcf,0x28,0xe5,0x7f,0x08,0x8d,0x2c,
+/* 0x008a40 */ 0xa3,0x5d,0x19,0x6f,0x71,0x05,0x0e,0xa4,0x45,0x23,0x6d,0x1d,0x35,0xeb,0x14,0xe0,
+/* 0x008a50 */ 0xbf,0x10,0x17,0x7f,0xcd,0xf5,0xea,0xbf,0x0c,0x47,0x0e,0x4b,0x82,0xf7,0x83,0x59,
+/* 0x008a60 */ 0x04,0x88,0x2d,0x2f,0xa3,0x0d,0xd7,0xe4,0x6d,0x2d,0x25,0xf1,0x17,0x7e,0x48,0xcc,
+/* 0x008a70 */ 0x2b,0x09,0xf2,0x48,0x80,0x60,0xf3,0x30,0xb9,0xd2,0x97,0x0b,0xc1,0x72,0xd7,0x4d,
+/* 0x008a80 */ 0xc3,0xff,0x90,0x34,0x4b,0x05,0xff,0xf9,0x3a,0xda,0xf6,0x0b,0x24,0x1e,0xb7,0x67,
+/* 0x008a90 */ 0x5b,0x0f,0xc1,0x39,0xad,0x26,0x8f,0x8b,0xc9,0xd8,0xeb,0x42,0x93,0xcb,0xff,0x50,
+/* 0x008aa0 */ 0x35,0xf0,0x97,0xad,0xf6,0x2a,0x38,0x73,0xfe,0x99,0x34,0xe5,0x9b,0xa7,0x05,0x28,
+/* 0x008ab0 */ 0x77,0xb3,0xbb,0x7b,0xda,0xf8,0x8b,0x34,0x62,0xde,0x68,0x98,0x6c,0x58,0x26,0x87,
+/* 0x008ac0 */ 0x95,0x97,0x25,0xc3,0x76,0x5e,0x22,0xfe,0xf3,0xe5,0x7c,0xfc,0xf5,0x81,0x0d,0xbb,
+/* 0x008ad0 */ 0xf6,0x13,0xb6,0x4b,0xa6,0xb9,0x71,0xc2,0x26,0x32,0x8c,0xfa,0xb1,0xd0,0xc1,0xd8,
+/* 0x008ae0 */ 0x7f,0xbb,0xf8,0x0b,0x7e,0xfd,0x21,0x2d,0x3f,0x0b,0xbc,0x80,0xaf,0xdc,0xce,0x66,
+/* 0x008af0 */ 0xe6,0x02,0xf9,0x1c,0xa8,0x48,0x0c,0xe2,0x60,0x0d,0x43,0x84,0x31,0xf8,0xcb,0x4e,
+/* 0x008b00 */ 0xf5,0x93,0x8a,0x1a,0xde,0x93,0xf1,0x22,0xb2,0xcb,0xa8,0x1b,0x6d,0x5a,0xd3,0x1f,
+/* 0x008b10 */ 0xdf,0xd5,0x9b,0x7d,0x82,0x7a,0xdd,0x7b,0xf0,0x57,0x84,0xe5,0xbf,0xaa,0x1b,0xd0,
+/* 0x008b20 */ 0xdf,0x67,0xc4,0x4e,0x34,0x4e,0x35,0x74,0x74,0x09,0x6e,0x37,0x64,0x3b,0xf2,0xbc,
+/* 0x008b30 */ 0x8c,0xa8,0x68,0x23,0x96,0x58,0xcc,0x85,0xbf,0x0e,0xca,0xb6,0x7b,0x5e,0xb2,0x49,
+/* 0x008b40 */ 0x9d,0xb7,0x87,0xf0,0x8c,0x0f,0x13,0x5d,0x52,0xe0,0xba,0x2d,0x50,0xaa,0x5a,0x33,
+/* 0x008b50 */ 0xef,0x6a,0x4f,0x09,0xfc,0x45,0x6b,0xde,0xe6,0x5c,0x47,0x77,0x81,0x4a,0xe2,0xa0,
+/* 0x008b60 */ 0x74,0x3d,0xf0,0xb0,0xda,0x3e,0xf6,0x37,0x86,0x59,0xc7,0xd8,0xcc,0xcf,0x61,0x99,
+/* 0x008b70 */ 0xfe,0x7a,0xde,0x40,0x8f,0xa4,0x7c,0x8c,0x1e,0x51,0x2b,0xbc,0xfc,0x17,0x8b,0xbf,
+/* 0x008b80 */ 0xe4,0x21,0x05,0xcc,0x43,0x58,0xff,0x79,0x30,0x42,0x24,0xff,0x57,0x1f,0x30,0x62,
+/* 0x008b90 */ 0x52,0x7c,0x9f,0x00,0xed,0xa8,0xc2,0x7e,0xf8,0x2b,0x69,0xcc,0x6a,0x5b,0x56,0x0d,
+/* 0x008ba0 */ 0x3f,0x25,0xf4,0xda,0xd3,0xfb,0x04,0x8a,0xe0,0x20,0x7e,0x99,0xf6,0x5f,0x8e,0x67,
+/* 0x008bb0 */ 0x24,0xa9,0x9b,0x50,0x63,0x16,0x47,0xe6,0x83,0xbf,0x60,0xdd,0xcb,0x6a,0x63,0xf4,
+/* 0x008bc0 */ 0xb1,0x69,0xb9,0x1c,0x83,0xe5,0x5e,0x0b,0x48,0x7c,0x27,0x21,0x40,0xe3,0x07,0xa5,
+/* 0x008bd0 */ 0x67,0x25,0x07,0x48,0x4f,0x38,0xf0,0x97,0x55,0x13,0x08,0x6c,0x57,0x2b,0x20,0xa9,
+/* 0x008be0 */ 0x3a,0x6a,0xc2,0x0f,0xf3,0x43,0x7e,0x0a,0x1e,0xe3,0xfe,0x67,0xc5,0x5a,0xe9,0x35,
+/* 0x008bf0 */ 0xa1,0xae,0x24,0xfe,0xfa,0x94,0x0b,0xd6,0xe6,0xe1,0x40,0x20,0x57,0xe6,0x88,0x97,
+/* 0x008c00 */ 0x03,0xaf,0x05,0x9c,0xb7,0xf8,0xfc,0x97,0xc1,0x76,0x59,0x01,0x7d,0x5a,0x2a,0xe1,
+/* 0x008c10 */ 0xf9,0xa9,0x43,0xed,0xbd,0x95,0x08,0x5d,0x08,0xd4,0x23,0x4b,0x08,0x56,0x0c,0x7f,
+/* 0x008c20 */ 0xe5,0x43,0xc9,0x19,0x26,0xed,0x25,0xef,0x42,0xf3,0x41,0xe4,0x45,0x1a,0x81,0x01,
+/* 0x008c30 */ 0x47,0xb6,0x2d,0xb2,0x0b,0x25,0xb4,0xb6,0x6c,0x62,0x5c,0x32,0xfc,0x37,0x5e,0x8f,
+/* 0x008c40 */ 0xf1,0xf0,0x57,0x0a,0x5e,0x6d,0x16,0x23,0x06,0xb6,0xd8,0xb5,0xf0,0xb6,0x9a,0x30,
+/* 0x008c50 */ 0x59,0x7b,0x99,0x50,0xfc,0x2c,0x8f,0xcf,0xc5,0x5f,0xc0,0xb9,0xd4,0xd3,0xb6,0x8c,
+/* 0x008c60 */ 0x7a,0xff,0xb6,0x32,0xa6,0x1b,0xc8,0x63,0x80,0xbf,0xb6,0x08,0xeb,0x49,0x83,0x45,
+/* 0x008c70 */ 0xb6,0x35,0x18,0x17,0x7f,0x8d,0xad,0xca,0xb7,0xef,0xa8,0x84,0xaf,0xe5,0x55,0x66,
+/* 0x008c80 */ 0xdb,0xe5,0x45,0xf4,0x16,0xa1,0xbd,0xb6,0x87,0x6f,0x0b,0xfe,0x36,0xb3,0x85,0x36,
+/* 0x008c90 */ 0x62,0x7e,0xb5,0x08,0xfe,0x92,0x58,0x4f,0x66,0x5a,0x90,0xdf,0x00,0xe9,0xc1,0x28,
+/* 0x008ca0 */ 0x4d,0x60,0x8e,0xe1,0xaf,0xd3,0xcf,0x68,0xfd,0xe1,0x68,0x71,0xfc,0xd5,0x74,0x05,
+/* 0x008cb0 */ 0x7a,0x7b,0xa1,0x5b,0xe0,0xb6,0x71,0xbd,0x95,0x34,0x02,0x33,0xa4,0x61,0x5a,0x43,
+/* 0x008cc0 */ 0x3e,0x32,0xd5,0xba,0x42,0x3d,0x3f,0xd0,0x7c,0xd9,0xb8,0x52,0x04,0x7f,0x35,0xe2,
+/* 0x008cd0 */ 0x57,0x49,0xa2,0x4a,0x3a,0x0e,0x24,0x17,0x39,0xee,0x43,0x77,0xc3,0xad,0x77,0x55,
+/* 0x008ce0 */ 0xe2,0x58,0xb2,0x45,0x5c,0x83,0x27,0xc1,0x68,0x0d,0x46,0x7f,0x4a,0xe4,0xf9,0xcf,
+/* 0x008cf0 */ 0x13,0x9f,0x93,0xad,0x89,0x2a,0x3a,0xe1,0x05,0xd7,0xf1,0x23,0xd8,0xff,0xca,0x1e,
+/* 0x008d00 */ 0x1f,0x7b,0x6e,0xff,0x2f,0xc0,0xdd,0xb9,0x04,0xe4,0x99,0x75,0xba,0x55,0xbf,0x21,
+/* 0x008d10 */ 0x9a,0x8f,0x84,0x76,0x4c,0x68,0xf3,0x24,0x39,0x7d,0x5c,0xfd,0x17,0xf1,0x9f,0x4f,
+/* 0x008d20 */ 0x99,0x69,0xa1,0x19,0x90,0xb7,0x79,0xb3,0x2e,0x17,0x0c,0x5b,0x2d,0xc0,0x68,0x86,
+/* 0x008d30 */ 0x3b,0x8a,0x50,0x0a,0x7f,0xd9,0xe9,0xdc,0x6e,0x73,0x29,0x77,0x33,0x36,0x29,0x25,
+/* 0x008d40 */ 0xf0,0x17,0xf5,0x9f,0x97,0x5d,0x46,0x1c,0x46,0x09,0x56,0x24,0x17,0x9e,0x83,0xda,
+/* 0x008d50 */ 0xa7,0x85,0xbf,0xf6,0xe3,0x20,0x94,0x32,0xe8,0xaa,0x04,0x4d,0x92,0xd7,0x32,0x04,
+/* 0x008d60 */ 0x56,0x72,0x5a,0xfe,0xf3,0x86,0xb5,0x02,0xbd,0x62,0x18,0x32,0x80,0xed,0x21,0xf9,
+/* 0x008d70 */ 0x40,0x9c,0x16,0xe6,0x5a,0x38,0x9f,0xc3,0xe3,0xbf,0x08,0xec,0xda,0x13,0x51,0x8f,
+/* 0x008d80 */ 0x2a,0x75,0x7a,0x9b,0x25,0x3e,0x5a,0x26,0x9c,0xd3,0x8e,0xc6,0x6a,0xf5,0x64,0x4e,
+/* 0x008d90 */ 0x08,0xf6,0x1d,0x68,0x4b,0x8d,0x84,0x97,0xb5,0x8c,0x6a,0x45,0xf0,0xd7,0xad,0xc0,
+/* 0x008da0 */ 0xd6,0x77,0xc8,0x7a,0xe1,0x2b,0xbf,0xfe,0x66,0xee,0xb1,0x09,0x8d,0xdc,0x7a,0xb1,
+/* 0x008db0 */ 0xe6,0x63,0x1c,0x34,0xbf,0x83,0x67,0x6c,0x01,0xfa,0xa8,0x93,0x78,0x5f,0x17,0xc3,
+/* 0x008dc0 */ 0x5f,0x40,0x84,0x0d,0xb7,0xa7,0x2b,0xa7,0xba,0x6f,0x00,0x11,0x96,0xeb,0x99,0xa0,
+/* 0x008dd0 */ 0x45,0x50,0x57,0x45,0x1c,0x28,0xf3,0xc6,0x00,0x6d,0xa9,0x46,0x7e,0xf8,0xb1,0x07,
+/* 0x008de0 */ 0x7f,0x4d,0x21,0xe7,0x91,0x45,0x81,0xba,0x6d,0x8c,0xe1,0xdf,0xbe,0x43,0x7b,0x0f,
+/* 0x008df0 */ 0x56,0x70,0xac,0xe6,0x73,0x27,0xad,0x5c,0xce,0x9c,0x6f,0x8c,0x99,0xfa,0x94,0x09,
+/* 0x008e00 */ 0x17,0xda,0xca,0x01,0xfe,0x92,0x16,0xbf,0x23,0xff,0x0b,0x46,0x5b,0xbb,0xd1,0xfe,
+/* 0x008e10 */ 0xcf,0x89,0xbb,0xbb,0xbb,0xec,0xd0,0xa3,0xff,0x42,0x20,0xe9,0x72,0x52,0xfc,0xf0,
+/* 0x008e20 */ 0x0d,0xb9,0xe9,0x4c,0x30,0x7d,0x76,0x9d,0xfa,0x24,0x52,0xce,0x84,0x8c,0xf2,0x4e,
+/* 0x008e30 */ 0xcf,0xd9,0x85,0x13,0x7f,0x79,0xa1,0x34,0x71,0xb9,0x74,0x34,0x77,0x73,0x3a,0x61,
+/* 0x008e40 */ 0x3a,0x82,0x31,0xba,0x2f,0xf6,0xfd,0xc9,0x44,0xcc,0xfd,0xa8,0x6f,0x22,0xbb,0x69,
+/* 0x008e50 */ 0x46,0xa1,0x72,0x47,0x0c,0xfc,0x52,0x80,0xd8,0x1d,0x78,0x2e,0x60,0xb5,0x6c,0x70,
+/* 0x008e60 */ 0xf6,0x6f,0xca,0xfb,0xf1,0x5f,0x5d,0xa4,0x1d,0x39,0x09,0xe0,0xb4,0xe7,0x34,0xac,
+/* 0x008e70 */ 0xd7,0x64,0xcb,0x69,0x32,0x46,0x70,0xe1,0x65,0x82,0xda,0x7c,0xf0,0x17,0x03,0x0c,
+/* 0x008e80 */ 0xa1,0x4f,0xc4,0x20,0xf9,0xa9,0x4e,0xee,0x5e,0x1e,0xb1,0xfb,0x2f,0x5f,0x98,0xd1,
+/* 0x008e90 */ 0xe8,0xfa,0x97,0x0b,0x44,0xe4,0x85,0xd1,0x56,0x01,0xa3,0xad,0xdd,0xa8,0xe6,0x8c,
+/* 0x008ea0 */ 0x98,0x13,0xce,0xf3,0x11,0x6b,0x01,0xef,0xb8,0xff,0xa3,0xfb,0x62,0xc4,0x87,0xff,
+/* 0x008eb0 */ 0x9a,0x6f,0xd4,0xe5,0xd2,0xb6,0x95,0x6f,0xda,0xb7,0xd8,0x85,0x2b,0xc8,0x3e,0xf5,
+/* 0x008ec0 */ 0x87,0x76,0x50,0x0b,0x2e,0x7c,0xe5,0xe8,0xb1,0xde,0xea,0x7c,0xf8,0x7e,0x0e,0xed,
+/* 0x008ed0 */ 0x65,0x99,0x75,0x4c,0x99,0xfe,0x1b,0x7c,0xfd,0xd7,0x32,0xe8,0x32,0xf9,0xb8,0xf4,
+/* 0x008ee0 */ 0x91,0x92,0xe3,0xd3,0x5e,0x24,0x38,0x6b,0xf7,0x5f,0xd6,0xff,0xd4,0xbd,0x5e,0x74,
+/* 0x008ef0 */ 0x0e,0x5f,0x3a,0x0b,0x06,0x1a,0x9b,0x6e,0xed,0x6c,0xd6,0xdb,0x0b,0x4b,0xe9,0xf7,
+/* 0x008f00 */ 0xaa,0x3d,0xcf,0x14,0x7f,0xad,0xd2,0x17,0x5b,0xf8,0x2b,0x29,0x9d,0xb4,0x97,0x80,
+/* 0x008f10 */ 0xd4,0x1e,0x80,0x59,0xfd,0x0d,0xad,0x3e,0x7f,0xdf,0xa0,0xb8,0x49,0x23,0x44,0xd8,
+/* 0x008f20 */ 0x90,0x0f,0x82,0x7e,0x38,0x9f,0xca,0x55,0x9a,0xfa,0xaf,0x81,0xef,0xf3,0xf8,0x2f,
+/* 0x008f30 */ 0x54,0x33,0x2a,0x5f,0xcd,0x54,0x65,0x4f,0x1f,0xaa,0x1e,0x91,0xbb,0x9c,0xe7,0x7e,
+/* 0x008f40 */ 0x4e,0x93,0xa8,0xab,0x54,0xff,0x15,0x40,0x3f,0xd0,0x1c,0xf8,0x2b,0x6c,0xfa,0x6f,
+/* 0x008f50 */ 0x24,0xb7,0x03,0xe0,0xcd,0x6e,0x1c,0x9d,0x83,0x5f,0x88,0x01,0xe7,0x18,0x66,0x9e,
+/* 0x008f60 */ 0x4b,0xe8,0xbf,0x20,0x39,0x89,0x47,0x48,0xd0,0xb7,0x52,0xa8,0x50,0xf8,0xe7,0x51,
+/* 0x008f70 */ 0x78,0xdd,0xdf,0xe2,0xe0,0xaf,0x0f,0x49,0x50,0x43,0x1b,0x81,0x95,0x03,0xfe,0xfa,
+/* 0x008f80 */ 0x02,0x1d,0xd3,0xd6,0x81,0x3b,0x13,0x9f,0xff,0xc2,0x40,0x6c,0xb2,0x38,0xff,0x75,
+/* 0x008f90 */ 0x0a,0x55,0x20,0x33,0xd0,0xc2,0x67,0xd4,0xaf,0xc6,0x7f,0xd1,0x20,0xbc,0x51,0xba,
+/* 0x008fa0 */ 0x8e,0xd2,0x6a,0x23,0xd8,0xe8,0xb9,0xdb,0x7e,0x91,0xa0,0xcd,0x47,0xff,0xf5,0x81,
+/* 0x008fb0 */ 0x8b,0xc8,0x20,0xe5,0x82,0x04,0x6d,0xa9,0x2f,0x98,0xb7,0xae,0x33,0x63,0xda,0x18,
+/* 0x008fc0 */ 0xfc,0x15,0x80,0xc1,0x9b,0xf9,0xdc,0x56,0x2d,0x4e,0xec,0x17,0xaa,0x6d,0x39,0x81,
+/* 0x008fd0 */ 0xd5,0x01,0xd9,0x41,0x39,0x83,0xbf,0x22,0x92,0xa4,0x3a,0xd1,0xd6,0x2c,0xc2,0x7f,
+/* 0x008fe0 */ 0x41,0xdb,0x2f,0xb0,0x43,0x9f,0x9d,0x24,0x68,0x4b,0xad,0x2e,0xc9,0x7f,0xfd,0x43,
+/* 0x008ff0 */ 0xd6,0x39,0x75,0x8f,0xf6,0x10,0x57,0x93,0xdb,0xa0,0x11,0x73,0x76,0xf2,0xfe,0x15,
+/* 0x009000 */ 0x61,0x39,0x73,0xe0,0x83,0xac,0xbb,0x6c,0xcc,0x8d,0xbf,0x9e,0xff,0x3e,0x98,0x1c,
+/* 0x009010 */ 0xb2,0x25,0x6a,0x44,0xdb,0xa5,0xe0,0x39,0xdc,0x53,0x89,0x53,0x7d,0xe5,0x18,0xa9,
+/* 0x009020 */ 0x48,0x74,0x8d,0x31,0x8d,0x1d,0x18,0xfd,0x97,0x87,0xdf,0xd9,0x4b,0xc0,0xda,0xe0,
+/* 0x009030 */ 0xb6,0x8a,0xef,0x89,0xdf,0xd1,0x5e,0x93,0x1e,0x05,0xb7,0xc3,0xdf,0x70,0xd7,0x94,
+/* 0x009040 */ 0x38,0x7b,0xfc,0x9e,0xee,0xaf,0x6d,0xb1,0x4b,0x8a,0x93,0xff,0xea,0xa5,0x26,0xf3,
+/* 0x009050 */ 0x4a,0x78,0x57,0x5c,0x41,0x7d,0xd2,0x42,0x7c,0xe5,0x1b,0x96,0xff,0xa1,0x97,0x2c,
+/* 0x009060 */ 0xb3,0xf5,0x5f,0xc3,0x47,0x24,0xef,0x1c,0x2a,0xab,0xc3,0x5f,0xcb,0xac,0x56,0xbb,
+/* 0x009070 */ 0xd1,0xc1,0x8e,0xf0,0xac,0xf8,0x2f,0xd9,0x5b,0x49,0xc7,0xe0,0xb7,0x0c,0xfc,0x35,
+/* 0x009080 */ 0x83,0xcb,0x7f,0x11,0x03,0x96,0xb2,0x5a,0xb4,0x53,0xc0,0x68,0x6b,0x4f,0xfc,0x8a,
+/* 0x009090 */ 0xea,0xcb,0x7b,0x9a,0xfa,0x2f,0x89,0xcf,0x5b,0x81,0xf7,0x48,0xe5,0x46,0x22,0xfb,
+/* 0x0090a0 */ 0x6a,0x7f,0x2a,0xf3,0xbf,0xfe,0x3c,0xe3,0x24,0x7d,0x7f,0x2d,0xe4,0xeb,0xbf,0x68,
+/* 0x0090b0 */ 0x30,0x2c,0x98,0x57,0x14,0xdf,0x31,0x17,0xe9,0xfb,0xeb,0x01,0xe4,0xc1,0x5f,0x44,
+/* 0x0090c0 */ 0xdb,0xd5,0x80,0xca,0x91,0xd8,0x89,0x74,0x30,0xd9,0xe8,0x15,0xf3,0x9e,0xb2,0x43,
+/* 0x0090d0 */ 0xab,0xd8,0xd5,0xc4,0x5f,0xb3,0x93,0xe4,0x94,0x86,0xa5,0xb4,0x92,0x56,0xb7,0x65,
+/* 0x0090e0 */ 0xb4,0x0b,0x35,0x68,0x6b,0xb3,0xf8,0xe5,0xb2,0x8b,0xc3,0x7f,0x2d,0x66,0xf8,0xaf,
+/* 0x0090f0 */ 0xfb,0x7b,0x39,0xe7,0x87,0xf8,0x1d,0x57,0x0b,0x1d,0xc1,0x22,0x71,0xa3,0xa0,0x7a,
+/* 0x009100 */ 0x54,0x75,0xcb,0x1c,0xdc,0xfc,0x97,0x82,0xbe,0xa5,0x39,0x7c,0xd1,0xc3,0x44,0xf6,
+/* 0x009110 */ 0xa5,0xd4,0xe6,0xe7,0xa6,0x31,0x2e,0xe8,0x51,0x88,0x1d,0xfa,0xc3,0x1e,0x38,0x40,
+/* 0x009120 */ 0x82,0x01,0x1b,0x7f,0x29,0x7d,0x1b,0x7a,0x9d,0x94,0xd6,0x17,0xc2,0x1d,0xd2,0xad,
+/* 0x009130 */ 0x2c,0x71,0x3b,0x2c,0x47,0xaf,0x8e,0x2f,0xb9,0xd4,0xbe,0xad,0xc6,0x42,0x5b,0x1e,
+/* 0x009140 */ 0xfe,0xab,0xd2,0xc4,0x5f,0xc1,0x93,0xaa,0xf3,0x9d,0x42,0xdc,0xcb,0x07,0x56,0x0c,
+/* 0x009150 */ 0x97,0x1d,0x11,0x0f,0xcb,0x37,0x3a,0xe1,0x56,0x65,0x69,0xfe,0xeb,0x6c,0xf4,0x4b,
+/* 0x009160 */ 0x8f,0xb6,0xcb,0x08,0x30,0x10,0x9b,0x6d,0x58,0x23,0x36,0xa1,0x3f,0xf8,0xf1,0x5f,
+/* 0x009170 */ 0x46,0x7e,0x38,0x1e,0x78,0x9e,0xff,0xbf,0xeb,0x54,0xe4,0xa5,0x54,0x0f,0x63,0x90,
+/* 0x009180 */ 0xb5,0x5e,0xf3,0xab,0xdf,0x30,0xf1,0x57,0x87,0xf6,0xbc,0xd9,0x3a,0xcd,0x3d,0x66,
+/* 0x009190 */ 0x8b,0x50,0x85,0xe1,0xdb,0x3f,0xc2,0xa2,0x54,0x29,0x3f,0xe6,0x8d,0x51,0x01,0x7f,
+/* 0x0091a0 */ 0x29,0xe4,0xf9,0xe9,0x9c,0x3d,0x11,0x78,0xd2,0xb9,0x94,0x71,0x0b,0x80,0xc3,0xab,
+/* 0x0091b0 */ 0xad,0x13,0xf2,0xf9,0x76,0x9f,0xf7,0x57,0x7f,0x5a,0xf8,0x9e,0xf9,0xfe,0x9a,0x12,
+/* 0x0091c0 */ 0xde,0x76,0x4c,0x5d,0x21,0x60,0x9d,0xc1,0xa6,0x62,0xb7,0x30,0x6e,0xaa,0xf8,0x45,
+/* 0x0091d0 */ 0xcf,0x62,0x0f,0x5d,0x65,0x91,0x2f,0x9f,0x18,0xfa,0xaf,0xc0,0x61,0xce,0x18,0x0a,
+/* 0x0091e0 */ 0xdf,0x10,0x24,0x9c,0xa7,0xe0,0xca,0x4d,0xfe,0x7a,0x69,0x36,0xfe,0xfa,0x8f,0x81,
+/* 0x0091f0 */ 0xc3,0x9e,0x96,0x5e,0x38,0x98,0x41,0x1c,0x11,0x1b,0x31,0x52,0x38,0xae,0x8b,0x05,
+/* 0x009200 */ 0xbc,0x3a,0x15,0x5c,0x5e,0xe6,0x0e,0x8c,0xbf,0xe8,0xff,0xd5,0x8d,0x7f,0xe9,0x4f,
+/* 0x009210 */ 0x59,0xff,0x43,0x4b,0xa8,0x12,0x2e,0xb4,0xa4,0x4c,0x24,0xf5,0xa5,0xea,0x97,0x3f,
+/* 0x009220 */ 0x27,0x8c,0xf7,0x97,0x36,0x63,0x93,0x6f,0x8e,0x8d,0x01,0xdd,0x51,0x6a,0xbf,0x30,
+/* 0x009230 */ 0x5a,0xed,0x86,0x5d,0x56,0xa0,0xd3,0x7d,0x11,0x42,0x11,0x8f,0x74,0x65,0xd4,0x3c,
+/* 0x009240 */ 0xe6,0x8d,0x98,0x44,0xd8,0x68,0xc0,0xdd,0xf6,0xcb,0xe6,0xbf,0x66,0x91,0x7d,0xa1,
+/* 0x009250 */ 0xe1,0xff,0xcb,0x4d,0x91,0x18,0x41,0x17,0x4e,0xc3,0xae,0xa1,0x06,0x9c,0xc6,0xb7,
+/* 0x009260 */ 0x7a,0xe9,0x45,0x12,0xa8,0x38,0xb1,0xcf,0x1b,0xfd,0x97,0x9f,0xf6,0x69,0x23,0x65,
+/* 0x009270 */ 0x21,0x32,0x9d,0xf8,0x3e,0xbd,0xe7,0xc3,0x7f,0xcd,0x1c,0x79,0xd4,0xc1,0x7f,0xed,
+/* 0x009280 */ 0x36,0xda,0x2e,0xe7,0xcb,0x86,0xc4,0xf7,0xd5,0xb7,0xb5,0x47,0xf2,0xf8,0x97,0xfe,
+/* 0x009290 */ 0x0c,0xb6,0x95,0x5e,0xb1,0x1e,0xf8,0xaf,0xc4,0xd2,0x4b,0xe8,0x1e,0x51,0xc7,0x9b,
+/* 0x0092a0 */ 0xb1,0x29,0x7f,0x7e,0x12,0xe3,0xa6,0x3f,0x50,0x20,0x36,0xc6,0xf1,0x3f,0x24,0xa2,
+/* 0x0092b0 */ 0xaa,0x21,0x3c,0x75,0x4f,0x06,0x36,0xe7,0x83,0x37,0x31,0xf0,0xe9,0xd7,0xf0,0x4b,
+/* 0x0092c0 */ 0x61,0x2f,0xa1,0xc6,0x12,0x6a,0x14,0xb2,0x8b,0x7e,0x3a,0x78,0xb3,0x1b,0x7f,0xb1,
+/* 0x0092d0 */ 0xfc,0x17,0x18,0xc8,0xe3,0x34,0x7e,0x04,0xf5,0x24,0x8d,0x73,0xf5,0x03,0x30,0xe1,
+/* 0x0092e0 */ 0xf0,0xb6,0x3a,0x8a,0x13,0x98,0x90,0x22,0x8c,0x67,0x99,0x4d,0xb4,0x89,0xc1,0x5f,
+/* 0x0092f0 */ 0x79,0x87,0xff,0x21,0x4a,0x9c,0xc1,0x59,0xca,0xb8,0xf6,0x9c,0x89,0xbb,0xf1,0x23,
+/* 0x009300 */ 0x31,0x8c,0x1f,0x92,0xcb,0x2a,0x40,0xfb,0x35,0x7d,0xf1,0x0f,0xcd,0xfe,0xcb,0x9b,
+/* 0x009310 */ 0x5c,0xf8,0x4b,0x73,0xf2,0x5f,0x84,0x54,0xba,0x62,0x34,0x59,0xa6,0x44,0x06,0x7e,
+/* 0x009320 */ 0xb9,0x04,0xc0,0x05,0x34,0xdd,0x19,0xea,0x13,0xdf,0x47,0xd6,0x66,0xfc,0x88,0x02,
+/* 0x009330 */ 0x31,0x9b,0xff,0x92,0xd8,0x7e,0xbe,0x74,0x75,0x40,0x9d,0x17,0xa5,0xed,0xc8,0x1f,
+/* 0x009340 */ 0xe9,0x04,0x23,0x0e,0x74,0x2d,0xd0,0x7c,0x79,0xd1,0x98,0x58,0x10,0xa8,0x70,0xaf,
+/* 0x009350 */ 0x72,0x47,0x29,0xfd,0x17,0x0e,0x1e,0xc4,0x7f,0x4f,0xfd,0x19,0xeb,0x21,0xc1,0x2f,
+/* 0x009360 */ 0x3b,0xd8,0x20,0xf5,0xc3,0xd1,0x9c,0x58,0x8b,0xfe,0xce,0x35,0x98,0xaf,0xff,0xa2,
+/* 0x009370 */ 0xf8,0x34,0x40,0x60,0x69,0xa1,0x95,0x5c,0xf9,0x67,0x72,0x80,0x73,0xba,0xa3,0xe1,
+/* 0x009380 */ 0x6f,0x49,0xa3,0xa2,0x37,0x8c,0xc1,0x92,0xb3,0xfe,0xd0,0xe1,0x3f,0x4f,0x6e,0xa5,
+/* 0x009390 */ 0xe3,0x9b,0xf0,0x32,0x91,0x42,0x0e,0x60,0x1e,0x21,0xa9,0x88,0x83,0x7c,0xb5,0xb6,
+/* 0x0093a0 */ 0x23,0x88,0xf0,0xe7,0x18,0xeb,0x65,0x9d,0x31,0x1a,0xf8,0x2b,0xe7,0xf0,0x3f,0x04,
+/* 0x0093b0 */ 0xa9,0xd1,0xa4,0xb0,0x01,0x27,0xff,0x0b,0xf2,0xe1,0x87,0xca,0x68,0xff,0xaf,0xd0,
+/* 0x0093c0 */ 0x18,0x29,0x1d,0x9f,0x91,0x97,0x0b,0x89,0x06,0xa0,0xbd,0xc6,0x59,0x20,0x36,0x6e,
+/* 0x0093d0 */ 0xf2,0x5f,0xeb,0xa4,0xcf,0x02,0x6c,0xfd,0xe1,0x90,0x78,0x9f,0x76,0x20,0xbb,0x5c,
+/* 0x0093e0 */ 0xaf,0xb8,0x1b,0xc3,0xc0,0xcf,0x84,0xc6,0xb3,0xe1,0x59,0xad,0x6f,0x0e,0x7f,0x96,
+/* 0x0093f0 */ 0x5d,0x36,0x12,0xad,0xc6,0x6f,0xb4,0xff,0x04,0x8e,0x2c,0x6d,0x4a,0xc3,0x6c,0xfe,
+/* 0x009400 */ 0xeb,0x69,0x67,0xff,0x2f,0x3c,0x75,0x81,0x93,0xea,0x7b,0xb1,0x06,0x72,0x45,0x25,
+/* 0x009410 */ 0x7c,0xe5,0x55,0xb1,0x71,0xec,0x9a,0xbc,0x4a,0x2d,0xff,0x9d,0x38,0xd1,0xd6,0x0c,
+/* 0x009420 */ 0xe7,0x1b,0x9f,0xd6,0xb8,0xeb,0x0f,0x93,0x6c,0xfd,0x21,0x3c,0x12,0x33,0xe1,0x0b,
+/* 0x009430 */ 0xed,0x15,0x54,0x9f,0x2f,0x3f,0xdd,0x53,0x07,0x4f,0x8b,0x1a,0x01,0x13,0xec,0x37,
+/* 0x009440 */ 0x94,0xfa,0xfc,0x77,0x35,0x71,0x5c,0x5e,0xeb,0xae,0x4f,0x30,0xf6,0xd7,0xb3,0xcf,
+/* 0x009450 */ 0xb3,0xfd,0x2b,0x17,0x51,0xdb,0x8d,0x99,0x80,0x97,0xd3,0x02,0xd4,0x5d,0x2c,0x56,
+/* 0x009460 */ 0x43,0xa0,0xff,0xda,0x2d,0xd7,0xa8,0x18,0x6d,0x5d,0x30,0x5e,0x76,0x09,0xeb,0x05,
+/* 0x009470 */ 0x74,0x95,0xef,0x7f,0x78,0x09,0xd8,0xae,0xc0,0x33,0x5a,0x4d,0x3e,0xb4,0x3d,0x04,
+/* 0x009480 */ 0xf6,0x92,0x8b,0xba,0xe4,0xf5,0xc4,0xff,0xb0,0x1a,0xec,0x4d,0xde,0xc4,0xc1,0x83,
+/* 0x009490 */ 0x46,0x53,0x36,0x07,0xff,0x35,0x8e,0xa0,0xda,0xd0,0x71,0xf4,0x31,0x7f,0x54,0xeb,
+/* 0x0094a0 */ 0xa7,0x87,0xc3,0x11,0xa3,0x0d,0x62,0x02,0x4e,0x89,0x95,0xbc,0x3c,0x68,0x1f,0x20,
+/* 0x0094b0 */ 0x5b,0xbb,0xdb,0xc2,0x5f,0x80,0xa4,0x1e,0x66,0xf1,0x97,0xb8,0x17,0x5d,0x94,0x08,
+/* 0x0094c0 */ 0xfe,0x4a,0x42,0xb7,0xe5,0x6c,0x24,0x1b,0x00,0xb5,0x57,0xfd,0xa1,0xd4,0x65,0x61,
+/* 0x0094d0 */ 0x32,0xf1,0xba,0x4f,0xfd,0xa1,0xe1,0x7f,0xc8,0x52,0x2d,0x79,0x89,0xb0,0x5d,0x4e,
+/* 0x0094e0 */ 0x47,0x0e,0x0c,0xc4,0xe0,0x80,0x5d,0xf3,0xc1,0x5f,0x23,0x8c,0xff,0x61,0xc0,0xca,
+/* 0x0094f0 */ 0x21,0x5f,0xc3,0xf9,0xea,0x3c,0x9a,0x4c,0xde,0xb1,0x91,0xaa,0x63,0x34,0x2b,0x83,
+/* 0x009500 */ 0xa5,0x8c,0x18,0xb7,0xfe,0xb0,0x89,0xc5,0x5f,0x22,0x29,0x3b,0xa4,0xc5,0x6f,0x60,
+/* 0x009510 */ 0x84,0x98,0x24,0xb0,0x2b,0xb6,0x5f,0xed,0x07,0x47,0xbb,0x9d,0x68,0x85,0x5a,0xee,
+/* 0x009520 */ 0xe5,0xbf,0x96,0x07,0xbc,0xb5,0x85,0x13,0xc2,0x4e,0x42,0x88,0xb4,0x98,0x86,0xf6,
+/* 0x009530 */ 0x70,0x4b,0x4e,0xa8,0xb7,0x0f,0xe0,0x37,0x9a,0x4f,0xff,0x65,0x87,0xff,0xa1,0x41,
+/* 0x009540 */ 0x84,0x1d,0xc4,0x6f,0x59,0x45,0xdd,0x15,0xcf,0x50,0x21,0x98,0x4c,0x3a,0x05,0x03,
+/* 0x009550 */ 0x35,0x16,0xcf,0x48,0xfb,0xbb,0x31,0x2e,0x08,0xf9,0xd5,0x1f,0xd6,0x19,0x3d,0xd4,
+/* 0x009560 */ 0x6c,0xb7,0xc3,0x41,0x14,0xce,0xd0,0xc9,0xec,0x8b,0xd0,0x16,0xc6,0xf5,0xd0,0xe7,
+/* 0x009570 */ 0xba,0x53,0xf3,0xe9,0xbf,0x7c,0xc1,0xc9,0xcb,0x10,0x0f,0xff,0x5f,0x67,0xaf,0x27,
+/* 0x009580 */ 0x9b,0xee,0x69,0x1f,0x68,0x85,0x46,0x60,0xcd,0x6b,0x68,0x21,0x62,0x12,0x07,0x6f,
+/* 0x009590 */ 0xf5,0x4c,0x65,0x61,0xf0,0x7d,0xa5,0xea,0x0f,0x67,0x34,0xab,0xf7,0x62,0x38,0x10,
+/* 0x0095a0 */ 0x3b,0x87,0xaf,0xdc,0xbb,0xe7,0x15,0xb8,0x35,0x0f,0x14,0x61,0x3b,0xd0,0xb9,0x24,
+/* 0x0095b0 */ 0x41,0x5b,0xb5,0xd9,0x87,0x50,0xd3,0x3d,0x4c,0x7f,0x61,0x93,0xff,0xda,0x36,0xc7,
+/* 0x0095c0 */ 0x03,0xa9,0x50,0x5e,0x3b,0xa4,0x50,0x20,0xa6,0x0d,0xa1,0xf9,0x73,0x40,0x11,0x26,
+/* 0x0095d0 */ 0xf7,0x75,0xd6,0xc9,0xe1,0x8c,0x50,0xad,0xc1,0x98,0xa0,0x97,0xff,0x72,0xfa,0x1f,
+/* 0x0095e0 */ 0x1a,0x41,0xf5,0x13,0x32,0x0d,0x14,0x7c,0xa5,0x45,0x26,0x3c,0xa3,0x9c,0x3a,0x1b,
+/* 0x0095f0 */ 0x9e,0x9d,0x91,0x14,0xf7,0x60,0x03,0x7f,0xad,0x0f,0xb8,0xf0,0xd7,0xda,0x81,0x96,
+/* 0x009600 */ 0x61,0xf5,0x84,0x60,0x0a,0x00,0xd1,0xfc,0xb6,0xe0,0x13,0x18,0xbf,0xe3,0xe5,0xbe,
+/* 0x009610 */ 0x47,0x1c,0x48,0xd4,0xf6,0x82,0xc6,0x30,0xe8,0xd5,0x7f,0xe5,0x39,0xf5,0x87,0xbf,
+/* 0x009620 */ 0x37,0x3d,0xfc,0x4d,0x45,0x58,0xe5,0x30,0xc8,0xbe,0x3a,0x2b,0xf6,0x84,0xbf,0xee,
+/* 0x009630 */ 0x57,0x7f,0xd8,0xc6,0xad,0x3f,0x64,0x40,0xf1,0xb2,0x4e,0xf3,0x56,0xc7,0xee,0xb9,
+/* 0x009640 */ 0x10,0x08,0x20,0x99,0x6c,0x75,0xe3,0x2f,0xd9,0xcd,0x7f,0x59,0xdc,0x16,0x6d,0xcf,
+/* 0x009650 */ 0x17,0x68,0x92,0x59,0xb6,0xeb,0x92,0xe4,0xde,0xa7,0x3c,0xfe,0x8b,0xf2,0xe6,0x71,
+/* 0x009660 */ 0x40,0x5b,0x9b,0xf1,0x77,0x82,0x01,0xb2,0x08,0x93,0xfe,0xe6,0xbf,0x2e,0x1e,0x30,
+/* 0x009670 */ 0x60,0x57,0x13,0x0b,0xc4,0xc4,0x5d,0xdc,0xfa,0x43,0xaa,0x51,0x15,0x9e,0x60,0xae,
+/* 0x009680 */ 0xe4,0x09,0xdb,0xf5,0x64,0x2c,0x75,0x81,0xf4,0x68,0x3e,0x2a,0xc1,0xad,0x16,0x37,
+/* 0x009690 */ 0xfe,0xd2,0x58,0xff,0xc3,0x1f,0x23,0xd2,0x76,0x79,0x4a,0x7b,0x3a,0xb6,0x08,0x7c,
+/* 0x0096a0 */ 0x21,0x28,0xc8,0x92,0x41,0x1a,0x86,0xbf,0x96,0xcf,0xf4,0xff,0x93,0xf0,0x4e,0xec,
+/* 0x0096b0 */ 0x38,0x0a,0x3a,0x00,0xc2,0x21,0xfa,0xf7,0xf4,0xb1,0xfc,0xd7,0x71,0xea,0xad,0xf1,
+/* 0x0096c0 */ 0x6e,0xfa,0xbf,0x0e,0x2d,0xa2,0xb6,0x87,0xd7,0xb4,0xe6,0x6c,0x0a,0xbe,0xba,0x69,
+/* 0x0096d0 */ 0xdb,0xe5,0x99,0xef,0xca,0xd7,0x4c,0x46,0xcc,0x59,0x7f,0x18,0x72,0xd4,0xc5,0x49,
+/* 0x0096e0 */ 0x55,0x24,0x58,0xfd,0x81,0x0a,0x57,0x5a,0xad,0xa4,0x7d,0x14,0x04,0xb6,0x7a,0xc5,
+/* 0x0096f0 */ 0xb1,0x7d,0xfe,0xf5,0x87,0x96,0xff,0xa1,0x40,0x28,0x2d,0xe0,0xb6,0x3e,0x51,0x6f,
+/* 0x009700 */ 0x0e,0x34,0xe7,0xdb,0x4f,0xb4,0x92,0xd4,0xb1,0x33,0x32,0x29,0xfe,0x0c,0xdf,0x6a,
+/* 0x009710 */ 0xca,0x57,0x58,0xb6,0x6c,0x4c,0x7d,0x94,0x1e,0xa0,0x3c,0x91,0xab,0x7f,0x0a,0xe1,
+/* 0x009720 */ 0xb6,0xda,0x7e,0x0e,0xc1,0x76,0x91,0xdc,0x42,0x84,0x0d,0x3c,0xde,0xb1,0xa8,0x0e,
+/* 0x009730 */ 0xa3,0x2d,0x42,0x84,0x8d,0xf7,0x6f,0x67,0xeb,0x0f,0x15,0x9a,0x40,0xdb,0x9f,0x03,
+/* 0x009740 */ 0x5d,0xc3,0xf4,0xe7,0xe0,0x03,0x7f,0x6e,0x77,0x5d,0x59,0x24,0x90,0x82,0x7c,0xfc,
+/* 0x009750 */ 0xc9,0xfa,0xda,0xae,0x1f,0x99,0x1c,0x99,0x97,0xff,0xf2,0xfa,0xbc,0x95,0x4d,0x48,
+/* 0x009760 */ 0xc4,0x0f,0x36,0xdd,0x42,0x6e,0x69,0xb0,0xee,0xc1,0x1c,0xb4,0xd4,0x59,0x26,0x78,
+/* 0x009770 */ 0x06,0xfb,0xd6,0x1f,0x12,0x9d,0xc2,0x4d,0x33,0xc0,0x00,0x4a,0x4d,0xc1,0x2d,0xf2,
+/* 0x009780 */ 0xf4,0x4e,0x0a,0x53,0x9e,0xc1,0x45,0xf9,0x2f,0xcb,0xed,0x10,0x67,0x20,0xa8,0xe2,
+/* 0x009790 */ 0x48,0x25,0xf9,0x1c,0xad,0x3d,0xd7,0x43,0x89,0x30,0x0e,0xff,0x55,0xcd,0xad,0x3f,
+/* 0x0097a0 */ 0x3c,0x67,0x77,0x3e,0xc2,0xfb,0xcb,0xb8,0x85,0x00,0x91,0xc5,0x7c,0xfa,0x2f,0xef,
+/* 0x0097b0 */ 0xe3,0xd6,0x1f,0xbe,0x80,0x83,0x72,0xc3,0x04,0x5b,0x89,0x12,0xbb,0x78,0xbd,0x2e,
+/* 0x0097c0 */ 0x47,0xa8,0x0d,0x37,0xc8,0xb2,0xf9,0x2f,0x8e,0xff,0xc6,0x4e,0xfb,0x0a,0xfe,0x3e,
+/* 0x0097d0 */ 0x84,0x60,0x48,0xab,0xeb,0x22,0x48,0x8a,0x69,0x31,0xe6,0xef,0x7f,0x88,0x52,0x67,
+/* 0x0097e0 */ 0xd7,0xa6,0xcb,0xce,0xa1,0x7d,0x62,0xea,0xec,0x6d,0x4b,0x89,0x41,0x7a,0x52,0x05,
+/* 0x0097f0 */ 0xe1,0x9e,0x96,0x8b,0xa5,0xe4,0xb5,0xe9,0x50,0x64,0x18,0xe7,0x1b,0xa3,0xd0,0x0a,
+/* 0x009800 */ 0x47,0x35,0xf1,0x57,0x37,0x4d,0x7f,0x58,0xfe,0x8b,0xc0,0xdb,0x23,0x78,0x9f,0x7e,
+/* 0x009810 */ 0x17,0xcc,0x4c,0x06,0x7b,0x3e,0x9e,0xf5,0x36,0x7c,0x23,0xe5,0xa8,0xff,0xa1,0x0a,
+/* 0x009820 */ 0xf3,0x23,0x60,0xb0,0xf6,0x3a,0x8b,0x97,0x4d,0xfe,0xeb,0x69,0x17,0x99,0x88,0xb3,
+/* 0x009830 */ 0xc1,0x9b,0xda,0x4d,0x19,0xe7,0xfc,0x57,0x49,0x12,0xb8,0x12,0x91,0x44,0x71,0x4a,
+/* 0x009840 */ 0x69,0x8e,0xc1,0xb1,0xbc,0x7e,0x0b,0x7e,0x45,0x81,0x48,0xc3,0x28,0xff,0xf5,0x8d,
+/* 0x009850 */ 0x62,0xfa,0x2f,0x0c,0xbb,0xa2,0xd0,0xed,0x0b,0x02,0x7c,0xa5,0x81,0x3f,0xa6,0x94,
+/* 0x009860 */ 0xfe,0x0b,0x8c,0x38,0x5e,0xed,0x1b,0x8a,0x93,0x2b,0x85,0x70,0x6e,0xcd,0xfc,0xaf,
+/* 0x009870 */ 0xac,0xff,0x4a,0x8d,0x04,0x8d,0x03,0x8a,0x31,0x7c,0x45,0xe2,0x8f,0x71,0xf0,0x5f,
+/* 0x009880 */ 0x6e,0xff,0x0d,0x33,0x48,0x62,0x20,0x66,0x5e,0x99,0xef,0x5b,0xbf,0xda,0x52,0x54,
+/* 0x009890 */ 0xff,0x05,0xac,0x07,0x46,0x37,0x5f,0xaa,0x06,0xfd,0xb1,0xd8,0xff,0x1c,0xa9,0xa8,
+/* 0x0098a0 */ 0xfe,0xcb,0xf0,0xdf,0xf8,0xdc,0xa3,0x1e,0xfa,0xa3,0xf5,0x5f,0x0c,0xe9,0x46,0x15,
+/* 0x0098b0 */ 0x85,0x7e,0x7f,0x4f,0x51,0xfd,0x17,0x9c,0x6f,0xc8,0xf0,0xcc,0x93,0x20,0xcd,0x39,
+/* 0x0098c0 */ 0x8e,0x98,0xae,0xfe,0x2b,0x75,0x26,0xc4,0x04,0xba,0xff,0x7a,0x95,0xd0,0x7f,0xa5,
+/* 0x0098d0 */ 0x8c,0xe2,0xb7,0x5e,0x42,0xbe,0x6c,0xe0,0x8e,0x29,0x56,0x7f,0x68,0x07,0xe5,0x4c,
+/* 0x0098e0 */ 0xf0,0x4b,0x9f,0x31,0x3e,0xfa,0x2f,0x46,0xe4,0xd5,0x4c,0xbf,0x57,0x71,0x70,0xd6,
+/* 0x0098f0 */ 0xf9,0x95,0x7b,0x83,0xb9,0xc5,0xd6,0x1f,0xf2,0xf5,0x5f,0xa8,0xe9,0x22,0x7b,0x32,
+/* 0x009900 */ 0x59,0xeb,0xbf,0x5e,0x45,0xf5,0x5f,0xc7,0x85,0x45,0x7a,0xbf,0x55,0x89,0x01,0xfe,
+/* 0x009910 */ 0x51,0xfc,0xf3,0xc3,0xb5,0x25,0xf5,0x5f,0x8b,0x26,0x2c,0x47,0x0e,0x1c,0x7c,0xcd,
+/* 0x009920 */ 0x7f,0x9e,0x8b,0xea,0xbf,0x5e,0x76,0x5d,0xf1,0x79,0x36,0xf4,0xd2,0xfa,0x2f,0x08,
+/* 0x009930 */ 0xe2,0x93,0x8a,0x71,0xe5,0x6e,0xdf,0x31,0x45,0xf4,0x5f,0x44,0x33,0xd2,0xe8,0x3c,
+/* 0x009940 */ 0x45,0x57,0xbe,0x2a,0xff,0x05,0x6d,0x92,0x0c,0xf2,0x25,0xe2,0xd6,0xb9,0x38,0x82,
+/* 0x009950 */ 0xe2,0xfa,0x2f,0xb4,0xd0,0x2e,0x32,0x94,0x9f,0xe6,0xd0,0x16,0xd3,0xf5,0x3f,0x4c,
+/* 0x009960 */ 0xa8,0x18,0xbe,0x4d,0x18,0x86,0x1e,0x99,0x22,0x9f,0x53,0x54,0xff,0x75,0x02,0x25,
+/* 0x009970 */ 0x57,0x5b,0x45,0x86,0xf2,0x2c,0x43,0xff,0x15,0x2c,0xa9,0xff,0xf2,0xce,0x61,0xfd,
+/* 0x009980 */ 0x6d,0x90,0x36,0x03,0x35,0x16,0x8a,0x48,0xc5,0x74,0x76,0xc5,0xf5,0x5f,0x94,0x43,
+/* 0x009990 */ 0xa4,0xc5,0x81,0x8b,0xf7,0xd8,0x55,0x82,0x7f,0xac,0xfe,0x0b,0x35,0x6d,0x85,0xf5,
+/* 0x0099a0 */ 0x02,0xfa,0xec,0x7e,0x8c,0xe3,0x26,0x02,0xbe,0x9f,0x53,0x54,0xff,0x85,0x83,0x64,
+/* 0x0099b0 */ 0xc4,0xba,0x92,0xc9,0xe4,0xd1,0xb8,0x1f,0xff,0x55,0x5c,0xff,0x65,0x74,0xfb,0x82,
+/* 0x0099c0 */ 0xa0,0x83,0x7b,0x6b,0x9a,0xfa,0x2f,0xda,0x89,0xe0,0x8a,0x79,0xe5,0x8a,0xf4,0x82,
+/* 0x0099d0 */ 0xef,0xba,0xfb,0xea,0xbf,0x6c,0xed,0xdb,0x15,0x3b,0xf8,0xaa,0xfa,0x2f,0x87,0x59,
+/* 0x0099e0 */ 0x47,0x8f,0x03,0x91,0x39,0x83,0x22,0xf5,0x87,0xae,0x2b,0xf7,0x6a,0xad,0x97,0x90,
+/* 0x0099f0 */ 0x2f,0x7f,0x5a,0x42,0xff,0xc5,0x06,0xe3,0x2d,0xe3,0xe8,0x27,0x7e,0x63,0xf8,0xfa,
+/* 0x009a00 */ 0x2f,0x2b,0x20,0x07,0x89,0xa3,0xd2,0x51,0x29,0xa9,0x87,0xab,0xc0,0x76,0xbe,0x04,
+/* 0x009a10 */ 0xff,0xe5,0xa7,0xff,0x02,0xa0,0x61,0x1e,0x82,0x75,0x9c,0xfd,0x12,0x71,0x79,0x19,
+/* 0x009a20 */ 0xdf,0xfa,0x43,0x26,0xd0,0x2b,0xb6,0xb5,0x1a,0x57,0xd6,0x8b,0xfe,0xfc,0x97,0x55,
+/* 0x009a30 */ 0x7f,0x18,0xf5,0xc9,0x13,0x86,0x4d,0xfc,0xa5,0x57,0x0c,0xd8,0xd5,0x86,0xfe,0xf8,
+/* 0x009a40 */ 0xcb,0x2f,0x3f,0x24,0x41,0x8c,0xd0,0x5e,0x17,0x78,0xb7,0x2c,0xfc,0xe5,0xa3,0xff,
+/* 0x009a50 */ 0x62,0x79,0xab,0x77,0xd0,0x6f,0x71,0x22,0x14,0xfe,0x2b,0x91,0x91,0x86,0xb9,0xf5,
+/* 0x009a60 */ 0x5f,0x3e,0xf5,0x87,0x8e,0x60,0x94,0x4e,0x6f,0x07,0xe7,0x56,0x49,0xfd,0x17,0xb3,
+/* 0x009a70 */ 0xee,0xc2,0x79,0x04,0xfa,0x2f,0xbc,0x19,0xff,0xcd,0xbe,0xe5,0x26,0x56,0x8a,0xe0,
+/* 0x009a80 */ 0x2f,0xbb,0x2a,0xa6,0x13,0x68,0x1d,0xbc,0xe3,0x3e,0x76,0x53,0x5a,0xc6,0xe0,0x70,
+/* 0x009a90 */ 0x69,0xfd,0xd7,0x19,0x9b,0xa6,0x7c,0x8a,0x08,0xc1,0x9c,0xe5,0x55,0x25,0xea,0x0f,
+/* 0x009aa0 */ 0x99,0xa0,0x1c,0xfc,0x96,0x09,0xda,0xba,0x20,0x4e,0xf1,0x38,0xb2,0x69,0xe8,0xbf,
+/* 0x009ab0 */ 0x8c,0xfc,0xd0,0x68,0x92,0xfb,0x3f,0x99,0x75,0x9e,0x72,0xc1,0xe9,0xe9,0xbf,0x4c,
+/* 0x009ac0 */ 0x23,0x0e,0xca,0x7a,0x0c,0x94,0x15,0xa9,0x43,0x2b,0xa1,0xff,0x32,0x4c,0xbd,0xc8,
+/* 0x009ad0 */ 0xea,0xc4,0x84,0x4d,0xa4,0x4f,0x44,0x90,0xb7,0x4f,0xfd,0xf5,0x5f,0x6c,0xfe,0x4c,
+/* 0x009ae0 */ 0xd8,0x13,0xf0,0xaf,0xf3,0xe1,0xc8,0x8a,0xeb,0xbf,0x9c,0x41,0x7b,0xde,0xf7,0x96,
+/* 0x009af0 */ 0xa3,0xfe,0x50,0x60,0xf8,0xe5,0x26,0xa0,0x95,0xa7,0xb2,0xe7,0xb4,0xa6,0x91,0xc8,
+/* 0x009b00 */ 0xa4,0x38,0x00,0xd4,0x33,0xaa,0x02,0x20,0x36,0x8a,0xee,0xca,0x3f,0xfe,0xd0,0x6d,
+/* 0x009b10 */ 0xcb,0x34,0x32,0x86,0x87,0xbf,0x26,0x4c,0x4a,0xcb,0xaa,0x3f,0xbc,0x85,0xfa,0x33,
+/* 0x009b20 */ 0x2b,0x75,0x39,0x2b,0x28,0x0a,0xbe,0xa5,0xf7,0x0d,0x25,0x30,0xf2,0xd5,0x12,0x28,
+/* 0x009b30 */ 0x32,0x28,0xd4,0xad,0x2e,0x82,0xbf,0x9c,0xdf,0x75,0xf5,0xc2,0xe3,0x50,0x2d,0x3f,
+/* 0x009b40 */ 0x36,0x37,0x2b,0xf4,0xc1,0x2d,0x24,0xa7,0xcb,0x46,0x85,0x6e,0x38,0x69,0xaf,0x17,
+/* 0x009b50 */ 0xd6,0xc9,0x8e,0x9e,0x89,0x4e,0xfc,0xe5,0x5a,0xd3,0x04,0xac,0xf2,0x42,0x3d,0x38,
+/* 0x009b60 */ 0x24,0xd4,0xa1,0x7e,0xb1,0xae,0x97,0x3c,0x48,0xf8,0xef,0x19,0x91,0xd3,0x19,0xef,
+/* 0x009b70 */ 0xc3,0xc6,0xe0,0x2f,0xd7,0x5a,0xb4,0xc2,0x27,0x37,0xe9,0x51,0xb9,0xe6,0x40,0x02,
+/* 0x009b80 */ 0xdf,0x42,0x72,0xae,0x72,0x54,0x78,0x25,0x33,0x98,0x4f,0x9d,0x14,0x37,0x22,0xda,
+/* 0x009b90 */ 0x74,0x63,0xe6,0xb4,0xf0,0x97,0x40,0xf6,0xc5,0x98,0x00,0xcd,0xc2,0x56,0x11,0xb7,
+/* 0x009ba0 */ 0x79,0xe9,0x86,0xb4,0x32,0xff,0xff,0xa4,0x5d,0x7f,0x70,0x14,0x55,0x9e,0x7f,0xdd,
+/* 0x009bb0 */ 0x3d,0xc4,0xce,0xf4,0xfc,0xe8,0x4d,0xa8,0xba,0xac,0x70,0xd8,0x99,0x04,0x6a,0x60,
+/* 0x009bc0 */ 0xc3,0x10,0x12,0x36,0x40,0x88,0x93,0x26,0xe4,0xdc,0x2c,0xa6,0x0e,0x76,0x6f,0xeb,
+/* 0x009bd0 */ 0xca,0x3f,0xb6,0xac,0xa8,0xd4,0x15,0x77,0x85,0x16,0xde,0x5d,0x6d,0xe1,0x2d,0xa7,
+/* 0x009be0 */ 0x2f,0x93,0xa8,0x81,0xb0,0xeb,0x04,0xa8,0x53,0x4f,0x3d,0x47,0x36,0x65,0x01,0x47,
+/* 0x009bf0 */ 0x79,0x03,0x08,0x84,0x1f,0x8b,0x2d,0x06,0x37,0x28,0x3f,0xb2,0xe0,0x5e,0x21,0x52,
+/* 0x009c00 */ 0x32,0x68,0xd0,0xa0,0x51,0xe3,0x56,0x74,0x83,0x06,0xbc,0xf7,0x7d,0xaf,0xbb,0xa7,
+/* 0x009c10 */ 0x7b,0xba,0x7b,0x66,0xac,0xfb,0xef,0x5b,0xef,0xbd,0x99,0x4c,0xde,0xeb,0xd7,0xef,
+/* 0x009c20 */ 0xfb,0x79,0x9f,0xef,0xf7,0xf3,0x0d,0x4d,0xb8,0x70,0x9a,0xee,0xf8,0x0b,0x64,0x18,
+/* 0x009c30 */ 0xbb,0x4e,0x73,0x9f,0x42,0xd2,0x50,0x9f,0xa0,0xc0,0xf3,0xc3,0x87,0xe8,0x0b,0xb6,
+/* 0x009c40 */ 0xa2,0x61,0x38,0x78,0xcc,0x25,0xb0,0xcd,0xc4,0x5f,0xb6,0xf8,0xc3,0x88,0x26,0x1e,
+/* 0x009c50 */ 0xe1,0xa7,0xf0,0x51,0x65,0x81,0x16,0xfc,0x4d,0xd5,0x1a,0x98,0xba,0xe1,0x9e,0x34,
+/* 0x009c60 */ 0x7f,0x4b,0x39,0xaa,0x36,0x6a,0xe2,0x00,0x0d,0xdd,0x6c,0x74,0xc7,0x5f,0xeb,0x02,
+/* 0x009c70 */ 0xb6,0xfc,0xe5,0xd2,0x45,0xfc,0x59,0xb8,0xd4,0xd5,0x4a,0x45,0xc6,0x76,0xa1,0x0a,
+/* 0x009c80 */ 0xd2,0xa5,0xa4,0xd1,0x9c,0x11,0x9a,0xe9,0xbf,0x3f,0xa7,0xb8,0xb6,0x81,0xbf,0x96,
+/* 0x009c90 */ 0x5b,0xf0,0xd7,0x6b,0x20,0xbb,0xf1,0x08,0xf8,0xfc,0xda,0x83,0x93,0xa5,0xf7,0xf0,
+/* 0x009ca0 */ 0xbf,0x42,0x4f,0xe2,0x1a,0xc5,0x4f,0x80,0x98,0x7a,0x00,0x4b,0x86,0x40,0xc4,0xdc,
+/* 0x009cb0 */ 0x82,0xf8,0x0b,0x54,0x5f,0x82,0x60,0x7c,0x89,0x36,0x66,0x82,0x32,0x2f,0xa2,0x0b,
+/* 0x009cc0 */ 0x72,0x93,0x1c,0x83,0xbf,0xfe,0x25,0x6a,0xd0,0xe6,0xd7,0x09,0x54,0x88,0x63,0xb4,
+/* 0x009cd0 */ 0x28,0xfd,0x0d,0xa6,0x36,0x4f,0xce,0x41,0x15,0x16,0x85,0x6f,0xc6,0x7f,0x3d,0x6e,
+/* 0x009ce0 */ 0xdc,0x74,0xb1,0x65,0xa2,0x65,0xbf,0x9c,0xfa,0x87,0xd6,0x2b,0x2f,0x28,0xfb,0x35,
+/* 0x009cf0 */ 0x20,0xbc,0x72,0xe2,0x3d,0x06,0xbb,0xe8,0xab,0x00,0x85,0x81,0x11,0x3b,0x83,0xfc,
+/* 0x009d00 */ 0xaf,0x07,0xd2,0x02,0x48,0x6b,0x52,0xfd,0xc3,0xbc,0xf8,0xeb,0x35,0xf4,0x92,0xd6,
+/* 0x009d10 */ 0x65,0xd6,0x56,0xce,0x80,0xca,0x13,0x0b,0xae,0xb8,0x89,0xfe,0x54,0x52,0xa5,0x05,
+/* 0x009d20 */ 0x2d,0x61,0x87,0x2e,0xf9,0x5f,0x9a,0x65,0x9e,0x67,0x03,0xcf,0xf8,0x5b,0xfc,0x24,
+/* 0x009d30 */ 0xfe,0xc7,0x8c,0xb4,0x76,0xde,0xed,0x64,0x32,0x67,0x2b,0xb4,0xab,0xab,0x67,0xee,
+/* 0x009d40 */ 0xb8,0x68,0x04,0x7c,0x8a,0x05,0xf1,0x17,0x4b,0x83,0x0d,0x74,0x71,0x0f,0x69,0x77,
+/* 0x009d50 */ 0x2f,0x49,0x84,0x60,0xdd,0x87,0x29,0x01,0xba,0xed,0xa7,0xca,0xf9,0xd2,0xa5,0xc8,
+/* 0x009d60 */ 0xf2,0xaa,0xcc,0x8b,0xbf,0x1a,0xc0,0xd8,0x29,0xbe,0xa5,0x34,0xe2,0xf0,0x27,0xc2,
+/* 0x009d70 */ 0x12,0x82,0xbf,0x9a,0x7b,0x68,0xd7,0x59,0x6d,0x69,0xb2,0x7d,0xac,0xca,0x0c,0x3b,
+/* 0x009d80 */ 0x2c,0x4e,0x7f,0x63,0x14,0xc5,0x65,0xea,0xe0,0x5d,0x24,0xfb,0x02,0xae,0xd3,0x91,
+/* 0x009d90 */ 0x93,0x11,0xcb,0x8b,0xbf,0x1e,0x55,0x9f,0x32,0xd0,0x56,0xa0,0xef,0x36,0x20,0xc2,
+/* 0x009da0 */ 0x9a,0xc0,0xe1,0xbc,0x86,0x5e,0xc7,0x75,0x1d,0x31,0x96,0xb2,0xc4,0x74,0x06,0xe4,
+/* 0x009db0 */ 0x42,0xf8,0xeb,0x99,0xb2,0x8f,0xd1,0xe1,0xe1,0xd8,0xfa,0x36,0xf8,0x66,0x48,0xdb,
+/* 0x009dc0 */ 0x09,0xd2,0xbc,0x2d,0xb5,0x61,0xad,0xf8,0x4c,0xd9,0xf7,0xc0,0x5f,0x5b,0xf9,0x91,
+/* 0x009dd0 */ 0x0e,0x62,0xfc,0x62,0x5e,0x3a,0x32,0x98,0x55,0xbd,0xdb,0xb5,0x3a,0x32,0xe4,0xaa,
+/* 0x009de0 */ 0xa3,0x98,0xc5,0x5f,0x39,0xf1,0x87,0xb5,0xfc,0x60,0xff,0x5e,0x5c,0xb3,0xd2,0x2f,
+/* 0x009df0 */ 0x97,0x74,0xef,0xe8,0xd3,0x85,0x10,0x53,0x2f,0x45,0xe7,0xa8,0x6d,0x15,0x7c,0x6b,
+/* 0x009e00 */ 0xca,0x5a,0xb2,0xca,0x1e,0x7f,0x98,0xb6,0x4c,0x5d,0x8c,0x86,0x77,0xe2,0x01,0x14,
+/* 0x009e10 */ 0x17,0x43,0x04,0x8c,0xe0,0x8b,0x88,0xf2,0x17,0xa3,0x78,0x54,0xa9,0xa3,0x5c,0xa4,
+/* 0x009e20 */ 0x83,0x67,0xcc,0xe2,0x2f,0x6c,0x75,0xd1,0x97,0x87,0xcf,0x77,0x81,0xda,0xe1,0xa3,
+/* 0x009e30 */ 0x2b,0x83,0xe7,0xbb,0x26,0x52,0xd7,0x51,0xf3,0x5b,0xd0,0x95,0xba,0x82,0x9a,0x57,
+/* 0x009e40 */ 0xae,0x22,0x2d,0x94,0x4f,0x09,0x5b,0x24,0x28,0x4d,0xfc,0x75,0xcd,0xce,0xe6,0x84,
+/* 0x009e50 */ 0x56,0x0b,0xfd,0xe8,0x75,0xd4,0x0c,0x3a,0x1e,0xf0,0x27,0x9a,0x5b,0xc9,0x7a,0x7d,
+/* 0x009e60 */ 0x85,0x6e,0xfa,0xeb,0x69,0x45,0xb0,0x8a,0x4d,0x46,0x41,0x31,0x27,0xfe,0xea,0xa1,
+/* 0x009e70 */ 0x48,0x8a,0x3c,0x2d,0x03,0xa8,0x11,0x05,0x13,0x09,0x45,0xbc,0x0c,0xd9,0x5e,0x89,
+/* 0x009e80 */ 0xc4,0xd5,0x14,0xc0,0x2e,0x3f,0xe6,0xaf,0x92,0xff,0x74,0x9e,0x48,0x81,0xd8,0x4e,
+/* 0x009e90 */ 0x03,0x7f,0x4d,0xe6,0xe0,0xaf,0x93,0xb8,0x2f,0x3b,0xcf,0x31,0x60,0xa5,0x5f,0x40,
+/* 0x009ea0 */ 0x8f,0xa3,0x9a,0xbb,0x24,0x59,0x19,0x24,0x4b,0x50,0xbd,0xba,0x82,0x00,0x31,0x4c,
+/* 0x009eb0 */ 0x8c,0x16,0x49,0x8e,0x9c,0x44,0x7d,0xde,0xf8,0x6b,0x53,0x56,0x6e,0x85,0x72,0x5b,
+/* 0x009ec0 */ 0x8b,0xd0,0x0b,0x3e,0x56,0xff,0x2b,0xb5,0x0b,0xe9,0x25,0xe1,0x96,0xca,0xb1,0x16,
+/* 0x009ed0 */ 0xe9,0x55,0x7e,0x44,0xb5,0x69,0x6c,0xda,0xf1,0x97,0x7d,0x7e,0x80,0x87,0x3d,0x85,
+/* 0x009ee0 */ 0x66,0xa9,0x86,0xb0,0xe7,0x7a,0x0a,0xa0,0x1e,0xc1,0x0d,0xad,0xe1,0x67,0xf9,0x9c,
+/* 0x009ef0 */ 0xc1,0x56,0xfc,0xd5,0x6d,0xb4,0xf4,0x53,0xe2,0x32,0x44,0x3e,0x2e,0xde,0xf0,0x65,
+/* 0x009f00 */ 0x89,0x30,0x5a,0x41,0x3b,0x7a,0x03,0x37,0xb2,0x59,0x35,0x81,0x98,0x6e,0xbc,0xed,
+/* 0x009f10 */ 0x8d,0xbf,0x10,0x1e,0x82,0xb0,0xc3,0x1e,0x01,0x66,0xb5,0xa9,0x4c,0x2f,0x2d,0xb7,
+/* 0x009f20 */ 0xaf,0x22,0x88,0xb3,0xb2,0xf3,0x05,0xf1,0x57,0xa8,0x3f,0x11,0xe5,0x37,0xf7,0x54,
+/* 0x009f30 */ 0xa5,0xa4,0x0c,0x15,0x39,0x5c,0x90,0x16,0x53,0xc2,0x11,0x74,0x50,0xa9,0x4a,0x8a,
+/* 0x009f40 */ 0x19,0x5a,0x11,0xac,0x18,0xfc,0x45,0x8e,0xb6,0x57,0x79,0xe4,0xc3,0xa9,0xe8,0xa8,
+/* 0x009f50 */ 0xe1,0x75,0xff,0x2b,0x31,0xde,0x54,0xf7,0x73,0xd5,0xc3,0xa5,0xb5,0x2d,0x01,0x39,
+/* 0x009f60 */ 0x37,0x39,0x22,0x8b,0xbf,0x54,0x9b,0xab,0xef,0x1f,0xe7,0x03,0xe8,0x7f,0xf0,0xdc,
+/* 0x009f70 */ 0x13,0x52,0x87,0x1e,0xfc,0x56,0xba,0x9e,0xdf,0x4e,0x3e,0x35,0xbb,0x43,0xdc,0x80,
+/* 0x009f80 */ 0x66,0x8a,0xde,0xf8,0x0b,0x1f,0xca,0x81,0x54,0xb3,0xd0,0x1f,0x3a,0xe7,0x66,0xee,
+/* 0x009f90 */ 0x80,0x96,0x8f,0xf1,0x9d,0x1d,0xac,0x2b,0xb1,0xb8,0x23,0x38,0xc9,0x59,0x8a,0x85,
+/* 0x009fa0 */ 0xe5,0xea,0x6f,0x1c,0xcb,0x71,0x2f,0x53,0xc2,0x58,0xa0,0x02,0x5e,0xb0,0x98,0xea,
+/* 0x009fb0 */ 0xf2,0x35,0x41,0x30,0x55,0x3f,0xe9,0xfa,0x11,0x59,0x9d,0x15,0x63,0xe2,0xb7,0x5c,
+/* 0x009fc0 */ 0x91,0xf8,0xeb,0x30,0x44,0x43,0x25,0x9b,0x53,0x01,0x56,0x6d,0xb9,0x59,0x21,0xc6,
+/* 0x009fd0 */ 0xd7,0xa4,0xab,0x9e,0x78,0x8c,0xe5,0x71,0x74,0x6e,0x3b,0xcb,0xff,0x2a,0x88,0xbf,
+/* 0x009fe0 */ 0x36,0xb4,0x9c,0xd7,0x0e,0x69,0x4b,0x3b,0xc5,0x0e,0x8a,0xbf,0xe6,0xab,0xc1,0x87,
+/* 0x009ff0 */ 0xf9,0x3f,0xc9,0x87,0xd4,0xc5,0x6a,0xf0,0x4b,0x7e,0xa6,0xfa,0x17,0xf9,0xfb,0xe1,
+/* 0x00a000 */ 0x2f,0xd5,0xcf,0xd2,0xeb,0xe6,0x97,0xe9,0xa7,0x5e,0xa5,0x2a,0xae,0x4f,0x90,0x93,
+/* 0x00a010 */ 0x91,0x2b,0x1e,0x7f,0x89,0xfb,0xb9,0x28,0x94,0x2b,0x3d,0x03,0x7e,0x66,0x07,0x71,
+/* 0x00a020 */ 0xe3,0x07,0x7d,0xfb,0x3b,0xaa,0x37,0x96,0xce,0xe2,0x43,0xde,0xf8,0xeb,0x98,0xbb,
+/* 0x00a030 */ 0x3f,0xaf,0xc6,0xb6,0x0b,0x37,0xf9,0x5e,0xd8,0x5f,0x10,0x1f,0xfe,0x2d,0xaa,0xcb,
+/* 0x00a040 */ 0x6c,0x19,0x90,0x6a,0x94,0xe7,0x8a,0xe5,0xbf,0xfa,0x05,0xb2,0x28,0x38,0xae,0x4e,
+/* 0x00a050 */ 0xdb,0x6e,0xc4,0x35,0xa5,0xab,0xae,0xa1,0x6f,0xd5,0xf8,0x6a,0x6b,0x3a,0x52,0x41,
+/* 0x00a060 */ 0xfc,0x15,0x9a,0x5c,0x31,0x2e,0xb3,0xeb,0xfd,0xae,0x31,0x05,0xaa,0xe4,0x84,0x01,
+/* 0x00a070 */ 0x88,0xbd,0x91,0x58,0xac,0xb5,0x67,0x88,0xdb,0xe3,0xc1,0x7f,0x39,0xf0,0xd7,0x8c,
+/* 0x00a080 */ 0x3d,0x04,0x45,0x1e,0x55,0x63,0x29,0xe9,0x3f,0xa1,0x85,0x5b,0xb0,0x86,0x74,0x7d,
+/* 0x00a090 */ 0x88,0x36,0xe3,0xe8,0x06,0x7f,0xb7,0x4b,0x22,0x8f,0x17,0xfe,0xda,0xbc,0x37,0xf1,
+/* 0x00a0a0 */ 0x05,0x1a,0x88,0x40,0xf9,0x30,0xd6,0x82,0x49,0xd7,0x47,0xbe,0x5e,0xf9,0xe5,0x4c,
+/* 0x00a0b0 */ 0x8f,0x5b,0x42,0x90,0x15,0x7f,0x71,0xd6,0x25,0x40,0xfc,0x69,0xbc,0x3f,0x0a,0xd1,
+/* 0x00a0c0 */ 0x8d,0x3c,0xcb,0x6a,0xa1,0xeb,0xd5,0x85,0x76,0xab,0x34,0x10,0xb1,0x8b,0x79,0x20,
+/* 0x00a0d0 */ 0x85,0xf0,0xd7,0x3b,0x21,0x4a,0x26,0x2a,0xf1,0x56,0xe2,0x4b,0x80,0xab,0xd6,0x84,
+/* 0x00a0e0 */ 0xa9,0xf7,0x7e,0x8a,0x6f,0x20,0x6e,0x46,0xf9,0x18,0xef,0xd0,0x73,0xf0,0xc2,0x5f,
+/* 0x00a0f0 */ 0x19,0x61,0x5c,0x9d,0x62,0x45,0x96,0x6d,0x5d,0x2f,0xa2,0x90,0xde,0xe2,0xae,0x7f,
+/* 0x00a100 */ 0x78,0xdc,0xba,0xbf,0x96,0xb9,0x5d,0x62,0x8c,0xeb,0x8c,0x18,0x31,0x9c,0x42,0x37,
+/* 0x00a110 */ 0x66,0xfe,0x17,0x20,0xa9,0xb8,0x93,0xdb,0xba,0xfa,0xb6,0xce,0x7f,0x65,0xcc,0x59,
+/* 0x00a120 */ 0x0d,0xbb,0x49,0x61,0xe4,0xaf,0xff,0xe5,0x65,0x38,0x41,0xb1,0x2d,0xff,0x6b,0x9e,
+/* 0x00a130 */ 0x3b,0xa6,0x76,0x22,0x71,0xc7,0xef,0x69,0xd1,0xe3,0x0f,0x39,0xca,0x7f,0x99,0xda,
+/* 0x00a140 */ 0x86,0x8d,0x6e,0xa0,0x78,0x3c,0x7b,0x9b,0xe1,0xc4,0x3b,0x57,0x0d,0xfc,0x95,0x47,
+/* 0x00a150 */ 0x73,0xc6,0xcc,0x30,0xd2,0x8d,0x5a,0x17,0xe1,0x94,0x82,0xfc,0x97,0xd5,0xa8,0x31,
+/* 0x00a160 */ 0x1e,0x9b,0x3c,0xf8,0x2b,0x8f,0x76,0x8d,0x6e,0x7c,0xc5,0x2f,0x50,0x7b,0x57,0x2f,
+/* 0x00a170 */ 0x00,0x63,0xbe,0x4a,0xeb,0x2f,0x1f,0xe0,0x3f,0x33,0x8c,0xaf,0x5d,0xf8,0xaf,0x6d,
+/* 0x00a180 */ 0xde,0xcb,0xd4,0xe5,0xb5,0x5e,0xf9,0xeb,0x7f,0xd9,0x8c,0xf5,0xfc,0x2c,0x45,0x57,
+/* 0x00a190 */ 0xdb,0x70,0x0e,0x1e,0xf3,0x39,0xf1,0x97,0x87,0xb1,0x90,0x4c,0xcb,0x1b,0xac,0xc5,
+/* 0x00a1a0 */ 0x39,0xd8,0x33,0xff,0xcb,0x69,0xfc,0xd9,0xa0,0x9e,0xc7,0x5d,0xd6,0x4b,0x7f,0x7e,
+/* 0x00a1b0 */ 0xa2,0xbe,0x82,0xeb,0x65,0xf2,0x95,0x01,0x30,0x72,0x03,0x8f,0xf3,0xd6,0xff,0x3a,
+/* 0x00a1c0 */ 0xc4,0x51,0x6e,0x4b,0x6f,0x31,0xa2,0x2c,0xc4,0xdc,0xb3,0x89,0xc6,0x1f,0x56,0xeb,
+/* 0x00a1d0 */ 0xe7,0xd7,0x7f,0x39,0xa0,0x6b,0x8e,0xe1,0x37,0x8c,0x52,0x8b,0x34,0x87,0x5b,0xfd,
+/* 0x00a1e0 */ 0xaf,0xfa,0x22,0xf7,0xe9,0x5c,0xb7,0x2e,0x5b,0xfe,0x57,0xa3,0x3b,0xb7,0xc5,0x8c,
+/* 0x00a1f0 */ 0x90,0x61,0x04,0x2d,0x31,0x8a,0xc6,0x98,0xf2,0x02,0xf9,0x5f,0x6e,0x46,0xa8,0x78,
+/* 0x00a200 */ 0xfc,0xe5,0x61,0x50,0x21,0x44,0x00,0x62,0xd5,0x34,0x34,0xd1,0x6a,0x94,0xe5,0xe7,
+/* 0x00a210 */ 0xbf,0x6c,0x86,0xbf,0x9a,0xdf,0x84,0xf6,0xad,0x16,0x99,0xb1,0x43,0x8d,0x26,0x25,
+/* 0x00a220 */ 0xc3,0xf0,0x2b,0xf9,0xf9,0x2f,0xab,0xc1,0xaa,0x4c,0xce,0x69,0x89,0x32,0x43,0x51,
+/* 0x00a230 */ 0x69,0x24,0xa1,0x6e,0xdc,0x65,0xe6,0x7f,0x79,0x73,0x2e,0x66,0x46,0x58,0xab,0xda,
+/* 0x00a240 */ 0x29,0x2b,0xed,0x22,0x14,0x02,0xeb,0x04,0x69,0x44,0xdd,0xf8,0x1b,0x62,0xb4,0xe4,
+/* 0x00a250 */ 0xe7,0xbf,0x8c,0x42,0x60,0x2c,0x23,0xac,0x12,0x0d,0xa9,0xd5,0x15,0x01,0x66,0xd4,
+/* 0x00a260 */ 0xc9,0x81,0x6e,0xe1,0x3e,0xc3,0x78,0xc8,0xcc,0xff,0x2a,0x38,0xcf,0x5b,0x85,0x7e,
+/* 0x00a270 */ 0x7c,0x43,0x89,0xb7,0x43,0x6a,0x18,0x66,0xa9,0x61,0x59,0xe3,0x60,0xde,0xfa,0x5f,
+/* 0x00a280 */ 0x36,0xe3,0x39,0xa8,0x17,0x80,0xe2,0x1b,0x18,0xe3,0x23,0xb3,0x2e,0x95,0x76,0xf5,
+/* 0x00a290 */ 0x15,0xa8,0xff,0x65,0xcf,0x08,0xf3,0x2b,0xa9,0x01,0x25,0x46,0xf1,0x17,0xc4,0x1f,
+/* 0x00a2a0 */ 0xfa,0xa5,0x04,0x84,0x26,0x8a,0x31,0x5e,0xd2,0xcc,0xfc,0x2f,0x94,0x33,0xab,0x77,
+/* 0x00a2b0 */ 0xcb,0x2d,0xb9,0x2d,0x3f,0x6b,0x99,0x8e,0x0f,0x44,0xe7,0xb7,0x4a,0xab,0xf9,0x77,
+/* 0x00a2c0 */ 0xf0,0x01,0x34,0xbf,0x4d,0xfa,0x79,0x82,0x18,0xca,0x7c,0x95,0xb4,0x9c,0x2f,0xc4,
+/* 0x00a2d0 */ 0x7f,0xe9,0xf1,0x87,0xd4,0x58,0x84,0x7e,0x8f,0x16,0xa8,0xd2,0x30,0x2d,0xbb,0x6c,
+/* 0x00a2e0 */ 0x37,0xf4,0xfc,0xaf,0x1d,0x76,0xfe,0x2b,0xe6,0xf5,0x3c,0xe7,0xc9,0xff,0x62,0x78,
+/* 0x00a2f0 */ 0xc7,0xce,0x7f,0x3d,0xea,0x36,0x58,0xce,0xb7,0x65,0x0a,0xd4,0xff,0x32,0x0c,0x9e,
+/* 0x00a300 */ 0x1a,0xe6,0x33,0xe6,0x7c,0xd8,0x1c,0xfa,0xf3,0xee,0xfc,0x17,0x0f,0x46,0x8b,0x3e,
+/* 0x00a310 */ 0x66,0xa7,0x8b,0x10,0xa2,0x59,0xff,0x2b,0x0f,0x47,0x9f,0xcb,0xe3,0x2f,0xb1,0x13,
+/* 0x00a320 */ 0xfa,0x51,0x0b,0xfe,0xba,0x8a,0xbc,0x62,0x0f,0xb2,0x46,0x07,0x2f,0xa3,0x83,0x60,
+/* 0x00a330 */ 0x44,0x13,0xf7,0x80,0x81,0x49,0xcb,0x45,0xdd,0x28,0xd3,0xef,0x0f,0x53,0x3d,0xf7,
+/* 0x00a340 */ 0x7a,0x6b,0x1b,0x82,0x31,0x1f,0x9c,0x2e,0x3a,0x26,0x15,0x06,0xc1,0xf6,0xbf,0x24,
+/* 0x00a350 */ 0xec,0x63,0x8c,0xfa,0x5f,0xee,0xfa,0x87,0x36,0x62,0x25,0x45,0x66,0xd5,0x33,0xae,
+/* 0x00a360 */ 0x20,0x8b,0xbf,0x54,0x2f,0x6e,0xeb,0x01,0xb3,0x05,0x7c,0xc8,0xc5,0x40,0x84,0x79,
+/* 0x00a370 */ 0xfa,0x87,0xbb,0xb9,0xe7,0xad,0xb2,0x87,0xe6,0xb4,0x2c,0xd5,0x4c,0xb5,0xc3,0x50,
+/* 0x00a380 */ 0x86,0xce,0xcf,0x9d,0x1a,0xd9,0x4d,0x15,0xb9,0xf3,0x63,0xe0,0x2f,0x5e,0x7e,0xde,
+/* 0x00a390 */ 0x01,0x5d,0x9d,0x06,0xfd,0x5b,0x58,0x62,0x42,0x88,0xb3,0xed,0xf8,0xcb,0xc8,0xff,
+/* 0x00a3a0 */ 0xb2,0x85,0x6d,0xc4,0x6c,0x6b,0xca,0xf8,0x14,0x7f,0x8a,0x47,0xd3,0xa0,0xac,0x30,
+/* 0x00a3b0 */ 0x71,0xf5,0x1d,0x0f,0x5b,0x44,0xaf,0xff,0xb5,0xfb,0x07,0xa6,0xef,0x67,0x73,0x14,
+/* 0x00a3c0 */ 0xad,0x6c,0x57,0x92,0xdf,0xc3,0xb6,0x5e,0x5a,0xaa,0x46,0x8f,0xe4,0xec,0x0b,0x03,
+/* 0x00a3d0 */ 0x7f,0x71,0x7b,0xec,0x51,0x4c,0x96,0xef,0xf9,0x17,0xdd,0xd0,0x77,0x81,0x4a,0x17,
+/* 0x00a3e0 */ 0x2e,0x67,0x5f,0xac,0x30,0xf4,0xe7,0x65,0x8b,0xdf,0x72,0x05,0x2d,0xd6,0x82,0x4e,
+/* 0x00a3f0 */ 0xbf,0xe5,0x8f,0x42,0x13,0xba,0x29,0x2f,0xf6,0x05,0xd6,0x0b,0x8b,0xd4,0x33,0x72,
+/* 0x00a400 */ 0x7d,0x6b,0xe0,0x8f,0x59,0x03,0x99,0xf8,0x6b,0xfa,0xd1,0x6c,0xb4,0x61,0x84,0xd1,
+/* 0x00a410 */ 0x5e,0x76,0xff,0x50,0x6b,0x49,0xa3,0x63,0xe8,0x47,0xc8,0x9f,0xe1,0x6b,0xd1,0x16,
+/* 0x00a420 */ 0x54,0x85,0x44,0xcd,0x34,0x22,0x0a,0x72,0xc3,0x5f,0x73,0x0c,0xd9,0x0d,0xda,0xa2,
+/* 0x00a430 */ 0x87,0xa8,0x25,0x89,0xfb,0x0d,0x11,0x1d,0x7e,0xc8,0x73,0xd9,0x85,0xe6,0xc0,0x8d,
+/* 0x00a440 */ 0xe2,0x1a,0xb4,0x8b,0xa5,0x48,0x2b,0x6c,0x7f,0xf9,0xad,0xfc,0x17,0xfd,0x3d,0x8e,
+/* 0x00a450 */ 0x7d,0x5a,0x4a,0xa0,0x33,0x4a,0xa3,0x94,0x4a,0x31,0x34,0x46,0xfd,0x88,0x18,0x2a,
+/* 0x00a460 */ 0x9f,0x42,0x29,0x30,0x04,0xb6,0xdf,0x21,0x1f,0x0d,0xae,0x1a,0xee,0x60,0x6c,0x57,
+/* 0x00a470 */ 0x03,0x84,0xb1,0xe5,0x4e,0x38,0xe4,0xef,0xdc,0x40,0x75,0x28,0x04,0x2f,0xc6,0xeb,
+/* 0x00a480 */ 0xa8,0x01,0x8e,0x75,0x50,0xd3,0x82,0xf3,0x9d,0x23,0x4f,0x20,0x7b,0xaf,0x9a,0xac,
+/* 0x00a490 */ 0x22,0xbd,0x7b,0x77,0xf3,0x0f,0x35,0x01,0xaa,0x2d,0x2f,0x43,0x56,0x23,0x8d,0x2e,
+/* 0x00a4a0 */ 0x33,0x8c,0x76,0xdd,0x9e,0xff,0x65,0x4d,0xab,0xbc,0x85,0x4e,0xe2,0x87,0x7d,0x2c,
+/* 0x00a4b0 */ 0x4c,0x94,0xe1,0xaf,0x26,0x3c,0x81,0xf6,0x5e,0x25,0xfb,0xab,0x09,0x0f,0xca,0xf5,
+/* 0x00a4c0 */ 0x27,0x02,0x93,0xcb,0x93,0x46,0xc6,0xa5,0x67,0xfc,0x61,0x1d,0x81,0x5d,0x9b,0x71,
+/* 0x00a4d0 */ 0x44,0x6c,0x1b,0x88,0x7c,0x2e,0xd2,0x96,0xf1,0xc8,0x31,0xf5,0x70,0x67,0x24,0x23,
+/* 0x00a4e0 */ 0xed,0xdb,0x7a,0x67,0x5b,0x4f,0x75,0xd5,0xb0,0x38,0xc0,0x8f,0x28,0xbd,0x76,0xfe,
+/* 0x00a4f0 */ 0x0b,0x39,0xf1,0xd7,0x18,0xea,0xe1,0x10,0x0d,0xc7,0x85,0xea,0xbd,0xda,0x8c,0xbd,
+/* 0x00a500 */ 0xc4,0x8d,0x4f,0x63,0xb2,0x53,0x94,0x96,0x00,0x55,0x78,0x80,0x08,0xb7,0xce,0xae,
+/* 0x00a510 */ 0x5c,0xfc,0x95,0xab,0x69,0xd9,0x32,0x86,0x9e,0xeb,0x54,0x14,0x78,0x90,0x38,0x26,
+/* 0x00a520 */ 0xc0,0x52,0xb2,0x07,0x1d,0x4e,0x00,0x46,0x3b,0x51,0x03,0x3f,0x55,0xbb,0x3d,0xcd,
+/* 0x00a530 */ 0xbf,0x69,0x00,0xf0,0x71,0x2b,0xfe,0xca,0x79,0x7d,0x89,0x6f,0xe1,0xc8,0x3f,0x43,
+/* 0x00a540 */ 0x58,0xaf,0xcf,0xc0,0x3b,0xe2,0x37,0x98,0x40,0xb3,0x03,0x64,0xe1,0x46,0x71,0x9d,
+/* 0x00a550 */ 0xf6,0xb7,0xe9,0x15,0xbb,0x0d,0xd6,0x2c,0x2f,0xff,0xf5,0x19,0x7a,0x4d,0x5d,0x05,
+/* 0x00a560 */ 0xf0,0x8d,0xb5,0xac,0x98,0x42,0xb7,0xf8,0xc5,0x27,0xc2,0x93,0xe5,0x53,0xfc,0x57,
+/* 0x00a570 */ 0x4c,0xb2,0x66,0xd2,0xc8,0xe0,0xcb,0x83,0xbf,0x00,0x64,0x35,0x76,0x9e,0x06,0x62,
+/* 0x00a580 */ 0x0e,0xfe,0x68,0x10,0x5a,0x86,0xc8,0xa3,0x55,0x03,0xf7,0x24,0xd7,0xd1,0x92,0x0c,
+/* 0x00a590 */ 0x19,0x33,0x22,0xe6,0xd1,0x3f,0x34,0xf5,0x49,0x06,0x50,0x04,0x51,0xfd,0x0d,0xe0,
+/* 0x00a5a0 */ 0x2b,0xa5,0x09,0x61,0x23,0x79,0x8c,0xeb,0x20,0x62,0x73,0x0a,0x6d,0x42,0x55,0xef,
+/* 0x00a5b0 */ 0xa0,0x74,0xd9,0x48,0x01,0xfd,0x43,0x48,0x87,0xac,0x41,0x47,0x94,0x28,0x12,0x21,
+/* 0x00a5c0 */ 0x53,0x72,0x1b,0x26,0x5d,0xe9,0x44,0xbb,0x0f,0xb7,0xf9,0x32,0x74,0x0b,0x93,0xcd,
+/* 0x00a5d0 */ 0x40,0xd6,0xab,0x4c,0x33,0xbc,0xf7,0x3c,0xf1,0x87,0xb3,0xd0,0xef,0x71,0x15,0x86,
+/* 0x00a5e0 */ 0x22,0xcb,0xfc,0xd3,0x3d,0xb4,0xe5,0x5e,0xf5,0x37,0xfd,0x95,0x1f,0xb4,0x6d,0xe0,
+/* 0x00a5f0 */ 0xaf,0xa0,0x2d,0xb8,0x12,0x24,0xd3,0xbf,0xf6,0x3d,0x5d,0x28,0xfe,0x70,0x05,0xb4,
+/* 0x00a600 */ 0x44,0x4f,0x06,0xe0,0xf7,0x5c,0xe0,0x9b,0x06,0x49,0xd7,0x3a,0x74,0x82,0x5b,0x34,
+/* 0x00a610 */ 0x58,0x53,0xfb,0xc0,0x69,0xf4,0xa1,0xb2,0x64,0x28,0x54,0x2b,0x0c,0x15,0x8e,0x3f,
+/* 0x00a620 */ 0xac,0x1a,0x53,0x27,0xe1,0x12,0xa3,0x96,0x9b,0x52,0x68,0x76,0x5e,0x2d,0x2c,0x81,
+/* 0x00a630 */ 0x72,0x07,0x48,0x6a,0x5c,0x26,0xc7,0xd6,0x9d,0xf0,0xf2,0x9c,0x42,0x5f,0xd8,0xf3,
+/* 0x00a640 */ 0xbf,0x5c,0xf1,0xd7,0x0d,0xae,0x71,0x79,0xd8,0x0c,0x13,0x3d,0x08,0x7c,0x37,0xa3,
+/* 0x00a650 */ 0xc6,0xc8,0xd4,0xe1,0xba,0x77,0x02,0x03,0xba,0x50,0x52,0x16,0x7f,0xa9,0xf2,0xf3,
+/* 0x00a660 */ 0xd3,0x6c,0x61,0x87,0xd4,0xf8,0x48,0x87,0x5d,0xd8,0x0c,0xe4,0x38,0x87,0xa0,0xbe,
+/* 0x00a670 */ 0x27,0x0d,0x44,0xac,0x1a,0x14,0xc7,0xfd,0x15,0xbc,0xbd,0xfe,0x97,0x2d,0xff,0xcb,
+/* 0x00a680 */ 0x00,0x62,0xbe,0x57,0xbb,0x1f,0xcc,0xbc,0xbd,0x41,0x7d,0xbf,0x8f,0x76,0xfd,0x9a,
+/* 0x00a690 */ 0x3f,0x8b,0x9e,0xc2,0x95,0x57,0x67,0x6c,0x04,0x9c,0xbb,0xb9,0x72,0x54,0x9a,0x04,
+/* 0x00a6a0 */ 0x09,0x14,0x07,0xfe,0xb2,0xed,0x53,0x48,0x8e,0xe0,0x7e,0xa7,0xad,0xa3,0xe9,0xb4,
+/* 0x00a6b0 */ 0x9c,0x9e,0xc8,0x3c,0x26,0x76,0x9d,0x55,0xa0,0xab,0x1d,0xe9,0xa5,0x12,0x63,0xb2,
+/* 0x00a6c0 */ 0xbd,0xfe,0x97,0x4b,0xfc,0x21,0x39,0xe3,0x6e,0xe1,0xe6,0xa4,0xbd,0xe5,0x6c,0x6a,
+/* 0x00a6d0 */ 0x07,0x54,0x64,0x8e,0xa2,0x5b,0xda,0x3e,0xbc,0x20,0x25,0x34,0x6a,0x6f,0x15,0xc3,
+/* 0x00a6e0 */ 0x7f,0xdd,0x43,0x69,0xaf,0x6c,0x4b,0xc9,0x28,0x6a,0xd0,0x85,0xe8,0xc5,0x38,0x9a,
+/* 0x00a6f0 */ 0x56,0x24,0xfe,0x62,0xdc,0xd6,0xb3,0x86,0x9b,0xfa,0x2c,0x45,0x5b,0x00,0x10,0x3e,
+/* 0x00a700 */ 0x3c,0x49,0x19,0xb1,0x20,0xcb,0x11,0xb3,0xf2,0x5f,0x9a,0x17,0xfe,0x5a,0xce,0xf4,
+/* 0x00a710 */ 0x37,0x3a,0x74,0x01,0x8d,0x4d,0x28,0xd6,0x22,0x3d,0xcf,0x7f,0x04,0x8a,0x76,0x6b,
+/* 0x00a720 */ 0xa2,0x59,0x45,0x44,0x0f,0xfe,0x4b,0xd7,0xb8,0x3b,0xaa,0xeb,0x6f,0x18,0xf2,0xf5,
+/* 0x00a730 */ 0x6b,0x7c,0xe4,0x53,0xad,0xa6,0xa0,0xa2,0x68,0xf9,0x9e,0x7c,0xf1,0x87,0xa5,0xb4,
+/* 0x00a740 */ 0x10,0xd8,0xd6,0x44,0x37,0x63,0xbb,0xca,0x12,0xd5,0xa9,0xce,0x5d,0x35,0xea,0x8c,
+/* 0x00a750 */ 0x0a,0x7e,0x30,0xd5,0x19,0xad,0xf9,0x27,0x08,0x4d,0x4c,0x75,0xda,0xf8,0xaf,0x49,
+/* 0x00a760 */ 0x3b,0xfe,0xd2,0xf5,0xc3,0xbf,0x01,0x6d,0x84,0x04,0xad,0x9f,0x1b,0x87,0xb4,0x2f,
+/* 0x00a770 */ 0x25,0x31,0xa4,0x10,0x03,0x55,0x65,0xb0,0xa6,0xb0,0x8c,0x9e,0xc4,0x90,0x77,0xfc,
+/* 0x00a780 */ 0xe1,0xbb,0xc0,0x7f,0x6d,0xdd,0x06,0xfc,0x57,0xf3,0x4a,0xd0,0x39,0xd1,0xf1,0x57,
+/* 0x00a790 */ 0xef,0x48,0xff,0x4d,0xd2,0xb5,0xea,0x7c,0xd7,0xc8,0x8e,0x9b,0x73,0xe3,0x2b,0xc9,
+/* 0x00a7a0 */ 0x81,0x68,0x16,0x02,0xcb,0x13,0x7f,0x58,0x2d,0x92,0x4f,0xad,0x0c,0x9c,0x17,0xaa,
+/* 0x00a7b0 */ 0xf1,0x4d,0x50,0xb0,0xbc,0x70,0x5b,0x75,0xea,0x26,0x2d,0xbb,0x2c,0x4c,0x68,0x37,
+/* 0x00a7c0 */ 0xd0,0xb2,0x95,0x61,0x3d,0x34,0x31,0x6f,0xfc,0x21,0xf9,0x2f,0x64,0x62,0x6c,0x16,
+/* 0x00a7d0 */ 0x1f,0xa7,0x42,0x88,0x11,0xd2,0xf5,0x57,0x1d,0x78,0x40,0x26,0x5d,0x91,0xb2,0xcc,
+/* 0x00a7e0 */ 0xd0,0x91,0x7f,0xbf,0x9f,0x87,0xc1,0xa9,0x9c,0xfc,0x2f,0x47,0xfc,0x61,0x59,0xa2,
+/* 0x00a7f0 */ 0x95,0x56,0x64,0x16,0x93,0x11,0x9d,0x82,0x2c,0xbf,0xcb,0xd7,0xbf,0x17,0xea,0x2f,
+/* 0x00a800 */ 0x97,0x25,0x06,0xf1,0xe1,0x48,0x94,0x0e,0xd6,0x0a,0xc4,0x1f,0xce,0x60,0xd5,0xe2,
+/* 0x00a810 */ 0x1e,0xea,0x88,0x82,0x71,0x94,0x3e,0x09,0xb3,0x48,0x8b,0x1c,0x53,0x69,0xba,0xc4,
+/* 0x00a820 */ 0xe1,0x39,0xf7,0xb3,0xc1,0x4b,0x0b,0xc5,0x1f,0xfe,0x84,0x4c,0xaf,0x1a,0x5f,0xbe,
+/* 0x00a830 */ 0xc5,0x80,0x5d,0xf0,0x20,0xcd,0xbc,0xd1,0xdd,0x00,0x68,0x94,0x20,0xbb,0xd6,0x79,
+/* 0x00a840 */ 0x90,0x82,0xf7,0xb1,0x31,0x3f,0xde,0xf5,0xbf,0x56,0x19,0x5a,0x28,0x50,0xed,0xcb,
+/* 0x00a850 */ 0x47,0x3e,0x2e,0x43,0xc2,0x5d,0x8f,0x3e,0x46,0xf7,0x33,0x3f,0xf6,0xb9,0xc5,0x1f,
+/* 0x00a860 */ 0x36,0x3a,0x2e,0x43,0x1a,0xad,0x42,0x88,0x52,0xc7,0xcc,0x49,0x19,0xf8,0x53,0xe0,
+/* 0x00a870 */ 0xbf,0xd4,0x1d,0x9c,0xc9,0x5c,0x17,0x8a,0x3f,0x3c,0x9e,0x6c,0x24,0x68,0x8b,0x78,
+/* 0x00a880 */ 0xcb,0x07,0x57,0x93,0x0f,0x8f,0x11,0xe3,0x38,0xfa,0xdd,0x76,0xe2,0xd8,0x37,0xca,
+/* 0x00a890 */ 0x47,0x50,0xbd,0x2b,0xff,0xe5,0xb3,0x78,0xdd,0xf0,0xd6,0xf2,0xa7,0xc1,0xd0,0x48,
+/* 0x00a8a0 */ 0xcb,0x00,0x08,0x2f,0xab,0x35,0x9a,0xb0,0x14,0xae,0x0d,0x55,0x65,0x98,0xbc,0xbe,
+/* 0x00a8b0 */ 0xc2,0xc9,0xa3,0x96,0x42,0xcc,0x60,0xbc,0xad,0xf3,0x5f,0x4e,0xfc,0x55,0x76,0xd9,
+/* 0x00a8c0 */ 0x77,0x50,0x9c,0x3b,0x24,0x01,0x0b,0x73,0x40,0xd4,0xf5,0x69,0x8f,0xe3,0xca,0x13,
+/* 0x00a8d0 */ 0xfe,0x0d,0x7c,0x45,0xed,0xa1,0x6c,0x21,0x66,0x3b,0xff,0x75,0xaf,0x2e,0x3b,0xcf,
+/* 0x00a8e0 */ 0x33,0x48,0x15,0x02,0x6c,0xf5,0x35,0x5e,0x3a,0x4e,0x89,0xb0,0x43,0x80,0xb6,0x96,
+/* 0x00a8f0 */ 0x90,0xd7,0xf2,0x2d,0xbc,0x30,0x15,0x82,0x96,0xef,0x32,0x0b,0x09,0x10,0x5b,0xfe,
+/* 0x00a900 */ 0xfe,0xf4,0xa2,0xf4,0xe7,0x21,0xee,0x1d,0x8e,0x2d,0x3d,0xb1,0x68,0x8f,0x91,0x46,
+/* 0x00a910 */ 0x34,0x0a,0xc4,0x0a,0x72,0xe7,0xbf,0x54,0xaa,0x76,0x68,0xc3,0x5f,0xff,0x8b,0xeb,
+/* 0x00a920 */ 0x33,0x01,0x90,0xdd,0xb8,0x42,0x0c,0x68,0x51,0x4e,0x93,0xbf,0x1e,0x9c,0xe4,0x6e,
+/* 0x00a930 */ 0xa1,0x73,0x1a,0x8c,0x29,0xcf,0xe5,0xbf,0x76,0xbb,0xc4,0x1f,0x4e,0xa1,0x27,0x59,
+/* 0x00a940 */ 0xfd,0x94,0x99,0x2a,0xe8,0xc6,0x4b,0x6b,0x48,0xcb,0xe3,0x88,0x4a,0xfb,0x5e,0x44,
+/* 0x00a950 */ 0x4f,0xca,0xec,0x44,0x53,0x1d,0xfc,0x97,0xef,0x90,0xcf,0x1e,0xbe,0x38,0x85,0x9e,
+/* 0x00a960 */ 0x06,0xd9,0xf9,0x87,0xc9,0xf4,0x3e,0x81,0x5e,0xd2,0xa4,0x9f,0xe9,0xdf,0x43,0x5a,
+/* 0x00a970 */ 0x06,0xa1,0xce,0x1a,0x2e,0x3a,0xfe,0x70,0xeb,0x4a,0x96,0xbf,0xcc,0x25,0x60,0x95,
+/* 0x00a980 */ 0x31,0x69,0xc1,0x2a,0x25,0x56,0x34,0xe2,0xf6,0xd4,0x20,0x72,0x90,0x9d,0x51,0xea,
+/* 0x00a990 */ 0x73,0xf8,0x2f,0xb7,0xdb,0xf8,0x4b,0xb8,0x1e,0xd4,0x05,0x6b,0xf8,0x1e,0x10,0x46,
+/* 0x00a9a0 */ 0xc3,0xc4,0xd3,0x1b,0x52,0xe3,0x5a,0xa0,0x56,0x18,0xe1,0xcf,0x51,0x26,0xab,0xfc,
+/* 0x00a9b0 */ 0xa6,0xf8,0x6b,0x3b,0xff,0xc5,0xed,0x71,0xe8,0xbc,0xd1,0x7a,0x6d,0xac,0x4c,0xf6,
+/* 0x00a9c0 */ 0x28,0x8b,0x3f,0x3c,0xcd,0x16,0xee,0x20,0xc4,0xc9,0x88,0xf6,0xf5,0x32,0xf9,0x2f,
+/* 0x00a9d0 */ 0x77,0x39,0x88,0xc7,0x98,0x00,0xcb,0x14,0x63,0x6a,0x9a,0xd0,0x49,0xb1,0xbe,0x33,
+/* 0x00a9e0 */ 0x0c,0x7a,0xe6,0xdf,0xf9,0xea,0x8b,0xe0,0xbf,0x1e,0x62,0xc6,0x11,0x70,0x0b,0x07,
+/* 0x00a9f0 */ 0xc8,0x63,0x33,0xa0,0x11,0xe3,0x98,0xb0,0xce,0xd7,0x33,0xb4,0x23,0xd3,0xdb,0x0d,
+/* 0x00aa00 */ 0x52,0x7b,0xa8,0xa1,0xd6,0x8b,0xff,0xe2,0x8d,0xef,0xe1,0xf4,0xdc,0x2e,0xf2,0xd6,
+/* 0x00aa10 */ 0xd2,0xa4,0x3e,0x96,0xf6,0xa5,0x49,0x3d,0xc4,0x63,0x7c,0x0e,0x47,0x32,0x33,0x06,
+/* 0x00aa20 */ 0xf8,0x08,0x60,0xab,0xfb,0x8b,0x8d,0x3f,0xe4,0xd2,0x2c,0xec,0x70,0x0b,0xa2,0x06,
+/* 0x00aa30 */ 0x2e,0x6b,0xf7,0x6d,0x45,0x8a,0x4a,0x3e,0x85,0x40,0x42,0x07,0x15,0xe6,0xbf,0x62,
+/* 0x00aa40 */ 0x6c,0xbd,0x26,0xa1,0x5c,0x17,0x69,0xf9,0xe1,0x24,0xc5,0xb9,0x7c,0x0d,0x7f,0x89,
+/* 0x00aa50 */ 0x2e,0xdc,0x0a,0x05,0x7d,0xc7,0xa4,0xed,0xcc,0x28,0x26,0xef,0xf8,0xc3,0xf2,0x29,
+/* 0x00aa60 */ 0x74,0x93,0xd7,0x15,0x39,0x26,0x18,0xfe,0x22,0xde,0x20,0xaf,0x03,0x31,0x3d,0xe1,
+/* 0x00aa70 */ 0x2e,0xcb,0x7f,0xf1,0x6e,0xf8,0x6b,0xb1,0x4d,0xdb,0xb0,0x18,0x63,0xdc,0xca,0x7f,
+/* 0x00aa80 */ 0x01,0x92,0x12,0x5e,0xf1,0x4e,0xf2,0xb2,0x8c,0xf9,0x16,0x37,0xda,0xe3,0x0f,0xf5,
+/* 0x00aa90 */ 0xfc,0x77,0x17,0xfc,0xc5,0xde,0x90,0x7e,0x5b,0x3a,0x89,0xa7,0xce,0x89,0x53,0xff,
+/* 0x00aaa0 */ 0xd0,0x2b,0x11,0x4c,0xca,0x41,0xe2,0x76,0xb2,0xcc,0xc0,0x5f,0xd3,0x6d,0xd7,0x1a,
+/* 0x00aab0 */ 0x0d,0xee,0xc1,0xb7,0x1e,0x7a,0x29,0x74,0xbd,0xd8,0xfc,0x5c,0x45,0xe6,0xbe,0xc8,
+/* 0x00aac0 */ 0xd9,0x20,0xb7,0x39,0x81,0xf3,0x38,0x75,0xe3,0xed,0x98,0x5a,0xbf,0xe7,0x2f,0x82,
+/* 0x00aad0 */ 0xff,0x0a,0x78,0x77,0x59,0xf0,0x97,0x2f,0x07,0x7f,0x85,0x8a,0x20,0x0a,0x8b,0xcc,
+/* 0x00aae0 */ 0xff,0xca,0xb9,0x24,0x34,0xc3,0x71,0xfd,0x6e,0xeb,0xf5,0x25,0xdb,0x16,0x0e,0xfe,
+/* 0x00aaf0 */ 0xcb,0x9f,0x05,0x62,0x2d,0x9e,0x8c,0x98,0xc5,0xb8,0xc8,0xbe,0x07,0xf0,0xd7,0x7e,
+/* 0x00ab00 */ 0x0f,0xfe,0x8b,0x03,0x63,0x09,0xbc,0x06,0x73,0x32,0xc2,0xac,0x83,0x2f,0x94,0xd0,
+/* 0x00ab10 */ 0xef,0xd1,0x72,0xe3,0x0f,0x43,0x79,0xb3,0xf3,0x3c,0xeb,0x7f,0x01,0xfe,0x72,0x7b,
+/* 0x00ab20 */ 0x36,0xdc,0x88,0xd4,0x90,0xdb,0x83,0x74,0x82,0xe5,0x2f,0x7b,0xf0,0x5f,0xe8,0x41,
+/* 0x00ab30 */ 0x6d,0x46,0xb6,0x45,0xc8,0x13,0x1b,0x7f,0x9e,0x9d,0x3b,0x9c,0x47,0xfe,0xd7,0x5c,
+/* 0x00ab40 */ 0x97,0x99,0xf7,0x3b,0xf4,0x0f,0x29,0xce,0x75,0xc7,0x5f,0xae,0x46,0x9e,0x31,0x97,
+/* 0x00ab50 */ 0xb2,0xf8,0xeb,0x13,0x97,0x3b,0x58,0x93,0x11,0x8b,0x31,0xe3,0x88,0x41,0x84,0xe5,
+/* 0x00ab60 */ 0x0e,0xfe,0x46,0xaf,0x07,0xfd,0x3d,0xf8,0x2f,0xf7,0xfc,0x2f,0xb6,0x2f,0x8a,0xe3,
+/* 0x00ab70 */ 0xbf,0xf2,0x68,0xc1,0x9d,0x60,0xdf,0x53,0x80,0xff,0xb2,0xaa,0x1d,0xaa,0xa1,0x6c,
+/* 0x00ab80 */ 0x97,0x60,0x7a,0xdd,0xf9,0xea,0x2f,0x3b,0x8c,0x3c,0x5c,0x89,0xa1,0x7f,0x88,0x0a,
+/* 0x00ab90 */ 0xf3,0x5f,0x86,0xe1,0xb7,0xb4,0x74,0xe7,0xc6,0x1f,0x8a,0x39,0x94,0x84,0x64,0x9b,
+/* 0x00aba0 */ 0xcc,0x81,0x6c,0x46,0x4f,0xcc,0x9d,0x23,0xfb,0xfc,0xb6,0x62,0xf8,0x2f,0xcf,0x34,
+/* 0x00abb0 */ 0x22,0xd3,0xf8,0x3c,0xcb,0x7f,0x15,0x1e,0x9c,0xef,0x7b,0xb2,0xfc,0xd7,0x64,0x3e,
+/* 0x00abc0 */ 0xfe,0x2b,0x9e,0x97,0x1a,0xc3,0xfc,0x9b,0xaa,0x81,0xbf,0x64,0xb7,0x59,0xa5,0x62,
+/* 0x00abd0 */ 0x26,0x2e,0xd2,0x1c,0x0e,0x43,0xdf,0xa7,0xf9,0xf9,0xaf,0x22,0x8c,0x2c,0xfe,0xe2,
+/* 0x00abe0 */ 0xfe,0x5f,0xf3,0x33,0xca,0x7e,0xcf,0x3c,0x82,0xbf,0xf2,0x7e,0x4f,0x63,0x81,0xef,
+/* 0x00abf0 */ 0xb9,0xc4,0xf6,0x85,0x1b,0xff,0xe5,0xcd,0xa8,0x7a,0xe7,0x7f,0x01,0xff,0xe5,0xa6,
+/* 0x00ac00 */ 0x7f,0xe8,0xc6,0x88,0x85,0xdd,0x38,0xb2,0x0f,0x14,0xba,0x2f,0xd6,0xb9,0xe8,0x1f,
+/* 0x00ac10 */ 0x16,0xc3,0x88,0x65,0xfd,0x3a,0x86,0xbf,0xee,0x43,0x33,0x73,0x72,0xbb,0x26,0x9d,
+/* 0x00ac20 */ 0x6a,0xb4,0x25,0xde,0x94,0x4d,0xdd,0x25,0xb6,0x4f,0xab,0x7b,0x72,0xf3,0xbf,0x74,
+/* 0x00ac30 */ 0xb6,0x2b,0xab,0xc8,0xe1,0x49,0x8d,0x31,0xfe,0x8b,0x9d,0x5f,0x6d,0x15,0xee,0xe7,
+/* 0x00ac40 */ 0x8e,0xc5,0xb8,0xc3,0x76,0xee,0xe4,0x8e,0x39,0xcf,0xce,0xaf,0x04,0xe7,0xe6,0xfb,
+/* 0x00ac50 */ 0x5d,0xb1,0x45,0x4c,0x8d,0xe7,0xf3,0x0f,0x87,0x18,0xee,0xf6,0xce,0xff,0x0a,0x67,
+/* 0x00ac60 */ 0x89,0x30,0xc1,0x99,0xf6,0x65,0xc1,0xa7,0x74,0xdd,0x65,0x9c,0xe7,0x8c,0x2b,0xc6,
+/* 0x00ac70 */ 0x28,0x50,0x7f,0x39,0x66,0x78,0x29,0x51,0x76,0x7e,0x79,0xfa,0x99,0xba,0x1f,0xf5,
+/* 0x00ac80 */ 0xc9,0xf4,0x3d,0x7a,0x4a,0x17,0x6f,0x99,0xc3,0xf7,0xb2,0x8c,0xd8,0xbf,0xb1,0xae,
+/* 0x00ac90 */ 0xa3,0x5e,0x6b,0xf1,0x29,0x9b,0x9f,0x24,0xda,0xe3,0x28,0x0d,0xf6,0xbd,0x8c,0x51,
+/* 0x00aca0 */ 0x76,0x9e,0xf6,0x51,0xfc,0xe5,0x46,0xc7,0x04,0xc7,0x0d,0xc1,0xed,0xbc,0x9e,0xcc,
+/* 0x00acb0 */ 0x55,0x5d,0xff,0x10,0xaf,0x23,0xcf,0x8f,0x53,0xff,0x10,0xd4,0xe6,0x91,0xab,0x5b,
+/* 0x00acc0 */ 0x98,0x5b,0x37,0xd9,0xc4,0x5f,0x8e,0xda,0x5e,0x7b,0x10,0xd3,0xc1,0x43,0x63,0xba,
+/* 0x00acd0 */ 0xd1,0x92,0xc7,0xcf,0xcc,0xb0,0xfd,0x05,0xf8,0xcb,0x6d,0x2d,0xa0,0xa8,0x4d,0x4b,
+/* 0x00ace0 */ 0x7b,0x11,0x3b,0xf7,0x04,0xf3,0x0f,0x59,0xfd,0x65,0x37,0xef,0x2b,0xc8,0x84,0xcd,
+/* 0x00acf0 */ 0xa9,0x42,0x5a,0x9e,0x79,0xce,0x94,0xd0,0xff,0x2b,0xf5,0x82,0x29,0x72,0x58,0x38,
+/* 0x00ad00 */ 0x50,0xca,0xc5,0x58,0xe1,0x8e,0xbf,0x88,0xf1,0x7a,0xf9,0xa3,0xe2,0x14,0xfa,0x31,
+/* 0x00ad10 */ 0x80,0xb5,0x8d,0x98,0x75,0xfd,0xdd,0xb0,0x7a,0x6e,0x4e,0xf3,0x78,0x78,0x54,0x58,
+/* 0x00ad20 */ 0x84,0xc2,0x9d,0xcd,0xbe,0xe0,0xa4,0xf0,0x28,0xba,0x92,0x74,0xc7,0x5f,0x06,0xa4,
+/* 0x00ad30 */ 0xda,0x21,0xc4,0xd0,0x40,0x69,0x44,0x91,0x26,0xf8,0x26,0x55,0xef,0x1a,0xc1,0x4f,
+/* 0x00ad40 */ 0x2d,0xbf,0x17,0x4e,0xab,0x05,0xe2,0xbb,0x28,0x26,0x8a,0x69,0xe2,0x39,0xf4,0xa2,
+/* 0x00ad50 */ 0xb8,0x85,0xff,0x1a,0x72,0xe8,0x6f,0x60,0xbe,0xdd,0x77,0x54,0x59,0xa3,0x48,0x96,
+/* 0x00ad60 */ 0x32,0x88,0x3d,0x78,0x9b,0x5c,0xd3,0xe6,0x47,0xfc,0xe3,0xa8,0x0f,0xc5,0x86,0x4a,
+/* 0x00ad70 */ 0x15,0x72,0x7e,0x6d,0x53,0x6c,0xf8,0xeb,0x07,0xb9,0xb0,0xeb,0x99,0xc4,0x3a,0x74,
+/* 0x00ad80 */ 0x18,0xff,0x83,0x22,0xa5,0xfd,0xeb,0x28,0x12,0xbf,0x3b,0xcd,0x9f,0x15,0x9f,0x43,
+/* 0x00ad90 */ 0xf3,0x52,0x04,0x80,0xc7,0x50,0x2f,0x17,0xcb,0x70,0xe9,0xc4,0x1e,0xdc,0xcb,0x80,
+/* 0x00ada0 */ 0xd8,0xb8,0xab,0xfe,0x21,0x31,0x02,0x64,0x99,0xc6,0x3b,0x1b,0x52,0xbd,0xc6,0x7a,
+/* 0x00adb0 */ 0x91,0xae,0x0f,0xf0,0x7b,0x5c,0x4c,0x09,0xef,0x94,0x5e,0x8e,0x3c,0x8b,0x9a,0x94,
+/* 0x00adc0 */ 0x69,0xa0,0x31,0xf5,0x1e,0x8b,0xb4,0xf4,0xe0,0xbf,0x80,0xfd,0x3f,0x46,0xce,0x94,
+/* 0x00add0 */ 0x65,0x38,0x3c,0x5e,0x65,0x76,0x31,0xd9,0x43,0x29,0xf3,0xc0,0x65,0xf9,0xbb,0x54,
+/* 0x00ade0 */ 0x1c,0xfd,0xf6,0x5d,0x90,0x18,0xb2,0xf1,0x5f,0xbf,0x70,0xe0,0xaf,0x6e,0xa1,0x06,
+/* 0x00adf0 */ 0xbd,0x85,0x1a,0x54,0x7f,0xad,0xc0,0x5e,0xb9,0xab,0xd2,0xea,0x55,0xf4,0xf6,0xb4,
+/* 0x00ae00 */ 0x06,0xcc,0xa5,0xba,0xae,0x29,0x64,0xcc,0xea,0xf6,0xe3,0x92,0xf9,0x53,0xdd,0xf8,
+/* 0x00ae10 */ 0xaf,0x6f,0x0d,0x16,0xb8,0x07,0xd5,0xad,0xf5,0x8f,0x77,0x3d,0x76,0x5f,0xaf,0xf1,
+/* 0x00ae20 */ 0xf0,0x7f,0x37,0x1c,0x51,0xc9,0xf9,0xf5,0x19,0x5c,0xbd,0xaa,0xe2,0x31,0xd4,0xad,
+/* 0x00ae30 */ 0xab,0xd9,0x08,0xfb,0x4c,0xfc,0xe5,0xdb,0xcf,0xaf,0xb3,0xac,0x97,0x4c,0x96,0x29,
+/* 0x00ae40 */ 0xe9,0x53,0x3a,0xfc,0xf1,0x6c,0xd4,0xb4,0x86,0xba,0x70,0x8d,0xda,0xd3,0xcd,0x9f,
+/* 0x00ae50 */ 0x51,0xf7,0x8a,0x35,0x90,0x49,0x31,0xad,0xd3,0x1e,0x7f,0x98,0xce,0xc5,0x5f,0x3f,
+/* 0x00ae60 */ 0xdc,0xc0,0xc7,0x4b,0xfe,0x03,0x57,0x75,0x50,0xd9,0x0d,0x9d,0x7c,0x99,0x40,0x87,
+/* 0x00ae70 */ 0xe4,0xca,0xfe,0xd2,0x36,0x86,0xc8,0x3a,0xfc,0xf7,0xe8,0x81,0x88,0x33,0x5c,0xf8,
+/* 0x00ae80 */ 0x2f,0x5e,0xd7,0x3f,0x54,0xc8,0xfc,0x5c,0x40,0xb5,0x83,0xfe,0x7a,0x01,0x5e,0xa7,
+/* 0x00ae90 */ 0x34,0xfe,0x70,0x08,0xbd,0x51,0x41,0x80,0xaa,0x8f,0x56,0x04,0xab,0xc1,0xb1,0x94,
+/* 0x00aea0 */ 0xd0,0x9e,0xcb,0x7f,0x05,0x8f,0x59,0xb1,0x70,0x33,0xd3,0x8d,0xff,0x14,0x64,0x60,
+/* 0x00aeb0 */ 0x1f,0x5e,0x71,0x5a,0x35,0xf9,0xca,0x0b,0xd5,0xcd,0x5c,0x58,0x23,0x5d,0x8f,0xc8,
+/* 0x00aec0 */ 0x71,0x78,0xc5,0x8d,0x18,0x9f,0x4a,0xf2,0xec,0xdc,0xc9,0xea,0x6f,0xe8,0x1b,0x3f,
+/* 0x00aed0 */ 0x29,0xd4,0x70,0x37,0x50,0x1d,0x06,0x98,0x8c,0x19,0xc9,0xa5,0x90,0x31,0x1d,0x71,
+/* 0x00aee0 */ 0x1c,0xd8,0x49,0xa9,0xcc,0x3a,0x4c,0xc6,0x98,0xeb,0x65,0xc4,0x1f,0xf6,0x39,0xce,
+/* 0x00aef0 */ 0x1d,0x01,0xce,0xf7,0x4a,0x2c,0xad,0x6f,0x99,0x52,0xb2,0xd2,0xbe,0x6d,0x0b,0x54,
+/* 0x00af00 */ 0x31,0xb3,0xe2,0x97,0xf2,0x01,0x48,0x55,0x1b,0x2e,0x9b,0x6e,0x9c,0x68,0x9e,0xfa,
+/* 0x00af10 */ 0x1b,0x6b,0x41,0xd5,0x24,0x51,0x09,0x2d,0xb7,0x54,0x7d,0x9e,0xaf,0xf8,0x0e,0xed,
+/* 0x00af20 */ 0x98,0x8f,0xc4,0xb5,0x94,0x82,0x9c,0x9d,0x26,0x2d,0x7f,0x9f,0x13,0x7f,0xd8,0xe6,
+/* 0x00af30 */ 0x38,0xbf,0x58,0x10,0xaf,0x92,0xa1,0x84,0xb5,0x4e,0x72,0x9d,0xc5,0xa4,0xeb,0xcf,
+/* 0x00af40 */ 0xe2,0xc2,0x92,0x9f,0xa2,0xa3,0x72,0x34,0xe3,0xaf,0x4d,0x98,0x6f,0x51,0x37,0xfe,
+/* 0x00af50 */ 0x0b,0x40,0x56,0x98,0xfc,0x22,0x74,0x4b,0x5d,0x38,0x00,0x5e,0x13,0x0f,0xd5,0xbe,
+/* 0x00af60 */ 0xa4,0x14,0x79,0xf8,0x8f,0xa0,0xe6,0x44,0x60,0x54,0xa8,0x20,0xc0,0xac,0x0a,0x4b,
+/* 0x00af70 */ 0x9f,0xe8,0xa5,0xc1,0xbc,0xf9,0x2f,0x4e,0x27,0xb9,0x8e,0xdb,0xf9,0x2f,0x11,0x8c,
+/* 0x00af80 */ 0x55,0x5b,0xb2,0x42,0x1c,0xe6,0xbd,0xba,0xa9,0x7f,0x98,0x83,0x02,0xa4,0xa4,0x64,
+/* 0x00af90 */ 0xc4,0x16,0x96,0x8f,0x64,0x65,0xe7,0xbf,0x64,0x8a,0x88,0xd7,0x7c,0xa7,0xf8,0x06,
+/* 0x00afa0 */ 0x16,0x7f,0x58,0x20,0xff,0xab,0x94,0xb1,0x5d,0x11,0x35,0xba,0x7d,0xc7,0x35,0x9f,
+/* 0x00afb0 */ 0xa1,0x52,0x28,0x1e,0x56,0x76,0xab,0x33,0x9e,0x2f,0xfb,0xb8,0x64,0x97,0x0a,0xa5,
+/* 0x00afc0 */ 0x99,0xf9,0x97,0xf1,0xf5,0x82,0xfa,0x1b,0xd5,0x7c,0x2f,0x8a,0xb4,0x8a,0xc9,0xb2,
+/* 0x00afd0 */ 0x6b,0x34,0xff,0x8b,0x75,0x95,0xcc,0x59,0x2e,0x3d,0x03,0xb4,0x97,0xba,0x46,0x13,
+/* 0x00afe0 */ 0x2b,0xf8,0x6a,0x5c,0x40,0x7f,0xa3,0xb4,0xec,0x89,0x6a,0xd4,0x19,0x4d,0xad,0x14,
+/* 0x00aff0 */ 0xcb,0x12,0x83,0xfb,0xfa,0x38,0xaa,0x53,0x3a,0xb8,0x73,0xef,0xdc,0x6a,0x15,0xd6,
+/* 0x00b000 */ 0x34,0xb5,0x09,0x29,0x2b,0xa3,0x15,0x7c,0x37,0x57,0x48,0x7f,0x83,0x17,0x14,0xa4,
+/* 0x00b010 */ 0x29,0x75,0x62,0x20,0xf1,0x93,0x4c,0xf2,0x22,0x17,0xe7,0xee,0x80,0xb4,0xaf,0x0d,
+/* 0x00b020 */ 0x4a,0x03,0x85,0x66,0xdd,0x43,0xe8,0x57,0xc0,0x7f,0x99,0x89,0x3c,0x86,0xfe,0xa1,
+/* 0x00b030 */ 0x43,0x7f,0x83,0xe6,0x7f,0x45,0xc9,0xde,0xd9,0xda,0x35,0x92,0xd2,0x5d,0xfd,0x89,
+/* 0x00b040 */ 0xd4,0x8d,0xe8,0xb2,0x95,0x12,0xe4,0x7f,0x7d,0x15,0x7d,0x0c,0x84,0x10,0x27,0x52,
+/* 0x00b050 */ 0xd7,0xa3,0x05,0xf8,0x2f,0x9a,0xd6,0x44,0xe5,0x13,0x17,0x99,0xeb,0x95,0xba,0x89,
+/* 0x00b060 */ 0xea,0x56,0x87,0x87,0xb9,0x89,0xc4,0x19,0x14,0x81,0xae,0xcb,0x46,0x97,0xa1,0x7f,
+/* 0x00b070 */ 0xe8,0xe0,0xbf,0x9e,0x28,0xcb,0xa0,0x51,0x35,0x26,0x4b,0x8f,0x47,0x2a,0x79,0x96,
+/* 0x00b080 */ 0x1a,0x56,0x76,0x15,0x0f,0x28,0x11,0x24,0x25,0x3e,0xe8,0x20,0xaf,0xca,0x39,0x15,
+/* 0x00b090 */ 0x10,0x7f,0x88,0x70,0x34,0x3f,0xff,0x25,0x27,0xa0,0x10,0x18,0x25,0xc2,0xa6,0x19,
+/* 0x00b0a0 */ 0x64,0xe2,0xa0,0xb2,0xb7,0x4d,0x69,0x93,0x2a,0xf8,0x6b,0x7c,0x9f,0xaf,0xfa,0x7e,
+/* 0x00b0b0 */ 0x32,0x66,0x2c,0xcb,0x33,0xd2,0xdf,0x73,0x8f,0x03,0x7f,0x6d,0x85,0x2c,0x3f,0x25,
+/* 0x00b0c0 */ 0xd6,0x7a,0x37,0x53,0xcb,0xa4,0xf5,0xbf,0xa8,0x12,0x4b,0x1b,0xad,0x28,0xf7,0x2c,
+/* 0x00b0d0 */ 0x9e,0xd3,0x26,0x59,0x2a,0x11,0xd8,0xf4,0x0f,0xad,0xe1,0x82,0xdb,0x61,0x7e,0xda,
+/* 0x00b0e0 */ 0xe2,0xeb,0xc3,0xec,0xc1,0xa6,0x11,0x89,0x1f,0x91,0xae,0x7d,0x1d,0xc0,0x7f,0x45,
+/* 0x00b0f0 */ 0xde,0x05,0x69,0xfa,0xa7,0xcb,0x47,0xf8,0x53,0x85,0xf8,0x2f,0x13,0x26,0x97,0x67,
+/* 0x00b100 */ 0xbb,0x80,0x35,0xeb,0x20,0xc6,0x9a,0xe8,0x75,0x1d,0x91,0xb5,0xe5,0xd7,0xdf,0xe0,
+/* 0x00b110 */ 0x98,0xec,0xa1,0x5a,0x47,0x1c,0x8b,0x2e,0xad,0xb6,0x87,0x76,0xa1,0x6c,0x09,0x3f,
+/* 0x00b120 */ 0xb1,0x87,0x3c,0x48,0xab,0x70,0xaf,0x22,0xd3,0x1c,0xb1,0x1c,0xfe,0x2b,0xee,0x40,
+/* 0x00b130 */ 0x5b,0x0d,0xa9,0x50,0x46,0x18,0x40,0x50,0xff,0x8b,0x31,0x62,0xa4,0x6b,0x46,0x86,
+/* 0x00b140 */ 0x7f,0x57,0x79,0x45,0x8d,0x60,0x29,0xc3,0x2f,0x41,0x97,0x50,0xc4,0xca,0x7f,0x71,
+/* 0x00b150 */ 0x90,0x42,0x6e,0x79,0x8f,0xf9,0x6b,0x4b,0x80,0xbe,0x57,0x20,0x5d,0xe2,0xac,0x45,
+/* 0x00b160 */ 0x76,0x1e,0x33,0xd6,0x03,0xf5,0x26,0xaa,0x21,0x10,0xb1,0x86,0xd3,0xa5,0xe9,0xdd,
+/* 0x00b170 */ 0xf5,0x37,0x66,0x6b,0x33,0x20,0x1a,0xfc,0x35,0x3c,0xbb,0xc5,0xbf,0x9e,0x3c,0x3d,
+/* 0x00b180 */ 0xd9,0xf7,0xb3,0x4a,0xa9,0xb1,0x29,0xfe,0xb7,0x5a,0xa5,0x56,0xfa,0x4b,0xbe,0x49,
+/* 0x00b190 */ 0x7c,0x1a,0x57,0xda,0xf8,0x2f,0x03,0x7f,0xe9,0xef,0xe7,0xd0,0xc6,0xae,0xf7,0x89,
+/* 0x00b1a0 */ 0x63,0xb6,0xb0,0x23,0xbc,0x56,0x78,0x9f,0xb7,0xc9,0x6e,0x48,0x6d,0xc2,0xd7,0xbe,
+/* 0x00b1b0 */ 0x73,0xe8,0xc7,0xc4,0x0d,0x93,0x6e,0x47,0x7f,0xc0,0x7b,0x1d,0xfc,0x97,0xc5,0xcf,
+/* 0x00b1c0 */ 0x0c,0xee,0x33,0xae,0x67,0x53,0xc2,0x4e,0x19,0x6e,0x92,0x41,0x88,0xc3,0x77,0x09,
+/* 0x00b1d0 */ 0xc5,0x07,0x9f,0x1a,0x16,0xc6,0xe4,0x6f,0x98,0x2f,0x31,0xaa,0x4b,0xd3,0x5b,0xf3,
+/* 0x00b1e0 */ 0xbf,0x4c,0xb4,0xc5,0x8c,0xdb,0x68,0x44,0x62,0x47,0xe0,0x86,0x35,0xda,0xf0,0x5c,
+/* 0x00b1f0 */ 0xb2,0x7e,0x30,0x78,0x43,0x8a,0x53,0xb1,0xfa,0xc0,0xc6,0xf2,0x38,0x1f,0xbe,0x68,
+/* 0x00b200 */ 0xe5,0xbf,0x76,0xe5,0xe2,0xaf,0x10,0x44,0x6b,0x1c,0xaa,0x9e,0xaf,0x05,0x54,0xff,
+/* 0x00b210 */ 0x74,0x7c,0x08,0xc2,0x0e,0x81,0xc9,0x3a,0xa3,0x42,0x45,0x66,0x82,0x14,0x9e,0x20,
+/* 0x00b220 */ 0x20,0x42,0xfc,0x39,0x48,0xfb,0xd6,0x16,0xcc,0xff,0xf2,0xb1,0x80,0x90,0xb2,0x0a,
+/* 0x00b230 */ 0xce,0x68,0xe1,0x5f,0xe4,0xaa,0x06,0x3b,0xd5,0x12,0xf2,0x71,0x71,0xbe,0x56,0xba,
+/* 0x00b240 */ 0x3a,0x22,0x1b,0x4b,0xe0,0xc9,0x7f,0x2d,0x4a,0x9c,0x06,0xc7,0x55,0x25,0x5e,0x25,
+/* 0x00b250 */ 0xd2,0x55,0x2e,0xf9,0xd3,0xbe,0x1e,0x14,0x19,0x17,0x5f,0xf4,0xb5,0xa3,0x04,0x48,
+/* 0x00b260 */ 0x07,0x6c,0x4f,0x20,0xf4,0xdf,0xec,0x53,0xa7,0xbc,0xf4,0x37,0x26,0xe0,0x32,0x56,
+/* 0x00b270 */ 0x89,0xab,0x0b,0x92,0x59,0x59,0xad,0x29,0x74,0x11,0xd5,0x7f,0x10,0x4c,0x12,0x97,
+/* 0x00b280 */ 0xf8,0x75,0x80,0x42,0xdb,0xa5,0x39,0xf8,0x9c,0x9d,0xff,0xca,0xcd,0xff,0x0a,0xd1,
+/* 0x00b290 */ 0x7a,0x01,0x3c,0x59,0xb8,0x24,0xd9,0x20,0xcb,0xf4,0xa5,0x4c,0x7e,0x03,0x81,0xa3,
+/* 0x00b2a0 */ 0x49,0xe1,0x0b,0x28,0xf9,0x71,0x2a,0x94,0x14,0xae,0x8a,0xef,0xe5,0xf0,0x5f,0xac,
+/* 0x00b2b0 */ 0x0a,0xb0,0xc5,0xd5,0xa7,0xc5,0x8c,0xea,0x86,0xc8,0x4b,0x78,0xc2,0x70,0x4e,0xfe,
+/* 0x00b2c0 */ 0x8f,0xb8,0xeb,0x0f,0x6e,0xe2,0xca,0xef,0x5f,0xbd,0x5d,0xcc,0x4a,0x5a,0x59,0xc2,
+/* 0x00b2d0 */ 0x26,0x57,0xe7,0x42,0xca,0x5a,0x18,0xa2,0x50,0x61,0x1b,0x99,0x18,0xc7,0x71,0xec,
+/* 0x00b2e0 */ 0x05,0x3c,0xa9,0x20,0xee,0xe1,0xb6,0x33,0x1d,0xa6,0x73,0x93,0x2a,0x19,0xf7,0x4a,
+/* 0x00b2f0 */ 0x3b,0xe4,0xc6,0x4d,0x3a,0x19,0x26,0x65,0xe8,0xb3,0x64,0x88,0xc0,0x04,0x14,0xc2,
+/* 0x00b300 */ 0xe4,0x4c,0x8e,0x4b,0xc5,0x8f,0x72,0xbe,0x24,0x97,0x11,0xe0,0x24,0x10,0x72,0xc7,
+/* 0x00b310 */ 0x42,0x3c,0xd4,0xfc,0x6a,0x1c,0x8e,0xa1,0x40,0x7e,0x9c,0xc2,0xb9,0x89,0x03,0xbe,
+/* 0x00b320 */ 0x3b,0x91,0x72,0x09,0x24,0x06,0xfa,0xde,0xfe,0x90,0xb4,0x92,0x56,0xbb,0x0a,0xb9,
+/* 0x00b330 */ 0xe9,0x7f,0x9f,0x79,0xef,0xc9,0x88,0xf7,0xb4,0xfb,0xde,0xe7,0x7d,0xbe,0xdf,0xcf,
+/* 0x00b340 */ 0xf7,0x03,0x38,0x05,0x0d,0x47,0x5c,0x12,0xb3,0x5a,0xb8,0x01,0x0d,0x12,0x3f,0x22,
+/* 0x00b350 */ 0xd7,0x08,0x6b,0x28,0xac,0x7f,0xe9,0x40,0x63,0xc8,0x15,0x5d,0x78,0x51,0xa6,0x93,
+/* 0x00b360 */ 0xf4,0xe8,0x88,0xd6,0x1f,0xf1,0x4a,0x5c,0x3f,0xf3,0x5b,0x61,0x7f,0x72,0xb6,0xc4,
+/* 0x00b370 */ 0x6d,0x40,0x7f,0x06,0xaa,0x35,0xbd,0x51,0xfe,0xd7,0x5d,0x89,0x32,0x25,0xa0,0x71,
+/* 0x00b380 */ 0xb1,0xcc,0x14,0xb4,0xae,0x68,0xaf,0x57,0xb2,0xf7,0x23,0x3f,0x61,0x0a,0x5e,0xe9,
+/* 0x00b390 */ 0xce,0x7e,0xf4,0x0f,0xe9,0xbf,0x93,0xa7,0x7f,0x69,0x24,0xab,0xac,0x83,0x06,0x34,
+/* 0x00b3a0 */ 0x8a,0x76,0x40,0x43,0x69,0x09,0xdb,0x86,0xa9,0x2f,0x84,0x87,0xac,0xe9,0x5e,0xba,
+/* 0x00b3b0 */ 0x5e,0x1e,0x87,0x48,0xba,0xe2,0xd9,0xfa,0xd7,0xb3,0xda,0xc9,0x4a,0x23,0xc5,0x29,
+/* 0x00b3c0 */ 0x44,0x2f,0xcf,0x03,0xe2,0x24,0xa5,0xaa,0x5a,0xad,0xb2,0x5e,0x8b,0x21,0x20,0xb9,
+/* 0x00b3d0 */ 0x30,0x39,0x8f,0x7d,0x45,0xa6,0xc5,0x35,0xc2,0x74,0x69,0x42,0x98,0x91,0xfe,0xb5,
+/* 0x00b3e0 */ 0x29,0x65,0xcb,0x84,0x1d,0x66,0x96,0x60,0x82,0x86,0x45,0x75,0x12,0x70,0x93,0x06,
+/* 0x00b3f0 */ 0x2b,0x4a,0x95,0x89,0xbc,0xfc,0xaf,0x92,0xd4,0xae,0x3c,0xb0,0xc8,0xc4,0xff,0x30,
+/* 0x00b400 */ 0x1f,0xa8,0xb2,0xd7,0xe5,0x12,0xfd,0x0f,0xad,0x02,0x53,0xff,0xc3,0x5c,0xa0,0xca,
+/* 0x00b410 */ 0x5e,0xd6,0xea,0x2f,0x97,0x0e,0x4c,0xfc,0x0f,0xad,0x81,0x4d,0x25,0xe6,0x7f,0x59,
+/* 0x00b420 */ 0xd0,0xbf,0x72,0x9f,0x8b,0x52,0x81,0x99,0xff,0xa1,0x55,0x60,0xe2,0x7f,0x68,0x19,
+/* 0x00b430 */ 0x98,0xfa,0x1f,0x5a,0x04,0x86,0xf1,0x87,0xba,0xc9,0x4c,0xcb,0x5e,0x85,0xea,0x7f,
+/* 0x00b440 */ 0x59,0xf2,0x3f,0xb4,0x0a,0x8a,0xfb,0x1f,0x16,0x00,0xf7,0x1b,0xe8,0x5f,0x26,0xfe,
+/* 0x00b450 */ 0x87,0x56,0x41,0x51,0xff,0xc3,0xc2,0xca,0x75,0xc1,0x2e,0x0b,0xfe,0x87,0x96,0x40,
+/* 0x00b460 */ 0xd1,0xf8,0xc3,0x42,0xa0,0xd9,0x40,0xff,0x2a,0x25,0xff,0xab,0x08,0x30,0xf1,0x3f,
+/* 0x00b470 */ 0xb4,0x0c,0x4c,0xfc,0x0f,0xad,0xeb,0x20,0xc5,0xfc,0x0f,0x4b,0x00,0x26,0xfe,0x87,
+/* 0x00b480 */ 0x96,0x81,0x99,0xff,0xa1,0x55,0x60,0xe6,0x7f,0x68,0x15,0x98,0xf9,0x1f,0xe6,0x80,
+/* 0x00b490 */ 0xfe,0xdb,0xf1,0x3f,0xb4,0x36,0xcf,0x16,0xf2,0xbf,0x32,0x60,0xab,0xe1,0xba,0x1b,
+/* 0x00b4a0 */ 0xc6,0x1f,0x96,0xa8,0x7f,0xa5,0xfd,0x0f,0x59,0x2b,0x9f,0xca,0xb5,0xef,0x48,0x83,
+/* 0x00b4b0 */ 0x22,0xfe,0x87,0x0a,0x70,0x95,0xa4,0x7f,0x99,0xfa,0x1f,0xce,0x2a,0x6a,0x8d,0x68,
+/* 0x00b4c0 */ 0xea,0x7f,0x68,0x19,0x98,0xf9,0x1f,0x66,0x18,0x59,0xf1,0x57,0xb7,0x99,0xff,0xa1,
+/* 0x00b4d0 */ 0x55,0x60,0x16,0x7f,0xa8,0x81,0x46,0x93,0x7d,0xc7,0x92,0xff,0xa1,0x05,0x60,0xee,
+/* 0x00b4e0 */ 0x7f,0x68,0x0d,0x58,0xf1,0x3f,0x2c,0x41,0xff,0x32,0xf2,0x3f,0xb4,0x0c,0x4c,0xfc,
+/* 0x00b4f0 */ 0x0f,0xd3,0xfa,0x57,0xae,0x34,0x96,0xb7,0xbf,0x5b,0xac,0xbf,0x6c,0x06,0x4c,0xfd,
+/* 0x00b500 */ 0x0f,0x2d,0x02,0x13,0xff,0x43,0x63,0x60,0xa8,0x7f,0xdd,0xde,0x39,0xd3,0xd4,0xff,
+/* 0x00b510 */ 0xd0,0x4e,0x19,0xd9,0xf3,0x79,0xfa,0x57,0x6e,0x8b,0xa9,0xff,0xa1,0xd5,0xf3,0xbc,
+/* 0x00b520 */ 0x99,0xff,0xe1,0xf4,0x4c,0xcb,0x64,0x2b,0xfe,0x87,0xfa,0x47,0xc6,0xd3,0x21,0x52,
+/* 0x00b530 */ 0x00,0x0d,0x49,0x77,0x92,0x9c,0xf9,0xdf,0xa5,0xec,0x38,0xb5,0xa8,0x11,0xc6,0x9f,
+/* 0x00b540 */ 0x9b,0x2b,0xba,0x8f,0xcc,0x58,0x0d,0x43,0xb8,0x4d,0x9c,0xbc,0x6c,0x46,0x0a,0x7e,
+/* 0x00b550 */ 0xed,0xcd,0xd6,0xbf,0x72,0xf9,0x17,0x70,0x72,0xb5,0xaf,0x4e,0xef,0x71,0x67,0x14,
+/* 0x00b560 */ 0x25,0x3d,0x7d,0xe0,0x4d,0x72,0x89,0x45,0x5e,0x88,0x0a,0x8d,0xa2,0xf3,0xe7,0x88,
+/* 0x00b570 */ 0xa6,0x86,0xd5,0x0a,0xce,0x7e,0x94,0xc4,0x9b,0x3a,0x8b,0xf1,0xaf,0x61,0x0e,0xd0,
+/* 0x00b580 */ 0xc9,0x49,0xb2,0xc1,0x9a,0x40,0xd6,0x22,0x42,0xeb,0x2f,0x7b,0x90,0x1f,0x7e,0x86,
+/* 0x00b590 */ 0x04,0x5a,0x05,0x4f,0xbe,0x69,0xa7,0xdb,0xd6,0x98,0xf0,0x7c,0x51,0xfe,0x95,0xf4,
+/* 0x00b5a0 */ 0x45,0xc3,0xe3,0xb6,0x83,0x2c,0xe1,0xd4,0xd1,0x70,0x52,0xe8,0x83,0x1d,0x92,0x63,
+/* 0x00b5b0 */ 0x10,0x3d,0x0e,0xeb,0x7a,0x67,0xfd,0xe6,0xe1,0xc4,0xc2,0x71,0xae,0xcf,0x56,0xfb,
+/* 0x00b5c0 */ 0x98,0x73,0x10,0x5d,0xe6,0xfa,0x8a,0xf2,0xaf,0x7a,0x7e,0x80,0x02,0x96,0x70,0xe1,
+/* 0x00b5d0 */ 0xb7,0x99,0xdf,0x2e,0x3c,0x41,0x48,0x7a,0x79,0x37,0x53,0x03,0x49,0x29,0x90,0x74,
+/* 0x00b5e0 */ 0xc7,0x6c,0xe3,0x30,0x2c,0xb6,0x86,0x26,0x6f,0xa9,0x3c,0xca,0xbe,0x5f,0x8c,0x7f,
+/* 0x00b5f0 */ 0x3d,0x08,0xd9,0x6b,0x71,0x15,0xbe,0xe4,0x7e,0x21,0xb9,0x52,0x95,0x7b,0xc8,0xd3,
+/* 0x00b600 */ 0x23,0x57,0xca,0x9b,0x40,0x37,0x3d,0xad,0xcc,0xd2,0xf3,0xe8,0xea,0x94,0xe2,0xfe,
+/* 0x00b610 */ 0x1b,0x9d,0x3c,0xd5,0xbf,0xfe,0x57,0xb9,0x1e,0xf9,0x4c,0x49,0x1a,0xea,0x25,0x5d,
+/* 0x00b620 */ 0xc3,0x10,0x18,0x71,0x25,0xc8,0xf7,0xf9,0x5a,0x0c,0x8c,0xf0,0xb1,0x9d,0xd5,0x70,
+/* 0x00b630 */ 0x82,0xdb,0x6b,0xcc,0xbf,0xca,0x45,0x6e,0x0d,0xf3,0x43,0x38,0x84,0xe5,0x3b,0x87,
+/* 0x00b640 */ 0x33,0xb0,0x49,0xac,0x4b,0x32,0x74,0x93,0x8a,0x46,0xbd,0x12,0xb7,0x5f,0xf6,0x87,
+/* 0x00b650 */ 0x44,0xe7,0xb8,0x41,0x26,0xc4,0x6e,0x52,0xc6,0x18,0xf0,0x2f,0xf0,0xb1,0xa8,0x43,
+/* 0x00b660 */ 0xdc,0xe7,0xa1,0xd9,0x79,0xe8,0x64,0x59,0x44,0xf4,0x7f,0xcc,0xd4,0xa3,0x21,0x31,
+/* 0x00b670 */ 0x1c,0x14,0xb0,0x1d,0xf0,0x38,0x24,0xa0,0x46,0x74,0x4c,0x22,0x9b,0x44,0x44,0x12,
+/* 0x00b680 */ 0x8a,0xf0,0xaf,0x50,0xf0,0x1c,0x7a,0x84,0x7d,0x53,0xaa,0x4e,0x3a,0x17,0xa3,0xb3,
+/* 0x00b690 */ 0xbc,0xaa,0xcb,0x9c,0x85,0xb5,0xf1,0x19,0xa3,0xdc,0x72,0xef,0x23,0x54,0x97,0x09,
+/* 0x00b6a0 */ 0x39,0xc6,0xd0,0x5f,0x95,0x3f,0x13,0xad,0xce,0xe3,0x5f,0x7e,0x8d,0x52,0xb5,0x62,
+/* 0x00b6b0 */ 0xbe,0x5e,0xd6,0xb6,0x9a,0xa8,0x10,0x36,0xe6,0x79,0x07,0x5a,0x8e,0xb8,0xa7,0x30,
+/* 0x00b6c0 */ 0x43,0x70,0x0c,0x84,0x21,0x57,0x80,0x39,0x19,0xbc,0x22,0xce,0x93,0x6a,0x3d,0x8c,
+/* 0x00b6d0 */ 0x5f,0x3c,0x01,0xf5,0x46,0xfc,0x2b,0xed,0x2d,0xff,0x25,0x9d,0x5e,0x89,0xb9,0xaa,
+/* 0x00b6e0 */ 0xe8,0x5f,0x57,0x98,0x33,0x30,0x21,0xb4,0x0d,0x11,0x76,0x3c,0x2e,0xde,0x80,0xe6,
+/* 0x00b6f0 */ 0x21,0xd7,0x15,0xba,0xa6,0x62,0x3e,0xff,0xca,0xdc,0x43,0x52,0xca,0xe0,0x57,0x56,
+/* 0x00b700 */ 0x30,0xce,0xac,0x40,0xef,0x42,0x80,0x06,0x78,0x0f,0xc1,0x25,0x48,0x50,0xd9,0x6b,
+/* 0x00b710 */ 0x9c,0xbd,0x46,0xad,0xc9,0xa8,0x03,0xea,0xd7,0x9d,0xc6,0xfc,0x8b,0x55,0xb3,0x09,
+/* 0x00b720 */ 0xe4,0x16,0x71,0xf6,0x1d,0x68,0x93,0x58,0x4d,0x8d,0xe8,0xcf,0xc0,0x46,0xa8,0x96,
+/* 0x00b730 */ 0x66,0xcb,0x81,0x88,0xb6,0x39,0xa2,0x33,0xe4,0x25,0x83,0x85,0x62,0xfc,0x2b,0xe1,
+/* 0x00b740 */ 0x6c,0xd2,0xcc,0x4c,0x96,0xa3,0x25,0xf1,0x1f,0xc5,0xc9,0x64,0x2e,0x43,0x5f,0xc0,
+/* 0x00b750 */ 0x2e,0x7c,0x4f,0xdc,0x4e,0xc7,0xbc,0x4e,0x33,0xef,0x96,0x59,0xe0,0x5f,0x09,0x87,
+/* 0x00b760 */ 0xfa,0x86,0xf4,0x21,0x96,0xbc,0xfd,0xe2,0x92,0x73,0x5e,0xd9,0x10,0x60,0xd1,0x7b,
+/* 0x00b770 */ 0xd4,0x51,0x1f,0xde,0xa0,0x5d,0x20,0x9f,0x2a,0xce,0xbf,0xda,0xe2,0xee,0x4b,0x8c,
+/* 0x00b780 */ 0x4f,0x69,0xb9,0x64,0xfb,0x57,0x74,0xc1,0x26,0x60,0xf7,0x28,0x3a,0x0f,0xbf,0x13,
+/* 0x00b790 */ 0xe7,0xe3,0x07,0x47,0xc9,0x98,0x9b,0xd0,0x86,0xe9,0xab,0x49,0xf8,0xdc,0x8a,0xfe,
+/* 0x00b7a0 */ 0x45,0x5b,0xa2,0x95,0x17,0x91,0x6c,0x84,0x18,0xa6,0xb2,0x57,0xb0,0x15,0xfa,0x40,
+/* 0x00b7b0 */ 0xe9,0xf2,0x58,0xe1,0x5f,0x3c,0x95,0x09,0x54,0x7b,0x01,0x16,0xae,0xc4,0x03,0x62,
+/* 0x00b7c0 */ 0xf9,0x8b,0x33,0x46,0xc5,0xf3,0xb6,0x80,0xc8,0x6f,0x45,0x35,0xdc,0x75,0x68,0x09,
+/* 0x00b7d0 */ 0x6d,0x20,0x83,0x85,0x63,0xca,0x85,0xbf,0x11,0xff,0xe2,0xb6,0xd0,0xfc,0x1d,0x4e,
+/* 0x00b7e0 */ 0x4b,0xfb,0x12,0x1b,0x97,0x71,0x5b,0x68,0x45,0xb0,0xfa,0xd9,0x22,0xb7,0x99,0x76,
+/* 0x00b7f0 */ 0xd9,0xa8,0x23,0x7d,0x98,0x0a,0x58,0x5e,0x63,0xfe,0xe5,0x97,0xb8,0x58,0x78,0x96,
+/* 0x00b800 */ 0x92,0x10,0xd4,0x8f,0x6a,0x18,0x5a,0xf6,0xcb,0xb1,0xa5,0x6c,0x94,0x4c,0xb8,0x9c,
+/* 0x00b810 */ 0xad,0x2c,0x1f,0xda,0x83,0x04,0x0c,0x91,0xbf,0x33,0xbb,0x08,0xff,0x5a,0xb2,0x7c,
+/* 0x00b820 */ 0x73,0x98,0xb4,0xf8,0x48,0x4b,0x20,0xcc,0xee,0xda,0xee,0xab,0x59,0xc2,0x55,0xec,
+/* 0x00b830 */ 0x1e,0x85,0x1e,0xf0,0x11,0xb0,0xbe,0x57,0xab,0x08,0x36,0xb4,0xbb,0x87,0x56,0x04,
+/* 0x00b840 */ 0x33,0xe4,0x5f,0x1c,0x1f,0x46,0x02,0x5c,0x13,0x6a,0xc1,0x1d,0x76,0x0a,0xf8,0x5a,
+/* 0x00b850 */ 0x75,0x80,0x2b,0xa7,0x85,0xc0,0xce,0xd9,0x02,0x9c,0x3f,0xac,0x58,0x8b,0x47,0xfd,
+/* 0x00b860 */ 0x54,0x11,0x1b,0x16,0x9a,0x8d,0xf9,0x97,0x2c,0x57,0x11,0xe0,0x6b,0x5d,0xe2,0xee,
+/* 0x00b870 */ 0x9c,0x7c,0x35,0x7e,0xde,0xd7,0x2a,0x2e,0x3d,0xdd,0x33,0xc8,0xde,0x98,0xd3,0xb6,
+/* 0x00b880 */ 0x64,0x29,0xbd,0x7e,0xbc,0x61,0x6b,0x13,0x09,0xb8,0x1a,0xbf,0xee,0x2f,0xc2,0xbf,
+/* 0x00b890 */ 0x9a,0x1e,0x72,0x8f,0x44,0xae,0xc2,0x0d,0x8e,0x2c,0xdc,0x48,0x64,0x54,0x58,0x13,
+/* 0x00b8a0 */ 0x6c,0x08,0xf2,0x67,0x99,0x79,0xf0,0xa1,0x18,0x08,0xf2,0x23,0xca,0xbf,0x75,0x9c,
+/* 0x00b8b0 */ 0x1f,0x59,0x54,0xd3,0x75,0xa3,0x23,0x60,0xcc,0xbf,0xbc,0x1e,0xb5,0xfe,0x72,0x2d,
+/* 0x00b8c0 */ 0xe7,0xe8,0x45,0x1f,0xc3,0xb9,0x90,0xd7,0x43,0x08,0x42,0x08,0xc2,0x42,0xa3,0x87,
+/* 0x00b8d0 */ 0x5b,0x43,0x76,0x34,0xd2,0x35,0x85,0x8b,0xa3,0x6a,0xd8,0x1f,0xda,0x61,0xc4,0xbf,
+/* 0x00b8e0 */ 0x0e,0x80,0x2f,0xa8,0x4c,0x38,0x57,0xbb,0x50,0x49,0xa6,0x13,0x84,0x76,0x47,0xa5,
+/* 0x00b8f0 */ 0xb7,0x86,0x7b,0x0e,0x84,0xbf,0xe5,0xaa,0x66,0xa9,0xce,0xff,0x1e,0xc4,0xe2,0x3d,
+/* 0x00b900 */ 0x82,0x60,0xcc,0xbf,0xbc,0x9d,0xce,0x17,0xd4,0xfc,0xc1,0x25,0xb1,0x85,0xa3,0xe2,
+/* 0x00b910 */ 0x8f,0xc9,0xbe,0xf3,0xf0,0x1e,0xd4,0x45,0x7d,0x57,0x44,0x2e,0xa1,0x74,0x85,0x68,
+/* 0x00b920 */ 0xa1,0x46,0x7c,0x40,0xae,0x0d,0x67,0xc0,0xbf,0x9a,0x43,0xe9,0xe4,0x2c,0xbe,0x9f,
+/* 0x00b930 */ 0xf9,0x14,0x1f,0x83,0x84,0x58,0xde,0x1f,0x99,0x24,0x9c,0xc7,0x81,0xef,0xf3,0xdb,
+/* 0x00b940 */ 0xe8,0x98,0x47,0x5b,0x57,0xfa,0x7f,0xe2,0x9c,0x29,0x28,0x35,0x9a,0x8d,0xfc,0xe7,
+/* 0x00b950 */ 0x83,0x8a,0xce,0x68,0x23,0x2d,0x2f,0x52,0x39,0x98,0xa3,0xd5,0xbe,0x22,0x9f,0x50,
+/* 0x00b960 */ 0x77,0x14,0xb1,0x6e,0x0b,0x4d,0x99,0x14,0x5a,0x44,0x77,0xff,0x3b,0x54,0x29,0x2e,
+/* 0x00b970 */ 0xc2,0xbf,0x1a,0x6d,0xdf,0xeb,0x55,0x9f,0x41,0x1e,0x33,0xd2,0xd4,0x73,0x54,0xe4,
+/* 0x00b980 */ 0xb2,0x55,0x92,0xdf,0x8f,0x18,0xb0,0xf1,0x3d,0xda,0xe3,0xd9,0xc3,0x7c,0x3c,0xb5,
+/* 0x00b990 */ 0x28,0xff,0xf2,0x62,0x6e,0x0c,0x5d,0x82,0x5f,0xc6,0x6a,0x31,0x37,0x4a,0x5a,0x36,
+/* 0x00b9a0 */ 0xe2,0x19,0x31,0x27,0x6d,0x79,0x2d,0xea,0x55,0x5a,0xde,0x82,0xba,0xb8,0x33,0x44,
+/* 0x00b9b0 */ 0x15,0x31,0xce,0x90,0x7f,0xd1,0xb2,0xcb,0x8e,0xfb,0xd1,0x7f,0x89,0xfb,0xa4,0x5a,
+/* 0x00b9c0 */ 0x89,0xbb,0x2f,0x7c,0x12,0x36,0xe3,0xf8,0xb0,0x72,0x9c,0x23,0xfb,0x60,0xb4,0x7e,
+/* 0x00b9d0 */ 0xad,0xfc,0xae,0x5b,0x4b,0xde,0x99,0x69,0x45,0xac,0x10,0xff,0x3a,0x04,0x33,0x92,
+/* 0x00b9e0 */ 0x5c,0x08,0x9d,0xb1,0xbd,0xc9,0xcd,0x19,0xa6,0x6e,0x48,0xb1,0xb5,0x5c,0xb5,0x48,
+/* 0x00b9f0 */ 0xba,0xae,0xfa,0x7e,0x6a,0xdb,0x3e,0xac,0xf9,0x23,0x89,0x66,0xfc,0xeb,0x16,0xbe,
+/* 0x00ba00 */ 0x6f,0xac,0x7c,0x39,0x73,0x16,0xbe,0xc0,0x6d,0x29,0xff,0x72,0xe6,0x5d,0x38,0x8b,
+/* 0x00ba10 */ 0xe7,0x52,0xff,0xf9,0xb3,0xf0,0xdf,0xb8,0x3e,0xe5,0x57,0x69,0x57,0x9c,0x4a,0x63,
+/* 0x00ba20 */ 0x5c,0x71,0xfe,0x75,0xc4,0x4d,0x0f,0x03,0xe4,0xbd,0x7a,0x7a,0x69,0x9c,0x91,0x01,
+/* 0x00ba30 */ 0x59,0x94,0x45,0x27,0x95,0xad,0x8d,0xec,0x3b,0x6a,0xdd,0xd2,0x45,0x72,0x57,0x11,
+/* 0x00ba40 */ 0xfe,0x75,0xd1,0x3d,0x2c,0x57,0x23,0x6a,0x48,0xf2,0x8b,0x99,0x56,0x78,0xa4,0xa7,
+/* 0x00ba50 */ 0x21,0xe9,0xfc,0x8c,0xb4,0x7c,0xa8,0x8c,0x51,0x14,0xb1,0xf2,0x60,0x46,0x1a,0x33,
+/* 0x00ba60 */ 0xe4,0x5f,0x23,0x64,0xff,0x1a,0x64,0xab,0x25,0x4e,0x74,0x4c,0xf3,0x6e,0x84,0xed,
+/* 0x00ba70 */ 0xa2,0x3d,0xc9,0x7c,0x5f,0x55,0xa9,0x18,0x9a,0x4c,0x57,0xb7,0x80,0xeb,0x24,0xe0,
+/* 0x00ba80 */ 0x75,0x13,0xfe,0x35,0xe2,0xa0,0x83,0xab,0x25,0xbb,0x88,0xa6,0x89,0xbd,0x50,0x8d,
+/* 0x00ba90 */ 0xed,0xdd,0x3b,0x56,0x51,0x43,0xe0,0x21,0xb2,0x3a,0xd4,0x19,0xb8,0x0e,0x3b,0x92,
+/* 0x00baa0 */ 0x99,0x58,0x50,0x43,0xfe,0x05,0xe1,0x76,0xd8,0x8f,0xbc,0x92,0x1d,0x10,0x4f,0xb6,
+/* 0x00bab0 */ 0x49,0x01,0xec,0x4d,0x15,0xed,0x10,0x11,0xb4,0x63,0x3c,0xf6,0x8f,0x70,0x77,0x7a,
+/* 0x00bac0 */ 0x3b,0x94,0x54,0x23,0x23,0xfe,0x45,0x26,0x93,0x65,0xda,0xc9,0x03,0xb2,0x4f,0x72,
+/* 0x00bad0 */ 0xed,0x45,0x0f,0xa2,0x63,0xec,0x5e,0xc9,0xbe,0x9f,0xf9,0x7b,0xf1,0x7d,0xb1,0x6d,
+/* 0x00bae0 */ 0xc4,0x3d,0xb0,0x88,0x1c,0xd5,0x84,0xd6,0xa1,0xf2,0xd8,0x5f,0xb7,0xc0,0x35,0x35,
+/* 0x00baf0 */ 0xfe,0xb0,0x30,0xff,0x3a,0x42,0x16,0x45,0xf9,0xcb,0x34,0x3a,0x54,0xf8,0x4c,0x09,
+/* 0x00bb00 */ 0x90,0x1b,0x87,0xcb,0x62,0xeb,0x31,0xf7,0xdb,0x8a,0xbd,0xb6,0xb8,0x89,0x5a,0xd3,
+/* 0x00bb10 */ 0x5f,0x11,0x8b,0xf3,0xaf,0x11,0x66,0x35,0x1e,0xa6,0xc7,0xf8,0x10,0xc3,0xa3,0xab,
+/* 0x00bb20 */ 0xf8,0xcd,0xa4,0xbb,0x9b,0xac,0xce,0x4d,0xfc,0x80,0xb4,0xe9,0xe9,0xca,0x16,0xb8,
+/* 0x00bb30 */ 0xc5,0xcd,0x95,0xf8,0xaf,0xc8,0xfc,0x9c,0x04,0x86,0x86,0xf4,0x18,0xf2,0xaf,0x28,
+/* 0x00bb40 */ 0xd9,0xa4,0xa8,0x49,0x82,0x6b,0xe0,0xbb,0x7e,0x88,0x8a,0xde,0x94,0xf3,0x00,0xd9,
+/* 0x00bb50 */ 0xbf,0xf6,0x45,0xbc,0x5a,0xe8,0x4b,0xe3,0x18,0x47,0x73,0xff,0xa3,0xb8,0xa8,0xfe,
+/* 0x00bb60 */ 0xe5,0xdc,0x5f,0xb6,0x82,0xba,0x8e,0x4b,0x5c,0x14,0xf9,0xd1,0x81,0xa9,0xde,0x63,
+/* 0x00bb70 */ 0xce,0x44,0x99,0x1f,0x1f,0xf4,0xcd,0xa6,0xa9,0x61,0x74,0xb0,0x37,0xc4,0xf5,0xa2,
+/* 0x00bb80 */ 0x57,0x61,0x7d,0x74,0x76,0x51,0xfe,0xe5,0x5b,0xc8,0x92,0x59,0x53,0xd6,0x4b,0x96,
+/* 0x00bb90 */ 0xbd,0x48,0x57,0x2f,0x8d,0xc0,0x91,0x1e,0xa6,0x3e,0x6f,0x0f,0x90,0x73,0xe6,0x00,
+/* 0x00bba0 */ 0xc8,0xde,0xe9,0x03,0x46,0xfc,0xeb,0x20,0x9d,0x9f,0x38,0xd3,0x85,0x8e,0xc1,0x76,
+/* 0x00bbb0 */ 0xaa,0x0b,0xfb,0xc9,0x69,0xb4,0x51,0xfa,0xbb,0x04,0xaa,0xd1,0xce,0x6c,0x72,0x3c,
+/* 0x00bbc0 */ 0x92,0xc8,0xd3,0x58,0xb5,0xe3,0x4a,0x8b,0xb1,0xfe,0x45,0xd5,0x2e,0x9a,0xed,0x95,
+/* 0x00bbd0 */ 0x9c,0x32,0x81,0x26,0xe0,0x10,0xed,0xda,0x96,0xe9,0x92,0x9d,0x27,0x25,0x66,0x15,
+/* 0x00bbe0 */ 0x4c,0xc0,0x7c,0xda,0x52,0x54,0xff,0x32,0xa8,0x78,0x5e,0x72,0xfd,0xaf,0xf7,0x2d,
+/* 0x00bbf0 */ 0x29,0x62,0x66,0xfa,0xd7,0xb8,0xb1,0xb1,0x5e,0x89,0xfa,0xd7,0x8f,0xa1,0xf6,0xb0,
+/* 0x00bc00 */ 0xde,0x91,0xc3,0x90,0x77,0x6b,0xfc,0x6b,0x6a,0xa1,0xfb,0x8d,0xf7,0xad,0xf3,0xe5,
+/* 0x00bc10 */ 0x61,0x36,0x37,0xff,0xeb,0x1b,0xdc,0x4b,0x2c,0xfd,0xf6,0xf5,0xaf,0xdc,0xfc,0xaf,
+/* 0x00bc20 */ 0x22,0xa0,0x60,0x6a,0x58,0x11,0xfd,0x6b,0x3c,0xb7,0xe5,0xa1,0x22,0xeb,0x95,0x52,
+/* 0x00bc30 */ 0xf6,0xaf,0x90,0x15,0xfd,0xab,0x2c,0x2f,0x35,0xac,0x54,0xfd,0xcb,0x28,0x35,0x2c,
+/* 0x00bc40 */ 0x03,0x2e,0x18,0xd7,0xff,0xca,0xf7,0xab,0x4c,0xcf,0x6a,0x01,0xff,0x43,0x53,0xfd,
+/* 0x00bc50 */ 0x6b,0x7f,0x01,0x77,0xca,0x6f,0xa2,0x7f,0xa5,0x18,0x25,0xf5,0xbb,0x4f,0xd7,0xf5,
+/* 0x00bc60 */ 0x69,0xc9,0xfa,0xd7,0xb5,0x02,0xae,0x92,0x39,0xa9,0x61,0x16,0xf5,0xaf,0x42,0x57,
+/* 0x00bc70 */ 0xca,0x72,0xd8,0x61,0xa2,0x34,0xfd,0xcb,0xf7,0xc7,0xd0,0xbf,0xbe,0x59,0xfd,0x2f,
+/* 0x00bc80 */ 0x33,0x90,0x8e,0x3f,0x3c,0x72,0x5b,0xfa,0x17,0xd3,0xa5,0x65,0x84,0x95,0x94,0xff,
+/* 0x00bc90 */ 0x95,0x0f,0xd2,0x9f,0xd2,0xf8,0x57,0xb1,0xfc,0xaf,0x76,0xa3,0xae,0x98,0xda,0xe5,
+/* 0x00bca0 */ 0x30,0xce,0xff,0x32,0x04,0xfa,0x1a,0xcd,0xb9,0xf1,0x87,0xdf,0x96,0xfe,0x65,0xc5,
+/* 0x00bcb0 */ 0xff,0xb0,0x68,0x66,0x59,0x09,0xfe,0x87,0x45,0xc1,0xff,0x93,0xfe,0x65,0x96,0xff,
+/* 0x00bcc0 */ 0xb5,0xe3,0xf6,0xf5,0x2f,0xa1,0x10,0xff,0x2a,0x19,0x1c,0x57,0xde,0x1b,0xc6,0xfa,
+/* 0x00bcd0 */ 0x57,0xe9,0xf9,0x5f,0x66,0xf5,0xbf,0x4c,0xf4,0x2f,0xc8,0xe3,0x5f,0xb7,0xa1,0x7f,
+/* 0x00bce0 */ 0x3d,0x6a,0xa6,0x7f,0xe5,0xbe,0x9f,0x73,0x81,0xba,0x7f,0x09,0xb7,0xab,0x7f,0x59,
+/* 0x00bcf0 */ 0xf6,0x3f,0xb4,0xac,0x7f,0x89,0xa6,0x87,0x40,0x7d,0x8e,0xd8,0xfc,0x42,0xfe,0x87,
+/* 0x00bd00 */ 0xaf,0x96,0xaa,0x7f,0x1d,0x82,0x7b,0x0b,0xe9,0x5f,0x08,0xb6,0x79,0x0a,0x7d,0xea,
+/* 0x00bd10 */ 0xde,0x9c,0x96,0x9f,0x66,0xfe,0x8e,0xde,0xe7,0x44,0xe5,0x5f,0x5d,0xa5,0xeb,0x5f,
+/* 0x00bd20 */ 0xfa,0x40,0x8e,0xb4,0xff,0x61,0xce,0x3c,0x3b,0xf3,0x26,0x53,0xdf,0x72,0x30,0x47,
+/* 0x00bd30 */ 0x79,0xfc,0x96,0xf5,0xaf,0x9e,0x6f,0x59,0xff,0x2a,0x6e,0x0b,0xa0,0x71,0x34,0xef,
+/* 0x00bd40 */ 0x1f,0x53,0xff,0x4a,0xe7,0x7f,0x29,0xe1,0xc1,0x05,0x57,0xc7,0x9c,0x20,0xe8,0xf2,
+/* 0x00bd50 */ 0xbf,0xac,0x4f,0x6f,0x5e,0x52,0x9e,0xa4,0xf8,0x1f,0x6a,0xfc,0x2b,0x6d,0x0b,0x30,
+/* 0x00bd60 */ 0x3d,0x6f,0x32,0xa7,0x67,0x27,0xdc,0xd9,0x2c,0xea,0x5f,0x12,0xdf,0xce,0x4c,0xc4,
+/* 0x00bd70 */ 0x6e,0xc1,0x7d,0x98,0xb4,0xcc,0xab,0xf9,0x28,0xfc,0x6f,0x02,0x01,0x2f,0xc0,0x87,
+/* 0x00bd80 */ 0xd0,0x70,0xd2,0x9d,0xaa,0xbc,0xe9,0x38,0x45,0xc7,0xac,0x64,0x5a,0xb4,0xa8,0x60,
+/* 0x00bd90 */ 0x8d,0x7f,0x55,0xe9,0xcb,0x2e,0x9f,0xf1,0xed,0x40,0x13,0xe2,0x21,0xa8,0x8d,0x93,
+/* 0x00bda0 */ 0xff,0x7b,0x1d,0x1c,0xef,0xad,0x15,0xfa,0xea,0x99,0x97,0xa1,0x2f,0xdc,0xf8,0x41,
+/* 0x00bdb0 */ 0xdf,0x7e,0x32,0xbd,0x7d,0x3d,0xb5,0x0b,0x82,0xd8,0xe1,0x87,0xbe,0x62,0xfc,0xcb,
+/* 0x00bdc0 */ 0x27,0x05,0x2b,0x16,0x9e,0x64,0xf7,0x55,0x74,0x61,0x39,0x71,0x2f,0x06,0x7e,0xec,
+/* 0x00bdd0 */ 0xac,0xaf,0x90,0xe8,0xfd,0x61,0xfa,0x5c,0x27,0x3a,0x28,0xe1,0xdd,0xa9,0xe7,0x5f,
+/* 0x00bde0 */ 0xb6,0xdc,0xb4,0xc1,0xfe,0xf0,0x38,0xcd,0x5d,0xc2,0xe4,0xdf,0xfa,0x39,0xfd,0x47,
+/* 0x00bdf0 */ 0x45,0xf9,0xab,0xf6,0x4d,0x9b,0xa5,0xc6,0x1f,0x72,0xb5,0xa2,0x03,0x13,0x02,0xfe,
+/* 0x00be00 */ 0x0a,0x94,0x1b,0xeb,0x5f,0xcd,0x12,0x1f,0x95,0x41,0xe3,0x2e,0x77,0x93,0x73,0xb7,
+/* 0x00be10 */ 0xe7,0x1c,0xae,0x0d,0xb8,0xdf,0xba,0xe7,0x15,0x38,0x2f,0x47,0x87,0x56,0xd2,0x0b,
+/* 0x00be20 */ 0x8a,0xd5,0xe7,0xf8,0x1d,0xe4,0x68,0x7d,0xb9,0x88,0xfe,0x65,0x6b,0x3b,0xec,0x56,
+/* 0x00be30 */ 0xab,0xb3,0xc5,0xdd,0xa9,0x45,0xff,0x22,0xfe,0x0e,0xda,0xea,0xa7,0x8f,0xfc,0x6a,
+/* 0x00be40 */ 0x90,0x3a,0xbf,0xd1,0x07,0x76,0x42,0xf8,0x77,0xb6,0xad,0x6b,0xcd,0x67,0xb6,0x71,
+/* 0x00be50 */ 0x54,0xc8,0xff,0x70,0xb5,0xf6,0x7d,0x56,0x51,0x57,0x1c,0x3f,0x9c,0xe0,0xbe,0xa4,
+/* 0x00be60 */ 0xf9,0x44,0x4d,0x30,0x8c,0x5b,0xb7,0x2c,0x1d,0x64,0x56,0xc0,0x31,0x78,0x42,0xda,
+/* 0x00be70 */ 0xa0,0xf0,0xf7,0x55,0x23,0xe5,0x03,0x8c,0x5f,0x4d,0x35,0x32,0xc8,0xff,0xaa,0x93,
+/* 0x00be80 */ 0xc8,0xd9,0x6f,0x15,0xfc,0x3a,0x1a,0x88,0x73,0x83,0x4c,0x10,0xfa,0x3c,0xb5,0xed,
+/* 0x00be90 */ 0xce,0x6d,0x88,0x81,0x70,0x7c,0xbe,0xc4,0xd1,0x52,0x26,0x07,0x85,0x5a,0x91,0x1b,
+/* 0x00bea0 */ 0x60,0x6e,0xc9,0x79,0x6d,0x19,0xfe,0x25,0xe5,0xfa,0xf7,0xde,0x45,0xaf,0x23,0x22,
+/* 0x00beb0 */ 0x58,0x60,0x39,0xe4,0x60,0x6d,0x71,0x42,0xf3,0x22,0x02,0x5a,0x12,0xea,0x09,0x52,
+/* 0x00bec0 */ 0x67,0xa1,0x85,0xbc,0x27,0x41,0xd7,0x34,0x76,0xe4,0x71,0xad,0xa2,0xa5,0xa6,0x7f,
+/* 0x00bed0 */ 0x79,0x68,0x6d,0xe5,0xc7,0x33,0x47,0xfd,0xbb,0xc6,0xd0,0x23,0xf0,0xa3,0x58,0x75,
+/* 0x00bee0 */ 0x35,0xb7,0x12,0x95,0xa3,0xdd,0x78,0x4e,0xc8,0xb9,0x72,0x73,0xa3,0x67,0x4d,0xef,
+/* 0x00bef0 */ 0xcc,0xa4,0x6f,0xa5,0xe3,0x4f,0x05,0x32,0x38,0xc4,0x9d,0x23,0x83,0x73,0xfd,0x0f,
+/* 0x00bf00 */ 0x3b,0x64,0xfd,0x4b,0xfe,0x3e,0x04,0x1c,0x76,0x0b,0x0c,0x2f,0x9e,0xf0,0xd4,0x57,
+/* 0x00bf10 */ 0xf1,0xf3,0x10,0x4b,0x0e,0xe9,0x2d,0xe0,0xae,0xb7,0xfd,0x85,0x74,0x98,0x5a,0x98,
+/* 0x00bf20 */ 0x06,0x64,0xff,0xf9,0x66,0xf1,0xa5,0x0a,0xa6,0xc3,0xfb,0x8e,0x3e,0xfe,0xf0,0x8e,
+/* 0x00bf30 */ 0xdc,0xfc,0xaf,0x24,0xf3,0x01,0xdc,0xf2,0xb4,0x61,0xb7,0x6a,0x4a,0xd9,0x4e,0xf3,
+/* 0x00bf40 */ 0xf5,0xc4,0x3f,0xc8,0x63,0x22,0x72,0x32,0xa6,0x38,0x7d,0x84,0x59,0x25,0xea,0xf9,
+/* 0x00bf50 */ 0x17,0x97,0xc7,0xbf,0xe8,0x65,0xe3,0xd7,0xc3,0x01,0xec,0x4f,0x54,0xce,0xf4,0x5d,
+/* 0x00bf60 */ 0x83,0x96,0x0a,0x5a,0xf6,0xcb,0x73,0xc5,0xd6,0x2c,0x3d,0x9b,0x62,0x5e,0x85,0x27,
+/* 0x00bf70 */ 0x61,0x33,0x26,0x83,0x5b,0x44,0xbd,0xff,0x61,0xc7,0x9d,0xba,0xfd,0xeb,0x7e,0xa9,
+/* 0x00bf80 */ 0x9c,0x82,0x7d,0xe2,0x3c,0x89,0xeb,0x26,0xff,0xaf,0xa3,0x30,0x07,0x5c,0xdd,0xe8,
+/* 0x00bf90 */ 0x1c,0xbc,0x0e,0xd5,0xe7,0x3a,0x14,0x69,0x8c,0xec,0x3b,0x29,0xb4,0x0d,0xeb,0xfd,
+/* 0x00bfa0 */ 0x0f,0x05,0x03,0xfe,0x45,0xcd,0x24,0x1d,0xdf,0x81,0x41,0x5c,0x27,0x70,0x2b,0xcb,
+/* 0x00bfb0 */ 0x4e,0xc3,0xeb,0x78,0xf9,0x98,0xbd,0x09,0xbd,0x04,0x87,0xd6,0x55,0xef,0x20,0x63,
+/* 0x00bfc0 */ 0xca,0xb5,0x79,0x56,0xf9,0xd7,0x0a,0x56,0xf7,0x9c,0xfe,0x93,0xf6,0x62,0xdc,0x25,
+/* 0x00bfd0 */ 0xd9,0x5b,0xc8,0xcf,0x26,0x82,0xfd,0x60,0xa7,0xd7,0xc5,0x7b,0x84,0x90,0xec,0x28,
+/* 0x00bfe0 */ 0x05,0xfb,0x82,0xc2,0x00,0x79,0x51,0x6f,0xd0,0x5e,0x95,0x69,0xfe,0x95,0x4b,0xa9,
+/* 0x00bff0 */ 0x46,0xe5,0x22,0x5f,0x0d,0x31,0xd7,0x28,0xe3,0xf3,0xdd,0x24,0x2d,0xdc,0x27,0x93,
+/* 0x00c000 */ 0xaf,0xc3,0x17,0xd0,0x8c,0x5d,0xf1,0x19,0x03,0x9e,0x9b,0x62,0x03,0x76,0x8f,0xf7,
+/* 0x00c010 */ 0xf9,0x2a,0x2e,0xe8,0xf9,0x97,0x4d,0x77,0xae,0x6b,0xf6,0x2c,0x55,0x72,0xbb,0x56,
+/* 0x00c020 */ 0x0a,0x1b,0x7b,0x66,0x48,0x70,0x6d,0xca,0x6a,0xc1,0xdd,0x7b,0xcf,0xc7,0x92,0x36,
+/* 0x00c030 */ 0x86,0x95,0x13,0xc1,0xf0,0xce,0x8f,0xd9,0xb1,0x1c,0xfe,0xa5,0x3f,0x67,0x86,0xf8,
+/* 0x00c040 */ 0x58,0xe4,0x07,0x54,0x38,0xe8,0x7e,0x76,0x6b,0xe4,0x35,0xef,0x31,0xdc,0x9a,0xdc,
+/* 0x00c050 */ 0xb0,0x19,0x46,0x83,0xd7,0x71,0xbd,0xc8,0x7b,0x66,0x10,0xda,0x15,0xfb,0x9c,0xf2,
+/* 0x00c060 */ 0xa6,0xb2,0x1c,0xff,0xc3,0x5c,0xfe,0xd5,0xc5,0xc5,0xd0,0x2c,0x38,0x20,0x36,0x87,
+/* 0x00c070 */ 0xa8,0x10,0x26,0xae,0x03,0x7f,0x88,0xdb,0x16,0xfe,0x9f,0x9a,0x03,0x48,0xae,0xc8,
+/* 0x00c080 */ 0x5c,0x03,0xcf,0xf5,0x06,0x68,0x46,0xcf,0x4c,0x51,0xef,0x7f,0xd8,0x94,0x1b,0x7f,
+/* 0x00c090 */ 0xd8,0xe4,0x21,0x1f,0x3f,0xc0,0xcd,0xfe,0x4b,0xbb,0x07,0xed,0xe2,0xd6,0x79,0x64,
+/* 0x00c0a0 */ 0xb5,0x8b,0x74,0x75,0x7a,0xc5,0x2a,0xf2,0x77,0xaa,0x54,0xf9,0xa3,0xc6,0xa6,0xf7,
+/* 0x00c0b0 */ 0x3f,0xf4,0x4d,0xd5,0xf3,0xaf,0xe3,0x55,0x15,0x61,0x76,0x60,0x8f,0xcf,0xb7,0x84,
+/* 0x00c0c0 */ 0xac,0x0e,0xbb,0xbd,0x27,0xbc,0x82,0xaa,0x30,0xa4,0x8b,0xb4,0xf4,0x57,0xec,0x60,
+/* 0x00c0d0 */ 0x61,0x2b,0x08,0x4b,0x9c,0x1e,0x8e,0xdf,0xa9,0xf7,0x3f,0xcc,0xe8,0x5f,0x48,0xd3,
+/* 0x00c0e0 */ 0xbf,0x18,0x1f,0xbe,0x26,0x34,0x73,0x2e,0x60,0xe2,0x78,0xd8,0xd6,0x0a,0xd3,0xe4,
+/* 0x00c0f0 */ 0x2e,0xaf,0xac,0x7f,0x51,0xda,0x15,0xe0,0xdc,0xb8,0x52,0xc8,0xf5,0x3f,0xcc,0xe1,
+/* 0x00c100 */ 0x05,0x4b,0xdc,0xa7,0xfb,0x46,0x07,0xae,0xfb,0xda,0x44,0xf7,0xe7,0x34,0x11,0x0c,
+/* 0x00c110 */ 0x5a,0x17,0xd4,0x9d,0x8e,0x5c,0xf5,0x50,0x27,0xc3,0xa5,0x31,0xe7,0x68,0xfc,0x17,
+/* 0x00c120 */ 0x72,0x21,0xb0,0x9d,0xa3,0xf1,0xa2,0xf1,0x87,0x6d,0x41,0xf7,0xe6,0xc8,0x55,0xe9,
+/* 0x00c130 */ 0x14,0xcc,0x97,0xdc,0xef,0x4d,0x9e,0x8a,0x6f,0xc0,0x5c,0x11,0x62,0x93,0x07,0xc9,
+/* 0x00c140 */ 0x1f,0x6c,0x0c,0xf2,0x9b,0x23,0x83,0xe2,0x83,0x54,0xfa,0x79,0xcf,0x39,0x0f,0xeb,
+/* 0x00c150 */ 0xf3,0xbf,0x9a,0xaa,0xf4,0x94,0xca,0x51,0xbe,0x03,0x25,0xa5,0x68,0x30,0x00,0x4e,
+/* 0x00c160 */ 0x40,0x02,0x8a,0x82,0x17,0x5c,0x10,0x21,0x5d,0x53,0xbd,0x4e,0x1e,0x23,0x01,0xbf,
+/* 0x00c170 */ 0x05,0xcd,0x61,0x8e,0x80,0xf8,0x80,0xde,0xff,0x10,0xd2,0x26,0x1b,0x32,0xe8,0x90,
+/* 0x00c180 */ 0x4d,0x0e,0x23,0xf5,0x35,0x5d,0xa4,0xa5,0xac,0x7d,0x0f,0x7e,0x4c,0xb4,0x07,0x64,
+/* 0x00c190 */ 0x69,0xac,0xa6,0x83,0x4c,0x78,0x2f,0x26,0x63,0xda,0xef,0xf5,0x20,0x56,0xd2,0xe7,
+/* 0x00c1a0 */ 0x7f,0x55,0xb1,0x39,0xfc,0xcb,0xa1,0x78,0x5a,0xce,0x5a,0xec,0x0c,0x2c,0xf4,0x93,
+/* 0x00c1b0 */ 0x1f,0x89,0x37,0x74,0x67,0xac,0x62,0xd4,0x73,0x40,0xd1,0x3d,0x6b,0x6c,0x07,0xc8,
+/* 0x00c1c0 */ 0x1b,0x7b,0x81,0x62,0xe0,0x6c,0x10,0x7f,0xa8,0xfe,0xb0,0x7f,0xc2,0xd0,0xdc,0xae,
+/* 0x00c1d0 */ 0xa7,0x3a,0xdd,0x31,0x74,0x0f,0x5c,0xc7,0x7b,0x83,0xae,0xcd,0xd5,0xff,0x21,0x5c,
+/* 0x00c1e0 */ 0x81,0x46,0xd1,0x1f,0x5b,0x44,0xc6,0xe0,0xd6,0xce,0x49,0x4a,0x6a,0x58,0x76,0xfc,
+/* 0x00c1f0 */ 0x61,0x30,0x97,0x7f,0x95,0xc7,0x98,0x21,0x41,0xb1,0xdd,0x70,0x7e,0x02,0xd7,0xe3,
+/* 0x00c200 */ 0xa4,0x2b,0x11,0xd9,0x45,0x5a,0xde,0x16,0xcb,0x3d,0x74,0x0c,0x96,0x6b,0x84,0x0d,
+/* 0x00c210 */ 0xe5,0xc4,0x1f,0x72,0xb9,0xfc,0x8b,0xef,0x75,0x0a,0xb4,0xda,0x32,0xef,0xee,0x75,
+/* 0x00c220 */ 0x92,0x6d,0x89,0x6b,0xfd,0x13,0xbe,0x77,0xc6,0xa3,0x30,0xc6,0x3e,0x41,0x15,0x31,
+/* 0x00c230 */ 0x32,0xa6,0xba,0xc5,0xe3,0xce,0x14,0x02,0x9b,0x5c,0x58,0xff,0xaa,0x4b,0xb8,0xe2,
+/* 0x00c240 */ 0xde,0x66,0xef,0x5a,0x4f,0x5d,0xcc,0x39,0x5e,0xf6,0x00,0xac,0x45,0x73,0x62,0x5c,
+/* 0x00c250 */ 0x9c,0x6c,0x88,0x1b,0x97,0xb5,0x62,0x5f,0x9c,0xec,0x32,0x34,0x11,0xcc,0x39,0xea,
+/* 0x00c260 */ 0x7c,0x5a,0xfd,0x14,0xb3,0x3e,0x4f,0xff,0xda,0x00,0x72,0xb2,0x6a,0x3d,0x72,0x43,
+/* 0x00c270 */ 0x44,0xf4,0x8b,0x27,0x02,0xc8,0x25,0x84,0x17,0xf8,0x47,0xec,0xf3,0xd0,0xb3,0x1e,
+/* 0x00c280 */ 0x6a,0xb3,0x5c,0x55,0x8f,0x24,0x2c,0x0f,0x1e,0xf4,0x96,0x6b,0x9f,0x5a,0xaf,0xec,
+/* 0x00c290 */ 0x5f,0x38,0x87,0x7f,0x5d,0xb4,0xaf,0x94,0xed,0xf8,0xa8,0xc8,0x15,0x9e,0x76,0xcf,
+/* 0x00c2a0 */ 0x1a,0xdb,0x1c,0x4c,0x5a,0x5e,0x80,0x67,0xd0,0x9c,0xe1,0xaa,0x6e,0xf4,0x1e,0x1d,
+/* 0x00c2b0 */ 0x33,0xec,0x6c,0x47,0xcb,0xaa,0x55,0xb3,0xc4,0x01,0xe5,0xfb,0x44,0x39,0x7a,0x09,
+/* 0x00c2c0 */ 0x26,0x33,0xa9,0x97,0x64,0x6d,0x8b,0xbf,0xce,0x94,0xc3,0x7f,0x92,0xed,0xcf,0xbd,
+/* 0x00c2d0 */ 0xb2,0xe2,0x3b,0xb6,0xa3,0xbd,0x0f,0x86,0x5c,0x8b,0x9d,0x2f,0xc0,0xa7,0x78,0x46,
+/* 0x00c2e0 */ 0x8a,0x1c,0xc3,0x4e,0x6b,0x8e,0xf4,0xdf,0xd5,0xf8,0xd7,0xcb,0x05,0xf5,0xaf,0x16,
+/* 0x00c2f0 */ 0xec,0xde,0xa7,0xc8,0x5e,0x0b,0x48,0x8b,0xbc,0x82,0xb8,0xf6,0x0d,0x86,0x25,0xdb,
+/* 0x00c300 */ 0xdf,0x2f,0x95,0xd3,0xfb,0x75,0x98,0x3e,0x44,0x16,0x65,0x8c,0x53,0x3f,0x15,0x56,
+/* 0x00c310 */ 0xf9,0x17,0xab,0xab,0x4f,0xd4,0x96,0xe4,0xaf,0x39,0xa9,0xb6,0xd5,0x20,0x90,0x7f,
+/* 0x00c320 */ 0xfd,0x69,0xf8,0x08,0xdf,0x1d,0xe7,0x87,0xd1,0x4d,0xb8,0x41,0x68,0x17,0x7f,0x8d,
+/* 0x00c330 */ 0xf9,0x1c,0x7e,0x4f,0x66,0x59,0xb6,0x46,0xdc,0xa4,0xf8,0x03,0x60,0x55,0xff,0xaa,
+/* 0x00c340 */ 0xca,0xd9,0xbf,0xb8,0x27,0xc2,0xd3,0xf0,0x1f,0xa0,0x1a,0x73,0xff,0x5c,0x59,0xd5,
+/* 0x00c350 */ 0x7e,0xc6,0x33,0x07,0x3b,0x16,0xa0,0x33,0xf8,0x4d,0x90,0xeb,0x57,0x9e,0x81,0x67,
+/* 0x00c360 */ 0x60,0xe7,0xe1,0xf2,0x54,0xb8,0x49,0x53,0xc4,0x5e,0x2e,0xac,0x7f,0x01,0xd7,0x5d,
+/* 0x00c370 */ 0xe1,0xb1,0xbd,0x01,0x35,0x0b,0xed,0x22,0xe2,0xc8,0x04,0xcf,0x09,0x13,0x30,0xc2,
+/* 0x00c380 */ 0xbd,0x5e,0x35,0x53,0xf2,0x75,0xa3,0x11,0x42,0xc4,0x66,0x4a,0xf6,0x6e,0x72,0x68,
+/* 0x00c390 */ 0x7e,0x06,0xe9,0xf4,0x2f,0x7d,0x9d,0x23,0xd9,0xae,0x59,0x80,0x04,0x08,0xc1,0x9f,
+/* 0x00c3a0 */ 0xdd,0x8d,0x1c,0x4c,0x6c,0x87,0x3f,0xe1,0xb4,0x87,0x0f,0xe3,0xbd,0xa2,0x20,0xd9,
+/* 0x00c3b0 */ 0xeb,0x17,0x0e,0x41,0x0f,0x16,0x92,0x8e,0xb7,0xd7,0x83,0xb6,0x7f,0x19,0xc4,0x1f,
+/* 0x00c3c0 */ 0x8a,0xfe,0x14,0x79,0xe9,0x5d,0x87,0xc6,0x6e,0xd7,0xab,0x4e,0x9f,0x70,0x81,0xf7,
+/* 0x00c3d0 */ 0x27,0x5d,0xdb,0xe4,0xb2,0x17,0xf3,0xa9,0x31,0x5a,0x12,0x2e,0xe2,0x27,0x93,0xae,
+/* 0x00c3e0 */ 0x58,0xa6,0x42,0x90,0x01,0xff,0x22,0x4f,0x13,0xd9,0xbf,0x2e,0x41,0x4b,0x67,0xf9,
+/* 0x00c3f0 */ 0x1b,0xcc,0x31,0x7c,0x5d,0x6c,0x1d,0xd9,0x18,0x63,0x7e,0x43,0x43,0x7a,0xc8,0x98,
+/* 0x00c400 */ 0xc9,0x49,0xf8,0xca,0xd3,0x7c,0x94,0xae,0x97,0x76,0xce,0x8c,0x2b,0xfb,0x57,0xb5,
+/* 0x00c410 */ 0x9e,0x7f,0xc9,0x5d,0x57,0xc9,0xb3,0xdc,0x16,0x72,0x25,0x99,0x6e,0xf8,0x08,0x9e,
+/* 0x00c420 */ 0xbc,0xc4,0x0f,0x33,0x83,0xf0,0xae,0x38,0x57,0xe2,0xbb,0x99,0x27,0xb6,0xdc,0x74,
+/* 0x00c430 */ 0xee,0x93,0x3a,0x46,0x50,0x15,0x2c,0x45,0xd9,0xfc,0x6b,0x7b,0x8e,0xfe,0x75,0x91,
+/* 0x00c440 */ 0x80,0x4f,0xe0,0x02,0xae,0x7d,0x8a,0x1b,0x5c,0x58,0x0d,0xe1,0xd1,0xc0,0x3b,0xee,
+/* 0x00c450 */ 0x7e,0x42,0x6a,0xfa,0xf0,0x6c,0x6a,0x19,0xba,0x83,0xbc,0x33,0x05,0x29,0x18,0x45,
+/* 0x00c460 */ 0x5e,0xf5,0x7c,0xc8,0xc4,0x0b,0xf3,0x2f,0x81,0x80,0xcb,0xb0,0x8e,0x1c,0xbf,0xef,
+/* 0x00c470 */ 0x14,0xd0,0x72,0xf4,0x22,0xfe,0x81,0xc4,0x85,0x1f,0xda,0x2d,0xac,0x53,0x2c,0xee,
+/* 0x00c480 */ 0x05,0x32,0xe6,0x31,0xa9,0x6a,0x3f,0x7a,0x4d,0x4b,0x08,0xd2,0xf4,0xaf,0xa9,0x7a,
+/* 0x00c490 */ 0xfd,0x0b,0xe8,0x12,0xd0,0xba,0xc0,0x62,0x55,0xbd,0x83,0x83,0x28,0xbb,0x9b,0x9e,
+/* 0x00c4a0 */ 0x3c,0x25,0x72,0xf2,0xf4,0x49,0xcd,0xf2,0xb3,0x8c,0xbd,0x52,0x7f,0xbd,0x23,0x6a,
+/* 0x00c4b0 */ 0x53,0x3f,0x15,0xd6,0xeb,0x5f,0x1a,0x29,0x06,0x77,0x0a,0xd1,0xca,0x8f,0xad,0xa2,
+/* 0x00c4c0 */ 0x0b,0x33,0xcb,0xe1,0x02,0x61,0xc7,0x3c,0xae,0x8c,0x93,0x37,0x64,0x80,0x7c,0x1f,
+/* 0x00c4d0 */ 0x46,0x24,0x63,0xbc,0x64,0xe1,0x48,0x8b,0x76,0x9e,0x57,0xf5,0xaf,0x3b,0xf4,0x6c,
+/* 0x00c4e0 */ 0x8b,0xc6,0xb3,0xa5,0x60,0x82,0xa5,0x2e,0xbb,0xe4,0x6d,0x73,0x93,0x5a,0xa0,0x50,
+/* 0x00c4f0 */ 0xdb,0xc3,0x2f,0x6d,0x74,0x8c,0x6d,0x82,0x55,0x0e,0x8a,0x4c,0xf7,0x54,0xf5,0x3c,
+/* 0x00c500 */ 0xff,0x59,0x49,0xf9,0x5f,0x76,0xd5,0x88,0xbe,0x35,0x5b,0x1a,0xa3,0x8e,0xa3,0xe9,
+/* 0x00c510 */ 0xfa,0x5f,0x55,0x96,0xf2,0xbf,0x6c,0x32,0x98,0x40,0x1b,0x84,0x57,0xc2,0x99,0x2e,
+/* 0x00c520 */ 0xc9,0xbd,0x3f,0x5d,0xff,0xab,0x94,0xfc,0xaf,0xb9,0x88,0xc7,0xba,0x62,0xcd,0xe4,
+/* 0x00c530 */ 0x84,0xaf,0xf1,0xaf,0x49,0x7a,0xfe,0x75,0x38,0x0f,0x90,0xae,0x8a,0x34,0xcb,0xde,
+/* 0x00c540 */ 0x40,0x96,0xfb,0x87,0xda,0x60,0xff,0x11,0x02,0x46,0x8c,0xfc,0x37,0x0a,0x83,0x83,
+/* 0x00c550 */ 0x14,0xa4,0x28,0x15,0x82,0x8c,0xb3,0x50,0xe2,0x6e,0xf2,0xc4,0x95,0x90,0xff,0x35,
+/* 0x00c560 */ 0x43,0x05,0xdd,0x39,0x5d,0xcb,0xbf,0x47,0x81,0xfc,0x7d,0xda,0x4d,0xf5,0xaf,0xa3,
+/* 0x00c570 */ 0x54,0xa7,0xe6,0x2e,0x23,0xb9,0xe5,0x55,0x9d,0x54,0xb7,0x99,0x4f,0xf3,0xaf,0x73,
+/* 0x00c580 */ 0xa6,0xf7,0x12,0xc9,0x4c,0x4b,0x8a,0xd0,0xd2,0xec,0xba,0x78,0x62,0x34,0xa1,0xd5,
+/* 0x00c590 */ 0xff,0xca,0xe3,0x5f,0x79,0x60,0xc4,0xf8,0x82,0x62,0xc8,0x91,0xf1,0xdf,0x90,0xf9,
+/* 0x00c5a0 */ 0x97,0x89,0xfe,0x55,0xa1,0x82,0x26,0x4a,0xcd,0x32,0x5d,0x75,0xb4,0x40,0xf0,0x78,
+/* 0x00c5b0 */ 0x9a,0x7f,0x61,0x0b,0xd9,0x5e,0xdc,0xaf,0x0a,0x76,0xf1,0x85,0xf9,0x57,0x41,0x30,
+/* 0x00c5c0 */ 0xe4,0xbe,0xa2,0xbd,0xe2,0xa8,0x07,0xce,0xef,0x3d,0xe9,0x96,0xb6,0xa1,0xba,0x22,
+/* 0x00c5d0 */ 0xfc,0x2b,0x07,0xb4,0xc8,0x7e,0x95,0xca,0x35,0xcb,0x5e,0x5a,0xda,0x32,0x9b,0xec,
+/* 0x00c5e0 */ 0x13,0x46,0xaf,0xf2,0xaf,0xa1,0xad,0xc6,0xf7,0x87,0xaa,0xed,0xa1,0x2b,0x9d,0xff,
+/* 0x00c5f0 */ 0xf5,0x54,0x78,0x42,0xdb,0xb6,0xd2,0x9f,0x52,0xeb,0x7f,0x19,0xf1,0xaf,0x2c,0xa0,
+/* 0x00c600 */ 0x54,0x5b,0x0e,0xab,0x2d,0xd9,0xfe,0x87,0xa9,0x0c,0xff,0x1a,0x67,0x8b,0x3c,0x9e,
+/* 0x00c610 */ 0x1b,0xd4,0xc0,0xec,0xb2,0x93,0xd0,0xa0,0x5d,0x1b,0x46,0xb2,0xba,0xe8,0x4f,0xe2,
+/* 0x00c620 */ 0xb4,0x11,0xff,0xca,0x01,0x2d,0xba,0x6a,0xcb,0x3a,0x70,0x7f,0x9c,0x80,0x6b,0x05,
+/* 0x00c630 */ 0xf9,0x97,0x35,0xa0,0x7a,0xf7,0xad,0xae,0xca,0xf6,0xdf,0xd8,0xc5,0x15,0xbf,0xcc,
+/* 0x00c640 */ 0xef,0x3c,0x15,0xfb,0x73,0x55,0x46,0xf1,0x30,0x5d,0x72,0x08,0xd6,0x52,0xa5,0xab,
+/* 0x00c650 */ 0xf1,0x1f,0xf9,0x18,0xf3,0xb9,0x55,0xfd,0x2b,0xe4,0xca,0x91,0xab,0x9a,0xd3,0x5d,
+/* 0x00c660 */ 0x41,0x9f,0x31,0xff,0xca,0x07,0xf6,0xac,0x96,0x2e,0xed,0xf8,0xad,0x06,0x3d,0x1a,
+/* 0x00c670 */ 0xf2,0xaf,0x02,0xc0,0x9e,0x69,0x29,0xa3,0x4e,0xe9,0xbe,0x4c,0x17,0x98,0xe4,0x7f,
+/* 0x00c680 */ 0xed,0xd7,0x27,0xf2,0x20,0xb9,0xf2,0x35,0xb8,0xc3,0x91,0x47,0x75,0xc1,0x66,0xc0,
+/* 0x00c690 */ 0x66,0xfc,0x37,0x4a,0xd4,0x65,0xb0,0x3e,0x58,0x31,0xc6,0x7c,0x61,0x31,0xff,0x2b,
+/* 0x00c6a0 */ 0xbb,0xda,0xf2,0x8b,0x91,0x5d,0x6c,0x56,0x82,0x92,0x5c,0x9a,0x59,0xf3,0xdf,0xa8,
+/* 0x00c6b0 */ 0x32,0xd6,0xb6,0x2a,0x72,0x5a,0xfa,0x7a,0x91,0x17,0x47,0xb3,0x5a,0x04,0x42,0xc4,
+/* 0x00c6c0 */ 0x3e,0xca,0xe3,0x5f,0xc6,0x22,0x97,0x37,0x63,0x2f,0x29,0x64,0xcd,0x73,0xed,0x62,
+/* 0x00c6d0 */ 0xce,0xe3,0x55,0xeb,0x7f,0x2d,0x63,0x77,0x79,0x4a,0x92,0x3b,0x75,0xeb,0x4e,0x7e,
+/* 0x00c6e0 */ 0x3f,0x67,0xd3,0xfe,0x1b,0x9e,0x12,0xe6,0x39,0x87,0x64,0xf1,0xb4,0xfe,0x97,0xc2,
+/* 0x00c6f0 */ 0xbf,0x16,0x94,0xa8,0x7f,0xe5,0x26,0x82,0x5d,0x30,0xe0,0x5f,0x79,0x80,0xe5,0xd3,
+/* 0x00c700 */ 0x85,0xe4,0xe0,0x36,0xf2,0xbf,0xea,0x28,0xed,0xca,0x6a,0x69,0x4e,0x77,0xd9,0xe6,
+/* 0x00c710 */ 0xc4,0x4a,0xc9,0xff,0x5a,0x66,0xcf,0x6a,0xd1,0x87,0x76,0x9c,0xce,0xe8,0x5f,0x78,
+/* 0x00c720 */ 0x8a,0x99,0xfe,0x15,0x5a,0x6c,0xd4,0xe5,0xc2,0x99,0xf8,0xc3,0x68,0x11,0xfd,0x6b,
+/* 0x00c730 */ 0x91,0x0c,0x42,0x2e,0x23,0xfd,0xeb,0xee,0xac,0xf8,0x43,0xc7,0x24,0x93,0x73,0x42,
+/* 0x00c740 */ 0x8b,0x1c,0xd8,0x96,0x6e,0xc1,0x79,0xfa,0xd7,0x5a,0x79,0xbd,0x50,0x2e,0xff,0xca,
+/* 0x00c750 */ 0x02,0xd5,0x32,0x08,0xd1,0x42,0xcc,0x9a,0x46,0x76,0x4b,0xc8,0xcb,0xff,0xc2,0x85,
+/* 0x00c760 */ 0xf8,0x97,0xde,0x40,0x5e,0x61,0x52,0xae,0xe2,0xf9,0x5f,0xbd,0x0a,0xff,0xc2,0x66,
+/* 0x00c770 */ 0x3a,0x9a,0x5c,0x88,0xd9,0x6e,0x9a,0xff,0xc5,0x1a,0xd5,0xaf,0xbc,0x4b,0x05,0xd8,
+/* 0x00c780 */ 0x59,0xff,0x37,0x06,0x3f,0x89,0x21,0x1d,0xff,0xe2,0x4c,0xce,0x87,0xe5,0x59,0xf9,
+/* 0x00c790 */ 0x5f,0x13,0xba,0xae,0x94,0x3b,0x81,0xac,0xeb,0x5f,0x2e,0xc3,0xae,0x30,0x39,0x27,
+/* 0x00c7a0 */ 0x24,0x0b,0xf2,0xaf,0x42,0x80,0x37,0xec,0x0a,0xf1,0xa9,0xc9,0xb8,0x30,0xff,0xca,
+/* 0x00c7b0 */ 0x05,0xc8,0x3f,0xea,0xcb,0xb2,0x46,0x9c,0xc8,0xd6,0xbf,0xea,0x92,0xbe,0x84,0xb6,
+/* 0x00c7c0 */ 0x7f,0x99,0xeb,0x5f,0x62,0x81,0xca,0x62,0xea,0x39,0x7c,0x98,0xb3,0x90,0xff,0x45,
+/* 0x00c7d0 */ 0x01,0x25,0x59,0x4a,0xc1,0xa3,0xc2,0x63,0x48,0xd7,0x91,0x1e,0x1d,0xff,0xca,0x9d,
+/* 0x00c7e0 */ 0xc3,0x4c,0xe1,0x36,0x31,0xdb,0x3f,0x5c,0xbf,0x5e,0xb4,0x4b,0xe5,0x5f,0xdb,0x0d,
+/* 0x00c7f0 */ 0xf3,0xbf,0xb4,0x0c,0x23,0x5c,0x34,0xff,0x6b,0xf2,0xd8,0x43,0x85,0xf9,0x97,0x53,
+/* 0x00c800 */ 0x05,0xe0,0x4a,0x31,0xcd,0x70,0x06,0xe6,0x8e,0x12,0x76,0xdc,0x04,0xb7,0xc2,0x6d,
+/* 0x00c810 */ 0x12,0xfb,0x01,0x93,0x80,0x53,0x78,0xae,0xe0,0xee,0x64,0x02,0x90,0x17,0x7f,0xe8,
+/* 0x00c820 */ 0x29,0xe8,0xb6,0x21,0x10,0xe0,0x83,0x03,0xac,0x97,0x4e,0x66,0x0d,0x3d,0xc6,0x27,
+/* 0x00c830 */ 0xf9,0x38,0x0a,0xb0,0xeb,0xc2,0xde,0xe4,0xc3,0xa4,0x8b,0x95,0x8f,0xfa,0x85,0xf4,
+/* 0x00c840 */ 0xaf,0x9c,0xc4,0xa2,0xad,0xf5,0x65,0xc3,0x10,0xa3,0xd7,0x7d,0xf5,0x15,0x3e,0xcf,
+/* 0x00c850 */ 0xf3,0xb0,0x42,0xe2,0x10,0xda,0x05,0xcf,0xb1,0x35,0xd8,0x09,0xe5,0x00,0x6a,0x61,
+/* 0x00c860 */ 0x7a,0x33,0xff,0x8d,0xde,0xbb,0x12,0xe8,0xff,0x48,0xbb,0xfe,0xe0,0x28,0xaa,0x3c,
+/* 0x00c870 */ 0xff,0xe6,0x75,0x93,0xbc,0x4c,0x77,0x32,0xed,0x4c,0xf4,0x40,0x28,0xe9,0x99,0x0c,
+/* 0x00c880 */ 0x61,0x82,0x43,0x08,0x13,0x8c,0x0a,0x21,0x3c,0x06,0xd6,0xca,0x02,0x2b,0xb9,0x5d,
+/* 0x00c890 */ 0xab,0x0e,0xab,0x2c,0x6b,0x70,0x73,0x5b,0xd4,0x1e,0x65,0xe5,0xee,0xd8,0xba,0xb8,
+/* 0x00c8a0 */ 0xe5,0x9d,0x2f,0x33,0x23,0x4c,0x0c,0x9a,0x01,0xb1,0x16,0x3c,0xef,0x6a,0x40,0x5c,
+/* 0x00c8b0 */ 0x71,0x8f,0xdd,0xca,0x0f,0x56,0x41,0x76,0xa1,0x89,0x61,0x1d,0xf9,0xa1,0x39,0xca,
+/* 0x00c8c0 */ 0x55,0xe0,0xd4,0x1a,0xd8,0x01,0xe3,0x8a,0x82,0x47,0x56,0x12,0x08,0x70,0xef,0xbd,
+/* 0x00c8d0 */ 0xee,0xf9,0x99,0x99,0xcc,0xb8,0xc7,0x5f,0xdf,0x7a,0xfd,0x66,0xc8,0x74,0xf7,0xfb,
+/* 0x00c8e0 */ 0xf1,0x79,0x9f,0xef,0xe7,0xf3,0x1d,0x66,0xc7,0x86,0x83,0xa8,0x17,0x56,0x83,0x4e,
+/* 0x00c8f0 */ 0x5c,0xab,0xa1,0xfd,0xe1,0x6a,0x65,0x07,0xa8,0xd6,0x02,0x11,0xff,0x1c,0x35,0x87,
+/* 0x00c900 */ 0xff,0x86,0x8e,0x65,0xf4,0x07,0x97,0x70,0xa7,0xb4,0xd2,0xe1,0x70,0xbe,0xe5,0xac,
+/* 0x00c910 */ 0xda,0xa3,0x6d,0x0e,0x07,0x5c,0x7c,0xfa,0x92,0xf7,0x08,0x1b,0xe1,0xff,0x90,0x06,
+/* 0x00c920 */ 0x6d,0xf5,0x02,0xa9,0x2a,0xc9,0x57,0xea,0xeb,0x45,0x0e,0xfc,0x15,0x60,0x44,0xd8,
+/* 0x00c930 */ 0x22,0xaf,0xa5,0xcd,0x46,0x6f,0xaf,0x95,0xde,0xcc,0x35,0xb6,0x11,0x70,0x7b,0xca,
+/* 0x00c940 */ 0x62,0x8d,0xeb,0x14,0x2e,0x6f,0x61,0x26,0xa2,0x52,0x5b,0xd2,0xff,0x10,0xf3,0xef,
+/* 0x00c950 */ 0xc9,0x97,0x7f,0xe8,0xd1,0x2c,0xbd,0x74,0x91,0xfa,0x33,0x0d,0xe8,0x4b,0x32,0x06,
+/* 0x00c960 */ 0x8e,0xe1,0x3e,0x1a,0xcc,0x5e,0x80,0xde,0x53,0x9a,0xc2,0xf2,0xee,0x1f,0xd9,0x13,
+/* 0x00c970 */ 0xd5,0x25,0xf2,0xf8,0x6f,0xb0,0x47,0xc0,0x82,0x5d,0xda,0xca,0x91,0xea,0x61,0xc0,
+/* 0x00c980 */ 0x5c,0x68,0xd0,0xdb,0x8e,0xa3,0x53,0x7f,0x05,0x6c,0x51,0x44,0xbc,0xb3,0xbd,0x1d,
+/* 0x00c990 */ 0x43,0xff,0xf6,0x21,0xfa,0xb5,0xe0,0x43,0x07,0x29,0x2e,0xe0,0xfe,0x87,0xfc,0x5f,
+/* 0x00c9a0 */ 0x76,0xfe,0x61,0x5c,0x6a,0xe4,0x81,0x53,0x91,0x1a,0xfd,0x51,0x70,0xb0,0xd9,0xb5,
+/* 0x00c9b0 */ 0x14,0xc1,0x92,0x63,0x24,0x80,0xc4,0x58,0x59,0x04,0x12,0x71,0x0b,0xe1,0x1b,0x8f,
+/* 0x00c9c0 */ 0x55,0x89,0x73,0x89,0xd1,0xc9,0xf2,0x0f,0x0f,0x93,0x59,0x8e,0xae,0x76,0x78,0x16,
+/* 0x00c9d0 */ 0x1d,0x26,0xf7,0xfa,0x42,0xed,0xf0,0x0f,0xae,0xd7,0x89,0x3d,0x36,0x6d,0x0d,0xdc,
+/* 0x00c9e0 */ 0x7a,0xe4,0xa5,0x8e,0x7b,0xe9,0xbb,0xea,0x7f,0x3c,0x91,0x20,0xb7,0x3d,0x6f,0xfe,
+/* 0x00c9f0 */ 0x61,0xe0,0x04,0xb8,0xa1,0x6c,0x08,0x5a,0x98,0xf8,0xe8,0x4f,0xae,0x07,0xb0,0xac,
+/* 0x00ca00 */ 0xc2,0x28,0x3e,0xee,0x70,0x6a,0xdf,0xeb,0x31,0x07,0x23,0xff,0x0d,0xdc,0xdb,0x2c,
+/* 0x00ca10 */ 0x56,0xa6,0x11,0x53,0x0b,0xd4,0xff,0x12,0xc6,0x29,0x4a,0x5a,0x44,0x58,0x36,0x2f,
+/* 0x00ca20 */ 0xba,0x0d,0xee,0xc7,0x96,0x2b,0xa6,0x11,0x70,0x93,0xf9,0xdb,0x68,0xc2,0xcf,0xc8,
+/* 0x00ca30 */ 0xf3,0x77,0x2c,0x39,0x4a,0x91,0xc2,0x38,0x36,0xa8,0xe7,0xfc,0xf9,0x87,0xb3,0x8d,
+/* 0x00ca40 */ 0x03,0xae,0x5e,0xd3,0x30,0xfd,0x42,0x8f,0x4f,0x26,0x2b,0x6b,0xc8,0x55,0x72,0x97,
+/* 0x00ca50 */ 0x66,0x09,0xdb,0xfe,0xa8,0xa4,0x0a,0x67,0x13,0x4f,0x1a,0xff,0x95,0x9e,0x7f,0x68,
+/* 0x00ca60 */ 0xb8,0x3c,0x01,0x1e,0x2c,0xa3,0x2d,0xa7,0xc5,0x7e,0xb1,0x06,0xa3,0x36,0x58,0xd9,
+/* 0x00ca70 */ 0xcc,0x68,0xaf,0x2e,0x5f,0x7d,0x25,0xd8,0x64,0x9a,0xab,0xf1,0x04,0x78,0x23,0x01,
+/* 0x00ca80 */ 0xc3,0xe0,0xbf,0x3a,0x26,0xe2,0x2f,0x2b,0x47,0xbe,0xe7,0x57,0xfe,0xbc,0xfa,0x2c,
+/* 0x00ca90 */ 0x78,0x6b,0x53,0xd5,0x8f,0x6b,0xdc,0xd0,0x0a,0x0e,0x33,0x55,0x5d,0x33,0xfc,0x08,
+/* 0x00caa0 */ 0xbc,0x44,0xe6,0x46,0xba,0x9e,0x2e,0x79,0x5c,0x7d,0x8b,0xec,0xe4,0xfc,0x97,0xfe,
+/* 0x00cab0 */ 0x1e,0xe6,0xcc,0x3f,0x44,0x06,0xb6,0x8a,0x82,0x7e,0x12,0xf1,0x4d,0x7b,0x00,0x02,
+/* 0x00cac0 */ 0x53,0xff,0x00,0xcf,0xc7,0x7e,0x98,0xc9,0x33,0x87,0x24,0x17,0x7c,0x18,0xf4,0xeb,
+/* 0x00cad0 */ 0xcc,0x75,0xee,0xfc,0xc3,0x46,0x16,0xac,0x4b,0xb4,0x8c,0x81,0x5b,0xc4,0x13,0x29,
+/* 0x00cae0 */ 0x8f,0x09,0x73,0xd4,0x5b,0x03,0x17,0x49,0xf7,0x39,0x61,0xcc,0x71,0x96,0x51,0xc6,
+/* 0x00caf0 */ 0xf4,0x0f,0xa1,0x7d,0x3c,0x9c,0xff,0xd2,0x71,0x65,0xbe,0xfc,0xc3,0x46,0x60,0x09,
+/* 0x00cb00 */ 0xda,0xce,0x83,0x51,0x85,0x57,0x1a,0x1a,0x50,0x46,0x9b,0xb9,0x0a,0xc9,0xce,0x00,
+/* 0x00cb10 */ 0x42,0x39,0xdd,0xe0,0x25,0x77,0x83,0xa7,0x48,0x3e,0xfd,0x97,0x1e,0x1c,0x93,0xb7,
+/* 0x00cb20 */ 0x32,0xb4,0xb5,0xd1,0x83,0x2d,0xdb,0x85,0x5a,0x40,0x87,0x15,0xf3,0x3f,0x9c,0xc2,
+/* 0x00cb30 */ 0xf6,0xf3,0xbe,0x6e,0x5e,0x7f,0x19,0xea,0xf9,0x87,0xc1,0x9c,0xf8,0x6b,0x39,0x32,
+/* 0x00cb40 */ 0x02,0x2f,0xb2,0xd2,0x69,0xb0,0x77,0x68,0x17,0xae,0xd8,0xe6,0xd8,0x0d,0x3b,0x61,
+/* 0x00cb50 */ 0x2d,0x9e,0xae,0x08,0x3f,0x21,0xef,0x81,0xda,0x56,0x29,0x2c,0x89,0xdc,0x92,0x8e,
+/* 0x00cb60 */ 0x7e,0x6a,0x38,0x87,0xfe,0xeb,0x0d,0xbe,0xb5,0x2e,0xd1,0xf7,0xd8,0x73,0xc2,0x0f,
+/* 0x00cb70 */ 0xb1,0x82,0x50,0x0e,0xbc,0xf2,0x4e,0xab,0xb3,0x93,0xce,0x63,0xbc,0xb2,0x98,0x69,
+/* 0x00cb80 */ 0x47,0x90,0x75,0xbe,0xcb,0x99,0xf0,0xc1,0x7b,0x5f,0x1f,0xa7,0x13,0xfc,0x37,0x50,
+/* 0x00cb90 */ 0x42,0x08,0x66,0xb6,0x6e,0x64,0x42,0x30,0x15,0xdf,0x6d,0xdd,0xba,0x39,0xd2,0x21,
+/* 0x00cba0 */ 0xae,0x5f,0xc1,0xd2,0x0e,0x77,0x72,0x3a,0xc6,0xba,0xd1,0x09,0x13,0xbc,0x0c,0x98,
+/* 0x00cbb0 */ 0x88,0xbf,0x18,0xc8,0xa2,0xef,0x3c,0x13,0x43,0x35,0xa1,0x0a,0xbf,0xa4,0xca,0xa3,
+/* 0x00cbc0 */ 0x2a,0xe4,0x95,0xb3,0x48,0x14,0x3c,0x89,0xba,0x08,0x0d,0x4e,0x73,0x20,0x66,0x53,
+/* 0x00cbd0 */ 0x51,0x82,0xff,0xd2,0xf3,0x37,0xf2,0xe6,0x1f,0x6a,0x73,0xc3,0xc2,0xc8,0x9e,0x9b,
+/* 0x00cbe0 */ 0xae,0xc5,0x2b,0x2a,0x4e,0x05,0xe2,0x34,0x68,0x62,0xd6,0x88,0x23,0xd6,0xaf,0xf8,
+/* 0x00cbf0 */ 0x41,0xa2,0x6d,0xdf,0x1e,0xc3,0xff,0x30,0xe1,0x3f,0x6f,0xca,0x46,0x5b,0x43,0x49,
+/* 0x00cc00 */ 0x41,0x59,0xe0,0x2b,0xf0,0x1f,0xc0,0xb3,0x7c,0xe6,0x47,0x70,0x1f,0xf8,0x0a,0xd4,
+/* 0x00cc10 */ 0xb3,0x23,0xe5,0x7d,0xea,0x61,0xf0,0x20,0xa6,0x13,0xec,0xac,0x64,0x1e,0x63,0x01,
+/* 0x00cc20 */ 0xff,0x0d,0xa5,0x8c,0xc0,0x61,0x31,0xa4,0x3a,0x90,0x34,0xc5,0xa1,0x92,0x90,0x9d,
+/* 0x00cc30 */ 0xf9,0x1f,0x42,0x3b,0x08,0x01,0x87,0x89,0xf1,0x5f,0x60,0xbf,0xaa,0xfb,0xcf,0xa7,
+/* 0x00cc40 */ 0xf2,0x0f,0xb7,0xe4,0xc3,0x5f,0x71,0xb0,0x65,0x95,0x4a,0xef,0x2a,0x7c,0x56,0x7d,
+/* 0x00cc50 */ 0x03,0xa9,0x2d,0x92,0x32,0x10,0x04,0x6f,0x40,0xa7,0x56,0x56,0xc9,0xf2,0x3c,0x51,
+/* 0x00cc60 */ 0x51,0xf9,0x87,0x6b,0x39,0xdc,0xee,0x14,0x9f,0x30,0x84,0x84,0x5e,0x4e,0x77,0xce,
+/* 0x00cc70 */ 0x12,0x3b,0xd5,0x6a,0x6c,0x0a,0x7b,0x5b,0xc1,0x83,0x62,0x06,0xff,0xf5,0x52,0x1e,
+/* 0x00cc80 */ 0x4f,0x8c,0x36,0x0b,0xab,0x46,0x7d,0x06,0xf4,0xe1,0x95,0x14,0x76,0x39,0xcf,0x91,
+/* 0x00cc90 */ 0xbe,0xa5,0x96,0x70,0xe0,0x75,0x7c,0x8e,0x34,0x6d,0x28,0x0f,0x97,0xb5,0x26,0xf3,
+/* 0x00cca0 */ 0x0f,0x9d,0x39,0xf5,0x5f,0xd8,0xf0,0x99,0x64,0xb2,0xaf,0x2a,0x1e,0xb4,0x5a,0xb6,
+/* 0x00ccb0 */ 0x0a,0x17,0x7d,0x63,0x76,0xde,0x67,0x10,0x7c,0x41,0xde,0xc6,0x6e,0xfa,0xcd,0xc6,
+/* 0x00ccc0 */ 0x69,0x86,0x6d,0x40,0xc7,0x5f,0x73,0xb2,0xf0,0x97,0x98,0xf0,0x9f,0x57,0x64,0x22,
+/* 0x00ccd0 */ 0x9c,0x83,0x1a,0x7a,0x13,0x58,0x50,0x95,0x9d,0x97,0xe7,0x5b,0x4d,0x24,0xbb,0x33,
+/* 0x00cce0 */ 0x0a,0x9b,0xac,0xf2,0xb3,0x81,0x02,0xf8,0xab,0x29,0x22,0x0d,0xfb,0x59,0xcb,0xbc,
+/* 0x00ccf0 */ 0x5d,0xae,0x98,0x10,0x9a,0xfa,0x02,0x73,0x3b,0xbc,0x04,0x17,0x82,0x43,0xb8,0xb6,
+/* 0x00cd00 */ 0xa3,0x2b,0x02,0x1f,0x04,0x2f,0x90,0xb9,0x04,0xb5,0xd2,0xa5,0xdf,0xf8,0x54,0x34,
+/* 0x00cd10 */ 0x37,0xfe,0x8a,0x25,0x37,0x1e,0xa8,0x66,0xe0,0x84,0x12,0x68,0xe1,0x93,0x55,0xf5,
+/* 0x00cd20 */ 0x94,0x7e,0x2f,0x4f,0x9f,0x7e,0x1e,0x05,0xb6,0xb9,0xb5,0x39,0xee,0xd4,0xa4,0x97,
+/* 0x00cd30 */ 0xdb,0x7f,0xa3,0x06,0xd3,0xc9,0x93,0xb7,0xf8,0x10,0x76,0xbc,0x12,0xda,0x08,0x67,
+/* 0x00cd40 */ 0x0d,0x4a,0x1b,0xcc,0x77,0x88,0x5c,0xf6,0xf5,0x4f,0x50,0x9e,0xb3,0x11,0xcc,0x25,
+/* 0x00cd50 */ 0x66,0x9c,0xc4,0x05,0x8e,0x28,0xe6,0x7f,0x4f,0x24,0x13,0x7f,0xcd,0xf5,0x95,0xae,
+/* 0x00cd60 */ 0xe3,0xfe,0xf3,0x8d,0x11,0x79,0x1d,0x17,0x86,0xdc,0x37,0x6c,0x59,0x23,0x58,0xf5,
+/* 0x00cd70 */ 0x3e,0xe3,0xcb,0xfe,0x13,0x1c,0xa5,0x41,0xc9,0xba,0x09,0xf9,0x87,0x13,0xfd,0x37,
+/* 0x00cd80 */ 0x14,0x93,0x11,0x44,0x12,0x87,0x7b,0x11,0x61,0x84,0xd5,0xa2,0xa5,0xe3,0x02,0xac,
+/* 0x00cd90 */ 0x07,0xa3,0xa6,0x06,0x52,0x4e,0xe8,0x7f,0x91,0x99,0x7f,0x98,0xbd,0x3f,0xf4,0x59,
+/* 0x00cda0 */ 0xa2,0x09,0x6c,0x75,0xa6,0xea,0x56,0xdd,0x61,0x52,0x1f,0x5b,0x3d,0x5a,0xda,0x87,
+/* 0x00cdb0 */ 0xaf,0x91,0xfa,0x38,0xed,0xd3,0x40,0xf7,0x87,0x4b,0x86,0x2d,0x5c,0xff,0x15,0xe2,
+/* 0x00cdc0 */ 0x9f,0xea,0xd1,0xc7,0xd7,0x70,0xde,0xfc,0xc3,0xae,0x16,0xf8,0x09,0xfa,0x7c,0xad,
+/* 0x00cdd0 */ 0x7d,0x50,0xd8,0x00,0x2b,0xc1,0x5b,0x4c,0x28,0xf7,0x8d,0xf0,0x08,0xf8,0xe5,0x1d,
+/* 0x00cde0 */ 0x4c,0xda,0x0c,0x67,0x60,0xbd,0xb3,0xd7,0xc0,0x29,0x6b,0x26,0xe8,0xbf,0x5a,0xf4,
+/* 0x00cdf0 */ 0x20,0x4c,0xef,0x21,0x2b,0x16,0x66,0x1f,0xa0,0x97,0x5e,0x42,0x87,0x14,0x3b,0xab,
+/* 0x00ce00 */ 0xcc,0x22,0x82,0x97,0xc0,0xac,0x63,0x5d,0x38,0xa5,0xff,0xda,0x4d,0xf8,0xfb,0x93,
+/* 0x00ce10 */ 0xed,0x3f,0x8f,0x99,0x5c,0x3d,0xf1,0x02,0xbc,0x0f,0x5e,0xc5,0x0e,0x26,0x60,0x47,
+/* 0x00ce20 */ 0x4c,0x4f,0xb4,0x54,0xea,0xa3,0xc3,0xb3,0x87,0x39,0x22,0x76,0x42,0x77,0xe2,0x53,
+/* 0x00ce30 */ 0x51,0x7d,0x9e,0x1f,0xcd,0xe6,0xbf,0x74,0xed,0x36,0x73,0x01,0x55,0x85,0x71,0xf5,
+/* 0x00ce40 */ 0x06,0xe8,0xd7,0x2c,0x87,0x84,0x57,0xe9,0x00,0xe9,0x63,0x4a,0x81,0x5a,0xb0,0x83,
+/* 0x00ce50 */ 0x34,0xc6,0x2d,0xfb,0xa4,0x26,0xd5,0x20,0xa7,0xde,0x0e,0xe6,0xc1,0x5f,0xfb,0x6c,
+/* 0x00ce60 */ 0x1c,0x26,0x3f,0xc2,0xf5,0x7a,0x5c,0xe4,0xb5,0xef,0xc5,0x8b,0xfa,0xd0,0xeb,0x15,
+/* 0x00ce70 */ 0x2e,0x83,0x2f,0x07,0x9b,0xb4,0x0f,0x76,0x07,0x92,0x9f,0x8a,0xeb,0xf8,0xeb,0x48,
+/* 0x00ce80 */ 0x16,0xfe,0x8a,0xd1,0xf9,0x90,0x05,0xcf,0x60,0x99,0x95,0xfd,0xba,0x1d,0x62,0x7e,
+/* 0x00ce90 */ 0x0e,0xc2,0x02,0xf1,0x36,0xf8,0x67,0xed,0x83,0x2b,0xc2,0x54,0x70,0x92,0xce,0x99,
+/* 0x00cea0 */ 0xb4,0xa5,0x11,0x74,0x1b,0x79,0x3b,0x46,0xfe,0x61,0x30,0x13,0x7f,0x2d,0x97,0xf6,
+/* 0x00ceb0 */ 0xea,0x86,0x81,0x4f,0xa0,0x5f,0x41,0xb7,0x72,0x80,0xed,0x0f,0x77,0x0a,0x4f,0xb0,
+/* 0x00cec0 */ 0x8d,0x22,0x96,0x7a,0xac,0x2e,0xd0,0xa9,0xd5,0xfa,0xd0,0x5e,0xba,0x49,0x36,0x0e,
+/* 0x00ced0 */ 0xea,0xbf,0xc9,0xe7,0x3f,0xff,0x3b,0x3d,0xf0,0xa1,0xed,0x4c,0xed,0xa5,0xd2,0xef,
+/* 0x00cee0 */ 0x51,0x59,0x66,0x88,0xae,0x1a,0x73,0x47,0x3a,0x07,0x6a,0x63,0xcd,0x7b,0xd9,0x25,
+/* 0x00cef0 */ 0xbd,0x6a,0x98,0x96,0x1b,0x7f,0xe1,0xe9,0xc0,0x08,0x90,0xc2,0x85,0xe7,0x2a,0xfd,
+/* 0x00cf00 */ 0x1e,0xab,0x97,0xce,0xb4,0x74,0x82,0x65,0xf9,0x36,0x01,0xba,0xa7,0x45,0x11,0x3a,
+/* 0x00cf10 */ 0x96,0x8d,0x83,0x5f,0xe3,0xfc,0x90,0x94,0xaf,0x17,0xf5,0xfd,0x3c,0x34,0x9e,0x97,
+/* 0x00cf20 */ 0x3e,0x1c,0x6a,0x99,0xc8,0xcb,0xcd,0x37,0xd2,0xab,0xd4,0x65,0x4c,0xf8,0xb0,0x4b,
+/* 0x00cf30 */ 0x5b,0xdd,0x23,0xb9,0x4c,0x74,0x59,0xd7,0xdc,0x4c,0x1a,0x66,0xf0,0x5f,0x57,0x74,
+/* 0x00cf40 */ 0xfc,0x15,0x9b,0x80,0xbf,0xe8,0x7d,0x56,0x6e,0x83,0x45,0x98,0xb5,0x20,0xce,0x76,
+/* 0x00cf50 */ 0xc5,0xaa,0xb8,0xe1,0x24,0xa6,0xbb,0xc1,0x11,0x78,0x53,0xcf,0xa1,0x4a,0x7e,0x2a,
+/* 0x00cf60 */ 0x5a,0x90,0xff,0x6a,0x67,0x8e,0xa3,0x1d,0x8c,0x71,0xe6,0x52,0xd0,0x25,0x8c,0xed,
+/* 0x00cf70 */ 0xfa,0x8e,0xfa,0xaf,0x54,0x10,0xa4,0x77,0x83,0x07,0xfe,0xea,0x58,0x19,0x0f,0x3a,
+/* 0x00cf80 */ 0x52,0x7d,0xce,0x15,0xe7,0x7f,0x08,0xd8,0x71,0x7a,0x6d,0x8e,0xca,0xd7,0x45,0xe8,
+/* 0x00cf90 */ 0xbf,0xd2,0xf9,0x2f,0x23,0x5b,0x35,0xd4,0xe3,0x63,0x2d,0x4f,0xe6,0xc4,0xe6,0xde,
+/* 0x00cfa0 */ 0x62,0xfd,0x0f,0x1b,0xb1,0x3b,0xab,0xe5,0x9e,0xf4,0x3e,0xcb,0x8a,0xf2,0x3f,0x64,
+/* 0x00cfb0 */ 0x7e,0x95,0x6d,0xbc,0x82,0xdb,0xed,0xdc,0x25,0xcb,0x8b,0xd3,0x7f,0xb9,0x19,0xc8,
+/* 0x00cfc0 */ 0x1a,0x60,0x69,0x90,0x8e,0xe3,0x89,0x4b,0xc7,0xb3,0xfa,0x14,0xf4,0x3f,0xec,0xea,
+/* 0x00cfd0 */ 0xd9,0xc5,0x2f,0xfd,0x90,0xbd,0xa2,0xb0,0x8b,0xa3,0x2d,0xc8,0xbe,0xe7,0xbb,0xfa,
+/* 0x00cfe0 */ 0x1f,0x2e,0x2c,0xe1,0x43,0xa6,0x8d,0x1f,0x28,0x05,0x60,0x9e,0x4c,0xdd,0x62,0xfc,
+/* 0x00cff0 */ 0x0f,0xf9,0x25,0xcc,0x64,0x5f,0x70,0x93,0x8e,0xb6,0x6e,0x25,0x1c,0xe9,0x8b,0xd3,
+/* 0x00d000 */ 0x7f,0x71,0xd9,0x17,0xab,0x5f,0x40,0x5b,0x06,0xa5,0xf9,0xc2,0x09,0xaf,0x91,0x6d,
+/* 0x00d010 */ 0x78,0x09,0x66,0x13,0x61,0x93,0xe1,0x2f,0x23,0x90,0x74,0x35,0xa5,0xf4,0x0d,0x1c,
+/* 0x00d020 */ 0xc7,0x79,0x9f,0x69,0x4e,0xfc,0x45,0x16,0x66,0x3e,0x38,0x76,0x74,0x86,0xcb,0xd3,
+/* 0x00d030 */ 0x0a,0x19,0x14,0xa7,0xff,0xca,0xce,0x69,0xd7,0xcf,0xfd,0xd0,0x84,0xa5,0xad,0x90,
+/* 0x00d040 */ 0xfe,0xeb,0x70,0x96,0xb6,0x2b,0x9d,0xff,0x4a,0x6b,0x39,0xb7,0xb2,0xdd,0x51,0x40,
+/* 0x00d050 */ 0xff,0xa5,0x4e,0x7c,0x01,0x5a,0x51,0x9d,0x7a,0x42,0xd1,0x5b,0x1c,0xac,0xa5,0x36,
+/* 0x00d060 */ 0xa3,0x4f,0x6e,0xfc,0xb5,0x70,0x22,0x11,0x16,0x91,0xd9,0x16,0xeb,0xba,0x98,0x8b,
+/* 0x00d070 */ 0x23,0x9b,0xf9,0x5d,0xf4,0x5f,0x15,0xff,0x5f,0xfd,0x57,0xa9,0xce,0x7f,0x95,0x87,
+/* 0x00d080 */ 0x97,0xe9,0x2d,0x52,0x36,0x46,0x9b,0x24,0xff,0x70,0x42,0xe0,0x6e,0xa3,0x88,0xec,
+/* 0x00d090 */ 0x42,0x4b,0x3a,0xed,0x85,0x13,0x8c,0xd8,0xd2,0xef,0xe4,0x7f,0x48,0x37,0xe4,0x17,
+/* 0x00d0a0 */ 0x32,0x31,0x1a,0x4a,0xeb,0x53,0xd8,0xff,0xb0,0x0e,0xf0,0x40,0x63,0xfc,0x17,0xd2,
+/* 0x00d0b0 */ 0xe9,0x98,0x12,0x4e,0xc7,0xa4,0x33,0x62,0xc5,0xf8,0x1f,0xc2,0x34,0x23,0xbb,0x0c,
+/* 0x00d0c0 */ 0x46,0x4c,0xfe,0x2b,0xfc,0x0f,0x17,0xe3,0x8a,0xf0,0xdf,0xd0,0x40,0x5c,0x98,0xbb,
+/* 0x00d0d0 */ 0x4f,0x01,0xff,0xc3,0x06,0x6c,0x69,0xe1,0xa2,0xbc,0x99,0xf4,0x7b,0xe8,0x3e,0x53,
+/* 0x00d0e0 */ 0x47,0x0a,0x39,0xbe,0x27,0x91,0x7f,0x08,0xf2,0xf1,0x5f,0xff,0x4e,0xac,0x2a,0x0f,
+/* 0x00d0f0 */ 0xcc,0xb4,0xc5,0xc4,0xf9,0xaf,0xc9,0xf4,0x5f,0x77,0xea,0x77,0x4c,0xc8,0xb8,0xcf,
+/* 0x00d100 */ 0xf3,0x79,0x60,0x66,0x8f,0xa0,0x1a,0x9b,0xd3,0xf8,0xaf,0x41,0x53,0x2f,0xfc,0x0e,
+/* 0x00d110 */ 0xfa,0xaf,0x1d,0x49,0xb6,0x14,0xd6,0x2e,0x37,0xeb,0xd5,0x96,0x2b,0x12,0x7d,0x2a,
+/* 0x00d120 */ 0x32,0x3a,0x67,0xe5,0x1f,0xce,0x9c,0xf0,0xdb,0x25,0x85,0xdf,0x9f,0x05,0xbe,0x0a,
+/* 0x00d130 */ 0xd6,0x72,0x80,0x5f,0xfa,0x51,0x16,0x59,0x36,0x33,0xe5,0xbf,0x01,0xf2,0xf3,0x5f,
+/* 0x00d140 */ 0xb6,0x78,0x11,0xd6,0x88,0xf9,0xfc,0x0f,0xd3,0x6c,0x0f,0x03,0x7a,0x92,0xe1,0x66,
+/* 0x00d150 */ 0xda,0xa2,0xee,0xcf,0x37,0x4e,0x13,0xf8,0x4b,0xa4,0x68,0x0b,0xa6,0xd1,0x5e,0x28,
+/* 0x00d160 */ 0xe2,0x18,0xd6,0x2b,0x82,0xc5,0xcd,0x1c,0x88,0x85,0x50,0xc4,0x3b,0x66,0x60,0x34,
+/* 0x00d170 */ 0xc7,0xb0,0x9c,0x51,0x2c,0xac,0x22,0x1f,0xff,0xb5,0x5e,0x2b,0x33,0x44,0x0d,0x9a,
+/* 0x00d180 */ 0xb4,0xb8,0x44,0x46,0x34,0x70,0xa0,0xba,0x92,0x93,0x89,0xd3,0xdd,0xc4,0xf4,0x55,
+/* 0x00d190 */ 0x52,0x00,0x7f,0xcd,0x8b,0xa1,0x94,0x0a,0xc9,0xcc,0x2f,0x81,0xe6,0x36,0xf0,0x89,
+/* 0x00d1a0 */ 0x6a,0xa0,0xad,0x4f,0xd0,0xec,0xf4,0xf9,0xd9,0x9c,0xf2,0xdf,0x00,0x3a,0xfe,0x92,
+/* 0x00d1b0 */ 0x74,0xfc,0x45,0x37,0x5d,0x2c,0xf8,0x5c,0xc7,0x56,0xfc,0x92,0xea,0x6a,0x17,0x3e,
+/* 0x00d1c0 */ 0x42,0xd7,0xfc,0x8b,0xcf,0xe5,0xac,0x08,0x96,0xf0,0xdf,0x48,0xc3,0x05,0x29,0x82,
+/* 0x00d1d0 */ 0xe6,0xcb,0x54,0x4b,0x23,0x5e,0xdd,0xf3,0xe3,0x38,0x98,0x70,0xc9,0xa0,0x6c,0x96,
+/* 0x00d1e0 */ 0xe5,0xf4,0xdf,0x48,0x2f,0xc4,0x2c,0x3d,0x0a,0x9b,0xf0,0xe1,0xf0,0xfd,0xa0,0x7c,
+/* 0x00d1f0 */ 0xcc,0xfb,0x19,0xbe,0x6c,0xf4,0x11,0x9f,0xc9,0xe6,0xbf,0x0a,0xfa,0x1f,0xfe,0x1d,
+/* 0x00d200 */ 0xe4,0x97,0xe4,0xbb,0xda,0xe0,0xa7,0x2c,0x6d,0x63,0x90,0x5f,0xfa,0x45,0x51,0xfe,
+/* 0x00d210 */ 0x87,0xe5,0xe9,0x40,0xcc,0xfb,0x98,0xf2,0x16,0x98,0x1d,0x24,0x6d,0x8e,0x0f,0xb3,
+/* 0x00d220 */ 0x6a,0xb1,0xb5,0xc1,0xc7,0x8a,0xf7,0x3f,0xe4,0x1b,0xfb,0x52,0x77,0xcc,0x5c,0xe7,
+/* 0x00d230 */ 0xd5,0xe8,0xee,0x7d,0x55,0xee,0x7d,0x4b,0x41,0xff,0x43,0x7e,0x62,0x7f,0x10,0x38,
+/* 0x00d240 */ 0xcf,0xcb,0xac,0xbe,0xcc,0x3f,0x24,0x72,0xde,0x0e,0x26,0x2e,0x15,0xd0,0x7f,0x75,
+/* 0x00d250 */ 0xf7,0x54,0x19,0x2d,0xdb,0x98,0x11,0x07,0x87,0xc9,0xc2,0x57,0xa9,0x3e,0xe9,0x79,
+/* 0x00d260 */ 0x4d,0x14,0x29,0xd8,0x8a,0xf1,0x3f,0x7c,0x3a,0xc1,0x7f,0xd1,0xbd,0x0d,0xcf,0x36,
+/* 0x00d270 */ 0x84,0xe3,0xa6,0xcb,0xe9,0x7d,0xa4,0xc9,0xfd,0x0f,0x4d,0x3c,0x98,0xaa,0x83,0xa3,
+/* 0x00d280 */ 0x7f,0x29,0xef,0x81,0x97,0x53,0x7d,0xbe,0x14,0x33,0x37,0xdb,0xb9,0xf5,0x5f,0x73,
+/* 0x00d290 */ 0xd2,0xb2,0xce,0xf6,0x43,0xb7,0x48,0xbf,0x87,0xd4,0xb0,0xcc,0xc6,0x64,0x9f,0x6c,
+/* 0x00d2a0 */ 0x1f,0xf2,0xc2,0xfc,0x97,0xa2,0xd7,0xa5,0x02,0x8f,0xd6,0x59,0x07,0xf9,0x38,0x9d,
+/* 0x00d2b0 */ 0xce,0x90,0x42,0xf6,0x38,0x4d,0xf8,0x6f,0xc8,0xee,0x7c,0xd9,0x6b,0xf4,0xa1,0xb0,
+/* 0x00d2c0 */ 0x34,0x24,0x52,0xc6,0xc0,0x2c,0xbd,0xe1,0x7a,0x1a,0x5b,0x76,0x11,0x3d,0x83,0xff,
+/* 0x00d2d0 */ 0xda,0x9d,0x9f,0xff,0x1a,0x5a,0xc1,0x82,0x7f,0x65,0x2d,0x23,0x4a,0xf2,0xe8,0xfe,
+/* 0x00d2e0 */ 0x72,0x66,0xe7,0x65,0x93,0xfa,0x6f,0xdc,0x22,0xf5,0xe7,0x2c,0xc3,0xc2,0x27,0xf4,
+/* 0x00d2f0 */ 0x77,0xcc,0x27,0xb2,0xc6,0x4e,0x33,0x28,0xf4,0x11,0x47,0x61,0x98,0x39,0x22,0xaa,
+/* 0x00d300 */ 0x96,0xa8,0xf0,0xbf,0x3a,0xb8,0x2e,0x80,0xbf,0x7e,0x0a,0xd4,0x23,0xd2,0x1e,0x7a,
+/* 0x00d310 */ 0x33,0xcb,0xc8,0x1c,0xb5,0x94,0xd5,0xb9,0x3e,0xe8,0x9f,0xa3,0x9a,0x23,0xb0,0x1a,
+/* 0x00d320 */ 0xfd,0x17,0x71,0xf8,0xba,0xf6,0x78,0x62,0x20,0x2f,0xff,0x95,0x0a,0x44,0x0f,0xcb,
+/* 0x00d330 */ 0x62,0x52,0x81,0x46,0x5f,0xd3,0x56,0x13,0x54,0x21,0xcb,0xbe,0x76,0x02,0x0a,0x9c,
+/* 0x00d340 */ 0x09,0x1d,0x17,0x2a,0xa1,0x8f,0x40,0x2b,0x80,0xbf,0x78,0x20,0xd2,0x17,0x60,0x50,
+/* 0x00d350 */ 0x8a,0x58,0x2f,0x00,0x9e,0x3d,0x12,0x61,0xe5,0x06,0x40,0xc5,0x13,0xe6,0x3a,0x2b,
+/* 0x00d360 */ 0x47,0xe2,0xb1,0x40,0x2f,0x3c,0x6f,0x2f,0xc6,0x7f,0xfe,0x3a,0x5e,0x18,0xb3,0x1c,
+/* 0x00d370 */ 0xb0,0x9d,0x54,0xa2,0x57,0x1a,0x42,0xf2,0x2e,0xa9,0x9a,0x5e,0x6a,0xd8,0x29,0xbf,
+/* 0x00d380 */ 0x66,0x0b,0xfa,0xce,0x82,0xbe,0x48,0xe9,0x73,0xcb,0xfe,0x94,0xa8,0x2c,0x3f,0x29,
+/* 0x00d390 */ 0xfe,0xfa,0x9a,0xe9,0x14,0xae,0x54,0xdd,0xc2,0xe3,0x64,0x51,0xf8,0x7b,0x31,0xe1,
+/* 0x00d3a0 */ 0x5b,0x70,0x0d,0x3e,0xe8,0x9f,0x37,0xaa,0xdc,0x02,0x5f,0x93,0x25,0x5a,0xf7,0xb0,
+/* 0x00d3b0 */ 0x5e,0x38,0xbb,0x20,0xfe,0xba,0x8e,0x3d,0xda,0xe6,0x88,0x30,0x57,0xd4,0x70,0x6f,
+/* 0x00d3c0 */ 0x48,0x5e,0x50,0x1a,0x67,0xd9,0xc5,0x61,0x79,0x9f,0xe0,0x0c,0xfe,0x41,0xf5,0x10,
+/* 0x00d3d0 */ 0x4b,0x30,0xf0,0x05,0x36,0x58,0xbc,0x49,0xf1,0x57,0x7f,0x14,0xde,0x44,0xaf,0x41,
+/* 0x00d3e0 */ 0xb7,0xe9,0x34,0x70,0x6c,0x45,0xbd,0x74,0x35,0xef,0xf6,0xd7,0x9e,0x2f,0xff,0x35,
+/* 0x00d3f0 */ 0x7d,0x70,0xcf,0x81,0x86,0x53,0x65,0xbb,0xe9,0x32,0x71,0xb8,0x08,0xfc,0xd5,0x17,
+/* 0x00d400 */ 0xf3,0xf9,0x9a,0xcb,0xee,0xae,0x98,0xea,0x07,0x4e,0x15,0x55,0x32,0xfc,0x15,0x72,
+/* 0x00d410 */ 0xfb,0xe8,0xf3,0x9a,0x02,0x02,0x58,0x75,0x48,0x77,0x42,0x4d,0x2d,0x06,0x7f,0x1d,
+/* 0x00d420 */ 0xea,0x58,0xbb,0x16,0xad,0x83,0x33,0xc5,0x4d,0xfe,0x59,0x76,0xf4,0x28,0xfc,0x4c,
+/* 0x00d430 */ 0xa4,0xb0,0xcb,0x57,0xd6,0x0e,0x9b,0xbc,0xdd,0x5b,0x66,0xc5,0x69,0x70,0xaa,0x10,
+/* 0x00d440 */ 0xfe,0x92,0xea,0x4a,0x4f,0xe0,0xab,0xb8,0x4e,0x93,0x81,0x20,0xbb,0x08,0x58,0x80,
+/* 0x00d450 */ 0xe5,0x3a,0xfa,0x2b,0xde,0x41,0x8d,0x58,0xae,0xec,0x17,0xd1,0x3b,0x4a,0x5d,0xd0,
+/* 0x00d460 */ 0xa2,0xd0,0x65,0x82,0x41,0xb3,0x02,0xf8,0x4b,0xb9,0xc6,0xe6,0x28,0x9f,0x69,0x7c,
+/* 0x00d470 */ 0xf9,0x35,0x65,0x91,0xc8,0x5a,0xf0,0x6d,0xb4,0x18,0x77,0x2f,0x95,0xc6,0x95,0x11,
+/* 0x00d480 */ 0xe5,0x19,0x96,0x7f,0x78,0x85,0x21,0xb2,0xa3,0x85,0xfc,0x37,0xae,0x33,0x6e,0x2b,
+/* 0x00d490 */ 0xec,0xfd,0x1a,0x46,0xd7,0xd1,0xa7,0xd3,0x63,0x73,0x83,0xab,0x7e,0x7e,0x3e,0x1f,
+/* 0x00d4a0 */ 0x07,0xc3,0x6a,0x5f,0x44,0x66,0x65,0x4f,0x8f,0xe7,0xe5,0xbf,0x44,0x56,0x76,0x99,
+/* 0x00d4b0 */ 0x2f,0x2e,0x6f,0x8a,0xf6,0x23,0x34,0x60,0xd9,0x7d,0x35,0x3a,0xdb,0xf5,0x96,0x5a,
+/* 0x00d4c0 */ 0x83,0x25,0x1f,0x6d,0xf1,0x2b,0x35,0x1a,0x6a,0x81,0xa7,0x41,0xb7,0x5a,0x93,0x0f,
+/* 0x00d4d0 */ 0x7f,0x25,0x83,0x37,0x09,0x67,0xbb,0x3e,0x43,0xc1,0xd0,0x5a,0xe6,0x73,0xc2,0x9e,
+/* 0x00d4e0 */ 0x85,0xc1,0x7f,0xed,0x23,0xf6,0x88,0x8b,0xf9,0x1f,0x6e,0x0a,0xd7,0x64,0xe3,0x2f,
+/* 0x00d4f0 */ 0x53,0xda,0x9e,0x64,0x25,0x0f,0x70,0x24,0x26,0x39,0xef,0x7a,0x1f,0xbf,0x0a,0x5c,
+/* 0x00d500 */ 0xe7,0xa4,0x3a,0xb3,0x85,0x3e,0xe5,0x75,0xf1,0xe9,0x56,0xf8,0x30,0x0e,0xd3,0x21,
+/* 0x00d510 */ 0x8c,0x14,0x78,0x09,0x07,0xf4,0x8c,0xc4,0x49,0xfd,0x37,0x6e,0x61,0xcf,0x1e,0xc9,
+/* 0x00d520 */ 0x27,0x8c,0xd1,0xdd,0x4d,0xfd,0x7e,0x4b,0x3c,0xb0,0x88,0x5c,0x07,0xf5,0xcc,0xf6,
+/* 0x00d530 */ 0x70,0x0c,0x5c,0x8f,0xd5,0x47,0xdc,0xad,0xc2,0x0d,0xef,0x31,0x1d,0xac,0x4d,0x8e,
+/* 0x00d540 */ 0xbf,0x10,0x0f,0xce,0x03,0x05,0x37,0xaa,0xa5,0x24,0x90,0xb0,0x3d,0xac,0x8a,0xa9,
+/* 0x00d550 */ 0x31,0x95,0x9d,0xbd,0x07,0x92,0x4e,0x11,0x93,0xe3,0x2f,0xa5,0xa9,0x59,0xde,0x11,
+/* 0x00d560 */ 0x70,0x82,0x1b,0xd3,0x1a,0x96,0xca,0x2f,0x03,0x7e,0xaa,0xef,0xb3,0x6c,0xa9,0x72,
+/* 0x00d570 */ 0x82,0xe3,0x4b,0x3d,0xeb,0x2c,0x61,0x95,0xeb,0x65,0x96,0x16,0xc4,0x5f,0xb1,0xda,
+/* 0x00d580 */ 0xf6,0x75,0xe1,0x92,0x6a,0x72,0x20,0xea,0xf0,0xa1,0x4a,0x2b,0xc3,0x56,0x3f,0xc7,
+/* 0x00d590 */ 0xd2,0x36,0x18,0x14,0x3b,0x57,0xcd,0x69,0x93,0xb6,0x0b,0x7f,0x0f,0x32,0xf5,0x5f,
+/* 0x00d5a0 */ 0xf9,0xf0,0x97,0x1b,0x37,0x73,0x41,0x19,0xa8,0x5e,0xd3,0x1c,0xf6,0x3b,0x4d,0x07,
+/* 0x00d5b0 */ 0x4c,0xb5,0x6b,0xe8,0x34,0xc8,0x4b,0x83,0x61,0x69,0x3b,0x7c,0x0d,0x74,0x16,0x89,
+/* 0x00d5c0 */ 0xbf,0x50,0xd8,0x2b,0x46,0x7a,0x5d,0xea,0x0a,0xb4,0xf5,0x39,0xb1,0xac,0xb7,0xc6,
+/* 0x00d5d0 */ 0xb5,0x82,0xae,0xb0,0xbb,0x23,0x1d,0x2e,0x97,0x4f,0x0a,0x5b,0x07,0x61,0x87,0xab,
+/* 0x00d5e0 */ 0x30,0xfe,0x62,0xd5,0x9a,0x66,0x10,0xb3,0x1a,0x1a,0x55,0x1b,0xb8,0xec,0x0b,0x8d,
+/* 0x00d5f0 */ 0xaa,0xb5,0xa8,0x9b,0x08,0x2e,0x12,0xb5,0xf3,0xb2,0x4d,0x44,0x8e,0xaa,0x45,0xe0,
+/* 0x00d600 */ 0x2f,0xd7,0x92,0x15,0xd2,0x50,0xd5,0x48,0x84,0x31,0x59,0x74,0x33,0xb0,0x21,0xf2,
+/* 0x00d610 */ 0x14,0x58,0x84,0x37,0x9d,0x0a,0x8c,0x88,0x63,0xa6,0xdf,0x33,0x6e,0x6b,0x43,0x64,
+/* 0x00d620 */ 0xac,0x50,0xfd,0x2f,0x1a,0xdc,0xc4,0x8b,0x97,0x52,0xfc,0x75,0x1f,0x38,0xe9,0xaa,
+/* 0x00d630 */ 0xfa,0xfe,0x8c,0x21,0xe1,0x02,0x38,0xe9,0x58,0x82,0x2b,0x86,0x84,0x05,0x11,0xe3,
+/* 0x00d640 */ 0xbc,0xf7,0x8f,0x59,0xf5,0xbf,0xf2,0xf2,0x5f,0x88,0x06,0x2a,0x0c,0x61,0x07,0x98,
+/* 0x00d650 */ 0x13,0x84,0xc3,0x61,0xb6,0x70,0x20,0x87,0xb4,0x16,0x84,0x96,0xd7,0x82,0xe6,0x08,
+/* 0x00d660 */ 0x8c,0xc1,0x90,0x5a,0x84,0xff,0x86,0xea,0xf6,0xd2,0x60,0x8a,0xd2,0x01,0xd4,0x36,
+/* 0x00d670 */ 0x3a,0x1f,0xc6,0x4d,0x1d,0xd8,0x3d,0x64,0x56,0xb6,0x2e,0x07,0x34,0xc0,0xa8,0x8e,
+/* 0x00d680 */ 0xf6,0xe9,0x68,0x2e,0x8a,0xff,0x5a,0xde,0x15,0x36,0x3b,0x71,0x27,0x72,0xe8,0xf8,
+/* 0x00d690 */ 0xab,0x53,0xac,0x6d,0x41,0x56,0xb8,0xde,0xdf,0x19,0xe2,0xb8,0xfb,0x28,0xee,0xcc,
+/* 0x00d6a0 */ 0x89,0xbf,0xb2,0xee,0x33,0x6a,0x62,0x85,0xc0,0xaa,0x83,0xef,0x69,0x7d,0x2d,0xcd,
+/* 0x00d6b0 */ 0xaf,0xd8,0x8e,0xc2,0xf7,0x40,0x23,0x03,0x62,0xad,0xf4,0xb6,0xdc,0x83,0xdd,0xdb,
+/* 0x00d6c0 */ 0x84,0x8b,0x59,0xfa,0xaf,0xbc,0xfe,0x1b,0x5e,0xce,0x21,0x8e,0x85,0x29,0xbc,0x7d,
+/* 0x00d6d0 */ 0x85,0xd9,0x1e,0xc2,0xa6,0x66,0xcb,0x76,0x76,0x49,0x64,0xc2,0xbd,0xc2,0xf8,0x4b,
+/* 0x00d6e0 */ 0x0f,0x5a,0x28,0x10,0xdb,0x6c,0x33,0x39,0x34,0x3a,0x4e,0xe5,0x90,0x8d,0x57,0xe5,
+/* 0x00d6f0 */ 0x33,0xc9,0x24,0xe0,0x00,0x51,0xe4,0xd1,0xfb,0x44,0x8b,0xc8,0x3f,0x3c,0x44,0xe6,
+/* 0x00d700 */ 0x11,0xe4,0x83,0x0b,0xab,0x7e,0x03,0x68,0x10,0xb3,0xea,0x2d,0xcf,0xc7,0xe1,0x34,
+/* 0x00d710 */ 0xf0,0x42,0x70,0x27,0x91,0x62,0xde,0xeb,0x74,0x21,0xab,0x9d,0xcc,0x7f,0x5e,0x30,
+/* 0x00d720 */ 0x82,0xa1,0xef,0xcf,0xb7,0x96,0xb0,0xc3,0xf3,0x41,0xa4,0x38,0x28,0x22,0x0b,0xb9,
+/* 0x00d730 */ 0xa3,0x14,0x88,0x99,0x41,0x40,0x71,0x85,0x19,0x45,0x02,0x03,0x93,0xe1,0x2f,0x23,
+/* 0x00d740 */ 0x78,0x13,0xcc,0x53,0x11,0x86,0x95,0x1c,0x0e,0xb8,0x5a,0xe0,0x27,0xe4,0xb7,0x68,
+/* 0x00d750 */ 0x9e,0x56,0xb6,0xc1,0x3c,0x0d,0x6c,0x22,0x35,0x7e,0x3a,0x51,0x8f,0xab,0x9b,0xd4,
+/* 0x00d760 */ 0x2c,0xff,0xc3,0xb2,0x89,0xb9,0x85,0x7f,0x61,0x5a,0x8f,0x76,0xa1,0x84,0x7e,0xaa,
+/* 0x00d770 */ 0xd1,0x27,0xaf,0x11,0x3e,0x23,0xd7,0x82,0x8b,0x63,0x72,0xbb,0x50,0x01,0xdf,0x21,
+/* 0x00d780 */ 0x0f,0xea,0x7d,0xde,0xd5,0x0a,0xfb,0xcf,0x8f,0x32,0x82,0x98,0x4c,0x1b,0x81,0x37,
+/* 0x00d790 */ 0xf4,0x87,0x72,0x09,0x8f,0x89,0x8d,0x89,0x3e,0x0d,0x1a,0x9f,0x7b,0x33,0xf9,0xaf,
+/* 0x00d7a0 */ 0xbc,0xfe,0xf3,0x11,0x79,0x58,0x68,0x00,0xdd,0x5b,0xeb,0x63,0xf2,0x69,0xe9,0x1e,
+/* 0x00d7b0 */ 0xf0,0x3e,0x27,0xc2,0x40,0x1f,0x78,0x97,0xd4,0x47,0xe8,0x9f,0xc1,0x84,0x2a,0xf5,
+/* 0x00d7c0 */ 0x79,0xf1,0x97,0x98,0xba,0x3f,0x22,0xf2,0xfa,0xeb,0xc8,0xc7,0xc0,0x1e,0x45,0x7f,
+/* 0x00d7d0 */ 0x4b,0x37,0x9c,0x1b,0x81,0x7d,0x48,0xfa,0x47,0x58,0x19,0xfe,0xd8,0x65,0x27,0x92,
+/* 0x00d7e0 */ 0xcf,0xbf,0x80,0x22,0x32,0x7b,0x7e,0xfc,0x95,0x0a,0x08,0xd2,0x4a,0x1e,0xa1,0x9d,
+/* 0x00d7f0 */ 0x55,0x3c,0xb5,0x05,0x3e,0x0d,0x36,0x2a,0x35,0x43,0xf4,0x52,0xb0,0x72,0x13,0xb6,
+/* 0x00d800 */ 0x07,0xb9,0x57,0xb0,0xf1,0x3d,0x93,0xe2,0xaf,0x1e,0x36,0xba,0x41,0x09,0x26,0xfd,
+/* 0x00d810 */ 0xaa,0x8a,0x11,0x70,0x9c,0x30,0xf9,0xd9,0x6a,0x65,0x85,0xa5,0xe0,0xc5,0x60,0x84,
+/* 0x00d820 */ 0x59,0xfb,0x02,0x60,0xd4,0x7d,0x9b,0x14,0x7f,0x8d,0xe2,0x26,0x76,0x2c,0xdf,0x0a,
+/* 0x00d830 */ 0x8e,0x41,0xcf,0xa0,0xac,0x48,0x8f,0xd1,0xd1,0xf4,0xb6,0x66,0xa9,0x14,0x5e,0x57,
+/* 0x00d840 */ 0x8f,0x63,0xcf,0x48,0x77,0x44,0x72,0xc3,0x0f,0x40,0x5f,0x26,0xfe,0x12,0xb3,0xbe,
+/* 0x00d850 */ 0x87,0xe2,0xaf,0x71,0x26,0x2c,0x22,0xd2,0xb3,0xc0,0x3a,0xf8,0xbb,0xd8,0x3c,0xfa,
+/* 0x00d860 */ 0xbc,0x5c,0x63,0xb8,0x9a,0x22,0x32,0x29,0x4e,0xb7,0x7c,0x4d,0xcb,0x2d,0xbb,0x53,
+/* 0x00d870 */ 0xff,0xe9,0x64,0xf8,0xcb,0x74,0xd3,0xc5,0x69,0xaf,0x6f,0xc1,0xa7,0x1b,0xeb,0xb5,
+/* 0x00d880 */ 0x55,0x57,0x40,0x23,0x53,0x84,0x31,0x6a,0x6c,0x81,0xca,0xca,0x7e,0x95,0xc6,0x04,
+/* 0x00d890 */ 0xc3,0xe4,0xb9,0x00,0xfe,0xda,0xdf,0xec,0x68,0x45,0x21,0x78,0xc1,0xfb,0x06,0x5d,
+/* 0x00d8a0 */ 0xbf,0x2c,0x14,0x40,0x81,0xce,0x58,0xed,0x15,0xe9,0x65,0x38,0x4b,0xec,0x03,0x0e,
+/* 0x00d8b0 */ 0x9f,0xb4,0xd9,0x3f,0x5c,0x94,0xff,0x46,0x0f,0x70,0x00,0xf6,0x3d,0x25,0x2f,0x2b,
+/* 0x00d8c0 */ 0x8e,0xf3,0x68,0x3b,0xdc,0x0b,0x42,0xa4,0x36,0x44,0x97,0x2d,0x27,0x39,0xe8,0x73,
+/* 0x00d8d0 */ 0x44,0x38,0x64,0x28,0x06,0x7f,0xf5,0xd0,0x87,0x89,0x80,0x47,0x03,0xbb,0x98,0xdf,
+/* 0x00d8e0 */ 0xb2,0x52,0xb1,0x97,0x29,0xc2,0x3a,0xe8,0xb2,0x25,0x2a,0x7d,0x40,0x8d,0x75,0xb1,
+/* 0x00d8f0 */ 0xba,0xc0,0x59,0xf8,0x2b,0x67,0xfe,0xe1,0x01,0xd0,0x47,0xdc,0x44,0xb8,0x24,0x9e,
+/* 0x00d900 */ 0x11,0x3d,0x47,0xe4,0x1e,0xdb,0x5e,0x3d,0x5b,0x83,0xdb,0x6a,0x99,0x3c,0xa4,0x3b,
+/* 0x00d910 */ 0x32,0x01,0x7f,0xe5,0xf6,0x9f,0xe7,0xcf,0x0b,0x0b,0x23,0xe0,0x67,0x70,0x09,0xb1,
+/* 0x00d920 */ 0xf8,0x28,0xe0,0xbd,0x69,0xa2,0xdb,0x78,0xd6,0x72,0x93,0x0e,0xbd,0xd5,0xb1,0xd4,
+/* 0x00d930 */ 0x7e,0x3e,0x85,0xbf,0x2a,0x6f,0xfb,0xb3,0xc7,0x97,0xe1,0xad,0xd1,0x47,0x07,0xd1,
+/* 0x00d940 */ 0x22,0x9f,0x1c,0x15,0xbe,0xbd,0xe3,0x04,0x1d,0x4d,0x33,0x47,0x85,0x43,0xe8,0x03,
+/* 0x00d950 */ 0xc0,0x84,0x96,0x55,0xd9,0xfe,0x36,0x11,0xf4,0x1b,0x0a,0xbb,0x9e,0x34,0xf0,0x57,
+/* 0x00d960 */ 0x42,0xdb,0xc5,0xbc,0x35,0xba,0xf6,0x43,0x96,0x8a,0xe2,0xf0,0xb9,0x42,0x8e,0x8b,
+/* 0x00d970 */ 0x62,0xa7,0xc9,0xc1,0x5a,0xd8,0x21,0xa2,0x23,0xe6,0xa2,0x7d,0x12,0x59,0x8b,0x86,
+/* 0x00d980 */ 0xfe,0x2b,0x94,0xa9,0x8b,0xd4,0x03,0xab,0x31,0xd7,0xc5,0x50,0x00,0xfc,0x94,0x8e,
+/* 0x00d990 */ 0x0b,0x7a,0x57,0xfd,0x22,0xab,0xaa,0x66,0x96,0x21,0x2b,0xaf,0x96,0x9e,0xa1,0x9d,
+/* 0x00d9a0 */ 0xc0,0x5f,0x62,0xae,0xfc,0x43,0xc6,0x8d,0xae,0xec,0x81,0xad,0x2a,0xdd,0xa5,0x34,
+/* 0x00d9b0 */ 0x23,0xc2,0x5a,0x44,0x9d,0xf7,0x14,0x99,0xa3,0xaf,0x29,0x8d,0xff,0x32,0xf4,0x5f,
+/* 0x00d9c0 */ 0x76,0xee,0x7f,0x98,0xca,0x0e,0x3d,0x92,0x46,0x2a,0xd9,0x02,0xc2,0x71,0xb8,0x30,
+/* 0x00d9d0 */ 0x36,0x23,0x28,0xc4,0xa1,0x86,0x3c,0xf4,0x53,0x55,0xac,0x88,0xb9,0xc7,0xc8,0xd4,
+/* 0x00d9e0 */ 0xd5,0xf1,0x4e,0x3c,0x8f,0xff,0xe1,0xea,0xa4,0xb1,0xc3,0x95,0xc0,0x61,0xd6,0x72,
+/* 0x00d9f0 */ 0xde,0xf2,0x8d,0xed,0x5b,0x7c,0x49,0xe5,0xe8,0x98,0x5d,0x5a,0x74,0xa4,0x22,0xed,
+/* 0x00da00 */ 0xe1,0xe6,0xc2,0x5f,0xec,0x0c,0x64,0x66,0xe2,0xef,0xa1,0xff,0x69,0x8c,0xcb,0x88,
+/* 0x00da10 */ 0xe4,0xe0,0x3b,0x71,0x30,0x0a,0xd9,0x8b,0x54,0xef,0x46,0x37,0xf4,0xb2,0x71,0xc9,
+/* 0x00da20 */ 0xf7,0xe7,0xc3,0xbc,0xfe,0x87,0x8e,0x13,0x90,0xdd,0x1f,0xd4,0xf0,0xc3,0x8b,0xe4,
+/* 0x00da30 */ 0x2a,0x71,0x0f,0xbb,0xf6,0xc1,0x13,0x68,0x3f,0xbd,0x2d,0x6e,0x7a,0x9f,0xe9,0x14,
+/* 0x00da40 */ 0x17,0xc9,0xc5,0x7f,0x4d,0xd0,0x7f,0x75,0x71,0xb6,0x8b,0x1d,0xa7,0x3f,0xc0,0x41,
+/* 0x00da50 */ 0xf1,0xfa,0x16,0xb3,0x31,0x52,0x0c,0x1f,0x06,0xdd,0x20,0x74,0x02,0xff,0x95,0x53,
+/* 0x00da60 */ 0xff,0xf5,0x0b,0xa6,0xed,0x7a,0xca,0x7a,0x16,0xbf,0x4e,0xe6,0xc5,0x57,0x3e,0x05,
+/* 0x00da70 */ 0x3f,0xc2,0xbf,0x0f,0xef,0x8c,0x95,0x3d,0xc5,0x18,0xb1,0xb0,0x3d,0xa3,0xf3,0xb8,
+/* 0x00da80 */ 0x81,0xbf,0xa6,0xae,0x4a,0xe1,0x2f,0xc6,0x6d,0x31,0xb6,0x0b,0xbf,0xc3,0xee,0x4f,
+/* 0x00da90 */ 0x9d,0x10,0x45,0xfd,0x14,0x76,0xdd,0xb3,0x20,0x70,0x02,0x5c,0x57,0x94,0x41,0xb9,
+/* 0x00daa0 */ 0x8e,0xfb,0x6f,0xd4,0xa5,0xc0,0x5a,0x69,0x9a,0xfe,0x6b,0xe2,0xbc,0x7a,0x22,0x71,
+/* 0x00dab0 */ 0x18,0xc2,0x16,0x29,0x5d,0xb7,0x25,0xde,0x50,0x1a,0xb5,0x8a,0x3a,0x3a,0x55,0x5e,
+/* 0x00dac0 */ 0xcd,0xe6,0x19,0x0d,0xfd,0x97,0x98,0x6b,0x7e,0xbe,0xca,0xe7,0x5e,0x33,0x83,0xed,
+/* 0x00dad0 */ 0x75,0xd8,0x8d,0x84,0xcd,0x56,0x86,0xb6,0xba,0x1f,0x90,0x64,0xe6,0x48,0x1f,0x93,
+/* 0x00dae0 */ 0x1f,0x90,0x12,0xa7,0x34,0x55,0x06,0xfe,0xc2,0x19,0xf9,0xf3,0x30,0xb9,0xee,0xf0,
+/* 0x00daf0 */ 0x35,0x65,0x06,0x78,0x17,0xb0,0xb2,0x95,0x74,0xa1,0xdf,0x04,0xe7,0xeb,0x2d,0xdd,
+/* 0x00db00 */ 0xce,0x7b,0xb5,0xe7,0xda,0x52,0x79,0x17,0x86,0xfe,0x0b,0xe4,0xf5,0xdf,0x90,0x46,
+/* 0x00db10 */ 0xe1,0xe3,0xe0,0x75,0x56,0xf0,0xba,0xb9,0xe4,0x10,0xd8,0xa4,0xcd,0x8a,0x51,0x78,
+/* 0x00db20 */ 0xfb,0xb8,0xa9,0x3b,0x5c,0xc5,0x18,0xb1,0x7b,0x92,0xfe,0x1b,0x46,0xfe,0x61,0xae,
+/* 0x00db30 */ 0x71,0xca,0xb2,0x35,0x8e,0x48,0x75,0x0f,0xfd,0x80,0x04,0x40,0x24,0xee,0x6a,0x1c,
+/* 0x00db40 */ 0x90,0x41,0x40,0xe5,0xd5,0x0f,0xd7,0xd3,0x57,0xc2,0x75,0xc4,0x5c,0x67,0x4e,0xce,
+/* 0x00db50 */ 0xa2,0x05,0xf4,0x5f,0x75,0x2c,0x68,0x97,0xff,0x6c,0xaa,0xef,0x90,0x63,0xc2,0x76,
+/* 0x00db60 */ 0xba,0xbe,0x37,0xe8,0xa9,0x89,0x03,0xc0,0x43,0x66,0xa4,0x59,0x23,0x16,0xa1,0xff,
+/* 0x00db70 */ 0xaa,0x32,0x2e,0x75,0xd8,0x92,0x97,0x22,0x28,0x2f,0xff,0x95,0x63,0x9f,0x69,0x62,
+/* 0x00db80 */ 0x7c,0x0a,0x05,0xc5,0xd5,0x80,0x99,0x72,0xcb,0x3b,0xe8,0x25,0x23,0xdb,0x30,0xce,
+/* 0x00db90 */ 0x4b,0x33,0xa7,0x75,0x4e,0xfc,0x2e,0x2d,0x0f,0xff,0xe5,0xc0,0x7b,0x14,0xb3,0x53,
+/* 0x00dba0 */ 0xeb,0x05,0x11,0xc6,0x76,0x7d,0xfe,0x50,0xa2,0x10,0x33,0x38,0x03,0x77,0xa5,0x3a,
+/* 0x00dbb0 */ 0xaf,0x4c,0xe9,0xbf,0xb2,0x7d,0x18,0x8c,0xa0,0x9a,0xbb,0x2e,0x20,0xe6,0x4c,0x8e,
+/* 0x00dbc0 */ 0x32,0xea,0x40,0x75,0x9a,0x72,0xd6,0xff,0x72,0xe5,0xf4,0x3f,0x3c,0x40,0xb7,0x2b,
+/* 0x00dbd0 */ 0xa8,0x07,0x8a,0x3c,0x6d,0xa3,0x8c,0x25,0xc8,0x75,0x28,0xec,0x92,0x35,0x0e,0xb6,
+/* 0x00dbe0 */ 0x18,0xba,0xa4,0xac,0xfa,0xcb,0xa3,0x39,0xfd,0x0f,0xf7,0x83,0x06,0x20,0x13,0x1b,
+/* 0x00dbf0 */ 0x85,0x5d,0xc0,0x03,0x10,0xb1,0x0d,0xa3,0x28,0x36,0x2e,0x45,0x5d,0x77,0x83,0xee,
+/* 0x00dc00 */ 0x54,0x67,0x5b,0x61,0xfe,0xab,0x65,0xd9,0x87,0xe0,0x1b,0x3d,0x93,0x70,0x04,0xfc,
+/* 0x00dc10 */ 0xc5,0xd9,0xb4,0xb4,0x34,0xbc,0xd4,0xa0,0xb4,0x12,0xcc,0xe3,0xe4,0xfa,0xaf,0x11,
+/* 0x00dc20 */ 0xf0,0x29,0xb8,0x1f,0xcb,0x74,0x77,0x81,0x8e,0x82,0xf9,0xb8,0xbc,0x45,0x18,0x31,
+/* 0x00dc30 */ 0xbd,0x87,0x17,0xf1,0x16,0x70,0x52,0xad,0x67,0xdf,0xec,0xcc,0xce,0x3f,0xcc,0xa5,
+/* 0x00dc40 */ 0xff,0x82,0x21,0xba,0xb0,0x23,0x8a,0x2b,0xc1,0x1e,0xb6,0x61,0xd0,0x5b,0x1c,0xc0,
+/* 0x00dc50 */ 0xc5,0x5a,0x42,0xf8,0x4d,0xd6,0x47,0x4d,0x74,0x9e,0x54,0xff,0x45,0x61,0x17,0xae,
+/* 0x00dc60 */ 0x09,0x73,0xbb,0xf8,0xf3,0xd8,0xa5,0x70,0x27,0x0d,0x17,0x66,0xb6,0x1b,0x70,0x8b,
+/* 0x00dc70 */ 0xc2,0x6c,0xe7,0xcd,0x49,0x0b,0xca,0x53,0x79,0xfc,0x37,0xf4,0xb4,0x43,0xfa,0xfe,
+/* 0x00dc80 */ 0x94,0xe9,0x2a,0x3f,0x07,0xd7,0x4d,0x98,0x8c,0x16,0x27,0x7d,0x01,0xaa,0x75,0x01,
+/* 0x00dc90 */ 0xa0,0xf1,0xa9,0x8f,0x26,0xf3,0x3f,0x64,0x2f,0x6d,0xb9,0x22,0xfc,0x04,0x1c,0x81,
+/* 0x00dca0 */ 0x1e,0x3c,0x83,0xde,0x04,0x74,0x44,0x59,0xc8,0xf8,0x41,0x27,0x38,0xa3,0xbf,0xcf,
+/* 0x00dcb0 */ 0xc9,0xfc,0xc3,0xd1,0x3c,0xfe,0x1b,0x3c,0x60,0x45,0x96,0x2b,0xc2,0xcb,0x7e,0x89,
+/* 0x00dcc0 */ 0x0d,0x47,0x8e,0x0b,0xe0,0x0b,0xc2,0x03,0x7a,0xc9,0xc4,0x89,0xcb,0xe4,0xa7,0xce,
+/* 0x00dcd0 */ 0x12,0x7d,0x3e,0xcc,0x89,0xbf,0x4e,0x03,0x4f,0xa2,0xc5,0x23,0xca,0x44,0xf0,0x4d,
+/* 0x00dce0 */ 0x3d,0x0d,0x93,0x7d,0x3c,0x80,0xd7,0xef,0x2e,0x8c,0xbf,0xa2,0xc0,0x0f,0x22,0x44,
+/* 0x00dcf0 */ 0xfa,0x6a,0xeb,0x19,0x7c,0x08,0xec,0xec,0x09,0xc5,0xbd,0xd3,0x1d,0x2f,0x00,0x37,
+/* 0x00dd00 */ 0x99,0xae,0xd2,0x4b,0x7d,0x60,0x17,0x71,0xa9,0x66,0x17,0x38,0x6b,0x74,0x56,0xf5,
+/* 0x00dd10 */ 0x71,0x91,0xb6,0xaf,0x13,0xfb,0x8d,0x24,0x0d,0xf1,0x45,0xc8,0xf7,0xd8,0x27,0x41,
+/* 0x00dd20 */ 0xbf,0xe2,0x1c,0x40,0x1e,0xf8,0x03,0x35,0x4d,0x66,0x6e,0x2c,0x64,0x99,0xf8,0x0b,
+/* 0x00dd30 */ 0x28,0x33,0x26,0x98,0x1c,0x8e,0xeb,0x7b,0x7e,0x96,0x5f,0xf7,0x5b,0x30,0x9b,0xa0,
+/* 0x00dd40 */ 0x51,0x6b,0xa3,0x21,0xcb,0xb5,0xb2,0x33,0x34,0x7b,0x2c,0xd4,0x46,0x7f,0xa5,0x4e,
+/* 0x00dd50 */ 0xf4,0x58,0x0d,0xfc,0x05,0x72,0xe8,0xbf,0x6e,0x89,0x1f,0x33,0xdb,0x79,0x6e,0x32,
+/* 0x00dd60 */ 0xdf,0x71,0x5f,0xcc,0xdd,0xbe,0xec,0x71,0xf0,0x6e,0x64,0xf1,0x39,0xc6,0x91,0xc9,
+/* 0x00dd70 */ 0xd7,0xe8,0x25,0xb9,0xdd,0xd4,0x04,0xde,0xcd,0xe4,0xbf,0x92,0xbe,0xcd,0xa6,0x8c,
+/* 0x00dd80 */ 0x75,0x87,0x06,0xc4,0xc6,0x9e,0xe0,0x42,0x42,0x1f,0xca,0xff,0xb5,0xf7,0x2d,0xd0,
+/* 0x00dd90 */ 0x51,0x55,0x69,0xba,0xff,0x3e,0xb5,0x4f,0x72,0x2a,0x9c,0xc0,0xa9,0xa4,0x0a,0x0a,
+/* 0x00dda0 */ 0x0d,0xf6,0xa9,0xa2,0x08,0x91,0x1b,0xe9,0x4a,0x00,0xa1,0x5b,0x1b,0x4e,0x3d,0x12,
+/* 0x00ddb0 */ 0x0a,0x0d,0x52,0x90,0x10,0xd2,0x8a,0xdd,0x07,0x8c,0xca,0xdc,0xe5,0xed,0x49,0x50,
+/* 0x00ddc0 */ 0xaf,0xf6,0x5d,0x3d,0xe3,0xae,0xa2,0x82,0xc5,0xa3,0xa7,0x0b,0x44,0x07,0x67,0x31,
+/* 0x00ddd0 */ 0x76,0x61,0x3b,0x8e,0xdd,0xe3,0xdc,0xc6,0xc7,0xb4,0x3d,0x33,0xde,0xf1,0x24,0x06,
+/* 0x00dde0 */ 0x0c,0xca,0x28,0xa3,0xe8,0xe0,0x5c,0xa7,0x05,0x17,0xf4,0xd8,0x8e,0xb6,0xf4,0x6d,
+/* 0x00ddf0 */ 0xef,0x55,0x7c,0x71,0xff,0xbd,0xcf,0xa3,0x42,0x78,0x8c,0xda,0xce,0xbd,0x6b,0xcd,
+/* 0x00de00 */ 0xca,0x5e,0xb0,0xf8,0xf8,0xff,0x7f,0xef,0x3a,0xe7,0xec,0xc7,0xff,0x7f,0x7b,0xef,
+/* 0x00de10 */ 0xb3,0xcf,0x01,0xe5,0x5d,0x4f,0x45,0xec,0x0d,0x21,0x4e,0xdc,0x52,0xef,0xf0,0x2f,
+/* 0x00de20 */ 0x83,0xfe,0x9d,0x81,0x91,0xde,0xb1,0xaf,0x9c,0x4c,0x79,0x21,0xdf,0x7d,0xd2,0x3f,
+/* 0x00de30 */ 0xb2,0x47,0x8e,0x34,0x7f,0xe0,0xbb,0xc0,0xf8,0x69,0xe1,0xb1,0x23,0x93,0xde,0x94,
+/* 0x00de40 */ 0xfe,0xc6,0x78,0x61,0x27,0xb2,0xad,0xdb,0x91,0x88,0x89,0xf3,0x01,0x6e,0xbf,0x50,
+/* 0x00de50 */ 0x9c,0x3f,0xcf,0x77,0x24,0x9e,0x28,0x8b,0xf6,0xf3,0x13,0xc5,0xf6,0x5f,0x93,0xfa,
+/* 0x00de60 */ 0xa2,0xee,0xb1,0xbd,0x51,0x7e,0x38,0x7c,0x64,0x58,0x59,0x93,0x0c,0xc3,0xcb,0x7a,
+/* 0x00de70 */ 0xc4,0x98,0xd4,0xe7,0xeb,0x39,0xf2,0x53,0x69,0xde,0xf0,0x44,0x9b,0x2e,0x5d,0x32,
+/* 0x00de80 */ 0x32,0x61,0x94,0xff,0xfa,0xd0,0xe3,0x5f,0x0a,0x4a,0x06,0xb7,0x54,0xca,0x91,0x76,
+/* 0x00de90 */ 0x89,0xe7,0xac,0x9c,0x90,0x7a,0x74,0x7c,0xaa,0x6c,0xc2,0x9a,0xfc,0x1e,0xe5,0xce,
+/* 0x00dea0 */ 0xaa,0x88,0xbd,0xec,0x75,0x27,0xcc,0xe0,0x95,0x22,0xca,0xe1,0x73,0x95,0x87,0x6c,
+/* 0x00deb0 */ 0xfe,0x65,0x3a,0xfe,0x6b,0xd4,0x79,0x7a,0x75,0xaa,0xb2,0x41,0x6c,0x63,0xbb,0x22,
+/* 0x00dec0 */ 0xa5,0x60,0x87,0x85,0x9a,0xf0,0x50,0x12,0x7e,0x64,0x94,0x2d,0x29,0x9e,0xec,0xa8,
+/* 0x00ded0 */ 0xc2,0xea,0x1e,0x9c,0x60,0x07,0x30,0xa2,0xde,0x9d,0xf3,0x0f,0x1f,0xe6,0xcf,0x99,
+/* 0x00dee0 */ 0x9e,0x7e,0xc8,0xe1,0x56,0x0c,0x3c,0x74,0x1e,0x1e,0x5c,0xaf,0xfc,0x2d,0x8d,0x27,
+/* 0x00def0 */ 0x7d,0x0d,0xbe,0x07,0xe9,0x33,0x59,0xc9,0x5e,0xf6,0x7a,0x0e,0x23,0x87,0x1f,0xee,
+/* 0x00df00 */ 0xa9,0x1c,0x7d,0xfc,0xa1,0xcb,0xbf,0x46,0xaf,0x57,0x52,0xb1,0xa4,0xe5,0x2c,0x84,
+/* 0x00df10 */ 0x95,0x52,0x7f,0xc9,0x3e,0xc2,0x0a,0x9e,0xf4,0x40,0xfd,0x03,0xe2,0xb7,0x26,0xee,
+/* 0x00df20 */ 0xf1,0xb9,0xc6,0x29,0x6f,0xfd,0xeb,0xb8,0xfb,0xfe,0xd7,0x93,0xa7,0x9f,0xcb,0x27,
+/* 0x00df30 */ 0x02,0x4e,0xfe,0x19,0xa9,0x89,0x6f,0xfb,0xe2,0x0c,0x25,0x59,0xf5,0xc5,0xe9,0x7d,
+/* 0x00df40 */ 0x99,0x17,0xec,0xaf,0x2d,0x7f,0xac,0xbc,0x0f,0xf3,0xed,0x37,0xc2,0x9e,0xb2,0xd7,
+/* 0x00df50 */ 0x65,0x0e,0xc6,0x44,0x39,0x47,0x79,0x7c,0x28,0xdb,0xf1,0xa1,0xb7,0x81,0x50,0xe2,
+/* 0x00df60 */ 0x9f,0x6d,0x7a,0x48,0x99,0xbe,0x16,0xfe,0x56,0x9b,0x1d,0xa9,0xdd,0x2a,0x49,0x74,
+/* 0x00df70 */ 0x0b,0xbd,0xd4,0x09,0x0b,0x31,0x90,0x6e,0x1a,0xb5,0xc7,0xec,0xac,0xef,0x7f,0x11,
+/* 0x00df80 */ 0x87,0xc7,0x6d,0x81,0x46,0x4b,0x29,0xd5,0xcd,0xe0,0x83,0x95,0xa5,0x30,0x83,0x9f,
+/* 0x00df90 */ 0x4c,0x1e,0xb5,0xb6,0xec,0xa9,0xe3,0x47,0xe4,0xdd,0xcf,0x0f,0xe2,0x78,0xdb,0xef,
+/* 0x00dfa0 */ 0xe4,0xaa,0xec,0x3f,0x1c,0xfd,0x9d,0x74,0x67,0xe2,0x57,0xd4,0x17,0xb4,0xab,0xca,
+/* 0x00dfb0 */ 0x23,0xa0,0x1a,0xfe,0xb2,0xb4,0x15,0xb6,0x90,0xd8,0xe8,0x7e,0x5a,0x37,0x76,0xfd,
+/* 0x00dfc0 */ 0xcb,0x98,0x66,0xf3,0x2f,0xe7,0x88,0x06,0x27,0xb0,0xdf,0xc2,0x8f,0xdd,0x28,0xd5,
+/* 0x00dfd0 */ 0xe8,0xf4,0x24,0x59,0x98,0x13,0xbb,0x35,0x9e,0xc3,0xb0,0xb9,0xda,0x9d,0x97,0x18,
+/* 0x00dfe0 */ 0xfd,0x46,0xd8,0x11,0x8f,0x7f,0x69,0x67,0x5f,0xff,0xaa,0x35,0x52,0x27,0xe0,0x7f,
+/* 0x00dff0 */ 0xd3,0xaf,0xc0,0x32,0xe3,0xba,0xac,0xa3,0xaa,0x1f,0x63,0xbc,0xec,0x44,0xfd,0xe1,
+/* 0x00e000 */ 0x8d,0x67,0x5d,0xff,0x3a,0x2a,0x00,0xef,0xd4,0x13,0x2d,0x8c,0xf9,0xf7,0xb2,0x45,
+/* 0x00e010 */ 0x86,0x6a,0x21,0xc9,0xfa,0x94,0x61,0x7d,0x89,0xa3,0xe9,0xc9,0x9c,0xc8,0xa4,0xc3,
+/* 0x00e020 */ 0xe7,0xd9,0x7f,0x08,0x63,0xbe,0xb6,0xac,0xf0,0xc3,0x44,0x36,0xb1,0xd9,0xba,0x02,
+/* 0x00e030 */ 0x20,0x22,0x10,0x54,0x45,0x0f,0x68,0x7f,0x01,0xb3,0x74,0x74,0x13,0x1e,0xff,0x3a,
+/* 0x00e040 */ 0xf7,0xfa,0xd7,0x8a,0x03,0x58,0x29,0xd1,0x5c,0x8d,0x16,0xb5,0x8c,0x1c,0x6d,0x26,
+/* 0x00e050 */ 0xba,0x5e,0x65,0x91,0x47,0x06,0xca,0xd8,0x1d,0x92,0x07,0xa0,0x88,0x3d,0xe5,0x4a,
+/* 0x00e060 */ 0x2d,0x29,0x5e,0xc1,0x1b,0xdc,0x72,0x96,0xf5,0xaf,0xba,0xb7,0x47,0x13,0x8d,0xff,
+/* 0x00e070 */ 0xce,0x32,0x3b,0xeb,0x8e,0xdc,0xb8,0x09,0xbe,0xe3,0xcf,0x94,0xa5,0x5f,0x93,0x47,
+/* 0x00e080 */ 0xed,0x7d,0xa7,0x6f,0xc3,0x8f,0xeb,0xc4,0xf5,0x78,0x07,0x69,0x9e,0xf7,0xfc,0xf9,
+/* 0x00e090 */ 0xdf,0xb2,0xd6,0xe4,0x1f,0x15,0x7d,0x6f,0xc0,0xfe,0xc2,0x42,0xab,0x63,0xe7,0x86,
+/* 0x00e0a0 */ 0x5f,0x72,0x9a,0xcc,0xa9,0xd9,0x01,0x65,0xff,0x91,0xf5,0x4d,0xcb,0x4a,0x29,0x6f,
+/* 0x00e0b0 */ 0x36,0xc3,0x3a,0x1b,0xff,0xa2,0x2e,0xb0,0x2e,0x33,0x26,0x95,0xa3,0x1f,0xc2,0x27,
+/* 0x00e0c0 */ 0xf7,0x2d,0xd2,0x27,0xfd,0x53,0xfd,0x7b,0xe2,0x33,0xd9,0x62,0xa9,0xe5,0x8e,0xfc,
+/* 0x00e0d0 */ 0xef,0x27,0x27,0xbc,0xea,0xf5,0x8b,0xb3,0xf1,0x2f,0x6d,0xd4,0x85,0x5d,0x5a,0x6c,
+/* 0x00e0e0 */ 0x2e,0x91,0x00,0x3a,0x56,0x6c,0x89,0x8f,0xa4,0x7a,0xe1,0x59,0x87,0x76,0xb1,0x03,
+/* 0x00e0f0 */ 0xe6,0xa3,0x44,0x2d,0x79,0xf1,0xfc,0xbf,0x75,0xfe,0xbc,0x9e,0xc3,0x70,0x2e,0x02,
+/* 0x00e100 */ 0x9b,0x8e,0x60,0x98,0x31,0x20,0xc5,0xe8,0x26,0x36,0x9d,0x33,0xd6,0xb7,0x21,0x57,
+/* 0x00e110 */ 0x8c,0xde,0x0e,0x25,0xa9,0x79,0x2c,0xff,0x3a,0x6d,0xfe,0x90,0x7a,0xf3,0x12,0xb1,
+/* 0x00e120 */ 0x13,0x8a,0x2e,0xd1,0xc2,0x5d,0x56,0x33,0x14,0x15,0x09,0x94,0x6d,0xa6,0xf0,0x68,
+/* 0x00e130 */ 0x2f,0x40,0xce,0xd0,0xe3,0x8a,0x56,0x19,0xc7,0xce,0x78,0xff,0x2b,0x39,0x8a,0x17,
+/* 0x00e140 */ 0x3c,0x9e,0xc7,0x71,0x75,0x5d,0xcd,0x05,0xd6,0x0f,0x59,0x73,0x93,0x92,0xa9,0xf9,
+/* 0x00e150 */ 0xaf,0x70,0x11,0x32,0x85,0x0b,0x51,0x65,0x6c,0x28,0xfd,0xa8,0xac,0xf4,0x38,0x47,
+/* 0x00e160 */ 0xa6,0x6f,0xf1,0xd6,0xbf,0xd6,0x29,0xaa,0x76,0xc6,0xfe,0x43,0xe3,0xb7,0xc6,0xdc,
+/* 0x00e170 */ 0x7d,0x6a,0xa4,0x9e,0xde,0xff,0x0f,0xd3,0x2f,0x07,0x15,0x7c,0x06,0xbc,0xa8,0xc4,
+/* 0x00e180 */ 0x47,0xb8,0x4a,0xb7,0x48,0xdc,0x6a,0xd6,0x7c,0xea,0xd8,0xf5,0xaf,0xa5,0x67,0xac,
+/* 0x00e190 */ 0x7f,0xd5,0x7b,0x1d,0xed,0x3d,0xf6,0x0e,0xcc,0x51,0x26,0x0d,0x4f,0x7f,0x5c,0x3a,
+/* 0x00e1a0 */ 0xee,0xd8,0xd4,0x7d,0x02,0xff,0x63,0x78,0x52,0x76,0xca,0xf9,0xf6,0x1f,0x3a,0x1b,
+/* 0x00e1b0 */ 0x8f,0xb1,0xbe,0x4e,0xb0,0xf5,0x26,0x7f,0x71,0x06,0x9e,0x23,0x97,0x27,0xd4,0x1d,
+/* 0x00e1c0 */ 0x18,0x16,0x7e,0x68,0x3a,0x07,0xda,0x8f,0xe8,0xad,0xb0,0xab,0x52,0x5f,0xa9,0xb3,
+/* 0x00e1d0 */ 0xac,0x7f,0x29,0xde,0xb1,0x1b,0x8f,0xc3,0x6e,0x43,0x31,0xa5,0xc3,0xc6,0x9f,0xf3,
+/* 0x00e1e0 */ 0xfd,0x87,0x59,0x5f,0x17,0xfc,0x95,0xf2,0xb5,0x11,0x41,0xcd,0x1e,0x54,0x22,0x7c,
+/* 0x00e1f0 */ 0x47,0xa2,0xe7,0xbf,0xce,0xfd,0xfe,0x17,0x86,0x8e,0x4f,0xe5,0x04,0xc9,0x7a,0x05,
+/* 0x00e200 */ 0x06,0x72,0x5f,0x35,0xc3,0x3d,0xd2,0x64,0xfd,0xaf,0x06,0x2f,0x79,0x9b,0x3f,0x67,
+/* 0x00e210 */ 0x28,0xb0,0x88,0xa9,0xf4,0x24,0x2f,0xd2,0x4e,0xdf,0x7f,0xf8,0x66,0x70,0x54,0x75,
+/* 0x00e220 */ 0x3f,0x66,0xfb,0x26,0xee,0xd1,0xf4,0x23,0x38,0x78,0x3e,0x93,0xd8,0x0d,0xcd,0xbd,
+/* 0x00e230 */ 0xe1,0xa9,0x52,0x7b,0xe1,0x51,0xc3,0x39,0x7f,0x63,0xb7,0xa5,0xaf,0x53,0x46,0xf9,
+/* 0x00e240 */ 0xaf,0xf3,0xaf,0x7f,0xc1,0x9c,0xb2,0x7a,0xcc,0xf7,0xaf,0xd8,0x8c,0x17,0x95,0x6e,
+/* 0x00e250 */ 0x2a,0xa7,0x16,0xd0,0x0f,0xbb,0x16,0xe6,0x84,0xea,0xd9,0x72,0xcb,0x9e,0x87,0x1f,
+/* 0x00e260 */ 0xda,0xe0,0xf1,0xaf,0x73,0xaf,0x7f,0xa5,0xca,0xce,0x0b,0x26,0x96,0xa5,0x7f,0x00,
+/* 0x00e270 */ 0x97,0xeb,0x93,0xa4,0x4a,0xc8,0x77,0x54,0x3a,0xa1,0xfc,0x5d,0x70,0x52,0xe1,0x0c,
+/* 0x00e280 */ 0xfe,0x55,0x73,0xbe,0xf3,0xe7,0x67,0xa7,0xf7,0xc3,0xa3,0xbd,0x38,0x1a,0x53,0x3e,
+/* 0x00e290 */ 0xe3,0x91,0x10,0xaa,0xe7,0x34,0x41,0xcd,0xbc,0x78,0xde,0x59,0xff,0xca,0x9f,0x6b,
+/* 0x00e2a0 */ 0xff,0x61,0xd7,0x84,0x52,0x74,0x06,0x56,0x43,0xd4,0xfe,0x22,0x98,0xc3,0xbf,0x8e,
+/* 0x00e2b0 */ 0xe7,0x4f,0xb2,0x85,0x3d,0xe2,0xd5,0xb0,0xcf,0xf0,0xfd,0x65,0x7e,0x32,0x43,0x16,
+/* 0x00e2c0 */ 0xfb,0x60,0x4c,0xdf,0x64,0x44,0x2d,0x65,0x57,0x4d,0x4c,0xd9,0x14,0x16,0xaa,0x61,
+/* 0x00e2d0 */ 0xb6,0x09,0x1e,0xb4,0x03,0xf2,0xcf,0x7a,0xfe,0xfc,0x95,0x75,0x9b,0x69,0x19,0xe3,
+/* 0x00e2e0 */ 0x8d,0x67,0x9b,0xea,0xf2,0x1c,0xdc,0x74,0xc5,0x85,0xf6,0x41,0x88,0x0f,0x23,0x65,
+/* 0x00e2f0 */ 0xa8,0xa1,0x63,0xf8,0xd7,0x79,0xce,0x9f,0xcf,0xfb,0x20,0x3f,0x02,0xad,0x8a,0x22,
+/* 0x00e300 */ 0x49,0xfc,0xfd,0xaf,0x85,0xfc,0xd8,0x43,0x4b,0x1a,0xd2,0x2f,0x85,0x5a,0xf8,0x8c,
+/* 0x00e310 */ 0xe7,0xcf,0x7f,0x02,0xd3,0xf8,0xdb,0x5e,0xc7,0xee,0xe7,0x5f,0xfb,0xe2,0x27,0x19,
+/* 0x00e320 */ 0xde,0xff,0xd1,0xc5,0x17,0x09,0x55,0xf9,0x64,0xd3,0x37,0x0c,0xfe,0x46,0xd8,0x98,
+/* 0x00e330 */ 0xfd,0x87,0x67,0x3f,0x7f,0x5e,0xd0,0xb7,0x6d,0xbe,0x63,0x0c,0x23,0xe8,0x8c,0xa8,
+/* 0x00e340 */ 0x9d,0x4f,0x34,0xfe,0xc9,0x2a,0xdf,0x31,0x63,0xbf,0x82,0xfc,0xeb,0x1f,0x2a,0xf5,
+/* 0x00e350 */ 0x75,0x96,0xf5,0x2f,0xed,0xf4,0xd3,0x36,0x76,0x4b,0x56,0x19,0xf9,0x57,0xb0,0x76,
+/* 0x00e360 */ 0xc6,0x73,0xa6,0xfe,0x73,0xc2,0x55,0xad,0x16,0x3b,0x98,0xb9,0x14,0x26,0x48,0x15,
+/* 0x00e370 */ 0xfe,0x75,0xc6,0xfa,0x57,0xd5,0x59,0x16,0xc2,0x06,0x37,0x81,0x6e,0x66,0xea,0x1a,
+/* 0x00e380 */ 0xf9,0xf1,0x26,0xcd,0x69,0x2e,0x61,0x39,0xf1,0xd9,0xaf,0x1a,0xfa,0x99,0xf6,0x1f,
+/* 0x00e390 */ 0xfe,0x35,0x9b,0xdd,0x37,0x61,0xbb,0xf4,0x7c,0xec,0xc7,0x7a,0x34,0xbd,0x44,0xab,
+/* 0x00e3a0 */ 0xe2,0x6d,0xec,0x3b,0xa2,0xde,0x61,0x9b,0xd1,0xc8,0xb3,0x57,0xea,0xfd,0x6c,0xeb,
+/* 0x00e3b0 */ 0x5f,0xee,0xa4,0xc1,0x49,0x65,0xa1,0x39,0x69,0x47,0xfd,0x71,0x69,0x10,0x5a,0x97,
+/* 0x00e3c0 */ 0xab,0x7f,0xca,0x27,0x16,0x98,0xdd,0x9e,0x29,0x52,0xb3,0xb5,0xcb,0x4a,0xf5,0x31,
+/* 0x00e3d0 */ 0xf7,0x14,0x1a,0x67,0xfd,0x6b,0xd6,0xb9,0xd6,0xbf,0xc4,0x32,0x8a,0x2e,0x16,0xd4,
+/* 0x00e3e0 */ 0xf6,0xf8,0x7e,0x69,0x9c,0xb4,0x6c,0x09,0x7c,0x54,0x5a,0xb8,0xee,0x2c,0xfb,0x0f,
+/* 0x00e3f0 */ 0xc7,0xbe,0xff,0xe5,0x00,0xa3,0x55,0x9b,0x54,0x98,0x10,0x41,0x92,0x15,0x57,0xd4,
+/* 0x00e400 */ 0x42,0xbd,0xee,0xae,0x5c,0x23,0x7f,0x8f,0xb6,0x86,0x27,0xb1,0x2d,0x5e,0xfb,0x71,
+/* 0x00e410 */ 0xf8,0x97,0x3e,0x60,0xf3,0xaf,0x2b,0x4f,0x5f,0xff,0x32,0xe6,0x3f,0x8e,0xa0,0x09,
+/* 0x00e420 */ 0xfe,0x68,0x68,0x3a,0xdb,0x5c,0xf6,0x35,0x21,0x7b,0x10,0xaa,0xb7,0xe0,0x27,0xe6,
+/* 0x00e430 */ 0x7f,0xfa,0xf9,0x84,0x37,0x25,0x8f,0xb5,0x9d,0xff,0xfc,0x8d,0x4c,0x8c,0xbf,0xc7,
+/* 0x00e440 */ 0xba,0x24,0xb1,0x5d,0xd3,0xb3,0xca,0x02,0x1c,0xb5,0x5a,0x2d,0x31,0xc4,0x0d,0xc1,
+/* 0x00e450 */ 0x86,0x9c,0x7e,0x64,0x74,0x1c,0xee,0xf0,0xaf,0xc8,0x59,0xd7,0xbf,0x9e,0x62,0x33,
+/* 0x00e460 */ 0x02,0x13,0x16,0x48,0x3d,0xca,0x3d,0x10,0x31,0x6a,0x6e,0x91,0x1a,0xd8,0x13,0x8a,
+/* 0x00e470 */ 0x78,0x9b,0xe9,0x60,0xf4,0xcf,0xc4,0x91,0xe9,0x79,0x2f,0x97,0xc3,0xbf,0x9a,0x3c,
+/* 0x00e480 */ 0xfe,0x85,0x63,0xef,0xfb,0x79,0x8f,0x88,0xcd,0x38,0xba,0xec,0xbf,0xf9,0xbe,0x95,
+/* 0x00e490 */ 0x7c,0x25,0x17,0x37,0xd5,0xdb,0xb7,0x7c,0x05,0xfe,0x8f,0xb0,0xa9,0xff,0x05,0xd2,
+/* 0x00e4a0 */ 0xae,0x96,0xf2,0x32,0x67,0x6b,0xe2,0xf9,0xd7,0xbf,0xea,0x79,0x4c,0x32,0x1b,0x50,
+/* 0x00e4b0 */ 0xf2,0x30,0x7b,0x03,0x1f,0xd5,0xb2,0x07,0x52,0x1f,0xd3,0x0f,0x89,0x1d,0x55,0x3e,
+/* 0x00e4c0 */ 0x70,0xd2,0xf8,0x99,0x25,0xbe,0x27,0xc5,0x77,0x5e,0x2d,0x3b,0xdb,0xfb,0x5f,0x95,
+/* 0x00e4d0 */ 0x83,0x38,0x90,0x91,0xb5,0x98,0xea,0x07,0x4f,0xff,0x0d,0x3c,0x5f,0x58,0xa4,0x77,
+/* 0x00e4e0 */ 0xa0,0xca,0xd8,0x57,0x12,0xef,0x7f,0x7d,0xa8,0x1e,0xb0,0x2e,0x3b,0xf2,0x83,0x11,
+/* 0x00e4f0 */ 0xdf,0x42,0xb4,0xb9,0xec,0xd8,0xa4,0x93,0x6e,0xfc,0x73,0x8e,0xfd,0x87,0xfa,0xc5,
+/* 0x00e500 */ 0x14,0x9d,0x54,0x98,0x3d,0xc3,0x4f,0x32,0x5c,0x81,0xfc,0x74,0xa3,0x16,0xb1,0xae,
+/* 0x00e510 */ 0xe4,0xe7,0x16,0x16,0xf4,0x8b,0x0f,0x4e,0x48,0x56,0xfc,0xd7,0x5b,0x76,0xfb,0xd9,
+/* 0x00e520 */ 0x79,0xb6,0xf5,0x2f,0xfa,0x14,0x5c,0xc7,0x9d,0xdd,0xae,0xc8,0x3d,0xd0,0x9c,0x55,
+/* 0x00e530 */ 0xfa,0xea,0x76,0xc1,0x46,0x7f,0xc4,0xba,0x90,0x9f,0xec,0x31,0x00,0x6b,0x86,0x26,
+/* 0x00e540 */ 0x58,0x52,0x03,0xe1,0x67,0xd4,0x5f,0xd9,0x57,0x65,0xd9,0x2c,0x6e,0xf4,0xfa,0xd7,
+/* 0x00e550 */ 0xe8,0xc0,0xfe,0x4d,0xc8,0xc4,0xef,0x9f,0x48,0xf2,0xb4,0x39,0xa1,0xc8,0xd2,0x6c,
+/* 0x00e560 */ 0x23,0x6f,0x99,0xd6,0x35,0xf1,0x3a,0x0b,0xd8,0xe0,0x9b,0x07,0xaf,0xf4,0x4b,0xaa,
+/* 0x00e570 */ 0x6c,0x1b,0x4f,0x1e,0xb1,0xfd,0xc5,0x5b,0x67,0x3d,0x7f,0xe3,0x43,0x78,0x94,0xa9,
+/* 0x00e580 */ 0x1f,0xfa,0x36,0xa6,0xf9,0x21,0xbd,0xcd,0x25,0xdf,0x93,0xc6,0xb3,0x4f,0x8b,0xd5,
+/* 0x00e590 */ 0xae,0x37,0xa5,0x67,0x5f,0xfd,0xfa,0x89,0x1f,0x30,0xe1,0xdf,0xbf,0x6e,0xef,0x6f,
+/* 0x00e5a0 */ 0x11,0xf7,0x55,0x82,0x51,0xd3,0xfb,0x95,0x72,0x90,0x76,0x7d,0x75,0x8f,0xef,0x38,
+/* 0x00e5b0 */ 0x7f,0x33,0x7a,0xc7,0x0f,0xb6,0xa3,0xc4,0x79,0x6b,0xec,0x04,0xbc,0x67,0x2c,0x1c,
+/* 0x00e5c0 */ 0x72,0xdf,0x35,0x1b,0xb5,0xfe,0x95,0xd0,0x9c,0xe3,0xb5,0x31,0x26,0x71,0x3f,0x1d,
+/* 0x00e5d0 */ 0xfb,0x31,0x45,0x7f,0x7a,0x42,0x8d,0x63,0x98,0xf1,0x7c,0x79,0x8e,0xa1,0x7c,0x50,
+/* 0x00e5e0 */ 0x7f,0x39,0x3c,0xaf,0x7c,0x83,0xd3,0xae,0x4f,0xe1,0x00,0x9b,0xc3,0xd4,0x43,0xfc,
+/* 0x00e5f0 */ 0xd5,0x30,0x67,0xfd,0xcb,0xb0,0xdf,0x23,0x63,0x37,0x09,0xba,0x74,0xe5,0x9e,0xea,
+/* 0x00e600 */ 0x87,0xbd,0xb3,0x35,0xe8,0xa3,0x30,0x17,0x96,0xf2,0x63,0x1c,0xf2,0xe6,0x2c,0x73,
+/* 0x00e610 */ 0xe4,0x21,0xa4,0x93,0x9b,0x19,0x12,0xa8,0x3d,0xad,0x6f,0x49,0x45,0xab,0xa9,0xa4,
+/* 0x00e620 */ 0xec,0x12,0x0b,0x19,0x22,0xea,0x3e,0x92,0x16,0xfe,0x0b,0x3c,0xfe,0xb5,0xc2,0xe6,
+/* 0x00e630 */ 0x71,0x17,0xda,0x71,0x66,0x94,0x29,0x7b,0x6a,0x66,0x43,0x91,0x46,0xef,0x9f,0x55,
+/* 0x00e640 */ 0x97,0x6c,0x86,0x3f,0xc9,0xcf,0xe6,0xe7,0x28,0x8e,0xe4,0x37,0x37,0x45,0x47,0x14,
+/* 0x00e650 */ 0x5a,0x89,0x33,0xcf,0xbd,0xfe,0x35,0x19,0x01,0x6b,0xd4,0xfd,0x71,0xec,0xd4,0x79,
+/* 0x00e660 */ 0x68,0x62,0xb3,0x34,0xe9,0x40,0xdd,0x76,0xc1,0xa9,0x79,0x7d,0xc1,0x4f,0x0c,0x05,
+/* 0x00e670 */ 0x6a,0x54,0x77,0xe3,0xa8,0xe3,0xbf,0x2c,0x67,0xfd,0x6b,0xd9,0x9e,0x2a,0x6f,0xdb,
+/* 0x00e680 */ 0x21,0x6f,0xf3,0x51,0x68,0xde,0x83,0x41,0x20,0xfa,0x2f,0x63,0x62,0x1c,0xd9,0x31,
+/* 0x00e690 */ 0x56,0x9c,0x35,0x1b,0xe3,0x79,0xd5,0x82,0x56,0xd6,0xc4,0x04,0x5f,0xfe,0x43,0x11,
+/* 0x00e6a0 */ 0xcf,0x13,0x71,0x5f,0xfa,0x34,0x71,0xe4,0x35,0x0f,0x0b,0x9f,0x74,0xb6,0x6e,0x62,
+/* 0x00e6b0 */ 0x7c,0xf8,0xbe,0xb4,0x88,0xf0,0xf8,0x50,0xfa,0x54,0x5a,0x64,0x7c,0xdf,0xf2,0x7d,
+/* 0x00e6c0 */ 0x8f,0xbe,0x8d,0xa1,0xbe,0x7c,0xc2,0x77,0x42,0x71,0x96,0xc6,0xbc,0x7d,0x9e,0x6f,
+/* 0x00e6d0 */ 0x4e,0x11,0xcf,0x19,0xf6,0x82,0xaf,0xcf,0x58,0xad,0xcd,0xa7,0x53,0x2d,0x0e,0xb2,
+/* 0x00e6e0 */ 0xf3,0xb3,0xd3,0x06,0x10,0xbc,0x6a,0xcc,0xa7,0xb5,0x96,0xaf,0x9f,0xfc,0xb3,0x36,
+/* 0x00e6f0 */ 0x45,0x9b,0xb6,0xd7,0xd7,0x8f,0xaa,0xdb,0x28,0xd9,0x07,0x71,0x63,0x97,0x36,0x3f,
+/* 0x00e700 */ 0x88,0xaa,0x9b,0x8d,0xd7,0xb4,0xf9,0x5a,0xad,0xd5,0x62,0x37,0xe8,0x44,0x5a,0xee,
+/* 0x00e710 */ 0x27,0x0d,0xc6,0x2a,0x2d,0x34,0x1c,0xea,0x27,0xaa,0x99,0xd2,0xc2,0xc3,0xd0,0x42,
+/* 0x00e720 */ 0x3a,0x8c,0x14,0x4a,0x50,0xa5,0x1a,0x53,0x34,0xcd,0x82,0x16,0x79,0x35,0x4a,0x64,
+/* 0x00e730 */ 0xae,0x5a,0x6d,0xac,0x0a,0x66,0x6d,0x15,0xe6,0xb2,0x5a,0xec,0x79,0xa4,0x42,0x0d,
+/* 0x00e740 */ 0xd1,0x59,0x87,0x5e,0xa7,0xd0,0x3c,0x82,0xd5,0xe6,0x14,0x85,0x6e,0x24,0x7d,0x2c,
+/* 0x00e750 */ 0xa3,0x4f,0xb6,0x25,0x8a,0xbe,0x22,0x0c,0x79,0xd2,0x8f,0x92,0x29,0xb6,0x24,0x13,
+/* 0x00e760 */ 0xa9,0x53,0xe4,0x21,0x32,0x9d,0xad,0xd6,0xeb,0x9a,0xa8,0xfd,0x7a,0x25,0x12,0x42,
+/* 0x00e770 */ 0x85,0x98,0xfe,0x1e,0x98,0x0c,0x32,0xe3,0x40,0x9a,0xac,0x0d,0x58,0x11,0x93,0xf6,
+/* 0x00e780 */ 0x24,0xa7,0x70,0xc9,0x9a,0x4d,0xab,0x51,0x35,0x30,0x14,0x31,0x49,0x38,0x89,0x36,
+/* 0x00e790 */ 0x05,0xbd,0x0f,0xd0,0x58,0x1b,0x40,0xe3,0x22,0x82,0xb8,0xec,0x96,0xd3,0x96,0x69,
+/* 0x00e7a0 */ 0x5b,0x4f,0x56,0xb3,0x4e,0x5d,0x1e,0x69,0x6b,0x45,0xb0,0xaa,0x85,0x8e,0x50,0x94,
+/* 0x00e7b0 */ 0x3c,0xd0,0xa9,0x07,0x47,0xda,0xe6,0x68,0x0d,0x6c,0x55,0x44,0x1e,0x91,0xd7,0x93,
+/* 0x00e7c0 */ 0x0c,0x9b,0xa2,0x87,0x6c,0x9b,0xce,0xa6,0x90,0x6b,0xec,0xdd,0xd7,0x5e,0x03,0x3b,
+/* 0x00e7d0 */ 0x5a,0x98,0x4a,0x40,0x98,0xa1,0x43,0x18,0xaa,0x12,0xd8,0x44,0x4c,0x98,0x4a,0x25,
+/* 0x00e7e0 */ 0x02,0x28,0x21,0x08,0x20,0x80,0x12,0x4d,0x89,0xb4,0x43,0x42,0xd8,0x70,0xe3,0x82,
+/* 0x00e7f0 */ 0x6d,0xac,0x10,0xe6,0x3c,0xe7,0xbd,0x4b,0xa9,0x4e,0x14,0xd6,0xae,0x03,0xa3,0x26,
+/* 0x00e800 */ 0x82,0xe4,0x82,0xc4,0x66,0x1a,0x15,0x92,0x40,0x91,0xae,0xe5,0x20,0xac,0x15,0x29,
+/* 0x00e810 */ 0xf2,0x28,0x96,0xd4,0x35,0xc6,0x25,0x07,0xdb,0x41,0x2b,0x08,0x55,0x32,0xae,0xb9,
+/* 0x00e820 */ 0xe5,0xb4,0x25,0x65,0x83,0x2d,0x2f,0xaf,0x6c,0x92,0x2f,0x92,0x97,0xb3,0x6c,0xb9,
+/* 0x00e830 */ 0x6b,0x9d,0x7c,0x85,0x9c,0xcc,0x2d,0x3f,0xb2,0x72,0x5d,0xe8,0x5b,0x72,0x27,0xaa,
+/* 0x00e840 */ 0xba,0x9a,0x42,0x35,0x72,0x9a,0x19,0x1c,0x5c,0x24,0xaf,0xc8,0x2d,0x7f,0x64,0x65,
+/* 0x00e850 */ 0x53,0xe8,0x02,0x39,0x9b,0xcb,0x96,0xd3,0x4a,0x08,0x9c,0xfb,0x62,0xd3,0x48,0x27,
+/* 0x00e860 */ 0xac,0xb4,0x42,0xf1,0xd0,0xb7,0x11,0xac,0xb6,0x42,0xb7,0xc8,0x07,0xc8,0x2a,0x58,
+/* 0x00e870 */ 0x79,0x62,0x4a,0x9f,0x7c,0x2d,0xe9,0x34,0x50,0x15,0x94,0x3b,0x50,0xd2,0x65,0x85,
+/* 0x00e880 */ 0xfa,0xe4,0x6f,0x73,0x95,0x15,0x88,0x73,0x15,0xcf,0x35,0x57,0x36,0xdc,0xfa,0xa2,
+/* 0x00e890 */ 0x5a,0x12,0x43,0x4e,0x0a,0x84,0x42,0x92,0x21,0xc8,0x62,0x87,0x31,0x20,0x60,0xa0,
+/* 0x00e8a0 */ 0xa4,0x0a,0x12,0x10,0xc0,0x98,0x84,0xf0,0xef,0x7f,0x38,0x36,0x06,0x68,0x09,0xe2,
+/* 0x00e8b0 */ 0x00,0xa0,0x1a,0x21,0x4e,0x39,0x7b,0x4d,0x49,0xc1,0xee,0x88,0x0d,0xa5,0x89,0x03,
+/* 0x00e8c0 */ 0x49,0xb7,0x8a,0x7a,0xa3,0x02,0x1b,0x24,0xde,0x74,0x24,0x45,0xd9,0x80,0x31,0x09,
+/* 0x00e8d0 */ 0x97,0x28,0xa8,0x62,0xd0,0xa4,0xa3,0x0d,0x8d,0x94,0x8b,0x68,0xac,0xf0,0x5c,0x45,
+/* 0x00e8e0 */ 0xe2,0xd6,0x57,0x56,0x36,0xe1,0x55,0xe8,0x86,0x50,0x49,0x36,0xc9,0x61,0xe8,0x36,
+/* 0x00e8f0 */ 0x66,0x30,0xb9,0x17,0xbe,0x89,0x20,0x54,0xf2,0x9b,0xe4,0x9b,0xb0,0x02,0x56,0xb2,
+/* 0x00e900 */ 0x50,0x4c,0xe6,0xaa,0x69,0xa5,0xea,0x5e,0x94,0x38,0xc6,0x02,0x78,0xf5,0x65,0xf8,
+/* 0x00e910 */ 0xd6,0x02,0x6f,0x6c,0xb5,0x8c,0x70,0x30,0x1f,0x28,0xf3,0xf5,0xc1,0x61,0x72,0x29,
+/* 0x00e920 */ 0x4c,0xe3,0x0d,0x60,0x04,0xba,0xf9,0x8c,0xef,0x7a,0xac,0xe5,0xf9,0x20,0x3e,0xf1,
+/* 0x00e930 */ 0x7a,0x18,0x30,0x62,0xb5,0x10,0xbc,0xc6,0x41,0xa5,0x9c,0x58,0x3c,0x17,0xd6,0x7d,
+/* 0x00e940 */ 0xa0,0x8d,0xe8,0x1c,0x54,0x01,0xcb,0x07,0xcd,0x01,0x55,0x4a,0x2a,0x9a,0x85,0x94,
+/* 0x00e950 */ 0x56,0xd1,0xa7,0x43,0x29,0x4f,0xcd,0x92,0xaa,0x57,0x29,0x60,0xc5,0xf4,0x9c,0x2a,
+/* 0x00e960 */ 0xa5,0x94,0x00,0x13,0xb9,0x52,0x50,0x72,0xdb,0x21,0x03,0x1c,0xa8,0x15,0xea,0xc3,
+/* 0x00e970 */ 0xa1,0x08,0x47,0x5a,0x05,0x78,0xf3,0x43,0x4a,0xa5,0x52,0x1f,0xb1,0x25,0x5c,0x85,
+/* 0x00e980 */ 0x12,0x4d,0xc5,0x67,0x2d,0x24,0xaa,0x90,0x08,0x63,0x9e,0xcb,0xad,0x2f,0x89,0xc4,
+/* 0x00e990 */ 0x07,0x3b,0xf4,0xfa,0x0c,0x1d,0xb2,0x01,0x76,0xc6,0x40,0xdc,0xee,0xb9,0x28,0xc1,
+/* 0x00e9a0 */ 0xee,0xc9,0x25,0x24,0x9e,0x13,0xaa,0x67,0x45,0xa7,0x16,0x20,0x6e,0x03,0xb7,0x1c,
+/* 0x00e9b0 */ 0x6c,0x87,0xe6,0x60,0x8f,0xde,0xad,0x84,0xf2,0xa3,0x40,0x8e,0x03,0x62,0x83,0x2a,
+/* 0x00e9c0 */ 0x2e,0xd1,0xf1,0x2e,0xb8,0x8a,0xda,0xaa,0x80,0x6b,0x83,0xcf,0xd9,0xa9,0xaf,0x24,
+/* 0x00e9d0 */ 0xd6,0x9e,0xaa,0x4b,0x19,0x51,0xf9,0xaa,0xee,0xb6,0x02,0x04,0x86,0x0b,0x3c,0xd5,
+/* 0x00e9e0 */ 0xe9,0x12,0x01,0xbc,0x7e,0xb1,0x02,0x7f,0x42,0xd5,0xdb,0x95,0xc0,0x76,0xda,0xcb,
+/* 0x00e9f0 */ 0x41,0x26,0xc0,0x7f,0x74,0x2a,0x4a,0x08,0x97,0xe0,0x93,0xe7,0x12,0x7d,0xd0,0xb1,
+/* 0x00ea00 */ 0xb1,0x55,0x02,0x84,0xb9,0xb1,0x57,0x8e,0x29,0xf7,0x40,0x3b,0x6f,0x22,0x7d,0x36,
+/* 0x00ea10 */ 0xb0,0x42,0x66,0xa8,0x87,0x74,0xa3,0x84,0xf4,0xc9,0xab,0x11,0x84,0xac,0x80,0x67,
+/* 0x00ea20 */ 0x63,0x06,0x7b,0xc8,0x14,0x01,0x64,0xdb,0x26,0x64,0x38,0xf7,0x05,0x55,0x24,0xc1,
+/* 0x00ea30 */ 0xb2,0x66,0x28,0x2c,0x4f,0x26,0xd8,0x4f,0xd1,0x50,0x6e,0x77,0x24,0xa1,0x6e,0xb2,
+/* 0x00ea40 */ 0x92,0x83,0x1e,0x99,0xdb,0x68,0x66,0x30,0x8c,0x60,0x39,0x5b,0x6e,0x4e,0xb1,0x41,
+/* 0x00ea50 */ 0x96,0x4b,0xc0,0x79,0xce,0x85,0x3a,0x31,0xce,0x18,0x19,0x5a,0x47,0x29,0x02,0x2d,
+/* 0x00ea60 */ 0x23,0x46,0x9e,0x84,0xae,0x29,0x50,0x07,0xd4,0x12,0x2a,0x94,0x20,0x13,0xd3,0x14,
+/* 0x00ea70 */ 0x5a,0x17,0x80,0x42,0x22,0xc2,0x01,0xaf,0x7a,0x6e,0xec,0x96,0x33,0xd8,0xed,0xcb,
+/* 0x00ea80 */ 0x96,0x0e,0x99,0x6b,0xc2,0xb5,0xdd,0x55,0x5a,0xe9,0x90,0x7e,0x6b,0x26,0x9c,0xf4,
+/* 0x00ea90 */ 0x2d,0x67,0x7b,0xf5,0x48,0x58,0xe9,0xae,0x0a,0xe6,0x0e,0x99,0x24,0x53,0x9b,0xf4,
+/* 0x00eaa0 */ 0x65,0x73,0x05,0x1d,0xaf,0x79,0x85,0x44,0xd8,0xcb,0xa6,0xae,0xd4,0x76,0x4b,0x1a,
+/* 0x00eab0 */ 0x3b,0x64,0xce,0xcb,0xd4,0xba,0xf7,0xd5,0x56,0x25,0xf7,0xe7,0x5e,0x33,0x57,0x85,
+/* 0x00eac0 */ 0xef,0xde,0x27,0xf7,0x33,0x0e,0xa6,0x6d,0x24,0xfd,0xb9,0x1e,0xb3,0x3b,0x1c,0xda,
+/* 0x00ead0 */ 0x37,0xa5,0x3f,0xb7,0x1a,0x25,0x81,0x7d,0x21,0x1b,0x84,0xd0,0x66,0x0c,0x70,0xfd,
+/* 0x00eae0 */ 0x4e,0x5b,0x3b,0xf4,0xa3,0x9b,0x98,0x1f,0xae,0x7d,0xc5,0xc7,0xc1,0x94,0x9e,0xda,
+/* 0x00eaf0 */ 0x7d,0xbe,0xfe,0xdc,0x61,0x94,0xc8,0xaf,0xf8,0x6e,0xcd,0xed,0x32,0x6f,0xeb,0x99,
+/* 0x00eb00 */ 0x86,0x12,0xfc,0x89,0xdb,0xc2,0xb5,0xfb,0xaa,0xfb,0xd9,0x3f,0xaf,0xb9,0x2d,0xbc,
+/* 0x00eb10 */ 0x94,0x83,0xd7,0xf0,0x41,0xd5,0x5a,0x01,0xa7,0x9c,0x2a,0xfc,0x75,0xd5,0xfd,0x09,
+/* 0x00eb20 */ 0x15,0x55,0x1c,0x0c,0x74,0x98,0x9d,0x61,0xba,0x4f,0x8e,0xe0,0x8f,0xae,0x08,0xcb,
+/* 0x00eb30 */ 0xfc,0x52,0x6d,0x1b,0xda,0x3f,0x30,0xea,0x7a,0xd0,0xd8,0x0a,0xd8,0xf1,0x06,0x4d,
+/* 0x00eb40 */ 0x72,0xb7,0xe5,0xf9,0x2f,0x7d,0x85,0xe3,0xa4,0x44,0x63,0x13,0xc0,0x53,0xd5,0xb9,
+/* 0x00eb50 */ 0xaa,0xd1,0x80,0x39,0xeb,0x20,0x58,0xef,0x6b,0xf0,0x69,0x4c,0x0e,0xcb,0x1b,0x3d,
+/* 0x00eb60 */ 0x10,0x58,0xc3,0x5c,0x89,0x00,0xa1,0x8a,0x8a,0x44,0x4e,0x57,0xa1,0x8f,0x73,0xee,
+/* 0x00eb70 */ 0xcb,0x90,0xfb,0xc8,0x6a,0x58,0x85,0xcd,0xcd,0x06,0x12,0x07,0xe0,0x4a,0xa0,0x41,
+/* 0x00eb80 */ 0x41,0x87,0x88,0x41,0x32,0xaa,0xa6,0x40,0xd0,0x22,0x36,0x08,0xd9,0x80,0xdb,0x04,
+/* 0x00eb90 */ 0x9c,0xfa,0x4a,0x82,0xc9,0xb0,0xf1,0x63,0x2f,0xb0,0xc1,0x15,0x24,0xcf,0x41,0x93,
+/* 0x00eba0 */ 0x90,0xf4,0x72,0x90,0x21,0xbc,0x37,0x61,0x2f,0x50,0x71,0x4c,0x35,0xd9,0x54,0x6e,
+/* 0x00ebb0 */ 0x9c,0x77,0x73,0x31,0xf7,0x39,0x27,0xb9,0x6f,0xd2,0x71,0xd4,0xc2,0x4e,0x94,0xf3,
+/* 0x00ebc0 */ 0xeb,0xc9,0x1a,0x0e,0x70,0xb4,0xb6,0x25,0xbc,0x33,0x66,0xf8,0xec,0x85,0xb0,0xe1,
+/* 0x00ebd0 */ 0x1d,0x2d,0xc7,0xbb,0xa7,0x96,0x07,0x91,0x2b,0xa3,0x55,0xca,0x41,0xff,0x95,0xd5,
+/* 0x00ebe0 */ 0xbb,0x94,0x90,0xe4,0x80,0x00,0x82,0xdc,0x28,0x49,0x10,0x03,0x68,0xd7,0x06,0x8d,
+/* 0x00ebf0 */ 0x73,0x1a,0x4a,0x42,0x12,0x71,0x6c,0xc0,0xb9,0x2f,0xe6,0x23,0x9a,0xd5,0x15,0x0f,
+/* 0x00ec00 */ 0xa9,0x72,0x0a,0x07,0x40,0x0e,0x70,0x24,0xcc,0x5a,0x5d,0xad,0x01,0x21,0x19,0x4c,
+/* 0x00ec10 */ 0xc7,0x57,0xaa,0x34,0xc5,0x25,0xb6,0x8d,0x6e,0x75,0xe9,0x2b,0x11,0xc8,0x8e,0xb1,
+/* 0x00ec20 */ 0x53,0x5b,0x40,0x79,0x37,0x42,0x7f,0x8b,0xce,0x99,0x3b,0x29,0x04,0x38,0x5e,0xa2,
+/* 0x00ec30 */ 0x47,0xc3,0xfe,0x14,0xe0,0x12,0xca,0x25,0x19,0x5b,0x05,0x9e,0x8d,0x03,0xd2,0xba,
+/* 0x00ec40 */ 0x5b,0xeb,0x90,0xc0,0x3c,0x0c,0xc7,0x5f,0xa5,0x88,0x9a,0x12,0x8f,0x42,0x14,0x49,
+/* 0x00ec50 */ 0x02,0x2e,0x41,0x0f,0x81,0xa0,0x00,0xba,0x1f,0x92,0x12,0xfe,0x57,0xd7,0x9b,0x78,
+/* 0x00ec60 */ 0x6e,0x61,0x6c,0x03,0x1d,0xfc,0x8a,0xe1,0xd6,0x17,0x54,0x9b,0x53,0xd1,0x37,0x61,
+/* 0x00ec70 */ 0xb4,0x33,0xa0,0x93,0x57,0x69,0xb7,0xc4,0x03,0x21,0x0c,0x72,0xb8,0x6f,0x22,0x7a,
+/* 0x00ec80 */ 0x04,0x83,0x9c,0x04,0x82,0x18,0xe1,0x31,0x52,0x88,0xa1,0xdb,0x0a,0x0b,0x95,0xac,
+/* 0x00ec90 */ 0xa3,0x04,0x7d,0x9c,0xfb,0x9c,0xd1,0x7f,0x99,0xda,0x6a,0x68,0x84,0x97,0xd9,0x06,
+/* 0x00eca0 */ 0x93,0xac,0xa6,0x97,0xda,0xe5,0x1c,0x16,0xb9,0xa8,0xa9,0x1f,0xc6,0x86,0x1a,0xe0,
+/* 0x00ecb0 */ 0x6e,0xab,0x01,0x6d,0xd0,0xc7,0x99,0x74,0x04,0x5d,0x9b,0xcc,0xaa,0x1d,0x47,0xc6,
+/* 0x00ecc0 */ 0xc0,0x4d,0x34,0xee,0x0f,0x43,0x8a,0x6f,0x0d,0x88,0xfb,0xa7,0x42,0x2a,0x09,0x07,
+/* 0x00ecd0 */ 0x21,0x2e,0xd7,0x12,0x1f,0x64,0xac,0x64,0x30,0xa2,0x82,0x8f,0x4b,0xe6,0x02,0xaa,
+/* 0x00ece0 */ 0x40,0xe3,0x2a,0x35,0x9c,0x32,0x0c,0x8b,0xce,0x25,0x2a,0xa4,0x0c,0x0c,0x1d,0xbd,
+/* 0x00ecf0 */ 0x34,0x17,0x94,0x8c,0xcf,0xd0,0x86,0xcd,0xb9,0xe0,0x07,0xdf,0x72,0x38,0x48,0xe3,
+/* 0x00ed00 */ 0x50,0x9b,0xf1,0xd5,0xc1,0x3e,0x3a,0x17,0xd4,0xb4,0xcf,0xc0,0x72,0xe6,0xe1,0x53,
+/* 0x00ed10 */ 0x42,0x6f,0x75,0x08,0x87,0x63,0x6e,0x0c,0xfb,0xc0,0x51,0x79,0xe5,0xc8,0xa4,0x25,
+/* 0x00ed20 */ 0xd1,0x91,0xad,0x0f,0x06,0x9f,0x21,0x2d,0xc6,0xd2,0x15,0xf5,0x41,0xba,0x97,0xb4,
+/* 0x00ed30 */ 0xa4,0x3b,0x7a,0xea,0x1b,0x38,0x30,0x3a,0x6e,0xf7,0x75,0x21,0x98,0x37,0xc8,0x6d,
+/* 0x00ed40 */ 0x28,0xda,0x58,0x02,0xec,0x95,0x51,0xd5,0x57,0xdf,0x45,0xbd,0x72,0xa6,0xcb,0xeb,
+/* 0x00ed50 */ 0x72,0x57,0xf7,0x75,0x6f,0x95,0x7f,0x24,0xaf,0x63,0xd7,0xe8,0xdd,0xc5,0xe0,0xfd,
+/* 0x00ed60 */ 0xf2,0xba,0xc1,0xab,0xf5,0x15,0xbb,0xe4,0x99,0x64,0x5d,0xee,0x5b,0xb7,0xa7,0x47,
+/* 0x00ed70 */ 0xe4,0x37,0xe4,0x9b,0x50,0xd2,0xbd,0x35,0xf4,0xa0,0xdc,0x34,0x88,0xc6,0xc5,0xd0,
+/* 0x00ed80 */ 0x9f,0xa3,0xea,0xea,0x78,0xf7,0x81,0x50,0xe5,0xf9,0x70,0x2f,0x0c,0x92,0x01,0x58,
+/* 0x00ed90 */ 0xc3,0x7c,0xc6,0x2a,0x8b,0x9c,0x4c,0x03,0xbf,0x21,0xf1,0xd8,0x28,0xc6,0x2b,0xdf,
+/* 0x00eda0 */ 0x20,0x25,0x98,0xc7,0x6f,0x59,0x47,0x55,0x84,0xfb,0x6e,0xbc,0x1d,0x54,0xa9,0x06,
+/* 0x00edb0 */ 0x02,0xaf,0x1c,0x85,0xde,0x10,0x50,0x0b,0xed,0x11,0x52,0x4c,0xdf,0xa0,0xa9,0x85,
+/* 0x00edc0 */ 0x54,0x44,0x2b,0xa6,0x5b,0x49,0x78,0x38,0xc9,0x25,0x6b,0x71,0x5c,0x6f,0x8f,0x00,
+/* 0x00edd0 */ 0x4a,0x02,0xe1,0x42,0x8a,0x04,0x8a,0xe9,0x28,0x09,0xa3,0x44,0x1b,0x41,0x95,0xca,
+/* 0x00ede0 */ 0xda,0x23,0x81,0xca,0xf5,0xb4,0x65,0xb5,0x74,0x7a,0x25,0x91,0x8d,0xb6,0x6c,0x24,
+/* 0x00edf0 */ 0x4d,0x97,0xcb,0x41,0x68,0xd3,0x02,0x41,0xba,0x1c,0x25,0x6b,0xb2,0x81,0x34,0x5d,
+/* 0x00ee00 */ 0x49,0xa8,0x91,0xd6,0xb4,0x2e,0x75,0x39,0x09,0x19,0x7b,0x51,0x95,0x5e,0xe9,0x0b,
+/* 0x00ee10 */ 0xba,0xaa,0x90,0xe1,0x5d,0x4f,0xa4,0x5d,0xc9,0xe6,0x83,0xba,0x2c,0xc0,0xc6,0x60,
+/* 0x00ee20 */ 0x64,0x40,0xd9,0x9d,0xe4,0x40,0x1f,0x50,0x22,0xc9,0x30,0xaa,0x22,0x77,0x73,0xd0,
+/* 0x00ee30 */ 0x85,0x36,0x03,0x99,0x48,0x52,0x18,0x73,0x95,0x9d,0xcb,0xbb,0x9c,0x1a,0x22,0x8d,
+/* 0x00ee40 */ 0x18,0x65,0xad,0x89,0x22,0xb0,0x38,0x08,0x22,0xc0,0xe8,0x34,0x8b,0x20,0x67,0x03,
+/* 0x00ee50 */ 0x5a,0x13,0x91,0x72,0xb6,0x4d,0x82,0x4b,0x34,0xa1,0x2a,0x0a,0x89,0x57,0x8e,0xea,
+/* 0x00ee60 */ 0xeb,0x84,0x43,0xd6,0xbc,0xb8,0xdc,0xb1,0x41,0x80,0xd6,0x69,0x1d,0x84,0x83,0x5b,
+/* 0x00ee70 */ 0x51,0xb2,0x9b,0x83,0x50,0x5c,0x48,0x82,0x56,0x4b,0x5c,0x51,0x6f,0x74,0x8d,0x7f,
+/* 0x00ee80 */ 0x64,0x83,0xda,0xca,0x7d,0xcd,0x58,0x9f,0x78,0xad,0xb4,0x2a,0x1a,0xda,0x3f,0xb0,
+/* 0x00ee90 */ 0xde,0x78,0x8d,0x4d,0x89,0xdd,0x8d,0x2c,0x00,0x56,0xef,0x58,0x1c,0x0b,0xed,0x97,
+/* 0x00eea0 */ 0xd7,0x47,0x1a,0x50,0x35,0x55,0x30,0x85,0xdc,0x64,0x3d,0xb4,0xbf,0x1a,0xc1,0x8e,
+/* 0x00eeb0 */ 0x55,0x3a,0x57,0x71,0x5e,0x10,0x09,0x79,0xed,0xc7,0x17,0x4b,0xef,0x0f,0xb4,0xa6,
+/* 0x00eec0 */ 0x3b,0x72,0xf5,0xb1,0xf4,0x20,0x07,0xdb,0xea,0x63,0xc6,0x7e,0x07,0xa4,0x4f,0x03,
+/* 0x00eed0 */ 0xea,0xe9,0x2a,0x8d,0xe7,0xf2,0xee,0x6b,0xd1,0xa9,0x65,0xa7,0x5e,0x3a,0xf5,0xde,
+/* 0x00eee0 */ 0xa9,0x4f,0xbe,0x18,0x80,0xd1,0x09,0x1b,0x01,0x71,0xc1,0x17,0x4d,0x8b,0x3e,0x9a,
+/* 0x00eef0 */ 0x30,0xff,0xa5,0x77,0xf6,0x3c,0xf1,0x09,0x82,0x3b,0x5e,0xfc,0x7b,0xfc,0x89,0xe6,
+/* 0x00ef00 */ 0xd7,0x97,0xfd,0xec,0xe9,0x53,0xef,0x7d,0x74,0x13,0x97,0x08,0x15,0x4a,0x9e,0x40,
+/* 0x00ef10 */ 0xd5,0x63,0x37,0xe1,0x65,0xa0,0x6a,0xcf,0x63,0x7f,0xe0,0xe5,0xaa,0x94,0xf3,0x71,
+/* 0x00ef20 */ 0xc7,0x0b,0x2f,0xfd,0x76,0xf8,0x85,0x4f,0x10,0x9c,0x7a,0x69,0x0e,0x96,0x33,0x67,
+/* 0x00ef30 */ 0xd1,0xb2,0x17,0xea,0x4f,0xbd,0xf7,0xf1,0x6f,0x84,0x84,0xab,0xb8,0x04,0x55,0x07,
+/* 0x00ef40 */ 0x7e,0x83,0xe5,0xa0,0x6a,0xf8,0xc0,0x27,0x22,0xd7,0x5d,0xa8,0xf2,0xca,0xb9,0xec,
+/* 0x00ef50 */ 0xbe,0xab,0x7e,0x51,0x77,0xdb,0xb1,0x77,0x4e,0xce,0x44,0x50,0xff,0xc4,0x8e,0xfb,
+/* 0x00ef60 */ 0xae,0xbf,0xec,0xbb,0x57,0xbd,0xbe,0xfd,0xbb,0x3b,0xfe,0x94,0x4b,0x7e,0xb9,0xe2,
+/* 0x00ef70 */ 0xb6,0x63,0xbf,0x46,0xc9,0x92,0x5f,0x74,0x3e,0xb1,0xe3,0xfb,0x27,0x67,0xde,0xcb,
+/* 0x00ef80 */ 0x55,0xc7,0xde,0x39,0xce,0x8d,0x3b,0xff,0xf8,0xd8,0xaf,0xff,0xa0,0x72,0x63,0x52,
+/* 0x00ef90 */ 0x3f,0x52,0xe0,0x99,0x41,0xbf,0x25,0xf5,0xe7,0x76,0x65,0x67,0x6a,0xfe,0xbd,0x52,
+/* 0x00efa0 */ 0x9f,0xb1,0xcb,0x58,0x45,0xb9,0x04,0x1a,0xb4,0x1b,0xb5,0xc0,0x80,0xc4,0xf9,0xf2,
+/* 0x00efb0 */ 0x62,0xea,0xdf,0x87,0x54,0x7a,0x17,0x54,0x6b,0x5c,0x85,0x7c,0x79,0xa6,0x36,0xcd,
+/* 0x00efc0 */ 0xab,0x77,0xea,0x30,0x5f,0xcd,0xa6,0xc0,0x29,0x4d,0xdb,0x47,0x91,0x14,0x5b,0x49,
+/* 0x00efd0 */ 0x6d,0x25,0x4a,0xa0,0x68,0xdc,0xa6,0x49,0xc3,0xb4,0x05,0x76,0x59,0x9c,0x41,0xd3,
+/* 0x00efe0 */ 0x7e,0xe4,0xcb,0x53,0x6c,0x63,0xce,0xb2,0x2b,0xe3,0xa1,0xe4,0xc4,0x12,0x48,0x81,
+/* 0x00eff0 */ 0xd1,0xe5,0xe8,0x53,0x00,0xc3,0x8c,0xf5,0x6e,0x50,0x11,0x11,0xa0,0x8a,0x91,0x9b,
+/* 0x00f000 */ 0x73,0x1d,0x4c,0x50,0x69,0x3b,0xcc,0x10,0xa1,0x08,0xc6,0xea,0x18,0x27,0x54,0x6e,
+/* 0x00f010 */ 0x6c,0x8d,0x82,0x4c,0x53,0xcb,0x21,0x2b,0xf1,0x37,0x24,0xab,0x20,0x37,0xac,0x23,
+/* 0x00f020 */ 0x63,0x5d,0x9b,0x44,0xc6,0x0a,0xbd,0xca,0x6a,0xa8,0xea,0x61,0xdb,0x75,0x53,0x09,
+/* 0x00f030 */ 0x4b,0xe8,0xbf,0x18,0xf2,0xe5,0x30,0xa9,0x0a,0xe7,0x2c,0x58,0x53,0xc4,0x5c,0x90,
+/* 0x00f040 */ 0xf3,0xae,0x47,0x49,0xaf,0x27,0x0d,0x2c,0xd5,0x14,0xd8,0x9f,0x6e,0x45,0x76,0xbc,
+/* 0x00f050 */ 0xf8,0x12,0x6d,0x04,0xa3,0x0b,0xb5,0x20,0xe9,0x38,0xc8,0xac,0x0f,0x74,0xb0,0x54,
+/* 0x00f060 */ 0x84,0x70,0x89,0xa2,0x57,0x73,0x49,0x2b,0xe1,0x63,0x54,0x80,0x03,0xcc,0x35,0x83,
+/* 0x00f070 */ 0x58,0x95,0xeb,0x39,0x9d,0x2f,0x73,0x9e,0x82,0xec,0xb8,0x20,0x08,0x4b,0x2f,0x57,
+/* 0x00f080 */ 0x19,0x81,0x12,0x97,0x08,0x95,0xc1,0xa3,0x56,0xd7,0x58,0x00,0xef,0x7a,0x68,0x23,
+/* 0x00f090 */ 0x72,0xe1,0x76,0x13,0x49,0xf1,0xf5,0xe0,0x2f,0x27,0xfb,0x02,0x3b,0x91,0x2f,0x4f,
+/* 0x00f0a0 */ 0x35,0x24,0xce,0x97,0x39,0x4d,0x6e,0xd7,0x82,0x45,0x1a,0xcb,0xf9,0x01,0x25,0x61,
+/* 0x00f0b0 */ 0xa4,0xc9,0x61,0xab,0xbd,0x4f,0xdb,0x4a,0x6f,0xe0,0x54,0xfa,0xf6,0x4a,0x0f,0x98,
+/* 0x00f0c0 */ 0x4d,0xaf,0xc8,0xd5,0x95,0xdb,0x1e,0x0a,0xcc,0xa6,0x57,0xb3,0xba,0x72,0xfa,0xa1,
+/* 0x00f0d0 */ 0xc0,0x7f,0xa6,0x99,0xdc,0xe4,0x38,0xe5,0x60,0x89,0x35,0xb9,0x2c,0x6f,0x0d,0xcc,
+/* 0x00f0e0 */ 0xa2,0x19,0x4b,0xd2,0x51,0xf2,0x1d,0x7a,0x75,0x6e,0x32,0x37,0x9e,0x85,0x40,0xe4,
+/* 0x00f0f0 */ 0x02,0x7b,0x3d,0x45,0xb1,0x6a,0xe1,0x1a,0x1c,0x5b,0xe4,0x3d,0xe4,0xef,0xe1,0x1a,
+/* 0x00f100 */ 0x63,0xb2,0x55,0xfd,0x38,0xb9,0x09,0x3a,0x61,0xf2,0x41,0x5f,0x9c,0x2c,0x85,0x6b,
+/* 0x00f110 */ 0x2c,0x6a,0xc9,0x4f,0xc2,0xdb,0x70,0x35,0xab,0x32,0x16,0xc7,0xc9,0x7f,0x41,0x55,
+/* 0x00f120 */ 0xf0,0x84,0xfc,0x24,0x79,0xc1,0xce,0xf5,0x38,0xb1,0xb7,0x75,0x63,0x39,0xed,0xba,
+/* 0x00f130 */ 0xe1,0x70,0x61,0x3d,0x51,0xe4,0x14,0x78,0x90,0xf3,0x65,0x6d,0x6d,0x02,0xc9,0x32,
+/* 0x00f140 */ 0xfe,0xa1,0x28,0xc1,0xe0,0x04,0x41,0x8e,0x33,0x68,0x6e,0x9c,0x44,0x9a,0x4c,0xed,
+/* 0x00f150 */ 0x5c,0x18,0x96,0xc4,0x9d,0x72,0x0c,0x89,0x2a,0x18,0x42,0x18,0x18,0x6f,0x54,0x29,
+/* 0x00f160 */ 0x39,0x09,0x81,0x16,0x05,0xc8,0x49,0xc2,0xc1,0xd0,0x8b,0x0b,0x44,0xc7,0x18,0x2a,
+/* 0x00f170 */ 0x4a,0xc3,0x72,0x1e,0x9b,0x17,0x57,0xe1,0x13,0xe1,0xc6,0x6e,0x2e,0xaf,0x9c,0x02,
+/* 0x00f180 */ 0x0f,0x21,0xda,0x21,0xc0,0x98,0x19,0x41,0x20,0xf1,0xd9,0x0c,0x08,0x2b,0xed,0x62,
+/* 0x00f190 */ 0x5a,0x83,0xec,0x44,0xd5,0x54,0x3e,0x1d,0x11,0x86,0x1b,0x50,0x52,0xe0,0xaa,0x1b,
+/* 0x00f1a0 */ 0xa4,0x6d,0xcc,0xce,0x85,0x34,0xc1,0x2e,0x47,0x23,0x86,0xd4,0x1b,0xde,0x05,0x8d,
+/* 0x00f1b0 */ 0x89,0x4d,0x16,0x82,0x4d,0x55,0x33,0x13,0xc5,0xd2,0xda,0x3e,0xb8,0xb7,0x4a,0x02,
+/* 0x00f1c0 */ 0x3f,0x7f,0xfb,0xb4,0x08,0x8d,0x06,0x94,0xa4,0x5b,0xc2,0xd3,0xaa,0xaa,0xc1,0x5f,
+/* 0x00f1d0 */ 0x5a,0xab,0x63,0xc9,0x8d,0x89,0x22,0x13,0xb9,0x6e,0x48,0xb0,0xbc,0x1d,0x49,0x19,
+/* 0x00f1e0 */ 0xe9,0x64,0x6c,0x6e,0x2e,0x1c,0x4f,0x21,0x59,0x8b,0x5d,0xba,0xc9,0xaf,0xb7,0x77,
+/* 0x00f1f0 */ 0x94,0x38,0x47,0xab,0x8d,0x5e,0xa7,0x68,0x43,0x30,0xb7,0xa8,0xe8,0xa9,0xcc,0xce,
+/* 0x00f200 */ 0xed,0xc1,0x1b,0x36,0xdd,0x8b,0xf4,0x4d,0x7b,0x11,0xf9,0xf2,0xd6,0x68,0x8a,0xbf,
+/* 0x00f210 */ 0xca,0xc5,0x73,0x5d,0x97,0x61,0xcc,0x8e,0xa3,0x78,0x61,0x2e,0x29,0xae,0xf0,0xe5,
+/* 0x00f220 */ 0xa8,0xa6,0x52,0xce,0x8e,0xd3,0xad,0x5c,0x85,0x0f,0x88,0xef,0x83,0x27,0x12,0x67,
+/* 0x00f230 */ 0xd0,0x48,0x9c,0x3d,0x63,0x01,0xec,0xfa,0x32,0x30,0x40,0x8b,0x33,0xb5,0xd5,0xa7,
+/* 0x00f240 */ 0xc0,0x90,0x1e,0xc7,0x28,0xd7,0xa7,0xe2,0xa5,0xc6,0x8b,0x6a,0xb4,0x5e,0xe1,0x7b,
+/* 0x00f250 */ 0x3a,0x2d,0x94,0x34,0x23,0x1b,0x45,0x9b,0x78,0x4a,0x61,0x43,0xba,0x8e,0x2a,0x34,
+/* 0x00f260 */ 0xce,0xeb,0x4e,0x2e,0xb7,0x9c,0x36,0x43,0x90,0x50,0xce,0x34,0x69,0x2f,0x41,0xee,
+/* 0x00f270 */ 0x69,0x70,0xee,0x39,0x38,0x55,0x5b,0xac,0x70,0x89,0xd1,0xa0,0x2f,0x4e,0x07,0x5e,
+/* 0x00f280 */ 0xa4,0xbd,0x89,0x6b,0xe3,0x48,0x4b,0x4b,0x18,0x87,0xe3,0xe3,0x35,0xb8,0x8a,0x53,
+/* 0x00f290 */ 0x57,0x04,0xce,0x7d,0x91,0xe4,0x19,0x14,0xd8,0x06,0x55,0x02,0xa0,0xb1,0xa4,0x88,
+/* 0x00f2a0 */ 0x78,0x1e,0x74,0x9f,0x2d,0xb1,0x27,0x54,0x84,0x4d,0x52,0x71,0xfb,0x45,0x96,0x24,
+/* 0x00f2b0 */ 0x39,0xf3,0x6d,0xc2,0xdf,0xca,0x17,0x04,0x05,0xae,0xe1,0x7c,0xf9,0x68,0x78,0x81,
+/* 0x00f2c0 */ 0x88,0xde,0x4d,0x0c,0xda,0xdb,0x79,0x60,0x6f,0x22,0x5f,0x4e,0xd5,0x70,0x9b,0xdd,
+/* 0x00f2d0 */ 0x15,0x63,0x0e,0x9c,0x72,0x30,0xc8,0xa0,0x59,0x82,0x21,0x06,0xc6,0xe5,0xb4,0x8b,
+/* 0x00f2e0 */ 0x03,0x23,0x60,0xa0,0x24,0x84,0x8e,0x88,0x4b,0x02,0x14,0x96,0x1b,0x80,0x12,0xde,
+/* 0x00f2f0 */ 0xe2,0xb9,0x24,0x0b,0x21,0x6e,0x63,0xe7,0x92,0x8d,0x40,0xd2,0xbe,0xaf,0x0c,0x8e,
+/* 0x00f300 */ 0x45,0x9c,0x0b,0xcb,0x38,0x3a,0xc1,0x72,0x04,0x34,0x4c,0xf6,0xa1,0x24,0xb8,0x06,
+/* 0x00f310 */ 0xc7,0x2b,0x3e,0xb1,0xd6,0x85,0x2a,0x99,0x03,0xb0,0x55,0xfd,0x2c,0x58,0x31,0x96,
+/* 0x00f320 */ 0xc3,0x0e,0x6b,0xe2,0x91,0xba,0x18,0x55,0xb0,0x12,0x25,0x67,0x78,0x01,0x9f,0x98,
+/* 0x00f330 */ 0x2a,0xc9,0xf2,0x71,0xd5,0x96,0x04,0x7d,0x2e,0x5f,0x96,0xbc,0x21,0xc8,0xc9,0x15,
+/* 0x00f340 */ 0x04,0xf7,0xbe,0xba,0x91,0x1d,0x1f,0xc2,0x1e,0x81,0x14,0x78,0x25,0xa7,0xc0,0x3d,
+/* 0x00f350 */ 0x4a,0x3b,0x4a,0x06,0x4c,0x3d,0xec,0x7f,0x85,0xac,0xdc,0xb6,0xc3,0x9c,0xf1,0x4d,
+/* 0x00f360 */ 0x7f,0x7b,0x8a,0xf7,0x88,0x79,0x61,0x65,0x32,0x76,0x84,0xbb,0xcd,0x19,0x3d,0x68,
+/* 0x00f370 */ 0x2c,0x72,0xf5,0xc8,0x6e,0x3c,0x4f,0xba,0xd1,0x05,0x34,0x98,0x8b,0xb5,0xc0,0x2b,
+/* 0x00f380 */ 0xf2,0xad,0xe8,0x02,0x16,0x67,0x09,0x3a,0x85,0xdc,0x34,0x63,0x31,0x67,0xa3,0xb7,
+/* 0x00f390 */ 0xfa,0x1b,0xcc,0x55,0xd9,0xdc,0xb0,0x7c,0xbd,0xbf,0xc1,0xb8,0x31,0x1c,0x38,0x84,
+/* 0x00f3a0 */ 0x64,0xf6,0x5a,0x94,0xa0,0xb1,0xc8,0x95,0x6d,0x71,0xc6,0x55,0x43,0xae,0x92,0xfa,
+/* 0x00f3b0 */ 0xd9,0x2e,0x73,0x66,0xd8,0xbf,0xef,0xac,0xe0,0x35,0x04,0x01,0x04,0xb9,0x06,0xb3,
+/* 0x00f3c0 */ 0x3a,0xbc,0xe4,0x4c,0x1b,0xa7,0x9c,0x6c,0xdb,0x64,0x97,0xf9,0xe2,0xf5,0x70,0x4a,
+/* 0x00f3d0 */ 0xde,0x13,0xda,0x27,0x7e,0xf4,0x3a,0xbc,0x9e,0x95,0xc8,0xbb,0x7b,0x57,0xf5,0x68,
+/* 0x00f3e0 */ 0xfb,0xe4,0x5b,0xb7,0xa9,0x66,0x8a,0xdb,0x88,0xeb,0xe9,0x11,0x40,0x18,0x0f,0xb9,
+/* 0x00f3f0 */ 0xfd,0x4b,0x1a,0x43,0x81,0x55,0x8f,0x2f,0xd3,0xed,0xce,0xec,0x2e,0xd8,0x13,0xbf,
+/* 0x00f400 */ 0x53,0xce,0xe4,0xcb,0x2a,0x75,0x78,0xae,0x81,0xec,0x63,0x0d,0x0b,0x9b,0x55,0x61,
+/* 0x00f410 */ 0xf2,0x20,0xfc,0x1e,0x07,0x3b,0xc9,0x46,0x94,0x5c,0xe0,0x4a,0x14,0x94,0x00,0x97,
+/* 0x00f420 */ 0x28,0x66,0x3b,0x97,0x08,0xd5,0x4e,0x01,0x84,0xb1,0x3b,0xce,0xb7,0x99,0xf4,0x76,
+/* 0x00f430 */ 0x72,0x91,0xb4,0x98,0x05,0x8e,0x70,0x00,0x8b,0xf3,0x2e,0x60,0xa1,0x23,0x05,0x04,
+/* 0x00f440 */ 0x4a,0x4a,0xa8,0xc0,0x55,0x45,0x2e,0x52,0xb8,0x71,0xc1,0xb6,0x09,0x58,0x6e,0xff,
+/* 0x00f450 */ 0x5a,0xe1,0xb1,0x63,0xd6,0xcb,0x29,0xf0,0x55,0x9c,0x0b,0x97,0xa7,0xa2,0x04,0xb6,
+/* 0x00f460 */ 0x33,0xc3,0x26,0xc5,0xf9,0xd1,0x9c,0x1a,0xf9,0x72,0x87,0x4b,0xae,0x33,0xee,0xf5,
+/* 0x00f470 */ 0x60,0x3f,0xe5,0x4e,0xca,0x61,0xc7,0x1e,0x71,0xde,0x6d,0xb3,0xe3,0x42,0xcc,0x26,
+/* 0x00f480 */ 0xc5,0x79,0x1a,0x63,0x3c,0x62,0x3e,0xcd,0xc6,0x06,0x5e,0xff,0x4a,0x52,0xa4,0xc0,
+/* 0x00f490 */ 0x90,0x56,0x02,0x10,0xe3,0x5c,0x38,0x4d,0x03,0x12,0x35,0x88,0x26,0x51,0x1a,0x00,
+/* 0x00f4a0 */ 0x6a,0x30,0x4d,0x5b,0x89,0x0c,0x3a,0x88,0xde,0x41,0xa7,0xc0,0x25,0x04,0x8d,0x55,
+/* 0x00f4b0 */ 0x0e,0x9c,0x5c,0x6e,0x7d,0xf9,0x20,0x6e,0x05,0x91,0x9d,0x91,0x14,0xdf,0xe4,0x87,
+/* 0x00f4c0 */ 0x00,0x25,0xd9,0x91,0xa0,0x2e,0xa9,0xb9,0x14,0x04,0x19,0x8d,0x07,0x32,0xf0,0x34,
+/* 0x00f4d0 */ 0x74,0x6f,0xb2,0x6d,0x74,0x6e,0x2c,0x21,0x83,0x43,0xe3,0x60,0x2b,0x1a,0x1b,0xce,
+/* 0x00f4e0 */ 0xf5,0x80,0xe0,0xcb,0x05,0x4e,0x81,0x0d,0xc1,0x8e,0xb9,0xbf,0x49,0x6a,0x5a,0x01,
+/* 0x00f4f0 */ 0x08,0x09,0x67,0xeb,0x40,0xa6,0x14,0xb4,0x0c,0xb4,0x07,0x90,0x26,0x47,0xb8,0x0d,
+/* 0x00f500 */ 0x57,0x21,0x83,0x46,0x63,0x9e,0x0b,0x0c,0xcd,0x70,0xee,0x2b,0xaa,0x95,0x91,0xf9,
+/* 0x00f510 */ 0x2a,0x8a,0x14,0x85,0x62,0xa1,0x49,0xaf,0x29,0x72,0xc6,0xc4,0x66,0x21,0x3b,0x96,
+/* 0x00f520 */ 0xa2,0x5a,0x71,0xeb,0xee,0x88,0x52,0x44,0xbe,0x5c,0x64,0x4d,0xba,0xb0,0x61,0x2c,
+/* 0x00f530 */ 0x8a,0xe4,0x3a,0xc9,0x81,0x8e,0xc6,0x86,0x5b,0x5f,0xe8,0xbf,0x02,0x38,0x54,0x92,
+/* 0x00f540 */ 0x6d,0x48,0xcb,0x5b,0xc2,0xb4,0x1d,0x59,0x6d,0x0c,0x9d,0x14,0x72,0x78,0x52,0x2a,
+/* 0x00f550 */ 0x98,0xc8,0x58,0xdb,0x61,0x1b,0x8b,0xf5,0xfa,0x6d,0xff,0x15,0xd3,0x09,0x57,0x71,
+/* 0x00f560 */ 0x63,0xbf,0xed,0xf5,0x1c,0xbf,0x43,0x8c,0xbc,0xc9,0x37,0x23,0x13,0x7f,0xe9,0x7e,
+/* 0x00f570 */ 0x73,0xc1,0x4e,0xda,0x68,0xf8,0xd1,0x37,0x91,0x7b,0x41,0x42,0xc0,0x4c,0xbc,0xc9,
+/* 0x00f580 */ 0x46,0x1c,0x42,0xeb,0x10,0x90,0x6a,0xb1,0x97,0x99,0x4c,0x45,0x89,0xbf,0x54,0x25,
+/* 0x00f590 */ 0x72,0x71,0x1f,0xe7,0xd4,0x97,0x59,0x58,0xe0,0x9f,0x08,0x29,0x56,0x3a,0x42,0x11,
+/* 0x00f5a0 */ 0x48,0x1c,0xc4,0x16,0x90,0x89,0x35,0x6b,0x99,0x76,0x84,0x2d,0xb8,0x78,0x33,0xaa,
+/* 0x00f5b0 */ 0x76,0x96,0x63,0x0b,0xfc,0x9b,0xa5,0x76,0x94,0xc4,0x16,0xc0,0x44,0x85,0xdb,0xd8,
+/* 0x00f5c0 */ 0xb9,0xf2,0x25,0xa7,0x1d,0x66,0x71,0xb4,0x8c,0x1b,0x13,0xb3,0x3e,0x0a,0xc7,0x81,
+/* 0x00f5d0 */ 0x7f,0x32,0xd3,0xb7,0x8b,0x0d,0xc2,0xd7,0x0e,0x4e,0xbc,0x45,0x2a,0xc0,0x5e,0x94,
+/* 0x00f5e0 */ 0xd4,0xf4,0xf9,0x28,0xcb,0xc1,0x82,0x75,0x8a,0x26,0xdd,0x0d,0xff,0x52,0xfe,0x5a,
+/* 0x00f5f0 */ 0x62,0x62,0x0f,0x4a,0xfe,0x85,0xe7,0xba,0x1d,0x73,0xb9,0xe3,0x06,0xc8,0xd0,0x62,
+/* 0x00f600 */ 0xa8,0x59,0x5f,0x10,0x73,0xb5,0x64,0x5c,0x90,0x40,0xee,0xd9,0x05,0xcf,0x60,0x83,
+/* 0x00f610 */ 0x41,0x89,0x06,0x03,0xc8,0x4f,0xd5,0x6c,0xaa,0x01,0xf6,0x32,0xf1,0x79,0x33,0xb4,
+/* 0x00f620 */ 0x29,0x38,0xb9,0x86,0xdc,0xfb,0x4a,0x71,0x6f,0xd5,0x87,0x23,0xff,0x1f,0x23,0x68,
+/* 0x00f630 */ 0x40,0x47,0x86,0x6d,0xb5,0xd7,0x98,0x6a,0xb6,0xab,0x81,0x6d,0xd8,0xd8,0xa6,0x72,
+/* 0x00f640 */ 0xb7,0x35,0x24,0x66,0x53,0xbb,0x57,0x07,0xb6,0xcb,0xd7,0x5b,0xc2,0xf8,0x25,0x66,
+/* 0x00f650 */ 0xda,0x2a,0xaf,0x7f,0x19,0x36,0x5f,0x46,0x2f,0x2c,0xa6,0x46,0xf0,0xd7,0x19,0x08,
+/* 0x00f660 */ 0x07,0xad,0x8b,0x09,0xed,0x06,0x0c,0xc4,0x08,0x97,0xf0,0xf6,0x89,0x4e,0x83,0x3f,
+/* 0x00f670 */ 0x79,0xbe,0x9e,0xc2,0x73,0x19,0x95,0xf8,0xd0,0x20,0x99,0xf4,0xda,0xe5,0xb5,0x1b,
+/* 0x00f680 */ 0x91,0x02,0x1f,0xee,0x5d,0xbb,0x5c,0x29,0xa4,0xd6,0x20,0x5f,0xbe,0x54,0x9b,0x5a,
+/* 0x00f690 */ 0x48,0x12,0x0c,0x14,0xd7,0x06,0xfc,0x55,0xed,0x9c,0x41,0xc7,0x39,0xa7,0x5e,0x13,
+/* 0x00f6a0 */ 0x08,0xa7,0x1b,0xc3,0x53,0x39,0x5f,0xde,0x69,0xac,0x0d,0xd4,0x72,0xe0,0x96,0x23,
+/* 0x00f6b0 */ 0x1b,0xe9,0x6c,0x40,0x0e,0xb6,0x11,0xad,0x2b,0x9d,0x6d,0xa1,0x34,0x91,0x28,0x41,
+/* 0x00f6c0 */ 0x3a,0xa8,0x85,0x28,0x24,0x02,0xa8,0xd2,0xda,0x68,0x1b,0xc1,0xa8,0x24,0xa8,0x51,
+/* 0x00f6d0 */ 0x4a,0x12,0xcb,0xb3,0xc3,0x34,0x18,0xa2,0x6d,0x3e,0x2d,0x6b,0x62,0x2e,0x54,0x69,
+/* 0x00f6e0 */ 0x6e,0x3b,0x84,0xd3,0xbb,0xef,0x46,0x1a,0xf5,0x3a,0xf4,0x00,0x82,0x06,0x0d,0x49,
+/* 0x00f6f0 */ 0x71,0x4e,0x29,0x27,0xc3,0xa8,0x12,0x36,0x7e,0xd7,0xb8,0x49,0x00,0x70,0x13,0xb2,
+/* 0x00f700 */ 0x63,0xc1,0x7c,0x0b,0x36,0x4d,0xd6,0x04,0x3b,0x66,0xc6,0xfd,0x36,0x83,0x46,0x09,
+/* 0x00f710 */ 0x34,0xed,0x40,0x90,0x73,0x39,0x75,0xc1,0x78,0x48,0xbb,0x98,0x83,0x12,0x4a,0x66,
+/* 0x00f720 */ 0x15,0x9c,0x78,0xd5,0x68,0x5b,0xea,0xeb,0x34,0x5e,0x3e,0x38,0x6f,0x6e,0xed,0xb5,
+/* 0x00f730 */ 0xbe,0xce,0xcc,0xa1,0x83,0xf3,0x6e,0xa9,0x5d,0xea,0x5b,0x65,0xbc,0xfc,0xe2,0xbc,
+/* 0x00f740 */ 0x5b,0xd4,0xda,0xea,0xce,0xcc,0xcb,0x07,0x5b,0xe6,0x72,0x89,0x29,0x54,0xd7,0x6e,
+/* 0x00f750 */ 0x58,0x65,0xac,0xfc,0x27,0x6e,0x3c,0xbd,0x33,0x8b,0xb9,0x2e,0xad,0xf5,0xfa,0x57,
+/* 0x00f760 */ 0xa6,0x80,0xbc,0xa0,0xb4,0x58,0x8f,0xec,0x8f,0x71,0x82,0xb0,0x38,0xb6,0x0d,0xd9,
+/* 0x00f770 */ 0x71,0xa2,0x81,0xdd,0x18,0x0b,0x8c,0x54,0xad,0x27,0xbb,0x50,0x95,0x43,0x89,0xbf,
+/* 0x00f780 */ 0x81,0xcd,0x8c,0x05,0xf6,0x17,0x50,0x55,0x5a,0x1c,0x09,0xec,0xa7,0x22,0x57,0xa4,
+/* 0x00f790 */ 0xc2,0x0b,0xea,0x69,0x7a,0x44,0x30,0x5f,0x1f,0x4d,0x5b,0x81,0x56,0xaa,0x92,0x7a,
+/* 0x00f7a0 */ 0xdd,0xd8,0xaf,0xc5,0xa9,0xba,0x8d,0x4b,0xb8,0x8a,0x4b,0x84,0x6a,0x9b,0x0f,0xb8,
+/* 0x00f7b0 */ 0x0a,0x25,0x3e,0x27,0x17,0xf1,0x9e,0xcf,0x97,0xc9,0x97,0xcf,0x91,0x14,0x10,0x73,
+/* 0x00f7c0 */ 0x79,0x7c,0x92,0xcf,0x3e,0x75,0xfa,0x7c,0xe9,0x12,0x9b,0xf9,0x0a,0x0a,0x7c,0x1a,
+/* 0x00f7d0 */ 0x5f,0x7e,0xec,0xa6,0x85,0xff,0xd3,0xe6,0xcb,0xa7,0x50,0x72,0x0a,0x55,0x1f,0xb9,
+/* 0x00f7e0 */ 0x7c,0x59,0x90,0xeb,0x31,0x7c,0xb9,0xf5,0x7b,0x1d,0x2f,0x6c,0xb8,0x6b,0xf8,0xc0,
+/* 0x00f7f0 */ 0x07,0x0b,0xbe,0xd7,0xf1,0xc3,0x0d,0x73,0x8e,0x1c,0xfd,0x60,0xce,0xc2,0x89,0xcb,
+/* 0x00f800 */ 0xea,0xef,0x3c,0x72,0xe0,0x37,0x5f,0xbb,0x1c,0x25,0x77,0x0d,0xef,0xff,0x10,0x25,
+/* 0x00f810 */ 0x5f,0x41,0xd5,0xb1,0xdf,0x2c,0xf8,0x43,0xae,0x1a,0xde,0xcf,0x8d,0x79,0xae,0xfd,
+/* 0x00f820 */ 0x1f,0x78,0xe5,0x7c,0x1d,0x99,0x6f,0x72,0xd5,0xb1,0x77,0x8e,0xc5,0xee,0xbb,0xea,
+/* 0x00f830 */ 0xc1,0xd4,0x13,0xa5,0xed,0xbd,0x97,0x7d,0xd7,0xff,0xed,0xed,0x4b,0x4a,0xdf,0x3f,
+/* 0x00f840 */ 0xf9,0x8d,0x8b,0xae,0x7a,0x10,0x55,0x6f,0xdd,0x70,0xd9,0x77,0x95,0x46,0x54,0xdd,
+/* 0x00f850 */ 0x7d,0x32,0x76,0x2f,0x57,0x1d,0x7b,0xab,0x37,0x66,0xe7,0x7a,0xab,0xd7,0x2b,0x07,
+/* 0x00f860 */ 0xc7,0x99,0xdd,0xd0,0x64,0xd4,0x68,0x2e,0xc0,0x41,0x41,0xd5,0xd3,0x6a,0x44,0xd2,
+/* 0x00f870 */ 0xf2,0x7b,0x61,0x37,0x9b,0xd5,0x52,0xd3,0x30,0x74,0x77,0xec,0xe8,0x50,0x73,0xb6,
+/* 0x00f880 */ 0x46,0x63,0x28,0xd9,0xa4,0xae,0xa8,0x09,0xe6,0xdd,0x5c,0x5e,0x31,0x22,0xf0,0x03,
+/* 0x00f890 */ 0x87,0xf3,0x70,0x10,0x96,0xaa,0x21,0x97,0xe0,0x33,0xd7,0x46,0x1b,0x25,0x7b,0x01,
+/* 0x00f8a0 */ 0x19,0xa9,0x51,0x0d,0x01,0x03,0x41,0x03,0x52,0x9d,0xc0,0x30,0xf4,0x21,0xa1,0xf5,
+/* 0x00f8b0 */ 0x72,0x79,0xa9,0xc0,0xe7,0xce,0xd0,0x9f,0x38,0x00,0xc7,0xa6,0x67,0xf4,0xc8,0xb3,
+/* 0x00f8c0 */ 0xcd,0x75,0x35,0x0d,0xec,0x19,0x25,0x90,0x51,0xd6,0xfb,0x76,0xb0,0x3b,0x9b,0x66,
+/* 0x00f8d0 */ 0xe0,0xf8,0x25,0x35,0xb0,0xbd,0xb1,0x48,0x46,0x5d,0x21,0x05,0x19,0x37,0x2e,0x1a,
+/* 0x00f8e0 */ 0x95,0x6a,0xc4,0x58,0xef,0xf4,0xeb,0xd1,0x83,0xb0,0x38,0x9a,0x5b,0xc2,0x3a,0x9b,
+/* 0x00f8f0 */ 0x1a,0x94,0xc9,0x55,0x64,0x3f,0x5b,0xaf,0x37,0x64,0xaa,0x67,0x91,0x1c,0x9f,0x8a,
+/* 0x00f900 */ 0xde,0x9c,0x8e,0x92,0xe7,0xca,0x6b,0x75,0x24,0xa1,0x4e,0xa8,0x58,0xb9,0x2f,0x1c,
+/* 0x00f910 */ 0xad,0x0e,0x60,0x0b,0x51,0x2d,0xc1,0x22,0xb8,0xc8,0xa2,0x7a,0xa1,0xb9,0x1e,0x35,
+/* 0x00f920 */ 0x38,0xb4,0xe5,0x95,0x28,0x86,0xdd,0x65,0xd0,0x6b,0x54,0x4d,0x82,0xa1,0xa1,0xb9,
+/* 0x00f930 */ 0xda,0x52,0x55,0x97,0xc4,0x12,0x9d,0x18,0xd1,0xbc,0xa6,0x36,0x5a,0xc6,0x81,0x1f,
+/* 0x00f940 */ 0x0b,0xc2,0x6b,0xa3,0x9a,0x5f,0x4d,0x26,0xf8,0x14,0x73,0x8b,0x92,0xce,0xd7,0x69,
+/* 0x00f950 */ 0xa5,0xb4,0x1e,0x57,0x54,0xe0,0x17,0xc1,0x87,0xcb,0xe4,0x98,0x92,0x14,0x10,0x87,
+/* 0x00f960 */ 0x8a,0x17,0xed,0xf7,0x7d,0x38,0x98,0x0e,0xca,0x60,0xa3,0x99,0x79,0x58,0x9b,0x45,
+/* 0x00f970 */ 0x8b,0x43,0x8d,0xda,0xa6,0x62,0xeb,0x74,0xc8,0x24,0x66,0xeb,0x9b,0xb7,0xb6,0x46,
+/* 0x00f980 */ 0xd5,0xe2,0xd3,0x51,0x24,0x4e,0xf1,0x28,0x2d,0xba,0xb9,0x60,0xf4,0x15,0x1d,0xc0,
+/* 0x00f990 */ 0xb2,0xd5,0x11,0xf7,0x8a,0x6a,0x8c,0x46,0x86,0xb1,0x39,0x7a,0x5f,0xad,0x51,0xdb,
+/* 0x00f9a0 */ 0xc2,0xea,0x74,0x85,0x7b,0x73,0x86,0x39,0x95,0x67,0x13,0x51,0x58,0x8a,0x37,0x09,
+/* 0x00f9b0 */ 0x45,0xd7,0xd8,0xbd,0x1e,0x6a,0x37,0x9b,0x9b,0xbd,0xf6,0x33,0x21,0x0c,0x77,0x4a,
+/* 0x00f9c0 */ 0x11,0x43,0x49,0x48,0xc1,0xa7,0xff,0x51,0xff,0xb1,0xd1,0x94,0x9a,0x00,0xf9,0x8d,
+/* 0x00f9d0 */ 0xe1,0xdd,0xcf,0x37,0x49,0xb3,0x1a,0x58,0xd5,0xac,0x48,0x5a,0xc9,0x62,0xd3,0xe2,
+/* 0x00f9e0 */ 0xc6,0x0f,0xf1,0x56,0xe7,0xdd,0xd7,0xd8,0x20,0x3d,0xa8,0x2c,0x96,0xc8,0x60,0x79,
+/* 0x00f9f0 */ 0xbd,0x1e,0x1e,0x69,0x8b,0xca,0x09,0xd6,0x17,0xa1,0x4b,0xe4,0x56,0xac,0xaf,0x56,
+/* 0x00fa00 */ 0xbd,0x61,0x64,0xf1,0x45,0x39,0xeb,0x81,0x3e,0xbd,0xc1,0xcb,0xe5,0x95,0x63,0x37,
+/* 0x00fa10 */ 0x1b,0x10,0xed,0xa7,0x85,0x37,0xa4,0xb0,0x74,0x27,0xdd,0x3d,0xa4,0xf4,0x63,0x23,
+/* 0x00fa20 */ 0xb1,0x94,0x88,0x55,0x93,0x25,0x2a,0x1b,0x88,0x47,0x0c,0xb5,0x4e,0x0a,0x0e,0x3d,
+/* 0x00fa30 */ 0xa3,0x93,0xfd,0x4a,0x1f,0x36,0x2d,0xaf,0xd5,0xb9,0xed,0x87,0x37,0x9b,0x03,0xa2,
+/* 0x00fa40 */ 0xfd,0x54,0xc7,0x11,0xdc,0x4c,0x83,0x27,0xaa,0x20,0xd7,0x11,0xeb,0x34,0x34,0xab,
+/* 0x00fa50 */ 0x0a,0x30,0x34,0xec,0x94,0xc3,0xa5,0xea,0x30,0xd6,0xd4,0x7a,0x08,0xe7,0xe5,0x66,
+/* 0x00fa60 */ 0xa4,0xf1,0x66,0x22,0x68,0x89,0x5c,0x37,0x43,0xc3,0x10,0x75,0xaf,0xe7,0xce,0xf8,
+/* 0x00fa70 */ 0xe8,0xf6,0x9c,0x44,0x47,0x58,0xd0,0xf1,0x69,0xdc,0x5c,0xd3,0x60,0xed,0x5b,0x30,
+/* 0x00fa80 */ 0x43,0x55,0xae,0xf3,0x69,0xec,0xcf,0x9a,0x22,0x43,0x4a,0x36,0x1f,0x2e,0xef,0xd5,
+/* 0x00fa90 */ 0x23,0xf9,0x26,0xb7,0x3d,0xf3,0x5c,0x5e,0x0b,0x92,0x68,0xa5,0x25,0xa0,0x97,0xc4,
+/* 0x00faa0 */ 0x41,0x4b,0x4f,0xa8,0x64,0x18,0x23,0x88,0x06,0xa9,0x5d,0xcb,0x25,0xf5,0xfe,0x25,
+/* 0x00fab0 */ 0x90,0x94,0x34,0x7c,0x16,0x7a,0x06,0xc3,0x08,0x0d,0x86,0x69,0x80,0xaf,0x70,0x80,
+/* 0x00fac0 */ 0xdb,0x6c,0x2b,0xfd,0xcb,0x6b,0x85,0x71,0xb1,0x78,0x51,0x97,0x8f,0x05,0xae,0x6c,
+/* 0x00fad0 */ 0xea,0xdb,0xdc,0x10,0xdf,0xdb,0x7c,0xf1,0x12,0x65,0x7d,0x0a,0xf6,0x2c,0xd7,0xf5,
+/* 0x00fae0 */ 0x21,0x6c,0xcf,0x2a,0x7b,0x5a,0xd7,0xae,0x50,0x5a,0x9f,0xa5,0x6c,0x4c,0x7b,0x86,
+/* 0x00faf0 */ 0xd1,0x13,0xfe,0x5e,0x57,0xd1,0x4b,0x5b,0xe9,0x9c,0x8c,0xaa,0x63,0x7f,0x2b,0x4a,
+/* 0x00fb00 */ 0x12,0x46,0x00,0x09,0x5d,0x04,0x28,0x2a,0x93,0x62,0x25,0x0b,0x5a,0x73,0x94,0x79,
+/* 0x00fb10 */ 0xd6,0xf6,0x3e,0xbd,0xb8,0xb7,0xb0,0x52,0x49,0x9a,0xee,0x80,0x92,0x5b,0x1b,0xa5,
+/* 0x00fb20 */ 0xb8,0x0b,0x5c,0x5e,0xcb,0xe0,0xf4,0xb4,0xe8,0xe3,0x33,0x8a,0xc1,0x4b,0xc4,0xab,
+/* 0x00fb30 */ 0xc6,0xfa,0xd3,0x4e,0x30,0x4b,0x80,0xf8,0x1e,0x66,0x4b,0xe2,0x25,0x57,0xe5,0xdd,
+/* 0x00fb40 */ 0xc5,0xa4,0x49,0xf6,0xbf,0xd5,0x63,0xef,0x6b,0x2a,0x9b,0x1c,0x3b,0xfe,0x13,0xcb,
+/* 0x00fb50 */ 0xdf,0x9d,0xad,0xf9,0xd9,0x81,0x3f,0x99,0xc9,0x2e,0xbe,0xe3,0x57,0x7d,0x2d,0xff,
+/* 0x00fb60 */ 0x6b,0xe0,0x6d,0x16,0xbe,0x38,0xf8,0xfa,0x91,0xc1,0xed,0x0b,0x8d,0xf8,0x9c,0x07,
+/* 0x00fb70 */ 0x3b,0xcf,0x7c,0x1a,0x67,0xa6,0xba,0x52,0x9d,0x06,0xdf,0x78,0x78,0x6b,0x2c,0x18,
+/* 0x00fb80 */ 0xa4,0xdb,0x01,0xee,0xc8,0xff,0x1e,0x2d,0xd4,0x6d,0x64,0x4a,0x63,0x63,0x36,0x58,
+/* 0x00fb90 */ 0xba,0xa7,0x0a,0xe8,0x65,0x72,0xe9,0x33,0x14,0x23,0x92,0x52,0x24,0x6b,0xba,0x0c,
+/* 0x00fba0 */ 0x0e,0x1e,0x51,0x16,0x08,0xa7,0xa9,0x3c,0xb4,0xad,0xab,0x45,0x48,0x7e,0x9e,0x6e,
+/* 0x00fbb0 */ 0x6d,0x35,0xce,0xc8,0xb1,0xe8,0xd4,0xa9,0x53,0xd6,0xe9,0xe0,0xa9,0x33,0x24,0x15,
+/* 0x00fbc0 */ 0xf0,0xd3,0x31,0x92,0xf3,0x95,0x73,0x06,0xf8,0xea,0xa9,0x3b,0x1c,0xc9,0x1d,0x63,
+/* 0x00fbd0 */ 0x55,0xe7,0x29,0xe7,0xb2,0x4f,0xcf,0x53,0xf2,0xbb,0x4f,0x7d,0xe6,0x72,0xbe,0xfa,
+/* 0x00fbe0 */ 0xae,0x2b,0xb9,0xe3,0xf5,0x1f,0xda,0xe0,0xf7,0x4f,0xbd,0xfb,0xf9,0xaf,0xc7,0x03,
+/* 0x00fbf0 */ 0x53,0xbc,0x07,0xf5,0xee,0xfb,0xb7,0xd9,0xe0,0x8c,0x4b,0x3d,0x7f,0x39,0x77,0x08,
+/* 0x00fc00 */ 0xb0,0xf0,0xd4,0xa9,0xf7,0x6d,0xc9,0xeb,0xef,0xbe,0x7e,0x8e,0xdf,0xf2,0xd2,0x19,
+/* 0x00fc10 */ 0x7e,0xf9,0xf3,0x81,0x4a,0x41,0x63,0xfd,0xf2,0xe7,0x04,0x5e,0xaa,0xf8,0x65,0xfe,
+/* 0x00fc20 */ 0x79,0x0b,0x23,0xca,0xe7,0x7a,0x3f,0x1b,0x18,0x3d,0xae,0xc2,0x58,0xbf,0xfc,0x85,
+/* 0x00fc30 */ 0xaf,0xe7,0x34,0x6f,0xfa,0xf9,0x81,0x73,0x35,0x5f,0xbc,0x80,0xb1,0x25,0x8d,0xf1,
+/* 0x00fc40 */ 0xcb,0x9f,0x13,0x7c,0x59,0xc9,0xf3,0x83,0x35,0x05,0x89,0x7b,0xd8,0x59,0xda,0xbf,
+/* 0x00fc50 */ 0x09,0x6e,0x3e,0x9b,0xea,0xdc,0x7e,0xf9,0xf3,0x81,0x8a,0xc7,0x18,0x13,0xd7,0x7d,
+/* 0x00fc60 */ 0x5e,0xe0,0x24,0xc7,0x2f,0xdf,0xec,0xfa,0x65,0xa3,0x02,0x1a,0x2c,0xdb,0x53,0x23,
+/* 0x00fc70 */ 0x10,0xad,0xe5,0x66,0x57,0x62,0x8c,0x02,0x15,0xbf,0xfc,0xbb,0x5d,0x8f,0x34,0xea,
+/* 0x00fc80 */ 0x81,0xff,0x2e,0xed,0xe7,0x4b,0x6e,0xcf,0xe0,0x12,0xde,0x2f,0x9c,0x6c,0xbf,0xfc,
+/* 0x00fc90 */ 0x65,0xa5,0xcb,0x2f,0xff,0x1d,0x0b,0x70,0xfd,0xf2,0x7f,0xd8,0xf4,0x59,0xfc,0xe9,
+/* 0x00fca0 */ 0x79,0xc0,0x78,0x39,0xff,0x8f,0xcb,0xf9,0x72,0x52,0x1c,0x23,0x78,0x49,0xfc,0x9b,
+/* 0x00fcb0 */ 0xde,0xfe,0xef,0x50,0xfc,0x78,0x1a,0x4f,0xe3,0x69,0x3c,0x8d,0xa7,0xf1,0x34,0x9e,
+/* 0x00fcc0 */ 0xc6,0xd3,0x78,0x1a,0x4f,0xe3,0x69,0x3c,0x8d,0xa7,0xf1,0x34,0x9e,0xc6,0xd3,0x78,
+/* 0x00fcd0 */ 0xfa,0x0f,0x98,0xc4,0x9c,0x92,0x24,0xe6,0x94,0xd8,0xff,0xef,0x6b,0x19,0x4f,0xe3,
+/* 0x00fce0 */ 0x69,0x3c,0x8d,0xa7,0xf1,0x34,0x9e,0xc6,0xd3,0x78,0x1a,0x4f,0xe3,0x69,0x3c,0x8d,
+/* 0x00fcf0 */ 0xa7,0xf1,0x34,0x9e,0xc6,0xd3,0x78,0x1a,0x4f,0xff,0xbe,0x29,0x2e,0x4e,0x08,0xf9,
+/* 0x00fd00 */ 0xeb,0x81,0x38,0x88,0x17,0x70,0x7d,0x71,0x30,0xea,0xbe,0xbc,0xb2,0x45,0x99,0x72,
+/* 0x00fd10 */ 0x1c,0xca,0xa4,0xf2,0x5b,0x0b,0x3e,0x3d,0xc3,0x6e,0xdb,0x71,0x12,0x4f,0xbd,0x11,
+/* 0x00fd20 */ 0x8e,0xe7,0x8e,0xc7,0xe3,0x17,0x1e,0x6f,0x86,0xbb,0x8e,0x37,0x00,0x7b,0xe3,0xb9,
+/* 0x00fd30 */ 0x2e,0xfa,0xaf,0xd5,0x50,0x3e,0x8a,0x16,0x6f,0xad,0x6e,0xbb,0xd0,0x3a,0xf1,0xd3,
+/* 0x00fd40 */ 0x0b,0x7f,0x55,0x6b,0x95,0x8f,0x9e,0x78,0xfd,0x92,0x5f,0xd1,0x3d,0x1d,0x6f,0x80,
+/* 0x00fd50 */ 0x59,0x3e,0x4a,0x0f,0x2e,0x7d,0x23,0x08,0xf7,0x1c,0x27,0xa5,0xf2,0xd1,0xe6,0xf8,
+/* 0x00fd60 */ 0x84,0xe3,0x52,0x99,0xdb,0x77,0xe2,0xdf,0xb2,0xef,0x45,0x80,0x1a,0x1a,0xbf,0xe7,
+/* 0x00fd70 */ 0xb8,0x0f,0xbe,0x79,0x74,0x1e,0xc0,0x05,0x8a,0xc0,0x57,0x1f,0xf5,0x21,0xfe,0xbf,
+/* 0x00fd80 */ 0xa8,0xe2,0x06,0x89,0x00,0x8d,0x02,0x00,
diff --git a/ecos/packages/hal/arm/xscale/picasso/current/src/vga_support.c b/ecos/packages/hal/arm/xscale/picasso/current/src/vga_support.c
new file mode 100644
index 0000000..4ef617c
--- /dev/null
+++ b/ecos/packages/hal/arm/xscale/picasso/current/src/vga_support.c
@@ -0,0 +1,1448 @@
+//==========================================================================
+//
+// vga_support.c
+//
+// NMI picasso - VGA support
+//
+//==========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//==========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): gthomas
+// Contributors: gthomas
+// Date: 2001-11-03
+// Description: Simple VGA support
+//####DESCRIPTIONEND####
+
+#include <pkgconf/hal.h>
+
+#include <cyg/infra/diag.h>
+#include <cyg/hal/hal_io.h> // IO macros
+#include <cyg/hal/hal_if.h> // Virtual vector support
+#include <cyg/hal/hal_arch.h> // Register state info
+#include <cyg/hal/hal_intr.h> // HAL interrupt macros
+
+#include <cyg/hal/vga_support.h>
+#include <cyg/hal/hal_cache.h>
+
+#include <cyg/hal/plx.h> // Localbus I/O
+
+#include <string.h>
+
+#ifdef CYGPKG_ISOINFRA
+# include <pkgconf/isoinfra.h>
+# ifdef CYGINT_ISO_STDIO_FORMATTED_IO
+# include <stdio.h> // sscanf
+# endif
+#endif
+
+#ifndef FALSE
+#define FALSE 0
+#define TRUE 1
+#endif
+
+// Logical layout
+#define VGA_WIDTH 640
+#define VGA_HEIGHT 480
+#define VGA_DEPTH 8
+
+static int bg = 0;
+static int fg = 1;
+
+static struct vga_info vga;
+
+struct VGA_ctlr {
+ unsigned short rev;
+ unsigned char enable;
+ unsigned char _fill1[13];
+ struct ADV471 {
+ unsigned short write_addr;
+ unsigned short data;
+ unsigned short pixel_read_mask;
+ unsigned short read_addr;
+ unsigned short overlay_data;
+ unsigned short _fill2[2];
+ unsigned short overlay_read_addr;
+ } clut;
+ unsigned char _fill3[0x100000-0x20];
+ unsigned char fb[1];
+};
+
+// Compute the location for a pixel within the framebuffer
+static cyg_uint8 *
+vga_fb(int row, int col)
+{
+ cyg_uint8 *res = (cyg_uint8 *)((char *)vga.fb+(row*vga.rlen)+(col*vga.stride));
+ return res;
+}
+
+void
+vga_on(bool enable)
+{
+ static bool on = false;
+ volatile struct VGA_ctlr *ctlr = vga.ctlr;
+
+ if (enable) {
+ if (!on) {
+ ctlr->enable = 1;
+ }
+ on = true;
+ } else {
+ ctlr->enable = 0;
+ on = false;
+ }
+}
+
+// Initialize VGA hardware
+
+static void
+vga_set_cmap(volatile struct VGA_ctlr *ctlr, int index,
+ int red, int green, int blue)
+{
+ if (index > 255) {
+ // Invalid index
+ return;
+ }
+ ctlr->clut.write_addr = index; // Select
+ ctlr->clut.data = red>>2;
+ ctlr->clut.data = green>>2;
+ ctlr->clut.data = blue>>2;
+}
+
+void
+vga_init(cyg_uint32 *addr)
+{
+ volatile struct VGA_ctlr *ctlr;
+
+ ctlr = (volatile struct VGA_ctlr *)addr;
+ vga.ctlr = (void*)ctlr;
+ vga.fb = ctlr->fb;
+ vga.bpp = VGA_DEPTH;
+ vga.height = VGA_HEIGHT;
+ vga.width = VGA_WIDTH;
+ vga.rlen = VGA_WIDTH;
+ vga.stride = 1;
+ vga.access_size = 1;
+ vga_set_cmap(ctlr, 0, 0x00, 0x00, 0x00); // 0 -> black
+ vga_set_cmap(ctlr, 1, 0xFF, 0xFF, 0xFF); // 1 -> white
+// diag_printf("VGA init at %p/%p\n", vga.ctlr, vga.fb);
+ ctlr->enable = 1;
+}
+
+// Get information about the frame buffer
+int
+vga_getinfo(struct vga_info *info)
+{
+ if (vga.bpp == 0) {
+ return 0; // VGA not initialized
+ }
+ *info = vga;
+ return 1; // Information valid
+}
+
+// Clear screen
+void
+vga_clear(void)
+{
+#if 0
+ cyg_uint32 *fb_row0, *fb_rown;
+ cyg_uint32 _bg = (bg<<16)|bg;
+
+ fb_row0 = vga_fb(0, 0);
+ fb_rown = vga_fb(vga_height, 0);
+ while (fb_row0 != fb_rown) {
+ *fb_row0++ = _bg;
+ }
+#endif
+}
+
+#ifdef CYGSEM_UE250_VGA_COMM
+
+//
+// Additional support for VGA/Keyboard as 'console' device
+//
+
+#ifdef CYGOPT_UE250_VGA_COMM_LOGO
+#include "banner.xpm"
+#endif
+#include "font.h"
+
+// Virtual screen info
+static int curX = 0; // Last used position
+static int curY = 0;
+//static int width = VGA_WIDTH / (FONT_WIDTH*NIBBLES_PER_PIXEL);
+//static int height = VGA_HEIGHT / (FONT_HEIGHT*SCREEN_SCALE);
+
+#define SCREEN_PAN 20
+#define SCREEN_WIDTH 80
+#define SCREEN_HEIGHT (VGA_HEIGHT/FONT_HEIGHT)
+#define VISIBLE_SCREEN_WIDTH (VGA_WIDTH/FONT_WIDTH)
+#define VISIBLE_SCREEN_HEIGHT (VGA_HEIGHT/FONT_HEIGHT)
+static char screen[SCREEN_HEIGHT][SCREEN_WIDTH];
+static int screen_height = SCREEN_HEIGHT;
+static int screen_width = SCREEN_WIDTH;
+static int screen_pan = 0;
+
+// Usable area on screen [logical pixel rows]
+static int screen_start = 0;
+static int screen_end = VGA_HEIGHT/FONT_HEIGHT;
+
+static bool cursor_enable = true;
+
+// Functions
+static void vga_drawc(cyg_uint8 c, int x, int y);
+
+static __inline__ void
+set_pixel(int row, int col, unsigned char val)
+{
+ unsigned char *pix = (unsigned char *)vga_fb(row, col);
+ *pix = val;
+}
+
+#ifdef CYGOPT_UE250_VGA_COMM_LOGO
+static int
+_hexdigit(char c)
+{
+ if ((c >= '0') && (c <= '9')) {
+ return c - '0';
+ } else {
+ if ((c >= 'A') && (c <= 'F')) {
+ return (c - 'A') + 0x0A;
+ } else {
+ if ((c >= 'a') && (c <= 'f')) {
+ return (c - 'a') + 0x0a;
+ }
+ }
+ }
+
+ return 0;
+}
+
+static int
+_hex(char *cp)
+{
+ return (_hexdigit(*cp)<<4) | _hexdigit(*(cp+1));
+}
+
+static void
+parse_color(char *cp, int *red, int *green, int *blue)
+{
+ *red = *green = *blue = 0xFF;
+ while (*cp && (*cp != 'c')) cp++;
+ if (cp) {
+ cp += 2;
+ if (*cp == '#') {
+ *red = _hex(cp+1);
+ *green = _hex(cp+3);
+ *blue = _hex(cp+5);
+ }
+ }
+}
+
+#ifndef CYGINT_ISO_STDIO_FORMATTED_IO
+static int
+get_int(unsigned char **_cp)
+{
+ char *cp = *_cp;
+ char c;
+ int val = 0;
+
+ while ((c = *cp++) && (c != ' ')) {
+ if ((c >= '0') && (c <= '9')) {
+ val = val * 10 + (c - '0');
+ } else {
+ return -1;
+ }
+ }
+ *_cp = cp;
+ return val;
+}
+#endif
+
+static int
+show_xpm(char *xpm[], int screen_pos)
+{
+ int i, row, col, offset;
+ unsigned char *cp;
+ int nrows, ncols, nclrs, cwid;
+ short color_index;
+ int red, green, blue;
+//#define HORRIBLY_SLOW_COLOR_MAPPING
+#ifdef HORRIBLY_SLOW_COLOR_MAPPING
+ bool color_match;
+ short cmap[256][2];
+ int j;
+#else
+ // Caution - this is very GIMP specific
+ short cmap[256][3]; // Enough room for 256 colors
+ short cmap_col, cmap_row;
+ unsigned char std_cmap[] = " .+";
+#endif
+
+ cp = xpm[0];
+#ifdef CYGINT_ISO_STDIO_FORMATTED_IO
+ if (sscanf(cp, "%d %d %d %d", &ncols, &nrows, &nclrs, &cwid) != 4) {
+#else
+ if (((ncols = get_int(&cp)) < 0) ||
+ ((nrows = get_int(&cp)) < 0) ||
+ ((nclrs = get_int(&cp)) < 0) ||
+ ((cwid = get_int(&cp)) < 0)) {
+
+#endif
+ diag_printf("Can't parse XPM data, sorry\n");
+ return 0;
+ }
+// diag_printf("%d rows, %d cols, %d colors %d chars/pixel\n", nrows, ncols, nclrs, cwid);
+ if (cwid > 2) {
+ diag_printf("Color map is too wide - %d\n", cwid);
+ return 0;
+ }
+
+ for (i = 0; i < 256; i++) {
+#ifdef HORRIBLY_SLOW_COLOR_MAPPING
+ cmap[i][0] = 0; cmap[i][1] = 0;
+#else
+ cmap[i][0] = 0; cmap[i][1] = 0; cmap[i][2] = 0;
+#endif
+ }
+ color_index = 0;
+ for (i = 0; i < nclrs; i++) {
+ cp = xpm[i+1];
+#ifdef HORRIBLY_SLOW_COLOR_MAPPING
+ for (j = 0; j < cwid; j++) {
+ cmap[color_index][j] = cp[j];
+ }
+#else
+ if (cwid == 1) {
+ cmap_col = 0;
+ } else {
+ for (cmap_col = 0; cmap_col < 3; cmap_col++) {
+ if (cp[1] == std_cmap[cmap_col]) {
+ break;
+ }
+ }
+ }
+ cmap_row = *cp;
+ cmap[cmap_row][cmap_col] = color_index;
+#endif
+ parse_color(cp+cwid, &red, &green, &blue);
+// diag_printf("Color[%d] = %02x/%02x/%02x\n", color_index, red, green, blue);
+ vga_set_cmap(vga.ctlr, color_index+2, red, green, blue);
+ color_index++;
+ }
+
+#ifdef CYGOPT_UE250_VGA_COMM_LOGO_TOP
+ offset = screen_pos;
+#else
+ offset = screen_pos-nrows;
+#endif
+ for (row = 0; row < nrows; row++) {
+ cp = xpm[nclrs+1+row];
+ for (col = 0; col < ncols; col++) {
+#ifdef HORRIBLY_SLOW_COLOR_MAPPING
+ // Horrible, but portable, way to map colors
+ for (color_index = 0; color_index < nclrs; color_index++) {
+ color_match = true;
+ for (j = 0; j < cwid; j++) {
+ if (cmap[color_index][j] != cp[j]) {
+ color_match = false;
+ }
+ }
+ if (color_match) {
+ break;
+ }
+ }
+#else
+ if (cwid == 1) {
+ cmap_col = 0;
+ } else {
+ for (cmap_col = 0; cmap_col < 3; cmap_col++) {
+ if (cp[1] == std_cmap[cmap_col]) {
+ break;
+ }
+ }
+ }
+ cmap_row = *cp;
+ color_index = cmap[cmap_row][cmap_col];
+#endif
+ set_pixel(row+offset, col, color_index+2);
+ cp += cwid;
+ }
+ }
+#ifdef CYGOPT_UE250_VGA_COMM_LOGO_TOP
+ screen_start = (nrows + (FONT_HEIGHT-1))/FONT_HEIGHT;
+ screen_end = VGA_HEIGHT/FONT_HEIGHT;
+ return offset+nrows;
+#else
+ screen_start = 0;
+ screen_height = offset / FONT_HEIGHT;
+ screen_end = screen_height;
+ return offset;
+#endif
+}
+#endif
+
+void
+vga_screen_clear(void)
+{
+ int row, col;
+#ifdef CYGOPT_UE250_VGA_COMM_LOGO
+ int pos;
+#endif
+
+ for (row = 0; row < screen_height; row++) {
+ for (col = 0; col < screen_width; col++) {
+ screen[row][col] = ' ';
+ vga_drawc(' ', col, row);
+ }
+ }
+#ifdef CYGOPT_UE250_VGA_COMM_LOGO
+ // Note: Row 0 seems to wrap incorrectly
+#ifdef CYGOPT_UE250_VGA_COMM_LOGO_TOP
+ pos = 0;
+#else
+ pos = (VGA_HEIGHT-1);
+#endif
+ show_xpm(banner_xpm, pos);
+#endif // CYGOPT_UE250_VGA_COMM_LOGO
+ curX = 0; curY = screen_start;
+ if (cursor_enable) {
+ vga_drawc(CURSOR_ON, curX-screen_pan, curY);
+ }
+}
+
+// Position cursor
+void
+vga_moveto(int X, int Y)
+{
+ if (cursor_enable) {
+ vga_drawc(screen[curY][curX], curX-screen_pan, curY);
+ }
+ if (X < 0) X = 0;
+ if (X >= screen_width) X = screen_width-1;
+ curX = X;
+ if (Y < screen_start) Y = screen_start;
+ if (Y >= screen_height) Y = screen_height-1;
+ curY = Y;
+ if (cursor_enable) {
+ vga_drawc(CURSOR_ON, curX-screen_pan, curY);
+ }
+}
+
+static unsigned long _bitmap[] = {
+#ifdef FONT_LEFT_TO_RIGHT
+ 0x00000000, 0x01000000, 0x00010000, 0x01010000,
+ 0x00000100, 0x01000100, 0x00010100, 0x01010100,
+ 0x00000001, 0x01000001, 0x00010001, 0x01010001,
+ 0x00000101, 0x01000101, 0x00010101, 0x01010101,
+#else
+ 0x00000000, 0x00000001, 0x00000100, 0x00000101,
+ 0x00010000, 0x00010001, 0x00010100, 0x00010101,
+ 0x01000000, 0x01000001, 0x01000100, 0x01000101,
+ 0x01010000, 0x01010001, 0x01010100, 0x01010101
+#endif
+};
+
+// Render a character at position (X,Y) with current background/foreground
+static void
+vga_drawc(cyg_uint8 c, int x, int y)
+{
+ cyg_uint8 bits;
+ int l, p;
+ int xoff, yoff;
+ unsigned long *pix;
+
+ if ((x < 0) || (x >= VISIBLE_SCREEN_WIDTH) ||
+ (y < 0) || (y >= screen_height)) return;
+ for (l = 0; l < FONT_HEIGHT; l++) {
+ bits = font_table[c-FIRST_CHAR][l];
+ yoff = y*FONT_HEIGHT + l;
+ xoff = x*FONT_WIDTH;
+#if 0 // Render font characters one bit at a time
+ for (p = 0; p < FONT_WIDTH; p++) {
+#ifdef FONT_LEFT_TO_RIGHT
+ set_pixel(yoff, xoff + p, (bits & 0x80) ? fg : bg);
+ bits <<= 1;
+#else
+ set_pixel(yoff, xoff + p, (bits & 0x01) ? fg : bg);
+ bits >>= 1;
+#endif
+ }
+#else // Render characters 4 bits at a time
+ pix = (unsigned long *)vga_fb(yoff, xoff);
+#ifdef FONT_LEFT_TO_RIGHT
+ *pix++ = _bitmap[(bits & 0xF0) >> 4];
+ *pix++ = _bitmap[(bits & 0x0F)];
+#else
+ *pix++ = _bitmap[(bits & 0x0F)];
+ *pix++ = _bitmap[(bits & 0xF0) >> 4];
+#endif
+#endif
+ }
+}
+
+static void
+vga_refresh(void)
+{
+ int row, col;
+
+ for (row = screen_start; row < screen_height; row++) {
+ for (col = 0; col < VISIBLE_SCREEN_WIDTH; col++) {
+ if ((col+screen_pan) < screen_width) {
+ vga_drawc(screen[row][col+screen_pan], col, row);
+ } else {
+ vga_drawc(' ', col, row);
+ }
+ }
+ }
+ if (cursor_enable) {
+ vga_drawc(CURSOR_ON, curX-screen_pan, curY);
+ }
+}
+
+static void
+vga_scroll(void)
+{
+ int col;
+ cyg_uint8 *c1;
+ cyg_uint32 *lc0, *lc1, *lcn;
+ cyg_uint32 *fb_row0, *fb_row1, *fb_rown;
+
+ // First scroll up the virtual screen
+#if ((SCREEN_WIDTH%4) != 0)
+#error Scroll code optimized for screen with multiple of 4 columns
+#endif
+ lc0 = (cyg_uint32 *)&screen[0][0];
+ lc1 = (cyg_uint32 *)&screen[1][0];
+ lcn = (cyg_uint32 *)&screen[screen_height][0];
+ while (lc1 != lcn) {
+ *lc0++ = *lc1++;
+ }
+ c1 = &screen[screen_height-1][0];
+ for (col = 0; col < screen_width; col++) {
+ *c1++ = 0x20;
+ }
+#if 0 // Scrolling like this is *relly* slow
+ fb_row0 = (cyg_uint32 *)vga_fb(screen_start*FONT_HEIGHT, 0);
+ fb_row1 = (cyg_uint32 *)vga_fb((screen_start+1)*FONT_HEIGHT, 0);
+ fb_rown = (cyg_uint32 *)vga_fb(screen_end*FONT_HEIGHT, 0);
+#if 0
+ while (fb_row1 != fb_rown) {
+ *fb_row0++ = *fb_row1++;
+ }
+#else
+ // Optimized ARM assembly "move" code
+ asm __volatile(
+ "mov r0,%0;"
+ "mov r1,%1;"
+ "mov r2,%2;"
+ "10: ldmia r1!,{r3-r6};"
+ "stmia r0!,{r3-r6};"
+ "ldmia r1!,{r3-r6};"
+ "stmia r0!,{r3-r6};"
+ "cmp r1,r2;"
+ "bne 10b"
+ :
+ : "r"(fb_row0), "r"(fb_row1), "r"(fb_rown)
+ : "r0","r1","r2","r3","r4","r5","r6"
+ );
+#endif
+ // Erase bottom line
+ for (col = 0; col < screen_width; col++) {
+ vga_drawc(' ', col, screen_end-1);
+ }
+#else // Clear & redraw is faster!
+ vga_refresh();
+#endif
+}
+
+// Draw one character at the current position
+void
+vga_putc(cyg_uint8 c)
+{
+ if (cursor_enable) {
+ vga_drawc(screen[curY][curX], curX-screen_pan, curY);
+ }
+ switch (c) {
+ case '\r':
+ curX = 0;
+ break;
+ case '\n':
+ curY++;
+ break;
+ case '\b':
+ curX--;
+ if (curX < 0) {
+ curY--;
+ if (curY < 0) curY = 0;
+ curX = screen_width-1;
+ }
+ break;
+ default:
+ if (((int)c < FIRST_CHAR) || ((int)c > LAST_CHAR)) c = '.';
+ screen[curY][curX] = c;
+ vga_drawc(c, curX-screen_pan, curY);
+ curX++;
+ if (curX == screen_width) {
+ curY++;
+ curX = 0;
+ }
+ }
+ if (curY >= screen_height) {
+ vga_scroll();
+ curY = (screen_height-1);
+ }
+ if (cursor_enable) {
+ vga_drawc(CURSOR_ON, curX-screen_pan, curY);
+ }
+}
+
+// Basic VGA 'printf()' support
+
+#include <stdarg.h>
+
+#define is_digit(c) ((c >= '0') && (c <= '9'))
+
+static int
+_cvt(unsigned long val, char *buf, long radix, char *digits)
+{
+ char temp[80];
+ char *cp = temp;
+ int length = 0;
+
+ if (val == 0) {
+ /* Special case */
+ *cp++ = '0';
+ } else {
+ while (val) {
+ *cp++ = digits[val % radix];
+ val /= radix;
+ }
+ }
+ while (cp != temp) {
+ *buf++ = *--cp;
+ length++;
+ }
+ *buf = '\0';
+ return (length);
+}
+
+static int
+vga_vprintf(void (*putc)(cyg_uint8), const char *fmt0, va_list ap)
+{
+ char c, sign, *cp;
+ int left_prec, right_prec, zero_fill, length, pad, pad_on_right;
+ char buf[32];
+ long val;
+
+ while ((c = *fmt0++)) {
+ cp = buf;
+ length = 0;
+ if (c == '%') {
+ c = *fmt0++;
+ left_prec = right_prec = pad_on_right = 0;
+ if (c == '-') {
+ c = *fmt0++;
+ pad_on_right++;
+ }
+ if (c == '0') {
+ zero_fill = TRUE;
+ c = *fmt0++;
+ } else {
+ zero_fill = FALSE;
+ }
+ while (is_digit(c)) {
+ left_prec = (left_prec * 10) + (c - '0');
+ c = *fmt0++;
+ }
+ if (c == '.') {
+ c = *fmt0++;
+ zero_fill++;
+ while (is_digit(c)) {
+ right_prec = (right_prec * 10) + (c - '0');
+ c = *fmt0++;
+ }
+ } else {
+ right_prec = left_prec;
+ }
+ sign = '\0';
+ switch (c) {
+ case 'd':
+ case 'x':
+ case 'X':
+ val = va_arg(ap, long);
+ switch (c) {
+ case 'd':
+ if (val < 0) {
+ sign = '-';
+ val = -val;
+ }
+ length = _cvt(val, buf, 10, "0123456789");
+ break;
+ case 'x':
+ length = _cvt(val, buf, 16, "0123456789abcdef");
+ break;
+ case 'X':
+ length = _cvt(val, buf, 16, "0123456789ABCDEF");
+ break;
+ }
+ break;
+ case 's':
+ cp = va_arg(ap, char *);
+ length = strlen(cp);
+ break;
+ case 'c':
+ c = va_arg(ap, long /*char*/);
+ (*putc)(c);
+ continue;
+ default:
+ (*putc)('?');
+ }
+ pad = left_prec - length;
+ if (sign != '\0') {
+ pad--;
+ }
+ if (zero_fill) {
+ c = '0';
+ if (sign != '\0') {
+ (*putc)(sign);
+ sign = '\0';
+ }
+ } else {
+ c = ' ';
+ }
+ if (!pad_on_right) {
+ while (pad-- > 0) {
+ (*putc)(c);
+ }
+ }
+ if (sign != '\0') {
+ (*putc)(sign);
+ }
+ while (length-- > 0) {
+ (*putc)(c = *cp++);
+ if (c == '\n') {
+ (*putc)('\r');
+ }
+ }
+ if (pad_on_right) {
+ while (pad-- > 0) {
+ (*putc)(' ');
+ }
+ }
+ } else {
+ (*putc)(c);
+ if (c == '\n') {
+ (*putc)('\r');
+ }
+ }
+ }
+
+ // FIXME
+ return 0;
+}
+
+int
+_vga_printf(char const *fmt, ...)
+{
+ int ret;
+ va_list ap;
+
+ va_start(ap, fmt);
+ ret = vga_vprintf(vga_putc, fmt, ap);
+ va_end(ap);
+ return (ret);
+}
+
+//
+// Support VGA/keyboard (PS2) as a virtual I/O channel
+// Adapted from i386/pcmb_screen.c
+//
+
+
+//-----------------------------------------------------------------------------
+// Keyboard definitions
+
+#define KBDATAPORT 0x0060 // data I/O port
+#define KBCMDPORT 0x0064 // command port (write)
+#define KBSTATPORT 0x0064 // status port (read)
+
+#define KBINRDY 0x01
+#define KBOUTRDY 0x02
+#define KBTXTO 0x40 // Transmit timeout - nothing there
+#define KBTEST 0xAB
+
+// Scan codes
+
+#define LSHIFT 0x2a
+#define RSHIFT 0x36
+#define CTRL 0x1d
+#define ALT 0x38
+#define CAPS 0x3a
+#define NUMS 0x45
+
+#define BREAK 0x80
+
+// Bits for KBFlags
+
+#define KBNormal 0x0000
+#define KBShift 0x0001
+#define KBCtrl 0x0002
+#define KBAlt 0x0004
+#define KBIndex 0x0007 // mask for the above
+
+#define KBExtend 0x0010
+#define KBAck 0x0020
+#define KBResend 0x0040
+#define KBShiftL (0x0080 | KBShift)
+#define KBShiftR (0x0100 | KBShift)
+#define KBCtrlL (0x0200 | KBCtrl)
+#define KBCtrlR (0x0400 | KBCtrl)
+#define KBAltL (0x0800 | KBAlt)
+#define KBAltR (0x1000 | KBAlt)
+#define KBCapsLock 0x2000
+#define KBNumLock 0x4000
+
+#define KBArrowUp 0x48
+#define KBArrowRight 0x4D
+#define KBArrowLeft 0x4B
+#define KBArrowDown 0x50
+
+//-----------------------------------------------------------------------------
+// Keyboard Variables
+
+static int KBFlags = 0;
+
+static CYG_BYTE KBPending = 0xFF;
+
+static CYG_BYTE KBScanTable[128][4] = {
+// Normal Shift Control Alt
+// 0x00
+ { 0xFF, 0xFF, 0xFF, 0xFF, },
+ { 0x1b, 0x1b, 0x1b, 0xFF, },
+ { '1', '!', 0xFF, 0xFF, },
+ { '2', '"', 0xFF, 0xFF, },
+ { '3', '#', 0xFF, 0xFF, },
+ { '4', '$', 0xFF, 0xFF, },
+ { '5', '%', 0xFF, 0xFF, },
+ { '6', '^', 0xFF, 0xFF, },
+ { '7', '&', 0xFF, 0xFF, },
+ { '8', '*', 0xFF, 0xFF, },
+ { '9', '(', 0xFF, 0xFF, },
+ { '0', ')', 0xFF, 0xFF, },
+ { '-', '_', 0xFF, 0xFF, },
+ { '=', '+', 0xFF, 0xFF, },
+ { '\b', '\b', 0xFF, 0xFF, },
+ { '\t', '\t', 0xFF, 0xFF, },
+// 0x10
+ { 'q', 'Q', 0x11, 0xFF, },
+ { 'w', 'W', 0x17, 0xFF, },
+ { 'e', 'E', 0x05, 0xFF, },
+ { 'r', 'R', 0x12, 0xFF, },
+ { 't', 'T', 0x14, 0xFF, },
+ { 'y', 'Y', 0x19, 0xFF, },
+ { 'u', 'U', 0x15, 0xFF, },
+ { 'i', 'I', 0x09, 0xFF, },
+ { 'o', 'O', 0x0F, 0xFF, },
+ { 'p', 'P', 0x10, 0xFF, },
+ { '[', '{', 0x1b, 0xFF, },
+ { ']', '}', 0x1d, 0xFF, },
+ { '\r', '\r', '\n', 0xFF, },
+ { 0xFF, 0xFF, 0xFF, 0xFF, },
+ { 'a', 'A', 0x01, 0xFF, },
+ { 's', 'S', 0x13, 0xFF, },
+// 0x20
+ { 'd', 'D', 0x04, 0xFF, },
+ { 'f', 'F', 0x06, 0xFF, },
+ { 'g', 'G', 0x07, 0xFF, },
+ { 'h', 'H', 0x08, 0xFF, },
+ { 'j', 'J', 0x0a, 0xFF, },
+ { 'k', 'K', 0x0b, 0xFF, },
+ { 'l', 'L', 0x0c, 0xFF, },
+ { ';', ':', 0xFF, 0xFF, },
+ { 0x27, '@', 0xFF, 0xFF, },
+ { '#', '~', 0xFF, 0xFF, },
+ { '`', '~', 0xFF, 0xFF, },
+ { '\\', '|', 0x1C, 0xFF, },
+ { 'z', 'Z', 0x1A, 0xFF, },
+ { 'x', 'X', 0x18, 0xFF, },
+ { 'c', 'C', 0x03, 0xFF, },
+ { 'v', 'V', 0x16, 0xFF, },
+// 0x30
+ { 'b', 'B', 0x02, 0xFF, },
+ { 'n', 'N', 0x0E, 0xFF, },
+ { 'm', 'M', 0x0D, 0xFF, },
+ { ',', '<', 0xFF, 0xFF, },
+ { '.', '>', 0xFF, 0xFF, },
+ { '/', '?', 0xFF, 0xFF, },
+ { 0xFF, 0xFF, 0xFF, 0xFF, },
+ { 0xFF, 0xFF, 0xFF, 0xFF, },
+ { 0xFF, 0xFF, 0xFF, 0xFF, },
+ { ' ', ' ', ' ', ' ', },
+ { 0xFF, 0xFF, 0xFF, 0xFF, },
+ { 0xF1, 0xE1, 0xFF, 0xFF, },
+ { 0xF2, 0xE2, 0xFF, 0xFF, },
+ { 0xF3, 0xE3, 0xFF, 0xFF, },
+ { 0xF4, 0xE4, 0xFF, 0xFF, },
+ { 0xF5, 0xE5, 0xFF, 0xFF, },
+// 0x40
+ { 0xFF, 0xFF, 0xFF, 0xFF, },
+ { 0xFF, 0xFF, 0xFF, 0xFF, },
+ { 0xFF, 0xFF, 0xFF, 0xFF, },
+ { 0xFF, 0xFF, 0xFF, 0xFF, },
+ { 0xFF, 0xFF, 0xFF, 0xFF, },
+ { 0xFF, 0xFF, 0xFF, 0xFF, },
+ { 0xFF, 0xFF, 0xFF, 0xFF, },
+ { 0xFF, 0xFF, 0xFF, 0xFF, },
+
+ { 0x15, 0x15, 0x15, 0x15, },
+ { 0x10, 0x10, 0x10, 0x10, },
+ { 0xFF, 0xFF, 0xFF, 0xFF, },
+ { 0xFF, 0xFF, 0xFF, 0xFF, },
+ { 0xFF, 0xFF, 0xFF, 0xFF, },
+ { 0xFF, 0xFF, 0xFF, 0xFF, },
+ { 0xFF, 0xFF, 0xFF, 0xFF, },
+ { 0xFF, 0xFF, 0xFF, 0xFF, },
+// 0x50
+ { 0x04, 0x04, 0x04, 0x04, },
+ { 0x0e, 0x0e, 0x0e, 0x0e, },
+ { 0xFF, 0xFF, 0xFF, 0xFF, },
+ { 0xFF, 0xFF, 0xFF, 0xFF, },
+ { 0xFF, 0xFF, 0xFF, 0xFF, },
+ { 0xFF, 0xFF, 0xFF, 0xFF, },
+ { 0xFF, 0xFF, 0xFF, 0xFF, },
+ { 0xFF, 0xFF, 0xFF, 0xFF, },
+ { 0xFF, 0xFF, 0xFF, 0xFF, },
+ { 0xFF, 0xFF, 0xFF, 0xFF, },
+ { 0xFF, 0xFF, 0xFF, 0xFF, },
+ { 0xFF, 0xFF, 0xFF, 0xFF, },
+ { 0xFF, 0xFF, 0xFF, 0xFF, },
+ { 0xFF, 0xFF, 0xFF, 0xFF, },
+ { 0xFF, 0xFF, 0xFF, 0xFF, },
+ { 0xFF, 0xFF, 0xFF, 0xFF, },
+// 0x60
+ { 0xFF, 0xFF, 0xFF, 0xFF, },
+ { 0xFF, 0xFF, 0xFF, 0xFF, },
+ { 0xFF, 0xFF, 0xFF, 0xFF, },
+ { 0xFF, 0xFF, 0xFF, 0xFF, },
+ { 0xFF, 0xFF, 0xFF, 0xFF, },
+ { 0xFF, 0xFF, 0xFF, 0xFF, },
+ { 0xFF, 0xFF, 0xFF, 0xFF, },
+ { 0xFF, 0xFF, 0xFF, 0xFF, },
+ { 0xFF, 0xFF, 0xFF, 0xFF, },
+ { 0xFF, 0xFF, 0xFF, 0xFF, },
+ { 0xFF, 0xFF, 0xFF, 0xFF, },
+ { 0xFF, 0xFF, 0xFF, 0xFF, },
+ { 0xFF, 0xFF, 0xFF, 0xFF, },
+ { 0xFF, 0xFF, 0xFF, 0xFF, },
+ { 0xFF, 0xFF, 0xFF, 0xFF, },
+ { 0xFF, 0xFF, 0xFF, 0xFF, },
+// 0x70
+ { 0xFF, 0xFF, 0xFF, 0xFF, },
+ { 0xFF, 0xFF, 0xFF, 0xFF, },
+ { 0xFF, 0xFF, 0xFF, 0xFF, },
+ { 0xFF, 0xFF, 0xFF, 0xFF, },
+ { 0xFF, 0xFF, 0xFF, 0xFF, },
+ { 0xFF, 0xFF, 0xFF, 0xFF, },
+ { 0xFF, 0xFF, 0xFF, 0xFF, },
+ { 0xFF, 0xFF, 0xFF, 0xFF, },
+ { 0xFF, 0xFF, 0xFF, 0xFF, },
+ { 0xFF, 0xFF, 0xFF, 0xFF, },
+ { 0xFF, 0xFF, 0xFF, 0xFF, },
+ { 0xFF, 0xFF, 0xFF, 0xFF, },
+ { 0xFF, 0xFF, 0xFF, 0xFF, },
+ { 0xFF, 0xFF, 0xFF, 0xFF, },
+ { 0xFF, 0xFF, 0xFF, 0xFF, },
+ { 0xFF, 0xFF, 0xFF, 0xFF, },
+};
+
+static int KBIndexTab[8] = { 0, 1, 2, 2, 3, 3, 3, 3 };
+
+//-----------------------------------------------------------------------------
+
+static __inline__ cyg_uint8
+inb(cyg_uint32 port)
+{
+ cyg_uint8 val;
+ val = localbus_readl(port<<2);
+ return val;
+}
+
+static __inline__ void
+outb(cyg_uint32 port, cyg_uint8 val)
+{
+ localbus_writel(val, port<<2);
+}
+
+static cyg_bool
+KeyboardInit(void)
+{
+ unsigned char c, s;
+
+ /* flush input queue */
+ while ((inb(KBSTATPORT) & KBINRDY)) {
+ (void)inb(KBDATAPORT);
+ }
+
+ /* Send self-test - controller local */
+ while (inb(KBSTATPORT) & KBOUTRDY) c = inb(KBDATAPORT);
+ outb(KBCMDPORT,0xAA);
+ while ((inb(KBSTATPORT) & KBINRDY) == 0) ; /* wait input ready */
+ if ((c = inb(KBDATAPORT)) != 0x55) {
+#ifdef DEBUG_KBD_INIT
+ diag_printf("Keyboard self test failed - result: %x\n", c);
+#endif
+ return false;
+ }
+
+ /* Enable interrupts and keyboard controller */
+ while (inb(KBSTATPORT) & KBOUTRDY) ;
+ outb(KBCMDPORT,0x60);
+ while (inb(KBSTATPORT) & KBOUTRDY) ;
+ outb(KBCMDPORT,0x45);
+ CYGACC_CALL_IF_DELAY_US(10000); // 10ms
+
+ while (inb(KBSTATPORT) & KBOUTRDY) ;
+ outb(KBCMDPORT,0xAE); // Enable keyboard
+
+ /* See if a keyboard is connected */
+ while (inb(KBSTATPORT) & KBOUTRDY) ;
+ outb(KBDATAPORT,0xFF);
+ while (((s = inb(KBSTATPORT)) & (KBINRDY|KBTXTO)) == 0) ; /* wait input ready */
+ if ((s & KBTXTO) || ((c = inb(KBDATAPORT)) != 0xFA)) {
+#ifdef DEBUG_KBD_INIT
+ diag_printf("Keyboard reset failed - no ACK: %x, stat: %x\n", c, s);
+#endif
+ return false;
+ }
+ while (((s = inb(KBSTATPORT)) & KBINRDY) == 0) ; /* wait input ready */
+ if ((s & KBTXTO) || ((c = inb(KBDATAPORT)) != 0xAA)) {
+#ifdef DEBUG_KBD_INIT
+ diag_printf("Keyboard reset failed - bad code: %x, stat: %x\n", c, s);
+#endif
+ return false;
+ }
+
+ // Set scan mode
+ while (inb(KBSTATPORT) & KBOUTRDY) ;
+ outb(KBCMDPORT,0x20);
+ while ((inb(KBSTATPORT) & KBINRDY) == 0) ; /* wait input ready */
+ if (! (inb(KBDATAPORT) & 0x40)) {
+ /*
+ * Quote from PS/2 System Reference Manual:
+ *
+ * "Address hex 0060 and address hex 0064 should be
+ * written only when the input-buffer-full bit and
+ * output-buffer-full bit in the Controller Status
+ * register are set 0." (KBINRDY and KBOUTRDY)
+ */
+
+ while (inb(KBSTATPORT) & (KBINRDY | KBOUTRDY)) ;
+ outb(KBDATAPORT,0xF0);
+ while (inb(KBSTATPORT) & (KBINRDY | KBOUTRDY)) ;
+ outb(KBDATAPORT,0x01);
+ }
+
+ KBFlags = 0;
+ return true;
+} /* KeyboardInit */
+
+//-----------------------------------------------------------------------------
+
+static CYG_BYTE
+KeyboardAscii(CYG_BYTE scancode)
+{
+ CYG_BYTE ascii = 0xFF;
+
+ // Start by handling all shift/ctl keys:
+
+ switch( scancode ) {
+ case 0xe0:
+ KBFlags |= KBExtend;
+ return 0xFF;
+
+ case 0xfa:
+ KBFlags |= KBAck;
+ return 0xFF;
+
+ case 0xfe:
+ KBFlags |= KBResend;
+ return 0xFF;
+
+ case LSHIFT:
+ KBFlags |= KBShiftL;
+ return 0xFF;
+
+ case LSHIFT | BREAK:
+ KBFlags &= ~KBShiftL;
+ return 0xFF;
+
+ case RSHIFT:
+ KBFlags |= KBShiftR;
+ return 0xFF;
+
+ case RSHIFT | BREAK:
+ KBFlags &= ~KBShiftR;
+ return 0xFF;
+
+ case CTRL:
+ if( KBFlags & KBExtend )
+ {
+ KBFlags |= KBCtrlR;
+ KBFlags &= ~KBExtend;
+ }
+ else KBFlags |= KBCtrlL;
+ return 0xFF;
+
+ case CTRL | BREAK:
+ if( KBFlags & KBExtend )
+ {
+ KBFlags &= ~KBCtrlR;
+ KBFlags &= ~KBExtend;
+ }
+ else KBFlags &= ~KBCtrlL;
+ return 0xFF;
+
+
+ case ALT:
+ if( KBFlags & KBExtend )
+ {
+ KBFlags |= KBAltR;
+ KBFlags &= ~KBExtend;
+ }
+ else KBFlags |= KBAltL;
+ return 0xFF;
+
+ case ALT | BREAK:
+ if( KBFlags & KBExtend )
+ {
+ KBFlags &= ~KBAltR;
+ KBFlags &= ~KBExtend;
+ }
+ else KBFlags &= ~KBAltL;
+ return 0xFF;
+
+ case CAPS:
+ KBFlags ^= KBCapsLock;
+ case CAPS | BREAK:
+ return 0xFF;
+
+ case NUMS:
+ KBFlags ^= KBNumLock;
+ case NUMS | BREAK:
+ return 0xFF;
+
+ case KBArrowUp:
+ case KBArrowDown:
+ screen_pan = 0;
+ vga_refresh();
+ break;
+ case KBArrowLeft:
+ screen_pan -= SCREEN_PAN;
+ if (screen_pan < 0) screen_pan = 0;
+ vga_refresh();
+ break;
+ case KBArrowRight:
+ screen_pan += SCREEN_PAN;
+ if (screen_pan > (SCREEN_WIDTH-SCREEN_PAN))
+ screen_pan = SCREEN_WIDTH-SCREEN_PAN;
+ vga_refresh();
+ break;
+
+ }
+
+ // Clear Extend flag if set
+ KBFlags &= ~KBExtend;
+
+ // Ignore all other BREAK codes
+ if( scancode & 0x80 ) return 0xFF;
+
+ // Here the scancode is for something we can turn
+ // into an ASCII value
+
+ ascii = KBScanTable[scancode & 0x7F][KBIndexTab[KBFlags & KBIndex]];
+
+ return ascii;
+
+} /* KeyboardAscii */
+
+//-----------------------------------------------------------------------------
+
+static int
+KeyboardTest(void)
+{
+ // If there is a pending character, return True
+ if( KBPending != 0xFF ) return true;
+
+ // If there is something waiting at the port, get it
+ for(;;) {
+ CYG_BYTE stat, code;
+ CYG_BYTE c;
+
+ stat = inb(KBSTATPORT);
+
+ if( (stat & KBINRDY) == 0 )
+ break;
+
+ code = inb(KBDATAPORT);
+
+ // Translate to ASCII
+ c = KeyboardAscii(code);
+
+ // if it is a real ASCII char, save it and
+ // return True.
+ if( c != 0xFF ) {
+ KBPending = c;
+ return true;
+ }
+ }
+
+ // Otherwise return False
+ return false;
+
+} /* KeyboardTest */
+
+char
+KeyboardChar(void)
+{
+ char c = KBPending;
+ KBPending = 0xFF;
+ return c;
+}
+
+static int _timeout = 500;
+
+static cyg_bool
+vga_comm_getc_nonblock(void* __ch_data, cyg_uint8* ch)
+{
+ if( !KeyboardTest() )
+ return false;
+ *ch = KBPending;
+ KBPending = 0xFF;
+ return true;
+}
+
+static cyg_uint8
+vga_comm_getc(void* __ch_data)
+{
+ cyg_uint8 ch;
+
+ while (!vga_comm_getc_nonblock(__ch_data, &ch)) ;
+ return ch;
+}
+
+static void
+vga_comm_putc(void* __ch_data, cyg_uint8 c)
+{
+ vga_putc(c);
+}
+
+static void
+vga_comm_write(void* __ch_data, const cyg_uint8* __buf, cyg_uint32 __len)
+{
+#if 0
+ CYGARC_HAL_SAVE_GP();
+
+ while(__len-- > 0)
+ vga_comm_putc(__ch_data, *__buf++);
+
+ CYGARC_HAL_RESTORE_GP();
+#endif
+}
+
+static void
+vga_comm_read(void* __ch_data, cyg_uint8* __buf, cyg_uint32 __len)
+{
+#if 0
+ CYGARC_HAL_SAVE_GP();
+
+ while(__len-- > 0)
+ *__buf++ = vga_comm_getc(__ch_data);
+
+ CYGARC_HAL_RESTORE_GP();
+#endif
+}
+
+static cyg_bool
+vga_comm_getc_timeout(void* __ch_data, cyg_uint8* ch)
+{
+ int delay_count;
+ cyg_bool res;
+
+ delay_count = _timeout * 2; // delay in .5 ms steps
+ for(;;) {
+ res = vga_comm_getc_nonblock(__ch_data, ch);
+ if (res || 0 == delay_count--)
+ break;
+ CYGACC_CALL_IF_DELAY_US(500);
+ }
+ return res;
+}
+
+static int
+vga_comm_control(void *__ch_data, __comm_control_cmd_t __func, ...)
+{
+ static int vector = 0;
+ int ret = -1;
+ static int irq_state = 0;
+
+ CYGARC_HAL_SAVE_GP();
+
+ switch (__func) {
+ case __COMMCTL_IRQ_ENABLE:
+ ret = irq_state;
+ irq_state = 1;
+ break;
+ case __COMMCTL_IRQ_DISABLE:
+ ret = irq_state;
+ irq_state = 0;
+ break;
+ case __COMMCTL_DBG_ISR_VECTOR:
+ ret = vector;
+ break;
+ case __COMMCTL_SET_TIMEOUT:
+ {
+ va_list ap;
+
+ va_start(ap, __func);
+
+ ret = _timeout;
+ _timeout = va_arg(ap, cyg_uint32);
+
+ va_end(ap);
+ break;
+ }
+ case __COMMCTL_FLUSH_OUTPUT:
+ ret = 0;
+ break;
+ default:
+ break;
+ }
+ CYGARC_HAL_RESTORE_GP();
+ return ret;
+}
+
+static int
+vga_comm_isr(void *__ch_data, int* __ctrlc,
+ CYG_ADDRWORD __vector, CYG_ADDRWORD __data)
+{
+#if 0
+ char ch;
+
+ cyg_drv_interrupt_acknowledge(__vector);
+ *__ctrlc = 0;
+ if (vga_comm_getc_nonblock(__ch_data, &ch)) {
+ if (ch == 0x03) {
+ *__ctrlc = 1;
+ }
+ }
+ return CYG_ISR_HANDLED;
+#else
+ return 0;
+#endif
+}
+
+void
+vga_comm_init(cyg_uint32 *addr)
+{
+ static int init = 0;
+
+ if (!init) {
+ hal_virtual_comm_table_t* comm;
+ int cur = CYGACC_CALL_IF_SET_CONSOLE_COMM(CYGNUM_CALL_IF_SET_COMM_ID_QUERY_CURRENT);
+
+ init = 1;
+ if (!KeyboardInit()) {
+ // No keyboard - no VGA/CRT display
+ return;
+ }
+
+ // Initialize screen
+ cursor_enable = true;
+ vga_init(addr);
+ vga_on(true);
+ vga_screen_clear();
+
+ // Setup procs in the vector table
+ CYGACC_CALL_IF_SET_CONSOLE_COMM(1); // FIXME - should be controlled by CDL
+ comm = CYGACC_CALL_IF_CONSOLE_PROCS();
+ //CYGACC_COMM_IF_CH_DATA_SET(*comm, chan);
+ CYGACC_COMM_IF_WRITE_SET(*comm, vga_comm_write);
+ CYGACC_COMM_IF_READ_SET(*comm, vga_comm_read);
+ CYGACC_COMM_IF_PUTC_SET(*comm, vga_comm_putc);
+ CYGACC_COMM_IF_GETC_SET(*comm, vga_comm_getc);
+ CYGACC_COMM_IF_CONTROL_SET(*comm, vga_comm_control);
+ CYGACC_COMM_IF_DBG_ISR_SET(*comm, vga_comm_isr);
+ CYGACC_COMM_IF_GETC_TIMEOUT_SET(*comm, vga_comm_getc_timeout);
+
+ // Restore original console
+ CYGACC_CALL_IF_SET_CONSOLE_COMM(cur);
+ }
+}
+
+#ifdef CYGPKG_REDBOOT
+#include <redboot.h>
+
+// Get here when RedBoot is idle. If it's been long enough, then
+// dim the VGA. The problem is - how to determine other activities
+// so at this doesn't get in the way. In the default case, this will
+// be called from RedBoot every 10ms (CYGNUM_REDBOOT_CLI_IDLE_TIMEOUT)
+
+#define MAX_IDLE_TIME (30*100)
+
+static void
+idle(bool is_idle)
+{
+ static int idle_time = 0;
+ static bool was_idled = false;
+
+ if (is_idle) {
+ if (!was_idled) {
+ if (++idle_time == MAX_IDLE_TIME) {
+ was_idled = true;
+ vga_on(false);
+ }
+ }
+ } else {
+ idle_time = 0;
+ if (was_idled) {
+ was_idled = false;
+ vga_on(true);
+ }
+ }
+}
+
+RedBoot_idle(idle, RedBoot_AFTER_NETIO);
+#endif
+#endif
diff --git a/ecos/packages/hal/arm/xscale/picasso/current/src/xilinx-load.c b/ecos/packages/hal/arm/xscale/picasso/current/src/xilinx-load.c
new file mode 100644
index 0000000..d6c59ee
--- /dev/null
+++ b/ecos/packages/hal/arm/xscale/picasso/current/src/xilinx-load.c
@@ -0,0 +1,432 @@
+//==========================================================================
+//
+// xilinx-load.c
+//
+// FPGA support for NMI uEngine picasso
+//
+//==========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 2003 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//==========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): David Mazur <david@mind.be>
+// Contributors: gthomas
+// Date: 2003-02-20
+// Purpose: FPGA support
+// Description:
+//
+//####DESCRIPTIONEND####
+//
+//========================================================================*/
+
+#include <pkgconf/hal.h>
+#include <pkgconf/system.h>
+#include CYGBLD_HAL_PLATFORM_H
+#include CYGHWR_MEMORY_LAYOUT_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/infra/diag.h> // diagnostic printing
+
+#include <cyg/hal/hal_io.h> // IO macros
+#include <cyg/hal/hal_if.h> // calling interface API
+#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/io/pci_hw.h>
+#include <cyg/io/pci.h>
+
+#include <cyg/hal/plx.h>
+
+#define FPGA_PROG 0x00020000
+#define FPGA_INIT 0x00000002
+#define FPGA_DONE 0x00080000
+
+#define _FPGA_PROG_BASE 0x0c000000
+#define FPGA_PROG_BASE (*((volatile cyg_uint32 *)(_FPGA_PROG_BASE)))
+
+#define FPGA_DONE_DRV 0x8
+#define FPGA_INIT_DRV 0x10
+#define FPGA_WRITE 0x20
+
+#define VGA_PROG_CTRL 0x4008
+#define VGA_PROG_DATA 0x400C
+
+#define VGA_DONE 0x1
+#define VGA_INIT 0x2
+#define VGA_PROG 0x4
+#define VGA_DONE_DRV 0x8
+#define VGA_INIT_DRV 0x10
+#define VGA_WRITE 0x20
+
+
+#include <cyg/compress/zlib.h>
+
+extern char _end;
+
+static z_stream stream;
+
+#define FEEDBACK_COUNT 16
+#define ZCHAR_BUF_SIZE 256
+struct _zchar_info {
+ char buf[ZCHAR_BUF_SIZE];
+ char *ptr;
+ int avail;
+ int feedback;
+ int total;
+};
+
+// Internal allocator for decompression - just use bottom of heap
+// which will be reclaimed by eCos once the system is initialized
+static void *
+_zcalloc(void *opaque, unsigned int items, unsigned int size)
+{
+ static char *ptr = (char *)&_end;
+ char *res = ptr;
+
+// diag_printf("%s(%p,%d,%d) = %p\n", __FUNCTION__, opaque, items, size, res);
+ ptr += (size*items);
+ return res;
+}
+
+static void
+_zcfree(void *opaque, void *ptr)
+{
+// diag_printf("%s(%p,%p)\n", __FUNCTION__, opaque, ptr);
+}
+
+static int
+_zchar(void)
+{
+ int err;
+ struct _zchar_info *info = (struct _zchar_info *)stream.opaque;
+ static char spin[] = "|/-\\|-";
+ static int tick = 0;
+
+ if (info->avail == 0) {
+ stream.next_out = info->buf;
+ stream.avail_out = sizeof(info->buf);
+ info->ptr = info->buf;
+ err = inflate(&stream, Z_SYNC_FLUSH);
+ info->avail = (char *)stream.next_out - info->buf;
+ if (--info->feedback == 0) {
+ diag_printf("%c\b", spin[tick++]);
+ if (tick >= (sizeof(spin)-1)) {
+ tick = 0;
+ }
+ info->feedback = FEEDBACK_COUNT;
+ }
+ }
+ if (info->avail) {
+ info->avail--;
+ info->total++;
+ return *(info->ptr)++;
+ } else {
+ // End of data stream
+ return -1;
+ }
+}
+
+/**
+ * A little bit swapping function, necessary due to the xilinx bit file format.
+ */
+static const cyg_uint8 _swapped[] = {
+ 0x00, 0x08, 0x04, 0x0C, 0x02, 0x0A, 0x06, 0x0E,
+ 0x01, 0x09, 0x05, 0x0D, 0x03, 0x0B, 0x07, 0x0F
+};
+
+static cyg_uint8
+bitswap(cyg_uint8 byte)
+{
+ cyg_uint8 _new = (_swapped[byte & 0x0F] << 4) | (_swapped[(byte >> 4) & 0x0F]);
+ return _new;
+}
+
+typedef int _bitfile_fun(void);
+typedef void _download_fun(_bitfile_fun *_bitfile);
+
+/**
+ * Gets the tag at given location in the bitfile.
+ */
+static cyg_uint8
+bitfile_get_tag(_bitfile_fun *_bitfile)
+{
+ return (*_bitfile)();
+}
+
+static cyg_uint16
+bitfile_get_len16(_bitfile_fun *_bitfile)
+{
+ cyg_uint16 length;
+
+ length = (*_bitfile)() << 8;
+ length |= (*_bitfile)();
+
+ return length;
+}
+
+static int
+bitfile_get_len32(_bitfile_fun *_bitfile)
+{
+ cyg_uint32 length;
+
+ length = (*_bitfile)() << 24;
+ length |= (*_bitfile)() << 16;
+ length |= (*_bitfile)() << 8;
+ length |= (*_bitfile)();
+
+ return length;
+}
+
+/**
+ * Process a string tag.
+ */
+static void
+bitfile_process_string_tag(char *description, _bitfile_fun *_bitfile)
+{
+ int len,i;
+
+ len = bitfile_get_len16(_bitfile);
+ diag_printf(description);
+ for (i = 0; i < len; i++) {
+ diag_printf("%c", (*_bitfile)());
+ }
+}
+
+/**
+ * Process the 'e' tag in the bit file, which is the actual code that is to
+ * be programmed on the fpga.
+ */
+static void
+bitfile_process_tag_e(_bitfile_fun *_bitfile)
+{
+ int len,count,i;
+ cyg_uint8 byte;
+ cyg_uint32 word;
+
+ len = bitfile_get_len32(_bitfile);
+
+ *PXA2X0_GPCR0 = FPGA_PROG;
+
+ for (count=0; count<10000; count++)
+ if ((*PXA2X0_GPLR0 & FPGA_INIT) == 0)
+ break;
+ if ((*PXA2X0_GPLR0 & FPGA_INIT) != 0)
+ diag_printf("INIT did not go low. FPGA programming failed\n");
+
+ *PXA2X0_GPSR0 = FPGA_PROG;
+
+ for (count=0; count<10000; count++)
+ if ((*PXA2X0_GPLR0 & FPGA_INIT) != 0)
+ break;
+ if ((*PXA2X0_GPLR0 & FPGA_INIT) == 0)
+ diag_printf("INIT did not go high. FPGA programming failed\n");
+
+ for( i=0; i<len; i++) {
+ if ((*PXA2X0_GPLR0 & FPGA_INIT) == 0) {
+ diag_printf("CRC Error. FPGA programming failed\n");
+ }
+
+ byte = (*_bitfile)();
+ word = 0;
+
+ if (byte & (0x01 << 7)) word|=(0x01);
+ if (byte & (0x01 << 6)) word|=(0x01 << 18);
+ if (byte & (0x01 << 5)) word|=(0x01 << 14);
+ if (byte & (0x01 << 4)) word|=(0x01 << 1);
+ if (byte & (0x01 << 3)) word|=(0x01 << 4);
+ if (byte & (0x01 << 2)) word|=(0x01 << 6);
+ if (byte & (0x01 << 1)) word|=(0x01 << 9);
+ if (byte & (0x01)) word|=(0x01 << 30);
+
+ FPGA_PROG_BASE = word;
+ }
+
+ for (count=0; count<10000; count++)
+ if ((*PXA2X0_GPLR0 & FPGA_DONE) != 0)
+ break;
+ if ((*PXA2X0_GPLR0 & FPGA_DONE) == 0)
+ diag_printf("DONE did not go high. FPGA programming failed\n");
+
+}
+
+/**
+ * Process the 'e' tag in the bit file, which is the actual code that is to
+ * be programmed on the fpga.
+ */
+static void
+vga_bitfile_process_tag_e(_bitfile_fun *_bitfile)
+{
+ int len,count,i;
+ cyg_uint8 byte;
+
+ len = bitfile_get_len32(_bitfile);
+
+ localbus_writeb(VGA_WRITE, VGA_PROG_CTRL);
+ localbus_writeb(VGA_WRITE | VGA_PROG, VGA_PROG_CTRL);
+
+ for (count=0; count<10000; count++)
+ if (localbus_readb(VGA_PROG_CTRL) & VGA_INIT)
+ break;
+ if (!(localbus_readb(VGA_PROG_CTRL) & VGA_INIT))
+ diag_printf("INIT did not go high. VGA FPGA programming failed\n");
+
+ localbus_writeb(VGA_PROG, VGA_PROG_CTRL);
+
+ for (i=0; i<len; i++) {
+ byte = (*_bitfile)();
+ localbus_writeb(bitswap(byte),VGA_PROG_DATA);
+ }
+
+ for (count=0; count<10000; count++)
+ if (localbus_readb(VGA_PROG_CTRL) & VGA_DONE)
+ break;
+ if (!(localbus_readb(VGA_PROG_CTRL) & VGA_DONE))
+ diag_printf("DONE did not go high. VGA FPGA programming failed\n");
+
+ localbus_writeb(VGA_PROG | VGA_WRITE, VGA_PROG_CTRL);
+}
+
+//
+// Download a bitstream
+//
+static void
+download_bitstream(char *title, _bitfile_fun *_bitfile, _download_fun *_download)
+{
+ int len, tag;
+
+ diag_printf("Load %s(", title);
+
+ len = bitfile_get_len16(_bitfile);
+ while (len-- > 0) {
+ (*_bitfile)(); // Skip
+ }
+ len = bitfile_get_len16(_bitfile);
+
+ tag = 0;
+ while (tag != 'e') {
+
+ tag = bitfile_get_tag(_bitfile);
+ switch (tag) {
+ case 'a':
+ bitfile_process_string_tag("Design:", _bitfile);
+ break;
+
+ case 'b':
+ bitfile_process_string_tag(", Part:", _bitfile);
+ break;
+
+ case 'c':
+ bitfile_process_string_tag(", Date:", _bitfile);
+ break;
+
+ case 'd':
+ bitfile_process_string_tag(" ", _bitfile);
+ break;
+
+ case 'e':
+ (*_download)(_bitfile);
+ break;
+
+ default:
+ diag_printf("Unknown tag. aborting...\n");
+ return;
+ }
+ }
+}
+
+
+/**
+ * Process a bitfile located at the given address.
+ */
+void
+load_fpga(cyg_uint8 *compressed_bitfile, int len)
+{
+ int err;
+ struct _zchar_info zchar_data;
+
+ stream.zalloc = _zcalloc;
+ stream.zfree = _zcfree;
+ stream.next_in = compressed_bitfile;
+ stream.avail_in = len;
+ stream.next_out = 0;
+ stream.avail_out = 0;
+ stream.opaque = (void *)&zchar_data;
+ zchar_data.avail = 0;
+ zchar_data.feedback = FEEDBACK_COUNT;
+ zchar_data.total = 0;
+ err = inflateInit(&stream);
+ if (err) {
+ diag_printf("%s: Can't init stream\n", __FUNCTION__);
+ return;
+ }
+ // Set up to download FPGA bitstreap
+ *PXA2X0_GPSR0 = FPGA_PROG;
+ download_bitstream("PCI ctlr", _zchar, bitfile_process_tag_e);
+ inflateEnd(&stream);
+ diag_printf(") %x bytes\n", zchar_data.total);
+}
+
+#if 0
+/**
+ * Process a bitfile located at the given address.
+ */
+void
+load_vga(cyg_uint8 *compressed_bitfile, int len)
+{
+ int err;
+ struct _zchar_info zchar_data;
+
+ stream.zalloc = _zcalloc;
+ stream.zfree = _zcfree;
+ stream.next_in = compressed_bitfile;
+ stream.avail_in = len;
+ stream.next_out = 0;
+ stream.avail_out = 0;
+ stream.opaque = (void *)&zchar_data;
+ zchar_data.avail = 0;
+ zchar_data.feedback = FEEDBACK_COUNT;
+ zchar_data.total = 0;
+ err = inflateInit(&stream);
+ if (err) {
+ diag_printf("%s: Can't init stream\n", __FUNCTION__);
+ return;
+ }
+ download_bitstream("VGA ctlr", _zchar, vga_bitfile_process_tag_e);
+ inflateEnd(&stream);
+ diag_printf(") %x bytes\n", zchar_data.total);
+}
+#endif
+
diff --git a/ecos/packages/hal/arm/xscale/prpmc1100/current/ChangeLog b/ecos/packages/hal/arm/xscale/prpmc1100/current/ChangeLog
new file mode 100644
index 0000000..a1e2082
--- /dev/null
+++ b/ecos/packages/hal/arm/xscale/prpmc1100/current/ChangeLog
@@ -0,0 +1,56 @@
+2009-10-16 John Dallaway <john@dallaway.org.uk>
+
+ * cdl/hal_arm_xscale_prmpc1100.cdl: Parent under
+ CYGPKG_HAL_ARM_XSCALE_IXP425.
+
+2009-01-31 Bart Veer <bartv@ecoscentric.com>
+
+ * cdl/hal_arm_xscale_prpmc1100.cdl: update compiler flags for gcc 4.x
+
+2009-01-24 Bart Veer <bartv@ecoscentric.com>
+
+ * cdl/hal_arm_xscale_prpmc1100.cdl: switch from arm-elf-gcc to
+ arm-eabi-gcc.
+
+2006-03-01 Mark Salter <msalter@sadr.localdomain>
+
+ * include/hal_platform_setup.h: Fix DELAY macro.
+
+2004-09-02 Mark Salter <msalter@redhat.com>
+
+ * misc/redboot_RAM.ecm: Remove CYGOPT_DEVS_FLASH_STRATA_NOT_IN_RAM.
+
+2003-06-30 Mark Salter <msalter@redhat.com>
+
+ * include/hal_platform_setup.h: Fix CYGINT_HAL_ARM_BIGENDIAN test.
+ Remove unused ROMRAM cruft.
+
+2003-04-06 Mark Salter <msalter@redhat.com>
+
+ * src/prpmc1100_misc.c: Support serial EEPROM. Init GPIO.
+ * src/prpmc1100_pci.c: Support both monarch and non-monarch modes.
+ * include/prpmc1100.h: Add GPIO defines. Add CTL/STS register defines.
+
+//===========================================================================
+// ####GPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2009 Free Software Foundation, Inc.
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 2 or (at your option) any
+// later version.
+//
+// This program is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the
+// Free Software Foundation, Inc., 51 Franklin Street,
+// Fifth Floor, Boston, MA 02110-1301, USA.
+// -------------------------------------------
+// ####GPLCOPYRIGHTEND####
+//===========================================================================
diff --git a/ecos/packages/hal/arm/xscale/prpmc1100/current/cdl/hal_arm_xscale_prpmc1100.cdl b/ecos/packages/hal/arm/xscale/prpmc1100/current/cdl/hal_arm_xscale_prpmc1100.cdl
new file mode 100644
index 0000000..88574c8
--- /dev/null
+++ b/ecos/packages/hal/arm/xscale/prpmc1100/current/cdl/hal_arm_xscale_prpmc1100.cdl
@@ -0,0 +1,301 @@
+# ====================================================================
+#
+# hal_arm_xscale_prpmc1100.cdl
+#
+# Motorola PrPMC1100 Board HAL package
+#
+# ====================================================================
+## ####ECOSGPLCOPYRIGHTBEGIN####
+## -------------------------------------------
+## This file is part of eCos, the Embedded Configurable Operating System.
+## Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2009 Free Software Foundation, Inc.
+##
+## eCos is free software; you can redistribute it and/or modify it under
+## the terms of the GNU General Public License as published by the Free
+## Software Foundation; either version 2 or (at your option) any later
+## version.
+##
+## eCos is distributed in the hope that it will be useful, but WITHOUT
+## ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+## FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+## for more details.
+##
+## You should have received a copy of the GNU General Public License
+## along with eCos; if not, write to the Free Software Foundation, Inc.,
+## 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+##
+## As a special exception, if other files instantiate templates or use
+## macros or inline functions from this file, or you compile this file
+## and link it with other works to produce a work based on this file,
+## this file does not by itself cause the resulting work to be covered by
+## the GNU General Public License. However the source code for this file
+## must still be made available in accordance with section (3) of the GNU
+## General Public License v2.
+##
+## This exception does not invalidate any other reasons why a work based
+## on this file might be covered by the GNU General Public License.
+## -------------------------------------------
+## ####ECOSGPLCOPYRIGHTEND####
+# ====================================================================
+######DESCRIPTIONBEGIN####
+#
+# Author(s): msalter
+# Contributors: msalter
+# Date: 2003-03-27
+#
+#####DESCRIPTIONEND####
+#
+# ====================================================================
+cdl_package CYGPKG_HAL_ARM_XSCALE_PRPMC1100 {
+ display "Motorola PrPMC1100 Processor PMC"
+ parent CYGPKG_HAL_ARM_XSCALE_IXP425
+ implements CYGINT_HAL_ARM_BIGENDIAN
+ requires CYGHWR_HAL_ARM_BIGENDIAN
+ hardware
+ include_dir cyg/hal
+ define_header hal_arm_xscale_prpmc1100.h
+ description "
+ This HAL platform package provides support for the
+ Motorola PrPMC1100 for the Intel XScale IXC1100
+ Control Plane Processor."
+
+ compile prpmc1100_misc.c prpmc1100_pci.c
+
+ 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_xscale_ixp425.h>"
+ puts $::cdl_system_header "#define CYGBLD_HAL_PLATFORM_H <pkgconf/hal_arm_xscale_prpmc1100.h>"
+ puts $::cdl_header "#define CYGBLD_HAL_PLF_INTS_H <cyg/hal/hal_plf_ints.h>"
+ puts $::cdl_header "#define HAL_PLATFORM_CPU \"XScale\""
+ puts $::cdl_header "#define HAL_PLATFORM_BOARD \"Motorola PrPMC1100\""
+ puts $::cdl_header "#define HAL_PLATFORM_EXTRA \"\""
+ puts $::cdl_header "#define HAL_PLATFORM_MACHINE_TYPE 290"
+ }
+
+ 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 targeting the PrPMC1100 board it is possible to configure the
+ system for either RAM bootstrap or ROM bootstrap(s). Select 'ram'
+ when building programs to load into RAM using onboard debug software
+ such as RedBoot or eCos GDB stubs."
+ }
+
+ 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-eabi"}
+ 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 { CYGBLD_GLOBAL_WARNFLAGS . CYGBLD_ARCH_CFLAGS . "-mcpu=xscale -g -O2 -ffunction-sections -fdata-sections -fno-rtti -fno-exceptions -mapcs-frame" }
+ 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 { CYGBLD_ARCH_LDFLAGS . "-mcpu=xscale -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) --remove-section=.fixed_vectors -O binary $< $@
+ }
+ }
+ }
+
+ cdl_component CYGPKG_HAL_ARM_XSCALE_PRPMC1100_OPTIONS {
+ display "Motorola PrPMC1100 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_XSCALE_PRPMC1100_CFLAGS_ADD {
+ display "Additional compiler flags"
+ flavor data
+ no_define
+ default_value { "" }
+ description "
+ This option modifies the set of compiler flags for
+ building the XScale PRPMC1100 HAL. These flags are used in addition
+ to the set of global flags."
+ }
+
+ cdl_option CYGPKG_HAL_ARM_XSCALE_PRPMC1100_CFLAGS_REMOVE {
+ display "Suppressed compiler flags"
+ flavor data
+ no_define
+ default_value { "" }
+ description "
+ This option modifies the set of compiler flags for
+ building the XScale PRPMC1100 HAL. These flags are removed from
+ the set of global flags if present."
+ }
+
+ cdl_option CYGNUM_HAL_BREAKPOINT_LIST_SIZE {
+ display "Number of breakpoints supported by the HAL."
+ flavor data
+ default_value 32
+ description "
+ This option determines the number of breakpoints supported by the HAL."
+ }
+ }
+
+ cdl_option CYGSEM_HAL_IXP425_PLF_USES_UART1 {
+ display "PRPMC1100 uses IXP425 high-speed UART"
+ flavor bool
+ default_value 1
+ description "
+ Enable this option if the IXP425 high-speed UART is used
+ as a virtual vector communications channel."
+ }
+
+ cdl_option CYGSEM_HAL_IXP425_PLF_USES_UART2 {
+ display "PRPMC1100 uses IXP425 console UART"
+ flavor bool
+ default_value 1
+ description "
+ Enable this option if the IXP425 console UART is to be used
+ as a virtual vector communications channel."
+ }
+
+ cdl_component CYGHWR_MEMORY_LAYOUT {
+ display "Memory layout"
+ flavor data
+ no_define
+ calculated { CYG_HAL_STARTUP == "RAM" ? "arm_xscale_prpmc1100_ram" : \
+ "arm_xscale_prpmc1100_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_xscale_prpmc1100_ram.ldi>" : \
+ "<pkgconf/mlt_arm_xscale_prpmc1100_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_xscale_prpmc1100_ram.h>" : \
+ "<pkgconf/mlt_arm_xscale_prpmc1100_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 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_REDBOOT_HAL_OPTIONS {
+ display "Redboot HAL options"
+ flavor none
+ no_define
+ parent CYGPKG_REDBOOT
+ active_if CYGPKG_REDBOOT
+ description "
+ This option lists the target's requirements for a valid Redboot
+ configuration."
+
+ 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 $< $@
+ }
+ }
+ }
+}
diff --git a/ecos/packages/hal/arm/xscale/prpmc1100/current/include/hal_platform_extras.h b/ecos/packages/hal/arm/xscale/prpmc1100/current/include/hal_platform_extras.h
new file mode 100644
index 0000000..f380c12
--- /dev/null
+++ b/ecos/packages/hal/arm/xscale/prpmc1100/current/include/hal_platform_extras.h
@@ -0,0 +1,222 @@
+#ifndef CYGONCE_HAL_PLATFORM_EXTRAS_H
+#define CYGONCE_HAL_PLATFORM_EXTRAS_H
+
+/*=============================================================================
+//
+// hal_platform_extras.h
+//
+// Platform specific MMU table.
+//
+//=============================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): msalter
+// Contributors: msalter
+// Date: 2002-12-08
+// Purpose: Intel XScale Generic Residential Platform specific mmu table
+// Description:
+// Usage: #include <cyg/hal/hal_platform_extras.h>
+// Only used by "vectors.S"
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================*/
+
+#if defined(CYG_HAL_STARTUP_ROM) || defined(CYG_HAL_STARTUP_ROMRAM)
+#if defined(CYG_HAL_STARTUP_ROMRAM)
+ .section .text
+ .ltorg
+ .p2align 13
+#else
+ .section .mmu_tables, "a"
+#endif
+
+ mmu_table:
+ // This page table sets up the preferred mapping:
+ //
+ // Virtual Address Physical Address XCB Size (MB) Description
+ // --------------- ---------------- --- --------- -----------
+ // 0x00000000 0x00000000 010 32 SDRAM (cached)
+ // 0x10000000 0x10000000 000 32 SDRAM (alias)
+ // 0x20000000 0x00000000 000 32 SDRAM (uncached)
+ // 0x48000000 0x48000000 000 64 PCI Data
+ // 0x50000000 0x50000000 010 16 Flash (CS0)
+ // 0x51000000 0x51000000 000 112 CS1 - CS7
+ // 0x60000000 0x60000000 000 64 Queue Manager
+ // 0xC0000000 0xC0000000 000 1 PCI Controller
+ // 0xC4000000 0xC4000000 000 1 Exp. Bus Config
+ // 0xC8000000 0xC8000000 000 1 Misc IXP425 IO
+ // 0xCC000000 0xCC000000 000 1 SDRAM Config
+
+ // 32MB SDRAM
+ .set __base,0x000
+ .rept 0x020 - 0x000
+ FL_SECTION_ENTRY __base,0,3,0,0,1,0
+ .set __base,__base+1
+ .endr
+
+ // 224MB Unused
+ .rept 0x100 - 0x020
+ .word 0
+ .set __base,__base+1
+ .endr
+
+ // 32MB SDRAM Alias
+ .rept 0x120 - 0x100
+ FL_SECTION_ENTRY __base,0,3,0,0,1,0
+ .set __base,__base+1
+ .endr
+
+ // 224MB Unused
+ .rept 0x200 - 0x120
+ .word 0
+ .set __base,__base+1
+ .endr
+
+ // 32MB SDRAM (uncached)
+ .set __base,0x000
+ .rept 0x220 - 0x200
+ FL_SECTION_ENTRY __base,0,3,0,0,0,0
+ .set __base,__base+1
+ .endr
+
+ // 224MB Unused
+ .set __base,0x220
+ .rept 0x300 - 0x220
+ .word 0
+ .set __base,__base+1
+ .endr
+
+ // 384MB Unused
+ .rept 0x480 - 0x300
+ .word 0
+ .set __base,__base+1
+ .endr
+
+ // 64MB PCI Data
+ .rept 0x4C0 - 0x480
+ FL_SECTION_ENTRY __base,0,3,0,0,0,0
+ .set __base,__base+1
+ .endr
+
+ // 64MB Unused
+ .rept 0x500 - 0x4C0
+ .word 0
+ .set __base,__base+1
+ .endr
+
+ // 16MB Flash (Expansion bus CS0)
+ .rept 0x510 - 0x500
+ FL_SECTION_ENTRY __base,0,3,0,0,1,0
+ .set __base,__base+1
+ .endr
+
+ // Rest of Expansion bus (CS1-CS7)
+ .rept 0x600 - 0x510
+ FL_SECTION_ENTRY __base,0,3,0,0,0,0
+ .set __base,__base+1
+ .endr
+
+ // 64MB Queue Manager
+ .rept 0x640 - 0x600
+ FL_SECTION_ENTRY __base,0,3,0,0,0,0
+ .set __base,__base+1
+ .endr
+
+ // 1472MB Unused
+ .rept 0xC00 - 0x640
+ .word 0
+ .set __base,__base+1
+ .endr
+
+ // 1MB PCI Controller
+ .rept 0xC01 - 0xC00
+ FL_SECTION_ENTRY __base,0,3,0,0,0,0
+ .set __base,__base+1
+ .endr
+
+ // 63MB Unused
+ .rept 0xC40 - 0xC01
+ .word 0
+ .set __base,__base+1
+ .endr
+
+ // 1MB Expansion bus config
+ .rept 0xC41 - 0xC40
+ FL_SECTION_ENTRY __base,0,3,0,0,0,0
+ .set __base,__base+1
+ .endr
+
+ // 63MB Unused
+ .rept 0xC80 - 0xC41
+ .word 0
+ .set __base,__base+1
+ .endr
+
+ // 1MB Misc IO
+ .rept 0xC81 - 0xC80
+ FL_SECTION_ENTRY __base,0,3,0,0,0,0
+ .set __base,__base+1
+ .endr
+
+ // 63MB Unused
+ .rept 0xCC0 - 0xC81
+ .word 0
+ .set __base,__base+1
+ .endr
+
+ // 1MB SDRAM Config
+ .rept 0xCC1 - 0xCC0
+ FL_SECTION_ENTRY __base,0,3,0,0,0,0
+ .set __base,__base+1
+ .endr
+
+ // 63MB Unused
+ .rept 0xD00 - 0xCC1
+ .word 0
+ .set __base,__base+1
+ .endr
+
+ // Rest is Unused
+ .rept 0x1000 - 0xD00
+ .word 0
+ .set __base,__base+1
+ .endr
+
+#endif /* defined(CYG_HAL_STARTUP_ROM) || defined(CYG_HAL_STARTUP_ROMRAM) */
+
+/*---------------------------------------------------------------------------*/
+/* end of hal_platform_extras.h */
+#endif /* CYGONCE_HAL_PLATFORM_EXTRAS_H */
diff --git a/ecos/packages/hal/arm/xscale/prpmc1100/current/include/hal_platform_setup.h b/ecos/packages/hal/arm/xscale/prpmc1100/current/include/hal_platform_setup.h
new file mode 100644
index 0000000..3a997e4
--- /dev/null
+++ b/ecos/packages/hal/arm/xscale/prpmc1100/current/include/hal_platform_setup.h
@@ -0,0 +1,301 @@
+#ifndef CYGONCE_HAL_PLATFORM_SETUP_H
+#define CYGONCE_HAL_PLATFORM_SETUP_H
+
+/*=============================================================================
+//
+// hal_platform_setup.h
+//
+// Platform specific support for HAL (assembly code)
+//
+//=============================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): msalter
+// Contributors: msalter
+// Date: 2003-03-27
+// Purpose: Motorola PRPMC1100 specific support routines
+// Description:
+// Usage: #include <cyg/hal/hal_platform_setup.h>
+// Only used by "vectors.S"
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================*/
+
+#include <pkgconf/system.h> // System-wide configuration info
+#include CYGBLD_HAL_VARIANT_H // Variant specific configuration
+#include CYGBLD_HAL_PLATFORM_H // Platform specific configuration
+#include <cyg/hal/hal_ixp425.h> // Variant specific hardware definitions
+#include <cyg/hal/hal_mmu.h> // MMU definitions
+#include <cyg/hal/hal_mm.h> // more MMU definitions
+#include <cyg/hal/prpmc1100.h> // Platform specific hardware definitions
+
+#if defined(CYG_HAL_STARTUP_ROM)
+#define PLATFORM_SETUP1 _platform_setup1
+#define PLATFORM_EXTRAS <cyg/hal/hal_platform_extras.h>
+#define CYGHWR_HAL_ARM_HAS_MMU
+
+// ------------------------------------------------------------------------
+// Define macro used to diddle the LEDs during early initialization.
+// Can use r0+r1. Argument in \x.
+#define CYGHWR_LED_MACRO
+
+// Delay a bit
+.macro DELAY cycles, reg0
+ ldr \reg0, =\cycles
+ subs \reg0, \reg0, #1
+ subne pc, pc, #0xc
+.endm
+
+// ------------------------------------------------------------------------
+// This macro represents the initial startup code for the platform
+ .macro _platform_setup1
+
+#if CYGINT_HAL_ARM_BIGENDIAN
+ // set big-endian
+ mrc p15, 0, r0, c1, c0, 0
+ orr r0, r0, #0x80
+ mcr p15, 0, r0, c1, c0, 0
+ CPWAIT r0
+#endif
+
+ ldr r0,=(CPSR_IRQ_DISABLE|CPSR_FIQ_DISABLE|CPSR_SUPERVISOR_MODE)
+ msr cpsr, r0
+
+ // invalidate I & D caches & BTB
+ mcr p15, 0, r0, c7, c7, 0
+ CPWAIT r0
+
+ // invalidate I & Data TLB
+ mcr p15, 0, r0, c8, c7, 0
+ CPWAIT r0
+
+ // drain write and fill buffers
+ mcr p15, 0, r0, c7, c10, 4
+ CPWAIT r0
+
+ // disable write buffer coalescing
+ mrc p15, 0, r0, c1, c0, 1
+ orr r0, r0, #1
+ mcr p15, 0, r0, c1, c0, 1
+ CPWAIT r0
+
+ // Setup chip selects
+ ldr r1, =IXP425_EXP_CFG_BASE
+#ifdef IXP425_EXP_CS0_INIT
+ ldr r0, =IXP425_EXP_CS0_INIT
+ str r0, [r1, #IXP425_EXP_CS0]
+#endif
+#ifdef IXP425_EXP_CS1_INIT
+ ldr r0, =IXP425_EXP_CS1_INIT
+ str r0, [r1, #IXP425_EXP_CS1]
+#endif
+#ifdef IXP425_EXP_CS2_INIT
+ ldr r0, =IXP425_EXP_CS2_INIT
+ str r0, [r1, #IXP425_EXP_CS2]
+#endif
+#ifdef IXP425_EXP_CS3_INIT
+ ldr r0, =IXP425_EXP_CS3_INIT
+ str r0, [r1, #IXP425_EXP_CS3]
+#endif
+#ifdef IXP425_EXP_CS4_INIT
+ ldr r0, =IXP425_EXP_CS4_INIT
+ str r0, [r1, #IXP425_EXP_CS4]
+#endif
+#ifdef IXP425_EXP_CS5_INIT
+ ldr r0, =IXP425_EXP_CS5_INIT
+ str r0, [r1, #IXP425_EXP_CS5]
+#endif
+#ifdef IXP425_EXP_CS6_INIT
+ ldr r0, =IXP425_EXP_CS6_INIT
+ str r0, [r1, #IXP425_EXP_CS6]
+#endif
+#ifdef IXP425_EXP_CS7_INIT
+ ldr r0, =IXP425_EXP_CS7_INIT
+ str r0, [r1, #IXP425_EXP_CS7]
+#endif
+
+ // Enable the Icache
+ mrc p15, 0, r0, c1, c0, 0
+ orr r0, r0, #MMU_Control_I
+ mcr p15, 0, r0, c1, c0, 0
+ CPWAIT r0
+
+ // Setup SDRAM controller
+
+ ldr r0, =IXP425_SDRAM_CFG_BASE
+
+ ldr r1, =IXP425_SDRAM_CONFIG_INIT
+ str r1, [r0, #IXP425_SDRAM_CONFIG]
+
+ // disable refresh cycles
+ mov r1, #0
+ str r1, [r0, #IXP425_SDRAM_REFRESH]
+
+ // send nop command
+ mov r1, #SDRAM_IR_NOP
+ str r1, [r0, #IXP425_SDRAM_IR]
+ DELAY 0x10000, r1
+
+ // set SDRAM internal refresh val
+ ldr r1, =IXP425_SDRAM_REFRESH_CNT
+ str r1, [r0, #IXP425_SDRAM_REFRESH]
+ DELAY 0x10000, r1
+
+ // send precharge-all command to close all open banks
+ mov r1, #SDRAM_IR_PRECHARGE
+ str r1, [r0, #IXP425_SDRAM_IR]
+ DELAY 0x10000, r1
+
+ // provide 8 auto-refresh cycles
+ mov r1, #SDRAM_IR_AUTO_REFRESH
+ mov r2, #8
+ 1:
+ str r1, [r0, #IXP425_SDRAM_IR]
+ DELAY 0x800, r3
+ subs r2, r2, #1
+ bne 1b
+
+ // set mode register in sdram
+ mov r1, #IXP425_SDRAM_SET_MODE_CMD
+ str r1, [r0, #IXP425_SDRAM_IR]
+ DELAY 0x10000, r1
+
+ // start normal operation
+ mov r1, #SDRAM_IR_NORMAL
+ str r1, [r0, #IXP425_SDRAM_IR]
+ DELAY 0x10000, r1
+
+ // value to load into pc to jump to real runtime address
+ ldr r0, =1f
+
+ // Setup EXP_CNFG0 value to switch EXP bus out of low memory
+ ldr r2, =IXP425_EXP_CFG_BASE
+ ldr r1, [r2, #IXP425_EXP_CNFG0]
+ bic r1, r1, #EXP_CNFG0_MEM_MAP
+
+ b icache_boundary
+ .p2align 5
+icache_boundary:
+ // Here is where we switch from boot address (0x000000000) to the
+ // actual flash runtime address. We align to cache boundary so we
+ // execute from cache during the switchover. Cachelines are 8 words.
+ str r1, [r2, #IXP425_EXP_CNFG0] // make the EXP bus switch
+ nop
+ nop
+ nop
+ nop
+ mov pc, r0
+ nop
+ // display FFFF and loop forever.
+ 0: b 0b
+ 1:
+
+ // Move mmu tables into RAM so page table walks by the cpu
+ // don't interfere with FLASH programming.
+ ldr r0, =mmu_table
+ add r2, r0, #0x4000 // End of tables
+ mov r1, #SDRAM_PHYS_BASE
+ orr r1, r1, #0x4000 // RAM tables
+
+ // everything can go as-is
+ 1:
+ ldr r3, [r0], #4
+ str r3, [r1], #4
+ cmp r0, r2
+ bne 1b
+
+ mcr p15, 0, r0, c7, c10, 4 // drain the write & fill buffers
+ CPWAIT r0
+
+ // Set the TTB register to DRAM mmu_table
+ ldr r0, =(SDRAM_PHYS_BASE | 0x4000) // RAM tables
+ mcr p15, 0, r0, c2, c0, 0 // load page table pointer
+ CPWAIT r0
+
+ // enable permission checks in all domains
+ ldr r0, =0x55555555
+ mcr p15, 0, r0, c3, c0, 0
+ CPWAIT r0
+
+ // enable mmu
+ mrc p15, 0, r0, c1, c0, 0
+ orr r0, r0, #MMU_Control_M
+ orr r0, r0, #MMU_Control_R
+ mcr p15, 0, r0, c1, c0, 0
+ CPWAIT r0
+
+ // enable D cache
+ mrc p15, 0, r0, c1, c0, 0
+ orr r0, r0, #MMU_Control_C
+ mcr p15, 0, r0, c1, c0, 0
+ CPWAIT r0
+
+ // Enable branch target buffer
+ mrc p15, 0, r0, c1, c0, 0
+ orr r0, r0, #MMU_Control_BTB
+ mcr p15, 0, r0, c1, c0, 0
+ CPWAIT r0
+
+ mcr p15, 0, r0, c7, c10, 4 // drain the write & fill buffers
+ CPWAIT r0
+
+ mcr p15, 0, r0, c7, c7, 0 // flush Icache, Dcache and BTB
+ CPWAIT r0
+
+ mcr p15, 0, r0, c8, c7, 0 // flush instuction and data TLBs
+ CPWAIT r0
+
+ mcr p15, 0, r0, c7, c10, 4 // drain the write & fill buffers
+ CPWAIT r0
+
+ // save SDRAM size
+ ldr r1, =hal_dram_size /* [see hal_intr.h] */
+ mov r8, #SDRAM_SIZE
+ str r8, [r1]
+
+ .endm // _platform_setup1
+
+#else // defined(CYG_HAL_STARTUP_ROM)
+#define PLATFORM_SETUP1
+#endif
+
+#define PLATFORM_VECTORS _platform_vectors
+ .macro _platform_vectors
+ .endm
+
+/*---------------------------------------------------------------------------*/
+/* end of hal_platform_setup.h */
+#endif /* CYGONCE_HAL_PLATFORM_SETUP_H */
diff --git a/ecos/packages/hal/arm/xscale/prpmc1100/current/include/hal_plf_ints.h b/ecos/packages/hal/arm/xscale/prpmc1100/current/include/hal_plf_ints.h
new file mode 100644
index 0000000..c156c4d
--- /dev/null
+++ b/ecos/packages/hal/arm/xscale/prpmc1100/current/include/hal_plf_ints.h
@@ -0,0 +1,77 @@
+#ifndef CYGONCE_HAL_PLF_INTS_H
+#define CYGONCE_HAL_PLF_INTS_H
+//==========================================================================
+//
+// hal_plf_ints.h
+//
+// HAL Platform Interrupt support
+//
+//==========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//==========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): msalter
+// Contributors: msalter
+// Date: 2002-07-15
+// Purpose: Define Interrupt support
+// Description: The interrupt details for a specific platform is defined here.
+// Usage:
+//
+//
+//####DESCRIPTIONEND####
+//
+//==========================================================================
+
+// start with variant ints
+#include CYGBLD_HAL_VAR_INTS_H
+
+// NB: Commented out because of errata on reset function of watchdog timer
+//
+#if 0
+#define HAL_PLATFORM_RESET() \
+ CYG_MACRO_START \
+ cyg_uint32 __ctrl; \
+ /* By disabling interupts we will just hang in the loop below */ \
+ /* if for some reason the software reset fails. */ \
+ HAL_DISABLE_INTERRUPTS(__ctrl); \
+ *IXP425_OST_WDOG_KEY = 0x482e; \
+ *IXP425_OST_WDOG = 10; \
+ *IXP425_OST_WDOG_ENA = 5; \
+ for(;;); /* hang here forever if reset fails */ \
+ CYG_MACRO_END
+#else
+#define HAL_PLATFORM_RESET() CYG_EMPTY_STATEMENT
+#endif
+
+#endif // CYGONCE_HAL_PLF_INTS_H
diff --git a/ecos/packages/hal/arm/xscale/prpmc1100/current/include/pkgconf/mlt_arm_xscale_prpmc1100_ram.h b/ecos/packages/hal/arm/xscale/prpmc1100/current/include/pkgconf/mlt_arm_xscale_prpmc1100_ram.h
new file mode 100644
index 0000000..e8d712b
--- /dev/null
+++ b/ecos/packages/hal/arm/xscale/prpmc1100/current/include/pkgconf/mlt_arm_xscale_prpmc1100_ram.h
@@ -0,0 +1,18 @@
+// eCos memory layout - Fri Oct 20 05:56:24 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 (0)
+#define CYGMEM_REGION_ram_SIZE (0x02000000)
+#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 (0x02000000 - (size_t) CYG_LABEL_NAME (__heap1))
+
diff --git a/ecos/packages/hal/arm/xscale/prpmc1100/current/include/pkgconf/mlt_arm_xscale_prpmc1100_ram.ldi b/ecos/packages/hal/arm/xscale/prpmc1100/current/include/pkgconf/mlt_arm_xscale_prpmc1100_ram.ldi
new file mode 100644
index 0000000..102c9ff
--- /dev/null
+++ b/ecos/packages/hal/arm/xscale/prpmc1100/current/include/pkgconf/mlt_arm_xscale_prpmc1100_ram.ldi
@@ -0,0 +1,27 @@
+// eCos memory layout - Fri Oct 20 05:56:24 2000
+
+// This is a generated file - do not edit
+
+#include <cyg/infra/cyg_type.inc>
+
+MEMORY
+{
+ ram : ORIGIN = 0, LENGTH = 0x02000000
+}
+
+SECTIONS
+{
+ SECTIONS_BEGIN
+ SECTION_fixed_vectors (ram, 0x20, LMA_EQ_VMA)
+ SECTION_rom_vectors (ram, 0x20000, 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)
+ CYG_LABEL_DEFN(__heap1) = ALIGN (0x8);
+ SECTIONS_END
+}
diff --git a/ecos/packages/hal/arm/xscale/prpmc1100/current/include/pkgconf/mlt_arm_xscale_prpmc1100_ram.mlt b/ecos/packages/hal/arm/xscale/prpmc1100/current/include/pkgconf/mlt_arm_xscale_prpmc1100_ram.mlt
new file mode 100644
index 0000000..2ec5caf
--- /dev/null
+++ b/ecos/packages/hal/arm/xscale/prpmc1100/current/include/pkgconf/mlt_arm_xscale_prpmc1100_ram.mlt
@@ -0,0 +1,14 @@
+version 0
+region ram 0 02000000 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 20000 20000 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 1 0 1 heap1 heap1 !
+section heap1 0 8 0 0 0 0 0 0 !
+
diff --git a/ecos/packages/hal/arm/xscale/prpmc1100/current/include/pkgconf/mlt_arm_xscale_prpmc1100_rom.h b/ecos/packages/hal/arm/xscale/prpmc1100/current/include/pkgconf/mlt_arm_xscale_prpmc1100_rom.h
new file mode 100644
index 0000000..391d84a
--- /dev/null
+++ b/ecos/packages/hal/arm/xscale/prpmc1100/current/include/pkgconf/mlt_arm_xscale_prpmc1100_rom.h
@@ -0,0 +1,20 @@
+// eCos memory layout - Tue Jul 02 10:03:04 2002
+
+// This is a generated file - do not edit
+
+#ifndef __ASSEMBLER__
+#include <cyg/infra/cyg_type.h>
+#include <stddef.h>
+
+#endif
+#define CYGMEM_REGION_ram (0)
+#define CYGMEM_REGION_ram_SIZE (0x02000000)
+#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)
+#ifndef __ASSEMBLER__
+extern char CYG_LABEL_NAME (__heap1) [];
+#endif
+#define CYGMEM_SECTION_heap1 (CYG_LABEL_NAME (__heap1))
+#define CYGMEM_SECTION_heap1_SIZE (0x02000000 - (size_t) CYG_LABEL_NAME (__heap1))
diff --git a/ecos/packages/hal/arm/xscale/prpmc1100/current/include/pkgconf/mlt_arm_xscale_prpmc1100_rom.ldi b/ecos/packages/hal/arm/xscale/prpmc1100/current/include/pkgconf/mlt_arm_xscale_prpmc1100_rom.ldi
new file mode 100644
index 0000000..7e28700
--- /dev/null
+++ b/ecos/packages/hal/arm/xscale/prpmc1100/current/include/pkgconf/mlt_arm_xscale_prpmc1100_rom.ldi
@@ -0,0 +1,29 @@
+// eCos memory layout - Tue Jul 02 10:03:04 2002
+
+// This is a generated file - do not edit
+
+#include <cyg/infra/cyg_type.inc>
+
+MEMORY
+{
+ ram : ORIGIN = 0, LENGTH = 0x02000000
+ 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_mmu_tables (rom, ALIGN (0x4000), LMA_EQ_VMA)
+ SECTION_fixed_vectors (ram, 0x20, LMA_EQ_VMA)
+ SECTION_data (ram, 0x8000, FOLLOWING (.mmu_tables))
+ SECTION_bss (ram, ALIGN (0x4), LMA_EQ_VMA)
+ CYG_LABEL_DEFN(__heap1) = ALIGN (0x8);
+ SECTIONS_END
+}
diff --git a/ecos/packages/hal/arm/xscale/prpmc1100/current/include/pkgconf/mlt_arm_xscale_prpmc1100_rom.mlt b/ecos/packages/hal/arm/xscale/prpmc1100/current/include/pkgconf/mlt_arm_xscale_prpmc1100_rom.mlt
new file mode 100644
index 0000000..0ea7e31
--- /dev/null
+++ b/ecos/packages/hal/arm/xscale/prpmc1100/current/include/pkgconf/mlt_arm_xscale_prpmc1100_rom.mlt
@@ -0,0 +1,15 @@
+version 0
+region ram 0 02000000 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 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 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 1 0 1 mmu_tables mmu_tables !
+section mmu_tables 0 4000 0 1 0 0 0 1 data !
diff --git a/ecos/packages/hal/arm/xscale/prpmc1100/current/include/plf_io.h b/ecos/packages/hal/arm/xscale/prpmc1100/current/include/plf_io.h
new file mode 100644
index 0000000..19be755
--- /dev/null
+++ b/ecos/packages/hal/arm/xscale/prpmc1100/current/include/plf_io.h
@@ -0,0 +1,63 @@
+#ifndef CYGONCE_PLF_IO_H
+#define CYGONCE_PLF_IO_H
+
+//=============================================================================
+//
+// plf_io.h
+//
+// Platform specific IO support
+//
+//=============================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 2003 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): msalter
+// Contributors: msalter
+// Date: 2003-03-27
+// Purpose: Motorola PrPMC1100 IO support macros
+// Description:
+// Usage: #include <cyg/hal/plf_io.h>
+//
+//####DESCRIPTIONEND####
+//
+//=============================================================================
+
+#include <pkgconf/hal.h>
+#include <cyg/hal/hal_io.h> // IO macros
+#include <cyg/hal/prpmc1100.h>
+#include CYGBLD_HAL_PLF_INTS_H
+
+//-----------------------------------------------------------------------------
+// end of plf_io.h
+#endif // CYGONCE_PLF_IO_H
diff --git a/ecos/packages/hal/arm/xscale/prpmc1100/current/include/prpmc1100.h b/ecos/packages/hal/arm/xscale/prpmc1100/current/include/prpmc1100.h
new file mode 100644
index 0000000..abd1b68
--- /dev/null
+++ b/ecos/packages/hal/arm/xscale/prpmc1100/current/include/prpmc1100.h
@@ -0,0 +1,117 @@
+#ifndef CYGONCE_HAL_ARM_XSCALE_PRPMC1100_PRPMC1100_H
+#define CYGONCE_HAL_ARM_XSCALE_PRPMC1100_PRPMC1100_H
+
+/*=============================================================================
+//
+// prpmc1100.h
+//
+// Platform specific support (register layout, etc)
+//
+//=============================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): msalter
+// Contributors: msalter
+// Date: 2003-03-27
+// Purpose: Intel PRPMC1100 specific support routines
+// Description:
+// Usage: #include <cyg/hal/prpmc1100.h>
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================*/
+
+#include <pkgconf/system.h>
+#include CYGHWR_MEMORY_LAYOUT_H
+#include <pkgconf/hal_arm_xscale_prpmc1100.h>
+#include <cyg/hal/hal_ixp425.h>
+
+// These must match setup in the page table in hal_platform_extras.h
+#define SDRAM_PHYS_BASE 0x00000000
+#define SDRAM_BASE 0x00000000
+#define SDRAM_UNCACHED_BASE 0x10000000
+#define SDRAM_SIZE 0x02000000 // 32MB
+
+// CS0 (flash optimum timing)
+#define IXP425_EXP_CS0_INIT \
+ (EXP_ADDR_T(3) | EXP_SETUP_T(3) | EXP_STROBE_T(15) | EXP_HOLD_T(3) | \
+ EXP_RECOVERY_T(15) | EXP_SZ_16M | EXP_WR_EN | EXP_BYTE_RD16 | EXP_CS_EN)
+
+#if 0
+#define IXP425_EXP_CS7_INIT \
+ (EXP_ADDR_T(3) | EXP_SETUP_T(3) | EXP_STROBE_T(15) | EXP_HOLD_T(3) | \
+ EXP_RECOVERY_T(15) | EXP_SZ_512 | EXP_WR_EN | EXP_CS_EN)
+#endif
+
+#define IXP425_SDRAM_CONFIG_INIT (SDRAM_CONFIG_CAS_3 | SDRAM_CONFIG_4x32Mx16)
+#define IXP425_SDRAM_REFRESH_CNT 0x081
+#define IXP425_SDRAM_SET_MODE_CMD SDRAM_IR_MODE_SET_CAS3
+
+// control register
+#define PRPMC_CTL_REG REG16(0, 0x57000000)
+#define PRPMC_CTL_EREADY 1
+#define PRPMC_CTL_RESETOUT 2
+#define PRPMC_CTL_INTN_GPIO 4
+
+// status register
+#define PRPMC_STS_REG REG16(0, 0x57000002)
+#define PRPMC_STS_RUN_LED 1
+#define PRPMC_STS_FAIL_LED 2
+
+// ------------------------------------------------------------------------
+// GPIO lines
+
+// lines used for 2-wire interface to EEPROM
+#define GPIO_EEPROM_SCL 6
+#define GPIO_EEPROM_SDA 7
+
+
+// ------------------------------------------------------------------------
+// No Hex Display
+//
+#ifdef __ASSEMBLER__
+ // Display hex digits in 'value' not masked by 'mask'.
+ .macro DISPLAY value, reg0, reg1
+ .endm
+#else
+static inline void HEX_DISPLAY(int value)
+{
+}
+#endif // __ASSEMBLER__
+
+// ------------------------------------------------------------------------
+
+#endif // CYGONCE_HAL_ARM_XSCALE_PRPMC1100_PRPMC1100_H
+// EOF prpmc1100.h
diff --git a/ecos/packages/hal/arm/xscale/prpmc1100/current/misc/redboot_RAM.ecm b/ecos/packages/hal/arm/xscale/prpmc1100/current/misc/redboot_RAM.ecm
new file mode 100644
index 0000000..242bbdc
--- /dev/null
+++ b/ecos/packages/hal/arm/xscale/prpmc1100/current/misc/redboot_RAM.ecm
@@ -0,0 +1,114 @@
+cdl_savefile_version 1;
+cdl_savefile_command cdl_savefile_version {};
+cdl_savefile_command cdl_savefile_command {};
+cdl_savefile_command cdl_configuration { description hardware template package };
+cdl_savefile_command cdl_package { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_component { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_option { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_interface { value_source user_value wizard_value inferred_value };
+
+cdl_configuration eCos {
+ description "" ;
+ hardware prpmc1100 ;
+ template redboot ;
+ package -hardware CYGPKG_HAL_ARM current ;
+ package -hardware CYGPKG_HAL_ARM_XSCALE_CORE current ;
+ package -hardware CYGPKG_HAL_ARM_XSCALE_IXP425 current ;
+ package -hardware CYGPKG_HAL_ARM_XSCALE_PRPMC1100 current ;
+ package -hardware CYGPKG_DEVS_FLASH_STRATA current ;
+ package -hardware CYGPKG_DEVS_FLASH_PRPMC1100 current ;
+ package -template CYGPKG_HAL current ;
+ package -template CYGPKG_INFRA current ;
+ package -template CYGPKG_REDBOOT current ;
+ package -template CYGPKG_ISOINFRA current ;
+ package -template CYGPKG_LIBC_STRING current ;
+ package CYGPKG_IO_FLASH current ;
+ package CYGPKG_IO_ETH_DRIVERS current ;
+ package CYGPKG_MEMALLOC current ;
+ package CYGPKG_COMPRESS_ZLIB current ;
+};
+
+cdl_component CYG_HAL_STARTUP {
+ user_value RAM
+};
+
+cdl_option CYGBLD_BUILD_GDB_STUBS {
+ user_value 0
+};
+
+cdl_option CYGFUN_LIBC_STRING_BSD_FUNCS {
+ inferred_value 0
+};
+
+cdl_option CYGNUM_HAL_COMMON_INTERRUPTS_STACK_SIZE {
+ user_value 4096
+};
+
+cdl_option CYGDBG_HAL_COMMON_INTERRUPTS_SAVE_MINIMUM_CONTEXT {
+ user_value 0
+};
+
+cdl_option CYGDBG_HAL_COMMON_CONTEXT_SAVE_MINIMUM {
+ inferred_value 0
+};
+
+cdl_option CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS {
+ inferred_value 1
+};
+
+cdl_option CYGDBG_HAL_DEBUG_GDB_CTRLC_SUPPORT {
+ inferred_value 0
+};
+
+cdl_option CYGSEM_HAL_USE_ROM_MONITOR {
+ inferred_value 0 0
+};
+
+cdl_component CYGBLD_BUILD_REDBOOT {
+ user_value 1
+};
+
+cdl_option CYGBLD_REDBOOT_MIN_IMAGE_SIZE {
+ inferred_value 0x40000
+};
+
+cdl_component CYGSEM_REDBOOT_FLASH_CONFIG {
+ user_value 1
+};
+
+cdl_component CYGSEM_REDBOOT_BSP_SYSCALLS {
+ inferred_value 1
+};
+
+cdl_option CYGHWR_REDBOOT_ARM_LINUX_EXEC_ADDRESS_DEFAULT {
+ inferred_value 0x600000
+};
+
+cdl_option CYGHWR_HAL_IXP425_PCI_NP_WORKAROUND {
+ inferred_value 1
+};
+
+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_BSD_FUNCS_HEADER {
+ inferred_value 1 <cyg/libc/string/bsdstring.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 CYGPKG_HAL_GDB_FILEIO {
+ user_value 1
+};
+
diff --git a/ecos/packages/hal/arm/xscale/prpmc1100/current/misc/redboot_ROM.ecm b/ecos/packages/hal/arm/xscale/prpmc1100/current/misc/redboot_ROM.ecm
new file mode 100644
index 0000000..e76e6c3
--- /dev/null
+++ b/ecos/packages/hal/arm/xscale/prpmc1100/current/misc/redboot_ROM.ecm
@@ -0,0 +1,121 @@
+cdl_savefile_version 1;
+cdl_savefile_command cdl_savefile_version {};
+cdl_savefile_command cdl_savefile_command {};
+cdl_savefile_command cdl_configuration { description hardware template package };
+cdl_savefile_command cdl_package { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_component { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_option { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_interface { value_source user_value wizard_value inferred_value };
+
+cdl_configuration eCos {
+ description "" ;
+ hardware prpmc1100 ;
+ template redboot ;
+ package -hardware CYGPKG_HAL_ARM current ;
+ package -hardware CYGPKG_HAL_ARM_XSCALE_CORE current ;
+ package -hardware CYGPKG_HAL_ARM_XSCALE_IXP425 current ;
+ package -hardware CYGPKG_HAL_ARM_XSCALE_PRPMC1100 current ;
+ package -hardware CYGPKG_DEVS_FLASH_STRATA current ;
+ package -hardware CYGPKG_DEVS_FLASH_PRPMC1100 current ;
+ package -template CYGPKG_HAL current ;
+ package -template CYGPKG_INFRA current ;
+ package -template CYGPKG_REDBOOT current ;
+ package -template CYGPKG_ISOINFRA current ;
+ package -template CYGPKG_LIBC_STRING current ;
+ package CYGPKG_IO_FLASH current ;
+ package CYGPKG_IO_ETH_DRIVERS current ;
+ package CYGPKG_MEMALLOC current ;
+ package CYGPKG_COMPRESS_ZLIB current ;
+};
+
+cdl_component CYG_HAL_STARTUP {
+ user_value ROM
+};
+
+cdl_option CYGBLD_BUILD_GDB_STUBS {
+ user_value 0
+};
+
+cdl_option CYGFUN_LIBC_STRING_BSD_FUNCS {
+ inferred_value 0
+};
+
+cdl_option CYGNUM_HAL_COMMON_INTERRUPTS_STACK_SIZE {
+ user_value 4096
+};
+
+cdl_option CYGDBG_HAL_COMMON_INTERRUPTS_SAVE_MINIMUM_CONTEXT {
+ user_value 0
+};
+
+cdl_option CYGDBG_HAL_COMMON_CONTEXT_SAVE_MINIMUM {
+ inferred_value 0
+};
+
+cdl_option CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS {
+ inferred_value 1
+};
+
+cdl_option CYGDBG_HAL_DEBUG_GDB_CTRLC_SUPPORT {
+ inferred_value 0
+};
+
+cdl_option CYGSEM_HAL_ROM_MONITOR {
+ user_value 1
+};
+
+cdl_option CYGSEM_HAL_USE_ROM_MONITOR {
+ inferred_value 0 0
+};
+
+cdl_component CYGBLD_BUILD_REDBOOT {
+ user_value 1
+};
+
+cdl_option CYGBLD_REDBOOT_MIN_IMAGE_SIZE {
+ inferred_value 0x40000
+};
+
+cdl_component CYGSEM_REDBOOT_FLASH_CONFIG {
+ user_value 1
+};
+
+cdl_component CYGSEM_REDBOOT_BSP_SYSCALLS {
+ inferred_value 1
+};
+
+cdl_option CYGHWR_REDBOOT_ARM_LINUX_EXEC_ADDRESS_DEFAULT {
+ inferred_value 0x600000
+};
+
+cdl_option CYGHWR_HAL_IXP425_PCI_NP_WORKAROUND {
+ inferred_value 1
+};
+
+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_BSD_FUNCS_HEADER {
+ inferred_value 1 <cyg/libc/string/bsdstring.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_DNS_HEADER {
+ inferred_value 1 <cyg/ns/dns/dns.h>
+};
+
+cdl_option CYGPKG_HAL_GDB_FILEIO {
+ user_value 1
+};
diff --git a/ecos/packages/hal/arm/xscale/prpmc1100/current/src/prpmc1100_misc.c b/ecos/packages/hal/arm/xscale/prpmc1100/current/src/prpmc1100_misc.c
new file mode 100644
index 0000000..32698e9
--- /dev/null
+++ b/ecos/packages/hal/arm/xscale/prpmc1100/current/src/prpmc1100_misc.c
@@ -0,0 +1,396 @@
+//==========================================================================
+//
+// prpmc1100_misc.c
+//
+// HAL misc board support code for Intel XScale PRPMC1100
+//
+//==========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//==========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): msalter
+// Contributors: msalter
+// Date: 2003-03-27
+// 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_ixp425.h> // Hardware definitions
+#include <cyg/hal/prpmc1100.h> // Platform specifics
+
+#include <cyg/infra/diag.h> // diag_printf
+
+//
+// Platform specific initialization
+//
+void
+plf_hardware_init(void)
+{
+ int is_host = (*IXP425_PCI_CSR & PCI_CSR_HOST);
+
+ *IXP425_EXP_CS7 = (EXP_ADDR_T(3) | EXP_SETUP_T(3) | EXP_STROBE_T(15) | EXP_HOLD_T(3) | \
+ EXP_RECOVERY_T(15) | EXP_SZ_512 | EXP_WR_EN | EXP_CS_EN);
+
+ *IXP425_EXP_CS4 = (EXP_ADDR_T(3) | EXP_SETUP_T(3) | EXP_STROBE_T(15) | EXP_HOLD_T(3) | \
+ EXP_RECOVERY_T(15) | EXP_SZ_512 | EXP_WR_EN | EXP_CS_EN);
+ *IXP425_EXP_CS5 = (EXP_ADDR_T(3) | EXP_SETUP_T(3) | EXP_STROBE_T(15) | EXP_HOLD_T(3) | \
+ EXP_RECOVERY_T(15) | EXP_SZ_512 | EXP_WR_EN | EXP_CS_EN);
+
+ // pull down EREADY if non-monarch mode.
+ if (!is_host)
+ *PRPMC_CTL_REG = PRPMC_CTL_RESETOUT | PRPMC_CTL_INTN_GPIO;
+
+ HAL_GPIO_OUTPUT_CLEAR(GPIO_EEPROM_SCL);
+ HAL_GPIO_OUTPUT_ENABLE(GPIO_EEPROM_SCL);
+
+ HAL_GPIO_OUTPUT_SET(GPIO_EEPROM_SDA);
+ HAL_GPIO_OUTPUT_ENABLE(GPIO_EEPROM_SDA);
+
+#ifdef CYGPKG_IO_PCI
+ extern void hal_plf_pci_init(void);
+ hal_plf_pci_init();
+#endif
+}
+
+// ----------------------------------------------------------------------------
+// EEPROM Support
+//
+#ifdef CYGPKG_DEVS_ETH_INTEL_NPE
+
+#define CLK_LO() HAL_GPIO_OUTPUT_CLEAR(GPIO_EEPROM_SCL)
+#define CLK_HI() HAL_GPIO_OUTPUT_SET(GPIO_EEPROM_SCL)
+
+#define DATA_LO() HAL_GPIO_OUTPUT_CLEAR(GPIO_EEPROM_SDA)
+#define DATA_HI() HAL_GPIO_OUTPUT_SET(GPIO_EEPROM_SDA)
+
+
+// returns non-zero if ACK bit seen
+static int
+eeprom_start(cyg_uint8 b)
+{
+ int i;
+
+ CLK_HI();
+ hal_delay_us(5);
+ DATA_LO();
+ hal_delay_us(5);
+ CLK_LO();
+
+ for (i = 7; i >= 0; i--) {
+ if (b & (1 << i))
+ DATA_HI();
+ else
+ DATA_LO();
+ hal_delay_us(5);
+ CLK_HI();
+ hal_delay_us(5);
+ CLK_LO();
+ }
+ hal_delay_us(5);
+ HAL_GPIO_OUTPUT_DISABLE(GPIO_EEPROM_SDA);
+ CLK_HI();
+ hal_delay_us(5);
+ i = (*IXP425_GPINR & (1 << GPIO_EEPROM_SDA)) ? 0 : 1;
+ CLK_LO();
+ hal_delay_us(5);
+ HAL_GPIO_OUTPUT_ENABLE(GPIO_EEPROM_SDA);
+
+ return i;
+}
+
+
+static void
+eeprom_stop(void)
+{
+ int i;
+
+ hal_delay_us(5);
+ DATA_LO();
+ hal_delay_us(5);
+ CLK_HI();
+ hal_delay_us(5);
+ DATA_HI();
+ hal_delay_us(5);
+ CLK_LO();
+ hal_delay_us(5);
+}
+
+
+static int
+eeprom_putb(cyg_uint8 b)
+{
+ int i;
+
+ for (i = 7; i >= 0; i--) {
+ if (b & (1 << i))
+ DATA_HI();
+ else
+ DATA_LO();
+ CLK_HI();
+ hal_delay_us(5);
+ CLK_LO();
+ hal_delay_us(5);
+ }
+ HAL_GPIO_OUTPUT_DISABLE(GPIO_EEPROM_SDA);
+ CLK_HI();
+ hal_delay_us(5);
+ i = (*IXP425_GPINR & (1 << GPIO_EEPROM_SDA)) ? 0 : 1;
+ CLK_LO();
+ hal_delay_us(5);
+
+ DATA_HI();
+ HAL_GPIO_OUTPUT_ENABLE(GPIO_EEPROM_SDA);
+
+ return i;
+}
+
+
+static cyg_uint8
+eeprom_getb(int more)
+{
+ int i;
+ cyg_uint8 b = 0;
+
+ HAL_GPIO_OUTPUT_DISABLE(GPIO_EEPROM_SDA);
+ hal_delay_us(5);
+
+ for (i = 7; i >= 0; i--) {
+ b <<= 1;
+ if (*IXP425_GPINR & (1 << GPIO_EEPROM_SDA))
+ b |= 1;
+ CLK_HI();
+ hal_delay_us(5);
+ CLK_LO();
+ hal_delay_us(5);
+ }
+ HAL_GPIO_OUTPUT_ENABLE(GPIO_EEPROM_SDA);
+ if (more)
+ DATA_LO();
+ else
+ DATA_HI();
+ hal_delay_us(5);
+ CLK_HI();
+ hal_delay_us(5);
+ CLK_LO();
+ hal_delay_us(5);
+
+ return b;
+}
+
+
+static int
+eeprom_read(int addr, cyg_uint8 *buf, int nbytes)
+{
+ cyg_uint8 start_byte;
+ int i;
+
+ start_byte = 0xA0; // write
+
+ if (addr & (1 << 8))
+ start_byte |= 2;
+
+
+ for (i = 0; i < 10; i++)
+ if (eeprom_start(start_byte))
+ break;
+
+ if (i == 10) {
+ diag_printf("eeprom_read: Can't get write start ACK\n");
+ return 0;
+ }
+
+ if (!eeprom_putb(addr & 0xff)) {
+ diag_printf("eeprom_read: Can't get address ACK\n");
+ return 0;
+ }
+
+ start_byte |= 1; // READ command
+ if (!eeprom_start(start_byte)) {
+ diag_printf("eeprom_read: Can't get read start ACK\n");
+ return 0;
+ }
+
+ for (i = 0; i < (nbytes - 1); i++)
+ *buf++ = eeprom_getb(1);
+
+ *buf++ = eeprom_getb(0);
+ hal_delay_us(5);
+ eeprom_stop();
+
+ return nbytes;
+}
+
+static void
+eeprom_write(int addr, cyg_uint8 val)
+{
+ cyg_uint8 start_byte;
+ int i;
+
+ start_byte = 0xA0; // write
+
+ if (addr & (1 << 8))
+ start_byte |= 2;
+
+ for (i = 0; i < 10; i++)
+ if (eeprom_start(start_byte))
+ break;
+
+ if (i == 10) {
+ diag_printf("eeprom_write: Can't get start ACK\n");
+ return;
+ }
+
+ if (!eeprom_putb(addr & 0xff)) {
+ diag_printf("eeprom_write: Can't get address ACK\n");
+ return;
+ }
+
+ if (!eeprom_putb(val)) {
+ diag_printf("eeprom_write: no data ACK\n");
+ return;
+ }
+ eeprom_stop();
+}
+
+
+#define MAC_EEPROM_OFFSET(p) (0x100 + ((p) * 6))
+
+int
+cyghal_get_npe_esa(int port, cyg_uint8 *buf)
+{
+ if (port != 0 && port != 1)
+ return 0;
+
+ if (eeprom_read(MAC_EEPROM_OFFSET(port), buf, 6) != 6)
+ return 0;
+
+ // don't use broadcast address
+ if (buf[0] == 0xff && buf[1] == 0xff && buf[2] == 0xff &&
+ buf[3] == 0xff && buf[4] == 0xff && buf[5] == 0xff)
+ return 0;
+
+ return 1;
+}
+
+
+#ifdef CYGPKG_REDBOOT
+#include <redboot.h>
+
+static void
+do_set_npe_mac(int argc, char *argv[])
+{
+ bool portnum_set;
+ int portnum, i;
+ char *addr = 0;
+ struct option_info opts[1];
+ cyg_uint8 mac[6];
+
+ init_opts(&opts[0], 'p', true, OPTION_ARG_TYPE_NUM,
+ (void **)&portnum, (bool *)&portnum_set, "port number");
+ if (!scan_opts(argc, argv, 1, opts, 1, (void *)&addr,
+ OPTION_ARG_TYPE_STR, "MAC address")) {
+ return;
+ }
+
+ if ((!portnum_set && addr) ||
+ (portnum_set && portnum != 0 && portnum != 1)) {
+ diag_printf("Must specify port with \"-p <0|1>\"\n");
+ return;
+ }
+
+ if (!portnum_set) {
+ for (i = 0; i < 2; i++) {
+ cyghal_get_npe_esa(i, mac);
+ diag_printf("NPE eth%d mac: %02x:%02x:%02x:%02x:%02x:%02x\n",
+ i, mac[0], mac[1], mac[2], mac[3], mac[4], mac[5]);
+ }
+ return;
+ }
+
+ if (!addr) {
+ cyghal_get_npe_esa(portnum, mac);
+ diag_printf("NPE eth%d mac: %02x:%02x:%02x:%02x:%02x:%02x\n",
+ portnum, mac[0], mac[1], mac[2], mac[3], mac[4], mac[5]);
+ return;
+ }
+
+ // parse MAC address from user.
+ // acceptable formats are "nn:nn:nn:nn:nn:nn" and "nnnnnnnnnnnn"
+ for (i = 0; i < 6; i++) {
+ if (!_is_hex(addr[0]) || !_is_hex(addr[1]))
+ break;
+ mac[i] = (_from_hex(addr[0]) * 16) + _from_hex(addr[1]);
+ addr += 2;
+ if (*addr == ':')
+ addr++;
+ }
+
+ if (i != 6 || *addr != '\0') {
+ diag_printf("Malformed MAC address.\n");
+ return;
+ }
+
+ for (i = 0; i < 6; i++) {
+ eeprom_write(MAC_EEPROM_OFFSET(portnum) + i, mac[i]);
+ hal_delay_us(100000);
+ }
+}
+
+RedBoot_cmd("set_npe_mac",
+ "Set/Read MAC address for NPE ethernet ports",
+ "[-p <portnum>] [xx:xx:xx:xx:xx:xx]",
+ do_set_npe_mac);
+
+#endif // CYGPKG_REDBOOT
+
+#endif // CYGPKG_DEVS_ETH_INTEL_NPE
+
+// ------------------------------------------------------------------------
+// EOF prpmc1100_misc.c
diff --git a/ecos/packages/hal/arm/xscale/prpmc1100/current/src/prpmc1100_pci.c b/ecos/packages/hal/arm/xscale/prpmc1100/current/src/prpmc1100_pci.c
new file mode 100644
index 0000000..0c86847
--- /dev/null
+++ b/ecos/packages/hal/arm/xscale/prpmc1100/current/src/prpmc1100_pci.c
@@ -0,0 +1,164 @@
+//==========================================================================
+//
+// prpmc1100_pci.c
+//
+// HAL PCI board support code for Intel XScale PrPMC1100
+//
+//==========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//==========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): msalter
+// Contributors: msalter
+// Date: 2003-03-27
+// Purpose: HAL PCI board support
+// Description: Implementations of HAL board interfaces
+//
+//####DESCRIPTIONEND####
+//
+//========================================================================*/
+#include <pkgconf/hal.h>
+#include <pkgconf/system.h>
+#include CYGBLD_HAL_PLATFORM_H
+
+#ifdef CYGPKG_IO_PCI
+
+#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_if.h> // calling interface API
+#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/io/pci_hw.h>
+#include <cyg/io/pci.h>
+
+
+#define IXP425_PCI_MAX_DEV 4
+#define IXP425_PCI_IRQ_LINES 4
+
+// PCI pin mappings
+#define PCI_CLK_GPIO 14 // CLK0
+#define PCI_RESET_GPIO 12
+
+#define PCI_INTA_GPIO 11
+#define PCI_INTB_GPIO 10
+#define PCI_INTC_GPIO 9
+#define PCI_INTD_GPIO 8
+
+#define INTA CYGNUM_HAL_INTERRUPT_GPIO11
+#define INTB CYGNUM_HAL_INTERRUPT_GPIO10
+#define INTC CYGNUM_HAL_INTERRUPT_GPIO9
+#define INTD CYGNUM_HAL_INTERRUPT_GPIO8
+
+void
+cyg_hal_plf_pci_translate_interrupt(cyg_uint32 bus, cyg_uint32 devfn,
+ CYG_ADDRWORD *vec, cyg_bool *valid)
+{
+ *vec = INTA;
+ *valid = true;
+}
+
+
+#define HAL_PCI_CLOCK_ENABLE() \
+ *IXP425_GPCLKR |= GPCLKR_CLK0_ENABLE; // GPIO(0) used for PCI clock
+
+#define HAL_PCI_CLOCK_DISABLE() \
+ *IXP425_GPCLKR &= ~GPCLKR_CLK0_ENABLE; // GPIO(0) used for PCI clock
+
+#define HAL_PCI_CLOCK_CONFIG() \
+ *IXP425_GPCLKR |= GPCLKR_CLK0_PCLK2;
+
+#define HAL_PCI_RESET_ASSERT() \
+ HAL_GPIO_OUTPUT_CLEAR(PCI_RESET_GPIO);
+
+#define HAL_PCI_RESET_DEASSERT() \
+ HAL_GPIO_OUTPUT_SET(PCI_RESET_GPIO);
+
+void
+hal_plf_pci_init(void)
+{
+ cyg_uint8 next_bus;
+ int is_host = (*IXP425_PCI_CSR & PCI_CSR_HOST);
+
+#if defined(CYG_HAL_STARTUP_ROM) || defined(CYG_HAL_STARTUP_ROMRAM)
+
+ if (is_host) {
+ // PCI interrupt inputs
+ HAL_GPIO_OUTPUT_DISABLE(PCI_INTA_GPIO);
+ HAL_GPIO_OUTPUT_DISABLE(PCI_INTB_GPIO);
+ HAL_GPIO_OUTPUT_DISABLE(PCI_INTC_GPIO);
+ HAL_GPIO_OUTPUT_DISABLE(PCI_INTD_GPIO);
+
+ // configure PCI interrupt lines for active low irq
+ HAL_INTERRUPT_CONFIGURE(INTA, 1, 0);
+ HAL_INTERRUPT_CONFIGURE(INTB, 1, 0);
+ HAL_INTERRUPT_CONFIGURE(INTC, 1, 0);
+ HAL_INTERRUPT_CONFIGURE(INTD, 1, 0);
+
+ } else {
+ // PCI interrupt outputs
+ HAL_GPIO_OUTPUT_SET(PCI_INTA_GPIO);
+ HAL_GPIO_OUTPUT_ENABLE(PCI_INTA_GPIO);
+ HAL_GPIO_OUTPUT_SET(PCI_INTB_GPIO);
+ HAL_GPIO_OUTPUT_ENABLE(PCI_INTB_GPIO);
+ HAL_GPIO_OUTPUT_SET(PCI_INTC_GPIO);
+ HAL_GPIO_OUTPUT_ENABLE(PCI_INTC_GPIO);
+ HAL_GPIO_OUTPUT_SET(PCI_INTD_GPIO);
+ HAL_GPIO_OUTPUT_ENABLE(PCI_INTD_GPIO);
+ }
+
+ HAL_DELAY_US(100);
+#endif
+
+ cyg_hal_plf_pci_init();
+
+ if (is_host) {
+ int delay = 200; // Wait up to 20 seconds for EREADY
+ while (delay-- > 0)
+ if (*PRPMC_CTL_REG & PRPMC_CTL_EREADY)
+ break;
+ else
+ hal_delay_us(100000);
+
+ next_bus = 1;
+ cyg_pci_configure_bus(0, &next_bus);
+ } else
+ *PRPMC_CTL_REG = PRPMC_CTL_RESETOUT | PRPMC_CTL_INTN_GPIO | PRPMC_CTL_EREADY;
+}
+
+#endif // CYGPKG_IO_PCI
diff --git a/ecos/packages/hal/arm/xscale/pxa2x0/current/ChangeLog b/ecos/packages/hal/arm/xscale/pxa2x0/current/ChangeLog
new file mode 100644
index 0000000..5e67f4d
--- /dev/null
+++ b/ecos/packages/hal/arm/xscale/pxa2x0/current/ChangeLog
@@ -0,0 +1,112 @@
+2009-10-16 John Dallaway <john@dallaway.org.uk>
+
+ * cdl/hal_arm_xscale_pxa2x0.cdl: Parent under
+ CYGPKG_HAL_ARM_XSCALE_CORE.
+
+2009-03-24 John Dallaway <john@dallaway.org.uk>
+
+ * src/pxa2x0_misc.c (hal_interrupt_configure): Use GFER0/GRER0 for
+ GPIO2-GPIO31. Patch from Alfonso Sanchez. [ Bugzilla 1000681 ]
+
+2005-12-06 David Vrabel <dvrabel@arcom.com>
+
+ * cdl/hal_arm_xscale_pxa2x0.cdl: New
+ CYGOPT_HAL_ARM_XSCALE_PXA2X0_VARIANT option to select support for
+ the PXA25x series or the PXA27x series. The default is PXA25x so
+ existing packages work as-is.
+
+ * include/hal_pxa2x0.h: Add some extra PXA27x specific registers.
+
+ * src/pxa2x0_misc.c, include/hal_var_ints.h: Add support for the
+ extra interrupts (including the extra GPIO ones) on the PXA27x.
+
+ * src/pxa2x0_misc.c (hal_delay_us): Use correct timer clock
+ frequency for PXA27x. Correctly handle the loop taking longer
+ than 1 timer tick.
+
+2005-09-19 David Vrabel <dvrabel@arcom.com>
+
+ * cdl/hal_arm_xscale_pxa2x0.cdl: Fix the last patch, logical OR
+ not bitwise is needed.
+
+2005-09-15 David Vrabel <dvrabel@arcom.com>
+
+ * cdl/hal_arm_xscale_pxa2x0.cdl: Only build hal_diag.c if one of
+ the three internal UARTs is used.
+
+2005-04-22 Ian Campbell <icampbell@arcom.com>
+
+ * include/hal_pxa2x0.h: OSCC was incorrectly name CSCC.
+
+2005-04-12 Alexander Neundorf <alexander.neundorf@jenoptik.com>
+
+ * src/pxa2x0_misc.c (hal_IRQ_handler): also check interrupt bits
+ for GPIO81..85
+
+2005-03-03 Andrew Lunn <andrew.lunn@ascom.ch>
+
+ * src/pxa2x0_misc.c (_pxa2x0_set_GPIO_mode): Fix compiler warning
+ about discarded qualifier.
+
+2003-12-05 Daniel Schmidt <sc_da@gmx.de>
+
+ * include/hal_var_ints.h: Added CYGNUM_HAL_INTERRUPT_GPIO81..85
+ for PXA255. Changed CYGNUM_HAL_ISR_MIN to 0 because of missing
+ vector translation in arm/arch/current/include/hal_intr.h
+
+2003-12-05 Andrew Lunn <andrew.lunn@ascom.ch>
+
+ * include/hal_diag.h: hal_delay_us() is a C function.
+
+2003-08-08 Gary Thomas <gary@mind.be>
+
+ * src/pxa2x0_misc.c:
+ * include/hal_pxa2x0.h: Support GPIO alternate functions.
+
+2003-07-18 Nick Garnett <nickg@balti.calivar.com>
+
+ * cdl/hal_arm_xscale_pxa2x0.cdl:
+ Changed values for CYGNUM_HAL_RTC_NUMERATOR,
+ CYGNUM_HAL_RTC_DENOMINATOR and CYGNUM_HAL_RTC_PERIOD to
+ "default_value" from "calculated". This makes it easier
+ to change these values globally.
+
+2003-02-24 Gary Thomas <gary@mlbassoc.com>
+
+ * src/pxa2x0_misc.c (hal_IRQ_handler): Pass 'sources' on to any
+ extended IRQ handler (it may need them).
+
+2003-02-20 Gary Thomas <gary@mlbassoc.com>
+
+ * src/pxa2x0_misc.c (hal_hardware_init): Move call to hal_if_init()
+ into platform code (so it can do I/O). Also, support common CDL
+ for CACHE startup enables.
+
+2003-01-24 Knud Woehler <knud.woehler@microplex.de>
+2003-01-24 Mark Salter <msalter@redhat.com>
+
+ * Initial import from Knud Woehler.
+
+//===========================================================================
+// ####GPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 2003, 2009 Free Software Foundation, Inc.
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 2 or (at your option) any
+// later version.
+//
+// This program is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the
+// Free Software Foundation, Inc., 51 Franklin Street,
+// Fifth Floor, Boston, MA 02110-1301, USA.
+// -------------------------------------------
+// ####GPLCOPYRIGHTEND####
+//===========================================================================
diff --git a/ecos/packages/hal/arm/xscale/pxa2x0/current/cdl/hal_arm_xscale_pxa2x0.cdl b/ecos/packages/hal/arm/xscale/pxa2x0/current/cdl/hal_arm_xscale_pxa2x0.cdl
new file mode 100644
index 0000000..cbcb934
--- /dev/null
+++ b/ecos/packages/hal/arm/xscale/pxa2x0/current/cdl/hal_arm_xscale_pxa2x0.cdl
@@ -0,0 +1,153 @@
+# ====================================================================
+#
+# hal_arm_xscale_pxa2x0.cdl
+#
+# Intel PXA2X0 architectural HAL package configuration data
+#
+# ====================================================================
+# ####ECOSGPLCOPYRIGHTBEGIN####
+# -------------------------------------------
+# This file is part of eCos, the Embedded Configurable Operating System.
+# Copyright (C) 1998, 1999, 2000, 2001, 2002, 2009 Free Software Foundation, Inc.
+#
+# eCos is free software; you can redistribute it and/or modify it under
+# the terms of the GNU General Public License as published by the Free
+# Software Foundation; either version 2 or (at your option) any later
+# version.
+#
+# eCos is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with eCos; if not, write to the Free Software Foundation, Inc.,
+# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+#
+# As a special exception, if other files instantiate templates or use
+# macros or inline functions from this file, or you compile this file
+# and link it with other works to produce a work based on this file,
+# this file does not by itself cause the resulting work to be covered by
+# the GNU General Public License. However the source code for this file
+# must still be made available in accordance with section (3) of the GNU
+# General Public License v2.
+#
+# This exception does not invalidate any other reasons why a work based
+# on this file might be covered by the GNU General Public License.
+# -------------------------------------------
+# ####ECOSGPLCOPYRIGHTEND####
+# ====================================================================
+######DESCRIPTIONBEGIN####
+#
+# Author(s): <knud.woehler@microplex.de>
+# Date: 2003-01-06
+#
+#####DESCRIPTIONEND####
+#
+# ====================================================================
+
+cdl_package CYGPKG_HAL_ARM_XSCALE_PXA2X0 {
+ display "ARM PXA2X0 architecture"
+ parent CYGPKG_HAL_ARM_XSCALE_CORE
+ hardware
+ include_dir cyg/hal
+ define_header hal_arm_xscale_pxa2x0.h
+ description "
+ This HAL variant package provides generic
+ support for the Intel PXA2x0 processors. It is also
+ necessary to select a specific target platform HAL
+ package."
+
+ implements CYGINT_HAL_ARM_ARCH_PXA2X0
+ implements CYGINT_HAL_VIRTUAL_VECTOR_COMM_BAUD_SUPPORT
+
+ define_proc {
+ puts $::cdl_header "#define CYGBLD_HAL_VAR_INTS_H <cyg/hal/hal_var_ints.h>"
+ puts $::cdl_header "#define CYGBLD_HAL_VAR_H <cyg/hal/hal_pxa2x0.h>"
+ puts $::cdl_system_header "#define CYGBLD_HAL_ARM_VAR_IO_H"
+ }
+
+ cdl_option CYGOPT_HAL_ARM_XSCALE_PXA2X0_VARIANT {
+ display "PXA2XX processor model"
+ description "
+ This option selects the variant of the PXA2XX family (PXA25x
+ or PXA27x) to support."
+ flavor data
+ legal_values { "PXA25X" "PXA27X" }
+ default_value { "PXA25X" }
+ }
+
+ compile pxa2x0_misc.c
+
+ # Real-time clock/counter specifics
+ cdl_component CYGNUM_HAL_RTC_CONSTANTS {
+ display "Real-time clock constants"
+ flavor none
+ no_define
+
+ cdl_option CYGNUM_HAL_RTC_NUMERATOR {
+ display "Real-time clock numerator"
+ flavor data
+ default_value 1000000000
+ }
+
+ cdl_option CYGNUM_HAL_RTC_DENOMINATOR {
+ display "Real-time clock denominator"
+ flavor data
+ default_value 100
+ description "
+ This option selects the heartbeat rate for the real-time clock.
+ The rate is specified in ticks per second. Change this value
+ with caution - too high and your system will become saturated
+ just handling clock interrupts, too low and some operations
+ such as thread scheduling may become sluggish."
+ }
+
+ cdl_option CYGNUM_HAL_RTC_PERIOD {
+ display "Real-time clock period"
+ flavor data
+ default_value (3686400/CYGNUM_HAL_RTC_DENOMINATOR)
+ }
+ }
+
+ # UART
+ cdl_interface CYGHWR_HAL_ARM_PXA2X0_FFUART {
+ display "FFUART available as diagnostic/debug channel"
+ description "
+ The PXA2X0 chip has multiple serial channels which may be
+ used for different things on different platforms. This
+ interface allows a platform to indicate that the specified
+ serial port can be used as a diagnostic and/or debug channel."
+ }
+
+ cdl_interface CYGHWR_HAL_ARM_PXA2X0_BTUART {
+ display "BTUART available as diagnostic/debug channel"
+ description "
+ The PXA2X0 chip has multiple serial channels which may be
+ used for different things on different platforms. This
+ interface allows a platform to indicate that the specified
+ serial port can be used as a diagnostic and/or debug channel."
+ }
+
+ cdl_interface CYGHWR_HAL_ARM_PXA2X0_STUART {
+ display "STUART available as diagnostic/debug channel"
+ description "
+ The PXA2X0 chip has multiple serial channels which may be
+ used for different things on different platforms. This
+ interface allows a platform to indicate that the specified
+ serial port can be used as a diagnostic and/or debug channel."
+ }
+
+ cdl_option CYGBLD_BUILD_HAL_ARM_XSCALE_PXA2X0_SERIAL_DIAG {
+ display "Include support for PXA2X0 serial diagnostic/debug channels"
+ default_value { CYGHWR_HAL_ARM_PXA2X0_FFUART
+ || CYGHWR_HAL_ARM_PXA2X0_BTUART
+ || CYGHWR_HAL_ARM_PXA2X0_STUART }
+
+ compile hal_diag.c
+ }
+}
+
+
+
+
diff --git a/ecos/packages/hal/arm/xscale/pxa2x0/current/include/hal_diag.h b/ecos/packages/hal/arm/xscale/pxa2x0/current/include/hal_diag.h
new file mode 100644
index 0000000..5c6243c
--- /dev/null
+++ b/ecos/packages/hal/arm/xscale/pxa2x0/current/include/hal_diag.h
@@ -0,0 +1,76 @@
+#ifndef CYGONCE_HAL_DIAG_H
+#define CYGONCE_HAL_DIAG_H
+/*=============================================================================
+//
+// hal_diag.h
+//
+// HAL Support for Kernel Diagnostic Routines
+//
+//=============================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): <knud.woehler@microplex.de>
+// Date: 2002-09-03
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================*/
+
+#include <pkgconf/hal.h>
+#include <cyg/infra/cyg_type.h>
+#include <cyg/hal/hal_if.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_)
+externC void hal_delay_us(cyg_int32 usecs);
+#define HAL_DELAY_US(n) hal_delay_us(n);
+
+#else
+
+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
+
+#endif //CYGONCE_HAL_DIAG_H
diff --git a/ecos/packages/hal/arm/xscale/pxa2x0/current/include/hal_pxa2x0.h b/ecos/packages/hal/arm/xscale/pxa2x0/current/include/hal_pxa2x0.h
new file mode 100644
index 0000000..9cca85f
--- /dev/null
+++ b/ecos/packages/hal/arm/xscale/pxa2x0/current/include/hal_pxa2x0.h
@@ -0,0 +1,658 @@
+//==========================================================================
+//
+// hal_pxa2x0.h
+//
+// HAL misc board support definitions for PXA250/210
+//
+//==========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//==========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): <knud.woehler@microplex.de>
+// Date: 2003-01-06
+//
+//####DESCRIPTIONEND####
+//
+//==========================================================================
+#ifndef CYGONCE_HAL_ARM_PXA2X0_H
+#define CYGONCE_HAL_ARM_PXA2X0_H
+
+#include <pkgconf/system.h>
+#include <cyg/hal/hal_xscale.h>
+
+#ifdef __ASSEMBLER__
+#define PXA2X0_REGISTER(a) (a)
+#else
+#define PXA2X0_REGISTER(a) ((volatile unsigned long *)(a))
+#endif
+
+// Memory layout
+#define PXA2X0_CS0_BASE (0x00000000)
+#define PXA2X0_CS1_BASE (0x04000000)
+#define PXA2X0_CS2_BASE (0x08000000)
+#define PXA2X0_CS3_BASE (0x0c000000)
+#define PXA2X0_CS4_BASE (0x10000000)
+#define PXA2X0_CS5_BASE (0x14000000)
+
+#define PXA2X0_PCMCIA0_BASE (0x20000000)
+#define PXA2X0_PCMCIA1_BASE (0x30000000)
+
+#define PXA2X0_PERIPHERALS_BASE (0x40000000)
+#define PXA2X0_LCD_BASE (0x44000000)
+#define PXA2X0_MEMORY_CTL_BASE (0x48000000)
+
+#define PXA2X0_RAM_BANK0_BASE (0xA0000000)
+#define PXA2X0_RAM_BANK1_BASE (0xA4000000)
+#define PXA2X0_RAM_BANK2_BASE (0xA8000000)
+#define PXA2X0_RAM_BANK3_BASE (0xAc000000)
+
+#define PXA2X0_CACHE_FLUSH_BASE (0xc0000000)
+
+#define DCACHE_FLUSH_AREA 0xc0000000
+
+// DMA Controller
+#define PXA2X0_DMA_CTL_BASE ( PXA2X0_PERIPHERALS_BASE + 0x0000000 )
+#define PXA2X0_DCSR0 PXA2X0_REGISTER( PXA2X0_DMA_CTL_BASE+0x0000 )
+#define PXA2X0_DCSR1 PXA2X0_REGISTER( PXA2X0_DMA_CTL_BASE+0x0004 )
+#define PXA2X0_DCSR2 PXA2X0_REGISTER( PXA2X0_DMA_CTL_BASE+0x0008 )
+#define PXA2X0_DCSR3 PXA2X0_REGISTER( PXA2X0_DMA_CTL_BASE+0x000c )
+#define PXA2X0_DCSR4 PXA2X0_REGISTER( PXA2X0_DMA_CTL_BASE+0x0010 )
+#define PXA2X0_DCSR5 PXA2X0_REGISTER( PXA2X0_DMA_CTL_BASE+0x0014 )
+#define PXA2X0_DCSR6 PXA2X0_REGISTER( PXA2X0_DMA_CTL_BASE+0x0018 )
+#define PXA2X0_DCSR7 PXA2X0_REGISTER( PXA2X0_DMA_CTL_BASE+0x001c )
+#define PXA2X0_DCSR8 PXA2X0_REGISTER( PXA2X0_DMA_CTL_BASE+0x0020 )
+#define PXA2X0_DCSR9 PXA2X0_REGISTER( PXA2X0_DMA_CTL_BASE+0x0024 )
+#define PXA2X0_DCSR10 PXA2X0_REGISTER( PXA2X0_DMA_CTL_BASE+0x0028 )
+#define PXA2X0_DCSR11 PXA2X0_REGISTER( PXA2X0_DMA_CTL_BASE+0x002c )
+#define PXA2X0_DCSR12 PXA2X0_REGISTER( PXA2X0_DMA_CTL_BASE+0x0030 )
+#define PXA2X0_DCSR13 PXA2X0_REGISTER( PXA2X0_DMA_CTL_BASE+0x0034 )
+#define PXA2X0_DCSR14 PXA2X0_REGISTER( PXA2X0_DMA_CTL_BASE+0x0038 )
+#define PXA2X0_DCSR15 PXA2X0_REGISTER( PXA2X0_DMA_CTL_BASE+0x003c )
+#define PXA2X0_DINT PXA2X0_REGISTER( PXA2X0_DMA_CTL_BASE+0x00f0 )
+#define PXA2X0_DRCMR0 PXA2X0_REGISTER( PXA2X0_DMA_CTL_BASE+0x0100 )
+#define PXA2X0_DRCMR1 PXA2X0_REGISTER( PXA2X0_DMA_CTL_BASE+0x0104 )
+#define PXA2X0_DRCMR2 PXA2X0_REGISTER( PXA2X0_DMA_CTL_BASE+0x0108 )
+#define PXA2X0_DRCMR3 PXA2X0_REGISTER( PXA2X0_DMA_CTL_BASE+0x010c )
+#define PXA2X0_DRCMR4 PXA2X0_REGISTER( PXA2X0_DMA_CTL_BASE+0x0110 )
+#define PXA2X0_DRCMR5 PXA2X0_REGISTER( PXA2X0_DMA_CTL_BASE+0x0114 )
+#define PXA2X0_DRCMR6 PXA2X0_REGISTER( PXA2X0_DMA_CTL_BASE+0x0118 )
+#define PXA2X0_DRCMR7 PXA2X0_REGISTER( PXA2X0_DMA_CTL_BASE+0x011c )
+#define PXA2X0_DRCMR8 PXA2X0_REGISTER( PXA2X0_DMA_CTL_BASE+0x0120 )
+#define PXA2X0_DRCMR9 PXA2X0_REGISTER( PXA2X0_DMA_CTL_BASE+0x0124 )
+#define PXA2X0_DRCMR10 PXA2X0_REGISTER( PXA2X0_DMA_CTL_BASE+0x0128 )
+#define PXA2X0_DRCMR11 PXA2X0_REGISTER( PXA2X0_DMA_CTL_BASE+0x012c )
+#define PXA2X0_DRCMR12 PXA2X0_REGISTER( PXA2X0_DMA_CTL_BASE+0x0130 )
+#define PXA2X0_DRCMR13 PXA2X0_REGISTER( PXA2X0_DMA_CTL_BASE+0x0134 )
+#define PXA2X0_DRCMR14 PXA2X0_REGISTER( PXA2X0_DMA_CTL_BASE+0x0138 )
+#define PXA2X0_DRCMR15 PXA2X0_REGISTER( PXA2X0_DMA_CTL_BASE+0x013c )
+#define PXA2X0_DRCMR16 PXA2X0_REGISTER( PXA2X0_DMA_CTL_BASE+0x0140 )
+#define PXA2X0_DRCMR17 PXA2X0_REGISTER( PXA2X0_DMA_CTL_BASE+0x0144 )
+#define PXA2X0_DRCMR18 PXA2X0_REGISTER( PXA2X0_DMA_CTL_BASE+0x0148 )
+#define PXA2X0_DRCMR19 PXA2X0_REGISTER( PXA2X0_DMA_CTL_BASE+0x014c )
+#define PXA2X0_DRCMR20 PXA2X0_REGISTER( PXA2X0_DMA_CTL_BASE+0x0150 )
+#define PXA2X0_DRCMR21 PXA2X0_REGISTER( PXA2X0_DMA_CTL_BASE+0x0154 )
+#define PXA2X0_DRCMR22 PXA2X0_REGISTER( PXA2X0_DMA_CTL_BASE+0x0158 )
+#define PXA2X0_DRCMR23 PXA2X0_REGISTER( PXA2X0_DMA_CTL_BASE+0x015c )
+#define PXA2X0_DRCMR24 PXA2X0_REGISTER( PXA2X0_DMA_CTL_BASE+0x0160 )
+#define PXA2X0_DRCMR25 PXA2X0_REGISTER( PXA2X0_DMA_CTL_BASE+0x0164 )
+#define PXA2X0_DRCMR26 PXA2X0_REGISTER( PXA2X0_DMA_CTL_BASE+0x0168 )
+#define PXA2X0_DRCMR27 PXA2X0_REGISTER( PXA2X0_DMA_CTL_BASE+0x016c )
+#define PXA2X0_DRCMR28 PXA2X0_REGISTER( PXA2X0_DMA_CTL_BASE+0x0170 )
+#define PXA2X0_DRCMR29 PXA2X0_REGISTER( PXA2X0_DMA_CTL_BASE+0x0174 )
+#define PXA2X0_DRCMR30 PXA2X0_REGISTER( PXA2X0_DMA_CTL_BASE+0x0178 )
+#define PXA2X0_DRCMR31 PXA2X0_REGISTER( PXA2X0_DMA_CTL_BASE+0x017c )
+#define PXA2X0_DRCMR32 PXA2X0_REGISTER( PXA2X0_DMA_CTL_BASE+0x0180 )
+#define PXA2X0_DRCMR33 PXA2X0_REGISTER( PXA2X0_DMA_CTL_BASE+0x0184 )
+#define PXA2X0_DRCMR34 PXA2X0_REGISTER( PXA2X0_DMA_CTL_BASE+0x0188 )
+#define PXA2X0_DRCMR35 PXA2X0_REGISTER( PXA2X0_DMA_CTL_BASE+0x018c )
+#define PXA2X0_DRCMR36 PXA2X0_REGISTER( PXA2X0_DMA_CTL_BASE+0x0190 )
+#define PXA2X0_DRCMR37 PXA2X0_REGISTER( PXA2X0_DMA_CTL_BASE+0x0194 )
+#define PXA2X0_DRCMR38 PXA2X0_REGISTER( PXA2X0_DMA_CTL_BASE+0x0198 )
+#define PXA2X0_DRCMR39 PXA2X0_REGISTER( PXA2X0_DMA_CTL_BASE+0x019c )
+#define PXA2X0_DDADR0 PXA2X0_REGISTER( PXA2X0_DMA_CTL_BASE+0x0200 )
+#define PXA2X0_DSADR0 PXA2X0_REGISTER( PXA2X0_DMA_CTL_BASE+0x0204 )
+#define PXA2X0_DTADR0 PXA2X0_REGISTER( PXA2X0_DMA_CTL_BASE+0x0208 )
+#define PXA2X0_DCMD0 PXA2X0_REGISTER( PXA2X0_DMA_CTL_BASE+0x020c )
+#define PXA2X0_DDADR1 PXA2X0_REGISTER( PXA2X0_DMA_CTL_BASE+0x0210 )
+#define PXA2X0_DSADR1 PXA2X0_REGISTER( PXA2X0_DMA_CTL_BASE+0x0214 )
+#define PXA2X0_DTADR1 PXA2X0_REGISTER( PXA2X0_DMA_CTL_BASE+0x0218 )
+#define PXA2X0_DCMD1 PXA2X0_REGISTER( PXA2X0_DMA_CTL_BASE+0x021c )
+#define PXA2X0_DDADR2 PXA2X0_REGISTER( PXA2X0_DMA_CTL_BASE+0x0220 )
+#define PXA2X0_DSADR2 PXA2X0_REGISTER( PXA2X0_DMA_CTL_BASE+0x0224 )
+#define PXA2X0_DTADR2 PXA2X0_REGISTER( PXA2X0_DMA_CTL_BASE+0x0228 )
+#define PXA2X0_DCMD2 PXA2X0_REGISTER( PXA2X0_DMA_CTL_BASE+0x022c )
+#define PXA2X0_DDADR3 PXA2X0_REGISTER( PXA2X0_DMA_CTL_BASE+0x0230 )
+#define PXA2X0_DSADR3 PXA2X0_REGISTER( PXA2X0_DMA_CTL_BASE+0x0234 )
+#define PXA2X0_DTADR3 PXA2X0_REGISTER( PXA2X0_DMA_CTL_BASE+0x0238 )
+#define PXA2X0_DCMD3 PXA2X0_REGISTER( PXA2X0_DMA_CTL_BASE+0x023c )
+#define PXA2X0_DDADR4 PXA2X0_REGISTER( PXA2X0_DMA_CTL_BASE+0x0240 )
+#define PXA2X0_DSADR4 PXA2X0_REGISTER( PXA2X0_DMA_CTL_BASE+0x0244 )
+#define PXA2X0_DTADR4 PXA2X0_REGISTER( PXA2X0_DMA_CTL_BASE+0x0248 )
+#define PXA2X0_DCMD4 PXA2X0_REGISTER( PXA2X0_DMA_CTL_BASE+0x024c )
+#define PXA2X0_DDADR5 PXA2X0_REGISTER( PXA2X0_DMA_CTL_BASE+0x0250 )
+#define PXA2X0_DSADR5 PXA2X0_REGISTER( PXA2X0_DMA_CTL_BASE+0x0254 )
+#define PXA2X0_DTADR5 PXA2X0_REGISTER( PXA2X0_DMA_CTL_BASE+0x0258 )
+#define PXA2X0_DCMD5 PXA2X0_REGISTER( PXA2X0_DMA_CTL_BASE+0x025c )
+#define PXA2X0_DDADR6 PXA2X0_REGISTER( PXA2X0_DMA_CTL_BASE+0x0260 )
+#define PXA2X0_DSADR6 PXA2X0_REGISTER( PXA2X0_DMA_CTL_BASE+0x0264 )
+#define PXA2X0_DTADR6 PXA2X0_REGISTER( PXA2X0_DMA_CTL_BASE+0x0268 )
+#define PXA2X0_DCMD6 PXA2X0_REGISTER( PXA2X0_DMA_CTL_BASE+0x026c )
+#define PXA2X0_DDADR7 PXA2X0_REGISTER( PXA2X0_DMA_CTL_BASE+0x0270 )
+#define PXA2X0_DSADR7 PXA2X0_REGISTER( PXA2X0_DMA_CTL_BASE+0x0274 )
+#define PXA2X0_DTADR7 PXA2X0_REGISTER( PXA2X0_DMA_CTL_BASE+0x0278 )
+#define PXA2X0_DCMD7 PXA2X0_REGISTER( PXA2X0_DMA_CTL_BASE+0x027c )
+#define PXA2X0_DDADR8 PXA2X0_REGISTER( PXA2X0_DMA_CTL_BASE+0x0280 )
+#define PXA2X0_DSADR8 PXA2X0_REGISTER( PXA2X0_DMA_CTL_BASE+0x0284 )
+#define PXA2X0_DTADR8 PXA2X0_REGISTER( PXA2X0_DMA_CTL_BASE+0x0288 )
+#define PXA2X0_DCMD8 PXA2X0_REGISTER( PXA2X0_DMA_CTL_BASE+0x028c )
+#define PXA2X0_DDADR9 PXA2X0_REGISTER( PXA2X0_DMA_CTL_BASE+0x0290 )
+#define PXA2X0_DSADR9 PXA2X0_REGISTER( PXA2X0_DMA_CTL_BASE+0x0294 )
+#define PXA2X0_DTADR9 PXA2X0_REGISTER( PXA2X0_DMA_CTL_BASE+0x0298 )
+#define PXA2X0_DCMD9 PXA2X0_REGISTER( PXA2X0_DMA_CTL_BASE+0x029c )
+#define PXA2X0_DDADR10 PXA2X0_REGISTER( PXA2X0_DMA_CTL_BASE+0x02a0 )
+#define PXA2X0_DSADR10 PXA2X0_REGISTER( PXA2X0_DMA_CTL_BASE+0x02a4 )
+#define PXA2X0_DTADR10 PXA2X0_REGISTER( PXA2X0_DMA_CTL_BASE+0x02a8 )
+#define PXA2X0_DCMD10 PXA2X0_REGISTER( PXA2X0_DMA_CTL_BASE+0x02ac )
+#define PXA2X0_DDADR11 PXA2X0_REGISTER( PXA2X0_DMA_CTL_BASE+0x02b0 )
+#define PXA2X0_DSADR11 PXA2X0_REGISTER( PXA2X0_DMA_CTL_BASE+0x02b4 )
+#define PXA2X0_DTADR11 PXA2X0_REGISTER( PXA2X0_DMA_CTL_BASE+0x02b8 )
+#define PXA2X0_DCMD11 PXA2X0_REGISTER( PXA2X0_DMA_CTL_BASE+0x02bc )
+#define PXA2X0_DDADR12 PXA2X0_REGISTER( PXA2X0_DMA_CTL_BASE+0x02c0 )
+#define PXA2X0_DSADR12 PXA2X0_REGISTER( PXA2X0_DMA_CTL_BASE+0x02c4 )
+#define PXA2X0_DTADR12 PXA2X0_REGISTER( PXA2X0_DMA_CTL_BASE+0x02c8 )
+#define PXA2X0_DCMD12 PXA2X0_REGISTER( PXA2X0_DMA_CTL_BASE+0x02cc )
+#define PXA2X0_DDADR13 PXA2X0_REGISTER( PXA2X0_DMA_CTL_BASE+0x02d0 )
+#define PXA2X0_DSADR13 PXA2X0_REGISTER( PXA2X0_DMA_CTL_BASE+0x02d4 )
+#define PXA2X0_DTADR13 PXA2X0_REGISTER( PXA2X0_DMA_CTL_BASE+0x02d8 )
+#define PXA2X0_DCMD13 PXA2X0_REGISTER( PXA2X0_DMA_CTL_BASE+0x02dc )
+#define PXA2X0_DDADR14 PXA2X0_REGISTER( PXA2X0_DMA_CTL_BASE+0x02e0 )
+#define PXA2X0_DSADR14 PXA2X0_REGISTER( PXA2X0_DMA_CTL_BASE+0x02e4 )
+#define PXA2X0_DTADR14 PXA2X0_REGISTER( PXA2X0_DMA_CTL_BASE+0x02e8 )
+#define PXA2X0_DCMD14 PXA2X0_REGISTER( PXA2X0_DMA_CTL_BASE+0x02ec )
+#define PXA2X0_DDADR15 PXA2X0_REGISTER( PXA2X0_DMA_CTL_BASE+0x02f0 )
+#define PXA2X0_DSADR15 PXA2X0_REGISTER( PXA2X0_DMA_CTL_BASE+0x02f4 )
+#define PXA2X0_DTADR15 PXA2X0_REGISTER( PXA2X0_DMA_CTL_BASE+0x02f8 )
+#define PXA2X0_DCMD15 PXA2X0_REGISTER( PXA2X0_DMA_CTL_BASE+0x02fc )
+
+// Full Function UART
+#define PXA2X0_FFUART_BASE ( PXA2X0_PERIPHERALS_BASE + 0x0100000 )
+#define PXA2X0_FFRBR PXA2X0_REGISTER( PXA2X0_FFUART_BASE+0x0000 )
+#define PXA2X0_FFTHR PXA2X0_REGISTER( PXA2X0_FFUART_BASE+0x0000 )
+#define PXA2X0_FFIER PXA2X0_REGISTER( PXA2X0_FFUART_BASE+0x0004 )
+#define PXA2X0_FFIIR PXA2X0_REGISTER( PXA2X0_FFUART_BASE+0x0008 )
+#define PXA2X0_FFFCR PXA2X0_REGISTER( PXA2X0_FFUART_BASE+0x0008 )
+#define PXA2X0_FFLCR PXA2X0_REGISTER( PXA2X0_FFUART_BASE+0x000c )
+#define PXA2X0_FFMCR PXA2X0_REGISTER( PXA2X0_FFUART_BASE+0x0010 )
+#define PXA2X0_FFLSR PXA2X0_REGISTER( PXA2X0_FFUART_BASE+0x0014 )
+#define PXA2X0_FFMSR PXA2X0_REGISTER( PXA2X0_FFUART_BASE+0x0018 )
+#define PXA2X0_FFSPR PXA2X0_REGISTER( PXA2X0_FFUART_BASE+0x001c )
+#define PXA2X0_FFISR PXA2X0_REGISTER( PXA2X0_FFUART_BASE+0x0020 )
+#define PXA2X0_FFDLL PXA2X0_REGISTER( PXA2X0_FFUART_BASE+0x0000 )
+#define PXA2X0_FFDLH PXA2X0_REGISTER( PXA2X0_FFUART_BASE+0x0004 )
+
+// Bluetooth UART
+#define PXA2X0_BTUART_BASE ( PXA2X0_PERIPHERALS_BASE + 0x0200000 )
+#define PXA2X0_BTRBR PXA2X0_REGISTER( PXA2X0_BTUART_BASE+0x0000 )
+#define PXA2X0_BTTHR PXA2X0_REGISTER( PXA2X0_BTUART_BASE+0x0000 )
+#define PXA2X0_BTIER PXA2X0_REGISTER( PXA2X0_BTUART_BASE+0x0004 )
+#define PXA2X0_BTIIR PXA2X0_REGISTER( PXA2X0_BTUART_BASE+0x0008 )
+#define PXA2X0_BTFCR PXA2X0_REGISTER( PXA2X0_BTUART_BASE+0x0008 )
+#define PXA2X0_BTLCR PXA2X0_REGISTER( PXA2X0_BTUART_BASE+0x000c )
+#define PXA2X0_BTMCR PXA2X0_REGISTER( PXA2X0_BTUART_BASE+0x0010 )
+#define PXA2X0_BTLSR PXA2X0_REGISTER( PXA2X0_BTUART_BASE+0x0014 )
+#define PXA2X0_BTMSR PXA2X0_REGISTER( PXA2X0_BTUART_BASE+0x0018 )
+#define PXA2X0_BTSPR PXA2X0_REGISTER( PXA2X0_BTUART_BASE+0x001c )
+#define PXA2X0_BTISR PXA2X0_REGISTER( PXA2X0_BTUART_BASE+0x0020 )
+#define PXA2X0_BTDLL PXA2X0_REGISTER( PXA2X0_BTUART_BASE+0x0000 )
+#define PXA2X0_BTDLH PXA2X0_REGISTER( PXA2X0_BTUART_BASE+0x0004 )
+
+// I2C
+#define PXA2X0_I2C_BASE ( PXA2X0_PERIPHERALS_BASE + 0x0300000 )
+#define PXA2X0_IBMR PXA2X0_REGISTER( PXA2X0_I2C_BASE+0x1680 )
+#define PXA2X0_IDBR PXA2X0_REGISTER( PXA2X0_I2C_BASE+0x1688 )
+#define PXA2X0_ICR PXA2X0_REGISTER( PXA2X0_I2C_BASE+0x1690 )
+#define PXA2X0_ISR PXA2X0_REGISTER( PXA2X0_I2C_BASE+0x1698 )
+#define PXA2X0_ISAR PXA2X0_REGISTER( PXA2X0_I2C_BASE+0x16a0 )
+
+
+// I2S
+#define PXA2X0_I2S_BASE ( PXA2X0_PERIPHERALS_BASE + 0x0400000 )
+#define PXA2X0_SACR0 PXA2X0_REGISTER( PXA2X0_I2S_BASE+0x0000 )
+#define PXA2X0_SACR1 PXA2X0_REGISTER( PXA2X0_I2S_BASE+0x0004 )
+#define PXA2X0_SASR0 PXA2X0_REGISTER( PXA2X0_I2S_BASE+0x000c )
+#define PXA2X0_SAIMR PXA2X0_REGISTER( PXA2X0_I2S_BASE+0x0014 )
+#define PXA2X0_SAICR PXA2X0_REGISTER( PXA2X0_I2S_BASE+0x0018 )
+#define PXA2X0_SADIV PXA2X0_REGISTER( PXA2X0_I2S_BASE+0x0060 )
+#define PXA2X0_SADR PXA2X0_REGISTER( PXA2X0_I2S_BASE+0x0080 )
+
+// AC97
+#define PXA2X0_AC97_BASE ( PXA2X0_PERIPHERALS_BASE + 0x0500000 )
+#define PXA2X0_POCR PXA2X0_REGISTER( PXA2X0_AC97_BASE+0x0000 )
+#define PXA2X0_PICR PXA2X0_REGISTER( PXA2X0_AC97_BASE+0x0004 )
+#define PXA2X0_MCCR PXA2X0_REGISTER( PXA2X0_AC97_BASE+0x0008 )
+#define PXA2X0_GCR PXA2X0_REGISTER( PXA2X0_AC97_BASE+0x000c )
+#define PXA2X0_POSR PXA2X0_REGISTER( PXA2X0_AC97_BASE+0x0010 )
+#define PXA2X0_PISR PXA2X0_REGISTER( PXA2X0_AC97_BASE+0x0014 )
+#define PXA2X0_MCSR PXA2X0_REGISTER( PXA2X0_AC97_BASE+0x0018 )
+#define PXA2X0_GSR PXA2X0_REGISTER( PXA2X0_AC97_BASE+0x001c )
+#define PXA2X0_CAR PXA2X0_REGISTER( PXA2X0_AC97_BASE+0x0020 )
+#define PXA2X0_PCDR PXA2X0_REGISTER( PXA2X0_AC97_BASE+0x0040 )
+#define PXA2X0_MCDR PXA2X0_REGISTER( PXA2X0_AC97_BASE+0x0060 )
+#define PXA2X0_MOCR PXA2X0_REGISTER( PXA2X0_AC97_BASE+0x0100 )
+#define PXA2X0_MICR PXA2X0_REGISTER( PXA2X0_AC97_BASE+0x0108 )
+#define PXA2X0_MOSR PXA2X0_REGISTER( PXA2X0_AC97_BASE+0x0110 )
+#define PXA2X0_MISR PXA2X0_REGISTER( PXA2X0_AC97_BASE+0x0118 )
+#define PXA2X0_MODR PXA2X0_REGISTER( PXA2X0_AC97_BASE+0x0140 )
+#define PXA2X0_AC97_PRIM_AUDIO_BASE PXA2X0_REGISTER( PXA2X0_AC97_BASE+0x0200 )
+#define PXA2X0_AC97_SEC_AUDIO_BASE PXA2X0_REGISTER( PXA2X0_AC97_BASE+0x0300 )
+#define PXA2X0_AC97_PRIM_MODEM_BASE PXA2X0_REGISTER( PXA2X0_AC97_BASE+0x0400 )
+#define PXA2X0_AC97_SEC_MODEM_BASE PXA2X0_REGISTER( PXA2X0_AC97_BASE+0x0500 )
+
+// UDC
+#define PXA2X0_UDC_BASE ( PXA2X0_PERIPHERALS_BASE + 0x0600000 )
+#define PXA2X0_UDCCR PXA2X0_REGISTER( PXA2X0_UDC_BASE+0x0000 )
+#define PXA2X0_UDCCS0 PXA2X0_REGISTER( PXA2X0_UDC_BASE+0x0010 )
+#define PXA2X0_UDCCS1 PXA2X0_REGISTER( PXA2X0_UDC_BASE+0x0014 )
+#define PXA2X0_UDCCS2 PXA2X0_REGISTER( PXA2X0_UDC_BASE+0x0018 )
+#define PXA2X0_UDCCS3 PXA2X0_REGISTER( PXA2X0_UDC_BASE+0x001c )
+#define PXA2X0_UDCCS4 PXA2X0_REGISTER( PXA2X0_UDC_BASE+0x0020 )
+#define PXA2X0_UDCCS5 PXA2X0_REGISTER( PXA2X0_UDC_BASE+0x0024 )
+#define PXA2X0_UDCCS6 PXA2X0_REGISTER( PXA2X0_UDC_BASE+0x0028 )
+#define PXA2X0_UDCCS7 PXA2X0_REGISTER( PXA2X0_UDC_BASE+0x002c )
+#define PXA2X0_UDCCS8 PXA2X0_REGISTER( PXA2X0_UDC_BASE+0x0030 )
+#define PXA2X0_UDCCS9 PXA2X0_REGISTER( PXA2X0_UDC_BASE+0x0034 )
+#define PXA2X0_UDCCS10 PXA2X0_REGISTER( PXA2X0_UDC_BASE+0x0038 )
+#define PXA2X0_UDCCS11 PXA2X0_REGISTER( PXA2X0_UDC_BASE+0x003c )
+#define PXA2X0_UDCCS12 PXA2X0_REGISTER( PXA2X0_UDC_BASE+0x0040 )
+#define PXA2X0_UDCCS13 PXA2X0_REGISTER( PXA2X0_UDC_BASE+0x0044 )
+#define PXA2X0_UDCCS14 PXA2X0_REGISTER( PXA2X0_UDC_BASE+0x0048 )
+#define PXA2X0_UDCCS15 PXA2X0_REGISTER( PXA2X0_UDC_BASE+0x004c )
+#define PXA2X0_UFNRH PXA2X0_REGISTER( PXA2X0_UDC_BASE+0x0060 )
+#define PXA2X0_UFNRL PXA2X0_REGISTER( PXA2X0_UDC_BASE+0x0064 )
+#define PXA2X0_UBCR2 PXA2X0_REGISTER( PXA2X0_UDC_BASE+0x0068 )
+#define PXA2X0_UBCR4 PXA2X0_REGISTER( PXA2X0_UDC_BASE+0x006c )
+#define PXA2X0_UBCR7 PXA2X0_REGISTER( PXA2X0_UDC_BASE+0x0070 )
+#define PXA2X0_UBCR9 PXA2X0_REGISTER( PXA2X0_UDC_BASE+0x0074 )
+#define PXA2X0_UBCR12 PXA2X0_REGISTER( PXA2X0_UDC_BASE+0x0078 )
+#define PXA2X0_UBCR14 PXA2X0_REGISTER( PXA2X0_UDC_BASE+0x007c )
+#define PXA2X0_UDDR0 PXA2X0_REGISTER( PXA2X0_UDC_BASE+0x0080 )
+#define PXA2X0_UDDR1 PXA2X0_REGISTER( PXA2X0_UDC_BASE+0x0100 )
+#define PXA2X0_UDDR2 PXA2X0_REGISTER( PXA2X0_UDC_BASE+0x0180 )
+#define PXA2X0_UDDR3 PXA2X0_REGISTER( PXA2X0_UDC_BASE+0x0200 )
+#define PXA2X0_UDDR4 PXA2X0_REGISTER( PXA2X0_UDC_BASE+0x0400 )
+#define PXA2X0_UDDR5 PXA2X0_REGISTER( PXA2X0_UDC_BASE+0x00a0 )
+#define PXA2X0_UDDR6 PXA2X0_REGISTER( PXA2X0_UDC_BASE+0x0600 )
+#define PXA2X0_UDDR7 PXA2X0_REGISTER( PXA2X0_UDC_BASE+0x0680 )
+#define PXA2X0_UDDR8 PXA2X0_REGISTER( PXA2X0_UDC_BASE+0x0700 )
+#define PXA2X0_UDDR9 PXA2X0_REGISTER( PXA2X0_UDC_BASE+0x0900 )
+#define PXA2X0_UDDR10 PXA2X0_REGISTER( PXA2X0_UDC_BASE+0x00c0 )
+#define PXA2X0_UDDR11 PXA2X0_REGISTER( PXA2X0_UDC_BASE+0x0b00 )
+#define PXA2X0_UDDR12 PXA2X0_REGISTER( PXA2X0_UDC_BASE+0x0b80 )
+#define PXA2X0_UDDR13 PXA2X0_REGISTER( PXA2X0_UDC_BASE+0x0c00 )
+#define PXA2X0_UDDR14 PXA2X0_REGISTER( PXA2X0_UDC_BASE+0x0e00 )
+#define PXA2X0_UDDR15 PXA2X0_REGISTER( PXA2X0_UDC_BASE+0x00e0 )
+#define PXA2X0_UICR0 PXA2X0_REGISTER( PXA2X0_UDC_BASE+0x0050 )
+#define PXA2X0_UICR1 PXA2X0_REGISTER( PXA2X0_UDC_BASE+0x0054 )
+#define PXA2X0_USIR0 PXA2X0_REGISTER( PXA2X0_UDC_BASE+0x0058 )
+#define PXA2X0_USIR1 PXA2X0_REGISTER( PXA2X0_UDC_BASE+0x005c )
+
+// Standard UART
+#define PXA2X0_STUART_BASE ( PXA2X0_PERIPHERALS_BASE + 0x0700000 )
+#define PXA2X0_STRBR PXA2X0_REGISTER( PXA2X0_STUART_BASE+0x0000 )
+#define PXA2X0_STTHR PXA2X0_REGISTER( PXA2X0_STUART_BASE+0x0000 )
+#define PXA2X0_STIER PXA2X0_REGISTER( PXA2X0_STUART_BASE+0x0004 )
+#define PXA2X0_STIIR PXA2X0_REGISTER( PXA2X0_STUART_BASE+0x0008 )
+#define PXA2X0_STFCR PXA2X0_REGISTER( PXA2X0_STUART_BASE+0x0008 )
+#define PXA2X0_STLCR PXA2X0_REGISTER( PXA2X0_STUART_BASE+0x000c )
+#define PXA2X0_STMCR PXA2X0_REGISTER( PXA2X0_STUART_BASE+0x0010 )
+#define PXA2X0_STLSR PXA2X0_REGISTER( PXA2X0_STUART_BASE+0x0014 )
+#define PXA2X0_STMSR PXA2X0_REGISTER( PXA2X0_STUART_BASE+0x0018 )
+#define PXA2X0_STSPR PXA2X0_REGISTER( PXA2X0_STUART_BASE+0x001c )
+#define PXA2X0_STISR PXA2X0_REGISTER( PXA2X0_STUART_BASE+0x0020 )
+#define PXA2X0_STDLL PXA2X0_REGISTER( PXA2X0_STUART_BASE+0x0000 )
+#define PXA2X0_STDLH PXA2X0_REGISTER( PXA2X0_STUART_BASE+0x0004 )
+
+// ICP
+#define PXA2X0_ICP_BASE ( PXA2X0_PERIPHERALS_BASE + 0x0800000 )
+#define PXA2X0_ICCR0 PXA2X0_REGISTER( PXA2X0_ICP_BASE+0x0000 )
+#define PXA2X0_ICCR1 PXA2X0_REGISTER( PXA2X0_ICP_BASE+0x0004 )
+#define PXA2X0_ICCR2 PXA2X0_REGISTER( PXA2X0_ICP_BASE+0x0008 )
+#define PXA2X0_ICDR PXA2X0_REGISTER( PXA2X0_ICP_BASE+0x000c )
+#define PXA2X0_ICSR0 PXA2X0_REGISTER( PXA2X0_ICP_BASE+0x0014 )
+#define PXA2X0_ICSR1 PXA2X0_REGISTER( PXA2X0_ICP_BASE+0x0018 )
+
+// RTC
+#define PXA2X0_RTC_BASE ( PXA2X0_PERIPHERALS_BASE + 0x0900000 )
+#define PXA2X0_RCNR PXA2X0_REGISTER( PXA2X0_RTC_BASE+0x0000 )
+#define PXA2X0_RTAR PXA2X0_REGISTER( PXA2X0_RTC_BASE+0x0004 )
+#define PXA2X0_RTSR PXA2X0_REGISTER( PXA2X0_RTC_BASE+0x0008 )
+#define PXA2X0_RTTR PXA2X0_REGISTER( PXA2X0_RTC_BASE+0x000c )
+
+// OS Timer
+#define PXA2X0_OSTIMER_BASE ( PXA2X0_PERIPHERALS_BASE + 0x0a00000 )
+#define PXA2X0_OSMR0 PXA2X0_REGISTER( PXA2X0_OSTIMER_BASE+0x0000 )
+#define PXA2X0_OSMR1 PXA2X0_REGISTER( PXA2X0_OSTIMER_BASE+0x0004 )
+#define PXA2X0_OSMR2 PXA2X0_REGISTER( PXA2X0_OSTIMER_BASE+0x0008 )
+#define PXA2X0_OSMR3 PXA2X0_REGISTER( PXA2X0_OSTIMER_BASE+0x000c )
+#define PXA2X0_OSCR PXA2X0_REGISTER( PXA2X0_OSTIMER_BASE+0x0010 )
+#define PXA2X0_OSSR PXA2X0_REGISTER( PXA2X0_OSTIMER_BASE+0x0014 )
+#define PXA2X0_OWER PXA2X0_REGISTER( PXA2X0_OSTIMER_BASE+0x0018 )
+#define PXA2X0_OIER PXA2X0_REGISTER( PXA2X0_OSTIMER_BASE+0x001c )
+
+#define PXA2X0_OSSR_TIMER0 (0x1 << 0)
+#define PXA2X0_OSSR_TIMER1 (0x1 << 1)
+#define PXA2X0_OSSR_TIMER2 (0x1 << 2)
+#define PXA2X0_OSSR_TIMER3 (0x1 << 3)
+
+#define PXA2X0_OIER_TIMER0 (0x1 << 0)
+#define PXA2X0_OIER_TIMER1 (0x1 << 1)
+#define PXA2X0_OIER_TIMER2 (0x1 << 2)
+#define PXA2X0_OIER_TIMER3 (0x1 << 3)
+
+#define PXA2X0_OWER_WME (0x1 << 0)
+
+// PWM 0
+#define PXA2X0_PWM0_BASE ( PXA2X0_PERIPHERALS_BASE + 0x0b00000 )
+#define PXA2X0_PWM_CTRL0 PXA2X0_REGISTER( PXA2X0_PWM0_BASE+0x0000 )
+#define PXA2X0_PWM_PWDUTY0 PXA2X0_REGISTER( PXA2X0_PWM0_BASE+0x0004 )
+#define PXA2X0_PWM_PERVAL0 PXA2X0_REGISTER( PXA2X0_PWM0_BASE+0x0008 )
+
+// PWM 1
+#define PXA2X0_PWM1_BASE ( PXA2X0_PERIPHERALS_BASE + 0x0c00000 )
+#define PXA2X0_PWM_CTRL1 PXA2X0_REGISTER( PXA2X0_PWM1_BASE+0x0000 )
+#define PXA2X0_PWM_PWDUTY1 PXA2X0_REGISTER( PXA2X0_PWM1_BASE+0x0004 )
+#define PXA2X0_PWM_PERVAL1 PXA2X0_REGISTER( PXA2X0_PWM1_BASE+0x0008 )
+
+// Interrupt Control
+#define PXA2X0_IC_BASE ( PXA2X0_PERIPHERALS_BASE + 0x0d00000 )
+#define PXA2X0_ICIP PXA2X0_REGISTER( PXA2X0_IC_BASE+0x0000 )
+#define PXA2X0_ICMR PXA2X0_REGISTER( PXA2X0_IC_BASE+0x0004 )
+#define PXA2X0_ICLR PXA2X0_REGISTER( PXA2X0_IC_BASE+0x0008 )
+#define PXA2X0_ICFP PXA2X0_REGISTER( PXA2X0_IC_BASE+0x000c )
+#define PXA2X0_ICPR PXA2X0_REGISTER( PXA2X0_IC_BASE+0x0010 )
+#define PXA2X0_ICCR PXA2X0_REGISTER( PXA2X0_IC_BASE+0x0014 )
+#define PXA2X0_ICMR2 PXA2X0_REGISTER( PXA2X0_IC_BASE+0x00a0 )
+#define PXA2X0_ICLR2 PXA2X0_REGISTER( PXA2X0_IC_BASE+0x00a4 )
+
+// GPIO
+#define PXA2X0_GPIO_BASE ( PXA2X0_PERIPHERALS_BASE + 0x0e00000 )
+#define PXA2X0_GPLR0 PXA2X0_REGISTER( PXA2X0_GPIO_BASE+0x0000 )
+#define PXA2X0_GPLR1 PXA2X0_REGISTER( PXA2X0_GPIO_BASE+0x0004 )
+#define PXA2X0_GPLR2 PXA2X0_REGISTER( PXA2X0_GPIO_BASE+0x0008 )
+#define PXA2X0_GPDR0 PXA2X0_REGISTER( PXA2X0_GPIO_BASE+0x000c )
+#define PXA2X0_GPDR1 PXA2X0_REGISTER( PXA2X0_GPIO_BASE+0x0010 )
+#define PXA2X0_GPDR2 PXA2X0_REGISTER( PXA2X0_GPIO_BASE+0x0014 )
+#define PXA2X0_GPSR0 PXA2X0_REGISTER( PXA2X0_GPIO_BASE+0x0018 )
+#define PXA2X0_GPSR1 PXA2X0_REGISTER( PXA2X0_GPIO_BASE+0x001c )
+#define PXA2X0_GPSR2 PXA2X0_REGISTER( PXA2X0_GPIO_BASE+0x0020 )
+#define PXA2X0_GPCR0 PXA2X0_REGISTER( PXA2X0_GPIO_BASE+0x0024 )
+#define PXA2X0_GPCR1 PXA2X0_REGISTER( PXA2X0_GPIO_BASE+0x0028 )
+#define PXA2X0_GPCR2 PXA2X0_REGISTER( PXA2X0_GPIO_BASE+0x002c )
+#define PXA2X0_GRER0 PXA2X0_REGISTER( PXA2X0_GPIO_BASE+0x0030 )
+#define PXA2X0_GRER1 PXA2X0_REGISTER( PXA2X0_GPIO_BASE+0x0034 )
+#define PXA2X0_GRER2 PXA2X0_REGISTER( PXA2X0_GPIO_BASE+0x0038 )
+#define PXA2X0_GFER0 PXA2X0_REGISTER( PXA2X0_GPIO_BASE+0x003c )
+#define PXA2X0_GFER1 PXA2X0_REGISTER( PXA2X0_GPIO_BASE+0x0040 )
+#define PXA2X0_GFER2 PXA2X0_REGISTER( PXA2X0_GPIO_BASE+0x0044 )
+#define PXA2X0_GEDR0 PXA2X0_REGISTER( PXA2X0_GPIO_BASE+0x0048 )
+#define PXA2X0_GEDR1 PXA2X0_REGISTER( PXA2X0_GPIO_BASE+0x004c )
+#define PXA2X0_GEDR2 PXA2X0_REGISTER( PXA2X0_GPIO_BASE+0x0050 )
+#define PXA2X0_GAFR0_L PXA2X0_REGISTER( PXA2X0_GPIO_BASE+0x0054 )
+#define PXA2X0_GAFR0_U PXA2X0_REGISTER( PXA2X0_GPIO_BASE+0x0058 )
+#define PXA2X0_GAFR1_L PXA2X0_REGISTER( PXA2X0_GPIO_BASE+0x005c )
+#define PXA2X0_GAFR1_U PXA2X0_REGISTER( PXA2X0_GPIO_BASE+0x0060 )
+#define PXA2X0_GAFR2_L PXA2X0_REGISTER( PXA2X0_GPIO_BASE+0x0064 )
+#define PXA2X0_GAFR2_U PXA2X0_REGISTER( PXA2X0_GPIO_BASE+0x0068 )
+#define PXA2X0_GAFR3_L PXA2X0_REGISTER( PXA2X0_GPIO_BASE+0x006c )
+#define PXA2X0_GAFR3_U PXA2X0_REGISTER( PXA2X0_GPIO_BASE+0x0070 )
+#define PXA2X0_GPLR3 PXA2X0_REGISTER( PXA2X0_GPIO_BASE+0x0100 )
+#define PXA2X0_GPDR3 PXA2X0_REGISTER( PXA2X0_GPIO_BASE+0x010c )
+#define PXA2X0_GPSR3 PXA2X0_REGISTER( PXA2X0_GPIO_BASE+0x0118 )
+#define PXA2X0_GPCR3 PXA2X0_REGISTER( PXA2X0_GPIO_BASE+0x0124 )
+#define PXA2X0_GRER3 PXA2X0_REGISTER( PXA2X0_GPIO_BASE+0x0130 )
+#define PXA2X0_GFER3 PXA2X0_REGISTER( PXA2X0_GPIO_BASE+0x013c )
+#define PXA2X0_GEDR3 PXA2X0_REGISTER( PXA2X0_GPIO_BASE+0x0148 )
+
+#define PXA2X0_GPIO_NORM 0x00
+#define PXA2X0_GPIO_AF1 0x01
+#define PXA2X0_GPIO_AF2 0x02
+#define PXA2X0_GPIO_AF3 0x03
+#define PXA2X0_GPIO_IN 0
+#define PXA2X0_GPIO_OUT 1
+
+
+// Power Manager and Reset Control
+#define PXA2X0_PM_BASE ( PXA2X0_PERIPHERALS_BASE + 0x0f00000 )
+#define PXA2X0_PMCR PXA2X0_REGISTER( PXA2X0_PM_BASE+0x0000 )
+#define PXA2X0_PSSR PXA2X0_REGISTER( PXA2X0_PM_BASE+0x0004 )
+#define PXA2X0_PSPR PXA2X0_REGISTER( PXA2X0_PM_BASE+0x0008 )
+#define PXA2X0_PWER PXA2X0_REGISTER( PXA2X0_PM_BASE+0x000c )
+#define PXA2X0_PRER PXA2X0_REGISTER( PXA2X0_PM_BASE+0x0010 )
+#define PXA2X0_PFER PXA2X0_REGISTER( PXA2X0_PM_BASE+0x0014 )
+#define PXA2X0_PEDR PXA2X0_REGISTER( PXA2X0_PM_BASE+0x0018 )
+#define PXA2X0_PCFR PXA2X0_REGISTER( PXA2X0_PM_BASE+0x001c )
+#define PXA2X0_PGSR0 PXA2X0_REGISTER( PXA2X0_PM_BASE+0x0020 )
+#define PXA2X0_PGSR1 PXA2X0_REGISTER( PXA2X0_PM_BASE+0x0024 )
+#define PXA2X0_PGSR2 PXA2X0_REGISTER( PXA2X0_PM_BASE+0x0028 )
+#define PXA2X0_RCSR PXA2X0_REGISTER( PXA2X0_PM_BASE+0x0030 )
+
+// SSP
+#define PXA2X0_SSP_BASE ( PXA2X0_PERIPHERALS_BASE + 0x1000000 )
+#define PXA2X0_SSCR0 PXA2X0_REGISTER( PXA2X0_SSP_BASE+0x0000 )
+#define PXA2X0_SSCR1 PXA2X0_REGISTER( PXA2X0_SSP_BASE+0x0004 )
+#define PXA2X0_SSSR PXA2X0_REGISTER( PXA2X0_SSP_BASE+0x0008 )
+#define PXA2X0_SSITR PXA2X0_REGISTER( PXA2X0_SSP_BASE+0x000c )
+#define PXA2X0_SSDR PXA2X0_REGISTER( PXA2X0_SSP_BASE+0x0010 )
+
+// MMC Controller
+#define PXA2X0_MMC_BASE ( PXA2X0_PERIPHERALS_BASE + 0x1100000 )
+#define PXA2X0_MMC_STRPCL PXA2X0_REGISTER( PXA2X0_MMC_BASE+0x0000 )
+#define PXA2X0_MMC_STAT PXA2X0_REGISTER( PXA2X0_MMC_BASE+0x0004 )
+#define PXA2X0_MMC_CLKRT PXA2X0_REGISTER( PXA2X0_MMC_BASE+0x0008 )
+#define PXA2X0_MMC_SPI PXA2X0_REGISTER( PXA2X0_MMC_BASE+0x000c )
+#define PXA2X0_MMC_CMDAT PXA2X0_REGISTER( PXA2X0_MMC_BASE+0x0010 )
+#define PXA2X0_MMC_RESTO PXA2X0_REGISTER( PXA2X0_MMC_BASE+0x0014 )
+#define PXA2X0_MMC_RDTO PXA2X0_REGISTER( PXA2X0_MMC_BASE+0x0018 )
+#define PXA2X0_MMC_BLKLEN PXA2X0_REGISTER( PXA2X0_MMC_BASE+0x001c )
+#define PXA2X0_MMC_NOB PXA2X0_REGISTER( PXA2X0_MMC_BASE+0x0020 )
+#define PXA2X0_MMC_PRTBUF PXA2X0_REGISTER( PXA2X0_MMC_BASE+0x0024 )
+#define PXA2X0_MMC_I_MASK PXA2X0_REGISTER( PXA2X0_MMC_BASE+0x0028 )
+#define PXA2X0_MMC_I_REG PXA2X0_REGISTER( PXA2X0_MMC_BASE+0x002c )
+#define PXA2X0_MMC_CMD PXA2X0_REGISTER( PXA2X0_MMC_BASE+0x0030 )
+#define PXA2X0_MMC_ARGH PXA2X0_REGISTER( PXA2X0_MMC_BASE+0x0034 )
+#define PXA2X0_MMC_ARGL PXA2X0_REGISTER( PXA2X0_MMC_BASE+0x0038 )
+#define PXA2X0_MMC_RES PXA2X0_REGISTER( PXA2X0_MMC_BASE+0x003c )
+#define PXA2X0_MMC_RXFIFO PXA2X0_REGISTER( PXA2X0_MMC_BASE+0x0040 )
+#define PXA2X0_MMC_TXFIFO PXA2X0_REGISTER( PXA2X0_MMC_BASE+0x0044 )
+
+// Clocks Manager
+#define PXA2X0_CLK_BASE ( PXA2X0_PERIPHERALS_BASE + 0x1300000 )
+#define PXA2X0_CCCR PXA2X0_REGISTER( PXA2X0_CLK_BASE+0x0000 )
+#define PXA2X0_CKEN PXA2X0_REGISTER( PXA2X0_CLK_BASE+0x0004 )
+#define PXA2X0_OSCC PXA2X0_REGISTER( PXA2X0_CLK_BASE+0x0008 )
+
+// PXA25x CCCR bits
+#ifdef CYGOPT_HAL_ARM_XSCALE_PXA2X0_VARIANT_PXA25X
+// Crystal Frequency to Memory Frequency multiplier
+# define PXA2X0_CCCR_L09 (0x1f)
+# define PXA2X0_CCCR_L27 (0x01)
+# define PXA2X0_CCCR_L32 (0x02)
+# define PXA2X0_CCCR_L36 (0x03)
+# define PXA2X0_CCCR_L40 (0x04)
+# define PXA2X0_CCCR_L45 (0x05)
+// Memory frequency to to run mode frequency multiplier
+# define PXA2X0_CCCR_M1 (0x1 << 5)
+# define PXA2X0_CCCR_M2 (0x2 << 5)
+# define PXA2X0_CCCR_M4 (0x3 << 5)
+// Run mode frequency to turbo mode frequency multiplier
+# define PXA2X0_CCCR_N10 (0x2 << 7) // N=1.0
+# define PXA2X0_CCCR_N15 (0x3 << 7) // N=1.5
+# define PXA2X0_CCCR_N20 (0x4 << 7) // N=2.0
+# define PXA2X0_CCCR_N25 (0x5 << 7) // N=2.5
+# define PXA2X0_CCCR_N30 (0x6 << 7) // N=3.0
+#endif
+
+// PXA27x CCCR bits
+#ifdef CYGOPT_HAL_ARM_XSCALE_PXA2X0_VARIANT_PXA27X
+// Run-mode-to-oscillator ratio
+# define PXA27X_CCCR_L8 (0x08)
+# define PXA27X_CCCR_L16 (0x10)
+// Turbo-mode-to-run-mode ratio
+# define PXA27X_CCCR_N1 (0x02 << 7)
+# define PXA27X_CCCR_N1_5 (0x03 << 7)
+# define PXA27X_CCCR_N2 (0x04 << 7)
+# define PXA27X_CCCR_N2_5 (0x05 << 7)
+# define PXA27X_CCCR_N3 (0x06 << 7)
+
+# define PXA27X_CCCR_A (0x02000000)
+# define PXA27X_CCCR_PLL_EARLY_EN (0x04000000)
+# define PXA27X_CCCR_LCD_26 (0x08000000)
+# define PXA27X_CCCR_PPDIS (0x40000000)
+# define PXA27X_CCCR_CPDIS (0x80000000)
+#endif
+
+// LCD Controller
+#define PXA2X0_LCCR0 PXA2X0_REGISTER( PXA2X0_LCD_BASE+0x0000 )
+#define PXA2X0_LCCR1 PXA2X0_REGISTER( PXA2X0_LCD_BASE+0x0004 )
+#define PXA2X0_LCCR2 PXA2X0_REGISTER( PXA2X0_LCD_BASE+0x0008 )
+#define PXA2X0_LCCR3 PXA2X0_REGISTER( PXA2X0_LCD_BASE+0x000c )
+#define PXA2X0_FDADR0 PXA2X0_REGISTER( PXA2X0_LCD_BASE+0x0200 )
+#define PXA2X0_FSADR0 PXA2X0_REGISTER( PXA2X0_LCD_BASE+0x0204 )
+#define PXA2X0_FIDR0 PXA2X0_REGISTER( PXA2X0_LCD_BASE+0x0208 )
+#define PXA2X0_LDCMD0 PXA2X0_REGISTER( PXA2X0_LCD_BASE+0x020c )
+#define PXA2X0_FDADR1 PXA2X0_REGISTER( PXA2X0_LCD_BASE+0x0210 )
+#define PXA2X0_FSADR1 PXA2X0_REGISTER( PXA2X0_LCD_BASE+0x0214 )
+#define PXA2X0_FIDR1 PXA2X0_REGISTER( PXA2X0_LCD_BASE+0x0218 )
+#define PXA2X0_LDCMD1 PXA2X0_REGISTER( PXA2X0_LCD_BASE+0x021c )
+#define PXA2X0_FBR0 PXA2X0_REGISTER( PXA2X0_LCD_BASE+0x0020 )
+#define PXA2X0_FBR1 PXA2X0_REGISTER( PXA2X0_LCD_BASE+0x0024 )
+#define PXA2X0_LCSR PXA2X0_REGISTER( PXA2X0_LCD_BASE+0x0038 )
+#define PXA2X0_LIIDR PXA2X0_REGISTER( PXA2X0_LCD_BASE+0x003c )
+#define PXA2X0_TRGBR PXA2X0_REGISTER( PXA2X0_LCD_BASE+0x0040 )
+#define PXA2X0_TCR PXA2X0_REGISTER( PXA2X0_LCD_BASE+0x0044 )
+
+// Memory Controller
+#define PXA2X0_MDCNFG PXA2X0_REGISTER( PXA2X0_MEMORY_CTL_BASE+0x0000 )
+#define PXA2X0_MDREFR PXA2X0_REGISTER( PXA2X0_MEMORY_CTL_BASE+0x0004 )
+#define PXA2X0_MSC0 PXA2X0_REGISTER( PXA2X0_MEMORY_CTL_BASE+0x0008 )
+#define PXA2X0_MSC1 PXA2X0_REGISTER( PXA2X0_MEMORY_CTL_BASE+0x000c )
+#define PXA2X0_MSC2 PXA2X0_REGISTER( PXA2X0_MEMORY_CTL_BASE+0x0010 )
+#define PXA2X0_MECR PXA2X0_REGISTER( PXA2X0_MEMORY_CTL_BASE+0x0014 )
+#define PXA2X0_SXCNFG PXA2X0_REGISTER( PXA2X0_MEMORY_CTL_BASE+0x001c )
+#define PXA2X0_SXMRS PXA2X0_REGISTER( PXA2X0_MEMORY_CTL_BASE+0x0024 )
+#define PXA2X0_MCMEM0 PXA2X0_REGISTER( PXA2X0_MEMORY_CTL_BASE+0x0028 )
+#define PXA2X0_MCMEM1 PXA2X0_REGISTER( PXA2X0_MEMORY_CTL_BASE+0x002c )
+#define PXA2X0_MCATT0 PXA2X0_REGISTER( PXA2X0_MEMORY_CTL_BASE+0x0030 )
+#define PXA2X0_MCATT1 PXA2X0_REGISTER( PXA2X0_MEMORY_CTL_BASE+0x0034 )
+#define PXA2X0_MCIO0 PXA2X0_REGISTER( PXA2X0_MEMORY_CTL_BASE+0x0038 )
+#define PXA2X0_MCIO1 PXA2X0_REGISTER( PXA2X0_MEMORY_CTL_BASE+0x003c )
+#define PXA2X0_MDMRS PXA2X0_REGISTER( PXA2X0_MEMORY_CTL_BASE+0x0040 )
+#define PXA2X0_BOOT_DEF PXA2X0_REGISTER( PXA2X0_MEMORY_CTL_BASE+0x0044 )
+
+// UART definitions
+// Register offsets
+#define PXA2X0_UART_RBR ( 0x0000 ) // Receive Buffer Register
+#define PXA2X0_UART_THR ( 0x0000 ) // Transmit Hold Register
+#define PXA2X0_UART_IER ( 0x0004 ) // Interrupt Enable Register
+#define PXA2X0_UART_IIR ( 0x0008 ) // Interrupt ID Register
+#define PXA2X0_UART_FCR ( 0x0008 )
+#define PXA2X0_UART_LCR ( 0x000c )
+#define PXA2X0_UART_MCR ( 0x0010 )
+#define PXA2X0_UART_LSR ( 0x0014 )
+#define PXA2X0_UART_MSR ( 0x0018 )
+#define PXA2X0_UART_SPR ( 0x001c )
+#define PXA2X0_UART_ISR ( 0x0020 )
+#define PXA2X0_UART_DLL ( 0x0000 )
+#define PXA2X0_UART_DLH ( 0x0004 )
+
+
+// The interrupt enable register bits.
+#define PXA2X0_UART_IER_RAVIE 0x01 // enable received data available irq
+#define PXA2X0_UART_IER_TIE 0x02 // enable transmit data request interrupt
+#define PXA2X0_UART_IER_RLSE 0x04 // enable receiver line status irq
+#define PXA2X0_UART_IER_MIE 0x08 // enable modem status interrupt
+#define PXA2X0_UART_IER_RTOIE 0x10 // enable Rx timeout interrupt
+#define PXA2X0_UART_IER_NRZE 0x20 // enable NRZ coding
+#define PXA2X0_UART_IER_UUE 0x40 // enable the UART unit
+#define PXA2X0_UART_IER_DMAE 0x80 // enable DMA requests
+
+// The interrupt identification register bits.
+#define PXA2X0_UART_IIR_IP 0x01 // 0 if interrupt pending
+#define PXA2X0_UART_Tx 0x02
+#define PXA2X0_UART_Rx 0x04
+#define PXA2X0_UART_IIR_ID_MASK 0xff // mask for interrupt ID bits
+
+// The line status register bits.
+#define PXA2X0_UART_LSR_DR 0x01 // data ready
+#define PXA2X0_UART_LSR_OE 0x02 // overrun error
+#define PXA2X0_UART_LSR_PE 0x04 // parity error
+#define PXA2X0_UART_LSR_FE 0x08 // framing error
+#define PXA2X0_UART_LSR_BI 0x10 // break interrupt
+#define PXA2X0_UART_LSR_THRE 0x20 // transmitter holding register empty
+#define PXA2X0_UART_LSR_TEMT 0x40 // transmitter holding and Tx shift registers empty
+#define PXA2X0_UART_LSR_ERR 0x80 // any error condition (FIFOE)
+
+// The modem status register bits.
+#define PXA2X0_UART_MSR_DCTS 0x01 // delta clear to send
+#define PXA2X0_UART_MSR_DDSR 0x02 // delta data set ready
+#define PXA2X0_UART_MSR_TERI 0x04 // trailing edge ring indicator
+#define PXA2X0_UART_MSR_DDCD 0x08 // delta data carrier detect
+#define PXA2X0_UART_MSR_CTS 0x10 // clear to send
+#define PXA2X0_UART_MSR_DSR 0x20 // data set ready
+#define PXA2X0_UART_MSR_RI 0x40 // ring indicator
+#define PXA2X0_UART_MSR_DCD 0x80 // data carrier detect
+
+// The line control register bits.
+#define PXA2X0_UART_LCR_WLS0 0x01 // word length select bit 0
+#define PXA2X0_UART_LCR_WLS1 0x02 // word length select bit 1
+#define PXA2X0_UART_LCR_STB 0x04 // number of stop bits
+#define PXA2X0_UART_LCR_PEN 0x08 // parity enable
+#define PXA2X0_UART_LCR_EPS 0x10 // even parity select
+#define PXA2X0_UART_LCR_SP 0x20 // stick parity
+#define PXA2X0_UART_LCR_SB 0x40 // set break
+#define PXA2X0_UART_LCR_DLAB 0x80 // divisor latch access bit
+
+// The FIFO control register
+#define PXA2X0_UART_FCR_FCR0 0x01 // enable xmit and rcvr fifos
+#define PXA2X0_UART_FCR_FCR1 0x02 // clear RCVR FIFO
+#define PXA2X0_UART_FCR_FCR2 0x04 // clear XMIT FIFO
+#define PXA2X0_UART_FCR_ITL0 0x40 // Interrupt trigger level (ITL) bit 0
+#define PXA2X0_UART_FCR_ITL1 0x80 // Interrupt trigger level (ITL) bit 1
+#define PXA2X0_UART_FCR_ITL_1BYTE 0x00 // i byte triggers interrupt
+
+#define PXA2X0_UART_BAUD_RATE_DIVISOR(x) ((14745600/(16*(x))))
+
+#endif // CYGONCE_HAL_ARM_PXA2X0_H
+// EOF hal_pxa2x0.h
+
diff --git a/ecos/packages/hal/arm/xscale/pxa2x0/current/include/hal_var_ints.h b/ecos/packages/hal/arm/xscale/pxa2x0/current/include/hal_var_ints.h
new file mode 100644
index 0000000..118f6c9
--- /dev/null
+++ b/ecos/packages/hal/arm/xscale/pxa2x0/current/include/hal_var_ints.h
@@ -0,0 +1,223 @@
+#ifndef CYGONCE_HAL_VAR_INTS_H
+#define CYGONCE_HAL_VAR_INTS_H
+//==========================================================================
+//
+// hal_var_ints.h
+//
+// HAL Interrupt and clock support
+//
+//==========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//==========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): <knud.woehler@microplex.de>
+// Date: 2002-09-02
+//
+//####DESCRIPTIONEND####
+//
+//==========================================================================
+
+#include <cyg/hal/hal_pxa2x0.h>
+
+// 1st level
+#define CYGNUM_HAL_INTERRUPT_SSP3 0
+#define CYGNUM_HAL_INTERRUPT_MSL 1
+#define CYGNUM_HAL_INTERRUPT_USBH2 2
+#define CYGNUM_HAL_INTERRUPT_USBH1 3
+#define CYGNUM_HAL_INTERRUPT_KEYPAD 4
+#define CYGNUM_HAL_INTERRUPT_MEMSTK 5
+#define CYGNUM_HAL_INTERRUPT_PWRI2C 6
+#define CYGNUM_HAL_INTERRUPT_OST_4_11 7
+#define CYGNUM_HAL_INTERRUPT_GPIO0 8
+#define CYGNUM_HAL_INTERRUPT_GPIO1 9
+#define CYGNUM_HAL_INTERRUPT_GPIOX 10
+#define CYGNUM_HAL_INTERRUPT_USB 11
+#define CYGNUM_HAL_INTERRUPT_PMU 12
+#define CYGNUM_HAL_INTERRUPT_I2S 13
+#define CYGNUM_HAL_INTERRUPT_AC97 14
+#define CYGNUM_HAL_INTERRUPT_ASSP 15 /* PXA25x */
+#define CYGNUM_HAL_INTERRUPT_USIM 15 /* PXA27x */
+#define CYGNUM_HAL_INTERRUT_NSSP 16
+#define CYGNUM_HAL_INTERRUPT_LCD 17
+#define CYGNUM_HAL_INTERRUPT_I2C 18
+#define CYGNUM_HAL_INTERRUPT_ICP 19
+#define CYGNUM_HAL_INTERRUPT_STUART 20
+#define CYGNUM_HAL_INTERRUPT_BTUART 21
+#define CYGNUM_HAL_INTERRUPT_FFUART 22
+#define CYGNUM_HAL_INTERRUPT_MMC 23
+#define CYGNUM_HAL_INTERRUPT_SSP 24
+#define CYGNUM_HAL_INTERRUPT_DMA 25
+#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
+
+#if defined (CYGOPT_HAL_ARM_XSCALE_PXA2X0_VARIANT_PXA27X)
+
+#define CYGNUM_HAL_INTERRUPT_TPM 32
+#define CYGNUM_HAL_INTERRUPT_CAMERA 33
+
+#define CYGNUM_HAL_INTERNAL_IRQS 34
+
+#elif defined(CYGOPT_HAL_ARM_XSCALE_PXA2X0_VARIANT_PXA25X)
+
+#define CYGNUM_HAL_INTERNAL_IRQS 32
+
+// 2nd level
+#define CYGNUM_HAL_INTERRUPT_GPIO2 (32+2)
+#define CYGNUM_HAL_INTERRUPT_GPIO3 (32+3)
+#define CYGNUM_HAL_INTERRUPT_GPIO4 (32+4)
+#define CYGNUM_HAL_INTERRUPT_GPIO5 (32+5)
+#define CYGNUM_HAL_INTERRUPT_GPIO6 (32+6)
+#define CYGNUM_HAL_INTERRUPT_GPIO7 (32+7)
+#define CYGNUM_HAL_INTERRUPT_GPIO8 (32+8)
+#define CYGNUM_HAL_INTERRUPT_GPIO9 (32+9)
+#define CYGNUM_HAL_INTERRUPT_GPIO10 (32+10)
+#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_GPIO28 (32+28)
+#define CYGNUM_HAL_INTERRUPT_GPIO29 (32+29)
+#define CYGNUM_HAL_INTERRUPT_GPIO30 (32+30)
+#define CYGNUM_HAL_INTERRUPT_GPIO31 (32+31)
+
+#define CYGNUM_HAL_INTERRUPT_GPIO32 (64+0)
+#define CYGNUM_HAL_INTERRUPT_GPIO33 (64+1)
+#define CYGNUM_HAL_INTERRUPT_GPIO34 (64+2)
+#define CYGNUM_HAL_INTERRUPT_GPIO35 (64+3)
+#define CYGNUM_HAL_INTERRUPT_GPIO36 (64+4)
+#define CYGNUM_HAL_INTERRUPT_GPIO37 (64+5)
+#define CYGNUM_HAL_INTERRUPT_GPIO38 (64+6)
+#define CYGNUM_HAL_INTERRUPT_GPIO39 (64+7)
+#define CYGNUM_HAL_INTERRUPT_GPIO40 (64+8)
+#define CYGNUM_HAL_INTERRUPT_GPIO41 (64+9)
+#define CYGNUM_HAL_INTERRUPT_GPIO42 (64+10)
+#define CYGNUM_HAL_INTERRUPT_GPIO43 (64+11)
+#define CYGNUM_HAL_INTERRUPT_GPIO44 (64+12)
+#define CYGNUM_HAL_INTERRUPT_GPIO45 (64+13)
+#define CYGNUM_HAL_INTERRUPT_GPIO46 (64+14)
+#define CYGNUM_HAL_INTERRUPT_GPIO47 (64+15)
+#define CYGNUM_HAL_INTERRUPT_GPIO48 (64+16)
+#define CYGNUM_HAL_INTERRUPT_GPIO49 (64+17)
+#define CYGNUM_HAL_INTERRUPT_GPIO50 (64+18)
+#define CYGNUM_HAL_INTERRUPT_GPIO51 (64+19)
+#define CYGNUM_HAL_INTERRUPT_GPIO52 (64+20)
+#define CYGNUM_HAL_INTERRUPT_GPIO53 (64+21)
+#define CYGNUM_HAL_INTERRUPT_GPIO54 (64+22)
+#define CYGNUM_HAL_INTERRUPT_GPIO55 (64+23)
+#define CYGNUM_HAL_INTERRUPT_GPIO56 (64+24)
+#define CYGNUM_HAL_INTERRUPT_GPIO57 (64+25)
+#define CYGNUM_HAL_INTERRUPT_GPIO58 (64+26)
+#define CYGNUM_HAL_INTERRUPT_GPIO59 (64+27)
+#define CYGNUM_HAL_INTERRUPT_GPIO60 (64+28)
+#define CYGNUM_HAL_INTERRUPT_GPIO61 (64+29)
+#define CYGNUM_HAL_INTERRUPT_GPIO62 (64+30)
+#define CYGNUM_HAL_INTERRUPT_GPIO63 (64+31)
+
+#define CYGNUM_HAL_INTERRUPT_GPIO64 (96+0)
+#define CYGNUM_HAL_INTERRUPT_GPIO65 (96+1)
+#define CYGNUM_HAL_INTERRUPT_GPIO66 (96+2)
+#define CYGNUM_HAL_INTERRUPT_GPIO67 (96+3)
+#define CYGNUM_HAL_INTERRUPT_GPIO68 (96+4)
+#define CYGNUM_HAL_INTERRUPT_GPIO69 (96+5)
+#define CYGNUM_HAL_INTERRUPT_GPIO70 (96+6)
+#define CYGNUM_HAL_INTERRUPT_GPIO71 (96+7)
+#define CYGNUM_HAL_INTERRUPT_GPIO72 (96+8)
+#define CYGNUM_HAL_INTERRUPT_GPIO73 (96+9)
+#define CYGNUM_HAL_INTERRUPT_GPIO74 (96+10)
+#define CYGNUM_HAL_INTERRUPT_GPIO75 (96+11)
+#define CYGNUM_HAL_INTERRUPT_GPIO76 (96+12)
+#define CYGNUM_HAL_INTERRUPT_GPIO77 (96+13)
+#define CYGNUM_HAL_INTERRUPT_GPIO78 (96+14)
+#define CYGNUM_HAL_INTERRUPT_GPIO79 (96+15)
+#define CYGNUM_HAL_INTERRUPT_GPIO80 (96+16)
+#define CYGNUM_HAL_INTERRUPT_GPIO81 (96+17)
+#define CYGNUM_HAL_INTERRUPT_GPIO82 (96+18)
+#define CYGNUM_HAL_INTERRUPT_GPIO83 (96+19)
+#define CYGNUM_HAL_INTERRUPT_GPIO84 (96+20)
+#define CYGNUM_HAL_INTERRUPT_GPIO85 (96+21)
+
+#endif
+
+#define CYGNUM_HAL_INTERRUPT_GPIO(i) \
+ (((i) < 2) ? (CYGNUM_HAL_INTERRUPT_GPIO0 + (i)) : (CYGNUM_HAL_INTERNAL_IRQS + (i)))
+
+#define CYGNUM_HAL_INTERRUPT_NONE -1
+
+#define CYGNUM_HAL_INTERRUPT_RTC CYGNUM_HAL_INTERRUPT_TIMER0
+
+#define CYGNUM_HAL_ISR_MIN 0
+#if defined CYGOPT_HAL_ARM_XSCALE_PXA2X0_VARIANT_PXA25X
+# define CYGNUM_HAL_ISR_MAX (96+21)
+#elif defined CYGOPT_HAL_ARM_XSCALE_PXA2X0_VARIANT_PXA27X
+# define CYGNUM_HAL_ISR_MAX (CYGNUM_HAL_INTERNAL_IRQS + 121)
+#endif
+#define CYGNUM_HAL_ISR_COUNT (CYGNUM_HAL_ISR_MAX-CYGNUM_HAL_ISR_MIN+1)
+
+#ifdef CYGVAR_KERNEL_COUNTERS_CLOCK_LATENCY
+externC void hal_clock_latency(cyg_uint32 *);
+# define HAL_CLOCK_LATENCY( _pvalue_ ) hal_clock_latency( (cyg_uint32 *)(_pvalue_) )
+#endif
+
+
+// Reset
+#define HAL_PLATFORM_RESET() \
+ CYG_MACRO_START \
+ cyg_uint32 ctrl; \
+ HAL_DISABLE_INTERRUPTS(ctrl); \
+ *PXA2X0_OWER = PXA2X0_OWER_WME; \
+ *PXA2X0_OSMR3 = *PXA2X0_OSCR + 1000; \
+ for(;;); \
+ CYG_MACRO_END
+
+#define HAL_PLATFORM_RESET_ENTRY 0x00000000
+
+#endif // CYGONCE_HAL_VAR_INTS_H
+
diff --git a/ecos/packages/hal/arm/xscale/pxa2x0/current/include/var_io.h b/ecos/packages/hal/arm/xscale/pxa2x0/current/include/var_io.h
new file mode 100644
index 0000000..4cc08c3
--- /dev/null
+++ b/ecos/packages/hal/arm/xscale/pxa2x0/current/include/var_io.h
@@ -0,0 +1,57 @@
+#ifndef CYGONCE_VAR_IO_H
+#define CYGONCE_VAR_IO_H
+//=============================================================================
+//
+// var_io.h
+//
+// Variant specific IO support
+//
+//=============================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): <knud.woehler@microplex.de>
+// Date: 2002-09-03
+//
+//####DESCRIPTIONEND####
+//
+//=============================================================================
+#include <cyg/hal/plf_io.h>
+
+// Memory mapping details
+#ifndef CYGARC_PHYSICAL_ADDRESS
+# define CYGARC_PHYSICAL_ADDRESS(x) (((unsigned long)x & 0x3FFFFFFF) + PXA2X0_RAM_BANK0_BASE)
+#endif
+
+#endif //CYGONCE_VAR_IO_H
diff --git a/ecos/packages/hal/arm/xscale/pxa2x0/current/src/hal_diag.c b/ecos/packages/hal/arm/xscale/pxa2x0/current/src/hal_diag.c
new file mode 100644
index 0000000..12c09c6
--- /dev/null
+++ b/ecos/packages/hal/arm/xscale/pxa2x0/current/src/hal_diag.c
@@ -0,0 +1,343 @@
+/*=============================================================================
+//
+// hal_diag.c
+//
+// HAL diagnostic output code
+//
+//=============================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): <knud.woehler@microplex.de>
+// Date: 2002-09-03
+//
+//####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_arch.h> // basic machine info
+#include <cyg/hal/hal_intr.h> // interrupt macros
+#include <cyg/hal/hal_io.h> // IO macros
+#include <cyg/hal/hal_if.h> // Calling interface definitions
+#include <cyg/hal/hal_diag.h>
+#include <cyg/hal/drv_api.h> // cyg_drv_interrupt_acknowledge
+#include <cyg/hal/hal_misc.h> // Helper functions
+#include <cyg/hal/hal_pxa2x0.h> // Hardware definitions
+
+
+//-----------------------------------------------------------------------------
+typedef struct {
+ cyg_uint8* base;
+ cyg_int32 msec_timeout;
+ int isr_vector;
+ int baud_rate;
+} channel_data_t;
+
+/*---------------------------------------------------------------------------*/
+// PXA2X0 Serial Port (UARTx) for Debug
+
+static void
+init_channel(channel_data_t* __ch_data)
+{
+ cyg_uint8* base = __ch_data->base;
+ cyg_uint8 lcr;
+ cyg_uint32 brd;
+
+ // 8-1-no parity.
+ lcr = PXA2X0_UART_LCR_WLS0 | PXA2X0_UART_LCR_WLS1;
+ lcr |= PXA2X0_UART_LCR_DLAB;
+ HAL_WRITE_UINT8( base+PXA2X0_UART_LCR, lcr );
+
+ // Setup divisor
+ brd = PXA2X0_UART_BAUD_RATE_DIVISOR( __ch_data->baud_rate );
+ HAL_WRITE_UINT8( base+PXA2X0_UART_DLH, (brd >> 8) & 0xff );
+ HAL_WRITE_UINT8( base+PXA2X0_UART_DLL, brd & 0xff );
+
+
+ // DLAB = 0 to allow access to FIFOs
+ lcr &= ~PXA2X0_UART_LCR_DLAB;
+ HAL_WRITE_UINT8(base+PXA2X0_UART_LCR, lcr);
+
+ // Enable & clear FIFOs
+ // set Interrupt Trigger Level to be 1 byte
+ HAL_WRITE_UINT8(base+PXA2X0_UART_FCR,
+ (PXA2X0_UART_FCR_FCR0 | PXA2X0_UART_FCR_FCR1 | PXA2X0_UART_FCR_FCR2)); // Enable & clear FIFO
+
+ // Configure NRZ, disable DMA requests and enable UART
+ HAL_WRITE_UINT8(base+PXA2X0_UART_IER, PXA2X0_UART_IER_UUE);
+}
+
+static void
+cyg_hal_plf_serial_putc(void *__ch_data, char c)
+{
+ cyg_uint8* base = ((channel_data_t*)__ch_data)->base;
+ cyg_uint8 lsr;
+ CYGARC_HAL_SAVE_GP();
+
+ do {
+ HAL_READ_UINT8(base+PXA2X0_UART_LSR, lsr);
+ } while ((lsr & PXA2X0_UART_LSR_THRE) == 0);
+
+ HAL_WRITE_UINT8(base+PXA2X0_UART_THR, c);
+
+ do {
+ HAL_READ_UINT8(base+PXA2X0_UART_LSR, lsr);
+ } while ((lsr & PXA2X0_UART_LSR_THRE) == 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+PXA2X0_UART_LSR, lsr);
+ if ((lsr & PXA2X0_UART_LSR_DR) == 0)
+ return false;
+
+ HAL_READ_UINT8(base+PXA2X0_UART_RBR, *ch);
+
+ return true;
+}
+
+static 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;
+}
+
+static channel_data_t ser_channels[] = {
+#if CYGHWR_HAL_ARM_PXA2X0_FFUART != 0
+ { (cyg_uint8*)PXA2X0_FFUART_BASE, 1000,
+ CYGNUM_HAL_INTERRUPT_FFUART, CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_BAUD },
+#endif
+#if CYGHWR_HAL_ARM_PXA2X0_BTUART != 0
+ { (cyg_uint8*)PXA2X0_BTUART_BASE, 1000,
+ CYGNUM_HAL_INTERRUPT_BTUART, CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_BAUD },
+#endif
+#if CYGHWR_HAL_ARM_PXA2X0_STUART != 0
+ { (cyg_uint8*)PXA2X0_STUART_BASE, 1000,
+ CYGNUM_HAL_INTERRUPT_STUART, CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_BAUD },
+#endif
+};
+
+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;
+ int ret = -1;
+ cyg_uint8 ier;
+ va_list ap;
+
+ CYGARC_HAL_SAVE_GP();
+ va_start(ap, __func);
+
+ switch (__func) {
+ case __COMMCTL_GETBAUD:
+ ret = chan->baud_rate;
+ break;
+ case __COMMCTL_SETBAUD:
+ chan->baud_rate = va_arg(ap, cyg_int32);
+ // Should we verify this value here?
+ init_channel(chan);
+ ret = 0;
+ break;
+ case __COMMCTL_IRQ_ENABLE:
+ HAL_INTERRUPT_UNMASK(chan->isr_vector);
+ HAL_INTERRUPT_SET_LEVEL(chan->isr_vector, 1);
+ HAL_READ_UINT8(chan->base+PXA2X0_UART_IER, ier);
+ ier |= PXA2X0_UART_IER_RAVIE;
+ HAL_WRITE_UINT8(chan->base+PXA2X0_UART_IER, ier);
+ irq_state = 1;
+ break;
+ case __COMMCTL_IRQ_DISABLE:
+ ret = irq_state;
+ irq_state = 0;
+ HAL_INTERRUPT_MASK(chan->isr_vector);
+ HAL_READ_UINT8(chan->base+PXA2X0_UART_IER, ier);
+ ier &= ~PXA2X0_UART_IER_RAVIE;
+ HAL_WRITE_UINT8(chan->base+PXA2X0_UART_IER, ier);
+ break;
+ case __COMMCTL_DBG_ISR_VECTOR:
+ ret = chan->isr_vector;
+ break;
+ case __COMMCTL_SET_TIMEOUT:
+ ret = chan->msec_timeout;
+ chan->msec_timeout = va_arg(ap, cyg_uint32);
+ break;
+ default:
+ break;
+ }
+ va_end(ap);
+ CYGARC_HAL_RESTORE_GP();
+ return ret;
+}
+
+static int
+cyg_hal_plf_serial_isr(void *__ch_data, int* __ctrlc,
+ CYG_ADDRWORD __vector, CYG_ADDRWORD __data)
+{
+ channel_data_t* chan = (channel_data_t*)__ch_data;
+ cyg_uint8 iir;
+ int res = 0;
+ CYGARC_HAL_SAVE_GP();
+
+ HAL_READ_UINT8(chan->base+PXA2X0_UART_IIR, iir);
+ iir &= PXA2X0_UART_IIR_ID_MASK;
+
+ *__ctrlc = 0;
+ if ( iir == 0x04 ) {
+ cyg_uint8 c, lsr;
+ HAL_READ_UINT8(chan->base+PXA2X0_UART_LSR, lsr);
+ if (lsr & PXA2X0_UART_LSR_DR) {
+
+ HAL_READ_UINT8(chan->base+PXA2X0_UART_RBR, c);
+
+ if( cyg_hal_is_break( &c , 1 ) )
+ *__ctrlc = 1;
+ }
+
+ // Acknowledge the interrupt
+ HAL_INTERRUPT_ACKNOWLEDGE(chan->isr_vector);
+ 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);
+ int i;
+
+ // Init channels
+#define NUMOF(x) (sizeof(x)/sizeof(x[0]))
+ for (i = 0; i < NUMOF(ser_channels); i++) {
+ init_channel(&ser_channels[i]);
+ CYGACC_CALL_IF_SET_CONSOLE_COMM(i);
+ comm = CYGACC_CALL_IF_CONSOLE_PROCS();
+ CYGACC_COMM_IF_CH_DATA_SET(*comm, &ser_channels[i]);
+ 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();
+}
+
+/*---------------------------------------------------------------------------*/
+/* End of hal_diag.c */
diff --git a/ecos/packages/hal/arm/xscale/pxa2x0/current/src/pxa2x0_misc.c b/ecos/packages/hal/arm/xscale/pxa2x0/current/src/pxa2x0_misc.c
new file mode 100644
index 0000000..50f925c
--- /dev/null
+++ b/ecos/packages/hal/arm/xscale/pxa2x0/current/src/pxa2x0_misc.c
@@ -0,0 +1,417 @@
+//==========================================================================
+//
+// pxa2x0_misc.c
+//
+// HAL misc board support code for Intel PXA2X0
+//
+//==========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//==========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): <knud.woehler@microplex.de>
+// Date: 2002-09-03
+//
+//####DESCRIPTIONEND####
+//
+//========================================================================*/
+
+#include <pkgconf/hal.h>
+#include <pkgconf/system.h>
+#include CYGBLD_HAL_PLATFORM_H
+#include <cyg/infra/cyg_type.h>
+#include <cyg/infra/cyg_trac.h>
+#include <cyg/infra/cyg_ass.h>
+#include <cyg/hal/hal_misc.h>
+#include <cyg/hal/hal_io.h>
+#include <cyg/hal/hal_stub.h>
+#include <cyg/hal/hal_arch.h>
+#include <cyg/hal/hal_diag.h>
+#include <cyg/hal/hal_intr.h>
+#include <cyg/hal/hal_cache.h>
+#include <cyg/hal/hal_pxa2x0.h>
+#include <cyg/hal/hal_mm.h>
+#include <cyg/infra/diag.h>
+
+
+// Initialize the interrupt environment
+externC void plf_hardware_init(void);
+
+void hal_hardware_init(void)
+{
+ hal_xscale_core_init();
+
+ *PXA2X0_ICMR = 0; // IRQ Mask
+ *PXA2X0_ICLR = 0; // Route interrupts to IRQ
+ *PXA2X0_ICCR = 1;
+
+ *PXA2X0_GRER0 = 0; // Disable rising edge detect
+ *PXA2X0_GRER1 = 0;
+ *PXA2X0_GRER2 = 0;
+
+ *PXA2X0_GFER0 = 0; // Disable falling edge detect
+ *PXA2X0_GFER1 = 0;
+ *PXA2X0_GFER2 = 0;
+
+#if defined(CYGOPT_HAL_ARM_XSCALE_PXA2X0_VARIANT_PXA25X)
+ *PXA2X0_GEDR0 = 0xffffffff; // Clear edge detect status
+ *PXA2X0_GEDR1 = 0xffffffff;
+ *PXA2X0_GEDR2 = 0x0001ffff;
+#elif defined(CYGOPT_HAL_ARM_XSCALE_PXA2X0_VARIANT_PXA27X)
+ *PXA2X0_ICMR2 = 0;
+ *PXA2X0_ICLR2 = 0;
+
+ *PXA2X0_GRER3 = 0;
+ *PXA2X0_GFER3 = 0;
+
+ *PXA2X0_GEDR0 = 0xfffff71b;
+ *PXA2X0_GEDR1 = 0xffffffff;
+ *PXA2X0_GEDR2 = 0xffffffff;
+ *PXA2X0_GEDR3 = 0x1fffffff;
+#endif
+
+ plf_hardware_init(); // Perform any platform specific initializations
+
+ *PXA2X0_OSCR = 0; // Let the "OS" counter run
+ *PXA2X0_OSMR0 = 0;
+
+#ifdef CYGSEM_HAL_ENABLE_DCACHE_ON_STARTUP
+ HAL_DCACHE_ENABLE(); // Enable caches
+#endif
+#ifdef CYGSEM_HAL_ENABLE_ICACHE_ON_STARTUP
+ HAL_ICACHE_ENABLE();
+#endif
+}
+
+//
+// GPIO support functions
+//
+void
+_pxa2x0_set_GPIO_mode(int bit, int mode, int dir)
+{
+ int bank = bit / 32;
+ unsigned volatile long *gpdr, *gafr;
+
+ gpdr = &PXA2X0_GPDR0[bank];
+ gafr = &PXA2X0_GAFR0_L[(bit&0x30)>>4];
+ bit %= 32;
+ // Data direction registers have 1 bit per GPIO
+ *gpdr = (*gpdr & ~(1<<bit)) | (dir<<bit);
+ // Alternate function regusters have 2 bits per GPIO
+ bit = (bit & 0x0F) * 2;
+ *gafr = (*gafr & ~(3<<bit)) | (mode<<bit);
+}
+
+
+// Initialize the clock
+static cyg_uint32 clock_period;
+
+void hal_clock_initialize(cyg_uint32 period)
+{
+ *PXA2X0_OSMR0 = period; // Load match value
+ clock_period = period;
+
+ *PXA2X0_OSCR = 0; // Start the counter
+ *PXA2X0_OSSR = PXA2X0_OSSR_TIMER0; // Clear any pending interrupt
+ *PXA2X0_OIER |= PXA2X0_OIER_TIMER0; // Enable timer 0 interrupt
+
+ HAL_INTERRUPT_UNMASK( CYGNUM_HAL_INTERRUPT_TIMER0 ); // Unmask timer 0 interrupt
+}
+
+// This routine is called during a clock interrupt.
+void hal_clock_reset(cyg_uint32 vector, cyg_uint32 period)
+{
+ *PXA2X0_OSMR0 = *PXA2X0_OSCR + period; // Load new match value
+ *PXA2X0_OSSR = PXA2X0_OSSR_TIMER0; // Clear any pending interrupt
+}
+
+// Read the current value of the clock, returning the number of hardware
+// "ticks" that have occurred (i.e. how far away the current value is from
+// the start)
+
+// Note: The "contract" for this function is that the value is the number
+// of hardware clocks that have happened since the last interrupt (i.e.
+// when it was reset). This value is used to measure interrupt latencies.
+// However, since the hardware counter runs freely, this routine computes
+// the difference between the current clock period and the number of hardware
+// ticks left before the next timer interrupt.
+void hal_clock_read(cyg_uint32 *pvalue)
+{
+ int orig;
+ HAL_DISABLE_INTERRUPTS(orig);
+ *pvalue = clock_period + *PXA2X0_OSCR - *PXA2X0_OSMR0;
+ HAL_RESTORE_INTERRUPTS(orig);
+}
+
+// Delay for some number of micro-seconds
+void hal_delay_us(cyg_int32 usecs)
+{
+#if defined(CYGOPT_HAL_ARM_XSCALE_PXA2X0_VARIANT_PXA25X)
+# define NSECS_PER_TICK 271267 /* 3.6865 MHz clock */
+#elif defined(CYGOPT_HAL_ARM_XSCALE_PXA2X0_VARIANT_PXA27X)
+# define NSECS_PER_TICK 307692 /* 3.25 MHz clock */
+#endif
+
+ cyg_uint32 val = 0;
+ cyg_uint32 prev = *PXA2X0_OSCR;
+ while (usecs-- > 0) {
+ while (val < 1000000) {
+ cyg_uint32 now = *PXA2X0_OSCR;
+ cyg_uint32 diff = now - prev;
+ val += NSECS_PER_TICK * diff;
+ prev = now;
+ }
+ val -= 1000000;
+ }
+}
+
+
+// Interrupt handling
+
+// This routine is called to respond to a hardware interrupt (IRQ). It
+// should interrogate the hardware and return the IRQ vector number.
+int hal_IRQ_handler(void)
+{
+ cyg_uint32 sources, index;
+
+ sources = *PXA2X0_ICIP;
+
+#ifdef HAL_EXTENDED_IRQ_HANDLER
+ // Use platform specific IRQ handler, if defined
+ // Note: this macro should do a 'return' with the appropriate
+ // interrupt number if such an extended interrupt exists. The
+ // assumption is that the line after the macro starts 'normal' processing.
+ HAL_EXTENDED_IRQ_HANDLER(sources);
+#endif
+
+ if ( sources & 0xff0000 )
+ index = 16;
+ else if ( sources & 0xff00 )
+ index = 8;
+ else if ( sources & 0xff )
+ index = 0;
+ else // if ( sources & 0xff000000 )
+ index = 24;
+
+ do {
+ if ( (1 << index) & sources ) {
+ if (index == CYGNUM_HAL_INTERRUPT_GPIOX) {
+ // Special case of GPIO cascade. Search for lowest set bit
+ sources = *PXA2X0_GEDR0;
+ index = 0;
+ do {
+ if (sources & (1 << index)) {
+ return CYGNUM_HAL_INTERNAL_IRQS + index;
+ }
+ index++;
+ } while (index < 32);
+ sources = *PXA2X0_GEDR1;
+ index = 0;
+ do {
+ if (sources & (1 << index)) {
+ return CYGNUM_HAL_INTERNAL_IRQS + 32 + index;
+ }
+ index++;
+ } while (index < 32);
+ sources = *PXA2X0_GEDR2;
+ index = 0;
+ do {
+ if (sources & (1 << index)) {
+ return CYGNUM_HAL_INTERNAL_IRQS + 64 + index;
+ }
+ index++;
+ } while (index < 32);
+#ifdef CYGOPT_HAL_ARM_XSCALE_PXA2X0_VARIANT_PXA27X
+ sources = *PXA2X0_GEDR3;
+ index = 0;
+ do {
+ if (sources & (1 << index)) {
+ return CYGNUM_HAL_INTERNAL_IRQS + 96 + index;
+ }
+ index++;
+ } while (index < 32);
+#endif
+ }
+ return index;
+ }
+ index++;
+ } while ( index & 7 );
+
+ return CYGNUM_HAL_INTERRUPT_NONE; // This shouldn't happen!
+}
+
+void hal_interrupt_mask(int vector)
+{
+
+#ifdef HAL_EXTENDED_INTERRUPT_MASK
+ // Use platform specific handling, if defined
+ // Note: this macro should do a 'return' for "extended" values of 'vector'
+ // Normal vectors are handled by code subsequent to the macro call.
+ HAL_EXTENDED_INTERRUPT_MASK(vector);
+#endif
+#ifdef CYGOPT_HAL_ARM_XSCALE_PXA2X0_VARIANT_PXA27X
+ if (vector >= 32 && vector < CYGNUM_HAL_INTERNAL_IRQS) {
+ *PXA2X0_ICMR2 &= ~(1 << (vector - 32));
+ return;
+ }
+#endif
+ if (vector >= CYGNUM_HAL_INTERRUPT_GPIO(2)) {
+ vector = CYGNUM_HAL_INTERRUPT_GPIOX;
+ }
+ *PXA2X0_ICMR &= ~(1 << vector);
+}
+
+void hal_interrupt_unmask(int vector)
+{
+
+#ifdef HAL_EXTENDED_INTERRUPT_UNMASK
+ // Use platform specific handling, if defined
+ // Note: this macro should do a 'return' for "extended" values of 'vector'
+ // Normal vectors are handled by code subsequent to the macro call.
+ HAL_EXTENDED_INTERRUPT_UNMASK(vector);
+#endif
+#ifdef CYGOPT_HAL_ARM_XSCALE_PXA2X0_VARIANT_PXA27X
+ if (vector >= 32 && vector < CYGNUM_HAL_INTERNAL_IRQS) {
+ *PXA2X0_ICMR2 |= (1 << (vector - 32));
+ return;
+ }
+#endif
+ if (vector >= CYGNUM_HAL_INTERRUPT_GPIO(2)) {
+ vector = CYGNUM_HAL_INTERRUPT_GPIOX;
+ }
+ *PXA2X0_ICMR |= (1 << vector);
+}
+
+void hal_interrupt_acknowledge(int vector)
+{
+
+#ifdef HAL_EXTENDED_INTERRUPT_ACKNOWLEDGE
+ // Use platform specific handling, if defined
+ // Note: this macro should do a 'return' for "extended" values of 'vector'
+ // Normal vectors are handled by code subsequent to the macro call.
+ HAL_EXTENDED_INTERRUPT_ACKNOWLEDGE(vector);
+#endif
+ if (vector == CYGNUM_HAL_INTERRUPT_GPIO0 || vector == CYGNUM_HAL_INTERRUPT_GPIO1) {
+ *PXA2X0_GEDR0 = (1 << (vector - 8));
+ } else {
+#ifdef CYGOPT_HAL_ARM_XSCALE_PXA2X0_VARIANT_PXA27X
+ if (vector >= CYGNUM_HAL_INTERRUPT_GPIO(96)) {
+ *PXA2X0_GEDR3 = (1 << (vector - CYGNUM_HAL_INTERNAL_IRQS - 96));
+ } else
+#endif
+ if (vector >= CYGNUM_HAL_INTERRUPT_GPIO(64)) {
+ *PXA2X0_GEDR2 = (1 << (vector - CYGNUM_HAL_INTERNAL_IRQS - 64));
+ } else if (vector >= CYGNUM_HAL_INTERRUPT_GPIO(32)) {
+ *PXA2X0_GEDR1 = (1 << (vector - CYGNUM_HAL_INTERNAL_IRQS - 32));
+ } else if (vector >= CYGNUM_HAL_INTERRUPT_GPIO(2)) {
+ *PXA2X0_GEDR0 = (1 << (vector - CYGNUM_HAL_INTERNAL_IRQS));
+ } else {
+ // Not a GPIO interrupt
+ return;
+ }
+ }
+}
+
+void hal_interrupt_configure(int vector, int level, int up)
+{
+ cyg_bool falling = level || !up;
+ cyg_bool rising = level || up;
+
+#ifdef HAL_EXTENDED_INTERRUPT_CONFIGURE
+ // Use platform specific handling, if defined
+ // Note: this macro should do a 'return' for "extended" values of 'vector'
+ // Normal vectors are handled by code subsequent to the macro call.
+ HAL_EXTENDED_INTERRUPT_CONFIGURE(vector, level, up);
+#endif
+#ifdef CYGOPT_HAL_ARM_XSCALE_PXA2X0_VARIANT_PXA27X
+ if (vector >= CYGNUM_HAL_INTERRUPT_GPIO(96)) {
+ if (falling)
+ *PXA2X0_GFER3 |= (1 << (vector - CYGNUM_HAL_INTERNAL_IRQS - 96));
+ else
+ *PXA2X0_GFER3 &= ~(1 << (vector - CYGNUM_HAL_INTERNAL_IRQS - 96));
+ if (rising)
+ *PXA2X0_GRER3 |= (1 << (vector - CYGNUM_HAL_INTERNAL_IRQS - 96));
+ else
+ *PXA2X0_GRER3 &= ~(1 << (vector - CYGNUM_HAL_INTERNAL_IRQS - 96));
+ } else
+#endif
+ if (vector >= CYGNUM_HAL_INTERRUPT_GPIO(64)) {
+ if (falling)
+ *PXA2X0_GFER2 |= (1 << (vector - CYGNUM_HAL_INTERNAL_IRQS - 64));
+ else
+ *PXA2X0_GFER2 &= ~(1 << (vector - CYGNUM_HAL_INTERNAL_IRQS - 64));
+ if (rising)
+ *PXA2X0_GRER2 |= (1 << (vector - CYGNUM_HAL_INTERNAL_IRQS - 64));
+ else
+ *PXA2X0_GRER2 &= ~(1 << (vector - CYGNUM_HAL_INTERNAL_IRQS - 64));
+ } else if (vector >= CYGNUM_HAL_INTERRUPT_GPIO(32)) {
+ if (falling)
+ *PXA2X0_GFER1 |= (1 << (vector - CYGNUM_HAL_INTERNAL_IRQS - 32));
+ else
+ *PXA2X0_GFER1 &= ~(1 << (vector - CYGNUM_HAL_INTERNAL_IRQS - 32));
+ if (rising)
+ *PXA2X0_GRER1 |= (1 << (vector - CYGNUM_HAL_INTERNAL_IRQS - 32));
+ else
+ *PXA2X0_GRER1 &= ~(1 << (vector - CYGNUM_HAL_INTERNAL_IRQS - 32));
+ } else if (vector >= CYGNUM_HAL_INTERRUPT_GPIO(2)) {
+ if (falling)
+ *PXA2X0_GFER0 |= (1 << (vector - CYGNUM_HAL_INTERNAL_IRQS));
+ else
+ *PXA2X0_GFER0 &= ~(1 << (vector - CYGNUM_HAL_INTERNAL_IRQS));
+ if (rising)
+ *PXA2X0_GRER0 |= (1 << (vector - CYGNUM_HAL_INTERNAL_IRQS));
+ else
+ *PXA2X0_GRER0 &= ~(1 << (vector - CYGNUM_HAL_INTERNAL_IRQS));
+ } else if (vector == CYGNUM_HAL_INTERRUPT_GPIO0 || vector == CYGNUM_HAL_INTERRUPT_GPIO1) {
+ if (falling)
+ *PXA2X0_GFER0 |= (1 << (vector - 8));
+ else
+ *PXA2X0_GFER0 &= ~(1 << (vector - 8));
+ if (rising)
+ *PXA2X0_GRER0 |= (1 << (vector - 8));
+ else
+ *PXA2X0_GRER0 &= ~(1 << (vector - 8));
+ }
+}
+
+void hal_interrupt_set_level(int vector, int level)
+{
+
+#ifdef HAL_EXTENDED_INTERRUPT_SET_LEVEL
+ // Use platform specific handling, if defined
+ // Note: this macro should do a 'return' for "extended" values of 'vector'
+ // Normal vectors are handled by code subsequent to the macro call.
+ HAL_EXTENDED_INTERRUPT_SET_LEVEL(vector, level);
+#endif
+}
+
diff --git a/ecos/packages/hal/arm/xscale/uE250/current/ChangeLog b/ecos/packages/hal/arm/xscale/uE250/current/ChangeLog
new file mode 100644
index 0000000..9a6e779
--- /dev/null
+++ b/ecos/packages/hal/arm/xscale/uE250/current/ChangeLog
@@ -0,0 +1,130 @@
+2009-10-16 John Dallaway <john@dallaway.org.uk>
+
+ * cdl/hal_arm_xscale_uE250.cdl: Parent under
+ CYGPKG_HAL_ARM_XSCALE_PXA2X0.
+
+2009-01-31 Bart Veer <bartv@ecoscentric.com>
+
+ * cdl/hal_arm_xscale_uE250.cdl: update compiler flags for gcc 4.x
+
+2009-01-24 Bart Veer <bartv@ecoscentric.com>
+
+ * cdl/hal_arm_xscale_uE250.cdl: switch from arm-elf-gcc to
+ arm-eabi-gcc.
+
+2009-01-24 Bart Veer <bartv@ecoscentric.com>
+
+ * src/vga_support.c: fix build problem with latest toolchains.
+
+2003-09-21 Gary Thomas <gary@mlbassoc.com>
+
+ * misc/redboot_RAM.ecm:
+ * misc/redboot_ROM.ecm: Adjust for changes in RedBoot
+ template - DNS now must be enabled manually.
+
+2003-09-20 Gary Thomas <gary@mlbassoc.com>
+
+ * src/uE250_ide.c: IDE init needs to return number of controllers found.
+
+2003-08-08 Gary Thomas <gary@mind.be>
+
+ * src/uE250_pci.c:
+ * src/uE250_misc.c: Improve PCI initialization, including support
+ for external bus masters.
+
+ * include/plf_io.h: Define CYGARC_PCI_DMA_ADDRESS()
+
+2003-05-28 Gary Thomas <gary@mind.be>
+
+ * src/xilinx-load.c: Improve feedback during FPGA downloads.
+
+2003-03-08 Gary Thomas <gary@mind.be>
+
+ * include/pkgconf/mlt_arm_xscale_uE250_ram.mlt:
+ * include/pkgconf/mlt_arm_xscale_uE250_ram.ldi:
+ * include/pkgconf/mlt_arm_xscale_uE250_ram.h: RAM limits were wrong.
+
+2003-02-28 Gary Thomas <gary@mind.be>
+
+ * cdl/hal_arm_xscale_uE250.cdl: Fix machine type - used by Linux.
+
+2003-02-26 Gary Thomas <gary@mind.be>
+
+ * misc/redboot_ROM.ecm:
+ * misc/redboot_RAM.ecm: Update - larger RedBoot image now required.
+
+2003-02-25 Gary Thomas <gary@mind.be>
+
+ * src/vga_support.c (vga_on): Fix screen enable/disable code.
+
+ * src/uE250_pci.c: Initialize super I/O chip - used for legacy devices.
+
+ * src/font.h:
+ * src/banner.xpm:
+ * src/vga_support.c:
+ * include/vga_support.h: New file(s) for VGA console support.
+
+ * src/uE250_plx.c:
+ * cdl/hal_arm_xscale_uE250.cdl: Add support for console using VGA+PS/2.
+
+2003-02-24 Gary Thomas <gary@mind.be>
+
+ * include/plx.h: Clean up unused code.
+
+ * src/uE250_pci.c:
+ * src/uE250_misc.c:
+ * include/plf_io.h:
+ * include/hal_plf_ints.h: Support interrupts via PCI bus.
+
+2003-02-04 Gary Thomas <gary@mind.be>
+
+ * src/xilinx-load.c:
+ * src/uE250_plx.c:
+ * src/uE250_pci.c:
+ * src/uE250_misc.c:
+ * src/uE250_ide.c:
+ * src/uE250_plx_bitstream.h:
+ * src/uE250_pci_bitstream.h:
+ * misc/redboot_ROM.ecm:
+ * misc/redboot_RAM.ecm:
+ * include/pkgconf/mlt_arm_xscale_uE250_romram.mlt:
+ * include/pkgconf/mlt_arm_xscale_uE250_romram.ldi:
+ * include/pkgconf/mlt_arm_xscale_uE250_romram.h:
+ * include/pkgconf/mlt_arm_xscale_uE250_rom.mlt:
+ * include/pkgconf/mlt_arm_xscale_uE250_rom.ldi:
+ * include/pkgconf/mlt_arm_xscale_uE250_rom.h:
+ * include/pkgconf/mlt_arm_xscale_uE250_ram.mlt:
+ * include/pkgconf/mlt_arm_xscale_uE250_ram.ldi:
+ * include/pkgconf/mlt_arm_xscale_uE250_ram.h:
+ * include/uE250.h:
+ * include/plx.h:
+ * include/plf_mmap.h:
+ * include/hal_plf_ints.h:
+ * include/plf_io.h:
+ * include/hal_platform_setup.h:
+ * cdl/hal_arm_xscale_uE250.cdl:
+ New package - support for NMI uE250 (Xscale PXA250) platform.
+
+//===========================================================================
+// ####GPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002, 2009 Free Software Foundation, Inc.
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 2 or (at your option) any
+// later version.
+//
+// This program is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the
+// Free Software Foundation, Inc., 51 Franklin Street,
+// Fifth Floor, Boston, MA 02110-1301, USA.
+// -------------------------------------------
+// ####GPLCOPYRIGHTEND####
+//===========================================================================
diff --git a/ecos/packages/hal/arm/xscale/uE250/current/cdl/hal_arm_xscale_uE250.cdl b/ecos/packages/hal/arm/xscale/uE250/current/cdl/hal_arm_xscale_uE250.cdl
new file mode 100644
index 0000000..b97c683
--- /dev/null
+++ b/ecos/packages/hal/arm/xscale/uE250/current/cdl/hal_arm_xscale_uE250.cdl
@@ -0,0 +1,430 @@
+# ====================================================================
+#
+# hal_arm_xscale_uE250.cdl
+#
+# NMI uEngine uE250 platform HAL package configuration data
+#
+# ====================================================================
+## ####ECOSGPLCOPYRIGHTBEGIN####
+## -------------------------------------------
+## This file is part of eCos, the Embedded Configurable Operating System.
+## Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2009 Free Software Foundation, Inc.
+##
+## eCos is free software; you can redistribute it and/or modify it under
+## the terms of the GNU General Public License as published by the Free
+## Software Foundation; either version 2 or (at your option) any later
+## version.
+##
+## eCos is distributed in the hope that it will be useful, but WITHOUT
+## ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+## FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+## for more details.
+##
+## You should have received a copy of the GNU General Public License
+## along with eCos; if not, write to the Free Software Foundation, Inc.,
+## 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+##
+## As a special exception, if other files instantiate templates or use
+## macros or inline functions from this file, or you compile this file
+## and link it with other works to produce a work based on this file,
+## this file does not by itself cause the resulting work to be covered by
+## the GNU General Public License. However the source code for this file
+## must still be made available in accordance with section (3) of the GNU
+## General Public License v2.
+##
+## This exception does not invalidate any other reasons why a work based
+## on this file might be covered by the GNU General Public License.
+## -------------------------------------------
+## ####ECOSGPLCOPYRIGHTEND####
+# ====================================================================
+######DESCRIPTIONBEGIN####
+#
+# Author(s): msalter
+# Contributors: hmt
+# Date: 2001-12-03
+#
+#####DESCRIPTIONEND####
+#
+# ====================================================================
+cdl_package CYGPKG_HAL_ARM_XSCALE_UE250 {
+ display "uEngine 250"
+ parent CYGPKG_HAL_ARM_XSCALE_PXA2X0
+ hardware
+ include_dir cyg/hal
+ define_header hal_arm_xscale_uE250.h
+ description "
+ This HAL platform package provides
+ support for the NMI uPCI with a uEngine uE250 CPU board."
+
+ compile uE250_misc.c uE250_pci.c uE250_ide.c uE250_plx.c
+
+ implements CYGINT_HAL_DEBUG_GDB_STUBS
+ implements CYGINT_HAL_DEBUG_GDB_STUBS_BREAK
+ implements CYGINT_HAL_VIRTUAL_VECTOR_SUPPORT
+ # implements CYGINT_HAL_ARM_MEM_REAL_REGION_TOP
+ implements CYGINT_HAL_VIRTUAL_VECTOR_COMM_BAUD_SUPPORT
+ implements CYGINT_HAL_PLF_IF_IDE
+ implements CYGHWR_HAL_ARM_PXA2X0_BTUART
+
+ 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_xscale_pxa2x0.h>"
+ puts $::cdl_system_header "#define CYGBLD_HAL_PLATFORM_H <pkgconf/hal_arm_xscale_uE250.h>"
+ puts $::cdl_header "#define CYGBLD_HAL_PLF_INTS_H <cyg/hal/hal_plf_ints.h>"
+ puts $::cdl_header "#define HAL_PLATFORM_CPU \"XScale PXA250\""
+ puts $::cdl_header "#define HAL_PLATFORM_BOARD \"NMI uEngine uE250\""
+ puts $::cdl_header "#define HAL_PLATFORM_EXTRA \"\""
+ puts $::cdl_header "#define HAL_PLATFORM_MACHINE_TYPE 257"
+ puts $::cdl_header "#define CYGHWR_REDBOOT_ARM_TRAMPOLINE_ADDRESS 0x00001f00"
+ }
+
+ cdl_component CYG_HAL_STARTUP {
+ display "Startup type"
+ flavor data
+ default_value {"RAM"}
+ legal_values {"RAM" "ROM" "ROMRAM"}
+ no_define
+ define -file system.h CYG_HAL_STARTUP
+ description "
+ When targeting the uE250 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 onboard
+ debug software such as Angel or eCos GDB stubs. Select 'ROM'
+ when building a stand-alone application which will be put
+ into ROM. 'ROMRAM' will build a version suitable for system
+ startup code (in FLASH/ROM), which is immediately copied into
+ RAM for improved performance."
+ }
+
+ cdl_component CYGSEM_UE250_VGA_SUPPORT {
+ display "Support LCD"
+ flavor bool
+ default_value 1
+ compile vga_support.c
+ description "
+ Enabling this option will enable the use the VGA/CRT as a
+ simple framebuffer, suitable for use with a windowing
+ package."
+
+ cdl_component CYGSEM_UE250_VGA_COMM {
+ display "Support VGA/keyboard for comminication channel"
+ active_if CYGPKG_REDBOOT
+ flavor bool
+ default_value 1
+ description "
+ Enabling this option will use the LCD/CRT and keyboard for a
+ communications channel, suitable for RedBoot, etc."
+
+ cdl_option CYGNUM_UE250_VGA_COMM_FONT_SIZE {
+ display "VGA console font size"
+ flavor data
+ legal_values 8 16
+ default_value 16
+ description "
+ This option selects which size font, and ultimately the
+ number of displayable characters, to be used on the VGA."
+ }
+
+ cdl_option CYGOPT_UE250_VGA_COMM_LOGO {
+ display "Logo location"
+ flavor booldata
+ legal_values { "TOP" "BOTTOM" }
+ default_value { "TOP" }
+ description "
+ Use this option to control where the logo is placed
+ on the VGA/CRT screen."
+ }
+ }
+ }
+
+ cdl_option CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_BAUD {
+ display "Diagnostic serial port baud rate"
+ flavor data
+ legal_values 9600 19200 38400 57600 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 57600 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 1+CYGSEM_UE250_VGA_COMM
+ description "
+ Channel 0 is the only serial port on the board."
+ }
+
+ cdl_option CYGNUM_HAL_VIRTUAL_VECTOR_DEBUG_CHANNEL {
+ display "Debug serial port"
+ active_if CYGPRI_HAL_VIRTUAL_VECTOR_DEBUG_CHANNEL_CONFIGURABLE
+ flavor data
+ legal_values 0 to CYGNUM_HAL_VIRTUAL_VECTOR_COMM_CHANNELS-1
+ default_value 0
+ description "
+ The UE250 has only one serial port."
+ }
+
+ 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 0
+ }
+
+ cdl_option CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL {
+ display "Diagnostic serial port"
+ active_if CYGPRI_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_CONFIGURABLE
+ flavor data
+ legal_values 0 to CYGNUM_HAL_VIRTUAL_VECTOR_COMM_CHANNELS-1
+ default_value CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_DEFAULT
+ description "
+ The UE250 has only one serial port."
+ }
+
+ cdl_component CYGSEM_HAL_LOAD_FPGAS {
+ display "Download bitstreams to various FPGA devices"
+ default_value { CYG_HAL_STARTUP != "RAM" }
+ requires CYGPKG_COMPRESS_ZLIB
+ compile xilinx-load.c
+ description "
+ Enabling this option will include code to download new
+ firmware (bitstream data) to various FPGA devices contained
+ within the system. Sub-options control which devices are
+ downloaded, etc."
+
+ cdl_option CYGSEM_HAL_LOAD_PCI_FPGA {
+ display "Download firmware for PCI controller"
+ active_if CYGPKG_IO_PCI
+ default_value 1
+ description "
+ This option will cause the firmware for the PCI controller
+ to be downloaded during system initialization."
+ }
+
+ cdl_option CYGSEM_HAL_LOAD_VGA_FPGA {
+ display "Download firmware for VGA controller"
+ active_if CYGPKG_IO_PCI
+ default_value 1
+ description "
+ This option will cause the firmware for the VGA controller
+ to be downloaded during system initialization."
+ }
+ }
+
+ 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-eabi"}
+ 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 { CYGBLD_GLOBAL_WARNFLAGS . CYGBLD_ARCH_CFLAGS .
+ " -mcpu=xscale -g -O2 -ffunction-sections -fdata-sections -fno-rtti -fno-exceptions -mapcs-frame -fno-builtin" }
+ 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 { CYGBLD_ARCH_LDFLAGS . "-mcpu=xscale -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" || CYG_HAL_STARTUP == "ROMRAM" }
+ 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) --remove-section=.fixed_vectors -O binary $< $@
+ }
+ }
+ }
+
+ cdl_component CYGPKG_HAL_ARM_XSCALE_UE250_OPTIONS {
+ display "NMI uEngine uE250 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_XSCALE_UE250_CFLAGS_ADD {
+ display "Additional compiler flags"
+ flavor data
+ no_define
+ default_value { "" }
+ description "
+ This option modifies the set of compiler flags for
+ building the XScale UE250 HAL. These flags are used in addition
+ to the set of global flags."
+ }
+
+ cdl_option CYGPKG_HAL_ARM_XSCALE_UE250_CFLAGS_REMOVE {
+ display "Suppressed compiler flags"
+ flavor data
+ no_define
+ default_value { "" }
+ description "
+ This option modifies the set of compiler flags for
+ building the XScale UE250 HAL. These flags are removed from
+ the set of global flags if present."
+ }
+
+ cdl_option CYGNUM_HAL_BREAKPOINT_LIST_SIZE {
+ display "Number of breakpoints supported by the HAL."
+ flavor data
+ default_value 32
+ description "
+ This option determines the number of breakpoints supported by the HAL."
+ }
+ }
+
+ cdl_component CYGHWR_MEMORY_LAYOUT {
+ display "Memory layout"
+ flavor data
+ no_define
+ calculated { CYG_HAL_STARTUP == "RAM" ? "arm_xscale_uE250_ram" : \
+ CYG_HAL_STARTUP == "ROMRAM" ? "arm_xscale_uE250.romram" : \
+ CYG_HAL_STARTUP == "ROM" ? "arm_xscale_uE250_rom" : "BOGUS.mlt" }
+
+ 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_xscale_uE250_ram.ldi>" : \
+ CYG_HAL_STARTUP == "ROMRAM" ? "<pkgconf/mlt_arm_xscale_uE250_romram.ldi>" : \
+ CYG_HAL_STARTUP == "ROM" ? "<pkgconf/mlt_arm_xscale_uE250_rom.ldi>" : "BOGUS.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_xscale_uE250_ram.h>" : \
+ CYG_HAL_STARTUP == "ROMRAM" ? "<pkgconf/mlt_arm_xscale_uE250_romram.h>" : \
+ CYG_HAL_STARTUP == "ROM" ? "<pkgconf/mlt_arm_xscale_uE250_rom.h>" : "BOGUS.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" || CYG_HAL_STARTUP == "ROMRAM" }
+ 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 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_REDBOOT_HAL_OPTIONS {
+ display "Redboot HAL options"
+ flavor none
+ no_define
+ parent CYGPKG_REDBOOT
+ active_if CYGPKG_REDBOOT
+ description "
+ This option lists the target's requirements for a valid Redboot
+ configuration."
+
+ # compile -library=libextras.a redboot_cmds.c
+
+ 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."
+
+ # compile -library=libextras.a redboot_cmds.c
+
+ make -priority 325 {
+ <PREFIX>/bin/redboot.bin : <PREFIX>/bin/redboot.elf
+ $(OBJCOPY) --strip-debug $< $(@:.bin=.img)
+ $(OBJCOPY) -O srec $< $(@:.bin=.srec)
+ $(OBJCOPY) -O binary $< $@
+ }
+ }
+ }
+
+}
diff --git a/ecos/packages/hal/arm/xscale/uE250/current/include/hal_platform_setup.h b/ecos/packages/hal/arm/xscale/uE250/current/include/hal_platform_setup.h
new file mode 100644
index 0000000..776e9c9
--- /dev/null
+++ b/ecos/packages/hal/arm/xscale/uE250/current/include/hal_platform_setup.h
@@ -0,0 +1,310 @@
+#ifndef CYGONCE_HAL_PLATFORM_SETUP_H
+#define CYGONCE_HAL_PLATFORM_SETUP_H
+
+/*=============================================================================
+//
+// hal_platform_setup.h
+//
+// Platform specific support for HAL (assembly code)
+//
+//=============================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================*/
+
+#include <pkgconf/system.h> // System-wide configuration info
+#include CYGBLD_HAL_VARIANT_H // Variant specific configuration
+#include CYGBLD_HAL_PLATFORM_H // Platform specific configuration
+#include <cyg/hal/hal_pxa2x0.h> // Variant specific hardware definitions
+#include <cyg/hal/hal_mmu.h> // MMU definitions
+#include <cyg/hal/hal_mm.h> // more MMU definitions
+#include <cyg/hal/uE250.h> // Platform specific hardware definitions
+#include <cyg/hal/hal_spd.h>
+
+#define MDCNFG_VALUE 0x03001BC9
+// #define MDCNFG_VALUE 0x00001BC9
+#define MDMRS_VALUE 0x00000000
+#define MDREFR_VALUE_1 0x00494030
+#define MDREFR_VALUE_2 0x00094030
+#define MDREFR_VALUE_3 0x0009C030
+
+#define GPCR0_VALUE 0xFFFFFFFF
+#define GPCR1_VALUE 0xFFFFFFFF
+#define GPCR2_VALUE 0xFFFFFFFF
+
+#define GPSR0_VALUE 0x00028000
+#define GPSR1_VALUE 0x00002122
+#define GPSR2_VALUE 0x0001C000
+
+#define GPDR0_VALUE 0x03E3A080
+#define GPDR1_VALUE 0x00FFA963
+#define GPDR2_VALUE 0x0001C000
+
+#define GAFR0_L_VALUE 0x88000000
+#define GAFR0_U_VALUE 0x001A8010
+#define GAFR1_L_VALUE 0x90900008
+#define GAFR1_U_VALUE 0x0005AAAA
+#define GAFR2_L_VALUE 0xA0000000
+#define GAFR2_U_VALUE 0x00000002
+
+#define PSSR_VALUE 0x20
+#define MSC0_VALUE_NONBURST 0x2FD0
+#define MSC0_VALUE_BURST 0x22D2
+
+#if defined(CYG_HAL_STARTUP_ROM) || defined(CYG_HAL_STARTUP_ROMRAM)
+#define PLATFORM_SETUP1 _platform_setup1
+// #define PLATFORM_EXTRAS <cyg/hal/hal_platform_extras.h>
+#define CYGHWR_HAL_ARM_HAS_MMU
+
+// This macro represents the initial startup code for the platform
+ .macro _platform_setup1
+ // This is where we wind up immediately after reset. At this point, we
+ // are executing from the boot address (0x00000000), not the eventual
+ // flash address. Do some basic setup using position independent code
+ // then switch to real flash address
+
+// FIXME FIXME FIXME FIXME FIXME FIXME FIXME FIXME FIXME
+// This is a quick and dirty workaround to an apparent gas/ld
+// bug. The computed UNMAPPED_PTR(reset_vector) is off by 0x20.
+ .rept 0x20/4
+ nop
+ .endr
+// FIXME FIXME FIXME FIXME FIXME FIXME FIXME FIXME FIXME
+
+
+ // Set the direction of the LED GPIO's to 'output'
+ // This will disable the LED's (which are on at boot-time, so we
+ // can see we have safely landed here.
+ ldr r1, =PXA2X0_GPDR0
+ ldr r2, =0x00600000
+ str r2, [r1]
+
+
+ // Disable interrupts, by setting the Interrupt Mask Registers to all 0's
+ ldr r1,=PXA2X0_ICMR
+ mov r0,#0
+ str r0,[r1]
+
+ // disable MMU
+ mov r0, #0x0
+ mcr p15, 0, r0, c1, c0, 0
+
+ // flush TLB
+ mov r0, #0x0
+ mcr p15, 0, r0, c8, c7, 0 // Flush TLB
+
+ // flush I&D caches and BTB
+ mov r0, #0x0
+ mcr p15, 0, r0, c7, c7, 0 // Flush caches
+
+ CPWAIT r0
+
+ // Enables access to coprocessor 0 (The only extra coprocessor on the PXA250)
+ ldr r0, =0x00000001
+ mcr p15, 0, r0, c15, c1, 0
+
+ // Disable the IRQ's and FIQ's in the program status register and
+ // enable supervisor mode
+ ldr r0,=(CPSR_IRQ_DISABLE|CPSR_FIQ_DISABLE|CPSR_SUPERVISOR_MODE)
+ msr cpsr, r0
+
+ // Set TURBO mode
+
+ ldr r2, =0x00000321
+ ldr r1, =PXA2X0_CCCR
+ str r2,[r1]
+
+ ldr r1, =0x00000003
+ mcr p14, 0, r1, c6, c0, 0
+
+ // Set-up memory according to NMI specs
+
+ ldr r1,=PXA2X0_RAM_BANK0_BASE
+ ldr r2,[r1]
+ ldr r2,[r1]
+ ldr r2,[r1]
+ ldr r2,[r1]
+ ldr r2,[r1]
+ ldr r2,[r1]
+ ldr r2,[r1]
+ ldr r2,[r1]
+
+ // Set DRAM Configuration Value
+ ldr r1,=PXA2X0_MDCNFG
+ ldr r2,=MDCNFG_VALUE
+ str r2,[r1]
+
+ // Set MDMRS
+ ldr r1,=PXA2X0_MDMRS
+ ldr r2,=MDMRS_VALUE
+ str r2,[r1]
+
+ // Set Refresh Values
+ ldr r1,=PXA2X0_MDREFR
+ ldr r2,=MDREFR_VALUE_1
+ str r2,[r1]
+
+ ldr r1,=PXA2X0_MDREFR
+ ldr r2,=MDREFR_VALUE_2
+ str r2,[r1]
+
+ ldr r1,=PXA2X0_MDREFR
+ ldr r2,=MDREFR_VALUE_3
+ str r2,[r1]
+
+ // Set Static memory registers
+ ldr r1,=PXA2X0_MSC0
+ ldr r2,=MSC0_VALUE_NONBURST
+ str r2,[r1]
+
+ // Setup GPIO clear registers
+ ldr r1, =PXA2X0_GPCR0
+ ldr r2, =(GPCR0_VALUE)
+ str r2, [r1]
+
+ ldr r1, =PXA2X0_GPCR1
+ ldr r2, =(GPCR1_VALUE)
+ str r2, [r1]
+
+ ldr r1, =PXA2X0_GPCR2
+ ldr r2, =(GPCR2_VALUE)
+ str r2, [r1]
+
+ // Setup GPIO set registers
+ ldr r1, =PXA2X0_GPSR0
+ ldr r2, =(GPSR0_VALUE)
+ str r2, [r1]
+
+ ldr r1, =PXA2X0_GPSR1
+ ldr r2, =(GPSR1_VALUE)
+ str r2, [r1]
+
+ ldr r1, =PXA2X0_GPSR2
+ ldr r2, =(GPSR2_VALUE)
+ str r2, [r1]
+
+ // Setup GPIO direction registers
+ ldr r1, =PXA2X0_GPDR0
+ ldr r2, =(GPDR0_VALUE)
+ str r2, [r1]
+
+ ldr r1, =PXA2X0_GPDR1
+ ldr r2, =(GPDR1_VALUE)
+ str r2, [r1]
+
+ ldr r1, =PXA2X0_GPDR2
+ ldr r2, =(GPDR2_VALUE)
+ str r2, [r1]
+
+ // Setup GPIO alternate function registers
+ ldr r1, =PXA2X0_GAFR0_L
+ ldr r2, =(GAFR0_L_VALUE)
+ str r2, [r1]
+
+ ldr r1, =PXA2X0_GAFR0_U
+ ldr r2, =(GAFR0_U_VALUE)
+ str r2, [r1]
+
+ ldr r1, =PXA2X0_GAFR1_L
+ ldr r2, =(GAFR1_L_VALUE)
+ str r2, [r1]
+
+ ldr r1, =PXA2X0_GAFR1_U
+ ldr r2, =(GAFR1_U_VALUE)
+ str r2, [r1]
+
+ ldr r1, =PXA2X0_GAFR2_L
+ ldr r2, =(GAFR2_L_VALUE)
+ str r2, [r1]
+
+ ldr r1, =PXA2X0_GAFR2_U
+ ldr r2, =(GAFR2_U_VALUE)
+ str r2, [r1]
+
+ ldr r1, =PXA2X0_PSSR
+ ldr r2, =(PSSR_VALUE)
+ str r2, [r1]
+
+ // Enable the Icache
+ mrc p15, 0, r0, c1, c0, 0
+ orr r0, r0, #MMU_Control_I
+ mcr p15, 0, r0, c1, c0, 0
+ CPWAIT r0
+
+ // Turn on red led
+ ldr r1,=PXA2X0_GPSR0
+ ldr r2,=0x00200000
+ str r2,[r1]
+
+ // Set up a stack [for calling C code]
+ ldr r1,=__startup_stack
+ ldr r2,=PXA2X0_RAM_BANK0_BASE
+ orr sp,r1,r2
+
+ // Create MMU tables
+ bl hal_mmu_init
+
+ // Turn off red led
+ ldr r1,=PXA2X0_GPCR0
+ ldr r2,=0x00200000
+ str r2,[r1]
+
+ // Enable MMU
+ ldr r2,=10f
+ ldr r1,=MMU_Control_Init|MMU_Control_M
+ mcr MMU_CP,0,r1,MMU_Control,c0
+ mov pc, r2
+ nop
+ nop
+ nop
+
+10:
+ // Turn on green led
+ ldr r1,=PXA2X0_GPSR0
+ ldr r2,=0x00400000
+ str r2,[r1]
+
+ .endm
+
+#else // defined(CYG_HAL_STARTUP_ROM)
+#define PLATFORM_SETUP1
+#endif
+
+#define PLATFORM_VECTORS _platform_vectors
+ .macro _platform_vectors
+ .globl hal_pcsr_cfg_retry
+hal_pcsr_cfg_retry: .long 0 // Boot-time value of PCSR Retry bit.
+ .endm
+
+/*---------------------------------------------------------------------------*/
+/* end of hal_platform_setup.h */
+#endif /* CYGONCE_HAL_PLATFORM_SETUP_H */
diff --git a/ecos/packages/hal/arm/xscale/uE250/current/include/hal_plf_ints.h b/ecos/packages/hal/arm/xscale/uE250/current/include/hal_plf_ints.h
new file mode 100644
index 0000000..d4d541c
--- /dev/null
+++ b/ecos/packages/hal/arm/xscale/uE250/current/include/hal_plf_ints.h
@@ -0,0 +1,137 @@
+#ifndef CYGONCE_HAL_PLF_INTS_H
+#define CYGONCE_HAL_PLF_INTS_H
+//==========================================================================
+//
+// hal_plf_ints.h
+//
+// HAL Platform Interrupt support
+//
+//==========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//==========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): msalter
+// Contributors: msalter
+// Date: 2001-12-03
+// Purpose: Define Interrupt support
+// Description: The interrupt details for a specific platform is defined here.
+// Usage:
+//
+//
+//####DESCRIPTIONEND####
+//
+//==========================================================================
+
+// start with variant ints
+#include <pkgconf/hal.h>
+#include CYGBLD_HAL_VAR_INTS_H
+#include <cyg/hal/plf_io.h>
+
+//----------------------------------------------------------------------------
+// Additional interrupts from PCI & Motherboard
+#define _uPCI_BASE_INTERRUPT (96+17)
+
+#define CYGNUM_HAL_INTERRUPT_PCI_INTA (_uPCI_BASE_INTERRUPT+0)
+#define CYGNUM_HAL_INTERRUPT_PCI_INTB (_uPCI_BASE_INTERRUPT+1)
+#define CYGNUM_HAL_INTERRUPT_PCI_INTC (_uPCI_BASE_INTERRUPT+2)
+#define CYGNUM_HAL_INTERRUPT_PCI_INTD (_uPCI_BASE_INTERRUPT+3)
+#define CYGNUM_HAL_INTERRUPT_PXA (_uPCI_BASE_INTERRUPT+4)
+
+#undef CYGNUM_HAL_ISR_MIN
+#undef CYGNUM_HAL_ISR_MAX
+#define CYGNUM_HAL_ISR_MIN 0
+#define CYGNUM_HAL_ISR_MAX (_uPCI_BASE_INTERRUPT+4)
+
+//----------------------------------------------------------------------------
+// Platform specific interrupt handling
+externC int _uE250_extended_irq(void);
+externC void _uE250_extended_int_mask(int vector);
+externC void _uE250_extended_int_unmask(int vector);
+externC void _uE250_extended_int_acknowledge(int vector);
+externC void _uE250_extended_int_configure(int vector, int level, int up);
+externC void _uE250_extended_int_set_level(int vector, int level);
+
+#define HAL_EXTENDED_IRQ_HANDLER(sources) \
+ if ((sources & (1 << CYGNUM_HAL_INTERRUPT_GPIO1)) != 0) { \
+ int res = _uE250_extended_irq(); \
+ if (res) return res; \
+ };
+#define HAL_EXTENDED_INTERRUPT_MASK(vector) \
+ if (vector >= _uPCI_BASE_INTERRUPT) { \
+ _uE250_extended_int_mask(vector); \
+ return; \
+ }
+#define HAL_EXTENDED_INTERRUPT_UNMASK(vector) \
+ if (vector >= _uPCI_BASE_INTERRUPT) { \
+ _uE250_extended_int_unmask(vector); \
+ return; \
+ }
+#define HAL_EXTENDED_INTERRUPT_ACKNOWLEDGE(vector) \
+ if (vector >= _uPCI_BASE_INTERRUPT) { \
+ _uE250_extended_int_acknowledge(vector); \
+ return; \
+ }
+#define HAL_EXTENDED_INTERRUPT_CONFIGURE(vector, level, up) \
+ if (vector >= _uPCI_BASE_INTERRUPT) { \
+ _uE250_extended_int_configure(vector, level, up); \
+ return; \
+ }
+#define HAL_EXTENDED_INTERRUPT_SET_LEVEL(vector, level) \
+ if (vector >= _uPCI_BASE_INTERRUPT) { \
+ _uE250_extended_int_set_level(vector, level); \
+ return; \
+ }
+
+
+//----------------------------------------------------------------------------
+// Reset.
+#undef HAL_PLATFORM_RESET
+#define HAL_PLATFORM_RESET() \
+ CYG_MACRO_START \
+ cyg_uint32 ctrl; \
+ \
+ /* By disabling interupts we will just hang in the loop below */ \
+ /* if for some reason the software reset fails. */ \
+ HAL_DISABLE_INTERRUPTS(ctrl); \
+ \
+ PCICTL_MISC = PCI_SYSTEM_RESET; \
+ \
+ for(;;); /* hang here forever if reset fails */ \
+ CYG_MACRO_END
+
+// Fallback (never really used)
+#define HAL_PLATFORM_RESET_ENTRY 0x00000000
+
+
+#endif // CYGONCE_HAL_PLF_INTS_H
diff --git a/ecos/packages/hal/arm/xscale/uE250/current/include/pkgconf/mlt_arm_xscale_uE250_ram.h b/ecos/packages/hal/arm/xscale/uE250/current/include/pkgconf/mlt_arm_xscale_uE250_ram.h
new file mode 100644
index 0000000..5f7642d
--- /dev/null
+++ b/ecos/packages/hal/arm/xscale/uE250/current/include/pkgconf/mlt_arm_xscale_uE250_ram.h
@@ -0,0 +1,18 @@
+// eCos memory layout - Fri Oct 20 05:56:24 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 (0x00000000)
+#define CYGMEM_REGION_ram_SIZE (0x04000000)
+#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 (0x3F00000 - (size_t) CYG_LABEL_NAME (__heap1))
+
diff --git a/ecos/packages/hal/arm/xscale/uE250/current/include/pkgconf/mlt_arm_xscale_uE250_ram.ldi b/ecos/packages/hal/arm/xscale/uE250/current/include/pkgconf/mlt_arm_xscale_uE250_ram.ldi
new file mode 100644
index 0000000..d4ac8ba
--- /dev/null
+++ b/ecos/packages/hal/arm/xscale/uE250/current/include/pkgconf/mlt_arm_xscale_uE250_ram.ldi
@@ -0,0 +1,27 @@
+// eCos memory layout - Fri Oct 20 05:56:24 2000
+
+// This is a generated file - do not edit
+
+#include <cyg/infra/cyg_type.inc>
+
+MEMORY
+{
+ ram : ORIGIN = 0x00000000, LENGTH = 0x4000000
+}
+
+SECTIONS
+{
+ SECTIONS_BEGIN
+ SECTION_fixed_vectors (ram, 0x20, LMA_EQ_VMA)
+ SECTION_rom_vectors (ram, 0x40000, 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)
+ CYG_LABEL_DEFN(__heap1) = ALIGN (0x8);
+ SECTIONS_END
+}
diff --git a/ecos/packages/hal/arm/xscale/uE250/current/include/pkgconf/mlt_arm_xscale_uE250_ram.mlt b/ecos/packages/hal/arm/xscale/uE250/current/include/pkgconf/mlt_arm_xscale_uE250_ram.mlt
new file mode 100644
index 0000000..2a5fbd5
--- /dev/null
+++ b/ecos/packages/hal/arm/xscale/uE250/current/include/pkgconf/mlt_arm_xscale_uE250_ram.mlt
@@ -0,0 +1,14 @@
+version 0
+region ram 0 2000000 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 40000 40000 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 1 0 1 heap1 heap1 !
+section heap1 0 8 0 0 0 0 0 0 !
+
diff --git a/ecos/packages/hal/arm/xscale/uE250/current/include/pkgconf/mlt_arm_xscale_uE250_rom.h b/ecos/packages/hal/arm/xscale/uE250/current/include/pkgconf/mlt_arm_xscale_uE250_rom.h
new file mode 100644
index 0000000..1057273
--- /dev/null
+++ b/ecos/packages/hal/arm/xscale/uE250/current/include/pkgconf/mlt_arm_xscale_uE250_rom.h
@@ -0,0 +1,20 @@
+// eCos memory layout - Tue Jul 02 10:03:04 2002
+
+// This is a generated file - do not edit
+
+#ifndef __ASSEMBLER__
+#include <cyg/infra/cyg_type.h>
+#include <stddef.h>
+
+#endif
+#define CYGMEM_REGION_ram (0x00000000)
+#define CYGMEM_REGION_ram_SIZE (0x04000000)
+#define CYGMEM_REGION_ram_ATTR (CYGMEM_REGION_ATTR_R | CYGMEM_REGION_ATTR_W)
+#define CYGMEM_REGION_rom (0x50000000)
+#define CYGMEM_REGION_rom_SIZE (0x04000000)
+#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 (0x4000000 - (size_t) CYG_LABEL_NAME (__heap1))
diff --git a/ecos/packages/hal/arm/xscale/uE250/current/include/pkgconf/mlt_arm_xscale_uE250_rom.ldi b/ecos/packages/hal/arm/xscale/uE250/current/include/pkgconf/mlt_arm_xscale_uE250_rom.ldi
new file mode 100644
index 0000000..e3e53da
--- /dev/null
+++ b/ecos/packages/hal/arm/xscale/uE250/current/include/pkgconf/mlt_arm_xscale_uE250_rom.ldi
@@ -0,0 +1,29 @@
+// eCos memory layout - Tue Jul 02 10:03:04 2002
+
+// This is a generated file - do not edit
+
+#include <cyg/infra/cyg_type.inc>
+
+MEMORY
+{
+ ram : ORIGIN = 0x00000000, LENGTH = 0x04000000
+ rom : ORIGIN = 0x50000000, LENGTH = 0x04000000
+}
+
+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_mmu_tables (rom, ALIGN (0x4000), LMA_EQ_VMA)
+ SECTION_fixed_vectors (ram, 0x20, LMA_EQ_VMA)
+ SECTION_data (ram, 0x8000, FOLLOWING (.mmu_tables))
+ SECTION_bss (ram, ALIGN (0x4), LMA_EQ_VMA)
+ CYG_LABEL_DEFN(__heap1) = ALIGN (0x8);
+ SECTIONS_END
+}
diff --git a/ecos/packages/hal/arm/xscale/uE250/current/include/pkgconf/mlt_arm_xscale_uE250_rom.mlt b/ecos/packages/hal/arm/xscale/uE250/current/include/pkgconf/mlt_arm_xscale_uE250_rom.mlt
new file mode 100644
index 0000000..b04ea9b
--- /dev/null
+++ b/ecos/packages/hal/arm/xscale/uE250/current/include/pkgconf/mlt_arm_xscale_uE250_rom.mlt
@@ -0,0 +1,15 @@
+version 0
+region ram 0 2000000 0 !
+region rom f0000000 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 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 f0000000 f0000000 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 mmu_tables mmu_tables !
+section mmu_tables 0 4000 0 1 0 0 0 1 data !
diff --git a/ecos/packages/hal/arm/xscale/uE250/current/include/pkgconf/mlt_arm_xscale_uE250_romram.h b/ecos/packages/hal/arm/xscale/uE250/current/include/pkgconf/mlt_arm_xscale_uE250_romram.h
new file mode 100644
index 0000000..413ae37
--- /dev/null
+++ b/ecos/packages/hal/arm/xscale/uE250/current/include/pkgconf/mlt_arm_xscale_uE250_romram.h
@@ -0,0 +1,18 @@
+// eCos memory layout - Fri Oct 20 05:56:24 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 (0x00000000)
+#define CYGMEM_REGION_ram_SIZE (0x04000000)
+#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 (0x1e00000 - (size_t) CYG_LABEL_NAME (__heap1))
+
diff --git a/ecos/packages/hal/arm/xscale/uE250/current/include/pkgconf/mlt_arm_xscale_uE250_romram.ldi b/ecos/packages/hal/arm/xscale/uE250/current/include/pkgconf/mlt_arm_xscale_uE250_romram.ldi
new file mode 100644
index 0000000..68ca9d3
--- /dev/null
+++ b/ecos/packages/hal/arm/xscale/uE250/current/include/pkgconf/mlt_arm_xscale_uE250_romram.ldi
@@ -0,0 +1,27 @@
+// eCos memory layout - Fri Oct 20 05:56:24 2000
+
+// This is a generated file - do not edit
+
+#include <cyg/infra/cyg_type.inc>
+
+MEMORY
+{
+ ram : ORIGIN = 0x00000000, LENGTH = 0x04000000
+}
+
+SECTIONS
+{
+ SECTIONS_BEGIN
+ SECTION_fixed_vectors (ram, 0x20, LMA_EQ_VMA)
+ SECTION_rom_vectors (ram, 0x8000, 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)
+ CYG_LABEL_DEFN(__heap1) = ALIGN (0x8);
+ SECTIONS_END
+}
diff --git a/ecos/packages/hal/arm/xscale/uE250/current/include/pkgconf/mlt_arm_xscale_uE250_romram.mlt b/ecos/packages/hal/arm/xscale/uE250/current/include/pkgconf/mlt_arm_xscale_uE250_romram.mlt
new file mode 100644
index 0000000..c28d083
--- /dev/null
+++ b/ecos/packages/hal/arm/xscale/uE250/current/include/pkgconf/mlt_arm_xscale_uE250_romram.mlt
@@ -0,0 +1,14 @@
+version 0
+region ram 0 2000000 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 20000 20000 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 1 0 1 heap1 heap1 !
+section heap1 0 8 0 0 0 0 0 0 !
+
diff --git a/ecos/packages/hal/arm/xscale/uE250/current/include/plf_io.h b/ecos/packages/hal/arm/xscale/uE250/current/include/plf_io.h
new file mode 100644
index 0000000..aec6dd4
--- /dev/null
+++ b/ecos/packages/hal/arm/xscale/uE250/current/include/plf_io.h
@@ -0,0 +1,240 @@
+#ifndef CYGONCE_PLF_IO_H
+#define CYGONCE_PLF_IO_H
+
+//=============================================================================
+//
+// plf_io.h
+//
+// Platform specific IO support
+//
+//=============================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): msalter
+// Contributors: msalter, gthomas
+// Date: 2002-01-10
+// Purpose: Intel Xscale (PXA250) PCI IO support macros
+// Description:
+// Usage: #include <cyg/hal/plf_io.h>
+//
+//####DESCRIPTIONEND####
+//
+//=============================================================================
+
+#include <pkgconf/hal.h>
+#include <cyg/hal/hal_io.h> // IO macros
+#include <cyg/hal/uE250.h>
+
+#define PCI_CONTROL_BASE 0x37040000
+
+#define PCI_CTL_IO(x) (*((volatile cyg_uint32*)(PCI_CONTROL_BASE+(x))))
+#define PCI_CTL_IO_BYTE(x) (*((volatile cyg_uint8*)(PCI_CONTROL_BASE+(x))))
+
+#define PCICTL_MEM_REMAP PCI_CTL_IO(0x0000)
+#define PCICTL_IO_REMAP PCI_CTL_IO(0x0004)
+#define PCICTL_CONFIG_REMAP PCI_CTL_IO(0x0008)
+#define PCICTL_INT_RESET PCI_CTL_IO(0x0010)
+#define PCICTL_STATUS_REG PCI_CTL_IO_BYTE(0x0010)
+#define PCICTL_INT_EDGE PCI_CTL_IO_BYTE(0x0011)
+#define PCICTL_IRQ_MASK PCI_CTL_IO(0x0014)
+#define PCICTL_MISC PCI_CTL_IO(0x001C)
+
+#define PCI_RESET (1 << 0)
+#define PCI_WRITEBUF (1 << 1)
+#define PCI_TIMER (1 << 2)
+#define PCI_IDSEL_OFF (15 << 4)
+#define PCI_IDSEL_0 (1 << 4)
+#define PCI_IDSEL_1 (2 << 4)
+#define PCI_IDSEL_2 (3 << 4)
+#define PCI_IDSEL_3 (4 << 4)
+#define PCI_IDSEL_4 (5 << 4)
+#define PCI_IDSEL_5 (6 << 4)
+#define PCI_SDRAM_64 (0 << 16)
+#define PCI_SDRAM_128 (1 << 16)
+#define PCI_SDRAM_256 (2 << 16)
+#define PCI_SYSTEM_RESET (1 << 31)
+
+#define PCI_INT_A (1 << 0)
+#define PCI_INT_B (1 << 1)
+#define PCI_INT_C (1 << 2)
+#define PCI_INT_D (1 << 3)
+#define PCI_TARGET_ABORT (1 << 4)
+#define PCI_MASTER_ABORT (1 << 5)
+#define PCI_PARITY_ERROR (1 << 6)
+#define PCI_SYS_ERROR (1 << 7)
+#define PCI_BUS_TIMEOUT (1 << 8)
+
+#define PCI_INT_A_ENABLE (1 << 0)
+#define PCI_INT_B_ENABLE (1 << 1)
+#define PCI_INT_C_ENABLE (1 << 2)
+#define PCI_INT_D_ENABLE (1 << 3)
+
+#define PCI_IDSEL_SHIFT 4
+
+// FIXME: Use virtual address
+#define PCI_CONFIG_BASE 0x15000000
+
+#define HAL_PCI_INIT() cyg_hal_plf_pci_init()
+
+
+// Map PCI device resources starting from these addresses in PCI space.
+#define HAL_PCI_PHYSICAL_MEMORY_BASE 0x0C000000 // CPU address
+#define HAL_PCI_ALLOC_BASE_MEMORY 0x00000000 // PCI address
+#define HAL_PCI_PHYSICAL_IO_BASE 0x16000000 // CPU address
+#define HAL_PCI_ALLOC_BASE_IO 0x00000000 // PCI address
+#define _PCI_READ_8 0x01000000 //
+#define _PCI_READ_16 0x00000000 // Byte address munging
+#define _PCI_READ_32 0x00800000 //
+#define _PCI_WRITE_X 0x00000000
+
+//-----------------------------------------------------------------------------
+
+extern cyg_uint32 cyg_hal_plf_pci_cfg_read_dword (cyg_uint32 bus,
+ cyg_uint32 devfn,
+ cyg_uint32 offset);
+extern cyg_uint16 cyg_hal_plf_pci_cfg_read_word (cyg_uint32 bus,
+ cyg_uint32 devfn,
+ cyg_uint32 offset);
+extern cyg_uint8 cyg_hal_plf_pci_cfg_read_byte (cyg_uint32 bus,
+ cyg_uint32 devfn,
+ cyg_uint32 offset);
+extern void cyg_hal_plf_pci_cfg_write_dword (cyg_uint32 bus,
+ cyg_uint32 devfn,
+ cyg_uint32 offset,
+ cyg_uint32 val);
+extern void cyg_hal_plf_pci_cfg_write_word (cyg_uint32 bus,
+ cyg_uint32 devfn,
+ cyg_uint32 offset,
+ cyg_uint16 val);
+extern void cyg_hal_plf_pci_cfg_write_byte (cyg_uint32 bus,
+ cyg_uint32 devfn,
+ cyg_uint32 offset,
+ cyg_uint8 val);
+
+// Read a value from the PCI configuration space of the appropriate
+// size at an address composed from the bus, devfn and offset.
+#define HAL_PCI_CFG_READ_UINT8( __bus, __devfn, __offset, __val ) \
+ __val = cyg_hal_plf_pci_cfg_read_byte((__bus), (__devfn), (__offset))
+
+#define HAL_PCI_CFG_READ_UINT16( __bus, __devfn, __offset, __val ) \
+ __val = cyg_hal_plf_pci_cfg_read_word((__bus), (__devfn), (__offset))
+
+#define HAL_PCI_CFG_READ_UINT32( __bus, __devfn, __offset, __val ) \
+ __val = cyg_hal_plf_pci_cfg_read_dword((__bus), (__devfn), (__offset))
+
+// Write a value to the PCI configuration space of the appropriate
+// size at an address composed from the bus, devfn and offset.
+#define HAL_PCI_CFG_WRITE_UINT8( __bus, __devfn, __offset, __val ) \
+ cyg_hal_plf_pci_cfg_write_byte((__bus), (__devfn), (__offset), (__val))
+
+#define HAL_PCI_CFG_WRITE_UINT16( __bus, __devfn, __offset, __val ) \
+ cyg_hal_plf_pci_cfg_write_word((__bus), (__devfn), (__offset), (__val))
+
+#define HAL_PCI_CFG_WRITE_UINT32( __bus, __devfn, __offset, __val ) \
+ cyg_hal_plf_pci_cfg_write_dword((__bus), (__devfn), (__offset), (__val))
+
+ // Initialize the PCI bus.
+externC void cyg_hal_plf_pci_init(void);
+#define HAL_PCI_INIT() cyg_hal_plf_pci_init()
+
+externC void _uE250_pci_translate_interrupt(int bus, int devfn, int *vector, int *valid);
+#define HAL_PCI_TRANSLATE_INTERRUPT(__bus, __devfn, __vector, __valid) \
+ _uE250_pci_translate_interrupt(__bus, __devfn, &__vector, &__valid)
+
+// Special I/O access functions
+externC cyg_uint8 pci_io_read_8(cyg_uint32 address);
+externC cyg_uint16 pci_io_read_16(cyg_uint32 address);
+externC cyg_uint32 pci_io_read_32(cyg_uint32 address);
+externC void pci_io_write_8(cyg_uint32 address, cyg_uint8 value);
+externC void pci_io_write_16(cyg_uint32 address, cyg_uint16 value);
+externC void pci_io_write_32(cyg_uint32 address, cyg_uint32 value);
+
+#define CYG_PCI_MAX_DEV 6
+#define CYG_PCI_MAX_BUS 1
+#define CYG_PCI_MAX_FN 1
+
+
+#define HAL_IDE_NUM_CONTROLLERS 1 // Default card has two controllers - maybe should be 2?
+
+#define HAL_IDE_READ_UINT8( __ctlr, __reg, __val) \
+ __val = cyg_hal_plf_ide_read_uint8((__ctlr), (__reg))
+
+#define HAL_IDE_READ_UINT16( __ctlr, __reg, __val) \
+ __val = cyg_hal_plf_ide_read_uint16((__ctlr), (__reg))
+
+#define HAL_IDE_WRITE_UINT8( __ctlr, __reg, __val) \
+ cyg_hal_plf_ide_write_uint8((__ctlr), (__reg), (__val))
+
+#define HAL_IDE_WRITE_UINT16( __ctlr, __reg, __val) \
+ cyg_hal_plf_ide_write_uint16((__ctlr), (__reg), (__val))
+
+
+#define HAL_IDE_WRITE_CONTROL( __ctlr, __val) \
+ cyg_hal_plf_ide_write_control((__ctlr), (__val))
+
+#define HAL_IDE_INIT() cyg_hal_plf_ide_init()
+
+
+// SDRAM is aliased as uncached memory for drivers.
+#define CYGARC_UNCACHED_ADDRESS(_x_) \
+ (((((unsigned long)(_x_)) >> 29)==0x0) ? (((unsigned long)(_x_))|0xc0000000) : (_x_))
+
+static inline unsigned cygarc_physical_address(unsigned va)
+{
+ unsigned *ram_mmutab = (unsigned *)(SDRAM_BASE | 0x4000);
+ unsigned pte;
+
+ pte = ram_mmutab[va >> 20];
+
+ return (pte & 0xfff00000) | (va & 0xfffff);
+}
+
+// FIXME
+#undef CYGARC_PHYSICAL_ADDRESS
+#define CYGARC_PHYSICAL_ADDRESS(_x_) cygarc_physical_address(_x_)
+
+static inline unsigned cygarc_virtual_address(unsigned pa)
+{
+ if (0xa0000000 <= pa && pa < 0xc0000000)
+ return pa - 0xa0000000;
+ return pa;
+}
+
+#define CYGARC_VIRTUAL_ADDRESS(_x_) cygarc_virtual_address(_x_)
+#define CYGARC_PCI_DMA_ADDRESS(_x_) (_x_)
+
+//-----------------------------------------------------------------------------
+// end of plf_io.h
+#endif // CYGONCE_PLF_IO_H
diff --git a/ecos/packages/hal/arm/xscale/uE250/current/include/plf_mmap.h b/ecos/packages/hal/arm/xscale/uE250/current/include/plf_mmap.h
new file mode 100644
index 0000000..966d23e
--- /dev/null
+++ b/ecos/packages/hal/arm/xscale/uE250/current/include/plf_mmap.h
@@ -0,0 +1,125 @@
+#ifndef CYGONCE_HAL_PXA250_PLATFORM_PLF_MMAP_H
+#define CYGONCE_HAL_PXA250_PLATFORM_PLF_MMAP_H
+/*=============================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): hmt
+// Contributors: hmt
+// Date: 2001-01-04
+// Purpose: Intel PXA250 series platform-specific memory mapping macros
+// Description: Macros to convert a cached, virtual address to
+// 1) an uncached adddress for the same memory (if available)
+// 2) the equivalent physical address for giving to external
+// hardware eg. DMA engines.
+//
+// NB: this mapping is expressed here statically, independent
+// of the actual mapping installed in the MMAP table. So if
+// someone changes that, or its initialisation is changed,
+// then this module must change. This is intended to be
+// efficient at a cost of generality. It is also intended to
+// be called with constants (such as &my_struct) as input
+// args, so that all the work can be done at compile time,
+// with optimization on.
+//
+// Usage: #include <cyg/hal/hal_cache.h>
+// (which includes this file itself)
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================*/
+
+#include <cyg/hal/hal_misc.h>
+
+// Get the pagesize for a particular virtual address:
+
+// This does not depend on the vaddr.
+#define HAL_MM_PAGESIZE( vaddr, pagesize ) CYG_MACRO_START \
+ (pagesize) = SZ_1M; \
+CYG_MACRO_END
+
+// Get the physical address from a virtual address:
+
+// Only RAM and ROM are mapped; we just pass through all other values,
+// rather than detecting nonexistent areas here.
+
+#define HAL_VIRT_TO_PHYS_ADDRESS( vaddr, paddr ) CYG_MACRO_START \
+ cyg_uint32 _v_ = (cyg_uint32)(vaddr); \
+ if ( 64 * SZ_1M > _v_ ) /* 64Mb of SDRAM Bank 0 from 0-32Mb */ \
+ _v_ += 0xa00u * SZ_1M; \
+ else if ( 0x500u * SZ_1M > _v_ ) /* Space between RAM and mapped ROM */\
+ /* no change */ ; \
+ else if ( 0x520u * SZ_1M > _v_ ) /* Mapped boot ROM size 32Mb */ \
+ _v_ -= 0x500u * SZ_1M; \
+ else /* Rest of it */ \
+ /* no change */ ; \
+ (paddr) = _v_; \
+CYG_MACRO_END
+
+// Get the virtual address for a physical address:
+
+// Only RAM and ROM are mapped; we just pass through all other values,
+// rather than detecting nonexistent areas here.
+
+#define HAL_PHYS_TO_VIRT_ADDRESS( paddr, vaddr ) CYG_MACRO_START \
+ cyg_uint32 _p_ = (cyg_uint32)(paddr); \
+ if ( 32 * SZ_1M > _p_ ) /* 32Mb Boot ROM mapped to 0x500Mb */ \
+ _p_ += 0x500u * SZ_1M; \
+ else if ( 0xa00u * SZ_1M > _p_ ) /* Space between ROM and SDRAM */ \
+ /* no change */ ; \
+ else if ( 0xa40u * SZ_1M > _p_ ) /* Raw RAM size 64Mb */ \
+ _p_ -= 0xa00u * SZ_1M; \
+ else /* Rest of it */ \
+ /* no change */ ; \
+ (vaddr) = _p_ ; \
+CYG_MACRO_END
+
+// Get a non-cacheable address for accessing the same store as a virtual
+// (assumed cachable) address:
+
+// Only RAM is mapped: ROM is only available cachable, everything else is
+// not cachable anyway.
+
+#define HAL_VIRT_TO_UNCACHED_ADDRESS( vaddr, uaddr ) CYG_MACRO_START \
+ cyg_uint32 _v_ = (cyg_uint32)(vaddr); \
+ if ( 64 * SZ_1M > _v_ ) /* 64Mb of SDRAM Bank 0 from 0-64Mb */ \
+ _v_ += 0xc00u * SZ_1M; \
+ else /* Everything else is already uncacheable or is ROM */ \
+ /* no change */ ; \
+ (uaddr) = _v_ ; \
+CYG_MACRO_END
+
+//---------------------------------------------------------------------------
+#endif // CYGONCE_HAL_SA11X0_PLATFORM_PLF_MMAP_H
+// EOF plf_mmap.h
diff --git a/ecos/packages/hal/arm/xscale/uE250/current/include/plx.h b/ecos/packages/hal/arm/xscale/uE250/current/include/plx.h
new file mode 100644
index 0000000..aab46ac
--- /dev/null
+++ b/ecos/packages/hal/arm/xscale/uE250/current/include/plx.h
@@ -0,0 +1,85 @@
+#ifndef CYGONCE_PLX_H
+#define CYGONCE_PLX_H
+
+//=============================================================================
+//
+// plx.h
+//
+// Description of PCI Local Bus (PLX) resources
+//
+//=============================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=============================================================================
+
+#define LOCALBUS_CONFIG_OFFSET 0x0
+#define LOCALBUS_OFFSET 0x100
+
+#ifndef _DEFINE_VARS
+#define __global externC
+#else
+#define __global
+#endif
+__global cyg_uint32 _plx_config_addr;
+__global cyg_uint32 _plx_localbus_addr;
+#undef __global
+
+#define plx_config_readl(a) (*(volatile cyg_uint32 *)(_plx_config_addr + (a)))
+#define plx_config_writel(v,a) (*(volatile cyg_uint32 *)(_plx_config_addr + (a)))=(v)
+
+#define localbus_readb(a) (*(volatile cyg_uint8 *)(_plx_localbus_addr + (a)))
+#define localbus_readw(a) (*(volatile cyg_uint16 *)(_plx_localbus_addr + (a)))
+#define localbus_readl(a) (*(volatile cyg_uint32 *)(_plx_localbus_addr + (a)))
+#define localbus_writeb(v,a) (*(volatile cyg_uint8 *)(_plx_localbus_addr + (a)))=(v)
+#define localbus_writew(v,a) (*(volatile cyg_uint16 *)(_plx_localbus_addr + (a)))=(v)
+#define localbus_writel(v,a) (*(volatile cyg_uint32 *)(_plx_localbus_addr + (a)))=(v)
+
+#define display_readb(a) (*(volatile cyg_uint8 *)(PCI_MEM_BASE2 + DISPLAY_MEM_BASE + (a)))
+#define display_readw(a) (*(volatile cyg_uint16 *)(PCI_MEM_BASE2 + DISPLAY_MEM_BASE + (a)))
+#define display_readl(a) (*(volatile cyg_uint32 *)(PCI_MEM_BASE2 + DISPLAY_MEM_BASE + (a)))
+#define display_writeb(v,a) (*(volatile cyg_uint8 *)(PCI_MEM_BASE2 + DISPLAY_MEM_BASE + (a)))=(v)
+#define display_writew(v,a) (*(volatile cyg_uint16 *)(PCI_MEM_BASE2 + DISPLAY_MEM_BASE + (a)))=(v)
+#define display_writel(v,a) (*(volatile cyg_uint32 *)(PCI_MEM_BASE2 + DISPLAY_MEM_BASE + (a)))=(v)
+
+
+#define LOCALBUS_IRQ_MASK 0x4010
+#define LOCALBUS_IRQ_STATUS 0x4014
+
+#define FDC37C672_CONFIG 0xfc0
+#define FDC37C672_INDEX 0xfc0
+#define FDC37C672_DATA 0xfc4
+
+#define ASCII_DISPLAY_BASE 0x4020
+
+#define ADV471_PIXEL_READ_MASK 0x14
+
+#endif // CYGONCE_PLX_H
diff --git a/ecos/packages/hal/arm/xscale/uE250/current/include/uE250.h b/ecos/packages/hal/arm/xscale/uE250/current/include/uE250.h
new file mode 100644
index 0000000..ef13b38
--- /dev/null
+++ b/ecos/packages/hal/arm/xscale/uE250/current/include/uE250.h
@@ -0,0 +1,65 @@
+#ifndef CYGONCE_HAL_ARM_XSCALE_UE250_UE250_H
+#define CYGONCE_HAL_ARM_XSCALE_UE250_UE250_H
+
+//=============================================================================
+//
+// uE250.h
+//
+// Platform specific support (register layout, etc)
+//
+//=============================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=============================================================================
+
+#include <pkgconf/system.h>
+#include CYGHWR_MEMORY_LAYOUT_H
+#include <pkgconf/hal_arm_xscale_uE250.h>
+#include <cyg/hal/hal_pxa2x0.h> // Applications Processor defines
+
+#define SDRAM_PHYS_BASE 0xa0000000
+#define SDRAM_BASE 0x00000000
+#define SDRAM_SIZE 0x04000000 // 64 MB
+#define SDRAM_MAX 0x10000000
+
+#define UE250_FLASH_ADDR 0x50000000
+// These must match setup in the page table in hal_platform_extras.h
+#define SDRAM_UNCACHED_BASE 0xc0000000
+#undef DCACHE_FLUSH_AREA
+#define DCACHE_FLUSH_AREA 0xe0000000
+
+#define FPGA_BASE 0x50040000
+#define VGA_BASE 0x50080000
+
+// ------------------------------------------------------------------------
+
+#endif // CYGONCE_HAL_ARM_XSCALE_UE250_UE250_H
diff --git a/ecos/packages/hal/arm/xscale/uE250/current/include/vga_support.h b/ecos/packages/hal/arm/xscale/uE250/current/include/vga_support.h
new file mode 100644
index 0000000..77b51c2
--- /dev/null
+++ b/ecos/packages/hal/arm/xscale/uE250/current/include/vga_support.h
@@ -0,0 +1,80 @@
+#ifndef _VGA_SUPPORT_H_
+#define _VGA_SUPPORT_H_
+//==========================================================================
+//
+// vga_support.h
+//
+// VGA support routines
+//
+//==========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//==========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): gthomas
+// Contributors: gthomas
+// Date: 2001-09-29
+// Description: Simple VGA support
+//####DESCRIPTIONEND####
+
+struct vga_info {
+ short height, width; // Pixels
+ short bpp; // Depth (bits/pixel)
+ short type;
+ short rlen; // Length of one raster line in bytes
+ short access_size; // Data path width to frame buffer
+ short stride; // Offset (in bytes) between elements
+ void *fb; // Frame buffer
+ void *ctlr; // Controller regs
+ void (*off)(void); // Turn screen off
+ void (*on)(void); // Turn screen on
+};
+
+// Frame buffer types - used by MicroWindows
+#define FB_TRUE_RGB565 0x01
+#define FB_TRUE_RGB555 0x02
+
+// Exported functions
+void vga_init(cyg_uint32 *ctlr);
+void vga_clear(void);
+int vga_getinfo(struct vga_info *info);
+void vga_on(bool enable);
+#ifdef CYGSEM_UE250_VGA_COMM
+void vga_screen_clear(void);
+void vga_moveto(int X, int Y);
+void vga_putc(cyg_uint8 c);
+int _vga_printf(char const *fmt, ...);
+void vga_comm_init(cyg_uint32 *addr);
+#endif
+
+#endif // _VGA_SUPPORT_H_
diff --git a/ecos/packages/hal/arm/xscale/uE250/current/misc/redboot_RAM.ecm b/ecos/packages/hal/arm/xscale/uE250/current/misc/redboot_RAM.ecm
new file mode 100644
index 0000000..ae1e2ed
--- /dev/null
+++ b/ecos/packages/hal/arm/xscale/uE250/current/misc/redboot_RAM.ecm
@@ -0,0 +1,154 @@
+cdl_savefile_version 1;
+cdl_savefile_command cdl_savefile_version {};
+cdl_savefile_command cdl_savefile_command {};
+cdl_savefile_command cdl_configuration { description hardware template package };
+cdl_savefile_command cdl_package { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_component { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_option { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_interface { value_source user_value wizard_value inferred_value };
+
+cdl_configuration eCos {
+ description "" ;
+ hardware uE250 ;
+ template redboot ;
+ package -hardware CYGPKG_HAL_ARM current ;
+ package -hardware CYGPKG_HAL_ARM_XSCALE_CORE current ;
+ package -hardware CYGPKG_HAL_ARM_XSCALE_PXA2X0 current ;
+ package -hardware CYGPKG_HAL_ARM_XSCALE_UE250 current ;
+ package -hardware CYGPKG_IO_PCI current ;
+ package -hardware CYGPKG_IO_SERIAL_GENERIC_16X5X current ;
+ package -hardware CYGPKG_DEVS_FLASH_STRATA current ;
+ package -hardware CYGPKG_DEVS_FLASH_UE250 current ;
+ package -hardware CYGPKG_DEVS_ETH_NS_DP83902A current ;
+ package -hardware CYGPKG_DEVS_ETH_ARM_XSCALE_UE250 current ;
+ package -template CYGPKG_HAL current ;
+ package -template CYGPKG_INFRA current ;
+ package -template CYGPKG_REDBOOT current ;
+ package -template CYGPKG_ISOINFRA current ;
+ package -template CYGPKG_LIBC_STRING current ;
+ package -template CYGPKG_CRC current ;
+ package CYGPKG_NS_DNS current ;
+ package CYGPKG_IO_FLASH current ;
+ package CYGPKG_IO_ETH_DRIVERS current ;
+ package CYGPKG_COMPRESS_ZLIB current ;
+};
+
+cdl_component CYG_HAL_STARTUP {
+ user_value RAM
+};
+
+cdl_option CYGNUM_UE250_VGA_COMM_FONT_SIZE {
+ user_value 16
+};
+
+cdl_component CYGSEM_HAL_LOAD_FPGAS {
+ user_value 1
+ inferred_value 0
+};
+
+cdl_option CYGBLD_BUILD_GDB_STUBS {
+ user_value 0
+};
+
+cdl_option CYGPKG_IO_PCI_DEBUG {
+ user_value 0
+};
+
+cdl_option CYGFUN_LIBC_STRING_BSD_FUNCS {
+ inferred_value 0
+};
+
+cdl_component CYGSEM_DEVS_ETH_UE250_ETH0_SET_ESA {
+ user_value 1
+};
+
+cdl_option CYGDAT_DEVS_ETH_UE250_ETH0_ESA {
+ user_value "{0x00, 0x50, 0xBA, 0x33, 0x4D, 0xD9}"
+};
+
+cdl_option CYGNUM_HAL_COMMON_INTERRUPTS_STACK_SIZE {
+ user_value 4096
+};
+
+cdl_option CYGDBG_HAL_COMMON_INTERRUPTS_SAVE_MINIMUM_CONTEXT {
+ user_value 0
+};
+
+cdl_option CYGDBG_HAL_COMMON_CONTEXT_SAVE_MINIMUM {
+ inferred_value 0
+};
+
+cdl_option CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS {
+ inferred_value 1
+};
+
+cdl_option CYGDBG_HAL_DEBUG_GDB_CTRLC_SUPPORT {
+ inferred_value 0
+};
+
+cdl_option CYGSEM_HAL_ROM_MONITOR {
+ inferred_value 0
+};
+
+cdl_option CYGSEM_HAL_USE_ROM_MONITOR {
+ inferred_value 0 0
+};
+
+cdl_option CYGPKG_HAL_GDB_FILEIO {
+ user_value 1
+};
+
+cdl_component CYGBLD_BUILD_REDBOOT {
+ user_value 1
+};
+
+cdl_option CYGBLD_REDBOOT_MIN_IMAGE_SIZE {
+ user_value 0x00080000
+ inferred_value 0x40000
+};
+
+cdl_component CYGSEM_REDBOOT_FLASH_CONFIG {
+ user_value 1
+};
+
+cdl_option CYGSEM_REDBOOT_FLASH_COMBINED_FIS_AND_CONFIG {
+ user_value 1
+};
+
+cdl_component CYGSEM_REDBOOT_BSP_SYSCALLS {
+ inferred_value 1
+};
+
+cdl_option CYGHWR_REDBOOT_ARM_LINUX_EXEC_ADDRESS_DEFAULT {
+ inferred_value 0xA0008000
+};
+
+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_BSD_FUNCS_HEADER {
+ inferred_value 1 <cyg/libc/string/bsdstring.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_DNS_HEADER {
+ inferred_value 1 <cyg/ns/dns/dns.h>
+};
+
+cdl_option CYGPKG_NS_DNS_BUILD {
+ inferred_value 0
+};
+
+
diff --git a/ecos/packages/hal/arm/xscale/uE250/current/misc/redboot_ROM.ecm b/ecos/packages/hal/arm/xscale/uE250/current/misc/redboot_ROM.ecm
new file mode 100644
index 0000000..8b99d14
--- /dev/null
+++ b/ecos/packages/hal/arm/xscale/uE250/current/misc/redboot_ROM.ecm
@@ -0,0 +1,158 @@
+cdl_savefile_version 1;
+cdl_savefile_command cdl_savefile_version {};
+cdl_savefile_command cdl_savefile_command {};
+cdl_savefile_command cdl_configuration { description hardware template package };
+cdl_savefile_command cdl_package { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_component { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_option { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_interface { value_source user_value wizard_value inferred_value };
+
+cdl_configuration eCos {
+ description "" ;
+ hardware uE250 ;
+ template redboot ;
+ package -hardware CYGPKG_HAL_ARM current ;
+ package -hardware CYGPKG_HAL_ARM_XSCALE_CORE current ;
+ package -hardware CYGPKG_HAL_ARM_XSCALE_PXA2X0 current ;
+ package -hardware CYGPKG_HAL_ARM_XSCALE_UE250 current ;
+ package -hardware CYGPKG_IO_PCI current ;
+ package -hardware CYGPKG_IO_SERIAL_GENERIC_16X5X current ;
+ package -hardware CYGPKG_DEVS_FLASH_STRATA current ;
+ package -hardware CYGPKG_DEVS_FLASH_UE250 current ;
+ package -hardware CYGPKG_DEVS_ETH_NS_DP83902A current ;
+ package -hardware CYGPKG_DEVS_ETH_ARM_XSCALE_UE250 current ;
+ package -template CYGPKG_HAL current ;
+ package -template CYGPKG_INFRA current ;
+ package -template CYGPKG_REDBOOT current ;
+ package -template CYGPKG_ISOINFRA current ;
+ package -template CYGPKG_LIBC_STRING current ;
+ package -template CYGPKG_CRC current ;
+ package CYGPKG_NS_DNS current ;
+ package CYGPKG_IO_FLASH current ;
+ package CYGPKG_IO_ETH_DRIVERS current ;
+ package CYGPKG_COMPRESS_ZLIB current ;
+};
+
+cdl_component CYG_HAL_STARTUP {
+ user_value ROM
+};
+
+cdl_option CYGNUM_UE250_VGA_COMM_FONT_SIZE {
+ user_value 16
+};
+
+cdl_option CYGOPT_UE250_VGA_COMM_LOGO {
+ user_value 1 TOP
+};
+
+cdl_component CYGSEM_HAL_LOAD_FPGAS {
+ user_value 1
+ inferred_value 0
+};
+
+cdl_option CYGBLD_BUILD_GDB_STUBS {
+ user_value 0
+};
+
+cdl_option CYGPKG_IO_PCI_DEBUG {
+ user_value 0
+};
+
+cdl_option CYGFUN_LIBC_STRING_BSD_FUNCS {
+ inferred_value 0
+};
+
+cdl_component CYGSEM_DEVS_ETH_UE250_ETH0_SET_ESA {
+ user_value 1
+};
+
+cdl_option CYGDAT_DEVS_ETH_UE250_ETH0_ESA {
+ user_value "{0x00, 0x50, 0xBA, 0x33, 0x4D, 0xD9}"
+};
+
+cdl_option CYGNUM_HAL_COMMON_INTERRUPTS_STACK_SIZE {
+ user_value 4096
+};
+
+cdl_option CYGDBG_HAL_COMMON_INTERRUPTS_SAVE_MINIMUM_CONTEXT {
+ user_value 0
+};
+
+cdl_option CYGDBG_HAL_COMMON_CONTEXT_SAVE_MINIMUM {
+ inferred_value 0
+};
+
+cdl_option CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS {
+ inferred_value 1
+};
+
+cdl_option CYGDBG_HAL_DEBUG_GDB_CTRLC_SUPPORT {
+ inferred_value 0
+};
+
+cdl_option CYGSEM_HAL_ROM_MONITOR {
+ inferred_value 1
+};
+
+cdl_option CYGSEM_HAL_USE_ROM_MONITOR {
+ inferred_value 0 0
+};
+
+cdl_option CYGPKG_HAL_GDB_FILEIO {
+ user_value 1
+};
+
+cdl_component CYGBLD_BUILD_REDBOOT {
+ user_value 1
+};
+
+cdl_option CYGBLD_REDBOOT_MIN_IMAGE_SIZE {
+ user_value 0x00080000
+ inferred_value 0x40000
+};
+
+cdl_component CYGSEM_REDBOOT_FLASH_CONFIG {
+ user_value 1
+};
+
+cdl_option CYGSEM_REDBOOT_FLASH_COMBINED_FIS_AND_CONFIG {
+ user_value 1
+};
+
+cdl_component CYGSEM_REDBOOT_BSP_SYSCALLS {
+ inferred_value 1
+};
+
+cdl_option CYGHWR_REDBOOT_ARM_LINUX_EXEC_ADDRESS_DEFAULT {
+ inferred_value 0xA0008000
+};
+
+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_BSD_FUNCS_HEADER {
+ inferred_value 1 <cyg/libc/string/bsdstring.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_DNS_HEADER {
+ inferred_value 1 <cyg/ns/dns/dns.h>
+};
+
+cdl_option CYGPKG_NS_DNS_BUILD {
+ inferred_value 0
+};
+
+
diff --git a/ecos/packages/hal/arm/xscale/uE250/current/src/banner.xpm b/ecos/packages/hal/arm/xscale/uE250/current/src/banner.xpm
new file mode 100644
index 0000000..7b4e2f4
--- /dev/null
+++ b/ecos/packages/hal/arm/xscale/uE250/current/src/banner.xpm
@@ -0,0 +1,196 @@
+//==========================================================================
+//
+// LCD/CRT screen banner/logo
+//
+//==========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 2003 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//==========================================================================
+
+/* XPM */
+static char * banner_xpm[] = {
+"640 64 91 1",
+" c None",
+". c #020202",
+"+ c #0A0A0A",
+"@ c #2F2202",
+"# c #A66A04",
+"$ c #9E6A12",
+"% c #FEFEFE",
+"& c #1A1202",
+"* c #221202",
+"= c #967222",
+"- c #EEEEEA",
+"; c #C2921A",
+"> c #C18602",
+", c #DEAE22",
+"' c #BE9E0A",
+") c #F2C64A",
+"! c #875A09",
+"~ c #2A1A02",
+"{ c #E6E6E6",
+"] c #725A0A",
+"^ c #E21A2A",
+"/ c #9E9E9E",
+"( c #D69E12",
+"_ c #DFA60A",
+": c #EEC662",
+"< c #D6AE0A",
+"[ c #52420E",
+"} c #F6D612",
+"| c #4A3A02",
+"1 c #DEBE62",
+"2 c #7A7A7A",
+"3 c #AEAEAE",
+"4 c #EFB60A",
+"5 c #47320C",
+"6 c #BEC6C6",
+"7 c #F6BE12",
+"8 c #B8B6B5",
+"9 c #E1DEDC",
+"0 c #BFBEBE",
+"a c #525255",
+"b c #B68E42",
+"c c #222222",
+"d c #B68E0A",
+"e c #F6D11D",
+"f c #6A6A6A",
+"g c #868686",
+"h c #E6BE0A",
+"i c #343232",
+"j c #524A4A",
+"k c #3A3A3C",
+"l c #BA7602",
+"m c #D6D6D6",
+"n c #BE960A",
+"o c #D6B612",
+"p c #EEBE0A",
+"q c #AE7A0A",
+"r c #5A5A5F",
+"s c #959595",
+"t c #EECE12",
+"u c #121214",
+"v c #02020A",
+"w c #F6BE0A",
+"x c #F6F6F6",
+"y c #9E6202",
+"z c #6E4A02",
+"A c #F6DE52",
+"B c #434343",
+"C c #CD8E09",
+"D c #D79E0A",
+"E c #2B2A2A",
+"F c #DEAE02",
+"G c #E6AE12",
+"H c #C6C6C6",
+"I c #CE960A",
+"J c #CEB696",
+"K c #FEC60A",
+"L c #CECECE",
+"M c #1A1A19",
+"N c #C2C2C2",
+"O c #A3720A",
+"P c #FEDE12",
+"Q c #120A0A",
+"R c #EEB612",
+"S c #EEC60A",
+"T c #727272",
+"U c #626262",
+"V c #E7AE09",
+"W c #D69607",
+"X c #624202",
+"Y c #222232",
+"Z c #3A2A02",
+"NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN",
+"HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH",
+"NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN",
+"NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNH",
+"NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN^^^^^^^^^NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN",
+"HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH^^^^^^^^^^^^^HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHNH",
+"NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN^^^^^^^^^^^^^^^NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN",
+"NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN^^^^^^^^^^^^^^^^^NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNHNH",
+"NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN^^^^^^^^NNNN^^^^^^^NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN",
+"HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH^^^^^^HHHHHHHH^^^^^HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH....+HHHHHHHHHHHHHHHHHHHHHNHNH",
+"NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN^^^^^^NNNNNNNNN^^^^^NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN......+v.NNNNNNNNNNNNNNNNNNNNNNN",
+"NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN^^^^^NNNNNNNN^^^^^^NNNNNNNNNN^^^^^NNNNNNNNN^^^^^^NNNNNNNNNNNNN^^^^^^NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNM..v..vcTQ.NNNNNNNNNNNNNNNNNHNHNH",
+"NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN^^^^^^^^^NNNNN^^^^^^NNNNNNNNNNN^^^^^NNNNNNN^^^^^^^^^^NNNNNNNNN^^^^^^^^^^NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN-.......EE+.jNNNNNNNNNNNNNNNNNNNNN",
+"HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH^^^^^^^^^^^^^HHHH^^^^^^HHHHHHHHHHHHHHHHHHHHHH^^^^^^^^^^^^HHHHHHH^^^^^^^^^^^^HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHs...........vHHHHHHHHHHHHHHHNHNHNH",
+"NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN^^^^^^^N^^^^^NNN^^^^^^NNNNNNNNNNNNNNNNNNNNN^^^^^^^^^^^^^^^NNNNN^^^^^NN^^^^^^^NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNc..+.....M...{NNNNNNNNNNNNNNNNNNNN",
+"NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN^^^^^^NNNN^^^^^NN^^^^^^NNNNNNNNNNNNNNNNNNNN^^^^^^^NNN^^^^^^^NNN^^^^^NNNNN^^^^^NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNc.U+...f3M+..2NNNNNNNNNNNNNHNHNHNH",
+"NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN^^^^^^NNNNNN^^^^NN^^^^^NNNNNNNNNNNNNNNNNNNN^^^^^^^NNNNN^^^^^^NNN^^^^^NNNNNN^^^^NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNEa--..g%{m...fNNNNNNNNNNNNNNNNNNNN",
+"HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH^^^^^HHHHHHH^^^^H^^^^^^HHHHHHHHHHHHHHHHHHHH^^^^^^HHHHHH^^^^^^HH^^^^^^^HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHYm.sEu{ca0E..rHHHHHHHHHHHHNHNHNHNH",
+"NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN^^^^^^^^^^^^^^^^^N^^^^^^NNNNNNNNNNNNNNNNNNNN^^^^^NNNNNNN^^^^^^NNN^^^^^^^^^NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNsH.a5|g../kv.rNNNNNNNNNNNNNNNNNNNN",
+"NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN^^^^^^^^^^^^^^^^^N^^^^^^NNNNNNNNNNNNNNNNNNN^^^^^^NNNNNNN^^^^^^NNN^^^^^^^^^^^NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNsffIS_o<5%...ENNNNNNNNNNNHNHNHNHNH",
+"NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN^^^^^^^^^^^^^^^^^N^^^^^^NNNNNNNNNNNN^^^^^NN^^^^^NNNNNNNN^^^^^^NNNNN^^^^^^^^^^NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNg*>VheAePe@..MNNNNNNNNNNNNNNNNNNNN",
+"HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH^^^^^HHHHHHHHHHHHH^^^^^^HHHHHHHHHHH^^^^^^HH^^^^^HHHHHHHH^^^^^HHHHHHHH^^^^^^^^^HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH8#D4S)}P;D~...HHHHHHHHHHNHNHNHNHNH",
+"NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN^^^^^NNNNNNNNNNNNNN^^^^^^NNNNNNNNNN^^^^^NNN^^^^^NNNNNNN^^^^^NNNNNNNNNNNN^^^^^^^NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN8+$p}tdqVn.uU.NNNNNNNNNNNNNNNNNNNN",
+"NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN^^^^^NNNNNNNNNNNNNN^^^^^^NNNNNNNNN^^^^^^NNN^^^^^NNNNNNN^^^^^NNNNNNNNNNNNN^^^^^^NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN8Q8y<WC>0La.fiNNNNNNNNNHNHNHNHNHNH",
+"NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN^^^^^^NNNNNN^^^^NNN^^^^^^^NNNNNN^^^^^^^NNNN^^^^^^NNNNN^^^^^^NN^^^^^^NNNNNN^^^^^NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN++H8$$bNm%x....NNNNNNNNNNNNNNNNNNN",
+"HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH^^^^^^HHHH^^^^^HHHH^^^^^^^HHH^^^^^^^^^HHHH^^^^^^^HHH^^^^^^HHH^^^^^^HHHHH^^^^^HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH.9x806H{%%%fv...HHHHHHNHNHNHNHNHNH",
+"NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN^^^^^^^^^^^^^^NNNNN^^^^^^^^^^^^^^^^^^NNNNNN^^^^^^^^^^^^^^NNNNN^^^^^^^NN^^^^^^NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN.B%%90L%%%%%%....BNNNNNNNNNNNNNNNNN",
+"NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN^^^^^^^^^^^^NNNNNNN^^^^^^^^^^^^^^^^NNNNNNN^^^^^^^^^^^^^NNNNNN^^^^^^^^^^^^^^NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN.%%%%%%%%%%%%+..../NNNHNHNHNHNHNHNH",
+"NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN^^^^^^^^^^NNNNNNNNN^^^^^^^^^^^^NNNNNNNNNNN^^^^^^^^^^^NNNNNNNN^^^^^^^^^^^^NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN..%%%%x%%%%%%-a.....NNNNNNNNNNNNNNNN",
+"HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH^^^^^HHHHHHHHHHHHH^^^^^^^HHHHHHHHHHHHHHHHH^^^^^^HHHHHHHHHHHH^^^^^^^^HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH.j3-%x9%%%{H06{.+.v..HNHNHNHNHNHNHNH",
+"NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN..3%x%%%%%x%%%{8N.c...rNNNNNNNNNNNNNN",
+"NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN.MM%%%%x%%%%%%x%%m.+c...NHNHNHNHNHNHNH",
+"NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNE.{%%%%x%%%%%%%x%%gEMc..NNNNNNNNNNNNNN",
+"HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH.cE%%%x%-%%x%%%%%%%%..E..NHNHNHNHNHNHNH",
+"NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN+.m%%x%%-%%%%%%%%%%%..u.v.NNNNNNNNNNNNN",
+"NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNME.%%%%%%-%%%%%%%%%%%..u...HNHNHNHNHNHNH",
+"NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN.i.%%%%%%{%%%%x%%%%%%..i...NNNNNNNNNNNNN",
+"HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHk.B.%%%%%%-%%%%%%%%%%%+vc...HNHNHNHNHNHNH",
+"NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN..NNNNNNNNNNNNNNNNNNNNNNN..NNNNNNNN..NNNNNNNNNNNNNNNNNN..NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN...NN..NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN..NNNNNNNNN..NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN..NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN..UM%%%%%%-%%%%%%%%%%%+.u...NNNNNNNNNNNNN",
+"NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN..NNNNNNNNNNNNNNNNNNNNNNN..NNNNNNNN..NNNNNNNNNNNNNNNNNN..NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN..NNN..NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN..NNNNNNNNN..NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN..NNN..NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN..NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN~.i%%x%%%{%%%%%%%%%%%.u+Mc.HNHNHNHNHNHNH",
+"NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN..NNNNNNNNNNNNNNNNNNNNNNN..NNNNNNNN..NNNNNNNNNNNNNNNNNN..NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN..NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN..NNNNNNNNN..NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN..NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN..NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNKK.L%%%x%x%%%%%%%%%:)Q.v.uMNNNNNNNNNNNNN",
+"HHHHHHHHHHHHHHHHHH...HHHH..HH..HH...HHHHH..H...HHHHHH...HHHHHH...H..HHHH...H..HHHHH...HHHHHH...H..HHHHHHHHH....HHHHH.....HHHH..H....HH.....HH..HHHH...H..HHH..HHHH..HH..HH.HHH.....HHH..H....HHHH..HHHH....HHHHHHHHHH....HHHHH..H...HHHHHH...HHHH..HH.HHH.....HHH....HH..HHH..H...HHHHH....H..HHHHHHHHH....HHH...HHH..HHHH....HHHH....HHH....HHHH..H...HH...HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHVwwK.s%%%%{x%%%%%%%%F}Q...+'HNHNHNHNHNHNH",
+"NNNNNNNNNNNNNNNN.......NN............NNNN.......NNN.......NNN.......NNN.......NNN.......NNN.......NNNNNNNN......NNN.......NNN.......NNN....NN..NNN.......NNN..NNNN..NN.....NN.......NN........NNN..NNN......NNNNNNNN.......NNN.......NNN.......NN.....NN.......NN....NN..NNN.......NNN........NNNNNNN.......NN...NNN..NNN.......NN....NN.......NN............NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNDI_pwwwq.i%%%%%%%%%%%%{VV5...|t,NNNNNNNNNNNN",
+"NNNNNNNNNNNNNNNN..NNN..NN...NN...NN...NNN...NN...NN..NNN..NN...NN...NNN..NN...NNN..NNN..NN...NN...NNNNNNN...NN...NN..NNN...NN...NN...NNN..NNN..NNN..NN...NNN..NNNN..NN.....NN..NNN..NN...NNN..NNN..NN...NN...NNNNNN...NNN..NNN...NN...NN..NNN..NN.....NN..NNN..NNN..NNN..NNN...NN..NNN..NNN...NNNNNNN..NNN...NN..NN...NN..NNN...NNN..NNN..NN...NN...NN...NN..NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNwRw7www}&.+%%%%%%%%%%xH_V>!zq_wRNHNHNHNHNHNH",
+"NNNNNNNNNNNNNNNN..NNN...N...NN...NNN..NNN..NNNN..NN..NNN...N..NNNN..NN..NNNN..NNN..NNN...N..NNNN..NNNNNNN..NNN..NN...NNNN..NN..NNNN..NNN..NNN..NN...NNN..NNN..NNNN..NN...NNNNNNNN...NN...NNN...NN..NN..NNN...NNNNNN..NNNN...NN..NNNN..NN..NNN...N...NNNNNNNN...NNN..NNN..NNN..NNN..NNN..NNN...NNNNNNN...NNNNNNN..NN..NNN...NNNNNNNN..NN...NN...NN..NNN..NNN..NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNww7w7wwwR...%%%%%%%%%xHWV_WWDwww1NNNNNNNNNNN",
+"HHHHHHHHHHHHHHHH........H..HHH...HHH..HHH..HHHH..HH........H..HHHH..HH..HHHH..HHH........H..HHHH..HHHHHHH..HHHHHHH..HHHHH..HH..HHHH..HHH..HHH..HH..HHHH..HHH..HHHH..HH...HHHHH......HH..HHHHH..HH..HH........HHHHHH..HHHHH..HH..HHHH..HH........H...HHHHH......HHH..HHH..HHH..HHH..HHH..HHHH..HHHHHHHH.....HHHH...H..HHHH......HHHH..HH........HH..HHH..HHH..HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHw4wwwwwww]..-x%%%%x%%%8C44VV4wwww1NHNHNHNHNH",
+"NNNNNNNNNNNNNNNN..NNNNNNN..NNN...NNN..NNN..NNNN..NN..NNNNNNN..NNNN..NN..NNNN..NNN..NNNNNNN..NNNN..NNNNNNN..NNNNNNN..NNNNN..NN..NNNN..NNN..NNN..NN..NNNN..NNN..NNNN..NN..NNNNN..NNN..NN..NNNN...NN..NN..NNNNNNNNNNNN..NNNN...NN..NNNN..NN..NNNNNNN..NNNNN..NNN..NNN..NNN..NNN..NNN..NNN..NNN...NNNNNNNNNN.....NNN.....NNNNNN.....NNN..NN...NNNNNNN..NNN..NNN..NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNwww44wwwwPu/%%%%%%%%%9.D4wwwww7wwwRNNNNNNNNN",
+"NNNNNNNNNNNNNNNN..NNN..NN..NNN...NNN..NNN..NNN...NN..NNN..NN..NNN...NN...NNN..NNN..NNN..NN..NNN...NNNNNNN..NNN...N...NNN...NN..NNNN..NNN..NNN..NN...NNN..NNN..NNN...NN..NNNNN..NNN..NN...NNN..NNN..NN..NNN..NNNNNNN...NNN..NNN..NNN...NN..NNN..NN..NNNNN..NNN..NNN..NNN..NNN..NNN..NNN..NNN...NNNNNNN..NNN...NNN....NNNN..NNNN..NNN..NN...NNN..NN..NNN..NNN..NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNDwwwwwwww74>%%%%%%%%%2.QW4www7w7ww7_%NHNHNHNH",
+"NNNNNNNNNNNNNNNN.......NN..NNN...NNN..NNN.......NNN.......NNN.......NNN.......NNN.......NNN.......NNNNNNNN......NNN.......NNN..NNNN..NNN..NNN..NNN.......NNN........NN..NNNNN.......NN........NNN..NNN......NNNNNNNN.......NNN.......NNN.......NN..NNNNN.......NNN...NN..NNN..NNN..NNN........NNNNNNN...NN...NNN....NNNN...NN...NNN...NN.......NN..NNN..NNN..NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN4wwwww4w4wwV[%%%%%%L...@W4wwww4w44D%NNNNNNNNN",
+"HHHHHHHHHHHHHHHHH.....HHH..HHH...HHH..HHH......HHHHH.....HHHH....H..HHHH...H..HHHH.....HHHH....H..HHHHHHHH.....HHHHH.....HHHH..HHHH..HHH..HHH..HHHH......HHHH.......HH..HHHHH.......HH.......HHHH..HHH.....HHHHHHHHH......HHHH......HHHHH.....HHH..HHHHH.......HHH...HH..HHH..HHH..HHHH.......HHHHHHHH......HHHHH...HHHHH......HHHH...HHH....HHHH..HHH..HHH..HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH>D444wwwwww7_y.+M++.....5Cww4ww4VC9HNHNHNHNHNH",
+"NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN..NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN..NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN..NNNNNNNNNNNNNNNNNNN..NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNl>CW_V4wwwwC!+...vvv..v5lVwwwVWJNNNNNNNNNNNNN",
+"NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN...NNN..NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN..NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN..NNN...NNNNNNNNNNNNNNNNNN...NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN#lWW_Wyz.ukkkBkkYMZ#C_DClHNHNHNHNHNHNHNH",
+"NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN.......NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN..NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN.......NNNNNNNNNNNNNNNNNN...NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN!!!X%NNNNNNNNNNNN#qO!NNNNNNNNNNNNNNNN",
+"HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHNHNHNHNHNHNHNHNHNHNHNHNHNH",
+"NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN",
+"NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNHNHNHNHNHNHNHNHNHNHNHNHNHNH",
+"NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN",
+"HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHNHNHNHNHNHNHNHNHNHNHNHNHNHNH",
+"NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN",
+"NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNHNHNHNHNHNHNHNHNHNHNHNHNHNHNH",
+"NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN",
+"HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHNHNHNHNHNHNHNHNHNHNHNHNHNHNHNH",
+"NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN",
+"NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNHNHNHNHNHNHNHNHNHNHNHNHNHNHNHNH"};
diff --git a/ecos/packages/hal/arm/xscale/uE250/current/src/font.h b/ecos/packages/hal/arm/xscale/uE250/current/src/font.h
new file mode 100644
index 0000000..435d543
--- /dev/null
+++ b/ecos/packages/hal/arm/xscale/uE250/current/src/font.h
@@ -0,0 +1,431 @@
+//==========================================================================
+//
+// font.h
+//
+// LCD/VGA display fonts
+//
+//==========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//==========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): gthomas
+// Contributors: gthomas
+// Date: 2001-02-25
+// Description: Simple LCD/VGA fonts
+//####DESCRIPTIONEND####
+
+#ifndef _LCD_FONT_H_
+#define _LCD_FONT_H_
+
+#if (CYGNUM_UE250_VGA_COMM_FONT_SIZE == 8)
+// 8x8 Font - from Helios
+
+#define FIRST_CHAR 0x20
+#define LAST_CHAR 0x7F
+#define FONT_HEIGHT 8
+#define FONT_WIDTH 8
+#define CURSOR_ON 0x7F
+#define CURSOR_OFF 0x20
+static char font_table[LAST_CHAR-FIRST_CHAR+1][8] =
+{
+ { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, /* */
+ { 0x18, 0x18, 0x18, 0x18, 0x18, 0x00, 0x18, 0x00 }, /* ! */
+ { 0x36, 0x36, 0x36, 0x00, 0x00, 0x00, 0x00, 0x00 }, /* " */
+ { 0x6C, 0x6C, 0xFE, 0x6C, 0xFE, 0x6C, 0x6C, 0x00 }, /* # */
+ { 0x30, 0xFC, 0x16, 0x7C, 0xD0, 0x7E, 0x18, 0x00 }, /* $ */
+ { 0x06, 0x66, 0x30, 0x18, 0x0C, 0x66, 0x60, 0x00 }, /* % */
+ { 0x1C, 0x36, 0x36, 0x1C, 0xB6, 0x66, 0xDC, 0x00 }, /* & */
+ { 0x18, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00 }, /* ' */
+ { 0x30, 0x18, 0x0C, 0x0C, 0x0C, 0x18, 0x30, 0x00 }, /* ( */
+ { 0x0C, 0x18, 0x30, 0x30, 0x30, 0x18, 0x0C, 0x00 }, /* ) */
+ { 0x00, 0x18, 0x7E, 0x3C, 0x7E, 0x18, 0x00, 0x00 }, /* * */
+ { 0x00, 0x18, 0x18, 0x7E, 0x18, 0x18, 0x00, 0x00 }, /* + */
+ { 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x0C }, /* , */
+ { 0x00, 0x00, 0x00, 0x7E, 0x00, 0x00, 0x00, 0x00 }, /* - */
+ { 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x00 }, /* . */
+ { 0x00, 0x60, 0x30, 0x18, 0x0C, 0x06, 0x00, 0x00 }, /* / */
+ { 0x3C, 0x66, 0x76, 0x7E, 0x6E, 0x66, 0x3C, 0x00 }, /* 0 */
+ { 0x18, 0x1C, 0x18, 0x18, 0x18, 0x18, 0x7E, 0x00 }, /* 1 */
+ { 0x3C, 0x66, 0x60, 0x30, 0x18, 0x0C, 0x7E, 0x00 }, /* 2 */
+ { 0x3C, 0x66, 0x60, 0x38, 0x60, 0x66, 0x3C, 0x00 }, /* 3 */
+ { 0x30, 0x38, 0x3C, 0x36, 0x7E, 0x30, 0x30, 0x00 }, /* 4 */
+ { 0x7E, 0x06, 0x3E, 0x60, 0x60, 0x66, 0x3C, 0x00 }, /* 5 */
+ { 0x38, 0x0C, 0x06, 0x3E, 0x66, 0x66, 0x3C, 0x00 }, /* 6 */
+ { 0x7E, 0x60, 0x30, 0x18, 0x0C, 0x0C, 0x0C, 0x00 }, /* 7 */
+ { 0x3C, 0x66, 0x66, 0x3C, 0x66, 0x66, 0x3C, 0x00 }, /* 8 */
+ { 0x3C, 0x66, 0x66, 0x7C, 0x60, 0x30, 0x1C, 0x00 }, /* 9 */
+ { 0x00, 0x00, 0x18, 0x18, 0x00, 0x18, 0x18, 0x00 }, /* : */
+ { 0x00, 0x00, 0x18, 0x18, 0x00, 0x18, 0x18, 0x0C }, /* ; */
+ { 0x30, 0x18, 0x0C, 0x06, 0x0C, 0x18, 0x30, 0x00 }, /* < */
+ { 0x00, 0x00, 0x7E, 0x00, 0x7E, 0x00, 0x00, 0x00 }, /* = */
+ { 0x0C, 0x18, 0x30, 0x60, 0x30, 0x18, 0x0C, 0x00 }, /* > */
+ { 0x3C, 0x66, 0x30, 0x18, 0x18, 0x00, 0x18, 0x00 }, /* ? */
+ { 0x3C, 0x66, 0x76, 0x56, 0x76, 0x06, 0x3C, 0x00 }, /* @ */
+ { 0x3C, 0x66, 0x66, 0x7E, 0x66, 0x66, 0x66, 0x00 }, /* A */
+ { 0x3E, 0x66, 0x66, 0x3E, 0x66, 0x66, 0x3E, 0x00 }, /* B */
+ { 0x3C, 0x66, 0x06, 0x06, 0x06, 0x66, 0x3C, 0x00 }, /* C */
+ { 0x1E, 0x36, 0x66, 0x66, 0x66, 0x36, 0x1E, 0x00 }, /* D */
+ { 0x7E, 0x06, 0x06, 0x3E, 0x06, 0x06, 0x7E, 0x00 }, /* E */
+ { 0x7E, 0x06, 0x06, 0x3E, 0x06, 0x06, 0x06, 0x00 }, /* F */
+ { 0x3C, 0x66, 0x06, 0x76, 0x66, 0x66, 0x3C, 0x00 }, /* G */
+ { 0x66, 0x66, 0x66, 0x7E, 0x66, 0x66, 0x66, 0x00 }, /* H */
+ { 0x7E, 0x18, 0x18, 0x18, 0x18, 0x18, 0x7E, 0x00 }, /* I */
+ { 0x7C, 0x30, 0x30, 0x30, 0x30, 0x36, 0x1C, 0x00 }, /* J */
+ { 0x66, 0x36, 0x1E, 0x0E, 0x1E, 0x36, 0x66, 0x00 }, /* K */
+ { 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x7E, 0x00 }, /* L */
+ { 0xC6, 0xEE, 0xFE, 0xD6, 0xD6, 0xC6, 0xC6, 0x00 }, /* M */
+ { 0x66, 0x66, 0x6E, 0x7E, 0x76, 0x66, 0x66, 0x00 }, /* N */
+ { 0x3C, 0x66, 0x66, 0x66, 0x66, 0x66, 0x3C, 0x00 }, /* O */
+ { 0x3E, 0x66, 0x66, 0x3E, 0x06, 0x06, 0x06, 0x00 }, /* P */
+ { 0x3C, 0x66, 0x66, 0x66, 0x56, 0x36, 0x6C, 0x00 }, /* Q */
+ { 0x3E, 0x66, 0x66, 0x3E, 0x36, 0x66, 0x66, 0x00 }, /* R */
+ { 0x3C, 0x66, 0x06, 0x3C, 0x60, 0x66, 0x3C, 0x00 }, /* S */
+ { 0x7E, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x00 }, /* T */
+ { 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x3C, 0x00 }, /* U */
+ { 0x66, 0x66, 0x66, 0x66, 0x66, 0x3C, 0x18, 0x00 }, /* V */
+ { 0xC6, 0xC6, 0xD6, 0xD6, 0xFE, 0xEE, 0xC6, 0x00 }, /* W */
+ { 0x66, 0x66, 0x3C, 0x18, 0x3C, 0x66, 0x66, 0x00 }, /* X */
+ { 0x66, 0x66, 0x66, 0x3C, 0x18, 0x18, 0x18, 0x00 }, /* Y */
+ { 0x7E, 0x60, 0x30, 0x18, 0x0C, 0x06, 0x7E, 0x00 }, /* Z */
+ { 0x3E, 0x06, 0x06, 0x06, 0x06, 0x06, 0x3E, 0x00 }, /* [ */
+ { 0x00, 0x06, 0x0C, 0x18, 0x30, 0x60, 0x00, 0x00 }, /* \ */
+ { 0x7C, 0x60, 0x60, 0x60, 0x60, 0x60, 0x7C, 0x00 }, /* ] */
+ { 0x3C, 0x66, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, /* ^ */
+ { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF }, /* _ */
+ { 0x0C, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, /* ` */
+ { 0x00, 0x00, 0x3C, 0x60, 0x7C, 0x66, 0x7C, 0x00 }, /* a */
+ { 0x06, 0x06, 0x3E, 0x66, 0x66, 0x66, 0x3E, 0x00 }, /* b */
+ { 0x00, 0x00, 0x3C, 0x66, 0x06, 0x66, 0x3C, 0x00 }, /* c */
+ { 0x60, 0x60, 0x7C, 0x66, 0x66, 0x66, 0x7C, 0x00 }, /* d */
+ { 0x00, 0x00, 0x3C, 0x66, 0x7E, 0x06, 0x3C, 0x00 }, /* e */
+ { 0x38, 0x0C, 0x0C, 0x3E, 0x0C, 0x0C, 0x0C, 0x00 }, /* f */
+ { 0x00, 0x00, 0x7C, 0x66, 0x66, 0x7C, 0x60, 0x3C }, /* g */
+ { 0x06, 0x06, 0x3E, 0x66, 0x66, 0x66, 0x66, 0x00 }, /* h */
+ { 0x18, 0x00, 0x1C, 0x18, 0x18, 0x18, 0x3C, 0x00 }, /* i */
+ { 0x18, 0x00, 0x1C, 0x18, 0x18, 0x18, 0x18, 0x0E }, /* j */
+ { 0x06, 0x06, 0x66, 0x36, 0x1E, 0x36, 0x66, 0x00 }, /* k */
+ { 0x1C, 0x18, 0x18, 0x18, 0x18, 0x18, 0x3C, 0x00 }, /* l */
+ { 0x00, 0x00, 0x6C, 0xFE, 0xD6, 0xD6, 0xC6, 0x00 }, /* m */
+ { 0x00, 0x00, 0x3E, 0x66, 0x66, 0x66, 0x66, 0x00 }, /* n */
+ { 0x00, 0x00, 0x3C, 0x66, 0x66, 0x66, 0x3C, 0x00 }, /* o */
+ { 0x00, 0x00, 0x3E, 0x66, 0x66, 0x3E, 0x06, 0x06 }, /* p */
+ { 0x00, 0x00, 0x7C, 0x66, 0x66, 0x7C, 0x60, 0xE0 }, /* q */
+ { 0x00, 0x00, 0x36, 0x6E, 0x06, 0x06, 0x06, 0x00 }, /* r */
+ { 0x00, 0x00, 0x7C, 0x06, 0x3C, 0x60, 0x3E, 0x00 }, /* s */
+ { 0x0C, 0x0C, 0x3E, 0x0C, 0x0C, 0x0C, 0x38, 0x00 }, /* t */
+ { 0x00, 0x00, 0x66, 0x66, 0x66, 0x66, 0x7C, 0x00 }, /* u */
+ { 0x00, 0x00, 0x66, 0x66, 0x66, 0x3C, 0x18, 0x00 }, /* v */
+ { 0x00, 0x00, 0xC6, 0xD6, 0xD6, 0xFE, 0x6C, 0x00 }, /* w */
+ { 0x00, 0x00, 0x66, 0x3C, 0x18, 0x3C, 0x66, 0x00 }, /* x */
+ { 0x00, 0x00, 0x66, 0x66, 0x66, 0x7C, 0x60, 0x3C }, /* y */
+ { 0x00, 0x00, 0x7E, 0x30, 0x18, 0x0C, 0x7E, 0x00 }, /* z */
+ { 0x30, 0x18, 0x18, 0x0E, 0x18, 0x18, 0x30, 0x00 }, /* { */
+ { 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x00 }, /* | */
+ { 0x0C, 0x18, 0x18, 0x70, 0x18, 0x18, 0x0C, 0x00 }, /* } */
+ { 0x8C, 0xD6, 0x62, 0x00, 0x00, 0x00, 0x00, 0x00 }, /* ~ */
+ { 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF } /* Block cursor */
+};
+#else
+
+// 8x16 Font - from UniFLEX
+
+#define FIRST_CHAR 0x00
+#define LAST_CHAR 0xFF
+#define FONT_HEIGHT 16
+#define FONT_WIDTH 8
+#define FONT_LEFT_TO_RIGHT
+#define CURSOR_ON 0xB1
+#define CURSOR_OFF 0x20
+static char font_table[LAST_CHAR-FIRST_CHAR+1][FONT_HEIGHT] = {
+/* 0x00 */ {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
+/* 0x01 */ {0x00,0x00,0x7E,0x81,0xA5,0x81,0x81,0xBD,0x99,0x81,0x81,0x7E,0x00,0x00,0x00,0x00},
+/* 0x02 */ {0x00,0x00,0x7E,0xFF,0xDB,0xFF,0xFF,0xC3,0xC3,0xE7,0xFF,0x7E,0x00,0x00,0x00,0x00},
+/* 0x03 */ {0x00,0x00,0x00,0x00,0x6C,0xFE,0xFE,0xFE,0xFE,0x7C,0x38,0x10,0x00,0x00,0x00,0x00},
+/* 0x04 */ {0x00,0x00,0x00,0x00,0x10,0x38,0x7C,0xFE,0x7C,0x38,0x10,0x00,0x00,0x00,0x00,0x00},
+/* 0x05 */ {0x00,0x00,0x00,0x18,0x3C,0x3C,0xE7,0xE7,0xE7,0x18,0x18,0x3C,0x00,0x00,0x00,0x00},
+/* 0x06 */ {0x00,0x00,0x00,0x18,0x3C,0x7E,0xFF,0xFF,0x7E,0x18,0x18,0x3C,0x00,0x00,0x00,0x00},
+/* 0x07 */ {0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x3C,0x3C,0x18,0x00,0x00,0x00,0x00,0x00,0x00},
+/* 0x08 */ {0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xE7,0xC3,0xC3,0xE7,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF},
+/* 0x09 */ {0x00,0x00,0x00,0x00,0x00,0x3C,0x66,0x42,0x42,0x66,0x3C,0x00,0x00,0x00,0x00,0x00},
+/* 0x0A */ {0xFF,0xFF,0xFF,0xFF,0xFF,0xC3,0x99,0xBD,0xBD,0x99,0xC3,0xFF,0xFF,0xFF,0xFF,0xFF},
+/* 0x0B */ {0x00,0x00,0x3E,0x0E,0x1A,0x32,0x78,0xCC,0xCC,0xCC,0xCC,0x78,0x00,0x00,0x00,0x00},
+/* 0x0C */ {0x00,0x00,0x3C,0x66,0x66,0x66,0x66,0x3C,0x18,0x7E,0x18,0x18,0x00,0x00,0x00,0x00},
+/* 0x0D */ {0x00,0x00,0x30,0x38,0x3C,0x36,0x33,0x30,0x30,0x70,0xF0,0xE0,0x00,0x00,0x00,0x00},
+/* 0x0E */ {0x00,0x00,0x7F,0x63,0x7F,0x63,0x63,0x63,0x63,0x67,0xE7,0xE6,0xC0,0x00,0x00,0x00},
+/* 0x0F */ {0x00,0x00,0x00,0x18,0x18,0xDB,0x3C,0xE7,0x3C,0xDB,0x18,0x18,0x00,0x00,0x00,0x00},
+/* 0x10 */ {0x00,0x80,0xC0,0xE0,0xF0,0xF8,0xFE,0xF8,0xF0,0xE0,0xC0,0x80,0x00,0x00,0x00,0x00},
+/* 0x11 */ {0x00,0x02,0x06,0x0E,0x1E,0x3E,0xFE,0x3E,0x1E,0x0E,0x06,0x02,0x00,0x00,0x00,0x00},
+/* 0x12 */ {0x00,0x00,0x18,0x3C,0x7E,0x18,0x18,0x18,0x7E,0x3C,0x18,0x00,0x00,0x00,0x00,0x00},
+/* 0x13 */ {0x00,0x00,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x00,0x66,0x66,0x00,0x00,0x00,0x00},
+/* 0x14 */ {0x00,0x00,0x7F,0xDB,0xDB,0xDB,0x7B,0x1B,0x1B,0x1B,0x1B,0x1B,0x00,0x00,0x00,0x00},
+/* 0x15 */ {0x00,0x7C,0xC6,0x60,0x38,0x6C,0xC6,0xC6,0x6C,0x38,0x0C,0xC6,0x7C,0x00,0x00,0x00},
+/* 0x16 */ {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFE,0xFE,0xFE,0xFE,0x00,0x00,0x00,0x00},
+/* 0x17 */ {0x00,0x00,0x18,0x3C,0x7E,0x18,0x18,0x18,0x7E,0x3C,0x18,0x7E,0x00,0x00,0x00,0x00},
+/* 0x18 */ {0x00,0x00,0x18,0x3C,0x7E,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x00,0x00,0x00,0x00},
+/* 0x19 */ {0x00,0x00,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x7E,0x3C,0x18,0x00,0x00,0x00,0x00},
+/* 0x1A */ {0x00,0x00,0x00,0x00,0x00,0x18,0x0C,0xFE,0x0C,0x18,0x00,0x00,0x00,0x00,0x00,0x00},
+/* 0x1B */ {0x00,0x00,0x00,0x00,0x00,0x30,0x60,0xFE,0x60,0x30,0x00,0x00,0x00,0x00,0x00,0x00},
+/* 0x1C */ {0x00,0x00,0x00,0x00,0x00,0x00,0xC0,0xC0,0xC0,0xFE,0x00,0x00,0x00,0x00,0x00,0x00},
+/* 0x1D */ {0x00,0x00,0x00,0x00,0x00,0x28,0x6C,0xFE,0x6C,0x28,0x00,0x00,0x00,0x00,0x00,0x00},
+/* 0x1E */ {0x00,0x00,0x00,0x00,0x10,0x38,0x38,0x7C,0x7C,0xFE,0xFE,0x00,0x00,0x00,0x00,0x00},
+/* 0x1F */ {0x00,0x00,0x00,0x00,0xFE,0xFE,0x7C,0x7C,0x38,0x38,0x10,0x00,0x00,0x00,0x00,0x00},
+/* 0x20 */ {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
+/* 0x21 */ {0x00,0x00,0x18,0x3C,0x3C,0x3C,0x18,0x18,0x18,0x00,0x18,0x18,0x00,0x00,0x00,0x00},
+/* 0x22 */ {0x00,0x66,0x66,0x66,0x24,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
+/* 0x23 */ {0x00,0x00,0x00,0x6C,0x6C,0xFE,0x6C,0x6C,0x6C,0xFE,0x6C,0x6C,0x00,0x00,0x00,0x00},
+/* 0x24 */ {0x18,0x18,0x7C,0xC6,0xC2,0xC0,0x7C,0x06,0x06,0x86,0xC6,0x7C,0x18,0x18,0x00,0x00},
+/* 0x25 */ {0x00,0x00,0x00,0x00,0xC2,0xC6,0x0C,0x18,0x30,0x60,0xC6,0x86,0x00,0x00,0x00,0x00},
+/* 0x26 */ {0x00,0x00,0x38,0x6C,0x6C,0x38,0x76,0xDC,0xCC,0xCC,0xCC,0x76,0x00,0x00,0x00,0x00},
+/* 0x27 */ {0x00,0x30,0x30,0x30,0x60,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
+/* 0x28 */ {0x00,0x00,0x0C,0x18,0x30,0x30,0x30,0x30,0x30,0x30,0x18,0x0C,0x00,0x00,0x00,0x00},
+/* 0x29 */ {0x00,0x00,0x30,0x18,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x18,0x30,0x00,0x00,0x00,0x00},
+/* 0x2A */ {0x00,0x00,0x00,0x00,0x00,0x66,0x3C,0xFF,0x3C,0x66,0x00,0x00,0x00,0x00,0x00,0x00},
+/* 0x2B */ {0x00,0x00,0x00,0x00,0x00,0x18,0x18,0x7E,0x18,0x18,0x00,0x00,0x00,0x00,0x00,0x00},
+/* 0x2C */ {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x18,0x18,0x30,0x00,0x00,0x00},
+/* 0x2D */ {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFE,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
+/* 0x2E */ {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x18,0x00,0x00,0x00,0x00},
+/* 0x2F */ {0x00,0x00,0x00,0x00,0x02,0x06,0x0C,0x18,0x30,0x60,0xC0,0x80,0x00,0x00,0x00,0x00},
+/* 0x30 */ {0x00,0x00,0x38,0x6C,0xC6,0xC6,0xD6,0xD6,0xC6,0xC6,0x6C,0x38,0x00,0x00,0x00,0x00},
+/* 0x31 */ {0x00,0x00,0x18,0x38,0x78,0x18,0x18,0x18,0x18,0x18,0x18,0x7E,0x00,0x00,0x00,0x00},
+/* 0x32 */ {0x00,0x00,0x7C,0xC6,0x06,0x0C,0x18,0x30,0x60,0xC0,0xC6,0xFE,0x00,0x00,0x00,0x00},
+/* 0x33 */ {0x00,0x00,0x7C,0xC6,0x06,0x06,0x3C,0x06,0x06,0x06,0xC6,0x7C,0x00,0x00,0x00,0x00},
+/* 0x34 */ {0x00,0x00,0x0C,0x1C,0x3C,0x6C,0xCC,0xFE,0x0C,0x0C,0x0C,0x1E,0x00,0x00,0x00,0x00},
+/* 0x35 */ {0x00,0x00,0xFE,0xC0,0xC0,0xC0,0xFC,0x06,0x06,0x06,0xC6,0x7C,0x00,0x00,0x00,0x00},
+/* 0x36 */ {0x00,0x00,0x38,0x60,0xC0,0xC0,0xFC,0xC6,0xC6,0xC6,0xC6,0x7C,0x00,0x00,0x00,0x00},
+/* 0x37 */ {0x00,0x00,0xFE,0xC6,0x06,0x06,0x0C,0x18,0x30,0x30,0x30,0x30,0x00,0x00,0x00,0x00},
+/* 0x38 */ {0x00,0x00,0x7C,0xC6,0xC6,0xC6,0x7C,0xC6,0xC6,0xC6,0xC6,0x7C,0x00,0x00,0x00,0x00},
+/* 0x39 */ {0x00,0x00,0x7C,0xC6,0xC6,0xC6,0x7E,0x06,0x06,0x06,0x0C,0x78,0x00,0x00,0x00,0x00},
+/* 0x3A */ {0x00,0x00,0x00,0x00,0x18,0x18,0x00,0x00,0x00,0x18,0x18,0x00,0x00,0x00,0x00,0x00},
+/* 0x3B */ {0x00,0x00,0x00,0x00,0x18,0x18,0x00,0x00,0x00,0x18,0x18,0x30,0x00,0x00,0x00,0x00},
+/* 0x3C */ {0x00,0x00,0x00,0x06,0x0C,0x18,0x30,0x60,0x30,0x18,0x0C,0x06,0x00,0x00,0x00,0x00},
+/* 0x3D */ {0x00,0x00,0x00,0x00,0x00,0x7E,0x00,0x00,0x7E,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
+/* 0x3E */ {0x00,0x00,0x00,0x60,0x30,0x18,0x0C,0x06,0x0C,0x18,0x30,0x60,0x00,0x00,0x00,0x00},
+/* 0x3F */ {0x00,0x00,0x7C,0xC6,0xC6,0x0C,0x18,0x18,0x18,0x00,0x18,0x18,0x00,0x00,0x00,0x00},
+/* 0x40 */ {0x00,0x00,0x00,0x7C,0xC6,0xC6,0xDE,0xDE,0xDE,0xDC,0xC0,0x7C,0x00,0x00,0x00,0x00},
+/* 0x41 */ {0x00,0x00,0x10,0x38,0x6C,0xC6,0xC6,0xFE,0xC6,0xC6,0xC6,0xC6,0x00,0x00,0x00,0x00},
+/* 0x42 */ {0x00,0x00,0xFC,0x66,0x66,0x66,0x7C,0x66,0x66,0x66,0x66,0xFC,0x00,0x00,0x00,0x00},
+/* 0x43 */ {0x00,0x00,0x3C,0x66,0xC2,0xC0,0xC0,0xC0,0xC0,0xC2,0x66,0x3C,0x00,0x00,0x00,0x00},
+/* 0x44 */ {0x00,0x00,0xF8,0x6C,0x66,0x66,0x66,0x66,0x66,0x66,0x6C,0xF8,0x00,0x00,0x00,0x00},
+/* 0x45 */ {0x00,0x00,0xFE,0x66,0x62,0x68,0x78,0x68,0x60,0x62,0x66,0xFE,0x00,0x00,0x00,0x00},
+/* 0x46 */ {0x00,0x00,0xFE,0x66,0x62,0x68,0x78,0x68,0x60,0x60,0x60,0xF0,0x00,0x00,0x00,0x00},
+/* 0x47 */ {0x00,0x00,0x3C,0x66,0xC2,0xC0,0xC0,0xDE,0xC6,0xC6,0x66,0x3A,0x00,0x00,0x00,0x00},
+/* 0x48 */ {0x00,0x00,0xC6,0xC6,0xC6,0xC6,0xFE,0xC6,0xC6,0xC6,0xC6,0xC6,0x00,0x00,0x00,0x00},
+/* 0x49 */ {0x00,0x00,0x3C,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x3C,0x00,0x00,0x00,0x00},
+/* 0x4A */ {0x00,0x00,0x1E,0x0C,0x0C,0x0C,0x0C,0x0C,0xCC,0xCC,0xCC,0x78,0x00,0x00,0x00,0x00},
+/* 0x4B */ {0x00,0x00,0xE6,0x66,0x66,0x6C,0x78,0x78,0x6C,0x66,0x66,0xE6,0x00,0x00,0x00,0x00},
+/* 0x4C */ {0x00,0x00,0xF0,0x60,0x60,0x60,0x60,0x60,0x60,0x62,0x66,0xFE,0x00,0x00,0x00,0x00},
+/* 0x4D */ {0x00,0x00,0xC6,0xEE,0xFE,0xFE,0xD6,0xC6,0xC6,0xC6,0xC6,0xC6,0x00,0x00,0x00,0x00},
+/* 0x4E */ {0x00,0x00,0xC6,0xE6,0xF6,0xFE,0xDE,0xCE,0xC6,0xC6,0xC6,0xC6,0x00,0x00,0x00,0x00},
+/* 0x4F */ {0x00,0x00,0x7C,0xC6,0xC6,0xC6,0xC6,0xC6,0xC6,0xC6,0xC6,0x7C,0x00,0x00,0x00,0x00},
+/* 0x50 */ {0x00,0x00,0xFC,0x66,0x66,0x66,0x7C,0x60,0x60,0x60,0x60,0xF0,0x00,0x00,0x00,0x00},
+/* 0x51 */ {0x00,0x00,0x7C,0xC6,0xC6,0xC6,0xC6,0xC6,0xC6,0xD6,0xDE,0x7C,0x0C,0x0E,0x00,0x00},
+/* 0x52 */ {0x00,0x00,0xFC,0x66,0x66,0x66,0x7C,0x6C,0x66,0x66,0x66,0xE6,0x00,0x00,0x00,0x00},
+/* 0x53 */ {0x00,0x00,0x7C,0xC6,0xC6,0x60,0x38,0x0C,0x06,0xC6,0xC6,0x7C,0x00,0x00,0x00,0x00},
+/* 0x54 */ {0x00,0x00,0x7E,0x7E,0x5A,0x18,0x18,0x18,0x18,0x18,0x18,0x3C,0x00,0x00,0x00,0x00},
+/* 0x55 */ {0x00,0x00,0xC6,0xC6,0xC6,0xC6,0xC6,0xC6,0xC6,0xC6,0xC6,0x7C,0x00,0x00,0x00,0x00},
+/* 0x56 */ {0x00,0x00,0xC6,0xC6,0xC6,0xC6,0xC6,0xC6,0xC6,0x6C,0x38,0x10,0x00,0x00,0x00,0x00},
+/* 0x57 */ {0x00,0x00,0xC6,0xC6,0xC6,0xC6,0xD6,0xD6,0xD6,0xFE,0xEE,0x6C,0x00,0x00,0x00,0x00},
+/* 0x58 */ {0x00,0x00,0xC6,0xC6,0x6C,0x7C,0x38,0x38,0x7C,0x6C,0xC6,0xC6,0x00,0x00,0x00,0x00},
+/* 0x59 */ {0x00,0x00,0x66,0x66,0x66,0x66,0x3C,0x18,0x18,0x18,0x18,0x3C,0x00,0x00,0x00,0x00},
+/* 0x5A */ {0x00,0x00,0xFE,0xC6,0x86,0x0C,0x18,0x30,0x60,0xC2,0xC6,0xFE,0x00,0x00,0x00,0x00},
+/* 0x5B */ {0x00,0x00,0x3C,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x3C,0x00,0x00,0x00,0x00},
+/* 0x5C */ {0x00,0x00,0x00,0x80,0xC0,0xE0,0x70,0x38,0x1C,0x0E,0x06,0x02,0x00,0x00,0x00,0x00},
+/* 0x5D */ {0x00,0x00,0x3C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x3C,0x00,0x00,0x00,0x00},
+/* 0x5E */ {0x10,0x38,0x6C,0xC6,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
+/* 0x5F */ {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x00,0x00},
+/* 0x60 */ {0x30,0x30,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
+/* 0x61 */ {0x00,0x00,0x00,0x00,0x00,0x78,0x0C,0x7C,0xCC,0xCC,0xCC,0x76,0x00,0x00,0x00,0x00},
+/* 0x62 */ {0x00,0x00,0xE0,0x60,0x60,0x78,0x6C,0x66,0x66,0x66,0x66,0x7C,0x00,0x00,0x00,0x00},
+/* 0x63 */ {0x00,0x00,0x00,0x00,0x00,0x7C,0xC6,0xC0,0xC0,0xC0,0xC6,0x7C,0x00,0x00,0x00,0x00},
+/* 0x64 */ {0x00,0x00,0x1C,0x0C,0x0C,0x3C,0x6C,0xCC,0xCC,0xCC,0xCC,0x76,0x00,0x00,0x00,0x00},
+/* 0x65 */ {0x00,0x00,0x00,0x00,0x00,0x7C,0xC6,0xFE,0xC0,0xC0,0xC6,0x7C,0x00,0x00,0x00,0x00},
+/* 0x66 */ {0x00,0x00,0x38,0x6C,0x64,0x60,0xF0,0x60,0x60,0x60,0x60,0xF0,0x00,0x00,0x00,0x00},
+/* 0x67 */ {0x00,0x00,0x00,0x00,0x00,0x3E,0x66,0x66,0x66,0x66,0x66,0x3E,0x06,0x66,0x3C,0x00},
+/* 0x68 */ {0x00,0x00,0xE0,0x60,0x60,0x6C,0x76,0x66,0x66,0x66,0x66,0xE6,0x00,0x00,0x00,0x00},
+/* 0x69 */ {0x00,0x00,0x18,0x18,0x00,0x38,0x18,0x18,0x18,0x18,0x18,0x3C,0x00,0x00,0x00,0x00},
+/* 0x6A */ {0x00,0x00,0x06,0x06,0x00,0x0E,0x06,0x06,0x06,0x06,0x06,0x06,0x66,0x66,0x3C,0x00},
+/* 0x6B */ {0x00,0x00,0xE0,0x60,0x60,0x66,0x6C,0x78,0x78,0x6C,0x66,0xE6,0x00,0x00,0x00,0x00},
+/* 0x6C */ {0x00,0x00,0x38,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x3C,0x00,0x00,0x00,0x00},
+/* 0x6D */ {0x00,0x00,0x00,0x00,0x00,0x6C,0xFE,0xD6,0xD6,0xD6,0xC6,0xC6,0x00,0x00,0x00,0x00},
+/* 0x6E */ {0x00,0x00,0x00,0x00,0x00,0xDC,0x66,0x66,0x66,0x66,0x66,0x66,0x00,0x00,0x00,0x00},
+/* 0x6F */ {0x00,0x00,0x00,0x00,0x00,0x7C,0xC6,0xC6,0xC6,0xC6,0xC6,0x7C,0x00,0x00,0x00,0x00},
+/* 0x70 */ {0x00,0x00,0x00,0x00,0x00,0xFC,0x66,0x66,0x66,0x66,0x66,0x7C,0x60,0x60,0xF0,0x00},
+/* 0x71 */ {0x00,0x00,0x00,0x00,0x00,0x7E,0xCC,0xCC,0xCC,0xCC,0xCC,0x7C,0x0C,0x0C,0x1E,0x00},
+/* 0x72 */ {0x00,0x00,0x00,0x00,0x00,0xDC,0x76,0x66,0x60,0x60,0x60,0xF0,0x00,0x00,0x00,0x00},
+/* 0x73 */ {0x00,0x00,0x00,0x00,0x00,0x7C,0xC6,0x60,0x38,0x0C,0xC6,0x7C,0x00,0x00,0x00,0x00},
+/* 0x74 */ {0x00,0x00,0x10,0x30,0x30,0xFC,0x30,0x30,0x30,0x30,0x36,0x1C,0x00,0x00,0x00,0x00},
+/* 0x75 */ {0x00,0x00,0x00,0x00,0x00,0xCC,0xCC,0xCC,0xCC,0xCC,0xCC,0x76,0x00,0x00,0x00,0x00},
+/* 0x76 */ {0x00,0x00,0x00,0x00,0x00,0x66,0x66,0x66,0x66,0x66,0x3C,0x18,0x00,0x00,0x00,0x00},
+/* 0x77 */ {0x00,0x00,0x00,0x00,0x00,0xC6,0xC6,0xD6,0xD6,0xD6,0xFE,0x6C,0x00,0x00,0x00,0x00},
+/* 0x78 */ {0x00,0x00,0x00,0x00,0x00,0xC6,0x6C,0x38,0x38,0x38,0x6C,0xC6,0x00,0x00,0x00,0x00},
+/* 0x79 */ {0x00,0x00,0x00,0x00,0x00,0xC6,0xC6,0xC6,0xC6,0xC6,0xC6,0x7E,0x06,0x0C,0xF8,0x00},
+/* 0x7A */ {0x00,0x00,0x00,0x00,0x00,0xFE,0xCC,0x18,0x30,0x60,0xC6,0xFE,0x00,0x00,0x00,0x00},
+/* 0x7B */ {0x00,0x00,0x0E,0x18,0x18,0x18,0x70,0x18,0x18,0x18,0x18,0x0E,0x00,0x00,0x00,0x00},
+/* 0x7C */ {0x00,0x00,0x18,0x18,0x18,0x18,0x00,0x18,0x18,0x18,0x18,0x18,0x00,0x00,0x00,0x00},
+/* 0x7D */ {0x00,0x00,0x70,0x18,0x18,0x18,0x0E,0x18,0x18,0x18,0x18,0x70,0x00,0x00,0x00,0x00},
+/* 0x7E */ {0x00,0x00,0x76,0xDC,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
+/* 0x7F */ {0x00,0x00,0x00,0x00,0x10,0x38,0x6C,0xC6,0xC6,0xC6,0xFE,0x00,0x00,0x00,0x00,0x00},
+/* 0x80 */ {0x00,0x00,0x3C,0x66,0xC2,0xC0,0xC0,0xC0,0xC2,0x66,0x3C,0x0C,0x06,0x7C,0x00,0x00},
+/* 0x81 */ {0x00,0x00,0xCC,0x00,0x00,0xCC,0xCC,0xCC,0xCC,0xCC,0xCC,0x76,0x00,0x00,0x00,0x00},
+/* 0x82 */ {0x00,0x0C,0x18,0x30,0x00,0x7C,0xC6,0xC6,0xFE,0xC0,0xC6,0x7C,0x00,0x00,0x00,0x00},
+/* 0x83 */ {0x00,0x10,0x38,0x6C,0x00,0x78,0x0C,0x7C,0xCC,0xCC,0xCC,0x76,0x00,0x00,0x00,0x00},
+/* 0x84 */ {0x00,0x00,0xCC,0x00,0x00,0x78,0x0C,0x7C,0xCC,0xCC,0xCC,0x76,0x00,0x00,0x00,0x00},
+/* 0x85 */ {0x00,0x60,0x30,0x18,0x00,0x78,0x0C,0x7C,0xCC,0xCC,0xCC,0x76,0x00,0x00,0x00,0x00},
+/* 0x86 */ {0x00,0x38,0x6C,0x38,0x00,0x78,0x0C,0x7C,0xCC,0xCC,0xCC,0x76,0x00,0x00,0x00,0x00},
+/* 0x87 */ {0x00,0x00,0x00,0x00,0x3C,0x66,0x60,0x60,0x66,0x3C,0x0C,0x06,0x3C,0x00,0x00,0x00},
+/* 0x88 */ {0x00,0x10,0x38,0x6C,0x00,0x7C,0xC6,0xC6,0xFE,0xC0,0xC6,0x7C,0x00,0x00,0x00,0x00},
+/* 0x89 */ {0x00,0x00,0xC6,0x00,0x00,0x7C,0xC6,0xC6,0xFE,0xC0,0xC6,0x7C,0x00,0x00,0x00,0x00},
+/* 0x8A */ {0x00,0x60,0x30,0x18,0x00,0x7C,0xC6,0xC6,0xFE,0xC0,0xC6,0x7C,0x00,0x00,0x00,0x00},
+/* 0x8B */ {0x00,0x00,0x66,0x00,0x00,0x38,0x18,0x18,0x18,0x18,0x18,0x3C,0x00,0x00,0x00,0x00},
+/* 0x8C */ {0x00,0x18,0x3C,0x66,0x00,0x38,0x18,0x18,0x18,0x18,0x18,0x3C,0x00,0x00,0x00,0x00},
+/* 0x8D */ {0x00,0x60,0x30,0x18,0x00,0x38,0x18,0x18,0x18,0x18,0x18,0x3C,0x00,0x00,0x00,0x00},
+/* 0x8E */ {0x00,0xC6,0x00,0x10,0x38,0x6C,0xC6,0xC6,0xFE,0xC6,0xC6,0xC6,0x00,0x00,0x00,0x00},
+/* 0x8F */ {0x38,0x6C,0x38,0x00,0x38,0x6C,0xC6,0xC6,0xFE,0xC6,0xC6,0xC6,0x00,0x00,0x00,0x00},
+/* 0x90 */ {0x18,0x30,0x60,0x00,0xFE,0x66,0x60,0x7C,0x60,0x60,0x66,0xFE,0x00,0x00,0x00,0x00},
+/* 0x91 */ {0x00,0x00,0x00,0x00,0x00,0xCC,0x76,0x36,0x7E,0xD8,0xD8,0x6E,0x00,0x00,0x00,0x00},
+/* 0x92 */ {0x00,0x00,0x3E,0x6C,0xCC,0xCC,0xFE,0xCC,0xCC,0xCC,0xCC,0xCE,0x00,0x00,0x00,0x00},
+/* 0x93 */ {0x00,0x10,0x38,0x6C,0x00,0x7C,0xC6,0xC6,0xC6,0xC6,0xC6,0x7C,0x00,0x00,0x00,0x00},
+/* 0x94 */ {0x00,0x00,0xC6,0x00,0x00,0x7C,0xC6,0xC6,0xC6,0xC6,0xC6,0x7C,0x00,0x00,0x00,0x00},
+/* 0x95 */ {0x00,0x60,0x30,0x18,0x00,0x7C,0xC6,0xC6,0xC6,0xC6,0xC6,0x7C,0x00,0x00,0x00,0x00},
+/* 0x96 */ {0x00,0x30,0x78,0xCC,0x00,0xCC,0xCC,0xCC,0xCC,0xCC,0xCC,0x76,0x00,0x00,0x00,0x00},
+/* 0x97 */ {0x00,0x60,0x30,0x18,0x00,0xCC,0xCC,0xCC,0xCC,0xCC,0xCC,0x76,0x00,0x00,0x00,0x00},
+/* 0x98 */ {0x00,0x00,0xC6,0x00,0x00,0xC6,0xC6,0xC6,0xC6,0xC6,0xC6,0x7E,0x06,0x0C,0x78,0x00},
+/* 0x99 */ {0x00,0xC6,0x00,0x7C,0xC6,0xC6,0xC6,0xC6,0xC6,0xC6,0xC6,0x7C,0x00,0x00,0x00,0x00},
+/* 0x9A */ {0x00,0xC6,0x00,0xC6,0xC6,0xC6,0xC6,0xC6,0xC6,0xC6,0xC6,0x7C,0x00,0x00,0x00,0x00},
+/* 0x9B */ {0x00,0x18,0x18,0x3C,0x66,0x60,0x60,0x60,0x66,0x3C,0x18,0x18,0x00,0x00,0x00,0x00},
+/* 0x9C */ {0x00,0x38,0x6C,0x64,0x60,0xF8,0x60,0x60,0x60,0x60,0xE6,0xFC,0x00,0x00,0x00,0x00},
+/* 0x9D */ {0x00,0x00,0x66,0x66,0x3C,0x18,0x7E,0x18,0x7E,0x18,0x18,0x18,0x00,0x00,0x00,0x00},
+/* 0x9E */ {0x00,0xF8,0xCC,0xCC,0xF8,0xC4,0xCC,0xDE,0xCC,0xCC,0xCC,0xC6,0x00,0x00,0x00,0x00},
+/* 0x9F */ {0x00,0x0E,0x1B,0x18,0x18,0x18,0x7E,0x18,0x18,0x18,0x18,0x18,0xD8,0x70,0x00,0x00},
+/* 0xA0 */ {0x00,0x18,0x30,0x60,0x00,0x78,0x0C,0x7C,0xCC,0xCC,0xCC,0x76,0x00,0x00,0x00,0x00},
+/* 0xA1 */ {0x00,0x0C,0x18,0x30,0x00,0x38,0x18,0x18,0x18,0x18,0x18,0x3C,0x00,0x00,0x00,0x00},
+/* 0xA2 */ {0x00,0x18,0x30,0x60,0x00,0x7C,0xC6,0xC6,0xC6,0xC6,0xC6,0x7C,0x00,0x00,0x00,0x00},
+/* 0xA3 */ {0x00,0x18,0x30,0x60,0x00,0xCC,0xCC,0xCC,0xCC,0xCC,0xCC,0x76,0x00,0x00,0x00,0x00},
+/* 0xA4 */ {0x00,0x00,0x76,0xDC,0x00,0xDC,0x66,0x66,0x66,0x66,0x66,0x66,0x00,0x00,0x00,0x00},
+/* 0xA5 */ {0x76,0xDC,0x00,0xC6,0xE6,0xF6,0xFE,0xDE,0xCE,0xC6,0xC6,0xC6,0x00,0x00,0x00,0x00},
+/* 0xA6 */ {0x00,0x3C,0x6C,0x6C,0x3E,0x00,0x7E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
+/* 0xA7 */ {0x00,0x38,0x6C,0x6C,0x38,0x00,0x7C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
+/* 0xA8 */ {0x00,0x00,0x30,0x30,0x00,0x30,0x30,0x60,0xC0,0xC6,0xC6,0x7C,0x00,0x00,0x00,0x00},
+/* 0xA9 */ {0x00,0x00,0x00,0x00,0x00,0x00,0xFE,0xC0,0xC0,0xC0,0xC0,0x00,0x00,0x00,0x00,0x00},
+/* 0xAA */ {0x00,0x00,0x00,0x00,0x00,0x00,0xFE,0x06,0x06,0x06,0x06,0x00,0x00,0x00,0x00,0x00},
+/* 0xAB */ {0x00,0xC0,0xC0,0xC2,0xC6,0xCC,0x18,0x30,0x60,0xDC,0x86,0x0C,0x18,0x3E,0x00,0x00},
+/* 0xAC */ {0x00,0xC0,0xC0,0xC2,0xC6,0xCC,0x18,0x30,0x66,0xCE,0x9E,0x3E,0x06,0x06,0x00,0x00},
+/* 0xAD */ {0x00,0x00,0x18,0x18,0x00,0x18,0x18,0x18,0x3C,0x3C,0x3C,0x18,0x00,0x00,0x00,0x00},
+/* 0xAE */ {0x00,0x00,0x00,0x00,0x00,0x36,0x6C,0xD8,0x6C,0x36,0x00,0x00,0x00,0x00,0x00,0x00},
+/* 0xAF */ {0x00,0x00,0x00,0x00,0x00,0xD8,0x6C,0x36,0x6C,0xD8,0x00,0x00,0x00,0x00,0x00,0x00},
+/* 0xB0 */ {0x11,0x44,0x11,0x44,0x11,0x44,0x11,0x44,0x11,0x44,0x11,0x44,0x11,0x44,0x11,0x44},
+/* 0xB1 */ {0x55,0xAA,0x55,0xAA,0x55,0xAA,0x55,0xAA,0x55,0xAA,0x55,0xAA,0x55,0xAA,0x55,0xAA},
+/* 0xB2 */ {0xDD,0x77,0xDD,0x77,0xDD,0x77,0xDD,0x77,0xDD,0x77,0xDD,0x77,0xDD,0x77,0xDD,0x77},
+/* 0xB3 */ {0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18},
+/* 0xB4 */ {0x18,0x18,0x18,0x18,0x18,0x18,0x18,0xF8,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18},
+/* 0xB5 */ {0x18,0x18,0x18,0x18,0x18,0xF8,0x18,0xF8,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18},
+/* 0xB6 */ {0x36,0x36,0x36,0x36,0x36,0x36,0x36,0xF6,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36},
+/* 0xB7 */ {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFE,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36},
+/* 0xB8 */ {0x00,0x00,0x00,0x00,0x00,0xF8,0x18,0xF8,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18},
+/* 0xB9 */ {0x36,0x36,0x36,0x36,0x36,0xF6,0x06,0xF6,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36},
+/* 0xBA */ {0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36},
+/* 0xBB */ {0x00,0x00,0x00,0x00,0x00,0xFE,0x06,0xF6,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36},
+/* 0xBC */ {0x36,0x36,0x36,0x36,0x36,0xF6,0x06,0xFE,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
+/* 0xBD */ {0x36,0x36,0x36,0x36,0x36,0x36,0x36,0xFE,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
+/* 0xBE */ {0x18,0x18,0x18,0x18,0x18,0xF8,0x18,0xF8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
+/* 0xBF */ {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xF8,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18},
+/* 0xC0 */ {0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x1F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
+/* 0xC1 */ {0x18,0x18,0x18,0x18,0x18,0x18,0x18,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
+/* 0xC2 */ {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18},
+/* 0xC3 */ {0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x1F,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18},
+/* 0xC4 */ {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
+/* 0xC5 */ {0x18,0x18,0x18,0x18,0x18,0x18,0x18,0xFF,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18},
+/* 0xC6 */ {0x18,0x18,0x18,0x18,0x18,0x1F,0x18,0x1F,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18},
+/* 0xC7 */ {0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x37,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36},
+/* 0xC8 */ {0x36,0x36,0x36,0x36,0x36,0x37,0x30,0x3F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
+/* 0xC9 */ {0x00,0x00,0x00,0x00,0x00,0x3F,0x30,0x37,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36},
+/* 0xCA */ {0x36,0x36,0x36,0x36,0x36,0xF7,0x00,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
+/* 0xCB */ {0x00,0x00,0x00,0x00,0x00,0xFF,0x00,0xF7,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36},
+/* 0xCC */ {0x36,0x36,0x36,0x36,0x36,0x37,0x30,0x37,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36},
+/* 0xCD */ {0x00,0x00,0x00,0x00,0x00,0xFF,0x00,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
+/* 0xCE */ {0x36,0x36,0x36,0x36,0x36,0xF7,0x00,0xF7,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36},
+/* 0xCF */ {0x18,0x18,0x18,0x18,0x18,0xFF,0x00,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
+/* 0xD0 */ {0x36,0x36,0x36,0x36,0x36,0x36,0x36,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
+/* 0xD1 */ {0x00,0x00,0x00,0x00,0x00,0xFF,0x00,0xFF,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18},
+/* 0xD2 */ {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36},
+/* 0xD3 */ {0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x3F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
+/* 0xD4 */ {0x18,0x18,0x18,0x18,0x18,0x1F,0x18,0x1F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
+/* 0xD5 */ {0x00,0x00,0x00,0x00,0x00,0x1F,0x18,0x1F,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18},
+/* 0xD6 */ {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3F,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36},
+/* 0xD7 */ {0x36,0x36,0x36,0x36,0x36,0x36,0x36,0xFF,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36},
+/* 0xD8 */ {0x18,0x18,0x18,0x18,0x18,0xFF,0x18,0xFF,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18},
+/* 0xD9 */ {0x18,0x18,0x18,0x18,0x18,0x18,0x18,0xF8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
+/* 0xDA */ {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1F,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18},
+/* 0xDB */ {0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF},
+/* 0xDC */ {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF},
+/* 0xDD */ {0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0},
+/* 0xDE */ {0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F},
+/* 0xDF */ {0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
+/* 0xE0 */ {0x00,0x00,0x00,0x00,0x00,0x76,0xDC,0xD8,0xD8,0xD8,0xDC,0x76,0x00,0x00,0x00,0x00},
+/* 0xE1 */ {0x00,0x00,0x7C,0xC6,0xC6,0xC6,0xFC,0xC6,0xC6,0xC6,0xC6,0xDC,0xC0,0xC0,0x00,0x00},
+/* 0xE2 */ {0x00,0x00,0xFE,0xC6,0xC6,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0x00,0x00,0x00,0x00},
+/* 0xE3 */ {0x00,0x00,0x00,0x00,0x00,0xFE,0x6C,0x6C,0x6C,0x6C,0x6C,0x6C,0x00,0x00,0x00,0x00},
+/* 0xE4 */ {0x00,0x00,0xFE,0xC6,0x60,0x30,0x18,0x18,0x30,0x60,0xC6,0xFE,0x00,0x00,0x00,0x00},
+/* 0xE5 */ {0x00,0x00,0x00,0x00,0x00,0x7E,0xD8,0xD8,0xD8,0xD8,0xD8,0x70,0x00,0x00,0x00,0x00},
+/* 0xE6 */ {0x00,0x00,0x00,0x00,0x00,0x66,0x66,0x66,0x66,0x66,0x7C,0x60,0xC0,0x00,0x00,0x00},
+/* 0xE7 */ {0x00,0x00,0x00,0x00,0x00,0x76,0xDC,0x18,0x18,0x18,0x18,0x18,0x00,0x00,0x00,0x00},
+/* 0xE8 */ {0x00,0x00,0x7E,0x18,0x3C,0x66,0x66,0x66,0x66,0x3C,0x18,0x7E,0x00,0x00,0x00,0x00},
+/* 0xE9 */ {0x00,0x00,0x38,0x6C,0xC6,0xC6,0xFE,0xC6,0xC6,0xC6,0x6C,0x38,0x00,0x00,0x00,0x00},
+/* 0xEA */ {0x00,0x00,0x38,0x6C,0xC6,0xC6,0xC6,0x6C,0x6C,0x6C,0x6C,0xEE,0x00,0x00,0x00,0x00},
+/* 0xEB */ {0x00,0x00,0x1E,0x30,0x18,0x0C,0x3E,0x66,0x66,0x66,0x66,0x3C,0x00,0x00,0x00,0x00},
+/* 0xEC */ {0x00,0x00,0x00,0x00,0x00,0x7E,0xDB,0xDB,0xDB,0x7E,0x00,0x00,0x00,0x00,0x00,0x00},
+/* 0xED */ {0x00,0x00,0x00,0x03,0x06,0x7E,0xDB,0xDB,0xF3,0x7E,0x60,0xC0,0x00,0x00,0x00,0x00},
+/* 0xEE */ {0x00,0x00,0x1C,0x30,0x60,0x60,0x7C,0x60,0x60,0x60,0x30,0x1C,0x00,0x00,0x00,0x00},
+/* 0xEF */ {0x00,0x00,0x7C,0xC6,0xC6,0xC6,0xC6,0xC6,0xC6,0xC6,0xC6,0xC6,0x00,0x00,0x00,0x00},
+/* 0xF0 */ {0x00,0x00,0x00,0x00,0xFE,0x00,0x00,0xFE,0x00,0x00,0xFE,0x00,0x00,0x00,0x00,0x00},
+/* 0xF1 */ {0x00,0x00,0x00,0x00,0x18,0x18,0x7E,0x18,0x18,0x00,0x00,0xFF,0x00,0x00,0x00,0x00},
+/* 0xF2 */ {0x00,0x00,0x00,0x30,0x18,0x0C,0x06,0x0C,0x18,0x30,0x00,0x7E,0x00,0x00,0x00,0x00},
+/* 0xF3 */ {0x00,0x00,0x00,0x0C,0x18,0x30,0x60,0x30,0x18,0x0C,0x00,0x7E,0x00,0x00,0x00,0x00},
+/* 0xF4 */ {0x00,0x0E,0x1B,0x1B,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18},
+/* 0xF5 */ {0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0xD8,0xD8,0xD8,0x70,0x00,0x00,0x00,0x00},
+/* 0xF6 */ {0x00,0x00,0x00,0x00,0x18,0x18,0x00,0x7E,0x00,0x18,0x18,0x00,0x00,0x00,0x00,0x00},
+/* 0xF7 */ {0x00,0x00,0x00,0x00,0x00,0x76,0xDC,0x00,0x76,0xDC,0x00,0x00,0x00,0x00,0x00,0x00},
+/* 0xF8 */ {0x00,0x38,0x6C,0x6C,0x38,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
+/* 0xF9 */ {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
+/* 0xFA */ {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
+/* 0xFB */ {0x00,0x0F,0x0C,0x0C,0x0C,0x0C,0x0C,0xEC,0x6C,0x6C,0x3C,0x1C,0x00,0x00,0x00,0x00},
+/* 0xFC */ {0x00,0xD8,0x6C,0x6C,0x6C,0x6C,0x6C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
+/* 0xFD */ {0x00,0x70,0xD8,0x30,0x60,0xC8,0xF8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
+/* 0xFE */ {0x00,0x00,0x00,0x00,0x7C,0x7C,0x7C,0x7C,0x7C,0x7C,0x7C,0x00,0x00,0x00,0x00,0x00},
+/* 0xFF */ {0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00}
+};
+
+#endif
+
+#endif // _LCD_FONT_H_
diff --git a/ecos/packages/hal/arm/xscale/uE250/current/src/uE250_ide.c b/ecos/packages/hal/arm/xscale/uE250/current/src/uE250_ide.c
new file mode 100644
index 0000000..d1d6bf8
--- /dev/null
+++ b/ecos/packages/hal/arm/xscale/uE250/current/src/uE250_ide.c
@@ -0,0 +1,137 @@
+//==========================================================================
+//
+// uE250_ide.c
+//
+// HAL support code for NMI uEngine uE250 IDE
+//
+//==========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//==========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): msalter
+// Contributors: msalter, gthomas
+// Date: 2002-01-04
+// Purpose: PCI support
+// Description: Implementations of HAL PCI interfaces
+//
+//####DESCRIPTIONEND####
+//
+//========================================================================*/
+
+#include <pkgconf/hal.h>
+#include <pkgconf/system.h>
+#include CYGBLD_HAL_PLATFORM_H
+#include CYGHWR_MEMORY_LAYOUT_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/infra/diag.h> // diag_printf()
+
+#include <cyg/hal/hal_io.h> // IO macros
+#include <cyg/hal/hal_if.h> // calling interface API
+#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/io/pci_hw.h>
+#include <cyg/io/pci.h>
+
+#ifdef CYGPKG_IO_PCI
+
+#define MAX_IDE 2
+static struct {
+ cyg_uint32 cmd_bar;
+ cyg_uint32 ctl_bar;
+} ide_ctrl[MAX_IDE];
+
+cyg_uint8
+cyg_hal_plf_ide_read_uint8(int ctlr, cyg_uint32 reg)
+{
+ return pci_io_read_8(ide_ctrl[ctlr].cmd_bar + reg);
+}
+
+void
+cyg_hal_plf_ide_write_uint8(int ctlr, cyg_uint32 reg, cyg_uint8 val)
+{
+ pci_io_write_8(ide_ctrl[ctlr].cmd_bar + reg, val);
+}
+
+cyg_uint16
+cyg_hal_plf_ide_read_uint16(int ctlr, cyg_uint32 reg)
+{
+ return pci_io_read_16(ide_ctrl[ctlr].cmd_bar + reg);
+}
+
+void
+cyg_hal_plf_ide_write_uint16(int ctlr, cyg_uint32 reg, cyg_uint16 val)
+{
+ pci_io_write_16(ide_ctrl[ctlr].cmd_bar + reg, val);
+}
+
+void
+cyg_hal_plf_ide_write_control(int ctlr, cyg_uint32 reg, cyg_uint8 val)
+{
+ pci_io_write_8(ide_ctrl[ctlr].ctl_bar + reg, val);
+}
+
+int
+cyg_hal_plf_ide_init(void)
+{
+ int i;
+ cyg_pci_device_id ide_dev = CYG_PCI_NULL_DEVID;
+ cyg_pci_device ide_info;
+
+// diag_printf("Initializing IDE controller\n");
+
+ if (cyg_pci_find_device((cyg_uint16)0x1095, (cyg_uint16)0x0649, &ide_dev)) {
+ cyg_pci_get_device_info(ide_dev, &ide_info);
+#ifdef DEBUG
+ for (i = 0; i < 6; i++) {
+ diag_printf("IDE - base[%d]: %08p, size: %08p, map: %08p\n",
+ i, ide_info.base_address[i], ide_info.base_size[i], ide_info.base_map[i]);
+ }
+#endif
+ for (i = 0; i < MAX_IDE; i++) {
+ ide_ctrl[i].cmd_bar = ide_info.base_map[(2*i)+0] & 0xFFFFFFFE;
+ ide_ctrl[i].ctl_bar = ide_info.base_map[(2*i)+1] & 0xFFFFFFFE;
+ }
+ return HAL_IDE_NUM_CONTROLLERS;
+ } else {
+ diag_printf("Can't find IDE controller!\n");
+ return 0;
+ }
+}
+
+#endif // CYGPKG_IO_PCI
diff --git a/ecos/packages/hal/arm/xscale/uE250/current/src/uE250_misc.c b/ecos/packages/hal/arm/xscale/uE250/current/src/uE250_misc.c
new file mode 100644
index 0000000..b776512
--- /dev/null
+++ b/ecos/packages/hal/arm/xscale/uE250/current/src/uE250_misc.c
@@ -0,0 +1,229 @@
+//=============================================================================
+//
+// uE250_misc.c
+//
+// Miscellaneous platform support for NMI uE250
+//
+//=============================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=============================================================================
+
+#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_pxa2x0.h>
+// FIXME
+#include <cyg/hal/uE250.h> // Platform specifics
+
+#include <cyg/infra/diag.h> // diag_printf
+
+#include <cyg/hal/hal_mm.h>
+
+#include <string.h> // memset
+
+externC void initialize_plx_bridge(void);
+
+void
+hal_mmu_init(void)
+{
+ // Set up the translation tables at offset 0x4000
+ unsigned long ttb_base = PXA2X0_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_DACR_DEFAULT;
+ 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 */
+#define _CACHED ARM_CACHEABLE
+#define _UNCACHED ARM_UNCACHEABLE
+#define _BUF ARM_BUFFERABLE
+#define _NOBUF ARM_UNBUFFERABLE
+#define _RWRW ARM_ACCESS_PERM_RW_RW
+ X_ARM_MMU_SECTION(0x000, 0x500, 32, _CACHED, _BUF, _RWRW); /* Boot flash ROMspace */
+ X_ARM_MMU_SECTION(0x150, 0x150, 4, _UNCACHED, _NOBUF, _RWRW); /* PCI Config space CS5 */
+ X_ARM_MMU_SECTION(0x040, 0x340, 64, _UNCACHED, _NOBUF, _RWRW); /* PCI Control regs CS1 */
+ X_ARM_MMU_SECTION(0xA00, 0x000, 64, _CACHED, _BUF, _RWRW); /* DRAM Bank 0 */
+ X_ARM_MMU_SECTION(0xA00, 0xC00, 64, _UNCACHED, _BUF, _RWRW); /* DRAM Bank 0 */
+ X_ARM_MMU_SECTION(0xE00, 0xE00, 128, _CACHED, _BUF, _RWRW); /* Zeros (Cache Clean) Bank */
+
+ X_ARM_MMU_SECTION(0x0c0, 0x0c0, 64, _UNCACHED, _NOBUF, _RWRW); /* PCI Mem space CS3 */
+ X_ARM_MMU_SECTION(0x100, 0x100, 64, _UNCACHED, _NOBUF, _RWRW); /* PCI Mem space CS4 */
+ X_ARM_MMU_SECTION(0x140, 0x140, 16, _UNCACHED, _NOBUF, _RWRW); /* PCI Mem space CS5 */
+ X_ARM_MMU_SECTION(0x160, 0x160, 32, _UNCACHED, _NOBUF, _RWRW); /* PCI I/O space CS5 */
+ X_ARM_MMU_SECTION(0x400, 0x400, 64, _UNCACHED, _NOBUF, _RWRW); /* Peripheral Registers */
+ X_ARM_MMU_SECTION(0x440, 0x440, 64, _UNCACHED, _NOBUF, _RWRW); /* LCD Registers */
+ X_ARM_MMU_SECTION(0x480, 0x480, 64, _UNCACHED, _NOBUF, _RWRW); /* Memory Ctl Registers */
+ X_ARM_MMU_SECTION(0x900, 0x900, 64, _UNCACHED, _NOBUF, _RWRW); /* PCI I/O Space */
+ }
+
+//
+// Platform specific initialization
+//
+
+void
+plf_hardware_init(void)
+{
+
+ *PXA2X0_GPCR0 = 0x00400000;
+ // PXA250_GPSR0 = 0x00200000;
+
+ // RAM startup only - rewrite relevent bits depending on config
+#ifndef CYG_HAL_STARTUP_ROM
+ HAL_DCACHE_SYNC(); // Force data out
+ HAL_DCACHE_INVALIDATE_ALL(); // Flush TLBs: make new mmu state effective
+#endif // ! CYG_HAL_STARTUP_ROM - RAM start only
+
+ hal_if_init();
+
+ cyg_hal_plf_pci_init();
+
+ initialize_plx_bridge();
+}
+
+//
+// Memory layout - runtime variations of all kinds.
+//
+externC cyg_uint8 *
+hal_arm_mem_real_region_top( cyg_uint8 *regionend )
+{
+ CYG_ASSERT( hal_dram_size > 0, "Didn't detect DRAM size!" );
+ CYG_ASSERT( hal_dram_size <= 256<<20,
+ "More than 256MB reported - that can't be right" );
+ CYG_ASSERT( 0 == (hal_dram_size & 0xfffff),
+ "hal_dram_size not whole Mb" );
+ // is it the "normal" end of the DRAM region? If so, it should be
+ // replaced by the real size
+ if ( regionend ==
+ ((cyg_uint8 *)CYGMEM_REGION_ram + CYGMEM_REGION_ram_SIZE) ) {
+ regionend = (cyg_uint8 *)CYGMEM_REGION_ram + hal_dram_size;
+ }
+ // Also, we must check for the top of the heap having moved. This is
+ // because the heap does not abut the top of memory.
+#ifdef CYGMEM_SECTION_heap1
+ if ( regionend ==
+ ((cyg_uint8 *)CYGMEM_SECTION_heap1 + CYGMEM_SECTION_heap1_SIZE) ) {
+ // hal_dram_size excludes the PCI window on this platform.
+ if ( regionend > (cyg_uint8 *)CYGMEM_REGION_ram + hal_dram_size )
+ regionend = (cyg_uint8 *)CYGMEM_REGION_ram + hal_dram_size;
+ }
+#endif
+ return regionend;
+}
+
+// ------------------------------------------------------------------------
+// Extended, platform-specific, interrupt handling
+
+// FIXME - still needs work to support interrupts from PXA bridge
+
+int
+_uE250_extended_irq(void)
+{
+ cyg_uint32 stat = PCICTL_STATUS_REG;
+ int irq = 0;
+
+ if (stat & 0x1F0) {
+ PCICTL_INT_RESET = 0xFF; // Clear all pending interrupts
+ }
+ if (stat & 0x00F) {
+ // PCI interrupt
+ for (irq = 0; irq < 4; irq++) {
+ if ((stat & (1 << irq)) != 0) {
+ break;
+ }
+ }
+ irq += _uPCI_BASE_INTERRUPT;
+ }
+ HAL_INTERRUPT_ACKNOWLEDGE(CYGNUM_HAL_INTERRUPT_GPIO1);
+ PCICTL_INT_EDGE = 0xFF; // Generate interrupts
+ return irq;
+}
+
+void
+_uE250_extended_int_mask(int vector)
+{
+ if (vector <= CYGNUM_HAL_INTERRUPT_PCI_INTD) {
+ PCICTL_IRQ_MASK &= ~(1<<(vector-CYGNUM_HAL_INTERRUPT_PCI_INTA));
+ }
+}
+
+void
+_uE250_extended_int_unmask(int vector)
+{
+ if (vector <= CYGNUM_HAL_INTERRUPT_PCI_INTD) {
+ PCICTL_IRQ_MASK |= (1<<(vector-CYGNUM_HAL_INTERRUPT_PCI_INTA));
+ }
+}
+
+void
+_uE250_extended_int_acknowledge(int vector)
+{
+}
+
+void
+_uE250_extended_int_configure(int vector, int level, int up)
+{
+}
+
+void
+_uE250_extended_int_set_level(int vector, int level)
+{
+}
+
+
+// ------------------------------------------------------------------------
+// EOF uE250_misc.c
diff --git a/ecos/packages/hal/arm/xscale/uE250/current/src/uE250_pci.c b/ecos/packages/hal/arm/xscale/uE250/current/src/uE250_pci.c
new file mode 100644
index 0000000..0753f5d
--- /dev/null
+++ b/ecos/packages/hal/arm/xscale/uE250/current/src/uE250_pci.c
@@ -0,0 +1,376 @@
+//==========================================================================
+//
+// uE250_pci.c
+//
+// HAL support code for NMI uEngine uE250 PCI
+//
+//==========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//==========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): msalter
+// Contributors: msalter, gthomas, David Mazur <david@mind.be>
+// Date: 2002-01-04
+// Purpose: PCI support
+// Description: Implementations of HAL PCI interfaces
+//
+//####DESCRIPTIONEND####
+//
+//========================================================================*/
+
+#include <pkgconf/hal.h>
+#include <pkgconf/system.h>
+#include CYGBLD_HAL_PLATFORM_H
+#include CYGHWR_MEMORY_LAYOUT_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/infra/diag.h> // diag_printf()
+
+#include <cyg/hal/hal_io.h> // IO macros
+#include <cyg/hal/hal_if.h> // calling interface API
+#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/plf_io.h>
+#include <cyg/io/pci_hw.h>
+#include <cyg/io/pci.h>
+
+#ifdef CYGPKG_IO_PCI
+
+#ifdef CYGSEM_HAL_LOAD_PCI_FPGA
+static unsigned char uE250_pci_bitstream[] = {
+#include "uE250_pci_bitstream.h"
+};
+externC void load_fpga(void *bitstream, int len);
+#endif
+
+void
+cyg_hal_plf_pci_init(void)
+{
+ cyg_uint8 next_bus;
+ static bool _done = false;
+
+ if (_done) return;
+ _done = true;
+
+// diag_printf("Initializing PCI.\n");
+
+#ifdef CYGSEM_HAL_LOAD_PCI_FPGA
+ // Set MSC0 for FPGA configuration
+ *PXA2X0_MSC1 = (*PXA2X0_MSC1 & 0x0000FFFF);
+
+ // Program FPGA
+ load_fpga(uE250_pci_bitstream, sizeof(uE250_pci_bitstream));
+#endif
+
+ *PXA2X0_MSC0 = (*PXA2X0_MSC0 & 0x0000FFFF) | 0x7ff10000;
+ *PXA2X0_MSC1 = (*PXA2X0_MSC1 & 0x0000FFFF) | 0x70e40000;
+ *PXA2X0_MSC2 = 0x70e470e4;
+
+ *PXA2X0_MDREFR = 0x0009c018;
+ *PXA2X0_MDCNFG = 0x03001bc9;
+
+ // FIXME: Change MSC values ??
+ // Set FPGA to 110.6 MHz
+ *PXA2X0_GPDR0 |= (0x01 << 7);
+ *PXA2X0_GPSR0 |= (0x01 << 7);
+ *PXA2X0_GPDR1 |= (0x01 << (45-32));
+ *PXA2X0_GPCR1 |= (0x01 << (45-32));
+
+ // Set busmastering
+ _pxa2x0_set_GPIO_mode(13, PXA2X0_GPIO_AF2, PXA2X0_GPIO_OUT);
+ _pxa2x0_set_GPIO_mode(14, PXA2X0_GPIO_AF1, PXA2X0_GPIO_IN);
+
+// diag_printf("Activating PCI bridge.\n");
+ PCICTL_MISC |= (1 | PCI_SDRAM_256) | PCI_TIMER;
+
+ // Set command master
+ cyg_hal_plf_pci_cfg_write_word(0, 0, CYG_PCI_CFG_COMMAND,
+ CYG_PCI_CFG_COMMAND_MEMORY|CYG_PCI_CFG_COMMAND_MASTER);
+
+// diag_printf("Scanning PCI bridge...\n");
+
+ // Initialize PCI support
+ cyg_pci_init();
+
+ // Configure PCI bus.
+ next_bus = 1;
+ cyg_pci_configure_bus(0, &next_bus);
+
+ // Set up to handle PCI interrupts
+ HAL_INTERRUPT_CONFIGURE(CYGNUM_HAL_INTERRUPT_GPIO1, 0, 0); // Falling edge
+ HAL_INTERRUPT_UNMASK(CYGNUM_HAL_INTERRUPT_GPIO1);
+ PCICTL_INT_RESET = 0xFF; // Clear all pending interrupts
+ PCICTL_INT_EDGE = 0xFF; // Generate interrupts
+ PCICTL_IRQ_MASK = 0x00; // All masked
+
+ if (0){
+ cyg_uint8 devfn;
+ cyg_pci_device_id devid;
+ cyg_pci_device dev_info;
+ int i;
+
+ devid = CYG_PCI_DEV_MAKE_ID(next_bus-1, 0) | CYG_PCI_NULL_DEVFN;
+ while (cyg_pci_find_next(devid, &devid)) {
+ devfn = CYG_PCI_DEV_GET_DEVFN(devid);
+ cyg_pci_get_device_info(devid, &dev_info);
+
+ diag_printf("\n");
+ diag_printf("Bus: %d\n", CYG_PCI_DEV_GET_BUS(devid));
+ diag_printf("PCI Device: %d\n", CYG_PCI_DEV_GET_DEV(devfn));
+ diag_printf("PCI Func : %d\n", CYG_PCI_DEV_GET_FN(devfn));
+ diag_printf("Vendor Id : 0x%08X\n", dev_info.vendor);
+ diag_printf("Device Id : 0x%08X\n", dev_info.device);
+ diag_printf("Command: 0x%04X\n", dev_info.command);
+ for (i = 0; i < dev_info.num_bars; i++) {
+ diag_printf(" BAR[%d] 0x%08x /", i, dev_info.base_address[i]);
+ diag_printf(" probed size 0x%08x / CPU addr 0x%08x\n",
+ dev_info.base_size[i], dev_info.base_map[i]);
+ }
+ }
+ }
+}
+
+void
+_uE250_pci_translate_interrupt(int bus, int devfn, int *vector, int *valid)
+{
+ int dev = CYG_PCI_DEV_GET_DEV(devfn);
+
+ if (dev <= 5) {
+ *vector = _uPCI_BASE_INTERRUPT+(dev-1);
+ valid = true;;
+ } else {
+ valid = false;
+ }
+}
+
+static void
+cyg_hal_plf_pci_clear_idsel(void)
+{
+ // Clear any active idsels
+ PCICTL_MISC &= ~PCI_IDSEL_OFF;
+ PCICTL_STATUS_REG = 0;
+}
+
+void
+cyg_hal_plf_pci_select_idsel(cyg_uint32 dev)
+{
+ cyg_hal_plf_pci_clear_idsel();
+ // PCICTL_STATUS_REG = 0x0;
+ PCICTL_MISC |= 1 + (((dev + 1) << PCI_IDSEL_SHIFT));
+}
+
+#define _PCI_ADDR(bus, devfn) (PCI_CONFIG_BASE | \
+ (bus << 16) | \
+ (CYG_PCI_DEV_GET_DEV(devfn) << 11) | \
+ (CYG_PCI_DEV_GET_FN(devfn) << 8))
+
+cyg_uint32
+cyg_hal_plf_pci_cfg_read_dword(cyg_uint32 bus, cyg_uint32 devfn,
+ cyg_uint32 offset)
+{
+ cyg_uint32 config_data;
+ volatile cyg_uint32 *address = (cyg_uint32 *)_PCI_ADDR(bus, devfn);
+
+ cyg_hal_plf_pci_select_idsel(CYG_PCI_DEV_GET_DEV(devfn));
+ config_data = address[offset >> 2];
+ if ((PCICTL_STATUS_REG & 0x0020) == 0x0020) {
+ // Configuration cycle failed
+ config_data = 0xFFFFFFFF;
+ }
+ cyg_hal_plf_pci_clear_idsel();
+
+ return config_data;
+}
+
+void
+cyg_hal_plf_pci_cfg_write_dword(cyg_uint32 bus, cyg_uint32 devfn,
+ cyg_uint32 offset, cyg_uint32 data)
+{
+ volatile cyg_uint32 *address = (cyg_uint32 *)_PCI_ADDR(bus, devfn);
+
+ cyg_hal_plf_pci_select_idsel(CYG_PCI_DEV_GET_DEV(devfn));
+ address[offset >> 2] = data;
+ cyg_hal_plf_pci_clear_idsel();
+}
+
+
+
+cyg_uint16
+cyg_hal_plf_pci_cfg_read_word(cyg_uint32 bus, cyg_uint32 devfn,
+ cyg_uint32 offset)
+{
+ cyg_uint16 config_data;
+ volatile cyg_uint16 *address = (cyg_uint16 *)_PCI_ADDR(bus, devfn);
+
+ cyg_hal_plf_pci_select_idsel(CYG_PCI_DEV_GET_DEV(devfn));
+ config_data = address[offset >> 1];
+ if ((PCICTL_STATUS_REG & 0x0020) == 0x0020) {
+ // Configuration cycle failed
+ config_data = 0xFFFF;
+ }
+ cyg_hal_plf_pci_clear_idsel();
+
+ return config_data;
+}
+
+void
+cyg_hal_plf_pci_cfg_write_word(cyg_uint32 bus, cyg_uint32 devfn,
+ cyg_uint32 offset, cyg_uint16 data)
+{
+ volatile cyg_uint16 *address = (cyg_uint16 *)_PCI_ADDR(bus, devfn);
+
+ cyg_hal_plf_pci_select_idsel(CYG_PCI_DEV_GET_DEV(devfn));
+ address[offset >> 1] = data;
+ cyg_hal_plf_pci_clear_idsel();
+}
+
+cyg_uint8
+cyg_hal_plf_pci_cfg_read_byte(cyg_uint32 bus, cyg_uint32 devfn,
+ cyg_uint32 offset)
+{
+ cyg_uint8 config_data;
+ volatile cyg_uint8 *address = (cyg_uint8 *)_PCI_ADDR(bus, devfn);
+
+ cyg_hal_plf_pci_select_idsel(CYG_PCI_DEV_GET_DEV(devfn));
+ config_data = address[offset];
+ if ((PCICTL_STATUS_REG & 0x0020) == 0x0020) {
+ // Configuration cycle failed
+ config_data = 0xFF;
+ }
+ cyg_hal_plf_pci_clear_idsel();
+
+ return config_data;
+}
+
+
+void
+cyg_hal_plf_pci_cfg_write_byte(cyg_uint32 bus, cyg_uint32 devfn,
+ cyg_uint32 offset, cyg_uint8 data)
+{
+ volatile cyg_uint8 *address = (cyg_uint8 *)_PCI_ADDR(bus, devfn);
+
+ cyg_hal_plf_pci_select_idsel(CYG_PCI_DEV_GET_DEV(devfn));
+ address[offset] = data;
+ cyg_hal_plf_pci_clear_idsel();
+}
+
+//
+// Note: PCI I/O space reads on this platform require additional
+// addressing gymnastics
+
+/**
+ * Reads an 8 bit value (byte) from the given address of the PCI
+ * IO space.
+ **/
+cyg_uint8 pci_io_read_8(cyg_uint32 address)
+{
+ volatile cyg_uint8 *addr = (volatile cyg_uint8 *)(((address & 0x00000003) << 22) |
+ address | _PCI_READ_8);
+ cyg_uint8 val = *addr;
+#ifdef _PCI_DEBUG
+ diag_printf("READ PCI.8 [%p/%p] => %02x\n", address, addr, val);
+#endif
+ return val;
+}
+
+/**
+ * * Reads a 16 bit value (word) from the given address of the PCI
+ * * IO space.
+ * */
+cyg_uint16 pci_io_read_16(cyg_uint32 address)
+{
+ volatile cyg_uint16 *addr = (volatile cyg_uint16 *)(((address & 0x00000002) << 21) |
+ address | _PCI_READ_16);
+ cyg_uint16 val = *addr;
+#ifdef _PCI_DEBUG
+ diag_printf("READ PCI.16 [%p/%p] => %04x\n", address, addr, val);
+#endif
+ return val;
+}
+
+/**
+ * * Reads a 32 bit value (double word) from the given address of the PCI
+ * * IO space.
+ * */
+cyg_uint32 pci_io_read_32(cyg_uint32 address)
+{
+ volatile cyg_uint32 *addr = (volatile cyg_uint32 *)(address | _PCI_READ_32);
+ cyg_uint32 val = *addr;
+#ifdef _PCI_DEBUG
+ diag_printf("READ PCI.32 [%p/%p] => %02x\n", address, addr, val);
+#endif
+ return val;
+}
+
+/**
+ * * Writes an 8 bit value (byte) into the given address of the PCI
+ * * IO space.
+ * */
+void pci_io_write_8(cyg_uint32 address, cyg_uint8 value)
+{
+ *((volatile cyg_uint8 *)(address | _PCI_WRITE_X)) = value;
+#ifdef _PCI_DEBUG
+ diag_printf("WRITE PCI.8[%p] <= %02x\n", address | _PCI_WRITE_X, value);
+#endif
+}
+
+/**
+ * * Writes a 16 bit value (single word) into the given address of the PCI
+ * * IO space.
+ * */
+void pci_io_write_16(cyg_uint32 address, cyg_uint16 value)
+{
+ *((volatile cyg_uint16 *)(address | _PCI_WRITE_X)) = value;
+#ifdef _PCI_DEBUG
+ diag_printf("WRITE PCI.16[%p] <= %04x\n", address | _PCI_WRITE_X, value);
+#endif
+}
+
+/**
+ * * Writes a 32 bit value (double word) into the given address of the PCI
+ * * IO space.
+ * */
+void pci_io_write_32(cyg_uint32 address, cyg_uint32 value)
+{
+ *((volatile cyg_uint32 *)(address | _PCI_WRITE_X)) = value;
+#ifdef _PCI_DEBUG
+ diag_printf("WRITE PCI.32[%p] <= %08x\n", address | _PCI_WRITE_X, value);
+#endif
+}
+
+#endif // CYGPKG_IO_PCI
diff --git a/ecos/packages/hal/arm/xscale/uE250/current/src/uE250_pci_bitstream.h b/ecos/packages/hal/arm/xscale/uE250/current/src/uE250_pci_bitstream.h
new file mode 100644
index 0000000..0d58a30
--- /dev/null
+++ b/ecos/packages/hal/arm/xscale/uE250/current/src/uE250_pci_bitstream.h
@@ -0,0 +1,4067 @@
+//
+// Copyright (c) 2003 Intrinsyc Europe Ltd. All rights reserved.
+//
+// Redistribution and use in source or binary format is allowed
+// provided:
+// * This notice must be preserved
+// * The binary data which this file represents may only be
+// used on a NMI uPCI + uE250 based hardware platform.
+//
+
+/* 0x000000 */ 0x1f,0x8b,0x08,0x08,0x49,0x5b,0x4d,0x3e,0x00,0x03,0x78,0x78,0x31,0x00,0xac,0xbd,
+/* 0x000010 */ 0x7f,0x7c,0x54,0xd5,0x99,0x3f,0x7e,0xe6,0xdc,0x4b,0xb8,0x99,0x99,0x64,0x2e,0x09,
+/* 0x000020 */ 0xb8,0x29,0x2a,0xbd,0x99,0x04,0x3b,0xa4,0x93,0x64,0x98,0x68,0xc4,0x10,0x26,0x97,
+/* 0x000030 */ 0x90,0xee,0xa6,0x40,0x4d,0xd6,0xdd,0xfd,0x7e,0x69,0xbf,0xfd,0xfa,0x19,0x95,0xed,
+/* 0x000040 */ 0x87,0xdd,0x17,0xf5,0x93,0xd2,0xee,0x7e,0xa8,0xf5,0xe3,0x9e,0x4c,0x22,0x04,0x42,
+/* 0x000050 */ 0x65,0xa4,0xb4,0xc5,0xea,0xb6,0x97,0xc8,0x6a,0xac,0x6c,0x3b,0x04,0x95,0x20,0x14,
+/* 0x000060 */ 0x6e,0x30,0xda,0x00,0x11,0x52,0xd6,0x6d,0x51,0xa9,0x1d,0x6c,0xb4,0x51,0x23,0x46,
+/* 0x000070 */ 0x40,0x0d,0x24,0xc0,0xf7,0x39,0xe7,0xdc,0x7b,0xe7,0xde,0xf9,0xe1,0xba,0xdf,0x5d,
+/* 0x000080 */ 0xfb,0x47,0x1f,0x9e,0xf3,0xe4,0xe6,0xe6,0x9c,0x7b,0xce,0x79,0xde,0xe7,0xfd,0x3c,
+/* 0x000090 */ 0xcf,0x41,0xf9,0xbe,0x09,0xfe,0x3f,0x84,0x5c,0x77,0x21,0xef,0x3f,0xfc,0x6d,0xf8,
+/* 0x0000a0 */ 0x96,0xb6,0x7b,0xfe,0xae,0xea,0xde,0x7b,0x56,0xa3,0xbb,0x91,0x27,0xfc,0xed,0x70,
+/* 0x0000b0 */ 0x28,0xf4,0x8d,0xff,0x19,0xbe,0xa5,0x16,0xdd,0x03,0xff,0x0a,0x85,0xc2,0xd5,0xa1,
+/* 0x0000c0 */ 0x5b,0xab,0x43,0xb7,0xa0,0xd5,0x28,0x7f,0x61,0xa8,0xee,0xe6,0x9a,0xba,0x5b,0x6e,
+/* 0x0000d0 */ 0x45,0x7f,0x8b,0xf0,0x96,0xa6,0x6b,0xf0,0xdf,0xcf,0x1f,0xf9,0x9b,0x6f,0x84,0x10,
+/* 0x0000e0 */ 0x71,0x21,0x84,0x66,0x86,0x5c,0x51,0xfa,0xff,0xb3,0x42,0x2e,0xc5,0x85,0xc8,0xff,
+/* 0x0000f0 */ 0xc8,0x0f,0x21,0x9d,0xfe,0x1b,0x19,0xed,0xf0,0x6f,0xc5,0xfe,0x6f,0x57,0x08,0xa9,
+/* 0x000100 */ 0xa8,0x15,0x3d,0xf2,0x12,0x2a,0x52,0xd0,0x7f,0xed,0x3f,0x91,0xb0,0xff,0xfb,0xef,
+/* 0x000110 */ 0x7a,0x0e,0xfe,0x2f,0x3e,0x06,0xfe,0xfa,0xff,0x96,0xe7,0xa0,0xff,0xae,0xe7,0x88,
+/* 0x000120 */ 0xfc,0x39,0xc5,0xff,0xc5,0xc7,0xb8,0x8c,0xe7,0x14,0xfd,0xf7,0x3c,0xe7,0x5a,0x91,
+/* 0x000130 */ 0x8b,0xc0,0x27,0xc0,0xfe,0x23,0x28,0x4a,0x4a,0x94,0x3c,0xc9,0x15,0x43,0x77,0x93,
+/* 0x000140 */ 0x12,0x2d,0x0f,0xb9,0xba,0x4c,0xcd,0x66,0x2e,0x04,0x40,0x80,0x26,0x45,0x94,0x5c,
+/* 0x000150 */ 0x6e,0xa4,0x10,0x49,0x43,0x52,0x64,0x90,0xfd,0xac,0x3e,0xe3,0x2a,0xba,0x46,0x1a,
+/* 0x000160 */ 0x92,0xbe,0x49,0x81,0x09,0x1f,0x82,0xf0,0x8a,0x36,0x49,0x6a,0x8e,0x14,0x50,0xcd,
+/* 0x000170 */ 0x34,0x59,0xcc,0x9a,0xc4,0x6b,0xa4,0x3a,0xe9,0xeb,0xa7,0x36,0xa8,0x8c,0x1b,0x7f,
+/* 0x000180 */ 0x42,0x6a,0xdc,0xde,0xa1,0xb2,0x09,0xd4,0xc6,0xde,0x41,0x3e,0x87,0x0e,0x90,0xaa,
+/* 0x000190 */ 0xa4,0xa7,0x1f,0x33,0x41,0xf7,0x24,0xe4,0xb7,0x51,0x17,0xf2,0x8f,0x48,0xfd,0x77,
+/* 0x0001a0 */ 0x9c,0x43,0xfd,0xa4,0x22,0xb9,0x02,0x9a,0xc4,0x29,0x6a,0xd3,0x17,0x3b,0x27,0x1e,
+/* 0x0001b0 */ 0xd0,0xfd,0xd4,0x78,0x1c,0x8c,0xfd,0x6d,0xcd,0x3b,0x70,0x52,0x0c,0xd1,0xe7,0x74,
+/* 0x0001c0 */ 0xcd,0x18,0x46,0x7b,0x51,0x50,0xf7,0x84,0x30,0x08,0x62,0x70,0x08,0x84,0x41,0x74,
+/* 0x0001d0 */ 0x00,0xad,0x21,0x6e,0xaa,0x39,0x80,0x02,0x46,0x93,0x6b,0xad,0x21,0xa8,0x86,0x66,
+/* 0x0001e0 */ 0x0f,0xd2,0x88,0x24,0xfb,0xdf,0x74,0xb1,0xf7,0xd1,0xe7,0xec,0x06,0x63,0xfa,0x1a,
+/* 0x0001f0 */ 0xf4,0x57,0xa0,0xaa,0x01,0x10,0xde,0x46,0x9b,0x8e,0x04,0x92,0x6e,0xae,0xa9,0xe0,
+/* 0x000200 */ 0x4d,0x4f,0xa7,0x6c,0x0c,0xcd,0x7e,0xfa,0xce,0x1b,0xf0,0x84,0x18,0x65,0x1d,0x34,
+/* 0x000210 */ 0x7b,0x37,0x9a,0x42,0x11,0xdd,0x97,0x10,0xa8,0x4d,0x84,0xda,0xbc,0x89,0xce,0xeb,
+/* 0x000220 */ 0x75,0x89,0x2a,0xaa,0x99,0x40,0x75,0xa9,0x26,0x26,0x4c,0xa1,0x30,0x17,0xce,0xeb,
+/* 0x000230 */ 0x35,0xe5,0xde,0x7e,0x41,0x17,0xd9,0xfb,0x9c,0x45,0x07,0xa1,0xeb,0x1a,0x74,0xdf,
+/* 0x000240 */ 0x84,0x30,0x8d,0xae,0x89,0x54,0x28,0x7e,0x05,0x5d,0x45,0xb7,0x92,0xaf,0x4c,0xb8,
+/* 0x000250 */ 0xa6,0xa1,0x91,0x6a,0xca,0xa6,0x53,0x36,0xff,0x1b,0xed,0xe3,0xc2,0x55,0xb5,0xa1,
+/* 0x000260 */ 0x11,0x84,0x49,0xc4,0xde,0x47,0x95,0x6d,0xef,0x43,0x85,0xc2,0xc4,0xcc,0x24,0x7a,
+/* 0x000270 */ 0x9d,0x84,0x1f,0x73,0xfe,0xf6,0x94,0x8d,0x64,0x08,0x63,0x28,0x14,0xf7,0xee,0x12,
+/* 0x000280 */ 0x46,0x44,0x85,0x3e,0x67,0x68,0x46,0xd0,0xea,0x1f,0x91,0x0a,0x52,0x62,0xe6,0x2e,
+/* 0x000290 */ 0x3a,0x28,0x71,0xa3,0x37,0x6a,0x69,0xd3,0x5a,0x74,0xc0,0x65,0xf4,0xcf,0x61,0xd5,
+/* 0x0002a0 */ 0x10,0xba,0x1a,0xfd,0x7a,0xf3,0xaf,0xf0,0x79,0xfe,0xf5,0x25,0x67,0xac,0xb4,0x8d,
+/* 0x0002b0 */ 0x17,0x08,0xcb,0x43,0xf8,0x25,0xd4,0xe1,0x2f,0x6f,0x75,0x51,0x4d,0x02,0x29,0xa9,
+/* 0x0002c0 */ 0x26,0x26,0xfc,0x40,0x35,0x84,0xc7,0x89,0x12,0x92,0x4a,0xf0,0x24,0x2c,0x63,0xf0,
+/* 0x0002d0 */ 0x5f,0xd4,0x35,0x0f,0xed,0x23,0x95,0x49,0xcf,0x7a,0xfc,0x86,0x8b,0x0a,0xd2,0x7a,
+/* 0x0002e0 */ 0xfc,0xb1,0x72,0x38,0x31,0x3f,0xea,0x59,0x9f,0xf7,0x06,0x3a,0x48,0xe6,0x27,0x05,
+/* 0x0002f0 */ 0x68,0x32,0x6d,0xce,0xa8,0xa6,0x31,0xea,0xd4,0x95,0xa4,0xf4,0xd5,0xa2,0xd3,0xfc,
+/* 0x000300 */ 0x7d,0x9a,0x25,0x2f,0xba,0x00,0xbf,0xcb,0x17,0x12,0x86,0xd1,0x85,0x04,0xf4,0xcf,
+/* 0x000310 */ 0xe2,0xeb,0x06,0xa5,0x17,0xfa,0xbe,0x23,0x17,0x84,0xbe,0x30,0xac,0x5e,0x40,0x21,
+/* 0x000320 */ 0xa3,0x09,0xd5,0xeb,0xbe,0x3a,0x81,0x6a,0xea,0xa9,0x66,0x1c,0xfd,0xb1,0x24,0xb4,
+/* 0x000330 */ 0xc1,0x5b,0xda,0x71,0x8a,0x2f,0x18,0x6a,0x81,0x6d,0xbc,0xfe,0x80,0x1a,0x06,0x7d,
+/* 0x000340 */ 0x89,0x3f,0xdb,0x8d,0xfe,0x28,0xdf,0xa7,0x7f,0x1e,0x3a,0x53,0xfe,0x04,0x9a,0x3e,
+/* 0x000350 */ 0x3f,0x21,0xac,0x85,0x7e,0x06,0x9b,0x3d,0xc2,0xb8,0xce,0xfa,0x79,0x02,0x9e,0x33,
+/* 0x000360 */ 0x8d,0x0e,0xff,0x8d,0xef,0xac,0x30,0x92,0xc7,0xc6,0xab,0x77,0xc6,0xb8,0x73,0xbc,
+/* 0x000370 */ 0x40,0x48,0xa2,0x0b,0x24,0xbc,0xb4,0x9b,0x6a,0x26,0xd3,0xc6,0x2b,0x08,0x4d,0xb5,
+/* 0x000380 */ 0x5c,0xf3,0x3a,0x8a,0x74,0xf9,0x4a,0x84,0x0a,0x3e,0xbf,0x9a,0x67,0x3d,0x86,0xf6,
+/* 0x000390 */ 0xa1,0x4a,0xdd,0xd3,0x86,0xcf,0x18,0x82,0xfc,0x0a,0xda,0x27,0xde,0xa5,0x7a,0xda,
+/* 0x0003a0 */ 0xae,0x3b,0x83,0x9e,0x41,0x0b,0x6c,0x4d,0x13,0xf8,0x06,0xef,0x3e,0x54,0xaa,0xaf,
+/* 0x0003b0 */ 0x68,0xc3,0xd3,0xa8,0x13,0x57,0x92,0xee,0x56,0x5c,0xc4,0xbf,0xe7,0x76,0xf4,0x53,
+/* 0x0003c0 */ 0xab,0x9f,0x4d,0xe1,0x35,0xb4,0x6f,0x60,0xbe,0x72,0x3d,0xd5,0x1c,0x26,0xa5,0x49,
+/* 0x0003d0 */ 0xb7,0xd1,0x74,0x16,0x34,0x30,0x28,0x9a,0x61,0xfc,0x63,0x52,0x79,0xb7,0x67,0x12,
+/* 0x0003e0 */ 0x2b,0x2a,0xfb,0x7e,0x86,0x67,0x0f,0x3b,0xc7,0x9d,0x0a,0x23,0x7b,0xd1,0x2e,0xd5,
+/* 0x0003f0 */ 0xd0,0x04,0x6c,0x4d,0x09,0xec,0x35,0x35,0xe3,0x88,0xa8,0xc1,0x75,0xdd,0x37,0xbb,
+/* 0x000400 */ 0xc3,0x7c,0xbe,0x8f,0xcd,0xe9,0x45,0x97,0x51,0x84,0xf8,0x34,0x61,0x8c,0x09,0x1e,
+/* 0x000410 */ 0x4d,0x98,0x94,0xae,0x92,0x5b,0xe3,0xdd,0xa0,0x71,0x5d,0x45,0x61,0x52,0xa8,0xe1,
+/* 0x000420 */ 0x31,0xd3,0x26,0x80,0x9e,0x37,0x8d,0xdf,0x50,0x23,0x89,0x96,0xa4,0x50,0xc7,0xff,
+/* 0x000430 */ 0xae,0x66,0x98,0x1e,0x93,0x28,0x82,0x7c,0x04,0xba,0x77,0x12,0x3d,0xc0,0x85,0x7e,
+/* 0x000440 */ 0x54,0x77,0x9d,0xa1,0xb1,0x9a,0xa8,0x00,0x53,0x66,0x52,0xad,0x35,0x34,0xa5,0x11,
+/* 0x000450 */ 0xb4,0x95,0x74,0x9c,0x42,0x7c,0xfd,0x91,0x47,0xd1,0x25,0x14,0x51,0x7d,0x71,0x81,
+/* 0x000460 */ 0x0b,0x5f,0x89,0x0b,0x37,0x91,0x4b,0x9d,0x91,0x26,0x43,0x53,0x9b,0x6a,0xf2,0xc5,
+/* 0x000470 */ 0x8b,0xcb,0x53,0xc6,0x47,0xe5,0x70,0xb2,0x25,0x5e,0x76,0x84,0xff,0x5d,0x44,0x5c,
+/* 0x000480 */ 0x0d,0x2b,0x49,0x95,0xea,0x89,0xe3,0x51,0x26,0x48,0x71,0x5c,0x8e,0xf6,0xb7,0x56,
+/* 0x000490 */ 0xb5,0x31,0xcd,0x1e,0xe4,0x4f,0x35,0x79,0xe2,0x73,0xa1,0xa9,0x8b,0x1b,0xe3,0x76,
+/* 0x0004a0 */ 0xe2,0x6f,0x02,0x21,0x89,0x64,0xfa,0x9c,0x12,0xb1,0xdc,0xfe,0x9c,0xa0,0x9a,0x2f,
+/* 0x0004b0 */ 0xbb,0xcb,0x15,0x9b,0xe6,0x26,0xfb,0x73,0xe8,0xaf,0x90,0x8d,0xa6,0x6e,0xd4,0xa3,
+/* 0x0004c0 */ 0x7a,0x76,0xc0,0x64,0x64,0xf3,0x42,0x12,0x45,0xf8,0xa5,0x41,0xd5,0x23,0xc3,0x72,
+/* 0x0004d0 */ 0x0a,0x42,0x93,0x34,0x0b,0x8b,0x68,0xef,0xec,0xe0,0x20,0xd3,0xec,0x47,0x8a,0xd5,
+/* 0x0004e0 */ 0xa4,0x7a,0x1e,0x86,0xa6,0x3d,0x01,0xc3,0xb8,0x1d,0x29,0xcb,0x41,0x38,0xc2,0xdc,
+/* 0x0004f0 */ 0x0f,0xd4,0x9f,0xef,0xe8,0xe7,0x88,0x5c,0xd0,0x29,0x28,0xda,0x64,0x53,0x64,0xee,
+/* 0x000500 */ 0xcf,0xb8,0xa6,0xd6,0xd6,0xcf,0xd0,0xe4,0x9a,0x54,0x0c,0xe3,0x21,0x14,0x96,0x7c,
+/* 0x000510 */ 0x64,0xd9,0x39,0x81,0xcd,0xf7,0x1d,0x37,0x3a,0xfb,0xb9,0xd9,0xb7,0x4d,0xb8,0x88,
+/* 0x000520 */ 0xae,0x28,0x0d,0xcd,0x4c,0xf3,0x11,0x34,0x7d,0xde,0xec,0xe7,0x96,0x6d,0x42,0xca,
+/* 0x000530 */ 0x58,0xbb,0x42,0x35,0x23,0xc2,0xdb,0x79,0x6c,0x5e,0xec,0x98,0x33,0x2a,0x39,0xc6,
+/* 0x000540 */ 0xcb,0x17,0x77,0x3d,0x83,0xde,0x9f,0xd1,0xf0,0x97,0x5e,0xaa,0xf9,0x10,0x85,0xed,
+/* 0x000550 */ 0x4d,0x20,0x5c,0x31,0x85,0x0f,0xd1,0xc2,0xa8,0xaf,0x4d,0x78,0x9b,0xcf,0xaf,0xdb,
+/* 0x000560 */ 0x64,0xfa,0xb5,0x54,0x21,0x0f,0xc1,0x86,0xb0,0x39,0xa6,0xa0,0xae,0x9e,0xaa,0x80,
+/* 0x000570 */ 0xc4,0x35,0x15,0xa9,0xa6,0x7c,0xcb,0x86,0x0b,0x7e,0x11,0x84,0x13,0x7c,0xdc,0xa5,
+/* 0x000580 */ 0x19,0x4d,0xf6,0x7e,0x2e,0xa7,0x82,0x88,0x77,0x6e,0x5e,0xbb,0x54,0xca,0xec,0x67,
+/* 0x000590 */ 0x87,0x00,0x4d,0xd1,0x6e,0xda,0xcf,0xec,0x7d,0x4a,0x66,0xec,0x72,0x7e,0x3f,0x9e,
+/* 0x0005a0 */ 0xb8,0xfb,0x26,0xb4,0x00,0xdd,0xfb,0xe7,0x28,0x8e,0x46,0xa5,0xfd,0xa8,0x62,0xa9,
+/* 0x0005b0 */ 0x7d,0xdc,0x47,0xe9,0x62,0x6e,0x18,0x8b,0x30,0xee,0x3f,0xc2,0x2f,0xf1,0x79,0xa1,
+/* 0x0005c0 */ 0xcd,0x48,0xfb,0x9e,0x41,0xc8,0x43,0xef,0x90,0x88,0x2a,0x32,0x4d,0x32,0x0c,0x3f,
+/* 0x0005d0 */ 0x65,0x34,0x79,0x1c,0x1d,0xf5,0x21,0x09,0xff,0x35,0x08,0x63,0x9d,0xec,0x7d,0x2a,
+/* 0x0005e0 */ 0x5c,0xbb,0x32,0x9e,0x33,0x8a,0x5e,0x55,0x22,0x6a,0x35,0xd3,0x68,0xb6,0xa6,0x02,
+/* 0x0005f0 */ 0x87,0xcd,0x94,0x0a,0xe3,0x15,0x17,0x8e,0xf1,0xfd,0x2b,0x80,0xb4,0xf4,0xc9,0x28,
+/* 0x000600 */ 0x24,0xa5,0xd3,0x20,0x78,0x99,0x46,0xed,0x43,0x85,0xce,0x09,0x6b,0x7e,0x3f,0xa7,
+/* 0x000610 */ 0xa5,0x30,0xf2,0x76,0x76,0xb8,0xf9,0xfe,0xd5,0x3b,0x27,0x80,0xde,0x45,0x55,0xb0,
+/* 0x000620 */ 0x5c,0xc0,0xe2,0xf0,0x3c,0x17,0x2e,0x93,0x48,0x5b,0xe5,0xc3,0x12,0xd5,0xf4,0x21,
+/* 0x000630 */ 0x3f,0xd5,0xac,0x61,0x4d,0x2b,0xa8,0xe6,0x90,0x6e,0x18,0x6f,0x46,0x65,0xbd,0xee,
+/* 0x000640 */ 0x71,0xb7,0xc4,0xe7,0x45,0xe0,0xc1,0xb4,0xfd,0x0b,0x16,0xab,0x13,0xd2,0x36,0x14,
+/* 0x000650 */ 0xdc,0xe1,0xe6,0x9a,0xf4,0xfd,0x6b,0xaf,0x6c,0x08,0x0f,0xeb,0x8a,0xbe,0x46,0xc6,
+/* 0x000660 */ 0x6e,0xbe,0x7f,0xdd,0xe5,0xba,0x01,0x3d,0x69,0x5b,0x9f,0x87,0x99,0xf0,0x1c,0xdd,
+/* 0x000670 */ 0x10,0xa9,0x70,0x18,0x56,0x63,0xd0,0x7c,0x1d,0x9a,0xbe,0xa9,0x7b,0xd6,0x59,0x6b,
+/* 0x000680 */ 0x38,0xac,0xab,0x5b,0xd4,0x9d,0xda,0xe6,0xfb,0x8b,0x02,0xfc,0x7d,0x14,0x69,0x1e,
+/* 0x000690 */ 0x78,0x56,0x4b,0x92,0xbe,0xf5,0xc2,0x1b,0x5c,0xb8,0xaf,0xec,0x0d,0xf4,0x3b,0xb2,
+/* 0x0006a0 */ 0x24,0x5a,0xc8,0x35,0x0b,0x6d,0x4d,0x0f,0x40,0xd3,0x47,0xdc,0xf8,0x2a,0xf9,0x5d,
+/* 0x0006b0 */ 0xd7,0xc2,0xe8,0xca,0xf5,0xcb,0x2a,0xf8,0xfe,0xd5,0x9c,0xef,0xf4,0x13,0x86,0x7c,
+/* 0x0006c0 */ 0x17,0x97,0xd1,0xed,0x26,0x32,0x30,0x23,0xf1,0x17,0x54,0x73,0x08,0x9a,0xf0,0xda,
+/* 0x0006d0 */ 0x94,0xcd,0x25,0xf4,0x00,0x15,0xce,0xa1,0xcb,0x4a,0x84,0x54,0x27,0x84,0x23,0x98,
+/* 0x0006e0 */ 0x8d,0x17,0x99,0x63,0xf3,0x0f,0xa7,0xe2,0x0d,0x13,0xbe,0xe9,0x8e,0xab,0xe8,0x2a,
+/* 0x0006f0 */ 0xb9,0x6d,0xd4,0x3b,0x59,0x7c,0x55,0xfc,0xa4,0x7d,0xb1,0xe5,0x3a,0x82,0x50,0x96,
+/* 0x000700 */ 0x32,0x56,0xae,0x90,0x86,0xb3,0x5b,0xbf,0x2a,0x84,0xf8,0xfc,0xea,0xb5,0xef,0x5f,
+/* 0x000710 */ 0x7b,0x09,0x08,0x21,0xe5,0x8c,0xb8,0x7d,0x69,0xe9,0xa8,0xc4,0x7b,0xcc,0xbe,0x7f,
+/* 0x000720 */ 0xad,0xa7,0xc2,0x2c,0xb3,0x33,0x95,0xca,0x2e,0xcf,0x3d,0xcb,0xee,0xe3,0xdf,0xf3,
+/* 0x000730 */ 0x2c,0x74,0x83,0x6d,0x1f,0x54,0x0c,0xe1,0x39,0xb4,0x40,0x95,0x78,0x3f,0xdb,0x9f,
+/* 0x000740 */ 0xd3,0x96,0x77,0x06,0x3d,0x6b,0x1a,0x3f,0x3b,0xa3,0xb2,0x75,0x45,0x6b,0xd1,0x6c,
+/* 0x000750 */ 0xc4,0xbe,0x9f,0xa8,0x98,0xb6,0x7f,0xad,0x08,0xe1,0x93,0x30,0xb5,0x94,0x23,0x52,
+/* 0x000760 */ 0x6a,0xff,0x42,0x54,0xf0,0xea,0xd7,0x73,0x4f,0xc6,0xcb,0x8c,0x67,0xef,0x2d,0x0a,
+/* 0x000770 */ 0xb6,0x7b,0x14,0x2c,0x19,0xfb,0xd7,0x0c,0x47,0x3f,0x37,0xc0,0xe6,0x2b,0xbc,0x15,
+/* 0x000780 */ 0x98,0xd2,0xea,0x7a,0x25,0xaa,0xb9,0xc0,0xfc,0x43,0x6c,0xec,0xef,0x13,0xd8,0xda,
+/* 0x000790 */ 0xe8,0xa7,0xe9,0x04,0x49,0xb6,0x74,0x36,0x46,0xf8,0xdf,0x15,0x47,0xe3,0xe2,0xf7,
+/* 0x0007a0 */ 0x1c,0x7e,0x02,0x3c,0x07,0x4d,0x35,0x46,0xf4,0x96,0x44,0xb1,0xdd,0x85,0x70,0x51,
+/* 0x0007b0 */ 0x61,0xd9,0xb8,0xf4,0x3d,0xd5,0xd0,0x4c,0x4a,0x11,0xcd,0xa7,0x75,0x24,0xf9,0xfe,
+/* 0x0007c0 */ 0xd5,0x8e,0x6c,0x3e,0xa4,0x21,0x2c,0x52,0x60,0x50,0x4c,0x4d,0x8d,0xa3,0xe9,0x7e,
+/* 0x0007d0 */ 0x10,0xf6,0x5a,0x4d,0xaa,0x2f,0xb9,0x4c,0xe6,0x7f,0xd7,0xc3,0xe2,0x5a,0x87,0xff,
+/* 0x0007e0 */ 0x4c,0x85,0x1e,0xe5,0x70,0xbc,0x7a,0xd0,0x93,0xf0,0x8f,0xa3,0x47,0x91,0xdf,0xde,
+/* 0x0007f0 */ 0x54,0x34,0x0e,0x4f,0x79,0x97,0x6b,0x60,0xea,0x69,0x9e,0x80,0x50,0xae,0xca,0xfc,
+/* 0x000800 */ 0xfb,0x09,0x3a,0x9f,0xb3,0x22,0xe4,0xaf,0xa2,0xb3,0x72,0x80,0xfe,0x94,0x78,0x00,
+/* 0x000810 */ 0xfb,0xd3,0xfc,0xf0,0xfd,0xc4,0xd0,0xf4,0xa3,0x9e,0xa4,0xe7,0x20,0x7c,0xcd,0xc6,
+/* 0x000820 */ 0xfe,0xe5,0x4d,0xf7,0x37,0x1a,0xb7,0xc0,0xef,0x32,0x34,0x8f,0xb2,0x79,0x8a,0x8c,
+/* 0x000830 */ 0xa6,0x70,0x23,0x85,0x03,0xdc,0x03,0x71,0xf5,0x11,0x05,0xc1,0xc4,0x6f,0xe4,0xfb,
+/* 0x000840 */ 0x17,0x29,0xb0,0x7d,0xf3,0x53,0xdf,0xfa,0xbc,0xde,0xf2,0x51,0x71,0x40,0x3c,0xff,
+/* 0x000850 */ 0x97,0x11,0xe6,0xd7,0x89,0x53,0xa8,0x8f,0x37,0xbd,0xc7,0x6c,0x5c,0x6b,0xc5,0x4b,
+/* 0x000860 */ 0xf0,0x86,0x3e,0x9b,0xab,0xa6,0xf0,0xfd,0x4b,0x2b,0xb0,0xf7,0xf3,0x6a,0x78,0xce,
+/* 0x000870 */ 0x79,0x61,0x02,0x5d,0x55,0x22,0x83,0x33,0x53,0xdd,0x3b,0xd3,0x10,0x9e,0xdb,0x38,
+/* 0x000880 */ 0x0d,0xfb,0x8e,0x61,0x7c,0x15,0x35,0x10,0x5f,0x52,0xd8,0xc1,0xf7,0x2f,0x07,0xfe,
+/* 0x000890 */ 0xfa,0x03,0x69,0x18,0xf2,0x9e,0x16,0x96,0xc0,0x18,0xd6,0xb9,0x0b,0x8c,0x69,0x15,
+/* 0x0008a0 */ 0x2d,0x64,0x02,0x5a,0x32,0xe4,0x5d,0xb4,0xec,0x63,0xfa,0x40,0x6e,0x3c,0x8d,0x16,
+/* 0x0008b0 */ 0x6a,0x5b,0x26,0x84,0xec,0xf8,0xab,0x7a,0x42,0x4a,0xe0,0x20,0x1a,0x7b,0xd0,0x2f,
+/* 0x0008c0 */ 0x07,0x0c,0x44,0xa6,0x49,0xfd,0x8d,0x00,0xbb,0xd4,0xaa,0x57,0xa4,0x3e,0xfc,0xb6,
+/* 0x0008d0 */ 0xf8,0xb3,0xc1,0xaa,0x64,0x21,0x6d,0x82,0xfd,0x4b,0x93,0x0e,0x66,0xc5,0x5f,0x3f,
+/* 0x0008e0 */ 0x40,0xc1,0xdf,0x94,0x24,0xf0,0xca,0xce,0x84,0x2b,0xe8,0x72,0x87,0x8a,0x86,0xa5,
+/* 0x0008f0 */ 0xbd,0xb0,0xcb,0x50,0x01,0x60,0x57,0x50,0x2f,0x09,0xc5,0x40,0x68,0x0a,0x9a,0x13,
+/* 0x000900 */ 0x44,0x19,0xf8,0xa2,0x98,0x97,0x0b,0x7f,0x49,0x09,0xff,0x5a,0xd4,0x1b,0x2b,0x9f,
+/* 0x000910 */ 0xcd,0xbe,0x16,0xd0,0x44,0x25,0xde,0x74,0xaf,0xce,0x84,0x47,0xc1,0x98,0x42,0x33,
+/* 0x000920 */ 0x31,0x41,0x00,0x18,0x92,0x98,0x89,0xbf,0xe6,0xd8,0x3e,0x7e,0x70,0x89,0x75,0xaf,
+/* 0x000930 */ 0x5c,0x76,0x3f,0xba,0xf2,0x66,0x44,0xb9,0x1d,0xe6,0x85,0x78,0xc0,0x55,0x1f,0xbd,
+/* 0x000940 */ 0xdd,0x98,0x20,0x03,0xde,0x04,0xdd,0x6e,0x40,0x60,0xc6,0x57,0x48,0x58,0xf3,0xbd,
+/* 0x000950 */ 0x63,0xe2,0xaf,0xa4,0xcb,0x8e,0xbf,0xd0,0x12,0xbd,0x7a,0xc2,0x73,0x10,0x7d,0x24,
+/* 0x000960 */ 0x2d,0xd6,0x9a,0x8c,0xf1,0x22,0x6c,0xbc,0x0e,0x83,0xcd,0x2f,0x41,0xe3,0x9a,0x32,
+/* 0x000970 */ 0x8d,0xaf,0x48,0x0d,0xc8,0x9b,0x1b,0x7f,0x15,0x24,0x84,0xdd,0xaf,0x4c,0xea,0xe1,
+/* 0x000980 */ 0x55,0x54,0x90,0x40,0x33,0x56,0xc0,0x9a,0xe4,0xb0,0x0e,0xef,0x53,0x6e,0x43,0x64,
+/* 0x000990 */ 0x04,0x34,0xdb,0x05,0x39,0x13,0x7f,0x81,0x50,0x4d,0x3b,0xe1,0x1a,0x7a,0x7e,0xc0,
+/* 0x0009a0 */ 0xaf,0x1a,0xdd,0x52,0x35,0xc1,0x84,0xc3,0xae,0xc7,0x75,0x36,0x94,0x87,0xdd,0xe6,
+/* 0x0009b0 */ 0x8c,0x83,0x7d,0x47,0x21,0x38,0xcc,0xe7,0xc5,0x68,0x3a,0xfe,0xca,0x97,0xf1,0x09,
+/* 0x0009c0 */ 0x94,0x10,0x35,0x39,0x3f,0x84,0xb7,0xa0,0xc7,0xd1,0x5a,0xfd,0x73,0xbc,0xa9,0x4a,
+/* 0x0009d0 */ 0x07,0x0d,0xb8,0x7c,0x48,0xe3,0xc6,0x30,0x5e,0x0f,0xe6,0xcb,0xfe,0xf5,0x7c,0xff,
+/* 0x0009e0 */ 0x52,0x6c,0xf8,0x0b,0x7c,0xfe,0x60,0x32,0x7f,0xbd,0xff,0x0d,0xf4,0x6c,0xbc,0xbc,
+/* 0x0009f0 */ 0x52,0x65,0x9a,0x58,0xa5,0x56,0x42,0x81,0xd8,0x3e,0xbd,0x12,0x9a,0xf0,0x75,0x60,
+/* 0x000a00 */ 0x5c,0xca,0x8d,0x9f,0x21,0x65,0x5a,0x7e,0x09,0x6e,0xb6,0xe3,0xaf,0x7a,0x03,0x64,
+/* 0x000a10 */ 0x91,0x7a,0xbd,0x60,0xa1,0xb0,0x45,0x82,0x8f,0x34,0xf0,0xff,0x86,0x96,0x6d,0x51,
+/* 0x000a20 */ 0x2f,0xb8,0xea,0x9b,0xbe,0x12,0x5a,0x36,0x0c,0xfd,0x53,0x3f,0x56,0x50,0x57,0xe6,
+/* 0x000a30 */ 0x45,0xdf,0x16,0x43,0xfa,0xe7,0xa9,0xf1,0x24,0x0a,0x0d,0x17,0x28,0xc2,0x1d,0x06,
+/* 0x000a40 */ 0xfe,0xba,0xd1,0x36,0x5e,0xb4,0x9f,0xe7,0xd1,0x35,0xf3,0x22,0xaa,0x43,0xe6,0x08,
+/* 0x000a50 */ 0x2e,0x35,0x84,0xe2,0x97,0x0a,0x3f,0x84,0xee,0xbd,0xc6,0xf1,0xd7,0x34,0x9a,0x76,
+/* 0x000a60 */ 0x35,0x0c,0x16,0x26,0x85,0xb8,0x81,0xbf,0xe6,0x38,0xf1,0xd7,0x09,0x5f,0x7c,0xe6,
+/* 0x000a70 */ 0xb8,0x78,0x45,0x08,0x97,0x7a,0x61,0x15,0x65,0x5f,0x94,0xd1,0x54,0xa5,0x03,0x5a,
+/* 0x000a80 */ 0x87,0xf1,0xba,0xab,0x0e,0x96,0x5c,0x68,0xba,0x42,0x81,0x46,0x67,0x77,0x6e,0xfc,
+/* 0x000a90 */ 0xe5,0x87,0x3d,0x05,0x97,0x22,0x63,0xff,0xaa,0x24,0xb4,0x49,0xa6,0x4d,0x12,0xe0,
+/* 0x000aa0 */ 0x2f,0xe9,0x4f,0x01,0x86,0xbf,0xd8,0x06,0x44,0x3c,0xc8,0xc4,0x5f,0x04,0xcd,0x73,
+/* 0x000ab0 */ 0xe0,0xaf,0x31,0x10,0x7e,0x3a,0xd2,0x17,0x2b,0x0b,0xb9,0x0d,0x90,0x65,0x34,0xc5,
+/* 0x000ac0 */ 0x83,0x63,0xcd,0xeb,0x1b,0xff,0x0c,0x6c,0x16,0x70,0xcd,0xb3,0xd0,0xd4,0xbd,0x1e,
+/* 0x000ad0 */ 0x6b,0x7c,0xff,0x1a,0x4a,0xdf,0xbf,0x3c,0x21,0x71,0x5c,0xec,0x53,0x95,0xd2,0x0a,
+/* 0x000ae0 */ 0xba,0xe8,0xd9,0x9a,0x00,0xda,0x87,0xb0,0xd7,0xf5,0x38,0x36,0x3c,0x99,0x3d,0xad,
+/* 0x000af0 */ 0xc1,0xa8,0xa7,0x16,0xf7,0x99,0xfb,0x57,0x1a,0xfe,0x62,0xc2,0x21,0xb1,0x26,0x5e,
+/* 0x000b00 */ 0x48,0x85,0xd7,0x50,0x43,0x8f,0xd5,0xe4,0xa5,0xf8,0xeb,0x3c,0xaa,0xe3,0x36,0x57,
+/* 0x000b10 */ 0xd5,0x25,0x5d,0xbe,0x72,0xe1,0x79,0x13,0x7f,0x65,0x80,0xac,0xe2,0xb3,0x20,0x1c,
+/* 0x000b20 */ 0x92,0x0a,0x4c,0xa4,0xe0,0x04,0x62,0x63,0x96,0xb1,0xab,0x0a,0x04,0xd7,0x1d,0x06,
+/* 0x000b30 */ 0xfe,0x42,0x99,0xfe,0xea,0x5b,0xe8,0x68,0x20,0xbc,0xc6,0xee,0xe1,0x83,0x00,0x5e,
+/* 0x000b40 */ 0xa5,0x97,0x6b,0xea,0xb8,0xf1,0x77,0xa5,0xc8,0x52,0x98,0x71,0xfe,0x1c,0xf8,0x0b,
+/* 0x000b50 */ 0x84,0xb7,0x51,0xfb,0x6a,0xff,0xdd,0xa6,0xe6,0x0e,0x3b,0x34,0x03,0x41,0x32,0x11,
+/* 0x000b60 */ 0x19,0x86,0x25,0x2e,0x0e,0xfd,0xcc,0xf1,0xd7,0x9c,0x72,0xe7,0x73,0x56,0xc4,0x8b,
+/* 0x000b70 */ 0x46,0xd1,0x26,0xe4,0xb7,0xdc,0xef,0x26,0xdb,0x73,0x1a,0xa9,0x50,0x61,0x18,0x47,
+/* 0x000b80 */ 0x41,0xb3,0x0d,0xe7,0x65,0xc3,0x5f,0xd8,0xab,0x7a,0x66,0xe1,0xc1,0x46,0xc0,0x56,
+/* 0x000b90 */ 0x4d,0xc7,0x4d,0x14,0x90,0xcf,0x04,0x99,0x41,0x33,0x10,0x02,0x26,0x52,0x00,0x20,
+/* 0x000ba0 */ 0xe6,0x2e,0x8a,0xc5,0x0c,0xfc,0x55,0xe0,0xc4,0x5f,0x6e,0x00,0x59,0xef,0x68,0x43,
+/* 0x000bb0 */ 0x81,0xbe,0xb9,0x69,0x38,0x77,0x4d,0x64,0xae,0xb7,0x93,0xf9,0xcf,0x75,0x29,0x47,
+/* 0x000bc0 */ 0x7a,0x65,0x4c,0xa8,0xca,0x8e,0xbf,0x54,0xdf,0x29,0x61,0x94,0x5c,0x81,0x5d,0xc6,
+/* 0x000bd0 */ 0xd0,0x34,0x18,0x4d,0x4a,0xa4,0xb9,0x9a,0x42,0xb3,0x0f,0x2d,0x00,0x15,0x60,0x4d,
+/* 0x000be0 */ 0x06,0xfe,0x2a,0x71,0xe2,0x8b,0x79,0x54,0x80,0x4d,0x8a,0xd4,0x34,0x3d,0xe4,0x78,
+/* 0x000bf0 */ 0x0e,0xcc,0xa6,0x56,0x27,0xfe,0xba,0x92,0xb8,0x4d,0xf5,0xbe,0x06,0x60,0x84,0x3d,
+/* 0x000c00 */ 0x67,0x51,0x06,0xfe,0x72,0xc7,0xce,0xb6,0x8e,0xa1,0x80,0x89,0xbf,0x68,0x53,0x23,
+/* 0x000c10 */ 0x13,0x24,0x6e,0x83,0x4d,0xe3,0x64,0x15,0x2a,0xe8,0xf4,0x58,0xf8,0xcb,0x8e,0xad,
+/* 0x000c20 */ 0x44,0x2a,0x14,0x0d,0xba,0xf6,0x2c,0x2d,0x5f,0xea,0x44,0x5b,0x0f,0x1b,0xc2,0x8c,
+/* 0x000c30 */ 0x94,0xb1,0x5c,0x75,0x97,0x34,0xab,0x08,0x1b,0xf8,0x6b,0x4e,0x06,0xfe,0xc2,0xa3,
+/* 0x000c40 */ 0xae,0xa7,0xf5,0x2a,0x35,0xdf,0x01,0xbb,0xac,0xa6,0x03,0xf8,0xde,0x14,0x10,0xfb,
+/* 0x000c50 */ 0x6a,0x7c,0xae,0x89,0xbf,0xe6,0xa4,0xf7,0xf3,0x23,0xd8,0x71,0x8c,0x30,0xef,0x0e,
+/* 0x000c60 */ 0x8e,0xa4,0xac,0x0f,0x3b,0x65,0xbc,0x5e,0xf5,0x16,0x95,0x05,0xf8,0xfe,0x15,0xc8,
+/* 0x000c70 */ 0x86,0xbf,0x94,0x0f,0x51,0xdd,0xea,0x42,0xa6,0x11,0x23,0x1c,0x38,0xef,0xe7,0x4d,
+/* 0x000c80 */ 0x6f,0xab,0x29,0xe3,0x6d,0x0f,0x34,0x6f,0xdd,0xd6,0x61,0xe2,0x2f,0xd9,0x89,0xbf,
+/* 0x000c90 */ 0x5c,0x20,0xc0,0x17,0xd5,0x1c,0x92,0xbc,0xb6,0xef,0x07,0x6c,0x94,0xb0,0x61,0x93,
+/* 0x000ca0 */ 0x6f,0x19,0x87,0xd1,0x6e,0x52,0x7c,0x8c,0xef,0x5f,0x81,0x19,0x01,0x13,0x76,0x99,
+/* 0x000cb0 */ 0xf8,0xcb,0xbd,0x18,0x1d,0x52,0xcb,0xe2,0x12,0x3f,0xae,0xa9,0xee,0x65,0x4d,0x87,
+/* 0x000cc0 */ 0x48,0x59,0xfb,0xed,0x49,0x3b,0xfe,0xfa,0x29,0xba,0xb5,0xb7,0x62,0x14,0x1f,0x93,
+/* 0x000cd0 */ 0x39,0xfe,0x4a,0xdf,0xbf,0x40,0x98,0x89,0xf6,0xfe,0x26,0x99,0x34,0xfc,0xf0,0x20,
+/* 0x000ce0 */ 0xf1,0xd0,0x8d,0x6c,0x2f,0xb8,0x14,0xdc,0xa6,0xc8,0x30,0x4e,0xc8,0x5a,0x32,0x7f,
+/* 0x000cf0 */ 0x8e,0xff,0x18,0xdf,0xbf,0x34,0xd7,0x0d,0x69,0xeb,0xf3,0x77,0xf1,0x1c,0xd8,0x3d,
+/* 0x000d00 */ 0x4b,0x47,0x9a,0xa9,0xe6,0x49,0x63,0x7d,0x06,0x37,0xb5,0x74,0x68,0xae,0x0d,0x7f,
+/* 0x000d10 */ 0x9d,0x41,0xff,0x4c,0xe6,0xeb,0x5f,0x6c,0x85,0x17,0x63,0xef,0xd3,0x9b,0x8e,0xbf,
+/* 0x000d20 */ 0x3c,0xdf,0x13,0xe6,0xa2,0x4f,0x36,0x2c,0x54,0x82,0x54,0xb3,0x8f,0x37,0xfd,0x14,
+/* 0x000d30 */ 0x60,0xd7,0xc2,0x09,0x1f,0x5d,0x96,0x2d,0xe3,0x8b,0x00,0xcd,0xfe,0x75,0xbd,0xf0,
+/* 0x000d40 */ 0x2e,0xdf,0xbf,0xa4,0x1b,0xd3,0xfc,0x04,0xcf,0x73,0xc2,0x2e,0x74,0x41,0x04,0x2c,
+/* 0x000d50 */ 0x6c,0x68,0x48,0xca,0xd5,0xdf,0x23,0x8c,0xbb,0xa6,0x30,0x37,0x16,0x67,0xb3,0x43,
+/* 0x000d60 */ 0x5d,0xe1,0x08,0xdf,0xbf,0x50,0xda,0xf9,0x3c,0x15,0x3e,0x46,0x27,0x41,0xf0,0x5e,
+/* 0x000d70 */ 0xe2,0x1a,0xc5,0x80,0x66,0x35,0x49,0x2f,0x3d,0x9f,0xff,0x43,0xbc,0x7a,0x94,0xfb,
+/* 0x000d80 */ 0x87,0xa4,0x26,0xe9,0x3b,0x2a,0xa0,0x1c,0xf8,0xab,0xf0,0x3e,0xfc,0xef,0x52,0x1e,
+/* 0x000d90 */ 0xba,0x4d,0x97,0xda,0x04,0x68,0x12,0x2b,0x91,0x17,0x9a,0xbc,0xbf,0xd2,0xfd,0xba,
+/* 0x000da0 */ 0x74,0x9f,0x70,0x06,0xbd,0xe8,0x02,0x1b,0x0e,0xb2,0x76,0x1e,0xf1,0xa8,0xb8,0xc2,
+/* 0x000db0 */ 0xf0,0xc7,0x90,0x7d,0x1f,0xc4,0x20,0xac,0x8b,0x8d,0xa0,0x8d,0x72,0x35,0xe0,0xaf,
+/* 0x000dc0 */ 0x3c,0x5b,0xaf,0x3e,0x0b,0x80,0x37,0x7f,0x1d,0x9e,0x46,0x3f,0x12,0xbf,0xc9,0x35,
+/* 0x000dd0 */ 0xcf,0x50,0x08,0xac,0x34,0x22,0xbe,0x7f,0x29,0xe9,0xe7,0x87,0xee,0x7e,0x7a,0xd6,
+/* 0x000de0 */ 0xa4,0x04,0x54,0x29,0x74,0x1d,0x1d,0xee,0x60,0x9c,0x7d,0x00,0xfb,0xc1,0xb1,0x07,
+/* 0x000df0 */ 0xbf,0xe5,0x21,0xd8,0x38,0xc1,0xc6,0xf0,0x5b,0x92,0x9e,0xf2,0x98,0x81,0xbf,0x7a,
+/* 0x000e00 */ 0xe7,0xa4,0xf5,0x33,0xfc,0xed,0x63,0xf8,0x38,0xa9,0x7f,0x33,0x68,0x68,0x34,0x03,
+/* 0x000e10 */ 0xde,0xee,0xd5,0x0b,0x26,0xf0,0x39,0x72,0x9a,0x9d,0xe1,0x33,0x7f,0x3e,0xa4,0xf9,
+/* 0x000e20 */ 0x64,0x4f,0x85,0xa8,0xf2,0x7d,0x99,0x3a,0xff,0xce,0x73,0xda,0x31,0x34,0x35,0x7b,
+/* 0x000e30 */ 0x31,0x15,0xd8,0xaf,0xe8,0xb4,0x9a,0xaa,0x12,0xae,0x71,0x94,0x54,0xd9,0x30,0xd1,
+/* 0x000e40 */ 0xf3,0x5e,0x18,0xca,0xb8,0x60,0xe0,0x2f,0x97,0x7c,0x7f,0x3a,0xfe,0xf2,0x04,0xd0,
+/* 0x000e50 */ 0x27,0xae,0x9a,0x80,0xd7,0xd0,0x1c,0xe1,0xb0,0xcb,0x65,0x00,0x31,0x18,0x26,0x2e,
+/* 0x000e60 */ 0x4c,0x82,0x0b,0x5a,0x35,0x22,0xa0,0x26,0x8e,0xe3,0x32,0xf0,0xd7,0x84,0xff,0x8b,
+/* 0x000e70 */ 0xe2,0x01,0x74,0xab,0x8a,0x0c,0x8d,0xc2,0x9b,0xc8,0xad,0x26,0x5c,0x0a,0x73,0xe1,
+/* 0x000e80 */ 0x20,0x02,0x57,0x7f,0x07,0x56,0x0c,0xfc,0x35,0x23,0x98,0x81,0xe3,0x00,0x7f,0x01,
+/* 0x000e90 */ 0xc8,0x92,0x1c,0xcf,0xa1,0xb0,0xeb,0x75,0xa6,0x51,0x2c,0xfc,0x55,0xa5,0xb8,0x7b,
+/* 0x000ea0 */ 0xb1,0x92,0x0d,0x7f,0x29,0x0c,0x0b,0x7b,0x51,0x9f,0x58,0x3e,0xd8,0x6c,0x8c,0x20,
+/* 0x000eb0 */ 0xe2,0xb3,0x52,0x29,0x7f,0xf1,0xfa,0x5a,0x46,0xc7,0x18,0xfe,0x46,0x1f,0xbc,0x4f,
+/* 0x000ec0 */ 0x40,0xc1,0x78,0x16,0xff,0x7c,0x2c,0xfc,0x45,0xb1,0x30,0xc0,0xae,0x96,0xf3,0xcb,
+/* 0x000ed0 */ 0x02,0xe2,0x25,0x78,0xf9,0x20,0xc5,0x95,0x46,0x13,0xd8,0x04,0xc2,0x23,0xbe,0x67,
+/* 0x000ee0 */ 0xc0,0x0d,0xbb,0x6c,0x22,0x32,0xba,0x34,0x55,0x69,0x02,0x32,0xf0,0xd7,0x8d,0x36,
+/* 0x000ef0 */ 0xfc,0x35,0x15,0x65,0x87,0xf0,0x14,0x64,0xc1,0xfe,0x65,0xf4,0x33,0x77,0x14,0xa7,
+/* 0x000f00 */ 0xa9,0xcd,0xc7,0xf0,0x3d,0x4f,0xa3,0xc5,0x46,0x87,0xa3,0x6a,0x8a,0xbf,0xc6,0x0c,
+/* 0x000f10 */ 0xfc,0x55,0x90,0x3e,0xbf,0x26,0x84,0x5f,0x11,0x18,0x14,0xd5,0x33,0xd1,0x61,0x36,
+/* 0x000f20 */ 0xf9,0xa7,0xd9,0x8c,0xf3,0x9d,0x16,0xa6,0xc9,0xb0,0x7e,0x2b,0x37,0xfe,0x98,0xd4,
+/* 0x000f30 */ 0x48,0x5b,0x26,0xcb,0x8c,0xf3,0x0d,0x82,0x28,0xc8,0xba,0xd7,0xe2,0xbf,0x40,0x28,
+/* 0x000f40 */ 0xaa,0x44,0xfd,0xae,0xda,0x68,0xd7,0x2e,0x4b,0x83,0x0f,0xab,0xdd,0x54,0xd8,0xe6,
+/* 0x000f50 */ 0xff,0x00,0x6d,0x16,0xfd,0xdc,0x18,0xc6,0x62,0x42,0xea,0x2f,0x52,0xb2,0xf1,0x5f,
+/* 0x000f60 */ 0x5c,0xd8,0xa2,0xf7,0x8b,0x92,0x5a,0xe2,0x8f,0x59,0xc8,0x77,0x18,0x75,0x50,0x41,
+/* 0x000f70 */ 0x8e,0x0d,0xdf,0xd1,0xa5,0x94,0x73,0xe3,0x03,0x48,0x89,0x4b,0xfd,0xd8,0x9f,0x9b,
+/* 0x000f80 */ 0xff,0xaa,0x42,0xfd,0xa4,0xea,0xcb,0x73,0x7b,0x1b,0xa9,0xa6,0x10,0x9a,0xe6,0xee,
+/* 0x000f90 */ 0x46,0xdd,0xd4,0xa6,0xef,0x8e,0x71,0xb4,0x59,0xb2,0x10,0xbd,0x7f,0x69,0x73,0x3f,
+/* 0x000fa0 */ 0x0e,0xd9,0xf1,0x57,0x95,0x63,0x5e,0x3c,0x4d,0x0e,0x90,0xc5,0xea,0x8c,0x83,0x1d,
+/* 0x000fb0 */ 0x86,0x86,0xb2,0x27,0xc7,0xa9,0x10,0x07,0xf8,0xd6,0xb5,0xd4,0xe0,0x2f,0x2e,0x2f,
+/* 0x000fc0 */ 0xdd,0xfb,0x9c,0x77,0x91,0x07,0x65,0xc5,0x5f,0x20,0xb4,0x15,0x53,0xe1,0xd6,0x68,
+/* 0x000fd0 */ 0xa5,0xa9,0xa1,0xc0,0x19,0xb3,0xa6,0x11,0x3a,0x4c,0xaa,0x89,0x97,0x77,0x35,0xdc,
+/* 0x000fe0 */ 0x5d,0x9d,0xcc,0x89,0xbf,0x40,0x78,0x07,0x4d,0xdd,0x5d,0xd7,0x04,0x4e,0xa9,0xa9,
+/* 0x000ff0 */ 0xa9,0xf1,0x72,0x21,0xfe,0x57,0xe3,0xe8,0xa8,0x79,0x4e,0x72,0x69,0x79,0x88,0x78,
+/* 0x001000 */ 0x13,0x1d,0x59,0xf8,0x2f,0x63,0x7e,0xe1,0xf7,0xf5,0xbd,0x8d,0x8a,0xfa,0xd0,0x6e,
+/* 0x001010 */ 0x43,0xd3,0x9d,0x88,0x1d,0x34,0x6d,0xce,0xa0,0x76,0xd3,0x78,0x8f,0xcb,0xbf,0x1e,
+/* 0x001020 */ 0xf0,0x72,0x2e,0xfe,0xcb,0x13,0xca,0xd3,0x51,0x9f,0x8b,0xba,0x73,0xd6,0x78,0x61,
+/* 0x001030 */ 0x3e,0x77,0xf2,0xa9,0x4d,0xbb,0x69,0x0c,0xeb,0x98,0x0c,0x4b,0xdc,0x64,0x36,0xfc,
+/* 0x001040 */ 0xc5,0x04,0xff,0x29,0xf4,0x5c,0x7c,0x7e,0x9b,0xbb,0x39,0xc5,0xd4,0x18,0xdc,0xcd,
+/* 0x001050 */ 0x2a,0xfc,0x46,0xe3,0x46,0x52,0x60,0xe2,0x82,0xd2,0xa4,0xb4,0x3e,0x36,0x64,0xe0,
+/* 0x001060 */ 0x2f,0x64,0xc3,0x5f,0x7b,0x65,0x26,0x0c,0xa2,0xf3,0x4b,0xef,0x1f,0x6c,0x91,0x3b,
+/* 0x001070 */ 0x86,0x9b,0x2e,0xa0,0xfb,0xa9,0xc6,0x6b,0xf1,0x5f,0x68,0xc0,0x34,0x3e,0x1f,0x85,
+/* 0x001080 */ 0xfe,0x09,0x09,0x26,0xff,0x35,0x27,0x93,0xaf,0x1c,0x45,0xe7,0x5d,0xdf,0x6b,0x04,
+/* 0x001090 */ 0x67,0x60,0x1a,0xfd,0x13,0x6d,0x0a,0xa5,0xf6,0xaf,0x33,0xf2,0x94,0xdc,0xc0,0xcf,
+/* 0x0010a0 */ 0xb5,0xae,0x2d,0x5d,0x42,0x5a,0x46,0x72,0xf3,0x5f,0x7b,0x60,0xa9,0x9c,0xe2,0xfe,
+/* 0x0010b0 */ 0x8f,0xd5,0xf4,0x3e,0xb1,0xf8,0xaf,0x63,0xc4,0xc0,0xcb,0x13,0xd1,0x30,0x6c,0x91,
+/* 0x0010c0 */ 0x65,0xef,0xe6,0xc2,0x5f,0xeb,0xc2,0x23,0xd2,0x3e,0x57,0x69,0xb3,0x0d,0x91,0xe1,
+/* 0x0010d0 */ 0x33,0x0a,0x13,0x46,0xf0,0x8d,0x78,0x03,0x32,0xf1,0x17,0xde,0x79,0x04,0x84,0x53,
+/* 0x0010e0 */ 0xe6,0x3a,0x9f,0x85,0xff,0x12,0xf7,0x91,0xbf,0x4d,0x1e,0x5f,0x95,0xd2,0xbc,0x61,
+/* 0x0010f0 */ 0xd2,0x8b,0xf3,0xd0,0x46,0x13,0xe7,0x1e,0x24,0xa5,0x6f,0x02,0xfe,0x4a,0x1a,0xf8,
+/* 0x001100 */ 0x2b,0x0b,0xff,0x35,0xd8,0xd9,0xa7,0x2b,0x4b,0x3d,0xc5,0xfe,0xcc,0x26,0x2f,0x4c,
+/* 0x001110 */ 0x58,0x13,0x7f,0x75,0x2a,0x93,0x9e,0xeb,0xf0,0x79,0x3e,0xdf,0xc7,0xd3,0xf9,0x2f,
+/* 0x001120 */ 0x10,0xa6,0x94,0xab,0xc9,0x5a,0xe2,0x1b,0x33,0x35,0x8a,0x30,0x26,0x71,0xda,0x0b,
+/* 0x001130 */ 0x07,0xd0,0x09,0xdc,0xc7,0x8d,0xcf,0xa3,0xb0,0xe6,0x1b,0x15,0x2e,0xe7,0xc4,0x5f,
+/* 0x001140 */ 0x65,0x49,0x71,0x12,0x3b,0x11,0x19,0x17,0xb6,0x12,0x01,0xa0,0x19,0x31,0x9b,0x66,
+/* 0x001150 */ 0x45,0xe4,0x93,0x44,0xc8,0xc5,0x7f,0x71,0x41,0xea,0x53,0x7d,0x3b,0x52,0x1a,0x8b,
+/* 0x001160 */ 0xf6,0xea,0x44,0x47,0xad,0x73,0x7e,0xa5,0x2e,0xe9,0x8b,0x7b,0x3e,0x05,0x7f,0xbd,
+/* 0x001170 */ 0x25,0xee,0x41,0x65,0x8d,0x9e,0x1d,0x96,0x06,0x19,0x3e,0xb6,0x8c,0xcb,0xc9,0x26,
+/* 0x001180 */ 0xc3,0x58,0xdc,0x9f,0xf4,0xb7,0x75,0x17,0xc1,0xbe,0xc3,0xf1,0xd7,0x8c,0xf2,0x4c,
+/* 0x001190 */ 0x67,0x5b,0xdd,0x8f,0x01,0xac,0x6d,0x8b,0x59,0xcf,0xb1,0x6c,0x76,0xa1,0x4d,0x29,
+/* 0x0011a0 */ 0x63,0xff,0x5f,0x7b,0x76,0x34,0x66,0xc5,0x5f,0x5c,0x18,0x6e,0xda,0x2f,0x2b,0x0c,
+/* 0x0011b0 */ 0x88,0x99,0x9a,0x4e,0x2e,0xc4,0xb1,0xa8,0xb5,0xdb,0x78,0x99,0xe5,0xa0,0xc1,0xd9,
+/* 0x0011c0 */ 0xf1,0x17,0xf2,0xc5,0x3a,0xce,0x6a,0x13,0x6a,0xd8,0xed,0xdb,0xd0,0x61,0x0d,0x81,
+/* 0x0011d0 */ 0xa2,0x99,0x8e,0x74,0x4c,0x4f,0xe1,0x5c,0xca,0x7f,0xe5,0xc6,0x5f,0x71,0xe1,0x22,
+/* 0x0011e0 */ 0xb9,0xa2,0x34,0x30,0x20,0x96,0x0e,0xcd,0x3a,0x06,0x01,0x76,0x71,0x8d,0x74,0x09,
+/* 0x0011f0 */ 0x3d,0xa4,0xfa,0x46,0x72,0xe0,0x2f,0x36,0xad,0x2e,0x8a,0xbf,0x9f,0xb5,0x67,0xcd,
+/* 0x001200 */ 0xcc,0x11,0xf3,0xc7,0x2d,0xe1,0x61,0xc0,0x71,0xc7,0x53,0x44,0xd8,0xde,0xbb,0x7c,
+/* 0x001210 */ 0x23,0x65,0x2f,0xe5,0xc2,0x5f,0x54,0xe8,0x22,0x7e,0xd9,0x93,0xc6,0x76,0x81,0x80,
+/* 0x001220 */ 0x71,0x12,0x6f,0xb6,0xf1,0x5f,0xc8,0xce,0x7f,0x65,0xe3,0xb6,0x1e,0x56,0xd6,0x34,
+/* 0x001230 */ 0xa5,0xd3,0x5e,0x6b,0x4d,0x7a,0xd1,0xec,0x67,0xa2,0xb4,0x7a,0x4a,0x1a,0x8f,0xe4,
+/* 0x001240 */ 0xc4,0x5f,0x79,0xef,0xc3,0x24,0xaa,0x68,0xf2,0x3c,0x9c,0x81,0xbf,0xb6,0xe1,0x51,
+/* 0x001250 */ 0xc7,0xb8,0xff,0xc6,0x13,0x6f,0xcc,0x89,0xbf,0x40,0x50,0xbf,0xaa,0xd4,0xa9,0x5b,
+/* 0x001260 */ 0x7f,0x9a,0xd1,0xcf,0x8c,0xc6,0xb5,0x34,0x23,0xe1,0xa8,0x6f,0xbb,0x30,0x96,0x1b,
+/* 0x001270 */ 0x7f,0xbd,0x0d,0x7e,0x4b,0xed,0xb2,0xad,0x3b,0x60,0x61,0xbc,0xe4,0xaa,0x4d,0x9f,
+/* 0x001280 */ 0x32,0x96,0x10,0x8b,0xfc,0x5d,0xcb,0x4f,0x84,0x1c,0xf8,0x8b,0x09,0x4a,0xff,0x5d,
+/* 0x001290 */ 0x61,0x8a,0xcd,0x8d,0xa6,0xf6,0x54,0x93,0xa2,0x0c,0xd9,0x88,0x30,0xd1,0x47,0x3a,
+/* 0x0012a0 */ 0x72,0xe3,0x2f,0x3c,0x19,0x3f,0x34,0x04,0xcf,0x18,0xc7,0x46,0xd3,0x18,0xa6,0xeb,
+/* 0x0012b0 */ 0x06,0x6b,0x9a,0x4b,0x36,0x9b,0xc6,0xcf,0x35,0x55,0x27,0x3c,0x80,0xbf,0x50,0x4e,
+/* 0x0012c0 */ 0xfc,0x35,0x8a,0xf6,0xe2,0xf2,0x84,0x24,0x33,0xd8,0xe5,0x6c,0x2a,0x40,0x1d,0xd8,
+/* 0x0012d0 */ 0xdc,0xbf,0x48,0x30,0x26,0xcc,0xc2,0x39,0xf1,0x57,0x1b,0x3e,0x8d,0x0e,0xa3,0x7f,
+/* 0x0012e0 */ 0xe9,0x69,0x5e,0x15,0x33,0x9a,0x5a,0x53,0xd0,0xec,0x06,0xbc,0xd1,0x34,0x7e,0x46,
+/* 0x0012f0 */ 0x05,0x41,0xb5,0xe1,0x2f,0xd9,0xc9,0x7f,0xad,0x17,0x7e,0x0b,0xc2,0x2d,0x5a,0x70,
+/* 0x001300 */ 0x08,0x60,0x57,0x7a,0xd3,0x5c,0xf4,0x6b,0xcd,0xd0,0x7c,0x4c,0x96,0x28,0x2d,0xcd,
+/* 0x001310 */ 0x16,0xfe,0xfa,0x4a,0x86,0x9f,0x00,0xc3,0x74,0x01,0xd7,0xb5,0x7b,0x88,0xa9,0xb1,
+/* 0x001320 */ 0x36,0xa0,0x67,0x84,0xa1,0x54,0x9c,0xcc,0x14,0xe5,0x97,0xb5,0x65,0x9f,0x86,0xbf,
+/* 0x001330 */ 0xd4,0xe1,0xf8,0xad,0x5a,0xc1,0xd8,0xb2,0xab,0xb2,0xb3,0xe9,0x8a,0x70,0x1d,0x3a,
+/* 0x001340 */ 0xd9,0x55,0xc3,0x35,0x57,0xa8,0xe6,0x1d,0x41,0xb7,0xf0,0x97,0x9a,0xde,0x3f,0x23,
+/* 0x001350 */ 0xf2,0xbf,0x90,0x9d,0x43,0x12,0xef,0x96,0xdb,0x74,0xc1,0x6a,0xea,0xcf,0x9b,0x0d,
+/* 0x001360 */ 0x88,0x75,0xa7,0xd1,0x3f,0x2e,0x80,0xae,0x2a,0x7e,0x37,0x1b,0xfe,0xe2,0xc2,0x2b,
+/* 0x001370 */ 0x68,0x7b,0x68,0xbe,0x5e,0xa2,0xda,0x51,0xad,0x11,0x07,0x32,0x1b,0x6d,0xe5,0xcc,
+/* 0x001380 */ 0x23,0xec,0x83,0x6a,0xe5,0x88,0x27,0x8a,0x75,0x0b,0x7f,0x49,0xe9,0x83,0xfb,0x92,
+/* 0x001390 */ 0xb8,0x67,0xa9,0xa6,0x4b,0x52,0x46,0xfc,0x06,0x3d,0x37,0x7e,0xda,0xd8,0xbf,0x60,
+/* 0x0013a0 */ 0x0d,0x5f,0xab,0x79,0x2a,0xf1,0x50,0x0a,0x7f,0x7d,0x2f,0xcd,0x1f,0x7b,0x97,0xbc,
+/* 0x0013b0 */ 0x2a,0xd7,0x2a,0xc1,0x83,0x26,0xf2,0xb5,0x3a,0x7c,0xd2,0x1d,0x44,0x27,0xcd,0xf3,
+/* 0x0013c0 */ 0xf0,0x09,0x14,0x89,0xb7,0x68,0xc2,0xbb,0xe6,0xb9,0xa8,0xc3,0x4f,0x78,0x80,0xfb,
+/* 0x0013d0 */ 0x75,0xef,0xab,0x11,0xad,0xe5,0x59,0xd3,0xcf,0x24,0x29,0x17,0x82,0x1e,0xa7,0x9b,
+/* 0x0013e0 */ 0xfc,0x17,0xaa,0x6f,0xf2,0xf5,0x14,0x5b,0xf8,0xcb,0xc9,0x7f,0x0d,0x80,0x30,0xa6,
+/* 0x0013f0 */ 0x5c,0xd1,0x42,0xa8,0xa0,0x4d,0xa8,0xe7,0x4d,0x3a,0xc0,0x81,0x0f,0xb8,0xcd,0x65,
+/* 0x001400 */ 0x7c,0xd2,0xe4,0xbf,0xae,0xc6,0x6b,0x9a,0xbc,0x49,0x3b,0xfe,0x5a,0x9c,0x86,0x9b,
+/* 0x001410 */ 0xde,0x95,0x9e,0x55,0x29,0x57,0xd2,0x61,0x40,0xb3,0xae,0xd8,0x38,0xf7,0x9f,0x13,
+/* 0x001420 */ 0x77,0x0f,0xe1,0x6e,0xd1,0xf4,0x9f,0x63,0x7e,0xbd,0x39,0xf0,0x69,0xf8,0xeb,0x9c,
+/* 0x001430 */ 0x0b,0xd6,0xa8,0x89,0xfc,0x5e,0x6c,0x34,0x75,0xd9,0xf8,0x2f,0xb5,0x3b,0xc5,0xac,
+/* 0x001440 */ 0xf5,0xe8,0x52,0xaf,0xdf,0xc4,0x5f,0x28,0x83,0xff,0xc2,0x43,0xf2,0x7e,0x45,0xa1,
+/* 0x001450 */ 0xa7,0xbb,0xc6,0x14,0x46,0x98,0xe2,0x02,0x80,0x03,0x61,0x26,0x18,0xfe,0xc6,0xf3,
+/* 0x001460 */ 0x34,0xe0,0xaf,0xd7,0xdc,0xbf,0x90,0xd7,0xce,0x7f,0x99,0x8e,0xfd,0x87,0x81,0xbe,
+/* 0x001470 */ 0x81,0x1b,0x35,0xf0,0xbe,0xac,0x7e,0x66,0xfc,0xd7,0x47,0xc5,0xe3,0xa9,0xf1,0x9a,
+/* 0x001480 */ 0x42,0x61,0x12,0xd4,0x3c,0x28,0x1b,0xff,0x85,0xaa,0xb9,0x70,0xc9,0xe1,0xe1,0xeb,
+/* 0x001490 */ 0xa6,0xb0,0x17,0x84,0x4f,0x52,0x4d,0x87,0x55,0x1b,0xfe,0x4a,0x9b,0x5f,0xa8,0x65,
+/* 0x0014a0 */ 0x48,0xa8,0xd7,0x4e,0x92,0x9a,0x63,0xde,0xe9,0x65,0x0f,0x50,0x80,0x90,0x84,0xfd,
+/* 0x0014b0 */ 0xab,0x1e,0x50,0x5b,0x8d,0x2e,0xad,0x2f,0xbe,0x8a,0x7c,0x78,0xf1,0x5b,0xcc,0xf8,
+/* 0x0014c0 */ 0x23,0x52,0x83,0xe0,0x57,0x38,0xf8,0xaf,0x3a,0x0b,0x7f,0x29,0x2b,0xba,0x70,0x25,
+/* 0x0014d0 */ 0x8d,0x81,0x39,0x5a,0xd0,0x57,0x54,0x45,0x83,0x0c,0x93,0xe0,0x78,0x2c,0x69,0xea,
+/* 0x0014e0 */ 0x47,0x8f,0x27,0xbb,0xa8,0xcd,0xd3,0x92,0x7f,0x88,0x19,0xf7,0xc7,0xfc,0x8a,0x27,
+/* 0x0014f0 */ 0x5e,0x64,0xf2,0x5f,0xc8,0xe9,0xbc,0x11,0x4f,0xa8,0xc8,0xeb,0xea,0x70,0x95,0x1f,
+/* 0x001500 */ 0x5b,0x11,0x66,0xfd,0x4c,0xd1,0xd6,0x75,0x74,0x2c,0x6e,0xd2,0x2b,0x16,0xe5,0x9d,
+/* 0x001510 */ 0x73,0x75,0x28,0x81,0x21,0x8f,0x71,0x52,0x81,0x56,0x20,0x9c,0x83,0xff,0x22,0x9e,
+/* 0x001520 */ 0x44,0xac,0x82,0x7e,0x2d,0xc9,0xc5,0x94,0xcd,0x59,0x0c,0xa3,0xdc,0x1d,0xcf,0x0b,
+/* 0x001530 */ 0x02,0xa2,0x7f,0x82,0x1e,0x7d,0xc0,0xfb,0xa0,0xbb,0x07,0x38,0xee,0xd6,0x7b,0x10,
+/* 0x001540 */ 0xbc,0x6a,0x36,0xfe,0x6b,0x8a,0xa2,0x5a,0xc9,0x53,0x05,0x9b,0x54,0x6d,0xe2,0x97,
+/* 0x001550 */ 0x09,0x61,0x2d,0xf4,0x0f,0xa0,0xad,0x55,0x42,0x50,0x9a,0x1c,0xd8,0xc7,0x8f,0x23,
+/* 0x001560 */ 0x8e,0x23,0x83,0xbf,0x38,0x4f,0x6a,0x96,0xfa,0x86,0x4c,0xfe,0x6b,0x94,0xe1,0xaf,
+/* 0x001570 */ 0xc5,0x96,0x3f,0x2f,0xfa,0x4e,0x15,0x4f,0xe7,0x5d,0x43,0x65,0x64,0xc6,0x84,0x39,
+/* 0x001580 */ 0x3a,0xaf,0xd0,0xd3,0x0c,0xbd,0x4e,0x2f,0x98,0xe8,0x98,0x96,0x3f,0x71,0xf0,0x95,
+/* 0x001590 */ 0x23,0xb9,0xf0,0x57,0x9e,0x77,0x77,0xf1,0x38,0x3e,0x8e,0xc2,0x71,0xaf,0x71,0x4e,
+/* 0x0015a0 */ 0x42,0x57,0xda,0x20,0x7a,0x01,0x47,0x28,0xff,0x15,0xb4,0x93,0x77,0x35,0x74,0x23,
+/* 0x0015b0 */ 0xcb,0xce,0x7f,0x55,0xb5,0x49,0x09,0xd8,0x02,0x3a,0x1a,0x15,0x82,0x19,0xdb,0x45,
+/* 0x0015c0 */ 0x9b,0xfa,0x85,0x83,0xa8,0x5b,0xa9,0x1e,0x90,0x9e,0xc1,0x5e,0xf5,0xb0,0x69,0x0c,
+/* 0x0015d0 */ 0x78,0x59,0xf2,0xec,0x88,0x85,0xb3,0xe2,0xaf,0x40,0x48,0x42,0x58,0x43,0x3f,0x90,
+/* 0x0015e0 */ 0x14,0xf4,0xb9,0x84,0xb9,0x7f,0xcd,0x82,0x81,0xeb,0x40,0x37,0x0d,0x49,0x37,0xe3,
+/* 0x0015f0 */ 0x95,0xaa,0x65,0xfc,0x30,0xd1,0x90,0x47,0xc2,0x8b,0xb2,0xe2,0xaf,0x60,0xb9,0xb4,
+/* 0x001600 */ 0x16,0x9f,0x72,0xfd,0x4c,0x2b,0x2b,0xe7,0x51,0x70,0xb4,0xe9,0x6b,0x80,0xbf,0x36,
+/* 0x001610 */ 0x8c,0x54,0xbe,0x1b,0x58,0x1f,0xbb,0x93,0x32,0x62,0xdc,0xf8,0x57,0xa4,0x54,0x01,
+/* 0x001620 */ 0x44,0x26,0x65,0xe3,0xbf,0x50,0x3d,0xf1,0xca,0xc2,0xe3,0xe4,0xdf,0x48,0x54,0x2c,
+/* 0x001630 */ 0x38,0x20,0x6c,0x11,0x2f,0x88,0xf5,0x83,0xbe,0xb9,0xc2,0xed,0xe4,0x85,0xe4,0x77,
+/* 0x001640 */ 0xc6,0xbc,0xa1,0x99,0x2b,0xc9,0x05,0x0d,0x8c,0x17,0x0b,0xc3,0x25,0xbf,0x29,0x09,
+/* 0x001650 */ 0x41,0xff,0x78,0x8a,0xb2,0xc4,0x1f,0x42,0x1f,0xb6,0xd3,0x10,0x50,0xf5,0x4f,0xf2,
+/* 0x001660 */ 0x12,0xb1,0xd0,0x9a,0x5f,0x7f,0x29,0x4c,0x37,0x5e,0x65,0xa1,0x02,0x65,0x07,0x95,
+/* 0x001670 */ 0x6b,0x9f,0x33,0xf9,0x4a,0x7e,0xf4,0x91,0x03,0x7f,0x69,0x5e,0xd2,0x31,0x8a,0xbe,
+/* 0x001680 */ 0x8c,0xc2,0xc8,0xcb,0x69,0x4a,0xb6,0x0f,0x7e,0xa0,0x1c,0x13,0xc3,0xa7,0xbc,0x26,
+/* 0x001690 */ 0x4d,0xb9,0x95,0xe1,0x77,0xd4,0x10,0xf5,0x12,0x21,0x3b,0xfe,0x0a,0xee,0x90,0xa2,
+/* 0x0016a0 */ 0xb0,0xef,0x6c,0x44,0x3b,0xd1,0xd7,0xac,0x48,0x8c,0x56,0x3c,0x4c,0xb6,0xa2,0x9b,
+/* 0x0016b0 */ 0x47,0xa4,0x7f,0xc4,0x67,0xc8,0x61,0xa5,0xd4,0x8c,0xcd,0xa8,0x24,0xb0,0xc7,0x9d,
+/* 0x0016c0 */ 0x32,0xd7,0x79,0x27,0xfe,0xd2,0xa4,0x55,0xf8,0x25,0x00,0x59,0xf7,0x84,0x02,0x36,
+/* 0x0016d0 */ 0x44,0xf6,0xc6,0xd2,0x0d,0xa4,0x74,0x4c,0x62,0x84,0xa3,0x89,0xbf,0xf6,0x6d,0x0a,
+/* 0x0016e0 */ 0x96,0x06,0x9a,0x73,0xe1,0xaf,0x8b,0x30,0xb8,0x7f,0x0c,0x75,0x90,0xe8,0xce,0x8a,
+/* 0x0016f0 */ 0x44,0x6a,0x85,0x1c,0x16,0xbb,0xc5,0x72,0xbd,0x37,0x94,0x77,0x42,0xb7,0x22,0x79,
+/* 0x001700 */ 0xf6,0xe8,0x41,0x0c,0x6b,0xe6,0xf9,0x2c,0xf1,0x87,0xe7,0x51,0x43,0xc2,0xab,0xb9,
+/* 0x001710 */ 0x2e,0x93,0x97,0x94,0x85,0xbb,0x82,0x76,0x46,0x4c,0x3e,0xa1,0x86,0x89,0xf7,0x6d,
+/* 0x001720 */ 0x98,0x05,0x97,0x61,0x19,0x34,0xf8,0xaf,0x86,0x84,0x94,0xcc,0x8e,0xbf,0x70,0x04,
+/* 0x001730 */ 0x57,0x67,0xd2,0x5e,0x9d,0x14,0x7f,0x49,0xf5,0xa8,0xba,0xb3,0xfd,0xac,0x3d,0xc0,
+/* 0x001740 */ 0x69,0x9e,0xb8,0x35,0x17,0xfe,0xaa,0x53,0x7d,0xfd,0x30,0x5e,0xef,0xb8,0xc2,0x51,
+/* 0x001750 */ 0x6f,0x5c,0x30,0x5c,0x50,0xd9,0x03,0xf8,0x8b,0x80,0xa6,0x4b,0x48,0xca,0x29,0x63,
+/* 0x001760 */ 0x19,0x84,0x59,0x39,0xf8,0xaf,0xb2,0x75,0x9e,0x1f,0xfa,0xc1,0x49,0x56,0x7a,0xd6,
+/* 0x001770 */ 0x06,0x58,0x94,0x20,0x6b,0xba,0x03,0x84,0x7c,0x7f,0xab,0xb4,0x01,0x9f,0x55,0x53,
+/* 0x001780 */ 0xc6,0xa4,0x2a,0x0a,0x42,0x76,0xfc,0x55,0x71,0x97,0x27,0x0e,0xb0,0xeb,0x29,0x58,
+/* 0x001790 */ 0xbe,0x24,0x8a,0xb6,0x58,0xd3,0x8e,0x18,0xd8,0x28,0x3d,0xcb,0xa5,0x58,0x51,0xd2,
+/* 0x0017a0 */ 0xe1,0x99,0x53,0x6a,0x2c,0x3b,0xfe,0xe2,0xdc,0x96,0xda,0x2e,0x2b,0x3c,0x10,0xd1,
+/* 0x0017b0 */ 0x88,0x36,0x14,0xd5,0x3d,0xb3,0x94,0xa5,0x52,0x51,0x6c,0x58,0xdb,0xb3,0x28,0x68,
+/* 0x0017c0 */ 0x41,0x86,0xe5,0x9e,0xa2,0x58,0x76,0xfc,0x55,0xe7,0xf6,0x91,0x65,0x67,0xb5,0xa4,
+/* 0x0017d0 */ 0x1a,0xa6,0x6c,0x97,0xc6,0xa3,0xc5,0x62,0x1d,0xa5,0xda,0xe4,0x9a,0xb0,0xdb,0x1b,
+/* 0x0017e0 */ 0x13,0x92,0x64,0x32,0x9a,0x1a,0x02,0xa9,0x25,0xe6,0xc9,0x8e,0xbf,0x60,0xee,0xc4,
+/* 0x0017f0 */ 0x5d,0xd3,0xf1,0x2b,0xca,0x12,0x1a,0x88,0x98,0xc2,0x4d,0x80,0xc8,0x22,0xcb,0xab,
+/* 0x001800 */ 0xb7,0x75,0x70,0x22,0xcc,0xc0,0x4d,0x14,0xa3,0x75,0x64,0xc3,0x5f,0x57,0x50,0xe4,
+/* 0x001810 */ 0x6e,0xf8,0xa9,0xb7,0xf0,0x57,0xd4,0x85,0x6a,0xa1,0x41,0x9f,0xa9,0xb0,0x5b,0xbd,
+/* 0x001820 */ 0x85,0x3e,0x42,0xe1,0x55,0xde,0x47,0x84,0xdf,0x2a,0xfb,0x4d,0xea,0x07,0x9e,0xb3,
+/* 0x001830 */ 0xc6,0x77,0x5a,0x78,0x49,0xce,0x8a,0xbf,0x00,0x76,0x09,0x3d,0x88,0x90,0x1e,0xc4,
+/* 0x001840 */ 0xf9,0x2f,0x15,0x9a,0x1e,0xc4,0x6f,0x52,0xb4,0x15,0x92,0xb6,0xe0,0xb3,0x28,0xc1,
+/* 0x001850 */ 0x61,0x97,0x61,0xbc,0x35,0x96,0x13,0x7f,0x95,0xe0,0x41,0xd2,0xae,0x28,0xea,0x66,
+/* 0x001860 */ 0xa6,0x51,0x79,0x13,0x78,0x71,0xe5,0xad,0xd2,0x75,0xa9,0x18,0x45,0x10,0x08,0xeb,
+/* 0x001870 */ 0xf0,0xac,0xf8,0xcb,0x45,0x47,0x19,0xef,0x72,0xb5,0x13,0xc5,0x60,0x4b,0x51,0xa1,
+/* 0x001880 */ 0x15,0x80,0x8a,0xa4,0x4e,0xfc,0x96,0xb4,0xdf,0x8a,0x68,0x25,0x55,0x5f,0x05,0x44,
+/* 0x001890 */ 0x96,0x0d,0x7f,0xed,0x47,0x91,0xef,0xf8,0x1e,0x13,0xfe,0xa4,0x1e,0x15,0xc3,0x46,
+/* 0x0018a0 */ 0xff,0x58,0x43,0x30,0xf1,0x1c,0x0a,0x6e,0x12,0x46,0xe5,0x4b,0xd8,0x44,0x52,0x24,
+/* 0x0018b0 */ 0xd2,0x76,0x72,0xa4,0x2c,0x07,0xfe,0x4a,0xfa,0xe2,0x1b,0x99,0xc6,0xc6,0x0b,0x3f,
+/* 0x0018c0 */ 0xc2,0x84,0x45,0xf4,0xdb,0x18,0x25,0x1f,0x8a,0x29,0x63,0xf8,0x9e,0x97,0xe5,0xc0,
+/* 0x0018d0 */ 0x5f,0x32,0x43,0x5b,0x63,0xe5,0x61,0x64,0xe7,0xbf,0x18,0xdb,0xa5,0xc0,0x52,0xa9,
+/* 0x0018e0 */ 0xc9,0x43,0x62,0xaa,0x49,0x0e,0x12,0x21,0x07,0xfe,0x7a,0x62,0xc5,0x98,0x7f,0x0c,
+/* 0x0018f0 */ 0x3d,0xd4,0xf4,0x38,0x3d,0xa5,0xa1,0x9a,0x3a,0xc0,0x5f,0x45,0x63,0xe8,0x90,0x54,
+/* 0x001900 */ 0xd6,0x23,0x25,0xf1,0x22,0x75,0x33,0xf2,0x93,0x66,0xc3,0x58,0x93,0x7e,0xee,0xc4,
+/* 0x001910 */ 0x5f,0x29,0x67,0x3b,0xe9,0x59,0x04,0x7b,0xdc,0x5e,0x59,0xe9,0x93,0x42,0x76,0x57,
+/* 0x001920 */ 0xe4,0x00,0x51,0x92,0xd2,0x2d,0x45,0x5b,0xd4,0x0e,0xcc,0x5c,0x3e,0x68,0x8a,0x07,
+/* 0x001930 */ 0x75,0xc0,0x68,0xb9,0xf1,0x97,0xff,0x8c,0xfe,0x63,0x54,0x16,0x7f,0xf4,0xdb,0x66,
+/* 0x001940 */ 0x7c,0xdd,0x77,0xf0,0x19,0xf5,0x57,0x48,0x19,0x0a,0x5c,0xc2,0x37,0xa0,0x8d,0x21,
+/* 0x001950 */ 0x2b,0xf4,0xae,0xf2,0xcd,0xa1,0x75,0x4e,0xfe,0xeb,0x36,0x0e,0xa9,0xf6,0x91,0x25,
+/* 0x001960 */ 0xab,0xb7,0xae,0x6f,0xbc,0xda,0xf9,0x49,0xfb,0x42,0xc5,0x7b,0x5f,0x0a,0x76,0xbd,
+/* 0x001970 */ 0x01,0xee,0xc1,0xc2,0x09,0xef,0x7a,0xe1,0x31,0xf4,0xeb,0x78,0xcd,0x9b,0x5e,0x8e,
+/* 0x001980 */ 0xc8,0xea,0xa3,0xde,0x55,0xb9,0xf8,0xaf,0x12,0xe6,0x55,0xbe,0x0b,0xdd,0x5b,0xcd,
+/* 0x001990 */ 0x35,0x75,0xd6,0xa9,0xbe,0x71,0x90,0xa8,0x44,0xf8,0xbe,0x33,0xc5,0x4f,0x2a,0x52,
+/* 0x0019a0 */ 0xf8,0x4b,0xb5,0xfc,0xc3,0x4f,0x48,0xcd,0x28,0xb8,0x34,0x11,0xf4,0x32,0x68,0x0a,
+/* 0x0019b0 */ 0xf7,0x1b,0xb0,0xcb,0x73,0x49,0x38,0x07,0xdb,0x16,0x85,0x5d,0x45,0x57,0xd1,0xf7,
+/* 0x0019c0 */ 0xe2,0xb5,0xa3,0x3e,0xaa,0xb9,0x42,0x16,0xd2,0xf7,0x51,0xb3,0xf0,0x5f,0xfb,0xd0,
+/* 0x0019d0 */ 0xce,0x36,0xcf,0xb7,0x8a,0x82,0xb8,0xbd,0xb4,0x52,0x1f,0x5e,0x44,0xb3,0x09,0x68,
+/* 0x0019e0 */ 0x53,0x08,0x9f,0x20,0x07,0x34,0x65,0xcc,0xb3,0x0e,0xbf,0x12,0xdf,0xdb,0x0e,0xfb,
+/* 0x0019f0 */ 0x4e,0x88,0x9e,0xaf,0xa2,0x5b,0x74,0xa9,0xcd,0xfd,0x73,0xc3,0x1f,0x53,0x1f,0x93,
+/* 0x001a00 */ 0x6d,0xcf,0x99,0x3f,0xe4,0x51,0x63,0x37,0x28,0x0f,0x4a,0xdf,0x24,0xb6,0xa8,0x4e,
+/* 0x001a10 */ 0xe8,0xf9,0x67,0xe5,0xd2,0x21,0x4f,0x5b,0xde,0x69,0x6a,0x03,0x9a,0xa2,0x33,0xe8,
+/* 0x001a20 */ 0xb0,0x54,0xda,0x28,0xbd,0xe2,0x56,0xb3,0xf1,0x5f,0x2e,0x51,0x5d,0x21,0xc9,0x41,
+/* 0x001a30 */ 0x7a,0x18,0x42,0x24,0x7a,0xbc,0x6f,0x34,0x8d,0xa3,0x44,0x33,0x6c,0x5b,0xb7,0xe0,
+/* 0x001a40 */ 0x97,0xd5,0x54,0x24,0xaa,0x5a,0xae,0x4a,0x0f,0xe3,0xae,0xac,0xfc,0xd7,0x3f,0x6e,
+/* 0x001a50 */ 0xf7,0x2d,0xaa,0x58,0x82,0x36,0x51,0xda,0x6b,0x42,0x30,0xd2,0x52,0xfa,0xa9,0x67,
+/* 0x001a60 */ 0xae,0x82,0x1b,0xdf,0x7f,0xcf,0x09,0xea,0x51,0x73,0xf2,0xe5,0x92,0x1e,0x9e,0x08,
+/* 0x001a70 */ 0xee,0x58,0xf1,0xf7,0x16,0xfe,0xb2,0xf1,0x5f,0xae,0xba,0x11,0x2a,0x28,0x57,0xec,
+/* 0x001a80 */ 0xb4,0x97,0xef,0x20,0x78,0x95,0x07,0x5c,0xa9,0x61,0xd2,0xad,0x04,0x93,0x96,0x84,
+/* 0x001a90 */ 0x90,0x03,0x7f,0x21,0xef,0x44,0x47,0x3d,0x7a,0x59,0x5b,0x88,0x82,0x5c,0xf3,0x79,
+/* 0x001aa0 */ 0x1d,0x9c,0xff,0x69,0xf4,0xb2,0xd8,0xa0,0x3f,0x04,0x7e,0xa6,0x72,0x1c,0x8c,0xbd,
+/* 0x001ab0 */ 0x86,0xdf,0xf2,0x92,0xef,0x54,0x0e,0xfe,0x2b,0x28,0x2f,0x27,0xe0,0xee,0xbe,0x02,
+/* 0x001ac0 */ 0x8b,0x9e,0xc1,0x5b,0xd5,0xe9,0x85,0x5d,0xb1,0x69,0xb4,0x99,0x04,0x39,0x93,0x45,
+/* 0x001ad0 */ 0x01,0x54,0xc0,0x70,0x26,0x93,0x9e,0x91,0x5c,0xf8,0x8b,0xc0,0x72,0x1a,0xa4,0xf1,
+/* 0x001ae0 */ 0x1b,0xf0,0x53,0x34,0xfe,0x90,0xa6,0xb7,0xd0,0x2c,0x24,0xca,0xcb,0xb8,0x99,0x80,
+/* 0x001af0 */ 0x8c,0x07,0xc2,0x3a,0xa6,0xae,0x48,0x64,0xe7,0xbf,0x50,0x50,0x72,0x27,0x1a,0x57,
+/* 0x001b00 */ 0xba,0x37,0xc9,0x8a,0x5e,0x12,0x36,0xf0,0x32,0x65,0x27,0xb7,0x75,0x28,0xc1,0x71,
+/* 0x001b10 */ 0x69,0x11,0x2c,0xa7,0x8f,0xab,0xf0,0x9c,0x9b,0x19,0x11,0x16,0x1c,0xf0,0x84,0xdc,
+/* 0x001b20 */ 0x16,0xfe,0x0a,0x32,0xd8,0xe5,0x31,0xfa,0xb0,0xcb,0x4b,0xf2,0x2a,0xe1,0x7d,0x18,
+/* 0x001b30 */ 0x37,0x31,0x3e,0x67,0x4a,0x84,0x5e,0xdd,0x79,0xcf,0xfb,0x8d,0x47,0xd5,0xc8,0xb1,
+/* 0x001b40 */ 0x42,0x4a,0x41,0x9e,0x54,0x1b,0x86,0xbc,0xcf,0x30,0x06,0x13,0xe6,0x45,0x22,0x2b,
+/* 0x001b50 */ 0xff,0x75,0x8d,0xae,0x63,0xaa,0x30,0xad,0x5d,0x51,0x1a,0x48,0xf5,0xf9,0x0e,0xde,
+/* 0x001b60 */ 0x54,0xf8,0xa6,0x70,0x05,0x4d,0xaf,0x89,0x18,0x8c,0x58,0xa8,0x61,0x84,0x0a,0xea,
+/* 0x001b70 */ 0xff,0x86,0xa6,0xad,0x13,0xb9,0xf9,0xaf,0x49,0xe1,0x1a,0xba,0x22,0xdd,0x7a,0x04,
+/* 0x001b80 */ 0xb0,0xd5,0xfd,0x34,0x22,0x91,0x32,0x62,0x46,0xd3,0x69,0xf0,0x52,0x4e,0xa2,0x86,
+/* 0x001b90 */ 0xe4,0x43,0xfc,0x7c,0x63,0x49,0xb4,0x7e,0x4c,0x68,0x4b,0xf1,0x5f,0x53,0xed,0xa9,
+/* 0x001ba0 */ 0xfc,0xaf,0x64,0x77,0x7f,0xd1,0x28,0xea,0x1f,0x28,0x3b,0xe5,0x79,0x0c,0x47,0x58,
+/* 0x001bb0 */ 0xf7,0xb2,0x21,0x78,0x94,0x0a,0x5d,0x78,0xb4,0xab,0xfb,0xfe,0x70,0xf2,0xfa,0x7e,
+/* 0x001bc0 */ 0xe1,0x17,0xb4,0x9f,0x35,0x89,0xf2,0x8c,0x36,0xfe,0xcb,0x76,0xf8,0x40,0x7b,0x95,
+/* 0x001bd0 */ 0xc0,0x26,0x75,0x54,0x70,0x35,0xae,0x94,0x7f,0x60,0x0c,0x81,0x6b,0x2f,0x5a,0xab,
+/* 0x001be0 */ 0xbb,0x65,0xac,0x2b,0x3f,0x30,0x79,0xe1,0x3d,0x34,0x02,0x47,0x6b,0xbc,0x3b,0x85,
+/* 0x001bf0 */ 0xbf,0x9e,0x4e,0xe3,0xbf,0xc6,0x97,0xf6,0xb7,0xfb,0x29,0x6c,0x5f,0xcb,0x61,0xfb,
+/* 0x001c00 */ 0x1e,0xbc,0x96,0x85,0x1d,0xc2,0xd6,0x36,0xec,0x7a,0x94,0xe7,0x7f,0xed,0xa6,0xbb,
+/* 0x001c10 */ 0x9e,0x16,0xe8,0xb5,0xf8,0xaf,0xd9,0xbb,0xed,0xb9,0x5d,0x8c,0xf3,0x3d,0x87,0x2e,
+/* 0x001c20 */ 0xb5,0xd7,0xea,0x5b,0xb7,0xc0,0x07,0xc9,0xe2,0xc7,0x92,0x26,0x94,0xee,0x17,0xc6,
+/* 0x001c30 */ 0x30,0xd5,0x3c,0xc4,0x19,0xe7,0x88,0x22,0xfd,0xdc,0x5c,0x7f,0x9c,0xf9,0x5f,0x4c,
+/* 0x001c40 */ 0x00,0x4c,0xfb,0x11,0x45,0x64,0xad,0xb0,0x8a,0x32,0xcd,0xa4,0x60,0x1b,0xd3,0x0f,
+/* 0x001c50 */ 0x66,0x18,0xbc,0xf0,0x15,0xb9,0x41,0xaf,0x4e,0x7a,0x26,0xc5,0xac,0xf8,0x8b,0x0b,
+/* 0x001c60 */ 0xef,0xa0,0xc8,0x91,0xaa,0xed,0xa6,0x66,0xc4,0x84,0x5d,0xcf,0xc0,0xac,0x7c,0xcf,
+/* 0x001c70 */ 0xc4,0xef,0x97,0xe4,0x30,0x9a,0xa7,0x2d,0x33,0xf1,0x97,0x98,0x79,0x2e,0x31,0x8e,
+/* 0x001c80 */ 0x36,0xed,0xac,0x9e,0xec,0x8a,0xdf,0x33,0xcd,0x35,0x71,0x61,0xad,0x68,0xe5,0x88,
+/* 0x001c90 */ 0x6d,0x35,0xcf,0x25,0x00,0xe7,0x0e,0x4a,0x0a,0xce,0xc4,0x5f,0x5b,0x90,0x31,0x3a,
+/* 0x001ca0 */ 0x2f,0x2d,0xdd,0xc3,0x03,0x11,0x87,0x89,0x45,0x7f,0xd4,0xd0,0x61,0x82,0xf1,0xb2,
+/* 0x001cb0 */ 0x47,0xd4,0x2b,0xaa,0x5b,0xc1,0x21,0x57,0x46,0xfe,0x97,0x29,0xfc,0x16,0x6d,0x8f,
+/* 0x001cc0 */ 0x57,0xb2,0x40,0x44,0x4e,0xc7,0x84,0xf0,0x9d,0x66,0xd3,0x79,0xf4,0x63,0x0b,0x17,
+/* 0x001cd0 */ 0x90,0xb2,0x52,0x69,0x0d,0xe0,0x2f,0xc4,0xfd,0x70,0x0b,0x7f,0x6d,0x41,0x17,0x64,
+/* 0x001ce0 */ 0x9a,0x08,0x56,0x3c,0xde,0xfa,0x21,0xaa,0x1a,0xf4,0x29,0xc2,0xb0,0xc8,0xf8,0xaf,
+/* 0x001cf0 */ 0x85,0x06,0xff,0x55,0x38,0x5b,0xd0,0xf3,0xa7,0x50,0x48,0x6f,0x09,0xcd,0xa4,0x60,
+/* 0x001d00 */ 0x2d,0x34,0xe4,0xc6,0x1d,0x45,0x79,0x7c,0x99,0xb7,0xf3,0x5f,0x6c,0x56,0x52,0xe1,
+/* 0x001d10 */ 0xdc,0xcc,0x86,0x81,0xc2,0xb3,0xc2,0x21,0x58,0xd7,0xa0,0xe9,0x3c,0x9f,0x7a,0xb4,
+/* 0x001d20 */ 0x69,0x52,0xfc,0xa0,0xc4,0x30,0xfe,0x84,0xe2,0x65,0x15,0xf0,0x97,0x92,0x0d,0x7f,
+/* 0x001d30 */ 0x31,0xc1,0x05,0xde,0xfb,0x10,0x08,0xc3,0x32,0xfb,0x7e,0x34,0xf8,0xa2,0x8e,0x3b,
+/* 0x001d40 */ 0x0e,0x24,0x8d,0xf3,0x16,0x45,0xd2,0x30,0xce,0x19,0x7f,0xd8,0xf8,0x8a,0xf8,0x2c,
+/* 0x001d50 */ 0xba,0xeb,0x54,0x61,0x1b,0x7e,0x43,0x35,0x4e,0x53,0xa7,0xd1,0xef,0xec,0xb1,0xf1,
+/* 0x001d60 */ 0xd7,0x1b,0x9b,0x9d,0x1a,0x50,0xdd,0x45,0x32,0xfb,0x7e,0xb2,0xe5,0x7f,0xfd,0x0c,
+/* 0x001d70 */ 0xc0,0xec,0xfc,0xb1,0xeb,0x57,0xc1,0x73,0x7e,0x6c,0xd0,0x8b,0x80,0xc8,0xa8,0x10,
+/* 0x001d80 */ 0xfb,0xad,0xeb,0x49,0xed,0x9b,0xdc,0xf8,0x30,0x79,0x5c,0x93,0xc6,0xa0,0x9f,0xb3,
+/* 0x001d90 */ 0xe2,0x2f,0x1a,0x03,0x7c,0x02,0xf6,0xa6,0xe8,0x80,0xbb,0x3e,0xc6,0xe8,0xe9,0x01,
+/* 0x001da0 */ 0x33,0x84,0x58,0xf7,0xd4,0xfb,0x87,0xd5,0xbd,0xd8,0x32,0x56,0x4e,0x4b,0x73,0xf1,
+/* 0x001db0 */ 0x5c,0xbe,0x7f,0x0d,0x65,0xe1,0xbf,0xde,0x45,0x57,0x5b,0x6b,0x89,0xef,0x5d,0x16,
+/* 0x001dc0 */ 0x7f,0x18,0xe1,0x44,0xd8,0x31,0x2a,0xfc,0xad,0x70,0xd9,0x0e,0xd6,0x6a,0xe2,0xde,
+/* 0x001dd0 */ 0x31,0xa1,0x8e,0xbf,0x4f,0x16,0xfe,0xab,0x86,0x72,0x2e,0x07,0x69,0x3a,0x89,0x6e,
+/* 0x001de0 */ 0x9c,0xab,0xa7,0x08,0x9a,0xa4,0x2b,0x65,0xbc,0xf4,0x90,0xec,0x7b,0x50,0x38,0xc5,
+/* 0x001df0 */ 0xe7,0x45,0x0e,0xfe,0x4b,0x8f,0x70,0x7f,0xf5,0x1d,0x27,0xff,0xe5,0x29,0x57,0xec,
+/* 0x001e00 */ 0x60,0xad,0xb5,0xe5,0x27,0x65,0x31,0xfe,0x9c,0xec,0xf1,0x87,0x20,0xac,0x96,0xa8,
+/* 0x001e10 */ 0xb0,0x89,0xd3,0x5e,0xa6,0x8f,0xed,0x2e,0x87,0x27,0xd3,0x38,0x46,0xce,0x5f,0xb4,
+/* 0x001e20 */ 0x79,0xe6,0x5a,0xf8,0x4b,0xcc,0xe4,0xbf,0xde,0x96,0x9f,0x42,0x55,0x8d,0x52,0xfc,
+/* 0x001e30 */ 0xba,0x51,0xf2,0x14,0xd7,0xac,0x66,0x89,0x60,0xd7,0xc7,0xdd,0x41,0x29,0x65,0xcc,
+/* 0x001e40 */ 0x03,0x1a,0x8d,0xfc,0xaf,0x40,0x16,0xfe,0x6b,0x50,0x05,0xe1,0x76,0xc9,0x62,0x61,
+/* 0x001e50 */ 0xb6,0x9b,0x4d,0xf1,0x3c,0x11,0xed,0x0c,0x04,0x6c,0x60,0x2d,0x8e,0x1b,0x5d,0xec,
+/* 0x001e60 */ 0xef,0xea,0x97,0x94,0x0c,0xfe,0xe2,0x2c,0x1a,0x0b,0x44,0x4a,0x6e,0x8f,0x75,0x24,
+/* 0x001e70 */ 0x35,0x1a,0xd5,0xe9,0xd9,0x10,0x8b,0x02,0x2a,0xe1,0xfc,0x45,0x2a,0x7f,0x07,0x3c,
+/* 0x001e80 */ 0x6a,0xd2,0x42,0x84,0x73,0x33,0xd9,0x7c,0x7f,0xec,0x46,0x33,0xe6,0xcd,0xce,0x7f,
+/* 0x001e90 */ 0x7d,0x84,0x22,0xcd,0xff,0xcb,0xc6,0x5b,0xed,0xd2,0xb8,0xe0,0xb9,0xa8,0xbd,0x13,
+/* 0x001ea0 */ 0xa8,0xe3,0x43,0xf0,0x11,0xfa,0x57,0xb5,0xa5,0x55,0xf8,0x85,0x91,0xff,0x95,0x25,
+/* 0x001eb0 */ 0xbf,0xe9,0x22,0x9d,0xb9,0x54,0x78,0x85,0x6b,0x1e,0x15,0x46,0x59,0x38,0x1c,0xfb,
+/* 0x001ec0 */ 0xf1,0xa3,0xf8,0x01,0x6e,0xfc,0x0f,0x28,0xac,0x2a,0x23,0x42,0xa1,0x2b,0x5b,0xfe,
+/* 0x001ed0 */ 0xd7,0x4d,0x29,0xb6,0xab,0x90,0x2c,0xd3,0x78,0xd3,0x16,0x86,0xbf,0xb8,0x8d,0xd8,
+/* 0x001ee0 */ 0x2b,0xde,0x0b,0x4d,0x06,0xff,0x25,0x11,0x21,0x2f,0x85,0xbf,0x76,0xa6,0xf5,0x33,
+/* 0x001ef0 */ 0x67,0x15,0xbb,0xe5,0x9b,0x0c,0x4d,0x31,0x20,0x32,0x2a,0xc0,0x7a,0x38,0xca,0x02,
+/* 0x001f00 */ 0x11,0x57,0xc8,0x79,0xb4,0xc9,0xbf,0x54,0xda,0x91,0x77,0x87,0x8b,0xcd,0xd3,0x6c,
+/* 0x001f10 */ 0xf1,0x87,0xe3,0x4b,0x61,0xaf,0xd4,0xdd,0x3f,0xc4,0x99,0x4d,0xa3,0x9d,0xfb,0xd1,
+/* 0x001f20 */ 0xbd,0x34,0x6c,0x95,0x6a,0x7a,0x9a,0x4b,0xe2,0x8d,0x79,0xfc,0x3b,0xd4,0x66,0xef,
+/* 0x001f30 */ 0x32,0x3f,0x5a,0x3b,0x10,0x6b,0xb7,0x6b,0x1e,0xc5,0x5c,0x28,0xfc,0x11,0x68,0x1e,
+/* 0x001f40 */ 0x81,0x07,0x1a,0xf9,0x71,0x21,0x55,0x9a,0x23,0xac,0xe1,0xf3,0x2b,0x80,0x1c,0xf8,
+/* 0x001f50 */ 0x8b,0x61,0xb4,0xb7,0x95,0x4b,0x06,0xc8,0x52,0x2e,0xb9,0xd2,0x7e,0x85,0x9c,0xfa,
+/* 0x001f60 */ 0xa5,0x94,0x58,0x89,0x77,0xff,0x84,0xbf,0x8f,0x94,0x8d,0xff,0x42,0x93,0x25,0x75,
+/* 0x001f70 */ 0x34,0x5b,0xd0,0x88,0x0a,0x06,0x20,0x8f,0x4d,0xda,0x4b,0x9c,0x74,0x99,0x36,0x22,
+/* 0x001f80 */ 0x8d,0x48,0x2c,0x33,0xf0,0x57,0x57,0x67,0x16,0xfe,0x4b,0x3c,0xd4,0xee,0xdb,0x4e,
+/* 0x001f90 */ 0x05,0x64,0xb0,0x5d,0x01,0x53,0x18,0x42,0xcf,0x63,0x2a,0x08,0xbd,0xe8,0x50,0xd4,
+/* 0x001fa0 */ 0xaf,0x75,0x9f,0x13,0x62,0x7c,0xbf,0xc8,0xc6,0x7f,0x9d,0x40,0x7d,0x24,0xd0,0x2a,
+/* 0x001fb0 */ 0x84,0xf0,0x49,0xd7,0xe3,0xe6,0xd6,0xc6,0xce,0xd5,0x1d,0x91,0xd5,0x1a,0x3d,0x3f,
+/* 0x001fc0 */ 0x0c,0xe1,0x23,0xa9,0xfc,0xaf,0x74,0x5e,0xe6,0xf7,0xf2,0x73,0xa8,0x72,0x04,0x84,
+/* 0x001fd0 */ 0xd7,0xd1,0x46,0x9e,0xd6,0x34,0x4f,0xdf,0x98,0x66,0xf3,0x18,0xac,0x50,0x77,0xc9,
+/* 0x001fe0 */ 0x00,0x10,0xba,0x72,0xe5,0x7f,0x51,0xfe,0xeb,0xe3,0x8e,0xdb,0xa2,0xbe,0xf5,0xc5,
+/* 0x001ff0 */ 0x6f,0x48,0x7f,0x02,0x4d,0xcb,0x22,0xe1,0x10,0xf9,0x35,0x99,0x4f,0x9b,0xfe,0x40,
+/* 0x002000 */ 0x3e,0x19,0xa0,0x6b,0x38,0x18,0x8f,0x92,0x85,0x77,0xfb,0xd6,0x08,0xc7,0x8c,0xfc,
+/* 0x002010 */ 0xaf,0x1b,0x77,0xcb,0xe9,0xfb,0xce,0xa8,0x08,0x8b,0xa7,0xba,0x95,0x05,0xb6,0x71,
+/* 0x002020 */ 0xcd,0x39,0xcb,0xe7,0x57,0x2c,0xe3,0x49,0x74,0x48,0x85,0x05,0xd6,0xc0,0x5f,0x64,
+/* 0x002030 */ 0xce,0xd5,0xd6,0x74,0xff,0xf0,0x32,0xba,0xb6,0xad,0x61,0xbe,0xef,0x52,0xd9,0x45,
+/* 0x002040 */ 0x72,0x92,0x6b,0x22,0xe8,0x5a,0x9c,0xdb,0xa8,0xd7,0xe2,0x46,0x7c,0xd4,0x55,0x52,
+/* 0x002050 */ 0xb3,0x13,0x84,0xd3,0x1c,0x77,0xf7,0xe6,0x3b,0xf6,0xaf,0x25,0x8c,0xff,0x6a,0xdb,
+/* 0x002060 */ 0x87,0x6f,0x43,0x9e,0x36,0x1a,0x40,0xc8,0xe8,0x2a,0xe1,0xeb,0x66,0x13,0x45,0x64,
+/* 0x002070 */ 0xa5,0x66,0xdc,0xe0,0xce,0xb8,0xa7,0x4d,0x78,0x97,0x8f,0xfb,0x2c,0xf4,0x98,0x94,
+/* 0x002080 */ 0xc1,0xa3,0xa1,0x7d,0xae,0x4a,0x15,0xd0,0x56,0x27,0xfa,0x31,0xd7,0xdc,0xc0,0xf3,
+/* 0x002090 */ 0xec,0xc0,0xe6,0xcb,0xfb,0xd0,0x5d,0xdc,0xf8,0x30,0x9a,0xaf,0x7a,0xfe,0xc1,0xe4,
+/* 0x0020a0 */ 0xbf,0xa2,0xe2,0xb0,0x6c,0x3f,0x37,0x06,0xc1,0x7f,0x04,0xed,0xd5,0xd7,0xa8,0xd7,
+/* 0x0020b0 */ 0x2f,0x02,0x1b,0xb6,0x6d,0x1d,0xc4,0x06,0x36,0xaf,0xc5,0xe7,0x44,0x2b,0x00,0x75,
+/* 0x0020c0 */ 0x0f,0xda,0xb5,0x0a,0x84,0x38,0x7f,0x9f,0xb1,0x39,0x8e,0x7e,0x66,0x7c,0xca,0xdb,
+/* 0x0020d0 */ 0xe8,0x72,0x5b,0xa4,0x1d,0xbc,0x41,0x7a,0xe8,0x3d,0x4f,0xf7,0x5d,0x2e,0xab,0xe7,
+/* 0x0020e0 */ 0x4d,0xcf,0x74,0x5c,0x13,0xaf,0xe1,0x1f,0x19,0xfe,0x18,0xaa,0x5d,0xe8,0x23,0xb1,
+/* 0x0020f0 */ 0x77,0x79,0xff,0x6c,0x47,0x99,0x7e,0xc2,0x28,0x6c,0x76,0x14,0x26,0x97,0x19,0x74,
+/* 0x002100 */ 0x4c,0x9f,0xcd,0x3d,0x68,0xb2,0x19,0x3f,0xdf,0x46,0x37,0x44,0xbe,0xfe,0xb4,0xa7,
+/* 0x002110 */ 0xe1,0x2f,0x2a,0x5c,0x44,0xd3,0xe4,0xff,0x10,0x00,0x62,0x17,0x4d,0x4d,0xbd,0x29,
+/* 0x002120 */ 0x1c,0x64,0xf8,0xcb,0x38,0x37,0xae,0xd1,0x7c,0x23,0xc5,0xfa,0x5f,0xe7,0x88,0x3f,
+/* 0x002130 */ 0x4c,0xe0,0x3f,0x51,0x36,0x99,0xa6,0xa5,0x8c,0x4a,0x5c,0xe3,0x31,0x7c,0xc8,0x10,
+/* 0x002140 */ 0x0e,0xca,0xdd,0x62,0x15,0xf8,0xc6,0xf4,0xec,0x42,0x67,0x54,0x4b,0xd2,0xc0,0x5f,
+/* 0x002150 */ 0x76,0x3f,0xf3,0x51,0x2e,0xbc,0x8d,0x9e,0x8f,0x82,0xcf,0x9f,0xc0,0xef,0xe6,0xd3,
+/* 0x002160 */ 0xa6,0xfc,0x04,0xb6,0x6c,0x8c,0x80,0x34,0x76,0xce,0x1f,0x7d,0xb3,0x73,0xc5,0x8e,
+/* 0x002170 */ 0x58,0x92,0xcf,0x2f,0x49,0xce,0xe4,0xbf,0x06,0x51,0x02,0xf0,0x72,0x57,0x08,0x1f,
+/* 0x002180 */ 0x73,0x59,0x7e,0x26,0x4f,0xe1,0xcc,0xf3,0x16,0x75,0x98,0xb8,0xe0,0x79,0xee,0x70,
+/* 0x002190 */ 0x1e,0x99,0xc1,0xe6,0x05,0x29,0x59,0x9b,0xa5,0x9f,0x27,0x61,0x95,0xf0,0x52,0x0c,
+/* 0x0021a0 */ 0x3b,0xe5,0x62,0xd9,0x43,0x41,0xd3,0xe7,0x3f,0xc8,0x1c,0x33,0x8f,0xc9,0x7f,0xb5,
+/* 0x0021b0 */ 0x24,0xca,0x74,0xcc,0xf1,0xd7,0x9c,0x69,0x39,0x4b,0x3f,0x73,0x6c,0x35,0x61,0x75,
+/* 0x0021c0 */ 0xaf,0x73,0x2c,0x0a,0xb9,0x7f,0x78,0x98,0x6a,0xc6,0x66,0x64,0xf2,0x5f,0xd3,0x24,
+/* 0x0021d0 */ 0xa2,0x88,0xcd,0xf0,0xb5,0xb0,0x82,0x03,0x1f,0xc2,0x03,0x4f,0x92,0x1a,0xcd,0xdb,
+/* 0x0021e0 */ 0x26,0xb4,0xe1,0xe1,0x58,0xb5,0xee,0x3d,0x4d,0xe7,0x60,0xa7,0x39,0x19,0xb9,0x20,
+/* 0x0021f0 */ 0x73,0xff,0x50,0xb7,0xf3,0x5f,0xfd,0xa4,0x4a,0x91,0xba,0x96,0xd5,0x8b,0xbf,0x04,
+/* 0x002200 */ 0xe0,0xb3,0xa2,0x8f,0x26,0x83,0x13,0x4d,0x77,0x77,0x81,0xf3,0xb6,0x99,0xa6,0x1a,
+/* 0x002210 */ 0x01,0xce,0xd5,0x00,0xf9,0x72,0x63,0x8a,0xc8,0xba,0x13,0xee,0x90,0xe1,0x8f,0x01,
+/* 0x002220 */ 0xfe,0x7a,0x3c,0x15,0xa2,0x16,0x44,0xee,0xd0,0x75,0xde,0x56,0xe8,0xcc,0xa1,0xeb,
+/* 0x002230 */ 0xc3,0xd0,0xe1,0x1d,0x94,0x4c,0x54,0x70,0x13,0x7a,0xd8,0x15,0x1c,0x00,0xcf,0x61,
+/* 0x002240 */ 0x78,0xf6,0xe3,0x33,0x0d,0x4f,0xcf,0x18,0x82,0x2c,0xf1,0x87,0xae,0xfd,0x25,0x55,
+/* 0x002250 */ 0x33,0xe7,0x26,0x8a,0xd6,0x9a,0x88,0x8c,0x26,0xa7,0x2b,0x9a,0x5b,0xeb,0x29,0x47,
+/* 0x002260 */ 0x8f,0x76,0x55,0x59,0x91,0xa8,0x8e,0x8f,0x44,0x36,0xce,0x25,0x66,0xdb,0xe6,0xd7,
+/* 0x002270 */ 0x65,0x12,0x6c,0x2d,0x44,0x65,0x41,0xf9,0x24,0x0d,0x48,0x4b,0x14,0x5f,0xa4,0xc4,
+/* 0x002280 */ 0x93,0xe6,0xbd,0x28,0xdc,0x45,0x4e,0xeb,0x11,0x3d,0xf8,0xb0,0x90,0x36,0x89,0x3e,
+/* 0x002290 */ 0x9f,0xf0,0x28,0xa9,0xfa,0x1b,0x87,0x4d,0xfe,0xeb,0x2a,0x60,0xd8,0xca,0x41,0x18,
+/* 0x0022a0 */ 0x9d,0x0f,0x5c,0x8c,0xb8,0xfc,0x3d,0x1f,0xa6,0x01,0x61,0x32,0x3a,0x0e,0xeb,0x0f,
+/* 0x0022b0 */ 0x05,0x62,0xf9,0x7f,0xa0,0x27,0x15,0x6c,0xe0,0x5c,0x6c,0x04,0xb3,0xf1,0x5f,0x97,
+/* 0x0022c0 */ 0xe5,0xb0,0xea,0xdb,0x2e,0x04,0x25,0x78,0x8d,0x21,0x23,0xfb,0x2c,0xac,0x7b,0x9b,
+/* 0x0022d0 */ 0x04,0x11,0x1f,0x57,0x41,0xe0,0xfe,0x3c,0xc3,0x5f,0xd6,0x4f,0x19,0xf1,0x87,0xba,
+/* 0x0022e0 */ 0x7d,0x5e,0x3c,0xaf,0x56,0x8c,0x09,0xdb,0x70,0x3d,0xda,0x8a,0xca,0x46,0xc4,0x09,
+/* 0x0022f0 */ 0x3c,0x0a,0xdf,0xb3,0x5f,0x97,0x62,0xb8,0x5c,0xe9,0x46,0x5f,0x1c,0x28,0xa0,0x36,
+/* 0x002300 */ 0x8b,0x39,0x3e,0x0d,0x1a,0xac,0x74,0xd1,0xc7,0x59,0xf8,0xaf,0x3d,0x8a,0x42,0x3c,
+/* 0x002310 */ 0x12,0x5e,0x5b,0xf4,0x03,0x1e,0x35,0xdd,0x44,0x9d,0x6d,0x92,0xbf,0x28,0xe6,0xa6,
+/* 0x002320 */ 0x99,0xad,0xf4,0xb4,0x90,0x0e,0xae,0xa2,0x1b,0x11,0xf5,0x2c,0xd9,0xf9,0x32,0x9f,
+/* 0x002330 */ 0x5f,0x93,0x76,0xfc,0x75,0x88,0x2c,0x08,0x7a,0xbe,0x76,0xf7,0x9d,0x00,0xb2,0xca,
+/* 0x002340 */ 0xc6,0xa4,0xfb,0x00,0x88,0xed,0x23,0xa5,0x51,0x49,0xc7,0x45,0x64,0x3b,0x59,0x90,
+/* 0x002350 */ 0xcc,0x07,0x80,0x20,0xed,0xd3,0x16,0x8c,0x79,0x26,0xf1,0x3c,0x62,0xfc,0xd4,0x74,
+/* 0x002360 */ 0x16,0xfe,0x6b,0x0f,0x0a,0x8d,0xf9,0x2a,0xfe,0xec,0x5e,0xf2,0x3a,0x09,0x25,0x0b,
+/* 0x002370 */ 0xea,0x84,0x3f,0x87,0x5f,0x9a,0xe8,0x0a,0x0a,0x82,0x9b,0x9c,0x4e,0x40,0xff,0xc8,
+/* 0x002380 */ 0xc2,0x09,0x32,0x95,0x08,0xbd,0x03,0xdd,0xf2,0x10,0xb9,0xe0,0xaa,0x1f,0xf0,0xa5,
+/* 0x002390 */ 0xe2,0x0f,0xed,0xf9,0x5f,0x9f,0xc8,0xbe,0x2f,0x6d,0xfd,0x50,0xf8,0x57,0xf5,0x3d,
+/* 0x0023a0 */ 0xf4,0xab,0x41,0xdf,0x1e,0xd7,0x45,0xd0,0x34,0xa0,0x96,0x0e,0x61,0x6c,0xe5,0x18,
+/* 0x0023b0 */ 0xaa,0xfa,0x6d,0x4b,0xbc,0x6c,0xba,0x79,0x4a,0xfe,0x3c,0x3d,0x98,0x9a,0x56,0x8d,
+/* 0x0023c0 */ 0x9f,0xca,0xc6,0x7f,0x5d,0x8a,0x46,0xc8,0x8c,0x27,0x66,0x9e,0x23,0x30,0x3a,0x49,
+/* 0x0023d0 */ 0x18,0xaf,0x8b,0x45,0x30,0x70,0x74,0xe2,0xbf,0xaf,0x0c,0xb9,0x22,0x23,0x33,0xe3,
+/* 0x0023e0 */ 0xae,0x73,0xae,0xe3,0xb0,0x62,0x7f,0xde,0x5a,0x1c,0xfa,0xcd,0xfa,0x1b,0xfa,0xc3,
+/* 0x0023f0 */ 0x8f,0xb9,0x52,0xfb,0x8e,0x54,0x49,0x02,0x77,0x81,0xb0,0x71,0x4d,0xe9,0x50,0x41,
+/* 0x002400 */ 0x5b,0xe3,0x34,0xec,0x5f,0x0b,0xf4,0x82,0x56,0x98,0x20,0x9d,0x66,0xa0,0xcb,0xc6,
+/* 0x002410 */ 0xb4,0x48,0x8c,0x70,0xb9,0x85,0xbf,0x9e,0x34,0xfb,0x99,0xa6,0x74,0x7d,0x6e,0x3d,
+/* 0x002420 */ 0x3a,0xb1,0xf2,0x07,0x0f,0x96,0x8e,0x37,0x53,0xc0,0x4b,0xa3,0x0d,0x25,0x8a,0xbf,
+/* 0x002430 */ 0x36,0x30,0xfc,0x55,0x64,0x00,0x31,0x1b,0x58,0x33,0xea,0x6f,0x34,0x3b,0xf0,0x57,
+/* 0x002440 */ 0x67,0x70,0x4c,0x5a,0xc8,0xd0,0x96,0xc2,0xa3,0x4c,0x3b,0x50,0xe0,0xa2,0x74,0xdd,
+/* 0x002450 */ 0x75,0x2f,0xb3,0xf3,0x31,0x1a,0xea,0x06,0x9a,0xb5,0x76,0x07,0xc6,0x5d,0x94,0xad,
+/* 0x002460 */ 0xfe,0x46,0x73,0xa5,0x56,0xb0,0x93,0xc1,0xae,0x1a,0x9a,0xed,0x45,0x61,0xd7,0xc2,
+/* 0x002470 */ 0xce,0xc0,0xdb,0xc2,0x3b,0x45,0x27,0x14,0xc3,0x86,0x02,0xb1,0x16,0x1b,0x58,0x5b,
+/* 0x002480 */ 0x94,0x8d,0xff,0x8a,0xd2,0x50,0xa5,0xe2,0x24,0xe8,0x00,0x5b,0x91,0x65,0x49,0x95,
+/* 0x002490 */ 0x35,0xa1,0x65,0xba,0x33,0x10,0xd1,0x9e,0x84,0x62,0xf0,0x5f,0x43,0x76,0xfc,0x35,
+/* 0x0024a0 */ 0x85,0x23,0x6d,0x6c,0x5a,0x5d,0xc2,0xe1,0x35,0xbe,0x22,0x41,0x44,0x47,0x5d,0x61,
+/* 0x0024b0 */ 0x5a,0x5e,0xa0,0xca,0x0f,0xc2,0x52,0x23,0x1c,0xce,0xe9,0x79,0x9e,0x32,0xf8,0x2f,
+/* 0x0024c0 */ 0x64,0xe2,0x2f,0x01,0xbc,0xe5,0xa5,0x55,0x51,0x83,0xb6,0xf0,0x47,0xf3,0x29,0xff,
+/* 0x0024d0 */ 0xd5,0x8e,0x2a,0x54,0x29,0xee,0xff,0x02,0xda,0x24,0x72,0xda,0x42,0x4e,0xf7,0xa8,
+/* 0x0024e0 */ 0xb3,0xd6,0xdf,0x50,0x2b,0xd4,0x40,0x82,0x3f,0x47,0x5d,0x41,0x9f,0xb3,0x09,0x84,
+/* 0x0024f0 */ 0xfc,0x6d,0x78,0xb5,0xba,0x29,0x55,0xd0,0xa3,0xd0,0xfe,0x1c,0x7f,0x66,0xfd,0x0d,
+/* 0x002500 */ 0x0e,0x07,0x28,0xec,0x5a,0xba,0x47,0x56,0x06,0xf3,0x8b,0x1b,0xc5,0xc6,0x76,0x14,
+/* 0x002510 */ 0x68,0x02,0xcd,0x4a,0xb5,0x5d,0x4e,0x32,0xda,0xab,0x09,0x6c,0x1c,0x29,0x4b,0x39,
+/* 0x002520 */ 0xea,0x6f,0xa0,0x1b,0x00,0x7f,0x25,0x26,0xd7,0x84,0xe7,0xfa,0x3a,0x3d,0xa5,0xda,
+/* 0x002530 */ 0x10,0x0a,0xc9,0x05,0xb1,0xee,0xbb,0x7a,0x86,0xd4,0x30,0xcd,0x08,0x1b,0xc8,0x70,
+/* 0x002540 */ 0xb6,0x8d,0xfa,0x1b,0xa7,0x6d,0xf8,0x0b,0x9c,0xc0,0x25,0xac,0xda,0x06,0xb9,0xa4,
+/* 0x002550 */ 0x1c,0x6c,0xce,0xff,0x11,0xf8,0x75,0x1f,0xa2,0x86,0xe6,0x96,0x91,0xe2,0x5d,0x94,
+/* 0x002560 */ 0xff,0x6a,0x06,0xaf,0x00,0x9a,0x02,0xf6,0x7e,0xde,0xd6,0xf1,0x71,0x16,0xfc,0xf5,
+/* 0x002570 */ 0x2a,0xaa,0x51,0xbd,0x23,0x34,0x5f,0xaf,0xb3,0xe6,0xef,0x7c,0xaf,0x09,0x6f,0x77,
+/* 0x002580 */ 0xbd,0x88,0x16,0xaa,0xbe,0xd7,0x3c,0xe5,0xe8,0x28,0xcd,0x2e,0x6f,0xa5,0x3f,0xee,
+/* 0x002590 */ 0x72,0x16,0x9a,0x30,0xea,0x6f,0x7c,0xd7,0x89,0xbf,0x2a,0x00,0x52,0x15,0xbd,0x89,
+/* 0x0025a0 */ 0xba,0xd4,0x5a,0x94,0xdf,0xd9,0xf8,0x66,0x6f,0x97,0xe8,0x57,0x3c,0x9d,0x58,0xc1,
+/* 0x0025b0 */ 0x5d,0x31,0x7f,0x45,0x96,0x88,0x44,0x82,0xdf,0xe0,0xe3,0xde,0xec,0xc4,0x5f,0x7e,
+/* 0x0025c0 */ 0x35,0x40,0xf9,0xaf,0x9d,0x4b,0x95,0xd6,0xee,0xd9,0xf8,0x45,0x5e,0xcc,0xe4,0x73,
+/* 0x0025d0 */ 0x58,0x44,0x9b,0x16,0x04,0xd4,0xeb,0x19,0x11,0xe6,0x72,0x82,0x35,0x83,0xff,0x5a,
+/* 0x0025e0 */ 0x65,0xc7,0x5f,0x07,0xe8,0xd7,0xb2,0xa3,0x68,0x14,0x70,0xb7,0x51,0x6e,0x05,0x86,
+/* 0x0025f0 */ 0x7b,0x84,0x96,0x49,0xe9,0xdc,0xa4,0x18,0xe3,0x7e,0x9b,0xed,0xfb,0xa1,0xb9,0x81,
+/* 0x002600 */ 0xbf,0xe5,0xf3,0x22,0xf9,0x43,0xdb,0x27,0xfa,0xa1,0x1a,0x6e,0xf4,0x3e,0xc6,0x8e,
+/* 0x002610 */ 0x11,0x58,0x59,0x92,0xb7,0xf1,0x00,0xea,0x5b,0xea,0xdb,0x21,0xcc,0x57,0x8e,0x46,
+/* 0x002620 */ 0xc3,0xb4,0x4a,0x46,0x26,0x98,0x9d,0x2c,0x67,0xef,0xb3,0xc6,0xce,0x7f,0x4d,0x19,
+/* 0x002630 */ 0x02,0x7e,0x95,0x57,0xdb,0x78,0x11,0x19,0x40,0x8c,0x7a,0x95,0xe0,0xbd,0xc7,0xf3,
+/* 0x002640 */ 0x32,0x9f,0xf3,0x5a,0x36,0xfe,0xcb,0xe0,0x46,0xbd,0xb4,0xfe,0x46,0x80,0xa1,0x75,
+/* 0x002650 */ 0xa9,0xb6,0x24,0x48,0x3a,0x94,0xb8,0x81,0xbf,0xa2,0x68,0x28,0xed,0xfb,0x31,0xf0,
+/* 0x002660 */ 0x57,0xaf,0x93,0xff,0xaa,0x24,0x9e,0xb1,0xd8,0x1a,0xd1,0x3d,0xa3,0x5a,0x93,0xb4,
+/* 0x002670 */ 0xc6,0x00,0x3a,0x84,0xca,0x76,0x48,0xd1,0x53,0x15,0x34,0x4c,0x54,0x03,0x9b,0x45,
+/* 0x002680 */ 0x14,0x88,0xb5,0x53,0x63,0xf9,0x79,0x13,0x91,0xa9,0x06,0xfe,0x92,0xd3,0xfd,0x3a,
+/* 0x002690 */ 0xea,0x03,0x04,0x4f,0x49,0x8b,0xa8,0x3b,0xa7,0x96,0xc3,0x82,0xe6,0x2e,0x54,0xbb,
+/* 0x0026a0 */ 0x29,0x35,0x46,0x1d,0xbc,0xc7,0xd3,0x8c,0x8f,0x65,0xc3,0x5f,0x12,0xc0,0x81,0x56,
+/* 0x0026b0 */ 0xfc,0x75,0xb2,0x51,0x09,0x4e,0x90,0xf5,0x1b,0x6e,0x00,0x34,0x51,0x96,0xcc,0x6f,
+/* 0x0026c0 */ 0xbb,0x43,0x46,0x1b,0x71,0xe5,0x11,0x58,0x8d,0xe7,0xb1,0x62,0x1d,0xd7,0x9b,0xeb,
+/* 0x0026d0 */ 0x73,0xf7,0xb7,0x4d,0xfe,0xcb,0x89,0xbf,0xe2,0x4b,0xce,0xfa,0xd6,0x97,0x9d,0x10,
+/* 0x0026e0 */ 0x7f,0xd7,0xb9,0x24,0xea,0x9d,0x14,0x68,0xd3,0x2d,0xc9,0x82,0x45,0x42,0x61,0xe8,
+/* 0x0026f0 */ 0xd7,0x49,0xb0,0x69,0x13,0x1e,0xd0,0xff,0xe4,0x2c,0xd6,0x61,0xf2,0x5f,0xcd,0x76,
+/* 0x002700 */ 0xfe,0xeb,0xf2,0x6a,0x3a,0x04,0x34,0xab,0xc5,0xc5,0xf0,0x17,0xdf,0x5c,0x6e,0x4f,
+/* 0x002710 */ 0x08,0x6f,0x91,0x29,0xf0,0x2e,0x5a,0x78,0x78,0x4c,0x44,0x37,0x53,0xc3,0xf4,0x96,
+/* 0x002720 */ 0x7e,0x0b,0x7f,0x3d,0x98,0x0a,0x32,0x54,0xaf,0xc6,0x23,0x49,0xf5,0x92,0x10,0x59,
+/* 0x002730 */ 0x73,0xb2,0xab,0x2f,0xe9,0x7d,0xb5,0xf8,0xaa,0x78,0xa2,0x73,0x61,0xb4,0xf0,0xb2,
+/* 0x002740 */ 0x70,0xb5,0xf9,0x24,0x29,0x8e,0x6e,0x59,0x2f,0x54,0x45,0x4f,0x76,0x85,0x29,0xff,
+/* 0x002750 */ 0x65,0x78,0x95,0x97,0x8a,0x27,0x14,0x93,0xff,0x4a,0xed,0x5f,0xcf,0xba,0x2a,0x57,
+/* 0x002760 */ 0x4b,0xb3,0xa4,0x5f,0x90,0xa7,0x65,0xff,0x98,0xbb,0x04,0x0f,0x4b,0xbf,0x45,0x0b,
+/* 0x002770 */ 0x9a,0xa4,0xbf,0xc7,0x47,0x1a,0x5f,0x90,0x4a,0xd7,0x14,0xac,0xc3,0x85,0xa8,0x5b,
+/* 0x002780 */ 0xbb,0x99,0x6e,0x37,0xc3,0xac,0x7f,0x56,0xb4,0xf9,0x8d,0x38,0x87,0x22,0xf4,0x98,
+/* 0x002790 */ 0x55,0xe7,0x44,0xac,0xcd,0xaf,0x1e,0x94,0xda,0x96,0x7f,0x5d,0xdd,0x88,0xe6,0x37,
+/* 0x0027a0 */ 0x7f,0xae,0xad,0xf1,0x0c,0xda,0x80,0x4a,0x55,0xf7,0x3a,0x7c,0x9a,0xfc,0x4c,0x2e,
+/* 0x0027b0 */ 0x6d,0x6e,0x6e,0xcb,0xbb,0x01,0x6d,0xbc,0xa9,0x74,0xc8,0xb3,0xce,0x6f,0x51,0x63,
+/* 0x0027c0 */ 0xbf,0x35,0xf0,0x97,0x7d,0xff,0x4a,0x48,0x41,0x75,0x07,0x77,0x4e,0xca,0x55,0xa6,
+/* 0x0027d0 */ 0xd9,0x86,0x02,0x51,0x29,0x00,0x40,0xac,0x83,0x68,0xaa,0x44,0x4b,0x3d,0x98,0x00,
+/* 0x0027e0 */ 0xdc,0xf0,0x5b,0xae,0x33,0xe2,0x0f,0x27,0xe7,0xb0,0xa4,0x7b,0x63,0x7f,0x27,0xf3,
+/* 0x0027f0 */ 0xb4,0x60,0xb9,0xe7,0x7e,0x74,0x12,0xd5,0xd2,0xc4,0xfc,0xab,0x64,0x00,0x85,0x6f,
+/* 0x002800 */ 0x2e,0x7c,0x48,0x38,0xe7,0xff,0x1d,0x09,0xeb,0x81,0xc4,0xcc,0x7a,0x74,0x52,0x0c,
+/* 0x002810 */ 0x0f,0xd8,0x8b,0x6c,0x18,0x7f,0x57,0x67,0x1a,0xfe,0xa2,0x25,0x35,0x76,0xbb,0x28,
+/* 0x002820 */ 0x4d,0x59,0xc8,0xc1,0x5a,0xc3,0xec,0x16,0x7a,0x90,0x38,0x45,0x7d,0x9b,0x7e,0x3e,
+/* 0x002830 */ 0x94,0xa9,0xf1,0xda,0x4a,0x37,0xa9,0x4c,0xfc,0xc5,0x42,0x71,0x92,0x26,0xda,0x7a,
+/* 0x002840 */ 0x15,0x3c,0xa2,0x97,0xd1,0xad,0xc8,0xab,0x77,0xdc,0x0c,0x6f,0xe8,0x67,0xb4,0xd7,
+/* 0x002850 */ 0xec,0x6b,0x98,0xd5,0x0c,0xb1,0x92,0xc5,0x8c,0xfa,0x1b,0x4e,0xfc,0xa5,0x56,0x29,
+/* 0x002860 */ 0xd7,0xef,0x66,0xd5,0xc6,0xaa,0x7a,0xe0,0x43,0x9a,0x86,0x95,0xf6,0x56,0xb9,0xc0,
+/* 0x002870 */ 0x0b,0xde,0x20,0x78,0x8c,0xa3,0x43,0x0e,0xff,0x99,0xa7,0xae,0x98,0xe7,0x87,0x0e,
+/* 0x002880 */ 0xfe,0xab,0x5f,0xae,0xd2,0xba,0xb7,0xe4,0x31,0x4d,0xd4,0x13,0xcf,0x1b,0x97,0xba,
+/* 0x002890 */ 0x94,0xf2,0x26,0xa9,0x2b,0x16,0x84,0xf9,0x55,0x91,0xe6,0x87,0x1b,0x42,0xb6,0xfa,
+/* 0x0028a0 */ 0x1b,0x09,0x57,0x70,0x97,0xa7,0x9d,0x07,0x53,0xad,0xa2,0x59,0x48,0x6a,0x1c,0x06,
+/* 0x0028b0 */ 0x2e,0x1f,0x3e,0x8e,0x8e,0x6e,0x35,0x40,0xe9,0xe9,0x97,0xd1,0x5e,0x29,0x38,0x44,
+/* 0x0028c0 */ 0x03,0x11,0x8d,0x80,0xab,0xe5,0xd8,0xaa,0xbf,0x21,0x5b,0xfc,0x57,0x3f,0x8a,0xc8,
+/* 0x0028d0 */ 0xb0,0xaa,0x07,0x09,0xa0,0xad,0x55,0xbe,0x1f,0x0a,0xef,0xc3,0x6a,0x53,0xab,0x7a,
+/* 0x0028e0 */ 0x89,0x20,0x01,0xec,0x7a,0xfe,0x58,0x30,0x21,0x5c,0x21,0x53,0xa1,0xc8,0x88,0x0d,
+/* 0x0028f0 */ 0xf9,0x7a,0x8c,0xfa,0x1b,0x3b,0xed,0xfc,0xd7,0x41,0x74,0xa3,0xd8,0xa2,0xc2,0x8f,
+/* 0x002900 */ 0x7f,0x20,0x35,0x7c,0xc9,0x1d,0x07,0xcd,0x45,0x57,0x83,0xea,0xdb,0x25,0x9c,0xd5,
+/* 0x002910 */ 0x3e,0x51,0x6a,0x69,0xa1,0xb6,0xdf,0x93,0x29,0xa5,0xe1,0x35,0x9a,0x23,0x46,0x8c,
+/* 0x002920 */ 0x9f,0x3a,0x6d,0xc6,0x1f,0x4e,0x73,0x92,0xcb,0x38,0xdf,0x00,0xe7,0xff,0x9e,0xf3,
+/* 0x002930 */ 0x80,0xbf,0x6e,0x1d,0x2a,0x58,0x25,0xdc,0xc0,0xd3,0xbe,0x2c,0xfe,0x6b,0x02,0xbc,
+/* 0x002940 */ 0x94,0x33,0x71,0xfb,0x61,0xc8,0xfa,0x54,0xfc,0xe1,0x55,0x00,0x59,0x11,0xab,0xfe,
+/* 0x002950 */ 0x46,0x52,0x48,0xc0,0x12,0xf7,0xcb,0x78,0xd9,0x84,0xb4,0x03,0x37,0xa0,0xa7,0x79,
+/* 0x002960 */ 0xfe,0xd7,0xbd,0x3c,0x11,0xec,0x12,0x4e,0xc6,0xbb,0x14,0x93,0x2c,0xeb,0x04,0xa1,
+/* 0x002970 */ 0x37,0x55,0x7f,0x63,0xd0,0xa4,0x51,0x6c,0xf1,0xd8,0x00,0xbb,0x46,0xf2,0x65,0xbc,
+/* 0x002980 */ 0x65,0xe9,0xe3,0x86,0x17,0x67,0x72,0x64,0xba,0xd2,0x93,0x66,0x6c,0xc5,0x1f,0xee,
+/* 0x002990 */ 0x42,0xdd,0x66,0x49,0x43,0x3e,0x94,0xb0,0x29,0x3c,0x8d,0xfd,0x03,0xf0,0x3e,0x16,
+/* 0x0029a0 */ 0x35,0x66,0x7d,0x63,0xfa,0xd2,0x5e,0xc7,0xb8,0xf7,0xa6,0xe2,0x0f,0x47,0x61,0x69,
+/* 0x0029b0 */ 0x72,0xe4,0x7f,0xe1,0xa4,0xfc,0x82,0x08,0xf3,0xab,0xca,0xb3,0xdb,0x28,0x93,0x92,
+/* 0x0029c0 */ 0x82,0x5d,0xef,0xe2,0x49,0xc5,0xa6,0x69,0xe9,0x4d,0xd5,0xdf,0xd8,0xee,0xe0,0x2b,
+/* 0x0029d0 */ 0x39,0xa4,0xba,0x86,0x7e,0xa1,0x1b,0x55,0x68,0x1a,0x1c,0xc2,0x24,0xfa,0x03,0x5d,
+/* 0x0029e0 */ 0x18,0x6d,0xe0,0xda,0xc2,0x5f,0xcf,0xd8,0x7f,0x69,0x83,0x0e,0x1f,0xc9,0x53,0x14,
+/* 0x0029f0 */ 0xa4,0x0f,0xd0,0xb0,0xc3,0xd8,0x71,0xe7,0xfb,0x2c,0x1b,0x37,0x8e,0x50,0x4c,0x8d,
+/* 0x002a00 */ 0x96,0x8a,0x3f,0x2c,0x4f,0x1d,0x35,0x18,0xf5,0x37,0x60,0xbc,0x5a,0x4b,0x8f,0x48,
+/* 0x002a10 */ 0x89,0xe2,0x3b,0x3b,0x5f,0xe7,0x19,0x61,0x46,0x6f,0x5c,0x66,0xbc,0xb0,0xbd,0xe2,
+/* 0x002a20 */ 0x8d,0x66,0xe7,0xbf,0x1c,0x5b,0x12,0x7c,0xfc,0x04,0xc6,0x6b,0x0d,0x45,0x5b,0x5f,
+/* 0x002a30 */ 0x49,0x1b,0x4a,0xca,0x0b,0xef,0x4c,0x8b,0xac,0xb6,0xe2,0x0f,0x0b,0x9d,0xae,0xbe,
+/* 0x002a40 */ 0x44,0xeb,0xf2,0x3d,0x09,0x70,0xa0,0xe4,0x34,0xbe,0xd3,0x56,0x17,0x82,0x0b,0x1f,
+/* 0x002a50 */ 0xa3,0xef,0xa7,0xf8,0x2f,0xd0,0x8c,0xa5,0xe2,0x0f,0x45,0xf4,0x47,0xd1,0x8a,0x3f,
+/* 0x002a60 */ 0xa4,0xef,0x23,0x3c,0x88,0x5e,0x90,0x17,0x0d,0x16,0x86,0x8a,0x57,0xe2,0x7f,0xb3,
+/* 0x002a70 */ 0x85,0x26,0x72,0xe1,0x8f,0x68,0x91,0x4d,0x23,0x0b,0x66,0xfc,0xe1,0x8d,0xcf,0xd8,
+/* 0x002a80 */ 0xe3,0x0f,0xe7,0x1d,0x81,0x3e,0xbc,0x28,0x7e,0x82,0xea,0x5e,0xac,0xfa,0x10,0x34,
+/* 0x002a90 */ 0x0d,0x8e,0xa3,0x8f,0x8b,0xd0,0xbd,0x6f,0xa1,0x88,0x23,0xf4,0xd7,0xc2,0x5f,0x17,
+/* 0x002aa0 */ 0x89,0x6d,0x5d,0x6d,0xa0,0xb4,0xd7,0x2e,0x74,0x3c,0x10,0x39,0x06,0xbf,0x2b,0x98,
+/* 0x002ab0 */ 0x70,0x1e,0xc5,0xf4,0x71,0x37,0xc3,0x31,0x5e,0x56,0xfc,0xe1,0xf6,0x52,0x7b,0xdc,
+/* 0x002ac0 */ 0xc5,0xf0,0xff,0x03,0x02,0xde,0xa8,0x56,0x9e,0x86,0x8d,0x3e,0xfd,0x48,0x70,0x1d,
+/* 0x002ad0 */ 0x3d,0x12,0x64,0x71,0x17,0xa6,0xc6,0x16,0x7f,0xf8,0x23,0xe5,0xc9,0xb4,0xce,0xfc,
+/* 0x002ae0 */ 0x19,0xda,0xd8,0xf9,0xcd,0xa4,0x67,0xf2,0x8e,0x79,0x03,0x0e,0x6a,0xcc,0xfd,0x5d,
+/* 0x002af0 */ 0x10,0x9e,0xa0,0x82,0x65,0xbc,0x26,0x15,0x7f,0x38,0x98,0x11,0x3f,0xff,0xbe,0x42,
+/* 0x002b00 */ 0x0f,0x9d,0xba,0x17,0x6d,0xe6,0xe0,0x7a,0x85,0x15,0x98,0x1d,0xa2,0xa9,0x85,0xc4,
+/* 0x002b10 */ 0x6e,0x2c,0x65,0x8d,0x3f,0x34,0x84,0xe7,0x19,0xc8,0xba,0x7e,0x8d,0x27,0x20,0x1b,
+/* 0x002b20 */ 0x15,0x11,0x53,0xa9,0x61,0xe8,0xaa,0x6c,0x33,0xde,0x3a,0xda,0x91,0x3d,0xff,0xcb,
+/* 0x002b30 */ 0x5e,0x85,0xef,0xc1,0x8c,0xfa,0x87,0x88,0x0a,0xb2,0xcd,0xe6,0x53,0xea,0x1f,0x32,
+/* 0x002b40 */ 0xe1,0x2c,0xf8,0xab,0x2d,0x8f,0x09,0xab,0xd3,0x9a,0x76,0x08,0xd4,0xb1,0xaf,0x73,
+/* 0x002b50 */ 0x18,0xbf,0x99,0x3b,0xff,0x8b,0xba,0xcd,0x3d,0x6a,0xe1,0x4f,0xf0,0x7c,0x33,0x6f,
+/* 0x002b60 */ 0xcb,0x68,0xda,0x5e,0x44,0x11,0x99,0x13,0x40,0x25,0x73,0xe6,0x7f,0xc1,0x3a,0xf6,
+/* 0x002b70 */ 0x94,0xe2,0x8f,0x1a,0xb4,0x57,0x2a,0x34,0x51,0xf5,0xfc,0xd0,0x4d,0x43,0x3b,0x2a,
+/* 0x002b80 */ 0x1c,0xcf,0xb1,0xe1,0xaf,0x59,0x0e,0x5e,0x66,0x16,0x8d,0x3f,0x0c,0xd0,0xda,0x86,
+/* 0x002b90 */ 0x7e,0x51,0x63,0x9a,0x22,0xb3,0xa9,0x68,0x9b,0x28,0x6c,0xb2,0x2a,0xf5,0x89,0x0e,
+/* 0x002ba0 */ 0xfc,0x55,0x10,0xed,0xb7,0x3a,0xb3,0x9f,0xd7,0xdf,0x18,0x40,0x63,0x0a,0xcb,0xed,
+/* 0x002bb0 */ 0x5a,0x43,0x78,0x93,0xc9,0x33,0xc6,0xc0,0xa3,0x1e,0x42,0x75,0xd9,0xf0,0xd7,0x8e,
+/* 0x002bc0 */ 0x1b,0x2f,0xa6,0x75,0xe6,0x36,0xe1,0x22,0xb9,0x2d,0x2f,0xa2,0x3e,0x34,0x21,0x50,
+/* 0x002bd0 */ 0x34,0x9a,0x46,0x69,0x69,0x57,0x1c,0xf8,0xcb,0x91,0xff,0x65,0xe7,0xd1,0x78,0x38,
+/* 0x002be0 */ 0xdc,0xcb,0x94,0xff,0x1a,0x11,0x6e,0x96,0x8f,0xf2,0x61,0xb2,0x7e,0x8a,0x12,0x97,
+/* 0x002bf0 */ 0xb6,0x8a,0x88,0x33,0xe3,0x82,0x2d,0xff,0xab,0xcb,0x11,0x7f,0xb8,0x39,0x66,0x6a,
+/* 0x002c00 */ 0xdc,0x0a,0x08,0x37,0x21,0xd8,0xa9,0x4d,0xb4,0x05,0x9a,0x7e,0x5b,0xfc,0xa1,0x23,
+/* 0x002c10 */ 0xff,0xeb,0xad,0x54,0x4a,0x17,0xad,0x33,0xc9,0xf3,0xbf,0x78,0x1f,0x8a,0xbc,0x69,
+/* 0x002c20 */ 0x76,0x0a,0x6d,0x89,0x56,0x2c,0x68,0x1a,0xfe,0x2a,0x99,0xb3,0x8b,0x6c,0xb2,0x8f,
+/* 0x002c30 */ 0x7b,0x37,0x08,0x3d,0x8f,0x98,0x55,0x2e,0x37,0xa5,0x7d,0x5a,0xe5,0x34,0x81,0xdd,
+/* 0x002c40 */ 0x9e,0x11,0xb6,0xcd,0x8a,0x3f,0x7c,0x09,0x3b,0x78,0xc6,0xad,0x14,0x72,0xbe,0x4a,
+/* 0x002c50 */ 0x49,0xae,0x87,0xd9,0xd7,0xeb,0xec,0xe7,0x9b,0xc8,0x25,0xd4,0x67,0xd3,0xd8,0xf2,
+/* 0x002c60 */ 0xbf,0x9e,0xc8,0x32,0x2f,0x38,0xc9,0xd5,0x31,0x8a,0x9d,0x75,0x41,0xe5,0x65,0x80,
+/* 0x002c70 */ 0x97,0xd3,0x8c,0x73,0xe5,0x7f,0x79,0x49,0x69,0x29,0xa3,0xbd,0x82,0x44,0x40,0x19,
+/* 0x002c80 */ 0x68,0x2b,0x83,0x2c,0xbb,0x27,0x57,0xfe,0x97,0x44,0xd9,0xae,0x87,0x94,0xaa,0x98,
+/* 0x002c90 */ 0xb4,0x9a,0xa3,0x2d,0x1b,0x35,0x96,0xc4,0x99,0x64,0x59,0xae,0xfa,0x1b,0xb0,0x7f,
+/* 0x002ca0 */ 0x05,0xd1,0xe3,0x49,0x16,0xbc,0x74,0x3b,0x5b,0xd0,0x8c,0x26,0xea,0x7e,0xc7,0xb6,
+/* 0x002cb0 */ 0xd0,0x58,0xac,0x6c,0xf8,0x2b,0x3d,0xfe,0x30,0x29,0xdd,0x87,0x6f,0x20,0x1b,0x51,
+/* 0x002cc0 */ 0x65,0x54,0x6a,0xc3,0x5f,0x42,0xe9,0xb4,0x17,0x20,0xb2,0x90,0x53,0x93,0xbd,0xfe,
+/* 0x002cd0 */ 0x46,0x7d,0xd2,0x7b,0x55,0x68,0x88,0xbd,0x05,0xc2,0xca,0xf5,0x9e,0x3b,0xf1,0xaf,
+/* 0x002ce0 */ 0x1d,0x68,0x6b,0x95,0xf0,0x53,0xf9,0x13,0xcd,0x49,0x96,0xa5,0xe2,0x0f,0x67,0x39,
+/* 0x002cf0 */ 0x36,0x97,0xea,0x09,0xcf,0x07,0x8c,0x4d,0x9e,0x19,0x82,0x0d,0xc8,0xb9,0xef,0xc8,
+/* 0x002d00 */ 0xc2,0xfb,0x0a,0x8b,0xf1,0x30,0x34,0x14,0x20,0x98,0xf1,0x87,0x2e,0x5a,0x52,0xe3,
+/* 0x002d10 */ 0x9f,0x46,0xed,0xfc,0xd7,0x55,0xee,0x16,0x8e,0x79,0x22,0xe8,0xb0,0xc3,0x1b,0x1c,
+/* 0x002d20 */ 0x13,0x1e,0x00,0xe1,0xf3,0x0e,0xb2,0x2c,0x95,0xff,0x65,0x8b,0xcd,0x30,0x85,0x0d,
+/* 0x002d30 */ 0x54,0x88,0xba,0xe7,0xa4,0xa5,0x86,0x45,0x69,0xff,0xc8,0x4e,0x63,0x2b,0xff,0xeb,
+/* 0x002d40 */ 0x20,0xfa,0xb1,0x2b,0xfd,0x39,0xd0,0xbd,0x2a,0xa7,0xbd,0x44,0x7b,0x93,0xca,0x0a,
+/* 0x002d50 */ 0x4e,0x3a,0x8d,0x53,0xf9,0x5f,0x19,0x7e,0xe6,0x09,0x1c,0xa3,0x73,0x30,0xcc,0xaa,
+/* 0x002d60 */ 0x84,0xd9,0x9b,0x10,0x45,0xe2,0xad,0x76,0xcd,0x92,0x58,0x2a,0xff,0xcb,0xf5,0xba,
+/* 0x002d70 */ 0xa3,0x33,0xa9,0x0f,0x70,0x8c,0x47,0xb3,0x04,0x53,0xa1,0x53,0x07,0x38,0x8d,0xf2,
+/* 0x002d80 */ 0x75,0xe8,0x16,0xbb,0x33,0xd9,0x9f,0x23,0xff,0x8b,0x0b,0xea,0x79,0xd5,0x38,0xd6,
+/* 0x002d90 */ 0x70,0x36,0x6d,0x17,0xc6,0x65,0x7b,0xbe,0x5e,0x5a,0xfc,0xe1,0x07,0x69,0xbc,0xcc,
+/* 0x002da0 */ 0x34,0x1a,0xd7,0x6a,0xa8,0x33,0x59,0xcf,0x9b,0xac,0x44,0xb0,0x31,0x21,0xc3,0xd8,
+/* 0x002db0 */ 0x63,0xc5,0x1f,0xae,0xc4,0xaf,0xa7,0x41,0xa1,0x61,0xd4,0x75,0xcc,0x4f,0xf1,0xe9,
+/* 0x002dc0 */ 0x17,0x53,0x74,0x15,0x13,0xbe,0xbf,0x6d,0x5c,0xee,0x76,0x18,0x87,0xec,0xf1,0x87,
+/* 0x002dd0 */ 0x4f,0xa7,0x3d,0x67,0x9c,0xc6,0xcf,0x0f,0x00,0x80,0xba,0xc9,0xf4,0xcc,0x6d,0x18,
+/* 0x002de0 */ 0x2d,0xdd,0xd8,0x8a,0x3f,0x0c,0x66,0x8c,0xd7,0x38,0xf4,0x9a,0x42,0x47,0x47,0x14,
+/* 0x002df0 */ 0xad,0x10,0x2c,0x26,0xc8,0x45,0xe3,0xa8,0xc3,0x61,0x9c,0xb0,0xf2,0xbf,0x0a,0xd6,
+/* 0x002e00 */ 0x66,0x38,0xed,0x67,0x60,0x1d,0xeb,0x53,0x5b,0x12,0x9e,0x72,0x53,0x13,0x34,0xbd,
+/* 0x002e10 */ 0xaf,0x69,0xf1,0x3d,0x9e,0x8b,0x67,0x19,0x5b,0xf1,0x87,0x67,0xb2,0xf4,0xf3,0x34,
+/* 0x002e20 */ 0x85,0x5d,0x6d,0xc2,0xc5,0x34,0x0a,0x52,0x15,0x32,0x49,0xc9,0x6c,0xf1,0x87,0xd3,
+/* 0x002e30 */ 0xa4,0x41,0xf1,0x0e,0x95,0x55,0x80,0x3f,0xff,0xac,0xf6,0x95,0x89,0x65,0x00,0xe4,
+/* 0x002e40 */ 0xe5,0x1a,0xdd,0x3b,0x29,0x84,0xf1,0xeb,0x38,0x72,0x8c,0xd6,0xb7,0xc1,0x2f,0x90,
+/* 0x002e50 */ 0x5b,0x8d,0x42,0xf4,0xa4,0x41,0x85,0xa6,0x89,0x54,0xfc,0xe1,0x7b,0x66,0xfd,0xc3,
+/* 0x002e60 */ 0xfe,0x58,0x55,0xb2,0xb9,0xcb,0x2f,0xc9,0x5b,0x3b,0xfd,0x94,0x67,0x0c,0x8a,0xdd,
+/* 0x002e70 */ 0x2c,0x61,0xa1,0xa8,0x53,0xea,0x26,0x0d,0x23,0xcd,0xd4,0x66,0x33,0xf2,0x5b,0xc1,
+/* 0x002e80 */ 0x8a,0xd1,0x82,0xfe,0xac,0xf5,0x0f,0x29,0xff,0x25,0xc9,0x7e,0x5a,0x05,0x5d,0x21,
+/* 0x002e90 */ 0x9f,0x93,0xfd,0x5e,0x57,0x87,0xa2,0xe8,0x81,0x50,0x91,0xc8,0xba,0x37,0x3f,0x64,
+/* 0x002ea0 */ 0x1c,0xb9,0x9b,0xfd,0xac,0x4a,0x36,0xfc,0xb5,0x5b,0xb6,0xc6,0x94,0x96,0x14,0x93,
+/* 0x002eb0 */ 0x34,0xff,0x5a,0xe9,0x51,0xe4,0x4f,0xe4,0xc7,0x71,0x10,0xd3,0xf7,0x09,0xf4,0xe1,
+/* 0x002ec0 */ 0x27,0x51,0xb7,0x58,0x41,0x09,0xd0,0x71,0xf4,0x93,0x54,0xfd,0x8d,0xaa,0xbb,0x41,
+/* 0x002ed0 */ 0x93,0x2d,0xff,0x6b,0x52,0xaf,0x92,0x9b,0xf3,0x3d,0x77,0xf9,0x5f,0x77,0xd5,0x4e,
+/* 0x002ee0 */ 0x14,0x7c,0x5c,0x76,0x3f,0x74,0x54,0x9f,0xee,0xad,0x10,0x6e,0x42,0xc7,0x5d,0x55,
+/* 0x002ef0 */ 0x7a,0x25,0xb5,0x79,0x55,0xb7,0xf2,0xf5,0x1a,0xa2,0x00,0x8e,0x6c,0xf5,0x0f,0xad,
+/* 0x002f00 */ 0xf1,0xba,0x4a,0x6b,0x6b,0x9c,0xee,0xe8,0xcf,0xfb,0x40,0x5c,0x4c,0xdc,0x1f,0x16,
+/* 0x002f10 */ 0xef,0xe6,0x88,0x6c,0x44,0xb8,0x28,0x03,0x82,0xd6,0x0b,0x27,0x8a,0xa7,0xd1,0xfb,
+/* 0x002f20 */ 0xf2,0x01,0x63,0xbc,0x30,0x8c,0x69,0x76,0xfe,0x0b,0xb6,0xa4,0xb8,0x37,0x2e,0xcc,
+/* 0x002f30 */ 0x6f,0x84,0xd7,0x18,0x84,0x59,0xb9,0xb6,0x89,0xbd,0x8f,0x26,0xfc,0xad,0x0c,0x40,
+/* 0x002f40 */ 0xec,0x8f,0x26,0x6d,0x6a,0xbe,0x4f,0x3d,0x3d,0xcc,0xcf,0x56,0x7f,0xe3,0xf9,0xd3,
+/* 0x002f50 */ 0x41,0xbd,0xb9,0x0f,0x17,0xca,0xbf,0x6b,0x56,0xa2,0x05,0x71,0x7f,0x84,0x1e,0x6b,
+/* 0x002f60 */ 0xe8,0x01,0x92,0x37,0xb3,0x71,0xab,0x54,0xcd,0xa7,0xde,0x01,0x1b,0xfe,0xba,0x0b,
+/* 0x002f70 */ 0xc6,0x34,0x7b,0xfd,0x8d,0xb5,0x48,0x52,0xb0,0x1b,0x75,0x44,0x95,0x9d,0x92,0x56,
+/* 0x002f80 */ 0x74,0x6f,0xde,0xa3,0x2e,0xbf,0xbe,0x66,0xe1,0xdd,0x7f,0x81,0x3a,0xc4,0xaa,0x11,
+/* 0x002f90 */ 0x56,0xa6,0xf2,0x80,0x6d,0xbc,0x9a,0x73,0xd4,0xdf,0x78,0x8e,0x7c,0xb3,0xa7,0xeb,
+/* 0x002fa0 */ 0xef,0xf1,0x5c,0xf5,0x67,0xa4,0xb4,0x3f,0xff,0xbb,0x8d,0x3f,0xa5,0xd1,0x86,0x6f,
+/* 0x002fb0 */ 0x95,0xac,0x72,0x5f,0x27,0x6e,0xd4,0x2a,0x47,0xa9,0x0d,0xd9,0x97,0x28,0x1d,0x33,
+/* 0x002fc0 */ 0x90,0x42,0x75,0x14,0xc0,0x5a,0x5a,0xfd,0x0d,0x0f,0xab,0xbf,0x11,0xaf,0xaf,0xf7,
+/* 0x002fd0 */ 0x5e,0x2f,0xb8,0x63,0x2f,0x68,0xa1,0xde,0x42,0x4d,0x58,0xf9,0x97,0xaf,0xa3,0x10,
+/* 0x002fe0 */ 0x4d,0x8b,0x6b,0x8a,0xbe,0x40,0xea,0xc7,0x7c,0x75,0xc2,0x09,0x72,0x21,0x1e,0x1a,
+/* 0x002ff0 */ 0x63,0x85,0x38,0xe0,0xa7,0xd4,0x5c,0xf5,0x37,0xca,0x97,0xb4,0xd2,0x2a,0x10,0xe8,
+/* 0x003000 */ 0x42,0x6b,0xa4,0xb3,0x25,0x2e,0xac,0x5d,0xf8,0x4b,0x18,0x26,0xdf,0x6f,0x58,0xdd,
+/* 0x003010 */ 0xcb,0x86,0x41,0x9e,0x0f,0x2b,0x47,0x28,0x65,0x3c,0xce,0x8a,0x5b,0xe6,0xe0,0xbf,
+/* 0x003020 */ 0xce,0x46,0xc3,0xab,0x7c,0x9a,0x4b,0xc7,0x2f,0xc8,0x6d,0x7a,0x95,0x76,0x7d,0x50,
+/* 0x003030 */ 0x7e,0x1d,0xd5,0xd2,0xf1,0x7a,0x02,0x30,0x7e,0x68,0xc8,0xbb,0x88,0x4e,0x7c,0x5a,
+/* 0x003040 */ 0x7f,0x83,0x09,0xa8,0x1e,0xc1,0xf7,0x93,0xca,0xff,0x12,0x6d,0xe7,0xab,0x2c,0x36,
+/* 0x003050 */ 0xe3,0x34,0xda,0x58,0x5e,0xaa,0xbb,0x61,0xdf,0x21,0xfb,0xb4,0xd2,0x11,0x49,0xc5,
+/* 0x003060 */ 0xaf,0xd0,0x68,0xc3,0x23,0x12,0xdd,0x89,0x8c,0x8a,0xc7,0xcc,0x2b,0x50,0xa5,0xb6,
+/* 0x003070 */ 0xac,0xf9,0x5f,0xcf,0x92,0x52,0xcd,0xb3,0xaa,0xa8,0xcf,0xb5,0x95,0x94,0x25,0xdd,
+/* 0x003080 */ 0x93,0x78,0x1e,0xda,0xab,0x95,0x27,0xa5,0x35,0xf8,0x15,0x69,0x2f,0x29,0x1b,0xcd,
+/* 0x003090 */ 0xa7,0x99,0x77,0x87,0xd5,0xa7,0x78,0x21,0x0e,0xa3,0x9f,0xb3,0xe6,0x7f,0xa9,0xca,
+/* 0x0030a0 */ 0xd8,0x8a,0xda,0xa2,0x21,0x7a,0x4e,0x32,0xe1,0x0e,0xc3,0x6e,0x75,0x00,0xdc,0x15,
+/* 0x0030b0 */ 0x49,0xc2,0x2f,0xae,0xda,0xcb,0x19,0x31,0xd8,0xbf,0x48,0xc0,0x8a,0x10,0x50,0x73,
+/* 0x0030c0 */ 0xe5,0x7f,0xc9,0xe1,0x7e,0xdf,0xa8,0xf0,0xbc,0x72,0xc2,0x55,0xd3,0x7f,0xfb,0x98,
+/* 0x0030d0 */ 0x10,0x40,0xaf,0xe1,0x5a,0xe2,0x1d,0x2f,0x9e,0x54,0xaf,0xa2,0x1a,0xf2,0x15,0xad,
+/* 0x0030e0 */ 0x2c,0x80,0x3e,0x26,0x75,0xbc,0x10,0xfd,0x65,0xd4,0xb0,0xcd,0xab,0x2d,0xcb,0x8a,
+/* 0x0030f0 */ 0xbf,0xee,0xa0,0xb4,0x57,0x59,0x92,0xe6,0x38,0x17,0x15,0xb8,0x78,0xa6,0x12,0xaa,
+/* 0x003100 */ 0xee,0x60,0x42,0xbd,0x6c,0x14,0xb8,0xfe,0xbf,0x2c,0xbf,0x0e,0xfb,0xb2,0xe6,0x7f,
+/* 0x003110 */ 0xb9,0xd8,0x58,0xc4,0x85,0x5d,0xf8,0xa8,0x1e,0x5e,0xed,0xdd,0x0e,0xd3,0xfc,0x12,
+/* 0x003120 */ 0x4a,0xa8,0xde,0x9f,0xb8,0x56,0xa3,0xa3,0x7a,0xad,0xea,0xa5,0xee,0xee,0xa5,0xfc,
+/* 0x003130 */ 0x94,0x3f,0x4f,0x73,0xc4,0xb2,0xe2,0xaf,0xd6,0x8a,0xd6,0x15,0xd4,0xd9,0xde,0xd4,
+/* 0x003140 */ 0xae,0xac,0x2b,0x88,0xe3,0x9b,0x5a,0x6f,0x03,0xb4,0x25,0x95,0xc0,0x3a,0xf6,0x9b,
+/* 0x003150 */ 0xf6,0xcd,0x8d,0x26,0x35,0x66,0x15,0x99,0xff,0x73,0x29,0x3b,0xfe,0x3a,0xc0,0x68,
+/* 0x003160 */ 0xaf,0x58,0xb9,0x48,0xd9,0x2e,0x15,0xbc,0x6e,0xf1,0x36,0x40,0x5b,0x81,0x78,0x98,
+/* 0x003170 */ 0x22,0xbb,0x27,0xa2,0xe9,0xcf,0xa9,0x82,0xa6,0xac,0xf5,0xe7,0x0f,0xb8,0x60,0x2c,
+/* 0x003180 */ 0x64,0x77,0xb9,0xda,0x2e,0xf6,0xa8,0xf9,0xb3,0xdc,0xa2,0xba,0xe7,0xb6,0xde,0x26,
+/* 0x003190 */ 0xe9,0x61,0xbc,0x4b,0x9d,0xa5,0x04,0x96,0x07,0xc0,0x66,0x96,0xbd,0x52,0xfa,0x72,
+/* 0x0031a0 */ 0xc9,0x8e,0xbf,0x4a,0x6c,0xf8,0x8b,0x15,0xa9,0x2b,0x45,0x43,0x81,0x30,0x92,0x36,
+/* 0x0031b0 */ 0xd0,0xb4,0xaf,0x68,0x1d,0x4d,0x04,0x3b,0x8b,0x86,0xf2,0x6b,0xcd,0x8a,0x76,0x61,
+/* 0x0031c0 */ 0xab,0x9f,0xa9,0x26,0x4b,0xfd,0x79,0x4e,0xd0,0x8c,0xb8,0x2e,0x12,0x56,0xae,0x70,
+/* 0x0031d0 */ 0x1d,0x23,0xc2,0x6a,0xbf,0xfc,0xbf,0x4e,0x2d,0xfb,0x0e,0x75,0xe3,0x97,0x33,0x1b,
+/* 0x0031e0 */ 0x1b,0xfe,0xca,0x51,0xff,0xf0,0x22,0x87,0x5d,0xad,0xc5,0x17,0x97,0xbf,0x8c,0x6a,
+/* 0x0031f0 */ 0xd4,0xc2,0x37,0x84,0x5a,0xf5,0x28,0xe0,0x82,0xdd,0xad,0xc2,0x2d,0xe8,0xf7,0xa4,
+/* 0x003200 */ 0xa1,0x79,0xe6,0x08,0xad,0xa3,0x28,0x86,0x29,0x10,0xa3,0xe8,0xaf,0xe1,0x6e,0xaf,
+/* 0x003210 */ 0x0d,0x7f,0x69,0xb6,0xb2,0x1b,0xe0,0xa2,0x77,0x13,0xff,0x11,0x32,0x86,0x62,0xc8,
+/* 0x003220 */ 0xf3,0x10,0x7e,0x5c,0xed,0x42,0xfe,0x05,0xd2,0x66,0xcf,0x9b,0xb3,0xbb,0x70,0x15,
+/* 0x003230 */ 0xaf,0xc8,0x31,0x46,0xea,0x2c,0xfc,0xe5,0x2a,0x48,0xe1,0x2f,0x31,0x15,0xde,0x89,
+/* 0x003240 */ 0x39,0x10,0xbb,0x69,0x14,0x3d,0x8c,0xcb,0x69,0xd8,0x61,0x13,0x69,0x47,0xe5,0x8d,
+/* 0x003250 */ 0xf9,0xf1,0xcd,0x79,0xe8,0xe1,0xc6,0xe0,0xd7,0xba,0x19,0xff,0xb5,0xa0,0x5c,0xe5,
+/* 0x003260 */ 0x25,0x28,0x5d,0xf7,0xaa,0x52,0xf6,0xfc,0x2f,0x86,0xb6,0x76,0xe0,0xb7,0x10,0xe5,
+/* 0x003270 */ 0xbf,0x56,0x18,0xfc,0x17,0x2b,0x84,0x28,0x3f,0xc2,0x4a,0x62,0x62,0x9a,0x12,0x68,
+/* 0x003280 */ 0xe1,0xee,0x7b,0x5b,0xa1,0x29,0x5b,0xfe,0xd7,0xd1,0x68,0xa4,0xd5,0xf7,0x23,0xe1,
+/* 0x003290 */ 0x2d,0x40,0x64,0xb5,0xeb,0x7c,0xff,0x3e,0x73,0x35,0xa6,0xfd,0x53,0xf0,0x28,0x00,
+/* 0x0032a0 */ 0xb1,0x57,0xb1,0xd9,0xbd,0xe4,0x1f,0xcd,0x7e,0xae,0xff,0xd6,0xca,0x78,0xf6,0xfa,
+/* 0x0032b0 */ 0x1b,0x62,0x64,0x85,0x71,0x2e,0x51,0xb7,0x0e,0xe0,0xed,0x2e,0xf4,0x2d,0xb1,0x5e,
+/* 0x0032c0 */ 0x2d,0xdc,0x51,0xb6,0x5a,0x4b,0x85,0x1d,0x2a,0x0f,0x58,0xf3,0xa2,0x39,0x37,0xfe,
+/* 0x0032d0 */ 0x92,0x5b,0x3a,0x8b,0x15,0x58,0xbc,0xe1,0x23,0x11,0x3d,0x3c,0xb4,0x15,0xbe,0x9f,
+/* 0x0032e0 */ 0x28,0x1a,0x2a,0x0f,0xa3,0x95,0x64,0x19,0xb5,0x79,0xce,0xbc,0xbf,0x20,0x82,0xbd,
+/* 0x0032f0 */ 0xd9,0xf2,0xbf,0x86,0xd0,0x21,0xf4,0x85,0x18,0x80,0x2c,0x37,0x7a,0x03,0xdd,0x4a,
+/* 0x003300 */ 0x56,0xf4,0x1a,0x68,0x6b,0xcd,0xdf,0xe1,0x12,0xf9,0x17,0x52,0x99,0xc6,0x2a,0x22,
+/* 0x003310 */ 0x1e,0xc2,0x7e,0xd2,0x4d,0xf9,0xaf,0xcd,0xa8,0x9a,0x04,0xb4,0x1c,0xf5,0x37,0xd6,
+/* 0x003320 */ 0x24,0xaf,0xbf,0x0d,0xdf,0x0e,0xa3,0xae,0xec,0xf2,0xdc,0x06,0x40,0x8c,0x21,0xb2,
+/* 0x003330 */ 0x85,0xf8,0x2b,0xa8,0x43,0x55,0x14,0xc9,0xb1,0x7f,0x81,0x07,0xd2,0x26,0x85,0x72,
+/* 0x003340 */ 0xd4,0x3f,0xfc,0xa6,0xee,0x19,0xc3,0x7f,0x83,0x7e,0xe0,0x9d,0x8f,0x3c,0xf7,0xf1,
+/* 0x003350 */ 0x45,0x78,0x48,0x9a,0x68,0x2c,0x41,0x5b,0x89,0xd2,0x63,0x54,0x4a,0x67,0xeb,0xf3,
+/* 0x003360 */ 0x1b,0x2e,0xc0,0x0e,0xb3,0xa4,0x0c,0xfc,0xe5,0x31,0x6b,0x1b,0xb6,0x00,0xec,0x42,
+/* 0x003370 */ 0x2f,0xd1,0xb2,0xf3,0x37,0x33,0xfe,0xab,0x01,0x80,0x18,0xb8,0xf1,0xbf,0x26,0x0b,
+/* 0x003380 */ 0x35,0x23,0xed,0xeb,0x16,0x80,0x5d,0xf7,0xbc,0x01,0x9a,0x7a,0xc5,0x9b,0xc2,0x5f,
+/* 0x003390 */ 0x05,0x36,0xfc,0x35,0x29,0xe6,0x81,0x33,0x39,0xf3,0x5f,0xe8,0x4e,0x84,0x58,0xc0,
+/* 0x0033a0 */ 0xd5,0x35,0x02,0xbb,0xd5,0x88,0x30,0x04,0xbb,0x5e,0x44,0x9f,0x99,0x60,0xdb,0x16,
+/* 0x0033b0 */ 0x33,0x1e,0x36,0x6d,0x1c,0xf5,0x37,0x16,0x73,0xfe,0xeb,0x75,0xd2,0xa0,0xf9,0xbe,
+/* 0x0033c0 */ 0x5b,0x76,0xab,0x7a,0x67,0xbc,0x46,0xe1,0x61,0x87,0xa4,0x26,0xe9,0x3d,0x2d,0xdc,
+/* 0x0033d0 */ 0x29,0xfd,0x3a,0x1e,0xfe,0x17,0x2f,0x83,0x5d,0x5d,0x35,0xa3,0x3c,0x10,0x91,0x2c,
+/* 0x0033e0 */ 0x51,0xbc,0x93,0x65,0x7a,0xb6,0xfa,0x87,0xda,0x22,0xe4,0x91,0x62,0xb5,0x78,0x63,
+/* 0x0033f0 */ 0x3c,0x80,0x97,0x7d,0x0b,0xcf,0xd3,0x69,0xdd,0x78,0xe9,0x2f,0xf1,0x99,0xc6,0x27,
+/* 0x003400 */ 0xf5,0x5b,0xcb,0xa1,0x37,0x4e,0xc0,0x76,0x03,0xfd,0xfc,0x2d,0xba,0xbf,0xa3,0x4a,
+/* 0x003410 */ 0x2c,0xb5,0x09,0x59,0xea,0x6f,0x94,0xec,0x53,0x2a,0xe3,0x9e,0x0b,0x78,0x36,0xd9,
+/* 0x003420 */ 0xa6,0xcc,0x07,0x5c,0xc0,0xea,0x9c,0x94,0xea,0xf9,0xad,0xf8,0xff,0xa0,0x07,0x51,
+/* 0x003430 */ 0x29,0xca,0x07,0x1b,0xd7,0x3e,0xa5,0xd4,0xe2,0x19,0x45,0x77,0x0a,0x7f,0xc9,0x4e,
+/* 0x003440 */ 0xfe,0x0b,0x79,0xc4,0x58,0x1e,0x1d,0xd3,0x45,0x9e,0xfe,0x98,0xc8,0x56,0xc8,0xfc,
+/* 0x003450 */ 0xd9,0xf8,0x84,0x44,0x19,0x31,0xe6,0x67,0xee,0x5d,0xaa,0xf0,0x3a,0xdb,0x7b,0x71,
+/* 0x003460 */ 0xd0,0xef,0x0e,0xd9,0xeb,0x6f,0x4c,0x89,0xf7,0xf1,0x7e,0x3e,0x4d,0xea,0xdb,0x7c,
+/* 0x003470 */ 0x25,0x2b,0x0a,0x95,0x7f,0x43,0xb5,0xc4,0x77,0xd0,0x13,0x74,0xd1,0x7a,0xef,0x05,
+/* 0x003480 */ 0xdb,0xf1,0x37,0xc8,0x51,0x14,0x26,0xcc,0x3f,0xbc,0xa6,0x16,0x59,0xfe,0xfc,0xac,
+/* 0x003490 */ 0xc2,0x44,0x76,0xfc,0x75,0xa4,0xee,0x43,0x4e,0x34,0xab,0x75,0xc8,0x72,0xfe,0xef,
+/* 0x0034a0 */ 0xfd,0x21,0x4c,0x46,0x98,0x4d,0xed,0xb7,0x27,0xd2,0xf0,0x17,0x2a,0x4d,0x08,0x5a,
+/* 0x0034b0 */ 0x96,0xfc,0xaf,0x69,0xd4,0xa0,0xac,0x1c,0x10,0x0e,0x16,0x9d,0x44,0xb7,0x46,0x7d,
+/* 0x0034c0 */ 0x67,0xd8,0xf1,0x3e,0xec,0x68,0x23,0x8f,0x7f,0xec,0xba,0xc2,0x0a,0x6e,0xa7,0xe1,
+/* 0x0034d0 */ 0x02,0xcd,0x37,0xb1,0x4c,0xb7,0xe7,0x7f,0x45,0x0c,0xde,0x6a,0x79,0x55,0x67,0x01,
+/* 0x0034e0 */ 0xb9,0xa3,0x1c,0x1d,0xef,0xf2,0x87,0x3c,0xa7,0xf1,0xcd,0xf0,0xf5,0x7e,0x51,0x17,
+/* 0x0034f0 */ 0x5e,0xc3,0x97,0xd5,0xfd,0xb1,0x6a,0x9e,0x58,0x44,0xeb,0x03,0x14,0x26,0x58,0x69,
+/* 0x003500 */ 0x3b,0x58,0x21,0x13,0x56,0xfc,0x61,0x1a,0xff,0xb5,0x0c,0x5c,0xeb,0x72,0xb4,0x89,
+/* 0x003510 */ 0xdc,0xb4,0xca,0xa0,0x3f,0x68,0x42,0x10,0xde,0xc5,0x42,0xe6,0xb8,0x7b,0x89,0x53,
+/* 0x003520 */ 0xa4,0x49,0x09,0x7d,0x8e,0xc5,0x7f,0xd9,0x78,0x6a,0x05,0x96,0xb8,0x1d,0x58,0xd4,
+/* 0x003530 */ 0x7f,0xe0,0x8f,0xaa,0x42,0xa8,0xc8,0xcb,0xe8,0x98,0x47,0x51,0xd1,0xb0,0xb8,0x27,
+/* 0x003540 */ 0x1a,0x94,0xc0,0xe6,0xe5,0x2d,0x7b,0x25,0x71,0xe4,0x58,0x88,0xa7,0xc0,0x20,0x1a,
+/* 0x003550 */ 0x7f,0x98,0xc2,0x5f,0x07,0xcc,0x90,0xc2,0xc9,0xd6,0x88,0xbc,0xf2,0x09,0xcf,0xcd,
+/* 0x003560 */ 0xed,0xc7,0x5b,0x6b,0xff,0x1a,0x3a,0x73,0x6d,0x27,0xab,0x3f,0x4f,0x96,0x8d,0xa2,
+/* 0x003570 */ 0xfe,0x68,0x64,0x76,0xcb,0xb3,0xc2,0xfb,0xda,0x54,0x34,0x32,0xe2,0x7b,0xc6,0xe8,
+/* 0x003580 */ 0x67,0x5f,0xa2,0x4c,0xb7,0xe7,0x7f,0x99,0x25,0x0d,0x8b,0x1a,0xa4,0x99,0x1b,0x3a,
+/* 0x003590 */ 0x56,0x8f,0xbc,0xa7,0x36,0xa8,0x02,0xbd,0x38,0x80,0x56,0x6c,0x6b,0xa1,0xf5,0x37,
+/* 0x0035a0 */ 0x2e,0xcd,0x6e,0x58,0xe5,0x3b,0x0f,0x3f,0x7e,0x21,0x00,0x8e,0xfd,0xf9,0x8e,0x71,
+/* 0x0035b0 */ 0x1a,0x1f,0x85,0x6c,0xf9,0x5f,0x73,0x9c,0xf9,0x5f,0x3a,0x17,0x68,0x92,0xa0,0xed,
+/* 0x0035c0 */ 0x10,0x63,0xda,0x9a,0x83,0xe8,0x9a,0x52,0xe3,0x38,0xdf,0x30,0xf0,0x97,0x2e,0xfd,
+/* 0x0035d0 */ 0xc2,0x51,0xff,0x90,0x82,0x9a,0x73,0xe8,0x70,0xbc,0x6c,0xd4,0xd0,0xd4,0xd9,0x4b,
+/* 0x0035e0 */ 0x23,0x52,0x61,0xc4,0xef,0xd0,0x18,0xf8,0x7d,0x48,0xdc,0xc2,0x72,0x85,0xec,0x38,
+/* 0x0035f0 */ 0x77,0x18,0x65,0xb9,0x86,0x23,0x05,0x78,0x9d,0x4d,0x26,0xfe,0x9a,0x91,0x49,0x65,
+/* 0x003600 */ 0x82,0x20,0xbe,0x69,0x6a,0x2a,0xd2,0x9b,0x9c,0x37,0x1a,0x98,0xf8,0xab,0x9d,0xdd,
+/* 0x003610 */ 0xff,0x65,0x3b,0xb2,0x68,0xa1,0xe1,0xb8,0x53,0xa8,0x76,0xc0,0xcc,0xe0,0x33,0x9b,
+/* 0x003620 */ 0x2c,0x9a,0xc9,0x79,0xa3,0x93,0x9e,0x23,0xff,0xab,0x80,0x5e,0xfb,0x95,0x0e,0x8a,
+/* 0x003630 */ 0xc7,0x6d,0x31,0x6f,0x28,0x8d,0xff,0xca,0x9e,0xff,0x35,0xc8,0x84,0x0b,0x19,0x19,
+/* 0x003640 */ 0x61,0xc7,0x33,0x34,0xce,0xf8,0xc3,0xd3,0xce,0xfc,0xaf,0xea,0x8b,0xc6,0x24,0xaa,
+/* 0x003650 */ 0x7e,0xc5,0xce,0x02,0x4f,0xa7,0x8e,0x23,0x0e,0xa7,0x75,0xa6,0x81,0xbf,0xc6,0xb2,
+/* 0x003660 */ 0xc4,0xcf,0xb3,0xd3,0xc2,0x11,0x77,0xc8,0x5e,0x3f,0xaa,0x23,0x8b,0x0d,0x13,0x26,
+/* 0x003670 */ 0xf8,0xb4,0x98,0x98,0x95,0x99,0xff,0x05,0xc2,0xc3,0x95,0xa3,0x92,0x43,0x93,0xce,
+/* 0x003680 */ 0xdd,0x58,0xc2,0x10,0x7f,0x4e,0x73,0x89,0xb3,0xfe,0x46,0x4a,0x28,0x64,0x19,0x61,
+/* 0x003690 */ 0x86,0x46,0x7e,0x21,0xab,0x0d,0x8d,0x3f,0xe4,0xf9,0x5f,0xfa,0x9c,0xb4,0xf1,0xe2,
+/* 0x0036a0 */ 0x7d,0x28,0xd6,0x0f,0x14,0x26,0x52,0xc3,0xc4,0x29,0x48,0x2b,0x0d,0xd6,0x3e,0x82,
+/* 0x0036b0 */ 0x46,0xfe,0x57,0x60,0xb6,0x63,0xbc,0x0c,0xe3,0x0b,0x7a,0xad,0x71,0x4d,0x40,0xae,
+/* 0x0036c0 */ 0x61,0xb2,0x84,0x23,0xc6,0xfc,0xda,0xe1,0xcc,0xff,0x1a,0xe1,0x42,0xa0,0xf4,0x98,
+/* 0x0036d0 */ 0x64,0x3b,0xdc,0xb3,0x42,0xeb,0x41,0xb8,0xc9,0x79,0xee,0x77,0x8a,0xfb,0x3f,0xae,
+/* 0x0036e0 */ 0xb4,0xfc,0x2f,0x03,0xc3,0x26,0xe6,0x8f,0xe7,0xa7,0x3a,0xf3,0xcf,0xed,0xdd,0xab,
+/* 0x0036f0 */ 0xa5,0xf7,0xb3,0x62,0xce,0xd3,0x6c,0xe3,0x6e,0x26,0xa7,0x33,0x4d,0x5e,0x66,0x21,
+/* 0x003700 */ 0x29,0x4b,0x78,0x2d,0x37,0xff,0x45,0x85,0x5a,0x52,0x90,0xa6,0xa9,0xca,0xb0,0x61,
+/* 0x003710 */ 0xc2,0xe5,0x9c,0xf9,0x5f,0x2c,0x67,0x24,0x62,0x27,0xb9,0x32,0x88,0x30,0x9b,0x90,
+/* 0x003720 */ 0x3d,0xff,0xab,0x3e,0xea,0x35,0x6a,0x11,0xb4,0xe6,0x2a,0xef,0x96,0x26,0x1c,0xc9,
+/* 0x003730 */ 0x9e,0xff,0xd5,0x14,0x30,0x6a,0x23,0xdc,0xdd,0x9d,0xb5,0x7e,0x78,0x86,0x90,0xe4,
+/* 0x003740 */ 0xdf,0x73,0x7a,0xfe,0x57,0x2b,0x07,0x59,0x32,0x27,0x44,0x8c,0xa6,0xa2,0x4f,0x79,
+/* 0x003750 */ 0x8e,0x81,0xbf,0xbc,0xa2,0x28,0xa6,0xdf,0xff,0xc5,0x6a,0xcb,0x2f,0x77,0x64,0x84,
+/* 0x003760 */ 0x29,0xa6,0x20,0x5a,0xf7,0x7f,0xa5,0xc5,0x1f,0xa6,0xe5,0x7f,0xcd,0xdd,0xd2,0xc9,
+/* 0x003770 */ 0x6b,0xd3,0x49,0xb4,0x7b,0x2d,0x68,0x46,0x32,0xef,0x6f,0x32,0xf9,0x2f,0x23,0xff,
+/* 0x003780 */ 0xeb,0x9f,0x9d,0x5d,0x67,0x96,0xdd,0xa8,0x5f,0xfa,0x19,0xfb,0xf9,0x9c,0x15,0x7f,
+/* 0x003790 */ 0x68,0x2b,0x81,0x82,0x1a,0xda,0x52,0x35,0x3a,0x60,0xef,0xb1,0x82,0x0c,0x89,0x75,
+/* 0x0037a0 */ 0x4d,0xc0,0x25,0xd1,0xf9,0x9c,0x13,0x46,0xfc,0x21,0x72,0x84,0x14,0x06,0x15,0xcf,
+/* 0x0037b0 */ 0xe6,0x2c,0x41,0x86,0x67,0x0d,0x41,0xd0,0x32,0x9a,0x5e,0x32,0xe2,0x0f,0xe7,0x38,
+/* 0x0037c0 */ 0xeb,0x6f,0xd0,0xf0,0x18,0x2a,0xd0,0x64,0xba,0x46,0x47,0xe6,0x5d,0xc0,0xd1,0xbd,
+/* 0x0037d0 */ 0x96,0x70,0xca,0x18,0xf7,0x6c,0xf5,0xe7,0x73,0x0b,0x99,0xc6,0x26,0xfe,0x9a,0x9d,
+/* 0x0037e0 */ 0x51,0xb7,0x10,0x5b,0x44,0x58,0x7a,0xa9,0x99,0x6c,0xfd,0x3c,0x96,0x35,0xff,0x2b,
+/* 0x0037f0 */ 0x25,0xe4,0x18,0x2f,0x39,0x5d,0xf3,0x1a,0x9f,0x17,0x6b,0x32,0xf9,0x2f,0x46,0x46,
+/* 0x003800 */ 0xd7,0xc1,0xfc,0xfe,0xb4,0xe9,0x99,0x11,0x7f,0xe8,0xcc,0xff,0xaa,0xee,0x91,0xb8,
+/* 0x003810 */ 0x50,0xd6,0x2b,0xd9,0x48,0xae,0x4f,0x11,0x8e,0xf0,0x7e,0x5e,0xe3,0xf0,0xeb,0x60,
+/* 0x003820 */ 0x08,0x02,0x4c,0x20,0xca,0x29,0x29,0xdb,0xaa,0x95,0x26,0xe4,0xa7,0xf2,0xbf,0x90,
+/* 0x003830 */ 0x93,0xff,0xd2,0x24,0x5a,0x76,0x63,0x2f,0x0d,0xe7,0x4e,0x5b,0x9f,0x73,0x08,0xc6,
+/* 0x003840 */ 0xf9,0xa1,0x42,0xd2,0xf2,0xbf,0x58,0xd9,0x8d,0x8f,0x48,0xbf,0x76,0xfb,0xfa,0x65,
+/* 0x003850 */ 0x6f,0x64,0xa4,0x86,0xa5,0x09,0x05,0xeb,0xad,0xfc,0xaf,0xd9,0x8e,0xbc,0x24,0x96,
+/* 0x003860 */ 0xfb,0xcf,0x72,0xd2,0xc9,0xa7,0x6f,0x37,0x5c,0x98,0x69,0xe1,0x2f,0x32,0xc3,0x59,
+/* 0x003870 */ 0xe4,0xb0,0xcd,0x6b,0x5e,0x4b,0xe4,0x64,0xc4,0x52,0xc2,0x06,0xa7,0xe6,0x34,0xff,
+/* 0x003880 */ 0x7e,0x9e,0x72,0xe6,0x2f,0x57,0x13,0xb3,0x5b,0x10,0x80,0xac,0xf4,0xde,0xc8,0xd4,
+/* 0x003890 */ 0x50,0xfe,0x8b,0x3d,0x47,0x46,0xce,0x7d,0x50,0xfd,0x8c,0xdd,0x9b,0xce,0x7f,0x45,
+/* 0x0038a0 */ 0xd3,0xf3,0x97,0xc1,0xed,0x19,0x16,0x79,0xc1,0xb7,0xff,0x78,0xdc,0x41,0x30,0xfc,
+/* 0x0038b0 */ 0xa8,0xb1,0xd9,0xb6,0xf8,0x43,0x2a,0x04,0x27,0x0c,0x21,0xdd,0x3f,0xcc,0x14,0x98,
+/* 0x0038c0 */ 0x57,0x69,0xe4,0x7f,0xc5,0x91,0x73,0xbc,0xd8,0x30,0x65,0x54,0xa4,0xff,0x14,0xc1,
+/* 0x0038d0 */ 0xca,0xff,0xca,0xa8,0x33,0x20,0xd4,0xa3,0x2b,0xda,0x12,0xe4,0x4d,0x47,0x5b,0xd9,
+/* 0x0038e0 */ 0x05,0x23,0xff,0xeb,0xe1,0xce,0x20,0xbb,0x9b,0xc9,0x74,0xf9,0x92,0x2b,0x12,0x42,
+/* 0x0038f0 */ 0x50,0x86,0xfd,0xab,0xbc,0x2b,0x5b,0x94,0x60,0xa6,0x90,0xca,0xff,0x92,0xed,0x4d,
+/* 0x003900 */ 0x00,0xd6,0xfc,0x41,0x7e,0x5b,0xca,0x67,0x78,0xce,0xf5,0xf0,0x1c,0x17,0x9b,0x17,
+/* 0x003910 */ 0xe9,0xf5,0x37,0x08,0x3b,0xcb,0xdd,0x43,0x09,0x9a,0xec,0xc3,0x94,0x4e,0x96,0x1d,
+/* 0x003920 */ 0x11,0xd9,0xbc,0x20,0xd2,0x5a,0xbb,0x3f,0x4f,0xfd,0x31,0x4f,0x90,0xad,0x51,0x41,
+/* 0x003930 */ 0x1a,0x2d,0x96,0xab,0x7b,0x71,0xca,0x9f,0x17,0xd8,0xdf,0xb5,0xf3,0xc6,0xcc,0x7e,
+/* 0x003940 */ 0x3e,0x68,0xd6,0x5e,0xfb,0x0c,0xfd,0x5c,0x6c,0x9c,0x6b,0xe9,0xf9,0xb6,0x6b,0x1d,
+/* 0x003950 */ 0xa6,0x63,0x3e,0xc5,0xd7,0x25,0x8c,0x4b,0x67,0xe2,0xb7,0x22,0x76,0x7f,0x01,0x3b,
+/* 0x003960 */ 0xdf,0x98,0x10,0x82,0xe8,0x04,0xbd,0x26,0x60,0x51,0x71,0x50,0x3a,0x49,0x5f,0x83,
+/* 0x003970 */ 0xae,0x85,0x87,0x3b,0x97,0x44,0xbb,0x27,0x85,0x11,0xbe,0x7f,0x25,0x91,0x05,0xb2,
+/* 0x003980 */ 0xde,0xe6,0x60,0xb6,0xb7,0xf1,0x1c,0xac,0x99,0x15,0x98,0xf6,0xb3,0x08,0xe8,0x26,
+/* 0x003990 */ 0xda,0x9c,0x70,0x07,0x8b,0x36,0x8b,0xfe,0x57,0x60,0x28,0xd7,0xba,0x5e,0xa7,0xb0,
+/* 0x0039a0 */ 0x6b,0x1a,0x57,0x31,0xfe,0x0b,0x7e,0x6a,0x22,0x95,0xff,0x95,0xca,0x27,0xa2,0xfd,
+/* 0x0039b0 */ 0x2c,0xe1,0x61,0xbc,0x99,0xdc,0x24,0xd1,0x53,0x08,0xef,0x5e,0xe4,0x4f,0xc2,0x02,
+/* 0x0039c0 */ 0xeb,0xc5,0x9b,0x51,0x2f,0x4d,0xfb,0x42,0x32,0x73,0xec,0xf7,0x18,0xe7,0xea,0x29,
+/* 0x0039d0 */ 0xfc,0x95,0xb4,0xe5,0x7f,0x91,0xfd,0x0a,0x2c,0xb9,0x3b,0x29,0xd1,0xd3,0x5e,0x21,
+/* 0x0039e0 */ 0xe6,0x1b,0x68,0x2b,0x0a,0x1f,0x92,0x57,0xde,0x3c,0xbb,0x02,0x90,0x54,0xe3,0x1a,
+/* 0x0039f0 */ 0xc5,0x48,0xfb,0x62,0xa8,0xa4,0x19,0x84,0x11,0xe3,0x5c,0x22,0xc5,0x5f,0x9c,0x43,
+/* 0x003a00 */ 0x97,0x87,0x22,0x32,0x08,0x27,0xc4,0x21,0xf2,0x2c,0x2a,0x98,0x28,0x9b,0x96,0x58,
+/* 0x003a10 */ 0xbe,0xd5,0x3a,0xf8,0xc2,0x8f,0x10,0x86,0xbf,0xbe,0x88,0xba,0x79,0x3f,0x07,0x79,
+/* 0x003a20 */ 0x90,0x7c,0x42,0x48,0x1a,0xfc,0xd7,0x2c,0xab,0xfe,0x21,0x4d,0x87,0xe4,0xe4,0x2f,
+/* 0x003a30 */ 0xa1,0xf7,0x7d,0x99,0xf5,0xf4,0xd4,0xad,0x97,0xa8,0xd0,0x5e,0xab,0xcf,0x9c,0x28,
+/* 0x003a40 */ 0xbe,0x6a,0x84,0x89,0x7a,0x58,0x53,0x34,0xc5,0x7f,0x35,0xc9,0xb6,0x79,0x3a,0x29,
+/* 0x003a50 */ 0xad,0x5b,0xb4,0x95,0xbd,0x18,0x09,0xd3,0xf1,0x0a,0x32,0xf4,0xe7,0xa5,0xd7,0x16,
+/* 0x003a60 */ 0x1c,0x43,0x7d,0x2f,0x88,0x09,0xa1,0x54,0x65,0x40,0x6c,0x4f,0x07,0x7b,0x9f,0xe6,
+/* 0x003a70 */ 0x14,0xff,0x75,0xfa,0x4b,0x29,0xfc,0x25,0xee,0x47,0xb5,0x13,0x1e,0x2d,0x36,0x0e,
+/* 0x003a80 */ 0xe0,0xbf,0x07,0x05,0x26,0x85,0xfb,0x61,0xca,0x28,0x74,0x82,0x5c,0x81,0x3f,0xa7,
+/* 0x003a90 */ 0x6c,0xc4,0xdd,0x07,0xdd,0xf2,0xcb,0x91,0x6a,0xdd,0x73,0x33,0xcf,0xff,0x6a,0x95,
+/* 0x003aa0 */ 0x12,0x7e,0x33,0xff,0x2b,0x35,0x2f,0x06,0x51,0x42,0x55,0xd4,0x2f,0xa3,0x46,0x1a,
+/* 0x003ab0 */ 0x99,0xa6,0xa0,0xc0,0x22,0xec,0x15,0x0f,0xe0,0x72,0x1a,0x88,0xf8,0xb2,0x1e,0x43,
+/* 0x003ac0 */ 0x68,0x54,0x7a,0x0e,0x2f,0x20,0x1d,0x24,0x38,0xe0,0xa9,0xa7,0xe3,0xe5,0x02,0x27,
+/* 0x003ad0 */ 0x30,0xd4,0x68,0xe4,0x7f,0x8d,0xd8,0xef,0xa5,0x7a,0x2e,0x36,0x3f,0xda,0xfd,0x35,
+/* 0x003ae0 */ 0xfc,0x3b,0x75,0xdf,0x1d,0x4a,0x40,0xba,0x0f,0xdf,0xa9,0xee,0x23,0x5f,0x48,0x96,
+/* 0x003af0 */ 0xac,0x2a,0xba,0x4a,0x36,0xb4,0x97,0x26,0xdd,0x97,0xf1,0x5c,0xf2,0x64,0x57,0x25,
+/* 0x003b00 */ 0xad,0x55,0xc5,0x78,0x99,0x64,0xc0,0xca,0xff,0x5a,0x63,0xaf,0x3f,0x7f,0x41,0x56,
+/* 0x003b10 */ 0x26,0x0a,0x2a,0x84,0x13,0xfa,0x14,0x0a,0xc9,0xde,0xba,0x8e,0x42,0x10,0x6e,0x1e,
+/* 0x003b20 */ 0xf4,0xce,0x5a,0x76,0x02,0xfa,0x27,0x34,0xb6,0x72,0x91,0x50,0x45,0x00,0x88,0x8d,
+/* 0x003b30 */ 0x99,0x15,0xe9,0xed,0xfc,0xd7,0xec,0x83,0xea,0x35,0xd9,0x98,0x32,0x17,0xa0,0xa3,
+/* 0x003b40 */ 0x5a,0x12,0xc2,0xb4,0x7c,0x4d,0x89,0x0c,0xf9,0xda,0x3a,0x68,0x92,0xd7,0x6d,0xaa,
+/* 0x003b50 */ 0x6f,0xe4,0x2f,0xce,0x44,0xaf,0xca,0x0d,0x26,0xed,0x05,0x58,0x78,0xb2,0x83,0x8d,
+/* 0x003b60 */ 0x57,0x53,0x8a,0xff,0x92,0x1c,0xf5,0x37,0xa2,0x11,0xd4,0xb2,0xdd,0x35,0x8a,0x8e,
+/* 0x003b70 */ 0xe3,0x10,0x5a,0x99,0x58,0xb6,0x9b,0xc2,0x64,0xc2,0x3e,0xad,0x21,0x5c,0xaf,0x7b,
+/* 0x003b80 */ 0xfb,0x71,0x00,0x34,0x20,0xd0,0x0b,0x3e,0x8c,0xef,0xc7,0xe0,0xbf,0xf4,0x76,0xdb,
+/* 0x003b90 */ 0xbe,0xf3,0x9c,0x04,0xc2,0xff,0x5d,0x44,0xeb,0x1f,0x96,0x22,0xf7,0xba,0xc6,0x1b,
+/* 0x003ba0 */ 0x69,0x00,0x06,0xa2,0xd5,0xe6,0xe5,0x7f,0x47,0x95,0xa7,0xa5,0x09,0x61,0xa5,0xbc,
+/* 0x003bb0 */ 0xd1,0x5f,0x39,0x26,0xad,0xe3,0x37,0x82,0xd1,0xd8,0x8c,0xf3,0x3c,0xff,0x0b,0xa5,
+/* 0x003bc0 */ 0xf0,0xd7,0x1f,0xa8,0xa0,0x78,0x1e,0xc0,0x27,0xd0,0x2f,0xa1,0x7b,0xa5,0x45,0xf8,
+/* 0x003bd0 */ 0xa7,0xe4,0xc7,0xa4,0x52,0xe3,0xb7,0x5a,0x93,0xea,0x31,0x40,0xbe,0x73,0xc5,0x8d,
+/* 0x003be0 */ 0x7d,0x95,0xe3,0x26,0x04,0xbe,0xfb,0xfa,0xf5,0xb0,0xae,0xb2,0xef,0xc7,0xc9,0x7f,
+/* 0x003bf0 */ 0xe9,0xc1,0x53,0xf0,0x6d,0x0c,0xe3,0x0e,0x54,0x7e,0x11,0x70,0xf7,0x6e,0xba,0xfa,
+/* 0x003c00 */ 0xa1,0xee,0xc5,0x78,0x58,0x7e,0x98,0x87,0xf4,0x7c,0x33,0xaf,0x43,0x0c,0x5a,0xd0,
+/* 0x003c10 */ 0x8c,0xce,0x53,0x23,0x4f,0x6a,0x4c,0xec,0x4d,0x95,0xdd,0xb8,0xac,0x36,0xf4,0x6c,
+/* 0x003c20 */ 0xa5,0xf9,0x5f,0xe7,0xd0,0xad,0x89,0xf1,0xa8,0xd0,0x4b,0xef,0xff,0x22,0xbe,0x51,
+/* 0x003c30 */ 0x61,0x32,0xff,0x25,0xbd,0x81,0x88,0x9a,0x70,0x5b,0x23,0x0d,0x4d,0xf4,0x26,0x53,
+/* 0x003c40 */ 0xf8,0xcb,0x38,0x97,0x68,0x76,0xf8,0x75,0xa1,0x2a,0xa3,0xe6,0x9e,0xab,0x1f,0xfb,
+/* 0x003c50 */ 0x08,0x8e,0xd2,0x00,0x27,0xa5,0x85,0xcc,0x4c,0xba,0x26,0x4b,0xd2,0x2f,0x02,0x33,
+/* 0x003c60 */ 0xf1,0x17,0x3f,0xff,0x69,0x96,0x77,0x89,0x96,0x8b,0x3e,0x15,0xa7,0x42,0xf1,0xa8,
+/* 0x003c70 */ 0x74,0x54,0xab,0x55,0x0b,0x76,0x08,0xbb,0x58,0x3c,0x9b,0x27,0x2e,0x94,0x4b,0x97,
+/* 0x003c80 */ 0x50,0x28,0xea,0xfd,0x89,0xf0,0xb6,0x7a,0x56,0x0e,0xa9,0x5e,0x23,0xc2,0xad,0xc9,
+/* 0x003c90 */ 0x96,0xff,0xe5,0xc0,0x5f,0x83,0x55,0x5f,0xf6,0xf4,0xe1,0x17,0xc1,0xa6,0x47,0x95,
+/* 0x003ca0 */ 0x76,0xe0,0x72,0xfc,0x2a,0x8f,0x28,0x9b,0x3f,0xb2,0x1f,0xf5,0xb4,0x15,0xc4,0xf1,
+/* 0x003cb0 */ 0x5b,0x2c,0x34,0x51,0x7a,0x85,0xfb,0xcf,0x6b,0x3e,0x35,0xfe,0x10,0x8f,0x6a,0xed,
+/* 0x003cc0 */ 0xe8,0x09,0x9a,0xf6,0x65,0x54,0x9b,0x97,0xdd,0x60,0xe3,0xf2,0xaf,0x92,0xb6,0xe3,
+/* 0x003cd0 */ 0x51,0xe5,0x29,0xf1,0x26,0x55,0xfa,0x51,0x06,0xfe,0x72,0xd6,0x3f,0x14,0x8d,0xe2,
+/* 0x003ce0 */ 0xe7,0x7b,0xe4,0xd5,0xac,0xfe,0xa1,0xda,0x4e,0xcb,0xa1,0x83,0x90,0xdc,0x3f,0x0b,
+/* 0x003cf0 */ 0x2d,0x5f,0x20,0xd3,0x5f,0x11,0x28,0x5f,0x2e,0x15,0xc5,0x32,0xf0,0xd7,0x8d,0x3c,
+/* 0x003d00 */ 0xff,0xcb,0x43,0xbb,0xee,0xb2,0x21,0x68,0x43,0x6a,0xed,0xdc,0x82,0x0d,0x1d,0x3b,
+/* 0x003d10 */ 0xb5,0x2e,0xda,0x99,0x1b,0x3a,0x5c,0x64,0x52,0x0d,0x33,0xfe,0x8b,0x8c,0x29,0xb5,
+/* 0x003d20 */ 0x52,0x30,0xb6,0x2c,0x3d,0xfe,0x70,0x32,0xc5,0x7f,0x51,0x2a,0xea,0xcf,0x28,0x2e,
+/* 0x003d30 */ 0xb8,0x88,0x3e,0x2a,0x5d,0x4c,0x81,0xd8,0x20,0xb9,0x14,0xe0,0x85,0xe8,0xbb,0x68,
+/* 0x003d40 */ 0xfd,0x43,0xdf,0xa9,0x8e,0x8b,0x5a,0x0a,0x20,0xb8,0x18,0xff,0x65,0xe4,0x7f,0xf5,
+/* 0x003d50 */ 0xcf,0xb1,0x3d,0xe7,0xf7,0x4c,0x28,0xfb,0xad,0xf2,0x22,0x0a,0x47,0xbd,0xaf,0x0b,
+/* 0x003d60 */ 0x4f,0xb4,0x5f,0x92,0x23,0xba,0xf7,0xba,0x99,0x37,0x91,0x01,0xd4,0xd0,0xec,0x1d,
+/* 0x003d70 */ 0x11,0x6e,0x16,0x5e,0xa6,0x65,0x0f,0x5f,0x43,0xe5,0x8c,0x47,0xf3,0x5a,0xf9,0x5f,
+/* 0x003d80 */ 0x5f,0xb5,0xe3,0x2f,0x1a,0x76,0x28,0x50,0xa1,0x17,0xf5,0x20,0x69,0x6b,0x91,0x90,
+/* 0x003d90 */ 0xa4,0x4d,0x52,0x27,0x2e,0xc5,0xd0,0x54,0xb2,0x8a,0x60,0x1a,0x91,0xc8,0x88,0x30,
+/* 0x003da0 */ 0x85,0xf1,0x5f,0x81,0x54,0xfe,0x17,0xea,0x64,0x29,0x5d,0x02,0xaf,0xad,0x51,0xae,
+/* 0x003db0 */ 0x2f,0xa3,0xfd,0xbc,0x13,0x2b,0xad,0x01,0xb9,0xa8,0x13,0x2d,0x2c,0x07,0xc7,0x83,
+/* 0x003dc0 */ 0x77,0x78,0xf0,0x0e,0x89,0xe6,0xe2,0x81,0xd0,0xea,0x99,0x8d,0x45,0x33,0x29,0xcf,
+/* 0x003dd0 */ 0xcc,0xff,0x9a,0x6d,0x83,0x54,0xdd,0xa6,0xb0,0x53,0xec,0x69,0x04,0x9b,0x72,0x5a,
+/* 0x003de0 */ 0x25,0xa3,0x49,0x8d,0x6f,0x13,0xe1,0x03,0x08,0xd2,0xb2,0x1b,0xe5,0xca,0x26,0x2b,
+/* 0x003df0 */ 0x10,0x11,0x9a,0xa4,0x54,0xfe,0x97,0x68,0xe1,0xa6,0x97,0xd0,0xab,0xc9,0xc8,0x6a,
+/* 0x003e00 */ 0xcf,0x23,0xf0,0x27,0xbf,0x43,0xc2,0xf0,0xb7,0x7b,0xe8,0xaf,0x88,0x44,0xbd,0x23,
+/* 0x003e10 */ 0xf0,0x41,0x1e,0x75,0x45,0xd4,0x40,0xdc,0xf3,0x04,0x2d,0xdd,0xa6,0xd2,0xc2,0x32,
+/* 0x003e20 */ 0xbc,0x29,0xfe,0x85,0x49,0xbe,0x7f,0xad,0x49,0xe1,0x2f,0x00,0xb3,0x72,0xe4,0xac,
+/* 0x003e30 */ 0x6f,0x47,0xc7,0x9f,0x68,0xcd,0x4f,0xf3,0x5e,0xf2,0x48,0xf4,0x97,0x71,0x0f,0xaf,
+/* 0x003e40 */ 0x12,0x56,0xc0,0x52,0xf9,0x6c,0xf8,0x2b,0x6a,0xcb,0xff,0xb2,0xdf,0xbf,0x7c,0xda,
+/* 0x003e50 */ 0x48,0xc6,0x6c,0x1c,0x92,0x43,0xc8,0xdb,0x25,0x28,0xd2,0xd0,0x4c,0x1a,0x1e,0x5c,
+/* 0x003e60 */ 0x4c,0xc3,0x56,0xc3,0x79,0x5e,0x5a,0xda,0x85,0x52,0x63,0x66,0xfd,0x43,0x5a,0xa7,
+/* 0x003e70 */ 0xd4,0xac,0xbf,0x21,0x02,0xfe,0x72,0x19,0x90,0xea,0xa1,0xa5,0x55,0xf1,0x15,0xbb,
+/* 0x003e80 */ 0xf0,0x6b,0xe8,0x21,0xdd,0x4f,0x9a,0xc7,0xb6,0x2d,0x12,0x37,0xa3,0x60,0xbb,0x27,
+/* 0x003e90 */ 0xe9,0xaf,0x40,0x0f,0xa1,0x32,0x4d,0x1a,0x8b,0x5d,0x46,0xe7,0x88,0x9f,0x48,0xd1,
+/* 0x003ea0 */ 0x18,0x4b,0x16,0x4b,0xa4,0xf2,0xbf,0xa4,0x07,0x57,0x8a,0x7b,0x45,0xf3,0x90,0x50,
+/* 0x003eb0 */ 0x09,0x1e,0x81,0x75,0xec,0x25,0xe4,0x97,0xd8,0x39,0x92,0xd7,0xf0,0xe2,0xf2,0x0a,
+/* 0x003ec0 */ 0x51,0x87,0x18,0x1d,0xc9,0xa7,0xf5,0xd9,0x62,0x71,0x68,0xf2,0xf3,0x75,0x8c,0x9e,
+/* 0x003ed0 */ 0xb4,0x1f,0x53,0x32,0xf3,0xbf,0x36,0xa8,0x95,0xea,0x8a,0xef,0xb0,0xf8,0xba,0xb2,
+/* 0x003ee0 */ 0xa1,0xae,0xf3,0x78,0x1e,0xd9,0x48,0xeb,0xd3,0xae,0x6b,0x5c,0xa4,0x6c,0xdd,0x59,
+/* 0x003ef0 */ 0xa6,0x37,0xb7,0xe1,0xdf,0xb3,0x2b,0x3f,0x24,0x46,0xd0,0x50,0x0c,0xd2,0xe6,0x37,
+/* 0x003f00 */ 0xf3,0xbf,0x4a,0x7e,0x9a,0xaa,0x3f,0xff,0x12,0x15,0xd6,0x74,0xbc,0x81,0xde,0x26,
+/* 0x003f10 */ 0x0b,0x27,0x83,0xab,0x84,0x79,0x47,0x7e,0x47,0xa9,0xb1,0xfb,0x3b,0xae,0x43,0xbf,
+/* 0x003f20 */ 0x4e,0xee,0xa1,0x68,0xeb,0x2a,0x7e,0x89,0xec,0x49,0x7a,0xd7,0xd0,0x8a,0x88,0x64,
+/* 0x003f30 */ 0x89,0x92,0x8a,0x3f,0xb4,0xd5,0xdf,0x18,0xce,0x7b,0x17,0x47,0x9a,0x7d,0xbb,0xfe,
+/* 0x003f40 */ 0x0a,0xd6,0x4c,0xf1,0x31,0xbd,0x45,0x16,0xde,0xd7,0xf9,0x49,0x32,0x1a,0x24,0xdf,
+/* 0x003f50 */ 0x43,0xf5,0x08,0x96,0xb8,0x24,0x3a,0x4b,0xe3,0xf0,0x8d,0x2b,0x6c,0xd0,0x56,0x0b,
+/* 0x003f60 */ 0x7f,0x29,0xb3,0x0f,0xd9,0xe2,0xa3,0xb6,0x97,0x5d,0xf4,0x9e,0x2e,0xbd,0x8a,0x8e,
+/* 0x003f70 */ 0xc7,0x17,0x27,0x0b,0x9f,0xfa,0xc1,0x21,0xf9,0x64,0x57,0x43,0xb2,0xe0,0x80,0xf0,
+/* 0x003f80 */ 0x41,0xd3,0x71,0x12,0x5e,0x5d,0x79,0x5a,0xa8,0x55,0x5f,0x22,0x35,0xa3,0xde,0x31,
+/* 0x003f90 */ 0x2b,0xff,0x4b,0x30,0xf2,0xbf,0x9e,0x42,0x8f,0x35,0x59,0xfd,0xf3,0x8c,0xa6,0x88,
+/* 0x003fa0 */ 0xee,0x56,0x7c,0x26,0xfe,0x04,0x29,0xd3,0xbb,0xbe,0x4c,0xab,0x41,0x42,0x53,0x01,
+/* 0x003fb0 */ 0xbd,0x09,0x65,0x23,0xf1,0xaf,0x96,0x5e,0x11,0xee,0x44,0x4f,0x46,0x01,0xba,0x46,
+/* 0x003fc0 */ 0x69,0x21,0x0e,0x99,0xf6,0x0f,0x36,0xe2,0x1c,0xec,0xf8,0x4b,0x79,0xc6,0x3f,0x7f,
+/* 0x003fd0 */ 0x70,0x93,0x0a,0x7b,0xdc,0x83,0xca,0x02,0xdd,0xad,0xfa,0xcf,0xe0,0x8d,0x88,0x66,
+/* 0x003fe0 */ 0x84,0xf9,0x61,0x67,0x54,0x4a,0xd5,0x8a,0x36,0x7c,0x73,0xe7,0x8f,0xd0,0x5d,0xba,
+/* 0x003ff0 */ 0xa4,0x9a,0x58,0xaf,0x2d,0xcf,0xc8,0xff,0x52,0x67,0xdb,0xce,0x0f,0x13,0xa4,0x3c,
+/* 0x004000 */ 0xea,0x41,0x47,0x86,0x60,0xb6,0x2b,0x17,0x25,0xc2,0xca,0x35,0x33,0x70,0x3d,0x98,
+/* 0x004010 */ 0xd7,0xa1,0x2a,0x7a,0x45,0x1c,0x2f,0xd3,0x17,0xd2,0xa3,0x45,0x85,0x9d,0x28,0x06,
+/* 0x004020 */ 0x5d,0xf0,0x49,0x98,0xfc,0x57,0xea,0xfe,0xe5,0x73,0xe8,0xbc,0xf2,0x5c,0xe2,0x2b,
+/* 0x004030 */ 0xd4,0x8d,0x3f,0x86,0xbf,0x3b,0x72,0xfb,0x88,0x7b,0x1a,0x9d,0x44,0x55,0x63,0x5e,
+/* 0x004040 */ 0xea,0x70,0x9e,0x44,0x7e,0xe2,0x4e,0x08,0x95,0xe8,0x94,0xd8,0xa7,0x7b,0x0d,0x7f,
+/* 0x004050 */ 0x1e,0xf9,0x12,0xc5,0xc6,0xdf,0xa5,0xd9,0xf9,0xaf,0xcb,0xf9,0x75,0xc3,0x0f,0x3d,
+/* 0x004060 */ 0x56,0x46,0x93,0x47,0x58,0xb4,0x21,0x87,0x78,0x5b,0xfb,0x68,0xe1,0x94,0xfc,0x07,
+/* 0x004070 */ 0xda,0xc5,0x67,0x84,0x41,0xf4,0xae,0x1a,0xd1,0xab,0x13,0x33,0xd9,0x4f,0x29,0xbe,
+/* 0x004080 */ 0x54,0xfe,0x17,0x9a,0x96,0x2c,0x38,0x30,0x8d,0x6a,0x7a,0x01,0x2f,0x7b,0x5d,0x27,
+/* 0x004090 */ 0x50,0xcd,0x11,0x6f,0xdc,0x17,0x64,0x95,0xd2,0xdd,0x13,0x42,0xbc,0xf1,0x24,0xfe,
+/* 0x0040a0 */ 0x1e,0x81,0xf5,0xb0,0x5e,0x3c,0x41,0x23,0x82,0x2e,0x0b,0xf5,0x32,0x2f,0x96,0x08,
+/* 0x0040b0 */ 0xfe,0x21,0x7f,0x4e,0xe7,0x5a,0xb3,0x12,0x02,0x2d,0x09,0x7e,0xb3,0x16,0xb8,0xb1,
+/* 0x0040c0 */ 0x63,0xcd,0x8c,0x63,0xa2,0x5f,0x97,0x4e,0xf9,0xeb,0x59,0x14,0xae,0x6f,0x02,0xff,
+/* 0x0040d0 */ 0x91,0x74,0xa3,0x9a,0xa5,0xd2,0x6e,0xff,0xcf,0x51,0x2f,0xbd,0xd2,0xab,0x3e,0x46,
+/* 0x0040e0 */ 0xbd,0xca,0x20,0xad,0x91,0x98,0x34,0xf3,0xbf,0xd6,0x4a,0x56,0xb0,0xe2,0xf3,0xc4,
+/* 0x0040f0 */ 0x8f,0x24,0xad,0xa8,0x0a,0xba,0xb7,0x47,0x97,0xb6,0x51,0x67,0xdb,0x45,0xcb,0x2f,
+/* 0x004100 */ 0x14,0x8d,0x8a,0xdd,0x28,0x88,0x61,0x67,0xbc,0x09,0x75,0xf1,0xab,0xc1,0x58,0x66,
+/* 0x004110 */ 0x90,0xb2,0x28,0x01,0x78,0xd9,0xc4,0x5f,0xa2,0x35,0x5e,0xcf,0x2b,0xdf,0x50,0x56,
+/* 0x004120 */ 0xb5,0xe3,0x95,0x72,0x4c,0xf1,0xeb,0xcd,0x45,0x79,0x05,0x88,0x5e,0x33,0xfa,0xc5,
+/* 0x004130 */ 0x30,0x3a,0x2a,0x0a,0xe5,0xe5,0xde,0x45,0xb0,0xae,0x3e,0xae,0x21,0x65,0xa8,0x39,
+/* 0x004140 */ 0xe4,0x66,0x3f,0x45,0x99,0x6b,0x63,0xff,0x22,0x3b,0x38,0xfe,0xf2,0xd0,0x92,0x08,
+/* 0x004150 */ 0x93,0x4a,0x58,0xf6,0xee,0x12,0x2a,0xd5,0x76,0x57,0x58,0x0f,0x3e,0x8c,0x97,0xb0,
+/* 0x004160 */ 0x29,0xe3,0x3d,0x2f,0x1c,0xd5,0x8e,0x4b,0x91,0xa2,0xaf,0xff,0x50,0x98,0xaf,0x83,
+/* 0x004170 */ 0x23,0xfd,0x4a,0x30,0xc1,0x72,0xdf,0x22,0xb4,0x66,0x75,0xd2,0xe0,0xbf,0x3e,0x77,
+/* 0x004180 */ 0x90,0x56,0xc9,0xe0,0xfe,0xe1,0x84,0x7c,0xa3,0xbb,0xe5,0x88,0x30,0x89,0xcf,0xa9,
+/* 0x004190 */ 0x87,0x07,0xb6,0xfe,0x76,0x19,0xbf,0xe1,0x77,0xeb,0xc5,0xb2,0x09,0xf1,0x13,0xd7,
+/* 0x0041a0 */ 0xb7,0x89,0xef,0x4d,0x61,0x08,0x5c,0x7d,0xf0,0x0f,0x0d,0x57,0x1f,0xd9,0xf3,0xbf,
+/* 0x0041b0 */ 0x9c,0xf7,0x2f,0x73,0xb6,0xeb,0x13,0x74,0x8b,0x5e,0xe0,0xe0,0xbf,0xfe,0x60,0xf2,
+/* 0x0041c0 */ 0x5f,0x1f,0xa4,0x9d,0x78,0x4c,0xd8,0xeb,0x6f,0x54,0x39,0x28,0x2d,0x40,0x17,0x7a,
+/* 0x0041d0 */ 0xd9,0x84,0x64,0xd3,0xd0,0x1c,0xb1,0x0c,0x22,0xcc,0xe0,0xbf,0x0c,0xfc,0x85,0xb6,
+/* 0x0041e0 */ 0x38,0x31,0x2c,0xbf,0x86,0x5e,0x2e,0x1f,0xcc,0x01,0x6f,0xd3,0xf3,0x61,0xad,0xf8,
+/* 0x0041f0 */ 0xc3,0x8c,0x94,0x40,0x44,0x85,0x6f,0xa4,0xa1,0xec,0xb4,0x1c,0xb1,0x0c,0xfe,0xeb,
+/* 0x004200 */ 0x41,0x3b,0x7f,0x41,0x03,0x7d,0x0b,0xa9,0x6f,0x7c,0x00,0xd5,0xa6,0xc1,0xe4,0xd7,
+/* 0x004210 */ 0x4d,0xfe,0xeb,0xbd,0xb4,0xa3,0x0f,0x3d,0x55,0x7f,0x23,0x1d,0x02,0x73,0x06,0xf3,
+/* 0x004220 */ 0x33,0x9e,0x4b,0x18,0xf8,0xab,0x35,0xb3,0xfe,0x21,0x8b,0x82,0xab,0xe5,0x79,0x9a,
+/* 0x004230 */ 0xe6,0x92,0x9b,0x11,0xe3,0x9a,0xce,0x7f,0x65,0xab,0x7f,0x38,0x8d,0xf6,0x4d,0xdc,
+/* 0x004240 */ 0xa2,0x3b,0xf9,0xaf,0xee,0x5c,0x07,0x14,0xb9,0xef,0xff,0x42,0xec,0xfc,0xf0,0x88,
+/* 0x004250 */ 0x93,0xff,0x4a,0x1f,0x26,0x4b,0x30,0xe2,0x0f,0x27,0xb2,0xd4,0x3f,0xa4,0xc2,0xfc,
+/* 0x004260 */ 0xa4,0x9d,0xff,0x3a,0x91,0x51,0x0e,0xc2,0xc6,0xcb,0xb0,0xf7,0x69,0x96,0xbc,0xb4,
+/* 0x004270 */ 0xc8,0x3c,0xe0,0x2f,0xcc,0x28,0xad,0x41,0x0e,0xc4,0x5c,0xa1,0x01,0x07,0xff,0x85,
+/* 0x004280 */ 0xfe,0x98,0x93,0xff,0xe2,0xfb,0x97,0x9e,0xe5,0x7c,0x83,0x92,0x5c,0xff,0x44,0x8b,
+/* 0x004290 */ 0x63,0x58,0x8c,0xd8,0x39,0xb3,0x57,0xa7,0x4d,0x6e,0xcb,0x32,0x36,0xf0,0x57,0x40,
+/* 0x0042a0 */ 0x4c,0x1b,0x2f,0x18,0xa6,0xdd,0xe4,0xf5,0x35,0x91,0xd3,0x39,0x8f,0xb3,0x9c,0xf1,
+/* 0x0042b0 */ 0xc6,0x26,0xfe,0x8a,0x3b,0xcf,0xfd,0x06,0x40,0x18,0xd6,0x60,0x5b,0x3f,0x65,0x3f,
+/* 0x0042c0 */ 0xdc,0x7b,0xc3,0x1e,0x48,0xff,0x4d,0x27,0xff,0xc5,0xbf,0xe7,0x74,0xfe,0x8b,0xe6,
+/* 0x0042d0 */ 0x76,0xfd,0x54,0xdd,0xf8,0xe0,0x82,0xb1,0xb9,0xf6,0x5e,0x55,0x6d,0x36,0x0b,0xce,
+/* 0x0042e0 */ 0xda,0xfb,0xd9,0x8a,0x3f,0xcc,0xc2,0x7f,0x09,0x0e,0x96,0x53,0xf8,0xd4,0xf3,0xc3,
+/* 0x0042f0 */ 0x5c,0xf9,0x5f,0x85,0xb4,0x46,0xd9,0x31,0x2e,0x64,0xb2,0x5d,0xbc,0xb2,0xb4,0x83,
+/* 0x004300 */ 0xff,0xca,0x79,0xff,0x17,0x15,0x54,0x9b,0xa6,0x85,0x46,0x24,0xe6,0xe6,0xbf,0x3e,
+/* 0x004310 */ 0x2d,0xff,0x6b,0x40,0x0f,0x19,0x44,0x18,0xd7,0x0c,0x66,0x24,0xce,0xd8,0xf8,0xaf,
+/* 0x004320 */ 0xdc,0xf9,0x5f,0x78,0x93,0xfe,0x5c,0x73,0x81,0x83,0xbf,0x78,0x35,0x17,0xa3,0x31,
+/* 0x004330 */ 0x96,0xbb,0xfe,0xe1,0x20,0x0d,0x3f,0x6b,0x92,0xd2,0x32,0xcb,0x72,0x3c,0xe7,0x84,
+/* 0x004340 */ 0xc1,0x7f,0xa1,0x6c,0xf5,0x0f,0x3b,0x00,0x64,0x05,0xec,0x1a,0xfc,0x70,0xba,0x4d,
+/* 0x004350 */ 0x06,0xff,0x65,0xd6,0xdf,0x60,0xd4,0x0f,0xaf,0x7f,0xa8,0x0d,0x29,0x61,0x49,0xb2,
+/* 0x004360 */ 0xf7,0xaa,0x96,0x9e,0xc8,0x63,0x09,0x6f,0xf3,0xfd,0xeb,0xb1,0xef,0x67,0xe9,0x67,
+/* 0x004370 */ 0x92,0x93,0x85,0xc9,0x14,0xde,0xce,0x5d,0xff,0x90,0xe6,0x7f,0x2d,0xa6,0x82,0x8d,
+/* 0x004380 */ 0xb2,0x49,0x8d,0x97,0x58,0xe7,0x68,0x7a,0x29,0x6b,0xfd,0x0d,0x1b,0x10,0xf3,0x90,
+/* 0x004390 */ 0xeb,0x6c,0x9a,0xd3,0x19,0x36,0x69,0xfc,0x57,0xe6,0xfd,0x5f,0x79,0xf4,0xb6,0xe5,
+/* 0x0043a0 */ 0x80,0xfa,0xa8,0x9c,0xd7,0x99,0x6a,0xb2,0x72,0xc4,0x76,0x72,0x22,0xac,0x33,0x33,
+/* 0x0043b0 */ 0xff,0x2b,0x7d,0x28,0x1b,0x47,0x5d,0x8f,0xa0,0x7b,0xd3,0x46,0xf9,0x91,0x9c,0xbc,
+/* 0x0043c0 */ 0xe7,0xa7,0xdc,0xff,0x85,0x1f,0x41,0x75,0x4b,0x73,0xf5,0x0f,0xb2,0xf5,0x0f,0xfd,
+/* 0x0043d0 */ 0x0e,0x8d,0x78,0x3f,0x47,0xfc,0xa1,0x39,0x0b,0xd2,0x2b,0x2b,0x0e,0xe6,0xe6,0xbf,
+/* 0x0043e0 */ 0x8e,0xf0,0x75,0x63,0x8d,0xac,0xc9,0x99,0x73,0x70,0xc8,0xba,0xa4,0xdb,0xd4,0x8c,
+/* 0x0043f0 */ 0xe5,0xfa,0x7e,0x4c,0xfe,0xeb,0xc1,0xb4,0x94,0xae,0x15,0xfc,0x6e,0xe5,0x6a,0x6d,
+/* 0x004400 */ 0x85,0x83,0xed,0xb2,0x25,0x82,0xd5,0x39,0xf3,0xbf,0xd8,0xe7,0x4c,0xf9,0xaf,0x6c,
+/* 0x004410 */ 0x87,0xe7,0xad,0xe5,0xc9,0x7c,0x87,0x26,0xe7,0xfe,0x75,0x2c,0x3b,0xff,0xc5,0x04,
+/* 0x004420 */ 0xf2,0x63,0x54,0x79,0xc4,0x63,0x80,0x2c,0xaa,0x19,0xb6,0x27,0x82,0x2d,0x70,0xf2,
+/* 0x004430 */ 0x5f,0xfc,0x7e,0x46,0xa5,0x2b,0xb3,0xfe,0xe1,0x89,0xd8,0xaf,0xc9,0x12,0xcd,0xa6,
+/* 0x004440 */ 0x81,0xd5,0xf8,0x4f,0xb9,0x88,0x30,0x93,0xff,0xba,0x21,0xc3,0x4f,0x10,0xde,0x57,
+/* 0x004450 */ 0xc7,0x5c,0xb9,0x69,0x14,0x68,0xb2,0x87,0x64,0x1c,0x31,0xce,0x9f,0x1f,0x4c,0xbf,
+/* 0x004460 */ 0xe4,0x8b,0xd6,0xc7,0x1e,0x8e,0xff,0xd3,0xa8,0xdd,0x3f,0x3c,0x04,0x6e,0xe1,0x62,
+/* 0x004470 */ 0xcb,0xc6,0x56,0x7f,0xc3,0x3a,0x9f,0xdf,0x9d,0x5e,0xbf,0xd7,0x47,0xab,0xf5,0xd2,
+/* 0x004480 */ 0x6a,0x51,0xd2,0xb7,0x52,0x1a,0xb3,0x6c,0x94,0x90,0xb9,0x7f,0xbd,0x9b,0xaa,0xbf,
+/* 0x004490 */ 0x91,0xc9,0x6d,0x6d,0x44,0x6b,0x5d,0x76,0x22,0x6c,0x18,0x3d,0x99,0xea,0xde,0x05,
+/* 0x0044a0 */ 0xfa,0x0a,0xdb,0xd5,0xcc,0x06,0xff,0xb5,0x3a,0xe3,0xfe,0x65,0x10,0x5c,0x84,0xc7,
+/* 0x0044b0 */ 0xc6,0xa7,0x34,0x66,0xdc,0x4e,0xe6,0x66,0x77,0x3a,0x4b,0xfd,0x0d,0x83,0xf6,0x9a,
+/* 0x0044c0 */ 0xc6,0xc7,0x61,0x0e,0x06,0x4d,0xd2,0xc4,0xc3,0xdd,0xc2,0x3a,0x4e,0xa3,0x1c,0x48,
+/* 0x0044d0 */ 0xf3,0x0f,0xad,0xf8,0xc3,0xdd,0x99,0x6c,0x97,0x78,0x81,0xc7,0x82,0x7e,0x16,0xfe,
+/* 0x0044e0 */ 0x2b,0x69,0xd6,0xdf,0xc8,0xf4,0x5b,0x28,0x0c,0xac,0xd1,0x0a,0x3e,0x23,0xff,0xc5,
+/* 0x0044f0 */ 0xe3,0x0f,0x1f,0xcc,0x56,0x1f,0x5b,0xec,0x02,0x14,0x99,0x83,0xae,0x7a,0x2f,0x07,
+/* 0x004500 */ 0xff,0x35,0x23,0xf3,0x39,0xc3,0x68,0x07,0xf2,0x2f,0xff,0x74,0xfa,0x2c,0xf5,0x1c,
+/* 0x004510 */ 0xa3,0xfe,0x61,0xd6,0x79,0x1a,0x87,0xc1,0xcc,0x41,0x53,0x3e,0x9e,0xe6,0x81,0x18,
+/* 0x004520 */ 0x7c,0x37,0x29,0x58,0x2b,0xa5,0x77,0xdd,0x34,0x78,0xef,0xeb,0x50,0x81,0x6d,0x04,
+/* 0x004530 */ 0x3f,0xa5,0x9f,0x75,0x6c,0xf0,0x5f,0xd9,0xfa,0x90,0x86,0x89,0x7d,0x36,0xfe,0xcb,
+/* 0x004540 */ 0x19,0x7f,0xb8,0x98,0x83,0xac,0xe3,0x94,0x3d,0xe9,0x13,0x6e,0xd8,0x75,0xd5,0x5f,
+/* 0x004550 */ 0xaf,0x31,0xe2,0xf2,0x24,0xbd,0xe4,0x6b,0x42,0x38,0x8f,0x3e,0x50,0x16,0x46,0x01,
+/* 0x004560 */ 0x29,0x9c,0x43,0x2c,0xa2,0x75,0x48,0x08,0xa1,0x37,0x50,0x0d,0xf2,0xc2,0x9f,0x68,
+/* 0x004570 */ 0xd6,0xdf,0x18,0x97,0x2d,0x90,0x75,0x12,0x7f,0x51,0x2f,0x78,0xb6,0xb8,0x12,0xf5,
+/* 0x004580 */ 0xb5,0xb2,0xb2,0xf3,0xbf,0x00,0xd8,0xe5,0x47,0x81,0x04,0x7e,0x53,0x3c,0xd9,0x5c,
+/* 0x004590 */ 0xa1,0xd2,0xfa,0x87,0xe2,0xcf,0xf4,0xd2,0x01,0x89,0x00,0xe0,0x8d,0xd1,0xfa,0xbd,
+/* 0x0045a0 */ 0x3b,0xb0,0x79,0xff,0x32,0xc3,0x5f,0x3c,0x66,0x89,0x1e,0xa7,0xeb,0x5d,0x8a,0x9b,
+/* 0x0045b0 */ 0xf1,0x8c,0x64,0x45,0x08,0x6d,0xc1,0xdd,0xd0,0xe1,0xdd,0x21,0x98,0x44,0x8f,0x47,
+/* 0x0045c0 */ 0x2b,0x96,0xf3,0x78,0x6c,0x55,0xd1,0xf3,0x15,0xac,0xa1,0x6d,0x94,0xb2,0x41,0x56,
+/* 0x0045d0 */ 0xfd,0xc3,0x59,0xe3,0xae,0x14,0xc8,0xc2,0x6f,0x83,0x4d,0x6c,0x2d,0xc5,0x7a,0x9a,
+/* 0x0045e0 */ 0x51,0xe5,0xb2,0x47,0x91,0x12,0x79,0x49,0xe5,0x51,0x54,0xb1,0xb4,0x2b,0x51,0x34,
+/* 0x0045f0 */ 0xce,0x6e,0x04,0x93,0x02,0xb1,0x5d,0xca,0x66,0x7a,0x10,0x1d,0x37,0xeb,0xcf,0xbb,
+/* 0x004600 */ 0x66,0xd8,0x62,0x0b,0x8f,0x03,0xcc,0x59,0xf9,0xcf,0x65,0x0a,0xba,0x4c,0x22,0xda,
+/* 0x004610 */ 0x56,0x7a,0xc2,0x70,0x34,0x19,0x6e,0xab,0x9e,0x10,0x5e,0x84,0xcf,0xaf,0x44,0x0d,
+/* 0x004620 */ 0x4e,0x00,0x34,0xfb,0x1e,0xf4,0xcf,0x57,0xb6,0x08,0x3b,0xa4,0xd7,0x93,0x7d,0xc9,
+/* 0x004630 */ 0x60,0xbf,0x75,0xff,0xf2,0xac,0x83,0xa2,0xd1,0xf3,0xc3,0xe8,0x4f,0xae,0xc5,0x34,
+/* 0x004640 */ 0xbc,0xf3,0x20,0xbf,0xdb,0x2b,0x04,0xab,0xcd,0x15,0x75,0x89,0x0a,0x4d,0x9f,0xa4,
+/* 0x004650 */ 0x72,0xc4,0xfe,0x07,0x2d,0x53,0xa9,0x2f,0xbb,0x1f,0x35,0xc4,0x61,0x41,0xdb,0x9f,
+/* 0x004660 */ 0x35,0xff,0xeb,0x78,0x5e,0x44,0x5f,0x19,0xf7,0x04,0xd1,0x51,0xc2,0xee,0x93,0x0a,
+/* 0x004670 */ 0xba,0x26,0x5b,0xc3,0x6d,0x95,0xf4,0x30,0xe4,0x3d,0x54,0xa4,0x7b,0x01,0x9a,0x49,
+/* 0x004680 */ 0xd7,0x70,0x48,0x07,0x57,0xf6,0x5f,0xd1,0x85,0x68,0x48,0x0f,0x86,0x3c,0xa9,0xfb,
+/* 0x004690 */ 0xbf,0x64,0x0b,0x64,0xfd,0x81,0x9e,0x8a,0x00,0xc6,0xc7,0xdd,0x47,0xfc,0xa8,0x60,
+/* 0x0046a0 */ 0xc2,0x5d,0x8f,0xf6,0x74,0x82,0x83,0x37,0x91,0xf7,0x16,0xda,0x0a,0xf8,0xb4,0x60,
+/* 0x0046b0 */ 0x02,0x8f,0xc3,0x0e,0x52,0x7b,0x51,0xd2,0xe8,0x91,0x45,0xd4,0xff,0x66,0x41,0xc2,
+/* 0x0046c0 */ 0xac,0xbf,0xa1,0xb3,0xfa,0x51,0x6b,0xe9,0x61,0xd1,0xb0,0xab,0x43,0xac,0x1a,0x60,
+/* 0x0046d0 */ 0xc7,0x86,0xb1,0x66,0x85,0x48,0x21,0x70,0xfa,0xfa,0x88,0x42,0xbe,0x1c,0xf2,0x1f,
+/* 0x0046e0 */ 0x25,0x4f,0xa3,0x35,0xb0,0xb2,0x15,0xc1,0xd6,0xe6,0x52,0x92,0xee,0xd9,0x31,0xf0,
+/* 0x0046f0 */ 0x37,0x88,0xd6,0x2b,0x29,0x66,0xfd,0x0d,0x47,0xfd,0xf9,0x1f,0xc7,0x2b,0x47,0x01,
+/* 0x004700 */ 0x17,0xdc,0xa9,0x6e,0x00,0x97,0xf9,0xe8,0x77,0xf1,0x3c,0xe9,0x39,0x52,0xba,0x4b,
+/* 0x004710 */ 0xfa,0x2e,0x3e,0x05,0xf8,0xeb,0x8b,0xab,0x69,0xa4,0x9c,0xcc,0xa0,0xd9,0xd7,0xf0,
+/* 0x004720 */ 0x75,0xf0,0x53,0xa5,0x1a,0x68,0x4a,0x0c,0xfe,0x8b,0xd5,0x3f,0x0c,0xea,0x05,0x14,
+/* 0x004730 */ 0x52,0x75,0x90,0xc8,0xa8,0xf7,0xf9,0x32,0xaf,0xfa,0x02,0x0a,0xf5,0x7a,0x17,0x0b,
+/* 0x004740 */ 0x74,0x0a,0x87,0x3b,0x0b,0x16,0x03,0x58,0x7b,0x4f,0x5b,0xd4,0xe4,0xa5,0xf9,0x5f,
+/* 0x004750 */ 0x7b,0xb5,0xd0,0x91,0xc2,0xb9,0x42,0x27,0xfc,0x54,0x58,0x0f,0x2a,0xa9,0xfa,0x1b,
+/* 0x004760 */ 0xa9,0x75,0x4c,0x99,0x92,0x23,0xc3,0xbe,0x0f,0x79,0x6d,0xc3,0x4e,0xdf,0x87,0x1d,
+/* 0x004770 */ 0xd3,0xea,0x27,0xe8,0x30,0x08,0xb0,0xb9,0x5c,0x93,0xe7,0x35,0x71,0x0d,0x25,0xcb,
+/* 0x004780 */ 0xbe,0x45,0x53,0x2f,0xe5,0x86,0xc1,0xea,0x0f,0xb3,0xe0,0xaf,0xf7,0xd1,0x7b,0xd1,
+/* 0x004790 */ 0xbe,0x63,0xde,0x84,0xc7,0x8f,0x8e,0xa0,0x04,0x01,0xa1,0x4a,0x3d,0x82,0xc2,0xa8,
+/* 0x0047a0 */ 0x60,0xbf,0x10,0x40,0xc7,0x95,0xb0,0xea,0x0d,0x95,0x05,0xf1,0xc9,0xd2,0xf0,0x90,
+/* 0x0047b0 */ 0x0f,0xc6,0xd4,0xc5,0xa8,0xcc,0x83,0x1d,0x46,0xfd,0xc3,0xa8,0x9c,0xda,0x77,0xd4,
+/* 0x0047c0 */ 0x7d,0xb2,0x32,0x52,0x40,0x73,0xbb,0x36,0xa0,0x52,0xe2,0x5d,0x07,0x42,0x27,0x2a,
+/* 0x0047d0 */ 0xd5,0xbb,0xd6,0x09,0x32,0xde,0xd8,0x5a,0x36,0x20,0xad,0xbb,0xfb,0x06,0xf4,0xbb,
+/* 0x0047e0 */ 0xbf,0x2e,0x3d,0xe5,0x69,0xc5,0x37,0x90,0xbd,0xd0,0x04,0x7b,0x53,0x91,0x85,0xbf,
+/* 0x0047f0 */ 0x66,0x99,0xfd,0x4c,0x73,0xe8,0xe8,0xd5,0xd5,0x85,0xca,0xcf,0x78,0x1f,0x16,0x92,
+/* 0x004800 */ 0x07,0xe9,0x35,0x37,0xeb,0xf1,0x5c,0xe8,0xe7,0xf9,0x34,0x85,0x7c,0x1e,0xf4,0x61,
+/* 0x004810 */ 0xe9,0x98,0x67,0x15,0x9e,0xa7,0xef,0x8b,0x69,0x94,0x23,0x53,0x4c,0xfe,0xcb,0xb6,
+/* 0x004820 */ 0x25,0x1d,0xc0,0x51,0xfd,0x91,0x45,0xd8,0x87,0x1e,0x45,0x0a,0xcd,0xf7,0xf4,0xa2,
+/* 0x004830 */ 0xf6,0x56,0xff,0xe9,0x40,0x08,0xab,0xf4,0xde,0xb7,0x41,0x96,0xd2,0x6e,0xe4,0x69,
+/* 0x004840 */ 0xd2,0x21,0xf0,0x8f,0xc2,0x73,0xc2,0x59,0xf1,0x57,0x98,0x48,0xef,0x08,0x8b,0xe1,
+/* 0x004850 */ 0x13,0x58,0xd8,0x5b,0xa0,0x09,0x01,0x40,0x0f,0x35,0xf1,0xa0,0x26,0xdc,0x06,0x88,
+/* 0x004860 */ 0xac,0x96,0x04,0xd9,0xfd,0xcb,0x62,0x98,0x5e,0x1f,0x5f,0x47,0x2e,0xab,0xe1,0x78,
+/* 0x004870 */ 0x70,0xb7,0xa7,0x2e,0x3b,0xfe,0x72,0x71,0x2f,0x0e,0xb3,0xdc,0x2e,0x5a,0x69,0xed,
+/* 0x004880 */ 0x10,0x2d,0x44,0xbf,0x93,0x25,0x82,0xf1,0x26,0x0e,0xcd,0xde,0x44,0x93,0x25,0x60,
+/* 0x004890 */ 0xd3,0x9e,0xa3,0xfe,0x46,0x78,0xa9,0x57,0x2e,0xa6,0x45,0xe6,0xc3,0xea,0x96,0x78,
+/* 0x0048a0 */ 0x31,0xab,0xde,0xd0,0x5a,0x10,0x2f,0x1b,0x55,0x06,0x5c,0x30,0x5e,0xb2,0x40,0xeb,
+/* 0x0048b0 */ 0xc6,0xd3,0x44,0x30,0x7a,0x23,0x18,0x0e,0x37,0x79,0x2d,0xfc,0x75,0xc4,0x89,0xbf,
+/* 0x0048c0 */ 0x7a,0xd4,0x9f,0xc7,0x8b,0x00,0x49,0x61,0x3f,0xac,0x2d,0xc2,0x6a,0xb4,0x47,0xa9,
+/* 0x0048d0 */ 0xa5,0x8b,0xcc,0x8b,0x78,0x13,0xfc,0xf8,0x72,0x1a,0x3f,0xd6,0xae,0x3e,0xad,0x06,
+/* 0x0048e0 */ 0x1e,0xc3,0x37,0xa3,0x3d,0xaa,0x3f,0x9a,0x23,0xff,0x8b,0xe6,0x64,0x75,0xc5,0x71,
+/* 0x0048f0 */ 0xb9,0x8b,0x56,0x9b,0xcf,0xa7,0x55,0xeb,0xf7,0xcb,0xec,0x22,0xb0,0xb7,0xd0,0x26,
+/* 0x004900 */ 0xf6,0x64,0x5c,0x8e,0x9e,0x42,0xbb,0x9a,0xf2,0x67,0x51,0x1e,0x44,0x2d,0x6b,0xad,
+/* 0x004910 */ 0x18,0xb1,0xf1,0x5f,0x6a,0x0a,0x17,0xc8,0x4a,0x93,0x9b,0xa5,0x7d,0xc9,0x4f,0xa8,
+/* 0x004920 */ 0x0b,0xe8,0xfd,0x5f,0xfb,0x11,0x00,0x31,0xca,0x76,0xb5,0x07,0xca,0x55,0x77,0x51,
+/* 0x004930 */ 0xac,0x53,0xea,0x08,0x04,0xff,0x3e,0xbf,0x04,0x8b,0xff,0xb2,0x3f,0x50,0xba,0x3c,
+/* 0x004940 */ 0x70,0x47,0xcc,0xc0,0x5f,0x93,0x05,0x77,0xa5,0x40,0xd6,0xc4,0x1a,0xff,0xf5,0xde,
+/* 0x004950 */ 0x0d,0x3d,0xf4,0xb6,0xaf,0x5a,0x54,0xb0,0x21,0x46,0xaf,0x5d,0x0e,0x77,0xd1,0x6b,
+/* 0x004960 */ 0xbf,0xc0,0xa3,0x86,0x15,0x29,0x36,0x53,0x41,0x94,0xff,0x2a,0x40,0x82,0x42,0x26,
+/* 0x004970 */ 0x95,0x3e,0xc9,0x7b,0xc4,0x96,0xff,0x65,0xa3,0x48,0x94,0x43,0xcd,0xbe,0x75,0xf4,
+/* 0x004980 */ 0xfe,0xe5,0xd2,0xc5,0x7a,0x61,0x11,0xcd,0x4f,0x41,0x0d,0xcb,0x7d,0x45,0x1d,0xaf,
+/* 0x004990 */ 0x88,0x1f,0x56,0x34,0xd0,0xfc,0xaf,0x41,0xed,0x12,0x7a,0x7e,0x79,0xe1,0xa9,0x8e,
+/* 0x0049a0 */ 0x8b,0x34,0x11,0x6c,0xb9,0x0d,0x7f,0xcd,0x79,0xcb,0x0e,0x22,0xe2,0x6a,0x50,0x86,
+/* 0x0049b0 */ 0xde,0xa0,0xf9,0x5f,0xbe,0xd9,0xc2,0x4d,0xe4,0x45,0x54,0xf3,0xf2,0xf7,0x5f,0x9d,
+/* 0x0049c0 */ 0x79,0x11,0x0d,0xa0,0x90,0xba,0x85,0xde,0xec,0xfc,0xbe,0xf4,0x4f,0x94,0x08,0xfb,
+/* 0x0049d0 */ 0x06,0xad,0xb7,0xcc,0xf8,0x2f,0x6c,0xd6,0xdf,0x90,0x6c,0xb0,0xcb,0x8f,0xba,0x08,
+/* 0x0049e0 */ 0x7e,0x13,0xf5,0x06,0x2a,0x50,0xfe,0x43,0xfe,0x9d,0x54,0xe3,0xf5,0x6e,0xa2,0x4d,
+/* 0x0049f0 */ 0x72,0x85,0xbb,0x80,0x32,0xaa,0x5d,0x6a,0xd5,0x22,0x69,0x33,0x2e,0x55,0xfb,0xb5,
+/* 0x004a00 */ 0x9e,0x9f,0xc3,0x46,0x76,0x02,0x99,0xf8,0x8b,0x98,0xfd,0xec,0x9d,0x45,0xb7,0x24,
+/* 0x004a10 */ 0x86,0xb6,0x60,0xda,0x74,0x5f,0x87,0x45,0x75,0x93,0x88,0xd6,0x04,0x64,0xff,0x28,
+/* 0x004a20 */ 0x7a,0x38,0xa0,0x34,0x4b,0xb3,0x19,0xfe,0x0a,0x7e,0x2d,0x5f,0x8e,0x01,0x3a,0x96,
+/* 0x004a30 */ 0x14,0x1b,0xff,0x55,0x32,0x6b,0x97,0xcb,0x06,0xb2,0xfc,0xfc,0xda,0xaf,0xa7,0xf4,
+/* 0x004a40 */ 0x0a,0x18,0x77,0x7f,0x39,0xda,0xe4,0xea,0x61,0xf9,0x5f,0xe8,0x11,0x57,0x05,0x13,
+/* 0x004a50 */ 0xc4,0x4d,0xae,0x2a,0x35,0x5f,0x5e,0x5e,0x2e,0xee,0xe7,0xc6,0x26,0xfe,0xb2,0xc7,
+/* 0x004a60 */ 0x0d,0xfe,0x06,0xde,0xc7,0xbb,0x7d,0xd9,0xa8,0x72,0x14,0x3e,0x63,0x4a,0x72,0xe1,
+/* 0x004a70 */ 0xa3,0x2a,0xbd,0xd8,0x0e,0x5e,0xe3,0x55,0x44,0x19,0x31,0x81,0xe6,0x91,0x55,0xa9,
+/* 0x004a80 */ 0x95,0x71,0x57,0x39,0xb9,0x24,0xd7,0xb4,0x06,0xe3,0xc2,0x58,0x67,0x3a,0xff,0x45,
+/* 0x004a90 */ 0xcb,0x6e,0xd0,0x22,0x87,0xc2,0x9f,0xa8,0x66,0x75,0x01,0x83,0x5d,0xf1,0xc8,0x1d,
+/* 0x004aa0 */ 0x85,0x46,0x45,0x0e,0x5a,0x02,0x85,0x55,0xaa,0x69,0x2c,0x7c,0xe4,0x05,0x1a,0xbb,
+/* 0x004ab0 */ 0x5b,0xaf,0xa6,0xf2,0xbf,0x2a,0x52,0xfc,0x97,0xce,0x72,0x03,0xb7,0x74,0xd2,0xb2,
+/* 0x004ac0 */ 0x87,0x31,0x7e,0x5b,0x81,0x3c,0x44,0x22,0xe8,0x76,0x52,0xac,0xad,0x9e,0x70,0x31,
+/* 0x004ad0 */ 0xda,0x4b,0x41,0xa7,0x5d,0x21,0xce,0x7f,0xe9,0xa8,0xcf,0x7e,0xff,0x97,0x68,0xe2,
+/* 0x004ae0 */ 0x2f,0xa1,0x17,0x9d,0x13,0xcb,0x08,0xbd,0xe4,0x4b,0x3c,0x44,0x8b,0x1c,0x26,0x71,
+/* 0x004af0 */ 0xa0,0x68,0x83,0x54,0xd6,0x1b,0x78,0x57,0x78,0x1e,0x1d,0x02,0x8f,0x51,0xa2,0xf5,
+/* 0x004b00 */ 0x0f,0x1f,0x42,0x65,0xc4,0x9d,0x04,0xfc,0xf5,0x06,0x2a,0xeb,0x94,0x52,0xf5,0x0f,
+/* 0x004b10 */ 0x3b,0x1d,0xe7,0x87,0x8a,0xde,0x15,0x62,0x31,0x30,0x2c,0x67,0x1f,0x36,0x32,0x54,
+/* 0x004b20 */ 0xb5,0x14,0xfc,0xf0,0x5f,0xd3,0x55,0x4b,0x2f,0x31,0xd6,0xb1,0x11,0xea,0x78,0x94,
+/* 0x004b30 */ 0x74,0x20,0x58,0x2a,0x2d,0xfc,0xa5,0x20,0xab,0xd4,0xc3,0x4f,0x25,0x7a,0x77,0xb0,
+/* 0x004b40 */ 0xb4,0xbe,0xf1,0x06,0xf5,0x59,0xaa,0xf9,0x36,0xf6,0xba,0x36,0xa0,0x9d,0x4b,0x59,
+/* 0x004b50 */ 0x12,0xee,0xbe,0x50,0xd9,0x50,0xc9,0x7a,0x7c,0x83,0xbe,0xb1,0xab,0x54,0x75,0x47,
+/* 0x004b60 */ 0xe9,0x66,0x87,0x4a,0x47,0x02,0x56,0xfe,0x97,0x22,0xdd,0x49,0x0c,0x24,0x75,0x06,
+/* 0x004b70 */ 0x5d,0x98,0x58,0x38,0xe9,0x5d,0xcf,0xd2,0xbe,0x2a,0xa9,0x66,0x1e,0x7a,0x89,0x34,
+/* 0x004b80 */ 0x68,0x55,0xeb,0x85,0x57,0x40,0xb3,0xf0,0xc3,0xae,0xf5,0x42,0x04,0x9d,0xea,0x0c,
+/* 0x004b90 */ 0x25,0xbd,0xcd,0xc2,0x09,0xf4,0x6b,0x52,0x93,0x0c,0xae,0x17,0xde,0xe5,0x7e,0xa6,
+/* 0x004ba0 */ 0x74,0xe3,0x41,0x93,0xff,0xa2,0x55,0xc2,0xaa,0x8e,0xcd,0x7c,0x06,0xbc,0x8d,0xef,
+/* 0x004bb0 */ 0x9a,0x45,0x36,0x2e,0xa3,0x43,0x34,0xee,0x42,0xa3,0x25,0x5e,0xf5,0xea,0x90,0x60,
+/* 0x004bc0 */ 0x50,0x2d,0xf4,0x8e,0xb0,0x0b,0x2e,0x96,0xd4,0x60,0xe0,0x2f,0xfd,0x87,0x57,0x03,
+/* 0x004bd0 */ 0x36,0xfc,0x25,0x8c,0x7a,0x7f,0xd5,0x11,0x91,0x4e,0x10,0xf8,0xa5,0xfb,0x85,0xab,
+/* 0x004be0 */ 0xf8,0x24,0x69,0xb8,0x0b,0xdc,0xc2,0x26,0xfd,0xf8,0xb6,0x9a,0x31,0xaa,0x41,0x17,
+/* 0x004bf0 */ 0xe2,0x35,0x49,0xdf,0x1a,0x56,0x88,0xa3,0x21,0xea,0xbd,0x64,0x9e,0xcf,0x8f,0x7d,
+/* 0x004c00 */ 0xce,0x8e,0x9b,0x60,0xdf,0x29,0xb8,0x14,0xab,0x87,0x6f,0xaa,0x34,0xe9,0x5d,0x04,
+/* 0x004c10 */ 0x9a,0x07,0xa5,0xea,0x26,0x69,0x8f,0xf0,0x57,0x3a,0x6c,0x37,0xc7,0xa4,0x45,0x02,
+/* 0x004c20 */ 0x0d,0xdd,0xdc,0xe9,0xf2,0x28,0x6e,0x86,0x6a,0x9b,0xa5,0x36,0xf3,0x9c,0xed,0x6b,
+/* 0x004c30 */ 0x4e,0xfc,0x55,0xaa,0x0f,0xb5,0xf9,0xd9,0x3e,0x38,0x94,0x6f,0x30,0x8f,0x18,0xfa,
+/* 0x004c40 */ 0xf9,0x66,0x40,0x64,0x65,0xc3,0x25,0x54,0x73,0x48,0x2e,0xd5,0x3d,0x3a,0x2d,0xc4,
+/* 0x004c50 */ 0x21,0x55,0xea,0xcd,0x6d,0x45,0xaf,0x98,0xf5,0xe7,0xc7,0xed,0xe3,0xae,0xe9,0xf9,
+/* 0x004c60 */ 0xb0,0x7f,0x11,0xcd,0x18,0x5c,0x14,0x23,0xc1,0x3e,0x89,0xef,0x5f,0x38,0x19,0xa0,
+/* 0x004c70 */ 0xf8,0x2b,0x2c,0x2a,0xc4,0x83,0x70,0x01,0x0f,0x56,0xbc,0x19,0x6f,0xe6,0xeb,0x7c,
+/* 0x004c80 */ 0x72,0xce,0x74,0xca,0x1f,0xbb,0x86,0xca,0xe8,0x71,0x7a,0x03,0xcd,0xf6,0x1a,0x29,
+/* 0x004c90 */ 0xa0,0x07,0xb6,0xc7,0x48,0x55,0xe2,0x86,0x84,0x50,0x85,0x4f,0xa2,0x1f,0x50,0xda,
+/* 0x004ca0 */ 0x6b,0x1a,0x9c,0xe6,0x90,0xee,0x8b,0xaf,0xf8,0x26,0xba,0xd0,0xf9,0x80,0x0e,0x18,
+/* 0x004cb0 */ 0xcd,0xf8,0xbb,0x88,0xcb,0x81,0x97,0xeb,0xf5,0x16,0xea,0xc0,0x5c,0x96,0x23,0x47,
+/* 0x004cc0 */ 0xcc,0x4c,0x7f,0x3a,0x5e,0xef,0xd9,0x31,0x5a,0xc3,0x52,0xdf,0x69,0x61,0x58,0xbe,
+/* 0x004cd0 */ 0xa4,0xb2,0x73,0x63,0x83,0xff,0x1a,0x00,0xfc,0xc5,0xaa,0x73,0xf3,0x1c,0x16,0x70,
+/* 0x004ce0 */ 0x21,0x26,0x56,0xd4,0xa3,0x17,0xd5,0x1a,0x5a,0x76,0x23,0x08,0x9f,0xc0,0x42,0x02,
+/* 0x004cf0 */ 0x5f,0xd4,0x22,0x68,0xaa,0x81,0xa6,0x32,0xea,0x82,0xd6,0xb4,0xaf,0xd4,0x97,0xd5,
+/* 0x004d00 */ 0x2b,0x27,0xe3,0x54,0xd3,0xd1,0x9a,0xaa,0x7f,0x68,0x3b,0x7b,0xaf,0x05,0xff,0x10,
+/* 0x004d10 */ 0x3e,0xfe,0x87,0xf4,0x1e,0x5a,0x96,0x2d,0x08,0xee,0x4b,0xad,0x26,0x4d,0xe2,0x9f,
+/* 0x004d20 */ 0xa3,0x03,0x79,0xe0,0x1f,0xb2,0x1a,0x02,0xed,0x5f,0xdc,0x56,0xa0,0x6f,0x0e,0xa2,
+/* 0x004d30 */ 0x2d,0xd1,0xb2,0x64,0x73,0x22,0x55,0x7f,0xc3,0xf1,0x1c,0xc6,0x6d,0x05,0xd1,0x0e,
+/* 0x004d40 */ 0xd5,0x6f,0x04,0x9b,0x11,0xbf,0x26,0x6d,0xc3,0xdf,0x30,0x9b,0xe8,0xb5,0x5f,0x20,
+/* 0x004d50 */ 0x60,0x68,0xea,0x46,0x7e,0xbf,0x94,0xaa,0x7f,0x08,0xce,0x64,0xea,0x74,0x37,0x54,
+/* 0x004d60 */ 0x3e,0xb4,0xb9,0x06,0x7b,0x45,0x98,0x83,0xc3,0xd7,0xd3,0x7c,0x73,0xd8,0xbf,0x92,
+/* 0x004d70 */ 0xd2,0xec,0x3c,0xbd,0x73,0xaf,0x37,0xa0,0x6f,0x02,0x1b,0x75,0x4f,0x28,0x80,0x3e,
+/* 0x004d80 */ 0x87,0xb0,0x57,0x6a,0x87,0xc1,0x0d,0x58,0xf7,0x7f,0x11,0x69,0x2d,0xb6,0x72,0x73,
+/* 0x004d90 */ 0xa0,0x13,0xde,0xf0,0x9e,0xdf,0x16,0x04,0x3c,0x11,0xd6,0x7d,0x7b,0xbb,0x83,0xe8,
+/* 0x004da0 */ 0x79,0xbc,0x8e,0x04,0xb7,0x0b,0xab,0xc9,0x01,0x39,0xac,0xaf,0x7c,0x8e,0xf6,0x7c,
+/* 0x004db0 */ 0x20,0x4c,0xbc,0x9d,0x42,0x10,0x33,0x70,0x94,0x98,0x69,0xd4,0x3f,0x4c,0x7e,0xce,
+/* 0x004dc0 */ 0xe2,0x19,0xe1,0x03,0x88,0xce,0x33,0x6f,0x23,0x6a,0x38,0xcd,0x04,0xe3,0xd2,0xde,
+/* 0x004dd0 */ 0x84,0xfa,0x49,0xe9,0x12,0xbd,0xe5,0xc2,0xc6,0x69,0x34,0x5d,0xda,0x40,0xb6,0x1e,
+/* 0x004de0 */ 0xa1,0x02,0xa6,0xf5,0x01,0xca,0x76,0x64,0xbf,0x7f,0x39,0x09,0x0f,0x6c,0x93,0x7e,
+/* 0x004df0 */ 0x99,0xd2,0x2c,0x4e,0x3a,0xe3,0x7b,0x73,0xf0,0x5f,0x24,0x83,0xff,0x9a,0xc4,0x0a,
+/* 0x004e00 */ 0xbf,0xf6,0xcb,0xc1,0x76,0x4d,0x65,0x68,0x9c,0xfc,0x97,0xa3,0xfe,0x86,0x21,0x60,
+/* 0x004e10 */ 0x5a,0xce,0x5a,0x67,0x7c,0xca,0xe3,0x16,0x23,0x96,0xeb,0x3c,0x2a,0xc7,0xfd,0xcb,
+/* 0x004e20 */ 0xac,0x04,0x4a,0x16,0x36,0x27,0xb3,0x36,0x8b,0x93,0xff,0x4a,0xbb,0x7f,0x99,0x0a,
+/* 0x004e30 */ 0x9e,0x75,0xec,0x92,0x65,0x1f,0x0f,0x12,0xab,0xe3,0x19,0x61,0x56,0xa1,0x9b,0x74,
+/* 0x004e40 */ 0xe2,0xc9,0x56,0x7f,0xc3,0x09,0x81,0xdb,0x84,0x09,0xec,0xd0,0x78,0x3e,0x15,0x2f,
+/* 0x004e50 */ 0xe7,0xb8,0x7f,0x99,0x0a,0x51,0xfb,0x0d,0x65,0x75,0x7a,0x56,0xd8,0x9e,0xc1,0x7f,
+/* 0x004e60 */ 0xcd,0x70,0xc6,0xe5,0xd2,0x69,0xa5,0x7c,0xda,0x71,0xc4,0xd4,0x67,0xe4,0xbf,0xdc,
+/* 0x004e70 */ 0x74,0xd5,0x32,0x34,0x2b,0x33,0xa2,0x70,0x33,0xe3,0x72,0xb3,0xd5,0xdf,0x60,0xd5,
+/* 0x004e80 */ 0x0e,0x17,0xe1,0xa2,0x4c,0x46,0xcc,0x95,0x8d,0x23,0x4b,0xe3,0xbf,0x1c,0x94,0xd6,
+/* 0x004e90 */ 0x60,0x61,0x48,0x50,0x55,0x07,0xc9,0xe5,0xc9,0x46,0x7b,0xa5,0xf3,0x5f,0x8e,0xfa,
+/* 0x004ea0 */ 0xf3,0x53,0xb4,0x24,0xd4,0x45,0x56,0xaf,0x32,0x73,0x74,0x22,0x5c,0x48,0x2f,0x86,
+/* 0x004eb0 */ 0x93,0xe3,0xfe,0x65,0x7a,0x29,0xdb,0x44,0x6a,0x98,0x72,0xd2,0x94,0xe9,0xfc,0x57,
+/* 0x004ec0 */ 0xe6,0xfd,0x5f,0xbc,0xc8,0xe1,0x67,0x8e,0x7b,0xcf,0x71,0xff,0x72,0xd2,0xf3,0x3d,
+/* 0x004ed0 */ 0x40,0xb5,0xfb,0xc8,0x02,0xaa,0xc9,0xbc,0x1a,0x2c,0x53,0xc8,0x71,0xff,0x72,0x0e,
+/* 0x004ee0 */ 0x21,0xff,0x3f,0xcd,0x7f,0xd1,0x90,0x42,0x5a,0xb4,0x93,0x6b,0xde,0xcd,0x92,0x1a,
+/* 0x004ef0 */ 0x16,0xf9,0x6c,0xfc,0x17,0xa2,0xd8,0xca,0x79,0x78,0x5e,0xfc,0xff,0x83,0xff,0x2a,
+/* 0x004f00 */ 0x8c,0x67,0x29,0x13,0xf7,0x29,0x42,0xee,0xfa,0x87,0xee,0xcc,0xb2,0x75,0x9f,0x9a,
+/* 0x004f10 */ 0xff,0x95,0x3d,0xfe,0xd0,0x1d,0xa7,0x75,0x3c,0x3e,0xfb,0x73,0xb2,0xc6,0x1f,0x1a,
+/* 0x004f20 */ 0xc5,0xf7,0xd4,0xf6,0x5c,0x6c,0x57,0x6e,0xfe,0xcb,0x79,0xff,0x72,0x04,0x15,0xc6,
+/* 0x004f30 */ 0x3a,0x4a,0x7b,0x72,0xb2,0x5d,0x99,0x42,0x96,0xfa,0x1b,0x56,0x00,0x61,0x46,0xd1,
+/* 0x004f40 */ 0xbc,0xff,0x98,0xff,0x2a,0xc9,0xc2,0xef,0xdc,0xf4,0x19,0x7e,0xdc,0x12,0x52,0xf5,
+/* 0x004f50 */ 0x0f,0xa5,0x74,0x4a,0x6b,0x81,0x9a,0xa6,0xc9,0x92,0xf6,0x95,0x59,0xff,0x30,0xa3,
+/* 0x004f60 */ 0xeb,0xdc,0x69,0x95,0xff,0xd3,0xbb,0x37,0x90,0xd6,0xcf,0x46,0x5d,0x11,0x1b,0xfe,
+/* 0x004f70 */ 0x32,0xf8,0xaf,0x4c,0x26,0xf4,0x53,0x72,0xc4,0x4c,0xfc,0x95,0x85,0x1f,0xfc,0xc2,
+/* 0x004f80 */ 0x7f,0xa6,0x7f,0x72,0xdc,0xbf,0x6c,0xf2,0x95,0x4e,0x4d,0x8e,0x1c,0x31,0x1b,0xfe,
+/* 0x004f90 */ 0x72,0xc4,0x1f,0x1a,0xf3,0xb4,0x14,0xff,0x27,0xbe,0x1f,0x13,0x7f,0xcd,0xc9,0x2c,
+/* 0x004fa0 */ 0x69,0x18,0x48,0x2b,0x7b,0xf8,0xa9,0x42,0xf6,0xfa,0x1b,0x41,0x7e,0x46,0x64,0x79,
+/* 0x004fb0 */ 0x7a,0x39,0x69,0xaf,0x74,0xfe,0x2b,0xcb,0xfd,0xcb,0xee,0x79,0x6a,0x7a,0xd9,0xc3,
+/* 0x004fc0 */ 0xcc,0x72,0x7c,0xff,0x41,0xfd,0x43,0x10,0x16,0x09,0x11,0xc9,0x2a,0x7b,0x98,0x93,
+/* 0x004fd0 */ 0xf6,0xca,0xa8,0x7f,0x58,0x90,0x85,0xff,0xfa,0x0c,0x34,0x4a,0x8a,0xff,0x32,0xea,
+/* 0x004fe0 */ 0x6f,0x7c,0x69,0xba,0x2b,0x9d,0xff,0x6a,0x40,0x27,0xd3,0x34,0x0f,0x64,0x4b,0x04,
+/* 0x004ff0 */ 0xe3,0x42,0xb6,0xfa,0x1b,0x86,0x50,0xcf,0xd9,0xae,0x6c,0xd9,0x5e,0x19,0x82,0xad,
+/* 0x005000 */ 0xfe,0x86,0x9a,0x6e,0x73,0x43,0x46,0x79,0xc9,0xff,0x38,0xff,0x4b,0xc9,0xb2,0x7f,
+/* 0x005010 */ 0xf9,0x72,0x67,0xa9,0x67,0x0a,0xd9,0xef,0x5f,0xa6,0x82,0x2b,0xe2,0xcf,0x99,0x7d,
+/* 0x005020 */ 0x9f,0x99,0x58,0x94,0xaa,0xbf,0x91,0xc6,0x7f,0x85,0x3c,0xff,0xa9,0xfc,0xaf,0x1c,
+/* 0x005030 */ 0xf7,0x2f,0xd3,0xa6,0x1b,0x94,0x93,0x59,0xbd,0xca,0xac,0x0e,0xa7,0xa3,0xfe,0x86,
+/* 0x005040 */ 0xd3,0xe5,0xdb,0x9d,0xc5,0x5b,0x76,0xb8,0x85,0xbe,0xcf,0xc6,0x7f,0x05,0x73,0x47,
+/* 0x005050 */ 0x55,0x65,0xe3,0xbf,0x8c,0xfd,0x2b,0x93,0xff,0xda,0x62,0x9f,0x9e,0x6b,0xb3,0x4c,
+/* 0x005060 */ 0xd8,0x15,0x76,0xfe,0x2b,0x55,0x7f,0x23,0xbd,0xeb,0xea,0xed,0x97,0x7c,0x19,0x4d,
+/* 0x005070 */ 0x07,0x72,0xf5,0xb3,0x59,0x7f,0xa3,0xe0,0xb3,0x90,0x5c,0x69,0x42,0xa1,0x4d,0xf3,
+/* 0x005080 */ 0x4e,0x16,0xfc,0x35,0x15,0x58,0x38,0xec,0x7d,0x93,0xe6,0xeb,0xc5,0xcd,0x69,0x15,
+/* 0x005090 */ 0xba,0x75,0x10,0xf0,0xf2,0x24,0xcc,0xb8,0x7a,0x9d,0xa5,0x5e,0x02,0x5e,0xa6,0x57,
+/* 0x0050a0 */ 0xb1,0x87,0xa4,0x17,0x11,0x2b,0x8d,0x98,0x0d,0x7f,0x3d,0xaf,0xf8,0x87,0x90,0xe6,
+/* 0x0050b0 */ 0x3e,0x24,0x1f,0xc0,0x55,0x67,0xa9,0x46,0xfa,0x20,0x54,0x31,0x04,0x60,0x76,0x0c,
+/* 0x0050c0 */ 0x77,0x2b,0xd5,0x13,0x6e,0x5a,0x9a,0x63,0x3f,0xa5,0xbd,0xa6,0x61,0x2c,0x7e,0x2e,
+/* 0x0050d0 */ 0xf6,0xe8,0xcd,0xd9,0xf1,0xd7,0x9e,0x40,0x72,0xd1,0x6d,0x2e,0x9a,0x67,0x57,0xca,
+/* 0x0050e0 */ 0x2e,0x78,0x85,0xa5,0x52,0x61,0x81,0xd9,0x43,0xa8,0x43,0x0a,0x0e,0xb2,0x93,0x8a,
+/* 0x0050f0 */ 0x04,0x2a,0x77,0x7d,0x79,0x21,0xa6,0x91,0xaf,0xac,0x29,0x2b,0xfe,0xca,0x07,0x4c,
+/* 0x005100 */ 0x4d,0xb0,0xed,0x4b,0xa0,0x61,0x87,0x0a,0xbc,0x0f,0xfb,0x12,0xdc,0x2c,0x07,0x8a,
+/* 0x005110 */ 0x94,0xf7,0xe4,0x27,0x70,0x15,0x8d,0x01,0xa6,0x48,0x3c,0x2b,0xfe,0x52,0xc3,0xa3,
+/* 0x005120 */ 0xde,0x9f,0x0b,0x41,0x9a,0xc4,0x4d,0x13,0x82,0x60,0x28,0xf1,0xb7,0x07,0xbc,0x09,
+/* 0x005130 */ 0x81,0x5e,0x23,0x1e,0x81,0x9f,0x02,0x20,0x36,0xa5,0xd5,0x2a,0x05,0x13,0x9e,0x30,
+/* 0x005140 */ 0x7a,0x59,0x0b,0xeb,0xc1,0xec,0xf8,0xeb,0x2a,0x85,0xc0,0x67,0xe9,0x58,0x48,0x5c,
+/* 0x005150 */ 0x23,0x7d,0xc0,0xab,0x6d,0x98,0x69,0x5f,0xf4,0xec,0x82,0xd2,0x77,0xe0,0xc6,0xe3,
+/* 0x005160 */ 0x6b,0x4b,0x73,0xe2,0xaf,0x0b,0x28,0x4c,0xcb,0xf6,0xee,0x16,0x2f,0xd1,0xb2,0x2d,
+/* 0x005170 */ 0x5c,0x03,0x4d,0xb4,0xf0,0x29,0xbc,0xcf,0xa0,0x97,0x6a,0x2e,0x51,0xbe,0x20,0x71,
+/* 0x005180 */ 0x4f,0x0f,0xf8,0x90,0x61,0x27,0xfe,0xb2,0xf5,0x4f,0x97,0x5f,0xf7,0x12,0x3c,0xcd,
+/* 0x005190 */ 0x4e,0x21,0x0a,0x8d,0x42,0x1c,0xba,0x67,0x47,0x07,0xbd,0x60,0xba,0x32,0x69,0x44,
+/* 0x0051a0 */ 0x24,0xf6,0x10,0xcf,0xa2,0x18,0xdd,0xe3,0xca,0x72,0xe2,0x2f,0x52,0xae,0x2f,0xd0,
+/* 0x0051b0 */ 0xe8,0xc0,0xa1,0x72,0xbd,0x98,0x7f,0xfc,0x55,0xb4,0xec,0x7c,0x90,0xae,0x6c,0x49,
+/* 0x0051c0 */ 0x36,0x5e,0x7b,0x28,0x65,0x1c,0xc1,0x84,0xd7,0x0e,0xcd,0x8e,0xbf,0xf6,0x91,0xf9,
+/* 0x0051d0 */ 0xa3,0xd2,0x1a,0x4a,0xd0,0x90,0xf9,0xb6,0xe2,0xe7,0x93,0xf8,0x4e,0xf2,0xe3,0x78,
+/* 0x0051e0 */ 0xa5,0xce,0x22,0x12,0x7f,0xf5,0x7c,0xa9,0xb2,0x62,0xbd,0x7f,0x1e,0xd9,0xc2,0x0b,
+/* 0x0051f0 */ 0xd1,0xdb,0xf0,0xd7,0x5e,0x13,0x52,0xed,0x27,0xcf,0xe8,0xc1,0x0a,0xe1,0xa1,0xae,
+/* 0x005200 */ 0x4b,0x5a,0xf9,0x18,0xc0,0xae,0x13,0xc4,0x00,0x59,0x37,0x49,0x2f,0x68,0xf5,0xe3,
+/* 0x005210 */ 0x5b,0x28,0xff,0x35,0xa5,0x85,0x68,0xfe,0x57,0x8c,0xe8,0xf4,0x60,0x2a,0x2b,0xfe,
+/* 0x005220 */ 0x6a,0xfa,0x27,0xb4,0x78,0xa0,0x6a,0x80,0x0e,0xae,0x7c,0x3d,0x3d,0x1b,0x34,0x2e,
+/* 0x005230 */ 0xf9,0xa2,0x3c,0xe3,0x94,0x1c,0x39,0x41,0xaf,0x75,0x50,0x2f,0xc9,0xd5,0x83,0xbe,
+/* 0x005240 */ 0x7e,0xe1,0x0c,0x8b,0xba,0xcd,0x8a,0xbf,0x4e,0x50,0x7e,0x39,0x19,0x4c,0xfc,0xcf,
+/* 0x005250 */ 0x4a,0x32,0x80,0x42,0xf4,0xfe,0x2f,0xd0,0xc4,0x8d,0x6a,0x2d,0xef,0x91,0xd0,0x29,
+/* 0x005260 */ 0x6f,0xbf,0x50,0x48,0x87,0x09,0xad,0x4c,0x94,0x4e,0xa0,0x21,0x3e,0xa6,0xd9,0xf0,
+/* 0x005270 */ 0xd7,0x46,0xa4,0xe9,0x52,0x14,0xdf,0xa0,0xff,0x4e,0x64,0xdc,0xd6,0x19,0xb4,0x55,
+/* 0x005280 */ 0x5e,0xc0,0x2b,0x72,0x6c,0x45,0xa5,0x43,0xac,0xfe,0x21,0x08,0x48,0xfa,0x0e,0x3e,
+/* 0x005290 */ 0xcd,0xa8,0xb1,0x1c,0xf8,0x8b,0xdd,0xf6,0xb5,0x1e,0x3f,0xa4,0x7e,0x9f,0x0b,0x80,
+/* 0x0052a0 */ 0x7c,0x35,0xc6,0x76,0x5d,0x45,0x4f,0x92,0x32,0xaa,0x99,0xc7,0x6d,0xee,0xc3,0xa7,
+/* 0x0052b0 */ 0x70,0x27,0xef,0xe7,0x2c,0xf8,0x4b,0xea,0x70,0xc1,0x94,0x11,0x8b,0xb6,0x30,0x92,
+/* 0x0052c0 */ 0x4b,0xe2,0x28,0x3b,0x00,0xdf,0x4f,0xde,0x07,0x7a,0x07,0x32,0x32,0x29,0xba,0xf9,
+/* 0x0052d0 */ 0x71,0xf1,0x51,0xa5,0x8b,0x8f,0x7b,0x1a,0xfe,0xa2,0x45,0xe6,0xf1,0x09,0xa5,0x86,
+/* 0x0052e0 */ 0x78,0xcf,0x2e,0xeb,0x45,0x27,0xe8,0xb5,0x68,0x14,0x64,0xbd,0x86,0xe1,0xeb,0xfd,
+/* 0x0052f0 */ 0x39,0x7c,0xfc,0xef,0xba,0xd8,0x8d,0x60,0x01,0x74,0x42,0xab,0xe9,0x05,0x61,0x4a,
+/* 0x005300 */ 0x39,0xd1,0x1a,0xfe,0x14,0xfc,0x25,0xfb,0x88,0xcb,0x86,0x14,0xc6,0x52,0xf5,0x37,
+/* 0x005310 */ 0xea,0x0d,0x9b,0xf6,0x43,0xe8,0x64,0x67,0xd9,0x59,0x31,0x37,0xfe,0x12,0x3f,0x8c,
+/* 0x005320 */ 0x87,0x69,0xea,0x8a,0x08,0x83,0xb2,0xce,0xac,0x57,0x50,0x4f,0xb3,0xbd,0x38,0x22,
+/* 0x005330 */ 0xe3,0x11,0x89,0x5a,0x58,0x0d,0xee,0x60,0xe4,0x4b,0x38,0x27,0xfe,0x52,0x7b,0xbe,
+/* 0x005340 */ 0xe3,0x89,0xfb,0x77,0xa1,0x4d,0xba,0xad,0x38,0xa1,0x9b,0x16,0x00,0x07,0x24,0xd5,
+/* 0x005350 */ 0xc6,0x23,0x09,0x89,0x5f,0x95,0x4e,0xe1,0x41,0x62,0xdc,0xe4,0x95,0x1d,0x7f,0xf9,
+/* 0x005360 */ 0xa9,0x8b,0x5e,0x8e,0xda,0xed,0xc5,0xc6,0x25,0xca,0xac,0x6d,0x72,0x55,0xad,0xca,
+/* 0x005370 */ 0x37,0x39,0x32,0x69,0x9b,0x51,0xeb,0x3e,0x07,0xfe,0xda,0x2b,0x2b,0x5f,0xf2,0xcc,
+/* 0x005380 */ 0xa2,0xc9,0x47,0x71,0x5e,0xe4,0xd0,0x45,0x0b,0x71,0xb8,0x01,0x91,0x15,0x01,0x22,
+/* 0x005390 */ 0x5b,0xbe,0x80,0x95,0xe6,0xe8,0x85,0xe7,0x14,0xc5,0x06,0x7b,0xda,0x03,0x4a,0x53,
+/* 0x0053a0 */ 0x2e,0xfc,0xb5,0x26,0xfc,0x13,0xdf,0x86,0x0e,0xa5,0x67,0x48,0xed,0x61,0x1a,0x2f,
+/* 0x0053b0 */ 0x2d,0xc4,0xb1,0x85,0x78,0x14,0x1a,0x7f,0x28,0x7d,0xbf,0x93,0xd5,0xdf,0xe8,0x43,
+/* 0x0053c0 */ 0x62,0x4c,0xd0,0x89,0xae,0x84,0xe5,0x1c,0xf8,0xeb,0x23,0xa5,0xa1,0xd9,0x77,0x07,
+/* 0x0053d0 */ 0x08,0x57,0x14,0x56,0x13,0x1e,0x9a,0x02,0x2c,0xed,0x6b,0xbb,0x46,0xaf,0xfd,0x62,
+/* 0x0053e0 */ 0x8c,0xd8,0x95,0xc0,0x12,0x4a,0x7b,0x5d,0xd4,0xae,0x05,0x22,0x2b,0x7d,0xd9,0xeb,
+/* 0x0053f0 */ 0x1f,0x7e,0x84,0xaa,0x55,0x9f,0x5c,0x76,0x33,0xab,0xbf,0xd1,0x12,0x2f,0xbe,0x28,
+/* 0x005400 */ 0x5f,0x5a,0x13,0x8e,0x7a,0xe9,0x8d,0x60,0xef,0xd0,0x6c,0x2f,0x59,0xf8,0xce,0xff,
+/* 0x005410 */ 0xc7,0xd8,0xd5,0x06,0x47,0x71,0xa4,0xe7,0xde,0x99,0x45,0x8c,0xb4,0x23,0xed,0x58,
+/* 0x005420 */ 0x10,0x17,0xe5,0x10,0x3c,0xac,0x04,0xb7,0xe0,0xd5,0x4a,0x48,0x58,0x60,0x21,0x76,
+/* 0x005430 */ 0x07,0x81,0x5d,0x8a,0x50,0x0e,0x25,0x77,0x3f,0x5c,0x95,0x2b,0x4a,0xa9,0x50,0x29,
+/* 0x005440 */ 0xee,0x8a,0x73,0x11,0x7e,0x5c,0xe1,0x8f,0xc2,0x8d,0x56,0x36,0xf2,0x89,0x18,0x61,
+/* 0x005450 */ 0x73,0x65,0xee,0x4c,0x9c,0xb1,0x83,0x73,0x24,0x75,0xa9,0x48,0x08,0x83,0x84,0xef,
+/* 0x005460 */ 0x60,0xc0,0xb2,0x2d,0x83,0x6c,0xf6,0x6c,0xd7,0x15,0x77,0xe6,0xec,0x85,0x53,0x6c,
+/* 0x005470 */ 0x39,0xc8,0xdc,0x02,0x39,0x2c,0x59,0x20,0xa5,0xdf,0xee,0x9e,0xd9,0x9e,0xd9,0x59,
+/* 0x005480 */ 0x91,0x7f,0x5d,0x3d,0xa3,0x91,0xd4,0x3d,0xd3,0xfd,0x3e,0xfd,0xbc,0xcf,0xf3,0x92,
+/* 0x005490 */ 0x4b,0x35,0x46,0xf8,0x77,0xa9,0x55,0xe6,0x7b,0x66,0xed,0xd6,0x32,0x97,0xff,0xbc,
+/* 0x0054a0 */ 0x17,0x6d,0xb5,0x6b,0x50,0x08,0x8c,0xf5,0x18,0xcb,0x97,0x47,0xbb,0xa4,0x3f,0x58,
+/* 0x0054b0 */ 0x5d,0x7a,0x1c,0x29,0x4c,0xf6,0x15,0x01,0x47,0xfa,0x0a,0x7c,0x84,0x19,0xd1,0xbb,
+/* 0x0054c0 */ 0xf0,0x97,0x00,0xa9,0xba,0xb5,0xc8,0x06,0x34,0x28,0x39,0x3d,0x7a,0x1b,0x8c,0xaa,
+/* 0x0054d0 */ 0xf6,0x6a,0x31,0xb5,0x52,0xd9,0x00,0x4b,0x65,0x53,0xb1,0x46,0x1a,0xbb,0x0d,0xbd,
+/* 0x0054e0 */ 0xad,0x44,0x43,0x39,0xfe,0x4b,0x98,0xf7,0x80,0x53,0x65,0x9b,0x9b,0x1c,0xf6,0xa1,
+/* 0x0054f0 */ 0x1f,0x00,0x13,0x3a,0x6a,0x3c,0x47,0x5f,0x00,0xa9,0x52,0x1b,0x0c,0x2e,0x6d,0x0a,
+/* 0x005500 */ 0xf5,0xb4,0x6c,0x01,0x6f,0xe7,0xbc,0xfc,0x43,0x3b,0xab,0xd3,0x4c,0x3c,0x12,0x3e,
+/* 0x005510 */ 0x38,0x6f,0x4b,0xf0,0x3a,0x3a,0x99,0x63,0x78,0x95,0xdf,0x82,0x22,0x0c,0x14,0xe8,
+/* 0x005520 */ 0x94,0xb7,0xc2,0x27,0xe0,0x9d,0xff,0x07,0xf2,0x3e,0xbf,0x00,0x87,0x0f,0xbe,0xf8,
+/* 0x005530 */ 0x4b,0x4b,0xac,0x0b,0xff,0x54,0x16,0x9f,0x0c,0xf5,0x97,0x99,0x0a,0x72,0x17,0x77,
+/* 0x005540 */ 0xe4,0xa8,0x6c,0x68,0xde,0xd4,0x23,0x77,0x62,0xae,0xa6,0xf4,0xf7,0x3f,0xac,0x87,
+/* 0x005550 */ 0xaf,0x52,0xcf,0xb3,0x9d,0xb7,0x68,0x0f,0xe5,0xbf,0xe0,0x5b,0x06,0x69,0x18,0xf0,
+/* 0x005560 */ 0x5f,0x22,0xfe,0x12,0xfd,0xe7,0xa7,0x51,0xc5,0x6b,0x40,0x7b,0x05,0x9e,0xd7,0xe3,
+/* 0x005570 */ 0xb8,0xcc,0x06,0x59,0x65,0x66,0x39,0xe4,0x1f,0x56,0xf7,0x34,0x83,0xff,0xfc,0xa9,
+/* 0x005580 */ 0xe2,0x6a,0x4c,0xd6,0xcc,0x06,0x30,0x5e,0xce,0xc3,0x5f,0xdb,0xec,0x98,0xad,0xd2,
+/* 0x005590 */ 0xda,0xd8,0x2b,0xa9,0xf7,0xa4,0xb0,0x93,0x75,0x16,0xb7,0x8f,0x0d,0xe3,0xbf,0x21,
+/* 0x0055a0 */ 0xfb,0xe0,0x5e,0x12,0xe4,0x80,0x8e,0x35,0x52,0x64,0xa4,0x58,0x96,0x8e,0x1f,0xfe,
+/* 0x0055b0 */ 0xfa,0x39,0x7e,0x15,0x68,0xaf,0x45,0x0a,0xe0,0x82,0x12,0x1a,0xfc,0x53,0xfd,0x17,
+/* 0x0055c0 */ 0xba,0x6d,0xbd,0xa4,0xc5,0xa0,0x40,0xd5,0x21,0x70,0x4a,0xcf,0x28,0xdb,0xef,0x53,
+/* 0x0055d0 */ 0x83,0x7b,0x58,0xa6,0x9c,0x1f,0xfe,0x3a,0x8e,0x1f,0x34,0xc3,0x4f,0xc8,0x64,0x11,
+/* 0x0055e0 */ 0xee,0xb4,0x41,0x56,0x17,0x69,0x7c,0x8f,0x84,0x61,0x20,0x04,0x53,0x9f,0x92,0x5f,
+/* 0x0055f0 */ 0x81,0x9b,0x47,0xd5,0xd5,0xf2,0xbd,0xd2,0x5b,0xe6,0x43,0x99,0x7d,0xa2,0xff,0xbc,
+/* 0x005600 */ 0x50,0xb7,0x14,0x9d,0xc2,0xeb,0x8f,0x55,0x8c,0x20,0xee,0xad,0x41,0xb6,0xa4,0xed,
+/* 0x005610 */ 0xc9,0xcc,0xb7,0x7b,0xe4,0x71,0xe9,0x6a,0x7b,0xc2,0x28,0x85,0x48,0x66,0x12,0xc5,
+/* 0x005620 */ 0x47,0xc2,0xbd,0x21,0x72,0xe9,0xbb,0x3f,0x4a,0x87,0x3d,0xfe,0x87,0x02,0xa4,0xda,
+/* 0x005630 */ 0xf4,0x2b,0x69,0x97,0x41,0x1a,0x97,0x79,0x4f,0x5d,0x46,0x9d,0x94,0xa7,0x8d,0x0b,
+/* 0x005640 */ 0xe9,0xba,0xc3,0xe1,0x49,0x39,0x81,0xee,0xe0,0xc6,0xd1,0xd6,0x89,0x8a,0x04,0x9a,
+/* 0x005650 */ 0xb1,0xea,0x6e,0xa8,0xb3,0xe0,0xaf,0x87,0x50,0x19,0xea,0xef,0x8d,0xb1,0x74,0xc1,
+/* 0x005660 */ 0x13,0xe8,0x01,0x48,0x44,0xbc,0x86,0x53,0x52,0x40,0x0f,0x0d,0xc8,0xad,0x70,0x29,
+/* 0x005670 */ 0xa3,0x6e,0x27,0x03,0x7e,0x9a,0xc4,0x1b,0x8a,0xe0,0x3f,0x2f,0xea,0xa0,0xa1,0xee,
+/* 0x005680 */ 0xdb,0xf6,0x12,0x17,0xf2,0x25,0x1b,0x62,0x5b,0xd1,0x25,0xf4,0x92,0x1c,0x40,0x14,
+/* 0x005690 */ 0x9a,0xbd,0xa1,0x57,0x9f,0x2d,0xae,0x91,0x16,0xea,0x27,0x34,0xba,0x57,0xfa,0xe1,
+/* 0x0056a0 */ 0xaf,0xa3,0xed,0xf1,0x03,0xa1,0x07,0x25,0x57,0x84,0xbf,0x1c,0xca,0xcb,0x8e,0x4b,
+/* 0x0056b0 */ 0x2f,0x42,0xb8,0xd2,0x4b,0x22,0xcf,0xbe,0x74,0x2c,0x13,0xad,0x69,0xda,0x87,0xb9,
+/* 0x0056c0 */ 0xc7,0xd4,0xb0,0x1f,0xfe,0xb2,0x12,0x30,0x50,0x31,0xf4,0x24,0xc3,0x56,0xe3,0x34,
+/* 0x0056d0 */ 0x5b,0x0c,0xe2,0x43,0xf4,0x19,0xec,0xe6,0xc0,0x1c,0x4d,0xe1,0x44,0xa6,0x14,0x8c,
+/* 0x0056e0 */ 0x02,0x66,0x32,0xfd,0x10,0x1f,0xfa,0xe1,0xaf,0x49,0x9c,0xb0,0xf6,0x51,0xfe,0xcb,
+/* 0x0056f0 */ 0x12,0x82,0x7f,0xb2,0x01,0xd1,0x03,0x5b,0x83,0xdd,0xd3,0x9e,0x80,0xc2,0x01,0x93,
+/* 0x005700 */ 0xe8,0xa6,0x5e,0x10,0x7f,0x4d,0xa3,0xa4,0xa4,0xf6,0x9e,0x87,0x34,0x36,0xe7,0x24,
+/* 0x005710 */ 0x39,0x69,0xa9,0x97,0x68,0x46,0x62,0x12,0xab,0x90,0xe1,0x76,0x8b,0x12,0x61,0x50,
+/* 0x005720 */ 0x6a,0x0a,0xad,0x80,0x86,0x1f,0xfe,0x3a,0x89,0xe3,0x7a,0x14,0x70,0xd3,0x55,0x8b,
+/* 0x005730 */ 0xd6,0x7e,0x85,0x68,0x30,0x69,0x29,0x17,0x9b,0x6e,0xa3,0x6e,0xd2,0xdb,0x45,0xde,
+/* 0x005740 */ 0x9f,0xe0,0x49,0xf3,0x55,0x4b,0x19,0xe8,0x58,0x4b,0x0b,0x15,0x29,0x05,0xf0,0x17,
+/* 0x005750 */ 0x01,0x08,0x4a,0x6f,0x79,0x0c,0x3d,0xd7,0x4e,0xbd,0x35,0x18,0xc8,0x52,0xe0,0x81,
+/* 0x005760 */ 0x24,0x0e,0xef,0xa1,0xb2,0x2f,0xe0,0xbf,0x16,0x1c,0x91,0x96,0x1d,0x78,0x99,0x3f,
+/* 0x005770 */ 0xc7,0x07,0x7f,0xf5,0x69,0xdb,0xac,0xe6,0x95,0x52,0xe9,0xb3,0x66,0x73,0xcc,0xd6,
+/* 0x005780 */ 0x25,0x45,0x2d,0x32,0x5f,0x23,0x1d,0x29,0x2d,0xa6,0x28,0xf5,0x52,0xab,0xd2,0xa7,
+/* 0x005790 */ 0x44,0x86,0x15,0xad,0x5c,0x31,0x78,0x4c,0xe2,0xc1,0x5f,0x21,0xf6,0x5d,0x24,0xb0,
+/* 0x0057a0 */ 0x7a,0x4b,0xaa,0x32,0xcf,0x1b,0x3c,0x41,0x77,0x86,0xfc,0x3d,0x64,0x5b,0xff,0xca,
+/* 0x0057b0 */ 0x78,0xd7,0x48,0x28,0xb1,0x63,0x73,0x7f,0x68,0x4c,0xb4,0xd5,0x7d,0xac,0x82,0x47,
+/* 0x0057c0 */ 0xc7,0x67,0x88,0xce,0x97,0xcb,0xff,0xd0,0x1e,0x67,0x3d,0x89,0xa1,0x08,0x11,0xbe,
+/* 0x0057d0 */ 0x0a,0x05,0x86,0xb2,0xbc,0xc8,0xd7,0xa6,0xb4,0x3c,0xde,0x34,0x83,0x12,0x45,0x9b,
+/* 0x0057e0 */ 0x8e,0xcd,0xbd,0x8d,0xbe,0xd1,0x93,0x54,0xff,0x85,0xff,0xe8,0xce,0x3f,0x0c,0x9c,
+/* 0x0057f0 */ 0x02,0x1e,0x8d,0x7d,0x5f,0x5f,0xa3,0x3a,0xb0,0xb5,0x99,0x10,0xbf,0xb8,0x55,0x99,
+/* 0x005800 */ 0x70,0x9a,0xfc,0x8a,0xa7,0x71,0xf2,0xef,0x7c,0xcf,0x37,0x6c,0xfd,0x17,0x12,0xf0,
+/* 0x005810 */ 0xd7,0x69,0xbc,0x5c,0xe0,0xb6,0x00,0x6d,0xbd,0x09,0x6e,0xf3,0xbd,0xac,0xc7,0xf0,
+/* 0x005820 */ 0xe7,0xbf,0x8a,0x98,0xfe,0x4b,0xf4,0x55,0x23,0xbb,0x95,0xd5,0x2d,0x10,0x2b,0x6c,
+/* 0x005830 */ 0x85,0xb4,0xe1,0x6d,0xc0,0xb9,0x54,0x48,0xff,0x85,0x6d,0xff,0x79,0x2e,0xf2,0x32,
+/* 0x005840 */ 0x9d,0x37,0xa1,0x5f,0x70,0x3b,0x34,0xfc,0xf9,0x2f,0xb6,0x5f,0xec,0x26,0xcf,0xb9,
+/* 0x005850 */ 0x83,0xed,0xef,0x02,0x42,0xac,0x5e,0x79,0x0a,0x09,0x0e,0x2a,0xf5,0x56,0xf8,0x4f,
+/* 0x005860 */ 0xa9,0xd9,0xf2,0x45,0x7d,0xf0,0xd7,0x9f,0x58,0xe3,0x9a,0x07,0x26,0x4f,0xb0,0xc6,
+/* 0x005870 */ 0xe8,0x5d,0xf9,0x2f,0x83,0xff,0x8a,0x3b,0x0c,0x52,0x7d,0x69,0xbb,0x1d,0x72,0x68,
+/* 0x005880 */ 0x7f,0x19,0x7e,0xbb,0x44,0xa5,0x46,0x05,0xf9,0xaf,0x8b,0x22,0xff,0x35,0x48,0xfe,
+/* 0x005890 */ 0x8b,0x1c,0x1b,0xd8,0xcf,0x81,0xea,0xc6,0x37,0x28,0x22,0xf3,0xd6,0xa7,0x9e,0x95,
+/* 0x0058a0 */ 0xff,0x22,0xe1,0x1c,0x18,0x71,0x70,0xf9,0x2a,0xbb,0xa4,0xac,0xe6,0x07,0x14,0xbe,
+/* 0x0058b0 */ 0xc4,0x65,0x96,0xc5,0x99,0x03,0x04,0x7f,0x1d,0xb7,0x71,0xc1,0x69,0x02,0xbb,0x42,
+/* 0x0058c0 */ 0x50,0x0e,0x98,0xbb,0x1d,0x32,0x68,0xf6,0xf2,0x4e,0x69,0x33,0x02,0xb7,0x0d,0xc5,
+/* 0x0058d0 */ 0x97,0xff,0x0a,0x6a,0x2c,0x0e,0x57,0xd1,0xcd,0x36,0x8e,0xbf,0xae,0xa3,0x1a,0xa6,
+/* 0x0058e0 */ 0xff,0xa2,0x6e,0x87,0xbd,0x72,0xab,0xc1,0x8d,0x10,0x29,0xdb,0xd5,0xf9,0xbc,0x3f,
+/* 0x0058f0 */ 0xff,0x45,0x9f,0x03,0xfa,0xaf,0x69,0x7b,0x0a,0x26,0x59,0x49,0x14,0x80,0x5d,0x8c,
+/* 0x005900 */ 0xed,0x72,0xac,0x39,0x74,0xee,0x36,0x3f,0x9e,0x23,0xc2,0x6c,0xfe,0x8b,0xad,0xab,
+/* 0x005910 */ 0x2e,0xfd,0x17,0x84,0x97,0xe2,0x5c,0xc4,0x98,0xdb,0xbc,0x33,0x71,0xbe,0xe7,0x90,
+/* 0x005920 */ 0x39,0xfd,0xd7,0x71,0xa7,0x7e,0xa5,0xe2,0xaa,0xad,0x2c,0x7f,0x8f,0xb9,0x19,0xd7,
+/* 0x005930 */ 0xc0,0x40,0x15,0x3a,0xf7,0xfb,0x88,0xef,0xa7,0x80,0xbf,0x2c,0x3e,0x74,0x6f,0xb0,
+/* 0x005940 */ 0xc6,0x67,0x7c,0x0c,0x9b,0x60,0x9c,0x09,0xc8,0x7a,0x8a,0xe0,0x5c,0xd2,0x93,0x2d,
+/* 0x005950 */ 0xc0,0x33,0x72,0xfc,0xb5,0x17,0x1d,0xc5,0xce,0x77,0xea,0x9e,0xd3,0x56,0x9a,0xc9,
+/* 0x005960 */ 0xc3,0x5c,0x56,0xd0,0xb6,0xac,0xef,0xf9,0xe1,0x27,0x6c,0xbf,0x18,0x27,0xf8,0x6b,
+/* 0x005970 */ 0x1a,0x7b,0x28,0x2d,0x83,0x37,0xc0,0x64,0xfe,0x28,0x64,0x1b,0x6e,0x05,0xb7,0xf9,
+/* 0x005980 */ 0xde,0x02,0xfc,0xd7,0x76,0x2f,0xfe,0x52,0x58,0x63,0xae,0xf7,0xf0,0x5c,0x0a,0x31,
+/* 0x005990 */ 0x17,0xf4,0x02,0xfc,0x17,0x1d,0x9f,0xbd,0x04,0x7f,0x5d,0x77,0x15,0x33,0x72,0xc4,
+/* 0x0059a0 */ 0x2c,0x2f,0xc8,0x95,0x41,0xda,0xf8,0x19,0x3f,0xe7,0x57,0xfd,0xce,0xf9,0xaf,0x88,
+/* 0x0059b0 */ 0xfe,0x87,0x11,0x17,0x7f,0x91,0x4f,0x5b,0x40,0x83,0xfa,0x27,0xcc,0xc6,0x7f,0x05,
+/* 0x0059c0 */ 0x07,0xed,0xaa,0xbb,0xae,0x1f,0xff,0xf3,0xf9,0xd2,0x96,0x20,0x54,0xd6,0xa0,0xc8,
+/* 0x0059d0 */ 0x8e,0x01,0xb1,0xc2,0xfa,0x2f,0x65,0x43,0x7e,0xa9,0x29,0xd6,0xf8,0x5b,0x8a,0xb6,
+/* 0x0059e0 */ 0x34,0x5a,0x11,0x0c,0x0a,0x81,0xc5,0x37,0x94,0xf8,0xf1,0x5f,0xe7,0xe6,0xe4,0xf0,
+/* 0x0059f0 */ 0x57,0xd4,0x2e,0x9d,0x16,0xe5,0x89,0x88,0x74,0x0c,0xc1,0x36,0x9c,0x0a,0xee,0xfe,
+/* 0x005a00 */ 0x2d,0x65,0x62,0x1a,0x36,0xcf,0xc6,0x7f,0xfd,0x33,0xb8,0x14,0xf2,0xa1,0x63,0x76,
+/* 0x005a10 */ 0x85,0xec,0x43,0x23,0xe3,0x1c,0x22,0xc3,0x0b,0x5f,0xca,0x0d,0x3a,0xaa,0xc9,0x66,
+/* 0x005a20 */ 0x7f,0xfe,0x2b,0x98,0xe3,0xbf,0x14,0x27,0x8f,0x91,0x95,0x15,0x66,0xbc,0x4c,0xda,
+/* 0x005a30 */ 0xbe,0xf9,0x51,0x82,0x2f,0x0a,0x32,0x98,0x1c,0x7f,0xed,0x04,0xfc,0x65,0xd8,0xf8,
+/* 0x005a40 */ 0xab,0x0d,0x20,0x95,0x4c,0xdd,0x0e,0x03,0xa1,0x2e,0xe8,0x31,0xc9,0xa5,0x7f,0x62,
+/* 0x005a50 */ 0xfa,0x2f,0xec,0xcf,0x7f,0x15,0xe5,0xeb,0xbf,0xb8,0x87,0xff,0xdb,0xbc,0xaa,0x5a,
+/* 0x005a60 */ 0x07,0xb9,0xa4,0xd0,0xc6,0xdb,0xa8,0x20,0xf3,0xf8,0x21,0xfb,0xbe,0x16,0xcc,0x39,
+/* 0x005a70 */ 0xac,0x0c,0xea,0xf6,0x54,0xea,0x91,0x66,0xf1,0xfd,0xb1,0x8b,0x7c,0xcd,0xaa,0xff,
+/* 0x005a80 */ 0x62,0xef,0xb3,0x8b,0xff,0xba,0x4e,0x6b,0x7b,0xcd,0xfd,0xc2,0x33,0x08,0x87,0x98,
+/* 0x005a90 */ 0xfe,0xcb,0xdf,0xe1,0xb3,0x00,0xff,0x05,0x18,0xed,0x30,0xf6,0xf8,0x1f,0xa6,0x86,
+/* 0x005aa0 */ 0xf2,0x7e,0xdc,0x69,0xf0,0xef,0x6b,0x2b,0xe5,0xbf,0xea,0x5d,0xaf,0xc4,0x65,0xde,
+/* 0x005ab0 */ 0xa8,0x60,0x75,0x22,0xc2,0x9d,0x21,0x8a,0xc8,0x20,0xdb,0x30,0xff,0xfd,0x39,0x2b,
+/* 0x005ac0 */ 0xe2,0xaf,0x88,0x48,0x69,0x3d,0xc2,0x1b,0x57,0x68,0x4f,0x3d,0x2d,0xfb,0x05,0xf5,
+/* 0x005ad0 */ 0x97,0xb1,0x02,0x39,0x8a,0x05,0xf8,0xaf,0xad,0xf3,0x5b,0x83,0x62,0x50,0x21,0x9c,
+/* 0x005ae0 */ 0x99,0x37,0xf0,0xb8,0x2e,0xb4,0x56,0x52,0x03,0xb0,0xa3,0xf9,0x3a,0xad,0xd9,0xf8,
+/* 0x005af0 */ 0xcb,0x20,0x8b,0x30,0x5e,0x5c,0x90,0x7c,0xe9,0x20,0x97,0x26,0xc8,0x7a,0xb8,0x07,
+/* 0x005b00 */ 0xce,0x33,0xb7,0x4b,0xf9,0x64,0x50,0x86,0xe9,0xbf,0x8e,0x74,0x6d,0xd6,0x98,0xa5,
+/* 0x005b10 */ 0xbc,0xa8,0xf6,0x72,0x10,0xd9,0x8c,0xb9,0x8c,0x25,0x22,0xbe,0x4b,0xa2,0x2f,0xd5,
+/* 0x005b20 */ 0x8f,0xff,0xba,0xe2,0xe0,0x2f,0x1f,0x57,0xe4,0x29,0x76,0x3c,0x4b,0x76,0xab,0x68,
+/* 0x005b30 */ 0xc2,0x2a,0xe5,0x6e,0x1b,0x43,0xfe,0xfb,0x0e,0xc7,0x3b,0x2e,0xfc,0xa5,0x13,0xb4,
+/* 0x005b40 */ 0xc5,0xd4,0x5e,0xb4,0x87,0x80,0xac,0x2e,0x82,0xc8,0x98,0x11,0x7d,0x92,0x09,0xc1,
+/* 0x005b50 */ 0xf2,0xf9,0x2f,0x3a,0x5f,0x04,0x7f,0x19,0x27,0x9c,0x6d,0x4b,0x5a,0x6c,0x75,0x39,
+/* 0x005b60 */ 0x6a,0xaf,0x51,0x82,0x92,0xbe,0x26,0xdb,0x68,0xf7,0x76,0x59,0xe0,0x07,0xbf,0x10,
+/* 0x005b70 */ 0xc7,0xa7,0x8c,0xe0,0x2f,0xe6,0x27,0x8c,0xb0,0xe8,0x63,0xcf,0xa0,0xd9,0x48,0x8e,
+/* 0x005b80 */ 0x08,0xf3,0x36,0xf2,0xc7,0x59,0xc4,0x5f,0x96,0x90,0x77,0x1a,0xad,0x91,0xde,0xd7,
+/* 0x005b90 */ 0x5f,0xb4,0xf3,0x4e,0xfb,0xa5,0xad,0xf0,0x02,0xd0,0x00,0x26,0x9d,0x4f,0xac,0x80,
+/* 0x005ba0 */ 0xff,0x3c,0xe2,0xf8,0x6b,0x5c,0xd4,0x13,0xd5,0xc2,0xb1,0xea,0x57,0xb9,0xfd,0x1d,
+/* 0x005bb0 */ 0xe2,0xf9,0xf0,0xbd,0xd4,0x18,0x2d,0x99,0xa6,0xb9,0xa0,0xde,0x71,0xbe,0xea,0xe4,
+/* 0x005bc0 */ 0x1f,0x8a,0x6c,0xd7,0x2e,0x98,0x94,0x11,0x85,0xa6,0xc7,0x1c,0x23,0xa0,0xf8,0x8f,
+/* 0x005bd0 */ 0x2c,0xba,0xa0,0x3f,0x75,0x76,0xd3,0xac,0xfc,0xd7,0x2f,0xd1,0x67,0x8a,0x13,0x3a,
+/* 0x005be0 */ 0xae,0xb2,0x4a,0x99,0xfe,0x8b,0x86,0x97,0x4f,0x51,0x3c,0x48,0x1a,0xac,0x10,0x98,
+/* 0x005bf0 */ 0xea,0x17,0x67,0x0e,0xfb,0xe0,0xaf,0x7e,0x46,0x49,0xf0,0xf8,0x30,0x4d,0xcb,0x7e,
+/* 0x005c00 */ 0x45,0xe0,0x7d,0x66,0x99,0xba,0x25,0x7e,0xf1,0xe1,0x98,0x2f,0xff,0xb5,0x94,0x15,
+/* 0x005c10 */ 0x7b,0xa2,0xce,0x1e,0x7d,0xd2,0x2f,0x82,0x34,0x0e,0x3f,0x2e,0x41,0x8d,0xb0,0x02,
+/* 0x005c20 */ 0xf5,0x97,0x33,0x0c,0x37,0x29,0x48,0xf0,0x29,0x85,0xe7,0xe4,0x3e,0x46,0x1d,0xce,
+/* 0x005c30 */ 0x49,0x02,0xa6,0xc5,0xd5,0x0d,0x4b,0x73,0x71,0xa6,0x8b,0xff,0x62,0xfb,0x17,0x52,
+/* 0x005c40 */ 0xb7,0x51,0x1b,0x07,0x27,0x7a,0xa7,0xb2,0x2f,0xbb,0x47,0x01,0x7f,0x7e,0x82,0x7c,
+/* 0x005c50 */ 0x63,0x34,0x31,0x49,0x15,0x68,0x4a,0x41,0xff,0x45,0xbf,0x77,0x8f,0xfe,0xeb,0x21,
+/* 0x005c60 */ 0x21,0x09,0xca,0xf2,0x8c,0xea,0x19,0x7f,0xfd,0x57,0x50,0xd0,0x7f,0x39,0xdf,0x17,
+/* 0x005c70 */ 0xfd,0x71,0xc8,0x12,0xcc,0xd1,0xca,0x3f,0x2e,0xed,0xe5,0x3d,0xa5,0x03,0xf2,0xb4,
+/* 0x005c80 */ 0x31,0x89,0xfa,0xdb,0xc9,0x1f,0xd6,0x68,0xdc,0x21,0x98,0x5a,0xe0,0xbf,0x16,0x08,
+/* 0x005c90 */ 0x90,0xaa,0x1f,0x95,0x7d,0x18,0x7a,0x46,0xba,0xa6,0xd1,0xda,0xca,0x03,0x0c,0x9a,
+/* 0x005ca0 */ 0x5d,0xef,0x62,0x68,0x6b,0x29,0xdc,0x33,0x8e,0x06,0x94,0x88,0x41,0xa5,0x22,0x64,
+/* 0x005cb0 */ 0xbf,0xc8,0x44,0x0b,0xe4,0x1f,0xce,0x57,0x87,0x42,0xa8,0x7c,0x24,0x20,0x9c,0x50,
+/* 0x005cc0 */ 0xc5,0xb0,0x5b,0x18,0x3b,0xa0,0x93,0xe7,0x98,0x92,0x0a,0x59,0xf7,0x22,0xff,0x35,
+/* 0x005cd0 */ 0xc7,0x9d,0x7f,0x78,0x46,0x9c,0x53,0xfa,0x6a,0x65,0x90,0x78,0x69,0xfe,0xa0,0x46,
+/* 0x005ce0 */ 0x9e,0x83,0x4b,0x62,0xe0,0xed,0x2c,0xf2,0x5f,0x62,0xfc,0x3c,0x01,0x40,0x0c,0x53,
+/* 0x005cf0 */ 0x74,0x03,0x86,0x78,0xeb,0x69,0xd8,0x6c,0xce,0xb1,0xa7,0x89,0x62,0xea,0xac,0xa9,
+/* 0x005d00 */ 0xb5,0xab,0x3b,0x80,0x23,0xc3,0x74,0x06,0x6d,0xff,0x0d,0x97,0x2e,0xd2,0xe0,0xd5,
+/* 0x005d10 */ 0x01,0x84,0x49,0x59,0x8b,0xa9,0x12,0x90,0x3a,0xff,0x43,0xcf,0xed,0xdd,0xc9,0xb6,
+/* 0x005d20 */ 0x6a,0x68,0xdc,0xc1,0x8d,0x85,0xf8,0xaf,0x49,0xf8,0xde,0x71,0xee,0x1b,0xa4,0x97,
+/* 0x005d30 */ 0xce,0xfc,0x15,0x7c,0xf8,0xe7,0x83,0x8b,0xf8,0xdf,0x0c,0x47,0x94,0x26,0xe9,0x79,
+/* 0x005d40 */ 0x0f,0x4a,0x83,0x15,0xf2,0xdf,0x78,0xe0,0x4c,0x14,0x37,0x8d,0x07,0xaf,0x0a,0x26,
+/* 0x005d50 */ 0x90,0x2c,0xd1,0xd7,0x61,0x8a,0x07,0x20,0x98,0x34,0xa5,0x5f,0xa2,0x7f,0x27,0x8b,
+/* 0x005d60 */ 0x5e,0x49,0x41,0xfc,0x65,0x21,0x24,0x12,0xc4,0x7c,0xbe,0xc4,0xdc,0x5d,0xc4,0xeb,
+/* 0x005d70 */ 0x40,0x71,0xbe,0x72,0xc2,0x47,0xff,0x05,0xe9,0x70,0x4a,0xb3,0xed,0x36,0x3f,0x21,
+/* 0x005d80 */ 0x39,0x97,0x16,0x61,0xc7,0x7f,0xe3,0xb8,0xb9,0xac,0x9d,0xa6,0xcc,0xbd,0x4e,0x20,
+/* 0x005d90 */ 0x43,0x49,0x5e,0xfe,0x21,0x24,0x19,0x1a,0x37,0xcd,0xda,0xa1,0xd6,0xe2,0xf5,0x50,
+/* 0x005da0 */ 0xe4,0xab,0x71,0x8c,0x8c,0x06,0xf5,0xdf,0xc0,0xa5,0x0d,0x72,0x19,0x7a,0xcb,0x24,
+/* 0x005db0 */ 0xa3,0x0a,0xfc,0xd7,0x0d,0xbc,0xda,0x0a,0x9f,0x94,0x55,0x82,0x61,0x6b,0x2c,0xd5,
+/* 0x005dc0 */ 0x3f,0xff,0x90,0xa0,0xad,0xb3,0xe1,0xbe,0xf5,0xe3,0x1b,0x9e,0x0c,0x26,0x86,0xe8,
+/* 0x005dd0 */ 0xea,0x37,0x13,0x78,0xda,0x0a,0x5f,0x27,0xbf,0x62,0x0a,0x80,0x58,0x9f,0x3c,0x4e,
+/* 0x005de0 */ 0x90,0x1d,0x09,0xda,0x7f,0x0d,0x97,0xb4,0x82,0xf9,0x87,0xdf,0x00,0xda,0xc2,0xf2,
+/* 0x005df0 */ 0x07,0xd2,0x79,0xd4,0x98,0xb1,0xbf,0x6e,0x1c,0x5e,0x2d,0xc7,0xa5,0xb7,0xc8,0x87,
+/* 0x005e00 */ 0x1f,0x22,0x0d,0x90,0xf2,0xd1,0xa5,0x5b,0x7a,0x8f,0x31,0x98,0xbe,0xf9,0x87,0xc1,
+/* 0x005e10 */ 0xc5,0xc3,0x21,0xa3,0x9c,0xed,0x5f,0x0a,0x4f,0x6b,0x81,0x42,0x33,0x90,0xd1,0xb1,
+/* 0x005e20 */ 0x98,0xa5,0x76,0x3c,0x83,0x16,0x1b,0x74,0x27,0x7a,0x06,0x55,0x8d,0x85,0x1d,0xfe,
+/* 0x005e30 */ 0x6b,0xb7,0x2b,0xff,0xb0,0x23,0x90,0x09,0xb5,0x52,0x22,0xac,0xca,0x41,0xb5,0x97,
+/* 0x005e40 */ 0x43,0x8f,0x4b,0xbb,0x28,0xed,0x15,0xda,0x59,0xbe,0x28,0xf8,0x7a,0xd7,0x12,0x06,
+/* 0x005e50 */ 0x81,0x9f,0xc1,0xb1,0x4c,0xa1,0xfa,0x5f,0xf3,0x09,0xda,0x52,0x25,0xa6,0x56,0x26,
+/* 0x005e60 */ 0x73,0xda,0x0a,0xa5,0x99,0x3f,0xa4,0x40,0xac,0xdb,0x96,0x7d,0xbd,0x6a,0x1e,0x86,
+/* 0x005e70 */ 0x83,0x97,0x98,0xb6,0xbb,0x70,0xfe,0x21,0x14,0xf9,0x0a,0x8f,0xcb,0x63,0x0a,0x35,
+/* 0x005e80 */ 0x39,0x64,0x20,0x2b,0x09,0x97,0xb6,0xa2,0x1f,0xa3,0x5a,0xe0,0xc8,0xa2,0xe8,0x9a,
+/* 0x005e90 */ 0x51,0x8f,0xc3,0xff,0x43,0x1a,0xe7,0x14,0x7a,0x8f,0x2f,0xff,0xa5,0x24,0xb4,0x70,
+/* 0x005ea0 */ 0x87,0x4f,0xf0,0x26,0x9c,0xbd,0x1f,0x44,0x0d,0x54,0x23,0x56,0x3c,0x7b,0xfe,0x21,
+/* 0x005eb0 */ 0xc4,0x99,0x95,0x8a,0xdd,0x13,0xe0,0x3d,0x94,0x38,0x30,0xca,0xec,0xf0,0x52,0x65,
+/* 0x005ec0 */ 0x39,0x8a,0x8d,0xd0,0xf0,0xe5,0xbf,0x02,0xd4,0xd2,0x90,0xa1,0xa4,0x70,0x4f,0xce,
+/* 0x005ed0 */ 0xe4,0x70,0x14,0x7d,0x19,0x78,0xcd,0x58,0x44,0x7b,0x9a,0x63,0x4c,0xc0,0xc5,0x19,
+/* 0x005ee0 */ 0x8d,0x8c,0xbf,0xff,0xc6,0x06,0xca,0x7f,0xb9,0x7b,0xa0,0x22,0x33,0x60,0x3d,0xee,
+/* 0x005ef0 */ 0x48,0xff,0x98,0xc3,0x88,0x51,0x1d,0x90,0x5f,0xfe,0xa1,0x16,0xfb,0x36,0xe5,0xbf,
+/* 0x005f00 */ 0xa0,0xc7,0x46,0x5b,0x2d,0x14,0x20,0x70,0xc8,0xb0,0x01,0xf5,0x45,0xb7,0x19,0xd1,
+/* 0x005f10 */ 0xf2,0x8e,0xca,0x8e,0xdd,0x5a,0x0c,0x3c,0x3a,0xfc,0xfc,0xe7,0x07,0xb6,0x26,0x16,
+/* 0x005f20 */ 0x00,0xff,0x95,0x73,0x44,0x1c,0x00,0x78,0xdb,0xc1,0xcb,0x7e,0xfd,0x0b,0xf4,0x64,
+/* 0x005f30 */ 0x75,0x02,0xc4,0x3a,0x20,0xa2,0x36,0x0a,0xd5,0xff,0x42,0x5f,0x57,0x26,0x9a,0xc3,
+/* 0x005f40 */ 0x1f,0xce,0x1b,0x55,0x1e,0xcf,0x8d,0x7c,0xd2,0xe0,0x52,0x23,0x9a,0x02,0x3a,0x6a,
+/* 0x005f50 */ 0xde,0x89,0x26,0x9b,0xc2,0x7f,0xb3,0xfb,0xe1,0x23,0xf4,0x10,0xc3,0xdf,0x7f,0xe3,
+/* 0x005f60 */ 0x3a,0xc8,0xbe,0x7a,0x2a,0x56,0x06,0xe0,0xc7,0xcb,0x98,0xb3,0x62,0x92,0xd6,0x55,
+/* 0x005f70 */ 0x64,0x10,0x2f,0x2d,0x6f,0x81,0x33,0x2b,0x82,0xa0,0xe7,0x15,0x61,0x3e,0x71,0x7e,
+/* 0x005f80 */ 0xfc,0xd7,0x18,0x50,0x5a,0x26,0x2d,0xb2,0x9c,0x03,0x59,0xf3,0x43,0x38,0xe2,0xdc,
+/* 0x005f90 */ 0x63,0x61,0xb2,0xef,0x2c,0x0f,0x05,0xa5,0x0a,0x3c,0x20,0x51,0x46,0x2c,0xc7,0x7f,
+/* 0x005fa0 */ 0x29,0x02,0xa4,0xd2,0xdb,0xba,0x35,0xee,0x6d,0x28,0xa0,0xda,0x26,0x8e,0x7c,0xb5,
+/* 0x005fb0 */ 0xf2,0x21,0xbd,0x4f,0x35,0xa1,0x22,0xf3,0x9c,0xd7,0xdd,0xfe,0x87,0x6e,0xfe,0x8b,
+/* 0x005fc0 */ 0x4c,0xee,0xcb,0x54,0x3f,0xc8,0x7b,0x20,0x35,0x71,0x3b,0x9f,0x77,0xbb,0xc7,0x88,
+/* 0x005fd0 */ 0x18,0xf2,0x7e,0x78,0x37,0xb4,0xb8,0xa8,0xff,0x72,0xf2,0x33,0xa9,0xed,0x7c,0xc4,
+/* 0x005fe0 */ 0xd8,0x78,0x40,0xa6,0xde,0x86,0xec,0xed,0x1d,0x94,0x12,0xdb,0xbd,0x70,0x09,0xc6,
+/* 0x005ff0 */ 0x27,0xb4,0x92,0xde,0x13,0xf3,0xc7,0x5f,0x54,0xff,0x75,0xe0,0xae,0xe9,0x8b,0xeb,
+/* 0x006000 */ 0x38,0x23,0xe6,0xd2,0x7f,0xe5,0xf8,0x2f,0x13,0x65,0x8d,0xda,0x60,0x69,0x50,0xd6,
+/* 0x006010 */ 0x83,0xc3,0xb6,0x11,0xfd,0xc5,0xdc,0x07,0xcb,0xf5,0x5f,0x96,0x41,0x1a,0x80,0xc8,
+/* 0x006020 */ 0x2e,0xb2,0x7b,0xfc,0xf8,0xaf,0x6b,0x52,0x85,0xd9,0x6c,0xe7,0x1f,0x52,0xff,0xf9,
+/* 0x006030 */ 0x1f,0x07,0xab,0x4d,0x8e,0xb6,0xa8,0xfe,0x2b,0x1a,0x04,0xfd,0x97,0x92,0x29,0x1f,
+/* 0x006040 */ 0x08,0xc2,0x3d,0xa5,0x39,0xfe,0xeb,0x19,0xf7,0xfe,0x65,0x2a,0xf6,0x6e,0x45,0x03,
+/* 0x006050 */ 0x3c,0xd2,0xf8,0xdc,0xd9,0xda,0xe8,0x46,0xf6,0xa2,0x62,0xc2,0xf6,0xe7,0xdc,0x63,
+/* 0x006060 */ 0xeb,0xbf,0x5c,0xfc,0x17,0xaa,0x30,0x17,0xd4,0x42,0xf2,0x00,0x43,0x5b,0x9f,0x0a,
+/* 0x006070 */ 0x09,0x72,0x64,0x5d,0xa5,0x75,0x15,0x5f,0x42,0x64,0xdb,0xda,0x21,0xbd,0x62,0xed,
+/* 0x006080 */ 0x81,0xb3,0x4a,0x41,0xff,0x25,0xe6,0x1f,0x76,0xae,0xb8,0xac,0x3e,0xd1,0x0d,0x68,
+/* 0x006090 */ 0x6b,0x2d,0x41,0x5b,0x75,0x9f,0xa2,0x77,0x77,0xaf,0x35,0xf7,0x31,0xb4,0xb5,0x22,
+/* 0x0060a0 */ 0x53,0xba,0x73,0xde,0xfd,0x9d,0x2f,0xe2,0xba,0x4c,0xd9,0xae,0xd0,0x22,0x85,0xdd,
+/* 0x0060b0 */ 0x23,0xf0,0x5f,0xce,0xbe,0x13,0x98,0xda,0xd9,0x68,0x95,0xf5,0xc9,0x23,0x4c,0x58,
+/* 0x0060c0 */ 0xc4,0xed,0xb9,0x48,0xbc,0x51,0x31,0x6e,0x57,0x66,0xb9,0x43,0x03,0xce,0x2a,0xa8,
+/* 0x0060d0 */ 0x73,0x74,0x55,0x13,0xf3,0x0f,0xdd,0xf9,0x51,0x3d,0xb5,0x87,0x49,0xc8,0x97,0x30,
+/* 0x0060e0 */ 0x6c,0x93,0x0d,0x63,0xa6,0x27,0xd9,0x1e,0x9e,0x94,0xa0,0x91,0x80,0x9e,0x19,0xe3,
+/* 0x0060f0 */ 0x15,0xb8,0xf9,0x36,0xb9,0xe7,0x82,0x2b,0xff,0x70,0xcc,0x55,0xff,0xab,0x67,0x71,
+/* 0x006100 */ 0xa5,0xd2,0x97,0xda,0x4c,0x40,0x56,0x2c,0x03,0xb6,0x51,0x04,0x7f,0x55,0x19,0x2c,
+/* 0x006110 */ 0x11,0x91,0xed,0x4d,0xd7,0xd0,0xb3,0x7a,0xd5,0xd9,0x50,0x56,0x5e,0x64,0x0f,0x1d,
+/* 0x006120 */ 0xe7,0x89,0xfe,0xda,0xab,0xff,0x52,0x6c,0xb4,0x55,0x42,0x4d,0x36,0xa4,0x1f,0xa2,
+/* 0x006130 */ 0xd0,0xf6,0xa5,0x0e,0xda,0xba,0x8d,0xf6,0x48,0xb4,0xb1,0xd9,0x7e,0x8e,0x1f,0xff,
+/* 0x006140 */ 0xf5,0x66,0x97,0x69,0x29,0xc7,0x3a,0x5a,0x39,0xc8,0x2a,0xa2,0x68,0x6b,0x1e,0x9b,
+/* 0x006150 */ 0x77,0x89,0xdf,0x93,0x32,0x48,0x28,0xfb,0xd0,0x23,0x4e,0x24,0x33,0x6c,0xef,0x5f,
+/* 0x006160 */ 0x82,0xff,0xc6,0x0c,0x88,0xb8,0x6f,0x53,0xb4,0x15,0x67,0x75,0x6a,0xd6,0xa0,0x44,
+/* 0x006170 */ 0x86,0x27,0xb6,0x95,0x59,0x32,0x58,0x73,0x3c,0x67,0x24,0x33,0xfb,0xb2,0x9b,0xb6,
+/* 0x006180 */ 0xa1,0x0b,0x5c,0x5f,0xc0,0xfe,0xaf,0x1e,0x4f,0xfd,0x65,0x23,0xcc,0xea,0x1c,0xe5,
+/* 0x006190 */ 0x7a,0xb2,0x22,0xda,0xba,0x8d,0x2e,0xeb,0x94,0x23,0xf3,0xe2,0xaf,0x5f,0x8b,0xfc,
+/* 0x0061a0 */ 0x17,0xad,0x85,0x94,0xb5,0xab,0x2d,0xf3,0xe0,0xbf,0x7d,0x91,0x5d,0x7f,0xf9,0x7e,
+/* 0x0061b0 */ 0xe8,0xf9,0x4a,0xab,0x03,0xcf,0x7c,0xe0,0xbf,0xea,0x0a,0xe7,0x1f,0xfe,0x20,0x7b,
+/* 0x0061c0 */ 0xbe,0xb7,0xdc,0x8e,0xa8,0x65,0xda,0xf8,0x91,0x13,0x28,0x42,0xc6,0xd4,0x9f,0x91,
+/* 0x0061d0 */ 0x35,0xca,0xea,0xea,0x25,0x81,0xc7,0x47,0x8c,0xda,0xf0,0xe5,0xbf,0x02,0x91,0x6c,
+/* 0x0061e0 */ 0x37,0xf9,0x29,0x45,0x8c,0xcc,0x31,0x7f,0x0e,0xa3,0x48,0x82,0x24,0xce,0x3c,0x43,
+/* 0x0061f0 */ 0x39,0xb2,0x6e,0xfe,0x1c,0xbf,0xfc,0x43,0x2d,0x6a,0x84,0x56,0x4a,0x7b,0x03,0xfd,
+/* 0x006200 */ 0x06,0x8b,0x33,0x31,0x75,0xa4,0x5f,0x29,0x95,0x06,0xfb,0x75,0x82,0x07,0x57,0x4a,
+/* 0x006210 */ 0xef,0x07,0x7a,0xe1,0xef,0xa9,0x29,0x52,0xf1,0xcb,0x88,0x42,0x33,0xdb,0xff,0x50,
+/* 0x006220 */ 0xcc,0x3f,0x9c,0x69,0x8f,0x9c,0x0d,0xff,0xef,0x3c,0x32,0x5f,0x0f,0x27,0xd2,0xf7,
+/* 0x006230 */ 0x93,0x9e,0x15,0x6f,0xc2,0xfa,0x73,0x2c,0x44,0x7a,0xfe,0xf1,0x89,0xb3,0x1b,0x8f,
+/* 0x006240 */ 0x93,0xef,0x62,0xb2,0x0d,0x34,0x74,0xa1,0x85,0xe6,0x79,0x46,0x76,0x70,0xfe,0x2b,
+/* 0x006250 */ 0xe3,0xc2,0x5f,0x06,0xf3,0x67,0xcb,0xcc,0xe8,0xbb,0x3e,0x20,0x8d,0x5f,0x50,0x93,
+/* 0x006260 */ 0x43,0x18,0x5e,0x3c,0x55,0x93,0xb4,0xca,0xfa,0xe5,0xf1,0x87,0xef,0x00,0xb6,0xca,
+/* 0x006270 */ 0xa6,0x9c,0xfa,0x44,0x0e,0xff,0xe5,0x16,0x79,0xd9,0x65,0xbf,0xd6,0xf0,0x46,0xe0,
+/* 0x006280 */ 0x41,0x4c,0xa2,0xca,0x06,0x60,0x30,0x87,0x4b,0x33,0x72,0x0d,0x4f,0xfd,0xad,0xc8,
+/* 0x006290 */ 0xd3,0x7f,0xa1,0x6b,0x73,0x9c,0x22,0x5f,0xfd,0xc8,0xa6,0xbd,0x70,0x35,0xed,0xd1,
+/* 0x0062a0 */ 0xde,0x6c,0x8f,0x58,0xdd,0x2f,0x94,0xfc,0x87,0x44,0xe2,0xf9,0x74,0x29,0x54,0x48,
+/* 0x0062b0 */ 0xec,0x16,0x8a,0x85,0xcd,0xa6,0xff,0xea,0x16,0x82,0x76,0xd2,0x68,0xa9,0x3c,0x13,
+/* 0x0062c0 */ 0x7a,0x81,0xcc,0xe0,0x0b,0x28,0x96,0x2e,0xc6,0x52,0x50,0xf2,0xa6,0xec,0xce,0xa2,
+/* 0x0062d0 */ 0xff,0x72,0x57,0xfb,0x6a,0x09,0x1d,0xec,0xf8,0x4f,0xf4,0x33,0x8b,0xac,0x7e,0x60,
+/* 0x0062e0 */ 0x03,0xf2,0xb2,0xe7,0x1e,0x21,0xff,0xd0,0x2f,0x17,0x94,0xeb,0x77,0x66,0xa4,0x55,
+/* 0x0062f0 */ 0x66,0xf8,0xd2,0x77,0x14,0xf4,0x09,0x41,0x5b,0xa5,0x5b,0x43,0xf5,0x24,0x8c,0x8f,
+/* 0x006300 */ 0xbb,0xf1,0xb2,0xc8,0x7f,0xad,0xc9,0x4b,0x0a,0x65,0xa4,0x89,0xf2,0x35,0x03,0xce,
+/* 0x006310 */ 0x77,0x18,0x82,0xfe,0x52,0x86,0x13,0x0f,0x37,0x70,0xf6,0xd7,0x7f,0xd5,0x3a,0xb0,
+/* 0x006320 */ 0x8b,0xb3,0x5d,0x52,0x6d,0x5a,0x3d,0x26,0x57,0x01,0x47,0x76,0x96,0x6c,0x64,0xa3,
+/* 0x006330 */ 0xd8,0x9b,0x8a,0xec,0xab,0xff,0xd2,0x56,0xd9,0xb0,0xab,0x9a,0x9e,0x42,0x04,0x4f,
+/* 0x006340 */ 0x4b,0xf5,0x04,0x49,0x55,0x3c,0x46,0xf6,0xaf,0x35,0x59,0x12,0x6f,0x7c,0x85,0xbd,
+/* 0x006350 */ 0x29,0xbb,0x7e,0xf8,0xeb,0x45,0x43,0x77,0x60,0x17,0x9f,0x14,0x49,0x07,0x5e,0xb8,
+/* 0x006360 */ 0x0c,0x7a,0x08,0x94,0x26,0x5f,0x93,0x77,0xbe,0x7c,0xf3,0x0f,0xd1,0x92,0x1c,0xed,
+/* 0x006370 */ 0xc5,0xea,0x52,0xf5,0x7c,0x2b,0xf3,0xe8,0xa3,0x25,0x9b,0xd1,0x89,0xdd,0xcb,0x32,
+/* 0x006380 */ 0xa1,0x66,0x6a,0xc4,0xe1,0xaf,0xff,0x02,0xfe,0x4b,0x73,0xfc,0xe7,0x6b,0x86,0xc2,
+/* 0x006390 */ 0x90,0x34,0x72,0x53,0x8b,0x51,0x47,0x44,0x63,0x0a,0x40,0xd6,0x0b,0xb2,0xba,0xe5,
+/* 0x0063a0 */ 0x06,0xb0,0x5d,0x9a,0x3c,0x24,0x79,0x0b,0x81,0x89,0xf8,0x2b,0x98,0x5b,0xb5,0xde,
+/* 0x0063b0 */ 0x76,0xc6,0x30,0x4e,0x1a,0x0b,0x9e,0x46,0xc9,0xa1,0xea,0x74,0x05,0x50,0xd8,0x64,
+/* 0x0063c0 */ 0x1d,0xdb,0x0f,0x89,0x88,0xf6,0x09,0xd5,0x6c,0xfa,0x2f,0x5c,0x37,0xc4,0xe7,0x0b,
+/* 0x0063d0 */ 0xde,0x9f,0x79,0xe3,0xc1,0xa9,0xdd,0x0d,0x10,0x1f,0x8e,0x91,0x9e,0xa3,0x43,0x6a,
+/* 0x0063e0 */ 0x97,0x5c,0x29,0x7d,0x82,0xdc,0xc4,0xa5,0x8d,0xbf,0x02,0xc2,0xbe,0x73,0x1a,0x11,
+/* 0x0063f0 */ 0xfc,0xc5,0xcf,0xf4,0x2e,0xb1,0x1e,0x9d,0xc0,0xae,0x36,0xe9,0x92,0x72,0x02,0xf2,
+/* 0x006400 */ 0x0f,0x35,0x9f,0x94,0x78,0x3b,0xff,0x50,0x73,0x89,0xbc,0x16,0x67,0xc4,0xaa,0x6a,
+/* 0x006410 */ 0xe4,0x52,0xcf,0xf7,0x19,0xf3,0x78,0x02,0x8c,0x38,0x1e,0x95,0xee,0xa5,0xe3,0x5c,
+/* 0x006420 */ 0x22,0x8c,0xb3,0xbf,0xfe,0x2b,0xbf,0x3c,0x9f,0x9e,0x09,0xd5,0x92,0xc6,0xe0,0x41,
+/* 0x006430 */ 0xdd,0x22,0xd1,0x7b,0xd8,0xf2,0xea,0xfe,0xfc,0xf5,0x5f,0xb5,0x39,0xd9,0x17,0x55,
+/* 0x006440 */ 0xd6,0x7f,0x83,0xd6,0x1c,0x09,0x13,0xd8,0x83,0x4f,0x41,0x46,0x22,0xd9,0x00,0xd1,
+/* 0x006450 */ 0xef,0x3c,0xd6,0x88,0x3e,0xf8,0x4b,0x9d,0x40,0xbb,0xbc,0xd9,0x86,0xfc,0x92,0x3e,
+/* 0x006460 */ 0x51,0x44,0x1a,0x1d,0xf2,0xe5,0x3c,0x83,0x35,0x7f,0xfc,0xd5,0xb8,0x4e,0xe5,0x66,
+/* 0x006470 */ 0x02,0x39,0xb4,0xb5,0x09,0x1a,0x8f,0xa3,0xd5,0x10,0xbd,0x1f,0xce,0x23,0x56,0x0a,
+/* 0x006480 */ 0xe9,0xbf,0xa2,0xdc,0x1b,0x9c,0xb2,0x54,0xca,0x20,0xf5,0x9f,0x2f,0xff,0xdc,0x18,
+/* 0x006490 */ 0x94,0x22,0xb4,0xa4,0x17,0xf6,0x4a,0xba,0x0a,0xe9,0xbf,0x14,0x1b,0x7f,0x79,0x59,
+/* 0x0064a0 */ 0xb3,0xe5,0x4d,0xd1,0x5e,0xa9,0x33,0xe0,0x7d,0x8e,0x80,0xbf,0xf6,0x0b,0xf8,0xcb,
+/* 0x0064b0 */ 0x50,0xee,0x29,0x71,0x3c,0xcf,0x49,0xcf,0x3d,0xb1,0x0d,0xa1,0x7b,0x6a,0xe1,0x52,
+/* 0x0064c0 */ 0xe5,0x06,0xe8,0x59,0xe7,0x25,0x68,0x6c,0xfc,0x15,0x14,0xeb,0x7f,0x19,0x89,0x12,
+/* 0x0064d0 */ 0xb5,0x93,0x25,0x89,0x95,0xb0,0xaa,0xd6,0xdf,0x4f,0xdc,0x17,0x7e,0xf6,0xad,0x4c,
+/* 0x0064e0 */ 0x20,0x6b,0x34,0xdc,0xd7,0xda,0x91,0xda,0x9d,0x27,0x0d,0xb3,0xf1,0x97,0x4b,0xb7,
+/* 0x0064f0 */ 0xa5,0x53,0x7a,0x51,0x64,0x58,0x22,0x49,0x82,0xc8,0x00,0x37,0xe9,0x0d,0xcd,0x00,
+/* 0x006500 */ 0xa0,0xf2,0xa4,0x46,0x76,0xfe,0x61,0x40,0xcc,0x63,0xd4,0xc0,0xfc,0x21,0xb4,0x85,
+/* 0x006510 */ 0x00,0x04,0x3b,0x2f,0x2e,0x93,0x68,0x56,0x4f,0x42,0xd9,0x65,0x94,0xdc,0xa6,0x1e,
+/* 0x006520 */ 0x94,0x6f,0x91,0xf9,0x6a,0xe0,0x29,0x8e,0x5e,0xfd,0x97,0x80,0xb6,0xf4,0x06,0xc7,
+/* 0x006530 */ 0x5b,0x9e,0xf7,0x64,0xe2,0x4a,0x17,0xaf,0x08,0x56,0x49,0xe2,0xf9,0xab,0xb8,0xcb,
+/* 0x006540 */ 0xcd,0x7f,0x15,0x15,0xd0,0x7f,0xb5,0x51,0x30,0xfb,0xaa,0x93,0x91,0x68,0xc4,0x9e,
+/* 0x006550 */ 0x28,0x9e,0xdf,0xf1,0x0e,0xea,0xc3,0x31,0xa3,0x78,0x7e,0xf9,0xdb,0xe6,0x7e,0x31,
+/* 0x006560 */ 0x59,0xb1,0xa0,0xff,0xe1,0x72,0x23,0x0f,0x77,0xb7,0xb3,0x74,0x53,0x3d,0x6e,0x2c,
+/* 0x006570 */ 0xf3,0x33,0x42,0x9c,0xc5,0xff,0x90,0x8d,0x0f,0xbd,0x79,0xb2,0x68,0x97,0x51,0xda,
+/* 0x006580 */ 0xb3,0xfe,0x73,0x38,0x2d,0x34,0x4a,0x0f,0xd1,0xd2,0xcc,0x70,0xc9,0xb9,0x59,0xf2,
+/* 0x006590 */ 0xe5,0xbf,0x14,0x3f,0xd8,0x55,0xf6,0x53,0x70,0xe4,0xc0,0x8d,0xac,0xe1,0xb5,0x46,
+/* 0x0065a0 */ 0xf4,0xcf,0x3f,0xa4,0xb5,0xb9,0x59,0x46,0x6b,0xa9,0xeb,0x83,0x1d,0x43,0x3b,0x00,
+/* 0x0065b0 */ 0x76,0xd9,0xd2,0xb0,0x9c,0x73,0xa9,0x1f,0xfe,0x3a,0x85,0xeb,0x99,0xfe,0xeb,0xa4,
+/* 0x0065c0 */ 0x8d,0xbf,0x04,0xb6,0xeb,0x01,0x40,0x5b,0x0d,0x5c,0x1a,0x96,0x23,0xc2,0x3c,0xfa,
+/* 0x0065d0 */ 0x2f,0x5a,0x5a,0xf7,0x68,0x5a,0xb7,0xe9,0x7b,0x9a,0xbf,0xc1,0x02,0x0f,0x38,0x45,
+/* 0x0065e0 */ 0x37,0xfe,0x95,0x9d,0x16,0xc6,0xfe,0xd2,0xbb,0x8e,0xf9,0xe5,0x1f,0x1e,0xc7,0x4b,
+/* 0x0065f0 */ 0x40,0x9f,0x4b,0x7b,0x32,0x0a,0xcf,0x3f,0x1c,0xdb,0x48,0x17,0x6a,0x73,0x99,0x45,
+/* 0x006600 */ 0x76,0xb4,0x85,0x04,0x7f,0xb9,0x09,0x1a,0xbf,0xfc,0xc3,0x5b,0x50,0x76,0x79,0x4a,
+/* 0x006610 */ 0xde,0x4c,0x7a,0x1a,0xc1,0x6d,0x1e,0x16,0xe1,0xb5,0xe9,0xf0,0x13,0xf2,0xa7,0xea,
+/* 0x006620 */ 0x17,0xe6,0x62,0x4b,0x5d,0x2d,0x27,0x68,0x22,0xa2,0x9f,0xfe,0x4b,0xc0,0x5f,0xd4,
+/* 0x006630 */ 0x5b,0x63,0xdf,0x80,0x2b,0x80,0xa1,0x20,0xab,0x62,0x5c,0x9b,0x9a,0x68,0xc4,0xfb,
+/* 0x006640 */ 0x7a,0xc9,0x72,0x7a,0xd5,0x49,0xc9,0x40,0x6e,0xfd,0x97,0xe0,0x7f,0x38,0x8d,0x9f,
+/* 0x006650 */ 0x1e,0x0d,0x4f,0xa4,0x04,0xdb,0xc3,0x19,0x9d,0x80,0xbe,0x89,0xd4,0x6f,0x08,0xda,
+/* 0x006660 */ 0x5a,0xc3,0x6a,0x18,0x5d,0x10,0x82,0x49,0x97,0xfe,0x6b,0xa1,0xcd,0x64,0xf1,0x22,
+/* 0x006670 */ 0x95,0x3b,0x9c,0xbd,0x09,0x5d,0x42,0x5f,0x48,0x60,0x8e,0x31,0xef,0x12,0xda,0x17,
+/* 0x006680 */ 0xe4,0x97,0xbc,0xfb,0x57,0x81,0xfc,0x43,0xab,0x7b,0x67,0x13,0x00,0x5e,0xfb,0x66,
+/* 0x006690 */ 0xad,0x3a,0x5d,0x4c,0x99,0x35,0x0c,0x59,0x9d,0x45,0x1f,0xeb,0x3c,0xbd,0xf3,0x90,
+/* 0x0066a0 */ 0x1f,0xff,0x95,0xcb,0xaa,0xca,0x2f,0x52,0x19,0xb7,0x8a,0x57,0x4a,0xfb,0xf4,0x14,
+/* 0x0066b0 */ 0x8a,0x62,0x3a,0xcb,0xde,0xb8,0xe5,0x3d,0x9f,0xfc,0xc3,0x6f,0x20,0xf6,0x83,0x18,
+/* 0x0066c0 */ 0xe0,0x2a,0x0d,0x02,0xe7,0xd2,0x38,0xdc,0xaa,0xca,0x4a,0x23,0xfa,0x05,0x29,0x0a,
+/* 0x0066d0 */ 0xd2,0xef,0x6b,0x12,0xb3,0x0e,0x70,0x88,0x30,0x3f,0xfd,0x97,0x32,0x8d,0xa8,0xbc,
+/* 0x0066e0 */ 0x65,0xdc,0xc9,0xb3,0x0a,0x92,0xd9,0xc9,0x7c,0xd0,0x57,0x47,0x7a,0xba,0xdc,0x29,
+/* 0x0066f0 */ 0x34,0xfe,0xfa,0xaf,0xfb,0x79,0x5e,0x9c,0x56,0x97,0xc3,0x5f,0xfb,0xa8,0xaa,0x05,
+/* 0x006700 */ 0xf5,0x93,0x29,0x48,0x35,0xb6,0x81,0x23,0xa2,0x9a,0x4d,0x0d,0x23,0xaf,0x34,0xcc,
+/* 0x006710 */ 0x0f,0x7f,0x1d,0x45,0xf5,0x16,0x14,0x8d,0xca,0xf5,0x40,0x52,0x68,0x49,0xb6,0x09,
+/* 0x006720 */ 0x8c,0xec,0x4e,0x2f,0x29,0x81,0x42,0x45,0x5e,0x69,0x98,0x1f,0xfe,0x3a,0x88,0x96,
+/* 0x006730 */ 0xc2,0xd0,0xc5,0x02,0x2e,0x46,0xac,0x0b,0x2a,0x82,0xa5,0x50,0x24,0x5d,0xdc,0x2b,
+/* 0x006740 */ 0xfd,0x77,0xfe,0x73,0xfc,0xf2,0x0f,0x29,0x61,0x5d,0xe2,0x3a,0x39,0xa9,0xb4,0xee,
+/* 0x006750 */ 0x83,0xc2,0x37,0x29,0x38,0xe9,0xca,0xe3,0x2b,0xbd,0xfa,0xaf,0xb8,0xcd,0x4d,0xd4,
+/* 0x006760 */ 0x92,0x18,0xbb,0xc2,0x7e,0xe7,0x25,0xc6,0x88,0x81,0x91,0x9d,0x74,0x01,0xe2,0x0d,
+/* 0x006770 */ 0x18,0xd5,0x3c,0x3f,0x07,0x9e,0x7f,0x58,0x2c,0x84,0xf1,0x77,0xd0,0xd3,0x79,0x81,
+/* 0x006780 */ 0xfd,0x1a,0x6b,0x6e,0xb6,0xc2,0x71,0x9b,0xcf,0xe3,0xbf,0xe6,0x8e,0xf9,0xe8,0xbf,
+/* 0x006790 */ 0x66,0xb4,0xba,0x73,0xea,0xcd,0x54,0x23,0x4d,0x52,0x0d,0x0f,0x40,0x82,0x1c,0x5e,
+/* 0x0067a0 */ 0xab,0xab,0x56,0x2a,0xce,0xee,0x19,0x20,0xf7,0x7c,0x83,0x13,0xc3,0xe1,0x8b,0x72,
+/* 0x0067b0 */ 0xdc,0x8b,0xbf,0x44,0xfd,0xd7,0x69,0x7d,0xd5,0x45,0xe5,0x56,0xf9,0x5a,0x43,0x4c,
+/* 0x0067c0 */ 0x32,0x3c,0xa7,0x74,0x36,0xc5,0x05,0x8d,0x18,0xae,0x7e,0x27,0x34,0x20,0xc5,0x67,
+/* 0x0067d0 */ 0xc5,0x5f,0x92,0x7e,0x36,0x5a,0xd3,0xa2,0x06,0xe1,0x14,0xc2,0x66,0x15,0xe1,0xb0,
+/* 0x0067e0 */ 0x51,0x98,0x8b,0xa3,0x28,0x36,0x2c,0xc6,0xfc,0x39,0xfc,0x25,0xe0,0x8b,0x60,0xa5,
+/* 0x0067f0 */ 0x53,0x53,0xe0,0xcc,0x79,0x3e,0xb9,0x19,0x05,0x77,0x08,0xef,0xc6,0x49,0x68,0x0c,
+/* 0x006800 */ 0xdc,0xcd,0x7f,0xa3,0xd6,0xda,0x6b,0xaf,0x51,0x76,0x90,0xac,0xab,0x8a,0x1c,0xd3,
+/* 0x006810 */ 0x5c,0x6b,0xdd,0x26,0x81,0x68,0x2e,0xe8,0xbf,0x01,0xf6,0x89,0x6e,0x9a,0xf2,0x39,
+/* 0x006820 */ 0x71,0x9a,0xa6,0x25,0x68,0x94,0x34,0xfa,0xe2,0x2f,0x8e,0xfe,0x6e,0x6a,0x47,0x01,
+/* 0x006830 */ 0x32,0xd8,0x36,0x0e,0xeb,0xf9,0xdf,0xd3,0x99,0x5b,0x45,0x19,0x40,0x88,0x01,0x83,
+/* 0x006840 */ 0x79,0xde,0x8b,0xbf,0x72,0xb6,0xa2,0xa7,0xf1,0xdf,0x5b,0x1b,0xb3,0x8e,0xdb,0xbc,
+/* 0x006850 */ 0x4c,0x07,0x61,0x94,0x2b,0xe6,0x76,0xd9,0xe3,0x43,0xa0,0x59,0x0d,0xf9,0xbf,0x3e,
+/* 0x006860 */ 0xf1,0xc1,0x5f,0xf6,0xf2,0xd5,0xc9,0xf1,0x97,0xf0,0xf2,0xc7,0x51,0x31,0x92,0x84,
+/* 0x006870 */ 0xda,0x0d,0x47,0xb9,0x59,0xa2,0x6d,0xc4,0xe1,0x83,0xbf,0x02,0x27,0x7a,0x08,0x2e,
+/* 0x006880 */ 0x78,0x1c,0x8e,0x0d,0x7b,0x6c,0x5c,0x80,0xab,0xda,0x8b,0x9b,0x29,0x22,0x5b,0xc6,
+/* 0x006890 */ 0xf9,0x2f,0xab,0x9a,0x41,0xb3,0x97,0xdc,0xf8,0x8b,0xf2,0x5f,0xab,0x19,0xa4,0x9a,
+/* 0x0068a0 */ 0x32,0x75,0xd0,0x76,0x8d,0x1b,0x7f,0x30,0x1b,0x47,0xc3,0x0d,0xd2,0x07,0x98,0x40,
+/* 0x0068b0 */ 0x33,0x54,0x5a,0x2b,0x97,0xe1,0x9b,0x52,0x6c,0x2c,0xd4,0x20,0x8f,0xcc,0xb9,0x61,
+/* 0x0068c0 */ 0x26,0xc6,0x48,0xcf,0x07,0xe8,0xa3,0x59,0xfc,0x37,0xa4,0xc4,0x10,0x59,0x3c,0x81,
+/* 0x0068d0 */ 0x08,0x4b,0x58,0xb6,0x11,0xa2,0xf1,0x3c,0x4d,0x44,0x94,0x78,0xfd,0xaf,0x69,0x2d,
+/* 0x0068e0 */ 0xf1,0x71,0x59,0x56,0x3e,0x34,0x2b,0xfe,0x32,0x6b,0xcf,0xa9,0x83,0xa1,0x98,0x79,
+/* 0x0068f0 */ 0x13,0x48,0xae,0xd5,0x72,0x19,0x54,0xfb,0x42,0x8d,0x98,0x35,0x32,0x64,0x3f,0x8d,
+/* 0x006900 */ 0xa1,0x1b,0xb8,0x2e,0x2b,0x10,0xdf,0xbe,0xfc,0x57,0x7f,0xf4,0xc1,0xb4,0xb2,0x43,
+/* 0x006910 */ 0xfa,0x0b,0x7a,0x00,0x68,0x0b,0x90,0x8d,0xd2,0x4c,0xcb,0x42,0x9b,0x11,0x5b,0x48,
+/* 0x006920 */ 0xf6,0xa6,0x8a,0x61,0xc5,0x07,0x7f,0xa1,0x57,0x84,0x1a,0xd6,0x3f,0x59,0x72,0x79,
+/* 0x006930 */ 0x01,0xab,0xa1,0xb6,0x98,0x01,0xde,0x3d,0xb8,0x5a,0x1f,0x6e,0xa6,0x8d,0x2a,0xa6,
+/* 0x006940 */ 0xff,0x3a,0x85,0x17,0xbb,0x4a,0x60,0xfb,0xe3,0xaf,0x4a,0x26,0xf2,0xea,0xb7,0xd9,
+/* 0x006950 */ 0x2e,0x58,0x06,0x8b,0x5f,0xcb,0x9d,0x12,0xab,0x64,0xde,0x5d,0xa5,0x99,0x0b,0xe0,
+/* 0x006960 */ 0xaf,0x7a,0x26,0xf2,0x3a,0xc9,0x80,0x58,0x14,0x9d,0x83,0x34,0xf5,0x2b,0x21,0x38,
+/* 0x006970 */ 0xd9,0x06,0xb6,0x8b,0x84,0x58,0xd3,0xb6,0x34,0x6c,0x36,0xff,0x0d,0xc9,0x03,0xbb,
+/* 0x006980 */ 0xa8,0x8a,0x64,0x93,0xab,0x67,0x20,0x20,0xe0,0x82,0xb9,0x85,0xfd,0x37,0xd4,0x03,
+/* 0x006990 */ 0xf6,0x61,0xbe,0xcd,0x88,0xd1,0xc2,0x49,0xb9,0x7b,0xe6,0x43,0x63,0xde,0x5d,0xf1,
+/* 0x0069a0 */ 0x97,0x37,0x39,0x30,0xf6,0xa8,0xd2,0xe3,0x89,0xa8,0xff,0x7f,0xf8,0xcb,0x7b,0xf3,
+/* 0x0069b0 */ 0x06,0xa5,0xa7,0x29,0xdf,0x87,0xe1,0xf3,0xd9,0xfc,0x37,0xf6,0xf7,0xc4,0x5a,0xa2,
+/* 0x0069c0 */ 0xf3,0x3a,0x86,0x4c,0x01,0x29,0xc4,0x41,0xed,0x25,0x72,0x64,0x38,0xd6,0xb2,0x91,
+/* 0x0069d0 */ 0x36,0x82,0x85,0xfd,0x37,0xb6,0x26,0x14,0xf5,0x59,0x59,0xac,0xb6,0x4c,0x1a,0xad,
+/* 0x0069e0 */ 0x1d,0x21,0xb7,0xc7,0x82,0xe2,0x87,0xbf,0x5c,0xfe,0x1b,0x7a,0x63,0x0b,0xd4,0x5f,
+/* 0x0069f0 */ 0x36,0xa1,0xa7,0x94,0xf3,0x5f,0x2d,0xd5,0x1f,0xa6,0xdc,0x73,0xd1,0xb2,0x2f,0x9d,
+/* 0x006a00 */ 0x8f,0xbf,0x44,0xfe,0xeb,0xf7,0x88,0x6c,0x16,0xe9,0xd4,0x68,0xfb,0xfb,0x8c,0xed,
+/* 0x006a10 */ 0x02,0xfe,0xab,0x7a,0x83,0xaa,0x7d,0x6b,0xa5,0xcd,0x7f,0x01,0x11,0x76,0xb2,0x45,
+/* 0x006a20 */ 0xcd,0xd2,0x4b,0x2e,0xfc,0xe5,0xae,0xbf,0x1c,0x59,0x10,0xed,0xd4,0xaf,0x20,0x01,
+/* 0x006a30 */ 0x64,0x2d,0x2d,0x56,0xf6,0xbc,0xa3,0xbb,0xef,0x51,0x7c,0xfc,0x37,0xdc,0xf5,0x97,
+/* 0x006a40 */ 0xf5,0x26,0x45,0xd3,0x86,0x3a,0xf7,0x53,0x21,0x18,0x03,0x59,0xcd,0x25,0x36,0x23,
+/* 0x006a50 */ 0xc6,0x94,0x77,0xc1,0xe8,0xfa,0xe8,0x5d,0xf0,0x57,0x1f,0x8a,0xac,0x6b,0xf6,0x80,
+/* 0x006a60 */ 0xac,0x4a,0xa3,0xe5,0xc0,0xbd,0xae,0x77,0x23,0xb3,0x4e,0x11,0x18,0x31,0x7f,0xfc,
+/* 0x006a70 */ 0x75,0xd4,0x50,0xa1,0x0e,0xc2,0x6f,0x5d,0xb8,0xe9,0x60,0x79,0xa5,0xc8,0x21,0x36,
+/* 0x006a80 */ 0xac,0xdb,0xbb,0xff,0x3b,0xa3,0xda,0xe3,0xb3,0xe5,0x1f,0x52,0x4a,0xcb,0xe5,0x3f,
+/* 0x006a90 */ 0x5f,0xbf,0xae,0x6a,0x7f,0xc8,0xf5,0xbb,0x4e,0xdd,0x1d,0x7f,0x69,0x94,0xe4,0x62,
+/* 0x006aa0 */ 0x3d,0xb6,0xda,0x0b,0x85,0x83,0xf3,0xda,0x6d,0x68,0xa6,0xa3,0x31,0x25,0x81,0xc4,
+/* 0x006ab0 */ 0x44,0x56,0x5f,0xfc,0x65,0x3d,0x80,0x95,0x23,0x12,0x60,0xab,0xc7,0x28,0xdb,0x85,
+/* 0x006ac0 */ 0x4e,0x06,0xab,0x0f,0x86,0x32,0xb2,0x9d,0xa3,0x58,0x1e,0x45,0xcf,0x1b,0x6e,0x68,
+/* 0x006ad0 */ 0xe6,0xeb,0xbf,0x31,0x4c,0xd6,0xa8,0x87,0x24,0x95,0xba,0x06,0xb1,0x05,0x2d,0x10,
+/* 0x006ae0 */ 0xbb,0x11,0x72,0xad,0x6c,0x70,0xe4,0x2e,0xae,0x63,0x05,0xfc,0x37,0x46,0xc8,0x9a,
+/* 0x006af0 */ 0x79,0x88,0xe1,0xaf,0x9d,0xae,0xbc,0x38,0xc8,0x51,0xdc,0x29,0x25,0x00,0x7f,0x8d,
+/* 0x006b00 */ 0x90,0xf5,0xf9,0xf7,0x5e,0xfc,0x85,0x04,0xfc,0x75,0x13,0xaf,0x18,0x53,0x27,0xb8,
+/* 0x006b10 */ 0xff,0x21,0x37,0x42,0x5c,0xab,0x87,0x59,0x63,0x05,0xdc,0x93,0x50,0x08,0x34,0x1b,
+/* 0x006b20 */ 0x55,0x7d,0xf0,0x97,0x80,0x0b,0xe6,0x93,0x80,0xe1,0x1c,0x69,0x5c,0x33,0x80,0xff,
+/* 0x006b30 */ 0x2a,0xae,0xb1,0xf3,0x2e,0x26,0x64,0x2e,0x18,0x67,0x21,0x44,0x72,0xf8,0xbf,0xd8,
+/* 0x006b40 */ 0x11,0x2e,0x01,0x6b,0x05,0xf5,0x5f,0xa3,0xd4,0x04,0x60,0x0a,0x53,0x4f,0xe6,0x69,
+/* 0x006b50 */ 0x16,0x1f,0x0e,0xca,0x89,0xe0,0xd4,0x01,0x72,0xcf,0x20,0xf9,0x33,0xe0,0x7c,0x5e,
+/* 0x006b60 */ 0x1d,0xa8,0x70,0x8c,0xe8,0xfd,0xf4,0x5f,0xfd,0x16,0x89,0xbe,0x9e,0x8c,0x90,0x81,
+/* 0x006b70 */ 0x32,0xe9,0x9e,0x02,0xc7,0x86,0x55,0x48,0x99,0x04,0x25,0x17,0x8e,0x59,0x34,0xe5,
+/* 0x006b80 */ 0x72,0x8f,0x56,0x05,0xba,0xe3,0x4b,0x46,0x3e,0xfe,0xfa,0xb9,0x08,0xcd,0x94,0x1d,
+/* 0x006b90 */ 0xb6,0xbc,0x8e,0xf7,0x04,0xa3,0x8c,0x11,0x5b,0x42,0x7b,0x30,0xd9,0x10,0x87,0x95,
+/* 0x006ba0 */ 0x1d,0xdc,0x7f,0x7e,0xe3,0xf6,0x22,0x5f,0xff,0x0d,0x69,0x5b,0x7e,0x72,0xa9,0x46,
+/* 0x006bb0 */ 0xb3,0xb3,0x18,0x46,0x2b,0x1a,0x41,0xde,0x04,0x54,0x5f,0xfd,0x17,0x89,0xd9,0xa8,
+/* 0x006bc0 */ 0xda,0x4b,0x04,0x47,0x57,0xd4,0x2c,0xf0,0x29,0x0c,0xc2,0x8c,0xa3,0xb7,0x20,0xf1,
+/* 0x006bd0 */ 0x6f,0x20,0x95,0xdb,0xdf,0x1d,0xfc,0x25,0xe6,0x35,0x51,0x74,0x3c,0xe2,0x7a,0x0e,
+/* 0x006be0 */ 0x12,0x10,0x34,0x2d,0x39,0x94,0x2c,0x8c,0xbf,0x78,0xdc,0x72,0x0b,0xaf,0xb2,0xc2,
+/* 0x006bf0 */ 0x97,0xec,0xfc,0x43,0x0e,0x07,0x22,0xe4,0xef,0x11,0x18,0xb1,0x5f,0x31,0x8e,0x2c,
+/* 0x006c00 */ 0x39,0x1b,0xfe,0x1a,0x48,0x2f,0xb7,0x42,0x07,0x79,0x7c,0xd8,0xcd,0xe2,0x67,0x18,
+/* 0x006c10 */ 0x9f,0xa2,0x58,0x8e,0x11,0xfb,0xd2,0xaa,0x87,0x61,0x89,0xcf,0xee,0xbf,0x11,0xb1,
+/* 0x006c20 */ 0xed,0x17,0x72,0x20,0xeb,0xbb,0x0a,0x3b,0xf9,0x7f,0x2c,0xe7,0x45,0x90,0x4b,0xc1,
+/* 0x006c30 */ 0x2a,0xc0,0x7f,0x29,0xd1,0xff,0xa3,0xec,0x6a,0x83,0xa3,0x38,0xce,0x74,0xef,0xcc,
+/* 0x006c40 */ 0x00,0xa3,0xdd,0x95,0x76,0x58,0x44,0x4e,0xb6,0xaf,0xcc,0x68,0xb5,0xe7,0xac,0xa9,
+/* 0x006c50 */ 0x95,0xb4,0xac,0x30,0x08,0x10,0xab,0xb1,0xa4,0xab,0x13,0xa0,0x33,0x8a,0xcf,0x55,
+/* 0x006c60 */ 0xc7,0xa5,0x5c,0xae,0x4d,0x42,0xee,0x74,0x29,0x57,0x0e,0x27,0xb9,0x2a,0x6c,0xa7,
+/* 0x006c70 */ 0x9c,0x61,0x57,0x06,0x19,0xf1,0xb1,0xc6,0xe4,0x90,0x3f,0x52,0xb5,0x7c,0xf8,0x42,
+/* 0x006c80 */ 0x6c,0x2a,0xb5,0x02,0x63,0x83,0x21,0xf1,0x20,0x2b,0xe7,0x05,0x64,0x50,0xc9,0x5c,
+/* 0x006c90 */ 0x0e,0x03,0x85,0x17,0xa2,0x50,0x32,0xc6,0x44,0x18,0x4c,0x04,0x88,0x70,0xfd,0x76,
+/* 0x006ca0 */ 0xf7,0xcc,0xf4,0xec,0xae,0xe0,0xce,0xbf,0xba,0x66,0x9a,0xd1,0xba,0x7b,0xa6,0xfb,
+/* 0x006cb0 */ 0x7d,0xfa,0x79,0x9f,0xe7,0x1d,0x80,0x86,0x90,0x8c,0x87,0x07,0xc8,0x31,0x2f,0xc4,
+/* 0x006cc0 */ 0x99,0xf0,0xc1,0x3e,0x4a,0xf8,0xca,0xd9,0x89,0x75,0xfa,0x76,0x2d,0x98,0xf5,0xec,
+/* 0x006cd0 */ 0x16,0xbc,0xda,0xdd,0xfc,0x37,0x22,0x75,0x59,0x08,0x9b,0xe5,0xa3,0xf1,0xd8,0xa0,
+/* 0x006ce0 */ 0x6f,0x2f,0x05,0xbc,0x48,0xde,0x2d,0x54,0x43,0x9f,0x13,0xbe,0x77,0xc5,0x4b,0xe9,
+/* 0x006cf0 */ 0x1b,0x5a,0xdd,0x89,0xa5,0xbb,0xbb,0xad,0x88,0xda,0xd6,0x7f,0xb9,0xec,0xf8,0x30,
+/* 0x006d00 */ 0x18,0xfb,0x98,0xc6,0x87,0x5a,0xec,0xe4,0xd2,0xab,0x44,0x96,0x82,0x61,0xd7,0x35,
+/* 0x006d10 */ 0x9a,0x3a,0x65,0xcc,0xf8,0x0a,0x8f,0xcf,0x25,0x5a,0xff,0xeb,0x9a,0x9e,0xc7,0x7f,
+/* 0x006d20 */ 0x15,0xf8,0x1f,0x92,0x46,0x68,0x2e,0x49,0x13,0xd5,0x8f,0xab,0x75,0xfd,0xeb,0x06,
+/* 0x006d30 */ 0xc5,0x1f,0xa1,0xe3,0x9d,0x73,0xa9,0x47,0xfd,0x7f,0xa3,0x46,0x79,0x63,0x1f,0x86,
+/* 0x006d40 */ 0x5d,0xc7,0x1d,0xf8,0x2b,0x47,0xf2,0x0f,0x63,0x14,0x5b,0xbd,0xae,0x13,0x2c,0x83,
+/* 0x006d50 */ 0xaf,0x18,0x81,0x3e,0x4f,0xc6,0x5d,0x8d,0xde,0x1e,0xaa,0x32,0xe4,0x1e,0x7f,0x4e,
+/* 0x006d60 */ 0x5e,0xab,0x07,0x48,0x1f,0x6d,0xad,0x5e,0xb3,0xc3,0xf3,0x2b,0xe1,0x4f,0xda,0xdb,
+/* 0x006d70 */ 0x0c,0x7f,0xd1,0xf7,0x07,0xea,0x7f,0x6d,0xe7,0xf3,0xb1,0xcd,0x00,0x2f,0x8b,0xe7,
+/* 0x006d80 */ 0x62,0x3d,0xda,0xee,0x52,0xb3,0x6e,0xe5,0xf1,0x61,0xe5,0x15,0xf3,0xc8,0xdd,0xda,
+/* 0x006d90 */ 0xec,0x92,0x4e,0xfc,0x45,0xf2,0x0f,0x59,0x6d,0xaf,0xd7,0x5d,0x35,0xfd,0xe6,0x0b,
+/* 0x006da0 */ 0xa0,0x31,0x23,0x97,0x00,0x94,0xd5,0xbb,0xac,0xbe,0x66,0xbe,0x12,0xbf,0xc2,0xbf,
+/* 0x006db0 */ 0xb9,0x7b,0xb7,0xe5,0x88,0xd8,0xc4,0xf0,0x57,0x65,0xf9,0x2e,0x76,0x9a,0x41,0x5f,
+/* 0x006dc0 */ 0xf5,0x95,0x94,0xf6,0x42,0x73,0x4f,0xfa,0xde,0xc7,0x00,0xea,0x4f,0x68,0xf7,0xa1,
+/* 0x006dd0 */ 0xb2,0x93,0xe2,0x17,0xc2,0x27,0xf8,0x35,0x5e,0x93,0x21,0xe9,0x82,0x8d,0xf5,0xbe,
+/* 0x006de0 */ 0xff,0xc2,0xc3,0xc2,0xf0,0x0e,0x5b,0x7f,0x1c,0xf5,0xbf,0x3e,0x43,0x78,0xe8,0xa0,
+/* 0x006df0 */ 0x71,0x15,0x35,0xa6,0xf0,0x34,0x3d,0x89,0x9f,0xbc,0xd0,0xa8,0x3e,0x85,0x41,0xd6,
+/* 0x006e00 */ 0x65,0x4a,0x65,0x9e,0x91,0x70,0x9f,0x9d,0x1b,0x77,0x8a,0x97,0xcd,0xf9,0x62,0x75,
+/* 0x006e10 */ 0x66,0xf3,0xfd,0x0f,0xcd,0xc3,0x90,0x05,0x83,0x65,0xef,0x88,0x97,0x94,0xa3,0x62,
+/* 0x006e20 */ 0xd4,0x28,0x05,0x67,0x60,0x46,0x8d,0xe1,0x6f,0x59,0x8b,0xb6,0xfb,0x36,0x7b,0xa4,
+/* 0x006e30 */ 0xbb,0xe0,0x2f,0xfe,0x58,0x23,0x60,0xc8,0xf7,0x0b,0xe3,0xf2,0x1a,0x1d,0xcf,0xd7,
+/* 0x006e40 */ 0x66,0xe1,0x63,0xed,0x7d,0x3a,0x3e,0xe3,0xec,0xdb,0x09,0x58,0x19,0x89,0x0c,0x7f,
+/* 0x006e50 */ 0x19,0x92,0xe3,0x14,0x22,0x8c,0x3c,0x91,0x26,0x42,0x7f,0x1c,0x12,0x1b,0x12,0x03,
+/* 0x006e60 */ 0xc2,0x2b,0x15,0x78,0x47,0x2b,0x4f,0x80,0x35,0x87,0x35,0x5f,0x2a,0x9c,0x28,0xca,
+/* 0x006e70 */ 0xe6,0x7c,0x31,0xfd,0x57,0x4e,0x79,0xca,0xe1,0x6d,0x18,0xf7,0xac,0x44,0x67,0x59,
+/* 0x006e80 */ 0xb6,0x46,0x00,0x4c,0x7a,0xd5,0x5c,0xc9,0x32,0x90,0x86,0x19,0x94,0xb2,0x91,0xf7,
+/* 0x006e90 */ 0x76,0x6e,0x1d,0x26,0x92,0xa5,0x35,0x26,0xfe,0x42,0x14,0x7f,0xb5,0xe5,0x4b,0xba,
+/* 0x006ea0 */ 0x5c,0xb8,0x31,0x2d,0x6a,0xcc,0xc0,0xbb,0x8c,0xfe,0x89,0x12,0x31,0xda,0x14,0xbc,
+/* 0x006eb0 */ 0xb2,0x5d,0x6d,0x8d,0xf0,0x1a,0xb1,0x69,0x5e,0x93,0x08,0x1b,0x9a,0x4c,0x9e,0x63,
+/* 0x006ec0 */ 0x4c,0x3f,0x68,0x9f,0x23,0x31,0xb2,0x1e,0x8f,0xb3,0x74,0xc7,0xd8,0xd0,0x4b,0x12,
+/* 0x006ed0 */ 0x7d,0x3f,0x30,0x36,0xe0,0xe1,0xfd,0xdb,0xaf,0xcc,0x7c,0x00,0x1c,0xe9,0xf5,0x83,
+/* 0x006ee0 */ 0x11,0x47,0x1e,0xfe,0x92,0x25,0xe7,0x7c,0xc5,0x4b,0xc9,0xe2,0xa9,0xbc,0x40,0x8a,
+/* 0x006ef0 */ 0x5d,0x2a,0x47,0x95,0x68,0xf6,0xc9,0x41,0xfe,0x38,0xeb,0x86,0x3e,0x3f,0xd7,0xb6,
+/* 0x006f00 */ 0x0f,0x1c,0xe9,0x91,0x43,0xff,0x55,0xe1,0x4c,0x65,0xd7,0xcc,0x63,0x55,0xb6,0xcb,
+/* 0x006f10 */ 0xa8,0x75,0x47,0xe0,0x8a,0xf4,0x67,0x17,0x57,0x5f,0x46,0xe6,0xbc,0xa1,0x98,0xfe,
+/* 0x006f20 */ 0x02,0xe1,0xfd,0xdd,0xc6,0x5f,0x7a,0x6d,0x9c,0xd2,0x8b,0x6f,0x56,0xe7,0xba,0x57,
+/* 0x006f30 */ 0x26,0xce,0xb6,0x24,0xd3,0xdf,0x1f,0x96,0x97,0xf9,0xcf,0x86,0xde,0xec,0xa3,0xb4,
+/* 0x006f40 */ 0x97,0xb6,0x75,0x55,0x38,0xb7,0xa8,0xde,0x5f,0x26,0x5b,0xe3,0x4c,0xdf,0x1f,0x69,
+/* 0x006f50 */ 0x1d,0xaa,0xe3,0xe6,0x9d,0x9a,0xe1,0xe0,0xd5,0xef,0xbc,0x27,0x92,0x80,0xdd,0x2a,
+/* 0x006f60 */ 0x0e,0xba,0xbf,0x63,0x68,0x4f,0xdc,0xec,0x83,0xe3,0x96,0x9d,0x78,0x85,0x34,0x09,
+/* 0x006f70 */ 0xeb,0x53,0x12,0xd3,0x7f,0x39,0x24,0x5d,0x8d,0x9d,0xa5,0xac,0x91,0xd9,0xf8,0xb4,
+/* 0x006f80 */ 0x38,0x22,0xf4,0x01,0x22,0x7b,0x4b,0xbc,0x89,0x2e,0x1b,0x66,0x8e,0xa2,0xda,0x08,
+/* 0x006f90 */ 0x44,0x58,0x3d,0xa9,0x11,0x06,0xf8,0x8b,0xfe,0x9e,0x56,0x57,0xbe,0xaf,0x1a,0x6b,
+/* 0x006fa0 */ 0x48,0xac,0x10,0x73,0x03,0xaa,0xd5,0x1d,0xb4,0x57,0x5e,0xc9,0xa1,0x21,0xfa,0x5d,
+/* 0x006fb0 */ 0xac,0x53,0x76,0xa0,0xe2,0x55,0xa8,0xbc,0x9b,0xa6,0x05,0xd1,0x61,0xfd,0x5d,0x70,
+/* 0x006fc0 */ 0xdb,0x00,0x9b,0x82,0xa8,0x7d,0x6b,0x29,0xc4,0xa2,0x25,0xf4,0x5f,0xf5,0xf1,0xfa,
+/* 0x006fd0 */ 0xaf,0x42,0x6c,0x05,0x49,0x86,0x81,0x20,0xfa,0x34,0x10,0xd0,0xe4,0x57,0x85,0x0b,
+/* 0x006fe0 */ 0x5d,0xbd,0x9c,0x93,0x46,0x7b,0x19,0x38,0xc9,0x7f,0x6a,0xe2,0x2f,0xf2,0x5f,0x3d,
+/* 0x006ff0 */ 0xc1,0x5f,0x33,0xad,0xac,0x33,0x0e,0x88,0x6d,0xf6,0x4b,0xe8,0x25,0x35,0xa0,0x95,
+/* 0x007000 */ 0xa4,0x9a,0x2e,0x4c,0xda,0xaf,0xb2,0xe7,0xe0,0x6f,0xb9,0xc9,0x93,0xf2,0x0f,0x47,
+/* 0x007010 */ 0x4c,0x1f,0x06,0x16,0x67,0x2a,0x4e,0xff,0xc3,0x16,0xd6,0xf8,0x21,0x98,0xd5,0x4b,
+/* 0x007020 */ 0x4d,0x2f,0xa3,0x60,0x4b,0x09,0xbe,0xb2,0x68,0x3f,0x4a,0x9b,0x7d,0x9e,0xd6,0xdc,
+/* 0x007030 */ 0x0e,0x5c,0x40,0xfe,0xbf,0x68,0xfd,0x2f,0x6b,0xe8,0x1e,0x54,0x3c,0x4c,0x08,0x76,
+/* 0x007040 */ 0x7f,0xb8,0xd3,0xe3,0xda,0x91,0x0d,0x45,0xef,0x2f,0xdd,0x96,0x04,0xe5,0x54,0x94,
+/* 0x007050 */ 0x96,0x66,0xc6,0xb7,0xdc,0xbe,0x44,0x32,0x97,0x1e,0xa1,0x11,0xf5,0xe5,0x29,0x14,
+/* 0x007060 */ 0x7f,0xfd,0xdc,0x31,0xbc,0x0b,0x4d,0x91,0x57,0xe3,0xa2,0x0d,0x43,0xb4,0x10,0x58,
+/* 0x007070 */ 0x6b,0xcd,0x60,0x15,0x08,0x99,0x59,0x9f,0x3b,0x26,0x80,0x62,0xd8,0xe1,0x72,0xf1,
+/* 0x007080 */ 0xfa,0x5f,0xac,0x1c,0xb0,0x1e,0x7b,0xc6,0xf7,0x84,0x78,0x21,0xf0,0x47,0x3d,0xda,
+/* 0x007090 */ 0x1e,0x3e,0x95,0xbc,0x66,0x6a,0xcd,0x2e,0x80,0x07,0x45,0x87,0xef,0x35,0xf1,0x21,
+/* 0x0070a0 */ 0x93,0x50,0x3b,0x46,0xbf,0xaf,0x79,0x15,0x4e,0x49,0x97,0x4a,0x1b,0x4a,0x4d,0xda,
+/* 0x0070b0 */ 0xb3,0x53,0x38,0x87,0xba,0x24,0x55,0xc5,0x68,0xeb,0x7c,0x9a,0xf5,0x21,0xd2,0x30,
+/* 0x0070c0 */ 0xd4,0xad,0x0b,0x11,0xf6,0xaf,0xfc,0x56,0xfd,0xaf,0x4e,0xb0,0x94,0xb7,0xc6,0xb9,
+/* 0x0070d0 */ 0xd5,0x6c,0x2c,0x23,0x8e,0xf4,0x5b,0x5b,0x54,0xad,0x95,0x1b,0xd5,0xdf,0x49,0xbd,
+/* 0x0070e0 */ 0x5a,0xf5,0x0a,0xcf,0x93,0xc2,0x3f,0xe6,0xeb,0xbf,0x24,0x27,0xa6,0x6e,0xb7,0xe6,
+/* 0x0070f0 */ 0xbd,0xdb,0x34,0x57,0x91,0x89,0x22,0x4c,0xb2,0x34,0x62,0xb5,0x9a,0x67,0x50,0xf8,
+/* 0x007100 */ 0x89,0x8d,0xbf,0xc8,0x73,0xf2,0xf9,0x2f,0x33,0x7b,0x36,0xb6,0x02,0x64,0x5f,0xd2,
+/* 0x007110 */ 0xe7,0x02,0xd8,0xce,0xbb,0x2e,0x70,0x7d,0x8c,0x18,0xec,0x17,0xdf,0xb7,0xf4,0x5f,
+/* 0x007120 */ 0xf4,0xf7,0xc8,0x79,0xfa,0x2f,0x2b,0x6b,0xf1,0x5b,0xbe,0x9e,0x6f,0x02,0x6a,0x8b,
+/* 0x007130 */ 0x69,0xb5,0xaf,0x8a,0x17,0x34,0x3c,0xbc,0xb8,0xcf,0x94,0x42,0x47,0xc4,0x53,0xf4,
+/* 0x007140 */ 0xf7,0x38,0xeb,0xa4,0xf3,0xc7,0x23,0xe1,0x75,0x62,0x5c,0xce,0xa2,0xd9,0xa8,0x54,
+/* 0x007150 */ 0x4f,0x9e,0xd3,0xc6,0x34,0x4e,0x23,0xb6,0x14,0x79,0x2c,0x8f,0x8e,0x89,0xea,0x7f,
+/* 0x007160 */ 0x59,0x0d,0x34,0x12,0xc0,0x68,0x2b,0x37,0x1f,0x1c,0xe9,0xf1,0x7e,0xca,0xdd,0x82,
+/* 0x007170 */ 0xa9,0x9c,0x69,0x7a,0x24,0xf6,0x31,0xfd,0x97,0x73,0xff,0xe2,0x78,0x10,0x0c,0xc4,
+/* 0x007180 */ 0x9e,0x46,0xc9,0x6c,0xd0,0x90,0x15,0xff,0x31,0x65,0x8f,0x62,0xaf,0x75,0xe0,0xcd,
+/* 0x007190 */ 0x5b,0x66,0xee,0x5f,0x7d,0x14,0x7f,0x3d,0xaa,0x38,0xf1,0x97,0x95,0x9f,0x90,0x93,
+/* 0x0071a0 */ 0xc7,0x84,0x36,0xf4,0x22,0xfa,0xd7,0x6c,0x47,0xbb,0x70,0x02,0xfd,0x27,0x57,0xd6,
+/* 0x0071b0 */ 0xaa,0x0f,0x2f,0x95,0x0f,0xaa,0x6c,0x7d,0x66,0xe7,0x87,0xa8,0xb0,0xfe,0x17,0xd1,
+/* 0x0071c0 */ 0x7f,0x35,0xe6,0x2a,0x56,0x8a,0x4f,0x35,0x7d,0xa4,0x3f,0x72,0xd1,0xbb,0xac,0x79,
+/* 0x0071d0 */ 0x08,0x7d,0xcd,0x69,0xc4,0xd2,0xbe,0x95,0xd3,0xdc,0x02,0xf3,0x48,0x3c,0xca,0xea,
+/* 0x0071e0 */ 0x7f,0x95,0xef,0x9a,0xca,0xed,0x3b,0x8d,0x0e,0x91,0x17,0x6c,0x49,0x73,0x06,0xc0,
+/* 0x0071f0 */ 0xb2,0x46,0xba,0xc8,0xed,0x4d,0xba,0x2f,0x43,0x32,0x31,0x1c,0xfc,0x57,0xe7,0x6f,
+/* 0x007200 */ 0x15,0x87,0x09,0xb6,0x97,0x35,0xce,0xe3,0xc6,0x0b,0xea,0x47,0xfa,0xf3,0xc3,0xde,
+/* 0x007210 */ 0x7f,0x10,0x63,0xda,0xc7,0x29,0x16,0x3a,0x1e,0xd7,0xeb,0xe2,0x6d,0x27,0xab,0xe6,
+/* 0x007220 */ 0x98,0xf1,0xe1,0x49,0x3a,0x5f,0xbb,0xf0,0xfe,0xf5,0x67,0xbb,0xb6,0x57,0xad,0x61,
+/* 0x007230 */ 0x9d,0x0d,0x96,0xfe,0x84,0xb0,0x5d,0xdf,0x19,0x08,0x3d,0x21,0x3e,0x82,0x4e,0x68,
+/* 0x007240 */ 0x56,0x0e,0x67,0xa5,0x26,0xb7,0x0b,0xe5,0xa6,0x47,0xe2,0x45,0x41,0xa5,0x2b,0x62,
+/* 0x007250 */ 0x9e,0xa4,0x8b,0xa4,0xdf,0x6f,0x81,0xf9,0x6a,0x27,0xcf,0xa9,0x34,0x16,0xb7,0xfb,
+/* 0x007260 */ 0xdb,0xd1,0x8b,0xe6,0x73,0xd6,0xc8,0x2a,0x92,0x15,0x3c,0x28,0xce,0xfc,0xc3,0xe5,
+/* 0x007270 */ 0x92,0xe3,0x94,0x38,0xfc,0x55,0x88,0xed,0x5f,0x27,0x4b,0x22,0xc2,0x25,0x7f,0xd2,
+/* 0x007280 */ 0x95,0x36,0xba,0x50,0x40,0x9a,0x9a,0x62,0xf3,0x5e,0xbe,0xbd,0x4b,0x45,0x5d,0x4a,
+/* 0x007290 */ 0x93,0xcb,0x9c,0xf7,0x41,0x1a,0xaf,0xbe,0x45,0xf2,0xac,0xe6,0x9b,0x63,0xb8,0x70,
+/* 0x0072a0 */ 0xc8,0x0b,0x3c,0xd1,0x69,0x1c,0xe0,0x79,0x33,0xc9,0x9f,0xfa,0x3f,0x9c,0xb4,0xc0,
+/* 0x0072b0 */ 0x68,0xeb,0xa9,0x7c,0x1a,0xf5,0x69,0x6c,0x9c,0x8f,0xe8,0xbb,0x73,0xe1,0x74,0x77,
+/* 0x0072c0 */ 0x4d,0xd3,0x51,0xf3,0x7c,0x95,0x8c,0xb3,0x8e,0x76,0xf1,0xb3,0x43,0x3b,0x4b,0x44,
+/* 0x0072d0 */ 0x9d,0x77,0x01,0x4e,0xd1,0xb5,0x06,0xe3,0xdf,0xd6,0xe1,0xe5,0xeb,0xa6,0xf9,0x1c,
+/* 0x0072e0 */ 0xdc,0xc8,0xe1,0xed,0xcf,0xaa,0x40,0x3a,0x42,0x7f,0xcf,0x56,0xe5,0xa0,0x74,0xc7,
+/* 0x0072f0 */ 0xc5,0xa5,0x4e,0x95,0xda,0x07,0xfe,0xfe,0x06,0x1c,0x79,0x46,0x0d,0xf7,0x4a,0x71,
+/* 0x007300 */ 0x36,0x2a,0x43,0xdb,0x8d,0xa5,0xa3,0xd3,0x2e,0x49,0x37,0xd1,0x42,0xbc,0x9f,0x8a,
+/* 0x007310 */ 0xf5,0x16,0xfe,0xd2,0xe8,0x73,0x74,0x0e,0x5b,0x51,0x13,0x00,0xdc,0x58,0x00,0xb6,
+/* 0x007320 */ 0x6c,0xd7,0x70,0xfc,0xec,0x41,0x55,0x06,0x4a,0x0b,0x5b,0xd0,0xda,0x7e,0x16,0x3f,
+/* 0x007330 */ 0xbf,0x1f,0xaf,0xd1,0x65,0x55,0x08,0x15,0xe2,0x2f,0x8b,0xed,0x22,0x8d,0x12,0x2b,
+/* 0x007340 */ 0xe0,0xac,0x87,0xe7,0xac,0xc3,0x01,0xe7,0xa6,0xa6,0x7f,0x46,0xef,0xeb,0x3f,0xb0,
+/* 0x007350 */ 0x78,0x10,0x0d,0xaf,0xb4,0xc1,0xfc,0xfa,0x5f,0xe5,0x5e,0x17,0xa7,0x6a,0xa9,0x01,
+/* 0x007360 */ 0x2c,0x6c,0x72,0x2e,0x4d,0xeb,0xca,0x92,0x50,0x41,0x00,0xd6,0xd5,0xdd,0xe6,0x27,
+/* 0x007370 */ 0xbc,0x1b,0xb6,0x5a,0x59,0x90,0x2c,0xfe,0x8b,0xbe,0x3d,0xfa,0x7a,0x8e,0xff,0x82,
+/* 0x007380 */ 0xa1,0x2b,0xe5,0xbe,0x8b,0x37,0x84,0xd3,0xc4,0x2f,0xa5,0x79,0xb9,0x70,0xd3,0x9c,
+/* 0x007390 */ 0xd3,0x9b,0xe6,0xd1,0x90,0x89,0xbf,0x26,0x2b,0x74,0x5d,0xe5,0xf0,0x97,0xa3,0xb1,
+/* 0x0073a0 */ 0xd1,0x6c,0x84,0x73,0xe2,0x3b,0xe8,0x18,0xfa,0xa6,0x61,0x7a,0xa1,0x20,0x9f,0x81,
+/* 0x0073b0 */ 0x71,0xc1,0x5d,0xf0,0x17,0x0e,0xda,0x07,0xdb,0x32,0xff,0x32,0x6e,0x5e,0x79,0x81,
+/* 0x0073c0 */ 0x9e,0x6f,0xb4,0x52,0x21,0x98,0x5a,0x3a,0x46,0x2c,0x23,0x62,0xe6,0xdf,0xaa,0xe3,
+/* 0x0073d0 */ 0xfd,0x37,0x78,0xfd,0xd7,0x07,0xed,0x73,0xce,0x94,0x7e,0xfd,0x1f,0x77,0x1c,0x26,
+/* 0x0073e0 */ 0x1b,0xaa,0xbb,0xc7,0x0f,0x6c,0x57,0x4c,0x95,0xf7,0x3d,0x6e,0x77,0x96,0x0f,0x50,
+/* 0x0073f0 */ 0x44,0xc6,0xf8,0xaf,0x11,0x07,0xff,0x55,0x12,0x34,0x96,0x61,0x78,0x0b,0x18,0xf6,
+/* 0x007400 */ 0x90,0x49,0x72,0x69,0x25,0x88,0x64,0x08,0x00,0xe0,0xf5,0x0f,0x48,0xbd,0x00,0x78,
+/* 0x007410 */ 0x15,0x3b,0x09,0xaa,0xa8,0xfe,0x4b,0x7a,0x88,0x9b,0x77,0xd6,0x88,0x63,0x44,0x4f,
+/* 0x007420 */ 0xf2,0x4e,0x5d,0xf3,0xf2,0x53,0x13,0x79,0xfe,0xab,0xdc,0x11,0x3f,0x03,0x3b,0xd9,
+/* 0x007430 */ 0xc4,0xfb,0x27,0xa0,0xd8,0xbe,0x49,0x3b,0xbf,0x07,0x73,0x1a,0x46,0x50,0x6f,0x0b,
+/* 0x007440 */ 0xfd,0x16,0xc6,0x39,0x47,0xc6,0x79,0x1b,0xc7,0x7f,0x39,0xf0,0xd7,0x9f,0x25,0xcb,
+/* 0x007450 */ 0xb4,0xc1,0x9e,0x38,0xbd,0x2c,0x67,0x36,0xd8,0x7c,0x81,0xf3,0xc0,0x98,0x99,0x5c,
+/* 0x007460 */ 0x6a,0xf3,0x5f,0x0a,0x1f,0xcf,0x1f,0x92,0xf0,0x77,0xa1,0x1c,0x55,0x63,0x59,0xf3,
+/* 0x007470 */ 0x4a,0x87,0xb7,0x07,0xfc,0x1c,0x64,0x56,0xb9,0xcf,0xda,0x34,0xaf,0x3a,0xf1,0x57,
+/* 0x007480 */ 0x4b,0x98,0x87,0x5d,0xb5,0x87,0xc2,0xa3,0xc2,0xb8,0xd0,0x6d,0xd4,0x0c,0xb2,0x41,
+/* 0x007490 */ 0x08,0x6b,0xa5,0xd3,0xe9,0x29,0x84,0xee,0xce,0x4c,0xc6,0x57,0xda,0x6b,0x4e,0xb0,
+/* 0x0074a0 */ 0x5b,0xf3,0x79,0xfe,0x2b,0x0f,0x7f,0x51,0x6e,0x2b,0x69,0x84,0x07,0x1f,0x60,0x89,
+/* 0x0074b0 */ 0x1c,0xc8,0x4d,0xe6,0x4b,0xc3,0x8d,0x48,0x80,0x9b,0xdc,0x8c,0x83,0xff,0x4a,0x2b,
+/* 0x0074c0 */ 0x4f,0x21,0x87,0xd5,0x83,0xbc,0x92,0xe9,0x92,0x1e,0x30,0x91,0x82,0xe7,0x94,0xff,
+/* 0x0074d0 */ 0x41,0xb4,0x45,0xaf,0x55,0xe5,0xe7,0xfc,0xa0,0x5d,0xc2,0x9d,0x9f,0x03,0x22,0xcc,
+/* 0x0074e0 */ 0xc1,0x7f,0x75,0xc8,0xf0,0x47,0x4d,0xfc,0xa5,0xc7,0x46,0x4a,0xe7,0x35,0x6f,0xd0,
+/* 0x0074f0 */ 0x92,0x3b,0x89,0xda,0x8b,0x40,0x33,0xbd,0x2c,0x24,0x3e,0xa6,0xe3,0xd1,0xe8,0x78,
+/* 0x007500 */ 0x6c,0x7e,0xd3,0x31,0xfd,0x4a,0xa6,0x21,0xe7,0xbb,0x9f,0x00,0x31,0x47,0xfd,0xe5,
+/* 0x007510 */ 0xe9,0x4e,0xff,0xf9,0x01,0xdf,0x95,0x0f,0xc7,0x55,0xa2,0xed,0xba,0xc2,0xad,0x6c,
+/* 0x007520 */ 0xda,0x1d,0x57,0xac,0xa5,0x8c,0x31,0x62,0xfd,0xec,0xd6,0x82,0x7e,0x0e,0x7f,0x39,
+/* 0x007530 */ 0xf8,0xaf,0x8a,0x18,0x2c,0xcb,0x97,0xd2,0x5f,0x50,0xfe,0x0b,0xde,0x9f,0x17,0x30,
+/* 0x007540 */ 0x88,0x40,0x03,0xc0,0x7f,0xa9,0xc4,0x11,0xf1,0x08,0x84,0x19,0x3b,0xc5,0x00,0xca,
+/* 0x007550 */ 0x26,0xa2,0x1c,0xff,0x65,0x38,0xea,0xa7,0xa8,0xd5,0xc0,0x7f,0x9d,0xd1,0x2d,0xfe,
+/* 0x007560 */ 0x8b,0xdc,0x8a,0x53,0x45,0x98,0x4e,0xb6,0xb6,0xd5,0xe0,0x0d,0x15,0x17,0x2a,0xa0,
+/* 0x007570 */ 0x36,0x0a,0xc7,0x7f,0x21,0x5e,0xff,0x05,0x40,0x4c,0x7e,0xce,0x4e,0x44,0x24,0x14,
+/* 0x007580 */ 0x64,0xba,0x9b,0x8e,0x7c,0x6d,0x9c,0x4c,0xc1,0x8b,0x80,0x85,0x2b,0x84,0x29,0x68,
+/* 0x007590 */ 0x95,0xd3,0xff,0x50,0xe2,0xf3,0xe7,0xed,0xb3,0x41,0xab,0xc8,0x17,0x39,0x86,0xe2,
+/* 0x0075a0 */ 0x8e,0x0d,0x93,0x6a,0xf8,0xa4,0x67,0x8e,0xdb,0x27,0x24,0x69,0x3e,0xb6,0xc5,0x7f,
+/* 0x0075b0 */ 0xe5,0x59,0x6a,0x78,0x71,0xb0,0x24,0x5f,0x74,0x45,0x4d,0xff,0x0d,0xf2,0x15,0x64,
+/* 0x0075c0 */ 0xf1,0xb0,0xcc,0xe8,0x82,0x5b,0xe8,0x98,0x56,0x9b,0xf1,0x0c,0x8b,0x50,0xd0,0xc7,
+/* 0x0075d0 */ 0xe1,0x7f,0x58,0x0c,0x7f,0xb9,0x26,0xae,0xc8,0x0c,0x45,0x60,0x25,0xc8,0x51,0xd4,
+/* 0x0075e0 */ 0x21,0x59,0x91,0xcf,0x3f,0xe4,0xe3,0x4c,0x57,0xf4,0x51,0x5f,0xaa,0x6a,0x58,0xba,
+/* 0x0075f0 */ 0x21,0xd9,0xee,0x04,0x1d,0xa4,0x71,0x38,0xc5,0xc2,0x4b,0x8c,0xdf,0x35,0xde,0x88,
+/* 0x007600 */ 0xa3,0x38,0xff,0x05,0x56,0x84,0x2a,0x89,0x9f,0x57,0xd8,0x11,0xf5,0x66,0x08,0xa4,
+/* 0x007610 */ 0xb5,0x1a,0x6d,0x09,0xb9,0x22,0x6c,0xd3,0x42,0x9b,0x31,0xfe,0xfa,0x5c,0xe3,0xf9,
+/* 0x007620 */ 0xaf,0x7a,0xc9,0x91,0x6d,0xf8,0x5d,0x7c,0x0b,0x0d,0xe7,0x45,0xe6,0x9b,0x69,0xfd,
+/* 0x007630 */ 0x65,0x83,0x5e,0x11,0x02,0x5a,0x45,0x2a,0x31,0xac,0x1e,0x90,0x79,0xfe,0x2b,0x54,
+/* 0x007640 */ 0xce,0xe3,0xaf,0x90,0x4a,0xd4,0x5e,0x19,0x62,0x9c,0xc2,0xbb,0x40,0x08,0x49,0xc9,
+/* 0x007650 */ 0xea,0x13,0x5f,0x5c,0xe1,0x4f,0xb4,0xec,0xec,0x0d,0x39,0xeb,0x2f,0x53,0x92,0x82,
+/* 0x007660 */ 0x66,0x1b,0xaa,0x51,0xa2,0xf6,0xea,0x2a,0x52,0x51,0x17,0x37,0x8e,0xea,0x53,0x68,
+/* 0x007670 */ 0x9f,0xb6,0x04,0x8c,0xb3,0xea,0xe0,0xbf,0x1c,0xf8,0x2b,0xd4,0xb0,0x78,0xe3,0xa6,
+/* 0x007680 */ 0x24,0x0d,0xe3,0x6d,0xfd,0x17,0xb0,0x5d,0xb7,0x4d,0x21,0x98,0x45,0x60,0x7d,0xe9,
+/* 0x007690 */ 0x72,0xf0,0x5f,0x0e,0x7c,0xd1,0x11,0xfb,0xb6,0x2f,0x95,0x9c,0xad,0xde,0x46,0x0b,
+/* 0x0076a0 */ 0x4d,0xff,0x0d,0xf2,0x09,0x03,0xfe,0xaa,0x03,0x06,0x93,0xd0,0x5e,0xad,0x5e,0xfc,
+/* 0x0076b0 */ 0xb7,0xd2,0xcc,0xac,0x63,0x35,0xe3,0xbf,0x1c,0xf8,0x4b,0xab,0x51,0x3c,0x9d,0xee,
+/* 0x0076c0 */ 0xca,0xa2,0x6e,0xf3,0x33,0x99,0xff,0x46,0x3b,0xde,0x80,0x3a,0x85,0x73,0xf2,0x41,
+/* 0x0076d0 */ 0x87,0xff,0x61,0x2b,0xe2,0x4d,0xe6,0x55,0x8c,0xbf,0xf0,0x18,0xb2,0x2b,0x88,0x8c,
+/* 0x0076e0 */ 0x33,0x7c,0x4d,0x50,0xf6,0x4b,0xd5,0x96,0x28,0xfe,0x7e,0x65,0xef,0xaa,0xea,0x67,
+/* 0x0076f0 */ 0x4a,0x96,0x05,0x7e,0x8f,0xf6,0x1a,0x44,0x79,0x97,0x60,0xfc,0x97,0x03,0x7f,0x49,
+/* 0x007700 */ 0x35,0x8f,0x2e,0xa1,0xfe,0x87,0x96,0x11,0x62,0x4d,0x2b,0xf1,0xdf,0xd8,0xef,0x9a,
+/* 0x007710 */ 0x69,0xe3,0xaf,0x87,0x87,0x84,0x6b,0xe8,0x37,0x4e,0xff,0xc3,0x17,0x8b,0xe4,0x1f,
+/* 0x007720 */ 0xca,0xfb,0x49,0xa3,0x99,0x21,0xb2,0x1e,0x42,0x7b,0x45,0xdb,0x4d,0xfc,0xf5,0xad,
+/* 0x007730 */ 0x5f,0x6c,0x16,0xff,0x88,0x6e,0x68,0x60,0xd6,0x21,0xee,0xa4,0xfb,0x97,0x7b,0xea,
+/* 0x007740 */ 0x8e,0xbc,0xe7,0x28,0xe2,0x0e,0xe9,0xae,0xfa,0xaf,0x06,0xad,0x8c,0x12,0x6a,0x3c,
+/* 0x007750 */ 0xff,0xd5,0x5a,0x98,0x7f,0x38,0x4d,0x75,0x65,0x69,0xfe,0xa1,0x99,0xda,0x9a,0x84,
+/* 0x007760 */ 0xd7,0x66,0x0e,0xf5,0x6f,0xb1,0xa4,0x61,0x8c,0x11,0x73,0xf0,0x5f,0x31,0x3b,0xc9,
+/* 0x007770 */ 0x90,0xe4,0x1f,0x6e,0xe8,0xaa,0x4d,0x9b,0xfc,0x97,0xee,0xbb,0x08,0xd4,0x98,0x46,
+/* 0x007780 */ 0xf4,0x5f,0x23,0xae,0x53,0x7a,0x0d,0x70,0x64,0x17,0x09,0x23,0x56,0x66,0xfb,0x6f,
+/* 0x007790 */ 0xb8,0xf2,0xf4,0xcb,0x94,0xbe,0xd7,0xc3,0x54,0xed,0x45,0xd7,0x31,0x92,0xce,0x14,
+/* 0x0077a0 */ 0x04,0x8b,0x86,0x01,0x57,0x12,0x64,0xb0,0xe4,0x64,0x89,0x9e,0x28,0x32,0xfe,0x0b,
+/* 0x0077b0 */ 0x4d,0xe5,0xf1,0x57,0x9a,0xe4,0xbc,0x3d,0x88,0xdf,0x85,0xea,0x8c,0xc5,0x7f,0xad,
+/* 0x0077c0 */ 0x85,0xf5,0x79,0x8b,0x56,0x45,0x14,0x61,0xf2,0x6a,0xb9,0x3a,0x25,0xaf,0x48,0x9c,
+/* 0x0077d0 */ 0x51,0xdf,0xd3,0x2a,0xc1,0x23,0x71,0xc4,0xc2,0x5f,0x8a,0xcd,0x7f,0x65,0x66,0x8d,
+/* 0x0077e0 */ 0xf8,0x6e,0x79,0xe0,0x8c,0x71,0xa1,0x5a,0xca,0xf8,0x2f,0xbc,0x08,0xe3,0x5b,0x5f,
+/* 0x0077f0 */ 0xeb,0x73,0x89,0xff,0x86,0xbc,0x46,0x6f,0xc8,0x85,0x3b,0xc4,0x53,0xe8,0x2b,0xbd,
+/* 0x007800 */ 0xb7,0x80,0xff,0xb2,0x70,0x41,0x6c,0xd0,0xf7,0x5e,0xf3,0x80,0xb4,0x12,0x86,0x97,
+/* 0x007810 */ 0xf1,0x5f,0x08,0x0e,0x00,0xd1,0x15,0x5a,0x11,0x6c,0x40,0xe6,0x17,0x61,0x0e,0x7f,
+/* 0x007820 */ 0x69,0x92,0x6d,0xa9,0xa1,0xdd,0xe9,0x9a,0x7b,0xdd,0x37,0xe6,0xf9,0xa1,0x76,0x45,
+/* 0x007830 */ 0x8f,0xc4,0xbd,0xfb,0xcd,0x13,0xfb,0x91,0x69,0x97,0x5b,0x6e,0x74,0xce,0xca,0x79,
+/* 0x007840 */ 0xf7,0x89,0x97,0xb5,0x1b,0x89,0x68,0xdc,0x77,0x52,0x9c,0x83,0x3e,0x76,0xe6,0x1f,
+/* 0x007850 */ 0x56,0xf0,0xbe,0xf1,0xb0,0x01,0xad,0xc0,0x18,0x36,0x63,0x3c,0x1c,0xf1,0xd4,0x9b,
+/* 0x007860 */ 0x49,0x1a,0x48,0x3c,0xa6,0xef,0xc5,0xa3,0x1a,0x9a,0x1f,0x38,0x8b,0x32,0xe9,0xca,
+/* 0x007870 */ 0x10,0xfe,0x1c,0xca,0x41,0xbf,0xcc,0xf3,0x5f,0xfa,0x1b,0x56,0xe9,0x6a,0x69,0x2e,
+/* 0x007880 */ 0xc5,0xb9,0x7f,0x8d,0xf6,0xa2,0x4a,0xb4,0xc8,0x2a,0xb2,0xbc,0x1c,0x3f,0xf0,0x37,
+/* 0x007890 */ 0x6a,0x65,0x1f,0xa1,0xc6,0x7a,0x03,0x95,0x2d,0x1e,0x84,0x07,0xa5,0xd3,0x81,0xbf,
+/* 0x0078a0 */ 0xe2,0xbc,0xcf,0x1b,0x84,0x97,0x4b,0x22,0xe5,0x5e,0x1c,0x93,0x84,0x90,0x79,0xc5,
+/* 0x0078b0 */ 0xef,0x41,0x4d,0xe4,0xb8,0x38,0x27,0x47,0x14,0x08,0x57,0x54,0x44,0x9e,0xa3,0x4f,
+/* 0x0078c0 */ 0xcc,0x7f,0x31,0x53,0xf7,0x30,0x24,0xd2,0x23,0x99,0x25,0x10,0x22,0x5f,0x6a,0x0a,
+/* 0x0078d0 */ 0xc8,0xe7,0xc1,0x9a,0x23,0x02,0x1a,0x84,0x6d,0x39,0xdf,0xbe,0x25,0x35,0xc2,0x51,
+/* 0x0078e0 */ 0x7d,0x42,0xfe,0xeb,0x16,0x25,0x25,0x07,0xc8,0xe7,0xf0,0x18,0xbd,0xf2,0x02,0x28,
+/* 0x0078f0 */ 0x2e,0x77,0x31,0x6a,0x0c,0x70,0x41,0x67,0x43,0x9a,0xa4,0xa8,0xdd,0xd2,0x79,0xfe,
+/* 0x007900 */ 0xab,0x52,0xe1,0xea,0x52,0xdd,0xa1,0xde,0x86,0x3f,0x45,0x8f,0xa1,0x05,0x32,0x4d,
+/* 0x007910 */ 0xb8,0x12,0x1a,0xf5,0xa5,0xc6,0xb4,0x71,0xe9,0xb6,0x15,0x8b,0xe2,0x3e,0xeb,0xe2,
+/* 0x007920 */ 0x62,0x05,0x46,0x0a,0x3c,0xff,0x75,0xce,0xa1,0xff,0x12,0x02,0x46,0x28,0xd3,0xb4,
+/* 0x007930 */ 0x4b,0xe8,0x82,0x83,0x29,0x16,0x2d,0xab,0x9e,0xae,0xc4,0x25,0xb4,0xbf,0x0b,0x18,
+/* 0x007940 */ 0xb1,0x69,0xbb,0xf0,0x67,0x35,0x93,0x52,0xcf,0x6b,0x27,0xe6,0xbf,0x98,0x8f,0x47,
+/* 0x007950 */ 0x18,0xed,0x84,0xe5,0xd4,0x7a,0xce,0x3e,0x0c,0xcd,0xf6,0xdb,0x5e,0x79,0x01,0xad,
+/* 0x007960 */ 0x8b,0x94,0x38,0x74,0xf2,0x5f,0xe5,0x3c,0xff,0xa5,0xaa,0x03,0xad,0x11,0x61,0xbd,
+/* 0x007970 */ 0x9e,0x46,0x61,0x99,0xf1,0x5f,0xe1,0xf8,0x03,0x4a,0xd3,0x80,0xda,0x2b,0x87,0xfb,
+/* 0x007980 */ 0xbb,0xeb,0x20,0xbc,0x8c,0xab,0x15,0x32,0x64,0x1a,0xac,0x72,0xf0,0x5f,0xda,0x7a,
+/* 0x007990 */ 0x5e,0xff,0xa5,0xd4,0xf5,0xb5,0xfd,0xbb,0x58,0x9d,0x19,0x79,0x66,0xbe,0x3c,0x63,
+/* 0x0079a0 */ 0x2f,0x41,0xbe,0x35,0xba,0xef,0x4d,0xf1,0x4b,0x83,0x8e,0xf3,0x94,0x2f,0xf5,0x1b,
+/* 0x0079b0 */ 0xcb,0x7f,0xd4,0x4e,0x72,0xec,0xb3,0x4e,0xfe,0x6b,0x3a,0xaf,0xb3,0x8b,0xc6,0x0e,
+/* 0x0079c0 */ 0x4f,0xf9,0x4a,0x1c,0xd7,0xcf,0x44,0x1a,0xa5,0x19,0x38,0x08,0x94,0xee,0xa0,0x9f,
+/* 0x0079d0 */ 0x01,0xda,0x1a,0x77,0x7d,0x0d,0x8e,0x88,0x57,0xc5,0x83,0xb9,0xf1,0xa9,0x8d,0x4a,
+/* 0x0079e0 */ 0x6d,0x5f,0x72,0x14,0x8d,0xff,0x1f,0xf8,0xaf,0x9f,0xa9,0x73,0x0d,0x9f,0x51,0x37,
+/* 0x0079f0 */ 0x1b,0xff,0x89,0x1f,0x0f,0x7a,0xc1,0x29,0xe2,0x78,0xa7,0x75,0x06,0xb2,0x10,0xca,
+/* 0x007a00 */ 0xea,0x15,0xf8,0x1f,0x2a,0xbf,0x2e,0xb0,0x34,0xc4,0x40,0x6c,0x05,0xc6,0x32,0xa0,
+/* 0x007a10 */ 0xae,0xda,0xd3,0x1e,0x32,0x64,0xbd,0xe9,0xb6,0xde,0x8d,0x02,0x56,0x9f,0x38,0x0e,
+/* 0x007a20 */ 0xcc,0xac,0xce,0xa3,0xf4,0x7d,0xce,0xe6,0x7d,0x17,0x26,0xe1,0x18,0xc4,0x9f,0xa7,
+/* 0x007a30 */ 0x5f,0x52,0xf6,0x48,0x6a,0x76,0x31,0x12,0x3e,0x56,0xcd,0xba,0xe4,0x12,0x06,0x62,
+/* 0x007a40 */ 0x71,0x39,0xca,0xe5,0x35,0xd1,0xfd,0x2b,0x37,0xfd,0x92,0x52,0xc8,0xef,0x1c,0x40,
+/* 0x007a50 */ 0x0f,0xf5,0x2f,0xa1,0xb0,0xeb,0x2d,0xc3,0xdd,0x43,0x98,0xd0,0x87,0x6c,0x44,0x16,
+/* 0x007a60 */ 0xb2,0x3b,0xfb,0x19,0xfe,0x72,0x39,0xf1,0x97,0xf5,0xa1,0xe1,0xf1,0xc9,0x7a,0xf0,
+/* 0x007a70 */ 0xf8,0xb8,0x02,0x46,0xcd,0x40,0x72,0xdc,0x64,0x2b,0x76,0xa1,0xe7,0x51,0x43,0x9c,
+/* 0x007a80 */ 0xcf,0x1f,0xcb,0x15,0xc1,0x5f,0x36,0x10,0x43,0x0b,0xa0,0x4c,0xdb,0x5f,0x34,0xf0,
+/* 0x007a90 */ 0xff,0xa9,0x36,0x92,0xe3,0x02,0xd5,0x88,0x4d,0x81,0x19,0x6c,0xd4,0x6a,0xef,0xa9,
+/* 0x007aa0 */ 0xff,0x22,0x0d,0xfc,0x46,0x09,0xf8,0x5f,0x75,0x7a,0x82,0xda,0xd1,0xc9,0xd1,0x43,
+/* 0x007ab0 */ 0x38,0x1a,0x1c,0xc0,0xff,0x5f,0x73,0x6c,0x8e,0xcc,0xcb,0xe5,0x75,0x9f,0x28,0xea,
+/* 0x007ac0 */ 0xbf,0x61,0xf3,0x5f,0x23,0x9e,0xd4,0xe4,0x1a,0xb4,0x11,0x9c,0x85,0xde,0x48,0x8c,
+/* 0x007ad0 */ 0x93,0xe7,0x90,0x1c,0x45,0xc8,0xd8,0xf4,0x72,0xbc,0xf0,0x44,0xf5,0xbf,0xcc,0x83,
+/* 0x007ae0 */ 0xc4,0x31,0x3c,0xef,0x93,0x51,0xd2,0xb5,0xc3,0x90,0x83,0x78,0xdb,0xea,0x66,0x9c,
+/* 0x007af0 */ 0x26,0x1c,0x62,0x48,0xa1,0x59,0x76,0x06,0x29,0xc3,0x5f,0x39,0xa7,0xff,0x86,0xd9,
+/* 0x007b00 */ 0x48,0x55,0xe6,0xba,0x5b,0x85,0xbf,0x12,0xd6,0xa4,0xa9,0x41,0xba,0xb6,0x86,0x5a,
+/* 0x007b10 */ 0x23,0x9e,0x95,0xde,0xa3,0x00,0xc1,0xfa,0x57,0x97,0x8b,0xd7,0xff,0x62,0x89,0x88,
+/* 0x007b20 */ 0xa8,0xbe,0xc5,0x07,0xe9,0x04,0x1f,0xa2,0xd9,0x86,0x57,0x15,0x61,0xde,0x67,0x5b,
+/* 0x007b30 */ 0x7d,0x90,0x37,0x22,0x7a,0xf3,0xf4,0x5f,0x46,0xa9,0x13,0x7f,0xb1,0x89,0xa3,0x8a,
+/* 0x007b40 */ 0xb0,0x33,0xe8,0x4e,0xb0,0xb1,0x0f,0xcf,0xce,0x6d,0x87,0xed,0xa1,0x56,0x76,0x45,
+/* 0x007b50 */ 0xbc,0x17,0xff,0xc5,0x1a,0x5a,0x94,0x3e,0x07,0xb2,0xc1,0xbd,0x83,0xe2,0x97,0x0e,
+/* 0x007b60 */ 0x99,0x9e,0xc6,0x77,0x36,0xf1,0x97,0x92,0x77,0xee,0x47,0x65,0x5f,0x72,0xe5,0x21,
+/* 0x007b70 */ 0x7a,0xca,0xa7,0x55,0x66,0xd7,0xb6,0x07,0x6e,0x0b,0x13,0x56,0x42,0x19,0x0d,0x92,
+/* 0x007b80 */ 0xdf,0x53,0x59,0x50,0xff,0x8b,0x8d,0xf3,0x28,0xd8,0x1e,0x0a,0x6b,0xf4,0x10,0x19,
+/* 0x007b90 */ 0x67,0x9d,0x97,0xd7,0xad,0x28,0x5a,0xff,0xab,0xe8,0x77,0x8a,0xd2,0xa3,0x9e,0x77,
+/* 0x007ba0 */ 0x56,0xe3,0xd7,0x4f,0x52,0x41,0x06,0x3b,0xe0,0x48,0x9b,0xcf,0x15,0xd1,0x7f,0x5d,
+/* 0x007bb0 */ 0x2a,0x52,0xff,0x0b,0x1a,0xb3,0xc0,0x88,0xe3,0x07,0xfa,0x11,0xf4,0xbe,0xee,0xed,
+/* 0x007bc0 */ 0x78,0x65,0x44,0x39,0x02,0x0b,0xa3,0xed,0xc8,0xd1,0x7c,0xef,0xfa,0x5f,0xc4,0xfc,
+/* 0x007bd0 */ 0x41,0x88,0xdd,0x07,0x06,0x6b,0xf2,0x98,0xab,0xc8,0x91,0xbb,0x3a,0xa3,0x50,0xff,
+/* 0x007be0 */ 0xb5,0x2e,0x3f,0xff,0xd0,0x34,0x25,0xe8,0x00,0x93,0x0d,0xed,0x30,0x46,0x5b,0x72,
+/* 0x007bf0 */ 0x2a,0x19,0x44,0xff,0xc4,0x73,0x0a,0xde,0xd7,0xec,0xce,0x43,0x13,0xd6,0xff,0xa2,
+/* 0x007c00 */ 0x46,0x0a,0x8f,0xcb,0x29,0x61,0x12,0x7a,0x49,0x98,0xa3,0xc9,0x9b,0x85,0xa0,0xfc,
+/* 0x007c10 */ 0x12,0x4f,0x8d,0x75,0xf5,0xdc,0x3b,0xff,0xd0,0x04,0x74,0x87,0xee,0xcb,0x80,0x59,
+/* 0x007c20 */ 0x87,0x14,0xd0,0x66,0xbe,0x9c,0x90,0x9c,0x19,0x89,0x0f,0x17,0xd1,0x7f,0xa1,0xc2,
+/* 0x007c30 */ 0xfa,0x5f,0xb4,0x10,0xf3,0x7d,0x20,0x04,0x5b,0xa5,0x04,0x5b,0xdc,0x53,0x05,0x49,
+/* 0x007c40 */ 0xdb,0xaa,0x70,0x19,0x89,0x25,0xf7,0x15,0xea,0xbf,0xe4,0x78,0xfe,0x38,0x0b,0xc4,
+/* 0x007c50 */ 0x88,0xfe,0xfe,0xea,0xd5,0xc9,0xd0,0x36,0x03,0x37,0xca,0x56,0x77,0x57,0xa6,0xc7,
+/* 0x007c60 */ 0x5a,0xb8,0x3e,0xa5,0x9d,0x85,0xf9,0x87,0xeb,0x8b,0x8e,0xb3,0xda,0xd8,0x5a,0x36,
+/* 0x007c70 */ 0x84,0x30,0x4a,0x0a,0xc6,0x5a,0x4b,0x81,0x08,0xfb,0x54,0xe5,0x10,0x59,0xd9,0x26,
+/* 0x007c80 */ 0xbb,0xf3,0xf5,0xe2,0xfc,0x17,0x6b,0x74,0x3d,0x12,0xf7,0xbd,0x26,0x5e,0x87,0xea,
+/* 0x007c90 */ 0x00,0xed,0x38,0x1a,0xbc,0xb0,0xe9,0x30,0xb1,0xfe,0xb3,0x90,0xdd,0x34,0xe6,0x69,
+/* 0x007ca0 */ 0x69,0xe5,0x1f,0xce,0x2b,0xf4,0x9f,0x27,0xb2,0xaf,0x40,0xda,0xd3,0xa9,0xe1,0x46,
+/* 0x007cb0 */ 0xcb,0x36,0xd5,0xb3,0x56,0xf8,0x83,0xde,0x85,0x66,0x72,0x7d,0xdc,0x76,0xe7,0xb3,
+/* 0x007cc0 */ 0x26,0xff,0xd5,0xaf,0x14,0x19,0x67,0x39,0xf8,0xed,0x25,0xf7,0x81,0x11,0xa2,0x12,
+/* 0x007cd0 */ 0xd4,0x3c,0xe5,0x89,0xdf,0xa9,0xab,0x50,0x90,0xef,0x93,0xb8,0x87,0xfe,0x8b,0x36,
+/* 0x007ce0 */ 0xe4,0x5e,0x8a,0xad,0x96,0xcb,0xbd,0x12,0x58,0x62,0x6e,0x1a,0xe6,0x2a,0xc1,0xb9,
+/* 0x007cf0 */ 0x6a,0xe2,0x7c,0xe7,0xdf,0x33,0xfc,0x55,0x9e,0x8f,0x9b,0x58,0xba,0xa0,0x06,0x06,
+/* 0x007d00 */ 0xf2,0x18,0x40,0xbd,0x4b,0x7d,0xe3,0x0f,0x13,0xcf,0x4f,0xc1,0xc9,0x91,0x41,0xe7,
+/* 0x007d10 */ 0x31,0x86,0x77,0x50,0xd1,0xe7,0x48,0xb1,0xc5,0xbe,0x9e,0x69,0xc3,0x1a,0xa1,0x8c,
+/* 0x007d20 */ 0x37,0x41,0x21,0xe6,0xa2,0xdc,0x31,0xf0,0x5f,0x74,0xdd,0xe8,0x98,0x80,0xff,0x9a,
+/* 0x007d30 */ 0xaf,0xd4,0xe8,0x50,0xa4,0x1b,0xed,0x46,0x38,0xda,0xc9,0x49,0x59,0xea,0x36,0x4f,
+/* 0x007d40 */ 0xfb,0x84,0x57,0x79,0x2c,0xd5,0xa1,0xc9,0x7f,0x75,0x16,0xe5,0xbf,0x84,0xaa,0x6d,
+/* 0x007d50 */ 0x50,0x6d,0x59,0x27,0xb6,0x1b,0xe7,0x88,0x11,0x87,0xed,0x91,0x98,0x90,0x47,0x84,
+/* 0x007d60 */ 0x90,0x9d,0x7f,0x48,0xfe,0xeb,0x70,0xe4,0x35,0x71,0xfb,0x17,0x14,0xcb,0xf0,0xc1,
+/* 0x007d70 */ 0x82,0x66,0xc8,0x0b,0x71,0x1c,0xfe,0x3a,0x27,0x71,0xcd,0xc9,0x11,0x7b,0xff,0x62,
+/* 0x007d80 */ 0xf8,0xeb,0x3b,0x79,0xfc,0x17,0x6b,0x04,0x30,0xda,0x7a,0x1e,0xf0,0x97,0x5f,0xcd,
+/* 0x007d90 */ 0x85,0x56,0x08,0x03,0xda,0x16,0xd5,0xf2,0x48,0xac,0x05,0x81,0xad,0xf9,0xaf,0x9a,
+/* 0x007da0 */ 0xd8,0xf9,0xa1,0x5a,0xc8,0x7f,0x01,0x10,0x4b,0xcd,0xcb,0x95,0xdd,0xf4,0x3c,0x28,
+/* 0x007db0 */ 0xdd,0x79,0x69,0xd6,0x70,0x18,0x5f,0xd9,0xf6,0x99,0x31,0xcb,0xee,0x63,0xa6,0x26,
+/* 0x007dc0 */ 0xc2,0x95,0x23,0x16,0xff,0x55,0xb8,0xef,0x28,0xcf,0x2b,0x54,0xa7,0x20,0xdd,0x0a,
+/* 0x007dd0 */ 0x30,0xdb,0xc3,0x2f,0x74,0xab,0x4f,0x83,0xa3,0x33,0xc3,0x5f,0xfa,0x8b,0x9c,0xfe,
+/* 0x007de0 */ 0x8b,0x6b,0xd4,0x9d,0x03,0x23,0x44,0x19,0xfc,0xb1,0xdb,0xc0,0xff,0x30,0xbf,0x22,
+/* 0x007df0 */ 0x98,0xe5,0x88,0x38,0xa8,0x16,0xe6,0x1f,0xf2,0x06,0x1a,0x43,0xa5,0xa3,0x90,0x48,
+/* 0x007e00 */ 0xaf,0x56,0x66,0xdd,0xe0,0x7f,0xc8,0xef,0x5f,0xfd,0xb6,0xb7,0xfc,0x33,0x26,0xfe,
+/* 0x007e10 */ 0x52,0xf2,0xf9,0x2f,0xd2,0xd8,0x82,0x67,0xc7,0x4d,0xce,0x21,0x5d,0x95,0x86,0xbc,
+/* 0x007e20 */ 0x5c,0xf0,0x16,0xec,0x83,0xd6,0xec,0x98,0xf8,0x6b,0x82,0xfa,0x95,0x6a,0x0e,0xc3,
+/* 0x007e30 */ 0x6d,0x48,0x5a,0x0b,0x18,0xee,0x88,0xbf,0xcd,0xda,0xbf,0x4c,0xf3,0x3d,0x6b,0xde,
+/* 0x007e40 */ 0x4f,0xb2,0xf3,0xc3,0xa2,0xf1,0xe1,0x67,0x28,0x3a,0x58,0x76,0xcd,0x03,0xfe,0x87,
+/* 0x007e50 */ 0xc4,0xb4,0xbc,0xc1,0x74,0xdb,0x20,0x7d,0x4e,0xfa,0x22,0x76,0x3c,0x66,0xf9,0x6f,
+/* 0x007e60 */ 0x14,0x79,0x8e,0x74,0x0b,0x7d,0x60,0x4c,0xca,0x7c,0x8f,0x1a,0x2a,0x2e,0xbd,0x26,
+/* 0x007e70 */ 0x3a,0x31,0x5a,0x96,0xef,0xcc,0xf0,0xd7,0xcb,0xa9,0x83,0x72,0x61,0x9c,0x79,0x0b,
+/* 0x007e80 */ 0xd5,0x4d,0xf6,0xae,0x48,0xf8,0x3b,0x8f,0xa3,0xa8,0x11,0x5a,0x46,0x7e,0x8f,0xdd,
+/* 0x007e90 */ 0x67,0xc4,0x77,0xde,0xf6,0xe8,0xb0,0xf2,0x0f,0x8b,0xc6,0x87,0x52,0xd5,0xa0,0x3b,
+/* 0x007ea0 */ 0xe3,0xff,0x35,0x7a,0x1b,0xe2,0xc3,0xdb,0xc2,0x41,0x47,0x26,0x61,0xce,0x73,0x5e,
+/* 0x007eb0 */ 0xd8,0x95,0xcf,0x7f,0x49,0x4e,0xb7,0x0d,0x07,0x10,0xdb,0x25,0x25,0x61,0x9c,0xdf,
+/* 0x007ec0 */ 0x09,0x78,0xd1,0xeb,0x52,0x7e,0x8d,0x30,0x68,0xb8,0x6d,0xfe,0x0b,0x71,0x1a,0x16,
+/* 0x007ed0 */ 0xc7,0x81,0x09,0xad,0x0b,0xec,0x4a,0x93,0x86,0x60,0xc9,0x33,0x5f,0x81,0xe5,0x94,
+/* 0x007ee0 */ 0xd3,0x25,0xf5,0x75,0x92,0xef,0x42,0x97,0x9f,0x2e,0x1a,0xcf,0x47,0x8d,0x36,0x40,
+/* 0x007ef0 */ 0x91,0x1f,0x61,0x34,0x3a,0x39,0x22,0x36,0x48,0xa7,0x05,0xbe,0x8f,0x6a,0x6b,0x8e,
+/* 0x007f00 */ 0x8c,0x00,0xe5,0xbf,0x7e,0x51,0xb4,0xc8,0x97,0x08,0xb5,0x87,0x2a,0x71,0xc3,0x45,
+/* 0x007f10 */ 0xcf,0xe7,0x25,0x67,0x59,0xd8,0x9c,0xdd,0xd9,0xf4,0x3f,0xfc,0x7b,0xee,0xfb,0xc2,
+/* 0x007f20 */ 0x50,0x3a,0xbb,0x34,0xdb,0x7c,0x1d,0x7f,0xcb,0x0b,0xb2,0xa5,0xe4,0x6b,0x0a,0x36,
+/* 0x007f30 */ 0x1e,0xf1,0x65,0xc5,0xbf,0x94,0x8f,0xe3,0x7d,0x07,0xc3,0xae,0x6f,0x68,0xf9,0x1f,
+/* 0x007f40 */ 0x5a,0x31,0xff,0xf9,0x03,0x7a,0xed,0xb0,0xa7,0xcb,0x7f,0x01,0x8f,0x61,0xd5,0xa8,
+/* 0x007f50 */ 0x1b,0xfc,0x0f,0x3f,0x48,0xd5,0x8e,0x7a,0x12,0x7e,0x90,0x7d,0x6d,0x83,0x7a,0x52,
+/* 0x007f60 */ 0x41,0xfd,0x74,0xf1,0xfa,0xcb,0x59,0x8e,0xff,0x92,0xea,0x80,0xdb,0x42,0x78,0x93,
+/* 0x007f70 */ 0x3a,0x80,0x42,0xfd,0xb6,0xed,0x21,0x4a,0x90,0xe3,0x08,0xad,0x27,0x1a,0x90,0xf4,
+/* 0x007f80 */ 0x09,0xfc,0x37,0xf4,0x02,0xff,0x0d,0x9d,0x24,0xe7,0x04,0x38,0xb7,0xcc,0xd5,0xa4,
+/* 0x007f90 */ 0x24,0x41,0x00,0xff,0x9e,0xa6,0xc9,0xe8,0x81,0x89,0xfd,0x37,0x9c,0xf3,0xb5,0x41,
+/* 0x007fa0 */ 0x1c,0x26,0x27,0x4b,0x36,0x71,0xa9,0x0b,0x90,0x36,0x16,0xa8,0x0f,0x67,0x3c,0x0f,
+/* 0x007fb0 */ 0x15,0xf8,0x5d,0x30,0xfe,0x2b,0xee,0xd4,0x7f,0xe1,0x5b,0x7d,0xa4,0xb1,0x90,0xcb,
+/* 0x007fc0 */ 0x70,0xcb,0x8a,0xe3,0xca,0x6d,0xc0,0x4d,0xa3,0xcd,0xd7,0x26,0xf2,0x9f,0x6f,0xc9,
+/* 0x007fd0 */ 0xc7,0x5f,0x5e,0x1d,0xff,0x9e,0xd3,0xa4,0x36,0xb7,0xf5,0x7b,0x80,0xf6,0xaa,0x98,
+/* 0x007fe0 */ 0xd3,0xe2,0xcd,0x68,0xc3,0x36,0x30,0x74,0xfa,0x6f,0x18,0xce,0xfc,0xc3,0x5a,0x23,
+/* 0x007ff0 */ 0xa4,0x13,0x34,0x5a,0x47,0x5d,0x40,0xa1,0xfe,0xd7,0x12,0x9d,0x7c,0x29,0x69,0xa8,
+/* 0x008000 */ 0xd7,0x36,0x6c,0x7e,0x68,0xf7,0xc4,0x5f,0x15,0xe8,0xbb,0xfd,0x78,0xb7,0x0a,0x72,
+/* 0x008010 */ 0xc9,0xd2,0xe0,0x88,0x98,0xd1,0x82,0x2b,0x5f,0xca,0xe0,0xa9,0xdc,0x6e,0x93,0xc8,
+/* 0x008020 */ 0x3c,0xfe,0x1a,0x75,0xe0,0xaf,0xd5,0xd5,0xc3,0xf2,0x22,0xe1,0x3a,0x5a,0xb3,0x55,
+/* 0x008030 */ 0x1d,0x21,0x70,0x80,0xdc,0x6a,0xd5,0xce,0xa2,0x77,0x5e,0xae,0x5c,0xde,0xfd,0xac,
+/* 0x008040 */ 0x70,0x7d,0xd5,0x2f,0x75,0xbc,0x3e,0x73,0xd6,0x88,0xbc,0xff,0x06,0x41,0x52,0xf8,
+/* 0x008050 */ 0x8f,0x5e,0xcd,0x34,0x8c,0x78,0xdd,0xcd,0x17,0xf4,0x4f,0xf4,0xd9,0x39,0xef,0x7c,
+/* 0x008060 */ 0xf1,0x18,0xbd,0xa5,0x02,0xdb,0x65,0xcc,0xee,0x58,0x3f,0x0b,0x47,0x5f,0x7f,0xd0,
+/* 0x008070 */ 0x89,0x35,0xe2,0x06,0xdd,0x89,0xbf,0xd0,0x74,0x27,0x5e,0xee,0xf7,0x1d,0x6a,0x1e,
+/* 0x008080 */ 0x06,0xb7,0x43,0x96,0x64,0x28,0x37,0xf6,0x91,0xf3,0x43,0xa8,0xbe,0x51,0xd6,0x2b,
+/* 0x008090 */ 0x5e,0xd3,0x4e,0x2b,0x8d,0x03,0x90,0x88,0xa8,0xdd,0xb5,0xfe,0x72,0xc3,0xb0,0x77,
+/* 0x0080a0 */ 0x9f,0x38,0x59,0x3e,0xaa,0xcf,0x61,0xfc,0x57,0x2b,0xbe,0x95,0xaa,0xba,0x24,0x7d,
+/* 0x0080b0 */ 0xed,0xda,0xa3,0x79,0xf7,0xb9,0x98,0x10,0x8c,0x16,0x0b,0xe3,0xf1,0x57,0x57,0xde,
+/* 0x0080c0 */ 0xfe,0xd5,0x4f,0x72,0x0b,0x7d,0xa8,0xf2,0x04,0xdd,0x5c,0xd4,0xea,0xbe,0x24,0x24,
+/* 0x0080d0 */ 0x60,0xec,0x45,0x55,0x5a,0x68,0x14,0x5f,0xf9,0x25,0xcd,0xcd,0xb0,0x84,0xcc,0x13,
+/* 0x0080e0 */ 0xd4,0x5f,0x1e,0x91,0xc7,0x12,0xdf,0x50,0x19,0xaa,0xa5,0x83,0xd9,0x4c,0xac,0xe9,
+/* 0x0080f0 */ 0xf5,0xaa,0x78,0x0f,0xe8,0x14,0x2c,0x6b,0xc4,0x35,0x09,0x1e,0x7f,0xb5,0xe6,0xef,
+/* 0x008100 */ 0x5f,0x72,0x03,0xc9,0xc9,0xe1,0xf8,0xaf,0x12,0x72,0x2a,0x52,0x81,0x8c,0x8a,0x88,
+/* 0x008110 */ 0xe0,0x16,0xb6,0x23,0xdb,0x52,0x8c,0xc3,0x5f,0x21,0x07,0xfe,0x12,0x63,0x90,0x0b,
+/* 0x008120 */ 0x01,0xb2,0xaf,0xd9,0x8c,0xff,0x72,0xc5,0x56,0xf9,0xe2,0xf8,0xd6,0x75,0x0d,0xea,
+/* 0x008130 */ 0x7f,0xb9,0xeb,0x55,0xcb,0x1a,0xf1,0x88,0x03,0x7f,0xc9,0x85,0xf8,0xab,0xaa,0x08,
+/* 0x008140 */ 0x22,0x73,0x31,0xfe,0xeb,0x3c,0xca,0x47,0x64,0x0c,0x7f,0xc9,0x85,0xf8,0x8b,0xa9,
+/* 0x008150 */ 0x90,0x4a,0x53,0x55,0xd6,0xad,0x20,0xba,0x91,0x8a,0xc4,0x27,0xf0,0x9f,0x27,0xcf,
+/* 0x008160 */ 0x41,0x0e,0xfc,0x25,0xf1,0x79,0x83,0x5c,0x90,0x8c,0xb1,0x95,0x16,0x28,0x70,0xd2,
+/* 0x008170 */ 0x70,0xe0,0x2f,0xa9,0x08,0xfe,0x92,0xf0,0x03,0x59,0xb5,0x2f,0x17,0xa1,0xcf,0xa0,
+/* 0x008180 */ 0x4f,0xe0,0x09,0xb9,0xd0,0xa2,0x7c,0xc2,0xfa,0xcb,0x8b,0xad,0x46,0x09,0x65,0xbb,
+/* 0x008190 */ 0xf0,0x95,0x14,0x06,0x62,0x7b,0x42,0xea,0xe2,0x99,0x4e,0xec,0xe0,0xc4,0x5f,0x25,
+/* 0x0081a0 */ 0x4e,0xfc,0x65,0x69,0xbb,0x64,0xea,0x9f,0xa0,0x92,0x2b,0xaa,0x34,0xa6,0xee,0x96,
+/* 0x0081b0 */ 0xbd,0xfa,0xdf,0xfd,0x3f,0xea,0x2f,0xb7,0x03,0x39,0x05,0xd5,0xbe,0x52,0xa6,0xa5,
+/* 0x0081c0 */ 0xc6,0xd0,0x87,0x40,0x7b,0xcd,0xd0,0x36,0x6e,0x4a,0x5e,0x4b,0x4f,0xe0,0xbf,0x81,
+/* 0x0081d0 */ 0xf1,0x57,0x05,0x77,0xab,0x71,0x31,0x9e,0x94,0x13,0xe8,0x59,0xb4,0xb0,0x89,0xf2,
+/* 0x0081e0 */ 0x5f,0x72,0xb4,0xc9,0xa7,0x10,0x1f,0x8f,0x1f,0xb7,0xe2,0x5b,0x7f,0x83,0x81,0x46,
+/* 0x0081f0 */ 0x23,0xf0,0x95,0xf9,0xfa,0xaf,0x7c,0xfc,0xa5,0x94,0x9a,0x0d,0x72,0x65,0x4c,0x0b,
+/* 0x008200 */ 0x28,0x9e,0x44,0x92,0xf2,0x5f,0xf8,0x96,0xac,0x9f,0xc4,0x9d,0x43,0xe4,0x96,0x43,
+/* 0x008210 */ 0xff,0xe5,0xf0,0x9f,0xef,0x75,0x85,0xb5,0x0a,0xb3,0xb1,0x84,0xf2,0x5f,0x66,0x7a,
+/* 0x008220 */ 0xa7,0xa6,0xb6,0xcb,0x9b,0x12,0xe4,0x78,0x56,0x93,0x89,0x10,0xec,0x2e,0xf8,0x4b,
+/* 0x008230 */ 0xaa,0x79,0xb4,0x24,0xf5,0xf8,0xb0,0x59,0x08,0x6c,0x78,0x12,0x4b,0x2e,0xdd,0x81,
+/* 0x008240 */ 0x0e,0x84,0x66,0xb6,0x2e,0x82,0x17,0xe0,0xd5,0xbc,0x57,0xcb,0xe4,0xbf,0x5e,0xce,
+/* 0x008250 */ 0x4f,0xa3,0x75,0xbc,0xb4,0xfb,0x51,0x94,0x19,0x71,0xa0,0x40,0x3b,0x8c,0x8f,0x70,
+/* 0x008260 */ 0x38,0xaf,0x0f,0x8b,0x13,0x3a,0x5c,0xc5,0x71,0x1c,0xdf,0x80,0x8a,0x60,0x57,0xf4,
+/* 0x008270 */ 0x06,0x6d,0x69,0x8a,0x17,0x82,0x7d,0x7e,0x37,0xff,0x8d,0x7a,0x92,0xdb,0x23,0x59,
+/* 0x008280 */ 0xd5,0xbe,0x46,0xe9,0x57,0x09,0x6e,0x99,0xd1,0xa9,0xf8,0x8d,0x3a,0x57,0x50,0x9a,
+/* 0x008290 */ 0xd9,0xc4,0x5f,0x96,0xfe,0x0b,0x2c,0x35,0xa4,0x1a,0x7a,0xf6,0xbe,0x01,0xd5,0x76,
+/* 0x0082a0 */ 0xc9,0x69,0x1b,0x64,0xe1,0x2b,0x25,0x73,0x3b,0xe5,0x74,0x00,0x0a,0x81,0x85,0xf1,
+/* 0x0082b0 */ 0x95,0x40,0x11,0xfd,0x97,0xc2,0xc3,0x2e,0x4a,0x7b,0xe1,0xe0,0x6d,0xac,0x84,0x0b,
+/* 0x0082c0 */ 0xb6,0xbd,0x28,0xd9,0xa5,0xb6,0x93,0x14,0x9a,0x24,0x67,0xc5,0xcc,0xe1,0xaf,0x73,
+/* 0x0082d0 */ 0xb6,0xfe,0x8b,0x2e,0xd4,0x25,0x63,0x42,0xcc,0xb5,0x45,0x21,0xfe,0x51,0xe4,0xd6,
+/* 0x0082e0 */ 0x21,0xcf,0x0d,0xbc,0xc0,0x26,0x50,0x30,0x01,0xcb,0x72,0x41,0x69,0x66,0xc6,0x7f,
+/* 0x0082f0 */ 0xa5,0x9d,0xf5,0x97,0xe7,0xe5,0x08,0xed,0xf5,0x3f,0x84,0xff,0x12,0xd8,0xad,0xe7,
+/* 0x008300 */ 0x89,0xff,0xfc,0xac,0x5c,0xe9,0xb3,0x55,0x67,0x8d,0x8f,0xf2,0xc0,0x1a,0xe3,0xbf,
+/* 0x008310 */ 0x5a,0x6d,0xff,0x8d,0x5d,0x04,0x5b,0xfd,0x2f,0x67,0x57,0x1b,0x1c,0xc5,0x71,0xa6,
+/* 0x008320 */ 0x7b,0x67,0x06,0x31,0xfb,0x25,0x2d,0x2b,0x2e,0x05,0xb6,0xce,0x8c,0x56,0x0a,0xb7,
+/* 0x008330 */ 0x70,0x8b,0x58,0x04,0x96,0x31,0x08,0x69,0x2c,0x71,0xb1,0x0e,0x88,0xa5,0xfb,0xf8,
+/* 0x008340 */ 0x41,0xd5,0xa5,0x38,0x5d,0x8a,0x4a,0xf9,0x5c,0x98,0x12,0xdc,0x55,0x1d,0xa6,0x28,
+/* 0x008350 */ 0x7b,0xb4,0xd2,0xd9,0x02,0x39,0x87,0x8c,0xed,0x32,0x8e,0x9d,0xd4,0xf2,0x91,0x04,
+/* 0x008360 */ 0x27,0x5c,0x6a,0x11,0x0e,0x08,0x9b,0xc0,0x80,0x95,0x58,0xb6,0x85,0xd1,0xf9,0x72,
+/* 0x008370 */ 0x09,0x87,0x7d,0xf6,0xe2,0x40,0x4e,0xb6,0x65,0x67,0x8d,0x5d,0x87,0x30,0xc2,0x5c,
+/* 0x008380 */ 0xbf,0xdd,0xf3,0xd1,0x33,0xd3,0xb3,0xab,0xf8,0xdf,0x5b,0x33,0xad,0x95,0xd4,0x3d,
+/* 0x008390 */ 0xbd,0xf3,0x3e,0xfd,0xbc,0xcf,0xf3,0x96,0xa7,0x5b,0x09,0xda,0x42,0xe5,0x06,0xff,
+/* 0x0083a0 */ 0xa5,0xef,0x7e,0xf1,0xcf,0x47,0xd1,0x17,0xc0,0x7f,0x1d,0x15,0xdd,0x49,0x0e,0x5f,
+/* 0x0083b0 */ 0xff,0x75,0x03,0x4c,0x0e,0x4f,0x00,0x11,0xa6,0x35,0xd5,0x56,0x5c,0x37,0xfa,0x7f,
+/* 0x0083c0 */ 0xc9,0xd7,0x6b,0x9a,0x56,0xbf,0x97,0x59,0xaa,0x95,0x7b,0x81,0xd8,0x55,0x9e,0xfe,
+/* 0x0083d0 */ 0x4b,0x25,0xb2,0xaf,0xe5,0x78,0xcb,0xe0,0x39,0x54,0xc2,0xcb,0xc5,0xc7,0xf1,0xad,
+/* 0x0083e0 */ 0x3b,0x87,0xe5,0x6d,0xe2,0x06,0xb4,0x27,0x7b,0xe7,0xe1,0xe8,0x16,0x21,0xa5,0x1e,
+/* 0x0083f0 */ 0xc8,0xa6,0xa0,0x58,0x71,0xd4,0x85,0xbf,0xe6,0x38,0xf0,0x17,0x23,0xfb,0x42,0x46,
+/* 0x008400 */ 0xa0,0xe8,0xc1,0xad,0xf1,0x6f,0xa1,0x63,0x9d,0x5f,0x1f,0x25,0xaf,0xc8,0x67,0x14,
+/* 0x008410 */ 0x76,0x9e,0xb7,0x94,0xc2,0x5f,0x29,0x64,0xe4,0x99,0xb5,0x50,0x31,0x15,0x41,0x83,
+/* 0x008420 */ 0x03,0x52,0x61,0x2e,0xf3,0x24,0x58,0x79,0x8b,0xc1,0x7f,0x65,0xbd,0xfd,0x97,0xc5,
+/* 0x008430 */ 0x4f,0xfa,0x6e,0x99,0x80,0x17,0x64,0x20,0x18,0x60,0x6e,0x8a,0x7d,0xa6,0x1e,0x1b,
+/* 0x008440 */ 0x8d,0x14,0x42,0xab,0x62,0x6f,0x93,0x5b,0x65,0x45,0xf5,0x5f,0x8c,0xa0,0xac,0x11,
+/* 0x008450 */ 0xb4,0x78,0x87,0xcd,0xe4,0x7f,0x42,0xbe,0x28,0x34,0x81,0x8f,0x3d,0xb4,0x9a,0x72,
+/* 0x008460 */ 0x0e,0x36,0xf0,0x57,0xf7,0x00,0x39,0xba,0xb7,0x53,0xc7,0x3b,0xc0,0xde,0x0d,0xe4,
+/* 0x008470 */ 0x48,0xe5,0x14,0x88,0xad,0xa2,0x8c,0xd8,0x17,0xa8,0x21,0x1f,0x29,0x04,0x00,0x88,
+/* 0x008480 */ 0x2d,0x76,0xe4,0x99,0x06,0xfe,0xd2,0x1c,0xfc,0x57,0x19,0x91,0xe4,0x90,0xda,0x27,
+/* 0x008490 */ 0x24,0x93,0x6a,0x28,0xda,0x96,0x08,0xe7,0xd8,0xea,0xb2,0x02,0x1c,0xcb,0x4b,0x37,
+/* 0x0084a0 */ 0x5c,0xf9,0xb3,0x5f,0xff,0x65,0xd2,0x6c,0xf7,0xe5,0xc0,0x42,0xb4,0xc6,0xee,0xff,
+/* 0x0084b0 */ 0x05,0x59,0x65,0xec,0xdb,0xaf,0x06,0x61,0x7a,0xfb,0x5d,0x40,0xcc,0xd6,0x7f,0x31,
+/* 0x0084c0 */ 0xf8,0x4b,0x4d,0x8d,0x84,0xeb,0x5b,0xce,0xf5,0x1e,0x55,0x93,0x11,0x79,0x99,0x51,
+/* 0x0084d0 */ 0x55,0x25,0xd7,0x27,0x22,0xbd,0x47,0xd3,0x1b,0x2f,0xc8,0xe9,0x85,0xdf,0x45,0x47,
+/* 0x0084e0 */ 0x15,0xab,0x35,0x18,0xcb,0x7f,0xd9,0xfe,0x87,0xe0,0xb6,0xa1,0x36,0xfd,0x06,0x27,
+/* 0x0084f0 */ 0x6f,0x10,0xac,0x40,0xe0,0xe2,0xa8,0x82,0xd5,0x9e,0xdc,0x25,0xa6,0x7a,0x27,0xdb,
+/* 0x008500 */ 0x06,0xdf,0x5a,0xd4,0x25,0xfe,0x02,0xbd,0xd1,0x45,0x27,0x5c,0xf5,0xe8,0xbf,0x98,
+/* 0x008510 */ 0x79,0x56,0x81,0xe4,0x8a,0x4d,0xe0,0xdc,0x6f,0xa5,0x04,0x42,0x30,0xed,0x16,0xcc,
+/* 0x008520 */ 0xea,0x11,0xf1,0xdf,0x11,0xf8,0x5e,0x96,0x17,0x66,0xee,0x40,0x37,0x3a,0x69,0x6b,
+/* 0x008530 */ 0xb0,0x62,0xf5,0x87,0x8c,0x11,0xfd,0x9d,0x3f,0x8c,0x76,0x88,0x2f,0xe2,0xc1,0x4b,
+/* 0x008540 */ 0xf4,0xc8,0xb8,0x7d,0x9a,0xe1,0xdb,0xff,0xcb,0xe1,0xbf,0x61,0x06,0xb1,0xd3,0xeb,
+/* 0x008550 */ 0x13,0xba,0xbc,0x57,0x98,0x0f,0x65,0x7e,0x79,0x79,0x6f,0xa8,0x8e,0xc3,0x91,0x95,
+/* 0x008560 */ 0xf0,0x3f,0xb4,0x04,0xfe,0x38,0xdf,0x18,0x8e,0x01,0xe0,0x1d,0xcf,0xd9,0xdb,0xc1,
+/* 0x008570 */ 0x3b,0x98,0xeb,0xbf,0xc1,0xf0,0x5f,0xaf,0x07,0xf7,0x86,0x36,0x13,0xfe,0x4b,0x7e,
+/* 0x008580 */ 0x51,0xe0,0x61,0xfc,0x52,0xf8,0x8b,0xe2,0xe5,0x86,0x7c,0xf4,0xa2,0x78,0x4d,0x83,
+/* 0x008590 */ 0xfd,0x15,0x39,0x41,0x1d,0x47,0xdd,0x7b,0xc7,0x81,0xbf,0x78,0xfe,0x1b,0x84,0xff,
+/* 0x0085a0 */ 0xca,0x97,0x17,0xc2,0x39,0x74,0x8d,0x5b,0x4a,0x5a,0xda,0xff,0xd0,0x0a,0xc0,0xf6,
+/* 0x0085b0 */ 0xb0,0x07,0x64,0x83,0x83,0xc3,0xe5,0x2f,0xb2,0xfe,0x1b,0xee,0xa0,0xb4,0xfe,0xab,
+/* 0x0085c0 */ 0x5e,0x7c,0x40,0x3b,0x8d,0xee,0x24,0x76,0x4f,0xfe,0xf3,0x53,0x82,0xff,0x4a,0xe8,
+/* 0x0085d0 */ 0x73,0xaa,0x84,0x32,0x38,0xa0,0xb8,0xba,0xa6,0xbe,0xd8,0x7a,0xf1,0xfb,0x2f,0x5b,
+/* 0x0085e0 */ 0x01,0x74,0x01,0x4e,0x6c,0x40,0xc7,0x07,0x7e,0x78,0x79,0xd7,0x43,0x04,0x20,0x44,
+/* 0x0085f0 */ 0x3d,0x63,0x1c,0xf8,0xcb,0xc9,0x7f,0x51,0xdb,0x43,0xfc,0xbf,0xa7,0xd5,0x48,0x5a,
+/* 0x008600 */ 0x94,0xf0,0x26,0x4a,0x0f,0xe3,0x37,0x51,0x44,0xf5,0x72,0x64,0x1c,0xff,0x43,0x07,
+/* 0x008610 */ 0xff,0x95,0x23,0x1b,0xed,0x94,0xfe,0x67,0x79,0x4a,0x84,0xfd,0x2a,0xda,0x85,0xf1,
+/* 0x008620 */ 0xb2,0x31,0x86,0xd3,0xff,0x8b,0x8b,0xbf,0x2c,0xfe,0xab,0x01,0x68,0x2f,0xfc,0xc9,
+/* 0x008630 */ 0xb1,0x97,0x74,0x96,0x9d,0xf4,0x0e,0xe6,0xfa,0xcf,0x5b,0xfc,0x97,0x5a,0x43,0x41,
+/* 0x008640 */ 0xd6,0x69,0xa5,0x7a,0xa4,0xcd,0xd5,0x89,0x92,0xef,0x7f,0xc8,0xe7,0xbf,0x30,0xfe,
+/* 0x008650 */ 0x0a,0x5a,0x95,0x9f,0x0c,0xaa,0xa5,0xbd,0x00,0xb8,0xfc,0x17,0x77,0x9f,0x06,0x94,
+/* 0x008660 */ 0x4f,0x83,0x49,0xe1,0x3c,0x39,0x37,0x9e,0xd3,0x98,0x29,0xb2,0xee,0x7c,0xff,0x0d,
+/* 0x008670 */ 0x2b,0xb8,0x2b,0x1b,0xfd,0x50,0x7c,0x1b,0x07,0xdb,0xb5,0xd4,0x27,0x4b,0x93,0x32,
+/* 0x008680 */ 0x6f,0x4c,0x69,0xfe,0x0b,0x07,0x65,0x75,0xbd,0x62,0x5e,0x9f,0x44,0xa7,0x62,0xdc,
+/* 0x008690 */ 0xb6,0x5f,0x25,0xfc,0x0f,0x2d,0x53,0x82,0xad,0x6a,0x6a,0x2e,0x31,0x99,0xc7,0xb0,
+/* 0x0086a0 */ 0x0b,0x1c,0xbc,0xef,0xf6,0xcb,0x45,0xfd,0xfc,0x37,0xac,0xe2,0x40,0xf9,0xa9,0xcc,
+/* 0x0086b0 */ 0x41,0xb4,0x13,0x25,0xda,0xe4,0x98,0xb8,0x31,0x36,0x3d,0xff,0x8d,0x85,0x8e,0x5b,
+/* 0x0086c0 */ 0x07,0x89,0x4b,0x7c,0x1b,0xce,0xba,0xb5,0x6e,0x94,0x58,0x7d,0x68,0xa0,0xa5,0x88,
+/* 0x0086d0 */ 0x8f,0x87,0x0f,0xfe,0xb2,0xf9,0x2f,0x9c,0xfc,0xf7,0xa2,0xee,0x58,0x56,0xc5,0xfb,
+/* 0x0086e0 */ 0x7d,0x35,0x6f,0x8c,0x13,0x7f,0x45,0x1d,0xfa,0x2f,0xcb,0x88,0x23,0x11,0x8b,0x64,
+/* 0x0086f0 */ 0xa0,0x11,0xf3,0x03,0x5b,0x43,0xeb,0xec,0x42,0xb2,0x22,0xfd,0xbf,0x3c,0xf8,0x8b,
+/* 0x008700 */ 0x04,0xb5,0xa7,0xdb,0xa8,0x6f,0x46,0xf5,0x49,0x75,0x71,0x87,0x7f,0xaa,0xcf,0xf7,
+/* 0x008710 */ 0xdf,0xb0,0x83,0x43,0x0d,0x1d,0x15,0x17,0xc5,0x06,0xe9,0x3a,0x5a,0xaa,0x46,0x38,
+/* 0x008720 */ 0x9f,0x23,0x5c,0x76,0xe1,0x2f,0x4e,0xff,0x65,0x1c,0xe4,0x74,0x45,0x09,0x6b,0x21,
+/* 0x008730 */ 0x45,0xca,0x49,0x09,0xb4,0x2b,0xeb,0x6e,0xfb,0x25,0x72,0xfc,0x37,0x66,0x78,0xa7,
+/* 0x008740 */ 0x8e,0xf0,0x5f,0x60,0x32,0xff,0x17,0x73,0xa0,0x05,0xdb,0xa1,0xd8,0xb7,0x99,0x5b,
+/* 0x008750 */ 0xfb,0x3c,0xf3,0xec,0xcf,0x7f,0x61,0xfc,0x95,0x68,0xe9,0x3f,0x26,0x6c,0x44,0x47,
+/* 0x008760 */ 0xa4,0xfd,0xea,0x4f,0xf6,0x78,0xe1,0x76,0x7c,0x3a,0xfe,0x87,0x84,0xff,0xda,0x58,
+/* 0x008770 */ 0x31,0x7b,0xe6,0x77,0x80,0xd8,0xa5,0x0e,0x33,0x27,0xfc,0xe6,0xd9,0xa7,0xff,0x97,
+/* 0x008780 */ 0x19,0xac,0xe8,0xac,0x18,0xb8,0xeb,0x47,0x1a,0x71,0xe4,0xd8,0xeb,0xfa,0x71,0xb6,
+/* 0x008790 */ 0x35,0x98,0x68,0xe2,0x1d,0x27,0xfe,0x32,0x1e,0xa4,0x02,0x0e,0xee,0xa3,0x46,0x9a,
+/* 0x0087a0 */ 0xf5,0x28,0xda,0xdb,0xe3,0x7a,0x7e,0xee,0xd5,0x2a,0x8b,0xfa,0x6f,0x30,0x41,0xa2,
+/* 0x0087b0 */ 0x5b,0xbe,0x94,0x49,0xa6,0x5f,0x92,0x6a,0x7a,0xa3,0xd0,0x37,0x90,0xaf,0x11,0xf3,
+/* 0x0087c0 */ 0xf3,0xdf,0xb0,0xf5,0x5f,0xc9,0x33,0xa1,0xc6,0x32,0x90,0x9c,0x28,0x85,0xe0,0x92,
+/* 0x0087d0 */ 0x62,0xef,0x2f,0x1f,0xff,0x0d,0x8b,0xdf,0x19,0xa7,0x06,0xe9,0x01,0xe5,0x2c,0xfe,
+/* 0x0087e0 */ 0x82,0x85,0x46,0x21,0x0f,0xf2,0xbf,0x9f,0x79,0xfe,0x87,0x80,0xbf,0x48,0x70,0x7c,
+/* 0x0087f0 */ 0x60,0xc1,0xe7,0xe5,0xdb,0xc2,0x77,0x48,0xd7,0x1e,0x5f,0x92,0x8f,0x32,0x6c,0x97,
+/* 0x008800 */ 0xb7,0xff,0x17,0xcf,0xff,0xd0,0x0e,0x3a,0x70,0x32,0x99,0x0e,0xe0,0xa0,0xf3,0x14,
+/* 0x008810 */ 0x24,0xf6,0xdc,0x77,0x93,0x3f,0xfe,0x62,0x82,0x3b,0xf3,0x91,0xf5,0xf8,0xcf,0x38,
+/* 0x008820 */ 0xdf,0xb7,0x84,0xf2,0x5f,0xbe,0xf9,0xa1,0x5f,0xff,0xe5,0x0a,0x63,0x7e,0xf0,0xfb,
+/* 0x008830 */ 0x2b,0x51,0xd5,0xf2,0x58,0x6c,0x81,0x1e,0xdd,0x1a,0x67,0xc6,0x5c,0x73,0xcd,0xcf,
+/* 0x008840 */ 0xfb,0x1c,0xff,0x43,0xa6,0x11,0xd8,0x01,0x3d,0xd8,0x95,0xa1,0xed,0x57,0xe4,0x0e,
+/* 0x008850 */ 0xc1,0xb1,0x16,0x0b,0x1c,0x83,0xb9,0xfe,0x1b,0xc8,0xb2,0x77,0x53,0xde,0x5a,0xb0,
+/* 0x008860 */ 0x6c,0x57,0x45,0x0c,0x9a,0x6b,0x27,0xab,0xe6,0xf3,0x6b,0x3c,0x7c,0xeb,0x0f,0x21,
+/* 0x008870 */ 0x08,0x1b,0xf5,0x51,0x85,0xe8,0x49,0x71,0x31,0xd8,0xe8,0xe9,0x6d,0x43,0x3d,0xe6,
+/* 0x008880 */ 0xfb,0x5d,0x98,0x08,0x78,0xde,0xef,0x45,0xf1,0x17,0x6a,0x1a,0x06,0xd8,0xd5,0x79,
+/* 0x008890 */ 0x03,0x9d,0x1a,0xab,0xd8,0xcf,0xde,0xf2,0xc1,0x5f,0x0e,0xff,0x0d,0x3b,0x08,0x1c,
+/* 0x0088a0 */ 0x85,0xa0,0x0a,0xf8,0x9d,0xe1,0xe8,0xa4,0xcb,0x91,0x9e,0x87,0xbf,0x5c,0xfe,0xf3,
+/* 0x0088b0 */ 0x66,0x7e,0x18,0xa8,0xd1,0xfb,0x1b,0x43,0xd0,0xae,0x6b,0xd9,0x88,0xbc,0x3c,0x53,
+/* 0x0088c0 */ 0x24,0x3f,0xf4,0xc3,0x5f,0x06,0xff,0xb5,0x50,0xbf,0x7d,0x1f,0x7e,0x7f,0xf5,0xa3,
+/* 0x0088d0 */ 0xfd,0xfa,0x5f,0x0e,0x26,0x52,0xdc,0x5c,0xdd,0xdf,0x7f,0xc3,0x53,0x30,0x7c,0x00,
+/* 0x0088e0 */ 0x1d,0xd4,0xe5,0xa2,0xb8,0x80,0xeb,0xbf,0x61,0x02,0x31,0xa8,0x3a,0x6b,0x87,0x26,
+/* 0x0088f0 */ 0xcb,0xaf,0xe2,0xf5,0xfa,0x66,0xd1,0x7c,0x8c,0xd7,0x7f,0xd9,0x0c,0x64,0xa3,0x00,
+/* 0x008900 */ 0x75,0x0a,0x3d,0x82,0x53,0xe9,0xf6,0xae,0x70,0x91,0x7c,0x9e,0x8b,0xbf,0x40,0xd2,
+/* 0x008910 */ 0xf5,0xa9,0xc8,0xb8,0x1d,0x1a,0x01,0xad,0x32,0x8d,0xe8,0x78,0xe1,0xde,0x70,0xdc,
+/* 0x008920 */ 0xf2,0xf1,0x3f,0x8c,0xed,0xcf,0x87,0xb7,0x08,0x1e,0xb4,0x55,0x86,0x83,0xee,0xcd,
+/* 0x008930 */ 0x17,0xe4,0xb8,0xd0,0x8c,0x7e,0x3a,0x1d,0xfc,0x95,0x84,0xe9,0x0d,0xd1,0x59,0x7d,
+/* 0x008940 */ 0xce,0x9c,0xcc,0x35,0xe9,0xf8,0x28,0x69,0x30,0x24,0xe7,0x32,0xd1,0x58,0x8f,0xb9,
+/* 0x008950 */ 0x77,0x0e,0xb8,0xf1,0x17,0xbb,0xdc,0x89,0x33,0x2c,0x77,0xe3,0x5a,0xe5,0xd0,0x10,
+/* 0x008960 */ 0x79,0xa2,0xa6,0x83,0xbf,0x68,0x6f,0x26,0xfb,0xca,0xcb,0x16,0x94,0xc6,0x3f,0x15,
+/* 0x008970 */ 0xe9,0x83,0xc6,0x5b,0xc5,0xf1,0xd7,0x4c,0x76,0x2d,0x62,0xcc,0xa2,0x18,0x0e,0x96,
+/* 0x008980 */ 0x8f,0xe0,0x9f,0x8a,0x8e,0x89,0x13,0xd3,0xc7,0x5f,0x69,0x9f,0xa7,0x65,0x05,0x1c,
+/* 0x008990 */ 0x98,0x44,0xec,0x7d,0xfa,0x91,0x3f,0xfe,0x3a,0x0d,0x41,0x01,0x4f,0xc2,0x4a,0x66,
+/* 0x0089a0 */ 0x12,0xcc,0x8e,0x69,0x35,0xf0,0x60,0x37,0x9a,0xb6,0x87,0x13,0x2e,0xff,0x0d,0x1e,
+/* 0x0089b0 */ 0xfe,0x8a,0xc4,0x96,0x72,0x76,0xc1,0x03,0x7a,0x68,0xc0,0x30,0xc4,0x0b,0x82,0x34,
+/* 0x0089c0 */ 0xec,0x40,0x49,0xfc,0xb5,0x41,0x3b,0xde,0xed,0x46,0x0a,0xa7,0xb5,0xea,0xbc,0xbc,
+/* 0x0089d0 */ 0x3e,0x7e,0x87,0xf6,0x0c,0x9c,0xa1,0x6d,0x17,0xbe,0xb4,0xfd,0x37,0x78,0xf8,0xab,
+/* 0x0089e0 */ 0x71,0xbc,0x62,0x09,0xb8,0x1d,0x22,0xf0,0x3f,0x14,0x47,0x09,0xc9,0x15,0x5e,0x21,
+/* 0x0089f0 */ 0xbe,0xa9,0xdf,0xd0,0x96,0x8f,0x97,0xc7,0xc2,0xe5,0x1a,0xe1,0xbf,0x56,0xe0,0xf9,
+/* 0x008a00 */ 0xf9,0x9d,0x17,0x7f,0xc5,0x58,0xfe,0x2b,0xd7,0x63,0xcc,0xfc,0x11,0x73,0x75,0x3e,
+/* 0x008a10 */ 0x85,0x17,0x19,0xba,0xeb,0x57,0xbb,0x07,0x8c,0xaf,0x4a,0x56,0xd3,0x67,0xe2,0xaf,
+/* 0x008a20 */ 0x00,0xbb,0x28,0xe9,0xc6,0x7c,0x64,0xd0,0x5c,0x8b,0xe5,0xf7,0x18,0x0b,0x47,0x85,
+/* 0x008a30 */ 0x60,0x4d,0x79,0x8c,0xc8,0x52,0xfa,0x1b,0xf8,0xcf,0x28,0xe5,0x7f,0x08,0x8d,0x2c,
+/* 0x008a40 */ 0xa3,0x5d,0x19,0x6f,0x71,0x05,0x0e,0xa4,0x45,0x23,0x6d,0x1d,0x35,0xeb,0x14,0xe0,
+/* 0x008a50 */ 0xbf,0x10,0x17,0x7f,0xcd,0xf5,0xea,0xbf,0x0c,0x47,0x0e,0x4b,0x82,0xf7,0x83,0x59,
+/* 0x008a60 */ 0x04,0x88,0x2d,0x2f,0xa3,0x0d,0xd7,0xe4,0x6d,0x2d,0x25,0xf1,0x17,0x7e,0x48,0xcc,
+/* 0x008a70 */ 0x2b,0x09,0xf2,0x48,0x80,0x60,0xf3,0x30,0xb9,0xd2,0x97,0x0b,0xc1,0x72,0xd7,0x4d,
+/* 0x008a80 */ 0xc3,0xff,0x90,0x34,0x4b,0x05,0xff,0xf9,0x3a,0xda,0xf6,0x0b,0x24,0x1e,0xb7,0x67,
+/* 0x008a90 */ 0x5b,0x0f,0xc1,0x39,0xad,0x26,0x8f,0x8b,0xc9,0xd8,0xeb,0x42,0x93,0xcb,0xff,0x50,
+/* 0x008aa0 */ 0x35,0xf0,0x97,0xad,0xf6,0x2a,0x38,0x73,0xfe,0x99,0x34,0xe5,0x9b,0xa7,0x05,0x28,
+/* 0x008ab0 */ 0x77,0xb3,0xbb,0x7b,0xda,0xf8,0x8b,0x34,0x62,0xde,0x68,0x98,0x6c,0x58,0x26,0x87,
+/* 0x008ac0 */ 0x95,0x97,0x25,0xc3,0x76,0x5e,0x22,0xfe,0xf3,0xe5,0x7c,0xfc,0xf5,0x81,0x0d,0xbb,
+/* 0x008ad0 */ 0xf6,0x13,0xb6,0x4b,0xa6,0xb9,0x71,0xc2,0x26,0x32,0x8c,0xfa,0xb1,0xd0,0xc1,0xd8,
+/* 0x008ae0 */ 0x7f,0xbb,0xf8,0x0b,0x7e,0xfd,0x21,0x2d,0x3f,0x0b,0xbc,0x80,0xaf,0xdc,0xce,0x66,
+/* 0x008af0 */ 0xe6,0x02,0xf9,0x1c,0xa8,0x48,0x0c,0xe2,0x60,0x0d,0x43,0x84,0x31,0xf8,0xcb,0x4e,
+/* 0x008b00 */ 0xf5,0x93,0x8a,0x1a,0xde,0x93,0xf1,0x22,0xb2,0xcb,0xa8,0x1b,0x6d,0x5a,0xd3,0x1f,
+/* 0x008b10 */ 0xdf,0xd5,0x9b,0x7d,0x82,0x7a,0xdd,0x7b,0xf0,0x57,0x84,0xe5,0xbf,0xaa,0x1b,0xd0,
+/* 0x008b20 */ 0xdf,0x67,0xc4,0x4e,0x34,0x4e,0x35,0x74,0x74,0x09,0x6e,0x37,0x64,0x3b,0xf2,0xbc,
+/* 0x008b30 */ 0x8c,0xa8,0x68,0x23,0x96,0x58,0xcc,0x85,0xbf,0x0e,0xca,0xb6,0x7b,0x5e,0xb2,0x49,
+/* 0x008b40 */ 0x9d,0xb7,0x87,0xf0,0x8c,0x0f,0x13,0x5d,0x52,0xe0,0xba,0x2d,0x50,0xaa,0x5a,0x33,
+/* 0x008b50 */ 0xef,0x6a,0x4f,0x09,0xfc,0x45,0x6b,0xde,0xe6,0x5c,0x47,0x77,0x81,0x4a,0xe2,0xa0,
+/* 0x008b60 */ 0x74,0x3d,0xf0,0xb0,0xda,0x3e,0xf6,0x37,0x86,0x59,0xc7,0xd8,0xcc,0xcf,0x61,0x99,
+/* 0x008b70 */ 0xfe,0x7a,0xde,0x40,0x8f,0xa4,0x7c,0x8c,0x1e,0x51,0x2b,0xbc,0xfc,0x17,0x8b,0xbf,
+/* 0x008b80 */ 0xe4,0x21,0x05,0xcc,0x43,0x58,0xff,0x79,0x30,0x42,0x24,0xff,0x57,0x1f,0x30,0x62,
+/* 0x008b90 */ 0x52,0x7c,0x9f,0x00,0xed,0xa8,0xc2,0x7e,0xf8,0x2b,0x69,0xcc,0x6a,0x5b,0x56,0x0d,
+/* 0x008ba0 */ 0x3f,0x25,0xf4,0xda,0xd3,0xfb,0x04,0x8a,0xe0,0x20,0x7e,0x99,0xf6,0x5f,0x8e,0x67,
+/* 0x008bb0 */ 0x24,0xa9,0x9b,0x50,0x63,0x16,0x47,0xe6,0x83,0xbf,0x60,0xdd,0xcb,0x6a,0x63,0xf4,
+/* 0x008bc0 */ 0xb1,0x69,0xb9,0x1c,0x83,0xe5,0x5e,0x0b,0x48,0x7c,0x27,0x21,0x40,0xe3,0x07,0xa5,
+/* 0x008bd0 */ 0x67,0x25,0x07,0x48,0x4f,0x38,0xf0,0x97,0x55,0x13,0x08,0x6c,0x57,0x2b,0x20,0xa9,
+/* 0x008be0 */ 0x3a,0x6a,0xc2,0x0f,0xf3,0x43,0x7e,0x0a,0x1e,0xe3,0xfe,0x67,0xc5,0x5a,0xe9,0x35,
+/* 0x008bf0 */ 0xa1,0xae,0x24,0xfe,0xfa,0x94,0x0b,0xd6,0xe6,0xe1,0x40,0x20,0x57,0xe6,0x88,0x97,
+/* 0x008c00 */ 0x03,0xaf,0x05,0x9c,0xb7,0xf8,0xfc,0x97,0xc1,0x76,0x59,0x01,0x7d,0x5a,0x2a,0xe1,
+/* 0x008c10 */ 0xf9,0xa9,0x43,0xed,0xbd,0x95,0x08,0x5d,0x08,0xd4,0x23,0x4b,0x08,0x56,0x0c,0x7f,
+/* 0x008c20 */ 0xe5,0x43,0xc9,0x19,0x26,0xed,0x25,0xef,0x42,0xf3,0x41,0xe4,0x45,0x1a,0x81,0x01,
+/* 0x008c30 */ 0x47,0xb6,0x2d,0xb2,0x0b,0x25,0xb4,0xb6,0x6c,0x62,0x5c,0x32,0xfc,0x37,0x5e,0x8f,
+/* 0x008c40 */ 0xf1,0xf0,0x57,0x0a,0x5e,0x6d,0x16,0x23,0x06,0xb6,0xd8,0xb5,0xf0,0xb6,0x9a,0x30,
+/* 0x008c50 */ 0x59,0x7b,0x99,0x50,0xfc,0x2c,0x8f,0xcf,0xc5,0x5f,0xc0,0xb9,0xd4,0xd3,0xb6,0x8c,
+/* 0x008c60 */ 0x7a,0xff,0xb6,0x32,0xa6,0x1b,0xc8,0x63,0x80,0xbf,0xb6,0x08,0xeb,0x49,0x83,0x45,
+/* 0x008c70 */ 0xb6,0x35,0x18,0x17,0x7f,0x8d,0xad,0xca,0xb7,0xef,0xa8,0x84,0xaf,0xe5,0x55,0x66,
+/* 0x008c80 */ 0xdb,0xe5,0x45,0xf4,0x16,0xa1,0xbd,0xb6,0x87,0x6f,0x0b,0xfe,0x36,0xb3,0x85,0x36,
+/* 0x008c90 */ 0x62,0x7e,0xb5,0x08,0xfe,0x92,0x58,0x4f,0x66,0x5a,0x90,0xdf,0x00,0xe9,0xc1,0x28,
+/* 0x008ca0 */ 0x4d,0x60,0x8e,0xe1,0xaf,0xd3,0xcf,0x68,0xfd,0xe1,0x68,0x71,0xfc,0xd5,0x74,0x05,
+/* 0x008cb0 */ 0x7a,0x7b,0xa1,0x5b,0xe0,0xb6,0x71,0xbd,0x95,0x34,0x02,0x33,0xa4,0x61,0x5a,0x43,
+/* 0x008cc0 */ 0x3e,0x32,0xd5,0xba,0x42,0x3d,0x3f,0xd0,0x7c,0xd9,0xb8,0x52,0x04,0x7f,0x35,0xe2,
+/* 0x008cd0 */ 0x57,0x49,0xa2,0x4a,0x3a,0x0e,0x24,0x17,0x39,0xee,0x43,0x77,0xc3,0xad,0x77,0x55,
+/* 0x008ce0 */ 0xe2,0x58,0xb2,0x45,0x5c,0x83,0x27,0xc1,0x68,0x0d,0x46,0x7f,0x4a,0xe4,0xf9,0xcf,
+/* 0x008cf0 */ 0x13,0x9f,0x93,0xad,0x89,0x2a,0x3a,0xe1,0x05,0xd7,0xf1,0x23,0xd8,0xff,0xca,0x1e,
+/* 0x008d00 */ 0x1f,0x7b,0x6e,0xff,0x2f,0xc0,0xdd,0xb9,0x04,0xe4,0x99,0x75,0xba,0x55,0xbf,0x21,
+/* 0x008d10 */ 0x9a,0x8f,0x84,0x76,0x4c,0x68,0xf3,0x24,0x39,0x7d,0x5c,0xfd,0x17,0xf1,0x9f,0x4f,
+/* 0x008d20 */ 0x99,0x69,0xa1,0x19,0x90,0xb7,0x79,0xb3,0x2e,0x17,0x0c,0x5b,0x2d,0xc0,0x68,0x86,
+/* 0x008d30 */ 0x3b,0x8a,0x50,0x0a,0x7f,0xd9,0xe9,0xdc,0x6e,0x73,0x29,0x77,0x33,0x36,0x29,0x25,
+/* 0x008d40 */ 0xf0,0x17,0xf5,0x9f,0x97,0x5d,0x46,0x1c,0x46,0x09,0x56,0x24,0x17,0x9e,0x83,0xda,
+/* 0x008d50 */ 0xa7,0x85,0xbf,0xf6,0xe3,0x20,0x94,0x32,0xe8,0xaa,0x04,0x4d,0x92,0xd7,0x32,0x04,
+/* 0x008d60 */ 0x56,0x72,0x5a,0xfe,0xf3,0x86,0xb5,0x02,0xbd,0x62,0x18,0x32,0x80,0xed,0x21,0xf9,
+/* 0x008d70 */ 0x40,0x9c,0x16,0xe6,0x5a,0x38,0x9f,0xc3,0xe3,0xbf,0x08,0xec,0xda,0x13,0x51,0x8f,
+/* 0x008d80 */ 0x2a,0x75,0x7a,0x9b,0x25,0x3e,0x5a,0x26,0x9c,0xd3,0x8e,0xc6,0x6a,0xf5,0x64,0x4e,
+/* 0x008d90 */ 0x08,0xf6,0x1d,0x68,0x4b,0x8d,0x84,0x97,0xb5,0x8c,0x6a,0x45,0xf0,0xd7,0xad,0xc0,
+/* 0x008da0 */ 0xd6,0x77,0xc8,0x7a,0xe1,0x2b,0xbf,0xfe,0x66,0xee,0xb1,0x09,0x8d,0xdc,0x7a,0xb1,
+/* 0x008db0 */ 0xe6,0x63,0x1c,0x34,0xbf,0x83,0x67,0x6c,0x01,0xfa,0xa8,0x93,0x78,0x5f,0x17,0xc3,
+/* 0x008dc0 */ 0x5f,0x40,0x84,0x0d,0xb7,0xa7,0x2b,0xa7,0xba,0x6f,0x00,0x11,0x96,0xeb,0x99,0xa0,
+/* 0x008dd0 */ 0x45,0x50,0x57,0x45,0x1c,0x28,0xf3,0xc6,0x00,0x6d,0xa9,0x46,0x7e,0xf8,0xb1,0x07,
+/* 0x008de0 */ 0x7f,0x4d,0x21,0xe7,0x91,0x45,0x81,0xba,0x6d,0x8c,0xe1,0xdf,0xbe,0x43,0x7b,0x0f,
+/* 0x008df0 */ 0x56,0x70,0xac,0xe6,0x73,0x27,0xad,0x5c,0xce,0x9c,0x6f,0x8c,0x99,0xfa,0x94,0x09,
+/* 0x008e00 */ 0x17,0xda,0xca,0x01,0xfe,0x92,0x16,0xbf,0x23,0xff,0x0b,0x46,0x5b,0xbb,0xd1,0xfe,
+/* 0x008e10 */ 0xcf,0x89,0xbb,0xbb,0xbb,0xec,0xd0,0xa3,0xff,0x42,0x20,0xe9,0x72,0x52,0xfc,0xf0,
+/* 0x008e20 */ 0x0d,0xb9,0xe9,0x4c,0x30,0x7d,0x76,0x9d,0xfa,0x24,0x52,0xce,0x84,0x8c,0xf2,0x4e,
+/* 0x008e30 */ 0xcf,0xd9,0x85,0x13,0x7f,0x79,0xa1,0x34,0x71,0xb9,0x74,0x34,0x77,0x73,0x3a,0x61,
+/* 0x008e40 */ 0x3a,0x82,0x31,0xba,0x2f,0xf6,0xfd,0xc9,0x44,0xcc,0xfd,0xa8,0x6f,0x22,0xbb,0x69,
+/* 0x008e50 */ 0x46,0xa1,0x72,0x47,0x0c,0xfc,0x52,0x80,0xd8,0x1d,0x78,0x2e,0x60,0xb5,0x6c,0x70,
+/* 0x008e60 */ 0xf6,0x6f,0xca,0xfb,0xf1,0x5f,0x5d,0xa4,0x1d,0x39,0x09,0xe0,0xb4,0xe7,0x34,0xac,
+/* 0x008e70 */ 0xd7,0x64,0xcb,0x69,0x32,0x46,0x70,0xe1,0x65,0x82,0xda,0x7c,0xf0,0x17,0x03,0x0c,
+/* 0x008e80 */ 0xa1,0x4f,0xc4,0x20,0xf9,0xa9,0x4e,0xee,0x5e,0x1e,0xb1,0xfb,0x2f,0x5f,0x98,0xd1,
+/* 0x008e90 */ 0xe8,0xfa,0x97,0x0b,0x44,0xe4,0x85,0xd1,0x56,0x01,0xa3,0xad,0xdd,0xa8,0xe6,0x8c,
+/* 0x008ea0 */ 0x98,0x13,0xce,0xf3,0x11,0x6b,0x01,0xef,0xb8,0xff,0xa3,0xfb,0x62,0xc4,0x87,0xff,
+/* 0x008eb0 */ 0x9a,0x6f,0xd4,0xe5,0xd2,0xb6,0x95,0x6f,0xda,0xb7,0xd8,0x85,0x2b,0xc8,0x3e,0xf5,
+/* 0x008ec0 */ 0x87,0x76,0x50,0x0b,0x2e,0x7c,0xe5,0xe8,0xb1,0xde,0xea,0x7c,0xf8,0x7e,0x0e,0xed,
+/* 0x008ed0 */ 0x65,0x99,0x75,0x4c,0x99,0xfe,0x1b,0x7c,0xfd,0xd7,0x32,0xe8,0x32,0xf9,0xb8,0xf4,
+/* 0x008ee0 */ 0x91,0x92,0xe3,0xd3,0x5e,0x24,0x38,0x6b,0xf7,0x5f,0xd6,0xff,0xd4,0xbd,0x5e,0x74,
+/* 0x008ef0 */ 0x0e,0x5f,0x3a,0x0b,0x06,0x1a,0x9b,0x6e,0xed,0x6c,0xd6,0xdb,0x0b,0x4b,0xe9,0xf7,
+/* 0x008f00 */ 0xaa,0x3d,0xcf,0x14,0x7f,0xad,0xd2,0x17,0x5b,0xf8,0x2b,0x29,0x9d,0xb4,0x97,0x80,
+/* 0x008f10 */ 0xd4,0x1e,0x80,0x59,0xfd,0x0d,0xad,0x3e,0x7f,0xdf,0xa0,0xb8,0x49,0x23,0x44,0xd8,
+/* 0x008f20 */ 0x90,0x0f,0x82,0x7e,0x38,0x9f,0xca,0x55,0x9a,0xfa,0xaf,0x81,0xef,0xf3,0xf8,0x2f,
+/* 0x008f30 */ 0x54,0x33,0x2a,0x5f,0xcd,0x54,0x65,0x4f,0x1f,0xaa,0x1e,0x91,0xbb,0x9c,0xe7,0x7e,
+/* 0x008f40 */ 0x4e,0x93,0xa8,0xab,0x54,0xff,0x15,0x40,0x3f,0xd0,0x1c,0xf8,0x2b,0x6c,0xfa,0x6f,
+/* 0x008f50 */ 0x24,0xb7,0x03,0xe0,0xcd,0x6e,0x1c,0x9d,0x83,0x5f,0x88,0x01,0xe7,0x18,0x66,0x9e,
+/* 0x008f60 */ 0x4b,0xe8,0xbf,0x20,0x39,0x89,0x47,0x48,0xd0,0xb7,0x52,0xa8,0x50,0xf8,0xe7,0x51,
+/* 0x008f70 */ 0x78,0xdd,0xdf,0xe2,0xe0,0xaf,0x0f,0x49,0x50,0x43,0x1b,0x81,0x95,0x03,0xfe,0xfa,
+/* 0x008f80 */ 0x02,0x1d,0xd3,0xd6,0x81,0x3b,0x13,0x9f,0xff,0xc2,0x40,0x6c,0xb2,0x38,0xff,0x75,
+/* 0x008f90 */ 0x0a,0x55,0x20,0x33,0xd0,0xc2,0x67,0xd4,0xaf,0xc6,0x7f,0xd1,0x20,0xbc,0x51,0xba,
+/* 0x008fa0 */ 0x8e,0xd2,0x6a,0x23,0xd8,0xe8,0xb9,0xdb,0x7e,0x91,0xa0,0xcd,0x47,0xff,0xf5,0x81,
+/* 0x008fb0 */ 0x8b,0xc8,0x20,0xe5,0x82,0x04,0x6d,0xa9,0x2f,0x98,0xb7,0xae,0x33,0x63,0xda,0x18,
+/* 0x008fc0 */ 0xfc,0x15,0x80,0xc1,0x9b,0xf9,0xdc,0x56,0x2d,0x4e,0xec,0x17,0xaa,0x6d,0x39,0x81,
+/* 0x008fd0 */ 0xd5,0x01,0xd9,0x41,0x39,0x83,0xbf,0x22,0x92,0xa4,0x3a,0xd1,0xd6,0x2c,0xc2,0x7f,
+/* 0x008fe0 */ 0x41,0xdb,0x2f,0xb0,0x43,0x9f,0x9d,0x24,0x68,0x4b,0xad,0x2e,0xc9,0x7f,0xfd,0x43,
+/* 0x008ff0 */ 0xd6,0x39,0x75,0x8f,0xf6,0x10,0x57,0x93,0xdb,0xa0,0x11,0x73,0x76,0xf2,0xfe,0x15,
+/* 0x009000 */ 0x61,0x39,0x73,0xe0,0x83,0xac,0xbb,0x6c,0xcc,0x8d,0xbf,0x9e,0xff,0x3e,0x98,0x1c,
+/* 0x009010 */ 0xb2,0x25,0x6a,0x44,0xdb,0xa5,0xe0,0x39,0xdc,0x53,0x89,0x53,0x7d,0xe5,0x18,0xa9,
+/* 0x009020 */ 0x48,0x74,0x8d,0x31,0x8d,0x1d,0x18,0xfd,0x97,0x87,0xdf,0xd9,0x4b,0xc0,0xda,0xe0,
+/* 0x009030 */ 0xb6,0x8a,0xef,0x89,0xdf,0xd1,0x5e,0x93,0x1e,0x05,0xb7,0xc3,0xdf,0x70,0xd7,0x94,
+/* 0x009040 */ 0x38,0x7b,0xfc,0x9e,0xee,0xaf,0x6d,0xb1,0x4b,0x8a,0x93,0xff,0xea,0xa5,0x26,0xf3,
+/* 0x009050 */ 0x4a,0x78,0x57,0x5c,0x41,0x7d,0xd2,0x42,0x7c,0xe5,0x1b,0x96,0xff,0xa1,0x97,0x2c,
+/* 0x009060 */ 0xb3,0xf5,0x5f,0xc3,0x47,0x24,0xef,0x1c,0x2a,0xab,0xc3,0x5f,0xcb,0xac,0x56,0xbb,
+/* 0x009070 */ 0xd1,0xc1,0x8e,0xf0,0xac,0xf8,0x2f,0xd9,0x5b,0x49,0xc7,0xe0,0xb7,0x0c,0xfc,0x35,
+/* 0x009080 */ 0x83,0xcb,0x7f,0x11,0x03,0x96,0xb2,0x5a,0xb4,0x53,0xc0,0x68,0x6b,0x4f,0xfc,0x8a,
+/* 0x009090 */ 0xea,0xcb,0x7b,0x9a,0xfa,0x2f,0x89,0xcf,0x5b,0x81,0xf7,0x48,0xe5,0x46,0x22,0xfb,
+/* 0x0090a0 */ 0x6a,0x7f,0x2a,0xf3,0xbf,0xfe,0x3c,0xe3,0x24,0x7d,0x7f,0x2d,0xe4,0xeb,0xbf,0x68,
+/* 0x0090b0 */ 0x30,0x2c,0x98,0x57,0x14,0xdf,0x31,0x17,0xe9,0xfb,0xeb,0x01,0xe4,0xc1,0x5f,0x44,
+/* 0x0090c0 */ 0xdb,0xd5,0x80,0xca,0x91,0xd8,0x89,0x74,0x30,0xd9,0xe8,0x15,0xf3,0x9e,0xb2,0x43,
+/* 0x0090d0 */ 0xab,0xd8,0xd5,0xc4,0x5f,0xb3,0x93,0xe4,0x94,0x86,0xa5,0xb4,0x92,0x56,0xb7,0x65,
+/* 0x0090e0 */ 0xb4,0x0b,0x35,0x68,0x6b,0xb3,0xf8,0xe5,0xb2,0x8b,0xc3,0x7f,0x2d,0x66,0xf8,0xaf,
+/* 0x0090f0 */ 0xfb,0x7b,0x39,0xe7,0x87,0xf8,0x1d,0x57,0x0b,0x1d,0xc1,0x22,0x71,0xa3,0xa0,0x7a,
+/* 0x009100 */ 0x54,0x75,0xcb,0x1c,0xdc,0xfc,0x97,0x82,0xbe,0xa5,0x39,0x7c,0xd1,0xc3,0x44,0xf6,
+/* 0x009110 */ 0xa5,0xd4,0xe6,0xe7,0xa6,0x31,0x2e,0xe8,0x51,0x88,0x1d,0xfa,0xc3,0x1e,0x38,0x40,
+/* 0x009120 */ 0x82,0x01,0x1b,0x7f,0x29,0x7d,0x1b,0x7a,0x9d,0x94,0xd6,0x17,0xc2,0x1d,0xd2,0xad,
+/* 0x009130 */ 0x2c,0x71,0x3b,0x2c,0x47,0xaf,0x8e,0x2f,0xb9,0xd4,0xbe,0xad,0xc6,0x42,0x5b,0x1e,
+/* 0x009140 */ 0xfe,0xab,0xd2,0xc4,0x5f,0xc1,0x93,0xaa,0xf3,0x9d,0x42,0xdc,0xcb,0x07,0x56,0x0c,
+/* 0x009150 */ 0x97,0x1d,0x11,0x0f,0xcb,0x37,0x3a,0xe1,0x56,0x65,0x69,0xfe,0xeb,0x6c,0xf4,0x4b,
+/* 0x009160 */ 0x8f,0xb6,0xcb,0x08,0x30,0x10,0x9b,0x6d,0x58,0x23,0x36,0xa1,0x3f,0xf8,0xf1,0x5f,
+/* 0x009170 */ 0x46,0x7e,0x38,0x1e,0x78,0x9e,0xff,0xbf,0xeb,0x54,0xe4,0xa5,0x54,0x0f,0x63,0x90,
+/* 0x009180 */ 0xb5,0x5e,0xf3,0xab,0xdf,0x30,0xf1,0x57,0x87,0xf6,0xbc,0xd9,0x3a,0xcd,0x3d,0x66,
+/* 0x009190 */ 0x8b,0x50,0x85,0xe1,0xdb,0x3f,0xc2,0xa2,0x54,0x29,0x3f,0xe6,0x8d,0x51,0x01,0x7f,
+/* 0x0091a0 */ 0x29,0xe4,0xf9,0xe9,0x9c,0x3d,0x11,0x78,0xd2,0xb9,0x94,0x71,0x0b,0x80,0xc3,0xab,
+/* 0x0091b0 */ 0xad,0x13,0xf2,0xf9,0x76,0x9f,0xf7,0x57,0x7f,0x5a,0xf8,0x9e,0xf9,0xfe,0x9a,0x12,
+/* 0x0091c0 */ 0xde,0x76,0x4c,0x5d,0x21,0x60,0x9d,0xc1,0xa6,0x62,0xb7,0x30,0x6e,0xaa,0xf8,0x45,
+/* 0x0091d0 */ 0xcf,0x62,0x0f,0x5d,0x65,0x91,0x2f,0x9f,0x18,0xfa,0xaf,0xc0,0x61,0xce,0x18,0x0a,
+/* 0x0091e0 */ 0xdf,0x10,0x24,0x9c,0xa7,0xe0,0xca,0x4d,0xfe,0x7a,0x69,0x36,0xfe,0xfa,0x8f,0x81,
+/* 0x0091f0 */ 0xc3,0x9e,0x96,0x5e,0x38,0x98,0x41,0x1c,0x11,0x1b,0x31,0x52,0x38,0xae,0x8b,0x05,
+/* 0x009200 */ 0xbc,0x3a,0x15,0x5c,0x5e,0xe6,0x0e,0x8c,0xbf,0xe8,0xff,0xd5,0x8d,0x7f,0xe9,0x4f,
+/* 0x009210 */ 0x59,0xff,0x43,0x4b,0xa8,0x12,0x2e,0xb4,0xa4,0x4c,0x24,0xf5,0xa5,0xea,0x97,0x3f,
+/* 0x009220 */ 0x27,0x8c,0xf7,0x97,0x36,0x63,0x93,0x6f,0x8e,0x8d,0x01,0xdd,0x51,0x6a,0xbf,0x30,
+/* 0x009230 */ 0x5a,0xed,0x86,0x5d,0x56,0xa0,0xd3,0x7d,0x11,0x42,0x11,0x8f,0x74,0x65,0xd4,0x3c,
+/* 0x009240 */ 0xe6,0x8d,0x98,0x44,0xd8,0x68,0xc0,0xdd,0xf6,0xcb,0xe6,0xbf,0x66,0x91,0x7d,0xa1,
+/* 0x009250 */ 0xe1,0xff,0xcb,0x4d,0x91,0x18,0x41,0x17,0x4e,0xc3,0xae,0xa1,0x06,0x9c,0xc6,0xb7,
+/* 0x009260 */ 0x7a,0xe9,0x45,0x12,0xa8,0x38,0xb1,0xcf,0x1b,0xfd,0x97,0x9f,0xf6,0x69,0x23,0x65,
+/* 0x009270 */ 0x21,0x32,0x9d,0xf8,0x3e,0xbd,0xe7,0xc3,0x7f,0xcd,0x1c,0x79,0xd4,0xc1,0x7f,0xed,
+/* 0x009280 */ 0x36,0xda,0x2e,0xe7,0xcb,0x86,0xc4,0xf7,0xd5,0xb7,0xb5,0x47,0xf2,0xf8,0x97,0xfe,
+/* 0x009290 */ 0x0c,0xb6,0x95,0x5e,0xb1,0x1e,0xf8,0xaf,0xc4,0xd2,0x4b,0xe8,0x1e,0x51,0xc7,0x9b,
+/* 0x0092a0 */ 0xb1,0x29,0x7f,0x7e,0x12,0xe3,0xa6,0x3f,0x50,0x20,0x36,0xc6,0xf1,0x3f,0x24,0xa2,
+/* 0x0092b0 */ 0xaa,0x21,0x3c,0x75,0x4f,0x06,0x36,0xe7,0x83,0x37,0x31,0xf0,0xe9,0xd7,0xf0,0x4b,
+/* 0x0092c0 */ 0x61,0x2f,0xa1,0xc6,0x12,0x6a,0x14,0xb2,0x8b,0x7e,0x3a,0x78,0xb3,0x1b,0x7f,0xb1,
+/* 0x0092d0 */ 0xfc,0x17,0x18,0xc8,0xe3,0x34,0x7e,0x04,0xf5,0x24,0x8d,0x73,0xf5,0x03,0x30,0xe1,
+/* 0x0092e0 */ 0xf0,0xb6,0x3a,0x8a,0x13,0x98,0x90,0x22,0x8c,0x67,0x99,0x4d,0xb4,0x89,0xc1,0x5f,
+/* 0x0092f0 */ 0x79,0x87,0xff,0x21,0x4a,0x9c,0xc1,0x59,0xca,0xb8,0xf6,0x9c,0x89,0xbb,0xf1,0x23,
+/* 0x009300 */ 0x31,0x8c,0x1f,0x92,0xcb,0x2a,0x40,0xfb,0x35,0x7d,0xf1,0x0f,0xcd,0xfe,0xcb,0x9b,
+/* 0x009310 */ 0x5c,0xf8,0x4b,0x73,0xf2,0x5f,0x84,0x54,0xba,0x62,0x34,0x59,0xa6,0x44,0x06,0x7e,
+/* 0x009320 */ 0xb9,0x04,0xc0,0x05,0x34,0xdd,0x19,0xea,0x13,0xdf,0x47,0xd6,0x66,0xfc,0x88,0x02,
+/* 0x009330 */ 0x31,0x9b,0xff,0x92,0xd8,0x7e,0xbe,0x74,0x75,0x40,0x9d,0x17,0xa5,0xed,0xc8,0x1f,
+/* 0x009340 */ 0xe9,0x04,0x23,0x0e,0x74,0x2d,0xd0,0x7c,0x79,0xd1,0x98,0x58,0x10,0xa8,0x70,0xaf,
+/* 0x009350 */ 0x72,0x47,0x29,0xfd,0x17,0x0e,0x1e,0xc4,0x7f,0x4f,0xfd,0x19,0xeb,0x21,0xc1,0x2f,
+/* 0x009360 */ 0x3b,0xd8,0x20,0xf5,0xc3,0xd1,0x9c,0x58,0x8b,0xfe,0xce,0x35,0x98,0xaf,0xff,0xa2,
+/* 0x009370 */ 0xf8,0x34,0x40,0x60,0x69,0xa1,0x95,0x5c,0xf9,0x67,0x72,0x80,0x73,0xba,0xa3,0xe1,
+/* 0x009380 */ 0x6f,0x49,0xa3,0xa2,0x37,0x8c,0xc1,0x92,0xb3,0xfe,0xd0,0xe1,0x3f,0x4f,0x6e,0xa5,
+/* 0x009390 */ 0xe3,0x9b,0xf0,0x32,0x91,0x42,0x0e,0x60,0x1e,0x21,0xa9,0x88,0x83,0x7c,0xb5,0xb6,
+/* 0x0093a0 */ 0x23,0x88,0xf0,0xe7,0x18,0xeb,0x65,0x9d,0x31,0x1a,0xf8,0x2b,0xe7,0xf0,0x3f,0x04,
+/* 0x0093b0 */ 0xa9,0xd1,0xa4,0xb0,0x01,0x27,0xff,0x0b,0xf2,0xe1,0x87,0xca,0x68,0xff,0xaf,0xd0,
+/* 0x0093c0 */ 0x18,0x29,0x1d,0x9f,0x91,0x97,0x0b,0x89,0x06,0xa0,0xbd,0xc6,0x59,0x20,0x36,0x6e,
+/* 0x0093d0 */ 0xf2,0x5f,0xeb,0xa4,0xcf,0x02,0x6c,0xfd,0xe1,0x90,0x78,0x9f,0x76,0x20,0xbb,0x5c,
+/* 0x0093e0 */ 0xaf,0xb8,0x1b,0xc3,0xc0,0xcf,0x84,0xc6,0xb3,0xe1,0x59,0xad,0x6f,0x0e,0x7f,0x96,
+/* 0x0093f0 */ 0x5d,0x36,0x12,0xad,0xc6,0x6f,0xb4,0xff,0x04,0x8e,0x2c,0x6d,0x4a,0xc3,0x6c,0xfe,
+/* 0x009400 */ 0xeb,0x69,0x67,0xff,0x2f,0x3c,0x75,0x81,0x93,0xea,0x7b,0xb1,0x06,0x72,0x45,0x25,
+/* 0x009410 */ 0x7c,0xe5,0x55,0xb1,0x71,0xec,0x9a,0xbc,0x4a,0x2d,0xff,0x9d,0x38,0xd1,0xd6,0x0c,
+/* 0x009420 */ 0xe7,0x1b,0x9f,0xd6,0xb8,0xeb,0x0f,0x93,0x6c,0xfd,0x21,0x3c,0x12,0x33,0xe1,0x0b,
+/* 0x009430 */ 0xed,0x15,0x54,0x9f,0x2f,0x3f,0xdd,0x53,0x07,0x4f,0x8b,0x1a,0x01,0x13,0xec,0x37,
+/* 0x009440 */ 0x94,0xfa,0xfc,0x77,0x35,0x71,0x5c,0x5e,0xeb,0xae,0x4f,0x30,0xf6,0xd7,0xb3,0xcf,
+/* 0x009450 */ 0xb3,0xfd,0x2b,0x17,0x51,0xdb,0x8d,0x99,0x80,0x97,0xd3,0x02,0xd4,0x5d,0x2c,0x56,
+/* 0x009460 */ 0x43,0xa0,0xff,0xda,0x2d,0xd7,0xa8,0x18,0x6d,0x5d,0x30,0x5e,0x76,0x09,0xeb,0x05,
+/* 0x009470 */ 0x74,0x95,0xef,0x7f,0x78,0x09,0xd8,0xae,0xc0,0x33,0x5a,0x4d,0x3e,0xb4,0x3d,0x04,
+/* 0x009480 */ 0xf6,0x92,0x8b,0xba,0xe4,0xf5,0xc4,0xff,0xb0,0x1a,0xec,0x4d,0xde,0xc4,0xc1,0x83,
+/* 0x009490 */ 0x46,0x53,0x36,0x07,0xff,0x35,0x8e,0xa0,0xda,0xd0,0x71,0xf4,0x31,0x7f,0x54,0xeb,
+/* 0x0094a0 */ 0xa7,0x87,0xc3,0x11,0xa3,0x0d,0x62,0x02,0x4e,0x89,0x95,0xbc,0x3c,0x68,0x1f,0x20,
+/* 0x0094b0 */ 0x5b,0xbb,0xdb,0xc2,0x5f,0x80,0xa4,0x1e,0x66,0xf1,0x97,0xb8,0x17,0x5d,0x94,0x08,
+/* 0x0094c0 */ 0xfe,0x4a,0x42,0xb7,0xe5,0x6c,0x24,0x1b,0x00,0xb5,0x57,0xfd,0xa1,0xd4,0x65,0x61,
+/* 0x0094d0 */ 0x32,0xf1,0xba,0x4f,0xfd,0xa1,0xe1,0x7f,0xc8,0x52,0x2d,0x79,0x89,0xb0,0x5d,0x4e,
+/* 0x0094e0 */ 0x47,0x0e,0x0c,0xc4,0xe0,0x80,0x5d,0xf3,0xc1,0x5f,0x23,0x8c,0xff,0x61,0xc0,0xca,
+/* 0x0094f0 */ 0x21,0x5f,0xc3,0xf9,0xea,0x3c,0x9a,0x4c,0xde,0xb1,0x91,0xaa,0x63,0x34,0x2b,0x83,
+/* 0x009500 */ 0xa5,0x8c,0x18,0xb7,0xfe,0xb0,0x89,0xc5,0x5f,0x22,0x29,0x3b,0xa4,0xc5,0x6f,0x60,
+/* 0x009510 */ 0x84,0x98,0x24,0xb0,0x2b,0xb6,0x5f,0xed,0x07,0x47,0xbb,0x9d,0x68,0x85,0x5a,0xee,
+/* 0x009520 */ 0xe5,0xbf,0x96,0x07,0xbc,0xb5,0x85,0x13,0xc2,0x4e,0x42,0x88,0xb4,0x98,0x86,0xf6,
+/* 0x009530 */ 0x70,0x4b,0x4e,0xa8,0xb7,0x0f,0xe0,0x37,0x9a,0x4f,0xff,0x65,0x87,0xff,0xa1,0x41,
+/* 0x009540 */ 0x84,0x1d,0xc4,0x6f,0x59,0x45,0xdd,0x15,0xcf,0x50,0x21,0x98,0x4c,0x3a,0x05,0x03,
+/* 0x009550 */ 0x35,0x16,0xcf,0x48,0xfb,0xbb,0x31,0x2e,0x08,0xf9,0xd5,0x1f,0xd6,0x19,0x3d,0xd4,
+/* 0x009560 */ 0x6c,0xb7,0xc3,0x41,0x14,0xce,0xd0,0xc9,0xec,0x8b,0xd0,0x16,0xc6,0xf5,0xd0,0xe7,
+/* 0x009570 */ 0xba,0x53,0xf3,0xe9,0xbf,0x7c,0xc1,0xc9,0xcb,0x10,0x0f,0xff,0x5f,0x67,0xaf,0x27,
+/* 0x009580 */ 0x9b,0xee,0x69,0x1f,0x68,0x85,0x46,0x60,0xcd,0x6b,0x68,0x21,0x62,0x12,0x07,0x6f,
+/* 0x009590 */ 0xf5,0x4c,0x65,0x61,0xf0,0x7d,0xa5,0xea,0x0f,0x67,0x34,0xab,0xf7,0x62,0x38,0x10,
+/* 0x0095a0 */ 0x3b,0x87,0xaf,0xdc,0xbb,0xe7,0x15,0xb8,0x35,0x0f,0x14,0x61,0x3b,0xd0,0xb9,0x24,
+/* 0x0095b0 */ 0x41,0x5b,0xb5,0xd9,0x87,0x50,0xd3,0x3d,0x4c,0x7f,0x61,0x93,0xff,0xda,0x36,0xc7,
+/* 0x0095c0 */ 0x03,0xa9,0x50,0x5e,0x3b,0xa4,0x50,0x20,0xa6,0x0d,0xa1,0xf9,0x73,0x40,0x11,0x26,
+/* 0x0095d0 */ 0xf7,0x75,0xd6,0xc9,0xe1,0x8c,0x50,0xad,0xc1,0x98,0xa0,0x97,0xff,0x72,0xfa,0x1f,
+/* 0x0095e0 */ 0x1a,0x41,0xf5,0x13,0x32,0x0d,0x14,0x7c,0xa5,0x45,0x26,0x3c,0xa3,0x9c,0x3a,0x1b,
+/* 0x0095f0 */ 0x9e,0x9d,0x91,0x14,0xf7,0x60,0x03,0x7f,0xad,0x0f,0xb8,0xf0,0xd7,0xda,0x81,0x96,
+/* 0x009600 */ 0x61,0xf5,0x84,0x60,0x0a,0x00,0xd1,0xfc,0xb6,0xe0,0x13,0x18,0xbf,0xe3,0xe5,0xbe,
+/* 0x009610 */ 0x47,0x1c,0x48,0xd4,0xf6,0x82,0xc6,0x30,0xe8,0xd5,0x7f,0xe5,0x39,0xf5,0x87,0xbf,
+/* 0x009620 */ 0x37,0x3d,0xfc,0x4d,0x45,0x58,0xe5,0x30,0xc8,0xbe,0x3a,0x2b,0xf6,0x84,0xbf,0xee,
+/* 0x009630 */ 0x57,0x7f,0xd8,0xc6,0xad,0x3f,0x64,0x40,0xf1,0xb2,0x4e,0xf3,0x56,0xc7,0xee,0xb9,
+/* 0x009640 */ 0x10,0x08,0x20,0x99,0x6c,0x75,0xe3,0x2f,0xd9,0xcd,0x7f,0x59,0xdc,0x16,0x6d,0xcf,
+/* 0x009650 */ 0x17,0x68,0x92,0x59,0xb6,0xeb,0x92,0xe4,0xde,0xa7,0x3c,0xfe,0x8b,0xf2,0xe6,0x71,
+/* 0x009660 */ 0x40,0x5b,0x9b,0xf1,0x77,0x82,0x01,0xb2,0x08,0x93,0xfe,0xe6,0xbf,0x2e,0x1e,0x30,
+/* 0x009670 */ 0x60,0x57,0x13,0x0b,0xc4,0xc4,0x5d,0xdc,0xfa,0x43,0xaa,0x51,0x15,0x9e,0x60,0xae,
+/* 0x009680 */ 0xe4,0x09,0xdb,0xf5,0x64,0x2c,0x75,0x81,0xf4,0x68,0x3e,0x2a,0xc1,0xad,0x16,0x37,
+/* 0x009690 */ 0xfe,0xd2,0x58,0xff,0xc3,0x1f,0x23,0xd2,0x76,0x79,0x4a,0x7b,0x3a,0xb6,0x08,0x7c,
+/* 0x0096a0 */ 0x21,0x28,0xc8,0x92,0x41,0x1a,0x86,0xbf,0x96,0xcf,0xf4,0xff,0x93,0xf0,0x4e,0xec,
+/* 0x0096b0 */ 0x38,0x0a,0x3a,0x00,0xc2,0x21,0xfa,0xf7,0xf4,0xb1,0xfc,0xd7,0x71,0xea,0xad,0xf1,
+/* 0x0096c0 */ 0x6e,0xfa,0xbf,0x0e,0x2d,0xa2,0xb6,0x87,0xd7,0xb4,0xe6,0x6c,0x0a,0xbe,0xba,0x69,
+/* 0x0096d0 */ 0xdb,0xe5,0x99,0xef,0xca,0xd7,0x4c,0x46,0xcc,0x59,0x7f,0x18,0x72,0xd4,0xc5,0x49,
+/* 0x0096e0 */ 0x55,0x24,0x58,0xfd,0x81,0x0a,0x57,0x5a,0xad,0xa4,0x7d,0x14,0x04,0xb6,0x7a,0xc5,
+/* 0x0096f0 */ 0xb1,0x7d,0xfe,0xf5,0x87,0x96,0xff,0xa1,0x40,0x28,0x2d,0xe0,0xb6,0x3e,0x51,0x6f,
+/* 0x009700 */ 0x0e,0x34,0xe7,0xdb,0x4f,0xb4,0x92,0xd4,0xb1,0x33,0x32,0x29,0xfe,0x0c,0xdf,0x6a,
+/* 0x009710 */ 0xca,0x57,0x58,0xb6,0x6c,0x4c,0x7d,0x94,0x1e,0xa0,0x3c,0x91,0xab,0x7f,0x0a,0xe1,
+/* 0x009720 */ 0xb6,0xda,0x7e,0x0e,0xc1,0x76,0x91,0xdc,0x42,0x84,0x0d,0x3c,0xde,0xb1,0xa8,0x0e,
+/* 0x009730 */ 0xa3,0x2d,0x42,0x84,0x8d,0xf7,0x6f,0x67,0xeb,0x0f,0x15,0x9a,0x40,0xdb,0x9f,0x03,
+/* 0x009740 */ 0x5d,0xc3,0xf4,0xe7,0xe0,0x03,0x7f,0x6e,0x77,0x5d,0x59,0x24,0x90,0x82,0x7c,0xfc,
+/* 0x009750 */ 0xc9,0xfa,0xda,0xae,0x1f,0x99,0x1c,0x99,0x97,0xff,0xf2,0xfa,0xbc,0x95,0x4d,0x48,
+/* 0x009760 */ 0xc4,0x0f,0x36,0xdd,0x42,0x6e,0x69,0xb0,0xee,0xc1,0x1c,0xb4,0xd4,0x59,0x26,0x78,
+/* 0x009770 */ 0x06,0xfb,0xd6,0x1f,0x12,0x9d,0xc2,0x4d,0x33,0xc0,0x00,0x4a,0x4d,0xc1,0x2d,0xf2,
+/* 0x009780 */ 0xf4,0x4e,0x0a,0x53,0x9e,0xc1,0x45,0xf9,0x2f,0xcb,0xed,0x10,0x67,0x20,0xa8,0xe2,
+/* 0x009790 */ 0x48,0x25,0xf9,0x1c,0xad,0x3d,0xd7,0x43,0x89,0x30,0x0e,0xff,0x55,0xcd,0xad,0x3f,
+/* 0x0097a0 */ 0x3c,0x67,0x77,0x3e,0xc2,0xfb,0xcb,0xb8,0x85,0x00,0x91,0xc5,0x7c,0xfa,0x2f,0xef,
+/* 0x0097b0 */ 0xe3,0xd6,0x1f,0xbe,0x80,0x83,0x72,0xc3,0x04,0x5b,0x89,0x12,0xbb,0x78,0xbd,0x2e,
+/* 0x0097c0 */ 0x47,0xa8,0x0d,0x37,0xc8,0xb2,0xf9,0x2f,0x8e,0xff,0xc6,0x4e,0xfb,0x0a,0xfe,0x3e,
+/* 0x0097d0 */ 0x84,0x60,0x48,0xab,0xeb,0x22,0x48,0x8a,0x69,0x31,0xe6,0xef,0x7f,0x88,0x52,0x67,
+/* 0x0097e0 */ 0xd7,0xa6,0xcb,0xce,0xa1,0x7d,0x62,0xea,0xec,0x6d,0x4b,0x89,0x41,0x7a,0x52,0x05,
+/* 0x0097f0 */ 0xe1,0x9e,0x96,0x8b,0xa5,0xe4,0xb5,0xe9,0x50,0x64,0x18,0xe7,0x1b,0xa3,0xd0,0x0a,
+/* 0x009800 */ 0x47,0x35,0xf1,0x57,0x37,0x4d,0x7f,0x58,0xfe,0x8b,0xc0,0xdb,0x23,0x78,0x9f,0x7e,
+/* 0x009810 */ 0x17,0xcc,0x4c,0x06,0x7b,0x3e,0x9e,0xf5,0x36,0x7c,0x23,0xe5,0xa8,0xff,0xa1,0x0a,
+/* 0x009820 */ 0xf3,0x23,0x60,0xb0,0xf6,0x3a,0x8b,0x97,0x4d,0xfe,0xeb,0x69,0x17,0x99,0x88,0xb3,
+/* 0x009830 */ 0xc1,0x9b,0xda,0x4d,0x19,0xe7,0xfc,0x57,0x49,0x12,0xb8,0x12,0x91,0x44,0x71,0x4a,
+/* 0x009840 */ 0x69,0x8e,0xc1,0xb1,0xbc,0x7e,0x0b,0x7e,0x45,0x81,0x48,0xc3,0x28,0xff,0xf5,0x8d,
+/* 0x009850 */ 0x62,0xfa,0x2f,0x0c,0xbb,0xa2,0xd0,0xed,0x0b,0x02,0x7c,0xa5,0x81,0x3f,0xa6,0x94,
+/* 0x009860 */ 0xfe,0x0b,0x8c,0x38,0x5e,0xed,0x1b,0x8a,0x93,0x2b,0x85,0x70,0x6e,0xcd,0xfc,0xaf,
+/* 0x009870 */ 0xac,0xff,0x4a,0x8d,0x04,0x8d,0x03,0x8a,0x31,0x7c,0x45,0xe2,0x8f,0x71,0xf0,0x5f,
+/* 0x009880 */ 0x6e,0xff,0x0d,0x33,0x48,0x62,0x20,0x66,0x5e,0x99,0xef,0x5b,0xbf,0xda,0x52,0x54,
+/* 0x009890 */ 0xff,0x05,0xac,0x07,0x46,0x37,0x5f,0xaa,0x06,0xfd,0xb1,0xd8,0xff,0x1c,0xa9,0xa8,
+/* 0x0098a0 */ 0xfe,0xcb,0xf0,0xdf,0xf8,0xdc,0xa3,0x1e,0xfa,0xa3,0xf5,0x5f,0x0c,0xe9,0x46,0x15,
+/* 0x0098b0 */ 0x85,0x7e,0x7f,0x4f,0x51,0xfd,0x17,0x9c,0x6f,0xc8,0xf0,0xcc,0x93,0x20,0xcd,0x39,
+/* 0x0098c0 */ 0x8e,0x98,0xae,0xfe,0x2b,0x75,0x26,0xc4,0x04,0xba,0xff,0x7a,0x95,0xd0,0x7f,0xa5,
+/* 0x0098d0 */ 0x8c,0xe2,0xb7,0x5e,0x42,0xbe,0x6c,0xe0,0x8e,0x29,0x56,0x7f,0x68,0x07,0xe5,0x4c,
+/* 0x0098e0 */ 0xf0,0x4b,0x9f,0x31,0x3e,0xfa,0x2f,0x46,0xe4,0xd5,0x4c,0xbf,0x57,0x71,0x70,0xd6,
+/* 0x0098f0 */ 0xf9,0x95,0x7b,0x83,0xb9,0xc5,0xd6,0x1f,0xf2,0xf5,0x5f,0xa8,0xe9,0x22,0x7b,0x32,
+/* 0x009900 */ 0x59,0xeb,0xbf,0x5e,0x45,0xf5,0x5f,0xc7,0x85,0x45,0x7a,0xbf,0x55,0x89,0x01,0xfe,
+/* 0x009910 */ 0x51,0xfc,0xf3,0xc3,0xb5,0x25,0xf5,0x5f,0x8b,0x26,0x2c,0x47,0x0e,0x1c,0x7c,0xcd,
+/* 0x009920 */ 0x7f,0x9e,0x8b,0xea,0xbf,0x5e,0x76,0x5d,0xf1,0x79,0x36,0xf4,0xd2,0xfa,0x2f,0x08,
+/* 0x009930 */ 0xe2,0x93,0x8a,0x71,0xe5,0x6e,0xdf,0x31,0x45,0xf4,0x5f,0x44,0x33,0xd2,0xe8,0x3c,
+/* 0x009940 */ 0x45,0x57,0xbe,0x2a,0xff,0x05,0x6d,0x92,0x0c,0xf2,0x25,0xe2,0xd6,0xb9,0x38,0x82,
+/* 0x009950 */ 0xe2,0xfa,0x2f,0xb4,0xd0,0x2e,0x32,0x94,0x9f,0xe6,0xd0,0x16,0xd3,0xf5,0x3f,0x4c,
+/* 0x009960 */ 0xa8,0x18,0xbe,0x4d,0x18,0x86,0x1e,0x99,0x22,0x9f,0x53,0x54,0xff,0x75,0x02,0x25,
+/* 0x009970 */ 0x57,0x5b,0x45,0x86,0xf2,0x2c,0x43,0xff,0x15,0x2c,0xa9,0xff,0xf2,0xce,0x61,0xfd,
+/* 0x009980 */ 0x6d,0x90,0x36,0x03,0x35,0x16,0x8a,0x48,0xc5,0x74,0x76,0xc5,0xf5,0x5f,0x94,0x43,
+/* 0x009990 */ 0xa4,0xc5,0x81,0x8b,0xf7,0xd8,0x55,0x82,0x7f,0xac,0xfe,0x0b,0x35,0x6d,0x85,0xf5,
+/* 0x0099a0 */ 0x02,0xfa,0xec,0x7e,0x8c,0xe3,0x26,0x02,0xbe,0x9f,0x53,0x54,0xff,0x85,0x83,0x64,
+/* 0x0099b0 */ 0xc4,0xba,0x92,0xc9,0xe4,0xd1,0xb8,0x1f,0xff,0x55,0x5c,0xff,0x65,0x74,0xfb,0x82,
+/* 0x0099c0 */ 0xa0,0x83,0x7b,0x6b,0x9a,0xfa,0x2f,0xda,0x89,0xe0,0x8a,0x79,0xe5,0x8a,0xf4,0x82,
+/* 0x0099d0 */ 0xef,0xba,0xfb,0xea,0xbf,0x6c,0xed,0xdb,0x15,0x3b,0xf8,0xaa,0xfa,0x2f,0x87,0x59,
+/* 0x0099e0 */ 0x47,0x8f,0x03,0x91,0x39,0x83,0x22,0xf5,0x87,0xae,0x2b,0xf7,0x6a,0xad,0x97,0x90,
+/* 0x0099f0 */ 0x2f,0x7f,0x5a,0x42,0xff,0xc5,0x06,0xe3,0x2d,0xe3,0xe8,0x27,0x7e,0x63,0xf8,0xfa,
+/* 0x009a00 */ 0x2f,0x2b,0x20,0x07,0x89,0xa3,0xd2,0x51,0x29,0xa9,0x87,0xab,0xc0,0x76,0xbe,0x04,
+/* 0x009a10 */ 0xff,0xe5,0xa7,0xff,0x02,0xa0,0x61,0x1e,0x82,0x75,0x9c,0xfd,0x12,0x71,0x79,0x19,
+/* 0x009a20 */ 0xdf,0xfa,0x43,0x26,0xd0,0x2b,0xb6,0xb5,0x1a,0x57,0xd6,0x8b,0xfe,0xfc,0x97,0x55,
+/* 0x009a30 */ 0x7f,0x18,0xf5,0xc9,0x13,0x86,0x4d,0xfc,0xa5,0x57,0x0c,0xd8,0xd5,0x86,0xfe,0xf8,
+/* 0x009a40 */ 0xcb,0x2f,0x3f,0x24,0x41,0x8c,0xd0,0x5e,0x17,0x78,0xb7,0x2c,0xfc,0xe5,0xa3,0xff,
+/* 0x009a50 */ 0x62,0x79,0xab,0x77,0xd0,0x6f,0x71,0x22,0x14,0xfe,0x2b,0x91,0x91,0x86,0xb9,0xf5,
+/* 0x009a60 */ 0x5f,0x3e,0xf5,0x87,0x8e,0x60,0x94,0x4e,0x6f,0x07,0xe7,0x56,0x49,0xfd,0x17,0xb3,
+/* 0x009a70 */ 0xee,0xc2,0x79,0x04,0xfa,0x2f,0xbc,0x19,0xff,0xcd,0xbe,0xe5,0x26,0x56,0x8a,0xe0,
+/* 0x009a80 */ 0x2f,0xbb,0x2a,0xa6,0x13,0x68,0x1d,0xbc,0xe3,0x3e,0x76,0x53,0x5a,0xc6,0xe0,0x70,
+/* 0x009a90 */ 0x69,0xfd,0xd7,0x19,0x9b,0xa6,0x7c,0x8a,0x08,0xc1,0x9c,0xe5,0x55,0x25,0xea,0x0f,
+/* 0x009aa0 */ 0x99,0xa0,0x1c,0xfc,0x96,0x09,0xda,0xba,0x20,0x4e,0xf1,0x38,0xb2,0x69,0xe8,0xbf,
+/* 0x009ab0 */ 0x8c,0xfc,0xd0,0x68,0x92,0xfb,0x3f,0x99,0x75,0x9e,0x72,0xc1,0xe9,0xe9,0xbf,0x4c,
+/* 0x009ac0 */ 0x23,0x0e,0xca,0x7a,0x0c,0x94,0x15,0xa9,0x43,0x2b,0xa1,0xff,0x32,0x4c,0xbd,0xc8,
+/* 0x009ad0 */ 0xea,0xc4,0x84,0x4d,0xa4,0x4f,0x44,0x90,0xb7,0x4f,0xfd,0xf5,0x5f,0x6c,0xfe,0x4c,
+/* 0x009ae0 */ 0xd8,0x13,0xf0,0xaf,0xf3,0xe1,0xc8,0x8a,0xeb,0xbf,0x9c,0x41,0x7b,0xde,0xf7,0x96,
+/* 0x009af0 */ 0xa3,0xfe,0x50,0x60,0xf8,0xe5,0x26,0xa0,0x95,0xa7,0xb2,0xe7,0xb4,0xa6,0x91,0xc8,
+/* 0x009b00 */ 0xa4,0x38,0x00,0xd4,0x33,0xaa,0x02,0x20,0x36,0x8a,0xee,0xca,0x3f,0xfe,0xd0,0x6d,
+/* 0x009b10 */ 0xcb,0x34,0x32,0x86,0x87,0xbf,0x26,0x4c,0x4a,0xcb,0xaa,0x3f,0xbc,0x85,0xfa,0x33,
+/* 0x009b20 */ 0x2b,0x75,0x39,0x2b,0x28,0x0a,0xbe,0xa5,0xf7,0x0d,0x25,0x30,0xf2,0xd5,0x12,0x28,
+/* 0x009b30 */ 0x32,0x28,0xd4,0xad,0x2e,0x82,0xbf,0x9c,0xdf,0x75,0xf5,0xc2,0xe3,0x50,0x2d,0x3f,
+/* 0x009b40 */ 0x36,0x37,0x2b,0xf4,0xc1,0x2d,0x24,0xa7,0xcb,0x46,0x85,0x6e,0x38,0x69,0xaf,0x17,
+/* 0x009b50 */ 0xd6,0xc9,0x8e,0x9e,0x89,0x4e,0xfc,0xe5,0x5a,0xd3,0x04,0xac,0xf2,0x42,0x3d,0x38,
+/* 0x009b60 */ 0x24,0xd4,0xa1,0x7e,0xb1,0xae,0x97,0x3c,0x48,0xf8,0xef,0x19,0x91,0xd3,0x19,0xef,
+/* 0x009b70 */ 0xc3,0xc6,0xe0,0x2f,0xd7,0x5a,0xb4,0xc2,0x27,0x37,0xe9,0x51,0xb9,0xe6,0x40,0x02,
+/* 0x009b80 */ 0xdf,0x42,0x72,0xae,0x72,0x54,0x78,0x25,0x33,0x98,0x4f,0x9d,0x14,0x37,0x22,0xda,
+/* 0x009b90 */ 0x74,0x63,0xe6,0xb4,0xf0,0x97,0x40,0xf6,0xc5,0x98,0x00,0xcd,0xc2,0x56,0x11,0xb7,
+/* 0x009ba0 */ 0x79,0xe9,0x86,0xb4,0x32,0xff,0xff,0xa4,0x5d,0x7f,0x70,0x14,0x55,0x9e,0x7f,0xdd,
+/* 0x009bb0 */ 0x3d,0xc4,0xce,0xf4,0xfc,0xe8,0x4d,0xa8,0xba,0xac,0x70,0xd8,0x99,0x04,0x6a,0x60,
+/* 0x009bc0 */ 0xc3,0x10,0x12,0x36,0x40,0x88,0x93,0x26,0xe4,0xdc,0x2c,0xa6,0x0e,0x76,0x6f,0xeb,
+/* 0x009bd0 */ 0xca,0x3f,0xb6,0xac,0xa8,0xd4,0x15,0x77,0x85,0x16,0xde,0x5d,0x6d,0xe1,0x2d,0xa7,
+/* 0x009be0 */ 0x2f,0x93,0xa8,0x81,0xb0,0xeb,0x04,0xa8,0x53,0x4f,0x3d,0x47,0x36,0x65,0x01,0x47,
+/* 0x009bf0 */ 0x79,0x03,0x08,0x84,0x1f,0x8b,0x2d,0x06,0x37,0x28,0x3f,0xb2,0xe0,0x5e,0x21,0x52,
+/* 0x009c00 */ 0x32,0x68,0xd0,0xa0,0x51,0xe3,0x56,0x74,0x83,0x06,0xbc,0xf7,0x7d,0xaf,0xbb,0xa7,
+/* 0x009c10 */ 0x7b,0xba,0x7b,0x66,0xac,0xfb,0xef,0x5b,0xef,0xbd,0x99,0x4c,0xde,0xeb,0xd7,0xef,
+/* 0x009c20 */ 0xfb,0x79,0x9f,0xef,0xf7,0xf3,0x0d,0x4d,0xb8,0x70,0x9a,0xee,0xf8,0x0b,0x64,0x18,
+/* 0x009c30 */ 0xbb,0x4e,0x73,0x9f,0x42,0xd2,0x50,0x9f,0xa0,0xc0,0xf3,0xc3,0x87,0xe8,0x0b,0xb6,
+/* 0x009c40 */ 0xa2,0x61,0x38,0x78,0xcc,0x25,0xb0,0xcd,0xc4,0x5f,0xb6,0xf8,0xc3,0x88,0x26,0x1e,
+/* 0x009c50 */ 0xe1,0xa7,0xf0,0x51,0x65,0x81,0x16,0xfc,0x4d,0xd5,0x1a,0x98,0xba,0xe1,0x9e,0x34,
+/* 0x009c60 */ 0x7f,0x4b,0x39,0xaa,0x36,0x6a,0xe2,0x00,0x0d,0xdd,0x6c,0x74,0xc7,0x5f,0xeb,0x02,
+/* 0x009c70 */ 0xb6,0xfc,0xe5,0xd2,0x45,0xfc,0x59,0xb8,0xd4,0xd5,0x4a,0x45,0xc6,0x76,0xa1,0x0a,
+/* 0x009c80 */ 0xd2,0xa5,0xa4,0xd1,0x9c,0x11,0x9a,0xe9,0xbf,0x3f,0xa7,0xb8,0xb6,0x81,0xbf,0x96,
+/* 0x009c90 */ 0x5b,0xf0,0xd7,0x6b,0x20,0xbb,0xf1,0x08,0xf8,0xfc,0xda,0x83,0x93,0xa5,0xf7,0xf0,
+/* 0x009ca0 */ 0xbf,0x42,0x4f,0xe2,0x1a,0xc5,0x4f,0x80,0x98,0x7a,0x00,0x4b,0x86,0x40,0xc4,0xdc,
+/* 0x009cb0 */ 0x82,0xf8,0x0b,0x54,0x5f,0x82,0x60,0x7c,0x89,0x36,0x66,0x82,0x32,0x2f,0xa2,0x0b,
+/* 0x009cc0 */ 0x72,0x93,0x1c,0x83,0xbf,0xfe,0x25,0x6a,0xd0,0xe6,0xd7,0x09,0x54,0x88,0x63,0xb4,
+/* 0x009cd0 */ 0x28,0xfd,0x0d,0xa6,0x36,0x4f,0xce,0x41,0x15,0x16,0x85,0x6f,0xc6,0x7f,0x3d,0x6e,
+/* 0x009ce0 */ 0xdc,0x74,0xb1,0x65,0xa2,0x65,0xbf,0x9c,0xfa,0x87,0xd6,0x2b,0x2f,0x28,0xfb,0x35,
+/* 0x009cf0 */ 0x20,0xbc,0x72,0xe2,0x3d,0x06,0xbb,0xe8,0xab,0x00,0x85,0x81,0x11,0x3b,0x83,0xfc,
+/* 0x009d00 */ 0xaf,0x07,0xd2,0x02,0x48,0x6b,0x52,0xfd,0xc3,0xbc,0xf8,0xeb,0x35,0xf4,0x92,0xd6,
+/* 0x009d10 */ 0x65,0xd6,0x56,0xce,0x80,0xca,0x13,0x0b,0xae,0xb8,0x89,0xfe,0x54,0x52,0xa5,0x05,
+/* 0x009d20 */ 0x2d,0x61,0x87,0x2e,0xf9,0x5f,0x9a,0x65,0x9e,0x67,0x03,0xcf,0xf8,0x5b,0xfc,0x24,
+/* 0x009d30 */ 0xfe,0xc7,0x8c,0xb4,0x76,0xde,0xed,0x64,0x32,0x67,0x2b,0xb4,0xab,0xab,0x67,0xee,
+/* 0x009d40 */ 0xb8,0x68,0x04,0x7c,0x8a,0x05,0xf1,0x17,0x4b,0x83,0x0d,0x74,0x71,0x0f,0x69,0x77,
+/* 0x009d50 */ 0x2f,0x49,0x84,0x60,0xdd,0x87,0x29,0x01,0xba,0xed,0xa7,0xca,0xf9,0xd2,0xa5,0xc8,
+/* 0x009d60 */ 0xf2,0xaa,0xcc,0x8b,0xbf,0x1a,0xc0,0xd8,0x29,0xbe,0xa5,0x34,0xe2,0xf0,0x27,0xc2,
+/* 0x009d70 */ 0x12,0x82,0xbf,0x9a,0x7b,0x68,0xd7,0x59,0x6d,0x69,0xb2,0x7d,0xac,0xca,0x0c,0x3b,
+/* 0x009d80 */ 0x2c,0x4e,0x7f,0x63,0x14,0xc5,0x65,0xea,0xe0,0x5d,0x24,0xfb,0x02,0xae,0xd3,0x91,
+/* 0x009d90 */ 0x93,0x11,0xcb,0x8b,0xbf,0x1e,0x55,0x9f,0x32,0xd0,0x56,0xa0,0xef,0x36,0x20,0xc2,
+/* 0x009da0 */ 0x9a,0xc0,0xe1,0xbc,0x86,0x5e,0xc7,0x75,0x1d,0x31,0x96,0xb2,0xc4,0x74,0x06,0xe4,
+/* 0x009db0 */ 0x42,0xf8,0xeb,0x99,0xb2,0x8f,0xd1,0xe1,0xe1,0xd8,0xfa,0x36,0xf8,0x66,0x48,0xdb,
+/* 0x009dc0 */ 0x09,0xd2,0xbc,0x2d,0xb5,0x61,0xad,0xf8,0x4c,0xd9,0xf7,0xc0,0x5f,0x5b,0xf9,0x91,
+/* 0x009dd0 */ 0x0e,0x62,0xfc,0x62,0x5e,0x3a,0x32,0x98,0x55,0xbd,0xdb,0xb5,0x3a,0x32,0xe4,0xaa,
+/* 0x009de0 */ 0xa3,0x98,0xc5,0x5f,0x39,0xf1,0x87,0xb5,0xfc,0x60,0xff,0x5e,0x5c,0xb3,0xd2,0x2f,
+/* 0x009df0 */ 0x97,0x74,0xef,0xe8,0xd3,0x85,0x10,0x53,0x2f,0x45,0xe7,0xa8,0x6d,0x15,0x7c,0x6b,
+/* 0x009e00 */ 0xca,0x5a,0xb2,0xca,0x1e,0x7f,0x98,0xb6,0x4c,0x5d,0x8c,0x86,0x77,0xe2,0x01,0x14,
+/* 0x009e10 */ 0x17,0x43,0x04,0x8c,0xe0,0x8b,0x88,0xf2,0x17,0xa3,0x78,0x54,0xa9,0xa3,0x5c,0xa4,
+/* 0x009e20 */ 0x83,0x67,0xcc,0xe2,0x2f,0x6c,0x75,0xd1,0x97,0x87,0xcf,0x77,0x81,0xda,0xe1,0xa3,
+/* 0x009e30 */ 0x2b,0x83,0xe7,0xbb,0x26,0x52,0xd7,0x51,0xf3,0x5b,0xd0,0x95,0xba,0x82,0x9a,0x57,
+/* 0x009e40 */ 0xae,0x22,0x2d,0x94,0x4f,0x09,0x5b,0x24,0x28,0x4d,0xfc,0x75,0xcd,0xce,0xe6,0x84,
+/* 0x009e50 */ 0x56,0x0b,0xfd,0xe8,0x75,0xd4,0x0c,0x3a,0x1e,0xf0,0x27,0x9a,0x5b,0xc9,0x7a,0x7d,
+/* 0x009e60 */ 0x85,0x6e,0xfa,0xeb,0x69,0x45,0xb0,0x8a,0x4d,0x46,0x41,0x31,0x27,0xfe,0xea,0xa1,
+/* 0x009e70 */ 0x48,0x8a,0x3c,0x2d,0x03,0xa8,0x11,0x05,0x13,0x09,0x45,0xbc,0x0c,0xd9,0x5e,0x89,
+/* 0x009e80 */ 0xc4,0xd5,0x14,0xc0,0x2e,0x3f,0xe6,0xaf,0x92,0xff,0x74,0x9e,0x48,0x81,0xd8,0x4e,
+/* 0x009e90 */ 0x03,0x7f,0x4d,0xe6,0xe0,0xaf,0x93,0xb8,0x2f,0x3b,0xcf,0x31,0x60,0xa5,0x5f,0x40,
+/* 0x009ea0 */ 0x8f,0xa3,0x9a,0xbb,0x24,0x59,0x19,0x24,0x4b,0x50,0xbd,0xba,0x82,0x00,0x31,0x4c,
+/* 0x009eb0 */ 0x8c,0x16,0x49,0x8e,0x9c,0x44,0x7d,0xde,0xf8,0x6b,0x53,0x56,0x6e,0x85,0x72,0x5b,
+/* 0x009ec0 */ 0x8b,0xd0,0x0b,0x3e,0x56,0xff,0x2b,0xb5,0x0b,0xe9,0x25,0xe1,0x96,0xca,0xb1,0x16,
+/* 0x009ed0 */ 0xe9,0x55,0x7e,0x44,0xb5,0x69,0x6c,0xda,0xf1,0x97,0x7d,0x7e,0x80,0x87,0x3d,0x85,
+/* 0x009ee0 */ 0x66,0xa9,0x86,0xb0,0xe7,0x7a,0x0a,0xa0,0x1e,0xc1,0x0d,0xad,0xe1,0x67,0xf9,0x9c,
+/* 0x009ef0 */ 0xc1,0x56,0xfc,0xd5,0x6d,0xb4,0xf4,0x53,0xe2,0x32,0x44,0x3e,0x2e,0xde,0xf0,0x65,
+/* 0x009f00 */ 0x89,0x30,0x5a,0x41,0x3b,0x7a,0x03,0x37,0xb2,0x59,0x35,0x81,0x98,0x6e,0xbc,0xed,
+/* 0x009f10 */ 0x8d,0xbf,0x10,0x1e,0x82,0xb0,0xc3,0x1e,0x01,0x66,0xb5,0xa9,0x4c,0x2f,0x2d,0xb7,
+/* 0x009f20 */ 0xaf,0x22,0x88,0xb3,0xb2,0xf3,0x05,0xf1,0x57,0xa8,0x3f,0x11,0xe5,0x37,0xf7,0x54,
+/* 0x009f30 */ 0xa5,0xa4,0x0c,0x15,0x39,0x5c,0x90,0x16,0x53,0xc2,0x11,0x74,0x50,0xa9,0x4a,0x8a,
+/* 0x009f40 */ 0x19,0x5a,0x11,0xac,0x18,0xfc,0x45,0x8e,0xb6,0x57,0x79,0xe4,0xc3,0xa9,0xe8,0xa8,
+/* 0x009f50 */ 0xe1,0x75,0xff,0x2b,0x31,0xde,0x54,0xf7,0x73,0xd5,0xc3,0xa5,0xb5,0x2d,0x01,0x39,
+/* 0x009f60 */ 0x37,0x39,0x22,0x8b,0xbf,0x54,0x9b,0xab,0xef,0x1f,0xe7,0x03,0xe8,0x7f,0xf0,0xdc,
+/* 0x009f70 */ 0x13,0x52,0x87,0x1e,0xfc,0x56,0xba,0x9e,0xdf,0x4e,0x3e,0x35,0xbb,0x43,0xdc,0x80,
+/* 0x009f80 */ 0x66,0x8a,0xde,0xf8,0x0b,0x1f,0xca,0x81,0x54,0xb3,0xd0,0x1f,0x3a,0xe7,0x66,0xee,
+/* 0x009f90 */ 0x80,0x96,0x8f,0xf1,0x9d,0x1d,0xac,0x2b,0xb1,0xb8,0x23,0x38,0xc9,0x59,0x8a,0x85,
+/* 0x009fa0 */ 0xe5,0xea,0x6f,0x1c,0xcb,0x71,0x2f,0x53,0xc2,0x58,0xa0,0x02,0x5e,0xb0,0x98,0xea,
+/* 0x009fb0 */ 0xf2,0x35,0x41,0x30,0x55,0x3f,0xe9,0xfa,0x11,0x59,0x9d,0x15,0x63,0xe2,0xb7,0x5c,
+/* 0x009fc0 */ 0x91,0xf8,0xeb,0x30,0x44,0x43,0x25,0x9b,0x53,0x01,0x56,0x6d,0xb9,0x59,0x21,0xc6,
+/* 0x009fd0 */ 0xd7,0xa4,0xab,0x9e,0x78,0x8c,0xe5,0x71,0x74,0x6e,0x3b,0xcb,0xff,0x2a,0x88,0xbf,
+/* 0x009fe0 */ 0x36,0xb4,0x9c,0xd7,0x0e,0x69,0x4b,0x3b,0xc5,0x0e,0x8a,0xbf,0xe6,0xab,0xc1,0x87,
+/* 0x009ff0 */ 0xf9,0x3f,0xc9,0x87,0xd4,0xc5,0x6a,0xf0,0x4b,0x7e,0xa6,0xfa,0x17,0xf9,0xfb,0xe1,
+/* 0x00a000 */ 0x2f,0xd5,0xcf,0xd2,0xeb,0xe6,0x97,0xe9,0xa7,0x5e,0xa5,0x2a,0xae,0x4f,0x90,0x93,
+/* 0x00a010 */ 0x91,0x2b,0x1e,0x7f,0x89,0xfb,0xb9,0x28,0x94,0x2b,0x3d,0x03,0x7e,0x66,0x07,0x71,
+/* 0x00a020 */ 0xe3,0x07,0x7d,0xfb,0x3b,0xaa,0x37,0x96,0xce,0xe2,0x43,0xde,0xf8,0xeb,0x98,0xbb,
+/* 0x00a030 */ 0x3f,0xaf,0xc6,0xb6,0x0b,0x37,0xf9,0x5e,0xd8,0x5f,0x10,0x1f,0xfe,0x2d,0xaa,0xcb,
+/* 0x00a040 */ 0x6c,0x19,0x90,0x6a,0x94,0xe7,0x8a,0xe5,0xbf,0xfa,0x05,0xb2,0x28,0x38,0xae,0x4e,
+/* 0x00a050 */ 0xdb,0x6e,0xc4,0x35,0xa5,0xab,0xae,0xa1,0x6f,0xd5,0xf8,0x6a,0x6b,0x3a,0x52,0x41,
+/* 0x00a060 */ 0xfc,0x15,0x9a,0x5c,0x31,0x2e,0xb3,0xeb,0xfd,0xae,0x31,0x05,0xaa,0xe4,0x84,0x01,
+/* 0x00a070 */ 0x88,0xbd,0x91,0x58,0xac,0xb5,0x67,0x88,0xdb,0xe3,0xc1,0x7f,0x39,0xf0,0xd7,0x8c,
+/* 0x00a080 */ 0x3d,0x04,0x45,0x1e,0x55,0x63,0x29,0xe9,0x3f,0xa1,0x85,0x5b,0xb0,0x86,0x74,0x7d,
+/* 0x00a090 */ 0x88,0x36,0xe3,0xe8,0x06,0x7f,0xb7,0x4b,0x22,0x8f,0x17,0xfe,0xda,0xbc,0x37,0xf1,
+/* 0x00a0a0 */ 0x05,0x1a,0x88,0x40,0xf9,0x30,0xd6,0x82,0x49,0xd7,0x47,0xbe,0x5e,0xf9,0xe5,0x4c,
+/* 0x00a0b0 */ 0x8f,0x5b,0x42,0x90,0x15,0x7f,0x71,0xd6,0x25,0x40,0xfc,0x69,0xbc,0x3f,0x0a,0xd1,
+/* 0x00a0c0 */ 0x8d,0x3c,0xcb,0x6a,0xa1,0xeb,0xd5,0x85,0x76,0xab,0x34,0x10,0xb1,0x8b,0x79,0x20,
+/* 0x00a0d0 */ 0x85,0xf0,0xd7,0x3b,0x21,0x4a,0x26,0x2a,0xf1,0x56,0xe2,0x4b,0x80,0xab,0xd6,0x84,
+/* 0x00a0e0 */ 0xa9,0xf7,0x7e,0x8a,0x6f,0x20,0x6e,0x46,0xf9,0x18,0xef,0xd0,0x73,0xf0,0xc2,0x5f,
+/* 0x00a0f0 */ 0x19,0x61,0x5c,0x9d,0x62,0x45,0x96,0x6d,0x5d,0x2f,0xa2,0x90,0xde,0xe2,0xae,0x7f,
+/* 0x00a100 */ 0x78,0xdc,0xba,0xbf,0x96,0xb9,0x5d,0x62,0x8c,0xeb,0x8c,0x18,0x31,0x9c,0x42,0x37,
+/* 0x00a110 */ 0x66,0xfe,0x17,0x20,0xa9,0xb8,0x93,0xdb,0xba,0xfa,0xb6,0xce,0x7f,0x65,0xcc,0x59,
+/* 0x00a120 */ 0x0d,0xbb,0x49,0x61,0xe4,0xaf,0xff,0xe5,0x65,0x38,0x41,0xb1,0x2d,0xff,0x6b,0x9e,
+/* 0x00a130 */ 0x3b,0xa6,0x76,0x22,0x71,0xc7,0xef,0x69,0xd1,0xe3,0x0f,0x39,0xca,0x7f,0x99,0xda,
+/* 0x00a140 */ 0x86,0x8d,0x6e,0xa0,0x78,0x3c,0x7b,0x9b,0xe1,0xc4,0x3b,0x57,0x0d,0xfc,0x95,0x47,
+/* 0x00a150 */ 0x73,0xc6,0xcc,0x30,0xd2,0x8d,0x5a,0x17,0xe1,0x94,0x82,0xfc,0x97,0xd5,0xa8,0x31,
+/* 0x00a160 */ 0x1e,0x9b,0x3c,0xf8,0x2b,0x8f,0x76,0x8d,0x6e,0x7c,0xc5,0x2f,0x50,0x7b,0x57,0x2f,
+/* 0x00a170 */ 0x00,0x63,0xbe,0x4a,0xeb,0x2f,0x1f,0xe0,0x3f,0x33,0x8c,0xaf,0x5d,0xf8,0xaf,0x6d,
+/* 0x00a180 */ 0xde,0xcb,0xd4,0xe5,0xb5,0x5e,0xf9,0xeb,0x7f,0xd9,0x8c,0xf5,0xfc,0x2c,0x45,0x57,
+/* 0x00a190 */ 0xdb,0x70,0x0e,0x1e,0xf3,0x39,0xf1,0x97,0x87,0xb1,0x90,0x4c,0xcb,0x1b,0xac,0xc5,
+/* 0x00a1a0 */ 0x39,0xd8,0x33,0xff,0xcb,0x69,0xfc,0xd9,0xa0,0x9e,0xc7,0x5d,0xd6,0x4b,0x7f,0x7e,
+/* 0x00a1b0 */ 0xa2,0xbe,0x82,0xeb,0x65,0xf2,0x95,0x01,0x30,0x72,0x03,0x8f,0xf3,0xd6,0xff,0x3a,
+/* 0x00a1c0 */ 0xc4,0x51,0x6e,0x4b,0x6f,0x31,0xa2,0x2c,0xc4,0xdc,0xb3,0x89,0xc6,0x1f,0x56,0xeb,
+/* 0x00a1d0 */ 0xe7,0xd7,0x7f,0x39,0xa0,0x6b,0x8e,0xe1,0x37,0x8c,0x52,0x8b,0x34,0x87,0x5b,0xfd,
+/* 0x00a1e0 */ 0xaf,0xfa,0x22,0xf7,0xe9,0x5c,0xb7,0x2e,0x5b,0xfe,0x57,0xa3,0x3b,0xb7,0xc5,0x8c,
+/* 0x00a1f0 */ 0x90,0x61,0x04,0x2d,0x31,0x8a,0xc6,0x98,0xf2,0x02,0xf9,0x5f,0x6e,0x46,0xa8,0x78,
+/* 0x00a200 */ 0xfc,0xe5,0x61,0x50,0x21,0x44,0x00,0x62,0xd5,0x34,0x34,0xd1,0x6a,0x94,0xe5,0xe7,
+/* 0x00a210 */ 0xbf,0x6c,0x86,0xbf,0x9a,0xdf,0x84,0xf6,0xad,0x16,0x99,0xb1,0x43,0x8d,0x26,0x25,
+/* 0x00a220 */ 0xc3,0xf0,0x2b,0xf9,0xf9,0x2f,0xab,0xc1,0xaa,0x4c,0xce,0x69,0x89,0x32,0x43,0x51,
+/* 0x00a230 */ 0x69,0x24,0xa1,0x6e,0xdc,0x65,0xe6,0x7f,0x79,0x73,0x2e,0x66,0x46,0x58,0xab,0xda,
+/* 0x00a240 */ 0x29,0x2b,0xed,0x22,0x14,0x02,0xeb,0x04,0x69,0x44,0xdd,0xf8,0x1b,0x62,0xb4,0xe4,
+/* 0x00a250 */ 0xe7,0xbf,0x8c,0x42,0x60,0x2c,0x23,0xac,0x12,0x0d,0xa9,0xd5,0x15,0x01,0x66,0xd4,
+/* 0x00a260 */ 0xc9,0x81,0x6e,0xe1,0x3e,0xc3,0x78,0xc8,0xcc,0xff,0x2a,0x38,0xcf,0x5b,0x85,0x7e,
+/* 0x00a270 */ 0x7c,0x43,0x89,0xb7,0x43,0x6a,0x18,0x66,0xa9,0x61,0x59,0xe3,0x60,0xde,0xfa,0x5f,
+/* 0x00a280 */ 0x36,0xe3,0x39,0xa8,0x17,0x80,0xe2,0x1b,0x18,0xe3,0x23,0xb3,0x2e,0x95,0x76,0xf5,
+/* 0x00a290 */ 0x15,0xa8,0xff,0x65,0xcf,0x08,0xf3,0x2b,0xa9,0x01,0x25,0x46,0xf1,0x17,0xc4,0x1f,
+/* 0x00a2a0 */ 0xfa,0xa5,0x04,0x84,0x26,0x8a,0x31,0x5e,0xd2,0xcc,0xfc,0x2f,0x94,0x33,0xab,0x77,
+/* 0x00a2b0 */ 0xcb,0x2d,0xb9,0x2d,0x3f,0x6b,0x99,0x8e,0x0f,0x44,0xe7,0xb7,0x4a,0xab,0xf9,0x77,
+/* 0x00a2c0 */ 0xf0,0x01,0x34,0xbf,0x4d,0xfa,0x79,0x82,0x18,0xca,0x7c,0x95,0xb4,0x9c,0x2f,0xc4,
+/* 0x00a2d0 */ 0x7f,0xe9,0xf1,0x87,0xd4,0x58,0x84,0x7e,0x8f,0x16,0xa8,0xd2,0x30,0x2d,0xbb,0x6c,
+/* 0x00a2e0 */ 0x37,0xf4,0xfc,0xaf,0x1d,0x76,0xfe,0x2b,0xe6,0xf5,0x3c,0xe7,0xc9,0xff,0x62,0x78,
+/* 0x00a2f0 */ 0xc7,0xce,0x7f,0x3d,0xea,0x36,0x58,0xce,0xb7,0x65,0x0a,0xd4,0xff,0x32,0x0c,0x9e,
+/* 0x00a300 */ 0x1a,0xe6,0x33,0xe6,0x7c,0xd8,0x1c,0xfa,0xf3,0xee,0xfc,0x17,0x0f,0x46,0x8b,0x3e,
+/* 0x00a310 */ 0x66,0xa7,0x8b,0x10,0xa2,0x59,0xff,0x2b,0x0f,0x47,0x9f,0xcb,0xe3,0x2f,0xb1,0x13,
+/* 0x00a320 */ 0xfa,0x51,0x0b,0xfe,0xba,0x8a,0xbc,0x62,0x0f,0xb2,0x46,0x07,0x2f,0xa3,0x83,0x60,
+/* 0x00a330 */ 0x44,0x13,0xf7,0x80,0x81,0x49,0xcb,0x45,0xdd,0x28,0xd3,0xef,0x0f,0x53,0x3d,0xf7,
+/* 0x00a340 */ 0x7a,0x6b,0x1b,0x82,0x31,0x1f,0x9c,0x2e,0x3a,0x26,0x15,0x06,0xc1,0xf6,0xbf,0x24,
+/* 0x00a350 */ 0xec,0x63,0x8c,0xfa,0x5f,0xee,0xfa,0x87,0x36,0x62,0x25,0x45,0x66,0xd5,0x33,0xae,
+/* 0x00a360 */ 0x20,0x8b,0xbf,0x54,0x2f,0x6e,0xeb,0x01,0xb3,0x05,0x7c,0xc8,0xc5,0x40,0x84,0x79,
+/* 0x00a370 */ 0xfa,0x87,0xbb,0xb9,0xe7,0xad,0xb2,0x87,0xe6,0xb4,0x2c,0xd5,0x4c,0xb5,0xc3,0x50,
+/* 0x00a380 */ 0x86,0xce,0xcf,0x9d,0x1a,0xd9,0x4d,0x15,0xb9,0xf3,0x63,0xe0,0x2f,0x5e,0x7e,0xde,
+/* 0x00a390 */ 0x01,0x5d,0x9d,0x06,0xfd,0x5b,0x58,0x62,0x42,0x88,0xb3,0xed,0xf8,0xcb,0xc8,0xff,
+/* 0x00a3a0 */ 0xb2,0x85,0x6d,0xc4,0x6c,0x6b,0xca,0xf8,0x14,0x7f,0x8a,0x47,0xd3,0xa0,0xac,0x30,
+/* 0x00a3b0 */ 0x71,0xf5,0x1d,0x0f,0x5b,0x44,0xaf,0xff,0xb5,0xfb,0x07,0xa6,0xef,0x67,0x73,0x14,
+/* 0x00a3c0 */ 0xad,0x6c,0x57,0x92,0xdf,0xc3,0xb6,0x5e,0x5a,0xaa,0x46,0x8f,0xe4,0xec,0x0b,0x03,
+/* 0x00a3d0 */ 0x7f,0x71,0x7b,0xec,0x51,0x4c,0x96,0xef,0xf9,0x17,0xdd,0xd0,0x77,0x81,0x4a,0x17,
+/* 0x00a3e0 */ 0x2e,0x67,0x5f,0xac,0x30,0xf4,0xe7,0x65,0x8b,0xdf,0x72,0x05,0x2d,0xd6,0x82,0x4e,
+/* 0x00a3f0 */ 0xbf,0xe5,0x8f,0x42,0x13,0xba,0x29,0x2f,0xf6,0x05,0xd6,0x0b,0x8b,0xd4,0x33,0x72,
+/* 0x00a400 */ 0x7d,0x6b,0xe0,0x8f,0x59,0x03,0x99,0xf8,0x6b,0xfa,0xd1,0x6c,0xb4,0x61,0x84,0xd1,
+/* 0x00a410 */ 0x5e,0x76,0xff,0x50,0x6b,0x49,0xa3,0x63,0xe8,0x47,0xc8,0x9f,0xe1,0x6b,0xd1,0x16,
+/* 0x00a420 */ 0x54,0x85,0x44,0xcd,0x34,0x22,0x0a,0x72,0xc3,0x5f,0x73,0x0c,0xd9,0x0d,0xda,0xa2,
+/* 0x00a430 */ 0x87,0xa8,0x25,0x89,0xfb,0x0d,0x11,0x1d,0x7e,0xc8,0x73,0xd9,0x85,0xe6,0xc0,0x8d,
+/* 0x00a440 */ 0xe2,0x1a,0xb4,0x8b,0xa5,0x48,0x2b,0x6c,0x7f,0xf9,0xad,0xfc,0x17,0xfd,0x3d,0x8e,
+/* 0x00a450 */ 0x7d,0x5a,0x4a,0xa0,0x33,0x4a,0xa3,0x94,0x4a,0x31,0x34,0x46,0xfd,0x88,0x18,0x2a,
+/* 0x00a460 */ 0x9f,0x42,0x29,0x30,0x04,0xb6,0xdf,0x21,0x1f,0x0d,0xae,0x1a,0xee,0x60,0x6c,0x57,
+/* 0x00a470 */ 0x03,0x84,0xb1,0xe5,0x4e,0x38,0xe4,0xef,0xdc,0x40,0x75,0x28,0x04,0x2f,0xc6,0xeb,
+/* 0x00a480 */ 0xa8,0x01,0x8e,0x75,0x50,0xd3,0x82,0xf3,0x9d,0x23,0x4f,0x20,0x7b,0xaf,0x9a,0xac,
+/* 0x00a490 */ 0x22,0xbd,0x7b,0x77,0xf3,0x0f,0x35,0x01,0xaa,0x2d,0x2f,0x43,0x56,0x23,0x8d,0x2e,
+/* 0x00a4a0 */ 0x33,0x8c,0x76,0xdd,0x9e,0xff,0x65,0x4d,0xab,0xbc,0x85,0x4e,0xe2,0x87,0x7d,0x2c,
+/* 0x00a4b0 */ 0x4c,0x94,0xe1,0xaf,0x26,0x3c,0x81,0xf6,0x5e,0x25,0xfb,0xab,0x09,0x0f,0xca,0xf5,
+/* 0x00a4c0 */ 0x27,0x02,0x93,0xcb,0x93,0x46,0xc6,0xa5,0x67,0xfc,0x61,0x1d,0x81,0x5d,0x9b,0x71,
+/* 0x00a4d0 */ 0x44,0x6c,0x1b,0x88,0x7c,0x2e,0xd2,0x96,0xf1,0xc8,0x31,0xf5,0x70,0x67,0x24,0x23,
+/* 0x00a4e0 */ 0xed,0xdb,0x7a,0x67,0x5b,0x4f,0x75,0xd5,0xb0,0x38,0xc0,0x8f,0x28,0xbd,0x76,0xfe,
+/* 0x00a4f0 */ 0x0b,0x39,0xf1,0xd7,0x18,0xea,0xe1,0x10,0x0d,0xc7,0x85,0xea,0xbd,0xda,0x8c,0xbd,
+/* 0x00a500 */ 0xc4,0x8d,0x4f,0x63,0xb2,0x53,0x94,0x96,0x00,0x55,0x78,0x80,0x08,0xb7,0xce,0xae,
+/* 0x00a510 */ 0x5c,0xfc,0x95,0xab,0x69,0xd9,0x32,0x86,0x9e,0xeb,0x54,0x14,0x78,0x90,0x38,0x26,
+/* 0x00a520 */ 0xc0,0x52,0xb2,0x07,0x1d,0x4e,0x00,0x46,0x3b,0x51,0x03,0x3f,0x55,0xbb,0x3d,0xcd,
+/* 0x00a530 */ 0xbf,0x69,0x00,0xf0,0x71,0x2b,0xfe,0xca,0x79,0x7d,0x89,0x6f,0xe1,0xc8,0x3f,0x43,
+/* 0x00a540 */ 0x58,0xaf,0xcf,0xc0,0x3b,0xe2,0x37,0x98,0x40,0xb3,0x03,0x64,0xe1,0x46,0x71,0x9d,
+/* 0x00a550 */ 0xf6,0xb7,0xe9,0x15,0xbb,0x0d,0xd6,0x2c,0x2f,0xff,0xf5,0x19,0x7a,0x4d,0x5d,0x05,
+/* 0x00a560 */ 0xf0,0x8d,0xb5,0xac,0x98,0x42,0xb7,0xf8,0xc5,0x27,0xc2,0x93,0xe5,0x53,0xfc,0x57,
+/* 0x00a570 */ 0x4c,0xb2,0x66,0xd2,0xc8,0xe0,0xcb,0x83,0xbf,0x00,0x64,0x35,0x76,0x9e,0x06,0x62,
+/* 0x00a580 */ 0x0e,0xfe,0x68,0x10,0x5a,0x86,0xc8,0xa3,0x55,0x03,0xf7,0x24,0xd7,0xd1,0x92,0x0c,
+/* 0x00a590 */ 0x19,0x33,0x22,0xe6,0xd1,0x3f,0x34,0xf5,0x49,0x06,0x50,0x04,0x51,0xfd,0x0d,0xe0,
+/* 0x00a5a0 */ 0x2b,0xa5,0x09,0x61,0x23,0x79,0x8c,0xeb,0x20,0x62,0x73,0x0a,0x6d,0x42,0x55,0xef,
+/* 0x00a5b0 */ 0xa0,0x74,0xd9,0x48,0x01,0xfd,0x43,0x48,0x87,0xac,0x41,0x47,0x94,0x28,0x12,0x21,
+/* 0x00a5c0 */ 0x53,0x72,0x1b,0x26,0x5d,0xe9,0x44,0xbb,0x0f,0xb7,0xf9,0x32,0x74,0x0b,0x93,0xcd,
+/* 0x00a5d0 */ 0x40,0xd6,0xab,0x4c,0x33,0xbc,0xf7,0x3c,0xf1,0x87,0xb3,0xd0,0xef,0x71,0x15,0x86,
+/* 0x00a5e0 */ 0x22,0xcb,0xfc,0xd3,0x3d,0xb4,0xe5,0x5e,0xf5,0x37,0xfd,0x95,0x1f,0xb4,0x6d,0xe0,
+/* 0x00a5f0 */ 0xaf,0xa0,0x2d,0xb8,0x12,0x24,0xd3,0xbf,0xf6,0x3d,0x5d,0x28,0xfe,0x70,0x05,0xb4,
+/* 0x00a600 */ 0x44,0x4f,0x06,0xe0,0xf7,0x5c,0xe0,0x9b,0x06,0x49,0xd7,0x3a,0x74,0x82,0x5b,0x34,
+/* 0x00a610 */ 0x58,0x53,0xfb,0xc0,0x69,0xf4,0xa1,0xb2,0x64,0x28,0x54,0x2b,0x0c,0x15,0x8e,0x3f,
+/* 0x00a620 */ 0xac,0x1a,0x53,0x27,0xe1,0x12,0xa3,0x96,0x9b,0x52,0x68,0x76,0x5e,0x2d,0x2c,0x81,
+/* 0x00a630 */ 0x72,0x07,0x48,0x6a,0x5c,0x26,0xc7,0xd6,0x9d,0xf0,0xf2,0x9c,0x42,0x5f,0xd8,0xf3,
+/* 0x00a640 */ 0xbf,0x5c,0xf1,0xd7,0x0d,0xae,0x71,0x79,0xd8,0x0c,0x13,0x3d,0x08,0x7c,0x37,0xa3,
+/* 0x00a650 */ 0xc6,0xc8,0xd4,0xe1,0xba,0x77,0x02,0x03,0xba,0x50,0x52,0x16,0x7f,0xa9,0xf2,0xf3,
+/* 0x00a660 */ 0xd3,0x6c,0x61,0x87,0xd4,0xf8,0x48,0x87,0x5d,0xd8,0x0c,0xe4,0x38,0x87,0xa0,0xbe,
+/* 0x00a670 */ 0x27,0x0d,0x44,0xac,0x1a,0x14,0xc7,0xfd,0x15,0xbc,0xbd,0xfe,0x97,0x2d,0xff,0xcb,
+/* 0x00a680 */ 0x00,0x62,0xbe,0x57,0xbb,0x1f,0xcc,0xbc,0xbd,0x41,0x7d,0xbf,0x8f,0x76,0xfd,0x9a,
+/* 0x00a690 */ 0x3f,0x8b,0x9e,0xc2,0x95,0x57,0x67,0x6c,0x04,0x9c,0xbb,0xb9,0x72,0x54,0x9a,0x04,
+/* 0x00a6a0 */ 0x09,0x14,0x07,0xfe,0xb2,0xed,0x53,0x48,0x8e,0xe0,0x7e,0xa7,0xad,0xa3,0xe9,0xb4,
+/* 0x00a6b0 */ 0x9c,0x9e,0xc8,0x3c,0x26,0x76,0x9d,0x55,0xa0,0xab,0x1d,0xe9,0xa5,0x12,0x63,0xb2,
+/* 0x00a6c0 */ 0xbd,0xfe,0x97,0x4b,0xfc,0x21,0x39,0xe3,0x6e,0xe1,0xe6,0xa4,0xbd,0xe5,0x6c,0x6a,
+/* 0x00a6d0 */ 0x07,0x54,0x64,0x8e,0xa2,0x5b,0xda,0x3e,0xbc,0x20,0x25,0x34,0x6a,0x6f,0x15,0xc3,
+/* 0x00a6e0 */ 0x7f,0xdd,0x43,0x69,0xaf,0x6c,0x4b,0xc9,0x28,0x6a,0xd0,0x85,0xe8,0xc5,0x38,0x9a,
+/* 0x00a6f0 */ 0x56,0x24,0xfe,0x62,0xdc,0xd6,0xb3,0x86,0x9b,0xfa,0x2c,0x45,0x5b,0x00,0x10,0x3e,
+/* 0x00a700 */ 0x3c,0x49,0x19,0xb1,0x20,0xcb,0x11,0xb3,0xf2,0x5f,0x9a,0x17,0xfe,0x5a,0xce,0xf4,
+/* 0x00a710 */ 0x37,0x3a,0x74,0x01,0x8d,0x4d,0x28,0xd6,0x22,0x3d,0xcf,0x7f,0x04,0x8a,0x76,0x6b,
+/* 0x00a720 */ 0xa2,0x59,0x45,0x44,0x0f,0xfe,0x4b,0xd7,0xb8,0x3b,0xaa,0xeb,0x6f,0x18,0xf2,0xf5,
+/* 0x00a730 */ 0x6b,0x7c,0xe4,0x53,0xad,0xa6,0xa0,0xa2,0x68,0xf9,0x9e,0x7c,0xf1,0x87,0xa5,0xb4,
+/* 0x00a740 */ 0x10,0xd8,0xd6,0x44,0x37,0x63,0xbb,0xca,0x12,0xd5,0xa9,0xce,0x5d,0x35,0xea,0x8c,
+/* 0x00a750 */ 0x0a,0x7e,0x30,0xd5,0x19,0xad,0xf9,0x27,0x08,0x4d,0x4c,0x75,0xda,0xf8,0xaf,0x49,
+/* 0x00a760 */ 0x3b,0xfe,0xd2,0xf5,0xc3,0xbf,0x01,0x6d,0x84,0x04,0xad,0x9f,0x1b,0x87,0xb4,0x2f,
+/* 0x00a770 */ 0x25,0x31,0xa4,0x10,0x03,0x55,0x65,0xb0,0xa6,0xb0,0x8c,0x9e,0xc4,0x90,0x77,0xfc,
+/* 0x00a780 */ 0xe1,0xbb,0xc0,0x7f,0x6d,0xdd,0x06,0xfc,0x57,0xf3,0x4a,0xd0,0x39,0xd1,0xf1,0x57,
+/* 0x00a790 */ 0xef,0x48,0xff,0x4d,0xd2,0xb5,0xea,0x7c,0xd7,0xc8,0x8e,0x9b,0x73,0xe3,0x2b,0xc9,
+/* 0x00a7a0 */ 0x81,0x68,0x16,0x02,0xcb,0x13,0x7f,0x58,0x2d,0x92,0x4f,0xad,0x0c,0x9c,0x17,0xaa,
+/* 0x00a7b0 */ 0xf1,0x4d,0x50,0xb0,0xbc,0x70,0x5b,0x75,0xea,0x26,0x2d,0xbb,0x2c,0x4c,0x68,0x37,
+/* 0x00a7c0 */ 0xd0,0xb2,0x95,0x61,0x3d,0x34,0x31,0x6f,0xfc,0x21,0xf9,0x2f,0x64,0x62,0x6c,0x16,
+/* 0x00a7d0 */ 0x1f,0xa7,0x42,0x88,0x11,0xd2,0xf5,0x57,0x1d,0x78,0x40,0x26,0x5d,0x91,0xb2,0xcc,
+/* 0x00a7e0 */ 0xd0,0x91,0x7f,0xbf,0x9f,0x87,0xc1,0xa9,0x9c,0xfc,0x2f,0x47,0xfc,0x61,0x59,0xa2,
+/* 0x00a7f0 */ 0x95,0x56,0x64,0x16,0x93,0x11,0x9d,0x82,0x2c,0xbf,0xcb,0xd7,0xbf,0x17,0xea,0x2f,
+/* 0x00a800 */ 0x97,0x25,0x06,0xf1,0xe1,0x48,0x94,0x0e,0xd6,0x0a,0xc4,0x1f,0xce,0x60,0xd5,0xe2,
+/* 0x00a810 */ 0x1e,0xea,0x88,0x82,0x71,0x94,0x3e,0x09,0xb3,0x48,0x8b,0x1c,0x53,0x69,0xba,0xc4,
+/* 0x00a820 */ 0xe1,0x39,0xf7,0xb3,0xc1,0x4b,0x0b,0xc5,0x1f,0xfe,0x84,0x4c,0xaf,0x1a,0x5f,0xbe,
+/* 0x00a830 */ 0xc5,0x80,0x5d,0xf0,0x20,0xcd,0xbc,0xd1,0xdd,0x00,0x68,0x94,0x20,0xbb,0xd6,0x79,
+/* 0x00a840 */ 0x90,0x82,0xf7,0xb1,0x31,0x3f,0xde,0xf5,0xbf,0x56,0x19,0x5a,0x28,0x50,0xed,0xcb,
+/* 0x00a850 */ 0x47,0x3e,0x2e,0x43,0xc2,0x5d,0x8f,0x3e,0x46,0xf7,0x33,0x3f,0xf6,0xb9,0xc5,0x1f,
+/* 0x00a860 */ 0x36,0x3a,0x2e,0x43,0x1a,0xad,0x42,0x88,0x52,0xc7,0xcc,0x49,0x19,0xf8,0x53,0xe0,
+/* 0x00a870 */ 0xbf,0xd4,0x1d,0x9c,0xc9,0x5c,0x17,0x8a,0x3f,0x3c,0x9e,0x6c,0x24,0x68,0x8b,0x78,
+/* 0x00a880 */ 0xcb,0x07,0x57,0x93,0x0f,0x8f,0x11,0xe3,0x38,0xfa,0xdd,0x76,0xe2,0xd8,0x37,0xca,
+/* 0x00a890 */ 0x47,0x50,0xbd,0x2b,0xff,0xe5,0xb3,0x78,0xdd,0xf0,0xd6,0xf2,0xa7,0xc1,0xd0,0x48,
+/* 0x00a8a0 */ 0xcb,0x00,0x08,0x2f,0xab,0x35,0x9a,0xb0,0x14,0xae,0x0d,0x55,0x65,0x98,0xbc,0xbe,
+/* 0x00a8b0 */ 0xc2,0xc9,0xa3,0x96,0x42,0xcc,0x60,0xbc,0xad,0xf3,0x5f,0x4e,0xfc,0x55,0x76,0xd9,
+/* 0x00a8c0 */ 0x77,0x50,0x9c,0x3b,0x24,0x01,0x0b,0x73,0x40,0xd4,0xf5,0x69,0x8f,0xe3,0xca,0x13,
+/* 0x00a8d0 */ 0xfe,0x0d,0x7c,0x45,0xed,0xa1,0x6c,0x21,0x66,0x3b,0xff,0x75,0xaf,0x2e,0x3b,0xcf,
+/* 0x00a8e0 */ 0x33,0x48,0x15,0x02,0x6c,0xf5,0x35,0x5e,0x3a,0x4e,0x89,0xb0,0x43,0x80,0xb6,0x96,
+/* 0x00a8f0 */ 0x90,0xd7,0xf2,0x2d,0xbc,0x30,0x15,0x82,0x96,0xef,0x32,0x0b,0x09,0x10,0x5b,0xfe,
+/* 0x00a900 */ 0xfe,0xf4,0xa2,0xf4,0xe7,0x21,0xee,0x1d,0x8e,0x2d,0x3d,0xb1,0x68,0x8f,0x91,0x46,
+/* 0x00a910 */ 0x34,0x0a,0xc4,0x0a,0x72,0xe7,0xbf,0x54,0xaa,0x76,0x68,0xc3,0x5f,0xff,0x8b,0xeb,
+/* 0x00a920 */ 0x33,0x01,0x90,0xdd,0xb8,0x42,0x0c,0x68,0x51,0x4e,0x93,0xbf,0x1e,0x9c,0xe4,0x6e,
+/* 0x00a930 */ 0xa1,0x73,0x1a,0x8c,0x29,0xcf,0xe5,0xbf,0x76,0xbb,0xc4,0x1f,0x4e,0xa1,0x27,0x59,
+/* 0x00a940 */ 0xfd,0x94,0x99,0x2a,0xe8,0xc6,0x4b,0x6b,0x48,0xcb,0xe3,0x88,0x4a,0xfb,0x5e,0x44,
+/* 0x00a950 */ 0x4f,0xca,0xec,0x44,0x53,0x1d,0xfc,0x97,0xef,0x90,0xcf,0x1e,0xbe,0x38,0x85,0x9e,
+/* 0x00a960 */ 0x06,0xd9,0xf9,0x87,0xc9,0xf4,0x3e,0x81,0x5e,0xd2,0xa4,0x9f,0xe9,0xdf,0x43,0x5a,
+/* 0x00a970 */ 0x06,0xa1,0xce,0x1a,0x2e,0x3a,0xfe,0x70,0xeb,0x4a,0x96,0xbf,0xcc,0x25,0x60,0x95,
+/* 0x00a980 */ 0x31,0x69,0xc1,0x2a,0x25,0x56,0x34,0xe2,0xf6,0xd4,0x20,0x72,0x90,0x9d,0x51,0xea,
+/* 0x00a990 */ 0x73,0xf8,0x2f,0xb7,0xdb,0xf8,0x4b,0xb8,0x1e,0xd4,0x05,0x6b,0xf8,0x1e,0x10,0x46,
+/* 0x00a9a0 */ 0xc3,0xc4,0xd3,0x1b,0x52,0xe3,0x5a,0xa0,0x56,0x18,0xe1,0xcf,0x51,0x26,0xab,0xfc,
+/* 0x00a9b0 */ 0xa6,0xf8,0x6b,0x3b,0xff,0xc5,0xed,0x71,0xe8,0xbc,0xd1,0x7a,0x6d,0xac,0x4c,0xf6,
+/* 0x00a9c0 */ 0x28,0x8b,0x3f,0x3c,0xcd,0x16,0xee,0x20,0xc4,0xc9,0x88,0xf6,0xf5,0x32,0xf9,0x2f,
+/* 0x00a9d0 */ 0x77,0x39,0x88,0xc7,0x98,0x00,0xcb,0x14,0x63,0x6a,0x9a,0xd0,0x49,0xb1,0xbe,0x33,
+/* 0x00a9e0 */ 0x0c,0x7a,0xe6,0xdf,0xf9,0xea,0x8b,0xe0,0xbf,0x1e,0x62,0xc6,0x11,0x70,0x0b,0x07,
+/* 0x00a9f0 */ 0xc8,0x63,0x33,0xa0,0x11,0xe3,0x98,0xb0,0xce,0xd7,0x33,0xb4,0x23,0xd3,0xdb,0x0d,
+/* 0x00aa00 */ 0x52,0x7b,0xa8,0xa1,0xd6,0x8b,0xff,0xe2,0x8d,0xef,0xe1,0xf4,0xdc,0x2e,0xf2,0xd6,
+/* 0x00aa10 */ 0xd2,0xa4,0x3e,0x96,0xf6,0xa5,0x49,0x3d,0xc4,0x63,0x7c,0x0e,0x47,0x32,0x33,0x06,
+/* 0x00aa20 */ 0xf8,0x08,0x60,0xab,0xfb,0x8b,0x8d,0x3f,0xe4,0xd2,0x2c,0xec,0x70,0x0b,0xa2,0x06,
+/* 0x00aa30 */ 0x2e,0x6b,0xf7,0x6d,0x45,0x8a,0x4a,0x3e,0x85,0x40,0x42,0x07,0x15,0xe6,0xbf,0x62,
+/* 0x00aa40 */ 0x6c,0xbd,0x26,0xa1,0x5c,0x17,0x69,0xf9,0xe1,0x24,0xc5,0xb9,0x7c,0x0d,0x7f,0x89,
+/* 0x00aa50 */ 0x2e,0xdc,0x0a,0x05,0x7d,0xc7,0xa4,0xed,0xcc,0x28,0x26,0xef,0xf8,0xc3,0xf2,0x29,
+/* 0x00aa60 */ 0x74,0x93,0xd7,0x15,0x39,0x26,0x18,0xfe,0x22,0xde,0x20,0xaf,0x03,0x31,0x3d,0xe1,
+/* 0x00aa70 */ 0x2e,0xcb,0x7f,0xf1,0x6e,0xf8,0x6b,0xb1,0x4d,0xdb,0xb0,0x18,0x63,0xdc,0xca,0x7f,
+/* 0x00aa80 */ 0x01,0x92,0x12,0x5e,0xf1,0x4e,0xf2,0xb2,0x8c,0xf9,0x16,0x37,0xda,0xe3,0x0f,0xf5,
+/* 0x00aa90 */ 0xfc,0x77,0x17,0xfc,0xc5,0xde,0x90,0x7e,0x5b,0x3a,0x89,0xa7,0xce,0x89,0x53,0xff,
+/* 0x00aaa0 */ 0xd0,0x2b,0x11,0x4c,0xca,0x41,0xe2,0x76,0xb2,0xcc,0xc0,0x5f,0xd3,0x6d,0xd7,0x1a,
+/* 0x00aab0 */ 0x0d,0xee,0xc1,0xb7,0x1e,0x7a,0x29,0x74,0xbd,0xd8,0xfc,0x5c,0x45,0xe6,0xbe,0xc8,
+/* 0x00aac0 */ 0xd9,0x20,0xb7,0x39,0x81,0xf3,0x38,0x75,0xe3,0xed,0x98,0x5a,0xbf,0xe7,0x2f,0x82,
+/* 0x00aad0 */ 0xff,0x0a,0x78,0x77,0x59,0xf0,0x97,0x2f,0x07,0x7f,0x85,0x8a,0x20,0x0a,0x8b,0xcc,
+/* 0x00aae0 */ 0xff,0xca,0xb9,0x24,0x34,0xc3,0x71,0xfd,0x6e,0xeb,0xf5,0x25,0xdb,0x16,0x0e,0xfe,
+/* 0x00aaf0 */ 0xcb,0x9f,0x05,0x62,0x2d,0x9e,0x8c,0x98,0xc5,0xb8,0xc8,0xbe,0x07,0xf0,0xd7,0x7e,
+/* 0x00ab00 */ 0x0f,0xfe,0x8b,0x03,0x63,0x09,0xbc,0x06,0x73,0x32,0xc2,0xac,0x83,0x2f,0x94,0xd0,
+/* 0x00ab10 */ 0xef,0xd1,0x72,0xe3,0x0f,0x43,0x79,0xb3,0xf3,0x3c,0xeb,0x7f,0x01,0xfe,0x72,0x7b,
+/* 0x00ab20 */ 0x36,0xdc,0x88,0xd4,0x90,0xdb,0x83,0x74,0x82,0xe5,0x2f,0x7b,0xf0,0x5f,0xe8,0x41,
+/* 0x00ab30 */ 0x6d,0x46,0xb6,0x45,0xc8,0x13,0x1b,0x7f,0x9e,0x9d,0x3b,0x9c,0x47,0xfe,0xd7,0x5c,
+/* 0x00ab40 */ 0x97,0x99,0xf7,0x3b,0xf4,0x0f,0x29,0xce,0x75,0xc7,0x5f,0xae,0x46,0x9e,0x31,0x97,
+/* 0x00ab50 */ 0xb2,0xf8,0xeb,0x13,0x97,0x3b,0x58,0x93,0x11,0x8b,0x31,0xe3,0x88,0x41,0x84,0xe5,
+/* 0x00ab60 */ 0x0e,0xfe,0x46,0xaf,0x07,0xfd,0x3d,0xf8,0x2f,0xf7,0xfc,0x2f,0xb6,0x2f,0x8a,0xe3,
+/* 0x00ab70 */ 0xbf,0xf2,0x68,0xc1,0x9d,0x60,0xdf,0x53,0x80,0xff,0xb2,0xaa,0x1d,0xaa,0xa1,0x6c,
+/* 0x00ab80 */ 0x97,0x60,0x7a,0xdd,0xf9,0xea,0x2f,0x3b,0x8c,0x3c,0x5c,0x89,0xa1,0x7f,0x88,0x0a,
+/* 0x00ab90 */ 0xf3,0x5f,0x86,0xe1,0xb7,0xb4,0x74,0xe7,0xc6,0x1f,0x8a,0x39,0x94,0x84,0x64,0x9b,
+/* 0x00aba0 */ 0xcc,0x81,0x6c,0x46,0x4f,0xcc,0x9d,0x23,0xfb,0xfc,0xb6,0x62,0xf8,0x2f,0xcf,0x34,
+/* 0x00abb0 */ 0x22,0xd3,0xf8,0x3c,0xcb,0x7f,0x15,0x1e,0x9c,0xef,0x7b,0xb2,0xfc,0xd7,0x64,0x3e,
+/* 0x00abc0 */ 0xfe,0x2b,0x9e,0x97,0x1a,0xc3,0xfc,0x9b,0xaa,0x81,0xbf,0x64,0xb7,0x59,0xa5,0x62,
+/* 0x00abd0 */ 0x26,0x2e,0xd2,0x1c,0x0e,0x43,0xdf,0xa7,0xf9,0xf9,0xaf,0x22,0x8c,0x2c,0xfe,0xe2,
+/* 0x00abe0 */ 0xfe,0x5f,0xf3,0x33,0xca,0x7e,0xcf,0x3c,0x82,0xbf,0xf2,0x7e,0x4f,0x63,0x81,0xef,
+/* 0x00abf0 */ 0xb9,0xc4,0xf6,0x85,0x1b,0xff,0xe5,0xcd,0xa8,0x7a,0xe7,0x7f,0x01,0xff,0xe5,0xa6,
+/* 0x00ac00 */ 0x7f,0xe8,0xc6,0x88,0x85,0xdd,0x38,0xb2,0x0f,0x14,0xba,0x2f,0xd6,0xb9,0xe8,0x1f,
+/* 0x00ac10 */ 0x16,0xc3,0x88,0x65,0xfd,0x3a,0x86,0xbf,0xee,0x43,0x33,0x73,0x72,0xbb,0x26,0x9d,
+/* 0x00ac20 */ 0x6a,0xb4,0x25,0xde,0x94,0x4d,0xdd,0x25,0xb6,0x4f,0xab,0x7b,0x72,0xf3,0xbf,0x74,
+/* 0x00ac30 */ 0xb6,0x2b,0xab,0xc8,0xe1,0x49,0x8d,0x31,0xfe,0x8b,0x9d,0x5f,0x6d,0x15,0xee,0xe7,
+/* 0x00ac40 */ 0x8e,0xc5,0xb8,0xc3,0x76,0xee,0xe4,0x8e,0x39,0xcf,0xce,0xaf,0x04,0xe7,0xe6,0xfb,
+/* 0x00ac50 */ 0x5d,0xb1,0x45,0x4c,0x8d,0xe7,0xf3,0x0f,0x87,0x18,0xee,0xf6,0xce,0xff,0x0a,0x67,
+/* 0x00ac60 */ 0x89,0x30,0xc1,0x99,0xf6,0x65,0xc1,0xa7,0x74,0xdd,0x65,0x9c,0xe7,0x8c,0x2b,0xc6,
+/* 0x00ac70 */ 0x28,0x50,0x7f,0x39,0x66,0x78,0x29,0x51,0x76,0x7e,0x79,0xfa,0x99,0xba,0x1f,0xf5,
+/* 0x00ac80 */ 0xc9,0xf4,0x3d,0x7a,0x4a,0x17,0x6f,0x99,0xc3,0xf7,0xb2,0x8c,0xd8,0xbf,0xb1,0xae,
+/* 0x00ac90 */ 0xa3,0x5e,0x6b,0xf1,0x29,0x9b,0x9f,0x24,0xda,0xe3,0x28,0x0d,0xf6,0xbd,0x8c,0x51,
+/* 0x00aca0 */ 0x76,0x9e,0xf6,0x51,0xfc,0xe5,0x46,0xc7,0x04,0xc7,0x0d,0xc1,0xed,0xbc,0x9e,0xcc,
+/* 0x00acb0 */ 0x55,0x5d,0xff,0x10,0xaf,0x23,0xcf,0x8f,0x53,0xff,0x10,0xd4,0xe6,0x91,0xab,0x5b,
+/* 0x00acc0 */ 0x98,0x5b,0x37,0xd9,0xc4,0x5f,0x8e,0xda,0x5e,0x7b,0x10,0xd3,0xc1,0x43,0x63,0xba,
+/* 0x00acd0 */ 0xd1,0x92,0xc7,0xcf,0xcc,0xb0,0xfd,0x05,0xf8,0xcb,0x6d,0x2d,0xa0,0xa8,0x4d,0x4b,
+/* 0x00ace0 */ 0x7b,0x11,0x3b,0xf7,0x04,0xf3,0x0f,0x59,0xfd,0x65,0x37,0xef,0x2b,0xc8,0x84,0xcd,
+/* 0x00acf0 */ 0xa9,0x42,0x5a,0x9e,0x79,0xce,0x94,0xd0,0xff,0x2b,0xf5,0x82,0x29,0x72,0x58,0x38,
+/* 0x00ad00 */ 0x50,0xca,0xc5,0x58,0xe1,0x8e,0xbf,0x88,0xf1,0x7a,0xf9,0xa3,0xe2,0x14,0xfa,0x31,
+/* 0x00ad10 */ 0x80,0xb5,0x8d,0x98,0x75,0xfd,0xdd,0xb0,0x7a,0x6e,0x4e,0xf3,0x78,0x78,0x54,0x58,
+/* 0x00ad20 */ 0x84,0xc2,0x9d,0xcd,0xbe,0xe0,0xa4,0xf0,0x28,0xba,0x92,0x74,0xc7,0x5f,0x06,0xa4,
+/* 0x00ad30 */ 0xda,0x21,0xc4,0xd0,0x40,0x69,0x44,0x91,0x26,0xf8,0x26,0x55,0xef,0x1a,0xc1,0x4f,
+/* 0x00ad40 */ 0x2d,0xbf,0x17,0x4e,0xab,0x05,0xe2,0xbb,0x28,0x26,0x8a,0x69,0xe2,0x39,0xf4,0xa2,
+/* 0x00ad50 */ 0xb8,0x85,0xff,0x1a,0x72,0xe8,0x6f,0x60,0xbe,0xdd,0x77,0x54,0x59,0xa3,0x48,0x96,
+/* 0x00ad60 */ 0x32,0x88,0x3d,0x78,0x9b,0x5c,0xd3,0xe6,0x47,0xfc,0xe3,0xa8,0x0f,0xc5,0x86,0x4a,
+/* 0x00ad70 */ 0x15,0x72,0x7e,0x6d,0x53,0x6c,0xf8,0xeb,0x07,0xb9,0xb0,0xeb,0x99,0xc4,0x3a,0x74,
+/* 0x00ad80 */ 0x18,0xff,0x83,0x22,0xa5,0xfd,0xeb,0x28,0x12,0xbf,0x3b,0xcd,0x9f,0x15,0x9f,0x43,
+/* 0x00ad90 */ 0xf3,0x52,0x04,0x80,0xc7,0x50,0x2f,0x17,0xcb,0x70,0xe9,0xc4,0x1e,0xdc,0xcb,0x80,
+/* 0x00ada0 */ 0xd8,0xb8,0xab,0xfe,0x21,0x31,0x02,0x64,0x99,0xc6,0x3b,0x1b,0x52,0xbd,0xc6,0x7a,
+/* 0x00adb0 */ 0x91,0xae,0x0f,0xf0,0x7b,0x5c,0x4c,0x09,0xef,0x94,0x5e,0x8e,0x3c,0x8b,0x9a,0x94,
+/* 0x00adc0 */ 0x69,0xa0,0x31,0xf5,0x1e,0x8b,0xb4,0xf4,0xe0,0xbf,0x80,0xfd,0x3f,0x46,0xce,0x94,
+/* 0x00add0 */ 0x65,0x38,0x3c,0x5e,0x65,0x76,0x31,0xd9,0x43,0x29,0xf3,0xc0,0x65,0xf9,0xbb,0x54,
+/* 0x00ade0 */ 0x1c,0xfd,0xf6,0x5d,0x90,0x18,0xb2,0xf1,0x5f,0xbf,0x70,0xe0,0xaf,0x6e,0xa1,0x06,
+/* 0x00adf0 */ 0xbd,0x85,0x1a,0x54,0x7f,0xad,0xc0,0x5e,0xb9,0xab,0xd2,0xea,0x55,0xf4,0xf6,0xb4,
+/* 0x00ae00 */ 0x06,0xcc,0xa5,0xba,0xae,0x29,0x64,0xcc,0xea,0xf6,0xe3,0x92,0xf9,0x53,0xdd,0xf8,
+/* 0x00ae10 */ 0xaf,0x6f,0x0d,0x16,0xb8,0x07,0xd5,0xad,0xf5,0x8f,0x77,0x3d,0x76,0x5f,0xaf,0xf1,
+/* 0x00ae20 */ 0xf0,0x7f,0x37,0x1c,0x51,0xc9,0xf9,0xf5,0x19,0x5c,0xbd,0xaa,0xe2,0x31,0xd4,0xad,
+/* 0x00ae30 */ 0xab,0xd9,0x08,0xfb,0x4c,0xfc,0xe5,0xdb,0xcf,0xaf,0xb3,0xac,0x97,0x4c,0x96,0x29,
+/* 0x00ae40 */ 0xe9,0x53,0x3a,0xfc,0xf1,0x6c,0xd4,0xb4,0x86,0xba,0x70,0x8d,0xda,0xd3,0xcd,0x9f,
+/* 0x00ae50 */ 0x51,0xf7,0x8a,0x35,0x90,0x49,0x31,0xad,0xd3,0x1e,0x7f,0x98,0xce,0xc5,0x5f,0x3f,
+/* 0x00ae60 */ 0xdc,0xc0,0xc7,0x4b,0xfe,0x03,0x57,0x75,0x50,0xd9,0x0d,0x9d,0x7c,0x99,0x40,0x87,
+/* 0x00ae70 */ 0xe4,0xca,0xfe,0xd2,0x36,0x86,0xc8,0x3a,0xfc,0xf7,0xe8,0x81,0x88,0x33,0x5c,0xf8,
+/* 0x00ae80 */ 0x2f,0x5e,0xd7,0x3f,0x54,0xc8,0xfc,0x5c,0x40,0xb5,0x83,0xfe,0x7a,0x01,0x5e,0xa7,
+/* 0x00ae90 */ 0x34,0xfe,0x70,0x08,0xbd,0x51,0x41,0x80,0xaa,0x8f,0x56,0x04,0xab,0xc1,0xb1,0x94,
+/* 0x00aea0 */ 0xd0,0x9e,0xcb,0x7f,0x05,0x8f,0x59,0xb1,0x70,0x33,0xd3,0x8d,0xff,0x14,0x64,0x60,
+/* 0x00aeb0 */ 0x1f,0x5e,0x71,0x5a,0x35,0xf9,0xca,0x0b,0xd5,0xcd,0x5c,0x58,0x23,0x5d,0x8f,0xc8,
+/* 0x00aec0 */ 0x71,0x78,0xc5,0x8d,0x18,0x9f,0x4a,0xf2,0xec,0xdc,0xc9,0xea,0x6f,0xe8,0x1b,0x3f,
+/* 0x00aed0 */ 0x29,0xd4,0x70,0x37,0x50,0x1d,0x06,0x98,0x8c,0x19,0xc9,0xa5,0x90,0x31,0x1d,0x71,
+/* 0x00aee0 */ 0x1c,0xd8,0x49,0xa9,0xcc,0x3a,0x4c,0xc6,0x98,0xeb,0x65,0xc4,0x1f,0xf6,0x39,0xce,
+/* 0x00aef0 */ 0x1d,0x01,0xce,0xf7,0x4a,0x2c,0xad,0x6f,0x99,0x52,0xb2,0xd2,0xbe,0x6d,0x0b,0x54,
+/* 0x00af00 */ 0x31,0xb3,0xe2,0x97,0xf2,0x01,0x48,0x55,0x1b,0x2e,0x9b,0x6e,0x9c,0x68,0x9e,0xfa,
+/* 0x00af10 */ 0x1b,0x6b,0x41,0xd5,0x24,0x51,0x09,0x2d,0xb7,0x54,0x7d,0x9e,0xaf,0xf8,0x0e,0xed,
+/* 0x00af20 */ 0x98,0x8f,0xc4,0xb5,0x94,0x82,0x9c,0x9d,0x26,0x2d,0x7f,0x9f,0x13,0x7f,0xd8,0xe6,
+/* 0x00af30 */ 0x38,0xbf,0x58,0x10,0xaf,0x92,0xa1,0x84,0xb5,0x4e,0x72,0x9d,0xc5,0xa4,0xeb,0xcf,
+/* 0x00af40 */ 0xe2,0xc2,0x92,0x9f,0xa2,0xa3,0x72,0x34,0xe3,0xaf,0x4d,0x98,0x6f,0x51,0x37,0xfe,
+/* 0x00af50 */ 0x0b,0x40,0x56,0x98,0xfc,0x22,0x74,0x4b,0x5d,0x38,0x00,0x5e,0x13,0x0f,0xd5,0xbe,
+/* 0x00af60 */ 0xa4,0x14,0x79,0xf8,0x8f,0xa0,0xe6,0x44,0x60,0x54,0xa8,0x20,0xc0,0xac,0x0a,0x4b,
+/* 0x00af70 */ 0x9f,0xe8,0xa5,0xc1,0xbc,0xf9,0x2f,0x4e,0x27,0xb9,0x8e,0xdb,0xf9,0x2f,0x11,0x8c,
+/* 0x00af80 */ 0x55,0x5b,0xb2,0x42,0x1c,0xe6,0xbd,0xba,0xa9,0x7f,0x98,0x83,0x02,0xa4,0xa4,0x64,
+/* 0x00af90 */ 0xc4,0x16,0x96,0x8f,0x64,0x65,0xe7,0xbf,0x64,0x8a,0x88,0xd7,0x7c,0xa7,0xf8,0x06,
+/* 0x00afa0 */ 0x16,0x7f,0x58,0x20,0xff,0xab,0x94,0xb1,0x5d,0x11,0x35,0xba,0x7d,0xc7,0x35,0x9f,
+/* 0x00afb0 */ 0xa1,0x52,0x28,0x1e,0x56,0x76,0xab,0x33,0x9e,0x2f,0xfb,0xb8,0x64,0x97,0x0a,0xa5,
+/* 0x00afc0 */ 0x99,0xf9,0x97,0xf1,0xf5,0x82,0xfa,0x1b,0xd5,0x7c,0x2f,0x8a,0xb4,0x8a,0xc9,0xb2,
+/* 0x00afd0 */ 0x6b,0x34,0xff,0x8b,0x75,0x95,0xcc,0x59,0x2e,0x3d,0x03,0xb4,0x97,0xba,0x46,0x13,
+/* 0x00afe0 */ 0x2b,0xf8,0x6a,0x5c,0x40,0x7f,0xa3,0xb4,0xec,0x89,0x6a,0xd4,0x19,0x4d,0xad,0x14,
+/* 0x00aff0 */ 0xcb,0x12,0x83,0xfb,0xfa,0x38,0xaa,0x53,0x3a,0xb8,0x73,0xef,0xdc,0x6a,0x15,0xd6,
+/* 0x00b000 */ 0x34,0xb5,0x09,0x29,0x2b,0xa3,0x15,0x7c,0x37,0x57,0x48,0x7f,0x83,0x17,0x14,0xa4,
+/* 0x00b010 */ 0x29,0x75,0x62,0x20,0xf1,0x93,0x4c,0xf2,0x22,0x17,0xe7,0xee,0x80,0xb4,0xaf,0x0d,
+/* 0x00b020 */ 0x4a,0x03,0x85,0x66,0xdd,0x43,0xe8,0x57,0xc0,0x7f,0x99,0x89,0x3c,0x86,0xfe,0xa1,
+/* 0x00b030 */ 0x43,0x7f,0x83,0xe6,0x7f,0x45,0xc9,0xde,0xd9,0xda,0x35,0x92,0xd2,0x5d,0xfd,0x89,
+/* 0x00b040 */ 0xd4,0x8d,0xe8,0xb2,0x95,0x12,0xe4,0x7f,0x7d,0x15,0x7d,0x0c,0x84,0x10,0x27,0x52,
+/* 0x00b050 */ 0xd7,0xa3,0x05,0xf8,0x2f,0x9a,0xd6,0x44,0xe5,0x13,0x17,0x99,0xeb,0x95,0xba,0x89,
+/* 0x00b060 */ 0xea,0x56,0x87,0x87,0xb9,0x89,0xc4,0x19,0x14,0x81,0xae,0xcb,0x46,0x97,0xa1,0x7f,
+/* 0x00b070 */ 0xe8,0xe0,0xbf,0x9e,0x28,0xcb,0xa0,0x51,0x35,0x26,0x4b,0x8f,0x47,0x2a,0x79,0x96,
+/* 0x00b080 */ 0x1a,0x56,0x76,0x15,0x0f,0x28,0x11,0x24,0x25,0x3e,0xe8,0x20,0xaf,0xca,0x39,0x15,
+/* 0x00b090 */ 0x10,0x7f,0x88,0x70,0x34,0x3f,0xff,0x25,0x27,0xa0,0x10,0x18,0x25,0xc2,0xa6,0x19,
+/* 0x00b0a0 */ 0x64,0xe2,0xa0,0xb2,0xb7,0x4d,0x69,0x93,0x2a,0xf8,0x6b,0x7c,0x9f,0xaf,0xfa,0x7e,
+/* 0x00b0b0 */ 0x32,0x66,0x2c,0xcb,0x33,0xd2,0xdf,0x73,0x8f,0x03,0x7f,0x6d,0x85,0x2c,0x3f,0x25,
+/* 0x00b0c0 */ 0xd6,0x7a,0x37,0x53,0xcb,0xa4,0xf5,0xbf,0xa8,0x12,0x4b,0x1b,0xad,0x28,0xf7,0x2c,
+/* 0x00b0d0 */ 0x9e,0xd3,0x26,0x59,0x2a,0x11,0xd8,0xf4,0x0f,0xad,0xe1,0x82,0xdb,0x61,0x7e,0xda,
+/* 0x00b0e0 */ 0xe2,0xeb,0xc3,0xec,0xc1,0xa6,0x11,0x89,0x1f,0x91,0xae,0x7d,0x1d,0xc0,0x7f,0x45,
+/* 0x00b0f0 */ 0xde,0x05,0x69,0xfa,0xa7,0xcb,0x47,0xf8,0x53,0x85,0xf8,0x2f,0x13,0x26,0x97,0x67,
+/* 0x00b100 */ 0xbb,0x80,0x35,0xeb,0x20,0xc6,0x9a,0xe8,0x75,0x1d,0x91,0xb5,0xe5,0xd7,0xdf,0xe0,
+/* 0x00b110 */ 0x98,0xec,0xa1,0x5a,0x47,0x1c,0x8b,0x2e,0xad,0xb6,0x87,0x76,0xa1,0x6c,0x09,0x3f,
+/* 0x00b120 */ 0xb1,0x87,0x3c,0x48,0xab,0x70,0xaf,0x22,0xd3,0x1c,0xb1,0x1c,0xfe,0x2b,0xee,0x40,
+/* 0x00b130 */ 0x5b,0x0d,0xa9,0x50,0x46,0x18,0x40,0x50,0xff,0x8b,0x31,0x62,0xa4,0x6b,0x46,0x86,
+/* 0x00b140 */ 0x7f,0x57,0x79,0x45,0x8d,0x60,0x29,0xc3,0x2f,0x41,0x97,0x50,0xc4,0xca,0x7f,0x71,
+/* 0x00b150 */ 0x90,0x42,0x6e,0x79,0x8f,0xf9,0x6b,0x4b,0x80,0xbe,0x57,0x20,0x5d,0xe2,0xac,0x45,
+/* 0x00b160 */ 0x76,0x1e,0x33,0xd6,0x03,0xf5,0x26,0xaa,0x21,0x10,0xb1,0x86,0xd3,0xa5,0xe9,0xdd,
+/* 0x00b170 */ 0xf5,0x37,0x66,0x6b,0x33,0x20,0x1a,0xfc,0x35,0x3c,0xbb,0xc5,0xbf,0x9e,0x3c,0x3d,
+/* 0x00b180 */ 0xd9,0xf7,0xb3,0x4a,0xa9,0xb1,0x29,0xfe,0xb7,0x5a,0xa5,0x56,0xfa,0x4b,0xbe,0x49,
+/* 0x00b190 */ 0x7c,0x1a,0x57,0xda,0xf8,0x2f,0x03,0x7f,0xe9,0xef,0xe7,0xd0,0xc6,0xae,0xf7,0x89,
+/* 0x00b1a0 */ 0x63,0xb6,0xb0,0x23,0xbc,0x56,0x78,0x9f,0xb7,0xc9,0x6e,0x48,0x6d,0xc2,0xd7,0xbe,
+/* 0x00b1b0 */ 0x73,0xe8,0xc7,0xc4,0x0d,0x93,0x6e,0x47,0x7f,0xc0,0x7b,0x1d,0xfc,0x97,0xc5,0xcf,
+/* 0x00b1c0 */ 0x0c,0xee,0x33,0xae,0x67,0x53,0xc2,0x4e,0x19,0x6e,0x92,0x41,0x88,0xc3,0x77,0x09,
+/* 0x00b1d0 */ 0xc5,0x07,0x9f,0x1a,0x16,0xc6,0xe4,0x6f,0x98,0x2f,0x31,0xaa,0x4b,0xd3,0x5b,0xf3,
+/* 0x00b1e0 */ 0xbf,0x4c,0xb4,0xc5,0x8c,0xdb,0x68,0x44,0x62,0x47,0xe0,0x86,0x35,0xda,0xf0,0x5c,
+/* 0x00b1f0 */ 0xb2,0x7e,0x30,0x78,0x43,0x8a,0x53,0xb1,0xfa,0xc0,0xc6,0xf2,0x38,0x1f,0xbe,0x68,
+/* 0x00b200 */ 0xe5,0xbf,0x76,0xe5,0xe2,0xaf,0x10,0x44,0x6b,0x1c,0xaa,0x9e,0xaf,0x05,0x54,0xff,
+/* 0x00b210 */ 0x74,0x7c,0x08,0xc2,0x0e,0x81,0xc9,0x3a,0xa3,0x42,0x45,0x66,0x82,0x14,0x9e,0x20,
+/* 0x00b220 */ 0x20,0x42,0xfc,0x39,0x48,0xfb,0xd6,0x16,0xcc,0xff,0xf2,0xb1,0x80,0x90,0xb2,0x0a,
+/* 0x00b230 */ 0xce,0x68,0xe1,0x5f,0xe4,0xaa,0x06,0x3b,0xd5,0x12,0xf2,0x71,0x71,0xbe,0x56,0xba,
+/* 0x00b240 */ 0x3a,0x22,0x1b,0x4b,0xe0,0xc9,0x7f,0x2d,0x4a,0x9c,0x06,0xc7,0x55,0x25,0x5e,0x25,
+/* 0x00b250 */ 0xd2,0x55,0x2e,0xf9,0xd3,0xbe,0x1e,0x14,0x19,0x17,0x5f,0xf4,0xb5,0xa3,0x04,0x48,
+/* 0x00b260 */ 0x07,0x6c,0x4f,0x20,0xf4,0xdf,0xec,0x53,0xa7,0xbc,0xf4,0x37,0x26,0xe0,0x32,0x56,
+/* 0x00b270 */ 0x89,0xab,0x0b,0x92,0x59,0x59,0xad,0x29,0x74,0x11,0xd5,0x7f,0x10,0x4c,0x12,0x97,
+/* 0x00b280 */ 0xf8,0x75,0x80,0x42,0xdb,0xa5,0x39,0xf8,0x9c,0x9d,0xff,0xca,0xcd,0xff,0x0a,0xd1,
+/* 0x00b290 */ 0x7a,0x01,0x3c,0x59,0xb8,0x24,0xd9,0x20,0xcb,0xf4,0xa5,0x4c,0x7e,0x03,0x81,0xa3,
+/* 0x00b2a0 */ 0x49,0xe1,0x0b,0x28,0xf9,0x71,0x2a,0x94,0x14,0xae,0x8a,0xef,0xe5,0xf0,0x5f,0xac,
+/* 0x00b2b0 */ 0x0a,0xb0,0xc5,0xd5,0xa7,0xc5,0x8c,0xea,0x86,0xc8,0x4b,0x78,0xc2,0x70,0x4e,0xfe,
+/* 0x00b2c0 */ 0x8f,0xb8,0xeb,0x0f,0x6e,0xe2,0xca,0xef,0x5f,0xbd,0x5d,0xcc,0x4a,0x5a,0x59,0xc2,
+/* 0x00b2d0 */ 0x26,0x57,0xe7,0x42,0xca,0x5a,0x18,0xa2,0x50,0x61,0x1b,0x99,0x18,0xc7,0x71,0xec,
+/* 0x00b2e0 */ 0x05,0x3c,0xa9,0x20,0xee,0xe1,0xb6,0x33,0x1d,0xa6,0x73,0x93,0x2a,0x19,0xf7,0x4a,
+/* 0x00b2f0 */ 0x3b,0xe4,0xc6,0x4d,0x3a,0x19,0x26,0x65,0xe8,0xb3,0x64,0x88,0xc0,0x04,0x14,0xc2,
+/* 0x00b300 */ 0xe4,0x4c,0x8e,0x4b,0xc5,0x8f,0x72,0xbe,0x24,0x97,0x11,0xe0,0x24,0x10,0x72,0xc7,
+/* 0x00b310 */ 0x42,0x3c,0xd4,0xfc,0x6a,0x1c,0x8e,0xa1,0x40,0x7e,0x9c,0xc2,0xb9,0x89,0x03,0xbe,
+/* 0x00b320 */ 0x3b,0x91,0x72,0x09,0x24,0x06,0xfa,0xde,0xfe,0x90,0xb4,0x92,0x56,0xbb,0x0a,0xb9,
+/* 0x00b330 */ 0xe9,0x7f,0x9f,0x79,0xef,0xc9,0x88,0xf7,0xb4,0xfb,0xde,0xe7,0x7d,0xbe,0xdf,0xcf,
+/* 0x00b340 */ 0xf7,0x03,0x38,0x05,0x0d,0x47,0x5c,0x12,0xb3,0x5a,0xb8,0x01,0x0d,0x12,0x3f,0x22,
+/* 0x00b350 */ 0xd7,0x08,0x6b,0x28,0xac,0x7f,0xe9,0x40,0x63,0xc8,0x15,0x5d,0x78,0x51,0xa6,0x93,
+/* 0x00b360 */ 0xf4,0xe8,0x88,0xd6,0x1f,0xf1,0x4a,0x5c,0x3f,0xf3,0x5b,0x61,0x7f,0x72,0xb6,0xc4,
+/* 0x00b370 */ 0x6d,0x40,0x7f,0x06,0xaa,0x35,0xbd,0x51,0xfe,0xd7,0x5d,0x89,0x32,0x25,0xa0,0x71,
+/* 0x00b380 */ 0xb1,0xcc,0x14,0xb4,0xae,0x68,0xaf,0x57,0xb2,0xf7,0x23,0x3f,0x61,0x0a,0x5e,0xe9,
+/* 0x00b390 */ 0xce,0x7e,0xf4,0x0f,0xe9,0xbf,0x93,0xa7,0x7f,0x69,0x24,0xab,0xac,0x83,0x06,0x34,
+/* 0x00b3a0 */ 0x8a,0x76,0x40,0x43,0x69,0x09,0xdb,0x86,0xa9,0x2f,0x84,0x87,0xac,0xe9,0x5e,0xba,
+/* 0x00b3b0 */ 0x5e,0x1e,0x87,0x48,0xba,0xe2,0xd9,0xfa,0xd7,0xb3,0xda,0xc9,0x4a,0x23,0xc5,0x29,
+/* 0x00b3c0 */ 0x44,0x2f,0xcf,0x03,0xe2,0x24,0xa5,0xaa,0x5a,0xad,0xb2,0x5e,0x8b,0x21,0x20,0xb9,
+/* 0x00b3d0 */ 0x30,0x39,0x8f,0x7d,0x45,0xa6,0xc5,0x35,0xc2,0x74,0x69,0x42,0x98,0x91,0xfe,0xb5,
+/* 0x00b3e0 */ 0x29,0x65,0xcb,0x84,0x1d,0x66,0x96,0x60,0x82,0x86,0x45,0x75,0x12,0x70,0x93,0x06,
+/* 0x00b3f0 */ 0x2b,0x4a,0x95,0x89,0xbc,0xfc,0xaf,0x92,0xd4,0xae,0x3c,0xb0,0xc8,0xc4,0xff,0x30,
+/* 0x00b400 */ 0x1f,0xa8,0xb2,0xd7,0xe5,0x12,0xfd,0x0f,0xad,0x02,0x53,0xff,0xc3,0x5c,0xa0,0xca,
+/* 0x00b410 */ 0x5e,0xd6,0xea,0x2f,0x97,0x0e,0x4c,0xfc,0x0f,0xad,0x81,0x4d,0x25,0xe6,0x7f,0x59,
+/* 0x00b420 */ 0xd0,0xbf,0x72,0x9f,0x8b,0x52,0x81,0x99,0xff,0xa1,0x55,0x60,0xe2,0x7f,0x68,0x19,
+/* 0x00b430 */ 0x98,0xfa,0x1f,0x5a,0x04,0x86,0xf1,0x87,0xba,0xc9,0x4c,0xcb,0x5e,0x85,0xea,0x7f,
+/* 0x00b440 */ 0x59,0xf2,0x3f,0xb4,0x0a,0x8a,0xfb,0x1f,0x16,0x00,0xf7,0x1b,0xe8,0x5f,0x26,0xfe,
+/* 0x00b450 */ 0x87,0x56,0x41,0x51,0xff,0xc3,0xc2,0xca,0x75,0xc1,0x2e,0x0b,0xfe,0x87,0x96,0x40,
+/* 0x00b460 */ 0xd1,0xf8,0xc3,0x42,0xa0,0xd9,0x40,0xff,0x2a,0x25,0xff,0xab,0x08,0x30,0xf1,0x3f,
+/* 0x00b470 */ 0xb4,0x0c,0x4c,0xfc,0x0f,0xad,0xeb,0x20,0xc5,0xfc,0x0f,0x4b,0x00,0x26,0xfe,0x87,
+/* 0x00b480 */ 0x96,0x81,0x99,0xff,0xa1,0x55,0x60,0xe6,0x7f,0x68,0x15,0x98,0xf9,0x1f,0xe6,0x80,
+/* 0x00b490 */ 0xfe,0xdb,0xf1,0x3f,0xb4,0x36,0xcf,0x16,0xf2,0xbf,0x32,0x60,0xab,0xe1,0xba,0x1b,
+/* 0x00b4a0 */ 0xc6,0x1f,0x96,0xa8,0x7f,0xa5,0xfd,0x0f,0x59,0x2b,0x9f,0xca,0xb5,0xef,0x48,0x83,
+/* 0x00b4b0 */ 0x22,0xfe,0x87,0x0a,0x70,0x95,0xa4,0x7f,0x99,0xfa,0x1f,0xce,0x2a,0x6a,0x8d,0x68,
+/* 0x00b4c0 */ 0xea,0x7f,0x68,0x19,0x98,0xf9,0x1f,0x66,0x18,0x59,0xf1,0x57,0xb7,0x99,0xff,0xa1,
+/* 0x00b4d0 */ 0x55,0x60,0x16,0x7f,0xa8,0x81,0x46,0x93,0x7d,0xc7,0x92,0xff,0xa1,0x05,0x60,0xee,
+/* 0x00b4e0 */ 0x7f,0x68,0x0d,0x58,0xf1,0x3f,0x2c,0x41,0xff,0x32,0xf2,0x3f,0xb4,0x0c,0x4c,0xfc,
+/* 0x00b4f0 */ 0x0f,0xd3,0xfa,0x57,0xae,0x34,0x96,0xb7,0xbf,0x5b,0xac,0xbf,0x6c,0x06,0x4c,0xfd,
+/* 0x00b500 */ 0x0f,0x2d,0x02,0x13,0xff,0x43,0x63,0x60,0xa8,0x7f,0xdd,0xde,0x39,0xd3,0xd4,0xff,
+/* 0x00b510 */ 0xd0,0x4e,0x19,0xd9,0xf3,0x79,0xfa,0x57,0x6e,0x8b,0xa9,0xff,0xa1,0xd5,0xf3,0xbc,
+/* 0x00b520 */ 0x99,0xff,0xe1,0xf4,0x4c,0xcb,0x64,0x2b,0xfe,0x87,0xfa,0x47,0xc6,0xd3,0x21,0x52,
+/* 0x00b530 */ 0x00,0x0d,0x49,0x77,0x92,0x9c,0xf9,0xdf,0xa5,0xec,0x38,0xb5,0xa8,0x11,0xc6,0x9f,
+/* 0x00b540 */ 0x9b,0x2b,0xba,0x8f,0xcc,0x58,0x0d,0x43,0xb8,0x4d,0x9c,0xbc,0x6c,0x46,0x0a,0x7e,
+/* 0x00b550 */ 0xed,0xcd,0xd6,0xbf,0x72,0xf9,0x17,0x70,0x72,0xb5,0xaf,0x4e,0xef,0x71,0x67,0x14,
+/* 0x00b560 */ 0x25,0x3d,0x7d,0xe0,0x4d,0x72,0x89,0x45,0x5e,0x88,0x0a,0x8d,0xa2,0xf3,0xe7,0x88,
+/* 0x00b570 */ 0xa6,0x86,0xd5,0x0a,0xce,0x7e,0x94,0xc4,0x9b,0x3a,0x8b,0xf1,0xaf,0x61,0x0e,0xd0,
+/* 0x00b580 */ 0xc9,0x49,0xb2,0xc1,0x9a,0x40,0xd6,0x22,0x42,0xeb,0x2f,0x7b,0x90,0x1f,0x7e,0x86,
+/* 0x00b590 */ 0x04,0x5a,0x05,0x4f,0xbe,0x69,0xa7,0xdb,0xd6,0x98,0xf0,0x7c,0x51,0xfe,0x95,0xf4,
+/* 0x00b5a0 */ 0x45,0xc3,0xe3,0xb6,0x83,0x2c,0xe1,0xd4,0xd1,0x70,0x52,0xe8,0x83,0x1d,0x92,0x63,
+/* 0x00b5b0 */ 0x10,0x3d,0x0e,0xeb,0x7a,0x67,0xfd,0xe6,0xe1,0xc4,0xc2,0x71,0xae,0xcf,0x56,0xfb,
+/* 0x00b5c0 */ 0x98,0x73,0x10,0x5d,0xe6,0xfa,0x8a,0xf2,0xaf,0x7a,0x7e,0x80,0x02,0x96,0x70,0xe1,
+/* 0x00b5d0 */ 0xb7,0x99,0xdf,0x2e,0x3c,0x41,0x48,0x7a,0x79,0x37,0x53,0x03,0x49,0x29,0x90,0x74,
+/* 0x00b5e0 */ 0xc7,0x6c,0xe3,0x30,0x2c,0xb6,0x86,0x26,0x6f,0xa9,0x3c,0xca,0xbe,0x5f,0x8c,0x7f,
+/* 0x00b5f0 */ 0x3d,0x08,0xd9,0x6b,0x71,0x15,0xbe,0xe4,0x7e,0x21,0xb9,0x52,0x95,0x7b,0xc8,0xd3,
+/* 0x00b600 */ 0x23,0x57,0xca,0x9b,0x40,0x37,0x3d,0xad,0xcc,0xd2,0xf3,0xe8,0xea,0x94,0xe2,0xfe,
+/* 0x00b610 */ 0x1b,0x9d,0x3c,0xd5,0xbf,0xfe,0x57,0xb9,0x1e,0xf9,0x4c,0x49,0x1a,0xea,0x25,0x5d,
+/* 0x00b620 */ 0xc3,0x10,0x18,0x71,0x25,0xc8,0xf7,0xf9,0x5a,0x0c,0x8c,0xf0,0xb1,0x9d,0xd5,0x70,
+/* 0x00b630 */ 0x82,0xdb,0x6b,0xcc,0xbf,0xca,0x45,0x6e,0x0d,0xf3,0x43,0x38,0x84,0xe5,0x3b,0x87,
+/* 0x00b640 */ 0x33,0xb0,0x49,0xac,0x4b,0x32,0x74,0x93,0x8a,0x46,0xbd,0x12,0xb7,0x5f,0xf6,0x87,
+/* 0x00b650 */ 0x44,0xe7,0xb8,0x41,0x26,0xc4,0x6e,0x52,0xc6,0x18,0xf0,0x2f,0xf0,0xb1,0xa8,0x43,
+/* 0x00b660 */ 0xdc,0xe7,0xa1,0xd9,0x79,0xe8,0x64,0x59,0x44,0xf4,0x7f,0xcc,0xd4,0xa3,0x21,0x31,
+/* 0x00b670 */ 0x1c,0x14,0xb0,0x1d,0xf0,0x38,0x24,0xa0,0x46,0x74,0x4c,0x22,0x9b,0x44,0x44,0x12,
+/* 0x00b680 */ 0x8a,0xf0,0xaf,0x50,0xf0,0x1c,0x7a,0x84,0x7d,0x53,0xaa,0x4e,0x3a,0x17,0xa3,0xb3,
+/* 0x00b690 */ 0xbc,0xaa,0xcb,0x9c,0x85,0xb5,0xf1,0x19,0xa3,0xdc,0x72,0xef,0x23,0x54,0x97,0x09,
+/* 0x00b6a0 */ 0x39,0xc6,0xd0,0x5f,0x95,0x3f,0x13,0xad,0xce,0xe3,0x5f,0x7e,0x8d,0x52,0xb5,0x62,
+/* 0x00b6b0 */ 0xbe,0x5e,0xd6,0xb6,0x9a,0xa8,0x10,0x36,0xe6,0x79,0x07,0x5a,0x8e,0xb8,0xa7,0x30,
+/* 0x00b6c0 */ 0x43,0x70,0x0c,0x84,0x21,0x57,0x80,0x39,0x19,0xbc,0x22,0xce,0x93,0x6a,0x3d,0x8c,
+/* 0x00b6d0 */ 0x5f,0x3c,0x01,0xf5,0x46,0xfc,0x2b,0xed,0x2d,0xff,0x25,0x9d,0x5e,0x89,0xb9,0xaa,
+/* 0x00b6e0 */ 0xe8,0x5f,0x57,0x98,0x33,0x30,0x21,0xb4,0x0d,0x11,0x76,0x3c,0x2e,0xde,0x80,0xe6,
+/* 0x00b6f0 */ 0x21,0xd7,0x15,0xba,0xa6,0x62,0x3e,0xff,0xca,0xdc,0x43,0x52,0xca,0xe0,0x57,0x56,
+/* 0x00b700 */ 0x30,0xce,0xac,0x40,0xef,0x42,0x80,0x06,0x78,0x0f,0xc1,0x25,0x48,0x50,0xd9,0x6b,
+/* 0x00b710 */ 0x9c,0xbd,0x46,0xad,0xc9,0xa8,0x03,0xea,0xd7,0x9d,0xc6,0xfc,0x8b,0x55,0xb3,0x09,
+/* 0x00b720 */ 0xe4,0x16,0x71,0xf6,0x1d,0x68,0x93,0x58,0x4d,0x8d,0xe8,0xcf,0xc0,0x46,0xa8,0x96,
+/* 0x00b730 */ 0x66,0xcb,0x81,0x88,0xb6,0x39,0xa2,0x33,0xe4,0x25,0x83,0x85,0x62,0xfc,0x2b,0xe1,
+/* 0x00b740 */ 0x6c,0xd2,0xcc,0x4c,0x96,0xa3,0x25,0xf1,0x1f,0xc5,0xc9,0x64,0x2e,0x43,0x5f,0xc0,
+/* 0x00b750 */ 0x2e,0x7c,0x4f,0xdc,0x4e,0xc7,0xbc,0x4e,0x33,0xef,0x96,0x59,0xe0,0x5f,0x09,0x87,
+/* 0x00b760 */ 0xfa,0x86,0xf4,0x21,0x96,0xbc,0xfd,0xe2,0x92,0x73,0x5e,0xd9,0x10,0x60,0xd1,0x7b,
+/* 0x00b770 */ 0xd4,0x51,0x1f,0xde,0xa0,0x5d,0x20,0x9f,0x2a,0xce,0xbf,0xda,0xe2,0xee,0x4b,0x8c,
+/* 0x00b780 */ 0x4f,0x69,0xb9,0x64,0xfb,0x57,0x74,0xc1,0x26,0x60,0xf7,0x28,0x3a,0x0f,0xbf,0x13,
+/* 0x00b790 */ 0xe7,0xe3,0x07,0x47,0xc9,0x98,0x9b,0xd0,0x86,0xe9,0xab,0x49,0xf8,0xdc,0x8a,0xfe,
+/* 0x00b7a0 */ 0x45,0x5b,0xa2,0x95,0x17,0x91,0x6c,0x84,0x18,0xa6,0xb2,0x57,0xb0,0x15,0xfa,0x40,
+/* 0x00b7b0 */ 0xe9,0xf2,0x58,0xe1,0x5f,0x3c,0x95,0x09,0x54,0x7b,0x01,0x16,0xae,0xc4,0x03,0x62,
+/* 0x00b7c0 */ 0xf9,0x8b,0x33,0x46,0xc5,0xf3,0xb6,0x80,0xc8,0x6f,0x45,0x35,0xdc,0x75,0x68,0x09,
+/* 0x00b7d0 */ 0x6d,0x20,0x83,0x85,0x63,0xca,0x85,0xbf,0x11,0xff,0xe2,0xb6,0xd0,0xfc,0x1d,0x4e,
+/* 0x00b7e0 */ 0x4b,0xfb,0x12,0x1b,0x97,0x71,0x5b,0x68,0x45,0xb0,0xfa,0xd9,0x22,0xb7,0x99,0x76,
+/* 0x00b7f0 */ 0xd9,0xa8,0x23,0x7d,0x98,0x0a,0x58,0x5e,0x63,0xfe,0xe5,0x97,0xb8,0x58,0x78,0x96,
+/* 0x00b800 */ 0x92,0x10,0xd4,0x8f,0x6a,0x18,0x5a,0xf6,0xcb,0xb1,0xa5,0x6c,0x94,0x4c,0xb8,0x9c,
+/* 0x00b810 */ 0xad,0x2c,0x1f,0xda,0x83,0x04,0x0c,0x91,0xbf,0x33,0xbb,0x08,0xff,0x5a,0xb2,0x7c,
+/* 0x00b820 */ 0x73,0x98,0xb4,0xf8,0x48,0x4b,0x20,0xcc,0xee,0xda,0xee,0xab,0x59,0xc2,0x55,0xec,
+/* 0x00b830 */ 0x1e,0x85,0x1e,0xf0,0x11,0xb0,0xbe,0x57,0xab,0x08,0x36,0xb4,0xbb,0x87,0x56,0x04,
+/* 0x00b840 */ 0x33,0xe4,0x5f,0x1c,0x1f,0x46,0x02,0x5c,0x13,0x6a,0xc1,0x1d,0x76,0x0a,0xf8,0x5a,
+/* 0x00b850 */ 0x75,0x80,0x2b,0xa7,0x85,0xc0,0xce,0xd9,0x02,0x9c,0x3f,0xac,0x58,0x8b,0x47,0xfd,
+/* 0x00b860 */ 0x54,0x11,0x1b,0x16,0x9a,0x8d,0xf9,0x97,0x2c,0x57,0x11,0xe0,0x6b,0x5d,0xe2,0xee,
+/* 0x00b870 */ 0x9c,0x7c,0x35,0x7e,0xde,0xd7,0x2a,0x2e,0x3d,0xdd,0x33,0xc8,0xde,0x98,0xd3,0xb6,
+/* 0x00b880 */ 0x64,0x29,0xbd,0x7e,0xbc,0x61,0x6b,0x13,0x09,0xb8,0x1a,0xbf,0xee,0x2f,0xc2,0xbf,
+/* 0x00b890 */ 0x9a,0x1e,0x72,0x8f,0x44,0xae,0xc2,0x0d,0x8e,0x2c,0xdc,0x48,0x64,0x54,0x58,0x13,
+/* 0x00b8a0 */ 0x6c,0x08,0xf2,0x67,0x99,0x79,0xf0,0xa1,0x18,0x08,0xf2,0x23,0xca,0xbf,0x75,0x9c,
+/* 0x00b8b0 */ 0x1f,0x59,0x54,0xd3,0x75,0xa3,0x23,0x60,0xcc,0xbf,0xbc,0x1e,0xb5,0xfe,0x72,0x2d,
+/* 0x00b8c0 */ 0xe7,0xe8,0x45,0x1f,0xc3,0xb9,0x90,0xd7,0x43,0x08,0x42,0x08,0xc2,0x42,0xa3,0x87,
+/* 0x00b8d0 */ 0x5b,0x43,0x76,0x34,0xd2,0x35,0x85,0x8b,0xa3,0x6a,0xd8,0x1f,0xda,0x61,0xc4,0xbf,
+/* 0x00b8e0 */ 0x0e,0x80,0x2f,0xa8,0x4c,0x38,0x57,0xbb,0x50,0x49,0xa6,0x13,0x84,0x76,0x47,0xa5,
+/* 0x00b8f0 */ 0xb7,0x86,0x7b,0x0e,0x84,0xbf,0xe5,0xaa,0x66,0xa9,0xce,0xff,0x1e,0xc4,0xe2,0x3d,
+/* 0x00b900 */ 0x82,0x60,0xcc,0xbf,0xbc,0x9d,0xce,0x17,0xd4,0xfc,0xc1,0x25,0xb1,0x85,0xa3,0xe2,
+/* 0x00b910 */ 0x8f,0xc9,0xbe,0xf3,0xf0,0x1e,0xd4,0x45,0x7d,0x57,0x44,0x2e,0xa1,0x74,0x85,0x68,
+/* 0x00b920 */ 0xa1,0x46,0x7c,0x40,0xae,0x0d,0x67,0xc0,0xbf,0x9a,0x43,0xe9,0xe4,0x2c,0xbe,0x9f,
+/* 0x00b930 */ 0xf9,0x14,0x1f,0x83,0x84,0x58,0xde,0x1f,0x99,0x24,0x9c,0xc7,0x81,0xef,0xf3,0xdb,
+/* 0x00b940 */ 0xe8,0x98,0x47,0x5b,0x57,0xfa,0x7f,0xe2,0x9c,0x29,0x28,0x35,0x9a,0x8d,0xfc,0xe7,
+/* 0x00b950 */ 0x83,0x8a,0xce,0x68,0x23,0x2d,0x2f,0x52,0x39,0x98,0xa3,0xd5,0xbe,0x22,0x9f,0x50,
+/* 0x00b960 */ 0x77,0x14,0xb1,0x6e,0x0b,0x4d,0x99,0x14,0x5a,0x44,0x77,0xff,0x3b,0x54,0x29,0x2e,
+/* 0x00b970 */ 0xc2,0xbf,0x1a,0x6d,0xdf,0xeb,0x55,0x9f,0x41,0x1e,0x33,0xd2,0xd4,0x73,0x54,0xe4,
+/* 0x00b980 */ 0xb2,0x55,0x92,0xdf,0x8f,0x18,0xb0,0xf1,0x3d,0xda,0xe3,0xd9,0xc3,0x7c,0x3c,0xb5,
+/* 0x00b990 */ 0x28,0xff,0xf2,0x62,0x6e,0x0c,0x5d,0x82,0x5f,0xc6,0x6a,0x31,0x37,0x4a,0x5a,0x36,
+/* 0x00b9a0 */ 0xe2,0x19,0x31,0x27,0x6d,0x79,0x2d,0xea,0x55,0x5a,0xde,0x82,0xba,0xb8,0x33,0x44,
+/* 0x00b9b0 */ 0x15,0x31,0xce,0x90,0x7f,0xd1,0xb2,0xcb,0x8e,0xfb,0xd1,0x7f,0x89,0xfb,0xa4,0x5a,
+/* 0x00b9c0 */ 0x89,0xbb,0x2f,0x7c,0x12,0x36,0xe3,0xf8,0xb0,0x72,0x9c,0x23,0xfb,0x60,0xb4,0x7e,
+/* 0x00b9d0 */ 0xad,0xfc,0xae,0x5b,0x4b,0xde,0x99,0x69,0x45,0xac,0x10,0xff,0x3a,0x04,0x33,0x92,
+/* 0x00b9e0 */ 0x5c,0x08,0x9d,0xb1,0xbd,0xc9,0xcd,0x19,0xa6,0x6e,0x48,0xb1,0xb5,0x5c,0xb5,0x48,
+/* 0x00b9f0 */ 0xba,0xae,0xfa,0x7e,0x6a,0xdb,0x3e,0xac,0xf9,0x23,0x89,0x66,0xfc,0xeb,0x16,0xbe,
+/* 0x00ba00 */ 0x6f,0xac,0x7c,0x39,0x73,0x16,0xbe,0xc0,0x6d,0x29,0xff,0x72,0xe6,0x5d,0x38,0x8b,
+/* 0x00ba10 */ 0xe7,0x52,0xff,0xf9,0xb3,0xf0,0xdf,0xb8,0x3e,0xe5,0x57,0x69,0x57,0x9c,0x4a,0x63,
+/* 0x00ba20 */ 0x5c,0x71,0xfe,0x75,0xc4,0x4d,0x0f,0x03,0xe4,0xbd,0x7a,0x7a,0x69,0x9c,0x91,0x01,
+/* 0x00ba30 */ 0x59,0x94,0x45,0x27,0x95,0xad,0x8d,0xec,0x3b,0x6a,0xdd,0xd2,0x45,0x72,0x57,0x11,
+/* 0x00ba40 */ 0xfe,0x75,0xd1,0x3d,0x2c,0x57,0x23,0x6a,0x48,0xf2,0x8b,0x99,0x56,0x78,0xa4,0xa7,
+/* 0x00ba50 */ 0x21,0xe9,0xfc,0x8c,0xb4,0x7c,0xa8,0x8c,0x51,0x14,0xb1,0xf2,0x60,0x46,0x1a,0x33,
+/* 0x00ba60 */ 0xe4,0x5f,0x23,0x64,0xff,0x1a,0x64,0xab,0x25,0x4e,0x74,0x4c,0xf3,0x6e,0x84,0xed,
+/* 0x00ba70 */ 0xa2,0x3d,0xc9,0x7c,0x5f,0x55,0xa9,0x18,0x9a,0x4c,0x57,0xb7,0x80,0xeb,0x24,0xe0,
+/* 0x00ba80 */ 0x75,0x13,0xfe,0x35,0xe2,0xa0,0x83,0xab,0x25,0xbb,0x88,0xa6,0x89,0xbd,0x50,0x8d,
+/* 0x00ba90 */ 0xed,0xdd,0x3b,0x56,0x51,0x43,0xe0,0x21,0xb2,0x3a,0xd4,0x19,0xb8,0x0e,0x3b,0x92,
+/* 0x00baa0 */ 0x99,0x58,0x50,0x43,0xfe,0x05,0xe1,0x76,0xd8,0x8f,0xbc,0x92,0x1d,0x10,0x4f,0xb6,
+/* 0x00bab0 */ 0x49,0x01,0xec,0x4d,0x15,0xed,0x10,0x11,0xb4,0x63,0x3c,0xf6,0x8f,0x70,0x77,0x7a,
+/* 0x00bac0 */ 0x3b,0x94,0x54,0x23,0x23,0xfe,0x45,0x26,0x93,0x65,0xda,0xc9,0x03,0xb2,0x4f,0x72,
+/* 0x00bad0 */ 0xed,0x45,0x0f,0xa2,0x63,0xec,0x5e,0xc9,0xbe,0x9f,0xf9,0x7b,0xf1,0x7d,0xb1,0x6d,
+/* 0x00bae0 */ 0xc4,0x3d,0xb0,0x88,0x1c,0xd5,0x84,0xd6,0xa1,0xf2,0xd8,0x5f,0xb7,0xc0,0x35,0x35,
+/* 0x00baf0 */ 0xfe,0xb0,0x30,0xff,0x3a,0x42,0x16,0x45,0xf9,0xcb,0x34,0x3a,0x54,0xf8,0x4c,0x09,
+/* 0x00bb00 */ 0x90,0x1b,0x87,0xcb,0x62,0xeb,0x31,0xf7,0xdb,0x8a,0xbd,0xb6,0xb8,0x89,0x5a,0xd3,
+/* 0x00bb10 */ 0x5f,0x11,0x8b,0xf3,0xaf,0x11,0x66,0x35,0x1e,0xa6,0xc7,0xf8,0x10,0xc3,0xa3,0xab,
+/* 0x00bb20 */ 0xf8,0xcd,0xa4,0xbb,0x9b,0xac,0xce,0x4d,0xfc,0x80,0xb4,0xe9,0xe9,0xca,0x16,0xb8,
+/* 0x00bb30 */ 0xc5,0xcd,0x95,0xf8,0xaf,0xc8,0xfc,0x9c,0x04,0x86,0x86,0xf4,0x18,0xf2,0xaf,0x28,
+/* 0x00bb40 */ 0xd9,0xa4,0xa8,0x49,0x82,0x6b,0xe0,0xbb,0x7e,0x88,0x8a,0xde,0x94,0xf3,0x00,0xd9,
+/* 0x00bb50 */ 0xbf,0xf6,0x45,0xbc,0x5a,0xe8,0x4b,0xe3,0x18,0x47,0x73,0xff,0xa3,0xb8,0xa8,0xfe,
+/* 0x00bb60 */ 0xe5,0xdc,0x5f,0xb6,0x82,0xba,0x8e,0x4b,0x5c,0x14,0xf9,0xd1,0x81,0xa9,0xde,0x63,
+/* 0x00bb70 */ 0xce,0x44,0x99,0x1f,0x1f,0xf4,0xcd,0xa6,0xa9,0x61,0x74,0xb0,0x37,0xc4,0xf5,0xa2,
+/* 0x00bb80 */ 0x57,0x61,0x7d,0x74,0x76,0x51,0xfe,0xe5,0x5b,0xc8,0x92,0x59,0x53,0xd6,0x4b,0x96,
+/* 0x00bb90 */ 0xbd,0x48,0x57,0x2f,0x8d,0xc0,0x91,0x1e,0xa6,0x3e,0x6f,0x0f,0x90,0x73,0xe6,0x00,
+/* 0x00bba0 */ 0xc8,0xde,0xe9,0x03,0x46,0xfc,0xeb,0x20,0x9d,0x9f,0x38,0xd3,0x85,0x8e,0xc1,0x76,
+/* 0x00bbb0 */ 0xaa,0x0b,0xfb,0xc9,0x69,0xb4,0x51,0xfa,0xbb,0x04,0xaa,0xd1,0xce,0x6c,0x72,0x3c,
+/* 0x00bbc0 */ 0x92,0xc8,0xd3,0x58,0xb5,0xe3,0x4a,0x8b,0xb1,0xfe,0x45,0xd5,0x2e,0x9a,0xed,0x95,
+/* 0x00bbd0 */ 0x9c,0x32,0x81,0x26,0xe0,0x10,0xed,0xda,0x96,0xe9,0x92,0x9d,0x27,0x25,0x66,0x15,
+/* 0x00bbe0 */ 0x4c,0xc0,0x7c,0xda,0x52,0x54,0xff,0x32,0xa8,0x78,0x5e,0x72,0xfd,0xaf,0xf7,0x2d,
+/* 0x00bbf0 */ 0x29,0x62,0x66,0xfa,0xd7,0xb8,0xb1,0xb1,0x5e,0x89,0xfa,0xd7,0x8f,0xa1,0xf6,0xb0,
+/* 0x00bc00 */ 0xde,0x91,0xc3,0x90,0x77,0x6b,0xfc,0x6b,0x6a,0xa1,0xfb,0x8d,0xf7,0xad,0xf3,0xe5,
+/* 0x00bc10 */ 0x61,0x36,0x37,0xff,0xeb,0x1b,0xdc,0x4b,0x2c,0xfd,0xf6,0xf5,0xaf,0xdc,0xfc,0xaf,
+/* 0x00bc20 */ 0x22,0xa0,0x60,0x6a,0x58,0x11,0xfd,0x6b,0x3c,0xb7,0xe5,0xa1,0x22,0xeb,0x95,0x52,
+/* 0x00bc30 */ 0xf6,0xaf,0x90,0x15,0xfd,0xab,0x2c,0x2f,0x35,0xac,0x54,0xfd,0xcb,0x28,0x35,0x2c,
+/* 0x00bc40 */ 0x03,0x2e,0x18,0xd7,0xff,0xca,0xf7,0xab,0x4c,0xcf,0x6a,0x01,0xff,0x43,0x53,0xfd,
+/* 0x00bc50 */ 0x6b,0x7f,0x01,0x77,0xca,0x6f,0xa2,0x7f,0xa5,0x18,0x25,0xf5,0xbb,0x4f,0xd7,0xf5,
+/* 0x00bc60 */ 0x69,0xc9,0xfa,0xd7,0xb5,0x02,0xae,0x92,0x39,0xa9,0x61,0x16,0xf5,0xaf,0x42,0x57,
+/* 0x00bc70 */ 0xca,0x72,0xd8,0x61,0xa2,0x34,0xfd,0xcb,0xf7,0xc7,0xd0,0xbf,0xbe,0x59,0xfd,0x2f,
+/* 0x00bc80 */ 0x33,0x90,0x8e,0x3f,0x3c,0x72,0x5b,0xfa,0x17,0xd3,0xa5,0x65,0x84,0x95,0x94,0xff,
+/* 0x00bc90 */ 0x95,0x0f,0xd2,0x9f,0xd2,0xf8,0x57,0xb1,0xfc,0xaf,0x76,0xa3,0xae,0x98,0xda,0xe5,
+/* 0x00bca0 */ 0x30,0xce,0xff,0x32,0x04,0xfa,0x1a,0xcd,0xb9,0xf1,0x87,0xdf,0x96,0xfe,0x65,0xc5,
+/* 0x00bcb0 */ 0xff,0xb0,0x68,0x66,0x59,0x09,0xfe,0x87,0x45,0xc1,0xff,0x93,0xfe,0x65,0x96,0xff,
+/* 0x00bcc0 */ 0xb5,0xe3,0xf6,0xf5,0x2f,0xa1,0x10,0xff,0x2a,0x19,0x1c,0x57,0xde,0x1b,0xc6,0xfa,
+/* 0x00bcd0 */ 0x57,0xe9,0xf9,0x5f,0x66,0xf5,0xbf,0x4c,0xf4,0x2f,0xc8,0xe3,0x5f,0xb7,0xa1,0x7f,
+/* 0x00bce0 */ 0x3d,0x6a,0xa6,0x7f,0xe5,0xbe,0x9f,0x73,0x81,0xba,0x7f,0x09,0xb7,0xab,0x7f,0x59,
+/* 0x00bcf0 */ 0xf6,0x3f,0xb4,0xac,0x7f,0x89,0xa6,0x87,0x40,0x7d,0x8e,0xd8,0xfc,0x42,0xfe,0x87,
+/* 0x00bd00 */ 0xaf,0x96,0xaa,0x7f,0x1d,0x82,0x7b,0x0b,0xe9,0x5f,0x08,0xb6,0x79,0x0a,0x7d,0xea,
+/* 0x00bd10 */ 0xde,0x9c,0x96,0x9f,0x66,0xfe,0x8e,0xde,0xe7,0x44,0xe5,0x5f,0x5d,0xa5,0xeb,0x5f,
+/* 0x00bd20 */ 0xfa,0x40,0x8e,0xb4,0xff,0x61,0xce,0x3c,0x3b,0xf3,0x26,0x53,0xdf,0x72,0x30,0x47,
+/* 0x00bd30 */ 0x79,0xfc,0x96,0xf5,0xaf,0x9e,0x6f,0x59,0xff,0x2a,0x6e,0x0b,0xa0,0x71,0x34,0xef,
+/* 0x00bd40 */ 0x1f,0x53,0xff,0x4a,0xe7,0x7f,0x29,0xe1,0xc1,0x05,0x57,0xc7,0x9c,0x20,0xe8,0xf2,
+/* 0x00bd50 */ 0xbf,0xac,0x4f,0x6f,0x5e,0x52,0x9e,0xa4,0xf8,0x1f,0x6a,0xfc,0x2b,0x6d,0x0b,0x30,
+/* 0x00bd60 */ 0x3d,0x6f,0x32,0xa7,0x67,0x27,0xdc,0xd9,0x2c,0xea,0x5f,0x12,0xdf,0xce,0x4c,0xc4,
+/* 0x00bd70 */ 0x6e,0xc1,0x7d,0x98,0xb4,0xcc,0xab,0xf9,0x28,0xfc,0x6f,0x02,0x01,0x2f,0xc0,0x87,
+/* 0x00bd80 */ 0xd0,0x70,0xd2,0x9d,0xaa,0xbc,0xe9,0x38,0x45,0xc7,0xac,0x64,0x5a,0xb4,0xa8,0x60,
+/* 0x00bd90 */ 0x8d,0x7f,0x55,0xe9,0xcb,0x2e,0x9f,0xf1,0xed,0x40,0x13,0xe2,0x21,0xa8,0x8d,0x93,
+/* 0x00bda0 */ 0xff,0x7b,0x1d,0x1c,0xef,0xad,0x15,0xfa,0xea,0x99,0x97,0xa1,0x2f,0xdc,0xf8,0x41,
+/* 0x00bdb0 */ 0xdf,0x7e,0x32,0xbd,0x7d,0x3d,0xb5,0x0b,0x82,0xd8,0xe1,0x87,0xbe,0x62,0xfc,0xcb,
+/* 0x00bdc0 */ 0x27,0x05,0x2b,0x16,0x9e,0x64,0xf7,0x55,0x74,0x61,0x39,0x71,0x2f,0x06,0x7e,0xec,
+/* 0x00bdd0 */ 0xac,0xaf,0x90,0xe8,0xfd,0x61,0xfa,0x5c,0x27,0x3a,0x28,0xe1,0xdd,0xa9,0xe7,0x5f,
+/* 0x00bde0 */ 0xb6,0xdc,0xb4,0xc1,0xfe,0xf0,0x38,0xcd,0x5d,0xc2,0xe4,0xdf,0xfa,0x39,0xfd,0x47,
+/* 0x00bdf0 */ 0x45,0xf9,0xab,0xf6,0x4d,0x9b,0xa5,0xc6,0x1f,0x72,0xb5,0xa2,0x03,0x13,0x02,0xfe,
+/* 0x00be00 */ 0x0a,0x94,0x1b,0xeb,0x5f,0xcd,0x12,0x1f,0x95,0x41,0xe3,0x2e,0x77,0x93,0x73,0xb7,
+/* 0x00be10 */ 0xe7,0x1c,0xae,0x0d,0xb8,0xdf,0xba,0xe7,0x15,0x38,0x2f,0x47,0x87,0x56,0xd2,0x0b,
+/* 0x00be20 */ 0x8a,0xd5,0xe7,0xf8,0x1d,0xe4,0x68,0x7d,0xb9,0x88,0xfe,0x65,0x6b,0x3b,0xec,0x56,
+/* 0x00be30 */ 0xab,0xb3,0xc5,0xdd,0xa9,0x45,0xff,0x22,0xfe,0x0e,0xda,0xea,0xa7,0x8f,0xfc,0x6a,
+/* 0x00be40 */ 0x90,0x3a,0xbf,0xd1,0x07,0x76,0x42,0xf8,0x77,0xb6,0xad,0x6b,0xcd,0x67,0xb6,0x71,
+/* 0x00be50 */ 0x54,0xc8,0xff,0x70,0xb5,0xf6,0x7d,0x56,0x51,0x57,0x1c,0x3f,0x9c,0xe0,0xbe,0xa4,
+/* 0x00be60 */ 0xf9,0x44,0x4d,0x30,0x8c,0x5b,0xb7,0x2c,0x1d,0x64,0x56,0xc0,0x31,0x78,0x42,0xda,
+/* 0x00be70 */ 0xa0,0xf0,0xf7,0x55,0x23,0xe5,0x03,0x8c,0x5f,0x4d,0x35,0x32,0xc8,0xff,0xaa,0x93,
+/* 0x00be80 */ 0xc8,0xd9,0x6f,0x15,0xfc,0x3a,0x1a,0x88,0x73,0x83,0x4c,0x10,0xfa,0x3c,0xb5,0xed,
+/* 0x00be90 */ 0xce,0x6d,0x88,0x81,0x70,0x7c,0xbe,0xc4,0xd1,0x52,0x26,0x07,0x85,0x5a,0x91,0x1b,
+/* 0x00bea0 */ 0x60,0x6e,0xc9,0x79,0x6d,0x19,0xfe,0x25,0xe5,0xfa,0xf7,0xde,0x45,0xaf,0x23,0x22,
+/* 0x00beb0 */ 0x58,0x60,0x39,0xe4,0x60,0x6d,0x71,0x42,0xf3,0x22,0x02,0x5a,0x12,0xea,0x09,0x52,
+/* 0x00bec0 */ 0x67,0xa1,0x85,0xbc,0x27,0x41,0xd7,0x34,0x76,0xe4,0x71,0xad,0xa2,0xa5,0xa6,0x7f,
+/* 0x00bed0 */ 0x79,0x68,0x6d,0xe5,0xc7,0x33,0x47,0xfd,0xbb,0xc6,0xd0,0x23,0xf0,0xa3,0x58,0x75,
+/* 0x00bee0 */ 0x35,0xb7,0x12,0x95,0xa3,0xdd,0x78,0x4e,0xc8,0xb9,0x72,0x73,0xa3,0x67,0x4d,0xef,
+/* 0x00bef0 */ 0xcc,0xa4,0x6f,0xa5,0xe3,0x4f,0x05,0x32,0x38,0xc4,0x9d,0x23,0x83,0x73,0xfd,0x0f,
+/* 0x00bf00 */ 0x3b,0x64,0xfd,0x4b,0xfe,0x3e,0x04,0x1c,0x76,0x0b,0x0c,0x2f,0x9e,0xf0,0xd4,0x57,
+/* 0x00bf10 */ 0xf1,0xf3,0x10,0x4b,0x0e,0xe9,0x2d,0xe0,0xae,0xb7,0xfd,0x85,0x74,0x98,0x5a,0x98,
+/* 0x00bf20 */ 0x06,0x64,0xff,0xf9,0x66,0xf1,0xa5,0x0a,0xa6,0xc3,0xfb,0x8e,0x3e,0xfe,0xf0,0x8e,
+/* 0x00bf30 */ 0xdc,0xfc,0xaf,0x24,0xf3,0x01,0xdc,0xf2,0xb4,0x61,0xb7,0x6a,0x4a,0xd9,0x4e,0xf3,
+/* 0x00bf40 */ 0xf5,0xc4,0x3f,0xc8,0x63,0x22,0x72,0x32,0xa6,0x38,0x7d,0x84,0x59,0x25,0xea,0xf9,
+/* 0x00bf50 */ 0x17,0x97,0xc7,0xbf,0xe8,0x65,0xe3,0xd7,0xc3,0x01,0xec,0x4f,0x54,0xce,0xf4,0x5d,
+/* 0x00bf60 */ 0x83,0x96,0x0a,0x5a,0xf6,0xcb,0x73,0xc5,0xd6,0x2c,0x3d,0x9b,0x62,0x5e,0x85,0x27,
+/* 0x00bf70 */ 0x61,0x33,0x26,0x83,0x5b,0x44,0xbd,0xff,0x61,0xc7,0x9d,0xba,0xfd,0xeb,0x7e,0xa9,
+/* 0x00bf80 */ 0x9c,0x82,0x7d,0xe2,0x3c,0x89,0xeb,0x26,0xff,0xaf,0xa3,0x30,0x07,0x5c,0xdd,0xe8,
+/* 0x00bf90 */ 0x1c,0xbc,0x0e,0xd5,0xe7,0x3a,0x14,0x69,0x8c,0xec,0x3b,0x29,0xb4,0x0d,0xeb,0xfd,
+/* 0x00bfa0 */ 0x0f,0x05,0x03,0xfe,0x45,0xcd,0x24,0x1d,0xdf,0x81,0x41,0x5c,0x27,0x70,0x2b,0xcb,
+/* 0x00bfb0 */ 0x4e,0xc3,0xeb,0x78,0xf9,0x98,0xbd,0x09,0xbd,0x04,0x87,0xd6,0x55,0xef,0x20,0x63,
+/* 0x00bfc0 */ 0xca,0xb5,0x79,0x56,0xf9,0xd7,0x0a,0x56,0xf7,0x9c,0xfe,0x93,0xf6,0x62,0xdc,0x25,
+/* 0x00bfd0 */ 0xd9,0x5b,0xc8,0xcf,0x26,0x82,0xfd,0x60,0xa7,0xd7,0xc5,0x7b,0x84,0x90,0xec,0x28,
+/* 0x00bfe0 */ 0x05,0xfb,0x82,0xc2,0x00,0x79,0x51,0x6f,0xd0,0x5e,0x95,0x69,0xfe,0x95,0x4b,0xa9,
+/* 0x00bff0 */ 0x46,0xe5,0x22,0x5f,0x0d,0x31,0xd7,0x28,0xe3,0xf3,0xdd,0x24,0x2d,0xdc,0x27,0x93,
+/* 0x00c000 */ 0xaf,0xc3,0x17,0xd0,0x8c,0x5d,0xf1,0x19,0x03,0x9e,0x9b,0x62,0x03,0x76,0x8f,0xf7,
+/* 0x00c010 */ 0xf9,0x2a,0x2e,0xe8,0xf9,0x97,0x4d,0x77,0xae,0x6b,0xf6,0x2c,0x55,0x72,0xbb,0x56,
+/* 0x00c020 */ 0x0a,0x1b,0x7b,0x66,0x48,0x70,0x6d,0xca,0x6a,0xc1,0xdd,0x7b,0xcf,0xc7,0x92,0x36,
+/* 0x00c030 */ 0x86,0x95,0x13,0xc1,0xf0,0xce,0x8f,0xd9,0xb1,0x1c,0xfe,0xa5,0x3f,0x67,0x86,0xf8,
+/* 0x00c040 */ 0x58,0xe4,0x07,0x54,0x38,0xe8,0x7e,0x76,0x6b,0xe4,0x35,0xef,0x31,0xdc,0x9a,0xdc,
+/* 0x00c050 */ 0xb0,0x19,0x46,0x83,0xd7,0x71,0xbd,0xc8,0x7b,0x66,0x10,0xda,0x15,0xfb,0x9c,0xf2,
+/* 0x00c060 */ 0xa6,0xb2,0x1c,0xff,0xc3,0x5c,0xfe,0xd5,0xc5,0xc5,0xd0,0x2c,0x38,0x20,0x36,0x87,
+/* 0x00c070 */ 0xa8,0x10,0x26,0xae,0x03,0x7f,0x88,0xdb,0x16,0xfe,0x9f,0x9a,0x03,0x48,0xae,0xc8,
+/* 0x00c080 */ 0x5c,0x03,0xcf,0xf5,0x06,0x68,0x46,0xcf,0x4c,0x51,0xef,0x7f,0xd8,0x94,0x1b,0x7f,
+/* 0x00c090 */ 0xd8,0xe4,0x21,0x1f,0x3f,0xc0,0xcd,0xfe,0x4b,0xbb,0x07,0xed,0xe2,0xd6,0x79,0x64,
+/* 0x00c0a0 */ 0xb5,0x8b,0x74,0x75,0x7a,0xc5,0x2a,0xf2,0x77,0xaa,0x54,0xf9,0xa3,0xc6,0xa6,0xf7,
+/* 0x00c0b0 */ 0x3f,0xf4,0x4d,0xd5,0xf3,0xaf,0xe3,0x55,0x15,0x61,0x76,0x60,0x8f,0xcf,0xb7,0x84,
+/* 0x00c0c0 */ 0xac,0x0e,0xbb,0xbd,0x27,0xbc,0x82,0xaa,0x30,0xa4,0x8b,0xb4,0xf4,0x57,0xec,0x60,
+/* 0x00c0d0 */ 0x61,0x2b,0x08,0x4b,0x9c,0x1e,0x8e,0xdf,0xa9,0xf7,0x3f,0xcc,0xe8,0x5f,0x48,0xd3,
+/* 0x00c0e0 */ 0xbf,0x18,0x1f,0xbe,0x26,0x34,0x73,0x2e,0x60,0xe2,0x78,0xd8,0xd6,0x0a,0xd3,0xe4,
+/* 0x00c0f0 */ 0x2e,0xaf,0xac,0x7f,0x51,0xda,0x15,0xe0,0xdc,0xb8,0x52,0xc8,0xf5,0x3f,0xcc,0xe1,
+/* 0x00c100 */ 0x05,0x4b,0xdc,0xa7,0xfb,0x46,0x07,0xae,0xfb,0xda,0x44,0xf7,0xe7,0x34,0x11,0x0c,
+/* 0x00c110 */ 0x5a,0x17,0xd4,0x9d,0x8e,0x5c,0xf5,0x50,0x27,0xc3,0xa5,0x31,0xe7,0x68,0xfc,0x17,
+/* 0x00c120 */ 0x72,0x21,0xb0,0x9d,0xa3,0xf1,0xa2,0xf1,0x87,0x6d,0x41,0xf7,0xe6,0xc8,0x55,0xe9,
+/* 0x00c130 */ 0x14,0xcc,0x97,0xdc,0xef,0x4d,0x9e,0x8a,0x6f,0xc0,0x5c,0x11,0x62,0x93,0x07,0xc9,
+/* 0x00c140 */ 0x1f,0x6c,0x0c,0xf2,0x9b,0x23,0x83,0xe2,0x83,0x54,0xfa,0x79,0xcf,0x39,0x0f,0xeb,
+/* 0x00c150 */ 0xf3,0xbf,0x9a,0xaa,0xf4,0x94,0xca,0x51,0xbe,0x03,0x25,0xa5,0x68,0x30,0x00,0x4e,
+/* 0x00c160 */ 0x40,0x02,0x8a,0x82,0x17,0x5c,0x10,0x21,0x5d,0x53,0xbd,0x4e,0x1e,0x23,0x01,0xbf,
+/* 0x00c170 */ 0x05,0xcd,0x61,0x8e,0x80,0xf8,0x80,0xde,0xff,0x10,0xd2,0x26,0x1b,0x32,0xe8,0x90,
+/* 0x00c180 */ 0x4d,0x0e,0x23,0xf5,0x35,0x5d,0xa4,0xa5,0xac,0x7d,0x0f,0x7e,0x4c,0xb4,0x07,0x64,
+/* 0x00c190 */ 0x69,0xac,0xa6,0x83,0x4c,0x78,0x2f,0x26,0x63,0xda,0xef,0xf5,0x20,0x56,0xd2,0xe7,
+/* 0x00c1a0 */ 0x7f,0x55,0xb1,0x39,0xfc,0xcb,0xa1,0x78,0x5a,0xce,0x5a,0xec,0x0c,0x2c,0xf4,0x93,
+/* 0x00c1b0 */ 0x1f,0x89,0x37,0x74,0x67,0xac,0x62,0xd4,0x73,0x40,0xd1,0x3d,0x6b,0x6c,0x07,0xc8,
+/* 0x00c1c0 */ 0x1b,0x7b,0x81,0x62,0xe0,0x6c,0x10,0x7f,0xa8,0xfe,0xb0,0x7f,0xc2,0xd0,0xdc,0xae,
+/* 0x00c1d0 */ 0xa7,0x3a,0xdd,0x31,0x74,0x0f,0x5c,0xc7,0x7b,0x83,0xae,0xcd,0xd5,0xff,0x21,0x5c,
+/* 0x00c1e0 */ 0x81,0x46,0xd1,0x1f,0x5b,0x44,0xc6,0xe0,0xd6,0xce,0x49,0x4a,0x6a,0x58,0x76,0xfc,
+/* 0x00c1f0 */ 0x61,0x30,0x97,0x7f,0x95,0xc7,0x98,0x21,0x41,0xb1,0xdd,0x70,0x7e,0x02,0xd7,0xe3,
+/* 0x00c200 */ 0xa4,0x2b,0x11,0xd9,0x45,0x5a,0xde,0x16,0xcb,0x3d,0x74,0x0c,0x96,0x6b,0x84,0x0d,
+/* 0x00c210 */ 0xe5,0xc4,0x1f,0x72,0xb9,0xfc,0x8b,0xef,0x75,0x0a,0xb4,0xda,0x32,0xef,0xee,0x75,
+/* 0x00c220 */ 0x92,0x6d,0x89,0x6b,0xfd,0x13,0xbe,0x77,0xc6,0xa3,0x30,0xc6,0x3e,0x41,0x15,0x31,
+/* 0x00c230 */ 0x32,0xa6,0xba,0xc5,0xe3,0xce,0x14,0x02,0x9b,0x5c,0x58,0xff,0xaa,0x4b,0xb8,0xe2,
+/* 0x00c240 */ 0xde,0x66,0xef,0x5a,0x4f,0x5d,0xcc,0x39,0x5e,0xf6,0x00,0xac,0x45,0x73,0x62,0x5c,
+/* 0x00c250 */ 0x9c,0x6c,0x88,0x1b,0x97,0xb5,0x62,0x5f,0x9c,0xec,0x32,0x34,0x11,0xcc,0x39,0xea,
+/* 0x00c260 */ 0x7c,0x5a,0xfd,0x14,0xb3,0x3e,0x4f,0xff,0xda,0x00,0x72,0xb2,0x6a,0x3d,0x72,0x43,
+/* 0x00c270 */ 0x44,0xf4,0x8b,0x27,0x02,0xc8,0x25,0x84,0x17,0xf8,0x47,0xec,0xf3,0xd0,0xb3,0x1e,
+/* 0x00c280 */ 0x6a,0xb3,0x5c,0x55,0x8f,0x24,0x2c,0x0f,0x1e,0xf4,0x96,0x6b,0x9f,0x5a,0xaf,0xec,
+/* 0x00c290 */ 0x5f,0x38,0x87,0x7f,0x5d,0xb4,0xaf,0x94,0xed,0xf8,0xa8,0xc8,0x15,0x9e,0x76,0xcf,
+/* 0x00c2a0 */ 0x1a,0xdb,0x1c,0x4c,0x5a,0x5e,0x80,0x67,0xd0,0x9c,0xe1,0xaa,0x6e,0xf4,0x1e,0x1d,
+/* 0x00c2b0 */ 0x33,0xec,0x6c,0x47,0xcb,0xaa,0x55,0xb3,0xc4,0x01,0xe5,0xfb,0x44,0x39,0x7a,0x09,
+/* 0x00c2c0 */ 0x26,0x33,0xa9,0x97,0x64,0x6d,0x8b,0xbf,0xce,0x94,0xc3,0x7f,0x92,0xed,0xcf,0xbd,
+/* 0x00c2d0 */ 0xb2,0xe2,0x3b,0xb6,0xa3,0xbd,0x0f,0x86,0x5c,0x8b,0x9d,0x2f,0xc0,0xa7,0x78,0x46,
+/* 0x00c2e0 */ 0x8a,0x1c,0xc3,0x4e,0x6b,0x8e,0xf4,0xdf,0xd5,0xf8,0xd7,0xcb,0x05,0xf5,0xaf,0x16,
+/* 0x00c2f0 */ 0xec,0xde,0xa7,0xc8,0x5e,0x0b,0x48,0x8b,0xbc,0x82,0xb8,0xf6,0x0d,0x86,0x25,0xdb,
+/* 0x00c300 */ 0xdf,0x2f,0x95,0xd3,0xfb,0x75,0x98,0x3e,0x44,0x16,0x65,0x8c,0x53,0x3f,0x15,0x56,
+/* 0x00c310 */ 0xf9,0x17,0xab,0xab,0x4f,0xd4,0x96,0xe4,0xaf,0x39,0xa9,0xb6,0xd5,0x20,0x90,0x7f,
+/* 0x00c320 */ 0xfd,0x69,0xf8,0x08,0xdf,0x1d,0xe7,0x87,0xd1,0x4d,0xb8,0x41,0x68,0x17,0x7f,0x8d,
+/* 0x00c330 */ 0xf9,0x1c,0x7e,0x4f,0x66,0x59,0xb6,0x46,0xdc,0xa4,0xf8,0x03,0x60,0x55,0xff,0xaa,
+/* 0x00c340 */ 0xca,0xd9,0xbf,0xb8,0x27,0xc2,0xd3,0xf0,0x1f,0xa0,0x1a,0x73,0xff,0x5c,0x59,0xd5,
+/* 0x00c350 */ 0x7e,0xc6,0x33,0x07,0x3b,0x16,0xa0,0x33,0xf8,0x4d,0x90,0xeb,0x57,0x9e,0x81,0x67,
+/* 0x00c360 */ 0x60,0xe7,0xe1,0xf2,0x54,0xb8,0x49,0x53,0xc4,0x5e,0x2e,0xac,0x7f,0x01,0xd7,0x5d,
+/* 0x00c370 */ 0xe1,0xb1,0xbd,0x01,0x35,0x0b,0xed,0x22,0xe2,0xc8,0x04,0xcf,0x09,0x13,0x30,0xc2,
+/* 0x00c380 */ 0xbd,0x5e,0x35,0x53,0xf2,0x75,0xa3,0x11,0x42,0xc4,0x66,0x4a,0xf6,0x6e,0x72,0x68,
+/* 0x00c390 */ 0x7e,0x06,0xe9,0xf4,0x2f,0x7d,0x9d,0x23,0xd9,0xae,0x59,0x80,0x04,0x08,0xc1,0x9f,
+/* 0x00c3a0 */ 0xdd,0x8d,0x1c,0x4c,0x6c,0x87,0x3f,0xe1,0xb4,0x87,0x0f,0xe3,0xbd,0xa2,0x20,0xd9,
+/* 0x00c3b0 */ 0xeb,0x17,0x0e,0x41,0x0f,0x16,0x92,0x8e,0xb7,0xd7,0x83,0xb6,0x7f,0x19,0xc4,0x1f,
+/* 0x00c3c0 */ 0x8a,0xfe,0x14,0x79,0xe9,0x5d,0x87,0xc6,0x6e,0xd7,0xab,0x4e,0x9f,0x70,0x81,0xf7,
+/* 0x00c3d0 */ 0x27,0x5d,0xdb,0xe4,0xb2,0x17,0xf3,0xa9,0x31,0x5a,0x12,0x2e,0xe2,0x27,0x93,0xae,
+/* 0x00c3e0 */ 0x58,0xa6,0x42,0x90,0x01,0xff,0x22,0x4f,0x13,0xd9,0xbf,0x2e,0x41,0x4b,0x67,0xf9,
+/* 0x00c3f0 */ 0x1b,0xcc,0x31,0x7c,0x5d,0x6c,0x1d,0xd9,0x18,0x63,0x7e,0x43,0x43,0x7a,0xc8,0x98,
+/* 0x00c400 */ 0xc9,0x49,0xf8,0xca,0xd3,0x7c,0x94,0xae,0x97,0x76,0xce,0x8c,0x2b,0xfb,0x57,0xb5,
+/* 0x00c410 */ 0x9e,0x7f,0xc9,0x5d,0x57,0xc9,0xb3,0xdc,0x16,0x72,0x25,0x99,0x6e,0xf8,0x08,0x9e,
+/* 0x00c420 */ 0xbc,0xc4,0x0f,0x33,0x83,0xf0,0xae,0x38,0x57,0xe2,0xbb,0x99,0x27,0xb6,0xdc,0x74,
+/* 0x00c430 */ 0xee,0x93,0x3a,0x46,0x50,0x15,0x2c,0x45,0xd9,0xfc,0x6b,0x7b,0x8e,0xfe,0x75,0x91,
+/* 0x00c440 */ 0x80,0x4f,0xe0,0x02,0xae,0x7d,0x8a,0x1b,0x5c,0x58,0x0d,0xe1,0xd1,0xc0,0x3b,0xee,
+/* 0x00c450 */ 0x7e,0x42,0x6a,0xfa,0xf0,0x6c,0x6a,0x19,0xba,0x83,0xbc,0x33,0x05,0x29,0x18,0x45,
+/* 0x00c460 */ 0x5e,0xf5,0x7c,0xc8,0xc4,0x0b,0xf3,0x2f,0x81,0x80,0xcb,0xb0,0x8e,0x1c,0xbf,0xef,
+/* 0x00c470 */ 0x14,0xd0,0x72,0xf4,0x22,0xfe,0x81,0xc4,0x85,0x1f,0xda,0x2d,0xac,0x53,0x2c,0xee,
+/* 0x00c480 */ 0x05,0x32,0xe6,0x31,0xa9,0x6a,0x3f,0x7a,0x4d,0x4b,0x08,0xd2,0xf4,0xaf,0xa9,0x7a,
+/* 0x00c490 */ 0xfd,0x0b,0xe8,0x12,0xd0,0xba,0xc0,0x62,0x55,0xbd,0x83,0x83,0x28,0xbb,0x9b,0x9e,
+/* 0x00c4a0 */ 0x3c,0x25,0x72,0xf2,0xf4,0x49,0xcd,0xf2,0xb3,0x8c,0xbd,0x52,0x7f,0xbd,0x23,0x6a,
+/* 0x00c4b0 */ 0x53,0x3f,0x15,0xd6,0xeb,0x5f,0x1a,0x29,0x06,0x77,0x0a,0xd1,0xca,0x8f,0xad,0xa2,
+/* 0x00c4c0 */ 0x0b,0x33,0xcb,0xe1,0x02,0x61,0xc7,0x3c,0xae,0x8c,0x93,0x37,0x64,0x80,0x7c,0x1f,
+/* 0x00c4d0 */ 0x46,0x24,0x63,0xbc,0x64,0xe1,0x48,0x8b,0x76,0x9e,0x57,0xf5,0xaf,0x3b,0xf4,0x6c,
+/* 0x00c4e0 */ 0x8b,0xc6,0xb3,0xa5,0x60,0x82,0xa5,0x2e,0xbb,0xe4,0x6d,0x73,0x93,0x5a,0xa0,0x50,
+/* 0x00c4f0 */ 0xdb,0xc3,0x2f,0x6d,0x74,0x8c,0x6d,0x82,0x55,0x0e,0x8a,0x4c,0xf7,0x54,0xf5,0x3c,
+/* 0x00c500 */ 0xff,0x59,0x49,0xf9,0x5f,0x76,0xd5,0x88,0xbe,0x35,0x5b,0x1a,0xa3,0x8e,0xa3,0xe9,
+/* 0x00c510 */ 0xfa,0x5f,0x55,0x96,0xf2,0xbf,0x6c,0x32,0x98,0x40,0x1b,0x84,0x57,0xc2,0x99,0x2e,
+/* 0x00c520 */ 0xc9,0xbd,0x3f,0x5d,0xff,0xab,0x94,0xfc,0xaf,0xb9,0x88,0xc7,0xba,0x62,0xcd,0xe4,
+/* 0x00c530 */ 0x84,0xaf,0xf1,0xaf,0x49,0x7a,0xfe,0x75,0x38,0x0f,0x90,0xae,0x8a,0x34,0xcb,0xde,
+/* 0x00c540 */ 0x40,0x96,0xfb,0x87,0xda,0x60,0xff,0x11,0x02,0x46,0x8c,0xfc,0x37,0x0a,0x83,0x83,
+/* 0x00c550 */ 0x14,0xa4,0x28,0x15,0x82,0x8c,0xb3,0x50,0xe2,0x6e,0xf2,0xc4,0x95,0x90,0xff,0x35,
+/* 0x00c560 */ 0x43,0x05,0xdd,0x39,0x5d,0xcb,0xbf,0x47,0x81,0xfc,0x7d,0xda,0x4d,0xf5,0xaf,0xa3,
+/* 0x00c570 */ 0x54,0xa7,0xe6,0x2e,0x23,0xb9,0xe5,0x55,0x9d,0x54,0xb7,0x99,0x4f,0xf3,0xaf,0x73,
+/* 0x00c580 */ 0xa6,0xf7,0x12,0xc9,0x4c,0x4b,0x8a,0xd0,0xd2,0xec,0xba,0x78,0x62,0x34,0xa1,0xd5,
+/* 0x00c590 */ 0xff,0xca,0xe3,0x5f,0x79,0x60,0xc4,0xf8,0x82,0x62,0xc8,0x91,0xf1,0xdf,0x90,0xf9,
+/* 0x00c5a0 */ 0x97,0x89,0xfe,0x55,0xa1,0x82,0x26,0x4a,0xcd,0x32,0x5d,0x75,0xb4,0x40,0xf0,0x78,
+/* 0x00c5b0 */ 0x9a,0x7f,0x61,0x0b,0xd9,0x5e,0xdc,0xaf,0x0a,0x76,0xf1,0x85,0xf9,0x57,0x41,0x30,
+/* 0x00c5c0 */ 0xe4,0xbe,0xa2,0xbd,0xe2,0xa8,0x07,0xce,0xef,0x3d,0xe9,0x96,0xb6,0xa1,0xba,0x22,
+/* 0x00c5d0 */ 0xfc,0x2b,0x07,0xb4,0xc8,0x7e,0x95,0xca,0x35,0xcb,0x5e,0x5a,0xda,0x32,0x9b,0xec,
+/* 0x00c5e0 */ 0x13,0x46,0xaf,0xf2,0xaf,0xa1,0xad,0xc6,0xf7,0x87,0xaa,0xed,0xa1,0x2b,0x9d,0xff,
+/* 0x00c5f0 */ 0xf5,0x54,0x78,0x42,0xdb,0xb6,0xd2,0x9f,0x52,0xeb,0x7f,0x19,0xf1,0xaf,0x2c,0xa0,
+/* 0x00c600 */ 0x54,0x5b,0x0e,0xab,0x2d,0xd9,0xfe,0x87,0xa9,0x0c,0xff,0x1a,0x67,0x8b,0x3c,0x9e,
+/* 0x00c610 */ 0x1b,0xd4,0xc0,0xec,0xb2,0x93,0xd0,0xa0,0x5d,0x1b,0x46,0xb2,0xba,0xe8,0x4f,0xe2,
+/* 0x00c620 */ 0xb4,0x11,0xff,0xca,0x01,0x2d,0xba,0x6a,0xcb,0x3a,0x70,0x7f,0x9c,0x80,0x6b,0x05,
+/* 0x00c630 */ 0xf9,0x97,0x35,0xa0,0x7a,0xf7,0xad,0xae,0xca,0xf6,0xdf,0xd8,0xc5,0x15,0xbf,0xcc,
+/* 0x00c640 */ 0xef,0x3c,0x15,0xfb,0x73,0x55,0x46,0xf1,0x30,0x5d,0x72,0x08,0xd6,0x52,0xa5,0xab,
+/* 0x00c650 */ 0xf1,0x1f,0xf9,0x18,0xf3,0xb9,0x55,0xfd,0x2b,0xe4,0xca,0x91,0xab,0x9a,0xd3,0x5d,
+/* 0x00c660 */ 0x41,0x9f,0x31,0xff,0xca,0x07,0xf6,0xac,0x96,0x2e,0xed,0xf8,0xad,0x06,0x3d,0x1a,
+/* 0x00c670 */ 0xf2,0xaf,0x02,0xc0,0x9e,0x69,0x29,0xa3,0x4e,0xe9,0xbe,0x4c,0x17,0x98,0xe4,0x7f,
+/* 0x00c680 */ 0xed,0xd7,0x27,0xf2,0x20,0xb9,0xf2,0x35,0xb8,0xc3,0x91,0x47,0x75,0xc1,0x66,0xc0,
+/* 0x00c690 */ 0x66,0xfc,0x37,0x4a,0xd4,0x65,0xb0,0x3e,0x58,0x31,0xc6,0x7c,0x61,0x31,0xff,0x2b,
+/* 0x00c6a0 */ 0xbb,0xda,0xf2,0x8b,0x91,0x5d,0x6c,0x56,0x82,0x92,0x5c,0x9a,0x59,0xf3,0xdf,0xa8,
+/* 0x00c6b0 */ 0x32,0xd6,0xb6,0x2a,0x72,0x5a,0xfa,0x7a,0x91,0x17,0x47,0xb3,0x5a,0x04,0x42,0xc4,
+/* 0x00c6c0 */ 0x3e,0xca,0xe3,0x5f,0xc6,0x22,0x97,0x37,0x63,0x2f,0x29,0x64,0xcd,0x73,0xed,0x62,
+/* 0x00c6d0 */ 0xce,0xe3,0x55,0xeb,0x7f,0x2d,0x63,0x77,0x79,0x4a,0x92,0x3b,0x75,0xeb,0x4e,0x7e,
+/* 0x00c6e0 */ 0x3f,0x67,0xd3,0xfe,0x1b,0x9e,0x12,0xe6,0x39,0x87,0x64,0xf1,0xb4,0xfe,0x97,0xc2,
+/* 0x00c6f0 */ 0xbf,0x16,0x94,0xa8,0x7f,0xe5,0x26,0x82,0x5d,0x30,0xe0,0x5f,0x79,0x80,0xe5,0xd3,
+/* 0x00c700 */ 0x85,0xe4,0xe0,0x36,0xf2,0xbf,0xea,0x28,0xed,0xca,0x6a,0x69,0x4e,0x77,0xd9,0xe6,
+/* 0x00c710 */ 0xc4,0x4a,0xc9,0xff,0x5a,0x66,0xcf,0x6a,0xd1,0x87,0x76,0x9c,0xce,0xe8,0x5f,0x78,
+/* 0x00c720 */ 0x8a,0x99,0xfe,0x15,0x5a,0x6c,0xd4,0xe5,0xc2,0x99,0xf8,0xc3,0x68,0x11,0xfd,0x6b,
+/* 0x00c730 */ 0x91,0x0c,0x42,0x2e,0x23,0xfd,0xeb,0xee,0xac,0xf8,0x43,0xc7,0x24,0x93,0x73,0x42,
+/* 0x00c740 */ 0x8b,0x1c,0xd8,0x96,0x6e,0xc1,0x79,0xfa,0xd7,0x5a,0x79,0xbd,0x50,0x2e,0xff,0xca,
+/* 0x00c750 */ 0x02,0xd5,0x32,0x08,0xd1,0x42,0xcc,0x9a,0x46,0x76,0x4b,0xc8,0xcb,0xff,0xc2,0x85,
+/* 0x00c760 */ 0xf8,0x97,0xde,0x40,0x5e,0x61,0x52,0xae,0xe2,0xf9,0x5f,0xbd,0x0a,0xff,0xc2,0x66,
+/* 0x00c770 */ 0x3a,0x9a,0x5c,0x88,0xd9,0x6e,0x9a,0xff,0xc5,0x1a,0xd5,0xaf,0xbc,0x4b,0x05,0xd8,
+/* 0x00c780 */ 0x59,0xff,0x37,0x06,0x3f,0x89,0x21,0x1d,0xff,0xe2,0x4c,0xce,0x87,0xe5,0x59,0xf9,
+/* 0x00c790 */ 0x5f,0x13,0xba,0xae,0x94,0x3b,0x81,0xac,0xeb,0x5f,0x2e,0xc3,0xae,0x30,0x39,0x27,
+/* 0x00c7a0 */ 0x24,0x0b,0xf2,0xaf,0x42,0x80,0x37,0xec,0x0a,0xf1,0xa9,0xc9,0xb8,0x30,0xff,0xca,
+/* 0x00c7b0 */ 0x05,0xc8,0x3f,0xea,0xcb,0xb2,0x46,0x9c,0xc8,0xd6,0xbf,0xea,0x92,0xbe,0x84,0xb6,
+/* 0x00c7c0 */ 0x7f,0x99,0xeb,0x5f,0x62,0x81,0xca,0x62,0xea,0x39,0x7c,0x98,0xb3,0x90,0xff,0x45,
+/* 0x00c7d0 */ 0x01,0x25,0x59,0x4a,0xc1,0xa3,0xc2,0x63,0x48,0xd7,0x91,0x1e,0x1d,0xff,0xca,0x9d,
+/* 0x00c7e0 */ 0xc3,0x4c,0xe1,0x36,0x31,0xdb,0x3f,0x5c,0xbf,0x5e,0xb4,0x4b,0xe5,0x5f,0xdb,0x0d,
+/* 0x00c7f0 */ 0xf3,0xbf,0xb4,0x0c,0x23,0x5c,0x34,0xff,0x6b,0xf2,0xd8,0x43,0x85,0xf9,0x97,0x53,
+/* 0x00c800 */ 0x05,0xe0,0x4a,0x31,0xcd,0x70,0x06,0xe6,0x8e,0x12,0x76,0xdc,0x04,0xb7,0xc2,0x6d,
+/* 0x00c810 */ 0x12,0xfb,0x01,0x93,0x80,0x53,0x78,0xae,0xe0,0xee,0x64,0x02,0x90,0x17,0x7f,0xe8,
+/* 0x00c820 */ 0x29,0xe8,0xb6,0x21,0x10,0xe0,0x83,0x03,0xac,0x97,0x4e,0x66,0x0d,0x3d,0xc6,0x27,
+/* 0x00c830 */ 0xf9,0x38,0x0a,0xb0,0xeb,0xc2,0xde,0xe4,0xc3,0xa4,0x8b,0x95,0x8f,0xfa,0x85,0xf4,
+/* 0x00c840 */ 0xaf,0x9c,0xc4,0xa2,0xad,0xf5,0x65,0xc3,0x10,0xa3,0xd7,0x7d,0xf5,0x15,0x3e,0xcf,
+/* 0x00c850 */ 0xf3,0xb0,0x42,0xe2,0x10,0xda,0x05,0xcf,0xb1,0x35,0xd8,0x09,0xe5,0x00,0x6a,0x61,
+/* 0x00c860 */ 0x7a,0x33,0xff,0x8d,0xde,0xbb,0x12,0xe8,0xff,0x48,0xbb,0xfe,0xe0,0x28,0xaa,0x3c,
+/* 0x00c870 */ 0xff,0xe6,0x75,0x93,0xbc,0x4c,0x77,0x32,0xed,0x4c,0xf4,0x40,0x28,0xe9,0x99,0x0c,
+/* 0x00c880 */ 0x61,0x82,0x43,0x08,0x13,0x8c,0x0a,0x21,0x3c,0x06,0xd6,0xca,0x02,0x2b,0xb9,0x5d,
+/* 0x00c890 */ 0xab,0x0e,0xab,0x2c,0x6b,0x70,0x73,0x5b,0xd4,0x1e,0x65,0xe5,0xee,0xd8,0xba,0xb8,
+/* 0x00c8a0 */ 0xe5,0x9d,0x2f,0x33,0x23,0x4c,0x0c,0x9a,0x01,0xb1,0x16,0x3c,0xef,0x6a,0x40,0x5c,
+/* 0x00c8b0 */ 0x71,0x8f,0xdd,0xca,0x0f,0x56,0x41,0x76,0xa1,0x89,0x61,0x1d,0xf9,0xa1,0x39,0xca,
+/* 0x00c8c0 */ 0x55,0xe0,0xd4,0x1a,0xd8,0x01,0xe3,0x8a,0x82,0x47,0x56,0x12,0x08,0x70,0xef,0xbd,
+/* 0x00c8d0 */ 0xee,0xf9,0x99,0x99,0xcc,0xb8,0xc7,0x5f,0xdf,0x7a,0xfd,0x66,0xc8,0x74,0xf7,0xfb,
+/* 0x00c8e0 */ 0xf1,0x79,0x9f,0xef,0xe7,0xf3,0x1d,0x66,0xc7,0x86,0x83,0xa8,0x17,0x56,0x83,0x4e,
+/* 0x00c8f0 */ 0x5c,0xab,0xa1,0xfd,0xe1,0x6a,0x65,0x07,0xa8,0xd6,0x02,0x11,0xff,0x1c,0x35,0x87,
+/* 0x00c900 */ 0xff,0x86,0x8e,0x65,0xf4,0x07,0x97,0x70,0xa7,0xb4,0xd2,0xe1,0x70,0xbe,0xe5,0xac,
+/* 0x00c910 */ 0xda,0xa3,0x6d,0x0e,0x07,0x5c,0x7c,0xfa,0x92,0xf7,0x08,0x1b,0xe1,0xff,0x90,0x06,
+/* 0x00c920 */ 0x6d,0xf5,0x02,0xa9,0x2a,0xc9,0x57,0xea,0xeb,0x45,0x0e,0xfc,0x15,0x60,0x44,0xd8,
+/* 0x00c930 */ 0x22,0xaf,0xa5,0xcd,0x46,0x6f,0xaf,0x95,0xde,0xcc,0x35,0xb6,0x11,0x70,0x7b,0xca,
+/* 0x00c940 */ 0x62,0x8d,0xeb,0x14,0x2e,0x6f,0x61,0x26,0xa2,0x52,0x5b,0xd2,0xff,0x10,0xf3,0xef,
+/* 0x00c950 */ 0xc9,0x97,0x7f,0xe8,0xd1,0x2c,0xbd,0x74,0x91,0xfa,0x33,0x0d,0xe8,0x4b,0x32,0x06,
+/* 0x00c960 */ 0x8e,0xe1,0x3e,0x1a,0xcc,0x5e,0x80,0xde,0x53,0x9a,0xc2,0xf2,0xee,0x1f,0xd9,0x13,
+/* 0x00c970 */ 0xd5,0x25,0xf2,0xf8,0x6f,0xb0,0x47,0xc0,0x82,0x5d,0xda,0xca,0x91,0xea,0x61,0xc0,
+/* 0x00c980 */ 0x5c,0x68,0xd0,0xdb,0x8e,0xa3,0x53,0x7f,0x05,0x6c,0x51,0x44,0xbc,0xb3,0xbd,0x1d,
+/* 0x00c990 */ 0x43,0xff,0xf6,0x21,0xfa,0xb5,0xe0,0x43,0x07,0x29,0x2e,0xe0,0xfe,0x87,0xfc,0x5f,
+/* 0x00c9a0 */ 0x76,0xfe,0x61,0x5c,0x6a,0xe4,0x81,0x53,0x91,0x1a,0xfd,0x51,0x70,0xb0,0xd9,0xb5,
+/* 0x00c9b0 */ 0x14,0xc1,0x92,0x63,0x24,0x80,0xc4,0x58,0x59,0x04,0x12,0x71,0x0b,0xe1,0x1b,0x8f,
+/* 0x00c9c0 */ 0x55,0x89,0x73,0x89,0xd1,0xc9,0xf2,0x0f,0x0f,0x93,0x59,0x8e,0xae,0x76,0x78,0x16,
+/* 0x00c9d0 */ 0x1d,0x26,0xf7,0xfa,0x42,0xed,0xf0,0x0f,0xae,0xd7,0x89,0x3d,0x36,0x6d,0x0d,0xdc,
+/* 0x00c9e0 */ 0x7a,0xe4,0xa5,0x8e,0x7b,0xe9,0xbb,0xea,0x7f,0x3c,0x91,0x20,0xb7,0x3d,0x6f,0xfe,
+/* 0x00c9f0 */ 0x61,0xe0,0x04,0xb8,0xa1,0x6c,0x08,0x5a,0x98,0xf8,0xe8,0x4f,0xae,0x07,0xb0,0xac,
+/* 0x00ca00 */ 0xc2,0x28,0x3e,0xee,0x70,0x6a,0xdf,0xeb,0x31,0x07,0x23,0xff,0x0d,0xdc,0xdb,0x2c,
+/* 0x00ca10 */ 0x56,0xa6,0x11,0x53,0x0b,0xd4,0xff,0x12,0xc6,0x29,0x4a,0x5a,0x44,0x58,0x36,0x2f,
+/* 0x00ca20 */ 0xba,0x0d,0xee,0xc7,0x96,0x2b,0xa6,0x11,0x70,0x93,0xf9,0xdb,0x68,0xc2,0xcf,0xc8,
+/* 0x00ca30 */ 0xf3,0x77,0x2c,0x39,0x4a,0x91,0xc2,0x38,0x36,0xa8,0xe7,0xfc,0xf9,0x87,0xb3,0x8d,
+/* 0x00ca40 */ 0x03,0xae,0x5e,0xd3,0x30,0xfd,0x42,0x8f,0x4f,0x26,0x2b,0x6b,0xc8,0x55,0x72,0x97,
+/* 0x00ca50 */ 0x66,0x09,0xdb,0xfe,0xa8,0xa4,0x0a,0x67,0x13,0x4f,0x1a,0xff,0x95,0x9e,0x7f,0x68,
+/* 0x00ca60 */ 0xb8,0x3c,0x01,0x1e,0x2c,0xa3,0x2d,0xa7,0xc5,0x7e,0xb1,0x06,0xa3,0x36,0x58,0xd9,
+/* 0x00ca70 */ 0xcc,0x68,0xaf,0x2e,0x5f,0x7d,0x25,0xd8,0x64,0x9a,0xab,0xf1,0x04,0x78,0x23,0x01,
+/* 0x00ca80 */ 0xc3,0xe0,0xbf,0x3a,0x26,0xe2,0x2f,0x2b,0x47,0xbe,0xe7,0x57,0xfe,0xbc,0xfa,0x2c,
+/* 0x00ca90 */ 0x78,0x6b,0x53,0xd5,0x8f,0x6b,0xdc,0xd0,0x0a,0x0e,0x33,0x55,0x5d,0x33,0xfc,0x08,
+/* 0x00caa0 */ 0xbc,0x44,0xe6,0x46,0xba,0x9e,0x2e,0x79,0x5c,0x7d,0x8b,0xec,0xe4,0xfc,0x97,0xfe,
+/* 0x00cab0 */ 0x1e,0xe6,0xcc,0x3f,0x44,0x06,0xb6,0x8a,0x82,0x7e,0x12,0xf1,0x4d,0x7b,0x00,0x02,
+/* 0x00cac0 */ 0x53,0xff,0x00,0xcf,0xc7,0x7e,0x98,0xc9,0x33,0x87,0x24,0x17,0x7c,0x18,0xf4,0xeb,
+/* 0x00cad0 */ 0xcc,0x75,0xee,0xfc,0xc3,0x46,0x16,0xac,0x4b,0xb4,0x8c,0x81,0x5b,0xc4,0x13,0x29,
+/* 0x00cae0 */ 0x8f,0x09,0x73,0xd4,0x5b,0x03,0x17,0x49,0xf7,0x39,0x61,0xcc,0x71,0x96,0x51,0xc6,
+/* 0x00caf0 */ 0xf4,0x0f,0xa1,0x7d,0x3c,0x9c,0xff,0xd2,0x71,0x65,0xbe,0xfc,0xc3,0x46,0x60,0x09,
+/* 0x00cb00 */ 0xda,0xce,0x83,0x51,0x85,0x57,0x1a,0x1a,0x50,0x46,0x9b,0xb9,0x0a,0xc9,0xce,0x00,
+/* 0x00cb10 */ 0x42,0x39,0xdd,0xe0,0x25,0x77,0x83,0xa7,0x48,0x3e,0xfd,0x97,0x1e,0x1c,0x93,0xb7,
+/* 0x00cb20 */ 0x32,0xb4,0xb5,0xd1,0x83,0x2d,0xdb,0x85,0x5a,0x40,0x87,0x15,0xf3,0x3f,0x9c,0xc2,
+/* 0x00cb30 */ 0xf6,0xf3,0xbe,0x6e,0x5e,0x7f,0x19,0xea,0xf9,0x87,0xc1,0x9c,0xf8,0x6b,0x39,0x32,
+/* 0x00cb40 */ 0x02,0x2f,0xb2,0xd2,0x69,0xb0,0x77,0x68,0x17,0xae,0xd8,0xe6,0xd8,0x0d,0x3b,0x61,
+/* 0x00cb50 */ 0x2d,0x9e,0xae,0x08,0x3f,0x21,0xef,0x81,0xda,0x56,0x29,0x2c,0x89,0xdc,0x92,0x8e,
+/* 0x00cb60 */ 0x7e,0x6a,0x38,0x87,0xfe,0xeb,0x0d,0xbe,0xb5,0x2e,0xd1,0xf7,0xd8,0x73,0xc2,0x0f,
+/* 0x00cb70 */ 0xb1,0x82,0x50,0x0e,0xbc,0xf2,0x4e,0xab,0xb3,0x93,0xce,0x63,0xbc,0xb2,0x98,0x69,
+/* 0x00cb80 */ 0x47,0x90,0x75,0xbe,0xcb,0x99,0xf0,0xc1,0x7b,0x5f,0x1f,0xa7,0x13,0xfc,0x37,0x50,
+/* 0x00cb90 */ 0x42,0x08,0x66,0xb6,0x6e,0x64,0x42,0x30,0x15,0xdf,0x6d,0xdd,0xba,0x39,0xd2,0x21,
+/* 0x00cba0 */ 0xae,0x5f,0xc1,0xd2,0x0e,0x77,0x72,0x3a,0xc6,0xba,0xd1,0x09,0x13,0xbc,0x0c,0x98,
+/* 0x00cbb0 */ 0x88,0xbf,0x18,0xc8,0xa2,0xef,0x3c,0x13,0x43,0x35,0xa1,0x0a,0xbf,0xa4,0xca,0xa3,
+/* 0x00cbc0 */ 0x2a,0xe4,0x95,0xb3,0x48,0x14,0x3c,0x89,0xba,0x08,0x0d,0x4e,0x73,0x20,0x66,0x53,
+/* 0x00cbd0 */ 0x51,0x82,0xff,0xd2,0xf3,0x37,0xf2,0xe6,0x1f,0x6a,0x73,0xc3,0xc2,0xc8,0x9e,0x9b,
+/* 0x00cbe0 */ 0xae,0xc5,0x2b,0x2a,0x4e,0x05,0xe2,0x34,0x68,0x62,0xd6,0x88,0x23,0xd6,0xaf,0xf8,
+/* 0x00cbf0 */ 0x41,0xa2,0x6d,0xdf,0x1e,0xc3,0xff,0x30,0xe1,0x3f,0x6f,0xca,0x46,0x5b,0x43,0x49,
+/* 0x00cc00 */ 0x41,0x59,0xe0,0x2b,0xf0,0x1f,0xc0,0xb3,0x7c,0xe6,0x47,0x70,0x1f,0xf8,0x0a,0xd4,
+/* 0x00cc10 */ 0xb3,0x23,0xe5,0x7d,0xea,0x61,0xf0,0x20,0xa6,0x13,0xec,0xac,0x64,0x1e,0x63,0x01,
+/* 0x00cc20 */ 0xff,0x0d,0xa5,0x8c,0xc0,0x61,0x31,0xa4,0x3a,0x90,0x34,0xc5,0xa1,0x92,0x90,0x9d,
+/* 0x00cc30 */ 0xf9,0x1f,0x42,0x3b,0x08,0x01,0x87,0x89,0xf1,0x5f,0x60,0xbf,0xaa,0xfb,0xcf,0xa7,
+/* 0x00cc40 */ 0xf2,0x0f,0xb7,0xe4,0xc3,0x5f,0x71,0xb0,0x65,0x95,0x4a,0xef,0x2a,0x7c,0x56,0x7d,
+/* 0x00cc50 */ 0x03,0xa9,0x2d,0x92,0x32,0x10,0x04,0x6f,0x40,0xa7,0x56,0x56,0xc9,0xf2,0x3c,0x51,
+/* 0x00cc60 */ 0x51,0xf9,0x87,0x6b,0x39,0xdc,0xee,0x14,0x9f,0x30,0x84,0x84,0x5e,0x4e,0x77,0xce,
+/* 0x00cc70 */ 0x12,0x3b,0xd5,0x6a,0x6c,0x0a,0x7b,0x5b,0xc1,0x83,0x62,0x06,0xff,0xf5,0x52,0x1e,
+/* 0x00cc80 */ 0x4f,0x8c,0x36,0x0b,0xab,0x46,0x7d,0x06,0xf4,0xe1,0x95,0x14,0x76,0x39,0xcf,0x91,
+/* 0x00cc90 */ 0xbe,0xa5,0x96,0x70,0xe0,0x75,0x7c,0x8e,0x34,0x6d,0x28,0x0f,0x97,0xb5,0x26,0xf3,
+/* 0x00cca0 */ 0x0f,0x9d,0x39,0xf5,0x5f,0xd8,0xf0,0x99,0x64,0xb2,0xaf,0x2a,0x1e,0xb4,0x5a,0xb6,
+/* 0x00ccb0 */ 0x0a,0x17,0x7d,0x63,0x76,0xde,0x67,0x10,0x7c,0x41,0xde,0xc6,0x6e,0xfa,0xcd,0xc6,
+/* 0x00ccc0 */ 0x69,0x86,0x6d,0x40,0xc7,0x5f,0x73,0xb2,0xf0,0x97,0x98,0xf0,0x9f,0x57,0x64,0x22,
+/* 0x00ccd0 */ 0x9c,0x83,0x1a,0x7a,0x13,0x58,0x50,0x95,0x9d,0x97,0xe7,0x5b,0x4d,0x24,0xbb,0x33,
+/* 0x00cce0 */ 0x0a,0x9b,0xac,0xf2,0xb3,0x81,0x02,0xf8,0xab,0x29,0x22,0x0d,0xfb,0x59,0xcb,0xbc,
+/* 0x00ccf0 */ 0x5d,0xae,0x98,0x10,0x9a,0xfa,0x02,0x73,0x3b,0xbc,0x04,0x17,0x82,0x43,0xb8,0xb6,
+/* 0x00cd00 */ 0xa3,0x2b,0x02,0x1f,0x04,0x2f,0x90,0xb9,0x04,0xb5,0xd2,0xa5,0xdf,0xf8,0x54,0x34,
+/* 0x00cd10 */ 0x37,0xfe,0x8a,0x25,0x37,0x1e,0xa8,0x66,0xe0,0x84,0x12,0x68,0xe1,0x93,0x55,0xf5,
+/* 0x00cd20 */ 0x94,0x7e,0x2f,0x4f,0x9f,0x7e,0x1e,0x05,0xb6,0xb9,0xb5,0x39,0xee,0xd4,0xa4,0x97,
+/* 0x00cd30 */ 0xdb,0x7f,0xa3,0x06,0xd3,0xc9,0x93,0xb7,0xf8,0x10,0x76,0xbc,0x12,0xda,0x08,0x67,
+/* 0x00cd40 */ 0x0d,0x4a,0x1b,0xcc,0x77,0x88,0x5c,0xf6,0xf5,0x4f,0x50,0x9e,0xb3,0x11,0xcc,0x25,
+/* 0x00cd50 */ 0x66,0x9c,0xc4,0x05,0x8e,0x28,0xe6,0x7f,0x4f,0x24,0x13,0x7f,0xcd,0xf5,0x95,0xae,
+/* 0x00cd60 */ 0xe3,0xfe,0xf3,0x8d,0x11,0x79,0x1d,0x17,0x86,0xdc,0x37,0x6c,0x59,0x23,0x58,0xf5,
+/* 0x00cd70 */ 0x3e,0xe3,0xcb,0xfe,0x13,0x1c,0xa5,0x41,0xc9,0xba,0x09,0xf9,0x87,0x13,0xfd,0x37,
+/* 0x00cd80 */ 0x14,0x93,0x11,0x44,0x12,0x87,0x7b,0x11,0x61,0x84,0xd5,0xa2,0xa5,0xe3,0x02,0xac,
+/* 0x00cd90 */ 0x07,0xa3,0xa6,0x06,0x52,0x4e,0xe8,0x7f,0x91,0x99,0x7f,0x98,0xbd,0x3f,0xf4,0x59,
+/* 0x00cda0 */ 0xa2,0x09,0x6c,0x75,0xa6,0xea,0x56,0xdd,0x61,0x52,0x1f,0x5b,0x3d,0x5a,0xda,0x87,
+/* 0x00cdb0 */ 0xaf,0x91,0xfa,0x38,0xed,0xd3,0x40,0xf7,0x87,0x4b,0x86,0x2d,0x5c,0xff,0x15,0xe2,
+/* 0x00cdc0 */ 0x9f,0xea,0xd1,0xc7,0xd7,0x70,0xde,0xfc,0xc3,0xae,0x16,0xf8,0x09,0xfa,0x7c,0xad,
+/* 0x00cdd0 */ 0x7d,0x50,0xd8,0x00,0x2b,0xc1,0x5b,0x4c,0x28,0xf7,0x8d,0xf0,0x08,0xf8,0xe5,0x1d,
+/* 0x00cde0 */ 0x4c,0xda,0x0c,0x67,0x60,0xbd,0xb3,0xd7,0xc0,0x29,0x6b,0x26,0xe8,0xbf,0x5a,0xf4,
+/* 0x00cdf0 */ 0x20,0x4c,0xef,0x21,0x2b,0x16,0x66,0x1f,0xa0,0x97,0x5e,0x42,0x87,0x14,0x3b,0xab,
+/* 0x00ce00 */ 0xcc,0x22,0x82,0x97,0xc0,0xac,0x63,0x5d,0x38,0xa5,0xff,0xda,0x4d,0xf8,0xfb,0x93,
+/* 0x00ce10 */ 0xed,0x3f,0x8f,0x99,0x5c,0x3d,0xf1,0x02,0xbc,0x0f,0x5e,0xc5,0x0e,0x26,0x60,0x47,
+/* 0x00ce20 */ 0x4c,0x4f,0xb4,0x54,0xea,0xa3,0xc3,0xb3,0x87,0x39,0x22,0x76,0x42,0x77,0xe2,0x53,
+/* 0x00ce30 */ 0x51,0x7d,0x9e,0x1f,0xcd,0xe6,0xbf,0x74,0xed,0x36,0x73,0x01,0x55,0x85,0x71,0xf5,
+/* 0x00ce40 */ 0x06,0xe8,0xd7,0x2c,0x87,0x84,0x57,0xe9,0x00,0xe9,0x63,0x4a,0x81,0x5a,0xb0,0x83,
+/* 0x00ce50 */ 0x34,0xc6,0x2d,0xfb,0xa4,0x26,0xd5,0x20,0xa7,0xde,0x0e,0xe6,0xc1,0x5f,0xfb,0x6c,
+/* 0x00ce60 */ 0x1c,0x26,0x3f,0xc2,0xf5,0x7a,0x5c,0xe4,0xb5,0xef,0xc5,0x8b,0xfa,0xd0,0xeb,0x15,
+/* 0x00ce70 */ 0x2e,0x83,0x2f,0x07,0x9b,0xb4,0x0f,0x76,0x07,0x92,0x9f,0x8a,0xeb,0xf8,0xeb,0x48,
+/* 0x00ce80 */ 0x16,0xfe,0x8a,0xd1,0xf9,0x90,0x05,0xcf,0x60,0x99,0x95,0xfd,0xba,0x1d,0x62,0x7e,
+/* 0x00ce90 */ 0x0e,0xc2,0x02,0xf1,0x36,0xf8,0x67,0xed,0x83,0x2b,0xc2,0x54,0x70,0x92,0xce,0x99,
+/* 0x00cea0 */ 0xb4,0xa5,0x11,0x74,0x1b,0x79,0x3b,0x46,0xfe,0x61,0x30,0x13,0x7f,0x2d,0x97,0xf6,
+/* 0x00ceb0 */ 0xea,0x86,0x81,0x4f,0xa0,0x5f,0x41,0xb7,0x72,0x80,0xed,0x0f,0x77,0x0a,0x4f,0xb0,
+/* 0x00cec0 */ 0x8d,0x22,0x96,0x7a,0xac,0x2e,0xd0,0xa9,0xd5,0xfa,0xd0,0x5e,0xba,0x49,0x36,0x0e,
+/* 0x00ced0 */ 0xea,0xbf,0xc9,0xe7,0x3f,0xff,0x3b,0x3d,0xf0,0xa1,0xed,0x4c,0xed,0xa5,0xd2,0xef,
+/* 0x00cee0 */ 0x51,0x59,0x66,0x88,0xae,0x1a,0x73,0x47,0x3a,0x07,0x6a,0x63,0xcd,0x7b,0xd9,0x25,
+/* 0x00cef0 */ 0xbd,0x6a,0x98,0x96,0x1b,0x7f,0xe1,0xe9,0xc0,0x08,0x90,0xc2,0x85,0xe7,0x2a,0xfd,
+/* 0x00cf00 */ 0x1e,0xab,0x97,0xce,0xb4,0x74,0x82,0x65,0xf9,0x36,0x01,0xba,0xa7,0x45,0x11,0x3a,
+/* 0x00cf10 */ 0x96,0x8d,0x83,0x5f,0xe3,0xfc,0x90,0x94,0xaf,0x17,0xf5,0xfd,0x3c,0x34,0x9e,0x97,
+/* 0x00cf20 */ 0x3e,0x1c,0x6a,0x99,0xc8,0xcb,0xcd,0x37,0xd2,0xab,0xd4,0x65,0x4c,0xf8,0xb0,0x4b,
+/* 0x00cf30 */ 0x5b,0xdd,0x23,0xb9,0x4c,0x74,0x59,0xd7,0xdc,0x4c,0x1a,0x66,0xf0,0x5f,0x57,0x74,
+/* 0x00cf40 */ 0xfc,0x15,0x9b,0x80,0xbf,0xe8,0x7d,0x56,0x6e,0x83,0x45,0x98,0xb5,0x20,0xce,0x76,
+/* 0x00cf50 */ 0xc5,0xaa,0xb8,0xe1,0x24,0xa6,0xbb,0xc1,0x11,0x78,0x53,0xcf,0xa1,0x4a,0x7e,0x2a,
+/* 0x00cf60 */ 0x5a,0x90,0xff,0x6a,0x67,0x8e,0xa3,0x1d,0x8c,0x71,0xe6,0x52,0xd0,0x25,0x8c,0xed,
+/* 0x00cf70 */ 0xfa,0x8e,0xfa,0xaf,0x54,0x10,0xa4,0x77,0x83,0x07,0xfe,0xea,0x58,0x19,0x0f,0x3a,
+/* 0x00cf80 */ 0x52,0x7d,0xce,0x15,0xe7,0x7f,0x08,0xd8,0x71,0x7a,0x6d,0x8e,0xca,0xd7,0x45,0xe8,
+/* 0x00cf90 */ 0xbf,0xd2,0xf9,0x2f,0x23,0x5b,0x35,0xd4,0xe3,0x63,0x2d,0x4f,0xe6,0xc4,0xe6,0xde,
+/* 0x00cfa0 */ 0x62,0xfd,0x0f,0x1b,0xb1,0x3b,0xab,0xe5,0x9e,0xf4,0x3e,0xcb,0x8a,0xf2,0x3f,0x64,
+/* 0x00cfb0 */ 0x7e,0x95,0x6d,0xbc,0x82,0xdb,0xed,0xdc,0x25,0xcb,0x8b,0xd3,0x7f,0xb9,0x19,0xc8,
+/* 0x00cfc0 */ 0x1a,0x60,0x69,0x90,0x8e,0xe3,0x89,0x4b,0xc7,0xb3,0xfa,0x14,0xf4,0x3f,0xec,0xea,
+/* 0x00cfd0 */ 0xd9,0xc5,0x2f,0xfd,0x90,0xbd,0xa2,0xb0,0x8b,0xa3,0x2d,0xc8,0xbe,0xe7,0xbb,0xfa,
+/* 0x00cfe0 */ 0x1f,0x2e,0x2c,0xe1,0x43,0xa6,0x8d,0x1f,0x28,0x05,0x60,0x9e,0x4c,0xdd,0x62,0xfc,
+/* 0x00cff0 */ 0x0f,0xf9,0x25,0xcc,0x64,0x5f,0x70,0x93,0x8e,0xb6,0x6e,0x25,0x1c,0xe9,0x8b,0xd3,
+/* 0x00d000 */ 0x7f,0x71,0xd9,0x17,0xab,0x5f,0x40,0x5b,0x06,0xa5,0xf9,0xc2,0x09,0xaf,0x91,0x6d,
+/* 0x00d010 */ 0x78,0x09,0x66,0x13,0x61,0x93,0xe1,0x2f,0x23,0x90,0x74,0x35,0xa5,0xf4,0x0d,0x1c,
+/* 0x00d020 */ 0xc7,0x79,0x9f,0x69,0x4e,0xfc,0x45,0x16,0x66,0x3e,0x38,0x76,0x74,0x86,0xcb,0xd3,
+/* 0x00d030 */ 0x0a,0x19,0x14,0xa7,0xff,0xca,0xce,0x69,0xd7,0xcf,0xfd,0xd0,0x84,0xa5,0xad,0x90,
+/* 0x00d040 */ 0xfe,0xeb,0x70,0x96,0xb6,0x2b,0x9d,0xff,0x4a,0x6b,0x39,0xb7,0xb2,0xdd,0x51,0x40,
+/* 0x00d050 */ 0xff,0xa5,0x4e,0x7c,0x01,0x5a,0x51,0x9d,0x7a,0x42,0xd1,0x5b,0x1c,0xac,0xa5,0x36,
+/* 0x00d060 */ 0xa3,0x4f,0x6e,0xfc,0xb5,0x70,0x22,0x11,0x16,0x91,0xd9,0x16,0xeb,0xba,0x98,0x8b,
+/* 0x00d070 */ 0x23,0x9b,0xf9,0x5d,0xf4,0x5f,0x15,0xff,0x5f,0xfd,0x57,0xa9,0xce,0x7f,0x95,0x87,
+/* 0x00d080 */ 0x97,0xe9,0x2d,0x52,0x36,0x46,0x9b,0x24,0xff,0x70,0x42,0xe0,0x6e,0xa3,0x88,0xec,
+/* 0x00d090 */ 0x42,0x4b,0x3a,0xed,0x85,0x13,0x8c,0xd8,0xd2,0xef,0xe4,0x7f,0x48,0x37,0xe4,0x17,
+/* 0x00d0a0 */ 0x32,0x31,0x1a,0x4a,0xeb,0x53,0xd8,0xff,0xb0,0x0e,0xf0,0x40,0x63,0xfc,0x17,0xd2,
+/* 0x00d0b0 */ 0xe9,0x98,0x12,0x4e,0xc7,0xa4,0x33,0x62,0xc5,0xf8,0x1f,0xc2,0x34,0x23,0xbb,0x0c,
+/* 0x00d0c0 */ 0x46,0x4c,0xfe,0x2b,0xfc,0x0f,0x17,0xe3,0x8a,0xf0,0xdf,0xd0,0x40,0x5c,0x98,0xbb,
+/* 0x00d0d0 */ 0x4f,0x01,0xff,0xc3,0x06,0x6c,0x69,0xe1,0xa2,0xbc,0x99,0xf4,0x7b,0xe8,0x3e,0x53,
+/* 0x00d0e0 */ 0x47,0x0a,0x39,0xbe,0x27,0x91,0x7f,0x08,0xf2,0xf1,0x5f,0xff,0x4e,0xac,0x2a,0x0f,
+/* 0x00d0f0 */ 0xcc,0xb4,0xc5,0xc4,0xf9,0xaf,0xc9,0xf4,0x5f,0x77,0xea,0x77,0x4c,0xc8,0xb8,0xcf,
+/* 0x00d100 */ 0xf3,0x79,0x60,0x66,0x8f,0xa0,0x1a,0x9b,0xd3,0xf8,0xaf,0x41,0x53,0x2f,0xfc,0x0e,
+/* 0x00d110 */ 0xfa,0xaf,0x1d,0x49,0xb6,0x14,0xd6,0x2e,0x37,0xeb,0xd5,0x96,0x2b,0x12,0x7d,0x2a,
+/* 0x00d120 */ 0x32,0x3a,0x67,0xe5,0x1f,0xce,0x9c,0xf0,0xdb,0x25,0x85,0xdf,0x9f,0x05,0xbe,0x0a,
+/* 0x00d130 */ 0xd6,0x72,0x80,0x5f,0xfa,0x51,0x16,0x59,0x36,0x33,0xe5,0xbf,0x01,0xf2,0xf3,0x5f,
+/* 0x00d140 */ 0xb6,0x78,0x11,0xd6,0x88,0xf9,0xfc,0x0f,0xd3,0x6c,0x0f,0x03,0x7a,0x92,0xe1,0x66,
+/* 0x00d150 */ 0xda,0xa2,0xee,0xcf,0x37,0x4e,0x13,0xf8,0x4b,0xa4,0x68,0x0b,0xa6,0xd1,0x5e,0x28,
+/* 0x00d160 */ 0xe2,0x18,0xd6,0x2b,0x82,0xc5,0xcd,0x1c,0x88,0x85,0x50,0xc4,0x3b,0x66,0x60,0x34,
+/* 0x00d170 */ 0xc7,0xb0,0x9c,0x51,0x2c,0xac,0x22,0x1f,0xff,0xb5,0x5e,0x2b,0x33,0x44,0x0d,0x9a,
+/* 0x00d180 */ 0xb4,0xb8,0x44,0x46,0x34,0x70,0xa0,0xba,0x92,0x93,0x89,0xd3,0xdd,0xc4,0xf4,0x55,
+/* 0x00d190 */ 0x52,0x00,0x7f,0xcd,0x8b,0xa1,0x94,0x0a,0xc9,0xcc,0x2f,0x81,0xe6,0x36,0xf0,0x89,
+/* 0x00d1a0 */ 0x6a,0xa0,0xad,0x4f,0xd0,0xec,0xf4,0xf9,0xd9,0x9c,0xf2,0xdf,0x00,0x3a,0xfe,0x92,
+/* 0x00d1b0 */ 0x74,0xfc,0x45,0x37,0x5d,0x2c,0xf8,0x5c,0xc7,0x56,0xfc,0x92,0xea,0x6a,0x17,0x3e,
+/* 0x00d1c0 */ 0x42,0xd7,0xfc,0x8b,0xcf,0xe5,0xac,0x08,0x96,0xf0,0xdf,0x48,0xc3,0x05,0x29,0x82,
+/* 0x00d1d0 */ 0xe6,0xcb,0x54,0x4b,0x23,0x5e,0xdd,0xf3,0xe3,0x38,0x98,0x70,0xc9,0xa0,0x6c,0x96,
+/* 0x00d1e0 */ 0xe5,0xf4,0xdf,0x48,0x2f,0xc4,0x2c,0x3d,0x0a,0x9b,0xf0,0xe1,0xf0,0xfd,0xa0,0x7c,
+/* 0x00d1f0 */ 0xcc,0xfb,0x19,0xbe,0x6c,0xf4,0x11,0x9f,0xc9,0xe6,0xbf,0x0a,0xfa,0x1f,0xfe,0x1d,
+/* 0x00d200 */ 0xe4,0x97,0xe4,0xbb,0xda,0xe0,0xa7,0x2c,0x6d,0x63,0x90,0x5f,0xfa,0x45,0x51,0xfe,
+/* 0x00d210 */ 0x87,0xe5,0xe9,0x40,0xcc,0xfb,0x98,0xf2,0x16,0x98,0x1d,0x24,0x6d,0x8e,0x0f,0xb3,
+/* 0x00d220 */ 0x6a,0xb1,0xb5,0xc1,0xc7,0x8a,0xf7,0x3f,0xe4,0x1b,0xfb,0x52,0x77,0xcc,0x5c,0xe7,
+/* 0x00d230 */ 0xd5,0xe8,0xee,0x7d,0x55,0xee,0x7d,0x4b,0x41,0xff,0x43,0x7e,0x62,0x7f,0x10,0x38,
+/* 0x00d240 */ 0xcf,0xcb,0xac,0xbe,0xcc,0x3f,0x24,0x72,0xde,0x0e,0x26,0x2e,0x15,0xd0,0x7f,0x75,
+/* 0x00d250 */ 0xf7,0x54,0x19,0x2d,0xdb,0x98,0x11,0x07,0x87,0xc9,0xc2,0x57,0xa9,0x3e,0xe9,0x79,
+/* 0x00d260 */ 0x4d,0x14,0x29,0xd8,0x8a,0xf1,0x3f,0x7c,0x3a,0xc1,0x7f,0xd1,0xbd,0x0d,0xcf,0x36,
+/* 0x00d270 */ 0x84,0xe3,0xa6,0xcb,0xe9,0x7d,0xa4,0xc9,0xfd,0x0f,0x4d,0x3c,0x98,0xaa,0x83,0xa3,
+/* 0x00d280 */ 0x7f,0x29,0xef,0x81,0x97,0x53,0x7d,0xbe,0x14,0x33,0x37,0xdb,0xb9,0xf5,0x5f,0x73,
+/* 0x00d290 */ 0xd2,0xb2,0xce,0xf6,0x43,0xb7,0x48,0xbf,0x87,0xd4,0xb0,0xcc,0xc6,0x64,0x9f,0x6c,
+/* 0x00d2a0 */ 0x1f,0xf2,0xc2,0xfc,0x97,0xa2,0xd7,0xa5,0x02,0x8f,0xd6,0x59,0x07,0xf9,0x38,0x9d,
+/* 0x00d2b0 */ 0xce,0x90,0x42,0xf6,0x38,0x4d,0xf8,0x6f,0xc8,0xee,0x7c,0xd9,0x6b,0xf4,0xa1,0xb0,
+/* 0x00d2c0 */ 0x34,0x24,0x52,0xc6,0xc0,0x2c,0xbd,0xe1,0x7a,0x1a,0x5b,0x76,0x11,0x3d,0x83,0xff,
+/* 0x00d2d0 */ 0xda,0x9d,0x9f,0xff,0x1a,0x5a,0xc1,0x82,0x7f,0x65,0x2d,0x23,0x4a,0xf2,0xe8,0xfe,
+/* 0x00d2e0 */ 0x72,0x66,0xe7,0x65,0x93,0xfa,0x6f,0xdc,0x22,0xf5,0xe7,0x2c,0xc3,0xc2,0x27,0xf4,
+/* 0x00d2f0 */ 0x77,0xcc,0x27,0xb2,0xc6,0x4e,0x33,0x28,0xf4,0x11,0x47,0x61,0x98,0x39,0x22,0xaa,
+/* 0x00d300 */ 0x96,0xa8,0xf0,0xbf,0x3a,0xb8,0x2e,0x80,0xbf,0x7e,0x0a,0xd4,0x23,0xd2,0x1e,0x7a,
+/* 0x00d310 */ 0x33,0xcb,0xc8,0x1c,0xb5,0x94,0xd5,0xb9,0x3e,0xe8,0x9f,0xa3,0x9a,0x23,0xb0,0x1a,
+/* 0x00d320 */ 0xfd,0x17,0x71,0xf8,0xba,0xf6,0x78,0x62,0x20,0x2f,0xff,0x95,0x0a,0x44,0x0f,0xcb,
+/* 0x00d330 */ 0x62,0x52,0x81,0x46,0x5f,0xd3,0x56,0x13,0x54,0x21,0xcb,0xbe,0x76,0x02,0x0a,0x9c,
+/* 0x00d340 */ 0x09,0x1d,0x17,0x2a,0xa1,0x8f,0x40,0x2b,0x80,0xbf,0x78,0x20,0xd2,0x17,0x60,0x50,
+/* 0x00d350 */ 0x8a,0x58,0x2f,0x00,0x9e,0x3d,0x12,0x61,0xe5,0x06,0x40,0xc5,0x13,0xe6,0x3a,0x2b,
+/* 0x00d360 */ 0x47,0xe2,0xb1,0x40,0x2f,0x3c,0x6f,0x2f,0xc6,0x7f,0xfe,0x3a,0x5e,0x18,0xb3,0x1c,
+/* 0x00d370 */ 0xb0,0x9d,0x54,0xa2,0x57,0x1a,0x42,0xf2,0x2e,0xa9,0x9a,0x5e,0x6a,0xd8,0x29,0xbf,
+/* 0x00d380 */ 0x66,0x0b,0xfa,0xce,0x82,0xbe,0x48,0xe9,0x73,0xcb,0xfe,0x94,0xa8,0x2c,0x3f,0x29,
+/* 0x00d390 */ 0xfe,0xfa,0x9a,0xe9,0x14,0xae,0x54,0xdd,0xc2,0xe3,0x64,0x51,0xf8,0x7b,0x31,0xe1,
+/* 0x00d3a0 */ 0x5b,0x70,0x0d,0x3e,0xe8,0x9f,0x37,0xaa,0xdc,0x02,0x5f,0x93,0x25,0x5a,0xf7,0xb0,
+/* 0x00d3b0 */ 0x5e,0x38,0xbb,0x20,0xfe,0xba,0x8e,0x3d,0xda,0xe6,0x88,0x30,0x57,0xd4,0x70,0x6f,
+/* 0x00d3c0 */ 0x48,0x5e,0x50,0x1a,0x67,0xd9,0xc5,0x61,0x79,0x9f,0xe0,0x0c,0xfe,0x41,0xf5,0x10,
+/* 0x00d3d0 */ 0x4b,0x30,0xf0,0x05,0x36,0x58,0xbc,0x49,0xf1,0x57,0x7f,0x14,0xde,0x44,0xaf,0x41,
+/* 0x00d3e0 */ 0xb7,0xe9,0x34,0x70,0x6c,0x45,0xbd,0x74,0x35,0xef,0xf6,0xd7,0x9e,0x2f,0xff,0x35,
+/* 0x00d3f0 */ 0x7d,0x70,0xcf,0x81,0x86,0x53,0x65,0xbb,0xe9,0x32,0x71,0xb8,0x08,0xfc,0xd5,0x17,
+/* 0x00d400 */ 0xf3,0xf9,0x9a,0xcb,0xee,0xae,0x98,0xea,0x07,0x4e,0x15,0x55,0x32,0xfc,0x15,0x72,
+/* 0x00d410 */ 0xfb,0xe8,0xf3,0x9a,0x02,0x02,0x58,0x75,0x48,0x77,0x42,0x4d,0x2d,0x06,0x7f,0x1d,
+/* 0x00d420 */ 0xea,0x58,0xbb,0x16,0xad,0x83,0x33,0xc5,0x4d,0xfe,0x59,0x76,0xf4,0x28,0xfc,0x4c,
+/* 0x00d430 */ 0xa4,0xb0,0xcb,0x57,0xd6,0x0e,0x9b,0xbc,0xdd,0x5b,0x66,0xc5,0x69,0x70,0xaa,0x10,
+/* 0x00d440 */ 0xfe,0x92,0xea,0x4a,0x4f,0xe0,0xab,0xb8,0x4e,0x93,0x81,0x20,0xbb,0x08,0x58,0x80,
+/* 0x00d450 */ 0xe5,0x3a,0xfa,0x2b,0xde,0x41,0x8d,0x58,0xae,0xec,0x17,0xd1,0x3b,0x4a,0x5d,0xd0,
+/* 0x00d460 */ 0xa2,0xd0,0x65,0x82,0x41,0xb3,0x02,0xf8,0x4b,0xb9,0xc6,0xe6,0x28,0x9f,0x69,0x7c,
+/* 0x00d470 */ 0xf9,0x35,0x65,0x91,0xc8,0x5a,0xf0,0x6d,0xb4,0x18,0x77,0x2f,0x95,0xc6,0x95,0x11,
+/* 0x00d480 */ 0xe5,0x19,0x96,0x7f,0x78,0x85,0x21,0xb2,0xa3,0x85,0xfc,0x37,0xae,0x33,0x6e,0x2b,
+/* 0x00d490 */ 0xec,0xfd,0x1a,0x46,0xd7,0xd1,0xa7,0xd3,0x63,0x73,0x83,0xab,0x7e,0x7e,0x3e,0x1f,
+/* 0x00d4a0 */ 0x07,0xc3,0x6a,0x5f,0x44,0x66,0x65,0x4f,0x8f,0xe7,0xe5,0xbf,0x44,0x56,0x76,0x99,
+/* 0x00d4b0 */ 0x2f,0x2e,0x6f,0x8a,0xf6,0x23,0x34,0x60,0xd9,0x7d,0x35,0x3a,0xdb,0xf5,0x96,0x5a,
+/* 0x00d4c0 */ 0x83,0x25,0x1f,0x6d,0xf1,0x2b,0x35,0x1a,0x6a,0x81,0xa7,0x41,0xb7,0x5a,0x93,0x0f,
+/* 0x00d4d0 */ 0x7f,0x25,0x83,0x37,0x09,0x67,0xbb,0x3e,0x43,0xc1,0xd0,0x5a,0xe6,0x73,0xc2,0x9e,
+/* 0x00d4e0 */ 0x85,0xc1,0x7f,0xed,0x23,0xf6,0x88,0x8b,0xf9,0x1f,0x6e,0x0a,0xd7,0x64,0xe3,0x2f,
+/* 0x00d4f0 */ 0x53,0xda,0x9e,0x64,0x25,0x0f,0x70,0x24,0x26,0x39,0xef,0x7a,0x1f,0xbf,0x0a,0x5c,
+/* 0x00d500 */ 0xe7,0xa4,0x3a,0xb3,0x85,0x3e,0xe5,0x75,0xf1,0xe9,0x56,0xf8,0x30,0x0e,0xd3,0x21,
+/* 0x00d510 */ 0x8c,0x14,0x78,0x09,0x07,0xf4,0x8c,0xc4,0x49,0xfd,0x37,0x6e,0x61,0xcf,0x1e,0xc9,
+/* 0x00d520 */ 0x27,0x8c,0xd1,0xdd,0x4d,0xfd,0x7e,0x4b,0x3c,0xb0,0x88,0x5c,0x07,0xf5,0xcc,0xf6,
+/* 0x00d530 */ 0x70,0x0c,0x5c,0x8f,0xd5,0x47,0xdc,0xad,0xc2,0x0d,0xef,0x31,0x1d,0xac,0x4d,0x8e,
+/* 0x00d540 */ 0xbf,0x10,0x0f,0xce,0x03,0x05,0x37,0xaa,0xa5,0x24,0x90,0xb0,0x3d,0xac,0x8a,0xa9,
+/* 0x00d550 */ 0x31,0x95,0x9d,0xbd,0x07,0x92,0x4e,0x11,0x93,0xe3,0x2f,0xa5,0xa9,0x59,0xde,0x11,
+/* 0x00d560 */ 0x70,0x82,0x1b,0xd3,0x1a,0x96,0xca,0x2f,0x03,0x7e,0xaa,0xef,0xb3,0x6c,0xa9,0x72,
+/* 0x00d570 */ 0x82,0xe3,0x4b,0x3d,0xeb,0x2c,0x61,0x95,0xeb,0x65,0x96,0x16,0xc4,0x5f,0xb1,0xda,
+/* 0x00d580 */ 0xf6,0x75,0xe1,0x92,0x6a,0x72,0x20,0xea,0xf0,0xa1,0x4a,0x2b,0xc3,0x56,0x3f,0xc7,
+/* 0x00d590 */ 0xd2,0x36,0x18,0x14,0x3b,0x57,0xcd,0x69,0x93,0xb6,0x0b,0x7f,0x0f,0x32,0xf5,0x5f,
+/* 0x00d5a0 */ 0xf9,0xf0,0x97,0x1b,0x37,0x73,0x41,0x19,0xa8,0x5e,0xd3,0x1c,0xf6,0x3b,0x4d,0x07,
+/* 0x00d5b0 */ 0x4c,0xb5,0x6b,0xe8,0x34,0xc8,0x4b,0x83,0x61,0x69,0x3b,0x7c,0x0d,0x74,0x16,0x89,
+/* 0x00d5c0 */ 0xbf,0x50,0xd8,0x2b,0x46,0x7a,0x5d,0xea,0x0a,0xb4,0xf5,0x39,0xb1,0xac,0xb7,0xc6,
+/* 0x00d5d0 */ 0xb5,0x82,0xae,0xb0,0xbb,0x23,0x1d,0x2e,0x97,0x4f,0x0a,0x5b,0x07,0x61,0x87,0xab,
+/* 0x00d5e0 */ 0x30,0xfe,0x62,0xd5,0x9a,0x66,0x10,0xb3,0x1a,0x1a,0x55,0x1b,0xb8,0xec,0x0b,0x8d,
+/* 0x00d5f0 */ 0xaa,0xb5,0xa8,0x9b,0x08,0x2e,0x12,0xb5,0xf3,0xb2,0x4d,0x44,0x8e,0xaa,0x45,0xe0,
+/* 0x00d600 */ 0x2f,0xd7,0x92,0x15,0xd2,0x50,0xd5,0x48,0x84,0x31,0x59,0x74,0x33,0xb0,0x21,0xf2,
+/* 0x00d610 */ 0x14,0x58,0x84,0x37,0x9d,0x0a,0x8c,0x88,0x63,0xa6,0xdf,0x33,0x6e,0x6b,0x43,0x64,
+/* 0x00d620 */ 0xac,0x50,0xfd,0x2f,0x1a,0xdc,0xc4,0x8b,0x97,0x52,0xfc,0x75,0x1f,0x38,0xe9,0xaa,
+/* 0x00d630 */ 0xfa,0xfe,0x8c,0x21,0xe1,0x02,0x38,0xe9,0x58,0x82,0x2b,0x86,0x84,0x05,0x11,0xe3,
+/* 0x00d640 */ 0xbc,0xf7,0x8f,0x59,0xf5,0xbf,0xf2,0xf2,0x5f,0x88,0x06,0x2a,0x0c,0x61,0x07,0x98,
+/* 0x00d650 */ 0x13,0x84,0xc3,0x61,0xb6,0x70,0x20,0x87,0xb4,0x16,0x84,0x96,0xd7,0x82,0xe6,0x08,
+/* 0x00d660 */ 0x8c,0xc1,0x90,0x5a,0x84,0xff,0x86,0xea,0xf6,0xd2,0x60,0x8a,0xd2,0x01,0xd4,0x36,
+/* 0x00d670 */ 0x3a,0x1f,0xc6,0x4d,0x1d,0xd8,0x3d,0x64,0x56,0xb6,0x2e,0x07,0x34,0xc0,0xa8,0x8e,
+/* 0x00d680 */ 0xf6,0xe9,0x68,0x2e,0x8a,0xff,0x5a,0xde,0x15,0x36,0x3b,0x71,0x27,0x72,0xe8,0xf8,
+/* 0x00d690 */ 0xab,0x53,0xac,0x6d,0x41,0x56,0xb8,0xde,0xdf,0x19,0xe2,0xb8,0xfb,0x28,0xee,0xcc,
+/* 0x00d6a0 */ 0x89,0xbf,0xb2,0xee,0x33,0x6a,0x62,0x85,0xc0,0xaa,0x83,0xef,0x69,0x7d,0x2d,0xcd,
+/* 0x00d6b0 */ 0xaf,0xd8,0x8e,0xc2,0xf7,0x40,0x23,0x03,0x62,0xad,0xf4,0xb6,0xdc,0x83,0xdd,0xdb,
+/* 0x00d6c0 */ 0x84,0x8b,0x59,0xfa,0xaf,0xbc,0xfe,0x1b,0x5e,0xce,0x21,0x8e,0x85,0x29,0xbc,0x7d,
+/* 0x00d6d0 */ 0x85,0xd9,0x1e,0xc2,0xa6,0x66,0xcb,0x76,0x76,0x49,0x64,0xc2,0xbd,0xc2,0xf8,0x4b,
+/* 0x00d6e0 */ 0x0f,0x5a,0x28,0x10,0xdb,0x6c,0x33,0x39,0x34,0x3a,0x4e,0xe5,0x90,0x8d,0x57,0xe5,
+/* 0x00d6f0 */ 0x33,0xc9,0x24,0xe0,0x00,0x51,0xe4,0xd1,0xfb,0x44,0x8b,0xc8,0x3f,0x3c,0x44,0xe6,
+/* 0x00d700 */ 0x11,0xe4,0x83,0x0b,0xab,0x7e,0x03,0x68,0x10,0xb3,0xea,0x2d,0xcf,0xc7,0xe1,0x34,
+/* 0x00d710 */ 0xf0,0x42,0x70,0x27,0x91,0x62,0xde,0xeb,0x74,0x21,0xab,0x9d,0xcc,0x7f,0x5e,0x30,
+/* 0x00d720 */ 0x82,0xa1,0xef,0xcf,0xb7,0x96,0xb0,0xc3,0xf3,0x41,0xa4,0x38,0x28,0x22,0x0b,0xb9,
+/* 0x00d730 */ 0xa3,0x14,0x88,0x99,0x41,0x40,0x71,0x85,0x19,0x45,0x02,0x03,0x93,0xe1,0x2f,0x23,
+/* 0x00d740 */ 0x78,0x13,0xcc,0x53,0x11,0x86,0x95,0x1c,0x0e,0xb8,0x5a,0xe0,0x27,0xe4,0xb7,0x68,
+/* 0x00d750 */ 0x9e,0x56,0xb6,0xc1,0x3c,0x0d,0x6c,0x22,0x35,0x7e,0x3a,0x51,0x8f,0xab,0x9b,0xd4,
+/* 0x00d760 */ 0x2c,0xff,0xc3,0xb2,0x89,0xb9,0x85,0x7f,0x61,0x5a,0x8f,0x76,0xa1,0x84,0x7e,0xaa,
+/* 0x00d770 */ 0xd1,0x27,0xaf,0x11,0x3e,0x23,0xd7,0x82,0x8b,0x63,0x72,0xbb,0x50,0x01,0xdf,0x21,
+/* 0x00d780 */ 0x0f,0xea,0x7d,0xde,0xd5,0x0a,0xfb,0xcf,0x8f,0x32,0x82,0x98,0x4c,0x1b,0x81,0x37,
+/* 0x00d790 */ 0xf4,0x87,0x72,0x09,0x8f,0x89,0x8d,0x89,0x3e,0x0d,0x1a,0x9f,0x7b,0x33,0xf9,0xaf,
+/* 0x00d7a0 */ 0xbc,0xfe,0xf3,0x11,0x79,0x58,0x68,0x00,0xdd,0x5b,0xeb,0x63,0xf2,0x69,0xe9,0x1e,
+/* 0x00d7b0 */ 0xf0,0x3e,0x27,0xc2,0x40,0x1f,0x78,0x97,0xd4,0x47,0xe8,0x9f,0xc1,0x84,0x2a,0xf5,
+/* 0x00d7c0 */ 0x79,0xf1,0x97,0x98,0xba,0x3f,0x22,0xf2,0xfa,0xeb,0xc8,0xc7,0xc0,0x1e,0x45,0x7f,
+/* 0x00d7d0 */ 0x4b,0x37,0x9c,0x1b,0x81,0x7d,0x48,0xfa,0x47,0x58,0x19,0xfe,0xd8,0x65,0x27,0x92,
+/* 0x00d7e0 */ 0xcf,0xbf,0x80,0x22,0x32,0x7b,0x7e,0xfc,0x95,0x0a,0x08,0xd2,0x4a,0x1e,0xa1,0x9d,
+/* 0x00d7f0 */ 0x55,0x3c,0xb5,0x05,0x3e,0x0d,0x36,0x2a,0x35,0x43,0xf4,0x52,0xb0,0x72,0x13,0xb6,
+/* 0x00d800 */ 0x07,0xb9,0x57,0xb0,0xf1,0x3d,0x93,0xe2,0xaf,0x1e,0x36,0xba,0x41,0x09,0x26,0xfd,
+/* 0x00d810 */ 0xaa,0x8a,0x11,0x70,0x9c,0x30,0xf9,0xd9,0x6a,0x65,0x85,0xa5,0xe0,0xc5,0x60,0x84,
+/* 0x00d820 */ 0x59,0xfb,0x02,0x60,0xd4,0x7d,0x9b,0x14,0x7f,0x8d,0xe2,0x26,0x76,0x2c,0xdf,0x0a,
+/* 0x00d830 */ 0x8e,0x41,0xcf,0xa0,0xac,0x48,0x8f,0xd1,0xd1,0xf4,0xb6,0x66,0xa9,0x14,0x5e,0x57,
+/* 0x00d840 */ 0x8f,0x63,0xcf,0x48,0x77,0x44,0x72,0xc3,0x0f,0x40,0x5f,0x26,0xfe,0x12,0xb3,0xbe,
+/* 0x00d850 */ 0x87,0xe2,0xaf,0x71,0x26,0x2c,0x22,0xd2,0xb3,0xc0,0x3a,0xf8,0xbb,0xd8,0x3c,0xfa,
+/* 0x00d860 */ 0xbc,0x5c,0x63,0xb8,0x9a,0x22,0x32,0x29,0x4e,0xb7,0x7c,0x4d,0xcb,0x2d,0xbb,0x53,
+/* 0x00d870 */ 0xff,0xe9,0x64,0xf8,0xcb,0x74,0xd3,0xc5,0x69,0xaf,0x6f,0xc1,0xa7,0x1b,0xeb,0xb5,
+/* 0x00d880 */ 0x55,0x57,0x40,0x23,0x53,0x84,0x31,0x6a,0x6c,0x81,0xca,0xca,0x7e,0x95,0xc6,0x04,
+/* 0x00d890 */ 0xc3,0xe4,0xb9,0x00,0xfe,0xda,0xdf,0xec,0x68,0x45,0x21,0x78,0xc1,0xfb,0x06,0x5d,
+/* 0x00d8a0 */ 0xbf,0x2c,0x14,0x40,0x81,0xce,0x58,0xed,0x15,0xe9,0x65,0x38,0x4b,0xec,0x03,0x0e,
+/* 0x00d8b0 */ 0x9f,0xb4,0xd9,0x3f,0x5c,0x94,0xff,0x46,0x0f,0x70,0x00,0xf6,0x3d,0x25,0x2f,0x2b,
+/* 0x00d8c0 */ 0x8e,0xf3,0x68,0x3b,0xdc,0x0b,0x42,0xa4,0x36,0x44,0x97,0x2d,0x27,0x39,0xe8,0x73,
+/* 0x00d8d0 */ 0x44,0x38,0x64,0x28,0x06,0x7f,0xf5,0xd0,0x87,0x89,0x80,0x47,0x03,0xbb,0x98,0xdf,
+/* 0x00d8e0 */ 0xb2,0x52,0xb1,0x97,0x29,0xc2,0x3a,0xe8,0xb2,0x25,0x2a,0x7d,0x40,0x8d,0x75,0xb1,
+/* 0x00d8f0 */ 0xba,0xc0,0x59,0xf8,0x2b,0x67,0xfe,0xe1,0x01,0xd0,0x47,0xdc,0x44,0xb8,0x24,0x9e,
+/* 0x00d900 */ 0x11,0x3d,0x47,0xe4,0x1e,0xdb,0x5e,0x3d,0x5b,0x83,0xdb,0x6a,0x99,0x3c,0xa4,0x3b,
+/* 0x00d910 */ 0x32,0x01,0x7f,0xe5,0xf6,0x9f,0xe7,0xcf,0x0b,0x0b,0x23,0xe0,0x67,0x70,0x09,0xb1,
+/* 0x00d920 */ 0xf8,0x28,0xe0,0xbd,0x69,0xa2,0xdb,0x78,0xd6,0x72,0x93,0x0e,0xbd,0xd5,0xb1,0xd4,
+/* 0x00d930 */ 0x7e,0x3e,0x85,0xbf,0x2a,0x6f,0xfb,0xb3,0xc7,0x97,0xe1,0xad,0xd1,0x47,0x07,0xd1,
+/* 0x00d940 */ 0x22,0x9f,0x1c,0x15,0xbe,0xbd,0xe3,0x04,0x1d,0x4d,0x33,0x47,0x85,0x43,0xe8,0x03,
+/* 0x00d950 */ 0xc0,0x84,0x96,0x55,0xd9,0xfe,0x36,0x11,0xf4,0x1b,0x0a,0xbb,0x9e,0x34,0xf0,0x57,
+/* 0x00d960 */ 0x42,0xdb,0xc5,0xbc,0x35,0xba,0xf6,0x43,0x96,0x8a,0xe2,0xf0,0xb9,0x42,0x8e,0x8b,
+/* 0x00d970 */ 0x62,0xa7,0xc9,0xc1,0x5a,0xd8,0x21,0xa2,0x23,0xe6,0xa2,0x7d,0x12,0x59,0x8b,0x86,
+/* 0x00d980 */ 0xfe,0x2b,0x94,0xa9,0x8b,0xd4,0x03,0xab,0x31,0xd7,0xc5,0x50,0x00,0xfc,0x94,0x8e,
+/* 0x00d990 */ 0x0b,0x7a,0x57,0xfd,0x22,0xab,0xaa,0x66,0x96,0x21,0x2b,0xaf,0x96,0x9e,0xa1,0x9d,
+/* 0x00d9a0 */ 0xc0,0x5f,0x62,0xae,0xfc,0x43,0xc6,0x8d,0xae,0xec,0x81,0xad,0x2a,0xdd,0xa5,0x34,
+/* 0x00d9b0 */ 0x23,0xc2,0x5a,0x44,0x9d,0xf7,0x14,0x99,0xa3,0xaf,0x29,0x8d,0xff,0x32,0xf4,0x5f,
+/* 0x00d9c0 */ 0x76,0xee,0x7f,0x98,0xca,0x0e,0x3d,0x92,0x46,0x2a,0xd9,0x02,0xc2,0x71,0xb8,0x30,
+/* 0x00d9d0 */ 0x36,0x23,0x28,0xc4,0xa1,0x86,0x3c,0xf4,0x53,0x55,0xac,0x88,0xb9,0xc7,0xc8,0xd4,
+/* 0x00d9e0 */ 0xd5,0xf1,0x4e,0x3c,0x8f,0xff,0xe1,0xea,0xa4,0xb1,0xc3,0x95,0xc0,0x61,0xd6,0x72,
+/* 0x00d9f0 */ 0xde,0xf2,0x8d,0xed,0x5b,0x7c,0x49,0xe5,0xe8,0x98,0x5d,0x5a,0x74,0xa4,0x22,0xed,
+/* 0x00da00 */ 0xe1,0xe6,0xc2,0x5f,0xec,0x0c,0x64,0x66,0xe2,0xef,0xa1,0xff,0x69,0x8c,0xcb,0x88,
+/* 0x00da10 */ 0xe4,0xe0,0x3b,0x71,0x30,0x0a,0xd9,0x8b,0x54,0xef,0x46,0x37,0xf4,0xb2,0x71,0xc9,
+/* 0x00da20 */ 0xf7,0xe7,0xc3,0xbc,0xfe,0x87,0x8e,0x13,0x90,0xdd,0x1f,0xd4,0xf0,0xc3,0x8b,0xe4,
+/* 0x00da30 */ 0x2a,0x71,0x0f,0xbb,0xf6,0xc1,0x13,0x68,0x3f,0xbd,0x2d,0x6e,0x7a,0x9f,0xe9,0x14,
+/* 0x00da40 */ 0x17,0xc9,0xc5,0x7f,0x4d,0xd0,0x7f,0x75,0x71,0xb6,0x8b,0x1d,0xa7,0x3f,0xc0,0x41,
+/* 0x00da50 */ 0xf1,0xfa,0x16,0xb3,0x31,0x52,0x0c,0x1f,0x06,0xdd,0x20,0x74,0x02,0xff,0x95,0x53,
+/* 0x00da60 */ 0xff,0xf5,0x0b,0xa6,0xed,0x7a,0xca,0x7a,0x16,0xbf,0x4e,0xe6,0xc5,0x57,0x3e,0x05,
+/* 0x00da70 */ 0x3f,0xc2,0xbf,0x0f,0xef,0x8c,0x95,0x3d,0xc5,0x18,0xb1,0xb0,0x3d,0xa3,0xf3,0xb8,
+/* 0x00da80 */ 0x81,0xbf,0xa6,0xae,0x4a,0xe1,0x2f,0xc6,0x6d,0x31,0xb6,0x0b,0xbf,0xc3,0xee,0x4f,
+/* 0x00da90 */ 0x9d,0x10,0x45,0xfd,0x14,0x76,0xdd,0xb3,0x20,0x70,0x02,0x5c,0x57,0x94,0x41,0xb9,
+/* 0x00daa0 */ 0x8e,0xfb,0x6f,0xd4,0xa5,0xc0,0x5a,0x69,0x9a,0xfe,0x6b,0xe2,0xbc,0x7a,0x22,0x71,
+/* 0x00dab0 */ 0x18,0xc2,0x16,0x29,0x5d,0xb7,0x25,0xde,0x50,0x1a,0xb5,0x8a,0x3a,0x3a,0x55,0x5e,
+/* 0x00dac0 */ 0xcd,0xe6,0x19,0x0d,0xfd,0x97,0x98,0x6b,0x7e,0xbe,0xca,0xe7,0x5e,0x33,0x83,0xed,
+/* 0x00dad0 */ 0x75,0xd8,0x8d,0x84,0xcd,0x56,0x86,0xb6,0xba,0x1f,0x90,0x64,0xe6,0x48,0x1f,0x93,
+/* 0x00dae0 */ 0x1f,0x90,0x12,0xa7,0x34,0x55,0x06,0xfe,0xc2,0x19,0xf9,0xf3,0x30,0xb9,0xee,0xf0,
+/* 0x00daf0 */ 0x35,0x65,0x06,0x78,0x17,0xb0,0xb2,0x95,0x74,0xa1,0xdf,0x04,0xe7,0xeb,0x2d,0xdd,
+/* 0x00db00 */ 0xce,0x7b,0xb5,0xe7,0xda,0x52,0x79,0x17,0x86,0xfe,0x0b,0xe4,0xf5,0xdf,0x90,0x46,
+/* 0x00db10 */ 0xe1,0xe3,0xe0,0x75,0x56,0xf0,0xba,0xb9,0xe4,0x10,0xd8,0xa4,0xcd,0x8a,0x51,0x78,
+/* 0x00db20 */ 0xfb,0xb8,0xa9,0x3b,0x5c,0xc5,0x18,0xb1,0x7b,0x92,0xfe,0x1b,0x46,0xfe,0x61,0xae,
+/* 0x00db30 */ 0x71,0xca,0xb2,0x35,0x8e,0x48,0x75,0x0f,0xfd,0x80,0x04,0x40,0x24,0xee,0x6a,0x1c,
+/* 0x00db40 */ 0x90,0x41,0x40,0xe5,0xd5,0x0f,0xd7,0xd3,0x57,0xc2,0x75,0xc4,0x5c,0x67,0x4e,0xce,
+/* 0x00db50 */ 0xa2,0x05,0xf4,0x5f,0x75,0x2c,0x68,0x97,0xff,0x6c,0xaa,0xef,0x90,0x63,0xc2,0x76,
+/* 0x00db60 */ 0xba,0xbe,0x37,0xe8,0xa9,0x89,0x03,0xc0,0x43,0x66,0xa4,0x59,0x23,0x16,0xa1,0xff,
+/* 0x00db70 */ 0xaa,0x32,0x2e,0x75,0xd8,0x92,0x97,0x22,0x28,0x2f,0xff,0x95,0x63,0x9f,0x69,0x62,
+/* 0x00db80 */ 0x7c,0x0a,0x05,0xc5,0xd5,0x80,0x99,0x72,0xcb,0x3b,0xe8,0x25,0x23,0xdb,0x30,0xce,
+/* 0x00db90 */ 0x4b,0x33,0xa7,0x75,0x4e,0xfc,0x2e,0x2d,0x0f,0xff,0xe5,0xc0,0x7b,0x14,0xb3,0x53,
+/* 0x00dba0 */ 0xeb,0x05,0x11,0xc6,0x76,0x7d,0xfe,0x50,0xa2,0x10,0x33,0x38,0x03,0x77,0xa5,0x3a,
+/* 0x00dbb0 */ 0xaf,0x4c,0xe9,0xbf,0xb2,0x7d,0x18,0x8c,0xa0,0x9a,0xbb,0x2e,0x20,0xe6,0x4c,0x8e,
+/* 0x00dbc0 */ 0x32,0xea,0x40,0x75,0x9a,0x72,0xd6,0xff,0x72,0xe5,0xf4,0x3f,0x3c,0x40,0xb7,0x2b,
+/* 0x00dbd0 */ 0xa8,0x07,0x8a,0x3c,0x6d,0xa3,0x8c,0x25,0xc8,0x75,0x28,0xec,0x92,0x35,0x0e,0xb6,
+/* 0x00dbe0 */ 0x18,0xba,0xa4,0xac,0xfa,0xcb,0xa3,0x39,0xfd,0x0f,0xf7,0x83,0x06,0x20,0x13,0x1b,
+/* 0x00dbf0 */ 0x85,0x5d,0xc0,0x03,0x10,0xb1,0x0d,0xa3,0x28,0x36,0x2e,0x45,0x5d,0x77,0x83,0xee,
+/* 0x00dc00 */ 0x54,0x67,0x5b,0x61,0xfe,0xab,0x65,0xd9,0x87,0xe0,0x1b,0x3d,0x93,0x70,0x04,0xfc,
+/* 0x00dc10 */ 0xc5,0xd9,0xb4,0xb4,0x34,0xbc,0xd4,0xa0,0xb4,0x12,0xcc,0xe3,0xe4,0xfa,0xaf,0x11,
+/* 0x00dc20 */ 0xf0,0x29,0xb8,0x1f,0xcb,0x74,0x77,0x81,0x8e,0x82,0xf9,0xb8,0xbc,0x45,0x18,0x31,
+/* 0x00dc30 */ 0xbd,0x87,0x17,0xf1,0x16,0x70,0x52,0xad,0x67,0xdf,0xec,0xcc,0xce,0x3f,0xcc,0xa5,
+/* 0x00dc40 */ 0xff,0x82,0x21,0xba,0xb0,0x23,0x8a,0x2b,0xc1,0x1e,0xb6,0x61,0xd0,0x5b,0x1c,0xc0,
+/* 0x00dc50 */ 0xc5,0x5a,0x42,0xf8,0x4d,0xd6,0x47,0x4d,0x74,0x9e,0x54,0xff,0x45,0x61,0x17,0xae,
+/* 0x00dc60 */ 0x09,0x73,0xbb,0xf8,0xf3,0xd8,0xa5,0x70,0x27,0x0d,0x17,0x66,0xb6,0x1b,0x70,0x8b,
+/* 0x00dc70 */ 0xc2,0x6c,0xe7,0xcd,0x49,0x0b,0xca,0x53,0x79,0xfc,0x37,0xf4,0xb4,0x43,0xfa,0xfe,
+/* 0x00dc80 */ 0x94,0xe9,0x2a,0x3f,0x07,0xd7,0x4d,0x98,0x8c,0x16,0x27,0x7d,0x01,0xaa,0x75,0x01,
+/* 0x00dc90 */ 0xa0,0xf1,0xa9,0x8f,0x26,0xf3,0x3f,0x64,0x2f,0x6d,0xb9,0x22,0xfc,0x04,0x1c,0x81,
+/* 0x00dca0 */ 0x1e,0x3c,0x83,0xde,0x04,0x74,0x44,0x59,0xc8,0xf8,0x41,0x27,0x38,0xa3,0xbf,0xcf,
+/* 0x00dcb0 */ 0xc9,0xfc,0xc3,0xd1,0x3c,0xfe,0x1b,0x3c,0x60,0x45,0x96,0x2b,0xc2,0xcb,0x7e,0x89,
+/* 0x00dcc0 */ 0x0d,0x47,0x8e,0x0b,0xe0,0x0b,0xc2,0x03,0x7a,0xc9,0xc4,0x89,0xcb,0xe4,0xa7,0xce,
+/* 0x00dcd0 */ 0x12,0x7d,0x3e,0xcc,0x89,0xbf,0x4e,0x03,0x4f,0xa2,0xc5,0x23,0xca,0x44,0xf0,0x4d,
+/* 0x00dce0 */ 0x3d,0x0d,0x93,0x7d,0x3c,0x80,0xd7,0xef,0x2e,0x8c,0xbf,0xa2,0xc0,0x0f,0x22,0x44,
+/* 0x00dcf0 */ 0xfa,0x6a,0xeb,0x19,0x7c,0x08,0xec,0xec,0x09,0xc5,0xbd,0xd3,0x1d,0x2f,0x00,0x37,
+/* 0x00dd00 */ 0x99,0xae,0xd2,0x4b,0x7d,0x60,0x17,0x71,0xa9,0x66,0x17,0x38,0x6b,0x74,0x56,0xf5,
+/* 0x00dd10 */ 0x71,0x91,0xb6,0xaf,0x13,0xfb,0x8d,0x24,0x0d,0xf1,0x45,0xc8,0xf7,0xd8,0x27,0x41,
+/* 0x00dd20 */ 0xbf,0xe2,0x1c,0x40,0x1e,0xf8,0x03,0x35,0x4d,0x66,0x6e,0x2c,0x64,0x99,0xf8,0x0b,
+/* 0x00dd30 */ 0x28,0x33,0x26,0x98,0x1c,0x8e,0xeb,0x7b,0x7e,0x96,0x5f,0xf7,0x5b,0x30,0x9b,0xa0,
+/* 0x00dd40 */ 0x51,0x6b,0xa3,0x21,0xcb,0xb5,0xb2,0x33,0x34,0x7b,0x2c,0xd4,0x46,0x7f,0xa5,0x4e,
+/* 0x00dd50 */ 0xf4,0x58,0x0d,0xfc,0x05,0x72,0xe8,0xbf,0x6e,0x89,0x1f,0x33,0xdb,0x79,0x6e,0x32,
+/* 0x00dd60 */ 0xdf,0x71,0x5f,0xcc,0xdd,0xbe,0xec,0x71,0xf0,0x6e,0x64,0xf1,0x39,0xc6,0x91,0xc9,
+/* 0x00dd70 */ 0xd7,0xe8,0x25,0xb9,0xdd,0xd4,0x04,0xde,0xcd,0xe4,0xbf,0x92,0xbe,0xcd,0xa6,0x8c,
+/* 0x00dd80 */ 0x75,0x87,0x06,0xc4,0xc6,0x9e,0xe0,0x42,0x42,0x1f,0xca,0xff,0xb5,0xf7,0x2d,0xd0,
+/* 0x00dd90 */ 0x51,0x55,0x69,0xba,0xff,0x3e,0xb5,0x4f,0x72,0x2a,0x9c,0xc0,0xa9,0xa4,0x0a,0x0a,
+/* 0x00dda0 */ 0x0d,0xf6,0xa9,0xa2,0x08,0x91,0x1b,0xe9,0x4a,0x00,0xa1,0x5b,0x1b,0x4e,0x3d,0x12,
+/* 0x00ddb0 */ 0x0a,0x0d,0x52,0x90,0x10,0xd2,0x8a,0xdd,0x07,0x8c,0xca,0xdc,0xe5,0xed,0x49,0x50,
+/* 0x00ddc0 */ 0xaf,0xf6,0x5d,0x3d,0xe3,0xae,0xa2,0x82,0xc5,0xa3,0xa7,0x0b,0x44,0x07,0x67,0x31,
+/* 0x00ddd0 */ 0x76,0x61,0x3b,0x8e,0xdd,0xe3,0xdc,0xc6,0xc7,0xb4,0x3d,0x33,0xde,0xf1,0x24,0x06,
+/* 0x00dde0 */ 0x0c,0xca,0x28,0xa3,0xe8,0xe0,0x5c,0xa7,0x05,0x17,0xf4,0xd8,0x8e,0xb6,0xf4,0x6d,
+/* 0x00ddf0 */ 0xef,0x55,0x7c,0x71,0xff,0xbd,0xcf,0xa3,0x42,0x78,0x8c,0xda,0xce,0xbd,0x6b,0xcd,
+/* 0x00de00 */ 0xca,0x5e,0xb0,0xf8,0xf8,0xff,0x7f,0xef,0x3a,0xe7,0xec,0xc7,0xff,0x7f,0x7b,0xef,
+/* 0x00de10 */ 0xb3,0xcf,0x01,0xe5,0x5d,0x4f,0x45,0xec,0x0d,0x21,0x4e,0xdc,0x52,0xef,0xf0,0x2f,
+/* 0x00de20 */ 0x83,0xfe,0x9d,0x81,0x91,0xde,0xb1,0xaf,0x9c,0x4c,0x79,0x21,0xdf,0x7d,0xd2,0x3f,
+/* 0x00de30 */ 0xb2,0x47,0x8e,0x34,0x7f,0xe0,0xbb,0xc0,0xf8,0x69,0xe1,0xb1,0x23,0x93,0xde,0x94,
+/* 0x00de40 */ 0xfe,0xc6,0x78,0x61,0x27,0xb2,0xad,0xdb,0x91,0x88,0x89,0xf3,0x01,0x6e,0xbf,0x50,
+/* 0x00de50 */ 0x9c,0x3f,0xcf,0x77,0x24,0x9e,0x28,0x8b,0xf6,0xf3,0x13,0xc5,0xf6,0x5f,0x93,0xfa,
+/* 0x00de60 */ 0xa2,0xee,0xb1,0xbd,0x51,0x7e,0x38,0x7c,0x64,0x58,0x59,0x93,0x0c,0xc3,0xcb,0x7a,
+/* 0x00de70 */ 0xc4,0x98,0xd4,0xe7,0xeb,0x39,0xf2,0x53,0x69,0xde,0xf0,0x44,0x9b,0x2e,0x5d,0x32,
+/* 0x00de80 */ 0x32,0x61,0x94,0xff,0xfa,0xd0,0xe3,0x5f,0x0a,0x4a,0x06,0xb7,0x54,0xca,0x91,0x76,
+/* 0x00de90 */ 0x89,0xe7,0xac,0x9c,0x90,0x7a,0x74,0x7c,0xaa,0x6c,0xc2,0x9a,0xfc,0x1e,0xe5,0xce,
+/* 0x00dea0 */ 0xaa,0x88,0xbd,0xec,0x75,0x27,0xcc,0xe0,0x95,0x22,0xca,0xe1,0x73,0x95,0x87,0x6c,
+/* 0x00deb0 */ 0xfe,0x65,0x3a,0xfe,0x6b,0xd4,0x79,0x7a,0x75,0xaa,0xb2,0x41,0x6c,0x63,0xbb,0x22,
+/* 0x00dec0 */ 0xa5,0x60,0x87,0x85,0x9a,0xf0,0x50,0x12,0x7e,0x64,0x94,0x2d,0x29,0x9e,0xec,0xa8,
+/* 0x00ded0 */ 0xc2,0xea,0x1e,0x9c,0x60,0x07,0x30,0xa2,0xde,0x9d,0xf3,0x0f,0x1f,0xe6,0xcf,0x99,
+/* 0x00dee0 */ 0x9e,0x7e,0xc8,0xe1,0x56,0x0c,0x3c,0x74,0x1e,0x1e,0x5c,0xaf,0xfc,0x2d,0x8d,0x27,
+/* 0x00def0 */ 0x7d,0x0d,0xbe,0x07,0xe9,0x33,0x59,0xc9,0x5e,0xf6,0x7a,0x0e,0x23,0x87,0x1f,0xee,
+/* 0x00df00 */ 0xa9,0x1c,0x7d,0xfc,0xa1,0xcb,0xbf,0x46,0xaf,0x57,0x52,0xb1,0xa4,0xe5,0x2c,0x84,
+/* 0x00df10 */ 0x95,0x52,0x7f,0xc9,0x3e,0xc2,0x0a,0x9e,0xf4,0x40,0xfd,0x03,0xe2,0xb7,0x26,0xee,
+/* 0x00df20 */ 0xf1,0xb9,0xc6,0x29,0x6f,0xfd,0xeb,0xb8,0xfb,0xfe,0xd7,0x93,0xa7,0x9f,0xcb,0x27,
+/* 0x00df30 */ 0x02,0x4e,0xfe,0x19,0xa9,0x89,0x6f,0xfb,0xe2,0x0c,0x25,0x59,0xf5,0xc5,0xe9,0x7d,
+/* 0x00df40 */ 0x99,0x17,0xec,0xaf,0x2d,0x7f,0xac,0xbc,0x0f,0xf3,0xed,0x37,0xc2,0x9e,0xb2,0xd7,
+/* 0x00df50 */ 0x65,0x0e,0xc6,0x44,0x39,0x47,0x79,0x7c,0x28,0xdb,0xf1,0xa1,0xb7,0x81,0x50,0xe2,
+/* 0x00df60 */ 0x9f,0x6d,0x7a,0x48,0x99,0xbe,0x16,0xfe,0x56,0x9b,0x1d,0xa9,0xdd,0x2a,0x49,0x74,
+/* 0x00df70 */ 0x0b,0xbd,0xd4,0x09,0x0b,0x31,0x90,0x6e,0x1a,0xb5,0xc7,0xec,0xac,0xef,0x7f,0x11,
+/* 0x00df80 */ 0x87,0xc7,0x6d,0x81,0x46,0x4b,0x29,0xd5,0xcd,0xe0,0x83,0x95,0xa5,0x30,0x83,0x9f,
+/* 0x00df90 */ 0x4c,0x1e,0xb5,0xb6,0xec,0xa9,0xe3,0x47,0xe4,0xdd,0xcf,0x0f,0xe2,0x78,0xdb,0xef,
+/* 0x00dfa0 */ 0xe4,0xaa,0xec,0x3f,0x1c,0xfd,0x9d,0x74,0x67,0xe2,0x57,0xd4,0x17,0xb4,0xab,0xca,
+/* 0x00dfb0 */ 0x23,0xa0,0x1a,0xfe,0xb2,0xb4,0x15,0xb6,0x90,0xd8,0xe8,0x7e,0x5a,0x37,0x76,0xfd,
+/* 0x00dfc0 */ 0xcb,0x98,0x66,0xf3,0x2f,0xe7,0x88,0x06,0x27,0xb0,0xdf,0xc2,0x8f,0xdd,0x28,0xd5,
+/* 0x00dfd0 */ 0xe8,0xf4,0x24,0x59,0x98,0x13,0xbb,0x35,0x9e,0xc3,0xb0,0xb9,0xda,0x9d,0x97,0x18,
+/* 0x00dfe0 */ 0xfd,0x46,0xd8,0x11,0x8f,0x7f,0x69,0x67,0x5f,0xff,0xaa,0x35,0x52,0x27,0xe0,0x7f,
+/* 0x00dff0 */ 0xd3,0xaf,0xc0,0x32,0xe3,0xba,0xac,0xa3,0xaa,0x1f,0x63,0xbc,0xec,0x44,0xfd,0xe1,
+/* 0x00e000 */ 0x8d,0x67,0x5d,0xff,0x3a,0x2a,0x00,0xef,0xd4,0x13,0x2d,0x8c,0xf9,0xf7,0xb2,0x45,
+/* 0x00e010 */ 0x86,0x6a,0x21,0xc9,0xfa,0x94,0x61,0x7d,0x89,0xa3,0xe9,0xc9,0x9c,0xc8,0xa4,0xc3,
+/* 0x00e020 */ 0xe7,0xd9,0x7f,0x08,0x63,0xbe,0xb6,0xac,0xf0,0xc3,0x44,0x36,0xb1,0xd9,0xba,0x02,
+/* 0x00e030 */ 0x20,0x22,0x10,0x54,0x45,0x0f,0x68,0x7f,0x01,0xb3,0x74,0x74,0x13,0x1e,0xff,0x3a,
+/* 0x00e040 */ 0xf7,0xfa,0xd7,0x8a,0x03,0x58,0x29,0xd1,0x5c,0x8d,0x16,0xb5,0x8c,0x1c,0x6d,0x26,
+/* 0x00e050 */ 0xba,0x5e,0x65,0x91,0x47,0x06,0xca,0xd8,0x1d,0x92,0x07,0xa0,0x88,0x3d,0xe5,0x4a,
+/* 0x00e060 */ 0x2d,0x29,0x5e,0xc1,0x1b,0xdc,0x72,0x96,0xf5,0xaf,0xba,0xb7,0x47,0x13,0x8d,0xff,
+/* 0x00e070 */ 0xce,0x32,0x3b,0xeb,0x8e,0xdc,0xb8,0x09,0xbe,0xe3,0xcf,0x94,0xa5,0x5f,0x93,0x47,
+/* 0x00e080 */ 0xed,0x7d,0xa7,0x6f,0xc3,0x8f,0xeb,0xc4,0xf5,0x78,0x07,0x69,0x9e,0xf7,0xfc,0xf9,
+/* 0x00e090 */ 0xdf,0xb2,0xd6,0xe4,0x1f,0x15,0x7d,0x6f,0xc0,0xfe,0xc2,0x42,0xab,0x63,0xe7,0x86,
+/* 0x00e0a0 */ 0x5f,0x72,0x9a,0xcc,0xa9,0xd9,0x01,0x65,0xff,0x91,0xf5,0x4d,0xcb,0x4a,0x29,0x6f,
+/* 0x00e0b0 */ 0x36,0xc3,0x3a,0x1b,0xff,0xa2,0x2e,0xb0,0x2e,0x33,0x26,0x95,0xa3,0x1f,0xc2,0x27,
+/* 0x00e0c0 */ 0xf7,0x2d,0xd2,0x27,0xfd,0x53,0xfd,0x7b,0xe2,0x33,0xd9,0x62,0xa9,0xe5,0x8e,0xfc,
+/* 0x00e0d0 */ 0xef,0x27,0x27,0xbc,0xea,0xf5,0x8b,0xb3,0xf1,0x2f,0x6d,0xd4,0x85,0x5d,0x5a,0x6c,
+/* 0x00e0e0 */ 0x2e,0x91,0x00,0x3a,0x56,0x6c,0x89,0x8f,0xa4,0x7a,0xe1,0x59,0x87,0x76,0xb1,0x03,
+/* 0x00e0f0 */ 0xe6,0xa3,0x44,0x2d,0x79,0xf1,0xfc,0xbf,0x75,0xfe,0xbc,0x9e,0xc3,0x70,0x2e,0x02,
+/* 0x00e100 */ 0x9b,0x8e,0x60,0x98,0x31,0x20,0xc5,0xe8,0x26,0x36,0x9d,0x33,0xd6,0xb7,0x21,0x57,
+/* 0x00e110 */ 0x8c,0xde,0x0e,0x25,0xa9,0x79,0x2c,0xff,0x3a,0x6d,0xfe,0x90,0x7a,0xf3,0x12,0xb1,
+/* 0x00e120 */ 0x13,0x8a,0x2e,0xd1,0xc2,0x5d,0x56,0x33,0x14,0x15,0x09,0x94,0x6d,0xa6,0xf0,0x68,
+/* 0x00e130 */ 0x2f,0x40,0xce,0xd0,0xe3,0x8a,0x56,0x19,0xc7,0xce,0x78,0xff,0x2b,0x39,0x8a,0x17,
+/* 0x00e140 */ 0x3c,0x9e,0xc7,0x71,0x75,0x5d,0xcd,0x05,0xd6,0x0f,0x59,0x73,0x93,0x92,0xa9,0xf9,
+/* 0x00e150 */ 0xaf,0x70,0x11,0x32,0x85,0x0b,0x51,0x65,0x6c,0x28,0xfd,0xa8,0xac,0xf4,0x38,0x47,
+/* 0x00e160 */ 0xa6,0x6f,0xf1,0xd6,0xbf,0xd6,0x29,0xaa,0x76,0xc6,0xfe,0x43,0xe3,0xb7,0xc6,0xdc,
+/* 0x00e170 */ 0x7d,0x6a,0xa4,0x9e,0xde,0xff,0x0f,0xd3,0x2f,0x07,0x15,0x7c,0x06,0xbc,0xa8,0xc4,
+/* 0x00e180 */ 0x47,0xb8,0x4a,0xb7,0x48,0xdc,0x6a,0xd6,0x7c,0xea,0xd8,0xf5,0xaf,0xa5,0x67,0xac,
+/* 0x00e190 */ 0x7f,0xd5,0x7b,0x1d,0xed,0x3d,0xf6,0x0e,0xcc,0x51,0x26,0x0d,0x4f,0x7f,0x5c,0x3a,
+/* 0x00e1a0 */ 0xee,0xd8,0xd4,0x7d,0x02,0xff,0x63,0x78,0x52,0x76,0xca,0xf9,0xf6,0x1f,0x3a,0x1b,
+/* 0x00e1b0 */ 0x8f,0xb1,0xbe,0x4e,0xb0,0xf5,0x26,0x7f,0x71,0x06,0x9e,0x23,0x97,0x27,0xd4,0x1d,
+/* 0x00e1c0 */ 0x18,0x16,0x7e,0x68,0x3a,0x07,0xda,0x8f,0xe8,0xad,0xb0,0xab,0x52,0x5f,0xa9,0xb3,
+/* 0x00e1d0 */ 0xac,0x7f,0x29,0xde,0xb1,0x1b,0x8f,0xc3,0x6e,0x43,0x31,0xa5,0xc3,0xc6,0x9f,0xf3,
+/* 0x00e1e0 */ 0xfd,0x87,0x59,0x5f,0x17,0xfc,0x95,0xf2,0xb5,0x11,0x41,0xcd,0x1e,0x54,0x22,0x7c,
+/* 0x00e1f0 */ 0x47,0xa2,0xe7,0xbf,0xce,0xfd,0xfe,0x17,0x86,0x8e,0x4f,0xe5,0x04,0xc9,0x7a,0x05,
+/* 0x00e200 */ 0x06,0x72,0x5f,0x35,0xc3,0x3d,0xd2,0x64,0xfd,0xaf,0x06,0x2f,0x79,0x9b,0x3f,0x67,
+/* 0x00e210 */ 0x28,0xb0,0x88,0xa9,0xf4,0x24,0x2f,0xd2,0x4e,0xdf,0x7f,0xf8,0x66,0x70,0x54,0x75,
+/* 0x00e220 */ 0x3f,0x66,0xfb,0x26,0xee,0xd1,0xf4,0x23,0x38,0x78,0x3e,0x93,0xd8,0x0d,0xcd,0xbd,
+/* 0x00e230 */ 0xe1,0xa9,0x52,0x7b,0xe1,0x51,0xc3,0x39,0x7f,0x63,0xb7,0xa5,0xaf,0x53,0x46,0xf9,
+/* 0x00e240 */ 0xaf,0xf3,0xaf,0x7f,0xc1,0x9c,0xb2,0x7a,0xcc,0xf7,0xaf,0xd8,0x8c,0x17,0x95,0x6e,
+/* 0x00e250 */ 0x2a,0xa7,0x16,0xd0,0x0f,0xbb,0x16,0xe6,0x84,0xea,0xd9,0x72,0xcb,0x9e,0x87,0x1f,
+/* 0x00e260 */ 0xda,0xe0,0xf1,0xaf,0x73,0xaf,0x7f,0xa5,0xca,0xce,0x0b,0x26,0x96,0xa5,0x7f,0x00,
+/* 0x00e270 */ 0x97,0xeb,0x93,0xa4,0x4a,0xc8,0x77,0x54,0x3a,0xa1,0xfc,0x5d,0x70,0x52,0xe1,0x0c,
+/* 0x00e280 */ 0xfe,0x55,0x73,0xbe,0xf3,0xe7,0x67,0xa7,0xf7,0xc3,0xa3,0xbd,0x38,0x1a,0x53,0x3e,
+/* 0x00e290 */ 0xe3,0x91,0x10,0xaa,0xe7,0x34,0x41,0xcd,0xbc,0x78,0xde,0x59,0xff,0xca,0x9f,0x6b,
+/* 0x00e2a0 */ 0xff,0x61,0xd7,0x84,0x52,0x74,0x06,0x56,0x43,0xd4,0xfe,0x22,0x98,0xc3,0xbf,0x8e,
+/* 0x00e2b0 */ 0xe7,0x4f,0xb2,0x85,0x3d,0xe2,0xd5,0xb0,0xcf,0xf0,0xfd,0x65,0x7e,0x32,0x43,0x16,
+/* 0x00e2c0 */ 0xfb,0x60,0x4c,0xdf,0x64,0x44,0x2d,0x65,0x57,0x4d,0x4c,0xd9,0x14,0x16,0xaa,0x61,
+/* 0x00e2d0 */ 0xb6,0x09,0x1e,0xb4,0x03,0xf2,0xcf,0x7a,0xfe,0xfc,0x95,0x75,0x9b,0x69,0x19,0xe3,
+/* 0x00e2e0 */ 0x8d,0x67,0x9b,0xea,0xf2,0x1c,0xdc,0x74,0xc5,0x85,0xf6,0x41,0x88,0x0f,0x23,0x65,
+/* 0x00e2f0 */ 0xa8,0xa1,0x63,0xf8,0xd7,0x79,0xce,0x9f,0xcf,0xfb,0x20,0x3f,0x02,0xad,0x8a,0x22,
+/* 0x00e300 */ 0x49,0xfc,0xfd,0xaf,0x85,0xfc,0xd8,0x43,0x4b,0x1a,0xd2,0x2f,0x85,0x5a,0xf8,0x8c,
+/* 0x00e310 */ 0xe7,0xcf,0x7f,0x02,0xd3,0xf8,0xdb,0x5e,0xc7,0xee,0xe7,0x5f,0xfb,0xe2,0x27,0x19,
+/* 0x00e320 */ 0xde,0xff,0xd1,0xc5,0x17,0x09,0x55,0xf9,0x64,0xd3,0x37,0x0c,0xfe,0x46,0xd8,0x98,
+/* 0x00e330 */ 0xfd,0x87,0x67,0x3f,0x7f,0x5e,0xd0,0xb7,0x6d,0xbe,0x63,0x0c,0x23,0xe8,0x8c,0xa8,
+/* 0x00e340 */ 0x9d,0x4f,0x34,0xfe,0xc9,0x2a,0xdf,0x31,0x63,0xbf,0x82,0xfc,0xeb,0x1f,0x2a,0xf5,
+/* 0x00e350 */ 0x75,0x96,0xf5,0x2f,0xed,0xf4,0xd3,0x36,0x76,0x4b,0x56,0x19,0xf9,0x57,0xb0,0x76,
+/* 0x00e360 */ 0xc6,0x73,0xa6,0xfe,0x73,0xc2,0x55,0xad,0x16,0x3b,0x98,0xb9,0x14,0x26,0x48,0x15,
+/* 0x00e370 */ 0xfe,0x75,0xc6,0xfa,0x57,0xd5,0x59,0x16,0xc2,0x06,0x37,0x81,0x6e,0x66,0xea,0x1a,
+/* 0x00e380 */ 0xf9,0xf1,0x26,0xcd,0x69,0x2e,0x61,0x39,0xf1,0xd9,0xaf,0x1a,0xfa,0x99,0xf6,0x1f,
+/* 0x00e390 */ 0xfe,0x35,0x9b,0xdd,0x37,0x61,0xbb,0xf4,0x7c,0xec,0xc7,0x7a,0x34,0xbd,0x44,0xab,
+/* 0x00e3a0 */ 0xe2,0x6d,0xec,0x3b,0xa2,0xde,0x61,0x9b,0xd1,0xc8,0xb3,0x57,0xea,0xfd,0x6c,0xeb,
+/* 0x00e3b0 */ 0x5f,0xee,0xa4,0xc1,0x49,0x65,0xa1,0x39,0x69,0x47,0xfd,0x71,0x69,0x10,0x5a,0x97,
+/* 0x00e3c0 */ 0xab,0x7f,0xca,0x27,0x16,0x98,0xdd,0x9e,0x29,0x52,0xb3,0xb5,0xcb,0x4a,0xf5,0x31,
+/* 0x00e3d0 */ 0xf7,0x14,0x1a,0x67,0xfd,0x6b,0xd6,0xb9,0xd6,0xbf,0xc4,0x32,0x8a,0x2e,0x16,0xd4,
+/* 0x00e3e0 */ 0xf6,0xf8,0x7e,0x69,0x9c,0xb4,0x6c,0x09,0x7c,0x54,0x5a,0xb8,0xee,0x2c,0xfb,0x0f,
+/* 0x00e3f0 */ 0xc7,0xbe,0xff,0xe5,0x00,0xa3,0x55,0x9b,0x54,0x98,0x10,0x41,0x92,0x15,0x57,0xd4,
+/* 0x00e400 */ 0x42,0xbd,0xee,0xae,0x5c,0x23,0x7f,0x8f,0xb6,0x86,0x27,0xb1,0x2d,0x5e,0xfb,0x71,
+/* 0x00e410 */ 0xf8,0x97,0x3e,0x60,0xf3,0xaf,0x2b,0x4f,0x5f,0xff,0x32,0xe6,0x3f,0x8e,0xa0,0x09,
+/* 0x00e420 */ 0xfe,0x68,0x68,0x3a,0xdb,0x5c,0xf6,0x35,0x21,0x7b,0x10,0xaa,0xb7,0xe0,0x27,0xe6,
+/* 0x00e430 */ 0x7f,0xfa,0xf9,0x84,0x37,0x25,0x8f,0xb5,0x9d,0xff,0xfc,0x8d,0x4c,0x8c,0xbf,0xc7,
+/* 0x00e440 */ 0xba,0x24,0xb1,0x5d,0xd3,0xb3,0xca,0x02,0x1c,0xb5,0x5a,0x2d,0x31,0xc4,0x0d,0xc1,
+/* 0x00e450 */ 0x86,0x9c,0x7e,0x64,0x74,0x1c,0xee,0xf0,0xaf,0xc8,0x59,0xd7,0xbf,0x9e,0x62,0x33,
+/* 0x00e460 */ 0x02,0x13,0x16,0x48,0x3d,0xca,0x3d,0x10,0x31,0x6a,0x6e,0x91,0x1a,0xd8,0x13,0x8a,
+/* 0x00e470 */ 0x78,0x9b,0xe9,0x60,0xf4,0xcf,0xc4,0x91,0xe9,0x79,0x2f,0x97,0xc3,0xbf,0x9a,0x3c,
+/* 0x00e480 */ 0xfe,0x85,0x63,0xef,0xfb,0x79,0x8f,0x88,0xcd,0x38,0xba,0xec,0xbf,0xf9,0xbe,0x95,
+/* 0x00e490 */ 0x7c,0x25,0x17,0x37,0xd5,0xdb,0xb7,0x7c,0x05,0xfe,0x8f,0xb0,0xa9,0xff,0x05,0xd2,
+/* 0x00e4a0 */ 0xae,0x96,0xf2,0x32,0x67,0x6b,0xe2,0xf9,0xd7,0xbf,0xea,0x79,0x4c,0x32,0x1b,0x50,
+/* 0x00e4b0 */ 0xf2,0x30,0x7b,0x03,0x1f,0xd5,0xb2,0x07,0x52,0x1f,0xd3,0x0f,0x89,0x1d,0x55,0x3e,
+/* 0x00e4c0 */ 0x70,0xd2,0xf8,0x99,0x25,0xbe,0x27,0xc5,0x77,0x5e,0x2d,0x3b,0xdb,0xfb,0x5f,0x95,
+/* 0x00e4d0 */ 0x83,0x38,0x90,0x91,0xb5,0x98,0xea,0x07,0x4f,0xff,0x0d,0x3c,0x5f,0x58,0xa4,0x77,
+/* 0x00e4e0 */ 0xa0,0xca,0xd8,0x57,0x12,0xef,0x7f,0x7d,0xa8,0x1e,0xb0,0x2e,0x3b,0xf2,0x83,0x11,
+/* 0x00e4f0 */ 0xdf,0x42,0xb4,0xb9,0xec,0xd8,0xa4,0x93,0x6e,0xfc,0x73,0x8e,0xfd,0x87,0xfa,0xc5,
+/* 0x00e500 */ 0x14,0x9d,0x54,0x98,0x3d,0xc3,0x4f,0x32,0x5c,0x81,0xfc,0x74,0xa3,0x16,0xb1,0xae,
+/* 0x00e510 */ 0xe4,0xe7,0x16,0x16,0xf4,0x8b,0x0f,0x4e,0x48,0x56,0xfc,0xd7,0x5b,0x76,0xfb,0xd9,
+/* 0x00e520 */ 0x79,0xb6,0xf5,0x2f,0xfa,0x14,0x5c,0xc7,0x9d,0xdd,0xae,0xc8,0x3d,0xd0,0x9c,0x55,
+/* 0x00e530 */ 0xfa,0xea,0x76,0xc1,0x46,0x7f,0xc4,0xba,0x90,0x9f,0xec,0x31,0x00,0x6b,0x86,0x26,
+/* 0x00e540 */ 0x58,0x52,0x03,0xe1,0x67,0xd4,0x5f,0xd9,0x57,0x65,0xd9,0x2c,0x6e,0xf4,0xfa,0xd7,
+/* 0x00e550 */ 0xe8,0xc0,0xfe,0x4d,0xc8,0xc4,0xef,0x9f,0x48,0xf2,0xb4,0x39,0xa1,0xc8,0xd2,0x6c,
+/* 0x00e560 */ 0x23,0x6f,0x99,0xd6,0x35,0xf1,0x3a,0x0b,0xd8,0xe0,0x9b,0x07,0xaf,0xf4,0x4b,0xaa,
+/* 0x00e570 */ 0x6c,0x1b,0x4f,0x1e,0xb1,0xfd,0xc5,0x5b,0x67,0x3d,0x7f,0xe3,0x43,0x78,0x94,0xa9,
+/* 0x00e580 */ 0x1f,0xfa,0x36,0xa6,0xf9,0x21,0xbd,0xcd,0x25,0xdf,0x93,0xc6,0xb3,0x4f,0x8b,0xd5,
+/* 0x00e590 */ 0xae,0x37,0xa5,0x67,0x5f,0xfd,0xfa,0x89,0x1f,0x30,0xe1,0xdf,0xbf,0x6e,0xef,0x6f,
+/* 0x00e5a0 */ 0x11,0xf7,0x55,0x82,0x51,0xd3,0xfb,0x95,0x72,0x90,0x76,0x7d,0x75,0x8f,0xef,0x38,
+/* 0x00e5b0 */ 0x7f,0x33,0x7a,0xc7,0x0f,0xb6,0xa3,0xc4,0x79,0x6b,0xec,0x04,0xbc,0x67,0x2c,0x1c,
+/* 0x00e5c0 */ 0x72,0xdf,0x35,0x1b,0xb5,0xfe,0x95,0xd0,0x9c,0xe3,0xb5,0x31,0x26,0x71,0x3f,0x1d,
+/* 0x00e5d0 */ 0xfb,0x31,0x45,0x7f,0x7a,0x42,0x8d,0x63,0x98,0xf1,0x7c,0x79,0x8e,0xa1,0x7c,0x50,
+/* 0x00e5e0 */ 0x7f,0x39,0x3c,0xaf,0x7c,0x83,0xd3,0xae,0x4f,0xe1,0x00,0x9b,0xc3,0xd4,0x43,0xfc,
+/* 0x00e5f0 */ 0xd5,0x30,0x67,0xfd,0xcb,0xb0,0xdf,0x23,0x63,0x37,0x09,0xba,0x74,0xe5,0x9e,0xea,
+/* 0x00e600 */ 0x87,0xbd,0xb3,0x35,0xe8,0xa3,0x30,0x17,0x96,0xf2,0x63,0x1c,0xf2,0xe6,0x2c,0x73,
+/* 0x00e610 */ 0xe4,0x21,0xa4,0x93,0x9b,0x19,0x12,0xa8,0x3d,0xad,0x6f,0x49,0x45,0xab,0xa9,0xa4,
+/* 0x00e620 */ 0xec,0x12,0x0b,0x19,0x22,0xea,0x3e,0x92,0x16,0xfe,0x0b,0x3c,0xfe,0xb5,0xc2,0xe6,
+/* 0x00e630 */ 0x71,0x17,0xda,0x71,0x66,0x94,0x29,0x7b,0x6a,0x66,0x43,0x91,0x46,0xef,0x9f,0x55,
+/* 0x00e640 */ 0x97,0x6c,0x86,0x3f,0xc9,0xcf,0xe6,0xe7,0x28,0x8e,0xe4,0x37,0x37,0x45,0x47,0x14,
+/* 0x00e650 */ 0x5a,0x89,0x33,0xcf,0xbd,0xfe,0x35,0x19,0x01,0x6b,0xd4,0xfd,0x71,0xec,0xd4,0x79,
+/* 0x00e660 */ 0x68,0x62,0xb3,0x34,0xe9,0x40,0xdd,0x76,0xc1,0xa9,0x79,0x7d,0xc1,0x4f,0x0c,0x05,
+/* 0x00e670 */ 0x6a,0x54,0x77,0xe3,0xa8,0xe3,0xbf,0x2c,0x67,0xfd,0x6b,0xd9,0x9e,0x2a,0x6f,0xdb,
+/* 0x00e680 */ 0x21,0x6f,0xf3,0x51,0x68,0xde,0x83,0x41,0x20,0xfa,0x2f,0x63,0x62,0x1c,0xd9,0x31,
+/* 0x00e690 */ 0x56,0x9c,0x35,0x1b,0xe3,0x79,0xd5,0x82,0x56,0xd6,0xc4,0x04,0x5f,0xfe,0x43,0x11,
+/* 0x00e6a0 */ 0xcf,0x13,0x71,0x5f,0xfa,0x34,0x71,0xe4,0x35,0x0f,0x0b,0x9f,0x74,0xb6,0x6e,0x62,
+/* 0x00e6b0 */ 0x7c,0xf8,0xbe,0xb4,0x88,0xf0,0xf8,0x50,0xfa,0x54,0x5a,0x64,0x7c,0xdf,0xf2,0x7d,
+/* 0x00e6c0 */ 0x8f,0xbe,0x8d,0xa1,0xbe,0x7c,0xc2,0x77,0x42,0x71,0x96,0xc6,0xbc,0x7d,0x9e,0x6f,
+/* 0x00e6d0 */ 0x4e,0x11,0xcf,0x19,0xf6,0x82,0xaf,0xcf,0x58,0xad,0xcd,0xa7,0x53,0x2d,0x0e,0xb2,
+/* 0x00e6e0 */ 0xf3,0xb3,0xd3,0x06,0x10,0xbc,0x6a,0xcc,0xa7,0xb5,0x96,0xaf,0x9f,0xfc,0xb3,0x36,
+/* 0x00e6f0 */ 0x45,0x9b,0xb6,0xd7,0xd7,0x8f,0xaa,0xdb,0x28,0xd9,0x07,0x71,0x63,0x97,0x36,0x3f,
+/* 0x00e700 */ 0x88,0xaa,0x9b,0x8d,0xd7,0xb4,0xf9,0x5a,0xad,0xd5,0x62,0x37,0xe8,0x44,0x5a,0xee,
+/* 0x00e710 */ 0x27,0x0d,0xc6,0x2a,0x2d,0x34,0x1c,0xea,0x27,0xaa,0x99,0xd2,0xc2,0xc3,0xd0,0x42,
+/* 0x00e720 */ 0x3a,0x8c,0x14,0x4a,0x50,0xa5,0x1a,0x53,0x34,0xcd,0x82,0x16,0x79,0x35,0x4a,0x64,
+/* 0x00e730 */ 0xae,0x5a,0x6d,0xac,0x0a,0x66,0x6d,0x15,0xe6,0xb2,0x5a,0xec,0x79,0xa4,0x42,0x0d,
+/* 0x00e740 */ 0xd1,0x59,0x87,0x5e,0xa7,0xd0,0x3c,0x82,0xd5,0xe6,0x14,0x85,0x6e,0x24,0x7d,0x2c,
+/* 0x00e750 */ 0xa3,0x4f,0xb6,0x25,0x8a,0xbe,0x22,0x0c,0x79,0xd2,0x8f,0x92,0x29,0xb6,0x24,0x13,
+/* 0x00e760 */ 0xa9,0x53,0xe4,0x21,0x32,0x9d,0xad,0xd6,0xeb,0x9a,0xa8,0xfd,0x7a,0x25,0x12,0x42,
+/* 0x00e770 */ 0x85,0x98,0xfe,0x1e,0x98,0x0c,0x32,0xe3,0x40,0x9a,0xac,0x0d,0x58,0x11,0x93,0xf6,
+/* 0x00e780 */ 0x24,0xa7,0x70,0xc9,0x9a,0x4d,0xab,0x51,0x35,0x30,0x14,0x31,0x49,0x38,0x89,0x36,
+/* 0x00e790 */ 0x05,0xbd,0x0f,0xd0,0x58,0x1b,0x40,0xe3,0x22,0x82,0xb8,0xec,0x96,0xd3,0x96,0x69,
+/* 0x00e7a0 */ 0x5b,0x4f,0x56,0xb3,0x4e,0x5d,0x1e,0x69,0x6b,0x45,0xb0,0xaa,0x85,0x8e,0x50,0x94,
+/* 0x00e7b0 */ 0x3c,0xd0,0xa9,0x07,0x47,0xda,0xe6,0x68,0x0d,0x6c,0x55,0x44,0x1e,0x91,0xd7,0x93,
+/* 0x00e7c0 */ 0x0c,0x9b,0xa2,0x87,0x6c,0x9b,0xce,0xa6,0x90,0x6b,0xec,0xdd,0xd7,0x5e,0x03,0x3b,
+/* 0x00e7d0 */ 0x5a,0x98,0x4a,0x40,0x98,0xa1,0x43,0x18,0xaa,0x12,0xd8,0x44,0x4c,0x98,0x4a,0x25,
+/* 0x00e7e0 */ 0x02,0x28,0x21,0x08,0x20,0x80,0x12,0x4d,0x89,0xb4,0x43,0x42,0xd8,0x70,0xe3,0x82,
+/* 0x00e7f0 */ 0x6d,0xac,0x10,0xe6,0x3c,0xe7,0xbd,0x4b,0xa9,0x4e,0x14,0xd6,0xae,0x03,0xa3,0x26,
+/* 0x00e800 */ 0x82,0xe4,0x82,0xc4,0x66,0x1a,0x15,0x92,0x40,0x91,0xae,0xe5,0x20,0xac,0x15,0x29,
+/* 0x00e810 */ 0xf2,0x28,0x96,0xd4,0x35,0xc6,0x25,0x07,0xdb,0x41,0x2b,0x08,0x55,0x32,0xae,0xb9,
+/* 0x00e820 */ 0xe5,0xb4,0x25,0x65,0x83,0x2d,0x2f,0xaf,0x6c,0x92,0x2f,0x92,0x97,0xb3,0x6c,0xb9,
+/* 0x00e830 */ 0x6b,0x9d,0x7c,0x85,0x9c,0xcc,0x2d,0x3f,0xb2,0x72,0x5d,0xe8,0x5b,0x72,0x27,0xaa,
+/* 0x00e840 */ 0xba,0x9a,0x42,0x35,0x72,0x9a,0x19,0x1c,0x5c,0x24,0xaf,0xc8,0x2d,0x7f,0x64,0x65,
+/* 0x00e850 */ 0x53,0xe8,0x02,0x39,0x9b,0xcb,0x96,0xd3,0x4a,0x08,0x9c,0xfb,0x62,0xd3,0x48,0x27,
+/* 0x00e860 */ 0xac,0xb4,0x42,0xf1,0xd0,0xb7,0x11,0xac,0xb6,0x42,0xb7,0xc8,0x07,0xc8,0x2a,0x58,
+/* 0x00e870 */ 0x79,0x62,0x4a,0x9f,0x7c,0x2d,0xe9,0x34,0x50,0x15,0x94,0x3b,0x50,0xd2,0x65,0x85,
+/* 0x00e880 */ 0xfa,0xe4,0x6f,0x73,0x95,0x15,0x88,0x73,0x15,0xcf,0x35,0x57,0x36,0xdc,0xfa,0xa2,
+/* 0x00e890 */ 0x5a,0x12,0x43,0x4e,0x0a,0x84,0x42,0x92,0x21,0xc8,0x62,0x87,0x31,0x20,0x60,0xa0,
+/* 0x00e8a0 */ 0xa4,0x0a,0x12,0x10,0xc0,0x98,0x84,0xf0,0xef,0x7f,0x38,0x36,0x06,0x68,0x09,0xe2,
+/* 0x00e8b0 */ 0x00,0xa0,0x1a,0x21,0x4e,0x39,0x7b,0x4d,0x49,0xc1,0xee,0x88,0x0d,0xa5,0x89,0x03,
+/* 0x00e8c0 */ 0x49,0xb7,0x8a,0x7a,0xa3,0x02,0x1b,0x24,0xde,0x74,0x24,0x45,0xd9,0x80,0x31,0x09,
+/* 0x00e8d0 */ 0x97,0x28,0xa8,0x62,0xd0,0xa4,0xa3,0x0d,0x8d,0x94,0x8b,0x68,0xac,0xf0,0x5c,0x45,
+/* 0x00e8e0 */ 0xe2,0xd6,0x57,0x56,0x36,0xe1,0x55,0xe8,0x86,0x50,0x49,0x36,0xc9,0x61,0xe8,0x36,
+/* 0x00e8f0 */ 0x66,0x30,0xb9,0x17,0xbe,0x89,0x20,0x54,0xf2,0x9b,0xe4,0x9b,0xb0,0x02,0x56,0xb2,
+/* 0x00e900 */ 0x50,0x4c,0xe6,0xaa,0x69,0xa5,0xea,0x5e,0x94,0x38,0xc6,0x02,0x78,0xf5,0x65,0xf8,
+/* 0x00e910 */ 0xd6,0x02,0x6f,0x6c,0xb5,0x8c,0x70,0x30,0x1f,0x28,0xf3,0xf5,0xc1,0x61,0x72,0x29,
+/* 0x00e920 */ 0x4c,0xe3,0x0d,0x60,0x04,0xba,0xf9,0x8c,0xef,0x7a,0xac,0xe5,0xf9,0x20,0x3e,0xf1,
+/* 0x00e930 */ 0x7a,0x18,0x30,0x62,0xb5,0x10,0xbc,0xc6,0x41,0xa5,0x9c,0x58,0x3c,0x17,0xd6,0x7d,
+/* 0x00e940 */ 0xa0,0x8d,0xe8,0x1c,0x54,0x01,0xcb,0x07,0xcd,0x01,0x55,0x4a,0x2a,0x9a,0x85,0x94,
+/* 0x00e950 */ 0x56,0xd1,0xa7,0x43,0x29,0x4f,0xcd,0x92,0xaa,0x57,0x29,0x60,0xc5,0xf4,0x9c,0x2a,
+/* 0x00e960 */ 0xa5,0x94,0x00,0x13,0xb9,0x52,0x50,0x72,0xdb,0x21,0x03,0x1c,0xa8,0x15,0xea,0xc3,
+/* 0x00e970 */ 0xa1,0x08,0x47,0x5a,0x05,0x78,0xf3,0x43,0x4a,0xa5,0x52,0x1f,0xb1,0x25,0x5c,0x85,
+/* 0x00e980 */ 0x12,0x4d,0xc5,0x67,0x2d,0x24,0xaa,0x90,0x08,0x63,0x9e,0xcb,0xad,0x2f,0x89,0xc4,
+/* 0x00e990 */ 0x07,0x3b,0xf4,0xfa,0x0c,0x1d,0xb2,0x01,0x76,0xc6,0x40,0xdc,0xee,0xb9,0x28,0xc1,
+/* 0x00e9a0 */ 0xee,0xc9,0x25,0x24,0x9e,0x13,0xaa,0x67,0x45,0xa7,0x16,0x20,0x6e,0x03,0xb7,0x1c,
+/* 0x00e9b0 */ 0x6c,0x87,0xe6,0x60,0x8f,0xde,0xad,0x84,0xf2,0xa3,0x40,0x8e,0x03,0x62,0x83,0x2a,
+/* 0x00e9c0 */ 0x2e,0xd1,0xf1,0x2e,0xb8,0x8a,0xda,0xaa,0x80,0x6b,0x83,0xcf,0xd9,0xa9,0xaf,0x24,
+/* 0x00e9d0 */ 0xd6,0x9e,0xaa,0x4b,0x19,0x51,0xf9,0xaa,0xee,0xb6,0x02,0x04,0x86,0x0b,0x3c,0xd5,
+/* 0x00e9e0 */ 0xe9,0x12,0x01,0xbc,0x7e,0xb1,0x02,0x7f,0x42,0xd5,0xdb,0x95,0xc0,0x76,0xda,0xcb,
+/* 0x00e9f0 */ 0x41,0x26,0xc0,0x7f,0x74,0x2a,0x4a,0x08,0x97,0xe0,0x93,0xe7,0x12,0x7d,0xd0,0xb1,
+/* 0x00ea00 */ 0xb1,0x55,0x02,0x84,0xb9,0xb1,0x57,0x8e,0x29,0xf7,0x40,0x3b,0x6f,0x22,0x7d,0x36,
+/* 0x00ea10 */ 0xb0,0x42,0x66,0xa8,0x87,0x74,0xa3,0x84,0xf4,0xc9,0xab,0x11,0x84,0xac,0x80,0x67,
+/* 0x00ea20 */ 0x63,0x06,0x7b,0xc8,0x14,0x01,0x64,0xdb,0x26,0x64,0x38,0xf7,0x05,0x55,0x24,0xc1,
+/* 0x00ea30 */ 0xb2,0x66,0x28,0x2c,0x4f,0x26,0xd8,0x4f,0xd1,0x50,0x6e,0x77,0x24,0xa1,0x6e,0xb2,
+/* 0x00ea40 */ 0x92,0x83,0x1e,0x99,0xdb,0x68,0x66,0x30,0x8c,0x60,0x39,0x5b,0x6e,0x4e,0xb1,0x41,
+/* 0x00ea50 */ 0x96,0x4b,0xc0,0x79,0xce,0x85,0x3a,0x31,0xce,0x18,0x19,0x5a,0x47,0x29,0x02,0x2d,
+/* 0x00ea60 */ 0x23,0x46,0x9e,0x84,0xae,0x29,0x50,0x07,0xd4,0x12,0x2a,0x94,0x20,0x13,0xd3,0x14,
+/* 0x00ea70 */ 0x5a,0x17,0x80,0x42,0x22,0xc2,0x01,0xaf,0x7a,0x6e,0xec,0x96,0x33,0xd8,0xed,0xcb,
+/* 0x00ea80 */ 0x96,0x0e,0x99,0x6b,0xc2,0xb5,0xdd,0x55,0x5a,0xe9,0x90,0x7e,0x6b,0x26,0x9c,0xf4,
+/* 0x00ea90 */ 0x2d,0x67,0x7b,0xf5,0x48,0x58,0xe9,0xae,0x0a,0xe6,0x0e,0x99,0x24,0x53,0x9b,0xf4,
+/* 0x00eaa0 */ 0x65,0x73,0x05,0x1d,0xaf,0x79,0x85,0x44,0xd8,0xcb,0xa6,0xae,0xd4,0x76,0x4b,0x1a,
+/* 0x00eab0 */ 0x3b,0x64,0xce,0xcb,0xd4,0xba,0xf7,0xd5,0x56,0x25,0xf7,0xe7,0x5e,0x33,0x57,0x85,
+/* 0x00eac0 */ 0xef,0xde,0x27,0xf7,0x33,0x0e,0xa6,0x6d,0x24,0xfd,0xb9,0x1e,0xb3,0x3b,0x1c,0xda,
+/* 0x00ead0 */ 0x37,0xa5,0x3f,0xb7,0x1a,0x25,0x81,0x7d,0x21,0x1b,0x84,0xd0,0x66,0x0c,0x70,0xfd,
+/* 0x00eae0 */ 0x4e,0x5b,0x3b,0xf4,0xa3,0x9b,0x98,0x1f,0xae,0x7d,0xc5,0xc7,0xc1,0x94,0x9e,0xda,
+/* 0x00eaf0 */ 0x7d,0xbe,0xfe,0xdc,0x61,0x94,0xc8,0xaf,0xf8,0x6e,0xcd,0xed,0x32,0x6f,0xeb,0x99,
+/* 0x00eb00 */ 0x86,0x12,0xfc,0x89,0xdb,0xc2,0xb5,0xfb,0xaa,0xfb,0xd9,0x3f,0xaf,0xb9,0x2d,0xbc,
+/* 0x00eb10 */ 0x94,0x83,0xd7,0xf0,0x41,0xd5,0x5a,0x01,0xa7,0x9c,0x2a,0xfc,0x75,0xd5,0xfd,0x09,
+/* 0x00eb20 */ 0x15,0x55,0x1c,0x0c,0x74,0x98,0x9d,0x61,0xba,0x4f,0x8e,0xe0,0x8f,0xae,0x08,0xcb,
+/* 0x00eb30 */ 0xfc,0x52,0x6d,0x1b,0xda,0x3f,0x30,0xea,0x7a,0xd0,0xd8,0x0a,0xd8,0xf1,0x06,0x4d,
+/* 0x00eb40 */ 0x72,0xb7,0xe5,0xf9,0x2f,0x7d,0x85,0xe3,0xa4,0x44,0x63,0x13,0xc0,0x53,0xd5,0xb9,
+/* 0x00eb50 */ 0xaa,0xd1,0x80,0x39,0xeb,0x20,0x58,0xef,0x6b,0xf0,0x69,0x4c,0x0e,0xcb,0x1b,0x3d,
+/* 0x00eb60 */ 0x10,0x58,0xc3,0x5c,0x89,0x00,0xa1,0x8a,0x8a,0x44,0x4e,0x57,0xa1,0x8f,0x73,0xee,
+/* 0x00eb70 */ 0xcb,0x90,0xfb,0xc8,0x6a,0x58,0x85,0xcd,0xcd,0x06,0x12,0x07,0xe0,0x4a,0xa0,0x41,
+/* 0x00eb80 */ 0x41,0x87,0x88,0x41,0x32,0xaa,0xa6,0x40,0xd0,0x22,0x36,0x08,0xd9,0x80,0xdb,0x04,
+/* 0x00eb90 */ 0x9c,0xfa,0x4a,0x82,0xc9,0xb0,0xf1,0x63,0x2f,0xb0,0xc1,0x15,0x24,0xcf,0x41,0x93,
+/* 0x00eba0 */ 0x90,0xf4,0x72,0x90,0x21,0xbc,0x37,0x61,0x2f,0x50,0x71,0x4c,0x35,0xd9,0x54,0x6e,
+/* 0x00ebb0 */ 0x9c,0x77,0x73,0x31,0xf7,0x39,0x27,0xb9,0x6f,0xd2,0x71,0xd4,0xc2,0x4e,0x94,0xf3,
+/* 0x00ebc0 */ 0xeb,0xc9,0x1a,0x0e,0x70,0xb4,0xb6,0x25,0xbc,0x33,0x66,0xf8,0xec,0x85,0xb0,0xe1,
+/* 0x00ebd0 */ 0x1d,0x2d,0xc7,0xbb,0xa7,0x96,0x07,0x91,0x2b,0xa3,0x55,0xca,0x41,0xff,0x95,0xd5,
+/* 0x00ebe0 */ 0xbb,0x94,0x90,0xe4,0x80,0x00,0x82,0xdc,0x28,0x49,0x10,0x03,0x68,0xd7,0x06,0x8d,
+/* 0x00ebf0 */ 0x73,0x1a,0x4a,0x42,0x12,0x71,0x6c,0xc0,0xb9,0x2f,0xe6,0x23,0x9a,0xd5,0x15,0x0f,
+/* 0x00ec00 */ 0xa9,0x72,0x0a,0x07,0x40,0x0e,0x70,0x24,0xcc,0x5a,0x5d,0xad,0x01,0x21,0x19,0x4c,
+/* 0x00ec10 */ 0xc7,0x57,0xaa,0x34,0xc5,0x25,0xb6,0x8d,0x6e,0x75,0xe9,0x2b,0x11,0xc8,0x8e,0xb1,
+/* 0x00ec20 */ 0x53,0x5b,0x40,0x79,0x37,0x42,0x7f,0x8b,0xce,0x99,0x3b,0x29,0x04,0x38,0x5e,0xa2,
+/* 0x00ec30 */ 0x47,0xc3,0xfe,0x14,0xe0,0x12,0xca,0x25,0x19,0x5b,0x05,0x9e,0x8d,0x03,0xd2,0xba,
+/* 0x00ec40 */ 0x5b,0xeb,0x90,0xc0,0x3c,0x0c,0xc7,0x5f,0xa5,0x88,0x9a,0x12,0x8f,0x42,0x14,0x49,
+/* 0x00ec50 */ 0x02,0x2e,0x41,0x0f,0x81,0xa0,0x00,0xba,0x1f,0x92,0x12,0xfe,0x57,0xd7,0x9b,0x78,
+/* 0x00ec60 */ 0x6e,0x61,0x6c,0x03,0x1d,0xfc,0x8a,0xe1,0xd6,0x17,0x54,0x9b,0x53,0xd1,0x37,0x61,
+/* 0x00ec70 */ 0xb4,0x33,0xa0,0x93,0x57,0x69,0xb7,0xc4,0x03,0x21,0x0c,0x72,0xb8,0x6f,0x22,0x7a,
+/* 0x00ec80 */ 0x04,0x83,0x9c,0x04,0x82,0x18,0xe1,0x31,0x52,0x88,0xa1,0xdb,0x0a,0x0b,0x95,0xac,
+/* 0x00ec90 */ 0xa3,0x04,0x7d,0x9c,0xfb,0x9c,0xd1,0x7f,0x99,0xda,0x6a,0x68,0x84,0x97,0xd9,0x06,
+/* 0x00eca0 */ 0x93,0xac,0xa6,0x97,0xda,0xe5,0x1c,0x16,0xb9,0xa8,0xa9,0x1f,0xc6,0x86,0x1a,0xe0,
+/* 0x00ecb0 */ 0x6e,0xab,0x01,0x6d,0xd0,0xc7,0x99,0x74,0x04,0x5d,0x9b,0xcc,0xaa,0x1d,0x47,0xc6,
+/* 0x00ecc0 */ 0xc0,0x4d,0x34,0xee,0x0f,0x43,0x8a,0x6f,0x0d,0x88,0xfb,0xa7,0x42,0x2a,0x09,0x07,
+/* 0x00ecd0 */ 0x21,0x2e,0xd7,0x12,0x1f,0x64,0xac,0x64,0x30,0xa2,0x82,0x8f,0x4b,0xe6,0x02,0xaa,
+/* 0x00ece0 */ 0x40,0xe3,0x2a,0x35,0x9c,0x32,0x0c,0x8b,0xce,0x25,0x2a,0xa4,0x0c,0x0c,0x1d,0xbd,
+/* 0x00ecf0 */ 0x34,0x17,0x94,0x8c,0xcf,0xd0,0x86,0xcd,0xb9,0xe0,0x07,0xdf,0x72,0x38,0x48,0xe3,
+/* 0x00ed00 */ 0x50,0x9b,0xf1,0xd5,0xc1,0x3e,0x3a,0x17,0xd4,0xb4,0xcf,0xc0,0x72,0xe6,0xe1,0x53,
+/* 0x00ed10 */ 0x42,0x6f,0x75,0x08,0x87,0x63,0x6e,0x0c,0xfb,0xc0,0x51,0x79,0xe5,0xc8,0xa4,0x25,
+/* 0x00ed20 */ 0xd1,0x91,0xad,0x0f,0x06,0x9f,0x21,0x2d,0xc6,0xd2,0x15,0xf5,0x41,0xba,0x97,0xb4,
+/* 0x00ed30 */ 0xa4,0x3b,0x7a,0xea,0x1b,0x38,0x30,0x3a,0x6e,0xf7,0x75,0x21,0x98,0x37,0xc8,0x6d,
+/* 0x00ed40 */ 0x28,0xda,0x58,0x02,0xec,0x95,0x51,0xd5,0x57,0xdf,0x45,0xbd,0x72,0xa6,0xcb,0xeb,
+/* 0x00ed50 */ 0x72,0x57,0xf7,0x75,0x6f,0x95,0x7f,0x24,0xaf,0x63,0xd7,0xe8,0xdd,0xc5,0xe0,0xfd,
+/* 0x00ed60 */ 0xf2,0xba,0xc1,0xab,0xf5,0x15,0xbb,0xe4,0x99,0x64,0x5d,0xee,0x5b,0xb7,0xa7,0x47,
+/* 0x00ed70 */ 0xe4,0x37,0xe4,0x9b,0x50,0xd2,0xbd,0x35,0xf4,0xa0,0xdc,0x34,0x88,0xc6,0xc5,0xd0,
+/* 0x00ed80 */ 0x9f,0xa3,0xea,0xea,0x78,0xf7,0x81,0x50,0xe5,0xf9,0x70,0x2f,0x0c,0x92,0x01,0x58,
+/* 0x00ed90 */ 0xc3,0x7c,0xc6,0x2a,0x8b,0x9c,0x4c,0x03,0xbf,0x21,0xf1,0xd8,0x28,0xc6,0x2b,0xdf,
+/* 0x00eda0 */ 0x20,0x25,0x98,0xc7,0x6f,0x59,0x47,0x55,0x84,0xfb,0x6e,0xbc,0x1d,0x54,0xa9,0x06,
+/* 0x00edb0 */ 0x02,0xaf,0x1c,0x85,0xde,0x10,0x50,0x0b,0xed,0x11,0x52,0x4c,0xdf,0xa0,0xa9,0x85,
+/* 0x00edc0 */ 0x54,0x44,0x2b,0xa6,0x5b,0x49,0x78,0x38,0xc9,0x25,0x6b,0x71,0x5c,0x6f,0x8f,0x00,
+/* 0x00edd0 */ 0x4a,0x02,0xe1,0x42,0x8a,0x04,0x8a,0xe9,0x28,0x09,0xa3,0x44,0x1b,0x41,0x95,0xca,
+/* 0x00ede0 */ 0xda,0x23,0x81,0xca,0xf5,0xb4,0x65,0xb5,0x74,0x7a,0x25,0x91,0x8d,0xb6,0x6c,0x24,
+/* 0x00edf0 */ 0x4d,0x97,0xcb,0x41,0x68,0xd3,0x02,0x41,0xba,0x1c,0x25,0x6b,0xb2,0x81,0x34,0x5d,
+/* 0x00ee00 */ 0x49,0xa8,0x91,0xd6,0xb4,0x2e,0x75,0x39,0x09,0x19,0x7b,0x51,0x95,0x5e,0xe9,0x0b,
+/* 0x00ee10 */ 0xba,0xaa,0x90,0xe1,0x5d,0x4f,0xa4,0x5d,0xc9,0xe6,0x83,0xba,0x2c,0xc0,0xc6,0x60,
+/* 0x00ee20 */ 0x64,0x40,0xd9,0x9d,0xe4,0x40,0x1f,0x50,0x22,0xc9,0x30,0xaa,0x22,0x77,0x73,0xd0,
+/* 0x00ee30 */ 0x85,0x36,0x03,0x99,0x48,0x52,0x18,0x73,0x95,0x9d,0xcb,0xbb,0x9c,0x1a,0x22,0x8d,
+/* 0x00ee40 */ 0x18,0x65,0xad,0x89,0x22,0xb0,0x38,0x08,0x22,0xc0,0xe8,0x34,0x8b,0x20,0x67,0x03,
+/* 0x00ee50 */ 0x5a,0x13,0x91,0x72,0xb6,0x4d,0x82,0x4b,0x34,0xa1,0x2a,0x0a,0x89,0x57,0x8e,0xea,
+/* 0x00ee60 */ 0xeb,0x84,0x43,0xd6,0xbc,0xb8,0xdc,0xb1,0x41,0x80,0xd6,0x69,0x1d,0x84,0x83,0x5b,
+/* 0x00ee70 */ 0x51,0xb2,0x9b,0x83,0x50,0x5c,0x48,0x82,0x56,0x4b,0x5c,0x51,0x6f,0x74,0x8d,0x7f,
+/* 0x00ee80 */ 0x64,0x83,0xda,0xca,0x7d,0xcd,0x58,0x9f,0x78,0xad,0xb4,0x2a,0x1a,0xda,0x3f,0xb0,
+/* 0x00ee90 */ 0xde,0x78,0x8d,0x4d,0x89,0xdd,0x8d,0x2c,0x00,0x56,0xef,0x58,0x1c,0x0b,0xed,0x97,
+/* 0x00eea0 */ 0xd7,0x47,0x1a,0x50,0x35,0x55,0x30,0x85,0xdc,0x64,0x3d,0xb4,0xbf,0x1a,0xc1,0x8e,
+/* 0x00eeb0 */ 0x55,0x3a,0x57,0x71,0x5e,0x10,0x09,0x79,0xed,0xc7,0x17,0x4b,0xef,0x0f,0xb4,0xa6,
+/* 0x00eec0 */ 0x3b,0x72,0xf5,0xb1,0xf4,0x20,0x07,0xdb,0xea,0x63,0xc6,0x7e,0x07,0xa4,0x4f,0x03,
+/* 0x00eed0 */ 0xea,0xe9,0x2a,0x8d,0xe7,0xf2,0xee,0x6b,0xd1,0xa9,0x65,0xa7,0x5e,0x3a,0xf5,0xde,
+/* 0x00eee0 */ 0xa9,0x4f,0xbe,0x18,0x80,0xd1,0x09,0x1b,0x01,0x71,0xc1,0x17,0x4d,0x8b,0x3e,0x9a,
+/* 0x00eef0 */ 0x30,0xff,0xa5,0x77,0xf6,0x3c,0xf1,0x09,0x82,0x3b,0x5e,0xfc,0x7b,0xfc,0x89,0xe6,
+/* 0x00ef00 */ 0xd7,0x97,0xfd,0xec,0xe9,0x53,0xef,0x7d,0x74,0x13,0x97,0x08,0x15,0x4a,0x9e,0x40,
+/* 0x00ef10 */ 0xd5,0x63,0x37,0xe1,0x65,0xa0,0x6a,0xcf,0x63,0x7f,0xe0,0xe5,0xaa,0x94,0xf3,0x71,
+/* 0x00ef20 */ 0xc7,0x0b,0x2f,0xfd,0x76,0xf8,0x85,0x4f,0x10,0x9c,0x7a,0x69,0x0e,0x96,0x33,0x67,
+/* 0x00ef30 */ 0xd1,0xb2,0x17,0xea,0x4f,0xbd,0xf7,0xf1,0x6f,0x84,0x84,0xab,0xb8,0x04,0x55,0x07,
+/* 0x00ef40 */ 0x7e,0x83,0xe5,0xa0,0x6a,0xf8,0xc0,0x27,0x22,0xd7,0x5d,0xa8,0xf2,0xca,0xb9,0xec,
+/* 0x00ef50 */ 0xbe,0xab,0x7e,0x51,0x77,0xdb,0xb1,0x77,0x4e,0xce,0x44,0x50,0xff,0xc4,0x8e,0xfb,
+/* 0x00ef60 */ 0xae,0xbf,0xec,0xbb,0x57,0xbd,0xbe,0xfd,0xbb,0x3b,0xfe,0x94,0x4b,0x7e,0xb9,0xe2,
+/* 0x00ef70 */ 0xb6,0x63,0xbf,0x46,0xc9,0x92,0x5f,0x74,0x3e,0xb1,0xe3,0xfb,0x27,0x67,0xde,0xcb,
+/* 0x00ef80 */ 0x55,0xc7,0xde,0x39,0xce,0x8d,0x3b,0xff,0xf8,0xd8,0xaf,0xff,0xa0,0x72,0x63,0x52,
+/* 0x00ef90 */ 0x3f,0x52,0xe0,0x99,0x41,0xbf,0x25,0xf5,0xe7,0x76,0x65,0x67,0x6a,0xfe,0xbd,0x52,
+/* 0x00efa0 */ 0x9f,0xb1,0xcb,0x58,0x45,0xb9,0x04,0x1a,0xb4,0x1b,0xb5,0xc0,0x80,0xc4,0xf9,0xf2,
+/* 0x00efb0 */ 0x62,0xea,0xdf,0x87,0x54,0x7a,0x17,0x54,0x6b,0x5c,0x85,0x7c,0x79,0xa6,0x36,0xcd,
+/* 0x00efc0 */ 0xab,0x77,0xea,0x30,0x5f,0xcd,0xa6,0xc0,0x29,0x4d,0xdb,0x47,0x91,0x14,0x5b,0x49,
+/* 0x00efd0 */ 0x6d,0x25,0x4a,0xa0,0x68,0xdc,0xa6,0x49,0xc3,0xb4,0x05,0x76,0x59,0x9c,0x41,0xd3,
+/* 0x00efe0 */ 0x7e,0xe4,0xcb,0x53,0x6c,0x63,0xce,0xb2,0x2b,0xe3,0xa1,0xe4,0xc4,0x12,0x48,0x81,
+/* 0x00eff0 */ 0xd1,0xe5,0xe8,0x53,0x00,0xc3,0x8c,0xf5,0x6e,0x50,0x11,0x11,0xa0,0x8a,0x91,0x9b,
+/* 0x00f000 */ 0x73,0x1d,0x4c,0x50,0x69,0x3b,0xcc,0x10,0xa1,0x08,0xc6,0xea,0x18,0x27,0x54,0x6e,
+/* 0x00f010 */ 0x6c,0x8d,0x82,0x4c,0x53,0xcb,0x21,0x2b,0xf1,0x37,0x24,0xab,0x20,0x37,0xac,0x23,
+/* 0x00f020 */ 0x63,0x5d,0x9b,0x44,0xc6,0x0a,0xbd,0xca,0x6a,0xa8,0xea,0x61,0xdb,0x75,0x53,0x09,
+/* 0x00f030 */ 0x4b,0xe8,0xbf,0x18,0xf2,0xe5,0x30,0xa9,0x0a,0xe7,0x2c,0x58,0x53,0xc4,0x5c,0x90,
+/* 0x00f040 */ 0xf3,0xae,0x47,0x49,0xaf,0x27,0x0d,0x2c,0xd5,0x14,0xd8,0x9f,0x6e,0x45,0x76,0xbc,
+/* 0x00f050 */ 0xf8,0x12,0x6d,0x04,0xa3,0x0b,0xb5,0x20,0xe9,0x38,0xc8,0xac,0x0f,0x74,0xb0,0x54,
+/* 0x00f060 */ 0x84,0x70,0x89,0xa2,0x57,0x73,0x49,0x2b,0xe1,0x63,0x54,0x80,0x03,0xcc,0x35,0x83,
+/* 0x00f070 */ 0x58,0x95,0xeb,0x39,0x9d,0x2f,0x73,0x9e,0x82,0xec,0xb8,0x20,0x08,0x4b,0x2f,0x57,
+/* 0x00f080 */ 0x19,0x81,0x12,0x97,0x08,0x95,0xc1,0xa3,0x56,0xd7,0x58,0x00,0xef,0x7a,0x68,0x23,
+/* 0x00f090 */ 0x72,0xe1,0x76,0x13,0x49,0xf1,0xf5,0xe0,0x2f,0x27,0xfb,0x02,0x3b,0x91,0x2f,0x4f,
+/* 0x00f0a0 */ 0x35,0x24,0xce,0x97,0x39,0x4d,0x6e,0xd7,0x82,0x45,0x1a,0xcb,0xf9,0x01,0x25,0x61,
+/* 0x00f0b0 */ 0xa4,0xc9,0x61,0xab,0xbd,0x4f,0xdb,0x4a,0x6f,0xe0,0x54,0xfa,0xf6,0x4a,0x0f,0x98,
+/* 0x00f0c0 */ 0x4d,0xaf,0xc8,0xd5,0x95,0xdb,0x1e,0x0a,0xcc,0xa6,0x57,0xb3,0xba,0x72,0xfa,0xa1,
+/* 0x00f0d0 */ 0xc0,0x7f,0xa6,0x99,0xdc,0xe4,0x38,0xe5,0x60,0x89,0x35,0xb9,0x2c,0x6f,0x0d,0xcc,
+/* 0x00f0e0 */ 0xa2,0x19,0x4b,0xd2,0x51,0xf2,0x1d,0x7a,0x75,0x6e,0x32,0x37,0x9e,0x85,0x40,0xe4,
+/* 0x00f0f0 */ 0x02,0x7b,0x3d,0x45,0xb1,0x6a,0xe1,0x1a,0x1c,0x5b,0xe4,0x3d,0xe4,0xef,0xe1,0x1a,
+/* 0x00f100 */ 0x63,0xb2,0x55,0xfd,0x38,0xb9,0x09,0x3a,0x61,0xf2,0x41,0x5f,0x9c,0x2c,0x85,0x6b,
+/* 0x00f110 */ 0x2c,0x6a,0xc9,0x4f,0xc2,0xdb,0x70,0x35,0xab,0x32,0x16,0xc7,0xc9,0x7f,0x41,0x55,
+/* 0x00f120 */ 0xf0,0x84,0xfc,0x24,0x79,0xc1,0xce,0xf5,0x38,0xb1,0xb7,0x75,0x63,0x39,0xed,0xba,
+/* 0x00f130 */ 0xe1,0x70,0x61,0x3d,0x51,0xe4,0x14,0x78,0x90,0xf3,0x65,0x6d,0x6d,0x02,0xc9,0x32,
+/* 0x00f140 */ 0xfe,0xa1,0x28,0xc1,0xe0,0x04,0x41,0x8e,0x33,0x68,0x6e,0x9c,0x44,0x9a,0x4c,0xed,
+/* 0x00f150 */ 0x5c,0x18,0x96,0xc4,0x9d,0x72,0x0c,0x89,0x2a,0x18,0x42,0x18,0x18,0x6f,0x54,0x29,
+/* 0x00f160 */ 0x39,0x09,0x81,0x16,0x05,0xc8,0x49,0xc2,0xc1,0xd0,0x8b,0x0b,0x44,0xc7,0x18,0x2a,
+/* 0x00f170 */ 0x4a,0xc3,0x72,0x1e,0x9b,0x17,0x57,0xe1,0x13,0xe1,0xc6,0x6e,0x2e,0xaf,0x9c,0x02,
+/* 0x00f180 */ 0x0f,0x21,0xda,0x21,0xc0,0x98,0x19,0x41,0x20,0xf1,0xd9,0x0c,0x08,0x2b,0xed,0x62,
+/* 0x00f190 */ 0x5a,0x83,0xec,0x44,0xd5,0x54,0x3e,0x1d,0x11,0x86,0x1b,0x50,0x52,0xe0,0xaa,0x1b,
+/* 0x00f1a0 */ 0xa4,0x6d,0xcc,0xce,0x85,0x34,0xc1,0x2e,0x47,0x23,0x86,0xd4,0x1b,0xde,0x05,0x8d,
+/* 0x00f1b0 */ 0x89,0x4d,0x16,0x82,0x4d,0x55,0x33,0x13,0xc5,0xd2,0xda,0x3e,0xb8,0xb7,0x4a,0x02,
+/* 0x00f1c0 */ 0x3f,0x7f,0xfb,0xb4,0x08,0x8d,0x06,0x94,0xa4,0x5b,0xc2,0xd3,0xaa,0xaa,0xc1,0x5f,
+/* 0x00f1d0 */ 0x5a,0xab,0x63,0xc9,0x8d,0x89,0x22,0x13,0xb9,0x6e,0x48,0xb0,0xbc,0x1d,0x49,0x19,
+/* 0x00f1e0 */ 0xe9,0x64,0x6c,0x6e,0x2e,0x1c,0x4f,0x21,0x59,0x8b,0x5d,0xba,0xc9,0xaf,0xb7,0x77,
+/* 0x00f1f0 */ 0x94,0x38,0x47,0xab,0x8d,0x5e,0xa7,0x68,0x43,0x30,0xb7,0xa8,0xe8,0xa9,0xcc,0xce,
+/* 0x00f200 */ 0xed,0xc1,0x1b,0x36,0xdd,0x8b,0xf4,0x4d,0x7b,0x11,0xf9,0xf2,0xd6,0x68,0x8a,0xbf,
+/* 0x00f210 */ 0xca,0xc5,0x73,0x5d,0x97,0x61,0xcc,0x8e,0xa3,0x78,0x61,0x2e,0x29,0xae,0xf0,0xe5,
+/* 0x00f220 */ 0xa8,0xa6,0x52,0xce,0x8e,0xd3,0xad,0x5c,0x85,0x0f,0x88,0xef,0x83,0x27,0x12,0x67,
+/* 0x00f230 */ 0xd0,0x48,0x9c,0x3d,0x63,0x01,0xec,0xfa,0x32,0x30,0x40,0x8b,0x33,0xb5,0xd5,0xa7,
+/* 0x00f240 */ 0xc0,0x90,0x1e,0xc7,0x28,0xd7,0xa7,0xe2,0xa5,0xc6,0x8b,0x6a,0xb4,0x5e,0xe1,0x7b,
+/* 0x00f250 */ 0x3a,0x2d,0x94,0x34,0x23,0x1b,0x45,0x9b,0x78,0x4a,0x61,0x43,0xba,0x8e,0x2a,0x34,
+/* 0x00f260 */ 0xce,0xeb,0x4e,0x2e,0xb7,0x9c,0x36,0x43,0x90,0x50,0xce,0x34,0x69,0x2f,0x41,0xee,
+/* 0x00f270 */ 0x69,0x70,0xee,0x39,0x38,0x55,0x5b,0xac,0x70,0x89,0xd1,0xa0,0x2f,0x4e,0x07,0x5e,
+/* 0x00f280 */ 0xa4,0xbd,0x89,0x6b,0xe3,0x48,0x4b,0x4b,0x18,0x87,0xe3,0xe3,0x35,0xb8,0x8a,0x53,
+/* 0x00f290 */ 0x57,0x04,0xce,0x7d,0x91,0xe4,0x19,0x14,0xd8,0x06,0x55,0x02,0xa0,0xb1,0xa4,0x88,
+/* 0x00f2a0 */ 0x78,0x1e,0x74,0x9f,0x2d,0xb1,0x27,0x54,0x84,0x4d,0x52,0x71,0xfb,0x45,0x96,0x24,
+/* 0x00f2b0 */ 0x39,0xf3,0x6d,0xc2,0xdf,0xca,0x17,0x04,0x05,0xae,0xe1,0x7c,0xf9,0x68,0x78,0x81,
+/* 0x00f2c0 */ 0x88,0xde,0x4d,0x0c,0xda,0xdb,0x79,0x60,0x6f,0x22,0x5f,0x4e,0xd5,0x70,0x9b,0xdd,
+/* 0x00f2d0 */ 0x15,0x63,0x0e,0x9c,0x72,0x30,0xc8,0xa0,0x59,0x82,0x21,0x06,0xc6,0xe5,0xb4,0x8b,
+/* 0x00f2e0 */ 0x03,0x23,0x60,0xa0,0x24,0x84,0x8e,0x88,0x4b,0x02,0x14,0x96,0x1b,0x80,0x12,0xde,
+/* 0x00f2f0 */ 0xe2,0xb9,0x24,0x0b,0x21,0x6e,0x63,0xe7,0x92,0x8d,0x40,0xd2,0xbe,0xaf,0x0c,0x8e,
+/* 0x00f300 */ 0x45,0x9c,0x0b,0xcb,0x38,0x3a,0xc1,0x72,0x04,0x34,0x4c,0xf6,0xa1,0x24,0xb8,0x06,
+/* 0x00f310 */ 0xc7,0x2b,0x3e,0xb1,0xd6,0x85,0x2a,0x99,0x03,0xb0,0x55,0xfd,0x2c,0x58,0x31,0x96,
+/* 0x00f320 */ 0xc3,0x0e,0x6b,0xe2,0x91,0xba,0x18,0x55,0xb0,0x12,0x25,0x67,0x78,0x01,0x9f,0x98,
+/* 0x00f330 */ 0x2a,0xc9,0xf2,0x71,0xd5,0x96,0x04,0x7d,0x2e,0x5f,0x96,0xbc,0x21,0xc8,0xc9,0x15,
+/* 0x00f340 */ 0x04,0xf7,0xbe,0xba,0x91,0x1d,0x1f,0xc2,0x1e,0x81,0x14,0x78,0x25,0xa7,0xc0,0x3d,
+/* 0x00f350 */ 0x4a,0x3b,0x4a,0x06,0x4c,0x3d,0xec,0x7f,0x85,0xac,0xdc,0xb6,0xc3,0x9c,0xf1,0x4d,
+/* 0x00f360 */ 0x7f,0x7b,0x8a,0xf7,0x88,0x79,0x61,0x65,0x32,0x76,0x84,0xbb,0xcd,0x19,0x3d,0x68,
+/* 0x00f370 */ 0x2c,0x72,0xf5,0xc8,0x6e,0x3c,0x4f,0xba,0xd1,0x05,0x34,0x98,0x8b,0xb5,0xc0,0x2b,
+/* 0x00f380 */ 0xf2,0xad,0xe8,0x02,0x16,0x67,0x09,0x3a,0x85,0xdc,0x34,0x63,0x31,0x67,0xa3,0xb7,
+/* 0x00f390 */ 0xfa,0x1b,0xcc,0x55,0xd9,0xdc,0xb0,0x7c,0xbd,0xbf,0xc1,0xb8,0x31,0x1c,0x38,0x84,
+/* 0x00f3a0 */ 0x64,0xf6,0x5a,0x94,0xa0,0xb1,0xc8,0x95,0x6d,0x71,0xc6,0x55,0x43,0xae,0x92,0xfa,
+/* 0x00f3b0 */ 0xd9,0x2e,0x73,0x66,0xd8,0xbf,0xef,0xac,0xe0,0x35,0x04,0x01,0x04,0xb9,0x06,0xb3,
+/* 0x00f3c0 */ 0x3a,0xbc,0xe4,0x4c,0x1b,0xa7,0x9c,0x6c,0xdb,0x64,0x97,0xf9,0xe2,0xf5,0x70,0x4a,
+/* 0x00f3d0 */ 0xde,0x13,0xda,0x27,0x7e,0xf4,0x3a,0xbc,0x9e,0x95,0xc8,0xbb,0x7b,0x57,0xf5,0x68,
+/* 0x00f3e0 */ 0xfb,0xe4,0x5b,0xb7,0xa9,0x66,0x8a,0xdb,0x88,0xeb,0xe9,0x11,0x40,0x18,0x0f,0xb9,
+/* 0x00f3f0 */ 0xfd,0x4b,0x1a,0x43,0x81,0x55,0x8f,0x2f,0xd3,0xed,0xce,0xec,0x2e,0xd8,0x13,0xbf,
+/* 0x00f400 */ 0x53,0xce,0xe4,0xcb,0x2a,0x75,0x78,0xae,0x81,0xec,0x63,0x0d,0x0b,0x9b,0x55,0x61,
+/* 0x00f410 */ 0xf2,0x20,0xfc,0x1e,0x07,0x3b,0xc9,0x46,0x94,0x5c,0xe0,0x4a,0x14,0x94,0x00,0x97,
+/* 0x00f420 */ 0x28,0x66,0x3b,0x97,0x08,0xd5,0x4e,0x01,0x84,0xb1,0x3b,0xce,0xb7,0x99,0xf4,0x76,
+/* 0x00f430 */ 0x72,0x91,0xb4,0x98,0x05,0x8e,0x70,0x00,0x8b,0xf3,0x2e,0x60,0xa1,0x23,0x05,0x04,
+/* 0x00f440 */ 0x4a,0x4a,0xa8,0xc0,0x55,0x45,0x2e,0x52,0xb8,0x71,0xc1,0xb6,0x09,0x58,0x6e,0xff,
+/* 0x00f450 */ 0x5a,0xe1,0xb1,0x63,0xd6,0xcb,0x29,0xf0,0x55,0x9c,0x0b,0x97,0xa7,0xa2,0x04,0xb6,
+/* 0x00f460 */ 0x33,0xc3,0x26,0xc5,0xf9,0xd1,0x9c,0x1a,0xf9,0x72,0x87,0x4b,0xae,0x33,0xee,0xf5,
+/* 0x00f470 */ 0x60,0x3f,0xe5,0x4e,0xca,0x61,0xc7,0x1e,0x71,0xde,0x6d,0xb3,0xe3,0x42,0xcc,0x26,
+/* 0x00f480 */ 0xc5,0x79,0x1a,0x63,0x3c,0x62,0x3e,0xcd,0xc6,0x06,0x5e,0xff,0x4a,0x52,0xa4,0xc0,
+/* 0x00f490 */ 0x90,0x56,0x02,0x10,0xe3,0x5c,0x38,0x4d,0x03,0x12,0x35,0x88,0x26,0x51,0x1a,0x00,
+/* 0x00f4a0 */ 0x6a,0x30,0x4d,0x5b,0x89,0x0c,0x3a,0x88,0xde,0x41,0xa7,0xc0,0x25,0x04,0x8d,0x55,
+/* 0x00f4b0 */ 0x0e,0x9c,0x5c,0x6e,0x7d,0xf9,0x20,0x6e,0x05,0x91,0x9d,0x91,0x14,0xdf,0xe4,0x87,
+/* 0x00f4c0 */ 0x00,0x25,0xd9,0x91,0xa0,0x2e,0xa9,0xb9,0x14,0x04,0x19,0x8d,0x07,0x32,0xf0,0x34,
+/* 0x00f4d0 */ 0x74,0x6f,0xb2,0x6d,0x74,0x6e,0x2c,0x21,0x83,0x43,0xe3,0x60,0x2b,0x1a,0x1b,0xce,
+/* 0x00f4e0 */ 0xf5,0x80,0xe0,0xcb,0x05,0x4e,0x81,0x0d,0xc1,0x8e,0xb9,0xbf,0x49,0x6a,0x5a,0x01,
+/* 0x00f4f0 */ 0x08,0x09,0x67,0xeb,0x40,0xa6,0x14,0xb4,0x0c,0xb4,0x07,0x90,0x26,0x47,0xb8,0x0d,
+/* 0x00f500 */ 0x57,0x21,0x83,0x46,0x63,0x9e,0x0b,0x0c,0xcd,0x70,0xee,0x2b,0xaa,0x95,0x91,0xf9,
+/* 0x00f510 */ 0x2a,0x8a,0x14,0x85,0x62,0xa1,0x49,0xaf,0x29,0x72,0xc6,0xc4,0x66,0x21,0x3b,0x96,
+/* 0x00f520 */ 0xa2,0x5a,0x71,0xeb,0xee,0x88,0x52,0x44,0xbe,0x5c,0x64,0x4d,0xba,0xb0,0x61,0x2c,
+/* 0x00f530 */ 0x8a,0xe4,0x3a,0xc9,0x81,0x8e,0xc6,0x86,0x5b,0x5f,0xe8,0xbf,0x02,0x38,0x54,0x92,
+/* 0x00f540 */ 0x6d,0x48,0xcb,0x5b,0xc2,0xb4,0x1d,0x59,0x6d,0x0c,0x9d,0x14,0x72,0x78,0x52,0x2a,
+/* 0x00f550 */ 0x98,0xc8,0x58,0xdb,0x61,0x1b,0x8b,0xf5,0xfa,0x6d,0xff,0x15,0xd3,0x09,0x57,0x71,
+/* 0x00f560 */ 0x63,0xbf,0xed,0xf5,0x1c,0xbf,0x43,0x8c,0xbc,0xc9,0x37,0x23,0x13,0x7f,0xe9,0x7e,
+/* 0x00f570 */ 0x73,0xc1,0x4e,0xda,0x68,0xf8,0xd1,0x37,0x91,0x7b,0x41,0x42,0xc0,0x4c,0xbc,0xc9,
+/* 0x00f580 */ 0x46,0x1c,0x42,0xeb,0x10,0x90,0x6a,0xb1,0x97,0x99,0x4c,0x45,0x89,0xbf,0x54,0x25,
+/* 0x00f590 */ 0x72,0x71,0x1f,0xe7,0xd4,0x97,0x59,0x58,0xe0,0x9f,0x08,0x29,0x56,0x3a,0x42,0x11,
+/* 0x00f5a0 */ 0x48,0x1c,0xc4,0x16,0x90,0x89,0x35,0x6b,0x99,0x76,0x84,0x2d,0xb8,0x78,0x33,0xaa,
+/* 0x00f5b0 */ 0x76,0x96,0x63,0x0b,0xfc,0x9b,0xa5,0x76,0x94,0xc4,0x16,0xc0,0x44,0x85,0xdb,0xd8,
+/* 0x00f5c0 */ 0xb9,0xf2,0x25,0xa7,0x1d,0x66,0x71,0xb4,0x8c,0x1b,0x13,0xb3,0x3e,0x0a,0xc7,0x81,
+/* 0x00f5d0 */ 0x7f,0x32,0xd3,0xb7,0x8b,0x0d,0xc2,0xd7,0x0e,0x4e,0xbc,0x45,0x2a,0xc0,0x5e,0x94,
+/* 0x00f5e0 */ 0xd4,0xf4,0xf9,0x28,0xcb,0xc1,0x82,0x75,0x8a,0x26,0xdd,0x0d,0xff,0x52,0xfe,0x5a,
+/* 0x00f5f0 */ 0x62,0x62,0x0f,0x4a,0xfe,0x85,0xe7,0xba,0x1d,0x73,0xb9,0xe3,0x06,0xc8,0xd0,0x62,
+/* 0x00f600 */ 0xa8,0x59,0x5f,0x10,0x73,0xb5,0x64,0x5c,0x90,0x40,0xee,0xd9,0x05,0xcf,0x60,0x83,
+/* 0x00f610 */ 0x41,0x89,0x06,0x03,0xc8,0x4f,0xd5,0x6c,0xaa,0x01,0xf6,0x32,0xf1,0x79,0x33,0xb4,
+/* 0x00f620 */ 0x29,0x38,0xb9,0x86,0xdc,0xfb,0x4a,0x71,0x6f,0xd5,0x87,0x23,0xff,0x1f,0x23,0x68,
+/* 0x00f630 */ 0x40,0x47,0x86,0x6d,0xb5,0xd7,0x98,0x6a,0xb6,0xab,0x81,0x6d,0xd8,0xd8,0xa6,0x72,
+/* 0x00f640 */ 0xb7,0x35,0x24,0x66,0x53,0xbb,0x57,0x07,0xb6,0xcb,0xd7,0x5b,0xc2,0xf8,0x25,0x66,
+/* 0x00f650 */ 0xda,0x2a,0xaf,0x7f,0x19,0x36,0x5f,0x46,0x2f,0x2c,0xa6,0x46,0xf0,0xd7,0x19,0x08,
+/* 0x00f660 */ 0x07,0xad,0x8b,0x09,0xed,0x06,0x0c,0xc4,0x08,0x97,0xf0,0xf6,0x89,0x4e,0x83,0x3f,
+/* 0x00f670 */ 0x79,0xbe,0x9e,0xc2,0x73,0x19,0x95,0xf8,0xd0,0x20,0x99,0xf4,0xda,0xe5,0xb5,0x1b,
+/* 0x00f680 */ 0x91,0x02,0x1f,0xee,0x5d,0xbb,0x5c,0x29,0xa4,0xd6,0x20,0x5f,0xbe,0x54,0x9b,0x5a,
+/* 0x00f690 */ 0x48,0x12,0x0c,0x14,0xd7,0x06,0xfc,0x55,0xed,0x9c,0x41,0xc7,0x39,0xa7,0x5e,0x13,
+/* 0x00f6a0 */ 0x08,0xa7,0x1b,0xc3,0x53,0x39,0x5f,0xde,0x69,0xac,0x0d,0xd4,0x72,0xe0,0x96,0x23,
+/* 0x00f6b0 */ 0x1b,0xe9,0x6c,0x40,0x0e,0xb6,0x11,0xad,0x2b,0x9d,0x6d,0xa1,0x34,0x91,0x28,0x41,
+/* 0x00f6c0 */ 0x3a,0xa8,0x85,0x28,0x24,0x02,0xa8,0xd2,0xda,0x68,0x1b,0xc1,0xa8,0x24,0xa8,0x51,
+/* 0x00f6d0 */ 0x4a,0x12,0xcb,0xb3,0xc3,0x34,0x18,0xa2,0x6d,0x3e,0x2d,0x6b,0x62,0x2e,0x54,0x69,
+/* 0x00f6e0 */ 0x6e,0x3b,0x84,0xd3,0xbb,0xef,0x46,0x1a,0xf5,0x3a,0xf4,0x00,0x82,0x06,0x0d,0x49,
+/* 0x00f6f0 */ 0x71,0x4e,0x29,0x27,0xc3,0xa8,0x12,0x36,0x7e,0xd7,0xb8,0x49,0x00,0x70,0x13,0xb2,
+/* 0x00f700 */ 0x63,0xc1,0x7c,0x0b,0x36,0x4d,0xd6,0x04,0x3b,0x66,0xc6,0xfd,0x36,0x83,0x46,0x09,
+/* 0x00f710 */ 0x34,0xed,0x40,0x90,0x73,0x39,0x75,0xc1,0x78,0x48,0xbb,0x98,0x83,0x12,0x4a,0x66,
+/* 0x00f720 */ 0x15,0x9c,0x78,0xd5,0x68,0x5b,0xea,0xeb,0x34,0x5e,0x3e,0x38,0x6f,0x6e,0xed,0xb5,
+/* 0x00f730 */ 0xbe,0xce,0xcc,0xa1,0x83,0xf3,0x6e,0xa9,0x5d,0xea,0x5b,0x65,0xbc,0xfc,0xe2,0xbc,
+/* 0x00f740 */ 0x5b,0xd4,0xda,0xea,0xce,0xcc,0xcb,0x07,0x5b,0xe6,0x72,0x89,0x29,0x54,0xd7,0x6e,
+/* 0x00f750 */ 0x58,0x65,0xac,0xfc,0x27,0x6e,0x3c,0xbd,0x33,0x8b,0xb9,0x2e,0xad,0xf5,0xfa,0x57,
+/* 0x00f760 */ 0xa6,0x80,0xbc,0xa0,0xb4,0x58,0x8f,0xec,0x8f,0x71,0x82,0xb0,0x38,0xb6,0x0d,0xd9,
+/* 0x00f770 */ 0x71,0xa2,0x81,0xdd,0x18,0x0b,0x8c,0x54,0xad,0x27,0xbb,0x50,0x95,0x43,0x89,0xbf,
+/* 0x00f780 */ 0x81,0xcd,0x8c,0x05,0xf6,0x17,0x50,0x55,0x5a,0x1c,0x09,0xec,0xa7,0x22,0x57,0xa4,
+/* 0x00f790 */ 0xc2,0x0b,0xea,0x69,0x7a,0x44,0x30,0x5f,0x1f,0x4d,0x5b,0x81,0x56,0xaa,0x92,0x7a,
+/* 0x00f7a0 */ 0xdd,0xd8,0xaf,0xc5,0xa9,0xba,0x8d,0x4b,0xb8,0x8a,0x4b,0x84,0x6a,0x9b,0x0f,0xb8,
+/* 0x00f7b0 */ 0x0a,0x25,0x3e,0x27,0x17,0xf1,0x9e,0xcf,0x97,0xc9,0x97,0xcf,0x91,0x14,0x10,0x73,
+/* 0x00f7c0 */ 0x79,0x7c,0x92,0xcf,0x3e,0x75,0xfa,0x7c,0xe9,0x12,0x9b,0xf9,0x0a,0x0a,0x7c,0x1a,
+/* 0x00f7d0 */ 0x5f,0x7e,0xec,0xa6,0x85,0xff,0xd3,0xe6,0xcb,0xa7,0x50,0x72,0x0a,0x55,0x1f,0xb9,
+/* 0x00f7e0 */ 0x7c,0x59,0x90,0xeb,0x31,0x7c,0xb9,0xf5,0x7b,0x1d,0x2f,0x6c,0xb8,0x6b,0xf8,0xc0,
+/* 0x00f7f0 */ 0x07,0x0b,0xbe,0xd7,0xf1,0xc3,0x0d,0x73,0x8e,0x1c,0xfd,0x60,0xce,0xc2,0x89,0xcb,
+/* 0x00f800 */ 0xea,0xef,0x3c,0x72,0xe0,0x37,0x5f,0xbb,0x1c,0x25,0x77,0x0d,0xef,0xff,0x10,0x25,
+/* 0x00f810 */ 0x5f,0x41,0xd5,0xb1,0xdf,0x2c,0xf8,0x43,0xae,0x1a,0xde,0xcf,0x8d,0x79,0xae,0xfd,
+/* 0x00f820 */ 0x1f,0x78,0xe5,0x7c,0x1d,0x99,0x6f,0x72,0xd5,0xb1,0x77,0x8e,0xc5,0xee,0xbb,0xea,
+/* 0x00f830 */ 0xc1,0xd4,0x13,0xa5,0xed,0xbd,0x97,0x7d,0xd7,0xff,0xed,0xed,0x4b,0x4a,0xdf,0x3f,
+/* 0x00f840 */ 0xf9,0x8d,0x8b,0xae,0x7a,0x10,0x55,0x6f,0xdd,0x70,0xd9,0x77,0x95,0x46,0x54,0xdd,
+/* 0x00f850 */ 0x7d,0x32,0x76,0x2f,0x57,0x1d,0x7b,0xab,0x37,0x66,0xe7,0x7a,0xab,0xd7,0x2b,0x07,
+/* 0x00f860 */ 0xc7,0x99,0xdd,0xd0,0x64,0xd4,0x68,0x2e,0xc0,0x41,0x41,0xd5,0xd3,0x6a,0x44,0xd2,
+/* 0x00f870 */ 0xf2,0x7b,0x61,0x37,0x9b,0xd5,0x52,0xd3,0x30,0x74,0x77,0xec,0xe8,0x50,0x73,0xb6,
+/* 0x00f880 */ 0x46,0x63,0x28,0xd9,0xa4,0xae,0xa8,0x09,0xe6,0xdd,0x5c,0x5e,0x31,0x22,0xf0,0x03,
+/* 0x00f890 */ 0x87,0xf3,0x70,0x10,0x96,0xaa,0x21,0x97,0xe0,0x33,0xd7,0x46,0x1b,0x25,0x7b,0x01,
+/* 0x00f8a0 */ 0x19,0xa9,0x51,0x0d,0x01,0x03,0x41,0x03,0x52,0x9d,0xc0,0x30,0xf4,0x21,0xa1,0xf5,
+/* 0x00f8b0 */ 0x72,0x79,0xa9,0xc0,0xe7,0xce,0xd0,0x9f,0x38,0x00,0xc7,0xa6,0x67,0xf4,0xc8,0xb3,
+/* 0x00f8c0 */ 0xcd,0x75,0x35,0x0d,0xec,0x19,0x25,0x90,0x51,0xd6,0xfb,0x76,0xb0,0x3b,0x9b,0x66,
+/* 0x00f8d0 */ 0xe0,0xf8,0x25,0x35,0xb0,0xbd,0xb1,0x48,0x46,0x5d,0x21,0x05,0x19,0x37,0x2e,0x1a,
+/* 0x00f8e0 */ 0x95,0x6a,0xc4,0x58,0xef,0xf4,0xeb,0xd1,0x83,0xb0,0x38,0x9a,0x5b,0xc2,0x3a,0x9b,
+/* 0x00f8f0 */ 0x1a,0x94,0xc9,0x55,0x64,0x3f,0x5b,0xaf,0x37,0x64,0xaa,0x67,0x91,0x1c,0x9f,0x8a,
+/* 0x00f900 */ 0xde,0x9c,0x8e,0x92,0xe7,0xca,0x6b,0x75,0x24,0xa1,0x4e,0xa8,0x58,0xb9,0x2f,0x1c,
+/* 0x00f910 */ 0xad,0x0e,0x60,0x0b,0x51,0x2d,0xc1,0x22,0xb8,0xc8,0xa2,0x7a,0xa1,0xb9,0x1e,0x35,
+/* 0x00f920 */ 0x38,0xb4,0xe5,0x95,0x28,0x86,0xdd,0x65,0xd0,0x6b,0x54,0x4d,0x82,0xa1,0xa1,0xb9,
+/* 0x00f930 */ 0xda,0x52,0x55,0x97,0xc4,0x12,0x9d,0x18,0xd1,0xbc,0xa6,0x36,0x5a,0xc6,0x81,0x1f,
+/* 0x00f940 */ 0x0b,0xc2,0x6b,0xa3,0x9a,0x5f,0x4d,0x26,0xf8,0x14,0x73,0x8b,0x92,0xce,0xd7,0x69,
+/* 0x00f950 */ 0xa5,0xb4,0x1e,0x57,0x54,0xe0,0x17,0xc1,0x87,0xcb,0xe4,0x98,0x92,0x14,0x10,0x87,
+/* 0x00f960 */ 0x8a,0x17,0xed,0xf7,0x7d,0x38,0x98,0x0e,0xca,0x60,0xa3,0x99,0x79,0x58,0x9b,0x45,
+/* 0x00f970 */ 0x8b,0x43,0x8d,0xda,0xa6,0x62,0xeb,0x74,0xc8,0x24,0x66,0xeb,0x9b,0xb7,0xb6,0x46,
+/* 0x00f980 */ 0xd5,0xe2,0xd3,0x51,0x24,0x4e,0xf1,0x28,0x2d,0xba,0xb9,0x60,0xf4,0x15,0x1d,0xc0,
+/* 0x00f990 */ 0xb2,0xd5,0x11,0xf7,0x8a,0x6a,0x8c,0x46,0x86,0xb1,0x39,0x7a,0x5f,0xad,0x51,0xdb,
+/* 0x00f9a0 */ 0xc2,0xea,0x74,0x85,0x7b,0x73,0x86,0x39,0x95,0x67,0x13,0x51,0x58,0x8a,0x37,0x09,
+/* 0x00f9b0 */ 0x45,0xd7,0xd8,0xbd,0x1e,0x6a,0x37,0x9b,0x9b,0xbd,0xf6,0x33,0x21,0x0c,0x77,0x4a,
+/* 0x00f9c0 */ 0x11,0x43,0x49,0x48,0xc1,0xa7,0xff,0x51,0xff,0xb1,0xd1,0x94,0x9a,0x00,0xf9,0x8d,
+/* 0x00f9d0 */ 0xe1,0xdd,0xcf,0x37,0x49,0xb3,0x1a,0x58,0xd5,0xac,0x48,0x5a,0xc9,0x62,0xd3,0xe2,
+/* 0x00f9e0 */ 0xc6,0x0f,0xf1,0x56,0xe7,0xdd,0xd7,0xd8,0x20,0x3d,0xa8,0x2c,0x96,0xc8,0x60,0x79,
+/* 0x00f9f0 */ 0xbd,0x1e,0x1e,0x69,0x8b,0xca,0x09,0xd6,0x17,0xa1,0x4b,0xe4,0x56,0xac,0xaf,0x56,
+/* 0x00fa00 */ 0xbd,0x61,0x64,0xf1,0x45,0x39,0xeb,0x81,0x3e,0xbd,0xc1,0xcb,0xe5,0x95,0x63,0x37,
+/* 0x00fa10 */ 0x1b,0x10,0xed,0xa7,0x85,0x37,0xa4,0xb0,0x74,0x27,0xdd,0x3d,0xa4,0xf4,0x63,0x23,
+/* 0x00fa20 */ 0xb1,0x94,0x88,0x55,0x93,0x25,0x2a,0x1b,0x88,0x47,0x0c,0xb5,0x4e,0x0a,0x0e,0x3d,
+/* 0x00fa30 */ 0xa3,0x93,0xfd,0x4a,0x1f,0x36,0x2d,0xaf,0xd5,0xb9,0xed,0x87,0x37,0x9b,0x03,0xa2,
+/* 0x00fa40 */ 0xfd,0x54,0xc7,0x11,0xdc,0x4c,0x83,0x27,0xaa,0x20,0xd7,0x11,0xeb,0x34,0x34,0xab,
+/* 0x00fa50 */ 0x0a,0x30,0x34,0xec,0x94,0xc3,0xa5,0xea,0x30,0xd6,0xd4,0x7a,0x08,0xe7,0xe5,0x66,
+/* 0x00fa60 */ 0xa4,0xf1,0x66,0x22,0x68,0x89,0x5c,0x37,0x43,0xc3,0x10,0x75,0xaf,0xe7,0xce,0xf8,
+/* 0x00fa70 */ 0xe8,0xf6,0x9c,0x44,0x47,0x58,0xd0,0xf1,0x69,0xdc,0x5c,0xd3,0x60,0xed,0x5b,0x30,
+/* 0x00fa80 */ 0x43,0x55,0xae,0xf3,0x69,0xec,0xcf,0x9a,0x22,0x43,0x4a,0x36,0x1f,0x2e,0xef,0xd5,
+/* 0x00fa90 */ 0x23,0xf9,0x26,0xb7,0x3d,0xf3,0x5c,0x5e,0x0b,0x92,0x68,0xa5,0x25,0xa0,0x97,0xc4,
+/* 0x00faa0 */ 0x41,0x4b,0x4f,0xa8,0x64,0x18,0x23,0x88,0x06,0xa9,0x5d,0xcb,0x25,0xf5,0xfe,0x25,
+/* 0x00fab0 */ 0x90,0x94,0x34,0x7c,0x16,0x7a,0x06,0xc3,0x08,0x0d,0x86,0x69,0x80,0xaf,0x70,0x80,
+/* 0x00fac0 */ 0xdb,0x6c,0x2b,0xfd,0xcb,0x6b,0x85,0x71,0xb1,0x78,0x51,0x97,0x8f,0x05,0xae,0x6c,
+/* 0x00fad0 */ 0xea,0xdb,0xdc,0x10,0xdf,0xdb,0x7c,0xf1,0x12,0x65,0x7d,0x0a,0xf6,0x2c,0xd7,0xf5,
+/* 0x00fae0 */ 0x21,0x6c,0xcf,0x2a,0x7b,0x5a,0xd7,0xae,0x50,0x5a,0x9f,0xa5,0x6c,0x4c,0x7b,0x86,
+/* 0x00faf0 */ 0xd1,0x13,0xfe,0x5e,0x57,0xd1,0x4b,0x5b,0xe9,0x9c,0x8c,0xaa,0x63,0x7f,0x2b,0x4a,
+/* 0x00fb00 */ 0x12,0x46,0x00,0x09,0x5d,0x04,0x28,0x2a,0x93,0x62,0x25,0x0b,0x5a,0x73,0x94,0x79,
+/* 0x00fb10 */ 0xd6,0xf6,0x3e,0xbd,0xb8,0xb7,0xb0,0x52,0x49,0x9a,0xee,0x80,0x92,0x5b,0x1b,0xa5,
+/* 0x00fb20 */ 0xb8,0x0b,0x5c,0x5e,0xcb,0xe0,0xf4,0xb4,0xe8,0xe3,0x33,0x8a,0xc1,0x4b,0xc4,0xab,
+/* 0x00fb30 */ 0xc6,0xfa,0xd3,0x4e,0x30,0x4b,0x80,0xf8,0x1e,0x66,0x4b,0xe2,0x25,0x57,0xe5,0xdd,
+/* 0x00fb40 */ 0xc5,0xa4,0x49,0xf6,0xbf,0xd5,0x63,0xef,0x6b,0x2a,0x9b,0x1c,0x3b,0xfe,0x13,0xcb,
+/* 0x00fb50 */ 0xdf,0x9d,0xad,0xf9,0xd9,0x81,0x3f,0x99,0xc9,0x2e,0xbe,0xe3,0x57,0x7d,0x2d,0xff,
+/* 0x00fb60 */ 0x6b,0xe0,0x6d,0x16,0xbe,0x38,0xf8,0xfa,0x91,0xc1,0xed,0x0b,0x8d,0xf8,0x9c,0x07,
+/* 0x00fb70 */ 0x3b,0xcf,0x7c,0x1a,0x67,0xa6,0xba,0x52,0x9d,0x06,0xdf,0x78,0x78,0x6b,0x2c,0x18,
+/* 0x00fb80 */ 0xa4,0xdb,0x01,0xee,0xc8,0xff,0x1e,0x2d,0xd4,0x6d,0x64,0x4a,0x63,0x63,0x36,0x58,
+/* 0x00fb90 */ 0xba,0xa7,0x0a,0xe8,0x65,0x72,0xe9,0x33,0x14,0x23,0x92,0x52,0x24,0x6b,0xba,0x0c,
+/* 0x00fba0 */ 0x0e,0x1e,0x51,0x16,0x08,0xa7,0xa9,0x3c,0xb4,0xad,0xab,0x45,0x48,0x7e,0x9e,0x6e,
+/* 0x00fbb0 */ 0x6d,0x35,0xce,0xc8,0xb1,0xe8,0xd4,0xa9,0x53,0xd6,0xe9,0xe0,0xa9,0x33,0x24,0x15,
+/* 0x00fbc0 */ 0xf0,0xd3,0x31,0x92,0xf3,0x95,0x73,0x06,0xf8,0xea,0xa9,0x3b,0x1c,0xc9,0x1d,0x63,
+/* 0x00fbd0 */ 0x55,0xe7,0x29,0xe7,0xb2,0x4f,0xcf,0x53,0xf2,0xbb,0x4f,0x7d,0xe6,0x72,0xbe,0xfa,
+/* 0x00fbe0 */ 0xae,0x2b,0xb9,0xe3,0xf5,0x1f,0xda,0xe0,0xf7,0x4f,0xbd,0xfb,0xf9,0xaf,0xc7,0x03,
+/* 0x00fbf0 */ 0x53,0xbc,0x07,0xf5,0xee,0xfb,0xb7,0xd9,0xe0,0x8c,0x4b,0x3d,0x7f,0x39,0x77,0x08,
+/* 0x00fc00 */ 0xb0,0xf0,0xd4,0xa9,0xf7,0x6d,0xc9,0xeb,0xef,0xbe,0x7e,0x8e,0xdf,0xf2,0xd2,0x19,
+/* 0x00fc10 */ 0x7e,0xf9,0xf3,0x81,0x4a,0x41,0x63,0xfd,0xf2,0xe7,0x04,0x5e,0xaa,0xf8,0x65,0xfe,
+/* 0x00fc20 */ 0x79,0x0b,0x23,0xca,0xe7,0x7a,0x3f,0x1b,0x18,0x3d,0xae,0xc2,0x58,0xbf,0xfc,0x85,
+/* 0x00fc30 */ 0xaf,0xe7,0x34,0x6f,0xfa,0xf9,0x81,0x73,0x35,0x5f,0xbc,0x80,0xb1,0x25,0x8d,0xf1,
+/* 0x00fc40 */ 0xcb,0x9f,0x13,0x7c,0x59,0xc9,0xf3,0x83,0x35,0x05,0x89,0x7b,0xd8,0x59,0xda,0xbf,
+/* 0x00fc50 */ 0x09,0x6e,0x3e,0x9b,0xea,0xdc,0x7e,0xf9,0xf3,0x81,0x8a,0xc7,0x18,0x13,0xd7,0x7d,
+/* 0x00fc60 */ 0x5e,0xe0,0x24,0xc7,0x2f,0xdf,0xec,0xfa,0x65,0xa3,0x02,0x1a,0x2c,0xdb,0x53,0x23,
+/* 0x00fc70 */ 0x10,0xad,0xe5,0x66,0x57,0x62,0x8c,0x02,0x15,0xbf,0xfc,0xbb,0x5d,0x8f,0x34,0xea,
+/* 0x00fc80 */ 0x81,0xff,0x2e,0xed,0xe7,0x4b,0x6e,0xcf,0xe0,0x12,0xde,0x2f,0x9c,0x6c,0xbf,0xfc,
+/* 0x00fc90 */ 0x65,0xa5,0xcb,0x2f,0xff,0x1d,0x0b,0x70,0xfd,0xf2,0x7f,0xd8,0xf4,0x59,0xfc,0xe9,
+/* 0x00fca0 */ 0x79,0xc0,0x78,0x39,0xff,0x8f,0xcb,0xf9,0x72,0x52,0x1c,0x23,0x78,0x49,0xfc,0x9b,
+/* 0x00fcb0 */ 0xde,0xfe,0xef,0x50,0xfc,0x78,0x1a,0x4f,0xe3,0x69,0x3c,0x8d,0xa7,0xf1,0x34,0x9e,
+/* 0x00fcc0 */ 0xc6,0xd3,0x78,0x1a,0x4f,0xe3,0x69,0x3c,0x8d,0xa7,0xf1,0x34,0x9e,0xc6,0xd3,0x78,
+/* 0x00fcd0 */ 0xfa,0x0f,0x98,0xc4,0x9c,0x92,0x24,0xe6,0x94,0xd8,0xff,0xef,0x6b,0x19,0x4f,0xe3,
+/* 0x00fce0 */ 0x69,0x3c,0x8d,0xa7,0xf1,0x34,0x9e,0xc6,0xd3,0x78,0x1a,0x4f,0xe3,0x69,0x3c,0x8d,
+/* 0x00fcf0 */ 0xa7,0xf1,0x34,0x9e,0xc6,0xd3,0x78,0x1a,0x4f,0xff,0xbe,0x29,0x2e,0x4e,0x08,0xf9,
+/* 0x00fd00 */ 0xeb,0x81,0x38,0x88,0x17,0x70,0x7d,0x71,0x30,0xea,0xbe,0xbc,0xb2,0x45,0x99,0x72,
+/* 0x00fd10 */ 0x1c,0xca,0xa4,0xf2,0x5b,0x0b,0x3e,0x3d,0xc3,0x6e,0xdb,0x71,0x12,0x4f,0xbd,0x11,
+/* 0x00fd20 */ 0x8e,0xe7,0x8e,0xc7,0xe3,0x17,0x1e,0x6f,0x86,0xbb,0x8e,0x37,0x00,0x7b,0xe3,0xb9,
+/* 0x00fd30 */ 0x2e,0xfa,0xaf,0xd5,0x50,0x3e,0x8a,0x16,0x6f,0xad,0x6e,0xbb,0xd0,0x3a,0xf1,0xd3,
+/* 0x00fd40 */ 0x0b,0x7f,0x55,0x6b,0x95,0x8f,0x9e,0x78,0xfd,0x92,0x5f,0xd1,0x3d,0x1d,0x6f,0x80,
+/* 0x00fd50 */ 0x59,0x3e,0x4a,0x0f,0x2e,0x7d,0x23,0x08,0xf7,0x1c,0x27,0xa5,0xf2,0xd1,0xe6,0xf8,
+/* 0x00fd60 */ 0x84,0xe3,0x52,0x99,0xdb,0x77,0xe2,0xdf,0xb2,0xef,0x45,0x80,0x1a,0x1a,0xbf,0xe7,
+/* 0x00fd70 */ 0xb8,0x0f,0xbe,0x79,0x74,0x1e,0xc0,0x05,0x8a,0xc0,0x57,0x1f,0xf5,0x21,0xfe,0xbf,
+/* 0x00fd80 */ 0xa8,0xe2,0x06,0x89,0x00,0x8d,0x02,0x00,
diff --git a/ecos/packages/hal/arm/xscale/uE250/current/src/uE250_plx.c b/ecos/packages/hal/arm/xscale/uE250/current/src/uE250_plx.c
new file mode 100644
index 0000000..80ab33f
--- /dev/null
+++ b/ecos/packages/hal/arm/xscale/uE250/current/src/uE250_plx.c
@@ -0,0 +1,237 @@
+//==========================================================================
+//
+// uE250_plx.c
+//
+// HAL support code for NMI uEngine uE250 PCI Local Bus (PLX)
+//
+//==========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 2003 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//==========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): David Mazur <david@mind.be>
+// Contributors: gthomas
+// Date: 2003-02-21
+// Purpose: uPCI local bus (PLX/9080) support
+// Description:
+//
+//####DESCRIPTIONEND####
+//
+//========================================================================*/
+
+#include <pkgconf/hal.h>
+#include <pkgconf/system.h>
+#include CYGBLD_HAL_PLATFORM_H
+#include CYGHWR_MEMORY_LAYOUT_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/infra/diag.h>
+
+#include <cyg/hal/hal_io.h> // IO macros
+#include <cyg/hal/hal_if.h> // calling interface API
+#include <cyg/hal/hal_arch.h> // Register state info
+#include <cyg/hal/hal_intr.h> // Interrupt names
+#include <cyg/hal/hal_cache.h>
+#include <cyg/io/pci_hw.h>
+#include <cyg/io/pci.h>
+
+#ifdef CYGPKG_IO_PCI
+
+externC void initialize_vga(void);
+
+#define _DEFINE_VARS
+#include <cyg/hal/plx.h>
+
+/**
+ * Initial values for the configuration registers of the PLX 9080
+ */
+static struct plx_init {
+ cyg_uint32 address, value;
+} plx_init_values[] = {
+ { 0x0, 0xffe00000 },
+ { 0x4, 0x80000001 },
+ { 0x8, 0x0 },
+ { 0xc, 0x0 },
+ { 0x10,0xffe00000 },
+ { 0x14,0x80000000 },
+ { 0x18,0x40030141 },
+ { 0x1c,0x0 },
+ { 0x20,0x0 },
+ { 0x24,0x0 },
+ { 0x28,0x0 },
+ { 0x2c,0x0 },
+ { 0x78,0x0 },
+ { 0x7c,0x0 },
+ { 0xf0,0xffff8000 },
+ { 0xf4,0x40008001 },
+ { 0xf8,0x00000243 },
+ { 0x900, 0x68 },
+ { 0xFFFFFFFF,0}, // End marker
+};
+
+#ifdef CYGSEM_HAL_LOAD_VGA_FPGA
+static unsigned char uE250_plx_bitstream[] = {
+#include "uE250_plx_bitstream.h"
+};
+externC void load_vga(cyg_uint8 *base, int len);
+#endif
+
+#if 0
+static void
+_show_pci_device(cyg_pci_device_id devid)
+{
+ int i, bus, devfn;
+ cyg_pci_device dev_info;
+
+ bus = CYG_PCI_DEV_GET_BUS(devid);
+ devfn = CYG_PCI_DEV_GET_DEVFN(devid);
+ cyg_pci_get_device_info(devid, &dev_info);
+ diag_printf("\n");
+ diag_printf("Bus: %d\n", CYG_PCI_DEV_GET_BUS(devid));
+ diag_printf("PCI Device: %d\n", CYG_PCI_DEV_GET_DEV(devid));
+ diag_printf("PCI Func : %d\n", CYG_PCI_DEV_GET_FN(devfn));
+ diag_printf("Vendor Id : 0x%08X\n", dev_info.vendor);
+ diag_printf("Device Id : 0x%08X\n", dev_info.device);
+ diag_printf("Command: %02x\n", dev_info.command);
+ for (i = 0; i < CYG_PCI_MAX_BAR; i++) {
+ diag_printf(" BAR[%d] 0x%08x /", i, dev_info.base_address[i]);
+ diag_printf(" probed size 0x%08x / CPU addr 0x%08x\n",
+ dev_info.base_size[i], dev_info.base_map[i]);
+ }
+}
+#endif
+
+static /*__inline__*/ void
+write_fdc37c672_configreg(cyg_uint8 regno, cyg_uint8 data)
+{
+ localbus_writeb(regno, FDC37C672_INDEX);
+ localbus_writeb(data, FDC37C672_DATA);
+}
+
+static /*__inline__*/ cyg_uint8
+read_fdc37c672_configreg(cyg_uint8 regno)
+{
+ localbus_writeb(regno, FDC37C672_INDEX);
+ return localbus_readb(FDC37C672_DATA) & 0xff;
+}
+
+/**
+ * Sets up the Base Address Registers of the PLX 9080
+ */
+void
+initialize_plx_bridge(void)
+{
+ cyg_pci_device_id plx_dev = CYG_PCI_NULL_DEVID;
+ struct plx_init *init = plx_init_values;
+ int bus, devfn;
+ cyg_pci_device dev_info;
+
+// diag_printf("Initializing PLX-9080 localbus controller\n");
+
+ if (cyg_pci_find_device((cyg_uint16)0x10B5, (cyg_uint16)0x9080, &plx_dev)) {
+ cyg_pci_get_device_info(plx_dev, &dev_info);
+ bus = CYG_PCI_DEV_GET_BUS(plx_dev);
+ devfn = CYG_PCI_DEV_GET_DEVFN(plx_dev);
+
+ // Run PLX/9080 initialization sequence
+ _plx_config_addr = dev_info.base_map[0] + LOCALBUS_CONFIG_OFFSET;
+ while (init->address != (cyg_uint32)0xFFFFFFFF) {
+ plx_config_writel(init->value, init->address);
+ init++;
+ }
+
+ // Turn device off so it can be re-configured
+ cyg_hal_plf_pci_cfg_write_byte(bus, devfn, CYG_PCI_CFG_COMMAND, 0);
+ // This lets the library probe the device so it can be setup.
+ cyg_pci_get_device_info(plx_dev, &dev_info);
+ // Now, assign new resources to the device
+ cyg_pci_configure_device(&dev_info);
+
+ // Re-enable device now that is's been configured
+ cyg_hal_plf_pci_cfg_write_byte(bus, devfn, CYG_PCI_CFG_COMMAND,
+ CYG_PCI_CFG_COMMAND_IO | CYG_PCI_CFG_COMMAND_MEMORY);
+
+ // See what was assigned - for later use
+ cyg_pci_get_device_info(plx_dev, &dev_info);
+ _plx_config_addr = dev_info.base_map[0] + LOCALBUS_CONFIG_OFFSET;
+ _plx_localbus_addr = dev_info.base_map[3];
+
+ // A little commercial plug :-)
+ localbus_writeb('M', ASCII_DISPLAY_BASE+8);
+ localbus_writeb('I', ASCII_DISPLAY_BASE+12);
+ localbus_writeb('N', ASCII_DISPLAY_BASE+16);
+ localbus_writeb('D', ASCII_DISPLAY_BASE+20);
+
+ // Configure SMSC FDC36c672 Super I/O controller
+
+ localbus_writeb(0x55,FDC37C672_CONFIG); // Enter FDC37C672 configuration mode
+
+ write_fdc37c672_configreg(7, 3); // parallel port to IRQ 7, IO 0x378
+ write_fdc37c672_configreg(0x30, 1);
+ write_fdc37c672_configreg(0x70, 7);
+ write_fdc37c672_configreg(0x60, 0x3);
+ write_fdc37c672_configreg(0x61, 0x78);
+
+ write_fdc37c672_configreg(7, 4); // first serial port to IRQ4, IO 0x3f8
+ write_fdc37c672_configreg(0x30, 1);
+ write_fdc37c672_configreg(0x70, 4);
+ write_fdc37c672_configreg(0x60, 0x3);
+ write_fdc37c672_configreg(0x61, 0xf8);
+
+ write_fdc37c672_configreg(7, 5); // second serial port to IRQ5, IO 0x2f8
+ write_fdc37c672_configreg(0x30, 1);
+ write_fdc37c672_configreg(0x70, 3);
+ write_fdc37c672_configreg(0x60, 0x2);
+ write_fdc37c672_configreg(0x61, 0xf8);
+
+ write_fdc37c672_configreg(7, 7); // PS/2 Keyboard/mouse to IRQ 1/5, IO 0x60
+ write_fdc37c672_configreg(0x30, 1);
+ write_fdc37c672_configreg(0x70, 1);
+ write_fdc37c672_configreg(0x72, 5);
+
+ localbus_writeb(0xAA,FDC37C672_CONFIG); // Leave FDC37C672 configuration mode
+
+#ifdef CYGSEM_HAL_LOAD_VGA_FPGA
+ load_vga(uE250_plx_bitstream, sizeof(uE250_plx_bitstream));
+#endif
+#ifdef CYGSEM_UE250_VGA_COMM
+ vga_comm_init(dev_info.base_map[2]);
+#endif
+ } else {
+ diag_printf("Can't find PLX controller!\n");
+ }
+}
+
+#endif // CYGPKG_IO_PCI
diff --git a/ecos/packages/hal/arm/xscale/uE250/current/src/uE250_plx_bitstream.h b/ecos/packages/hal/arm/xscale/uE250/current/src/uE250_plx_bitstream.h
new file mode 100644
index 0000000..6d3248f
--- /dev/null
+++ b/ecos/packages/hal/arm/xscale/uE250/current/src/uE250_plx_bitstream.h
@@ -0,0 +1,1368 @@
+//
+// Copyright (c) 2003 Intrinsyc Europe Ltd. All rights reserved.
+//
+// Redistribution and use in source or binary format is allowed
+// provided:
+// * This notice must be preserved
+// * The binary data which this file represents may only be
+// used on a NMI uPCI + uE250 based hardware platform.
+//
+
+/* 0x000000 */ 0x1f,0x8b,0x08,0x08,0x4e,0x5b,0x4d,0x3e,0x00,0x03,0x78,0x78,0x32,0x00,0xa4,0x9b,
+/* 0x000010 */ 0x7f,0x70,0x14,0x65,0x9a,0xc7,0x9f,0xe9,0xee,0x24,0x9d,0xe9,0x49,0xa6,0x09,0xe1,
+/* 0x000020 */ 0x2a,0x2a,0x42,0x13,0x22,0x3b,0x7a,0x43,0x18,0x03,0x62,0x0e,0x61,0xd2,0xc4,0xdc,
+/* 0x000030 */ 0x5e,0x6e,0xf1,0xca,0x9c,0xeb,0x55,0x59,0x57,0xd6,0xdd,0xac,0x66,0xb7,0xd8,0x2b,
+/* 0x000040 */ 0xf6,0x2a,0xee,0x1f,0x7b,0xdc,0xdd,0xd6,0xed,0x4b,0x12,0x17,0x24,0xdc,0x92,0x45,
+/* 0x000050 */ 0xca,0xe5,0xf6,0x3c,0x6b,0x54,0xae,0x64,0x5d,0xaf,0x6a,0x00,0xd1,0x80,0xca,0x36,
+/* 0x000060 */ 0x31,0x87,0x01,0x22,0x64,0xa3,0xb7,0xc7,0x72,0x94,0x8e,0x6c,0xd6,0x1b,0x31,0x62,
+/* 0x000070 */ 0x44,0x4a,0x03,0x84,0x70,0xef,0x8f,0x7e,0xdf,0xfe,0x31,0x3d,0x33,0xc1,0xc3,0x3f,
+/* 0x000080 */ 0xfc,0xf2,0xf6,0x9b,0xa6,0xdf,0x27,0x6f,0xbf,0xcf,0xe7,0xfd,0xbe,0x4f,0x43,0x65,
+/* 0x000090 */ 0x74,0x92,0xfd,0x07,0x10,0xfa,0x16,0x54,0x75,0x3d,0xfa,0xdd,0x47,0x1e,0xf9,0xc1,
+/* 0x0000a0 */ 0x77,0x3b,0x1b,0xff,0xf6,0xd1,0x4e,0x78,0x04,0x2a,0x7f,0x70,0x57,0xa2,0xeb,0xb1,
+/* 0x0000b0 */ 0xa6,0x15,0x09,0x78,0x14,0xb4,0xa6,0x44,0x22,0xb1,0x2c,0xd1,0xbc,0x6c,0x79,0x02,
+/* 0x0000c0 */ 0x3a,0xa1,0xf2,0xce,0xc4,0xaa,0xc4,0x8a,0x55,0x4d,0xcb,0xe1,0xdb,0x10,0x9a,0x13,
+/* 0x0000d0 */ 0xb9,0x8e,0xff,0xbc,0xf8,0x2f,0x7f,0xf1,0x9d,0x04,0xa0,0x10,0x00,0x54,0x24,0x42,
+/* 0x0000e0 */ 0x29,0xf2,0x7f,0x2d,0x11,0x32,0x42,0x80,0xfe,0x3a,0x96,0x00,0x0b,0xff,0x3d,0x74,
+/* 0x0000f0 */ 0xd4,0xbe,0x5e,0x99,0x00,0x83,0xfc,0x1f,0xec,0xbf,0x87,0x12,0x60,0x42,0x07,0x24,
+/* 0x000100 */ 0x15,0xa8,0x81,0xd9,0xfc,0x51,0x90,0x2d,0xa4,0x1b,0xec,0x0f,0xd2,0xac,0xfa,0xc3,
+/* 0x000110 */ 0x57,0xee,0x7f,0xa3,0xcf,0x73,0xa3,0xe3,0xd5,0x67,0xd7,0x9f,0x8b,0x6b,0xa4,0xbf,
+/* 0x000120 */ 0x0a,0x92,0x11,0xda,0x02,0xf5,0xf8,0x31,0x25,0x03,0x72,0xb0,0x0a,0xaa,0x51,0xc8,
+/* 0x000130 */ 0x52,0xd6,0xc3,0xcd,0x50,0x4e,0x6f,0xdc,0x32,0xc4,0xfb,0xa3,0xb2,0xd7,0xe1,0x3a,
+/* 0x000140 */ 0xb4,0x58,0xd1,0x49,0x79,0x35,0x16,0xf7,0x10,0x31,0x4d,0x5a,0x06,0x23,0x93,0xf2,
+/* 0x000150 */ 0x25,0x7e,0x69,0x12,0xba,0x78,0x7f,0x98,0x80,0xd7,0xa0,0xd1,0xd2,0x32,0x52,0x9c,
+/* 0x000160 */ 0x0b,0xdc,0x22,0x35,0x8e,0xaa,0x19,0x69,0x5c,0xe9,0x63,0x2d,0x59,0x25,0x61,0xf7,
+/* 0x000170 */ 0xdf,0x52,0x3b,0x02,0xcf,0x43,0xdc,0xd2,0x12,0x52,0x84,0x8b,0x6d,0xb0,0x1f,0x0b,
+/* 0x000180 */ 0x35,0x81,0x7f,0xd0,0x6e,0x79,0x2e,0xc4,0xef,0x6f,0xcd,0x7b,0x29,0xe8,0xfe,0x58,
+/* 0x000190 */ 0xe0,0xfb,0x7f,0x02,0xbf,0x54,0x48,0x0b,0x4c,0x2a,0x29,0x3e,0x80,0x79,0x13,0x70,
+/* 0x0001a0 */ 0x15,0x92,0x56,0x34,0x23,0xc7,0xb1,0x58,0x45,0x04,0x6b,0x89,0x67,0xe4,0xd3,0xca,
+/* 0x0001b0 */ 0x55,0x89,0x5e,0xb2,0x14,0x7e,0xff,0x67,0x43,0x62,0xbc,0xd3,0x6e,0xb1,0x86,0x89,
+/* 0x0001c0 */ 0x85,0xac,0x25,0x67,0xf2,0xfb,0x9b,0xfa,0x4b,0xec,0xfe,0x03,0xf4,0xfe,0x49,0xe7,
+/* 0x0001d0 */ 0xfe,0x58,0x7c,0xc4,0xc5,0xa8,0x62,0xd8,0xfd,0xdb,0xcb,0xe2,0x81,0xcf,0xbf,0x8c,
+/* 0x0001e0 */ 0x89,0x7b,0x58,0xcb,0x18,0x9e,0xfd,0xec,0x8f,0x51,0x76,0x1f,0x8d,0x06,0x6e,0x8c,
+/* 0x0001f0 */ 0x30,0x91,0x90,0x46,0xb8,0x68,0x83,0xe5,0x4c,0x0c,0xe3,0x77,0xc5,0xee,0x1f,0x5a,
+/* 0x000200 */ 0x00,0xaf,0xa2,0xa5,0x59,0x6d,0xa3,0x24,0xc4,0x7b,0x5c,0xfc,0x86,0x8b,0x61,0x71,
+/* 0x000210 */ 0x7f,0x15,0x22,0xf0,0x39,0xac,0x26,0x0f,0x69,0x8b,0x84,0x3c,0x22,0x44,0x9d,0x2d,
+/* 0x000220 */ 0xc6,0xc4,0xac,0x37,0xe7,0xd9,0xf1,0xf9,0xcc,0x15,0x9f,0x10,0x15,0x78,0xe0,0xe6,
+/* 0x000230 */ 0x55,0xd6,0x62,0x95,0xf3,0xf8,0xec,0x29,0x9b,0xc8,0x0b,0x0b,0x15,0x43,0x58,0x5c,
+/* 0x000240 */ 0x80,0xff,0x61,0x2d,0xe7,0xc5,0xfc,0x69,0x9f,0xf3,0x34,0xbc,0x0a,0x4b,0x2d,0xad,
+/* 0x000250 */ 0x4b,0x3a,0x9b,0x27,0x46,0x60,0x33,0x13,0x83,0xe2,0xf7,0x7b,0x04,0x9e,0xf1,0x0e,
+/* 0x000260 */ 0x33,0x6c,0x8b,0x1c,0x69,0x31,0x36,0xb3,0x4b,0x19,0x53,0xc4,0xbf,0x76,0x24,0x2f,
+/* 0x000270 */ 0x8c,0x42,0x9c,0x42,0x3d,0x54,0x94,0x8f,0x89,0xf9,0x99,0x9b,0xb7,0x07,0xae,0x40,
+/* 0x000280 */ 0x12,0x45,0xd3,0x52,0xce,0x16,0xb2,0x10,0x57,0xa5,0x33,0x4c,0x9c,0x69,0xe0,0xcf,
+/* 0x000290 */ 0xd3,0x0e,0x59,0x98,0x82,0x24,0x44,0x91,0x5c,0x44,0x8c,0x01,0xbf,0xbf,0xaa,0x8f,
+/* 0x0002a0 */ 0xc3,0x65,0x48,0x9a,0xd1,0xfe,0xc5,0x5c,0xc8,0x44,0xac,0x36,0xe3,0x4c,0xd0,0x96,
+/* 0x0002b0 */ 0x41,0xf1,0x3c,0x48,0xe9,0x84,0x83,0xd0,0x68,0x6a,0xfd,0xd2,0xb8,0x57,0xa8,0xfd,
+/* 0x0002c0 */ 0xf5,0xa2,0xc5,0x02,0xbe,0x2c,0xd4,0x95,0x35,0xd0,0xc6,0xca,0x5d,0x76,0xb7,0xb0,
+/* 0x0002d0 */ 0xd3,0xdf,0xb9,0xc3,0x51,0x67,0x3e,0x28,0x0a,0xec,0x85,0xb8,0xa9,0xd5,0x4a,0x43,
+/* 0x0002e0 */ 0x4c,0xe8,0x44,0x28,0x1b,0xbe,0xa1,0x62,0x91,0xb6,0x5b,0x06,0x43,0x7c,0x3e,0x0c,
+/* 0x0002f0 */ 0x54,0xa5,0xbc,0xa3,0xab,0xb6,0x85,0x1a,0xc1,0x02,0xd9,0x97,0x4e,0xca,0x7c,0x7e,
+/* 0x000300 */ 0xd6,0x55,0xb1,0x41,0xdd,0xef,0x1a,0x1d,0x17,0x73,0x2f,0xf1,0x96,0x0f,0xcb,0xbb,
+/* 0x000310 */ 0xc4,0xf3,0xdb,0x57,0x47,0xf3,0xfb,0xcb,0x1f,0x72,0x71,0x54,0xcc,0x9f,0x3f,0xd2,
+/* 0x000320 */ 0xb3,0x30,0x00,0x8d,0xa0,0x6d,0x95,0x6c,0x81,0xa4,0xac,0x6e,0x8b,0x0f,0x78,0xcb,
+/* 0x000330 */ 0xc9,0x36,0x11,0xff,0x32,0x3e,0xcc,0x6e,0xf7,0x78,0x99,0xf8,0x4f,0x2e,0x2c,0xb1,
+/* 0x000340 */ 0xfe,0xd4,0xcd,0xdb,0x5d,0x20,0xfe,0x44,0x20,0x1e,0x4f,0x31,0x3f,0xd3,0xb5,0xbb,
+/* 0x000350 */ 0xf3,0x1e,0x1b,0x0b,0x89,0x88,0x7b,0xc5,0xf3,0xe7,0xc4,0xfa,0x13,0x83,0xc0,0xfe,
+/* 0x000360 */ 0x54,0x48,0xa2,0xe5,0x38,0xf0,0xfb,0xc7,0xf4,0xf4,0x2c,0xe6,0xdb,0x71,0xb1,0xfe,
+/* 0x000370 */ 0xc4,0x94,0x18,0x1c,0x82,0x46,0xa4,0x91,0xf9,0x5c,0x50,0x1c,0x17,0xf3,0x21,0xc6,
+/* 0x000380 */ 0xd7,0x9f,0xa0,0xf7,0x45,0x88,0xe3,0xce,0xfa,0x33,0x67,0x3e,0x7b,0x5b,0x3b,0x5c,
+/* 0x000390 */ 0xef,0xaf,0x4e,0xc4,0x3a,0xd7,0x8b,0x9c,0x73,0xee,0xaf,0x2e,0x80,0x2f,0xd1,0x9a,
+/* 0x0003a0 */ 0x6c,0x74,0xa3,0xfc,0x5e,0x61,0x71,0x5e,0xac,0x3f,0xea,0xbc,0x97,0x82,0xd7,0x13,
+/* 0x0003b0 */ 0x8f,0x18,0x14,0xeb,0x8f,0x59,0x36,0x03,0xd7,0x51,0x4b,0x36,0x3a,0x25,0xbb,0x45,
+/* 0x0003c0 */ 0xf7,0x3d,0x58,0xcc,0x9d,0x51,0xed,0x16,0x27,0x7f,0xed,0x09,0x3d,0x9d,0xff,0xfc,
+/* 0x0003d0 */ 0xa6,0x7f,0x21,0x3a,0xef,0xe4,0x17,0x3d,0x68,0xbd,0x7a,0xc1,0xd7,0x72,0x14,0x78,
+/* 0x0003e0 */ 0xfc,0x53,0xc5,0xd6,0x9f,0x11,0xc3,0x16,0xa7,0xc5,0xfb,0x1e,0x73,0x8f,0xf7,0x35,
+/* 0x0003f0 */ 0x5b,0x84,0xec,0x44,0xf6,0x09,0xbf,0x34,0x23,0x9e,0x87,0xe4,0x5f,0xda,0xd8,0x1f,
+/* 0x000400 */ 0x10,0x96,0x11,0x2e,0xb2,0x62,0xfd,0x09,0xe9,0x62,0x19,0x7f,0xdd,0x9b,0xef,0x22,
+/* 0x000410 */ 0x44,0x7c,0xca,0x5a,0x9c,0x7c,0xbd,0x49,0xd9,0xe0,0x4d,0xbb,0x54,0x5c,0xc5,0x22,
+/* 0x000420 */ 0x4c,0x44,0x9f,0xc4,0xf2,0xbb,0xc9,0xd7,0x1f,0x54,0x16,0xd4,0xdf,0xce,0xd7,0x13,
+/* 0x000430 */ 0xf0,0x4b,0xd6,0x62,0xb9,0xd6,0x1f,0x3b,0xcd,0xe9,0xfe,0xf8,0x84,0x89,0x60,0xeb,
+/* 0x000440 */ 0xb3,0x6b,0xfd,0x01,0x60,0x69,0x57,0xcb,0xc8,0xbe,0x89,0x11,0x21,0xe2,0x63,0x2c,
+/* 0x000450 */ 0xee,0xcf,0xcc,0xb5,0xc4,0xfa,0x93,0x9e,0x37,0x1d,0x90,0xdf,0x3f,0xf5,0xb5,0x0c,
+/* 0x000460 */ 0x8b,0xf5,0x07,0x95,0x4d,0xc1,0x34,0xfe,0xf7,0x23,0x16,0x9e,0x24,0xa7,0xd8,0xd5,
+/* 0x000470 */ 0x1f,0xc2,0xfb,0x70,0x37,0xef,0xff,0x23,0x1a,0x1f,0x87,0x7f,0xf4,0x1c,0x64,0x30,
+/* 0x000480 */ 0x59,0xe1,0xd5,0x32,0x0b,0x7d,0x3c,0xd1,0xf7,0x41,0xbd,0x27,0x02,0x2e,0xfe,0x29,
+/* 0x000490 */ 0x1b,0x66,0xfd,0x01,0x27,0x65,0x7b,0x74,0xf7,0xc1,0x93,0xd0,0xe0,0x99,0x18,0xe7,
+/* 0x0004a0 */ 0x5c,0xfc,0xb3,0x07,0x32,0x6a,0xbd,0x81,0x57,0xef,0x9c,0xb8,0xbf,0xca,0xee,0x5f,
+/* 0x0004b0 */ 0x23,0xee,0xef,0xf0,0x8f,0x39,0x67,0x02,0xa6,0xcc,0x84,0x19,0xd9,0x22,0x7f,0x00,
+/* 0x0004c0 */ 0x27,0x58,0x7c,0x36,0xe0,0xb4,0xbb,0x92,0x07,0xaa,0x91,0xf1,0x09,0xbf,0x7f,0x1a,
+/* 0x0004d0 */ 0xf3,0xcf,0xb4,0xde,0x62,0x46,0x7f,0x2b,0x8f,0x4a,0x76,0x34,0x46,0xe0,0x4b,0x5f,
+/* 0x0004e0 */ 0x7c,0x72,0x62,0xfd,0x21,0xfc,0x93,0xb3,0x9a,0x52,0x78,0xb5,0xbf,0x5d,0x3a,0xc1,
+/* 0x0004f0 */ 0xe3,0xcf,0xc4,0xda,0x09,0xe5,0x6a,0x28,0x80,0x7f,0x06,0x50,0xbd,0xa9,0xee,0x90,
+/* 0x000500 */ 0xd7,0xf3,0xe7,0x9f,0x86,0xed,0xbe,0x19,0xe2,0xe6,0x9f,0x76,0x0c,0x81,0x06,0x52,
+/* 0x000510 */ 0x63,0x98,0x76,0x48,0x7c,0xf0,0x34,0x13,0xd3,0x40,0xc4,0xc7,0xcd,0x3f,0x37,0x87,
+/* 0x000520 */ 0x5e,0x45,0x8b,0xd3,0xea,0x46,0xe9,0xeb,0x60,0x67,0xff,0xf7,0xcc,0xcd,0xe8,0x7b,
+/* 0x000530 */ 0xd9,0x75,0x2e,0x10,0x72,0xf1,0x8f,0xaa,0xc2,0xef,0x20,0x81,0x22,0x86,0xfc,0x67,
+/* 0x000540 */ 0xf0,0x26,0xe7,0x9f,0x37,0x7d,0x20,0x34,0xe8,0xf0,0x4f,0xd5,0x00,0x5c,0xd7,0xdf,
+/* 0x000550 */ 0x40,0x1e,0xfe,0xa9,0x11,0x13,0x89,0xce,0xc0,0x49,0x79,0xd4,0xc5,0x3f,0x27,0xe1,
+/* 0x000560 */ 0x63,0xd4,0x94,0x8d,0xa4,0xe5,0x06,0x67,0x7e,0x9e,0x40,0xfb,0x3c,0x2f,0xa6,0x8b,
+/* 0x000570 */ 0x7f,0xf0,0xfa,0xb3,0x1d,0x16,0x59,0x6a,0x97,0x54,0xcb,0x57,0x8f,0xf7,0x61,0x7b,
+/* 0x000580 */ 0x7a,0x91,0x67,0x3d,0x19,0x13,0xbf,0x5f,0x4b,0x3f,0x0c,0x2f,0xa0,0x45,0xd9,0xca,
+/* 0x000590 */ 0x98,0xc3,0x7b,0x27,0xe1,0x67,0xfd,0x8b,0x3c,0xe0,0x37,0x29,0xd6,0x9f,0xf6,0xda,
+/* 0x0005a0 */ 0xb7,0x71,0xf4,0x0c,0xab,0x52,0xf0,0x24,0x8e,0xa7,0xf4,0x24,0x6e,0x71,0xc7,0xd3,
+/* 0x0005b0 */ 0xc3,0x3f,0xe6,0x79,0xd8,0x87,0xaa,0xd2,0x5a,0xcc,0xe1,0x9f,0x33,0xd0,0x84,0x45,
+/* 0x0005c0 */ 0x85,0x00,0xa1,0x2b,0xe2,0x79,0x28,0xff,0x28,0x49,0xa3,0xd1,0x93,0x86,0x72,0x25,
+/* 0x0005d0 */ 0xf9,0x67,0xe1,0xcf,0x43,0x22,0xf1,0x29,0x70,0xcc,0x97,0x01,0x7d,0xfc,0x63,0x36,
+/* 0x0005e0 */ 0x9a,0xb7,0xec,0x92,0x1a,0x78,0xda,0x6d,0x80,0xdf,0xfa,0x12,0x71,0xd6,0xc3,0x3f,
+/* 0x0005f0 */ 0x6f,0xc0,0xb2,0x94,0x36,0x2a,0xbd,0x8c,0xaf,0xde,0x41,0xfb,0x97,0x3d,0xa1,0x78,
+/* 0x000600 */ 0xfb,0x7b,0xf9,0xe7,0x80,0xb5,0xd4,0xd4,0x1e,0x94,0x76,0x72,0x10,0x52,0xe0,0xa7,
+/* 0x000610 */ 0x3e,0x30,0x70,0xf1,0x8f,0x42,0xf9,0x07,0x69,0x48,0xce,0xf0,0xd1,0x19,0x30,0xdc,
+/* 0x000620 */ 0xe1,0x1d,0xef,0x05,0x87,0x7f,0xe6,0xed,0xa6,0x74,0x17,0xdd,0x29,0x7f,0xdb,0x1e,
+/* 0x000630 */ 0x9d,0xf6,0x7b,0xb8,0x6c,0x52,0x1e,0x10,0xe3,0x3d,0xea,0xe1,0x9f,0x6b,0xf8,0x7d,
+/* 0x000640 */ 0xac,0x3e,0xed,0xd0,0x4e,0x27,0x1c,0x33,0xbd,0xf1,0x71,0xf8,0xa7,0x99,0xf0,0x4f,
+/* 0x000650 */ 0x1a,0x43,0x8e,0xda,0x9d,0x35,0x6d,0xda,0x31,0xa4,0x2d,0x69,0x2a,0x52,0x98,0x7f,
+/* 0x000660 */ 0x92,0x94,0x7f,0x14,0x0f,0xff,0x18,0x78,0x50,0x77,0x3a,0xa3,0x6b,0x83,0x4d,0x86,
+/* 0x000670 */ 0x7f,0xbc,0xc5,0xf8,0xa7,0x01,0x9e,0xa0,0xa2,0xd5,0x89,0xa7,0xc3,0x3f,0xf3,0xf2,
+/* 0x000680 */ 0x69,0xad,0x93,0xfe,0x7e,0x35,0xd7,0xf3,0xbb,0xf8,0xc7,0x99,0x06,0xe3,0xc8,0x16,
+/* 0x000690 */ 0x43,0xce,0x0f,0x5e,0x86,0x55,0x01,0xfc,0xa3,0x26,0x8d,0x85,0x5b,0x34,0x1c,0x76,
+/* 0x0006a0 */ 0x16,0xed,0x94,0x3a,0x5c,0x98,0x7f,0x42,0x31,0x38,0x6c,0x2d,0xdb,0x15,0x1d,0x97,
+/* 0x0006b0 */ 0x62,0xb0,0x95,0xd1,0x4e,0x0c,0xcf,0xe7,0xa2,0xfc,0x33,0x1a,0xcf,0xd2,0xfd,0x69,
+/* 0x0006c0 */ 0x0f,0x7b,0x5f,0xee,0xa3,0xe2,0x96,0x40,0xfe,0x49,0x87,0xe6,0xc3,0x01,0xfc,0x92,
+/* 0x0006d0 */ 0x86,0xc9,0xfe,0x8b,0xee,0x56,0xbe,0x8f,0x7f,0xf0,0x67,0x86,0x97,0x07,0x1c,0xfe,
+/* 0x0006e0 */ 0xd9,0x83,0xf9,0xe7,0x0b,0x0c,0x39,0xda,0x46,0xb9,0x5a,0x7a,0x8b,0xd0,0xce,0x94,
+/* 0x0006f0 */ 0xfc,0x57,0xf0,0x56,0xba,0x20,0xff,0xdc,0xfa,0x12,0x19,0x94,0x6b,0xf5,0x18,0xc0,
+/* 0x000700 */ 0xe2,0x1f,0xdd,0x2d,0x55,0x6e,0xfe,0x01,0xce,0x3f,0x1b,0xe5,0x24,0x9c,0xa2,0xb4,
+/* 0x000710 */ 0xd3,0x33,0x03,0x9f,0x6e,0xf1,0x12,0x91,0xe5,0xf0,0x8f,0xd8,0x7f,0xc9,0x0f,0xf3,
+/* 0x000720 */ 0xdd,0xd6,0x59,0x69,0x73,0x61,0xfe,0x01,0xbb,0xff,0x25,0x69,0xbe,0xe8,0x9f,0xc7,
+/* 0x000730 */ 0x3f,0x96,0x58,0x7f,0x0c,0xcc,0x3f,0xaf,0xf1,0xfd,0xbe,0x1d,0xcf,0x80,0xf5,0x3c,
+/* 0x000740 */ 0x9f,0x7f,0x0c,0x29,0xce,0xf2,0xcb,0x24,0x1e,0xe6,0xa7,0x2c,0xe3,0x8b,0xfc,0x75,
+/* 0x000750 */ 0xdc,0xc3,0x3f,0x78,0xb6,0x8c,0x46,0x77,0x17,0xe3,0x43,0x2f,0xff,0xcc,0xc0,0xf2,
+/* 0x000760 */ 0x5c,0x34,0xa7,0xc5,0xf9,0x7a,0x1e,0xe1,0x89,0x5e,0xac,0xf0,0x56,0x9b,0x9b,0x7f,
+/* 0x000770 */ 0x06,0xa0,0xfe,0xa1,0x75,0xdb,0xba,0xb9,0x11,0x51,0x13,0xcf,0xcb,0x5f,0x6e,0xfe,
+/* 0x000780 */ 0x21,0xdb,0xfc,0xe7,0x2c,0x6d,0xaf,0xb3,0xdf,0x8f,0xeb,0x7d,0xfe,0xfe,0x3e,0xfe,
+/* 0x000790 */ 0x31,0x58,0x7c,0xf6,0x7b,0x02,0xe5,0xc4,0xa7,0xc6,0xc5,0x3f,0x55,0x1b,0xf0,0xa0,
+/* 0x0007a0 */ 0x9a,0xd0,0xfd,0x19,0x4d,0xf8,0x0f,0x71,0x27,0x11,0xdb,0x2d,0x2e,0xfe,0xb9,0x95,
+/* 0x0007b0 */ 0x0e,0x0a,0xb9,0x46,0xa7,0x79,0x88,0x88,0xf2,0x4c,0xce,0xc5,0x3f,0x41,0xbc,0x64,
+/* 0x0007c0 */ 0xfb,0x21,0x53,0xe6,0xfb,0x79,0xfe,0x8f,0x3e,0x11,0xc4,0x7b,0xa1,0xc6,0x3b,0x30,
+/* 0x0007d0 */ 0xb1,0x5c,0x40,0xf6,0xc0,0x27,0xc1,0xe1,0x9f,0x60,0x1e,0xbe,0xc3,0xaa,0x74,0xb5,
+/* 0x0007e0 */ 0x5c,0x0c,0xf2,0x7f,0xfc,0x3c,0xd9,0x4f,0xf8,0xd3,0xcf,0x3f,0xa1,0x42,0xfe,0x83,
+/* 0x0007f0 */ 0x75,0xeb,0x28,0x7e,0x6c,0xd6,0x12,0xb2,0xda,0x84,0xff,0x33,0x27,0xd8,0xff,0x69,
+/* 0x000800 */ 0x81,0xaa,0x4b,0x78,0x21,0xb2,0x5b,0xa6,0xf2,0xfd,0x1f,0x4e,0x9b,0xce,0x6b,0xd8,
+/* 0x000810 */ 0x2f,0x40,0x28,0xd8,0xff,0xf1,0x3c,0x7f,0x9c,0xf1,0xb0,0x3d,0x91,0x2e,0x8a,0xf9,
+/* 0x000820 */ 0x00,0x8a,0xcb,0xf6,0x79,0xde,0x1d,0xa8,0x4a,0x5d,0x1a,0x96,0xec,0x89,0x31,0xe5,
+/* 0x000830 */ 0xf0,0x8f,0x9e,0x6f,0xfb,0x10,0xb1,0xcc,0x50,0x1f,0xc2,0xc2,0x26,0xa2,0x9c,0x8b,
+/* 0x000840 */ 0x7f,0x5c,0xb6,0xcf,0xef,0xdc,0xd8,0x53,0xa5,0xcb,0x23,0xc8,0x06,0xa1,0x31,0x31,
+/* 0x000850 */ 0xdd,0xcc,0xda,0xe0,0xf8,0xd8,0x3b,0x8e,0xeb,0x7e,0xff,0x47,0x2d,0x14,0xff,0x2c,
+/* 0x000860 */ 0x5e,0xa6,0x70,0xfc,0x75,0x3f,0xff,0x6c,0x0a,0xf6,0x7f,0x96,0x01,0x26,0xa2,0x77,
+/* 0x000870 */ 0xe1,0xd5,0x34,0x6d,0x39,0x27,0xfc,0x96,0x45,0x7e,0xff,0x47,0x88,0x4a,0x2a,0xd2,
+/* 0x000880 */ 0xb4,0x25,0x2b,0xfc,0x9f,0xf5,0x05,0xf7,0x5f,0x6a,0x73,0x20,0xff,0x28,0x7b,0xf2,
+/* 0x000890 */ 0x6c,0x1f,0x22,0x5a,0x50,0xd5,0x8b,0xf2,0x15,0x64,0xb7,0x9c,0x71,0xf8,0xa7,0xc8,
+/* 0x0008a0 */ 0x7e,0x1c,0x02,0xf9,0xa7,0xe0,0x7e,0x5f,0x97,0x15,0xfd,0xa3,0x7c,0xfe,0x69,0x28,
+/* 0x0008b0 */ 0xec,0x3f,0xf0,0x44,0x1c,0xe0,0xff,0x14,0xe8,0xff,0x8b,0x82,0xfe,0x8f,0x2e,0xf9,
+/* 0x0008c0 */ 0xfc,0x90,0xca,0x9a,0x6e,0x25,0xbd,0x29,0xe6,0xe7,0x9f,0x5b,0x53,0xc1,0xe3,0xad,
+/* 0x0008d0 */ 0x8d,0x76,0x6b,0x06,0xca,0x19,0x3e,0xff,0xa7,0xf9,0xdf,0xf2,0x6d,0x1c,0x22,0x5a,
+/* 0x0008e0 */ 0x88,0xc3,0x73,0x29,0xcd,0x51,0x61,0x89,0xe0,0x99,0xb2,0xe0,0xfe,0x58,0xfc,0x5c,
+/* 0x0008f0 */ 0x5b,0xc2,0x41,0xd1,0xe1,0x9f,0x9b,0xb8,0xff,0x43,0x1e,0x83,0xfb,0x3f,0x4c,0xf4,
+/* 0x000900 */ 0x4a,0x8b,0xa4,0x2d,0x7e,0xff,0xa7,0x1d,0x7a,0x0b,0x8c,0x77,0x5d,0xad,0x54,0x06,
+/* 0x000910 */ 0x9b,0x58,0xcb,0x98,0xc3,0x3f,0xb5,0x82,0x7f,0xbc,0x20,0xd4,0xa6,0xf5,0x97,0x8b,
+/* 0x000920 */ 0xf8,0xbb,0xf8,0x47,0xd9,0x9d,0xe7,0xde,0x50,0xd1,0x8e,0xc5,0xd7,0xfa,0x8f,0xf9,
+/* 0x000930 */ 0xf9,0x67,0x7d,0xf0,0x7c,0x50,0xe8,0x7c,0x10,0x44,0x74,0xe6,0x2b,0xfb,0x3f,0x6a,
+/* 0x000940 */ 0xb0,0xff,0x23,0x15,0xe2,0x1f,0xb5,0x98,0xff,0x33,0x11,0xe0,0xff,0x84,0xe6,0x17,
+/* 0x000950 */ 0xf6,0x6f,0x85,0x91,0xf2,0xff,0xf0,0x7f,0x6e,0x2d,0xe0,0xff,0x0c,0x79,0xfc,0x1f,
+/* 0x000960 */ 0x89,0xc7,0x27,0xa5,0x1c,0x0e,0xf2,0x7f,0x98,0x78,0x06,0x13,0xd1,0x72,0x22,0x46,
+/* 0x000970 */ 0x1d,0xfe,0x81,0xc0,0xf5,0x47,0x59,0x3a,0x88,0xc5,0x7c,0x0c,0x42,0x8b,0xac,0xea,
+/* 0x000980 */ 0x40,0xfe,0xc9,0x1b,0x6f,0xb8,0xab,0xfb,0x75,0x20,0xfd,0x71,0xcb,0x90,0xe0,0x1f,
+/* 0x000990 */ 0xb3,0x76,0x5b,0x70,0x3c,0x27,0xb5,0x66,0x9a,0xe8,0x0d,0x62,0x74,0x9c,0x71,0xf8,
+/* 0x0009a0 */ 0xa7,0x2c,0x78,0xbc,0x2d,0x56,0xf5,0x80,0xfc,0x06,0xce,0x2f,0x74,0x23,0xe9,0x3c,
+/* 0x0009b0 */ 0x4f,0x5a,0x2f,0x82,0x3d,0x42,0x8c,0x07,0xf9,0x3f,0x5e,0x31,0x88,0x97,0xfd,0x87,
+/* 0x0009c0 */ 0x8d,0x13,0xb4,0x65,0x6e,0x29,0xff,0xc7,0x16,0x2f,0xd1,0xfc,0x5b,0x99,0x71,0xed,
+/* 0x0009d0 */ 0xbf,0x0a,0xfb,0x3f,0x58,0x6c,0xe0,0xf9,0x3a,0xc0,0xff,0xf1,0xc6,0x47,0x89,0x13,
+/* 0x0009e0 */ 0x1e,0x88,0xd0,0x7c,0x77,0x93,0xc7,0xff,0xa9,0xcb,0x3f,0x76,0x11,0x62,0x03,0xcf,
+/* 0x0009f0 */ 0xbf,0x79,0xfc,0x93,0x3f,0x5e,0x47,0x6c,0xf7,0xfa,0x3f,0x41,0xdd,0x28,0xf6,0x98,
+/* 0x000a00 */ 0xf4,0x44,0x8c,0xb6,0x8c,0x06,0x9d,0x7f,0x11,0x1e,0xe0,0xe3,0x35,0xb0,0x40,0x92,
+/* 0x000a10 */ 0x40,0x97,0x6c,0xb9,0xe0,0x1f,0x3d,0x70,0x3e,0xa8,0xd4,0x01,0x8b,0x84,0x78,0x3e,
+/* 0x000a20 */ 0x0a,0xf1,0xdf,0xaf,0x35,0x8f,0xde,0x7f,0x48,0x73,0xb9,0x67,0xec,0x5f,0x5c,0xd7,
+/* 0x000a30 */ 0x0f,0xe2,0xfe,0x8e,0x5f,0x6d,0xf3,0x0f,0xb2,0xc3,0xf2,0x4f,0xae,0xf8,0x8c,0x3a,
+/* 0x000a40 */ 0x27,0x56,0x59,0x3f,0xff,0xa4,0xd9,0x78,0x43,0x64,0x74,0xf7,0xb2,0x81,0x97,0x9d,
+/* 0x000a50 */ 0x11,0x11,0xa8,0x38,0x1d,0xcc,0x3f,0xf6,0x69,0xce,0x05,0xe3,0x2a,0xac,0xfc,0xa0,
+/* 0x000a60 */ 0x42,0x7f,0x5e,0x5c,0x2a,0xce,0x3f,0x9f,0xc0,0x6b,0xa3,0xf5,0x16,0xde,0x0f,0x8a,
+/* 0x000a70 */ 0xa9,0xf2,0x85,0x9f,0x7f,0x4c,0x77,0x7c,0xde,0x66,0xfe,0x58,0x55,0x98,0x85,0x0e,
+/* 0x000a80 */ 0x4f,0x8c,0xef,0x8b,0xf9,0x66,0x00,0xe6,0x9f,0xee,0xef,0x65,0x6f,0x71,0xf3,0x40,
+/* 0x000a90 */ 0xe8,0x55,0x74,0xdb,0x64,0xdf,0xb0,0x24,0x50,0x61,0xa4,0x96,0xf7,0xb7,0xcf,0xbf,
+/* 0x000aa0 */ 0x4c,0x1b,0x7b,0xe2,0x94,0x7f,0xcc,0x77,0xd4,0x15,0x58,0x48,0xdb,0x40,0x9c,0x7f,
+/* 0x000ab0 */ 0xf1,0xfe,0x41,0xfc,0x33,0x01,0x7f,0xc7,0xfc,0xd8,0x0d,0x14,0x84,0x16,0x4e,0x56,
+/* 0x000ac0 */ 0x64,0xc5,0xfb,0x68,0xf3,0x0f,0x54,0x7b,0xe6,0xe7,0xc7,0xb0,0xc0,0xe3,0xd0,0x0e,
+/* 0x000ad0 */ 0xfa,0xf9,0x07,0x05,0xac,0x9f,0x8e,0x23,0xdd,0x3a,0xb8,0x84,0xdf,0xdf,0xe6,0x9f,
+/* 0x000ae0 */ 0x54,0xd8,0xc3,0x3f,0x2f,0xf8,0x88,0x68,0x78,0x16,0xfc,0xa3,0xad,0xe8,0x16,0x2d,
+/* 0x000af0 */ 0x67,0xc0,0xcb,0x3f,0x2d,0xa8,0xda,0x73,0xfe,0x75,0x9e,0x88,0x71,0xc7,0xff,0x39,
+/* 0x000b00 */ 0x2e,0xf2,0x97,0xcd,0x3f,0xaa,0x3b,0xfb,0x7c,0xa0,0x8a,0x7c,0xb4,0x91,0x89,0x41,
+/* 0x000b10 */ 0x91,0xbf,0x18,0xff,0x2c,0xf0,0xe6,0x3b,0x13,0x8b,0x54,0xb4,0x5f,0x6b,0x70,0xfc,
+/* 0x000b20 */ 0x1f,0xfe,0xfc,0x41,0xfc,0xf3,0xbf,0x44,0x74,0xe2,0xf7,0x45,0x5c,0xb2,0xcc,0x02,
+/* 0x000b30 */ 0xfc,0x43,0xfd,0x9f,0xf1,0xd0,0x41,0xc5,0xe6,0x1f,0xfb,0xd2,0x49,0xd7,0x79,0x68,
+/* 0x000b40 */ 0x20,0x0f,0x98,0x58,0xec,0xe8,0x16,0x68,0x34,0x5c,0xc6,0xa7,0xe7,0xc0,0xfc,0x7c,
+/* 0x000b50 */ 0xfe,0xa1,0x61,0x81,0x68,0xb7,0x6c,0x40,0xde,0xf9,0x17,0xe3,0x9f,0x96,0x8e,0x00,
+/* 0x000b60 */ 0x9e,0x71,0x9d,0x70,0x7d,0xd8,0xe0,0xe3,0x9f,0xf5,0xee,0xfe,0x97,0xe0,0x1a,0x2c,
+/* 0x000b70 */ 0x37,0xa3,0x7f,0xd9,0x13,0xe0,0xff,0xdc,0x04,0x3e,0xec,0xa9,0x64,0xa2,0x9e,0xf0,
+/* 0x000b80 */ 0x8f,0xb8,0xf4,0xde,0xd7,0x7d,0xfc,0xd3,0xe5,0xe7,0x9f,0xb4,0x27,0x02,0x63,0x22,
+/* 0x000b90 */ 0x7f,0xb9,0xf8,0xc7,0xc3,0x93,0xf5,0x26,0x7e,0x6d,0x5d,0x7e,0x1a,0xef,0x4f,0xf8,
+/* 0x000ba0 */ 0xe7,0x20,0x24,0xd7,0x6e,0xf7,0x8d,0x77,0x9f,0x19,0xdd,0xd9,0x43,0xfa,0x97,0xe2,
+/* 0x000bb0 */ 0x9f,0x2a,0xf1,0x83,0x3b,0x9d,0x3b,0x8c,0x15,0xe5,0x9f,0x73,0x4c,0x6c,0xea,0x11,
+/* 0x000bc0 */ 0xf1,0x1f,0x2b,0xca,0x3f,0x97,0xe1,0x30,0x2c,0xeb,0xd7,0xb2,0xd2,0x1e,0xbb,0xa5,
+/* 0x000bd0 */ 0x66,0x38,0x80,0x7f,0xea,0x5d,0x6e,0xf3,0x21,0x3d,0x7e,0xd4,0xbd,0x43,0x2f,0xca,
+/* 0x000be0 */ 0x3f,0xad,0x67,0x8d,0x03,0xb0,0x34,0x84,0x5f,0x43,0x81,0x0a,0x59,0x85,0xdf,0x3f,
+/* 0x000bf0 */ 0x56,0x97,0xcf,0x3f,0x67,0xb8,0x10,0x97,0xce,0x05,0xf0,0x4f,0xc8,0x71,0x33,0x54,
+/* 0x000c00 */ 0x1c,0x16,0x74,0xbf,0x9b,0x7f,0xc4,0xfa,0xc3,0xf9,0x27,0xe2,0xe6,0x1f,0x75,0xa6,
+/* 0x000c10 */ 0x7f,0xcd,0x78,0x64,0xbd,0x9c,0xe4,0x2d,0x19,0xf1,0xfb,0xe2,0xfc,0xa3,0x8a,0xe7,
+/* 0x000c20 */ 0x7f,0x8c,0x89,0xb6,0xf0,0x03,0xce,0xf3,0x9f,0x2f,0xe7,0xfd,0x19,0xff,0xc4,0x5d,
+/* 0x000c30 */ 0xfd,0x6d,0x61,0xd6,0xa5,0x24,0x11,0x8a,0xa3,0x79,0xfc,0xa3,0xfa,0xd7,0x1f,0x33,
+/* 0x000c40 */ 0xac,0x4b,0x22,0x15,0x9e,0x16,0xfd,0x39,0xff,0x44,0xd8,0x31,0x93,0xfb,0x7c,0xa7,
+/* 0x000c50 */ 0x5f,0xe4,0xaf,0x8a,0x43,0x7e,0xfe,0xc9,0x7a,0x78,0x40,0xbf,0x4c,0xa6,0x41,0x5a,
+/* 0x000c60 */ 0xb4,0x54,0xf8,0xf9,0xc7,0x3e,0xed,0xe2,0x0b,0x3b,0x3a,0x05,0x77,0x5b,0x91,0xd3,
+/* 0x000c70 */ 0x4e,0x7e,0xcf,0xe5,0xf1,0x0f,0xdd,0xad,0xff,0x2b,0x2c,0xc1,0xd9,0xaa,0xf5,0x64,
+/* 0x000c80 */ 0xe2,0x59,0xc5,0xe8,0x0e,0xc7,0x1d,0x87,0x27,0x97,0x77,0xfe,0xa5,0x7a,0xf8,0xa7,
+/* 0x000c90 */ 0x4f,0x5d,0x82,0xd4,0xee,0x56,0xd1,0x3f,0x9f,0x7f,0xbc,0xf1,0x79,0x1e,0xc7,0x23,
+/* 0x000ca0 */ 0x8c,0xc2,0x11,0x9c,0xf8,0xe8,0x54,0x1c,0x14,0xeb,0x0f,0xe7,0x9f,0x88,0x27,0xbf,
+/* 0x000cb0 */ 0x9c,0x80,0x95,0x10,0x41,0x4e,0x7e,0xb7,0x16,0x07,0xf2,0x8f,0xeb,0x18,0xab,0x05,
+/* 0x000cc0 */ 0xa2,0x96,0x88,0xc0,0xdc,0x61,0xc5,0xcd,0x3f,0xfe,0xd3,0xb1,0x69,0xbc,0xfe,0xec,
+/* 0x000cd0 */ 0x77,0x9f,0x18,0x2e,0x1e,0x2d,0xe1,0xff,0xe0,0xf5,0xe1,0x88,0xbb,0xe2,0xc5,0x7d,
+/* 0x000ce0 */ 0xfe,0xe5,0xb3,0x35,0xa8,0x38,0xc8,0x1c,0x30,0x31,0x1f,0xc6,0x4a,0xf8,0x3f,0x07,
+/* 0x000cf0 */ 0x95,0x7a,0x4f,0x45,0x8d,0xe5,0xf1,0x7f,0x98,0x2d,0xe3,0x9e,0x3f,0x9f,0x43,0x13,
+/* 0x000d00 */ 0x16,0x8b,0xd9,0xd4,0xaa,0xc0,0xf1,0x29,0xed,0xff,0x08,0x71,0x04,0xc7,0xa7,0x00,
+/* 0x000d10 */ 0xff,0x08,0x71,0x99,0xf3,0xa7,0xdd,0xf2,0xeb,0x12,0xfe,0xcf,0x41,0x5f,0x45,0xd0,
+/* 0x000d20 */ 0x64,0xb0,0xff,0x23,0xc4,0x5e,0x6e,0x44,0xef,0x9f,0x9d,0xff,0x73,0x80,0xf9,0x21,
+/* 0x000d30 */ 0xec,0x12,0x46,0xa3,0x91,0x60,0xff,0x47,0x88,0xcf,0x74,0x5a,0x11,0x74,0x1f,0xe4,
+/* 0x000d40 */ 0xd7,0xff,0x04,0xf2,0xcf,0x35,0x56,0xff,0x63,0x1b,0x41,0xb3,0xf3,0x7f,0xdc,0x44,
+/* 0x000d50 */ 0x34,0x0b,0xff,0xc7,0xbd,0xc2,0xc0,0x60,0x09,0xff,0xe7,0x80,0xb5,0x8c,0x16,0x02,
+/* 0x000d60 */ 0xd5,0xd9,0x2d,0xa5,0xfc,0x9f,0xbd,0x88,0xfa,0x6f,0xb3,0xf7,0x7f,0x50,0x12,0x13,
+/* 0x000d70 */ 0x91,0xec,0xe2,0x1f,0xfe,0x3c,0xc5,0xfc,0x1f,0x47,0x0c,0xce,0xc6,0xff,0x61,0xe7,
+/* 0x000d80 */ 0x1d,0x37,0xe6,0xff,0x14,0xac,0xff,0x09,0xec,0xdf,0x09,0x81,0xe7,0x5f,0xc1,0x7e,
+/* 0x000d90 */ 0x88,0x36,0x47,0x52,0x02,0xce,0xbf,0x0a,0xf9,0x3f,0x10,0xed,0x95,0x53,0x85,0xf8,
+/* 0x000da0 */ 0xc7,0x3f,0xde,0x6b,0x44,0xec,0x90,0xc7,0xf5,0x1b,0xf1,0x7f,0x88,0xf8,0xa8,0x24,
+/* 0x000db0 */ 0xff,0x38,0xa2,0x1b,0x8b,0x1b,0xf0,0x7f,0xb4,0x9a,0xee,0x71,0x78,0xb6,0x88,0xff,
+/* 0x000dc0 */ 0x13,0x50,0xff,0x63,0xfb,0x3f,0x10,0xe4,0xff,0x78,0x9e,0x1f,0x79,0x9f,0xbf,0xa4,
+/* 0x000dd0 */ 0xff,0x63,0x78,0x5b,0x66,0xe9,0xff,0xa4,0x66,0xed,0xff,0xf0,0x83,0xb0,0x43,0xb0,
+/* 0x000de0 */ 0xea,0x06,0xfc,0x9f,0x0d,0x37,0xe4,0xff,0x6c,0xa4,0x3c,0x70,0xbb,0xcf,0xff,0xc9,
+/* 0x000df0 */ 0xe7,0x1f,0xc9,0x16,0xe4,0x20,0x2c,0xdf,0xff,0xa9,0xba,0xb1,0xfa,0x9f,0xa2,0xfe,
+/* 0x000e00 */ 0x8f,0x10,0x2e,0xff,0x27,0xb0,0x9e,0xc7,0xef,0x5f,0xcd,0xc6,0xff,0x71,0x8b,0x92,
+/* 0x000e10 */ 0xfe,0x8f,0xe2,0x6d,0x39,0x5d,0xd2,0xff,0xb1,0x0f,0xc2,0xec,0x96,0xdc,0x0d,0xfa,
+/* 0x000e20 */ 0x3f,0x1f,0x94,0xf6,0x7f,0x3c,0x62,0x96,0xfe,0x8f,0xeb,0x3c,0x6b,0x56,0xfe,0xcf,
+/* 0x000e30 */ 0x44,0x00,0xff,0x40,0x7e,0xbe,0xcb,0x9f,0x81,0x2e,0xff,0x47,0xdd,0x30,0x8b,0xf1,
+/* 0x000e40 */ 0xde,0x90,0xff,0x13,0xcd,0xf7,0x7f,0xd6,0xa0,0xea,0x2e,0x76,0x75,0xa8,0x6a,0x52,
+/* 0x000e50 */ 0x3e,0x0b,0x6f,0x87,0x5a,0xac,0xed,0x96,0xbc,0xba,0xf7,0x94,0x11,0xec,0xff,0x20,
+/* 0x000e60 */ 0xce,0x7b,0x39,0x35,0xd3,0x3a,0x41,0x96,0x05,0x0b,0xaf,0x0f,0x71,0xb3,0x4f,0xb7,
+/* 0x000e70 */ 0xe3,0xe3,0x3d,0xff,0x6a,0x44,0xe1,0x44,0xcd,0x88,0x8e,0x47,0x37,0x5c,0x49,0x6c,
+/* 0x000e80 */ 0x55,0x14,0x8a,0x1f,0x21,0xfc,0xa3,0xf4,0xe4,0xfb,0x3f,0x94,0x7f,0x76,0x09,0x9e,
+/* 0x000e90 */ 0x24,0x62,0x6b,0xdf,0xa2,0x46,0x6b,0xdd,0x5e,0xdb,0x7f,0x23,0xf1,0x2c,0xf3,0xfa,
+/* 0x000ea0 */ 0x3f,0x2d,0x19,0x91,0x6d,0xab,0x32,0xf2,0x29,0x38,0xa6,0xe2,0xb0,0x80,0xfc,0xef,
+/* 0x000eb0 */ 0x89,0x63,0xed,0x6c,0x07,0x61,0xfa,0xf8,0xc7,0x3e,0x1f,0x94,0x08,0xed,0xc8,0xd3,
+/* 0x000ec0 */ 0xfa,0xf5,0xcd,0x78,0x98,0xa3,0x8b,0x1f,0xe6,0xbc,0x77,0xba,0x8d,0x3f,0x0f,0xe6,
+/* 0x000ed0 */ 0x1f,0x1d,0xdf,0xb6,0xb7,0x5a,0xd4,0x5f,0xed,0xed,0xf9,0x0f,0x38,0xf6,0x6c,0x72,
+/* 0x000ee0 */ 0x28,0x3a,0xf0,0xb5,0x71,0xe2,0xcf,0xfb,0xfc,0x9f,0x3f,0xc6,0x90,0xa3,0xc4,0x7b,
+/* 0x000ef0 */ 0xd5,0x01,0x46,0x3b,0x53,0xda,0xcb,0xa4,0x3e,0xca,0xa2,0x07,0xa9,0x13,0xa8,0xcf,
+/* 0x000f00 */ 0x08,0xf6,0x7f,0xac,0xf0,0x9d,0x94,0x06,0x1b,0x87,0xb5,0xd5,0x78,0xff,0xb5,0xc9,
+/* 0x000f10 */ 0x8c,0x67,0x35,0x03,0x8b,0x1d,0x2c,0x3e,0x93,0x62,0x3a,0x50,0xff,0x07,0x2d,0x35,
+/* 0x000f20 */ 0x54,0x57,0xfd,0xf3,0x3f,0xb4,0xb2,0x63,0xaf,0x07,0x8e,0xc3,0x53,0xbc,0x42,0x46,
+/* 0x000f30 */ 0x4c,0x9f,0x3a,0xc6,0x3f,0xd5,0x09,0x79,0x1b,0x2f,0x84,0x1e,0x81,0x23,0x14,0x7b,
+/* 0x000f40 */ 0xf0,0x7c,0x7b,0x07,0x56,0x0f,0x45,0xef,0x94,0xc7,0xca,0x79,0x7f,0x73,0xbe,0x13,
+/* 0x000f50 */ 0x1f,0x93,0x17,0xce,0xe9,0xd7,0x43,0xf6,0x7c,0xfb,0x94,0xf2,0xe1,0xbd,0x59,0xb1,
+/* 0x000f60 */ 0x3f,0x0a,0xe0,0x9f,0x90,0x1d,0x96,0xb4,0x7c,0x4e,0x19,0xa6,0x20,0x2a,0x77,0x17,
+/* 0x000f70 */ 0xf5,0x7f,0xde,0xe5,0x07,0xeb,0xa7,0xe1,0xc7,0xd4,0x4f,0x96,0x07,0x0d,0x1e,0x7f,
+/* 0x000f80 */ 0x9b,0x7f,0xce,0x69,0x1b,0xcb,0x05,0xff,0xcc,0x48,0x8f,0x5b,0x54,0x1c,0x85,0x9f,
+/* 0x000f90 */ 0xa2,0x45,0x81,0xfe,0x4f,0xda,0xb3,0xfe,0x98,0x3d,0x29,0x22,0x5a,0x4f,0x4a,0x4f,
+/* 0x000fa0 */ 0xa2,0x34,0xf5,0x7f,0x1c,0xfe,0x29,0x63,0xfe,0xcf,0x42,0x77,0xd9,0x73,0xe4,0x24,
+/* 0x000fb0 */ 0x11,0x59,0xf9,0x0a,0xbc,0x87,0x48,0x21,0x90,0xbc,0xd5,0xa9,0x2f,0x9a,0xc3,0xb3,
+/* 0x000fc0 */ 0x4f,0x85,0xb3,0x1f,0x8f,0xf0,0xc4,0x64,0xe6,0x74,0x7a,0xa9,0xdb,0xc9,0x47,0x2c,
+/* 0x000fd0 */ 0xdf,0x75,0x7a,0xf2,0x9d,0x74,0x0c,0x56,0x9a,0x11,0xd2,0xf2,0x19,0x31,0x0a,0xbc,
+/* 0x000fe0 */ 0xfe,0x0f,0x86,0x16,0xa5,0xb1,0x43,0xdb,0xc9,0xd3,0xee,0x4e,0xbc,0xba,0x6e,0x02,
+/* 0x000ff0 */ 0xa3,0x33,0xdc,0x2f,0xfd,0x1e,0x0e,0x9a,0xf5,0x38,0xff,0x96,0x5b,0xe2,0xf7,0x2b,
+/* 0x001000 */ 0xf8,0x67,0x97,0xd3,0x1f,0xbf,0x8f,0xe6,0x92,0x0e,0x52,0xff,0x6c,0x1c,0x54,0x49,
+/* 0x001010 */ 0xff,0x9a,0x1f,0x23,0x3e,0xdf,0x5c,0xfc,0x43,0xab,0x7f,0x3b,0xb0,0x20,0x69,0xdd,
+/* 0x001020 */ 0x30,0xc3,0x75,0xa4,0xfe,0x39,0x66,0xb0,0x7a,0x60,0x7e,0x7f,0x9b,0x7f,0x48,0x10,
+/* 0x001030 */ 0xec,0xf1,0x3e,0x8e,0xc5,0x30,0xdb,0x7f,0x65,0xd1,0x94,0xd1,0x44,0xf9,0xa7,0xa2,
+/* 0x001040 */ 0x98,0xff,0x73,0x96,0xf1,0xcf,0x28,0x35,0x76,0x68,0x29,0xf8,0x05,0x17,0xff,0xd0,
+/* 0x001050 */ 0xf8,0xfc,0x8d,0x4d,0x0b,0x2d,0x66,0xf4,0x41,0x69,0x48,0x7a,0x1b,0xee,0xc1,0xf1,
+/* 0x001060 */ 0xd1,0x1a,0xf0,0x44,0x6a,0x22,0x77,0xf8,0x09,0x72,0xf8,0x87,0x14,0xf9,0x34,0xea,
+/* 0x001070 */ 0x14,0x7b,0x30,0xed,0x18,0xb4,0x10,0x9a,0x7c,0xeb,0x11,0x23,0xdf,0x7a,0x6c,0x23,
+/* 0x001080 */ 0x46,0x10,0x92,0x7e,0x63,0x0a,0xfe,0x51,0x5c,0xfc,0x83,0x69,0xe7,0x1b,0x5a,0x0d,
+/* 0x001090 */ 0x1d,0x6f,0xcc,0x6c,0xef,0x90,0xfe,0x00,0x1e,0x47,0x74,0xbc,0xa3,0x7e,0xff,0xa7,
+/* 0x0010a0 */ 0x4d,0x23,0xd5,0xe6,0x4f,0xf0,0xb2,0xe7,0x27,0x52,0xf5,0xa6,0xfa,0x94,0xb4,0x42,
+/* 0x0010b0 */ 0xf9,0x67,0x62,0x04,0x91,0xf3,0x2f,0xde,0x9f,0xf1,0xcf,0x82,0x94,0x9b,0x76,0x86,
+/* 0x0010c0 */ 0xf0,0xfb,0xb5,0x8a,0xfc,0x7e,0x6f,0x93,0x8e,0x99,0xf4,0xf7,0x9b,0x13,0xf7,0xb7,
+/* 0x0010d0 */ 0xf9,0x87,0x1d,0x52,0x5c,0x86,0x1f,0xdd,0x4b,0x68,0x50,0xa2,0x15,0x62,0xbb,0x5c,
+/* 0x0010e0 */ 0xfc,0xe3,0xd4,0xf3,0xb8,0xf9,0xe7,0x34,0x24,0x43,0x58,0x7c,0x0b,0x86,0xd5,0xa4,
+/* 0x0010f0 */ 0x11,0xe9,0x95,0x2d,0x98,0x84,0x57,0xc8,0xa5,0x33,0x7e,0xfe,0x79,0x45,0xdb,0xd3,
+/* 0x001100 */ 0x9d,0x83,0xad,0xcc,0xf6,0x89,0x29,0x3f,0x31,0x97,0xee,0x88,0x19,0x14,0x84,0xea,
+/* 0x001110 */ 0x09,0xff,0x9c,0x13,0xf3,0xc7,0xe6,0x9f,0x51,0x2d,0x89,0xa7,0xcd,0x93,0x10,0xcb,
+/* 0x001120 */ 0x90,0xf7,0x45,0xee,0xe9,0x88,0xaf,0xb5,0x77,0xe8,0x74,0xa3,0x3a,0xe8,0xe7,0x1f,
+/* 0x001130 */ 0x20,0x6e,0x2d,0xc2,0xaf,0x6d,0xbf,0xb6,0xbe,0xfb,0xf5,0x10,0x16,0x26,0x74,0xe0,
+/* 0x001140 */ 0x17,0xf9,0x00,0x7d,0x7f,0xcd,0x61,0x3f,0xff,0x8c,0x47,0x37,0xf6,0x5c,0x87,0xff,
+/* 0x001150 */ 0xde,0xb4,0x26,0x4d,0x41,0xe8,0xad,0xde,0x35,0xa9,0xc8,0x7a,0x8c,0x79,0x17,0xd1,
+/* 0x001160 */ 0x5d,0x98,0x7f,0x42,0xc7,0xc5,0xfa,0x63,0xfb,0x3f,0x28,0xba,0x53,0xbe,0x40,0x04,
+/* 0x001170 */ 0x31,0xea,0x37,0x84,0xaf,0xc2,0x6a,0x73,0xbb,0x0d,0x7e,0x24,0x74,0x63,0x79,0xfc,
+/* 0x001180 */ 0x23,0xfc,0x1f,0x2a,0x46,0xfa,0xef,0x34,0x22,0x97,0xa9,0xff,0x73,0x37,0xe1,0x9f,
+/* 0x001190 */ 0x29,0xbf,0xff,0xb3,0x96,0xef,0xb6,0x90,0x9a,0xc2,0xd8,0xd3,0xab,0xdf,0xae,0xab,
+/* 0x0011a0 */ 0x7f,0x2e,0x3f,0x88,0x9f,0xff,0x59,0xca,0x3f,0xa2,0xbf,0xcd,0x3f,0xc6,0xed,0xed,
+/* 0x0011b0 */ 0xf6,0x36,0x2d,0xd6,0x25,0x4d,0xc3,0x4e,0x58,0x84,0xd4,0x6c,0x6b,0x1d,0xec,0x23,
+/* 0x0011c0 */ 0xe3,0x7d,0x4c,0x1a,0x12,0xeb,0x8f,0xcd,0x3f,0x35,0x95,0x20,0x4d,0x90,0xd3,0x0d,
+/* 0x0011d0 */ 0x92,0x28,0x47,0x42,0xfd,0x66,0x2c,0xa4,0x82,0x64,0x42,0x86,0xc6,0xb3,0xd5,0xf1,
+/* 0x0011e0 */ 0xeb,0x18,0xff,0xac,0x1e,0xab,0x4a,0xb3,0xea,0x4a,0x84,0xa7,0x0d,0x5e,0x96,0xdb,
+/* 0x0011f0 */ 0x9b,0xcc,0xf9,0x2b,0xfe,0xa4,0x51,0xbf,0x8a,0xc8,0xfa,0xf9,0xcd,0x29,0xc1,0xc3,
+/* 0x001200 */ 0x36,0xff,0x90,0xcf,0x10,0xe8,0x79,0x47,0x3f,0xb1,0x7d,0xa4,0x8f,0xcc,0x64,0xc7,
+/* 0x001210 */ 0xc2,0x1d,0xf2,0x87,0xf0,0xf7,0x68,0x15,0xe3,0x25,0x2f,0xff,0x24,0xad,0xc8,0xe4,
+/* 0x001220 */ 0x5c,0x7a,0xac,0xd3,0x3f,0xf2,0xeb,0xb9,0xab,0xe1,0x94,0xba,0xbc,0x3f,0x9a,0x5d,
+/* 0x001230 */ 0xdc,0x0c,0x5f,0x30,0xa3,0x23,0xdb,0xe6,0xe3,0x1f,0x84,0x57,0x1b,0x72,0x7a,0x15,
+/* 0x001240 */ 0x4f,0x87,0x27,0x71,0xfe,0xda,0x32,0xfa,0x5c,0xe2,0x16,0xd4,0x6a,0x10,0xa3,0x35,
+/* 0x001250 */ 0xb8,0xfe,0xb9,0x6e,0x77,0x0d,0xa9,0x4e,0xb9,0x43,0x57,0x33,0xe5,0x71,0x75,0x0f,
+/* 0x001260 */ 0x59,0xa6,0x32,0xf5,0x24,0x03,0xd6,0x33,0xfe,0xe1,0xf3,0x87,0xf1,0x4f,0xa3,0x79,
+/* 0x001270 */ 0xb3,0x21,0x8d,0x90,0xd3,0x2e,0x14,0x36,0xaa,0xe3,0x12,0xc2,0xeb,0x0f,0x7e,0xad,
+/* 0x001280 */ 0xc8,0xd2,0x64,0xf8,0xf8,0xa7,0x8e,0xf2,0x0f,0x59,0x6d,0x88,0xed,0xb3,0x1a,0x22,
+/* 0x001290 */ 0xe4,0x43,0x27,0x9c,0x56,0xd0,0x3a,0x56,0xb1,0x49,0xf3,0x8b,0xb5,0xc4,0xc7,0x3f,
+/* 0x0012a0 */ 0x80,0xe9,0xe5,0x87,0x3c,0x91,0x9d,0x85,0x4b,0xa4,0xc5,0x94,0x27,0x61,0x9a,0x66,
+/* 0x0012b0 */ 0xb4,0x6f,0x0e,0x57,0x14,0x3f,0xff,0x9a,0x71,0x7d,0x08,0x66,0x45,0x2d,0x59,0x2f,
+/* 0x0012c0 */ 0xee,0xff,0xa8,0x87,0x54,0x77,0xfd,0x33,0x1e,0x93,0xe2,0xe5,0x1f,0x3f,0x0f,0xef,
+/* 0x0012d0 */ 0x33,0x62,0xae,0x16,0x24,0xd5,0x94,0xf0,0x7f,0x0e,0x21,0xf7,0xfd,0xd3,0x12,0x94,
+/* 0x0012e0 */ 0xa8,0xff,0xb9,0x82,0x5c,0x1f,0x82,0x45,0xd5,0x1e,0x28,0xe1,0xff,0x5c,0xf1,0xb4,
+/* 0x0012f0 */ 0x1c,0x91,0x4b,0xf9,0x3f,0x57,0x59,0xd8,0xed,0x13,0xb1,0x9d,0xf2,0x7f,0x15,0xf7,
+/* 0x001300 */ 0x7f,0xd4,0xd7,0x3a,0xbc,0xf5,0xe1,0x05,0xea,0x7f,0x84,0x18,0x30,0xed,0x7a,0xdd,
+/* 0x001310 */ 0xb9,0xac,0x1e,0xcc,0xe5,0xff,0x40,0x90,0xff,0xf3,0xca,0x2e,0x6f,0x3d,0x70,0x29,
+/* 0x001320 */ 0xff,0x67,0x12,0x12,0x4c,0xbc,0x43,0x5a,0x74,0xb7,0xff,0x33,0x3f,0x28,0x3e,0x33,
+/* 0x001330 */ 0xca,0xaf,0xbc,0xf5,0x72,0x25,0xfc,0x9f,0x29,0xfc,0xda,0xde,0x9f,0x59,0x6c,0xb7,
+/* 0x001340 */ 0xa4,0x4b,0xfa,0x3f,0xaf,0xd0,0x65,0xb3,0x95,0xb6,0x1c,0xd1,0x52,0x52,0x11,0xff,
+/* 0x001350 */ 0x87,0x1e,0x84,0xed,0x45,0xee,0xf1,0x3e,0x54,0xba,0xfe,0xc7,0x4c,0xf3,0x16,0x1c,
+/* 0x001360 */ 0xff,0xa6,0x62,0xfe,0x0f,0xb5,0x7d,0x66,0xcc,0x26,0x97,0x23,0x34,0x2e,0x95,0xf4,
+/* 0x001370 */ 0x7f,0x52,0x5f,0xc9,0xff,0x61,0x22,0x32,0x0b,0xff,0xc7,0xf4,0x7c,0x08,0x56,0xda,
+/* 0x001380 */ 0xff,0xf1,0xf5,0x2f,0xe9,0xff,0xc4,0x44,0x0b,0xee,0x3f,0x0b,0xff,0xc7,0x70,0xb5,
+/* 0x001390 */ 0x44,0x66,0xe1,0xff,0xc4,0x5c,0x2d,0xcb,0x46,0x4b,0xfa,0x3f,0xd7,0x30,0xf6,0x90,
+/* 0x0013a0 */ 0x83,0x21,0xee,0x17,0x15,0xf4,0x7f,0x96,0x71,0xb1,0x92,0xd7,0x3f,0xcf,0xd2,0xff,
+/* 0x0013b0 */ 0xf1,0x9d,0x7f,0x95,0xf4,0x7f,0x96,0xb8,0xfc,0xb4,0x9d,0x81,0xf5,0x3f,0x5e,0x3f,
+/* 0x0013c0 */ 0xa7,0xc9,0xd5,0xb2,0xab,0x94,0xff,0xa3,0x7e,0xe6,0x69,0xd9,0x51,0xda,0xff,0x31,
+/* 0x0013d0 */ 0x57,0x12,0x91,0x9e,0xad,0xff,0x73,0x18,0xbd,0x88,0x05,0x88,0x96,0xf6,0x52,0xfe,
+/* 0x0013e0 */ 0x4f,0xba,0xc1,0xea,0xc3,0xfb,0x53,0x5a,0x9f,0x70,0x4b,0x69,0xff,0xe7,0x75,0xf5,
+/* 0x0013f0 */ 0x17,0x9e,0x96,0xa2,0xfe,0x0f,0x15,0x04,0x7b,0xe4,0x67,0x66,0x5b,0xff,0x93,0xf1,
+/* 0x001400 */ 0x55,0x20,0xb4,0x16,0xf6,0x7f,0xaa,0x99,0x58,0x9e,0x95,0x2f,0xdb,0xc2,0xfb,0xfd,
+/* 0x001410 */ 0x97,0xdf,0xff,0xa1,0x20,0x74,0x98,0x6d,0xbb,0xce,0xc2,0xaf,0xa8,0xe8,0x2e,0xe8,
+/* 0x001420 */ 0xff,0x34,0x66,0xc3,0x4c,0x10,0x4c,0xaa,0xe7,0xfd,0x8b,0xf9,0x3f,0x04,0x23,0x43,
+/* 0x001430 */ 0xfb,0x9d,0xf3,0x0e,0xbc,0x10,0x35,0x17,0xab,0xff,0x61,0x1b,0x79,0x8a,0x3d,0x92,
+/* 0x001440 */ 0x9d,0x68,0x9a,0x5d,0xdf,0x7f,0x05,0xfb,0x3f,0x57,0xf4,0x62,0xf5,0xcf,0xa5,0xfd,
+/* 0x001450 */ 0x10,0xa3,0x84,0xff,0x73,0x08,0x79,0x5b,0x8c,0x52,0xfe,0x8f,0xaf,0x3f,0x38,0xf3,
+/* 0x001460 */ 0x4d,0x8f,0xf0,0xa2,0x8e,0xfb,0xb8,0xc0,0x3c,0x80,0xdc,0x33,0x30,0x23,0x49,0x25,
+/* 0x001470 */ 0xfc,0x9f,0x2b,0xbe,0x16,0x28,0xfe,0xfd,0x97,0x3a,0xe3,0x6d,0xd1,0xbc,0xfe,0xcf,
+/* 0x001480 */ 0x34,0xdc,0x0d,0xd1,0x21,0xad,0x0b,0x46,0x4c,0xfa,0x21,0xd8,0x0a,0xdc,0x6d,0x0e,
+/* 0x001490 */ 0xe0,0x6d,0xfe,0x0a,0x5e,0x28,0xee,0x3d,0xff,0xa2,0xa7,0xed,0xe4,0x33,0x10,0x64,
+/* 0x0014a0 */ 0xd4,0x87,0xc3,0x64,0xdb,0x45,0x5b,0x9e,0x0a,0xc7,0x79,0xc5,0x8e,0xc7,0xff,0xc1,
+/* 0x0014b0 */ 0xb1,0x6d,0x80,0x75,0x52,0x0d,0xe8,0xc8,0x30,0x54,0x8c,0xc1,0x0a,0xec,0x0b,0x19,
+/* 0x0014c0 */ 0xa0,0xad,0xd8,0x2a,0x0a,0xbf,0xbd,0xe7,0x5f,0x07,0xe9,0xfd,0xeb,0x0d,0xd8,0xa2,
+/* 0x0014d0 */ 0x1a,0xe5,0xe4,0xfe,0xea,0x80,0x54,0xff,0x38,0xbe,0x6d,0x23,0xbd,0x7f,0x9f,0xff,
+/* 0x0014e0 */ 0xfc,0xeb,0xe2,0xe8,0xdd,0xa9,0x8a,0x21,0x79,0x25,0xde,0xe8,0x2f,0x4f,0x44,0x46,
+/* 0x0014f0 */ 0xe4,0x66,0xcc,0x6f,0xfb,0x6a,0xa2,0x89,0xc5,0x49,0x5e,0x1f,0xe5,0xf5,0x7f,0x70,
+/* 0x001500 */ 0x34,0x3a,0xa3,0x6b,0xe5,0x2f,0xcc,0x4b,0x7a,0xd2,0x88,0xfe,0xa9,0x36,0x0d,0xd7,
+/* 0x001510 */ 0x54,0x0c,0x8a,0xa3,0x78,0xfe,0xdb,0x11,0x73,0xfb,0x3f,0x71,0xbc,0xda,0xe0,0xdd,
+/* 0x001520 */ 0x5c,0x6f,0x54,0x51,0x86,0xcd,0x7d,0x7a,0xbc,0x17,0x63,0xe7,0xe7,0x52,0x93,0x1e,
+/* 0x001530 */ 0xc9,0x2c,0xe6,0xe7,0x8f,0x73,0xdf,0xf5,0xf0,0xcf,0xc1,0x0e,0xbc,0x5b,0x44,0xdf,
+/* 0x001540 */ 0x69,0xa0,0xdb,0x52,0x15,0x49,0x71,0xf5,0xa0,0xb5,0xf2,0xe9,0xf0,0x01,0xe7,0xfc,
+/* 0x001550 */ 0xcb,0xcb,0x3f,0x7b,0xfb,0x63,0x28,0x9c,0x90,0x54,0x89,0x54,0xc7,0xa9,0xe4,0xb3,
+/* 0x001560 */ 0xf7,0xfd,0x7a,0x83,0xae,0x26,0xea,0xf1,0x54,0x91,0x02,0xfc,0x9f,0x37,0x90,0x91,
+/* 0x001570 */ 0x0e,0x37,0x4b,0x61,0xd8,0x8c,0x31,0xa0,0xae,0x59,0x7a,0x40,0x7d,0x19,0xdd,0x96,
+/* 0x001580 */ 0x0d,0x3f,0x24,0x2d,0x30,0xc4,0x17,0x52,0x62,0xfa,0x60,0xfe,0xb9,0x08,0xcd,0x5b,
+/* 0x001590 */ 0x1a,0xef,0x92,0x54,0x78,0x13,0x63,0x4f,0x64,0x85,0xdc,0x66,0x5e,0xd4,0x57,0x98,
+/* 0x0015a0 */ 0x11,0xfb,0x8b,0xf8,0x7c,0xff,0xe7,0x4b,0xd4,0x82,0xaa,0x48,0x11,0xf8,0x75,0xbd,
+/* 0x0015b0 */ 0x65,0x28,0xfa,0x99,0x9c,0x81,0x4b,0x68,0x21,0x1e,0xa6,0xc6,0x0a,0xf3,0xf2,0xfd,
+/* 0x0015c0 */ 0x9f,0xf6,0x64,0x36,0x42,0xbe,0x76,0x3f,0x81,0xdf,0xd6,0xc8,0x80,0x8c,0xb1,0x3c,
+/* 0x0015d0 */ 0x94,0x4c,0x91,0x6d,0x48,0xc1,0xfa,0x1f,0xb6,0xec,0xd0,0xf1,0x76,0x49,0xec,0x8b,
+/* 0x0015e0 */ 0x12,0xf7,0x17,0xa9,0x5e,0xff,0xe7,0x15,0x2b,0x4e,0x4e,0xf7,0x4e,0xd2,0xf1,0xaa,
+/* 0x0015f0 */ 0xcd,0xd2,0xcd,0x04,0x7b,0x4c,0x79,0xa3,0xf4,0x7e,0xc1,0xfa,0x9f,0x51,0xfa,0x5a,
+/* 0x001600 */ 0xf5,0xd1,0x78,0x42,0x14,0xdf,0x3f,0x9e,0x23,0x85,0x55,0x06,0xaf,0xff,0xf1,0xf2,
+/* 0x001610 */ 0x0f,0x4a,0xa2,0xa5,0x69,0xf9,0x23,0xbc,0xcc,0xe3,0x17,0x31,0xad,0xfd,0x21,0x9a,
+/* 0x001620 */ 0x31,0xf1,0x46,0x35,0x2d,0x5f,0x16,0xe7,0x5f,0x8e,0xff,0x43,0xf2,0x91,0x99,0x94,
+/* 0x001630 */ 0xc8,0x67,0xe0,0xc6,0x94,0x42,0xb3,0xcf,0x24,0x9a,0x56,0x93,0xb5,0xd1,0x5e,0x17,
+/* 0x001640 */ 0xff,0x78,0xfc,0x9f,0xab,0xb4,0xda,0x99,0x56,0xfb,0x24,0x08,0xed,0x0c,0x11,0x7f,
+/* 0x001650 */ 0xac,0x33,0xa2,0xcb,0x4b,0xcc,0xe0,0xfa,0x1f,0xa3,0x71,0xad,0x7d,0xda,0xb5,0x92,
+/* 0x001660 */ 0x7e,0xc6,0xae,0x3e,0x81,0x08,0xc6,0x84,0xff,0x8f,0xb3,0xeb,0x0f,0x8e,0xa2,0xca,
+/* 0x001670 */ 0xf3,0x6f,0x5e,0xcf,0x42,0x33,0x33,0xc9,0x34,0x43,0xd8,0x0d,0x26,0x42,0x67,0x12,
+/* 0x001680 */ 0x71,0x16,0x27,0x93,0x10,0x30,0x46,0x84,0xa4,0x93,0x70,0x1e,0x25,0xd6,0x91,0xf3,
+/* 0x001690 */ 0xf6,0x0f,0xee,0xea,0xca,0x9a,0x55,0x6e,0x8b,0xab,0xf2,0xac,0xb8,0xb5,0xb5,0xc5,
+/* 0x0016a0 */ 0x59,0x96,0xf7,0x32,0x13,0x60,0x42,0x04,0x46,0x70,0x6b,0xdd,0x5d,0xeb,0x6a,0x44,
+/* 0x0016b0 */ 0xd6,0xcd,0x7a,0x58,0x3b,0x81,0x2c,0x46,0x50,0xec,0x20,0xae,0x01,0x03,0xa4,0x2c,
+/* 0x0016c0 */ 0xcb,0xcb,0x1e,0xd4,0xed,0xe0,0x65,0x95,0xd5,0x00,0x11,0x3d,0x4c,0x02,0xc2,0xbd,
+/* 0x0016d0 */ 0xef,0x7b,0xfd,0x6b,0xba,0x3b,0x33,0xd4,0xf9,0xd7,0xab,0x37,0x6d,0x98,0x7e,0xd3,
+/* 0x0016e0 */ 0xfd,0xde,0xe7,0x7d,0xbe,0x9f,0xcf,0xe7,0x2d,0x35,0xeb,0x5f,0xfa,0x7f,0x80,0x7f,
+/* 0x0016f0 */ 0x8e,0x42,0xe7,0x28,0x5e,0x89,0xde,0x46,0xd5,0x8a,0x38,0x8a,0xbf,0x46,0x3d,0x72,
+/* 0x001700 */ 0xac,0x83,0x5e,0x1f,0x75,0xad,0x7f,0x49,0xfd,0xa8,0xf6,0xa1,0x8a,0x47,0x12,0x65,
+/* 0x001710 */ 0x99,0xdf,0x47,0xee,0x7a,0x28,0xf2,0x48,0xe2,0xa3,0xcc,0x56,0x8a,0x7f,0x44,0xd0,
+/* 0x001720 */ 0x3f,0x1b,0x7e,0x70,0xfd,0xfb,0x68,0xf8,0x47,0xdc,0x90,0x68,0x97,0x81,0xed,0x11,
+/* 0x001730 */ 0x03,0x09,0x21,0x97,0x18,0xa9,0xa1,0xb0,0x67,0x9f,0x20,0x6b,0xfe,0xf7,0x15,0x67,
+/* 0x001740 */ 0xee,0x36,0xf0,0x4f,0x8f,0xbe,0x88,0x83,0x7a,0x27,0xd2,0xfc,0x90,0x86,0x67,0x5a,
+/* 0x001750 */ 0x94,0xe0,0x87,0x49,0xc3,0xff,0x6e,0xe1,0x7f,0xb8,0x7f,0x2a,0x4e,0x41,0xc2,0xa7,
+/* 0x001760 */ 0xe4,0x64,0xa6,0x61,0x73,0xf0,0x97,0xb4,0x71,0xba,0x6b,0xb9,0x12,0x1c,0x0d,0x5f,
+/* 0x001770 */ 0xd3,0xae,0x5f,0x71,0xc6,0x0d,0xff,0x5c,0x90,0x52,0x4a,0x58,0xf2,0x77,0xe3,0x0b,
+/* 0x001780 */ 0x22,0x6d,0x20,0x81,0xf6,0xe8,0x8e,0x30,0x0b,0xff,0x83,0xbc,0x9c,0xe6,0x2a,0xc3,
+/* 0x001790 */ 0xef,0xa1,0x2e,0x45,0xa6,0x8d,0x10,0x6b,0xc0,0x6d,0x9e,0xd1,0xf1,0x8f,0x85,0xff,
+/* 0x0017a0 */ 0x61,0x7a,0x9e,0x58,0xeb,0x5e,0x5e,0xed,0x0a,0x6b,0x65,0x2f,0x31,0x0c,0x8e,0x3c,
+/* 0x0017b0 */ 0xd3,0xff,0x5e,0xa3,0x5f,0xcf,0xf0,0xcf,0x18,0xe8,0xbb,0xda,0x81,0xd6,0x03,0xb6,
+/* 0x0017c0 */ 0x27,0x34,0x8e,0x87,0x5a,0x1b,0x1e,0xf6,0x5b,0x1c,0x61,0x16,0xfe,0x07,0xd5,0xf0,
+/* 0x0017d0 */ 0xe7,0x01,0x1e,0x03,0x1d,0xf6,0x88,0xd3,0xe8,0x58,0x3c,0x98,0xde,0xeb,0xc6,0xff,
+/* 0x0017e0 */ 0xa0,0x8c,0x87,0x83,0x4c,0xbf,0xac,0xa3,0x4d,0x82,0x86,0xc5,0x06,0x54,0x42,0x4c,
+/* 0x0017f0 */ 0x47,0x98,0x8d,0xff,0x19,0x8b,0x11,0x91,0x57,0xbb,0x62,0x64,0x27,0xe0,0x9f,0x5d,
+/* 0x001800 */ 0xca,0x7d,0xdd,0xe2,0xe5,0x90,0x6e,0x04,0x6b,0xb3,0xf0,0x3f,0x0b,0xe9,0x32,0xa4,
+/* 0x001810 */ 0x46,0xd5,0x7b,0x74,0xb5,0x4f,0x8a,0x2e,0xd3,0x74,0x22,0x8a,0x9f,0x10,0x99,0x31,
+/* 0x001820 */ 0x87,0xcf,0x3f,0x0e,0xfe,0x07,0xdc,0xa6,0xac,0x71,0x71,0x11,0x7d,0x91,0xbd,0xdd,
+/* 0x001830 */ 0xe8,0x6e,0xb5,0x7c,0x0b,0x2e,0x45,0x3f,0xe7,0xef,0xef,0xb0,0x89,0xdf,0x28,0xfe,
+/* 0x001840 */ 0x39,0x9c,0x5e,0x9d,0x0b,0xde,0xc0,0x14,0x08,0x65,0x5a,0x2e,0x8a,0x5b,0x84,0x5d,
+/* 0x001850 */ 0x68,0x88,0x2c,0x57,0x03,0x17,0x85,0xc5,0xe8,0x7d,0x8e,0x7f,0xf2,0xf9,0x1f,0x58,
+/* 0x001860 */ 0xdd,0x02,0x03,0xb0,0xba,0x45,0xf4,0xfd,0x14,0x00,0x03,0x53,0xdf,0xb2,0xc0,0x85,
+/* 0x001870 */ 0xff,0xb9,0x01,0x6c,0x4f,0xaa,0xe5,0x6a,0x09,0xe0,0x9f,0x9b,0x64,0xf9,0xa6,0xc0,
+/* 0x001880 */ 0x98,0xb0,0x58,0x39,0x9b,0x68,0x71,0xf0,0x3f,0xd2,0x00,0x9f,0x7f,0x2a,0x41,0xf6,
+/* 0x001890 */ 0xcc,0x27,0xa2,0x01,0xa9,0xea,0x6f,0x7c,0x1f,0xe1,0xc5,0xc0,0x68,0x9d,0x70,0xf2,
+/* 0x0018a0 */ 0x3f,0xa4,0x16,0x96,0xe9,0x4a,0x26,0x04,0x8a,0xd0,0xeb,0xe5,0xb7,0xd0,0x6f,0x94,
+/* 0x0018b0 */ 0x72,0x05,0x57,0x92,0xed,0x6e,0xf5,0xaf,0xac,0x12,0x1d,0x9a,0xa7,0x8f,0x27,0x1d,
+/* 0x0018c0 */ 0xc6,0xb3,0x28,0x3b,0x5c,0x53,0xee,0x43,0xb8,0x44,0xd6,0xd6,0xbb,0xd1,0x3c,0xfe,
+/* 0x0018d0 */ 0x07,0xf8,0xc0,0x92,0x49,0xcd,0x9f,0x45,0x27,0xd2,0x2b,0x68,0x3a,0xde,0x98,0x09,
+/* 0x0018e0 */ 0xf4,0x09,0x51,0xdc,0xcb,0xe7,0xcf,0x99,0x3c,0xfe,0x67,0x5a,0x6e,0x56,0x63,0x74,
+/* 0x0018f0 */ 0x58,0xbc,0x5f,0xc1,0xb0,0xd4,0x0b,0x13,0xf4,0x35,0x5c,0x45,0x36,0xbc,0xc5,0x19,
+/* 0x001900 */ 0x33,0xb8,0xfe,0x52,0x1e,0xff,0x73,0x83,0x57,0xd3,0x40,0xed,0xc3,0xd8,0x9e,0x4a,
+/* 0x001910 */ 0x74,0x1a,0xb5,0xa4,0x83,0x71,0xda,0xd0,0xd6,0xf7,0xdc,0x26,0x2b,0xfe,0x19,0x34,
+/* 0x001920 */ 0xd5,0x1a,0x9a,0xec,0x64,0x8c,0xc4,0x9a,0xfc,0x07,0x68,0xe3,0x9c,0xd3,0xff,0xf5,
+/* 0x001930 */ 0x04,0x53,0xff,0x56,0x40,0xb5,0xf4,0xa8,0x27,0xac,0xae,0xcf,0x86,0xa2,0x62,0x2a,
+/* 0x001940 */ 0xf4,0x24,0xf2,0x0f,0xd2,0xf5,0xda,0xd0,0x3f,0x1b,0xfc,0x8f,0x37,0x20,0x66,0x91,
+/* 0x001950 */ 0x66,0xfb,0x3a,0x84,0xe2,0xf0,0x3f,0x06,0x50,0x1a,0x45,0x11,0xf4,0x90,0xbd,0x5a,
+/* 0x001960 */ 0xfd,0xcb,0x18,0x7d,0xb4,0x88,0xe3,0x1f,0xff,0x64,0x35,0x8c,0xcf,0x0a,0xfa,0xf7,
+/* 0x001970 */ 0xfd,0x51,0xfe,0xd8,0x67,0x84,0xa8,0xa1,0x7f,0x5e,0xaa,0x7f,0x9f,0x4c,0xc9,0x0d,
+/* 0x001980 */ 0x8d,0xe4,0x31,0xf1,0xcf,0x33,0x8c,0xff,0x09,0xe6,0x84,0x3f,0x7b,0x74,0xfd,0x4f,
+/* 0x001990 */ 0x61,0xfd,0xb3,0xfc,0x1e,0x5a,0xbe,0x2e,0x30,0x4a,0x47,0x0c,0xc6,0xa7,0xa4,0x53,
+/* 0x0019a0 */ 0x50,0x4c,0xfc,0x53,0xee,0xe0,0x7f,0xc2,0x97,0xe8,0xcf,0x14,0xfe,0x07,0x3a,0x51,
+/* 0x0019b0 */ 0x47,0x59,0x3e,0x8f,0x48,0xf1,0x61,0x01,0xfe,0xa7,0x21,0x31,0x92,0xe9,0x45,0x99,
+/* 0x0019c0 */ 0xb5,0x11,0x89,0x25,0x02,0x31,0x3d,0xf9,0x23,0x26,0xfe,0xf9,0x8e,0x0b,0xff,0x43,
+/* 0x0019d0 */ 0x7a,0x45,0xd9,0x2b,0x3e,0xef,0x8b,0x12,0x8a,0x7f,0x20,0x68,0xc8,0xe4,0x7f,0x5a,
+/* 0x0019e0 */ 0x17,0x5a,0x60,0xe1,0x51,0x4d,0x9f,0x4c,0x3e,0x50,0x1a,0x94,0x68,0x99,0x50,0x83,
+/* 0x0019f0 */ 0xbe,0x40,0xab,0xcb,0x76,0x3e,0xef,0xe9,0x34,0xf8,0x1f,0xf0,0xbf,0x3b,0xf4,0x2d,
+/* 0x001a00 */ 0xf8,0x96,0xdc,0x12,0x0f,0x8e,0xc1,0x7e,0x01,0x06,0x0a,0x80,0x90,0xfe,0xf7,0xdd,
+/* 0x001a10 */ 0xf8,0x9f,0x12,0x04,0x7f,0xbf,0xf4,0x85,0x05,0x13,0x60,0xc4,0x43,0xa5,0x69,0x21,
+/* 0x001a20 */ 0x5d,0x80,0xff,0x19,0x4c,0x44,0x49,0x52,0x0d,0xc7,0xc5,0xfd,0xf8,0xb2,0x4c,0x9f,
+/* 0x001a30 */ 0x07,0xba,0x24,0xe2,0x46,0x0b,0xfe,0x71,0xee,0xbf,0x4a,0xd3,0xc9,0xe1,0x9a,0xb8,
+/* 0x001a40 */ 0xaf,0x3c,0x71,0x99,0x3b,0xe2,0x65,0x3c,0x68,0xe1,0x7f,0x1e,0xb5,0xf3,0x3f,0xbe,
+/* 0x001a50 */ 0x3b,0xf0,0xee,0x9e,0xbb,0x73,0x9a,0xff,0xab,0x2e,0x27,0x5e,0x6c,0x7b,0xce,0xc2,
+/* 0x001a60 */ 0xff,0x3c,0x6c,0xe3,0x7f,0xb2,0x82,0x97,0x02,0xa1,0x95,0xc7,0x4b,0xa5,0xe4,0x04,
+/* 0x001a70 */ 0x33,0xc2,0x97,0xca,0x42,0xc2,0xe4,0x7f,0xee,0x74,0xe1,0x7f,0xf0,0x2d,0xa9,0x02,
+/* 0x001a80 */ 0xea,0x41,0x9a,0x31,0x30,0x27,0x74,0x14,0xe0,0x7f,0x06,0xf9,0x63,0xa9,0x58,0xf5,
+/* 0x001a90 */ 0xcf,0x16,0xfe,0xe7,0x17,0x76,0xfe,0x67,0x12,0x97,0xf3,0xfa,0x57,0x47,0xd8,0xf4,
+/* 0x001aa0 */ 0xbf,0x1b,0xfc,0x8f,0xec,0xa2,0xff,0xf9,0x2e,0xde,0x9e,0xaa,0xcd,0xcd,0xdb,0xc8,
+/* 0x001ab0 */ 0x7b,0x26,0xfd,0xcf,0x50,0xbc,0xad,0x8f,0xff,0x66,0xaf,0x93,0xff,0x89,0xa2,0xc4,
+/* 0x001ac0 */ 0xba,0xd8,0x70,0x45,0x86,0xae,0x77,0xb4,0x27,0x47,0xf7,0x5f,0x56,0xff,0xbb,0x33,
+/* 0x001ad0 */ 0xf6,0xa7,0x09,0x9d,0x19,0x6a,0x49,0x97,0x4c,0x08,0x9f,0x93,0x19,0x98,0x28,0xc6,
+/* 0x001ae0 */ 0x2d,0xf5,0xf7,0x75,0x1e,0xc7,0x7e,0xfc,0x9e,0x0b,0x68,0xaa,0x95,0x36,0x7a,0x6e,
+/* 0x001af0 */ 0x9f,0xff,0x39,0xc9,0x69,0x1f,0xf6,0x51,0x5b,0x30,0x9d,0x2c,0x9c,0xff,0xf3,0x19,
+/* 0x001b00 */ 0xea,0x89,0xc7,0x3a,0x22,0x2f,0x86,0x0d,0xfc,0x13,0x37,0xf6,0x5f,0x4d,0x0e,0xfe,
+/* 0x001b10 */ 0x67,0x0f,0xfe,0x73,0xa2,0x07,0xc5,0xda,0xc4,0xc1,0xc4,0xab,0xbc,0x27,0x6b,0xc1,
+/* 0x001b20 */ 0x3f,0x91,0x32,0x17,0xfe,0x67,0x5f,0x17,0x8a,0x42,0xfe,0x0f,0xff,0xa8,0xb7,0x60,
+/* 0x001b30 */ 0xfe,0x0f,0x34,0xba,0x87,0x79,0xfe,0x8f,0x31,0x14,0x16,0xff,0xfb,0xcf,0xec,0x7c,
+/* 0x001b40 */ 0xce,0x9e,0xe4,0x47,0x7d,0x14,0xff,0x3c,0x04,0xf8,0x27,0xa3,0x19,0xc1,0x1e,0x34,
+/* 0x001b50 */ 0xf0,0x4f,0xb9,0x83,0xff,0x19,0xa5,0xfb,0xaf,0xf7,0xe8,0x65,0x74,0xfe,0xf9,0x09,
+/* 0x001b60 */ 0xba,0xe4,0xf0,0xbf,0x97,0x3b,0xf4,0x3f,0x61,0x19,0xa7,0xe8,0x54,0x2b,0xa6,0x70,
+/* 0x001b70 */ 0x98,0x68,0xfa,0x9f,0xff,0xf6,0x9a,0xf8,0xc7,0xc1,0xff,0xf8,0xe6,0x80,0xed,0x4b,
+/* 0x001b80 */ 0x5d,0x17,0x4a,0x6c,0x92,0x5f,0x71,0xf0,0x3f,0x5e,0x57,0xff,0xbb,0x18,0xed,0x10,
+/* 0x001b90 */ 0x5f,0xc4,0x4b,0x5d,0xf4,0x3f,0x0b,0x9d,0xfc,0xd5,0x52,0xef,0x49,0xa5,0xf9,0x07,
+/* 0x001ba0 */ 0xd1,0x3d,0xc2,0x26,0xa7,0xfe,0x67,0x9d,0xc7,0xf9,0x3c,0x7c,0x86,0xa6,0x25,0xd0,
+/* 0x001bb0 */ 0xc3,0x57,0xbb,0xe8,0x7f,0x44,0x17,0xfe,0x47,0x55,0x86,0xd5,0x06,0xd8,0x88,0x01,
+/* 0x001bc0 */ 0x22,0x6a,0xb0,0xf9,0xdf,0xbf,0xe3,0xe4,0x7f,0xae,0xe3,0x5d,0x43,0xd5,0x69,0x31,
+/* 0x001bd0 */ 0x97,0xe8,0x23,0x47,0xd0,0xb2,0x62,0xf9,0x3f,0x59,0x7c,0x72,0x5b,0x32,0x2d,0x8f,
+/* 0x001be0 */ 0xb1,0x0a,0xbe,0x46,0x5c,0x98,0xfc,0x0f,0x99,0xef,0xe0,0x7f,0xc2,0x23,0x22,0xdd,
+/* 0x001bf0 */ 0x98,0xa8,0xe2,0x24,0xae,0xf4,0xbe,0x43,0x6c,0xfa,0x9f,0x94,0xab,0xff,0xeb,0x7d,
+/* 0x001c00 */ 0x72,0x28,0x13,0x00,0xfd,0xf3,0x2d,0xb2,0x9c,0xf6,0x3c,0x5e,0x24,0xff,0x47,0x64,
+/* 0x001c10 */ 0x15,0x31,0xd9,0x4d,0xff,0x83,0xdc,0xf4,0x3f,0xde,0xb3,0xdd,0x2d,0x71,0x8a,0x7f,
+/* 0x001c20 */ 0x8e,0xa1,0xff,0xe5,0xfc,0x8f,0xc5,0xff,0x5e,0x6e,0x9b,0x7f,0x7a,0x81,0xc6,0xd9,
+/* 0x001c30 */ 0x2a,0xd7,0x1d,0xa7,0x1b,0x87,0x4a,0x5e,0xbf,0x7b,0xaa,0x88,0xfe,0x67,0x04,0x6d,
+/* 0x001c40 */ 0x17,0x6b,0x61,0xa3,0xf1,0x92,0x56,0xef,0xb3,0xfa,0xdf,0xbd,0x76,0xfd,0x4f,0x16,
+/* 0x001c50 */ 0x5f,0x41,0x5d,0x99,0xe8,0x64,0xb9,0x97,0xae,0x77,0x50,0xdf,0xa9,0x70,0xf5,0xbf,
+/* 0x001c60 */ 0x1b,0xf7,0x0b,0xd3,0xe6,0x07,0xad,0x14,0x01,0x1e,0x63,0x8a,0x0b,0xe6,0xff,0xca,
+/* 0x001c70 */ 0xf7,0xbf,0x3b,0xdc,0x5e,0xf1,0xeb,0xca,0xea,0x0f,0x61,0xe1,0x73,0xf2,0x3f,0x55,
+/* 0x001c80 */ 0x2e,0xfc,0xcf,0x6a,0x8a,0xc8,0x28,0x62,0x9c,0x4c,0xde,0x74,0xfa,0xdf,0x5f,0xb6,
+/* 0x001c90 */ 0xf3,0x3f,0xbd,0x8c,0x76,0x88,0xc7,0x86,0x7d,0x17,0xf1,0x35,0xd6,0x63,0xf3,0x7f,
+/* 0x001ca0 */ 0xd9,0xd7,0xbb,0x3d,0x38,0x86,0x7b,0x3d,0xb1,0x13,0xf4,0x7d,0x99,0x50,0x34,0x22,
+/* 0x001cb0 */ 0xc8,0xe2,0x7f,0x2f,0xb3,0xd4,0x3b,0xb4,0x18,0x9c,0x52,0xdc,0x65,0x55,0x44,0xcf,
+/* 0x001cc0 */ 0xcb,0xab,0x7f,0x95,0x38,0xf8,0x1f,0x8a,0x7f,0x4e,0x21,0x96,0xef,0xe7,0xa6,0xff,
+/* 0x001cd0 */ 0x71,0xe3,0x7f,0x30,0xd3,0xaf,0xe6,0xcc,0x1e,0xbb,0xff,0xfd,0x5e,0x98,0x76,0x6e,
+/* 0x001ce0 */ 0x9c,0xa0,0xfb,0x7d,0x75,0xc3,0x64,0xb5,0xa6,0x97,0x1e,0xf7,0xab,0xde,0x11,0x69,
+/* 0x001cf0 */ 0x05,0xec,0xf7,0xed,0xfe,0x77,0xd8,0x16,0x25,0x6e,0xa8,0x9a,0x9a,0x85,0x2b,0x82,
+/* 0x001d00 */ 0x40,0x5f,0x27,0xa5,0xaa,0x1e,0x73,0xea,0x9f,0x0f,0xa1,0x9a,0x56,0x7f,0x08,0x8f,
+/* 0x001d10 */ 0x90,0xbd,0xb2,0xf1,0x60,0x44,0x54,0x7f,0x18,0x2b,0x28,0x21,0xb3,0xf7,0xcb,0x92,
+/* 0x001d20 */ 0xff,0x33,0xff,0x00,0x83,0x9d,0x82,0xc3,0xff,0xe5,0xcf,0xf8,0x22,0x73,0x12,0xf3,
+/* 0x001d30 */ 0xc2,0xf9,0xfe,0x77,0x65,0x21,0xa8,0x9d,0x1b,0xe3,0xc1,0xd1,0xc7,0x27,0xc4,0x73,
+/* 0x001d40 */ 0x96,0x81,0x52,0x82,0xfb,0x85,0xb5,0x68,0x58,0xd9,0xc7,0xc6,0x27,0x2f,0xff,0xe7,
+/* 0x001d50 */ 0x96,0xd8,0xd2,0x11,0x1c,0xa5,0xb7,0xf9,0x27,0xaf,0x75,0xa0,0x72,0x14,0x28,0xde,
+/* 0x001d60 */ 0x70,0xe6,0x1f,0x32,0x92,0x47,0x29,0x65,0x8f,0x65,0xde,0x0f,0x71,0xc0,0xbf,0x1f,
+/* 0x001d70 */ 0x9f,0x52,0x5f,0x03,0x7d,0xb5,0xd3,0xff,0x25,0x42,0xec,0xcf,0x39,0xcb,0xf7,0x9f,
+/* 0x001d80 */ 0xf4,0xf7,0xa1,0x3a,0x65,0xc7,0x28,0xbb,0x35,0x5b,0xfe,0xa1,0xfa,0x84,0xea,0x93,
+/* 0x001d90 */ 0xe8,0x65,0x82,0xe5,0xc5,0x91,0xfd,0x59,0xb1,0x4b,0xe9,0x52,0xa0,0x50,0xa8,0xd8,
+/* 0x001da0 */ 0xf2,0x0f,0x53,0x75,0x71,0xdf,0x46,0x88,0xc1,0xb1,0x00,0x83,0x83,0xb4,0x71,0x07,
+/* 0x001db0 */ 0xd9,0xca,0x83,0x71,0x86,0x1d,0xf5,0xaf,0x52,0xa9,0xdd,0x1a,0xfb,0x33,0x9f,0x36,
+/* 0x001dc0 */ 0x0e,0x0b,0x89,0xae,0x0f,0xa4,0x41,0x15,0xf8,0x9f,0x7c,0xfc,0x83,0x97,0xa8,0x3b,
+/* 0x001dd0 */ 0x27,0x85,0x6f,0x2d,0x0f,0x92,0x87,0xd9,0x06,0xa7,0xd0,0xf5,0x32,0xd8,0x4a,0xb4,
+/* 0x001de0 */ 0xbb,0xe4,0x1f,0xbe,0x28,0xfc,0x8b,0x62,0x7d,0x50,0x95,0x25,0x5c,0xe1,0xd0,0x68,
+/* 0x001df0 */ 0xc3,0x3f,0xf3,0x5f,0x42,0xf7,0xa1,0x5a,0x85,0xa2,0x1d,0x3e,0x91,0xce,0x63,0x13,
+/* 0x001e00 */ 0x0b,0xae,0x1d,0xaa,0x80,0xc6,0xdb,0xe8,0xb7,0xd0,0x63,0xfa,0x3b,0x54,0x0d,0xff,
+/* 0x001e10 */ 0xac,0xdf,0x38,0xe7,0x51,0xe2,0x96,0xf7,0xf8,0x6b,0x96,0xff,0xe3,0xc8,0x3f,0xac,
+/* 0x001e20 */ 0xd0,0xf7,0x5f,0xf3,0x38,0xff,0x1c,0x1d,0xa6,0x40,0xfd,0x74,0x37,0x7b,0xf0,0xf2,
+/* 0x001e30 */ 0xf3,0x7f,0x8c,0xd8,0x9f,0xcd,0xe2,0x11,0x1d,0x08,0x1d,0x81,0xc2,0x71,0x86,0xee,
+/* 0x001e40 */ 0xe7,0x67,0xd0,0x61,0x9b,0xff,0x1d,0x4c,0xee,0x8a,0x65,0x3d,0x2a,0x31,0x17,0xa6,
+/* 0x001e50 */ 0xf6,0x9c,0x57,0xeb,0xb1,0xe7,0xff,0xd8,0xfc,0x5f,0xac,0x51,0x0a,0xf8,0xe7,0x24,
+/* 0x001e60 */ 0x5a,0x65,0xd7,0x3f,0x6f,0x02,0xfe,0x47,0xf9,0x20,0x1d,0xca,0xab,0xbf,0x44,0x7f,
+/* 0x001e70 */ 0xe8,0x4b,0x87,0x6a,0xd0,0x3c,0xa6,0xff,0xb9,0x1d,0xfd,0xf3,0x63,0x74,0x3f,0x32,
+/* 0x001e80 */ 0x20,0x6f,0xe5,0x8e,0x30,0xf7,0xfa,0x57,0x26,0x0f,0x18,0xd0,0x27,0x70,0x25,0xd6,
+/* 0x001e90 */ 0xf4,0x30,0x4e,0xfc,0xb3,0x01,0x2d,0xc8,0x75,0xe5,0x2d,0xc4,0x0c,0xff,0x8c,0xa0,
+/* 0x001ea0 */ 0x55,0x8c,0xff,0x31,0xf1,0xcf,0x9d,0x9a,0xdb,0xfd,0xe3,0xe4,0x78,0x66,0xda,0x2c,
+/* 0x001eb0 */ 0x7b,0xdd,0xa7,0x9c,0xdd,0x93,0x18,0xf7,0x6a,0x3d,0x2e,0xf9,0x87,0xbf,0x4c,0xe6,
+/* 0x001ec0 */ 0x01,0x03,0x06,0x93,0x7e,0x80,0x4e,0x7b,0x1a,0x95,0xdd,0x14,0xff,0x18,0xef,0x6f,
+/* 0x001ed0 */ 0x13,0xc5,0x03,0xdc,0xed,0x2e,0xc4,0x51,0xd6,0x00,0x42,0x73,0x62,0x68,0x3d,0xe8,
+/* 0x001ee0 */ 0x13,0x08,0x0a,0xa3,0x8a,0xbc,0xfc,0x43,0xaf,0x01,0xf3,0x9c,0x40,0x68,0xd3,0xbc,
+/* 0x001ef0 */ 0x2e,0x54,0xa3,0xd8,0xf3,0x0f,0x3d,0x7c,0x18,0x43,0xf9,0x40,0xf4,0xb8,0x1f,0xc6,
+/* 0x001f00 */ 0xbf,0x4b,0x86,0xf1,0x0f,0xdb,0xf0,0x8f,0x87,0xf1,0x57,0xf0,0xfd,0x9f,0x55,0xe6,
+/* 0x001f10 */ 0x6a,0xbf,0x6f,0xa7,0x3f,0x3d,0x77,0x2d,0x13,0x7a,0xf9,0xad,0xfc,0x0f,0xe4,0xff,
+/* 0x001f20 */ 0xd0,0xb7,0xa3,0x73,0xf7,0x22,0xdb,0xf3,0x00,0x7e,0xf9,0x71,0x69,0x9a,0x1c,0x53,
+/* 0x001f30 */ 0x58,0xfe,0x8f,0x71,0x3d,0xe0,0x1f,0x5e,0x6d,0x94,0xe9,0xd3,0x75,0xd8,0x78,0xde,
+/* 0x001f40 */ 0xc4,0x20,0x69,0xfd,0x84,0xbe,0xe8,0x1c,0xff,0x58,0xfc,0x44,0x14,0xff,0xa4,0x62,
+/* 0x001f50 */ 0xa4,0x97,0xf3,0x3f,0x61,0x1d,0x08,0xd5,0xed,0xf1,0x67,0x8e,0x4f,0x93,0x5d,0xbc,
+/* 0x001f60 */ 0xe7,0xf3,0x34,0x32,0xae,0xe7,0xfc,0x8f,0xf6,0xbe,0xc8,0xc6,0xfb,0x92,0xa3,0x13,
+/* 0x001f70 */ 0xd7,0x19,0xba,0x42,0x65,0xf2,0xf1,0x4f,0x46,0xaf,0x7f,0x3d,0x85,0x2b,0xc9,0x1b,
+/* 0x001f80 */ 0x69,0x23,0xb6,0xab,0x84,0xf8,0x3b,0xda,0xce,0xa3,0x9f,0x71,0x3c,0x60,0xce,0x3f,
+/* 0x001f90 */ 0x7a,0xfe,0x4f,0x70,0xa6,0x77,0x09,0xfa,0x26,0x7b,0x6f,0xae,0x44,0x03,0x42,0x71,
+/* 0x001fa0 */ 0x66,0x04,0xfb,0x98,0xe1,0x1f,0xe1,0xd4,0x2c,0xfa,0x67,0xc5,0x9c,0x4f,0x10,0xa3,
+/* 0x001fb0 */ 0xd1,0xfe,0x62,0xd7,0xff,0xb0,0xfc,0x1f,0x55,0xc3,0x3f,0x67,0x6d,0x40,0xe8,0x59,
+/* 0x001fc0 */ 0x97,0xfa,0x17,0x9d,0x7f,0x06,0x78,0x6c,0x51,0x7e,0x8c,0xcf,0xb6,0xf5,0x5f,0x02,
+/* 0x001fd0 */ 0x9e,0x91,0xaa,0x9c,0xfa,0xe7,0xc3,0x04,0x2e,0xdb,0x76,0x1e,0x59,0x63,0x82,0x14,
+/* 0x001fe0 */ 0x7f,0xa7,0x6f,0x23,0xfd,0x3d,0xee,0x62,0xfc,0x8f,0x31,0xff,0xc8,0x65,0x23,0x5e,
+/* 0x001ff0 */ 0xc6,0x6f,0x40,0xda,0xc6,0x3d,0x88,0xc9,0x5c,0xf5,0xf9,0x1c,0xa7,0x94,0x7e,0xe4,
+/* 0x002000 */ 0xa5,0xe3,0xb9,0xf4,0xbf,0xec,0xf8,0xe7,0x38,0xfd,0x92,0x37,0xd0,0x59,0x73,0xfe,
+/* 0x002010 */ 0x5c,0x3d,0x44,0x1b,0x4f,0xa2,0xeb,0xf8,0x53,0xc6,0xff,0x74,0xeb,0xdf,0xc7,0x0d,
+/* 0x002020 */ 0xff,0x68,0x0e,0xe8,0x74,0x3b,0x34,0x56,0xa9,0x0e,0xff,0xfb,0x4d,0xdd,0xc6,0x02,
+/* 0x002030 */ 0xfc,0x89,0xbe,0xde,0x75,0x04,0x26,0xe7,0x1e,0x41,0x67,0xa4,0xa3,0xae,0xfa,0x1f,
+/* 0x002040 */ 0x3d,0xd6,0xa6,0xd1,0x58,0xbf,0x64,0x3a,0xff,0xf4,0xd6,0xfc,0x07,0x6a,0x70,0xcb,
+/* 0x002050 */ 0xff,0x89,0xa9,0x15,0xfc,0x32,0x8b,0xcc,0x63,0x51,0xd6,0x77,0x40,0x49,0xa2,0x65,
+/* 0x002060 */ 0xd0,0x43,0x3c,0xfa,0xf3,0x00,0xfe,0xaf,0xac,0xb9,0xcc,0x99,0x31,0x80,0xc8,0x57,
+/* 0x002070 */ 0x8f,0x51,0x28,0xc9,0x7b,0x2c,0xfc,0x0f,0xc5,0x3f,0x33,0xba,0x1a,0xfc,0x16,0xfd,
+/* 0x002080 */ 0xd7,0x77,0x6b,0x46,0x27,0x14,0xc8,0xe2,0xdf,0xa2,0xe3,0xe8,0x69,0xb8,0x5f,0x22,
+/* 0x002090 */ 0x18,0xfc,0xcf,0x22,0xe0,0x7f,0x96,0x80,0x88,0xd7,0x02,0x84,0xde,0x01,0x3c,0x33,
+/* 0x0020a0 */ 0x29,0x5c,0x7d,0x95,0x27,0x3c,0x17,0xe4,0x7f,0xae,0x0a,0xab,0xc9,0x08,0xbd,0x3e,
+/* 0x0020b0 */ 0xa0,0x0a,0xf5,0x74,0x7e,0x63,0x23,0x26,0xb9,0xf9,0xdf,0xb5,0x81,0x1a,0xf0,0xd5,
+/* 0x0020c0 */ 0x7a,0xe9,0xb6,0x8b,0xa4,0xd2,0x58,0x86,0x8a,0x0f,0xab,0x0f,0x16,0xe0,0x7f,0x96,
+/* 0x0020d0 */ 0xe3,0x00,0x1d,0x96,0xa8,0x22,0xca,0xf4,0x8d,0x23,0x7c,0x7f,0x61,0xea,0x7f,0x72,
+/* 0x0020e0 */ 0x0e,0xfd,0x0f,0xd3,0x0f,0x73,0x44,0x01,0xd7,0xc3,0xdf,0xf7,0x99,0xfc,0x4f,0x95,
+/* 0x0020f0 */ 0x8b,0xfe,0x24,0xc0,0xf8,0xb1,0x00,0x54,0xe8,0x4e,0xc9,0x0d,0xb0,0xe2,0xcb,0x6e,
+/* 0x002100 */ 0xfa,0x9f,0x67,0x78,0x23,0xeb,0xff,0x0b,0xc0,0x1e,0xa8,0x7f,0x4d,0x62,0xf6,0xa8,
+/* 0x002110 */ 0x64,0xf7,0x16,0xd2,0xff,0x48,0x42,0x0d,0x00,0xa1,0x38,0x5d,0x16,0x2f,0xa3,0x53,
+/* 0x002120 */ 0xac,0x50,0x2b,0x48,0x79,0xf8,0xe7,0x57,0x36,0xfe,0x6a,0x29,0xea,0xe5,0xfa,0xff,
+/* 0x002130 */ 0x2b,0xd2,0x0e,0x10,0x32,0x1d,0x16,0x7e,0x3a,0xab,0xfe,0x67,0x1c,0xf0,0x30,0xbd,
+/* 0x002140 */ 0xcd,0xa8,0xc7,0x8f,0xda,0xd4,0xae,0x2e,0x18,0x9f,0x95,0x78,0x55,0x9e,0xfe,0xe7,
+/* 0x002150 */ 0xe7,0x36,0xfe,0x67,0x89,0xdc,0x4d,0x6a,0x33,0xfe,0x8d,0x74,0x1b,0xbb,0x15,0x84,
+/* 0x002160 */ 0x31,0x53,0xf8,0x61,0x4b,0xfd,0xdd,0xae,0xff,0x91,0xe9,0xf8,0xbc,0x4b,0xc7,0x9f,
+/* 0x002170 */ 0xed,0xa7,0x4e,0x72,0x21,0x50,0x28,0x4f,0xff,0xf3,0x27,0x67,0x99,0x58,0x32,0x8c,
+/* 0x002180 */ 0x81,0x36,0xfd,0x4f,0xc4,0x55,0xff,0x43,0xc7,0x5f,0x66,0x41,0xc1,0xb7,0xe5,0xff,
+/* 0x002190 */ 0x1a,0x46,0xdd,0xb8,0x8e,0xa4,0x3a,0x42,0xa3,0x5c,0xff,0x63,0xf5,0x7f,0x79,0x1c,
+/* 0x0021a0 */ 0xfc,0xcf,0x3a,0x4e,0x73,0xc5,0x7d,0x9b,0x4d,0x20,0x94,0x73,0xe0,0x1f,0xf3,0x79,
+/* 0x0021b0 */ 0x83,0x89,0x08,0x68,0x34,0xa6,0xa8,0x3f,0x44,0x8a,0xfa,0xbf,0x36,0x27,0xa7,0x60,
+/* 0x0021c0 */ 0x7f,0xa1,0xf9,0xbf,0x32,0xec,0xa3,0xe1,0x82,0xfa,0x9f,0x4f,0xf0,0x14,0xce,0x37,
+/* 0x0021d0 */ 0x46,0x15,0xe0,0x7f,0x02,0x3c,0xff,0xf0,0x20,0xc8,0x42,0x7e,0x44,0xfe,0x08,0xfa,
+/* 0x0021e0 */ 0xde,0xb1,0xd9,0xf5,0x3f,0xf4,0x35,0x49,0xef,0xa1,0xcb,0x2e,0xec,0x38,0x5e,0xc4,
+/* 0x0021f0 */ 0x77,0xa1,0x1e,0x8a,0x7f,0xd6,0x3f,0x7f,0xbc,0x00,0xfe,0x11,0xd3,0x77,0xd4,0xa0,
+/* 0x002200 */ 0x1e,0x5c,0xdd,0xea,0xff,0x10,0xff,0x84,0xae,0x47,0xcb,0x94,0x8a,0x82,0xfa,0x1f,
+/* 0x002210 */ 0x56,0xf6,0xda,0x89,0xaa,0x20,0x41,0xb1,0x11,0x6d,0x25,0x11,0xfa,0xd1,0x9c,0x02,
+/* 0x002220 */ 0xfa,0x9f,0x40,0x42,0x90,0x53,0xc3,0xde,0x06,0xee,0x3f,0x3a,0x4f,0x97,0xd6,0x20,
+/* 0x002230 */ 0xa9,0x2e,0xa0,0xff,0xa9,0x9b,0x14,0xbe,0x2e,0xd5,0x7b,0x28,0x22,0x6a,0x2c,0xee,
+/* 0x002240 */ 0xff,0x8a,0x32,0xd9,0x73,0x60,0xb4,0xfd,0x6b,0x74,0x1a,0xc6,0x67,0xb4,0x88,0xff,
+/* 0x002250 */ 0x0b,0xa6,0x9d,0x6a,0x94,0x22,0x6d,0x17,0x61,0xfe,0xf1,0x00,0xff,0x33,0x9b,0xfe,
+/* 0x002260 */ 0x07,0x80,0x37,0x2e,0x43,0x5b,0x51,0xd5,0x0f,0xe9,0x7e,0x93,0x09,0xcb,0x8b,0xe9,
+/* 0x002270 */ 0x7f,0x46,0xf1,0xbd,0x68,0xb7,0xf2,0x8a,0x42,0xf7,0xb3,0xe3,0x81,0x1e,0x6e,0x84,
+/* 0x002280 */ 0x2f,0xac,0xff,0x59,0x8a,0x87,0x20,0x91,0x35,0xdd,0xfe,0x19,0xc5,0x3f,0xfb,0x8a,
+/* 0x002290 */ 0xf9,0xbf,0x2a,0xfd,0x9f,0xa1,0x69,0xb5,0x59,0xf9,0x9d,0x25,0x11,0xb1,0x90,0xfe,
+/* 0x0022a0 */ 0xa7,0x7b,0x81,0x8c,0x87,0x15,0x36,0xfe,0x55,0xf4,0xd5,0x69,0xf6,0xb4,0x93,0x76,
+/* 0x0022b0 */ 0x5f,0x01,0xfd,0x4f,0x5f,0x9b,0x88,0x76,0x70,0xd8,0xd3,0x84,0x76,0x41,0x4f,0x0e,
+/* 0x0022c0 */ 0x8b,0x05,0xf4,0x3f,0xf7,0xe3,0x40,0x28,0x29,0xc1,0xb4,0xbc,0x0c,0x26,0x5e,0xf6,
+/* 0x0022d0 */ 0x91,0x6f,0x56,0xfd,0x0f,0xc0,0x00,0x09,0x62,0x70,0x94,0xf5,0x5b,0xd8,0xc0,0x82,
+/* 0x0022e0 */ 0x11,0xcc,0x17,0x29,0xa0,0xff,0x89,0x08,0xa5,0xe8,0x7d,0xd2,0x9f,0x09,0x6e,0x14,
+/* 0x0022f0 */ 0x56,0xa1,0x3f,0xf0,0x8f,0x96,0xcd,0xaa,0xff,0x51,0x40,0x78,0x3f,0xe7,0x2b,0xb8,
+/* 0x002300 */ 0x71,0x89,0x17,0xc2,0x86,0x82,0xa8,0x7d,0x56,0xff,0xd7,0x9a,0x5c,0x60,0x4c,0x68,
+/* 0x002310 */ 0x46,0xef,0xbd,0xb0,0x82,0x37,0xb4,0x8f,0xea,0x5d,0xf2,0x7f,0x04,0xfe,0xfd,0x23,
+/* 0x002320 */ 0x7f,0xbb,0x43,0x52,0xb6,0xd6,0x57,0xfd,0x95,0x08,0x0f,0xc6,0xef,0xf9,0xad,0xbd,
+/* 0x002330 */ 0x36,0x3b,0xff,0x23,0x7a,0x71,0x25,0xda,0x89,0xaa,0x89,0x38,0x8a,0xcb,0x29,0xfe,
+/* 0x002340 */ 0x61,0x0c,0xb6,0xd7,0x4d,0xff,0xc3,0x1a,0x8a,0x88,0x30,0xf2,0x76,0x51,0xdc,0x28,
+/* 0x002350 */ 0x4a,0x09,0x6d,0xe9,0x47,0xf8,0x45,0x17,0xfd,0x0f,0x5f,0xd6,0x49,0x60,0x40,0x88,
+/* 0x002360 */ 0x8a,0xa7,0x40,0xa8,0x50,0xaf,0xfb,0xbb,0x89,0xd0,0x3c,0xab,0xfe,0x47,0x02,0xb6,
+/* 0x002370 */ 0x67,0xe9,0x8c,0xc2,0xf4,0x06,0xe3,0x92,0x76,0xfd,0xec,0xfa,0x1f,0x12,0x8c,0xd3,
+/* 0x002380 */ 0xf9,0xff,0x0c,0x6d,0x04,0x46,0x85,0x26,0x74,0x56,0x62,0xc6,0xde,0xd9,0xfd,0x5f,
+/* 0x002390 */ 0xe5,0xf4,0xb1,0x91,0xd1,0x0e,0x25,0xe6,0x11,0xd3,0x21,0xbe,0x10,0xfb,0x53,0x6d,
+/* 0x0023a0 */ 0xe3,0xb3,0xea,0x7f,0x08,0xd8,0xa0,0xa4,0x14,0xcf,0xeb,0x0b,0xa0,0x5e,0x91,0x7e,
+/* 0x0023b0 */ 0x94,0x28,0xe0,0xff,0x42,0xf4,0xed,0x03,0x54,0xc1,0x64,0x8a,0x5e,0xae,0x87,0x41,
+/* 0x0023c0 */ 0x4e,0xfd,0xb3,0x05,0xe6,0x11,0x21,0x8a,0x87,0xbd,0x4c,0x28,0x1e,0xc1,0x45,0xf3,
+/* 0x0023d0 */ 0x7f,0x50,0x90,0xfe,0x3e,0x74,0x7d,0x5f,0x83,0x82,0x1d,0xb4,0xe7,0xdf,0xb8,0x9e,
+/* 0x0023e0 */ 0xd9,0x45,0xff,0x63,0xa1,0x41,0xa6,0xf0,0x59,0xb4,0xc2,0x1b,0xb8,0xea,0x5f,0x2d,
+/* 0x0023f0 */ 0xdd,0xc2,0x2e,0xfe,0x2f,0xb6,0xad,0x30,0x62,0x7f,0x32,0xf4,0x25,0xdc,0x8d,0xc2,
+/* 0x002400 */ 0x7d,0xeb,0xfa,0x97,0x45,0x25,0xc3,0x1f,0x67,0xe0,0x9f,0x85,0x23,0x74,0x9a,0xa2,
+/* 0x002410 */ 0x9b,0x2c,0xb8,0xdf,0x57,0x20,0xf6,0x47,0xc6,0x29,0x04,0x30,0x8f,0x3e,0x18,0x81,
+/* 0x002420 */ 0xf2,0x57,0xb0,0x8b,0xfe,0xe7,0x08,0xb6,0xc0,0xc8,0x0a,0xba,0x5b,0x81,0x7c,0xe9,
+/* 0x002430 */ 0x51,0x31,0xe3,0xab,0x55,0x8e,0x2a,0xac,0xe2,0x66,0xea,0x7f,0xe0,0xfc,0x8b,0x19,
+/* 0x002440 */ 0xb1,0xb1,0xcc,0x5c,0x7f,0xbb,0x85,0x19,0x8a,0x4f,0x0e,0x4b,0x4c,0x28,0x7e,0x3d,
+/* 0x002450 */ 0x6d,0xd7,0xff,0x78,0x98,0xfe,0x87,0x58,0xd5,0xdd,0x63,0xf2,0x75,0xda,0xb3,0xbb,
+/* 0x002460 */ 0xb3,0xda,0xe0,0x03,0xf3,0xfc,0x5f,0xf0,0x67,0x3b,0x4c,0x37,0xf7,0x7e,0x3f,0xd4,
+/* 0x002470 */ 0x77,0x0e,0x8e,0x06,0xf7,0x08,0xaf,0x13,0x6d,0x87,0x92,0xaf,0xff,0x01,0x91,0xad,
+/* 0x002480 */ 0xf8,0x76,0x42,0xa7,0xad,0x12,0x90,0x9f,0xc9,0xee,0x28,0xe6,0xd4,0xff,0x00,0xff,
+/* 0x002490 */ 0xd3,0x0f,0x32,0x78,0x63,0xfe,0x89,0xf8,0x3c,0x70,0xbf,0x0a,0x5d,0xb8,0x4b,0xbc,
+/* 0x0024a0 */ 0x87,0x1c,0xfe,0x2f,0x76,0xfe,0x45,0x1d,0xe4,0x3f,0x1b,0xab,0x7f,0x08,0x6d,0x07,
+/* 0x0024b0 */ 0xda,0xa7,0xc9,0xb7,0x58,0x75,0xea,0x7f,0xe8,0xf3,0xf6,0xa5,0xb4,0x3a,0x5d,0x6a,
+/* 0x0024c0 */ 0xe0,0x9f,0xfd,0x82,0x88,0xdf,0x95,0x28,0xec,0x41,0xc9,0x5d,0xf2,0x57,0x60,0x84,
+/* 0x0024d0 */ 0xcf,0xd3,0xff,0xc0,0xf9,0x17,0x64,0x4d,0xc6,0x8a,0x7f,0x2e,0xa2,0x5b,0x65,0x4c,
+/* 0x0024e0 */ 0xc6,0x3c,0xa1,0xfb,0xdf,0x4d,0xfd,0x0f,0xf0,0x3f,0x33,0x72,0xf3,0x58,0xd0,0x90,
+/* 0x0024f0 */ 0xed,0x11,0x0a,0x23,0x3f,0x90,0x43,0x0a,0xed,0x29,0x7d,0xf0,0x1c,0xb6,0xeb,0x7f,
+/* 0x002500 */ 0xe8,0xfe,0xeb,0xb0,0x08,0x69,0x63,0x6c,0xfe,0xf9,0x3e,0xc8,0x7e,0x46,0xd1,0xf6,
+/* 0x002510 */ 0x8e,0x2a,0x75,0x7d,0xbd,0xaf,0x92,0x6c,0x6f,0xb5,0xe9,0x7f,0xd8,0xf9,0x17,0xaa,
+/* 0x002520 */ 0x81,0x7f,0xaa,0x72,0x14,0xf6,0xfc,0x01,0x25,0x33,0x55,0x20,0x7b,0x6e,0xd6,0xce,
+/* 0x002530 */ 0xbf,0x78,0x30,0x95,0x8f,0x7f,0x54,0x2b,0xcd,0x58,0x8f,0xcf,0x28,0x49,0x06,0xb3,
+/* 0x002540 */ 0x13,0xa5,0x52,0xd2,0xa1,0xff,0x81,0xfa,0x97,0xda,0x9c,0xd6,0xd2,0x9e,0x1b,0x48,
+/* 0x002550 */ 0x30,0xf7,0x2e,0xe0,0x9f,0x43,0x24,0x38,0x2e,0x3c,0x80,0x3e,0x1e,0xb6,0xeb,0x7f,
+/* 0x002560 */ 0x10,0xdb,0x8f,0x8b,0x56,0xf5,0x29,0xcb,0x63,0xf1,0x80,0xfe,0x47,0x9e,0x12,0x1d,
+/* 0x002570 */ 0xfa,0x9f,0x71,0x9d,0xd6,0x36,0xd4,0xb0,0x5e,0x7a,0x57,0x74,0x59,0xbf,0xc3,0xbf,
+/* 0x002580 */ 0x8f,0x4c,0x71,0x7f,0x93,0xcd,0xff,0xc5,0xd6,0xdf,0x84,0xb6,0xfe,0x96,0xe3,0xfd,
+/* 0x002590 */ 0x20,0x44,0x69,0xf5,0xa7,0x7d,0x55,0x64,0x90,0x2b,0x52,0x54,0xfd,0xf1,0x31,0xcf,
+/* 0x0025a0 */ 0xbf,0xb0,0xd4,0xbf,0x6a,0x74,0xe1,0x4a,0x46,0xd2,0xae,0x2f,0x80,0x7f,0x7a,0xd3,
+/* 0x0025b0 */ 0x78,0x5b,0xa2,0x4b,0xa6,0x30,0xa0,0x21,0xe1,0x25,0x6f,0xca,0x19,0x9b,0xff,0xcb,
+/* 0x0025c0 */ 0x5a,0xff,0x9a,0xe4,0xfe,0xaf,0x2a,0x65,0x58,0x39,0x58,0x16,0xdc,0x2e,0xbc,0xac,
+/* 0x0025d0 */ 0x68,0xf5,0x17,0xd3,0xff,0xc5,0xf9,0x1f,0x3d,0xfd,0x38,0xc2,0x6d,0x5f,0xca,0x74,
+/* 0x0025e0 */ 0x39,0xf0,0x39,0xfe,0x89,0x8e,0x69,0xc9,0xa6,0xff,0xd1,0xf8,0x9f,0x56,0x48,0xff,
+/* 0x0025f0 */ 0xd3,0xeb,0x5f,0xd7,0x30,0xe4,0x3f,0xd3,0xf9,0xed,0x47,0x64,0x7a,0x1f,0xbb,0x7e,
+/* 0x002600 */ 0x57,0xab,0x7e,0xbd,0x76,0xfe,0x05,0x31,0xf1,0x4f,0x0a,0xff,0x4f,0x0e,0xf2,0x9f,
+/* 0x002610 */ 0x23,0x29,0x5f,0x75,0x66,0x50,0xb1,0xe9,0x7f,0x44,0xe4,0xb0,0xbd,0x7f,0x48,0x61,
+/* 0x002620 */ 0x8f,0x0c,0x32,0xef,0xc4,0x5a,0xa5,0x5f,0x85,0x8f,0xbe,0x3b,0x6a,0xf8,0x4f,0xdd,
+/* 0x002630 */ 0xf2,0x9f,0xdf,0x47,0xac,0x9e,0xf8,0x2a,0x8e,0x9b,0xf9,0xcf,0xfa,0xef,0xc5,0xce,
+/* 0x002640 */ 0xbf,0x78,0xb8,0xd9,0xe2,0x77,0x7b,0x1e,0x7f,0x4a,0xf1,0xdb,0xea,0xce,0xc0,0x73,
+/* 0x002650 */ 0xc2,0xe3,0xba,0x11,0xbe,0xcf,0xe4,0x67,0xf4,0xf3,0x2f,0xb2,0x36,0xfe,0x67,0xed,
+/* 0x002660 */ 0x86,0x54,0x6f,0xa6,0x73,0x7a,0xbe,0xd3,0xff,0x25,0x6a,0x7c,0x23,0x7f,0xde,0x76,
+/* 0x002670 */ 0x77,0xf9,0xe5,0xf0,0x30,0x3a,0x88,0x96,0x20,0xff,0xcb,0x48,0x03,0xde,0x96,0xeb,
+/* 0x002680 */ 0xd7,0x6a,0xf8,0xe7,0x35,0x4d,0xff,0xe3,0xef,0xc3,0x6f,0x92,0x1d,0x5e,0x3a,0x63,
+/* 0x002690 */ 0x8f,0x37,0x34,0xe9,0xd0,0xc8,0xd4,0xff,0xe8,0xf5,0xaf,0x0a,0x4b,0x1a,0x49,0x10,
+/* 0x0026a0 */ 0xb3,0x6d,0x78,0x13,0xde,0xad,0x1c,0x9a,0x45,0xff,0xa3,0xf6,0x6e,0xd1,0xd3,0x6f,
+/* 0x0026b0 */ 0xa6,0xe8,0xff,0xb8,0x9d,0x54,0xbd,0x47,0x9f,0x9f,0x4a,0x62,0xec,0x68,0xf4,0xe7,
+/* 0x0026c0 */ 0xcd,0xc8,0x3f,0xfc,0x67,0x50,0x3b,0xf7,0xd1,0xc6,0x46,0x61,0x31,0x7a,0x97,0x2c,
+/* 0x0026d0 */ 0xcf,0xf9,0x9f,0x15,0xfe,0xbd,0xfb,0x9b,0x6e,0x17,0xfd,0xcf,0x75,0x00,0x39,0x87,
+/* 0x0026e0 */ 0x75,0xfe,0xa7,0xde,0x90,0x11,0x2e,0x98,0xd0,0x19,0x66,0x93,0xff,0xc9,0x3f,0xff,
+/* 0x0026f0 */ 0x22,0xc5,0xf4,0xcf,0xd7,0x14,0x00,0x42,0xd1,0x69,0xa1,0x59,0xd1,0x18,0x21,0x8b,
+/* 0x002700 */ 0xfe,0x47,0xcf,0x7f,0x06,0xb5,0xe1,0x37,0xfc,0xdb,0x7e,0xcc,0x81,0xcd,0xd3,0x6d,
+/* 0x002710 */ 0xcf,0x75,0x6c,0x97,0xb8,0xff,0xdd,0xee,0xff,0x52,0xfd,0x9b,0x2d,0x7e,0xd5,0xcc,
+/* 0x002720 */ 0x1b,0xa8,0xee,0x84,0xf8,0x14,0xae,0xdc,0xac,0xe9,0x9d,0x4e,0x10,0xfd,0x7a,0xed,
+/* 0x002730 */ 0xfc,0x8b,0x1c,0x3b,0xdf,0x81,0x05,0x41,0x0f,0xd0,0xb7,0x8f,0xf6,0x5c,0xa0,0x78,
+/* 0x002740 */ 0x7b,0x27,0xd9,0x9b,0xd2,0xf6,0x5f,0xc6,0xef,0x05,0xfc,0x8f,0xac,0xe5,0xf9,0xc0,
+/* 0x002750 */ 0xec,0x5a,0xda,0x4f,0xb7,0xd5,0x74,0xe2,0xcd,0x55,0x0e,0x0a,0x31,0x7c,0x4e,0xb6,
+/* 0x002760 */ 0xe9,0x7f,0x34,0xfe,0xe7,0x04,0xcb,0x7f,0xd6,0xf2,0x78,0xa7,0xe8,0xdf,0x6f,0x3e,
+/* 0x002770 */ 0xb1,0xfb,0x5e,0xe1,0x12,0xfa,0xc2,0xcb,0xa1,0x42,0x9e,0xfe,0xe7,0x8a,0x59,0xfd,
+/* 0x002780 */ 0x59,0xa1,0x06,0x67,0x84,0x63,0xdd,0xd0,0x58,0xf2,0xe5,0x3d,0xc7,0x88,0xb6,0xbe,
+/* 0x002790 */ 0xbb,0xf0,0x3f,0xfb,0xd9,0xfa,0xdb,0x08,0xbf,0xef,0x03,0x9c,0xd8,0x19,0x58,0x16,
+/* 0x0027a0 */ 0x23,0x7c,0xfd,0x5a,0xe0,0xc2,0xff,0x0c,0xb0,0x7a,0x0d,0xe4,0x05,0xe1,0xd7,0x3d,
+/* 0x0027b0 */ 0x9c,0x08,0xf2,0x99,0x79,0x7d,0x36,0xff,0x17,0x03,0x39,0x06,0xff,0x13,0x20,0xac,
+/* 0x0027c0 */ 0xcc,0xda,0x60,0xe4,0x4d,0xb5,0x59,0xf0,0x4f,0xe0,0x09,0x7e,0x9b,0x19,0x8d,0xff,
+/* 0x0027d0 */ 0xa1,0x77,0x77,0x80,0x5c,0x87,0xc4,0xe9,0x23,0xc9,0xd7,0xf5,0xe7,0x41,0x9d,0x63,
+/* 0x0027e0 */ 0xe0,0x9f,0x45,0xc6,0xb2,0x6e,0xa4,0xfd,0x4c,0x28,0x00,0x7b,0x36,0xd4,0x0b,0xe7,
+/* 0x0027f0 */ 0x53,0x9a,0xbf,0x3b,0xf5,0xd7,0x05,0xf5,0x3f,0x08,0x68,0xa2,0xc0,0xa4,0x96,0x8f,
+/* 0x002800 */ 0x14,0x00,0x74,0xe5,0xc2,0xff,0xe4,0x35,0x56,0x0e,0x89,0x7a,0xbe,0x0d,0x05,0x72,
+/* 0x002810 */ 0xf9,0xfc,0x8f,0x71,0xec,0x97,0xa5,0x11,0x51,0x45,0x51,0xd3,0xff,0x88,0xa4,0x20,
+/* 0x002820 */ 0xff,0xc3,0x1b,0x4b,0xe3,0x20,0x24,0x66,0x3d,0x91,0xb4,0xaf,0x98,0xff,0xeb,0x0b,
+/* 0x002830 */ 0xf4,0xc0,0xc5,0x68,0xd6,0x1f,0x65,0x78,0x38,0xd0,0x93,0x8c,0xdf,0x46,0xfe,0x4f,
+/* 0x002840 */ 0x9d,0x15,0x11,0x15,0xf3,0x7f,0xd1,0x69,0x3c,0x50,0x25,0x1c,0xe0,0x7e,0x84,0xfd,
+/* 0x002850 */ 0xc5,0xf3,0x9f,0x15,0x3a,0xdf,0xf6,0xe9,0xf9,0x87,0xb2,0x8b,0xff,0x3d,0xdf,0x7f,
+/* 0x002860 */ 0x71,0x94,0xc2,0x66,0xb1,0x09,0x07,0xa4,0xbd,0xfc,0xfa,0x99,0xc2,0xfe,0x2f,0x09,
+/* 0x002870 */ 0x64,0x30,0x14,0x11,0x19,0xd2,0x20,0x8b,0xff,0x2b,0x9f,0xff,0x89,0x1a,0x44,0x10,
+/* 0x002880 */ 0x09,0x48,0xc2,0x73,0xdc,0xff,0x25,0x17,0xf5,0x7f,0xb1,0x8d,0x43,0x87,0xe9,0x88,
+/* 0x002890 */ 0x2f,0xc6,0xff,0xb0,0x61,0x07,0x21,0xd0,0x39,0xbe,0xf4,0x17,0xcf,0xff,0xa9,0x55,
+/* 0x0028a0 */ 0x23,0x9d,0x3e,0xe3,0x68,0xa1,0x02,0xfc,0x8f,0x1e,0x84,0x98,0x11,0x29,0xde,0xd3,
+/* 0x0028b0 */ 0x83,0x10,0x33,0xc5,0xf3,0x0f,0xbb,0x45,0x23,0xcf,0xad,0xa0,0xff,0x4b,0xcf,0x7f,
+/* 0x0028c0 */ 0xce,0x04,0x72,0x02,0xe8,0x45,0xc1,0xff,0x95,0x2c,0xcc,0xff,0xfc,0x3f,0xf2,0x7f,
+/* 0x0028d0 */ 0xe8,0xb2,0x18,0xf8,0x85,0xe1,0x6f,0xf2,0x14,0xf5,0x7f,0xa5,0x63,0x8c,0x7f,0x28,
+/* 0x0028e0 */ 0x70,0xfe,0x97,0xad,0xfe,0x15,0x8d,0x17,0x39,0xff,0xcb,0x9e,0x87,0xf3,0x50,0x24,
+/* 0x0028f0 */ 0x94,0xd0,0x7b,0x42,0xc5,0xfc,0x5f,0x33,0x68,0x35,0x13,0x42,0xdf,0x6e,0xfe,0xcf,
+/* 0x002900 */ 0x74,0x84,0xe9,0x7f,0x0c,0x84,0x53,0xdc,0xff,0xf5,0xbd,0xcd,0x74,0xfc,0x8d,0xfc,
+/* 0x002910 */ 0xc0,0xa2,0xf9,0x3f,0x99,0xa8,0x24,0x46,0x98,0x11,0x83,0xeb,0x7f,0x0a,0xfb,0xbf,
+/* 0x002920 */ 0xbc,0xfd,0x91,0x68,0x27,0x1d,0x1f,0xe3,0xa3,0xe2,0xfe,0xaf,0x27,0xd6,0x89,0xcf,
+/* 0x002930 */ 0x5b,0xf2,0x94,0x8a,0xf9,0xbf,0x20,0xdf,0xe0,0x25,0xad,0x67,0xee,0x6d,0xe4,0xff,
+/* 0x002940 */ 0x88,0xcd,0x6d,0xbf,0x4b,0x71,0x3d,0x58,0xeb,0x92,0xe2,0xfe,0xaf,0x31,0xda,0x18,
+/* 0x002950 */ 0xe9,0x5e,0x90,0x91,0x6e,0xc7,0xff,0x15,0xba,0x88,0x76,0xa1,0xba,0xac,0x98,0x10,
+/* 0x002960 */ 0x36,0xeb,0x1f,0xb9,0xe5,0x1f,0x5a,0xdf,0x17,0x88,0xdd,0x88,0x0c,0x9a,0x88,0xa8,
+/* 0x002970 */ 0xb0,0xff,0xeb,0xa6,0x67,0xbb,0xa7,0x36,0x21,0x76,0xe2,0x7f,0xd4,0xf3,0xbb,0x66,
+/* 0x002980 */ 0xf5,0x7f,0xd5,0x42,0xe3,0x26,0xfa,0x4f,0xb2,0x26,0x1e,0xd8,0xe2,0xbf,0x6d,0xff,
+/* 0x002990 */ 0x17,0xab,0x7f,0x0d,0xf8,0xf5,0x9e,0xb9,0xc5,0xf2,0x7f,0xae,0x80,0x11,0xec,0x99,
+/* 0x0029a0 */ 0x64,0xb3,0xe4,0x3c,0xff,0xcb,0xee,0xff,0x9a,0x67,0x31,0x82,0xe9,0xb7,0x86,0x8a,
+/* 0x0029b0 */ 0xe5,0xff,0xfc,0x06,0xd5,0x9e,0xf0,0x6d,0x29,0x94,0x7f,0x68,0x8c,0xa7,0x7e,0xcc,
+/* 0x0029c0 */ 0x41,0x6e,0x9d,0x31,0xff,0xac,0x2c,0x9a,0xff,0xf3,0x05,0xcb,0x4f,0xd3,0x4f,0x7c,
+/* 0x0029d0 */ 0x18,0xb0,0x9c,0xbf,0xe3,0xf0,0x7f,0x95,0xb0,0x46,0x6b,0xf3,0xd6,0x3c,0x45,0x50,
+/* 0x0029e0 */ 0x11,0xff,0x17,0x8b,0xa1,0xb8,0xea,0xd7,0xf3,0x0f,0x93,0xae,0xfe,0x2f,0x0b,0xb1,
+/* 0x0029f0 */ 0xf3,0x0e,0x89,0xa1,0xf5,0x59,0x7d,0xfd,0xaa,0x2f,0xe6,0xff,0xf2,0x1c,0x55,0x63,
+/* 0x002a00 */ 0x5c,0x78,0xc9,0x7b,0x7c,0x4e,0xff,0x97,0x5b,0xec,0x8f,0xef,0xe1,0xa2,0xfe,0xaf,
+/* 0x002a10 */ 0x18,0x6f,0xb0,0x04,0x89,0x49,0xf3,0x44,0x0c,0x57,0xff,0xd7,0x33,0xb7,0x95,0xff,
+/* 0x002a20 */ 0xa3,0x5d,0x5f,0xaa,0x0a,0x16,0xe0,0xf4,0x11,0x10,0x47,0xd9,0xea,0xf3,0xe8,0x16,
+/* 0x002a30 */ 0x57,0xc8,0x58,0xf5,0x3f,0x76,0x7c,0x42,0xf0,0x04,0xc4,0xce,0xab,0x15,0xd9,0x39,
+/* 0x002a40 */ 0x13,0x22,0x28,0x90,0xf3,0xf5,0x3f,0xba,0x1e,0x55,0xd2,0x6f,0x13,0x80,0x1f,0x41,
+/* 0x002a50 */ 0x51,0x64,0x3d,0xff,0xe2,0x93,0x02,0xfa,0x67,0xfa,0xf7,0x51,0x8a,0xe2,0x81,0xde,
+/* 0x002a60 */ 0x83,0xac,0x67,0x99,0x4d,0xff,0xa3,0xaf,0xbf,0x86,0x3b,0x60,0x9b,0x70,0x1e,0xe6,
+/* 0x002a70 */ 0x07,0x90,0x69,0x4d,0xa8,0xd7,0xc3,0xa5,0x40,0x2d,0xda,0xf4,0x3f,0xf9,0x6e,0xf7,
+/* 0x002a80 */ 0xbf,0xbb,0x21,0x69,0x3d,0xf4,0x0d,0x4a,0x33,0xc4,0x68,0xd1,0xff,0x20,0xfb,0xf3,
+/* 0x002a90 */ 0x49,0x84,0x89,0xfa,0x29,0x25,0xcc,0xf6,0x23,0x64,0x3d,0xff,0xa8,0x10,0xfe,0x21,
+/* 0x002aa0 */ 0xf8,0x5b,0xfe,0xb5,0xdf,0xc4,0x97,0x75,0x3d,0xbc,0x45,0xff,0xb3,0x50,0xdb,0x7f,
+/* 0x002ab0 */ 0x21,0x73,0x7c,0x4e,0x43,0x4c,0x04,0xf2,0x2f,0xc7,0xa7,0x15,0x8d,0xaf,0x70,0x3d,
+/* 0x002ac0 */ 0xff,0x54,0xc3,0x3f,0x50,0x06,0x7a,0x8b,0x7c,0x7f,0x7c,0xfd,0xd3,0xe1,0x47,0xbd,
+/* 0x002ad0 */ 0xda,0xf9,0x17,0x4e,0xfd,0x0f,0xdd,0x5f,0xeb,0xf5,0xaf,0xfb,0x46,0xd0,0xa4,0xd4,
+/* 0x002ae0 */ 0x89,0x82,0x4d,0xc2,0x19,0xf4,0xae,0x64,0xcf,0x3f,0x04,0xfd,0x8f,0x64,0x1d,0x9f,
+/* 0x002af0 */ 0xdc,0xf7,0x6e,0xfc,0xd3,0x0d,0x6d,0x04,0x96,0x69,0xcf,0x83,0x8b,0xfe,0xc7,0x18,
+/* 0x002b00 */ 0xff,0xbe,0xaa,0xc5,0xd2,0x30,0x7d,0x7f,0x03,0xfd,0xd0,0x33,0xbf,0x79,0xc8,0xa1,
+/* 0x002b10 */ 0xff,0xb1,0xeb,0x9f,0x2b,0xc9,0x36,0x96,0x7f,0x18,0x3a,0x4f,0xf8,0x8c,0xd4,0x66,
+/* 0x002b20 */ 0xd5,0xff,0xe4,0xdd,0xef,0x5d,0x70,0xbf,0x8b,0x51,0x77,0x77,0x6d,0x2e,0x42,0x7b,
+/* 0x002b30 */ 0xd2,0xda,0xf9,0x17,0x4e,0xfd,0x8f,0xdf,0x38,0xed,0xa2,0x69,0x47,0x60,0x4e,0x62,
+/* 0x002b40 */ 0x34,0xfa,0x35,0xc5,0x93,0xa7,0xe5,0x15,0xb2,0xbd,0xfe,0xa5,0x9f,0x7f,0xfa,0xb9,
+/* 0x002b50 */ 0x9e,0xff,0x9c,0x4b,0x46,0xd0,0x19,0xb4,0x24,0x4d,0xd7,0xf7,0x3f,0x46,0xaf,0x89,
+/* 0x002b60 */ 0xf6,0xf3,0x2f,0xdc,0xce,0x3f,0x95,0xa6,0x44,0xc6,0xff,0x5c,0x40,0xee,0xfa,0x1f,
+/* 0x002b70 */ 0x6c,0x5b,0xef,0xd6,0xfd,0x2b,0xc8,0x9e,0x09,0x0b,0xd2,0x69,0x70,0xd1,0xff,0x70,
+/* 0x002b80 */ 0x91,0xad,0xfd,0xd8,0xcd,0x17,0xf0,0x63,0x6a,0x4a,0xe3,0x7f,0x48,0x51,0xfd,0x0f,
+/* 0x002b90 */ 0x10,0x41,0x2c,0x18,0xe7,0x36,0xf0,0x0f,0xe1,0xc4,0x08,0xde,0xc4,0x89,0x20,0x77,
+/* 0x002ba0 */ 0xfd,0xf3,0x5c,0x4b,0xfe,0xcf,0x94,0xd2,0x5c,0x16,0xfc,0xb5,0x70,0x61,0x2d,0x10,
+/* 0x002bb0 */ 0x11,0xf6,0xf3,0x4f,0xbd,0xf9,0x69,0xcf,0xb4,0xa1,0x7c,0x1b,0x69,0x51,0x82,0x43,
+/* 0x002bc0 */ 0x0b,0x36,0x29,0x1a,0xff,0xe3,0xa2,0xff,0x31,0xc6,0x47,0x12,0x7e,0x4a,0x20,0x41,
+/* 0x002bd0 */ 0x28,0x50,0x3e,0x77,0xe9,0xba,0xd3,0xe4,0xc7,0x36,0xfd,0xb3,0xe4,0x56,0xff,0x1a,
+/* 0x002be0 */ 0xec,0x8b,0x45,0xee,0x4c,0x35,0x1c,0x6c,0x4b,0x29,0x8f,0x41,0x22,0xb4,0xdb,0xf9,
+/* 0x002bf0 */ 0xa7,0xfa,0xfd,0xa6,0x97,0x96,0x48,0xfd,0xb0,0xed,0xda,0x93,0xa8,0xf1,0x76,0xb5,
+/* 0x002c00 */ 0xca,0x0e,0xfd,0x0f,0x1b,0xbd,0x5e,0x83,0x7f,0xd3,0x63,0x27,0xff,0x9e,0xe0,0x8c,
+/* 0x002c10 */ 0xd8,0x83,0xf6,0xcd,0x7a,0xfe,0x97,0xd6,0x98,0x2f,0x6c,0x12,0xa7,0x81,0xcf,0x17,
+/* 0x002c20 */ 0xc3,0xd5,0xdd,0x3d,0xb9,0x70,0x7e,0xfd,0xcb,0x7a,0xfe,0x97,0xc6,0x07,0xfa,0xb5,
+/* 0x002c30 */ 0x11,0xeb,0x11,0x72,0x6c,0x7c,0x4a,0xd2,0x73,0xdd,0xce,0x3f,0x7d,0xdc,0x78,0xde,
+/* 0x002c40 */ 0x1e,0xa3,0x8d,0x46,0x14,0x48,0x09,0x1e,0x32,0xdc,0x6a,0x3f,0xff,0xcb,0xa9,0x7f,
+/* 0x002c50 */ 0x0e,0x03,0xed,0x23,0x13,0x31,0x87,0xef,0x47,0x09,0xfe,0x51,0xc1,0xf3,0x4f,0x7d,
+/* 0x002c60 */ 0x01,0xb6,0x31,0x8f,0x34,0xb1,0xf3,0x08,0x9e,0x98,0x45,0xff,0x63,0x7d,0x7f,0xe9,
+/* 0x002c70 */ 0xfa,0x58,0xa5,0x8a,0x3f,0xde,0xb7,0x46,0xf7,0x43,0xe5,0x9f,0xff,0x95,0x5f,0xff,
+/* 0x002c80 */ 0x7a,0xf6,0x6e,0xe8,0xb9,0x2f,0x17,0xd8,0x22,0x04,0xc5,0xf7,0x6f,0x27,0xff,0xf0,
+/* 0x002c90 */ 0x00,0xfd,0x3e,0x2d,0x60,0x0c,0x37,0x96,0xc2,0x59,0xce,0xff,0xba,0x45,0x1e,0x18,
+/* 0x002ca0 */ 0x0f,0x1e,0x11,0xae,0x01,0xfe,0x19,0x2f,0xb9,0x9e,0xbc,0x49,0xff,0x21,0x17,0xfd,
+/* 0x002cb0 */ 0x0f,0xff,0xfe,0x1e,0x1d,0xad,0x85,0x3e,0xa2,0x8d,0xbb,0x72,0x25,0x74,0xdb,0x48,
+/* 0x002cc0 */ 0xde,0x10,0xd7,0x40,0x8f,0x0b,0xfe,0x99,0xe4,0xe9,0x8e,0x43,0xda,0x31,0xaf,0x75,
+/* 0x002cd0 */ 0xc3,0x30,0x5f,0x49,0x0e,0xff,0xbb,0x6c,0xec,0xbf,0x12,0xfa,0xc0,0x26,0xe8,0x7e,
+/* 0x002ce0 */ 0x56,0x8a,0x5e,0xf5,0xd4,0x87,0x46,0xea,0x0f,0xed,0x67,0x43,0xed,0x7a,0xfe,0x29,
+/* 0x002cf0 */ 0xac,0xe6,0x4f,0xab,0xc1,0xa7,0x85,0x09,0xcf,0x15,0x28,0x94,0x1f,0x14,0x2e,0xa3,
+/* 0x002d00 */ 0xa3,0x27,0x18,0xe3,0x31,0x63,0xd1,0x3f,0x6b,0x83,0xd0,0x6f,0x8e,0xcf,0x45,0xef,
+/* 0x002d10 */ 0x75,0xb1,0x71,0x6d,0x30,0xdb,0x7e,0x49,0x71,0xd5,0xff,0xdc,0xa2,0xb3,0x6b,0x70,
+/* 0x002d20 */ 0xd2,0x4c,0x7b,0x7e,0x54,0x3c,0x8b,0x1e,0x50,0x40,0x71,0x24,0x6a,0x3d,0xe3,0x4e,
+/* 0x002d30 */ 0xfc,0x53,0x6f,0x9e,0xe6,0x00,0xdb,0xd8,0xea,0xb8,0xbf,0x3f,0x7c,0x49,0xe1,0x3d,
+/* 0x002d40 */ 0x6d,0x4e,0xfe,0x47,0xf3,0x8b,0x3d,0x09,0x8d,0xcd,0xca,0xaf,0xd0,0x32,0xd0,0x5b,
+/* 0x002d50 */ 0x5e,0x2a,0x90,0x7f,0x98,0xd5,0xd1,0xf5,0x41,0xec,0x43,0x7b,0x91,0x3c,0xec,0xbf,
+/* 0x002d60 */ 0x7f,0x8e,0x5b,0xfe,0x61,0x40,0xf3,0x7f,0x65,0xf5,0x6a,0xe0,0x41,0x76,0xec,0xc5,
+/* 0x002d70 */ 0xaa,0x8b,0xf4,0x87,0x9e,0xe8,0x70,0xea,0x9f,0x1d,0xf9,0x87,0x5f,0x2e,0x00,0x06,
+/* 0x002d80 */ 0x6c,0xf5,0x89,0xb9,0x87,0x85,0x9b,0x5d,0xb3,0xe4,0x1f,0xba,0xc1,0xa4,0x80,0x05,
+/* 0x002d90 */ 0x41,0xa1,0x62,0xe7,0x7f,0x79,0xf3,0x13,0xb0,0x8b,0xe5,0xff,0x1c,0x42,0x11,0xc5,
+/* 0x002da0 */ 0x8a,0x7f,0x8a,0xe5,0xff,0x80,0xc3,0x77,0x9e,0xde,0x23,0x58,0xf5,0x3f,0xca,0xc2,
+/* 0x002db0 */ 0x09,0x17,0xfc,0x6c,0x02,0x63,0xc4,0x18,0xd4,0xfa,0x82,0xfe,0x2f,0x6e,0x6b,0x2a,
+/* 0x002dc0 */ 0x35,0xf3,0x9f,0x85,0xb1,0x82,0xfe,0xaf,0xff,0xa3,0xee,0xfa,0x83,0x9b,0xb8,0xee,
+/* 0x002dd0 */ 0xfc,0xd3,0xee,0x62,0x9e,0xa5,0x95,0xb5,0xc8,0x90,0x61,0x02,0x71,0xd6,0xb2,0x43,
+/* 0x002de0 */ 0x05,0x27,0xcb,0xc6,0xf6,0x51,0x87,0x18,0x79,0x6d,0x7c,0x37,0x4a,0x20,0xd8,0xe4,
+/* 0x002df0 */ 0x32,0x9d,0xf4,0x2e,0x97,0x2a,0x0c,0x7f,0x70,0x39,0x9a,0x73,0x3a,0x9d,0x39,0x2e,
+/* 0x002e00 */ 0x97,0xe1,0xd6,0xb2,0x13,0x64,0x43,0xb1,0xa0,0x34,0xa5,0x33,0x5c,0x4f,0x21,0x74,
+/* 0x002e10 */ 0x8e,0xe9,0xd1,0xab,0xc1,0x2e,0x76,0x30,0x07,0x6b,0xe2,0x24,0x22,0x18,0xe2,0xe4,
+/* 0x002e20 */ 0xd2,0x26,0xbd,0xfc,0x40,0x76,0x9c,0xd4,0x49,0x05,0x71,0x82,0xd3,0xd8,0xb1,0xb1,
+/* 0x002e30 */ 0xef,0xbd,0x95,0x64,0xed,0x4a,0xef,0xad,0xe4,0xd0,0xe9,0xcd,0xfd,0xf7,0x9d,0xa7,
+/* 0x002e40 */ 0xc5,0xf6,0x3e,0x56,0xef,0x7d,0xf6,0xf3,0x3e,0xdf,0xcf,0x27,0xb5,0x38,0xd9,0x22,
+/* 0x002e50 */ 0x64,0xe2,0x7f,0xf4,0x8a,0x26,0xf3,0x3a,0xdd,0xf9,0x17,0xd5,0x7f,0x75,0x30,0xf1,
+/* 0x002e60 */ 0xbe,0xb0,0xde,0x00,0xff,0x90,0x0a,0x3e,0x83,0xff,0x8f,0x26,0x11,0x43,0x3d,0xff,
+/* 0x002e70 */ 0x62,0x8c,0xfb,0xbf,0x70,0x21,0x25,0x47,0x9a,0x74,0xf9,0xa7,0x94,0x69,0x89,0x58,
+/* 0x002e80 */ 0x35,0x23,0xd9,0xe4,0xbf,0x6b,0x1d,0xe6,0x93,0xfd,0x5f,0x4a,0x9a,0xfe,0x27,0x56,
+/* 0x002e90 */ 0xb8,0xe2,0xf9,0x5f,0x71,0xfd,0x8f,0x26,0xff,0x94,0x32,0x8d,0x03,0x5a,0xc7,0x75,
+/* 0x002ea0 */ 0x52,0xfe,0xbb,0x9e,0xff,0xf1,0x84,0xac,0xda,0x11,0x63,0xfc,0x63,0xc8,0xff,0x18,
+/* 0x002eb0 */ 0xfa,0x1b,0x13,0xfc,0x9f,0x69,0xf9,0xef,0xf4,0xfc,0xd3,0xcc,0xd7,0x67,0xc3,0xff,
+/* 0x002ec0 */ 0x50,0xf2,0x4f,0x49,0xfd,0x5f,0x69,0x09,0x20,0xd7,0x53,0xf4,0xcf,0xe9,0xb7,0x59,
+/* 0x002ed0 */ 0xa3,0x1b,0x79,0xd9,0xa0,0xff,0x2b,0xa5,0x28,0x50,0xf5,0x3f,0xf3,0xe7,0x53,0x24,
+/* 0x002ee0 */ 0xfc,0x93,0x5e,0x24,0xfb,0xbf,0xd2,0xf1,0x0f,0xa9,0x78,0xc3,0x94,0xb8,0xde,0x38,
+/* 0x002ef0 */ 0xff,0x9d,0xc0,0xff,0x2c,0x49,0xfc,0xb5,0x29,0xf9,0x5f,0x3e,0xed,0x8d,0x18,0xe1,
+/* 0x002f00 */ 0x9f,0xc4,0xf9,0xd7,0x42,0xfd,0x9f,0xef,0x4c,0x14,0x0d,0x72,0x0b,0x09,0xff,0xb0,
+/* 0x002f10 */ 0xc7,0xd3,0x1a,0xc1,0xe2,0xc5,0x98,0x1e,0xff,0x98,0x32,0xad,0x3f,0xc6,0xf8,0x27,
+/* 0x002f20 */ 0xbd,0x68,0xf4,0x1b,0xe1,0x9f,0x44,0x61,0x49,0x8e,0x6c,0x24,0xf2,0x3f,0xd4,0x85,
+/* 0x002f30 */ 0x37,0x48,0xc2,0x3f,0x69,0xb6,0xcf,0xd6,0x44,0x61,0xf9,0x98,0x98,0x7f,0x4a,0x5f,
+/* 0x002f40 */ 0x7f,0x6a,0x49,0xf8,0x27,0xed,0xfa,0x79,0xe2,0xc8,0xe2,0x4b,0xc9,0x3f,0x25,0x4f,
+/* 0x002f50 */ 0x63,0x72,0xfd,0x01,0x86,0xfd,0x5f,0x69,0xfb,0x17,0x9b,0xa9,0xff,0x0b,0x15,0x9c,
+/* 0x002f60 */ 0x76,0xbf,0x0b,0x65,0xe1,0xff,0x53,0x8d,0xf7,0xf7,0xa4,0x9f,0x1b,0x45,0xff,0xac,
+/* 0x002f70 */ 0x25,0x82,0xcc,0xf3,0x23,0xbf,0xf0,0x1b,0xf5,0x7f,0x69,0x8d,0x8b,0x63,0x23,0xc1,
+/* 0x002f80 */ 0xb4,0xfc,0x53,0xfd,0xfc,0xc4,0x76,0x40,0xa7,0x66,0x7e,0x0c,0xfb,0xbf,0x12,0xe7,
+/* 0x002f90 */ 0x0b,0x89,0xe2,0x3b,0xc1,0x0c,0xfe,0xcf,0xa9,0x44,0x90,0x42,0xcf,0x3f,0xdd,0x80,
+/* 0x002fa0 */ 0x4f,0xbb,0x7a,0xc1,0xd5,0x50,0x05,0xfe,0x45,0x98,0x18,0x29,0xc5,0x8d,0x3f,0x11,
+/* 0x002fb0 */ 0x3a,0xfe,0x81,0x32,0x03,0x41,0xcb,0x56,0x4c,0xcb,0xac,0x8a,0x2e,0x8f,0x09,0xbf,
+/* 0x002fc0 */ 0xd3,0xfa,0xbf,0x34,0x7a,0x30,0x6f,0x68,0x4d,0x08,0x26,0xf2,0xb8,0x61,0x3a,0xff,
+/* 0x002fd0 */ 0xa3,0xc7,0x3f,0xf8,0xfa,0x3a,0x11,0x60,0x19,0xb9,0xda,0x11,0xd6,0xe7,0x78,0x1c,
+/* 0x002fe0 */ 0x13,0x3b,0xe3,0x24,0xfc,0x83,0x1f,0xa4,0x9a,0x08,0x0f,0x5b,0xf0,0xb1,0x54,0x79,
+/* 0x002ff0 */ 0xac,0x71,0x7e,0xfa,0x39,0x15,0x3a,0x0e,0x51,0xf9,0x9f,0xd1,0xd2,0x8b,0x09,0x59,
+/* 0x003000 */ 0xd4,0xf8,0x5f,0xcd,0x3c,0x84,0xbe,0x2f,0x8a,0x35,0x35,0xff,0x5d,0xa7,0xc7,0xe3,
+/* 0x003010 */ 0x8f,0x15,0x9d,0xe0,0x62,0xb1,0x74,0x2d,0xb1,0x5f,0x4d,0xec,0xff,0x8a,0xd1,0x86,
+/* 0x003020 */ 0x26,0xb7,0xcf,0x7a,0x94,0xc9,0x03,0x1d,0x58,0xf6,0xdc,0x2b,0x46,0x11,0x7e,0x5e,
+/* 0x003030 */ 0x9f,0xc2,0xff,0xa4,0xe0,0x9f,0x01,0x08,0x99,0x76,0xae,0x45,0x2e,0x56,0x56,0xac,
+/* 0x003040 */ 0x65,0x06,0x97,0x62,0x3f,0x26,0x63,0xfe,0x27,0xf7,0x5e,0xf3,0xed,0xcb,0xf7,0x04,
+/* 0x003050 */ 0xee,0x1a,0xce,0xdd,0x65,0x7f,0x1f,0xf6,0x1c,0x5c,0x9d,0xce,0xff,0x74,0x69,0x60,
+/* 0x003060 */ 0x4f,0x98,0x3f,0xc0,0xc8,0xbe,0x17,0x41,0xa5,0x62,0xbb,0x9b,0x1d,0x8c,0xdc,0x30,
+/* 0x003070 */ 0x55,0x47,0x1b,0x74,0xf9,0xef,0xa9,0xf8,0x67,0xcf,0xeb,0xec,0x78,0xe3,0x9c,0x70,
+/* 0x003080 */ 0x0f,0x82,0x79,0xd2,0x8c,0x34,0x1d,0xf7,0x83,0xa2,0xe3,0x1f,0x5e,0x66,0x9d,0xa8,
+/* 0x003090 */ 0x58,0xa7,0xf2,0x63,0xe0,0x46,0x73,0x39,0x9e,0x1f,0x12,0xfe,0x61,0x8f,0xc4,0x62,
+/* 0x0030a0 */ 0x2f,0x1a,0xf1,0xfb,0x63,0xcc,0xff,0xf0,0xbd,0xe5,0x3d,0xbe,0xe7,0xf0,0xc2,0xa2,
+/* 0x0030b0 */ 0xc9,0x7f,0x4f,0xc5,0x3f,0xb9,0x5e,0x7b,0x01,0xd7,0xe3,0xbf,0x4b,0x1d,0x09,0x9d,
+/* 0x0030c0 */ 0x3f,0xbe,0x3a,0x35,0xff,0x5d,0xff,0xbc,0xe1,0x18,0x59,0x7e,0x49,0x1f,0x10,0xfb,
+/* 0x0030d0 */ 0x2d,0x65,0xab,0x2e,0x73,0x5d,0xb5,0x3e,0xe5,0x5e,0x03,0xfc,0x53,0x2d,0x97,0x6c,
+/* 0x0030e0 */ 0x5f,0x71,0x77,0xa2,0xed,0x6b,0x0a,0xcc,0x4a,0xeb,0x09,0xf9,0xef,0xea,0x36,0x54,
+/* 0x0030f0 */ 0xa4,0x16,0x42,0x5e,0x80,0xfd,0x40,0xcd,0xff,0xb2,0xc8,0xec,0xb0,0x38,0x09,0xf3,
+/* 0x003100 */ 0xd2,0xf8,0x1f,0x93,0x6e,0xbf,0x73,0x1f,0x66,0x8b,0x73,0x54,0x5b,0xe3,0xc3,0xec,
+/* 0x003110 */ 0xb0,0xf0,0xb6,0x31,0xfe,0x31,0xb9,0xbd,0xa5,0x87,0xed,0x8b,0x83,0x58,0xcf,0x73,
+/* 0x003120 */ 0xe9,0x88,0x7f,0x44,0xee,0x35,0xc0,0x3f,0xc7,0x38,0x5c,0xac,0x39,0x60,0x77,0x83,
+/* 0x003130 */ 0x36,0xd9,0x21,0x59,0x0e,0xc4,0xf0,0x00,0x0d,0xff,0xe4,0xa0,0xdd,0x1f,0xba,0xbc,
+/* 0x003140 */ 0x2b,0xb0,0xec,0xb0,0x39,0x26,0xfb,0x19,0x08,0x9c,0x14,0x09,0xf8,0xa7,0x17,0x24,
+/* 0x003150 */ 0xf4,0x27,0xa2,0x67,0xe9,0x96,0x45,0x96,0x42,0x29,0xfc,0x50,0x39,0x26,0x82,0x86,
+/* 0x003160 */ 0xa5,0xb7,0x33,0xe0,0x9f,0x9a,0xfa,0xd2,0xa1,0xfc,0x09,0x2e,0xa6,0x08,0xb2,0x47,
+/* 0x003170 */ 0xa5,0xe9,0x18,0xff,0xf3,0x32,0x85,0xff,0x09,0xd5,0xf8,0xf2,0x5e,0x47,0x2f,0xaa,
+/* 0x003180 */ 0xef,0x29,0xeb,0x24,0xdb,0x52,0xd3,0xcb,0xfd,0x17,0x43,0xaa,0x94,0x48,0xcf,0xff,
+/* 0x003190 */ 0x8c,0xcd,0xa3,0x1d,0xc9,0xcd,0xc1,0x9f,0xdb,0xd7,0x80,0xc0,0x90,0x03,0x58,0x02,
+/* 0x0031a0 */ 0x8e,0x11,0xf0,0x76,0x4c,0xff,0x73,0x85,0x82,0x7f,0x24,0xdc,0xe6,0x56,0xc7,0x89,
+/* 0x0031b0 */ 0x07,0x44,0xdc,0xf6,0x75,0xdb,0x87,0x72,0x73,0xad,0x4b,0x5a,0x61,0x98,0xff,0xfe,
+/* 0x0031c0 */ 0x98,0x90,0xd0,0x53,0xc9,0x8e,0x31,0xe9,0x27,0x02,0x3d,0xff,0x3d,0x06,0x7b,0xf2,
+/* 0x0031d0 */ 0x0e,0x58,0xee,0x02,0xbf,0x05,0xb7,0x49,0x58,0x18,0xc6,0xb5,0x49,0x04,0xfc,0xf3,
+/* 0x0031e0 */ 0x71,0xf2,0xfa,0x6a,0xef,0x0f,0x0e,0xe7,0xff,0xce,0x89,0x7f,0x42,0x03,0x16,0x92,
+/* 0x0031f0 */ 0x4d,0xf9,0x3d,0xb1,0xfe,0xaf,0xc4,0xcf,0x4f,0xc1,0x3f,0xe5,0xa2,0x4d,0xce,0x17,
+/* 0x003200 */ 0x61,0x4c,0x76,0x55,0x28,0x96,0x85,0x53,0xcf,0xbf,0xf4,0xfc,0x0f,0x53,0x14,0x64,
+/* 0x003210 */ 0x8f,0x9a,0x6f,0x07,0x67,0xc4,0x75,0xf2,0x96,0x31,0x76,0x39,0x6c,0x67,0xdd,0x72,
+/* 0x003220 */ 0x9e,0x01,0xff,0xa3,0xba,0xf3,0x59,0xd1,0x0a,0x86,0xd6,0xe7,0xea,0x67,0xac,0x09,
+/* 0x003230 */ 0xfe,0x99,0x82,0x7f,0xba,0x64,0xfc,0xb5,0x35,0xdf,0x81,0x10,0x54,0x89,0x62,0xfe,
+/* 0x003240 */ 0x67,0x7f,0xcc,0x0f,0xe7,0x76,0x32,0xff,0x13,0xd7,0xef,0x21,0x7c,0x62,0xe7,0x7a,
+/* 0x003250 */ 0x5a,0xd7,0x46,0x6c,0x4f,0xb2,0x05,0x5c,0x3a,0xff,0x93,0x72,0xfe,0x35,0x64,0xeb,
+/* 0x003260 */ 0xc6,0x6d,0x14,0x12,0x5e,0x4f,0x2c,0x51,0x38,0xad,0xea,0x09,0x8b,0xe8,0xf8,0x67,
+/* 0x003270 */ 0x9c,0x7f,0x8a,0xf5,0x80,0x2f,0x14,0x95,0xf6,0xd9,0xbd,0x7d,0xce,0x5f,0x3a,0x6a,
+/* 0x003280 */ 0x9b,0x5c,0x4c,0xcc,0x7f,0x8f,0xaf,0x3f,0x4f,0x38,0x56,0x0a,0x3d,0x82,0xda,0xf6,
+/* 0x003290 */ 0x8e,0xfe,0xc2,0xce,0x62,0xb4,0xfe,0xdc,0x46,0xc3,0x3f,0x42,0x89,0x8c,0x60,0x92,
+/* 0x0032a0 */ 0x90,0x68,0x7b,0x7f,0x98,0xeb,0x59,0x4b,0xc8,0x7f,0xd7,0xcc,0xa7,0x5b,0x86,0xdd,
+/* 0x0032b0 */ 0x8c,0x29,0x36,0x9f,0x65,0x39,0xd1,0xd6,0x2e,0x66,0xbb,0xba,0x9e,0x53,0xf0,0x4f,
+/* 0x0032c0 */ 0x8e,0x07,0xb8,0xba,0x2d,0xae,0xfa,0x69,0x0e,0xef,0x2f,0x45,0xff,0xc0,0x4d,0xb7,
+/* 0x0032d0 */ 0xaa,0x1f,0x11,0xf1,0x0f,0xfa,0x87,0x26,0x4f,0x50,0x03,0x0c,0x4c,0xe8,0xfb,0xb5,
+/* 0x0032e0 */ 0x34,0x07,0x03,0x21,0x3a,0xfe,0x81,0xfc,0x6f,0xf7,0x76,0xc7,0x8c,0x80,0x66,0x70,
+/* 0x0032f0 */ 0xc7,0x19,0xac,0xe9,0xb7,0x18,0xe1,0x9f,0x10,0x1c,0x62,0x2a,0x7d,0xff,0x16,0x44,
+/* 0x003300 */ 0xfb,0xd7,0x59,0x26,0x2a,0x25,0xfc,0xfd,0x48,0xfc,0x8f,0x7a,0xfd,0x56,0x18,0x5c,
+/* 0x003310 */ 0x73,0x2c,0xae,0x17,0x4a,0xe6,0x35,0x18,0xe0,0x1f,0x58,0x56,0xc7,0x73,0x5d,0xb1,
+/* 0x003320 */ 0x36,0x9f,0xe8,0xa1,0xe7,0xd3,0xf8,0x1f,0x3d,0xfe,0xa9,0x01,0xfc,0x10,0x5a,0x88,
+/* 0x003330 */ 0x6e,0xe2,0xfd,0xb7,0x1b,0xcd,0xc0,0x25,0x59,0x0d,0xc6,0xa5,0xe3,0x1f,0xb9,0x14,
+/* 0x003340 */ 0xc7,0xa0,0xe3,0x8e,0x9e,0x4d,0xe3,0xec,0x35,0x30,0x5d,0x5b,0x13,0x26,0xf4,0xbf,
+/* 0x003350 */ 0x67,0xf2,0x87,0x4c,0xea,0x9f,0x43,0x14,0xfd,0x4f,0x4a,0x3e,0x48,0x46,0xfe,0x47,
+/* 0x003360 */ 0x5f,0xbc,0x91,0x51,0xff,0x93,0x92,0x27,0x92,0x45,0xfe,0xbb,0xee,0x3c,0x74,0x01,
+/* 0x003370 */ 0xf9,0x5f,0xaa,0xfe,0x39,0xa3,0xff,0xb3,0xbe,0xc8,0x9c,0xff,0xae,0x2f,0x92,0xfa,
+/* 0x003380 */ 0x1f,0x91,0xa8,0xff,0x49,0x2d,0x32,0xf9,0x3f,0x27,0xf3,0xd0,0x53,0xf5,0x3f,0xe9,
+/* 0x003390 */ 0xfd,0x5f,0xa4,0x22,0x0b,0xfd,0x8f,0xb6,0xc8,0xcf,0x22,0xff,0x4b,0x57,0x64,0xa3,
+/* 0x0033a0 */ 0xff,0xc9,0xd3,0x8c,0x18,0xf5,0x7f,0x91,0x0a,0xa3,0xfe,0xaf,0x44,0x61,0xd6,0x3e,
+/* 0x0033b0 */ 0x6f,0x19,0xf5,0x3f,0xfa,0x22,0x1b,0xfd,0x4f,0xde,0xd7,0xf5,0x7f,0xb6,0x65,0x9d,
+/* 0x0033c0 */ 0xff,0x65,0xa0,0xff,0xb9,0x65,0xfe,0x47,0xa2,0xf0,0x3f,0xf4,0xfc,0x2f,0x4d,0x91,
+/* 0x0033d0 */ 0x39,0xff,0x5d,0x5f,0x64,0x9d,0xff,0x95,0xc9,0xff,0x99,0xc6,0xff,0x64,0x93,0xff,
+/* 0x0033e0 */ 0xb5,0x20,0xff,0x67,0x2a,0xff,0x43,0xd1,0xff,0xe8,0x8b,0x8c,0xfa,0x9f,0x94,0xe2,
+/* 0x0033f0 */ 0x8f,0x9e,0xff,0x9e,0x52,0x64,0x99,0xff,0x45,0xe0,0x7f,0x44,0xd3,0x4a,0x2e,0x73,
+/* 0x003400 */ 0x1e,0x56,0x66,0xff,0xe7,0x05,0xe7,0xbf,0xeb,0x8a,0x5b,0xc8,0xff,0xa2,0xf2,0x39,
+/* 0x003410 */ 0xda,0xf5,0x67,0xa1,0xf9,0x5f,0x17,0x8c,0xf2,0xbf,0x40,0xfa,0xfa,0x93,0x55,0xfe,
+/* 0x003420 */ 0x97,0x76,0xfd,0xcc,0x22,0xff,0x2b,0x4f,0xbb,0xdf,0xfd,0xbf,0xca,0xff,0x4a,0x2b,
+/* 0x003430 */ 0xea,0xe8,0xfd,0x5f,0xe4,0xe2,0x56,0xf3,0xbf,0xe2,0x9f,0xbe,0x06,0x2a,0x4c,0x7c,
+/* 0x003440 */ 0xa3,0xa5,0x0a,0x60,0xdb,0x9f,0x3c,0x05,0xbd,0x88,0x5d,0x02,0x1b,0xf0,0xc1,0x07,
+/* 0x003450 */ 0x91,0xff,0x99,0x11,0xf6,0x02,0x47,0x2d,0xc2,0x87,0x4e,0x10,0x00,0x47,0x15,0x6f,
+/* 0x003460 */ 0x30,0xde,0xa8,0x4e,0xc7,0x3f,0x2d,0x9c,0x28,0xe7,0x0a,0x76,0x08,0x03,0xc5,0xa2,
+/* 0x003470 */ 0x62,0x96,0x99,0x7d,0x42,0x8b,0xc9,0x25,0xed,0xa5,0xf2,0x3f,0xe8,0xe7,0x87,0x72,
+/* 0x003480 */ 0x0f,0xd6,0x39,0x21,0x6e,0xab,0x87,0x67,0xd7,0x9c,0x60,0xe2,0x8e,0x43,0x44,0xfe,
+/* 0x003490 */ 0x67,0x86,0xe9,0x00,0x5d,0xcb,0xef,0x1f,0x2a,0x5a,0x0d,0xc2,0x8d,0x65,0x4a,0xde,
+/* 0x0034a0 */ 0x4a,0x76,0x5f,0xe0,0x52,0xa8,0xa0,0xde,0x66,0xc0,0xff,0x6c,0x90,0xf2,0x1e,0x02,
+/* 0x0034b0 */ 0x5f,0xc9,0x33,0x01,0x34,0x32,0xb4,0xf1,0x29,0x69,0xae,0x19,0x7d,0x5f,0x28,0xfc,
+/* 0x0034c0 */ 0xcf,0x20,0x96,0x3d,0x07,0xf9,0x20,0xbb,0x1a,0x86,0x25,0xcf,0x05,0x3c,0xff,0xb2,
+/* 0x0034d0 */ 0xca,0x08,0x51,0xf0,0xcf,0x0c,0x38,0xff,0x26,0xc2,0xff,0xcf,0xa2,0xf9,0x91,0xef,
+/* 0x0034e0 */ 0x75,0x7f,0x8e,0xf0,0xf0,0xa7,0xea,0x47,0x56,0x12,0xff,0xa3,0xfa,0x81,0xf7,0xc9,
+/* 0x0034f0 */ 0x08,0x0f,0x17,0x30,0x3b,0xb0,0x3e,0x2a,0x62,0x59,0xf9,0xcc,0x3c,0x71,0x4a,0xe5,
+/* 0x003500 */ 0x7f,0x5c,0xa3,0xce,0x5d,0xcc,0x6e,0xf0,0xb4,0x5c,0xf2,0xb1,0xe5,0xdb,0xcc,0xfb,
+/* 0x003510 */ 0x65,0x3d,0x72,0x29,0x06,0x42,0x04,0xfd,0x4f,0x1c,0xed,0x0c,0xf0,0x02,0xbb,0x49,
+/* 0x003520 */ 0x92,0xa5,0xea,0x88,0xad,0xec,0xc5,0x41,0xf9,0x46,0xa8,0x3a,0xca,0x1b,0xf1,0x3f,
+/* 0x003530 */ 0x03,0x0d,0xdd,0x96,0x23,0xd2,0xcd,0xc4,0xc8,0x74,0xa5,0x87,0xca,0xff,0x5c,0x93,
+/* 0x003540 */ 0xa7,0x83,0xa7,0x30,0x2d,0x29,0xc6,0x62,0x59,0x82,0xf9,0x27,0xc0,0x8d,0x83,0xe5,
+/* 0x003550 */ 0xe4,0xf3,0xaf,0xdc,0x26,0xe6,0x3d,0xa9,0x07,0xa8,0xb6,0x69,0xcb,0x01,0x2e,0x2c,
+/* 0x003560 */ 0x8d,0xd8,0x51,0x24,0xf6,0x62,0x45,0xe4,0x7f,0x1e,0x91,0xbb,0x42,0x62,0x04,0x4e,
+/* 0x003570 */ 0x32,0x76,0x70,0x5a,0x51,0xdb,0xfc,0x7f,0xaa,0x9c,0x8f,0x05,0x61,0xa4,0xf3,0x3f,
+/* 0x003580 */ 0x6a,0xcc,0x5c,0x17,0x7e,0x6c,0xca,0x18,0x37,0x7a,0x51,0x0d,0x29,0x7b,0x2b,0xfd,
+/* 0x003590 */ 0xfb,0x41,0xd7,0x31,0x4c,0x04,0xd1,0xf9,0x9f,0x0a,0xd9,0xf5,0x73,0xf6,0xee,0xc0,
+/* 0x0035a0 */ 0x2c,0x28,0x6f,0xb6,0x45,0xf2,0x7f,0xe2,0x9c,0xf5,0x3a,0x68,0xfc,0xcf,0x7c,0x3f,
+/* 0x0035b0 */ 0xf2,0x8a,0x11,0xac,0x87,0x11,0x6c,0xcd,0xcc,0xa3,0x72,0x22,0x8f,0x9b,0x7c,0xfe,
+/* 0x0035c0 */ 0x75,0x11,0xcb,0x9e,0x0f,0xc6,0x63,0xad,0xf8,0xc3,0xec,0xb6,0x23,0x61,0x46,0xd5,
+/* 0x0035d0 */ 0xc7,0x52,0xf8,0x9f,0x36,0x2c,0x9b,0x7f,0xd6,0x5c,0x0c,0x9a,0x7d,0xce,0xed,0x4e,
+/* 0x0035e0 */ 0x41,0x6d,0xf4,0x36,0x38,0xff,0x62,0xda,0x7c,0xb8,0xad,0xe9,0xbe,0x18,0x5f,0x01,
+/* 0x0035f0 */ 0x0f,0x1e,0xf4,0xa9,0xd7,0x53,0xfb,0xdf,0xe5,0x66,0xd1,0xe5,0x35,0xdb,0x19,0x8e,
+/* 0x003600 */ 0x69,0x63,0x9c,0xb5,0xd8,0xbf,0xd4,0xdf,0x4c,0xe2,0x7f,0xe2,0x37,0x35,0x2c,0x85,
+/* 0x003610 */ 0xb7,0x7a,0x96,0xba,0x9e,0xb6,0x14,0xd6,0x87,0x1b,0xcb,0x65,0xfe,0x69,0xf6,0x51,
+/* 0x003620 */ 0x29,0x0c,0x76,0xd3,0xf9,0x1f,0x69,0x6a,0x49,0x4d,0xbd,0xf5,0xf5,0x8d,0x13,0xe0,
+/* 0x003630 */ 0x0b,0x3c,0xd2,0x58,0x84,0x46,0x84,0x1a,0x2a,0xff,0xf3,0x3b,0xf9,0x66,0xb8,0xfc,
+/* 0x003640 */ 0xef,0x6c,0xef,0xb0,0x8b,0xd0,0xfb,0xdd,0x13,0x52,0xc9,0x12,0x76,0xd5,0x9b,0x53,
+/* 0x003650 */ 0xfb,0xd5,0xa3,0x25,0xa2,0xfe,0xe7,0x03,0xa5,0x37,0x12,0xaa,0xb6,0x74,0x30,0x6b,
+/* 0x003660 */ 0xe4,0x5e,0x70,0x14,0xc0,0x80,0xdd,0x91,0xf8,0x68,0x0b,0xed,0xfc,0x4b,0xac,0xc3,
+/* 0x003670 */ 0x31,0x43,0xf2,0x49,0xf4,0xa0,0xe7,0x1e,0xcc,0x59,0x24,0xcc,0xe3,0x3d,0x0a,0xff,
+/* 0x003680 */ 0xe3,0x68,0xb4,0x04,0x73,0xf0,0x0c,0xa3,0x07,0x49,0xde,0x12,0x12,0x5f,0xc8,0x75,
+/* 0x003690 */ 0x4b,0x6c,0x90,0xf9,0x4b,0x1a,0xff,0x53,0xbe,0x1d,0xfb,0x63,0x08,0x53,0x40,0x94,
+/* 0x0036a0 */ 0xac,0x80,0x15,0x57,0x4e,0x49,0x29,0xfa,0x67,0xfd,0xf9,0x97,0x19,0x1f,0x93,0xc5,
+/* 0x0036b0 */ 0xf5,0x3f,0x1d,0xfe,0x8d,0xdb,0x5a,0xa7,0x82,0x1e,0xa9,0x21,0xc8,0xde,0x47,0xc6,
+/* 0x0036c0 */ 0x3f,0x61,0x6c,0x3b,0x1f,0x6f,0x7b,0x07,0xf7,0xcb,0x45,0xaa,0x23,0xb4,0xc9,0x4a,
+/* 0x0036d0 */ 0xe5,0x7f,0xf6,0x07,0x1c,0x32,0xfc,0x04,0xad,0x3f,0xfb,0x41,0xa9,0xec,0x8d,0x80,
+/* 0x0036e0 */ 0xf5,0x30,0x0d,0xff,0xe8,0xf8,0x1f,0xd5,0x2f,0xbd,0xca,0xbc,0x99,0x09,0x08,0xae,
+/* 0x0036f0 */ 0x0b,0xb9,0xe8,0x59,0x95,0xe3,0x5f,0x25,0x22,0xff,0x73,0x45,0xde,0x03,0x0a,0x23,
+/* 0x003700 */ 0xb0,0xc9,0xb1,0x5b,0x7a,0xc6,0x54,0x72,0x01,0xfe,0x23,0xf3,0xb7,0x4a,0x8f,0xa9,
+/* 0x003710 */ 0x44,0xf9,0x1b,0x8a,0xfe,0xe7,0x2a,0x33,0x28,0xaf,0x1d,0xe1,0xab,0xd8,0x47,0xfc,
+/* 0x003720 */ 0x2f,0xa1,0x11,0xeb,0x93,0x6c,0x41,0xeb,0x97,0xcd,0x1b,0x86,0xad,0x14,0xfc,0x73,
+/* 0x003730 */ 0x2d,0x34,0x07,0xce,0xbd,0x5b,0x7a,0x9a,0x3d,0xcb,0xc5,0xf2,0x0e,0x2c,0x27,0xd2,
+/* 0x003740 */ 0xf1,0x8f,0x8e,0xff,0x79,0x4d,0xae,0x18,0xe6,0xdf,0x65,0x3d,0x60,0x36,0xb8,0x01,
+/* 0x003750 */ 0x37,0x82,0x5d,0xe7,0xe6,0x62,0xfe,0xcf,0x94,0xf3,0xaf,0x0e,0x75,0xfd,0xb1,0xf3,
+/* 0x003760 */ 0xe0,0x34,0x70,0xd5,0xc3,0x26,0xff,0xfb,0x4a,0xcf,0x31,0xd7,0x00,0x1d,0xff,0xec,
+/* 0x003770 */ 0xc1,0xd7,0x6f,0x35,0xff,0xab,0x3a,0x62,0x56,0x83,0xe3,0x1d,0x46,0xfc,0x4f,0x0b,
+/* 0x003780 */ 0x10,0x2f,0x60,0x19,0xb9,0x74,0xa6,0x5e,0x35,0xd6,0x1e,0x14,0xbb,0xf6,0xb9,0xa8,
+/* 0x003790 */ 0xfc,0xcf,0x0c,0xfa,0x6f,0xad,0x18,0xe2,0xcf,0xb0,0x3f,0xc5,0xeb,0x89,0x94,0xf7,
+/* 0x0037a0 */ 0x5f,0xe8,0xef,0x9f,0x86,0x9e,0x30,0x8d,0xff,0x89,0x02,0x74,0xcf,0xfd,0xb6,0x63,
+/* 0x0037b0 */ 0x8c,0xea,0x90,0xd3,0x68,0xeb,0x66,0xe6,0xfb,0xe3,0x28,0xfc,0xcf,0x0c,0xda,0x08,
+/* 0x0037c0 */ 0xf6,0x29,0x96,0xb3,0xc2,0x65,0x58,0x21,0xd9,0x66,0xd4,0x83,0xa1,0x3b,0xa9,0xe7,
+/* 0x0037d0 */ 0x5f,0x33,0xe0,0xac,0x52,0xaa,0x38,0x5f,0x63,0xaa,0xb1,0x7f,0x42,0x99,0xa5,0x8a,
+/* 0x0037e0 */ 0x29,0x0d,0x27,0xf0,0x0f,0x99,0xff,0xe9,0xed,0x5f,0x83,0xbb,0x9f,0x4e,0x98,0xd0,
+/* 0x0037f0 */ 0xf5,0xf5,0x68,0xbf,0xdb,0x99,0xb0,0x06,0x8a,0x90,0xf1,0x0f,0x76,0x03,0x80,0xa2,
+/* 0x003800 */ 0xd9,0x55,0xeb,0x07,0x62,0xfd,0xa5,0x4e,0x07,0x7a,0xde,0x44,0x34,0xff,0x24,0xfd,
+/* 0x003810 */ 0x0f,0xba,0xa9,0x77,0xd1,0xd3,0x5e,0xa3,0x6c,0x56,0x30,0xed,0x83,0xf9,0xf3,0x4e,
+/* 0x003820 */ 0xf6,0xf1,0xd6,0xe9,0x01,0x55,0x5f,0x4a,0xc1,0x3f,0xaa,0x9b,0x9f,0x92,0x3f,0x2b,
+/* 0x003830 */ 0xcf,0x82,0x1a,0x2f,0x7a,0x6d,0x9f,0x91,0xa6,0x77,0xd4,0x8c,0xe9,0xf8,0x1f,0x25,
+/* 0x003840 */ 0x95,0xff,0xb1,0x92,0xf0,0x92,0x42,0x3f,0xff,0xca,0xcd,0xc8,0xff,0x08,0x15,0x29,
+/* 0x003850 */ 0xe8,0xce,0x88,0xff,0xa1,0xe9,0x7f,0xf2,0x28,0xfc,0x0f,0xa0,0xea,0x7f,0x74,0xfc,
+/* 0x003860 */ 0x4c,0x92,0xff,0x49,0xd5,0xff,0x90,0xee,0x77,0x71,0x66,0xfd,0xcf,0xfa,0x6c,0xf9,
+/* 0x003870 */ 0x9f,0xbd,0x19,0xf8,0x1f,0xca,0xfb,0x97,0x53,0x37,0xf2,0xd5,0x02,0xf5,0x3f,0x49,
+/* 0x003880 */ 0xfc,0xe3,0xa5,0xe8,0x7f,0xaa,0x74,0x23,0x49,0xfc,0x03,0x68,0xfa,0x1f,0x3d,0x1f,
+/* 0x003890 */ 0x98,0x59,0xff,0x43,0xe1,0x7f,0x20,0xf5,0xfc,0x5d,0x5b,0x24,0xf5,0x3f,0xfd,0xd9,
+/* 0x0038a0 */ 0xf1,0x3f,0x99,0xf5,0x3f,0xfa,0xe7,0x6d,0xfe,0xf9,0xdc,0x41,0xd3,0xff,0xe8,0x8a,
+/* 0x0038b0 */ 0x4f,0xfe,0x64,0xfa,0x1f,0xf0,0x7f,0xa5,0xff,0xa1,0xf0,0x3f,0x55,0x34,0xfd,0x8f,
+/* 0x0038c0 */ 0xae,0x48,0xe2,0x9f,0xc3,0x14,0xfd,0x4f,0x0a,0x9f,0x93,0xbd,0xfe,0x27,0x85,0xff,
+/* 0x0038d0 */ 0xb9,0x3b,0x2b,0xfd,0x0f,0xed,0xfc,0x2b,0x0b,0xfe,0x67,0xa1,0xfa,0x1f,0x82,0xff,
+/* 0x0038e0 */ 0x33,0x2e,0xdc,0x14,0xfe,0x87,0xaa,0xff,0xb9,0x15,0xfe,0x87,0x31,0xf6,0x7f,0x36,
+/* 0x0038f0 */ 0xe2,0x7f,0x08,0xfa,0xe7,0x5b,0xd6,0xff,0x18,0xeb,0x9f,0x77,0x15,0xfd,0x31,0xf9,
+/* 0x003900 */ 0x1f,0x89,0xaa,0xff,0xd1,0x16,0xd9,0xe8,0x7f,0xb4,0x45,0xf2,0xfb,0x6e,0xca,0x8a,
+/* 0x003910 */ 0xff,0x49,0xe2,0x9f,0x44,0xff,0x29,0x9b,0xa0,0x7d,0x58,0xd2,0x7c,0x26,0xf1,0xcf,
+/* 0x003920 */ 0xf1,0x65,0x27,0xb8,0x69,0x93,0x47,0xe9,0x48,0xdc,0xdd,0xe2,0xe4,0x6d,0x32,0xf3,
+/* 0x003930 */ 0xf7,0x9b,0xc4,0x3f,0x41,0x10,0xe5,0x32,0xcf,0x4f,0x12,0xff,0x34,0x0b,0xf3,0xdd,
+/* 0x003940 */ 0x3d,0x06,0xeb,0xb9,0xb1,0xfe,0xc7,0x88,0xff,0x01,0x59,0x9d,0x77,0x18,0xeb,0x7f,
+/* 0x003950 */ 0x50,0x61,0xd2,0x8f,0x64,0xa3,0xff,0x21,0xf3,0x3f,0xa2,0x01,0xff,0xb3,0x78,0x26,
+/* 0x003960 */ 0x61,0x6d,0xa7,0x39,0xff,0x32,0x69,0x2e,0xbb,0x02,0xbe,0x29,0xf1,0xe3,0x45,0xaa,
+/* 0x003970 */ 0x50,0x5c,0xe6,0x9b,0xf0,0xfb,0x3e,0x28,0x50,0x68,0xfc,0x4f,0x54,0x6a,0xc7,0xaf,
+/* 0x003980 */ 0x99,0x4d,0x89,0xb6,0x74,0x83,0xf3,0x2f,0x27,0xb6,0x3d,0x1c,0x04,0x7e,0xb0,0x0a,
+/* 0x003990 */ 0x78,0xcb,0xec,0x3c,0x56,0xdc,0x85,0x28,0xfd,0x5f,0x71,0xfc,0x83,0xfd,0x24,0x99,
+/* 0x0039a0 */ 0x76,0xd1,0x01,0x70,0x5b,0xbd,0x09,0xfb,0x4f,0xb6,0x9d,0x3a,0x18,0x2d,0x53,0x1b,
+/* 0x0039b0 */ 0xeb,0x88,0xfc,0x0f,0x5e,0x0d,0x5e,0x15,0x2b,0x8f,0xf3,0xe3,0x58,0x28,0xce,0x54,
+/* 0x0039c0 */ 0xcb,0xd6,0xb3,0xec,0xa7,0xf8,0xa3,0x71,0x02,0xff,0x73,0x27,0x16,0x89,0x85,0xc1,
+/* 0x0039d0 */ 0xac,0x5c,0x73,0xa0,0x74,0xdc,0x12,0xef,0x80,0x9b,0x64,0x67,0x42,0x73,0xa6,0x9a,
+/* 0x0039e0 */ 0x81,0x06,0x22,0xff,0x13,0xc4,0xb6,0x87,0xbe,0x72,0x27,0x5f,0x6e,0x71,0xe1,0xfe,
+/* 0x0039f0 */ 0xc4,0x10,0xff,0xab,0xa2,0x92,0xba,0x4b,0x40,0xc5,0xe7,0x44,0xfc,0xe3,0x92,0xdb,
+/* 0x003a00 */ 0xc3,0xeb,0x44,0xe7,0xa4,0xd9,0xa5,0xea,0xc3,0xef,0xc3,0xf9,0x5f,0x7b,0xeb,0xdd,
+/* 0x003a10 */ 0x11,0x9a,0xfe,0x87,0x07,0xed,0xb2,0xd8,0x08,0xab,0xb7,0xf1,0xe0,0x79,0xd1,0x25,
+/* 0x003a20 */ 0xe7,0x56,0xae,0xba,0x1f,0xb6,0x1c,0x76,0xfd,0x9a,0xa6,0xff,0x29,0x60,0xf6,0xcb,
+/* 0x003a30 */ 0x77,0x6d,0x87,0xff,0x54,0x5e,0x80,0xfb,0xdf,0x27,0xd0,0xc8,0x6e,0x79,0xcf,0xc1,
+/* 0x003a40 */ 0x14,0xfc,0xa3,0xe1,0x7f,0xb0,0xed,0x61,0xb9,0xe4,0x5a,0xdb,0xc2,0x83,0x0f,0x40,
+/* 0x003a50 */ 0x75,0xc8,0xba,0x3e,0x7f,0x4b,0xf0,0xc5,0xce,0xea,0x71,0x1b,0x99,0xff,0x41,0xd3,
+/* 0x003a60 */ 0xf2,0xa5,0x09,0xbd,0xad,0x7f,0x86,0x1e,0xb3,0x39,0x53,0xf5,0xc0,0xe3,0x9f,0xed,
+/* 0x003a70 */ 0xdd,0x27,0xcd,0x15,0x78,0x94,0x06,0x1d,0xfe,0x49,0xcc,0x7f,0x80,0x15,0xb9,0x57,
+/* 0x003a80 */ 0xe5,0x72,0x89,0xef,0x42,0xbf,0xe8,0x92,0xc9,0x23,0xbb,0xaa,0x58,0x97,0x70,0xa3,
+/* 0x003a90 */ 0xb5,0x3c,0xb2,0xb9,0xd3,0x44,0xd0,0xff,0xf8,0x98,0xe5,0x60,0x1f,0x78,0xbe,0xd6,
+/* 0x003aa0 */ 0x39,0xee,0x5f,0x89,0x8d,0x55,0xfb,0xe1,0xf7,0xea,0xee,0x90,0x7b,0xc4,0xc2,0xb0,
+/* 0x003ab0 */ 0x99,0xc8,0xff,0x2c,0x67,0x72,0xc4,0x3d,0x72,0xa1,0x0f,0x07,0xdf,0x33,0x7b,0xe4,
+/* 0x003ac0 */ 0x92,0x50,0x60,0x92,0x29,0x80,0xe7,0xfd,0x85,0xa3,0x5e,0x1d,0xff,0x93,0xe8,0x37,
+/* 0x003ad0 */ 0x5c,0x6b,0xe6,0x99,0x66,0xd9,0xb1,0x33,0x16,0x63,0x04,0x5c,0x93,0x70,0xc3,0xb6,
+/* 0x003ae0 */ 0x3c,0xa5,0xab,0x50,0x9c,0x30,0xeb,0xf8,0x9f,0x45,0x71,0xfc,0x33,0x86,0x63,0x2f,
+/* 0x003af0 */ 0x22,0x15,0x32,0x1f,0xb2,0x40,0xf0,0x2a,0x28,0xe9,0xe4,0x71,0x3e,0xf2,0x2c,0xc0,
+/* 0x003b00 */ 0x23,0x44,0xfe,0xc7,0xa2,0x80,0x49,0xff,0x7c,0x1e,0xa5,0x87,0x6b,0xf0,0xb3,0x11,
+/* 0x003b10 */ 0x38,0x69,0xf2,0xc0,0x06,0x1d,0xff,0x03,0x12,0x9b,0x5a,0xcb,0xa8,0x78,0x11,0x78,
+/* 0x003b20 */ 0xbc,0xbc,0xc0,0x16,0x33,0x17,0xc1,0xfa,0x46,0x57,0x1b,0x3b,0x02,0x27,0x0f,0xa9,
+/* 0x003b30 */ 0xc6,0xb6,0x04,0xfe,0xe7,0x10,0xf3,0x21,0xb6,0x9d,0xf1,0xc1,0x1f,0x99,0x8f,0x71,
+/* 0x003b40 */ 0x6d,0x5e,0xb7,0x37,0x20,0xfb,0x87,0xa5,0x5e,0xc5,0xbd,0x44,0x8f,0x7f,0x96,0x25,
+/* 0x003b50 */ 0xf0,0x8f,0x7f,0x54,0x6c,0x13,0xdc,0x8d,0xce,0xa0,0xbf,0x58,0xc2,0x31,0x0d,0x4e,
+/* 0x003b60 */ 0xb9,0x0e,0xe1,0x01,0xde,0x2d,0x92,0xf1,0x8f,0x1d,0xf3,0x3f,0xa8,0x70,0xda,0x99,
+/* 0x003b70 */ 0x56,0x9c,0x07,0x21,0x41,0x3b,0x33,0xd8,0x7c,0x52,0x74,0x79,0xa9,0xfa,0x67,0x2e,
+/* 0x003b80 */ 0xdc,0xe8,0x59,0xca,0x3f,0xcd,0x8a,0x20,0x6c,0xf2,0x00,0xfe,0xe9,0xfc,0x61,0x69,
+/* 0x003b90 */ 0xf2,0x41,0xcf,0xa1,0x0e,0x22,0xff,0xf3,0x3a,0x3b,0x51,0x87,0x63,0xbf,0x1a,0x0e,
+/* 0x003ba0 */ 0xa8,0xdb,0xfa,0x06,0xe9,0x97,0x07,0x4c,0xa3,0xd2,0xb4,0xbd,0xfa,0x2f,0xd2,0xf8,
+/* 0x003bb0 */ 0x9f,0x79,0x3d,0xcc,0x65,0xa1,0xab,0x9e,0x7f,0x87,0xad,0x04,0x37,0xd1,0xf5,0x7f,
+/* 0x003bc0 */ 0x7d,0xa4,0xe5,0x15,0x30,0x3d,0x5a,0xfe,0x58,0x9a,0xfe,0x27,0x0e,0x72,0xc6,0x41,
+/* 0x003bd0 */ 0x7b,0xc8,0xe1,0x84,0x1d,0xf9,0x6a,0xec,0xa9,0x7c,0x7f,0xbb,0x63,0xa4,0xb5,0x57,
+/* 0x003be0 */ 0x76,0x38,0x37,0xa5,0xe2,0x9f,0xe7,0xf0,0xfd,0x3e,0xc4,0xfc,0x06,0xbb,0x1d,0x46,
+/* 0x003bf0 */ 0xbc,0x42,0x0e,0x8e,0x21,0x58,0x83,0x66,0xa0,0xee,0x25,0xd3,0xc9,0xca,0xd0,0x7d,
+/* 0x003c00 */ 0x34,0xfe,0x67,0x02,0xb4,0x31,0x0e,0x29,0x10,0xcc,0xc1,0xff,0x23,0x8f,0xd7,0xe7,
+/* 0x003c10 */ 0xca,0xcc,0xd8,0x5d,0xbd,0x80,0x11,0xd2,0xf0,0x8f,0xfa,0xf7,0x1f,0x62,0x3f,0x64,
+/* 0x003c20 */ 0xfa,0x41,0xb9,0xcf,0x25,0x14,0x15,0x73,0x53,0xa0,0xaa,0x69,0xd3,0xbe,0x96,0x61,
+/* 0x003c30 */ 0x61,0x1c,0x94,0x97,0x19,0xe2,0x9f,0x26,0x5b,0x30,0x3f,0x3e,0x63,0xcd,0x1b,0x47,
+/* 0x003c40 */ 0xbe,0x3f,0x19,0xf4,0x70,0x69,0xfa,0x9f,0xb1,0xd8,0xfc,0x03,0x30,0xa9,0x94,0x83,
+/* 0x003c50 */ 0x12,0xb9,0x45,0x04,0x93,0xb2,0x87,0xb3,0xb6,0xe6,0x47,0x30,0x11,0xbd,0x8c,0x27,
+/* 0x003c60 */ 0xf2,0x3f,0xc7,0x19,0x27,0x38,0x57,0x5b,0xf4,0x34,0x1c,0x63,0x9c,0xc2,0x39,0xa5,
+/* 0x003c70 */ 0xb4,0x15,0x46,0xb6,0x4d,0x82,0xfd,0x52,0x69,0x10,0x12,0xf1,0x4f,0x15,0xc3,0x73,
+/* 0x003c80 */ 0x5d,0xb2,0x43,0x81,0x95,0x8e,0xcd,0xe0,0xa4,0xe0,0x52,0x72,0x2b,0x0f,0x0e,0x82,
+/* 0x003c90 */ 0x1f,0x16,0xef,0x9c,0x84,0x44,0xfc,0xb3,0xab,0x7d,0x29,0x38,0x0f,0x0b,0x81,0xb7,
+/* 0x003ca0 */ 0xc9,0xff,0x30,0x54,0x13,0xb5,0xbe,0x6f,0xbf,0x0a,0x7e,0xec,0x2b,0x8d,0x40,0x22,
+/* 0x003cb0 */ 0xfe,0x71,0xb2,0xb7,0xa3,0xa2,0x2b,0x62,0xbd,0xdb,0xf2,0x2d,0x30,0x81,0xf9,0x9f,
+/* 0x003cc0 */ 0x5d,0xec,0x55,0xf9,0xad,0xd0,0x06,0xdc,0x08,0x46,0xc0,0x3f,0x58,0xc4,0x7b,0x03,
+/* 0x003cd0 */ 0xcb,0xe6,0xbb,0xd9,0x63,0x02,0xfa,0x5a,0xc9,0x6e,0xbc,0xdf,0xfd,0xde,0x5e,0x9d,
+/* 0x003ce0 */ 0xc2,0xff,0x2c,0x8b,0x83,0x9c,0xb7,0x59,0x8f,0x74,0x45,0xae,0xc0,0xf9,0xef,0x7f,
+/* 0x003cf0 */ 0x00,0xd8,0xf6,0xd9,0x35,0xf9,0xe2,0xac,0x84,0x3e,0xfa,0x88,0x8c,0x7f,0xb0,0xdb,
+/* 0x003d00 */ 0x61,0x87,0x58,0x24,0xc1,0x27,0x98,0x37,0xc1,0x69,0x20,0x8e,0x1e,0x2f,0x63,0xae,
+/* 0x003d10 */ 0xa0,0x15,0xaf,0x64,0x74,0x13,0x91,0xff,0x01,0x0c,0xe4,0x9e,0x01,0x8f,0x2a,0x50,
+/* 0x003d20 */ 0x52,0xaf,0xff,0x33,0x55,0x2f,0x2d,0xc5,0x12,0x34,0x74,0xf9,0x17,0xf3,0x22,0x5e,
+/* 0x003d30 */ 0x00,0x5a,0x14,0x51,0x0a,0x74,0xd6,0x0d,0x80,0x53,0xe0,0xf8,0x05,0x67,0x25,0x73,
+/* 0x003d40 */ 0xd9,0xf4,0x3c,0x74,0x5d,0xd0,0xf3,0x3f,0x89,0xf3,0xaf,0x5e,0x8b,0x9b,0xbb,0x18,
+/* 0x003d50 */ 0x38,0x25,0xa1,0xd5,0x66,0x14,0x4e,0x9b,0xaa,0x2e,0xf0,0xa7,0xd9,0xa8,0xd2,0x07,
+/* 0x003d60 */ 0xd5,0x83,0x06,0x02,0xff,0x53,0xc5,0x7e,0x94,0x83,0x4f,0x1f,0x6c,0xc7,0xd0,0x83,
+/* 0x003d70 */ 0xf4,0x95,0xb4,0x4e,0xe9,0xe8,0x66,0x11,0x34,0x92,0x3c,0x43,0x0d,0x3a,0xfe,0x07,
+/* 0x003d80 */ 0xcc,0xdb,0xfa,0x55,0x81,0xb9,0xe3,0x6a,0x51,0x89,0x37,0xbe,0x31,0xd7,0xe7,0x2d,
+/* 0x003d90 */ 0xb3,0xf2,0x1c,0xa7,0xf2,0x21,0x04,0xfc,0x83,0x6d,0x0f,0xcf,0x83,0xd2,0x5d,0x9b,
+/* 0x003da0 */ 0xc6,0x98,0x62,0x70,0xa6,0xd6,0x2d,0xc1,0x5e,0xfb,0x75,0xae,0x6f,0xbb,0x7b,0x48,
+/* 0x003db0 */ 0xcf,0xff,0x2c,0x8b,0xef,0x77,0x38,0x6d,0x10,0x3d,0x78,0x11,0xcb,0x61,0xff,0x2a,
+/* 0x003dc0 */ 0x70,0xa6,0xd1,0x7d,0x21,0xd0,0x79,0x30,0xca,0xf5,0x89,0xee,0x0b,0x64,0xfc,0x83,
+/* 0x003dd0 */ 0xd3,0x76,0xb0,0x1e,0xd8,0x22,0xde,0xc7,0x09,0xa7,0x80,0x3b,0x0c,0x2b,0x1f,0x18,
+/* 0x003de0 */ 0x14,0xbb,0xea,0x5d,0x61,0x32,0xfe,0xc1,0xb2,0x52,0x95,0x06,0x54,0x2c,0xc5,0xb8,
+/* 0x003df0 */ 0x98,0x71,0x75,0xb3,0xd7,0x94,0xe9,0x5a,0xcf,0xaf,0xf5,0xfc,0x8f,0x75,0x5e,0xe4,
+/* 0x003e00 */ 0x3c,0xce,0xa9,0x6d,0x3b,0x11,0x76,0x02,0xfc,0x01,0x54,0xbf,0x64,0xfb,0x9c,0x8d,
+/* 0x003e10 */ 0x06,0xe6,0x44,0xcf,0x87,0x5f,0x43,0xff,0xa3,0xc1,0x3f,0xe9,0xf9,0x5f,0xa8,0x48,
+/* 0x003e20 */ 0x75,0x3c,0x4e,0xc1,0x3f,0x26,0x0a,0x0c,0x26,0xe0,0x9f,0x08,0x29,0xff,0x2b,0x5e,
+/* 0x003e30 */ 0xd4,0xcd,0x8f,0x24,0xf1,0x4f,0x6d,0x56,0xfc,0x8f,0x51,0xff,0x3b,0x2e,0xae,0xa6,
+/* 0x003e40 */ 0x8c,0x8c,0xdd,0x8a,0xfe,0x07,0x66,0xc6,0xc3,0x49,0xfc,0x43,0xca,0xff,0x22,0xbc,
+/* 0x003e50 */ 0x2f,0x24,0xf1,0x8f,0x90,0x96,0xff,0x65,0xc8,0xff,0xa4,0xe7,0x7f,0x91,0x0a,0x0d,
+/* 0x003e60 */ 0xfe,0x59,0xb6,0x30,0xfe,0x87,0xee,0xff,0x43,0xd1,0xff,0xa4,0xe5,0x7f,0x11,0xf9,
+/* 0x003e70 */ 0x1f,0xcd,0xfa,0x93,0x0d,0xff,0x93,0xec,0x7f,0x4f,0xcd,0xff,0xea,0x27,0xcd,0x27,
+/* 0x003e80 */ 0x30,0xce,0xff,0x4a,0x2f,0x34,0xf8,0x27,0x3d,0xff,0x8b,0x50,0xbc,0x71,0x0b,0xfa,
+/* 0x003e90 */ 0x9f,0x85,0xf1,0x3f,0xe9,0xf9,0x5f,0xc6,0xfc,0x0f,0x31,0xff,0xcb,0x48,0xff,0xb3,
+/* 0x003ea0 */ 0x40,0xfe,0x27,0x3d,0xff,0x8b,0xc8,0xe7,0x18,0xf4,0xbf,0x1b,0xf3,0x3f,0x84,0xfc,
+/* 0x003eb0 */ 0x2f,0x12,0xff,0xb3,0x40,0xfd,0x8f,0x06,0xff,0x10,0xf2,0xbf,0xbe,0x0e,0xff,0x93,
+/* 0x003ec0 */ 0xaa,0xff,0x99,0x5f,0x1f,0xb2,0xe2,0x7f,0x92,0x7e,0x9b,0xa4,0xfc,0x2f,0x23,0xfd,
+/* 0x003ed0 */ 0x4f,0xb6,0xfc,0x0f,0x98,0xbf,0x7e,0x61,0xfc,0x4f,0x5a,0xfe,0xd7,0x5e,0xd2,0xf7,
+/* 0x003ee0 */ 0x37,0xb9,0xfe,0x90,0xf3,0xbf,0x52,0x0b,0x4d,0xfe,0x05,0xb5,0x1f,0x4a,0x53,0x6c,
+/* 0x003ef0 */ 0x34,0xcc,0xff,0x32,0xc5,0xdb,0xbe,0xa6,0xd8,0xdd,0x52,0xba,0xfe,0x27,0x35,0xff,
+/* 0x003f00 */ 0x2b,0x03,0xff,0x63,0xa4,0xff,0xb1,0xbf,0x0b,0xd3,0xf8,0x1f,0x5d,0xfe,0x57,0x45,
+/* 0x003f10 */ 0xac,0x7b,0x25,0x7d,0x3e,0x89,0xfd,0xef,0x51,0xa0,0x23,0x82,0xb4,0x37,0xae,0xc3,
+/* 0x003f20 */ 0x3f,0x71,0xfe,0x27,0x3f,0xf6,0x69,0x83,0x31,0xff,0x43,0xca,0xff,0x4a,0x29,0x74,
+/* 0x003f30 */ 0xfa,0xe7,0xb4,0xfc,0x2f,0xed,0xb6,0x9b,0xdc,0xdf,0xa9,0xfa,0x67,0x1a,0xff,0x93,
+/* 0x003f40 */ 0x78,0x7e,0xb4,0xf9,0x5f,0x90,0xce,0xff,0x70,0xf3,0xd3,0x9f,0x1d,0xff,0xc3,0x24,
+/* 0x003f50 */ 0xfe,0x1e,0x62,0xfe,0x57,0x5a,0x91,0x7c,0x1f,0xd1,0xe3,0x1f,0xa1,0x42,0xb2,0x35,
+/* 0x003f60 */ 0x15,0x9d,0xe5,0xae,0xa0,0xff,0x3a,0x84,0xa0,0xd4,0xc4,0x90,0x01,0x98,0x86,0x7f,
+/* 0x003f70 */ 0x72,0xd4,0x9b,0x1a,0x03,0x7d,0x31,0x37,0x78,0x17,0x63,0x8e,0x25,0xb6,0x47,0x61,
+/* 0x003f80 */ 0x97,0x78,0x6e,0xc0,0x4c,0xd1,0xff,0x0c,0xa0,0x42,0x94,0x70,0x63,0x8e,0xe0,0x67,
+/* 0x003f90 */ 0x44,0x6c,0xeb,0x87,0x3e,0xca,0x0d,0xc9,0x01,0x8a,0xff,0xcf,0xa8,0xd4,0x07,0x8e,
+/* 0x003fa0 */ 0xd6,0x63,0x1b,0xc9,0x9c,0x76,0xe0,0x50,0x5a,0x42,0x8e,0x68,0xa8,0xef,0x0e,0xb7,
+/* 0x003fb0 */ 0x6c,0xa6,0xe0,0x9f,0xeb,0x32,0xfa,0x6b,0x1f,0x40,0xbb,0xf9,0x59,0xf0,0x2a,0xf6,
+/* 0x003fc0 */ 0x87,0x0f,0x6e,0xbc,0xc6,0x4d,0x2b,0xa7,0xa4,0x95,0x24,0xfd,0xcf,0x62,0xec,0xf6,
+/* 0x003fd0 */ 0xf3,0x25,0xa8,0xf1,0xd9,0xc6,0x5b,0x36,0xe3,0xd8,0x0b,0x60,0x1b,0x62,0xd0,0x0c,
+/* 0x003fe0 */ 0xc8,0xa7,0x95,0xef,0x50,0xf4,0x3f,0xa3,0xcc,0x25,0x50,0xee,0xb5,0x61,0x23,0x82,
+/* 0x003ff0 */ 0xff,0x91,0x3c,0x0a,0x7f,0xb2,0xe8,0xbb,0x08,0x6f,0x9f,0x92,0x5c,0x14,0xfe,0x67,
+/* 0x004000 */ 0x14,0x74,0x60,0xb7,0x90,0xb3,0xa0,0x1a,0xf8,0x65,0xf7,0x8b,0xde,0x5f,0x31,0xa5,
+/* 0x004010 */ 0x03,0x7d,0x8d,0xe7,0x46,0x1e,0xa3,0xe0,0x1f,0xd5,0xa6,0x78,0x68,0x53,0xa5,0x99,
+/* 0x004020 */ 0x07,0x3f,0x0c,0xba,0x9c,0x66,0x8e,0xd9,0x82,0x7e,0xd4,0x36,0xe5,0xdb,0x54,0xfc,
+/* 0x004030 */ 0xb3,0x27,0x58,0xe8,0xc3,0x44,0x10,0xf7,0x63,0xa5,0xa4,0xf8,0x9d,0x4b,0x39,0x8f,
+/* 0x004040 */ 0x48,0x3d,0xc1,0x1f,0x8c,0xd2,0xf0,0x4f,0xd4,0x74,0x49,0x4d,0xbb,0xf0,0xf3,0xe0,
+/* 0x004050 */ 0xbf,0x1b,0x3d,0x8a,0xdb,0xc9,0x6e,0x19,0xb8,0x21,0x74,0xca,0x25,0xe9,0xf8,0xe7,
+/* 0x004060 */ 0x5f,0xe2,0xcf,0x03,0x8c,0x11,0x41,0x8e,0x4f,0xd1,0x0c,0x70,0x3e,0xc7,0x59,0xe7,
+/* 0x004070 */ 0x9c,0x70,0x8f,0x9c,0xf7,0x99,0x06,0xff,0x68,0xf4,0xcf,0xd7,0xc1,0x25,0xb9,0x4c,
+/* 0x004080 */ 0xd9,0x57,0xc6,0x56,0x0b,0xbf,0xc7,0x36,0x38,0x87,0xb1,0x51,0x83,0xe9,0x7b,0x12,
+/* 0x004090 */ 0x47,0xc1,0x3f,0x33,0xe0,0x2d,0xa6,0x10,0xe7,0x29,0xaf,0xf4,0xbf,0x05,0x4a,0x01,
+/* 0x0040a0 */ 0x6c,0x64,0x1f,0x66,0x3a,0x1e,0xf5,0x29,0xed,0x5a,0xfc,0xa3,0xcb,0x3f,0x6d,0x91,
+/* 0x0040b0 */ 0x0b,0x8f,0x9a,0x71,0xcc,0xf4,0xbf,0xcb,0xdf,0x8d,0x60,0x22,0x48,0xe8,0x79,0xee,
+/* 0x0040c0 */ 0x67,0xbe,0x80,0x96,0xff,0xd1,0xe0,0x9f,0xcb,0xd8,0x56,0x22,0x64,0x2e,0x53,0x6d,
+/* 0x0040d0 */ 0x24,0x5d,0x8a,0xb3,0xd2,0xbe,0x79,0x7b,0xd7,0x33,0xc5,0xfd,0x7a,0xfe,0x27,0x89,
+/* 0x0040e0 */ 0x7f,0x26,0xc1,0xab,0xa6,0x8a,0xce,0xbc,0x10,0x7a,0xd1,0x18,0xc1,0x46,0xf4,0xa1,
+/* 0x0040f0 */ 0xa2,0x15,0x60,0xb6,0xed,0x9b,0x3f,0xe3,0x69,0xf8,0x47,0x9c,0x04,0xe7,0xc4,0x45,
+/* 0x004100 */ 0xad,0x96,0x78,0x23,0x98,0x9f,0x8d,0x70,0xde,0xda,0x33,0x8b,0x6c,0xf2,0x62,0x03,
+/* 0x004110 */ 0xfc,0xe3,0x3a,0x64,0xe1,0xc0,0x45,0x71,0x5d,0xbd,0xf5,0x08,0x3b,0xc2,0x85,0x61,
+/* 0x004120 */ 0xa7,0xc4,0x07,0xf3,0xa9,0xf8,0xc7,0x55,0x07,0x0b,0x98,0x62,0xa6,0x0d,0x88,0x75,
+/* 0x004130 */ 0x81,0x43,0x60,0x78,0x73,0x40,0xbc,0x0d,0xeb,0x61,0x0c,0xf0,0x0f,0x54,0xf3,0x3a,
+/* 0x004140 */ 0xb9,0x6f,0x48,0x4b,0x86,0xb6,0x45,0x80,0x6c,0x62,0xf0,0x08,0x0d,0xff,0x88,0x2e,
+/* 0x004150 */ 0x2f,0x8e,0x3d,0x95,0xdb,0x70,0x70,0x7c,0xd3,0xb7,0xa2,0xfe,0x66,0x71,0xbb,0xf7,
+/* 0x004160 */ 0xef,0xa9,0xfa,0x9f,0xc9,0x46,0x0f,0xd8,0x8c,0xfd,0x76,0xda,0xc1,0xba,0xa5,0xd6,
+/* 0x004170 */ 0x97,0xf2,0x87,0x1b,0xc3,0x0f,0x9c,0x5a,0xda,0x4a,0xc1,0x3f,0x33,0x60,0x4a,0xa8,
+/* 0x004180 */ 0x51,0xdb,0xba,0xeb,0x62,0xc6,0x3e,0x4b,0x06,0xa5,0x69,0xa1,0x66,0x40,0x8f,0x7f,
+/* 0x004190 */ 0x92,0xf8,0xe1,0x4d,0x70,0x11,0xd4,0xec,0xe0,0x87,0xd8,0x8f,0xc0,0x65,0xd0,0xb5,
+/* 0x0041a0 */ 0xf5,0x8e,0x43,0xec,0x47,0xe2,0x4d,0xb9,0x42,0x72,0x51,0xf8,0x9f,0x11,0x10,0x98,
+/* 0x0041b0 */ 0x70,0x0b,0x50,0x76,0xa8,0x36,0x47,0xa1,0x92,0x76,0x66,0x04,0xf6,0x4a,0x0e,0x50,
+/* 0x0041c0 */ 0xaa,0xe5,0x7f,0xb4,0xf8,0x27,0xd4,0x0c,0x5d,0x38,0x76,0xf9,0xa5,0x9c,0x66,0xb0,
+/* 0x0041d0 */ 0xc3,0x0b,0xed,0x75,0x03,0xc7,0x5e,0xa8,0x17,0x25,0xa8,0xc3,0x3f,0x5a,0xfd,0x73,
+/* 0x0041e0 */ 0x1b,0x70,0x3f,0x08,0x63,0xc5,0x63,0x52,0x6e,0x33,0xfa,0x45,0x2f,0xc4,0xfd,0x94,
+/* 0x0041f0 */ 0x88,0xf8,0x87,0xb9,0x08,0x3c,0x4d,0x9b,0x71,0x8c,0x69,0x3f,0x58,0x2f,0xf1,0x01,
+/* 0x004200 */ 0xb4,0x6c,0x4e,0x81,0x53,0x8d,0x3c,0x25,0xff,0xf4,0x23,0x69,0x0a,0xdb,0x50,0xe0,
+/* 0x004210 */ 0x20,0xf8,0x29,0xb8,0xae,0x09,0xf7,0x8b,0xf9,0xb0,0xfe,0x47,0xc7,0xff,0x68,0xf1,
+/* 0x004220 */ 0x0f,0x96,0xfd,0x54,0xf2,0x81,0x22,0x6c,0x1b,0xe5,0x11,0x5c,0x2a,0xfe,0xd9,0x5a,
+/* 0x004230 */ 0x86,0x0b,0x22,0xfe,0xf9,0x04,0xfd,0x37,0x95,0x76,0xc2,0x51,0x66,0x8c,0xd9,0x2f,
+/* 0x004240 */ 0xd9,0x02,0x30,0xca,0x3c,0x09,0x4f,0x83,0x75,0x01,0x1b,0xe5,0xfc,0x2b,0x8a,0x69,
+/* 0x004250 */ 0x52,0x1f,0x5c,0x5d,0x37,0x08,0x0e,0x0c,0xe4,0x29,0xb0,0xf2,0xd9,0xc1,0x7a,0xb4,
+/* 0x004260 */ 0x62,0x47,0x20,0x05,0xff,0x7c,0x01,0xf6,0x80,0x52,0xc9,0xe9,0x43,0xcb,0xf8,0x21,
+/* 0x004270 */ 0x58,0xa2,0x3c,0xd4,0xe4,0x7f,0x38,0xd0,0xc3,0x14,0xeb,0xcf,0xbf,0x74,0xf8,0xe7,
+/* 0x004280 */ 0x15,0x6c,0x7b,0x88,0xfd,0xca,0x7e,0x24,0xd7,0xf8,0xf8,0x27,0xbf,0x71,0xb5,0x75,
+/* 0x004290 */ 0x56,0x7e,0x22,0x85,0xff,0x49,0xe2,0x81,0x09,0xb4,0x1a,0x57,0x4b,0xea,0x36,0x37,
+/* 0x0042a0 */ 0xc6,0xa1,0x69,0x39,0x29,0xe0,0xad,0xf0,0x5c,0x0a,0xff,0x93,0xc4,0x3f,0xbf,0x49,
+/* 0x0042b0 */ 0xe4,0x7f,0xed,0x66,0x2e,0xe3,0x9f,0x3f,0xc5,0x9e,0x6b,0xbc,0xd9,0xdc,0xe5,0x73,
+/* 0x0042c0 */ 0x51,0xf2,0x4f,0xdf,0x8c,0xe5,0x79,0x3d,0x88,0xf0,0x4c,0x2b,0xba,0x91,0x40,0xd5,
+/* 0x0042d0 */ 0x6d,0x38,0xff,0xf4,0xcf,0xc3,0x90,0x82,0x7f,0x26,0x18,0x74,0xbd,0x8c,0xdb,0xbe,
+/* 0x0042e0 */ 0x70,0xcc,0x87,0x94,0xfb,0x39,0xfa,0x87,0xdd,0xb0,0xb8,0x76,0x35,0x05,0xff,0x7c,
+/* 0x0042f0 */ 0x08,0x5a,0x4c,0x2a,0xd1,0x31,0xa8,0xf2,0xab,0x6d,0x9d,0xe5,0x8f,0xa3,0xe7,0xa7,
+/* 0x004300 */ 0xb8,0xbf,0x8d,0xa2,0xff,0xb9,0x96,0xc8,0xff,0xda,0x89,0xfd,0xc3,0x15,0x6b,0x67,
+/* 0x004310 */ 0xfe,0xf5,0x81,0x3e,0xfb,0xe9,0x88,0x95,0xa2,0xff,0x19,0x15,0xd5,0xd3,0x8d,0x6e,
+/* 0x004320 */ 0x10,0x65,0x26,0x25,0x4f,0x7f,0x5e,0x67,0xfe,0x2f,0xe0,0x34,0xf7,0xd4,0x40,0x1e,
+/* 0x004330 */ 0x15,0xff,0xbc,0x82,0x76,0x73,0xfe,0x2b,0x76,0x33,0x77,0x39,0x74,0x0f,0x58,0x34,
+/* 0x004340 */ 0xc3,0xd6,0xf0,0x57,0x84,0x0a,0xa5,0x9e,0x82,0x7f,0x26,0xc0,0x2f,0x81,0xf8,0x36,
+/* 0x004350 */ 0xc4,0x36,0x86,0x81,0xd6,0xd2,0x08,0xec,0x94,0x4f,0x70,0xff,0x01,0xd6,0x60,0xfd,
+/* 0x004360 */ 0x2a,0x11,0xff,0x8c,0x62,0xbd,0x2e,0x6e,0x7b,0xdf,0x09,0xda,0x6a,0xdd,0xdb,0x56,
+/* 0x004370 */ 0x74,0x4a,0x3b,0x0b,0xf7,0xa2,0x1d,0xd0,0x4c,0xc9,0x3f,0x1d,0x00,0xcf,0xc7,0xf4,
+/* 0x004380 */ 0x99,0x3c,0xb6,0xa5,0x92,0xda,0xbb,0x73,0x4e,0xa0,0x91,0x1d,0xca,0x3d,0x94,0xf3,
+/* 0x004390 */ 0xaf,0x51,0xb4,0x9b,0x94,0xe3,0xd8,0x53,0xf4,0xf3,0x99,0xf5,0xc0,0x76,0x8e,0x2d,
+/* 0x0043a0 */ 0x31,0x5d,0x30,0x95,0x4b,0xff,0x49,0xc9,0x3f,0x45,0xcf,0x0f,0x38,0xaf,0xe0,0x60,
+/* 0x0043b0 */ 0x53,0xb4,0xd5,0xd4,0x48,0xd6,0x4a,0x76,0xb6,0x13,0x07,0x59,0xde,0x9f,0x1d,0xff,
+/* 0x0043c0 */ 0xb3,0x58,0xe3,0x87,0x43,0x3a,0xff,0xda,0x16,0x5d,0x8e,0x8f,0x75,0x74,0x78,0x0f,
+/* 0x0043d0 */ 0x52,0xce,0xbf,0x32,0xbd,0x5f,0x50,0xfb,0xdf,0x33,0xf2,0x3f,0x69,0xfe,0x3f,0x0d,
+/* 0x0043e0 */ 0x9d,0x45,0xda,0x11,0x26,0xce,0xcf,0x18,0xf3,0x3f,0xc9,0x22,0xe6,0x07,0xae,0xc7,
+/* 0x0043f0 */ 0x3f,0x7d,0x14,0xd8,0x99,0xfc,0x45,0x0b,0xed,0xff,0xa2,0xf7,0xbf,0x67,0xe4,0x7f,
+/* 0x004400 */ 0x16,0xa8,0xff,0x81,0x90,0x97,0xfe,0xb7,0xbd,0xb3,0x81,0x8d,0xe3,0xb8,0xee,0xf8,
+/* 0x004410 */ 0x9b,0xbd,0xd9,0xe3,0x92,0x3c,0x8a,0xbb,0xe4,0x9d,0xb5,0xac,0xa9,0x78,0xee,0x44,
+/* 0x004420 */ 0xc9,0x74,0x4c,0xbb,0x4b,0xc9,0xfa,0x88,0xad,0x4a,0xc3,0x3b,0x1e,0x75,0x96,0xe8,
+/* 0x004430 */ 0xf8,0x24,0x51,0x22,0x5d,0xd0,0xc9,0x49,0x60,0x83,0x16,0x48,0x01,0x4a,0x56,0x5a,
+/* 0x004440 */ 0x07,0x4d,0xec,0xbd,0xd3,0xc9,0xa1,0xfc,0x01,0x51,0xb6,0x0c,0x2b,0x05,0x9d,0x5c,
+/* 0x004450 */ 0x9d,0xaa,0xb6,0x81,0xa0,0x50,0x2d,0xa7,0x4e,0xdc,0x24,0x5d,0xb2,0x94,0xa2,0x04,
+/* 0x004460 */ 0x6a,0x6c,0xd7,0x6e,0x1b,0x20,0x6e,0x4d,0x45,0x12,0x2c,0x14,0x72,0x2a,0x21,0x28,
+/* 0x004470 */ 0x2a,0x57,0xb6,0xd5,0x37,0xbb,0xf7,0x31,0xc7,0x6f,0x49,0xae,0x6b,0xb4,0x37,0x80,
+/* 0x004480 */ 0xc4,0x1f,0xde,0xce,0xcd,0xcd,0xce,0xbe,0x79,0xf3,0xdf,0xbd,0xd9,0x99,0xab,0x7a,
+/* 0x004490 */ 0xfe,0x33,0xfd,0xef,0xef,0xca,0xa4,0xe7,0x5d,0xd7,0x3c,0xff,0x67,0xe6,0xf5,0x7f,
+/* 0x0044a0 */ 0xa6,0x7f,0xfe,0x33,0xd3,0xfa,0x3f,0xb7,0x4d,0xdc,0x28,0x3f,0xff,0x91,0xe7,0xff,
+/* 0x0044b0 */ 0xe8,0x73,0x3e,0xff,0x99,0xcf,0xfa,0x3f,0x33,0x3d,0xff,0x99,0xcf,0xfc,0x9f,0xc6,
+/* 0x0044c0 */ 0x19,0xe6,0x3f,0x7f,0x9a,0xd7,0xff,0xf9,0xb8,0x9e,0xff,0xcc,0x6f,0xfe,0xcf,0xb5,
+/* 0x0044d0 */ 0x3f,0xff,0xf9,0x1f,0x99,0xff,0x33,0xcb,0xfb,0xef,0x1f,0xd3,0xf3,0x9f,0xab,0x9b,
+/* 0x0044e0 */ 0xff,0x33,0xe3,0xfb,0xef,0x1f,0xdb,0xf3,0x1f,0x5e,0xcc,0x7f,0x9d,0xf3,0x7f,0x36,
+/* 0x0044f0 */ 0x5e,0xf5,0xfc,0x9f,0xeb,0x7f,0xff,0x2b,0x36,0x9f,0xf5,0x7f,0x5c,0x78,0xe7,0x7a,
+/* 0x004500 */ 0xe7,0xff,0xcc,0xf1,0xfe,0xd7,0x33,0x53,0x9e,0xff,0xcc,0x6b,0xfe,0xe1,0x74,0xfa,
+/* 0x004510 */ 0xa7,0xc1,0xdd,0xe6,0xbe,0xfc,0x7c,0x0b,0x3b,0x7a,0x4f,0xf7,0xfc,0xa7,0x38,0xde,
+/* 0x004520 */ 0xc9,0xed,0xf3,0x27,0xb3,0xcd,0x7f,0x26,0x33,0x0d,0x7c,0xca,0x94,0xdf,0xbf,0x46,
+/* 0x004530 */ 0x37,0x4e,0x19,0x76,0x17,0xcc,0xf1,0xfc,0x67,0xb6,0x17,0xc3,0xa7,0xfe,0xfe,0xf5,
+/* 0x004540 */ 0x98,0x15,0x39,0x49,0xcb,0x9e,0xff,0xd4,0xa0,0x65,0xb6,0xf9,0x3f,0x55,0xe7,0x67,
+/* 0x004550 */ 0x1c,0x88,0xe7,0xf5,0xfe,0x97,0x58,0xdf,0xaf,0x30,0x15,0x6a,0x16,0xfd,0xb3,0x1f,
+/* 0x004560 */ 0x81,0x7e,0xd4,0xb6,0x5c,0xab,0x1f,0xdb,0x73,0xbe,0xa0,0x07,0x4a,0xfa,0x27,0xa7,
+/* 0x004570 */ 0x4f,0x33,0xad,0x57,0xfb,0x1b,0x1e,0x31,0x6a,0x5f,0x2e,0xe9,0x93,0x49,0xfa,0xc7,
+/* 0x004580 */ 0x3f,0xd5,0x0d,0x72,0x54,0x2c,0x04,0x4d,0xa7,0xe8,0x9f,0x69,0xdf,0x7f,0xd7,0xf0,
+/* 0x004590 */ 0xb6,0x0b,0x1e,0x1b,0x56,0xa6,0xd1,0x3f,0x10,0x3a,0x1f,0x14,0x8f,0x0d,0xb1,0x53,
+/* 0x0045a0 */ 0x48,0xcd,0xf2,0x5f,0x87,0x97,0xdd,0x52,0x9f,0x89,0x9d,0xef,0xbc,0x3c,0x31,0x49,
+/* 0x0045b0 */ 0xff,0x14,0xe6,0x3f,0xd7,0x5e,0x88,0x7d,0x90,0x5f,0xdd,0x7a,0x31,0x02,0x5f,0xd7,
+/* 0x0045c0 */ 0x52,0x7f,0x21,0x8d,0xc0,0xd6,0x39,0xd3,0xcf,0xff,0x71,0x7f,0x7d,0x86,0xfc,0x6b,
+/* 0x0045d0 */ 0x86,0xbf,0x69,0x59,0xab,0xd7,0xd9,0xbe,0xf3,0xd9,0xcb,0xd1,0x19,0xf5,0x8f,0xec,
+/* 0x0045e0 */ 0x0f,0x3f,0x98,0xb8,0x1d,0xb4,0x91,0x7f,0xf8,0x35,0x15,0xae,0x35,0x9d,0xfe,0x19,
+/* 0x0045f0 */ 0x75,0x7f,0x1f,0xfc,0x4e,0x71,0x62,0xfc,0xde,0x2f,0x8f,0x6a,0x90,0x77,0x8c,0xc7,
+/* 0x004600 */ 0x66,0xd5,0x3f,0x1b,0x1f,0x6c,0xf8,0x57,0xfa,0xd7,0x99,0xb6,0x89,0x21,0xbc,0xb1,
+/* 0x004610 */ 0xd2,0x5e,0xc9,0xfc,0xe1,0x34,0xf3,0x7f,0xf4,0xaf,0x79,0x6a,0xe7,0xb4,0xd8,0x08,
+/* 0x004620 */ 0x1e,0x81,0x5f,0x84,0x35,0xe3,0xb7,0x81,0xef,0xb5,0xc3,0xbf,0xa1,0x53,0xf4,0xcf,
+/* 0x004630 */ 0x74,0xfa,0xf0,0x03,0xe5,0xe1,0x71,0x0c,0xb3,0x1f,0xf0,0x2b,0xe2,0xfe,0x5d,0xfe,
+/* 0x004640 */ 0xfd,0x6b,0x68,0xb2,0xfe,0x71,0x97,0xe1,0xba,0x04,0xcb,0x48,0x7d,0xb6,0xf1,0xd7,
+/* 0x004650 */ 0xf0,0xcb,0x86,0xb9,0xf4,0x8f,0x88,0x9f,0x78,0x5b,0x1a,0x86,0xda,0xed,0x91,0xb7,
+/* 0x004660 */ 0x87,0xbf,0x41,0x27,0xe9,0x9f,0x29,0xf3,0x9f,0xdd,0x8d,0xcf,0xfe,0xca,0x5e,0x12,
+/* 0x004670 */ 0x16,0x1b,0xa1,0x4e,0xe4,0xd7,0xbb,0x3e,0x22,0xeb,0x1f,0x3a,0x25,0xec,0xe8,0x2f,
+/* 0x004680 */ 0xc3,0x61,0xab,0x96,0x2b,0x3f,0x67,0x7b,0xe6,0xd4,0x3f,0x01,0x0f,0x56,0xbe,0x80,
+/* 0x004690 */ 0x96,0xcb,0xd5,0xff,0xf4,0xe8,0x3c,0xf5,0xcf,0x9d,0x4a,0x3d,0x88,0xf5,0x9f,0xc3,
+/* 0x0046a0 */ 0xb3,0xbd,0xff,0x25,0x60,0x81,0x80,0x8b,0xa0,0xf3,0xc0,0xa1,0x2a,0x66,0x5f,0xc2,
+/* 0x0046b0 */ 0xfb,0x97,0xfd,0xf3,0xd0,0x3f,0x3c,0xc2,0x13,0x23,0x4a,0xc4,0xfe,0x3e,0xac,0xe4,
+/* 0x0046c0 */ 0x1b,0xe7,0xa1,0x7f,0x5a,0x6f,0xe5,0x89,0x37,0x40,0x4c,0x8c,0x89,0x88,0x1d,0xbe,
+/* 0x0046d0 */ 0xe6,0xd2,0x3f,0xdf,0x63,0x2f,0x26,0xb4,0x5d,0x35,0x74,0xe8,0x07,0xac,0xc5,0x5b,
+/* 0x0046e0 */ 0x0f,0xa7,0xe0,0x0f,0xd3,0xe8,0x1f,0xfc,0xf6,0x4b,0xc9,0x3b,0xa1,0xed,0x58,0x63,
+/* 0x0046f0 */ 0xb8,0xe3,0x92,0x22,0x16,0xa2,0xa9,0x9a,0x4b,0xff,0x5c,0x6e,0x58,0xd9,0x59,0x7f,
+/* 0x004700 */ 0xc0,0x77,0x72,0xae,0xf5,0x7f,0x0a,0xf0,0xa1,0x78,0xbf,0x43,0xaf,0xba,0xd9,0x16,
+/* 0x004710 */ 0xeb,0xff,0x4c,0x9d,0xff,0x4c,0xcb,0xd4,0x8e,0x2f,0x07,0xdf,0xcf,0x89,0xf5,0x7f,
+/* 0x004720 */ 0x32,0x11,0x78,0x61,0x7e,0xfa,0xe7,0xa8,0xe6,0x2e,0xfb,0x7c,0xd8,0x4e,0x1b,0x6d,
+/* 0x004730 */ 0x1d,0xf3,0xd1,0x3f,0x62,0xdb,0xf7,0x8c,0xc2,0x02,0x2f,0x32,0xf7,0xfd,0x2f,0x49,
+/* 0x004740 */ 0xff,0x04,0x3d,0x3d,0x73,0x6f,0xb9,0x8c,0xe1,0x2f,0xf1,0x7a,0xbb,0x26,0xe2,0xbe,
+/* 0x004750 */ 0xf1,0x57,0xae,0x7f,0x0a,0xfb,0x7f,0x49,0xeb,0x25,0xe6,0x2d,0x43,0xe4,0x14,0xc9,
+/* 0x004760 */ 0xef,0x17,0x36,0x8b,0xfe,0x71,0x97,0x59,0xb8,0x90,0x58,0x06,0x6d,0x8a,0x8f,0x59,
+/* 0x004770 */ 0xf9,0xad,0xc1,0x24,0xfd,0x33,0xf5,0xfd,0xf7,0xe8,0x39,0xf8,0x31,0x8f,0xd8,0xda,
+/* 0x004780 */ 0x99,0xe7,0x4c,0xf6,0x2a,0x9d,0x97,0xfe,0x79,0x89,0xb7,0x38,0xda,0x1d,0x4a,0x1d,
+/* 0x004790 */ 0x88,0xfd,0xbf,0x7c,0x73,0xed,0x7f,0x21,0xa0,0x65,0xe2,0xee,0x07,0x36,0x17,0xf7,
+/* 0x0047a0 */ 0xff,0x92,0xde,0x7f,0x9f,0xac,0x7f,0x16,0x08,0xb8,0x62,0xaf,0x10,0x8f,0x7d,0x3e,
+/* 0x0047b0 */ 0x63,0x7b,0x87,0xaa,0xe6,0xd2,0x3f,0x57,0xe8,0x9f,0x62,0xe0,0x5d,0x58,0x7c,0xbf,
+/* 0x0047c0 */ 0x29,0x3a,0xe7,0xfc,0xe7,0xbb,0x26,0xf6,0xbf,0x1f,0x5b,0x9b,0x98,0xd7,0xfc,0xe7,
+/* 0x0047d0 */ 0x7e,0x6f,0xfd,0xb1,0xaf,0x96,0xf6,0xb3,0x98,0x5b,0xff,0xdc,0x22,0xa0,0xb9,0x75,
+/* 0x0047e0 */ 0xca,0xef,0x5f,0x29,0x49,0xff,0xe8,0x47,0xbd,0x6d,0xaf,0xb1,0x85,0x75,0x70,0x6a,
+/* 0x0047f0 */ 0x97,0x35,0x04,0xd8,0xd1,0x5c,0x9b,0xb3,0x71,0xe6,0xf5,0x7f,0x4a,0xf0,0x5b,0xce,
+/* 0x004800 */ 0x4d,0x3f,0xbe,0xf5,0xb7,0xe1,0x72,0x6a,0xaa,0xfe,0x99,0x72,0x37,0x8a,0xc2,0x29,
+/* 0x004810 */ 0xb1,0x46,0xcc,0xff,0x79,0xaf,0x20,0x8d,0x66,0x78,0xff,0xeb,0xdf,0x3d,0xf8,0xa1,
+/* 0x004820 */ 0xbb,0x8d,0x75,0xc0,0x12,0x2b,0x42,0x2b,0xf3,0x9a,0xff,0xfc,0xb7,0x13,0xb7,0x3b,
+/* 0x004830 */ 0x89,0x1f,0xb2,0xdb,0xe9,0x34,0xfa,0xc7,0xd3,0x4b,0x93,0x64,0x4f,0xf6,0xf6,0x51,
+/* 0x004840 */ 0xf3,0x7b,0xbc,0x2d,0x35,0x55,0xff,0xcc,0xf8,0xfe,0x7b,0xc2,0x7a,0x2e,0x30,0x8d,
+/* 0x004850 */ 0xfe,0x91,0xf7,0xbf,0xc8,0xef,0x77,0xe6,0xb5,0x58,0xdb,0xab,0xb5,0xb7,0xf1,0x7c,
+/* 0x004860 */ 0x53,0xcc,0xa0,0x7f,0xd6,0x95,0x0d,0x64,0x47,0x7c,0xee,0x7c,0xa7,0xd1,0x32,0xfd,
+/* 0x004870 */ 0x03,0xc7,0xba,0xc8,0x20,0x7f,0x5b,0x5f,0x15,0x54,0x1d,0x9f,0x07,0x75,0xa3,0xbe,
+/* 0x004880 */ 0x41,0x18,0x91,0x2c,0x50,0xe7,0xb4,0x17,0xeb,0x13,0xef,0xac,0x6a,0x27,0xfd,0xbc,
+/* 0x004890 */ 0x57,0x37,0xc6,0xd5,0x22,0xec,0x24,0xcd,0x08,0x7a,0xc1,0x12,0x74,0xda,0x0b,0xf5,
+/* 0x0048a0 */ 0x01,0xdb,0x4f,0x52,0x76,0x82,0x35,0x68,0x74,0x4c,0x80,0xd5,0x60,0x22,0x30,0xbb,
+/* 0x0048b0 */ 0x9b,0x35,0x04,0x20,0x93,0x3f,0xa4,0x16,0xb7,0x8f,0x13,0x17,0x38,0x9c,0x82,0x3e,
+/* 0x0048c0 */ 0xb8,0x41,0x7f,0xda,0x26,0x2e,0x68,0x7b,0xf3,0xa0,0x3f,0xed,0x78,0x00,0x72,0xfe,
+/* 0x0048d0 */ 0x78,0x77,0x7c,0x17,0xe9,0xb7,0x7b,0x5b,0x43,0x27,0xe2,0xcb,0x48,0xff,0xf8,0x16,
+/* 0x0048e0 */ 0x16,0x3a,0xa1,0xee,0x32,0xd0,0x12,0xf6,0x2c,0x76,0xef,0x12,0xb9,0x3e,0xc7,0x38,
+/* 0x0048f0 */ 0xc6,0x16,0x93,0xfa,0x81,0xd8,0x9c,0x21,0x28,0x08,0xc2,0x02,0x05,0x0b,0xf8,0x09,
+/* 0x004900 */ 0xd8,0xa5,0xf3,0x3d,0xc6,0x69,0x84,0x68,0x76,0x14,0xf4,0x21,0xba,0x03,0xa1,0x8b,
+/* 0x004910 */ 0x21,0x44,0x3a,0xd0,0xa2,0xe5,0x2d,0x51,0x66,0xc8,0xf9,0xd7,0x93,0x68,0x3a,0x99,
+/* 0x004920 */ 0xeb,0xd1,0xd4,0x05,0xea,0xe6,0x74,0xf2,0xc2,0xd6,0xd6,0x50,0x8d,0x1a,0x1b,0x45,
+/* 0x004930 */ 0x8b,0xe9,0x59,0x72,0x3d,0x6b,0x42,0x5c,0x6a,0x9f,0x3a,0xd2,0x08,0x5b,0x9d,0x90,
+/* 0x004940 */ 0xa5,0xde,0x4f,0xb6,0xc0,0xd6,0xd7,0x0d,0x4b,0xed,0x26,0x5b,0x78,0xa7,0x13,0x5a,
+/* 0x004950 */ 0xa3,0xbe,0x8d,0x96,0x1e,0x27,0xb4,0x9b,0x16,0xa7,0xb7,0x88,0x01,0x92,0xea,0x38,
+/* 0x004960 */ 0xfa,0x51,0x46,0x96,0xa2,0x53,0x35,0x70,0x02,0xe8,0x2b,0x1d,0x40,0x81,0x5a,0xae,
+/* 0x004970 */ 0x05,0x0f,0x0d,0x43,0x87,0xd4,0x3e,0xa9,0x88,0x09,0x19,0x60,0xf6,0x50,0x58,0xd1,
+/* 0x004980 */ 0x10,0xc2,0xf6,0x10,0x43,0x78,0x44,0x58,0x98,0x6b,0x61,0xb6,0xd6,0x21,0xb7,0x8f,
+/* 0x004990 */ 0x9a,0x22,0xf7,0xc1,0x36,0x58,0x34,0x9c,0x87,0x90,0x8d,0xd0,0x57,0xb0,0x20,0xf0,
+/* 0x0049a0 */ 0x50,0x59,0xfb,0xe0,0x45,0xf9,0x05,0xac,0x64,0xe8,0x2d,0x2e,0xa0,0xb7,0x78,0xc0,
+/* 0x0049b0 */ 0xa8,0x5d,0xb0,0xc8,0xf9,0xa3,0x4b,0xad,0x74,0x80,0xc5,0x34,0x63,0x4f,0x0b,0x42,
+/* 0x0049c0 */ 0x04,0x21,0x43,0xad,0x7d,0xc2,0x32,0x9c,0x69,0xf1,0x0e,0x0d,0xcb,0xfe,0xa3,0x61,
+/* 0x0049d0 */ 0x5f,0x0e,0x50,0x1f,0x12,0x2f,0x80,0xb0,0x40,0xc1,0x02,0x3e,0x02,0x8e,0xd4,0x3e,
+/* 0x0049e0 */ 0xb5,0xc4,0x42,0xef,0x6a,0x0c,0x04,0xff,0xce,0x03,0xe1,0x78,0x79,0x4b,0xa6,0x60,
+/* 0x0049f0 */ 0x91,0xf2,0xc7,0xa3,0xea,0x60,0xba,0x8f,0x6d,0xd3,0x42,0x19,0x35,0x55,0x06,0x81,
+/* 0x004a00 */ 0x92,0xc5,0x96,0xda,0x27,0x0a,0x29,0x5b,0x63,0x18,0xb0,0xc7,0x44,0xcb,0x09,0xc8,
+/* 0x004a10 */ 0x14,0x20,0x6f,0xd1,0x64,0xff,0x89,0x6f,0xa1,0x2c,0x6d,0xb2,0xae,0x80,0x8e,0xa2,
+/* 0x004a20 */ 0x2e,0xdd,0xc4,0xba,0xc4,0xf9,0x0e,0x08,0x4b,0xc2,0xb5,0x08,0x90,0xfd,0x27,0x9e,
+/* 0x004a30 */ 0x22,0x26,0xd9,0x06,0x5b,0x6d,0x9a,0x52,0xfb,0x5c,0x08,0x79,0x10,0x97,0x2c,0xb2,
+/* 0x004a40 */ 0xff,0x2c,0x25,0x1d,0x76,0x32,0x15,0x34,0xd5,0xa5,0x64,0x93,0xbd,0x39,0x15,0x32,
+/* 0x004a50 */ 0x55,0x3f,0xb9,0x5b,0x58,0x0e,0xb9,0x16,0x17,0x24,0xff,0x81,0x06,0x15,0xdb,0x4d,
+/* 0x004a60 */ 0xf4,0xc7,0x06,0xfc,0x70,0x07,0xd3,0x35,0xaa,0x10,0x8a,0x16,0x3d,0x41,0x1b,0xb0,
+/* 0x004a70 */ 0x63,0xba,0x20,0x6d,0xff,0x78,0xac,0x2b,0xb6,0xc9,0x7e,0x2b,0xb5,0xa2,0xa9,0xae,
+/* 0x004a80 */ 0x4b,0x31,0x10,0x96,0x20,0xf8,0x8a,0x16,0x17,0xcc,0x6a,0xa9,0x3e,0xf1,0xe8,0x92,
+/* 0x004a90 */ 0x9d,0xe9,0xfe,0x54,0xaf,0xb9,0x68,0x4c,0x40,0xa4,0xd7,0x0c,0x1d,0x57,0x07,0xf7,
+/* 0x004aa0 */ 0xa1,0x45,0x7b,0x76,0xcc,0x3b,0xa4,0x3d,0x2d,0xc7,0x93,0x2e,0xb2,0xd3,0x7e,0x3b,
+/* 0x004ab0 */ 0xb5,0xca,0x54,0xc7,0x7c,0x08,0x6c,0x95,0x59,0x77,0xdc,0x27,0x5b,0x52,0xab,0xb4,
+/* 0x004ac0 */ 0x3a,0xc7,0x90,0xf2,0xfb,0xdb,0xd3,0xfd,0x03,0xbd,0xa6,0x7e,0x3c,0xbe,0xd3,0x05,
+/* 0x004ad0 */ 0x2c,0xdf,0xfb,0x46,0xc3,0xb5,0xa4,0x7a,0x9b,0x82,0x8e,0x51,0xac,0x0f,0x28,0x78,
+/* 0x004ae0 */ 0x51,0xdc,0x20,0x23,0xc2,0x8e,0x1b,0x88,0x32,0x05,0x28,0x58,0x54,0xbb,0xd4,0x3c,
+/* 0x004af0 */ 0xd8,0xfd,0xc3,0x76,0x5f,0xea,0x06,0x33,0xf4,0x08,0xd9,0xee,0x82,0x5a,0x80,0x92,
+/* 0x004b00 */ 0x45,0xca,0x1f,0xe7,0xaa,0xd8,0x4a,0x61,0x0b,0x84,0x1c,0xd5,0x42,0xe8,0x15,0x30,
+/* 0x004b10 */ 0x58,0x80,0x82,0xc5,0x90,0xda,0x07,0xfd,0xc7,0x44,0x27,0x21,0xc2,0x6d,0x4c,0xe6,
+/* 0x004b20 */ 0x17,0x90,0x2a,0x40,0xde,0x62,0x4b,0xe7,0x1b,0x45,0xff,0xd1,0xd0,0x6d,0xf4,0x0c,
+/* 0x004b30 */ 0x7a,0x8b,0xc6,0xa2,0x02,0x58,0x01,0xf2,0x96,0xb2,0xfc,0x84,0xa7,0x93,0xd6,0x56,
+/* 0x004b40 */ 0x4d,0x55,0xd4,0x64,0x3a,0xc9,0x7a,0xb4,0x90,0xa2,0x72,0x17,0x4a,0x16,0x90,0xda,
+/* 0x004b50 */ 0xc7,0x47,0x74,0xa7,0xc7,0x0a,0x05,0xd4,0x98,0x00,0xa6,0x0b,0x48,0xda,0x9d,0x68,
+/* 0x004b60 */ 0xa1,0x31,0xec,0x59,0x78,0x48,0x2b,0xcd,0xc6,0x00,0xa1,0xa0,0x1b,0xbc,0xf8,0x23,
+/* 0x004b70 */ 0x9a,0x56,0xb7,0x51,0x11,0x69,0x10,0x85,0x80,0x8d,0x12,0x8c,0xbb,0x96,0xa2,0x16,
+/* 0x004b80 */ 0xf3,0xea,0x13,0x53,0x74,0xdb,0xce,0x31,0x4d,0xab,0x51,0xc0,0xb6,0x19,0x82,0x82,
+/* 0x004b90 */ 0x90,0x15,0xb0,0xa1,0x60,0x91,0xea,0x13,0xe7,0x85,0x68,0x63,0xab,0x0c,0x61,0xb3,
+/* 0x004ba0 */ 0x14,0x7f,0x3c,0xcb,0x36,0x08,0x4a,0xe7,0x8b,0xf1,0x87,0xb9,0x41,0xa6,0x14,0x7f,
+/* 0x004bb0 */ 0xec,0x3c,0x48,0x16,0xb9,0x46,0x7e,0x46,0x02,0x10,0x03,0xc3,0xc6,0x88,0x19,0xd0,
+/* 0x004bc0 */ 0x63,0xa0,0x3b,0x02,0x8a,0x16,0x10,0x16,0x29,0xbb,0x8e,0x9d,0x21,0xc0,0x7d,0x1c,
+/* 0x004bd0 */ 0x1e,0x11,0xd1,0xa6,0x13,0xc1,0xf1,0xe2,0x4f,0xde,0x02,0xbe,0x06,0x90,0xf3,0x53,
+/* 0x004be0 */ 0x12,0xe6,0xdd,0x83,0x8d,0x07,0x83,0xc7,0x48,0x3b,0xef,0x4e,0x36,0x1e,0xa4,0x08,
+/* 0x004bf0 */ 0x20,0xa0,0x60,0xd1,0xa9,0x9c,0x7f,0xb1,0xfa,0xfb,0xa3,0xbf,0x6b,0x6d,0x1b,0x0a,
+/* 0x004c00 */ 0x3d,0x2f,0x60,0x10,0xe1,0x3b,0x05,0xcb,0xbb,0x1e,0x8c,0x84,0xec,0x49,0xf5,0xd1,
+/* 0x004c10 */ 0x1c,0x85,0xc3,0x09,0x01,0xa0,0x88,0xfa,0x78,0x40,0x86,0x3c,0x10,0x11,0x52,0xba,
+/* 0x004c20 */ 0x5e,0x9d,0x3b,0x0c,0x93,0x76,0x85,0x75,0x47,0x40,0x16,0xe1,0x44,0x01,0x6c,0x0f,
+/* 0x004c30 */ 0xda,0x8d,0xb2,0xf6,0xe9,0x48,0x1a,0x3d,0xfe,0xad,0x3e,0xca,0xe3,0x08,0x9d,0x5b,
+/* 0x004c40 */ 0x49,0xd0,0x05,0x1a,0xcf,0x5b,0xe8,0x56,0x12,0xe2,0x72,0xf9,0xdb,0xa3,0x5a,0x32,
+/* 0x004c50 */ 0x13,0x62,0x7b,0x35,0x1c,0x60,0x92,0x99,0xa0,0x80,0x68,0x01,0xf2,0x16,0xb9,0xf8,
+/* 0x004c60 */ 0x1a,0x55,0xb1,0x79,0x0e,0x85,0x7a,0x0d,0x08,0xd0,0x5b,0xb3,0x35,0xc4,0x83,0xa2,
+/* 0x004c70 */ 0xa5,0xcc,0xdf,0x02,0xbe,0x2d,0xf0,0x96,0x13,0xb6,0xea,0xba,0x95,0x46,0x84,0x15,
+/* 0x004c80 */ 0x08,0xae,0x65,0x85,0x64,0x29,0xab,0x8f,0xa7,0x07,0xd8,0xa2,0x9f,0x2e,0x41,0x38,
+/* 0x004c90 */ 0xd8,0xeb,0xea,0x81,0x6a,0x61,0x79,0xf6,0xa7,0xde,0xa1,0xa5,0x21,0xb9,0xfd,0xc3,
+/* 0x004ca0 */ 0x90,0xf0,0xe3,0xa8,0x68,0x77,0xf8,0x34,0xcd,0x0f,0x16,0x02,0x33,0xb5,0xa8,0x42,
+/* 0x004cb0 */ 0xec,0x2c,0x11,0x16,0x84,0x00,0x93,0xeb,0xb3,0xf8,0x3f,0x13,0xc7,0x8d,0x8b,0xd9,
+/* 0x004cc0 */ 0xc7,0xbf,0xbe,0xee,0x1c,0xc2,0x95,0xec,0xe3,0xf7,0x2f,0x36,0x13,0x1f,0x35,0xb4,
+/* 0x004cd0 */ 0x67,0xf7,0xff,0x48,0x58,0x10,0x1e,0x3e,0x05,0xd7,0x91,0x6e,0xbb,0x58,0xbb,0xd2,
+/* 0x004ce0 */ 0xb9,0xe7,0xc8,0xd1,0xaf,0xaf,0x7d,0x0c,0xe1,0x8b,0x47,0x8e,0x76,0xb6,0xfd,0xb2,
+/* 0x004cf0 */ 0xf6,0xa1,0xb1,0xbf,0x3f,0xf2,0xd2,0xef,0x08,0x0b,0xc2,0xc2,0xf3,0x72,0xfe,0xe5,
+/* 0x004d00 */ 0xff,0x11,0x78,0xcd,0xd8,0x32,0x7e,0xf2,0xc3,0xb5,0xdf,0xed,0x7e,0xcd,0xf8,0xe2,
+/* 0x004d10 */ 0xf8,0xc9,0xb7,0x96,0xaf,0xe9,0xbe,0xd2,0xb8,0x7c,0xfc,0x67,0x3f,0x12,0x16,0x84,
+/* 0x004d20 */ 0xde,0x8b,0x72,0xfe,0xbb,0xf4,0x05,0xef,0x0c,0x2f,0x3c,0xf3,0xde,0xa9,0xc8,0x82,
+/* 0x004d30 */ 0xcf,0xbf,0x33,0x6c,0x9c,0x79,0xcf,0xb9,0xeb,0xa1,0xcf,0xff,0xe4,0xa9,0x57,0xce,
+/* 0x004d40 */ 0x9c,0x0b,0x0b,0x0b,0x02,0xfd,0xaa,0x9c,0x5f,0x55,0x76,0xf2,0x11,0xfd,0xe6,0x60,
+/* 0x004d50 */ 0xf5,0xa8,0x32,0xc8,0x47,0x92,0x08,0xc7,0x94,0x9d,0x43,0x8f,0xef,0x58,0x65,0xd4,
+/* 0x004d60 */ 0x8d,0x47,0x77,0x42,0x7f,0xea,0xe6,0x60,0x59,0xff,0xa2,0xa8,0x06,0x51,0x04,0x9a,
+/* 0x004d70 */ 0xa1,0x71,0x0f,0x74,0x11,0x9f,0x49,0x80,0xc7,0x74,0x73,0x1c,0xda,0xab,0x47,0xa2,
+/* 0x004d80 */ 0x3e,0xd4,0x87,0x52,0x7e,0x85,0x30,0xc0,0x20,0x0c,0xa5,0xb0,0x6c,0x63,0x04,0x4e,
+/* 0x004d90 */ 0xa4,0x6e,0xd0,0xd4,0x0c,0x63,0x43,0x09,0x1c,0x58,0xa9,0x5c,0xbe,0x9f,0xa5,0x86,
+/* 0x004da0 */ 0x84,0x5a,0x4b,0xa3,0x6c,0xd3,0xcc,0xa8,0x00,0x96,0xaa,0xd6,0xfc,0xbd,0x4d,0x7b,
+/* 0x004db0 */ 0xc7,0x59,0x58,0xd3,0xba,0x16,0x8a,0x43,0xa5,0x14,0xe8,0xdc,0xb5,0xa9,0x39,0xbb,
+/* 0x004dc0 */ 0x3e,0x6c,0x9c,0x88,0x47,0x88,0x07,0x74,0xd0,0xc2,0x51,0x2f,0x6c,0x38,0x3c,0x72,
+/* 0x004dd0 */ 0x20,0x48,0x95,0x5b,0x0c,0xb9,0x3e,0x78,0x0f,0xa3,0xa3,0x3e,0x24,0xa8,0x06,0x11,
+/* 0x004de0 */ 0x5a,0x5c,0x18,0xd0,0xab,0xfd,0xd8,0xbf,0x0e,0xf2,0x16,0x68,0xf2,0x2b,0x06,0x91,
+/* 0x004df0 */ 0xcb,0x37,0xe9,0x52,0xa2,0x39,0xd1,0x14,0xaa,0xc1,0xa5,0xa4,0xfa,0xf5,0xe8,0x6e,
+/* 0x004e00 */ 0xfd,0x10,0x6d,0xe1,0xd5,0xba,0xc2,0xf5,0x6f,0xc1,0x12,0x52,0x3d,0xac,0x0c,0xea,
+/* 0x004e10 */ 0x72,0xfe,0xb5,0xf4,0xde,0x74,0x43,0xae,0xf3,0x92,0xf1,0x59,0xba,0x41,0xc0,0x0b,
+/* 0x004e20 */ 0x08,0x77,0xdb,0x4a,0xca,0x3f,0x42,0x3e,0x4b,0x35,0xa7,0x61,0x82,0xbf,0x50,0x8a,
+/* 0x004e30 */ 0x6e,0xd8,0xd3,0x9b,0x71,0x00,0x09,0x3a,0xea,0x83,0xa4,0x1b,0x07,0x99,0xa0,0x18,
+/* 0x004e40 */ 0x52,0xba,0xe1,0x3e,0xa8,0xe1,0xe4,0x65,0x38,0x03,0xb7,0x72,0x3f,0x57,0x2c,0xc2,
+/* 0x004e50 */ 0x4b,0x1f,0x70,0x28,0xc4,0x41,0x4f,0xd1,0x24,0xc6,0xe7,0x4e,0x30,0x38,0x82,0x0e,
+/* 0x004e60 */ 0xeb,0x75,0xe2,0xa0,0x72,0xee,0xe1,0xea,0x5e,0x95,0x03,0x1e,0xb2,0x4a,0xe5,0x27,
+/* 0x004e70 */ 0x23,0x54,0xc3,0x28,0xce,0x87,0x30,0x70,0x68,0x69,0x05,0x41,0x8f,0x80,0x26,0x66,
+/* 0x004e80 */ 0xb9,0x88,0x5d,0xe5,0xb5,0x2c,0x46,0xeb,0x21,0x39,0x3f,0xa7,0xa8,0x50,0xa0,0x4b,
+/* 0x004e90 */ 0x44,0x4b,0x09,0xc4,0x18,0x80,0xc0,0xd0,0x22,0xa0,0x98,0x5f,0x27,0x49,0x65,0x00,
+/* 0x004ea0 */ 0x0e,0xc1,0x52,0x5e,0x8d,0xe7,0x28,0x40,0xec,0x4f,0x25,0x64,0xb3,0x08,0x53,0x8a,
+/* 0x004eb0 */ 0x88,0x57,0x11,0xa8,0xce,0x14,0xab,0xcf,0xe3,0x51,0x86,0x6a,0x10,0x65,0xe1,0xf0,
+/* 0x004ec0 */ 0x98,0xab,0x0f,0x7d,0x08,0x59,0x6b,0xc8,0x8e,0xec,0xd0,0x0e,0xa1,0x3f,0xec,0x1b,
+/* 0x004ed0 */ 0x8a,0x28,0xa8,0x0f,0x8b,0xe3,0x85,0x38,0x73,0x4b,0x47,0x59,0x88,0x43,0x15,0x97,
+/* 0x004ee0 */ 0x00,0xaf,0x2f,0x43,0x9d,0x83,0x67,0x82,0xf2,0x46,0x8a,0xcf,0x9c,0x2b,0xd8,0xc7,
+/* 0x004ef0 */ 0x03,0xcc,0xa7,0xa1,0x5a,0x93,0x40,0x63,0xbe,0x36,0x14,0x72,0x11,0xc7,0xd5,0x6f,
+/* 0x004f00 */ 0xa5,0xfd,0xdf,0xb1,0x3e,0x9e,0x48,0x13,0xb2,0xad,0x04,0x76,0x9f,0xe5,0x0f,0x18,
+/* 0x004f10 */ 0xa8,0xf7,0x46,0xc5,0x50,0x6e,0x94,0xc6,0x2f,0xde,0x91,0x84,0x16,0xc0,0x42,0xb8,
+/* 0x004f20 */ 0x27,0x0b,0xbd,0x68,0x2c,0xc6,0x48,0xf7,0x46,0x43,0xdc,0x5f,0x08,0x7d,0x58,0xac,
+/* 0x004f30 */ 0x4f,0x92,0x6c,0x46,0x35,0xd8,0x24,0x44,0x60,0xa6,0xa4,0x0f,0x53,0xe9,0x80,0xa5,
+/* 0x004f40 */ 0xe0,0xf8,0x0e,0x62,0xa0,0xc7,0xf2,0x4b,0xf9,0x79,0x5c,0x5c,0xd1,0x20,0x5e,0x63,
+/* 0x004f50 */ 0xa3,0x04,0x2d,0xc9,0x52,0x63,0xf4,0xe0,0xff,0x46,0xb4,0x58,0x9f,0x04,0xf6,0x94,
+/* 0x004f60 */ 0x0e,0x1b,0xfd,0xc1,0x24,0x65,0x20,0x6e,0x79,0x88,0x9f,0x12,0xb4,0x28,0xa6,0x7b,
+/* 0x004f70 */ 0x0f,0x51,0xc8,0x8f,0xcd,0x25,0x44,0xa0,0xdb,0x6e,0x25,0x40,0x07,0xd1,0x82,0x28,
+/* 0x004f80 */ 0xa5,0xd2,0xc2,0x27,0x3a,0x41,0xaa,0x4f,0x57,0xc7,0xa6,0x61,0xa1,0x06,0x03,0x7e,
+/* 0x004f90 */ 0x1f,0xc2,0x40,0x08,0x65,0x61,0x6c,0xd3,0x30,0x1d,0x08,0x23,0x70,0x03,0x2d,0xbe,
+/* 0x004fa0 */ 0xa6,0x3a,0x5e,0x1a,0xdf,0xc9,0xe6,0x96,0xdd,0xfb,0x16,0x45,0xd6,0x27,0xf6,0x1e,
+/* 0x004fb0 */ 0x6f,0xd9,0x99,0x46,0xd0,0x0e,0x1c,0xa7,0x83,0xfb,0x46,0x04,0x8c,0xb5,0x0c,0xee,
+/* 0x004fc0 */ 0x6b,0x8e,0xac,0x37,0x0f,0x48,0xd7,0x8b,0x74,0x29,0x83,0xf6,0x08,0xbb,0x59,0xab,
+/* 0x004fd0 */ 0x1e,0x53,0x76,0xa6,0x47,0x52,0x02,0xfc,0x83,0x76,0x3f,0xf3,0xf4,0x61,0xba,0x9f,
+/* 0x004fe0 */ 0xad,0x37,0xab,0x4b,0xf9,0x93,0xf1,0x6d,0xe4,0x2b,0x07,0xee,0x1f,0xe8,0xbd,0x2f,
+/* 0x004ff0 */ 0x84,0x6a,0xf0,0xc0,0xbf,0x0c,0x2c,0x14,0xf0,0x95,0x03,0x81,0x81,0x2a,0xb3,0xe9,
+/* 0x005000 */ 0x78,0xac,0x3d,0x1d,0x18,0x58,0xdc,0x14,0x1a,0x93,0xfc,0x47,0x21,0x2d,0xf6,0xdd,
+/* 0x005010 */ 0xac,0x21,0x41,0x9f,0xf4,0xe2,0x4f,0x02,0x03,0x51,0x8b,0x7d,0x9f,0x6b,0x31,0x06,
+/* 0x005020 */ 0x10,0x94,0x04,0x46,0xa4,0x62,0x7d,0xf0,0xf6,0xf3,0xf7,0xec,0xa6,0x94,0xbf,0x8f,
+/* 0x005030 */ 0x3c,0x02,0xdb,0x05,0x98,0xe4,0x11,0xfa,0x07,0xe9,0x9a,0x94,0x72,0x08,0xfe,0x82,
+/* 0x005040 */ 0xb8,0x60,0x92,0x52,0x7e,0x88,0x0f,0xd2,0xaf,0x91,0x9b,0x60,0xfd,0x98,0x31,0x91,
+/* 0x005050 */ 0x7d,0x10,0x10,0x6c,0x63,0x02,0x1e,0x84,0x2f,0xe0,0x50,0x87,0xd0,0x0a,0x9f,0x81,
+/* 0x005060 */ 0xa8,0x6d,0x48,0xfe,0x4c,0x36,0xc3,0x40,0xae,0xa9,0xd5,0xbf,0x81,0x3c,0x89,0xb2,
+/* 0x005070 */ 0xb0,0x89,0xf9,0x13,0x28,0x0b,0x07,0xec,0x6a,0x01,0x4f,0x42,0x0b,0x7a,0x08,0x24,
+/* 0x005080 */ 0xa4,0xf8,0xc3,0x3b,0x5c,0x7d,0xd8,0x1a,0xad,0x11,0xb2,0xd0,0xf6,0x64,0x21,0xb4,
+/* 0x005090 */ 0x60,0x7e,0x25,0xa1,0x63,0xfe,0xbd,0xd5,0xae,0x3e,0x94,0xae,0x57,0x94,0xf2,0x7d,
+/* 0x0050a0 */ 0x7a,0xa4,0x53,0x33,0x14,0xca,0x6d,0x9d,0x09,0x00,0x8e,0xd7,0xb7,0x47,0x23,0xc2,
+/* 0x0050b0 */ 0x57,0xf5,0x49,0xfe,0xcc,0x7d,0x90,0x74,0x82,0x96,0x1a,0x20,0x31,0x09,0xf0,0x8b,
+/* 0x0050c0 */ 0x40,0x74,0x79,0x10,0x6a,0x2f,0x40,0x78,0xa9,0x7d,0xa8,0x30,0x0b,0x11,0x48,0x24,
+/* 0x0050d0 */ 0x10,0xc7,0x15,0x96,0x14,0xc1,0x1e,0xc7,0x76,0xd6,0x21,0xfb,0x8f,0x28,0x04,0x45,
+/* 0x0050e0 */ 0x60,0x8d,0x2b,0x0b,0xf1,0xc6,0x5e,0x2b,0xc1,0x18,0x08,0xa1,0x08,0xb2,0x3e,0xe4,
+/* 0x0050f0 */ 0x2a,0x3f,0x93,0x32,0x4c,0xcd,0xef,0xf3,0xe2,0x8f,0xd6,0x25,0xba,0xd5,0x00,0xa9,
+/* 0x005100 */ 0xc6,0x2f,0x0b,0x0e,0xe3,0x97,0x35,0xc1,0x0e,0x90,0xfb,0x0b,0xe1,0x63,0x03,0xad,
+/* 0x005110 */ 0xdf,0xac,0x59,0x1a,0xc3,0x40,0x3c,0x00,0xdf,0xd4,0x30,0x10,0x89,0x37,0x1a,0xf7,
+/* 0x005120 */ 0x61,0xd8,0x21,0x98,0x1f,0xf0,0x83,0x18,0x9a,0xa4,0xfa,0xa4,0xe8,0x1a,0x52,0x0f,
+/* 0x005130 */ 0xb1,0x31,0xb8,0x40,0x57,0xab,0x0b,0xb4,0x98,0xad,0x4f,0xd0,0xd5,0x20,0xa4,0x49,
+/* 0x005140 */ 0x5f,0x4e,0x59,0x4d,0x1e,0x45,0xd0,0x4b,0xd7,0x2b,0x09,0x84,0xad,0x70,0xea,0x92,
+/* 0x005150 */ 0xbe,0x1e,0xf8,0x67,0xb0,0x78,0x40,0xf7,0x05,0xe1,0x18,0x7c,0x8e,0xd7,0x24,0x15,
+/* 0x005160 */ 0x0a,0xcf,0x63,0xaf,0xa9,0xe9,0x53,0x82,0x72,0xfc,0x01,0x15,0xda,0x13,0x81,0x41,
+/* 0x005170 */ 0x5f,0x3f,0x66,0x5b,0xc1,0xdd,0x0f,0xfe,0x23,0x5d,0x91,0xae,0xe6,0x8a,0x0e,0x07,
+/* 0x005180 */ 0x51,0x28,0x56,0xf3,0x68,0x0f,0x46,0xa4,0x52,0x7d,0x62,0x74,0x60,0xb4,0xc9,0xea,
+/* 0x005190 */ 0xea,0x37,0x9e,0xa1,0xa9,0x51,0x53,0xc0,0x01,0x18,0xc0,0x08,0x43,0x35,0x63,0x8c,
+/* 0x0051a0 */ 0xa4,0xd2,0xcd,0x2c,0xda,0x6c,0xd8,0x92,0xff,0x70,0x54,0x34,0x1a,0xf7,0xc2,0x8e,
+/* 0x0051b0 */ 0xa7,0x06,0xd3,0x02,0x92,0x18,0x7f,0xb2,0x78,0xbe,0x66,0xb2,0x4c,0x1f,0x72,0xa2,
+/* 0x0051c0 */ 0x75,0x7e,0x89,0x34,0xd9,0x5d,0x29,0xe3,0x10,0xdd,0x41,0x4c,0xbb,0x8b,0x19,0x43,
+/* 0x0051d0 */ 0x90,0x32,0xc5,0xf8,0xa8,0xdb,0x03,0xcb,0x0c,0x8d,0x8a,0xe7,0x1b,0x92,0xbf,0xc9,
+/* 0x0051e0 */ 0xf1,0xc7,0x40,0xa0,0x06,0xe7,0x49,0x0b,0x16,0xe0,0x35,0xe6,0x1c,0x74,0x4a,0x41,
+/* 0x0051f0 */ 0x37,0xb8,0xd4,0xbf,0x5c,0x37,0xc8,0x08,0x37,0x60,0x25,0xc7,0x70,0x9f,0x3b,0x88,
+/* 0x005200 */ 0xd8,0xd6,0xaa,0x3f,0x0a,0xac,0xd4,0x5b,0x30,0x95,0xd4,0x20,0x51,0xb2,0x05,0xb0,
+/* 0x005210 */ 0x01,0x15,0xe3,0xc1,0x9a,0x16,0x25,0x3d,0x49,0x1f,0xf2,0xf8,0x3d,0xbe,0x2d,0xfc,
+/* 0x005220 */ 0xad,0xd7,0x57,0xdc,0xa1,0x16,0xa0,0x4e,0x00,0x7d,0x9d,0xdc,0xf1,0xc4,0x3d,0xac,
+/* 0x005230 */ 0x11,0x2d,0xe4,0x0e,0x29,0xfe,0x70,0x92,0xa0,0x7f,0x44,0x16,0xd9,0x55,0x29,0xe3,
+/* 0x005240 */ 0x17,0x74,0x17,0x69,0xb6,0xab,0x98,0x71,0x02,0x76,0x85,0x9b,0x33,0xeb,0x11,0x54,
+/* 0x005250 */ 0x84,0xa1,0x2f,0xb1,0x32,0x3d,0x10,0x06,0xee,0xe8,0x38,0x52,0xa0,0x1a,0x84,0xac,
+/* 0x005260 */ 0x6e,0xd1,0x00,0x51,0x74,0x61,0xa1,0xa8,0x0f,0x21,0xc1,0x5d,0x8b,0x5c,0xff,0xc5,
+/* 0x005270 */ 0xef,0xae,0x7f,0xff,0x8d,0x8f,0xb2,0x0f,0x3f,0x7b,0xd3,0xa5,0x7b,0x7f,0xf2,0xe6,
+/* 0x005280 */ 0x47,0xbb,0x11,0x16,0x0a,0xcb,0xee,0xfd,0xcf,0xde,0xf4,0x6e,0x42,0xc0,0x95,0x0f,
+/* 0x005290 */ 0x61,0x8e,0x84,0xb7,0x4c,0x59,0x6c,0x27,0x4d,0x34,0x18,0x76,0x80,0xb2,0xd4,0x96,
+/* 0x0052a0 */ 0x26,0x8c,0x27,0x8e,0x34,0x50,0xf5,0x72,0xfd,0x2b,0x6f,0x9e,0xd3,0x1b,0x28,0x7d,
+/* 0x0052b0 */ 0x43,0x58,0xf4,0x97,0x28,0x4d,0xd7,0x0a,0x28,0x2f,0x7f,0xd9,0x61,0xf5,0x96,0x8e,
+/* 0x0052c0 */ 0x0d,0xe3,0x9b,0x0f,0x86,0x3e,0xb8,0xf7,0xb5,0x37,0xff,0x2d,0x89,0xb0,0x42,0x58,
+/* 0x0052d0 */ 0x92,0x3f,0x3b,0x18,0x3c,0x1c,0x78,0x11,0xa1,0x3c,0xff,0x9d,0xef,0x56,0x7d,0x6e,
+/* 0x0052e0 */ 0xf4,0xe7,0x67,0x1e,0x18,0x59,0xf4,0x10,0xaa,0xc1,0xbf,0x1c,0x44,0xf8,0x63,0x22,
+/* 0x0052f0 */ 0xea,0x70,0x0e,0xff,0x2d,0x10,0x9e,0xf0,0xde,0xfb,0x65,0x75,0xcd,0xc2,0x9f,0x41,
+/* 0x005300 */ 0x2b,0xaf,0xd1,0x3d,0x78,0xa0,0x00,0xc2,0xf2,0x0d,0xcb,0x85,0x66,0xb9,0x3d,0x81,
+/* 0x005310 */ 0x8a,0xd1,0xc6,0x7d,0x50,0x35,0x33,0xc8,0x29,0xeb,0x39,0xb4,0x2e,0x81,0x12,0x46,
+/* 0x005320 */ 0x71,0x12,0x91,0x2c,0x33,0x97,0xff,0x80,0x5c,0x6c,0x95,0xe5,0x42,0x79,0x7d,0xf6,
+/* 0x005330 */ 0x58,0x6e,0x3f,0x09,0x38,0x45,0xc0,0x9e,0x73,0xd2,0xed,0x39,0x45,0x8b,0x7c,0xbe,
+/* 0x005340 */ 0x52,0xcf,0x9a,0x09,0xca,0xd2,0x9c,0xb9,0x15,0x98,0x2e,0x15,0xbf,0xd4,0x85,0x93,
+/* 0x005350 */ 0xd3,0x1e,0x9a,0xa6,0xfd,0xa7,0x85,0x59,0xda,0xe7,0x9a,0xda,0x7f,0x0a,0x94,0x92,
+/* 0x005360 */ 0xdb,0xc8,0x27,0xb1,0xd9,0x9b,0x51,0x89,0xe6,0x61,0xb2,0x45,0x7c,0xd1,0x3c,0xca,
+/* 0x005370 */ 0x6f,0x76,0x8a,0x30,0xaf,0xf6,0xd7,0x8b,0x30,0xbf,0xf6,0xd7,0x4b,0x20,0xd5,0xdf,
+/* 0x005380 */ 0x9e,0xf6,0x6a,0x94,0xa5,0x80,0x53,0xfe,0x8c,0xe3,0x2a,0xd2,0x9a,0x35,0xf3,0xc9,
+/* 0x005390 */ 0x55,0x5f,0x7f,0x8d,0xc5,0x7f,0x02,0x69,0xdd,0x95,0x2b,0x57,0x9c,0x39,0xe0,0xff,
+/* 0x0053a0 */ 0x73,0xfe,0xd9,0xe2,0xe1,0x9e,0x99,0xe3,0xe1,0x14,0xc5,0x5d,0x82,0xeb,0xea,0x8f,
+/* 0x0053b0 */ 0xb3,0xc6,0xc3,0x3c,0x94,0xd7,0xe7,0x2a,0xe3,0xd5,0x27,0x15,0x0f,0xe7,0x9b,0xca,
+/* 0x0053c0 */ 0xda,0xff,0xa4,0x3c,0x0c,0x95,0x60,0x96,0xf6,0xf9,0x84,0xe2,0x21,0x94,0x80,0xbb,
+/* 0x0053d0 */ 0x87,0xae,0xb5,0xfc,0x59,0x1a,0xd2,0x8c,0x5e,0x5d,0xfb,0x9b,0x7c,0x9a,0xf6,0x9f,
+/* 0x0053e0 */ 0x25,0x1e,0x4a,0x6e,0x53,0x89,0x87,0x9f,0x9a,0xf8,0xf3,0x69,0xcb,0x7f,0x75,0xc9,
+/* 0x0053f0 */ 0xc2,0xbb,0x01,0xc5,0xfd,0x1b,0x0b,0x5c,0x5f,0x49,0x95,0x54,0x49,0x95,0x54,0x49,
+/* 0x005400 */ 0x95,0x54,0x49,0x95,0x54,0x49,0x95,0x54,0x49,0x95,0xf4,0x7f,0x39,0xb9,0xf7,0x0e,
+/* 0x005410 */ 0x8a,0x7b,0xef,0xf0,0xbf,0x5d,0x95,0x4a,0xaa,0xa4,0x4a,0xaa,0xa4,0x4a,0xaa,0xa4,
+/* 0x005420 */ 0x4a,0xaa,0xa4,0x4a,0xaa,0xa4,0x4a,0xfa,0x04,0x93,0x25,0x96,0xfe,0x86,0xe7,0x97,
+/* 0x005430 */ 0x5b,0xe0,0xce,0xc5,0xf3,0x59,0xc0,0xaf,0xfa,0xf7,0x84,0xfc,0x67,0x55,0x0b,0x72,
+/* 0x005440 */ 0x44,0x14,0xe7,0x95,0x19,0xfe,0xc2,0xe4,0x7c,0xdf,0x35,0xbe,0x7d,0x96,0x3a,0x4f,
+/* 0x005450 */ 0x9c,0xf5,0x5b,0xb9,0x53,0x6b,0x9c,0x1b,0xcf,0x12,0x96,0x3b,0x5d,0x3f,0x91,0x3b,
+/* 0x005460 */ 0x15,0xb8,0x90,0x3b,0x05,0x90,0x3c,0xbd,0x1d,0xe0,0x55,0x13,0x9e,0x3e,0x07,0x68,
+/* 0x005470 */ 0x27,0x3a,0xfe,0xb3,0x9e,0x9a,0x50,0xf8,0x9f,0x4f,0x98,0xb0,0xf7,0x1c,0x67,0x37,
+/* 0x005480 */ 0x9e,0x5d,0x0d,0x37,0x9e,0xfd,0x32,0x96,0x01,0x4e,0xee,0x34,0x60,0x39,0xca,0xea,
+/* 0x005490 */ 0xdc,0x29,0x85,0xed,0x39,0x4d,0xd9,0x13,0x67,0x29,0x7e,0x46,0xc3,0xbf,0xc4,0xca,
+/* 0x0054a0 */ 0x9d,0x16,0x65,0x2b,0x2c,0xfa,0x2b,0xb9,0xec,0x0d,0x58,0x36,0xb3,0xf6,0xfd,0xca,
+/* 0x0054b0 */ 0x0f,0x4f,0x9d,0x83,0x24,0x96,0xcd,0x73,0xa7,0xa9,0x7e,0x60,0x42,0x65,0xcf,0x4d,
+/* 0x0054c0 */ 0xf8,0x61,0xcf,0xb9,0xd6,0x3d,0xcf,0x9c,0x05,0xe8,0x3b,0xed,0x07,0xa8,0x01,0x56,
+/* 0x0054d0 */ 0x7f,0xea,0xbf,0x01,0xeb,0x35,0x70,0xd7,0x00,0x12,0x01,0x00,
diff --git a/ecos/packages/hal/arm/xscale/uE250/current/src/vga_support.c b/ecos/packages/hal/arm/xscale/uE250/current/src/vga_support.c
new file mode 100644
index 0000000..2235722
--- /dev/null
+++ b/ecos/packages/hal/arm/xscale/uE250/current/src/vga_support.c
@@ -0,0 +1,1448 @@
+//==========================================================================
+//
+// vga_support.c
+//
+// NMI uE250/uPCI - VGA support
+//
+//==========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//==========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): gthomas
+// Contributors: gthomas
+// Date: 2001-11-03
+// Description: Simple VGA support
+//####DESCRIPTIONEND####
+
+#include <pkgconf/hal.h>
+
+#include <cyg/infra/diag.h>
+#include <cyg/hal/hal_io.h> // IO macros
+#include <cyg/hal/hal_if.h> // Virtual vector support
+#include <cyg/hal/hal_arch.h> // Register state info
+#include <cyg/hal/hal_intr.h> // HAL interrupt macros
+
+#include <cyg/hal/vga_support.h>
+#include <cyg/hal/hal_cache.h>
+
+#include <cyg/hal/plx.h> // Localbus I/O
+
+#include <string.h>
+
+#ifdef CYGPKG_ISOINFRA
+# include <pkgconf/isoinfra.h>
+# ifdef CYGINT_ISO_STDIO_FORMATTED_IO
+# include <stdio.h> // sscanf
+# endif
+#endif
+
+#ifndef FALSE
+#define FALSE 0
+#define TRUE 1
+#endif
+
+// Logical layout
+#define VGA_WIDTH 640
+#define VGA_HEIGHT 480
+#define VGA_DEPTH 8
+
+static int bg = 0;
+static int fg = 1;
+
+static struct vga_info vga;
+
+struct VGA_ctlr {
+ unsigned short rev;
+ unsigned char enable;
+ unsigned char _fill1[13];
+ struct ADV471 {
+ unsigned short write_addr;
+ unsigned short data;
+ unsigned short pixel_read_mask;
+ unsigned short read_addr;
+ unsigned short overlay_data;
+ unsigned short _fill2[2];
+ unsigned short overlay_read_addr;
+ } clut;
+ unsigned char _fill3[0x100000-0x20];
+ unsigned char fb[1];
+};
+
+// Compute the location for a pixel within the framebuffer
+static cyg_uint8 *
+vga_fb(int row, int col)
+{
+ cyg_uint8 *res = (cyg_uint8 *)((char *)vga.fb+(row*vga.rlen)+(col*vga.stride));
+ return res;
+}
+
+void
+vga_on(bool enable)
+{
+ static bool on = false;
+ volatile struct VGA_ctlr *ctlr = vga.ctlr;
+
+ if (enable) {
+ if (!on) {
+ ctlr->enable = 1;
+ }
+ on = true;
+ } else {
+ ctlr->enable = 0;
+ on = false;
+ }
+}
+
+// Initialize VGA hardware
+
+static void
+vga_set_cmap(volatile struct VGA_ctlr *ctlr, int index,
+ int red, int green, int blue)
+{
+ if (index > 255) {
+ // Invalid index
+ return;
+ }
+ ctlr->clut.write_addr = index; // Select
+ ctlr->clut.data = red>>2;
+ ctlr->clut.data = green>>2;
+ ctlr->clut.data = blue>>2;
+}
+
+void
+vga_init(cyg_uint32 *addr)
+{
+ volatile struct VGA_ctlr *ctlr;
+
+ ctlr = (volatile struct VGA_ctlr *)addr;
+ vga.ctlr = (void*) ctlr;
+ vga.fb = ctlr->fb;
+ vga.bpp = VGA_DEPTH;
+ vga.height = VGA_HEIGHT;
+ vga.width = VGA_WIDTH;
+ vga.rlen = VGA_WIDTH;
+ vga.stride = 1;
+ vga.access_size = 1;
+ vga_set_cmap(ctlr, 0, 0x00, 0x00, 0x00); // 0 -> black
+ vga_set_cmap(ctlr, 1, 0xFF, 0xFF, 0xFF); // 1 -> white
+// diag_printf("VGA init at %p/%p\n", vga.ctlr, vga.fb);
+ ctlr->enable = 1;
+}
+
+// Get information about the frame buffer
+int
+vga_getinfo(struct vga_info *info)
+{
+ if (vga.bpp == 0) {
+ return 0; // VGA not initialized
+ }
+ *info = vga;
+ return 1; // Information valid
+}
+
+// Clear screen
+void
+vga_clear(void)
+{
+#if 0
+ cyg_uint32 *fb_row0, *fb_rown;
+ cyg_uint32 _bg = (bg<<16)|bg;
+
+ fb_row0 = vga_fb(0, 0);
+ fb_rown = vga_fb(vga_height, 0);
+ while (fb_row0 != fb_rown) {
+ *fb_row0++ = _bg;
+ }
+#endif
+}
+
+#ifdef CYGSEM_UE250_VGA_COMM
+
+//
+// Additional support for VGA/Keyboard as 'console' device
+//
+
+#ifdef CYGOPT_UE250_VGA_COMM_LOGO
+#include "banner.xpm"
+#endif
+#include "font.h"
+
+// Virtual screen info
+static int curX = 0; // Last used position
+static int curY = 0;
+//static int width = VGA_WIDTH / (FONT_WIDTH*NIBBLES_PER_PIXEL);
+//static int height = VGA_HEIGHT / (FONT_HEIGHT*SCREEN_SCALE);
+
+#define SCREEN_PAN 20
+#define SCREEN_WIDTH 80
+#define SCREEN_HEIGHT (VGA_HEIGHT/FONT_HEIGHT)
+#define VISIBLE_SCREEN_WIDTH (VGA_WIDTH/FONT_WIDTH)
+#define VISIBLE_SCREEN_HEIGHT (VGA_HEIGHT/FONT_HEIGHT)
+static char screen[SCREEN_HEIGHT][SCREEN_WIDTH];
+static int screen_height = SCREEN_HEIGHT;
+static int screen_width = SCREEN_WIDTH;
+static int screen_pan = 0;
+
+// Usable area on screen [logical pixel rows]
+static int screen_start = 0;
+static int screen_end = VGA_HEIGHT/FONT_HEIGHT;
+
+static bool cursor_enable = true;
+
+// Functions
+static void vga_drawc(cyg_uint8 c, int x, int y);
+
+static __inline__ void
+set_pixel(int row, int col, unsigned char val)
+{
+ unsigned char *pix = (unsigned char *)vga_fb(row, col);
+ *pix = val;
+}
+
+#ifdef CYGOPT_UE250_VGA_COMM_LOGO
+static int
+_hexdigit(char c)
+{
+ if ((c >= '0') && (c <= '9')) {
+ return c - '0';
+ } else {
+ if ((c >= 'A') && (c <= 'F')) {
+ return (c - 'A') + 0x0A;
+ } else {
+ if ((c >= 'a') && (c <= 'f')) {
+ return (c - 'a') + 0x0a;
+ }
+ }
+ }
+
+ return 0;
+}
+
+static int
+_hex(char *cp)
+{
+ return (_hexdigit(*cp)<<4) | _hexdigit(*(cp+1));
+}
+
+static void
+parse_color(char *cp, int *red, int *green, int *blue)
+{
+ *red = *green = *blue = 0xFF;
+ while (*cp && (*cp != 'c')) cp++;
+ if (cp) {
+ cp += 2;
+ if (*cp == '#') {
+ *red = _hex(cp+1);
+ *green = _hex(cp+3);
+ *blue = _hex(cp+5);
+ }
+ }
+}
+
+#ifndef CYGINT_ISO_STDIO_FORMATTED_IO
+static int
+get_int(unsigned char **_cp)
+{
+ char *cp = *_cp;
+ char c;
+ int val = 0;
+
+ while ((c = *cp++) && (c != ' ')) {
+ if ((c >= '0') && (c <= '9')) {
+ val = val * 10 + (c - '0');
+ } else {
+ return -1;
+ }
+ }
+ *_cp = cp;
+ return val;
+}
+#endif
+
+static int
+show_xpm(char *xpm[], int screen_pos)
+{
+ int i, row, col, offset;
+ unsigned char *cp;
+ int nrows, ncols, nclrs, cwid;
+ short color_index;
+ int red, green, blue;
+//#define HORRIBLY_SLOW_COLOR_MAPPING
+#ifdef HORRIBLY_SLOW_COLOR_MAPPING
+ bool color_match;
+ short cmap[256][2];
+ int j;
+#else
+ // Caution - this is very GIMP specific
+ short cmap[256][3]; // Enough room for 256 colors
+ short cmap_col, cmap_row;
+ unsigned char std_cmap[] = " .+";
+#endif
+
+ cp = xpm[0];
+#ifdef CYGINT_ISO_STDIO_FORMATTED_IO
+ if (sscanf(cp, "%d %d %d %d", &ncols, &nrows, &nclrs, &cwid) != 4) {
+#else
+ if (((ncols = get_int(&cp)) < 0) ||
+ ((nrows = get_int(&cp)) < 0) ||
+ ((nclrs = get_int(&cp)) < 0) ||
+ ((cwid = get_int(&cp)) < 0)) {
+
+#endif
+ diag_printf("Can't parse XPM data, sorry\n");
+ return 0;
+ }
+// diag_printf("%d rows, %d cols, %d colors %d chars/pixel\n", nrows, ncols, nclrs, cwid);
+ if (cwid > 2) {
+ diag_printf("Color map is too wide - %d\n", cwid);
+ return 0;
+ }
+
+ for (i = 0; i < 256; i++) {
+#ifdef HORRIBLY_SLOW_COLOR_MAPPING
+ cmap[i][0] = 0; cmap[i][1] = 0;
+#else
+ cmap[i][0] = 0; cmap[i][1] = 0; cmap[i][2] = 0;
+#endif
+ }
+ color_index = 0;
+ for (i = 0; i < nclrs; i++) {
+ cp = xpm[i+1];
+#ifdef HORRIBLY_SLOW_COLOR_MAPPING
+ for (j = 0; j < cwid; j++) {
+ cmap[color_index][j] = cp[j];
+ }
+#else
+ if (cwid == 1) {
+ cmap_col = 0;
+ } else {
+ for (cmap_col = 0; cmap_col < 3; cmap_col++) {
+ if (cp[1] == std_cmap[cmap_col]) {
+ break;
+ }
+ }
+ }
+ cmap_row = *cp;
+ cmap[cmap_row][cmap_col] = color_index;
+#endif
+ parse_color(cp+cwid, &red, &green, &blue);
+// diag_printf("Color[%d] = %02x/%02x/%02x\n", color_index, red, green, blue);
+ vga_set_cmap(vga.ctlr, color_index+2, red, green, blue);
+ color_index++;
+ }
+
+#ifdef CYGOPT_UE250_VGA_COMM_LOGO_TOP
+ offset = screen_pos;
+#else
+ offset = screen_pos-nrows;
+#endif
+ for (row = 0; row < nrows; row++) {
+ cp = xpm[nclrs+1+row];
+ for (col = 0; col < ncols; col++) {
+#ifdef HORRIBLY_SLOW_COLOR_MAPPING
+ // Horrible, but portable, way to map colors
+ for (color_index = 0; color_index < nclrs; color_index++) {
+ color_match = true;
+ for (j = 0; j < cwid; j++) {
+ if (cmap[color_index][j] != cp[j]) {
+ color_match = false;
+ }
+ }
+ if (color_match) {
+ break;
+ }
+ }
+#else
+ if (cwid == 1) {
+ cmap_col = 0;
+ } else {
+ for (cmap_col = 0; cmap_col < 3; cmap_col++) {
+ if (cp[1] == std_cmap[cmap_col]) {
+ break;
+ }
+ }
+ }
+ cmap_row = *cp;
+ color_index = cmap[cmap_row][cmap_col];
+#endif
+ set_pixel(row+offset, col, color_index+2);
+ cp += cwid;
+ }
+ }
+#ifdef CYGOPT_UE250_VGA_COMM_LOGO_TOP
+ screen_start = (nrows + (FONT_HEIGHT-1))/FONT_HEIGHT;
+ screen_end = VGA_HEIGHT/FONT_HEIGHT;
+ return offset+nrows;
+#else
+ screen_start = 0;
+ screen_height = offset / FONT_HEIGHT;
+ screen_end = screen_height;
+ return offset;
+#endif
+}
+#endif
+
+void
+vga_screen_clear(void)
+{
+ int row, col;
+#ifdef CYGOPT_UE250_VGA_COMM_LOGO
+ int pos;
+#endif
+
+ for (row = 0; row < screen_height; row++) {
+ for (col = 0; col < screen_width; col++) {
+ screen[row][col] = ' ';
+ vga_drawc(' ', col, row);
+ }
+ }
+#ifdef CYGOPT_UE250_VGA_COMM_LOGO
+ // Note: Row 0 seems to wrap incorrectly
+#ifdef CYGOPT_UE250_VGA_COMM_LOGO_TOP
+ pos = 0;
+#else
+ pos = (VGA_HEIGHT-1);
+#endif
+ show_xpm(banner_xpm, pos);
+#endif // CYGOPT_UE250_VGA_COMM_LOGO
+ curX = 0; curY = screen_start;
+ if (cursor_enable) {
+ vga_drawc(CURSOR_ON, curX-screen_pan, curY);
+ }
+}
+
+// Position cursor
+void
+vga_moveto(int X, int Y)
+{
+ if (cursor_enable) {
+ vga_drawc(screen[curY][curX], curX-screen_pan, curY);
+ }
+ if (X < 0) X = 0;
+ if (X >= screen_width) X = screen_width-1;
+ curX = X;
+ if (Y < screen_start) Y = screen_start;
+ if (Y >= screen_height) Y = screen_height-1;
+ curY = Y;
+ if (cursor_enable) {
+ vga_drawc(CURSOR_ON, curX-screen_pan, curY);
+ }
+}
+
+static unsigned long _bitmap[] = {
+#ifdef FONT_LEFT_TO_RIGHT
+ 0x00000000, 0x01000000, 0x00010000, 0x01010000,
+ 0x00000100, 0x01000100, 0x00010100, 0x01010100,
+ 0x00000001, 0x01000001, 0x00010001, 0x01010001,
+ 0x00000101, 0x01000101, 0x00010101, 0x01010101,
+#else
+ 0x00000000, 0x00000001, 0x00000100, 0x00000101,
+ 0x00010000, 0x00010001, 0x00010100, 0x00010101,
+ 0x01000000, 0x01000001, 0x01000100, 0x01000101,
+ 0x01010000, 0x01010001, 0x01010100, 0x01010101
+#endif
+};
+
+// Render a character at position (X,Y) with current background/foreground
+static void
+vga_drawc(cyg_uint8 c, int x, int y)
+{
+ cyg_uint8 bits;
+ int l, p;
+ int xoff, yoff;
+ unsigned long *pix;
+
+ if ((x < 0) || (x >= VISIBLE_SCREEN_WIDTH) ||
+ (y < 0) || (y >= screen_height)) return;
+ for (l = 0; l < FONT_HEIGHT; l++) {
+ bits = font_table[c-FIRST_CHAR][l];
+ yoff = y*FONT_HEIGHT + l;
+ xoff = x*FONT_WIDTH;
+#if 0 // Render font characters one bit at a time
+ for (p = 0; p < FONT_WIDTH; p++) {
+#ifdef FONT_LEFT_TO_RIGHT
+ set_pixel(yoff, xoff + p, (bits & 0x80) ? fg : bg);
+ bits <<= 1;
+#else
+ set_pixel(yoff, xoff + p, (bits & 0x01) ? fg : bg);
+ bits >>= 1;
+#endif
+ }
+#else // Render characters 4 bits at a time
+ pix = (unsigned long *)vga_fb(yoff, xoff);
+#ifdef FONT_LEFT_TO_RIGHT
+ *pix++ = _bitmap[(bits & 0xF0) >> 4];
+ *pix++ = _bitmap[(bits & 0x0F)];
+#else
+ *pix++ = _bitmap[(bits & 0x0F)];
+ *pix++ = _bitmap[(bits & 0xF0) >> 4];
+#endif
+#endif
+ }
+}
+
+static void
+vga_refresh(void)
+{
+ int row, col;
+
+ for (row = screen_start; row < screen_height; row++) {
+ for (col = 0; col < VISIBLE_SCREEN_WIDTH; col++) {
+ if ((col+screen_pan) < screen_width) {
+ vga_drawc(screen[row][col+screen_pan], col, row);
+ } else {
+ vga_drawc(' ', col, row);
+ }
+ }
+ }
+ if (cursor_enable) {
+ vga_drawc(CURSOR_ON, curX-screen_pan, curY);
+ }
+}
+
+static void
+vga_scroll(void)
+{
+ int col;
+ cyg_uint8 *c1;
+ cyg_uint32 *lc0, *lc1, *lcn;
+ cyg_uint32 *fb_row0, *fb_row1, *fb_rown;
+
+ // First scroll up the virtual screen
+#if ((SCREEN_WIDTH%4) != 0)
+#error Scroll code optimized for screen with multiple of 4 columns
+#endif
+ lc0 = (cyg_uint32 *)&screen[0][0];
+ lc1 = (cyg_uint32 *)&screen[1][0];
+ lcn = (cyg_uint32 *)&screen[screen_height][0];
+ while (lc1 != lcn) {
+ *lc0++ = *lc1++;
+ }
+ c1 = &screen[screen_height-1][0];
+ for (col = 0; col < screen_width; col++) {
+ *c1++ = 0x20;
+ }
+#if 0 // Scrolling like this is *relly* slow
+ fb_row0 = (cyg_uint32 *)vga_fb(screen_start*FONT_HEIGHT, 0);
+ fb_row1 = (cyg_uint32 *)vga_fb((screen_start+1)*FONT_HEIGHT, 0);
+ fb_rown = (cyg_uint32 *)vga_fb(screen_end*FONT_HEIGHT, 0);
+#if 0
+ while (fb_row1 != fb_rown) {
+ *fb_row0++ = *fb_row1++;
+ }
+#else
+ // Optimized ARM assembly "move" code
+ asm __volatile(
+ "mov r0,%0;"
+ "mov r1,%1;"
+ "mov r2,%2;"
+ "10: ldmia r1!,{r3-r6};"
+ "stmia r0!,{r3-r6};"
+ "ldmia r1!,{r3-r6};"
+ "stmia r0!,{r3-r6};"
+ "cmp r1,r2;"
+ "bne 10b"
+ :
+ : "r"(fb_row0), "r"(fb_row1), "r"(fb_rown)
+ : "r0","r1","r2","r3","r4","r5","r6"
+ );
+#endif
+ // Erase bottom line
+ for (col = 0; col < screen_width; col++) {
+ vga_drawc(' ', col, screen_end-1);
+ }
+#else // Clear & redraw is faster!
+ vga_refresh();
+#endif
+}
+
+// Draw one character at the current position
+void
+vga_putc(cyg_uint8 c)
+{
+ if (cursor_enable) {
+ vga_drawc(screen[curY][curX], curX-screen_pan, curY);
+ }
+ switch (c) {
+ case '\r':
+ curX = 0;
+ break;
+ case '\n':
+ curY++;
+ break;
+ case '\b':
+ curX--;
+ if (curX < 0) {
+ curY--;
+ if (curY < 0) curY = 0;
+ curX = screen_width-1;
+ }
+ break;
+ default:
+ if (((int)c < FIRST_CHAR) || ((int)c > LAST_CHAR)) c = '.';
+ screen[curY][curX] = c;
+ vga_drawc(c, curX-screen_pan, curY);
+ curX++;
+ if (curX == screen_width) {
+ curY++;
+ curX = 0;
+ }
+ }
+ if (curY >= screen_height) {
+ vga_scroll();
+ curY = (screen_height-1);
+ }
+ if (cursor_enable) {
+ vga_drawc(CURSOR_ON, curX-screen_pan, curY);
+ }
+}
+
+// Basic VGA 'printf()' support
+
+#include <stdarg.h>
+
+#define is_digit(c) ((c >= '0') && (c <= '9'))
+
+static int
+_cvt(unsigned long val, char *buf, long radix, char *digits)
+{
+ char temp[80];
+ char *cp = temp;
+ int length = 0;
+
+ if (val == 0) {
+ /* Special case */
+ *cp++ = '0';
+ } else {
+ while (val) {
+ *cp++ = digits[val % radix];
+ val /= radix;
+ }
+ }
+ while (cp != temp) {
+ *buf++ = *--cp;
+ length++;
+ }
+ *buf = '\0';
+ return (length);
+}
+
+static int
+vga_vprintf(void (*putc)(cyg_uint8), const char *fmt0, va_list ap)
+{
+ char c, sign, *cp;
+ int left_prec, right_prec, zero_fill, length, pad, pad_on_right;
+ char buf[32];
+ long val;
+
+ while ((c = *fmt0++)) {
+ cp = buf;
+ length = 0;
+ if (c == '%') {
+ c = *fmt0++;
+ left_prec = right_prec = pad_on_right = 0;
+ if (c == '-') {
+ c = *fmt0++;
+ pad_on_right++;
+ }
+ if (c == '0') {
+ zero_fill = TRUE;
+ c = *fmt0++;
+ } else {
+ zero_fill = FALSE;
+ }
+ while (is_digit(c)) {
+ left_prec = (left_prec * 10) + (c - '0');
+ c = *fmt0++;
+ }
+ if (c == '.') {
+ c = *fmt0++;
+ zero_fill++;
+ while (is_digit(c)) {
+ right_prec = (right_prec * 10) + (c - '0');
+ c = *fmt0++;
+ }
+ } else {
+ right_prec = left_prec;
+ }
+ sign = '\0';
+ switch (c) {
+ case 'd':
+ case 'x':
+ case 'X':
+ val = va_arg(ap, long);
+ switch (c) {
+ case 'd':
+ if (val < 0) {
+ sign = '-';
+ val = -val;
+ }
+ length = _cvt(val, buf, 10, "0123456789");
+ break;
+ case 'x':
+ length = _cvt(val, buf, 16, "0123456789abcdef");
+ break;
+ case 'X':
+ length = _cvt(val, buf, 16, "0123456789ABCDEF");
+ break;
+ }
+ break;
+ case 's':
+ cp = va_arg(ap, char *);
+ length = strlen(cp);
+ break;
+ case 'c':
+ c = va_arg(ap, long /*char*/);
+ (*putc)(c);
+ continue;
+ default:
+ (*putc)('?');
+ }
+ pad = left_prec - length;
+ if (sign != '\0') {
+ pad--;
+ }
+ if (zero_fill) {
+ c = '0';
+ if (sign != '\0') {
+ (*putc)(sign);
+ sign = '\0';
+ }
+ } else {
+ c = ' ';
+ }
+ if (!pad_on_right) {
+ while (pad-- > 0) {
+ (*putc)(c);
+ }
+ }
+ if (sign != '\0') {
+ (*putc)(sign);
+ }
+ while (length-- > 0) {
+ (*putc)(c = *cp++);
+ if (c == '\n') {
+ (*putc)('\r');
+ }
+ }
+ if (pad_on_right) {
+ while (pad-- > 0) {
+ (*putc)(' ');
+ }
+ }
+ } else {
+ (*putc)(c);
+ if (c == '\n') {
+ (*putc)('\r');
+ }
+ }
+ }
+
+ // FIXME
+ return 0;
+}
+
+int
+_vga_printf(char const *fmt, ...)
+{
+ int ret;
+ va_list ap;
+
+ va_start(ap, fmt);
+ ret = vga_vprintf(vga_putc, fmt, ap);
+ va_end(ap);
+ return (ret);
+}
+
+//
+// Support VGA/keyboard (PS2) as a virtual I/O channel
+// Adapted from i386/pcmb_screen.c
+//
+
+
+//-----------------------------------------------------------------------------
+// Keyboard definitions
+
+#define KBDATAPORT 0x0060 // data I/O port
+#define KBCMDPORT 0x0064 // command port (write)
+#define KBSTATPORT 0x0064 // status port (read)
+
+#define KBINRDY 0x01
+#define KBOUTRDY 0x02
+#define KBTXTO 0x40 // Transmit timeout - nothing there
+#define KBTEST 0xAB
+
+// Scan codes
+
+#define LSHIFT 0x2a
+#define RSHIFT 0x36
+#define CTRL 0x1d
+#define ALT 0x38
+#define CAPS 0x3a
+#define NUMS 0x45
+
+#define BREAK 0x80
+
+// Bits for KBFlags
+
+#define KBNormal 0x0000
+#define KBShift 0x0001
+#define KBCtrl 0x0002
+#define KBAlt 0x0004
+#define KBIndex 0x0007 // mask for the above
+
+#define KBExtend 0x0010
+#define KBAck 0x0020
+#define KBResend 0x0040
+#define KBShiftL (0x0080 | KBShift)
+#define KBShiftR (0x0100 | KBShift)
+#define KBCtrlL (0x0200 | KBCtrl)
+#define KBCtrlR (0x0400 | KBCtrl)
+#define KBAltL (0x0800 | KBAlt)
+#define KBAltR (0x1000 | KBAlt)
+#define KBCapsLock 0x2000
+#define KBNumLock 0x4000
+
+#define KBArrowUp 0x48
+#define KBArrowRight 0x4D
+#define KBArrowLeft 0x4B
+#define KBArrowDown 0x50
+
+//-----------------------------------------------------------------------------
+// Keyboard Variables
+
+static int KBFlags = 0;
+
+static CYG_BYTE KBPending = 0xFF;
+
+static CYG_BYTE KBScanTable[128][4] = {
+// Normal Shift Control Alt
+// 0x00
+ { 0xFF, 0xFF, 0xFF, 0xFF, },
+ { 0x1b, 0x1b, 0x1b, 0xFF, },
+ { '1', '!', 0xFF, 0xFF, },
+ { '2', '"', 0xFF, 0xFF, },
+ { '3', '#', 0xFF, 0xFF, },
+ { '4', '$', 0xFF, 0xFF, },
+ { '5', '%', 0xFF, 0xFF, },
+ { '6', '^', 0xFF, 0xFF, },
+ { '7', '&', 0xFF, 0xFF, },
+ { '8', '*', 0xFF, 0xFF, },
+ { '9', '(', 0xFF, 0xFF, },
+ { '0', ')', 0xFF, 0xFF, },
+ { '-', '_', 0xFF, 0xFF, },
+ { '=', '+', 0xFF, 0xFF, },
+ { '\b', '\b', 0xFF, 0xFF, },
+ { '\t', '\t', 0xFF, 0xFF, },
+// 0x10
+ { 'q', 'Q', 0x11, 0xFF, },
+ { 'w', 'W', 0x17, 0xFF, },
+ { 'e', 'E', 0x05, 0xFF, },
+ { 'r', 'R', 0x12, 0xFF, },
+ { 't', 'T', 0x14, 0xFF, },
+ { 'y', 'Y', 0x19, 0xFF, },
+ { 'u', 'U', 0x15, 0xFF, },
+ { 'i', 'I', 0x09, 0xFF, },
+ { 'o', 'O', 0x0F, 0xFF, },
+ { 'p', 'P', 0x10, 0xFF, },
+ { '[', '{', 0x1b, 0xFF, },
+ { ']', '}', 0x1d, 0xFF, },
+ { '\r', '\r', '\n', 0xFF, },
+ { 0xFF, 0xFF, 0xFF, 0xFF, },
+ { 'a', 'A', 0x01, 0xFF, },
+ { 's', 'S', 0x13, 0xFF, },
+// 0x20
+ { 'd', 'D', 0x04, 0xFF, },
+ { 'f', 'F', 0x06, 0xFF, },
+ { 'g', 'G', 0x07, 0xFF, },
+ { 'h', 'H', 0x08, 0xFF, },
+ { 'j', 'J', 0x0a, 0xFF, },
+ { 'k', 'K', 0x0b, 0xFF, },
+ { 'l', 'L', 0x0c, 0xFF, },
+ { ';', ':', 0xFF, 0xFF, },
+ { 0x27, '@', 0xFF, 0xFF, },
+ { '#', '~', 0xFF, 0xFF, },
+ { '`', '~', 0xFF, 0xFF, },
+ { '\\', '|', 0x1C, 0xFF, },
+ { 'z', 'Z', 0x1A, 0xFF, },
+ { 'x', 'X', 0x18, 0xFF, },
+ { 'c', 'C', 0x03, 0xFF, },
+ { 'v', 'V', 0x16, 0xFF, },
+// 0x30
+ { 'b', 'B', 0x02, 0xFF, },
+ { 'n', 'N', 0x0E, 0xFF, },
+ { 'm', 'M', 0x0D, 0xFF, },
+ { ',', '<', 0xFF, 0xFF, },
+ { '.', '>', 0xFF, 0xFF, },
+ { '/', '?', 0xFF, 0xFF, },
+ { 0xFF, 0xFF, 0xFF, 0xFF, },
+ { 0xFF, 0xFF, 0xFF, 0xFF, },
+ { 0xFF, 0xFF, 0xFF, 0xFF, },
+ { ' ', ' ', ' ', ' ', },
+ { 0xFF, 0xFF, 0xFF, 0xFF, },
+ { 0xF1, 0xE1, 0xFF, 0xFF, },
+ { 0xF2, 0xE2, 0xFF, 0xFF, },
+ { 0xF3, 0xE3, 0xFF, 0xFF, },
+ { 0xF4, 0xE4, 0xFF, 0xFF, },
+ { 0xF5, 0xE5, 0xFF, 0xFF, },
+// 0x40
+ { 0xFF, 0xFF, 0xFF, 0xFF, },
+ { 0xFF, 0xFF, 0xFF, 0xFF, },
+ { 0xFF, 0xFF, 0xFF, 0xFF, },
+ { 0xFF, 0xFF, 0xFF, 0xFF, },
+ { 0xFF, 0xFF, 0xFF, 0xFF, },
+ { 0xFF, 0xFF, 0xFF, 0xFF, },
+ { 0xFF, 0xFF, 0xFF, 0xFF, },
+ { 0xFF, 0xFF, 0xFF, 0xFF, },
+
+ { 0x15, 0x15, 0x15, 0x15, },
+ { 0x10, 0x10, 0x10, 0x10, },
+ { 0xFF, 0xFF, 0xFF, 0xFF, },
+ { 0xFF, 0xFF, 0xFF, 0xFF, },
+ { 0xFF, 0xFF, 0xFF, 0xFF, },
+ { 0xFF, 0xFF, 0xFF, 0xFF, },
+ { 0xFF, 0xFF, 0xFF, 0xFF, },
+ { 0xFF, 0xFF, 0xFF, 0xFF, },
+// 0x50
+ { 0x04, 0x04, 0x04, 0x04, },
+ { 0x0e, 0x0e, 0x0e, 0x0e, },
+ { 0xFF, 0xFF, 0xFF, 0xFF, },
+ { 0xFF, 0xFF, 0xFF, 0xFF, },
+ { 0xFF, 0xFF, 0xFF, 0xFF, },
+ { 0xFF, 0xFF, 0xFF, 0xFF, },
+ { 0xFF, 0xFF, 0xFF, 0xFF, },
+ { 0xFF, 0xFF, 0xFF, 0xFF, },
+ { 0xFF, 0xFF, 0xFF, 0xFF, },
+ { 0xFF, 0xFF, 0xFF, 0xFF, },
+ { 0xFF, 0xFF, 0xFF, 0xFF, },
+ { 0xFF, 0xFF, 0xFF, 0xFF, },
+ { 0xFF, 0xFF, 0xFF, 0xFF, },
+ { 0xFF, 0xFF, 0xFF, 0xFF, },
+ { 0xFF, 0xFF, 0xFF, 0xFF, },
+ { 0xFF, 0xFF, 0xFF, 0xFF, },
+// 0x60
+ { 0xFF, 0xFF, 0xFF, 0xFF, },
+ { 0xFF, 0xFF, 0xFF, 0xFF, },
+ { 0xFF, 0xFF, 0xFF, 0xFF, },
+ { 0xFF, 0xFF, 0xFF, 0xFF, },
+ { 0xFF, 0xFF, 0xFF, 0xFF, },
+ { 0xFF, 0xFF, 0xFF, 0xFF, },
+ { 0xFF, 0xFF, 0xFF, 0xFF, },
+ { 0xFF, 0xFF, 0xFF, 0xFF, },
+ { 0xFF, 0xFF, 0xFF, 0xFF, },
+ { 0xFF, 0xFF, 0xFF, 0xFF, },
+ { 0xFF, 0xFF, 0xFF, 0xFF, },
+ { 0xFF, 0xFF, 0xFF, 0xFF, },
+ { 0xFF, 0xFF, 0xFF, 0xFF, },
+ { 0xFF, 0xFF, 0xFF, 0xFF, },
+ { 0xFF, 0xFF, 0xFF, 0xFF, },
+ { 0xFF, 0xFF, 0xFF, 0xFF, },
+// 0x70
+ { 0xFF, 0xFF, 0xFF, 0xFF, },
+ { 0xFF, 0xFF, 0xFF, 0xFF, },
+ { 0xFF, 0xFF, 0xFF, 0xFF, },
+ { 0xFF, 0xFF, 0xFF, 0xFF, },
+ { 0xFF, 0xFF, 0xFF, 0xFF, },
+ { 0xFF, 0xFF, 0xFF, 0xFF, },
+ { 0xFF, 0xFF, 0xFF, 0xFF, },
+ { 0xFF, 0xFF, 0xFF, 0xFF, },
+ { 0xFF, 0xFF, 0xFF, 0xFF, },
+ { 0xFF, 0xFF, 0xFF, 0xFF, },
+ { 0xFF, 0xFF, 0xFF, 0xFF, },
+ { 0xFF, 0xFF, 0xFF, 0xFF, },
+ { 0xFF, 0xFF, 0xFF, 0xFF, },
+ { 0xFF, 0xFF, 0xFF, 0xFF, },
+ { 0xFF, 0xFF, 0xFF, 0xFF, },
+ { 0xFF, 0xFF, 0xFF, 0xFF, },
+};
+
+static int KBIndexTab[8] = { 0, 1, 2, 2, 3, 3, 3, 3 };
+
+//-----------------------------------------------------------------------------
+
+static __inline__ cyg_uint8
+inb(cyg_uint32 port)
+{
+ cyg_uint8 val;
+ val = localbus_readl(port<<2);
+ return val;
+}
+
+static __inline__ void
+outb(cyg_uint32 port, cyg_uint8 val)
+{
+ localbus_writel(val, port<<2);
+}
+
+static cyg_bool
+KeyboardInit(void)
+{
+ unsigned char c, s;
+
+ /* flush input queue */
+ while ((inb(KBSTATPORT) & KBINRDY)) {
+ (void)inb(KBDATAPORT);
+ }
+
+ /* Send self-test - controller local */
+ while (inb(KBSTATPORT) & KBOUTRDY) c = inb(KBDATAPORT);
+ outb(KBCMDPORT,0xAA);
+ while ((inb(KBSTATPORT) & KBINRDY) == 0) ; /* wait input ready */
+ if ((c = inb(KBDATAPORT)) != 0x55) {
+#ifdef DEBUG_KBD_INIT
+ diag_printf("Keyboard self test failed - result: %x\n", c);
+#endif
+ return false;
+ }
+
+ /* Enable interrupts and keyboard controller */
+ while (inb(KBSTATPORT) & KBOUTRDY) ;
+ outb(KBCMDPORT,0x60);
+ while (inb(KBSTATPORT) & KBOUTRDY) ;
+ outb(KBCMDPORT,0x45);
+ CYGACC_CALL_IF_DELAY_US(10000); // 10ms
+
+ while (inb(KBSTATPORT) & KBOUTRDY) ;
+ outb(KBCMDPORT,0xAE); // Enable keyboard
+
+ /* See if a keyboard is connected */
+ while (inb(KBSTATPORT) & KBOUTRDY) ;
+ outb(KBDATAPORT,0xFF);
+ while (((s = inb(KBSTATPORT)) & (KBINRDY|KBTXTO)) == 0) ; /* wait input ready */
+ if ((s & KBTXTO) || ((c = inb(KBDATAPORT)) != 0xFA)) {
+#ifdef DEBUG_KBD_INIT
+ diag_printf("Keyboard reset failed - no ACK: %x, stat: %x\n", c, s);
+#endif
+ return false;
+ }
+ while (((s = inb(KBSTATPORT)) & KBINRDY) == 0) ; /* wait input ready */
+ if ((s & KBTXTO) || ((c = inb(KBDATAPORT)) != 0xAA)) {
+#ifdef DEBUG_KBD_INIT
+ diag_printf("Keyboard reset failed - bad code: %x, stat: %x\n", c, s);
+#endif
+ return false;
+ }
+
+ // Set scan mode
+ while (inb(KBSTATPORT) & KBOUTRDY) ;
+ outb(KBCMDPORT,0x20);
+ while ((inb(KBSTATPORT) & KBINRDY) == 0) ; /* wait input ready */
+ if (! (inb(KBDATAPORT) & 0x40)) {
+ /*
+ * Quote from PS/2 System Reference Manual:
+ *
+ * "Address hex 0060 and address hex 0064 should be
+ * written only when the input-buffer-full bit and
+ * output-buffer-full bit in the Controller Status
+ * register are set 0." (KBINRDY and KBOUTRDY)
+ */
+
+ while (inb(KBSTATPORT) & (KBINRDY | KBOUTRDY)) ;
+ outb(KBDATAPORT,0xF0);
+ while (inb(KBSTATPORT) & (KBINRDY | KBOUTRDY)) ;
+ outb(KBDATAPORT,0x01);
+ }
+
+ KBFlags = 0;
+ return true;
+} /* KeyboardInit */
+
+//-----------------------------------------------------------------------------
+
+static CYG_BYTE
+KeyboardAscii(CYG_BYTE scancode)
+{
+ CYG_BYTE ascii = 0xFF;
+
+ // Start by handling all shift/ctl keys:
+
+ switch( scancode ) {
+ case 0xe0:
+ KBFlags |= KBExtend;
+ return 0xFF;
+
+ case 0xfa:
+ KBFlags |= KBAck;
+ return 0xFF;
+
+ case 0xfe:
+ KBFlags |= KBResend;
+ return 0xFF;
+
+ case LSHIFT:
+ KBFlags |= KBShiftL;
+ return 0xFF;
+
+ case LSHIFT | BREAK:
+ KBFlags &= ~KBShiftL;
+ return 0xFF;
+
+ case RSHIFT:
+ KBFlags |= KBShiftR;
+ return 0xFF;
+
+ case RSHIFT | BREAK:
+ KBFlags &= ~KBShiftR;
+ return 0xFF;
+
+ case CTRL:
+ if( KBFlags & KBExtend )
+ {
+ KBFlags |= KBCtrlR;
+ KBFlags &= ~KBExtend;
+ }
+ else KBFlags |= KBCtrlL;
+ return 0xFF;
+
+ case CTRL | BREAK:
+ if( KBFlags & KBExtend )
+ {
+ KBFlags &= ~KBCtrlR;
+ KBFlags &= ~KBExtend;
+ }
+ else KBFlags &= ~KBCtrlL;
+ return 0xFF;
+
+
+ case ALT:
+ if( KBFlags & KBExtend )
+ {
+ KBFlags |= KBAltR;
+ KBFlags &= ~KBExtend;
+ }
+ else KBFlags |= KBAltL;
+ return 0xFF;
+
+ case ALT | BREAK:
+ if( KBFlags & KBExtend )
+ {
+ KBFlags &= ~KBAltR;
+ KBFlags &= ~KBExtend;
+ }
+ else KBFlags &= ~KBAltL;
+ return 0xFF;
+
+ case CAPS:
+ KBFlags ^= KBCapsLock;
+ case CAPS | BREAK:
+ return 0xFF;
+
+ case NUMS:
+ KBFlags ^= KBNumLock;
+ case NUMS | BREAK:
+ return 0xFF;
+
+ case KBArrowUp:
+ case KBArrowDown:
+ screen_pan = 0;
+ vga_refresh();
+ break;
+ case KBArrowLeft:
+ screen_pan -= SCREEN_PAN;
+ if (screen_pan < 0) screen_pan = 0;
+ vga_refresh();
+ break;
+ case KBArrowRight:
+ screen_pan += SCREEN_PAN;
+ if (screen_pan > (SCREEN_WIDTH-SCREEN_PAN))
+ screen_pan = SCREEN_WIDTH-SCREEN_PAN;
+ vga_refresh();
+ break;
+
+ }
+
+ // Clear Extend flag if set
+ KBFlags &= ~KBExtend;
+
+ // Ignore all other BREAK codes
+ if( scancode & 0x80 ) return 0xFF;
+
+ // Here the scancode is for something we can turn
+ // into an ASCII value
+
+ ascii = KBScanTable[scancode & 0x7F][KBIndexTab[KBFlags & KBIndex]];
+
+ return ascii;
+
+} /* KeyboardAscii */
+
+//-----------------------------------------------------------------------------
+
+static int
+KeyboardTest(void)
+{
+ // If there is a pending character, return True
+ if( KBPending != 0xFF ) return true;
+
+ // If there is something waiting at the port, get it
+ for(;;) {
+ CYG_BYTE stat, code;
+ CYG_BYTE c;
+
+ stat = inb(KBSTATPORT);
+
+ if( (stat & KBINRDY) == 0 )
+ break;
+
+ code = inb(KBDATAPORT);
+
+ // Translate to ASCII
+ c = KeyboardAscii(code);
+
+ // if it is a real ASCII char, save it and
+ // return True.
+ if( c != 0xFF ) {
+ KBPending = c;
+ return true;
+ }
+ }
+
+ // Otherwise return False
+ return false;
+
+} /* KeyboardTest */
+
+char
+KeyboardChar(void)
+{
+ char c = KBPending;
+ KBPending = 0xFF;
+ return c;
+}
+
+static int _timeout = 500;
+
+static cyg_bool
+vga_comm_getc_nonblock(void* __ch_data, cyg_uint8* ch)
+{
+ if( !KeyboardTest() )
+ return false;
+ *ch = KBPending;
+ KBPending = 0xFF;
+ return true;
+}
+
+static cyg_uint8
+vga_comm_getc(void* __ch_data)
+{
+ cyg_uint8 ch;
+
+ while (!vga_comm_getc_nonblock(__ch_data, &ch)) ;
+ return ch;
+}
+
+static void
+vga_comm_putc(void* __ch_data, cyg_uint8 c)
+{
+ vga_putc(c);
+}
+
+static void
+vga_comm_write(void* __ch_data, const cyg_uint8* __buf, cyg_uint32 __len)
+{
+#if 0
+ CYGARC_HAL_SAVE_GP();
+
+ while(__len-- > 0)
+ vga_comm_putc(__ch_data, *__buf++);
+
+ CYGARC_HAL_RESTORE_GP();
+#endif
+}
+
+static void
+vga_comm_read(void* __ch_data, cyg_uint8* __buf, cyg_uint32 __len)
+{
+#if 0
+ CYGARC_HAL_SAVE_GP();
+
+ while(__len-- > 0)
+ *__buf++ = vga_comm_getc(__ch_data);
+
+ CYGARC_HAL_RESTORE_GP();
+#endif
+}
+
+static cyg_bool
+vga_comm_getc_timeout(void* __ch_data, cyg_uint8* ch)
+{
+ int delay_count;
+ cyg_bool res;
+
+ delay_count = _timeout * 2; // delay in .5 ms steps
+ for(;;) {
+ res = vga_comm_getc_nonblock(__ch_data, ch);
+ if (res || 0 == delay_count--)
+ break;
+ CYGACC_CALL_IF_DELAY_US(500);
+ }
+ return res;
+}
+
+static int
+vga_comm_control(void *__ch_data, __comm_control_cmd_t __func, ...)
+{
+ static int vector = 0;
+ int ret = -1;
+ static int irq_state = 0;
+
+ CYGARC_HAL_SAVE_GP();
+
+ switch (__func) {
+ case __COMMCTL_IRQ_ENABLE:
+ ret = irq_state;
+ irq_state = 1;
+ break;
+ case __COMMCTL_IRQ_DISABLE:
+ ret = irq_state;
+ irq_state = 0;
+ break;
+ case __COMMCTL_DBG_ISR_VECTOR:
+ ret = vector;
+ break;
+ case __COMMCTL_SET_TIMEOUT:
+ {
+ va_list ap;
+
+ va_start(ap, __func);
+
+ ret = _timeout;
+ _timeout = va_arg(ap, cyg_uint32);
+
+ va_end(ap);
+ break;
+ }
+ case __COMMCTL_FLUSH_OUTPUT:
+ ret = 0;
+ break;
+ default:
+ break;
+ }
+ CYGARC_HAL_RESTORE_GP();
+ return ret;
+}
+
+static int
+vga_comm_isr(void *__ch_data, int* __ctrlc,
+ CYG_ADDRWORD __vector, CYG_ADDRWORD __data)
+{
+#if 0
+ char ch;
+
+ cyg_drv_interrupt_acknowledge(__vector);
+ *__ctrlc = 0;
+ if (vga_comm_getc_nonblock(__ch_data, &ch)) {
+ if (ch == 0x03) {
+ *__ctrlc = 1;
+ }
+ }
+ return CYG_ISR_HANDLED;
+#else
+ return 0;
+#endif
+}
+
+void
+vga_comm_init(cyg_uint32 *addr)
+{
+ static int init = 0;
+
+ if (!init) {
+ hal_virtual_comm_table_t* comm;
+ int cur = CYGACC_CALL_IF_SET_CONSOLE_COMM(CYGNUM_CALL_IF_SET_COMM_ID_QUERY_CURRENT);
+
+ init = 1;
+ if (!KeyboardInit()) {
+ // No keyboard - no VGA/CRT display
+ return;
+ }
+
+ // Initialize screen
+ cursor_enable = true;
+ vga_init(addr);
+ vga_on(true);
+ vga_screen_clear();
+
+ // Setup procs in the vector table
+ CYGACC_CALL_IF_SET_CONSOLE_COMM(1); // FIXME - should be controlled by CDL
+ comm = CYGACC_CALL_IF_CONSOLE_PROCS();
+ //CYGACC_COMM_IF_CH_DATA_SET(*comm, chan);
+ CYGACC_COMM_IF_WRITE_SET(*comm, vga_comm_write);
+ CYGACC_COMM_IF_READ_SET(*comm, vga_comm_read);
+ CYGACC_COMM_IF_PUTC_SET(*comm, vga_comm_putc);
+ CYGACC_COMM_IF_GETC_SET(*comm, vga_comm_getc);
+ CYGACC_COMM_IF_CONTROL_SET(*comm, vga_comm_control);
+ CYGACC_COMM_IF_DBG_ISR_SET(*comm, vga_comm_isr);
+ CYGACC_COMM_IF_GETC_TIMEOUT_SET(*comm, vga_comm_getc_timeout);
+
+ // Restore original console
+ CYGACC_CALL_IF_SET_CONSOLE_COMM(cur);
+ }
+}
+
+#ifdef CYGPKG_REDBOOT
+#include <redboot.h>
+
+// Get here when RedBoot is idle. If it's been long enough, then
+// dim the VGA. The problem is - how to determine other activities
+// so at this doesn't get in the way. In the default case, this will
+// be called from RedBoot every 10ms (CYGNUM_REDBOOT_CLI_IDLE_TIMEOUT)
+
+#define MAX_IDLE_TIME (30*100)
+
+static void
+idle(bool is_idle)
+{
+ static int idle_time = 0;
+ static bool was_idled = false;
+
+ if (is_idle) {
+ if (!was_idled) {
+ if (++idle_time == MAX_IDLE_TIME) {
+ was_idled = true;
+ vga_on(false);
+ }
+ }
+ } else {
+ idle_time = 0;
+ if (was_idled) {
+ was_idled = false;
+ vga_on(true);
+ }
+ }
+}
+
+RedBoot_idle(idle, RedBoot_AFTER_NETIO);
+#endif
+#endif
diff --git a/ecos/packages/hal/arm/xscale/uE250/current/src/xilinx-load.c b/ecos/packages/hal/arm/xscale/uE250/current/src/xilinx-load.c
new file mode 100644
index 0000000..9cca1ae
--- /dev/null
+++ b/ecos/packages/hal/arm/xscale/uE250/current/src/xilinx-load.c
@@ -0,0 +1,430 @@
+//==========================================================================
+//
+// xilinx-load.c
+//
+// FPGA support for NMI uEngine uE250 PCI
+//
+//==========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 2003 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//==========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): David Mazur <david@mind.be>
+// Contributors: gthomas
+// Date: 2003-02-20
+// Purpose: FPGA support
+// Description:
+//
+//####DESCRIPTIONEND####
+//
+//========================================================================*/
+
+#include <pkgconf/hal.h>
+#include <pkgconf/system.h>
+#include CYGBLD_HAL_PLATFORM_H
+#include CYGHWR_MEMORY_LAYOUT_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/infra/diag.h> // diagnostic printing
+
+#include <cyg/hal/hal_io.h> // IO macros
+#include <cyg/hal/hal_if.h> // calling interface API
+#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/io/pci_hw.h>
+#include <cyg/io/pci.h>
+
+#include <cyg/hal/plx.h>
+
+#define FPGA_PROG 0x00020000
+#define FPGA_INIT 0x00000002
+#define FPGA_DONE 0x00080000
+
+#define _FPGA_PROG_BASE 0x0c000000
+#define FPGA_PROG_BASE (*((volatile cyg_uint32 *)(_FPGA_PROG_BASE)))
+
+#define FPGA_DONE_DRV 0x8
+#define FPGA_INIT_DRV 0x10
+#define FPGA_WRITE 0x20
+
+#define VGA_PROG_CTRL 0x4008
+#define VGA_PROG_DATA 0x400C
+
+#define VGA_DONE 0x1
+#define VGA_INIT 0x2
+#define VGA_PROG 0x4
+#define VGA_DONE_DRV 0x8
+#define VGA_INIT_DRV 0x10
+#define VGA_WRITE 0x20
+
+
+#include <cyg/compress/zlib.h>
+
+extern char _end;
+
+static z_stream stream;
+
+#define FEEDBACK_COUNT 16
+#define ZCHAR_BUF_SIZE 256
+struct _zchar_info {
+ char buf[ZCHAR_BUF_SIZE];
+ char *ptr;
+ int avail;
+ int feedback;
+ int total;
+};
+
+// Internal allocator for decompression - just use bottom of heap
+// which will be reclaimed by eCos once the system is initialized
+static void *
+_zcalloc(void *opaque, unsigned int items, unsigned int size)
+{
+ static char *ptr = (char *)&_end;
+ char *res = ptr;
+
+// diag_printf("%s(%p,%d,%d) = %p\n", __FUNCTION__, opaque, items, size, res);
+ ptr += (size*items);
+ return res;
+}
+
+static void
+_zcfree(void *opaque, void *ptr)
+{
+// diag_printf("%s(%p,%p)\n", __FUNCTION__, opaque, ptr);
+}
+
+static int
+_zchar(void)
+{
+ int err;
+ struct _zchar_info *info = (struct _zchar_info *)stream.opaque;
+ static char spin[] = "|/-\\|-";
+ static int tick = 0;
+
+ if (info->avail == 0) {
+ stream.next_out = info->buf;
+ stream.avail_out = sizeof(info->buf);
+ info->ptr = info->buf;
+ err = inflate(&stream, Z_SYNC_FLUSH);
+ info->avail = (char *)stream.next_out - info->buf;
+ if (--info->feedback == 0) {
+ diag_printf("%c\b", spin[tick++]);
+ if (tick >= (sizeof(spin)-1)) {
+ tick = 0;
+ }
+ info->feedback = FEEDBACK_COUNT;
+ }
+ }
+ if (info->avail) {
+ info->avail--;
+ info->total++;
+ return *(info->ptr)++;
+ } else {
+ // End of data stream
+ return -1;
+ }
+}
+
+/**
+ * A little bit swapping function, necessary due to the xilinx bit file format.
+ */
+static const cyg_uint8 _swapped[] = {
+ 0x00, 0x08, 0x04, 0x0C, 0x02, 0x0A, 0x06, 0x0E,
+ 0x01, 0x09, 0x05, 0x0D, 0x03, 0x0B, 0x07, 0x0F
+};
+
+static cyg_uint8
+bitswap(cyg_uint8 byte)
+{
+ cyg_uint8 _new = (_swapped[byte & 0x0F] << 4) | (_swapped[(byte >> 4) & 0x0F]);
+ return _new;
+}
+
+typedef int _bitfile_fun(void);
+typedef void _download_fun(_bitfile_fun *_bitfile);
+
+/**
+ * Gets the tag at given location in the bitfile.
+ */
+static cyg_uint8
+bitfile_get_tag(_bitfile_fun *_bitfile)
+{
+ return (*_bitfile)();
+}
+
+static cyg_uint16
+bitfile_get_len16(_bitfile_fun *_bitfile)
+{
+ cyg_uint16 length;
+
+ length = (*_bitfile)() << 8;
+ length |= (*_bitfile)();
+
+ return length;
+}
+
+static int
+bitfile_get_len32(_bitfile_fun *_bitfile)
+{
+ cyg_uint32 length;
+
+ length = (*_bitfile)() << 24;
+ length |= (*_bitfile)() << 16;
+ length |= (*_bitfile)() << 8;
+ length |= (*_bitfile)();
+
+ return length;
+}
+
+/**
+ * Process a string tag.
+ */
+static void
+bitfile_process_string_tag(char *description, _bitfile_fun *_bitfile)
+{
+ int len,i;
+
+ len = bitfile_get_len16(_bitfile);
+ diag_printf(description);
+ for (i = 0; i < len; i++) {
+ diag_printf("%c", (*_bitfile)());
+ }
+}
+
+/**
+ * Process the 'e' tag in the bit file, which is the actual code that is to
+ * be programmed on the fpga.
+ */
+static void
+bitfile_process_tag_e(_bitfile_fun *_bitfile)
+{
+ int len,count,i;
+ cyg_uint8 byte;
+ cyg_uint32 word;
+
+ len = bitfile_get_len32(_bitfile);
+
+ *PXA2X0_GPCR0 = FPGA_PROG;
+
+ for (count=0; count<10000; count++)
+ if ((*PXA2X0_GPLR0 & FPGA_INIT) == 0)
+ break;
+ if ((*PXA2X0_GPLR0 & FPGA_INIT) != 0)
+ diag_printf("INIT did not go low. FPGA programming failed\n");
+
+ *PXA2X0_GPSR0 = FPGA_PROG;
+
+ for (count=0; count<10000; count++)
+ if ((*PXA2X0_GPLR0 & FPGA_INIT) != 0)
+ break;
+ if ((*PXA2X0_GPLR0 & FPGA_INIT) == 0)
+ diag_printf("INIT did not go high. FPGA programming failed\n");
+
+ for( i=0; i<len; i++) {
+ if ((*PXA2X0_GPLR0 & FPGA_INIT) == 0) {
+ diag_printf("CRC Error. FPGA programming failed\n");
+ }
+
+ byte = (*_bitfile)();
+ word = 0;
+
+ if (byte & (0x01 << 7)) word|=(0x01);
+ if (byte & (0x01 << 6)) word|=(0x01 << 18);
+ if (byte & (0x01 << 5)) word|=(0x01 << 14);
+ if (byte & (0x01 << 4)) word|=(0x01 << 1);
+ if (byte & (0x01 << 3)) word|=(0x01 << 4);
+ if (byte & (0x01 << 2)) word|=(0x01 << 6);
+ if (byte & (0x01 << 1)) word|=(0x01 << 9);
+ if (byte & (0x01)) word|=(0x01 << 30);
+
+ FPGA_PROG_BASE = word;
+ }
+
+ for (count=0; count<10000; count++)
+ if ((*PXA2X0_GPLR0 & FPGA_DONE) != 0)
+ break;
+ if ((*PXA2X0_GPLR0 & FPGA_DONE) == 0)
+ diag_printf("DONE did not go high. FPGA programming failed\n");
+
+}
+
+/**
+ * Process the 'e' tag in the bit file, which is the actual code that is to
+ * be programmed on the fpga.
+ */
+static void
+vga_bitfile_process_tag_e(_bitfile_fun *_bitfile)
+{
+ int len,count,i;
+ cyg_uint8 byte;
+
+ len = bitfile_get_len32(_bitfile);
+
+ localbus_writeb(VGA_WRITE, VGA_PROG_CTRL);
+ localbus_writeb(VGA_WRITE | VGA_PROG, VGA_PROG_CTRL);
+
+ for (count=0; count<10000; count++)
+ if (localbus_readb(VGA_PROG_CTRL) & VGA_INIT)
+ break;
+ if (!(localbus_readb(VGA_PROG_CTRL) & VGA_INIT))
+ diag_printf("INIT did not go high. VGA FPGA programming failed\n");
+
+ localbus_writeb(VGA_PROG, VGA_PROG_CTRL);
+
+ for (i=0; i<len; i++) {
+ byte = (*_bitfile)();
+ localbus_writeb(bitswap(byte),VGA_PROG_DATA);
+ }
+
+ for (count=0; count<10000; count++)
+ if (localbus_readb(VGA_PROG_CTRL) & VGA_DONE)
+ break;
+ if (!(localbus_readb(VGA_PROG_CTRL) & VGA_DONE))
+ diag_printf("DONE did not go high. VGA FPGA programming failed\n");
+
+ localbus_writeb(VGA_PROG | VGA_WRITE, VGA_PROG_CTRL);
+}
+
+//
+// Download a bitstream
+//
+static void
+download_bitstream(char *title, _bitfile_fun *_bitfile, _download_fun *_download)
+{
+ int len, tag;
+
+ diag_printf("Load %s(", title);
+
+ len = bitfile_get_len16(_bitfile);
+ while (len-- > 0) {
+ (*_bitfile)(); // Skip
+ }
+ len = bitfile_get_len16(_bitfile);
+
+ tag = 0;
+ while (tag != 'e') {
+
+ tag = bitfile_get_tag(_bitfile);
+ switch (tag) {
+ case 'a':
+ bitfile_process_string_tag("Design:", _bitfile);
+ break;
+
+ case 'b':
+ bitfile_process_string_tag(", Part:", _bitfile);
+ break;
+
+ case 'c':
+ bitfile_process_string_tag(", Date:", _bitfile);
+ break;
+
+ case 'd':
+ bitfile_process_string_tag(" ", _bitfile);
+ break;
+
+ case 'e':
+ (*_download)(_bitfile);
+ break;
+
+ default:
+ diag_printf("Unknown tag. aborting...\n");
+ return;
+ }
+ }
+}
+
+
+/**
+ * Process a bitfile located at the given address.
+ */
+void
+load_fpga(cyg_uint8 *compressed_bitfile, int len)
+{
+ int err;
+ struct _zchar_info zchar_data;
+
+ stream.zalloc = _zcalloc;
+ stream.zfree = _zcfree;
+ stream.next_in = compressed_bitfile;
+ stream.avail_in = len;
+ stream.next_out = 0;
+ stream.avail_out = 0;
+ stream.opaque = (void *)&zchar_data;
+ zchar_data.avail = 0;
+ zchar_data.feedback = FEEDBACK_COUNT;
+ zchar_data.total = 0;
+ err = inflateInit(&stream);
+ if (err) {
+ diag_printf("%s: Can't init stream\n", __FUNCTION__);
+ return;
+ }
+ // Set up to download FPGA bitstreap
+ *PXA2X0_GPSR0 = FPGA_PROG;
+ download_bitstream("PCI ctlr", _zchar, bitfile_process_tag_e);
+ inflateEnd(&stream);
+ diag_printf(") %x bytes\n", zchar_data.total);
+}
+
+/**
+ * Process a bitfile located at the given address.
+ */
+void
+load_vga(cyg_uint8 *compressed_bitfile, int len)
+{
+ int err;
+ struct _zchar_info zchar_data;
+
+ stream.zalloc = _zcalloc;
+ stream.zfree = _zcfree;
+ stream.next_in = compressed_bitfile;
+ stream.avail_in = len;
+ stream.next_out = 0;
+ stream.avail_out = 0;
+ stream.opaque = (void *)&zchar_data;
+ zchar_data.avail = 0;
+ zchar_data.feedback = FEEDBACK_COUNT;
+ zchar_data.total = 0;
+ err = inflateInit(&stream);
+ if (err) {
+ diag_printf("%s: Can't init stream\n", __FUNCTION__);
+ return;
+ }
+ download_bitstream("VGA ctlr", _zchar, vga_bitfile_process_tag_e);
+ inflateEnd(&stream);
+ diag_printf(") %x bytes\n", zchar_data.total);
+}
+
diff --git a/ecos/packages/hal/arm/xscale/verde/current/ChangeLog b/ecos/packages/hal/arm/xscale/verde/current/ChangeLog
new file mode 100644
index 0000000..9803ba9
--- /dev/null
+++ b/ecos/packages/hal/arm/xscale/verde/current/ChangeLog
@@ -0,0 +1,199 @@
+2009-10-16 John Dallaway <john@dallaway.org.uk>
+
+ * cdl/hal_arm_xscale_verde.cdl: Parent under
+ CYGPKG_HAL_ARM_XSCALE_CORE.
+
+2004-09-24 Drew Moseley <drew.moseley@intel.com>
+
+ * src/verde_misc.c: Fix typo in drain-write-buffer command.
+
+2003-07-18 Nick Garnett <nickg@balti.calivar.com>
+
+ * cdl/hal_arm_xscale_verde.cdl:
+ Changed values for CYGNUM_HAL_RTC_NUMERATOR,
+ CYGNUM_HAL_RTC_DENOMINATOR and CYGNUM_HAL_RTC_PERIOD to
+ "default_value" from "calculated". This makes it easier
+ to change these values globally.
+
+2003-06-21 Mark Salter <msalter@redhat.com>
+
+ * src/verde_pci.c (pci_config_setup): Add dev field to PCI-X Type 0
+ config cycles.
+ * include/hal_verde.h: Define I2C registers as base+offset.
+
+2003-01-24 Mark Salter <msalter@redhat.com>
+
+ * include/hal_verde.h: Add some arbitatration unit defines.
+ * src/verde_misc.c (_scrub_ecc): Make scrub an atomic operation on
+ the bus. Thanks to rickr@mn.rr.com for pointing out the need for
+ this.
+
+2002-11-12 Mark Salter <msalter@redhat.com>
+
+ * include/hal_var_ints.h (CYGNUM_HAL_INTERRUPT_MSG_IBPQ): IRQ 26
+ belongs to messaging unit.
+
+2002-09-19 Mark Salter <msalter@redhat.com>
+
+ * include/hal_verde.h: Remove stuff provided by XScale core package.
+ * src/verde_misc.c: Ditto.
+ * cdl/hal_arm_xscale_verde.cdl (CYGBLD_HAL_VAR_H): Define.
+
+2002-08-29 Mark Salter <msalter@redhat.com>
+
+ * include/plf_stub.h: Add HAL_STUB_HW_BREAKPOINT_LIST_SIZE and
+ HAL_STUB_HW_WATCHPOINT_LIST_SIZE.
+
+2002-08-12 Mark Salter <msalter@redhat.com>
+
+ * cdl/hal_arm_xscale_verde.cdl: Remove CYGSEM_REDBOOT_ARM_LINUX_BOOT
+ requirement.
+
+2002-05-28 Mark Salter <msalter@redhat.com>
+
+ * cdl/hal_arm_xscale_verde.cdl: Fix linux exec address test.
+
+ * include/hal_verde.h (CYGARC_HAL_MMU_OFF): XScale has
+ special requirements for turning off MMU.
+
+2002-05-24 Jonathan Larmour <jlarmour@redhat.com>
+
+ * cdl/hal_arm_xscale_verde.cdl: Remove implement of
+ CYGINT_HAL_VIRTUAL_VECTOR_COMM_BAUD_SUPPORT since platforms should
+ define whether baud rate changes are possible.
+
+2002-04-01 Rory Bolt <rorybolt@pacbell.net>
+
+ * include/hal_var_ints.h: Fix definition for DMA1_ERR.
+
+2002-02-25 Mark Salter <msalter@redhat.com>
+
+ * src/verde_misc.c: Timer source clock is always exactly 200MHz.
+
+2002-02-22 Mark Salter <msalter@redhat.com>
+
+ * src/verde_misc.c: Fix hw watch/break support.
+
+2002-02-20 Mark Salter <msalter@redhat.com>
+
+ * include/plf_stub.h: Add HW watchpoint/breakpoint support.
+ * src/verde_misc.c: Ditto.
+
+2002-02-19 Mark Salter <msalter@redhat.com>
+
+ * src/verde_misc.c (hal_hardware_init): Initialize debug unit to
+ sane state.
+
+2002-01-31 Mark Salter <msalter@redhat.com>
+
+ * src/verde_pci.c: New file. PCI support common to verde.
+ * cdl/hal_arm_xscale_verde.cdl: Add verde_pci.c to compile list.
+ * include/var_io.h: Move HAL_PCI_CFG_* macros from plf_io.h
+ (CYGARC_PHYSICAL_ADDRESS): Fix conversion.
+
+2002-01-30 Mark Salter <msalter@redhat.com>
+
+ * src/verde_misc.c (hal_delay_us): Fix delay calculation.
+
+2002-01-29 Jesper Skov <jskov@redhat.com>
+
+ * include/var_io.h (CYGARC_PHYSICAL_ADDRESS): Added.
+
+ * cdl/hal_arm_xscale_verde.cdl: Use common ARM linux exec
+ command.
+ * src/redboot_linux_exec.c: Removed.
+
+2002-01-28 Jesper Skov <jskov@redhat.com>
+
+ * cdl/hal_arm_xscale_verde.cdl: Declare var_io.h
+
+ * include/var_io.h: Added.
+
+ * src/verde_misc.c: Don't include CYGBLD_HAL_PLATFORM_IO_H.
+
+ * include/hal_cache.h: Include hal_io.h
+
+2002-01-24 Nick Garnett <nickg@redhat.com>
+
+ * cdl/hal_arm_xscale_verde.cdl: Removed CYGHWR_HAL_ARM_VERDE_P_CLK
+ and CYGHWR_HAL_ARM_VERDE_BUS_CLK options in favour of a more
+ dynamic determination of the P_CLK value. CYGNUM_HAL_RTC_PERIOD is
+ now a simple number of microseconds which is converted to the
+ actual clock value in the HAL.
+
+ * src/verde_misc.c: Rearranged clock code to make use of
+ dynamically determined P_CLK value to set timer value.
+
+2002-01-23 Mark Salter <msalter@redhat.com>
+
+ * include/hal_verde.h: Add PCSR bit defines.
+
+ * include/hal_var_ints.h (HAL_PLATFORM_RESET): Use HW feature to
+ perform reset.
+
+2002-01-23 Nick Garnett <nickg@redhat.com>
+
+ * cdl/hal_arm_xscale_verde.cdl:
+ Added CYGHWR_HAL_ARM_VERDE_P_CLK, which defines the external clock
+ frequency applied to the Verde chip. All other CPU frequencies are
+ derived from this.
+ Added CYGHWR_HAL_ARM_VERDE_BUS_CLK which calculates the internal
+ bus clock from the P_CLK value.
+ Rewrote calculation for CYGNUM_HAL_RTC_PERIOD to derive the period
+ from the bus clock and CYGNUM_HAL_RTC_DENOMINATOR.
+
+ * src/verde_misc.c:
+ Reorganized hal_IRQ_handler() to do the right thing.
+ Added test to hal_interrupt_acknowledge() to acknowledge timer
+ interrupts. Also removed misleading comment from hal_clock_reset().
+
+ * include/hal_verde.h: Added TISR_WRITE().
+
+2002-01-21 Mark Salter <msalter@redhat.com>
+
+ * include/hal_verde.h: Add definitions for ATU, I2C, etc.
+
+ * include/hal_cache.h: Turn write buffer coalescing on and off
+ along with Dcache.
+
+2002-01-18 Hugo Tyson <hmt@redhat.com>
+
+ * include/hal_var_ints.h (HAL_CLOCK_REINITIALIZE): New macro
+ which calls the below, also a prototype for it.
+
+ * src/verde_misc.c (hal_clock_reinitialize): New routine to
+ reset the clock to a different frequency. This is for GPROF type
+ profiling use only; not general purpose eCos usage.
+
+2002-01-09 Mark Salter <msalter@redhat.com>
+
+ * src/verde_misc.c: Add MCU ISR handler for ECC scrubbing.
+
+ * include/hal_verde.h (MCU_MCISR): Define.
+
+ * include/hal_cache.h (HAL_DCACHE_SYNC): Use platform defined
+ constant instead of hardcoded flush area base.
+
+//===========================================================================
+// ####GPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002, 2009 Free Software Foundation, Inc.
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 2 or (at your option) any
+// later version.
+//
+// This program is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the
+// Free Software Foundation, Inc., 51 Franklin Street,
+// Fifth Floor, Boston, MA 02110-1301, USA.
+// -------------------------------------------
+// ####GPLCOPYRIGHTEND####
+//===========================================================================
diff --git a/ecos/packages/hal/arm/xscale/verde/current/cdl/hal_arm_xscale_verde.cdl b/ecos/packages/hal/arm/xscale/verde/current/cdl/hal_arm_xscale_verde.cdl
new file mode 100644
index 0000000..08a250e
--- /dev/null
+++ b/ecos/packages/hal/arm/xscale/verde/current/cdl/hal_arm_xscale_verde.cdl
@@ -0,0 +1,133 @@
+# ====================================================================
+#
+# hal_arm_xscale_verde.cdl
+#
+# Intel XScale architectural HAL package configuration data
+#
+# ====================================================================
+## ####ECOSGPLCOPYRIGHTBEGIN####
+## -------------------------------------------
+## This file is part of eCos, the Embedded Configurable Operating System.
+## Copyright (C) 1998, 1999, 2000, 2001, 2002, 2009 Free Software Foundation, Inc.
+##
+## eCos is free software; you can redistribute it and/or modify it under
+## the terms of the GNU General Public License as published by the Free
+## Software Foundation; either version 2 or (at your option) any later
+## version.
+##
+## eCos is distributed in the hope that it will be useful, but WITHOUT
+## ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+## FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+## for more details.
+##
+## You should have received a copy of the GNU General Public License
+## along with eCos; if not, write to the Free Software Foundation, Inc.,
+## 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+##
+## As a special exception, if other files instantiate templates or use
+## macros or inline functions from this file, or you compile this file
+## and link it with other works to produce a work based on this file,
+## this file does not by itself cause the resulting work to be covered by
+## the GNU General Public License. However the source code for this file
+## must still be made available in accordance with section (3) of the GNU
+## General Public License v2.
+##
+## This exception does not invalidate any other reasons why a work based
+## on this file might be covered by the GNU General Public License.
+## -------------------------------------------
+## ####ECOSGPLCOPYRIGHTEND####
+# ====================================================================
+######DESCRIPTIONBEGIN####
+#
+# Author(s): msalter
+# Original data: msalter
+# Contributors:
+# Date: 2001-12-03
+#
+#####DESCRIPTIONEND####
+#
+# ====================================================================
+cdl_package CYGPKG_HAL_ARM_XSCALE_VERDE {
+ display "Intel XScale 80321 IO Processor"
+ parent CYGPKG_HAL_ARM_XSCALE_CORE
+ hardware
+ include_dir cyg/hal
+ define_header hal_arm_xscale_verde.h
+ description "
+ This HAL variant package provides generic
+ support for the Intel 80321 IO processors. It is also
+ necessary to select a specific target platform HAL
+ package."
+
+ # Let the architectural HAL see this variant's interrupts file
+ define_proc {
+ puts $::cdl_header \
+ "#define CYGBLD_HAL_VAR_INTS_H <cyg/hal/hal_var_ints.h>"
+ puts $::cdl_header \
+ "#define CYGBLD_HAL_VAR_H <cyg/hal/hal_verde.h>"
+
+ puts $::cdl_system_header "#define CYGBLD_HAL_ARM_VAR_IO_H"
+ }
+
+ compile verde_misc.c verde_pci.c
+
+ cdl_option CYGHWR_HAL_ARM_XSCALE_PROCESSOR_CCLK {
+ display "Processor clock rate"
+ flavor data
+ default_value { CYGHWR_HAL_ARM_XSCALE_PROCESSOR_CCLK_DEFAULT ?
+ CYGHWR_HAL_ARM_XSCALE_PROCESSOR_CCLK_DEFAULT : 600000}
+ description "
+ The XScale processor can run at various frequencies.
+ These values are expressed in KHz."
+ }
+
+ # Real-time clock/counter specifics
+ cdl_component CYGNUM_HAL_RTC_CONSTANTS {
+ display "Real-time clock constants"
+ flavor none
+ no_define
+
+ cdl_option CYGNUM_HAL_RTC_NUMERATOR {
+ display "Real-time clock numerator"
+ flavor data
+ default_value 1000000000
+ }
+ cdl_option CYGNUM_HAL_RTC_DENOMINATOR {
+ display "Real-time clock denominator"
+ flavor data
+ default_value 100
+ description "
+ This option selects the heartbeat rate for the real-time clock.
+ The rate is specified in ticks per second. Change this value
+ with caution - too high and your system will become saturated
+ just handling clock interrupts, too low and some operations
+ such as thread scheduling may become sluggish."
+ }
+ cdl_option CYGNUM_HAL_RTC_PERIOD {
+ display "Real-time clock period"
+ flavor data
+ default_value 1000000/CYGNUM_HAL_RTC_DENOMINATOR
+ description "
+ This value gives the RTC period in microseconds. It is
+ translated into the actual clock period value in the clock
+ init and read functions."
+ }
+ }
+
+ cdl_component CYGPKG_REDBOOT_XSCALE_OPTIONS {
+ display "Redboot for XScale options"
+ flavor none
+ no_define
+ parent CYGPKG_REDBOOT
+ active_if CYGPKG_REDBOOT
+ description "
+ This option lists the target's requirements for a valid Redboot
+ configuration."
+
+ # RedBoot details
+ requires { CYGHWR_REDBOOT_ARM_LINUX_EXEC_ADDRESS_DEFAULT == 0xA0008000 }
+ define_proc {
+ puts $::cdl_header "#define CYGHWR_REDBOOT_ARM_TRAMPOLINE_ADDRESS 0x00001f00"
+ }
+ }
+}
diff --git a/ecos/packages/hal/arm/xscale/verde/current/include/hal_var_ints.h b/ecos/packages/hal/arm/xscale/verde/current/include/hal_var_ints.h
new file mode 100644
index 0000000..ed65094
--- /dev/null
+++ b/ecos/packages/hal/arm/xscale/verde/current/include/hal_var_ints.h
@@ -0,0 +1,142 @@
+#ifndef CYGONCE_HAL_VAR_INTS_H
+#define CYGONCE_HAL_VAR_INTS_H
+//==========================================================================
+//
+// hal_var_ints.h
+//
+// HAL Interrupt and clock support
+//
+//==========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//==========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): msalter
+// Contributors: msalter
+// Date: 2001-12-03
+// Purpose: Define Interrupt support
+// Description: The interrupt details for XScale CPUs are defined here.
+// Usage:
+// #include <pkgconf/system.h>
+// #include CYGBLD_HAL_VARIANT_H
+// #include CYGBLD_HAL_VAR_INTS_H
+//
+// ...
+//
+//
+//####DESCRIPTIONEND####
+//
+//==========================================================================
+
+#include <cyg/hal/hal_verde.h> // registers
+
+//
+// Values for the vector argument of cyg_drv_interrupt_create() and
+// other interrupt related interfaces.
+//
+#define CYGNUM_HAL_INTERRUPT_NONE -1
+#define CYGNUM_HAL_INTERRUPT_DMA0_EOT 0
+#define CYGNUM_HAL_INTERRUPT_DMA0_EOC 1
+#define CYGNUM_HAL_INTERRUPT_DMA1_EOT 2
+#define CYGNUM_HAL_INTERRUPT_DMA1_EOC 3
+#define CYGNUM_HAL_INTERRUPT_RSVD_4 4
+#define CYGNUM_HAL_INTERRUPT_RSVD_5 5
+#define CYGNUM_HAL_INTERRUPT_AA_EOT 6
+#define CYGNUM_HAL_INTERRUPT_AA_EOC 7
+#define CYGNUM_HAL_INTERRUPT_CORE_PMON 8
+#define CYGNUM_HAL_INTERRUPT_TIMER0 9
+#define CYGNUM_HAL_INTERRUPT_TIMER1 10
+#define CYGNUM_HAL_INTERRUPT_I2C_0 11
+#define CYGNUM_HAL_INTERRUPT_I2C_1 12
+#define CYGNUM_HAL_INTERRUPT_MESSAGING 13
+#define CYGNUM_HAL_INTERRUPT_ATU_BIST 14
+#define CYGNUM_HAL_INTERRUPT_PERFMON 15
+#define CYGNUM_HAL_INTERRUPT_CORE_PMU 16
+#define CYGNUM_HAL_INTERRUPT_BIU_ERR 17
+#define CYGNUM_HAL_INTERRUPT_ATU_ERR 18
+#define CYGNUM_HAL_INTERRUPT_MCU_ERR 19
+#define CYGNUM_HAL_INTERRUPT_DMA0_ERR 20
+#define CYGNUM_HAL_INTERRUPT_DMA1_ERR 21
+#define CYGNUM_HAL_INTERRUPT_RSVD_22 22
+#define CYGNUM_HAL_INTERRUPT_AA_ERR 23
+#define CYGNUM_HAL_INTERRUPT_MSG_ERR 24
+#define CYGNUM_HAL_INTERRUPT_SSP 25
+#define CYGNUM_HAL_INTERRUPT_MSG_IBPQ 26
+#define CYGNUM_HAL_INTERRUPT_XINT0 27
+#define CYGNUM_HAL_INTERRUPT_XINT1 28
+#define CYGNUM_HAL_INTERRUPT_XINT2 29
+#define CYGNUM_HAL_INTERRUPT_XINT3 30
+#define CYGNUM_HAL_INTERRUPT_HPI 31
+
+#define CYGNUM_HAL_VAR_ISR_MAX 31
+
+#define CYGNUM_HAL_ISR_MIN 0
+#define CYGNUM_HAL_ISR_MAX 31
+
+#define CYGNUM_HAL_ISR_COUNT (CYGNUM_HAL_ISR_MAX+1)
+
+#define CYGNUM_HAL_INTERRUPT_RTC CYGNUM_HAL_INTERRUPT_TIMER0
+
+#endif // CYGONCE_HAL_VAR_INTS_H
+
+// ------------------------------------------------------------------------
+// Dynamically set the timer interrupt rate.
+// Not for application use at all.
+
+externC void
+hal_clock_reinitialize( int *pfreq, /* inout */
+ unsigned int *pperiod, /* inout */
+ unsigned int old_hz ); /* in */
+
+#define HAL_CLOCK_REINITIALIZE( _freq, _period, _old_hz ) \
+ hal_clock_reinitialize( &_freq, &_period, _old_hz )
+
+//----------------------------------------------------------------------------
+// Reset.
+#define HAL_PLATFORM_RESET() \
+ CYG_MACRO_START \
+ cyg_uint32 ctrl; \
+ \
+ /* By disabling interupts we will just hang in the loop below */ \
+ /* if for some reason the software reset fails. */ \
+ HAL_DISABLE_INTERRUPTS(ctrl); \
+ \
+ *ATU_PCSR = PCSR_RESET_I_BUS | PCSR_RESET_P_BUS; \
+ \
+ for(;;); /* hang here forever if reset fails */ \
+ CYG_MACRO_END
+
+// Fallback (never really used)
+#define HAL_PLATFORM_RESET_ENTRY 0x00000000
+
+// EOF hal_var_ints.h
diff --git a/ecos/packages/hal/arm/xscale/verde/current/include/hal_verde.h b/ecos/packages/hal/arm/xscale/verde/current/include/hal_verde.h
new file mode 100644
index 0000000..0c5f569
--- /dev/null
+++ b/ecos/packages/hal/arm/xscale/verde/current/include/hal_verde.h
@@ -0,0 +1,449 @@
+/*=============================================================================
+//
+// hal_verde.h
+//
+// Verde I/O Coprocessor support (register layout, etc)
+//
+//=============================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): msalter
+// Contributors: msalter
+// Date: 2001-12-03
+// Purpose:
+// Description: Verde I/O Processor support.
+// Usage: #include <cyg/hal/hal_verde.h>
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================*/
+#ifndef CYGONCE_HAL_ARM_XSCALE_HAL_VERDE_H
+#define CYGONCE_HAL_ARM_XSCALE_HAL_VERDE_H
+
+#include <pkgconf/system.h>
+#include <cyg/hal/hal_xscale.h>
+
+
+// --------------------------------------------------------------------------
+// Address Translation Unit (Chapter 3)
+#define ATU_ATUVID REG16(0,0xffffe100)
+#define ATU_ATUDID REG16(0,0xffffe102)
+#define ATU_ATUCMD REG16(0,0xffffe104)
+#define ATU_ATUSR REG16(0,0xffffe106)
+#define ATU_ATURID REG8(0,0xffffe108)
+#define ATU_ATUCCR REG8(0,0xffffe109)
+#define ATU_ATUCLSR REG8(0,0xffffe10c)
+#define ATU_ATULT REG8(0,0xffffe10d)
+#define ATU_ATUHTR REG8(0,0xffffe10e)
+#define ATU_ATUBIST REG8(0,0xffffe10f)
+#define ATU_IABAR0 REG32(0,0xffffe110)
+#define ATU_IAUBAR0 REG32(0,0xffffe114)
+#define ATU_IABAR1 REG32(0,0xffffe118)
+#define ATU_IAUBAR1 REG32(0,0xffffe11c)
+#define ATU_IABAR2 REG32(0,0xffffe120)
+#define ATU_IAUBAR2 REG32(0,0xffffe124)
+#define ATU_ASVIR REG16(0,0xffffe12c)
+#define ATU_ASIR REG16(0,0xffffe12e)
+#define ATU_ERBAR REG32(0,0xffffe130)
+#define ATU_ATUILR REG8(0,0xffffe13c)
+#define ATU_ATUIPR REG8(0,0xffffe13d)
+#define ATU_ATUMGNT REG8(0,0xffffe13e)
+#define ATU_ATUMLAT REG8(0,0xffffe13f)
+#define ATU_IALR0 REG32(0,0xffffe140)
+#define ATU_IATVR0 REG32(0,0xffffe144)
+#define ATU_ERLR REG32(0,0xffffe148)
+#define ATU_ERTVR REG32(0,0xffffe14c)
+#define ATU_IALR1 REG32(0,0xffffe150)
+#define ATU_IALR2 REG32(0,0xffffe154)
+#define ATU_IATVR2 REG32(0,0xffffe158)
+#define ATU_OIOWTVR REG32(0,0xffffe15c)
+#define ATU_OMWTVR0 REG32(0,0xffffe160)
+#define ATU_OUMWTVR0 REG32(0,0xffffe164)
+#define ATU_OMWTVR1 REG32(0,0xffffe168)
+#define ATU_OUMWTVR1 REG32(0,0xffffe16c)
+#define ATU_OUDWTVR REG32(0,0xffffe178)
+#define ATU_ATUCR REG32(0,0xffffe180)
+#define ATU_PCSR REG32(0,0xffffe184)
+#define ATU_ATUISR REG32(0,0xffffe188)
+#define ATU_ATUIMR REG32(0,0xffffe18c)
+#define ATU_IABAR3 REG32(0,0xffffe190)
+#define ATU_IAUBAR3 REG32(0,0xffffe194)
+#define ATU_IALR3 REG32(0,0xffffe198)
+#define ATU_IATVR3 REG32(0,0xffffe19c)
+#define ATU_OCCAR REG32(0,0xffffe1a4)
+#define ATU_OCCDR REG32(0,0xffffe1ac)
+#define ATU_PDSCR REG32(0,0xffffe1bc)
+#define ATU_PMCAPID REG8(0,0xffffe1c0)
+#define ATU_PMNEXT REG8(0,0xffffe1c1)
+#define ATU_APMCR REG16(0,0xffffe1c2)
+#define ATU_APMCSR REG16(0,0xffffe1c4)
+#define ATU_PCIXCAPID REG8(0,0xffffe1e0)
+#define ATU_PCIXNEXT REG8(0,0xffffe1e1)
+#define ATU_PCIXCMD REG16(0,0xffffe1e2)
+#define ATU_PCIXSR REG32(0,0xffffe1e4)
+
+#define PCSR_RESET_I_BUS 0x20
+#define PCSR_RESET_P_BUS 0x10
+#define PCSR_CFG_RETRY 0x04
+
+
+// --------------------------------------------------------------------------
+// Application Accelerator Unit (Chapter 6)
+#define AAU_ACR REG32(0,0xffffe800)
+#define AAU_ASR REG32(0,0xffffe804)
+#define AAU_ADAR REG32(0,0xffffe808)
+#define AAU_ANDAR REG32(0,0xffffe80c)
+#define AAU_SAR1 REG32(0,0xffffe810)
+#define AAU_SAR2 REG32(0,0xffffe814)
+#define AAU_SAR3 REG32(0,0xffffe818)
+#define AAU_SAR4 REG32(0,0xffffe81c)
+#define AAU_DAR REG32(0,0xffffe820)
+#define AAU_ABCR REG32(0,0xffffe824)
+#define AAU_ADCR REG32(0,0xffffe828)
+#define AAU_SAR5 REG32(0,0xffffe82c)
+#define AAU_SAR6 REG32(0,0xffffe830)
+#define AAU_SAR7 REG32(0,0xffffe834)
+#define AAU_SAR8 REG32(0,0xffffe838)
+#define AAU_EDCR0 REG32(0,0xffffe83c)
+#define AAU_SAR9 REG32(0,0xffffe840)
+#define AAU_SAR10 REG32(0,0xffffe844)
+#define AAU_SAR11 REG32(0,0xffffe848)
+#define AAU_SAR12 REG32(0,0xffffe84c)
+#define AAU_SAR13 REG32(0,0xffffe850)
+#define AAU_SAR14 REG32(0,0xffffe854)
+#define AAU_SAR15 REG32(0,0xffffe858)
+#define AAU_SAR16 REG32(0,0xffffe85c)
+#define AAU_EDCR1 REG32(0,0xffffe860)
+#define AAU_SAR17 REG32(0,0xffffe864)
+#define AAU_SAR18 REG32(0,0xffffe868)
+#define AAU_SAR19 REG32(0,0xffffe86c)
+#define AAU_SAR20 REG32(0,0xffffe870)
+#define AAU_SAR21 REG32(0,0xffffe874)
+#define AAU_SAR22 REG32(0,0xffffe878)
+#define AAU_SAR23 REG32(0,0xffffe87c)
+#define AAU_SAR24 REG32(0,0xffffe880)
+#define AAU_EDCR2 REG32(0,0xffffe884)
+#define AAU_SAR25 REG32(0,0xffffe888)
+#define AAU_SAR26 REG32(0,0xffffe88c)
+#define AAU_SAR27 REG32(0,0xffffe890)
+#define AAU_SAR28 REG32(0,0xffffe894)
+#define AAU_SAR29 REG32(0,0xffffe898)
+#define AAU_SAR30 REG32(0,0xffffe89c)
+#define AAU_SAR31 REG32(0,0xffffe8a0)
+#define AAU_SAR32 REG32(0,0xffffe8a4)
+#define AAU_RES0 REG32(0,0xffffe8a8)
+#define AAU_RES1 REG32(0,0xffffe900)
+#define AAU_RES2 REG32(0,0xfffff000)
+
+#define ACR_ENABLE 1
+#define ACR_RESUME 2
+
+#define ASR_ACTIVE 0x400
+
+
+// --------------------------------------------------------------------------
+// Memory Controller (Chapter 7)
+#define MCU_SDIR REG32(0,0xffffe500)
+#define MCU_SDCR REG32(0,0xffffe504)
+#define MCU_SDBR REG32(0,0xffffe508)
+#define MCU_SBR0 REG32(0,0xffffe50c)
+#define MCU_SBR1 REG32(0,0xffffe510)
+#define MCU_ECCR REG32(0,0xffffe534)
+#define MCU_ELOG0 REG32(0,0xffffe538)
+#define MCU_ELOG1 REG32(0,0xffffe53c)
+#define MCU_ECAR0 REG32(0,0xffffe540)
+#define MCU_ECAR1 REG32(0,0xffffe544)
+#define MCU_ECTST REG32(0,0xffffe548)
+#define MCU_MCISR REG32(0,0xffffe54c)
+#define MCU_RFR REG32(0,0xffffe550)
+#define MCU_DBUDSR REG32(0,0xffffe554)
+#define MCU_DBDDSR REG32(0,0xffffe558)
+#define MCU_CUDSR REG32(0,0xffffe55c)
+#define MCU_CDDSR REG32(0,0xffffe560)
+#define MCU_CEUDSR REG32(0,0xffffe564)
+#define MCU_CEDDSR REG32(0,0xffffe568)
+#define MCU_CSUDSR REG32(0,0xffffe56c)
+#define MCU_CSDDSR REG32(0,0xffffe570)
+#define MCU_REUDSR REG32(0,0xffffe574)
+#define MCU_REDDSR REG32(0,0xffffe578)
+#define MCU_ABUDSR REG32(0,0xffffe57c)
+#define MCU_ABDDSR REG32(0,0xffffe580)
+#define MCU_DSDR REG32(0,0xffffe584)
+#define MCU_REDR REG32(0,0xffffe588)
+#define MCU_RES10 REG32(0,0xffffe58c)
+
+// Banksize specific component of SBRx register bits
+#define SBR_32MEG 1
+#define SBR_64MEG 2
+#define SBR_128MEG 4
+#define SBR_256MEG 8
+#define SBR_512MEG 16
+
+// Refresh rates for 200MHz
+#define RFR_3_9us 0x300
+#define RFR_7_8us 0x600
+#define RFR_15_6us 0xC00
+
+#define DSDR_REC_VAL 0x00000231
+#define REDR_REC_VAL 0x00000000
+#define SDCR_INIT_VAL 0x00000018 // 64-bit - unbuffered DIMM & turn off compensations (SECRET BITS!!!)
+
+// SDRAM MODE COMMANDS
+#define SDIR_CMD_NOP 0x00000005
+#define SDIR_CMD_PRECHARGE_ALL 0x00000004
+#define SDIR_CMD_ENABLE_DLL 0x00000006
+#define SDIR_CMD_CAS_LAT_2_A 0x00000002
+#define SDIR_CMD_CAS_LAT_2_B 0x00000000
+#define SDIR_CMD_AUTO_REFRESH 0x00000007
+
+
+// --------------------------------------------------------------------------
+// Peripheral Bus Interface Unit (Chapter 8)
+#define PBIU_PBCR REG32(0,0xffffe680)
+#define PBIU_PBSR REG32(0,0xffffe684)
+#define PBIU_PBAR0 REG32(0,0xffffe688)
+#define PBIU_PBLR0 REG32(0,0xffffe68c)
+#define PBIU_PBAR1 REG32(0,0xffffe690)
+#define PBIU_PBLR1 REG32(0,0xffffe694)
+#define PBIU_PBAR2 REG32(0,0xffffe698)
+#define PBIU_PBLR2 REG32(0,0xffffe69c)
+#define PBIU_PBAR3 REG32(0,0xffffe6a0)
+#define PBIU_PBLR3 REG32(0,0xffffe6a4)
+#define PBIU_PBAR4 REG32(0,0xffffe6a8)
+#define PBIU_PBLR4 REG32(0,0xffffe6ac)
+#define PBIU_PBAR5 REG32(0,0xffffe6b0)
+#define PBIU_PBLR5 REG32(0,0xffffe6b4)
+#define PBIU_PBVR0 REG32(0,0xffffe6c0)
+#define PBIU_PBVR1 REG32(0,0xffffe6c4)
+#define PBIU_PBVR2 REG32(0,0xffffe6c8)
+#define PBIU_PBVR3 REG32(0,0xffffe6cc)
+#define PBIU_PBVR4 REG32(0,0xffffe6d0)
+#define PBIU_PBVR5 REG32(0,0xffffe6d8)
+#define PBIU_PBVR6 REG32(0,0xffffe6dc)
+
+#define PBCR_ENABLE 1
+
+#define PBCR_ERR_VALID 0x01
+#define PBCR_ERR_WRITE 0x02
+#define PBCR_ERR_TYPEMASK 0x0C
+
+#define PBAR_FLASH 0x200
+#define PBAR_RCWAIT_1 0x000
+#define PBAR_RCWAIT_4 0x040
+#define PBAR_RCWAIT_8 0x080
+#define PBAR_RCWAIT_12 0x0C0
+#define PBAR_RCWAIT_16 0x100
+#define PBAR_RCWAIT_20 0x1C0
+#define PBAR_ADWAIT_4 0x000
+#define PBAR_ADWAIT_8 0x004
+#define PBAR_ADWAIT_12 0x008
+#define PBAR_ADWAIT_16 0x00C
+#define PBAR_ADWAIT_20 0x01C
+#define PBAR_BUS_8 0x000
+#define PBAR_BUS_16 0x001
+#define PBAR_BUS_32 0x002
+
+#define PBLR_SZ_4K 0xfffff000
+#define PBLR_SZ_8K 0xffffe000
+#define PBLR_SZ_16K 0xffffc000
+#define PBLR_SZ_32K 0xffff8000
+#define PBLR_SZ_64K 0xffff0000
+#define PBLR_SZ_128K 0xfffe0000
+#define PBLR_SZ_256K 0xfffc0000
+#define PBLR_SZ_512K 0xfff80000
+#define PBLR_SZ_1M 0xfff00000
+#define PBLR_SZ_2M 0xffe00000
+#define PBLR_SZ_4M 0xffc00000
+#define PBLR_SZ_8M 0xff800000
+#define PBLR_SZ_16M 0xff000000
+#define PBLR_SZ_32M 0xfe000000
+#define PBLR_SZ_64M 0xfc000000
+#define PBLR_SZ_128M 0xf8000000
+#define PBLR_SZ_256M 0xf0000000
+#define PBLR_SZ_512M 0xe0000000
+#define PBLR_SZ_1G 0xc0000000
+#define PBLR_SZ_2G 0x80000000
+#define PBLR_SZ_DISABLE 0x00000000
+
+// --------------------------------------------------------------------------
+// I2C (Chapter 9)
+#define I2C_BASE0 0xfffff680
+#define I2C_BASE1 0xfffff6A0
+
+#define I2C_ICR 0x00
+#define I2C_ISR 0x04
+#define I2C_ISAR 0x08
+#define I2C_IDBR 0x0c
+#define I2C_IBMR 0x14
+
+#define I2C_ICR0 REG32(I2C_BASE0,I2C_ICR)
+#define I2C_ICR1 REG32(I2C_BASE1,I2C_ICR)
+#define I2C_ISR0 REG32(I2C_BASE0,I2C_ISR)
+#define I2C_ISR1 REG32(I2C_BASE1,I2C_ISR)
+#define I2C_ISAR0 REG32(I2C_BASE0,I2C_ISAR)
+#define I2C_ISAR1 REG32(I2C_BASE1,I2C_ISAR)
+#define I2C_IDBR0 REG32(I2C_BASE0,I2C_IDBR)
+#define I2C_IDBR1 REG32(I2C_BASE1,I2C_IDBR)
+#define I2C_IBMR0 REG32(I2C_BASE0,I2C_IBMR)
+#define I2C_IBMR1 REG32(I2C_BASE1,I2C_IBMR)
+
+// Control Register bits
+#define ICR_START 0x0001 /* 1:send a Start condition to the I2C when in master mode */
+#define ICR_STOP 0x0002 /* 1:send a Stop condition after next byte transferred in master mode */
+#define ICR_ACK 0x0004 /* Ack/Nack control: 1:Nack, 0:Ack (negative or positive pulse) */
+#define ICR_TRANSFER 0x0008 /* 1:send/receive byte, 0:cleared by I2C unit when done */
+#define ICR_ABORT 0x0010 /* 1:I2C sends STOP w/out data permission, 0:ICR bit used only */
+#define ICR_SCLENB 0x0020 /* I2C clock output: 1:Enabled, 0:Disabled. ICCR configured before ! */
+#define ICR_ENB 0x0040 /* I2C unit: 1:Enabled, 0:Disabled */
+#define ICR_GCALL 0x0080 /* General Call: 1:Disabled, 0:Enabled */
+#define ICR_IEMPTY 0x0100 /* 1: IDBR Transmit Empty Interrupt Enable */
+#define ICR_IFULL 0x0200 /* 1: IDBR Receive Full Interrupt Enable */
+#define ICR_IERR 0x0400 /* 1: Bus Error Interrupt Enable */
+#define ICR_ISTOP 0x0800 /* 1: Slave Stop Detected Interrupt Enable */
+#define ICR_IARB 0x1000 /* 1: Arbitration Loss Detected Interrupt Enable */
+#define ICR_ISADDR 0x2000 /* 1: Slave Address Detected Interrupt Enable */
+#define ICR_RESET 0x4000 /* 1: I2C unit reset */
+
+// Status Register bits
+#define ISR_RWMODE 0x0001 /* 1: I2C in master receive = slave transmit mode */
+#define ISR_ACK 0x0002 /* 1: I2C received/sent a Nack, 0: Ack */
+#define ISR_BUSY 0x0004 /* 1: Processor's I2C unit busy */
+#define ISR_BUSBUSY 0x0008 /* 1: I2C bus busy. Processor's I2C unit not involved */
+#define ISR_STOP 0x0010 /* 1: Slave Stop detected (when in slave mode: receive or transmit) */
+#define ISR_ARB 0x0020 /* 1: Arbitration Loss Detected */
+#define ISR_EMPTY 0x0040 /* 1: Transfer finished on I2C bus. If enabled in ICR, interrupt signaled */
+#define ISR_FULL 0x0080 /* 1: IDBR received new byte from I2C bus. If ICR, interrupt signaled */
+#define ISR_GCALL 0x0100 /* 1: I2C unit received a General Call address */
+#define ISR_SADDR 0x0200 /* 1: I2C unit detected a 7-bit address matching the general call or ISAR */
+#define ISR_ERROR 0x0400 /* Bit set by unit when a Bus Error detected */
+
+#define IDBR_MASK 0x000000ff
+#define IDBR_MODE 0x01
+
+// --------------------------------------------------------------------------
+// Arbitration (Chapter 11)
+#define ARB_IACR REG32(0,0xffffe780)
+#define ARB_MTTR1 REG32(0,0xffffe784)
+#define ARB_MTTR2 REG32(0,0xffffe788)
+
+#define IACR_PRI_HIGH 0
+#define IACR_PRI_MED 1
+#define IACR_PRI_LOW 2
+#define IACR_PRI_OFF 3
+
+// macros to set priority for various units
+#define IACR_ATU(x) ((x) << 0)
+#define IACR_DMA0(x) ((x) << 4)
+#define IACR_DMA1(x) ((x) << 6)
+#define IACR_CORE(x) ((x) << 10)
+#define IACR_AAU(x) ((x) << 12)
+#define IACR_PBI(x) ((x) << 14)
+
+
+// --------------------------------------------------------------------------
+// Timers (Chapter 14)
+#define TU_TMR0 REG32(0,0xffffe7e0)
+#define TU_TMR1 REG32(0,0xffffe7e4)
+#define TU_TCR0 REG32(0,0xffffe7e8)
+#define TU_TCR1 REG32(0,0xffffe7ec)
+#define TU_TRR0 REG32(0,0xffffe7f0)
+#define TU_TRR1 REG32(0,0xffffe7f4)
+#define TU_TISR REG32(0,0xffffe7f8)
+#define TU_WDTCR REG32(0,0xffffe7fc)
+
+#define TMR_TC 0x01 // terminal count
+#define TMR_ENABLE 0x02 // timer enable
+#define TMR_RELOAD 0x04 // auto reload enable
+#define TMR_CLK_1 0x00 // CCLK (core clock)
+#define TMR_CLK_4 0x10 // CCLK/4
+#define TMR_CLK_8 0x20 // CCLK/8
+#define TMR_CLK_16 0x30 // CCLK/16
+
+#ifndef __ASSEMBLER__
+// For full read/write access, you have to use coprocessor insns.
+#define TMR0_READ(val) asm volatile ("mrc p6, 0, %0, c0, c1, 0" : "=r" (val))
+#define _TMR0_WRITE(val) asm volatile ("mcr p6, 0, %0, c0, c1, 0" : : "r" (val))
+#define TMR1_READ(val) asm volatile ("mrc p6, 0, %0, c1, c1, 0" : "=r" (val))
+#define _TMR1_WRITE(val) asm volatile ("mcr p6, 0, %0, c1, c1, 0" : : "r" (val))
+#define TCR0_READ(val) asm volatile ("mrc p6, 0, %0, c2, c1, 0" : "=r" (val))
+#define _TCR0_WRITE(val) asm volatile ("mcr p6, 0, %0, c2, c1, 0" : : "r" (val))
+#define TCR1_READ(val) asm volatile ("mrc p6, 0, %0, c3, c1, 0" : "=r" (val))
+#define _TCR1_WRITE(val) asm volatile ("mcr p6, 0, %0, c3, c1, 0" : : "r" (val))
+#define TRR0_READ(val) asm volatile ("mrc p6, 0, %0, c4, c1, 0" : "=r" (val))
+#define _TRR0_WRITE(val) asm volatile ("mcr p6, 0, %0, c4, c1, 0" : : "r" (val))
+#define TRR1_READ(val) asm volatile ("mrc p6, 0, %0, c5, c1, 0" : "=r" (val))
+#define _TRR1_WRITE(val) asm volatile ("mcr p6, 0, %0, c5, c1, 0" : : "r" (val))
+#define TISR_READ(val) asm volatile ("mrc p6, 0, %0, c6, c1, 0" : "=r" (val))
+#define _TISR_WRITE(val) asm volatile ("mcr p6, 0, %0, c6, c1, 0" : : "r" (val))
+#define _WDTCR_READ(val) asm volatile ("mrc p6, 0, %0, c7, c1, 0" : "=r" (val))
+#define _WDTCR_WRITE(val) asm volatile ("mcr p6, 0, %0, c7, c1, 0" : : "r" (val))
+
+static inline void TMR0_WRITE(cyg_uint32 val) { _TMR0_WRITE(val); }
+static inline void TMR1_WRITE(cyg_uint32 val) { _TMR1_WRITE(val); }
+static inline void TCR0_WRITE(cyg_uint32 val) { _TCR0_WRITE(val); }
+static inline void TCR1_WRITE(cyg_uint32 val) { _TCR1_WRITE(val); }
+static inline void TRR0_WRITE(cyg_uint32 val) { _TRR0_WRITE(val); }
+static inline void TRR1_WRITE(cyg_uint32 val) { _TRR1_WRITE(val); }
+static inline void TISR_WRITE(cyg_uint32 val) { _TISR_WRITE(val); }
+#endif
+
+// --------------------------------------------------------------------------
+// Interrupts (Chapter 15)
+#define INTCTL REG32(0,0xffffe7d0)
+#define INTSTR REG32(0,0xffffe7d4)
+#define IINTSRC REG32(0,0xffffe7d8)
+#define FINTSRC REG32(0,0xffffe7dc)
+#define PIRSR REG32(0,0xffffe1ec)
+
+#ifndef __ASSEMBLER__
+#define INTCTL_READ(val) asm volatile ("mrc p6, 0, %0, c0, c0, 0" : "=r" (val))
+#define _INTCTL_WRITE(val) asm volatile ("mcr p6, 0, %0, c0, c0, 0" : : "r" (val))
+#define INTSTR_READ(val) asm volatile ("mrc p6, 0, %0, c4, c0, 0" : "=r" (val))
+#define _INTSTR_WRITE(val) asm volatile ("mcr p6, 0, %0, c4, c0, 0" : : "r" (val))
+#define IINTSRC_READ(val) asm volatile ("mrc p6, 0, %0, c8, c0, 0" : "=r" (val))
+#define FINTSRC_READ(val) asm volatile ("mrc p6, 0, %0, c9, c0, 0" : "=r" (val))
+
+static inline void INTCTL_WRITE(cyg_uint32 val) { _INTCTL_WRITE(val); }
+static inline void INTSTR_WRITE(cyg_uint32 val) { _INTSTR_WRITE(val); }
+#endif
+
+// --------------------------------------------------------------------------
+// GPIO (Chapter 15)
+#define GPIO_GPOE REG8(0,0xffffe7c4)
+#define GPIO_GPID REG8(0,0xffffe7c8)
+#define GPIO_GPOD REG8(0,0xffffe7cc)
+
+#endif // CYGONCE_HAL_ARM_XSCALE_HAL_VERDE_H
+// EOF hal_verde.h
diff --git a/ecos/packages/hal/arm/xscale/verde/current/include/var_io.h b/ecos/packages/hal/arm/xscale/verde/current/include/var_io.h
new file mode 100644
index 0000000..09f5ad6
--- /dev/null
+++ b/ecos/packages/hal/arm/xscale/verde/current/include/var_io.h
@@ -0,0 +1,112 @@
+#ifndef CYGONCE_HAL_ARM_VERDE_VAR_IO_H
+#define CYGONCE_HAL_ARM_VERDE_VAR_IO_H
+
+/*=============================================================================
+//
+// var_io.h
+//
+// Platform specific support (register layout, etc)
+//
+//=============================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jskov
+// Contributors: jskov
+// Date: 2002-01-28
+// Purpose: Platform specific support routines
+// Description:
+// Usage: #include <cyg/hal/hal_io.h>
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================*/
+
+#include <cyg/hal/plf_io.h>
+
+//-----------------------------------------------------------------------------
+
+extern cyg_uint32 cyg_hal_plf_pci_cfg_read_dword (cyg_uint32 bus,
+ cyg_uint32 devfn,
+ cyg_uint32 offset);
+extern cyg_uint16 cyg_hal_plf_pci_cfg_read_word (cyg_uint32 bus,
+ cyg_uint32 devfn,
+ cyg_uint32 offset);
+extern cyg_uint8 cyg_hal_plf_pci_cfg_read_byte (cyg_uint32 bus,
+ cyg_uint32 devfn,
+ cyg_uint32 offset);
+extern void cyg_hal_plf_pci_cfg_write_dword (cyg_uint32 bus,
+ cyg_uint32 devfn,
+ cyg_uint32 offset,
+ cyg_uint32 val);
+extern void cyg_hal_plf_pci_cfg_write_word (cyg_uint32 bus,
+ cyg_uint32 devfn,
+ cyg_uint32 offset,
+ cyg_uint16 val);
+extern void cyg_hal_plf_pci_cfg_write_byte (cyg_uint32 bus,
+ cyg_uint32 devfn,
+ cyg_uint32 offset,
+ cyg_uint8 val);
+
+// Read a value from the PCI configuration space of the appropriate
+// size at an address composed from the bus, devfn and offset.
+#define HAL_PCI_CFG_READ_UINT8( __bus, __devfn, __offset, __val ) \
+ __val = cyg_hal_plf_pci_cfg_read_byte((__bus), (__devfn), (__offset))
+
+#define HAL_PCI_CFG_READ_UINT16( __bus, __devfn, __offset, __val ) \
+ __val = cyg_hal_plf_pci_cfg_read_word((__bus), (__devfn), (__offset))
+
+#define HAL_PCI_CFG_READ_UINT32( __bus, __devfn, __offset, __val ) \
+ __val = cyg_hal_plf_pci_cfg_read_dword((__bus), (__devfn), (__offset))
+
+// Write a value to the PCI configuration space of the appropriate
+// size at an address composed from the bus, devfn and offset.
+#define HAL_PCI_CFG_WRITE_UINT8( __bus, __devfn, __offset, __val ) \
+ cyg_hal_plf_pci_cfg_write_byte((__bus), (__devfn), (__offset), (__val))
+
+#define HAL_PCI_CFG_WRITE_UINT16( __bus, __devfn, __offset, __val ) \
+ cyg_hal_plf_pci_cfg_write_word((__bus), (__devfn), (__offset), (__val))
+
+#define HAL_PCI_CFG_WRITE_UINT32( __bus, __devfn, __offset, __val ) \
+ cyg_hal_plf_pci_cfg_write_dword((__bus), (__devfn), (__offset), (__val))
+
+
+// Memory mapping details
+#ifndef CYGARC_PHYSICAL_ADDRESS
+# define CYGARC_PHYSICAL_ADDRESS(x) (((unsigned long)x & 0x1FFFFFFF) + SDRAM_PHYS_BASE)
+#endif
+
+
+#endif // CYGONCE_HAL_ARM_VERDE_VAR_IO_H
+// EOF var_io.h
diff --git a/ecos/packages/hal/arm/xscale/verde/current/src/verde_misc.c b/ecos/packages/hal/arm/xscale/verde/current/src/verde_misc.c
new file mode 100644
index 0000000..89106a2
--- /dev/null
+++ b/ecos/packages/hal/arm/xscale/verde/current/src/verde_misc.c
@@ -0,0 +1,439 @@
+//==========================================================================
+//
+// verde_misc.c
+//
+// HAL misc board support code for Intel Verde I/O Coprocessor
+//
+//==========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//==========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): msalter
+// Contributors: msalter
+// Date: 2001-12-03
+// 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 CYGHWR_MEMORY_LAYOUT_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_stub.h> // Stub macros
+#include <cyg/hal/hal_if.h> // calling interface API
+#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/plf_io.h>
+#include <cyg/infra/diag.h> // diag_printf
+#include <cyg/hal/drv_api.h> // CYG_ISR_HANDLED
+
+// Most initialization has already been done before we get here.
+// All we do here is set up the interrupt environment.
+// FIXME: some of the stuff in hal_platform_setup could be moved here.
+
+externC void plf_hardware_init(void);
+
+static cyg_uint32 mcu_ISR(cyg_vector_t vector, cyg_addrword_t data);
+
+void
+hal_hardware_init(void)
+{
+ hal_xscale_core_init();
+
+ // Perform any platform specific initializations
+ plf_hardware_init();
+
+ // Let the timer run at a default rate (for delays)
+ hal_clock_initialize(CYGNUM_HAL_RTC_PERIOD);
+
+ // Set up eCos/ROM interfaces
+ hal_if_init();
+
+ // Enable caches
+ HAL_DCACHE_ENABLE();
+ HAL_ICACHE_ENABLE();
+
+ // attach interrupt handlers for MCU errors
+ HAL_INTERRUPT_ATTACH (CYGNUM_HAL_INTERRUPT_MCU_ERR, &mcu_ISR, CYGNUM_HAL_INTERRUPT_MCU_ERR, 0);
+ HAL_INTERRUPT_UNMASK (CYGNUM_HAL_INTERRUPT_MCU_ERR);
+}
+
+// -------------------------------------------------------------------------
+// This routine is called to respond to a hardware interrupt (IRQ). It
+// should interrogate the hardware and return the IRQ vector number.
+
+int
+hal_IRQ_handler(void)
+{
+ cyg_uint32 sources, mask;
+ int index;
+
+ INTCTL_READ(mask);
+ IINTSRC_READ(sources);
+
+ sources &= mask; // just the unmasked ones
+
+ if (sources) {
+ HAL_LSBIT_INDEX( index, sources );
+ return index;
+ }
+ return CYGNUM_HAL_INTERRUPT_NONE; // This shouldn't happen!
+}
+
+static inline void
+_scrub_ecc(unsigned p)
+{
+ cyg_uint32 iacr;
+
+ // The following ldr/str pair need to be atomic on the bus. Since
+ // the XScale core doesn't support atomic RMW, we have to disable
+ // arbitration to prevent other bus masters from taking the bus
+ // between the the ldr and str.
+
+ // Disable internal bus arbitration for everything except the CPU
+ iacr = *ARB_IACR;
+ *ARB_IACR = IACR_ATU(IACR_PRI_OFF) | IACR_DMA0(IACR_PRI_OFF) |
+ IACR_DMA1(IACR_PRI_OFF) | IACR_AAU(IACR_PRI_OFF) |
+ IACR_PBI(IACR_PRI_OFF) | IACR_CORE(IACR_PRI_HIGH);
+
+ // drain write buffer
+ asm volatile ("mcr p15,0,r1,c7,c10,4\n");
+ CPWAIT();
+
+ asm volatile ("ldrb r4, [%0]\n"
+ "strb r4, [%0]\n" : : "r"(p) : "r4");
+
+ // Restore normal internal bus arbitration priorities
+ *ARB_IACR = iacr;
+}
+
+static cyg_uint32
+mcu_ISR(cyg_vector_t vector, cyg_addrword_t data)
+{
+ cyg_uint32 eccr_reg, mcisr_reg;
+
+ // Read current state of ECC register
+ eccr_reg = *MCU_ECCR;
+
+ // and the interrupt status
+ mcisr_reg = *MCU_MCISR;
+
+ // Turn off all ecc error reporting
+ *MCU_ECCR = 0xc;
+
+#ifdef DEBUG_ECC
+ diag_printf("mcu_ISR entry: ECCR = 0x%X, MCISR = 0x%X\n", eccr_reg, mcisr_reg);
+#endif
+
+ // Check for ECC Error 0
+ if(mcisr_reg & 1) {
+
+#ifdef DEBUG_ECC
+ diag_printf("ELOG0 = 0x%X\n", *MCU_ELOG0);
+ diag_printf("ECC Error Detected at Address 0x%X\n",*MCU_ECAR0);
+#endif
+
+ // Check for single-bit error
+ if(!(*MCU_ELOG0 & 0x00000100)) {
+ // call ECC restoration function
+ _scrub_ecc((*MCU_ECAR0 - SDRAM_PHYS_BASE) + SDRAM_UNCACHED_BASE);
+
+ // Clear the MCISR
+ *MCU_MCISR = 1;
+ } else {
+#ifdef DEBUG_ECC
+ diag_printf("Multi-bit or nibble error\n");
+#endif
+ }
+ }
+
+ // Check for ECC Error 1
+ if(mcisr_reg & 2) {
+
+#ifdef DEBUG_ECC
+ diag_printf("ELOG1 = 0x%X\n",*MCU_ELOG1);
+ diag_printf("ECC Error Detected at Address 0x%X\n",*MCU_ECAR1);
+#endif
+
+ // Check for single-bit error
+ if(!(*MCU_ELOG1 & 0x00000100)) {
+ // call ECC restoration function
+ _scrub_ecc((*MCU_ECAR1 - SDRAM_PHYS_BASE) + SDRAM_UNCACHED_BASE);
+
+ // Clear the MCISR
+ *MCU_MCISR = 2;
+ }
+ else {
+#ifdef DEBUG_ECC
+ diag_printf("Multi-bit or nibble error\n");
+#endif
+ }
+ }
+
+ // Check for ECC Error N
+ if(mcisr_reg & 4) {
+ // Clear the MCISR
+ *MCU_MCISR = 4;
+ diag_printf("Uncorrectable error during RMW\n");
+ }
+
+ // Restore ECCR register
+ *MCU_ECCR = eccr_reg;
+
+#ifdef DEBUG_ECC
+ diag_printf("mcu_ISR exit: MCISR = 0x%X\n", *MCU_MCISR);
+#endif
+
+ return CYG_ISR_HANDLED;
+}
+
+//
+// Interrupt control
+//
+
+void
+hal_interrupt_mask(int vector)
+{
+ if (vector <= CYGNUM_HAL_INTERRUPT_HPI) {
+ int mask;
+
+ INTCTL_READ(mask);
+ mask &= ~(1 << vector);
+ INTCTL_WRITE(mask);
+ CPWAIT();
+ }
+}
+
+void
+hal_interrupt_unmask(int vector)
+{
+ if (vector <= CYGNUM_HAL_INTERRUPT_HPI) {
+ int mask;
+
+ INTCTL_READ(mask);
+ mask |= (1 << vector);
+ INTCTL_WRITE(mask);
+ CPWAIT();
+ }
+}
+
+void
+hal_interrupt_acknowledge(int vector)
+{
+ // If this is a timer interrupt, write a 1 to the appropriate bit
+ // in the TISR register.
+ if( vector == CYGNUM_HAL_INTERRUPT_TIMER0 ||
+ vector == CYGNUM_HAL_INTERRUPT_TIMER1 )
+ {
+ TISR_WRITE(1<<(vector-CYGNUM_HAL_INTERRUPT_TIMER0));
+ }
+}
+
+
+void hal_interrupt_configure(int vector, int level, int up)
+{
+}
+
+void hal_interrupt_set_level(int vector, int level)
+{
+}
+
+
+/*------------------------------------------------------------------------*/
+// RTC Support
+
+static cyg_uint32 _period;
+
+#define CLOCK_MULTIPLIER 200
+
+void
+hal_clock_initialize(cyg_uint32 period)
+{
+ cyg_uint32 val;
+ cyg_uint32 tmr_period;
+ _period = period;
+
+ tmr_period = period * CLOCK_MULTIPLIER;
+
+ // disable timer
+ TMR0_WRITE(0);
+
+ // clear interrupts
+ TISR_WRITE(1);
+
+ // set reload/count value
+ TRR0_WRITE(tmr_period);
+ TCR0_WRITE(tmr_period);
+
+ // let it run
+ TMR0_WRITE(TMR_ENABLE | TMR_RELOAD | TMR_CLK_1);
+
+ TMR0_READ(val);
+}
+
+
+// Dynamically set the timer interrupt rate.
+// Not for eCos application use at all, just special GPROF code in RedBoot.
+
+void
+hal_clock_reinitialize( int *pfreq, /* inout */
+ unsigned int *pperiod, /* inout */
+ unsigned int old_hz ) /* in */
+{
+ unsigned int newp = 0, period, i = 0;
+ int hz;
+ int do_set_hw;
+
+// Arbitrary choice somewhat - so the CPU can make
+// progress with the clock set like this, we hope.
+#define MIN_TICKS (2000)
+#define MAX_TICKS N/A: 32-bit counter
+
+ if ( ! pfreq || ! pperiod )
+ return; // we cannot even report a problem!
+
+ hz = *pfreq;
+ period = *pperiod;
+
+// Requested HZ:
+// 0 => tell me the current value (no change, implemented in caller)
+// - 1 => tell me the slowest (no change)
+// - 2 => tell me the default (no change, implemented in caller)
+// -nnn => tell me what you would choose for nnn (no change)
+// MIN_INT => tell me the fastest (no change)
+//
+// 1 => tell me the slowest (sets the clock)
+// MAX_INT => tell me the fastest (sets the clock)
+
+ do_set_hw = (hz > 0);
+ if ( hz < 0 )
+ hz = -hz;
+
+ // Be paranoid about bad args, and very defensive about underflows
+ if ( 0 < hz && 0 < period && 0 < old_hz ) {
+
+ newp = period * old_hz / (unsigned)hz;
+
+ if ( newp < MIN_TICKS ) {
+ newp = MIN_TICKS;
+ // recalculate to get the exact delay for this integral hz
+ // and hunt hz down to an acceptable value if necessary
+ i = period * old_hz / newp;
+ if ( i ) do {
+ newp = period * old_hz / i;
+ i--;
+ } while (newp < MIN_TICKS && i);
+ }
+ // So long as period * old_hz fits in 32 bits, there is no need to
+ // worry about overflow; hz >= 1 in the initial divide. If the
+ // clock cannot do a whole second (period * old_hz >= 2^32), we
+ // will get overflow here, and random returned HZ values.
+
+ // Recalculate the actual value installed.
+ i = period * old_hz / newp;
+ }
+
+ *pfreq = i;
+ *pperiod = newp;
+
+ if ( do_set_hw ) {
+ hal_clock_initialize( newp );
+ }
+}
+
+// This routine is called during a clock interrupt.
+void
+hal_clock_reset(cyg_uint32 vector, cyg_uint32 period)
+{
+}
+
+// Read the current value of the clock, returning the number of hardware
+// "ticks" that have occurred (i.e. how far away the current value is from
+// the start)
+void
+hal_clock_read(cyg_uint32 *pvalue)
+{
+ cyg_uint32 timer_val;
+
+ TCR0_READ(timer_val);
+
+ // Translate timer value back into microseconds
+
+ timer_val /= CLOCK_MULTIPLIER;
+
+ *pvalue = _period - timer_val;
+}
+
+// Delay for some usecs.
+void
+hal_delay_us(cyg_int32 delay)
+{
+#define _TICKS_PER_USEC CLOCK_MULTIPLIER
+ cyg_uint32 now, prev, diff, usecs;
+ cyg_uint32 tmr_period = _period * CLOCK_MULTIPLIER;
+
+ diff = usecs = 0;
+ TCR0_READ(prev);
+
+ while (delay > usecs) {
+ TCR0_READ(now);
+
+ if (prev < now)
+ diff += (prev + (tmr_period - now));
+ else
+ diff += (prev - now);
+
+ prev = now;
+
+ if (diff >= _TICKS_PER_USEC) {
+ usecs += (diff / _TICKS_PER_USEC);
+ diff %= _TICKS_PER_USEC;
+ }
+ }
+}
+
+/*------------------------------------------------------------------------*/
+// EOF verde_misc.c
+
diff --git a/ecos/packages/hal/arm/xscale/verde/current/src/verde_pci.c b/ecos/packages/hal/arm/xscale/verde/current/src/verde_pci.c
new file mode 100644
index 0000000..d4a2a75
--- /dev/null
+++ b/ecos/packages/hal/arm/xscale/verde/current/src/verde_pci.c
@@ -0,0 +1,272 @@
+//==========================================================================
+//
+// verde_pci.c
+//
+// HAL support code for Verde PCI
+//
+//==========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//==========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): msalter
+// Contributors: msalter
+// Date: 2002-01-30
+// Purpose: PCI support
+// Description: Implementations of HAL PCI 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_if.h> // calling interface API
+#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/io/pci_hw.h>
+#include <cyg/io/pci.h>
+
+#ifdef CYGPKG_IO_PCI
+
+// Use "naked" attribute to suppress C prologue/epilogue
+// This is a data abort handler which simply returns. Data aborts
+// occur during configuration cycles if no device is present.
+static void __attribute__ ((naked))
+__pci_abort_handler(void)
+{
+ asm ( "subs pc, lr, #4\n" );
+}
+
+static cyg_uint32 orig_abort_vec;
+
+#define DEBUG_CONFIG_VERBOSE 0
+
+static inline void
+pci_config_setup(cyg_uint32 bus, cyg_uint32 devfn, cyg_uint32 offset)
+{
+ cyg_uint32 dev = CYG_PCI_DEV_GET_DEV(devfn);
+ cyg_uint32 fn = CYG_PCI_DEV_GET_FN(devfn);
+ cyg_uint8 localbus;
+
+ localbus = (*ATU_PCIXSR >> 8) & 0xff;
+ if (localbus == 0xff)
+ localbus = 0;
+
+ /* Offsets must be dword-aligned */
+ offset &= ~3;
+
+ /* Immediate bus use type 0 config, all others use type 1 config */
+#if DEBUG_CONFIG_VERBOSE
+ diag_printf("config: localbus[%d] bus[%d] dev[%d] fn[%d] offset[0x%x]\n",
+ localbus, bus, dev, fn, offset);
+#endif
+
+ if (bus == localbus)
+ *ATU_OCCAR = ( (1 << (dev + 16)) | (dev << 11) | (fn << 8) | offset | 0 );
+ else
+ *ATU_OCCAR = ( (bus << 16) | (dev << 11) | (fn << 8) | offset | 1 );
+
+ orig_abort_vec = ((volatile cyg_uint32 *)0x20)[4];
+ ((volatile unsigned *)0x20)[4] = (unsigned)__pci_abort_handler;
+}
+
+static inline int
+pci_config_cleanup(cyg_uint32 bus)
+{
+ cyg_uint32 status = 0, err = 0;
+
+ status = *ATU_ATUSR;
+ if ((status & 0xF900) != 0) {
+ err = 1;
+ *ATU_ATUSR = status & 0xF900;
+ }
+
+ ((volatile unsigned *)0x20)[4] = orig_abort_vec;
+
+ return err;
+}
+
+
+cyg_uint32
+cyg_hal_plf_pci_cfg_read_dword (cyg_uint32 bus, cyg_uint32 devfn, cyg_uint32 offset)
+{
+ cyg_uint32 config_data;
+ int err;
+
+ pci_config_setup(bus, devfn, offset);
+
+ config_data = *ATU_OCCDR;
+
+ err = pci_config_cleanup(bus);
+
+#if DEBUG_CONFIG_VERBOSE
+ diag_printf("config read dword: data[0x%x] err[%d]\n",
+ config_data, err);
+#endif
+ if (err)
+ return 0xffffffff;
+ else
+ return config_data;
+}
+
+
+void
+cyg_hal_plf_pci_cfg_write_dword (cyg_uint32 bus,
+ cyg_uint32 devfn,
+ cyg_uint32 offset,
+ cyg_uint32 data)
+{
+ int err;
+
+ pci_config_setup(bus, devfn, offset);
+
+ *ATU_OCCDR = data;
+
+ err = pci_config_cleanup(bus);
+
+#if DEBUG_CONFIG_VERBOSE
+ diag_printf("config write dword: data[0x%x] err[%d]\n",
+ data, err);
+#endif
+}
+
+
+cyg_uint16
+cyg_hal_plf_pci_cfg_read_word (cyg_uint32 bus,
+ cyg_uint32 devfn,
+ cyg_uint32 offset)
+{
+ cyg_uint16 config_data;
+ int err;
+
+ pci_config_setup(bus, devfn, offset & ~3);
+
+ config_data = (cyg_uint16)(((*ATU_OCCDR) >> ((offset % 0x4) * 8)) & 0xffff);
+
+ err = pci_config_cleanup(bus);
+
+#if DEBUG_CONFIG_VERBOSE
+ diag_printf("config read word: data[0x%x] err[%d]\n",
+ config_data, err);
+#endif
+ if (err)
+ return 0xffff;
+ else
+ return config_data;
+}
+
+void
+cyg_hal_plf_pci_cfg_write_word (cyg_uint32 bus,
+ cyg_uint32 devfn,
+ cyg_uint32 offset,
+ cyg_uint16 data)
+{
+ int err;
+ cyg_uint32 mask, temp;
+
+ pci_config_setup(bus, devfn, offset & ~3);
+
+ mask = ~(0x0000ffff << ((offset % 0x4) * 8));
+
+ temp = (cyg_uint32)(((cyg_uint32)data) << ((offset % 0x4) * 8));
+ *ATU_OCCDR = (*ATU_OCCDR & mask) | temp;
+
+ err = pci_config_cleanup(bus);
+
+#if DEBUG_CONFIG_VERBOSE
+ diag_printf("config write word: data[0x%x] err[%d]\n",
+ data, err);
+#endif
+}
+
+cyg_uint8
+cyg_hal_plf_pci_cfg_read_byte (cyg_uint32 bus,
+ cyg_uint32 devfn,
+ cyg_uint32 offset)
+{
+ int err;
+ cyg_uint8 config_data;
+
+ pci_config_setup(bus, devfn, offset & ~3);
+
+ config_data = (cyg_uint8)(((*ATU_OCCDR) >> ((offset % 0x4) * 8)) & 0xff);
+
+ err = pci_config_cleanup(bus);
+
+#if DEBUG_CONFIG_VERBOSE
+ diag_printf("config read byte: data[0x%x] err[%d]\n",
+ config_data, err);
+#endif
+ if (err)
+ return 0xff;
+ else
+ return config_data;
+}
+
+
+void
+cyg_hal_plf_pci_cfg_write_byte (cyg_uint32 bus,
+ cyg_uint32 devfn,
+ cyg_uint32 offset,
+ cyg_uint8 data)
+{
+ int err;
+ cyg_uint32 mask, temp;
+
+ pci_config_setup(bus, devfn, offset & ~3);
+
+ mask = ~(0x000000ff << ((offset % 0x4) * 8));
+ temp = (cyg_uint32)(((cyg_uint32)data) << ((offset % 0x4) * 8));
+ *ATU_OCCDR = (*ATU_OCCDR & mask) | temp;
+
+ err = pci_config_cleanup(bus);
+
+#if DEBUG_CONFIG_VERBOSE
+ diag_printf("config write byte: data[0x%x] err[%d]\n",
+ data, err);
+#endif
+}
+
+#endif // CYGPKG_IO_PCI
+
+
diff --git a/ecos/packages/hal/arm/xscale/xsengine/current/ChangeLog b/ecos/packages/hal/arm/xscale/xsengine/current/ChangeLog
new file mode 100644
index 0000000..924d0cb
--- /dev/null
+++ b/ecos/packages/hal/arm/xscale/xsengine/current/ChangeLog
@@ -0,0 +1,54 @@
+2009-10-16 John Dallaway <john@dallaway.org.uk>
+
+ * cdl/hal_arm_xscale_xsengine.cdl: Parent under
+ CYGPKG_HAL_ARM_XSCALE_PXA2X0.
+
+2009-01-31 Bart Veer <bartv@ecoscentric.com>
+
+ * cdl/hal_arm_xscale_xsengine.cdl: update compiler flags for gcc 4.x
+
+2009-01-24 Bart Veer <bartv@ecoscentric.com>
+
+ * cdl/hal_arm_xscale_xsengine.cdl: switch from arm-elf-gcc to
+ arm-eabi-gcc.
+
+2005-02-23 Kurt Stremerch <kurt.stremerch@exys.be>
+
+ * src/xsengine_misc.c:
+ * misc/redboot_ROM.ecm:
+ * misc/redboot_RAM.ecm:
+ * include/pkgconf/mlt_arm_xscale_xsengine_rom.mlt:
+ * include/pkgconf/mlt_arm_xscale_xsengine_rom.ldi:
+ * include/pkgconf/mlt_arm_xscale_xsengine_rom.h:
+ * include/pkgconf/mlt_arm_xscale_xsengine_ram.mlt:
+ * include/pkgconf/mlt_arm_xscale_xsengine_ram.ldi:
+ * include/pkgconf/mlt_arm_xscale_xsengine_ram.h:
+ * include/xsengine.h:
+ * include/plf_io.h:
+ * include/hal_platform_setup.h:
+ * cdl/hal_arm_xscale_xsengine.cdl:
+ New package - support for Exys XSEngine (Xscale PXA255) platform.
+
+//===========================================================================
+// ####GPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002, 2005, 2009 Free Software Foundation, Inc.
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 2 or (at your option) any
+// later version.
+//
+// This program is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the
+// Free Software Foundation, Inc., 51 Franklin Street,
+// Fifth Floor, Boston, MA 02110-1301, USA.
+// -------------------------------------------
+// ####GPLCOPYRIGHTEND####
+//===========================================================================
diff --git a/ecos/packages/hal/arm/xscale/xsengine/current/cdl/hal_arm_xscale_xsengine.cdl b/ecos/packages/hal/arm/xscale/xsengine/current/cdl/hal_arm_xscale_xsengine.cdl
new file mode 100644
index 0000000..2061d7b
--- /dev/null
+++ b/ecos/packages/hal/arm/xscale/xsengine/current/cdl/hal_arm_xscale_xsengine.cdl
@@ -0,0 +1,355 @@
+# ====================================================================
+#
+# hal_arm_xscale_xsengine.cdl
+#
+# Exys XSEngine platform HAL package configuration data
+#
+# ====================================================================
+## ####ECOSGPLCOPYRIGHTBEGIN####
+## -------------------------------------------
+## This file is part of eCos, the Embedded Configurable Operating System.
+## Copyright (C) 1998, 1999, 2000, 2001, 2002, 2005, 2009 Free Software Foundation, Inc.
+##
+## eCos is free software; you can redistribute it and/or modify it under
+## the terms of the GNU General Public License as published by the Free
+## Software Foundation; either version 2 or (at your option) any later
+## version.
+##
+## eCos is distributed in the hope that it will be useful, but WITHOUT
+## ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+## FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+## for more details.
+##
+## You should have received a copy of the GNU General Public License
+## along with eCos; if not, write to the Free Software Foundation, Inc.,
+## 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+##
+## As a special exception, if other files instantiate templates or use
+## macros or inline functions from this file, or you compile this file
+## and link it with other works to produce a work based on this file,
+## this file does not by itself cause the resulting work to be covered by
+## the GNU General Public License. However the source code for this file
+## must still be made available in accordance with section (3) of the GNU
+## General Public License v2.
+##
+## This exception does not invalidate any other reasons why a work based
+## on this file might be covered by the GNU General Public License.
+## -------------------------------------------
+## ####ECOSGPLCOPYRIGHTEND####
+# ====================================================================
+######DESCRIPTIONBEGIN####
+#
+# Author(s): msalter
+# Contributors: hmt, gary thomas
+# Date: 2001-12-03
+#
+#####DESCRIPTIONEND####
+# ====================================================================
+
+cdl_package CYGPKG_HAL_ARM_XSCALE_XSENGINE {
+ display "Exys XSEngine"
+ parent CYGPKG_HAL_ARM_XSCALE_PXA2X0
+ hardware
+ include_dir cyg/hal
+ define_header hal_arm_xscale_xsengine.h
+ description "
+ This HAL platform package provides
+ support for the Exys XSEngine CPU board."
+
+ compile xsengine_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_COMM_BAUD_SUPPORT
+ implements CYGHWR_HAL_ARM_PXA2X0_FFUART
+ implements CYGHWR_HAL_ARM_PXA2X0_BTUART
+
+ 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_xscale_pxa2x0.h>"
+ puts $::cdl_system_header "#define CYGBLD_HAL_PLATFORM_H <pkgconf/hal_arm_xscale_xsengine.h>"
+ puts $::cdl_header "#define HAL_PLATFORM_CPU \"XScale PXA255\""
+ puts $::cdl_header "#define HAL_PLATFORM_BOARD \"Exys XSEngine\""
+ puts $::cdl_header "#define HAL_PLATFORM_EXTRA \"\""
+ puts $::cdl_header "#define HAL_PLATFORM_MACHINE_TYPE 532"
+ puts $::cdl_header "#define CYGHWR_REDBOOT_ARM_TRAMPOLINE_ADDRESS 0x00001f00"
+ }
+
+ 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 targeting the xsengine 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 onboard
+ debug software such as Angel or eCos GDB stubs. Select 'ROM'
+ when building a stand-alone application which will be put
+ into ROM."
+ }
+
+ cdl_option CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_BAUD {
+ display "Diagnostic serial port baud rate"
+ flavor data
+ legal_values 9600 19200 38400 57600 115200
+ default_value 115200 ;
+ 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 57600 115200
+ default_value 115200 ;
+ 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
+ description "
+ FFUART and BTUART are the serial ports on the board."
+ }
+
+ cdl_option CYGNUM_HAL_VIRTUAL_VECTOR_DEBUG_CHANNEL {
+ display "Debug serial port"
+ active_if CYGPRI_HAL_VIRTUAL_VECTOR_DEBUG_CHANNEL_CONFIGURABLE
+ flavor data
+ legal_values 0 to CYGNUM_HAL_VIRTUAL_VECTOR_COMM_CHANNELS-1
+ default_value 0
+ description "
+ The XSEngine has two serial ports."
+ }
+
+ 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 0
+ }
+
+ cdl_option CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL {
+ display "Diagnostic serial port"
+ active_if CYGPRI_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_CONFIGURABLE
+ flavor data
+ legal_values 0 to CYGNUM_HAL_VIRTUAL_VECTOR_COMM_CHANNELS-1
+ default_value CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_DEFAULT
+ description "
+ The XSEngine has only two serial ports."
+ }
+
+ 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-eabi"}
+ 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 { CYGBLD_GLOBAL_WARNFLAGS . CYGBLD_ARCH_CFLAGS .
+ "-mcpu=xscale -g -O2 -ffunction-sections -fdata-sections -fno-rtti -fno-exceptions -mapcs-frame -fno-builtin" }
+ 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 { CYGBLD_ARCH_LDFLAGS . "-mcpu=xscale -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) --remove-section=.fixed_vectors -O binary $< $@
+ }
+ }
+ }
+
+ cdl_component CYGPKG_HAL_ARM_XSCALE_XSENGINE_OPTIONS {
+ display "Exys XSEngine 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_XSCALE_XSENGINE_CFLAGS_ADD {
+ display "Additional compiler flags"
+ flavor data
+ no_define
+ default_value { "" }
+ description "
+ This option modifies the set of compiler flags for
+ building the XScale XSEngine HAL. These flags are used
+ in addition to the set of global flags."
+ }
+
+ cdl_option CYGPKG_HAL_ARM_XSCALE_XSENGINE_CFLAGS_REMOVE {
+ display "Suppressed compiler flags"
+ flavor data
+ no_define
+ default_value { "" }
+ description "
+ This option modifies the set of compiler flags for
+ building the XScale XSEngine HAL. These flags are
+ removed from the set of global flags if present."
+ }
+
+ cdl_option CYGNUM_HAL_BREAKPOINT_LIST_SIZE {
+ display "Number of breakpoints supported by the HAL."
+ flavor data
+ default_value 32
+ description "
+ This option determines the number of breakpoints
+ supported by the HAL."
+ }
+ }
+
+ cdl_component CYGHWR_MEMORY_LAYOUT {
+ display "Memory layout"
+ flavor data
+ no_define
+ calculated { CYG_HAL_STARTUP == "RAM" ? "arm_xscale_xsengine_ram" : \
+ "arm_xscale_xsengine_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_xscale_xsengine_ram.ldi>" : \
+ "<pkgconf/mlt_arm_xscale_xsengine_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_xscale_xsengine_ram.h>" : \
+ "<pkgconf/mlt_arm_xscale_xsengine_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 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_REDBOOT_HAL_OPTIONS {
+ display "Redboot HAL options"
+ flavor none
+ no_define
+ parent CYGPKG_REDBOOT
+ active_if CYGPKG_REDBOOT
+ description "
+ This option lists the target's requirements for a valid Redboot
+ configuration."
+
+ # compile -library=libextras.a redboot_cmds.c
+
+ 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."
+
+ # compile -library=libextras.a redboot_cmds.c
+
+ make -priority 325 {
+ <PREFIX>/bin/redboot.bin : <PREFIX>/bin/redboot.elf
+ $(OBJCOPY) --strip-debug $< $(@:.bin=.img)
+ $(OBJCOPY) -O srec $< $(@:.bin=.srec)
+ $(OBJCOPY) -O binary $< $@
+ }
+ }
+ }
+
+}
diff --git a/ecos/packages/hal/arm/xscale/xsengine/current/include/hal_platform_setup.h b/ecos/packages/hal/arm/xscale/xsengine/current/include/hal_platform_setup.h
new file mode 100644
index 0000000..e14782c
--- /dev/null
+++ b/ecos/packages/hal/arm/xscale/xsengine/current/include/hal_platform_setup.h
@@ -0,0 +1,355 @@
+#ifndef CYGONCE_HAL_PLATFORM_SETUP_H
+#define CYGONCE_HAL_PLATFORM_SETUP_H
+
+/*=============================================================================
+//
+// hal_platform_setup.h
+//
+// Platform specific support for HAL (assembly code)
+//
+//=============================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002, 2005 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================*/
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): Kurt Stremerch
+// Contributors: Gary Thomas
+// Date: 2003-02-23
+//
+//####DESCRIPTIONEND####
+
+#include <pkgconf/system.h> // System-wide configuration info
+#include CYGBLD_HAL_VARIANT_H // Variant specific configuration
+#include CYGBLD_HAL_PLATFORM_H // Platform specific configuration
+#include <cyg/hal/hal_pxa2x0.h> // Variant specific hardware definitions
+#include <cyg/hal/hal_mmu.h> // MMU definitions
+#include <cyg/hal/hal_mm.h> // more MMU definitions
+#include <cyg/hal/xsengine.h> // Platform specific hardware definitions
+#include <cyg/hal/hal_spd.h>
+
+#define MDCNFG_VALUE 0x000009C9
+#define MDMRS_VALUE 0x00220022
+#define MDREFR_VALUE_1 0x00018018
+#define MDREFR_VALUE_2 0x00000000
+#define MDREFR_VALUE_3 0x00000000
+
+#define GPCR0_VALUE 0xFFFFFFFF
+#define GPCR1_VALUE 0xFFFFFFFF
+#define GPCR2_VALUE 0xFFFFFFFF
+
+#define GPSR0_VALUE 0x0000A000
+#define GPSR1_VALUE 0x00020000
+#define GPSR2_VALUE 0x0000C000
+
+#define GPDR0_VALUE 0x0000A000
+#define GPDR1_VALUE 0x00022A80
+#define GPDR2_VALUE 0x0000C000
+
+#define GAFR0_L_VALUE 0x80000000
+#define GAFR0_U_VALUE 0x00000010
+#define GAFR1_L_VALUE 0x09988050
+#define GAFR1_U_VALUE 0x00000008
+#define GAFR2_L_VALUE 0xA0000000
+#define GAFR2_U_VALUE 0x00000000
+
+#define PSSR_VALUE 0x20
+#define MSC0_VALUE_NONBURST 0x25F425F0
+#define MSC0_VALUE_BURST 0x25F425F0
+
+#define MDCNFG_DE0 0x00000001
+#define MDCNFG_DE1 0x00000002
+#define MDCNFG_DE2 0x00010000
+#define MDCNFG_DE3 0x00020000
+
+#undef XSDEBUG
+
+#if defined(CYG_HAL_STARTUP_ROM)
+#define PLATFORM_SETUP1 _platform_setup1
+#define CYGHWR_HAL_ARM_HAS_MMU
+#define CYGSEM_HAL_ROM_RESET_USES_JUMP
+
+// This macro represents the initial startup code for the platform
+ .macro _platform_setup1
+ // This is where we wind up immediately after reset. At this point, we
+ // are executing from the boot address (0x00000000), not the eventual
+ // flash address. Do some basic setup using position independent code
+ // then switch to real flash address
+
+// FIXME FIXME FIXME FIXME FIXME FIXME FIXME FIXME FIXME
+// This is a quick and dirty workaround to an apparent gas/ld
+// bug. The computed UNMAPPED_PTR(reset_vector) is off by 0x20.
+ .rept 0x20/4
+ nop
+ .endr
+// FIXME FIXME FIXME FIXME FIXME FIXME FIXME FIXME FIXME
+
+#if defined(XSDEBUG)
+ ldr r0,=PXA2X0_GPDR1 /* GPIO as output */
+ ldr r1,=0x80
+ str r1,[r0]
+ ldr r0,=PXA2X0_GAFR1_L /* GPIO as decated BTUART */
+ ldr r1,=0x0088000
+ str r1,[r0]
+ ldr r0,=PXA2X0_FFLCR /* 8bit char + DLAB(Divisor access) */
+ ldr r1,=0x83
+ str r1,[r0]
+ ldr r0,=PXA2X0_FFDLL /* Divisor to 115200 */
+ ldr r1,=8
+ str r1,[r0]
+ ldr r0,=PXA2X0_FFLCR /* DLAB off */
+ ldr r1,=0x3
+ str r1,[r0]
+ ldr r0,=PXA2X0_FFIER /* enable UART */
+ ldr r1,=0x40
+ str r1,[r0]
+ ldr r0,=PXA2X0_FFTHR /* send char A */
+ ldr r1,=0x41
+ str r1,[r0]
+#endif
+
+ // Disable interrupts, by setting the Interrupt Mask Registers to all 0's
+ ldr r1,=PXA2X0_ICMR
+ mov r0,#0
+ str r0,[r1]
+
+ // disable MMU
+ mov r0, #0x0
+ mcr p15, 0, r0, c1, c0, 0
+
+ // flush TLB
+ mov r0, #0x0
+ mcr p15, 0, r0, c8, c7, 0 // Flush TLB
+
+ // flush I&D caches and BTB
+ mov r0, #0x0
+ mcr p15, 0, r0, c7, c7, 0 // Flush caches
+
+ CPWAIT r0
+
+ // Enables access to coprocessor 0 (The only extra coprocessor on the PXA250)
+ ldr r0, =0x00000001
+ mcr p15, 0, r0, c15, c1, 0
+
+ // Disable the IRQ's and FIQ's in the program status register and
+ // enable supervisor mode
+ ldr r0,=(CPSR_IRQ_DISABLE|CPSR_FIQ_DISABLE|CPSR_SUPERVISOR_MODE)
+ msr cpsr, r0
+
+ // Set TURBO mode
+
+ ldr r2, =0x00000321
+ ldr r1, =PXA2X0_CCCR
+ str r2,[r1]
+
+ ldr r1, =0x00000003
+ mcr p14, 0, r1, c6, c0, 0
+
+ // Set-up memory according to Eyxs specs
+ // Set Refresh Values
+ ldr r1,=PXA2X0_MDREFR
+ ldr r2,=MDREFR_VALUE_1
+ str r2,[r1]
+
+ //fetch platform value SDRAM
+ ldr r1,=PXA2X0_MDCNFG
+ ldr r2,=MDCNFG_VALUE
+
+ bic r2,r2,#(MDCNFG_DE0|MDCNFG_DE1)
+ bic r2,r2,#(MDCNFG_DE2|MDCNFG_DE3)
+
+ str r2,[r1]
+
+ // pause for 200 uSecs
+ ldr r3, =PXA2X0_OSCR
+ mov r2, #0
+ str r2, [r3]
+ ldr r4, =0x300
+1:
+ ldr r2, [r3]
+ cmp r4, r2
+ bgt 1b
+
+ ldr r2,=PXA2X0_RAM_BANK0_BASE
+ str r2,[r2]
+ str r2,[r2]
+ str r2,[r2]
+ str r2,[r2]
+ str r2,[r2]
+ str r2,[r2]
+ str r2,[r2]
+ str r2,[r2]
+
+ ldr r1,=PXA2X0_MDCNFG
+ ldr r2,=MDCNFG_VALUE
+ str r2,[r1]
+
+ ldr r1,=PXA2X0_MDMRS
+ ldr r2,=MDMRS_VALUE
+ str r2,[r1]
+
+#if defined(XSDEBUG)
+ ldr r0,=PXA2X0_FFTHR /* send char B */
+ ldr r1,=0x42
+ str r1,[r0]
+#endif
+
+ // Set Static memory registers
+ ldr r1,=PXA2X0_MSC0
+ ldr r2,=MSC0_VALUE_NONBURST
+ str r2,[r1]
+
+ // Setup GPIO clear registers
+ ldr r1, =PXA2X0_GPCR0
+ ldr r2, =(GPCR0_VALUE)
+ str r2, [r1]
+
+ ldr r1, =PXA2X0_GPCR1
+ ldr r2, =(GPCR1_VALUE)
+ str r2, [r1]
+
+ ldr r1, =PXA2X0_GPCR2
+ ldr r2, =(GPCR2_VALUE)
+ str r2, [r1]
+
+ // Setup GPIO set registers
+ ldr r1, =PXA2X0_GPSR0
+ ldr r2, =(GPSR0_VALUE)
+ str r2, [r1]
+
+ ldr r1, =PXA2X0_GPSR1
+ ldr r2, =(GPSR1_VALUE)
+ str r2, [r1]
+
+ ldr r1, =PXA2X0_GPSR2
+ ldr r2, =(GPSR2_VALUE)
+ str r2, [r1]
+
+ // Setup GPIO direction registers
+ ldr r1, =PXA2X0_GPDR0
+ ldr r2, =(GPDR0_VALUE)
+ str r2, [r1]
+
+ ldr r1, =PXA2X0_GPDR1
+ ldr r2, =(GPDR1_VALUE)
+ str r2, [r1]
+
+ ldr r1, =PXA2X0_GPDR2
+ ldr r2, =(GPDR2_VALUE)
+ str r2, [r1]
+
+ // Setup GPIO alternate function registers
+ ldr r1, =PXA2X0_GAFR0_L
+ ldr r2, =(GAFR0_L_VALUE)
+ str r2, [r1]
+
+ ldr r1, =PXA2X0_GAFR0_U
+ ldr r2, =(GAFR0_U_VALUE)
+ str r2, [r1]
+
+ ldr r1, =PXA2X0_GAFR1_L
+ ldr r2, =(GAFR1_L_VALUE)
+ str r2, [r1]
+
+ ldr r1, =PXA2X0_GAFR1_U
+ ldr r2, =(GAFR1_U_VALUE)
+ str r2, [r1]
+
+ ldr r1, =PXA2X0_GAFR2_L
+ ldr r2, =(GAFR2_L_VALUE)
+ str r2, [r1]
+
+ ldr r1, =PXA2X0_GAFR2_U
+ ldr r2, =(GAFR2_U_VALUE)
+ str r2, [r1]
+
+ ldr r1, =PXA2X0_PSSR
+ ldr r2, =(PSSR_VALUE)
+ str r2, [r1]
+
+ // Enable the Icache
+ mrc p15, 0, r0, c1, c0, 0
+ orr r0, r0, #MMU_Control_I
+ mcr p15, 0, r0, c1, c0, 0
+ CPWAIT r0
+
+#if defined(XSDEBUG)
+ ldr r0,=PXA2X0_FFTHR /* send char C */
+ ldr r1,=0x43
+ str r1,[r0]
+#endif
+
+ // Set up a stack [for calling C code]
+ ldr r1,=__startup_stack
+ ldr r2,=PXA2X0_RAM_BANK0_BASE
+ orr sp,r1,r2
+
+ // Create MMU tables
+ bl hal_mmu_init
+
+#if defined(XSDEBUG)
+ ldr r0,=PXA2X0_FFTHR /* send char D */
+ ldr r1,=0x44
+ str r1,[r0]
+#endif
+
+ // Enable MMU
+ ldr r2,=10f
+ ldr r1,=MMU_Control_Init|MMU_Control_M
+ mcr MMU_CP,0,r1,MMU_Control,c0
+ mov pc, r2
+ nop
+ nop
+ nop
+
+10:
+#if defined(XSDEBUG)
+ ldr r0,=PXA2X0_FFTHR /* send char E */
+ ldr r1,=0x45
+ str r1,[r0]
+#endif
+
+ .endm
+
+#else // defined(CYG_HAL_STARTUP_ROM)
+#define PLATFORM_SETUP1
+#endif
+
+#define PLATFORM_VECTORS _platform_vectors
+ .macro _platform_vectors
+ .globl hal_pcsr_cfg_retry
+ hal_pcsr_cfg_retry: .long 0 // Boot-time value of PCSR Retry bit.
+ .endm
+
+/*---------------------------------------------------------------------------*/
+/* end of hal_platform_setup.h */
+#endif /* CYGONCE_HAL_PLATFORM_SETUP_H */
diff --git a/ecos/packages/hal/arm/xscale/xsengine/current/include/pkgconf/mlt_arm_xscale_xsengine_ram.h b/ecos/packages/hal/arm/xscale/xsengine/current/include/pkgconf/mlt_arm_xscale_xsengine_ram.h
new file mode 100644
index 0000000..046c178
--- /dev/null
+++ b/ecos/packages/hal/arm/xscale/xsengine/current/include/pkgconf/mlt_arm_xscale_xsengine_ram.h
@@ -0,0 +1,18 @@
+// eCos memory layout - Fri Oct 20 05:56:24 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 (0x0)
+#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 (__heap1) [];
+#endif
+#define CYGMEM_SECTION_heap1 (CYG_LABEL_NAME (__heap1))
+#define CYGMEM_SECTION_heap1_SIZE (0x3F00000 - (size_t) CYG_LABEL_NAME (__heap1))
+
diff --git a/ecos/packages/hal/arm/xscale/xsengine/current/include/pkgconf/mlt_arm_xscale_xsengine_ram.ldi b/ecos/packages/hal/arm/xscale/xsengine/current/include/pkgconf/mlt_arm_xscale_xsengine_ram.ldi
new file mode 100644
index 0000000..d9f502b
--- /dev/null
+++ b/ecos/packages/hal/arm/xscale/xsengine/current/include/pkgconf/mlt_arm_xscale_xsengine_ram.ldi
@@ -0,0 +1,27 @@
+// eCos memory layout - Fri Oct 20 05:56:24 2000
+
+// This is a generated file - do not edit
+
+#include <cyg/infra/cyg_type.inc>
+
+MEMORY
+{
+ ram : ORIGIN = 0x0, LENGTH = 0x4000000
+}
+
+SECTIONS
+{
+ SECTIONS_BEGIN
+ SECTION_fixed_vectors (ram, 0x20, LMA_EQ_VMA)
+ SECTION_rom_vectors (ram, 0x40000, 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)
+ CYG_LABEL_DEFN(__heap1) = ALIGN (0x8);
+ SECTIONS_END
+}
diff --git a/ecos/packages/hal/arm/xscale/xsengine/current/include/pkgconf/mlt_arm_xscale_xsengine_ram.mlt b/ecos/packages/hal/arm/xscale/xsengine/current/include/pkgconf/mlt_arm_xscale_xsengine_ram.mlt
new file mode 100644
index 0000000..5c39d42
--- /dev/null
+++ b/ecos/packages/hal/arm/xscale/xsengine/current/include/pkgconf/mlt_arm_xscale_xsengine_ram.mlt
@@ -0,0 +1,14 @@
+version 0
+region ram 0 4000000 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 40000 40000 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 1 0 1 heap1 heap1 !
+section heap1 0 8 0 0 0 0 0 0 !
+
diff --git a/ecos/packages/hal/arm/xscale/xsengine/current/include/pkgconf/mlt_arm_xscale_xsengine_rom.h b/ecos/packages/hal/arm/xscale/xsengine/current/include/pkgconf/mlt_arm_xscale_xsengine_rom.h
new file mode 100644
index 0000000..436012a
--- /dev/null
+++ b/ecos/packages/hal/arm/xscale/xsengine/current/include/pkgconf/mlt_arm_xscale_xsengine_rom.h
@@ -0,0 +1,20 @@
+// eCos memory layout - Tue Jul 02 10:03:04 2002
+
+// This is a generated file - do not edit
+
+#ifndef __ASSEMBLER__
+#include <cyg/infra/cyg_type.h>
+#include <stddef.h>
+
+#endif
+#define CYGMEM_REGION_ram (0x00000000)
+#define CYGMEM_REGION_ram_SIZE (0x04000000)
+#define CYGMEM_REGION_ram_ATTR (CYGMEM_REGION_ATTR_R | CYGMEM_REGION_ATTR_W)
+#define CYGMEM_REGION_rom (0x50000000)
+#define CYGMEM_REGION_rom_SIZE (0x01000000)
+#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 (0x4000000 - (size_t) CYG_LABEL_NAME (__heap1))
diff --git a/ecos/packages/hal/arm/xscale/xsengine/current/include/pkgconf/mlt_arm_xscale_xsengine_rom.ldi b/ecos/packages/hal/arm/xscale/xsengine/current/include/pkgconf/mlt_arm_xscale_xsengine_rom.ldi
new file mode 100644
index 0000000..094531a
--- /dev/null
+++ b/ecos/packages/hal/arm/xscale/xsengine/current/include/pkgconf/mlt_arm_xscale_xsengine_rom.ldi
@@ -0,0 +1,29 @@
+// eCos memory layout - Tue Jul 02 10:03:04 2002
+
+// This is a generated file - do not edit
+
+#include <cyg/infra/cyg_type.inc>
+
+MEMORY
+{
+ ram : ORIGIN = 0x00000000, LENGTH = 0x04000000
+ rom : ORIGIN = 0x50000000, LENGTH = 0x01000000
+}
+
+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_mmu_tables (rom, ALIGN (0x4000), LMA_EQ_VMA)
+ SECTION_fixed_vectors (ram, 0x20, LMA_EQ_VMA)
+ SECTION_data (ram, 0x8000, FOLLOWING (.mmu_tables))
+ SECTION_bss (ram, ALIGN (0x4), LMA_EQ_VMA)
+ CYG_LABEL_DEFN(__heap1) = ALIGN (0x8);
+ SECTIONS_END
+}
diff --git a/ecos/packages/hal/arm/xscale/xsengine/current/include/pkgconf/mlt_arm_xscale_xsengine_rom.mlt b/ecos/packages/hal/arm/xscale/xsengine/current/include/pkgconf/mlt_arm_xscale_xsengine_rom.mlt
new file mode 100644
index 0000000..b1046f8
--- /dev/null
+++ b/ecos/packages/hal/arm/xscale/xsengine/current/include/pkgconf/mlt_arm_xscale_xsengine_rom.mlt
@@ -0,0 +1,15 @@
+version 0
+region ram 0 2000000 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 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 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 1 0 1 mmu_tables mmu_tables !
+section mmu_tables 0 4000 0 1 0 0 0 1 data !
diff --git a/ecos/packages/hal/arm/xscale/xsengine/current/include/plf_io.h b/ecos/packages/hal/arm/xscale/xsengine/current/include/plf_io.h
new file mode 100644
index 0000000..3b43146
--- /dev/null
+++ b/ecos/packages/hal/arm/xscale/xsengine/current/include/plf_io.h
@@ -0,0 +1,56 @@
+#ifndef CYGONCE_PLF_IO_H
+#define CYGONCE_PLF_IO_H
+
+//=============================================================================
+//
+// plf_io.h
+//
+// Platform specific IO support
+//
+//=============================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002, 2005 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): Kurt Stremerch
+// Contributors:
+// Date: 2005-02-23
+// Purpose: XSEngine IO support macros
+// Description:
+// Usage: #include <cyg/hal/plf_io.h>
+//
+//####DESCRIPTIONEND####
+//
+//=============================================================================
+
+#endif // CYGONCE_PLF_IO_H
diff --git a/ecos/packages/hal/arm/xscale/xsengine/current/include/xsengine.h b/ecos/packages/hal/arm/xscale/xsengine/current/include/xsengine.h
new file mode 100644
index 0000000..2ea2b13
--- /dev/null
+++ b/ecos/packages/hal/arm/xscale/xsengine/current/include/xsengine.h
@@ -0,0 +1,62 @@
+#ifndef CYGONCE_HAL_ARM_XSCALE_XSENGINE_XSENGINE_H
+#define CYGONCE_HAL_ARM_XSCALE_XSENGINE_XSENGINE_H
+
+//=============================================================================
+//
+// xsengine.h
+//
+// Platform specific support (register layout, etc)
+//
+//=============================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002, 2005 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=============================================================================
+
+#include <pkgconf/system.h>
+#include CYGHWR_MEMORY_LAYOUT_H
+#include <pkgconf/hal_arm_xscale_xsengine.h>
+#include <cyg/hal/hal_pxa2x0.h> // Applications Processor defines
+
+#define SDRAM_PHYS_BASE 0xa0000000
+#define SDRAM_BASE 0x00000000
+#define SDRAM_SIZE 0x04000000 // 64 MB
+#define SDRAM_MAX 0x10000000
+
+#define XSENGINE_FLASH_ADDR 0x50000000
+
+// These must match setup in the page table in hal_platform_extras.h
+#define SDRAM_UNCACHED_BASE 0xc0000000
+#undef DCACHE_FLUSH_AREA
+#define DCACHE_FLUSH_AREA 0xe0000000
+// ------------------------------------------------------------------------
+
+#endif // CYGONCE_HAL_ARM_XSCALE_XSENGINE_XSENGINE_H
diff --git a/ecos/packages/hal/arm/xscale/xsengine/current/misc/redboot_RAM.ecm b/ecos/packages/hal/arm/xscale/xsengine/current/misc/redboot_RAM.ecm
new file mode 100644
index 0000000..fe7493c
--- /dev/null
+++ b/ecos/packages/hal/arm/xscale/xsengine/current/misc/redboot_RAM.ecm
@@ -0,0 +1,125 @@
+cdl_savefile_version 1;
+cdl_savefile_command cdl_savefile_version {};
+cdl_savefile_command cdl_savefile_command {};
+cdl_savefile_command cdl_configuration { description hardware template package };
+cdl_savefile_command cdl_package { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_component { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_option { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_interface { value_source user_value wizard_value inferred_value };
+
+cdl_configuration eCos {
+ description "" ;
+ hardware XSEngine ;
+ template redboot ;
+ package -hardware CYGPKG_HAL_ARM current ;
+ package -hardware CYGPKG_HAL_ARM_XSCALE_CORE current ;
+ package -hardware CYGPKG_HAL_ARM_XSCALE_PXA2X0 current ;
+ package -hardware CYGPKG_HAL_ARM_XSCALE_XSENGINE current ;
+ package -hardware CYGPKG_DEVS_FLASH_XSENGINE current ;
+ package -hardware CYGPKG_DEVS_FLASH_AMD_AM29XXXXX current ;
+ package -hardware CYGPKG_DEVS_ETH_SMSC_LAN91CXX current ;
+ package -hardware CYGPKG_DEVS_ETH_ARM_XSCALE_XSENGINE current ;
+ package -template CYGPKG_HAL current ;
+ package -template CYGPKG_INFRA current ;
+ package -template CYGPKG_REDBOOT current ;
+ package -template CYGPKG_ISOINFRA current ;
+ package -template CYGPKG_LIBC_STRING current ;
+ package -template CYGPKG_CRC current ;
+ package CYGPKG_MEMALLOC current ;
+ package CYGPKG_IO_FLASH current ;
+ package CYGPKG_IO_ETH_DRIVERS current ;
+ package CYGPKG_COMPRESS_ZLIB current ;
+};
+
+cdl_component CYG_HAL_STARTUP {
+ user_value RAM
+};
+
+cdl_option CYGBLD_BUILD_GDB_STUBS {
+ user_value 0
+};
+
+cdl_option CYGFUN_LIBC_STRING_BSD_FUNCS {
+ inferred_value 0
+};
+
+cdl_option CYGNUM_HAL_COMMON_INTERRUPTS_STACK_SIZE {
+ user_value 4096
+};
+
+cdl_option CYGDBG_HAL_COMMON_INTERRUPTS_SAVE_MINIMUM_CONTEXT {
+ user_value 0
+};
+
+cdl_option CYGDBG_HAL_COMMON_CONTEXT_SAVE_MINIMUM {
+ inferred_value 0
+};
+
+cdl_option CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS {
+ inferred_value 1
+};
+
+cdl_option CYGDBG_HAL_DEBUG_GDB_CTRLC_SUPPORT {
+ inferred_value 0
+};
+
+cdl_option CYGSEM_HAL_ROM_MONITOR {
+ inferred_value 0
+};
+
+cdl_option CYGSEM_HAL_USE_ROM_MONITOR {
+ inferred_value 0 0
+};
+
+cdl_option CYGPKG_HAL_GDB_FILEIO {
+ user_value 1
+};
+
+cdl_component CYGBLD_BUILD_REDBOOT {
+ user_value 1
+};
+
+cdl_option CYGBLD_REDBOOT_MIN_IMAGE_SIZE {
+ inferred_value 0x40000
+};
+
+cdl_component CYGSEM_REDBOOT_FLASH_CONFIG {
+ user_value 1
+};
+
+cdl_option CYGSEM_REDBOOT_FLASH_COMBINED_FIS_AND_CONFIG {
+ user_value 1
+};
+
+cdl_component CYGSEM_REDBOOT_BSP_SYSCALLS {
+ inferred_value 1
+};
+
+cdl_option CYGHWR_REDBOOT_ARM_LINUX_EXEC_ADDRESS_DEFAULT {
+ inferred_value 0xA0008000
+};
+
+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_BSD_FUNCS_HEADER {
+ inferred_value 1 <cyg/libc/string/bsdstring.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 CYGHWR_DEVS_FLASH_AMD_S29GL064M {
+ inferred_value 1
+};
+
diff --git a/ecos/packages/hal/arm/xscale/xsengine/current/misc/redboot_ROM.ecm b/ecos/packages/hal/arm/xscale/xsengine/current/misc/redboot_ROM.ecm
new file mode 100644
index 0000000..b46ca7e
--- /dev/null
+++ b/ecos/packages/hal/arm/xscale/xsengine/current/misc/redboot_ROM.ecm
@@ -0,0 +1,123 @@
+cdl_savefile_version 1;
+cdl_savefile_command cdl_savefile_version {};
+cdl_savefile_command cdl_savefile_command {};
+cdl_savefile_command cdl_configuration { description hardware template package };
+cdl_savefile_command cdl_package { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_component { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_option { value_source user_value wizard_value inferred_value };
+cdl_savefile_command cdl_interface { value_source user_value wizard_value inferred_value };
+
+cdl_configuration eCos {
+ description "" ;
+ hardware XSEngine ;
+ template redboot ;
+ package -hardware CYGPKG_HAL_ARM current ;
+ package -hardware CYGPKG_HAL_ARM_XSCALE_CORE current ;
+ package -hardware CYGPKG_HAL_ARM_XSCALE_PXA2X0 current ;
+ package -hardware CYGPKG_HAL_ARM_XSCALE_XSENGINE current ;
+ package -hardware CYGPKG_DEVS_FLASH_AMD_AM29XXXXX current ;
+ package -hardware CYGPKG_DEVS_FLASH_XSENGINE current ;
+ package -hardware CYGPKG_DEVS_ETH_SMSC_LAN91CXX current ;
+ package -hardware CYGPKG_DEVS_ETH_ARM_XSCALE_XSENGINE current ;
+ package -template CYGPKG_HAL current ;
+ package -template CYGPKG_INFRA current ;
+ package -template CYGPKG_REDBOOT current ;
+ package -template CYGPKG_ISOINFRA current ;
+ package -template CYGPKG_LIBC_STRING current ;
+ package -template CYGPKG_CRC current ;
+ package CYGPKG_IO_FLASH current ;
+ package CYGPKG_IO_ETH_DRIVERS current ;
+ package CYGPKG_COMPRESS_ZLIB current ;
+};
+
+cdl_component CYG_HAL_STARTUP {
+ user_value ROM
+};
+
+cdl_option CYGBLD_BUILD_GDB_STUBS {
+ user_value 0
+};
+
+cdl_option CYGFUN_LIBC_STRING_BSD_FUNCS {
+ inferred_value 0
+};
+
+cdl_option CYGNUM_HAL_COMMON_INTERRUPTS_STACK_SIZE {
+ user_value 4096
+};
+
+cdl_option CYGDBG_HAL_COMMON_INTERRUPTS_SAVE_MINIMUM_CONTEXT {
+ user_value 0
+};
+
+cdl_option CYGDBG_HAL_COMMON_CONTEXT_SAVE_MINIMUM {
+ inferred_value 0
+};
+
+cdl_option CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS {
+ inferred_value 1
+};
+
+cdl_option CYGDBG_HAL_DEBUG_GDB_CTRLC_SUPPORT {
+ inferred_value 0
+};
+
+cdl_option CYGSEM_HAL_ROM_MONITOR {
+ inferred_value 1
+};
+
+cdl_option CYGSEM_HAL_USE_ROM_MONITOR {
+ inferred_value 0 0
+};
+
+cdl_option CYGPKG_HAL_GDB_FILEIO {
+ user_value 1
+};
+
+cdl_component CYGBLD_BUILD_REDBOOT {
+ user_value 1
+};
+
+cdl_option CYGBLD_REDBOOT_MIN_IMAGE_SIZE {
+ inferred_value 0x40000
+};
+
+cdl_component CYGSEM_REDBOOT_FLASH_CONFIG {
+ user_value 1
+};
+
+cdl_option CYGSEM_REDBOOT_FLASH_COMBINED_FIS_AND_CONFIG {
+ user_value 1
+};
+
+cdl_component CYGSEM_REDBOOT_BSP_SYSCALLS {
+ inferred_value 1
+};
+
+cdl_option CYGHWR_REDBOOT_ARM_LINUX_EXEC_ADDRESS_DEFAULT {
+ inferred_value 0xA0008000
+};
+
+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_BSD_FUNCS_HEADER {
+ inferred_value 1 <cyg/libc/string/bsdstring.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 CYGHWR_DEVS_FLASH_AMD_S29GL064M {
+ inferred_value 1
+};
diff --git a/ecos/packages/hal/arm/xscale/xsengine/current/src/xsengine_misc.c b/ecos/packages/hal/arm/xscale/xsengine/current/src/xsengine_misc.c
new file mode 100644
index 0000000..d7c2363
--- /dev/null
+++ b/ecos/packages/hal/arm/xscale/xsengine/current/src/xsengine_misc.c
@@ -0,0 +1,119 @@
+//=============================================================================
+//
+// xsengine_misc.c
+//
+// Miscellaneous platform support for xsengine
+//
+//=============================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002, 2005 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): Knud Woehler <knud.woehler@microplex.de>
+// Date: 2003-01-06
+//
+//####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_pxa2x0.h>
+#include <cyg/hal/xsengine.h> // Platform specifics
+#include <cyg/infra/diag.h> // diag_printf
+#include <cyg/hal/hal_mm.h>
+
+#include <string.h> // memset
+
+void
+hal_mmu_init(void)
+{
+ // Set up the translation tables at offset 0x4000
+ unsigned long ttb_base = PXA2X0_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_DACR_DEFAULT;
+ 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 */
+#define _CACHED ARM_CACHEABLE
+#define _UNCACHED ARM_UNCACHEABLE
+#define _BUF ARM_BUFFERABLE
+#define _NOBUF ARM_UNBUFFERABLE
+#define _RWRW ARM_ACCESS_PERM_RW_RW
+ X_ARM_MMU_SECTION(0x000, 0x500, 32, _UNCACHED, _NOBUF, _RWRW); /* Boot flash ROMspace */
+ X_ARM_MMU_SECTION(0x040, 0x600, 32, _UNCACHED, _NOBUF, _RWRW); /* LAN chip */
+ X_ARM_MMU_SECTION(0x0C0, 0x700, 32, _UNCACHED, _NOBUF, _RWRW); /* FPGA chip */
+ X_ARM_MMU_SECTION(0xA00, 0x000, 64, _CACHED, _BUF, _RWRW); /* SDRAM Bank 0 */
+ X_ARM_MMU_SECTION(0xA00, 0xC00, 64, _UNCACHED, _BUF, _RWRW); /* SDRAM Bank 0 */
+ X_ARM_MMU_SECTION(0xE00, 0xE00, 128, _CACHED, _BUF, _RWRW); /* Zeros (Cache Clean) Bank */
+ X_ARM_MMU_SECTION(0x400, 0x400, 64, _UNCACHED, _NOBUF, _RWRW); /* Peripheral Registers */
+ X_ARM_MMU_SECTION(0x440, 0x440, 64, _UNCACHED, _NOBUF, _RWRW); /* LCD Registers */
+ X_ARM_MMU_SECTION(0x480, 0x480, 64, _UNCACHED, _NOBUF, _RWRW); /* Memory Ctl Registers */
+}
+
+//
+// Platform specific initialization
+//
+
+void
+plf_hardware_init(void)
+{
+ // RAM startup only - rewrite relevent bits depending on config
+#ifndef CYG_HAL_STARTUP_ROM
+ HAL_DCACHE_SYNC(); // Force data out
+ HAL_DCACHE_INVALIDATE_ALL(); // Flush TLBs: make new mmu state effective
+#endif // ! CYG_HAL_STARTUP_ROM - RAM start only
+
+ hal_if_init();
+}
+
+// ------------------------------------------------------------------------
+// EOF xsengine_misc.c